From 210404a73706993d197c1290d5a411394e176fbe Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Fri, 9 Jan 2026 15:28:38 +0100 Subject: remove unused lib files --- libs/anr/.gitignore | 2 - libs/anr/examples/Makefile | 19 - libs/anr/examples/hash.txt | Bin 50000 -> 0 bytes libs/anr/examples/res/ButterflyKids-Regular.ttf | Bin 201564 -> 0 bytes libs/anr/examples/res/bible.txt | 100182 ------------------ libs/anr/examples/res/cid2code.txt | 19290 ---- libs/anr/examples/res/cid2codesmall.txt | 6835 -- libs/anr/examples/res/comic-sans.ttf | Bin 126364 -> 0 bytes libs/anr/examples/res/greenland_grid_velo.bmp | Bin 2995046 -> 0 bytes libs/anr/examples/res/small.txt | 1 - libs/anr/examples/res/spongebob.png | Bin 535569 -> 0 bytes libs/anr/examples/res/stb_image.h | 7985 -- libs/anr/examples/res/test.txt | 7 - libs/anr/examples/test_data.c | 254 - libs/anr/examples/test_pdf.c | 267 - libs/anr/examples/test_sc.c | 98 - libs/cpp-httplib/.gitattributes | 2 - libs/cpp-httplib/.github/workflows/abidiff.yaml | 69 - libs/cpp-httplib/.github/workflows/cifuzz.yaml | 32 - .../.github/workflows/release-docker.yml | 51 - libs/cpp-httplib/.github/workflows/test.yaml | 171 - libs/cpp-httplib/.github/workflows/test_proxy.yaml | 20 - libs/cpp-httplib/CMakeLists.txt | 359 - libs/cpp-httplib/Dockerfile | 13 - libs/cpp-httplib/benchmark/Makefile | 47 - libs/cpp-httplib/benchmark/cpp-httplib/main.cpp | 12 - libs/cpp-httplib/benchmark/crow/crow_all.h | 14316 --- libs/cpp-httplib/benchmark/crow/main.cpp | 17 - libs/cpp-httplib/cmake/FindBrotli.cmake | 168 - libs/cpp-httplib/cmake/httplibConfig.cmake.in | 106 - libs/cpp-httplib/docker-compose.yml | 7 - libs/cpp-httplib/docker/html/index.html | 21 - libs/cpp-httplib/docker/main.cc | 295 - libs/cpp-httplib/example/Dockerfile.hello | 12 - libs/cpp-httplib/example/Makefile | 67 - libs/cpp-httplib/example/accept_header.cc | 134 - libs/cpp-httplib/example/benchmark.cc | 33 - libs/cpp-httplib/example/ca-bundle.crt | 3401 - libs/cpp-httplib/example/client.cc | 41 - libs/cpp-httplib/example/client.vcxproj | 160 - libs/cpp-httplib/example/example.sln | 46 - libs/cpp-httplib/example/hello.cc | 19 - libs/cpp-httplib/example/one_time_request.cc | 56 - libs/cpp-httplib/example/redirect.cc | 60 - libs/cpp-httplib/example/server.cc | 113 - libs/cpp-httplib/example/server.vcxproj | 160 - libs/cpp-httplib/example/server_and_client.cc | 90 - libs/cpp-httplib/example/simplecli.cc | 29 - libs/cpp-httplib/example/simplesvr.cc | 148 - libs/cpp-httplib/example/upload.cc | 61 - libs/cpp-httplib/example/uploader.sh | 6 - libs/cpp-httplib/meson.build | 140 - libs/cpp-httplib/meson_options.txt | 20 - libs/cpp-httplib/split.py | 67 - libs/cpp-httplib/test/CMakeLists.txt | 121 - libs/cpp-httplib/test/Makefile | 132 - libs/cpp-httplib/test/ca-bundle.crt | 3401 - libs/cpp-httplib/test/fuzzing/CMakeLists.txt | 10 - libs/cpp-httplib/test/fuzzing/Makefile | 27 - libs/cpp-httplib/test/fuzzing/corpus/1 | 1 - libs/cpp-httplib/test/fuzzing/corpus/2 | 5 - libs/cpp-httplib/test/fuzzing/corpus/3 | Bin 54 -> 0 bytes ...stcase-minimized-server_fuzzer-5042094968537088 | Bin 516575 -> 0 bytes ...stcase-minimized-server_fuzzer-5372331946541056 | Bin 1041826 -> 0 bytes ...stcase-minimized-server_fuzzer-5386708825800704 | Bin 787294 -> 0 bytes ...stcase-minimized-server_fuzzer-5667822731132928 | Bin 317 -> 0 bytes ...stcase-minimized-server_fuzzer-5886572146327552 | Bin 974479 -> 0 bytes ...stcase-minimized-server_fuzzer-5942767436562432 | Bin 395 -> 0 bytes ...stcase-minimized-server_fuzzer-6007379124158464 | Bin 452123 -> 0 bytes ...stcase-minimized-server_fuzzer-6508706672541696 | 7 - libs/cpp-httplib/test/fuzzing/corpus/issue1264 | 19 - libs/cpp-httplib/test/fuzzing/server_fuzzer.cc | 100 - libs/cpp-httplib/test/fuzzing/server_fuzzer.dict | 224 - .../test/fuzzing/standalone_fuzz_target_runner.cpp | 35 - libs/cpp-httplib/test/gen-certs.sh | 18 - .../gtest/include/gtest/gtest-assertion-result.h | 237 - .../test/gtest/include/gtest/gtest-death-test.h | 345 - .../test/gtest/include/gtest/gtest-matchers.h | 956 - .../test/gtest/include/gtest/gtest-message.h | 218 - .../test/gtest/include/gtest/gtest-param-test.h | 510 - .../test/gtest/include/gtest/gtest-printers.h | 1048 - .../test/gtest/include/gtest/gtest-spi.h | 248 - .../test/gtest/include/gtest/gtest-test-part.h | 190 - .../test/gtest/include/gtest/gtest-typed-test.h | 331 - libs/cpp-httplib/test/gtest/include/gtest/gtest.h | 2297 - .../test/gtest/include/gtest/gtest_pred_impl.h | 279 - .../test/gtest/include/gtest/gtest_prod.h | 60 - .../gtest/include/gtest/internal/custom/README.md | 44 - .../include/gtest/internal/custom/gtest-port.h | 37 - .../include/gtest/internal/custom/gtest-printers.h | 42 - .../gtest/include/gtest/internal/custom/gtest.h | 37 - .../gtest/internal/gtest-death-test-internal.h | 306 - .../gtest/include/gtest/internal/gtest-filepath.h | 210 - .../gtest/include/gtest/internal/gtest-internal.h | 1570 - .../include/gtest/internal/gtest-param-util.h | 956 - .../gtest/include/gtest/internal/gtest-port-arch.h | 116 - .../test/gtest/include/gtest/internal/gtest-port.h | 2413 - .../gtest/include/gtest/internal/gtest-string.h | 177 - .../gtest/include/gtest/internal/gtest-type-util.h | 186 - libs/cpp-httplib/test/gtest/src/gtest-all.cc | 49 - .../test/gtest/src/gtest-assertion-result.cc | 77 - .../cpp-httplib/test/gtest/src/gtest-death-test.cc | 1620 - libs/cpp-httplib/test/gtest/src/gtest-filepath.cc | 367 - .../test/gtest/src/gtest-internal-inl.h | 1212 - libs/cpp-httplib/test/gtest/src/gtest-matchers.cc | 98 - libs/cpp-httplib/test/gtest/src/gtest-port.cc | 1394 - libs/cpp-httplib/test/gtest/src/gtest-printers.cc | 553 - libs/cpp-httplib/test/gtest/src/gtest-test-part.cc | 105 - .../cpp-httplib/test/gtest/src/gtest-typed-test.cc | 104 - libs/cpp-httplib/test/gtest/src/gtest.cc | 6795 -- libs/cpp-httplib/test/gtest/src/gtest_main.cc | 53 - libs/cpp-httplib/test/image.jpg | Bin 33653 -> 0 bytes libs/cpp-httplib/test/include_httplib.cc | 5 - libs/cpp-httplib/test/include_windows_h.cc | 6 - libs/cpp-httplib/test/make-shared-library.sh | 28 - libs/cpp-httplib/test/meson.build | 146 - libs/cpp-httplib/test/proxy/Dockerfile | 13 - libs/cpp-httplib/test/proxy/basic_passwd | 1 - libs/cpp-httplib/test/proxy/basic_squid.conf | 81 - libs/cpp-httplib/test/proxy/digest_passwd | 1 - libs/cpp-httplib/test/proxy/digest_squid.conf | 81 - libs/cpp-httplib/test/proxy/docker-compose.yml | 20 - libs/cpp-httplib/test/test.cc | 10830 -- libs/cpp-httplib/test/test.conf | 21 - libs/cpp-httplib/test/test.rootCA.conf | 18 - libs/cpp-httplib/test/test.sln | 28 - libs/cpp-httplib/test/test.vcxproj | 180 - libs/cpp-httplib/test/test_proxy.cc | 297 - libs/cpp-httplib/test/www/dir/1MB.txt | 8192 -- libs/cpp-httplib/test/www/dir/index.html | 8 - libs/cpp-httplib/test/www/dir/meson.build | 8 - libs/cpp-httplib/test/www/dir/test.abcde | 1 - libs/cpp-httplib/test/www/dir/test.html | 1 - libs/cpp-httplib/test/www/empty_file | 0 libs/cpp-httplib/test/www/file | 1 - libs/cpp-httplib/test/www/meson.build | 8 - .../meson.build" | 4 - .../\346\227\245\346\234\254\350\252\236File.txt" | 1 - libs/cpp-httplib/test/www2/dir/index.html | 8 - libs/cpp-httplib/test/www2/dir/meson.build | 6 - libs/cpp-httplib/test/www2/dir/test.html | 1 - libs/cpp-httplib/test/www3/dir/index.html | 8 - libs/cpp-httplib/test/www3/dir/meson.build | 6 - libs/cpp-httplib/test/www3/dir/test.html | 1 - libs/greatest/.gitignore | 8 - libs/greatest/CHANGELOG.md | 544 - libs/greatest/CONTRIBUTING.md | 73 - libs/greatest/Makefile | 52 - libs/greatest/contrib/entapment | 107 - libs/greatest/contrib/greenest | 33 - libs/greatest/contrib/testify | 33 - libs/greatest/package.json | 9 - libs/imgui-1.92.1/.editorconfig | 28 - libs/imgui-1.92.1/.gitattributes | 30 - libs/imgui-1.92.1/.github/FUNDING.yml | 1 - .../imgui-1.92.1/.github/ISSUE_TEMPLATE/config.yml | 1 - .../.github/ISSUE_TEMPLATE/issue_template.yml | 92 - libs/imgui-1.92.1/.github/pull_request_template.md | 8 - libs/imgui-1.92.1/.github/workflows/build.yml | 559 - libs/imgui-1.92.1/.github/workflows/manual.yml | 12 - libs/imgui-1.92.1/.github/workflows/scheduled.yml | 15 - .../.github/workflows/static-analysis.yml | 46 - libs/imgui-1.92.1/.gitignore | 74 - libs/imgui-1.92.1/backends/imgui_impl_allegro5.cpp | 670 - libs/imgui-1.92.1/backends/imgui_impl_allegro5.h | 43 - libs/imgui-1.92.1/backends/imgui_impl_android.cpp | 308 - libs/imgui-1.92.1/backends/imgui_impl_android.h | 37 - libs/imgui-1.92.1/backends/imgui_impl_dx10.cpp | 657 - libs/imgui-1.92.1/backends/imgui_impl_dx10.h | 48 - libs/imgui-1.92.1/backends/imgui_impl_dx11.cpp | 677 - libs/imgui-1.92.1/backends/imgui_impl_dx11.h | 51 - libs/imgui-1.92.1/backends/imgui_impl_dx12.cpp | 934 - libs/imgui-1.92.1/backends/imgui_impl_dx12.h | 79 - libs/imgui-1.92.1/backends/imgui_impl_dx9.cpp | 478 - libs/imgui-1.92.1/backends/imgui_impl_dx9.h | 37 - libs/imgui-1.92.1/backends/imgui_impl_glut.cpp | 309 - libs/imgui-1.92.1/backends/imgui_impl_glut.h | 47 - libs/imgui-1.92.1/backends/imgui_impl_metal.h | 78 - libs/imgui-1.92.1/backends/imgui_impl_metal.mm | 652 - libs/imgui-1.92.1/backends/imgui_impl_opengl3.cpp | 1038 - libs/imgui-1.92.1/backends/imgui_impl_opengl3.h | 68 - .../backends/imgui_impl_opengl3_loader.h | 922 - libs/imgui-1.92.1/backends/imgui_impl_osx.h | 54 - libs/imgui-1.92.1/backends/imgui_impl_osx.mm | 832 - libs/imgui-1.92.1/backends/imgui_impl_sdl2.cpp | 894 - libs/imgui-1.92.1/backends/imgui_impl_sdl2.h | 50 - libs/imgui-1.92.1/backends/imgui_impl_sdl3.cpp | 830 - libs/imgui-1.92.1/backends/imgui_impl_sdl3.h | 47 - libs/imgui-1.92.1/backends/imgui_impl_sdlgpu3.cpp | 661 - libs/imgui-1.92.1/backends/imgui_impl_sdlgpu3.h | 52 - .../backends/imgui_impl_sdlgpu3_shaders.h | 372 - .../backends/imgui_impl_sdlrenderer2.cpp | 300 - .../backends/imgui_impl_sdlrenderer2.h | 53 - .../backends/imgui_impl_sdlrenderer3.cpp | 316 - .../backends/imgui_impl_sdlrenderer3.h | 53 - libs/imgui-1.92.1/backends/imgui_impl_vulkan.cpp | 1849 - libs/imgui-1.92.1/backends/imgui_impl_vulkan.h | 223 - libs/imgui-1.92.1/backends/imgui_impl_wgpu.cpp | 910 - libs/imgui-1.92.1/backends/imgui_impl_wgpu.h | 71 - libs/imgui-1.92.1/backends/imgui_impl_win32.cpp | 969 - libs/imgui-1.92.1/backends/imgui_impl_win32.h | 53 - .../backends/sdlgpu3/build_instructions.txt | 40 - libs/imgui-1.92.1/backends/sdlgpu3/shader.frag | 15 - libs/imgui-1.92.1/backends/sdlgpu3/shader.vert | 24 - .../backends/vulkan/build_instructions.txt | 4 - libs/imgui-1.92.1/backends/vulkan/generate_spv.sh | 6 - libs/imgui-1.92.1/backends/vulkan/glsl_shader.frag | 14 - libs/imgui-1.92.1/backends/vulkan/glsl_shader.vert | 25 - libs/imgui-1.92.1/docs/BACKENDS.md | 378 - libs/imgui-1.92.1/docs/CHANGELOG.txt | 7573 -- libs/imgui-1.92.1/docs/CONTRIBUTING.md | 81 - libs/imgui-1.92.1/docs/EXAMPLES.md | 236 - libs/imgui-1.92.1/docs/FAQ.md | 768 - libs/imgui-1.92.1/docs/FONTS.md | 605 - libs/imgui-1.92.1/docs/README.md | 222 - libs/imgui-1.92.1/docs/TODO.txt | 329 - libs/imgui-1.92.1/examples/README.txt | 9 - .../examples/example_allegro5/README.md | 36 - .../example_allegro5/example_allegro5.vcxproj | 185 - .../example_allegro5.vcxproj.filters | 61 - .../examples/example_allegro5/imconfig_allegro5.h | 11 - .../examples/example_allegro5/main.cpp | 149 - .../example_android_opengl3/CMakeLists.txt | 40 - .../example_android_opengl3/android/.gitignore | 12 - .../android/app/build.gradle | 46 - .../android/app/src/main/AndroidManifest.xml | 24 - .../android/app/src/main/java/MainActivity.kt | 40 - .../example_android_opengl3/android/build.gradle | 24 - .../android/settings.gradle | 1 - .../examples/example_android_opengl3/main.cpp | 382 - .../examples/example_apple_metal/Makefile | 21 - .../examples/example_apple_metal/README.md | 10 - .../example_apple_metal.xcodeproj/project.pbxproj | 522 - .../example_apple_metal/iOS/Info-iOS.plist | 49 - .../iOS/LaunchScreen.storyboard | 27 - .../example_apple_metal/macOS/Info-macOS.plist | 30 - .../example_apple_metal/macOS/MainMenu.storyboard | 93 - .../examples/example_apple_metal/main.mm | 348 - .../examples/example_apple_opengl2/Makefile | 21 - .../project.pbxproj | 332 - .../examples/example_apple_opengl2/main.mm | 256 - .../examples/example_glfw_metal/Makefile | 46 - .../examples/example_glfw_metal/main.mm | 177 - .../examples/example_glfw_opengl2/Makefile | 81 - .../examples/example_glfw_opengl2/build_win32.bat | 8 - .../example_glfw_opengl2.vcxproj | 186 - .../example_glfw_opengl2.vcxproj.filters | 64 - .../examples/example_glfw_opengl2/main.cpp | 171 - .../examples/example_glfw_opengl3/Makefile | 89 - .../example_glfw_opengl3/Makefile.emscripten | 95 - .../examples/example_glfw_opengl3/build_win32.bat | 8 - .../example_glfw_opengl3.vcxproj | 187 - .../example_glfw_opengl3.vcxproj.filters | 67 - .../examples/example_glfw_opengl3/main.cpp | 214 - .../examples/example_glfw_vulkan/CMakeLists.txt | 47 - .../examples/example_glfw_vulkan/Makefile | 83 - .../examples/example_glfw_vulkan/build_win32.bat | 14 - .../examples/example_glfw_vulkan/build_win64.bat | 14 - .../example_glfw_vulkan.vcxproj | 190 - .../example_glfw_vulkan.vcxproj.filters | 64 - .../examples/example_glfw_vulkan/main.cpp | 534 - .../examples/example_glfw_wgpu/CMakeLists.txt | 117 - .../examples/example_glfw_wgpu/Makefile.emscripten | 92 - .../examples/example_glfw_wgpu/README.md | 24 - .../examples/example_glfw_wgpu/main.cpp | 350 - .../examples/example_glut_opengl2/Makefile | 75 - .../example_glut_opengl2.vcxproj | 186 - .../example_glut_opengl2.vcxproj.filters | 64 - .../examples/example_glut_opengl2/main.cpp | 164 - libs/imgui-1.92.1/examples/example_null/Makefile | 92 - .../examples/example_null/build_win32.bat | 3 - libs/imgui-1.92.1/examples/example_null/main.cpp | 38 - .../example_sdl2_directx11/build_win32.bat | 8 - .../example_sdl2_directx11.vcxproj | 187 - .../example_sdl2_directx11.vcxproj.filters | 63 - .../examples/example_sdl2_directx11/main.cpp | 259 - .../examples/example_sdl2_metal/Makefile | 47 - .../examples/example_sdl2_metal/main.mm | 189 - .../examples/example_sdl2_opengl2/Makefile | 79 - .../examples/example_sdl2_opengl2/README.md | 29 - .../examples/example_sdl2_opengl2/build_win32.bat | 8 - .../example_sdl2_opengl2.vcxproj | 186 - .../example_sdl2_opengl2.vcxproj.filters | 64 - .../examples/example_sdl2_opengl2/main.cpp | 188 - .../examples/example_sdl2_opengl3/Makefile | 91 - .../example_sdl2_opengl3/Makefile.emscripten | 95 - .../examples/example_sdl2_opengl3/README.md | 57 - .../examples/example_sdl2_opengl3/build_win32.bat | 8 - .../example_sdl2_opengl3.vcxproj | 187 - .../example_sdl2_opengl3.vcxproj.filters | 67 - .../examples/example_sdl2_opengl3/main.cpp | 238 - .../examples/example_sdl2_sdlrenderer2/Makefile | 79 - .../examples/example_sdl2_sdlrenderer2/README.md | 25 - .../example_sdl2_sdlrenderer2/build_win32.bat | 8 - .../example_sdl2_sdlrenderer2.vcxproj | 187 - .../example_sdl2_sdlrenderer2.vcxproj.filters | 64 - .../examples/example_sdl2_sdlrenderer2/main.cpp | 189 - .../examples/example_sdl2_vulkan/Makefile | 80 - .../examples/example_sdl2_vulkan/build_win32.bat | 14 - .../examples/example_sdl2_vulkan/build_win64.bat | 14 - .../example_sdl2_vulkan.vcxproj | 190 - .../example_sdl2_vulkan.vcxproj.filters | 64 - .../examples/example_sdl2_vulkan/main.cpp | 555 - .../examples/example_sdl3_opengl3/Makefile | 85 - .../example_sdl3_opengl3/Makefile.emscripten | 99 - .../examples/example_sdl3_opengl3/README.md | 40 - .../examples/example_sdl3_opengl3/build_win32.bat | 14 - .../examples/example_sdl3_opengl3/build_win64.bat | 14 - .../example_sdl3_opengl3.vcxproj | 187 - .../example_sdl3_opengl3.vcxproj.filters | 67 - .../examples/example_sdl3_opengl3/main.cpp | 232 - .../examples/example_sdl3_sdlgpu3/Makefile | 73 - .../examples/example_sdl3_sdlgpu3/build_win64.bat | 14 - .../example_sdl3_sdlgpu3.vcxproj | 189 - .../example_sdl3_sdlgpu3.vcxproj.filters | 60 - .../examples/example_sdl3_sdlgpu3/main.cpp | 227 - .../examples/example_sdl3_sdlrenderer3/Makefile | 74 - .../example_sdl3_sdlrenderer3/build_win32.bat | 8 - .../example_sdl3_sdlrenderer3.vcxproj | 186 - .../example_sdl3_sdlrenderer3.vcxproj.filters | 64 - .../examples/example_sdl3_sdlrenderer3/main.cpp | 194 - .../examples/example_sdl3_vulkan/Makefile | 77 - .../examples/example_sdl3_vulkan/build_win32.bat | 14 - .../examples/example_sdl3_vulkan/build_win64.bat | 14 - .../example_sdl3_vulkan.vcxproj | 190 - .../example_sdl3_vulkan.vcxproj.filters | 64 - .../examples/example_sdl3_vulkan/main.cpp | 558 - .../example_win32_directx10/build_win32.bat | 8 - .../example_win32_directx10.vcxproj | 176 - .../example_win32_directx10.vcxproj.filters | 63 - .../examples/example_win32_directx10/main.cpp | 279 - .../example_win32_directx11/build_win32.bat | 9 - .../example_win32_directx11.vcxproj | 175 - .../example_win32_directx11.vcxproj.filters | 63 - .../examples/example_win32_directx11/main.cpp | 282 - .../example_win32_directx12/build_win32.bat | 8 - .../example_win32_directx12.vcxproj | 180 - .../example_win32_directx12.vcxproj.filters | 65 - .../examples/example_win32_directx12/main.cpp | 547 - .../example_win32_directx9/build_win32.bat | 8 - .../example_win32_directx9.vcxproj | 176 - .../example_win32_directx9.vcxproj.filters | 64 - .../examples/example_win32_directx9/main.cpp | 272 - .../examples/example_win32_opengl3/build_mingw.bat | 8 - .../examples/example_win32_opengl3/build_win32.bat | 8 - .../example_win32_opengl3.vcxproj | 176 - .../example_win32_opengl3.vcxproj.filters | 64 - .../examples/example_win32_opengl3/main.cpp | 243 - .../examples/example_win32_vulkan/build_win32.bat | 9 - .../examples/example_win32_vulkan/build_win64.bat | 9 - .../example_win32_vulkan.vcxproj | 178 - .../example_win32_vulkan.vcxproj.filters | 63 - .../examples/example_win32_vulkan/main.cpp | 559 - libs/imgui-1.92.1/examples/imgui_examples.sln | 201 - .../libs/emscripten/emscripten_mainloop_stub.h | 38 - .../examples/libs/emscripten/shell_minimal.html | 65 - libs/imgui-1.92.1/examples/libs/glfw/COPYING.txt | 22 - .../examples/libs/glfw/include/GLFW/glfw3.h | 4227 - .../examples/libs/glfw/include/GLFW/glfw3native.h | 456 - .../examples/libs/glfw/lib-vc2010-32/glfw3.lib | Bin 187376 -> 0 bytes .../examples/libs/glfw/lib-vc2010-64/glfw3.lib | Bin 291120 -> 0 bytes .../imgui-1.92.1/examples/libs/usynergy/README.txt | 8 - .../imgui-1.92.1/examples/libs/usynergy/uSynergy.c | 636 - .../imgui-1.92.1/examples/libs/usynergy/uSynergy.h | 420 - libs/imgui-1.92.1/misc/fonts/Cousine-Regular.ttf | Bin 43912 -> 0 bytes libs/imgui-1.92.1/misc/fonts/DroidSans.ttf | Bin 190044 -> 0 bytes libs/imgui-1.92.1/misc/fonts/Karla-Regular.ttf | Bin 16848 -> 0 bytes libs/imgui-1.92.1/misc/fonts/ProggyClean.ttf | Bin 41208 -> 0 bytes libs/imgui-1.92.1/misc/fonts/ProggyTiny.ttf | Bin 35656 -> 0 bytes libs/imgui-1.92.1/misc/fonts/Roboto-Medium.ttf | Bin 162588 -> 0 bytes .../misc/fonts/binary_to_compressed_c.cpp | 424 - libs/imgui-1.92.1/misc/freetype/README.md | 54 - libs/imgui-1.92.1/misc/freetype/imgui_freetype.cpp | 751 - libs/imgui-1.92.1/misc/freetype/imgui_freetype.h | 83 - libs/openssl-3.6.0-beta1/arm64/bin/c_rehash.pl | 252 - .../arm64/bin/libcrypto-3-arm64.dll | Bin 7006480 -> 0 bytes .../arm64/bin/libcrypto-3-arm64.pdb | Bin 19009536 -> 0 bytes .../arm64/bin/libssl-3-arm64.dll | Bin 1399576 -> 0 bytes .../arm64/bin/libssl-3-arm64.pdb | Bin 4624384 -> 0 bytes libs/openssl-3.6.0-beta1/arm64/bin/openssl.exe | Bin 810256 -> 0 bytes libs/openssl-3.6.0-beta1/arm64/bin/openssl.pdb | Bin 2904064 -> 0 bytes .../arm64/include/openssl/aes.h | 111 - .../arm64/include/openssl/applink.c | 153 - .../arm64/include/openssl/asn1.h | 1134 - .../arm64/include/openssl/asn1err.h | 142 - .../arm64/include/openssl/asn1t.h | 946 - .../arm64/include/openssl/async.h | 104 - .../arm64/include/openssl/asyncerr.h | 29 - .../arm64/include/openssl/bio.h | 1022 - .../arm64/include/openssl/bioerr.h | 72 - .../arm64/include/openssl/blowfish.h | 78 - .../openssl-3.6.0-beta1/arm64/include/openssl/bn.h | 590 - .../arm64/include/openssl/bnerr.h | 47 - .../arm64/include/openssl/buffer.h | 62 - .../arm64/include/openssl/buffererr.h | 25 - .../arm64/include/openssl/byteorder.h | 339 - .../arm64/include/openssl/camellia.h | 117 - .../arm64/include/openssl/cast.h | 71 - .../arm64/include/openssl/cmac.h | 52 - .../arm64/include/openssl/cmp.h | 727 - .../arm64/include/openssl/cmp_util.h | 56 - .../arm64/include/openssl/cmperr.h | 134 - .../arm64/include/openssl/cms.h | 520 - .../arm64/include/openssl/cmserr.h | 129 - .../arm64/include/openssl/comp.h | 98 - .../arm64/include/openssl/comperr.h | 38 - .../arm64/include/openssl/conf.h | 214 - .../arm64/include/openssl/conf_api.h | 46 - .../arm64/include/openssl/conferr.h | 52 - .../arm64/include/openssl/configuration.h | 194 - .../arm64/include/openssl/conftypes.h | 44 - .../arm64/include/openssl/core.h | 236 - .../arm64/include/openssl/core_dispatch.h | 1156 - .../arm64/include/openssl/core_names.h | 584 - .../arm64/include/openssl/core_object.h | 41 - .../arm64/include/openssl/crmf.h | 278 - .../arm64/include/openssl/crmferr.h | 57 - .../arm64/include/openssl/crypto.h | 614 - .../arm64/include/openssl/cryptoerr.h | 56 - .../arm64/include/openssl/cryptoerr_legacy.h | 1466 - .../openssl-3.6.0-beta1/arm64/include/openssl/ct.h | 573 - .../arm64/include/openssl/cterr.h | 45 - .../arm64/include/openssl/decoder.h | 133 - .../arm64/include/openssl/decodererr.h | 28 - .../arm64/include/openssl/des.h | 211 - .../openssl-3.6.0-beta1/arm64/include/openssl/dh.h | 339 - .../arm64/include/openssl/dherr.h | 59 - .../arm64/include/openssl/dsa.h | 280 - .../arm64/include/openssl/dsaerr.h | 44 - .../arm64/include/openssl/dtls1.h | 57 - .../arm64/include/openssl/e_os2.h | 310 - .../arm64/include/openssl/e_ostime.h | 38 - .../arm64/include/openssl/ebcdic.h | 39 - .../openssl-3.6.0-beta1/arm64/include/openssl/ec.h | 1588 - .../arm64/include/openssl/ecdh.h | 10 - .../arm64/include/openssl/ecdsa.h | 10 - .../arm64/include/openssl/ecerr.h | 104 - .../arm64/include/openssl/encoder.h | 124 - .../arm64/include/openssl/encodererr.h | 28 - .../arm64/include/openssl/engine.h | 833 - .../arm64/include/openssl/engineerr.h | 63 - .../arm64/include/openssl/err.h | 512 - .../arm64/include/openssl/ess.h | 128 - .../arm64/include/openssl/esserr.h | 32 - .../arm64/include/openssl/evp.h | 2345 - .../arm64/include/openssl/evperr.h | 148 - .../arm64/include/openssl/fips_names.h | 50 - .../arm64/include/openssl/fipskey.h | 41 - .../arm64/include/openssl/hmac.h | 62 - .../arm64/include/openssl/hpke.h | 169 - .../arm64/include/openssl/http.h | 119 - .../arm64/include/openssl/httperr.h | 56 - .../arm64/include/openssl/idea.h | 82 - .../arm64/include/openssl/indicator.h | 31 - .../arm64/include/openssl/kdf.h | 142 - .../arm64/include/openssl/kdferr.h | 16 - .../arm64/include/openssl/lhash.h | 398 - .../arm64/include/openssl/macros.h | 361 - .../arm64/include/openssl/md2.h | 56 - .../arm64/include/openssl/md4.h | 63 - .../arm64/include/openssl/md5.h | 62 - .../arm64/include/openssl/mdc2.h | 55 - .../arm64/include/openssl/ml_kem.h | 31 - .../arm64/include/openssl/modes.h | 219 - .../arm64/include/openssl/obj_mac.h | 6695 -- .../arm64/include/openssl/objects.h | 184 - .../arm64/include/openssl/objectserr.h | 28 - .../arm64/include/openssl/ocsp.h | 483 - .../arm64/include/openssl/ocsperr.h | 53 - .../arm64/include/openssl/opensslconf.h | 17 - .../arm64/include/openssl/opensslv.h | 109 - .../arm64/include/openssl/ossl_typ.h | 16 - .../arm64/include/openssl/param_build.h | 63 - .../arm64/include/openssl/params.h | 166 - .../arm64/include/openssl/pem.h | 548 - .../arm64/include/openssl/pem2.h | 19 - .../arm64/include/openssl/pemerr.h | 59 - .../arm64/include/openssl/pkcs12.h | 372 - .../arm64/include/openssl/pkcs12err.h | 46 - .../arm64/include/openssl/pkcs7.h | 430 - .../arm64/include/openssl/pkcs7err.h | 63 - .../arm64/include/openssl/prov_ssl.h | 38 - .../arm64/include/openssl/proverr.h | 171 - .../arm64/include/openssl/provider.h | 94 - .../arm64/include/openssl/quic.h | 75 - .../arm64/include/openssl/rand.h | 131 - .../arm64/include/openssl/randerr.h | 70 - .../arm64/include/openssl/rc2.h | 68 - .../arm64/include/openssl/rc4.h | 47 - .../arm64/include/openssl/rc5.h | 79 - .../arm64/include/openssl/ripemd.h | 59 - .../arm64/include/openssl/rsa.h | 615 - .../arm64/include/openssl/rsaerr.h | 107 - .../arm64/include/openssl/safestack.h | 320 - .../arm64/include/openssl/seed.h | 113 - .../arm64/include/openssl/self_test.h | 116 - .../arm64/include/openssl/sha.h | 139 - .../arm64/include/openssl/srp.h | 285 - .../arm64/include/openssl/srtp.h | 68 - .../arm64/include/openssl/ssl.h | 2940 - .../arm64/include/openssl/ssl2.h | 30 - .../arm64/include/openssl/ssl3.h | 358 - .../arm64/include/openssl/sslerr.h | 382 - .../arm64/include/openssl/sslerr_legacy.h | 467 - .../arm64/include/openssl/stack.h | 92 - .../arm64/include/openssl/store.h | 379 - .../arm64/include/openssl/storeerr.h | 49 - .../arm64/include/openssl/symhacks.h | 39 - .../arm64/include/openssl/thread.h | 31 - .../arm64/include/openssl/tls1.h | 1226 - .../arm64/include/openssl/trace.h | 321 - .../openssl-3.6.0-beta1/arm64/include/openssl/ts.h | 522 - .../arm64/include/openssl/tserr.h | 67 - .../arm64/include/openssl/txt_db.h | 63 - .../arm64/include/openssl/types.h | 248 - .../openssl-3.6.0-beta1/arm64/include/openssl/ui.h | 407 - .../arm64/include/openssl/uierr.h | 38 - .../arm64/include/openssl/whrlpool.h | 62 - .../arm64/include/openssl/x509.h | 1304 - .../arm64/include/openssl/x509_acert.h | 294 - .../arm64/include/openssl/x509_vfy.h | 921 - .../arm64/include/openssl/x509err.h | 70 - .../arm64/include/openssl/x509v3.h | 1968 - .../arm64/include/openssl/x509v3err.h | 97 - .../arm64/lib/cmake/OpenSSL/OpenSSLConfig.cmake | 161 - .../lib/cmake/OpenSSL/OpenSSLConfigVersion.cmake | 17 - .../arm64/lib/engines-3/capi.dll | Bin 123160 -> 0 bytes .../arm64/lib/engines-3/capi.pdb | Bin 864256 -> 0 bytes .../arm64/lib/engines-3/loader_attic.dll | Bin 131344 -> 0 bytes .../arm64/lib/engines-3/loader_attic.pdb | Bin 897024 -> 0 bytes .../arm64/lib/engines-3/padlock.dll | Bin 78608 -> 0 bytes .../arm64/lib/engines-3/padlock.pdb | Bin 692224 -> 0 bytes libs/openssl-3.6.0-beta1/arm64/lib/libcrypto.lib | Bin 1391330 -> 0 bytes libs/openssl-3.6.0-beta1/arm64/lib/libssl.lib | Bin 148616 -> 0 bytes .../arm64/lib/ossl-modules/legacy.dll | Bin 215312 -> 0 bytes .../arm64/lib/ossl-modules/legacy.pdb | Bin 1323008 -> 0 bytes libs/openssl-3.6.0-beta1/projects/.clang-format | 36 - .../projects/auxiliary/build/msvc/openssl-3.props | 31 - .../projects/examples/msvc/.gitignore | 4 - .../projects/examples/msvc/cmac.props | 10 - .../projects/examples/msvc/cmac.vcxproj | 163 - .../projects/examples/msvc/cmac.vcxproj.filters | 22 - .../projects/examples/msvc/examples.sln | 38 - .../projects/examples/msvc/examples.sln.props | 13 - .../projects/examples/src/cmac.cpp | 57 - libs/openssl-3.6.0-beta1/projects/readme.md | 4 - libs/openssl-3.6.0-beta1/ssl/ct_log_list.cnf | 9 - libs/openssl-3.6.0-beta1/ssl/ct_log_list.cnf.dist | 9 - libs/openssl-3.6.0-beta1/ssl/misc/CA.pl | 383 - libs/openssl-3.6.0-beta1/ssl/misc/tsget.pl | 200 - libs/openssl-3.6.0-beta1/ssl/openssl.cnf | 390 - libs/openssl-3.6.0-beta1/ssl/openssl.cnf.dist | 390 - .../x64/include/openssl/applink.c | 4 + libs/openssl-3.6.0-beta1/x86/bin/c_rehash.pl | 252 - libs/openssl-3.6.0-beta1/x86/bin/libcrypto-3.dll | Bin 4679952 -> 0 bytes libs/openssl-3.6.0-beta1/x86/bin/libcrypto-3.pdb | Bin 25956352 -> 0 bytes libs/openssl-3.6.0-beta1/x86/bin/libssl-3.dll | Bin 1149208 -> 0 bytes libs/openssl-3.6.0-beta1/x86/bin/libssl-3.pdb | Bin 7335936 -> 0 bytes libs/openssl-3.6.0-beta1/x86/bin/openssl.exe | Bin 754448 -> 0 bytes libs/openssl-3.6.0-beta1/x86/bin/openssl.pdb | Bin 4788224 -> 0 bytes libs/openssl-3.6.0-beta1/x86/include/openssl/aes.h | 111 - .../x86/include/openssl/applink.c | 153 - .../openssl-3.6.0-beta1/x86/include/openssl/asn1.h | 1134 - .../x86/include/openssl/asn1err.h | 142 - .../x86/include/openssl/asn1t.h | 946 - .../x86/include/openssl/async.h | 104 - .../x86/include/openssl/asyncerr.h | 29 - libs/openssl-3.6.0-beta1/x86/include/openssl/bio.h | 1022 - .../x86/include/openssl/bioerr.h | 72 - .../x86/include/openssl/blowfish.h | 78 - libs/openssl-3.6.0-beta1/x86/include/openssl/bn.h | 590 - .../x86/include/openssl/bnerr.h | 47 - .../x86/include/openssl/buffer.h | 62 - .../x86/include/openssl/buffererr.h | 25 - .../x86/include/openssl/byteorder.h | 339 - .../x86/include/openssl/camellia.h | 117 - .../openssl-3.6.0-beta1/x86/include/openssl/cast.h | 71 - .../openssl-3.6.0-beta1/x86/include/openssl/cmac.h | 52 - libs/openssl-3.6.0-beta1/x86/include/openssl/cmp.h | 727 - .../x86/include/openssl/cmp_util.h | 56 - .../x86/include/openssl/cmperr.h | 134 - libs/openssl-3.6.0-beta1/x86/include/openssl/cms.h | 520 - .../x86/include/openssl/cmserr.h | 129 - .../openssl-3.6.0-beta1/x86/include/openssl/comp.h | 98 - .../x86/include/openssl/comperr.h | 38 - .../openssl-3.6.0-beta1/x86/include/openssl/conf.h | 214 - .../x86/include/openssl/conf_api.h | 46 - .../x86/include/openssl/conferr.h | 52 - .../x86/include/openssl/configuration.h | 197 - .../x86/include/openssl/conftypes.h | 44 - .../openssl-3.6.0-beta1/x86/include/openssl/core.h | 236 - .../x86/include/openssl/core_dispatch.h | 1156 - .../x86/include/openssl/core_names.h | 584 - .../x86/include/openssl/core_object.h | 41 - .../openssl-3.6.0-beta1/x86/include/openssl/crmf.h | 278 - .../x86/include/openssl/crmferr.h | 57 - .../x86/include/openssl/crypto.h | 614 - .../x86/include/openssl/cryptoerr.h | 56 - .../x86/include/openssl/cryptoerr_legacy.h | 1466 - libs/openssl-3.6.0-beta1/x86/include/openssl/ct.h | 573 - .../x86/include/openssl/cterr.h | 45 - .../x86/include/openssl/decoder.h | 133 - .../x86/include/openssl/decodererr.h | 28 - libs/openssl-3.6.0-beta1/x86/include/openssl/des.h | 211 - libs/openssl-3.6.0-beta1/x86/include/openssl/dh.h | 339 - .../x86/include/openssl/dherr.h | 59 - libs/openssl-3.6.0-beta1/x86/include/openssl/dsa.h | 280 - .../x86/include/openssl/dsaerr.h | 44 - .../x86/include/openssl/dtls1.h | 57 - .../x86/include/openssl/e_os2.h | 310 - .../x86/include/openssl/e_ostime.h | 38 - .../x86/include/openssl/ebcdic.h | 39 - libs/openssl-3.6.0-beta1/x86/include/openssl/ec.h | 1588 - .../openssl-3.6.0-beta1/x86/include/openssl/ecdh.h | 10 - .../x86/include/openssl/ecdsa.h | 10 - .../x86/include/openssl/ecerr.h | 104 - .../x86/include/openssl/encoder.h | 124 - .../x86/include/openssl/encodererr.h | 28 - .../x86/include/openssl/engine.h | 833 - .../x86/include/openssl/engineerr.h | 63 - libs/openssl-3.6.0-beta1/x86/include/openssl/err.h | 512 - libs/openssl-3.6.0-beta1/x86/include/openssl/ess.h | 128 - .../x86/include/openssl/esserr.h | 32 - libs/openssl-3.6.0-beta1/x86/include/openssl/evp.h | 2345 - .../x86/include/openssl/evperr.h | 148 - .../x86/include/openssl/fips_names.h | 50 - .../x86/include/openssl/fipskey.h | 41 - .../openssl-3.6.0-beta1/x86/include/openssl/hmac.h | 62 - .../openssl-3.6.0-beta1/x86/include/openssl/hpke.h | 169 - .../openssl-3.6.0-beta1/x86/include/openssl/http.h | 119 - .../x86/include/openssl/httperr.h | 56 - .../openssl-3.6.0-beta1/x86/include/openssl/idea.h | 82 - .../x86/include/openssl/indicator.h | 31 - libs/openssl-3.6.0-beta1/x86/include/openssl/kdf.h | 142 - .../x86/include/openssl/kdferr.h | 16 - .../x86/include/openssl/lhash.h | 398 - .../x86/include/openssl/macros.h | 361 - libs/openssl-3.6.0-beta1/x86/include/openssl/md2.h | 56 - libs/openssl-3.6.0-beta1/x86/include/openssl/md4.h | 63 - libs/openssl-3.6.0-beta1/x86/include/openssl/md5.h | 62 - .../openssl-3.6.0-beta1/x86/include/openssl/mdc2.h | 55 - .../x86/include/openssl/ml_kem.h | 31 - .../x86/include/openssl/modes.h | 219 - .../x86/include/openssl/obj_mac.h | 6695 -- .../x86/include/openssl/objects.h | 184 - .../x86/include/openssl/objectserr.h | 28 - .../openssl-3.6.0-beta1/x86/include/openssl/ocsp.h | 483 - .../x86/include/openssl/ocsperr.h | 53 - .../x86/include/openssl/opensslconf.h | 17 - .../x86/include/openssl/opensslv.h | 109 - .../x86/include/openssl/ossl_typ.h | 16 - .../x86/include/openssl/param_build.h | 63 - .../x86/include/openssl/params.h | 166 - libs/openssl-3.6.0-beta1/x86/include/openssl/pem.h | 548 - .../openssl-3.6.0-beta1/x86/include/openssl/pem2.h | 19 - .../x86/include/openssl/pemerr.h | 59 - .../x86/include/openssl/pkcs12.h | 372 - .../x86/include/openssl/pkcs12err.h | 46 - .../x86/include/openssl/pkcs7.h | 430 - .../x86/include/openssl/pkcs7err.h | 63 - .../x86/include/openssl/prov_ssl.h | 38 - .../x86/include/openssl/proverr.h | 171 - .../x86/include/openssl/provider.h | 94 - .../openssl-3.6.0-beta1/x86/include/openssl/quic.h | 75 - .../openssl-3.6.0-beta1/x86/include/openssl/rand.h | 131 - .../x86/include/openssl/randerr.h | 70 - libs/openssl-3.6.0-beta1/x86/include/openssl/rc2.h | 68 - libs/openssl-3.6.0-beta1/x86/include/openssl/rc4.h | 47 - libs/openssl-3.6.0-beta1/x86/include/openssl/rc5.h | 79 - .../x86/include/openssl/ripemd.h | 59 - libs/openssl-3.6.0-beta1/x86/include/openssl/rsa.h | 615 - .../x86/include/openssl/rsaerr.h | 107 - .../x86/include/openssl/safestack.h | 320 - .../openssl-3.6.0-beta1/x86/include/openssl/seed.h | 113 - .../x86/include/openssl/self_test.h | 116 - libs/openssl-3.6.0-beta1/x86/include/openssl/sha.h | 139 - libs/openssl-3.6.0-beta1/x86/include/openssl/srp.h | 285 - .../openssl-3.6.0-beta1/x86/include/openssl/srtp.h | 68 - libs/openssl-3.6.0-beta1/x86/include/openssl/ssl.h | 2940 - .../openssl-3.6.0-beta1/x86/include/openssl/ssl2.h | 30 - .../openssl-3.6.0-beta1/x86/include/openssl/ssl3.h | 358 - .../x86/include/openssl/sslerr.h | 382 - .../x86/include/openssl/sslerr_legacy.h | 467 - .../x86/include/openssl/stack.h | 92 - .../x86/include/openssl/store.h | 379 - .../x86/include/openssl/storeerr.h | 49 - .../x86/include/openssl/symhacks.h | 39 - .../x86/include/openssl/thread.h | 31 - .../openssl-3.6.0-beta1/x86/include/openssl/tls1.h | 1226 - .../x86/include/openssl/trace.h | 321 - libs/openssl-3.6.0-beta1/x86/include/openssl/ts.h | 522 - .../x86/include/openssl/tserr.h | 67 - .../x86/include/openssl/txt_db.h | 63 - .../x86/include/openssl/types.h | 248 - libs/openssl-3.6.0-beta1/x86/include/openssl/ui.h | 407 - .../x86/include/openssl/uierr.h | 38 - .../x86/include/openssl/whrlpool.h | 62 - .../openssl-3.6.0-beta1/x86/include/openssl/x509.h | 1304 - .../x86/include/openssl/x509_acert.h | 294 - .../x86/include/openssl/x509_vfy.h | 921 - .../x86/include/openssl/x509err.h | 70 - .../x86/include/openssl/x509v3.h | 1968 - .../x86/include/openssl/x509v3err.h | 97 - .../x86/lib/cmake/OpenSSL/OpenSSLConfig.cmake | 161 - .../lib/cmake/OpenSSL/OpenSSLConfigVersion.cmake | 17 - .../openssl-3.6.0-beta1/x86/lib/engines-3/capi.dll | Bin 140560 -> 0 bytes .../openssl-3.6.0-beta1/x86/lib/engines-3/capi.pdb | Bin 2365440 -> 0 bytes .../x86/lib/engines-3/loader_attic.dll | Bin 150288 -> 0 bytes .../x86/lib/engines-3/loader_attic.pdb | Bin 2488320 -> 0 bytes .../x86/lib/engines-3/padlock.dll | Bin 136976 -> 0 bytes .../x86/lib/engines-3/padlock.pdb | Bin 2156544 -> 0 bytes libs/openssl-3.6.0-beta1/x86/lib/libcrypto.lib | Bin 1385330 -> 0 bytes libs/openssl-3.6.0-beta1/x86/lib/libssl.lib | Bin 147790 -> 0 bytes .../x86/lib/ossl-modules/legacy.dll | Bin 208656 -> 0 bytes .../x86/lib/ossl-modules/legacy.pdb | Bin 3594240 -> 0 bytes libs/simclist-1.5/._CMakeLists.txt | Bin 229 -> 0 bytes libs/simclist-1.5/._doc | Bin 229 -> 0 bytes libs/simclist-1.5/._examples | Bin 229 -> 0 bytes libs/simclist-1.5/._perftest | Bin 229 -> 0 bytes libs/simclist-1.5/._regrtest | Bin 229 -> 0 bytes libs/simclist-1.5/._simclist.h | Bin 229 -> 0 bytes libs/simclist-1.5/CMakeLists.txt | 39 - libs/simclist-1.5/Changes | 58 - libs/simclist-1.5/Doxyfile | 1252 - libs/simclist-1.5/examples/._ex1.c | Bin 229 -> 0 bytes libs/simclist-1.5/examples/._ex2.c | Bin 229 -> 0 bytes libs/simclist-1.5/examples/._ex3.c | Bin 229 -> 0 bytes libs/simclist-1.5/examples/ex1.c | 28 - libs/simclist-1.5/examples/ex2.c | 38 - libs/simclist-1.5/examples/ex3.c | 58 - libs/simclist-1.5/perftest/._README-perftest.txt | Bin 229 -> 0 bytes libs/simclist-1.5/perftest/._ext.c | Bin 229 -> 0 bytes libs/simclist-1.5/perftest/._ins.c | Bin 229 -> 0 bytes libs/simclist-1.5/perftest/._sort.c | Bin 229 -> 0 bytes libs/simclist-1.5/perftest/README-perftest.txt | 34 - libs/simclist-1.5/perftest/ext.c | 31 - libs/simclist-1.5/perftest/ins.c | 17 - libs/simclist-1.5/perftest/sort.c | 24 - libs/simclist-1.5/regrtest/._printlist.c | Bin 229 -> 0 bytes libs/simclist-1.5/regrtest/._test1.c | Bin 229 -> 0 bytes libs/simclist-1.5/regrtest/._test2.c | Bin 229 -> 0 bytes libs/simclist-1.5/regrtest/._test3-dump.c | Bin 229 -> 0 bytes libs/simclist-1.5/regrtest/._test3-restore.c | Bin 229 -> 0 bytes libs/simclist-1.5/regrtest/._test4-seeker.c | Bin 229 -> 0 bytes libs/simclist-1.5/regrtest/printlist.c | 11 - libs/simclist-1.5/regrtest/test1.c | 120 - libs/simclist-1.5/regrtest/test2.c | 75 - libs/simclist-1.5/regrtest/test3-dump.c | 57 - libs/simclist-1.5/regrtest/test3-restore.c | 64 - libs/simclist-1.5/regrtest/test4-seeker.c | 53 - libs/timer_lib/.gitattributes | 22 - libs/timer_lib/.gitignore | 163 - libs/timer_lib/Makefile | 23 - libs/timer_lib/test.vcxproj | 169 - libs/timer_lib/timer.sln | 36 - libs/timer_lib/timer.vcxproj | 225 - .../LUA_plugin.tinyfiledialogs.cpp | 287 - .../PascalABC/tinyfd.pas | 56 - .../fortran/tinyfd_main.f90 | 185 - .../fortran/tinyfd_module.f90 | 101 - .../freepascal/hello.pas | 91 - .../freepascal/tinyfd.pp | 138 - .../dll_cs_lua_R_fortran_pascal/tinyfiledialogs.r | 157 - .../tinyfiledialogs32.dll | Bin 161476 -> 0 bytes .../tinyfiledialogs32.lib | Bin 33314 -> 0 bytes .../tinyfiledialogs64.dll | Bin 159666 -> 0 bytes .../tinyfiledialogs64.lib | Bin 33412 -> 0 bytes .../tinyfiledialogsAppleSilicon.dylib | Bin 141120 -> 0 bytes .../tinyfiledialogsIntel.dylib | Bin 119644 -> 0 bytes .../tinyfiledialogsLinux64.so | Bin 134184 -> 0 bytes .../tinyfiledialogsLinux86.so | Bin 123408 -> 0 bytes .../tinyfiledialogsTest.cs | 153 - .../tinyfiledialogs_dll_mingw-32.bat | 29 - .../tinyfiledialogs_dll_mingw-w64-720.bat | 29 - .../tinyfiledialogs_dll_mingw-w64-810.bat | 29 - .../tinyfiledialogs_dylib.sh | 18 - .../tinyfiledialogs_so.sh | 20 - libs/tinyfiledialogs/hello.c | 307 - libs/tinyfiledialogs/hello_wchar_t.c | 241 - .../more_dialogs/tinyfd_moredialogs.c | 259 - .../more_dialogs/tinyfd_moredialogs.h | 48 - libs/xml.c/.github/workflows/ci.yaml | 24 - libs/xml.c/.gitignore | 2 - libs/xml.c/.mc/rebuild.sh | 21 - libs/xml.c/.mc/ubuntu-22.04.yaml | 8 - libs/xml.c/CMakeLists.txt | 51 - libs/xml.c/test/CMakeLists.txt | 128 - libs/xml.c/test/example.c | 96 - libs/xml.c/test/test-attributes.xml | 1 - libs/xml.c/test/test-huitre39.c | 181 - libs/xml.c/test/test-xml-c.c | 265 - libs/xml.c/test/test-xml-cpp.cpp | 222 - libs/xml.c/test/test.xml | 7 - libs/zip/.gitattributes | 1 - libs/zip/.gitignore | 60 - libs/zip/CMakeLists.txt | 153 - libs/zip/CONTRIBUTING.md | 9 - libs/zip/Doxyfile.in | 2480 - libs/zip/cmake/Config.cmake.in | 4 - libs/zip/cmake/asan-wrapper | 55 - libs/zip/cmake/cmake_uninstall.cmake.in | 23 - libs/zip/fuzz/CMakeLists.txt | 24 - libs/zip/fuzz/build.sh | 4 - libs/zip/fuzz/fuzz_entry.c | 38 - libs/zip/fuzz/fuzz_stream.c | 40 - libs/zip/test/CMakeLists.txt | 81 - libs/zip/test/data/data.bin | Bin 409600 -> 0 bytes libs/zip/test/minunit.h | 370 - libs/zip/test/test_append.c | 106 - libs/zip/test/test_data.c | 85 - libs/zip/test/test_entry.c | 442 - libs/zip/test/test_extract.c | 199 - libs/zip/test/test_offset.c | 98 - libs/zip/test/test_open.c | 90 - libs/zip/test/test_permissions.c | 204 - libs/zip/test/test_read.c | 198 - libs/zip/test/test_static.c | 98 - libs/zip/test/test_write.c | 115 - 818 files changed, 4 insertions(+), 362087 deletions(-) delete mode 100644 libs/anr/.gitignore delete mode 100644 libs/anr/examples/Makefile delete mode 100644 libs/anr/examples/hash.txt delete mode 100644 libs/anr/examples/res/ButterflyKids-Regular.ttf delete mode 100644 libs/anr/examples/res/bible.txt delete mode 100644 libs/anr/examples/res/cid2code.txt delete mode 100644 libs/anr/examples/res/cid2codesmall.txt delete mode 100644 libs/anr/examples/res/comic-sans.ttf delete mode 100644 libs/anr/examples/res/greenland_grid_velo.bmp delete mode 100644 libs/anr/examples/res/small.txt delete mode 100644 libs/anr/examples/res/spongebob.png delete mode 100644 libs/anr/examples/res/stb_image.h delete mode 100644 libs/anr/examples/res/test.txt delete mode 100644 libs/anr/examples/test_data.c delete mode 100644 libs/anr/examples/test_pdf.c delete mode 100644 libs/anr/examples/test_sc.c delete mode 100644 libs/cpp-httplib/.gitattributes delete mode 100644 libs/cpp-httplib/.github/workflows/abidiff.yaml delete mode 100644 libs/cpp-httplib/.github/workflows/cifuzz.yaml delete mode 100644 libs/cpp-httplib/.github/workflows/release-docker.yml delete mode 100644 libs/cpp-httplib/.github/workflows/test.yaml delete mode 100644 libs/cpp-httplib/.github/workflows/test_proxy.yaml delete mode 100644 libs/cpp-httplib/CMakeLists.txt delete mode 100644 libs/cpp-httplib/Dockerfile delete mode 100644 libs/cpp-httplib/benchmark/Makefile delete mode 100644 libs/cpp-httplib/benchmark/cpp-httplib/main.cpp delete mode 100644 libs/cpp-httplib/benchmark/crow/crow_all.h delete mode 100644 libs/cpp-httplib/benchmark/crow/main.cpp delete mode 100644 libs/cpp-httplib/cmake/FindBrotli.cmake delete mode 100644 libs/cpp-httplib/cmake/httplibConfig.cmake.in delete mode 100644 libs/cpp-httplib/docker-compose.yml delete mode 100644 libs/cpp-httplib/docker/html/index.html delete mode 100644 libs/cpp-httplib/docker/main.cc delete mode 100644 libs/cpp-httplib/example/Dockerfile.hello delete mode 100644 libs/cpp-httplib/example/Makefile delete mode 100644 libs/cpp-httplib/example/accept_header.cc delete mode 100644 libs/cpp-httplib/example/benchmark.cc delete mode 100644 libs/cpp-httplib/example/ca-bundle.crt delete mode 100644 libs/cpp-httplib/example/client.cc delete mode 100644 libs/cpp-httplib/example/client.vcxproj delete mode 100644 libs/cpp-httplib/example/example.sln delete mode 100644 libs/cpp-httplib/example/hello.cc delete mode 100644 libs/cpp-httplib/example/one_time_request.cc delete mode 100644 libs/cpp-httplib/example/redirect.cc delete mode 100644 libs/cpp-httplib/example/server.cc delete mode 100644 libs/cpp-httplib/example/server.vcxproj delete mode 100644 libs/cpp-httplib/example/server_and_client.cc delete mode 100644 libs/cpp-httplib/example/simplecli.cc delete mode 100644 libs/cpp-httplib/example/simplesvr.cc delete mode 100644 libs/cpp-httplib/example/upload.cc delete mode 100644 libs/cpp-httplib/example/uploader.sh delete mode 100644 libs/cpp-httplib/meson.build delete mode 100644 libs/cpp-httplib/meson_options.txt delete mode 100644 libs/cpp-httplib/split.py delete mode 100644 libs/cpp-httplib/test/CMakeLists.txt delete mode 100644 libs/cpp-httplib/test/Makefile delete mode 100644 libs/cpp-httplib/test/ca-bundle.crt delete mode 100644 libs/cpp-httplib/test/fuzzing/CMakeLists.txt delete mode 100644 libs/cpp-httplib/test/fuzzing/Makefile delete mode 100644 libs/cpp-httplib/test/fuzzing/corpus/1 delete mode 100644 libs/cpp-httplib/test/fuzzing/corpus/2 delete mode 100644 libs/cpp-httplib/test/fuzzing/corpus/3 delete mode 100644 libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5042094968537088 delete mode 100644 libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5372331946541056 delete mode 100644 libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5386708825800704 delete mode 100644 libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5667822731132928 delete mode 100644 libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5886572146327552 delete mode 100644 libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5942767436562432 delete mode 100644 libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-6007379124158464 delete mode 100644 libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-6508706672541696 delete mode 100644 libs/cpp-httplib/test/fuzzing/corpus/issue1264 delete mode 100644 libs/cpp-httplib/test/fuzzing/server_fuzzer.cc delete mode 100644 libs/cpp-httplib/test/fuzzing/server_fuzzer.dict delete mode 100644 libs/cpp-httplib/test/fuzzing/standalone_fuzz_target_runner.cpp delete mode 100644 libs/cpp-httplib/test/gen-certs.sh delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/gtest-assertion-result.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/gtest-death-test.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/gtest-matchers.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/gtest-message.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/gtest-param-test.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/gtest-printers.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/gtest-spi.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/gtest-test-part.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/gtest-typed-test.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/gtest.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/gtest_pred_impl.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/gtest_prod.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/internal/custom/README.md delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/internal/custom/gtest-port.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/internal/custom/gtest-printers.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/internal/custom/gtest.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-death-test-internal.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-filepath.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-internal.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-param-util.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-port-arch.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-port.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-string.h delete mode 100644 libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-type-util.h delete mode 100644 libs/cpp-httplib/test/gtest/src/gtest-all.cc delete mode 100644 libs/cpp-httplib/test/gtest/src/gtest-assertion-result.cc delete mode 100644 libs/cpp-httplib/test/gtest/src/gtest-death-test.cc delete mode 100644 libs/cpp-httplib/test/gtest/src/gtest-filepath.cc delete mode 100644 libs/cpp-httplib/test/gtest/src/gtest-internal-inl.h delete mode 100644 libs/cpp-httplib/test/gtest/src/gtest-matchers.cc delete mode 100644 libs/cpp-httplib/test/gtest/src/gtest-port.cc delete mode 100644 libs/cpp-httplib/test/gtest/src/gtest-printers.cc delete mode 100644 libs/cpp-httplib/test/gtest/src/gtest-test-part.cc delete mode 100644 libs/cpp-httplib/test/gtest/src/gtest-typed-test.cc delete mode 100644 libs/cpp-httplib/test/gtest/src/gtest.cc delete mode 100644 libs/cpp-httplib/test/gtest/src/gtest_main.cc delete mode 100644 libs/cpp-httplib/test/image.jpg delete mode 100644 libs/cpp-httplib/test/include_httplib.cc delete mode 100644 libs/cpp-httplib/test/include_windows_h.cc delete mode 100644 libs/cpp-httplib/test/make-shared-library.sh delete mode 100644 libs/cpp-httplib/test/meson.build delete mode 100644 libs/cpp-httplib/test/proxy/Dockerfile delete mode 100644 libs/cpp-httplib/test/proxy/basic_passwd delete mode 100644 libs/cpp-httplib/test/proxy/basic_squid.conf delete mode 100644 libs/cpp-httplib/test/proxy/digest_passwd delete mode 100644 libs/cpp-httplib/test/proxy/digest_squid.conf delete mode 100644 libs/cpp-httplib/test/proxy/docker-compose.yml delete mode 100644 libs/cpp-httplib/test/test.cc delete mode 100644 libs/cpp-httplib/test/test.conf delete mode 100644 libs/cpp-httplib/test/test.rootCA.conf delete mode 100644 libs/cpp-httplib/test/test.sln delete mode 100644 libs/cpp-httplib/test/test.vcxproj delete mode 100644 libs/cpp-httplib/test/test_proxy.cc delete mode 100644 libs/cpp-httplib/test/www/dir/1MB.txt delete mode 100644 libs/cpp-httplib/test/www/dir/index.html delete mode 100644 libs/cpp-httplib/test/www/dir/meson.build delete mode 100644 libs/cpp-httplib/test/www/dir/test.abcde delete mode 100644 libs/cpp-httplib/test/www/dir/test.html delete mode 100644 libs/cpp-httplib/test/www/empty_file delete mode 100644 libs/cpp-httplib/test/www/file delete mode 100644 libs/cpp-httplib/test/www/meson.build delete mode 100644 "libs/cpp-httplib/test/www/\346\227\245\346\234\254\350\252\236Dir/meson.build" delete mode 100644 "libs/cpp-httplib/test/www/\346\227\245\346\234\254\350\252\236Dir/\346\227\245\346\234\254\350\252\236File.txt" delete mode 100644 libs/cpp-httplib/test/www2/dir/index.html delete mode 100644 libs/cpp-httplib/test/www2/dir/meson.build delete mode 100644 libs/cpp-httplib/test/www2/dir/test.html delete mode 100644 libs/cpp-httplib/test/www3/dir/index.html delete mode 100644 libs/cpp-httplib/test/www3/dir/meson.build delete mode 100644 libs/cpp-httplib/test/www3/dir/test.html delete mode 100644 libs/greatest/.gitignore delete mode 100644 libs/greatest/CHANGELOG.md delete mode 100644 libs/greatest/CONTRIBUTING.md delete mode 100644 libs/greatest/Makefile delete mode 100644 libs/greatest/contrib/entapment delete mode 100644 libs/greatest/contrib/greenest delete mode 100644 libs/greatest/contrib/testify delete mode 100644 libs/greatest/package.json delete mode 100644 libs/imgui-1.92.1/.editorconfig delete mode 100644 libs/imgui-1.92.1/.gitattributes delete mode 100644 libs/imgui-1.92.1/.github/FUNDING.yml delete mode 100644 libs/imgui-1.92.1/.github/ISSUE_TEMPLATE/config.yml delete mode 100644 libs/imgui-1.92.1/.github/ISSUE_TEMPLATE/issue_template.yml delete mode 100644 libs/imgui-1.92.1/.github/pull_request_template.md delete mode 100644 libs/imgui-1.92.1/.github/workflows/build.yml delete mode 100644 libs/imgui-1.92.1/.github/workflows/manual.yml delete mode 100644 libs/imgui-1.92.1/.github/workflows/scheduled.yml delete mode 100644 libs/imgui-1.92.1/.github/workflows/static-analysis.yml delete mode 100644 libs/imgui-1.92.1/.gitignore delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_allegro5.cpp delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_allegro5.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_android.cpp delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_android.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_dx10.cpp delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_dx10.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_dx11.cpp delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_dx11.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_dx12.cpp delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_dx12.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_dx9.cpp delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_dx9.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_glut.cpp delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_glut.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_metal.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_metal.mm delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_opengl3.cpp delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_opengl3.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_opengl3_loader.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_osx.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_osx.mm delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_sdl2.cpp delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_sdl2.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_sdl3.cpp delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_sdl3.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_sdlgpu3.cpp delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_sdlgpu3.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_sdlgpu3_shaders.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_sdlrenderer2.cpp delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_sdlrenderer2.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_sdlrenderer3.cpp delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_sdlrenderer3.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_vulkan.cpp delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_vulkan.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_wgpu.cpp delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_wgpu.h delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_win32.cpp delete mode 100644 libs/imgui-1.92.1/backends/imgui_impl_win32.h delete mode 100644 libs/imgui-1.92.1/backends/sdlgpu3/build_instructions.txt delete mode 100644 libs/imgui-1.92.1/backends/sdlgpu3/shader.frag delete mode 100644 libs/imgui-1.92.1/backends/sdlgpu3/shader.vert delete mode 100644 libs/imgui-1.92.1/backends/vulkan/build_instructions.txt delete mode 100644 libs/imgui-1.92.1/backends/vulkan/generate_spv.sh delete mode 100644 libs/imgui-1.92.1/backends/vulkan/glsl_shader.frag delete mode 100644 libs/imgui-1.92.1/backends/vulkan/glsl_shader.vert delete mode 100644 libs/imgui-1.92.1/docs/BACKENDS.md delete mode 100644 libs/imgui-1.92.1/docs/CHANGELOG.txt delete mode 100644 libs/imgui-1.92.1/docs/CONTRIBUTING.md delete mode 100644 libs/imgui-1.92.1/docs/EXAMPLES.md delete mode 100644 libs/imgui-1.92.1/docs/FAQ.md delete mode 100644 libs/imgui-1.92.1/docs/FONTS.md delete mode 100644 libs/imgui-1.92.1/docs/README.md delete mode 100644 libs/imgui-1.92.1/docs/TODO.txt delete mode 100644 libs/imgui-1.92.1/examples/README.txt delete mode 100644 libs/imgui-1.92.1/examples/example_allegro5/README.md delete mode 100644 libs/imgui-1.92.1/examples/example_allegro5/example_allegro5.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_allegro5/example_allegro5.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_allegro5/imconfig_allegro5.h delete mode 100644 libs/imgui-1.92.1/examples/example_allegro5/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_android_opengl3/CMakeLists.txt delete mode 100644 libs/imgui-1.92.1/examples/example_android_opengl3/android/.gitignore delete mode 100644 libs/imgui-1.92.1/examples/example_android_opengl3/android/app/build.gradle delete mode 100644 libs/imgui-1.92.1/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml delete mode 100644 libs/imgui-1.92.1/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt delete mode 100644 libs/imgui-1.92.1/examples/example_android_opengl3/android/build.gradle delete mode 100644 libs/imgui-1.92.1/examples/example_android_opengl3/android/settings.gradle delete mode 100644 libs/imgui-1.92.1/examples/example_android_opengl3/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_apple_metal/Makefile delete mode 100644 libs/imgui-1.92.1/examples/example_apple_metal/README.md delete mode 100644 libs/imgui-1.92.1/examples/example_apple_metal/example_apple_metal.xcodeproj/project.pbxproj delete mode 100644 libs/imgui-1.92.1/examples/example_apple_metal/iOS/Info-iOS.plist delete mode 100644 libs/imgui-1.92.1/examples/example_apple_metal/iOS/LaunchScreen.storyboard delete mode 100644 libs/imgui-1.92.1/examples/example_apple_metal/macOS/Info-macOS.plist delete mode 100644 libs/imgui-1.92.1/examples/example_apple_metal/macOS/MainMenu.storyboard delete mode 100644 libs/imgui-1.92.1/examples/example_apple_metal/main.mm delete mode 100644 libs/imgui-1.92.1/examples/example_apple_opengl2/Makefile delete mode 100644 libs/imgui-1.92.1/examples/example_apple_opengl2/example_apple_opengl2.xcodeproj/project.pbxproj delete mode 100644 libs/imgui-1.92.1/examples/example_apple_opengl2/main.mm delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_metal/Makefile delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_metal/main.mm delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_opengl2/Makefile delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_opengl2/build_win32.bat delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_opengl2/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_opengl3/Makefile delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_opengl3/Makefile.emscripten delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_opengl3/build_win32.bat delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_opengl3/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_vulkan/CMakeLists.txt delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_vulkan/Makefile delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_vulkan/build_win32.bat delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_vulkan/build_win64.bat delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_vulkan/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_wgpu/CMakeLists.txt delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_wgpu/Makefile.emscripten delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_wgpu/README.md delete mode 100644 libs/imgui-1.92.1/examples/example_glfw_wgpu/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_glut_opengl2/Makefile delete mode 100644 libs/imgui-1.92.1/examples/example_glut_opengl2/example_glut_opengl2.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_glut_opengl2/example_glut_opengl2.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_glut_opengl2/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_null/Makefile delete mode 100644 libs/imgui-1.92.1/examples/example_null/build_win32.bat delete mode 100644 libs/imgui-1.92.1/examples/example_null/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_directx11/build_win32.bat delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_directx11/example_sdl2_directx11.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_directx11/example_sdl2_directx11.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_directx11/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_metal/Makefile delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_metal/main.mm delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_opengl2/Makefile delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_opengl2/README.md delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_opengl2/build_win32.bat delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_opengl2/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_opengl3/Makefile delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_opengl3/Makefile.emscripten delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_opengl3/README.md delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_opengl3/build_win32.bat delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_opengl3/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/Makefile delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/README.md delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/build_win32.bat delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_vulkan/Makefile delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_vulkan/build_win32.bat delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_vulkan/build_win64.bat delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_sdl2_vulkan/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_opengl3/Makefile delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_opengl3/Makefile.emscripten delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_opengl3/README.md delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_opengl3/build_win32.bat delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_opengl3/build_win64.bat delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_opengl3/example_sdl3_opengl3.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_opengl3/example_sdl3_opengl3.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_opengl3/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/Makefile delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/build_win64.bat delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/example_sdl3_sdlgpu3.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/example_sdl3_sdlgpu3.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/Makefile delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/build_win32.bat delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/example_sdl3_sdlrenderer3.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/example_sdl3_sdlrenderer3.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_vulkan/Makefile delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_vulkan/build_win32.bat delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_vulkan/build_win64.bat delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_vulkan/example_sdl3_vulkan.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_vulkan/example_sdl3_vulkan.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_sdl3_vulkan/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_win32_directx10/build_win32.bat delete mode 100644 libs/imgui-1.92.1/examples/example_win32_directx10/example_win32_directx10.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_win32_directx10/example_win32_directx10.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_win32_directx10/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_win32_directx11/build_win32.bat delete mode 100644 libs/imgui-1.92.1/examples/example_win32_directx11/example_win32_directx11.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_win32_directx11/example_win32_directx11.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_win32_directx11/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_win32_directx12/build_win32.bat delete mode 100644 libs/imgui-1.92.1/examples/example_win32_directx12/example_win32_directx12.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_win32_directx12/example_win32_directx12.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_win32_directx12/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_win32_directx9/build_win32.bat delete mode 100644 libs/imgui-1.92.1/examples/example_win32_directx9/example_win32_directx9.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_win32_directx9/example_win32_directx9.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_win32_directx9/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_win32_opengl3/build_mingw.bat delete mode 100644 libs/imgui-1.92.1/examples/example_win32_opengl3/build_win32.bat delete mode 100644 libs/imgui-1.92.1/examples/example_win32_opengl3/example_win32_opengl3.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_win32_opengl3/example_win32_opengl3.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_win32_opengl3/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/example_win32_vulkan/build_win32.bat delete mode 100644 libs/imgui-1.92.1/examples/example_win32_vulkan/build_win64.bat delete mode 100644 libs/imgui-1.92.1/examples/example_win32_vulkan/example_win32_vulkan.vcxproj delete mode 100644 libs/imgui-1.92.1/examples/example_win32_vulkan/example_win32_vulkan.vcxproj.filters delete mode 100644 libs/imgui-1.92.1/examples/example_win32_vulkan/main.cpp delete mode 100644 libs/imgui-1.92.1/examples/imgui_examples.sln delete mode 100644 libs/imgui-1.92.1/examples/libs/emscripten/emscripten_mainloop_stub.h delete mode 100644 libs/imgui-1.92.1/examples/libs/emscripten/shell_minimal.html delete mode 100644 libs/imgui-1.92.1/examples/libs/glfw/COPYING.txt delete mode 100644 libs/imgui-1.92.1/examples/libs/glfw/include/GLFW/glfw3.h delete mode 100644 libs/imgui-1.92.1/examples/libs/glfw/include/GLFW/glfw3native.h delete mode 100644 libs/imgui-1.92.1/examples/libs/glfw/lib-vc2010-32/glfw3.lib delete mode 100644 libs/imgui-1.92.1/examples/libs/glfw/lib-vc2010-64/glfw3.lib delete mode 100644 libs/imgui-1.92.1/examples/libs/usynergy/README.txt delete mode 100644 libs/imgui-1.92.1/examples/libs/usynergy/uSynergy.c delete mode 100644 libs/imgui-1.92.1/examples/libs/usynergy/uSynergy.h delete mode 100644 libs/imgui-1.92.1/misc/fonts/Cousine-Regular.ttf delete mode 100644 libs/imgui-1.92.1/misc/fonts/DroidSans.ttf delete mode 100644 libs/imgui-1.92.1/misc/fonts/Karla-Regular.ttf delete mode 100644 libs/imgui-1.92.1/misc/fonts/ProggyClean.ttf delete mode 100644 libs/imgui-1.92.1/misc/fonts/ProggyTiny.ttf delete mode 100644 libs/imgui-1.92.1/misc/fonts/Roboto-Medium.ttf delete mode 100644 libs/imgui-1.92.1/misc/fonts/binary_to_compressed_c.cpp delete mode 100644 libs/imgui-1.92.1/misc/freetype/README.md delete mode 100644 libs/imgui-1.92.1/misc/freetype/imgui_freetype.cpp delete mode 100644 libs/imgui-1.92.1/misc/freetype/imgui_freetype.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/bin/c_rehash.pl delete mode 100644 libs/openssl-3.6.0-beta1/arm64/bin/libcrypto-3-arm64.dll delete mode 100644 libs/openssl-3.6.0-beta1/arm64/bin/libcrypto-3-arm64.pdb delete mode 100644 libs/openssl-3.6.0-beta1/arm64/bin/libssl-3-arm64.dll delete mode 100644 libs/openssl-3.6.0-beta1/arm64/bin/libssl-3-arm64.pdb delete mode 100644 libs/openssl-3.6.0-beta1/arm64/bin/openssl.exe delete mode 100644 libs/openssl-3.6.0-beta1/arm64/bin/openssl.pdb delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/aes.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/applink.c delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/asn1.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/asn1err.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/asn1t.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/async.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/asyncerr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/bio.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/bioerr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/blowfish.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/bn.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/bnerr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/buffer.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/buffererr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/byteorder.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/camellia.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/cast.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/cmac.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/cmp.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/cmp_util.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/cmperr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/cms.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/cmserr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/comp.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/comperr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/conf.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/conf_api.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/conferr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/configuration.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/conftypes.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/core.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/core_dispatch.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/core_names.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/core_object.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/crmf.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/crmferr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/crypto.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/cryptoerr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/cryptoerr_legacy.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/ct.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/cterr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/decoder.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/decodererr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/des.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/dh.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/dherr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/dsa.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/dsaerr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/dtls1.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/e_os2.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/e_ostime.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/ebcdic.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/ec.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/ecdh.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/ecdsa.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/ecerr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/encoder.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/encodererr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/engine.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/engineerr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/err.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/ess.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/esserr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/evp.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/evperr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/fips_names.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/fipskey.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/hmac.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/hpke.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/http.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/httperr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/idea.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/indicator.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/kdf.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/kdferr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/lhash.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/macros.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/md2.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/md4.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/md5.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/mdc2.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/ml_kem.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/modes.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/obj_mac.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/objects.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/objectserr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/ocsp.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/ocsperr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/opensslconf.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/opensslv.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/ossl_typ.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/param_build.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/params.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/pem.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/pem2.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/pemerr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/pkcs12.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/pkcs12err.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/pkcs7.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/pkcs7err.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/prov_ssl.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/proverr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/provider.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/quic.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/rand.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/randerr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/rc2.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/rc4.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/rc5.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/ripemd.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/rsa.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/rsaerr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/safestack.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/seed.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/self_test.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/sha.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/srp.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/srtp.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/ssl.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/ssl2.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/ssl3.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/sslerr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/sslerr_legacy.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/stack.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/store.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/storeerr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/symhacks.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/thread.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/tls1.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/trace.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/ts.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/tserr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/txt_db.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/types.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/ui.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/uierr.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/whrlpool.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/x509.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/x509_acert.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/x509_vfy.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/x509err.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/x509v3.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/include/openssl/x509v3err.h delete mode 100644 libs/openssl-3.6.0-beta1/arm64/lib/cmake/OpenSSL/OpenSSLConfig.cmake delete mode 100644 libs/openssl-3.6.0-beta1/arm64/lib/cmake/OpenSSL/OpenSSLConfigVersion.cmake delete mode 100644 libs/openssl-3.6.0-beta1/arm64/lib/engines-3/capi.dll delete mode 100644 libs/openssl-3.6.0-beta1/arm64/lib/engines-3/capi.pdb delete mode 100644 libs/openssl-3.6.0-beta1/arm64/lib/engines-3/loader_attic.dll delete mode 100644 libs/openssl-3.6.0-beta1/arm64/lib/engines-3/loader_attic.pdb delete mode 100644 libs/openssl-3.6.0-beta1/arm64/lib/engines-3/padlock.dll delete mode 100644 libs/openssl-3.6.0-beta1/arm64/lib/engines-3/padlock.pdb delete mode 100644 libs/openssl-3.6.0-beta1/arm64/lib/libcrypto.lib delete mode 100644 libs/openssl-3.6.0-beta1/arm64/lib/libssl.lib delete mode 100644 libs/openssl-3.6.0-beta1/arm64/lib/ossl-modules/legacy.dll delete mode 100644 libs/openssl-3.6.0-beta1/arm64/lib/ossl-modules/legacy.pdb delete mode 100644 libs/openssl-3.6.0-beta1/projects/.clang-format delete mode 100644 libs/openssl-3.6.0-beta1/projects/auxiliary/build/msvc/openssl-3.props delete mode 100644 libs/openssl-3.6.0-beta1/projects/examples/msvc/.gitignore delete mode 100644 libs/openssl-3.6.0-beta1/projects/examples/msvc/cmac.props delete mode 100644 libs/openssl-3.6.0-beta1/projects/examples/msvc/cmac.vcxproj delete mode 100644 libs/openssl-3.6.0-beta1/projects/examples/msvc/cmac.vcxproj.filters delete mode 100644 libs/openssl-3.6.0-beta1/projects/examples/msvc/examples.sln delete mode 100644 libs/openssl-3.6.0-beta1/projects/examples/msvc/examples.sln.props delete mode 100644 libs/openssl-3.6.0-beta1/projects/examples/src/cmac.cpp delete mode 100644 libs/openssl-3.6.0-beta1/projects/readme.md delete mode 100644 libs/openssl-3.6.0-beta1/ssl/ct_log_list.cnf delete mode 100644 libs/openssl-3.6.0-beta1/ssl/ct_log_list.cnf.dist delete mode 100644 libs/openssl-3.6.0-beta1/ssl/misc/CA.pl delete mode 100644 libs/openssl-3.6.0-beta1/ssl/misc/tsget.pl delete mode 100644 libs/openssl-3.6.0-beta1/ssl/openssl.cnf delete mode 100644 libs/openssl-3.6.0-beta1/ssl/openssl.cnf.dist delete mode 100644 libs/openssl-3.6.0-beta1/x86/bin/c_rehash.pl delete mode 100644 libs/openssl-3.6.0-beta1/x86/bin/libcrypto-3.dll delete mode 100644 libs/openssl-3.6.0-beta1/x86/bin/libcrypto-3.pdb delete mode 100644 libs/openssl-3.6.0-beta1/x86/bin/libssl-3.dll delete mode 100644 libs/openssl-3.6.0-beta1/x86/bin/libssl-3.pdb delete mode 100644 libs/openssl-3.6.0-beta1/x86/bin/openssl.exe delete mode 100644 libs/openssl-3.6.0-beta1/x86/bin/openssl.pdb delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/aes.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/applink.c delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/asn1.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/asn1err.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/asn1t.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/async.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/asyncerr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/bio.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/bioerr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/blowfish.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/bn.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/bnerr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/buffer.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/buffererr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/byteorder.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/camellia.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/cast.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/cmac.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/cmp.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/cmp_util.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/cmperr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/cms.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/cmserr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/comp.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/comperr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/conf.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/conf_api.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/conferr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/configuration.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/conftypes.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/core.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/core_dispatch.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/core_names.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/core_object.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/crmf.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/crmferr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/crypto.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/cryptoerr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/cryptoerr_legacy.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/ct.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/cterr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/decoder.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/decodererr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/des.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/dh.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/dherr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/dsa.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/dsaerr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/dtls1.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/e_os2.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/e_ostime.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/ebcdic.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/ec.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/ecdh.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/ecdsa.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/ecerr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/encoder.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/encodererr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/engine.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/engineerr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/err.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/ess.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/esserr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/evp.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/evperr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/fips_names.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/fipskey.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/hmac.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/hpke.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/http.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/httperr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/idea.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/indicator.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/kdf.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/kdferr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/lhash.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/macros.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/md2.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/md4.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/md5.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/mdc2.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/ml_kem.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/modes.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/obj_mac.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/objects.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/objectserr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/ocsp.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/ocsperr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/opensslconf.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/opensslv.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/ossl_typ.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/param_build.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/params.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/pem.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/pem2.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/pemerr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/pkcs12.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/pkcs12err.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/pkcs7.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/pkcs7err.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/prov_ssl.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/proverr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/provider.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/quic.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/rand.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/randerr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/rc2.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/rc4.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/rc5.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/ripemd.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/rsa.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/rsaerr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/safestack.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/seed.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/self_test.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/sha.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/srp.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/srtp.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/ssl.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/ssl2.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/ssl3.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/sslerr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/sslerr_legacy.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/stack.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/store.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/storeerr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/symhacks.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/thread.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/tls1.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/trace.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/ts.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/tserr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/txt_db.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/types.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/ui.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/uierr.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/whrlpool.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/x509.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/x509_acert.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/x509_vfy.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/x509err.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/x509v3.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/include/openssl/x509v3err.h delete mode 100644 libs/openssl-3.6.0-beta1/x86/lib/cmake/OpenSSL/OpenSSLConfig.cmake delete mode 100644 libs/openssl-3.6.0-beta1/x86/lib/cmake/OpenSSL/OpenSSLConfigVersion.cmake delete mode 100644 libs/openssl-3.6.0-beta1/x86/lib/engines-3/capi.dll delete mode 100644 libs/openssl-3.6.0-beta1/x86/lib/engines-3/capi.pdb delete mode 100644 libs/openssl-3.6.0-beta1/x86/lib/engines-3/loader_attic.dll delete mode 100644 libs/openssl-3.6.0-beta1/x86/lib/engines-3/loader_attic.pdb delete mode 100644 libs/openssl-3.6.0-beta1/x86/lib/engines-3/padlock.dll delete mode 100644 libs/openssl-3.6.0-beta1/x86/lib/engines-3/padlock.pdb delete mode 100644 libs/openssl-3.6.0-beta1/x86/lib/libcrypto.lib delete mode 100644 libs/openssl-3.6.0-beta1/x86/lib/libssl.lib delete mode 100644 libs/openssl-3.6.0-beta1/x86/lib/ossl-modules/legacy.dll delete mode 100644 libs/openssl-3.6.0-beta1/x86/lib/ossl-modules/legacy.pdb delete mode 100644 libs/simclist-1.5/._CMakeLists.txt delete mode 100644 libs/simclist-1.5/._doc delete mode 100644 libs/simclist-1.5/._examples delete mode 100644 libs/simclist-1.5/._perftest delete mode 100644 libs/simclist-1.5/._regrtest delete mode 100644 libs/simclist-1.5/._simclist.h delete mode 100644 libs/simclist-1.5/CMakeLists.txt delete mode 100644 libs/simclist-1.5/Changes delete mode 100644 libs/simclist-1.5/Doxyfile delete mode 100644 libs/simclist-1.5/examples/._ex1.c delete mode 100644 libs/simclist-1.5/examples/._ex2.c delete mode 100644 libs/simclist-1.5/examples/._ex3.c delete mode 100644 libs/simclist-1.5/examples/ex1.c delete mode 100644 libs/simclist-1.5/examples/ex2.c delete mode 100644 libs/simclist-1.5/examples/ex3.c delete mode 100644 libs/simclist-1.5/perftest/._README-perftest.txt delete mode 100644 libs/simclist-1.5/perftest/._ext.c delete mode 100644 libs/simclist-1.5/perftest/._ins.c delete mode 100644 libs/simclist-1.5/perftest/._sort.c delete mode 100644 libs/simclist-1.5/perftest/README-perftest.txt delete mode 100644 libs/simclist-1.5/perftest/ext.c delete mode 100644 libs/simclist-1.5/perftest/ins.c delete mode 100644 libs/simclist-1.5/perftest/sort.c delete mode 100644 libs/simclist-1.5/regrtest/._printlist.c delete mode 100644 libs/simclist-1.5/regrtest/._test1.c delete mode 100644 libs/simclist-1.5/regrtest/._test2.c delete mode 100644 libs/simclist-1.5/regrtest/._test3-dump.c delete mode 100644 libs/simclist-1.5/regrtest/._test3-restore.c delete mode 100644 libs/simclist-1.5/regrtest/._test4-seeker.c delete mode 100644 libs/simclist-1.5/regrtest/printlist.c delete mode 100644 libs/simclist-1.5/regrtest/test1.c delete mode 100644 libs/simclist-1.5/regrtest/test2.c delete mode 100644 libs/simclist-1.5/regrtest/test3-dump.c delete mode 100644 libs/simclist-1.5/regrtest/test3-restore.c delete mode 100644 libs/simclist-1.5/regrtest/test4-seeker.c delete mode 100644 libs/timer_lib/.gitattributes delete mode 100644 libs/timer_lib/.gitignore delete mode 100644 libs/timer_lib/Makefile delete mode 100644 libs/timer_lib/test.vcxproj delete mode 100644 libs/timer_lib/timer.sln delete mode 100644 libs/timer_lib/timer.vcxproj delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/LUA_plugin.tinyfiledialogs.cpp delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/PascalABC/tinyfd.pas delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/fortran/tinyfd_main.f90 delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/fortran/tinyfd_module.f90 delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/freepascal/hello.pas delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/freepascal/tinyfd.pp delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs.r delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs32.dll delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs32.lib delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs64.dll delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs64.lib delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsAppleSilicon.dylib delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsIntel.dylib delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsLinux64.so delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsLinux86.so delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsTest.cs delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_dll_mingw-32.bat delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_dll_mingw-w64-720.bat delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_dll_mingw-w64-810.bat delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_dylib.sh delete mode 100644 libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_so.sh delete mode 100644 libs/tinyfiledialogs/hello.c delete mode 100644 libs/tinyfiledialogs/hello_wchar_t.c delete mode 100644 libs/tinyfiledialogs/more_dialogs/tinyfd_moredialogs.c delete mode 100644 libs/tinyfiledialogs/more_dialogs/tinyfd_moredialogs.h delete mode 100644 libs/xml.c/.github/workflows/ci.yaml delete mode 100644 libs/xml.c/.gitignore delete mode 100644 libs/xml.c/.mc/rebuild.sh delete mode 100644 libs/xml.c/.mc/ubuntu-22.04.yaml delete mode 100644 libs/xml.c/CMakeLists.txt delete mode 100644 libs/xml.c/test/CMakeLists.txt delete mode 100644 libs/xml.c/test/example.c delete mode 100644 libs/xml.c/test/test-attributes.xml delete mode 100644 libs/xml.c/test/test-huitre39.c delete mode 100644 libs/xml.c/test/test-xml-c.c delete mode 100644 libs/xml.c/test/test-xml-cpp.cpp delete mode 100644 libs/xml.c/test/test.xml delete mode 100644 libs/zip/.gitattributes delete mode 100644 libs/zip/.gitignore delete mode 100644 libs/zip/CMakeLists.txt delete mode 100644 libs/zip/CONTRIBUTING.md delete mode 100644 libs/zip/Doxyfile.in delete mode 100644 libs/zip/cmake/Config.cmake.in delete mode 100644 libs/zip/cmake/asan-wrapper delete mode 100644 libs/zip/cmake/cmake_uninstall.cmake.in delete mode 100644 libs/zip/fuzz/CMakeLists.txt delete mode 100644 libs/zip/fuzz/build.sh delete mode 100644 libs/zip/fuzz/fuzz_entry.c delete mode 100644 libs/zip/fuzz/fuzz_stream.c delete mode 100644 libs/zip/test/CMakeLists.txt delete mode 100644 libs/zip/test/data/data.bin delete mode 100644 libs/zip/test/minunit.h delete mode 100644 libs/zip/test/test_append.c delete mode 100644 libs/zip/test/test_data.c delete mode 100644 libs/zip/test/test_entry.c delete mode 100644 libs/zip/test/test_extract.c delete mode 100644 libs/zip/test/test_offset.c delete mode 100644 libs/zip/test/test_open.c delete mode 100644 libs/zip/test/test_permissions.c delete mode 100644 libs/zip/test/test_read.c delete mode 100644 libs/zip/test/test_static.c delete mode 100644 libs/zip/test/test_write.c (limited to 'libs') diff --git a/libs/anr/.gitignore b/libs/anr/.gitignore deleted file mode 100644 index b58fd02..0000000 --- a/libs/anr/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*/bin -.vscode/ \ No newline at end of file diff --git a/libs/anr/examples/Makefile b/libs/anr/examples/Makefile deleted file mode 100644 index e7dcf86..0000000 --- a/libs/anr/examples/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -ifeq ($(OS),Windows_NT) - EXTENSION := .exe -else - EXTENSION := -endif - - -data: - gcc -g -Wall test_data.c -o bin/test_data$(EXTENSION) - ./bin/test_data$(EXTENSION) - -pdf: - rm bin/test_pdf.pdf || true - gcc -g -Wall test_pdf.c -o bin/test_pdf$(EXTENSION) - ./bin/test_pdf$(EXTENSION) - qpdf$(EXTENSION) --check bin/test_pdf.pdf -sc: - gcc -g -Wall test_sc.c -o bin/test_sc$(EXTENSION) - ./bin/test_sc$(EXTENSION) \ No newline at end of file diff --git a/libs/anr/examples/hash.txt b/libs/anr/examples/hash.txt deleted file mode 100644 index 0d996f8..0000000 Binary files a/libs/anr/examples/hash.txt and /dev/null differ diff --git a/libs/anr/examples/res/ButterflyKids-Regular.ttf b/libs/anr/examples/res/ButterflyKids-Regular.ttf deleted file mode 100644 index 4c37842..0000000 Binary files a/libs/anr/examples/res/ButterflyKids-Regular.ttf and /dev/null differ diff --git a/libs/anr/examples/res/bible.txt b/libs/anr/examples/res/bible.txt deleted file mode 100644 index e838c4c..0000000 --- a/libs/anr/examples/res/bible.txt +++ /dev/null @@ -1,100182 +0,0 @@ -1:1 In the beginning God created the heaven and the earth. - -1:2 And the earth was without form, and void; and darkness was upon -the face of the deep. And the Spirit of God moved upon the face of the -waters. - -1:3 And God said, Let there be light: and there was light. - -1:4 And God saw the light, that it was good: and God divided the light -from the darkness. - -1:5 And God called the light Day, and the darkness he called Night. -And the evening and the morning were the first day. - -1:6 And God said, Let there be a firmament in the midst of the waters, -and let it divide the waters from the waters. - -1:7 And God made the firmament, and divided the waters which were -under the firmament from the waters which were above the firmament: -and it was so. - -1:8 And God called the firmament Heaven. And the evening and the -morning were the second day. - -1:9 And God said, Let the waters under the heaven be gathered together -unto one place, and let the dry land appear: and it was so. - -1:10 And God called the dry land Earth; and the gathering together of -the waters called he Seas: and God saw that it was good. - -1:11 And God said, Let the earth bring forth grass, the herb yielding -seed, and the fruit tree yielding fruit after his kind, whose seed is -in itself, upon the earth: and it was so. - -1:12 And the earth brought forth grass, and herb yielding seed after -his kind, and the tree yielding fruit, whose seed was in itself, after -his kind: and God saw that it was good. - -1:13 And the evening and the morning were the third day. - -1:14 And God said, Let there be lights in the firmament of the heaven -to divide the day from the night; and let them be for signs, and for -seasons, and for days, and years: 1:15 And let them be for lights in -the firmament of the heaven to give light upon the earth: and it was -so. - -1:16 And God made two great lights; the greater light to rule the day, -and the lesser light to rule the night: he made the stars also. - -1:17 And God set them in the firmament of the heaven to give light -upon the earth, 1:18 And to rule over the day and over the night, and -to divide the light from the darkness: and God saw that it was good. - -1:19 And the evening and the morning were the fourth day. - -1:20 And God said, Let the waters bring forth abundantly the moving -creature that hath life, and fowl that may fly above the earth in the -open firmament of heaven. - -1:21 And God created great whales, and every living creature that -moveth, which the waters brought forth abundantly, after their kind, -and every winged fowl after his kind: and God saw that it was good. - -1:22 And God blessed them, saying, Be fruitful, and multiply, and fill -the waters in the seas, and let fowl multiply in the earth. - -1:23 And the evening and the morning were the fifth day. - -1:24 And God said, Let the earth bring forth the living creature after -his kind, cattle, and creeping thing, and beast of the earth after his -kind: and it was so. - -1:25 And God made the beast of the earth after his kind, and cattle -after their kind, and every thing that creepeth upon the earth after -his kind: and God saw that it was good. - -1:26 And God said, Let us make man in our image, after our likeness: -and let them have dominion over the fish of the sea, and over the fowl -of the air, and over the cattle, and over all the earth, and over -every creeping thing that creepeth upon the earth. - -1:27 So God created man in his own image, in the image of God created -he him; male and female created he them. - -1:28 And God blessed them, and God said unto them, Be fruitful, and -multiply, and replenish the earth, and subdue it: and have dominion -over the fish of the sea, and over the fowl of the air, and over every -living thing that moveth upon the earth. - -1:29 And God said, Behold, I have given you every herb bearing seed, -which is upon the face of all the earth, and every tree, in the which -is the fruit of a tree yielding seed; to you it shall be for meat. - -1:30 And to every beast of the earth, and to every fowl of the air, -and to every thing that creepeth upon the earth, wherein there is -life, I have given every green herb for meat: and it was so. - -1:31 And God saw every thing that he had made, and, behold, it was -very good. And the evening and the morning were the sixth day. - -2:1 Thus the heavens and the earth were finished, and all the host of -them. - -2:2 And on the seventh day God ended his work which he had made; and -he rested on the seventh day from all his work which he had made. - -2:3 And God blessed the seventh day, and sanctified it: because that -in it he had rested from all his work which God created and made. - -2:4 These are the generations of the heavens and of the earth when -they were created, in the day that the LORD God made the earth and the -heavens, 2:5 And every plant of the field before it was in the earth, -and every herb of the field before it grew: for the LORD God had not -caused it to rain upon the earth, and there was not a man to till the -ground. - -2:6 But there went up a mist from the earth, and watered the whole -face of the ground. - -2:7 And the LORD God formed man of the dust of the ground, and -breathed into his nostrils the breath of life; and man became a living -soul. - -2:8 And the LORD God planted a garden eastward in Eden; and there he -put the man whom he had formed. - -2:9 And out of the ground made the LORD God to grow every tree that is -pleasant to the sight, and good for food; the tree of life also in the -midst of the garden, and the tree of knowledge of good and evil. - -2:10 And a river went out of Eden to water the garden; and from thence -it was parted, and became into four heads. - -2:11 The name of the first is Pison: that is it which compasseth the -whole land of Havilah, where there is gold; 2:12 And the gold of that -land is good: there is bdellium and the onyx stone. - -2:13 And the name of the second river is Gihon: the same is it that -compasseth the whole land of Ethiopia. - -2:14 And the name of the third river is Hiddekel: that is it which -goeth toward the east of Assyria. And the fourth river is Euphrates. - -2:15 And the LORD God took the man, and put him into the garden of -Eden to dress it and to keep it. - -2:16 And the LORD God commanded the man, saying, Of every tree of the -garden thou mayest freely eat: 2:17 But of the tree of the knowledge -of good and evil, thou shalt not eat of it: for in the day that thou -eatest thereof thou shalt surely die. - -2:18 And the LORD God said, It is not good that the man should be -alone; I will make him an help meet for him. - -2:19 And out of the ground the LORD God formed every beast of the -field, and every fowl of the air; and brought them unto Adam to see -what he would call them: and whatsoever Adam called every living -creature, that was the name thereof. - -2:20 And Adam gave names to all cattle, and to the fowl of the air, -and to every beast of the field; but for Adam there was not found an -help meet for him. - -2:21 And the LORD God caused a deep sleep to fall upon Adam, and he -slept: and he took one of his ribs, and closed up the flesh instead -thereof; 2:22 And the rib, which the LORD God had taken from man, made -he a woman, and brought her unto the man. - -2:23 And Adam said, This is now bone of my bones, and flesh of my -flesh: she shall be called Woman, because she was taken out of Man. - -2:24 Therefore shall a man leave his father and his mother, and shall -cleave unto his wife: and they shall be one flesh. - -2:25 And they were both naked, the man and his wife, and were not -ashamed. - -3:1 Now the serpent was more subtil than any beast of the field which -the LORD God had made. And he said unto the woman, Yea, hath God said, -Ye shall not eat of every tree of the garden? 3:2 And the woman said -unto the serpent, We may eat of the fruit of the trees of the garden: -3:3 But of the fruit of the tree which is in the midst of the garden, -God hath said, Ye shall not eat of it, neither shall ye touch it, lest -ye die. - -3:4 And the serpent said unto the woman, Ye shall not surely die: 3:5 -For God doth know that in the day ye eat thereof, then your eyes shall -be opened, and ye shall be as gods, knowing good and evil. - -3:6 And when the woman saw that the tree was good for food, and that -it was pleasant to the eyes, and a tree to be desired to make one -wise, she took of the fruit thereof, and did eat, and gave also unto -her husband with her; and he did eat. - -3:7 And the eyes of them both were opened, and they knew that they -were naked; and they sewed fig leaves together, and made themselves -aprons. - -3:8 And they heard the voice of the LORD God walking in the garden in -the cool of the day: and Adam and his wife hid themselves from the -presence of the LORD God amongst the trees of the garden. - -3:9 And the LORD God called unto Adam, and said unto him, Where art -thou? 3:10 And he said, I heard thy voice in the garden, and I was -afraid, because I was naked; and I hid myself. - -3:11 And he said, Who told thee that thou wast naked? Hast thou eaten -of the tree, whereof I commanded thee that thou shouldest not eat? -3:12 And the man said, The woman whom thou gavest to be with me, she -gave me of the tree, and I did eat. - -3:13 And the LORD God said unto the woman, What is this that thou hast -done? And the woman said, The serpent beguiled me, and I did eat. - -3:14 And the LORD God said unto the serpent, Because thou hast done -this, thou art cursed above all cattle, and above every beast of the -field; upon thy belly shalt thou go, and dust shalt thou eat all the -days of thy life: 3:15 And I will put enmity between thee and the -woman, and between thy seed and her seed; it shall bruise thy head, -and thou shalt bruise his heel. - -3:16 Unto the woman he said, I will greatly multiply thy sorrow and -thy conception; in sorrow thou shalt bring forth children; and thy -desire shall be to thy husband, and he shall rule over thee. - -3:17 And unto Adam he said, Because thou hast hearkened unto the voice -of thy wife, and hast eaten of the tree, of which I commanded thee, -saying, Thou shalt not eat of it: cursed is the ground for thy sake; -in sorrow shalt thou eat of it all the days of thy life; 3:18 Thorns -also and thistles shall it bring forth to thee; and thou shalt eat the -herb of the field; 3:19 In the sweat of thy face shalt thou eat bread, -till thou return unto the ground; for out of it wast thou taken: for -dust thou art, and unto dust shalt thou return. - -3:20 And Adam called his wife's name Eve; because she was the mother -of all living. - -3:21 Unto Adam also and to his wife did the LORD God make coats of -skins, and clothed them. - -3:22 And the LORD God said, Behold, the man is become as one of us, to -know good and evil: and now, lest he put forth his hand, and take also -of the tree of life, and eat, and live for ever: 3:23 Therefore the -LORD God sent him forth from the garden of Eden, to till the ground -from whence he was taken. - -3:24 So he drove out the man; and he placed at the east of the garden -of Eden Cherubims, and a flaming sword which turned every way, to keep -the way of the tree of life. - -4:1 And Adam knew Eve his wife; and she conceived, and bare Cain, and -said, I have gotten a man from the LORD. - -4:2 And she again bare his brother Abel. And Abel was a keeper of -sheep, but Cain was a tiller of the ground. - -4:3 And in process of time it came to pass, that Cain brought of the -fruit of the ground an offering unto the LORD. - -4:4 And Abel, he also brought of the firstlings of his flock and of -the fat thereof. And the LORD had respect unto Abel and to his -offering: 4:5 But unto Cain and to his offering he had not respect. -And Cain was very wroth, and his countenance fell. - -4:6 And the LORD said unto Cain, Why art thou wroth? and why is thy -countenance fallen? 4:7 If thou doest well, shalt thou not be -accepted? and if thou doest not well, sin lieth at the door. And unto -thee shall be his desire, and thou shalt rule over him. - -4:8 And Cain talked with Abel his brother: and it came to pass, when -they were in the field, that Cain rose up against Abel his brother, -and slew him. - -4:9 And the LORD said unto Cain, Where is Abel thy brother? And he -said, I know not: Am I my brother's keeper? 4:10 And he said, What -hast thou done? the voice of thy brother's blood crieth unto me from -the ground. - -4:11 And now art thou cursed from the earth, which hath opened her -mouth to receive thy brother's blood from thy hand; 4:12 When thou -tillest the ground, it shall not henceforth yield unto thee her -strength; a fugitive and a vagabond shalt thou be in the earth. - -4:13 And Cain said unto the LORD, My punishment is greater than I can -bear. - -4:14 Behold, thou hast driven me out this day from the face of the -earth; and from thy face shall I be hid; and I shall be a fugitive and -a vagabond in the earth; and it shall come to pass, that every one -that findeth me shall slay me. - -4:15 And the LORD said unto him, Therefore whosoever slayeth Cain, -vengeance shall be taken on him sevenfold. And the LORD set a mark -upon Cain, lest any finding him should kill him. - -4:16 And Cain went out from the presence of the LORD, and dwelt in the -land of Nod, on the east of Eden. - -4:17 And Cain knew his wife; and she conceived, and bare Enoch: and he -builded a city, and called the name of the city, after the name of his -son, Enoch. - -4:18 And unto Enoch was born Irad: and Irad begat Mehujael: and -Mehujael begat Methusael: and Methusael begat Lamech. - -4:19 And Lamech took unto him two wives: the name of the one was Adah, -and the name of the other Zillah. - -4:20 And Adah bare Jabal: he was the father of such as dwell in tents, -and of such as have cattle. - -4:21 And his brother's name was Jubal: he was the father of all such -as handle the harp and organ. - -4:22 And Zillah, she also bare Tubalcain, an instructer of every -artificer in brass and iron: and the sister of Tubalcain was Naamah. - -4:23 And Lamech said unto his wives, Adah and Zillah, Hear my voice; -ye wives of Lamech, hearken unto my speech: for I have slain a man to -my wounding, and a young man to my hurt. - -4:24 If Cain shall be avenged sevenfold, truly Lamech seventy and -sevenfold. - -4:25 And Adam knew his wife again; and she bare a son, and called his -name Seth: For God, said she, hath appointed me another seed instead -of Abel, whom Cain slew. - -4:26 And to Seth, to him also there was born a son; and he called his -name Enos: then began men to call upon the name of the LORD. - -5:1 This is the book of the generations of Adam. In the day that God -created man, in the likeness of God made he him; 5:2 Male and female -created he them; and blessed them, and called their name Adam, in the -day when they were created. - -5:3 And Adam lived an hundred and thirty years, and begat a son in his -own likeness, and after his image; and called his name Seth: 5:4 And -the days of Adam after he had begotten Seth were eight hundred years: -and he begat sons and daughters: 5:5 And all the days that Adam lived -were nine hundred and thirty years: and he died. - -5:6 And Seth lived an hundred and five years, and begat Enos: 5:7 And -Seth lived after he begat Enos eight hundred and seven years, and -begat sons and daughters: 5:8 And all the days of Seth were nine -hundred and twelve years: and he died. - -5:9 And Enos lived ninety years, and begat Cainan: 5:10 And Enos lived -after he begat Cainan eight hundred and fifteen years, and begat sons -and daughters: 5:11 And all the days of Enos were nine hundred and -five years: and he died. - -5:12 And Cainan lived seventy years and begat Mahalaleel: 5:13 And -Cainan lived after he begat Mahalaleel eight hundred and forty years, -and begat sons and daughters: 5:14 And all the days of Cainan were -nine hundred and ten years: and he died. - -5:15 And Mahalaleel lived sixty and five years, and begat Jared: 5:16 -And Mahalaleel lived after he begat Jared eight hundred and thirty -years, and begat sons and daughters: 5:17 And all the days of -Mahalaleel were eight hundred ninety and five years: and he died. - -5:18 And Jared lived an hundred sixty and two years, and he begat -Enoch: 5:19 And Jared lived after he begat Enoch eight hundred years, -and begat sons and daughters: 5:20 And all the days of Jared were nine -hundred sixty and two years: and he died. - -5:21 And Enoch lived sixty and five years, and begat Methuselah: 5:22 -And Enoch walked with God after he begat Methuselah three hundred -years, and begat sons and daughters: 5:23 And all the days of Enoch -were three hundred sixty and five years: 5:24 And Enoch walked with -God: and he was not; for God took him. - -5:25 And Methuselah lived an hundred eighty and seven years, and begat -Lamech. - -5:26 And Methuselah lived after he begat Lamech seven hundred eighty -and two years, and begat sons and daughters: 5:27 And all the days of -Methuselah were nine hundred sixty and nine years: and he died. - -5:28 And Lamech lived an hundred eighty and two years, and begat a -son: 5:29 And he called his name Noah, saying, This same shall comfort -us concerning our work and toil of our hands, because of the ground -which the LORD hath cursed. - -5:30 And Lamech lived after he begat Noah five hundred ninety and five -years, and begat sons and daughters: 5:31 And all the days of Lamech -were seven hundred seventy and seven years: and he died. - -5:32 And Noah was five hundred years old: and Noah begat Shem, Ham, -and Japheth. - -6:1 And it came to pass, when men began to multiply on the face of the -earth, and daughters were born unto them, 6:2 That the sons of God saw -the daughters of men that they were fair; and they took them wives of -all which they chose. - -6:3 And the LORD said, My spirit shall not always strive with man, for -that he also is flesh: yet his days shall be an hundred and twenty -years. - -6:4 There were giants in the earth in those days; and also after that, -when the sons of God came in unto the daughters of men, and they bare -children to them, the same became mighty men which were of old, men of -renown. - -6:5 And God saw that the wickedness of man was great in the earth, and -that every imagination of the thoughts of his heart was only evil -continually. - -6:6 And it repented the LORD that he had made man on the earth, and it -grieved him at his heart. - -6:7 And the LORD said, I will destroy man whom I have created from the -face of the earth; both man, and beast, and the creeping thing, and -the fowls of the air; for it repenteth me that I have made them. - -6:8 But Noah found grace in the eyes of the LORD. - -6:9 These are the generations of Noah: Noah was a just man and perfect -in his generations, and Noah walked with God. - -6:10 And Noah begat three sons, Shem, Ham, and Japheth. - -6:11 The earth also was corrupt before God, and the earth was filled -with violence. - -6:12 And God looked upon the earth, and, behold, it was corrupt; for -all flesh had corrupted his way upon the earth. - -6:13 And God said unto Noah, The end of all flesh is come before me; -for the earth is filled with violence through them; and, behold, I -will destroy them with the earth. - -6:14 Make thee an ark of gopher wood; rooms shalt thou make in the -ark, and shalt pitch it within and without with pitch. - -6:15 And this is the fashion which thou shalt make it of: The length -of the ark shall be three hundred cubits, the breadth of it fifty -cubits, and the height of it thirty cubits. - -6:16 A window shalt thou make to the ark, and in a cubit shalt thou -finish it above; and the door of the ark shalt thou set in the side -thereof; with lower, second, and third stories shalt thou make it. - -6:17 And, behold, I, even I, do bring a flood of waters upon the -earth, to destroy all flesh, wherein is the breath of life, from under -heaven; and every thing that is in the earth shall die. - -6:18 But with thee will I establish my covenant; and thou shalt come -into the ark, thou, and thy sons, and thy wife, and thy sons' wives -with thee. - -6:19 And of every living thing of all flesh, two of every sort shalt -thou bring into the ark, to keep them alive with thee; they shall be -male and female. - -6:20 Of fowls after their kind, and of cattle after their kind, of -every creeping thing of the earth after his kind, two of every sort -shall come unto thee, to keep them alive. - -6:21 And take thou unto thee of all food that is eaten, and thou shalt -gather it to thee; and it shall be for food for thee, and for them. - -6:22 Thus did Noah; according to all that God commanded him, so did -he. - -7:1 And the LORD said unto Noah, Come thou and all thy house into the -ark; for thee have I seen righteous before me in this generation. - -7:2 Of every clean beast thou shalt take to thee by sevens, the male -and his female: and of beasts that are not clean by two, the male and -his female. - -7:3 Of fowls also of the air by sevens, the male and the female; to -keep seed alive upon the face of all the earth. - -7:4 For yet seven days, and I will cause it to rain upon the earth -forty days and forty nights; and every living substance that I have -made will I destroy from off the face of the earth. - -7:5 And Noah did according unto all that the LORD commanded him. - -7:6 And Noah was six hundred years old when the flood of waters was -upon the earth. - -7:7 And Noah went in, and his sons, and his wife, and his sons' wives -with him, into the ark, because of the waters of the flood. - -7:8 Of clean beasts, and of beasts that are not clean, and of fowls, -and of every thing that creepeth upon the earth, 7:9 There went in two -and two unto Noah into the ark, the male and the female, as God had -commanded Noah. - -7:10 And it came to pass after seven days, that the waters of the -flood were upon the earth. - -7:11 In the six hundredth year of Noah's life, in the second month, -the seventeenth day of the month, the same day were all the fountains -of the great deep broken up, and the windows of heaven were opened. - -7:12 And the rain was upon the earth forty days and forty nights. - -7:13 In the selfsame day entered Noah, and Shem, and Ham, and Japheth, -the sons of Noah, and Noah's wife, and the three wives of his sons -with them, into the ark; 7:14 They, and every beast after his kind, -and all the cattle after their kind, and every creeping thing that -creepeth upon the earth after his kind, and every fowl after his kind, -every bird of every sort. - -7:15 And they went in unto Noah into the ark, two and two of all -flesh, wherein is the breath of life. - -7:16 And they that went in, went in male and female of all flesh, as -God had commanded him: and the LORD shut him in. - -7:17 And the flood was forty days upon the earth; and the waters -increased, and bare up the ark, and it was lift up above the earth. - -7:18 And the waters prevailed, and were increased greatly upon the -earth; and the ark went upon the face of the waters. - -7:19 And the waters prevailed exceedingly upon the earth; and all the -high hills, that were under the whole heaven, were covered. - -7:20 Fifteen cubits upward did the waters prevail; and the mountains -were covered. - -7:21 And all flesh died that moved upon the earth, both of fowl, and -of cattle, and of beast, and of every creeping thing that creepeth -upon the earth, and every man: 7:22 All in whose nostrils was the -breath of life, of all that was in the dry land, died. - -7:23 And every living substance was destroyed which was upon the face -of the ground, both man, and cattle, and the creeping things, and the -fowl of the heaven; and they were destroyed from the earth: and Noah -only remained alive, and they that were with him in the ark. - -7:24 And the waters prevailed upon the earth an hundred and fifty -days. - -8:1 And God remembered Noah, and every living thing, and all the -cattle that was with him in the ark: and God made a wind to pass over -the earth, and the waters asswaged; 8:2 The fountains also of the deep -and the windows of heaven were stopped, and the rain from heaven was -restrained; 8:3 And the waters returned from off the earth -continually: and after the end of the hundred and fifty days the -waters were abated. - -8:4 And the ark rested in the seventh month, on the seventeenth day of -the month, upon the mountains of Ararat. - -8:5 And the waters decreased continually until the tenth month: in the -tenth month, on the first day of the month, were the tops of the -mountains seen. - -8:6 And it came to pass at the end of forty days, that Noah opened the -window of the ark which he had made: 8:7 And he sent forth a raven, -which went forth to and fro, until the waters were dried up from off -the earth. - -8:8 Also he sent forth a dove from him, to see if the waters were -abated from off the face of the ground; 8:9 But the dove found no rest -for the sole of her foot, and she returned unto him into the ark, for -the waters were on the face of the whole earth: then he put forth his -hand, and took her, and pulled her in unto him into the ark. - -8:10 And he stayed yet other seven days; and again he sent forth the -dove out of the ark; 8:11 And the dove came in to him in the evening; -and, lo, in her mouth was an olive leaf pluckt off: so Noah knew that -the waters were abated from off the earth. - -8:12 And he stayed yet other seven days; and sent forth the dove; -which returned not again unto him any more. - -8:13 And it came to pass in the six hundredth and first year, in the -first month, the first day of the month, the waters were dried up from -off the earth: and Noah removed the covering of the ark, and looked, -and, behold, the face of the ground was dry. - -8:14 And in the second month, on the seven and twentieth day of the -month, was the earth dried. - -8:15 And God spake unto Noah, saying, 8:16 Go forth of the ark, thou, -and thy wife, and thy sons, and thy sons' wives with thee. - -8:17 Bring forth with thee every living thing that is with thee, of -all flesh, both of fowl, and of cattle, and of every creeping thing -that creepeth upon the earth; that they may breed abundantly in the -earth, and be fruitful, and multiply upon the earth. - -8:18 And Noah went forth, and his sons, and his wife, and his sons' -wives with him: 8:19 Every beast, every creeping thing, and every -fowl, and whatsoever creepeth upon the earth, after their kinds, went -forth out of the ark. - -8:20 And Noah builded an altar unto the LORD; and took of every clean -beast, and of every clean fowl, and offered burnt offerings on the -altar. - -8:21 And the LORD smelled a sweet savour; and the LORD said in his -heart, I will not again curse the ground any more for man's sake; for -the imagination of man's heart is evil from his youth; neither will I -again smite any more every thing living, as I have done. - -8:22 While the earth remaineth, seedtime and harvest, and cold and -heat, and summer and winter, and day and night shall not cease. - -9:1 And God blessed Noah and his sons, and said unto them, Be -fruitful, and multiply, and replenish the earth. - -9:2 And the fear of you and the dread of you shall be upon every beast -of the earth, and upon every fowl of the air, upon all that moveth -upon the earth, and upon all the fishes of the sea; into your hand are -they delivered. - -9:3 Every moving thing that liveth shall be meat for you; even as the -green herb have I given you all things. - -9:4 But flesh with the life thereof, which is the blood thereof, shall -ye not eat. - -9:5 And surely your blood of your lives will I require; at the hand of -every beast will I require it, and at the hand of man; at the hand of -every man's brother will I require the life of man. - -9:6 Whoso sheddeth man's blood, by man shall his blood be shed: for in -the image of God made he man. - -9:7 And you, be ye fruitful, and multiply; bring forth abundantly in -the earth, and multiply therein. - -9:8 And God spake unto Noah, and to his sons with him, saying, 9:9 And -I, behold, I establish my covenant with you, and with your seed after -you; 9:10 And with every living creature that is with you, of the -fowl, of the cattle, and of every beast of the earth with you; from -all that go out of the ark, to every beast of the earth. - -9:11 And I will establish my covenant with you, neither shall all -flesh be cut off any more by the waters of a flood; neither shall -there any more be a flood to destroy the earth. - -9:12 And God said, This is the token of the covenant which I make -between me and you and every living creature that is with you, for -perpetual generations: 9:13 I do set my bow in the cloud, and it shall -be for a token of a covenant between me and the earth. - -9:14 And it shall come to pass, when I bring a cloud over the earth, -that the bow shall be seen in the cloud: 9:15 And I will remember my -covenant, which is between me and you and every living creature of all -flesh; and the waters shall no more become a flood to destroy all -flesh. - -9:16 And the bow shall be in the cloud; and I will look upon it, that -I may remember the everlasting covenant between God and every living -creature of all flesh that is upon the earth. - -9:17 And God said unto Noah, This is the token of the covenant, which -I have established between me and all flesh that is upon the earth. - -9:18 And the sons of Noah, that went forth of the ark, were Shem, and -Ham, and Japheth: and Ham is the father of Canaan. - -9:19 These are the three sons of Noah: and of them was the whole earth -overspread. - -9:20 And Noah began to be an husbandman, and he planted a vineyard: -9:21 And he drank of the wine, and was drunken; and he was uncovered -within his tent. - -9:22 And Ham, the father of Canaan, saw the nakedness of his father, -and told his two brethren without. - -9:23 And Shem and Japheth took a garment, and laid it upon both their -shoulders, and went backward, and covered the nakedness of their -father; and their faces were backward, and they saw not their father's -nakedness. - -9:24 And Noah awoke from his wine, and knew what his younger son had -done unto him. - -9:25 And he said, Cursed be Canaan; a servant of servants shall he be -unto his brethren. - -9:26 And he said, Blessed be the LORD God of Shem; and Canaan shall be -his servant. - -9:27 God shall enlarge Japheth, and he shall dwell in the tents of -Shem; and Canaan shall be his servant. - -9:28 And Noah lived after the flood three hundred and fifty years. - -9:29 And all the days of Noah were nine hundred and fifty years: and -he died. - -10:1 Now these are the generations of the sons of Noah, Shem, Ham, and -Japheth: and unto them were sons born after the flood. - -10:2 The sons of Japheth; Gomer, and Magog, and Madai, and Javan, and -Tubal, and Meshech, and Tiras. - -10:3 And the sons of Gomer; Ashkenaz, and Riphath, and Togarmah. - -10:4 And the sons of Javan; Elishah, and Tarshish, Kittim, and -Dodanim. - -10:5 By these were the isles of the Gentiles divided in their lands; -every one after his tongue, after their families, in their nations. - -10:6 And the sons of Ham; Cush, and Mizraim, and Phut, and Canaan. - -10:7 And the sons of Cush; Seba, and Havilah, and Sabtah, and Raamah, -and Sabtechah: and the sons of Raamah; Sheba, and Dedan. - -10:8 And Cush begat Nimrod: he began to be a mighty one in the earth. - -10:9 He was a mighty hunter before the LORD: wherefore it is said, -Even as Nimrod the mighty hunter before the LORD. - -10:10 And the beginning of his kingdom was Babel, and Erech, and -Accad, and Calneh, in the land of Shinar. - -10:11 Out of that land went forth Asshur, and builded Nineveh, and the -city Rehoboth, and Calah, 10:12 And Resen between Nineveh and Calah: -the same is a great city. - -10:13 And Mizraim begat Ludim, and Anamim, and Lehabim, and Naphtuhim, -10:14 And Pathrusim, and Casluhim, (out of whom came Philistim,) and -Caphtorim. - -10:15 And Canaan begat Sidon his first born, and Heth, 10:16 And the -Jebusite, and the Amorite, and the Girgasite, 10:17 And the Hivite, -and the Arkite, and the Sinite, 10:18 And the Arvadite, and the -Zemarite, and the Hamathite: and afterward were the families of the -Canaanites spread abroad. - -10:19 And the border of the Canaanites was from Sidon, as thou comest -to Gerar, unto Gaza; as thou goest, unto Sodom, and Gomorrah, and -Admah, and Zeboim, even unto Lasha. - -10:20 These are the sons of Ham, after their families, after their -tongues, in their countries, and in their nations. - -10:21 Unto Shem also, the father of all the children of Eber, the -brother of Japheth the elder, even to him were children born. - -10:22 The children of Shem; Elam, and Asshur, and Arphaxad, and Lud, -and Aram. - -10:23 And the children of Aram; Uz, and Hul, and Gether, and Mash. - -10:24 And Arphaxad begat Salah; and Salah begat Eber. - -10:25 And unto Eber were born two sons: the name of one was Peleg; for -in his days was the earth divided; and his brother's name was Joktan. - -10:26 And Joktan begat Almodad, and Sheleph, and Hazarmaveth, and -Jerah, 10:27 And Hadoram, and Uzal, and Diklah, 10:28 And Obal, and -Abimael, and Sheba, 10:29 And Ophir, and Havilah, and Jobab: all these -were the sons of Joktan. - -10:30 And their dwelling was from Mesha, as thou goest unto Sephar a -mount of the east. - -10:31 These are the sons of Shem, after their families, after their -tongues, in their lands, after their nations. - -10:32 These are the families of the sons of Noah, after their -generations, in their nations: and by these were the nations divided -in the earth after the flood. - -11:1 And the whole earth was of one language, and of one speech. - -11:2 And it came to pass, as they journeyed from the east, that they -found a plain in the land of Shinar; and they dwelt there. - -11:3 And they said one to another, Go to, let us make brick, and burn -them thoroughly. And they had brick for stone, and slime had they for -morter. - -11:4 And they said, Go to, let us build us a city and a tower, whose -top may reach unto heaven; and let us make us a name, lest we be -scattered abroad upon the face of the whole earth. - -11:5 And the LORD came down to see the city and the tower, which the -children of men builded. - -11:6 And the LORD said, Behold, the people is one, and they have all -one language; and this they begin to do: and now nothing will be -restrained from them, which they have imagined to do. - -11:7 Go to, let us go down, and there confound their language, that -they may not understand one another's speech. - -11:8 So the LORD scattered them abroad from thence upon the face of -all the earth: and they left off to build the city. - -11:9 Therefore is the name of it called Babel; because the LORD did -there confound the language of all the earth: and from thence did the -LORD scatter them abroad upon the face of all the earth. - -11:10 These are the generations of Shem: Shem was an hundred years -old, and begat Arphaxad two years after the flood: 11:11 And Shem -lived after he begat Arphaxad five hundred years, and begat sons and -daughters. - -11:12 And Arphaxad lived five and thirty years, and begat Salah: 11:13 -And Arphaxad lived after he begat Salah four hundred and three years, -and begat sons and daughters. - -11:14 And Salah lived thirty years, and begat Eber: 11:15 And Salah -lived after he begat Eber four hundred and three years, and begat sons -and daughters. - -11:16 And Eber lived four and thirty years, and begat Peleg: 11:17 And -Eber lived after he begat Peleg four hundred and thirty years, and -begat sons and daughters. - -11:18 And Peleg lived thirty years, and begat Reu: 11:19 And Peleg -lived after he begat Reu two hundred and nine years, and begat sons -and daughters. - -11:20 And Reu lived two and thirty years, and begat Serug: 11:21 And -Reu lived after he begat Serug two hundred and seven years, and begat -sons and daughters. - -11:22 And Serug lived thirty years, and begat Nahor: 11:23 And Serug -lived after he begat Nahor two hundred years, and begat sons and -daughters. - -11:24 And Nahor lived nine and twenty years, and begat Terah: 11:25 -And Nahor lived after he begat Terah an hundred and nineteen years, -and begat sons and daughters. - -11:26 And Terah lived seventy years, and begat Abram, Nahor, and -Haran. - -11:27 Now these are the generations of Terah: Terah begat Abram, -Nahor, and Haran; and Haran begat Lot. - -11:28 And Haran died before his father Terah in the land of his -nativity, in Ur of the Chaldees. - -11:29 And Abram and Nahor took them wives: the name of Abram's wife -was Sarai; and the name of Nahor's wife, Milcah, the daughter of -Haran, the father of Milcah, and the father of Iscah. - -11:30 But Sarai was barren; she had no child. - -11:31 And Terah took Abram his son, and Lot the son of Haran his son's -son, and Sarai his daughter in law, his son Abram's wife; and they -went forth with them from Ur of the Chaldees, to go into the land of -Canaan; and they came unto Haran, and dwelt there. - -11:32 And the days of Terah were two hundred and five years: and Terah -died in Haran. - -12:1 Now the LORD had said unto Abram, Get thee out of thy country, -and from thy kindred, and from thy father's house, unto a land that I -will shew thee: 12:2 And I will make of thee a great nation, and I -will bless thee, and make thy name great; and thou shalt be a -blessing: 12:3 And I will bless them that bless thee, and curse him -that curseth thee: and in thee shall all families of the earth be -blessed. - -12:4 So Abram departed, as the LORD had spoken unto him; and Lot went -with him: and Abram was seventy and five years old when he departed -out of Haran. - -12:5 And Abram took Sarai his wife, and Lot his brother's son, and all -their substance that they had gathered, and the souls that they had -gotten in Haran; and they went forth to go into the land of Canaan; -and into the land of Canaan they came. - -12:6 And Abram passed through the land unto the place of Sichem, unto -the plain of Moreh. And the Canaanite was then in the land. - -12:7 And the LORD appeared unto Abram, and said, Unto thy seed will I -give this land: and there builded he an altar unto the LORD, who -appeared unto him. - -12:8 And he removed from thence unto a mountain on the east of Bethel, -and pitched his tent, having Bethel on the west, and Hai on the east: -and there he builded an altar unto the LORD, and called upon the name -of the LORD. - -12:9 And Abram journeyed, going on still toward the south. - -12:10 And there was a famine in the land: and Abram went down into -Egypt to sojourn there; for the famine was grievous in the land. - -12:11 And it came to pass, when he was come near to enter into Egypt, -that he said unto Sarai his wife, Behold now, I know that thou art a -fair woman to look upon: 12:12 Therefore it shall come to pass, when -the Egyptians shall see thee, that they shall say, This is his wife: -and they will kill me, but they will save thee alive. - -12:13 Say, I pray thee, thou art my sister: that it may be well with -me for thy sake; and my soul shall live because of thee. - -12:14 And it came to pass, that, when Abram was come into Egypt, the -Egyptians beheld the woman that she was very fair. - -12:15 The princes also of Pharaoh saw her, and commended her before -Pharaoh: and the woman was taken into Pharaoh's house. - -12:16 And he entreated Abram well for her sake: and he had sheep, and -oxen, and he asses, and menservants, and maidservants, and she asses, -and camels. - -12:17 And the LORD plagued Pharaoh and his house with great plagues -because of Sarai Abram's wife. - -12:18 And Pharaoh called Abram and said, What is this that thou hast -done unto me? why didst thou not tell me that she was thy wife? 12:19 -Why saidst thou, She is my sister? so I might have taken her to me to -wife: now therefore behold thy wife, take her, and go thy way. - -12:20 And Pharaoh commanded his men concerning him: and they sent him -away, and his wife, and all that he had. - -13:1 And Abram went up out of Egypt, he, and his wife, and all that he -had, and Lot with him, into the south. - -13:2 And Abram was very rich in cattle, in silver, and in gold. - -13:3 And he went on his journeys from the south even to Bethel, unto -the place where his tent had been at the beginning, between Bethel and -Hai; 13:4 Unto the place of the altar, which he had make there at the -first: and there Abram called on the name of the LORD. - -13:5 And Lot also, which went with Abram, had flocks, and herds, and -tents. - -13:6 And the land was not able to bear them, that they might dwell -together: for their substance was great, so that they could not dwell -together. - -13:7 And there was a strife between the herdmen of Abram's cattle and -the herdmen of Lot's cattle: and the Canaanite and the Perizzite -dwelled then in the land. - -13:8 And Abram said unto Lot, Let there be no strife, I pray thee, -between me and thee, and between my herdmen and thy herdmen; for we be -brethren. - -13:9 Is not the whole land before thee? separate thyself, I pray thee, -from me: if thou wilt take the left hand, then I will go to the right; -or if thou depart to the right hand, then I will go to the left. - -13:10 And Lot lifted up his eyes, and beheld all the plain of Jordan, -that it was well watered every where, before the LORD destroyed Sodom -and Gomorrah, even as the garden of the LORD, like the land of Egypt, -as thou comest unto Zoar. - -13:11 Then Lot chose him all the plain of Jordan; and Lot journeyed -east: and they separated themselves the one from the other. - -13:12 Abram dwelled in the land of Canaan, and Lot dwelled in the -cities of the plain, and pitched his tent toward Sodom. - -13:13 But the men of Sodom were wicked and sinners before the LORD -exceedingly. - -13:14 And the LORD said unto Abram, after that Lot was separated from -him, Lift up now thine eyes, and look from the place where thou art -northward, and southward, and eastward, and westward: 13:15 For all -the land which thou seest, to thee will I give it, and to thy seed for -ever. - -13:16 And I will make thy seed as the dust of the earth: so that if a -man can number the dust of the earth, then shall thy seed also be -numbered. - -13:17 Arise, walk through the land in the length of it and in the -breadth of it; for I will give it unto thee. - -13:18 Then Abram removed his tent, and came and dwelt in the plain of -Mamre, which is in Hebron, and built there an altar unto the LORD. - -14:1 And it came to pass in the days of Amraphel king of Shinar, -Arioch king of Ellasar, Chedorlaomer king of Elam, and Tidal king of -nations; 14:2 That these made war with Bera king of Sodom, and with -Birsha king of Gomorrah, Shinab king of Admah, and Shemeber king of -Zeboiim, and the king of Bela, which is Zoar. - -14:3 All these were joined together in the vale of Siddim, which is -the salt sea. - -14:4 Twelve years they served Chedorlaomer, and in the thirteenth year -they rebelled. - -14:5 And in the fourteenth year came Chedorlaomer, and the kings that -were with him, and smote the Rephaims in Ashteroth Karnaim, and the -Zuzims in Ham, and the Emins in Shaveh Kiriathaim, 14:6 And the -Horites in their mount Seir, unto Elparan, which is by the wilderness. - -14:7 And they returned, and came to Enmishpat, which is Kadesh, and -smote all the country of the Amalekites, and also the Amorites, that -dwelt in Hazezontamar. - -14:8 And there went out the king of Sodom, and the king of Gomorrah, -and the king of Admah, and the king of Zeboiim, and the king of Bela -(the same is Zoar;) and they joined battle with them in the vale of -Siddim; 14:9 With Chedorlaomer the king of Elam, and with Tidal king -of nations, and Amraphel king of Shinar, and Arioch king of Ellasar; -four kings with five. - -14:10 And the vale of Siddim was full of slimepits; and the kings of -Sodom and Gomorrah fled, and fell there; and they that remained fled -to the mountain. - -14:11 And they took all the goods of Sodom and Gomorrah, and all their -victuals, and went their way. - -14:12 And they took Lot, Abram's brother's son, who dwelt in Sodom, -and his goods, and departed. - -14:13 And there came one that had escaped, and told Abram the Hebrew; -for he dwelt in the plain of Mamre the Amorite, brother of Eshcol, and -brother of Aner: and these were confederate with Abram. - -14:14 And when Abram heard that his brother was taken captive, he -armed his trained servants, born in his own house, three hundred and -eighteen, and pursued them unto Dan. - -14:15 And he divided himself against them, he and his servants, by -night, and smote them, and pursued them unto Hobah, which is on the -left hand of Damascus. - -14:16 And he brought back all the goods, and also brought again his -brother Lot, and his goods, and the women also, and the people. - -14:17 And the king of Sodom went out to meet him after his return from -the slaughter of Chedorlaomer, and of the kings that were with him, at -the valley of Shaveh, which is the king's dale. - -14:18 And Melchizedek king of Salem brought forth bread and wine: and -he was the priest of the most high God. - -14:19 And he blessed him, and said, Blessed be Abram of the most high -God, possessor of heaven and earth: 14:20 And blessed be the most high -God, which hath delivered thine enemies into thy hand. And he gave him -tithes of all. - -14:21 And the king of Sodom said unto Abram, Give me the persons, and -take the goods to thyself. - -14:22 And Abram said to the king of Sodom, I have lift up mine hand -unto the LORD, the most high God, the possessor of heaven and earth, -14:23 That I will not take from a thread even to a shoelatchet, and -that I will not take any thing that is thine, lest thou shouldest say, -I have made Abram rich: 14:24 Save only that which the young men have -eaten, and the portion of the men which went with me, Aner, Eshcol, -and Mamre; let them take their portion. - -15:1 After these things the word of the LORD came unto Abram in a -vision, saying, Fear not, Abram: I am thy shield, and thy exceeding -great reward. - -15:2 And Abram said, LORD God, what wilt thou give me, seeing I go -childless, and the steward of my house is this Eliezer of Damascus? -15:3 And Abram said, Behold, to me thou hast given no seed: and, lo, -one born in my house is mine heir. - -15:4 And, behold, the word of the LORD came unto him, saying, This -shall not be thine heir; but he that shall come forth out of thine own -bowels shall be thine heir. - -15:5 And he brought him forth abroad, and said, Look now toward -heaven, and tell the stars, if thou be able to number them: and he -said unto him, So shall thy seed be. - -15:6 And he believed in the LORD; and he counted it to him for -righteousness. - -15:7 And he said unto him, I am the LORD that brought thee out of Ur -of the Chaldees, to give thee this land to inherit it. - -15:8 And he said, LORD God, whereby shall I know that I shall inherit -it? 15:9 And he said unto him, Take me an heifer of three years old, -and a she goat of three years old, and a ram of three years old, and a -turtledove, and a young pigeon. - -15:10 And he took unto him all these, and divided them in the midst, -and laid each piece one against another: but the birds divided he not. - -15:11 And when the fowls came down upon the carcases, Abram drove them -away. - -15:12 And when the sun was going down, a deep sleep fell upon Abram; -and, lo, an horror of great darkness fell upon him. - -15:13 And he said unto Abram, Know of a surety that thy seed shall be -a stranger in a land that is not their's, and shall serve them; and -they shall afflict them four hundred years; 15:14 And also that -nation, whom they shall serve, will I judge: and afterward shall they -come out with great substance. - -15:15 And thou shalt go to thy fathers in peace; thou shalt be buried -in a good old age. - -15:16 But in the fourth generation they shall come hither again: for -the iniquity of the Amorites is not yet full. - -15:17 And it came to pass, that, when the sun went down, and it was -dark, behold a smoking furnace, and a burning lamp that passed between -those pieces. - -15:18 In the same day the LORD made a covenant with Abram, saying, -Unto thy seed have I given this land, from the river of Egypt unto the -great river, the river Euphrates: 15:19 The Kenites, and the -Kenizzites, and the Kadmonites, 15:20 And the Hittites, and the -Perizzites, and the Rephaims, 15:21 And the Amorites, and the -Canaanites, and the Girgashites, and the Jebusites. - -16:1 Now Sarai Abram's wife bare him no children: and she had an -handmaid, an Egyptian, whose name was Hagar. - -16:2 And Sarai said unto Abram, Behold now, the LORD hath restrained -me from bearing: I pray thee, go in unto my maid; it may be that I may -obtain children by her. And Abram hearkened to the voice of Sarai. - -16:3 And Sarai Abram's wife took Hagar her maid the Egyptian, after -Abram had dwelt ten years in the land of Canaan, and gave her to her -husband Abram to be his wife. - -16:4 And he went in unto Hagar, and she conceived: and when she saw -that she had conceived, her mistress was despised in her eyes. - -16:5 And Sarai said unto Abram, My wrong be upon thee: I have given my -maid into thy bosom; and when she saw that she had conceived, I was -despised in her eyes: the LORD judge between me and thee. - -16:6 But Abram said unto Sarai, Behold, thy maid is in thine hand; do -to her as it pleaseth thee. And when Sarai dealt hardly with her, she -fled from her face. - -16:7 And the angel of the LORD found her by a fountain of water in the -wilderness, by the fountain in the way to Shur. - -16:8 And he said, Hagar, Sarai's maid, whence camest thou? and whither -wilt thou go? And she said, I flee from the face of my mistress Sarai. - -16:9 And the angel of the LORD said unto her, Return to thy mistress, -and submit thyself under her hands. - -16:10 And the angel of the LORD said unto her, I will multiply thy -seed exceedingly, that it shall not be numbered for multitude. - -16:11 And the angel of the LORD said unto her, Behold, thou art with -child and shalt bear a son, and shalt call his name Ishmael; because -the LORD hath heard thy affliction. - -16:12 And he will be a wild man; his hand will be against every man, -and every man's hand against him; and he shall dwell in the presence -of all his brethren. - -16:13 And she called the name of the LORD that spake unto her, Thou -God seest me: for she said, Have I also here looked after him that -seeth me? 16:14 Wherefore the well was called Beerlahairoi; behold, -it is between Kadesh and Bered. - -16:15 And Hagar bare Abram a son: and Abram called his son's name, -which Hagar bare, Ishmael. - -16:16 And Abram was fourscore and six years old, when Hagar bare -Ishmael to Abram. - -17:1 And when Abram was ninety years old and nine, the LORD appeared -to Abram, and said unto him, I am the Almighty God; walk before me, -and be thou perfect. - -17:2 And I will make my covenant between me and thee, and will -multiply thee exceedingly. - -17:3 And Abram fell on his face: and God talked with him, saying, 17:4 -As for me, behold, my covenant is with thee, and thou shalt be a -father of many nations. - -17:5 Neither shall thy name any more be called Abram, but thy name -shall be Abraham; for a father of many nations have I made thee. - -17:6 And I will make thee exceeding fruitful, and I will make nations -of thee, and kings shall come out of thee. - -17:7 And I will establish my covenant between me and thee and thy seed -after thee in their generations for an everlasting covenant, to be a -God unto thee, and to thy seed after thee. - -17:8 And I will give unto thee, and to thy seed after thee, the land -wherein thou art a stranger, all the land of Canaan, for an -everlasting possession; and I will be their God. - -17:9 And God said unto Abraham, Thou shalt keep my covenant therefore, -thou, and thy seed after thee in their generations. - -17:10 This is my covenant, which ye shall keep, between me and you and -thy seed after thee; Every man child among you shall be circumcised. - -17:11 And ye shall circumcise the flesh of your foreskin; and it shall -be a token of the covenant betwixt me and you. - -17:12 And he that is eight days old shall be circumcised among you, -every man child in your generations, he that is born in the house, or -bought with money of any stranger, which is not of thy seed. - -17:13 He that is born in thy house, and he that is bought with thy -money, must needs be circumcised: and my covenant shall be in your -flesh for an everlasting covenant. - -17:14 And the uncircumcised man child whose flesh of his foreskin is -not circumcised, that soul shall be cut off from his people; he hath -broken my covenant. - -17:15 And God said unto Abraham, As for Sarai thy wife, thou shalt not -call her name Sarai, but Sarah shall her name be. - -17:16 And I will bless her, and give thee a son also of her: yea, I -will bless her, and she shall be a mother of nations; kings of people -shall be of her. - -17:17 Then Abraham fell upon his face, and laughed, and said in his -heart, Shall a child be born unto him that is an hundred years old? -and shall Sarah, that is ninety years old, bear? 17:18 And Abraham -said unto God, O that Ishmael might live before thee! 17:19 And God -said, Sarah thy wife shall bear thee a son indeed; and thou shalt call -his name Isaac: and I will establish my covenant with him for an -everlasting covenant, and with his seed after him. - -17:20 And as for Ishmael, I have heard thee: Behold, I have blessed -him, and will make him fruitful, and will multiply him exceedingly; -twelve princes shall he beget, and I will make him a great nation. - -17:21 But my covenant will I establish with Isaac, which Sarah shall -bear unto thee at this set time in the next year. - -17:22 And he left off talking with him, and God went up from Abraham. - -17:23 And Abraham took Ishmael his son, and all that were born in his -house, and all that were bought with his money, every male among the -men of Abraham's house; and circumcised the flesh of their foreskin in -the selfsame day, as God had said unto him. - -17:24 And Abraham was ninety years old and nine, when he was -circumcised in the flesh of his foreskin. - -17:25 And Ishmael his son was thirteen years old, when he was -circumcised in the flesh of his foreskin. - -17:26 In the selfsame day was Abraham circumcised, and Ishmael his -son. - -17:27 And all the men of his house, born in the house, and bought with -money of the stranger, were circumcised with him. - -18:1 And the LORD appeared unto him in the plains of Mamre: and he sat -in the tent door in the heat of the day; 18:2 And he lift up his eyes -and looked, and, lo, three men stood by him: and when he saw them, he -ran to meet them from the tent door, and bowed himself toward the -ground, 18:3 And said, My LORD, if now I have found favour in thy -sight, pass not away, I pray thee, from thy servant: 18:4 Let a little -water, I pray you, be fetched, and wash your feet, and rest yourselves -under the tree: 18:5 And I will fetch a morsel of bread, and comfort -ye your hearts; after that ye shall pass on: for therefore are ye come -to your servant. And they said, So do, as thou hast said. - -18:6 And Abraham hastened into the tent unto Sarah, and said, Make -ready quickly three measures of fine meal, knead it, and make cakes -upon the hearth. - -18:7 And Abraham ran unto the herd, and fetcht a calf tender and good, -and gave it unto a young man; and he hasted to dress it. - -18:8 And he took butter, and milk, and the calf which he had dressed, -and set it before them; and he stood by them under the tree, and they -did eat. - -18:9 And they said unto him, Where is Sarah thy wife? And he said, -Behold, in the tent. - -18:10 And he said, I will certainly return unto thee according to the -time of life; and, lo, Sarah thy wife shall have a son. And Sarah -heard it in the tent door, which was behind him. - -18:11 Now Abraham and Sarah were old and well stricken in age; and it -ceased to be with Sarah after the manner of women. - -18:12 Therefore Sarah laughed within herself, saying, After I am waxed -old shall I have pleasure, my lord being old also? 18:13 And the LORD -said unto Abraham, Wherefore did Sarah laugh, saying, Shall I of a -surety bear a child, which am old? 18:14 Is any thing too hard for -the LORD? At the time appointed I will return unto thee, according to -the time of life, and Sarah shall have a son. - -18:15 Then Sarah denied, saying, I laughed not; for she was afraid. -And he said, Nay; but thou didst laugh. - -18:16 And the men rose up from thence, and looked toward Sodom: and -Abraham went with them to bring them on the way. - -18:17 And the LORD said, Shall I hide from Abraham that thing which I -do; 18:18 Seeing that Abraham shall surely become a great and mighty -nation, and all the nations of the earth shall be blessed in him? -18:19 For I know him, that he will command his children and his -household after him, and they shall keep the way of the LORD, to do -justice and judgment; that the LORD may bring upon Abraham that which -he hath spoken of him. - -18:20 And the LORD said, Because the cry of Sodom and Gomorrah is -great, and because their sin is very grievous; 18:21 I will go down -now, and see whether they have done altogether according to the cry of -it, which is come unto me; and if not, I will know. - -18:22 And the men turned their faces from thence, and went toward -Sodom: but Abraham stood yet before the LORD. - -18:23 And Abraham drew near, and said, Wilt thou also destroy the -righteous with the wicked? 18:24 Peradventure there be fifty -righteous within the city: wilt thou also destroy and not spare the -place for the fifty righteous that are therein? 18:25 That be far -from thee to do after this manner, to slay the righteous with the -wicked: and that the righteous should be as the wicked, that be far -from thee: Shall not the Judge of all the earth do right? 18:26 And -the LORD said, If I find in Sodom fifty righteous within the city, -then I will spare all the place for their sakes. - -18:27 And Abraham answered and said, Behold now, I have taken upon me -to speak unto the LORD, which am but dust and ashes: 18:28 -Peradventure there shall lack five of the fifty righteous: wilt thou -destroy all the city for lack of five? And he said, If I find there -forty and five, I will not destroy it. - -18:29 And he spake unto him yet again, and said, Peradventure there -shall be forty found there. And he said, I will not do it for forty's -sake. - -18:30 And he said unto him, Oh let not the LORD be angry, and I will -speak: Peradventure there shall thirty be found there. And he said, I -will not do it, if I find thirty there. - -18:31 And he said, Behold now, I have taken upon me to speak unto the -LORD: Peradventure there shall be twenty found there. And he said, I -will not destroy it for twenty's sake. - -18:32 And he said, Oh let not the LORD be angry, and I will speak yet -but this once: Peradventure ten shall be found there. And he said, I -will not destroy it for ten's sake. - -18:33 And the LORD went his way, as soon as he had left communing with -Abraham: and Abraham returned unto his place. - -19:1 And there came two angels to Sodom at even; and Lot sat in the -gate of Sodom: and Lot seeing them rose up to meet them; and he bowed -himself with his face toward the ground; 19:2 And he said, Behold now, -my lords, turn in, I pray you, into your servant's house, and tarry -all night, and wash your feet, and ye shall rise up early, and go on -your ways. And they said, Nay; but we will abide in the street all -night. - -19:3 And he pressed upon them greatly; and they turned in unto him, -and entered into his house; and he made them a feast, and did bake -unleavened bread, and they did eat. - -19:4 But before they lay down, the men of the city, even the men of -Sodom, compassed the house round, both old and young, all the people -from every quarter: 19:5 And they called unto Lot, and said unto him, -Where are the men which came in to thee this night? bring them out -unto us, that we may know them. - -19:6 And Lot went out at the door unto them, and shut the door after -him, 19:7 And said, I pray you, brethren, do not so wickedly. - -19:8 Behold now, I have two daughters which have not known man; let -me, I pray you, bring them out unto you, and do ye to them as is good -in your eyes: only unto these men do nothing; for therefore came they -under the shadow of my roof. - -19:9 And they said, Stand back. And they said again, This one fellow -came in to sojourn, and he will needs be a judge: now will we deal -worse with thee, than with them. And they pressed sore upon the man, -even Lot, and came near to break the door. - -19:10 But the men put forth their hand, and pulled Lot into the house -to them, and shut to the door. - -19:11 And they smote the men that were at the door of the house with -blindness, both small and great: so that they wearied themselves to -find the door. - -19:12 And the men said unto Lot, Hast thou here any besides? son in -law, and thy sons, and thy daughters, and whatsoever thou hast in the -city, bring them out of this place: 19:13 For we will destroy this -place, because the cry of them is waxen great before the face of the -LORD; and the LORD hath sent us to destroy it. - -19:14 And Lot went out, and spake unto his sons in law, which married -his daughters, and said, Up, get you out of this place; for the LORD -will destroy this city. But he seemed as one that mocked unto his sons -in law. - -19:15 And when the morning arose, then the angels hastened Lot, -saying, Arise, take thy wife, and thy two daughters, which are here; -lest thou be consumed in the iniquity of the city. - -19:16 And while he lingered, the men laid hold upon his hand, and upon -the hand of his wife, and upon the hand of his two daughters; the LORD -being merciful unto him: and they brought him forth, and set him -without the city. - -19:17 And it came to pass, when they had brought them forth abroad, -that he said, Escape for thy life; look not behind thee, neither stay -thou in all the plain; escape to the mountain, lest thou be consumed. - -19:18 And Lot said unto them, Oh, not so, my LORD: 19:19 Behold now, -thy servant hath found grace in thy sight, and thou hast magnified thy -mercy, which thou hast shewed unto me in saving my life; and I cannot -escape to the mountain, lest some evil take me, and I die: 19:20 -Behold now, this city is near to flee unto, and it is a little one: -Oh, let me escape thither, (is it not a little one?) and my soul shall -live. - -19:21 And he said unto him, See, I have accepted thee concerning this -thing also, that I will not overthrow this city, for the which thou -hast spoken. - -19:22 Haste thee, escape thither; for I cannot do anything till thou -be come thither. Therefore the name of the city was called Zoar. - -19:23 The sun was risen upon the earth when Lot entered into Zoar. - -19:24 Then the LORD rained upon Sodom and upon Gomorrah brimstone and -fire from the LORD out of heaven; 19:25 And he overthrew those cities, -and all the plain, and all the inhabitants of the cities, and that -which grew upon the ground. - -19:26 But his wife looked back from behind him, and she became a -pillar of salt. - -19:27 And Abraham gat up early in the morning to the place where he -stood before the LORD: 19:28 And he looked toward Sodom and Gomorrah, -and toward all the land of the plain, and beheld, and, lo, the smoke -of the country went up as the smoke of a furnace. - -19:29 And it came to pass, when God destroyed the cities of the plain, -that God remembered Abraham, and sent Lot out of the midst of the -overthrow, when he overthrew the cities in the which Lot dwelt. - -19:30 And Lot went up out of Zoar, and dwelt in the mountain, and his -two daughters with him; for he feared to dwell in Zoar: and he dwelt -in a cave, he and his two daughters. - -19:31 And the firstborn said unto the younger, Our father is old, and -there is not a man in the earth to come in unto us after the manner of -all the earth: 19:32 Come, let us make our father drink wine, and we -will lie with him, that we may preserve seed of our father. - -19:33 And they made their father drink wine that night: and the -firstborn went in, and lay with her father; and he perceived not when -she lay down, nor when she arose. - -19:34 And it came to pass on the morrow, that the firstborn said unto -the younger, Behold, I lay yesternight with my father: let us make him -drink wine this night also; and go thou in, and lie with him, that we -may preserve seed of our father. - -19:35 And they made their father drink wine that night also: and the -younger arose, and lay with him; and he perceived not when she lay -down, nor when she arose. - -19:36 Thus were both the daughters of Lot with child by their father. - -19:37 And the first born bare a son, and called his name Moab: the -same is the father of the Moabites unto this day. - -19:38 And the younger, she also bare a son, and called his name -Benammi: the same is the father of the children of Ammon unto this -day. - -20:1 And Abraham journeyed from thence toward the south country, and -dwelled between Kadesh and Shur, and sojourned in Gerar. - -20:2 And Abraham said of Sarah his wife, She is my sister: and -Abimelech king of Gerar sent, and took Sarah. - -20:3 But God came to Abimelech in a dream by night, and said to him, -Behold, thou art but a dead man, for the woman which thou hast taken; -for she is a man's wife. - -20:4 But Abimelech had not come near her: and he said, LORD, wilt thou -slay also a righteous nation? 20:5 Said he not unto me, She is my -sister? and she, even she herself said, He is my brother: in the -integrity of my heart and innocency of my hands have I done this. - -20:6 And God said unto him in a dream, Yea, I know that thou didst -this in the integrity of thy heart; for I also withheld thee from -sinning against me: therefore suffered I thee not to touch her. - -20:7 Now therefore restore the man his wife; for he is a prophet, and -he shall pray for thee, and thou shalt live: and if thou restore her -not, know thou that thou shalt surely die, thou, and all that are -thine. - -20:8 Therefore Abimelech rose early in the morning, and called all his -servants, and told all these things in their ears: and the men were -sore afraid. - -20:9 Then Abimelech called Abraham, and said unto him, What hast thou -done unto us? and what have I offended thee, that thou hast brought on -me and on my kingdom a great sin? thou hast done deeds unto me that -ought not to be done. - -20:10 And Abimelech said unto Abraham, What sawest thou, that thou -hast done this thing? 20:11 And Abraham said, Because I thought, -Surely the fear of God is not in this place; and they will slay me for -my wife's sake. - -20:12 And yet indeed she is my sister; she is the daughter of my -father, but not the daughter of my mother; and she became my wife. - -20:13 And it came to pass, when God caused me to wander from my -father's house, that I said unto her, This is thy kindness which thou -shalt shew unto me; at every place whither we shall come, say of me, -He is my brother. - -20:14 And Abimelech took sheep, and oxen, and menservants, and -womenservants, and gave them unto Abraham, and restored him Sarah his -wife. - -20:15 And Abimelech said, Behold, my land is before thee: dwell where -it pleaseth thee. - -20:16 And unto Sarah he said, Behold, I have given thy brother a -thousand pieces of silver: behold, he is to thee a covering of the -eyes, unto all that are with thee, and with all other: thus she was -reproved. - -20:17 So Abraham prayed unto God: and God healed Abimelech, and his -wife, and his maidservants; and they bare children. - -20:18 For the LORD had fast closed up all the wombs of the house of -Abimelech, because of Sarah Abraham's wife. - -21:1 And the LORD visited Sarah as he had said, and the LORD did unto -Sarah as he had spoken. - -21:2 For Sarah conceived, and bare Abraham a son in his old age, at -the set time of which God had spoken to him. - -21:3 And Abraham called the name of his son that was born unto him, -whom Sarah bare to him, Isaac. - -21:4 And Abraham circumcised his son Isaac being eight days old, as -God had commanded him. - -21:5 And Abraham was an hundred years old, when his son Isaac was born -unto him. - -21:6 And Sarah said, God hath made me to laugh, so that all that hear -will laugh with me. - -21:7 And she said, Who would have said unto Abraham, that Sarah should -have given children suck? for I have born him a son in his old age. - -21:8 And the child grew, and was weaned: and Abraham made a great -feast the same day that Isaac was weaned. - -21:9 And Sarah saw the son of Hagar the Egyptian, which she had born -unto Abraham, mocking. - -21:10 Wherefore she said unto Abraham, Cast out this bondwoman and her -son: for the son of this bondwoman shall not be heir with my son, even -with Isaac. - -21:11 And the thing was very grievous in Abraham's sight because of -his son. - -21:12 And God said unto Abraham, Let it not be grievous in thy sight -because of the lad, and because of thy bondwoman; in all that Sarah -hath said unto thee, hearken unto her voice; for in Isaac shall thy -seed be called. - -21:13 And also of the son of the bondwoman will I make a nation, -because he is thy seed. - -21:14 And Abraham rose up early in the morning, and took bread, and a -bottle of water, and gave it unto Hagar, putting it on her shoulder, -and the child, and sent her away: and she departed, and wandered in -the wilderness of Beersheba. - -21:15 And the water was spent in the bottle, and she cast the child -under one of the shrubs. - -21:16 And she went, and sat her down over against him a good way off, -as it were a bow shot: for she said, Let me not see the death of the -child. And she sat over against him, and lift up her voice, and wept. - -21:17 And God heard the voice of the lad; and the angel of God called -to Hagar out of heaven, and said unto her, What aileth thee, Hagar? -fear not; for God hath heard the voice of the lad where he is. - -21:18 Arise, lift up the lad, and hold him in thine hand; for I will -make him a great nation. - -21:19 And God opened her eyes, and she saw a well of water; and she -went, and filled the bottle with water, and gave the lad drink. - -21:20 And God was with the lad; and he grew, and dwelt in the -wilderness, and became an archer. - -21:21 And he dwelt in the wilderness of Paran: and his mother took him -a wife out of the land of Egypt. - -21:22 And it came to pass at that time, that Abimelech and Phichol the -chief captain of his host spake unto Abraham, saying, God is with thee -in all that thou doest: 21:23 Now therefore swear unto me here by God -that thou wilt not deal falsely with me, nor with my son, nor with my -son's son: but according to the kindness that I have done unto thee, -thou shalt do unto me, and to the land wherein thou hast sojourned. - -21:24 And Abraham said, I will swear. - -21:25 And Abraham reproved Abimelech because of a well of water, which -Abimelech's servants had violently taken away. - -21:26 And Abimelech said, I wot not who hath done this thing; neither -didst thou tell me, neither yet heard I of it, but to day. - -21:27 And Abraham took sheep and oxen, and gave them unto Abimelech; -and both of them made a covenant. - -21:28 And Abraham set seven ewe lambs of the flock by themselves. - -21:29 And Abimelech said unto Abraham, What mean these seven ewe lambs -which thou hast set by themselves? 21:30 And he said, For these seven -ewe lambs shalt thou take of my hand, that they may be a witness unto -me, that I have digged this well. - -21:31 Wherefore he called that place Beersheba; because there they -sware both of them. - -21:32 Thus they made a covenant at Beersheba: then Abimelech rose up, -and Phichol the chief captain of his host, and they returned into the -land of the Philistines. - -21:33 And Abraham planted a grove in Beersheba, and called there on -the name of the LORD, the everlasting God. - -21:34 And Abraham sojourned in the Philistines' land many days. - -22:1 And it came to pass after these things, that God did tempt -Abraham, and said unto him, Abraham: and he said, Behold, here I am. - -22:2 And he said, Take now thy son, thine only son Isaac, whom thou -lovest, and get thee into the land of Moriah; and offer him there for -a burnt offering upon one of the mountains which I will tell thee of. - -22:3 And Abraham rose up early in the morning, and saddled his ass, -and took two of his young men with him, and Isaac his son, and clave -the wood for the burnt offering, and rose up, and went unto the place -of which God had told him. - -22:4 Then on the third day Abraham lifted up his eyes, and saw the -place afar off. - -22:5 And Abraham said unto his young men, Abide ye here with the ass; -and I and the lad will go yonder and worship, and come again to you. - -22:6 And Abraham took the wood of the burnt offering, and laid it upon -Isaac his son; and he took the fire in his hand, and a knife; and they -went both of them together. - -22:7 And Isaac spake unto Abraham his father, and said, My father: and -he said, Here am I, my son. And he said, Behold the fire and the wood: -but where is the lamb for a burnt offering? 22:8 And Abraham said, My -son, God will provide himself a lamb for a burnt offering: so they -went both of them together. - -22:9 And they came to the place which God had told him of; and Abraham -built an altar there, and laid the wood in order, and bound Isaac his -son, and laid him on the altar upon the wood. - -22:10 And Abraham stretched forth his hand, and took the knife to slay -his son. - -22:11 And the angel of the LORD called unto him out of heaven, and -said, Abraham, Abraham: and he said, Here am I. - -22:12 And he said, Lay not thine hand upon the lad, neither do thou -any thing unto him: for now I know that thou fearest God, seeing thou -hast not withheld thy son, thine only son from me. - -22:13 And Abraham lifted up his eyes, and looked, and behold behind -him a ram caught in a thicket by his horns: and Abraham went and took -the ram, and offered him up for a burnt offering in the stead of his -son. - -22:14 And Abraham called the name of that place Jehovahjireh: as it is -said to this day, In the mount of the LORD it shall be seen. - -22:15 And the angel of the LORD called unto Abraham out of heaven the -second time, 22:16 And said, By myself have I sworn, saith the LORD, -for because thou hast done this thing, and hast not withheld thy son, -thine only son: 22:17 That in blessing I will bless thee, and in -multiplying I will multiply thy seed as the stars of the heaven, and -as the sand which is upon the sea shore; and thy seed shall possess -the gate of his enemies; 22:18 And in thy seed shall all the nations -of the earth be blessed; because thou hast obeyed my voice. - -22:19 So Abraham returned unto his young men, and they rose up and -went together to Beersheba; and Abraham dwelt at Beersheba. - -22:20 And it came to pass after these things, that it was told -Abraham, saying, Behold, Milcah, she hath also born children unto thy -brother Nahor; 22:21 Huz his firstborn, and Buz his brother, and -Kemuel the father of Aram, 22:22 And Chesed, and Hazo, and Pildash, -and Jidlaph, and Bethuel. - -22:23 And Bethuel begat Rebekah: these eight Milcah did bear to Nahor, -Abraham's brother. - -22:24 And his concubine, whose name was Reumah, she bare also Tebah, -and Gaham, and Thahash, and Maachah. - -23:1 And Sarah was an hundred and seven and twenty years old: these -were the years of the life of Sarah. - -23:2 And Sarah died in Kirjatharba; the same is Hebron in the land of -Canaan: and Abraham came to mourn for Sarah, and to weep for her. - -23:3 And Abraham stood up from before his dead, and spake unto the -sons of Heth, saying, 23:4 I am a stranger and a sojourner with you: -give me a possession of a buryingplace with you, that I may bury my -dead out of my sight. - -23:5 And the children of Heth answered Abraham, saying unto him, 23:6 -Hear us, my lord: thou art a mighty prince among us: in the choice of -our sepulchres bury thy dead; none of us shall withhold from thee his -sepulchre, but that thou mayest bury thy dead. - -23:7 And Abraham stood up, and bowed himself to the people of the -land, even to the children of Heth. - -23:8 And he communed with them, saying, If it be your mind that I -should bury my dead out of my sight; hear me, and intreat for me to -Ephron the son of Zohar, 23:9 That he may give me the cave of -Machpelah, which he hath, which is in the end of his field; for as -much money as it is worth he shall give it me for a possession of a -buryingplace amongst you. - -23:10 And Ephron dwelt among the children of Heth: and Ephron the -Hittite answered Abraham in the audience of the children of Heth, even -of all that went in at the gate of his city, saying, 23:11 Nay, my -lord, hear me: the field give I thee, and the cave that is therein, I -give it thee; in the presence of the sons of my people give I it thee: -bury thy dead. - -23:12 And Abraham bowed down himself before the people of the land. - -23:13 And he spake unto Ephron in the audience of the people of the -land, saying, But if thou wilt give it, I pray thee, hear me: I will -give thee money for the field; take it of me, and I will bury my dead -there. - -23:14 And Ephron answered Abraham, saying unto him, 23:15 My lord, -hearken unto me: the land is worth four hundred shekels of silver; -what is that betwixt me and thee? bury therefore thy dead. - -23:16 And Abraham hearkened unto Ephron; and Abraham weighed to Ephron -the silver, which he had named in the audience of the sons of Heth, -four hundred shekels of silver, current money with the merchant. - -23:17 And the field of Ephron which was in Machpelah, which was before -Mamre, the field, and the cave which was therein, and all the trees -that were in the field, that were in all the borders round about, were -made sure 23:18 Unto Abraham for a possession in the presence of the -children of Heth, before all that went in at the gate of his city. - -23:19 And after this, Abraham buried Sarah his wife in the cave of the -field of Machpelah before Mamre: the same is Hebron in the land of -Canaan. - -23:20 And the field, and the cave that is therein, were made sure unto -Abraham for a possession of a buryingplace by the sons of Heth. - -24:1 And Abraham was old, and well stricken in age: and the LORD had -blessed Abraham in all things. - -24:2 And Abraham said unto his eldest servant of his house, that ruled -over all that he had, Put, I pray thee, thy hand under my thigh: 24:3 -And I will make thee swear by the LORD, the God of heaven, and the God -of the earth, that thou shalt not take a wife unto my son of the -daughters of the Canaanites, among whom I dwell: 24:4 But thou shalt -go unto my country, and to my kindred, and take a wife unto my son -Isaac. - -24:5 And the servant said unto him, Peradventure the woman will not be -willing to follow me unto this land: must I needs bring thy son again -unto the land from whence thou camest? 24:6 And Abraham said unto -him, Beware thou that thou bring not my son thither again. - -24:7 The LORD God of heaven, which took me from my father's house, and -from the land of my kindred, and which spake unto me, and that sware -unto me, saying, Unto thy seed will I give this land; he shall send -his angel before thee, and thou shalt take a wife unto my son from -thence. - -24:8 And if the woman will not be willing to follow thee, then thou -shalt be clear from this my oath: only bring not my son thither again. - -24:9 And the servant put his hand under the thigh of Abraham his -master, and sware to him concerning that matter. - -24:10 And the servant took ten camels of the camels of his master, and -departed; for all the goods of his master were in his hand: and he -arose, and went to Mesopotamia, unto the city of Nahor. - -24:11 And he made his camels to kneel down without the city by a well -of water at the time of the evening, even the time that women go out -to draw water. - -24:12 And he said O LORD God of my master Abraham, I pray thee, send -me good speed this day, and shew kindness unto my master Abraham. - -24:13 Behold, I stand here by the well of water; and the daughters of -the men of the city come out to draw water: 24:14 And let it come to -pass, that the damsel to whom I shall say, Let down thy pitcher, I -pray thee, that I may drink; and she shall say, Drink, and I will give -thy camels drink also: let the same be she that thou hast appointed -for thy servant Isaac; and thereby shall I know that thou hast shewed -kindness unto my master. - -24:15 And it came to pass, before he had done speaking, that, behold, -Rebekah came out, who was born to Bethuel, son of Milcah, the wife of -Nahor, Abraham's brother, with her pitcher upon her shoulder. - -24:16 And the damsel was very fair to look upon, a virgin, neither had -any man known her: and she went down to the well, and filled her -pitcher, and came up. - -24:17 And the servant ran to meet her, and said, Let me, I pray thee, -drink a little water of thy pitcher. - -24:18 And she said, Drink, my lord: and she hasted, and let down her -pitcher upon her hand, and gave him drink. - -24:19 And when she had done giving him drink, she said, I will draw -water for thy camels also, until they have done drinking. - -24:20 And she hasted, and emptied her pitcher into the trough, and ran -again unto the well to draw water, and drew for all his camels. - -24:21 And the man wondering at her held his peace, to wit whether the -LORD had made his journey prosperous or not. - -24:22 And it came to pass, as the camels had done drinking, that the -man took a golden earring of half a shekel weight, and two bracelets -for her hands of ten shekels weight of gold; 24:23 And said, Whose -daughter art thou? tell me, I pray thee: is there room in thy father's -house for us to lodge in? 24:24 And she said unto him, I am the -daughter of Bethuel the son of Milcah, which she bare unto Nahor. - -24:25 She said moreover unto him, We have both straw and provender -enough, and room to lodge in. - -24:26 And the man bowed down his head, and worshipped the LORD. - -24:27 And he said, Blessed be the LORD God of my master Abraham, who -hath not left destitute my master of his mercy and his truth: I being -in the way, the LORD led me to the house of my master's brethren. - -24:28 And the damsel ran, and told them of her mother's house these -things. - -24:29 And Rebekah had a brother, and his name was Laban: and Laban ran -out unto the man, unto the well. - -24:30 And it came to pass, when he saw the earring and bracelets upon -his sister's hands, and when he heard the words of Rebekah his sister, -saying, Thus spake the man unto me; that he came unto the man; and, -behold, he stood by the camels at the well. - -24:31 And he said, Come in, thou blessed of the LORD; wherefore -standest thou without? for I have prepared the house, and room for the -camels. - -24:32 And the man came into the house: and he ungirded his camels, and -gave straw and provender for the camels, and water to wash his feet, -and the men's feet that were with him. - -24:33 And there was set meat before him to eat: but he said, I will -not eat, until I have told mine errand. And he said, Speak on. - -24:34 And he said, I am Abraham's servant. - -24:35 And the LORD hath blessed my master greatly; and he is become -great: and he hath given him flocks, and herds, and silver, and gold, -and menservants, and maidservants, and camels, and asses. - -24:36 And Sarah my master's wife bare a son to my master when she was -old: and unto him hath he given all that he hath. - -24:37 And my master made me swear, saying, Thou shalt not take a wife -to my son of the daughters of the Canaanites, in whose land I dwell: -24:38 But thou shalt go unto my father's house, and to my kindred, and -take a wife unto my son. - -24:39 And I said unto my master, Peradventure the woman will not -follow me. - -24:40 And he said unto me, The LORD, before whom I walk, will send his -angel with thee, and prosper thy way; and thou shalt take a wife for -my son of my kindred, and of my father's house: 24:41 Then shalt thou -be clear from this my oath, when thou comest to my kindred; and if -they give not thee one, thou shalt be clear from my oath. - -24:42 And I came this day unto the well, and said, O LORD God of my -master Abraham, if now thou do prosper my way which I go: 24:43 -Behold, I stand by the well of water; and it shall come to pass, that -when the virgin cometh forth to draw water, and I say to her, Give me, -I pray thee, a little water of thy pitcher to drink; 24:44 And she say -to me, Both drink thou, and I will also draw for thy camels: let the -same be the woman whom the LORD hath appointed out for my master's -son. - -24:45 And before I had done speaking in mine heart, behold, Rebekah -came forth with her pitcher on her shoulder; and she went down unto -the well, and drew water: and I said unto her, Let me drink, I pray -thee. - -24:46 And she made haste, and let down her pitcher from her shoulder, -and said, Drink, and I will give thy camels drink also: so I drank, -and she made the camels drink also. - -24:47 And I asked her, and said, Whose daughter art thou? And she -said, the daughter of Bethuel, Nahor's son, whom Milcah bare unto him: -and I put the earring upon her face, and the bracelets upon her hands. - -24:48 And I bowed down my head, and worshipped the LORD, and blessed -the LORD God of my master Abraham, which had led me in the right way -to take my master's brother's daughter unto his son. - -24:49 And now if ye will deal kindly and truly with my master, tell -me: and if not, tell me; that I may turn to the right hand, or to the -left. - -24:50 Then Laban and Bethuel answered and said, The thing proceedeth -from the LORD: we cannot speak unto thee bad or good. - -24:51 Behold, Rebekah is before thee, take her, and go, and let her be -thy master's son's wife, as the LORD hath spoken. - -24:52 And it came to pass, that, when Abraham's servant heard their -words, he worshipped the LORD, bowing himself to the earth. - -24:53 And the servant brought forth jewels of silver, and jewels of -gold, and raiment, and gave them to Rebekah: he gave also to her -brother and to her mother precious things. - -24:54 And they did eat and drink, he and the men that were with him, -and tarried all night; and they rose up in the morning, and he said, -Send me away unto my master. - -24:55 And her brother and her mother said, Let the damsel abide with -us a few days, at the least ten; after that she shall go. - -24:56 And he said unto them, Hinder me not, seeing the LORD hath -prospered my way; send me away that I may go to my master. - -24:57 And they said, We will call the damsel, and enquire at her -mouth. - -24:58 And they called Rebekah, and said unto her, Wilt thou go with -this man? And she said, I will go. - -24:59 And they sent away Rebekah their sister, and her nurse, and -Abraham's servant, and his men. - -24:60 And they blessed Rebekah, and said unto her, Thou art our -sister, be thou the mother of thousands of millions, and let thy seed -possess the gate of those which hate them. - -24:61 And Rebekah arose, and her damsels, and they rode upon the -camels, and followed the man: and the servant took Rebekah, and went -his way. - -24:62 And Isaac came from the way of the well Lahairoi; for he dwelt -in the south country. - -24:63 And Isaac went out to meditate in the field at the eventide: and -he lifted up his eyes, and saw, and, behold, the camels were coming. - -24:64 And Rebekah lifted up her eyes, and when she saw Isaac, she -lighted off the camel. - -24:65 For she had said unto the servant, What man is this that walketh -in the field to meet us? And the servant had said, It is my master: -therefore she took a vail, and covered herself. - -24:66 And the servant told Isaac all things that he had done. - -24:67 And Isaac brought her into his mother Sarah's tent, and took -Rebekah, and she became his wife; and he loved her: and Isaac was -comforted after his mother's death. - -25:1 Then again Abraham took a wife, and her name was Keturah. - -25:2 And she bare him Zimran, and Jokshan, and Medan, and Midian, and -Ishbak, and Shuah. - -25:3 And Jokshan begat Sheba, and Dedan. And the sons of Dedan were -Asshurim, and Letushim, and Leummim. - -25:4 And the sons of Midian; Ephah, and Epher, and Hanoch, and Abidah, -and Eldaah. All these were the children of Keturah. - -25:5 And Abraham gave all that he had unto Isaac. - -25:6 But unto the sons of the concubines, which Abraham had, Abraham -gave gifts, and sent them away from Isaac his son, while he yet lived, -eastward, unto the east country. - -25:7 And these are the days of the years of Abraham's life which he -lived, an hundred threescore and fifteen years. - -25:8 Then Abraham gave up the ghost, and died in a good old age, an -old man, and full of years; and was gathered to his people. - -25:9 And his sons Isaac and Ishmael buried him in the cave of -Machpelah, in the field of Ephron the son of Zohar the Hittite, which -is before Mamre; 25:10 The field which Abraham purchased of the sons -of Heth: there was Abraham buried, and Sarah his wife. - -25:11 And it came to pass after the death of Abraham, that God blessed -his son Isaac; and Isaac dwelt by the well Lahairoi. - -25:12 Now these are the generations of Ishmael, Abraham's son, whom -Hagar the Egyptian, Sarah's handmaid, bare unto Abraham: 25:13 And -these are the names of the sons of Ishmael, by their names, according -to their generations: the firstborn of Ishmael, Nebajoth; and Kedar, -and Adbeel, and Mibsam, 25:14 And Mishma, and Dumah, and Massa, 25:15 -Hadar, and Tema, Jetur, Naphish, and Kedemah: 25:16 These are the sons -of Ishmael, and these are their names, by their towns, and by their -castles; twelve princes according to their nations. - -25:17 And these are the years of the life of Ishmael, an hundred and -thirty and seven years: and he gave up the ghost and died; and was -gathered unto his people. - -25:18 And they dwelt from Havilah unto Shur, that is before Egypt, as -thou goest toward Assyria: and he died in the presence of all his -brethren. - -25:19 And these are the generations of Isaac, Abraham's son: Abraham -begat Isaac: 25:20 And Isaac was forty years old when he took Rebekah -to wife, the daughter of Bethuel the Syrian of Padanaram, the sister -to Laban the Syrian. - -25:21 And Isaac intreated the LORD for his wife, because she was -barren: and the LORD was intreated of him, and Rebekah his wife -conceived. - -25:22 And the children struggled together within her; and she said, If -it be so, why am I thus? And she went to enquire of the LORD. - -25:23 And the LORD said unto her, Two nations are in thy womb, and two -manner of people shall be separated from thy bowels; and the one -people shall be stronger than the other people; and the elder shall -serve the younger. - -25:24 And when her days to be delivered were fulfilled, behold, there -were twins in her womb. - -25:25 And the first came out red, all over like an hairy garment; and -they called his name Esau. - -25:26 And after that came his brother out, and his hand took hold on -Esau's heel; and his name was called Jacob: and Isaac was threescore -years old when she bare them. - -25:27 And the boys grew: and Esau was a cunning hunter, a man of the -field; and Jacob was a plain man, dwelling in tents. - -25:28 And Isaac loved Esau, because he did eat of his venison: but -Rebekah loved Jacob. - -25:29 And Jacob sod pottage: and Esau came from the field, and he was -faint: 25:30 And Esau said to Jacob, Feed me, I pray thee, with that -same red pottage; for I am faint: therefore was his name called Edom. - -25:31 And Jacob said, Sell me this day thy birthright. - -25:32 And Esau said, Behold, I am at the point to die: and what profit -shall this birthright do to me? 25:33 And Jacob said, Swear to me -this day; and he sware unto him: and he sold his birthright unto -Jacob. - -25:34 Then Jacob gave Esau bread and pottage of lentiles; and he did -eat and drink, and rose up, and went his way: thus Esau despised his -birthright. - -26:1 And there was a famine in the land, beside the first famine that -was in the days of Abraham. And Isaac went unto Abimelech king of the -Philistines unto Gerar. - -26:2 And the LORD appeared unto him, and said, Go not down into Egypt; -dwell in the land which I shall tell thee of: 26:3 Sojourn in this -land, and I will be with thee, and will bless thee; for unto thee, and -unto thy seed, I will give all these countries, and I will perform the -oath which I sware unto Abraham thy father; 26:4 And I will make thy -seed to multiply as the stars of heaven, and will give unto thy seed -all these countries; and in thy seed shall all the nations of the -earth be blessed; 26:5 Because that Abraham obeyed my voice, and kept -my charge, my commandments, my statutes, and my laws. - -26:6 And Isaac dwelt in Gerar: 26:7 And the men of the place asked him -of his wife; and he said, She is my sister: for he feared to say, She -is my wife; lest, said he, the men of the place should kill me for -Rebekah; because she was fair to look upon. - -26:8 And it came to pass, when he had been there a long time, that -Abimelech king of the Philistines looked out at a window, and saw, -and, behold, Isaac was sporting with Rebekah his wife. - -26:9 And Abimelech called Isaac, and said, Behold, of a surety she is -thy wife; and how saidst thou, She is my sister? And Isaac said unto -him, Because I said, Lest I die for her. - -26:10 And Abimelech said, What is this thou hast done unto us? one of -the people might lightly have lien with thy wife, and thou shouldest -have brought guiltiness upon us. - -26:11 And Abimelech charged all his people, saying, He that toucheth -this man or his wife shall surely be put to death. - -26:12 Then Isaac sowed in that land, and received in the same year an -hundredfold: and the LORD blessed him. - -26:13 And the man waxed great, and went forward, and grew until he -became very great: 26:14 For he had possession of flocks, and -possession of herds, and great store of servants: and the Philistines -envied him. - -26:15 For all the wells which his father's servants had digged in the -days of Abraham his father, the Philistines had stopped them, and -filled them with earth. - -26:16 And Abimelech said unto Isaac, Go from us; for thou art much -mightier than we. - -26:17 And Isaac departed thence, and pitched his tent in the valley of -Gerar, and dwelt there. - -26:18 And Isaac digged again the wells of water, which they had digged -in the days of Abraham his father; for the Philistines had stopped -them after the death of Abraham: and he called their names after the -names by which his father had called them. - -26:19 And Isaac's servants digged in the valley, and found there a -well of springing water. - -26:20 And the herdmen of Gerar did strive with Isaac's herdmen, -saying, The water is ours: and he called the name of the well Esek; -because they strove with him. - -26:21 And they digged another well, and strove for that also: and he -called the name of it Sitnah. - -26:22 And he removed from thence, and digged another well; and for -that they strove not: and he called the name of it Rehoboth; and he -said, For now the LORD hath made room for us, and we shall be fruitful -in the land. - -26:23 And he went up from thence to Beersheba. - -26:24 And the LORD appeared unto him the same night, and said, I am -the God of Abraham thy father: fear not, for I am with thee, and will -bless thee, and multiply thy seed for my servant Abraham's sake. - -26:25 And he builded an altar there, and called upon the name of the -LORD, and pitched his tent there: and there Isaac's servants digged a -well. - -26:26 Then Abimelech went to him from Gerar, and Ahuzzath one of his -friends, and Phichol the chief captain of his army. - -26:27 And Isaac said unto them, Wherefore come ye to me, seeing ye -hate me, and have sent me away from you? 26:28 And they said, We saw -certainly that the LORD was with thee: and we said, Let there be now -an oath betwixt us, even betwixt us and thee, and let us make a -covenant with thee; 26:29 That thou wilt do us no hurt, as we have not -touched thee, and as we have done unto thee nothing but good, and have -sent thee away in peace: thou art now the blessed of the LORD. - -26:30 And he made them a feast, and they did eat and drink. - -26:31 And they rose up betimes in the morning, and sware one to -another: and Isaac sent them away, and they departed from him in -peace. - -26:32 And it came to pass the same day, that Isaac's servants came, -and told him concerning the well which they had digged, and said unto -him, We have found water. - -26:33 And he called it Shebah: therefore the name of the city is -Beersheba unto this day. - -26:34 And Esau was forty years old when he took to wife Judith the -daughter of Beeri the Hittite, and Bashemath the daughter of Elon the -Hittite: 26:35 Which were a grief of mind unto Isaac and to Rebekah. - -27:1 And it came to pass, that when Isaac was old, and his eyes were -dim, so that he could not see, he called Esau his eldest son, and said -unto him, My son: and he said unto him, Behold, here am I. - -27:2 And he said, Behold now, I am old, I know not the day of my -death: 27:3 Now therefore take, I pray thee, thy weapons, thy quiver -and thy bow, and go out to the field, and take me some venison; 27:4 -And make me savoury meat, such as I love, and bring it to me, that I -may eat; that my soul may bless thee before I die. - -27:5 And Rebekah heard when Isaac spake to Esau his son. And Esau went -to the field to hunt for venison, and to bring it. - -27:6 And Rebekah spake unto Jacob her son, saying, Behold, I heard thy -father speak unto Esau thy brother, saying, 27:7 Bring me venison, and -make me savoury meat, that I may eat, and bless thee before the LORD -before my death. - -27:8 Now therefore, my son, obey my voice according to that which I -command thee. - -27:9 Go now to the flock, and fetch me from thence two good kids of -the goats; and I will make them savoury meat for thy father, such as -he loveth: 27:10 And thou shalt bring it to thy father, that he may -eat, and that he may bless thee before his death. - -27:11 And Jacob said to Rebekah his mother, Behold, Esau my brother is -a hairy man, and I am a smooth man: 27:12 My father peradventure will -feel me, and I shall seem to him as a deceiver; and I shall bring a -curse upon me, and not a blessing. - -27:13 And his mother said unto him, Upon me be thy curse, my son: only -obey my voice, and go fetch me them. - -27:14 And he went, and fetched, and brought them to his mother: and -his mother made savoury meat, such as his father loved. - -27:15 And Rebekah took goodly raiment of her eldest son Esau, which -were with her in the house, and put them upon Jacob her younger son: -27:16 And she put the skins of the kids of the goats upon his hands, -and upon the smooth of his neck: 27:17 And she gave the savoury meat -and the bread, which she had prepared, into the hand of her son Jacob. - -27:18 And he came unto his father, and said, My father: and he said, -Here am I; who art thou, my son? 27:19 And Jacob said unto his -father, I am Esau thy first born; I have done according as thou badest -me: arise, I pray thee, sit and eat of my venison, that thy soul may -bless me. - -27:20 And Isaac said unto his son, How is it that thou hast found it -so quickly, my son? And he said, Because the LORD thy God brought it -to me. - -27:21 And Isaac said unto Jacob, Come near, I pray thee, that I may -feel thee, my son, whether thou be my very son Esau or not. - -27:22 And Jacob went near unto Isaac his father; and he felt him, and -said, The voice is Jacob's voice, but the hands are the hands of Esau. - -27:23 And he discerned him not, because his hands were hairy, as his -brother Esau's hands: so he blessed him. - -27:24 And he said, Art thou my very son Esau? And he said, I am. - -27:25 And he said, Bring it near to me, and I will eat of my son's -venison, that my soul may bless thee. And he brought it near to him, -and he did eat: and he brought him wine and he drank. - -27:26 And his father Isaac said unto him, Come near now, and kiss me, -my son. - -27:27 And he came near, and kissed him: and he smelled the smell of -his raiment, and blessed him, and said, See, the smell of my son is as -the smell of a field which the LORD hath blessed: 27:28 Therefore God -give thee of the dew of heaven, and the fatness of the earth, and -plenty of corn and wine: 27:29 Let people serve thee, and nations bow -down to thee: be lord over thy brethren, and let thy mother's sons bow -down to thee: cursed be every one that curseth thee, and blessed be he -that blesseth thee. - -27:30 And it came to pass, as soon as Isaac had made an end of -blessing Jacob, and Jacob was yet scarce gone out from the presence of -Isaac his father, that Esau his brother came in from his hunting. - -27:31 And he also had made savoury meat, and brought it unto his -father, and said unto his father, Let my father arise, and eat of his -son's venison, that thy soul may bless me. - -27:32 And Isaac his father said unto him, Who art thou? And he said, I -am thy son, thy firstborn Esau. - -27:33 And Isaac trembled very exceedingly, and said, Who? where is he -that hath taken venison, and brought it me, and I have eaten of all -before thou camest, and have blessed him? yea, and he shall be -blessed. - -27:34 And when Esau heard the words of his father, he cried with a -great and exceeding bitter cry, and said unto his father, Bless me, -even me also, O my father. - -27:35 And he said, Thy brother came with subtilty, and hath taken away -thy blessing. - -27:36 And he said, Is not he rightly named Jacob? for he hath -supplanted me these two times: he took away my birthright; and, -behold, now he hath taken away my blessing. And he said, Hast thou not -reserved a blessing for me? 27:37 And Isaac answered and said unto -Esau, Behold, I have made him thy lord, and all his brethren have I -given to him for servants; and with corn and wine have I sustained -him: and what shall I do now unto thee, my son? 27:38 And Esau said -unto his father, Hast thou but one blessing, my father? bless me, even -me also, O my father. And Esau lifted up his voice, and wept. - -27:39 And Isaac his father answered and said unto him, Behold, thy -dwelling shall be the fatness of the earth, and of the dew of heaven -from above; 27:40 And by thy sword shalt thou live, and shalt serve -thy brother; and it shall come to pass when thou shalt have the -dominion, that thou shalt break his yoke from off thy neck. - -27:41 And Esau hated Jacob because of the blessing wherewith his -father blessed him: and Esau said in his heart, The days of mourning -for my father are at hand; then will I slay my brother Jacob. - -27:42 And these words of Esau her elder son were told to Rebekah: and -she sent and called Jacob her younger son, and said unto him, Behold, -thy brother Esau, as touching thee, doth comfort himself, purposing to -kill thee. - -27:43 Now therefore, my son, obey my voice; arise, flee thou to Laban -my brother to Haran; 27:44 And tarry with him a few days, until thy -brother's fury turn away; 27:45 Until thy brother's anger turn away -from thee, and he forget that which thou hast done to him: then I will -send, and fetch thee from thence: why should I be deprived also of you -both in one day? 27:46 And Rebekah said to Isaac, I am weary of my -life because of the daughters of Heth: if Jacob take a wife of the -daughters of Heth, such as these which are of the daughters of the -land, what good shall my life do me? 28:1 And Isaac called Jacob, and -blessed him, and charged him, and said unto him, Thou shalt not take a -wife of the daughters of Canaan. - -28:2 Arise, go to Padanaram, to the house of Bethuel thy mother's -father; and take thee a wife from thence of the daughers of Laban thy -mother's brother. - -28:3 And God Almighty bless thee, and make thee fruitful, and multiply -thee, that thou mayest be a multitude of people; 28:4 And give thee -the blessing of Abraham, to thee, and to thy seed with thee; that thou -mayest inherit the land wherein thou art a stranger, which God gave -unto Abraham. - -28:5 And Isaac sent away Jacob: and he went to Padanaram unto Laban, -son of Bethuel the Syrian, the brother of Rebekah, Jacob's and Esau's -mother. - -28:6 When Esau saw that Isaac had blessed Jacob, and sent him away to -Padanaram, to take him a wife from thence; and that as he blessed him -he gave him a charge, saying, Thou shalt not take a wife of the -daughers of Canaan; 28:7 And that Jacob obeyed his father and his -mother, and was gone to Padanaram; 28:8 And Esau seeing that the -daughters of Canaan pleased not Isaac his father; 28:9 Then went Esau -unto Ishmael, and took unto the wives which he had Mahalath the -daughter of Ishmael Abraham's son, the sister of Nebajoth, to be his -wife. - -28:10 And Jacob went out from Beersheba, and went toward Haran. - -28:11 And he lighted upon a certain place, and tarried there all -night, because the sun was set; and he took of the stones of that -place, and put them for his pillows, and lay down in that place to -sleep. - -28:12 And he dreamed, and behold a ladder set up on the earth, and the -top of it reached to heaven: and behold the angels of God ascending -and descending on it. - -28:13 And, behold, the LORD stood above it, and said, I am the LORD -God of Abraham thy father, and the God of Isaac: the land whereon thou -liest, to thee will I give it, and to thy seed; 28:14 And thy seed -shall be as the dust of the earth, and thou shalt spread abroad to the -west, and to the east, and to the north, and to the south: and in thee -and in thy seed shall all the families of the earth be blessed. - -28:15 And, behold, I am with thee, and will keep thee in all places -whither thou goest, and will bring thee again into this land; for I -will not leave thee, until I have done that which I have spoken to -thee of. - -28:16 And Jacob awaked out of his sleep, and he said, Surely the LORD -is in this place; and I knew it not. - -28:17 And he was afraid, and said, How dreadful is this place! this is -none other but the house of God, and this is the gate of heaven. - -28:18 And Jacob rose up early in the morning, and took the stone that -he had put for his pillows, and set it up for a pillar, and poured oil -upon the top of it. - -28:19 And he called the name of that place Bethel: but the name of -that city was called Luz at the first. - -28:20 And Jacob vowed a vow, saying, If God will be with me, and will -keep me in this way that I go, and will give me bread to eat, and -raiment to put on, 28:21 So that I come again to my father's house in -peace; then shall the LORD be my God: 28:22 And this stone, which I -have set for a pillar, shall be God's house: and of all that thou -shalt give me I will surely give the tenth unto thee. - -29:1 Then Jacob went on his journey, and came into the land of the -people of the east. - -29:2 And he looked, and behold a well in the field, and, lo, there -were three flocks of sheep lying by it; for out of that well they -watered the flocks: and a great stone was upon the well's mouth. - -29:3 And thither were all the flocks gathered: and they rolled the -stone from the well's mouth, and watered the sheep, and put the stone -again upon the well's mouth in his place. - -29:4 And Jacob said unto them, My brethren, whence be ye? And they -said, Of Haran are we. - -29:5 And he said unto them, Know ye Laban the son of Nahor? And they -said, We know him. - -29:6 And he said unto them, Is he well? And they said, He is well: -and, behold, Rachel his daughter cometh with the sheep. - -29:7 And he said, Lo, it is yet high day, neither is it time that the -cattle should be gathered together: water ye the sheep, and go and -feed them. - -29:8 And they said, We cannot, until all the flocks be gathered -together, and till they roll the stone from the well's mouth; then we -water the sheep. - -29:9 And while he yet spake with them, Rachel came with her father's -sheep; for she kept them. - -29:10 And it came to pass, when Jacob saw Rachel the daughter of Laban -his mother's brother, and the sheep of Laban his mother's brother, -that Jacob went near, and rolled the stone from the well's mouth, and -watered the flock of Laban his mother's brother. - -29:11 And Jacob kissed Rachel, and lifted up his voice, and wept. - -29:12 And Jacob told Rachel that he was her father's brother, and that -he was Rebekah's son: and she ran and told her father. - -29:13 And it came to pass, when Laban heard the tidings of Jacob his -sister's son, that he ran to meet him, and embraced him, and kissed -him, and brought him to his house. And he told Laban all these things. - -29:14 And Laban said to him, Surely thou art my bone and my flesh. And -he abode with him the space of a month. - -29:15 And Laban said unto Jacob, Because thou art my brother, -shouldest thou therefore serve me for nought? tell me, what shall thy -wages be? 29:16 And Laban had two daughters: the name of the elder -was Leah, and the name of the younger was Rachel. - -29:17 Leah was tender eyed; but Rachel was beautiful and well -favoured. - -29:18 And Jacob loved Rachel; and said, I will serve thee seven years -for Rachel thy younger daughter. - -29:19 And Laban said, It is better that I give her to thee, than that -I should give her to another man: abide with me. - -29:20 And Jacob served seven years for Rachel; and they seemed unto -him but a few days, for the love he had to her. - -29:21 And Jacob said unto Laban, Give me my wife, for my days are -fulfilled, that I may go in unto her. - -29:22 And Laban gathered together all the men of the place, and made a -feast. - -29:23 And it came to pass in the evening, that he took Leah his -daughter, and brought her to him; and he went in unto her. - -29:24 And Laban gave unto his daughter Leah Zilpah his maid for an -handmaid. - -29:25 And it came to pass, that in the morning, behold, it was Leah: -and he said to Laban, What is this thou hast done unto me? did not I -serve with thee for Rachel? wherefore then hast thou beguiled me? -29:26 And Laban said, It must not be so done in our country, to give -the younger before the firstborn. - -29:27 Fulfil her week, and we will give thee this also for the service -which thou shalt serve with me yet seven other years. - -29:28 And Jacob did so, and fulfilled her week: and he gave him Rachel -his daughter to wife also. - -29:29 And Laban gave to Rachel his daughter Bilhah his handmaid to be -her maid. - -29:30 And he went in also unto Rachel, and he loved also Rachel more -than Leah, and served with him yet seven other years. - -29:31 And when the LORD saw that Leah was hated, he opened her womb: -but Rachel was barren. - -29:32 And Leah conceived, and bare a son, and she called his name -Reuben: for she said, Surely the LORD hath looked upon my affliction; -now therefore my husband will love me. - -29:33 And she conceived again, and bare a son; and said, Because the -LORD hath heard I was hated, he hath therefore given me this son also: -and she called his name Simeon. - -29:34 And she conceived again, and bare a son; and said, Now this time -will my husband be joined unto me, because I have born him three sons: -therefore was his name called Levi. - -29:35 And she conceived again, and bare a son: and she said, Now will -I praise the LORD: therefore she called his name Judah; and left -bearing. - -30:1 And when Rachel saw that she bare Jacob no children, Rachel -envied her sister; and said unto Jacob, Give me children, or else I -die. - -30:2 And Jacob's anger was kindled against Rachel: and he said, Am I -in God's stead, who hath withheld from thee the fruit of the womb? -30:3 And she said, Behold my maid Bilhah, go in unto her; and she -shall bear upon my knees, that I may also have children by her. - -30:4 And she gave him Bilhah her handmaid to wife: and Jacob went in -unto her. - -30:5 And Bilhah conceived, and bare Jacob a son. - -30:6 And Rachel said, God hath judged me, and hath also heard my -voice, and hath given me a son: therefore called she his name Dan. - -30:7 And Bilhah Rachel's maid conceived again, and bare Jacob a second -son. - -30:8 And Rachel said, With great wrestlings have I wrestled with my -sister, and I have prevailed: and she called his name Naphtali. - -30:9 When Leah saw that she had left bearing, she took Zilpah her -maid, and gave her Jacob to wife. - -30:10 And Zilpah Leah's maid bare Jacob a son. - -30:11 And Leah said, A troop cometh: and she called his name Gad. - -30:12 And Zilpah Leah's maid bare Jacob a second son. - -30:13 And Leah said, Happy am I, for the daughters will call me -blessed: and she called his name Asher. - -30:14 And Reuben went in the days of wheat harvest, and found -mandrakes in the field, and brought them unto his mother Leah. Then -Rachel said to Leah, Give me, I pray thee, of thy son's mandrakes. - -30:15 And she said unto her, Is it a small matter that thou hast taken -my husband? and wouldest thou take away my son's mandrakes also? And -Rachel said, Therefore he shall lie with thee to night for thy son's -mandrakes. - -30:16 And Jacob came out of the field in the evening, and Leah went -out to meet him, and said, Thou must come in unto me; for surely I -have hired thee with my son's mandrakes. And he lay with her that -night. - -30:17 And God hearkened unto Leah, and she conceived, and bare Jacob -the fifth son. - -30:18 And Leah said, God hath given me my hire, because I have given -my maiden to my husband: and she called his name Issachar. - -30:19 And Leah conceived again, and bare Jacob the sixth son. - -30:20 And Leah said, God hath endued me with a good dowry; now will my -husband dwell with me, because I have born him six sons: and she -called his name Zebulun. - -30:21 And afterwards she bare a daughter, and called her name Dinah. - -30:22 And God remembered Rachel, and God hearkened to her, and opened -her womb. - -30:23 And she conceived, and bare a son; and said, God hath taken away -my reproach: 30:24 And she called his name Joseph; and said, The LORD -shall add to me another son. - -30:25 And it came to pass, when Rachel had born Joseph, that Jacob -said unto Laban, Send me away, that I may go unto mine own place, and -to my country. - -30:26 Give me my wives and my children, for whom I have served thee, -and let me go: for thou knowest my service which I have done thee. - -30:27 And Laban said unto him, I pray thee, if I have found favour in -thine eyes, tarry: for I have learned by experience that the LORD hath -blessed me for thy sake. - -30:28 And he said, Appoint me thy wages, and I will give it. - -30:29 And he said unto him, Thou knowest how I have served thee, and -how thy cattle was with me. - -30:30 For it was little which thou hadst before I came, and it is now -increased unto a multitude; and the LORD hath blessed thee since my -coming: and now when shall I provide for mine own house also? 30:31 -And he said, What shall I give thee? And Jacob said, Thou shalt not -give me any thing: if thou wilt do this thing for me, I will again -feed and keep thy flock. - -30:32 I will pass through all thy flock to day, removing from thence -all the speckled and spotted cattle, and all the brown cattle among -the sheep, and the spotted and speckled among the goats: and of such -shall be my hire. - -30:33 So shall my righteousness answer for me in time to come, when it -shall come for my hire before thy face: every one that is not speckled -and spotted among the goats, and brown among the sheep, that shall be -counted stolen with me. - -30:34 And Laban said, Behold, I would it might be according to thy -word. - -30:35 And he removed that day the he goats that were ringstraked and -spotted, and all the she goats that were speckled and spotted, and -every one that had some white in it, and all the brown among the -sheep, and gave them into the hand of his sons. - -30:36 And he set three days' journey betwixt himself and Jacob: and -Jacob fed the rest of Laban's flocks. - -30:37 And Jacob took him rods of green poplar, and of the hazel and -chesnut tree; and pilled white strakes in them, and made the white -appear which was in the rods. - -30:38 And he set the rods which he had pilled before the flocks in the -gutters in the watering troughs when the flocks came to drink, that -they should conceive when they came to drink. - -30:39 And the flocks conceived before the rods, and brought forth -cattle ringstraked, speckled, and spotted. - -30:40 And Jacob did separate the lambs, and set the faces of the -flocks toward the ringstraked, and all the brown in the flock of -Laban; and he put his own flocks by themselves, and put them not unto -Laban's cattle. - -30:41 And it came to pass, whensoever the stronger cattle did -conceive, that Jacob laid the rods before the eyes of the cattle in -the gutters, that they might conceive among the rods. - -30:42 But when the cattle were feeble, he put them not in: so the -feebler were Laban's, and the stronger Jacob's. - -30:43 And the man increased exceedingly, and had much cattle, and -maidservants, and menservants, and camels, and asses. - -31:1 And he heard the words of Laban's sons, saying, Jacob hath taken -away all that was our father's; and of that which was our father's -hath he gotten all this glory. - -31:2 And Jacob beheld the countenance of Laban, and, behold, it was -not toward him as before. - -31:3 And the LORD said unto Jacob, Return unto the land of thy -fathers, and to thy kindred; and I will be with thee. - -31:4 And Jacob sent and called Rachel and Leah to the field unto his -flock, 31:5 And said unto them, I see your father's countenance, that -it is not toward me as before; but the God of my father hath been with -me. - -31:6 And ye know that with all my power I have served your father. - -31:7 And your father hath deceived me, and changed my wages ten times; -but God suffered him not to hurt me. - -31:8 If he said thus, The speckled shall be thy wages; then all the -cattle bare speckled: and if he said thus, The ringstraked shall be -thy hire; then bare all the cattle ringstraked. - -31:9 Thus God hath taken away the cattle of your father, and given -them to me. - -31:10 And it came to pass at the time that the cattle conceived, that -I lifted up mine eyes, and saw in a dream, and, behold, the rams which -leaped upon the cattle were ringstraked, speckled, and grisled. - -31:11 And the angel of God spake unto me in a dream, saying, Jacob: -And I said, Here am I. - -31:12 And he said, Lift up now thine eyes, and see, all the rams which -leap upon the cattle are ringstraked, speckled, and grisled: for I -have seen all that Laban doeth unto thee. - -31:13 I am the God of Bethel, where thou anointedst the pillar, and -where thou vowedst a vow unto me: now arise, get thee out from this -land, and return unto the land of thy kindred. - -31:14 And Rachel and Leah answered and said unto him, Is there yet any -portion or inheritance for us in our father's house? 31:15 Are we not -counted of him strangers? for he hath sold us, and hath quite devoured -also our money. - -31:16 For all the riches which God hath taken from our father, that is -ours, and our children's: now then, whatsoever God hath said unto -thee, do. - -31:17 Then Jacob rose up, and set his sons and his wives upon camels; -31:18 And he carried away all his cattle, and all his goods which he -had gotten, the cattle of his getting, which he had gotten in -Padanaram, for to go to Isaac his father in the land of Canaan. - -31:19 And Laban went to shear his sheep: and Rachel had stolen the -images that were her father's. - -31:20 And Jacob stole away unawares to Laban the Syrian, in that he -told him not that he fled. - -31:21 So he fled with all that he had; and he rose up, and passed over -the river, and set his face toward the mount Gilead. - -31:22 And it was told Laban on the third day that Jacob was fled. - -31:23 And he took his brethren with him, and pursued after him seven -days' journey; and they overtook him in the mount Gilead. - -31:24 And God came to Laban the Syrian in a dream by night, and said -unto him, Take heed that thou speak not to Jacob either good or bad. - -31:25 Then Laban overtook Jacob. Now Jacob had pitched his tent in the -mount: and Laban with his brethren pitched in the mount of Gilead. - -31:26 And Laban said to Jacob, What hast thou done, that thou hast -stolen away unawares to me, and carried away my daughters, as captives -taken with the sword? 31:27 Wherefore didst thou flee away secretly, -and steal away from me; and didst not tell me, that I might have sent -thee away with mirth, and with songs, with tabret, and with harp? -31:28 And hast not suffered me to kiss my sons and my daughters? thou -hast now done foolishly in so doing. - -31:29 It is in the power of my hand to do you hurt: but the God of -your father spake unto me yesternight, saying, Take thou heed that -thou speak not to Jacob either good or bad. - -31:30 And now, though thou wouldest needs be gone, because thou sore -longedst after thy father's house, yet wherefore hast thou stolen my -gods? 31:31 And Jacob answered and said to Laban, Because I was -afraid: for I said, Peradventure thou wouldest take by force thy -daughters from me. - -31:32 With whomsoever thou findest thy gods, let him not live: before -our brethren discern thou what is thine with me, and take it to thee. -For Jacob knew not that Rachel had stolen them. - -31:33 And Laban went into Jacob's tent, and into Leah's tent, and into -the two maidservants' tents; but he found them not. Then went he out -of Leah's tent, and entered into Rachel's tent. - -31:34 Now Rachel had taken the images, and put them in the camel's -furniture, and sat upon them. And Laban searched all the tent, but -found them not. - -31:35 And she said to her father, Let it not displease my lord that I -cannot rise up before thee; for the custom of women is upon me. And he -searched but found not the images. - -31:36 And Jacob was wroth, and chode with Laban: and Jacob answered -and said to Laban, What is my trespass? what is my sin, that thou hast -so hotly pursued after me? 31:37 Whereas thou hast searched all my -stuff, what hast thou found of all thy household stuff? set it here -before my brethren and thy brethren, that they may judge betwixt us -both. - -31:38 This twenty years have I been with thee; thy ewes and thy she -goats have not cast their young, and the rams of thy flock have I not -eaten. - -31:39 That which was torn of beasts I brought not unto thee; I bare -the loss of it; of my hand didst thou require it, whether stolen by -day, or stolen by night. - -31:40 Thus I was; in the day the drought consumed me, and the frost by -night; and my sleep departed from mine eyes. - -31:41 Thus have I been twenty years in thy house; I served thee -fourteen years for thy two daughters, and six years for thy cattle: -and thou hast changed my wages ten times. - -31:42 Except the God of my father, the God of Abraham, and the fear of -Isaac, had been with me, surely thou hadst sent me away now empty. God -hath seen mine affliction and the labour of my hands, and rebuked thee -yesternight. - -31:43 And Laban answered and said unto Jacob, These daughters are my -daughters, and these children are my children, and these cattle are my -cattle, and all that thou seest is mine: and what can I do this day -unto these my daughters, or unto their children which they have born? -31:44 Now therefore come thou, let us make a covenant, I and thou; and -let it be for a witness between me and thee. - -31:45 And Jacob took a stone, and set it up for a pillar. - -31:46 And Jacob said unto his brethren, Gather stones; and they took -stones, and made an heap: and they did eat there upon the heap. - -31:47 And Laban called it Jegarsahadutha: but Jacob called it Galeed. - -31:48 And Laban said, This heap is a witness between me and thee this -day. - -Therefore was the name of it called Galeed; 31:49 And Mizpah; for he -said, The LORD watch between me and thee, when we are absent one from -another. - -31:50 If thou shalt afflict my daughters, or if thou shalt take other -wives beside my daughters, no man is with us; see, God is witness -betwixt me and thee. - -31:51 And Laban said to Jacob, Behold this heap, and behold this -pillar, which I have cast betwixt me and thee: 31:52 This heap be -witness, and this pillar be witness, that I will not pass over this -heap to thee, and that thou shalt not pass over this heap and this -pillar unto me, for harm. - -31:53 The God of Abraham, and the God of Nahor, the God of their -father, judge betwixt us. And Jacob sware by the fear of his father -Isaac. - -31:54 Then Jacob offered sacrifice upon the mount, and called his -brethren to eat bread: and they did eat bread, and tarried all night -in the mount. - -31:55 And early in the morning Laban rose up, and kissed his sons and -his daughters, and blessed them: and Laban departed, and returned unto -his place. - -32:1 And Jacob went on his way, and the angels of God met him. - -32:2 And when Jacob saw them, he said, This is God's host: and he -called the name of that place Mahanaim. - -32:3 And Jacob sent messengers before him to Esau his brother unto the -land of Seir, the country of Edom. - -32:4 And he commanded them, saying, Thus shall ye speak unto my lord -Esau; Thy servant Jacob saith thus, I have sojourned with Laban, and -stayed there until now: 32:5 And I have oxen, and asses, flocks, and -menservants, and womenservants: and I have sent to tell my lord, that -I may find grace in thy sight. - -32:6 And the messengers returned to Jacob, saying, We came to thy -brother Esau, and also he cometh to meet thee, and four hundred men -with him. - -32:7 Then Jacob was greatly afraid and distressed: and he divided the -people that was with him, and the flocks, and herds, and the camels, -into two bands; 32:8 And said, If Esau come to the one company, and -smite it, then the other company which is left shall escape. - -32:9 And Jacob said, O God of my father Abraham, and God of my father -Isaac, the LORD which saidst unto me, Return unto thy country, and to -thy kindred, and I will deal well with thee: 32:10 I am not worthy of -the least of all the mercies, and of all the truth, which thou hast -shewed unto thy servant; for with my staff I passed over this Jordan; -and now I am become two bands. - -32:11 Deliver me, I pray thee, from the hand of my brother, from the -hand of Esau: for I fear him, lest he will come and smite me, and the -mother with the children. - -32:12 And thou saidst, I will surely do thee good, and make thy seed -as the sand of the sea, which cannot be numbered for multitude. - -32:13 And he lodged there that same night; and took of that which came -to his hand a present for Esau his brother; 32:14 Two hundred she -goats, and twenty he goats, two hundred ewes, and twenty rams, 32:15 -Thirty milch camels with their colts, forty kine, and ten bulls, -twenty she asses, and ten foals. - -32:16 And he delivered them into the hand of his servants, every drove -by themselves; and said unto his servants, Pass over before me, and -put a space betwixt drove and drove. - -32:17 And he commanded the foremost, saying, When Esau my brother -meeteth thee, and asketh thee, saying, Whose art thou? and whither -goest thou? and whose are these before thee? 32:18 Then thou shalt -say, They be thy servant Jacob's; it is a present sent unto my lord -Esau: and, behold, also he is behind us. - -32:19 And so commanded he the second, and the third, and all that -followed the droves, saying, On this manner shall ye speak unto Esau, -when ye find him. - -32:20 And say ye moreover, Behold, thy servant Jacob is behind us. For -he said, I will appease him with the present that goeth before me, and -afterward I will see his face; peradventure he will accept of me. - -32:21 So went the present over before him: and himself lodged that -night in the company. - -32:22 And he rose up that night, and took his two wives, and his two -womenservants, and his eleven sons, and passed over the ford Jabbok. - -32:23 And he took them, and sent them over the brook, and sent over -that he had. - -32:24 And Jacob was left alone; and there wrestled a man with him -until the breaking of the day. - -32:25 And when he saw that he prevailed not against him, he touched -the hollow of his thigh; and the hollow of Jacob's thigh was out of -joint, as he wrestled with him. - -32:26 And he said, Let me go, for the day breaketh. And he said, I -will not let thee go, except thou bless me. - -32:27 And he said unto him, What is thy name? And he said, Jacob. - -32:28 And he said, Thy name shall be called no more Jacob, but Israel: -for as a prince hast thou power with God and with men, and hast -prevailed. - -32:29 And Jacob asked him, and said, Tell me, I pray thee, thy name. -And he said, Wherefore is it that thou dost ask after my name? And he -blessed him there. - -32:30 And Jacob called the name of the place Peniel: for I have seen -God face to face, and my life is preserved. - -32:31 And as he passed over Penuel the sun rose upon him, and he -halted upon his thigh. - -32:32 Therefore the children of Israel eat not of the sinew which -shrank, which is upon the hollow of the thigh, unto this day: because -he touched the hollow of Jacob's thigh in the sinew that shrank. - -33:1 And Jacob lifted up his eyes, and looked, and, behold, Esau came, -and with him four hundred men. And he divided the children unto Leah, -and unto Rachel, and unto the two handmaids. - -33:2 And he put the handmaids and their children foremost, and Leah -and her children after, and Rachel and Joseph hindermost. - -33:3 And he passed over before them, and bowed himself to the ground -seven times, until he came near to his brother. - -33:4 And Esau ran to meet him, and embraced him, and fell on his neck, -and kissed him: and they wept. - -33:5 And he lifted up his eyes, and saw the women and the children; -and said, Who are those with thee? And he said, The children which God -hath graciously given thy servant. - -33:6 Then the handmaidens came near, they and their children, and they -bowed themselves. - -33:7 And Leah also with her children came near, and bowed themselves: -and after came Joseph near and Rachel, and they bowed themselves. - -33:8 And he said, What meanest thou by all this drove which I met? And -he said, These are to find grace in the sight of my lord. - -33:9 And Esau said, I have enough, my brother; keep that thou hast -unto thyself. - -33:10 And Jacob said, Nay, I pray thee, if now I have found grace in -thy sight, then receive my present at my hand: for therefore I have -seen thy face, as though I had seen the face of God, and thou wast -pleased with me. - -33:11 Take, I pray thee, my blessing that is brought to thee; because -God hath dealt graciously with me, and because I have enough. And he -urged him, and he took it. - -33:12 And he said, Let us take our journey, and let us go, and I will -go before thee. - -33:13 And he said unto him, My lord knoweth that the children are -tender, and the flocks and herds with young are with me: and if men -should overdrive them one day, all the flock will die. - -33:14 Let my lord, I pray thee, pass over before his servant: and I -will lead on softly, according as the cattle that goeth before me and -the children be able to endure, until I come unto my lord unto Seir. - -33:15 And Esau said, Let me now leave with thee some of the folk that -are with me. And he said, What needeth it? let me find grace in the -sight of my lord. - -33:16 So Esau returned that day on his way unto Seir. - -33:17 And Jacob journeyed to Succoth, and built him an house, and made -booths for his cattle: therefore the name of the place is called -Succoth. - -33:18 And Jacob came to Shalem, a city of Shechem, which is in the -land of Canaan, when he came from Padanaram; and pitched his tent -before the city. - -33:19 And he bought a parcel of a field, where he had spread his tent, -at the hand of the children of Hamor, Shechem's father, for an hundred -pieces of money. - -33:20 And he erected there an altar, and called it EleloheIsrael. - -34:1 And Dinah the daughter of Leah, which she bare unto Jacob, went -out to see the daughters of the land. - -34:2 And when Shechem the son of Hamor the Hivite, prince of the -country, saw her, he took her, and lay with her, and defiled her. - -34:3 And his soul clave unto Dinah the daughter of Jacob, and he loved -the damsel, and spake kindly unto the damsel. - -34:4 And Shechem spake unto his father Hamor, saying, Get me this -damsel to wife. - -34:5 And Jacob heard that he had defiled Dinah his daughter: now his -sons were with his cattle in the field: and Jacob held his peace until -they were come. - -34:6 And Hamor the father of Shechem went out unto Jacob to commune -with him. - -34:7 And the sons of Jacob came out of the field when they heard it: -and the men were grieved, and they were very wroth, because he had -wrought folly in Israel in lying with Jacob's daughter: which thing -ought not to be done. - -34:8 And Hamor communed with them, saying, The soul of my son Shechem -longeth for your daughter: I pray you give her him to wife. - -34:9 And make ye marriages with us, and give your daughters unto us, -and take our daughters unto you. - -34:10 And ye shall dwell with us: and the land shall be before you; -dwell and trade ye therein, and get you possessions therein. - -34:11 And Shechem said unto her father and unto her brethren, Let me -find grace in your eyes, and what ye shall say unto me I will give. - -34:12 Ask me never so much dowry and gift, and I will give according -as ye shall say unto me: but give me the damsel to wife. - -34:13 And the sons of Jacob answered Shechem and Hamor his father -deceitfully, and said, because he had defiled Dinah their sister: -34:14 And they said unto them, We cannot do this thing, to give our -sister to one that is uncircumcised; for that were a reproach unto us: -34:15 But in this will we consent unto you: If ye will be as we be, -that every male of you be circumcised; 34:16 Then will we give our -daughters unto you, and we will take your daughters to us, and we will -dwell with you, and we will become one people. - -34:17 But if ye will not hearken unto us, to be circumcised; then will -we take our daughter, and we will be gone. - -34:18 And their words pleased Hamor, and Shechem Hamor's son. - -34:19 And the young man deferred not to do the thing, because he had -delight in Jacob's daughter: and he was more honourable than all the -house of his father. - -34:20 And Hamor and Shechem his son came unto the gate of their city, -and communed with the men of their city, saying, 34:21 These men are -peaceable with us; therefore let them dwell in the land, and trade -therein; for the land, behold, it is large enough for them; let us -take their daughters to us for wives, and let us give them our -daughters. - -34:22 Only herein will the men consent unto us for to dwell with us, -to be one people, if every male among us be circumcised, as they are -circumcised. - -34:23 Shall not their cattle and their substance and every beast of -their's be our's? only let us consent unto them, and they will dwell -with us. - -34:24 And unto Hamor and unto Shechem his son hearkened all that went -out of the gate of his city; and every male was circumcised, all that -went out of the gate of his city. - -34:25 And it came to pass on the third day, when they were sore, that -two of the sons of Jacob, Simeon and Levi, Dinah's brethren, took each -man his sword, and came upon the city boldly, and slew all the males. - -34:26 And they slew Hamor and Shechem his son with the edge of the -sword, and took Dinah out of Shechem's house, and went out. - -34:27 The sons of Jacob came upon the slain, and spoiled the city, -because they had defiled their sister. - -34:28 They took their sheep, and their oxen, and their asses, and that -which was in the city, and that which was in the field, 34:29 And all -their wealth, and all their little ones, and their wives took they -captive, and spoiled even all that was in the house. - -34:30 And Jacob said to Simeon and Levi, Ye have troubled me to make -me to stink among the inhabitants of the land, among the Canaanites -and the Perizzites: and I being few in number, they shall gather -themselves together against me, and slay me; and I shall be destroyed, -I and my house. - -34:31 And they said, Should he deal with our sister as with an harlot? -35:1 And God said unto Jacob, Arise, go up to Bethel, and dwell there: -and make there an altar unto God, that appeared unto thee when thou -fleddest from the face of Esau thy brother. - -35:2 Then Jacob said unto his household, and to all that were with -him, Put away the strange gods that are among you, and be clean, and -change your garments: 35:3 And let us arise, and go up to Bethel; and -I will make there an altar unto God, who answered me in the day of my -distress, and was with me in the way which I went. - -35:4 And they gave unto Jacob all the strange gods which were in their -hand, and all their earrings which were in their ears; and Jacob hid -them under the oak which was by Shechem. - -35:5 And they journeyed: and the terror of God was upon the cities -that were round about them, and they did not pursue after the sons of -Jacob. - -35:6 So Jacob came to Luz, which is in the land of Canaan, that is, -Bethel, he and all the people that were with him. - -35:7 And he built there an altar, and called the place Elbethel: -because there God appeared unto him, when he fled from the face of his -brother. - -35:8 But Deborah Rebekah's nurse died, and she was buried beneath -Bethel under an oak: and the name of it was called Allonbachuth. - -35:9 And God appeared unto Jacob again, when he came out of Padanaram, -and blessed him. - -35:10 And God said unto him, Thy name is Jacob: thy name shall not be -called any more Jacob, but Israel shall be thy name: and he called his -name Israel. - -35:11 And God said unto him, I am God Almighty: be fruitful and -multiply; a nation and a company of nations shall be of thee, and -kings shall come out of thy loins; 35:12 And the land which I gave -Abraham and Isaac, to thee I will give it, and to thy seed after thee -will I give the land. - -35:13 And God went up from him in the place where he talked with him. - -35:14 And Jacob set up a pillar in the place where he talked with him, -even a pillar of stone: and he poured a drink offering thereon, and he -poured oil thereon. - -35:15 And Jacob called the name of the place where God spake with him, -Bethel. - -35:16 And they journeyed from Bethel; and there was but a little way -to come to Ephrath: and Rachel travailed, and she had hard labour. - -35:17 And it came to pass, when she was in hard labour, that the -midwife said unto her, Fear not; thou shalt have this son also. - -35:18 And it came to pass, as her soul was in departing, (for she -died) that she called his name Benoni: but his father called him -Benjamin. - -35:19 And Rachel died, and was buried in the way to Ephrath, which is -Bethlehem. - -35:20 And Jacob set a pillar upon her grave: that is the pillar of -Rachel's grave unto this day. - -35:21 And Israel journeyed, and spread his tent beyond the tower of -Edar. - -35:22 And it came to pass, when Israel dwelt in that land, that Reuben -went and lay with Bilhah his father's concubine: and Israel heard it. -Now the sons of Jacob were twelve: 35:23 The sons of Leah; Reuben, -Jacob's firstborn, and Simeon, and Levi, and Judah, and Issachar, and -Zebulun: 35:24 The sons of Rachel; Joseph, and Benjamin: 35:25 And the -sons of Bilhah, Rachel's handmaid; Dan, and Naphtali: 35:26 And the -sons of Zilpah, Leah's handmaid: Gad, and Asher: these are the sons of -Jacob, which were born to him in Padanaram. - -35:27 And Jacob came unto Isaac his father unto Mamre, unto the city -of Arbah, which is Hebron, where Abraham and Isaac sojourned. - -35:28 And the days of Isaac were an hundred and fourscore years. - -35:29 And Isaac gave up the ghost, and died, and was gathered unto his -people, being old and full of days: and his sons Esau and Jacob buried -him. - -36:1 Now these are the generations of Esau, who is Edom. - -36:2 Esau took his wives of the daughters of Canaan; Adah the daughter -of Elon the Hittite, and Aholibamah the daughter of Anah the daughter -of Zibeon the Hivite; 36:3 And Bashemath Ishmael's daughter, sister of -Nebajoth. - -36:4 And Adah bare to Esau Eliphaz; and Bashemath bare Reuel; 36:5 And -Aholibamah bare Jeush, and Jaalam, and Korah: these are the sons of -Esau, which were born unto him in the land of Canaan. - -36:6 And Esau took his wives, and his sons, and his daughters, and all -the persons of his house, and his cattle, and all his beasts, and all -his substance, which he had got in the land of Canaan; and went into -the country from the face of his brother Jacob. - -36:7 For their riches were more than that they might dwell together; -and the land wherein they were strangers could not bear them because -of their cattle. - -36:8 Thus dwelt Esau in mount Seir: Esau is Edom. - -36:9 And these are the generations of Esau the father of the Edomites -in mount Seir: 36:10 These are the names of Esau's sons; Eliphaz the -son of Adah the wife of Esau, Reuel the son of Bashemath the wife of -Esau. - -36:11 And the sons of Eliphaz were Teman, Omar, Zepho, and Gatam, and -Kenaz. - -36:12 And Timna was concubine to Eliphaz Esau's son; and she bare to -Eliphaz Amalek: these were the sons of Adah Esau's wife. - -36:13 And these are the sons of Reuel; Nahath, and Zerah, Shammah, and -Mizzah: these were the sons of Bashemath Esau's wife. - -36:14 And these were the sons of Aholibamah, the daughter of Anah the -daughter of Zibeon, Esau's wife: and she bare to Esau Jeush, and -Jaalam, and Korah. - -36:15 These were dukes of the sons of Esau: the sons of Eliphaz the -firstborn son of Esau; duke Teman, duke Omar, duke Zepho, duke Kenaz, -36:16 Duke Korah, duke Gatam, and duke Amalek: these are the dukes -that came of Eliphaz in the land of Edom; these were the sons of Adah. - -36:17 And these are the sons of Reuel Esau's son; duke Nahath, duke -Zerah, duke Shammah, duke Mizzah: these are the dukes that came of -Reuel in the land of Edom; these are the sons of Bashemath Esau's -wife. - -36:18 And these are the sons of Aholibamah Esau's wife; duke Jeush, -duke Jaalam, duke Korah: these were the dukes that came of Aholibamah -the daughter of Anah, Esau's wife. - -36:19 These are the sons of Esau, who is Edom, and these are their -dukes. - -36:20 These are the sons of Seir the Horite, who inhabited the land; -Lotan, and Shobal, and Zibeon, and Anah, 36:21 And Dishon, and Ezer, -and Dishan: these are the dukes of the Horites, the children of Seir -in the land of Edom. - -36:22 And the children of Lotan were Hori and Hemam; and Lotan's -sister was Timna. - -36:23 And the children of Shobal were these; Alvan, and Manahath, and -Ebal, Shepho, and Onam. - -36:24 And these are the children of Zibeon; both Ajah, and Anah: this -was that Anah that found the mules in the wilderness, as he fed the -asses of Zibeon his father. - -36:25 And the children of Anah were these; Dishon, and Aholibamah the -daughter of Anah. - -36:26 And these are the children of Dishon; Hemdan, and Eshban, and -Ithran, and Cheran. - -36:27 The children of Ezer are these; Bilhan, and Zaavan, and Akan. - -36:28 The children of Dishan are these; Uz, and Aran. - -36:29 These are the dukes that came of the Horites; duke Lotan, duke -Shobal, duke Zibeon, duke Anah, 36:30 Duke Dishon, duke Ezer, duke -Dishan: these are the dukes that came of Hori, among their dukes in -the land of Seir. - -36:31 And these are the kings that reigned in the land of Edom, before -there reigned any king over the children of Israel. - -36:32 And Bela the son of Beor reigned in Edom: and the name of his -city was Dinhabah. - -36:33 And Bela died, and Jobab the son of Zerah of Bozrah reigned in -his stead. - -36:34 And Jobab died, and Husham of the land of Temani reigned in his -stead. - -36:35 And Husham died, and Hadad the son of Bedad, who smote Midian in -the field of Moab, reigned in his stead: and the name of his city was -Avith. - -36:36 And Hadad died, and Samlah of Masrekah reigned in his stead. - -36:37 And Samlah died, and Saul of Rehoboth by the river reigned in -his stead. - -36:38 And Saul died, and Baalhanan the son of Achbor reigned in his -stead. - -36:39 And Baalhanan the son of Achbor died, and Hadar reigned in his -stead: and the name of his city was Pau; and his wife's name was -Mehetabel, the daughter of Matred, the daughter of Mezahab. - -36:40 And these are the names of the dukes that came of Esau, -according to their families, after their places, by their names; duke -Timnah, duke Alvah, duke Jetheth, 36:41 Duke Aholibamah, duke Elah, -duke Pinon, 36:42 Duke Kenaz, duke Teman, duke Mibzar, 36:43 Duke -Magdiel, duke Iram: these be the dukes of Edom, according to their -habitations in the land of their possession: he is Esau the father of -the Edomites. - -37:1 And Jacob dwelt in the land wherein his father was a stranger, in -the land of Canaan. - -37:2 These are the generations of Jacob. Joseph, being seventeen years -old, was feeding the flock with his brethren; and the lad was with the -sons of Bilhah, and with the sons of Zilpah, his father's wives: and -Joseph brought unto his father their evil report. - -37:3 Now Israel loved Joseph more than all his children, because he -was the son of his old age: and he made him a coat of many colours. - -37:4 And when his brethren saw that their father loved him more than -all his brethren, they hated him, and could not speak peaceably unto -him. - -37:5 And Joseph dreamed a dream, and he told it his brethren: and they -hated him yet the more. - -37:6 And he said unto them, Hear, I pray you, this dream which I have -dreamed: 37:7 For, behold, we were binding sheaves in the field, and, -lo, my sheaf arose, and also stood upright; and, behold, your sheaves -stood round about, and made obeisance to my sheaf. - -37:8 And his brethren said to him, Shalt thou indeed reign over us? or -shalt thou indeed have dominion over us? And they hated him yet the -more for his dreams, and for his words. - -37:9 And he dreamed yet another dream, and told it his brethren, and -said, Behold, I have dreamed a dream more; and, behold, the sun and -the moon and the eleven stars made obeisance to me. - -37:10 And he told it to his father, and to his brethren: and his -father rebuked him, and said unto him, What is this dream that thou -hast dreamed? Shall I and thy mother and thy brethren indeed come to -bow down ourselves to thee to the earth? 37:11 And his brethren -envied him; but his father observed the saying. - -37:12 And his brethren went to feed their father's flock in Shechem. - -37:13 And Israel said unto Joseph, Do not thy brethren feed the flock -in Shechem? come, and I will send thee unto them. And he said to him, -Here am I. - -37:14 And he said to him, Go, I pray thee, see whether it be well with -thy brethren, and well with the flocks; and bring me word again. So he -sent him out of the vale of Hebron, and he came to Shechem. - -37:15 And a certain man found him, and, behold, he was wandering in -the field: and the man asked him, saying, What seekest thou? 37:16 -And he said, I seek my brethren: tell me, I pray thee, where they feed -their flocks. - -37:17 And the man said, They are departed hence; for I heard them say, -Let us go to Dothan. And Joseph went after his brethren, and found -them in Dothan. - -37:18 And when they saw him afar off, even before he came near unto -them, they conspired against him to slay him. - -37:19 And they said one to another, Behold, this dreamer cometh. - -37:20 Come now therefore, and let us slay him, and cast him into some -pit, and we will say, Some evil beast hath devoured him: and we shall -see what will become of his dreams. - -37:21 And Reuben heard it, and he delivered him out of their hands; -and said, Let us not kill him. - -37:22 And Reuben said unto them, Shed no blood, but cast him into this -pit that is in the wilderness, and lay no hand upon him; that he might -rid him out of their hands, to deliver him to his father again. - -37:23 And it came to pass, when Joseph was come unto his brethren, -that they stript Joseph out of his coat, his coat of many colours that -was on him; 37:24 And they took him, and cast him into a pit: and the -pit was empty, there was no water in it. - -37:25 And they sat down to eat bread: and they lifted up their eyes -and looked, and, behold, a company of Ishmeelites came from Gilead -with their camels bearing spicery and balm and myrrh, going to carry -it down to Egypt. - -37:26 And Judah said unto his brethren, What profit is it if we slay -our brother, and conceal his blood? 37:27 Come, and let us sell him -to the Ishmeelites, and let not our hand be upon him; for he is our -brother and our flesh. And his brethren were content. - -37:28 Then there passed by Midianites merchantmen; and they drew and -lifted up Joseph out of the pit, and sold Joseph to the Ishmeelites -for twenty pieces of silver: and they brought Joseph into Egypt. - -37:29 And Reuben returned unto the pit; and, behold, Joseph was not in -the pit; and he rent his clothes. - -37:30 And he returned unto his brethren, and said, The child is not; -and I, whither shall I go? 37:31 And they took Joseph's coat, and -killed a kid of the goats, and dipped the coat in the blood; 37:32 And -they sent the coat of many colours, and they brought it to their -father; and said, This have we found: know now whether it be thy son's -coat or no. - -37:33 And he knew it, and said, It is my son's coat; an evil beast -hath devoured him; Joseph is without doubt rent in pieces. - -37:34 And Jacob rent his clothes, and put sackcloth upon his loins, -and mourned for his son many days. - -37:35 And all his sons and all his daughters rose up to comfort him; -but he refused to be comforted; and he said, For I will go down into -the grave unto my son mourning. Thus his father wept for him. - -37:36 And the Midianites sold him into Egypt unto Potiphar, an officer -of Pharaoh's, and captain of the guard. - -38:1 And it came to pass at that time, that Judah went down from his -brethren, and turned in to a certain Adullamite, whose name was Hirah. - -38:2 And Judah saw there a daughter of a certain Canaanite, whose name -was Shuah; and he took her, and went in unto her. - -38:3 And she conceived, and bare a son; and he called his name Er. - -38:4 And she conceived again, and bare a son; and she called his name -Onan. - -38:5 And she yet again conceived, and bare a son; and called his name -Shelah: and he was at Chezib, when she bare him. - -38:6 And Judah took a wife for Er his firstborn, whose name was Tamar. - -38:7 And Er, Judah's firstborn, was wicked in the sight of the LORD; -and the LORD slew him. - -38:8 And Judah said unto Onan, Go in unto thy brother's wife, and -marry her, and raise up seed to thy brother. - -38:9 And Onan knew that the seed should not be his; and it came to -pass, when he went in unto his brother's wife, that he spilled it on -the ground, lest that he should give seed to his brother. - -38:10 And the thing which he did displeased the LORD: wherefore he -slew him also. - -38:11 Then said Judah to Tamar his daughter in law, Remain a widow at -thy father's house, till Shelah my son be grown: for he said, Lest -peradventure he die also, as his brethren did. And Tamar went and -dwelt in her father's house. - -38:12 And in process of time the daughter of Shuah Judah's wife died; -and Judah was comforted, and went up unto his sheepshearers to -Timnath, he and his friend Hirah the Adullamite. - -38:13 And it was told Tamar, saying, Behold thy father in law goeth up -to Timnath to shear his sheep. - -38:14 And she put her widow's garments off from her, and covered her -with a vail, and wrapped herself, and sat in an open place, which is -by the way to Timnath; for she saw that Shelah was grown, and she was -not given unto him to wife. - -38:15 When Judah saw her, he thought her to be an harlot; because she -had covered her face. - -38:16 And he turned unto her by the way, and said, Go to, I pray thee, -let me come in unto thee; (for he knew not that she was his daughter -in law.) And she said, What wilt thou give me, that thou mayest come -in unto me? 38:17 And he said, I will send thee a kid from the flock. -And she said, Wilt thou give me a pledge, till thou send it? 38:18 -And he said, What pledge shall I give thee? And she said, Thy signet, -and thy bracelets, and thy staff that is in thine hand. And he gave it -her, and came in unto her, and she conceived by him. - -38:19 And she arose, and went away, and laid by her vail from her, and -put on the garments of her widowhood. - -38:20 And Judah sent the kid by the hand of his friend the Adullamite, -to receive his pledge from the woman's hand: but he found her not. - -38:21 Then he asked the men of that place, saying, Where is the -harlot, that was openly by the way side? And they said, There was no -harlot in this place. - -38:22 And he returned to Judah, and said, I cannot find her; and also -the men of the place said, that there was no harlot in this place. - -38:23 And Judah said, Let her take it to her, lest we be shamed: -behold, I sent this kid, and thou hast not found her. - -38:24 And it came to pass about three months after, that it was told -Judah, saying, Tamar thy daughter in law hath played the harlot; and -also, behold, she is with child by whoredom. And Judah said, Bring her -forth, and let her be burnt. - -38:25 When she was brought forth, she sent to her father in law, -saying, By the man, whose these are, am I with child: and she said, -Discern, I pray thee, whose are these, the signet, and bracelets, and -staff. - -38:26 And Judah acknowledged them, and said, She hath been more -righteous than I; because that I gave her not to Shelah my son. And he -knew her again no more. - -38:27 And it came to pass in the time of her travail, that, behold, -twins were in her womb. - -38:28 And it came to pass, when she travailed, that the one put out -his hand: and the midwife took and bound upon his hand a scarlet -thread, saying, This came out first. - -38:29 And it came to pass, as he drew back his hand, that, behold, his -brother came out: and she said, How hast thou broken forth? this -breach be upon thee: therefore his name was called Pharez. - -38:30 And afterward came out his brother, that had the scarlet thread -upon his hand: and his name was called Zarah. - -39:1 And Joseph was brought down to Egypt; and Potiphar, an officer of -Pharaoh, captain of the guard, an Egyptian, bought him of the hands of -the Ishmeelites, which had brought him down thither. - -39:2 And the LORD was with Joseph, and he was a prosperous man; and he -was in the house of his master the Egyptian. - -39:3 And his master saw that the LORD was with him, and that the LORD -made all that he did to prosper in his hand. - -39:4 And Joseph found grace in his sight, and he served him: and he -made him overseer over his house, and all that he had he put into his -hand. - -39:5 And it came to pass from the time that he had made him overseer -in his house, and over all that he had, that the LORD blessed the -Egyptian's house for Joseph's sake; and the blessing of the LORD was -upon all that he had in the house, and in the field. - -39:6 And he left all that he had in Joseph's hand; and he knew not -ought he had, save the bread which he did eat. And Joseph was a goodly -person, and well favoured. - -39:7 And it came to pass after these things, that his master's wife -cast her eyes upon Joseph; and she said, Lie with me. - -39:8 But he refused, and said unto his master's wife, Behold, my -master wotteth not what is with me in the house, and he hath committed -all that he hath to my hand; 39:9 There is none greater in this house -than I; neither hath he kept back any thing from me but thee, because -thou art his wife: how then can I do this great wickedness, and sin -against God? 39:10 And it came to pass, as she spake to Joseph day by -day, that he hearkened not unto her, to lie by her, or to be with her. - -39:11 And it came to pass about this time, that Joseph went into the -house to do his business; and there was none of the men of the house -there within. - -39:12 And she caught him by his garment, saying, Lie with me: and he -left his garment in her hand, and fled, and got him out. - -39:13 And it came to pass, when she saw that he had left his garment -in her hand, and was fled forth, 39:14 That she called unto the men of -her house, and spake unto them, saying, See, he hath brought in an -Hebrew unto us to mock us; he came in unto me to lie with me, and I -cried with a loud voice: 39:15 And it came to pass, when he heard that -I lifted up my voice and cried, that he left his garment with me, and -fled, and got him out. - -39:16 And she laid up his garment by her, until his lord came home. - -39:17 And she spake unto him according to these words, saying, The -Hebrew servant, which thou hast brought unto us, came in unto me to -mock me: 39:18 And it came to pass, as I lifted up my voice and cried, -that he left his garment with me, and fled out. - -39:19 And it came to pass, when his master heard the words of his -wife, which she spake unto him, saying, After this manner did thy -servant to me; that his wrath was kindled. - -39:20 And Joseph's master took him, and put him into the prison, a -place where the king's prisoners were bound: and he was there in the -prison. - -39:21 But the LORD was with Joseph, and shewed him mercy, and gave him -favour in the sight of the keeper of the prison. - -39:22 And the keeper of the prison committed to Joseph's hand all the -prisoners that were in the prison; and whatsoever they did there, he -was the doer of it. - -39:23 The keeper of the prison looked not to any thing that was under -his hand; because the LORD was with him, and that which he did, the -LORD made it to prosper. - -40:1 And it came to pass after these things, that the butler of the -king of Egypt and his baker had offended their lord the king of Egypt. - -40:2 And Pharaoh was wroth against two of his officers, against the -chief of the butlers, and against the chief of the bakers. - -40:3 And he put them in ward in the house of the captain of the guard, -into the prison, the place where Joseph was bound. - -40:4 And the captain of the guard charged Joseph with them, and he -served them: and they continued a season in ward. - -40:5 And they dreamed a dream both of them, each man his dream in one -night, each man according to the interpretation of his dream, the -butler and the baker of the king of Egypt, which were bound in the -prison. - -40:6 And Joseph came in unto them in the morning, and looked upon -them, and, behold, they were sad. - -40:7 And he asked Pharaoh's officers that were with him in the ward of -his lord's house, saying, Wherefore look ye so sadly to day? 40:8 And -they said unto him, We have dreamed a dream, and there is no -interpreter of it. And Joseph said unto them, Do not interpretations -belong to God? tell me them, I pray you. - -40:9 And the chief butler told his dream to Joseph, and said to him, -In my dream, behold, a vine was before me; 40:10 And in the vine were -three branches: and it was as though it budded, and her blossoms shot -forth; and the clusters thereof brought forth ripe grapes: 40:11 And -Pharaoh's cup was in my hand: and I took the grapes, and pressed them -into Pharaoh's cup, and I gave the cup into Pharaoh's hand. - -40:12 And Joseph said unto him, This is the interpretation of it: The -three branches are three days: 40:13 Yet within three days shall -Pharaoh lift up thine head, and restore thee unto thy place: and thou -shalt deliver Pharaoh's cup into his hand, after the former manner -when thou wast his butler. - -40:14 But think on me when it shall be well with thee, and shew -kindness, I pray thee, unto me, and make mention of me unto Pharaoh, -and bring me out of this house: 40:15 For indeed I was stolen away out -of the land of the Hebrews: and here also have I done nothing that -they should put me into the dungeon. - -40:16 When the chief baker saw that the interpretation was good, he -said unto Joseph, I also was in my dream, and, behold, I had three -white baskets on my head: 40:17 And in the uppermost basket there was -of all manner of bakemeats for Pharaoh; and the birds did eat them out -of the basket upon my head. - -40:18 And Joseph answered and said, This is the interpretation -thereof: The three baskets are three days: 40:19 Yet within three days -shall Pharaoh lift up thy head from off thee, and shall hang thee on a -tree; and the birds shall eat thy flesh from off thee. - -40:20 And it came to pass the third day, which was Pharaoh's birthday, -that he made a feast unto all his servants: and he lifted up the head -of the chief butler and of the chief baker among his servants. - -40:21 And he restored the chief butler unto his butlership again; and -he gave the cup into Pharaoh's hand: 40:22 But he hanged the chief -baker: as Joseph had interpreted to them. - -40:23 Yet did not the chief butler remember Joseph, but forgat him. - -41:1 And it came to pass at the end of two full years, that Pharaoh -dreamed: and, behold, he stood by the river. - -41:2 And, behold, there came up out of the river seven well favoured -kine and fatfleshed; and they fed in a meadow. - -41:3 And, behold, seven other kine came up after them out of the -river, ill favoured and leanfleshed; and stood by the other kine upon -the brink of the river. - -41:4 And the ill favoured and leanfleshed kine did eat up the seven -well favoured and fat kine. So Pharaoh awoke. - -41:5 And he slept and dreamed the second time: and, behold, seven ears -of corn came up upon one stalk, rank and good. - -41:6 And, behold, seven thin ears and blasted with the east wind -sprung up after them. - -41:7 And the seven thin ears devoured the seven rank and full ears. -And Pharaoh awoke, and, behold, it was a dream. - -41:8 And it came to pass in the morning that his spirit was troubled; -and he sent and called for all the magicians of Egypt, and all the -wise men thereof: and Pharaoh told them his dream; but there was none -that could interpret them unto Pharaoh. - -41:9 Then spake the chief butler unto Pharaoh, saying, I do remember -my faults this day: 41:10 Pharaoh was wroth with his servants, and put -me in ward in the captain of the guard's house, both me and the chief -baker: 41:11 And we dreamed a dream in one night, I and he; we dreamed -each man according to the interpretation of his dream. - -41:12 And there was there with us a young man, an Hebrew, servant to -the captain of the guard; and we told him, and he interpreted to us -our dreams; to each man according to his dream he did interpret. - -41:13 And it came to pass, as he interpreted to us, so it was; me he -restored unto mine office, and him he hanged. - -41:14 Then Pharaoh sent and called Joseph, and they brought him -hastily out of the dungeon: and he shaved himself, and changed his -raiment, and came in unto Pharaoh. - -41:15 And Pharaoh said unto Joseph, I have dreamed a dream, and there -is none that can interpret it: and I have heard say of thee, that thou -canst understand a dream to interpret it. - -41:16 And Joseph answered Pharaoh, saying, It is not in me: God shall -give Pharaoh an answer of peace. - -41:17 And Pharaoh said unto Joseph, In my dream, behold, I stood upon -the bank of the river: 41:18 And, behold, there came up out of the -river seven kine, fatfleshed and well favoured; and they fed in a -meadow: 41:19 And, behold, seven other kine came up after them, poor -and very ill favoured and leanfleshed, such as I never saw in all the -land of Egypt for badness: 41:20 And the lean and the ill favoured -kine did eat up the first seven fat kine: 41:21 And when they had -eaten them up, it could not be known that they had eaten them; but -they were still ill favoured, as at the beginning. So I awoke. - -41:22 And I saw in my dream, and, behold, seven ears came up in one -stalk, full and good: 41:23 And, behold, seven ears, withered, thin, -and blasted with the east wind, sprung up after them: 41:24 And the -thin ears devoured the seven good ears: and I told this unto the -magicians; but there was none that could declare it to me. - -41:25 And Joseph said unto Pharaoh, The dream of Pharaoh is one: God -hath shewed Pharaoh what he is about to do. - -41:26 The seven good kine are seven years; and the seven good ears are -seven years: the dream is one. - -41:27 And the seven thin and ill favoured kine that came up after them -are seven years; and the seven empty ears blasted with the east wind -shall be seven years of famine. - -41:28 This is the thing which I have spoken unto Pharaoh: What God is -about to do he sheweth unto Pharaoh. - -41:29 Behold, there come seven years of great plenty throughout all -the land of Egypt: 41:30 And there shall arise after them seven years -of famine; and all the plenty shall be forgotten in the land of Egypt; -and the famine shall consume the land; 41:31 And the plenty shall not -be known in the land by reason of that famine following; for it shall -be very grievous. - -41:32 And for that the dream was doubled unto Pharaoh twice; it is -because the thing is established by God, and God will shortly bring it -to pass. - -41:33 Now therefore let Pharaoh look out a man discreet and wise, and -set him over the land of Egypt. - -41:34 Let Pharaoh do this, and let him appoint officers over the land, -and take up the fifth part of the land of Egypt in the seven plenteous -years. - -41:35 And let them gather all the food of those good years that come, -and lay up corn under the hand of Pharaoh, and let them keep food in -the cities. - -41:36 And that food shall be for store to the land against the seven -years of famine, which shall be in the land of Egypt; that the land -perish not through the famine. - -41:37 And the thing was good in the eyes of Pharaoh, and in the eyes -of all his servants. - -41:38 And Pharaoh said unto his servants, Can we find such a one as -this is, a man in whom the Spirit of God is? 41:39 And Pharaoh said -unto Joseph, Forasmuch as God hath shewed thee all this, there is none -so discreet and wise as thou art: 41:40 Thou shalt be over my house, -and according unto thy word shall all my people be ruled: only in the -throne will I be greater than thou. - -41:41 And Pharaoh said unto Joseph, See, I have set thee over all the -land of Egypt. - -41:42 And Pharaoh took off his ring from his hand, and put it upon -Joseph's hand, and arrayed him in vestures of fine linen, and put a -gold chain about his neck; 41:43 And he made him to ride in the second -chariot which he had; and they cried before him, Bow the knee: and he -made him ruler over all the land of Egypt. - -41:44 And Pharaoh said unto Joseph, I am Pharaoh, and without thee -shall no man lift up his hand or foot in all the land of Egypt. - -41:45 And Pharaoh called Joseph's name Zaphnathpaaneah; and he gave -him to wife Asenath the daughter of Potipherah priest of On. And -Joseph went out over all the land of Egypt. - -41:46 And Joseph was thirty years old when he stood before Pharaoh -king of Egypt. And Joseph went out from the presence of Pharaoh, and -went throughout all the land of Egypt. - -41:47 And in the seven plenteous years the earth brought forth by -handfuls. - -41:48 And he gathered up all the food of the seven years, which were -in the land of Egypt, and laid up the food in the cities: the food of -the field, which was round about every city, laid he up in the same. - -41:49 And Joseph gathered corn as the sand of the sea, very much, -until he left numbering; for it was without number. - -41:50 And unto Joseph were born two sons before the years of famine -came, which Asenath the daughter of Potipherah priest of On bare unto -him. - -41:51 And Joseph called the name of the firstborn Manasseh: For God, -said he, hath made me forget all my toil, and all my father's house. - -41:52 And the name of the second called he Ephraim: For God hath -caused me to be fruitful in the land of my affliction. - -41:53 And the seven years of plenteousness, that was in the land of -Egypt, were ended. - -41:54 And the seven years of dearth began to come, according as Joseph -had said: and the dearth was in all lands; but in all the land of -Egypt there was bread. - -41:55 And when all the land of Egypt was famished, the people cried to -Pharaoh for bread: and Pharaoh said unto all the Egyptians, Go unto -Joseph; what he saith to you, do. - -41:56 And the famine was over all the face of the earth: and Joseph -opened all the storehouses, and sold unto the Egyptians; and the -famine waxed sore in the land of Egypt. - -41:57 And all countries came into Egypt to Joseph for to buy corn; -because that the famine was so sore in all lands. - -42:1 Now when Jacob saw that there was corn in Egypt, Jacob said unto -his sons, Why do ye look one upon another? 42:2 And he said, Behold, -I have heard that there is corn in Egypt: get you down thither, and -buy for us from thence; that we may live, and not die. - -42:3 And Joseph's ten brethren went down to buy corn in Egypt. - -42:4 But Benjamin, Joseph's brother, Jacob sent not with his brethren; -for he said, Lest peradventure mischief befall him. - -42:5 And the sons of Israel came to buy corn among those that came: -for the famine was in the land of Canaan. - -42:6 And Joseph was the governor over the land, and he it was that -sold to all the people of the land: and Joseph's brethren came, and -bowed down themselves before him with their faces to the earth. - -42:7 And Joseph saw his brethren, and he knew them, but made himself -strange unto them, and spake roughly unto them; and he said unto them, -Whence come ye? And they said, From the land of Canaan to buy food. - -42:8 And Joseph knew his brethren, but they knew not him. - -42:9 And Joseph remembered the dreams which he dreamed of them, and -said unto them, Ye are spies; to see the nakedness of the land ye are -come. - -42:10 And they said unto him, Nay, my lord, but to buy food are thy -servants come. - -42:11 We are all one man's sons; we are true men, thy servants are no -spies. - -42:12 And he said unto them, Nay, but to see the nakedness of the land -ye are come. - -42:13 And they said, Thy servants are twelve brethren, the sons of one -man in the land of Canaan; and, behold, the youngest is this day with -our father, and one is not. - -42:14 And Joseph said unto them, That is it that I spake unto you, -saying, Ye are spies: 42:15 Hereby ye shall be proved: By the life of -Pharaoh ye shall not go forth hence, except your youngest brother come -hither. - -42:16 Send one of you, and let him fetch your brother, and ye shall be -kept in prison, that your words may be proved, whether there be any -truth in you: or else by the life of Pharaoh surely ye are spies. - -42:17 And he put them all together into ward three days. - -42:18 And Joseph said unto them the third day, This do, and live; for -I fear God: 42:19 If ye be true men, let one of your brethren be bound -in the house of your prison: go ye, carry corn for the famine of your -houses: 42:20 But bring your youngest brother unto me; so shall your -words be verified, and ye shall not die. And they did so. - -42:21 And they said one to another, We are verily guilty concerning -our brother, in that we saw the anguish of his soul, when he besought -us, and we would not hear; therefore is this distress come upon us. - -42:22 And Reuben answered them, saying, Spake I not unto you, saying, -Do not sin against the child; and ye would not hear? therefore, -behold, also his blood is required. - -42:23 And they knew not that Joseph understood them; for he spake unto -them by an interpreter. - -42:24 And he turned himself about from them, and wept; and returned to -them again, and communed with them, and took from them Simeon, and -bound him before their eyes. - -42:25 Then Joseph commanded to fill their sacks with corn, and to -restore every man's money into his sack, and to give them provision -for the way: and thus did he unto them. - -42:26 And they laded their asses with the corn, and departed thence. - -42:27 And as one of them opened his sack to give his ass provender in -the inn, he espied his money; for, behold, it was in his sack's mouth. - -42:28 And he said unto his brethren, My money is restored; and, lo, it -is even in my sack: and their heart failed them, and they were afraid, -saying one to another, What is this that God hath done unto us? 42:29 -And they came unto Jacob their father unto the land of Canaan, and -told him all that befell unto them; saying, 42:30 The man, who is the -lord of the land, spake roughly to us, and took us for spies of the -country. - -42:31 And we said unto him, We are true men; we are no spies: 42:32 We -be twelve brethren, sons of our father; one is not, and the youngest -is this day with our father in the land of Canaan. - -42:33 And the man, the lord of the country, said unto us, Hereby shall -I know that ye are true men; leave one of your brethren here with me, -and take food for the famine of your households, and be gone: 42:34 -And bring your youngest brother unto me: then shall I know that ye are -no spies, but that ye are true men: so will I deliver you your -brother, and ye shall traffick in the land. - -42:35 And it came to pass as they emptied their sacks, that, behold, -every man's bundle of money was in his sack: and when both they and -their father saw the bundles of money, they were afraid. - -42:36 And Jacob their father said unto them, Me have ye bereaved of my -children: Joseph is not, and Simeon is not, and ye will take Benjamin -away: all these things are against me. - -42:37 And Reuben spake unto his father, saying, Slay my two sons, if I -bring him not to thee: deliver him into my hand, and I will bring him -to thee again. - -42:38 And he said, My son shall not go down with you; for his brother -is dead, and he is left alone: if mischief befall him by the way in -the which ye go, then shall ye bring down my gray hairs with sorrow to -the grave. - -43:1 And the famine was sore in the land. - -43:2 And it came to pass, when they had eaten up the corn which they -had brought out of Egypt, their father said unto them, Go again, buy -us a little food. - -43:3 And Judah spake unto him, saying, The man did solemnly protest -unto us, saying, Ye shall not see my face, except your brother be with -you. - -43:4 If thou wilt send our brother with us, we will go down and buy -thee food: 43:5 But if thou wilt not send him, we will not go down: -for the man said unto us, Ye shall not see my face, except your -brother be with you. - -43:6 And Israel said, Wherefore dealt ye so ill with me, as to tell -the man whether ye had yet a brother? 43:7 And they said, The man -asked us straitly of our state, and of our kindred, saying, Is your -father yet alive? have ye another brother? and we told him according -to the tenor of these words: could we certainly know that he would -say, Bring your brother down? 43:8 And Judah said unto Israel his -father, Send the lad with me, and we will arise and go; that we may -live, and not die, both we, and thou, and also our little ones. - -43:9 I will be surety for him; of my hand shalt thou require him: if I -bring him not unto thee, and set him before thee, then let me bear the -blame for ever: 43:10 For except we had lingered, surely now we had -returned this second time. - -43:11 And their father Israel said unto them, If it must be so now, do -this; take of the best fruits in the land in your vessels, and carry -down the man a present, a little balm, and a little honey, spices, and -myrrh, nuts, and almonds: 43:12 And take double money in your hand; -and the money that was brought again in the mouth of your sacks, carry -it again in your hand; peradventure it was an oversight: 43:13 Take -also your brother, and arise, go again unto the man: 43:14 And God -Almighty give you mercy before the man, that he may send away your -other brother, and Benjamin. If I be bereaved of my children, I am -bereaved. - -43:15 And the men took that present, and they took double money in -their hand and Benjamin; and rose up, and went down to Egypt, and -stood before Joseph. - -43:16 And when Joseph saw Benjamin with them, he said to the ruler of -his house, Bring these men home, and slay, and make ready; for these -men shall dine with me at noon. - -43:17 And the man did as Joseph bade; and the man brought the men into -Joseph's house. - -43:18 And the men were afraid, because they were brought into Joseph's -house; and they said, Because of the money that was returned in our -sacks at the first time are we brought in; that he may seek occasion -against us, and fall upon us, and take us for bondmen, and our asses. - -43:19 And they came near to the steward of Joseph's house, and they -communed with him at the door of the house, 43:20 And said, O sir, we -came indeed down at the first time to buy food: 43:21 And it came to -pass, when we came to the inn, that we opened our sacks, and, behold, -every man's money was in the mouth of his sack, our money in full -weight: and we have brought it again in our hand. - -43:22 And other money have we brought down in our hands to buy food: -we cannot tell who put our money in our sacks. - -43:23 And he said, Peace be to you, fear not: your God, and the God of -your father, hath given you treasure in your sacks: I had your money. -And he brought Simeon out unto them. - -43:24 And the man brought the men into Joseph's house, and gave them -water, and they washed their feet; and he gave their asses provender. - -43:25 And they made ready the present against Joseph came at noon: for -they heard that they should eat bread there. - -43:26 And when Joseph came home, they brought him the present which -was in their hand into the house, and bowed themselves to him to the -earth. - -43:27 And he asked them of their welfare, and said, Is your father -well, the old man of whom ye spake? Is he yet alive? 43:28 And they -answered, Thy servant our father is in good health, he is yet alive. -And they bowed down their heads, and made obeisance. - -43:29 And he lifted up his eyes, and saw his brother Benjamin, his -mother's son, and said, Is this your younger brother, of whom ye spake -unto me? And he said, God be gracious unto thee, my son. - -43:30 And Joseph made haste; for his bowels did yearn upon his -brother: and he sought where to weep; and he entered into his chamber, -and wept there. - -43:31 And he washed his face, and went out, and refrained himself, and -said, Set on bread. - -43:32 And they set on for him by himself, and for them by themselves, -and for the Egyptians, which did eat with him, by themselves: because -the Egyptians might not eat bread with the Hebrews; for that is an -abomination unto the Egyptians. - -43:33 And they sat before him, the firstborn according to his -birthright, and the youngest according to his youth: and the men -marvelled one at another. - -43:34 And he took and sent messes unto them from before him: but -Benjamin's mess was five times so much as any of their's. And they -drank, and were merry with him. - -44:1 And he commanded the steward of his house, saying, Fill the men's -sacks with food, as much as they can carry, and put every man's money -in his sack's mouth. - -44:2 And put my cup, the silver cup, in the sack's mouth of the -youngest, and his corn money. And he did according to the word that -Joseph had spoken. - -44:3 As soon as the morning was light, the men were sent away, they -and their asses. - -44:4 And when they were gone out of the city, and not yet far off, -Joseph said unto his steward, Up, follow after the men; and when thou -dost overtake them, say unto them, Wherefore have ye rewarded evil for -good? 44:5 Is not this it in which my lord drinketh, and whereby -indeed he divineth? ye have done evil in so doing. - -44:6 And he overtook them, and he spake unto them these same words. - -44:7 And they said unto him, Wherefore saith my lord these words? God -forbid that thy servants should do according to this thing: 44:8 -Behold, the money, which we found in our sacks' mouths, we brought -again unto thee out of the land of Canaan: how then should we steal -out of thy lord's house silver or gold? 44:9 With whomsoever of thy -servants it be found, both let him die, and we also will be my lord's -bondmen. - -44:10 And he said, Now also let it be according unto your words: he -with whom it is found shall be my servant; and ye shall be blameless. - -44:11 Then they speedily took down every man his sack to the ground, -and opened every man his sack. - -44:12 And he searched, and began at the eldest, and left at the -youngest: and the cup was found in Benjamin's sack. - -44:13 Then they rent their clothes, and laded every man his ass, and -returned to the city. - -44:14 And Judah and his brethren came to Joseph's house; for he was -yet there: and they fell before him on the ground. - -44:15 And Joseph said unto them, What deed is this that ye have done? -wot ye not that such a man as I can certainly divine? 44:16 And Judah -said, What shall we say unto my lord? what shall we speak? or how -shall we clear ourselves? God hath found out the iniquity of thy -servants: behold, we are my lord's servants, both we, and he also with -whom the cup is found. - -44:17 And he said, God forbid that I should do so: but the man in -whose hand the cup is found, he shall be my servant; and as for you, -get you up in peace unto your father. - -44:18 Then Judah came near unto him, and said, Oh my lord, let thy -servant, I pray thee, speak a word in my lord's ears, and let not -thine anger burn against thy servant: for thou art even as Pharaoh. - -44:19 My lord asked his servants, saying, Have ye a father, or a -brother? 44:20 And we said unto my lord, We have a father, an old -man, and a child of his old age, a little one; and his brother is -dead, and he alone is left of his mother, and his father loveth him. - -44:21 And thou saidst unto thy servants, Bring him down unto me, that -I may set mine eyes upon him. - -44:22 And we said unto my lord, The lad cannot leave his father: for -if he should leave his father, his father would die. - -44:23 And thou saidst unto thy servants, Except your youngest brother -come down with you, ye shall see my face no more. - -44:24 And it came to pass when we came up unto thy servant my father, -we told him the words of my lord. - -44:25 And our father said, Go again, and buy us a little food. - -44:26 And we said, We cannot go down: if our youngest brother be with -us, then will we go down: for we may not see the man's face, except -our youngest brother be with us. - -44:27 And thy servant my father said unto us, Ye know that my wife -bare me two sons: 44:28 And the one went out from me, and I said, -Surely he is torn in pieces; and I saw him not since: 44:29 And if ye -take this also from me, and mischief befall him, ye shall bring down -my gray hairs with sorrow to the grave. - -44:30 Now therefore when I come to thy servant my father, and the lad -be not with us; seeing that his life is bound up in the lad's life; -44:31 It shall come to pass, when he seeth that the lad is not with -us, that he will die: and thy servants shall bring down the gray hairs -of thy servant our father with sorrow to the grave. - -44:32 For thy servant became surety for the lad unto my father, -saying, If I bring him not unto thee, then I shall bear the blame to -my father for ever. - -44:33 Now therefore, I pray thee, let thy servant abide instead of the -lad a bondman to my lord; and let the lad go up with his brethren. - -44:34 For how shall I go up to my father, and the lad be not with me? -lest peradventure I see the evil that shall come on my father. - -45:1 Then Joseph could not refrain himself before all them that stood -by him; and he cried, Cause every man to go out from me. And there -stood no man with him, while Joseph made himself known unto his -brethren. - -45:2 And he wept aloud: and the Egyptians and the house of Pharaoh -heard. - -45:3 And Joseph said unto his brethren, I am Joseph; doth my father -yet live? And his brethren could not answer him; for they were -troubled at his presence. - -45:4 And Joseph said unto his brethren, Come near to me, I pray you. -And they came near. And he said, I am Joseph your brother, whom ye -sold into Egypt. - -45:5 Now therefore be not grieved, nor angry with yourselves, that ye -sold me hither: for God did send me before you to preserve life. - -45:6 For these two years hath the famine been in the land: and yet -there are five years, in the which there shall neither be earing nor -harvest. - -45:7 And God sent me before you to preserve you a posterity in the -earth, and to save your lives by a great deliverance. - -45:8 So now it was not you that sent me hither, but God: and he hath -made me a father to Pharaoh, and lord of all his house, and a ruler -throughout all the land of Egypt. - -45:9 Haste ye, and go up to my father, and say unto him, Thus saith -thy son Joseph, God hath made me lord of all Egypt: come down unto me, -tarry not: 45:10 And thou shalt dwell in the land of Goshen, and thou -shalt be near unto me, thou, and thy children, and thy children's -children, and thy flocks, and thy herds, and all that thou hast: 45:11 -And there will I nourish thee; for yet there are five years of famine; -lest thou, and thy household, and all that thou hast, come to poverty. - -45:12 And, behold, your eyes see, and the eyes of my brother Benjamin, -that it is my mouth that speaketh unto you. - -45:13 And ye shall tell my father of all my glory in Egypt, and of all -that ye have seen; and ye shall haste and bring down my father hither. - -45:14 And he fell upon his brother Benjamin's neck, and wept; and -Benjamin wept upon his neck. - -45:15 Moreover he kissed all his brethren, and wept upon them: and -after that his brethren talked with him. - -45:16 And the fame thereof was heard in Pharaoh's house, saying, -Joseph's brethren are come: and it pleased Pharaoh well, and his -servants. - -45:17 And Pharaoh said unto Joseph, Say unto thy brethren, This do ye; -lade your beasts, and go, get you unto the land of Canaan; 45:18 And -take your father and your households, and come unto me: and I will -give you the good of the land of Egypt, and ye shall eat the fat of -the land. - -45:19 Now thou art commanded, this do ye; take you wagons out of the -land of Egypt for your little ones, and for your wives, and bring your -father, and come. - -45:20 Also regard not your stuff; for the good of all the land of -Egypt is your's. - -45:21 And the children of Israel did so: and Joseph gave them wagons, -according to the commandment of Pharaoh, and gave them provision for -the way. - -45:22 To all of them he gave each man changes of raiment; but to -Benjamin he gave three hundred pieces of silver, and five changes of -raiment. - -45:23 And to his father he sent after this manner; ten asses laden -with the good things of Egypt, and ten she asses laden with corn and -bread and meat for his father by the way. - -45:24 So he sent his brethren away, and they departed: and he said -unto them, See that ye fall not out by the way. - -45:25 And they went up out of Egypt, and came into the land of Canaan -unto Jacob their father, 45:26 And told him, saying, Joseph is yet -alive, and he is governor over all the land of Egypt. And Jacob's -heart fainted, for he believed them not. - -45:27 And they told him all the words of Joseph, which he had said -unto them: and when he saw the wagons which Joseph had sent to carry -him, the spirit of Jacob their father revived: 45:28 And Israel said, -It is enough; Joseph my son is yet alive: I will go and see him before -I die. - -46:1 And Israel took his journey with all that he had, and came to -Beersheba, and offered sacrifices unto the God of his father Isaac. - -46:2 And God spake unto Israel in the visions of the night, and said, -Jacob, Jacob. And he said, Here am I. - -46:3 And he said, I am God, the God of thy father: fear not to go down -into Egypt; for I will there make of thee a great nation: 46:4 I will -go down with thee into Egypt; and I will also surely bring thee up -again: and Joseph shall put his hand upon thine eyes. - -46:5 And Jacob rose up from Beersheba: and the sons of Israel carried -Jacob their father, and their little ones, and their wives, in the -wagons which Pharaoh had sent to carry him. - -46:6 And they took their cattle, and their goods, which they had -gotten in the land of Canaan, and came into Egypt, Jacob, and all his -seed with him: 46:7 His sons, and his sons' sons with him, his -daughters, and his sons' daughters, and all his seed brought he with -him into Egypt. - -46:8 And these are the names of the children of Israel, which came -into Egypt, Jacob and his sons: Reuben, Jacob's firstborn. - -46:9 And the sons of Reuben; Hanoch, and Phallu, and Hezron, and -Carmi. - -46:10 And the sons of Simeon; Jemuel, and Jamin, and Ohad, and Jachin, -and Zohar, and Shaul the son of a Canaanitish woman. - -46:11 And the sons of Levi; Gershon, Kohath, and Merari. - -46:12 And the sons of Judah; Er, and Onan, and Shelah, and Pharez, and -Zarah: but Er and Onan died in the land of Canaan. And the sons of -Pharez were Hezron and Hamul. - -46:13 And the sons of Issachar; Tola, and Phuvah, and Job, and -Shimron. - -46:14 And the sons of Zebulun; Sered, and Elon, and Jahleel. - -46:15 These be the sons of Leah, which she bare unto Jacob in -Padanaram, with his daughter Dinah: all the souls of his sons and his -daughters were thirty and three. - -46:16 And the sons of Gad; Ziphion, and Haggi, Shuni, and Ezbon, Eri, -and Arodi, and Areli. - -46:17 And the sons of Asher; Jimnah, and Ishuah, and Isui, and Beriah, -and Serah their sister: and the sons of Beriah; Heber, and Malchiel. - -46:18 These are the sons of Zilpah, whom Laban gave to Leah his -daughter, and these she bare unto Jacob, even sixteen souls. - -46:19 The sons of Rachel Jacob's wife; Joseph, and Benjamin. - -46:20 And unto Joseph in the land of Egypt were born Manasseh and -Ephraim, which Asenath the daughter of Potipherah priest of On bare -unto him. - -46:21 And the sons of Benjamin were Belah, and Becher, and Ashbel, -Gera, and Naaman, Ehi, and Rosh, Muppim, and Huppim, and Ard. - -46:22 These are the sons of Rachel, which were born to Jacob: all the -souls were fourteen. - -46:23 And the sons of Dan; Hushim. - -46:24 And the sons of Naphtali; Jahzeel, and Guni, and Jezer, and -Shillem. - -46:25 These are the sons of Bilhah, which Laban gave unto Rachel his -daughter, and she bare these unto Jacob: all the souls were seven. - -46:26 All the souls that came with Jacob into Egypt, which came out of -his loins, besides Jacob's sons' wives, all the souls were threescore -and six; 46:27 And the sons of Joseph, which were born him in Egypt, -were two souls: all the souls of the house of Jacob, which came into -Egypt, were threescore and ten. - -46:28 And he sent Judah before him unto Joseph, to direct his face -unto Goshen; and they came into the land of Goshen. - -46:29 And Joseph made ready his chariot, and went up to meet Israel -his father, to Goshen, and presented himself unto him; and he fell on -his neck, and wept on his neck a good while. - -46:30 And Israel said unto Joseph, Now let me die, since I have seen -thy face, because thou art yet alive. - -46:31 And Joseph said unto his brethren, and unto his father's house, -I will go up, and shew Pharaoh, and say unto him, My brethren, and my -father's house, which were in the land of Canaan, are come unto me; -46:32 And the men are shepherds, for their trade hath been to feed -cattle; and they have brought their flocks, and their herds, and all -that they have. - -46:33 And it shall come to pass, when Pharaoh shall call you, and -shall say, What is your occupation? 46:34 That ye shall say, Thy -servants' trade hath been about cattle from our youth even until now, -both we, and also our fathers: that ye may dwell in the land of -Goshen; for every shepherd is an abomination unto the Egyptians. - -47:1 Then Joseph came and told Pharaoh, and said, My father and my -brethren, and their flocks, and their herds, and all that they have, -are come out of the land of Canaan; and, behold, they are in the land -of Goshen. - -47:2 And he took some of his brethren, even five men, and presented -them unto Pharaoh. - -47:3 And Pharaoh said unto his brethren, What is your occupation? And -they said unto Pharaoh, Thy servants are shepherds, both we, and also -our fathers. - -47:4 They said morever unto Pharaoh, For to sojourn in the land are we -come; for thy servants have no pasture for their flocks; for the -famine is sore in the land of Canaan: now therefore, we pray thee, let -thy servants dwell in the land of Goshen. - -47:5 And Pharaoh spake unto Joseph, saying, Thy father and thy -brethren are come unto thee: 47:6 The land of Egypt is before thee; in -the best of the land make thy father and brethren to dwell; in the -land of Goshen let them dwell: and if thou knowest any men of activity -among them, then make them rulers over my cattle. - -47:7 And Joseph brought in Jacob his father, and set him before -Pharaoh: and Jacob blessed Pharaoh. - -47:8 And Pharaoh said unto Jacob, How old art thou? 47:9 And Jacob -said unto Pharaoh, The days of the years of my pilgrimage are an -hundred and thirty years: few and evil have the days of the years of -my life been, and have not attained unto the days of the years of the -life of my fathers in the days of their pilgrimage. - -47:10 And Jacob blessed Pharaoh, and went out from before Pharaoh. - -47:11 And Joseph placed his father and his brethren, and gave them a -possession in the land of Egypt, in the best of the land, in the land -of Rameses, as Pharaoh had commanded. - -47:12 And Joseph nourished his father, and his brethren, and all his -father's household, with bread, according to their families. - -47:13 And there was no bread in all the land; for the famine was very -sore, so that the land of Egypt and all the land of Canaan fainted by -reason of the famine. - -47:14 And Joseph gathered up all the money that was found in the land -of Egypt, and in the land of Canaan, for the corn which they bought: -and Joseph brought the money into Pharaoh's house. - -47:15 And when money failed in the land of Egypt, and in the land of -Canaan, all the Egyptians came unto Joseph, and said, Give us bread: -for why should we die in thy presence? for the money faileth. - -47:16 And Joseph said, Give your cattle; and I will give you for your -cattle, if money fail. - -47:17 And they brought their cattle unto Joseph: and Joseph gave them -bread in exchange for horses, and for the flocks, and for the cattle -of the herds, and for the asses: and he fed them with bread for all -their cattle for that year. - -47:18 When that year was ended, they came unto him the second year, -and said unto him, We will not hide it from my lord, how that our -money is spent; my lord also hath our herds of cattle; there is not -ought left in the sight of my lord, but our bodies, and our lands: -47:19 Wherefore shall we die before thine eyes, both we and our land? -buy us and our land for bread, and we and our land will be servants -unto Pharaoh: and give us seed, that we may live, and not die, that -the land be not desolate. - -47:20 And Joseph bought all the land of Egypt for Pharaoh; for the -Egyptians sold every man his field, because the famine prevailed over -them: so the land became Pharaoh's. - -47:21 And as for the people, he removed them to cities from one end of -the borders of Egypt even to the other end thereof. - -47:22 Only the land of the priests bought he not; for the priests had -a portion assigned them of Pharaoh, and did eat their portion which -Pharaoh gave them: wherefore they sold not their lands. - -47:23 Then Joseph said unto the people, Behold, I have bought you this -day and your land for Pharaoh: lo, here is seed for you, and ye shall -sow the land. - -47:24 And it shall come to pass in the increase, that ye shall give -the fifth part unto Pharaoh, and four parts shall be your own, for -seed of the field, and for your food, and for them of your households, -and for food for your little ones. - -47:25 And they said, Thou hast saved our lives: let us find grace in -the sight of my lord, and we will be Pharaoh's servants. - -47:26 And Joseph made it a law over the land of Egypt unto this day, -that Pharaoh should have the fifth part, except the land of the -priests only, which became not Pharaoh's. - -47:27 And Israel dwelt in the land of Egypt, in the country of Goshen; -and they had possessions therein, and grew, and multiplied -exceedingly. - -47:28 And Jacob lived in the land of Egypt seventeen years: so the -whole age of Jacob was an hundred forty and seven years. - -47:29 And the time drew nigh that Israel must die: and he called his -son Joseph, and said unto him, If now I have found grace in thy sight, -put, I pray thee, thy hand under my thigh, and deal kindly and truly -with me; bury me not, I pray thee, in Egypt: 47:30 But I will lie with -my fathers, and thou shalt carry me out of Egypt, and bury me in their -buryingplace. And he said, I will do as thou hast said. - -47:31 And he said, Swear unto me. And he sware unto him. And Israel -bowed himself upon the bed's head. - -48:1 And it came to pass after these things, that one told Joseph, -Behold, thy father is sick: and he took with him his two sons, -Manasseh and Ephraim. - -48:2 And one told Jacob, and said, Behold, thy son Joseph cometh unto -thee: and Israel strengthened himself, and sat upon the bed. - -48:3 And Jacob said unto Joseph, God Almighty appeared unto me at Luz -in the land of Canaan, and blessed me, 48:4 And said unto me, Behold, -I will make thee fruitful, and multiply thee, and I will make of thee -a multitude of people; and will give this land to thy seed after thee -for an everlasting possession. - -48:5 And now thy two sons, Ephraim and Manasseh, which were born unto -thee in the land of Egypt before I came unto thee into Egypt, are -mine; as Reuben and Simeon, they shall be mine. - -48:6 And thy issue, which thou begettest after them, shall be thine, -and shall be called after the name of their brethren in their -inheritance. - -48:7 And as for me, when I came from Padan, Rachel died by me in the -land of Canaan in the way, when yet there was but a little way to come -unto Ephrath: and I buried her there in the way of Ephrath; the same -is Bethlehem. - -48:8 And Israel beheld Joseph's sons, and said, Who are these? 48:9 -And Joseph said unto his father, They are my sons, whom God hath given -me in this place. And he said, Bring them, I pray thee, unto me, and I -will bless them. - -48:10 Now the eyes of Israel were dim for age, so that he could not -see. - -And he brought them near unto him; and he kissed them, and embraced -them. - -48:11 And Israel said unto Joseph, I had not thought to see thy face: -and, lo, God hath shewed me also thy seed. - -48:12 And Joseph brought them out from between his knees, and he bowed -himself with his face to the earth. - -48:13 And Joseph took them both, Ephraim in his right hand toward -Israel's left hand, and Manasseh in his left hand toward Israel's -right hand, and brought them near unto him. - -48:14 And Israel stretched out his right hand, and laid it upon -Ephraim's head, who was the younger, and his left hand upon Manasseh's -head, guiding his hands wittingly; for Manasseh was the firstborn. - -48:15 And he blessed Joseph, and said, God, before whom my fathers -Abraham and Isaac did walk, the God which fed me all my life long unto -this day, 48:16 The Angel which redeemed me from all evil, bless the -lads; and let my name be named on them, and the name of my fathers -Abraham and Isaac; and let them grow into a multitude in the midst of -the earth. - -48:17 And when Joseph saw that his father laid his right hand upon the -head of Ephraim, it displeased him: and he held up his father's hand, -to remove it from Ephraim's head unto Manasseh's head. - -48:18 And Joseph said unto his father, Not so, my father: for this is -the firstborn; put thy right hand upon his head. - -48:19 And his father refused, and said, I know it, my son, I know it: -he also shall become a people, and he also shall be great: but truly -his younger brother shall be greater than he, and his seed shall -become a multitude of nations. - -48:20 And he blessed them that day, saying, In thee shall Israel -bless, saying, God make thee as Ephraim and as Manasseh: and he set -Ephraim before Manasseh. - -48:21 And Israel said unto Joseph, Behold, I die: but God shall be -with you, and bring you again unto the land of your fathers. - -48:22 Moreover I have given to thee one portion above thy brethren, -which I took out of the hand of the Amorite with my sword and with my -bow. - -49:1 And Jacob called unto his sons, and said, Gather yourselves -together, that I may tell you that which shall befall you in the last -days. - -49:2 Gather yourselves together, and hear, ye sons of Jacob; and -hearken unto Israel your father. - -49:3 Reuben, thou art my firstborn, my might, and the beginning of my -strength, the excellency of dignity, and the excellency of power: 49:4 -Unstable as water, thou shalt not excel; because thou wentest up to -thy father's bed; then defiledst thou it: he went up to my couch. - -49:5 Simeon and Levi are brethren; instruments of cruelty are in their -habitations. - -49:6 O my soul, come not thou into their secret; unto their assembly, -mine honour, be not thou united: for in their anger they slew a man, -and in their selfwill they digged down a wall. - -49:7 Cursed be their anger, for it was fierce; and their wrath, for it -was cruel: I will divide them in Jacob, and scatter them in Israel. - -49:8 Judah, thou art he whom thy brethren shall praise: thy hand shall -be in the neck of thine enemies; thy father's children shall bow down -before thee. - -49:9 Judah is a lion's whelp: from the prey, my son, thou art gone up: -he stooped down, he couched as a lion, and as an old lion; who shall -rouse him up? 49:10 The sceptre shall not depart from Judah, nor a -lawgiver from between his feet, until Shiloh come; and unto him shall -the gathering of the people be. - -49:11 Binding his foal unto the vine, and his ass's colt unto the -choice vine; he washed his garments in wine, and his clothes in the -blood of grapes: 49:12 His eyes shall be red with wine, and his teeth -white with milk. - -49:13 Zebulun shall dwell at the haven of the sea; and he shall be for -an haven of ships; and his border shall be unto Zidon. - -49:14 Issachar is a strong ass couching down between two burdens: -49:15 And he saw that rest was good, and the land that it was -pleasant; and bowed his shoulder to bear, and became a servant unto -tribute. - -49:16 Dan shall judge his people, as one of the tribes of Israel. - -49:17 Dan shall be a serpent by the way, an adder in the path, that -biteth the horse heels, so that his rider shall fall backward. - -49:18 I have waited for thy salvation, O LORD. - -49:19 Gad, a troop shall overcome him: but he shall overcome at the -last. - -49:20 Out of Asher his bread shall be fat, and he shall yield royal -dainties. - -49:21 Naphtali is a hind let loose: he giveth goodly words. - -49:22 Joseph is a fruitful bough, even a fruitful bough by a well; -whose branches run over the wall: 49:23 The archers have sorely -grieved him, and shot at him, and hated him: 49:24 But his bow abode -in strength, and the arms of his hands were made strong by the hands -of the mighty God of Jacob; (from thence is the shepherd, the stone of -Israel:) 49:25 Even by the God of thy father, who shall help thee; and -by the Almighty, who shall bless thee with blessings of heaven above, -blessings of the deep that lieth under, blessings of the breasts, and -of the womb: 49:26 The blessings of thy father have prevailed above -the blessings of my progenitors unto the utmost bound of the -everlasting hills: they shall be on the head of Joseph, and on the -crown of the head of him that was separate from his brethren. - -49:27 Benjamin shall ravin as a wolf: in the morning he shall devour -the prey, and at night he shall divide the spoil. - -49:28 All these are the twelve tribes of Israel: and this is it that -their father spake unto them, and blessed them; every one according to -his blessing he blessed them. - -49:29 And he charged them, and said unto them, I am to be gathered -unto my people: bury me with my fathers in the cave that is in the -field of Ephron the Hittite, 49:30 In the cave that is in the field of -Machpelah, which is before Mamre, in the land of Canaan, which Abraham -bought with the field of Ephron the Hittite for a possession of a -buryingplace. - -49:31 There they buried Abraham and Sarah his wife; there they buried -Isaac and Rebekah his wife; and there I buried Leah. - -49:32 The purchase of the field and of the cave that is therein was -from the children of Heth. - -49:33 And when Jacob had made an end of commanding his sons, he -gathered up his feet into the bed, and yielded up the ghost, and was -gathered unto his people. - -50:1 And Joseph fell upon his father's face, and wept upon him, and -kissed him. - -50:2 And Joseph commanded his servants the physicians to embalm his -father: and the physicians embalmed Israel. - -50:3 And forty days were fulfilled for him; for so are fulfilled the -days of those which are embalmed: and the Egyptians mourned for him -threescore and ten days. - -50:4 And when the days of his mourning were past, Joseph spake unto -the house of Pharaoh, saying, If now I have found grace in your eyes, -speak, I pray you, in the ears of Pharaoh, saying, 50:5 My father made -me swear, saying, Lo, I die: in my grave which I have digged for me in -the land of Canaan, there shalt thou bury me. Now therefore let me go -up, I pray thee, and bury my father, and I will come again. - -50:6 And Pharaoh said, Go up, and bury thy father, according as he -made thee swear. - -50:7 And Joseph went up to bury his father: and with him went up all -the servants of Pharaoh, the elders of his house, and all the elders -of the land of Egypt, 50:8 And all the house of Joseph, and his -brethren, and his father's house: only their little ones, and their -flocks, and their herds, they left in the land of Goshen. - -50:9 And there went up with him both chariots and horsemen: and it was -a very great company. - -50:10 And they came to the threshingfloor of Atad, which is beyond -Jordan, and there they mourned with a great and very sore lamentation: -and he made a mourning for his father seven days. - -50:11 And when the inhabitants of the land, the Canaanites, saw the -mourning in the floor of Atad, they said, This is a grievous mourning -to the Egyptians: wherefore the name of it was called Abelmizraim, -which is beyond Jordan. - -50:12 And his sons did unto him according as he commanded them: 50:13 -For his sons carried him into the land of Canaan, and buried him in -the cave of the field of Machpelah, which Abraham bought with the -field for a possession of a buryingplace of Ephron the Hittite, before -Mamre. - -50:14 And Joseph returned into Egypt, he, and his brethren, and all -that went up with him to bury his father, after he had buried his -father. - -50:15 And when Joseph's brethren saw that their father was dead, they -said, Joseph will peradventure hate us, and will certainly requite us -all the evil which we did unto him. - -50:16 And they sent a messenger unto Joseph, saying, Thy father did -command before he died, saying, 50:17 So shall ye say unto Joseph, -Forgive, I pray thee now, the trespass of thy brethren, and their sin; -for they did unto thee evil: and now, we pray thee, forgive the -trespass of the servants of the God of thy father. And Joseph wept -when they spake unto him. - -50:18 And his brethren also went and fell down before his face; and -they said, Behold, we be thy servants. - -50:19 And Joseph said unto them, Fear not: for am I in the place of -God? 50:20 But as for you, ye thought evil against me; but God meant -it unto good, to bring to pass, as it is this day, to save much people -alive. - -50:21 Now therefore fear ye not: I will nourish you, and your little -ones. - -And he comforted them, and spake kindly unto them. - -50:22 And Joseph dwelt in Egypt, he, and his father's house: and -Joseph lived an hundred and ten years. - -50:23 And Joseph saw Ephraim's children of the third generation: the -children also of Machir the son of Manasseh were brought up upon -Joseph's knees. - -50:24 And Joseph said unto his brethren, I die: and God will surely -visit you, and bring you out of this land unto the land which he sware -to Abraham, to Isaac, and to Jacob. - -50:25 And Joseph took an oath of the children of Israel, saying, God -will surely visit you, and ye shall carry up my bones from hence. - -50:26 So Joseph died, being an hundred and ten years old: and they -embalmed him, and he was put in a coffin in Egypt. - - - - -The Second Book of Moses: Called Exodus - - -1:1 Now these are the names of the children of Israel, which came -into Egypt; every man and his household came with Jacob. - -1:2 Reuben, Simeon, Levi, and Judah, 1:3 Issachar, Zebulun, and -Benjamin, 1:4 Dan, and Naphtali, Gad, and Asher. - -1:5 And all the souls that came out of the loins of Jacob were seventy -souls: for Joseph was in Egypt already. - -1:6 And Joseph died, and all his brethren, and all that generation. - -1:7 And the children of Israel were fruitful, and increased -abundantly, and multiplied, and waxed exceeding mighty; and the land -was filled with them. - -1:8 Now there arose up a new king over Egypt, which knew not Joseph. - -1:9 And he said unto his people, Behold, the people of the children of -Israel are more and mightier than we: 1:10 Come on, let us deal wisely -with them; lest they multiply, and it come to pass, that, when there -falleth out any war, they join also unto our enemies, and fight -against us, and so get them up out of the land. - -1:11 Therefore they did set over them taskmasters to afflict them with -their burdens. And they built for Pharaoh treasure cities, Pithom and -Raamses. - -1:12 But the more they afflicted them, the more they multiplied and -grew. - -And they were grieved because of the children of Israel. - -1:13 And the Egyptians made the children of Israel to serve with -rigour: 1:14 And they made their lives bitter with hard bondage, in -morter, and in brick, and in all manner of service in the field: all -their service, wherein they made them serve, was with rigour. - -1:15 And the king of Egypt spake to the Hebrew midwives, of which the -name of the one was Shiphrah, and the name of the other Puah: 1:16 And -he said, When ye do the office of a midwife to the Hebrew women, and -see them upon the stools; if it be a son, then ye shall kill him: but -if it be a daughter, then she shall live. - -1:17 But the midwives feared God, and did not as the king of Egypt -commanded them, but saved the men children alive. - -1:18 And the king of Egypt called for the midwives, and said unto -them, Why have ye done this thing, and have saved the men children -alive? 1:19 And the midwives said unto Pharaoh, Because the Hebrew -women are not as the Egyptian women; for they are lively, and are -delivered ere the midwives come in unto them. - -1:20 Therefore God dealt well with the midwives: and the people -multiplied, and waxed very mighty. - -1:21 And it came to pass, because the midwives feared God, that he -made them houses. - -1:22 And Pharaoh charged all his people, saying, Every son that is -born ye shall cast into the river, and every daughter ye shall save -alive. - -2:1 And there went a man of the house of Levi, and took to wife a -daughter of Levi. - -2:2 And the woman conceived, and bare a son: and when she saw him that -he was a goodly child, she hid him three months. - -2:3 And when she could not longer hide him, she took for him an ark of -bulrushes, and daubed it with slime and with pitch, and put the child -therein; and she laid it in the flags by the river's brink. - -2:4 And his sister stood afar off, to wit what would be done to him. - -2:5 And the daughter of Pharaoh came down to wash herself at the -river; and her maidens walked along by the river's side; and when she -saw the ark among the flags, she sent her maid to fetch it. - -2:6 And when she had opened it, she saw the child: and, behold, the -babe wept. And she had compassion on him, and said, This is one of the -Hebrews' children. - -2:7 Then said his sister to Pharaoh's daughter, Shall I go and call to -thee a nurse of the Hebrew women, that she may nurse the child for -thee? 2:8 And Pharaoh's daughter said to her, Go. And the maid went -and called the child's mother. - -2:9 And Pharaoh's daughter said unto her, Take this child away, and -nurse it for me, and I will give thee thy wages. And the women took -the child, and nursed it. - -2:10 And the child grew, and she brought him unto Pharaoh's daughter, -and he became her son. And she called his name Moses: and she said, -Because I drew him out of the water. - -2:11 And it came to pass in those days, when Moses was grown, that he -went out unto his brethren, and looked on their burdens: and he spied -an Egyptian smiting an Hebrew, one of his brethren. - -2:12 And he looked this way and that way, and when he saw that there -was no man, he slew the Egyptian, and hid him in the sand. - -2:13 And when he went out the second day, behold, two men of the -Hebrews strove together: and he said to him that did the wrong, -Wherefore smitest thou thy fellow? 2:14 And he said, Who made thee a -prince and a judge over us? intendest thou to kill me, as thou -killedst the Egyptian? And Moses feared, and said, Surely this thing -is known. - -2:15 Now when Pharaoh heard this thing, he sought to slay Moses. But -Moses fled from the face of Pharaoh, and dwelt in the land of Midian: -and he sat down by a well. - -2:16 Now the priest of Midian had seven daughters: and they came and -drew water, and filled the troughs to water their father's flock. - -2:17 And the shepherds came and drove them away: but Moses stood up -and helped them, and watered their flock. - -2:18 And when they came to Reuel their father, he said, How is it that -ye are come so soon to day? 2:19 And they said, An Egyptian delivered -us out of the hand of the shepherds, and also drew water enough for -us, and watered the flock. - -2:20 And he said unto his daughters, And where is he? why is it that -ye have left the man? call him, that he may eat bread. - -2:21 And Moses was content to dwell with the man: and he gave Moses -Zipporah his daughter. - -2:22 And she bare him a son, and he called his name Gershom: for he -said, I have been a stranger in a strange land. - -2:23 And it came to pass in process of time, that the king of Egypt -died: and the children of Israel sighed by reason of the bondage, and -they cried, and their cry came up unto God by reason of the bondage. - -2:24 And God heard their groaning, and God remembered his covenant -with Abraham, with Isaac, and with Jacob. - -2:25 And God looked upon the children of Israel, and God had respect -unto them. - -3:1 Now Moses kept the flock of Jethro his father in law, the priest -of Midian: and he led the flock to the backside of the desert, and -came to the mountain of God, even to Horeb. - -3:2 And the angel of the LORD appeared unto him in a flame of fire out -of the midst of a bush: and he looked, and, behold, the bush burned -with fire, and the bush was not consumed. - -3:3 And Moses said, I will now turn aside, and see this great sight, -why the bush is not burnt. - -3:4 And when the LORD saw that he turned aside to see, God called unto -him out of the midst of the bush, and said, Moses, Moses. And he said, -Here am I. - -3:5 And he said, Draw not nigh hither: put off thy shoes from off thy -feet, for the place whereon thou standest is holy ground. - -3:6 Moreover he said, I am the God of thy father, the God of Abraham, -the God of Isaac, and the God of Jacob. And Moses hid his face; for he -was afraid to look upon God. - -3:7 And the LORD said, I have surely seen the affliction of my people -which are in Egypt, and have heard their cry by reason of their -taskmasters; for I know their sorrows; 3:8 And I am come down to -deliver them out of the hand of the Egyptians, and to bring them up -out of that land unto a good land and a large, unto a land flowing -with milk and honey; unto the place of the Canaanites, and the -Hittites, and the Amorites, and the Perizzites, and the Hivites, and -the Jebusites. - -3:9 Now therefore, behold, the cry of the children of Israel is come -unto me: and I have also seen the oppression wherewith the Egyptians -oppress them. - -3:10 Come now therefore, and I will send thee unto Pharaoh, that thou -mayest bring forth my people the children of Israel out of Egypt. - -3:11 And Moses said unto God, Who am I, that I should go unto Pharaoh, -and that I should bring forth the children of Israel out of Egypt? -3:12 And he said, Certainly I will be with thee; and this shall be a -token unto thee, that I have sent thee: When thou hast brought forth -the people out of Egypt, ye shall serve God upon this mountain. - -3:13 And Moses said unto God, Behold, when I come unto the children of -Israel, and shall say unto them, The God of your fathers hath sent me -unto you; and they shall say to me, What is his name? what shall I say -unto them? 3:14 And God said unto Moses, I AM THAT I AM: and he said, -Thus shalt thou say unto the children of Israel, I AM hath sent me -unto you. - -3:15 And God said moreover unto Moses, Thus shalt thou say unto the -children of Israel, the LORD God of your fathers, the God of Abraham, -the God of Isaac, and the God of Jacob, hath sent me unto you: this is -my name for ever, and this is my memorial unto all generations. - -3:16 Go, and gather the elders of Israel together, and say unto them, -The LORD God of your fathers, the God of Abraham, of Isaac, and of -Jacob, appeared unto me, saying, I have surely visited you, and seen -that which is done to you in Egypt: 3:17 And I have said, I will bring -you up out of the affliction of Egypt unto the land of the Canaanites, -and the Hittites, and the Amorites, and the Perizzites, and the -Hivites, and the Jebusites, unto a land flowing with milk and honey. - -3:18 And they shall hearken to thy voice: and thou shalt come, thou -and the elders of Israel, unto the king of Egypt, and ye shall say -unto him, The LORD God of the Hebrews hath met with us: and now let us -go, we beseech thee, three days' journey into the wilderness, that we -may sacrifice to the LORD our God. - -3:19 And I am sure that the king of Egypt will not let you go, no, not -by a mighty hand. - -3:20 And I will stretch out my hand, and smite Egypt with all my -wonders which I will do in the midst thereof: and after that he will -let you go. - -3:21 And I will give this people favour in the sight of the Egyptians: -and it shall come to pass, that, when ye go, ye shall not go empty. - -3:22 But every woman shall borrow of her neighbour, and of her that -sojourneth in her house, jewels of silver, and jewels of gold, and -raiment: and ye shall put them upon your sons, and upon your -daughters; and ye shall spoil the Egyptians. - -4:1 And Moses answered and said, But, behold, they will not believe -me, nor hearken unto my voice: for they will say, The LORD hath not -appeared unto thee. - -4:2 And the LORD said unto him, What is that in thine hand? And he -said, A rod. - -4:3 And he said, Cast it on the ground. And he cast it on the ground, -and it became a serpent; and Moses fled from before it. - -4:4 And the LORD said unto Moses, Put forth thine hand, and take it by -the tail. And he put forth his hand, and caught it, and it became a -rod in his hand: 4:5 That they may believe that the LORD God of their -fathers, the God of Abraham, the God of Isaac, and the God of Jacob, -hath appeared unto thee. - -4:6 And the LORD said furthermore unto him, Put now thine hand into -thy bosom. And he put his hand into his bosom: and when he took it -out, behold, his hand was leprous as snow. - -4:7 And he said, Put thine hand into thy bosom again. And he put his -hand into his bosom again; and plucked it out of his bosom, and, -behold, it was turned again as his other flesh. - -4:8 And it shall come to pass, if they will not believe thee, neither -hearken to the voice of the first sign, that they will believe the -voice of the latter sign. - -4:9 And it shall come to pass, if they will not believe also these two -signs, neither hearken unto thy voice, that thou shalt take of the -water of the river, and pour it upon the dry land: and the water which -thou takest out of the river shall become blood upon the dry land. - -4:10 And Moses said unto the LORD, O my LORD, I am not eloquent, -neither heretofore, nor since thou hast spoken unto thy servant: but I -am slow of speech, and of a slow tongue. - -4:11 And the LORD said unto him, Who hath made man's mouth? or who -maketh the dumb, or deaf, or the seeing, or the blind? have not I the -LORD? 4:12 Now therefore go, and I will be with thy mouth, and teach -thee what thou shalt say. - -4:13 And he said, O my LORD, send, I pray thee, by the hand of him -whom thou wilt send. - -4:14 And the anger of the LORD was kindled against Moses, and he said, -Is not Aaron the Levite thy brother? I know that he can speak well. -And also, behold, he cometh forth to meet thee: and when he seeth -thee, he will be glad in his heart. - -4:15 And thou shalt speak unto him, and put words in his mouth: and I -will be with thy mouth, and with his mouth, and will teach you what ye -shall do. - -4:16 And he shall be thy spokesman unto the people: and he shall be, -even he shall be to thee instead of a mouth, and thou shalt be to him -instead of God. - -4:17 And thou shalt take this rod in thine hand, wherewith thou shalt -do signs. - -4:18 And Moses went and returned to Jethro his father in law, and said -unto him, Let me go, I pray thee, and return unto my brethren which -are in Egypt, and see whether they be yet alive. And Jethro said to -Moses, Go in peace. - -4:19 And the LORD said unto Moses in Midian, Go, return into Egypt: -for all the men are dead which sought thy life. - -4:20 And Moses took his wife and his sons, and set them upon an ass, -and he returned to the land of Egypt: and Moses took the rod of God in -his hand. - -4:21 And the LORD said unto Moses, When thou goest to return into -Egypt, see that thou do all those wonders before Pharaoh, which I have -put in thine hand: but I will harden his heart, that he shall not let -the people go. - -4:22 And thou shalt say unto Pharaoh, Thus saith the LORD, Israel is -my son, even my firstborn: 4:23 And I say unto thee, Let my son go, -that he may serve me: and if thou refuse to let him go, behold, I will -slay thy son, even thy firstborn. - -4:24 And it came to pass by the way in the inn, that the LORD met him, -and sought to kill him. - -4:25 Then Zipporah took a sharp stone, and cut off the foreskin of her -son, and cast it at his feet, and said, Surely a bloody husband art -thou to me. - -4:26 So he let him go: then she said, A bloody husband thou art, -because of the circumcision. - -4:27 And the LORD said to Aaron, Go into the wilderness to meet Moses. -And he went, and met him in the mount of God, and kissed him. - -4:28 And Moses told Aaron all the words of the LORD who had sent him, -and all the signs which he had commanded him. - -4:29 And Moses and Aaron went and gathered together all the elders of -the children of Israel: 4:30 And Aaron spake all the words which the -LORD had spoken unto Moses, and did the signs in the sight of the -people. - -4:31 And the people believed: and when they heard that the LORD had -visited the children of Israel, and that he had looked upon their -affliction, then they bowed their heads and worshipped. - -5:1 And afterward Moses and Aaron went in, and told Pharaoh, Thus -saith the LORD God of Israel, Let my people go, that they may hold a -feast unto me in the wilderness. - -5:2 And Pharaoh said, Who is the LORD, that I should obey his voice to -let Israel go? I know not the LORD, neither will I let Israel go. - -5:3 And they said, The God of the Hebrews hath met with us: let us go, -we pray thee, three days' journey into the desert, and sacrifice unto -the LORD our God; lest he fall upon us with pestilence, or with the -sword. - -5:4 And the king of Egypt said unto them, Wherefore do ye, Moses and -Aaron, let the people from their works? get you unto your burdens. - -5:5 And Pharaoh said, Behold, the people of the land now are many, and -ye make them rest from their burdens. - -5:6 And Pharaoh commanded the same day the taskmasters of the people, -and their officers, saying, 5:7 Ye shall no more give the people straw -to make brick, as heretofore: let them go and gather straw for -themselves. - -5:8 And the tale of the bricks, which they did make heretofore, ye -shall lay upon them; ye shall not diminish ought thereof: for they be -idle; therefore they cry, saying, Let us go and sacrifice to our God. - -5:9 Let there more work be laid upon the men, that they may labour -therein; and let them not regard vain words. - -5:10 And the taskmasters of the people went out, and their officers, -and they spake to the people, saying, Thus saith Pharaoh, I will not -give you straw. - -5:11 Go ye, get you straw where ye can find it: yet not ought of your -work shall be diminished. - -5:12 So the people were scattered abroad throughout all the land of -Egypt to gather stubble instead of straw. - -5:13 And the taskmasters hasted them, saying, Fulfil your works, your -daily tasks, as when there was straw. - -5:14 And the officers of the children of Israel, which Pharaoh's -taskmasters had set over them, were beaten, and demanded, Wherefore -have ye not fulfilled your task in making brick both yesterday and to -day, as heretofore? 5:15 Then the officers of the children of Israel -came and cried unto Pharaoh, saying, Wherefore dealest thou thus with -thy servants? 5:16 There is no straw given unto thy servants, and -they say to us, Make brick: and, behold, thy servants are beaten; but -the fault is in thine own people. - -5:17 But he said, Ye are idle, ye are idle: therefore ye say, Let us -go and do sacrifice to the LORD. - -5:18 Go therefore now, and work; for there shall no straw be given -you, yet shall ye deliver the tale of bricks. - -5:19 And the officers of the children of Israel did see that they were -in evil case, after it was said, Ye shall not minish ought from your -bricks of your daily task. - -5:20 And they met Moses and Aaron, who stood in the way, as they came -forth from Pharaoh: 5:21 And they said unto them, The LORD look upon -you, and judge; because ye have made our savour to be abhorred in the -eyes of Pharaoh, and in the eyes of his servants, to put a sword in -their hand to slay us. - -5:22 And Moses returned unto the LORD, and said, LORD, wherefore hast -thou so evil entreated this people? why is it that thou hast sent me? -5:23 For since I came to Pharaoh to speak in thy name, he hath done -evil to this people; neither hast thou delivered thy people at all. - -6:1 Then the LORD said unto Moses, Now shalt thou see what I will do -to Pharaoh: for with a strong hand shall he let them go, and with a -strong hand shall he drive them out of his land. - -6:2 And God spake unto Moses, and said unto him, I am the LORD: 6:3 -And I appeared unto Abraham, unto Isaac, and unto Jacob, by the name -of God Almighty, but by my name JEHOVAH was I not known to them. - -6:4 And I have also established my covenant with them, to give them -the land of Canaan, the land of their pilgrimage, wherein they were -strangers. - -6:5 And I have also heard the groaning of the children of Israel, whom -the Egyptians keep in bondage; and I have remembered my covenant. - -6:6 Wherefore say unto the children of Israel, I am the LORD, and I -will bring you out from under the burdens of the Egyptians, and I will -rid you out of their bondage, and I will redeem you with a stretched -out arm, and with great judgments: 6:7 And I will take you to me for a -people, and I will be to you a God: and ye shall know that I am the -LORD your God, which bringeth you out from under the burdens of the -Egyptians. - -6:8 And I will bring you in unto the land, concerning the which I did -swear to give it to Abraham, to Isaac, and to Jacob; and I will give -it you for an heritage: I am the LORD. - -6:9 And Moses spake so unto the children of Israel: but they hearkened -not unto Moses for anguish of spirit, and for cruel bondage. - -6:10 And the LORD spake unto Moses, saying, 6:11 Go in, speak unto -Pharaoh king of Egypt, that he let the children of Israel go out of -his land. - -6:12 And Moses spake before the LORD, saying, Behold, the children of -Israel have not hearkened unto me; how then shall Pharaoh hear me, who -am of uncircumcised lips? 6:13 And the LORD spake unto Moses and unto -Aaron, and gave them a charge unto the children of Israel, and unto -Pharaoh king of Egypt, to bring the children of Israel out of the land -of Egypt. - -6:14 These be the heads of their fathers' houses: The sons of Reuben -the firstborn of Israel; Hanoch, and Pallu, Hezron, and Carmi: these -be the families of Reuben. - -6:15 And the sons of Simeon; Jemuel, and Jamin, and Ohad, and Jachin, -and Zohar, and Shaul the son of a Canaanitish woman: these are the -families of Simeon. - -6:16 And these are the names of the sons of Levi according to their -generations; Gershon, and Kohath, and Merari: and the years of the -life of Levi were an hundred thirty and seven years. - -6:17 The sons of Gershon; Libni, and Shimi, according to their -families. - -6:18 And the sons of Kohath; Amram, and Izhar, and Hebron, and Uzziel: -and the years of the life of Kohath were an hundred thirty and three -years. - -6:19 And the sons of Merari; Mahali and Mushi: these are the families -of Levi according to their generations. - -6:20 And Amram took him Jochebed his father's sister to wife; and she -bare him Aaron and Moses: and the years of the life of Amram were an -hundred and thirty and seven years. - -6:21 And the sons of Izhar; Korah, and Nepheg, and Zichri. - -6:22 And the sons of Uzziel; Mishael, and Elzaphan, and Zithri. - -6:23 And Aaron took him Elisheba, daughter of Amminadab, sister of -Naashon, to wife; and she bare him Nadab, and Abihu, Eleazar, and -Ithamar. - -6:24 And the sons of Korah; Assir, and Elkanah, and Abiasaph: these -are the families of the Korhites. - -6:25 And Eleazar Aaron's son took him one of the daughters of Putiel -to wife; and she bare him Phinehas: these are the heads of the fathers -of the Levites according to their families. - -6:26 These are that Aaron and Moses, to whom the LORD said, Bring out -the children of Israel from the land of Egypt according to their -armies. - -6:27 These are they which spake to Pharaoh king of Egypt, to bring out -the children of Israel from Egypt: these are that Moses and Aaron. - -6:28 And it came to pass on the day when the LORD spake unto Moses in -the land of Egypt, 6:29 That the LORD spake unto Moses, saying, I am -the LORD: speak thou unto Pharaoh king of Egypt all that I say unto -thee. - -6:30 And Moses said before the LORD, Behold, I am of uncircumcised -lips, and how shall Pharaoh hearken unto me? 7:1 And the LORD said -unto Moses, See, I have made thee a god to Pharaoh: and Aaron thy -brother shall be thy prophet. - -7:2 Thou shalt speak all that I command thee: and Aaron thy brother -shall speak unto Pharaoh, that he send the children of Israel out of -his land. - -7:3 And I will harden Pharaoh's heart, and multiply my signs and my -wonders in the land of Egypt. - -7:4 But Pharaoh shall not hearken unto you, that I may lay my hand -upon Egypt, and bring forth mine armies, and my people the children of -Israel, out of the land of Egypt by great judgments. - -7:5 And the Egyptians shall know that I am the LORD, when I stretch -forth mine hand upon Egypt, and bring out the children of Israel from -among them. - -7:6 And Moses and Aaron did as the LORD commanded them, so did they. - -7:7 And Moses was fourscore years old, and Aaron fourscore and three -years old, when they spake unto Pharaoh. - -7:8 And the LORD spake unto Moses and unto Aaron, saying, 7:9 When -Pharaoh shall speak unto you, saying, Shew a miracle for you: then -thou shalt say unto Aaron, Take thy rod, and cast it before Pharaoh, -and it shall become a serpent. - -7:10 And Moses and Aaron went in unto Pharaoh, and they did so as the -LORD had commanded: and Aaron cast down his rod before Pharaoh, and -before his servants, and it became a serpent. - -7:11 Then Pharaoh also called the wise men and the sorcerers: now the -magicians of Egypt, they also did in like manner with their -enchantments. - -7:12 For they cast down every man his rod, and they became serpents: -but Aaron's rod swallowed up their rods. - -7:13 And he hardened Pharaoh's heart, that he hearkened not unto them; -as the LORD had said. - -7:14 And the LORD said unto Moses, Pharaoh's heart is hardened, he -refuseth to let the people go. - -7:15 Get thee unto Pharaoh in the morning; lo, he goeth out unto the -water; and thou shalt stand by the river's brink against he come; and -the rod which was turned to a serpent shalt thou take in thine hand. - -7:16 And thou shalt say unto him, The LORD God of the Hebrews hath -sent me unto thee, saying, Let my people go, that they may serve me in -the wilderness: and, behold, hitherto thou wouldest not hear. - -7:17 Thus saith the LORD, In this thou shalt know that I am the LORD: -behold, I will smite with the rod that is in mine hand upon the waters -which are in the river, and they shall be turned to blood. - -7:18 And the fish that is in the river shall die, and the river shall -stink; and the Egyptians shall lothe to drink of the water of the -river. - -7:19 And the LORD spake unto Moses, Say unto Aaron, Take thy rod, and -stretch out thine hand upon the waters of Egypt, upon their streams, -upon their rivers, and upon their ponds, and upon all their pools of -water, that they may become blood; and that there may be blood -throughout all the land of Egypt, both in vessels of wood, and in -vessels of stone. - -7:20 And Moses and Aaron did so, as the LORD commanded; and he lifted -up the rod, and smote the waters that were in the river, in the sight -of Pharaoh, and in the sight of his servants; and all the waters that -were in the river were turned to blood. - -7:21 And the fish that was in the river died; and the river stank, and -the Egyptians could not drink of the water of the river; and there was -blood throughout all the land of Egypt. - -7:22 And the magicians of Egypt did so with their enchantments: and -Pharaoh's heart was hardened, neither did he hearken unto them; as the -LORD had said. - -7:23 And Pharaoh turned and went into his house, neither did he set -his heart to this also. - -7:24 And all the Egyptians digged round about the river for water to -drink; for they could not drink of the water of the river. - -7:25 And seven days were fulfilled, after that the LORD had smitten -the river. - -8:1 And the LORD spake unto Moses, Go unto Pharaoh, and say unto him, -Thus saith the LORD, Let my people go, that they may serve me. - -8:2 And if thou refuse to let them go, behold, I will smite all thy -borders with frogs: 8:3 And the river shall bring forth frogs -abundantly, which shall go up and come into thine house, and into thy -bedchamber, and upon thy bed, and into the house of thy servants, and -upon thy people, and into thine ovens, and into thy kneadingtroughs: -8:4 And the frogs shall come up both on thee, and upon thy people, and -upon all thy servants. - -8:5 And the LORD spake unto Moses, Say unto Aaron, Stretch forth thine -hand with thy rod over the streams, over the rivers, and over the -ponds, and cause frogs to come up upon the land of Egypt. - -8:6 And Aaron stretched out his hand over the waters of Egypt; and the -frogs came up, and covered the land of Egypt. - -8:7 And the magicians did so with their enchantments, and brought up -frogs upon the land of Egypt. - -8:8 Then Pharaoh called for Moses and Aaron, and said, Intreat the -LORD, that he may take away the frogs from me, and from my people; and -I will let the people go, that they may do sacrifice unto the LORD. - -8:9 And Moses said unto Pharaoh, Glory over me: when shall I intreat -for thee, and for thy servants, and for thy people, to destroy the -frogs from thee and thy houses, that they may remain in the river -only? 8:10 And he said, To morrow. And he said, Be it according to -thy word: that thou mayest know that there is none like unto the LORD -our God. - -8:11 And the frogs shall depart from thee, and from thy houses, and -from thy servants, and from thy people; they shall remain in the river -only. - -8:12 And Moses and Aaron went out from Pharaoh: and Moses cried unto -the LORD because of the frogs which he had brought against Pharaoh. - -8:13 And the LORD did according to the word of Moses; and the frogs -died out of the houses, out of the villages, and out of the fields. - -8:14 And they gathered them together upon heaps: and the land stank. - -8:15 But when Pharaoh saw that there was respite, he hardened his -heart, and hearkened not unto them; as the LORD had said. - -8:16 And the LORD said unto Moses, Say unto Aaron, Stretch out thy -rod, and smite the dust of the land, that it may become lice -throughout all the land of Egypt. - -8:17 And they did so; for Aaron stretched out his hand with his rod, -and smote the dust of the earth, and it became lice in man, and in -beast; all the dust of the land became lice throughout all the land of -Egypt. - -8:18 And the magicians did so with their enchantments to bring forth -lice, but they could not: so there were lice upon man, and upon beast. - -8:19 Then the magicians said unto Pharaoh, This is the finger of God: -and Pharaoh's heart was hardened, and he hearkened not unto them; as -the LORD had said. - -8:20 And the LORD said unto Moses, Rise up early in the morning, and -stand before Pharaoh; lo, he cometh forth to the water; and say unto -him, Thus saith the LORD, Let my people go, that they may serve me. - -8:21 Else, if thou wilt not let my people go, behold, I will send -swarms of flies upon thee, and upon thy servants, and upon thy people, -and into thy houses: and the houses of the Egyptians shall be full of -swarms of flies, and also the ground whereon they are. - -8:22 And I will sever in that day the land of Goshen, in which my -people dwell, that no swarms of flies shall be there; to the end thou -mayest know that I am the LORD in the midst of the earth. - -8:23 And I will put a division between my people and thy people: to -morrow shall this sign be. - -8:24 And the LORD did so; and there came a grievous swarm of flies -into the house of Pharaoh, and into his servants' houses, and into all -the land of Egypt: the land was corrupted by reason of the swarm of -flies. - -8:25 And Pharaoh called for Moses and for Aaron, and said, Go ye, -sacrifice to your God in the land. - -8:26 And Moses said, It is not meet so to do; for we shall sacrifice -the abomination of the Egyptians to the LORD our God: lo, shall we -sacrifice the abomination of the Egyptians before their eyes, and will -they not stone us? 8:27 We will go three days' journey into the -wilderness, and sacrifice to the LORD our God, as he shall command us. - -8:28 And Pharaoh said, I will let you go, that ye may sacrifice to the -LORD your God in the wilderness; only ye shall not go very far away: -intreat for me. - -8:29 And Moses said, Behold, I go out from thee, and I will intreat -the LORD that the swarms of flies may depart from Pharaoh, from his -servants, and from his people, to morrow: but let not Pharaoh deal -deceitfully any more in not letting the people go to sacrifice to the -LORD. - -8:30 And Moses went out from Pharaoh, and intreated the LORD. - -8:31 And the LORD did according to the word of Moses; and he removed -the swarms of flies from Pharaoh, from his servants, and from his -people; there remained not one. - -8:32 And Pharaoh hardened his heart at this time also, neither would -he let the people go. - -9:1 Then the LORD said unto Moses, Go in unto Pharaoh, and tell him, -Thus saith the LORD God of the Hebrews, Let my people go, that they -may serve me. - -9:2 For if thou refuse to let them go, and wilt hold them still, 9:3 -Behold, the hand of the LORD is upon thy cattle which is in the field, -upon the horses, upon the asses, upon the camels, upon the oxen, and -upon the sheep: there shall be a very grievous murrain. - -9:4 And the LORD shall sever between the cattle of Israel and the -cattle of Egypt: and there shall nothing die of all that is the -children's of Israel. - -9:5 And the LORD appointed a set time, saying, To morrow the LORD -shall do this thing in the land. - -9:6 And the LORD did that thing on the morrow, and all the cattle of -Egypt died: but of the cattle of the children of Israel died not one. - -9:7 And Pharaoh sent, and, behold, there was not one of the cattle of -the Israelites dead. And the heart of Pharaoh was hardened, and he did -not let the people go. - -9:8 And the LORD said unto Moses and unto Aaron, Take to you handfuls -of ashes of the furnace, and let Moses sprinkle it toward the heaven -in the sight of Pharaoh. - -9:9 And it shall become small dust in all the land of Egypt, and shall -be a boil breaking forth with blains upon man, and upon beast, -throughout all the land of Egypt. - -9:10 And they took ashes of the furnace, and stood before Pharaoh; and -Moses sprinkled it up toward heaven; and it became a boil breaking -forth with blains upon man, and upon beast. - -9:11 And the magicians could not stand before Moses because of the -boils; for the boil was upon the magicians, and upon all the -Egyptians. - -9:12 And the LORD hardened the heart of Pharaoh, and he hearkened not -unto them; as the LORD had spoken unto Moses. - -9:13 And the LORD said unto Moses, Rise up early in the morning, and -stand before Pharaoh, and say unto him, Thus saith the LORD God of the -Hebrews, Let my people go, that they may serve me. - -9:14 For I will at this time send all my plagues upon thine heart, and -upon thy servants, and upon thy people; that thou mayest know that -there is none like me in all the earth. - -9:15 For now I will stretch out my hand, that I may smite thee and thy -people with pestilence; and thou shalt be cut off from the earth. - -9:16 And in very deed for this cause have I raised thee up, for to -shew in thee my power; and that my name may be declared throughout all -the earth. - -9:17 As yet exaltest thou thyself against my people, that thou wilt -not let them go? 9:18 Behold, to morrow about this time I will cause -it to rain a very grievous hail, such as hath not been in Egypt since -the foundation thereof even until now. - -9:19 Send therefore now, and gather thy cattle, and all that thou hast -in the field; for upon every man and beast which shall be found in the -field, and shall not be brought home, the hail shall come down upon -them, and they shall die. - -9:20 He that feared the word of the LORD among the servants of Pharaoh -made his servants and his cattle flee into the houses: 9:21 And he -that regarded not the word of the LORD left his servants and his -cattle in the field. - -9:22 And the LORD said unto Moses, Stretch forth thine hand toward -heaven, that there may be hail in all the land of Egypt, upon man, and -upon beast, and upon every herb of the field, throughout the land of -Egypt. - -9:23 And Moses stretched forth his rod toward heaven: and the LORD -sent thunder and hail, and the fire ran along upon the ground; and the -LORD rained hail upon the land of Egypt. - -9:24 So there was hail, and fire mingled with the hail, very grievous, -such as there was none like it in all the land of Egypt since it -became a nation. - -9:25 And the hail smote throughout all the land of Egypt all that was -in the field, both man and beast; and the hail smote every herb of the -field, and brake every tree of the field. - -9:26 Only in the land of Goshen, where the children of Israel were, -was there no hail. - -9:27 And Pharaoh sent, and called for Moses and Aaron, and said unto -them, I have sinned this time: the LORD is righteous, and I and my -people are wicked. - -9:28 Intreat the LORD (for it is enough) that there be no more mighty -thunderings and hail; and I will let you go, and ye shall stay no -longer. - -9:29 And Moses said unto him, As soon as I am gone out of the city, I -will spread abroad my hands unto the LORD; and the thunder shall -cease, neither shall there be any more hail; that thou mayest know how -that the earth is the LORD's. - -9:30 But as for thee and thy servants, I know that ye will not yet -fear the LORD God. - -9:31 And the flax and the barley was smitten: for the barley was in -the ear, and the flax was bolled. - -9:32 But the wheat and the rie were not smitten: for they were not -grown up. - -9:33 And Moses went out of the city from Pharaoh, and spread abroad -his hands unto the LORD: and the thunders and hail ceased, and the -rain was not poured upon the earth. - -9:34 And when Pharaoh saw that the rain and the hail and the thunders -were ceased, he sinned yet more, and hardened his heart, he and his -servants. - -9:35 And the heart of Pharaoh was hardened, neither would he let the -children of Israel go; as the LORD had spoken by Moses. - -10:1 And the LORD said unto Moses, Go in unto Pharaoh: for I have -hardened his heart, and the heart of his servants, that I might shew -these my signs before him: 10:2 And that thou mayest tell in the ears -of thy son, and of thy son's son, what things I have wrought in Egypt, -and my signs which I have done among them; that ye may know how that I -am the LORD. - -10:3 And Moses and Aaron came in unto Pharaoh, and said unto him, Thus -saith the LORD God of the Hebrews, How long wilt thou refuse to humble -thyself before me? let my people go, that they may serve me. - -10:4 Else, if thou refuse to let my people go, behold, to morrow will -I bring the locusts into thy coast: 10:5 And they shall cover the face -of the earth, that one cannot be able to see the earth: and they shall -eat the residue of that which is escaped, which remaineth unto you -from the hail, and shall eat every tree which groweth for you out of -the field: 10:6 And they shall fill thy houses, and the houses of all -thy servants, and the houses of all the Egyptians; which neither thy -fathers, nor thy fathers' fathers have seen, since the day that they -were upon the earth unto this day. And he turned himself, and went out -from Pharaoh. - -10:7 And Pharaoh's servants said unto him, How long shall this man be -a snare unto us? let the men go, that they may serve the LORD their -God: knowest thou not yet that Egypt is destroyed? 10:8 And Moses and -Aaron were brought again unto Pharaoh: and he said unto them, Go, -serve the LORD your God: but who are they that shall go? 10:9 And -Moses said, We will go with our young and with our old, with our sons -and with our daughters, with our flocks and with our herds will we go; -for we must hold a feast unto the LORD. - -10:10 And he said unto them, Let the LORD be so with you, as I will -let you go, and your little ones: look to it; for evil is before you. - -10:11 Not so: go now ye that are men, and serve the LORD; for that ye -did desire. And they were driven out from Pharaoh's presence. - -10:12 And the LORD said unto Moses, Stretch out thine hand over the -land of Egypt for the locusts, that they may come up upon the land of -Egypt, and eat every herb of the land, even all that the hail hath -left. - -10:13 And Moses stretched forth his rod over the land of Egypt, and -the LORD brought an east wind upon the land all that day, and all that -night; and when it was morning, the east wind brought the locusts. - -10:14 And the locust went up over all the land of Egypt, and rested in -all the coasts of Egypt: very grievous were they; before them there -were no such locusts as they, neither after them shall be such. - -10:15 For they covered the face of the whole earth, so that the land -was darkened; and they did eat every herb of the land, and all the -fruit of the trees which the hail had left: and there remained not any -green thing in the trees, or in the herbs of the field, through all -the land of Egypt. - -10:16 Then Pharaoh called for Moses and Aaron in haste; and he said, I -have sinned against the LORD your God, and against you. - -10:17 Now therefore forgive, I pray thee, my sin only this once, and -intreat the LORD your God, that he may take away from me this death -only. - -10:18 And he went out from Pharaoh, and intreated the LORD. - -10:19 And the LORD turned a mighty strong west wind, which took away -the locusts, and cast them into the Red sea; there remained not one -locust in all the coasts of Egypt. - -10:20 But the LORD hardened Pharaoh's heart, so that he would not let -the children of Israel go. - -10:21 And the LORD said unto Moses, Stretch out thine hand toward -heaven, that there may be darkness over the land of Egypt, even -darkness which may be felt. - -10:22 And Moses stretched forth his hand toward heaven; and there was -a thick darkness in all the land of Egypt three days: 10:23 They saw -not one another, neither rose any from his place for three days: but -all the children of Israel had light in their dwellings. - -10:24 And Pharaoh called unto Moses, and said, Go ye, serve the LORD; -only let your flocks and your herds be stayed: let your little ones -also go with you. - -10:25 And Moses said, Thou must give us also sacrifices and burnt -offerings, that we may sacrifice unto the LORD our God. - -10:26 Our cattle also shall go with us; there shall not an hoof be -left behind; for thereof must we take to serve the LORD our God; and -we know not with what we must serve the LORD, until we come thither. - -10:27 But the LORD hardened Pharaoh's heart, and he would not let them -go. - -10:28 And Pharaoh said unto him, Get thee from me, take heed to -thyself, see my face no more; for in that day thou seest my face thou -shalt die. - -10:29 And Moses said, Thou hast spoken well, I will see thy face again -no more. - -11:1 And the LORD said unto Moses, Yet will I bring one plague more -upon Pharaoh, and upon Egypt; afterwards he will let you go hence: -when he shall let you go, he shall surely thrust you out hence -altogether. - -11:2 Speak now in the ears of the people, and let every man borrow of -his neighbour, and every woman of her neighbour, jewels of silver and -jewels of gold. - -11:3 And the LORD gave the people favour in the sight of the -Egyptians. - -Moreover the man Moses was very great in the land of Egypt, in the -sight of Pharaoh's servants, and in the sight of the people. - -11:4 And Moses said, Thus saith the LORD, About midnight will I go out -into the midst of Egypt: 11:5 And all the firstborn in the land of -Egypt shall die, from the first born of Pharaoh that sitteth upon his -throne, even unto the firstborn of the maidservant that is behind the -mill; and all the firstborn of beasts. - -11:6 And there shall be a great cry throughout all the land of Egypt, -such as there was none like it, nor shall be like it any more. - -11:7 But against any of the children of Israel shall not a dog move -his tongue, against man or beast: that ye may know how that the LORD -doth put a difference between the Egyptians and Israel. - -11:8 And all these thy servants shall come down unto me, and bow down -themselves unto me, saying, Get thee out, and all the people that -follow thee: and after that I will go out. And he went out from -Pharaoh in a great anger. - -11:9 And the LORD said unto Moses, Pharaoh shall not hearken unto you; -that my wonders may be multiplied in the land of Egypt. - -11:10 And Moses and Aaron did all these wonders before Pharaoh: and -the LORD hardened Pharaoh's heart, so that he would not let the -children of Israel go out of his land. - -12:1 And the LORD spake unto Moses and Aaron in the land of Egypt -saying, 12:2 This month shall be unto you the beginning of months: it -shall be the first month of the year to you. - -12:3 Speak ye unto all the congregation of Israel, saying, In the -tenth day of this month they shall take to them every man a lamb, -according to the house of their fathers, a lamb for an house: 12:4 And -if the household be too little for the lamb, let him and his neighbour -next unto his house take it according to the number of the souls; -every man according to his eating shall make your count for the lamb. - -12:5 Your lamb shall be without blemish, a male of the first year: ye -shall take it out from the sheep, or from the goats: 12:6 And ye shall -keep it up until the fourteenth day of the same month: and the whole -assembly of the congregation of Israel shall kill it in the evening. - -12:7 And they shall take of the blood, and strike it on the two side -posts and on the upper door post of the houses, wherein they shall eat -it. - -12:8 And they shall eat the flesh in that night, roast with fire, and -unleavened bread; and with bitter herbs they shall eat it. - -12:9 Eat not of it raw, nor sodden at all with water, but roast with -fire; his head with his legs, and with the purtenance thereof. - -12:10 And ye shall let nothing of it remain until the morning; and -that which remaineth of it until the morning ye shall burn with fire. - -12:11 And thus shall ye eat it; with your loins girded, your shoes on -your feet, and your staff in your hand; and ye shall eat it in haste: -it is the LORD's passover. - -12:12 For I will pass through the land of Egypt this night, and will -smite all the firstborn in the land of Egypt, both man and beast; and -against all the gods of Egypt I will execute judgment: I am the LORD. - -12:13 And the blood shall be to you for a token upon the houses where -ye are: and when I see the blood, I will pass over you, and the plague -shall not be upon you to destroy you, when I smite the land of Egypt. - -12:14 And this day shall be unto you for a memorial; and ye shall keep -it a feast to the LORD throughout your generations; ye shall keep it a -feast by an ordinance for ever. - -12:15 Seven days shall ye eat unleavened bread; even the first day ye -shall put away leaven out of your houses: for whosoever eateth -leavened bread from the first day until the seventh day, that soul -shall be cut off from Israel. - -12:16 And in the first day there shall be an holy convocation, and in -the seventh day there shall be an holy convocation to you; no manner -of work shall be done in them, save that which every man must eat, -that only may be done of you. - -12:17 And ye shall observe the feast of unleavened bread; for in this -selfsame day have I brought your armies out of the land of Egypt: -therefore shall ye observe this day in your generations by an -ordinance for ever. - -12:18 In the first month, on the fourteenth day of the month at even, -ye shall eat unleavened bread, until the one and twentieth day of the -month at even. - -12:19 Seven days shall there be no leaven found in your houses: for -whosoever eateth that which is leavened, even that soul shall be cut -off from the congregation of Israel, whether he be a stranger, or born -in the land. - -12:20 Ye shall eat nothing leavened; in all your habitations shall ye -eat unleavened bread. - -12:21 Then Moses called for all the elders of Israel, and said unto -them, Draw out and take you a lamb according to your families, and -kill the passover. - -12:22 And ye shall take a bunch of hyssop, and dip it in the blood -that is in the bason, and strike the lintel and the two side posts -with the blood that is in the bason; and none of you shall go out at -the door of his house until the morning. - -12:23 For the LORD will pass through to smite the Egyptians; and when -he seeth the blood upon the lintel, and on the two side posts, the -LORD will pass over the door, and will not suffer the destroyer to -come in unto your houses to smite you. - -12:24 And ye shall observe this thing for an ordinance to thee and to -thy sons for ever. - -12:25 And it shall come to pass, when ye be come to the land which the -LORD will give you, according as he hath promised, that ye shall keep -this service. - -12:26 And it shall come to pass, when your children shall say unto -you, What mean ye by this service? 12:27 That ye shall say, It is the -sacrifice of the LORD's passover, who passed over the houses of the -children of Israel in Egypt, when he smote the Egyptians, and -delivered our houses. And the people bowed the head and worshipped. - -12:28 And the children of Israel went away, and did as the LORD had -commanded Moses and Aaron, so did they. - -12:29 And it came to pass, that at midnight the LORD smote all the -firstborn in the land of Egypt, from the firstborn of Pharaoh that sat -on his throne unto the firstborn of the captive that was in the -dungeon; and all the firstborn of cattle. - -12:30 And Pharaoh rose up in the night, he, and all his servants, and -all the Egyptians; and there was a great cry in Egypt; for there was -not a house where there was not one dead. - -12:31 And he called for Moses and Aaron by night, and said, Rise up, -and get you forth from among my people, both ye and the children of -Israel; and go, serve the LORD, as ye have said. - -12:32 Also take your flocks and your herds, as ye have said, and be -gone; and bless me also. - -12:33 And the Egyptians were urgent upon the people, that they might -send them out of the land in haste; for they said, We be all dead men. - -12:34 And the people took their dough before it was leavened, their -kneadingtroughs being bound up in their clothes upon their shoulders. - -12:35 And the children of Israel did according to the word of Moses; -and they borrowed of the Egyptians jewels of silver, and jewels of -gold, and raiment: 12:36 And the LORD gave the people favour in the -sight of the Egyptians, so that they lent unto them such things as -they required. And they spoiled the Egyptians. - -12:37 And the children of Israel journeyed from Rameses to Succoth, -about six hundred thousand on foot that were men, beside children. - -12:38 And a mixed multitude went up also with them; and flocks, and -herds, even very much cattle. - -12:39 And they baked unleavened cakes of the dough which they brought -forth out of Egypt, for it was not leavened; because they were thrust -out of Egypt, and could not tarry, neither had they prepared for -themselves any victual. - -12:40 Now the sojourning of the children of Israel, who dwelt in -Egypt, was four hundred and thirty years. - -12:41 And it came to pass at the end of the four hundred and thirty -years, even the selfsame day it came to pass, that all the hosts of -the LORD went out from the land of Egypt. - -12:42 It is a night to be much observed unto the LORD for bringing -them out from the land of Egypt: this is that night of the LORD to be -observed of all the children of Israel in their generations. - -12:43 And the LORD said unto Moses and Aaron, This is the ordinance of -the passover: There shall no stranger eat thereof: 12:44 But every -man's servant that is bought for money, when thou hast circumcised -him, then shall he eat thereof. - -12:45 A foreigner and an hired servant shall not eat thereof. - -12:46 In one house shall it be eaten; thou shalt not carry forth ought -of the flesh abroad out of the house; neither shall ye break a bone -thereof. - -12:47 All the congregation of Israel shall keep it. - -12:48 And when a stranger shall sojourn with thee, and will keep the -passover to the LORD, let all his males be circumcised, and then let -him come near and keep it; and he shall be as one that is born in the -land: for no uncircumcised person shall eat thereof. - -12:49 One law shall be to him that is homeborn, and unto the stranger -that sojourneth among you. - -12:50 Thus did all the children of Israel; as the LORD commanded Moses -and Aaron, so did they. - -12:51 And it came to pass the selfsame day, that the LORD did bring -the children of Israel out of the land of Egypt by their armies. - -13:1 And the LORD spake unto Moses, saying, 13:2 Sanctify unto me all -the firstborn, whatsoever openeth the womb among the children of -Israel, both of man and of beast: it is mine. - -13:3 And Moses said unto the people, Remember this day, in which ye -came out from Egypt, out of the house of bondage; for by strength of -hand the LORD brought you out from this place: there shall no leavened -bread be eaten. - -13:4 This day came ye out in the month Abib. - -13:5 And it shall be when the LORD shall bring thee into the land of -the Canaanites, and the Hittites, and the Amorites, and the Hivites, -and the Jebusites, which he sware unto thy fathers to give thee, a -land flowing with milk and honey, that thou shalt keep this service in -this month. - -13:6 Seven days thou shalt eat unleavened bread, and in the seventh -day shall be a feast to the LORD. - -13:7 Unleavened bread shall be eaten seven days; and there shall no -leavened bread be seen with thee, neither shall there be leaven seen -with thee in all thy quarters. - -13:8 And thou shalt shew thy son in that day, saying, This is done -because of that which the LORD did unto me when I came forth out of -Egypt. - -13:9 And it shall be for a sign unto thee upon thine hand, and for a -memorial between thine eyes, that the LORD's law may be in thy mouth: -for with a strong hand hath the LORD brought thee out of Egypt. - -13:10 Thou shalt therefore keep this ordinance in his season from year -to year. - -13:11 And it shall be when the LORD shall bring thee into the land of -the Canaanites, as he sware unto thee and to thy fathers, and shall -give it thee, 13:12 That thou shalt set apart unto the LORD all that -openeth the matrix, and every firstling that cometh of a beast which -thou hast; the males shall be the LORD's. - -13:13 And every firstling of an ass thou shalt redeem with a lamb; and -if thou wilt not redeem it, then thou shalt break his neck: and all -the firstborn of man among thy children shalt thou redeem. - -13:14 And it shall be when thy son asketh thee in time to come, -saying, What is this? that thou shalt say unto him, By strength of -hand the LORD brought us out from Egypt, from the house of bondage: -13:15 And it came to pass, when Pharaoh would hardly let us go, that -the LORD slew all the firstborn in the land of Egypt, both the -firstborn of man, and the firstborn of beast: therefore I sacrifice to -the LORD all that openeth the matrix, being males; but all the -firstborn of my children I redeem. - -13:16 And it shall be for a token upon thine hand, and for frontlets -between thine eyes: for by strength of hand the LORD brought us forth -out of Egypt. - -13:17 And it came to pass, when Pharaoh had let the people go, that -God led them not through the way of the land of the Philistines, -although that was near; for God said, Lest peradventure the people -repent when they see war, and they return to Egypt: 13:18 But God led -the people about, through the way of the wilderness of the Red sea: -and the children of Israel went up harnessed out of the land of Egypt. - -13:19 And Moses took the bones of Joseph with him: for he had straitly -sworn the children of Israel, saying, God will surely visit you; and -ye shall carry up my bones away hence with you. - -13:20 And they took their journey from Succoth, and encamped in Etham, -in the edge of the wilderness. - -13:21 And the LORD went before them by day in a pillar of a cloud, to -lead them the way; and by night in a pillar of fire, to give them -light; to go by day and night: 13:22 He took not away the pillar of -the cloud by day, nor the pillar of fire by night, from before the -people. - -14:1 And the LORD spake unto Moses, saying, 14:2 Speak unto the -children of Israel, that they turn and encamp before Pihahiroth, -between Migdol and the sea, over against Baalzephon: before it shall -ye encamp by the sea. - -14:3 For Pharaoh will say of the children of Israel, They are -entangled in the land, the wilderness hath shut them in. - -14:4 And I will harden Pharaoh's heart, that he shall follow after -them; and I will be honoured upon Pharaoh, and upon all his host; that -the Egyptians may know that I am the LORD. And they did so. - -14:5 And it was told the king of Egypt that the people fled: and the -heart of Pharaoh and of his servants was turned against the people, -and they said, Why have we done this, that we have let Israel go from -serving us? 14:6 And he made ready his chariot, and took his people -with him: 14:7 And he took six hundred chosen chariots, and all the -chariots of Egypt, and captains over every one of them. - -14:8 And the LORD hardened the heart of Pharaoh king of Egypt, and he -pursued after the children of Israel: and the children of Israel went -out with an high hand. - -14:9 But the Egyptians pursued after them, all the horses and chariots -of Pharaoh, and his horsemen, and his army, and overtook them -encamping by the sea, beside Pihahiroth, before Baalzephon. - -14:10 And when Pharaoh drew nigh, the children of Israel lifted up -their eyes, and, behold, the Egyptians marched after them; and they -were sore afraid: and the children of Israel cried out unto the LORD. - -14:11 And they said unto Moses, Because there were no graves in Egypt, -hast thou taken us away to die in the wilderness? wherefore hast thou -dealt thus with us, to carry us forth out of Egypt? 14:12 Is not this -the word that we did tell thee in Egypt, saying, Let us alone, that we -may serve the Egyptians? For it had been better for us to serve the -Egyptians, than that we should die in the wilderness. - -14:13 And Moses said unto the people, Fear ye not, stand still, and -see the salvation of the LORD, which he will shew to you to day: for -the Egyptians whom ye have seen to day, ye shall see them again no -more for ever. - -14:14 The LORD shall fight for you, and ye shall hold your peace. - -14:15 And the LORD said unto Moses, Wherefore criest thou unto me? -speak unto the children of Israel, that they go forward: 14:16 But -lift thou up thy rod, and stretch out thine hand over the sea, and -divide it: and the children of Israel shall go on dry ground through -the midst of the sea. - -14:17 And I, behold, I will harden the hearts of the Egyptians, and -they shall follow them: and I will get me honour upon Pharaoh, and -upon all his host, upon his chariots, and upon his horsemen. - -14:18 And the Egyptians shall know that I am the LORD, when I have -gotten me honour upon Pharaoh, upon his chariots, and upon his -horsemen. - -14:19 And the angel of God, which went before the camp of Israel, -removed and went behind them; and the pillar of the cloud went from -before their face, and stood behind them: 14:20 And it came between -the camp of the Egyptians and the camp of Israel; and it was a cloud -and darkness to them, but it gave light by night to these: so that the -one came not near the other all the night. - -14:21 And Moses stretched out his hand over the sea; and the LORD -caused the sea to go back by a strong east wind all that night, and -made the sea dry land, and the waters were divided. - -14:22 And the children of Israel went into the midst of the sea upon -the dry ground: and the waters were a wall unto them on their right -hand, and on their left. - -14:23 And the Egyptians pursued, and went in after them to the midst -of the sea, even all Pharaoh's horses, his chariots, and his horsemen. - -14:24 And it came to pass, that in the morning watch the LORD looked -unto the host of the Egyptians through the pillar of fire and of the -cloud, and troubled the host of the Egyptians, 14:25 And took off -their chariot wheels, that they drave them heavily: so that the -Egyptians said, Let us flee from the face of Israel; for the LORD -fighteth for them against the Egyptians. - -14:26 And the LORD said unto Moses, Stretch out thine hand over the -sea, that the waters may come again upon the Egyptians, upon their -chariots, and upon their horsemen. - -14:27 And Moses stretched forth his hand over the sea, and the sea -returned to his strength when the morning appeared; and the Egyptians -fled against it; and the LORD overthrew the Egyptians in the midst of -the sea. - -14:28 And the waters returned, and covered the chariots, and the -horsemen, and all the host of Pharaoh that came into the sea after -them; there remained not so much as one of them. - -14:29 But the children of Israel walked upon dry land in the midst of -the sea; and the waters were a wall unto them on their right hand, and -on their left. - -14:30 Thus the LORD saved Israel that day out of the hand of the -Egyptians; and Israel saw the Egyptians dead upon the sea shore. - -14:31 And Israel saw that great work which the LORD did upon the -Egyptians: and the people feared the LORD, and believed the LORD, and -his servant Moses. - -15:1 Then sang Moses and the children of Israel this song unto the -LORD, and spake, saying, I will sing unto the LORD, for he hath -triumphed gloriously: the horse and his rider hath he thrown into the -sea. - -15:2 The LORD is my strength and song, and he is become my salvation: -he is my God, and I will prepare him an habitation; my father's God, -and I will exalt him. - -15:3 The LORD is a man of war: the LORD is his name. - -15:4 Pharaoh's chariots and his host hath he cast into the sea: his -chosen captains also are drowned in the Red sea. - -15:5 The depths have covered them: they sank into the bottom as a -stone. - -15:6 Thy right hand, O LORD, is become glorious in power: thy right -hand, O LORD, hath dashed in pieces the enemy. - -15:7 And in the greatness of thine excellency thou hast overthrown -them that rose up against thee: thou sentest forth thy wrath, which -consumed them as stubble. - -15:8 And with the blast of thy nostrils the waters were gathered -together, the floods stood upright as an heap, and the depths were -congealed in the heart of the sea. - -15:9 The enemy said, I will pursue, I will overtake, I will divide the -spoil; my lust shall be satisfied upon them; I will draw my sword, my -hand shall destroy them. - -15:10 Thou didst blow with thy wind, the sea covered them: they sank -as lead in the mighty waters. - -15:11 Who is like unto thee, O LORD, among the gods? who is like thee, -glorious in holiness, fearful in praises, doing wonders? 15:12 Thou -stretchedst out thy right hand, the earth swallowed them. - -15:13 Thou in thy mercy hast led forth the people which thou hast -redeemed: thou hast guided them in thy strength unto thy holy -habitation. - -15:14 The people shall hear, and be afraid: sorrow shall take hold on -the inhabitants of Palestina. - -15:15 Then the dukes of Edom shall be amazed; the mighty men of Moab, -trembling shall take hold upon them; all the inhabitants of Canaan -shall melt away. - -15:16 Fear and dread shall fall upon them; by the greatness of thine -arm they shall be as still as a stone; till thy people pass over, O -LORD, till the people pass over, which thou hast purchased. - -15:17 Thou shalt bring them in, and plant them in the mountain of -thine inheritance, in the place, O LORD, which thou hast made for thee -to dwell in, in the Sanctuary, O LORD, which thy hands have -established. - -15:18 The LORD shall reign for ever and ever. - -15:19 For the horse of Pharaoh went in with his chariots and with his -horsemen into the sea, and the LORD brought again the waters of the -sea upon them; but the children of Israel went on dry land in the -midst of the sea. - -15:20 And Miriam the prophetess, the sister of Aaron, took a timbrel -in her hand; and all the women went out after her with timbrels and -with dances. - -15:21 And Miriam answered them, Sing ye to the LORD, for he hath -triumphed gloriously; the horse and his rider hath he thrown into the -sea. - -15:22 So Moses brought Israel from the Red sea, and they went out into -the wilderness of Shur; and they went three days in the wilderness, -and found no water. - -15:23 And when they came to Marah, they could not drink of the waters -of Marah, for they were bitter: therefore the name of it was called -Marah. - -15:24 And the people murmured against Moses, saying, What shall we -drink? 15:25 And he cried unto the LORD; and the LORD shewed him a -tree, which when he had cast into the waters, the waters were made -sweet: there he made for them a statute and an ordinance, and there he -proved them, 15:26 And said, If thou wilt diligently hearken to the -voice of the LORD thy God, and wilt do that which is right in his -sight, and wilt give ear to his commandments, and keep all his -statutes, I will put none of these diseases upon thee, which I have -brought upon the Egyptians: for I am the LORD that healeth thee. - -15:27 And they came to Elim, where were twelve wells of water, and -threescore and ten palm trees: and they encamped there by the waters. - -16:1 And they took their journey from Elim, and all the congregation -of the children of Israel came unto the wilderness of Sin, which is -between Elim and Sinai, on the fifteenth day of the second month after -their departing out of the land of Egypt. - -16:2 And the whole congregation of the children of Israel murmured -against Moses and Aaron in the wilderness: 16:3 And the children of -Israel said unto them, Would to God we had died by the hand of the -LORD in the land of Egypt, when we sat by the flesh pots, and when we -did eat bread to the full; for ye have brought us forth into this -wilderness, to kill this whole assembly with hunger. - -16:4 Then said the LORD unto Moses, Behold, I will rain bread from -heaven for you; and the people shall go out and gather a certain rate -every day, that I may prove them, whether they will walk in my law, or -no. - -16:5 And it shall come to pass, that on the sixth day they shall -prepare that which they bring in; and it shall be twice as much as -they gather daily. - -16:6 And Moses and Aaron said unto all the children of Israel, At -even, then ye shall know that the LORD hath brought you out from the -land of Egypt: 16:7 And in the morning, then ye shall see the glory of -the LORD; for that he heareth your murmurings against the LORD: and -what are we, that ye murmur against us? 16:8 And Moses said, This -shall be, when the LORD shall give you in the evening flesh to eat, -and in the morning bread to the full; for that the LORD heareth your -murmurings which ye murmur against him: and what are we? your -murmurings are not against us, but against the LORD. - -16:9 And Moses spake unto Aaron, Say unto all the congregation of the -children of Israel, Come near before the LORD: for he hath heard your -murmurings. - -16:10 And it came to pass, as Aaron spake unto the whole congregation -of the children of Israel, that they looked toward the wilderness, -and, behold, the glory of the LORD appeared in the cloud. - -16:11 And the LORD spake unto Moses, saying, 16:12 I have heard the -murmurings of the children of Israel: speak unto them, saying, At even -ye shall eat flesh, and in the morning ye shall be filled with bread; -and ye shall know that I am the LORD your God. - -16:13 And it came to pass, that at even the quails came up, and -covered the camp: and in the morning the dew lay round about the host. - -16:14 And when the dew that lay was gone up, behold, upon the face of -the wilderness there lay a small round thing, as small as the hoar -frost on the ground. - -16:15 And when the children of Israel saw it, they said one to -another, It is manna: for they wist not what it was. And Moses said -unto them, This is the bread which the LORD hath given you to eat. - -16:16 This is the thing which the LORD hath commanded, Gather of it -every man according to his eating, an omer for every man, according to -the number of your persons; take ye every man for them which are in -his tents. - -16:17 And the children of Israel did so, and gathered, some more, some -less. - -16:18 And when they did mete it with an omer, he that gathered much -had nothing over, and he that gathered little had no lack; they -gathered every man according to his eating. - -16:19 And Moses said, Let no man leave of it till the morning. - -16:20 Notwithstanding they hearkened not unto Moses; but some of them -left of it until the morning, and it bred worms, and stank: and Moses -was wroth with them. - -16:21 And they gathered it every morning, every man according to his -eating: and when the sun waxed hot, it melted. - -16:22 And it came to pass, that on the sixth day they gathered twice -as much bread, two omers for one man: and all the rulers of the -congregation came and told Moses. - -16:23 And he said unto them, This is that which the LORD hath said, To -morrow is the rest of the holy sabbath unto the LORD: bake that which -ye will bake to day, and seethe that ye will seethe; and that which -remaineth over lay up for you to be kept until the morning. - -16:24 And they laid it up till the morning, as Moses bade: and it did -not stink, neither was there any worm therein. - -16:25 And Moses said, Eat that to day; for to day is a sabbath unto -the LORD: to day ye shall not find it in the field. - -16:26 Six days ye shall gather it; but on the seventh day, which is -the sabbath, in it there shall be none. - -16:27 And it came to pass, that there went out some of the people on -the seventh day for to gather, and they found none. - -16:28 And the LORD said unto Moses, How long refuse ye to keep my -commandments and my laws? 16:29 See, for that the LORD hath given you -the sabbath, therefore he giveth you on the sixth day the bread of two -days; abide ye every man in his place, let no man go out of his place -on the seventh day. - -16:30 So the people rested on the seventh day. - -16:31 And the house of Israel called the name thereof Manna: and it -was like coriander seed, white; and the taste of it was like wafers -made with honey. - -16:32 And Moses said, This is the thing which the LORD commandeth, -Fill an omer of it to be kept for your generations; that they may see -the bread wherewith I have fed you in the wilderness, when I brought -you forth from the land of Egypt. - -16:33 And Moses said unto Aaron, Take a pot, and put an omer full of -manna therein, and lay it up before the LORD, to be kept for your -generations. - -16:34 As the LORD commanded Moses, so Aaron laid it up before the -Testimony, to be kept. - -16:35 And the children of Israel did eat manna forty years, until they -came to a land inhabited; they did eat manna, until they came unto the -borders of the land of Canaan. - -16:36 Now an omer is the tenth part of an ephah. - -17:1 And all the congregation of the children of Israel journeyed from -the wilderness of Sin, after their journeys, according to the -commandment of the LORD, and pitched in Rephidim: and there was no -water for the people to drink. - -17:2 Wherefore the people did chide with Moses, and said, Give us -water that we may drink. And Moses said unto them, Why chide ye with -me? wherefore do ye tempt the LORD? 17:3 And the people thirsted -there for water; and the people murmured against Moses, and said, -Wherefore is this that thou hast brought us up out of Egypt, to kill -us and our children and our cattle with thirst? 17:4 And Moses cried -unto the LORD, saying, What shall I do unto this people? they be -almost ready to stone me. - -17:5 And the LORD said unto Moses, Go on before the people, and take -with thee of the elders of Israel; and thy rod, wherewith thou smotest -the river, take in thine hand, and go. - -17:6 Behold, I will stand before thee there upon the rock in Horeb; -and thou shalt smite the rock, and there shall come water out of it, -that the people may drink. And Moses did so in the sight of the elders -of Israel. - -17:7 And he called the name of the place Massah, and Meribah, because -of the chiding of the children of Israel, and because they tempted the -LORD, saying, Is the LORD among us, or not? 17:8 Then came Amalek, -and fought with Israel in Rephidim. - -17:9 And Moses said unto Joshua, Choose us out men, and go out, fight -with Amalek: to morrow I will stand on the top of the hill with the -rod of God in mine hand. - -17:10 So Joshua did as Moses had said to him, and fought with Amalek: -and Moses, Aaron, and Hur went up to the top of the hill. - -17:11 And it came to pass, when Moses held up his hand, that Israel -prevailed: and when he let down his hand, Amalek prevailed. - -17:12 But Moses hands were heavy; and they took a stone, and put it -under him, and he sat thereon; and Aaron and Hur stayed up his hands, -the one on the one side, and the other on the other side; and his -hands were steady until the going down of the sun. - -17:13 And Joshua discomfited Amalek and his people with the edge of -the sword. - -17:14 And the LORD said unto Moses, Write this for a memorial in a -book, and rehearse it in the ears of Joshua: for I will utterly put -out the remembrance of Amalek from under heaven. - -17:15 And Moses built an altar, and called the name of it -Jehovahnissi: 17:16 For he said, Because the LORD hath sworn that the -LORD will have war with Amalek from generation to generation. - -18:1 When Jethro, the priest of Midian, Moses' father in law, heard of -all that God had done for Moses, and for Israel his people, and that -the LORD had brought Israel out of Egypt; 18:2 Then Jethro, Moses' -father in law, took Zipporah, Moses' wife, after he had sent her back, -18:3 And her two sons; of which the name of the one was Gershom; for -he said, I have been an alien in a strange land: 18:4 And the name of -the other was Eliezer; for the God of my father, said he, was mine -help, and delivered me from the sword of Pharaoh: 18:5 And Jethro, -Moses' father in law, came with his sons and his wife unto Moses into -the wilderness, where he encamped at the mount of God: 18:6 And he -said unto Moses, I thy father in law Jethro am come unto thee, and thy -wife, and her two sons with her. - -18:7 And Moses went out to meet his father in law, and did obeisance, -and kissed him; and they asked each other of their welfare; and they -came into the tent. - -18:8 And Moses told his father in law all that the LORD had done unto -Pharaoh and to the Egyptians for Israel's sake, and all the travail -that had come upon them by the way, and how the LORD delivered them. - -18:9 And Jethro rejoiced for all the goodness which the LORD had done -to Israel, whom he had delivered out of the hand of the Egyptians. - -18:10 And Jethro said, Blessed be the LORD, who hath delivered you out -of the hand of the Egyptians, and out of the hand of Pharaoh, who hath -delivered the people from under the hand of the Egyptians. - -18:11 Now I know that the LORD is greater than all gods: for in the -thing wherein they dealt proudly he was above them. - -18:12 And Jethro, Moses' father in law, took a burnt offering and -sacrifices for God: and Aaron came, and all the elders of Israel, to -eat bread with Moses' father in law before God. - -18:13 And it came to pass on the morrow, that Moses sat to judge the -people: and the people stood by Moses from the morning unto the -evening. - -18:14 And when Moses' father in law saw all that he did to the people, -he said, What is this thing that thou doest to the people? why sittest -thou thyself alone, and all the people stand by thee from morning unto -even? 18:15 And Moses said unto his father in law, Because the people -come unto me to enquire of God: 18:16 When they have a matter, they -come unto me; and I judge between one and another, and I do make them -know the statutes of God, and his laws. - -18:17 And Moses' father in law said unto him, The thing that thou -doest is not good. - -18:18 Thou wilt surely wear away, both thou, and this people that is -with thee: for this thing is too heavy for thee; thou art not able to -perform it thyself alone. - -18:19 Hearken now unto my voice, I will give thee counsel, and God -shall be with thee: Be thou for the people to God-ward, that thou -mayest bring the causes unto God: 18:20 And thou shalt teach them -ordinances and laws, and shalt shew them the way wherein they must -walk, and the work that they must do. - -18:21 Moreover thou shalt provide out of all the people able men, such -as fear God, men of truth, hating covetousness; and place such over -them, to be rulers of thousands, and rulers of hundreds, rulers of -fifties, and rulers of tens: 18:22 And let them judge the people at -all seasons: and it shall be, that every great matter they shall bring -unto thee, but every small matter they shall judge: so shall it be -easier for thyself, and they shall bear the burden with thee. - -18:23 If thou shalt do this thing, and God command thee so, then thou -shalt be able to endure, and all this people shall also go to their -place in peace. - -18:24 So Moses hearkened to the voice of his father in law, and did -all that he had said. - -18:25 And Moses chose able men out of all Israel, and made them heads -over the people, rulers of thousands, rulers of hundreds, rulers of -fifties, and rulers of tens. - -18:26 And they judged the people at all seasons: the hard causes they -brought unto Moses, but every small matter they judged themselves. - -18:27 And Moses let his father in law depart; and he went his way into -his own land. - -19:1 In the third month, when the children of Israel were gone forth -out of the land of Egypt, the same day came they into the wilderness -of Sinai. - -19:2 For they were departed from Rephidim, and were come to the desert -of Sinai, and had pitched in the wilderness; and there Israel camped -before the mount. - -19:3 And Moses went up unto God, and the LORD called unto him out of -the mountain, saying, Thus shalt thou say to the house of Jacob, and -tell the children of Israel; 19:4 Ye have seen what I did unto the -Egyptians, and how I bare you on eagles' wings, and brought you unto -myself. - -19:5 Now therefore, if ye will obey my voice indeed, and keep my -covenant, then ye shall be a peculiar treasure unto me above all -people: for all the earth is mine: 19:6 And ye shall be unto me a -kingdom of priests, and an holy nation. - -These are the words which thou shalt speak unto the children of -Israel. - -19:7 And Moses came and called for the elders of the people, and laid -before their faces all these words which the LORD commanded him. - -19:8 And all the people answered together, and said, All that the LORD -hath spoken we will do. And Moses returned the words of the people -unto the LORD. - -19:9 And the LORD said unto Moses, Lo, I come unto thee in a thick -cloud, that the people may hear when I speak with thee, and believe -thee for ever. - -And Moses told the words of the people unto the LORD. - -19:10 And the LORD said unto Moses, Go unto the people, and sanctify -them to day and to morrow, and let them wash their clothes, 19:11 And -be ready against the third day: for the third day the LORD will come -down in the sight of all the people upon mount Sinai. - -19:12 And thou shalt set bounds unto the people round about, saying, -Take heed to yourselves, that ye go not up into the mount, or touch -the border of it: whosoever toucheth the mount shall be surely put to -death: 19:13 There shall not an hand touch it, but he shall surely be -stoned, or shot through; whether it be beast or man, it shall not -live: when the trumpet soundeth long, they shall come up to the mount. - -19:14 And Moses went down from the mount unto the people, and -sanctified the people; and they washed their clothes. - -19:15 And he said unto the people, Be ready against the third day: -come not at your wives. - -19:16 And it came to pass on the third day in the morning, that there -were thunders and lightnings, and a thick cloud upon the mount, and -the voice of the trumpet exceeding loud; so that all the people that -was in the camp trembled. - -19:17 And Moses brought forth the people out of the camp to meet with -God; and they stood at the nether part of the mount. - -19:18 And mount Sinai was altogether on a smoke, because the LORD -descended upon it in fire: and the smoke thereof ascended as the smoke -of a furnace, and the whole mount quaked greatly. - -19:19 And when the voice of the trumpet sounded long, and waxed louder -and louder, Moses spake, and God answered him by a voice. - -19:20 And the LORD came down upon mount Sinai, on the top of the -mount: and the LORD called Moses up to the top of the mount; and Moses -went up. - -19:21 And the LORD said unto Moses, Go down, charge the people, lest -they break through unto the LORD to gaze, and many of them perish. - -19:22 And let the priests also, which come near to the LORD, sanctify -themselves, lest the LORD break forth upon them. - -19:23 And Moses said unto the LORD, The people cannot come up to mount -Sinai: for thou chargedst us, saying, Set bounds about the mount, and -sanctify it. - -19:24 And the LORD said unto him, Away, get thee down, and thou shalt -come up, thou, and Aaron with thee: but let not the priests and the -people break through to come up unto the LORD, lest he break forth -upon them. - -19:25 So Moses went down unto the people, and spake unto them. - -20:1 And God spake all these words, saying, 20:2 I am the LORD thy -God, which have brought thee out of the land of Egypt, out of the -house of bondage. - -20:3 Thou shalt have no other gods before me. - -20:4 Thou shalt not make unto thee any graven image, or any likeness -of any thing that is in heaven above, or that is in the earth beneath, -or that is in the water under the earth. - -20:5 Thou shalt not bow down thyself to them, nor serve them: for I -the LORD thy God am a jealous God, visiting the iniquity of the -fathers upon the children unto the third and fourth generation of them -that hate me; 20:6 And shewing mercy unto thousands of them that love -me, and keep my commandments. - -20:7 Thou shalt not take the name of the LORD thy God in vain; for the -LORD will not hold him guiltless that taketh his name in vain. - -20:8 Remember the sabbath day, to keep it holy. - -20:9 Six days shalt thou labour, and do all thy work: 20:10 But the -seventh day is the sabbath of the LORD thy God: in it thou shalt not -do any work, thou, nor thy son, nor thy daughter, thy manservant, nor -thy maidservant, nor thy cattle, nor thy stranger that is within thy -gates: 20:11 For in six days the LORD made heaven and earth, the sea, -and all that in them is, and rested the seventh day: wherefore the -LORD blessed the sabbath day, and hallowed it. - -20:12 Honour thy father and thy mother: that thy days may be long upon -the land which the LORD thy God giveth thee. - -20:13 Thou shalt not kill. - -20:14 Thou shalt not commit adultery. - -20:15 Thou shalt not steal. - -20:16 Thou shalt not bear false witness against thy neighbour. - -20:17 Thou shalt not covet thy neighbour's house, thou shalt not covet -thy neighbour's wife, nor his manservant, nor his maidservant, nor his -ox, nor his ass, nor any thing that is thy neighbour's. - -20:18 And all the people saw the thunderings, and the lightnings, and -the noise of the trumpet, and the mountain smoking: and when the -people saw it, they removed, and stood afar off. - -20:19 And they said unto Moses, Speak thou with us, and we will hear: -but let not God speak with us, lest we die. - -20:20 And Moses said unto the people, Fear not: for God is come to -prove you, and that his fear may be before your faces, that ye sin -not. - -20:21 And the people stood afar off, and Moses drew near unto the -thick darkness where God was. - -20:22 And the LORD said unto Moses, Thus thou shalt say unto the -children of Israel, Ye have seen that I have talked with you from -heaven. - -20:23 Ye shall not make with me gods of silver, neither shall ye make -unto you gods of gold. - -20:24 An altar of earth thou shalt make unto me, and shalt sacrifice -thereon thy burnt offerings, and thy peace offerings, thy sheep, and -thine oxen: in all places where I record my name I will come unto -thee, and I will bless thee. - -20:25 And if thou wilt make me an altar of stone, thou shalt not build -it of hewn stone: for if thou lift up thy tool upon it, thou hast -polluted it. - -20:26 Neither shalt thou go up by steps unto mine altar, that thy -nakedness be not discovered thereon. - -21:1 Now these are the judgments which thou shalt set before them. - -21:2 If thou buy an Hebrew servant, six years he shall serve: and in -the seventh he shall go out free for nothing. - -21:3 If he came in by himself, he shall go out by himself: if he were -married, then his wife shall go out with him. - -21:4 If his master have given him a wife, and she have born him sons -or daughters; the wife and her children shall be her master's, and he -shall go out by himself. - -21:5 And if the servant shall plainly say, I love my master, my wife, -and my children; I will not go out free: 21:6 Then his master shall -bring him unto the judges; he shall also bring him to the door, or -unto the door post; and his master shall bore his ear through with an -aul; and he shall serve him for ever. - -21:7 And if a man sell his daughter to be a maidservant, she shall not -go out as the menservants do. - -21:8 If she please not her master, who hath betrothed her to himself, -then shall he let her be redeemed: to sell her unto a strange nation -he shall have no power, seeing he hath dealt deceitfully with her. - -21:9 And if he have betrothed her unto his son, he shall deal with her -after the manner of daughters. - -21:10 If he take him another wife; her food, her raiment, and her duty -of marriage, shall he not diminish. - -21:11 And if he do not these three unto her, then shall she go out -free without money. - -21:12 He that smiteth a man, so that he die, shall be surely put to -death. - -21:13 And if a man lie not in wait, but God deliver him into his hand; -then I will appoint thee a place whither he shall flee. - -21:14 But if a man come presumptuously upon his neighbour, to slay him -with guile; thou shalt take him from mine altar, that he may die. - -21:15 And he that smiteth his father, or his mother, shall be surely -put to death. - -21:16 And he that stealeth a man, and selleth him, or if he be found -in his hand, he shall surely be put to death. - -21:17 And he that curseth his father, or his mother, shall surely be -put to death. - -21:18 And if men strive together, and one smite another with a stone, -or with his fist, and he die not, but keepeth his bed: 21:19 If he -rise again, and walk abroad upon his staff, then shall he that smote -him be quit: only he shall pay for the loss of his time, and shall -cause him to be thoroughly healed. - -21:20 And if a man smite his servant, or his maid, with a rod, and he -die under his hand; he shall be surely punished. - -21:21 Notwithstanding, if he continue a day or two, he shall not be -punished: for he is his money. - -21:22 If men strive, and hurt a woman with child, so that her fruit -depart from her, and yet no mischief follow: he shall be surely -punished, according as the woman's husband will lay upon him; and he -shall pay as the judges determine. - -21:23 And if any mischief follow, then thou shalt give life for life, -21:24 Eye for eye, tooth for tooth, hand for hand, foot for foot, -21:25 Burning for burning, wound for wound, stripe for stripe. - -21:26 And if a man smite the eye of his servant, or the eye of his -maid, that it perish; he shall let him go free for his eye's sake. - -21:27 And if he smite out his manservant's tooth, or his maidservant's -tooth; he shall let him go free for his tooth's sake. - -21:28 If an ox gore a man or a woman, that they die: then the ox shall -be surely stoned, and his flesh shall not be eaten; but the owner of -the ox shall be quit. - -21:29 But if the ox were wont to push with his horn in time past, and -it hath been testified to his owner, and he hath not kept him in, but -that he hath killed a man or a woman; the ox shall be stoned, and his -owner also shall be put to death. - -21:30 If there be laid on him a sum of money, then he shall give for -the ransom of his life whatsoever is laid upon him. - -21:31 Whether he have gored a son, or have gored a daughter, according -to this judgment shall it be done unto him. - -21:32 If the ox shall push a manservant or a maidservant; he shall -give unto their master thirty shekels of silver, and the ox shall be -stoned. - -21:33 And if a man shall open a pit, or if a man shall dig a pit, and -not cover it, and an ox or an ass fall therein; 21:34 The owner of the -pit shall make it good, and give money unto the owner of them; and the -dead beast shall be his. - -21:35 And if one man's ox hurt another's, that he die; then they shall -sell the live ox, and divide the money of it; and the dead ox also -they shall divide. - -21:36 Or if it be known that the ox hath used to push in time past, -and his owner hath not kept him in; he shall surely pay ox for ox; and -the dead shall be his own. - -22:1 If a man shall steal an ox, or a sheep, and kill it, or sell it; -he shall restore five oxen for an ox, and four sheep for a sheep. - -22:2 If a thief be found breaking up, and be smitten that he die, -there shall no blood be shed for him. - -22:3 If the sun be risen upon him, there shall be blood shed for him; -for he should make full restitution; if he have nothing, then he shall -be sold for his theft. - -22:4 If the theft be certainly found in his hand alive, whether it be -ox, or ass, or sheep; he shall restore double. - -22:5 If a man shall cause a field or vineyard to be eaten, and shall -put in his beast, and shall feed in another man's field; of the best -of his own field, and of the best of his own vineyard, shall he make -restitution. - -22:6 If fire break out, and catch in thorns, so that the stacks of -corn, or the standing corn, or the field, be consumed therewith; he -that kindled the fire shall surely make restitution. - -22:7 If a man shall deliver unto his neighbour money or stuff to keep, -and it be stolen out of the man's house; if the thief be found, let -him pay double. - -22:8 If the thief be not found, then the master of the house shall be -brought unto the judges, to see whether he have put his hand unto his -neighbour's goods. - -22:9 For all manner of trespass, whether it be for ox, for ass, for -sheep, for raiment, or for any manner of lost thing which another -challengeth to be his, the cause of both parties shall come before the -judges; and whom the judges shall condemn, he shall pay double unto -his neighbour. - -22:10 If a man deliver unto his neighbour an ass, or an ox, or a -sheep, or any beast, to keep; and it die, or be hurt, or driven away, -no man seeing it: 22:11 Then shall an oath of the LORD be between them -both, that he hath not put his hand unto his neighbour's goods; and -the owner of it shall accept thereof, and he shall not make it good. - -22:12 And if it be stolen from him, he shall make restitution unto the -owner thereof. - -22:13 If it be torn in pieces, then let him bring it for witness, and -he shall not make good that which was torn. - -22:14 And if a man borrow ought of his neighbour, and it be hurt, or -die, the owner thereof being not with it, he shall surely make it -good. - -22:15 But if the owner thereof be with it, he shall not make it good: -if it be an hired thing, it came for his hire. - -22:16 And if a man entice a maid that is not betrothed, and lie with -her, he shall surely endow her to be his wife. - -22:17 If her father utterly refuse to give her unto him, he shall pay -money according to the dowry of virgins. - -22:18 Thou shalt not suffer a witch to live. - -22:19 Whosoever lieth with a beast shall surely be put to death. - -22:20 He that sacrificeth unto any god, save unto the LORD only, he -shall be utterly destroyed. - -22:21 Thou shalt neither vex a stranger, nor oppress him: for ye were -strangers in the land of Egypt. - -22:22 Ye shall not afflict any widow, or fatherless child. - -22:23 If thou afflict them in any wise, and they cry at all unto me, I -will surely hear their cry; 22:24 And my wrath shall wax hot, and I -will kill you with the sword; and your wives shall be widows, and your -children fatherless. - -22:25 If thou lend money to any of my people that is poor by thee, -thou shalt not be to him as an usurer, neither shalt thou lay upon him -usury. - -22:26 If thou at all take thy neighbour's raiment to pledge, thou -shalt deliver it unto him by that the sun goeth down: 22:27 For that -is his covering only, it is his raiment for his skin: wherein shall he -sleep? and it shall come to pass, when he crieth unto me, that I will -hear; for I am gracious. - -22:28 Thou shalt not revile the gods, nor curse the ruler of thy -people. - -22:29 Thou shalt not delay to offer the first of thy ripe fruits, and -of thy liquors: the firstborn of thy sons shalt thou give unto me. - -22:30 Likewise shalt thou do with thine oxen, and with thy sheep: -seven days it shall be with his dam; on the eighth day thou shalt give -it me. - -22:31 And ye shall be holy men unto me: neither shall ye eat any flesh -that is torn of beasts in the field; ye shall cast it to the dogs. - -23:1 Thou shalt not raise a false report: put not thine hand with the -wicked to be an unrighteous witness. - -23:2 Thou shalt not follow a multitude to do evil; neither shalt thou -speak in a cause to decline after many to wrest judgment: 23:3 Neither -shalt thou countenance a poor man in his cause. - -23:4 If thou meet thine enemy's ox or his ass going astray, thou shalt -surely bring it back to him again. - -23:5 If thou see the ass of him that hateth thee lying under his -burden, and wouldest forbear to help him, thou shalt surely help with -him. - -23:6 Thou shalt not wrest the judgment of thy poor in his cause. - -23:7 Keep thee far from a false matter; and the innocent and righteous -slay thou not: for I will not justify the wicked. - -23:8 And thou shalt take no gift: for the gift blindeth the wise, and -perverteth the words of the righteous. - -23:9 Also thou shalt not oppress a stranger: for ye know the heart of -a stranger, seeing ye were strangers in the land of Egypt. - -23:10 And six years thou shalt sow thy land, and shalt gather in the -fruits thereof: 23:11 But the seventh year thou shalt let it rest and -lie still; that the poor of thy people may eat: and what they leave -the beasts of the field shall eat. In like manner thou shalt deal with -thy vineyard, and with thy oliveyard. - -23:12 Six days thou shalt do thy work, and on the seventh day thou -shalt rest: that thine ox and thine ass may rest, and the son of thy -handmaid, and the stranger, may be refreshed. - -23:13 And in all things that I have said unto you be circumspect: and -make no mention of the name of other gods, neither let it be heard out -of thy mouth. - -23:14 Three times thou shalt keep a feast unto me in the year. - -23:15 Thou shalt keep the feast of unleavened bread: (thou shalt eat -unleavened bread seven days, as I commanded thee, in the time -appointed of the month Abib; for in it thou camest out from Egypt: and -none shall appear before me empty:) 23:16 And the feast of harvest, -the firstfruits of thy labours, which thou hast sown in the field: and -the feast of ingathering, which is in the end of the year, when thou -hast gathered in thy labours out of the field. - -23:17 Three items in the year all thy males shall appear before the -LORD God. - -23:18 Thou shalt not offer the blood of my sacrifice with leavened -bread; neither shall the fat of my sacrifice remain until the morning. - -23:19 The first of the firstfruits of thy land thou shalt bring into -the house of the LORD thy God. Thou shalt not seethe a kid in his -mother's milk. - -23:20 Behold, I send an Angel before thee, to keep thee in the way, -and to bring thee into the place which I have prepared. - -23:21 Beware of him, and obey his voice, provoke him not; for he will -not pardon your transgressions: for my name is in him. - -23:22 But if thou shalt indeed obey his voice, and do all that I -speak; then I will be an enemy unto thine enemies, and an adversary -unto thine adversaries. - -23:23 For mine Angel shall go before thee, and bring thee in unto the -Amorites, and the Hittites, and the Perizzites, and the Canaanites, -the Hivites, and the Jebusites: and I will cut them off. - -23:24 Thou shalt not bow down to their gods, nor serve them, nor do -after their works: but thou shalt utterly overthrow them, and quite -break down their images. - -23:25 And ye shall serve the LORD your God, and he shall bless thy -bread, and thy water; and I will take sickness away from the midst of -thee. - -23:26 There shall nothing cast their young, nor be barren, in thy -land: the number of thy days I will fulfil. - -23:27 I will send my fear before thee, and will destroy all the people -to whom thou shalt come, and I will make all thine enemies turn their -backs unto thee. - -23:28 And I will send hornets before thee, which shall drive out the -Hivite, the Canaanite, and the Hittite, from before thee. - -23:29 I will not drive them out from before thee in one year; lest the -land become desolate, and the beast of the field multiply against -thee. - -23:30 By little and little I will drive them out from before thee, -until thou be increased, and inherit the land. - -23:31 And I will set thy bounds from the Red sea even unto the sea of -the Philistines, and from the desert unto the river: for I will -deliver the inhabitants of the land into your hand; and thou shalt -drive them out before thee. - -23:32 Thou shalt make no covenant with them, nor with their gods. - -23:33 They shall not dwell in thy land, lest they make thee sin -against me: for if thou serve their gods, it will surely be a snare -unto thee. - -24:1 And he said unto Moses, Come up unto the LORD, thou, and Aaron, -Nadab, and Abihu, and seventy of the elders of Israel; and worship ye -afar off. - -24:2 And Moses alone shall come near the LORD: but they shall not come -nigh; neither shall the people go up with him. - -24:3 And Moses came and told the people all the words of the LORD, and -all the judgments: and all the people answered with one voice, and -said, All the words which the LORD hath said will we do. - -24:4 And Moses wrote all the words of the LORD, and rose up early in -the morning, and builded an altar under the hill, and twelve pillars, -according to the twelve tribes of Israel. - -24:5 And he sent young men of the children of Israel, which offered -burnt offerings, and sacrificed peace offerings of oxen unto the LORD. - -24:6 And Moses took half of the blood, and put it in basons; and half -of the blood he sprinkled on the altar. - -24:7 And he took the book of the covenant, and read in the audience of -the people: and they said, All that the LORD hath said will we do, and -be obedient. - -24:8 And Moses took the blood, and sprinkled it on the people, and -said, Behold the blood of the covenant, which the LORD hath made with -you concerning all these words. - -24:9 Then went up Moses, and Aaron, Nadab, and Abihu, and seventy of -the elders of Israel: 24:10 And they saw the God of Israel: and there -was under his feet as it were a paved work of a sapphire stone, and as -it were the body of heaven in his clearness. - -24:11 And upon the nobles of the children of Israel he laid not his -hand: also they saw God, and did eat and drink. - -24:12 And the LORD said unto Moses, Come up to me into the mount, and -be there: and I will give thee tables of stone, and a law, and -commandments which I have written; that thou mayest teach them. - -24:13 And Moses rose up, and his minister Joshua: and Moses went up -into the mount of God. - -24:14 And he said unto the elders, Tarry ye here for us, until we come -again unto you: and, behold, Aaron and Hur are with you: if any man -have any matters to do, let him come unto them. - -24:15 And Moses went up into the mount, and a cloud covered the mount. - -24:16 And the glory of the LORD abode upon mount Sinai, and the cloud -covered it six days: and the seventh day he called unto Moses out of -the midst of the cloud. - -24:17 And the sight of the glory of the LORD was like devouring fire -on the top of the mount in the eyes of the children of Israel. - -24:18 And Moses went into the midst of the cloud, and gat him up into -the mount: and Moses was in the mount forty days and forty nights. - -25:1 And the LORD spake unto Moses, saying, 25:2 Speak unto the -children of Israel, that they bring me an offering: of every man that -giveth it willingly with his heart ye shall take my offering. - -25:3 And this is the offering which ye shall take of them; gold, and -silver, and brass, 25:4 And blue, and purple, and scarlet, and fine -linen, and goats' hair, 25:5 And rams' skins dyed red, and badgers' -skins, and shittim wood, 25:6 Oil for the light, spices for anointing -oil, and for sweet incense, 25:7 Onyx stones, and stones to be set in -the ephod, and in the breastplate. - -25:8 And let them make me a sanctuary; that I may dwell among them. - -25:9 According to all that I shew thee, after the pattern of the -tabernacle, and the pattern of all the instruments thereof, even so -shall ye make it. - -25:10 And they shall make an ark of shittim wood: two cubits and a -half shall be the length thereof, and a cubit and a half the breadth -thereof, and a cubit and a half the height thereof. - -25:11 And thou shalt overlay it with pure gold, within and without -shalt thou overlay it, and shalt make upon it a crown of gold round -about. - -25:12 And thou shalt cast four rings of gold for it, and put them in -the four corners thereof; and two rings shall be in the one side of -it, and two rings in the other side of it. - -25:13 And thou shalt make staves of shittim wood, and overlay them -with gold. - -25:14 And thou shalt put the staves into the rings by the sides of the -ark, that the ark may be borne with them. - -25:15 The staves shall be in the rings of the ark: they shall not be -taken from it. - -25:16 And thou shalt put into the ark the testimony which I shall give -thee. - -25:17 And thou shalt make a mercy seat of pure gold: two cubits and a -half shall be the length thereof, and a cubit and a half the breadth -thereof. - -25:18 And thou shalt make two cherubims of gold, of beaten work shalt -thou make them, in the two ends of the mercy seat. - -25:19 And make one cherub on the one end, and the other cherub on the -other end: even of the mercy seat shall ye make the cherubims on the -two ends thereof. - -25:20 And the cherubims shall stretch forth their wings on high, -covering the mercy seat with their wings, and their faces shall look -one to another; toward the mercy seat shall the faces of the cherubims -be. - -25:21 And thou shalt put the mercy seat above upon the ark; and in the -ark thou shalt put the testimony that I shall give thee. - -25:22 And there I will meet with thee, and I will commune with thee -from above the mercy seat, from between the two cherubims which are -upon the ark of the testimony, of all things which I will give thee in -commandment unto the children of Israel. - -25:23 Thou shalt also make a table of shittim wood: two cubits shall -be the length thereof, and a cubit the breadth thereof, and a cubit -and a half the height thereof. - -25:24 And thou shalt overlay it with pure gold, and make thereto a -crown of gold round about. - -25:25 And thou shalt make unto it a border of an hand breadth round -about, and thou shalt make a golden crown to the border thereof round -about. - -25:26 And thou shalt make for it four rings of gold, and put the rings -in the four corners that are on the four feet thereof. - -25:27 Over against the border shall the rings be for places of the -staves to bear the table. - -25:28 And thou shalt make the staves of shittim wood, and overlay them -with gold, that the table may be borne with them. - -25:29 And thou shalt make the dishes thereof, and spoons thereof, and -covers thereof, and bowls thereof, to cover withal: of pure gold shalt -thou make them. - -25:30 And thou shalt set upon the table shewbread before me alway. - -25:31 And thou shalt make a candlestick of pure gold: of beaten work -shall the candlestick be made: his shaft, and his branches, his bowls, -his knops, and his flowers, shall be of the same. - -25:32 And six branches shall come out of the sides of it; three -branches of the candlestick out of the one side, and three branches of -the candlestick out of the other side: 25:33 Three bowls made like -unto almonds, with a knop and a flower in one branch; and three bowls -made like almonds in the other branch, with a knop and a flower: so in -the six branches that come out of the candlestick. - -25:34 And in the candlesticks shall be four bowls made like unto -almonds, with their knops and their flowers. - -25:35 And there shall be a knop under two branches of the same, and a -knop under two branches of the same, and a knop under two branches of -the same, according to the six branches that proceed out of the -candlestick. - -25:36 Their knops and their branches shall be of the same: all it -shall be one beaten work of pure gold. - -25:37 And thou shalt make the seven lamps thereof: and they shall -light the lamps thereof, that they may give light over against it. - -25:38 And the tongs thereof, and the snuffdishes thereof, shall be of -pure gold. - -25:39 Of a talent of pure gold shall he make it, with all these -vessels. - -25:40 And look that thou make them after their pattern, which was -shewed thee in the mount. - -26:1 Moreover thou shalt make the tabernacle with ten curtains of fine -twined linen, and blue, and purple, and scarlet: with cherubims of -cunning work shalt thou make them. - -26:2 The length of one curtain shall be eight and twenty cubits, and -the breadth of one curtain four cubits: and every one of the curtains -shall have one measure. - -26:3 The five curtains shall be coupled together one to another; and -other five curtains shall be coupled one to another. - -26:4 And thou shalt make loops of blue upon the edge of the one -curtain from the selvedge in the coupling; and likewise shalt thou -make in the uttermost edge of another curtain, in the coupling of the -second. - -26:5 Fifty loops shalt thou make in the one curtain, and fifty loops -shalt thou make in the edge of the curtain that is in the coupling of -the second; that the loops may take hold one of another. - -26:6 And thou shalt make fifty taches of gold, and couple the curtains -together with the taches: and it shall be one tabernacle. - -26:7 And thou shalt make curtains of goats' hair to be a covering upon -the tabernacle: eleven curtains shalt thou make. - -26:8 The length of one curtain shall be thirty cubits, and the breadth -of one curtain four cubits: and the eleven curtains shall be all of -one measure. - -26:9 And thou shalt couple five curtains by themselves, and six -curtains by themselves, and shalt double the sixth curtain in the -forefront of the tabernacle. - -26:10 And thou shalt make fifty loops on the edge of the one curtain -that is outmost in the coupling, and fifty loops in the edge of the -curtain which coupleth the second. - -26:11 And thou shalt make fifty taches of brass, and put the taches -into the loops, and couple the tent together, that it may be one. - -26:12 And the remnant that remaineth of the curtains of the tent, the -half curtain that remaineth, shall hang over the backside of the -tabernacle. - -26:13 And a cubit on the one side, and a cubit on the other side of -that which remaineth in the length of the curtains of the tent, it -shall hang over the sides of the tabernacle on this side and on that -side, to cover it. - -26:14 And thou shalt make a covering for the tent of rams' skins dyed -red, and a covering above of badgers' skins. - -26:15 And thou shalt make boards for the tabernacle of shittim wood -standing up. - -26:16 Ten cubits shall be the length of a board, and a cubit and a -half shall be the breadth of one board. - -26:17 Two tenons shall there be in one board, set in order one against -another: thus shalt thou make for all the boards of the tabernacle. - -26:18 And thou shalt make the boards for the tabernacle, twenty boards -on the south side southward. - -26:19 And thou shalt make forty sockets of silver under the twenty -boards; two sockets under one board for his two tenons, and two -sockets under another board for his two tenons. - -26:20 And for the second side of the tabernacle on the north side -there shall be twenty boards: 26:21 And their forty sockets of silver; -two sockets under one board, and two sockets under another board. - -26:22 And for the sides of the tabernacle westward thou shalt make six -boards. - -26:23 And two boards shalt thou make for the corners of the tabernacle -in the two sides. - -26:24 And they shall be coupled together beneath, and they shall be -coupled together above the head of it unto one ring: thus shall it be -for them both; they shall be for the two corners. - -26:25 And they shall be eight boards, and their sockets of silver, -sixteen sockets; two sockets under one board, and two sockets under -another board. - -26:26 And thou shalt make bars of shittim wood; five for the boards of -the one side of the tabernacle, 26:27 And five bars for the boards of -the other side of the tabernacle, and five bars for the boards of the -side of the tabernacle, for the two sides westward. - -26:28 And the middle bar in the midst of the boards shall reach from -end to end. - -26:29 And thou shalt overlay the boards with gold, and make their -rings of gold for places for the bars: and thou shalt overlay the bars -with gold. - -26:30 And thou shalt rear up the tabernacle according to the fashion -thereof which was shewed thee in the mount. - -26:31 And thou shalt make a vail of blue, and purple, and scarlet, and -fine twined linen of cunning work: with cherubims shall it be made: -26:32 And thou shalt hang it upon four pillars of shittim wood -overlaid with gold: their hooks shall be of gold, upon the four -sockets of silver. - -26:33 And thou shalt hang up the vail under the taches, that thou -mayest bring in thither within the vail the ark of the testimony: and -the vail shall divide unto you between the holy place and the most -holy. - -26:34 And thou shalt put the mercy seat upon the ark of the testimony -in the most holy place. - -26:35 And thou shalt set the table without the vail, and the -candlestick over against the table on the side of the tabernacle -toward the south: and thou shalt put the table on the north side. - -26:36 And thou shalt make an hanging for the door of the tent, of -blue, and purple, and scarlet, and fine twined linen, wrought with -needlework. - -26:37 And thou shalt make for the hanging five pillars of shittim -wood, and overlay them with gold, and their hooks shall be of gold: -and thou shalt cast five sockets of brass for them. - -27:1 And thou shalt make an altar of shittim wood, five cubits long, -and five cubits broad; the altar shall be foursquare: and the height -thereof shall be three cubits. - -27:2 And thou shalt make the horns of it upon the four corners -thereof: his horns shall be of the same: and thou shalt overlay it -with brass. - -27:3 And thou shalt make his pans to receive his ashes, and his -shovels, and his basons, and his fleshhooks, and his firepans: all the -vessels thereof thou shalt make of brass. - -27:4 And thou shalt make for it a grate of network of brass; and upon -the net shalt thou make four brasen rings in the four corners thereof. - -27:5 And thou shalt put it under the compass of the altar beneath, -that the net may be even to the midst of the altar. - -27:6 And thou shalt make staves for the altar, staves of shittim wood, -and overlay them with brass. - -27:7 And the staves shall be put into the rings, and the staves shall -be upon the two sides of the altar, to bear it. - -27:8 Hollow with boards shalt thou make it: as it was shewed thee in -the mount, so shall they make it. - -27:9 And thou shalt make the court of the tabernacle: for the south -side southward there shall be hangings for the court of fine twined -linen of an hundred cubits long for one side: 27:10 And the twenty -pillars thereof and their twenty sockets shall be of brass; the hooks -of the pillars and their fillets shall be of silver. - -27:11 And likewise for the north side in length there shall be -hangings of an hundred cubits long, and his twenty pillars and their -twenty sockets of brass; the hooks of the pillars and their fillets of -silver. - -27:12 And for the breadth of the court on the west side shall be -hangings of fifty cubits: their pillars ten, and their sockets ten. - -27:13 And the breadth of the court on the east side eastward shall be -fifty cubits. - -27:14 The hangings of one side of the gate shall be fifteen cubits: -their pillars three, and their sockets three. - -27:15 And on the other side shall be hangings fifteen cubits: their -pillars three, and their sockets three. - -27:16 And for the gate of the court shall be an hanging of twenty -cubits, of blue, and purple, and scarlet, and fine twined linen, -wrought with needlework: and their pillars shall be four, and their -sockets four. - -27:17 All the pillars round about the court shall be filleted with -silver; their hooks shall be of silver, and their sockets of brass. - -27:18 The length of the court shall be an hundred cubits, and the -breadth fifty every where, and the height five cubits of fine twined -linen, and their sockets of brass. - -27:19 All the vessels of the tabernacle in all the service thereof, -and all the pins thereof, and all the pins of the court, shall be of -brass. - -27:20 And thou shalt command the children of Israel, that they bring -thee pure oil olive beaten for the light, to cause the lamp to burn -always. - -27:21 In the tabernacle of the congregation without the vail, which is -before the testimony, Aaron and his sons shall order it from evening -to morning before the LORD: it shall be a statute for ever unto their -generations on the behalf of the children of Israel. - -28:1 And take thou unto thee Aaron thy brother, and his sons with him, -from among the children of Israel, that he may minister unto me in the -priest's office, even Aaron, Nadab and Abihu, Eleazar and Ithamar, -Aaron's sons. - -28:2 And thou shalt make holy garments for Aaron thy brother for glory -and for beauty. - -28:3 And thou shalt speak unto all that are wise hearted, whom I have -filled with the spirit of wisdom, that they may make Aaron's garments -to consecrate him, that he may minister unto me in the priest's -office. - -28:4 And these are the garments which they shall make; a breastplate, -and an ephod, and a robe, and a broidered coat, a mitre, and a girdle: -and they shall make holy garments for Aaron thy brother, and his sons, -that he may minister unto me in the priest's office. - -28:5 And they shall take gold, and blue, and purple, and scarlet, and -fine linen. - -28:6 And they shall make the ephod of gold, of blue, and of purple, of -scarlet, and fine twined linen, with cunning work. - -28:7 It shall have the two shoulderpieces thereof joined at the two -edges thereof; and so it shall be joined together. - -28:8 And the curious girdle of the ephod, which is upon it, shall be -of the same, according to the work thereof; even of gold, of blue, and -purple, and scarlet, and fine twined linen. - -28:9 And thou shalt take two onyx stones, and grave on them the names -of the children of Israel: 28:10 Six of their names on one stone, and -the other six names of the rest on the other stone, according to their -birth. - -28:11 With the work of an engraver in stone, like the engravings of a -signet, shalt thou engrave the two stones with the names of the -children of Israel: thou shalt make them to be set in ouches of gold. - -28:12 And thou shalt put the two stones upon the shoulders of the -ephod for stones of memorial unto the children of Israel: and Aaron -shall bear their names before the LORD upon his two shoulders for a -memorial. - -28:13 And thou shalt make ouches of gold; 28:14 And two chains of pure -gold at the ends; of wreathen work shalt thou make them, and fasten -the wreathen chains to the ouches. - -28:15 And thou shalt make the breastplate of judgment with cunning -work; after the work of the ephod thou shalt make it; of gold, of -blue, and of purple, and of scarlet, and of fine twined linen, shalt -thou make it. - -28:16 Foursquare it shall be being doubled; a span shall be the length -thereof, and a span shall be the breadth thereof. - -28:17 And thou shalt set in it settings of stones, even four rows of -stones: the first row shall be a sardius, a topaz, and a carbuncle: -this shall be the first row. - -28:18 And the second row shall be an emerald, a sapphire, and a -diamond. - -28:19 And the third row a ligure, an agate, and an amethyst. - -28:20 And the fourth row a beryl, and an onyx, and a jasper: they -shall be set in gold in their inclosings. - -28:21 And the stones shall be with the names of the children of -Israel, twelve, according to their names, like the engravings of a -signet; every one with his name shall they be according to the twelve -tribes. - -28:22 And thou shalt make upon the breastplate chains at the ends of -wreathen work of pure gold. - -28:23 And thou shalt make upon the breastplate two rings of gold, and -shalt put the two rings on the two ends of the breastplate. - -28:24 And thou shalt put the two wreathen chains of gold in the two -rings which are on the ends of the breastplate. - -28:25 And the other two ends of the two wreathen chains thou shalt -fasten in the two ouches, and put them on the shoulderpieces of the -ephod before it. - -28:26 And thou shalt make two rings of gold, and thou shalt put them -upon the two ends of the breastplate in the border thereof, which is -in the side of the ephod inward. - -28:27 And two other rings of gold thou shalt make, and shalt put them -on the two sides of the ephod underneath, toward the forepart thereof, -over against the other coupling thereof, above the curious girdle of -the ephod. - -28:28 And they shall bind the breastplate by the rings thereof unto -the rings of the ephod with a lace of blue, that it may be above the -curious girdle of the ephod, and that the breastplate be not loosed -from the ephod. - -28:29 And Aaron shall bear the names of the children of Israel in the -breastplate of judgment upon his heart, when he goeth in unto the holy -place, for a memorial before the LORD continually. - -28:30 And thou shalt put in the breastplate of judgment the Urim and -the Thummim; and they shall be upon Aaron's heart, when he goeth in -before the LORD: and Aaron shall bear the judgment of the children of -Israel upon his heart before the LORD continually. - -28:31 And thou shalt make the robe of the ephod all of blue. - -28:32 And there shall be an hole in the top of it, in the midst -thereof: it shall have a binding of woven work round about the hole of -it, as it were the hole of an habergeon, that it be not rent. - -28:33 And beneath upon the hem of it thou shalt make pomegranates of -blue, and of purple, and of scarlet, round about the hem thereof; and -bells of gold between them round about: 28:34 A golden bell and a -pomegranate, a golden bell and a pomegranate, upon the hem of the robe -round about. - -28:35 And it shall be upon Aaron to minister: and his sound shall be -heard when he goeth in unto the holy place before the LORD, and when -he cometh out, that he die not. - -28:36 And thou shalt make a plate of pure gold, and grave upon it, -like the engravings of a signet, HOLINESS TO THE LORD. - -28:37 And thou shalt put it on a blue lace, that it may be upon the -mitre; upon the forefront of the mitre it shall be. - -28:38 And it shall be upon Aaron's forehead, that Aaron may bear the -iniquity of the holy things, which the children of Israel shall hallow -in all their holy gifts; and it shall be always upon his forehead, -that they may be accepted before the LORD. - -28:39 And thou shalt embroider the coat of fine linen, and thou shalt -make the mitre of fine linen, and thou shalt make the girdle of -needlework. - -28:40 And for Aaron's sons thou shalt make coats, and thou shalt make -for them girdles, and bonnets shalt thou make for them, for glory and -for beauty. - -28:41 And thou shalt put them upon Aaron thy brother, and his sons -with him; and shalt anoint them, and consecrate them, and sanctify -them, that they may minister unto me in the priest's office. - -28:42 And thou shalt make them linen breeches to cover their -nakedness; from the loins even unto the thighs they shall reach: 28:43 -And they shall be upon Aaron, and upon his sons, when they come in -unto the tabernacle of the congregation, or when they come near unto -the altar to minister in the holy place; that they bear not iniquity, -and die: it shall be a statute for ever unto him and his seed after -him. - -29:1 And this is the thing that thou shalt do unto them to hallow -them, to minister unto me in the priest's office: Take one young -bullock, and two rams without blemish, 29:2 And unleavened bread, and -cakes unleavened tempered with oil, and wafers unleavened anointed -with oil: of wheaten flour shalt thou make them. - -29:3 And thou shalt put them into one basket, and bring them in the -basket, with the bullock and the two rams. - -29:4 And Aaron and his sons thou shalt bring unto the door of the -tabernacle of the congregation, and shalt wash them with water. - -29:5 And thou shalt take the garments, and put upon Aaron the coat, -and the robe of the ephod, and the ephod, and the breastplate, and -gird him with the curious girdle of the ephod: 29:6 And thou shalt put -the mitre upon his head, and put the holy crown upon the mitre. - -29:7 Then shalt thou take the anointing oil, and pour it upon his -head, and anoint him. - -29:8 And thou shalt bring his sons, and put coats upon them. - -29:9 And thou shalt gird them with girdles, Aaron and his sons, and -put the bonnets on them: and the priest's office shall be theirs for a -perpetual statute: and thou shalt consecrate Aaron and his sons. - -29:10 And thou shalt cause a bullock to be brought before the -tabernacle of the congregation: and Aaron and his sons shall put their -hands upon the head of the bullock. - -29:11 And thou shalt kill the bullock before the LORD, by the door of -the tabernacle of the congregation. - -29:12 And thou shalt take of the blood of the bullock, and put it upon -the horns of the altar with thy finger, and pour all the blood beside -the bottom of the altar. - -29:13 And thou shalt take all the fat that covereth the inwards, and -the caul that is above the liver, and the two kidneys, and the fat -that is upon them, and burn them upon the altar. - -29:14 But the flesh of the bullock, and his skin, and his dung, shalt -thou burn with fire without the camp: it is a sin offering. - -29:15 Thou shalt also take one ram; and Aaron and his sons shall put -their hands upon the head of the ram. - -29:16 And thou shalt slay the ram, and thou shalt take his blood, and -sprinkle it round about upon the altar. - -29:17 And thou shalt cut the ram in pieces, and wash the inwards of -him, and his legs, and put them unto his pieces, and unto his head. - -29:18 And thou shalt burn the whole ram upon the altar: it is a burnt -offering unto the LORD: it is a sweet savour, an offering made by fire -unto the LORD. - -29:19 And thou shalt take the other ram; and Aaron and his sons shall -put their hands upon the head of the ram. - -29:20 Then shalt thou kill the ram, and take of his blood, and put it -upon the tip of the right ear of Aaron, and upon the tip of the right -ear of his sons, and upon the thumb of their right hand, and upon the -great toe of their right foot, and sprinkle the blood upon the altar -round about. - -29:21 And thou shalt take of the blood that is upon the altar, and of -the anointing oil, and sprinkle it upon Aaron, and upon his garments, -and upon his sons, and upon the garments of his sons with him: and he -shall be hallowed, and his garments, and his sons, and his sons' -garments with him. - -29:22 Also thou shalt take of the ram the fat and the rump, and the -fat that covereth the inwards, and the caul above the liver, and the -two kidneys, and the fat that is upon them, and the right shoulder; -for it is a ram of consecration: 29:23 And one loaf of bread, and one -cake of oiled bread, and one wafer out of the basket of the unleavened -bread that is before the LORD: 29:24 And thou shalt put all in the -hands of Aaron, and in the hands of his sons; and shalt wave them for -a wave offering before the LORD. - -29:25 And thou shalt receive them of their hands, and burn them upon -the altar for a burnt offering, for a sweet savour before the LORD: it -is an offering made by fire unto the LORD. - -29:26 And thou shalt take the breast of the ram of Aaron's -consecration, and wave it for a wave offering before the LORD: and it -shall be thy part. - -29:27 And thou shalt sanctify the breast of the wave offering, and the -shoulder of the heave offering, which is waved, and which is heaved -up, of the ram of the consecration, even of that which is for Aaron, -and of that which is for his sons: 29:28 And it shall be Aaron's and -his sons' by a statute for ever from the children of Israel: for it is -an heave offering: and it shall be an heave offering from the children -of Israel of the sacrifice of their peace offerings, even their heave -offering unto the LORD. - -29:29 And the holy garments of Aaron shall be his sons' after him, to -be anointed therein, and to be consecrated in them. - -29:30 And that son that is priest in his stead shall put them on seven -days, when he cometh into the tabernacle of the congregation to -minister in the holy place. - -29:31 And thou shalt take the ram of the consecration, and seethe his -flesh in the holy place. - -29:32 And Aaron and his sons shall eat the flesh of the ram, and the -bread that is in the basket by the door of the tabernacle of the -congregation. - -29:33 And they shall eat those things wherewith the atonement was -made, to consecrate and to sanctify them: but a stranger shall not eat -thereof, because they are holy. - -29:34 And if ought of the flesh of the consecrations, or of the bread, -remain unto the morning, then thou shalt burn the remainder with fire: -it shall not be eaten, because it is holy. - -29:35 And thus shalt thou do unto Aaron, and to his sons, according to -all things which I have commanded thee: seven days shalt thou -consecrate them. - -29:36 And thou shalt offer every day a bullock for a sin offering for -atonement: and thou shalt cleanse the altar, when thou hast made an -atonement for it, and thou shalt anoint it, to sanctify it. - -29:37 Seven days thou shalt make an atonement for the altar, and -sanctify it; and it shall be an altar most holy: whatsoever toucheth -the altar shall be holy. - -29:38 Now this is that which thou shalt offer upon the altar; two -lambs of the first year day by day continually. - -29:39 The one lamb thou shalt offer in the morning; and the other lamb -thou shalt offer at even: 29:40 And with the one lamb a tenth deal of -flour mingled with the fourth part of an hin of beaten oil; and the -fourth part of an hin of wine for a drink offering. - -29:41 And the other lamb thou shalt offer at even, and shalt do -thereto according to the meat offering of the morning, and according -to the drink offering thereof, for a sweet savour, an offering made by -fire unto the LORD. - -29:42 This shall be a continual burnt offering throughout your -generations at the door of the tabernacle of the congregation before -the LORD: where I will meet you, to speak there unto thee. - -29:43 And there I will meet with the children of Israel, and the -tabernacle shall be sanctified by my glory. - -29:44 And I will sanctify the tabernacle of the congregation, and the -altar: I will sanctify also both Aaron and his sons, to minister to me -in the priest's office. - -29:45 And I will dwell among the children of Israel, and will be their -God. - -29:46 And they shall know that I am the LORD their God, that brought -them forth out of the land of Egypt, that I may dwell among them: I am -the LORD their God. - -30:1 And thou shalt make an altar to burn incense upon: of shittim -wood shalt thou make it. - -30:2 A cubit shall be the length thereof, and a cubit the breadth -thereof; foursquare shall it be: and two cubits shall be the height -thereof: the horns thereof shall be of the same. - -30:3 And thou shalt overlay it with pure gold, the top thereof, and -the sides thereof round about, and the horns thereof; and thou shalt -make unto it a crown of gold round about. - -30:4 And two golden rings shalt thou make to it under the crown of it, -by the two corners thereof, upon the two sides of it shalt thou make -it; and they shall be for places for the staves to bear it withal. - -30:5 And thou shalt make the staves of shittim wood, and overlay them -with gold. - -30:6 And thou shalt put it before the vail that is by the ark of the -testimony, before the mercy seat that is over the testimony, where I -will meet with thee. - -30:7 And Aaron shall burn thereon sweet incense every morning: when he -dresseth the lamps, he shall burn incense upon it. - -30:8 And when Aaron lighteth the lamps at even, he shall burn incense -upon it, a perpetual incense before the LORD throughout your -generations. - -30:9 Ye shall offer no strange incense thereon, nor burnt sacrifice, -nor meat offering; neither shall ye pour drink offering thereon. - -30:10 And Aaron shall make an atonement upon the horns of it once in a -year with the blood of the sin offering of atonements: once in the -year shall he make atonement upon it throughout your generations: it -is most holy unto the LORD. - -30:11 And the LORD spake unto Moses, saying, 30:12 When thou takest -the sum of the children of Israel after their number, then shall they -give every man a ransom for his soul unto the LORD, when thou -numberest them; that there be no plague among them, when thou -numberest them. - -30:13 This they shall give, every one that passeth among them that are -numbered, half a shekel after the shekel of the sanctuary: (a shekel -is twenty gerahs:) an half shekel shall be the offering of the LORD. - -30:14 Every one that passeth among them that are numbered, from twenty -years old and above, shall give an offering unto the LORD. - -30:15 The rich shall not give more, and the poor shall not give less -than half a shekel, when they give an offering unto the LORD, to make -an atonement for your souls. - -30:16 And thou shalt take the atonement money of the children of -Israel, and shalt appoint it for the service of the tabernacle of the -congregation; that it may be a memorial unto the children of Israel -before the LORD, to make an atonement for your souls. - -30:17 And the LORD spake unto Moses, saying, 30:18 Thou shalt also -make a laver of brass, and his foot also of brass, to wash withal: and -thou shalt put it between the tabernacle of the congregation and the -altar, and thou shalt put water therein. - -30:19 For Aaron and his sons shall wash their hands and their feet -thereat: 30:20 When they go into the tabernacle of the congregation, -they shall wash with water, that they die not; or when they come near -to the altar to minister, to burn offering made by fire unto the LORD: -30:21 So they shall wash their hands and their feet, that they die -not: and it shall be a statute for ever to them, even to him and to -his seed throughout their generations. - -30:22 Moreover the LORD spake unto Moses, saying, 30:23 Take thou also -unto thee principal spices, of pure myrrh five hundred shekels, and of -sweet cinnamon half so much, even two hundred and fifty shekels, and -of sweet calamus two hundred and fifty shekels, 30:24 And of cassia -five hundred shekels, after the shekel of the sanctuary, and of oil -olive an hin: 30:25 And thou shalt make it an oil of holy ointment, an -ointment compound after the art of the apothecary: it shall be an holy -anointing oil. - -30:26 And thou shalt anoint the tabernacle of the congregation -therewith, and the ark of the testimony, 30:27 And the table and all -his vessels, and the candlestick and his vessels, and the altar of -incense, 30:28 And the altar of burnt offering with all his vessels, -and the laver and his foot. - -30:29 And thou shalt sanctify them, that they may be most holy: -whatsoever toucheth them shall be holy. - -30:30 And thou shalt anoint Aaron and his sons, and consecrate them, -that they may minister unto me in the priest's office. - -30:31 And thou shalt speak unto the children of Israel, saying, This -shall be an holy anointing oil unto me throughout your generations. - -30:32 Upon man's flesh shall it not be poured, neither shall ye make -any other like it, after the composition of it: it is holy, and it -shall be holy unto you. - -30:33 Whosoever compoundeth any like it, or whosoever putteth any of -it upon a stranger, shall even be cut off from his people. - -30:34 And the LORD said unto Moses, Take unto thee sweet spices, -stacte, and onycha, and galbanum; these sweet spices with pure -frankincense: of each shall there be a like weight: 30:35 And thou -shalt make it a perfume, a confection after the art of the apothecary, -tempered together, pure and holy: 30:36 And thou shalt beat some of it -very small, and put of it before the testimony in the tabernacle of -the congregation, where I will meet with thee: it shall be unto you -most holy. - -30:37 And as for the perfume which thou shalt make, ye shall not make -to yourselves according to the composition thereof: it shall be unto -thee holy for the LORD. - -30:38 Whosoever shall make like unto that, to smell thereto, shall -even be cut off from his people. - -31:1 And the LORD spake unto Moses, saying, 31:2 See, I have called by -name Bezaleel the son of Uri, the son of Hur, of the tribe of Judah: -31:3 And I have filled him with the spirit of God, in wisdom, and in -understanding, and in knowledge, and in all manner of workmanship, -31:4 To devise cunning works, to work in gold, and in silver, and in -brass, 31:5 And in cutting of stones, to set them, and in carving of -timber, to work in all manner of workmanship. - -31:6 And I, behold, I have given with him Aholiab, the son of -Ahisamach, of the tribe of Dan: and in the hearts of all that are wise -hearted I have put wisdom, that they may make all that I have -commanded thee; 31:7 The tabernacle of the congregation, and the ark -of the testimony, and the mercy seat that is thereupon, and all the -furniture of the tabernacle, 31:8 And the table and his furniture, and -the pure candlestick with all his furniture, and the altar of incense, -31:9 And the altar of burnt offering with all his furniture, and the -laver and his foot, 31:10 And the cloths of service, and the holy -garments for Aaron the priest, and the garments of his sons, to -minister in the priest's office, 31:11 And the anointing oil, and -sweet incense for the holy place: according to all that I have -commanded thee shall they do. - -31:12 And the LORD spake unto Moses, saying, 31:13 Speak thou also -unto the children of Israel, saying, Verily my sabbaths ye shall keep: -for it is a sign between me and you throughout your generations; that -ye may know that I am the LORD that doth sanctify you. - -31:14 Ye shall keep the sabbath therefore; for it is holy unto you: -every one that defileth it shall surely be put to death: for whosoever -doeth any work therein, that soul shall be cut off from among his -people. - -31:15 Six days may work be done; but in the seventh is the sabbath of -rest, holy to the LORD: whosoever doeth any work in the sabbath day, -he shall surely be put to death. - -31:16 Wherefore the children of Israel shall keep the sabbath, to -observe the sabbath throughout their generations, for a perpetual -covenant. - -31:17 It is a sign between me and the children of Israel for ever: for -in six days the LORD made heaven and earth, and on the seventh day he -rested, and was refreshed. - -31:18 And he gave unto Moses, when he had made an end of communing -with him upon mount Sinai, two tables of testimony, tables of stone, -written with the finger of God. - -32:1 And when the people saw that Moses delayed to come down out of -the mount, the people gathered themselves together unto Aaron, and -said unto him, Up, make us gods, which shall go before us; for as for -this Moses, the man that brought us up out of the land of Egypt, we -wot not what is become of him. - -32:2 And Aaron said unto them, Break off the golden earrings, which -are in the ears of your wives, of your sons, and of your daughters, -and bring them unto me. - -32:3 And all the people brake off the golden earrings which were in -their ears, and brought them unto Aaron. - -32:4 And he received them at their hand, and fashioned it with a -graving tool, after he had made it a molten calf: and they said, These -be thy gods, O Israel, which brought thee up out of the land of Egypt. - -32:5 And when Aaron saw it, he built an altar before it; and Aaron -made proclamation, and said, To morrow is a feast to the LORD. - -32:6 And they rose up early on the morrow, and offered burnt -offerings, and brought peace offerings; and the people sat down to eat -and to drink, and rose up to play. - -32:7 And the LORD said unto Moses, Go, get thee down; for thy people, -which thou broughtest out of the land of Egypt, have corrupted -themselves: 32:8 They have turned aside quickly out of the way which I -commanded them: they have made them a molten calf, and have worshipped -it, and have sacrificed thereunto, and said, These be thy gods, O -Israel, which have brought thee up out of the land of Egypt. - -32:9 And the LORD said unto Moses, I have seen this people, and, -behold, it is a stiffnecked people: 32:10 Now therefore let me alone, -that my wrath may wax hot against them, and that I may consume them: -and I will make of thee a great nation. - -32:11 And Moses besought the LORD his God, and said, LORD, why doth -thy wrath wax hot against thy people, which thou hast brought forth -out of the land of Egypt with great power, and with a mighty hand? -32:12 Wherefore should the Egyptians speak, and say, For mischief did -he bring them out, to slay them in the mountains, and to consume them -from the face of the earth? Turn from thy fierce wrath, and repent of -this evil against thy people. - -32:13 Remember Abraham, Isaac, and Israel, thy servants, to whom thou -swarest by thine own self, and saidst unto them, I will multiply your -seed as the stars of heaven, and all this land that I have spoken of -will I give unto your seed, and they shall inherit it for ever. - -32:14 And the LORD repented of the evil which he thought to do unto -his people. - -32:15 And Moses turned, and went down from the mount, and the two -tables of the testimony were in his hand: the tables were written on -both their sides; on the one side and on the other were they written. - -32:16 And the tables were the work of God, and the writing was the -writing of God, graven upon the tables. - -32:17 And when Joshua heard the noise of the people as they shouted, -he said unto Moses, There is a noise of war in the camp. - -32:18 And he said, It is not the voice of them that shout for mastery, -neither is it the voice of them that cry for being overcome: but the -noise of them that sing do I hear. - -32:19 And it came to pass, as soon as he came nigh unto the camp, that -he saw the calf, and the dancing: and Moses' anger waxed hot, and he -cast the tables out of his hands, and brake them beneath the mount. - -32:20 And he took the calf which they had made, and burnt it in the -fire, and ground it to powder, and strawed it upon the water, and made -the children of Israel drink of it. - -32:21 And Moses said unto Aaron, What did this people unto thee, that -thou hast brought so great a sin upon them? 32:22 And Aaron said, Let -not the anger of my lord wax hot: thou knowest the people, that they -are set on mischief. - -32:23 For they said unto me, Make us gods, which shall go before us: -for as for this Moses, the man that brought us up out of the land of -Egypt, we wot not what is become of him. - -32:24 And I said unto them, Whosoever hath any gold, let them break it -off. So they gave it me: then I cast it into the fire, and there came -out this calf. - -32:25 And when Moses saw that the people were naked; (for Aaron had -made them naked unto their shame among their enemies:) 32:26 Then -Moses stood in the gate of the camp, and said, Who is on the LORD's -side? let him come unto me. And all the sons of Levi gathered -themselves together unto him. - -32:27 And he said unto them, Thus saith the LORD God of Israel, Put -every man his sword by his side, and go in and out from gate to gate -throughout the camp, and slay every man his brother, and every man his -companion, and every man his neighbour. - -32:28 And the children of Levi did according to the word of Moses: and -there fell of the people that day about three thousand men. - -32:29 For Moses had said, Consecrate yourselves today to the LORD, -even every man upon his son, and upon his brother; that he may bestow -upon you a blessing this day. - -32:30 And it came to pass on the morrow, that Moses said unto the -people, Ye have sinned a great sin: and now I will go up unto the -LORD; peradventure I shall make an atonement for your sin. - -32:31 And Moses returned unto the LORD, and said, Oh, this people have -sinned a great sin, and have made them gods of gold. - -32:32 Yet now, if thou wilt forgive their sin--; and if not, blot me, -I pray thee, out of thy book which thou hast written. - -32:33 And the LORD said unto Moses, Whosoever hath sinned against me, -him will I blot out of my book. - -32:34 Therefore now go, lead the people unto the place of which I have -spoken unto thee: behold, mine Angel shall go before thee: -nevertheless in the day when I visit I will visit their sin upon them. - -32:35 And the LORD plagued the people, because they made the calf, -which Aaron made. - -33:1 And the LORD said unto Moses, Depart, and go up hence, thou and -the people which thou hast brought up out of the land of Egypt, unto -the land which I sware unto Abraham, to Isaac, and to Jacob, saying, -Unto thy seed will I give it: 33:2 And I will send an angel before -thee; and I will drive out the Canaanite, the Amorite, and the -Hittite, and the Perizzite, the Hivite, and the Jebusite: 33:3 Unto a -land flowing with milk and honey: for I will not go up in the midst of -thee; for thou art a stiffnecked people: lest I consume thee in the -way. - -33:4 And when the people heard these evil tidings, they mourned: and -no man did put on him his ornaments. - -33:5 For the LORD had said unto Moses, Say unto the children of -Israel, Ye are a stiffnecked people: I will come up into the midst of -thee in a moment, and consume thee: therefore now put off thy -ornaments from thee, that I may know what to do unto thee. - -33:6 And the children of Israel stripped themselves of their ornaments -by the mount Horeb. - -33:7 And Moses took the tabernacle, and pitched it without the camp, -afar off from the camp, and called it the Tabernacle of the -congregation. And it came to pass, that every one which sought the -LORD went out unto the tabernacle of the congregation, which was -without the camp. - -33:8 And it came to pass, when Moses went out unto the tabernacle, -that all the people rose up, and stood every man at his tent door, and -looked after Moses, until he was gone into the tabernacle. - -33:9 And it came to pass, as Moses entered into the tabernacle, the -cloudy pillar descended, and stood at the door of the tabernacle, and -the Lord talked with Moses. - -33:10 And all the people saw the cloudy pillar stand at the tabernacle -door: and all the people rose up and worshipped, every man in his tent -door. - -33:11 And the LORD spake unto Moses face to face, as a man speaketh -unto his friend. And he turned again into the camp: but his servant -Joshua, the son of Nun, a young man, departed not out of the -tabernacle. - -33:12 And Moses said unto the LORD, See, thou sayest unto me, Bring up -this people: and thou hast not let me know whom thou wilt send with -me. Yet thou hast said, I know thee by name, and thou hast also found -grace in my sight. - -33:13 Now therefore, I pray thee, if I have found grace in thy sight, -shew me now thy way, that I may know thee, that I may find grace in -thy sight: and consider that this nation is thy people. - -33:14 And he said, My presence shall go with thee, and I will give -thee rest. - -33:15 And he said unto him, If thy presence go not with me, carry us -not up hence. - -33:16 For wherein shall it be known here that I and thy people have -found grace in thy sight? is it not in that thou goest with us? so -shall we be separated, I and thy people, from all the people that are -upon the face of the earth. - -33:17 And the LORD said unto Moses, I will do this thing also that -thou hast spoken: for thou hast found grace in my sight, and I know -thee by name. - -33:18 And he said, I beseech thee, shew me thy glory. - -33:19 And he said, I will make all my goodness pass before thee, and I -will proclaim the name of the LORD before thee; and will be gracious -to whom I will be gracious, and will shew mercy on whom I will shew -mercy. - -33:20 And he said, Thou canst not see my face: for there shall no man -see me, and live. - -33:21 And the LORD said, Behold, there is a place by me, and thou -shalt stand upon a rock: 33:22 And it shall come to pass, while my -glory passeth by, that I will put thee in a clift of the rock, and -will cover thee with my hand while I pass by: 33:23 And I will take -away mine hand, and thou shalt see my back parts: but my face shall -not be seen. - -34:1 And the LORD said unto Moses, Hew thee two tables of stone like -unto the first: and I will write upon these tables the words that were -in the first tables, which thou brakest. - -34:2 And be ready in the morning, and come up in the morning unto -mount Sinai, and present thyself there to me in the top of the mount. - -34:3 And no man shall come up with thee, neither let any man be seen -throughout all the mount; neither let the flocks nor herds feed before -that mount. - -34:4 And he hewed two tables of stone like unto the first; and Moses -rose up early in the morning, and went up unto mount Sinai, as the -LORD had commanded him, and took in his hand the two tables of stone. - -34:5 And the LORD descended in the cloud, and stood with him there, -and proclaimed the name of the LORD. - -34:6 And the LORD passed by before him, and proclaimed, The LORD, The -LORD God, merciful and gracious, longsuffering, and abundant in -goodness and truth, 34:7 Keeping mercy for thousands, forgiving -iniquity and transgression and sin, and that will by no means clear -the guilty; visiting the iniquity of the fathers upon the children, -and upon the children's children, unto the third and to the fourth -generation. - -34:8 And Moses made haste, and bowed his head toward the earth, and -worshipped. - -34:9 And he said, If now I have found grace in thy sight, O LORD, let -my LORD, I pray thee, go among us; for it is a stiffnecked people; and -pardon our iniquity and our sin, and take us for thine inheritance. - -34:10 And he said, Behold, I make a covenant: before all thy people I -will do marvels, such as have not been done in all the earth, nor in -any nation: and all the people among which thou art shall see the work -of the LORD: for it is a terrible thing that I will do with thee. - -34:11 Observe thou that which I command thee this day: behold, I drive -out before thee the Amorite, and the Canaanite, and the Hittite, and -the Perizzite, and the Hivite, and the Jebusite. - -34:12 Take heed to thyself, lest thou make a covenant with the -inhabitants of the land whither thou goest, lest it be for a snare in -the midst of thee: 34:13 But ye shall destroy their altars, break -their images, and cut down their groves: 34:14 For thou shalt worship -no other god: for the LORD, whose name is Jealous, is a jealous God: -34:15 Lest thou make a covenant with the inhabitants of the land, and -they go a whoring after their gods, and do sacrifice unto their gods, -and one call thee, and thou eat of his sacrifice; 34:16 And thou take -of their daughters unto thy sons, and their daughters go a whoring -after their gods, and make thy sons go a whoring after their gods. - -34:17 Thou shalt make thee no molten gods. - -34:18 The feast of unleavened bread shalt thou keep. Seven days thou -shalt eat unleavened bread, as I commanded thee, in the time of the -month Abib: for in the month Abib thou camest out from Egypt. - -34:19 All that openeth the matrix is mine; and every firstling among -thy cattle, whether ox or sheep, that is male. - -34:20 But the firstling of an ass thou shalt redeem with a lamb: and -if thou redeem him not, then shalt thou break his neck. All the -firstborn of thy sons thou shalt redeem. And none shall appear before -me empty. - -34:21 Six days thou shalt work, but on the seventh day thou shalt -rest: in earing time and in harvest thou shalt rest. - -34:22 And thou shalt observe the feast of weeks, of the firstfruits of -wheat harvest, and the feast of ingathering at the year's end. - -34:23 Thrice in the year shall all your menchildren appear before the -LORD God, the God of Israel. - -34:24 For I will cast out the nations before thee, and enlarge thy -borders: neither shall any man desire thy land, when thou shalt go up -to appear before the LORD thy God thrice in the year. - -34:25 Thou shalt not offer the blood of my sacrifice with leaven; -neither shall the sacrifice of the feast of the passover be left unto -the morning. - -34:26 The first of the firstfruits of thy land thou shalt bring unto -the house of the LORD thy God. Thou shalt not seethe a kid in his -mother's milk. - -34:27 And the LORD said unto Moses, Write thou these words: for after -the tenor of these words I have made a covenant with thee and with -Israel. - -34:28 And he was there with the LORD forty days and forty nights; he -did neither eat bread, nor drink water. And he wrote upon the tables -the words of the covenant, the ten commandments. - -34:29 And it came to pass, when Moses came down from mount Sinai with -the two tables of testimony in Moses' hand, when he came down from the -mount, that Moses wist not that the skin of his face shone while he -talked with him. - -34:30 And when Aaron and all the children of Israel saw Moses, behold, -the skin of his face shone; and they were afraid to come nigh him. - -34:31 And Moses called unto them; and Aaron and all the rulers of the -congregation returned unto him: and Moses talked with them. - -34:32 And afterward all the children of Israel came nigh: and he gave -them in commandment all that the LORD had spoken with him in mount -Sinai. - -34:33 And till Moses had done speaking with them, he put a vail on his -face. - -34:34 But when Moses went in before the LORD to speak with him, he -took the vail off, until he came out. And he came out, and spake unto -the children of Israel that which he was commanded. - -34:35 And the children of Israel saw the face of Moses, that the skin -of Moses' face shone: and Moses put the vail upon his face again, -until he went in to speak with him. - -35:1 And Moses gathered all the congregation of the children of Israel -together, and said unto them, These are the words which the LORD hath -commanded, that ye should do them. - -35:2 Six days shall work be done, but on the seventh day there shall -be to you an holy day, a sabbath of rest to the LORD: whosoever doeth -work therein shall be put to death. - -35:3 Ye shall kindle no fire throughout your habitations upon the -sabbath day. - -35:4 And Moses spake unto all the congregation of the children of -Israel, saying, This is the thing which the LORD commanded, saying, -35:5 Take ye from among you an offering unto the LORD: whosoever is of -a willing heart, let him bring it, an offering of the LORD; gold, and -silver, and brass, 35:6 And blue, and purple, and scarlet, and fine -linen, and goats' hair, 35:7 And rams' skins dyed red, and badgers' -skins, and shittim wood, 35:8 And oil for the light, and spices for -anointing oil, and for the sweet incense, 35:9 And onyx stones, and -stones to be set for the ephod, and for the breastplate. - -35:10 And every wise hearted among you shall come, and make all that -the LORD hath commanded; 35:11 The tabernacle, his tent, and his -covering, his taches, and his boards, his bars, his pillars, and his -sockets, 35:12 The ark, and the staves thereof, with the mercy seat, -and the vail of the covering, 35:13 The table, and his staves, and all -his vessels, and the shewbread, 35:14 The candlestick also for the -light, and his furniture, and his lamps, with the oil for the light, -35:15 And the incense altar, and his staves, and the anointing oil, -and the sweet incense, and the hanging for the door at the entering in -of the tabernacle, 35:16 The altar of burnt offering, with his brasen -grate, his staves, and all his vessels, the laver and his foot, 35:17 -The hangings of the court, his pillars, and their sockets, and the -hanging for the door of the court, 35:18 The pins of the tabernacle, -and the pins of the court, and their cords, 35:19 The cloths of -service, to do service in the holy place, the holy garments for Aaron -the priest, and the garments of his sons, to minister in the priest's -office. - -35:20 And all the congregation of the children of Israel departed from -the presence of Moses. - -35:21 And they came, every one whose heart stirred him up, and every -one whom his spirit made willing, and they brought the LORD's offering -to the work of the tabernacle of the congregation, and for all his -service, and for the holy garments. - -35:22 And they came, both men and women, as many as were willing -hearted, and brought bracelets, and earrings, and rings, and tablets, -all jewels of gold: and every man that offered offered an offering of -gold unto the LORD. - -35:23 And every man, with whom was found blue, and purple, and -scarlet, and fine linen, and goats' hair, and red skins of rams, and -badgers' skins, brought them. - -35:24 Every one that did offer an offering of silver and brass brought -the LORD's offering: and every man, with whom was found shittim wood -for any work of the service, brought it. - -35:25 And all the women that were wise hearted did spin with their -hands, and brought that which they had spun, both of blue, and of -purple, and of scarlet, and of fine linen. - -35:26 And all the women whose heart stirred them up in wisdom spun -goats' hair. - -35:27 And the rulers brought onyx stones, and stones to be set, for -the ephod, and for the breastplate; 35:28 And spice, and oil for the -light, and for the anointing oil, and for the sweet incense. - -35:29 The children of Israel brought a willing offering unto the LORD, -every man and woman, whose heart made them willing to bring for all -manner of work, which the LORD had commanded to be made by the hand of -Moses. - -35:30 And Moses said unto the children of Israel, See, the LORD hath -called by name Bezaleel the son of Uri, the son of Hur, of the tribe -of Judah; 35:31 And he hath filled him with the spirit of God, in -wisdom, in understanding, and in knowledge, and in all manner of -workmanship; 35:32 And to devise curious works, to work in gold, and -in silver, and in brass, 35:33 And in the cutting of stones, to set -them, and in carving of wood, to make any manner of cunning work. - -35:34 And he hath put in his heart that he may teach, both he, and -Aholiab, the son of Ahisamach, of the tribe of Dan. - -35:35 Them hath he filled with wisdom of heart, to work all manner of -work, of the engraver, and of the cunning workman, and of the -embroiderer, in blue, and in purple, in scarlet, and in fine linen, -and of the weaver, even of them that do any work, and of those that -devise cunning work. - -36:1 Then wrought Bezaleel and Aholiab, and every wise hearted man, in -whom the LORD put wisdom and understanding to know how to work all -manner of work for the service of the sanctuary, according to all that -the LORD had commanded. - -36:2 And Moses called Bezaleel and Aholiab, and every wise hearted -man, in whose heart the LORD had put wisdom, even every one whose -heart stirred him up to come unto the work to do it: 36:3 And they -received of Moses all the offering, which the children of Israel had -brought for the work of the service of the sanctuary, to make it -withal. And they brought yet unto him free offerings every morning. - -36:4 And all the wise men, that wrought all the work of the sanctuary, -came every man from his work which they made; 36:5 And they spake unto -Moses, saying, The people bring much more than enough for the service -of the work, which the LORD commanded to make. - -36:6 And Moses gave commandment, and they caused it to be proclaimed -throughout the camp, saying, Let neither man nor woman make any more -work for the offering of the sanctuary. So the people were restrained -from bringing. - -36:7 For the stuff they had was sufficient for all the work to make -it, and too much. - -36:8 And every wise hearted man among them that wrought the work of -the tabernacle made ten curtains of fine twined linen, and blue, and -purple, and scarlet: with cherubims of cunning work made he them. - -36:9 The length of one curtain was twenty and eight cubits, and the -breadth of one curtain four cubits: the curtains were all of one size. - -36:10 And he coupled the five curtains one unto another: and the other -five curtains he coupled one unto another. - -36:11 And he made loops of blue on the edge of one curtain from the -selvedge in the coupling: likewise he made in the uttermost side of -another curtain, in the coupling of the second. - -36:12 Fifty loops made he in one curtain, and fifty loops made he in -the edge of the curtain which was in the coupling of the second: the -loops held one curtain to another. - -36:13 And he made fifty taches of gold, and coupled the curtains one -unto another with the taches: so it became one tabernacle. - -36:14 And he made curtains of goats' hair for the tent over the -tabernacle: eleven curtains he made them. - -36:15 The length of one curtain was thirty cubits, and four cubits was -the breadth of one curtain: the eleven curtains were of one size. - -36:16 And he coupled five curtains by themselves, and six curtains by -themselves. - -36:17 And he made fifty loops upon the uttermost edge of the curtain -in the coupling, and fifty loops made he upon the edge of the curtain -which coupleth the second. - -36:18 And he made fifty taches of brass to couple the tent together, -that it might be one. - -36:19 And he made a covering for the tent of rams' skins dyed red, and -a covering of badgers' skins above that. - -36:20 And he made boards for the tabernacle of shittim wood, standing -up. - -36:21 The length of a board was ten cubits, and the breadth of a board -one cubit and a half. - -36:22 One board had two tenons, equally distant one from another: thus -did he make for all the boards of the tabernacle. - -36:23 And he made boards for the tabernacle; twenty boards for the -south side southward: 36:24 And forty sockets of silver he made under -the twenty boards; two sockets under one board for his two tenons, and -two sockets under another board for his two tenons. - -36:25 And for the other side of the tabernacle, which is toward the -north corner, he made twenty boards, 36:26 And their forty sockets of -silver; two sockets under one board, and two sockets under another -board. - -36:27 And for the sides of the tabernacle westward he made six boards. - -36:28 And two boards made he for the corners of the tabernacle in the -two sides. - -36:29 And they were coupled beneath, and coupled together at the head -thereof, to one ring: thus he did to both of them in both the corners. - -36:30 And there were eight boards; and their sockets were sixteen -sockets of silver, under every board two sockets. - -36:31 And he made bars of shittim wood; five for the boards of the one -side of the tabernacle, 36:32 And five bars for the boards of the -other side of the tabernacle, and five bars for the boards of the -tabernacle for the sides westward. - -36:33 And he made the middle bar to shoot through the boards from the -one end to the other. - -36:34 And he overlaid the boards with gold, and made their rings of -gold to be places for the bars, and overlaid the bars with gold. - -36:35 And he made a vail of blue, and purple, and scarlet, and fine -twined linen: with cherubims made he it of cunning work. - -36:36 And he made thereunto four pillars of shittim wood, and overlaid -them with gold: their hooks were of gold; and he cast for them four -sockets of silver. - -36:37 And he made an hanging for the tabernacle door of blue, and -purple, and scarlet, and fine twined linen, of needlework; 36:38 And -the five pillars of it with their hooks: and he overlaid their -chapiters and their fillets with gold: but their five sockets were of -brass. - -37:1 And Bezaleel made the ark of shittim wood: two cubits and a half -was the length of it, and a cubit and a half the breadth of it, and a -cubit and a half the height of it: 37:2 And he overlaid it with pure -gold within and without, and made a crown of gold to it round about. - -37:3 And he cast for it four rings of gold, to be set by the four -corners of it; even two rings upon the one side of it, and two rings -upon the other side of it. - -37:4 And he made staves of shittim wood, and overlaid them with gold. - -37:5 And he put the staves into the rings by the sides of the ark, to -bear the ark. - -37:6 And he made the mercy seat of pure gold: two cubits and a half -was the length thereof, and one cubit and a half the breadth thereof. - -37:7 And he made two cherubims of gold, beaten out of one piece made -he them, on the two ends of the mercy seat; 37:8 One cherub on the end -on this side, and another cherub on the other end on that side: out of -the mercy seat made he the cherubims on the two ends thereof. - -37:9 And the cherubims spread out their wings on high, and covered -with their wings over the mercy seat, with their faces one to another; -even to the mercy seatward were the faces of the cherubims. - -37:10 And he made the table of shittim wood: two cubits was the length -thereof, and a cubit the breadth thereof, and a cubit and a half the -height thereof: 37:11 And he overlaid it with pure gold, and made -thereunto a crown of gold round about. - -37:12 Also he made thereunto a border of an handbreadth round about; -and made a crown of gold for the border thereof round about. - -37:13 And he cast for it four rings of gold, and put the rings upon -the four corners that were in the four feet thereof. - -37:14 Over against the border were the rings, the places for the -staves to bear the table. - -37:15 And he made the staves of shittim wood, and overlaid them with -gold, to bear the table. - -37:16 And he made the vessels which were upon the table, his dishes, -and his spoons, and his bowls, and his covers to cover withal, of pure -gold. - -37:17 And he made the candlestick of pure gold: of beaten work made he -the candlestick; his shaft, and his branch, his bowls, his knops, and -his flowers, were of the same: 37:18 And six branches going out of the -sides thereof; three branches of the candlestick out of the one side -thereof, and three branches of the candlestick out of the other side -thereof: 37:19 Three bowls made after the fashion of almonds in one -branch, a knop and a flower; and three bowls made like almonds in -another branch, a knop and a flower: so throughout the six branches -going out of the candlestick. - -37:20 And in the candlestick were four bowls made like almonds, his -knops, and his flowers: 37:21 And a knop under two branches of the -same, and a knop under two branches of the same, and a knop under two -branches of the same, according to the six branches going out of it. - -37:22 Their knops and their branches were of the same: all of it was -one beaten work of pure gold. - -37:23 And he made his seven lamps, and his snuffers, and his -snuffdishes, of pure gold. - -37:24 Of a talent of pure gold made he it, and all the vessels -thereof. - -37:25 And he made the incense altar of shittim wood: the length of it -was a cubit, and the breadth of it a cubit; it was foursquare; and two -cubits was the height of it; the horns thereof were of the same. - -37:26 And he overlaid it with pure gold, both the top of it, and the -sides thereof round about, and the horns of it: also he made unto it a -crown of gold round about. - -37:27 And he made two rings of gold for it under the crown thereof, by -the two corners of it, upon the two sides thereof, to be places for -the staves to bear it withal. - -37:28 And he made the staves of shittim wood, and overlaid them with -gold. - -37:29 And he made the holy anointing oil, and the pure incense of -sweet spices, according to the work of the apothecary. - -38:1 And he made the altar of burnt offering of shittim wood: five -cubits was the length thereof, and five cubits the breadth thereof; it -was foursquare; and three cubits the height thereof. - -38:2 And he made the horns thereof on the four corners of it; the -horns thereof were of the same: and he overlaid it with brass. - -38:3 And he made all the vessels of the altar, the pots, and the -shovels, and the basons, and the fleshhooks, and the firepans: all the -vessels thereof made he of brass. - -38:4 And he made for the altar a brasen grate of network under the -compass thereof beneath unto the midst of it. - -38:5 And he cast four rings for the four ends of the grate of brass, -to be places for the staves. - -38:6 And he made the staves of shittim wood, and overlaid them with -brass. - -38:7 And he put the staves into the rings on the sides of the altar, -to bear it withal; he made the altar hollow with boards. - -38:8 And he made the laver of brass, and the foot of it of brass, of -the lookingglasses of the women assembling, which assembled at the -door of the tabernacle of the congregation. - -38:9 And he made the court: on the south side southward the hangings -of the court were of fine twined linen, an hundred cubits: 38:10 Their -pillars were twenty, and their brasen sockets twenty; the hooks of the -pillars and their fillets were of silver. - -38:11 And for the north side the hangings were an hundred cubits, -their pillars were twenty, and their sockets of brass twenty; the -hooks of the pillars and their fillets of silver. - -38:12 And for the west side were hangings of fifty cubits, their -pillars ten, and their sockets ten; the hooks of the pillars and their -fillets of silver. - -38:13 And for the east side eastward fifty cubits. - -38:14 The hangings of the one side of the gate were fifteen cubits; -their pillars three, and their sockets three. - -38:15 And for the other side of the court gate, on this hand and that -hand, were hangings of fifteen cubits; their pillars three, and their -sockets three. - -38:16 All the hangings of the court round about were of fine twined -linen. - -38:17 And the sockets for the pillars were of brass; the hooks of the -pillars and their fillets of silver; and the overlaying of their -chapiters of silver; and all the pillars of the court were filleted -with silver. - -38:18 And the hanging for the gate of the court was needlework, of -blue, and purple, and scarlet, and fine twined linen: and twenty -cubits was the length, and the height in the breadth was five cubits, -answerable to the hangings of the court. - -38:19 And their pillars were four, and their sockets of brass four; -their hooks of silver, and the overlaying of their chapiters and their -fillets of silver. - -38:20 And all the pins of the tabernacle, and of the court round -about, were of brass. - -38:21 This is the sum of the tabernacle, even of the tabernacle of -testimony, as it was counted, according to the commandment of Moses, -for the service of the Levites, by the hand of Ithamar, son to Aaron -the priest. - -38:22 And Bezaleel the son Uri, the son of Hur, of the tribe of Judah, -made all that the LORD commanded Moses. - -38:23 And with him was Aholiab, son of Ahisamach, of the tribe of Dan, -an engraver, and a cunning workman, and an embroiderer in blue, and in -purple, and in scarlet, and fine linen. - -38:24 All the gold that was occupied for the work in all the work of -the holy place, even the gold of the offering, was twenty and nine -talents, and seven hundred and thirty shekels, after the shekel of the -sanctuary. - -38:25 And the silver of them that were numbered of the congregation -was an hundred talents, and a thousand seven hundred and threescore -and fifteen shekels, after the shekel of the sanctuary: 38:26 A bekah -for every man, that is, half a shekel, after the shekel of the -sanctuary, for every one that went to be numbered, from twenty years -old and upward, for six hundred thousand and three thousand and five -hundred and fifty men. - -38:27 And of the hundred talents of silver were cast the sockets of -the sanctuary, and the sockets of the vail; an hundred sockets of the -hundred talents, a talent for a socket. - -38:28 And of the thousand seven hundred seventy and five shekels he -made hooks for the pillars, and overlaid their chapiters, and filleted -them. - -38:29 And the brass of the offering was seventy talents, and two -thousand and four hundred shekels. - -38:30 And therewith he made the sockets to the door of the tabernacle -of the congregation, and the brasen altar, and the brasen grate for -it, and all the vessels of the altar, 38:31 And the sockets of the -court round about, and the sockets of the court gate, and all the pins -of the tabernacle, and all the pins of the court round about. - -39:1 And of the blue, and purple, and scarlet, they made cloths of -service, to do service in the holy place, and made the holy garments -for Aaron; as the LORD commanded Moses. - -39:2 And he made the ephod of gold, blue, and purple, and scarlet, and -fine twined linen. - -39:3 And they did beat the gold into thin plates, and cut it into -wires, to work it in the blue, and in the purple, and in the scarlet, -and in the fine linen, with cunning work. - -39:4 They made shoulderpieces for it, to couple it together: by the -two edges was it coupled together. - -39:5 And the curious girdle of his ephod, that was upon it, was of the -same, according to the work thereof; of gold, blue, and purple, and -scarlet, and fine twined linen; as the LORD commanded Moses. - -39:6 And they wrought onyx stones inclosed in ouches of gold, graven, -as signets are graven, with the names of the children of Israel. - -39:7 And he put them on the shoulders of the ephod, that they should -be stones for a memorial to the children of Israel; as the LORD -commanded Moses. - -39:8 And he made the breastplate of cunning work, like the work of the -ephod; of gold, blue, and purple, and scarlet, and fine twined linen. - -39:9 It was foursquare; they made the breastplate double: a span was -the length thereof, and a span the breadth thereof, being doubled. - -39:10 And they set in it four rows of stones: the first row was a -sardius, a topaz, and a carbuncle: this was the first row. - -39:11 And the second row, an emerald, a sapphire, and a diamond. - -39:12 And the third row, a ligure, an agate, and an amethyst. - -39:13 And the fourth row, a beryl, an onyx, and a jasper: they were -inclosed in ouches of gold in their inclosings. - -39:14 And the stones were according to the names of the children of -Israel, twelve, according to their names, like the engravings of a -signet, every one with his name, according to the twelve tribes. - -39:15 And they made upon the breastplate chains at the ends, of -wreathen work of pure gold. - -39:16 And they made two ouches of gold, and two gold rings; and put -the two rings in the two ends of the breastplate. - -39:17 And they put the two wreathen chains of gold in the two rings on -the ends of the breastplate. - -39:18 And the two ends of the two wreathen chains they fastened in the -two ouches, and put them on the shoulderpieces of the ephod, before -it. - -39:19 And they made two rings of gold, and put them on the two ends of -the breastplate, upon the border of it, which was on the side of the -ephod inward. - -39:20 And they made two other golden rings, and put them on the two -sides of the ephod underneath, toward the forepart of it, over against -the other coupling thereof, above the curious girdle of the ephod. - -39:21 And they did bind the breastplate by his rings unto the rings of -the ephod with a lace of blue, that it might be above the curious -girdle of the ephod, and that the breastplate might not be loosed from -the ephod; as the LORD commanded Moses. - -39:22 And he made the robe of the ephod of woven work, all of blue. - -39:23 And there was an hole in the midst of the robe, as the hole of -an habergeon, with a band round about the hole, that it should not -rend. - -39:24 And they made upon the hems of the robe pomegranates of blue, -and purple, and scarlet, and twined linen. - -39:25 And they made bells of pure gold, and put the bells between the -pomegranates upon the hem of the robe, round about between the -pomegranates; 39:26 A bell and a pomegranate, a bell and a -pomegranate, round about the hem of the robe to minister in; as the -LORD commanded Moses. - -39:27 And they made coats of fine linen of woven work for Aaron, and -for his sons, 39:28 And a mitre of fine linen, and goodly bonnets of -fine linen, and linen breeches of fine twined linen, 39:29 And a -girdle of fine twined linen, and blue, and purple, and scarlet, of -needlework; as the LORD commanded Moses. - -39:30 And they made the plate of the holy crown of pure gold, and -wrote upon it a writing, like to the engravings of a signet, HOLINESS -TO THE LORD. - -39:31 And they tied unto it a lace of blue, to fasten it on high upon -the mitre; as the LORD commanded Moses. - -39:32 Thus was all the work of the tabernacle of the tent of the -congregation finished: and the children of Israel did according to all -that the LORD commanded Moses, so did they. - -39:33 And they brought the tabernacle unto Moses, the tent, and all -his furniture, his taches, his boards, his bars, and his pillars, and -his sockets, 39:34 And the covering of rams' skins dyed red, and the -covering of badgers' skins, and the vail of the covering, 39:35 The -ark of the testimony, and the staves thereof, and the mercy seat, -39:36 The table, and all the vessels thereof, and the shewbread, 39:37 -The pure candlestick, with the lamps thereof, even with the lamps to -be set in order, and all the vessels thereof, and the oil for light, -39:38 And the golden altar, and the anointing oil, and the sweet -incense, and the hanging for the tabernacle door, 39:39 The brasen -altar, and his grate of brass, his staves, and all his vessels, the -laver and his foot, 39:40 The hangings of the court, his pillars, and -his sockets, and the hanging for the court gate, his cords, and his -pins, and all the vessels of the service of the tabernacle, for the -tent of the congregation, 39:41 The cloths of service to do service in -the holy place, and the holy garments for Aaron the priest, and his -sons' garments, to minister in the priest's office. - -39:42 According to all that the LORD commanded Moses, so the children -of Israel made all the work. - -39:43 And Moses did look upon all the work, and, behold, they had done -it as the LORD had commanded, even so had they done it: and Moses -blessed them. - -40:1 And the LORD spake unto Moses, saying, 40:2 On the first day of -the first month shalt thou set up the tabernacle of the tent of the -congregation. - -40:3 And thou shalt put therein the ark of the testimony, and cover -the ark with the vail. - -40:4 And thou shalt bring in the table, and set in order the things -that are to be set in order upon it; and thou shalt bring in the -candlestick, and light the lamps thereof. - -40:5 And thou shalt set the altar of gold for the incense before the -ark of the testimony, and put the hanging of the door to the -tabernacle. - -40:6 And thou shalt set the altar of the burnt offering before the -door of the tabernacle of the tent of the congregation. - -40:7 And thou shalt set the laver between the tent of the congregation -and the altar, and shalt put water therein. - -40:8 And thou shalt set up the court round about, and hang up the -hanging at the court gate. - -40:9 And thou shalt take the anointing oil, and anoint the tabernacle, -and all that is therein, and shalt hallow it, and all the vessels -thereof: and it shall be holy. - -40:10 And thou shalt anoint the altar of the burnt offering, and all -his vessels, and sanctify the altar: and it shall be an altar most -holy. - -40:11 And thou shalt anoint the laver and his foot, and sanctify it. - -40:12 And thou shalt bring Aaron and his sons unto the door of the -tabernacle of the congregation, and wash them with water. - -40:13 And thou shalt put upon Aaron the holy garments, and anoint him, -and sanctify him; that he may minister unto me in the priest's office. - -40:14 And thou shalt bring his sons, and clothe them with coats: 40:15 -And thou shalt anoint them, as thou didst anoint their father, that -they may minister unto me in the priest's office: for their anointing -shall surely be an everlasting priesthood throughout their -generations. - -40:16 Thus did Moses: according to all that the LORD commanded him, so -did he. - -40:17 And it came to pass in the first month in the second year, on -the first day of the month, that the tabernacle was reared up. - -40:18 And Moses reared up the tabernacle, and fastened his sockets, -and set up the boards thereof, and put in the bars thereof, and reared -up his pillars. - -40:19 And he spread abroad the tent over the tabernacle, and put the -covering of the tent above upon it; as the LORD commanded Moses. - -40:20 And he took and put the testimony into the ark, and set the -staves on the ark, and put the mercy seat above upon the ark: 40:21 -And he brought the ark into the tabernacle, and set up the vail of the -covering, and covered the ark of the testimony; as the LORD commanded -Moses. - -40:22 And he put the table in the tent of the congregation, upon the -side of the tabernacle northward, without the vail. - -40:23 And he set the bread in order upon it before the LORD; as the -LORD had commanded Moses. - -40:24 And he put the candlestick in the tent of the congregation, over -against the table, on the side of the tabernacle southward. - -40:25 And he lighted the lamps before the LORD; as the LORD commanded -Moses. - -40:26 And he put the golden altar in the tent of the congregation -before the vail: 40:27 And he burnt sweet incense thereon; as the LORD -commanded Moses. - -40:28 And he set up the hanging at the door of the tabernacle. - -40:29 And he put the altar of burnt offering by the door of the -tabernacle of the tent of the congregation, and offered upon it the -burnt offering and the meat offering; as the LORD commanded Moses. - -40:30 And he set the laver between the tent of the congregation and -the altar, and put water there, to wash withal. - -40:31 And Moses and Aaron and his sons washed their hands and their -feet thereat: 40:32 When they went into the tent of the congregation, -and when they came near unto the altar, they washed; as the LORD -commanded Moses. - -40:33 And he reared up the court round about the tabernacle and the -altar, and set up the hanging of the court gate. So Moses finished the -work. - -40:34 Then a cloud covered the tent of the congregation, and the glory -of the LORD filled the tabernacle. - -40:35 And Moses was not able to enter into the tent of the -congregation, because the cloud abode thereon, and the glory of the -LORD filled the tabernacle. - -40:36 And when the cloud was taken up from over the tabernacle, the -children of Israel went onward in all their journeys: 40:37 But if the -cloud were not taken up, then they journeyed not till the day that it -was taken up. - -40:38 For the cloud of the LORD was upon the tabernacle by day, and -fire was on it by night, in the sight of all the house of Israel, -throughout all their journeys. - - - - -The Third Book of Moses: Called Leviticus - - -1:1 And the LORD called unto Moses, and spake unto him out of the -tabernacle of the congregation, saying, 1:2 Speak unto the children of -Israel, and say unto them, If any man of you bring an offering unto -the LORD, ye shall bring your offering of the cattle, even of the -herd, and of the flock. - -1:3 If his offering be a burnt sacrifice of the herd, let him offer a -male without blemish: he shall offer it of his own voluntary will at -the door of the tabernacle of the congregation before the LORD. - -1:4 And he shall put his hand upon the head of the burnt offering; and -it shall be accepted for him to make atonement for him. - -1:5 And he shall kill the bullock before the LORD: and the priests, -Aaron's sons, shall bring the blood, and sprinkle the blood round -about upon the altar that is by the door of the tabernacle of the -congregation. - -1:6 And he shall flay the burnt offering, and cut it into his pieces. - -1:7 And the sons of Aaron the priest shall put fire upon the altar, -and lay the wood in order upon the fire: 1:8 And the priests, Aaron's -sons, shall lay the parts, the head, and the fat, in order upon the -wood that is on the fire which is upon the altar: 1:9 But his inwards -and his legs shall he wash in water: and the priest shall burn all on -the altar, to be a burnt sacrifice, an offering made by fire, of a -sweet savour unto the LORD. - -1:10 And if his offering be of the flocks, namely, of the sheep, or of -the goats, for a burnt sacrifice; he shall bring it a male without -blemish. - -1:11 And he shall kill it on the side of the altar northward before -the LORD: and the priests, Aaron's sons, shall sprinkle his blood -round about upon the altar. - -1:12 And he shall cut it into his pieces, with his head and his fat: -and the priest shall lay them in order on the wood that is on the fire -which is upon the altar: 1:13 But he shall wash the inwards and the -legs with water: and the priest shall bring it all, and burn it upon -the altar: it is a burnt sacrifice, an offering made by fire, of a -sweet savour unto the LORD. - -1:14 And if the burnt sacrifice for his offering to the LORD be of -fowls, then he shall bring his offering of turtledoves, or of young -pigeons. - -1:15 And the priest shall bring it unto the altar, and wring off his -head, and burn it on the altar; and the blood thereof shall be wrung -out at the side of the altar: 1:16 And he shall pluck away his crop -with his feathers, and cast it beside the altar on the east part, by -the place of the ashes: 1:17 And he shall cleave it with the wings -thereof, but shall not divide it asunder: and the priest shall burn it -upon the altar, upon the wood that is upon the fire: it is a burnt -sacrifice, an offering made by fire, of a sweet savour unto the LORD. - -2:1 And when any will offer a meat offering unto the LORD, his -offering shall be of fine flour; and he shall pour oil upon it, and -put frankincense thereon: 2:2 And he shall bring it to Aaron's sons -the priests: and he shall take thereout his handful of the flour -thereof, and of the oil thereof, with all the frankincense thereof; -and the priest shall burn the memorial of it upon the altar, to be an -offering made by fire, of a sweet savour unto the LORD: 2:3 And the -remnant of the meat offering shall be Aaron's and his sons': it is a -thing most holy of the offerings of the LORD made by fire. - -2:4 And if thou bring an oblation of a meat offering baken in the -oven, it shall be unleavened cakes of fine flour mingled with oil, or -unleavened wafers anointed with oil. - -2:5 And if thy oblation be a meat offering baken in a pan, it shall be -of fine flour unleavened, mingled with oil. - -2:6 Thou shalt part it in pieces, and pour oil thereon: it is a meat -offering. - -2:7 And if thy oblation be a meat offering baken in the fryingpan, it -shall be made of fine flour with oil. - -2:8 And thou shalt bring the meat offering that is made of these -things unto the LORD: and when it is presented unto the priest, he -shall bring it unto the altar. - -2:9 And the priest shall take from the meat offering a memorial -thereof, and shall burn it upon the altar: it is an offering made by -fire, of a sweet savour unto the LORD. - -2:10 And that which is left of the meat offering shall be Aaron's and -his sons': it is a thing most holy of the offerings of the LORD made -by fire. - -2:11 No meat offering, which ye shall bring unto the LORD, shall be -made with leaven: for ye shall burn no leaven, nor any honey, in any -offering of the LORD made by fire. - -2:12 As for the oblation of the firstfruits, ye shall offer them unto -the LORD: but they shall not be burnt on the altar for a sweet savour. - -2:13 And every oblation of thy meat offering shalt thou season with -salt; neither shalt thou suffer the salt of the covenant of thy God to -be lacking from thy meat offering: with all thine offerings thou shalt -offer salt. - -2:14 And if thou offer a meat offering of thy firstfruits unto the -LORD, thou shalt offer for the meat offering of thy firstfruits green -ears of corn dried by the fire, even corn beaten out of full ears. - -2:15 And thou shalt put oil upon it, and lay frankincense thereon: it -is a meat offering. - -2:16 And the priest shall burn the memorial of it, part of the beaten -corn thereof, and part of the oil thereof, with all the frankincense -thereof: it is an offering made by fire unto the LORD. - -3:1 And if his oblation be a sacrifice of peace offering, if he offer -it of the herd; whether it be a male or female, he shall offer it -without blemish before the LORD. - -3:2 And he shall lay his hand upon the head of his offering, and kill -it at the door of the tabernacle of the congregation: and Aaron's sons -the priests shall sprinkle the blood upon the altar round about. - -3:3 And he shall offer of the sacrifice of the peace offering an -offering made by fire unto the LORD; the fat that covereth the -inwards, and all the fat that is upon the inwards, 3:4 And the two -kidneys, and the fat that is on them, which is by the flanks, and the -caul above the liver, with the kidneys, it shall he take away. - -3:5 And Aaron's sons shall burn it on the altar upon the burnt -sacrifice, which is upon the wood that is on the fire: it is an -offering made by fire, of a sweet savour unto the LORD. - -3:6 And if his offering for a sacrifice of peace offering unto the -LORD be of the flock; male or female, he shall offer it without -blemish. - -3:7 If he offer a lamb for his offering, then shall he offer it before -the LORD. - -3:8 And he shall lay his hand upon the head of his offering, and kill -it before the tabernacle of the congregation: and Aaron's sons shall -sprinkle the blood thereof round about upon the altar. - -3:9 And he shall offer of the sacrifice of the peace offering an -offering made by fire unto the LORD; the fat thereof, and the whole -rump, it shall he take off hard by the backbone; and the fat that -covereth the inwards, and all the fat that is upon the inwards, 3:10 -And the two kidneys, and the fat that is upon them, which is by the -flanks, and the caul above the liver, with the kidneys, it shall he -take away. - -3:11 And the priest shall burn it upon the altar: it is the food of -the offering made by fire unto the LORD. - -3:12 And if his offering be a goat, then he shall offer it before the -LORD. - -3:13 And he shall lay his hand upon the head of it, and kill it before -the tabernacle of the congregation: and the sons of Aaron shall -sprinkle the blood thereof upon the altar round about. - -3:14 And he shall offer thereof his offering, even an offering made by -fire unto the LORD; the fat that covereth the inwards, and all the fat -that is upon the inwards, 3:15 And the two kidneys, and the fat that -is upon them, which is by the flanks, and the caul above the liver, -with the kidneys, it shall he take away. - -3:16 And the priest shall burn them upon the altar: it is the food of -the offering made by fire for a sweet savour: all the fat is the -LORD's. - -3:17 It shall be a perpetual statute for your generations throughout -all your dwellings, that ye eat neither fat nor blood. - -4:1 And the LORD spake unto Moses, saying, 4:2 Speak unto the children -of Israel, saying, If a soul shall sin through ignorance against any -of the commandments of the LORD concerning things which ought not to -be done, and shall do against any of them: 4:3 If the priest that is -anointed do sin according to the sin of the people; then let him bring -for his sin, which he hath sinned, a young bullock without blemish -unto the LORD for a sin offering. - -4:4 And he shall bring the bullock unto the door of the tabernacle of -the congregation before the LORD; and shall lay his hand upon the -bullock's head, and kill the bullock before the LORD. - -4:5 And the priest that is anointed shall take of the bullock's blood, -and bring it to the tabernacle of the congregation: 4:6 And the priest -shall dip his finger in the blood, and sprinkle of the blood seven -times before the LORD, before the vail of the sanctuary. - -4:7 And the priest shall put some of the blood upon the horns of the -altar of sweet incense before the LORD, which is in the tabernacle of -the congregation; and shall pour all the blood of the bullock at the -bottom of the altar of the burnt offering, which is at the door of the -tabernacle of the congregation. - -4:8 And he shall take off from it all the fat of the bullock for the -sin offering; the fat that covereth the inwards, and all the fat that -is upon the inwards, 4:9 And the two kidneys, and the fat that is upon -them, which is by the flanks, and the caul above the liver, with the -kidneys, it shall he take away, 4:10 As it was taken off from the -bullock of the sacrifice of peace offerings: and the priest shall burn -them upon the altar of the burnt offering. - -4:11 And the skin of the bullock, and all his flesh, with his head, -and with his legs, and his inwards, and his dung, 4:12 Even the whole -bullock shall he carry forth without the camp unto a clean place, -where the ashes are poured out, and burn him on the wood with fire: -where the ashes are poured out shall he be burnt. - -4:13 And if the whole congregation of Israel sin through ignorance, -and the thing be hid from the eyes of the assembly, and they have done -somewhat against any of the commandments of the LORD concerning things -which should not be done, and are guilty; 4:14 When the sin, which -they have sinned against it, is known, then the congregation shall -offer a young bullock for the sin, and bring him before the tabernacle -of the congregation. - -4:15 And the elders of the congregation shall lay their hands upon the -head of the bullock before the LORD: and the bullock shall be killed -before the LORD. - -4:16 And the priest that is anointed shall bring of the bullock's -blood to the tabernacle of the congregation: 4:17 And the priest shall -dip his finger in some of the blood, and sprinkle it seven times -before the LORD, even before the vail. - -4:18 And he shall put some of the blood upon the horns of the altar -which is before the LORD, that is in the tabernacle of the -congregation, and shall pour out all the blood at the bottom of the -altar of the burnt offering, which is at the door of the tabernacle of -the congregation. - -4:19 And he shall take all his fat from him, and burn it upon the -altar. - -4:20 And he shall do with the bullock as he did with the bullock for a -sin offering, so shall he do with this: and the priest shall make an -atonement for them, and it shall be forgiven them. - -4:21 And he shall carry forth the bullock without the camp, and burn -him as he burned the first bullock: it is a sin offering for the -congregation. - -4:22 When a ruler hath sinned, and done somewhat through ignorance -against any of the commandments of the LORD his God concerning things -which should not be done, and is guilty; 4:23 Or if his sin, wherein -he hath sinned, come to his knowledge; he shall bring his offering, a -kid of the goats, a male without blemish: 4:24 And he shall lay his -hand upon the head of the goat, and kill it in the place where they -kill the burnt offering before the LORD: it is a sin offering. - -4:25 And the priest shall take of the blood of the sin offering with -his finger, and put it upon the horns of the altar of burnt offering, -and shall pour out his blood at the bottom of the altar of burnt -offering. - -4:26 And he shall burn all his fat upon the altar, as the fat of the -sacrifice of peace offerings: and the priest shall make an atonement -for him as concerning his sin, and it shall be forgiven him. - -4:27 And if any one of the common people sin through ignorance, while -he doeth somewhat against any of the commandments of the LORD -concerning things which ought not to be done, and be guilty; 4:28 Or -if his sin, which he hath sinned, come to his knowledge: then he shall -bring his offering, a kid of the goats, a female without blemish, for -his sin which he hath sinned. - -4:29 And he shall lay his hand upon the head of the sin offering, and -slay the sin offering in the place of the burnt offering. - -4:30 And the priest shall take of the blood thereof with his finger, -and put it upon the horns of the altar of burnt offering, and shall -pour out all the blood thereof at the bottom of the altar. - -4:31 And he shall take away all the fat thereof, as the fat is taken -away from off the sacrifice of peace offerings; and the priest shall -burn it upon the altar for a sweet savour unto the LORD; and the -priest shall make an atonement for him, and it shall be forgiven him. - -4:32 And if he bring a lamb for a sin offering, he shall bring it a -female without blemish. - -4:33 And he shall lay his hand upon the head of the sin offering, and -slay it for a sin offering in the place where they kill the burnt -offering. - -4:34 And the priest shall take of the blood of the sin offering with -his finger, and put it upon the horns of the altar of burnt offering, -and shall pour out all the blood thereof at the bottom of the altar: -4:35 And he shall take away all the fat thereof, as the fat of the -lamb is taken away from the sacrifice of the peace offerings; and the -priest shall burn them upon the altar, according to the offerings made -by fire unto the LORD: and the priest shall make an atonement for his -sin that he hath committed, and it shall be forgiven him. - -5:1 And if a soul sin, and hear the voice of swearing, and is a -witness, whether he hath seen or known of it; if he do not utter it, -then he shall bear his iniquity. - -5:2 Or if a soul touch any unclean thing, whether it be a carcase of -an unclean beast, or a carcase of unclean cattle, or the carcase of -unclean creeping things, and if it be hidden from him; he also shall -be unclean, and guilty. - -5:3 Or if he touch the uncleanness of man, whatsoever uncleanness it -be that a man shall be defiled withal, and it be hid from him; when he -knoweth of it, then he shall be guilty. - -5:4 Or if a soul swear, pronouncing with his lips to do evil, or to do -good, whatsoever it be that a man shall pronounce with an oath, and it -be hid from him; when he knoweth of it, then he shall be guilty in one -of these. - -5:5 And it shall be, when he shall be guilty in one of these things, -that he shall confess that he hath sinned in that thing: 5:6 And he -shall bring his trespass offering unto the LORD for his sin which he -hath sinned, a female from the flock, a lamb or a kid of the goats, -for a sin offering; and the priest shall make an atonement for him -concerning his sin. - -5:7 And if he be not able to bring a lamb, then he shall bring for his -trespass, which he hath committed, two turtledoves, or two young -pigeons, unto the LORD; one for a sin offering, and the other for a -burnt offering. - -5:8 And he shall bring them unto the priest, who shall offer that -which is for the sin offering first, and wring off his head from his -neck, but shall not divide it asunder: 5:9 And he shall sprinkle of -the blood of the sin offering upon the side of the altar; and the rest -of the blood shall be wrung out at the bottom of the altar: it is a -sin offering. - -5:10 And he shall offer the second for a burnt offering, according to -the manner: and the priest shall make an atonement for him for his sin -which he hath sinned, and it shall be forgiven him. - -5:11 But if he be not able to bring two turtledoves, or two young -pigeons, then he that sinned shall bring for his offering the tenth -part of an ephah of fine flour for a sin offering; he shall put no oil -upon it, neither shall he put any frankincense thereon: for it is a -sin offering. - -5:12 Then shall he bring it to the priest, and the priest shall take -his handful of it, even a memorial thereof, and burn it on the altar, -according to the offerings made by fire unto the LORD: it is a sin -offering. - -5:13 And the priest shall make an atonement for him as touching his -sin that he hath sinned in one of these, and it shall be forgiven him: -and the remnant shall be the priest's, as a meat offering. - -5:14 And the LORD spake unto Moses, saying, 5:15 If a soul commit a -trespass, and sin through ignorance, in the holy things of the LORD; -then he shall bring for his trespass unto the LORD a ram without -blemish out of the flocks, with thy estimation by shekels of silver, -after the shekel of the sanctuary, for a trespass offering. - -5:16 And he shall make amends for the harm that he hath done in the -holy thing, and shall add the fifth part thereto, and give it unto the -priest: and the priest shall make an atonement for him with the ram of -the trespass offering, and it shall be forgiven him. - -5:17 And if a soul sin, and commit any of these things which are -forbidden to be done by the commandments of the LORD; though he wist -it not, yet is he guilty, and shall bear his iniquity. - -5:18 And he shall bring a ram without blemish out of the flock, with -thy estimation, for a trespass offering, unto the priest: and the -priest shall make an atonement for him concerning his ignorance -wherein he erred and wist it not, and it shall be forgiven him. - -5:19 It is a trespass offering: he hath certainly trespassed against -the LORD. - -6:1 And the LORD spake unto Moses, saying, 6:2 If a soul sin, and -commit a trespass against the LORD, and lie unto his neighbour in that -which was delivered him to keep, or in fellowship, or in a thing taken -away by violence, or hath deceived his neighbour; 6:3 Or have found -that which was lost, and lieth concerning it, and sweareth falsely; in -any of all these that a man doeth, sinning therein: 6:4 Then it shall -be, because he hath sinned, and is guilty, that he shall restore that -which he took violently away, or the thing which he hath deceitfully -gotten, or that which was delivered him to keep, or the lost thing -which he found, 6:5 Or all that about which he hath sworn falsely; he -shall even restore it in the principal, and shall add the fifth part -more thereto, and give it unto him to whom it appertaineth, in the day -of his trespass offering. - -6:6 And he shall bring his trespass offering unto the LORD, a ram -without blemish out of the flock, with thy estimation, for a trespass -offering, unto the priest: 6:7 And the priest shall make an atonement -for him before the LORD: and it shall be forgiven him for any thing of -all that he hath done in trespassing therein. - -6:8 And the LORD spake unto Moses, saying, 6:9 Command Aaron and his -sons, saying, This is the law of the burnt offering: It is the burnt -offering, because of the burning upon the altar all night unto the -morning, and the fire of the altar shall be burning in it. - -6:10 And the priest shall put on his linen garment, and his linen -breeches shall he put upon his flesh, and take up the ashes which the -fire hath consumed with the burnt offering on the altar, and he shall -put them beside the altar. - -6:11 And he shall put off his garments, and put on other garments, and -carry forth the ashes without the camp unto a clean place. - -6:12 And the fire upon the altar shall be burning in it; it shall not -be put out: and the priest shall burn wood on it every morning, and -lay the burnt offering in order upon it; and he shall burn thereon the -fat of the peace offerings. - -6:13 The fire shall ever be burning upon the altar; it shall never go -out. - -6:14 And this is the law of the meat offering: the sons of Aaron shall -offer it before the LORD, before the altar. - -6:15 And he shall take of it his handful, of the flour of the meat -offering, and of the oil thereof, and all the frankincense which is -upon the meat offering, and shall burn it upon the altar for a sweet -savour, even the memorial of it, unto the LORD. - -6:16 And the remainder thereof shall Aaron and his sons eat: with -unleavened bread shall it be eaten in the holy place; in the court of -the tabernacle of the congregation they shall eat it. - -6:17 It shall not be baken with leaven. I have given it unto them for -their portion of my offerings made by fire; it is most holy, as is the -sin offering, and as the trespass offering. - -6:18 All the males among the children of Aaron shall eat of it. It -shall be a statute for ever in your generations concerning the -offerings of the LORD made by fire: every one that toucheth them shall -be holy. - -6:19 And the LORD spake unto Moses, saying, 6:20 This is the offering -of Aaron and of his sons, which they shall offer unto the LORD in the -day when he is anointed; the tenth part of an ephah of fine flour for -a meat offering perpetual, half of it in the morning, and half thereof -at night. - -6:21 In a pan it shall be made with oil; and when it is baken, thou -shalt bring it in: and the baken pieces of the meat offering shalt -thou offer for a sweet savour unto the LORD. - -6:22 And the priest of his sons that is anointed in his stead shall -offer it: it is a statute for ever unto the LORD; it shall be wholly -burnt. - -6:23 For every meat offering for the priest shall be wholly burnt: it -shall not be eaten. - -6:24 And the LORD spake unto Moses, saying, 6:25 Speak unto Aaron and -to his sons, saying, This is the law of the sin offering: In the place -where the burnt offering is killed shall the sin offering be killed -before the LORD: it is most holy. - -6:26 The priest that offereth it for sin shall eat it: in the holy -place shall it be eaten, in the court of the tabernacle of the -congregation. - -6:27 Whatsoever shall touch the flesh thereof shall be holy: and when -there is sprinkled of the blood thereof upon any garment, thou shalt -wash that whereon it was sprinkled in the holy place. - -6:28 But the earthen vessel wherein it is sodden shall be broken: and -if it be sodden in a brasen pot, it shall be both scoured, and rinsed -in water. - -6:29 All the males among the priests shall eat thereof: it is most -holy. - -6:30 And no sin offering, whereof any of the blood is brought into the -tabernacle of the congregation to reconcile withal in the holy place, -shall be eaten: it shall be burnt in the fire. - -7:1 Likewise this is the law of the trespass offering: it is most -holy. - -7:2 In the place where they kill the burnt offering shall they kill -the trespass offering: and the blood thereof shall he sprinkle round -about upon the altar. - -7:3 And he shall offer of it all the fat thereof; the rump, and the -fat that covereth the inwards, 7:4 And the two kidneys, and the fat -that is on them, which is by the flanks, and the caul that is above -the liver, with the kidneys, it shall he take away: 7:5 And the priest -shall burn them upon the altar for an offering made by fire unto the -LORD: it is a trespass offering. - -7:6 Every male among the priests shall eat thereof: it shall be eaten -in the holy place: it is most holy. - -7:7 As the sin offering is, so is the trespass offering: there is one -law for them: the priest that maketh atonement therewith shall have -it. - -7:8 And the priest that offereth any man's burnt offering, even the -priest shall have to himself the skin of the burnt offering which he -hath offered. - -7:9 And all the meat offering that is baken in the oven, and all that -is dressed in the fryingpan, and in the pan, shall be the priest's -that offereth it. - -7:10 And every meat offering, mingled with oil, and dry, shall all the -sons of Aaron have, one as much as another. - -7:11 And this is the law of the sacrifice of peace offerings, which he -shall offer unto the LORD. - -7:12 If he offer it for a thanksgiving, then he shall offer with the -sacrifice of thanksgiving unleavened cakes mingled with oil, and -unleavened wafers anointed with oil, and cakes mingled with oil, of -fine flour, fried. - -7:13 Besides the cakes, he shall offer for his offering leavened bread -with the sacrifice of thanksgiving of his peace offerings. - -7:14 And of it he shall offer one out of the whole oblation for an -heave offering unto the LORD, and it shall be the priest's that -sprinkleth the blood of the peace offerings. - -7:15 And the flesh of the sacrifice of his peace offerings for -thanksgiving shall be eaten the same day that it is offered; he shall -not leave any of it until the morning. - -7:16 But if the sacrifice of his offering be a vow, or a voluntary -offering, it shall be eaten the same day that he offereth his -sacrifice: and on the morrow also the remainder of it shall be eaten: -7:17 But the remainder of the flesh of the sacrifice on the third day -shall be burnt with fire. - -7:18 And if any of the flesh of the sacrifice of his peace offerings -be eaten at all on the third day, it shall not be accepted, neither -shall it be imputed unto him that offereth it: it shall be an -abomination, and the soul that eateth of it shall bear his iniquity. - -7:19 And the flesh that toucheth any unclean thing shall not be eaten; -it shall be burnt with fire: and as for the flesh, all that be clean -shall eat thereof. - -7:20 But the soul that eateth of the flesh of the sacrifice of peace -offerings, that pertain unto the LORD, having his uncleanness upon -him, even that soul shall be cut off from his people. - -7:21 Moreover the soul that shall touch any unclean thing, as the -uncleanness of man, or any unclean beast, or any abominable unclean -thing, and eat of the flesh of the sacrifice of peace offerings, which -pertain unto the LORD, even that soul shall be cut off from his -people. - -7:22 And the LORD spake unto Moses, saying, 7:23 Speak unto the -children of Israel, saying, Ye shall eat no manner of fat, of ox, or -of sheep, or of goat. - -7:24 And the fat of the beast that dieth of itself, and the fat of -that which is torn with beasts, may be used in any other use: but ye -shall in no wise eat of it. - -7:25 For whosoever eateth the fat of the beast, of which men offer an -offering made by fire unto the LORD, even the soul that eateth it -shall be cut off from his people. - -7:26 Moreover ye shall eat no manner of blood, whether it be of fowl -or of beast, in any of your dwellings. - -7:27 Whatsoever soul it be that eateth any manner of blood, even that -soul shall be cut off from his people. - -7:28 And the LORD spake unto Moses, saying, 7:29 Speak unto the -children of Israel, saying, He that offereth the sacrifice of his -peace offerings unto the LORD shall bring his oblation unto the LORD -of the sacrifice of his peace offerings. - -7:30 His own hands shall bring the offerings of the LORD made by fire, -the fat with the breast, it shall he bring, that the breast may be -waved for a wave offering before the LORD. - -7:31 And the priest shall burn the fat upon the altar: but the breast -shall be Aaron's and his sons'. - -7:32 And the right shoulder shall ye give unto the priest for an heave -offering of the sacrifices of your peace offerings. - -7:33 He among the sons of Aaron, that offereth the blood of the peace -offerings, and the fat, shall have the right shoulder for his part. - -7:34 For the wave breast and the heave shoulder have I taken of the -children of Israel from off the sacrifices of their peace offerings, -and have given them unto Aaron the priest and unto his sons by a -statute for ever from among the children of Israel. - -7:35 This is the portion of the anointing of Aaron, and of the -anointing of his sons, out of the offerings of the LORD made by fire, -in the day when he presented them to minister unto the LORD in the -priest's office; 7:36 Which the LORD commanded to be given them of the -children of Israel, in the day that he anointed them, by a statute for -ever throughout their generations. - -7:37 This is the law of the burnt offering, of the meat offering, and -of the sin offering, and of the trespass offering, and of the -consecrations, and of the sacrifice of the peace offerings; 7:38 Which -the LORD commanded Moses in mount Sinai, in the day that he commanded -the children of Israel to offer their oblations unto the LORD, in the -wilderness of Sinai. - -8:1 And the LORD spake unto Moses, saying, 8:2 Take Aaron and his sons -with him, and the garments, and the anointing oil, and a bullock for -the sin offering, and two rams, and a basket of unleavened bread; 8:3 -And gather thou all the congregation together unto the door of the -tabernacle of the congregation. - -8:4 And Moses did as the LORD commanded him; and the assembly was -gathered together unto the door of the tabernacle of the congregation. - -8:5 And Moses said unto the congregation, This is the thing which the -LORD commanded to be done. - -8:6 And Moses brought Aaron and his sons, and washed them with water. - -8:7 And he put upon him the coat, and girded him with the girdle, and -clothed him with the robe, and put the ephod upon him, and he girded -him with the curious girdle of the ephod, and bound it unto him -therewith. - -8:8 And he put the breastplate upon him: also he put in the -breastplate the Urim and the Thummim. - -8:9 And he put the mitre upon his head; also upon the mitre, even upon -his forefront, did he put the golden plate, the holy crown; as the -LORD commanded Moses. - -8:10 And Moses took the anointing oil, and anointed the tabernacle and -all that was therein, and sanctified them. - -8:11 And he sprinkled thereof upon the altar seven times, and anointed -the altar and all his vessels, both the laver and his foot, to -sanctify them. - -8:12 And he poured of the anointing oil upon Aaron's head, and -anointed him, to sanctify him. - -8:13 And Moses brought Aaron's sons, and put coats upon them, and -girded them with girdles, and put bonnets upon them; as the LORD -commanded Moses. - -8:14 And he brought the bullock for the sin offering: and Aaron and -his sons laid their hands upon the head of the bullock for the sin -offering. - -8:15 And he slew it; and Moses took the blood, and put it upon the -horns of the altar round about with his finger, and purified the -altar, and poured the blood at the bottom of the altar, and sanctified -it, to make reconciliation upon it. - -8:16 And he took all the fat that was upon the inwards, and the caul -above the liver, and the two kidneys, and their fat, and Moses burned -it upon the altar. - -8:17 But the bullock, and his hide, his flesh, and his dung, he burnt -with fire without the camp; as the LORD commanded Moses. - -8:18 And he brought the ram for the burnt offering: and Aaron and his -sons laid their hands upon the head of the ram. - -8:19 And he killed it; and Moses sprinkled the blood upon the altar -round about. - -8:20 And he cut the ram into pieces; and Moses burnt the head, and the -pieces, and the fat. - -8:21 And he washed the inwards and the legs in water; and Moses burnt -the whole ram upon the altar: it was a burnt sacrifice for a sweet -savour, and an offering made by fire unto the LORD; as the LORD -commanded Moses. - -8:22 And he brought the other ram, the ram of consecration: and Aaron -and his sons laid their hands upon the head of the ram. - -8:23 And he slew it; and Moses took of the blood of it, and put it -upon the tip of Aaron's right ear, and upon the thumb of his right -hand, and upon the great toe of his right foot. - -8:24 And he brought Aaron's sons, and Moses put of the blood upon the -tip of their right ear, and upon the thumbs of their right hands, and -upon the great toes of their right feet: and Moses sprinkled the blood -upon the altar round about. - -8:25 And he took the fat, and the rump, and all the fat that was upon -the inwards, and the caul above the liver, and the two kidneys, and -their fat, and the right shoulder: 8:26 And out of the basket of -unleavened bread, that was before the LORD, he took one unleavened -cake, and a cake of oiled bread, and one wafer, and put them on the -fat, and upon the right shoulder: 8:27 And he put all upon Aaron's -hands, and upon his sons' hands, and waved them for a wave offering -before the LORD. - -8:28 And Moses took them from off their hands, and burnt them on the -altar upon the burnt offering: they were consecrations for a sweet -savour: it is an offering made by fire unto the LORD. - -8:29 And Moses took the breast, and waved it for a wave offering -before the LORD: for of the ram of consecration it was Moses' part; as -the LORD commanded Moses. - -8:30 And Moses took of the anointing oil, and of the blood which was -upon the altar, and sprinkled it upon Aaron, and upon his garments, -and upon his sons, and upon his sons' garments with him; and -sanctified Aaron, and his garments, and his sons, and his sons' -garments with him. - -8:31 And Moses said unto Aaron and to his sons, Boil the flesh at the -door of the tabernacle of the congregation: and there eat it with the -bread that is in the basket of consecrations, as I commanded, saying, -Aaron and his sons shall eat it. - -8:32 And that which remaineth of the flesh and of the bread shall ye -burn with fire. - -8:33 And ye shall not go out of the door of the tabernacle of the -congregation in seven days, until the days of your consecration be at -an end: for seven days shall he consecrate you. - -8:34 As he hath done this day, so the LORD hath commanded to do, to -make an atonement for you. - -8:35 Therefore shall ye abide at the door of the tabernacle of the -congregation day and night seven days, and keep the charge of the -LORD, that ye die not: for so I am commanded. - -8:36 So Aaron and his sons did all things which the LORD commanded by -the hand of Moses. - -9:1 And it came to pass on the eighth day, that Moses called Aaron and -his sons, and the elders of Israel; 9:2 And he said unto Aaron, Take -thee a young calf for a sin offering, and a ram for a burnt offering, -without blemish, and offer them before the LORD. - -9:3 And unto the children of Israel thou shalt speak, saying, Take ye -a kid of the goats for a sin offering; and a calf and a lamb, both of -the first year, without blemish, for a burnt offering; 9:4 Also a -bullock and a ram for peace offerings, to sacrifice before the LORD; -and a meat offering mingled with oil: for to day the LORD will appear -unto you. - -9:5 And they brought that which Moses commanded before the tabernacle -of the congregation: and all the congregation drew near and stood -before the LORD. - -9:6 And Moses said, This is the thing which the LORD commanded that ye -should do: and the glory of the LORD shall appear unto you. - -9:7 And Moses said unto Aaron, Go unto the altar, and offer thy sin -offering, and thy burnt offering, and make an atonement for thyself, -and for the people: and offer the offering of the people, and make an -atonement for them; as the LORD commanded. - -9:8 Aaron therefore went unto the altar, and slew the calf of the sin -offering, which was for himself. - -9:9 And the sons of Aaron brought the blood unto him: and he dipped -his finger in the blood, and put it upon the horns of the altar, and -poured out the blood at the bottom of the altar: 9:10 But the fat, and -the kidneys, and the caul above the liver of the sin offering, he -burnt upon the altar; as the LORD commanded Moses. - -9:11 And the flesh and the hide he burnt with fire without the camp. - -9:12 And he slew the burnt offering; and Aaron's sons presented unto -him the blood, which he sprinkled round about upon the altar. - -9:13 And they presented the burnt offering unto him, with the pieces -thereof, and the head: and he burnt them upon the altar. - -9:14 And he did wash the inwards and the legs, and burnt them upon the -burnt offering on the altar. - -9:15 And he brought the people's offering, and took the goat, which -was the sin offering for the people, and slew it, and offered it for -sin, as the first. - -9:16 And he brought the burnt offering, and offered it according to -the manner. - -9:17 And he brought the meat offering, and took an handful thereof, -and burnt it upon the altar, beside the burnt sacrifice of the -morning. - -9:18 He slew also the bullock and the ram for a sacrifice of peace -offerings, which was for the people: and Aaron's sons presented unto -him the blood, which he sprinkled upon the altar round about, 9:19 And -the fat of the bullock and of the ram, the rump, and that which -covereth the inwards, and the kidneys, and the caul above the liver: -9:20 And they put the fat upon the breasts, and he burnt the fat upon -the altar: 9:21 And the breasts and the right shoulder Aaron waved for -a wave offering before the LORD; as Moses commanded. - -9:22 And Aaron lifted up his hand toward the people, and blessed them, -and came down from offering of the sin offering, and the burnt -offering, and peace offerings. - -9:23 And Moses and Aaron went into the tabernacle of the congregation, -and came out, and blessed the people: and the glory of the LORD -appeared unto all the people. - -9:24 And there came a fire out from before the LORD, and consumed upon -the altar the burnt offering and the fat: which when all the people -saw, they shouted, and fell on their faces. - -10:1 And Nadab and Abihu, the sons of Aaron, took either of them his -censer, and put fire therein, and put incense thereon, and offered -strange fire before the LORD, which he commanded them not. - -10:2 And there went out fire from the LORD, and devoured them, and -they died before the LORD. - -10:3 Then Moses said unto Aaron, This is it that the LORD spake, -saying, I will be sanctified in them that come nigh me, and before all -the people I will be glorified. And Aaron held his peace. - -10:4 And Moses called Mishael and Elzaphan, the sons of Uzziel the -uncle of Aaron, and said unto them, Come near, carry your brethren -from before the sanctuary out of the camp. - -10:5 So they went near, and carried them in their coats out of the -camp; as Moses had said. - -10:6 And Moses said unto Aaron, and unto Eleazar and unto Ithamar, his -sons, Uncover not your heads, neither rend your clothes; lest ye die, -and lest wrath come upon all the people: but let your brethren, the -whole house of Israel, bewail the burning which the LORD hath kindled. - -10:7 And ye shall not go out from the door of the tabernacle of the -congregation, lest ye die: for the anointing oil of the LORD is upon -you. And they did according to the word of Moses. - -10:8 And the LORD spake unto Aaron, saying, 10:9 Do not drink wine nor -strong drink, thou, nor thy sons with thee, when ye go into the -tabernacle of the congregation, lest ye die: it shall be a statute for -ever throughout your generations: 10:10 And that ye may put difference -between holy and unholy, and between unclean and clean; 10:11 And that -ye may teach the children of Israel all the statutes which the LORD -hath spoken unto them by the hand of Moses. - -10:12 And Moses spake unto Aaron, and unto Eleazar and unto Ithamar, -his sons that were left, Take the meat offering that remaineth of the -offerings of the LORD made by fire, and eat it without leaven beside -the altar: for it is most holy: 10:13 And ye shall eat it in the holy -place, because it is thy due, and thy sons' due, of the sacrifices of -the LORD made by fire: for so I am commanded. - -10:14 And the wave breast and heave shoulder shall ye eat in a clean -place; thou, and thy sons, and thy daughters with thee: for they be -thy due, and thy sons' due, which are given out of the sacrifices of -peace offerings of the children of Israel. - -10:15 The heave shoulder and the wave breast shall they bring with the -offerings made by fire of the fat, to wave it for a wave offering -before the LORD; and it shall be thine, and thy sons' with thee, by a -statute for ever; as the LORD hath commanded. - -10:16 And Moses diligently sought the goat of the sin offering, and, -behold, it was burnt: and he was angry with Eleazar and Ithamar, the -sons of Aaron which were left alive, saying, 10:17 Wherefore have ye -not eaten the sin offering in the holy place, seeing it is most holy, -and God hath given it you to bear the iniquity of the congregation, to -make atonement for them before the LORD? 10:18 Behold, the blood of -it was not brought in within the holy place: ye should indeed have -eaten it in the holy place, as I commanded. - -10:19 And Aaron said unto Moses, Behold, this day have they offered -their sin offering and their burnt offering before the LORD; and such -things have befallen me: and if I had eaten the sin offering to day, -should it have been accepted in the sight of the LORD? 10:20 And when -Moses heard that, he was content. - -11:1 And the LORD spake unto Moses and to Aaron, saying unto them, -11:2 Speak unto the children of Israel, saying, These are the beasts -which ye shall eat among all the beasts that are on the earth. - -11:3 Whatsoever parteth the hoof, and is clovenfooted, and cheweth the -cud, among the beasts, that shall ye eat. - -11:4 Nevertheless these shall ye not eat of them that chew the cud, or -of them that divide the hoof: as the camel, because he cheweth the -cud, but divideth not the hoof; he is unclean unto you. - -11:5 And the coney, because he cheweth the cud, but divideth not the -hoof; he is unclean unto you. - -11:6 And the hare, because he cheweth the cud, but divideth not the -hoof; he is unclean unto you. - -11:7 And the swine, though he divide the hoof, and be clovenfooted, -yet he cheweth not the cud; he is unclean to you. - -11:8 Of their flesh shall ye not eat, and their carcase shall ye not -touch; they are unclean to you. - -11:9 These shall ye eat of all that are in the waters: whatsoever hath -fins and scales in the waters, in the seas, and in the rivers, them -shall ye eat. - -11:10 And all that have not fins and scales in the seas, and in the -rivers, of all that move in the waters, and of any living thing which -is in the waters, they shall be an abomination unto you: 11:11 They -shall be even an abomination unto you; ye shall not eat of their -flesh, but ye shall have their carcases in abomination. - -11:12 Whatsoever hath no fins nor scales in the waters, that shall be -an abomination unto you. - -11:13 And these are they which ye shall have in abomination among the -fowls; they shall not be eaten, they are an abomination: the eagle, -and the ossifrage, and the ospray, 11:14 And the vulture, and the kite -after his kind; 11:15 Every raven after his kind; 11:16 And the owl, -and the night hawk, and the cuckow, and the hawk after his kind, 11:17 -And the little owl, and the cormorant, and the great owl, 11:18 And -the swan, and the pelican, and the gier eagle, 11:19 And the stork, -the heron after her kind, and the lapwing, and the bat. - -11:20 All fowls that creep, going upon all four, shall be an -abomination unto you. - -11:21 Yet these may ye eat of every flying creeping thing that goeth -upon all four, which have legs above their feet, to leap withal upon -the earth; 11:22 Even these of them ye may eat; the locust after his -kind, and the bald locust after his kind, and the beetle after his -kind, and the grasshopper after his kind. - -11:23 But all other flying creeping things, which have four feet, -shall be an abomination unto you. - -11:24 And for these ye shall be unclean: whosoever toucheth the -carcase of them shall be unclean until the even. - -11:25 And whosoever beareth ought of the carcase of them shall wash -his clothes, and be unclean until the even. - -11:26 The carcases of every beast which divideth the hoof, and is not -clovenfooted, nor cheweth the cud, are unclean unto you: every one -that toucheth them shall be unclean. - -11:27 And whatsoever goeth upon his paws, among all manner of beasts -that go on all four, those are unclean unto you: whoso toucheth their -carcase shall be unclean until the even. - -11:28 And he that beareth the carcase of them shall wash his clothes, -and be unclean until the even: they are unclean unto you. - -11:29 These also shall be unclean unto you among the creeping things -that creep upon the earth; the weasel, and the mouse, and the tortoise -after his kind, 11:30 And the ferret, and the chameleon, and the -lizard, and the snail, and the mole. - -11:31 These are unclean to you among all that creep: whosoever doth -touch them, when they be dead, shall be unclean until the even. - -11:32 And upon whatsoever any of them, when they are dead, doth fall, -it shall be unclean; whether it be any vessel of wood, or raiment, or -skin, or sack, whatsoever vessel it be, wherein any work is done, it -must be put into water, and it shall be unclean until the even; so it -shall be cleansed. - -11:33 And every earthen vessel, whereinto any of them falleth, -whatsoever is in it shall be unclean; and ye shall break it. - -11:34 Of all meat which may be eaten, that on which such water cometh -shall be unclean: and all drink that may be drunk in every such vessel -shall be unclean. - -11:35 And every thing whereupon any part of their carcase falleth -shall be unclean; whether it be oven, or ranges for pots, they shall -be broken down: for they are unclean and shall be unclean unto you. - -11:36 Nevertheless a fountain or pit, wherein there is plenty of -water, shall be clean: but that which toucheth their carcase shall be -unclean. - -11:37 And if any part of their carcase fall upon any sowing seed which -is to be sown, it shall be clean. - -11:38 But if any water be put upon the seed, and any part of their -carcase fall thereon, it shall be unclean unto you. - -11:39 And if any beast, of which ye may eat, die; he that toucheth the -carcase thereof shall be unclean until the even. - -11:40 And he that eateth of the carcase of it shall wash his clothes, -and be unclean until the even: he also that beareth the carcase of it -shall wash his clothes, and be unclean until the even. - -11:41 And every creeping thing that creepeth upon the earth shall be -an abomination; it shall not be eaten. - -11:42 Whatsoever goeth upon the belly, and whatsoever goeth upon all -four, or whatsoever hath more feet among all creeping things that -creep upon the earth, them ye shall not eat; for they are an -abomination. - -11:43 Ye shall not make yourselves abominable with any creeping thing -that creepeth, neither shall ye make yourselves unclean with them, -that ye should be defiled thereby. - -11:44 For I am the LORD your God: ye shall therefore sanctify -yourselves, and ye shall be holy; for I am holy: neither shall ye -defile yourselves with any manner of creeping thing that creepeth upon -the earth. - -11:45 For I am the LORD that bringeth you up out of the land of Egypt, -to be your God: ye shall therefore be holy, for I am holy. - -11:46 This is the law of the beasts, and of the fowl, and of every -living creature that moveth in the waters, and of every creature that -creepeth upon the earth: 11:47 To make a difference between the -unclean and the clean, and between the beast that may be eaten and the -beast that may not be eaten. - -12:1 And the LORD spake unto Moses, saying, 12:2 Speak unto the -children of Israel, saying, If a woman have conceived seed, and born a -man child: then she shall be unclean seven days; according to the days -of the separation for her infirmity shall she be unclean. - -12:3 And in the eighth day the flesh of his foreskin shall be -circumcised. - -12:4 And she shall then continue in the blood of her purifying three -and thirty days; she shall touch no hallowed thing, nor come into the -sanctuary, until the days of her purifying be fulfilled. - -12:5 But if she bear a maid child, then she shall be unclean two -weeks, as in her separation: and she shall continue in the blood of -her purifying threescore and six days. - -12:6 And when the days of her purifying are fulfilled, for a son, or -for a daughter, she shall bring a lamb of the first year for a burnt -offering, and a young pigeon, or a turtledove, for a sin offering, -unto the door of the tabernacle of the congregation, unto the priest: -12:7 Who shall offer it before the LORD, and make an atonement for -her; and she shall be cleansed from the issue of her blood. This is -the law for her that hath born a male or a female. - -12:8 And if she be not able to bring a lamb, then she shall bring two -turtles, or two young pigeons; the one for the burnt offering, and the -other for a sin offering: and the priest shall make an atonement for -her, and she shall be clean. - -13:1 And the LORD spake unto Moses and Aaron, saying, 13:2 When a man -shall have in the skin of his flesh a rising, a scab, or bright spot, -and it be in the skin of his flesh like the plague of leprosy; then he -shall be brought unto Aaron the priest, or unto one of his sons the -priests: 13:3 And the priest shall look on the plague in the skin of -the flesh: and when the hair in the plague is turned white, and the -plague in sight be deeper than the skin of his flesh, it is a plague -of leprosy: and the priest shall look on him, and pronounce him -unclean. - -13:4 If the bright spot be white in the skin of his flesh, and in -sight be not deeper than the skin, and the hair thereof be not turned -white; then the priest shall shut up him that hath the plague seven -days: 13:5 And the priest shall look on him the seventh day: and, -behold, if the plague in his sight be at a stay, and the plague spread -not in the skin; then the priest shall shut him up seven days more: -13:6 And the priest shall look on him again the seventh day: and, -behold, if the plague be somewhat dark, and the plague spread not in -the skin, the priest shall pronounce him clean: it is but a scab: and -he shall wash his clothes, and be clean. - -13:7 But if the scab spread much abroad in the skin, after that he -hath been seen of the priest for his cleansing, he shall be seen of -the priest again. - -13:8 And if the priest see that, behold, the scab spreadeth in the -skin, then the priest shall pronounce him unclean: it is a leprosy. - -13:9 When the plague of leprosy is in a man, then he shall be brought -unto the priest; 13:10 And the priest shall see him: and, behold, if -the rising be white in the skin, and it have turned the hair white, -and there be quick raw flesh in the rising; 13:11 It is an old leprosy -in the skin of his flesh, and the priest shall pronounce him unclean, -and shall not shut him up: for he is unclean. - -13:12 And if a leprosy break out abroad in the skin, and the leprosy -cover all the skin of him that hath the plague from his head even to -his foot, wheresoever the priest looketh; 13:13 Then the priest shall -consider: and, behold, if the leprosy have covered all his flesh, he -shall pronounce him clean that hath the plague: it is all turned -white: he is clean. - -13:14 But when raw flesh appeareth in him, he shall be unclean. - -13:15 And the priest shall see the raw flesh, and pronounce him to be -unclean: for the raw flesh is unclean: it is a leprosy. - -13:16 Or if the raw flesh turn again, and be changed unto white, he -shall come unto the priest; 13:17 And the priest shall see him: and, -behold, if the plague be turned into white; then the priest shall -pronounce him clean that hath the plague: he is clean. - -13:18 The flesh also, in which, even in the skin thereof, was a boil, -and is healed, 13:19 And in the place of the boil there be a white -rising, or a bright spot, white, and somewhat reddish, and it be -shewed to the priest; 13:20 And if, when the priest seeth it, behold, -it be in sight lower than the skin, and the hair thereof be turned -white; the priest shall pronounce him unclean: it is a plague of -leprosy broken out of the boil. - -13:21 But if the priest look on it, and, behold, there be no white -hairs therein, and if it be not lower than the skin, but be somewhat -dark; then the priest shall shut him up seven days: 13:22 And if it -spread much abroad in the skin, then the priest shall pronounce him -unclean: it is a plague. - -13:23 But if the bright spot stay in his place, and spread not, it is -a burning boil; and the priest shall pronounce him clean. - -13:24 Or if there be any flesh, in the skin whereof there is a hot -burning, and the quick flesh that burneth have a white bright spot, -somewhat reddish, or white; 13:25 Then the priest shall look upon it: -and, behold, if the hair in the bright spot be turned white, and it be -in sight deeper than the skin; it is a leprosy broken out of the -burning: wherefore the priest shall pronounce him unclean: it is the -plague of leprosy. - -13:26 But if the priest look on it, and, behold, there be no white -hair in the bright spot, and it be no lower than the other skin, but -be somewhat dark; then the priest shall shut him up seven days: 13:27 -And the priest shall look upon him the seventh day: and if it be -spread much abroad in the skin, then the priest shall pronounce him -unclean: it is the plague of leprosy. - -13:28 And if the bright spot stay in his place, and spread not in the -skin, but it be somewhat dark; it is a rising of the burning, and the -priest shall pronounce him clean: for it is an inflammation of the -burning. - -13:29 If a man or woman have a plague upon the head or the beard; -13:30 Then the priest shall see the plague: and, behold, if it be in -sight deeper than the skin; and there be in it a yellow thin hair; -then the priest shall pronounce him unclean: it is a dry scall, even a -leprosy upon the head or beard. - -13:31 And if the priest look on the plague of the scall, and, behold, -it be not in sight deeper than the skin, and that there is no black -hair in it; then the priest shall shut up him that hath the plague of -the scall seven days: 13:32 And in the seventh day the priest shall -look on the plague: and, behold, if the scall spread not, and there be -in it no yellow hair, and the scall be not in sight deeper than the -skin; 13:33 He shall be shaven, but the scall shall he not shave; and -the priest shall shut up him that hath the scall seven days more: -13:34 And in the seventh day the priest shall look on the scall: and, -behold, if the scall be not spread in the skin, nor be in sight deeper -than the skin; then the priest shall pronounce him clean: and he shall -wash his clothes, and be clean. - -13:35 But if the scall spread much in the skin after his cleansing; -13:36 Then the priest shall look on him: and, behold, if the scall be -spread in the skin, the priest shall not seek for yellow hair; he is -unclean. - -13:37 But if the scall be in his sight at a stay, and that there is -black hair grown up therein; the scall is healed, he is clean: and the -priest shall pronounce him clean. - -13:38 If a man also or a woman have in the skin of their flesh bright -spots, even white bright spots; 13:39 Then the priest shall look: and, -behold, if the bright spots in the skin of their flesh be darkish -white; it is a freckled spot that groweth in the skin; he is clean. - -13:40 And the man whose hair is fallen off his head, he is bald; yet -is he clean. - -13:41 And he that hath his hair fallen off from the part of his head -toward his face, he is forehead bald: yet is he clean. - -13:42 And if there be in the bald head, or bald forehead, a white -reddish sore; it is a leprosy sprung up in his bald head, or his bald -forehead. - -13:43 Then the priest shall look upon it: and, behold, if the rising -of the sore be white reddish in his bald head, or in his bald -forehead, as the leprosy appeareth in the skin of the flesh; 13:44 He -is a leprous man, he is unclean: the priest shall pronounce him -utterly unclean; his plague is in his head. - -13:45 And the leper in whom the plague is, his clothes shall be rent, -and his head bare, and he shall put a covering upon his upper lip, and -shall cry, Unclean, unclean. - -13:46 All the days wherein the plague shall be in him he shall be -defiled; he is unclean: he shall dwell alone; without the camp shall -his habitation be. - -13:47 The garment also that the plague of leprosy is in, whether it be -a woollen garment, or a linen garment; 13:48 Whether it be in the -warp, or woof; of linen, or of woollen; whether in a skin, or in any -thing made of skin; 13:49 And if the plague be greenish or reddish in -the garment, or in the skin, either in the warp, or in the woof, or in -any thing of skin; it is a plague of leprosy, and shall be shewed unto -the priest: 13:50 And the priest shall look upon the plague, and shut -up it that hath the plague seven days: 13:51 And he shall look on the -plague on the seventh day: if the plague be spread in the garment, -either in the warp, or in the woof, or in a skin, or in any work that -is made of skin; the plague is a fretting leprosy; it is unclean. - -13:52 He shall therefore burn that garment, whether warp or woof, in -woollen or in linen, or any thing of skin, wherein the plague is: for -it is a fretting leprosy; it shall be burnt in the fire. - -13:53 And if the priest shall look, and, behold, the plague be not -spread in the garment, either in the warp, or in the woof, or in any -thing of skin; 13:54 Then the priest shall command that they wash the -thing wherein the plague is, and he shall shut it up seven days more: -13:55 And the priest shall look on the plague, after that it is -washed: and, behold, if the plague have not changed his colour, and -the plague be not spread; it is unclean; thou shalt burn it in the -fire; it is fret inward, whether it be bare within or without. - -13:56 And if the priest look, and, behold, the plague be somewhat dark -after the washing of it; then he shall rend it out of the garment, or -out of the skin, or out of the warp, or out of the woof: 13:57 And if -it appear still in the garment, either in the warp, or in the woof, or -in any thing of skin; it is a spreading plague: thou shalt burn that -wherein the plague is with fire. - -13:58 And the garment, either warp, or woof, or whatsoever thing of -skin it be, which thou shalt wash, if the plague be departed from -them, then it shall be washed the second time, and shall be clean. - -13:59 This is the law of the plague of leprosy in a garment of woollen -or linen, either in the warp, or woof, or any thing of skins, to -pronounce it clean, or to pronounce it unclean. - -14:1 And the LORD spake unto Moses, saying, 14:2 This shall be the law -of the leper in the day of his cleansing: He shall be brought unto the -priest: 14:3 And the priest shall go forth out of the camp; and the -priest shall look, and, behold, if the plague of leprosy be healed in -the leper; 14:4 Then shall the priest command to take for him that is -to be cleansed two birds alive and clean, and cedar wood, and scarlet, -and hyssop: 14:5 And the priest shall command that one of the birds be -killed in an earthen vessel over running water: 14:6 As for the living -bird, he shall take it, and the cedar wood, and the scarlet, and the -hyssop, and shall dip them and the living bird in the blood of the -bird that was killed over the running water: 14:7 And he shall -sprinkle upon him that is to be cleansed from the leprosy seven times, -and shall pronounce him clean, and shall let the living bird loose -into the open field. - -14:8 And he that is to be cleansed shall wash his clothes, and shave -off all his hair, and wash himself in water, that he may be clean: and -after that he shall come into the camp, and shall tarry abroad out of -his tent seven days. - -14:9 But it shall be on the seventh day, that he shall shave all his -hair off his head and his beard and his eyebrows, even all his hair he -shall shave off: and he shall wash his clothes, also he shall wash his -flesh in water, and he shall be clean. - -14:10 And on the eighth day he shall take two he lambs without -blemish, and one ewe lamb of the first year without blemish, and three -tenth deals of fine flour for a meat offering, mingled with oil, and -one log of oil. - -14:11 And the priest that maketh him clean shall present the man that -is to be made clean, and those things, before the LORD, at the door of -the tabernacle of the congregation: 14:12 And the priest shall take -one he lamb, and offer him for a trespass offering, and the log of -oil, and wave them for a wave offering before the LORD: 14:13 And he -shall slay the lamb in the place where he shall kill the sin offering -and the burnt offering, in the holy place: for as the sin offering is -the priest's, so is the trespass offering: it is most holy: 14:14 And -the priest shall take some of the blood of the trespass offering, and -the priest shall put it upon the tip of the right ear of him that is -to be cleansed, and upon the thumb of his right hand, and upon the -great toe of his right foot: 14:15 And the priest shall take some of -the log of oil, and pour it into the palm of his own left hand: 14:16 -And the priest shall dip his right finger in the oil that is in his -left hand, and shall sprinkle of the oil with his finger seven times -before the LORD: 14:17 And of the rest of the oil that is in his hand -shall the priest put upon the tip of the right ear of him that is to -be cleansed, and upon the thumb of his right hand, and upon the great -toe of his right foot, upon the blood of the trespass offering: 14:18 -And the remnant of the oil that is in the priest's hand he shall pour -upon the head of him that is to be cleansed: and the priest shall make -an atonement for him before the LORD. - -14:19 And the priest shall offer the sin offering, and make an -atonement for him that is to be cleansed from his uncleanness; and -afterward he shall kill the burnt offering: 14:20 And the priest shall -offer the burnt offering and the meat offering upon the altar: and the -priest shall make an atonement for him, and he shall be clean. - -14:21 And if he be poor, and cannot get so much; then he shall take -one lamb for a trespass offering to be waved, to make an atonement for -him, and one tenth deal of fine flour mingled with oil for a meat -offering, and a log of oil; 14:22 And two turtledoves, or two young -pigeons, such as he is able to get; and the one shall be a sin -offering, and the other a burnt offering. - -14:23 And he shall bring them on the eighth day for his cleansing unto -the priest, unto the door of the tabernacle of the congregation, -before the LORD. - -14:24 And the priest shall take the lamb of the trespass offering, and -the log of oil, and the priest shall wave them for a wave offering -before the LORD: 14:25 And he shall kill the lamb of the trespass -offering, and the priest shall take some of the blood of the trespass -offering, and put it upon the tip of the right ear of him that is to -be cleansed, and upon the thumb of his right hand, and upon the great -toe of his right foot: 14:26 And the priest shall pour of the oil into -the palm of his own left hand: 14:27 And the priest shall sprinkle -with his right finger some of the oil that is in his left hand seven -times before the LORD: 14:28 And the priest shall put of the oil that -is in his hand upon the tip of the right ear of him that is to be -cleansed, and upon the thumb of his right hand, and upon the great toe -of his right foot, upon the place of the blood of the trespass -offering: 14:29 And the rest of the oil that is in the priest's hand -he shall put upon the head of him that is to be cleansed, to make an -atonement for him before the LORD. - -14:30 And he shall offer the one of the turtledoves, or of the young -pigeons, such as he can get; 14:31 Even such as he is able to get, the -one for a sin offering, and the other for a burnt offering, with the -meat offering: and the priest shall make an atonement for him that is -to be cleansed before the LORD. - -14:32 This is the law of him in whom is the plague of leprosy, whose -hand is not able to get that which pertaineth to his cleansing. - -14:33 And the LORD spake unto Moses and unto Aaron, saying, 14:34 When -ye be come into the land of Canaan, which I give to you for a -possession, and I put the plague of leprosy in a house of the land of -your possession; 14:35 And he that owneth the house shall come and -tell the priest, saying, It seemeth to me there is as it were a plague -in the house: 14:36 Then the priest shall command that they empty the -house, before the priest go into it to see the plague, that all that -is in the house be not made unclean: and afterward the priest shall go -in to see the house: 14:37 And he shall look on the plague, and, -behold, if the plague be in the walls of the house with hollow -strakes, greenish or reddish, which in sight are lower than the wall; -14:38 Then the priest shall go out of the house to the door of the -house, and shut up the house seven days: 14:39 And the priest shall -come again the seventh day, and shall look: and, behold, if the plague -be spread in the walls of the house; 14:40 Then the priest shall -command that they take away the stones in which the plague is, and -they shall cast them into an unclean place without the city: 14:41 And -he shall cause the house to be scraped within round about, and they -shall pour out the dust that they scrape off without the city into an -unclean place: 14:42 And they shall take other stones, and put them in -the place of those stones; and he shall take other morter, and shall -plaister the house. - -14:43 And if the plague come again, and break out in the house, after -that he hath taken away the stones, and after he hath scraped the -house, and after it is plaistered; 14:44 Then the priest shall come -and look, and, behold, if the plague be spread in the house, it is a -fretting leprosy in the house; it is unclean. - -14:45 And he shall break down the house, the stones of it, and the -timber thereof, and all the morter of the house; and he shall carry -them forth out of the city into an unclean place. - -14:46 Moreover he that goeth into the house all the while that it is -shut up shall be unclean until the even. - -14:47 And he that lieth in the house shall wash his clothes; and he -that eateth in the house shall wash his clothes. - -14:48 And if the priest shall come in, and look upon it, and, behold, -the plague hath not spread in the house, after the house was -plaistered: then the priest shall pronounce the house clean, because -the plague is healed. - -14:49 And he shall take to cleanse the house two birds, and cedar -wood, and scarlet, and hyssop: 14:50 And he shall kill the one of the -birds in an earthen vessel over running water: 14:51 And he shall take -the cedar wood, and the hyssop, and the scarlet, and the living bird, -and dip them in the blood of the slain bird, and in the running water, -and sprinkle the house seven times: 14:52 And he shall cleanse the -house with the blood of the bird, and with the running water, and with -the living bird, and with the cedar wood, and with the hyssop, and -with the scarlet: 14:53 But he shall let go the living bird out of the -city into the open fields, and make an atonement for the house: and it -shall be clean. - -14:54 This is the law for all manner of plague of leprosy, and scall, -14:55 And for the leprosy of a garment, and of a house, 14:56 And for -a rising, and for a scab, and for a bright spot: 14:57 To teach when -it is unclean, and when it is clean: this is the law of leprosy. - -15:1 And the LORD spake unto Moses and to Aaron, saying, 15:2 Speak -unto the children of Israel, and say unto them, When any man hath a -running issue out of his flesh, because of his issue he is unclean. - -15:3 And this shall be his uncleanness in his issue: whether his flesh -run with his issue, or his flesh be stopped from his issue, it is his -uncleanness. - -15:4 Every bed, whereon he lieth that hath the issue, is unclean: and -every thing, whereon he sitteth, shall be unclean. - -15:5 And whosoever toucheth his bed shall wash his clothes, and bathe -himself in water, and be unclean until the even. - -15:6 And he that sitteth on any thing whereon he sat that hath the -issue shall wash his clothes, and bathe himself in water, and be -unclean until the even. - -15:7 And he that toucheth the flesh of him that hath the issue shall -wash his clothes, and bathe himself in water, and be unclean until the -even. - -15:8 And if he that hath the issue spit upon him that is clean; then -he shall wash his clothes, and bathe himself in water, and be unclean -until the even. - -15:9 And what saddle soever he rideth upon that hath the issue shall -be unclean. - -15:10 And whosoever toucheth any thing that was under him shall be -unclean until the even: and he that beareth any of those things shall -wash his clothes, and bathe himself in water, and be unclean until the -even. - -15:11 And whomsoever he toucheth that hath the issue, and hath not -rinsed his hands in water, he shall wash his clothes, and bathe -himself in water, and be unclean until the even. - -15:12 And the vessel of earth, that he toucheth which hath the issue, -shall be broken: and every vessel of wood shall be rinsed in water. - -15:13 And when he that hath an issue is cleansed of his issue; then he -shall number to himself seven days for his cleansing, and wash his -clothes, and bathe his flesh in running water, and shall be clean. - -15:14 And on the eighth day he shall take to him two turtledoves, or -two young pigeons, and come before the LORD unto the door of the -tabernacle of the congregation, and give them unto the priest: 15:15 -And the priest shall offer them, the one for a sin offering, and the -other for a burnt offering; and the priest shall make an atonement for -him before the LORD for his issue. - -15:16 And if any man's seed of copulation go out from him, then he -shall wash all his flesh in water, and be unclean until the even. - -15:17 And every garment, and every skin, whereon is the seed of -copulation, shall be washed with water, and be unclean until the even. - -15:18 The woman also with whom man shall lie with seed of copulation, -they shall both bathe themselves in water, and be unclean until the -even. - -15:19 And if a woman have an issue, and her issue in her flesh be -blood, she shall be put apart seven days: and whosoever toucheth her -shall be unclean until the even. - -15:20 And every thing that she lieth upon in her separation shall be -unclean: every thing also that she sitteth upon shall be unclean. - -15:21 And whosoever toucheth her bed shall wash his clothes, and bathe -himself in water, and be unclean until the even. - -15:22 And whosoever toucheth any thing that she sat upon shall wash -his clothes, and bathe himself in water, and be unclean until the -even. - -15:23 And if it be on her bed, or on any thing whereon she sitteth, -when he toucheth it, he shall be unclean until the even. - -15:24 And if any man lie with her at all, and her flowers be upon him, -he shall be unclean seven days; and all the bed whereon he lieth shall -be unclean. - -15:25 And if a woman have an issue of her blood many days out of the -time of her separation, or if it run beyond the time of her -separation; all the days of the issue of her uncleanness shall be as -the days of her separation: she shall be unclean. - -15:26 Every bed whereon she lieth all the days of her issue shall be -unto her as the bed of her separation: and whatsoever she sitteth upon -shall be unclean, as the uncleanness of her separation. - -15:27 And whosoever toucheth those things shall be unclean, and shall -wash his clothes, and bathe himself in water, and be unclean until the -even. - -15:28 But if she be cleansed of her issue, then she shall number to -herself seven days, and after that she shall be clean. - -15:29 And on the eighth day she shall take unto her two turtles, or -two young pigeons, and bring them unto the priest, to the door of the -tabernacle of the congregation. - -15:30 And the priest shall offer the one for a sin offering, and the -other for a burnt offering; and the priest shall make an atonement for -her before the LORD for the issue of her uncleanness. - -15:31 Thus shall ye separate the children of Israel from their -uncleanness; that they die not in their uncleanness, when they defile -my tabernacle that is among them. - -15:32 This is the law of him that hath an issue, and of him whose seed -goeth from him, and is defiled therewith; 15:33 And of her that is -sick of her flowers, and of him that hath an issue, of the man, and of -the woman, and of him that lieth with her that is unclean. - -16:1 And the LORD spake unto Moses after the death of the two sons of -Aaron, when they offered before the LORD, and died; 16:2 And the LORD -said unto Moses, Speak unto Aaron thy brother, that he come not at all -times into the holy place within the vail before the mercy seat, which -is upon the ark; that he die not: for I will appear in the cloud upon -the mercy seat. - -16:3 Thus shall Aaron come into the holy place: with a young bullock -for a sin offering, and a ram for a burnt offering. - -16:4 He shall put on the holy linen coat, and he shall have the linen -breeches upon his flesh, and shall be girded with a linen girdle, and -with the linen mitre shall he be attired: these are holy garments; -therefore shall he wash his flesh in water, and so put them on. - -16:5 And he shall take of the congregation of the children of Israel -two kids of the goats for a sin offering, and one ram for a burnt -offering. - -16:6 And Aaron shall offer his bullock of the sin offering, which is -for himself, and make an atonement for himself, and for his house. - -16:7 And he shall take the two goats, and present them before the LORD -at the door of the tabernacle of the congregation. - -16:8 And Aaron shall cast lots upon the two goats; one lot for the -LORD, and the other lot for the scapegoat. - -16:9 And Aaron shall bring the goat upon which the LORD's lot fell, -and offer him for a sin offering. - -16:10 But the goat, on which the lot fell to be the scapegoat, shall -be presented alive before the LORD, to make an atonement with him, and -to let him go for a scapegoat into the wilderness. - -16:11 And Aaron shall bring the bullock of the sin offering, which is -for himself, and shall make an atonement for himself, and for his -house, and shall kill the bullock of the sin offering which is for -himself: 16:12 And he shall take a censer full of burning coals of -fire from off the altar before the LORD, and his hands full of sweet -incense beaten small, and bring it within the vail: 16:13 And he shall -put the incense upon the fire before the LORD, that the cloud of the -incense may cover the mercy seat that is upon the testimony, that he -die not: 16:14 And he shall take of the blood of the bullock, and -sprinkle it with his finger upon the mercy seat eastward; and before -the mercy seat shall he sprinkle of the blood with his finger seven -times. - -16:15 Then shall he kill the goat of the sin offering, that is for the -people, and bring his blood within the vail, and do with that blood as -he did with the blood of the bullock, and sprinkle it upon the mercy -seat, and before the mercy seat: 16:16 And he shall make an atonement -for the holy place, because of the uncleanness of the children of -Israel, and because of their transgressions in all their sins: and so -shall he do for the tabernacle of the congregation, that remaineth -among them in the midst of their uncleanness. - -16:17 And there shall be no man in the tabernacle of the congregation -when he goeth in to make an atonement in the holy place, until he come -out, and have made an atonement for himself, and for his household, -and for all the congregation of Israel. - -16:18 And he shall go out unto the altar that is before the LORD, and -make an atonement for it; and shall take of the blood of the bullock, -and of the blood of the goat, and put it upon the horns of the altar -round about. - -16:19 And he shall sprinkle of the blood upon it with his finger seven -times, and cleanse it, and hallow it from the uncleanness of the -children of Israel. - -16:20 And when he hath made an end of reconciling the holy place, and -the tabernacle of the congregation, and the altar, he shall bring the -live goat: 16:21 And Aaron shall lay both his hands upon the head of -the live goat, and confess over him all the iniquities of the children -of Israel, and all their transgressions in all their sins, putting -them upon the head of the goat, and shall send him away by the hand of -a fit man into the wilderness: 16:22 And the goat shall bear upon him -all their iniquities unto a land not inhabited: and he shall let go -the goat in the wilderness. - -16:23 And Aaron shall come into the tabernacle of the congregation, -and shall put off the linen garments, which he put on when he went -into the holy place, and shall leave them there: 16:24 And he shall -wash his flesh with water in the holy place, and put on his garments, -and come forth, and offer his burnt offering, and the burnt offering -of the people, and make an atonement for himself, and for the people. - -16:25 And the fat of the sin offering shall he burn upon the altar. - -16:26 And he that let go the goat for the scapegoat shall wash his -clothes, and bathe his flesh in water, and afterward come into the -camp. - -16:27 And the bullock for the sin offering, and the goat for the sin -offering, whose blood was brought in to make atonement in the holy -place, shall one carry forth without the camp; and they shall burn in -the fire their skins, and their flesh, and their dung. - -16:28 And he that burneth them shall wash his clothes, and bathe his -flesh in water, and afterward he shall come into the camp. - -16:29 And this shall be a statute for ever unto you: that in the -seventh month, on the tenth day of the month, ye shall afflict your -souls, and do no work at all, whether it be one of your own country, -or a stranger that sojourneth among you: 16:30 For on that day shall -the priest make an atonement for you, to cleanse you, that ye may be -clean from all your sins before the LORD. - -16:31 It shall be a sabbath of rest unto you, and ye shall afflict -your souls, by a statute for ever. - -16:32 And the priest, whom he shall anoint, and whom he shall -consecrate to minister in the priest's office in his father's stead, -shall make the atonement, and shall put on the linen clothes, even the -holy garments: 16:33 And he shall make an atonement for the holy -sanctuary, and he shall make an atonement for the tabernacle of the -congregation, and for the altar, and he shall make an atonement for -the priests, and for all the people of the congregation. - -16:34 And this shall be an everlasting statute unto you, to make an -atonement for the children of Israel for all their sins once a year. -And he did as the LORD commanded Moses. - -17:1 And the LORD spake unto Moses, saying, 17:2 Speak unto Aaron, and -unto his sons, and unto all the children of Israel, and say unto them; -This is the thing which the LORD hath commanded, saying, 17:3 What man -soever there be of the house of Israel, that killeth an ox, or lamb, -or goat, in the camp, or that killeth it out of the camp, 17:4 And -bringeth it not unto the door of the tabernacle of the congregation, -to offer an offering unto the LORD before the tabernacle of the LORD; -blood shall be imputed unto that man; he hath shed blood; and that man -shall be cut off from among his people: 17:5 To the end that the -children of Israel may bring their sacrifices, which they offer in the -open field, even that they may bring them unto the LORD, unto the door -of the tabernacle of the congregation, unto the priest, and offer them -for peace offerings unto the LORD. - -17:6 And the priest shall sprinkle the blood upon the altar of the -LORD at the door of the tabernacle of the congregation, and burn the -fat for a sweet savour unto the LORD. - -17:7 And they shall no more offer their sacrifices unto devils, after -whom they have gone a whoring. This shall be a statute for ever unto -them throughout their generations. - -17:8 And thou shalt say unto them, Whatsoever man there be of the -house of Israel, or of the strangers which sojourn among you, that -offereth a burnt offering or sacrifice, 17:9 And bringeth it not unto -the door of the tabernacle of the congregation, to offer it unto the -LORD; even that man shall be cut off from among his people. - -17:10 And whatsoever man there be of the house of Israel, or of the -strangers that sojourn among you, that eateth any manner of blood; I -will even set my face against that soul that eateth blood, and will -cut him off from among his people. - -17:11 For the life of the flesh is in the blood: and I have given it -to you upon the altar to make an atonement for your souls: for it is -the blood that maketh an atonement for the soul. - -17:12 Therefore I said unto the children of Israel, No soul of you -shall eat blood, neither shall any stranger that sojourneth among you -eat blood. - -17:13 And whatsoever man there be of the children of Israel, or of the -strangers that sojourn among you, which hunteth and catcheth any beast -or fowl that may be eaten; he shall even pour out the blood thereof, -and cover it with dust. - -17:14 For it is the life of all flesh; the blood of it is for the life -thereof: therefore I said unto the children of Israel, Ye shall eat -the blood of no manner of flesh: for the life of all flesh is the -blood thereof: whosoever eateth it shall be cut off. - -17:15 And every soul that eateth that which died of itself, or that -which was torn with beasts, whether it be one of your own country, or -a stranger, he shall both wash his clothes, and bathe himself in -water, and be unclean until the even: then shall he be clean. - -17:16 But if he wash them not, nor bathe his flesh; then he shall bear -his iniquity. - -18:1 And the LORD spake unto Moses, saying, 18:2 Speak unto the -children of Israel, and say unto them, I am the LORD your God. - -18:3 After the doings of the land of Egypt, wherein ye dwelt, shall ye -not do: and after the doings of the land of Canaan, whither I bring -you, shall ye not do: neither shall ye walk in their ordinances. - -18:4 Ye shall do my judgments, and keep mine ordinances, to walk -therein: I am the LORD your God. - -18:5 Ye shall therefore keep my statutes, and my judgments: which if a -man do, he shall live in them: I am the LORD. - -18:6 None of you shall approach to any that is near of kin to him, to -uncover their nakedness: I am the LORD. - -18:7 The nakedness of thy father, or the nakedness of thy mother, -shalt thou not uncover: she is thy mother; thou shalt not uncover her -nakedness. - -18:8 The nakedness of thy father's wife shalt thou not uncover: it is -thy father's nakedness. - -18:9 The nakedness of thy sister, the daughter of thy father, or -daughter of thy mother, whether she be born at home, or born abroad, -even their nakedness thou shalt not uncover. - -18:10 The nakedness of thy son's daughter, or of thy daughter's -daughter, even their nakedness thou shalt not uncover: for theirs is -thine own nakedness. - -18:11 The nakedness of thy father's wife's daughter, begotten of thy -father, she is thy sister, thou shalt not uncover her nakedness. - -18:12 Thou shalt not uncover the nakedness of thy father's sister: she -is thy father's near kinswoman. - -18:13 Thou shalt not uncover the nakedness of thy mother's sister: for -she is thy mother's near kinswoman. - -18:14 Thou shalt not uncover the nakedness of thy father's brother, -thou shalt not approach to his wife: she is thine aunt. - -18:15 Thou shalt not uncover the nakedness of thy daughter in law: she -is thy son's wife; thou shalt not uncover her nakedness. - -18:16 Thou shalt not uncover the nakedness of thy brother's wife: it -is thy brother's nakedness. - -18:17 Thou shalt not uncover the nakedness of a woman and her -daughter, neither shalt thou take her son's daughter, or her -daughter's daughter, to uncover her nakedness; for they are her near -kinswomen: it is wickedness. - -18:18 Neither shalt thou take a wife to her sister, to vex her, to -uncover her nakedness, beside the other in her life time. - -18:19 Also thou shalt not approach unto a woman to uncover her -nakedness, as long as she is put apart for her uncleanness. - -18:20 Moreover thou shalt not lie carnally with thy neighbour's wife, -to defile thyself with her. - -18:21 And thou shalt not let any of thy seed pass through the fire to -Molech, neither shalt thou profane the name of thy God: I am the LORD. - -18:22 Thou shalt not lie with mankind, as with womankind: it is -abomination. - -18:23 Neither shalt thou lie with any beast to defile thyself -therewith: neither shall any woman stand before a beast to lie down -thereto: it is confusion. - -18:24 Defile not ye yourselves in any of these things: for in all -these the nations are defiled which I cast out before you: 18:25 And -the land is defiled: therefore I do visit the iniquity thereof upon -it, and the land itself vomiteth out her inhabitants. - -18:26 Ye shall therefore keep my statutes and my judgments, and shall -not commit any of these abominations; neither any of your own nation, -nor any stranger that sojourneth among you: 18:27 (For all these -abominations have the men of the land done, which were before you, and -the land is defiled;) 18:28 That the land spue not you out also, when -ye defile it, as it spued out the nations that were before you. - -18:29 For whosoever shall commit any of these abominations, even the -souls that commit them shall be cut off from among their people. - -18:30 Therefore shall ye keep mine ordinance, that ye commit not any -one of these abominable customs, which were committed before you, and -that ye defile not yourselves therein: I am the LORD your God. - -19:1 And the LORD spake unto Moses, saying, 19:2 Speak unto all the -congregation of the children of Israel, and say unto them, Ye shall be -holy: for I the LORD your God am holy. - -19:3 Ye shall fear every man his mother, and his father, and keep my -sabbaths: I am the LORD your God. - -19:4 Turn ye not unto idols, nor make to yourselves molten gods: I am -the LORD your God. - -19:5 And if ye offer a sacrifice of peace offerings unto the LORD, ye -shall offer it at your own will. - -19:6 It shall be eaten the same day ye offer it, and on the morrow: -and if ought remain until the third day, it shall be burnt in the -fire. - -19:7 And if it be eaten at all on the third day, it is abominable; it -shall not be accepted. - -19:8 Therefore every one that eateth it shall bear his iniquity, -because he hath profaned the hallowed thing of the LORD: and that soul -shall be cut off from among his people. - -19:9 And when ye reap the harvest of your land, thou shalt not wholly -reap the corners of thy field, neither shalt thou gather the gleanings -of thy harvest. - -19:10 And thou shalt not glean thy vineyard, neither shalt thou gather -every grape of thy vineyard; thou shalt leave them for the poor and -stranger: I am the LORD your God. - -19:11 Ye shall not steal, neither deal falsely, neither lie one to -another. - -19:12 And ye shall not swear by my name falsely, neither shalt thou -profane the name of thy God: I am the LORD. - -19:13 Thou shalt not defraud thy neighbour, neither rob him: the wages -of him that is hired shall not abide with thee all night until the -morning. - -19:14 Thou shalt not curse the deaf, nor put a stumblingblock before -the blind, but shalt fear thy God: I am the LORD. - -19:15 Ye shall do no unrighteousness in judgment: thou shalt not -respect the person of the poor, nor honor the person of the mighty: -but in righteousness shalt thou judge thy neighbour. - -19:16 Thou shalt not go up and down as a talebearer among thy people: -neither shalt thou stand against the blood of thy neighbour; I am the -LORD. - -19:17 Thou shalt not hate thy brother in thine heart: thou shalt in -any wise rebuke thy neighbour, and not suffer sin upon him. - -19:18 Thou shalt not avenge, nor bear any grudge against the children -of thy people, but thou shalt love thy neighbour as thyself: I am the -LORD. - -19:19 Ye shall keep my statutes. Thou shalt not let thy cattle gender -with a diverse kind: thou shalt not sow thy field with mingled seed: -neither shall a garment mingled of linen and woollen come upon thee. - -19:20 And whosoever lieth carnally with a woman, that is a bondmaid, -betrothed to an husband, and not at all redeemed, nor freedom given -her; she shall be scourged; they shall not be put to death, because -she was not free. - -19:21 And he shall bring his trespass offering unto the LORD, unto the -door of the tabernacle of the congregation, even a ram for a trespass -offering. - -19:22 And the priest shall make an atonement for him with the ram of -the trespass offering before the LORD for his sin which he hath done: -and the sin which he hath done shall be forgiven him. - -19:23 And when ye shall come into the land, and shall have planted all -manner of trees for food, then ye shall count the fruit thereof as -uncircumcised: three years shall it be as uncircumcised unto you: it -shall not be eaten of. - -19:24 But in the fourth year all the fruit thereof shall be holy to -praise the LORD withal. - -19:25 And in the fifth year shall ye eat of the fruit thereof, that it -may yield unto you the increase thereof: I am the LORD your God. - -19:26 Ye shall not eat any thing with the blood: neither shall ye use -enchantment, nor observe times. - -19:27 Ye shall not round the corners of your heads, neither shalt thou -mar the corners of thy beard. - -19:28 Ye shall not make any cuttings in your flesh for the dead, nor -print any marks upon you: I am the LORD. - -19:29 Do not prostitute thy daughter, to cause her to be a whore; lest -the land fall to whoredom, and the land become full of wickedness. - -19:30 Ye shall keep my sabbaths, and reverence my sanctuary: I am the -LORD. - -19:31 Regard not them that have familiar spirits, neither seek after -wizards, to be defiled by them: I am the LORD your God. - -19:32 Thou shalt rise up before the hoary head, and honour the face of -the old man, and fear thy God: I am the LORD. - -19:33 And if a stranger sojourn with thee in your land, ye shall not -vex him. - -19:34 But the stranger that dwelleth with you shall be unto you as one -born among you, and thou shalt love him as thyself; for ye were -strangers in the land of Egypt: I am the LORD your God. - -19:35 Ye shall do no unrighteousness in judgment, in meteyard, in -weight, or in measure. - -19:36 Just balances, just weights, a just ephah, and a just hin, shall -ye have: I am the LORD your God, which brought you out of the land of -Egypt. - -19:37 Therefore shall ye observe all my statutes, and all my -judgments, and do them: I am the LORD. - -20:1 And the LORD spake unto Moses, saying, 20:2 Again, thou shalt say -to the children of Israel, Whosoever he be of the children of Israel, -or of the strangers that sojourn in Israel, that giveth any of his -seed unto Molech; he shall surely be put to death: the people of the -land shall stone him with stones. - -20:3 And I will set my face against that man, and will cut him off -from among his people; because he hath given of his seed unto Molech, -to defile my sanctuary, and to profane my holy name. - -20:4 And if the people of the land do any ways hide their eyes from -the man, when he giveth of his seed unto Molech, and kill him not: -20:5 Then I will set my face against that man, and against his family, -and will cut him off, and all that go a whoring after him, to commit -whoredom with Molech, from among their people. - -20:6 And the soul that turneth after such as have familiar spirits, -and after wizards, to go a whoring after them, I will even set my face -against that soul, and will cut him off from among his people. - -20:7 Sanctify yourselves therefore, and be ye holy: for I am the LORD -your God. - -20:8 And ye shall keep my statutes, and do them: I am the LORD which -sanctify you. - -20:9 For every one that curseth his father or his mother shall be -surely put to death: he hath cursed his father or his mother; his -blood shall be upon him. - -20:10 And the man that committeth adultery with another man's wife, -even he that committeth adultery with his neighbour's wife, the -adulterer and the adulteress shall surely be put to death. - -20:11 And the man that lieth with his father's wife hath uncovered his -father's nakedness: both of them shall surely be put to death; their -blood shall be upon them. - -20:12 And if a man lie with his daughter in law, both of them shall -surely be put to death: they have wrought confusion; their blood shall -be upon them. - -20:13 If a man also lie with mankind, as he lieth with a woman, both -of them have committed an abomination: they shall surely be put to -death; their blood shall be upon them. - -20:14 And if a man take a wife and her mother, it is wickedness: they -shall be burnt with fire, both he and they; that there be no -wickedness among you. - -20:15 And if a man lie with a beast, he shall surely be put to death: -and ye shall slay the beast. - -20:16 And if a woman approach unto any beast, and lie down thereto, -thou shalt kill the woman, and the beast: they shall surely be put to -death; their blood shall be upon them. - -20:17 And if a man shall take his sister, his father's daughter, or -his mother's daughter, and see her nakedness, and she see his -nakedness; it is a wicked thing; and they shall be cut off in the -sight of their people: he hath uncovered his sister's nakedness; he -shall bear his iniquity. - -20:18 And if a man shall lie with a woman having her sickness, and -shall uncover her nakedness; he hath discovered her fountain, and she -hath uncovered the fountain of her blood: and both of them shall be -cut off from among their people. - -20:19 And thou shalt not uncover the nakedness of thy mother's sister, -nor of thy father's sister: for he uncovereth his near kin: they shall -bear their iniquity. - -20:20 And if a man shall lie with his uncle's wife, he hath uncovered -his uncle's nakedness: they shall bear their sin; they shall die -childless. - -20:21 And if a man shall take his brother's wife, it is an unclean -thing: he hath uncovered his brother's nakedness; they shall be -childless. - -20:22 Ye shall therefore keep all my statutes, and all my judgments, -and do them: that the land, whither I bring you to dwell therein, spue -you not out. - -20:23 And ye shall not walk in the manners of the nation, which I cast -out before you: for they committed all these things, and therefore I -abhorred them. - -20:24 But I have said unto you, Ye shall inherit their land, and I -will give it unto you to possess it, a land that floweth with milk and -honey: I am the LORD your God, which have separated you from other -people. - -20:25 Ye shall therefore put difference between clean beasts and -unclean, and between unclean fowls and clean: and ye shall not make -your souls abominable by beast, or by fowl, or by any manner of living -thing that creepeth on the ground, which I have separated from you as -unclean. - -20:26 And ye shall be holy unto me: for I the LORD am holy, and have -severed you from other people, that ye should be mine. - -20:27 A man also or woman that hath a familiar spirit, or that is a -wizard, shall surely be put to death: they shall stone them with -stones: their blood shall be upon them. - -21:1 And the LORD said unto Moses, Speak unto the priests the sons of -Aaron, and say unto them, There shall none be defiled for the dead -among his people: 21:2 But for his kin, that is near unto him, that -is, for his mother, and for his father, and for his son, and for his -daughter, and for his brother. - -21:3 And for his sister a virgin, that is nigh unto him, which hath -had no husband; for her may he be defiled. - -21:4 But he shall not defile himself, being a chief man among his -people, to profane himself. - -21:5 They shall not make baldness upon their head, neither shall they -shave off the corner of their beard, nor make any cuttings in their -flesh. - -21:6 They shall be holy unto their God, and not profane the name of -their God: for the offerings of the LORD made by fire, and the bread -of their God, they do offer: therefore they shall be holy. - -21:7 They shall not take a wife that is a whore, or profane; neither -shall they take a woman put away from her husband: for he is holy unto -his God. - -21:8 Thou shalt sanctify him therefore; for he offereth the bread of -thy God: he shall be holy unto thee: for I the LORD, which sanctify -you, am holy. - -21:9 And the daughter of any priest, if she profane herself by playing -the whore, she profaneth her father: she shall be burnt with fire. - -21:10 And he that is the high priest among his brethren, upon whose -head the anointing oil was poured, and that is consecrated to put on -the garments, shall not uncover his head, nor rend his clothes; 21:11 -Neither shall he go in to any dead body, nor defile himself for his -father, or for his mother; 21:12 Neither shall he go out of the -sanctuary, nor profane the sanctuary of his God; for the crown of the -anointing oil of his God is upon him: I am the LORD. - -21:13 And he shall take a wife in her virginity. - -21:14 A widow, or a divorced woman, or profane, or an harlot, these -shall he not take: but he shall take a virgin of his own people to -wife. - -21:15 Neither shall he profane his seed among his people: for I the -LORD do sanctify him. - -21:16 And the LORD spake unto Moses, saying, 21:17 Speak unto Aaron, -saying, Whosoever he be of thy seed in their generations that hath any -blemish, let him not approach to offer the bread of his God. - -21:18 For whatsoever man he be that hath a blemish, he shall not -approach: a blind man, or a lame, or he that hath a flat nose, or any -thing superfluous, 21:19 Or a man that is brokenfooted, or -brokenhanded, 21:20 Or crookbackt, or a dwarf, or that hath a blemish -in his eye, or be scurvy, or scabbed, or hath his stones broken; 21:21 -No man that hath a blemish of the seed of Aaron the priest shall come -nigh to offer the offerings of the LORD made by fire: he hath a -blemish; he shall not come nigh to offer the bread of his God. - -21:22 He shall eat the bread of his God, both of the most holy, and of -the holy. - -21:23 Only he shall not go in unto the vail, nor come nigh unto the -altar, because he hath a blemish; that he profane not my sanctuaries: -for I the LORD do sanctify them. - -21:24 And Moses told it unto Aaron, and to his sons, and unto all the -children of Israel. - -22:1 And the LORD spake unto Moses, saying, 22:2 Speak unto Aaron and -to his sons, that they separate themselves from the holy things of the -children of Israel, and that they profane not my holy name in those -things which they hallow unto me: I am the LORD. - -22:3 Say unto them, Whosoever he be of all your seed among your -generations, that goeth unto the holy things, which the children of -Israel hallow unto the LORD, having his uncleanness upon him, that -soul shall be cut off from my presence: I am the LORD. - -22:4 What man soever of the seed of Aaron is a leper, or hath a -running issue; he shall not eat of the holy things, until he be clean. -And whoso toucheth any thing that is unclean by the dead, or a man -whose seed goeth from him; 22:5 Or whosoever toucheth any creeping -thing, whereby he may be made unclean, or a man of whom he may take -uncleanness, whatsoever uncleanness he hath; 22:6 The soul which hath -touched any such shall be unclean until even, and shall not eat of the -holy things, unless he wash his flesh with water. - -22:7 And when the sun is down, he shall be clean, and shall afterward -eat of the holy things; because it is his food. - -22:8 That which dieth of itself, or is torn with beasts, he shall not -eat to defile himself therewith; I am the LORD. - -22:9 They shall therefore keep mine ordinance, lest they bear sin for -it, and die therefore, if they profane it: I the LORD do sanctify -them. - -22:10 There shall no stranger eat of the holy thing: a sojourner of -the priest, or an hired servant, shall not eat of the holy thing. - -22:11 But if the priest buy any soul with his money, he shall eat of -it, and he that is born in his house: they shall eat of his meat. - -22:12 If the priest's daughter also be married unto a stranger, she -may not eat of an offering of the holy things. - -22:13 But if the priest's daughter be a widow, or divorced, and have -no child, and is returned unto her father's house, as in her youth, -she shall eat of her father's meat: but there shall be no stranger eat -thereof. - -22:14 And if a man eat of the holy thing unwittingly, then he shall -put the fifth part thereof unto it, and shall give it unto the priest -with the holy thing. - -22:15 And they shall not profane the holy things of the children of -Israel, which they offer unto the LORD; 22:16 Or suffer them to bear -the iniquity of trespass, when they eat their holy things: for I the -LORD do sanctify them. - -22:17 And the LORD spake unto Moses, saying, 22:18 Speak unto Aaron, -and to his sons, and unto all the children of Israel, and say unto -them, Whatsoever he be of the house of Israel, or of the strangers in -Israel, that will offer his oblation for all his vows, and for all his -freewill offerings, which they will offer unto the LORD for a burnt -offering; 22:19 Ye shall offer at your own will a male without -blemish, of the beeves, of the sheep, or of the goats. - -22:20 But whatsoever hath a blemish, that shall ye not offer: for it -shall not be acceptable for you. - -22:21 And whosoever offereth a sacrifice of peace offerings unto the -LORD to accomplish his vow, or a freewill offering in beeves or sheep, -it shall be perfect to be accepted; there shall be no blemish therein. - -22:22 Blind, or broken, or maimed, or having a wen, or scurvy, or -scabbed, ye shall not offer these unto the LORD, nor make an offering -by fire of them upon the altar unto the LORD. - -22:23 Either a bullock or a lamb that hath any thing superfluous or -lacking in his parts, that mayest thou offer for a freewill offering; -but for a vow it shall not be accepted. - -22:24 Ye shall not offer unto the LORD that which is bruised, or -crushed, or broken, or cut; neither shall ye make any offering thereof -in your land. - -22:25 Neither from a stranger's hand shall ye offer the bread of your -God of any of these; because their corruption is in them, and -blemishes be in them: they shall not be accepted for you. - -22:26 And the LORD spake unto Moses, saying, 22:27 When a bullock, or -a sheep, or a goat, is brought forth, then it shall be seven days -under the dam; and from the eighth day and thenceforth it shall be -accepted for an offering made by fire unto the LORD. - -22:28 And whether it be cow, or ewe, ye shall not kill it and her -young both in one day. - -22:29 And when ye will offer a sacrifice of thanksgiving unto the -LORD, offer it at your own will. - -22:30 On the same day it shall be eaten up; ye shall leave none of it -until the morrow: I am the LORD. - -22:31 Therefore shall ye keep my commandments, and do them: I am the -LORD. - -22:32 Neither shall ye profane my holy name; but I will be hallowed -among the children of Israel: I am the LORD which hallow you, 22:33 -That brought you out of the land of Egypt, to be your God: I am the -LORD. - -23:1 And the LORD spake unto Moses, saying, 23:2 Speak unto the -children of Israel, and say unto them, Concerning the feasts of the -LORD, which ye shall proclaim to be holy convocations, even these are -my feasts. - -23:3 Six days shall work be done: but the seventh day is the sabbath -of rest, an holy convocation; ye shall do no work therein: it is the -sabbath of the LORD in all your dwellings. - -23:4 These are the feasts of the LORD, even holy convocations, which -ye shall proclaim in their seasons. - -23:5 In the fourteenth day of the first month at even is the LORD's -passover. - -23:6 And on the fifteenth day of the same month is the feast of -unleavened bread unto the LORD: seven days ye must eat unleavened -bread. - -23:7 In the first day ye shall have an holy convocation: ye shall do -no servile work therein. - -23:8 But ye shall offer an offering made by fire unto the LORD seven -days: in the seventh day is an holy convocation: ye shall do no -servile work therein. - -23:9 And the LORD spake unto Moses, saying, 23:10 Speak unto the -children of Israel, and say unto them, When ye be come into the land -which I give unto you, and shall reap the harvest thereof, then ye -shall bring a sheaf of the firstfruits of your harvest unto the -priest: 23:11 And he shall wave the sheaf before the LORD, to be -accepted for you: on the morrow after the sabbath the priest shall -wave it. - -23:12 And ye shall offer that day when ye wave the sheaf an he lamb -without blemish of the first year for a burnt offering unto the LORD. - -23:13 And the meat offering thereof shall be two tenth deals of fine -flour mingled with oil, an offering made by fire unto the LORD for a -sweet savour: and the drink offering thereof shall be of wine, the -fourth part of an hin. - -23:14 And ye shall eat neither bread, nor parched corn, nor green -ears, until the selfsame day that ye have brought an offering unto -your God: it shall be a statute for ever throughout your generations -in all your dwellings. - -23:15 And ye shall count unto you from the morrow after the sabbath, -from the day that ye brought the sheaf of the wave offering; seven -sabbaths shall be complete: 23:16 Even unto the morrow after the -seventh sabbath shall ye number fifty days; and ye shall offer a new -meat offering unto the LORD. - -23:17 Ye shall bring out of your habitations two wave loaves of two -tenth deals; they shall be of fine flour; they shall be baken with -leaven; they are the firstfruits unto the LORD. - -23:18 And ye shall offer with the bread seven lambs without blemish of -the first year, and one young bullock, and two rams: they shall be for -a burnt offering unto the LORD, with their meat offering, and their -drink offerings, even an offering made by fire, of sweet savour unto -the LORD. - -23:19 Then ye shall sacrifice one kid of the goats for a sin offering, -and two lambs of the first year for a sacrifice of peace offerings. - -23:20 And the priest shall wave them with the bread of the firstfruits -for a wave offering before the LORD, with the two lambs: they shall be -holy to the LORD for the priest. - -23:21 And ye shall proclaim on the selfsame day, that it may be an -holy convocation unto you: ye shall do no servile work therein: it -shall be a statute for ever in all your dwellings throughout your -generations. - -23:22 And when ye reap the harvest of your land, thou shalt not make -clean riddance of the corners of thy field when thou reapest, neither -shalt thou gather any gleaning of thy harvest: thou shalt leave them -unto the poor, and to the stranger: I am the LORD your God. - -23:23 And the LORD spake unto Moses, saying, 23:24 Speak unto the -children of Israel, saying, In the seventh month, in the first day of -the month, shall ye have a sabbath, a memorial of blowing of trumpets, -an holy convocation. - -23:25 Ye shall do no servile work therein: but ye shall offer an -offering made by fire unto the LORD. - -23:26 And the LORD spake unto Moses, saying, 23:27 Also on the tenth -day of this seventh month there shall be a day of atonement: it shall -be an holy convocation unto you; and ye shall afflict your souls, and -offer an offering made by fire unto the LORD. - -23:28 And ye shall do no work in that same day: for it is a day of -atonement, to make an atonement for you before the LORD your God. - -23:29 For whatsoever soul it be that shall not be afflicted in that -same day, he shall be cut off from among his people. - -23:30 And whatsoever soul it be that doeth any work in that same day, -the same soul will I destroy from among his people. - -23:31 Ye shall do no manner of work: it shall be a statute for ever -throughout your generations in all your dwellings. - -23:32 It shall be unto you a sabbath of rest, and ye shall afflict -your souls: in the ninth day of the month at even, from even unto -even, shall ye celebrate your sabbath. - -23:33 And the LORD spake unto Moses, saying, 23:34 Speak unto the -children of Israel, saying, The fifteenth day of this seventh month -shall be the feast of tabernacles for seven days unto the LORD. - -23:35 On the first day shall be an holy convocation: ye shall do no -servile work therein. - -23:36 Seven days ye shall offer an offering made by fire unto the -LORD: on the eighth day shall be an holy convocation unto you; and ye -shall offer an offering made by fire unto the LORD: it is a solemn -assembly; and ye shall do no servile work therein. - -23:37 These are the feasts of the LORD, which ye shall proclaim to be -holy convocations, to offer an offering made by fire unto the LORD, a -burnt offering, and a meat offering, a sacrifice, and drink offerings, -every thing upon his day: 23:38 Beside the sabbaths of the LORD, and -beside your gifts, and beside all your vows, and beside all your -freewill offerings, which ye give unto the LORD. - -23:39 Also in the fifteenth day of the seventh month, when ye have -gathered in the fruit of the land, ye shall keep a feast unto the LORD -seven days: on the first day shall be a sabbath, and on the eighth day -shall be a sabbath. - -23:40 And ye shall take you on the first day the boughs of goodly -trees, branches of palm trees, and the boughs of thick trees, and -willows of the brook; and ye shall rejoice before the LORD your God -seven days. - -23:41 And ye shall keep it a feast unto the LORD seven days in the -year. - -It shall be a statute for ever in your generations: ye shall celebrate -it in the seventh month. - -23:42 Ye shall dwell in booths seven days; all that are Israelites -born shall dwell in booths: 23:43 That your generations may know that -I made the children of Israel to dwell in booths, when I brought them -out of the land of Egypt: I am the LORD your God. - -23:44 And Moses declared unto the children of Israel the feasts of the -LORD. - -24:1 And the LORD spake unto Moses, saying, 24:2 Command the children -of Israel, that they bring unto thee pure oil olive beaten for the -light, to cause the lamps to burn continually. - -24:3 Without the vail of the testimony, in the tabernacle of the -congregation, shall Aaron order it from the evening unto the morning -before the LORD continually: it shall be a statute for ever in your -generations. - -24:4 He shall order the lamps upon the pure candlestick before the -LORD continually. - -24:5 And thou shalt take fine flour, and bake twelve cakes thereof: -two tenth deals shall be in one cake. - -24:6 And thou shalt set them in two rows, six on a row, upon the pure -table before the LORD. - -24:7 And thou shalt put pure frankincense upon each row, that it may -be on the bread for a memorial, even an offering made by fire unto the -LORD. - -24:8 Every sabbath he shall set it in order before the LORD -continually, being taken from the children of Israel by an everlasting -covenant. - -24:9 And it shall be Aaron's and his sons'; and they shall eat it in -the holy place: for it is most holy unto him of the offerings of the -LORD made by fire by a perpetual statute. - -24:10 And the son of an Israelitish woman, whose father was an -Egyptian, went out among the children of Israel: and this son of the -Israelitish woman and a man of Israel strove together in the camp; -24:11 And the Israelitish woman's son blasphemed the name of the Lord, -and cursed. And they brought him unto Moses: (and his mother's name -was Shelomith, the daughter of Dibri, of the tribe of Dan:) 24:12 And -they put him in ward, that the mind of the LORD might be shewed them. - -24:13 And the LORD spake unto Moses, saying, 24:14 Bring forth him -that hath cursed without the camp; and let all that heard him lay -their hands upon his head, and let all the congregation stone him. - -24:15 And thou shalt speak unto the children of Israel, saying, -Whosoever curseth his God shall bear his sin. - -24:16 And he that blasphemeth the name of the LORD, he shall surely be -put to death, and all the congregation shall certainly stone him: as -well the stranger, as he that is born in the land, when he blasphemeth -the name of the Lord, shall be put to death. - -24:17 And he that killeth any man shall surely be put to death. - -24:18 And he that killeth a beast shall make it good; beast for beast. - -24:19 And if a man cause a blemish in his neighbour; as he hath done, -so shall it be done to him; 24:20 Breach for breach, eye for eye, -tooth for tooth: as he hath caused a blemish in a man, so shall it be -done to him again. - -24:21 And he that killeth a beast, he shall restore it: and he that -killeth a man, he shall be put to death. - -24:22 Ye shall have one manner of law, as well for the stranger, as -for one of your own country: for I am the LORD your God. - -24:23 And Moses spake to the children of Israel, that they should -bring forth him that had cursed out of the camp, and stone him with -stones. And the children of Israel did as the LORD commanded Moses. - -25:1 And the LORD spake unto Moses in mount Sinai, saying, 25:2 Speak -unto the children of Israel, and say unto them, When ye come into the -land which I give you, then shall the land keep a sabbath unto the -LORD. - -25:3 Six years thou shalt sow thy field, and six years thou shalt -prune thy vineyard, and gather in the fruit thereof; 25:4 But in the -seventh year shall be a sabbath of rest unto the land, a sabbath for -the LORD: thou shalt neither sow thy field, nor prune thy vineyard. - -25:5 That which groweth of its own accord of thy harvest thou shalt -not reap, neither gather the grapes of thy vine undressed: for it is a -year of rest unto the land. - -25:6 And the sabbath of the land shall be meat for you; for thee, and -for thy servant, and for thy maid, and for thy hired servant, and for -thy stranger that sojourneth with thee. - -25:7 And for thy cattle, and for the beast that are in thy land, shall -all the increase thereof be meat. - -25:8 And thou shalt number seven sabbaths of years unto thee, seven -times seven years; and the space of the seven sabbaths of years shall -be unto thee forty and nine years. - -25:9 Then shalt thou cause the trumpet of the jubile to sound on the -tenth day of the seventh month, in the day of atonement shall ye make -the trumpet sound throughout all your land. - -25:10 And ye shall hallow the fiftieth year, and proclaim liberty -throughout all the land unto all the inhabitants thereof: it shall be -a jubile unto you; and ye shall return every man unto his possession, -and ye shall return every man unto his family. - -25:11 A jubile shall that fiftieth year be unto you: ye shall not sow, -neither reap that which groweth of itself in it, nor gather the grapes -in it of thy vine undressed. - -25:12 For it is the jubile; it shall be holy unto you: ye shall eat -the increase thereof out of the field. - -25:13 In the year of this jubile ye shall return every man unto his -possession. - -25:14 And if thou sell ought unto thy neighbour, or buyest ought of -thy neighbour's hand, ye shall not oppress one another: 25:15 -According to the number of years after the jubile thou shalt buy of -thy neighbour, and according unto the number of years of the fruits he -shall sell unto thee: 25:16 According to the multitude of years thou -shalt increase the price thereof, and according to the fewness of -years thou shalt diminish the price of it: for according to the number -of the years of the fruits doth he sell unto thee. - -25:17 Ye shall not therefore oppress one another; but thou shalt fear -thy God:for I am the LORD your God. - -25:18 Wherefore ye shall do my statutes, and keep my judgments, and do -them; and ye shall dwell in the land in safety. - -25:19 And the land shall yield her fruit, and ye shall eat your fill, -and dwell therein in safety. - -25:20 And if ye shall say, What shall we eat the seventh year? behold, -we shall not sow, nor gather in our increase: 25:21 Then I will -command my blessing upon you in the sixth year, and it shall bring -forth fruit for three years. - -25:22 And ye shall sow the eighth year, and eat yet of old fruit until -the ninth year; until her fruits come in ye shall eat of the old -store. - -25:23 The land shall not be sold for ever: for the land is mine, for -ye are strangers and sojourners with me. - -25:24 And in all the land of your possession ye shall grant a -redemption for the land. - -25:25 If thy brother be waxen poor, and hath sold away some of his -possession, and if any of his kin come to redeem it, then shall he -redeem that which his brother sold. - -25:26 And if the man have none to redeem it, and himself be able to -redeem it; 25:27 Then let him count the years of the sale thereof, and -restore the overplus unto the man to whom he sold it; that he may -return unto his possession. - -25:28 But if he be not able to restore it to him, then that which is -sold shall remain in the hand of him that hath bought it until the -year of jubile: and in the jubile it shall go out, and he shall return -unto his possession. - -25:29 And if a man sell a dwelling house in a walled city, then he may -redeem it within a whole year after it is sold; within a full year may -he redeem it. - -25:30 And if it be not redeemed within the space of a full year, then -the house that is in the walled city shall be established for ever to -him that bought it throughout his generations: it shall not go out in -the jubile. - -25:31 But the houses of the villages which have no wall round about -them shall be counted as the fields of the country: they may be -redeemed, and they shall go out in the jubile. - -25:32 Notwithstanding the cities of the Levites, and the houses of the -cities of their possession, may the Levites redeem at any time. - -25:33 And if a man purchase of the Levites, then the house that was -sold, and the city of his possession, shall go out in the year of -jubile: for the houses of the cities of the Levites are their -possession among the children of Israel. - -25:34 But the field of the suburbs of their cities may not be sold; -for it is their perpetual possession. - -25:35 And if thy brother be waxen poor, and fallen in decay with thee; -then thou shalt relieve him: yea, though he be a stranger, or a -sojourner; that he may live with thee. - -25:36 Take thou no usury of him, or increase: but fear thy God; that -thy brother may live with thee. - -25:37 Thou shalt not give him thy money upon usury, nor lend him thy -victuals for increase. - -25:38 I am the LORD your God, which brought you forth out of the land -of Egypt, to give you the land of Canaan, and to be your God. - -25:39 And if thy brother that dwelleth by thee be waxen poor, and be -sold unto thee; thou shalt not compel him to serve as a bondservant: -25:40 But as an hired servant, and as a sojourner, he shall be with -thee, and shall serve thee unto the year of jubile. - -25:41 And then shall he depart from thee, both he and his children -with him, and shall return unto his own family, and unto the -possession of his fathers shall he return. - -25:42 For they are my servants, which I brought forth out of the land -of Egypt: they shall not be sold as bondmen. - -25:43 Thou shalt not rule over him with rigour; but shalt fear thy -God. - -25:44 Both thy bondmen, and thy bondmaids, which thou shalt have, -shall be of the heathen that are round about you; of them shall ye buy -bondmen and bondmaids. - -25:45 Moreover of the children of the strangers that do sojourn among -you, of them shall ye buy, and of their families that are with you, -which they begat in your land: and they shall be your possession. - -25:46 And ye shall take them as an inheritance for your children after -you, to inherit them for a possession; they shall be your bondmen for -ever: but over your brethren the children of Israel, ye shall not rule -one over another with rigour. - -25:47 And if a sojourner or stranger wax rich by thee, and thy brother -that dwelleth by him wax poor, and sell himself unto the stranger or -sojourner by thee, or to the stock of the stranger's family: 25:48 -After that he is sold he may be redeemed again; one of his brethren -may redeem him: 25:49 Either his uncle, or his uncle's son, may redeem -him, or any that is nigh of kin unto him of his family may redeem him; -or if he be able, he may redeem himself. - -25:50 And he shall reckon with him that bought him from the year that -he was sold to him unto the year of jubile: and the price of his sale -shall be according unto the number of years, according to the time of -an hired servant shall it be with him. - -25:51 If there be yet many years behind, according unto them he shall -give again the price of his redemption out of the money that he was -bought for. - -25:52 And if there remain but few years unto the year of jubile, then -he shall count with him, and according unto his years shall he give -him again the price of his redemption. - -25:53 And as a yearly hired servant shall he be with him: and the -other shall not rule with rigour over him in thy sight. - -25:54 And if he be not redeemed in these years, then he shall go out -in the year of jubile, both he, and his children with him. - -25:55 For unto me the children of Israel are servants; they are my -servants whom I brought forth out of the land of Egypt: I am the LORD -your God. - -26:1 Ye shall make you no idols nor graven image, neither rear you up -a standing image, neither shall ye set up any image of stone in your -land, to bow down unto it: for I am the LORD your God. - -26:2 Ye shall keep my sabbaths, and reverence my sanctuary: I am the -LORD. - -26:3 If ye walk in my statutes, and keep my commandments, and do them; -26:4 Then I will give you rain in due season, and the land shall yield -her increase, and the trees of the field shall yield their fruit. - -26:5 And your threshing shall reach unto the vintage, and the vintage -shall reach unto the sowing time: and ye shall eat your bread to the -full, and dwell in your land safely. - -26:6 And I will give peace in the land, and ye shall lie down, and -none shall make you afraid: and I will rid evil beasts out of the -land, neither shall the sword go through your land. - -26:7 And ye shall chase your enemies, and they shall fall before you -by the sword. - -26:8 And five of you shall chase an hundred, and an hundred of you -shall put ten thousand to flight: and your enemies shall fall before -you by the sword. - -26:9 For I will have respect unto you, and make you fruitful, and -multiply you, and establish my covenant with you. - -26:10 And ye shall eat old store, and bring forth the old because of -the new. - -26:11 And I set my tabernacle among you: and my soul shall not abhor -you. - -26:12 And I will walk among you, and will be your God, and ye shall be -my people. - -26:13 I am the LORD your God, which brought you forth out of the land -of Egypt, that ye should not be their bondmen; and I have broken the -bands of your yoke, and made you go upright. - -26:14 But if ye will not hearken unto me, and will not do all these -commandments; 26:15 And if ye shall despise my statutes, or if your -soul abhor my judgments, so that ye will not do all my commandments, -but that ye break my covenant: 26:16 I also will do this unto you; I -will even appoint over you terror, consumption, and the burning ague, -that shall consume the eyes, and cause sorrow of heart: and ye shall -sow your seed in vain, for your enemies shall eat it. - -26:17 And I will set my face against you, and ye shall be slain before -your enemies: they that hate you shall reign over you; and ye shall -flee when none pursueth you. - -26:18 And if ye will not yet for all this hearken unto me, then I will -punish you seven times more for your sins. - -26:19 And I will break the pride of your power; and I will make your -heaven as iron, and your earth as brass: 26:20 And your strength shall -be spent in vain: for your land shall not yield her increase, neither -shall the trees of the land yield their fruits. - -26:21 And if ye walk contrary unto me, and will not hearken unto me; I -will bring seven times more plagues upon you according to your sins. - -26:22 I will also send wild beasts among you, which shall rob you of -your children, and destroy your cattle, and make you few in number; -and your high ways shall be desolate. - -26:23 And if ye will not be reformed by me by these things, but will -walk contrary unto me; 26:24 Then will I also walk contrary unto you, -and will punish you yet seven times for your sins. - -26:25 And I will bring a sword upon you, that shall avenge the quarrel -of my covenant: and when ye are gathered together within your cities, -I will send the pestilence among you; and ye shall be delivered into -the hand of the enemy. - -26:26 And when I have broken the staff of your bread, ten women shall -bake your bread in one oven, and they shall deliver you your bread -again by weight: and ye shall eat, and not be satisfied. - -26:27 And if ye will not for all this hearken unto me, but walk -contrary unto me; 26:28 Then I will walk contrary unto you also in -fury; and I, even I, will chastise you seven times for your sins. - -26:29 And ye shall eat the flesh of your sons, and the flesh of your -daughters shall ye eat. - -26:30 And I will destroy your high places, and cut down your images, -and cast your carcases upon the carcases of your idols, and my soul -shall abhor you. - -26:31 And I will make your cities waste, and bring your sanctuaries -unto desolation, and I will not smell the savour of your sweet odours. - -26:32 And I will bring the land into desolation: and your enemies -which dwell therein shall be astonished at it. - -26:33 And I will scatter you among the heathen, and will draw out a -sword after you: and your land shall be desolate, and your cities -waste. - -26:34 Then shall the land enjoy her sabbaths, as long as it lieth -desolate, and ye be in your enemies' land; even then shall the land -rest, and enjoy her sabbaths. - -26:35 As long as it lieth desolate it shall rest; because it did not -rest in your sabbaths, when ye dwelt upon it. - -26:36 And upon them that are left alive of you I will send a faintness -into their hearts in the lands of their enemies; and the sound of a -shaken leaf shall chase them; and they shall flee, as fleeing from a -sword; and they shall fall when none pursueth. - -26:37 And they shall fall one upon another, as it were before a sword, -when none pursueth: and ye shall have no power to stand before your -enemies. - -26:38 And ye shall perish among the heathen, and the land of your -enemies shall eat you up. - -26:39 And they that are left of you shall pine away in their iniquity -in your enemies' lands; and also in the iniquities of their fathers -shall they pine away with them. - -26:40 If they shall confess their iniquity, and the iniquity of their -fathers, with their trespass which they trespassed against me, and -that also they have walked contrary unto me; 26:41 And that I also -have walked contrary unto them, and have brought them into the land of -their enemies; if then their uncircumcised hearts be humbled, and they -then accept of the punishment of their iniquity: 26:42 Then will I -remember my covenant with Jacob, and also my covenant with Isaac, and -also my covenant with Abraham will I remember; and I will remember the -land. - -26:43 The land also shall be left of them, and shall enjoy her -sabbaths, while she lieth desolate without them: and they shall accept -of the punishment of their iniquity: because, even because they -despised my judgments, and because their soul abhorred my statutes. - -26:44 And yet for all that, when they be in the land of their enemies, -I will not cast them away, neither will I abhor them, to destroy them -utterly, and to break my covenant with them: for I am the LORD their -God. - -26:45 But I will for their sakes remember the covenant of their -ancestors, whom I brought forth out of the land of Egypt in the sight -of the heathen, that I might be their God: I am the LORD. - -26:46 These are the statutes and judgments and laws, which the LORD -made between him and the children of Israel in mount Sinai by the hand -of Moses. - -27:1 And the LORD spake unto Moses, saying, 27:2 Speak unto the -children of Israel, and say unto them, When a man shall make a -singular vow, the persons shall be for the LORD by thy estimation. - -27:3 And thy estimation shall be of the male from twenty years old -even unto sixty years old, even thy estimation shall be fifty shekels -of silver, after the shekel of the sanctuary. - -27:4 And if it be a female, then thy estimation shall be thirty -shekels. - -27:5 And if it be from five years old even unto twenty years old, then -thy estimation shall be of the male twenty shekels, and for the female -ten shekels. - -27:6 And if it be from a month old even unto five years old, then thy -estimation shall be of the male five shekels of silver, and for the -female thy estimation shall be three shekels of silver. - -27:7 And if it be from sixty years old and above; if it be a male, -then thy estimation shall be fifteen shekels, and for the female ten -shekels. - -27:8 But if he be poorer than thy estimation, then he shall present -himself before the priest, and the priest shall value him; according -to his ability that vowed shall the priest value him. - -27:9 And if it be a beast, whereof men bring an offering unto the -LORD, all that any man giveth of such unto the LORD shall be holy. - -27:10 He shall not alter it, nor change it, a good for a bad, or a bad -for a good: and if he shall at all change beast for beast, then it and -the exchange thereof shall be holy. - -27:11 And if it be any unclean beast, of which they do not offer a -sacrifice unto the LORD, then he shall present the beast before the -priest: 27:12 And the priest shall value it, whether it be good or -bad: as thou valuest it, who art the priest, so shall it be. - -27:13 But if he will at all redeem it, then he shall add a fifth part -thereof unto thy estimation. - -27:14 And when a man shall sanctify his house to be holy unto the -LORD, then the priest shall estimate it, whether it be good or bad: as -the priest shall estimate it, so shall it stand. - -27:15 And if he that sanctified it will redeem his house, then he -shall add the fifth part of the money of thy estimation unto it, and -it shall be his. - -27:16 And if a man shall sanctify unto the LORD some part of a field -of his possession, then thy estimation shall be according to the seed -thereof: an homer of barley seed shall be valued at fifty shekels of -silver. - -27:17 If he sanctify his field from the year of jubile, according to -thy estimation it shall stand. - -27:18 But if he sanctify his field after the jubile, then the priest -shall reckon unto him the money according to the years that remain, -even unto the year of the jubile, and it shall be abated from thy -estimation. - -27:19 And if he that sanctified the field will in any wise redeem it, -then he shall add the fifth part of the money of thy estimation unto -it, and it shall be assured to him. - -27:20 And if he will not redeem the field, or if he have sold the -field to another man, it shall not be redeemed any more. - -27:21 But the field, when it goeth out in the jubile, shall be holy -unto the LORD, as a field devoted; the possession thereof shall be the -priest's. - -27:22 And if a man sanctify unto the LORD a field which he hath -bought, which is not of the fields of his possession; 27:23 Then the -priest shall reckon unto him the worth of thy estimation, even unto -the year of the jubile: and he shall give thine estimation in that -day, as a holy thing unto the LORD. - -27:24 In the year of the jubile the field shall return unto him of -whom it was bought, even to him to whom the possession of the land did -belong. - -27:25 And all thy estimations shall be according to the shekel of the -sanctuary: twenty gerahs shall be the shekel. - -27:26 Only the firstling of the beasts, which should be the LORD's -firstling, no man shall sanctify it; whether it be ox, or sheep: it is -the LORD's. - -27:27 And if it be of an unclean beast, then he shall redeem it -according to thine estimation, and shall add a fifth part of it -thereto: or if it be not redeemed, then it shall be sold according to -thy estimation. - -27:28 Notwithstanding no devoted thing, that a man shall devote unto -the LORD of all that he hath, both of man and beast, and of the field -of his possession, shall be sold or redeemed: every devoted thing is -most holy unto the LORD. - -27:29 None devoted, which shall be devoted of men, shall be redeemed; -but shall surely be put to death. - -27:30 And all the tithe of the land, whether of the seed of the land, -or of the fruit of the tree, is the LORD's: it is holy unto the LORD. - -27:31 And if a man will at all redeem ought of his tithes, he shall -add thereto the fifth part thereof. - -27:32 And concerning the tithe of the herd, or of the flock, even of -whatsoever passeth under the rod, the tenth shall be holy unto the -LORD. - -27:33 He shall not search whether it be good or bad, neither shall he -change it: and if he change it at all, then both it and the change -thereof shall be holy; it shall not be redeemed. - -27:34 These are the commandments, which the LORD commanded Moses for -the children of Israel in mount Sinai. - - - - -The Fourth Book of Moses: Called Numbers - - -1:1 And the LORD spake unto Moses in the wilderness of Sinai, in the -tabernacle of the congregation, on the first day of the second month, -in the second year after they were come out of the land of Egypt, -saying, 1:2 Take ye the sum of all the congregation of the children of -Israel, after their families, by the house of their fathers, with the -number of their names, every male by their polls; 1:3 From twenty -years old and upward, all that are able to go forth to war in Israel: -thou and Aaron shall number them by their armies. - -1:4 And with you there shall be a man of every tribe; every one head -of the house of his fathers. - -1:5 And these are the names of the men that shall stand with you: of -the tribe of Reuben; Elizur the son of Shedeur. - -1:6 Of Simeon; Shelumiel the son of Zurishaddai. - -1:7 Of Judah; Nahshon the son of Amminadab. - -1:8 Of Issachar; Nethaneel the son of Zuar. - -1:9 Of Zebulun; Eliab the son of Helon. - -1:10 Of the children of Joseph: of Ephraim; Elishama the son of -Ammihud: of Manasseh; Gamaliel the son of Pedahzur. - -1:11 Of Benjamin; Abidan the son of Gideoni. - -1:12 Of Dan; Ahiezer the son of Ammishaddai. - -1:13 Of Asher; Pagiel the son of Ocran. - -1:14 Of Gad; Eliasaph the son of Deuel. - -1:15 Of Naphtali; Ahira the son of Enan. - -1:16 These were the renowned of the congregation, princes of the -tribes of their fathers, heads of thousands in Israel. - -1:17 And Moses and Aaron took these men which are expressed by their -names: 1:18 And they assembled all the congregation together on the -first day of the second month, and they declared their pedigrees after -their families, by the house of their fathers, according to the number -of the names, from twenty years old and upward, by their polls. - -1:19 As the LORD commanded Moses, so he numbered them in the -wilderness of Sinai. - -1:20 And the children of Reuben, Israel's eldest son, by their -generations, after their families, by the house of their fathers, -according to the number of the names, by their polls, every male from -twenty years old and upward, all that were able to go forth to war; -1:21 Those that were numbered of them, even of the tribe of Reuben, -were forty and six thousand and five hundred. - -1:22 Of the children of Simeon, by their generations, after their -families, by the house of their fathers, those that were numbered of -them, according to the number of the names, by their polls, every male -from twenty years old and upward, all that were able to go forth to -war; 1:23 Those that were numbered of them, even of the tribe of -Simeon, were fifty and nine thousand and three hundred. - -1:24 Of the children of Gad, by their generations, after their -families, by the house of their fathers, according to the number of -the names, from twenty years old and upward, all that were able to go -forth to war; 1:25 Those that were numbered of them, even of the tribe -of Gad, were forty and five thousand six hundred and fifty. - -1:26 Of the children of Judah, by their generations, after their -families, by the house of their fathers, according to the number of -the names, from twenty years old and upward, all that were able to go -forth to war; 1:27 Those that were numbered of them, even of the tribe -of Judah, were threescore and fourteen thousand and six hundred. - -1:28 Of the children of Issachar, by their generations, after their -families, by the house of their fathers, according to the number of -the names, from twenty years old and upward, all that were able to go -forth to war; 1:29 Those that were numbered of them, even of the tribe -of Issachar, were fifty and four thousand and four hundred. - -1:30 Of the children of Zebulun, by their generations, after their -families, by the house of their fathers, according to the number of -the names, from twenty years old and upward, all that were able to go -forth to war; 1:31 Those that were numbered of them, even of the tribe -of Zebulun, were fifty and seven thousand and four hundred. - -1:32 Of the children of Joseph, namely, of the children of Ephraim, by -their generations, after their families, by the house of their -fathers, according to the number of the names, from twenty years old -and upward, all that were able to go forth to war; 1:33 Those that -were numbered of them, even of the tribe of Ephraim, were forty -thousand and five hundred. - -1:34 Of the children of Manasseh, by their generations, after their -families, by the house of their fathers, according to the number of -the names, from twenty years old and upward, all that were able to go -forth to war; 1:35 Those that were numbered of them, even of the tribe -of Manasseh, were thirty and two thousand and two hundred. - -1:36 Of the children of Benjamin, by their generations, after their -families, by the house of their fathers, according to the number of -the names, from twenty years old and upward, all that were able to go -forth to war; 1:37 Those that were numbered of them, even of the tribe -of Benjamin, were thirty and five thousand and four hundred. - -1:38 Of the children of Dan, by their generations, after their -families, by the house of their fathers, according to the number of -the names, from twenty years old and upward, all that were able to go -forth to war; 1:39 Those that were numbered of them, even of the tribe -of Dan, were threescore and two thousand and seven hundred. - -1:40 Of the children of Asher, by their generations, after their -families, by the house of their fathers, according to the number of -the names, from twenty years old and upward, all that were able to go -forth to war; 1:41 Those that were numbered of them, even of the tribe -of Asher, were forty and one thousand and five hundred. - -1:42 Of the children of Naphtali, throughout their generations, after -their families, by the house of their fathers, according to the number -of the names, from twenty years old and upward, all that were able to -go forth to war; 1:43 Those that were numbered of them, even of the -tribe of Naphtali, were fifty and three thousand and four hundred. - -1:44 These are those that were numbered, which Moses and Aaron -numbered, and the princes of Israel, being twelve men: each one was -for the house of his fathers. - -1:45 So were all those that were numbered of the children of Israel, -by the house of their fathers, from twenty years old and upward, all -that were able to go forth to war in Israel; 1:46 Even all they that -were numbered were six hundred thousand and three thousand and five -hundred and fifty. - -1:47 But the Levites after the tribe of their fathers were not -numbered among them. - -1:48 For the LORD had spoken unto Moses, saying, 1:49 Only thou shalt -not number the tribe of Levi, neither take the sum of them among the -children of Israel: 1:50 But thou shalt appoint the Levites over the -tabernacle of testimony, and over all the vessels thereof, and over -all things that belong to it: they shall bear the tabernacle, and all -the vessels thereof; and they shall minister unto it, and shall encamp -round about the tabernacle. - -1:51 And when the tabernacle setteth forward, the Levites shall take -it down: and when the tabernacle is to be pitched, the Levites shall -set it up: and the stranger that cometh nigh shall be put to death. - -1:52 And the children of Israel shall pitch their tents, every man by -his own camp, and every man by his own standard, throughout their -hosts. - -1:53 But the Levites shall pitch round about the tabernacle of -testimony, that there be no wrath upon the congregation of the -children of Israel: and the Levites shall keep the charge of the -tabernacle of testimony. - -1:54 And the children of Israel did according to all that the LORD -commanded Moses, so did they. - -2:1 And the LORD spake unto Moses and unto Aaron, saying, 2:2 Every -man of the children of Israel shall pitch by his own standard, with -the ensign of their father's house: far off about the tabernacle of -the congregation shall they pitch. - -2:3 And on the east side toward the rising of the sun shall they of -the standard of the camp of Judah pitch throughout their armies: and -Nahshon the son of Amminadab shall be captain of the children of -Judah. - -2:4 And his host, and those that were numbered of them, were -threescore and fourteen thousand and six hundred. - -2:5 And those that do pitch next unto him shall be the tribe of -Issachar: and Nethaneel the son of Zuar shall be captain of the -children of Issachar. - -2:6 And his host, and those that were numbered thereof, were fifty and -four thousand and four hundred. - -2:7 Then the tribe of Zebulun: and Eliab the son of Helon shall be -captain of the children of Zebulun. - -2:8 And his host, and those that were numbered thereof, were fifty and -seven thousand and four hundred. - -2:9 All that were numbered in the camp of Judah were an hundred -thousand and fourscore thousand and six thousand and four hundred, -throughout their armies. These shall first set forth. - -2:10 On the south side shall be the standard of the camp of Reuben -according to their armies: and the captain of the children of Reuben -shall be Elizur the son of Shedeur. - -2:11 And his host, and those that were numbered thereof, were forty -and six thousand and five hundred. - -2:12 And those which pitch by him shall be the tribe of Simeon: and -the captain of the children of Simeon shall be Shelumiel the son of -Zurishaddai. - -2:13 And his host, and those that were numbered of them, were fifty -and nine thousand and three hundred. - -2:14 Then the tribe of Gad: and the captain of the sons of Gad shall -be Eliasaph the son of Reuel. - -2:15 And his host, and those that were numbered of them, were forty -and five thousand and six hundred and fifty. - -2:16 All that were numbered in the camp of Reuben were an hundred -thousand and fifty and one thousand and four hundred and fifty, -throughout their armies. And they shall set forth in the second rank. - -2:17 Then the tabernacle of the congregation shall set forward with -the camp of the Levites in the midst of the camp: as they encamp, so -shall they set forward, every man in his place by their standards. - -2:18 On the west side shall be the standard of the camp of Ephraim -according to their armies: and the captain of the sons of Ephraim -shall be Elishama the son of Ammihud. - -2:19 And his host, and those that were numbered of them, were forty -thousand and five hundred. - -2:20 And by him shall be the tribe of Manasseh: and the captain of the -children of Manasseh shall be Gamaliel the son of Pedahzur. - -2:21 And his host, and those that were numbered of them, were thirty -and two thousand and two hundred. - -2:22 Then the tribe of Benjamin: and the captain of the sons of -Benjamin shall be Abidan the son of Gideoni. - -2:23 And his host, and those that were numbered of them, were thirty -and five thousand and four hundred. - -2:24 All that were numbered of the camp of Ephraim were an hundred -thousand and eight thousand and an hundred, throughout their armies. -And they shall go forward in the third rank. - -2:25 The standard of the camp of Dan shall be on the north side by -their armies: and the captain of the children of Dan shall be Ahiezer -the son of Ammishaddai. - -2:26 And his host, and those that were numbered of them, were -threescore and two thousand and seven hundred. - -2:27 And those that encamp by him shall be the tribe of Asher: and the -captain of the children of Asher shall be Pagiel the son of Ocran. - -2:28 And his host, and those that were numbered of them, were forty -and one thousand and five hundred. - -2:29 Then the tribe of Naphtali: and the captain of the children of -Naphtali shall be Ahira the son of Enan. - -2:30 And his host, and those that were numbered of them, were fifty -and three thousand and four hundred. - -2:31 All they that were numbered in the camp of Dan were an hundred -thousand and fifty and seven thousand and six hundred. They shall go -hindmost with their standards. - -2:32 These are those which were numbered of the children of Israel by -the house of their fathers: all those that were numbered of the camps -throughout their hosts were six hundred thousand and three thousand -and five hundred and fifty. - -2:33 But the Levites were not numbered among the children of Israel; -as the LORD commanded Moses. - -2:34 And the children of Israel did according to all that the LORD -commanded Moses: so they pitched by their standards, and so they set -forward, every one after their families, according to the house of -their fathers. - -3:1 These also are the generations of Aaron and Moses in the day that -the LORD spake with Moses in mount Sinai. - -3:2 And these are the names of the sons of Aaron; Nadab the firstborn, -and Abihu, Eleazar, and Ithamar. - -3:3 These are the names of the sons of Aaron, the priests which were -anointed, whom he consecrated to minister in the priest's office. - -3:4 And Nadab and Abihu died before the LORD, when they offered -strange fire before the LORD, in the wilderness of Sinai, and they had -no children: and Eleazar and Ithamar ministered in the priest's office -in the sight of Aaron their father. - -3:5 And the LORD spake unto Moses, saying, 3:6 Bring the tribe of Levi -near, and present them before Aaron the priest, that they may minister -unto him. - -3:7 And they shall keep his charge, and the charge of the whole -congregation before the tabernacle of the congregation, to do the -service of the tabernacle. - -3:8 And they shall keep all the instruments of the tabernacle of the -congregation, and the charge of the children of Israel, to do the -service of the tabernacle. - -3:9 And thou shalt give the Levites unto Aaron and to his sons: they -are wholly given unto him out of the children of Israel. - -3:10 And thou shalt appoint Aaron and his sons, and they shall wait on -their priest's office: and the stranger that cometh nigh shall be put -to death. - -3:11 And the LORD spake unto Moses, saying, 3:12 And I, behold, I have -taken the Levites from among the children of Israel instead of all the -firstborn that openeth the matrix among the children of Israel: -therefore the Levites shall be mine; 3:13 Because all the firstborn -are mine; for on the day that I smote all the firstborn in the land of -Egypt I hallowed unto me all the firstborn in Israel, both man and -beast: mine shall they be: I am the LORD. - -3:14 And the LORD spake unto Moses in the wilderness of Sinai, saying, -3:15 Number the children of Levi after the house of their fathers, by -their families: every male from a month old and upward shalt thou -number them. - -3:16 And Moses numbered them according to the word of the LORD, as he -was commanded. - -3:17 And these were the sons of Levi by their names; Gershon, and -Kohath, and Merari. - -3:18 And these are the names of the sons of Gershon by their families; -Libni, and Shimei. - -3:19 And the sons of Kohath by their families; Amram, and Izehar, -Hebron, and Uzziel. - -3:20 And the sons of Merari by their families; Mahli, and Mushi. These -are the families of the Levites according to the house of their -fathers. - -3:21 Of Gershon was the family of the Libnites, and the family of the -Shimites: these are the families of the Gershonites. - -3:22 Those that were numbered of them, according to the number of all -the males, from a month old and upward, even those that were numbered -of them were seven thousand and five hundred. - -3:23 The families of the Gershonites shall pitch behind the tabernacle -westward. - -3:24 And the chief of the house of the father of the Gershonites shall -be Eliasaph the son of Lael. - -3:25 And the charge of the sons of Gershon in the tabernacle of the -congregation shall be the tabernacle, and the tent, the covering -thereof, and the hanging for the door of the tabernacle of the -congregation, 3:26 And the hangings of the court, and the curtain for -the door of the court, which is by the tabernacle, and by the altar -round about, and the cords of it for all the service thereof. - -3:27 And of Kohath was the family of the Amramites, and the family of -the Izeharites, and the family of the Hebronites, and the family of -the Uzzielites: these are the families of the Kohathites. - -3:28 In the number of all the males, from a month old and upward, were -eight thousand and six hundred, keeping the charge of the sanctuary. - -3:29 The families of the sons of Kohath shall pitch on the side of the -tabernacle southward. - -3:30 And the chief of the house of the father of the families of the -Kohathites shall be Elizaphan the son of Uzziel. - -3:31 And their charge shall be the ark, and the table, and the -candlestick, and the altars, and the vessels of the sanctuary -wherewith they minister, and the hanging, and all the service thereof. - -3:32 And Eleazar the son of Aaron the priest shall be chief over the -chief of the Levites, and have the oversight of them that keep the -charge of the sanctuary. - -3:33 Of Merari was the family of the Mahlites, and the family of the -Mushites: these are the families of Merari. - -3:34 And those that were numbered of them, according to the number of -all the males, from a month old and upward, were six thousand and two -hundred. - -3:35 And the chief of the house of the father of the families of -Merari was Zuriel the son of Abihail: these shall pitch on the side of -the tabernacle northward. - -3:36 And under the custody and charge of the sons of Merari shall be -the boards of the tabernacle, and the bars thereof, and the pillars -thereof, and the sockets thereof, and all the vessels thereof, and all -that serveth thereto, 3:37 And the pillars of the court round about, -and their sockets, and their pins, and their cords. - -3:38 But those that encamp before the tabernacle toward the east, even -before the tabernacle of the congregation eastward, shall be Moses, -and Aaron and his sons, keeping the charge of the sanctuary for the -charge of the children of Israel; and the stranger that cometh nigh -shall be put to death. - -3:39 All that were numbered of the Levites, which Moses and Aaron -numbered at the commandment of the LORD, throughout their families, -all the males from a month old and upward, were twenty and two -thousand. - -3:40 And the LORD said unto Moses, Number all the firstborn of the -males of the children of Israel from a month old and upward, and take -the number of their names. - -3:41 And thou shalt take the Levites for me (I am the LORD) instead of -all the firstborn among the children of Israel; and the cattle of the -Levites instead of all the firstlings among the cattle of the children -of Israel. - -3:42 And Moses numbered, as the LORD commanded him, all the firstborn -among the children of Israel. - -3:43 And all the firstborn males by the number of names, from a month -old and upward, of those that were numbered of them, were twenty and -two thousand two hundred and threescore and thirteen. - -3:44 And the LORD spake unto Moses, saying, 3:45 Take the Levites -instead of all the firstborn among the children of Israel, and the -cattle of the Levites instead of their cattle; and the Levites shall -be mine: I am the LORD. - -3:46 And for those that are to be redeemed of the two hundred and -threescore and thirteen of the firstborn of the children of Israel, -which are more than the Levites; 3:47 Thou shalt even take five -shekels apiece by the poll, after the shekel of the sanctuary shalt -thou take them: (the shekel is twenty gerahs:) 3:48 And thou shalt -give the money, wherewith the odd number of them is to be redeemed, -unto Aaron and to his sons. - -3:49 And Moses took the redemption money of them that were over and -above them that were redeemed by the Levites: 3:50 Of the firstborn of -the children of Israel took he the money; a thousand three hundred and -threescore and five shekels, after the shekel of the sanctuary: 3:51 -And Moses gave the money of them that were redeemed unto Aaron and to -his sons, according to the word of the LORD, as the LORD commanded -Moses. - -4:1 And the LORD spake unto Moses and unto Aaron, saying, 4:2 Take the -sum of the sons of Kohath from among the sons of Levi, after their -families, by the house of their fathers, 4:3 From thirty years old and -upward even until fifty years old, all that enter into the host, to do -the work in the tabernacle of the congregation. - -4:4 This shall be the service of the sons of Kohath in the tabernacle -of the congregation, about the most holy things: 4:5 And when the camp -setteth forward, Aaron shall come, and his sons, and they shall take -down the covering vail, and cover the ark of testimony with it: 4:6 -And shall put thereon the covering of badgers' skins, and shall spread -over it a cloth wholly of blue, and shall put in the staves thereof. - -4:7 And upon the table of shewbread they shall spread a cloth of blue, -and put thereon the dishes, and the spoons, and the bowls, and covers -to cover withal: and the continual bread shall be thereon: 4:8 And -they shall spread upon them a cloth of scarlet, and cover the same -with a covering of badgers' skins, and shall put in the staves -thereof. - -4:9 And they shall take a cloth of blue, and cover the candlestick of -the light, and his lamps, and his tongs, and his snuffdishes, and all -the oil vessels thereof, wherewith they minister unto it: 4:10 And -they shall put it and all the vessels thereof within a covering of -badgers' skins, and shall put it upon a bar. - -4:11 And upon the golden altar they shall spread a cloth of blue, and -cover it with a covering of badgers' skins, and shall put to the -staves thereof: 4:12 And they shall take all the instruments of -ministry, wherewith they minister in the sanctuary, and put them in a -cloth of blue, and cover them with a covering of badgers' skins, and -shall put them on a bar: 4:13 And they shall take away the ashes from -the altar, and spread a purple cloth thereon: 4:14 And they shall put -upon it all the vessels thereof, wherewith they minister about it, -even the censers, the fleshhooks, and the shovels, and the basons, all -the vessels of the altar; and they shall spread upon it a covering of -badgers' skins, and put to the staves of it. - -4:15 And when Aaron and his sons have made an end of covering the -sanctuary, and all the vessels of the sanctuary, as the camp is to set -forward; after that, the sons of Kohath shall come to bear it: but -they shall not touch any holy thing, lest they die. These things are -the burden of the sons of Kohath in the tabernacle of the -congregation. - -4:16 And to the office of Eleazar the son of Aaron the priest -pertaineth the oil for the light, and the sweet incense, and the daily -meat offering, and the anointing oil, and the oversight of all the -tabernacle, and of all that therein is, in the sanctuary, and in the -vessels thereof. - -4:17 And the LORD spake unto Moses and unto Aaron saying, 4:18 Cut ye -not off the tribe of the families of the Kohathites from among the -Levites: 4:19 But thus do unto them, that they may live, and not die, -when they approach unto the most holy things: Aaron and his sons shall -go in, and appoint them every one to his service and to his burden: -4:20 But they shall not go in to see when the holy things are covered, -lest they die. - -4:21 And the LORD spake unto Moses, saying, 4:22 Take also the sum of -the sons of Gershon, throughout the houses of their fathers, by their -families; 4:23 From thirty years old and upward until fifty years old -shalt thou number them; all that enter in to perform the service, to -do the work in the tabernacle of the congregation. - -4:24 This is the service of the families of the Gershonites, to serve, -and for burdens: 4:25 And they shall bear the curtains of the -tabernacle, and the tabernacle of the congregation, his covering, and -the covering of the badgers' skins that is above upon it, and the -hanging for the door of the tabernacle of the congregation, 4:26 And -the hangings of the court, and the hanging for the door of the gate of -the court, which is by the tabernacle and by the altar round about, -and their cords, and all the instruments of their service, and all -that is made for them: so shall they serve. - -4:27 At the appointment of Aaron and his sons shall be all the service -of the sons of the Gershonites, in all their burdens, and in all their -service: and ye shall appoint unto them in charge all their burdens. - -4:28 This is the service of the families of the sons of Gershon in the -tabernacle of the congregation: and their charge shall be under the -hand of Ithamar the son of Aaron the priest. - -4:29 As for the sons of Merari, thou shalt number them after their -families, by the house of their fathers; 4:30 From thirty years old -and upward even unto fifty years old shalt thou number them, every one -that entereth into the service, to do the work of the tabernacle of -the congregation. - -4:31 And this is the charge of their burden, according to all their -service in the tabernacle of the congregation; the boards of the -tabernacle, and the bars thereof, and the pillars thereof, and sockets -thereof, 4:32 And the pillars of the court round about, and their -sockets, and their pins, and their cords, with all their instruments, -and with all their service: and by name ye shall reckon the -instruments of the charge of their burden. - -4:33 This is the service of the families of the sons of Merari, -according to all their service, in the tabernacle of the congregation, -under the hand of Ithamar the son of Aaron the priest. - -4:34 And Moses and Aaron and the chief of the congregation numbered -the sons of the Kohathites after their families, and after the house -of their fathers, 4:35 From thirty years old and upward even unto -fifty years old, every one that entereth into the service, for the -work in the tabernacle of the congregation: 4:36 And those that were -numbered of them by their families were two thousand seven hundred and -fifty. - -4:37 These were they that were numbered of the families of the -Kohathites, all that might do service in the tabernacle of the -congregation, which Moses and Aaron did number according to the -commandment of the LORD by the hand of Moses. - -4:38 And those that were numbered of the sons of Gershon, throughout -their families, and by the house of their fathers, 4:39 From thirty -years old and upward even unto fifty years old, every one that -entereth into the service, for the work in the tabernacle of the -congregation, 4:40 Even those that were numbered of them, throughout -their families, by the house of their fathers, were two thousand and -six hundred and thirty. - -4:41 These are they that were numbered of the families of the sons of -Gershon, of all that might do service in the tabernacle of the -congregation, whom Moses and Aaron did number according to the -commandment of the LORD. - -4:42 And those that were numbered of the families of the sons of -Merari, throughout their families, by the house of their fathers, 4:43 -From thirty years old and upward even unto fifty years old, every one -that entereth into the service, for the work in the tabernacle of the -congregation, 4:44 Even those that were numbered of them after their -families, were three thousand and two hundred. - -4:45 These be those that were numbered of the families of the sons of -Merari, whom Moses and Aaron numbered according to the word of the -LORD by the hand of Moses. - -4:46 All those that were numbered of the Levites, whom Moses and Aaron -and the chief of Israel numbered, after their families, and after the -house of their fathers, 4:47 From thirty years old and upward even -unto fifty years old, every one that came to do the service of the -ministry, and the service of the burden in the tabernacle of the -congregation. - -4:48 Even those that were numbered of them, were eight thousand and -five hundred and fourscore, 4:49 According to the commandment of the -LORD they were numbered by the hand of Moses, every one according to -his service, and according to his burden: thus were they numbered of -him, as the LORD commanded Moses. - -5:1 And the LORD spake unto Moses, saying, 5:2 Command the children of -Israel, that they put out of the camp every leper, and every one that -hath an issue, and whosoever is defiled by the dead: 5:3 Both male and -female shall ye put out, without the camp shall ye put them; that they -defile not their camps, in the midst whereof I dwell. - -5:4 And the children of Israel did so, and put them out without the -camp: as the LORD spake unto Moses, so did the children of Israel. - -5:5 And the LORD spake unto Moses, saying, 5:6 Speak unto the children -of Israel, When a man or woman shall commit any sin that men commit, -to do a trespass against the LORD, and that person be guilty; 5:7 Then -they shall confess their sin which they have done: and he shall -recompense his trespass with the principal thereof, and add unto it -the fifth part thereof, and give it unto him against whom he hath -trespassed. - -5:8 But if the man have no kinsman to recompense the trespass unto, -let the trespass be recompensed unto the LORD, even to the priest; -beside the ram of the atonement, whereby an atonement shall be made -for him. - -5:9 And every offering of all the holy things of the children of -Israel, which they bring unto the priest, shall be his. - -5:10 And every man's hallowed things shall be his: whatsoever any man -giveth the priest, it shall be his. - -5:11 And the LORD spake unto Moses, saying, 5:12 Speak unto the -children of Israel, and say unto them, If any man's wife go aside, and -commit a trespass against him, 5:13 And a man lie with her carnally, -and it be hid from the eyes of her husband, and be kept close, and she -be defiled, and there be no witness against her, neither she be taken -with the manner; 5:14 And the spirit of jealousy come upon him, and he -be jealous of his wife, and she be defiled: or if the spirit of -jealousy come upon him, and he be jealous of his wife, and she be not -defiled: 5:15 Then shall the man bring his wife unto the priest, and -he shall bring her offering for her, the tenth part of an ephah of -barley meal; he shall pour no oil upon it, nor put frankincense -thereon; for it is an offering of jealousy, an offering of memorial, -bringing iniquity to remembrance. - -5:16 And the priest shall bring her near, and set her before the LORD: -5:17 And the priest shall take holy water in an earthen vessel; and of -the dust that is in the floor of the tabernacle the priest shall take, -and put it into the water: 5:18 And the priest shall set the woman -before the LORD, and uncover the woman's head, and put the offering of -memorial in her hands, which is the jealousy offering: and the priest -shall have in his hand the bitter water that causeth the curse: 5:19 -And the priest shall charge her by an oath, and say unto the woman, If -no man have lain with thee, and if thou hast not gone aside to -uncleanness with another instead of thy husband, be thou free from -this bitter water that causeth the curse: 5:20 But if thou hast gone -aside to another instead of thy husband, and if thou be defiled, and -some man have lain with thee beside thine husband: 5:21 Then the -priest shall charge the woman with an oath of cursing, and the priest -shall say unto the woman, The LORD make thee a curse and an oath among -thy people, when the LORD doth make thy thigh to rot, and thy belly to -swell; 5:22 And this water that causeth the curse shall go into thy -bowels, to make thy belly to swell, and thy thigh to rot: And the -woman shall say, Amen, amen. - -5:23 And the priest shall write these curses in a book, and he shall -blot them out with the bitter water: 5:24 And he shall cause the woman -to drink the bitter water that causeth the curse: and the water that -causeth the curse shall enter into her, and become bitter. - -5:25 Then the priest shall take the jealousy offering out of the -woman's hand, and shall wave the offering before the LORD, and offer -it upon the altar: 5:26 And the priest shall take an handful of the -offering, even the memorial thereof, and burn it upon the altar, and -afterward shall cause the woman to drink the water. - -5:27 And when he hath made her to drink the water, then it shall come -to pass, that, if she be defiled, and have done trespass against her -husband, that the water that causeth the curse shall enter into her, -and become bitter, and her belly shall swell, and her thigh shall rot: -and the woman shall be a curse among her people. - -5:28 And if the woman be not defiled, but be clean; then she shall be -free, and shall conceive seed. - -5:29 This is the law of jealousies, when a wife goeth aside to another -instead of her husband, and is defiled; 5:30 Or when the spirit of -jealousy cometh upon him, and he be jealous over his wife, and shall -set the woman before the LORD, and the priest shall execute upon her -all this law. - -5:31 Then shall the man be guiltless from iniquity, and this woman -shall bear her iniquity. - -6:1 And the LORD spake unto Moses, saying, 6:2 Speak unto the children -of Israel, and say unto them, When either man or woman shall separate -themselves to vow a vow of a Nazarite, to separate themselves unto the -LORD: 6:3 He shall separate himself from wine and strong drink, and -shall drink no vinegar of wine, or vinegar of strong drink, neither -shall he drink any liquor of grapes, nor eat moist grapes, or dried. - -6:4 All the days of his separation shall he eat nothing that is made -of the vine tree, from the kernels even to the husk. - -6:5 All the days of the vow of his separation there shall no razor -come upon his head: until the days be fulfilled, in the which he -separateth himself unto the LORD, he shall be holy, and shall let the -locks of the hair of his head grow. - -6:6 All the days that he separateth himself unto the LORD he shall -come at no dead body. - -6:7 He shall not make himself unclean for his father, or for his -mother, for his brother, or for his sister, when they die: because the -consecration of his God is upon his head. - -6:8 All the days of his separation he is holy unto the LORD. - -6:9 And if any man die very suddenly by him, and he hath defiled the -head of his consecration; then he shall shave his head in the day of -his cleansing, on the seventh day shall he shave it. - -6:10 And on the eighth day he shall bring two turtles, or two young -pigeons, to the priest, to the door of the tabernacle of the -congregation: 6:11 And the priest shall offer the one for a sin -offering, and the other for a burnt offering, and make an atonement -for him, for that he sinned by the dead, and shall hallow his head -that same day. - -6:12 And he shall consecrate unto the LORD the days of his separation, -and shall bring a lamb of the first year for a trespass offering: but -the days that were before shall be lost, because his separation was -defiled. - -6:13 And this is the law of the Nazarite, when the days of his -separation are fulfilled: he shall be brought unto the door of the -tabernacle of the congregation: 6:14 And he shall offer his offering -unto the LORD, one he lamb of the first year without blemish for a -burnt offering, and one ewe lamb of the first year without blemish for -a sin offering, and one ram without blemish for peace offerings, 6:15 -And a basket of unleavened bread, cakes of fine flour mingled with -oil, and wafers of unleavened bread anointed with oil, and their meat -offering, and their drink offerings. - -6:16 And the priest shall bring them before the LORD, and shall offer -his sin offering, and his burnt offering: 6:17 And he shall offer the -ram for a sacrifice of peace offerings unto the LORD, with the basket -of unleavened bread: the priest shall offer also his meat offering, -and his drink offering. - -6:18 And the Nazarite shall shave the head of his separation at the -door of the tabernacle of the congregation, and shall take the hair of -the head of his separation, and put it in the fire which is under the -sacrifice of the peace offerings. - -6:19 And the priest shall take the sodden shoulder of the ram, and one -unleavened cake out of the basket, and one unleavened wafer, and shall -put them upon the hands of the Nazarite, after the hair of his -separation is shaven: 6:20 And the priest shall wave them for a wave -offering before the LORD: this is holy for the priest, with the wave -breast and heave shoulder: and after that the Nazarite may drink wine. - -6:21 This is the law of the Nazarite who hath vowed, and of his -offering unto the LORD for his separation, beside that that his hand -shall get: according to the vow which he vowed, so he must do after -the law of his separation. - -6:22 And the LORD spake unto Moses, saying, 6:23 Speak unto Aaron and -unto his sons, saying, On this wise ye shall bless the children of -Israel, saying unto them, 6:24 The LORD bless thee, and keep thee: -6:25 The LORD make his face shine upon thee, and be gracious unto -thee: 6:26 The LORD lift up his countenance upon thee, and give thee -peace. - -6:27 And they shall put my name upon the children of Israel, and I -will bless them. - -7:1 And it came to pass on the day that Moses had fully set up the -tabernacle, and had anointed it, and sanctified it, and all the -instruments thereof, both the altar and all the vessels thereof, and -had anointed them, and sanctified them; 7:2 That the princes of -Israel, heads of the house of their fathers, who were the princes of -the tribes, and were over them that were numbered, offered: 7:3 And -they brought their offering before the LORD, six covered wagons, and -twelve oxen; a wagon for two of the princes, and for each one an ox: -and they brought them before the tabernacle. - -7:4 And the LORD spake unto Moses, saying, 7:5 Take it of them, that -they may be to do the service of the tabernacle of the congregation; -and thou shalt give them unto the Levites, to every man according to -his service. - -7:6 And Moses took the wagons and the oxen, and gave them unto the -Levites. - -7:7 Two wagons and four oxen he gave unto the sons of Gershon, -according to their service: 7:8 And four wagons and eight oxen he gave -unto the sons of Merari, according unto their service, under the hand -of Ithamar the son of Aaron the priest. - -7:9 But unto the sons of Kohath he gave none: because the service of -the sanctuary belonging unto them was that they should bear upon their -shoulders. - -7:10 And the princes offered for dedicating of the altar in the day -that it was anointed, even the princes offered their offering before -the altar. - -7:11 And the LORD said unto Moses, They shall offer their offering, -each prince on his day, for the dedicating of the altar. - -7:12 And he that offered his offering the first day was Nahshon the -son of Amminadab, of the tribe of Judah: 7:13 And his offering was one -silver charger, the weight thereof was an hundred and thirty shekels, -one silver bowl of seventy shekels, after the shekel of the sanctuary; -both of them were full of fine flour mingled with oil for a meat -offering: 7:14 One spoon of ten shekels of gold, full of incense: 7:15 -One young bullock, one ram, one lamb of the first year, for a burnt -offering: 7:16 One kid of the goats for a sin offering: 7:17 And for a -sacrifice of peace offerings, two oxen, five rams, five he goats, five -lambs of the first year: this was the offering of Nahshon the son of -Amminadab. - -7:18 On the second day Nethaneel the son of Zuar, prince of Issachar, -did offer: 7:19 He offered for his offering one silver charger, the -weight whereof was an hundred and thirty shekels, one silver bowl of -seventy shekels, after the shekel of the sanctuary; both of them full -of fine flour mingled with oil for a meat offering: 7:20 One spoon of -gold of ten shekels, full of incense: 7:21 One young bullock, one ram, -one lamb of the first year, for a burnt offering: 7:22 One kid of the -goats for a sin offering: 7:23 And for a sacrifice of peace offerings, -two oxen, five rams, five he goats, five lambs of the first year: this -was the offering of Nethaneel the son of Zuar. - -7:24 On the third day Eliab the son of Helon, prince of the children -of Zebulun, did offer: 7:25 His offering was one silver charger, the -weight whereof was an hundred and thirty shekels, one silver bowl of -seventy shekels, after the shekel of the sanctuary; both of them full -of fine flour mingled with oil for a meat offering: 7:26 One golden -spoon of ten shekels, full of incense: 7:27 One young bullock, one -ram, one lamb of the first year, for a burnt offering: 7:28 One kid of -the goats for a sin offering: 7:29 And for a sacrifice of peace -offerings, two oxen, five rams, five he goats, five lambs of the first -year: this was the offering of Eliab the son of Helon. - -7:30 On the fourth day Elizur the son of Shedeur, prince of the -children of Reuben, did offer: 7:31 His offering was one silver -charger of the weight of an hundred and thirty shekels, one silver -bowl of seventy shekels, after the shekel of the sanctuary; both of -them full of fine flour mingled with oil for a meat offering: 7:32 One -golden spoon of ten shekels, full of incense: 7:33 One young bullock, -one ram, one lamb of the first year, for a burnt offering: 7:34 One -kid of the goats for a sin offering: 7:35 And for a sacrifice of peace -offerings, two oxen, five rams, five he goats, five lambs of the first -year: this was the offering of Elizur the son of Shedeur. - -7:36 On the fifth day Shelumiel the son of Zurishaddai, prince of the -children of Simeon, did offer: 7:37 His offering was one silver -charger, the weight whereof was an hundred and thirty shekels, one -silver bowl of seventy shekels, after the shekel of the sanctuary; -both of them full of fine flour mingled with oil for a meat offering: -7:38 One golden spoon of ten shekels, full of incense: 7:39 One young -bullock, one ram, one lamb of the first year, for a burnt offering: -7:40 One kid of the goats for a sin offering: 7:41 And for a sacrifice -of peace offerings, two oxen, five rams, five he goats, five lambs of -the first year: this was the offering of Shelumiel the son of -Zurishaddai. - -7:42 On the sixth day Eliasaph the son of Deuel, prince of the -children of Gad, offered: 7:43 His offering was one silver charger of -the weight of an hundred and thirty shekels, a silver bowl of seventy -shekels, after the shekel of the sanctuary; both of them full of fine -flour mingled with oil for a meat offering: 7:44 One golden spoon of -ten shekels, full of incense: 7:45 One young bullock, one ram, one -lamb of the first year, for a burnt offering: 7:46 One kid of the -goats for a sin offering: 7:47 And for a sacrifice of peace offerings, -two oxen, five rams, five he goats, five lambs of the first year: this -was the offering of Eliasaph the son of Deuel. - -7:48 On the seventh day Elishama the son of Ammihud, prince of the -children of Ephraim, offered: 7:49 His offering was one silver -charger, the weight whereof was an hundred and thirty shekels, one -silver bowl of seventy shekels, after the shekel of the sanctuary; -both of them full of fine flour mingled with oil for a meat offering: -7:50 One golden spoon of ten shekels, full of incense: 7:51 One young -bullock, one ram, one lamb of the first year, for a burnt offering: -7:52 One kid of the goats for a sin offering: 7:53 And for a sacrifice -of peace offerings, two oxen, five rams, five he goats, five lambs of -the first year: this was the offering of Elishama the son of Ammihud. - -7:54 On the eighth day offered Gamaliel the son of Pedahzur, prince of -the children of Manasseh: 7:55 His offering was one silver charger of -the weight of an hundred and thirty shekels, one silver bowl of -seventy shekels, after the shekel of the sanctuary; both of them full -of fine flour mingled with oil for a meat offering: 7:56 One golden -spoon of ten shekels, full of incense: 7:57 One young bullock, one -ram, one lamb of the first year, for a burnt offering: 7:58 One kid of -the goats for a sin offering: 7:59 And for a sacrifice of peace -offerings, two oxen, five rams, five he goats, five lambs of the first -year: this was the offering of Gamaliel the son of Pedahzur. - -7:60 On the ninth day Abidan the son of Gideoni, prince of the -children of Benjamin, offered: 7:61 His offering was one silver -charger, the weight whereof was an hundred and thirty shekels, one -silver bowl of seventy shekels, after the shekel of the sanctuary; -both of them full of fine flour mingled with oil for a meat offering: -7:62 One golden spoon of ten shekels, full of incense: 7:63 One young -bullock, one ram, one lamb of the first year, for a burnt offering: -7:64 One kid of the goats for a sin offering: 7:65 And for a sacrifice -of peace offerings, two oxen, five rams, five he goats, five lambs of -the first year: this was the offering of Abidan the son of Gideoni. - -7:66 On the tenth day Ahiezer the son of Ammishaddai, prince of the -children of Dan, offered: 7:67 His offering was one silver charger, -the weight whereof was an hundred and thirty shekels, one silver bowl -of seventy shekels, after the shekel of the sanctuary; both of them -full of fine flour mingled with oil for a meat offering: 7:68 One -golden spoon of ten shekels, full of incense: 7:69 One young bullock, -one ram, one lamb of the first year, for a burnt offering: 7:70 One -kid of the goats for a sin offering: 7:71 And for a sacrifice of peace -offerings, two oxen, five rams, five he goats, five lambs of the first -year: this was the offering of Ahiezer the son of Ammishaddai. - -7:72 On the eleventh day Pagiel the son of Ocran, prince of the -children of Asher, offered: 7:73 His offering was one silver charger, -the weight whereof was an hundred and thirty shekels, one silver bowl -of seventy shekels, after the shekel of the sanctuary; both of them -full of fine flour mingled with oil for a meat offering: 7:74 One -golden spoon of ten shekels, full of incense: 7:75 One young bullock, -one ram, one lamb of the first year, for a burnt offering: 7:76 One -kid of the goats for a sin offering: 7:77 And for a sacrifice of peace -offerings, two oxen, five rams, five he goats, five lambs of the first -year: this was the offering of Pagiel the son of Ocran. - -7:78 On the twelfth day Ahira the son of Enan, prince of the children -of Naphtali, offered: 7:79 His offering was one silver charger, the -weight whereof was an hundred and thirty shekels, one silver bowl of -seventy shekels, after the shekel of the sanctuary; both of them full -of fine flour mingled with oil for a meat offering: 7:80 One golden -spoon of ten shekels, full of incense: 7:81 One young bullock, one -ram, one lamb of the first year, for a burnt offering: 7:82 One kid of -the goats for a sin offering: 7:83 And for a sacrifice of peace -offerings, two oxen, five rams, five he goats, five lambs of the first -year: this was the offering of Ahira the son of Enan. - -7:84 This was the dedication of the altar, in the day when it was -anointed, by the princes of Israel: twelve chargers of silver, twelve -silver bowls, twelve spoons of gold: 7:85 Each charger of silver -weighing an hundred and thirty shekels, each bowl seventy: all the -silver vessels weighed two thousand and four hundred shekels, after -the shekel of the sanctuary: 7:86 The golden spoons were twelve, full -of incense, weighing ten shekels apiece, after the shekel of the -sanctuary: all the gold of the spoons was an hundred and twenty -shekels. - -7:87 All the oxen for the burnt offering were twelve bullocks, the -rams twelve, the lambs of the first year twelve, with their meat -offering: and the kids of the goats for sin offering twelve. - -7:88 And all the oxen for the sacrifice of the peace offerings were -twenty and four bullocks, the rams sixty, the he goats sixty, the -lambs of the first year sixty. This was the dedication of the altar, -after that it was anointed. - -7:89 And when Moses was gone into the tabernacle of the congregation -to speak with him, then he heard the voice of one speaking unto him -from off the mercy seat that was upon the ark of testimony, from -between the two cherubims: and he spake unto him. - -8:1 And the LORD spake unto Moses, saying, 8:2 Speak unto Aaron and -say unto him, When thou lightest the lamps, the seven lamps shall give -light over against the candlestick. - -8:3 And Aaron did so; he lighted the lamps thereof over against the -candlestick, as the LORD commanded Moses. - -8:4 And this work of the candlestick was of beaten gold, unto the -shaft thereof, unto the flowers thereof, was beaten work: according -unto the pattern which the LORD had shewed Moses, so he made the -candlestick. - -8:5 And the LORD spake unto Moses, saying, 8:6 Take the Levites from -among the children of Israel, and cleanse them. - -8:7 And thus shalt thou do unto them, to cleanse them: Sprinkle water -of purifying upon them, and let them shave all their flesh, and let -them wash their clothes, and so make themselves clean. - -8:8 Then let them take a young bullock with his meat offering, even -fine flour mingled with oil, and another young bullock shalt thou take -for a sin offering. - -8:9 And thou shalt bring the Levites before the tabernacle of the -congregation: and thou shalt gather the whole assembly of the children -of Israel together: 8:10 And thou shalt bring the Levites before the -LORD: and the children of Israel shall put their hands upon the -Levites: 8:11 And Aaron shall offer the Levites before the LORD for an -offering of the children of Israel, that they may execute the service -of the LORD. - -8:12 And the Levites shall lay their hands upon the heads of the -bullocks: and thou shalt offer the one for a sin offering, and the -other for a burnt offering, unto the LORD, to make an atonement for -the Levites. - -8:13 And thou shalt set the Levites before Aaron, and before his sons, -and offer them for an offering unto the LORD. - -8:14 Thus shalt thou separate the Levites from among the children of -Israel: and the Levites shall be mine. - -8:15 And after that shall the Levites go in to do the service of the -tabernacle of the congregation: and thou shalt cleanse them, and offer -them for an offering. - -8:16 For they are wholly given unto me from among the children of -Israel; instead of such as open every womb, even instead of the -firstborn of all the children of Israel, have I taken them unto me. - -8:17 For all the firstborn of the children of Israel are mine, both -man and beast: on the day that I smote every firstborn in the land of -Egypt I sanctified them for myself. - -8:18 And I have taken the Levites for all the firstborn of the -children of Israel. - -8:19 And I have given the Levites as a gift to Aaron and to his sons -from among the children of Israel, to do the service of the children -of Israel in the tabernacle of the congregation, and to make an -atonement for the children of Israel: that there be no plague among -the children of Israel, when the children of Israel come nigh unto the -sanctuary. - -8:20 And Moses, and Aaron, and all the congregation of the children of -Israel, did to the Levites according unto all that the LORD commanded -Moses concerning the Levites, so did the children of Israel unto them. - -8:21 And the Levites were purified, and they washed their clothes; and -Aaron offered them as an offering before the LORD; and Aaron made an -atonement for them to cleanse them. - -8:22 And after that went the Levites in to do their service in the -tabernacle of the congregation before Aaron, and before his sons: as -the LORD had commanded Moses concerning the Levites, so did they unto -them. - -8:23 And the LORD spake unto Moses, saying, 8:24 This is it that -belongeth unto the Levites: from twenty and five years old and upward -they shall go in to wait upon the service of the tabernacle of the -congregation: 8:25 And from the age of fifty years they shall cease -waiting upon the service thereof, and shall serve no more: 8:26 But -shall minister with their brethren in the tabernacle of the -congregation, to keep the charge, and shall do no service. Thus shalt -thou do unto the Levites touching their charge. - -9:1 And the LORD spake unto Moses in the wilderness of Sinai, in the -first month of the second year after they were come out of the land of -Egypt, saying, 9:2 Let the children of Israel also keep the passover -at his appointed season. - -9:3 In the fourteenth day of this month, at even, ye shall keep it in -his appointed season: according to all the rites of it, and according -to all the ceremonies thereof, shall ye keep it. - -9:4 And Moses spake unto the children of Israel, that they should keep -the passover. - -9:5 And they kept the passover on the fourteenth day of the first -month at even in the wilderness of Sinai: according to all that the -LORD commanded Moses, so did the children of Israel. - -9:6 And there were certain men, who were defiled by the dead body of a -man, that they could not keep the passover on that day: and they came -before Moses and before Aaron on that day: 9:7 And those men said unto -him, We are defiled by the dead body of a man: wherefore are we kept -back, that we may not offer an offering of the LORD in his appointed -season among the children of Israel? 9:8 And Moses said unto them, -Stand still, and I will hear what the LORD will command concerning -you. - -9:9 And the LORD spake unto Moses, saying, 9:10 Speak unto the -children of Israel, saying, If any man of you or of your posterity -shall be unclean by reason of a dead body, or be in a journey afar -off, yet he shall keep the passover unto the LORD. - -9:11 The fourteenth day of the second month at even they shall keep -it, and eat it with unleavened bread and bitter herbs. - -9:12 They shall leave none of it unto the morning, nor break any bone -of it: according to all the ordinances of the passover they shall keep -it. - -9:13 But the man that is clean, and is not in a journey, and -forbeareth to keep the passover, even the same soul shall be cut off -from among his people: because he brought not the offering of the LORD -in his appointed season, that man shall bear his sin. - -9:14 And if a stranger shall sojourn among you, and will keep the -passover unto the LORD; according to the ordinance of the passover, -and according to the manner thereof, so shall he do: ye shall have one -ordinance, both for the stranger, and for him that was born in the -land. - -9:15 And on the day that the tabernacle was reared up the cloud -covered the tabernacle, namely, the tent of the testimony: and at even -there was upon the tabernacle as it were the appearance of fire, until -the morning. - -9:16 So it was alway: the cloud covered it by day, and the appearance -of fire by night. - -9:17 And when the cloud was taken up from the tabernacle, then after -that the children of Israel journeyed: and in the place where the -cloud abode, there the children of Israel pitched their tents. - -9:18 At the commandment of the LORD the children of Israel journeyed, -and at the commandment of the LORD they pitched: as long as the cloud -abode upon the tabernacle they rested in their tents. - -9:19 And when the cloud tarried long upon the tabernacle many days, -then the children of Israel kept the charge of the LORD, and journeyed -not. - -9:20 And so it was, when the cloud was a few days upon the tabernacle; -according to the commandment of the LORD they abode in their tents, -and according to the commandment of the LORD they journeyed. - -9:21 And so it was, when the cloud abode from even unto the morning, -and that the cloud was taken up in the morning, then they journeyed: -whether it was by day or by night that the cloud was taken up, they -journeyed. - -9:22 Or whether it were two days, or a month, or a year, that the -cloud tarried upon the tabernacle, remaining thereon, the children of -Israel abode in their tents, and journeyed not: but when it was taken -up, they journeyed. - -9:23 At the commandment of the LORD they rested in the tents, and at -the commandment of the LORD they journeyed: they kept the charge of -the LORD, at the commandment of the LORD by the hand of Moses. - -10:1 And the LORD spake unto Moses, saying, 10:2 Make thee two -trumpets of silver; of a whole piece shalt thou make them: that thou -mayest use them for the calling of the assembly, and for the -journeying of the camps. - -10:3 And when they shall blow with them, all the assembly shall -assemble themselves to thee at the door of the tabernacle of the -congregation. - -10:4 And if they blow but with one trumpet, then the princes, which -are heads of the thousands of Israel, shall gather themselves unto -thee. - -10:5 When ye blow an alarm, then the camps that lie on the east parts -shall go forward. - -10:6 When ye blow an alarm the second time, then the camps that lie on -the south side shall take their journey: they shall blow an alarm for -their journeys. - -10:7 But when the congregation is to be gathered together, ye shall -blow, but ye shall not sound an alarm. - -10:8 And the sons of Aaron, the priests, shall blow with the trumpets; -and they shall be to you for an ordinance for ever throughout your -generations. - -10:9 And if ye go to war in your land against the enemy that -oppresseth you, then ye shall blow an alarm with the trumpets; and ye -shall be remembered before the LORD your God, and ye shall be saved -from your enemies. - -10:10 Also in the day of your gladness, and in your solemn days, and -in the beginnings of your months, ye shall blow with the trumpets over -your burnt offerings, and over the sacrifices of your peace offerings; -that they may be to you for a memorial before your God: I am the LORD -your God. - -10:11 And it came to pass on the twentieth day of the second month, in -the second year, that the cloud was taken up from off the tabernacle -of the testimony. - -10:12 And the children of Israel took their journeys out of the -wilderness of Sinai; and the cloud rested in the wilderness of Paran. - -10:13 And they first took their journey according to the commandment -of the LORD by the hand of Moses. - -10:14 In the first place went the standard of the camp of the children -of Judah according to their armies: and over his host was Nahshon the -son of Amminadab. - -10:15 And over the host of the tribe of the children of Issachar was -Nethaneel the son of Zuar. - -10:16 And over the host of the tribe of the children of Zebulun was -Eliab the son of Helon. - -10:17 And the tabernacle was taken down; and the sons of Gershon and -the sons of Merari set forward, bearing the tabernacle. - -10:18 And the standard of the camp of Reuben set forward according to -their armies: and over his host was Elizur the son of Shedeur. - -10:19 And over the host of the tribe of the children of Simeon was -Shelumiel the son of Zurishaddai. - -10:20 And over the host of the tribe of the children of Gad was -Eliasaph the son of Deuel. - -10:21 And the Kohathites set forward, bearing the sanctuary: and the -other did set up the tabernacle against they came. - -10:22 And the standard of the camp of the children of Ephraim set -forward according to their armies: and over his host was Elishama the -son of Ammihud. - -10:23 And over the host of the tribe of the children of Manasseh was -Gamaliel the son of Pedahzur. - -10:24 And over the host of the tribe of the children of Benjamin was -Abidan the son of Gideoni. - -10:25 And the standard of the camp of the children of Dan set forward, -which was the rereward of all the camps throughout their hosts: and -over his host was Ahiezer the son of Ammishaddai. - -10:26 And over the host of the tribe of the children of Asher was -Pagiel the son of Ocran. - -10:27 And over the host of the tribe of the children of Naphtali was -Ahira the son of Enan. - -10:28 Thus were the journeyings of the children of Israel according to -their armies, when they set forward. - -10:29 And Moses said unto Hobab, the son of Raguel the Midianite, -Moses' father in law, We are journeying unto the place of which the -LORD said, I will give it you: come thou with us, and we will do thee -good: for the LORD hath spoken good concerning Israel. - -10:30 And he said unto him, I will not go; but I will depart to mine -own land, and to my kindred. - -10:31 And he said, Leave us not, I pray thee; forasmuch as thou -knowest how we are to encamp in the wilderness, and thou mayest be to -us instead of eyes. - -10:32 And it shall be, if thou go with us, yea, it shall be, that what -goodness the LORD shall do unto us, the same will we do unto thee. - -10:33 And they departed from the mount of the LORD three days' -journey: and the ark of the covenant of the LORD went before them in -the three days' journey, to search out a resting place for them. - -10:34 And the cloud of the LORD was upon them by day, when they went -out of the camp. - -10:35 And it came to pass, when the ark set forward, that Moses said, -Rise up, LORD, and let thine enemies be scattered; and let them that -hate thee flee before thee. - -10:36 And when it rested, he said, Return, O LORD, unto the many -thousands of Israel. - -11:1 And when the people complained, it displeased the LORD: and the -LORD heard it; and his anger was kindled; and the fire of the LORD -burnt among them, and consumed them that were in the uttermost parts -of the camp. - -11:2 And the people cried unto Moses; and when Moses prayed unto the -LORD, the fire was quenched. - -11:3 And he called the name of the place Taberah: because the fire of -the LORD burnt among them. - -11:4 And the mixt multitude that was among them fell a lusting: and -the children of Israel also wept again, and said, Who shall give us -flesh to eat? 11:5 We remember the fish, which we did eat in Egypt -freely; the cucumbers, and the melons, and the leeks, and the onions, -and the garlick: 11:6 But now our soul is dried away: there is nothing -at all, beside this manna, before our eyes. - -11:7 And the manna was as coriander seed, and the colour thereof as -the colour of bdellium. - -11:8 And the people went about, and gathered it, and ground it in -mills, or beat it in a mortar, and baked it in pans, and made cakes of -it: and the taste of it was as the taste of fresh oil. - -11:9 And when the dew fell upon the camp in the night, the manna fell -upon it. - -11:10 Then Moses heard the people weep throughout their families, -every man in the door of his tent: and the anger of the LORD was -kindled greatly; Moses also was displeased. - -11:11 And Moses said unto the LORD, Wherefore hast thou afflicted thy -servant? and wherefore have I not found favour in thy sight, that thou -layest the burden of all this people upon me? 11:12 Have I conceived -all this people? have I begotten them, that thou shouldest say unto -me, Carry them in thy bosom, as a nursing father beareth the sucking -child, unto the land which thou swarest unto their fathers? 11:13 -Whence should I have flesh to give unto all this people? for they weep -unto me, saying, Give us flesh, that we may eat. - -11:14 I am not able to bear all this people alone, because it is too -heavy for me. - -11:15 And if thou deal thus with me, kill me, I pray thee, out of -hand, if I have found favour in thy sight; and let me not see my -wretchedness. - -11:16 And the LORD said unto Moses, Gather unto me seventy men of the -elders of Israel, whom thou knowest to be the elders of the people, -and officers over them; and bring them unto the tabernacle of the -congregation, that they may stand there with thee. - -11:17 And I will come down and talk with thee there: and I will take -of the spirit which is upon thee, and will put it upon them; and they -shall bear the burden of the people with thee, that thou bear it not -thyself alone. - -11:18 And say thou unto the people, Sanctify yourselves against to -morrow, and ye shall eat flesh: for ye have wept in the ears of the -LORD, saying, Who shall give us flesh to eat? for it was well with us -in Egypt: therefore the LORD will give you flesh, and ye shall eat. - -11:19 Ye shall not eat one day, nor two days, nor five days, neither -ten days, nor twenty days; 11:20 But even a whole month, until it come -out at your nostrils, and it be loathsome unto you: because that ye -have despised the LORD which is among you, and have wept before him, -saying, Why came we forth out of Egypt? 11:21 And Moses said, The -people, among whom I am, are six hundred thousand footmen; and thou -hast said, I will give them flesh, that they may eat a whole month. - -11:22 Shall the flocks and the herds be slain for them, to suffice -them? or shall all the fish of the sea be gathered together for them, -to suffice them? 11:23 And the LORD said unto Moses, Is the LORD's -hand waxed short? thou shalt see now whether my word shall come to -pass unto thee or not. - -11:24 And Moses went out, and told the people the words of the LORD, -and gathered the seventy men of the elders of the people, and set them -round about the tabernacle. - -11:25 And the LORD came down in a cloud, and spake unto him, and took -of the spirit that was upon him, and gave it unto the seventy elders: -and it came to pass, that, when the spirit rested upon them, they -prophesied, and did not cease. - -11:26 But there remained two of the men in the camp, the name of the -one was Eldad, and the name of the other Medad: and the spirit rested -upon them; and they were of them that were written, but went not out -unto the tabernacle: and they prophesied in the camp. - -11:27 And there ran a young man, and told Moses, and said, Eldad and -Medad do prophesy in the camp. - -11:28 And Joshua the son of Nun, the servant of Moses, one of his -young men, answered and said, My lord Moses, forbid them. - -11:29 And Moses said unto him, Enviest thou for my sake? would God -that all the LORD's people were prophets, and that the LORD would put -his spirit upon them! 11:30 And Moses gat him into the camp, he and -the elders of Israel. - -11:31 And there went forth a wind from the LORD, and brought quails -from the sea, and let them fall by the camp, as it were a day's -journey on this side, and as it were a day's journey on the other -side, round about the camp, and as it were two cubits high upon the -face of the earth. - -11:32 And the people stood up all that day, and all that night, and -all the next day, and they gathered the quails: he that gathered least -gathered ten homers: and they spread them all abroad for themselves -round about the camp. - -11:33 And while the flesh was yet between their teeth, ere it was -chewed, the wrath of the LORD was kindled against the people, and the -LORD smote the people with a very great plague. - -11:34 And he called the name of that place Kibrothhattaavah: because -there they buried the people that lusted. - -11:35 And the people journeyed from Kibrothhattaavah unto Hazeroth; -and abode at Hazeroth. - -12:1 And Miriam and Aaron spake against Moses because of the Ethiopian -woman whom he had married: for he had married an Ethiopian woman. - -12:2 And they said, Hath the LORD indeed spoken only by Moses? hath he -not spoken also by us? And the LORD heard it. - -12:3 (Now the man Moses was very meek, above all the men which were -upon the face of the earth.) 12:4 And the LORD spake suddenly unto -Moses, and unto Aaron, and unto Miriam, Come out ye three unto the -tabernacle of the congregation. And they three came out. - -12:5 And the LORD came down in the pillar of the cloud, and stood in -the door of the tabernacle, and called Aaron and Miriam: and they both -came forth. - -12:6 And he said, Hear now my words: If there be a prophet among you, -I the LORD will make myself known unto him in a vision, and will speak -unto him in a dream. - -12:7 My servant Moses is not so, who is faithful in all mine house. - -12:8 With him will I speak mouth to mouth, even apparently, and not in -dark speeches; and the similitude of the LORD shall he behold: -wherefore then were ye not afraid to speak against my servant Moses? -12:9 And the anger of the LORD was kindled against them; and he -departed. - -12:10 And the cloud departed from off the tabernacle; and, behold, -Miriam became leprous, white as snow: and Aaron looked upon Miriam, -and, behold, she was leprous. - -12:11 And Aaron said unto Moses, Alas, my lord, I beseech thee, lay -not the sin upon us, wherein we have done foolishly, and wherein we -have sinned. - -12:12 Let her not be as one dead, of whom the flesh is half consumed -when he cometh out of his mother's womb. - -12:13 And Moses cried unto the LORD, saying, Heal her now, O God, I -beseech thee. - -12:14 And the LORD said unto Moses, If her father had but spit in her -face, should she not be ashamed seven days? let her be shut out from -the camp seven days, and after that let her be received in again. - -12:15 And Miriam was shut out from the camp seven days: and the people -journeyed not till Miriam was brought in again. - -12:16 And afterward the people removed from Hazeroth, and pitched in -the wilderness of Paran. - -13:1 And the LORD spake unto Moses, saying, 13:2 Send thou men, that -they may search the land of Canaan, which I give unto the children of -Israel: of every tribe of their fathers shall ye send a man, every one -a ruler among them. - -13:3 And Moses by the commandment of the LORD sent them from the -wilderness of Paran: all those men were heads of the children of -Israel. - -13:4 And these were their names: of the tribe of Reuben, Shammua the -son of Zaccur. - -13:5 Of the tribe of Simeon, Shaphat the son of Hori. - -13:6 Of the tribe of Judah, Caleb the son of Jephunneh. - -13:7 Of the tribe of Issachar, Igal the son of Joseph. - -13:8 Of the tribe of Ephraim, Oshea the son of Nun. - -13:9 Of the tribe of Benjamin, Palti the son of Raphu. - -13:10 Of the tribe of Zebulun, Gaddiel the son of Sodi. - -13:11 Of the tribe of Joseph, namely, of the tribe of Manasseh, Gaddi -the son of Susi. - -13:12 Of the tribe of Dan, Ammiel the son of Gemalli. - -13:13 Of the tribe of Asher, Sethur the son of Michael. - -13:14 Of the tribe of Naphtali, Nahbi the son of Vophsi. - -13:15 Of the tribe of Gad, Geuel the son of Machi. - -13:16 These are the names of the men which Moses sent to spy out the -land. - -And Moses called Oshea the son of Nun Jehoshua. - -13:17 And Moses sent them to spy out the land of Canaan, and said unto -them, Get you up this way southward, and go up into the mountain: -13:18 And see the land, what it is, and the people that dwelleth -therein, whether they be strong or weak, few or many; 13:19 And what -the land is that they dwell in, whether it be good or bad; and what -cities they be that they dwell in, whether in tents, or in strong -holds; 13:20 And what the land is, whether it be fat or lean, whether -there be wood therein, or not. And be ye of good courage, and bring of -the fruit of the land. Now the time was the time of the firstripe -grapes. - -13:21 So they went up, and searched the land from the wilderness of -Zin unto Rehob, as men come to Hamath. - -13:22 And they ascended by the south, and came unto Hebron; where -Ahiman, Sheshai, and Talmai, the children of Anak, were. (Now Hebron -was built seven years before Zoan in Egypt.) 13:23 And they came unto -the brook of Eshcol, and cut down from thence a branch with one -cluster of grapes, and they bare it between two upon a staff; and they -brought of the pomegranates, and of the figs. - -13:24 The place was called the brook Eshcol, because of the cluster of -grapes which the children of Israel cut down from thence. - -13:25 And they returned from searching of the land after forty days. - -13:26 And they went and came to Moses, and to Aaron, and to all the -congregation of the children of Israel, unto the wilderness of Paran, -to Kadesh; and brought back word unto them, and unto all the -congregation, and shewed them the fruit of the land. - -13:27 And they told him, and said, We came unto the land whither thou -sentest us, and surely it floweth with milk and honey; and this is the -fruit of it. - -13:28 Nevertheless the people be strong that dwell in the land, and -the cities are walled, and very great: and moreover we saw the -children of Anak there. - -13:29 The Amalekites dwell in the land of the south: and the Hittites, -and the Jebusites, and the Amorites, dwell in the mountains: and the -Canaanites dwell by the sea, and by the coast of Jordan. - -13:30 And Caleb stilled the people before Moses, and said, Let us go -up at once, and possess it; for we are well able to overcome it. - -13:31 But the men that went up with him said, We be not able to go up -against the people; for they are stronger than we. - -13:32 And they brought up an evil report of the land which they had -searched unto the children of Israel, saying, The land, through which -we have gone to search it, is a land that eateth up the inhabitants -thereof; and all the people that we saw in it are men of a great -stature. - -13:33 And there we saw the giants, the sons of Anak, which come of the -giants: and we were in our own sight as grasshoppers, and so we were -in their sight. - -14:1 And all the congregation lifted up their voice, and cried; and -the people wept that night. - -14:2 And all the children of Israel murmured against Moses and against -Aaron: and the whole congregation said unto them, Would God that we -had died in the land of Egypt! or would God we had died in this -wilderness! 14:3 And wherefore hath the LORD brought us unto this -land, to fall by the sword, that our wives and our children should be -a prey? were it not better for us to return into Egypt? 14:4 And they -said one to another, Let us make a captain, and let us return into -Egypt. - -14:5 Then Moses and Aaron fell on their faces before all the assembly -of the congregation of the children of Israel. - -14:6 And Joshua the son of Nun, and Caleb the son of Jephunneh, which -were of them that searched the land, rent their clothes: 14:7 And they -spake unto all the company of the children of Israel, saying, The -land, which we passed through to search it, is an exceeding good land. - -14:8 If the LORD delight in us, then he will bring us into this land, -and give it us; a land which floweth with milk and honey. - -14:9 Only rebel not ye against the LORD, neither fear ye the people of -the land; for they are bread for us: their defence is departed from -them, and the LORD is with us: fear them not. - -14:10 But all the congregation bade stone them with stones. And the -glory of the LORD appeared in the tabernacle of the congregation -before all the children of Israel. - -14:11 And the LORD said unto Moses, How long will this people provoke -me? and how long will it be ere they believe me, for all the signs -which I have shewed among them? 14:12 I will smite them with the -pestilence, and disinherit them, and will make of thee a greater -nation and mightier than they. - -14:13 And Moses said unto the LORD, Then the Egyptians shall hear it, -(for thou broughtest up this people in thy might from among them;) -14:14 And they will tell it to the inhabitants of this land: for they -have heard that thou LORD art among this people, that thou LORD art -seen face to face, and that thy cloud standeth over them, and that -thou goest before them, by day time in a pillar of a cloud, and in a -pillar of fire by night. - -14:15 Now if thou shalt kill all this people as one man, then the -nations which have heard the fame of thee will speak, saying, 14:16 -Because the LORD was not able to bring this people into the land which -he sware unto them, therefore he hath slain them in the wilderness. - -14:17 And now, I beseech thee, let the power of my LORD be great, -according as thou hast spoken, saying, 14:18 The LORD is -longsuffering, and of great mercy, forgiving iniquity and -transgression, and by no means clearing the guilty, visiting the -iniquity of the fathers upon the children unto the third and fourth -generation. - -14:19 Pardon, I beseech thee, the iniquity of this people according -unto the greatness of thy mercy, and as thou hast forgiven this -people, from Egypt even until now. - -14:20 And the LORD said, I have pardoned according to thy word: 14:21 -But as truly as I live, all the earth shall be filled with the glory -of the LORD. - -14:22 Because all those men which have seen my glory, and my miracles, -which I did in Egypt and in the wilderness, and have tempted me now -these ten times, and have not hearkened to my voice; 14:23 Surely they -shall not see the land which I sware unto their fathers, neither shall -any of them that provoked me see it: 14:24 But my servant Caleb, -because he had another spirit with him, and hath followed me fully, -him will I bring into the land whereinto he went; and his seed shall -possess it. - -14:25 (Now the Amalekites and the Canaanites dwelt in the valley.) -Tomorrow turn you, and get you into the wilderness by the way of the -Red sea. - -14:26 And the LORD spake unto Moses and unto Aaron, saying, 14:27 How -long shall I bear with this evil congregation, which murmur against -me? I have heard the murmurings of the children of Israel, which they -murmur against me. - -14:28 Say unto them, As truly as I live, saith the LORD, as ye have -spoken in mine ears, so will I do to you: 14:29 Your carcases shall -fall in this wilderness; and all that were numbered of you, according -to your whole number, from twenty years old and upward which have -murmured against me. - -14:30 Doubtless ye shall not come into the land, concerning which I -sware to make you dwell therein, save Caleb the son of Jephunneh, and -Joshua the son of Nun. - -14:31 But your little ones, which ye said should be a prey, them will -I bring in, and they shall know the land which ye have despised. - -14:32 But as for you, your carcases, they shall fall in this -wilderness. - -14:33 And your children shall wander in the wilderness forty years, -and bear your whoredoms, until your carcases be wasted in the -wilderness. - -14:34 After the number of the days in which ye searched the land, even -forty days, each day for a year, shall ye bear your iniquities, even -forty years, and ye shall know my breach of promise. - -14:35 I the LORD have said, I will surely do it unto all this evil -congregation, that are gathered together against me: in this -wilderness they shall be consumed, and there they shall die. - -14:36 And the men, which Moses sent to search the land, who returned, -and made all the congregation to murmur against him, by bringing up a -slander upon the land, 14:37 Even those men that did bring up the evil -report upon the land, died by the plague before the LORD. - -14:38 But Joshua the son of Nun, and Caleb the son of Jephunneh, which -were of the men that went to search the land, lived still. - -14:39 And Moses told these sayings unto all the children of Israel: -and the people mourned greatly. - -14:40 And they rose up early in the morning, and gat them up into the -top of the mountain, saying, Lo, we be here, and will go up unto the -place which the LORD hath promised: for we have sinned. - -14:41 And Moses said, Wherefore now do ye transgress the commandment -of the LORD? but it shall not prosper. - -14:42 Go not up, for the LORD is not among you; that ye be not smitten -before your enemies. - -14:43 For the Amalekites and the Canaanites are there before you, and -ye shall fall by the sword: because ye are turned away from the LORD, -therefore the LORD will not be with you. - -14:44 But they presumed to go up unto the hill top: nevertheless the -ark of the covenant of the LORD, and Moses, departed not out of the -camp. - -14:45 Then the Amalekites came down, and the Canaanites which dwelt in -that hill, and smote them, and discomfited them, even unto Hormah. - -15:1 And the LORD spake unto Moses, saying, 15:2 Speak unto the -children of Israel, and say unto them, When ye be come into the land -of your habitations, which I give unto you, 15:3 And will make an -offering by fire unto the LORD, a burnt offering, or a sacrifice in -performing a vow, or in a freewill offering, or in your solemn feasts, -to make a sweet savour unto the LORD, of the herd or of the flock: -15:4 Then shall he that offereth his offering unto the LORD bring a -meat offering of a tenth deal of flour mingled with the fourth part of -an hin of oil. - -15:5 And the fourth part of an hin of wine for a drink offering shalt -thou prepare with the burnt offering or sacrifice, for one lamb. - -15:6 Or for a ram, thou shalt prepare for a meat offering two tenth -deals of flour mingled with the third part of an hin of oil. - -15:7 And for a drink offering thou shalt offer the third part of an -hin of wine, for a sweet savour unto the LORD. - -15:8 And when thou preparest a bullock for a burnt offering, or for a -sacrifice in performing a vow, or peace offerings unto the LORD: 15:9 -Then shall he bring with a bullock a meat offering of three tenth -deals of flour mingled with half an hin of oil. - -15:10 And thou shalt bring for a drink offering half an hin of wine, -for an offering made by fire, of a sweet savour unto the LORD. - -15:11 Thus shall it be done for one bullock, or for one ram, or for a -lamb, or a kid. - -15:12 According to the number that ye shall prepare, so shall ye do to -every one according to their number. - -15:13 All that are born of the country shall do these things after -this manner, in offering an offering made by fire, of a sweet savour -unto the LORD. - -15:14 And if a stranger sojourn with you, or whosoever be among you in -your generations, and will offer an offering made by fire, of a sweet -savour unto the LORD; as ye do, so he shall do. - -15:15 One ordinance shall be both for you of the congregation, and -also for the stranger that sojourneth with you, an ordinance for ever -in your generations: as ye are, so shall the stranger be before the -LORD. - -15:16 One law and one manner shall be for you, and for the stranger -that sojourneth with you. - -15:17 And the LORD spake unto Moses, saying, 15:18 Speak unto the -children of Israel, and say unto them, When ye come into the land -whither I bring you, 15:19 Then it shall be, that, when ye eat of the -bread of the land, ye shall offer up an heave offering unto the LORD. - -15:20 Ye shall offer up a cake of the first of your dough for an heave -offering: as ye do the heave offering of the threshingfloor, so shall -ye heave it. - -15:21 Of the first of your dough ye shall give unto the LORD an heave -offering in your generations. - -15:22 And if ye have erred, and not observed all these commandments, -which the LORD hath spoken unto Moses, 15:23 Even all that the LORD -hath commanded you by the hand of Moses, from the day that the LORD -commanded Moses, and henceforward among your generations; 15:24 Then -it shall be, if ought be committed by ignorance without the knowledge -of the congregation, that all the congregation shall offer one young -bullock for a burnt offering, for a sweet savour unto the LORD, with -his meat offering, and his drink offering, according to the manner, -and one kid of the goats for a sin offering. - -15:25 And the priest shall make an atonement for all the congregation -of the children of Israel, and it shall be forgiven them; for it is -ignorance: and they shall bring their offering, a sacrifice made by -fire unto the LORD, and their sin offering before the LORD, for their -ignorance: 15:26 And it shall be forgiven all the congregation of the -children of Israel, and the stranger that sojourneth among them; -seeing all the people were in ignorance. - -15:27 And if any soul sin through ignorance, then he shall bring a she -goat of the first year for a sin offering. - -15:28 And the priest shall make an atonement for the soul that sinneth -ignorantly, when he sinneth by ignorance before the LORD, to make an -atonement for him; and it shall be forgiven him. - -15:29 Ye shall have one law for him that sinneth through ignorance, -both for him that is born among the children of Israel, and for the -stranger that sojourneth among them. - -15:30 But the soul that doeth ought presumptuously, whether he be born -in the land, or a stranger, the same reproacheth the LORD; and that -soul shall be cut off from among his people. - -15:31 Because he hath despised the word of the LORD, and hath broken -his commandment, that soul shall utterly be cut off; his iniquity -shall be upon him. - -15:32 And while the children of Israel were in the wilderness, they -found a man that gathered sticks upon the sabbath day. - -15:33 And they that found him gathering sticks brought him unto Moses -and Aaron, and unto all the congregation. - -15:34 And they put him in ward, because it was not declared what -should be done to him. - -15:35 And the LORD said unto Moses, The man shall be surely put to -death: all the congregation shall stone him with stones without the -camp. - -15:36 And all the congregation brought him without the camp, and -stoned him with stones, and he died; as the LORD commanded Moses. - -15:37 And the LORD spake unto Moses, saying, 15:38 Speak unto the -children of Israel, and bid them that they make them fringes in the -borders of their garments throughout their generations, and that they -put upon the fringe of the borders a ribband of blue: 15:39 And it -shall be unto you for a fringe, that ye may look upon it, and remember -all the commandments of the LORD, and do them; and that ye seek not -after your own heart and your own eyes, after which ye use to go a -whoring: 15:40 That ye may remember, and do all my commandments, and -be holy unto your God. - -15:41 I am the LORD your God, which brought you out of the land of -Egypt, to be your God: I am the LORD your God. - -16:1 Now Korah, the son of Izhar, the son of Kohath, the son of Levi, -and Dathan and Abiram, the sons of Eliab, and On, the son of Peleth, -sons of Reuben, took men: 16:2 And they rose up before Moses, with -certain of the children of Israel, two hundred and fifty princes of -the assembly, famous in the congregation, men of renown: 16:3 And they -gathered themselves together against Moses and against Aaron, and said -unto them, Ye take too much upon you, seeing all the congregation are -holy, every one of them, and the LORD is among them: wherefore then -lift ye up yourselves above the congregation of the LORD? 16:4 And -when Moses heard it, he fell upon his face: 16:5 And he spake unto -Korah and unto all his company, saying, Even to morrow the LORD will -shew who are his, and who is holy; and will cause him to come near -unto him: even him whom he hath chosen will he cause to come near unto -him. - -16:6 This do; Take you censers, Korah, and all his company; 16:7 And -put fire therein, and put incense in them before the LORD to morrow: -and it shall be that the man whom the LORD doth choose, he shall be -holy: ye take too much upon you, ye sons of Levi. - -16:8 And Moses said unto Korah, Hear, I pray you, ye sons of Levi: -16:9 Seemeth it but a small thing unto you, that the God of Israel -hath separated you from the congregation of Israel, to bring you near -to himself to do the service of the tabernacle of the LORD, and to -stand before the congregation to minister unto them? 16:10 And he -hath brought thee near to him, and all thy brethren the sons of Levi -with thee: and seek ye the priesthood also? 16:11 For which cause -both thou and all thy company are gathered together against the LORD: -and what is Aaron, that ye murmur against him? 16:12 And Moses sent -to call Dathan and Abiram, the sons of Eliab: which said, We will not -come up: 16:13 Is it a small thing that thou hast brought us up out of -a land that floweth with milk and honey, to kill us in the wilderness, -except thou make thyself altogether a prince over us? 16:14 Moreover -thou hast not brought us into a land that floweth with milk and honey, -or given us inheritance of fields and vineyards: wilt thou put out the -eyes of these men? we will not come up. - -16:15 And Moses was very wroth, and said unto the LORD, Respect not -thou their offering: I have not taken one ass from them, neither have -I hurt one of them. - -16:16 And Moses said unto Korah, Be thou and all thy company before -the LORD, thou, and they, and Aaron, to morrow: 16:17 And take every -man his censer, and put incense in them, and bring ye before the LORD -every man his censer, two hundred and fifty censers; thou also, and -Aaron, each of you his censer. - -16:18 And they took every man his censer, and put fire in them, and -laid incense thereon, and stood in the door of the tabernacle of the -congregation with Moses and Aaron. - -16:19 And Korah gathered all the congregation against them unto the -door of the tabernacle of the congregation: and the glory of the LORD -appeared unto all the congregation. - -16:20 And the LORD spake unto Moses and unto Aaron, saying, 16:21 -Separate yourselves from among this congregation, that I may consume -them in a moment. - -16:22 And they fell upon their faces, and said, O God, the God of the -spirits of all flesh, shall one man sin, and wilt thou be wroth with -all the congregation? 16:23 And the LORD spake unto Moses, saying, -16:24 Speak unto the congregation, saying, Get you up from about the -tabernacle of Korah, Dathan, and Abiram. - -16:25 And Moses rose up and went unto Dathan and Abiram; and the -elders of Israel followed him. - -16:26 And he spake unto the congregation, saying, Depart, I pray you, -from the tents of these wicked men, and touch nothing of their's, lest -ye be consumed in all their sins. - -16:27 So they gat up from the tabernacle of Korah, Dathan, and Abiram, -on every side: and Dathan and Abiram came out, and stood in the door -of their tents, and their wives, and their sons, and their little -children. - -16:28 And Moses said, Hereby ye shall know that the LORD hath sent me -to do all these works; for I have not done them of mine own mind. - -16:29 If these men die the common death of all men, or if they be -visited after the visitation of all men; then the LORD hath not sent -me. - -16:30 But if the LORD make a new thing, and the earth open her mouth, -and swallow them up, with all that appertain unto them, and they go -down quick into the pit; then ye shall understand that these men have -provoked the LORD. - -16:31 And it came to pass, as he had made an end of speaking all these -words, that the ground clave asunder that was under them: 16:32 And -the earth opened her mouth, and swallowed them up, and their houses, -and all the men that appertained unto Korah, and all their goods. - -16:33 They, and all that appertained to them, went down alive into the -pit, and the earth closed upon them: and they perished from among the -congregation. - -16:34 And all Israel that were round about them fled at the cry of -them: for they said, Lest the earth swallow us up also. - -16:35 And there came out a fire from the LORD, and consumed the two -hundred and fifty men that offered incense. - -16:36 And the LORD spake unto Moses, saying, 16:37 Speak unto Eleazar -the son of Aaron the priest, that he take up the censers out of the -burning, and scatter thou the fire yonder; for they are hallowed. - -16:38 The censers of these sinners against their own souls, let them -make them broad plates for a covering of the altar: for they offered -them before the LORD, therefore they are hallowed: and they shall be a -sign unto the children of Israel. - -16:39 And Eleazar the priest took the brasen censers, wherewith they -that were burnt had offered; and they were made broad plates for a -covering of the altar: 16:40 To be a memorial unto the children of -Israel, that no stranger, which is not of the seed of Aaron, come near -to offer incense before the LORD; that he be not as Korah, and as his -company: as the LORD said to him by the hand of Moses. - -16:41 But on the morrow all the congregation of the children of Israel -murmured against Moses and against Aaron, saying, Ye have killed the -people of the LORD. - -16:42 And it came to pass, when the congregation was gathered against -Moses and against Aaron, that they looked toward the tabernacle of the -congregation: and, behold, the cloud covered it, and the glory of the -LORD appeared. - -16:43 And Moses and Aaron came before the tabernacle of the -congregation. - -16:44 And the LORD spake unto Moses, saying, 16:45 Get you up from -among this congregation, that I may consume them as in a moment. And -they fell upon their faces. - -16:46 And Moses said unto Aaron, Take a censer, and put fire therein -from off the altar, and put on incense, and go quickly unto the -congregation, and make an atonement for them: for there is wrath gone -out from the LORD; the plague is begun. - -16:47 And Aaron took as Moses commanded, and ran into the midst of the -congregation; and, behold, the plague was begun among the people: and -he put on incense, and made an atonement for the people. - -16:48 And he stood between the dead and the living; and the plague was -stayed. - -16:49 Now they that died in the plague were fourteen thousand and -seven hundred, beside them that died about the matter of Korah. - -16:50 And Aaron returned unto Moses unto the door of the tabernacle of -the congregation: and the plague was stayed. - -17:1 And the LORD spake unto Moses, saying, 17:2 Speak unto the -children of Israel, and take of every one of them a rod according to -the house of their fathers, of all their princes according to the -house of their fathers twelve rods: write thou every man's name upon -his rod. - -17:3 And thou shalt write Aaron's name upon the rod of Levi: for one -rod shall be for the head of the house of their fathers. - -17:4 And thou shalt lay them up in the tabernacle of the congregation -before the testimony, where I will meet with you. - -17:5 And it shall come to pass, that the man's rod, whom I shall -choose, shall blossom: and I will make to cease from me the murmurings -of the children of Israel, whereby they murmur against you. - -17:6 And Moses spake unto the children of Israel, and every one of -their princes gave him a rod apiece, for each prince one, according to -their fathers' houses, even twelve rods: and the rod of Aaron was -among their rods. - -17:7 And Moses laid up the rods before the LORD in the tabernacle of -witness. - -17:8 And it came to pass, that on the morrow Moses went into the -tabernacle of witness; and, behold, the rod of Aaron for the house of -Levi was budded, and brought forth buds, and bloomed blossoms, and -yielded almonds. - -17:9 And Moses brought out all the rods from before the LORD unto all -the children of Israel: and they looked, and took every man his rod. - -17:10 And the LORD said unto Moses, Bring Aaron's rod again before the -testimony, to be kept for a token against the rebels; and thou shalt -quite take away their murmurings from me, that they die not. - -17:11 And Moses did so: as the LORD commanded him, so did he. - -17:12 And the children of Israel spake unto Moses, saying, Behold, we -die, we perish, we all perish. - -17:13 Whosoever cometh any thing near unto the tabernacle of the LORD -shall die: shall we be consumed with dying? 18:1 And the LORD said -unto Aaron, Thou and thy sons and thy father's house with thee shall -bear the iniquity of the sanctuary: and thou and thy sons with thee -shall bear the iniquity of your priesthood. - -18:2 And thy brethren also of the tribe of Levi, the tribe of thy -father, bring thou with thee, that they may be joined unto thee, and -minister unto thee: but thou and thy sons with thee shall minister -before the tabernacle of witness. - -18:3 And they shall keep thy charge, and the charge of all the -tabernacle: only they shall not come nigh the vessels of the sanctuary -and the altar, that neither they, nor ye also, die. - -18:4 And they shall be joined unto thee, and keep the charge of the -tabernacle of the congregation, for all the service of the tabernacle: -and a stranger shall not come nigh unto you. - -18:5 And ye shall keep the charge of the sanctuary, and the charge of -the altar: that there be no wrath any more upon the children of -Israel. - -18:6 And I, behold, I have taken your brethren the Levites from among -the children of Israel: to you they are given as a gift for the LORD, -to do the service of the tabernacle of the congregation. - -18:7 Therefore thou and thy sons with thee shall keep your priest's -office for everything of the altar, and within the vail; and ye shall -serve: I have given your priest's office unto you as a service of -gift: and the stranger that cometh nigh shall be put to death. - -18:8 And the LORD spake unto Aaron, Behold, I also have given thee the -charge of mine heave offerings of all the hallowed things of the -children of Israel; unto thee have I given them by reason of the -anointing, and to thy sons, by an ordinance for ever. - -18:9 This shall be thine of the most holy things, reserved from the -fire: every oblation of theirs, every meat offering of theirs, and -every sin offering of theirs, and every trespass offering of theirs -which they shall render unto me, shall be most holy for thee and for -thy sons. - -18:10 In the most holy place shalt thou eat it; every male shall eat -it: it shall be holy unto thee. - -18:11 And this is thine; the heave offering of their gift, with all -the wave offerings of the children of Israel: I have given them unto -thee, and to thy sons and to thy daughters with thee, by a statute for -ever: every one that is clean in thy house shall eat of it. - -18:12 All the best of the oil, and all the best of the wine, and of -the wheat, the firstfruits of them which they shall offer unto the -LORD, them have I given thee. - -18:13 And whatsoever is first ripe in the land, which they shall bring -unto the LORD, shall be thine; every one that is clean in thine house -shall eat of it. - -18:14 Every thing devoted in Israel shall be thine. - -18:15 Every thing that openeth the matrix in all flesh, which they -bring unto the LORD, whether it be of men or beasts, shall be thine: -nevertheless the firstborn of man shalt thou surely redeem, and the -firstling of unclean beasts shalt thou redeem. - -18:16 And those that are to be redeemed from a month old shalt thou -redeem, according to thine estimation, for the money of five shekels, -after the shekel of the sanctuary, which is twenty gerahs. - -18:17 But the firstling of a cow, or the firstling of a sheep, or the -firstling of a goat, thou shalt not redeem; they are holy: thou shalt -sprinkle their blood upon the altar, and shalt burn their fat for an -offering made by fire, for a sweet savour unto the LORD. - -18:18 And the flesh of them shall be thine, as the wave breast and as -the right shoulder are thine. - -18:19 All the heave offerings of the holy things, which the children -of Israel offer unto the LORD, have I given thee, and thy sons and thy -daughters with thee, by a statute for ever: it is a covenant of salt -for ever before the LORD unto thee and to thy seed with thee. - -18:20 And the LORD spake unto Aaron, Thou shalt have no inheritance in -their land, neither shalt thou have any part among them: I am thy part -and thine inheritance among the children of Israel. - -18:21 And, behold, I have given the children of Levi all the tenth in -Israel for an inheritance, for their service which they serve, even -the service of the tabernacle of the congregation. - -18:22 Neither must the children of Israel henceforth come nigh the -tabernacle of the congregation, lest they bear sin, and die. - -18:23 But the Levites shall do the service of the tabernacle of the -congregation, and they shall bear their iniquity: it shall be a -statute for ever throughout your generations, that among the children -of Israel they have no inheritance. - -18:24 But the tithes of the children of Israel, which they offer as an -heave offering unto the LORD, I have given to the Levites to inherit: -therefore I have said unto them, Among the children of Israel they -shall have no inheritance. - -18:25 And the LORD spake unto Moses, saying, 18:26 Thus speak unto the -Levites, and say unto them, When ye take of the children of Israel the -tithes which I have given you from them for your inheritance, then ye -shall offer up an heave offering of it for the LORD, even a tenth part -of the tithe. - -18:27 And this your heave offering shall be reckoned unto you, as -though it were the corn of the threshingfloor, and as the fulness of -the winepress. - -18:28 Thus ye also shall offer an heave offering unto the LORD of all -your tithes, which ye receive of the children of Israel; and ye shall -give thereof the LORD's heave offering to Aaron the priest. - -18:29 Out of all your gifts ye shall offer every heave offering of the -LORD, of all the best thereof, even the hallowed part thereof out of -it. - -18:30 Therefore thou shalt say unto them, When ye have heaved the best -thereof from it, then it shall be counted unto the Levites as the -increase of the threshingfloor, and as the increase of the winepress. - -18:31 And ye shall eat it in every place, ye and your households: for -it is your reward for your service in the tabernacle of the -congregation. - -18:32 And ye shall bear no sin by reason of it, when ye have heaved -from it the best of it: neither shall ye pollute the holy things of -the children of Israel, lest ye die. - -19:1 And the LORD spake unto Moses and unto Aaron, saying, 19:2 This -is the ordinance of the law which the LORD hath commanded, saying, -Speak unto the children of Israel, that they bring thee a red heifer -without spot, wherein is no blemish, and upon which never came yoke: -19:3 And ye shall give her unto Eleazar the priest, that he may bring -her forth without the camp, and one shall slay her before his face: -19:4 And Eleazar the priest shall take of her blood with his finger, -and sprinkle of her blood directly before the tabernacle of the -congregation seven times: 19:5 And one shall burn the heifer in his -sight; her skin, and her flesh, and her blood, with her dung, shall he -burn: 19:6 And the priest shall take cedar wood, and hyssop, and -scarlet, and cast it into the midst of the burning of the heifer. - -19:7 Then the priest shall wash his clothes, and he shall bathe his -flesh in water, and afterward he shall come into the camp, and the -priest shall be unclean until the even. - -19:8 And he that burneth her shall wash his clothes in water, and -bathe his flesh in water, and shall be unclean until the even. - -19:9 And a man that is clean shall gather up the ashes of the heifer, -and lay them up without the camp in a clean place, and it shall be -kept for the congregation of the children of Israel for a water of -separation: it is a purification for sin. - -19:10 And he that gathereth the ashes of the heifer shall wash his -clothes, and be unclean until the even: and it shall be unto the -children of Israel, and unto the stranger that sojourneth among them, -for a statute for ever. - -19:11 He that toucheth the dead body of any man shall be unclean seven -days. - -19:12 He shall purify himself with it on the third day, and on the -seventh day he shall be clean: but if he purify not himself the third -day, then the seventh day he shall not be clean. - -19:13 Whosoever toucheth the dead body of any man that is dead, and -purifieth not himself, defileth the tabernacle of the LORD; and that -soul shall be cut off from Israel: because the water of separation was -not sprinkled upon him, he shall be unclean; his uncleanness is yet -upon him. - -19:14 This is the law, when a man dieth in a tent: all that come into -the tent, and all that is in the tent, shall be unclean seven days. - -19:15 And every open vessel, which hath no covering bound upon it, is -unclean. - -19:16 And whosoever toucheth one that is slain with a sword in the -open fields, or a dead body, or a bone of a man, or a grave, shall be -unclean seven days. - -19:17 And for an unclean person they shall take of the ashes of the -burnt heifer of purification for sin, and running water shall be put -thereto in a vessel: 19:18 And a clean person shall take hyssop, and -dip it in the water, and sprinkle it upon the tent, and upon all the -vessels, and upon the persons that were there, and upon him that -touched a bone, or one slain, or one dead, or a grave: 19:19 And the -clean person shall sprinkle upon the unclean on the third day, and on -the seventh day: and on the seventh day he shall purify himself, and -wash his clothes, and bathe himself in water, and shall be clean at -even. - -19:20 But the man that shall be unclean, and shall not purify himself, -that soul shall be cut off from among the congregation, because he -hath defiled the sanctuary of the LORD: the water of separation hath -not been sprinkled upon him; he is unclean. - -19:21 And it shall be a perpetual statute unto them, that he that -sprinkleth the water of separation shall wash his clothes; and he that -toucheth the water of separation shall be unclean until even. - -19:22 And whatsoever the unclean person toucheth shall be unclean; and -the soul that toucheth it shall be unclean until even. - -20:1 Then came the children of Israel, even the whole congregation, -into the desert of Zin in the first month: and the people abode in -Kadesh; and Miriam died there, and was buried there. - -20:2 And there was no water for the congregation: and they gathered -themselves together against Moses and against Aaron. - -20:3 And the people chode with Moses, and spake, saying, Would God -that we had died when our brethren died before the LORD! 20:4 And why -have ye brought up the congregation of the LORD into this wilderness, -that we and our cattle should die there? 20:5 And wherefore have ye -made us to come up out of Egypt, to bring us in unto this evil place? -it is no place of seed, or of figs, or of vines, or of pomegranates; -neither is there any water to drink. - -20:6 And Moses and Aaron went from the presence of the assembly unto -the door of the tabernacle of the congregation, and they fell upon -their faces: and the glory of the LORD appeared unto them. - -20:7 And the LORD spake unto Moses, saying, 20:8 Take the rod, and -gather thou the assembly together, thou, and Aaron thy brother, and -speak ye unto the rock before their eyes; and it shall give forth his -water, and thou shalt bring forth to them water out of the rock: so -thou shalt give the congregation and their beasts drink. - -20:9 And Moses took the rod from before the LORD, as he commanded him. - -20:10 And Moses and Aaron gathered the congregation together before -the rock, and he said unto them, Hear now, ye rebels; must we fetch -you water out of this rock? 20:11 And Moses lifted up his hand, and -with his rod he smote the rock twice: and the water came out -abundantly, and the congregation drank, and their beasts also. - -20:12 And the LORD spake unto Moses and Aaron, Because ye believed me -not, to sanctify me in the eyes of the children of Israel, therefore -ye shall not bring this congregation into the land which I have given -them. - -20:13 This is the water of Meribah; because the children of Israel -strove with the LORD, and he was sanctified in them. - -20:14 And Moses sent messengers from Kadesh unto the king of Edom, -Thus saith thy brother Israel, Thou knowest all the travail that hath -befallen us: 20:15 How our fathers went down into Egypt, and we have -dwelt in Egypt a long time; and the Egyptians vexed us, and our -fathers: 20:16 And when we cried unto the LORD, he heard our voice, -and sent an angel, and hath brought us forth out of Egypt: and, -behold, we are in Kadesh, a city in the uttermost of thy border: 20:17 -Let us pass, I pray thee, through thy country: we will not pass -through the fields, or through the vineyards, neither will we drink of -the water of the wells: we will go by the king's high way, we will not -turn to the right hand nor to the left, until we have passed thy -borders. - -20:18 And Edom said unto him, Thou shalt not pass by me, lest I come -out against thee with the sword. - -20:19 And the children of Israel said unto him, We will go by the high -way: and if I and my cattle drink of thy water, then I will pay for -it: I will only, without doing anything else, go through on my feet. - -20:20 And he said, Thou shalt not go through. And Edom came out -against him with much people, and with a strong hand. - -20:21 Thus Edom refused to give Israel passage through his border: -wherefore Israel turned away from him. - -20:22 And the children of Israel, even the whole congregation, -journeyed from Kadesh, and came unto mount Hor. - -20:23 And the LORD spake unto Moses and Aaron in mount Hor, by the -coast of the land of Edom, saying, 20:24 Aaron shall be gathered unto -his people: for he shall not enter into the land which I have given -unto the children of Israel, because ye rebelled against my word at -the water of Meribah. - -20:25 Take Aaron and Eleazar his son, and bring them up unto mount -Hor: 20:26 And strip Aaron of his garments, and put them upon Eleazar -his son: and Aaron shall be gathered unto his people, and shall die -there. - -20:27 And Moses did as the LORD commanded: and they went up into mount -Hor in the sight of all the congregation. - -20:28 And Moses stripped Aaron of his garments, and put them upon -Eleazar his son; and Aaron died there in the top of the mount: and -Moses and Eleazar came down from the mount. - -20:29 And when all the congregation saw that Aaron was dead, they -mourned for Aaron thirty days, even all the house of Israel. - -21:1 And when king Arad the Canaanite, which dwelt in the south, heard -tell that Israel came by the way of the spies; then he fought against -Israel, and took some of them prisoners. - -21:2 And Israel vowed a vow unto the LORD, and said, If thou wilt -indeed deliver this people into my hand, then I will utterly destroy -their cities. - -21:3 And the LORD hearkened to the voice of Israel, and delivered up -the Canaanites; and they utterly destroyed them and their cities: and -he called the name of the place Hormah. - -21:4 And they journeyed from mount Hor by the way of the Red sea, to -compass the land of Edom: and the soul of the people was much -discouraged because of the way. - -21:5 And the people spake against God, and against Moses, Wherefore -have ye brought us up out of Egypt to die in the wilderness? for there -is no bread, neither is there any water; and our soul loatheth this -light bread. - -21:6 And the LORD sent fiery serpents among the people, and they bit -the people; and much people of Israel died. - -21:7 Therefore the people came to Moses, and said, We have sinned, for -we have spoken against the LORD, and against thee; pray unto the LORD, -that he take away the serpents from us. And Moses prayed for the -people. - -21:8 And the LORD said unto Moses, Make thee a fiery serpent, and set -it upon a pole: and it shall come to pass, that every one that is -bitten, when he looketh upon it, shall live. - -21:9 And Moses made a serpent of brass, and put it upon a pole, and it -came to pass, that if a serpent had bitten any man, when he beheld the -serpent of brass, he lived. - -21:10 And the children of Israel set forward, and pitched in Oboth. - -21:11 And they journeyed from Oboth, and pitched at Ijeabarim, in the -wilderness which is before Moab, toward the sunrising. - -21:12 From thence they removed, and pitched in the valley of Zared. - -21:13 From thence they removed, and pitched on the other side of -Arnon, which is in the wilderness that cometh out of the coasts of the -Amorites: for Arnon is the border of Moab, between Moab and the -Amorites. - -21:14 Wherefore it is said in the book of the wars of the LORD, What -he did in the Red sea, and in the brooks of Arnon, 21:15 And at the -stream of the brooks that goeth down to the dwelling of Ar, and lieth -upon the border of Moab. - -21:16 And from thence they went to Beer: that is the well whereof the -LORD spake unto Moses, Gather the people together, and I will give -them water. - -21:17 Then Israel sang this song, Spring up, O well; sing ye unto it: -21:18 The princes digged the well, the nobles of the people digged it, -by the direction of the lawgiver, with their staves. And from the -wilderness they went to Mattanah: 21:19 And from Mattanah to Nahaliel: -and from Nahaliel to Bamoth: 21:20 And from Bamoth in the valley, that -is in the country of Moab, to the top of Pisgah, which looketh toward -Jeshimon. - -21:21 And Israel sent messengers unto Sihon king of the Amorites, -saying, 21:22 Let me pass through thy land: we will not turn into the -fields, or into the vineyards; we will not drink of the waters of the -well: but we will go along by the king's high way, until we be past -thy borders. - -21:23 And Sihon would not suffer Israel to pass through his border: -but Sihon gathered all his people together, and went out against -Israel into the wilderness: and he came to Jahaz, and fought against -Israel. - -21:24 And Israel smote him with the edge of the sword, and possessed -his land from Arnon unto Jabbok, even unto the children of Ammon: for -the border of the children of Ammon was strong. - -21:25 And Israel took all these cities: and Israel dwelt in all the -cities of the Amorites, in Heshbon, and in all the villages thereof. - -21:26 For Heshbon was the city of Sihon the king of the Amorites, who -had fought against the former king of Moab, and taken all his land out -of his hand, even unto Arnon. - -21:27 Wherefore they that speak in proverbs say, Come into Heshbon, -let the city of Sihon be built and prepared: 21:28 For there is a fire -gone out of Heshbon, a flame from the city of Sihon: it hath consumed -Ar of Moab, and the lords of the high places of Arnon. - -21:29 Woe to thee, Moab! thou art undone, O people of Chemosh: he hath -given his sons that escaped, and his daughters, into captivity unto -Sihon king of the Amorites. - -21:30 We have shot at them; Heshbon is perished even unto Dibon, and -we have laid them waste even unto Nophah, which reacheth unto Medeba. - -21:31 Thus Israel dwelt in the land of the Amorites. - -21:32 And Moses sent to spy out Jaazer, and they took the villages -thereof, and drove out the Amorites that were there. - -21:33 And they turned and went up by the way of Bashan: and Og the -king of Bashan went out against them, he, and all his people, to the -battle at Edrei. - -21:34 And the LORD said unto Moses, Fear him not: for I have delivered -him into thy hand, and all his people, and his land; and thou shalt do -to him as thou didst unto Sihon king of the Amorites, which dwelt at -Heshbon. - -21:35 So they smote him, and his sons, and all his people, until there -was none left him alive: and they possessed his land. - -22:1 And the children of Israel set forward, and pitched in the plains -of Moab on this side Jordan by Jericho. - -22:2 And Balak the son of Zippor saw all that Israel had done to the -Amorites. - -22:3 And Moab was sore afraid of the people, because they were many: -and Moab was distressed because of the children of Israel. - -22:4 And Moab said unto the elders of Midian, Now shall this company -lick up all that are round about us, as the ox licketh up the grass of -the field. - -And Balak the son of Zippor was king of the Moabites at that time. - -22:5 He sent messengers therefore unto Balaam the son of Beor to -Pethor, which is by the river of the land of the children of his -people, to call him, saying, Behold, there is a people come out from -Egypt: behold, they cover the face of the earth, and they abide over -against me: 22:6 Come now therefore, I pray thee, curse me this -people; for they are too mighty for me: peradventure I shall prevail, -that we may smite them, and that I may drive them out of the land: for -I wot that he whom thou blessest is blessed, and he whom thou cursest -is cursed. - -22:7 And the elders of Moab and the elders of Midian departed with the -rewards of divination in their hand; and they came unto Balaam, and -spake unto him the words of Balak. - -22:8 And he said unto them, Lodge here this night, and I will bring -you word again, as the LORD shall speak unto me: and the princes of -Moab abode with Balaam. - -22:9 And God came unto Balaam, and said, What men are these with thee? -22:10 And Balaam said unto God, Balak the son of Zippor, king of Moab, -hath sent unto me, saying, 22:11 Behold, there is a people come out of -Egypt, which covereth the face of the earth: come now, curse me them; -peradventure I shall be able to overcome them, and drive them out. - -22:12 And God said unto Balaam, Thou shalt not go with them; thou -shalt not curse the people: for they are blessed. - -22:13 And Balaam rose up in the morning, and said unto the princes of -Balak, Get you into your land: for the LORD refuseth to give me leave -to go with you. - -22:14 And the princes of Moab rose up, and they went unto Balak, and -said, Balaam refuseth to come with us. - -22:15 And Balak sent yet again princes, more, and more honourable than -they. - -22:16 And they came to Balaam, and said to him, Thus saith Balak the -son of Zippor, Let nothing, I pray thee, hinder thee from coming unto -me: 22:17 For I will promote thee unto very great honour, and I will -do whatsoever thou sayest unto me: come therefore, I pray thee, curse -me this people. - -22:18 And Balaam answered and said unto the servants of Balak, If -Balak would give me his house full of silver and gold, I cannot go -beyond the word of the LORD my God, to do less or more. - -22:19 Now therefore, I pray you, tarry ye also here this night, that I -may know what the LORD will say unto me more. - -22:20 And God came unto Balaam at night, and said unto him, If the men -come to call thee, rise up, and go with them; but yet the word which I -shall say unto thee, that shalt thou do. - -22:21 And Balaam rose up in the morning, and saddled his ass, and went -with the princes of Moab. - -22:22 And God's anger was kindled because he went: and the angel of -the LORD stood in the way for an adversary against him. Now he was -riding upon his ass, and his two servants were with him. - -22:23 And the ass saw the angel of the LORD standing in the way, and -his sword drawn in his hand: and the ass turned aside out of the way, -and went into the field: and Balaam smote the ass, to turn her into -the way. - -22:24 But the angel of the LORD stood in a path of the vineyards, a -wall being on this side, and a wall on that side. - -22:25 And when the ass saw the angel of the LORD, she thrust herself -unto the wall, and crushed Balaam's foot against the wall: and he -smote her again. - -22:26 And the angel of the LORD went further, and stood in a narrow -place, where was no way to turn either to the right hand or to the -left. - -22:27 And when the ass saw the angel of the LORD, she fell down under -Balaam: and Balaam's anger was kindled, and he smote the ass with a -staff. - -22:28 And the LORD opened the mouth of the ass, and she said unto -Balaam, What have I done unto thee, that thou hast smitten me these -three times? 22:29 And Balaam said unto the ass, Because thou hast -mocked me: I would there were a sword in mine hand, for now would I -kill thee. - -22:30 And the ass said unto Balaam, Am not I thine ass, upon which -thou hast ridden ever since I was thine unto this day? was I ever wont -to do so unto thee? And he said, Nay. - -22:31 Then the LORD opened the eyes of Balaam, and he saw the angel of -the LORD standing in the way, and his sword drawn in his hand: and he -bowed down his head, and fell flat on his face. - -22:32 And the angel of the LORD said unto him, Wherefore hast thou -smitten thine ass these three times? behold, I went out to withstand -thee, because thy way is perverse before me: 22:33 And the ass saw me, -and turned from me these three times: unless she had turned from me, -surely now also I had slain thee, and saved her alive. - -22:34 And Balaam said unto the angel of the LORD, I have sinned; for I -knew not that thou stoodest in the way against me: now therefore, if -it displease thee, I will get me back again. - -22:35 And the angel of the LORD said unto Balaam, Go with the men: but -only the word that I shall speak unto thee, that thou shalt speak. So -Balaam went with the princes of Balak. - -22:36 And when Balak heard that Balaam was come, he went out to meet -him unto a city of Moab, which is in the border of Arnon, which is in -the utmost coast. - -22:37 And Balak said unto Balaam, Did I not earnestly send unto thee -to call thee? wherefore camest thou not unto me? am I not able indeed -to promote thee to honour? 22:38 And Balaam said unto Balak, Lo, I am -come unto thee: have I now any power at all to say any thing? the word -that God putteth in my mouth, that shall I speak. - -22:39 And Balaam went with Balak, and they came unto Kirjathhuzoth. - -22:40 And Balak offered oxen and sheep, and sent to Balaam, and to the -princes that were with him. - -22:41 And it came to pass on the morrow, that Balak took Balaam, and -brought him up into the high places of Baal, that thence he might see -the utmost part of the people. - -23:1 And Balaam said unto Balak, Build me here seven altars, and -prepare me here seven oxen and seven rams. - -23:2 And Balak did as Balaam had spoken; and Balak and Balaam offered -on every altar a bullock and a ram. - -23:3 And Balaam said unto Balak, Stand by thy burnt offering, and I -will go: peradventure the LORD will come to meet me: and whatsoever he -sheweth me I will tell thee. And he went to an high place. - -23:4 And God met Balaam: and he said unto him, I have prepared seven -altars, and I have offered upon every altar a bullock and a ram. - -23:5 And the LORD put a word in Balaam's mouth, and said, Return unto -Balak, and thus thou shalt speak. - -23:6 And he returned unto him, and, lo, he stood by his burnt -sacrifice, he, and all the princes of Moab. - -23:7 And he took up his parable, and said, Balak the king of Moab hath -brought me from Aram, out of the mountains of the east, saying, Come, -curse me Jacob, and come, defy Israel. - -23:8 How shall I curse, whom God hath not cursed? or how shall I defy, -whom the LORD hath not defied? 23:9 For from the top of the rocks I -see him, and from the hills I behold him: lo, the people shall dwell -alone, and shall not be reckoned among the nations. - -23:10 Who can count the dust of Jacob, and the number of the fourth -part of Israel? Let me die the death of the righteous, and let my last -end be like his! 23:11 And Balak said unto Balaam, What hast thou -done unto me? I took thee to curse mine enemies, and, behold, thou -hast blessed them altogether. - -23:12 And he answered and said, Must I not take heed to speak that -which the LORD hath put in my mouth? 23:13 And Balak said unto him, -Come, I pray thee, with me unto another place, from whence thou mayest -see them: thou shalt see but the utmost part of them, and shalt not -see them all: and curse me them from thence. - -23:14 And he brought him into the field of Zophim, to the top of -Pisgah, and built seven altars, and offered a bullock and a ram on -every altar. - -23:15 And he said unto Balak, Stand here by thy burnt offering, while -I meet the LORD yonder. - -23:16 And the LORD met Balaam, and put a word in his mouth, and said, -Go again unto Balak, and say thus. - -23:17 And when he came to him, behold, he stood by his burnt offering, -and the princes of Moab with him. And Balak said unto him, What hath -the LORD spoken? 23:18 And he took up his parable, and said, Rise up, -Balak, and hear; hearken unto me, thou son of Zippor: 23:19 God is not -a man, that he should lie; neither the son of man, that he should -repent: hath he said, and shall he not do it? or hath he spoken, and -shall he not make it good? 23:20 Behold, I have received commandment -to bless: and he hath blessed; and I cannot reverse it. - -23:21 He hath not beheld iniquity in Jacob, neither hath he seen -perverseness in Israel: the LORD his God is with him, and the shout of -a king is among them. - -23:22 God brought them out of Egypt; he hath as it were the strength -of an unicorn. - -23:23 Surely there is no enchantment against Jacob, neither is there -any divination against Israel: according to this time it shall be said -of Jacob and of Israel, What hath God wrought! 23:24 Behold, the -people shall rise up as a great lion, and lift up himself as a young -lion: he shall not lie down until he eat of the prey, and drink the -blood of the slain. - -23:25 And Balak said unto Balaam, Neither curse them at all, nor bless -them at all. - -23:26 But Balaam answered and said unto Balak, Told not I thee, -saying, All that the LORD speaketh, that I must do? 23:27 And Balak -said unto Balaam, Come, I pray thee, I will bring thee unto another -place; peradventure it will please God that thou mayest curse me them -from thence. - -23:28 And Balak brought Balaam unto the top of Peor, that looketh -toward Jeshimon. - -23:29 And Balaam said unto Balak, Build me here seven altars, and -prepare me here seven bullocks and seven rams. - -23:30 And Balak did as Balaam had said, and offered a bullock and a -ram on every altar. - -24:1 And when Balaam saw that it pleased the LORD to bless Israel, he -went not, as at other times, to seek for enchantments, but he set his -face toward the wilderness. - -24:2 And Balaam lifted up his eyes, and he saw Israel abiding in his -tents according to their tribes; and the spirit of God came upon him. - -24:3 And he took up his parable, and said, Balaam the son of Beor hath -said, and the man whose eyes are open hath said: 24:4 He hath said, -which heard the words of God, which saw the vision of the Almighty, -falling into a trance, but having his eyes open: 24:5 How goodly are -thy tents, O Jacob, and thy tabernacles, O Israel! 24:6 As the -valleys are they spread forth, as gardens by the river's side, as the -trees of lign aloes which the LORD hath planted, and as cedar trees -beside the waters. - -24:7 He shall pour the water out of his buckets, and his seed shall be -in many waters, and his king shall be higher than Agag, and his -kingdom shall be exalted. - -24:8 God brought him forth out of Egypt; he hath as it were the -strength of an unicorn: he shall eat up the nations his enemies, and -shall break their bones, and pierce them through with his arrows. - -24:9 He couched, he lay down as a lion, and as a great lion: who shall -stir him up? Blessed is he that blesseth thee, and cursed is he that -curseth thee. - -24:10 And Balak's anger was kindled against Balaam, and he smote his -hands together: and Balak said unto Balaam, I called thee to curse -mine enemies, and, behold, thou hast altogether blessed them these -three times. - -24:11 Therefore now flee thou to thy place: I thought to promote thee -unto great honour; but, lo, the LORD hath kept thee back from honour. - -24:12 And Balaam said unto Balak, Spake I not also to thy messengers -which thou sentest unto me, saying, 24:13 If Balak would give me his -house full of silver and gold, I cannot go beyond the commandment of -the LORD, to do either good or bad of mine own mind; but what the LORD -saith, that will I speak? 24:14 And now, behold, I go unto my people: -come therefore, and I will advertise thee what this people shall do to -thy people in the latter days. - -24:15 And he took up his parable, and said, Balaam the son of Beor -hath said, and the man whose eyes are open hath said: 24:16 He hath -said, which heard the words of God, and knew the knowledge of the most -High, which saw the vision of the Almighty, falling into a trance, but -having his eyes open: 24:17 I shall see him, but not now: I shall -behold him, but not nigh: there shall come a Star out of Jacob, and a -Sceptre shall rise out of Israel, and shall smite the corners of Moab, -and destroy all the children of Sheth. - -24:18 And Edom shall be a possession, Seir also shall be a possession -for his enemies; and Israel shall do valiantly. - -24:19 Out of Jacob shall come he that shall have dominion, and shall -destroy him that remaineth of the city. - -24:20 And when he looked on Amalek, he took up his parable, and said, -Amalek was the first of the nations; but his latter end shall be that -he perish for ever. - -24:21 And he looked on the Kenites, and took up his parable, and said, -Strong is thy dwellingplace, and thou puttest thy nest in a rock. - -24:22 Nevertheless the Kenite shall be wasted, until Asshur shall -carry thee away captive. - -24:23 And he took up his parable, and said, Alas, who shall live when -God doeth this! 24:24 And ships shall come from the coast of Chittim, -and shall afflict Asshur, and shall afflict Eber, and he also shall -perish for ever. - -24:25 And Balaam rose up, and went and returned to his place: and -Balak also went his way. - -25:1 And Israel abode in Shittim, and the people began to commit -whoredom with the daughters of Moab. - -25:2 And they called the people unto the sacrifices of their gods: and -the people did eat, and bowed down to their gods. - -25:3 And Israel joined himself unto Baalpeor: and the anger of the -LORD was kindled against Israel. - -25:4 And the LORD said unto Moses, Take all the heads of the people, -and hang them up before the LORD against the sun, that the fierce -anger of the LORD may be turned away from Israel. - -25:5 And Moses said unto the judges of Israel, Slay ye every one his -men that were joined unto Baalpeor. - -25:6 And, behold, one of the children of Israel came and brought unto -his brethren a Midianitish woman in the sight of Moses, and in the -sight of all the congregation of the children of Israel, who were -weeping before the door of the tabernacle of the congregation. - -25:7 And when Phinehas, the son of Eleazar, the son of Aaron the -priest, saw it, he rose up from among the congregation, and took a -javelin in his hand; 25:8 And he went after the man of Israel into the -tent, and thrust both of them through, the man of Israel, and the -woman through her belly. So the plague was stayed from the children of -Israel. - -25:9 And those that died in the plague were twenty and four thousand. - -25:10 And the LORD spake unto Moses, saying, 25:11 Phinehas, the son -of Eleazar, the son of Aaron the priest, hath turned my wrath away -from the children of Israel, while he was zealous for my sake among -them, that I consumed not the children of Israel in my jealousy. - -25:12 Wherefore say, Behold, I give unto him my covenant of peace: -25:13 And he shall have it, and his seed after him, even the covenant -of an everlasting priesthood; because he was zealous for his God, and -made an atonement for the children of Israel. - -25:14 Now the name of the Israelite that was slain, even that was -slain with the Midianitish woman, was Zimri, the son of Salu, a prince -of a chief house among the Simeonites. - -25:15 And the name of the Midianitish woman that was slain was Cozbi, -the daughter of Zur; he was head over a people, and of a chief house -in Midian. - -25:16 And the LORD spake unto Moses, saying, 25:17 Vex the Midianites, -and smite them: 25:18 For they vex you with their wiles, wherewith -they have beguiled you in the matter of Peor, and in the matter of -Cozbi, the daughter of a prince of Midian, their sister, which was -slain in the day of the plague for Peor's sake. - -26:1 And it came to pass after the plague, that the LORD spake unto -Moses and unto Eleazar the son of Aaron the priest, saying, 26:2 Take -the sum of all the congregation of the children of Israel, from twenty -years old and upward, throughout their fathers' house, all that are -able to go to war in Israel. - -26:3 And Moses and Eleazar the priest spake with them in the plains of -Moab by Jordan near Jericho, saying, 26:4 Take the sum of the people, -from twenty years old and upward; as the LORD commanded Moses and the -children of Israel, which went forth out of the land of Egypt. - -26:5 Reuben, the eldest son of Israel: the children of Reuben; Hanoch, -of whom cometh the family of the Hanochites: of Pallu, the family of -the Palluites: 26:6 Of Hezron, the family of the Hezronites: of Carmi, -the family of the Carmites. - -26:7 These are the families of the Reubenites: and they that were -numbered of them were forty and three thousand and seven hundred and -thirty. - -26:8 And the sons of Pallu; Eliab. - -26:9 And the sons of Eliab; Nemuel, and Dathan, and Abiram. This is -that Dathan and Abiram, which were famous in the congregation, who -strove against Moses and against Aaron in the company of Korah, when -they strove against the LORD: 26:10 And the earth opened her mouth, -and swallowed them up together with Korah, when that company died, -what time the fire devoured two hundred and fifty men: and they became -a sign. - -26:11 Notwithstanding the children of Korah died not. - -26:12 The sons of Simeon after their families: of Nemuel, the family -of the Nemuelites: of Jamin, the family of the Jaminites: of Jachin, -the family of the Jachinites: 26:13 Of Zerah, the family of the -Zarhites: of Shaul, the family of the Shaulites. - -26:14 These are the families of the Simeonites, twenty and two -thousand and two hundred. - -26:15 The children of Gad after their families: of Zephon, the family -of the Zephonites: of Haggi, the family of the Haggites: of Shuni, the -family of the Shunites: 26:16 Of Ozni, the family of the Oznites: of -Eri, the family of the Erites: 26:17 Of Arod, the family of the -Arodites: of Areli, the family of the Arelites. - -26:18 These are the families of the children of Gad according to those -that were numbered of them, forty thousand and five hundred. - -26:19 The sons of Judah were Er and Onan: and Er and Onan died in the -land of Canaan. - -26:20 And the sons of Judah after their families were; of Shelah, the -family of the Shelanites: of Pharez, the family of the Pharzites: of -Zerah, the family of the Zarhites. - -26:21 And the sons of Pharez were; of Hezron, the family of the -Hezronites: of Hamul, the family of the Hamulites. - -26:22 These are the families of Judah according to those that were -numbered of them, threescore and sixteen thousand and five hundred. - -26:23 Of the sons of Issachar after their families: of Tola, the -family of the Tolaites: of Pua, the family of the Punites: 26:24 Of -Jashub, the family of the Jashubites: of Shimron, the family of the -Shimronites. - -26:25 These are the families of Issachar according to those that were -numbered of them, threescore and four thousand and three hundred. - -26:26 Of the sons of Zebulun after their families: of Sered, the -family of the Sardites: of Elon, the family of the Elonites: of -Jahleel, the family of the Jahleelites. - -26:27 These are the families of the Zebulunites according to those -that were numbered of them, threescore thousand and five hundred. - -26:28 The sons of Joseph after their families were Manasseh and -Ephraim. - -26:29 Of the sons of Manasseh: of Machir, the family of the -Machirites: and Machir begat Gilead: of Gilead come the family of the -Gileadites. - -26:30 These are the sons of Gilead: of Jeezer, the family of the -Jeezerites: of Helek, the family of the Helekites: 26:31 And of -Asriel, the family of the Asrielites: and of Shechem, the family of -the Shechemites: 26:32 And of Shemida, the family of the Shemidaites: -and of Hepher, the family of the Hepherites. - -26:33 And Zelophehad the son of Hepher had no sons, but daughters: and -the names of the daughters of Zelophehad were Mahlah, and Noah, -Hoglah, Milcah, and Tirzah. - -26:34 These are the families of Manasseh, and those that were numbered -of them, fifty and two thousand and seven hundred. - -26:35 These are the sons of Ephraim after their families: of -Shuthelah, the family of the Shuthalhites: of Becher, the family of -the Bachrites: of Tahan, the family of the Tahanites. - -26:36 And these are the sons of Shuthelah: of Eran, the family of the -Eranites. - -26:37 These are the families of the sons of Ephraim according to those -that were numbered of them, thirty and two thousand and five hundred. -These are the sons of Joseph after their families. - -26:38 The sons of Benjamin after their families: of Bela, the family -of the Belaites: of Ashbel, the family of the Ashbelites: of Ahiram, -the family of the Ahiramites: 26:39 Of Shupham, the family of the -Shuphamites: of Hupham, the family of the Huphamites. - -26:40 And the sons of Bela were Ard and Naaman: of Ard, the family of -the Ardites: and of Naaman, the family of the Naamites. - -26:41 These are the sons of Benjamin after their families: and they -that were numbered of them were forty and five thousand and six -hundred. - -26:42 These are the sons of Dan after their families: of Shuham, the -family of the Shuhamites. These are the families of Dan after their -families. - -26:43 All the families of the Shuhamites, according to those that were -numbered of them, were threescore and four thousand and four hundred. - -26:44 Of the children of Asher after their families: of Jimna, the -family of the Jimnites: of Jesui, the family of the Jesuites: of -Beriah, the family of the Beriites. - -26:45 Of the sons of Beriah: of Heber, the family of the Heberites: of -Malchiel, the family of the Malchielites. - -26:46 And the name of the daughter of Asher was Sarah. - -26:47 These are the families of the sons of Asher according to those -that were numbered of them; who were fifty and three thousand and four -hundred. - -26:48 Of the sons of Naphtali after their families: of Jahzeel, the -family of the Jahzeelites: of Guni, the family of the Gunites: 26:49 -Of Jezer, the family of the Jezerites: of Shillem, the family of the -Shillemites. - -26:50 These are the families of Naphtali according to their families: -and they that were numbered of them were forty and five thousand and -four hundred. - -26:51 These were the numbered of the children of Israel, six hundred -thousand and a thousand seven hundred and thirty. - -26:52 And the LORD spake unto Moses, saying, 26:53 Unto these the land -shall be divided for an inheritance according to the number of names. - -26:54 To many thou shalt give the more inheritance, and to few thou -shalt give the less inheritance: to every one shall his inheritance be -given according to those that were numbered of him. - -26:55 Notwithstanding the land shall be divided by lot: according to -the names of the tribes of their fathers they shall inherit. - -26:56 According to the lot shall the possession thereof be divided -between many and few. - -26:57 And these are they that were numbered of the Levites after their -families: of Gershon, the family of the Gershonites: of Kohath, the -family of the Kohathites: of Merari, the family of the Merarites. - -26:58 These are the families of the Levites: the family of the -Libnites, the family of the Hebronites, the family of the Mahlites, -the family of the Mushites, the family of the Korathites. And Kohath -begat Amram. - -26:59 And the name of Amram's wife was Jochebed, the daughter of Levi, -whom her mother bare to Levi in Egypt: and she bare unto Amram Aaron -and Moses, and Miriam their sister. - -26:60 And unto Aaron was born Nadab, and Abihu, Eleazar, and Ithamar. - -26:61 And Nadab and Abihu died, when they offered strange fire before -the LORD. - -26:62 And those that were numbered of them were twenty and three -thousand, all males from a month old and upward: for they were not -numbered among the children of Israel, because there was no -inheritance given them among the children of Israel. - -26:63 These are they that were numbered by Moses and Eleazar the -priest, who numbered the children of Israel in the plains of Moab by -Jordan near Jericho. - -26:64 But among these there was not a man of them whom Moses and Aaron -the priest numbered, when they numbered the children of Israel in the -wilderness of Sinai. - -26:65 For the LORD had said of them, They shall surely die in the -wilderness. And there was not left a man of them, save Caleb the son -of Jephunneh, and Joshua the son of Nun. - -27:1 Then came the daughters of Zelophehad, the son of Hepher, the son -of Gilead, the son of Machir, the son of Manasseh, of the families of -Manasseh the son of Joseph: and these are the names of his daughters; -Mahlah, Noah, and Hoglah, and Milcah, and Tirzah. - -27:2 And they stood before Moses, and before Eleazar the priest, and -before the princes and all the congregation, by the door of the -tabernacle of the congregation, saying, 27:3 Our father died in the -wilderness, and he was not in the company of them that gathered -themselves together against the LORD in the company of Korah; but died -in his own sin, and had no sons. - -27:4 Why should the name of our father be done away from among his -family, because he hath no son? Give unto us therefore a possession -among the brethren of our father. - -27:5 And Moses brought their cause before the LORD. - -27:6 And the LORD spake unto Moses, saying, 27:7 The daughters of -Zelophehad speak right: thou shalt surely give them a possession of an -inheritance among their father's brethren; and thou shalt cause the -inheritance of their father to pass unto them. - -27:8 And thou shalt speak unto the children of Israel, saying, If a -man die, and have no son, then ye shall cause his inheritance to pass -unto his daughter. - -27:9 And if he have no daughter, then ye shall give his inheritance -unto his brethren. - -27:10 And if he have no brethren, then ye shall give his inheritance -unto his father's brethren. - -27:11 And if his father have no brethren, then ye shall give his -inheritance unto his kinsman that is next to him of his family, and he -shall possess it: and it shall be unto the children of Israel a -statute of judgment, as the LORD commanded Moses. - -27:12 And the LORD said unto Moses, Get thee up into this mount -Abarim, and see the land which I have given unto the children of -Israel. - -27:13 And when thou hast seen it, thou also shalt be gathered unto thy -people, as Aaron thy brother was gathered. - -27:14 For ye rebelled against my commandment in the desert of Zin, in -the strife of the congregation, to sanctify me at the water before -their eyes: that is the water of Meribah in Kadesh in the wilderness -of Zin. - -27:15 And Moses spake unto the LORD, saying, 27:16 Let the LORD, the -God of the spirits of all flesh, set a man over the congregation, -27:17 Which may go out before them, and which may go in before them, -and which may lead them out, and which may bring them in; that the -congregation of the LORD be not as sheep which have no shepherd. - -27:18 And the LORD said unto Moses, Take thee Joshua the son of Nun, a -man in whom is the spirit, and lay thine hand upon him; 27:19 And set -him before Eleazar the priest, and before all the congregation; and -give him a charge in their sight. - -27:20 And thou shalt put some of thine honour upon him, that all the -congregation of the children of Israel may be obedient. - -27:21 And he shall stand before Eleazar the priest, who shall ask -counsel for him after the judgment of Urim before the LORD: at his -word shall they go out, and at his word they shall come in, both he, -and all the children of Israel with him, even all the congregation. - -27:22 And Moses did as the LORD commanded him: and he took Joshua, and -set him before Eleazar the priest, and before all the congregation: -27:23 And he laid his hands upon him, and gave him a charge, as the -LORD commanded by the hand of Moses. - -28:1 And the LORD spake unto Moses, saying, 28:2 Command the children -of Israel, and say unto them, My offering, and my bread for my -sacrifices made by fire, for a sweet savour unto me, shall ye observe -to offer unto me in their due season. - -28:3 And thou shalt say unto them, This is the offering made by fire -which ye shall offer unto the LORD; two lambs of the first year -without spot day by day, for a continual burnt offering. - -28:4 The one lamb shalt thou offer in the morning, and the other lamb -shalt thou offer at even; 28:5 And a tenth part of an ephah of flour -for a meat offering, mingled with the fourth part of an hin of beaten -oil. - -28:6 It is a continual burnt offering, which was ordained in mount -Sinai for a sweet savour, a sacrifice made by fire unto the LORD. - -28:7 And the drink offering thereof shall be the fourth part of an hin -for the one lamb: in the holy place shalt thou cause the strong wine -to be poured unto the LORD for a drink offering. - -28:8 And the other lamb shalt thou offer at even: as the meat offering -of the morning, and as the drink offering thereof, thou shalt offer -it, a sacrifice made by fire, of a sweet savour unto the LORD. - -28:9 And on the sabbath day two lambs of the first year without spot, -and two tenth deals of flour for a meat offering, mingled with oil, -and the drink offering thereof: 28:10 This is the burnt offering of -every sabbath, beside the continual burnt offering, and his drink -offering. - -28:11 And in the beginnings of your months ye shall offer a burnt -offering unto the LORD; two young bullocks, and one ram, seven lambs -of the first year without spot; 28:12 And three tenth deals of flour -for a meat offering, mingled with oil, for one bullock; and two tenth -deals of flour for a meat offering, mingled with oil, for one ram; -28:13 And a several tenth deal of flour mingled with oil for a meat -offering unto one lamb; for a burnt offering of a sweet savour, a -sacrifice made by fire unto the LORD. - -28:14 And their drink offerings shall be half an hin of wine unto a -bullock, and the third part of an hin unto a ram, and a fourth part of -an hin unto a lamb: this is the burnt offering of every month -throughout the months of the year. - -28:15 And one kid of the goats for a sin offering unto the LORD shall -be offered, beside the continual burnt offering, and his drink -offering. - -28:16 And in the fourteenth day of the first month is the passover of -the LORD. - -28:17 And in the fifteenth day of this month is the feast: seven days -shall unleavened bread be eaten. - -28:18 In the first day shall be an holy convocation; ye shall do no -manner of servile work therein: 28:19 But ye shall offer a sacrifice -made by fire for a burnt offering unto the LORD; two young bullocks, -and one ram, and seven lambs of the first year: they shall be unto you -without blemish: 28:20 And their meat offering shall be of flour -mingled with oil: three tenth deals shall ye offer for a bullock, and -two tenth deals for a ram; 28:21 A several tenth deal shalt thou offer -for every lamb, throughout the seven lambs: 28:22 And one goat for a -sin offering, to make an atonement for you. - -28:23 Ye shall offer these beside the burnt offering in the morning, -which is for a continual burnt offering. - -28:24 After this manner ye shall offer daily, throughout the seven -days, the meat of the sacrifice made by fire, of a sweet savour unto -the LORD: it shall be offered beside the continual burnt offering, and -his drink offering. - -28:25 And on the seventh day ye shall have an holy convocation; ye -shall do no servile work. - -28:26 Also in the day of the firstfruits, when ye bring a new meat -offering unto the LORD, after your weeks be out, ye shall have an holy -convocation; ye shall do no servile work: 28:27 But ye shall offer the -burnt offering for a sweet savour unto the LORD; two young bullocks, -one ram, seven lambs of the first year; 28:28 And their meat offering -of flour mingled with oil, three tenth deals unto one bullock, two -tenth deals unto one ram, 28:29 A several tenth deal unto one lamb, -throughout the seven lambs; 28:30 And one kid of the goats, to make an -atonement for you. - -28:31 Ye shall offer them beside the continual burnt offering, and his -meat offering, (they shall be unto you without blemish) and their -drink offerings. - -29:1 And in the seventh month, on the first day of the month, ye shall -have an holy convocation; ye shall do no servile work: it is a day of -blowing the trumpets unto you. - -29:2 And ye shall offer a burnt offering for a sweet savour unto the -LORD; one young bullock, one ram, and seven lambs of the first year -without blemish: 29:3 And their meat offering shall be of flour -mingled with oil, three tenth deals for a bullock, and two tenth deals -for a ram, 29:4 And one tenth deal for one lamb, throughout the seven -lambs: 29:5 And one kid of the goats for a sin offering, to make an -atonement for you: 29:6 Beside the burnt offering of the month, and -his meat offering, and the daily burnt offering, and his meat -offering, and their drink offerings, according unto their manner, for -a sweet savour, a sacrifice made by fire unto the LORD. - -29:7 And ye shall have on the tenth day of this seventh month an holy -convocation; and ye shall afflict your souls: ye shall not do any work -therein: 29:8 But ye shall offer a burnt offering unto the LORD for a -sweet savour; one young bullock, one ram, and seven lambs of the first -year; they shall be unto you without blemish: 29:9 And their meat -offering shall be of flour mingled with oil, three tenth deals to a -bullock, and two tenth deals to one ram, 29:10 A several tenth deal -for one lamb, throughout the seven lambs: 29:11 One kid of the goats -for a sin offering; beside the sin offering of atonement, and the -continual burnt offering, and the meat offering of it, and their drink -offerings. - -29:12 And on the fifteenth day of the seventh month ye shall have an -holy convocation; ye shall do no servile work, and ye shall keep a -feast unto the LORD seven days: 29:13 And ye shall offer a burnt -offering, a sacrifice made by fire, of a sweet savour unto the LORD; -thirteen young bullocks, two rams, and fourteen lambs of the first -year; they shall be without blemish: 29:14 And their meat offering -shall be of flour mingled with oil, three tenth deals unto every -bullock of the thirteen bullocks, two tenth deals to each ram of the -two rams, 29:15 And a several tenth deal to each lamb of the fourteen -lambs: 29:16 And one kid of the goats for a sin offering; beside the -continual burnt offering, his meat offering, and his drink offering. - -29:17 And on the second day ye shall offer twelve young bullocks, two -rams, fourteen lambs of the first year without spot: 29:18 And their -meat offering and their drink offerings for the bullocks, for the -rams, and for the lambs, shall be according to their number, after the -manner: 29:19 And one kid of the goats for a sin offering; beside the -continual burnt offering, and the meat offering thereof, and their -drink offerings. - -29:20 And on the third day eleven bullocks, two rams, fourteen lambs -of the first year without blemish; 29:21 And their meat offering and -their drink offerings for the bullocks, for the rams, and for the -lambs, shall be according to their number, after the manner: 29:22 And -one goat for a sin offering; beside the continual burnt offering, and -his meat offering, and his drink offering. - -29:23 And on the fourth day ten bullocks, two rams, and fourteen lambs -of the first year without blemish: 29:24 Their meat offering and their -drink offerings for the bullocks, for the rams, and for the lambs, -shall be according to their number, after the manner: 29:25 And one -kid of the goats for a sin offering; beside the continual burnt -offering, his meat offering, and his drink offering. - -29:26 And on the fifth day nine bullocks, two rams, and fourteen lambs -of the first year without spot: 29:27 And their meat offering and -their drink offerings for the bullocks, for the rams, and for the -lambs, shall be according to their number, after the manner: 29:28 And -one goat for a sin offering; beside the continual burnt offering, and -his meat offering, and his drink offering. - -29:29 And on the sixth day eight bullocks, two rams, and fourteen -lambs of the first year without blemish: 29:30 And their meat offering -and their drink offerings for the bullocks, for the rams, and for the -lambs, shall be according to their number, after the manner: 29:31 And -one goat for a sin offering; beside the continual burnt offering, his -meat offering, and his drink offering. - -29:32 And on the seventh day seven bullocks, two rams, and fourteen -lambs of the first year without blemish: 29:33 And their meat offering -and their drink offerings for the bullocks, for the rams, and for the -lambs, shall be according to their number, after the manner: 29:34 And -one goat for a sin offering; beside the continual burnt offering, his -meat offering, and his drink offering. - -29:35 On the eighth day ye shall have a solemn assembly: ye shall do -no servile work therein: 29:36 But ye shall offer a burnt offering, a -sacrifice made by fire, of a sweet savour unto the LORD: one bullock, -one ram, seven lambs of the first year without blemish: 29:37 Their -meat offering and their drink offerings for the bullock, for the ram, -and for the lambs, shall be according to their number, after the -manner: 29:38 And one goat for a sin offering; beside the continual -burnt offering, and his meat offering, and his drink offering. - -29:39 These things ye shall do unto the LORD in your set feasts, -beside your vows, and your freewill offerings, for your burnt -offerings, and for your meat offerings, and for your drink offerings, -and for your peace offerings. - -29:40 And Moses told the children of Israel according to all that the -LORD commanded Moses. - -30:1 And Moses spake unto the heads of the tribes concerning the -children of Israel, saying, This is the thing which the LORD hath -commanded. - -30:2 If a man vow a vow unto the LORD, or swear an oath to bind his -soul with a bond; he shall not break his word, he shall do according -to all that proceedeth out of his mouth. - -30:3 If a woman also vow a vow unto the LORD, and bind herself by a -bond, being in her father's house in her youth; 30:4 And her father -hear her vow, and her bond wherewith she hath bound her soul, and her -father shall hold his peace at her; then all her vows shall stand, and -every bond wherewith she hath bound her soul shall stand. - -30:5 But if her father disallow her in the day that he heareth; not -any of her vows, or of her bonds wherewith she hath bound her soul, -shall stand: and the LORD shall forgive her, because her father -disallowed her. - -30:6 And if she had at all an husband, when she vowed, or uttered -ought out of her lips, wherewith she bound her soul; 30:7 And her -husband heard it, and held his peace at her in the day that he heard -it: then her vows shall stand, and her bonds wherewith she bound her -soul shall stand. - -30:8 But if her husband disallowed her on the day that he heard it; -then he shall make her vow which she vowed, and that which she uttered -with her lips, wherewith she bound her soul, of none effect: and the -LORD shall forgive her. - -30:9 But every vow of a widow, and of her that is divorced, wherewith -they have bound their souls, shall stand against her. - -30:10 And if she vowed in her husband's house, or bound her soul by a -bond with an oath; 30:11 And her husband heard it, and held his peace -at her, and disallowed her not: then all her vows shall stand, and -every bond wherewith she bound her soul shall stand. - -30:12 But if her husband hath utterly made them void on the day he -heard them; then whatsoever proceeded out of her lips concerning her -vows, or concerning the bond of her soul, shall not stand: her husband -hath made them void; and the LORD shall forgive her. - -30:13 Every vow, and every binding oath to afflict the soul, her -husband may establish it, or her husband may make it void. - -30:14 But if her husband altogether hold his peace at her from day to -day; then he establisheth all her vows, or all her bonds, which are -upon her: he confirmeth them, because he held his peace at her in the -day that he heard them. - -30:15 But if he shall any ways make them void after that he hath heard -them; then he shall bear her iniquity. - -30:16 These are the statutes, which the LORD commanded Moses, between -a man and his wife, between the father and his daughter, being yet in -her youth in her father's house. - -31:1 And the LORD spake unto Moses, saying, 31:2 Avenge the children -of Israel of the Midianites: afterward shalt thou be gathered unto thy -people. - -31:3 And Moses spake unto the people, saying, Arm some of yourselves -unto the war, and let them go against the Midianites, and avenge the -LORD of Midian. - -31:4 Of every tribe a thousand, throughout all the tribes of Israel, -shall ye send to the war. - -31:5 So there were delivered out of the thousands of Israel, a -thousand of every tribe, twelve thousand armed for war. - -31:6 And Moses sent them to the war, a thousand of every tribe, them -and Phinehas the son of Eleazar the priest, to the war, with the holy -instruments, and the trumpets to blow in his hand. - -31:7 And they warred against the Midianites, as the LORD commanded -Moses; and they slew all the males. - -31:8 And they slew the kings of Midian, beside the rest of them that -were slain; namely, Evi, and Rekem, and Zur, and Hur, and Reba, five -kings of Midian: Balaam also the son of Beor they slew with the sword. - -31:9 And the children of Israel took all the women of Midian captives, -and their little ones, and took the spoil of all their cattle, and all -their flocks, and all their goods. - -31:10 And they burnt all their cities wherein they dwelt, and all -their goodly castles, with fire. - -31:11 And they took all the spoil, and all the prey, both of men and -of beasts. - -31:12 And they brought the captives, and the prey, and the spoil, unto -Moses, and Eleazar the priest, and unto the congregation of the -children of Israel, unto the camp at the plains of Moab, which are by -Jordan near Jericho. - -31:13 And Moses, and Eleazar the priest, and all the princes of the -congregation, went forth to meet them without the camp. - -31:14 And Moses was wroth with the officers of the host, with the -captains over thousands, and captains over hundreds, which came from -the battle. - -31:15 And Moses said unto them, Have ye saved all the women alive? -31:16 Behold, these caused the children of Israel, through the counsel -of Balaam, to commit trespass against the LORD in the matter of Peor, -and there was a plague among the congregation of the LORD. - -31:17 Now therefore kill every male among the little ones, and kill -every woman that hath known man by lying with him. - -31:18 But all the women children, that have not known a man by lying -with him, keep alive for yourselves. - -31:19 And do ye abide without the camp seven days: whosoever hath -killed any person, and whosoever hath touched any slain, purify both -yourselves and your captives on the third day, and on the seventh day. - -31:20 And purify all your raiment, and all that is made of skins, and -all work of goats' hair, and all things made of wood. - -31:21 And Eleazar the priest said unto the men of war which went to -the battle, This is the ordinance of the law which the LORD commanded -Moses; 31:22 Only the gold, and the silver, the brass, the iron, the -tin, and the lead, 31:23 Every thing that may abide the fire, ye shall -make it go through the fire, and it shall be clean: nevertheless it -shall be purified with the water of separation: and all that abideth -not the fire ye shall make go through the water. - -31:24 And ye shall wash your clothes on the seventh day, and ye shall -be clean, and afterward ye shall come into the camp. - -31:25 And the LORD spake unto Moses, saying, 31:26 Take the sum of the -prey that was taken, both of man and of beast, thou, and Eleazar the -priest, and the chief fathers of the congregation: 31:27 And divide -the prey into two parts; between them that took the war upon them, who -went out to battle, and between all the congregation: 31:28 And levy a -tribute unto the Lord of the men of war which went out to battle: one -soul of five hundred, both of the persons, and of the beeves, and of -the asses, and of the sheep: 31:29 Take it of their half, and give it -unto Eleazar the priest, for an heave offering of the LORD. - -31:30 And of the children of Israel's half, thou shalt take one -portion of fifty, of the persons, of the beeves, of the asses, and of -the flocks, of all manner of beasts, and give them unto the Levites, -which keep the charge of the tabernacle of the LORD. - -31:31 And Moses and Eleazar the priest did as the LORD commanded -Moses. - -31:32 And the booty, being the rest of the prey which the men of war -had caught, was six hundred thousand and seventy thousand and five -thousand sheep, 31:33 And threescore and twelve thousand beeves, 31:34 -And threescore and one thousand asses, 31:35 And thirty and two -thousand persons in all, of women that had not known man by lying with -him. - -31:36 And the half, which was the portion of them that went out to -war, was in number three hundred thousand and seven and thirty -thousand and five hundred sheep: 31:37 And the LORD's tribute of the -sheep was six hundred and threescore and fifteen. - -31:38 And the beeves were thirty and six thousand; of which the LORD's -tribute was threescore and twelve. - -31:39 And the asses were thirty thousand and five hundred; of which -the LORD's tribute was threescore and one. - -31:40 And the persons were sixteen thousand; of which the LORD's -tribute was thirty and two persons. - -31:41 And Moses gave the tribute, which was the LORD's heave offering, -unto Eleazar the priest, as the LORD commanded Moses. - -31:42 And of the children of Israel's half, which Moses divided from -the men that warred, 31:43 (Now the half that pertained unto the -congregation was three hundred thousand and thirty thousand and seven -thousand and five hundred sheep, 31:44 And thirty and six thousand -beeves, 31:45 And thirty thousand asses and five hundred, 31:46 And -sixteen thousand persons;) 31:47 Even of the children of Israel's -half, Moses took one portion of fifty, both of man and of beast, and -gave them unto the Levites, which kept the charge of the tabernacle of -the LORD; as the LORD commanded Moses. - -31:48 And the officers which were over thousands of the host, the -captains of thousands, and captains of hundreds, came near unto Moses: -31:49 And they said unto Moses, Thy servants have taken the sum of the -men of war which are under our charge, and there lacketh not one man -of us. - -31:50 We have therefore brought an oblation for the LORD, what every -man hath gotten, of jewels of gold, chains, and bracelets, rings, -earrings, and tablets, to make an atonement for our souls before the -LORD. - -31:51 And Moses and Eleazar the priest took the gold of them, even all -wrought jewels. - -31:52 And all the gold of the offering that they offered up to the -LORD, of the captains of thousands, and of the captains of hundreds, -was sixteen thousand seven hundred and fifty shekels. - -31:53 (For the men of war had taken spoil, every man for himself.) -31:54 And Moses and Eleazar the priest took the gold of the captains -of thousands and of hundreds, and brought it into the tabernacle of -the congregation, for a memorial for the children of Israel before the -LORD. - -32:1 Now the children of Reuben and the children of Gad had a very -great multitude of cattle: and when they saw the land of Jazer, and -the land of Gilead, that, behold, the place was a place for cattle; -32:2 The children of Gad and the children of Reuben came and spake -unto Moses, and to Eleazar the priest, and unto the princes of the -congregation, saying, 32:3 Ataroth, and Dibon, and Jazer, and Nimrah, -and Heshbon, and Elealeh, and Shebam, and Nebo, and Beon, 32:4 Even -the country which the LORD smote before the congregation of Israel, is -a land for cattle, and thy servants have cattle: 32:5 Wherefore, said -they, if we have found grace in thy sight, let this land be given unto -thy servants for a possession, and bring us not over Jordan. - -32:6 And Moses said unto the children of Gad and to the children of -Reuben, Shall your brethren go to war, and shall ye sit here? 32:7 -And wherefore discourage ye the heart of the children of Israel from -going over into the land which the LORD hath given them? 32:8 Thus -did your fathers, when I sent them from Kadeshbarnea to see the land. - -32:9 For when they went up unto the valley of Eshcol, and saw the -land, they discouraged the heart of the children of Israel, that they -should not go into the land which the LORD had given them. - -32:10 And the LORD's anger was kindled the same time, and he sware, -saying, 32:11 Surely none of the men that came up out of Egypt, from -twenty years old and upward, shall see the land which I sware unto -Abraham, unto Isaac, and unto Jacob; because they have not wholly -followed me: 32:12 Save Caleb the son of Jephunneh the Kenezite, and -Joshua the son of Nun: for they have wholly followed the LORD. - -32:13 And the LORD's anger was kindled against Israel, and he made -them wander in the wilderness forty years, until all the generation, -that had done evil in the sight of the LORD, was consumed. - -32:14 And, behold, ye are risen up in your fathers' stead, an increase -of sinful men, to augment yet the fierce anger of the LORD toward -Israel. - -32:15 For if ye turn away from after him, he will yet again leave them -in the wilderness; and ye shall destroy all this people. - -32:16 And they came near unto him, and said, We will build sheepfolds -here for our cattle, and cities for our little ones: 32:17 But we -ourselves will go ready armed before the children of Israel, until we -have brought them unto their place: and our little ones shall dwell in -the fenced cities because of the inhabitants of the land. - -32:18 We will not return unto our houses, until the children of Israel -have inherited every man his inheritance. - -32:19 For we will not inherit with them on yonder side Jordan, or -forward; because our inheritance is fallen to us on this side Jordan -eastward. - -32:20 And Moses said unto them, If ye will do this thing, if ye will -go armed before the LORD to war, 32:21 And will go all of you armed -over Jordan before the LORD, until he hath driven out his enemies from -before him, 32:22 And the land be subdued before the LORD: then -afterward ye shall return, and be guiltless before the LORD, and -before Israel; and this land shall be your possession before the LORD. - -32:23 But if ye will not do so, behold, ye have sinned against the -LORD: and be sure your sin will find you out. - -32:24 Build you cities for your little ones, and folds for your sheep; -and do that which hath proceeded out of your mouth. - -32:25 And the children of Gad and the children of Reuben spake unto -Moses, saying, Thy servants will do as my lord commandeth. - -32:26 Our little ones, our wives, our flocks, and all our cattle, -shall be there in the cities of Gilead: 32:27 But thy servants will -pass over, every man armed for war, before the LORD to battle, as my -lord saith. - -32:28 So concerning them Moses commanded Eleazar the priest, and -Joshua the son of Nun, and the chief fathers of the tribes of the -children of Israel: 32:29 And Moses said unto them, If the children of -Gad and the children of Reuben will pass with you over Jordan, every -man armed to battle, before the LORD, and the land shall be subdued -before you; then ye shall give them the land of Gilead for a -possession: 32:30 But if they will not pass over with you armed, they -shall have possessions among you in the land of Canaan. - -32:31 And the children of Gad and the children of Reuben answered, -saying, As the LORD hath said unto thy servants, so will we do. - -32:32 We will pass over armed before the LORD into the land of Canaan, -that the possession of our inheritance on this side Jordan may be -ours. - -32:33 And Moses gave unto them, even to the children of Gad, and to -the children of Reuben, and unto half the tribe of Manasseh the son of -Joseph, the kingdom of Sihon king of the Amorites, and the kingdom of -Og king of Bashan, the land, with the cities thereof in the coasts, -even the cities of the country round about. - -32:34 And the children of Gad built Dibon, and Ataroth, and Aroer, -32:35 And Atroth, Shophan, and Jaazer, and Jogbehah, 32:36 And -Bethnimrah, and Bethharan, fenced cities: and folds for sheep. - -32:37 And the children of Reuben built Heshbon, and Elealeh, and -Kirjathaim, 32:38 And Nebo, and Baalmeon, (their names being changed,) -and Shibmah: and gave other names unto the cities which they builded. - -32:39 And the children of Machir the son of Manasseh went to Gilead, -and took it, and dispossessed the Amorite which was in it. - -32:40 And Moses gave Gilead unto Machir the son of Manasseh; and he -dwelt therein. - -32:41 And Jair the son of Manasseh went and took the small towns -thereof, and called them Havothjair. - -32:42 And Nobah went and took Kenath, and the villages thereof, and -called it Nobah, after his own name. - -33:1 These are the journeys of the children of Israel, which went -forth out of the land of Egypt with their armies under the hand of -Moses and Aaron. - -33:2 And Moses wrote their goings out according to their journeys by -the commandment of the LORD: and these are their journeys according to -their goings out. - -33:3 And they departed from Rameses in the first month, on the -fifteenth day of the first month; on the morrow after the passover the -children of Israel went out with an high hand in the sight of all the -Egyptians. - -33:4 For the Egyptians buried all their firstborn, which the LORD had -smitten among them: upon their gods also the LORD executed judgments. - -33:5 And the children of Israel removed from Rameses, and pitched in -Succoth. - -33:6 And they departed from Succoth, and pitched in Etham, which is in -the edge of the wilderness. - -33:7 And they removed from Etham, and turned again unto Pihahiroth, -which is before Baalzephon: and they pitched before Migdol. - -33:8 And they departed from before Pihahiroth, and passed through the -midst of the sea into the wilderness, and went three days' journey in -the wilderness of Etham, and pitched in Marah. - -33:9 And they removed from Marah, and came unto Elim: and in Elim were -twelve fountains of water, and threescore and ten palm trees; and they -pitched there. - -33:10 And they removed from Elim, and encamped by the Red sea. - -33:11 And they removed from the Red sea, and encamped in the -wilderness of Sin. - -33:12 And they took their journey out of the wilderness of Sin, and -encamped in Dophkah. - -33:13 And they departed from Dophkah, and encamped in Alush. - -33:14 And they removed from Alush, and encamped at Rephidim, where was -no water for the people to drink. - -33:15 And they departed from Rephidim, and pitched in the wilderness -of Sinai. - -33:16 And they removed from the desert of Sinai, and pitched at -Kibrothhattaavah. - -33:17 And they departed from Kibrothhattaavah, and encamped at -Hazeroth. - -33:18 And they departed from Hazeroth, and pitched in Rithmah. - -33:19 And they departed from Rithmah, and pitched at Rimmonparez. - -33:20 And they departed from Rimmonparez, and pitched in Libnah. - -33:21 And they removed from Libnah, and pitched at Rissah. - -33:22 And they journeyed from Rissah, and pitched in Kehelathah. - -33:23 And they went from Kehelathah, and pitched in mount Shapher. - -33:24 And they removed from mount Shapher, and encamped in Haradah. - -33:25 And they removed from Haradah, and pitched in Makheloth. - -33:26 And they removed from Makheloth, and encamped at Tahath. - -33:27 And they departed from Tahath, and pitched at Tarah. - -33:28 And they removed from Tarah, and pitched in Mithcah. - -33:29 And they went from Mithcah, and pitched in Hashmonah. - -33:30 And they departed from Hashmonah, and encamped at Moseroth. - -33:31 And they departed from Moseroth, and pitched in Benejaakan. - -33:32 And they removed from Benejaakan, and encamped at Horhagidgad. - -33:33 And they went from Horhagidgad, and pitched in Jotbathah. - -33:34 And they removed from Jotbathah, and encamped at Ebronah. - -33:35 And they departed from Ebronah, and encamped at Eziongaber. - -33:36 And they removed from Eziongaber, and pitched in the wilderness -of Zin, which is Kadesh. - -33:37 And they removed from Kadesh, and pitched in mount Hor, in the -edge of the land of Edom. - -33:38 And Aaron the priest went up into mount Hor at the commandment -of the LORD, and died there, in the fortieth year after the children -of Israel were come out of the land of Egypt, in the first day of the -fifth month. - -33:39 And Aaron was an hundred and twenty and three years old when he -died in mount Hor. - -33:40 And king Arad the Canaanite, which dwelt in the south in the -land of Canaan, heard of the coming of the children of Israel. - -33:41 And they departed from mount Hor, and pitched in Zalmonah. - -33:42 And they departed from Zalmonah, and pitched in Punon. - -33:43 And they departed from Punon, and pitched in Oboth. - -33:44 And they departed from Oboth, and pitched in Ijeabarim, in the -border of Moab. - -33:45 And they departed from Iim, and pitched in Dibongad. - -33:46 And they removed from Dibongad, and encamped in Almondiblathaim. - -33:47 And they removed from Almondiblathaim, and pitched in the -mountains of Abarim, before Nebo. - -33:48 And they departed from the mountains of Abarim, and pitched in -the plains of Moab by Jordan near Jericho. - -33:49 And they pitched by Jordan, from Bethjesimoth even unto -Abelshittim in the plains of Moab. - -33:50 And the LORD spake unto Moses in the plains of Moab by Jordan -near Jericho, saying, 33:51 Speak unto the children of Israel, and say -unto them, When ye are passed over Jordan into the land of Canaan; -33:52 Then ye shall drive out all the inhabitants of the land from -before you, and destroy all their pictures, and destroy all their -molten images, and quite pluck down all their high places: 33:53 And -ye shall dispossess the inhabitants of the land, and dwell therein: -for I have given you the land to possess it. - -33:54 And ye shall divide the land by lot for an inheritance among -your families: and to the more ye shall give the more inheritance, and -to the fewer ye shall give the less inheritance: every man's -inheritance shall be in the place where his lot falleth; according to -the tribes of your fathers ye shall inherit. - -33:55 But if ye will not drive out the inhabitants of the land from -before you; then it shall come to pass, that those which ye let remain -of them shall be pricks in your eyes, and thorns in your sides, and -shall vex you in the land wherein ye dwell. - -33:56 Moreover it shall come to pass, that I shall do unto you, as I -thought to do unto them. - -34:1 And the LORD spake unto Moses, saying, 34:2 Command the children -of Israel, and say unto them, When ye come into the land of Canaan; -(this is the land that shall fall unto you for an inheritance, even -the land of Canaan with the coasts thereof:) 34:3 Then your south -quarter shall be from the wilderness of Zin along by the coast of -Edom, and your south border shall be the outmost coast of the salt sea -eastward: 34:4 And your border shall turn from the south to the ascent -of Akrabbim, and pass on to Zin: and the going forth thereof shall be -from the south to Kadeshbarnea, and shall go on to Hazaraddar, and -pass on to Azmon: 34:5 And the border shall fetch a compass from Azmon -unto the river of Egypt, and the goings out of it shall be at the sea. - -34:6 And as for the western border, ye shall even have the great sea -for a border: this shall be your west border. - -34:7 And this shall be your north border: from the great sea ye shall -point out for you mount Hor: 34:8 From mount Hor ye shall point out -your border unto the entrance of Hamath; and the goings forth of the -border shall be to Zedad: 34:9 And the border shall go on to Ziphron, -and the goings out of it shall be at Hazarenan: this shall be your -north border. - -34:10 And ye shall point out your east border from Hazarenan to -Shepham: 34:11 And the coast shall go down from Shepham to Riblah, on -the east side of Ain; and the border shall descend, and shall reach -unto the side of the sea of Chinnereth eastward: 34:12 And the border -shall go down to Jordan, and the goings out of it shall be at the salt -sea: this shall be your land with the coasts thereof round about. - -34:13 And Moses commanded the children of Israel, saying, This is the -land which ye shall inherit by lot, which the LORD commanded to give -unto the nine tribes, and to the half tribe: 34:14 For the tribe of -the children of Reuben according to the house of their fathers, and -the tribe of the children of Gad according to the house of their -fathers, have received their inheritance; and half the tribe of -Manasseh have received their inheritance: 34:15 The two tribes and the -half tribe have received their inheritance on this side Jordan near -Jericho eastward, toward the sunrising. - -34:16 And the LORD spake unto Moses, saying, 34:17 These are the names -of the men which shall divide the land unto you: Eleazar the priest, -and Joshua the son of Nun. - -34:18 And ye shall take one prince of every tribe, to divide the land -by inheritance. - -34:19 And the names of the men are these: Of the tribe of Judah, Caleb -the son of Jephunneh. - -34:20 And of the tribe of the children of Simeon, Shemuel the son of -Ammihud. - -34:21 Of the tribe of Benjamin, Elidad the son of Chislon. - -34:22 And the prince of the tribe of the children of Dan, Bukki the -son of Jogli. - -34:23 The prince of the children of Joseph, for the tribe of the -children of Manasseh, Hanniel the son of Ephod. - -34:24 And the prince of the tribe of the children of Ephraim, Kemuel -the son of Shiphtan. - -34:25 And the prince of the tribe of the children of Zebulun, -Elizaphan the son of Parnach. - -34:26 And the prince of the tribe of the children of Issachar, Paltiel -the son of Azzan. - -34:27 And the prince of the tribe of the children of Asher, Ahihud the -son of Shelomi. - -34:28 And the prince of the tribe of the children of Naphtali, Pedahel -the son of Ammihud. - -34:29 These are they whom the LORD commanded to divide the inheritance -unto the children of Israel in the land of Canaan. - -35:1 And the LORD spake unto Moses in the plains of Moab by Jordan -near Jericho, saying, 35:2 Command the children of Israel, that they -give unto the Levites of the inheritance of their possession cities to -dwell in; and ye shall give also unto the Levites suburbs for the -cities round about them. - -35:3 And the cities shall they have to dwell in; and the suburbs of -them shall be for their cattle, and for their goods, and for all their -beasts. - -35:4 And the suburbs of the cities, which ye shall give unto the -Levites, shall reach from the wall of the city and outward a thousand -cubits round about. - -35:5 And ye shall measure from without the city on the east side two -thousand cubits, and on the south side two thousand cubits, and on the -west side two thousand cubits, and on the north side two thousand -cubits; and the city shall be in the midst: this shall be to them the -suburbs of the cities. - -35:6 And among the cities which ye shall give unto the Levites there -shall be six cities for refuge, which ye shall appoint for the -manslayer, that he may flee thither: and to them ye shall add forty -and two cities. - -35:7 So all the cities which ye shall give to the Levites shall be -forty and eight cities: them shall ye give with their suburbs. - -35:8 And the cities which ye shall give shall be of the possession of -the children of Israel: from them that have many ye shall give many; -but from them that have few ye shall give few: every one shall give of -his cities unto the Levites according to his inheritance which he -inheriteth. - -35:9 And the LORD spake unto Moses, saying, 35:10 Speak unto the -children of Israel, and say unto them, When ye be come over Jordan -into the land of Canaan; 35:11 Then ye shall appoint you cities to be -cities of refuge for you; that the slayer may flee thither, which -killeth any person at unawares. - -35:12 And they shall be unto you cities for refuge from the avenger; -that the manslayer die not, until he stand before the congregation in -judgment. - -35:13 And of these cities which ye shall give six cities shall ye have -for refuge. - -35:14 Ye shall give three cities on this side Jordan, and three cities -shall ye give in the land of Canaan, which shall be cities of refuge. - -35:15 These six cities shall be a refuge, both for the children of -Israel, and for the stranger, and for the sojourner among them: that -every one that killeth any person unawares may flee thither. - -35:16 And if he smite him with an instrument of iron, so that he die, -he is a murderer: the murderer shall surely be put to death. - -35:17 And if he smite him with throwing a stone, wherewith he may die, -and he die, he is a murderer: the murderer shall surely be put to -death. - -35:18 Or if he smite him with an hand weapon of wood, wherewith he may -die, and he die, he is a murderer: the murderer shall surely be put to -death. - -35:19 The revenger of blood himself shall slay the murderer: when he -meeteth him, he shall slay him. - -35:20 But if he thrust him of hatred, or hurl at him by laying of -wait, that he die; 35:21 Or in enmity smite him with his hand, that he -die: he that smote him shall surely be put to death; for he is a -murderer: the revenger of blood shall slay the murderer, when he -meeteth him. - -35:22 But if he thrust him suddenly without enmity, or have cast upon -him any thing without laying of wait, 35:23 Or with any stone, -wherewith a man may die, seeing him not, and cast it upon him, that he -die, and was not his enemy, neither sought his harm: 35:24 Then the -congregation shall judge between the slayer and the revenger of blood -according to these judgments: 35:25 And the congregation shall deliver -the slayer out of the hand of the revenger of blood, and the -congregation shall restore him to the city of his refuge, whither he -was fled: and he shall abide in it unto the death of the high priest, -which was anointed with the holy oil. - -35:26 But if the slayer shall at any time come without the border of -the city of his refuge, whither he was fled; 35:27 And the revenger of -blood find him without the borders of the city of his refuge, and the -revenger of blood kill the slayer; he shall not be guilty of blood: -35:28 Because he should have remained in the city of his refuge until -the death of the high priest: but after the death of the high priest -the slayer shall return into the land of his possession. - -35:29 So these things shall be for a statute of judgment unto you -throughout your generations in all your dwellings. - -35:30 Whoso killeth any person, the murderer shall be put to death by -the mouth of witnesses: but one witness shall not testify against any -person to cause him to die. - -35:31 Moreover ye shall take no satisfaction for the life of a -murderer, which is guilty of death: but he shall be surely put to -death. - -35:32 And ye shall take no satisfaction for him that is fled to the -city of his refuge, that he should come again to dwell in the land, -until the death of the priest. - -35:33 So ye shall not pollute the land wherein ye are: for blood it -defileth the land: and the land cannot be cleansed of the blood that -is shed therein, but by the blood of him that shed it. - -35:34 Defile not therefore the land which ye shall inhabit, wherein I -dwell: for I the LORD dwell among the children of Israel. - -36:1 And the chief fathers of the families of the children of Gilead, -the son of Machir, the son of Manasseh, of the families of the sons of -Joseph, came near, and spake before Moses, and before the princes, the -chief fathers of the children of Israel: 36:2 And they said, The LORD -commanded my lord to give the land for an inheritance by lot to the -children of Israel: and my lord was commanded by the LORD to give the -inheritance of Zelophehad our brother unto his daughters. - -36:3 And if they be married to any of the sons of the other tribes of -the children of Israel, then shall their inheritance be taken from the -inheritance of our fathers, and shall be put to the inheritance of the -tribe whereunto they are received: so shall it be taken from the lot -of our inheritance. - -36:4 And when the jubile of the children of Israel shall be, then -shall their inheritance be put unto the inheritance of the tribe -whereunto they are received: so shall their inheritance be taken away -from the inheritance of the tribe of our fathers. - -36:5 And Moses commanded the children of Israel according to the word -of the LORD, saying, The tribe of the sons of Joseph hath said well. - -36:6 This is the thing which the LORD doth command concerning the -daughters of Zelophehad, saying, Let them marry to whom they think -best; only to the family of the tribe of their father shall they -marry. - -36:7 So shall not the inheritance of the children of Israel remove -from tribe to tribe: for every one of the children of Israel shall -keep himself to the inheritance of the tribe of his fathers. - -36:8 And every daughter, that possesseth an inheritance in any tribe -of the children of Israel, shall be wife unto one of the family of the -tribe of her father, that the children of Israel may enjoy every man -the inheritance of his fathers. - -36:9 Neither shall the inheritance remove from one tribe to another -tribe; but every one of the tribes of the children of Israel shall -keep himself to his own inheritance. - -36:10 Even as the LORD commanded Moses, so did the daughters of -Zelophehad: 36:11 For Mahlah, Tirzah, and Hoglah, and Milcah, and -Noah, the daughters of Zelophehad, were married unto their father's -brothers' sons: 36:12 And they were married into the families of the -sons of Manasseh the son of Joseph, and their inheritance remained in -the tribe of the family of their father. - -36:13 These are the commandments and the judgments, which the LORD -commanded by the hand of Moses unto the children of Israel in the -plains of Moab by Jordan near Jericho. - - - - -The Fifth Book of Moses: Called Deuteronomy - - -1:1 These be the words which Moses spake unto all Israel on this side -Jordan in the wilderness, in the plain over against the Red sea, -between Paran, and Tophel, and Laban, and Hazeroth, and Dizahab. - -1:2 (There are eleven days' journey from Horeb by the way of mount -Seir unto Kadeshbarnea.) 1:3 And it came to pass in the fortieth -year, in the eleventh month, on the first day of the month, that Moses -spake unto the children of Israel, according unto all that the LORD -had given him in commandment unto them; 1:4 After he had slain Sihon -the king of the Amorites, which dwelt in Heshbon, and Og the king of -Bashan, which dwelt at Astaroth in Edrei: 1:5 On this side Jordan, in -the land of Moab, began Moses to declare this law, saying, 1:6 The -LORD our God spake unto us in Horeb, saying, Ye have dwelt long enough -in this mount: 1:7 Turn you, and take your journey, and go to the -mount of the Amorites, and unto all the places nigh thereunto, in the -plain, in the hills, and in the vale, and in the south, and by the sea -side, to the land of the Canaanites, and unto Lebanon, unto the great -river, the river Euphrates. - -1:8 Behold, I have set the land before you: go in and possess the land -which the LORD sware unto your fathers, Abraham, Isaac, and Jacob, to -give unto them and to their seed after them. - -1:9 And I spake unto you at that time, saying, I am not able to bear -you myself alone: 1:10 The LORD your God hath multiplied you, and, -behold, ye are this day as the stars of heaven for multitude. - -1:11 (The LORD God of your fathers make you a thousand times so many -more as ye are, and bless you, as he hath promised you!) 1:12 How can -I myself alone bear your cumbrance, and your burden, and your strife? -1:13 Take you wise men, and understanding, and known among your -tribes, and I will make them rulers over you. - -1:14 And ye answered me, and said, The thing which thou hast spoken is -good for us to do. - -1:15 So I took the chief of your tribes, wise men, and known, and made -them heads over you, captains over thousands, and captains over -hundreds, and captains over fifties, and captains over tens, and -officers among your tribes. - -1:16 And I charged your judges at that time, saying, Hear the causes -between your brethren, and judge righteously between every man and his -brother, and the stranger that is with him. - -1:17 Ye shall not respect persons in judgment; but ye shall hear the -small as well as the great; ye shall not be afraid of the face of man; -for the judgment is God's: and the cause that is too hard for you, -bring it unto me, and I will hear it. - -1:18 And I commanded you at that time all the things which ye should -do. - -1:19 And when we departed from Horeb, we went through all that great -and terrible wilderness, which ye saw by the way of the mountain of -the Amorites, as the LORD our God commanded us; and we came to -Kadeshbarnea. - -1:20 And I said unto you, Ye are come unto the mountain of the -Amorites, which the LORD our God doth give unto us. - -1:21 Behold, the LORD thy God hath set the land before thee: go up and -possess it, as the LORD God of thy fathers hath said unto thee; fear -not, neither be discouraged. - -1:22 And ye came near unto me every one of you, and said, We will send -men before us, and they shall search us out the land, and bring us -word again by what way we must go up, and into what cities we shall -come. - -1:23 And the saying pleased me well: and I took twelve men of you, one -of a tribe: 1:24 And they turned and went up into the mountain, and -came unto the valley of Eshcol, and searched it out. - -1:25 And they took of the fruit of the land in their hands, and -brought it down unto us, and brought us word again, and said, It is a -good land which the LORD our God doth give us. - -1:26 Notwithstanding ye would not go up, but rebelled against the -commandment of the LORD your God: 1:27 And ye murmured in your tents, -and said, Because the LORD hated us, he hath brought us forth out of -the land of Egypt, to deliver us into the hand of the Amorites, to -destroy us. - -1:28 Whither shall we go up? our brethren have discouraged our heart, -saying, The people is greater and taller than we; the cities are great -and walled up to heaven; and moreover we have seen the sons of the -Anakims there. - -1:29 Then I said unto you, Dread not, neither be afraid of them. - -1:30 The LORD your God which goeth before you, he shall fight for you, -according to all that he did for you in Egypt before your eyes; 1:31 -And in the wilderness, where thou hast seen how that the LORD thy God -bare thee, as a man doth bear his son, in all the way that ye went, -until ye came into this place. - -1:32 Yet in this thing ye did not believe the LORD your God, 1:33 Who -went in the way before you, to search you out a place to pitch your -tents in, in fire by night, to shew you by what way ye should go, and -in a cloud by day. - -1:34 And the LORD heard the voice of your words, and was wroth, and -sware, saying, 1:35 Surely there shall not one of these men of this -evil generation see that good land, which I sware to give unto your -fathers. - -1:36 Save Caleb the son of Jephunneh; he shall see it, and to him will -I give the land that he hath trodden upon, and to his children, -because he hath wholly followed the LORD. - -1:37 Also the LORD was angry with me for your sakes, saying, Thou also -shalt not go in thither. - -1:38 But Joshua the son of Nun, which standeth before thee, he shall -go in thither: encourage him: for he shall cause Israel to inherit it. - -1:39 Moreover your little ones, which ye said should be a prey, and -your children, which in that day had no knowledge between good and -evil, they shall go in thither, and unto them will I give it, and they -shall possess it. - -1:40 But as for you, turn you, and take your journey into the -wilderness by the way of the Red sea. - -1:41 Then ye answered and said unto me, We have sinned against the -LORD, we will go up and fight, according to all that the LORD our God -commanded us. - -And when ye had girded on every man his weapons of war, ye were ready -to go up into the hill. - -1:42 And the LORD said unto me, Say unto them. Go not up, neither -fight; for I am not among you; lest ye be smitten before your enemies. - -1:43 So I spake unto you; and ye would not hear, but rebelled against -the commandment of the LORD, and went presumptuously up into the hill. - -1:44 And the Amorites, which dwelt in that mountain, came out against -you, and chased you, as bees do, and destroyed you in Seir, even unto -Hormah. - -1:45 And ye returned and wept before the LORD; but the LORD would not -hearken to your voice, nor give ear unto you. - -1:46 So ye abode in Kadesh many days, according unto the days that ye -abode there. - -2:1 Then we turned, and took our journey into the wilderness by the -way of the Red sea, as the LORD spake unto me: and we compassed mount -Seir many days. - -2:2 And the LORD spake unto me, saying, 2:3 Ye have compassed this -mountain long enough: turn you northward. - -2:4 And command thou the people, saying, Ye are to pass through the -coast of your brethren the children of Esau, which dwell in Seir; and -they shall be afraid of you: take ye good heed unto yourselves -therefore: 2:5 Meddle not with them; for I will not give you of their -land, no, not so much as a foot breadth; because I have given mount -Seir unto Esau for a possession. - -2:6 Ye shall buy meat of them for money, that ye may eat; and ye shall -also buy water of them for money, that ye may drink. - -2:7 For the LORD thy God hath blessed thee in all the works of thy -hand: he knoweth thy walking through this great wilderness: these -forty years the LORD thy God hath been with thee; thou hast lacked -nothing. - -2:8 And when we passed by from our brethren the children of Esau, -which dwelt in Seir, through the way of the plain from Elath, and from -Eziongaber, we turned and passed by the way of the wilderness of Moab. - -2:9 And the LORD said unto me, Distress not the Moabites, neither -contend with them in battle: for I will not give thee of their land -for a possession; because I have given Ar unto the children of Lot for -a possession. - -2:10 The Emims dwelt therein in times past, a people great, and many, -and tall, as the Anakims; 2:11 Which also were accounted giants, as -the Anakims; but the Moabites called them Emims. - -2:12 The Horims also dwelt in Seir beforetime; but the children of -Esau succeeded them, when they had destroyed them from before them, -and dwelt in their stead; as Israel did unto the land of his -possession, which the LORD gave unto them. - -2:13 Now rise up, said I, and get you over the brook Zered. And we -went over the brook Zered. - -2:14 And the space in which we came from Kadeshbarnea, until we were -come over the brook Zered, was thirty and eight years; until all the -generation of the men of war were wasted out from among the host, as -the LORD sware unto them. - -2:15 For indeed the hand of the LORD was against them, to destroy them -from among the host, until they were consumed. - -2:16 So it came to pass, when all the men of war were consumed and -dead from among the people, 2:17 That the LORD spake unto me, saying, -2:18 Thou art to pass over through Ar, the coast of Moab, this day: -2:19 And when thou comest nigh over against the children of Ammon, -distress them not, nor meddle with them: for I will not give thee of -the land of the children of Ammon any possession; because I have given -it unto the children of Lot for a possession. - -2:20 (That also was accounted a land of giants: giants dwelt therein -in old time; and the Ammonites call them Zamzummims; 2:21 A people -great, and many, and tall, as the Anakims; but the LORD destroyed them -before them; and they succeeded them, and dwelt in their stead: 2:22 -As he did to the children of Esau, which dwelt in Seir, when he -destroyed the Horims from before them; and they succeeded them, and -dwelt in their stead even unto this day: 2:23 And the Avims which -dwelt in Hazerim, even unto Azzah, the Caphtorims, which came forth -out of Caphtor, destroyed them, and dwelt in their stead.) 2:24 Rise -ye up, take your journey, and pass over the river Arnon: behold, I -have given into thine hand Sihon the Amorite, king of Heshbon, and his -land: begin to possess it, and contend with him in battle. - -2:25 This day will I begin to put the dread of thee and the fear of -thee upon the nations that are under the whole heaven, who shall hear -report of thee, and shall tremble, and be in anguish because of thee. - -2:26 And I sent messengers out of the wilderness of Kedemoth unto -Sihon king of Heshbon with words of peace, saying, 2:27 Let me pass -through thy land: I will go along by the high way, I will neither turn -unto the right hand nor to the left. - -2:28 Thou shalt sell me meat for money, that I may eat; and give me -water for money, that I may drink: only I will pass through on my -feet; 2:29 (As the children of Esau which dwell in Seir, and the -Moabites which dwell in Ar, did unto me;) until I shall pass over -Jordan into the land which the LORD our God giveth us. - -2:30 But Sihon king of Heshbon would not let us pass by him: for the -LORD thy God hardened his spirit, and made his heart obstinate, that -he might deliver him into thy hand, as appeareth this day. - -2:31 And the LORD said unto me, Behold, I have begun to give Sihon and -his land before thee: begin to possess, that thou mayest inherit his -land. - -2:32 Then Sihon came out against us, he and all his people, to fight -at Jahaz. - -2:33 And the LORD our God delivered him before us; and we smote him, -and his sons, and all his people. - -2:34 And we took all his cities at that time, and utterly destroyed -the men, and the women, and the little ones, of every city, we left -none to remain: 2:35 Only the cattle we took for a prey unto -ourselves, and the spoil of the cities which we took. - -2:36 From Aroer, which is by the brink of the river of Arnon, and from -the city that is by the river, even unto Gilead, there was not one -city too strong for us: the LORD our God delivered all unto us: 2:37 -Only unto the land of the children of Ammon thou camest not, nor unto -any place of the river Jabbok, nor unto the cities in the mountains, -nor unto whatsoever the LORD our God forbad us. - -3:1 Then we turned, and went up the way to Bashan: and Og the king of -Bashan came out against us, he and all his people, to battle at Edrei. - -3:2 And the LORD said unto me, Fear him not: for I will deliver him, -and all his people, and his land, into thy hand; and thou shalt do -unto him as thou didst unto Sihon king of the Amorites, which dwelt at -Heshbon. - -3:3 So the LORD our God delivered into our hands Og also, the king of -Bashan, and all his people: and we smote him until none was left to -him remaining. - -3:4 And we took all his cities at that time, there was not a city -which we took not from them, threescore cities, all the region of -Argob, the kingdom of Og in Bashan. - -3:5 All these cities were fenced with high walls, gates, and bars; -beside unwalled towns a great many. - -3:6 And we utterly destroyed them, as we did unto Sihon king of -Heshbon, utterly destroying the men, women, and children, of every -city. - -3:7 But all the cattle, and the spoil of the cities, we took for a -prey to ourselves. - -3:8 And we took at that time out of the hand of the two kings of the -Amorites the land that was on this side Jordan, from the river of -Arnon unto mount Hermon; 3:9 (Which Hermon the Sidonians call Sirion; -and the Amorites call it Shenir;) 3:10 All the cities of the plain, -and all Gilead, and all Bashan, unto Salchah and Edrei, cities of the -kingdom of Og in Bashan. - -3:11 For only Og king of Bashan remained of the remnant of giants; -behold his bedstead was a bedstead of iron; is it not in Rabbath of -the children of Ammon? nine cubits was the length thereof, and four -cubits the breadth of it, after the cubit of a man. - -3:12 And this land, which we possessed at that time, from Aroer, which -is by the river Arnon, and half mount Gilead, and the cities thereof, -gave I unto the Reubenites and to the Gadites. - -3:13 And the rest of Gilead, and all Bashan, being the kingdom of Og, -gave I unto the half tribe of Manasseh; all the region of Argob, with -all Bashan, which was called the land of giants. - -3:14 Jair the son of Manasseh took all the country of Argob unto the -coasts of Geshuri and Maachathi; and called them after his own name, -Bashanhavothjair, unto this day. - -3:15 And I gave Gilead unto Machir. - -3:16 And unto the Reubenites and unto the Gadites I gave from Gilead -even unto the river Arnon half the valley, and the border even unto -the river Jabbok, which is the border of the children of Ammon; 3:17 -The plain also, and Jordan, and the coast thereof, from Chinnereth -even unto the sea of the plain, even the salt sea, under Ashdothpisgah -eastward. - -3:18 And I commanded you at that time, saying, The LORD your God hath -given you this land to possess it: ye shall pass over armed before -your brethren the children of Israel, all that are meet for the war. - -3:19 But your wives, and your little ones, and your cattle, (for I -know that ye have much cattle,) shall abide in your cities which I -have given you; 3:20 Until the LORD have given rest unto your -brethren, as well as unto you, and until they also possess the land -which the LORD your God hath given them beyond Jordan: and then shall -ye return every man unto his possession, which I have given you. - -3:21 And I commanded Joshua at that time, saying, Thine eyes have seen -all that the LORD your God hath done unto these two kings: so shall -the LORD do unto all the kingdoms whither thou passest. - -3:22 Ye shall not fear them: for the LORD your God he shall fight for -you. - -3:23 And I besought the LORD at that time, saying, 3:24 O Lord GOD, -thou hast begun to shew thy servant thy greatness, and thy mighty -hand: for what God is there in heaven or in earth, that can do -according to thy works, and according to thy might? 3:25 I pray thee, -let me go over, and see the good land that is beyond Jordan, that -goodly mountain, and Lebanon. - -3:26 But the LORD was wroth with me for your sakes, and would not hear -me: and the LORD said unto me, Let it suffice thee; speak no more unto -me of this matter. - -3:27 Get thee up into the top of Pisgah, and lift up thine eyes -westward, and northward, and southward, and eastward, and behold it -with thine eyes: for thou shalt not go over this Jordan. - -3:28 But charge Joshua, and encourage him, and strengthen him: for he -shall go over before this people, and he shall cause them to inherit -the land which thou shalt see. - -3:29 So we abode in the valley over against Bethpeor. - -4:1 Now therefore hearken, O Israel, unto the statutes and unto the -judgments, which I teach you, for to do them, that ye may live, and go -in and possess the land which the LORD God of your fathers giveth you. - -4:2 Ye shall not add unto the word which I command you, neither shall -ye diminish ought from it, that ye may keep the commandments of the -LORD your God which I command you. - -4:3 Your eyes have seen what the LORD did because of Baalpeor: for all -the men that followed Baalpeor, the LORD thy God hath destroyed them -from among you. - -4:4 But ye that did cleave unto the LORD your God are alive every one -of you this day. - -4:5 Behold, I have taught you statutes and judgments, even as the LORD -my God commanded me, that ye should do so in the land whither ye go to -possess it. - -4:6 Keep therefore and do them; for this is your wisdom and your -understanding in the sight of the nations, which shall hear all these -statutes, and say, Surely this great nation is a wise and -understanding people. - -4:7 For what nation is there so great, who hath God so nigh unto them, -as the LORD our God is in all things that we call upon him for? 4:8 -And what nation is there so great, that hath statutes and judgments so -righteous as all this law, which I set before you this day? 4:9 Only -take heed to thyself, and keep thy soul diligently, lest thou forget -the things which thine eyes have seen, and lest they depart from thy -heart all the days of thy life: but teach them thy sons, and thy sons' -sons; 4:10 Specially the day that thou stoodest before the LORD thy -God in Horeb, when the LORD said unto me, Gather me the people -together, and I will make them hear my words, that they may learn to -fear me all the days that they shall live upon the earth, and that -they may teach their children. - -4:11 And ye came near and stood under the mountain; and the mountain -burned with fire unto the midst of heaven, with darkness, clouds, and -thick darkness. - -4:12 And the LORD spake unto you out of the midst of the fire: ye -heard the voice of the words, but saw no similitude; only ye heard a -voice. - -4:13 And he declared unto you his covenant, which he commanded you to -perform, even ten commandments; and he wrote them upon two tables of -stone. - -4:14 And the LORD commanded me at that time to teach you statutes and -judgments, that ye might do them in the land whither ye go over to -possess it. - -4:15 Take ye therefore good heed unto yourselves; for ye saw no manner -of similitude on the day that the LORD spake unto you in Horeb out of -the midst of the fire: 4:16 Lest ye corrupt yourselves, and make you a -graven image, the similitude of any figure, the likeness of male or -female, 4:17 The likeness of any beast that is on the earth, the -likeness of any winged fowl that flieth in the air, 4:18 The likeness -of any thing that creepeth on the ground, the likeness of any fish -that is in the waters beneath the earth: 4:19 And lest thou lift up -thine eyes unto heaven, and when thou seest the sun, and the moon, and -the stars, even all the host of heaven, shouldest be driven to worship -them, and serve them, which the LORD thy God hath divided unto all -nations under the whole heaven. - -4:20 But the LORD hath taken you, and brought you forth out of the -iron furnace, even out of Egypt, to be unto him a people of -inheritance, as ye are this day. - -4:21 Furthermore the LORD was angry with me for your sakes, and sware -that I should not go over Jordan, and that I should not go in unto -that good land, which the LORD thy God giveth thee for an inheritance: -4:22 But I must die in this land, I must not go over Jordan: but ye -shall go over, and possess that good land. - -4:23 Take heed unto yourselves, lest ye forget the covenant of the -LORD your God, which he made with you, and make you a graven image, or -the likeness of any thing, which the LORD thy God hath forbidden thee. - -4:24 For the LORD thy God is a consuming fire, even a jealous God. - -4:25 When thou shalt beget children, and children's children, and ye -shall have remained long in the land, and shall corrupt yourselves, -and make a graven image, or the likeness of any thing, and shall do -evil in the sight of the LORD thy God, to provoke him to anger: 4:26 I -call heaven and earth to witness against you this day, that ye shall -soon utterly perish from off the land whereunto ye go over Jordan to -possess it; ye shall not prolong your days upon it, but shall utterly -be destroyed. - -4:27 And the LORD shall scatter you among the nations, and ye shall be -left few in number among the heathen, whither the LORD shall lead you. - -4:28 And there ye shall serve gods, the work of men's hands, wood and -stone, which neither see, nor hear, nor eat, nor smell. - -4:29 But if from thence thou shalt seek the LORD thy God, thou shalt -find him, if thou seek him with all thy heart and with all thy soul. - -4:30 When thou art in tribulation, and all these things are come upon -thee, even in the latter days, if thou turn to the LORD thy God, and -shalt be obedient unto his voice; 4:31 (For the LORD thy God is a -merciful God;) he will not forsake thee, neither destroy thee, nor -forget the covenant of thy fathers which he sware unto them. - -4:32 For ask now of the days that are past, which were before thee, -since the day that God created man upon the earth, and ask from the -one side of heaven unto the other, whether there hath been any such -thing as this great thing is, or hath been heard like it? 4:33 Did -ever people hear the voice of God speaking out of the midst of the -fire, as thou hast heard, and live? 4:34 Or hath God assayed to go -and take him a nation from the midst of another nation, by -temptations, by signs, and by wonders, and by war, and by a mighty -hand, and by a stretched out arm, and by great terrors, according to -all that the LORD your God did for you in Egypt before your eyes? -4:35 Unto thee it was shewed, that thou mightest know that the LORD he -is God; there is none else beside him. - -4:36 Out of heaven he made thee to hear his voice, that he might -instruct thee: and upon earth he shewed thee his great fire; and thou -heardest his words out of the midst of the fire. - -4:37 And because he loved thy fathers, therefore he chose their seed -after them, and brought thee out in his sight with his mighty power -out of Egypt; 4:38 To drive out nations from before thee greater and -mightier than thou art, to bring thee in, to give thee their land for -an inheritance, as it is this day. - -4:39 Know therefore this day, and consider it in thine heart, that the -LORD he is God in heaven above, and upon the earth beneath: there is -none else. - -4:40 Thou shalt keep therefore his statutes, and his commandments, -which I command thee this day, that it may go well with thee, and with -thy children after thee, and that thou mayest prolong thy days upon -the earth, which the LORD thy God giveth thee, for ever. - -4:41 Then Moses severed three cities on this side Jordan toward the -sunrising; 4:42 That the slayer might flee thither, which should kill -his neighbour unawares, and hated him not in times past; and that -fleeing unto one of these cities he might live: 4:43 Namely, Bezer in -the wilderness, in the plain country, of the Reubenites; and Ramoth in -Gilead, of the Gadites; and Golan in Bashan, of the Manassites. - -4:44 And this is the law which Moses set before the children of -Israel: 4:45 These are the testimonies, and the statutes, and the -judgments, which Moses spake unto the children of Israel, after they -came forth out of Egypt. - -4:46 On this side Jordan, in the valley over against Bethpeor, in the -land of Sihon king of the Amorites, who dwelt at Heshbon, whom Moses -and the children of Israel smote, after they were come forth out of -Egypt: 4:47 And they possessed his land, and the land of Og king of -Bashan, two kings of the Amorites, which were on this side Jordan -toward the sunrising; 4:48 From Aroer, which is by the bank of the -river Arnon, even unto mount Sion, which is Hermon, 4:49 And all the -plain on this side Jordan eastward, even unto the sea of the plain, -under the springs of Pisgah. - -5:1 And Moses called all Israel, and said unto them, Hear, O Israel, -the statutes and judgments which I speak in your ears this day, that -ye may learn them, and keep, and do them. - -5:2 The LORD our God made a covenant with us in Horeb. - -5:3 The LORD made not this covenant with our fathers, but with us, -even us, who are all of us here alive this day. - -5:4 The LORD talked with you face to face in the mount out of the -midst of the fire, 5:5 (I stood between the LORD and you at that time, -to shew you the word of the LORD: for ye were afraid by reason of the -fire, and went not up into the mount;) saying, 5:6 I am the LORD thy -God, which brought thee out of the land of Egypt, from the house of -bondage. - -5:7 Thou shalt have none other gods before me. - -5:8 Thou shalt not make thee any graven image, or any likeness of any -thing that is in heaven above, or that is in the earth beneath, or -that is in the waters beneath the earth: 5:9 Thou shalt not bow down -thyself unto them, nor serve them: for I the LORD thy God am a jealous -God, visiting the iniquity of the fathers upon the children unto the -third and fourth generation of them that hate me, 5:10 And shewing -mercy unto thousands of them that love me and keep my commandments. - -5:11 Thou shalt not take the name of the LORD thy God in vain: for the -LORD will not hold him guiltless that taketh his name in vain. - -5:12 Keep the sabbath day to sanctify it, as the LORD thy God hath -commanded thee. - -5:13 Six days thou shalt labour, and do all thy work: 5:14 But the -seventh day is the sabbath of the LORD thy God: in it thou shalt not -do any work, thou, nor thy son, nor thy daughter, nor thy manservant, -nor thy maidservant, nor thine ox, nor thine ass, nor any of thy -cattle, nor thy stranger that is within thy gates; that thy manservant -and thy maidservant may rest as well as thou. - -5:15 And remember that thou wast a servant in the land of Egypt, and -that the LORD thy God brought thee out thence through a mighty hand -and by a stretched out arm: therefore the LORD thy God commanded thee -to keep the sabbath day. - -5:16 Honour thy father and thy mother, as the LORD thy God hath -commanded thee; that thy days may be prolonged, and that it may go -well with thee, in the land which the LORD thy God giveth thee. - -5:17 Thou shalt not kill. - -5:18 Neither shalt thou commit adultery. - -5:19 Neither shalt thou steal. - -5:20 Neither shalt thou bear false witness against thy neighbour. - -5:21 Neither shalt thou desire thy neighbour's wife, neither shalt -thou covet thy neighbour's house, his field, or his manservant, or his -maidservant, his ox, or his ass, or any thing that is thy neighbour's. - -5:22 These words the LORD spake unto all your assembly in the mount -out of the midst of the fire, of the cloud, and of the thick darkness, -with a great voice: and he added no more. And he wrote them in two -tables of stone, and delivered them unto me. - -5:23 And it came to pass, when ye heard the voice out of the midst of -the darkness, (for the mountain did burn with fire,) that ye came near -unto me, even all the heads of your tribes, and your elders; 5:24 And -ye said, Behold, the LORD our God hath shewed us his glory and his -greatness, and we have heard his voice out of the midst of the fire: -we have seen this day that God doth talk with man, and he liveth. - -5:25 Now therefore why should we die? for this great fire will consume -us: if we hear the voice of the LORD our God any more, then we shall -die. - -5:26 For who is there of all flesh, that hath heard the voice of the -living God speaking out of the midst of the fire, as we have, and -lived? 5:27 Go thou near, and hear all that the LORD our God shall -say: and speak thou unto us all that the LORD our God shall speak unto -thee; and we will hear it, and do it. - -5:28 And the LORD heard the voice of your words, when ye spake unto -me; and the LORD said unto me, I have heard the voice of the words of -this people, which they have spoken unto thee: they have well said all -that they have spoken. - -5:29 O that there were such an heart in them, that they would fear me, -and keep all my commandments always, that it might be well with them, -and with their children for ever! 5:30 Go say to them, Get you into -your tents again. - -5:31 But as for thee, stand thou here by me, and I will speak unto -thee all the commandments, and the statutes, and the judgments, which -thou shalt teach them, that they may do them in the land which I give -them to possess it. - -5:32 Ye shall observe to do therefore as the LORD your God hath -commanded you: ye shall not turn aside to the right hand or to the -left. - -5:33 Ye shall walk in all the ways which the LORD your God hath -commanded you, that ye may live, and that it may be well with you, and -that ye may prolong your days in the land which ye shall possess. - -6:1 Now these are the commandments, the statutes, and the judgments, -which the LORD your God commanded to teach you, that ye might do them -in the land whither ye go to possess it: 6:2 That thou mightest fear -the LORD thy God, to keep all his statutes and his commandments, which -I command thee, thou, and thy son, and thy son's son, all the days of -thy life; and that thy days may be prolonged. - -6:3 Hear therefore, O Israel, and observe to do it; that it may be -well with thee, and that ye may increase mightily, as the LORD God of -thy fathers hath promised thee, in the land that floweth with milk and -honey. - -6:4 Hear, O Israel: The LORD our God is one LORD: 6:5 And thou shalt -love the LORD thy God with all thine heart, and with all thy soul, and -with all thy might. - -6:6 And these words, which I command thee this day, shall be in thine -heart: 6:7 And thou shalt teach them diligently unto thy children, and -shalt talk of them when thou sittest in thine house, and when thou -walkest by the way, and when thou liest down, and when thou risest up. - -6:8 And thou shalt bind them for a sign upon thine hand, and they -shall be as frontlets between thine eyes. - -6:9 And thou shalt write them upon the posts of thy house, and on thy -gates. - -6:10 And it shall be, when the LORD thy God shall have brought thee -into the land which he sware unto thy fathers, to Abraham, to Isaac, -and to Jacob, to give thee great and goodly cities, which thou -buildedst not, 6:11 And houses full of all good things, which thou -filledst not, and wells digged, which thou diggedst not, vineyards and -olive trees, which thou plantedst not; when thou shalt have eaten and -be full; 6:12 Then beware lest thou forget the LORD, which brought -thee forth out of the land of Egypt, from the house of bondage. - -6:13 Thou shalt fear the LORD thy God, and serve him, and shalt swear -by his name. - -6:14 Ye shall not go after other gods, of the gods of the people which -are round about you; 6:15 (For the LORD thy God is a jealous God among -you) lest the anger of the LORD thy God be kindled against thee, and -destroy thee from off the face of the earth. - -6:16 Ye shall not tempt the LORD your God, as ye tempted him in -Massah. - -6:17 Ye shall diligently keep the commandments of the LORD your God, -and his testimonies, and his statutes, which he hath commanded thee. - -6:18 And thou shalt do that which is right and good in the sight of -the LORD: that it may be well with thee, and that thou mayest go in -and possess the good land which the LORD sware unto thy fathers. - -6:19 To cast out all thine enemies from before thee, as the LORD hath -spoken. - -6:20 And when thy son asketh thee in time to come, saying, What mean -the testimonies, and the statutes, and the judgments, which the LORD -our God hath commanded you? 6:21 Then thou shalt say unto thy son, We -were Pharaoh's bondmen in Egypt; and the LORD brought us out of Egypt -with a mighty hand: 6:22 And the LORD shewed signs and wonders, great -and sore, upon Egypt, upon Pharaoh, and upon all his household, before -our eyes: 6:23 And he brought us out from thence, that he might bring -us in, to give us the land which he sware unto our fathers. - -6:24 And the LORD commanded us to do all these statutes, to fear the -LORD our God, for our good always, that he might preserve us alive, as -it is at this day. - -6:25 And it shall be our righteousness, if we observe to do all these -commandments before the LORD our God, as he hath commanded us. - -7:1 When the LORD thy God shall bring thee into the land whither thou -goest to possess it, and hath cast out many nations before thee, the -Hittites, and the Girgashites, and the Amorites, and the Canaanites, -and the Perizzites, and the Hivites, and the Jebusites, seven nations -greater and mightier than thou; 7:2 And when the LORD thy God shall -deliver them before thee; thou shalt smite them, and utterly destroy -them; thou shalt make no covenant with them, nor shew mercy unto them: -7:3 Neither shalt thou make marriages with them; thy daughter thou -shalt not give unto his son, nor his daughter shalt thou take unto thy -son. - -7:4 For they will turn away thy son from following me, that they may -serve other gods: so will the anger of the LORD be kindled against -you, and destroy thee suddenly. - -7:5 But thus shall ye deal with them; ye shall destroy their altars, -and break down their images, and cut down their groves, and burn their -graven images with fire. - -7:6 For thou art an holy people unto the LORD thy God: the LORD thy -God hath chosen thee to be a special people unto himself, above all -people that are upon the face of the earth. - -7:7 The LORD did not set his love upon you, nor choose you, because ye -were more in number than any people; for ye were the fewest of all -people: 7:8 But because the LORD loved you, and because he would keep -the oath which he had sworn unto your fathers, hath the LORD brought -you out with a mighty hand, and redeemed you out of the house of -bondmen, from the hand of Pharaoh king of Egypt. - -7:9 Know therefore that the LORD thy God, he is God, the faithful God, -which keepeth covenant and mercy with them that love him and keep his -commandments to a thousand generations; 7:10 And repayeth them that -hate him to their face, to destroy them: he will not be slack to him -that hateth him, he will repay him to his face. - -7:11 Thou shalt therefore keep the commandments, and the statutes, and -the judgments, which I command thee this day, to do them. - -7:12 Wherefore it shall come to pass, if ye hearken to these -judgments, and keep, and do them, that the LORD thy God shall keep -unto thee the covenant and the mercy which he sware unto thy fathers: -7:13 And he will love thee, and bless thee, and multiply thee: he will -also bless the fruit of thy womb, and the fruit of thy land, thy corn, -and thy wine, and thine oil, the increase of thy kine, and the flocks -of thy sheep, in the land which he sware unto thy fathers to give -thee. - -7:14 Thou shalt be blessed above all people: there shall not be male -or female barren among you, or among your cattle. - -7:15 And the LORD will take away from thee all sickness, and will put -none of the evil diseases of Egypt, which thou knowest, upon thee; but -will lay them upon all them that hate thee. - -7:16 And thou shalt consume all the people which the LORD thy God -shall deliver thee; thine eye shall have no pity upon them: neither -shalt thou serve their gods; for that will be a snare unto thee. - -7:17 If thou shalt say in thine heart, These nations are more than I; -how can I dispossess them? 7:18 Thou shalt not be afraid of them: but -shalt well remember what the LORD thy God did unto Pharaoh, and unto -all Egypt; 7:19 The great temptations which thine eyes saw, and the -signs, and the wonders, and the mighty hand, and the stretched out -arm, whereby the LORD thy God brought thee out: so shall the LORD thy -God do unto all the people of whom thou art afraid. - -7:20 Moreover the LORD thy God will send the hornet among them, until -they that are left, and hide themselves from thee, be destroyed. - -7:21 Thou shalt not be affrighted at them: for the LORD thy God is -among you, a mighty God and terrible. - -7:22 And the LORD thy God will put out those nations before thee by -little and little: thou mayest not consume them at once, lest the -beasts of the field increase upon thee. - -7:23 But the LORD thy God shall deliver them unto thee, and shall -destroy them with a mighty destruction, until they be destroyed. - -7:24 And he shall deliver their kings into thine hand, and thou shalt -destroy their name from under heaven: there shall no man be able to -stand before thee, until thou have destroyed them. - -7:25 The graven images of their gods shall ye burn with fire: thou -shalt not desire the silver or gold that is on them, nor take it unto -thee, lest thou be snared therin: for it is an abomination to the LORD -thy God. - -7:26 Neither shalt thou bring an abomination into thine house, lest -thou be a cursed thing like it: but thou shalt utterly detest it, and -thou shalt utterly abhor it; for it is a cursed thing. - -8:1 All the commandments which I command thee this day shall ye -observe to do, that ye may live, and multiply, and go in and possess -the land which the LORD sware unto your fathers. - -8:2 And thou shalt remember all the way which the LORD thy God led -thee these forty years in the wilderness, to humble thee, and to prove -thee, to know what was in thine heart, whether thou wouldest keep his -commandments, or no. - -8:3 And he humbled thee, and suffered thee to hunger, and fed thee -with manna, which thou knewest not, neither did thy fathers know; that -he might make thee know that man doth not live by bread only, but by -every word that proceedeth out of the mouth of the LORD doth man live. - -8:4 Thy raiment waxed not old upon thee, neither did thy foot swell, -these forty years. - -8:5 Thou shalt also consider in thine heart, that, as a man chasteneth -his son, so the LORD thy God chasteneth thee. - -8:6 Therefore thou shalt keep the commandments of the LORD thy God, to -walk in his ways, and to fear him. - -8:7 For the LORD thy God bringeth thee into a good land, a land of -brooks of water, of fountains and depths that spring out of valleys -and hills; 8:8 A land of wheat, and barley, and vines, and fig trees, -and pomegranates; a land of oil olive, and honey; 8:9 A land wherein -thou shalt eat bread without scarceness, thou shalt not lack any thing -in it; a land whose stones are iron, and out of whose hills thou -mayest dig brass. - -8:10 When thou hast eaten and art full, then thou shalt bless the LORD -thy God for the good land which he hath given thee. - -8:11 Beware that thou forget not the LORD thy God, in not keeping his -commandments, and his judgments, and his statutes, which I command -thee this day: 8:12 Lest when thou hast eaten and art full, and hast -built goodly houses, and dwelt therein; 8:13 And when thy herds and -thy flocks multiply, and thy silver and thy gold is multiplied, and -all that thou hast is multiplied; 8:14 Then thine heart be lifted up, -and thou forget the LORD thy God, which brought thee forth out of the -land of Egypt, from the house of bondage; 8:15 Who led thee through -that great and terrible wilderness, wherein were fiery serpents, and -scorpions, and drought, where there was no water; who brought thee -forth water out of the rock of flint; 8:16 Who fed thee in the -wilderness with manna, which thy fathers knew not, that he might -humble thee, and that he might prove thee, to do thee good at thy -latter end; 8:17 And thou say in thine heart, My power and the might -of mine hand hath gotten me this wealth. - -8:18 But thou shalt remember the LORD thy God: for it is he that -giveth thee power to get wealth, that he may establish his covenant -which he sware unto thy fathers, as it is this day. - -8:19 And it shall be, if thou do at all forget the LORD thy God, and -walk after other gods, and serve them, and worship them, I testify -against you this day that ye shall surely perish. - -8:20 As the nations which the LORD destroyeth before your face, so -shall ye perish; because ye would not be obedient unto the voice of -the LORD your God. - -9:1 Hear, O Israel: Thou art to pass over Jordan this day, to go in to -possess nations greater and mightier than thyself, cities great and -fenced up to heaven, 9:2 A people great and tall, the children of the -Anakims, whom thou knowest, and of whom thou hast heard say, Who can -stand before the children of Anak! 9:3 Understand therefore this day, -that the LORD thy God is he which goeth over before thee; as a -consuming fire he shall destroy them, and he shall bring them down -before thy face: so shalt thou drive them out, and destroy them -quickly, as the LORD hath said unto thee. - -9:4 Speak not thou in thine heart, after that the LORD thy God hath -cast them out from before thee, saying, For my righteousness the LORD -hath brought me in to possess this land: but for the wickedness of -these nations the LORD doth drive them out from before thee. - -9:5 Not for thy righteousness, or for the uprightness of thine heart, -dost thou go to possess their land: but for the wickedness of these -nations the LORD thy God doth drive them out from before thee, and -that he may perform the word which the LORD sware unto thy fathers, -Abraham, Isaac, and Jacob. - -9:6 Understand therefore, that the LORD thy God giveth thee not this -good land to possess it for thy righteousness; for thou art a -stiffnecked people. - -9:7 Remember, and forget not, how thou provokedst the LORD thy God to -wrath in the wilderness: from the day that thou didst depart out of -the land of Egypt, until ye came unto this place, ye have been -rebellious against the LORD. - -9:8 Also in Horeb ye provoked the LORD to wrath, so that the LORD was -angry with you to have destroyed you. - -9:9 When I was gone up into the mount to receive the tables of stone, -even the tables of the covenant which the LORD made with you, then I -abode in the mount forty days and forty nights, I neither did eat -bread nor drink water: 9:10 And the LORD delivered unto me two tables -of stone written with the finger of God; and on them was written -according to all the words, which the LORD spake with you in the mount -out of the midst of the fire in the day of the assembly. - -9:11 And it came to pass at the end of forty days and forty nights, -that the LORD gave me the two tables of stone, even the tables of the -covenant. - -9:12 And the LORD said unto me, Arise, get thee down quickly from -hence; for thy people which thou hast brought forth out of Egypt have -corrupted themselves; they are quickly turned aside out of the way -which I commanded them; they have made them a molten image. - -9:13 Furthermore the LORD spake unto me, saying, I have seen this -people, and, behold, it is a stiffnecked people: 9:14 Let me alone, -that I may destroy them, and blot out their name from under heaven: -and I will make of thee a nation mightier and greater than they. - -9:15 So I turned and came down from the mount, and the mount burned -with fire: and the two tables of the covenant were in my two hands. - -9:16 And I looked, and, behold, ye had sinned against the LORD your -God, and had made you a molten calf: ye had turned aside quickly out -of the way which the LORD had commanded you. - -9:17 And I took the two tables, and cast them out of my two hands, and -brake them before your eyes. - -9:18 And I fell down before the LORD, as at the first, forty days and -forty nights: I did neither eat bread, nor drink water, because of all -your sins which ye sinned, in doing wickedly in the sight of the LORD, -to provoke him to anger. - -9:19 For I was afraid of the anger and hot displeasure, wherewith the -LORD was wroth against you to destroy you. But the LORD hearkened unto -me at that time also. - -9:20 And the LORD was very angry with Aaron to have destroyed him: and -I prayed for Aaron also the same time. - -9:21 And I took your sin, the calf which ye had made, and burnt it -with fire, and stamped it, and ground it very small, even until it was -as small as dust: and I cast the dust thereof into the brook that -descended out of the mount. - -9:22 And at Taberah, and at Massah, and at Kibrothhattaavah, ye -provoked the LORD to wrath. - -9:23 Likewise when the LORD sent you from Kadeshbarnea, saying, Go up -and possess the land which I have given you; then ye rebelled against -the commandment of the LORD your God, and ye believed him not, nor -hearkened to his voice. - -9:24 Ye have been rebellious against the LORD from the day that I knew -you. - -9:25 Thus I fell down before the LORD forty days and forty nights, as -I fell down at the first; because the LORD had said he would destroy -you. - -9:26 I prayed therefore unto the LORD, and said, O Lord GOD, destroy -not thy people and thine inheritance, which thou hast redeemed through -thy greatness, which thou hast brought forth out of Egypt with a -mighty hand. - -9:27 Remember thy servants, Abraham, Isaac, and Jacob; look not unto -the stubbornness of this people, nor to their wickedness, nor to their -sin: 9:28 Lest the land whence thou broughtest us out say, Because the -LORD was not able to bring them into the land which he promised them, -and because he hated them, he hath brought them out to slay them in -the wilderness. - -9:29 Yet they are thy people and thine inheritance, which thou -broughtest out by thy mighty power and by thy stretched out arm. - -10:1 At that time the LORD said unto me, Hew thee two tables of stone -like unto the first, and come up unto me into the mount, and make thee -an ark of wood. - -10:2 And I will write on the tables the words that were in the first -tables which thou brakest, and thou shalt put them in the ark. - -10:3 And I made an ark of shittim wood, and hewed two tables of stone -like unto the first, and went up into the mount, having the two tables -in mine hand. - -10:4 And he wrote on the tables, according to the first writing, the -ten commandments, which the LORD spake unto you in the mount out of -the midst of the fire in the day of the assembly: and the LORD gave -them unto me. - -10:5 And I turned myself and came down from the mount, and put the -tables in the ark which I had made; and there they be, as the LORD -commanded me. - -10:6 And the children of Israel took their journey from Beeroth of the -children of Jaakan to Mosera: there Aaron died, and there he was -buried; and Eleazar his son ministered in the priest's office in his -stead. - -10:7 From thence they journeyed unto Gudgodah; and from Gudgodah to -Jotbath, a land of rivers of waters. - -10:8 At that time the LORD separated the tribe of Levi, to bear the -ark of the covenant of the LORD, to stand before the LORD to minister -unto him, and to bless in his name, unto this day. - -10:9 Wherefore Levi hath no part nor inheritance with his brethren; -the LORD is his inheritance, according as the LORD thy God promised -him. - -10:10 And I stayed in the mount, according to the first time, forty -days and forty nights; and the LORD hearkened unto me at that time -also, and the LORD would not destroy thee. - -10:11 And the LORD said unto me, Arise, take thy journey before the -people, that they may go in and possess the land, which I sware unto -their fathers to give unto them. - -10:12 And now, Israel, what doth the LORD thy God require of thee, but -to fear the LORD thy God, to walk in all his ways, and to love him, -and to serve the LORD thy God with all thy heart and with all thy -soul, 10:13 To keep the commandments of the LORD, and his statutes, -which I command thee this day for thy good? 10:14 Behold, the heaven -and the heaven of heavens is the LORD's thy God, the earth also, with -all that therein is. - -10:15 Only the LORD had a delight in thy fathers to love them, and he -chose their seed after them, even you above all people, as it is this -day. - -10:16 Circumcise therefore the foreskin of your heart, and be no more -stiffnecked. - -10:17 For the LORD your God is God of gods, and Lord of lords, a great -God, a mighty, and a terrible, which regardeth not persons, nor taketh -reward: 10:18 He doth execute the judgment of the fatherless and -widow, and loveth the stranger, in giving him food and raiment. - -10:19 Love ye therefore the stranger: for ye were strangers in the -land of Egypt. - -10:20 Thou shalt fear the LORD thy God; him shalt thou serve, and to -him shalt thou cleave, and swear by his name. - -10:21 He is thy praise, and he is thy God, that hath done for thee -these great and terrible things, which thine eyes have seen. - -10:22 Thy fathers went down into Egypt with threescore and ten -persons; and now the LORD thy God hath made thee as the stars of -heaven for multitude. - -11:1 Therefore thou shalt love the LORD thy God, and keep his charge, -and his statutes, and his judgments, and his commandments, alway. - -11:2 And know ye this day: for I speak not with your children which -have not known, and which have not seen the chastisement of the LORD -your God, his greatness, his mighty hand, and his stretched out arm, -11:3 And his miracles, and his acts, which he did in the midst of -Egypt unto Pharaoh the king of Egypt, and unto all his land; 11:4 And -what he did unto the army of Egypt, unto their horses, and to their -chariots; how he made the water of the Red sea to overflow them as -they pursued after you, and how the LORD hath destroyed them unto this -day; 11:5 And what he did unto you in the wilderness, until ye came -into this place; 11:6 And what he did unto Dathan and Abiram, the sons -of Eliab, the son of Reuben: how the earth opened her mouth, and -swallowed them up, and their households, and their tents, and all the -substance that was in their possession, in the midst of all Israel: -11:7 But your eyes have seen all the great acts of the LORD which he -did. - -11:8 Therefore shall ye keep all the commandments which I command you -this day, that ye may be strong, and go in and possess the land, -whither ye go to possess it; 11:9 And that ye may prolong your days in -the land, which the LORD sware unto your fathers to give unto them and -to their seed, a land that floweth with milk and honey. - -11:10 For the land, whither thou goest in to possess it, is not as the -land of Egypt, from whence ye came out, where thou sowedst thy seed, -and wateredst it with thy foot, as a garden of herbs: 11:11 But the -land, whither ye go to possess it, is a land of hills and valleys, and -drinketh water of the rain of heaven: 11:12 A land which the LORD thy -God careth for: the eyes of the LORD thy God are always upon it, from -the beginning of the year even unto the end of the year. - -11:13 And it shall come to pass, if ye shall hearken diligently unto -my commandments which I command you this day, to love the LORD your -God, and to serve him with all your heart and with all your soul, -11:14 That I will give you the rain of your land in his due season, -the first rain and the latter rain, that thou mayest gather in thy -corn, and thy wine, and thine oil. - -11:15 And I will send grass in thy fields for thy cattle, that thou -mayest eat and be full. - -11:16 Take heed to yourselves, that your heart be not deceived, and ye -turn aside, and serve other gods, and worship them; 11:17 And then the -LORD's wrath be kindled against you, and he shut up the heaven, that -there be no rain, and that the land yield not her fruit; and lest ye -perish quickly from off the good land which the LORD giveth you. - -11:18 Therefore shall ye lay up these my words in your heart and in -your soul, and bind them for a sign upon your hand, that they may be -as frontlets between your eyes. - -11:19 And ye shall teach them your children, speaking of them when -thou sittest in thine house, and when thou walkest by the way, when -thou liest down, and when thou risest up. - -11:20 And thou shalt write them upon the door posts of thine house, -and upon thy gates: 11:21 That your days may be multiplied, and the -days of your children, in the land which the LORD sware unto your -fathers to give them, as the days of heaven upon the earth. - -11:22 For if ye shall diligently keep all these commandments which I -command you, to do them, to love the LORD your God, to walk in all his -ways, and to cleave unto him; 11:23 Then will the LORD drive out all -these nations from before you, and ye shall possess greater nations -and mightier than yourselves. - -11:24 Every place whereon the soles of your feet shall tread shall be -yours: from the wilderness and Lebanon, from the river, the river -Euphrates, even unto the uttermost sea shall your coast be. - -11:25 There shall no man be able to stand before you: for the LORD -your God shall lay the fear of you and the dread of you upon all the -land that ye shall tread upon, as he hath said unto you. - -11:26 Behold, I set before you this day a blessing and a curse; 11:27 -A blessing, if ye obey the commandments of the LORD your God, which I -command you this day: 11:28 And a curse, if ye will not obey the -commandments of the LORD your God, but turn aside out of the way which -I command you this day, to go after other gods, which ye have not -known. - -11:29 And it shall come to pass, when the LORD thy God hath brought -thee in unto the land whither thou goest to possess it, that thou -shalt put the blessing upon mount Gerizim, and the curse upon mount -Ebal. - -11:30 Are they not on the other side Jordan, by the way where the sun -goeth down, in the land of the Canaanites, which dwell in the -champaign over against Gilgal, beside the plains of Moreh? 11:31 For -ye shall pass over Jordan to go in to possess the land which the LORD -your God giveth you, and ye shall possess it, and dwell therein. - -11:32 And ye shall observe to do all the statutes and judgments which -I set before you this day. - -12:1 These are the statutes and judgments, which ye shall observe to -do in the land, which the LORD God of thy fathers giveth thee to -possess it, all the days that ye live upon the earth. - -12:2 Ye shall utterly destroy all the places, wherein the nations -which ye shall possess served their gods, upon the high mountains, and -upon the hills, and under every green tree: 12:3 And ye shall -overthrow their altars, and break their pillars, and burn their groves -with fire; and ye shall hew down the graven images of their gods, and -destroy the names of them out of that place. - -12:4 Ye shall not do so unto the LORD your God. - -12:5 But unto the place which the LORD your God shall choose out of -all your tribes to put his name there, even unto his habitation shall -ye seek, and thither thou shalt come: 12:6 And thither ye shall bring -your burnt offerings, and your sacrifices, and your tithes, and heave -offerings of your hand, and your vows, and your freewill offerings, -and the firstlings of your herds and of your flocks: 12:7 And there ye -shall eat before the LORD your God, and ye shall rejoice in all that -ye put your hand unto, ye and your households, wherein the LORD thy -God hath blessed thee. - -12:8 Ye shall not do after all the things that we do here this day, -every man whatsoever is right in his own eyes. - -12:9 For ye are not as yet come to the rest and to the inheritance, -which the LORD your God giveth you. - -12:10 But when ye go over Jordan, and dwell in the land which the LORD -your God giveth you to inherit, and when he giveth you rest from all -your enemies round about, so that ye dwell in safety; 12:11 Then there -shall be a place which the LORD your God shall choose to cause his -name to dwell there; thither shall ye bring all that I command you; -your burnt offerings, and your sacrifices, your tithes, and the heave -offering of your hand, and all your choice vows which ye vow unto the -LORD: 12:12 And ye shall rejoice before the LORD your God, ye, and -your sons, and your daughters, and your menservants, and your -maidservants, and the Levite that is within your gates; forasmuch as -he hath no part nor inheritance with you. - -12:13 Take heed to thyself that thou offer not thy burnt offerings in -every place that thou seest: 12:14 But in the place which the LORD -shall choose in one of thy tribes, there thou shalt offer thy burnt -offerings, and there thou shalt do all that I command thee. - -12:15 Notwithstanding thou mayest kill and eat flesh in all thy gates, -whatsoever thy soul lusteth after, according to the blessing of the -LORD thy God which he hath given thee: the unclean and the clean may -eat thereof, as of the roebuck, and as of the hart. - -12:16 Only ye shall not eat the blood; ye shall pour it upon the earth -as water. - -12:17 Thou mayest not eat within thy gates the tithe of thy corn, or -of thy wine, or of thy oil, or the firstlings of thy herds or of thy -flock, nor any of thy vows which thou vowest, nor thy freewill -offerings, or heave offering of thine hand: 12:18 But thou must eat -them before the LORD thy God in the place which the LORD thy God shall -choose, thou, and thy son, and thy daughter, and thy manservant, and -thy maidservant, and the Levite that is within thy gates: and thou -shalt rejoice before the LORD thy God in all that thou puttest thine -hands unto. - -12:19 Take heed to thyself that thou forsake not the Levite as long as -thou livest upon the earth. - -12:20 When the LORD thy God shall enlarge thy border, as he hath -promised thee, and thou shalt say, I will eat flesh, because thy soul -longeth to eat flesh; thou mayest eat flesh, whatsoever thy soul -lusteth after. - -12:21 If the place which the LORD thy God hath chosen to put his name -there be too far from thee, then thou shalt kill of thy herd and of -thy flock, which the LORD hath given thee, as I have commanded thee, -and thou shalt eat in thy gates whatsoever thy soul lusteth after. - -12:22 Even as the roebuck and the hart is eaten, so thou shalt eat -them: the unclean and the clean shall eat of them alike. - -12:23 Only be sure that thou eat not the blood: for the blood is the -life; and thou mayest not eat the life with the flesh. - -12:24 Thou shalt not eat it; thou shalt pour it upon the earth as -water. - -12:25 Thou shalt not eat it; that it may go well with thee, and with -thy children after thee, when thou shalt do that which is right in the -sight of the LORD. - -12:26 Only thy holy things which thou hast, and thy vows, thou shalt -take, and go unto the place which the LORD shall choose: 12:27 And -thou shalt offer thy burnt offerings, the flesh and the blood, upon -the altar of the LORD thy God: and the blood of thy sacrifices shall -be poured out upon the altar of the LORD thy God, and thou shalt eat -the flesh. - -12:28 Observe and hear all these words which I command thee, that it -may go well with thee, and with thy children after thee for ever, when -thou doest that which is good and right in the sight of the LORD thy -God. - -12:29 When the LORD thy God shall cut off the nations from before -thee, whither thou goest to possess them, and thou succeedest them, -and dwellest in their land; 12:30 Take heed to thyself that thou be -not snared by following them, after that they be destroyed from before -thee; and that thou enquire not after their gods, saying, How did -these nations serve their gods? even so will I do likewise. - -12:31 Thou shalt not do so unto the LORD thy God: for every -abomination to the LORD, which he hateth, have they done unto their -gods; for even their sons and their daughters they have burnt in the -fire to their gods. - -12:32 What thing soever I command you, observe to do it: thou shalt -not add thereto, nor diminish from it. - -13:1 If there arise among you a prophet, or a dreamer of dreams, and -giveth thee a sign or a wonder, 13:2 And the sign or the wonder come -to pass, whereof he spake unto thee, saying, Let us go after other -gods, which thou hast not known, and let us serve them; 13:3 Thou -shalt not hearken unto the words of that prophet, or that dreamer of -dreams: for the LORD your God proveth you, to know whether ye love the -LORD your God with all your heart and with all your soul. - -13:4 Ye shall walk after the LORD your God, and fear him, and keep his -commandments, and obey his voice, and ye shall serve him, and cleave -unto him. - -13:5 And that prophet, or that dreamer of dreams, shall be put to -death; because he hath spoken to turn you away from the LORD your God, -which brought you out of the land of Egypt, and redeemed you out of -the house of bondage, to thrust thee out of the way which the LORD thy -God commanded thee to walk in. So shalt thou put the evil away from -the midst of thee. - -13:6 If thy brother, the son of thy mother, or thy son, or thy -daughter, or the wife of thy bosom, or thy friend, which is as thine -own soul, entice thee secretly, saying, Let us go and serve other -gods, which thou hast not known, thou, nor thy fathers; 13:7 Namely, -of the gods of the people which are round about you, nigh unto thee, -or far off from thee, from the one end of the earth even unto the -other end of the earth; 13:8 Thou shalt not consent unto him, nor -hearken unto him; neither shall thine eye pity him, neither shalt thou -spare, neither shalt thou conceal him: 13:9 But thou shalt surely kill -him; thine hand shall be first upon him to put him to death, and -afterwards the hand of all the people. - -13:10 And thou shalt stone him with stones, that he die; because he -hath sought to thrust thee away from the LORD thy God, which brought -thee out of the land of Egypt, from the house of bondage. - -13:11 And all Israel shall hear, and fear, and shall do no more any -such wickedness as this is among you. - -13:12 If thou shalt hear say in one of thy cities, which the LORD thy -God hath given thee to dwell there, saying, 13:13 Certain men, the -children of Belial, are gone out from among you, and have withdrawn -the inhabitants of their city, saying, Let us go and serve other gods, -which ye have not known; 13:14 Then shalt thou enquire, and make -search, and ask diligently; and, behold, if it be truth, and the thing -certain, that such abomination is wrought among you; 13:15 Thou shalt -surely smite the inhabitants of that city with the edge of the sword, -destroying it utterly, and all that is therein, and the cattle -thereof, with the edge of the sword. - -13:16 And thou shalt gather all the spoil of it into the midst of the -street thereof, and shalt burn with fire the city, and all the spoil -thereof every whit, for the LORD thy God: and it shall be an heap for -ever; it shall not be built again. - -13:17 And there shall cleave nought of the cursed thing to thine hand: -that the LORD may turn from the fierceness of his anger, and shew thee -mercy, and have compassion upon thee, and multiply thee, as he hath -sworn unto thy fathers; 13:18 When thou shalt hearken to the voice of -the LORD thy God, to keep all his commandments which I command thee -this day, to do that which is right in the eyes of the LORD thy God. - -14:1 Ye are the children of the LORD your God: ye shall not cut -yourselves, nor make any baldness between your eyes for the dead. - -14:2 For thou art an holy people unto the LORD thy God, and the LORD -hath chosen thee to be a peculiar people unto himself, above all the -nations that are upon the earth. - -14:3 Thou shalt not eat any abominable thing. - -14:4 These are the beasts which ye shall eat: the ox, the sheep, and -the goat, 14:5 The hart, and the roebuck, and the fallow deer, and the -wild goat, and the pygarg, and the wild ox, and the chamois. - -14:6 And every beast that parteth the hoof, and cleaveth the cleft -into two claws, and cheweth the cud among the beasts, that ye shall -eat. - -14:7 Nevertheless these ye shall not eat of them that chew the cud, or -of them that divide the cloven hoof; as the camel, and the hare, and -the coney: for they chew the cud, but divide not the hoof; therefore -they are unclean unto you. - -14:8 And the swine, because it divideth the hoof, yet cheweth not the -cud, it is unclean unto you: ye shall not eat of their flesh, nor -touch their dead carcase. - -14:9 These ye shall eat of all that are in the waters: all that have -fins and scales shall ye eat: 14:10 And whatsoever hath not fins and -scales ye may not eat; it is unclean unto you. - -14:11 Of all clean birds ye shall eat. - -14:12 But these are they of which ye shall not eat: the eagle, and the -ossifrage, and the ospray, 14:13 And the glede, and the kite, and the -vulture after his kind, 14:14 And every raven after his kind, 14:15 -And the owl, and the night hawk, and the cuckow, and the hawk after -his kind, 14:16 The little owl, and the great owl, and the swan, 14:17 -And the pelican, and the gier eagle, and the cormorant, 14:18 And the -stork, and the heron after her kind, and the lapwing, and the bat. - -14:19 And every creeping thing that flieth is unclean unto you: they -shall not be eaten. - -14:20 But of all clean fowls ye may eat. - -14:21 Ye shall not eat of anything that dieth of itself: thou shalt -give it unto the stranger that is in thy gates, that he may eat it; or -thou mayest sell it unto an alien: for thou art an holy people unto -the LORD thy God. - -Thou shalt not seethe a kid in his mother's milk. - -14:22 Thou shalt truly tithe all the increase of thy seed, that the -field bringeth forth year by year. - -14:23 And thou shalt eat before the LORD thy God, in the place which -he shall choose to place his name there, the tithe of thy corn, of thy -wine, and of thine oil, and the firstlings of thy herds and of thy -flocks; that thou mayest learn to fear the LORD thy God always. - -14:24 And if the way be too long for thee, so that thou art not able -to carry it; or if the place be too far from thee, which the LORD thy -God shall choose to set his name there, when the LORD thy God hath -blessed thee: 14:25 Then shalt thou turn it into money, and bind up -the money in thine hand, and shalt go unto the place which the LORD -thy God shall choose: 14:26 And thou shalt bestow that money for -whatsoever thy soul lusteth after, for oxen, or for sheep, or for -wine, or for strong drink, or for whatsoever thy soul desireth: and -thou shalt eat there before the LORD thy God, and thou shalt rejoice, -thou, and thine household, 14:27 And the Levite that is within thy -gates; thou shalt not forsake him; for he hath no part nor inheritance -with thee. - -14:28 At the end of three years thou shalt bring forth all the tithe -of thine increase the same year, and shalt lay it up within thy gates: -14:29 And the Levite, (because he hath no part nor inheritance with -thee,) and the stranger, and the fatherless, and the widow, which are -within thy gates, shall come, and shall eat and be satisfied; that the -LORD thy God may bless thee in all the work of thine hand which thou -doest. - -15:1 At the end of every seven years thou shalt make a release. - -15:2 And this is the manner of the release: Every creditor that -lendeth ought unto his neighbour shall release it; he shall not exact -it of his neighbour, or of his brother; because it is called the -LORD's release. - -15:3 Of a foreigner thou mayest exact it again: but that which is -thine with thy brother thine hand shall release; 15:4 Save when there -shall be no poor among you; for the LORD shall greatly bless thee in -the land which the LORD thy God giveth thee for an inheritance to -possess it: 15:5 Only if thou carefully hearken unto the voice of the -LORD thy God, to observe to do all these commandments which I command -thee this day. - -15:6 For the LORD thy God blesseth thee, as he promised thee: and thou -shalt lend unto many nations, but thou shalt not borrow; and thou -shalt reign over many nations, but they shall not reign over thee. - -15:7 If there be among you a poor man of one of thy brethren within -any of thy gates in thy land which the LORD thy God giveth thee, thou -shalt not harden thine heart, nor shut thine hand from thy poor -brother: 15:8 But thou shalt open thine hand wide unto him, and shalt -surely lend him sufficient for his need, in that which he wanteth. - -15:9 Beware that there be not a thought in thy wicked heart, saying, -The seventh year, the year of release, is at hand; and thine eye be -evil against thy poor brother, and thou givest him nought; and he cry -unto the LORD against thee, and it be sin unto thee. - -15:10 Thou shalt surely give him, and thine heart shall not be grieved -when thou givest unto him: because that for this thing the LORD thy -God shall bless thee in all thy works, and in all that thou puttest -thine hand unto. - -15:11 For the poor shall never cease out of the land: therefore I -command thee, saying, Thou shalt open thine hand wide unto thy -brother, to thy poor, and to thy needy, in thy land. - -15:12 And if thy brother, an Hebrew man, or an Hebrew woman, be sold -unto thee, and serve thee six years; then in the seventh year thou -shalt let him go free from thee. - -15:13 And when thou sendest him out free from thee, thou shalt not let -him go away empty: 15:14 Thou shalt furnish him liberally out of thy -flock, and out of thy floor, and out of thy winepress: of that -wherewith the LORD thy God hath blessed thee thou shalt give unto him. - -15:15 And thou shalt remember that thou wast a bondman in the land of -Egypt, and the LORD thy God redeemed thee: therefore I command thee -this thing to day. - -15:16 And it shall be, if he say unto thee, I will not go away from -thee; because he loveth thee and thine house, because he is well with -thee; 15:17 Then thou shalt take an aul, and thrust it through his ear -unto the door, and he shall be thy servant for ever. And also unto thy -maidservant thou shalt do likewise. - -15:18 It shall not seem hard unto thee, when thou sendest him away -free from thee; for he hath been worth a double hired servant to thee, -in serving thee six years: and the LORD thy God shall bless thee in -all that thou doest. - -15:19 All the firstling males that come of thy herd and of thy flock -thou shalt sanctify unto the LORD thy God: thou shalt do no work with -the firstling of thy bullock, nor shear the firstling of thy sheep. - -15:20 Thou shalt eat it before the LORD thy God year by year in the -place which the LORD shall choose, thou and thy household. - -15:21 And if there be any blemish therein, as if it be lame, or blind, -or have any ill blemish, thou shalt not sacrifice it unto the LORD thy -God. - -15:22 Thou shalt eat it within thy gates: the unclean and the clean -person shall eat it alike, as the roebuck, and as the hart. - -15:23 Only thou shalt not eat the blood thereof; thou shalt pour it -upon the ground as water. - -16:1 Observe the month of Abib, and keep the passover unto the LORD -thy God: for in the month of Abib the LORD thy God brought thee forth -out of Egypt by night. - -16:2 Thou shalt therefore sacrifice the passover unto the LORD thy -God, of the flock and the herd, in the place which the LORD shall -choose to place his name there. - -16:3 Thou shalt eat no leavened bread with it; seven days shalt thou -eat unleavened bread therewith, even the bread of affliction; for thou -camest forth out of the land of Egypt in haste: that thou mayest -remember the day when thou camest forth out of the land of Egypt all -the days of thy life. - -16:4 And there shall be no leavened bread seen with thee in all thy -coast seven days; neither shall there any thing of the flesh, which -thou sacrificedst the first day at even, remain all night until the -morning. - -16:5 Thou mayest not sacrifice the passover within any of thy gates, -which the LORD thy God giveth thee: 16:6 But at the place which the -LORD thy God shall choose to place his name in, there thou shalt -sacrifice the passover at even, at the going down of the sun, at the -season that thou camest forth out of Egypt. - -16:7 And thou shalt roast and eat it in the place which the LORD thy -God shall choose: and thou shalt turn in the morning, and go unto thy -tents. - -16:8 Six days thou shalt eat unleavened bread: and on the seventh day -shall be a solemn assembly to the LORD thy God: thou shalt do no work -therein. - -16:9 Seven weeks shalt thou number unto thee: begin to number the -seven weeks from such time as thou beginnest to put the sickle to the -corn. - -16:10 And thou shalt keep the feast of weeks unto the LORD thy God -with a tribute of a freewill offering of thine hand, which thou shalt -give unto the LORD thy God, according as the LORD thy God hath blessed -thee: 16:11 And thou shalt rejoice before the LORD thy God, thou, and -thy son, and thy daughter, and thy manservant, and thy maidservant, -and the Levite that is within thy gates, and the stranger, and the -fatherless, and the widow, that are among you, in the place which the -LORD thy God hath chosen to place his name there. - -16:12 And thou shalt remember that thou wast a bondman in Egypt: and -thou shalt observe and do these statutes. - -16:13 Thou shalt observe the feast of tabernacles seven days, after -that thou hast gathered in thy corn and thy wine: 16:14 And thou shalt -rejoice in thy feast, thou, and thy son, and thy daughter, and thy -manservant, and thy maidservant, and the Levite, the stranger, and the -fatherless, and the widow, that are within thy gates. - -16:15 Seven days shalt thou keep a solemn feast unto the LORD thy God -in the place which the LORD shall choose: because the LORD thy God -shall bless thee in all thine increase, and in all the works of thine -hands, therefore thou shalt surely rejoice. - -16:16 Three times in a year shall all thy males appear before the LORD -thy God in the place which he shall choose; in the feast of unleavened -bread, and in the feast of weeks, and in the feast of tabernacles: and -they shall not appear before the LORD empty: 16:17 Every man shall -give as he is able, according to the blessing of the LORD thy God -which he hath given thee. - -16:18 Judges and officers shalt thou make thee in all thy gates, which -the LORD thy God giveth thee, throughout thy tribes: and they shall -judge the people with just judgment. - -16:19 Thou shalt not wrest judgment; thou shalt not respect persons, -neither take a gift: for a gift doth blind the eyes of the wise, and -pervert the words of the righteous. - -16:20 That which is altogether just shalt thou follow, that thou -mayest live, and inherit the land which the LORD thy God giveth thee. - -16:21 Thou shalt not plant thee a grove of any trees near unto the -altar of the LORD thy God, which thou shalt make thee. - -16:22 Neither shalt thou set thee up any image; which the LORD thy God -hateth. - -17:1 Thou shalt not sacrifice unto the LORD thy God any bullock, or -sheep, wherein is blemish, or any evilfavouredness: for that is an -abomination unto the LORD thy God. - -17:2 If there be found among you, within any of thy gates which the -LORD thy God giveth thee, man or woman, that hath wrought wickedness -in the sight of the LORD thy God, in transgressing his covenant, 17:3 -And hath gone and served other gods, and worshipped them, either the -sun, or moon, or any of the host of heaven, which I have not -commanded; 17:4 And it be told thee, and thou hast heard of it, and -enquired diligently, and, behold, it be true, and the thing certain, -that such abomination is wrought in Israel: 17:5 Then shalt thou bring -forth that man or that woman, which have committed that wicked thing, -unto thy gates, even that man or that woman, and shalt stone them with -stones, till they die. - -17:6 At the mouth of two witnesses, or three witnesses, shall he that -is worthy of death be put to death; but at the mouth of one witness he -shall not be put to death. - -17:7 The hands of the witnesses shall be first upon him to put him to -death, and afterward the hands of all the people. So thou shalt put -the evil away from among you. - -17:8 If there arise a matter too hard for thee in judgment, between -blood and blood, between plea and plea, and between stroke and stroke, -being matters of controversy within thy gates: then shalt thou arise, -and get thee up into the place which the LORD thy God shall choose; -17:9 And thou shalt come unto the priests the Levites, and unto the -judge that shall be in those days, and enquire; and they shall shew -thee the sentence of judgment: 17:10 And thou shalt do according to -the sentence, which they of that place which the LORD shall choose -shall shew thee; and thou shalt observe to do according to all that -they inform thee: 17:11 According to the sentence of the law which -they shall teach thee, and according to the judgment which they shall -tell thee, thou shalt do: thou shalt not decline from the sentence -which they shall shew thee, to the right hand, nor to the left. - -17:12 And the man that will do presumptuously, and will not hearken -unto the priest that standeth to minister there before the LORD thy -God, or unto the judge, even that man shall die: and thou shalt put -away the evil from Israel. - -17:13 And all the people shall hear, and fear, and do no more -presumptuously. - -17:14 When thou art come unto the land which the LORD thy God giveth -thee, and shalt possess it, and shalt dwell therein, and shalt say, I -will set a king over me, like as all the nations that are about me; -17:15 Thou shalt in any wise set him king over thee, whom the LORD thy -God shall choose: one from among thy brethren shalt thou set king over -thee: thou mayest not set a stranger over thee, which is not thy -brother. - -17:16 But he shall not multiply horses to himself, nor cause the -people to return to Egypt, to the end that he should multiply horses: -forasmuch as the LORD hath said unto you, Ye shall henceforth return -no more that way. - -17:17 Neither shall he multiply wives to himself, that his heart turn -not away: neither shall he greatly multiply to himself silver and -gold. - -17:18 And it shall be, when he sitteth upon the throne of his kingdom, -that he shall write him a copy of this law in a book out of that which -is before the priests the Levites: 17:19 And it shall be with him, and -he shall read therein all the days of his life: that he may learn to -fear the LORD his God, to keep all the words of this law and these -statutes, to do them: 17:20 That his heart be not lifted up above his -brethren, and that he turn not aside from the commandment, to the -right hand, or to the left: to the end that he may prolong his days in -his kingdom, he, and his children, in the midst of Israel. - -18:1 The priests the Levites, and all the tribe of Levi, shall have no -part nor inheritance with Israel: they shall eat the offerings of the -LORD made by fire, and his inheritance. - -18:2 Therefore shall they have no inheritance among their brethren: -the LORD is their inheritance, as he hath said unto them. - -18:3 And this shall be the priest's due from the people, from them -that offer a sacrifice, whether it be ox or sheep; and they shall give -unto the priest the shoulder, and the two cheeks, and the maw. - -18:4 The firstfruit also of thy corn, of thy wine, and of thine oil, -and the first of the fleece of thy sheep, shalt thou give him. - -18:5 For the LORD thy God hath chosen him out of all thy tribes, to -stand to minister in the name of the LORD, him and his sons for ever. - -18:6 And if a Levite come from any of thy gates out of all Israel, -where he sojourned, and come with all the desire of his mind unto the -place which the LORD shall choose; 18:7 Then he shall minister in the -name of the LORD his God, as all his brethren the Levites do, which -stand there before the LORD. - -18:8 They shall have like portions to eat, beside that which cometh of -the sale of his patrimony. - -18:9 When thou art come into the land which the LORD thy God giveth -thee, thou shalt not learn to do after the abominations of those -nations. - -18:10 There shall not be found among you any one that maketh his son -or his daughter to pass through the fire, or that useth divination, or -an observer of times, or an enchanter, or a witch. - -18:11 Or a charmer, or a consulter with familiar spirits, or a wizard, -or a necromancer. - -18:12 For all that do these things are an abomination unto the LORD: -and because of these abominations the LORD thy God doth drive them out -from before thee. - -18:13 Thou shalt be perfect with the LORD thy God. - -18:14 For these nations, which thou shalt possess, hearkened unto -observers of times, and unto diviners: but as for thee, the LORD thy -God hath not suffered thee so to do. - -18:15 The LORD thy God will raise up unto thee a Prophet from the -midst of thee, of thy brethren, like unto me; unto him ye shall -hearken; 18:16 According to all that thou desiredst of the LORD thy -God in Horeb in the day of the assembly, saying, Let me not hear again -the voice of the LORD my God, neither let me see this great fire any -more, that I die not. - -18:17 And the LORD said unto me, They have well spoken that which they -have spoken. - -18:18 I will raise them up a Prophet from among their brethren, like -unto thee, and will put my words in his mouth; and he shall speak unto -them all that I shall command him. - -18:19 And it shall come to pass, that whosoever will not hearken unto -my words which he shall speak in my name, I will require it of him. - -18:20 But the prophet, which shall presume to speak a word in my name, -which I have not commanded him to speak, or that shall speak in the -name of other gods, even that prophet shall die. - -18:21 And if thou say in thine heart, How shall we know the word which -the LORD hath not spoken? 18:22 When a prophet speaketh in the name -of the LORD, if the thing follow not, nor come to pass, that is the -thing which the LORD hath not spoken, but the prophet hath spoken it -presumptuously: thou shalt not be afraid of him. - -19:1 When the LORD thy God hath cut off the nations, whose land the -LORD thy God giveth thee, and thou succeedest them, and dwellest in -their cities, and in their houses; 19:2 Thou shalt separate three -cities for thee in the midst of thy land, which the LORD thy God -giveth thee to possess it. - -19:3 Thou shalt prepare thee a way, and divide the coasts of thy land, -which the LORD thy God giveth thee to inherit, into three parts, that -every slayer may flee thither. - -19:4 And this is the case of the slayer, which shall flee thither, -that he may live: Whoso killeth his neighbour ignorantly, whom he -hated not in time past; 19:5 As when a man goeth into the wood with -his neighbour to hew wood, and his hand fetcheth a stroke with the axe -to cut down the tree, and the head slippeth from the helve, and -lighteth upon his neighbour, that he die; he shall flee unto one of -those cities, and live: 19:6 Lest the avenger of the blood pursue the -slayer, while his heart is hot, and overtake him, because the way is -long, and slay him; whereas he was not worthy of death, inasmuch as he -hated him not in time past. - -19:7 Wherefore I command thee, saying, Thou shalt separate three -cities for thee. - -19:8 And if the LORD thy God enlarge thy coast, as he hath sworn unto -thy fathers, and give thee all the land which he promised to give unto -thy fathers; 19:9 If thou shalt keep all these commandments to do -them, which I command thee this day, to love the LORD thy God, and to -walk ever in his ways; then shalt thou add three cities more for thee, -beside these three: 19:10 That innocent blood be not shed in thy land, -which the LORD thy God giveth thee for an inheritance, and so blood be -upon thee. - -19:11 But if any man hate his neighbour, and lie in wait for him, and -rise up against him, and smite him mortally that he die, and fleeth -into one of these cities: 19:12 Then the elders of his city shall send -and fetch him thence, and deliver him into the hand of the avenger of -blood, that he may die. - -19:13 Thine eye shall not pity him, but thou shalt put away the guilt -of innocent blood from Israel, that it may go well with thee. - -19:14 Thou shalt not remove thy neighbour's landmark, which they of -old time have set in thine inheritance, which thou shalt inherit in -the land that the LORD thy God giveth thee to possess it. - -19:15 One witness shall not rise up against a man for any iniquity, or -for any sin, in any sin that he sinneth: at the mouth of two -witnesses, or at the mouth of three witnesses, shall the matter be -established. - -19:16 If a false witness rise up against any man to testify against -him that which is wrong; 19:17 Then both the men, between whom the -controversy is, shall stand before the LORD, before the priests and -the judges, which shall be in those days; 19:18 And the judges shall -make diligent inquisition: and, behold, if the witness be a false -witness, and hath testified falsely against his brother; 19:19 Then -shall ye do unto him, as he had thought to have done unto his brother: -so shalt thou put the evil away from among you. - -19:20 And those which remain shall hear, and fear, and shall -henceforth commit no more any such evil among you. - -19:21 And thine eye shall not pity; but life shall go for life, eye -for eye, tooth for tooth, hand for hand, foot for foot. - -20:1 When thou goest out to battle against thine enemies, and seest -horses, and chariots, and a people more than thou, be not afraid of -them: for the LORD thy God is with thee, which brought thee up out of -the land of Egypt. - -20:2 And it shall be, when ye are come nigh unto the battle, that the -priest shall approach and speak unto the people, 20:3 And shall say -unto them, Hear, O Israel, ye approach this day unto battle against -your enemies: let not your hearts faint, fear not, and do not tremble, -neither be ye terrified because of them; 20:4 For the LORD your God is -he that goeth with you, to fight for you against your enemies, to save -you. - -20:5 And the officers shall speak unto the people, saying, What man is -there that hath built a new house, and hath not dedicated it? let him -go and return to his house, lest he die in the battle, and another man -dedicate it. - -20:6 And what man is he that hath planted a vineyard, and hath not yet -eaten of it? let him also go and return unto his house, lest he die in -the battle, and another man eat of it. - -20:7 And what man is there that hath betrothed a wife, and hath not -taken her? let him go and return unto his house, lest he die in the -battle, and another man take her. - -20:8 And the officers shall speak further unto the people, and they -shall say, What man is there that is fearful and fainthearted? let him -go and return unto his house, lest his brethren's heart faint as well -as his heart. - -20:9 And it shall be, when the officers have made an end of speaking -unto the people that they shall make captains of the armies to lead -the people. - -20:10 When thou comest nigh unto a city to fight against it, then -proclaim peace unto it. - -20:11 And it shall be, if it make thee answer of peace, and open unto -thee, then it shall be, that all the people that is found therein -shall be tributaries unto thee, and they shall serve thee. - -20:12 And if it will make no peace with thee, but will make war -against thee, then thou shalt besiege it: 20:13 And when the LORD thy -God hath delivered it into thine hands, thou shalt smite every male -thereof with the edge of the sword: 20:14 But the women, and the -little ones, and the cattle, and all that is in the city, even all the -spoil thereof, shalt thou take unto thyself; and thou shalt eat the -spoil of thine enemies, which the LORD thy God hath given thee. - -20:15 Thus shalt thou do unto all the cities which are very far off -from thee, which are not of the cities of these nations. - -20:16 But of the cities of these people, which the LORD thy God doth -give thee for an inheritance, thou shalt save alive nothing that -breatheth: 20:17 But thou shalt utterly destroy them; namely, the -Hittites, and the Amorites, the Canaanites, and the Perizzites, the -Hivites, and the Jebusites; as the LORD thy God hath commanded thee: -20:18 That they teach you not to do after all their abominations, -which they have done unto their gods; so should ye sin against the -LORD your God. - -20:19 When thou shalt besiege a city a long time, in making war -against it to take it, thou shalt not destroy the trees thereof by -forcing an axe against them: for thou mayest eat of them, and thou -shalt not cut them down (for the tree of the field is man's life) to -employ them in the siege: 20:20 Only the trees which thou knowest that -they be not trees for meat, thou shalt destroy and cut them down; and -thou shalt build bulwarks against the city that maketh war with thee, -until it be subdued. - -21:1 If one be found slain in the land which the LORD thy God giveth -thee to possess it, lying in the field, and it be not known who hath -slain him: 21:2 Then thy elders and thy judges shall come forth, and -they shall measure unto the cities which are round about him that is -slain: 21:3 And it shall be, that the city which is next unto the -slain man, even the elders of that city shall take an heifer, which -hath not been wrought with, and which hath not drawn in the yoke; 21:4 -And the elders of that city shall bring down the heifer unto a rough -valley, which is neither eared nor sown, and shall strike off the -heifer's neck there in the valley: 21:5 And the priests the sons of -Levi shall come near; for them the LORD thy God hath chosen to -minister unto him, and to bless in the name of the LORD; and by their -word shall every controversy and every stroke be tried: 21:6 And all -the elders of that city, that are next unto the slain man, shall wash -their hands over the heifer that is beheaded in the valley: 21:7 And -they shall answer and say, Our hands have not shed this blood, neither -have our eyes seen it. - -21:8 Be merciful, O LORD, unto thy people Israel, whom thou hast -redeemed, and lay not innocent blood unto thy people of Israel's -charge. And the blood shall be forgiven them. - -21:9 So shalt thou put away the guilt of innocent blood from among -you, when thou shalt do that which is right in the sight of the LORD. - -21:10 When thou goest forth to war against thine enemies, and the LORD -thy God hath delivered them into thine hands, and thou hast taken them -captive, 21:11 And seest among the captives a beautiful woman, and -hast a desire unto her, that thou wouldest have her to thy wife; 21:12 -Then thou shalt bring her home to thine house, and she shall shave her -head, and pare her nails; 21:13 And she shall put the raiment of her -captivity from off her, and shall remain in thine house, and bewail -her father and her mother a full month: and after that thou shalt go -in unto her, and be her husband, and she shall be thy wife. - -21:14 And it shall be, if thou have no delight in her, then thou shalt -let her go whither she will; but thou shalt not sell her at all for -money, thou shalt not make merchandise of her, because thou hast -humbled her. - -21:15 If a man have two wives, one beloved, and another hated, and -they have born him children, both the beloved and the hated; and if -the firstborn son be hers that was hated: 21:16 Then it shall be, when -he maketh his sons to inherit that which he hath, that he may not make -the son of the beloved firstborn before the son of the hated, which is -indeed the firstborn: 21:17 But he shall acknowledge the son of the -hated for the firstborn, by giving him a double portion of all that he -hath: for he is the beginning of his strength; the right of the -firstborn is his. - -21:18 If a man have a stubborn and rebellious son, which will not obey -the voice of his father, or the voice of his mother, and that, when -they have chastened him, will not hearken unto them: 21:19 Then shall -his father and his mother lay hold on him, and bring him out unto the -elders of his city, and unto the gate of his place; 21:20 And they -shall say unto the elders of his city, This our son is stubborn and -rebellious, he will not obey our voice; he is a glutton, and a -drunkard. - -21:21 And all the men of his city shall stone him with stones, that he -die: so shalt thou put evil away from among you; and all Israel shall -hear, and fear. - -21:22 And if a man have committed a sin worthy of death, and he be to -be put to death, and thou hang him on a tree: 21:23 His body shall not -remain all night upon the tree, but thou shalt in any wise bury him -that day; (for he that is hanged is accursed of God;) that thy land be -not defiled, which the LORD thy God giveth thee for an inheritance. - -22:1 Thou shalt not see thy brother's ox or his sheep go astray, and -hide thyself from them: thou shalt in any case bring them again unto -thy brother. - -22:2 And if thy brother be not nigh unto thee, or if thou know him -not, then thou shalt bring it unto thine own house, and it shall be -with thee until thy brother seek after it, and thou shalt restore it -to him again. - -22:3 In like manner shalt thou do with his ass; and so shalt thou do -with his raiment; and with all lost thing of thy brother's, which he -hath lost, and thou hast found, shalt thou do likewise: thou mayest -not hide thyself. - -22:4 Thou shalt not see thy brother's ass or his ox fall down by the -way, and hide thyself from them: thou shalt surely help him to lift -them up again. - -22:5 The woman shall not wear that which pertaineth unto a man, -neither shall a man put on a woman's garment: for all that do so are -abomination unto the LORD thy God. - -22:6 If a bird's nest chance to be before thee in the way in any tree, -or on the ground, whether they be young ones, or eggs, and the dam -sitting upon the young, or upon the eggs, thou shalt not take the dam -with the young: 22:7 But thou shalt in any wise let the dam go, and -take the young to thee; that it may be well with thee, and that thou -mayest prolong thy days. - -22:8 When thou buildest a new house, then thou shalt make a battlement -for thy roof, that thou bring not blood upon thine house, if any man -fall from thence. - -22:9 Thou shalt not sow thy vineyard with divers seeds: lest the fruit -of thy seed which thou hast sown, and the fruit of thy vineyard, be -defiled. - -22:10 Thou shalt not plow with an ox and an ass together. - -22:11 Thou shalt not wear a garment of divers sorts, as of woollen and -linen together. - -22:12 Thou shalt make thee fringes upon the four quarters of thy -vesture, wherewith thou coverest thyself. - -22:13 If any man take a wife, and go in unto her, and hate her, 22:14 -And give occasions of speech against her, and bring up an evil name -upon her, and say, I took this woman, and when I came to her, I found -her not a maid: 22:15 Then shall the father of the damsel, and her -mother, take and bring forth the tokens of the damsel's virginity unto -the elders of the city in the gate: 22:16 And the damsel's father -shall say unto the elders, I gave my daughter unto this man to wife, -and he hateth her; 22:17 And, lo, he hath given occasions of speech -against her, saying, I found not thy daughter a maid; and yet these -are the tokens of my daughter's virginity. And they shall spread the -cloth before the elders of the city. - -22:18 And the elders of that city shall take that man and chastise -him; 22:19 And they shall amerce him in an hundred shekels of silver, -and give them unto the father of the damsel, because he hath brought -up an evil name upon a virgin of Israel: and she shall be his wife; he -may not put her away all his days. - -22:20 But if this thing be true, and the tokens of virginity be not -found for the damsel: 22:21 Then they shall bring out the damsel to -the door of her father's house, and the men of her city shall stone -her with stones that she die: because she hath wrought folly in -Israel, to play the whore in her father's house: so shalt thou put -evil away from among you. - -22:22 If a man be found lying with a woman married to an husband, then -they shall both of them die, both the man that lay with the woman, and -the woman: so shalt thou put away evil from Israel. - -22:23 If a damsel that is a virgin be betrothed unto an husband, and a -man find her in the city, and lie with her; 22:24 Then ye shall bring -them both out unto the gate of that city, and ye shall stone them with -stones that they die; the damsel, because she cried not, being in the -city; and the man, because he hath humbled his neighbour's wife: so -thou shalt put away evil from among you. - -22:25 But if a man find a betrothed damsel in the field, and the man -force her, and lie with her: then the man only that lay with her shall -die. - -22:26 But unto the damsel thou shalt do nothing; there is in the -damsel no sin worthy of death: for as when a man riseth against his -neighbour, and slayeth him, even so is this matter: 22:27 For he found -her in the field, and the betrothed damsel cried, and there was none -to save her. - -22:28 If a man find a damsel that is a virgin, which is not betrothed, -and lay hold on her, and lie with her, and they be found; 22:29 Then -the man that lay with her shall give unto the damsel's father fifty -shekels of silver, and she shall be his wife; because he hath humbled -her, he may not put her away all his days. - -22:30 A man shall not take his father's wife, nor discover his -father's skirt. - -23:1 He that is wounded in the stones, or hath his privy member cut -off, shall not enter into the congregation of the LORD. - -23:2 A bastard shall not enter into the congregation of the LORD; even -to his tenth generation shall he not enter into the congregation of -the LORD. - -23:3 An Ammonite or Moabite shall not enter into the congregation of -the LORD; even to their tenth generation shall they not enter into the -congregation of the LORD for ever: 23:4 Because they met you not with -bread and with water in the way, when ye came forth out of Egypt; and -because they hired against thee Balaam the son of Beor of Pethor of -Mesopotamia, to curse thee. - -23:5 Nevertheless the LORD thy God would not hearken unto Balaam; but -the LORD thy God turned the curse into a blessing unto thee, because -the LORD thy God loved thee. - -23:6 Thou shalt not seek their peace nor their prosperity all thy days -for ever. - -23:7 Thou shalt not abhor an Edomite; for he is thy brother: thou -shalt not abhor an Egyptian; because thou wast a stranger in his land. - -23:8 The children that are begotten of them shall enter into the -congregation of the LORD in their third generation. - -23:9 When the host goeth forth against thine enemies, then keep thee -from every wicked thing. - -23:10 If there be among you any man, that is not clean by reason of -uncleanness that chanceth him by night, then shall he go abroad out of -the camp, he shall not come within the camp: 23:11 But it shall be, -when evening cometh on, he shall wash himself with water: and when the -sun is down, he shall come into the camp again. - -23:12 Thou shalt have a place also without the camp, whither thou -shalt go forth abroad: 23:13 And thou shalt have a paddle upon thy -weapon; and it shall be, when thou wilt ease thyself abroad, thou -shalt dig therewith, and shalt turn back and cover that which cometh -from thee: 23:14 For the LORD thy God walketh in the midst of thy -camp, to deliver thee, and to give up thine enemies before thee; -therefore shall thy camp be holy: that he see no unclean thing in -thee, and turn away from thee. - -23:15 Thou shalt not deliver unto his master the servant which is -escaped from his master unto thee: 23:16 He shall dwell with thee, -even among you, in that place which he shall choose in one of thy -gates, where it liketh him best: thou shalt not oppress him. - -23:17 There shall be no whore of the daughters of Israel, nor a -sodomite of the sons of Israel. - -23:18 Thou shalt not bring the hire of a whore, or the price of a dog, -into the house of the LORD thy God for any vow: for even both these -are abomination unto the LORD thy God. - -23:19 Thou shalt not lend upon usury to thy brother; usury of money, -usury of victuals, usury of any thing that is lent upon usury: 23:20 -Unto a stranger thou mayest lend upon usury; but unto thy brother thou -shalt not lend upon usury: that the LORD thy God may bless thee in all -that thou settest thine hand to in the land whither thou goest to -possess it. - -23:21 When thou shalt vow a vow unto the LORD thy God, thou shalt not -slack to pay it: for the LORD thy God will surely require it of thee; -and it would be sin in thee. - -23:22 But if thou shalt forbear to vow, it shall be no sin in thee. - -23:23 That which is gone out of thy lips thou shalt keep and perform; -even a freewill offering, according as thou hast vowed unto the LORD -thy God, which thou hast promised with thy mouth. - -23:24 When thou comest into thy neighbour's vineyard, then thou mayest -eat grapes thy fill at thine own pleasure; but thou shalt not put any -in thy vessel. - -23:25 When thou comest into the standing corn of thy neighbour, then -thou mayest pluck the ears with thine hand; but thou shalt not move a -sickle unto thy neighbour's standing corn. - -24:1 When a man hath taken a wife, and married her, and it come to -pass that she find no favour in his eyes, because he hath found some -uncleanness in her: then let him write her a bill of divorcement, and -give it in her hand, and send her out of his house. - -24:2 And when she is departed out of his house, she may go and be -another man's wife. - -24:3 And if the latter husband hate her, and write her a bill of -divorcement, and giveth it in her hand, and sendeth her out of his -house; or if the latter husband die, which took her to be his wife; -24:4 Her former husband, which sent her away, may not take her again -to be his wife, after that she is defiled; for that is abomination -before the LORD: and thou shalt not cause the land to sin, which the -LORD thy God giveth thee for an inheritance. - -24:5 When a man hath taken a new wife, he shall not go out to war, -neither shall he be charged with any business: but he shall be free at -home one year, and shall cheer up his wife which he hath taken. - -24:6 No man shall take the nether or the upper millstone to pledge: -for he taketh a man's life to pledge. - -24:7 If a man be found stealing any of his brethren of the children of -Israel, and maketh merchandise of him, or selleth him; then that thief -shall die; and thou shalt put evil away from among you. - -24:8 Take heed in the plague of leprosy, that thou observe diligently, -and do according to all that the priests the Levites shall teach you: -as I commanded them, so ye shall observe to do. - -24:9 Remember what the LORD thy God did unto Miriam by the way, after -that ye were come forth out of Egypt. - -24:10 When thou dost lend thy brother any thing, thou shalt not go -into his house to fetch his pledge. - -24:11 Thou shalt stand abroad, and the man to whom thou dost lend -shall bring out the pledge abroad unto thee. - -24:12 And if the man be poor, thou shalt not sleep with his pledge: -24:13 In any case thou shalt deliver him the pledge again when the sun -goeth down, that he may sleep in his own raiment, and bless thee: and -it shall be righteousness unto thee before the LORD thy God. - -24:14 Thou shalt not oppress an hired servant that is poor and needy, -whether he be of thy brethren, or of thy strangers that are in thy -land within thy gates: 24:15 At his day thou shalt give him his hire, -neither shall the sun go down upon it; for he is poor, and setteth his -heart upon it: lest he cry against thee unto the LORD, and it be sin -unto thee. - -24:16 The fathers shall not be put to death for the children, neither -shall the children be put to death for the fathers: every man shall be -put to death for his own sin. - -24:17 Thou shalt not pervert the judgment of the stranger, nor of the -fatherless; nor take a widow's raiment to pledge: 24:18 But thou shalt -remember that thou wast a bondman in Egypt, and the LORD thy God -redeemed thee thence: therefore I command thee to do this thing. - -24:19 When thou cuttest down thine harvest in thy field, and hast -forgot a sheaf in the field, thou shalt not go again to fetch it: it -shall be for the stranger, for the fatherless, and for the widow: that -the LORD thy God may bless thee in all the work of thine hands. - -24:20 When thou beatest thine olive tree, thou shalt not go over the -boughs again: it shall be for the stranger, for the fatherless, and -for the widow. - -24:21 When thou gatherest the grapes of thy vineyard, thou shalt not -glean it afterward: it shall be for the stranger, for the fatherless, -and for the widow. - -24:22 And thou shalt remember that thou wast a bondman in the land of -Egypt: therefore I command thee to do this thing. - -25:1 If there be a controversy between men, and they come unto -judgment, that the judges may judge them; then they shall justify the -righteous, and condemn the wicked. - -25:2 And it shall be, if the wicked man be worthy to be beaten, that -the judge shall cause him to lie down, and to be beaten before his -face, according to his fault, by a certain number. - -25:3 Forty stripes he may give him, and not exceed: lest, if he should -exceed, and beat him above these with many stripes, then thy brother -should seem vile unto thee. - -25:4 Thou shalt not muzzle the ox when he treadeth out the corn. - -25:5 If brethren dwell together, and one of them die, and have no -child, the wife of the dead shall not marry without unto a stranger: -her husband's brother shall go in unto her, and take her to him to -wife, and perform the duty of an husband's brother unto her. - -25:6 And it shall be, that the firstborn which she beareth shall -succeed in the name of his brother which is dead, that his name be not -put out of Israel. - -25:7 And if the man like not to take his brother's wife, then let his -brother's wife go up to the gate unto the elders, and say, My -husband's brother refuseth to raise up unto his brother a name in -Israel, he will not perform the duty of my husband's brother. - -25:8 Then the elders of his city shall call him, and speak unto him: -and if he stand to it, and say, I like not to take her; 25:9 Then -shall his brother's wife come unto him in the presence of the elders, -and loose his shoe from off his foot, and spit in his face, and shall -answer and say, So shall it be done unto that man that will not build -up his brother's house. - -25:10 And his name shall be called in Israel, The house of him that -hath his shoe loosed. - -25:11 When men strive together one with another, and the wife of the -one draweth near for to deliver her husband out of the hand of him -that smiteth him, and putteth forth her hand, and taketh him by the -secrets: 25:12 Then thou shalt cut off her hand, thine eye shall not -pity her. - -25:13 Thou shalt not have in thy bag divers weights, a great and a -small. - -25:14 Thou shalt not have in thine house divers measures, a great and -a small. - -25:15 But thou shalt have a perfect and just weight, a perfect and -just measure shalt thou have: that thy days may be lengthened in the -land which the LORD thy God giveth thee. - -25:16 For all that do such things, and all that do unrighteously, are -an abomination unto the LORD thy God. - -25:17 Remember what Amalek did unto thee by the way, when ye were come -forth out of Egypt; 25:18 How he met thee by the way, and smote the -hindmost of thee, even all that were feeble behind thee, when thou -wast faint and weary; and he feared not God. - -25:19 Therefore it shall be, when the LORD thy God hath given thee -rest from all thine enemies round about, in the land which the LORD -thy God giveth thee for an inheritance to possess it, that thou shalt -blot out the remembrance of Amalek from under heaven; thou shalt not -forget it. - -26:1 And it shall be, when thou art come in unto the land which the -LORD thy God giveth thee for an inheritance, and possessest it, and -dwellest therein; 26:2 That thou shalt take of the first of all the -fruit of the earth, which thou shalt bring of thy land that the LORD -thy God giveth thee, and shalt put it in a basket, and shalt go unto -the place which the LORD thy God shall choose to place his name there. - -26:3 And thou shalt go unto the priest that shall be in those days, -and say unto him, I profess this day unto the LORD thy God, that I am -come unto the country which the LORD sware unto our fathers for to -give us. - -26:4 And the priest shall take the basket out of thine hand, and set -it down before the altar of the LORD thy God. - -26:5 And thou shalt speak and say before the LORD thy God, A Syrian -ready to perish was my father, and he went down into Egypt, and -sojourned there with a few, and became there a nation, great, mighty, -and populous: 26:6 And the Egyptians evil entreated us, and afflicted -us, and laid upon us hard bondage: 26:7 And when we cried unto the -LORD God of our fathers, the LORD heard our voice, and looked on our -affliction, and our labour, and our oppression: 26:8 And the LORD -brought us forth out of Egypt with a mighty hand, and with an -outstretched arm, and with great terribleness, and with signs, and -with wonders: 26:9 And he hath brought us into this place, and hath -given us this land, even a land that floweth with milk and honey. - -26:10 And now, behold, I have brought the firstfruits of the land, -which thou, O LORD, hast given me. And thou shalt set it before the -LORD thy God, and worship before the LORD thy God: 26:11 And thou -shalt rejoice in every good thing which the LORD thy God hath given -unto thee, and unto thine house, thou, and the Levite, and the -stranger that is among you. - -26:12 When thou hast made an end of tithing all the tithes of thine -increase the third year, which is the year of tithing, and hast given -it unto the Levite, the stranger, the fatherless, and the widow, that -they may eat within thy gates, and be filled; 26:13 Then thou shalt -say before the LORD thy God, I have brought away the hallowed things -out of mine house, and also have given them unto the Levite, and unto -the stranger, to the fatherless, and to the widow, according to all -thy commandments which thou hast commanded me: I have not transgressed -thy commandments, neither have I forgotten them. - -26:14 I have not eaten thereof in my mourning, neither have I taken -away ought thereof for any unclean use, nor given ought thereof for -the dead: but I have hearkened to the voice of the LORD my God, and -have done according to all that thou hast commanded me. - -26:15 Look down from thy holy habitation, from heaven, and bless thy -people Israel, and the land which thou hast given us, as thou swarest -unto our fathers, a land that floweth with milk and honey. - -26:16 This day the LORD thy God hath commanded thee to do these -statutes and judgments: thou shalt therefore keep and do them with all -thine heart, and with all thy soul. - -26:17 Thou hast avouched the LORD this day to be thy God, and to walk -in his ways, and to keep his statutes, and his commandments, and his -judgments, and to hearken unto his voice: 26:18 And the LORD hath -avouched thee this day to be his peculiar people, as he hath promised -thee, and that thou shouldest keep all his commandments; 26:19 And to -make thee high above all nations which he hath made, in praise, and in -name, and in honour; and that thou mayest be an holy people unto the -LORD thy God, as he hath spoken. - -27:1 And Moses with the elders of Israel commanded the people, saying, -Keep all the commandments which I command you this day. - -27:2 And it shall be on the day when ye shall pass over Jordan unto -the land which the LORD thy God giveth thee, that thou shalt set thee -up great stones, and plaister them with plaister: 27:3 And thou shalt -write upon them all the words of this law, when thou art passed over, -that thou mayest go in unto the land which the LORD thy God giveth -thee, a land that floweth with milk and honey; as the LORD God of thy -fathers hath promised thee. - -27:4 Therefore it shall be when ye be gone over Jordan, that ye shall -set up these stones, which I command you this day, in mount Ebal, and -thou shalt plaister them with plaister. - -27:5 And there shalt thou build an altar unto the LORD thy God, an -altar of stones: thou shalt not lift up any iron tool upon them. - -27:6 Thou shalt build the altar of the LORD thy God of whole stones: -and thou shalt offer burnt offerings thereon unto the LORD thy God: -27:7 And thou shalt offer peace offerings, and shalt eat there, and -rejoice before the LORD thy God. - -27:8 And thou shalt write upon the stones all the words of this law -very plainly. - -27:9 And Moses and the priests the Levites spake unto all Israel, -saying, Take heed, and hearken, O Israel; this day thou art become the -people of the LORD thy God. - -27:10 Thou shalt therefore obey the voice of the LORD thy God, and do -his commandments and his statutes, which I command thee this day. - -27:11 And Moses charged the people the same day, saying, 27:12 These -shall stand upon mount Gerizim to bless the people, when ye are come -over Jordan; Simeon, and Levi, and Judah, and Issachar, and Joseph, -and Benjamin: 27:13 And these shall stand upon mount Ebal to curse; -Reuben, Gad, and Asher, and Zebulun, Dan, and Naphtali. - -27:14 And the Levites shall speak, and say unto all the men of Israel -with a loud voice, 27:15 Cursed be the man that maketh any graven or -molten image, an abomination unto the LORD, the work of the hands of -the craftsman, and putteth it in a secret place. And all the people -shall answer and say, Amen. - -27:16 Cursed be he that setteth light by his father or his mother. And -all the people shall say, Amen. - -27:17 Cursed be he that removeth his neighbour's landmark. And all the -people shall say, Amen. - -27:18 Cursed be he that maketh the blind to wander out of the way. And -all the people shall say, Amen. - -27:19 Cursed be he that perverteth the judgment of the stranger, -fatherless, and widow. And all the people shall say, Amen. - -27:20 Cursed be he that lieth with his father's wife; because he -uncovereth his father's skirt. And all the people shall say, Amen. - -27:21 Cursed be he that lieth with any manner of beast. And all the -people shall say, Amen. - -27:22 Cursed be he that lieth with his sister, the daughter of his -father, or the daughter of his mother. And all the people shall say, -Amen. - -27:23 Cursed be he that lieth with his mother in law. And all the -people shall say, Amen. - -27:24 Cursed be he that smiteth his neighbour secretly. And all the -people shall say, Amen. - -27:25 Cursed be he that taketh reward to slay an innocent person. And -all the people shall say, Amen. - -27:26 Cursed be he that confirmeth not all the words of this law to do -them. And all the people shall say, Amen. - -28:1 And it shall come to pass, if thou shalt hearken diligently unto -the voice of the LORD thy God, to observe and to do all his -commandments which I command thee this day, that the LORD thy God will -set thee on high above all nations of the earth: 28:2 And all these -blessings shall come on thee, and overtake thee, if thou shalt hearken -unto the voice of the LORD thy God. - -28:3 Blessed shalt thou be in the city, and blessed shalt thou be in -the field. - -28:4 Blessed shall be the fruit of thy body, and the fruit of thy -ground, and the fruit of thy cattle, the increase of thy kine, and the -flocks of thy sheep. - -28:5 Blessed shall be thy basket and thy store. - -28:6 Blessed shalt thou be when thou comest in, and blessed shalt thou -be when thou goest out. - -28:7 The LORD shall cause thine enemies that rise up against thee to -be smitten before thy face: they shall come out against thee one way, -and flee before thee seven ways. - -28:8 The LORD shall command the blessing upon thee in thy storehouses, -and in all that thou settest thine hand unto; and he shall bless thee -in the land which the LORD thy God giveth thee. - -28:9 The LORD shall establish thee an holy people unto himself, as he -hath sworn unto thee, if thou shalt keep the commandments of the LORD -thy God, and walk in his ways. - -28:10 And all people of the earth shall see that thou art called by -the name of the LORD; and they shall be afraid of thee. - -28:11 And the LORD shall make thee plenteous in goods, in the fruit of -thy body, and in the fruit of thy cattle, and in the fruit of thy -ground, in the land which the LORD sware unto thy fathers to give -thee. - -28:12 The LORD shall open unto thee his good treasure, the heaven to -give the rain unto thy land in his season, and to bless all the work -of thine hand: and thou shalt lend unto many nations, and thou shalt -not borrow. - -28:13 And the LORD shall make thee the head, and not the tail; and -thou shalt be above only, and thou shalt not be beneath; if that thou -hearken unto the commandments of the LORD thy God, which I command -thee this day, to observe and to do them: 28:14 And thou shalt not go -aside from any of the words which I command thee this day, to the -right hand, or to the left, to go after other gods to serve them. - -28:15 But it shall come to pass, if thou wilt not hearken unto the -voice of the LORD thy God, to observe to do all his commandments and -his statutes which I command thee this day; that all these curses -shall come upon thee, and overtake thee: 28:16 Cursed shalt thou be in -the city, and cursed shalt thou be in the field. - -28:17 Cursed shall be thy basket and thy store. - -28:18 Cursed shall be the fruit of thy body, and the fruit of thy -land, the increase of thy kine, and the flocks of thy sheep. - -28:19 Cursed shalt thou be when thou comest in, and cursed shalt thou -be when thou goest out. - -28:20 The LORD shall send upon thee cursing, vexation, and rebuke, in -all that thou settest thine hand unto for to do, until thou be -destroyed, and until thou perish quickly; because of the wickedness of -thy doings, whereby thou hast forsaken me. - -28:21 The LORD shall make the pestilence cleave unto thee, until he -have consumed thee from off the land, whither thou goest to possess -it. - -28:22 The LORD shall smite thee with a consumption, and with a fever, -and with an inflammation, and with an extreme burning, and with the -sword, and with blasting, and with mildew; and they shall pursue thee -until thou perish. - -28:23 And thy heaven that is over thy head shall be brass, and the -earth that is under thee shall be iron. - -28:24 The LORD shall make the rain of thy land powder and dust: from -heaven shall it come down upon thee, until thou be destroyed. - -28:25 The LORD shall cause thee to be smitten before thine enemies: -thou shalt go out one way against them, and flee seven ways before -them: and shalt be removed into all the kingdoms of the earth. - -28:26 And thy carcase shall be meat unto all fowls of the air, and -unto the beasts of the earth, and no man shall fray them away. - -28:27 The LORD will smite thee with the botch of Egypt, and with the -emerods, and with the scab, and with the itch, whereof thou canst not -be healed. - -28:28 The LORD shall smite thee with madness, and blindness, and -astonishment of heart: 28:29 And thou shalt grope at noonday, as the -blind gropeth in darkness, and thou shalt not prosper in thy ways: and -thou shalt be only oppressed and spoiled evermore, and no man shall -save thee. - -28:30 Thou shalt betroth a wife, and another man shall lie with her: -thou shalt build an house, and thou shalt not dwell therein: thou -shalt plant a vineyard, and shalt not gather the grapes thereof. - -28:31 Thine ox shall be slain before thine eyes, and thou shalt not -eat thereof: thine ass shall be violently taken away from before thy -face, and shall not be restored to thee: thy sheep shall be given unto -thine enemies, and thou shalt have none to rescue them. - -28:32 Thy sons and thy daughters shall be given unto another people, -and thine eyes shall look, and fail with longing for them all the day -long; and there shall be no might in thine hand. - -28:33 The fruit of thy land, and all thy labours, shall a nation which -thou knowest not eat up; and thou shalt be only oppressed and crushed -alway: 28:34 So that thou shalt be mad for the sight of thine eyes -which thou shalt see. - -28:35 The LORD shall smite thee in the knees, and in the legs, with a -sore botch that cannot be healed, from the sole of thy foot unto the -top of thy head. - -28:36 The LORD shall bring thee, and thy king which thou shalt set -over thee, unto a nation which neither thou nor thy fathers have -known; and there shalt thou serve other gods, wood and stone. - -28:37 And thou shalt become an astonishment, a proverb, and a byword, -among all nations whither the LORD shall lead thee. - -28:38 Thou shalt carry much seed out into the field, and shalt gather -but little in; for the locust shall consume it. - -28:39 Thou shalt plant vineyards, and dress them, but shalt neither -drink of the wine, nor gather the grapes; for the worms shall eat -them. - -28:40 Thou shalt have olive trees throughout all thy coasts, but thou -shalt not anoint thyself with the oil; for thine olive shall cast his -fruit. - -28:41 Thou shalt beget sons and daughters, but thou shalt not enjoy -them; for they shall go into captivity. - -28:42 All thy trees and fruit of thy land shall the locust consume. - -28:43 The stranger that is within thee shall get up above thee very -high; and thou shalt come down very low. - -28:44 He shall lend to thee, and thou shalt not lend to him: he shall -be the head, and thou shalt be the tail. - -28:45 Moreover all these curses shall come upon thee, and shall pursue -thee, and overtake thee, till thou be destroyed; because thou -hearkenedst not unto the voice of the LORD thy God, to keep his -commandments and his statutes which he commanded thee: 28:46 And they -shall be upon thee for a sign and for a wonder, and upon thy seed for -ever. - -28:47 Because thou servedst not the LORD thy God with joyfulness, and -with gladness of heart, for the abundance of all things; 28:48 -Therefore shalt thou serve thine enemies which the LORD shall send -against thee, in hunger, and in thirst, and in nakedness, and in want -of all things: and he shall put a yoke of iron upon thy neck, until he -have destroyed thee. - -28:49 The LORD shall bring a nation against thee from far, from the -end of the earth, as swift as the eagle flieth; a nation whose tongue -thou shalt not understand; 28:50 A nation of fierce countenance, which -shall not regard the person of the old, nor shew favour to the young: -28:51 And he shall eat the fruit of thy cattle, and the fruit of thy -land, until thou be destroyed: which also shall not leave thee either -corn, wine, or oil, or the increase of thy kine, or flocks of thy -sheep, until he have destroyed thee. - -28:52 And he shall besiege thee in all thy gates, until thy high and -fenced walls come down, wherein thou trustedst, throughout all thy -land: and he shall besiege thee in all thy gates throughout all thy -land, which the LORD thy God hath given thee. - -28:53 And thou shalt eat the fruit of thine own body, the flesh of thy -sons and of thy daughters, which the LORD thy God hath given thee, in -the siege, and in the straitness, wherewith thine enemies shall -distress thee: 28:54 So that the man that is tender among you, and -very delicate, his eye shall be evil toward his brother, and toward -the wife of his bosom, and toward the remnant of his children which he -shall leave: 28:55 So that he will not give to any of them of the -flesh of his children whom he shall eat: because he hath nothing left -him in the siege, and in the straitness, wherewith thine enemies shall -distress thee in all thy gates. - -28:56 The tender and delicate woman among you, which would not -adventure to set the sole of her foot upon the ground for delicateness -and tenderness, her eye shall be evil toward the husband of her bosom, -and toward her son, and toward her daughter, 28:57 And toward her -young one that cometh out from between her feet, and toward her -children which she shall bear: for she shall eat them for want of all -things secretly in the siege and straitness, wherewith thine enemy -shall distress thee in thy gates. - -28:58 If thou wilt not observe to do all the words of this law that -are written in this book, that thou mayest fear this glorious and -fearful name, THE LORD THY GOD; 28:59 Then the LORD will make thy -plagues wonderful, and the plagues of thy seed, even great plagues, -and of long continuance, and sore sicknesses, and of long continuance. - -28:60 Moreover he will bring upon thee all the diseases of Egypt, -which thou wast afraid of; and they shall cleave unto thee. - -28:61 Also every sickness, and every plague, which is not written in -the book of this law, them will the LORD bring upon thee, until thou -be destroyed. - -28:62 And ye shall be left few in number, whereas ye were as the stars -of heaven for multitude; because thou wouldest not obey the voice of -the LORD thy God. - -28:63 And it shall come to pass, that as the LORD rejoiced over you to -do you good, and to multiply you; so the LORD will rejoice over you to -destroy you, and to bring you to nought; and ye shall be plucked from -off the land whither thou goest to possess it. - -28:64 And the LORD shall scatter thee among all people, from the one -end of the earth even unto the other; and there thou shalt serve other -gods, which neither thou nor thy fathers have known, even wood and -stone. - -28:65 And among these nations shalt thou find no ease, neither shall -the sole of thy foot have rest: but the LORD shall give thee there a -trembling heart, and failing of eyes, and sorrow of mind: 28:66 And -thy life shall hang in doubt before thee; and thou shalt fear day and -night, and shalt have none assurance of thy life: 28:67 In the morning -thou shalt say, Would God it were even! and at even thou shalt say, -Would God it were morning! for the fear of thine heart wherewith thou -shalt fear, and for the sight of thine eyes which thou shalt see. - -28:68 And the LORD shall bring thee into Egypt again with ships, by -the way whereof I spake unto thee, Thou shalt see it no more again: -and there ye shall be sold unto your enemies for bondmen and -bondwomen, and no man shall buy you. - -29:1 These are the words of the covenant, which the LORD commanded -Moses to make with the children of Israel in the land of Moab, beside -the covenant which he made with them in Horeb. - -29:2 And Moses called unto all Israel, and said unto them, Ye have -seen all that the LORD did before your eyes in the land of Egypt unto -Pharaoh, and unto all his servants, and unto all his land; 29:3 The -great temptations which thine eyes have seen, the signs, and those -great miracles: 29:4 Yet the LORD hath not given you an heart to -perceive, and eyes to see, and ears to hear, unto this day. - -29:5 And I have led you forty years in the wilderness: your clothes -are not waxen old upon you, and thy shoe is not waxen old upon thy -foot. - -29:6 Ye have not eaten bread, neither have ye drunk wine or strong -drink: that ye might know that I am the LORD your God. - -29:7 And when ye came unto this place, Sihon the king of Heshbon, and -Og the king of Bashan, came out against us unto battle, and we smote -them: 29:8 And we took their land, and gave it for an inheritance unto -the Reubenites, and to the Gadites, and to the half tribe of Manasseh. - -29:9 Keep therefore the words of this covenant, and do them, that ye -may prosper in all that ye do. - -29:10 Ye stand this day all of you before the LORD your God; your -captains of your tribes, your elders, and your officers, with all the -men of Israel, 29:11 Your little ones, your wives, and thy stranger -that is in thy camp, from the hewer of thy wood unto the drawer of thy -water: 29:12 That thou shouldest enter into covenant with the LORD thy -God, and into his oath, which the LORD thy God maketh with thee this -day: 29:13 That he may establish thee to day for a people unto -himself, and that he may be unto thee a God, as he hath said unto -thee, and as he hath sworn unto thy fathers, to Abraham, to Isaac, and -to Jacob. - -29:14 Neither with you only do I make this covenant and this oath; -29:15 But with him that standeth here with us this day before the LORD -our God, and also with him that is not here with us this day: 29:16 -(For ye know how we have dwelt in the land of Egypt; and how we came -through the nations which ye passed by; 29:17 And ye have seen their -abominations, and their idols, wood and stone, silver and gold, which -were among them:) 29:18 Lest there should be among you man, or woman, -or family, or tribe, whose heart turneth away this day from the LORD -our God, to go and serve the gods of these nations; lest there should -be among you a root that beareth gall and wormwood; 29:19 And it come -to pass, when he heareth the words of this curse, that he bless -himself in his heart, saying, I shall have peace, though I walk in the -imagination of mine heart, to add drunkenness to thirst: 29:20 The -LORD will not spare him, but then the anger of the LORD and his -jealousy shall smoke against that man, and all the curses that are -written in this book shall lie upon him, and the LORD shall blot out -his name from under heaven. - -29:21 And the LORD shall separate him unto evil out of all the tribes -of Israel, according to all the curses of the covenant that are -written in this book of the law: 29:22 So that the generation to come -of your children that shall rise up after you, and the stranger that -shall come from a far land, shall say, when they see the plagues of -that land, and the sicknesses which the LORD hath laid upon it; 29:23 -And that the whole land thereof is brimstone, and salt, and burning, -that it is not sown, nor beareth, nor any grass groweth therein, like -the overthrow of Sodom, and Gomorrah, Admah, and Zeboim, which the -LORD overthrew in his anger, and in his wrath: 29:24 Even all nations -shall say, Wherefore hath the LORD done thus unto this land? what -meaneth the heat of this great anger? 29:25 Then men shall say, -Because they have forsaken the covenant of the LORD God of their -fathers, which he made with them when he brought them forth out of the -land of Egypt: 29:26 For they went and served other gods, and -worshipped them, gods whom they knew not, and whom he had not given -unto them: 29:27 And the anger of the LORD was kindled against this -land, to bring upon it all the curses that are written in this book: -29:28 And the LORD rooted them out of their land in anger, and in -wrath, and in great indignation, and cast them into another land, as -it is this day. - -29:29 The secret things belong unto the LORD our God: but those things -which are revealed belong unto us and to our children for ever, that -we may do all the words of this law. - -30:1 And it shall come to pass, when all these things are come upon -thee, the blessing and the curse, which I have set before thee, and -thou shalt call them to mind among all the nations, whither the LORD -thy God hath driven thee, 30:2 And shalt return unto the LORD thy God, -and shalt obey his voice according to all that I command thee this -day, thou and thy children, with all thine heart, and with all thy -soul; 30:3 That then the LORD thy God will turn thy captivity, and -have compassion upon thee, and will return and gather thee from all -the nations, whither the LORD thy God hath scattered thee. - -30:4 If any of thine be driven out unto the outmost parts of heaven, -from thence will the LORD thy God gather thee, and from thence will he -fetch thee: 30:5 And the LORD thy God will bring thee into the land -which thy fathers possessed, and thou shalt possess it; and he will do -thee good, and multiply thee above thy fathers. - -30:6 And the LORD thy God will circumcise thine heart, and the heart -of thy seed, to love the LORD thy God with all thine heart, and with -all thy soul, that thou mayest live. - -30:7 And the LORD thy God will put all these curses upon thine -enemies, and on them that hate thee, which persecuted thee. - -30:8 And thou shalt return and obey the voice of the LORD, and do all -his commandments which I command thee this day. - -30:9 And the LORD thy God will make thee plenteous in every work of -thine hand, in the fruit of thy body, and in the fruit of thy cattle, -and in the fruit of thy land, for good: for the LORD will again -rejoice over thee for good, as he rejoiced over thy fathers: 30:10 If -thou shalt hearken unto the voice of the LORD thy God, to keep his -commandments and his statutes which are written in this book of the -law, and if thou turn unto the LORD thy God with all thine heart, and -with all thy soul. - -30:11 For this commandment which I command thee this day, it is not -hidden from thee, neither is it far off. - -30:12 It is not in heaven, that thou shouldest say, Who shall go up -for us to heaven, and bring it unto us, that we may hear it, and do -it? 30:13 Neither is it beyond the sea, that thou shouldest say, Who -shall go over the sea for us, and bring it unto us, that we may hear -it, and do it? 30:14 But the word is very nigh unto thee, in thy -mouth, and in thy heart, that thou mayest do it. - -30:15 See, I have set before thee this day life and good, and death -and evil; 30:16 In that I command thee this day to love the LORD thy -God, to walk in his ways, and to keep his commandments and his -statutes and his judgments, that thou mayest live and multiply: and -the LORD thy God shall bless thee in the land whither thou goest to -possess it. - -30:17 But if thine heart turn away, so that thou wilt not hear, but -shalt be drawn away, and worship other gods, and serve them; 30:18 I -denounce unto you this day, that ye shall surely perish, and that ye -shall not prolong your days upon the land, whither thou passest over -Jordan to go to possess it. - -30:19 I call heaven and earth to record this day against you, that I -have set before you life and death, blessing and cursing: therefore -choose life, that both thou and thy seed may live: 30:20 That thou -mayest love the LORD thy God, and that thou mayest obey his voice, and -that thou mayest cleave unto him: for he is thy life, and the length -of thy days: that thou mayest dwell in the land which the LORD sware -unto thy fathers, to Abraham, to Isaac, and to Jacob, to give them. - -31:1 And Moses went and spake these words unto all Israel. - -31:2 And he said unto them, I am an hundred and twenty years old this -day; I can no more go out and come in: also the LORD hath said unto -me, Thou shalt not go over this Jordan. - -31:3 The LORD thy God, he will go over before thee, and he will -destroy these nations from before thee, and thou shalt possess them: -and Joshua, he shall go over before thee, as the LORD hath said. - -31:4 And the LORD shall do unto them as he did to Sihon and to Og, -kings of the Amorites, and unto the land of them, whom he destroyed. - -31:5 And the LORD shall give them up before your face, that ye may do -unto them according unto all the commandments which I have commanded -you. - -31:6 Be strong and of a good courage, fear not, nor be afraid of them: -for the LORD thy God, he it is that doth go with thee; he will not -fail thee, nor forsake thee. - -31:7 And Moses called unto Joshua, and said unto him in the sight of -all Israel, Be strong and of a good courage: for thou must go with -this people unto the land which the LORD hath sworn unto their fathers -to give them; and thou shalt cause them to inherit it. - -31:8 And the LORD, he it is that doth go before thee; he will be with -thee, he will not fail thee, neither forsake thee: fear not, neither -be dismayed. - -31:9 And Moses wrote this law, and delivered it unto the priests the -sons of Levi, which bare the ark of the covenant of the LORD, and unto -all the elders of Israel. - -31:10 And Moses commanded them, saying, At the end of every seven -years, in the solemnity of the year of release, in the feast of -tabernacles, 31:11 When all Israel is come to appear before the LORD -thy God in the place which he shall choose, thou shalt read this law -before all Israel in their hearing. - -31:12 Gather the people together, men and women, and children, and thy -stranger that is within thy gates, that they may hear, and that they -may learn, and fear the LORD your God, and observe to do all the words -of this law: 31:13 And that their children, which have not known any -thing, may hear, and learn to fear the LORD your God, as long as ye -live in the land whither ye go over Jordan to possess it. - -31:14 And the LORD said unto Moses, Behold, thy days approach that -thou must die: call Joshua, and present yourselves in the tabernacle -of the congregation, that I may give him a charge. And Moses and -Joshua went, and presented themselves in the tabernacle of the -congregation. - -31:15 And the LORD appeared in the tabernacle in a pillar of a cloud: -and the pillar of the cloud stood over the door of the tabernacle. - -31:16 And the LORD said unto Moses, Behold, thou shalt sleep with thy -fathers; and this people will rise up, and go a whoring after the gods -of the strangers of the land, whither they go to be among them, and -will forsake me, and break my covenant which I have made with them. - -31:17 Then my anger shall be kindled against them in that day, and I -will forsake them, and I will hide my face from them, and they shall -be devoured, and many evils and troubles shall befall them; so that -they will say in that day, Are not these evils come upon us, because -our God is not among us? 31:18 And I will surely hide my face in that -day for all the evils which they shall have wrought, in that they are -turned unto other gods. - -31:19 Now therefore write ye this song for you, and teach it the -children of Israel: put it in their mouths, that this song may be a -witness for me against the children of Israel. - -31:20 For when I shall have brought them into the land which I sware -unto their fathers, that floweth with milk and honey; and they shall -have eaten and filled themselves, and waxen fat; then will they turn -unto other gods, and serve them, and provoke me, and break my -covenant. - -31:21 And it shall come to pass, when many evils and troubles are -befallen them, that this song shall testify against them as a witness; -for it shall not be forgotten out of the mouths of their seed: for I -know their imagination which they go about, even now, before I have -brought them into the land which I sware. - -31:22 Moses therefore wrote this song the same day, and taught it the -children of Israel. - -31:23 And he gave Joshua the son of Nun a charge, and said, Be strong -and of a good courage: for thou shalt bring the children of Israel -into the land which I sware unto them: and I will be with thee. - -31:24 And it came to pass, when Moses had made an end of writing the -words of this law in a book, until they were finished, 31:25 That -Moses commanded the Levites, which bare the ark of the covenant of the -LORD, saying, 31:26 Take this book of the law, and put it in the side -of the ark of the covenant of the LORD your God, that it may be there -for a witness against thee. - -31:27 For I know thy rebellion, and thy stiff neck: behold, while I am -yet alive with you this day, ye have been rebellious against the LORD; -and how much more after my death? 31:28 Gather unto me all the elders -of your tribes, and your officers, that I may speak these words in -their ears, and call heaven and earth to record against them. - -31:29 For I know that after my death ye will utterly corrupt -yourselves, and turn aside from the way which I have commanded you; -and evil will befall you in the latter days; because ye will do evil -in the sight of the LORD, to provoke him to anger through the work of -your hands. - -31:30 And Moses spake in the ears of all the congregation of Israel -the words of this song, until they were ended. - -32:1 Give ear, O ye heavens, and I will speak; and hear, O earth, the -words of my mouth. - -32:2 My doctrine shall drop as the rain, my speech shall distil as the -dew, as the small rain upon the tender herb, and as the showers upon -the grass: 32:3 Because I will publish the name of the LORD: ascribe -ye greatness unto our God. - -32:4 He is the Rock, his work is perfect: for all his ways are -judgment: a God of truth and without iniquity, just and right is he. - -32:5 They have corrupted themselves, their spot is not the spot of his -children: they are a perverse and crooked generation. - -32:6 Do ye thus requite the LORD, O foolish people and unwise? is not -he thy father that hath bought thee? hath he not made thee, and -established thee? 32:7 Remember the days of old, consider the years -of many generations: ask thy father, and he will shew thee; thy -elders, and they will tell thee. - -32:8 When the Most High divided to the nations their inheritance, when -he separated the sons of Adam, he set the bounds of the people -according to the number of the children of Israel. - -32:9 For the LORD's portion is his people; Jacob is the lot of his -inheritance. - -32:10 He found him in a desert land, and in the waste howling -wilderness; he led him about, he instructed him, he kept him as the -apple of his eye. - -32:11 As an eagle stirreth up her nest, fluttereth over her young, -spreadeth abroad her wings, taketh them, beareth them on her wings: -32:12 So the LORD alone did lead him, and there was no strange god -with him. - -32:13 He made him ride on the high places of the earth, that he might -eat the increase of the fields; and he made him to suck honey out of -the rock, and oil out of the flinty rock; 32:14 Butter of kine, and -milk of sheep, with fat of lambs, and rams of the breed of Bashan, and -goats, with the fat of kidneys of wheat; and thou didst drink the pure -blood of the grape. - -32:15 But Jeshurun waxed fat, and kicked: thou art waxen fat, thou art -grown thick, thou art covered with fatness; then he forsook God which -made him, and lightly esteemed the Rock of his salvation. - -32:16 They provoked him to jealousy with strange gods, with -abominations provoked they him to anger. - -32:17 They sacrificed unto devils, not to God; to gods whom they knew -not, to new gods that came newly up, whom your fathers feared not. - -32:18 Of the Rock that begat thee thou art unmindful, and hast -forgotten God that formed thee. - -32:19 And when the LORD saw it, he abhorred them, because of the -provoking of his sons, and of his daughters. - -32:20 And he said, I will hide my face from them, I will see what -their end shall be: for they are a very froward generation, children -in whom is no faith. - -32:21 They have moved me to jealousy with that which is not God; they -have provoked me to anger with their vanities: and I will move them to -jealousy with those which are not a people; I will provoke them to -anger with a foolish nation. - -32:22 For a fire is kindled in mine anger, and shall burn unto the -lowest hell, and shall consume the earth with her increase, and set on -fire the foundations of the mountains. - -32:23 I will heap mischiefs upon them; I will spend mine arrows upon -them. - -32:24 They shall be burnt with hunger, and devoured with burning heat, -and with bitter destruction: I will also send the teeth of beasts upon -them, with the poison of serpents of the dust. - -32:25 The sword without, and terror within, shall destroy both the -young man and the virgin, the suckling also with the man of gray -hairs. - -32:26 I said, I would scatter them into corners, I would make the -remembrance of them to cease from among men: 32:27 Were it not that I -feared the wrath of the enemy, lest their adversaries should behave -themselves strangely, and lest they should say, Our hand is high, and -the LORD hath not done all this. - -32:28 For they are a nation void of counsel, neither is there any -understanding in them. - -32:29 O that they were wise, that they understood this, that they -would consider their latter end! 32:30 How should one chase a -thousand, and two put ten thousand to flight, except their Rock had -sold them, and the LORD had shut them up? 32:31 For their rock is not -as our Rock, even our enemies themselves being judges. - -32:32 For their vine is of the vine of Sodom, and of the fields of -Gomorrah: their grapes are grapes of gall, their clusters are bitter: -32:33 Their wine is the poison of dragons, and the cruel venom of -asps. - -32:34 Is not this laid up in store with me, and sealed up among my -treasures? 32:35 To me belongeth vengeance and recompence; their foot -shall slide in due time: for the day of their calamity is at hand, and -the things that shall come upon them make haste. - -32:36 For the LORD shall judge his people, and repent himself for his -servants, when he seeth that their power is gone, and there is none -shut up, or left. - -32:37 And he shall say, Where are their gods, their rock in whom they -trusted, 32:38 Which did eat the fat of their sacrifices, and drank -the wine of their drink offerings? let them rise up and help you, and -be your protection. - -32:39 See now that I, even I, am he, and there is no god with me: I -kill, and I make alive; I wound, and I heal: neither is there any that -can deliver out of my hand. - -32:40 For I lift up my hand to heaven, and say, I live for ever. - -32:41 If I whet my glittering sword, and mine hand take hold on -judgment; I will render vengeance to mine enemies, and will reward -them that hate me. - -32:42 I will make mine arrows drunk with blood, and my sword shall -devour flesh; and that with the blood of the slain and of the -captives, from the beginning of revenges upon the enemy. - -32:43 Rejoice, O ye nations, with his people: for he will avenge the -blood of his servants, and will render vengeance to his adversaries, -and will be merciful unto his land, and to his people. - -32:44 And Moses came and spake all the words of this song in the ears -of the people, he, and Hoshea the son of Nun. - -32:45 And Moses made an end of speaking all these words to all Israel: -32:46 And he said unto them, Set your hearts unto all the words which -I testify among you this day, which ye shall command your children to -observe to do, all the words of this law. - -32:47 For it is not a vain thing for you; because it is your life: and -through this thing ye shall prolong your days in the land, whither ye -go over Jordan to possess it. - -32:48 And the LORD spake unto Moses that selfsame day, saying, 32:49 -Get thee up into this mountain Abarim, unto mount Nebo, which is in -the land of Moab, that is over against Jericho; and behold the land of -Canaan, which I give unto the children of Israel for a possession: -32:50 And die in the mount whither thou goest up, and be gathered unto -thy people; as Aaron thy brother died in mount Hor, and was gathered -unto his people: 32:51 Because ye trespassed against me among the -children of Israel at the waters of MeribahKadesh, in the wilderness -of Zin; because ye sanctified me not in the midst of the children of -Israel. - -32:52 Yet thou shalt see the land before thee; but thou shalt not go -thither unto the land which I give the children of Israel. - -33:1 And this is the blessing, wherewith Moses the man of God blessed -the children of Israel before his death. - -33:2 And he said, The LORD came from Sinai, and rose up from Seir unto -them; he shined forth from mount Paran, and he came with ten thousands -of saints: from his right hand went a fiery law for them. - -33:3 Yea, he loved the people; all his saints are in thy hand: and -they sat down at thy feet; every one shall receive of thy words. - -33:4 Moses commanded us a law, even the inheritance of the -congregation of Jacob. - -33:5 And he was king in Jeshurun, when the heads of the people and the -tribes of Israel were gathered together. - -33:6 Let Reuben live, and not die; and let not his men be few. - -33:7 And this is the blessing of Judah: and he said, Hear, LORD, the -voice of Judah, and bring him unto his people: let his hands be -sufficient for him; and be thou an help to him from his enemies. - -33:8 And of Levi he said, Let thy Thummim and thy Urim be with thy -holy one, whom thou didst prove at Massah, and with whom thou didst -strive at the waters of Meribah; 33:9 Who said unto his father and to -his mother, I have not seen him; neither did he acknowledge his -brethren, nor knew his own children: for they have observed thy word, -and kept thy covenant. - -33:10 They shall teach Jacob thy judgments, and Israel thy law: they -shall put incense before thee, and whole burnt sacrifice upon thine -altar. - -33:11 Bless, LORD, his substance, and accept the work of his hands; -smite through the loins of them that rise against him, and of them -that hate him, that they rise not again. - -33:12 And of Benjamin he said, The beloved of the LORD shall dwell in -safety by him; and the Lord shall cover him all the day long, and he -shall dwell between his shoulders. - -33:13 And of Joseph he said, Blessed of the LORD be his land, for the -precious things of heaven, for the dew, and for the deep that coucheth -beneath, 33:14 And for the precious fruits brought forth by the sun, -and for the precious things put forth by the moon, 33:15 And for the -chief things of the ancient mountains, and for the precious things of -the lasting hills, 33:16 And for the precious things of the earth and -fulness thereof, and for the good will of him that dwelt in the bush: -let the blessing come upon the head of Joseph, and upon the top of the -head of him that was separated from his brethren. - -33:17 His glory is like the firstling of his bullock, and his horns -are like the horns of unicorns: with them he shall push the people -together to the ends of the earth: and they are the ten thousands of -Ephraim, and they are the thousands of Manasseh. - -33:18 And of Zebulun he said, Rejoice, Zebulun, in thy going out; and, -Issachar, in thy tents. - -33:19 They shall call the people unto the mountain; there they shall -offer sacrifices of righteousness: for they shall suck of the -abundance of the seas, and of treasures hid in the sand. - -33:20 And of Gad he said, Blessed be he that enlargeth Gad: he -dwelleth as a lion, and teareth the arm with the crown of the head. - -33:21 And he provided the first part for himself, because there, in a -portion of the lawgiver, was he seated; and he came with the heads of -the people, he executed the justice of the LORD, and his judgments -with Israel. - -33:22 And of Dan he said, Dan is a lion's whelp: he shall leap from -Bashan. - -33:23 And of Naphtali he said, O Naphtali, satisfied with favour, and -full with the blessing of the LORD: possess thou the west and the -south. - -33:24 And of Asher he said, Let Asher be blessed with children; let -him be acceptable to his brethren, and let him dip his foot in oil. - -33:25 Thy shoes shall be iron and brass; and as thy days, so shall thy -strength be. - -33:26 There is none like unto the God of Jeshurun, who rideth upon the -heaven in thy help, and in his excellency on the sky. - -33:27 The eternal God is thy refuge, and underneath are the -everlasting arms: and he shall thrust out the enemy from before thee; -and shall say, Destroy them. - -33:28 Israel then shall dwell in safety alone: the fountain of Jacob -shall be upon a land of corn and wine; also his heavens shall drop -down dew. - -33:29 Happy art thou, O Israel: who is like unto thee, O people saved -by the LORD, the shield of thy help, and who is the sword of thy -excellency! and thine enemies shall be found liars unto thee; and thou -shalt tread upon their high places. - -34:1 And Moses went up from the plains of Moab unto the mountain of -Nebo, to the top of Pisgah, that is over against Jericho. And the LORD -shewed him all the land of Gilead, unto Dan, 34:2 And all Naphtali, -and the land of Ephraim, and Manasseh, and all the land of Judah, unto -the utmost sea, 34:3 And the south, and the plain of the valley of -Jericho, the city of palm trees, unto Zoar. - -34:4 And the LORD said unto him, This is the land which I sware unto -Abraham, unto Isaac, and unto Jacob, saying, I will give it unto thy -seed: I have caused thee to see it with thine eyes, but thou shalt not -go over thither. - -34:5 So Moses the servant of the LORD died there in the land of Moab, -according to the word of the LORD. - -34:6 And he buried him in a valley in the land of Moab, over against -Bethpeor: but no man knoweth of his sepulchre unto this day. - -34:7 And Moses was an hundred and twenty years old when he died: his -eye was not dim, nor his natural force abated. - -34:8 And the children of Israel wept for Moses in the plains of Moab -thirty days: so the days of weeping and mourning for Moses were ended. - -34:9 And Joshua the son of Nun was full of the spirit of wisdom; for -Moses had laid his hands upon him: and the children of Israel -hearkened unto him, and did as the LORD commanded Moses. - -34:10 And there arose not a prophet since in Israel like unto Moses, -whom the LORD knew face to face, 34:11 In all the signs and the -wonders, which the LORD sent him to do in the land of Egypt to -Pharaoh, and to all his servants, and to all his land, 34:12 And in -all that mighty hand, and in all the great terror which Moses shewed -in the sight of all Israel. - - - - -The Book of Joshua - - -1:1 Now after the death of Moses the servant of the LORD it came to -pass, that the LORD spake unto Joshua the son of Nun, Moses' minister, -saying, 1:2 Moses my servant is dead; now therefore arise, go over -this Jordan, thou, and all this people, unto the land which I do give -to them, even to the children of Israel. - -1:3 Every place that the sole of your foot shall tread upon, that have -I given unto you, as I said unto Moses. - -1:4 From the wilderness and this Lebanon even unto the great river, -the river Euphrates, all the land of the Hittites, and unto the great -sea toward the going down of the sun, shall be your coast. - -1:5 There shall not any man be able to stand before thee all the days -of thy life: as I was with Moses, so I will be with thee: I will not -fail thee, nor forsake thee. - -1:6 Be strong and of a good courage: for unto this people shalt thou -divide for an inheritance the land, which I sware unto their fathers -to give them. - -1:7 Only be thou strong and very courageous, that thou mayest observe -to do according to all the law, which Moses my servant commanded thee: -turn not from it to the right hand or to the left, that thou mayest -prosper withersoever thou goest. - -1:8 This book of the law shall not depart out of thy mouth; but thou -shalt meditate therein day and night, that thou mayest observe to do -according to all that is written therein: for then thou shalt make thy -way prosperous, and then thou shalt have good success. - -1:9 Have not I commanded thee? Be strong and of a good courage; be not -afraid, neither be thou dismayed: for the LORD thy God is with thee -whithersoever thou goest. - -1:10 Then Joshua commanded the officers of the people, saying, 1:11 -Pass through the host, and command the people, saying, Prepare you -victuals; for within three days ye shall pass over this Jordan, to go -in to possess the land, which the LORD your God giveth you to possess -it. - -1:12 And to the Reubenites, and to the Gadites, and to half the tribe -of Manasseh, spake Joshua, saying, 1:13 Remember the word which Moses -the servant of the LORD commanded you, saying, The LORD your God hath -given you rest, and hath given you this land. - -1:14 Your wives, your little ones, and your cattle, shall remain in -the land which Moses gave you on this side Jordan; but ye shall pass -before your brethren armed, all the mighty men of valour, and help -them; 1:15 Until the LORD have given your brethren rest, as he hath -given you, and they also have possessed the land which the LORD your -God giveth them: then ye shall return unto the land of your -possession, and enjoy it, which Moses the LORD's servant gave you on -this side Jordan toward the sunrising. - -1:16 And they answered Joshua, saying, All that thou commandest us we -will do, and whithersoever thou sendest us, we will go. - -1:17 According as we hearkened unto Moses in all things, so will we -hearken unto thee: only the LORD thy God be with thee, as he was with -Moses. - -1:18 Whosoever he be that doth rebel against thy commandment, and will -not hearken unto thy words in all that thou commandest him, he shall -be put to death: only be strong and of a good courage. - -2:1 And Joshua the son of Nun sent out of Shittim two men to spy -secretly, saying, Go view the land, even Jericho. And they went, and -came into an harlot's house, named Rahab, and lodged there. - -2:2 And it was told the king of Jericho, saying, Behold, there came -men in hither to night of the children of Israel to search out the -country. - -2:3 And the king of Jericho sent unto Rahab, saying, Bring forth the -men that are come to thee, which are entered into thine house: for -they be come to search out all the country. - -2:4 And the woman took the two men, and hid them, and said thus, There -came men unto me, but I wist not whence they were: 2:5 And it came to -pass about the time of shutting of the gate, when it was dark, that -the men went out: whither the men went I wot not: pursue after them -quickly; for ye shall overtake them. - -2:6 But she had brought them up to the roof of the house, and hid them -with the stalks of flax, which she had laid in order upon the roof. - -2:7 And the men pursued after them the way to Jordan unto the fords: -and as soon as they which pursued after them were gone out, they shut -the gate. - -2:8 And before they were laid down, she came up unto them upon the -roof; 2:9 And she said unto the men, I know that the LORD hath given -you the land, and that your terror is fallen upon us, and that all the -inhabitants of the land faint because of you. - -2:10 For we have heard how the LORD dried up the water of the Red sea -for you, when ye came out of Egypt; and what ye did unto the two kings -of the Amorites, that were on the other side Jordan, Sihon and Og, -whom ye utterly destroyed. - -2:11 And as soon as we had heard these things, our hearts did melt, -neither did there remain any more courage in any man, because of you: -for the LORD your God, he is God in heaven above, and in earth -beneath. - -2:12 Now therefore, I pray you, swear unto me by the LORD, since I -have shewed you kindness, that ye will also shew kindness unto my -father's house, and give me a true token: 2:13 And that ye will save -alive my father, and my mother, and my brethren, and my sisters, and -all that they have, and deliver our lives from death. - -2:14 And the men answered her, Our life for yours, if ye utter not -this our business. And it shall be, when the LORD hath given us the -land, that we will deal kindly and truly with thee. - -2:15 Then she let them down by a cord through the window: for her -house was upon the town wall, and she dwelt upon the wall. - -2:16 And she said unto them, Get you to the mountain, lest the -pursuers meet you; and hide yourselves there three days, until the -pursuers be returned: and afterward may ye go your way. - -2:17 And the men said unto her, We will be blameless of this thine -oath which thou hast made us swear. - -2:18 Behold, when we come into the land, thou shalt bind this line of -scarlet thread in the window which thou didst let us down by: and thou -shalt bring thy father, and thy mother, and thy brethren, and all thy -father's household, home unto thee. - -2:19 And it shall be, that whosoever shall go out of the doors of thy -house into the street, his blood shall be upon his head, and we will -be guiltless: and whosoever shall be with thee in the house, his blood -shall be on our head, if any hand be upon him. - -2:20 And if thou utter this our business, then we will be quit of -thine oath which thou hast made us to swear. - -2:21 And she said, According unto your words, so be it. And she sent -them away, and they departed: and she bound the scarlet line in the -window. - -2:22 And they went, and came unto the mountain, and abode there three -days, until the pursuers were returned: and the pursuers sought them -throughout all the way, but found them not. - -2:23 So the two men returned, and descended from the mountain, and -passed over, and came to Joshua the son of Nun, and told him all -things that befell them: 2:24 And they said unto Joshua, Truly the -LORD hath delivered into our hands all the land; for even all the -inhabitants of the country do faint because of us. - -3:1 And Joshua rose early in the morning; and they removed from -Shittim, and came to Jordan, he and all the children of Israel, and -lodged there before they passed over. - -3:2 And it came to pass after three days, that the officers went -through the host; 3:3 And they commanded the people, saying, When ye -see the ark of the covenant of the LORD your God, and the priests the -Levites bearing it, then ye shall remove from your place, and go after -it. - -3:4 Yet there shall be a space between you and it, about two thousand -cubits by measure: come not near unto it, that ye may know the way by -which ye must go: for ye have not passed this way heretofore. - -3:5 And Joshua said unto the people, Sanctify yourselves: for to -morrow the LORD will do wonders among you. - -3:6 And Joshua spake unto the priests, saying, Take up the ark of the -covenant, and pass over before the people. And they took up the ark of -the covenant, and went before the people. - -3:7 And the LORD said unto Joshua, This day will I begin to magnify -thee in the sight of all Israel, that they may know that, as I was -with Moses, so I will be with thee. - -3:8 And thou shalt command the priests that bear the ark of the -covenant, saying, When ye are come to the brink of the water of -Jordan, ye shall stand still in Jordan. - -3:9 And Joshua said unto the children of Israel, Come hither, and hear -the words of the LORD your God. - -3:10 And Joshua said, Hereby ye shall know that the living God is -among you, and that he will without fail drive out from before you the -Canaanites, and the Hittites, and the Hivites, and the Perizzites, and -the Girgashites, and the Amorites, and the Jebusites. - -3:11 Behold, the ark of the covenant of the LORD of all the earth -passeth over before you into Jordan. - -3:12 Now therefore take you twelve men out of the tribes of Israel, -out of every tribe a man. - -3:13 And it shall come to pass, as soon as the soles of the feet of -the priests that bear the ark of the LORD, the LORD of all the earth, -shall rest in the waters of Jordan, that the waters of Jordan shall be -cut off from the waters that come down from above; and they shall -stand upon an heap. - -3:14 And it came to pass, when the people removed from their tents, to -pass over Jordan, and the priests bearing the ark of the covenant -before the people; 3:15 And as they that bare the ark were come unto -Jordan, and the feet of the priests that bare the ark were dipped in -the brim of the water, (for Jordan overfloweth all his banks all the -time of harvest,) 3:16 That the waters which came down from above -stood and rose up upon an heap very far from the city Adam, that is -beside Zaretan: and those that came down toward the sea of the plain, -even the salt sea, failed, and were cut off: and the people passed -over right against Jericho. - -3:17 And the priests that bare the ark of the covenant of the LORD -stood firm on dry ground in the midst of Jordan, and all the -Israelites passed over on dry ground, until all the people were passed -clean over Jordan. - -4:1 And it came to pass, when all the people were clean passed over -Jordan, that the LORD spake unto Joshua, saying, 4:2 Take you twelve -men out of the people, out of every tribe a man, 4:3 And command ye -them, saying, Take you hence out of the midst of Jordan, out of the -place where the priests' feet stood firm, twelve stones, and ye shall -carry them over with you, and leave them in the lodging place, where -ye shall lodge this night. - -4:4 Then Joshua called the twelve men, whom he had prepared of the -children of Israel, out of every tribe a man: 4:5 And Joshua said unto -them, Pass over before the ark of the LORD your God into the midst of -Jordan, and take you up every man of you a stone upon his shoulder, -according unto the number of the tribes of the children of Israel: 4:6 -That this may be a sign among you, that when your children ask their -fathers in time to come, saying, What mean ye by these stones? 4:7 -Then ye shall answer them, That the waters of Jordan were cut off -before the ark of the covenant of the LORD; when it passed over -Jordan, the waters of Jordan were cut off: and these stones shall be -for a memorial unto the children of Israel for ever. - -4:8 And the children of Israel did so as Joshua commanded, and took up -twelve stones out of the midst of Jordan, as the LORD spake unto -Joshua, according to the number of the tribes of the children of -Israel, and carried them over with them unto the place where they -lodged, and laid them down there. - -4:9 And Joshua set up twelve stones in the midst of Jordan, in the -place where the feet of the priests which bare the ark of the covenant -stood: and they are there unto this day. - -4:10 For the priests which bare the ark stood in the midst of Jordan, -until everything was finished that the LORD commanded Joshua to speak -unto the people, according to all that Moses commanded Joshua: and the -people hasted and passed over. - -4:11 And it came to pass, when all the people were clean passed over, -that the ark of the LORD passed over, and the priests, in the presence -of the people. - -4:12 And the children of Reuben, and the children of Gad, and half the -tribe of Manasseh, passed over armed before the children of Israel, as -Moses spake unto them: 4:13 About forty thousand prepared for war -passed over before the LORD unto battle, to the plains of Jericho. - -4:14 On that day the LORD magnified Joshua in the sight of all Israel; -and they feared him, as they feared Moses, all the days of his life. - -4:15 And the LORD spake unto Joshua, saying, 4:16 Command the priests -that bear the ark of the testimony, that they come up out of Jordan. - -4:17 Joshua therefore commanded the priests, saying, Come ye up out of -Jordan. - -4:18 And it came to pass, when the priests that bare the ark of the -covenant of the LORD were come up out of the midst of Jordan, and the -soles of the priests' feet were lifted up unto the dry land, that the -waters of Jordan returned unto their place, and flowed over all his -banks, as they did before. - -4:19 And the people came up out of Jordan on the tenth day of the -first month, and encamped in Gilgal, in the east border of Jericho. - -4:20 And those twelve stones, which they took out of Jordan, did -Joshua pitch in Gilgal. - -4:21 And he spake unto the children of Israel, saying, When your -children shall ask their fathers in time to come, saying, What mean -these stones? 4:22 Then ye shall let your children know, saying, -Israel came over this Jordan on dry land. - -4:23 For the LORD your God dried up the waters of Jordan from before -you, until ye were passed over, as the LORD your God did to the Red -sea, which he dried up from before us, until we were gone over: 4:24 -That all the people of the earth might know the hand of the LORD, that -it is mighty: that ye might fear the LORD your God for ever. - -5:1 And it came to pass, when all the kings of the Amorites, which -were on the side of Jordan westward, and all the kings of the -Canaanites, which were by the sea, heard that the LORD had dried up -the waters of Jordan from before the children of Israel, until we were -passed over, that their heart melted, neither was there spirit in them -any more, because of the children of Israel. - -5:2 At that time the LORD said unto Joshua, Make thee sharp knives, -and circumcise again the children of Israel the second time. - -5:3 And Joshua made him sharp knives, and circumcised the children of -Israel at the hill of the foreskins. - -5:4 And this is the cause why Joshua did circumcise: All the people -that came out of Egypt, that were males, even all the men of war, died -in the wilderness by the way, after they came out of Egypt. - -5:5 Now all the people that came out were circumcised: but all the -people that were born in the wilderness by the way as they came forth -out of Egypt, them they had not circumcised. - -5:6 For the children of Israel walked forty years in the wilderness, -till all the people that were men of war, which came out of Egypt, -were consumed, because they obeyed not the voice of the LORD: unto -whom the LORD sware that he would not shew them the land, which the -LORD sware unto their fathers that he would give us, a land that -floweth with milk and honey. - -5:7 And their children, whom he raised up in their stead, them Joshua -circumcised: for they were uncircumcised, because they had not -circumcised them by the way. - -5:8 And it came to pass, when they had done circumcising all the -people, that they abode in their places in the camp, till they were -whole. - -5:9 And the LORD said unto Joshua, This day have I rolled away the -reproach of Egypt from off you. Wherefore the name of the place is -called Gilgal unto this day. - -5:10 And the children of Israel encamped in Gilgal, and kept the -passover on the fourteenth day of the month at even in the plains of -Jericho. - -5:11 And they did eat of the old corn of the land on the morrow after -the passover, unleavened cakes, and parched corn in the selfsame day. - -5:12 And the manna ceased on the morrow after they had eaten of the -old corn of the land; neither had the children of Israel manna any -more; but they did eat of the fruit of the land of Canaan that year. - -5:13 And it came to pass, when Joshua was by Jericho, that he lifted -up his eyes and looked, and, behold, there stood a man over against -him with his sword drawn in his hand: and Joshua went unto him, and -said unto him, Art thou for us, or for our adversaries? 5:14 And he -said, Nay; but as captain of the host of the LORD am I now come. And -Joshua fell on his face to the earth, and did worship, and said unto -him, What saith my Lord unto his servant? 5:15 And the captain of the -LORD's host said unto Joshua, Loose thy shoe from off thy foot; for -the place whereon thou standest is holy. And Joshua did so. - -6:1 Now Jericho was straitly shut up because of the children of -Israel: none went out, and none came in. - -6:2 And the LORD said unto Joshua, See, I have given into thine hand -Jericho, and the king thereof, and the mighty men of valour. - -6:3 And ye shall compass the city, all ye men of war, and go round -about the city once. Thus shalt thou do six days. - -6:4 And seven priests shall bear before the ark seven trumpets of -rams' horns: and the seventh day ye shall compass the city seven -times, and the priests shall blow with the trumpets. - -6:5 And it shall come to pass, that when they make a long blast with -the ram's horn, and when ye hear the sound of the trumpet, all the -people shall shout with a great shout; and the wall of the city shall -fall down flat, and the people shall ascend up every man straight -before him. - -6:6 And Joshua the son of Nun called the priests, and said unto them, -Take up the ark of the covenant, and let seven priests bear seven -trumpets of rams' horns before the ark of the LORD. - -6:7 And he said unto the people, Pass on, and compass the city, and -let him that is armed pass on before the ark of the LORD. - -6:8 And it came to pass, when Joshua had spoken unto the people, that -the seven priests bearing the seven trumpets of rams' horns passed on -before the LORD, and blew with the trumpets: and the ark of the -covenant of the LORD followed them. - -6:9 And the armed men went before the priests that blew with the -trumpets, and the rereward came after the ark, the priests going on, -and blowing with the trumpets. - -6:10 And Joshua had commanded the people, saying, Ye shall not shout, -nor make any noise with your voice, neither shall any word proceed out -of your mouth, until the day I bid you shout; then shall ye shout. - -6:11 So the ark of the LORD compassed the city, going about it once: -and they came into the camp, and lodged in the camp. - -6:12 And Joshua rose early in the morning, and the priests took up the -ark of the LORD. - -6:13 And seven priests bearing seven trumpets of rams' horns before -the ark of the LORD went on continually, and blew with the trumpets: -and the armed men went before them; but the rereward came after the -ark of the LORD, the priests going on, and blowing with the trumpets. - -6:14 And the second day they compassed the city once, and returned -into the camp: so they did six days. - -6:15 And it came to pass on the seventh day, that they rose early -about the dawning of the day, and compassed the city after the same -manner seven times: only on that day they compassed the city seven -times. - -6:16 And it came to pass at the seventh time, when the priests blew -with the trumpets, Joshua said unto the people, Shout; for the LORD -hath given you the city. - -6:17 And the city shall be accursed, even it, and all that are -therein, to the LORD: only Rahab the harlot shall live, she and all -that are with her in the house, because she hid the messengers that we -sent. - -6:18 And ye, in any wise keep yourselves from the accursed thing, lest -ye make yourselves accursed, when ye take of the accursed thing, and -make the camp of Israel a curse, and trouble it. - -6:19 But all the silver, and gold, and vessels of brass and iron, are -consecrated unto the LORD: they shall come into the treasury of the -LORD. - -6:20 So the people shouted when the priests blew with the trumpets: -and it came to pass, when the people heard the sound of the trumpet, -and the people shouted with a great shout, that the wall fell down -flat, so that the people went up into the city, every man straight -before him, and they took the city. - -6:21 And they utterly destroyed all that was in the city, both man and -woman, young and old, and ox, and sheep, and ass, with the edge of the -sword. - -6:22 But Joshua had said unto the two men that had spied out the -country, Go into the harlot's house, and bring out thence the woman, -and all that she hath, as ye sware unto her. - -6:23 And the young men that were spies went in, and brought out Rahab, -and her father, and her mother, and her brethren, and all that she -had; and they brought out all her kindred, and left them without the -camp of Israel. - -6:24 And they burnt the city with fire, and all that was therein: only -the silver, and the gold, and the vessels of brass and of iron, they -put into the treasury of the house of the LORD. - -6:25 And Joshua saved Rahab the harlot alive, and her father's -household, and all that she had; and she dwelleth in Israel even unto -this day; because she hid the messengers, which Joshua sent to spy out -Jericho. - -6:26 And Joshua adjured them at that time, saying, Cursed be the man -before the LORD, that riseth up and buildeth this city Jericho: he -shall lay the foundation thereof in his firstborn, and in his youngest -son shall he set up the gates of it. - -6:27 So the LORD was with Joshua; and his fame was noised throughout -all the country. - -7:1 But the children of Israel committed a trespass in the accursed -thing: for Achan, the son of Carmi, the son of Zabdi, the son of -Zerah, of the tribe of Judah, took of the accursed thing: and the -anger of the LORD was kindled against the children of Israel. - -7:2 And Joshua sent men from Jericho to Ai, which is beside Bethaven, -on the east of Bethel, and spake unto them, saying, Go up and view the -country. - -And the men went up and viewed Ai. - -7:3 And they returned to Joshua, and said unto him, Let not all the -people go up; but let about two or three thousand men go up and smite -Ai; and make not all the people to labour thither; for they are but -few. - -7:4 So there went up thither of the people about three thousand men: -and they fled before the men of Ai. - -7:5 And the men of Ai smote of them about thirty and six men: for they -chased them from before the gate even unto Shebarim, and smote them in -the going down: wherefore the hearts of the people melted, and became -as water. - -7:6 And Joshua rent his clothes, and fell to the earth upon his face -before the ark of the LORD until the eventide, he and the elders of -Israel, and put dust upon their heads. - -7:7 And Joshua said, Alas, O LORD God, wherefore hast thou at all -brought this people over Jordan, to deliver us into the hand of the -Amorites, to destroy us? would to God we had been content, and dwelt -on the other side Jordan! 7:8 O LORD, what shall I say, when Israel -turneth their backs before their enemies! 7:9 For the Canaanites and -all the inhabitants of the land shall hear of it, and shall environ us -round, and cut off our name from the earth: and what wilt thou do unto -thy great name? 7:10 And the LORD said unto Joshua, Get thee up; -wherefore liest thou thus upon thy face? 7:11 Israel hath sinned, and -they have also transgressed my covenant which I commanded them: for -they have even taken of the accursed thing, and have also stolen, and -dissembled also, and they have put it even among their own stuff. - -7:12 Therefore the children of Israel could not stand before their -enemies, but turned their backs before their enemies, because they -were accursed: neither will I be with you any more, except ye destroy -the accursed from among you. - -7:13 Up, sanctify the people, and say, Sanctify yourselves against to -morrow: for thus saith the LORD God of Israel, There is an accursed -thing in the midst of thee, O Israel: thou canst not stand before -thine enemies, until ye take away the accursed thing from among you. - -7:14 In the morning therefore ye shall be brought according to your -tribes: and it shall be, that the tribe which the LORD taketh shall -come according to the families thereof; and the family which the LORD -shall take shall come by households; and the household which the LORD -shall take shall come man by man. - -7:15 And it shall be, that he that is taken with the accursed thing -shall be burnt with fire, he and all that he hath: because he hath -transgressed the covenant of the LORD, and because he hath wrought -folly in Israel. - -7:16 So Joshua rose up early in the morning, and brought Israel by -their tribes; and the tribe of Judah was taken: 7:17 And he brought -the family of Judah; and he took the family of the Zarhites: and he -brought the family of the Zarhites man by man; and Zabdi was taken: -7:18 And he brought his household man by man; and Achan, the son of -Carmi, the son of Zabdi, the son of Zerah, of the tribe of Judah, was -taken. - -7:19 And Joshua said unto Achan, My son, give, I pray thee, glory to -the LORD God of Israel, and make confession unto him; and tell me now -what thou hast done; hide it not from me. - -7:20 And Achan answered Joshua, and said, Indeed I have sinned against -the LORD God of Israel, and thus and thus have I done: 7:21 When I saw -among the spoils a goodly Babylonish garment, and two hundred shekels -of silver, and a wedge of gold of fifty shekels weight, then I coveted -them, and took them; and, behold, they are hid in the earth in the -midst of my tent, and the silver under it. - -7:22 So Joshua sent messengers, and they ran unto the tent; and, -behold, it was hid in his tent, and the silver under it. - -7:23 And they took them out of the midst of the tent, and brought them -unto Joshua, and unto all the children of Israel, and laid them out -before the LORD. - -7:24 And Joshua, and all Israel with him, took Achan the son of Zerah, -and the silver, and the garment, and the wedge of gold, and his sons, -and his daughters, and his oxen, and his asses, and his sheep, and his -tent, and all that he had: and they brought them unto the valley of -Achor. - -7:25 And Joshua said, Why hast thou troubled us? the LORD shall -trouble thee this day. And all Israel stoned him with stones, and -burned them with fire, after they had stoned them with stones. - -7:26 And they raised over him a great heap of stones unto this day. So -the LORD turned from the fierceness of his anger. Wherefore the name -of that place was called, The valley of Achor, unto this day. - -8:1 And the LORD said unto Joshua, Fear not, neither be thou dismayed: -take all the people of war with thee, and arise, go up to Ai: see, I -have given into thy hand the king of Ai, and his people, and his city, -and his land: 8:2 And thou shalt do to Ai and her king as thou didst -unto Jericho and her king: only the spoil thereof, and the cattle -thereof, shall ye take for a prey unto yourselves: lay thee an ambush -for the city behind it. - -8:3 So Joshua arose, and all the people of war, to go up against Ai: -and Joshua chose out thirty thousand mighty men of valour, and sent -them away by night. - -8:4 And he commanded them, saying, Behold, ye shall lie in wait -against the city, even behind the city: go not very far from the city, -but be ye all ready: 8:5 And I, and all the people that are with me, -will approach unto the city: and it shall come to pass, when they come -out against us, as at the first, that we will flee before them, 8:6 -(For they will come out after us) till we have drawn them from the -city; for they will say, They flee before us, as at the first: -therefore we will flee before them. - -8:7 Then ye shall rise up from the ambush, and seize upon the city: -for the LORD your God will deliver it into your hand. - -8:8 And it shall be, when ye have taken the city, that ye shall set -the city on fire: according to the commandment of the LORD shall ye -do. See, I have commanded you. - -8:9 Joshua therefore sent them forth: and they went to lie in ambush, -and abode between Bethel and Ai, on the west side of Ai: but Joshua -lodged that night among the people. - -8:10 And Joshua rose up early in the morning, and numbered the people, -and went up, he and the elders of Israel, before the people to Ai. - -8:11 And all the people, even the people of war that were with him, -went up, and drew nigh, and came before the city, and pitched on the -north side of Ai: now there was a valley between them and Ai. - -8:12 And he took about five thousand men, and set them to lie in -ambush between Bethel and Ai, on the west side of the city. - -8:13 And when they had set the people, even all the host that was on -the north of the city, and their liers in wait on the west of the -city, Joshua went that night into the midst of the valley. - -8:14 And it came to pass, when the king of Ai saw it, that they hasted -and rose up early, and the men of the city went out against Israel to -battle, he and all his people, at a time appointed, before the plain; -but he wist not that there were liers in ambush against him behind the -city. - -8:15 And Joshua and all Israel made as if they were beaten before -them, and fled by the way of the wilderness. - -8:16 And all the people that were in Ai were called together to pursue -after them: and they pursued after Joshua, and were drawn away from -the city. - -8:17 And there was not a man left in Ai or Bethel, that went not out -after Israel: and they left the city open, and pursued after Israel. - -8:18 And the LORD said unto Joshua, Stretch out the spear that is in -thy hand toward Ai; for I will give it into thine hand. And Joshua -stretched out the spear that he had in his hand toward the city. - -8:19 And the ambush arose quickly out of their place, and they ran as -soon as he had stretched out his hand: and they entered into the city, -and took it, and hasted and set the city on fire. - -8:20 And when the men of Ai looked behind them, they saw, and, behold, -the smoke of the city ascended up to heaven, and they had no power to -flee this way or that way: and the people that fled to the wilderness -turned back upon the pursuers. - -8:21 And when Joshua and all Israel saw that the ambush had taken the -city, and that the smoke of the city ascended, then they turned again, -and slew the men of Ai. - -8:22 And the other issued out of the city against them; so they were -in the midst of Israel, some on this side, and some on that side: and -they smote them, so that they let none of them remain or escape. - -8:23 And the king of Ai they took alive, and brought him to Joshua. - -8:24 And it came to pass, when Israel had made an end of slaying all -the inhabitants of Ai in the field, in the wilderness wherein they -chased them, and when they were all fallen on the edge of the sword, -until they were consumed, that all the Israelites returned unto Ai, -and smote it with the edge of the sword. - -8:25 And so it was, that all that fell that day, both of men and -women, were twelve thousand, even all the men of Ai. - -8:26 For Joshua drew not his hand back, wherewith he stretched out the -spear, until he had utterly destroyed all the inhabitants of Ai. - -8:27 Only the cattle and the spoil of that city Israel took for a prey -unto themselves, according unto the word of the LORD which he -commanded Joshua. - -8:28 And Joshua burnt Ai, and made it an heap for ever, even a -desolation unto this day. - -8:29 And the king of Ai he hanged on a tree until eventide: and as -soon as the sun was down, Joshua commanded that they should take his -carcase down from the tree, and cast it at the entering of the gate of -the city, and raise thereon a great heap of stones, that remaineth -unto this day. - -8:30 Then Joshua built an altar unto the LORD God of Israel in mount -Ebal, 8:31 As Moses the servant of the LORD commanded the children of -Israel, as it is written in the book of the law of Moses, an altar of -whole stones, over which no man hath lift up any iron: and they -offered thereon burnt offerings unto the LORD, and sacrificed peace -offerings. - -8:32 And he wrote there upon the stones a copy of the law of Moses, -which he wrote in the presence of the children of Israel. - -8:33 And all Israel, and their elders, and officers, and their judges, -stood on this side the ark and on that side before the priests the -Levites, which bare the ark of the covenant of the LORD, as well the -stranger, as he that was born among them; half of them over against -mount Gerizim, and half of them over against mount Ebal; as Moses the -servant of the LORD had commanded before, that they should bless the -people of Israel. - -8:34 And afterward he read all the words of the law, the blessings and -cursings, according to all that is written in the book of the law. - -8:35 There was not a word of all that Moses commanded, which Joshua -read not before all the congregation of Israel, with the women, and -the little ones, and the strangers that were conversant among them. - -9:1 And it came to pass, when all the kings which were on this side -Jordan, in the hills, and in the valleys, and in all the coasts of the -great sea over against Lebanon, the Hittite, and the Amorite, the -Canaanite, the Perizzite, the Hivite, and the Jebusite, heard thereof; -9:2 That they gathered themselves together, to fight with Joshua and -with Israel, with one accord. - -9:3 And when the inhabitants of Gibeon heard what Joshua had done unto -Jericho and to Ai, 9:4 They did work wilily, and went and made as if -they had been ambassadors, and took old sacks upon their asses, and -wine bottles, old, and rent, and bound up; 9:5 And old shoes and -clouted upon their feet, and old garments upon them; and all the bread -of their provision was dry and mouldy. - -9:6 And they went to Joshua unto the camp at Gilgal, and said unto -him, and to the men of Israel, We be come from a far country: now -therefore make ye a league with us. - -9:7 And the men of Israel said unto the Hivites, Peradventure ye dwell -among us; and how shall we make a league with you? 9:8 And they said -unto Joshua, We are thy servants. And Joshua said unto them, Who are -ye? and from whence come ye? 9:9 And they said unto him, From a very -far country thy servants are come because of the name of the LORD thy -God: for we have heard the fame of him, and all that he did in Egypt, -9:10 And all that he did to the two kings of the Amorites, that were -beyond Jordan, to Sihon king of Heshbon, and to Og king of Bashan, -which was at Ashtaroth. - -9:11 Wherefore our elders and all the inhabitants of our country spake -to us, saying, Take victuals with you for the journey, and go to meet -them, and say unto them, We are your servants: therefore now make ye a -league with us. - -9:12 This our bread we took hot for our provision out of our houses on -the day we came forth to go unto you; but now, behold, it is dry, and -it is mouldy: 9:13 And these bottles of wine, which we filled, were -new; and, behold, they be rent: and these our garments and our shoes -are become old by reason of the very long journey. - -9:14 And the men took of their victuals, and asked not counsel at the -mouth of the LORD. - -9:15 And Joshua made peace with them, and made a league with them, to -let them live: and the princes of the congregation sware unto them. - -9:16 And it came to pass at the end of three days after they had made -a league with them, that they heard that they were their neighbours, -and that they dwelt among them. - -9:17 And the children of Israel journeyed, and came unto their cities -on the third day. Now their cities were Gibeon, and Chephirah, and -Beeroth, and Kirjathjearim. - -9:18 And the children of Israel smote them not, because the princes of -the congregation had sworn unto them by the LORD God of Israel. And -all the congregation murmured against the princes. - -9:19 But all the princes said unto all the congregation, We have sworn -unto them by the LORD God of Israel: now therefore we may not touch -them. - -9:20 This we will do to them; we will even let them live, lest wrath -be upon us, because of the oath which we sware unto them. - -9:21 And the princes said unto them, Let them live; but let them be -hewers of wood and drawers of water unto all the congregation; as the -princes had promised them. - -9:22 And Joshua called for them, and he spake unto them, saying, -Wherefore have ye beguiled us, saying, We are very far from you; when -ye dwell among us? 9:23 Now therefore ye are cursed, and there shall -none of you be freed from being bondmen, and hewers of wood and -drawers of water for the house of my God. - -9:24 And they answered Joshua, and said, Because it was certainly told -thy servants, how that the LORD thy God commanded his servant Moses to -give you all the land, and to destroy all the inhabitants of the land -from before you, therefore we were sore afraid of our lives because of -you, and have done this thing. - -9:25 And now, behold, we are in thine hand: as it seemeth good and -right unto thee to do unto us, do. - -9:26 And so did he unto them, and delivered them out of the hand of -the children of Israel, that they slew them not. - -9:27 And Joshua made them that day hewers of wood and drawers of water -for the congregation, and for the altar of the LORD, even unto this -day, in the place which he should choose. - -10:1 Now it came to pass, when Adonizedec king of Jerusalem had heard -how Joshua had taken Ai, and had utterly destroyed it; as he had done -to Jericho and her king, so he had done to Ai and her king; and how -the inhabitants of Gibeon had made peace with Israel, and were among -them; 10:2 That they feared greatly, because Gibeon was a great city, -as one of the royal cities, and because it was greater than Ai, and -all the men thereof were mighty. - -10:3 Wherefore Adonizedec king of Jerusalem, sent unto Hoham king of -Hebron, and unto Piram king of Jarmuth, and unto Japhia king of -Lachish, and unto Debir king of Eglon, saying, 10:4 Come up unto me, -and help me, that we may smite Gibeon: for it hath made peace with -Joshua and with the children of Israel. - -10:5 Therefore the five kings of the Amorites, the king of Jerusalem, -the king of Hebron, the king of Jarmuth, the king of Lachish, the king -of Eglon, gathered themselves together, and went up, they and all -their hosts, and encamped before Gibeon, and made war against it. - -10:6 And the men of Gibeon sent unto Joshua to the camp to Gilgal, -saying, Slack not thy hand from thy servants; come up to us quickly, -and save us, and help us: for all the kings of the Amorites that dwell -in the mountains are gathered together against us. - -10:7 So Joshua ascended from Gilgal, he, and all the people of war -with him, and all the mighty men of valour. - -10:8 And the LORD said unto Joshua, Fear them not: for I have -delivered them into thine hand; there shall not a man of them stand -before thee. - -10:9 Joshua therefore came unto them suddenly, and went up from Gilgal -all night. - -10:10 And the LORD discomfited them before Israel, and slew them with -a great slaughter at Gibeon, and chased them along the way that goeth -up to Bethhoron, and smote them to Azekah, and unto Makkedah. - -10:11 And it came to pass, as they fled from before Israel, and were -in the going down to Bethhoron, that the LORD cast down great stones -from heaven upon them unto Azekah, and they died: they were more which -died with hailstones than they whom the children of Israel slew with -the sword. - -10:12 Then spake Joshua to the LORD in the day when the LORD delivered -up the Amorites before the children of Israel, and he said in the -sight of Israel, Sun, stand thou still upon Gibeon; and thou, Moon, in -the valley of Ajalon. - -10:13 And the sun stood still, and the moon stayed, until the people -had avenged themselves upon their enemies. Is not this written in the -book of Jasher? So the sun stood still in the midst of heaven, and -hasted not to go down about a whole day. - -10:14 And there was no day like that before it or after it, that the -LORD hearkened unto the voice of a man: for the LORD fought for -Israel. - -10:15 And Joshua returned, and all Israel with him, unto the camp to -Gilgal. - -10:16 But these five kings fled, and hid themselves in a cave at -Makkedah. - -10:17 And it was told Joshua, saying, The five kings are found hid in -a cave at Makkedah. - -10:18 And Joshua said, Roll great stones upon the mouth of the cave, -and set men by it for to keep them: 10:19 And stay ye not, but pursue -after your enemies, and smite the hindmost of them; suffer them not to -enter into their cities: for the LORD your God hath delivered them -into your hand. - -10:20 And it came to pass, when Joshua and the children of Israel had -made an end of slaying them with a very great slaughter, till they -were consumed, that the rest which remained of them entered into -fenced cities. - -10:21 And all the people returned to the camp to Joshua at Makkedah in -peace: none moved his tongue against any of the children of Israel. - -10:22 Then said Joshua, Open the mouth of the cave, and bring out -those five kings unto me out of the cave. - -10:23 And they did so, and brought forth those five kings unto him out -of the cave, the king of Jerusalem, the king of Hebron, the king of -Jarmuth, the king of Lachish, and the king of Eglon. - -10:24 And it came to pass, when they brought out those kings unto -Joshua, that Joshua called for all the men of Israel, and said unto -the captains of the men of war which went with him, Come near, put -your feet upon the necks of these kings. And they came near, and put -their feet upon the necks of them. - -10:25 And Joshua said unto them, Fear not, nor be dismayed, be strong -and of good courage: for thus shall the LORD do to all your enemies -against whom ye fight. - -10:26 And afterward Joshua smote them, and slew them, and hanged them -on five trees: and they were hanging upon the trees until the evening. - -10:27 And it came to pass at the time of the going down of the sun, -that Joshua commanded, and they took them down off the trees, and cast -them into the cave wherein they had been hid, and laid great stones in -the cave's mouth, which remain until this very day. - -10:28 And that day Joshua took Makkedah, and smote it with the edge of -the sword, and the king thereof he utterly destroyed, them, and all -the souls that were therein; he let none remain: and he did to the -king of Makkedah as he did unto the king of Jericho. - -10:29 Then Joshua passed from Makkedah, and all Israel with him, unto -Libnah, and fought against Libnah: 10:30 And the LORD delivered it -also, and the king thereof, into the hand of Israel; and he smote it -with the edge of the sword, and all the souls that were therein; he -let none remain in it; but did unto the king thereof as he did unto -the king of Jericho. - -10:31 And Joshua passed from Libnah, and all Israel with him, unto -Lachish, and encamped against it, and fought against it: 10:32 And the -LORD delivered Lachish into the hand of Israel, which took it on the -second day, and smote it with the edge of the sword, and all the souls -that were therein, according to all that he had done to Libnah. - -10:33 Then Horam king of Gezer came up to help Lachish; and Joshua -smote him and his people, until he had left him none remaining. - -10:34 And from Lachish Joshua passed unto Eglon, and all Israel with -him; and they encamped against it, and fought against it: 10:35 And -they took it on that day, and smote it with the edge of the sword, and -all the souls that were therein he utterly destroyed that day, -according to all that he had done to Lachish. - -10:36 And Joshua went up from Eglon, and all Israel with him, unto -Hebron; and they fought against it: 10:37 And they took it, and smote -it with the edge of the sword, and the king thereof, and all the -cities thereof, and all the souls that were therein; he left none -remaining, according to all that he had done to Eglon; but destroyed -it utterly, and all the souls that were therein. - -10:38 And Joshua returned, and all Israel with him, to Debir; and -fought against it: 10:39 And he took it, and the king thereof, and all -the cities thereof; and they smote them with the edge of the sword, -and utterly destroyed all the souls that were therein; he left none -remaining: as he had done to Hebron, so he did to Debir, and to the -king thereof; as he had done also to Libnah, and to her king. - -10:40 So Joshua smote all the country of the hills, and of the south, -and of the vale, and of the springs, and all their kings: he left none -remaining, but utterly destroyed all that breathed, as the LORD God of -Israel commanded. - -10:41 And Joshua smote them from Kadeshbarnea even unto Gaza, and all -the country of Goshen, even unto Gibeon. - -10:42 And all these kings and their land did Joshua take at one time, -because the LORD God of Israel fought for Israel. - -10:43 And Joshua returned, and all Israel with him, unto the camp to -Gilgal. - -11:1 And it came to pass, when Jabin king of Hazor had heard those -things, that he sent to Jobab king of Madon, and to the king of -Shimron, and to the king of Achshaph, 11:2 And to the kings that were -on the north of the mountains, and of the plains south of Chinneroth, -and in the valley, and in the borders of Dor on the west, 11:3 And to -the Canaanite on the east and on the west, and to the Amorite, and the -Hittite, and the Perizzite, and the Jebusite in the mountains, and to -the Hivite under Hermon in the land of Mizpeh. - -11:4 And they went out, they and all their hosts with them, much -people, even as the sand that is upon the sea shore in multitude, with -horses and chariots very many. - -11:5 And when all these kings were met together, they came and pitched -together at the waters of Merom, to fight against Israel. - -11:6 And the LORD said unto Joshua, Be not afraid because of them: for -to morrow about this time will I deliver them up all slain before -Israel: thou shalt hough their horses, and burn their chariots with -fire. - -11:7 So Joshua came, and all the people of war with him, against them -by the waters of Merom suddenly; and they fell upon them. - -11:8 And the LORD delivered them into the hand of Israel, who smote -them, and chased them unto great Zidon, and unto Misrephothmaim, and -unto the valley of Mizpeh eastward; and they smote them, until they -left them none remaining. - -11:9 And Joshua did unto them as the LORD bade him: he houghed their -horses, and burnt their chariots with fire. - -11:10 And Joshua at that time turned back, and took Hazor, and smote -the king thereof with the sword: for Hazor beforetime was the head of -all those kingdoms. - -11:11 And they smote all the souls that were therein with the edge of -the sword, utterly destroying them: there was not any left to breathe: -and he burnt Hazor with fire. - -11:12 And all the cities of those kings, and all the kings of them, -did Joshua take, and smote them with the edge of the sword, and he -utterly destroyed them, as Moses the servant of the LORD commanded. - -11:13 But as for the cities that stood still in their strength, Israel -burned none of them, save Hazor only; that did Joshua burn. - -11:14 And all the spoil of these cities, and the cattle, the children -of Israel took for a prey unto themselves; but every man they smote -with the edge of the sword, until they had destroyed them, neither -left they any to breathe. - -11:15 As the LORD commanded Moses his servant, so did Moses command -Joshua, and so did Joshua; he left nothing undone of all that the LORD -commanded Moses. - -11:16 So Joshua took all that land, the hills, and all the south -country, and all the land of Goshen, and the valley, and the plain, -and the mountain of Israel, and the valley of the same; 11:17 Even -from the mount Halak, that goeth up to Seir, even unto Baalgad in the -valley of Lebanon under mount Hermon: and all their kings he took, and -smote them, and slew them. - -11:18 Joshua made war a long time with all those kings. - -11:19 There was not a city that made peace with the children of -Israel, save the Hivites the inhabitants of Gibeon: all other they -took in battle. - -11:20 For it was of the LORD to harden their hearts, that they should -come against Israel in battle, that he might destroy them utterly, and -that they might have no favour, but that he might destroy them, as the -LORD commanded Moses. - -11:21 And at that time came Joshua, and cut off the Anakims from the -mountains, from Hebron, from Debir, from Anab, and from all the -mountains of Judah, and from all the mountains of Israel: Joshua -destroyed them utterly with their cities. - -11:22 There was none of the Anakims left in the land of the children -of Israel: only in Gaza, in Gath, and in Ashdod, there remained. - -11:23 So Joshua took the whole land, according to all that the LORD -said unto Moses; and Joshua gave it for an inheritance unto Israel -according to their divisions by their tribes. And the land rested from -war. - -12:1 Now these are the kings of the land, which the children of Israel -smote, and possessed their land on the other side Jordan toward the -rising of the sun, from the river Arnon unto mount Hermon, and all the -plain on the east: 12:2 Sihon king of the Amorites, who dwelt in -Heshbon, and ruled from Aroer, which is upon the bank of the river -Arnon, and from the middle of the river, and from half Gilead, even -unto the river Jabbok, which is the border of the children of Ammon; -12:3 And from the plain to the sea of Chinneroth on the east, and unto -the sea of the plain, even the salt sea on the east, the way to -Bethjeshimoth; and from the south, under Ashdothpisgah: 12:4 And the -coast of Og king of Bashan, which was of the remnant of the giants, -that dwelt at Ashtaroth and at Edrei, 12:5 And reigned in mount -Hermon, and in Salcah, and in all Bashan, unto the border of the -Geshurites and the Maachathites, and half Gilead, the border of Sihon -king of Heshbon. - -12:6 Them did Moses the servant of the LORD and the children of Israel -smite: and Moses the servant of the LORD gave it for a possession unto -the Reubenites, and the Gadites, and the half tribe of Manasseh. - -12:7 And these are the kings of the country which Joshua and the -children of Israel smote on this side Jordan on the west, from Baalgad -in the valley of Lebanon even unto the mount Halak, that goeth up to -Seir; which Joshua gave unto the tribes of Israel for a possession -according to their divisions; 12:8 In the mountains, and in the -valleys, and in the plains, and in the springs, and in the wilderness, -and in the south country; the Hittites, the Amorites, and the -Canaanites, the Perizzites, the Hivites, and the Jebusites: 12:9 The -king of Jericho, one; the king of Ai, which is beside Bethel, one; -12:10 The king of Jerusalem, one; the king of Hebron, one; 12:11 The -king of Jarmuth, one; the king of Lachish, one; 12:12 The king of -Eglon, one; the king of Gezer, one; 12:13 The king of Debir, one; the -king of Geder, one; 12:14 The king of Hormah, one; the king of Arad, -one; 12:15 The king of Libnah, one; the king of Adullam, one; 12:16 -The king of Makkedah, one; the king of Bethel, one; 12:17 The king of -Tappuah, one; the king of Hepher, one; 12:18 The king of Aphek, one; -the king of Lasharon, one; 12:19 The king of Madon, one; the king of -Hazor, one; 12:20 The king of Shimronmeron, one; the king of Achshaph, -one; 12:21 The king of Taanach, one; the king of Megiddo, one; 12:22 -The king of Kedesh, one; the king of Jokneam of Carmel, one; 12:23 The -king of Dor in the coast of Dor, one; the king of the nations of -Gilgal, one; 12:24 The king of Tirzah, one: all the kings thirty and -one. - -13:1 Now Joshua was old and stricken in years; and the LORD said unto -him, Thou art old and stricken in years, and there remaineth yet very -much land to be possessed. - -13:2 This is the land that yet remaineth: all the borders of the -Philistines, and all Geshuri, 13:3 From Sihor, which is before Egypt, -even unto the borders of Ekron northward, which is counted to the -Canaanite: five lords of the Philistines; the Gazathites, and the -Ashdothites, the Eshkalonites, the Gittites, and the Ekronites; also -the Avites: 13:4 From the south, all the land of the Canaanites, and -Mearah that is beside the Sidonians unto Aphek, to the borders of the -Amorites: 13:5 And the land of the Giblites, and all Lebanon, toward -the sunrising, from Baalgad under mount Hermon unto the entering into -Hamath. - -13:6 All the inhabitants of the hill country from Lebanon unto -Misrephothmaim, and all the Sidonians, them will I drive out from -before the children of Israel: only divide thou it by lot unto the -Israelites for an inheritance, as I have commanded thee. - -13:7 Now therefore divide this land for an inheritance unto the nine -tribes, and the half tribe of Manasseh, 13:8 With whom the Reubenites -and the Gadites have received their inheritance, which Moses gave -them, beyond Jordan eastward, even as Moses the servant of the LORD -gave them; 13:9 From Aroer, that is upon the bank of the river Arnon, -and the city that is in the midst of the river, and all the plain of -Medeba unto Dibon; 13:10 And all the cities of Sihon king of the -Amorites, which reigned in Heshbon, unto the border of the children of -Ammon; 13:11 And Gilead, and the border of the Geshurites and -Maachathites, and all mount Hermon, and all Bashan unto Salcah; 13:12 -All the kingdom of Og in Bashan, which reigned in Ashtaroth and in -Edrei, who remained of the remnant of the giants: for these did Moses -smite, and cast them out. - -13:13 Nevertheless the children of Israel expelled not the Geshurites, -nor the Maachathites: but the Geshurites and the Maachathites dwell -among the Israelites until this day. - -13:14 Only unto the tribes of Levi he gave none inheritance; the -sacrifices of the LORD God of Israel made by fire are their -inheritance, as he said unto them. - -13:15 And Moses gave unto the tribe of the children of Reuben -inheritance according to their families. - -13:16 And their coast was from Aroer, that is on the bank of the river -Arnon, and the city that is in the midst of the river, and all the -plain by Medeba; 13:17 Heshbon, and all her cities that are in the -plain; Dibon, and Bamothbaal, and Bethbaalmeon, 13:18 And Jahaza, and -Kedemoth, and Mephaath, 13:19 And Kirjathaim, and Sibmah, and -Zarethshahar in the mount of the valley, 13:20 And Bethpeor, and -Ashdothpisgah, and Bethjeshimoth, 13:21 And all the cities of the -plain, and all the kingdom of Sihon king of the Amorites, which -reigned in Heshbon, whom Moses smote with the princes of Midian, Evi, -and Rekem, and Zur, and Hur, and Reba, which were dukes of Sihon, -dwelling in the country. - -13:22 Balaam also the son of Beor, the soothsayer, did the children of -Israel slay with the sword among them that were slain by them. - -13:23 And the border of the children of Reuben was Jordan, and the -border thereof. This was the inheritance of the children of Reuben -after their families, the cities and the villages thereof. - -13:24 And Moses gave inheritance unto the tribe of Gad, even unto the -children of Gad according to their families. - -13:25 And their coast was Jazer, and all the cities of Gilead, and -half the land of the children of Ammon, unto Aroer that is before -Rabbah; 13:26 And from Heshbon unto Ramathmizpeh, and Betonim; and -from Mahanaim unto the border of Debir; 13:27 And in the valley, -Betharam, and Bethnimrah, and Succoth, and Zaphon, the rest of the -kingdom of Sihon king of Heshbon, Jordan and his border, even unto the -edge of the sea of Chinnereth on the other side Jordan eastward. - -13:28 This is the inheritance of the children of Gad after their -families, the cities, and their villages. - -13:29 And Moses gave inheritance unto the half tribe of Manasseh: and -this was the possession of the half tribe of the children of Manasseh -by their families. - -13:30 And their coast was from Mahanaim, all Bashan, all the kingdom -of Og king of Bashan, and all the towns of Jair, which are in Bashan, -threescore cities: 13:31 And half Gilead, and Ashtaroth, and Edrei, -cities of the kingdom of Og in Bashan, were pertaining unto the -children of Machir the son of Manasseh, even to the one half of the -children of Machir by their families. - -13:32 These are the countries which Moses did distribute for -inheritance in the plains of Moab, on the other side Jordan, by -Jericho, eastward. - -13:33 But unto the tribe of Levi Moses gave not any inheritance: the -LORD God of Israel was their inheritance, as he said unto them. - -14:1 And these are the countries which the children of Israel -inherited in the land of Canaan, which Eleazar the priest, and Joshua -the son of Nun, and the heads of the fathers of the tribes of the -children of Israel, distributed for inheritance to them. - -14:2 By lot was their inheritance, as the LORD commanded by the hand -of Moses, for the nine tribes, and for the half tribe. - -14:3 For Moses had given the inheritance of two tribes and an half -tribe on the other side Jordan: but unto the Levites he gave none -inheritance among them. - -14:4 For the children of Joseph were two tribes, Manasseh and Ephraim: -therefore they gave no part unto the Levites in the land, save cities -to dwell in, with their suburbs for their cattle and for their -substance. - -14:5 As the LORD commanded Moses, so the children of Israel did, and -they divided the land. - -14:6 Then the children of Judah came unto Joshua in Gilgal: and Caleb -the son of Jephunneh the Kenezite said unto him, Thou knowest the -thing that the LORD said unto Moses the man of God concerning me and -thee in Kadeshbarnea. - -14:7 Forty years old was I when Moses the servant of the LORD sent me -from Kadeshbarnea to espy out the land; and I brought him word again -as it was in mine heart. - -14:8 Nevertheless my brethren that went up with me made the heart of -the people melt: but I wholly followed the LORD my God. - -14:9 And Moses sware on that day, saying, Surely the land whereon thy -feet have trodden shall be thine inheritance, and thy children's for -ever, because thou hast wholly followed the LORD my God. - -14:10 And now, behold, the LORD hath kept me alive, as he said, these -forty and five years, even since the LORD spake this word unto Moses, -while the children of Israel wandered in the wilderness: and now, lo, -I am this day fourscore and five years old. - -14:11 As yet I am as strong this day as I was in the day that Moses -sent me: as my strength was then, even so is my strength now, for war, -both to go out, and to come in. - -14:12 Now therefore give me this mountain, whereof the LORD spake in -that day; for thou heardest in that day how the Anakims were there, -and that the cities were great and fenced: if so be the LORD will be -with me, then I shall be able to drive them out, as the LORD said. - -14:13 And Joshua blessed him, and gave unto Caleb the son of Jephunneh -Hebron for an inheritance. - -14:14 Hebron therefore became the inheritance of Caleb the son of -Jephunneh the Kenezite unto this day, because that he wholly followed -the LORD God of Israel. - -14:15 And the name of Hebron before was Kirjatharba; which Arba was a -great man among the Anakims. And the land had rest from war. - -15:1 This then was the lot of the tribe of the children of Judah by -their families; even to the border of Edom the wilderness of Zin -southward was the uttermost part of the south coast. - -15:2 And their south border was from the shore of the salt sea, from -the bay that looketh southward: 15:3 And it went out to the south side -to Maalehacrabbim, and passed along to Zin, and ascended up on the -south side unto Kadeshbarnea, and passed along to Hezron, and went up -to Adar, and fetched a compass to Karkaa: 15:4 From thence it passed -toward Azmon, and went out unto the river of Egypt; and the goings out -of that coast were at the sea: this shall be your south coast. - -15:5 And the east border was the salt sea, even unto the end of -Jordan. - -And their border in the north quarter was from the bay of the sea at -the uttermost part of Jordan: 15:6 And the border went up to -Bethhogla, and passed along by the north of Betharabah; and the border -went up to the stone of Bohan the son of Reuben: 15:7 And the border -went up toward Debir from the valley of Achor, and so northward, -looking toward Gilgal, that is before the going up to Adummim, which -is on the south side of the river: and the border passed toward the -waters of Enshemesh, and the goings out thereof were at Enrogel: 15:8 -And the border went up by the valley of the son of Hinnom unto the -south side of the Jebusite; the same is Jerusalem: and the border went -up to the top of the mountain that lieth before the valley of Hinnom -westward, which is at the end of the valley of the giants northward: -15:9 And the border was drawn from the top of the hill unto the -fountain of the water of Nephtoah, and went out to the cities of mount -Ephron; and the border was drawn to Baalah, which is Kirjathjearim: -15:10 And the border compassed from Baalah westward unto mount Seir, -and passed along unto the side of mount Jearim, which is Chesalon, on -the north side, and went down to Bethshemesh, and passed on to Timnah: -15:11 And the border went out unto the side of Ekron northward: and -the border was drawn to Shicron, and passed along to mount Baalah, and -went out unto Jabneel; and the goings out of the border were at the -sea. - -15:12 And the west border was to the great sea, and the coast thereof. - -This is the coast of the children of Judah round about according to -their families. - -15:13 And unto Caleb the son of Jephunneh he gave a part among the -children of Judah, according to the commandment of the LORD to Joshua, -even the city of Arba the father of Anak, which city is Hebron. - -15:14 And Caleb drove thence the three sons of Anak, Sheshai, and -Ahiman, and Talmai, the children of Anak. - -15:15 And he went up thence to the inhabitants of Debir: and the name -of Debir before was Kirjathsepher. - -15:16 And Caleb said, He that smiteth Kirjathsepher, and taketh it, to -him will I give Achsah my daughter to wife. - -15:17 And Othniel the son of Kenaz, the brother of Caleb, took it: and -he gave him Achsah his daughter to wife. - -15:18 And it came to pass, as she came unto him, that she moved him to -ask of her father a field: and she lighted off her ass; and Caleb said -unto her, What wouldest thou? 15:19 Who answered, Give me a blessing; -for thou hast given me a south land; give me also springs of water. -And he gave her the upper springs, and the nether springs. - -15:20 This is the inheritance of the tribe of the children of Judah -according to their families. - -15:21 And the uttermost cities of the tribe of the children of Judah -toward the coast of Edom southward were Kabzeel, and Eder, and Jagur, -15:22 And Kinah, and Dimonah, and Adadah, 15:23 And Kedesh, and Hazor, -and Ithnan, 15:24 Ziph, and Telem, and Bealoth, 15:25 And Hazor, -Hadattah, and Kerioth, and Hezron, which is Hazor, 15:26 Amam, and -Shema, and Moladah, 15:27 And Hazargaddah, and Heshmon, and Bethpalet, -15:28 And Hazarshual, and Beersheba, and Bizjothjah, 15:29 Baalah, and -Iim, and Azem, 15:30 And Eltolad, and Chesil, and Hormah, 15:31 And -Ziklag, and Madmannah, and Sansannah, 15:32 And Lebaoth, and Shilhim, -and Ain, and Rimmon: all the cities are twenty and nine, with their -villages: 15:33 And in the valley, Eshtaol, and Zoreah, and Ashnah, -15:34 And Zanoah, and Engannim, Tappuah, and Enam, 15:35 Jarmuth, and -Adullam, Socoh, and Azekah, 15:36 And Sharaim, and Adithaim, and -Gederah, and Gederothaim; fourteen cities with their villages: 15:37 -Zenan, and Hadashah, and Migdalgad, 15:38 And Dilean, and Mizpeh, and -Joktheel, 15:39 Lachish, and Bozkath, and Eglon, 15:40 And Cabbon, and -Lahmam, and Kithlish, 15:41 And Gederoth, Bethdagon, and Naamah, and -Makkedah; sixteen cities with their villages: 15:42 Libnah, and Ether, -and Ashan, 15:43 And Jiphtah, and Ashnah, and Nezib, 15:44 And Keilah, -and Achzib, and Mareshah; nine cities with their villages: 15:45 -Ekron, with her towns and her villages: 15:46 From Ekron even unto the -sea, all that lay near Ashdod, with their villages: 15:47 Ashdod with -her towns and her villages, Gaza with her towns and her villages, unto -the river of Egypt, and the great sea, and the border thereof: 15:48 -And in the mountains, Shamir, and Jattir, and Socoh, 15:49 And Dannah, -and Kirjathsannah, which is Debir, 15:50 And Anab, and Eshtemoh, and -Anim, 15:51 And Goshen, and Holon, and Giloh; eleven cities with their -villages: 15:52 Arab, and Dumah, and Eshean, 15:53 And Janum, and -Bethtappuah, and Aphekah, 15:54 And Humtah, and Kirjatharba, which is -Hebron, and Zior; nine cities with their villages: 15:55 Maon, Carmel, -and Ziph, and Juttah, 15:56 And Jezreel, and Jokdeam, and Zanoah, -15:57 Cain, Gibeah, and Timnah; ten cities with their villages: 15:58 -Halhul, Bethzur, and Gedor, 15:59 And Maarath, and Bethanoth, and -Eltekon; six cities with their villages: 15:60 Kirjathbaal, which is -Kirjathjearim, and Rabbah; two cities with their villages: 15:61 In -the wilderness, Betharabah, Middin, and Secacah, 15:62 And Nibshan, -and the city of Salt, and Engedi; six cities with their villages. - -15:63 As for the Jebusites the inhabitants of Jerusalem, the children -of Judah could not drive them out; but the Jebusites dwell with the -children of Judah at Jerusalem unto this day. - -16:1 And the lot of the children of Joseph fell from Jordan by -Jericho, unto the water of Jericho on the east, to the wilderness that -goeth up from Jericho throughout mount Bethel, 16:2 And goeth out from -Bethel to Luz, and passeth along unto the borders of Archi to Ataroth, -16:3 And goeth down westward to the coast of Japhleti, unto the coast -of Bethhoron the nether, and to Gezer; and the goings out thereof are -at the sea. - -16:4 So the children of Joseph, Manasseh and Ephraim, took their -inheritance. - -16:5 And the border of the children of Ephraim according to their -families was thus: even the border of their inheritance on the east -side was Atarothaddar, unto Bethhoron the upper; 16:6 And the border -went out toward the sea to Michmethah on the north side; and the -border went about eastward unto Taanathshiloh, and passed by it on the -east to Janohah; 16:7 And it went down from Janohah to Ataroth, and to -Naarath, and came to Jericho, and went out at Jordan. - -16:8 The border went out from Tappuah westward unto the river Kanah; -and the goings out thereof were at the sea. This is the inheritance of -the tribe of the children of Ephraim by their families. - -16:9 And the separate cities for the children of Ephraim were among -the inheritance of the children of Manasseh, all the cities with their -villages. - -16:10 And they drave not out the Canaanites that dwelt in Gezer: but -the Canaanites dwell among the Ephraimites unto this day, and serve -under tribute. - -17:1 There was also a lot for the tribe of Manasseh; for he was the -firstborn of Joseph; to wit, for Machir the firstborn of Manasseh, the -father of Gilead: because he was a man of war, therefore he had Gilead -and Bashan. - -17:2 There was also a lot for the rest of the children of Manasseh by -their families; for the children of Abiezer, and for the children of -Helek, and for the children of Asriel, and for the children of -Shechem, and for the children of Hepher, and for the children of -Shemida: these were the male children of Manasseh the son of Joseph by -their families. - -17:3 But Zelophehad, the son of Hepher, the son of Gilead, the son of -Machir, the son of Manasseh, had no sons, but daughters: and these are -the names of his daughters, Mahlah, and Noah, Hoglah, Milcah, and -Tirzah. - -17:4 And they came near before Eleazar the priest, and before Joshua -the son of Nun, and before the princes, saying, The LORD commanded -Moses to give us an inheritance among our brethren. Therefore -according to the commandment of the LORD he gave them an inheritance -among the brethren of their father. - -17:5 And there fell ten portions to Manasseh, beside the land of -Gilead and Bashan, which were on the other side Jordan; 17:6 Because -the daughters of Manasseh had an inheritance among his sons: and the -rest of Manasseh's sons had the land of Gilead. - -17:7 And the coast of Manasseh was from Asher to Michmethah, that -lieth before Shechem; and the border went along on the right hand unto -the inhabitants of Entappuah. - -17:8 Now Manasseh had the land of Tappuah: but Tappuah on the border -of Manasseh belonged to the children of Ephraim; 17:9 And the coast -descended unto the river Kanah, southward of the river: these cities -of Ephraim are among the cities of Manasseh: the coast of Manasseh -also was on the north side of the river, and the outgoings of it were -at the sea: 17:10 Southward it was Ephraim's, and northward it was -Manasseh's, and the sea is his border; and they met together in Asher -on the north, and in Issachar on the east. - -17:11 And Manasseh had in Issachar and in Asher Bethshean and her -towns, and Ibleam and her towns, and the inhabitants of Dor and her -towns, and the inhabitants of Endor and her towns, and the inhabitants -of Taanach and her towns, and the inhabitants of Megiddo and her -towns, even three countries. - -17:12 Yet the children of Manasseh could not drive out the inhabitants -of those cities; but the Canaanites would dwell in that land. - -17:13 Yet it came to pass, when the children of Israel were waxen -strong, that they put the Canaanites to tribute, but did not utterly -drive them out. - -17:14 And the children of Joseph spake unto Joshua, saying, Why hast -thou given me but one lot and one portion to inherit, seeing I am a -great people, forasmuch as the LORD hath blessed me hitherto? 17:15 -And Joshua answered them, If thou be a great people, then get thee up -to the wood country, and cut down for thyself there in the land of the -Perizzites and of the giants, if mount Ephraim be too narrow for thee. - -17:16 And the children of Joseph said, The hill is not enough for us: -and all the Canaanites that dwell in the land of the valley have -chariots of iron, both they who are of Bethshean and her towns, and -they who are of the valley of Jezreel. - -17:17 And Joshua spake unto the house of Joseph, even to Ephraim and -to Manasseh, saying, Thou art a great people, and hast great power: -thou shalt not have one lot only: 17:18 But the mountain shall be -thine; for it is a wood, and thou shalt cut it down: and the outgoings -of it shall be thine: for thou shalt drive out the Canaanites, though -they have iron chariots, and though they be strong. - -18:1 And the whole congregation of the children of Israel assembled -together at Shiloh, and set up the tabernacle of the congregation -there. And the land was subdued before them. - -18:2 And there remained among the children of Israel seven tribes, -which had not yet received their inheritance. - -18:3 And Joshua said unto the children of Israel, How long are ye -slack to go to possess the land, which the LORD God of your fathers -hath given you? 18:4 Give out from among you three men for each -tribe: and I will send them, and they shall rise, and go through the -land, and describe it according to the inheritance of them; and they -shall come again to me. - -18:5 And they shall divide it into seven parts: Judah shall abide in -their coast on the south, and the house of Joseph shall abide in their -coasts on the north. - -18:6 Ye shall therefore describe the land into seven parts, and bring -the description hither to me, that I may cast lots for you here before -the LORD our God. - -18:7 But the Levites have no part among you; for the priesthood of the -LORD is their inheritance: and Gad, and Reuben, and half the tribe of -Manasseh, have received their inheritance beyond Jordan on the east, -which Moses the servant of the LORD gave them. - -18:8 And the men arose, and went away: and Joshua charged them that -went to describe the land, saying, Go and walk through the land, and -describe it, and come again to me, that I may here cast lots for you -before the LORD in Shiloh. - -18:9 And the men went and passed through the land, and described it by -cities into seven parts in a book, and came again to Joshua to the -host at Shiloh. - -18:10 And Joshua cast lots for them in Shiloh before the LORD: and -there Joshua divided the land unto the children of Israel according to -their divisions. - -18:11 And the lot of the tribe of the children of Benjamin came up -according to their families: and the coast of their lot came forth -between the children of Judah and the children of Joseph. - -18:12 And their border on the north side was from Jordan; and the -border went up to the side of Jericho on the north side, and went up -through the mountains westward; and the goings out thereof were at the -wilderness of Bethaven. - -18:13 And the border went over from thence toward Luz, to the side of -Luz, which is Bethel, southward; and the border descended to -Atarothadar, near the hill that lieth on the south side of the nether -Bethhoron. - -18:14 And the border was drawn thence, and compassed the corner of the -sea southward, from the hill that lieth before Bethhoron southward; -and the goings out thereof were at Kirjathbaal, which is -Kirjathjearim, a city of the children of Judah: this was the west -quarter. - -18:15 And the south quarter was from the end of Kirjathjearim, and the -border went out on the west, and went out to the well of waters of -Nephtoah: 18:16 And the border came down to the end of the mountain -that lieth before the valley of the son of Hinnom, and which is in the -valley of the giants on the north, and descended to the valley of -Hinnom, to the side of Jebusi on the south, and descended to Enrogel, -18:17 And was drawn from the north, and went forth to Enshemesh, and -went forth toward Geliloth, which is over against the going up of -Adummim, and descended to the stone of Bohan the son of Reuben, 18:18 -And passed along toward the side over against Arabah northward, and -went down unto Arabah: 18:19 And the border passed along to the side -of Bethhoglah northward: and the outgoings of the border were at the -north bay of the salt sea at the south end of Jordan: this was the -south coast. - -18:20 And Jordan was the border of it on the east side. This was the -inheritance of the children of Benjamin, by the coasts thereof round -about, according to their families. - -18:21 Now the cities of the tribe of the children of Benjamin -according to their families were Jericho, and Bethhoglah, and the -valley of Keziz, 18:22 And Betharabah, and Zemaraim, and Bethel, 18:23 -And Avim, and Pharah, and Ophrah, 18:24 And Chepharhaammonai, and -Ophni, and Gaba; twelve cities with their villages: 18:25 Gibeon, and -Ramah, and Beeroth, 18:26 And Mizpeh, and Chephirah, and Mozah, 18:27 -And Rekem, and Irpeel, and Taralah, 18:28 And Zelah, Eleph, and -Jebusi, which is Jerusalem, Gibeath, and Kirjath; fourteen cities with -their villages. This is the inheritance of the children of Benjamin -according to their families. - -19:1 And the second lot came forth to Simeon, even for the tribe of -the children of Simeon according to their families: and their -inheritance was within the inheritance of the children of Judah. - -19:2 And they had in their inheritance Beersheba, and Sheba, and -Moladah, 19:3 And Hazarshual, and Balah, and Azem, 19:4 And Eltolad, -and Bethul, and Hormah, 19:5 And Ziklag, and Bethmarcaboth, and -Hazarsusah, 19:6 And Bethlebaoth, and Sharuhen; thirteen cities and -their villages: 19:7 Ain, Remmon, and Ether, and Ashan; four cities -and their villages: 19:8 And all the villages that were round about -these cities to Baalathbeer, Ramath of the south. This is the -inheritance of the tribe of the children of Simeon according to their -families. - -19:9 Out of the portion of the children of Judah was the inheritance -of the children of Simeon: for the part of the children of Judah was -too much for them: therefore the children of Simeon had their -inheritance within the inheritance of them. - -19:10 And the third lot came up for the children of Zebulun according -to their families: and the border of their inheritance was unto Sarid: -19:11 And their border went up toward the sea, and Maralah, and -reached to Dabbasheth, and reached to the river that is before -Jokneam; 19:12 And turned from Sarid eastward toward the sunrising -unto the border of Chislothtabor, and then goeth out to Daberath, and -goeth up to Japhia, 19:13 And from thence passeth on along on the east -to Gittahhepher, to Ittahkazin, and goeth out to Remmonmethoar to -Neah; 19:14 And the border compasseth it on the north side to -Hannathon: and the outgoings thereof are in the valley of Jiphthahel: -19:15 And Kattath, and Nahallal, and Shimron, and Idalah, and -Bethlehem: twelve cities with their villages. - -19:16 This is the inheritance of the children of Zebulun according to -their families, these cities with their villages. - -19:17 And the fourth lot came out to Issachar, for the children of -Issachar according to their families. - -19:18 And their border was toward Jezreel, and Chesulloth, and Shunem, -19:19 And Haphraim, and Shihon, and Anaharath, 19:20 And Rabbith, and -Kishion, and Abez, 19:21 And Remeth, and Engannim, and Enhaddah, and -Bethpazzez; 19:22 And the coast reacheth to Tabor, and Shahazimah, and -Bethshemesh; and the outgoings of their border were at Jordan: sixteen -cities with their villages. - -19:23 This is the inheritance of the tribe of the children of Issachar -according to their families, the cities and their villages. - -19:24 And the fifth lot came out for the tribe of the children of -Asher according to their families. - -19:25 And their border was Helkath, and Hali, and Beten, and Achshaph, -19:26 And Alammelech, and Amad, and Misheal; and reacheth to Carmel -westward, and to Shihorlibnath; 19:27 And turneth toward the sunrising -to Bethdagon, and reacheth to Zebulun, and to the valley of Jiphthahel -toward the north side of Bethemek, and Neiel, and goeth out to Cabul -on the left hand, 19:28 And Hebron, and Rehob, and Hammon, and Kanah, -even unto great Zidon; 19:29 And then the coast turneth to Ramah, and -to the strong city Tyre; and the coast turneth to Hosah; and the -outgoings thereof are at the sea from the coast to Achzib: 19:30 Ummah -also, and Aphek, and Rehob: twenty and two cities with their villages. - -19:31 This is the inheritance of the tribe of the children of Asher -according to their families, these cities with their villages. - -19:32 The sixth lot came out to the children of Naphtali, even for the -children of Naphtali according to their families. - -19:33 And their coast was from Heleph, from Allon to Zaanannim, and -Adami, Nekeb, and Jabneel, unto Lakum; and the outgoings thereof were -at Jordan: 19:34 And then the coast turneth westward to Aznothtabor, -and goeth out from thence to Hukkok, and reacheth to Zebulun on the -south side, and reacheth to Asher on the west side, and to Judah upon -Jordan toward the sunrising. - -19:35 And the fenced cities are Ziddim, Zer, and Hammath, Rakkath, and -Chinnereth, 19:36 And Adamah, and Ramah, and Hazor, 19:37 And Kedesh, -and Edrei, and Enhazor, 19:38 And Iron, and Migdalel, Horem, and -Bethanath, and Bethshemesh; nineteen cities with their villages. - -19:39 This is the inheritance of the tribe of the children of Naphtali -according to their families, the cities and their villages. - -19:40 And the seventh lot came out for the tribe of the children of -Dan according to their families. - -19:41 And the coast of their inheritance was Zorah, and Eshtaol, and -Irshemesh, 19:42 And Shaalabbin, and Ajalon, and Jethlah, 19:43 And -Elon, and Thimnathah, and Ekron, 19:44 And Eltekeh, and Gibbethon, and -Baalath, 19:45 And Jehud, and Beneberak, and Gathrimmon, 19:46 And -Mejarkon, and Rakkon, with the border before Japho. - -19:47 And the coast of the children of Dan went out too little for -them: therefore the children of Dan went up to fight against Leshem, -and took it, and smote it with the edge of the sword, and possessed -it, and dwelt therein, and called Leshem, Dan, after the name of Dan -their father. - -19:48 This is the inheritance of the tribe of the children of Dan -according to their families, these cities with their villages. - -19:49 When they had made an end of dividing the land for inheritance -by their coasts, the children of Israel gave an inheritance to Joshua -the son of Nun among them: 19:50 According to the word of the LORD -they gave him the city which he asked, even Timnathserah in mount -Ephraim: and he built the city, and dwelt therein. - -19:51 These are the inheritances, which Eleazar the priest, and Joshua -the son of Nun, and the heads of the fathers of the tribes of the -children of Israel, divided for an inheritance by lot in Shiloh before -the LORD, at the door of the tabernacle of the congregation. So they -made an end of dividing the country. - -20:1 The LORD also spake unto Joshua, saying, 20:2 Speak to the -children of Israel, saying, Appoint out for you cities of refuge, -whereof I spake unto you by the hand of Moses: 20:3 That the slayer -that killeth any person unawares and unwittingly may flee thither: and -they shall be your refuge from the avenger of blood. - -20:4 And when he that doth flee unto one of those cities shall stand -at the entering of the gate of the city, and shall declare his cause -in the ears of the elders of that city, they shall take him into the -city unto them, and give him a place, that he may dwell among them. - -20:5 And if the avenger of blood pursue after him, then they shall not -deliver the slayer up into his hand; because he smote his neighbour -unwittingly, and hated him not beforetime. - -20:6 And he shall dwell in that city, until he stand before the -congregation for judgment, and until the death of the high priest that -shall be in those days: then shall the slayer return, and come unto -his own city, and unto his own house, unto the city from whence he -fled. - -20:7 And they appointed Kedesh in Galilee in mount Naphtali, and -Shechem in mount Ephraim, and Kirjatharba, which is Hebron, in the -mountain of Judah. - -20:8 And on the other side Jordan by Jericho eastward, they assigned -Bezer in the wilderness upon the plain out of the tribe of Reuben, and -Ramoth in Gilead out of the tribe of Gad, and Golan in Bashan out of -the tribe of Manasseh. - -20:9 These were the cities appointed for all the children of Israel, -and for the stranger that sojourneth among them, that whosoever -killeth any person at unawares might flee thither, and not die by the -hand of the avenger of blood, until he stood before the congregation. - -21:1 Then came near the heads of the fathers of the Levites unto -Eleazar the priest, and unto Joshua the son of Nun, and unto the heads -of the fathers of the tribes of the children of Israel; 21:2 And they -spake unto them at Shiloh in the land of Canaan, saying, The LORD -commanded by the hand of Moses to give us cities to dwell in, with the -suburbs thereof for our cattle. - -21:3 And the children of Israel gave unto the Levites out of their -inheritance, at the commandment of the LORD, these cities and their -suburbs. - -21:4 And the lot came out for the families of the Kohathites: and the -children of Aaron the priest, which were of the Levites, had by lot -out of the tribe of Judah, and out of the tribe of Simeon, and out of -the tribe of Benjamin, thirteen cities. - -21:5 And the rest of the children of Kohath had by lot out of the -families of the tribe of Ephraim, and out of the tribe of Dan, and out -of the half tribe of Manasseh, ten cities. - -21:6 And the children of Gershon had by lot out of the families of the -tribe of Issachar, and out of the tribe of Asher, and out of the tribe -of Naphtali, and out of the half tribe of Manasseh in Bashan, thirteen -cities. - -21:7 The children of Merari by their families had out of the tribe of -Reuben, and out of the tribe of Gad, and out of the tribe of Zebulun, -twelve cities. - -21:8 And the children of Israel gave by lot unto the Levites these -cities with their suburbs, as the LORD commanded by the hand of Moses. - -21:9 And they gave out of the tribe of the children of Judah, and out -of the tribe of the children of Simeon, these cities which are here -mentioned by name. - -21:10 Which the children of Aaron, being of the families of the -Kohathites, who were of the children of Levi, had: for theirs was the -first lot. - -21:11 And they gave them the city of Arba the father of Anak, which -city is Hebron, in the hill country of Judah, with the suburbs thereof -round about it. - -21:12 But the fields of the city, and the villages thereof, gave they -to Caleb the son of Jephunneh for his possession. - -21:13 Thus they gave to the children of Aaron the priest Hebron with -her suburbs, to be a city of refuge for the slayer; and Libnah with -her suburbs, 21:14 And Jattir with her suburbs, and Eshtemoa with her -suburbs, 21:15 And Holon with her suburbs, and Debir with her suburbs, -21:16 And Ain with her suburbs, and Juttah with her suburbs, and -Bethshemesh with her suburbs; nine cities out of those two tribes. - -21:17 And out of the tribe of Benjamin, Gibeon with her suburbs, Geba -with her suburbs, 21:18 Anathoth with her suburbs, and Almon with her -suburbs; four cities. - -21:19 All the cities of the children of Aaron, the priests, were -thirteen cities with their suburbs. - -21:20 And the families of the children of Kohath, the Levites which -remained of the children of Kohath, even they had the cities of their -lot out of the tribe of Ephraim. - -21:21 For they gave them Shechem with her suburbs in mount Ephraim, to -be a city of refuge for the slayer; and Gezer with her suburbs, 21:22 -And Kibzaim with her suburbs, and Bethhoron with her suburbs; four -cities. - -21:23 And out of the tribe of Dan, Eltekeh with her suburbs, Gibbethon -with her suburbs, 21:24 Aijalon with her suburbs, Gathrimmon with her -suburbs; four cities. - -21:25 And out of the half tribe of Manasseh, Tanach with her suburbs, -and Gathrimmon with her suburbs; two cities. - -21:26 All the cities were ten with their suburbs for the families of -the children of Kohath that remained. - -21:27 And unto the children of Gershon, of the families of the -Levites, out of the other half tribe of Manasseh they gave Golan in -Bashan with her suburbs, to be a city of refuge for the slayer; and -Beeshterah with her suburbs; two cities. - -21:28 And out of the tribe of Issachar, Kishon with her suburbs, -Dabareh with her suburbs, 21:29 Jarmuth with her suburbs, Engannim -with her suburbs; four cities. - -21:30 And out of the tribe of Asher, Mishal with her suburbs, Abdon -with her suburbs, 21:31 Helkath with her suburbs, and Rehob with her -suburbs; four cities. - -21:32 And out of the tribe of Naphtali, Kedesh in Galilee with her -suburbs, to be a city of refuge for the slayer; and Hammothdor with -her suburbs, and Kartan with her suburbs; three cities. - -21:33 All the cities of the Gershonites according to their families -were thirteen cities with their suburbs. - -21:34 And unto the families of the children of Merari, the rest of the -Levites, out of the tribe of Zebulun, Jokneam with her suburbs, and -Kartah with her suburbs, 21:35 Dimnah with her suburbs, Nahalal with -her suburbs; four cities. - -21:36 And out of the tribe of Reuben, Bezer with her suburbs, and -Jahazah with her suburbs, 21:37 Kedemoth with her suburbs, and -Mephaath with her suburbs; four cities. - -21:38 And out of the tribe of Gad, Ramoth in Gilead with her suburbs, -to be a city of refuge for the slayer; and Mahanaim with her suburbs, -21:39 Heshbon with her suburbs, Jazer with her suburbs; four cities in -all. - -21:40 So all the cities for the children of Merari by their families, -which were remaining of the families of the Levites, were by their lot -twelve cities. - -21:41 All the cities of the Levites within the possession of the -children of Israel were forty and eight cities with their suburbs. - -21:42 These cities were every one with their suburbs round about them: -thus were all these cities. - -21:43 And the LORD gave unto Israel all the land which he sware to -give unto their fathers; and they possessed it, and dwelt therein. - -21:44 And the LORD gave them rest round about, according to all that -he sware unto their fathers: and there stood not a man of all their -enemies before them; the LORD delivered all their enemies into their -hand. - -21:45 There failed not ought of any good thing which the LORD had -spoken unto the house of Israel; all came to pass. - -22:1 Then Joshua called the Reubenites, and the Gadites, and the half -tribe of Manasseh, 22:2 And said unto them, Ye have kept all that -Moses the servant of the LORD commanded you, and have obeyed my voice -in all that I commanded you: 22:3 Ye have not left your brethren these -many days unto this day, but have kept the charge of the commandment -of the LORD your God. - -22:4 And now the LORD your God hath given rest unto your brethren, as -he promised them: therefore now return ye, and get you unto your -tents, and unto the land of your possession, which Moses the servant -of the LORD gave you on the other side Jordan. - -22:5 But take diligent heed to do the commandment and the law, which -Moses the servant of the LORD charged you, to love the LORD your God, -and to walk in all his ways, and to keep his commandments, and to -cleave unto him, and to serve him with all your heart and with all -your soul. - -22:6 So Joshua blessed them, and sent them away: and they went unto -their tents. - -22:7 Now to the one half of the tribe of Manasseh Moses had given -possession in Bashan: but unto the other half thereof gave Joshua -among their brethren on this side Jordan westward. And when Joshua -sent them away also unto their tents, then he blessed them, 22:8 And -he spake unto them, saying, Return with much riches unto your tents, -and with very much cattle, with silver, and with gold, and with brass, -and with iron, and with very much raiment: divide the spoil of your -enemies with your brethren. - -22:9 And the children of Reuben and the children of Gad and the half -tribe of Manasseh returned, and departed from the children of Israel -out of Shiloh, which is in the land of Canaan, to go unto the country -of Gilead, to the land of their possession, whereof they were -possessed, according to the word of the LORD by the hand of Moses. - -22:10 And when they came unto the borders of Jordan, that are in the -land of Canaan, the children of Reuben and the children of Gad and the -half tribe of Manasseh built there an altar by Jordan, a great altar -to see to. - -22:11 And the children of Israel heard say, Behold, the children of -Reuben and the children of Gad and the half tribe of Manasseh have -built an altar over against the land of Canaan, in the borders of -Jordan, at the passage of the children of Israel. - -22:12 And when the children of Israel heard of it, the whole -congregation of the children of Israel gathered themselves together at -Shiloh, to go up to war against them. - -22:13 And the children of Israel sent unto the children of Reuben, and -to the children of Gad, and to the half tribe of Manasseh, into the -land of Gilead, Phinehas the son of Eleazar the priest, 22:14 And with -him ten princes, of each chief house a prince throughout all the -tribes of Israel; and each one was an head of the house of their -fathers among the thousands of Israel. - -22:15 And they came unto the children of Reuben, and to the children -of Gad, and to the half tribe of Manasseh, unto the land of Gilead, -and they spake with them, saying, 22:16 Thus saith the whole -congregation of the LORD, What trespass is this that ye have committed -against the God of Israel, to turn away this day from following the -LORD, in that ye have builded you an altar, that ye might rebel this -day against the LORD? 22:17 Is the iniquity of Peor too little for -us, from which we are not cleansed until this day, although there was -a plague in the congregation of the LORD, 22:18 But that ye must turn -away this day from following the LORD? and it will be, seeing ye rebel -to day against the LORD, that to morrow he will be wroth with the -whole congregation of Israel. - -22:19 Notwithstanding, if the land of your possession be unclean, then -pass ye over unto the land of the possession of the LORD, wherein the -LORD's tabernacle dwelleth, and take possession among us: but rebel -not against the LORD, nor rebel against us, in building you an altar -beside the altar of the LORD our God. - -22:20 Did not Achan the son of Zerah commit a trespass in the accursed -thing, and wrath fell on all the congregation of Israel? and that man -perished not alone in his iniquity. - -22:21 Then the children of Reuben and the children of Gad and the half -tribe of Manasseh answered, and said unto the heads of the thousands -of Israel, 22:22 The LORD God of gods, the LORD God of gods, he -knoweth, and Israel he shall know; if it be in rebellion, or if in -transgression against the LORD, (save us not this day,) 22:23 That we -have built us an altar to turn from following the LORD, or if to offer -thereon burnt offering or meat offering, or if to offer peace -offerings thereon, let the LORD himself require it; 22:24 And if we -have not rather done it for fear of this thing, saying, In time to -come your children might speak unto our children, saying, What have ye -to do with the LORD God of Israel? 22:25 For the LORD hath made -Jordan a border between us and you, ye children of Reuben and children -of Gad; ye have no part in the LORD: so shall your children make our -children cease from fearing the LORD. - -22:26 Therefore we said, Let us now prepare to build us an altar, not -for burnt offering, nor for sacrifice: 22:27 But that it may be a -witness between us, and you, and our generations after us, that we -might do the service of the LORD before him with our burnt offerings, -and with our sacrifices, and with our peace offerings; that your -children may not say to our children in time to come, Ye have no part -in the LORD. - -22:28 Therefore said we, that it shall be, when they should so say to -us or to our generations in time to come, that we may say again, -Behold the pattern of the altar of the LORD, which our fathers made, -not for burnt offerings, nor for sacrifices; but it is a witness -between us and you. - -22:29 God forbid that we should rebel against the LORD, and turn this -day from following the LORD, to build an altar for burnt offerings, -for meat offerings, or for sacrifices, beside the altar of the LORD -our God that is before his tabernacle. - -22:30 And when Phinehas the priest, and the princes of the -congregation and heads of the thousands of Israel which were with him, -heard the words that the children of Reuben and the children of Gad -and the children of Manasseh spake, it pleased them. - -22:31 And Phinehas the son of Eleazar the priest said unto the -children of Reuben, and to the children of Gad, and to the children of -Manasseh, This day we perceive that the LORD is among us, because ye -have not committed this trespass against the LORD: now ye have -delivered the children of Israel out of the hand of the LORD. - -22:32 And Phinehas the son of Eleazar the priest, and the princes, -returned from the children of Reuben, and from the children of Gad, -out of the land of Gilead, unto the land of Canaan, to the children of -Israel, and brought them word again. - -22:33 And the thing pleased the children of Israel; and the children -of Israel blessed God, and did not intend to go up against them in -battle, to destroy the land wherein the children of Reuben and Gad -dwelt. - -22:34 And the children of Reuben and the children of Gad called the -altar Ed: for it shall be a witness between us that the LORD is God. - -23:1 And it came to pass a long time after that the LORD had given -rest unto Israel from all their enemies round about, that Joshua waxed -old and stricken in age. - -23:2 And Joshua called for all Israel, and for their elders, and for -their heads, and for their judges, and for their officers, and said -unto them, I am old and stricken in age: 23:3 And ye have seen all -that the LORD your God hath done unto all these nations because of -you; for the LORD your God is he that hath fought for you. - -23:4 Behold, I have divided unto you by lot these nations that remain, -to be an inheritance for your tribes, from Jordan, with all the -nations that I have cut off, even unto the great sea westward. - -23:5 And the LORD your God, he shall expel them from before you, and -drive them from out of your sight; and ye shall possess their land, as -the LORD your God hath promised unto you. - -23:6 Be ye therefore very courageous to keep and to do all that is -written in the book of the law of Moses, that ye turn not aside -therefrom to the right hand or to the left; 23:7 That ye come not -among these nations, these that remain among you; neither make mention -of the name of their gods, nor cause to swear by them, neither serve -them, nor bow yourselves unto them: 23:8 But cleave unto the LORD your -God, as ye have done unto this day. - -23:9 For the LORD hath driven out from before you great nations and -strong: but as for you, no man hath been able to stand before you unto -this day. - -23:10 One man of you shall chase a thousand: for the LORD your God, he -it is that fighteth for you, as he hath promised you. - -23:11 Take good heed therefore unto yourselves, that ye love the LORD -your God. - -23:12 Else if ye do in any wise go back, and cleave unto the remnant -of these nations, even these that remain among you, and shall make -marriages with them, and go in unto them, and they to you: 23:13 Know -for a certainty that the LORD your God will no more drive out any of -these nations from before you; but they shall be snares and traps unto -you, and scourges in your sides, and thorns in your eyes, until ye -perish from off this good land which the LORD your God hath given you. - -23:14 And, behold, this day I am going the way of all the earth: and -ye know in all your hearts and in all your souls, that not one thing -hath failed of all the good things which the LORD your God spake -concerning you; all are come to pass unto you, and not one thing hath -failed thereof. - -23:15 Therefore it shall come to pass, that as all good things are -come upon you, which the LORD your God promised you; so shall the LORD -bring upon you all evil things, until he have destroyed you from off -this good land which the LORD your God hath given you. - -23:16 When ye have transgressed the covenant of the LORD your God, -which he commanded you, and have gone and served other gods, and bowed -yourselves to them; then shall the anger of the LORD be kindled -against you, and ye shall perish quickly from off the good land which -he hath given unto you. - -24:1 And Joshua gathered all the tribes of Israel to Shechem, and -called for the elders of Israel, and for their heads, and for their -judges, and for their officers; and they presented themselves before -God. - -24:2 And Joshua said unto all the people, Thus saith the LORD God of -Israel, Your fathers dwelt on the other side of the flood in old time, -even Terah, the father of Abraham, and the father of Nachor: and they -served other gods. - -24:3 And I took your father Abraham from the other side of the flood, -and led him throughout all the land of Canaan, and multiplied his -seed, and gave him Isaac. - -24:4 And I gave unto Isaac Jacob and Esau: and I gave unto Esau mount -Seir, to possess it; but Jacob and his children went down into Egypt. - -24:5 I sent Moses also and Aaron, and I plagued Egypt, according to -that which I did among them: and afterward I brought you out. - -24:6 And I brought your fathers out of Egypt: and ye came unto the -sea; and the Egyptians pursued after your fathers with chariots and -horsemen unto the Red sea. - -24:7 And when they cried unto the LORD, he put darkness between you -and the Egyptians, and brought the sea upon them, and covered them; -and your eyes have seen what I have done in Egypt: and ye dwelt in the -wilderness a long season. - -24:8 And I brought you into the land of the Amorites, which dwelt on -the other side Jordan; and they fought with you: and I gave them into -your hand, that ye might possess their land; and I destroyed them from -before you. - -24:9 Then Balak the son of Zippor, king of Moab, arose and warred -against Israel, and sent and called Balaam the son of Beor to curse -you: 24:10 But I would not hearken unto Balaam; therefore he blessed -you still: so I delivered you out of his hand. - -24:11 And you went over Jordan, and came unto Jericho: and the men of -Jericho fought against you, the Amorites, and the Perizzites, and the -Canaanites, and the Hittites, and the Girgashites, the Hivites, and -the Jebusites; and I delivered them into your hand. - -24:12 And I sent the hornet before you, which drave them out from -before you, even the two kings of the Amorites; but not with thy -sword, nor with thy bow. - -24:13 And I have given you a land for which ye did not labour, and -cities which ye built not, and ye dwell in them; of the vineyards and -oliveyards which ye planted not do ye eat. - -24:14 Now therefore fear the LORD, and serve him in sincerity and in -truth: and put away the gods which your fathers served on the other -side of the flood, and in Egypt; and serve ye the LORD. - -24:15 And if it seem evil unto you to serve the LORD, choose you this -day whom ye will serve; whether the gods which your fathers served -that were on the other side of the flood, or the gods of the Amorites, -in whose land ye dwell: but as for me and my house, we will serve the -LORD. - -24:16 And the people answered and said, God forbid that we should -forsake the LORD, to serve other gods; 24:17 For the LORD our God, he -it is that brought us up and our fathers out of the land of Egypt, -from the house of bondage, and which did those great signs in our -sight, and preserved us in all the way wherein we went, and among all -the people through whom we passed: 24:18 And the LORD drave out from -before us all the people, even the Amorites which dwelt in the land: -therefore will we also serve the LORD; for he is our God. - -24:19 And Joshua said unto the people, Ye cannot serve the LORD: for -he is an holy God; he is a jealous God; he will not forgive your -transgressions nor your sins. - -24:20 If ye forsake the LORD, and serve strange gods, then he will -turn and do you hurt, and consume you, after that he hath done you -good. - -24:21 And the people said unto Joshua, Nay; but we will serve the -LORD. - -24:22 And Joshua said unto the people, Ye are witnesses against -yourselves that ye have chosen you the LORD, to serve him. And they -said, We are witnesses. - -24:23 Now therefore put away, said he, the strange gods which are -among you, and incline your heart unto the LORD God of Israel. - -24:24 And the people said unto Joshua, The LORD our God will we serve, -and his voice will we obey. - -24:25 So Joshua made a covenant with the people that day, and set them -a statute and an ordinance in Shechem. - -24:26 And Joshua wrote these words in the book of the law of God, and -took a great stone, and set it up there under an oak, that was by the -sanctuary of the LORD. - -24:27 And Joshua said unto all the people, Behold, this stone shall be -a witness unto us; for it hath heard all the words of the LORD which -he spake unto us: it shall be therefore a witness unto you, lest ye -deny your God. - -24:28 So Joshua let the people depart, every man unto his inheritance. - -24:29 And it came to pass after these things, that Joshua the son of -Nun, the servant of the LORD, died, being an hundred and ten years -old. - -24:30 And they buried him in the border of his inheritance in -Timnathserah, which is in mount Ephraim, on the north side of the hill -of Gaash. - -24:31 And Israel served the LORD all the days of Joshua, and all the -days of the elders that overlived Joshua, and which had known all the -works of the LORD, that he had done for Israel. - -24:32 And the bones of Joseph, which the children of Israel brought up -out of Egypt, buried they in Shechem, in a parcel of ground which -Jacob bought of the sons of Hamor the father of Shechem for an hundred -pieces of silver: and it became the inheritance of the children of -Joseph. - -24:33 And Eleazar the son of Aaron died; and they buried him in a hill -that pertained to Phinehas his son, which was given him in mount -Ephraim. - - - - -The Book of Judges - - -1:1 Now after the death of Joshua it came to pass, that the children -of Israel asked the LORD, saying, Who shall go up for us against the -Canaanites first, to fight against them? 1:2 And the LORD said, Judah -shall go up: behold, I have delivered the land into his hand. - -1:3 And Judah said unto Simeon his brother, Come up with me into my -lot, that we may fight against the Canaanites; and I likewise will go -with thee into thy lot. So Simeon went with him. - -1:4 And Judah went up; and the LORD delivered the Canaanites and the -Perizzites into their hand: and they slew of them in Bezek ten -thousand men. - -1:5 And they found Adonibezek in Bezek: and they fought against him, -and they slew the Canaanites and the Perizzites. - -1:6 But Adonibezek fled; and they pursued after him, and caught him, -and cut off his thumbs and his great toes. - -1:7 And Adonibezek said, Threescore and ten kings, having their thumbs -and their great toes cut off, gathered their meat under my table: as I -have done, so God hath requited me. And they brought him to Jerusalem, -and there he died. - -1:8 Now the children of Judah had fought against Jerusalem, and had -taken it, and smitten it with the edge of the sword, and set the city -on fire. - -1:9 And afterward the children of Judah went down to fight against the -Canaanites, that dwelt in the mountain, and in the south, and in the -valley. - -1:10 And Judah went against the Canaanites that dwelt in Hebron: (now -the name of Hebron before was Kirjatharba:) and they slew Sheshai, and -Ahiman, and Talmai. - -1:11 And from thence he went against the inhabitants of Debir: and the -name of Debir before was Kirjathsepher: 1:12 And Caleb said, He that -smiteth Kirjathsepher, and taketh it, to him will I give Achsah my -daughter to wife. - -1:13 And Othniel the son of Kenaz, Caleb's younger brother, took it: -and he gave him Achsah his daughter to wife. - -1:14 And it came to pass, when she came to him, that she moved him to -ask of her father a field: and she lighted from off her ass; and Caleb -said unto her, What wilt thou? 1:15 And she said unto him, Give me a -blessing: for thou hast given me a south land; give me also springs of -water. And Caleb gave her the upper springs and the nether springs. - -1:16 And the children of the Kenite, Moses' father in law, went up out -of the city of palm trees with the children of Judah into the -wilderness of Judah, which lieth in the south of Arad; and they went -and dwelt among the people. - -1:17 And Judah went with Simeon his brother, and they slew the -Canaanites that inhabited Zephath, and utterly destroyed it. And the -name of the city was called Hormah. - -1:18 Also Judah took Gaza with the coast thereof, and Askelon with the -coast thereof, and Ekron with the coast thereof. - -1:19 And the LORD was with Judah; and he drave out the inhabitants of -the mountain; but could not drive out the inhabitants of the valley, -because they had chariots of iron. - -1:20 And they gave Hebron unto Caleb, as Moses said: and he expelled -thence the three sons of Anak. - -1:21 And the children of Benjamin did not drive out the Jebusites that -inhabited Jerusalem; but the Jebusites dwell with the children of -Benjamin in Jerusalem unto this day. - -1:22 And the house of Joseph, they also went up against Bethel: and -the LORD was with them. - -1:23 And the house of Joseph sent to descry Bethel. (Now the name of -the city before was Luz.) 1:24 And the spies saw a man come forth out -of the city, and they said unto him, Shew us, we pray thee, the -entrance into the city, and we will shew thee mercy. - -1:25 And when he shewed them the entrance into the city, they smote -the city with the edge of the sword; but they let go the man and all -his family. - -1:26 And the man went into the land of the Hittites, and built a city, -and called the name thereof Luz: which is the name thereof unto this -day. - -1:27 Neither did Manasseh drive out the inhabitants of Bethshean and -her towns, nor Taanach and her towns, nor the inhabitants of Dor and -her towns, nor the inhabitants of Ibleam and her towns, nor the -inhabitants of Megiddo and her towns: but the Canaanites would dwell -in that land. - -1:28 And it came to pass, when Israel was strong, that they put the -Canaanites to tribute, and did not utterly drive them out. - -1:29 Neither did Ephraim drive out the Canaanites that dwelt in Gezer; -but the Canaanites dwelt in Gezer among them. - -1:30 Neither did Zebulun drive out the inhabitants of Kitron, nor the -inhabitants of Nahalol; but the Canaanites dwelt among them, and -became tributaries. - -1:31 Neither did Asher drive out the inhabitants of Accho, nor the -inhabitants of Zidon, nor of Ahlab, nor of Achzib, nor of Helbah, nor -of Aphik, nor of Rehob: 1:32 But the Asherites dwelt among the -Canaanites, the inhabitants of the land: for they did not drive them -out. - -1:33 Neither did Naphtali drive out the inhabitants of Bethshemesh, -nor the inhabitants of Bethanath; but he dwelt among the Canaanites, -the inhabitants of the land: nevertheless the inhabitants of -Bethshemesh and of Bethanath became tributaries unto them. - -1:34 And the Amorites forced the children of Dan into the mountain: -for they would not suffer them to come down to the valley: 1:35 But -the Amorites would dwell in mount Heres in Aijalon, and in Shaalbim: -yet the hand of the house of Joseph prevailed, so that they became -tributaries. - -1:36 And the coast of the Amorites was from the going up to Akrabbim, -from the rock, and upward. - -2:1 And an angel of the LORD came up from Gilgal to Bochim, and said, -I made you to go up out of Egypt, and have brought you unto the land -which I sware unto your fathers; and I said, I will never break my -covenant with you. - -2:2 And ye shall make no league with the inhabitants of this land; ye -shall throw down their altars: but ye have not obeyed my voice: why -have ye done this? 2:3 Wherefore I also said, I will not drive them -out from before you; but they shall be as thorns in your sides, and -their gods shall be a snare unto you. - -2:4 And it came to pass, when the angel of the LORD spake these words -unto all the children of Israel, that the people lifted up their -voice, and wept. - -2:5 And they called the name of that place Bochim: and they sacrificed -there unto the LORD. - -2:6 And when Joshua had let the people go, the children of Israel went -every man unto his inheritance to possess the land. - -2:7 And the people served the LORD all the days of Joshua, and all the -days of the elders that outlived Joshua, who had seen all the great -works of the LORD, that he did for Israel. - -2:8 And Joshua the son of Nun, the servant of the LORD, died, being an -hundred and ten years old. - -2:9 And they buried him in the border of his inheritance in -Timnathheres, in the mount of Ephraim, on the north side of the hill -Gaash. - -2:10 And also all that generation were gathered unto their fathers: -and there arose another generation after them, which knew not the -LORD, nor yet the works which he had done for Israel. - -2:11 And the children of Israel did evil in the sight of the LORD, and -served Baalim: 2:12 And they forsook the LORD God of their fathers, -which brought them out of the land of Egypt, and followed other gods, -of the gods of the people that were round about them, and bowed -themselves unto them, and provoked the LORD to anger. - -2:13 And they forsook the LORD, and served Baal and Ashtaroth. - -2:14 And the anger of the LORD was hot against Israel, and he -delivered them into the hands of spoilers that spoiled them, and he -sold them into the hands of their enemies round about, so that they -could not any longer stand before their enemies. - -2:15 Whithersoever they went out, the hand of the LORD was against -them for evil, as the LORD had said, and as the LORD had sworn unto -them: and they were greatly distressed. - -2:16 Nevertheless the LORD raised up judges, which delivered them out -of the hand of those that spoiled them. - -2:17 And yet they would not hearken unto their judges, but they went a -whoring after other gods, and bowed themselves unto them: they turned -quickly out of the way which their fathers walked in, obeying the -commandments of the LORD; but they did not so. - -2:18 And when the LORD raised them up judges, then the LORD was with -the judge, and delivered them out of the hand of their enemies all the -days of the judge: for it repented the LORD because of their groanings -by reason of them that oppressed them and vexed them. - -2:19 And it came to pass, when the judge was dead, that they returned, -and corrupted themselves more than their fathers, in following other -gods to serve them, and to bow down unto them; they ceased not from -their own doings, nor from their stubborn way. - -2:20 And the anger of the LORD was hot against Israel; and he said, -Because that this people hath transgressed my covenant which I -commanded their fathers, and have not hearkened unto my voice; 2:21 I -also will not henceforth drive out any from before them of the nations -which Joshua left when he died: 2:22 That through them I may prove -Israel, whether they will keep the way of the LORD to walk therein, as -their fathers did keep it, or not. - -2:23 Therefore the LORD left those nations, without driving them out -hastily; neither delivered he them into the hand of Joshua. - -3:1 Now these are the nations which the LORD left, to prove Israel by -them, even as many of Israel as had not known all the wars of Canaan; -3:2 Only that the generations of the children of Israel might know, to -teach them war, at the least such as before knew nothing thereof; 3:3 -Namely, five lords of the Philistines, and all the Canaanites, and the -Sidonians, and the Hivites that dwelt in mount Lebanon, from mount -Baalhermon unto the entering in of Hamath. - -3:4 And they were to prove Israel by them, to know whether they would -hearken unto the commandments of the LORD, which he commanded their -fathers by the hand of Moses. - -3:5 And the children of Israel dwelt among the Canaanites, Hittites, -and Amorites, and Perizzites, and Hivites, and Jebusites: 3:6 And they -took their daughters to be their wives, and gave their daughters to -their sons, and served their gods. - -3:7 And the children of Israel did evil in the sight of the LORD, and -forgat the LORD their God, and served Baalim and the groves. - -3:8 Therefore the anger of the LORD was hot against Israel, and he -sold them into the hand of Chushanrishathaim king of Mesopotamia: and -the children of Israel served Chushanrishathaim eight years. - -3:9 And when the children of Israel cried unto the LORD, the LORD -raised up a deliverer to the children of Israel, who delivered them, -even Othniel the son of Kenaz, Caleb's younger brother. - -3:10 And the Spirit of the LORD came upon him, and he judged Israel, -and went out to war: and the LORD delivered Chushanrishathaim king of -Mesopotamia into his hand; and his hand prevailed against -Chushanrishathaim. - -3:11 And the land had rest forty years. And Othniel the son of Kenaz -died. - -3:12 And the children of Israel did evil again in the sight of the -LORD: and the LORD strengthened Eglon the king of Moab against Israel, -because they had done evil in the sight of the LORD. - -3:13 And he gathered unto him the children of Ammon and Amalek, and -went and smote Israel, and possessed the city of palm trees. - -3:14 So the children of Israel served Eglon the king of Moab eighteen -years. - -3:15 But when the children of Israel cried unto the LORD, the LORD -raised them up a deliverer, Ehud the son of Gera, a Benjamite, a man -lefthanded: and by him the children of Israel sent a present unto -Eglon the king of Moab. - -3:16 But Ehud made him a dagger which had two edges, of a cubit -length; and he did gird it under his raiment upon his right thigh. - -3:17 And he brought the present unto Eglon king of Moab: and Eglon was -a very fat man. - -3:18 And when he had made an end to offer the present, he sent away -the people that bare the present. - -3:19 But he himself turned again from the quarries that were by -Gilgal, and said, I have a secret errand unto thee, O king: who said, -Keep silence. And all that stood by him went out from him. - -3:20 And Ehud came unto him; and he was sitting in a summer parlour, -which he had for himself alone. And Ehud said, I have a message from -God unto thee. - -And he arose out of his seat. - -3:21 And Ehud put forth his left hand, and took the dagger from his -right thigh, and thrust it into his belly: 3:22 And the haft also went -in after the blade; and the fat closed upon the blade, so that he -could not draw the dagger out of his belly; and the dirt came out. - -3:23 Then Ehud went forth through the porch, and shut the doors of the -parlour upon him, and locked them. - -3:24 When he was gone out, his servants came; and when they saw that, -behold, the doors of the parlour were locked, they said, Surely he -covereth his feet in his summer chamber. - -3:25 And they tarried till they were ashamed: and, behold, he opened -not the doors of the parlour; therefore they took a key, and opened -them: and, behold, their lord was fallen down dead on the earth. - -3:26 And Ehud escaped while they tarried, and passed beyond the -quarries, and escaped unto Seirath. - -3:27 And it came to pass, when he was come, that he blew a trumpet in -the mountain of Ephraim, and the children of Israel went down with him -from the mount, and he before them. - -3:28 And he said unto them, Follow after me: for the LORD hath -delivered your enemies the Moabites into your hand. And they went down -after him, and took the fords of Jordan toward Moab, and suffered not -a man to pass over. - -3:29 And they slew of Moab at that time about ten thousand men, all -lusty, and all men of valour; and there escaped not a man. - -3:30 So Moab was subdued that day under the hand of Israel. And the -land had rest fourscore years. - -3:31 And after him was Shamgar the son of Anath, which slew of the -Philistines six hundred men with an ox goad: and he also delivered -Israel. - -4:1 And the children of Israel again did evil in the sight of the -LORD, when Ehud was dead. - -4:2 And the LORD sold them into the hand of Jabin king of Canaan, that -reigned in Hazor; the captain of whose host was Sisera, which dwelt in -Harosheth of the Gentiles. - -4:3 And the children of Israel cried unto the LORD: for he had nine -hundred chariots of iron; and twenty years he mightily oppressed the -children of Israel. - -4:4 And Deborah, a prophetess, the wife of Lapidoth, she judged Israel -at that time. - -4:5 And she dwelt under the palm tree of Deborah between Ramah and -Bethel in mount Ephraim: and the children of Israel came up to her for -judgment. - -4:6 And she sent and called Barak the son of Abinoam out of -Kedeshnaphtali, and said unto him, Hath not the LORD God of Israel -commanded, saying, Go and draw toward mount Tabor, and take with thee -ten thousand men of the children of Naphtali and of the children of -Zebulun? 4:7 And I will draw unto thee to the river Kishon Sisera, -the captain of Jabin's army, with his chariots and his multitude; and -I will deliver him into thine hand. - -4:8 And Barak said unto her, If thou wilt go with me, then I will go: -but if thou wilt not go with me, then I will not go. - -4:9 And she said, I will surely go with thee: notwithstanding the -journey that thou takest shall not be for thine honour; for the LORD -shall sell Sisera into the hand of a woman. And Deborah arose, and -went with Barak to Kedesh. - -4:10 And Barak called Zebulun and Naphtali to Kedesh; and he went up -with ten thousand men at his feet: and Deborah went up with him. - -4:11 Now Heber the Kenite, which was of the children of Hobab the -father in law of Moses, had severed himself from the Kenites, and -pitched his tent unto the plain of Zaanaim, which is by Kedesh. - -4:12 And they shewed Sisera that Barak the son of Abinoam was gone up -to mount Tabor. - -4:13 And Sisera gathered together all his chariots, even nine hundred -chariots of iron, and all the people that were with him, from -Harosheth of the Gentiles unto the river of Kishon. - -4:14 And Deborah said unto Barak, Up; for this is the day in which the -LORD hath delivered Sisera into thine hand: is not the LORD gone out -before thee? So Barak went down from mount Tabor, and ten thousand men -after him. - -4:15 And the LORD discomfited Sisera, and all his chariots, and all -his host, with the edge of the sword before Barak; so that Sisera -lighted down off his chariot, and fled away on his feet. - -4:16 But Barak pursued after the chariots, and after the host, unto -Harosheth of the Gentiles: and all the host of Sisera fell upon the -edge of the sword; and there was not a man left. - -4:17 Howbeit Sisera fled away on his feet to the tent of Jael the wife -of Heber the Kenite: for there was peace between Jabin the king of -Hazor and the house of Heber the Kenite. - -4:18 And Jael went out to meet Sisera, and said unto him, Turn in, my -lord, turn in to me; fear not. And when he had turned in unto her into -the tent, she covered him with a mantle. - -4:19 And he said unto her, Give me, I pray thee, a little water to -drink; for I am thirsty. And she opened a bottle of milk, and gave him -drink, and covered him. - -4:20 Again he said unto her, Stand in the door of the tent, and it -shall be, when any man doth come and enquire of thee, and say, Is -there any man here? that thou shalt say, No. - -4:21 Then Jael Heber's wife took a nail of the tent, and took an -hammer in her hand, and went softly unto him, and smote the nail into -his temples, and fastened it into the ground: for he was fast asleep -and weary. So he died. - -4:22 And, behold, as Barak pursued Sisera, Jael came out to meet him, -and said unto him, Come, and I will shew thee the man whom thou -seekest. And when he came into her tent, behold, Sisera lay dead, and -the nail was in his temples. - -4:23 So God subdued on that day Jabin the king of Canaan before the -children of Israel. - -4:24 And the hand of the children of Israel prospered, and prevailed -against Jabin the king of Canaan, until they had destroyed Jabin king -of Canaan. - -5:1 Then sang Deborah and Barak the son of Abinoam on that day, -saying, 5:2 Praise ye the LORD for the avenging of Israel, when the -people willingly offered themselves. - -5:3 Hear, O ye kings; give ear, O ye princes; I, even I, will sing -unto the LORD; I will sing praise to the LORD God of Israel. - -5:4 LORD, when thou wentest out of Seir, when thou marchedst out of -the field of Edom, the earth trembled, and the heavens dropped, the -clouds also dropped water. - -5:5 The mountains melted from before the LORD, even that Sinai from -before the LORD God of Israel. - -5:6 In the days of Shamgar the son of Anath, in the days of Jael, the -highways were unoccupied, and the travellers walked through byways. - -5:7 The inhabitants of the villages ceased, they ceased in Israel, -until that I Deborah arose, that I arose a mother in Israel. - -5:8 They chose new gods; then was war in the gates: was there a shield -or spear seen among forty thousand in Israel? 5:9 My heart is toward -the governors of Israel, that offered themselves willingly among the -people. Bless ye the LORD. - -5:10 Speak, ye that ride on white asses, ye that sit in judgment, and -walk by the way. - -5:11 They that are delivered from the noise of archers in the places -of drawing water, there shall they rehearse the righteous acts of the -LORD, even the righteous acts toward the inhabitants of his villages -in Israel: then shall the people of the LORD go down to the gates. - -5:12 Awake, awake, Deborah: awake, awake, utter a song: arise, Barak, -and lead thy captivity captive, thou son of Abinoam. - -5:13 Then he made him that remaineth have dominion over the nobles -among the people: the LORD made me have dominion over the mighty. - -5:14 Out of Ephraim was there a root of them against Amalek; after -thee, Benjamin, among thy people; out of Machir came down governors, -and out of Zebulun they that handle the pen of the writer. - -5:15 And the princes of Issachar were with Deborah; even Issachar, and -also Barak: he was sent on foot into the valley. For the divisions of -Reuben there were great thoughts of heart. - -5:16 Why abodest thou among the sheepfolds, to hear the bleatings of -the flocks? For the divisions of Reuben there were great searchings of -heart. - -5:17 Gilead abode beyond Jordan: and why did Dan remain in ships? -Asher continued on the sea shore, and abode in his breaches. - -5:18 Zebulun and Naphtali were a people that jeoparded their lives -unto the death in the high places of the field. - -5:19 The kings came and fought, then fought the kings of Canaan in -Taanach by the waters of Megiddo; they took no gain of money. - -5:20 They fought from heaven; the stars in their courses fought -against Sisera. - -5:21 The river of Kishon swept them away, that ancient river, the -river Kishon. O my soul, thou hast trodden down strength. - -5:22 Then were the horsehoofs broken by the means of the pransings, -the pransings of their mighty ones. - -5:23 Curse ye Meroz, said the angel of the LORD, curse ye bitterly the -inhabitants thereof; because they came not to the help of the LORD, to -the help of the LORD against the mighty. - -5:24 Blessed above women shall Jael the wife of Heber the Kenite be, -blessed shall she be above women in the tent. - -5:25 He asked water, and she gave him milk; she brought forth butter -in a lordly dish. - -5:26 She put her hand to the nail, and her right hand to the workmen's -hammer; and with the hammer she smote Sisera, she smote off his head, -when she had pierced and stricken through his temples. - -5:27 At her feet he bowed, he fell, he lay down: at her feet he bowed, -he fell: where he bowed, there he fell down dead. - -5:28 The mother of Sisera looked out at a window, and cried through -the lattice, Why is his chariot so long in coming? why tarry the -wheels of his chariots? 5:29 Her wise ladies answered her, yea, she -returned answer to herself, 5:30 Have they not sped? have they not -divided the prey; to every man a damsel or two; to Sisera a prey of -divers colours, a prey of divers colours of needlework, of divers -colours of needlework on both sides, meet for the necks of them that -take the spoil? 5:31 So let all thine enemies perish, O LORD: but let -them that love him be as the sun when he goeth forth in his might. And -the land had rest forty years. - -6:1 And the children of Israel did evil in the sight of the LORD: and -the LORD delivered them into the hand of Midian seven years. - -6:2 And the hand of Midian prevailed against Israel: and because of -the Midianites the children of Israel made them the dens which are in -the mountains, and caves, and strong holds. - -6:3 And so it was, when Israel had sown, that the Midianites came up, -and the Amalekites, and the children of the east, even they came up -against them; 6:4 And they encamped against them, and destroyed the -increase of the earth, till thou come unto Gaza, and left no -sustenance for Israel, neither sheep, nor ox, nor ass. - -6:5 For they came up with their cattle and their tents, and they came -as grasshoppers for multitude; for both they and their camels were -without number: and they entered into the land to destroy it. - -6:6 And Israel was greatly impoverished because of the Midianites; and -the children of Israel cried unto the LORD. - -6:7 And it came to pass, when the children of Israel cried unto the -LORD because of the Midianites, 6:8 That the LORD sent a prophet unto -the children of Israel, which said unto them, Thus saith the LORD God -of Israel, I brought you up from Egypt, and brought you forth out of -the house of bondage; 6:9 And I delivered you out of the hand of the -Egyptians, and out of the hand of all that oppressed you, and drave -them out from before you, and gave you their land; 6:10 And I said -unto you, I am the LORD your God; fear not the gods of the Amorites, -in whose land ye dwell: but ye have not obeyed my voice. - -6:11 And there came an angel of the LORD, and sat under an oak which -was in Ophrah, that pertained unto Joash the Abiezrite: and his son -Gideon threshed wheat by the winepress, to hide it from the -Midianites. - -6:12 And the angel of the LORD appeared unto him, and said unto him, -The LORD is with thee, thou mighty man of valour. - -6:13 And Gideon said unto him, Oh my Lord, if the LORD be with us, why -then is all this befallen us? and where be all his miracles which our -fathers told us of, saying, Did not the LORD bring us up from Egypt? -but now the LORD hath forsaken us, and delivered us into the hands of -the Midianites. - -6:14 And the LORD looked upon him, and said, Go in this thy might, and -thou shalt save Israel from the hand of the Midianites: have not I -sent thee? 6:15 And he said unto him, Oh my Lord, wherewith shall I -save Israel? behold, my family is poor in Manasseh, and I am the -least in my father's house. - -6:16 And the LORD said unto him, Surely I will be with thee, and thou -shalt smite the Midianites as one man. - -6:17 And he said unto him, If now I have found grace in thy sight, -then shew me a sign that thou talkest with me. - -6:18 Depart not hence, I pray thee, until I come unto thee, and bring -forth my present, and set it before thee. And he said, I will tarry -until thou come again. - -6:19 And Gideon went in, and made ready a kid, and unleavened cakes of -an ephah of flour: the flesh he put in a basket, and he put the broth -in a pot, and brought it out unto him under the oak, and presented it. - -6:20 And the angel of God said unto him, Take the flesh and the -unleavened cakes, and lay them upon this rock, and pour out the broth. -And he did so. - -6:21 Then the angel of the LORD put forth the end of the staff that -was in his hand, and touched the flesh and the unleavened cakes; and -there rose up fire out of the rock, and consumed the flesh and the -unleavened cakes. Then the angel of the LORD departed out of his -sight. - -6:22 And when Gideon perceived that he was an angel of the LORD, -Gideon said, Alas, O LORD God! for because I have seen an angel of the -LORD face to face. - -6:23 And the LORD said unto him, Peace be unto thee; fear not: thou -shalt not die. - -6:24 Then Gideon built an altar there unto the LORD, and called it -Jehovahshalom: unto this day it is yet in Ophrah of the Abiezrites. - -6:25 And it came to pass the same night, that the LORD said unto him, -Take thy father's young bullock, even the second bullock of seven -years old, and throw down the altar of Baal that thy father hath, and -cut down the grove that is by it: 6:26 And build an altar unto the -LORD thy God upon the top of this rock, in the ordered place, and take -the second bullock, and offer a burnt sacrifice with the wood of the -grove which thou shalt cut down. - -6:27 Then Gideon took ten men of his servants, and did as the LORD had -said unto him: and so it was, because he feared his father's -household, and the men of the city, that he could not do it by day, -that he did it by night. - -6:28 And when the men of the city arose early in the morning, behold, -the altar of Baal was cast down, and the grove was cut down that was -by it, and the second bullock was offered upon the altar that was -built. - -6:29 And they said one to another, Who hath done this thing? And when -they enquired and asked, they said, Gideon the son of Joash hath done -this thing. - -6:30 Then the men of the city said unto Joash, Bring out thy son, that -he may die: because he hath cast down the altar of Baal, and because -he hath cut down the grove that was by it. - -6:31 And Joash said unto all that stood against him, Will ye plead for -Baal? will ye save him? he that will plead for him, let him be put to -death whilst it is yet morning: if he be a god, let him plead for -himself, because one hath cast down his altar. - -6:32 Therefore on that day he called him Jerubbaal, saying, Let Baal -plead against him, because he hath thrown down his altar. - -6:33 Then all the Midianites and the Amalekites and the children of -the east were gathered together, and went over, and pitched in the -valley of Jezreel. - -6:34 But the Spirit of the LORD came upon Gideon, and he blew a -trumpet; and Abiezer was gathered after him. - -6:35 And he sent messengers throughout all Manasseh; who also was -gathered after him: and he sent messengers unto Asher, and unto -Zebulun, and unto Naphtali; and they came up to meet them. - -6:36 And Gideon said unto God, If thou wilt save Israel by mine hand, -as thou hast said, 6:37 Behold, I will put a fleece of wool in the -floor; and if the dew be on the fleece only, and it be dry upon all -the earth beside, then shall I know that thou wilt save Israel by mine -hand, as thou hast said. - -6:38 And it was so: for he rose up early on the morrow, and thrust the -fleece together, and wringed the dew out of the fleece, a bowl full of -water. - -6:39 And Gideon said unto God, Let not thine anger be hot against me, -and I will speak but this once: let me prove, I pray thee, but this -once with the fleece; let it now be dry only upon the fleece, and upon -all the ground let there be dew. - -6:40 And God did so that night: for it was dry upon the fleece only, -and there was dew on all the ground. - -7:1 Then Jerubbaal, who is Gideon, and all the people that were with -him, rose up early, and pitched beside the well of Harod: so that the -host of the Midianites were on the north side of them, by the hill of -Moreh, in the valley. - -7:2 And the LORD said unto Gideon, The people that are with thee are -too many for me to give the Midianites into their hands, lest Israel -vaunt themselves against me, saying, Mine own hand hath saved me. - -7:3 Now therefore go to, proclaim in the ears of the people, saying, -Whosoever is fearful and afraid, let him return and depart early from -mount Gilead. And there returned of the people twenty and two -thousand; and there remained ten thousand. - -7:4 And the LORD said unto Gideon, The people are yet too many; bring -them down unto the water, and I will try them for thee there: and it -shall be, that of whom I say unto thee, This shall go with thee, the -same shall go with thee; and of whomsoever I say unto thee, This shall -not go with thee, the same shall not go. - -7:5 So he brought down the people unto the water: and the LORD said -unto Gideon, Every one that lappeth of the water with his tongue, as a -dog lappeth, him shalt thou set by himself; likewise every one that -boweth down upon his knees to drink. - -7:6 And the number of them that lapped, putting their hand to their -mouth, were three hundred men: but all the rest of the people bowed -down upon their knees to drink water. - -7:7 And the LORD said unto Gideon, By the three hundred men that -lapped will I save you, and deliver the Midianites into thine hand: -and let all the other people go every man unto his place. - -7:8 So the people took victuals in their hand, and their trumpets: and -he sent all the rest of Israel every man unto his tent, and retained -those three hundred men: and the host of Midian was beneath him in the -valley. - -7:9 And it came to pass the same night, that the LORD said unto him, -Arise, get thee down unto the host; for I have delivered it into thine -hand. - -7:10 But if thou fear to go down, go thou with Phurah thy servant down -to the host: 7:11 And thou shalt hear what they say; and afterward -shall thine hands be strengthened to go down unto the host. Then went -he down with Phurah his servant unto the outside of the armed men that -were in the host. - -7:12 And the Midianites and the Amalekites and all the children of the -east lay along in the valley like grasshoppers for multitude; and -their camels were without number, as the sand by the sea side for -multitude. - -7:13 And when Gideon was come, behold, there was a man that told a -dream unto his fellow, and said, Behold, I dreamed a dream, and, lo, a -cake of barley bread tumbled into the host of Midian, and came unto a -tent, and smote it that it fell, and overturned it, that the tent lay -along. - -7:14 And his fellow answered and said, This is nothing else save the -sword of Gideon the son of Joash, a man of Israel: for into his hand -hath God delivered Midian, and all the host. - -7:15 And it was so, when Gideon heard the telling of the dream, and -the interpretation thereof, that he worshipped, and returned into the -host of Israel, and said, Arise; for the LORD hath delivered into your -hand the host of Midian. - -7:16 And he divided the three hundred men into three companies, and he -put a trumpet in every man's hand, with empty pitchers, and lamps -within the pitchers. - -7:17 And he said unto them, Look on me, and do likewise: and, behold, -when I come to the outside of the camp, it shall be that, as I do, so -shall ye do. - -7:18 When I blow with a trumpet, I and all that are with me, then blow -ye the trumpets also on every side of all the camp, and say, The sword -of the LORD, and of Gideon. - -7:19 So Gideon, and the hundred men that were with him, came unto the -outside of the camp in the beginning of the middle watch; and they had -but newly set the watch: and they blew the trumpets, and brake the -pitchers that were in their hands. - -7:20 And the three companies blew the trumpets, and brake the -pitchers, and held the lamps in their left hands, and the trumpets in -their right hands to blow withal: and they cried, The sword of the -LORD, and of Gideon. - -7:21 And they stood every man in his place round about the camp; and -all the host ran, and cried, and fled. - -7:22 And the three hundred blew the trumpets, and the LORD set every -man's sword against his fellow, even throughout all the host: and the -host fled to Bethshittah in Zererath, and to the border of -Abelmeholah, unto Tabbath. - -7:23 And the men of Israel gathered themselves together out of -Naphtali, and out of Asher, and out of all Manasseh, and pursued after -the Midianites. - -7:24 And Gideon sent messengers throughout all mount Ephraim, saying, -come down against the Midianites, and take before them the waters unto -Bethbarah and Jordan. Then all the men of Ephraim gathered themselves -together, and took the waters unto Bethbarah and Jordan. - -7:25 And they took two princes of the Midianites, Oreb and Zeeb; and -they slew Oreb upon the rock Oreb, and Zeeb they slew at the winepress -of Zeeb, and pursued Midian, and brought the heads of Oreb and Zeeb to -Gideon on the other side Jordan. - -8:1 And the men of Ephraim said unto him, Why hast thou served us -thus, that thou calledst us not, when thou wentest to fight with the -Midianites? And they did chide with him sharply. - -8:2 And he said unto them, What have I done now in comparison of you? -Is not the gleaning of the grapes of Ephraim better than the vintage -of Abiezer? 8:3 God hath delivered into your hands the princes of -Midian, Oreb and Zeeb: and what was I able to do in comparison of you? -Then their anger was abated toward him, when he had said that. - -8:4 And Gideon came to Jordan, and passed over, he, and the three -hundred men that were with him, faint, yet pursuing them. - -8:5 And he said unto the men of Succoth, Give, I pray you, loaves of -bread unto the people that follow me; for they be faint, and I am -pursuing after Zebah and Zalmunna, kings of Midian. - -8:6 And the princes of Succoth said, Are the hands of Zebah and -Zalmunna now in thine hand, that we should give bread unto thine army? -8:7 And Gideon said, Therefore when the LORD hath delivered Zebah and -Zalmunna into mine hand, then I will tear your flesh with the thorns -of the wilderness and with briers. - -8:8 And he went up thence to Penuel, and spake unto them likewise: and -the men of Penuel answered him as the men of Succoth had answered him. - -8:9 And he spake also unto the men of Penuel, saying, When I come -again in peace, I will break down this tower. - -8:10 Now Zebah and Zalmunna were in Karkor, and their hosts with them, -about fifteen thousand men, all that were left of all the hosts of the -children of the east: for there fell an hundred and twenty thousand -men that drew sword. - -8:11 And Gideon went up by the way of them that dwelt in tents on the -east of Nobah and Jogbehah, and smote the host; for the host was -secure. - -8:12 And when Zebah and Zalmunna fled, he pursued after them, and took -the two kings of Midian, Zebah and Zalmunna, and discomfited all the -host. - -8:13 And Gideon the son of Joash returned from battle before the sun -was up, 8:14 And caught a young man of the men of Succoth, and -enquired of him: and he described unto him the princes of Succoth, and -the elders thereof, even threescore and seventeen men. - -8:15 And he came unto the men of Succoth, and said, Behold Zebah and -Zalmunna, with whom ye did upbraid me, saying, Are the hands of Zebah -and Zalmunna now in thine hand, that we should give bread unto thy men -that are weary? 8:16 And he took the elders of the city, and thorns -of the wilderness and briers, and with them he taught the men of -Succoth. - -8:17 And he beat down the tower of Penuel, and slew the men of the -city. - -8:18 Then said he unto Zebah and Zalmunna, What manner of men were -they whom ye slew at Tabor? And they answered, As thou art, so were -they; each one resembled the children of a king. - -8:19 And he said, They were my brethren, even the sons of my mother: -as the LORD liveth, if ye had saved them alive, I would not slay you. - -8:20 And he said unto Jether his firstborn, Up, and slay them. But the -youth drew not his sword: for he feared, because he was yet a youth. - -8:21 Then Zebah and Zalmunna said, Rise thou, and fall upon us: for as -the man is, so is his strength. And Gideon arose, and slew Zebah and -Zalmunna, and took away the ornaments that were on their camels' -necks. - -8:22 Then the men of Israel said unto Gideon, Rule thou over us, both -thou, and thy son, and thy son's son also: for thou hast delivered us -from the hand of Midian. - -8:23 And Gideon said unto them, I will not rule over you, neither -shall my son rule over you: the LORD shall rule over you. - -8:24 And Gideon said unto them, I would desire a request of you, that -ye would give me every man the earrings of his prey. (For they had -golden earrings, because they were Ishmaelites.) 8:25 And they -answered, We will willingly give them. And they spread a garment, and -did cast therein every man the earrings of his prey. - -8:26 And the weight of the golden earrings that he requested was a -thousand and seven hundred shekels of gold; beside ornaments, and -collars, and purple raiment that was on the kings of Midian, and -beside the chains that were about their camels' necks. - -8:27 And Gideon made an ephod thereof, and put it in his city, even in -Ophrah: and all Israel went thither a whoring after it: which thing -became a snare unto Gideon, and to his house. - -8:28 Thus was Midian subdued before the children of Israel, so that -they lifted up their heads no more. And the country was in quietness -forty years in the days of Gideon. - -8:29 And Jerubbaal the son of Joash went and dwelt in his own house. - -8:30 And Gideon had threescore and ten sons of his body begotten: for -he had many wives. - -8:31 And his concubine that was in Shechem, she also bare him a son, -whose name he called Abimelech. - -8:32 And Gideon the son of Joash died in a good old age, and was -buried in the sepulchre of Joash his father, in Ophrah of the -Abiezrites. - -8:33 And it came to pass, as soon as Gideon was dead, that the -children of Israel turned again, and went a whoring after Baalim, and -made Baalberith their god. - -8:34 And the children of Israel remembered not the LORD their God, who -had delivered them out of the hands of all their enemies on every -side: 8:35 Neither shewed they kindness to the house of Jerubbaal, -namely, Gideon, according to all the goodness which he had shewed unto -Israel. - -9:1 And Abimelech the son of Jerubbaal went to Shechem unto his -mother's brethren, and communed with them, and with all the family of -the house of his mother's father, saying, 9:2 Speak, I pray you, in -the ears of all the men of Shechem, Whether is better for you, either -that all the sons of Jerubbaal, which are threescore and ten persons, -reign over you, or that one reign over you? remember also that I am -your bone and your flesh. - -9:3 And his mother's brethren spake of him in the ears of all the men -of Shechem all these words: and their hearts inclined to follow -Abimelech; for they said, He is our brother. - -9:4 And they gave him threescore and ten pieces of silver out of the -house of Baalberith, wherewith Abimelech hired vain and light persons, -which followed him. - -9:5 And he went unto his father's house at Ophrah, and slew his -brethren the sons of Jerubbaal, being threescore and ten persons, upon -one stone: notwithstanding yet Jotham the youngest son of Jerubbaal -was left; for he hid himself. - -9:6 And all the men of Shechem gathered together, and all the house of -Millo, and went, and made Abimelech king, by the plain of the pillar -that was in Shechem. - -9:7 And when they told it to Jotham, he went and stood in the top of -mount Gerizim, and lifted up his voice, and cried, and said unto them, -Hearken unto me, ye men of Shechem, that God may hearken unto you. - -9:8 The trees went forth on a time to anoint a king over them; and -they said unto the olive tree, Reign thou over us. - -9:9 But the olive tree said unto them, Should I leave my fatness, -wherewith by me they honour God and man, and go to be promoted over -the trees? 9:10 And the trees said to the fig tree, Come thou, and -reign over us. - -9:11 But the fig tree said unto them, Should I forsake my sweetness, -and my good fruit, and go to be promoted over the trees? 9:12 Then -said the trees unto the vine, Come thou, and reign over us. - -9:13 And the vine said unto them, Should I leave my wine, which -cheereth God and man, and go to be promoted over the trees? 9:14 Then -said all the trees unto the bramble, Come thou, and reign over us. - -9:15 And the bramble said unto the trees, If in truth ye anoint me -king over you, then come and put your trust in my shadow: and if not, -let fire come out of the bramble, and devour the cedars of Lebanon. - -9:16 Now therefore, if ye have done truly and sincerely, in that ye -have made Abimelech king, and if ye have dealt well with Jerubbaal and -his house, and have done unto him according to the deserving of his -hands; 9:17 (For my father fought for you, and adventured his life -far, and delivered you out of the hand of Midian: 9:18 And ye are -risen up against my father's house this day, and have slain his sons, -threescore and ten persons, upon one stone, and have made Abimelech, -the son of his maidservant, king over the men of Shechem, because he -is your brother;) 9:19 If ye then have dealt truly and sincerely with -Jerubbaal and with his house this day, then rejoice ye in Abimelech, -and let him also rejoice in you: 9:20 But if not, let fire come out -from Abimelech, and devour the men of Shechem, and the house of Millo; -and let fire come out from the men of Shechem, and from the house of -Millo, and devour Abimelech. - -9:21 And Jotham ran away, and fled, and went to Beer, and dwelt there, -for fear of Abimelech his brother. - -9:22 When Abimelech had reigned three years over Israel, 9:23 Then God -sent an evil spirit between Abimelech and the men of Shechem; and the -men of Shechem dealt treacherously with Abimelech: 9:24 That the -cruelty done to the threescore and ten sons of Jerubbaal might come, -and their blood be laid upon Abimelech their brother, which slew them; -and upon the men of Shechem, which aided him in the killing of his -brethren. - -9:25 And the men of Shechem set liers in wait for him in the top of -the mountains, and they robbed all that came along that way by them: -and it was told Abimelech. - -9:26 And Gaal the son of Ebed came with his brethren, and went over to -Shechem: and the men of Shechem put their confidence in him. - -9:27 And they went out into the fields, and gathered their vineyards, -and trode the grapes, and made merry, and went into the house of their -god, and did eat and drink, and cursed Abimelech. - -9:28 And Gaal the son of Ebed said, Who is Abimelech, and who is -Shechem, that we should serve him? is not he the son of Jerubbaal? and -Zebul his officer? serve the men of Hamor the father of Shechem: for -why should we serve him? 9:29 And would to God this people were under -my hand! then would I remove Abimelech. And he said to Abimelech, -Increase thine army, and come out. - -9:30 And when Zebul the ruler of the city heard the words of Gaal the -son of Ebed, his anger was kindled. - -9:31 And he sent messengers unto Abimelech privily, saying, Behold, -Gaal the son of Ebed and his brethren be come to Shechem; and, behold, -they fortify the city against thee. - -9:32 Now therefore up by night, thou and the people that is with thee, -and lie in wait in the field: 9:33 And it shall be, that in the -morning, as soon as the sun is up, thou shalt rise early, and set upon -the city: and, behold, when he and the people that is with him come -out against thee, then mayest thou do to them as thou shalt find -occasion. - -9:34 And Abimelech rose up, and all the people that were with him, by -night, and they laid wait against Shechem in four companies. - -9:35 And Gaal the son of Ebed went out, and stood in the entering of -the gate of the city: and Abimelech rose up, and the people that were -with him, from lying in wait. - -9:36 And when Gaal saw the people, he said to Zebul, Behold, there -come people down from the top of the mountains. And Zebul said unto -him, Thou seest the shadow of the mountains as if they were men. - -9:37 And Gaal spake again, and said, See there come people down by the -middle of the land, and another company come along by the plain of -Meonenim. - -9:38 Then said Zebul unto him, Where is now thy mouth, wherewith thou -saidst, Who is Abimelech, that we should serve him? is not this the -people that thou hast despised? go out, I pray now, and fight with -them. - -9:39 And Gaal went out before the men of Shechem, and fought with -Abimelech. - -9:40 And Abimelech chased him, and he fled before him, and many were -overthrown and wounded, even unto the entering of the gate. - -9:41 And Abimelech dwelt at Arumah: and Zebul thrust out Gaal and his -brethren, that they should not dwell in Shechem. - -9:42 And it came to pass on the morrow, that the people went out into -the field; and they told Abimelech. - -9:43 And he took the people, and divided them into three companies, -and laid wait in the field, and looked, and, behold, the people were -come forth out of the city; and he rose up against them, and smote -them. - -9:44 And Abimelech, and the company that was with him, rushed forward, -and stood in the entering of the gate of the city: and the two other -companies ran upon all the people that were in the fields, and slew -them. - -9:45 And Abimelech fought against the city all that day; and he took -the city, and slew the people that was therein, and beat down the -city, and sowed it with salt. - -9:46 And when all the men of the tower of Shechem heard that, they -entered into an hold of the house of the god Berith. - -9:47 And it was told Abimelech, that all the men of the tower of -Shechem were gathered together. - -9:48 And Abimelech gat him up to mount Zalmon, he and all the people -that were with him; and Abimelech took an axe in his hand, and cut -down a bough from the trees, and took it, and laid it on his shoulder, -and said unto the people that were with him, What ye have seen me do, -make haste, and do as I have done. - -9:49 And all the people likewise cut down every man his bough, and -followed Abimelech, and put them to the hold, and set the hold on fire -upon them; so that all the men of the tower of Shechem died also, -about a thousand men and women. - -9:50 Then went Abimelech to Thebez, and encamped against Thebez, and -took it. - -9:51 But there was a strong tower within the city, and thither fled -all the men and women, and all they of the city, and shut it to them, -and gat them up to the top of the tower. - -9:52 And Abimelech came unto the tower, and fought against it, and -went hard unto the door of the tower to burn it with fire. - -9:53 And a certain woman cast a piece of a millstone upon Abimelech's -head, and all to brake his skull. - -9:54 Then he called hastily unto the young man his armourbearer, and -said unto him, Draw thy sword, and slay me, that men say not of me, A -women slew him. And his young man thrust him through, and he died. - -9:55 And when the men of Israel saw that Abimelech was dead, they -departed every man unto his place. - -9:56 Thus God rendered the wickedness of Abimelech, which he did unto -his father, in slaying his seventy brethren: 9:57 And all the evil of -the men of Shechem did God render upon their heads: and upon them came -the curse of Jotham the son of Jerubbaal. - -10:1 And after Abimelech there arose to defend Israel Tola the son of -Puah, the son of Dodo, a man of Issachar; and he dwelt in Shamir in -mount Ephraim. - -10:2 And he judged Israel twenty and three years, and died, and was -buried in Shamir. - -10:3 And after him arose Jair, a Gileadite, and judged Israel twenty -and two years. - -10:4 And he had thirty sons that rode on thirty ass colts, and they -had thirty cities, which are called Havothjair unto this day, which -are in the land of Gilead. - -10:5 And Jair died, and was buried in Camon. - -10:6 And the children of Israel did evil again in the sight of the -LORD, and served Baalim, and Ashtaroth, and the gods of Syria, and the -gods of Zidon, and the gods of Moab, and the gods of the children of -Ammon, and the gods of the Philistines, and forsook the LORD, and -served not him. - -10:7 And the anger of the LORD was hot against Israel, and he sold -them into the hands of the Philistines, and into the hands of the -children of Ammon. - -10:8 And that year they vexed and oppressed the children of Israel: -eighteen years, all the children of Israel that were on the other side -Jordan in the land of the Amorites, which is in Gilead. - -10:9 Moreover the children of Ammon passed over Jordan to fight also -against Judah, and against Benjamin, and against the house of Ephraim; -so that Israel was sore distressed. - -10:10 And the children of Israel cried unto the LORD, saying, We have -sinned against thee, both because we have forsaken our God, and also -served Baalim. - -10:11 And the LORD said unto the children of Israel, Did not I deliver -you from the Egyptians, and from the Amorites, from the children of -Ammon, and from the Philistines? 10:12 The Zidonians also, and the -Amalekites, and the Maonites, did oppress you; and ye cried to me, and -I delivered you out of their hand. - -10:13 Yet ye have forsaken me, and served other gods: wherefore I will -deliver you no more. - -10:14 Go and cry unto the gods which ye have chosen; let them deliver -you in the time of your tribulation. - -10:15 And the children of Israel said unto the LORD, We have sinned: -do thou unto us whatsoever seemeth good unto thee; deliver us only, we -pray thee, this day. - -10:16 And they put away the strange gods from among them, and served -the LORD: and his soul was grieved for the misery of Israel. - -10:17 Then the children of Ammon were gathered together, and encamped -in Gilead. And the children of Israel assembled themselves together, -and encamped in Mizpeh. - -10:18 And the people and princes of Gilead said one to another, What -man is he that will begin to fight against the children of Ammon? he -shall be head over all the inhabitants of Gilead. - -11:1 Now Jephthah the Gileadite was a mighty man of valour, and he was -the son of an harlot: and Gilead begat Jephthah. - -11:2 And Gilead's wife bare him sons; and his wife's sons grew up, and -they thrust out Jephthah, and said unto him, Thou shalt not inherit in -our father's house; for thou art the son of a strange woman. - -11:3 Then Jephthah fled from his brethren, and dwelt in the land of -Tob: and there were gathered vain men to Jephthah, and went out with -him. - -11:4 And it came to pass in process of time, that the children of -Ammon made war against Israel. - -11:5 And it was so, that when the children of Ammon made war against -Israel, the elders of Gilead went to fetch Jephthah out of the land of -Tob: 11:6 And they said unto Jephthah, Come, and be our captain, that -we may fight with the children of Ammon. - -11:7 And Jephthah said unto the elders of Gilead, Did not ye hate me, -and expel me out of my father's house? and why are ye come unto me now -when ye are in distress? 11:8 And the elders of Gilead said unto -Jephthah, Therefore we turn again to thee now, that thou mayest go -with us, and fight against the children of Ammon, and be our head over -all the inhabitants of Gilead. - -11:9 And Jephthah said unto the elders of Gilead, If ye bring me home -again to fight against the children of Ammon, and the LORD deliver -them before me, shall I be your head? 11:10 And the elders of Gilead -said unto Jephthah, The LORD be witness between us, if we do not so -according to thy words. - -11:11 Then Jephthah went with the elders of Gilead, and the people -made him head and captain over them: and Jephthah uttered all his -words before the LORD in Mizpeh. - -11:12 And Jephthah sent messengers unto the king of the children of -Ammon, saying, What hast thou to do with me, that thou art come -against me to fight in my land? 11:13 And the king of the children of -Ammon answered unto the messengers of Jephthah, Because Israel took -away my land, when they came up out of Egypt, from Arnon even unto -Jabbok, and unto Jordan: now therefore restore those lands again -peaceably. - -11:14 And Jephthah sent messengers again unto the king of the children -of Ammon: 11:15 And said unto him, Thus saith Jephthah, Israel took -not away the land of Moab, nor the land of the children of Ammon: -11:16 But when Israel came up from Egypt, and walked through the -wilderness unto the Red sea, and came to Kadesh; 11:17 Then Israel -sent messengers unto the king of Edom, saying, Let me, I pray thee, -pass through thy land: but the king of Edom would not hearken thereto. -And in like manner they sent unto the king of Moab: but he would not -consent: and Israel abode in Kadesh. - -11:18 Then they went along through the wilderness, and compassed the -land of Edom, and the land of Moab, and came by the east side of the -land of Moab, and pitched on the other side of Arnon, but came not -within the border of Moab: for Arnon was the border of Moab. - -11:19 And Israel sent messengers unto Sihon king of the Amorites, the -king of Heshbon; and Israel said unto him, Let us pass, we pray thee, -through thy land into my place. - -11:20 But Sihon trusted not Israel to pass through his coast: but -Sihon gathered all his people together, and pitched in Jahaz, and -fought against Israel. - -11:21 And the LORD God of Israel delivered Sihon and all his people -into the hand of Israel, and they smote them: so Israel possessed all -the land of the Amorites, the inhabitants of that country. - -11:22 And they possessed all the coasts of the Amorites, from Arnon -even unto Jabbok, and from the wilderness even unto Jordan. - -11:23 So now the LORD God of Israel hath dispossessed the Amorites -from before his people Israel, and shouldest thou possess it? 11:24 -Wilt not thou possess that which Chemosh thy god giveth thee to -possess? So whomsoever the LORD our God shall drive out from before -us, them will we possess. - -11:25 And now art thou any thing better than Balak the son of Zippor, -king of Moab? did he ever strive against Israel, or did he ever fight -against them, 11:26 While Israel dwelt in Heshbon and her towns, and -in Aroer and her towns, and in all the cities that be along by the -coasts of Arnon, three hundred years? why therefore did ye not recover -them within that time? 11:27 Wherefore I have not sinned against -thee, but thou doest me wrong to war against me: the LORD the Judge be -judge this day between the children of Israel and the children of -Ammon. - -11:28 Howbeit the king of the children of Ammon hearkened not unto the -words of Jephthah which he sent him. - -11:29 Then the Spirit of the LORD came upon Jephthah, and he passed -over Gilead, and Manasseh, and passed over Mizpeh of Gilead, and from -Mizpeh of Gilead he passed over unto the children of Ammon. - -11:30 And Jephthah vowed a vow unto the LORD, and said, If thou shalt -without fail deliver the children of Ammon into mine hands, 11:31 Then -it shall be, that whatsoever cometh forth of the doors of my house to -meet me, when I return in peace from the children of Ammon, shall -surely be the LORD's, and I will offer it up for a burnt offering. - -11:32 So Jephthah passed over unto the children of Ammon to fight -against them; and the LORD delivered them into his hands. - -11:33 And he smote them from Aroer, even till thou come to Minnith, -even twenty cities, and unto the plain of the vineyards, with a very -great slaughter. Thus the children of Ammon were subdued before the -children of Israel. - -11:34 And Jephthah came to Mizpeh unto his house, and, behold, his -daughter came out to meet him with timbrels and with dances: and she -was his only child; beside her he had neither son nor daughter. - -11:35 And it came to pass, when he saw her, that he rent his clothes, -and said, Alas, my daughter! thou hast brought me very low, and thou -art one of them that trouble me: for I have opened my mouth unto the -LORD, and I cannot go back. - -11:36 And she said unto him, My father, if thou hast opened thy mouth -unto the LORD, do to me according to that which hath proceeded out of -thy mouth; forasmuch as the LORD hath taken vengeance for thee of -thine enemies, even of the children of Ammon. - -11:37 And she said unto her father, Let this thing be done for me: let -me alone two months, that I may go up and down upon the mountains, and -bewail my virginity, I and my fellows. - -11:38 And he said, Go. And he sent her away for two months: and she -went with her companions, and bewailed her virginity upon the -mountains. - -11:39 And it came to pass at the end of two months, that she returned -unto her father, who did with her according to his vow which he had -vowed: and she knew no man. And it was a custom in Israel, 11:40 That -the daughters of Israel went yearly to lament the daughter of Jephthah -the Gileadite four days in a year. - -12:1 And the men of Ephraim gathered themselves together, and went -northward, and said unto Jephthah, Wherefore passedst thou over to -fight against the children of Ammon, and didst not call us to go with -thee? we will burn thine house upon thee with fire. - -12:2 And Jephthah said unto them, I and my people were at great strife -with the children of Ammon; and when I called you, ye delivered me not -out of their hands. - -12:3 And when I saw that ye delivered me not, I put my life in my -hands, and passed over against the children of Ammon, and the LORD -delivered them into my hand: wherefore then are ye come up unto me -this day, to fight against me? 12:4 Then Jephthah gathered together -all the men of Gilead, and fought with Ephraim: and the men of Gilead -smote Ephraim, because they said, Ye Gileadites are fugitives of -Ephraim among the Ephraimites, and among the Manassites. - -12:5 And the Gileadites took the passages of Jordan before the -Ephraimites: and it was so, that when those Ephraimites which were -escaped said, Let me go over; that the men of Gilead said unto him, -Art thou an Ephraimite? If he said, Nay; 12:6 Then said they unto him, -Say now Shibboleth: and he said Sibboleth: for he could not frame to -pronounce it right. Then they took him, and slew him at the passages -of Jordan: and there fell at that time of the Ephraimites forty and -two thousand. - -12:7 And Jephthah judged Israel six years. Then died Jephthah the -Gileadite, and was buried in one of the cities of Gilead. - -12:8 And after him Ibzan of Bethlehem judged Israel. - -12:9 And he had thirty sons, and thirty daughters, whom he sent -abroad, and took in thirty daughters from abroad for his sons. And he -judged Israel seven years. - -12:10 Then died Ibzan, and was buried at Bethlehem. - -12:11 And after him Elon, a Zebulonite, judged Israel; and he judged -Israel ten years. - -12:12 And Elon the Zebulonite died, and was buried in Aijalon in the -country of Zebulun. - -12:13 And after him Abdon the son of Hillel, a Pirathonite, judged -Israel. - -12:14 And he had forty sons and thirty nephews, that rode on -threescore and ten ass colts: and he judged Israel eight years. - -12:15 And Abdon the son of Hillel the Pirathonite died, and was buried -in Pirathon in the land of Ephraim, in the mount of the Amalekites. - -13:1 And the children of Israel did evil again in the sight of the -LORD; and the LORD delivered them into the hand of the Philistines -forty years. - -13:2 And there was a certain man of Zorah, of the family of the -Danites, whose name was Manoah; and his wife was barren, and bare not. - -13:3 And the angel of the LORD appeared unto the woman, and said unto -her, Behold now, thou art barren, and bearest not: but thou shalt -conceive, and bear a son. - -13:4 Now therefore beware, I pray thee, and drink not wine nor strong -drink, and eat not any unclean thing: 13:5 For, lo, thou shalt -conceive, and bear a son; and no razor shall come on his head: for the -child shall be a Nazarite unto God from the womb: and he shall begin -to deliver Israel out of the hand of the Philistines. - -13:6 Then the woman came and told her husband, saying, A man of God -came unto me, and his countenance was like the countenance of an angel -of God, very terrible: but I asked him not whence he was, neither told -he me his name: 13:7 But he said unto me, Behold, thou shalt conceive, -and bear a son; and now drink no wine nor strong drink, neither eat -any unclean thing: for the child shall be a Nazarite to God from the -womb to the day of his death. - -13:8 Then Manoah intreated the LORD, and said, O my Lord, let the man -of God which thou didst send come again unto us, and teach us what we -shall do unto the child that shall be born. - -13:9 And God hearkened to the voice of Manoah; and the angel of God -came again unto the woman as she sat in the field: but Manoah her -husband was not with her. - -13:10 And the woman made haste, and ran, and shewed her husband, and -said unto him, Behold, the man hath appeared unto me, that came unto -me the other day. - -13:11 And Manoah arose, and went after his wife, and came to the man, -and said unto him, Art thou the man that spakest unto the woman? And -he said, I am. - -13:12 And Manoah said, Now let thy words come to pass. How shall we -order the child, and how shall we do unto him? 13:13 And the angel of -the LORD said unto Manoah, Of all that I said unto the woman let her -beware. - -13:14 She may not eat of any thing that cometh of the vine, neither -let her drink wine or strong drink, nor eat any unclean thing: all -that I commanded her let her observe. - -13:15 And Manoah said unto the angel of the LORD, I pray thee, let us -detain thee, until we shall have made ready a kid for thee. - -13:16 And the angel of the LORD said unto Manoah, Though thou detain -me, I will not eat of thy bread: and if thou wilt offer a burnt -offering, thou must offer it unto the LORD. For Manoah knew not that -he was an angel of the LORD. - -13:17 And Manoah said unto the angel of the LORD, What is thy name, -that when thy sayings come to pass we may do thee honour? 13:18 And -the angel of the LORD said unto him, Why askest thou thus after my -name, seeing it is secret? 13:19 So Manoah took a kid with a meat -offering, and offered it upon a rock unto the LORD: and the angel did -wonderously; and Manoah and his wife looked on. - -13:20 For it came to pass, when the flame went up toward heaven from -off the altar, that the angel of the LORD ascended in the flame of the -altar. And Manoah and his wife looked on it, and fell on their faces -to the ground. - -13:21 But the angel of the LORD did no more appear to Manoah and to -his wife. Then Manoah knew that he was an angel of the LORD. - -13:22 And Manoah said unto his wife, We shall surely die, because we -have seen God. - -13:23 But his wife said unto him, If the LORD were pleased to kill us, -he would not have received a burnt offering and a meat offering at our -hands, neither would he have shewed us all these things, nor would as -at this time have told us such things as these. - -13:24 And the woman bare a son, and called his name Samson: and the -child grew, and the LORD blessed him. - -13:25 And the Spirit of the LORD began to move him at times in the -camp of Dan between Zorah and Eshtaol. - -14:1 And Samson went down to Timnath, and saw a woman in Timnath of -the daughters of the Philistines. - -14:2 And he came up, and told his father and his mother, and said, I -have seen a woman in Timnath of the daughters of the Philistines: now -therefore get her for me to wife. - -14:3 Then his father and his mother said unto him, Is there never a -woman among the daughters of thy brethren, or among all my people, -that thou goest to take a wife of the uncircumcised Philistines? And -Samson said unto his father, Get her for me; for she pleaseth me well. - -14:4 But his father and his mother knew not that it was of the LORD, -that he sought an occasion against the Philistines: for at that time -the Philistines had dominion over Israel. - -14:5 Then went Samson down, and his father and his mother, to Timnath, -and came to the vineyards of Timnath: and, behold, a young lion roared -against him. - -14:6 And the Spirit of the LORD came mightily upon him, and he rent -him as he would have rent a kid, and he had nothing in his hand: but -he told not his father or his mother what he had done. - -14:7 And he went down, and talked with the woman; and she pleased -Samson well. - -14:8 And after a time he returned to take her, and he turned aside to -see the carcase of the lion: and, behold, there was a swarm of bees -and honey in the carcase of the lion. - -14:9 And he took thereof in his hands, and went on eating, and came to -his father and mother, and he gave them, and they did eat: but he told -not them that he had taken the honey out of the carcase of the lion. - -14:10 So his father went down unto the woman: and Samson made there a -feast; for so used the young men to do. - -14:11 And it came to pass, when they saw him, that they brought thirty -companions to be with him. - -14:12 And Samson said unto them, I will now put forth a riddle unto -you: if ye can certainly declare it me within the seven days of the -feast, and find it out, then I will give you thirty sheets and thirty -change of garments: 14:13 But if ye cannot declare it me, then shall -ye give me thirty sheets and thirty change of garments. And they said -unto him, Put forth thy riddle, that we may hear it. - -14:14 And he said unto them, Out of the eater came forth meat, and out -of the strong came forth sweetness. And they could not in three days -expound the riddle. - -14:15 And it came to pass on the seventh day, that they said unto -Samson's wife, Entice thy husband, that he may declare unto us the -riddle, lest we burn thee and thy father's house with fire: have ye -called us to take that we have? is it not so? 14:16 And Samson's wife -wept before him, and said, Thou dost but hate me, and lovest me not: -thou hast put forth a riddle unto the children of my people, and hast -not told it me. And he said unto her, Behold, I have not told it my -father nor my mother, and shall I tell it thee? 14:17 And she wept -before him the seven days, while their feast lasted: and it came to -pass on the seventh day, that he told her, because she lay sore upon -him: and she told the riddle to the children of her people. - -14:18 And the men of the city said unto him on the seventh day before -the sun went down, What is sweeter than honey? And what is stronger -than a lion? and he said unto them, If ye had not plowed with my -heifer, ye had not found out my riddle. - -14:19 And the Spirit of the LORD came upon him, and he went down to -Ashkelon, and slew thirty men of them, and took their spoil, and gave -change of garments unto them which expounded the riddle. And his anger -was kindled, and he went up to his father's house. - -14:20 But Samson's wife was given to his companion, whom he had used -as his friend. - -15:1 But it came to pass within a while after, in the time of wheat -harvest, that Samson visited his wife with a kid; and he said, I will -go in to my wife into the chamber. But her father would not suffer him -to go in. - -15:2 And her father said, I verily thought that thou hadst utterly -hated her; therefore I gave her to thy companion: is not her younger -sister fairer than she? take her, I pray thee, instead of her. - -15:3 And Samson said concerning them, Now shall I be more blameless -than the Philistines, though I do them a displeasure. - -15:4 And Samson went and caught three hundred foxes, and took -firebrands, and turned tail to tail, and put a firebrand in the midst -between two tails. - -15:5 And when he had set the brands on fire, he let them go into the -standing corn of the Philistines, and burnt up both the shocks, and -also the standing corn, with the vineyards and olives. - -15:6 Then the Philistines said, Who hath done this? And they answered, -Samson, the son in law of the Timnite, because he had taken his wife, -and given her to his companion. And the Philistines came up, and burnt -her and her father with fire. - -15:7 And Samson said unto them, Though ye have done this, yet will I -be avenged of you, and after that I will cease. - -15:8 And he smote them hip and thigh with a great slaughter: and he -went down and dwelt in the top of the rock Etam. - -15:9 Then the Philistines went up, and pitched in Judah, and spread -themselves in Lehi. - -15:10 And the men of Judah said, Why are ye come up against us? And -they answered, To bind Samson are we come up, to do to him as he hath -done to us. - -15:11 Then three thousand men of Judah went to the top of the rock -Etam, and said to Samson, Knowest thou not that the Philistines are -rulers over us? what is this that thou hast done unto us? And he said -unto them, As they did unto me, so have I done unto them. - -15:12 And they said unto him, We are come down to bind thee, that we -may deliver thee into the hand of the Philistines. And Samson said -unto them, Swear unto me, that ye will not fall upon me yourselves. - -15:13 And they spake unto him, saying, No; but we will bind thee fast, -and deliver thee into their hand: but surely we will not kill thee. -And they bound him with two new cords, and brought him up from the -rock. - -15:14 And when he came unto Lehi, the Philistines shouted against him: -and the Spirit of the LORD came mightily upon him, and the cords that -were upon his arms became as flax that was burnt with fire, and his -bands loosed from off his hands. - -15:15 And he found a new jawbone of an ass, and put forth his hand, -and took it, and slew a thousand men therewith. - -15:16 And Samson said, With the jawbone of an ass, heaps upon heaps, -with the jaw of an ass have I slain a thousand men. - -15:17 And it came to pass, when he had made an end of speaking, that -he cast away the jawbone out of his hand, and called that place -Ramathlehi. - -15:18 And he was sore athirst, and called on the LORD, and said, Thou -hast given this great deliverance into the hand of thy servant: and -now shall I die for thirst, and fall into the hand of the -uncircumcised? 15:19 But God clave an hollow place that was in the -jaw, and there came water thereout; and when he had drunk, his spirit -came again, and he revived: wherefore he called the name thereof -Enhakkore, which is in Lehi unto this day. - -15:20 And he judged Israel in the days of the Philistines twenty -years. - -16:1 Then went Samson to Gaza, and saw there an harlot, and went in -unto her. - -16:2 And it was told the Gazites, saying, Samson is come hither. And -they compassed him in, and laid wait for him all night in the gate of -the city, and were quiet all the night, saying, In the morning, when -it is day, we shall kill him. - -16:3 And Samson lay till midnight, and arose at midnight, and took the -doors of the gate of the city, and the two posts, and went away with -them, bar and all, and put them upon his shoulders, and carried them -up to the top of an hill that is before Hebron. - -16:4 And it came to pass afterward, that he loved a woman in the -valley of Sorek, whose name was Delilah. - -16:5 And the lords of the Philistines came up unto her, and said unto -her, Entice him, and see wherein his great strength lieth, and by what -means we may prevail against him, that we may bind him to afflict him; -and we will give thee every one of us eleven hundred pieces of silver. - -16:6 And Delilah said to Samson, Tell me, I pray thee, wherein thy -great strength lieth, and wherewith thou mightest be bound to afflict -thee. - -16:7 And Samson said unto her, If they bind me with seven green withs -that were never dried, then shall I be weak, and be as another man. - -16:8 Then the lords of the Philistines brought up to her seven green -withs which had not been dried, and she bound him with them. - -16:9 Now there were men lying in wait, abiding with her in the -chamber. - -And she said unto him, The Philistines be upon thee, Samson. And he -brake the withs, as a thread of tow is broken when it toucheth the -fire. So his strength was not known. - -16:10 And Delilah said unto Samson, Behold, thou hast mocked me, and -told me lies: now tell me, I pray thee, wherewith thou mightest be -bound. - -16:11 And he said unto her, If they bind me fast with new ropes that -never were occupied, then shall I be weak, and be as another man. - -16:12 Delilah therefore took new ropes, and bound him therewith, and -said unto him, The Philistines be upon thee, Samson. And there were -liers in wait abiding in the chamber. And he brake them from off his -arms like a thread. - -16:13 And Delilah said unto Samson, Hitherto thou hast mocked me, and -told me lies: tell me wherewith thou mightest be bound. And he said -unto her, If thou weavest the seven locks of my head with the web. - -16:14 And she fastened it with the pin, and said unto him, The -Philistines be upon thee, Samson. And he awaked out of his sleep, and -went away with the pin of the beam, and with the web. - -16:15 And she said unto him, How canst thou say, I love thee, when -thine heart is not with me? thou hast mocked me these three times, and -hast not told me wherein thy great strength lieth. - -16:16 And it came to pass, when she pressed him daily with her words, -and urged him, so that his soul was vexed unto death; 16:17 That he -told her all his heart, and said unto her, There hath not come a razor -upon mine head; for I have been a Nazarite unto God from my mother's -womb: if I be shaven, then my strength will go from me, and I shall -become weak, and be like any other man. - -16:18 And when Delilah saw that he had told her all his heart, she -sent and called for the lords of the Philistines, saying, Come up this -once, for he hath shewed me all his heart. Then the lords of the -Philistines came up unto her, and brought money in their hand. - -16:19 And she made him sleep upon her knees; and she called for a man, -and she caused him to shave off the seven locks of his head; and she -began to afflict him, and his strength went from him. - -16:20 And she said, The Philistines be upon thee, Samson. And he awoke -out of his sleep, and said, I will go out as at other times before, -and shake myself. And he wist not that the LORD was departed from him. - -16:21 But the Philistines took him, and put out his eyes, and brought -him down to Gaza, and bound him with fetters of brass; and he did -grind in the prison house. - -16:22 Howbeit the hair of his head began to grow again after he was -shaven. - -16:23 Then the lords of the Philistines gathered them together for to -offer a great sacrifice unto Dagon their god, and to rejoice: for they -said, Our god hath delivered Samson our enemy into our hand. - -16:24 And when the people saw him, they praised their god: for they -said, Our god hath delivered into our hands our enemy, and the -destroyer of our country, which slew many of us. - -16:25 And it came to pass, when their hearts were merry, that they -said, Call for Samson, that he may make us sport. And they called for -Samson out of the prison house; and he made them sport: and they set -him between the pillars. - -16:26 And Samson said unto the lad that held him by the hand, Suffer -me that I may feel the pillars whereupon the house standeth, that I -may lean upon them. - -16:27 Now the house was full of men and women; and all the lords of -the Philistines were there; and there were upon the roof about three -thousand men and women, that beheld while Samson made sport. - -16:28 And Samson called unto the LORD, and said, O Lord God, remember -me, I pray thee, and strengthen me, I pray thee, only this once, O -God, that I may be at once avenged of the Philistines for my two eyes. - -16:29 And Samson took hold of the two middle pillars upon which the -house stood, and on which it was borne up, of the one with his right -hand, and of the other with his left. - -16:30 And Samson said, Let me die with the Philistines. And he bowed -himself with all his might; and the house fell upon the lords, and -upon all the people that were therein. So the dead which he slew at -his death were more than they which he slew in his life. - -16:31 Then his brethren and all the house of his father came down, and -took him, and brought him up, and buried him between Zorah and Eshtaol -in the buryingplace of Manoah his father. And he judged Israel twenty -years. - -17:1 And there was a man of mount Ephraim, whose name was Micah. - -17:2 And he said unto his mother, The eleven hundred shekels of silver -that were taken from thee, about which thou cursedst, and spakest of -also in mine ears, behold, the silver is with me; I took it. And his -mother said, Blessed be thou of the LORD, my son. - -17:3 And when he had restored the eleven hundred shekels of silver to -his mother, his mother said, I had wholly dedicated the silver unto -the LORD from my hand for my son, to make a graven image and a molten -image: now therefore I will restore it unto thee. - -17:4 Yet he restored the money unto his mother; and his mother took -two hundred shekels of silver, and gave them to the founder, who made -thereof a graven image and a molten image: and they were in the house -of Micah. - -17:5 And the man Micah had an house of gods, and made an ephod, and -teraphim, and consecrated one of his sons, who became his priest. - -17:6 In those days there was no king in Israel, but every man did that -which was right in his own eyes. - -17:7 And there was a young man out of Bethlehemjudah of the family of -Judah, who was a Levite, and he sojourned there. - -17:8 And the man departed out of the city from Bethlehemjudah to -sojourn where he could find a place: and he came to mount Ephraim to -the house of Micah, as he journeyed. - -17:9 And Micah said unto him, Whence comest thou? And he said unto -him, I am a Levite of Bethlehemjudah, and I go to sojourn where I may -find a place. - -17:10 And Micah said unto him, Dwell with me, and be unto me a father -and a priest, and I will give thee ten shekels of silver by the year, -and a suit of apparel, and thy victuals. So the Levite went in. - -17:11 And the Levite was content to dwell with the man; and the young -man was unto him as one of his sons. - -17:12 And Micah consecrated the Levite; and the young man became his -priest, and was in the house of Micah. - -17:13 Then said Micah, Now know I that the LORD will do me good, -seeing I have a Levite to my priest. - -18:1 In those days there was no king in Israel: and in those days the -tribe of the Danites sought them an inheritance to dwell in; for unto -that day all their inheritance had not fallen unto them among the -tribes of Israel. - -18:2 And the children of Dan sent of their family five men from their -coasts, men of valour, from Zorah, and from Eshtaol, to spy out the -land, and to search it; and they said unto them, Go, search the land: -who when they came to mount Ephraim, to the house of Micah, they -lodged there. - -18:3 When they were by the house of Micah, they knew the voice of the -young man the Levite: and they turned in thither, and said unto him, -Who brought thee hither? and what makest thou in this place? and what -hast thou here? 18:4 And he said unto them, Thus and thus dealeth -Micah with me, and hath hired me, and I am his priest. - -18:5 And they said unto him, Ask counsel, we pray thee, of God, that -we may know whether our way which we go shall be prosperous. - -18:6 And the priest said unto them, Go in peace: before the LORD is -your way wherein ye go. - -18:7 Then the five men departed, and came to Laish, and saw the people -that were therein, how they dwelt careless, after the manner of the -Zidonians, quiet and secure; and there was no magistrate in the land, -that might put them to shame in any thing; and they were far from the -Zidonians, and had no business with any man. - -18:8 And they came unto their brethren to Zorah and Eshtaol: and their -brethren said unto them, What say ye? 18:9 And they said, Arise, that -we may go up against them: for we have seen the land, and, behold, it -is very good: and are ye still? be not slothful to go, and to enter to -possess the land. - -18:10 When ye go, ye shall come unto a people secure, and to a large -land: for God hath given it into your hands; a place where there is no -want of any thing that is in the earth. - -18:11 And there went from thence of the family of the Danites, out of -Zorah and out of Eshtaol, six hundred men appointed with weapons of -war. - -18:12 And they went up, and pitched in Kirjathjearim, in Judah: -wherefore they called that place Mahanehdan unto this day: behold, it -is behind Kirjathjearim. - -18:13 And they passed thence unto mount Ephraim, and came unto the -house of Micah. - -18:14 Then answered the five men that went to spy out the country of -Laish, and said unto their brethren, Do ye know that there is in these -houses an ephod, and teraphim, and a graven image, and a molten image? -now therefore consider what ye have to do. - -18:15 And they turned thitherward, and came to the house of the young -man the Levite, even unto the house of Micah, and saluted him. - -18:16 And the six hundred men appointed with their weapons of war, -which were of the children of Dan, stood by the entering of the gate. - -18:17 And the five men that went to spy out the land went up, and came -in thither, and took the graven image, and the ephod, and the -teraphim, and the molten image: and the priest stood in the entering -of the gate with the six hundred men that were appointed with weapons -of war. - -18:18 And these went into Micah's house, and fetched the carved image, -the ephod, and the teraphim, and the molten image. Then said the -priest unto them, What do ye? 18:19 And they said unto him, Hold thy -peace, lay thine hand upon thy mouth, and go with us, and be to us a -father and a priest: is it better for thee to be a priest unto the -house of one man, or that thou be a priest unto a tribe and a family -in Israel? 18:20 And the priest's heart was glad, and he took the -ephod, and the teraphim, and the graven image, and went in the midst -of the people. - -18:21 So they turned and departed, and put the little ones and the -cattle and the carriage before them. - -18:22 And when they were a good way from the house of Micah, the men -that were in the houses near to Micah's house were gathered together, -and overtook the children of Dan. - -18:23 And they cried unto the children of Dan. And they turned their -faces, and said unto Micah, What aileth thee, that thou comest with -such a company? 18:24 And he said, Ye have taken away my gods which I -made, and the priest, and ye are gone away: and what have I more? and -what is this that ye say unto me, What aileth thee? 18:25 And the -children of Dan said unto him, Let not thy voice be heard among us, -lest angry fellows run upon thee, and thou lose thy life, with the -lives of thy household. - -18:26 And the children of Dan went their way: and when Micah saw that -they were too strong for him, he turned and went back unto his house. - -18:27 And they took the things which Micah had made, and the priest -which he had, and came unto Laish, unto a people that were at quiet -and secure: and they smote them with the edge of the sword, and burnt -the city with fire. - -18:28 And there was no deliverer, because it was far from Zidon, and -they had no business with any man; and it was in the valley that lieth -by Bethrehob. And they built a city, and dwelt therein. - -18:29 And they called the name of the city Dan, after the name of Dan -their father, who was born unto Israel: howbeit the name of the city -was Laish at the first. - -18:30 And the children of Dan set up the graven image: and Jonathan, -the son of Gershom, the son of Manasseh, he and his sons were priests -to the tribe of Dan until the day of the captivity of the land. - -18:31 And they set them up Micah's graven image, which he made, all -the time that the house of God was in Shiloh. - -19:1 And it came to pass in those days, when there was no king in -Israel, that there was a certain Levite sojourning on the side of -mount Ephraim, who took to him a concubine out of Bethlehemjudah. - -19:2 And his concubine played the whore against him, and went away -from him unto her father's house to Bethlehemjudah, and was there four -whole months. - -19:3 And her husband arose, and went after her, to speak friendly unto -her, and to bring her again, having his servant with him, and a couple -of asses: and she brought him into her father's house: and when the -father of the damsel saw him, he rejoiced to meet him. - -19:4 And his father in law, the damsel's father, retained him; and he -abode with him three days: so they did eat and drink, and lodged -there. - -19:5 And it came to pass on the fourth day, when they arose early in -the morning, that he rose up to depart: and the damsel's father said -unto his son in law, Comfort thine heart with a morsel of bread, and -afterward go your way. - -19:6 And they sat down, and did eat and drink both of them together: -for the damsel's father had said unto the man, Be content, I pray -thee, and tarry all night, and let thine heart be merry. - -19:7 And when the man rose up to depart, his father in law urged him: -therefore he lodged there again. - -19:8 And he arose early in the morning on the fifth day to depart; and -the damsel's father said, Comfort thine heart, I pray thee. And they -tarried until afternoon, and they did eat both of them. - -19:9 And when the man rose up to depart, he, and his concubine, and -his servant, his father in law, the damsel's father, said unto him, -Behold, now the day draweth toward evening, I pray you tarry all -night: behold, the day groweth to an end, lodge here, that thine heart -may be merry; and to morrow get you early on your way, that thou -mayest go home. - -19:10 But the man would not tarry that night, but he rose up and -departed, and came over against Jebus, which is Jerusalem; and there -were with him two asses saddled, his concubine also was with him. - -19:11 And when they were by Jebus, the day was far spent; and the -servant said unto his master, Come, I pray thee, and let us turn in -into this city of the Jebusites, and lodge in it. - -19:12 And his master said unto him, We will not turn aside hither into -the city of a stranger, that is not of the children of Israel; we will -pass over to Gibeah. - -19:13 And he said unto his servant, Come, and let us draw near to one -of these places to lodge all night, in Gibeah, or in Ramah. - -19:14 And they passed on and went their way; and the sun went down -upon them when they were by Gibeah, which belongeth to Benjamin. - -19:15 And they turned aside thither, to go in and to lodge in Gibeah: -and when he went in, he sat him down in a street of the city: for -there was no man that took them into his house to lodging. - -19:16 And, behold, there came an old man from his work out of the -field at even, which was also of mount Ephraim; and he sojourned in -Gibeah: but the men of the place were Benjamites. - -19:17 And when he had lifted up his eyes, he saw a wayfaring man in -the street of the city: and the old man said, Whither goest thou? and -whence comest thou? 19:18 And he said unto him, We are passing from -Bethlehemjudah toward the side of mount Ephraim; from thence am I: and -I went to Bethlehemjudah, but I am now going to the house of the LORD; -and there is no man that receiveth me to house. - -19:19 Yet there is both straw and provender for our asses; and there -is bread and wine also for me, and for thy handmaid, and for the young -man which is with thy servants: there is no want of any thing. - -19:20 And the old man said, Peace be with thee; howsoever let all thy -wants lie upon me; only lodge not in the street. - -19:21 So he brought him into his house, and gave provender unto the -asses: and they washed their feet, and did eat and drink. - -19:22 Now as they were making their hearts merry, behold, the men of -the city, certain sons of Belial, beset the house round about, and -beat at the door, and spake to the master of the house, the old man, -saying, Bring forth the man that came into thine house, that we may -know him. - -19:23 And the man, the master of the house, went out unto them, and -said unto them, Nay, my brethren, nay, I pray you, do not so wickedly; -seeing that this man is come into mine house, do not this folly. - -19:24 Behold, here is my daughter a maiden, and his concubine; them I -will bring out now, and humble ye them, and do with them what seemeth -good unto you: but unto this man do not so vile a thing. - -19:25 But the men would not hearken to him: so the man took his -concubine, and brought her forth unto them; and they knew her, and -abused her all the night until the morning: and when the day began to -spring, they let her go. - -19:26 Then came the woman in the dawning of the day, and fell down at -the door of the man's house where her lord was, till it was light. - -19:27 And her lord rose up in the morning, and opened the doors of the -house, and went out to go his way: and, behold, the woman his -concubine was fallen down at the door of the house, and her hands were -upon the threshold. - -19:28 And he said unto her, Up, and let us be going. But none -answered. - -Then the man took her up upon an ass, and the man rose up, and gat him -unto his place. - -19:29 And when he was come into his house, he took a knife, and laid -hold on his concubine, and divided her, together with her bones, into -twelve pieces, and sent her into all the coasts of Israel. - -19:30 And it was so, that all that saw it said, There was no such deed -done nor seen from the day that the children of Israel came up out of -the land of Egypt unto this day: consider of it, take advice, and -speak your minds. - -20:1 Then all the children of Israel went out, and the congregation -was gathered together as one man, from Dan even to Beersheba, with the -land of Gilead, unto the LORD in Mizpeh. - -20:2 And the chief of all the people, even of all the tribes of -Israel, presented themselves in the assembly of the people of God, -four hundred thousand footmen that drew sword. - -20:3 (Now the children of Benjamin heard that the children of Israel -were gone up to Mizpeh.) Then said the children of Israel, Tell us, -how was this wickedness? 20:4 And the Levite, the husband of the -woman that was slain, answered and said, I came into Gibeah that -belongeth to Benjamin, I and my concubine, to lodge. - -20:5 And the men of Gibeah rose against me, and beset the house round -about upon me by night, and thought to have slain me: and my concubine -have they forced, that she is dead. - -20:6 And I took my concubine, and cut her in pieces, and sent her -throughout all the country of the inheritance of Israel: for they have -committed lewdness and folly in Israel. - -20:7 Behold, ye are all children of Israel; give here your advice and -counsel. - -20:8 And all the people arose as one man, saying, We will not any of -us go to his tent, neither will we any of us turn into his house. - -20:9 But now this shall be the thing which we will do to Gibeah; we -will go up by lot against it; 20:10 And we will take ten men of an -hundred throughout all the tribes of Israel, and an hundred of a -thousand, and a thousand out of ten thousand, to fetch victual for the -people, that they may do, when they come to Gibeah of Benjamin, -according to all the folly that they have wrought in Israel. - -20:11 So all the men of Israel were gathered against the city, knit -together as one man. - -20:12 And the tribes of Israel sent men through all the tribe of -Benjamin, saying, What wickedness is this that is done among you? -20:13 Now therefore deliver us the men, the children of Belial, which -are in Gibeah, that we may put them to death, and put away evil from -Israel. But the children of Benjamin would not hearken to the voice of -their brethren the children of Israel. - -20:14 But the children of Benjamin gathered themselves together out of -the cities unto Gibeah, to go out to battle against the children of -Israel. - -20:15 And the children of Benjamin were numbered at that time out of -the cities twenty and six thousand men that drew sword, beside the -inhabitants of Gibeah, which were numbered seven hundred chosen men. - -20:16 Among all this people there were seven hundred chosen men -lefthanded; every one could sling stones at an hair breadth, and not -miss. - -20:17 And the men of Israel, beside Benjamin, were numbered four -hundred thousand men that drew sword: all these were men of war. - -20:18 And the children of Israel arose, and went up to the house of -God, and asked counsel of God, and said, Which of us shall go up first -to the battle against the children of Benjamin? And the LORD said, -Judah shall go up first. - -20:19 And the children of Israel rose up in the morning, and encamped -against Gibeah. - -20:20 And the men of Israel went out to battle against Benjamin; and -the men of Israel put themselves in array to fight against them at -Gibeah. - -20:21 And the children of Benjamin came forth out of Gibeah, and -destroyed down to the ground of the Israelites that day twenty and two -thousand men. - -20:22 And the people the men of Israel encouraged themselves, and set -their battle again in array in the place where they put themselves in -array the first day. - -20:23 (And the children of Israel went up and wept before the LORD -until even, and asked counsel of the LORD, saying, Shall I go up again -to battle against the children of Benjamin my brother? And the LORD -said, Go up against him.) 20:24 And the children of Israel came near -against the children of Benjamin the second day. - -20:25 And Benjamin went forth against them out of Gibeah the second -day, and destroyed down to the ground of the children of Israel again -eighteen thousand men; all these drew the sword. - -20:26 Then all the children of Israel, and all the people, went up, -and came unto the house of God, and wept, and sat there before the -LORD, and fasted that day until even, and offered burnt offerings and -peace offerings before the LORD. - -20:27 And the children of Israel enquired of the LORD, (for the ark of -the covenant of God was there in those days, 20:28 And Phinehas, the -son of Eleazar, the son of Aaron, stood before it in those days,) -saying, Shall I yet again go out to battle against the children of -Benjamin my brother, or shall I cease? And the LORD said, Go up; for -to morrow I will deliver them into thine hand. - -20:29 And Israel set liers in wait round about Gibeah. - -20:30 And the children of Israel went up against the children of -Benjamin on the third day, and put themselves in array against Gibeah, -as at other times. - -20:31 And the children of Benjamin went out against the people, and -were drawn away from the city; and they began to smite of the people, -and kill, as at other times, in the highways, of which one goeth up to -the house of God, and the other to Gibeah in the field, about thirty -men of Israel. - -20:32 And the children of Benjamin said, They are smitten down before -us, as at the first. But the children of Israel said, Let us flee, and -draw them from the city unto the highways. - -20:33 And all the men of Israel rose up out of their place, and put -themselves in array at Baaltamar: and the liers in wait of Israel came -forth out of their places, even out of the meadows of Gibeah. - -20:34 And there came against Gibeah ten thousand chosen men out of all -Israel, and the battle was sore: but they knew not that evil was near -them. - -20:35 And the LORD smote Benjamin before Israel: and the children of -Israel destroyed of the Benjamites that day twenty and five thousand -and an hundred men: all these drew the sword. - -20:36 So the children of Benjamin saw that they were smitten: for the -men of Israel gave place to the Benjamites, because they trusted unto -the liers in wait which they had set beside Gibeah. - -20:37 And the liers in wait hasted, and rushed upon Gibeah; and the -liers in wait drew themselves along, and smote all the city with the -edge of the sword. - -20:38 Now there was an appointed sign between the men of Israel and -the liers in wait, that they should make a great flame with smoke rise -up out of the city. - -20:39 And when the men of Israel retired in the battle, Benjamin began -to smite and kill of the men of Israel about thirty persons: for they -said, Surely they are smitten down before us, as in the first battle. - -20:40 But when the flame began to arise up out of the city with a -pillar of smoke, the Benjamites looked behind them, and, behold, the -flame of the city ascended up to heaven. - -20:41 And when the men of Israel turned again, the men of Benjamin -were amazed: for they saw that evil was come upon them. - -20:42 Therefore they turned their backs before the men of Israel unto -the way of the wilderness; but the battle overtook them; and them -which came out of the cities they destroyed in the midst of them. - -20:43 Thus they inclosed the Benjamites round about, and chased them, -and trode them down with ease over against Gibeah toward the -sunrising. - -20:44 And there fell of Benjamin eighteen thousand men; all these were -men of valour. - -20:45 And they turned and fled toward the wilderness unto the rock of -Rimmon: and they gleaned of them in the highways five thousand men; -and pursued hard after them unto Gidom, and slew two thousand men of -them. - -20:46 So that all which fell that day of Benjamin were twenty and five -thousand men that drew the sword; all these were men of valour. - -20:47 But six hundred men turned and fled to the wilderness unto the -rock Rimmon, and abode in the rock Rimmon four months. - -20:48 And the men of Israel turned again upon the children of -Benjamin, and smote them with the edge of the sword, as well the men -of every city, as the beast, and all that came to hand: also they set -on fire all the cities that they came to. - -21:1 Now the men of Israel had sworn in Mizpeh, saying, There shall -not any of us give his daughter unto Benjamin to wife. - -21:2 And the people came to the house of God, and abode there till -even before God, and lifted up their voices, and wept sore; 21:3 And -said, O LORD God of Israel, why is this come to pass in Israel, that -there should be to day one tribe lacking in Israel? 21:4 And it came -to pass on the morrow, that the people rose early, and built there an -altar, and offered burnt offerings and peace offerings. - -21:5 And the children of Israel said, Who is there among all the -tribes of Israel that came not up with the congregation unto the LORD? -For they had made a great oath concerning him that came not up to the -LORD to Mizpeh, saying, He shall surely be put to death. - -21:6 And the children of Israel repented them for Benjamin their -brother, and said, There is one tribe cut off from Israel this day. - -21:7 How shall we do for wives for them that remain, seeing we have -sworn by the LORD that we will not give them of our daughters to -wives? 21:8 And they said, What one is there of the tribes of Israel -that came not up to Mizpeh to the LORD? And, behold, there came none -to the camp from Jabeshgilead to the assembly. - -21:9 For the people were numbered, and, behold, there were none of the -inhabitants of Jabeshgilead there. - -21:10 And the congregation sent thither twelve thousand men of the -valiantest, and commanded them, saying, Go and smite the inhabitants -of Jabeshgilead with the edge of the sword, with the women and the -children. - -21:11 And this is the thing that ye shall do, Ye shall utterly destroy -every male, and every woman that hath lain by man. - -21:12 And they found among the inhabitants of Jabeshgilead four -hundred young virgins, that had known no man by lying with any male: -and they brought them unto the camp to Shiloh, which is in the land of -Canaan. - -21:13 And the whole congregation sent some to speak to the children of -Benjamin that were in the rock Rimmon, and to call peaceably unto -them. - -21:14 And Benjamin came again at that time; and they gave them wives -which they had saved alive of the women of Jabeshgilead: and yet so -they sufficed them not. - -21:15 And the people repented them for Benjamin, because that the LORD -had made a breach in the tribes of Israel. - -21:16 Then the elders of the congregation said, How shall we do for -wives for them that remain, seeing the women are destroyed out of -Benjamin? 21:17 And they said, There must be an inheritance for them -that be escaped of Benjamin, that a tribe be not destroyed out of -Israel. - -21:18 Howbeit we may not give them wives of our daughters: for the -children of Israel have sworn, saying, Cursed be he that giveth a wife -to Benjamin. - -21:19 Then they said, Behold, there is a feast of the LORD in Shiloh -yearly in a place which is on the north side of Bethel, on the east -side of the highway that goeth up from Bethel to Shechem, and on the -south of Lebonah. - -21:20 Therefore they commanded the children of Benjamin, saying, Go -and lie in wait in the vineyards; 21:21 And see, and, behold, if the -daughters of Shiloh come out to dance in dances, then come ye out of -the vineyards, and catch you every man his wife of the daughters of -Shiloh, and go to the land of Benjamin. - -21:22 And it shall be, when their fathers or their brethren come unto -us to complain, that we will say unto them, Be favourable unto them -for our sakes: because we reserved not to each man his wife in the -war: for ye did not give unto them at this time, that ye should be -guilty. - -21:23 And the children of Benjamin did so, and took them wives, -according to their number, of them that danced, whom they caught: and -they went and returned unto their inheritance, and repaired the -cities, and dwelt in them. - -21:24 And the children of Israel departed thence at that time, every -man to his tribe and to his family, and they went out from thence -every man to his inheritance. - -21:25 In those days there was no king in Israel: every man did that -which was right in his own eyes. - - - - -The Book of Ruth - - -1:1 Now it came to pass in the days when the judges ruled, that there -was a famine in the land. And a certain man of Bethlehemjudah went to -sojourn in the country of Moab, he, and his wife, and his two sons. - -1:2 And the name of the man was Elimelech, and the name of his wife -Naomi, and the name of his two sons Mahlon and Chilion, Ephrathites of -Bethlehemjudah. And they came into the country of Moab, and continued -there. - -1:3 And Elimelech Naomi's husband died; and she was left, and her two -sons. - -1:4 And they took them wives of the women of Moab; the name of the one -was Orpah, and the name of the other Ruth: and they dwelled there -about ten years. - -1:5 And Mahlon and Chilion died also both of them; and the woman was -left of her two sons and her husband. - -1:6 Then she arose with her daughters in law, that she might return -from the country of Moab: for she had heard in the country of Moab how -that the LORD had visited his people in giving them bread. - -1:7 Wherefore she went forth out of the place where she was, and her -two daughters in law with her; and they went on the way to return unto -the land of Judah. - -1:8 And Naomi said unto her two daughters in law, Go, return each to -her mother's house: the LORD deal kindly with you, as ye have dealt -with the dead, and with me. - -1:9 The LORD grant you that ye may find rest, each of you in the house -of her husband. Then she kissed them; and they lifted up their voice, -and wept. - -1:10 And they said unto her, Surely we will return with thee unto thy -people. - -1:11 And Naomi said, Turn again, my daughters: why will ye go with me? -are there yet any more sons in my womb, that they may be your -husbands? 1:12 Turn again, my daughters, go your way; for I am too -old to have an husband. If I should say, I have hope, if I should have -an husband also to night, and should also bear sons; 1:13 Would ye -tarry for them till they were grown? would ye stay for them from -having husbands? nay, my daughters; for it grieveth me much for your -sakes that the hand of the LORD is gone out against me. - -1:14 And they lifted up their voice, and wept again: and Orpah kissed -her mother in law; but Ruth clave unto her. - -1:15 And she said, Behold, thy sister in law is gone back unto her -people, and unto her gods: return thou after thy sister in law. - -1:16 And Ruth said, Intreat me not to leave thee, or to return from -following after thee: for whither thou goest, I will go; and where -thou lodgest, I will lodge: thy people shall be my people, and thy God -my God: 1:17 Where thou diest, will I die, and there will I be buried: -the LORD do so to me, and more also, if ought but death part thee and -me. - -1:18 When she saw that she was stedfastly minded to go with her, then -she left speaking unto her. - -1:19 So they two went until they came to Bethlehem. And it came to -pass, when they were come to Bethlehem, that all the city was moved -about them, and they said, Is this Naomi? 1:20 And she said unto -them, Call me not Naomi, call me Mara: for the Almighty hath dealt -very bitterly with me. - -1:21 I went out full and the LORD hath brought me home again empty: -why then call ye me Naomi, seeing the LORD hath testified against me, -and the Almighty hath afflicted me? 1:22 So Naomi returned, and Ruth -the Moabitess, her daughter in law, with her, which returned out of -the country of Moab: and they came to Bethlehem in the beginning of -barley harvest. - -2:1 And Naomi had a kinsman of her husband's, a mighty man of wealth, -of the family of Elimelech; and his name was Boaz. - -2:2 And Ruth the Moabitess said unto Naomi, Let me now go to the -field, and glean ears of corn after him in whose sight I shall find -grace. - -And she said unto her, Go, my daughter. - -2:3 And she went, and came, and gleaned in the field after the -reapers: and her hap was to light on a part of the field belonging -unto Boaz, who was of the kindred of Elimelech. - -2:4 And, behold, Boaz came from Bethlehem, and said unto the reapers, -The LORD be with you. And they answered him, The LORD bless thee. - -2:5 Then said Boaz unto his servant that was set over the reapers, -Whose damsel is this? 2:6 And the servant that was set over the -reapers answered and said, It is the Moabitish damsel that came back -with Naomi out of the country of Moab: 2:7 And she said, I pray you, -let me glean and gather after the reapers among the sheaves: so she -came, and hath continued even from the morning until now, that she -tarried a little in the house. - -2:8 Then said Boaz unto Ruth, Hearest thou not, my daughter? Go not to -glean in another field, neither go from hence, but abide here fast by -my maidens: 2:9 Let thine eyes be on the field that they do reap, and -go thou after them: have I not charged the young men that they shall -not touch thee? and when thou art athirst, go unto the vessels, and -drink of that which the young men have drawn. - -2:10 Then she fell on her face, and bowed herself to the ground, and -said unto him, Why have I found grace in thine eyes, that thou -shouldest take knowledge of me, seeing I am a stranger? 2:11 And Boaz -answered and said unto her, It hath fully been shewed me, all that -thou hast done unto thy mother in law since the death of thine -husband: and how thou hast left thy father and thy mother, and the -land of thy nativity, and art come unto a people which thou knewest -not heretofore. - -2:12 The LORD recompense thy work, and a full reward be given thee of -the LORD God of Israel, under whose wings thou art come to trust. - -2:13 Then she said, Let me find favour in thy sight, my lord; for that -thou hast comforted me, and for that thou hast spoken friendly unto -thine handmaid, though I be not like unto one of thine handmaidens. - -2:14 And Boaz said unto her, At mealtime come thou hither, and eat of -the bread, and dip thy morsel in the vinegar. And she sat beside the -reapers: and he reached her parched corn, and she did eat, and was -sufficed, and left. - -2:15 And when she was risen up to glean, Boaz commanded his young men, -saying, Let her glean even among the sheaves, and reproach her not: -2:16 And let fall also some of the handfuls of purpose for her, and -leave them, that she may glean them, and rebuke her not. - -2:17 So she gleaned in the field until even, and beat out that she had -gleaned: and it was about an ephah of barley. - -2:18 And she took it up, and went into the city: and her mother in law -saw what she had gleaned: and she brought forth, and gave to her that -she had reserved after she was sufficed. - -2:19 And her mother in law said unto her, Where hast thou gleaned to -day? and where wroughtest thou? blessed be he that did take knowledge -of thee. And she shewed her mother in law with whom she had wrought, -and said, The man's name with whom I wrought to day is Boaz. - -2:20 And Naomi said unto her daughter in law, Blessed be he of the -LORD, who hath not left off his kindness to the living and to the -dead. And Naomi said unto her, The man is near of kin unto us, one of -our next kinsmen. - -2:21 And Ruth the Moabitess said, He said unto me also, Thou shalt -keep fast by my young men, until they have ended all my harvest. - -2:22 And Naomi said unto Ruth her daughter in law, It is good, my -daughter, that thou go out with his maidens, that they meet thee not -in any other field. - -2:23 So she kept fast by the maidens of Boaz to glean unto the end of -barley harvest and of wheat harvest; and dwelt with her mother in law. - -3:1 Then Naomi her mother in law said unto her, My daughter, shall I -not seek rest for thee, that it may be well with thee? 3:2 And now is -not Boaz of our kindred, with whose maidens thou wast? Behold, he -winnoweth barley to night in the threshingfloor. - -3:3 Wash thyself therefore, and anoint thee, and put thy raiment upon -thee, and get thee down to the floor: but make not thyself known unto -the man, until he shall have done eating and drinking. - -3:4 And it shall be, when he lieth down, that thou shalt mark the -place where he shall lie, and thou shalt go in, and uncover his feet, -and lay thee down; and he will tell thee what thou shalt do. - -3:5 And she said unto her, All that thou sayest unto me I will do. - -3:6 And she went down unto the floor, and did according to all that -her mother in law bade her. - -3:7 And when Boaz had eaten and drunk, and his heart was merry, he -went to lie down at the end of the heap of corn: and she came softly, -and uncovered his feet, and laid her down. - -3:8 And it came to pass at midnight, that the man was afraid, and -turned himself: and, behold, a woman lay at his feet. - -3:9 And he said, Who art thou? And she answered, I am Ruth thine -handmaid: spread therefore thy skirt over thine handmaid; for thou art -a near kinsman. - -3:10 And he said, Blessed be thou of the LORD, my daughter: for thou -hast shewed more kindness in the latter end than at the beginning, -inasmuch as thou followedst not young men, whether poor or rich. - -3:11 And now, my daughter, fear not; I will do to thee all that thou -requirest: for all the city of my people doth know that thou art a -virtuous woman. - -3:12 And now it is true that I am thy near kinsman: howbeit there is a -kinsman nearer than I. - -3:13 Tarry this night, and it shall be in the morning, that if he will -perform unto thee the part of a kinsman, well; let him do the -kinsman's part: but if he will not do the part of a kinsman to thee, -then will I do the part of a kinsman to thee, as the LORD liveth: lie -down until the morning. - -3:14 And she lay at his feet until the morning: and she rose up before -one could know another. And he said, Let it not be known that a woman -came into the floor. - -3:15 Also he said, Bring the vail that thou hast upon thee, and hold -it. - -And when she held it, he measured six measures of barley, and laid it -on her: and she went into the city. - -3:16 And when she came to her mother in law, she said, Who art thou, -my daughter? And she told her all that the man had done to her. - -3:17 And she said, These six measures of barley gave he me; for he -said to me, Go not empty unto thy mother in law. - -3:18 Then said she, Sit still, my daughter, until thou know how the -matter will fall: for the man will not be in rest, until he have -finished the thing this day. - -4:1 Then went Boaz up to the gate, and sat him down there: and, -behold, the kinsman of whom Boaz spake came by; unto whom he said, Ho, -such a one! turn aside, sit down here. And he turned aside, and sat -down. - -4:2 And he took ten men of the elders of the city, and said, Sit ye -down here. And they sat down. - -4:3 And he said unto the kinsman, Naomi, that is come again out of the -country of Moab, selleth a parcel of land, which was our brother -Elimelech's: 4:4 And I thought to advertise thee, saying, Buy it -before the inhabitants, and before the elders of my people. If thou -wilt redeem it, redeem it: but if thou wilt not redeem it, then tell -me, that I may know: for there is none to redeem it beside thee; and I -am after thee. And he said, I will redeem it. - -4:5 Then said Boaz, What day thou buyest the field of the hand of -Naomi, thou must buy it also of Ruth the Moabitess, the wife of the -dead, to raise up the name of the dead upon his inheritance. - -4:6 And the kinsman said, I cannot redeem it for myself, lest I mar -mine own inheritance: redeem thou my right to thyself; for I cannot -redeem it. - -4:7 Now this was the manner in former time in Israel concerning -redeeming and concerning changing, for to confirm all things; a man -plucked off his shoe, and gave it to his neighbour: and this was a -testimony in Israel. - -4:8 Therefore the kinsman said unto Boaz, Buy it for thee. So he drew -off his shoe. - -4:9 And Boaz said unto the elders, and unto all the people, Ye are -witnesses this day, that I have bought all that was Elimelech's, and -all that was Chilion's and Mahlon's, of the hand of Naomi. - -4:10 Moreover Ruth the Moabitess, the wife of Mahlon, have I purchased -to be my wife, to raise up the name of the dead upon his inheritance, -that the name of the dead be not cut off from among his brethren, and -from the gate of his place: ye are witnesses this day. - -4:11 And all the people that were in the gate, and the elders, said, -We are witnesses. The LORD make the woman that is come into thine -house like Rachel and like Leah, which two did build the house of -Israel: and do thou worthily in Ephratah, and be famous in Bethlehem: -4:12 And let thy house be like the house of Pharez, whom Tamar bare -unto Judah, of the seed which the LORD shall give thee of this young -woman. - -4:13 So Boaz took Ruth, and she was his wife: and when he went in unto -her, the LORD gave her conception, and she bare a son. - -4:14 And the women said unto Naomi, Blessed be the LORD, which hath -not left thee this day without a kinsman, that his name may be famous -in Israel. - -4:15 And he shall be unto thee a restorer of thy life, and a nourisher -of thine old age: for thy daughter in law, which loveth thee, which is -better to thee than seven sons, hath born him. - -4:16 And Naomi took the child, and laid it in her bosom, and became -nurse unto it. - -4:17 And the women her neighbours gave it a name, saying, There is a -son born to Naomi; and they called his name Obed: he is the father of -Jesse, the father of David. - -4:18 Now these are the generations of Pharez: Pharez begat Hezron, -4:19 And Hezron begat Ram, and Ram begat Amminadab, 4:20 And Amminadab -begat Nahshon, and Nahshon begat Salmon, 4:21 And Salmon begat Boaz, -and Boaz begat Obed, 4:22 And Obed begat Jesse, and Jesse begat David. - - - - -The First Book of Samuel - -Otherwise Called: - -The First Book of the Kings - - -1:1 Now there was a certain man of Ramathaimzophim, of mount Ephraim, -and his name was Elkanah, the son of Jeroham, the son of Elihu, the -son of Tohu, the son of Zuph, an Ephrathite: 1:2 And he had two wives; -the name of the one was Hannah, and the name of the other Peninnah: -and Peninnah had children, but Hannah had no children. - -1:3 And this man went up out of his city yearly to worship and to -sacrifice unto the LORD of hosts in Shiloh. And the two sons of Eli, -Hophni and Phinehas, the priests of the LORD, were there. - -1:4 And when the time was that Elkanah offered, he gave to Peninnah -his wife, and to all her sons and her daughters, portions: 1:5 But -unto Hannah he gave a worthy portion; for he loved Hannah: but the -LORD had shut up her womb. - -1:6 And her adversary also provoked her sore, for to make her fret, -because the LORD had shut up her womb. - -1:7 And as he did so year by year, when she went up to the house of -the LORD, so she provoked her; therefore she wept, and did not eat. - -1:8 Then said Elkanah her husband to her, Hannah, why weepest thou? -and why eatest thou not? and why is thy heart grieved? am not I better -to thee than ten sons? 1:9 So Hannah rose up after they had eaten in -Shiloh, and after they had drunk. Now Eli the priest sat upon a seat -by a post of the temple of the LORD. - -1:10 And she was in bitterness of soul, and prayed unto the LORD, and -wept sore. - -1:11 And she vowed a vow, and said, O LORD of hosts, if thou wilt -indeed look on the affliction of thine handmaid, and remember me, and -not forget thine handmaid, but wilt give unto thine handmaid a man -child, then I will give him unto the LORD all the days of his life, -and there shall no razor come upon his head. - -1:12 And it came to pass, as she continued praying before the LORD, -that Eli marked her mouth. - -1:13 Now Hannah, she spake in her heart; only her lips moved, but her -voice was not heard: therefore Eli thought she had been drunken. - -1:14 And Eli said unto her, How long wilt thou be drunken? put away -thy wine from thee. - -1:15 And Hannah answered and said, No, my lord, I am a woman of a -sorrowful spirit: I have drunk neither wine nor strong drink, but have -poured out my soul before the LORD. - -1:16 Count not thine handmaid for a daughter of Belial: for out of the -abundance of my complaint and grief have I spoken hitherto. - -1:17 Then Eli answered and said, Go in peace: and the God of Israel -grant thee thy petition that thou hast asked of him. - -1:18 And she said, Let thine handmaid find grace in thy sight. So the -woman went her way, and did eat, and her countenance was no more sad. - -1:19 And they rose up in the morning early, and worshipped before the -LORD, and returned, and came to their house to Ramah: and Elkanah knew -Hannah his wife; and the LORD remembered her. - -1:20 Wherefore it came to pass, when the time was come about after -Hannah had conceived, that she bare a son, and called his name Samuel, -saying, Because I have asked him of the LORD. - -1:21 And the man Elkanah, and all his house, went up to offer unto the -LORD the yearly sacrifice, and his vow. - -1:22 But Hannah went not up; for she said unto her husband, I will not -go up until the child be weaned, and then I will bring him, that he -may appear before the LORD, and there abide for ever. - -1:23 And Elkanah her husband said unto her, Do what seemeth thee good; -tarry until thou have weaned him; only the LORD establish his word. So -the woman abode, and gave her son suck until she weaned him. - -1:24 And when she had weaned him, she took him up with her, with three -bullocks, and one ephah of flour, and a bottle of wine, and brought -him unto the house of the LORD in Shiloh: and the child was young. - -1:25 And they slew a bullock, and brought the child to Eli. - -1:26 And she said, Oh my lord, as thy soul liveth, my lord, I am the -woman that stood by thee here, praying unto the LORD. - -1:27 For this child I prayed; and the LORD hath given me my petition -which I asked of him: 1:28 Therefore also I have lent him to the LORD; -as long as he liveth he shall be lent to the LORD. And he worshipped -the LORD there. - -2:1 And Hannah prayed, and said, My heart rejoiceth in the LORD, mine -horn is exalted in the LORD: my mouth is enlarged over mine enemies; -because I rejoice in thy salvation. - -2:2 There is none holy as the LORD: for there is none beside thee: -neither is there any rock like our God. - -2:3 Talk no more so exceeding proudly; let not arrogancy come out of -your mouth: for the LORD is a God of knowledge, and by him actions are -weighed. - -2:4 The bows of the mighty men are broken, and they that stumbled are -girded with strength. - -2:5 They that were full have hired out themselves for bread; and they -that were hungry ceased: so that the barren hath born seven; and she -that hath many children is waxed feeble. - -2:6 The LORD killeth, and maketh alive: he bringeth down to the grave, -and bringeth up. - -2:7 The LORD maketh poor, and maketh rich: he bringeth low, and -lifteth up. - -2:8 He raiseth up the poor out of the dust, and lifteth up the beggar -from the dunghill, to set them among princes, and to make them inherit -the throne of glory: for the pillars of the earth are the LORD's, and -he hath set the world upon them. - -2:9 He will keep the feet of his saints, and the wicked shall be -silent in darkness; for by strength shall no man prevail. - -2:10 The adversaries of the LORD shall be broken to pieces; out of -heaven shall he thunder upon them: the LORD shall judge the ends of -the earth; and he shall give strength unto his king, and exalt the -horn of his anointed. - -2:11 And Elkanah went to Ramah to his house. And the child did -minister unto the LORD before Eli the priest. - -2:12 Now the sons of Eli were sons of Belial; they knew not the LORD. - -2:13 And the priest's custom with the people was, that, when any man -offered sacrifice, the priest's servant came, while the flesh was in -seething, with a fleshhook of three teeth in his hand; 2:14 And he -struck it into the pan, or kettle, or caldron, or pot; all that the -fleshhook brought up the priest took for himself. So they did in -Shiloh unto all the Israelites that came thither. - -2:15 Also before they burnt the fat, the priest's servant came, and -said to the man that sacrificed, Give flesh to roast for the priest; -for he will not have sodden flesh of thee, but raw. - -2:16 And if any man said unto him, Let them not fail to burn the fat -presently, and then take as much as thy soul desireth; then he would -answer him, Nay; but thou shalt give it me now: and if not, I will -take it by force. - -2:17 Wherefore the sin of the young men was very great before the -LORD: for men abhorred the offering of the LORD. - -2:18 But Samuel ministered before the LORD, being a child, girded with -a linen ephod. - -2:19 Moreover his mother made him a little coat, and brought it to him -from year to year, when she came up with her husband to offer the -yearly sacrifice. - -2:20 And Eli blessed Elkanah and his wife, and said, The LORD give -thee seed of this woman for the loan which is lent to the LORD. And -they went unto their own home. - -2:21 And the LORD visited Hannah, so that she conceived, and bare -three sons and two daughters. And the child Samuel grew before the -LORD. - -2:22 Now Eli was very old, and heard all that his sons did unto all -Israel; and how they lay with the women that assembled at the door of -the tabernacle of the congregation. - -2:23 And he said unto them, Why do ye such things? for I hear of your -evil dealings by all this people. - -2:24 Nay, my sons; for it is no good report that I hear: ye make the -LORD's people to transgress. - -2:25 If one man sin against another, the judge shall judge him: but if -a man sin against the LORD, who shall intreat for him? Notwithstanding -they hearkened not unto the voice of their father, because the LORD -would slay them. - -2:26 And the child Samuel grew on, and was in favour both with the -LORD, and also with men. - -2:27 And there came a man of God unto Eli, and said unto him, Thus -saith the LORD, Did I plainly appear unto the house of thy father, -when they were in Egypt in Pharaoh's house? 2:28 And did I choose him -out of all the tribes of Israel to be my priest, to offer upon mine -altar, to burn incense, to wear an ephod before me? and did I give -unto the house of thy father all the offerings made by fire of the -children of Israel? 2:29 Wherefore kick ye at my sacrifice and at -mine offering, which I have commanded in my habitation; and honourest -thy sons above me, to make yourselves fat with the chiefest of all the -offerings of Israel my people? 2:30 Wherefore the LORD God of Israel -saith, I said indeed that thy house, and the house of thy father, -should walk before me for ever: but now the LORD saith, Be it far from -me; for them that honour me I will honour, and they that despise me -shall be lightly esteemed. - -2:31 Behold, the days come, that I will cut off thine arm, and the arm -of thy father's house, that there shall not be an old man in thine -house. - -2:32 And thou shalt see an enemy in my habitation, in all the wealth -which God shall give Israel: and there shall not be an old man in -thine house for ever. - -2:33 And the man of thine, whom I shall not cut off from mine altar, -shall be to consume thine eyes, and to grieve thine heart: and all the -increase of thine house shall die in the flower of their age. - -2:34 And this shall be a sign unto thee, that shall come upon thy two -sons, on Hophni and Phinehas; in one day they shall die both of them. - -2:35 And I will raise me up a faithful priest, that shall do according -to that which is in mine heart and in my mind: and I will build him a -sure house; and he shall walk before mine anointed for ever. - -2:36 And it shall come to pass, that every one that is left in thine -house shall come and crouch to him for a piece of silver and a morsel -of bread, and shall say, Put me, I pray thee, into one of the priests' -offices, that I may eat a piece of bread. - -3:1 And the child Samuel ministered unto the LORD before Eli. And the -word of the LORD was precious in those days; there was no open vision. - -3:2 And it came to pass at that time, when Eli was laid down in his -place, and his eyes began to wax dim, that he could not see; 3:3 And -ere the lamp of God went out in the temple of the LORD, where the ark -of God was, and Samuel was laid down to sleep; 3:4 That the LORD -called Samuel: and he answered, Here am I. - -3:5 And he ran unto Eli, and said, Here am I; for thou calledst me. -And he said, I called not; lie down again. And he went and lay down. - -3:6 And the LORD called yet again, Samuel. And Samuel arose and went -to Eli, and said, Here am I; for thou didst call me. And he answered, -I called not, my son; lie down again. - -3:7 Now Samuel did not yet know the LORD, neither was the word of the -LORD yet revealed unto him. - -3:8 And the LORD called Samuel again the third time. And he arose and -went to Eli, and said, Here am I; for thou didst call me. And Eli -perceived that the LORD had called the child. - -3:9 Therefore Eli said unto Samuel, Go, lie down: and it shall be, if -he call thee, that thou shalt say, Speak, LORD; for thy servant -heareth. So Samuel went and lay down in his place. - -3:10 And the LORD came, and stood, and called as at other times, -Samuel, Samuel. Then Samuel answered, Speak; for thy servant heareth. - -3:11 And the LORD said to Samuel, Behold, I will do a thing in Israel, -at which both the ears of every one that heareth it shall tingle. - -3:12 In that day I will perform against Eli all things which I have -spoken concerning his house: when I begin, I will also make an end. - -3:13 For I have told him that I will judge his house for ever for the -iniquity which he knoweth; because his sons made themselves vile, and -he restrained them not. - -3:14 And therefore I have sworn unto the house of Eli, that the -iniquity of Eli's house shall not be purged with sacrifice nor -offering for ever. - -3:15 And Samuel lay until the morning, and opened the doors of the -house of the LORD. And Samuel feared to shew Eli the vision. - -3:16 Then Eli called Samuel, and said, Samuel, my son. And he -answered, Here am I. - -3:17 And he said, What is the thing that the LORD hath said unto thee? -I pray thee hide it not from me: God do so to thee, and more also, if -thou hide any thing from me of all the things that he said unto thee. - -3:18 And Samuel told him every whit, and hid nothing from him. And he -said, It is the LORD: let him do what seemeth him good. - -3:19 And Samuel grew, and the LORD was with him, and did let none of -his words fall to the ground. - -3:20 And all Israel from Dan even to Beersheba knew that Samuel was -established to be a prophet of the LORD. - -3:21 And the LORD appeared again in Shiloh: for the LORD revealed -himself to Samuel in Shiloh by the word of the LORD. - -4:1 And the word of Samuel came to all Israel. Now Israel went out -against the Philistines to battle, and pitched beside Ebenezer: and -the Philistines pitched in Aphek. - -4:2 And the Philistines put themselves in array against Israel: and -when they joined battle, Israel was smitten before the Philistines: -and they slew of the army in the field about four thousand men. - -4:3 And when the people were come into the camp, the elders of Israel -said, Wherefore hath the LORD smitten us to day before the -Philistines? Let us fetch the ark of the covenant of the LORD out of -Shiloh unto us, that, when it cometh among us, it may save us out of -the hand of our enemies. - -4:4 So the people sent to Shiloh, that they might bring from thence -the ark of the covenant of the LORD of hosts, which dwelleth between -the cherubims: and the two sons of Eli, Hophni and Phinehas, were -there with the ark of the covenant of God. - -4:5 And when the ark of the covenant of the LORD came into the camp, -all Israel shouted with a great shout, so that the earth rang again. - -4:6 And when the Philistines heard the noise of the shout, they said, -What meaneth the noise of this great shout in the camp of the Hebrews? -And they understood that the ark of the LORD was come into the camp. - -4:7 And the Philistines were afraid, for they said, God is come into -the camp. And they said, Woe unto us! for there hath not been such a -thing heretofore. - -4:8 Woe unto us! who shall deliver us out of the hand of these mighty -Gods? these are the Gods that smote the Egyptians with all the plagues -in the wilderness. - -4:9 Be strong and quit yourselves like men, O ye Philistines, that ye -be not servants unto the Hebrews, as they have been to you: quit -yourselves like men, and fight. - -4:10 And the Philistines fought, and Israel was smitten, and they fled -every man into his tent: and there was a very great slaughter; for -there fell of Israel thirty thousand footmen. - -4:11 And the ark of God was taken; and the two sons of Eli, Hophni and -Phinehas, were slain. - -4:12 And there ran a man of Benjamin out of the army, and came to -Shiloh the same day with his clothes rent, and with earth upon his -head. - -4:13 And when he came, lo, Eli sat upon a seat by the wayside -watching: for his heart trembled for the ark of God. And when the man -came into the city, and told it, all the city cried out. - -4:14 And when Eli heard the noise of the crying, he said, What meaneth -the noise of this tumult? And the man came in hastily, and told Eli. - -4:15 Now Eli was ninety and eight years old; and his eyes were dim, -that he could not see. - -4:16 And the man said unto Eli, I am he that came out of the army, and -I fled to day out of the army. And he said, What is there done, my -son? 4:17 And the messenger answered and said, Israel is fled before -the Philistines, and there hath been also a great slaughter among the -people, and thy two sons also, Hophni and Phinehas, are dead, and the -ark of God is taken. - -4:18 And it came to pass, when he made mention of the ark of God, that -he fell from off the seat backward by the side of the gate, and his -neck brake, and he died: for he was an old man, and heavy. And he had -judged Israel forty years. - -4:19 And his daughter in law, Phinehas' wife, was with child, near to -be delivered: and when she heard the tidings that the ark of God was -taken, and that her father in law and her husband were dead, she bowed -herself and travailed; for her pains came upon her. - -4:20 And about the time of her death the women that stood by her said -unto her, Fear not; for thou hast born a son. But she answered not, -neither did she regard it. - -4:21 And she named the child Ichabod, saying, The glory is departed -from Israel: because the ark of God was taken, and because of her -father in law and her husband. - -4:22 And she said, The glory is departed from Israel: for the ark of -God is taken. - -5:1 And the Philistines took the ark of God, and brought it from -Ebenezer unto Ashdod. - -5:2 When the Philistines took the ark of God, they brought it into the -house of Dagon, and set it by Dagon. - -5:3 And when they of Ashdod arose early on the morrow, behold, Dagon -was fallen upon his face to the earth before the ark of the LORD. And -they took Dagon, and set him in his place again. - -5:4 And when they arose early on the morrow morning, behold, Dagon was -fallen upon his face to the ground before the ark of the LORD; and the -head of Dagon and both the palms of his hands were cut off upon the -threshold; only the stump of Dagon was left to him. - -5:5 Therefore neither the priests of Dagon, nor any that come into -Dagon's house, tread on the threshold of Dagon in Ashdod unto this -day. - -5:6 But the hand of the LORD was heavy upon them of Ashdod, and he -destroyed them, and smote them with emerods, even Ashdod and the -coasts thereof. - -5:7 And when the men of Ashdod saw that it was so, they said, The ark -of the God of Israel shall not abide with us: for his hand is sore -upon us, and upon Dagon our god. - -5:8 They sent therefore and gathered all the lords of the Philistines -unto them, and said, What shall we do with the ark of the God of -Israel? And they answered, Let the ark of the God of Israel be carried -about unto Gath. And they carried the ark of the God of Israel about -thither. - -5:9 And it was so, that, after they had carried it about, the hand of -the LORD was against the city with a very great destruction: and he -smote the men of the city, both small and great, and they had emerods -in their secret parts. - -5:10 Therefore they sent the ark of God to Ekron. And it came to pass, -as the ark of God came to Ekron, that the Ekronites cried out, saying, -They have brought about the ark of the God of Israel to us, to slay us -and our people. - -5:11 So they sent and gathered together all the lords of the -Philistines, and said, Send away the ark of the God of Israel, and let -it go again to his own place, that it slay us not, and our people: for -there was a deadly destruction throughout all the city; the hand of -God was very heavy there. - -5:12 And the men that died not were smitten with the emerods: and the -cry of the city went up to heaven. - -6:1 And the ark of the LORD was in the country of the Philistines -seven months. - -6:2 And the Philistines called for the priests and the diviners, -saying, What shall we do to the ark of the LORD? tell us wherewith we -shall send it to his place. - -6:3 And they said, If ye send away the ark of the God of Israel, send -it not empty; but in any wise return him a trespass offering: then ye -shall be healed, and it shall be known to you why his hand is not -removed from you. - -6:4 Then said they, What shall be the trespass offering which we shall -return to him? They answered, Five golden emerods, and five golden -mice, according to the number of the lords of the Philistines: for one -plague was on you all, and on your lords. - -6:5 Wherefore ye shall make images of your emerods, and images of your -mice that mar the land; and ye shall give glory unto the God of -Israel: peradventure he will lighten his hand from off you, and from -off your gods, and from off your land. - -6:6 Wherefore then do ye harden your hearts, as the Egyptians and -Pharaoh hardened their hearts? when he had wrought wonderfully among -them, did they not let the people go, and they departed? 6:7 Now -therefore make a new cart, and take two milch kine, on which there -hath come no yoke, and tie the kine to the cart, and bring their -calves home from them: 6:8 And take the ark of the LORD, and lay it -upon the cart; and put the jewels of gold, which ye return him for a -trespass offering, in a coffer by the side thereof; and send it away, -that it may go. - -6:9 And see, if it goeth up by the way of his own coast to -Bethshemesh, then he hath done us this great evil: but if not, then we -shall know that it is not his hand that smote us: it was a chance that -happened to us. - -6:10 And the men did so; and took two milch kine, and tied them to the -cart, and shut up their calves at home: 6:11 And they laid the ark of -the LORD upon the cart, and the coffer with the mice of gold and the -images of their emerods. - -6:12 And the kine took the straight way to the way of Bethshemesh, and -went along the highway, lowing as they went, and turned not aside to -the right hand or to the left; and the lords of the Philistines went -after them unto the border of Bethshemesh. - -6:13 And they of Bethshemesh were reaping their wheat harvest in the -valley: and they lifted up their eyes, and saw the ark, and rejoiced -to see it. - -6:14 And the cart came into the field of Joshua, a Bethshemite, and -stood there, where there was a great stone: and they clave the wood of -the cart, and offered the kine a burnt offering unto the LORD. - -6:15 And the Levites took down the ark of the LORD, and the coffer -that was with it, wherein the jewels of gold were, and put them on the -great stone: and the men of Bethshemesh offered burnt offerings and -sacrificed sacrifices the same day unto the LORD. - -6:16 And when the five lords of the Philistines had seen it, they -returned to Ekron the same day. - -6:17 And these are the golden emerods which the Philistines returned -for a trespass offering unto the LORD; for Ashdod one, for Gaza one, -for Askelon one, for Gath one, for Ekron one; 6:18 And the golden -mice, according to the number of all the cities of the Philistines -belonging to the five lords, both of fenced cities, and of country -villages, even unto the great stone of Abel, whereon they set down the -ark of the LORD: which stone remaineth unto this day in the field of -Joshua, the Bethshemite. - -6:19 And he smote the men of Bethshemesh, because they had looked into -the ark of the LORD, even he smote of the people fifty thousand and -threescore and ten men: and the people lamented, because the LORD had -smitten many of the people with a great slaughter. - -6:20 And the men of Bethshemesh said, Who is able to stand before this -holy LORD God? and to whom shall he go up from us? 6:21 And they sent -messengers to the inhabitants of Kirjathjearim, saying, The -Philistines have brought again the ark of the LORD; come ye down, and -fetch it up to you. - -7:1 And the men of Kirjathjearim came, and fetched up the ark of the -LORD, and brought it into the house of Abinadab in the hill, and -sanctified Eleazar his son to keep the ark of the LORD. - -7:2 And it came to pass, while the ark abode in Kirjathjearim, that -the time was long; for it was twenty years: and all the house of -Israel lamented after the LORD. - -7:3 And Samuel spake unto all the house of Israel, saying, If ye do -return unto the LORD with all your hearts, then put away the strange -gods and Ashtaroth from among you, and prepare your hearts unto the -LORD, and serve him only: and he will deliver you out of the hand of -the Philistines. - -7:4 Then the children of Israel did put away Baalim and Ashtaroth, and -served the LORD only. - -7:5 And Samuel said, Gather all Israel to Mizpeh, and I will pray for -you unto the LORD. - -7:6 And they gathered together to Mizpeh, and drew water, and poured -it out before the LORD, and fasted on that day, and said there, We -have sinned against the LORD. And Samuel judged the children of Israel -in Mizpeh. - -7:7 And when the Philistines heard that the children of Israel were -gathered together to Mizpeh, the lords of the Philistines went up -against Israel. And when the children of Israel heard it, they were -afraid of the Philistines. - -7:8 And the children of Israel said to Samuel, Cease not to cry unto -the LORD our God for us, that he will save us out of the hand of the -Philistines. - -7:9 And Samuel took a sucking lamb, and offered it for a burnt -offering wholly unto the LORD: and Samuel cried unto the LORD for -Israel; and the LORD heard him. - -7:10 And as Samuel was offering up the burnt offering, the Philistines -drew near to battle against Israel: but the LORD thundered with a -great thunder on that day upon the Philistines, and discomfited them; -and they were smitten before Israel. - -7:11 And the men of Israel went out of Mizpeh, and pursued the -Philistines, and smote them, until they came under Bethcar. - -7:12 Then Samuel took a stone, and set it between Mizpeh and Shen, and -called the name of it Ebenezer, saying, Hitherto hath the LORD helped -us. - -7:13 So the Philistines were subdued, and they came no more into the -coast of Israel: and the hand of the LORD was against the Philistines -all the days of Samuel. - -7:14 And the cities which the Philistines had taken from Israel were -restored to Israel, from Ekron even unto Gath; and the coasts thereof -did Israel deliver out of the hands of the Philistines. And there was -peace between Israel and the Amorites. - -7:15 And Samuel judged Israel all the days of his life. - -7:16 And he went from year to year in circuit to Bethel, and Gilgal, -and Mizpeh, and judged Israel in all those places. - -7:17 And his return was to Ramah; for there was his house; and there -he judged Israel; and there he built an altar unto the LORD. - -8:1 And it came to pass, when Samuel was old, that he made his sons -judges over Israel. - -8:2 Now the name of his firstborn was Joel; and the name of his -second, Abiah: they were judges in Beersheba. - -8:3 And his sons walked not in his ways, but turned aside after lucre, -and took bribes, and perverted judgment. - -8:4 Then all the elders of Israel gathered themselves together, and -came to Samuel unto Ramah, 8:5 And said unto him, Behold, thou art -old, and thy sons walk not in thy ways: now make us a king to judge us -like all the nations. - -8:6 But the thing displeased Samuel, when they said, Give us a king to -judge us. And Samuel prayed unto the LORD. - -8:7 And the LORD said unto Samuel, Hearken unto the voice of the -people in all that they say unto thee: for they have not rejected -thee, but they have rejected me, that I should not reign over them. - -8:8 According to all the works which they have done since the day that -I brought them up out of Egypt even unto this day, wherewith they have -forsaken me, and served other gods, so do they also unto thee. - -8:9 Now therefore hearken unto their voice: howbeit yet protest -solemnly unto them, and shew them the manner of the king that shall -reign over them. - -8:10 And Samuel told all the words of the LORD unto the people that -asked of him a king. - -8:11 And he said, This will be the manner of the king that shall reign -over you: He will take your sons, and appoint them for himself, for -his chariots, and to be his horsemen; and some shall run before his -chariots. - -8:12 And he will appoint him captains over thousands, and captains -over fifties; and will set them to ear his ground, and to reap his -harvest, and to make his instruments of war, and instruments of his -chariots. - -8:13 And he will take your daughters to be confectionaries, and to be -cooks, and to be bakers. - -8:14 And he will take your fields, and your vineyards, and your -oliveyards, even the best of them, and give them to his servants. - -8:15 And he will take the tenth of your seed, and of your vineyards, -and give to his officers, and to his servants. - -8:16 And he will take your menservants, and your maidservants, and -your goodliest young men, and your asses, and put them to his work. - -8:17 He will take the tenth of your sheep: and ye shall be his -servants. - -8:18 And ye shall cry out in that day because of your king which ye -shall have chosen you; and the LORD will not hear you in that day. - -8:19 Nevertheless the people refused to obey the voice of Samuel; and -they said, Nay; but we will have a king over us; 8:20 That we also may -be like all the nations; and that our king may judge us, and go out -before us, and fight our battles. - -8:21 And Samuel heard all the words of the people, and he rehearsed -them in the ears of the LORD. - -8:22 And the LORD said to Samuel, Hearken unto their voice, and make -them a king. And Samuel said unto the men of Israel, Go ye every man -unto his city. - -9:1 Now there was a man of Benjamin, whose name was Kish, the son of -Abiel, the son of Zeror, the son of Bechorath, the son of Aphiah, a -Benjamite, a mighty man of power. - -9:2 And he had a son, whose name was Saul, a choice young man, and a -goodly: and there was not among the children of Israel a goodlier -person than he: from his shoulders and upward he was higher than any -of the people. - -9:3 And the asses of Kish Saul's father were lost. And Kish said to -Saul his son, Take now one of the servants with thee, and arise, go -seek the asses. - -9:4 And he passed through mount Ephraim, and passed through the land -of Shalisha, but they found them not: then they passed through the -land of Shalim, and there they were not: and he passed through the -land of the Benjamites, but they found them not. - -9:5 And when they were come to the land of Zuph, Saul said to his -servant that was with him, Come, and let us return; lest my father -leave caring for the asses, and take thought for us. - -9:6 And he said unto him, Behold now, there is in this city a man of -God, and he is an honourable man; all that he saith cometh surely to -pass: now let us go thither; peradventure he can shew us our way that -we should go. - -9:7 Then said Saul to his servant, But, behold, if we go, what shall -we bring the man? for the bread is spent in our vessels, and there is -not a present to bring to the man of God: what have we? 9:8 And the -servant answered Saul again, and said, Behold, I have here at hand the -fourth part of a shekel of silver: that will I give to the man of God, -to tell us our way. - -9:9 (Beforetime in Israel, when a man went to enquire of God, thus he -spake, Come, and let us go to the seer: for he that is now called a -Prophet was beforetime called a Seer.) 9:10 Then said Saul to his -servant, Well said; come, let us go. So they went unto the city where -the man of God was. - -9:11 And as they went up the hill to the city, they found young -maidens going out to draw water, and said unto them, Is the seer here? -9:12 And they answered them, and said, He is; behold, he is before -you: make haste now, for he came to day to the city; for there is a -sacrifice of the people to day in the high place: 9:13 As soon as ye -be come into the city, ye shall straightway find him, before he go up -to the high place to eat: for the people will not eat until he come, -because he doth bless the sacrifice; and afterwards they eat that be -bidden. Now therefore get you up; for about this time ye shall find -him. - -9:14 And they went up into the city: and when they were come into the -city, behold, Samuel came out against them, for to go up to the high -place. - -9:15 Now the LORD had told Samuel in his ear a day before Saul came, -saying, 9:16 To morrow about this time I will send thee a man out of -the land of Benjamin, and thou shalt anoint him to be captain over my -people Israel, that he may save my people out of the hand of the -Philistines: for I have looked upon my people, because their cry is -come unto me. - -9:17 And when Samuel saw Saul, the LORD said unto him, Behold the man -whom I spake to thee of! this same shall reign over my people. - -9:18 Then Saul drew near to Samuel in the gate, and said, Tell me, I -pray thee, where the seer's house is. - -9:19 And Samuel answered Saul, and said, I am the seer: go up before -me unto the high place; for ye shall eat with me to day, and to morrow -I will let thee go, and will tell thee all that is in thine heart. - -9:20 And as for thine asses that were lost three days ago, set not thy -mind on them; for they are found. And on whom is all the desire of -Israel? Is it not on thee, and on all thy father's house? 9:21 And -Saul answered and said, Am not I a Benjamite, of the smallest of the -tribes of Israel? and my family the least of all the families of the -tribe of Benjamin? wherefore then speakest thou so to me? 9:22 And -Samuel took Saul and his servant, and brought them into the parlour, -and made them sit in the chiefest place among them that were bidden, -which were about thirty persons. - -9:23 And Samuel said unto the cook, Bring the portion which I gave -thee, of which I said unto thee, Set it by thee. - -9:24 And the cook took up the shoulder, and that which was upon it, -and set it before Saul. And Samuel said, Behold that which is left! -set it before thee, and eat: for unto this time hath it been kept for -thee since I said, I have invited the people. So Saul did eat with -Samuel that day. - -9:25 And when they were come down from the high place into the city, -Samuel communed with Saul upon the top of the house. - -9:26 And they arose early: and it came to pass about the spring of the -day, that Samuel called Saul to the top of the house, saying, Up, that -I may send thee away. And Saul arose, and they went out both of them, -he and Samuel, abroad. - -9:27 And as they were going down to the end of the city, Samuel said -to Saul, Bid the servant pass on before us, (and he passed on), but -stand thou still a while, that I may shew thee the word of God. - -10:1 Then Samuel took a vial of oil, and poured it upon his head, and -kissed him, and said, Is it not because the LORD hath anointed thee to -be captain over his inheritance? 10:2 When thou art departed from me -to day, then thou shalt find two men by Rachel's sepulchre in the -border of Benjamin at Zelzah; and they will say unto thee, The asses -which thou wentest to seek are found: and, lo, thy father hath left -the care of the asses, and sorroweth for you, saying, What shall I do -for my son? 10:3 Then shalt thou go on forward from thence, and thou -shalt come to the plain of Tabor, and there shall meet thee three men -going up to God to Bethel, one carrying three kids, and another -carrying three loaves of bread, and another carrying a bottle of wine: -10:4 And they will salute thee, and give thee two loaves of bread; -which thou shalt receive of their hands. - -10:5 After that thou shalt come to the hill of God, where is the -garrison of the Philistines: and it shall come to pass, when thou art -come thither to the city, that thou shalt meet a company of prophets -coming down from the high place with a psaltery, and a tabret, and a -pipe, and a harp, before them; and they shall prophesy: 10:6 And the -Spirit of the LORD will come upon thee, and thou shalt prophesy with -them, and shalt be turned into another man. - -10:7 And let it be, when these signs are come unto thee, that thou do -as occasion serve thee; for God is with thee. - -10:8 And thou shalt go down before me to Gilgal; and, behold, I will -come down unto thee, to offer burnt offerings, and to sacrifice -sacrifices of peace offerings: seven days shalt thou tarry, till I -come to thee, and shew thee what thou shalt do. - -10:9 And it was so, that when he had turned his back to go from -Samuel, God gave him another heart: and all those signs came to pass -that day. - -10:10 And when they came thither to the hill, behold, a company of -prophets met him; and the Spirit of God came upon him, and he -prophesied among them. - -10:11 And it came to pass, when all that knew him beforetime saw that, -behold, he prophesied among the prophets, then the people said one to -another, What is this that is come unto the son of Kish? Is Saul also -among the prophets? 10:12 And one of the same place answered and -said, But who is their father? Therefore it became a proverb, Is Saul -also among the prophets? 10:13 And when he had made an end of -prophesying, he came to the high place. - -10:14 And Saul's uncle said unto him and to his servant, Whither went -ye? And he said, To seek the asses: and when we saw that they were no -where, we came to Samuel. - -10:15 And Saul's uncle said, Tell me, I pray thee, what Samuel said -unto you. - -10:16 And Saul said unto his uncle, He told us plainly that the asses -were found. But of the matter of the kingdom, whereof Samuel spake, he -told him not. - -10:17 And Samuel called the people together unto the LORD to Mizpeh; -10:18 And said unto the children of Israel, Thus saith the LORD God of -Israel, I brought up Israel out of Egypt, and delivered you out of the -hand of the Egyptians, and out of the hand of all kingdoms, and of -them that oppressed you: 10:19 And ye have this day rejected your God, -who himself saved you out of all your adversities and your -tribulations; and ye have said unto him, Nay, but set a king over us. -Now therefore present yourselves before the LORD by your tribes, and -by your thousands. - -10:20 And when Samuel had caused all the tribes of Israel to come -near, the tribe of Benjamin was taken. - -10:21 When he had caused the tribe of Benjamin to come near by their -families, the family of Matri was taken, and Saul the son of Kish was -taken: and when they sought him, he could not be found. - -10:22 Therefore they enquired of the LORD further, if the man should -yet come thither. And the LORD answered, Behold he hath hid himself -among the stuff. - -10:23 And they ran and fetched him thence: and when he stood among the -people, he was higher than any of the people from his shoulders and -upward. - -10:24 And Samuel said to all the people, See ye him whom the LORD hath -chosen, that there is none like him among all the people? And all the -people shouted, and said, God save the king. - -10:25 Then Samuel told the people the manner of the kingdom, and wrote -it in a book, and laid it up before the LORD. And Samuel sent all the -people away, every man to his house. - -10:26 And Saul also went home to Gibeah; and there went with him a -band of men, whose hearts God had touched. - -10:27 But the children of Belial said, How shall this man save us? And -they despised him, and brought no presents. But he held his peace. - -11:1 Then Nahash the Ammonite came up, and encamped against -Jabeshgilead: and all the men of Jabesh said unto Nahash, Make a -covenant with us, and we will serve thee. - -11:2 And Nahash the Ammonite answered them, On this condition will I -make a covenant with you, that I may thrust out all your right eyes, -and lay it for a reproach upon all Israel. - -11:3 And the elders of Jabesh said unto him, Give us seven days' -respite, that we may send messengers unto all the coasts of Israel: -and then, if there be no man to save us, we will come out to thee. - -11:4 Then came the messengers to Gibeah of Saul, and told the tidings -in the ears of the people: and all the people lifted up their voices, -and wept. - -11:5 And, behold, Saul came after the herd out of the field; and Saul -said, What aileth the people that they weep? And they told him the -tidings of the men of Jabesh. - -11:6 And the Spirit of God came upon Saul when he heard those tidings, -and his anger was kindled greatly. - -11:7 And he took a yoke of oxen, and hewed them in pieces, and sent -them throughout all the coasts of Israel by the hands of messengers, -saying, Whosoever cometh not forth after Saul and after Samuel, so -shall it be done unto his oxen. And the fear of the LORD fell on the -people, and they came out with one consent. - -11:8 And when he numbered them in Bezek, the children of Israel were -three hundred thousand, and the men of Judah thirty thousand. - -11:9 And they said unto the messengers that came, Thus shall ye say -unto the men of Jabeshgilead, To morrow, by that time the sun be hot, -ye shall have help. And the messengers came and shewed it to the men -of Jabesh; and they were glad. - -11:10 Therefore the men of Jabesh said, To morrow we will come out -unto you, and ye shall do with us all that seemeth good unto you. - -11:11 And it was so on the morrow, that Saul put the people in three -companies; and they came into the midst of the host in the morning -watch, and slew the Ammonites until the heat of the day: and it came -to pass, that they which remained were scattered, so that two of them -were not left together. - -11:12 And the people said unto Samuel, Who is he that said, Shall Saul -reign over us? bring the men, that we may put them to death. - -11:13 And Saul said, There shall not a man be put to death this day: -for to day the LORD hath wrought salvation in Israel. - -11:14 Then said Samuel to the people, Come, and let us go to Gilgal, -and renew the kingdom there. - -11:15 And all the people went to Gilgal; and there they made Saul king -before the LORD in Gilgal; and there they sacrificed sacrifices of -peace offerings before the LORD; and there Saul and all the men of -Israel rejoiced greatly. - -12:1 And Samuel said unto all Israel, Behold, I have hearkened unto -your voice in all that ye said unto me, and have made a king over you. - -12:2 And now, behold, the king walketh before you: and I am old and -grayheaded; and, behold, my sons are with you: and I have walked -before you from my childhood unto this day. - -12:3 Behold, here I am: witness against me before the LORD, and before -his anointed: whose ox have I taken? or whose ass have I taken? or -whom have I defrauded? whom have I oppressed? or of whose hand have I -received any bribe to blind mine eyes therewith? and I will restore it -you. - -12:4 And they said, Thou hast not defrauded us, nor oppressed us, -neither hast thou taken ought of any man's hand. - -12:5 And he said unto them, The LORD is witness against you, and his -anointed is witness this day, that ye have not found ought in my hand. -And they answered, He is witness. - -12:6 And Samuel said unto the people, It is the LORD that advanced -Moses and Aaron, and that brought your fathers up out of the land of -Egypt. - -12:7 Now therefore stand still, that I may reason with you before the -LORD of all the righteous acts of the LORD, which he did to you and to -your fathers. - -12:8 When Jacob was come into Egypt, and your fathers cried unto the -LORD, then the LORD sent Moses and Aaron, which brought forth your -fathers out of Egypt, and made them dwell in this place. - -12:9 And when they forgat the LORD their God, he sold them into the -hand of Sisera, captain of the host of Hazor, and into the hand of the -Philistines, and into the hand of the king of Moab, and they fought -against them. - -12:10 And they cried unto the LORD, and said, We have sinned, because -we have forsaken the LORD, and have served Baalim and Ashtaroth: but -now deliver us out of the hand of our enemies, and we will serve thee. - -12:11 And the LORD sent Jerubbaal, and Bedan, and Jephthah, and -Samuel, and delivered you out of the hand of your enemies on every -side, and ye dwelled safe. - -12:12 And when ye saw that Nahash the king of the children of Ammon -came against you, ye said unto me, Nay; but a king shall reign over -us: when the LORD your God was your king. - -12:13 Now therefore behold the king whom ye have chosen, and whom ye -have desired! and, behold, the LORD hath set a king over you. - -12:14 If ye will fear the LORD, and serve him, and obey his voice, and -not rebel against the commandment of the LORD, then shall both ye and -also the king that reigneth over you continue following the LORD your -God: 12:15 But if ye will not obey the voice of the LORD, but rebel -against the commandment of the LORD, then shall the hand of the LORD -be against you, as it was against your fathers. - -12:16 Now therefore stand and see this great thing, which the LORD -will do before your eyes. - -12:17 Is it not wheat harvest to day? I will call unto the LORD, and -he shall send thunder and rain; that ye may perceive and see that your -wickedness is great, which ye have done in the sight of the LORD, in -asking you a king. - -12:18 So Samuel called unto the LORD; and the LORD sent thunder and -rain that day: and all the people greatly feared the LORD and Samuel. - -12:19 And all the people said unto Samuel, Pray for thy servants unto -the LORD thy God, that we die not: for we have added unto all our sins -this evil, to ask us a king. - -12:20 And Samuel said unto the people, Fear not: ye have done all this -wickedness: yet turn not aside from following the LORD, but serve the -LORD with all your heart; 12:21 And turn ye not aside: for then should -ye go after vain things, which cannot profit nor deliver; for they are -vain. - -12:22 For the LORD will not forsake his people for his great name's -sake: because it hath pleased the LORD to make you his people. - -12:23 Moreover as for me, God forbid that I should sin against the -LORD in ceasing to pray for you: but I will teach you the good and the -right way: 12:24 Only fear the LORD, and serve him in truth with all -your heart: for consider how great things he hath done for you. - -12:25 But if ye shall still do wickedly, ye shall be consumed, both ye -and your king. - -13:1 Saul reigned one year; and when he had reigned two years over -Israel, 13:2 Saul chose him three thousand men of Israel; whereof two -thousand were with Saul in Michmash and in mount Bethel, and a -thousand were with Jonathan in Gibeah of Benjamin: and the rest of the -people he sent every man to his tent. - -13:3 And Jonathan smote the garrison of the Philistines that was in -Geba, and the Philistines heard of it. And Saul blew the trumpet -throughout all the land, saying, Let the Hebrews hear. - -13:4 And all Israel heard say that Saul had smitten a garrison of the -Philistines, and that Israel also was had in abomination with the -Philistines. And the people were called together after Saul to Gilgal. - -13:5 And the Philistines gathered themselves together to fight with -Israel, thirty thousand chariots, and six thousand horsemen, and -people as the sand which is on the sea shore in multitude: and they -came up, and pitched in Michmash, eastward from Bethaven. - -13:6 When the men of Israel saw that they were in a strait, (for the -people were distressed,) then the people did hide themselves in caves, -and in thickets, and in rocks, and in high places, and in pits. - -13:7 And some of the Hebrews went over Jordan to the land of Gad and -Gilead. As for Saul, he was yet in Gilgal, and all the people followed -him trembling. - -13:8 And he tarried seven days, according to the set time that Samuel -had appointed: but Samuel came not to Gilgal; and the people were -scattered from him. - -13:9 And Saul said, Bring hither a burnt offering to me, and peace -offerings. And he offered the burnt offering. - -13:10 And it came to pass, that as soon as he had made an end of -offering the burnt offering, behold, Samuel came; and Saul went out to -meet him, that he might salute him. - -13:11 And Samuel said, What hast thou done? And Saul said, Because I -saw that the people were scattered from me, and that thou camest not -within the days appointed, and that the Philistines gathered -themselves together at Michmash; 13:12 Therefore said I, The -Philistines will come down now upon me to Gilgal, and I have not made -supplication unto the LORD: I forced myself therefore, and offered a -burnt offering. - -13:13 And Samuel said to Saul, Thou hast done foolishly: thou hast not -kept the commandment of the LORD thy God, which he commanded thee: for -now would the LORD have established thy kingdom upon Israel for ever. - -13:14 But now thy kingdom shall not continue: the LORD hath sought him -a man after his own heart, and the LORD hath commanded him to be -captain over his people, because thou hast not kept that which the -LORD commanded thee. - -13:15 And Samuel arose, and gat him up from Gilgal unto Gibeah of -Benjamin. And Saul numbered the people that were present with him, -about six hundred men. - -13:16 And Saul, and Jonathan his son, and the people that were present -with them, abode in Gibeah of Benjamin: but the Philistines encamped -in Michmash. - -13:17 And the spoilers came out of the camp of the Philistines in -three companies: one company turned unto the way that leadeth to -Ophrah, unto the land of Shual: 13:18 And another company turned the -way to Bethhoron: and another company turned to the way of the border -that looketh to the valley of Zeboim toward the wilderness. - -13:19 Now there was no smith found throughout all the land of Israel: -for the Philistines said, Lest the Hebrews make them swords or spears: -13:20 But all the Israelites went down to the Philistines, to sharpen -every man his share, and his coulter, and his axe, and his mattock. - -13:21 Yet they had a file for the mattocks, and for the coulters, and -for the forks, and for the axes, and to sharpen the goads. - -13:22 So it came to pass in the day of battle, that there was neither -sword nor spear found in the hand of any of the people that were with -Saul and Jonathan: but with Saul and with Jonathan his son was there -found. - -13:23 And the garrison of the Philistines went out to the passage of -Michmash. - -14:1 Now it came to pass upon a day, that Jonathan the son of Saul -said unto the young man that bare his armour, Come, and let us go over -to the Philistines' garrison, that is on the other side. But he told -not his father. - -14:2 And Saul tarried in the uttermost part of Gibeah under a -pomegranate tree which is in Migron: and the people that were with him -were about six hundred men; 14:3 And Ahiah, the son of Ahitub, -Ichabod's brother, the son of Phinehas, the son of Eli, the LORD's -priest in Shiloh, wearing an ephod. And the people knew not that -Jonathan was gone. - -14:4 And between the passages, by which Jonathan sought to go over -unto the Philistines' garrison, there was a sharp rock on the one -side, and a sharp rock on the other side: and the name of the one was -Bozez, and the name of the other Seneh. - -14:5 The forefront of the one was situate northward over against -Michmash, and the other southward over against Gibeah. - -14:6 And Jonathan said to the young man that bare his armour, Come, -and let us go over unto the garrison of these uncircumcised: it may be -that the LORD will work for us: for there is no restraint to the LORD -to save by many or by few. - -14:7 And his armourbearer said unto him, Do all that is in thine -heart: turn thee; behold, I am with thee according to thy heart. - -14:8 Then said Jonathan, Behold, we will pass over unto these men, and -we will discover ourselves unto them. - -14:9 If they say thus unto us, Tarry until we come to you; then we -will stand still in our place, and will not go up unto them. - -14:10 But if they say thus, Come up unto us; then we will go up: for -the LORD hath delivered them into our hand: and this shall be a sign -unto us. - -14:11 And both of them discovered themselves unto the garrison of the -Philistines: and the Philistines said, Behold, the Hebrews come forth -out of the holes where they had hid themselves. - -14:12 And the men of the garrison answered Jonathan and his -armourbearer, and said, Come up to us, and we will shew you a thing. -And Jonathan said unto his armourbearer, Come up after me: for the -LORD hath delivered them into the hand of Israel. - -14:13 And Jonathan climbed up upon his hands and upon his feet, and -his armourbearer after him: and they fell before Jonathan; and his -armourbearer slew after him. - -14:14 And that first slaughter, which Jonathan and his armourbearer -made, was about twenty men, within as it were an half acre of land, -which a yoke of oxen might plow. - -14:15 And there was trembling in the host, in the field, and among all -the people: the garrison, and the spoilers, they also trembled, and -the earth quaked: so it was a very great trembling. - -14:16 And the watchmen of Saul in Gibeah of Benjamin looked; and, -behold, the multitude melted away, and they went on beating down one -another. - -14:17 Then said Saul unto the people that were with him, Number now, -and see who is gone from us. And when they had numbered, behold, -Jonathan and his armourbearer were not there. - -14:18 And Saul said unto Ahiah, Bring hither the ark of God. For the -ark of God was at that time with the children of Israel. - -14:19 And it came to pass, while Saul talked unto the priest, that the -noise that was in the host of the Philistines went on and increased: -and Saul said unto the priest, Withdraw thine hand. - -14:20 And Saul and all the people that were with him assembled -themselves, and they came to the battle: and, behold, every man's -sword was against his fellow, and there was a very great discomfiture. - -14:21 Moreover the Hebrews that were with the Philistines before that -time, which went up with them into the camp from the country round -about, even they also turned to be with the Israelites that were with -Saul and Jonathan. - -14:22 Likewise all the men of Israel which had hid themselves in mount -Ephraim, when they heard that the Philistines fled, even they also -followed hard after them in the battle. - -14:23 So the LORD saved Israel that day: and the battle passed over -unto Bethaven. - -14:24 And the men of Israel were distressed that day: for Saul had -adjured the people, saying, Cursed be the man that eateth any food -until evening, that I may be avenged on mine enemies. So none of the -people tasted any food. - -14:25 And all they of the land came to a wood; and there was honey -upon the ground. - -14:26 And when the people were come into the wood, behold, the honey -dropped; but no man put his hand to his mouth: for the people feared -the oath. - -14:27 But Jonathan heard not when his father charged the people with -the oath: wherefore he put forth the end of the rod that was in his -hand, and dipped it in an honeycomb, and put his hand to his mouth; -and his eyes were enlightened. - -14:28 Then answered one of the people, and said, Thy father straitly -charged the people with an oath, saying, Cursed be the man that eateth -any food this day. And the people were faint. - -14:29 Then said Jonathan, My father hath troubled the land: see, I -pray you, how mine eyes have been enlightened, because I tasted a -little of this honey. - -14:30 How much more, if haply the people had eaten freely to day of -the spoil of their enemies which they found? for had there not been -now a much greater slaughter among the Philistines? 14:31 And they -smote the Philistines that day from Michmash to Aijalon: and the -people were very faint. - -14:32 And the people flew upon the spoil, and took sheep, and oxen, -and calves, and slew them on the ground: and the people did eat them -with the blood. - -14:33 Then they told Saul, saying, Behold, the people sin against the -LORD, in that they eat with the blood. And he said, Ye have -transgressed: roll a great stone unto me this day. - -14:34 And Saul said, Disperse yourselves among the people, and say -unto them, Bring me hither every man his ox, and every man his sheep, -and slay them here, and eat; and sin not against the LORD in eating -with the blood. - -And all the people brought every man his ox with him that night, and -slew them there. - -14:35 And Saul built an altar unto the LORD: the same was the first -altar that he built unto the LORD. - -14:36 And Saul said, Let us go down after the Philistines by night, -and spoil them until the morning light, and let us not leave a man of -them. And they said, Do whatsoever seemeth good unto thee. Then said -the priest, Let us draw near hither unto God. - -14:37 And Saul asked counsel of God, Shall I go down after the -Philistines? wilt thou deliver them into the hand of Israel? But he -answered him not that day. - -14:38 And Saul said, Draw ye near hither, all the chief of the people: -and know and see wherein this sin hath been this day. - -14:39 For, as the LORD liveth, which saveth Israel, though it be in -Jonathan my son, he shall surely die. But there was not a man among -all the people that answered him. - -14:40 Then said he unto all Israel, Be ye on one side, and I and -Jonathan my son will be on the other side. And the people said unto -Saul, Do what seemeth good unto thee. - -14:41 Therefore Saul said unto the LORD God of Israel, Give a perfect -lot. - -And Saul and Jonathan were taken: but the people escaped. - -14:42 And Saul said, Cast lots between me and Jonathan my son. And -Jonathan was taken. - -14:43 Then Saul said to Jonathan, Tell me what thou hast done. And -Jonathan told him, and said, I did but taste a little honey with the -end of the rod that was in mine hand, and, lo, I must die. - -14:44 And Saul answered, God do so and more also: for thou shalt -surely die, Jonathan. - -14:45 And the people said unto Saul, Shall Jonathan die, who hath -wrought this great salvation in Israel? God forbid: as the LORD -liveth, there shall not one hair of his head fall to the ground; for -he hath wrought with God this day. So the people rescued Jonathan, -that he died not. - -14:46 Then Saul went up from following the Philistines: and the -Philistines went to their own place. - -14:47 So Saul took the kingdom over Israel, and fought against all his -enemies on every side, against Moab, and against the children of -Ammon, and against Edom, and against the kings of Zobah, and against -the Philistines: and whithersoever he turned himself, he vexed them. - -14:48 And he gathered an host, and smote the Amalekites, and delivered -Israel out of the hands of them that spoiled them. - -14:49 Now the sons of Saul were Jonathan, and Ishui, and Melchishua: -and the names of his two daughters were these; the name of the -firstborn Merab, and the name of the younger Michal: 14:50 And the -name of Saul's wife was Ahinoam, the daughter of Ahimaaz: and the name -of the captain of his host was Abner, the son of Ner, Saul's uncle. - -14:51 And Kish was the father of Saul; and Ner the father of Abner was -the son of Abiel. - -14:52 And there was sore war against the Philistines all the days of -Saul: and when Saul saw any strong man, or any valiant man, he took -him unto him. - -15:1 Samuel also said unto Saul, The LORD sent me to anoint thee to be -king over his people, over Israel: now therefore hearken thou unto the -voice of the words of the LORD. - -15:2 Thus saith the LORD of hosts, I remember that which Amalek did to -Israel, how he laid wait for him in the way, when he came up from -Egypt. - -15:3 Now go and smite Amalek, and utterly destroy all that they have, -and spare them not; but slay both man and woman, infant and suckling, -ox and sheep, camel and ass. - -15:4 And Saul gathered the people together, and numbered them in -Telaim, two hundred thousand footmen, and ten thousand men of Judah. - -15:5 And Saul came to a city of Amalek, and laid wait in the valley. - -15:6 And Saul said unto the Kenites, Go, depart, get you down from -among the Amalekites, lest I destroy you with them: for ye shewed -kindness to all the children of Israel, when they came up out of -Egypt. So the Kenites departed from among the Amalekites. - -15:7 And Saul smote the Amalekites from Havilah until thou comest to -Shur, that is over against Egypt. - -15:8 And he took Agag the king of the Amalekites alive, and utterly -destroyed all the people with the edge of the sword. - -15:9 But Saul and the people spared Agag, and the best of the sheep, -and of the oxen, and of the fatlings, and the lambs, and all that was -good, and would not utterly destroy them: but every thing that was -vile and refuse, that they destroyed utterly. - -15:10 Then came the word of the LORD unto Samuel, saying, 15:11 It -repenteth me that I have set up Saul to be king: for he is turned back -from following me, and hath not performed my commandments. And it -grieved Samuel; and he cried unto the LORD all night. - -15:12 And when Samuel rose early to meet Saul in the morning, it was -told Samuel, saying, Saul came to Carmel, and, behold, he set him up a -place, and is gone about, and passed on, and gone down to Gilgal. - -15:13 And Samuel came to Saul: and Saul said unto him, Blessed be thou -of the LORD: I have performed the commandment of the LORD. - -15:14 And Samuel said, What meaneth then this bleating of the sheep in -mine ears, and the lowing of the oxen which I hear? 15:15 And Saul -said, They have brought them from the Amalekites: for the people -spared the best of the sheep and of the oxen, to sacrifice unto the -LORD thy God; and the rest we have utterly destroyed. - -15:16 Then Samuel said unto Saul, Stay, and I will tell thee what the -LORD hath said to me this night. And he said unto him, Say on. - -15:17 And Samuel said, When thou wast little in thine own sight, wast -thou not made the head of the tribes of Israel, and the LORD anointed -thee king over Israel? 15:18 And the LORD sent thee on a journey, and -said, Go and utterly destroy the sinners the Amalekites, and fight -against them until they be consumed. - -15:19 Wherefore then didst thou not obey the voice of the LORD, but -didst fly upon the spoil, and didst evil in the sight of the LORD? -15:20 And Saul said unto Samuel, Yea, I have obeyed the voice of the -LORD, and have gone the way which the LORD sent me, and have brought -Agag the king of Amalek, and have utterly destroyed the Amalekites. - -15:21 But the people took of the spoil, sheep and oxen, the chief of -the things which should have been utterly destroyed, to sacrifice unto -the LORD thy God in Gilgal. - -15:22 And Samuel said, Hath the LORD as great delight in burnt -offerings and sacrifices, as in obeying the voice of the LORD? Behold, -to obey is better than sacrifice, and to hearken than the fat of rams. - -15:23 For rebellion is as the sin of witchcraft, and stubbornness is -as iniquity and idolatry. Because thou hast rejected the word of the -LORD, he hath also rejected thee from being king. - -15:24 And Saul said unto Samuel, I have sinned: for I have -transgressed the commandment of the LORD, and thy words: because I -feared the people, and obeyed their voice. - -15:25 Now therefore, I pray thee, pardon my sin, and turn again with -me, that I may worship the LORD. - -15:26 And Samuel said unto Saul, I will not return with thee: for thou -hast rejected the word of the LORD, and the LORD hath rejected thee -from being king over Israel. - -15:27 And as Samuel turned about to go away, he laid hold upon the -skirt of his mantle, and it rent. - -15:28 And Samuel said unto him, The LORD hath rent the kingdom of -Israel from thee this day, and hath given it to a neighbour of thine, -that is better than thou. - -15:29 And also the Strength of Israel will not lie nor repent: for he -is not a man, that he should repent. - -15:30 Then he said, I have sinned: yet honour me now, I pray thee, -before the elders of my people, and before Israel, and turn again with -me, that I may worship the LORD thy God. - -15:31 So Samuel turned again after Saul; and Saul worshipped the LORD. - -15:32 Then said Samuel, Bring ye hither to me Agag the king of the -Amalekites. And Agag came unto him delicately. And Agag said, Surely -the bitterness of death is past. - -15:33 And Samuel said, As the sword hath made women childless, so -shall thy mother be childless among women. And Samuel hewed Agag in -pieces before the LORD in Gilgal. - -15:34 Then Samuel went to Ramah; and Saul went up to his house to -Gibeah of Saul. - -15:35 And Samuel came no more to see Saul until the day of his death: -nevertheless Samuel mourned for Saul: and the LORD repented that he -had made Saul king over Israel. - -16:1 And the LORD said unto Samuel, How long wilt thou mourn for Saul, -seeing I have rejected him from reigning over Israel? fill thine horn -with oil, and go, I will send thee to Jesse the Bethlehemite: for I -have provided me a king among his sons. - -16:2 And Samuel said, How can I go? if Saul hear it, he will kill me. -And the LORD said, Take an heifer with thee, and say, I am come to -sacrifice to the LORD. - -16:3 And call Jesse to the sacrifice, and I will shew thee what thou -shalt do: and thou shalt anoint unto me him whom I name unto thee. - -16:4 And Samuel did that which the LORD spake, and came to Bethlehem. -And the elders of the town trembled at his coming, and said, Comest -thou peaceably? 16:5 And he said, Peaceably: I am come to sacrifice -unto the LORD: sanctify yourselves, and come with me to the sacrifice. -And he sanctified Jesse and his sons, and called them to the -sacrifice. - -16:6 And it came to pass, when they were come, that he looked on -Eliab, and said, Surely the LORD's anointed is before him. - -16:7 But the LORD said unto Samuel, Look not on his countenance, or on -the height of his stature; because I have refused him: for the LORD -seeth not as man seeth; for man looketh on the outward appearance, but -the LORD looketh on the heart. - -16:8 Then Jesse called Abinadab, and made him pass before Samuel. And -he said, Neither hath the LORD chosen this. - -16:9 Then Jesse made Shammah to pass by. And he said, Neither hath the -LORD chosen this. - -16:10 Again, Jesse made seven of his sons to pass before Samuel. And -Samuel said unto Jesse, The LORD hath not chosen these. - -16:11 And Samuel said unto Jesse, Are here all thy children? And he -said, There remaineth yet the youngest, and, behold, he keepeth the -sheep. And Samuel said unto Jesse, Send and fetch him: for we will not -sit down till he come hither. - -16:12 And he sent, and brought him in. Now he was ruddy, and withal of -a beautiful countenance, and goodly to look to. And the LORD said, -Arise, anoint him: for this is he. - -16:13 Then Samuel took the horn of oil, and anointed him in the midst -of his brethren: and the Spirit of the LORD came upon David from that -day forward. So Samuel rose up, and went to Ramah. - -16:14 But the Spirit of the LORD departed from Saul, and an evil -spirit from the LORD troubled him. - -16:15 And Saul's servants said unto him, Behold now, an evil spirit -from God troubleth thee. - -16:16 Let our lord now command thy servants, which are before thee, to -seek out a man, who is a cunning player on an harp: and it shall come -to pass, when the evil spirit from God is upon thee, that he shall -play with his hand, and thou shalt be well. - -16:17 And Saul said unto his servants, Provide me now a man that can -play well, and bring him to me. - -16:18 Then answered one of the servants, and said, Behold, I have seen -a son of Jesse the Bethlehemite, that is cunning in playing, and a -mighty valiant man, and a man of war, and prudent in matters, and a -comely person, and the LORD is with him. - -16:19 Wherefore Saul sent messengers unto Jesse, and said, Send me -David thy son, which is with the sheep. - -16:20 And Jesse took an ass laden with bread, and a bottle of wine, -and a kid, and sent them by David his son unto Saul. - -16:21 And David came to Saul, and stood before him: and he loved him -greatly; and he became his armourbearer. - -16:22 And Saul sent to Jesse, saying, Let David, I pray thee, stand -before me; for he hath found favour in my sight. - -16:23 And it came to pass, when the evil spirit from God was upon -Saul, that David took an harp, and played with his hand: so Saul was -refreshed, and was well, and the evil spirit departed from him. - -17:1 Now the Philistines gathered together their armies to battle, and -were gathered together at Shochoh, which belongeth to Judah, and -pitched between Shochoh and Azekah, in Ephesdammim. - -17:2 And Saul and the men of Israel were gathered together, and -pitched by the valley of Elah, and set the battle in array against the -Philistines. - -17:3 And the Philistines stood on a mountain on the one side, and -Israel stood on a mountain on the other side: and there was a valley -between them. - -17:4 And there went out a champion out of the camp of the Philistines, -named Goliath, of Gath, whose height was six cubits and a span. - -17:5 And he had an helmet of brass upon his head, and he was armed -with a coat of mail; and the weight of the coat was five thousand -shekels of brass. - -17:6 And he had greaves of brass upon his legs, and a target of brass -between his shoulders. - -17:7 And the staff of his spear was like a weaver's beam; and his -spear's head weighed six hundred shekels of iron: and one bearing a -shield went before him. - -17:8 And he stood and cried unto the armies of Israel, and said unto -them, Why are ye come out to set your battle in array? am not I a -Philistine, and ye servants to Saul? choose you a man for you, and let -him come down to me. - -17:9 If he be able to fight with me, and to kill me, then will we be -your servants: but if I prevail against him, and kill him, then shall -ye be our servants, and serve us. - -17:10 And the Philistine said, I defy the armies of Israel this day; -give me a man, that we may fight together. - -17:11 When Saul and all Israel heard those words of the Philistine, -they were dismayed, and greatly afraid. - -17:12 Now David was the son of that Ephrathite of Bethlehemjudah, -whose name was Jesse; and he had eight sons: and the man went among -men for an old man in the days of Saul. - -17:13 And the three eldest sons of Jesse went and followed Saul to the -battle: and the names of his three sons that went to the battle were -Eliab the firstborn, and next unto him Abinadab, and the third -Shammah. - -17:14 And David was the youngest: and the three eldest followed Saul. - -17:15 But David went and returned from Saul to feed his father's sheep -at Bethlehem. - -17:16 And the Philistine drew near morning and evening, and presented -himself forty days. - -17:17 And Jesse said unto David his son, Take now for thy brethren an -ephah of this parched corn, and these ten loaves, and run to the camp -of thy brethren; 17:18 And carry these ten cheeses unto the captain of -their thousand, and look how thy brethren fare, and take their pledge. - -17:19 Now Saul, and they, and all the men of Israel, were in the -valley of Elah, fighting with the Philistines. - -17:20 And David rose up early in the morning, and left the sheep with -a keeper, and took, and went, as Jesse had commanded him; and he came -to the trench, as the host was going forth to the fight, and shouted -for the battle. - -17:21 For Israel and the Philistines had put the battle in array, army -against army. - -17:22 And David left his carriage in the hand of the keeper of the -carriage, and ran into the army, and came and saluted his brethren. - -17:23 And as he talked with them, behold, there came up the champion, -the Philistine of Gath, Goliath by name, out of the armies of the -Philistines, and spake according to the same words: and David heard -them. - -17:24 And all the men of Israel, when they saw the man, fled from him, -and were sore afraid. - -17:25 And the men of Israel said, Have ye seen this man that is come -up? surely to defy Israel is he come up: and it shall be, that the -man who killeth him, the king will enrich him with great riches, and -will give him his daughter, and make his father's house free in -Israel. - -17:26 And David spake to the men that stood by him, saying, What shall -be done to the man that killeth this Philistine, and taketh away the -reproach from Israel? for who is this uncircumcised Philistine, that -he should defy the armies of the living God? 17:27 And the people -answered him after this manner, saying, So shall it be done to the man -that killeth him. - -17:28 And Eliab his eldest brother heard when he spake unto the men; -and Eliab's anger was kindled against David, and he said, Why camest -thou down hither? and with whom hast thou left those few sheep in the -wilderness? I know thy pride, and the naughtiness of thine heart; for -thou art come down that thou mightest see the battle. - -17:29 And David said, What have I now done? Is there not a cause? -17:30 And he turned from him toward another, and spake after the same -manner: and the people answered him again after the former manner. - -17:31 And when the words were heard which David spake, they rehearsed -them before Saul: and he sent for him. - -17:32 And David said to Saul, Let no man's heart fail because of him; -thy servant will go and fight with this Philistine. - -17:33 And Saul said to David, Thou art not able to go against this -Philistine to fight with him: for thou art but a youth, and he a man -of war from his youth. - -17:34 And David said unto Saul, Thy servant kept his father's sheep, -and there came a lion, and a bear, and took a lamb out of the flock: -17:35 And I went out after him, and smote him, and delivered it out of -his mouth: and when he arose against me, I caught him by his beard, -and smote him, and slew him. - -17:36 Thy servant slew both the lion and the bear: and this -uncircumcised Philistine shall be as one of them, seeing he hath -defied the armies of the living God. - -17:37 David said moreover, The LORD that delivered me out of the paw -of the lion, and out of the paw of the bear, he will deliver me out of -the hand of this Philistine. And Saul said unto David, Go, and the -LORD be with thee. - -17:38 And Saul armed David with his armour, and he put an helmet of -brass upon his head; also he armed him with a coat of mail. - -17:39 And David girded his sword upon his armour, and he assayed to -go; for he had not proved it. And David said unto Saul, I cannot go -with these; for I have not proved them. And David put them off him. - -17:40 And he took his staff in his hand, and chose him five smooth -stones out of the brook, and put them in a shepherd's bag which he -had, even in a scrip; and his sling was in his hand: and he drew near -to the Philistine. - -17:41 And the Philistine came on and drew near unto David; and the man -that bare the shield went before him. - -17:42 And when the Philistine looked about, and saw David, he -disdained him: for he was but a youth, and ruddy, and of a fair -countenance. - -17:43 And the Philistine said unto David, Am I a dog, that thou comest -to me with staves? And the Philistine cursed David by his gods. - -17:44 And the Philistine said to David, Come to me, and I will give -thy flesh unto the fowls of the air, and to the beasts of the field. - -17:45 Then said David to the Philistine, Thou comest to me with a -sword, and with a spear, and with a shield: but I come to thee in the -name of the LORD of hosts, the God of the armies of Israel, whom thou -hast defied. - -17:46 This day will the LORD deliver thee into mine hand; and I will -smite thee, and take thine head from thee; and I will give the -carcases of the host of the Philistines this day unto the fowls of the -air, and to the wild beasts of the earth; that all the earth may know -that there is a God in Israel. - -17:47 And all this assembly shall know that the LORD saveth not with -sword and spear: for the battle is the LORD's, and he will give you -into our hands. - -17:48 And it came to pass, when the Philistine arose, and came, and -drew nigh to meet David, that David hastened, and ran toward the army -to meet the Philistine. - -17:49 And David put his hand in his bag, and took thence a stone, and -slang it, and smote the Philistine in his forehead, that the stone -sunk into his forehead; and he fell upon his face to the earth. - -17:50 So David prevailed over the Philistine with a sling and with a -stone, and smote the Philistine, and slew him; but there was no sword -in the hand of David. - -17:51 Therefore David ran, and stood upon the Philistine, and took his -sword, and drew it out of the sheath thereof, and slew him, and cut -off his head therewith. And when the Philistines saw their champion -was dead, they fled. - -17:52 And the men of Israel and of Judah arose, and shouted, and -pursued the Philistines, until thou come to the valley, and to the -gates of Ekron. - -And the wounded of the Philistines fell down by the way to Shaaraim, -even unto Gath, and unto Ekron. - -17:53 And the children of Israel returned from chasing after the -Philistines, and they spoiled their tents. - -17:54 And David took the head of the Philistine, and brought it to -Jerusalem; but he put his armour in his tent. - -17:55 And when Saul saw David go forth against the Philistine, he said -unto Abner, the captain of the host, Abner, whose son is this youth? -And Abner said, As thy soul liveth, O king, I cannot tell. - -17:56 And the king said, Enquire thou whose son the stripling is. - -17:57 And as David returned from the slaughter of the Philistine, -Abner took him, and brought him before Saul with the head of the -Philistine in his hand. - -17:58 And Saul said to him, Whose son art thou, thou young man? And -David answered, I am the son of thy servant Jesse the Bethlehemite. - -18:1 And it came to pass, when he had made an end of speaking unto -Saul, that the soul of Jonathan was knit with the soul of David, and -Jonathan loved him as his own soul. - -18:2 And Saul took him that day, and would let him go no more home to -his father's house. - -18:3 Then Jonathan and David made a covenant, because he loved him as -his own soul. - -18:4 And Jonathan stripped himself of the robe that was upon him, and -gave it to David, and his garments, even to his sword, and to his bow, -and to his girdle. - -18:5 And David went out whithersoever Saul sent him, and behaved -himself wisely: and Saul set him over the men of war, and he was -accepted in the sight of all the people, and also in the sight of -Saul's servants. - -18:6 And it came to pass as they came, when David was returned from -the slaughter of the Philistine, that the women came out of all cities -of Israel, singing and dancing, to meet king Saul, with tabrets, with -joy, and with instruments of musick. - -18:7 And the women answered one another as they played, and said, Saul -hath slain his thousands, and David his ten thousands. - -18:8 And Saul was very wroth, and the saying displeased him; and he -said, They have ascribed unto David ten thousands, and to me they have -ascribed but thousands: and what can he have more but the kingdom? -18:9 And Saul eyed David from that day and forward. - -18:10 And it came to pass on the morrow, that the evil spirit from God -came upon Saul, and he prophesied in the midst of the house: and David -played with his hand, as at other times: and there was a javelin in -Saul's hand. - -18:11 And Saul cast the javelin; for he said, I will smite David even -to the wall with it. And David avoided out of his presence twice. - -18:12 And Saul was afraid of David, because the LORD was with him, and -was departed from Saul. - -18:13 Therefore Saul removed him from him, and made him his captain -over a thousand; and he went out and came in before the people. - -18:14 And David behaved himself wisely in all his ways; and the LORD -was with him. - -18:15 Wherefore when Saul saw that he behaved himself very wisely, he -was afraid of him. - -18:16 But all Israel and Judah loved David, because he went out and -came in before them. - -18:17 And Saul said to David, Behold my elder daughter Merab, her will -I give thee to wife: only be thou valiant for me, and fight the LORD's -battles. - -For Saul said, Let not mine hand be upon him, but let the hand of the -Philistines be upon him. - -18:18 And David said unto Saul, Who am I? and what is my life, or my -father's family in Israel, that I should be son in law to the king? -18:19 But it came to pass at the time when Merab Saul's daughter -should have been given to David, that she was given unto Adriel the -Meholathite to wife. - -18:20 And Michal Saul's daughter loved David: and they told Saul, and -the thing pleased him. - -18:21 And Saul said, I will give him her, that she may be a snare to -him, and that the hand of the Philistines may be against him. -Wherefore Saul said to David, Thou shalt this day be my son in law in -the one of the twain. - -18:22 And Saul commanded his servants, saying, Commune with David -secretly, and say, Behold, the king hath delight in thee, and all his -servants love thee: now therefore be the king's son in law. - -18:23 And Saul's servants spake those words in the ears of David. And -David said, Seemeth it to you a light thing to be a king's son in law, -seeing that I am a poor man, and lightly esteemed? 18:24 And the -servants of Saul told him, saying, On this manner spake David. - -18:25 And Saul said, Thus shall ye say to David, The king desireth not -any dowry, but an hundred foreskins of the Philistines, to be avenged -of the king's enemies. But Saul thought to make David fall by the hand -of the Philistines. - -18:26 And when his servants told David these words, it pleased David -well to be the king's son in law: and the days were not expired. - -18:27 Wherefore David arose and went, he and his men, and slew of the -Philistines two hundred men; and David brought their foreskins, and -they gave them in full tale to the king, that he might be the king's -son in law. And Saul gave him Michal his daughter to wife. - -18:28 And Saul saw and knew that the LORD was with David, and that -Michal Saul's daughter loved him. - -18:29 And Saul was yet the more afraid of David; and Saul became -David's enemy continually. - -18:30 Then the princes of the Philistines went forth: and it came to -pass, after they went forth, that David behaved himself more wisely -than all the servants of Saul; so that his name was much set by. - -19:1 And Saul spake to Jonathan his son, and to all his servants, that -they should kill David. - -19:2 But Jonathan Saul's son delighted much in David: and Jonathan -told David, saying, Saul my father seeketh to kill thee: now -therefore, I pray thee, take heed to thyself until the morning, and -abide in a secret place, and hide thyself: 19:3 And I will go out and -stand beside my father in the field where thou art, and I will commune -with my father of thee; and what I see, that I will tell thee. - -19:4 And Jonathan spake good of David unto Saul his father, and said -unto him, Let not the king sin against his servant, against David; -because he hath not sinned against thee, and because his works have -been to thee-ward very good: 19:5 For he did put his life in his hand, -and slew the Philistine, and the LORD wrought a great salvation for -all Israel: thou sawest it, and didst rejoice: wherefore then wilt -thou sin against innocent blood, to slay David without a cause? 19:6 -And Saul hearkened unto the voice of Jonathan: and Saul sware, As the -LORD liveth, he shall not be slain. - -19:7 And Jonathan called David, and Jonathan shewed him all those -things. - -And Jonathan brought David to Saul, and he was in his presence, as in -times past. - -19:8 And there was war again: and David went out, and fought with the -Philistines, and slew them with a great slaughter; and they fled from -him. - -19:9 And the evil spirit from the LORD was upon Saul, as he sat in his -house with his javelin in his hand: and David played with his hand. - -19:10 And Saul sought to smite David even to the wall with the -javelin: but he slipped away out of Saul's presence, and he smote the -javelin into the wall: and David fled, and escaped that night. - -19:11 Saul also sent messengers unto David's house, to watch him, and -to slay him in the morning: and Michal David's wife told him, saying, -If thou save not thy life to night, to morrow thou shalt be slain. - -19:12 So Michal let David down through a window: and he went, and -fled, and escaped. - -19:13 And Michal took an image, and laid it in the bed, and put a -pillow of goats' hair for his bolster, and covered it with a cloth. - -19:14 And when Saul sent messengers to take David, she said, He is -sick. - -19:15 And Saul sent the messengers again to see David, saying, Bring -him up to me in the bed, that I may slay him. - -19:16 And when the messengers were come in, behold, there was an image -in the bed, with a pillow of goats' hair for his bolster. - -19:17 And Saul said unto Michal, Why hast thou deceived me so, and -sent away mine enemy, that he is escaped? And Michal answered Saul, He -said unto me, Let me go; why should I kill thee? 19:18 So David fled, -and escaped, and came to Samuel to Ramah, and told him all that Saul -had done to him. And he and Samuel went and dwelt in Naioth. - -19:19 And it was told Saul, saying, Behold, David is at Naioth in -Ramah. - -19:20 And Saul sent messengers to take David: and when they saw the -company of the prophets prophesying, and Samuel standing as appointed -over them, the Spirit of God was upon the messengers of Saul, and they -also prophesied. - -19:21 And when it was told Saul, he sent other messengers, and they -prophesied likewise. And Saul sent messengers again the third time, -and they prophesied also. - -19:22 Then went he also to Ramah, and came to a great well that is in -Sechu: and he asked and said, Where are Samuel and David? And one -said, Behold, they be at Naioth in Ramah. - -19:23 And he went thither to Naioth in Ramah: and the Spirit of God -was upon him also, and he went on, and prophesied, until he came to -Naioth in Ramah. - -19:24 And he stripped off his clothes also, and prophesied before -Samuel in like manner, and lay down naked all that day and all that -night. Wherefore they say, Is Saul also among the prophets? 20:1 And -David fled from Naioth in Ramah, and came and said before Jonathan, -What have I done? what is mine iniquity? and what is my sin before thy -father, that he seeketh my life? 20:2 And he said unto him, God -forbid; thou shalt not die: behold, my father will do nothing either -great or small, but that he will shew it me: and why should my father -hide this thing from me? it is not so. - -20:3 And David sware moreover, and said, Thy father certainly knoweth -that I have found grace in thine eyes; and he saith, Let not Jonathan -know this, lest he be grieved: but truly as the LORD liveth, and as -thy soul liveth, there is but a step between me and death. - -20:4 Then said Jonathan unto David, Whatsoever thy soul desireth, I -will even do it for thee. - -20:5 And David said unto Jonathan, Behold, to morrow is the new moon, -and I should not fail to sit with the king at meat: but let me go, -that I may hide myself in the field unto the third day at even. - -20:6 If thy father at all miss me, then say, David earnestly asked -leave of me that he might run to Bethlehem his city: for there is a -yearly sacrifice there for all the family. - -20:7 If he say thus, It is well; thy servant shall have peace: but if -he be very wroth, then be sure that evil is determined by him. - -20:8 Therefore thou shalt deal kindly with thy servant; for thou hast -brought thy servant into a covenant of the LORD with thee: -notwithstanding, if there be in me iniquity, slay me thyself; for why -shouldest thou bring me to thy father? 20:9 And Jonathan said, Far be -it from thee: for if I knew certainly that evil were determined by my -father to come upon thee, then would not I tell it thee? 20:10 Then -said David to Jonathan, Who shall tell me? or what if thy father -answer thee roughly? 20:11 And Jonathan said unto David, Come, and -let us go out into the field. And they went out both of them into the -field. - -20:12 And Jonathan said unto David, O LORD God of Israel, when I have -sounded my father about to morrow any time, or the third day, and, -behold, if there be good toward David, and I then send not unto thee, -and shew it thee; 20:13 The LORD do so and much more to Jonathan: but -if it please my father to do thee evil, then I will shew it thee, and -send thee away, that thou mayest go in peace: and the LORD be with -thee, as he hath been with my father. - -20:14 And thou shalt not only while yet I live shew me the kindness of -the LORD, that I die not: 20:15 But also thou shalt not cut off thy -kindness from my house for ever: no, not when the LORD hath cut off -the enemies of David every one from the face of the earth. - -20:16 So Jonathan made a covenant with the house of David, saying, Let -the LORD even require it at the hand of David's enemies. - -20:17 And Jonathan caused David to swear again, because he loved him: -for he loved him as he loved his own soul. - -20:18 Then Jonathan said to David, To morrow is the new moon: and thou -shalt be missed, because thy seat will be empty. - -20:19 And when thou hast stayed three days, then thou shalt go down -quickly, and come to the place where thou didst hide thyself when the -business was in hand, and shalt remain by the stone Ezel. - -20:20 And I will shoot three arrows on the side thereof, as though I -shot at a mark. - -20:21 And, behold, I will send a lad, saying, Go, find out the arrows. -If I expressly say unto the lad, Behold, the arrows are on this side -of thee, take them; then come thou: for there is peace to thee, and no -hurt; as the LORD liveth. - -20:22 But if I say thus unto the young man, Behold, the arrows are -beyond thee; go thy way: for the LORD hath sent thee away. - -20:23 And as touching the matter which thou and I have spoken of, -behold, the LORD be between thee and me for ever. - -20:24 So David hid himself in the field: and when the new moon was -come, the king sat him down to eat meat. - -20:25 And the king sat upon his seat, as at other times, even upon a -seat by the wall: and Jonathan arose, and Abner sat by Saul's side, -and David's place was empty. - -20:26 Nevertheless Saul spake not any thing that day: for he thought, -Something hath befallen him, he is not clean; surely he is not clean. - -20:27 And it came to pass on the morrow, which was the second day of -the month, that David's place was empty: and Saul said unto Jonathan -his son, Wherefore cometh not the son of Jesse to meat, neither -yesterday, nor to day? 20:28 And Jonathan answered Saul, David -earnestly asked leave of me to go to Bethlehem: 20:29 And he said, Let -me go, I pray thee; for our family hath a sacrifice in the city; and -my brother, he hath commanded me to be there: and now, if I have found -favour in thine eyes, let me get away, I pray thee, and see my -brethren. Therefore he cometh not unto the king's table. - -20:30 Then Saul's anger was kindled against Jonathan, and he said unto -him, Thou son of the perverse rebellious woman, do not I know that -thou hast chosen the son of Jesse to thine own confusion, and unto the -confusion of thy mother's nakedness? 20:31 For as long as the son of -Jesse liveth upon the ground, thou shalt not be established, nor thy -kingdom. Wherefore now send and fetch him unto me, for he shall surely -die. - -20:32 And Jonathan answered Saul his father, and said unto him, -Wherefore shall he be slain? what hath he done? 20:33 And Saul cast a -javelin at him to smite him: whereby Jonathan knew that it was -determined of his father to slay David. - -20:34 So Jonathan arose from the table in fierce anger, and did eat no -meat the second day of the month: for he was grieved for David, -because his father had done him shame. - -20:35 And it came to pass in the morning, that Jonathan went out into -the field at the time appointed with David, and a little lad with him. - -20:36 And he said unto his lad, Run, find out now the arrows which I -shoot. And as the lad ran, he shot an arrow beyond him. - -20:37 And when the lad was come to the place of the arrow which -Jonathan had shot, Jonathan cried after the lad, and said, Is not the -arrow beyond thee? 20:38 And Jonathan cried after the lad, Make -speed, haste, stay not. And Jonathan's lad gathered up the arrows, and -came to his master. - -20:39 But the lad knew not any thing: only Jonathan and David knew the -matter. - -20:40 And Jonathan gave his artillery unto his lad, and said unto him, -Go, carry them to the city. - -20:41 And as soon as the lad was gone, David arose out of a place -toward the south, and fell on his face to the ground, and bowed -himself three times: and they kissed one another, and wept one with -another, until David exceeded. - -20:42 And Jonathan said to David, Go in peace, forasmuch as we have -sworn both of us in the name of the LORD, saying, The LORD be between -me and thee, and between my seed and thy seed for ever. And he arose -and departed: and Jonathan went into the city. - -21:1 Then came David to Nob to Ahimelech the priest: and Ahimelech was -afraid at the meeting of David, and said unto him, Why art thou alone, -and no man with thee? 21:2 And David said unto Ahimelech the priest, -The king hath commanded me a business, and hath said unto me, Let no -man know any thing of the business whereabout I send thee, and what I -have commanded thee: and I have appointed my servants to such and such -a place. - -21:3 Now therefore what is under thine hand? give me five loaves of -bread in mine hand, or what there is present. - -21:4 And the priest answered David, and said, There is no common bread -under mine hand, but there is hallowed bread; if the young men have -kept themselves at least from women. - -21:5 And David answered the priest, and said unto him, Of a truth -women have been kept from us about these three days, since I came out, -and the vessels of the young men are holy, and the bread is in a -manner common, yea, though it were sanctified this day in the vessel. - -21:6 So the priest gave him hallowed bread: for there was no bread -there but the shewbread, that was taken from before the LORD, to put -hot bread in the day when it was taken away. - -21:7 Now a certain man of the servants of Saul was there that day, -detained before the LORD; and his name was Doeg, an Edomite, the -chiefest of the herdmen that belonged to Saul. - -21:8 And David said unto Ahimelech, And is there not here under thine -hand spear or sword? for I have neither brought my sword nor my -weapons with me, because the king's business required haste. - -21:9 And the priest said, The sword of Goliath the Philistine, whom -thou slewest in the valley of Elah, behold, it is here wrapped in a -cloth behind the ephod: if thou wilt take that, take it: for there is -no other save that here. And David said, There is none like that; give -it me. - -21:10 And David arose and fled that day for fear of Saul, and went to -Achish the king of Gath. - -21:11 And the servants of Achish said unto him, Is not this David the -king of the land? did they not sing one to another of him in dances, -saying, Saul hath slain his thousands, and David his ten thousands? -21:12 And David laid up these words in his heart, and was sore afraid -of Achish the king of Gath. - -21:13 And he changed his behaviour before them, and feigned himself -mad in their hands, and scrabbled on the doors of the gate, and let -his spittle fall down upon his beard. - -21:14 Then said Achish unto his servants, Lo, ye see the man is mad: -wherefore then have ye brought him to me? 21:15 Have I need of mad -men, that ye have brought this fellow to play the mad man in my -presence? shall this fellow come into my house? 22:1 David therefore -departed thence, and escaped to the cave Adullam: and when his -brethren and all his father's house heard it, they went down thither -to him. - -22:2 And every one that was in distress, and every one that was in -debt, and every one that was discontented, gathered themselves unto -him; and he became a captain over them: and there were with him about -four hundred men. - -22:3 And David went thence to Mizpeh of Moab: and he said unto the -king of Moab, Let my father and my mother, I pray thee, come forth, -and be with you, till I know what God will do for me. - -22:4 And he brought them before the king of Moab: and they dwelt with -him all the while that David was in the hold. - -22:5 And the prophet Gad said unto David, Abide not in the hold; -depart, and get thee into the land of Judah. Then David departed, and -came into the forest of Hareth. - -22:6 When Saul heard that David was discovered, and the men that were -with him, (now Saul abode in Gibeah under a tree in Ramah, having his -spear in his hand, and all his servants were standing about him;) 22:7 -Then Saul said unto his servants that stood about him, Hear now, ye -Benjamites; will the son of Jesse give every one of you fields and -vineyards, and make you all captains of thousands, and captains of -hundreds; 22:8 That all of you have conspired against me, and there is -none that sheweth me that my son hath made a league with the son of -Jesse, and there is none of you that is sorry for me, or sheweth unto -me that my son hath stirred up my servant against me, to lie in wait, -as at this day? 22:9 Then answered Doeg the Edomite, which was set -over the servants of Saul, and said, I saw the son of Jesse coming to -Nob, to Ahimelech the son of Ahitub. - -22:10 And he enquired of the LORD for him, and gave him victuals, and -gave him the sword of Goliath the Philistine. - -22:11 Then the king sent to call Ahimelech the priest, the son of -Ahitub, and all his father's house, the priests that were in Nob: and -they came all of them to the king. - -22:12 And Saul said, Hear now, thou son of Ahitub. And he answered, -Here I am, my lord. - -22:13 And Saul said unto him, Why have ye conspired against me, thou -and the son of Jesse, in that thou hast given him bread, and a sword, -and hast enquired of God for him, that he should rise against me, to -lie in wait, as at this day? 22:14 Then Ahimelech answered the king, -and said, And who is so faithful among all thy servants as David, -which is the king's son in law, and goeth at thy bidding, and is -honourable in thine house? 22:15 Did I then begin to enquire of God -for him? be it far from me: let not the king impute any thing unto his -servant, nor to all the house of my father: for thy servant knew -nothing of all this, less or more. - -22:16 And the king said, Thou shalt surely die, Ahimelech, thou, and -all thy father's house. - -22:17 And the king said unto the footmen that stood about him, Turn, -and slay the priests of the LORD: because their hand also is with -David, and because they knew when he fled, and did not shew it to me. -But the servants of the king would not put forth their hand to fall -upon the priests of the LORD. - -22:18 And the king said to Doeg, Turn thou, and fall upon the priests. -And Doeg the Edomite turned, and he fell upon the priests, and slew on -that day fourscore and five persons that did wear a linen ephod. - -22:19 And Nob, the city of the priests, smote he with the edge of the -sword, both men and women, children and sucklings, and oxen, and -asses, and sheep, with the edge of the sword. - -22:20 And one of the sons of Ahimelech the son of Ahitub, named -Abiathar, escaped, and fled after David. - -22:21 And Abiathar shewed David that Saul had slain the LORD's -priests. - -22:22 And David said unto Abiathar, I knew it that day, when Doeg the -Edomite was there, that he would surely tell Saul: I have occasioned -the death of all the persons of thy father's house. - -22:23 Abide thou with me, fear not: for he that seeketh my life -seeketh thy life: but with me thou shalt be in safeguard. - -23:1 Then they told David, saying, Behold, the Philistines fight -against Keilah, and they rob the threshingfloors. - -23:2 Therefore David enquired of the LORD, saying, Shall I go and -smite these Philistines? And the LORD said unto David, Go, and smite -the Philistines, and save Keilah. - -23:3 And David's men said unto him, Behold, we be afraid here in -Judah: how much more then if we come to Keilah against the armies of -the Philistines? 23:4 Then David enquired of the LORD yet again. And -the LORD answered him and said, Arise, go down to Keilah; for I will -deliver the Philistines into thine hand. - -23:5 So David and his men went to Keilah, and fought with the -Philistines, and brought away their cattle, and smote them with a -great slaughter. So David saved the inhabitants of Keilah. - -23:6 And it came to pass, when Abiathar the son of Ahimelech fled to -David to Keilah, that he came down with an ephod in his hand. - -23:7 And it was told Saul that David was come to Keilah. And Saul -said, God hath delivered him into mine hand; for he is shut in, by -entering into a town that hath gates and bars. - -23:8 And Saul called all the people together to war, to go down to -Keilah, to besiege David and his men. - -23:9 And David knew that Saul secretly practised mischief against him; -and he said to Abiathar the priest, Bring hither the ephod. - -23:10 Then said David, O LORD God of Israel, thy servant hath -certainly heard that Saul seeketh to come to Keilah, to destroy the -city for my sake. - -23:11 Will the men of Keilah deliver me up into his hand? will Saul -come down, as thy servant hath heard? O LORD God of Israel, I beseech -thee, tell thy servant. And the LORD said, He will come down. - -23:12 Then said David, Will the men of Keilah deliver me and my men -into the hand of Saul? And the LORD said, They will deliver thee up. - -23:13 Then David and his men, which were about six hundred, arose and -departed out of Keilah, and went whithersoever they could go. And it -was told Saul that David was escaped from Keilah; and he forbare to go -forth. - -23:14 And David abode in the wilderness in strong holds, and remained -in a mountain in the wilderness of Ziph. And Saul sought him every -day, but God delivered him not into his hand. - -23:15 And David saw that Saul was come out to seek his life: and David -was in the wilderness of Ziph in a wood. - -23:16 And Jonathan Saul's son arose, and went to David into the wood, -and strengthened his hand in God. - -23:17 And he said unto him, Fear not: for the hand of Saul my father -shall not find thee; and thou shalt be king over Israel, and I shall -be next unto thee; and that also Saul my father knoweth. - -23:18 And they two made a covenant before the LORD: and David abode in -the wood, and Jonathan went to his house. - -23:19 Then came up the Ziphites to Saul to Gibeah, saying, Doth not -David hide himself with us in strong holds in the wood, in the hill of -Hachilah, which is on the south of Jeshimon? 23:20 Now therefore, O -king, come down according to all the desire of thy soul to come down; -and our part shall be to deliver him into the king's hand. - -23:21 And Saul said, Blessed be ye of the LORD; for ye have compassion -on me. - -23:22 Go, I pray you, prepare yet, and know and see his place where -his haunt is, and who hath seen him there: for it is told me that he -dealeth very subtilly. - -23:23 See therefore, and take knowledge of all the lurking places -where he hideth himself, and come ye again to me with the certainty, -and I will go with you: and it shall come to pass, if he be in the -land, that I will search him out throughout all the thousands of -Judah. - -23:24 And they arose, and went to Ziph before Saul: but David and his -men were in the wilderness of Maon, in the plain on the south of -Jeshimon. - -23:25 Saul also and his men went to seek him. And they told David; -wherefore he came down into a rock, and abode in the wilderness of -Maon. And when Saul heard that, he pursued after David in the -wilderness of Maon. - -23:26 And Saul went on this side of the mountain, and David and his -men on that side of the mountain: and David made haste to get away for -fear of Saul; for Saul and his men compassed David and his men round -about to take them. - -23:27 But there came a messenger unto Saul, saying, Haste thee, and -come; for the Philistines have invaded the land. - -23:28 Wherefore Saul returned from pursuing after David, and went -against the Philistines: therefore they called that place -Selahammahlekoth. - -23:29 And David went up from thence, and dwelt in strong holds at -Engedi. - -24:1 And it came to pass, when Saul was returned from following the -Philistines, that it was told him, saying, Behold, David is in the -wilderness of Engedi. - -24:2 Then Saul took three thousand chosen men out of all Israel, and -went to seek David and his men upon the rocks of the wild goats. - -24:3 And he came to the sheepcotes by the way, where was a cave; and -Saul went in to cover his feet: and David and his men remained in the -sides of the cave. - -24:4 And the men of David said unto him, Behold the day of which the -LORD said unto thee, Behold, I will deliver thine enemy into thine -hand, that thou mayest do to him as it shall seem good unto thee. Then -David arose, and cut off the skirt of Saul's robe privily. - -24:5 And it came to pass afterward, that David's heart smote him, -because he had cut off Saul's skirt. - -24:6 And he said unto his men, The LORD forbid that I should do this -thing unto my master, the LORD's anointed, to stretch forth mine hand -against him, seeing he is the anointed of the LORD. - -24:7 So David stayed his servants with these words, and suffered them -not to rise against Saul. But Saul rose up out of the cave, and went -on his way. - -24:8 David also arose afterward, and went out of the cave, and cried -after Saul, saying, My lord the king. And when Saul looked behind him, -David stooped with his face to the earth, and bowed himself. - -24:9 And David said to Saul, Wherefore hearest thou men's words, -saying, Behold, David seeketh thy hurt? 24:10 Behold, this day thine -eyes have seen how that the LORD had delivered thee to day into mine -hand in the cave: and some bade me kill thee: but mine eye spared -thee; and I said, I will not put forth mine hand against my lord; for -he is the LORD's anointed. - -24:11 Moreover, my father, see, yea, see the skirt of thy robe in my -hand: for in that I cut off the skirt of thy robe, and killed thee -not, know thou and see that there is neither evil nor transgression in -mine hand, and I have not sinned against thee; yet thou huntest my -soul to take it. - -24:12 The LORD judge between me and thee, and the LORD avenge me of -thee: but mine hand shall not be upon thee. - -24:13 As saith the proverb of the ancients, Wickedness proceedeth from -the wicked: but mine hand shall not be upon thee. - -24:14 After whom is the king of Israel come out? after whom dost thou -pursue? after a dead dog, after a flea. - -24:15 The LORD therefore be judge, and judge between me and thee, and -see, and plead my cause, and deliver me out of thine hand. - -24:16 And it came to pass, when David had made an end of speaking -these words unto Saul, that Saul said, Is this thy voice, my son -David? And Saul lifted up his voice, and wept. - -24:17 And he said to David, Thou art more righteous than I: for thou -hast rewarded me good, whereas I have rewarded thee evil. - -24:18 And thou hast shewed this day how that thou hast dealt well with -me: forasmuch as when the LORD had delivered me into thine hand, thou -killedst me not. - -24:19 For if a man find his enemy, will he let him go well away? -wherefore the LORD reward thee good for that thou hast done unto me -this day. - -24:20 And now, behold, I know well that thou shalt surely be king, and -that the kingdom of Israel shall be established in thine hand. - -24:21 Swear now therefore unto me by the LORD, that thou wilt not cut -off my seed after me, and that thou wilt not destroy my name out of my -father's house. - -24:22 And David sware unto Saul. And Saul went home; but David and his -men gat them up unto the hold. - -25:1 And Samuel died; and all the Israelites were gathered together, -and lamented him, and buried him in his house at Ramah. And David -arose, and went down to the wilderness of Paran. - -25:2 And there was a man in Maon, whose possessions were in Carmel; -and the man was very great, and he had three thousand sheep, and a -thousand goats: and he was shearing his sheep in Carmel. - -25:3 Now the name of the man was Nabal; and the name of his wife -Abigail: and she was a woman of good understanding, and of a beautiful -countenance: but the man was churlish and evil in his doings; and he -was of the house of Caleb. - -25:4 And David heard in the wilderness that Nabal did shear his sheep. - -25:5 And David sent out ten young men, and David said unto the young -men, Get you up to Carmel, and go to Nabal, and greet him in my name: -25:6 And thus shall ye say to him that liveth in prosperity, Peace be -both to thee, and peace be to thine house, and peace be unto all that -thou hast. - -25:7 And now I have heard that thou hast shearers: now thy shepherds -which were with us, we hurt them not, neither was there ought missing -unto them, all the while they were in Carmel. - -25:8 Ask thy young men, and they will shew thee. Wherefore let the -young men find favour in thine eyes: for we come in a good day: give, -I pray thee, whatsoever cometh to thine hand unto thy servants, and to -thy son David. - -25:9 And when David's young men came, they spake to Nabal according to -all those words in the name of David, and ceased. - -25:10 And Nabal answered David's servants, and said, Who is David? and -who is the son of Jesse? there be many servants now a days that break -away every man from his master. - -25:11 Shall I then take my bread, and my water, and my flesh that I -have killed for my shearers, and give it unto men, whom I know not -whence they be? 25:12 So David's young men turned their way, and went -again, and came and told him all those sayings. - -25:13 And David said unto his men, Gird ye on every man his sword. And -they girded on every man his sword; and David also girded on his -sword: and there went up after David about four hundred men; and two -hundred abode by the stuff. - -25:14 But one of the young men told Abigail, Nabal's wife, saying, -Behold, David sent messengers out of the wilderness to salute our -master; and he railed on them. - -25:15 But the men were very good unto us, and we were not hurt, -neither missed we any thing, as long as we were conversant with them, -when we were in the fields: 25:16 They were a wall unto us both by -night and day, all the while we were with them keeping the sheep. - -25:17 Now therefore know and consider what thou wilt do; for evil is -determined against our master, and against all his household: for he -is such a son of Belial, that a man cannot speak to him. - -25:18 Then Abigail made haste, and took two hundred loaves, and two -bottles of wine, and five sheep ready dressed, and five measures of -parched corn, and an hundred clusters of raisins, and two hundred -cakes of figs, and laid them on asses. - -25:19 And she said unto her servants, Go on before me; behold, I come -after you. But she told not her husband Nabal. - -25:20 And it was so, as she rode on the ass, that she came down by the -covert on the hill, and, behold, David and his men came down against -her; and she met them. - -25:21 Now David had said, Surely in vain have I kept all that this -fellow hath in the wilderness, so that nothing was missed of all that -pertained unto him: and he hath requited me evil for good. - -25:22 So and more also do God unto the enemies of David, if I leave of -all that pertain to him by the morning light any that pisseth against -the wall. - -25:23 And when Abigail saw David, she hasted, and lighted off the ass, -and fell before David on her face, and bowed herself to the ground, -25:24 And fell at his feet, and said, Upon me, my lord, upon me let -this iniquity be: and let thine handmaid, I pray thee, speak in thine -audience, and hear the words of thine handmaid. - -25:25 Let not my lord, I pray thee, regard this man of Belial, even -Nabal: for as his name is, so is he; Nabal is his name, and folly is -with him: but I thine handmaid saw not the young men of my lord, whom -thou didst send. - -25:26 Now therefore, my lord, as the LORD liveth, and as thy soul -liveth, seeing the LORD hath withholden thee from coming to shed -blood, and from avenging thyself with thine own hand, now let thine -enemies, and they that seek evil to my lord, be as Nabal. - -25:27 And now this blessing which thine handmaid hath brought unto my -lord, let it even be given unto the young men that follow my lord. - -25:28 I pray thee, forgive the trespass of thine handmaid: for the -LORD will certainly make my lord a sure house; because my lord -fighteth the battles of the LORD, and evil hath not been found in thee -all thy days. - -25:29 Yet a man is risen to pursue thee, and to seek thy soul: but the -soul of my lord shall be bound in the bundle of life with the LORD thy -God; and the souls of thine enemies, them shall he sling out, as out -of the middle of a sling. - -25:30 And it shall come to pass, when the LORD shall have done to my -lord according to all the good that he hath spoken concerning thee, -and shall have appointed thee ruler over Israel; 25:31 That this shall -be no grief unto thee, nor offence of heart unto my lord, either that -thou hast shed blood causeless, or that my lord hath avenged himself: -but when the LORD shall have dealt well with my lord, then remember -thine handmaid. - -25:32 And David said to Abigail, Blessed be the LORD God of Israel, -which sent thee this day to meet me: 25:33 And blessed be thy advice, -and blessed be thou, which hast kept me this day from coming to shed -blood, and from avenging myself with mine own hand. - -25:34 For in very deed, as the LORD God of Israel liveth, which hath -kept me back from hurting thee, except thou hadst hasted and come to -meet me, surely there had not been left unto Nabal by the morning -light any that pisseth against the wall. - -25:35 So David received of her hand that which she had brought him, -and said unto her, Go up in peace to thine house; see, I have -hearkened to thy voice, and have accepted thy person. - -25:36 And Abigail came to Nabal; and, behold, he held a feast in his -house, like the feast of a king; and Nabal's heart was merry within -him, for he was very drunken: wherefore she told him nothing, less or -more, until the morning light. - -25:37 But it came to pass in the morning, when the wine was gone out -of Nabal, and his wife had told him these things, that his heart died -within him, and he became as a stone. - -25:38 And it came to pass about ten days after, that the LORD smote -Nabal, that he died. - -25:39 And when David heard that Nabal was dead, he said, Blessed be -the LORD, that hath pleaded the cause of my reproach from the hand of -Nabal, and hath kept his servant from evil: for the LORD hath returned -the wickedness of Nabal upon his own head. And David sent and communed -with Abigail, to take her to him to wife. - -25:40 And when the servants of David were come to Abigail to Carmel, -they spake unto her, saying, David sent us unto thee, to take thee to -him to wife. - -25:41 And she arose, and bowed herself on her face to the earth, and -said, Behold, let thine handmaid be a servant to wash the feet of the -servants of my lord. - -25:42 And Abigail hasted, and arose and rode upon an ass, with five -damsels of hers that went after her; and she went after the messengers -of David, and became his wife. - -25:43 David also took Ahinoam of Jezreel; and they were also both of -them his wives. - -25:44 But Saul had given Michal his daughter, David's wife, to Phalti -the son of Laish, which was of Gallim. - -26:1 And the Ziphites came unto Saul to Gibeah, saying, Doth not David -hide himself in the hill of Hachilah, which is before Jeshimon? 26:2 -Then Saul arose, and went down to the wilderness of Ziph, having three -thousand chosen men of Israel with him, to seek David in the -wilderness of Ziph. - -26:3 And Saul pitched in the hill of Hachilah, which is before -Jeshimon, by the way. But David abode in the wilderness, and he saw -that Saul came after him into the wilderness. - -26:4 David therefore sent out spies, and understood that Saul was come -in very deed. - -26:5 And David arose, and came to the place where Saul had pitched: -and David beheld the place where Saul lay, and Abner the son of Ner, -the captain of his host: and Saul lay in the trench, and the people -pitched round about him. - -26:6 Then answered David and said to Ahimelech the Hittite, and to -Abishai the son of Zeruiah, brother to Joab, saying, Who will go down -with me to Saul to the camp? And Abishai said, I will go down with -thee. - -26:7 So David and Abishai came to the people by night: and, behold, -Saul lay sleeping within the trench, and his spear stuck in the ground -at his bolster: but Abner and the people lay round about him. - -26:8 Then said Abishai to David, God hath delivered thine enemy into -thine hand this day: now therefore let me smite him, I pray thee, with -the spear even to the earth at once, and I will not smite him the -second time. - -26:9 And David said to Abishai, Destroy him not: for who can stretch -forth his hand against the LORD's anointed, and be guiltless? 26:10 -David said furthermore, As the LORD liveth, the LORD shall smite him; -or his day shall come to die; or he shall descend into battle, and -perish. - -26:11 The LORD forbid that I should stretch forth mine hand against -the LORD's anointed: but, I pray thee, take thou now the spear that is -at his bolster, and the cruse of water, and let us go. - -26:12 So David took the spear and the cruse of water from Saul's -bolster; and they gat them away, and no man saw it, nor knew it, -neither awaked: for they were all asleep; because a deep sleep from -the LORD was fallen upon them. - -26:13 Then David went over to the other side, and stood on the top of -an hill afar off; a great space being between them: 26:14 And David -cried to the people, and to Abner the son of Ner, saying, Answerest -thou not, Abner? Then Abner answered and said, Who art thou that -criest to the king? 26:15 And David said to Abner, Art not thou a -valiant man? and who is like to thee in Israel? wherefore then hast -thou not kept thy lord the king? for there came one of the people in -to destroy the king thy lord. - -26:16 This thing is not good that thou hast done. As the LORD liveth, -ye are worthy to die, because ye have not kept your master, the LORD's -anointed. - -And now see where the king's spear is, and the cruse of water that was -at his bolster. - -26:17 And Saul knew David's voice, and said, Is this thy voice, my son -David? And David said, It is my voice, my lord, O king. - -26:18 And he said, Wherefore doth my lord thus pursue after his -servant? for what have I done? or what evil is in mine hand? 26:19 -Now therefore, I pray thee, let my lord the king hear the words of his -servant. If the LORD have stirred thee up against me, let him accept -an offering: but if they be the children of men, cursed be they before -the LORD; for they have driven me out this day from abiding in the -inheritance of the LORD, saying, Go, serve other gods. - -26:20 Now therefore, let not my blood fall to the earth before the -face of the LORD: for the king of Israel is come out to seek a flea, -as when one doth hunt a partridge in the mountains. - -26:21 Then said Saul, I have sinned: return, my son David: for I will -no more do thee harm, because my soul was precious in thine eyes this -day: behold, I have played the fool, and have erred exceedingly. - -26:22 And David answered and said, Behold the king's spear! and let -one of the young men come over and fetch it. - -26:23 The LORD render to every man his righteousness and his -faithfulness; for the LORD delivered thee into my hand to day, but I -would not stretch forth mine hand against the LORD's anointed. - -26:24 And, behold, as thy life was much set by this day in mine eyes, -so let my life be much set by in the eyes of the LORD, and let him -deliver me out of all tribulation. - -26:25 Then Saul said to David, Blessed be thou, my son David: thou -shalt both do great things, and also shalt still prevail. So David -went on his way, and Saul returned to his place. - -27:1 And David said in his heart, I shall now perish one day by the -hand of Saul: there is nothing better for me than that I should -speedily escape into the land of the Philistines; and Saul shall -despair of me, to seek me any more in any coast of Israel: so shall I -escape out of his hand. - -27:2 And David arose, and he passed over with the six hundred men that -were with him unto Achish, the son of Maoch, king of Gath. - -27:3 And David dwelt with Achish at Gath, he and his men, every man -with his household, even David with his two wives, Ahinoam the -Jezreelitess, and Abigail the Carmelitess, Nabal's wife. - -27:4 And it was told Saul that David was fled to Gath: and he sought -no more again for him. - -27:5 And David said unto Achish, If I have now found grace in thine -eyes, let them give me a place in some town in the country, that I may -dwell there: for why should thy servant dwell in the royal city with -thee? 27:6 Then Achish gave him Ziklag that day: wherefore Ziklag -pertaineth unto the kings of Judah unto this day. - -27:7 And the time that David dwelt in the country of the Philistines -was a full year and four months. - -27:8 And David and his men went up, and invaded the Geshurites, and -the Gezrites, and the Amalekites: for those nations were of old the -inhabitants of the land, as thou goest to Shur, even unto the land of -Egypt. - -27:9 And David smote the land, and left neither man nor woman alive, -and took away the sheep, and the oxen, and the asses, and the camels, -and the apparel, and returned, and came to Achish. - -27:10 And Achish said, Whither have ye made a road to day? And David -said, Against the south of Judah, and against the south of the -Jerahmeelites, and against the south of the Kenites. - -27:11 And David saved neither man nor woman alive, to bring tidings to -Gath, saying, Lest they should tell on us, saying, So did David, and -so will be his manner all the while he dwelleth in the country of the -Philistines. - -27:12 And Achish believed David, saying, He hath made his people -Israel utterly to abhor him; therefore he shall be my servant for -ever. - -28:1 And it came to pass in those days, that the Philistines gathered -their armies together for warfare, to fight with Israel. And Achish -said unto David, Know thou assuredly, that thou shalt go out with me -to battle, thou and thy men. - -28:2 And David said to Achish, Surely thou shalt know what thy servant -can do. And Achish said to David, Therefore will I make thee keeper of -mine head for ever. - -28:3 Now Samuel was dead, and all Israel had lamented him, and buried -him in Ramah, even in his own city. And Saul had put away those that -had familiar spirits, and the wizards, out of the land. - -28:4 And the Philistines gathered themselves together, and came and -pitched in Shunem: and Saul gathered all Israel together, and they -pitched in Gilboa. - -28:5 And when Saul saw the host of the Philistines, he was afraid, and -his heart greatly trembled. - -28:6 And when Saul enquired of the LORD, the LORD answered him not, -neither by dreams, nor by Urim, nor by prophets. - -28:7 Then said Saul unto his servants, Seek me a woman that hath a -familiar spirit, that I may go to her, and enquire of her. And his -servants said to him, Behold, there is a woman that hath a familiar -spirit at Endor. - -28:8 And Saul disguised himself, and put on other raiment, and he -went, and two men with him, and they came to the woman by night: and -he said, I pray thee, divine unto me by the familiar spirit, and bring -me him up, whom I shall name unto thee. - -28:9 And the woman said unto him, Behold, thou knowest what Saul hath -done, how he hath cut off those that have familiar spirits, and the -wizards, out of the land: wherefore then layest thou a snare for my -life, to cause me to die? 28:10 And Saul sware to her by the LORD, -saying, As the LORD liveth, there shall no punishment happen to thee -for this thing. - -28:11 Then said the woman, Whom shall I bring up unto thee? And he -said, Bring me up Samuel. - -28:12 And when the woman saw Samuel, she cried with a loud voice: and -the woman spake to Saul, saying, Why hast thou deceived me? for thou -art Saul. - -28:13 And the king said unto her, Be not afraid: for what sawest thou? -And the woman said unto Saul, I saw gods ascending out of the earth. - -28:14 And he said unto her, What form is he of? And she said, An old -man cometh up; and he is covered with a mantle. And Saul perceived -that it was Samuel, and he stooped with his face to the ground, and -bowed himself. - -28:15 And Samuel said to Saul, Why hast thou disquieted me, to bring -me up? And Saul answered, I am sore distressed; for the Philistines -make war against me, and God is departed from me, and answereth me no -more, neither by prophets, nor by dreams: therefore I have called -thee, that thou mayest make known unto me what I shall do. - -28:16 Then said Samuel, Wherefore then dost thou ask of me, seeing the -LORD is departed from thee, and is become thine enemy? 28:17 And the -LORD hath done to him, as he spake by me: for the LORD hath rent the -kingdom out of thine hand, and given it to thy neighbour, even to -David: 28:18 Because thou obeyedst not the voice of the LORD, nor -executedst his fierce wrath upon Amalek, therefore hath the LORD done -this thing unto thee this day. - -28:19 Moreover the LORD will also deliver Israel with thee into the -hand of the Philistines: and to morrow shalt thou and thy sons be with -me: the LORD also shall deliver the host of Israel into the hand of -the Philistines. - -28:20 Then Saul fell straightway all along on the earth, and was sore -afraid, because of the words of Samuel: and there was no strength in -him; for he had eaten no bread all the day, nor all the night. - -28:21 And the woman came unto Saul, and saw that he was sore troubled, -and said unto him, Behold, thine handmaid hath obeyed thy voice, and I -have put my life in my hand, and have hearkened unto thy words which -thou spakest unto me. - -28:22 Now therefore, I pray thee, hearken thou also unto the voice of -thine handmaid, and let me set a morsel of bread before thee; and eat, -that thou mayest have strength, when thou goest on thy way. - -28:23 But he refused, and said, I will not eat. But his servants, -together with the woman, compelled him; and he hearkened unto their -voice. So he arose from the earth, and sat upon the bed. - -28:24 And the woman had a fat calf in the house; and she hasted, and -killed it, and took flour, and kneaded it, and did bake unleavened -bread thereof: 28:25 And she brought it before Saul, and before his -servants; and they did eat. Then they rose up, and went away that -night. - -29:1 Now the Philistines gathered together all their armies to Aphek: -and the Israelites pitched by a fountain which is in Jezreel. - -29:2 And the lords of the Philistines passed on by hundreds, and by -thousands: but David and his men passed on in the rereward with -Achish. - -29:3 Then said the princes of the Philistines, What do these Hebrews -here? And Achish said unto the princes of the Philistines, Is not -this David, the servant of Saul the king of Israel, which hath been -with me these days, or these years, and I have found no fault in him -since he fell unto me unto this day? 29:4 And the princes of the -Philistines were wroth with him; and the princes of the Philistines -said unto him, Make this fellow return, that he may go again to his -place which thou hast appointed him, and let him not go down with us -to battle, lest in the battle he be an adversary to us: for wherewith -should he reconcile himself unto his master? should it not be with the -heads of these men? 29:5 Is not this David, of whom they sang one to -another in dances, saying, Saul slew his thousands, and David his ten -thousands? 29:6 Then Achish called David, and said unto him, Surely, -as the LORD liveth, thou hast been upright, and thy going out and thy -coming in with me in the host is good in my sight: for I have not -found evil in thee since the day of thy coming unto me unto this day: -nevertheless the lords favour thee not. - -29:7 Wherefore now return, and go in peace, that thou displease not -the lords of the Philistines. - -29:8 And David said unto Achish, But what have I done? and what hast -thou found in thy servant so long as I have been with thee unto this -day, that I may not go fight against the enemies of my lord the king? -29:9 And Achish answered and said to David, I know that thou art good -in my sight, as an angel of God: notwithstanding the princes of the -Philistines have said, He shall not go up with us to the battle. - -29:10 Wherefore now rise up early in the morning with thy master's -servants that are come with thee: and as soon as ye be up early in the -morning, and have light, depart. - -29:11 So David and his men rose up early to depart in the morning, to -return into the land of the Philistines. And the Philistines went up -to Jezreel. - -30:1 And it came to pass, when David and his men were come to Ziklag -on the third day, that the Amalekites had invaded the south, and -Ziklag, and smitten Ziklag, and burned it with fire; 30:2 And had -taken the women captives, that were therein: they slew not any, either -great or small, but carried them away, and went on their way. - -30:3 So David and his men came to the city, and, behold, it was burned -with fire; and their wives, and their sons, and their daughters, were -taken captives. - -30:4 Then David and the people that were with him lifted up their -voice and wept, until they had no more power to weep. - -30:5 And David's two wives were taken captives, Ahinoam the -Jezreelitess, and Abigail the wife of Nabal the Carmelite. - -30:6 And David was greatly distressed; for the people spake of stoning -him, because the soul of all the people was grieved, every man for his -sons and for his daughters: but David encouraged himself in the LORD -his God. - -30:7 And David said to Abiathar the priest, Ahimelech's son, I pray -thee, bring me hither the ephod. And Abiathar brought thither the -ephod to David. - -30:8 And David enquired at the LORD, saying, Shall I pursue after this -troop? shall I overtake them? And he answered him, Pursue: for thou -shalt surely overtake them, and without fail recover all. - -30:9 So David went, he and the six hundred men that were with him, and -came to the brook Besor, where those that were left behind stayed. - -30:10 But David pursued, he and four hundred men: for two hundred -abode behind, which were so faint that they could not go over the -brook Besor. - -30:11 And they found an Egyptian in the field, and brought him to -David, and gave him bread, and he did eat; and they made him drink -water; 30:12 And they gave him a piece of a cake of figs, and two -clusters of raisins: and when he had eaten, his spirit came again to -him: for he had eaten no bread, nor drunk any water, three days and -three nights. - -30:13 And David said unto him, To whom belongest thou? and whence art -thou? And he said, I am a young man of Egypt, servant to an Amalekite; -and my master left me, because three days agone I fell sick. - -30:14 We made an invasion upon the south of the Cherethites, and upon -the coast which belongeth to Judah, and upon the south of Caleb; and -we burned Ziklag with fire. - -30:15 And David said to him, Canst thou bring me down to this company? -And he said, Swear unto me by God, that thou wilt neither kill me, nor -deliver me into the hands of my master, and I will bring thee down to -this company. - -30:16 And when he had brought him down, behold, they were spread -abroad upon all the earth, eating and drinking, and dancing, because -of all the great spoil that they had taken out of the land of the -Philistines, and out of the land of Judah. - -30:17 And David smote them from the twilight even unto the evening of -the next day: and there escaped not a man of them, save four hundred -young men, which rode upon camels, and fled. - -30:18 And David recovered all that the Amalekites had carried away: -and David rescued his two wives. - -30:19 And there was nothing lacking to them, neither small nor great, -neither sons nor daughters, neither spoil, nor any thing that they had -taken to them: David recovered all. - -30:20 And David took all the flocks and the herds, which they drave -before those other cattle, and said, This is David's spoil. - -30:21 And David came to the two hundred men, which were so faint that -they could not follow David, whom they had made also to abide at the -brook Besor: and they went forth to meet David, and to meet the people -that were with him: and when David came near to the people, he saluted -them. - -30:22 Then answered all the wicked men and men of Belial, of those -that went with David, and said, Because they went not with us, we will -not give them ought of the spoil that we have recovered, save to every -man his wife and his children, that they may lead them away, and -depart. - -30:23 Then said David, Ye shall not do so, my brethren, with that -which the LORD hath given us, who hath preserved us, and delivered the -company that came against us into our hand. - -30:24 For who will hearken unto you in this matter? but as his part is -that goeth down to the battle, so shall his part be that tarrieth by -the stuff: they shall part alike. - -30:25 And it was so from that day forward, that he made it a statute -and an ordinance for Israel unto this day. - -30:26 And when David came to Ziklag, he sent of the spoil unto the -elders of Judah, even to his friends, saying, Behold a present for you -of the spoil of the enemies of the LORD; 30:27 To them which were in -Bethel, and to them which were in south Ramoth, and to them which were -in Jattir, 30:28 And to them which were in Aroer, and to them which -were in Siphmoth, and to them which were in Eshtemoa, 30:29 And to -them which were in Rachal, and to them which were in the cities of the -Jerahmeelites, and to them which were in the cities of the Kenites, -30:30 And to them which were in Hormah, and to them which were in -Chorashan, and to them which were in Athach, 30:31 And to them which -were in Hebron, and to all the places where David himself and his men -were wont to haunt. - -31:1 Now the Philistines fought against Israel: and the men of Israel -fled from before the Philistines, and fell down slain in mount Gilboa. - -31:2 And the Philistines followed hard upon Saul and upon his sons; -and the Philistines slew Jonathan, and Abinadab, and Melchishua, -Saul's sons. - -31:3 And the battle went sore against Saul, and the archers hit him; -and he was sore wounded of the archers. - -31:4 Then said Saul unto his armourbearer, Draw thy sword, and thrust -me through therewith; lest these uncircumcised come and thrust me -through, and abuse me. But his armourbearer would not; for he was sore -afraid. Therefore Saul took a sword, and fell upon it. - -31:5 And when his armourbearer saw that Saul was dead, he fell -likewise upon his sword, and died with him. - -31:6 So Saul died, and his three sons, and his armourbearer, and all -his men, that same day together. - -31:7 And when the men of Israel that were on the other side of the -valley, and they that were on the other side Jordan, saw that the men -of Israel fled, and that Saul and his sons were dead, they forsook the -cities, and fled; and the Philistines came and dwelt in them. - -31:8 And it came to pass on the morrow, when the Philistines came to -strip the slain, that they found Saul and his three sons fallen in -mount Gilboa. - -31:9 And they cut off his head, and stripped off his armour, and sent -into the land of the Philistines round about, to publish it in the -house of their idols, and among the people. - -31:10 And they put his armour in the house of Ashtaroth: and they -fastened his body to the wall of Bethshan. - -31:11 And when the inhabitants of Jabeshgilead heard of that which the -Philistines had done to Saul; 31:12 All the valiant men arose, and -went all night, and took the body of Saul and the bodies of his sons -from the wall of Bethshan, and came to Jabesh, and burnt them there. - -31:13 And they took their bones, and buried them under a tree at -Jabesh, and fasted seven days. - - - - -The Second Book of Samuel - -Otherwise Called: - -The Second Book of the Kings - - -1:1 Now it came to pass after the death of Saul, when David was -returned from the slaughter of the Amalekites, and David had abode two -days in Ziklag; 1:2 It came even to pass on the third day, that, -behold, a man came out of the camp from Saul with his clothes rent, -and earth upon his head: and so it was, when he came to David, that he -fell to the earth, and did obeisance. - -1:3 And David said unto him, From whence comest thou? And he said unto -him, Out of the camp of Israel am I escaped. - -1:4 And David said unto him, How went the matter? I pray thee, tell -me. - -And he answered, That the people are fled from the battle, and many of -the people also are fallen and dead; and Saul and Jonathan his son are -dead also. - -1:5 And David said unto the young man that told him, How knowest thou -that Saul and Jonathan his son be dead? 1:6 And the young man that -told him said, As I happened by chance upon mount Gilboa, behold, Saul -leaned upon his spear; and, lo, the chariots and horsemen followed -hard after him. - -1:7 And when he looked behind him, he saw me, and called unto me. And -I answered, Here am I. - -1:8 And he said unto me, Who art thou? And I answered him, I am an -Amalekite. - -1:9 He said unto me again, Stand, I pray thee, upon me, and slay me: -for anguish is come upon me, because my life is yet whole in me. - -1:10 So I stood upon him, and slew him, because I was sure that he -could not live after that he was fallen: and I took the crown that was -upon his head, and the bracelet that was on his arm, and have brought -them hither unto my lord. - -1:11 Then David took hold on his clothes, and rent them; and likewise -all the men that were with him: 1:12 And they mourned, and wept, and -fasted until even, for Saul, and for Jonathan his son, and for the -people of the LORD, and for the house of Israel; because they were -fallen by the sword. - -1:13 And David said unto the young man that told him, Whence art thou? -And he answered, I am the son of a stranger, an Amalekite. - -1:14 And David said unto him, How wast thou not afraid to stretch -forth thine hand to destroy the LORD's anointed? 1:15 And David -called one of the young men, and said, Go near, and fall upon him. And -he smote him that he died. - -1:16 And David said unto him, Thy blood be upon thy head; for thy -mouth hath testified against thee, saying, I have slain the LORD's -anointed. - -1:17 And David lamented with this lamentation over Saul and over -Jonathan his son: 1:18 (Also he bade them teach the children of Judah -the use of the bow: behold, it is written in the book of Jasher.) -1:19 The beauty of Israel is slain upon thy high places: how are the -mighty fallen! 1:20 Tell it not in Gath, publish it not in the -streets of Askelon; lest the daughters of the Philistines rejoice, -lest the daughters of the uncircumcised triumph. - -1:21 Ye mountains of Gilboa, let there be no dew, neither let there be -rain, upon you, nor fields of offerings: for there the shield of the -mighty is vilely cast away, the shield of Saul, as though he had not -been anointed with oil. - -1:22 From the blood of the slain, from the fat of the mighty, the bow -of Jonathan turned not back, and the sword of Saul returned not empty. - -1:23 Saul and Jonathan were lovely and pleasant in their lives, and in -their death they were not divided: they were swifter than eagles, they -were stronger than lions. - -1:24 Ye daughters of Israel, weep over Saul, who clothed you in -scarlet, with other delights, who put on ornaments of gold upon your -apparel. - -1:25 How are the mighty fallen in the midst of the battle! O Jonathan, -thou wast slain in thine high places. - -1:26 I am distressed for thee, my brother Jonathan: very pleasant hast -thou been unto me: thy love to me was wonderful, passing the love of -women. - -1:27 How are the mighty fallen, and the weapons of war perished! 2:1 -And it came to pass after this, that David enquired of the LORD, -saying, Shall I go up into any of the cities of Judah? And the LORD -said unto him, Go up. And David said, Whither shall I go up? And he -said, Unto Hebron. - -2:2 So David went up thither, and his two wives also, Ahinoam the -Jezreelitess, and Abigail Nabal's wife the Carmelite. - -2:3 And his men that were with him did David bring up, every man with -his household: and they dwelt in the cities of Hebron. - -2:4 And the men of Judah came, and there they anointed David king over -the house of Judah. And they told David, saying, That the men of -Jabeshgilead were they that buried Saul. - -2:5 And David sent messengers unto the men of Jabeshgilead, and said -unto them, Blessed be ye of the LORD, that ye have shewed this -kindness unto your lord, even unto Saul, and have buried him. - -2:6 And now the LORD shew kindness and truth unto you: and I also will -requite you this kindness, because ye have done this thing. - -2:7 Therefore now let your hands be strengthened, and be ye valiant: -for your master Saul is dead, and also the house of Judah have -anointed me king over them. - -2:8 But Abner the son of Ner, captain of Saul's host, took Ishbosheth -the son of Saul, and brought him over to Mahanaim; 2:9 And made him -king over Gilead, and over the Ashurites, and over Jezreel, and over -Ephraim, and over Benjamin, and over all Israel. - -2:10 Ishbosheth Saul's son was forty years old when he began to reign -over Israel, and reigned two years. But the house of Judah followed -David. - -2:11 And the time that David was king in Hebron over the house of -Judah was seven years and six months. - -2:12 And Abner the son of Ner, and the servants of Ishbosheth the son -of Saul, went out from Mahanaim to Gibeon. - -2:13 And Joab the son of Zeruiah, and the servants of David, went out, -and met together by the pool of Gibeon: and they sat down, the one on -the one side of the pool, and the other on the other side of the pool. - -2:14 And Abner said to Joab, Let the young men now arise, and play -before us. And Joab said, Let them arise. - -2:15 Then there arose and went over by number twelve of Benjamin, -which pertained to Ishbosheth the son of Saul, and twelve of the -servants of David. - -2:16 And they caught every one his fellow by the head, and thrust his -sword in his fellow's side; so they fell down together: wherefore that -place was called Helkathhazzurim, which is in Gibeon. - -2:17 And there was a very sore battle that day; and Abner was beaten, -and the men of Israel, before the servants of David. - -2:18 And there were three sons of Zeruiah there, Joab, and Abishai, -and Asahel: and Asahel was as light of foot as a wild roe. - -2:19 And Asahel pursued after Abner; and in going he turned not to the -right hand nor to the left from following Abner. - -2:20 Then Abner looked behind him, and said, Art thou Asahel? And he -answered, I am. - -2:21 And Abner said to him, Turn thee aside to thy right hand or to -thy left, and lay thee hold on one of the young men, and take thee his -armour. - -But Asahel would not turn aside from following of him. - -2:22 And Abner said again to Asahel, Turn thee aside from following -me: wherefore should I smite thee to the ground? how then should I -hold up my face to Joab thy brother? 2:23 Howbeit he refused to turn -aside: wherefore Abner with the hinder end of the spear smote him -under the fifth rib, that the spear came out behind him; and he fell -down there, and died in the same place: and it came to pass, that as -many as came to the place where Asahel fell down and died stood still. - -2:24 Joab also and Abishai pursued after Abner: and the sun went down -when they were come to the hill of Ammah, that lieth before Giah by -the way of the wilderness of Gibeon. - -2:25 And the children of Benjamin gathered themselves together after -Abner, and became one troop, and stood on the top of an hill. - -2:26 Then Abner called to Joab, and said, Shall the sword devour for -ever? knowest thou not that it will be bitterness in the latter end? -how long shall it be then, ere thou bid the people return from -following their brethren? 2:27 And Joab said, As God liveth, unless -thou hadst spoken, surely then in the morning the people had gone up -every one from following his brother. - -2:28 So Joab blew a trumpet, and all the people stood still, and -pursued after Israel no more, neither fought they any more. - -2:29 And Abner and his men walked all that night through the plain, -and passed over Jordan, and went through all Bithron, and they came to -Mahanaim. - -2:30 And Joab returned from following Abner: and when he had gathered -all the people together, there lacked of David's servants nineteen men -and Asahel. - -2:31 But the servants of David had smitten of Benjamin, and of Abner's -men, so that three hundred and threescore men died. - -2:32 And they took up Asahel, and buried him in the sepulchre of his -father, which was in Bethlehem. And Joab and his men went all night, -and they came to Hebron at break of day. - -3:1 Now there was long war between the house of Saul and the house of -David: but David waxed stronger and stronger, and the house of Saul -waxed weaker and weaker. - -3:2 And unto David were sons born in Hebron: and his firstborn was -Amnon, of Ahinoam the Jezreelitess; 3:3 And his second, Chileab, of -Abigail the wife of Nabal the Carmelite; and the third, Absalom the -son of Maacah the daughter of Talmai king of Geshur; 3:4 And the -fourth, Adonijah the son of Haggith; and the fifth, Shephatiah the son -of Abital; 3:5 And the sixth, Ithream, by Eglah David's wife. These -were born to David in Hebron. - -3:6 And it came to pass, while there was war between the house of Saul -and the house of David, that Abner made himself strong for the house -of Saul. - -3:7 And Saul had a concubine, whose name was Rizpah, the daughter of -Aiah: and Ishbosheth said to Abner, Wherefore hast thou gone in unto -my father's concubine? 3:8 Then was Abner very wroth for the words of -Ishbosheth, and said, Am I a dog's head, which against Judah do shew -kindness this day unto the house of Saul thy father, to his brethren, -and to his friends, and have not delivered thee into the hand of -David, that thou chargest me to day with a fault concerning this -woman? 3:9 So do God to Abner, and more also, except, as the LORD -hath sworn to David, even so I do to him; 3:10 To translate the -kingdom from the house of Saul, and to set up the throne of David over -Israel and over Judah, from Dan even to Beersheba. - -3:11 And he could not answer Abner a word again, because he feared -him. - -3:12 And Abner sent messengers to David on his behalf, saying, Whose -is the land? saying also, Make thy league with me, and, behold, my -hand shall be with thee, to bring about all Israel unto thee. - -3:13 And he said, Well; I will make a league with thee: but one thing -I require of thee, that is, Thou shalt not see my face, except thou -first bring Michal Saul's daughter, when thou comest to see my face. - -3:14 And David sent messengers to Ishbosheth Saul's son, saying, -Deliver me my wife Michal, which I espoused to me for an hundred -foreskins of the Philistines. - -3:15 And Ishbosheth sent, and took her from her husband, even from -Phaltiel the son of Laish. - -3:16 And her husband went with her along weeping behind her to -Bahurim. - -Then said Abner unto him, Go, return. And he returned. - -3:17 And Abner had communication with the elders of Israel, saying, Ye -sought for David in times past to be king over you: 3:18 Now then do -it: for the LORD hath spoken of David, saying, By the hand of my -servant David I will save my people Israel out of the hand of the -Philistines, and out of the hand of all their enemies. - -3:19 And Abner also spake in the ears of Benjamin: and Abner went also -to speak in the ears of David in Hebron all that seemed good to -Israel, and that seemed good to the whole house of Benjamin. - -3:20 So Abner came to David to Hebron, and twenty men with him. And -David made Abner and the men that were with him a feast. - -3:21 And Abner said unto David, I will arise and go, and will gather -all Israel unto my lord the king, that they may make a league with -thee, and that thou mayest reign over all that thine heart desireth. -And David sent Abner away; and he went in peace. - -3:22 And, behold, the servants of David and Joab came from pursuing a -troop, and brought in a great spoil with them: but Abner was not with -David in Hebron; for he had sent him away, and he was gone in peace. - -3:23 When Joab and all the host that was with him were come, they told -Joab, saying, Abner the son of Ner came to the king, and he hath sent -him away, and he is gone in peace. - -3:24 Then Joab came to the king, and said, What hast thou done? -behold, Abner came unto thee; why is it that thou hast sent him away, -and he is quite gone? 3:25 Thou knowest Abner the son of Ner, that he -came to deceive thee, and to know thy going out and thy coming in, and -to know all that thou doest. - -3:26 And when Joab was come out from David, he sent messengers after -Abner, which brought him again from the well of Sirah: but David knew -it not. - -3:27 And when Abner was returned to Hebron, Joab took him aside in the -gate to speak with him quietly, and smote him there under the fifth -rib, that he died, for the blood of Asahel his brother. - -3:28 And afterward when David heard it, he said, I and my kingdom are -guiltless before the LORD for ever from the blood of Abner the son of -Ner: 3:29 Let it rest on the head of Joab, and on all his father's -house; and let there not fail from the house of Joab one that hath an -issue, or that is a leper, or that leaneth on a staff, or that falleth -on the sword, or that lacketh bread. - -3:30 So Joab, and Abishai his brother slew Abner, because he had slain -their brother Asahel at Gibeon in the battle. - -3:31 And David said to Joab, and to all the people that were with him, -Rend your clothes, and gird you with sackcloth, and mourn before -Abner. And king David himself followed the bier. - -3:32 And they buried Abner in Hebron: and the king lifted up his -voice, and wept at the grave of Abner; and all the people wept. - -3:33 And the king lamented over Abner, and said, Died Abner as a fool -dieth? 3:34 Thy hands were not bound, nor thy feet put into fetters: -as a man falleth before wicked men, so fellest thou. And all the -people wept again over him. - -3:35 And when all the people came to cause David to eat meat while it -was yet day, David sware, saying, So do God to me, and more also, if I -taste bread, or ought else, till the sun be down. - -3:36 And all the people took notice of it, and it pleased them: as -whatsoever the king did pleased all the people. - -3:37 For all the people and all Israel understood that day that it was -not of the king to slay Abner the son of Ner. - -3:38 And the king said unto his servants, Know ye not that there is a -prince and a great man fallen this day in Israel? 3:39 And I am this -day weak, though anointed king; and these men the sons of Zeruiah be -too hard for me: the LORD shall reward the doer of evil according to -his wickedness. - -4:1 And when Saul's son heard that Abner was dead in Hebron, his hands -were feeble, and all the Israelites were troubled. - -4:2 And Saul's son had two men that were captains of bands: the name -of the one was Baanah, and the name of the other Rechab, the sons of -Rimmon a Beerothite, of the children of Benjamin: (for Beeroth also -was reckoned to Benjamin. - -4:3 And the Beerothites fled to Gittaim, and were sojourners there -until this day.) 4:4 And Jonathan, Saul's son, had a son that was -lame of his feet. He was five years old when the tidings came of Saul -and Jonathan out of Jezreel, and his nurse took him up, and fled: and -it came to pass, as she made haste to flee, that he fell, and became -lame. And his name was Mephibosheth. - -4:5 And the sons of Rimmon the Beerothite, Rechab and Baanah, went, -and came about the heat of the day to the house of Ishbosheth, who lay -on a bed at noon. - -4:6 And they came thither into the midst of the house, as though they -would have fetched wheat; and they smote him under the fifth rib: and -Rechab and Baanah his brother escaped. - -4:7 For when they came into the house, he lay on his bed in his -bedchamber, and they smote him, and slew him, and beheaded him, and -took his head, and gat them away through the plain all night. - -4:8 And they brought the head of Ishbosheth unto David to Hebron, and -said to the king, Behold the head of Ishbosheth the son of Saul thine -enemy, which sought thy life; and the LORD hath avenged my lord the -king this day of Saul, and of his seed. - -4:9 And David answered Rechab and Baanah his brother, the sons of -Rimmon the Beerothite, and said unto them, As the LORD liveth, who -hath redeemed my soul out of all adversity, 4:10 When one told me, -saying, Behold, Saul is dead, thinking to have brought good tidings, I -took hold of him, and slew him in Ziklag, who thought that I would -have given him a reward for his tidings: 4:11 How much more, when -wicked men have slain a righteous person in his own house upon his -bed? shall I not therefore now require his blood of your hand, and -take you away from the earth? 4:12 And David commanded his young men, -and they slew them, and cut off their hands and their feet, and hanged -them up over the pool in Hebron. But they took the head of Ishbosheth, -and buried it in the sepulchre of Abner in Hebron. - -5:1 Then came all the tribes of Israel to David unto Hebron, and -spake, saying, Behold, we are thy bone and thy flesh. - -5:2 Also in time past, when Saul was king over us, thou wast he that -leddest out and broughtest in Israel: and the LORD said to thee, Thou -shalt feed my people Israel, and thou shalt be a captain over Israel. - -5:3 So all the elders of Israel came to the king to Hebron; and king -David made a league with them in Hebron before the LORD: and they -anointed David king over Israel. - -5:4 David was thirty years old when he began to reign, and he reigned -forty years. - -5:5 In Hebron he reigned over Judah seven years and six months: and in -Jerusalem he reigned thirty and three years over all Israel and Judah. - -5:6 And the king and his men went to Jerusalem unto the Jebusites, the -inhabitants of the land: which spake unto David, saying, Except thou -take away the blind and the lame, thou shalt not come in hither: -thinking, David cannot come in hither. - -5:7 Nevertheless David took the strong hold of Zion: the same is the -city of David. - -5:8 And David said on that day, Whosoever getteth up to the gutter, -and smiteth the Jebusites, and the lame and the blind that are hated -of David's soul, he shall be chief and captain. Wherefore they said, -The blind and the lame shall not come into the house. - -5:9 So David dwelt in the fort, and called it the city of David. And -David built round about from Millo and inward. - -5:10 And David went on, and grew great, and the LORD God of hosts was -with him. - -5:11 And Hiram king of Tyre sent messengers to David, and cedar trees, -and carpenters, and masons: and they built David an house. - -5:12 And David perceived that the LORD had established him king over -Israel, and that he had exalted his kingdom for his people Israel's -sake. - -5:13 And David took him more concubines and wives out of Jerusalem, -after he was come from Hebron: and there were yet sons and daughters -born to David. - -5:14 And these be the names of those that were born unto him in -Jerusalem; Shammuah, and Shobab, and Nathan, and Solomon, 5:15 Ibhar -also, and Elishua, and Nepheg, and Japhia, 5:16 And Elishama, and -Eliada, and Eliphalet. - -5:17 But when the Philistines heard that they had anointed David king -over Israel, all the Philistines came up to seek David; and David -heard of it, and went down to the hold. - -5:18 The Philistines also came and spread themselves in the valley of -Rephaim. - -5:19 And David enquired of the LORD, saying, Shall I go up to the -Philistines? wilt thou deliver them into mine hand? And the LORD said -unto David, Go up: for I will doubtless deliver the Philistines into -thine hand. - -5:20 And David came to Baalperazim, and David smote them there, and -said, The LORD hath broken forth upon mine enemies before me, as the -breach of waters. Therefore he called the name of that place -Baalperazim. - -5:21 And there they left their images, and David and his men burned -them. - -5:22 And the Philistines came up yet again, and spread themselves in -the valley of Rephaim. - -5:23 And when David enquired of the LORD, he said, Thou shalt not go -up; but fetch a compass behind them, and come upon them over against -the mulberry trees. - -5:24 And let it be, when thou hearest the sound of a going in the tops -of the mulberry trees, that then thou shalt bestir thyself: for then -shall the LORD go out before thee, to smite the host of the -Philistines. - -5:25 And David did so, as the LORD had commanded him; and smote the -Philistines from Geba until thou come to Gazer. - -6:1 Again, David gathered together all the chosen men of Israel, -thirty thousand. - -6:2 And David arose, and went with all the people that were with him -from Baale of Judah, to bring up from thence the ark of God, whose -name is called by the name of the LORD of hosts that dwelleth between -the cherubims. - -6:3 And they set the ark of God upon a new cart, and brought it out of -the house of Abinadab that was in Gibeah: and Uzzah and Ahio, the sons -of Abinadab, drave the new cart. - -6:4 And they brought it out of the house of Abinadab which was at -Gibeah, accompanying the ark of God: and Ahio went before the ark. - -6:5 And David and all the house of Israel played before the LORD on -all manner of instruments made of fir wood, even on harps, and on -psalteries, and on timbrels, and on cornets, and on cymbals. - -6:6 And when they came to Nachon's threshingfloor, Uzzah put forth his -hand to the ark of God, and took hold of it; for the oxen shook it. - -6:7 And the anger of the LORD was kindled against Uzzah; and God smote -him there for his error; and there he died by the ark of God. - -6:8 And David was displeased, because the LORD had made a breach upon -Uzzah: and he called the name of the place Perezuzzah to this day. - -6:9 And David was afraid of the LORD that day, and said, How shall the -ark of the LORD come to me? 6:10 So David would not remove the ark of -the LORD unto him into the city of David: but David carried it aside -into the house of Obededom the Gittite. - -6:11 And the ark of the LORD continued in the house of Obededom the -Gittite three months: and the LORD blessed Obededom, and all his -household. - -6:12 And it was told king David, saying, The LORD hath blessed the -house of Obededom, and all that pertaineth unto him, because of the -ark of God. So David went and brought up the ark of God from the house -of Obededom into the city of David with gladness. - -6:13 And it was so, that when they that bare the ark of the LORD had -gone six paces, he sacrificed oxen and fatlings. - -6:14 And David danced before the LORD with all his might; and David -was girded with a linen ephod. - -6:15 So David and all the house of Israel brought up the ark of the -LORD with shouting, and with the sound of the trumpet. - -6:16 And as the ark of the LORD came into the city of David, Michal -Saul's daughter looked through a window, and saw king David leaping -and dancing before the LORD; and she despised him in her heart. - -6:17 And they brought in the ark of the LORD, and set it in his place, -in the midst of the tabernacle that David had pitched for it: and -David offered burnt offerings and peace offerings before the LORD. - -6:18 And as soon as David had made an end of offering burnt offerings -and peace offerings, he blessed the people in the name of the LORD of -hosts. - -6:19 And he dealt among all the people, even among the whole multitude -of Israel, as well to the women as men, to every one a cake of bread, -and a good piece of flesh, and a flagon of wine. So all the people -departed every one to his house. - -6:20 Then David returned to bless his household. And Michal the -daughter of Saul came out to meet David, and said, How glorious was -the king of Israel to day, who uncovered himself to day in the eyes of -the handmaids of his servants, as one of the vain fellows shamelessly -uncovereth himself! 6:21 And David said unto Michal, It was before -the LORD, which chose me before thy father, and before all his house, -to appoint me ruler over the people of the LORD, over Israel: -therefore will I play before the LORD. - -6:22 And I will yet be more vile than thus, and will be base in mine -own sight: and of the maidservants which thou hast spoken of, of them -shall I be had in honour. - -6:23 Therefore Michal the daughter of Saul had no child unto the day -of her death. - -7:1 And it came to pass, when the king sat in his house, and the LORD -had given him rest round about from all his enemies; 7:2 That the king -said unto Nathan the prophet, See now, I dwell in an house of cedar, -but the ark of God dwelleth within curtains. - -7:3 And Nathan said to the king, Go, do all that is in thine heart; -for the LORD is with thee. - -7:4 And it came to pass that night, that the word of the LORD came -unto Nathan, saying, 7:5 Go and tell my servant David, Thus saith the -LORD, Shalt thou build me an house for me to dwell in? 7:6 Whereas I -have not dwelt in any house since the time that I brought up the -children of Israel out of Egypt, even to this day, but have walked in -a tent and in a tabernacle. - -7:7 In all the places wherein I have walked with all the children of -Israel spake I a word with any of the tribes of Israel, whom I -commanded to feed my people Israel, saying, Why build ye not me an -house of cedar? 7:8 Now therefore so shalt thou say unto my servant -David, Thus saith the LORD of hosts, I took thee from the sheepcote, -from following the sheep, to be ruler over my people, over Israel: 7:9 -And I was with thee whithersoever thou wentest, and have cut off all -thine enemies out of thy sight, and have made thee a great name, like -unto the name of the great men that are in the earth. - -7:10 Moreover I will appoint a place for my people Israel, and will -plant them, that they may dwell in a place of their own, and move no -more; neither shall the children of wickedness afflict them any more, -as beforetime, 7:11 And as since the time that I commanded judges to -be over my people Israel, and have caused thee to rest from all thine -enemies. Also the LORD telleth thee that he will make thee an house. - -7:12 And when thy days be fulfilled, and thou shalt sleep with thy -fathers, I will set up thy seed after thee, which shall proceed out of -thy bowels, and I will establish his kingdom. - -7:13 He shall build an house for my name, and I will stablish the -throne of his kingdom for ever. - -7:14 I will be his father, and he shall be my son. If he commit -iniquity, I will chasten him with the rod of men, and with the stripes -of the children of men: 7:15 But my mercy shall not depart away from -him, as I took it from Saul, whom I put away before thee. - -7:16 And thine house and thy kingdom shall be established for ever -before thee: thy throne shall be established for ever. - -7:17 According to all these words, and according to all this vision, -so did Nathan speak unto David. - -7:18 Then went king David in, and sat before the LORD, and he said, -Who am I, O Lord GOD? and what is my house, that thou hast brought me -hitherto? 7:19 And this was yet a small thing in thy sight, O Lord -GOD; but thou hast spoken also of thy servant's house for a great -while to come. And is this the manner of man, O Lord GOD? 7:20 And -what can David say more unto thee? for thou, Lord GOD, knowest thy -servant. - -7:21 For thy word's sake, and according to thine own heart, hast thou -done all these great things, to make thy servant know them. - -7:22 Wherefore thou art great, O LORD God: for there is none like -thee, neither is there any God beside thee, according to all that we -have heard with our ears. - -7:23 And what one nation in the earth is like thy people, even like -Israel, whom God went to redeem for a people to himself, and to make -him a name, and to do for you great things and terrible, for thy land, -before thy people, which thou redeemedst to thee from Egypt, from the -nations and their gods? 7:24 For thou hast confirmed to thyself thy -people Israel to be a people unto thee for ever: and thou, LORD, art -become their God. - -7:25 And now, O LORD God, the word that thou hast spoken concerning -thy servant, and concerning his house, establish it for ever, and do -as thou hast said. - -7:26 And let thy name be magnified for ever, saying, The LORD of hosts -is the God over Israel: and let the house of thy servant David be -established before thee. - -7:27 For thou, O LORD of hosts, God of Israel, hast revealed to thy -servant, saying, I will build thee an house: therefore hath thy -servant found in his heart to pray this prayer unto thee. - -7:28 And now, O Lord GOD, thou art that God, and thy words be true, -and thou hast promised this goodness unto thy servant: 7:29 Therefore -now let it please thee to bless the house of thy servant, that it may -continue for ever before thee: for thou, O Lord GOD, hast spoken it: -and with thy blessing let the house of thy servant be blessed for -ever. - -8:1 And after this it came to pass that David smote the Philistines, -and subdued them: and David took Methegammah out of the hand of the -Philistines. - -8:2 And he smote Moab, and measured them with a line, casting them -down to the ground; even with two lines measured he to put to death, -and with one full line to keep alive. And so the Moabites became -David's servants, and brought gifts. - -8:3 David smote also Hadadezer, the son of Rehob, king of Zobah, as he -went to recover his border at the river Euphrates. - -8:4 And David took from him a thousand chariots, and seven hundred -horsemen, and twenty thousand footmen: and David houghed all the -chariot horses, but reserved of them for an hundred chariots. - -8:5 And when the Syrians of Damascus came to succour Hadadezer king of -Zobah, David slew of the Syrians two and twenty thousand men. - -8:6 Then David put garrisons in Syria of Damascus: and the Syrians -became servants to David, and brought gifts. And the LORD preserved -David whithersoever he went. - -8:7 And David took the shields of gold that were on the servants of -Hadadezer, and brought them to Jerusalem. - -8:8 And from Betah, and from Berothai, cities of Hadadezer, king David -took exceeding much brass. - -8:9 When Toi king of Hamath heard that David had smitten all the host -of Hadadezer, 8:10 Then Toi sent Joram his son unto king David, to -salute him, and to bless him, because he had fought against Hadadezer, -and smitten him: for Hadadezer had wars with Toi. And Joram brought -with him vessels of silver, and vessels of gold, and vessels of brass: -8:11 Which also king David did dedicate unto the LORD, with the silver -and gold that he had dedicated of all nations which he subdued; 8:12 -Of Syria, and of Moab, and of the children of Ammon, and of the -Philistines, and of Amalek, and of the spoil of Hadadezer, son of -Rehob, king of Zobah. - -8:13 And David gat him a name when he returned from smiting of the -Syrians in the valley of salt, being eighteen thousand men. - -8:14 And he put garrisons in Edom; throughout all Edom put he -garrisons, and all they of Edom became David's servants. And the LORD -preserved David whithersoever he went. - -8:15 And David reigned over all Israel; and David executed judgment -and justice unto all his people. - -8:16 And Joab the son of Zeruiah was over the host; and Jehoshaphat -the son of Ahilud was recorder; 8:17 And Zadok the son of Ahitub, and -Ahimelech the son of Abiathar, were the priests; and Seraiah was the -scribe; 8:18 And Benaiah the son of Jehoiada was over both the -Cherethites and the Pelethites; and David's sons were chief rulers. - -9:1 And David said, Is there yet any that is left of the house of -Saul, that I may shew him kindness for Jonathan's sake? 9:2 And there -was of the house of Saul a servant whose name was Ziba. And when they -had called him unto David, the king said unto him, Art thou Ziba? And -he said, Thy servant is he. - -9:3 And the king said, Is there not yet any of the house of Saul, that -I may shew the kindness of God unto him? And Ziba said unto the king, -Jonathan hath yet a son, which is lame on his feet. - -9:4 And the king said unto him, Where is he? And Ziba said unto the -king, Behold, he is in the house of Machir, the son of Ammiel, in -Lodebar. - -9:5 Then king David sent, and fetched him out of the house of Machir, -the son of Ammiel, from Lodebar. - -9:6 Now when Mephibosheth, the son of Jonathan, the son of Saul, was -come unto David, he fell on his face, and did reverence. And David -said, Mephibosheth. And he answered, Behold thy servant! 9:7 And -David said unto him, Fear not: for I will surely shew thee kindness -for Jonathan thy father's sake, and will restore thee all the land of -Saul thy father; and thou shalt eat bread at my table continually. - -9:8 And he bowed himself, and said, What is thy servant, that thou -shouldest look upon such a dead dog as I am? 9:9 Then the king called -to Ziba, Saul's servant, and said unto him, I have given unto thy -master's son all that pertained to Saul and to all his house. - -9:10 Thou therefore, and thy sons, and thy servants, shall till the -land for him, and thou shalt bring in the fruits, that thy master's -son may have food to eat: but Mephibosheth thy master's son shall eat -bread alway at my table. Now Ziba had fifteen sons and twenty -servants. - -9:11 Then said Ziba unto the king, According to all that my lord the -king hath commanded his servant, so shall thy servant do. As for -Mephibosheth, said the king, he shall eat at my table, as one of the -king's sons. - -9:12 And Mephibosheth had a young son, whose name was Micha. And all -that dwelt in the house of Ziba were servants unto Mephibosheth. - -9:13 So Mephibosheth dwelt in Jerusalem: for he did eat continually at -the king's table; and was lame on both his feet. - -10:1 And it came to pass after this, that the king of the children of -Ammon died, and Hanun his son reigned in his stead. - -10:2 Then said David, I will shew kindness unto Hanun the son of -Nahash, as his father shewed kindness unto me. And David sent to -comfort him by the hand of his servants for his father. And David's -servants came into the land of the children of Ammon. - -10:3 And the princes of the children of Ammon said unto Hanun their -lord, Thinkest thou that David doth honour thy father, that he hath -sent comforters unto thee? hath not David rather sent his servants -unto thee, to search the city, and to spy it out, and to overthrow it? -10:4 Wherefore Hanun took David's servants, and shaved off the one -half of their beards, and cut off their garments in the middle, even -to their buttocks, and sent them away. - -10:5 When they told it unto David, he sent to meet them, because the -men were greatly ashamed: and the king said, Tarry at Jericho until -your beards be grown, and then return. - -10:6 And when the children of Ammon saw that they stank before David, -the children of Ammon sent and hired the Syrians of Bethrehob and the -Syrians of Zoba, twenty thousand footmen, and of king Maacah a -thousand men, and of Ishtob twelve thousand men. - -10:7 And when David heard of it, he sent Joab, and all the host of the -mighty men. - -10:8 And the children of Ammon came out, and put the battle in array -at the entering in of the gate: and the Syrians of Zoba, and of Rehob, -and Ishtob, and Maacah, were by themselves in the field. - -10:9 When Joab saw that the front of the battle was against him before -and behind, he chose of all the choice men of Israel, and put them in -array against the Syrians: 10:10 And the rest of the people he -delivered into the hand of Abishai his brother, that he might put them -in array against the children of Ammon. - -10:11 And he said, If the Syrians be too strong for me, then thou -shalt help me: but if the children of Ammon be too strong for thee, -then I will come and help thee. - -10:12 Be of good courage, and let us play the men for our people, and -for the cities of our God: and the LORD do that which seemeth him -good. - -10:13 And Joab drew nigh, and the people that were with him, unto the -battle against the Syrians: and they fled before him. - -10:14 And when the children of Ammon saw that the Syrians were fled, -then fled they also before Abishai, and entered into the city. So Joab -returned from the children of Ammon, and came to Jerusalem. - -10:15 And when the Syrians saw that they were smitten before Israel, -they gathered themselves together. - -10:16 And Hadarezer sent, and brought out the Syrians that were beyond -the river: and they came to Helam; and Shobach the captain of the host -of Hadarezer went before them. - -10:17 And when it was told David, he gathered all Israel together, and -passed over Jordan, and came to Helam. And the Syrians set themselves -in array against David, and fought with him. - -10:18 And the Syrians fled before Israel; and David slew the men of -seven hundred chariots of the Syrians, and forty thousand horsemen, -and smote Shobach the captain of their host, who died there. - -10:19 And when all the kings that were servants to Hadarezer saw that -they were smitten before Israel, they made peace with Israel, and -served them. So the Syrians feared to help the children of Ammon any -more. - -11:1 And it came to pass, after the year was expired, at the time when -kings go forth to battle, that David sent Joab, and his servants with -him, and all Israel; and they destroyed the children of Ammon, and -besieged Rabbah. But David tarried still at Jerusalem. - -11:2 And it came to pass in an eveningtide, that David arose from off -his bed, and walked upon the roof of the king's house: and from the -roof he saw a woman washing herself; and the woman was very beautiful -to look upon. - -11:3 And David sent and enquired after the woman. And one said, Is not -this Bathsheba, the daughter of Eliam, the wife of Uriah the Hittite? -11:4 And David sent messengers, and took her; and she came in unto -him, and he lay with her; for she was purified from her uncleanness: -and she returned unto her house. - -11:5 And the woman conceived, and sent and told David, and said, I am -with child. - -11:6 And David sent to Joab, saying, Send me Uriah the Hittite. And -Joab sent Uriah to David. - -11:7 And when Uriah was come unto him, David demanded of him how Joab -did, and how the people did, and how the war prospered. - -11:8 And David said to Uriah, Go down to thy house, and wash thy feet. -And Uriah departed out of the king's house, and there followed him a -mess of meat from the king. - -11:9 But Uriah slept at the door of the king's house with all the -servants of his lord, and went not down to his house. - -11:10 And when they had told David, saying, Uriah went not down unto -his house, David said unto Uriah, Camest thou not from thy journey? -why then didst thou not go down unto thine house? 11:11 And Uriah -said unto David, The ark, and Israel, and Judah, abide in tents; and -my lord Joab, and the servants of my lord, are encamped in the open -fields; shall I then go into mine house, to eat and to drink, and to -lie with my wife? as thou livest, and as thy soul liveth, I will not -do this thing. - -11:12 And David said to Uriah, Tarry here to day also, and to morrow I -will let thee depart. So Uriah abode in Jerusalem that day, and the -morrow. - -11:13 And when David had called him, he did eat and drink before him; -and he made him drunk: and at even he went out to lie on his bed with -the servants of his lord, but went not down to his house. - -11:14 And it came to pass in the morning, that David wrote a letter to -Joab, and sent it by the hand of Uriah. - -11:15 And he wrote in the letter, saying, Set ye Uriah in the -forefront of the hottest battle, and retire ye from him, that he may -be smitten, and die. - -11:16 And it came to pass, when Joab observed the city, that he -assigned Uriah unto a place where he knew that valiant men were. - -11:17 And the men of the city went out, and fought with Joab: and -there fell some of the people of the servants of David; and Uriah the -Hittite died also. - -11:18 Then Joab sent and told David all the things concerning the war; -11:19 And charged the messenger, saying, When thou hast made an end of -telling the matters of the war unto the king, 11:20 And if so be that -the king's wrath arise, and he say unto thee, Wherefore approached ye -so nigh unto the city when ye did fight? knew ye not that they would -shoot from the wall? 11:21 Who smote Abimelech the son of -Jerubbesheth? did not a woman cast a piece of a millstone upon him -from the wall, that he died in Thebez? why went ye nigh the wall? then -say thou, Thy servant Uriah the Hittite is dead also. - -11:22 So the messenger went, and came and shewed David all that Joab -had sent him for. - -11:23 And the messenger said unto David, Surely the men prevailed -against us, and came out unto us into the field, and we were upon them -even unto the entering of the gate. - -11:24 And the shooters shot from off the wall upon thy servants; and -some of the king's servants be dead, and thy servant Uriah the Hittite -is dead also. - -11:25 Then David said unto the messenger, Thus shalt thou say unto -Joab, Let not this thing displease thee, for the sword devoureth one -as well as another: make thy battle more strong against the city, and -overthrow it: and encourage thou him. - -11:26 And when the wife of Uriah heard that Uriah her husband was -dead, she mourned for her husband. - -11:27 And when the mourning was past, David sent and fetched her to -his house, and she became his wife, and bare him a son. But the thing -that David had done displeased the LORD. - -12:1 And the LORD sent Nathan unto David. And he came unto him, and -said unto him, There were two men in one city; the one rich, and the -other poor. - -12:2 The rich man had exceeding many flocks and herds: 12:3 But the -poor man had nothing, save one little ewe lamb, which he had bought -and nourished up: and it grew up together with him, and with his -children; it did eat of his own meat, and drank of his own cup, and -lay in his bosom, and was unto him as a daughter. - -12:4 And there came a traveller unto the rich man, and he spared to -take of his own flock and of his own herd, to dress for the wayfaring -man that was come unto him; but took the poor man's lamb, and dressed -it for the man that was come to him. - -12:5 And David's anger was greatly kindled against the man; and he -said to Nathan, As the LORD liveth, the man that hath done this thing -shall surely die: 12:6 And he shall restore the lamb fourfold, because -he did this thing, and because he had no pity. - -12:7 And Nathan said to David, Thou art the man. Thus saith the LORD -God of Israel, I anointed thee king over Israel, and I delivered thee -out of the hand of Saul; 12:8 And I gave thee thy master's house, and -thy master's wives into thy bosom, and gave thee the house of Israel -and of Judah; and if that had been too little, I would moreover have -given unto thee such and such things. - -12:9 Wherefore hast thou despised the commandment of the LORD, to do -evil in his sight? thou hast killed Uriah the Hittite with the sword, -and hast taken his wife to be thy wife, and hast slain him with the -sword of the children of Ammon. - -12:10 Now therefore the sword shall never depart from thine house; -because thou hast despised me, and hast taken the wife of Uriah the -Hittite to be thy wife. - -12:11 Thus saith the LORD, Behold, I will raise up evil against thee -out of thine own house, and I will take thy wives before thine eyes, -and give them unto thy neighbour, and he shall lie with thy wives in -the sight of this sun. - -12:12 For thou didst it secretly: but I will do this thing before all -Israel, and before the sun. - -12:13 And David said unto Nathan, I have sinned against the LORD. And -Nathan said unto David, The LORD also hath put away thy sin; thou -shalt not die. - -12:14 Howbeit, because by this deed thou hast given great occasion to -the enemies of the LORD to blaspheme, the child also that is born unto -thee shall surely die. - -12:15 And Nathan departed unto his house. And the LORD struck the -child that Uriah's wife bare unto David, and it was very sick. - -12:16 David therefore besought God for the child; and David fasted, -and went in, and lay all night upon the earth. - -12:17 And the elders of his house arose, and went to him, to raise him -up from the earth: but he would not, neither did he eat bread with -them. - -12:18 And it came to pass on the seventh day, that the child died. And -the servants of David feared to tell him that the child was dead: for -they said, Behold, while the child was yet alive, we spake unto him, -and he would not hearken unto our voice: how will he then vex himself, -if we tell him that the child is dead? 12:19 But when David saw that -his servants whispered, David perceived that the child was dead: -therefore David said unto his servants, Is the child dead? And they -said, He is dead. - -12:20 Then David arose from the earth, and washed, and anointed -himself, and changed his apparel, and came into the house of the LORD, -and worshipped: then he came to his own house; and when he required, -they set bread before him, and he did eat. - -12:21 Then said his servants unto him, What thing is this that thou -hast done? thou didst fast and weep for the child, while it was alive; -but when the child was dead, thou didst rise and eat bread. - -12:22 And he said, While the child was yet alive, I fasted and wept: -for I said, Who can tell whether GOD will be gracious to me, that the -child may live? 12:23 But now he is dead, wherefore should I fast? -can I bring him back again? I shall go to him, but he shall not return -to me. - -12:24 And David comforted Bathsheba his wife, and went in unto her, -and lay with her: and she bare a son, and he called his name Solomon: -and the LORD loved him. - -12:25 And he sent by the hand of Nathan the prophet; and he called his -name Jedidiah, because of the LORD. - -12:26 And Joab fought against Rabbah of the children of Ammon, and -took the royal city. - -12:27 And Joab sent messengers to David, and said, I have fought -against Rabbah, and have taken the city of waters. - -12:28 Now therefore gather the rest of the people together, and encamp -against the city, and take it: lest I take the city, and it be called -after my name. - -12:29 And David gathered all the people together, and went to Rabbah, -and fought against it, and took it. - -12:30 And he took their king's crown from off his head, the weight -whereof was a talent of gold with the precious stones: and it was set -on David's head. And he brought forth the spoil of the city in great -abundance. - -12:31 And he brought forth the people that were therein, and put them -under saws, and under harrows of iron, and under axes of iron, and -made them pass through the brick-kiln: and thus did he unto all the -cities of the children of Ammon. So David and all the people returned -unto Jerusalem. - -13:1 And it came to pass after this, that Absalom the son of David had -a fair sister, whose name was Tamar; and Amnon the son of David loved -her. - -13:2 And Amnon was so vexed, that he fell sick for his sister Tamar; -for she was a virgin; and Amnon thought it hard for him to do anything -to her. - -13:3 But Amnon had a friend, whose name was Jonadab, the son of -Shimeah David's brother: and Jonadab was a very subtil man. - -13:4 And he said unto him, Why art thou, being the king's son, lean -from day to day? wilt thou not tell me? And Amnon said unto him, I -love Tamar, my brother Absalom's sister. - -13:5 And Jonadab said unto him, Lay thee down on thy bed, and make -thyself sick: and when thy father cometh to see thee, say unto him, I -pray thee, let my sister Tamar come, and give me meat, and dress the -meat in my sight, that I may see it, and eat it at her hand. - -13:6 So Amnon lay down, and made himself sick: and when the king was -come to see him, Amnon said unto the king, I pray thee, let Tamar my -sister come, and make me a couple of cakes in my sight, that I may eat -at her hand. - -13:7 Then David sent home to Tamar, saying, Go now to thy brother -Amnon's house, and dress him meat. - -13:8 So Tamar went to her brother Amnon's house; and he was laid down. -And she took flour, and kneaded it, and made cakes in his sight, and -did bake the cakes. - -13:9 And she took a pan, and poured them out before him; but he -refused to eat. And Amnon said, Have out all men from me. And they -went out every man from him. - -13:10 And Amnon said unto Tamar, Bring the meat into the chamber, that -I may eat of thine hand. And Tamar took the cakes which she had made, -and brought them into the chamber to Amnon her brother. - -13:11 And when she had brought them unto him to eat, he took hold of -her, and said unto her, Come lie with me, my sister. - -13:12 And she answered him, Nay, my brother, do not force me; for no -such thing ought to be done in Israel: do not thou this folly. - -13:13 And I, whither shall I cause my shame to go? and as for thee, -thou shalt be as one of the fools in Israel. Now therefore, I pray -thee, speak unto the king; for he will not withhold me from thee. - -13:14 Howbeit he would not hearken unto her voice: but, being stronger -than she, forced her, and lay with her. - -13:15 Then Amnon hated her exceedingly; so that the hatred wherewith -he hated her was greater than the love wherewith he had loved her. And -Amnon said unto her, Arise, be gone. - -13:16 And she said unto him, There is no cause: this evil in sending -me away is greater than the other that thou didst unto me. But he -would not hearken unto her. - -13:17 Then he called his servant that ministered unto him, and said, -Put now this woman out from me, and bolt the door after her. - -13:18 And she had a garment of divers colours upon her: for with such -robes were the king's daughters that were virgins apparelled. Then his -servant brought her out, and bolted the door after her. - -13:19 And Tamar put ashes on her head, and rent her garment of divers -colours that was on her, and laid her hand on her head, and went on -crying. - -13:20 And Absalom her brother said unto her, Hath Amnon thy brother -been with thee? but hold now thy peace, my sister: he is thy brother; -regard not this thing. So Tamar remained desolate in her brother -Absalom's house. - -13:21 But when king David heard of all these things, he was very -wroth. - -13:22 And Absalom spake unto his brother Amnon neither good nor bad: -for Absalom hated Amnon, because he had forced his sister Tamar. - -13:23 And it came to pass after two full years, that Absalom had -sheepshearers in Baalhazor, which is beside Ephraim: and Absalom -invited all the king's sons. - -13:24 And Absalom came to the king, and said, Behold now, thy servant -hath sheepshearers; let the king, I beseech thee, and his servants go -with thy servant. - -13:25 And the king said to Absalom, Nay, my son, let us not all now -go, lest we be chargeable unto thee. And he pressed him: howbeit he -would not go, but blessed him. - -13:26 Then said Absalom, If not, I pray thee, let my brother Amnon go -with us. And the king said unto him, Why should he go with thee? -13:27 But Absalom pressed him, that he let Amnon and all the king's -sons go with him. - -13:28 Now Absalom had commanded his servants, saying, Mark ye now when -Amnon's heart is merry with wine, and when I say unto you, Smite -Amnon; then kill him, fear not: have not I commanded you? be -courageous, and be valiant. - -13:29 And the servants of Absalom did unto Amnon as Absalom had -commanded. - -Then all the king's sons arose, and every man gat him up upon his -mule, and fled. - -13:30 And it came to pass, while they were in the way, that tidings -came to David, saying, Absalom hath slain all the king's sons, and -there is not one of them left. - -13:31 Then the king arose, and tare his garments, and lay on the -earth; and all his servants stood by with their clothes rent. - -13:32 And Jonadab, the son of Shimeah David's brother, answered and -said, Let not my lord suppose that they have slain all the young men -the king's sons; for Amnon only is dead: for by the appointment of -Absalom this hath been determined from the day that he forced his -sister Tamar. - -13:33 Now therefore let not my lord the king take the thing to his -heart, to think that all the king's sons are dead: for Amnon only is -dead. - -13:34 But Absalom fled. And the young man that kept the watch lifted -up his eyes, and looked, and, behold, there came much people by the -way of the hill side behind him. - -13:35 And Jonadab said unto the king, Behold, the king's sons come: as -thy servant said, so it is. - -13:36 And it came to pass, as soon as he had made an end of speaking, -that, behold, the king's sons came, and lifted up their voice and -wept: and the king also and all his servants wept very sore. - -13:37 But Absalom fled, and went to Talmai, the son of Ammihud, king -of Geshur. And David mourned for his son every day. - -13:38 So Absalom fled, and went to Geshur, and was there three years. - -13:39 And the soul of king David longed to go forth unto Absalom: for -he was comforted concerning Amnon, seeing he was dead. - -14:1 Now Joab the son of Zeruiah perceived that the king's heart was -toward Absalom. - -14:2 And Joab sent to Tekoah, and fetched thence a wise woman, and -said unto her, I pray thee, feign thyself to be a mourner, and put on -now mourning apparel, and anoint not thyself with oil, but be as a -woman that had a long time mourned for the dead: 14:3 And come to the -king, and speak on this manner unto him. So Joab put the words in her -mouth. - -14:4 And when the woman of Tekoah spake to the king, she fell on her -face to the ground, and did obeisance, and said, Help, O king. - -14:5 And the king said unto her, What aileth thee? And she answered, I -am indeed a widow woman, and mine husband is dead. - -14:6 And thy handmaid had two sons, and they two strove together in -the field, and there was none to part them, but the one smote the -other, and slew him. - -14:7 And, behold, the whole family is risen against thine handmaid, -and they said, Deliver him that smote his brother, that we may kill -him, for the life of his brother whom he slew; and we will destroy the -heir also: and so they shall quench my coal which is left, and shall -not leave to my husband neither name nor remainder upon the earth. - -14:8 And the king said unto the woman, Go to thine house, and I will -give charge concerning thee. - -14:9 And the woman of Tekoah said unto the king, My lord, O king, the -iniquity be on me, and on my father's house: and the king and his -throne be guiltless. - -14:10 And the king said, Whoever saith ought unto thee, bring him to -me, and he shall not touch thee any more. - -14:11 Then said she, I pray thee, let the king remember the LORD thy -God, that thou wouldest not suffer the revengers of blood to destroy -any more, lest they destroy my son. And he said, As the LORD liveth, -there shall not one hair of thy son fall to the earth. - -14:12 Then the woman said, Let thine handmaid, I pray thee, speak one -word unto my lord the king. And he said, Say on. - -14:13 And the woman said, Wherefore then hast thou thought such a -thing against the people of God? for the king doth speak this thing as -one which is faulty, in that the king doth not fetch home again his -banished. - -14:14 For we must needs die, and are as water spilt on the ground, -which cannot be gathered up again; neither doth God respect any -person: yet doth he devise means, that his banished be not expelled -from him. - -14:15 Now therefore that I am come to speak of this thing unto my lord -the king, it is because the people have made me afraid: and thy -handmaid said, I will now speak unto the king; it may be that the king -will perform the request of his handmaid. - -14:16 For the king will hear, to deliver his handmaid out of the hand -of the man that would destroy me and my son together out of the -inheritance of God. - -14:17 Then thine handmaid said, The word of my lord the king shall now -be comfortable: for as an angel of God, so is my lord the king to -discern good and bad: therefore the LORD thy God will be with thee. - -14:18 Then the king answered and said unto the woman, Hide not from -me, I pray thee, the thing that I shall ask thee. And the woman said, -Let my lord the king now speak. - -14:19 And the king said, Is not the hand of Joab with thee in all -this? And the woman answered and said, As thy soul liveth, my lord -the king, none can turn to the right hand or to the left from ought -that my lord the king hath spoken: for thy servant Joab, he bade me, -and he put all these words in the mouth of thine handmaid: 14:20 To -fetch about this form of speech hath thy servant Joab done this thing: -and my lord is wise, according to the wisdom of an angel of God, to -know all things that are in the earth. - -14:21 And the king said unto Joab, Behold now, I have done this thing: -go therefore, bring the young man Absalom again. - -14:22 And Joab fell to the ground on his face, and bowed himself, and -thanked the king: and Joab said, To day thy servant knoweth that I -have found grace in thy sight, my lord, O king, in that the king hath -fulfilled the request of his servant. - -14:23 So Joab arose and went to Geshur, and brought Absalom to -Jerusalem. - -14:24 And the king said, Let him turn to his own house, and let him -not see my face. So Absalom returned to his own house, and saw not the -king's face. - -14:25 But in all Israel there was none to be so much praised as -Absalom for his beauty: from the sole of his foot even to the crown of -his head there was no blemish in him. - -14:26 And when he polled his head, (for it was at every year's end -that he polled it: because the hair was heavy on him, therefore he -polled it:) he weighed the hair of his head at two hundred shekels -after the king's weight. - -14:27 And unto Absalom there were born three sons, and one daughter, -whose name was Tamar: she was a woman of a fair countenance. - -14:28 So Absalom dwelt two full years in Jerusalem, and saw not the -king's face. - -14:29 Therefore Absalom sent for Joab, to have sent him to the king; -but he would not come to him: and when he sent again the second time, -he would not come. - -14:30 Therefore he said unto his servants, See, Joab's field is near -mine, and he hath barley there; go and set it on fire. And Absalom's -servants set the field on fire. - -14:31 Then Joab arose, and came to Absalom unto his house, and said -unto him, Wherefore have thy servants set my field on fire? 14:32 And -Absalom answered Joab, Behold, I sent unto thee, saying, Come hither, -that I may send thee to the king, to say, Wherefore am I come from -Geshur? it had been good for me to have been there still: now -therefore let me see the king's face; and if there be any iniquity in -me, let him kill me. - -14:33 So Joab came to the king, and told him: and when he had called -for Absalom, he came to the king, and bowed himself on his face to the -ground before the king: and the king kissed Absalom. - -15:1 And it came to pass after this, that Absalom prepared him -chariots and horses, and fifty men to run before him. - -15:2 And Absalom rose up early, and stood beside the way of the gate: -and it was so, that when any man that had a controversy came to the -king for judgment, then Absalom called unto him, and said, Of what -city art thou? And he said, Thy servant is of one of the tribes of -Israel. - -15:3 And Absalom said unto him, See, thy matters are good and right; -but there is no man deputed of the king to hear thee. - -15:4 Absalom said moreover, Oh that I were made judge in the land, -that every man which hath any suit or cause might come unto me, and I -would do him justice! 15:5 And it was so, that when any man came nigh -to him to do him obeisance, he put forth his hand, and took him, and -kissed him. - -15:6 And on this manner did Absalom to all Israel that came to the -king for judgment: so Absalom stole the hearts of the men of Israel. - -15:7 And it came to pass after forty years, that Absalom said unto the -king, I pray thee, let me go and pay my vow, which I have vowed unto -the LORD, in Hebron. - -15:8 For thy servant vowed a vow while I abode at Geshur in Syria, -saying, If the LORD shall bring me again indeed to Jerusalem, then I -will serve the LORD. - -15:9 And the king said unto him, Go in peace. So he arose, and went to -Hebron. - -15:10 But Absalom sent spies throughout all the tribes of Israel, -saying, As soon as ye hear the sound of the trumpet, then ye shall -say, Absalom reigneth in Hebron. - -15:11 And with Absalom went two hundred men out of Jerusalem, that -were called; and they went in their simplicity, and they knew not any -thing. - -15:12 And Absalom sent for Ahithophel the Gilonite, David's -counsellor, from his city, even from Giloh, while he offered -sacrifices. And the conspiracy was strong; for the people increased -continually with Absalom. - -15:13 And there came a messenger to David, saying, The hearts of the -men of Israel are after Absalom. - -15:14 And David said unto all his servants that were with him at -Jerusalem, Arise, and let us flee; for we shall not else escape from -Absalom: make speed to depart, lest he overtake us suddenly, and bring -evil upon us, and smite the city with the edge of the sword. - -15:15 And the king's servants said unto the king, Behold, thy servants -are ready to do whatsoever my lord the king shall appoint. - -15:16 And the king went forth, and all his household after him. And -the king left ten women, which were concubines, to keep the house. - -15:17 And the king went forth, and all the people after him, and -tarried in a place that was far off. - -15:18 And all his servants passed on beside him; and all the -Cherethites, and all the Pelethites, and all the Gittites, six hundred -men which came after him from Gath, passed on before the king. - -15:19 Then said the king to Ittai the Gittite, Wherefore goest thou -also with us? return to thy place, and abide with the king: for thou -art a stranger, and also an exile. - -15:20 Whereas thou camest but yesterday, should I this day make thee -go up and down with us? seeing I go whither I may, return thou, and -take back thy brethren: mercy and truth be with thee. - -15:21 And Ittai answered the king, and said, As the LORD liveth, and -as my lord the king liveth, surely in what place my lord the king -shall be, whether in death or life, even there also will thy servant -be. - -15:22 And David said to Ittai, Go and pass over. And Ittai the Gittite -passed over, and all his men, and all the little ones that were with -him. - -15:23 And all the country wept with a loud voice, and all the people -passed over: the king also himself passed over the brook Kidron, and -all the people passed over, toward the way of the wilderness. - -15:24 And lo Zadok also, and all the Levites were with him, bearing -the ark of the covenant of God: and they set down the ark of God; and -Abiathar went up, until all the people had done passing out of the -city. - -15:25 And the king said unto Zadok, Carry back the ark of God into the -city: if I shall find favour in the eyes of the LORD, he will bring me -again, and shew me both it, and his habitation: 15:26 But if he thus -say, I have no delight in thee; behold, here am I, let him do to me as -seemeth good unto him. - -15:27 The king said also unto Zadok the priest, Art not thou a seer? -return into the city in peace, and your two sons with you, Ahimaaz thy -son, and Jonathan the son of Abiathar. - -15:28 See, I will tarry in the plain of the wilderness, until there -come word from you to certify me. - -15:29 Zadok therefore and Abiathar carried the ark of God again to -Jerusalem: and they tarried there. - -15:30 And David went up by the ascent of mount Olivet, and wept as he -went up, and had his head covered, and he went barefoot: and all the -people that was with him covered every man his head, and they went up, -weeping as they went up. - -15:31 And one told David, saying, Ahithophel is among the conspirators -with Absalom. And David said, O LORD, I pray thee, turn the counsel of -Ahithophel into foolishness. - -15:32 And it came to pass, that when David was come to the top of the -mount, where he worshipped God, behold, Hushai the Archite came to -meet him with his coat rent, and earth upon his head: 15:33 Unto whom -David said, If thou passest on with me, then thou shalt be a burden -unto me: 15:34 But if thou return to the city, and say unto Absalom, I -will be thy servant, O king; as I have been thy father's servant -hitherto, so will I now also be thy servant: then mayest thou for me -defeat the counsel of Ahithophel. - -15:35 And hast thou not there with thee Zadok and Abiathar the -priests? therefore it shall be, that what thing soever thou shalt -hear out of the king's house, thou shalt tell it to Zadok and Abiathar -the priests. - -15:36 Behold, they have there with them their two sons, Ahimaaz -Zadok's son, and Jonathan Abiathar's son; and by them ye shall send -unto me every thing that ye can hear. - -15:37 So Hushai David's friend came into the city, and Absalom came -into Jerusalem. - -16:1 And when David was a little past the top of the hill, behold, -Ziba the servant of Mephibosheth met him, with a couple of asses -saddled, and upon them two hundred loaves of bread, and an hundred -bunches of raisins, and an hundred of summer fruits, and a bottle of -wine. - -16:2 And the king said unto Ziba, What meanest thou by these? And Ziba -said, The asses be for the king's household to ride on; and the bread -and summer fruit for the young men to eat; and the wine, that such as -be faint in the wilderness may drink. - -16:3 And the king said, And where is thy master's son? And Ziba said -unto the king, Behold, he abideth at Jerusalem: for he said, To day -shall the house of Israel restore me the kingdom of my father. - -16:4 Then said the king to Ziba, Behold, thine are all that pertained -unto Mephibosheth. And Ziba said, I humbly beseech thee that I may -find grace in thy sight, my lord, O king. - -16:5 And when king David came to Bahurim, behold, thence came out a -man of the family of the house of Saul, whose name was Shimei, the son -of Gera: he came forth, and cursed still as he came. - -16:6 And he cast stones at David, and at all the servants of king -David: and all the people and all the mighty men were on his right -hand and on his left. - -16:7 And thus said Shimei when he cursed, Come out, come out, thou -bloody man, and thou man of Belial: 16:8 The LORD hath returned upon -thee all the blood of the house of Saul, in whose stead thou hast -reigned; and the LORD hath delivered the kingdom into the hand of -Absalom thy son: and, behold, thou art taken in thy mischief, because -thou art a bloody man. - -16:9 Then said Abishai the son of Zeruiah unto the king, Why should -this dead dog curse my lord the king? let me go over, I pray thee, and -take off his head. - -16:10 And the king said, What have I to do with you, ye sons of -Zeruiah? so let him curse, because the LORD hath said unto him, Curse -David. Who shall then say, Wherefore hast thou done so? 16:11 And -David said to Abishai, and to all his servants, Behold, my son, which -came forth of my bowels, seeketh my life: how much more now may this -Benjamite do it? let him alone, and let him curse; for the LORD hath -bidden him. - -16:12 It may be that the LORD will look on mine affliction, and that -the LORD will requite me good for his cursing this day. - -16:13 And as David and his men went by the way, Shimei went along on -the hill's side over against him, and cursed as he went, and threw -stones at him, and cast dust. - -16:14 And the king, and all the people that were with him, came weary, -and refreshed themselves there. - -16:15 And Absalom, and all the people the men of Israel, came to -Jerusalem, and Ahithophel with him. - -16:16 And it came to pass, when Hushai the Archite, David's friend, -was come unto Absalom, that Hushai said unto Absalom, God save the -king, God save the king. - -16:17 And Absalom said to Hushai, Is this thy kindness to thy friend? -why wentest thou not with thy friend? 16:18 And Hushai said unto -Absalom, Nay; but whom the LORD, and this people, and all the men of -Israel, choose, his will I be, and with him will I abide. - -16:19 And again, whom should I serve? should I not serve in the -presence of his son? as I have served in thy father's presence, so -will I be in thy presence. - -16:20 Then said Absalom to Ahithophel, Give counsel among you what we -shall do. - -16:21 And Ahithophel said unto Absalom, Go in unto thy father's -concubines, which he hath left to keep the house; and all Israel shall -hear that thou art abhorred of thy father: then shall the hands of all -that are with thee be strong. - -16:22 So they spread Absalom a tent upon the top of the house; and -Absalom went in unto his father's concubines in the sight of all -Israel. - -16:23 And the counsel of Ahithophel, which he counselled in those -days, was as if a man had enquired at the oracle of God: so was all -the counsel of Ahithophel both with David and with Absalom. - -17:1 Moreover Ahithophel said unto Absalom, Let me now choose out -twelve thousand men, and I will arise and pursue after David this -night: 17:2 And I will come upon him while he is weary and weak -handed, and will make him afraid: and all the people that are with him -shall flee; and I will smite the king only: 17:3 And I will bring back -all the people unto thee: the man whom thou seekest is as if all -returned: so all the people shall be in peace. - -17:4 And the saying pleased Absalom well, and all the elders of -Israel. - -17:5 Then said Absalom, Call now Hushai the Archite also, and let us -hear likewise what he saith. - -17:6 And when Hushai was come to Absalom, Absalom spake unto him, -saying, Ahithophel hath spoken after this manner: shall we do after -his saying? if not; speak thou. - -17:7 And Hushai said unto Absalom, The counsel that Ahithophel hath -given is not good at this time. - -17:8 For, said Hushai, thou knowest thy father and his men, that they -be mighty men, and they be chafed in their minds, as a bear robbed of -her whelps in the field: and thy father is a man of war, and will not -lodge with the people. - -17:9 Behold, he is hid now in some pit, or in some other place: and it -will come to pass, when some of them be overthrown at the first, that -whosoever heareth it will say, There is a slaughter among the people -that follow Absalom. - -17:10 And he also that is valiant, whose heart is as the heart of a -lion, shall utterly melt: for all Israel knoweth that thy father is a -mighty man, and they which be with him are valiant men. - -17:11 Therefore I counsel that all Israel be generally gathered unto -thee, from Dan even to Beersheba, as the sand that is by the sea for -multitude; and that thou go to battle in thine own person. - -17:12 So shall we come upon him in some place where he shall be found, -and we will light upon him as the dew falleth on the ground: and of -him and of all the men that are with him there shall not be left so -much as one. - -17:13 Moreover, if he be gotten into a city, then shall all Israel -bring ropes to that city, and we will draw it into the river, until -there be not one small stone found there. - -17:14 And Absalom and all the men of Israel said, The counsel of -Hushai the Archite is better than the counsel of Ahithophel. For the -LORD had appointed to defeat the good counsel of Ahithophel, to the -intent that the LORD might bring evil upon Absalom. - -17:15 Then said Hushai unto Zadok and to Abiathar the priests, Thus -and thus did Ahithophel counsel Absalom and the elders of Israel; and -thus and thus have I counselled. - -17:16 Now therefore send quickly, and tell David, saying, Lodge not -this night in the plains of the wilderness, but speedily pass over; -lest the king be swallowed up, and all the people that are with him. - -17:17 Now Jonathan and Ahimaaz stayed by Enrogel; for they might not -be seen to come into the city: and a wench went and told them; and -they went and told king David. - -17:18 Nevertheless a lad saw them, and told Absalom: but they went -both of them away quickly, and came to a man's house in Bahurim, which -had a well in his court; whither they went down. - -17:19 And the woman took and spread a covering over the well's mouth, -and spread ground corn thereon; and the thing was not known. - -17:20 And when Absalom's servants came to the woman to the house, they -said, Where is Ahimaaz and Jonathan? And the woman said unto them, -They be gone over the brook of water. And when they had sought and -could not find them, they returned to Jerusalem. - -17:21 And it came to pass, after they were departed, that they came up -out of the well, and went and told king David, and said unto David, -Arise, and pass quickly over the water: for thus hath Ahithophel -counselled against you. - -17:22 Then David arose, and all the people that were with him, and -they passed over Jordan: by the morning light there lacked not one of -them that was not gone over Jordan. - -17:23 And when Ahithophel saw that his counsel was not followed, he -saddled his ass, and arose, and gat him home to his house, to his -city, and put his household in order, and hanged himself, and died, -and was buried in the sepulchre of his father. - -17:24 Then David came to Mahanaim. And Absalom passed over Jordan, he -and all the men of Israel with him. - -17:25 And Absalom made Amasa captain of the host instead of Joab: -which Amasa was a man's son, whose name was Ithra an Israelite, that -went in to Abigail the daughter of Nahash, sister to Zeruiah Joab's -mother. - -17:26 So Israel and Absalom pitched in the land of Gilead. - -17:27 And it came to pass, when David was come to Mahanaim, that Shobi -the son of Nahash of Rabbah of the children of Ammon, and Machir the -son of Ammiel of Lodebar, and Barzillai the Gileadite of Rogelim, -17:28 Brought beds, and basons, and earthen vessels, and wheat, and -barley, and flour, and parched corn, and beans, and lentiles, and -parched pulse, 17:29 And honey, and butter, and sheep, and cheese of -kine, for David, and for the people that were with him, to eat: for -they said, The people is hungry, and weary, and thirsty, in the -wilderness. - -18:1 And David numbered the people that were with him, and set -captains of thousands, and captains of hundreds over them. - -18:2 And David sent forth a third part of the people under the hand of -Joab, and a third part under the hand of Abishai the son of Zeruiah, -Joab's brother, and a third part under the hand of Ittai the Gittite. -And the king said unto the people, I will surely go forth with you -myself also. - -18:3 But the people answered, Thou shalt not go forth: for if we flee -away, they will not care for us; neither if half of us die, will they -care for us: but now thou art worth ten thousand of us: therefore now -it is better that thou succour us out of the city. - -18:4 And the king said unto them, What seemeth you best I will do. And -the king stood by the gate side, and all the people came out by -hundreds and by thousands. - -18:5 And the king commanded Joab and Abishai and Ittai, saying, Deal -gently for my sake with the young man, even with Absalom. And all the -people heard when the king gave all the captains charge concerning -Absalom. - -18:6 So the people went out into the field against Israel: and the -battle was in the wood of Ephraim; 18:7 Where the people of Israel -were slain before the servants of David, and there was there a great -slaughter that day of twenty thousand men. - -18:8 For the battle was there scattered over the face of all the -country: and the wood devoured more people that day than the sword -devoured. - -18:9 And Absalom met the servants of David. And Absalom rode upon a -mule, and the mule went under the thick boughs of a great oak, and his -head caught hold of the oak, and he was taken up between the heaven -and the earth; and the mule that was under him went away. - -18:10 And a certain man saw it, and told Joab, and said, Behold, I saw -Absalom hanged in an oak. - -18:11 And Joab said unto the man that told him, And, behold, thou -sawest him, and why didst thou not smite him there to the ground? and -I would have given thee ten shekels of silver, and a girdle. - -18:12 And the man said unto Joab, Though I should receive a thousand -shekels of silver in mine hand, yet would I not put forth mine hand -against the king's son: for in our hearing the king charged thee and -Abishai and Ittai, saying, Beware that none touch the young man -Absalom. - -18:13 Otherwise I should have wrought falsehood against mine own life: -for there is no matter hid from the king, and thou thyself wouldest -have set thyself against me. - -18:14 Then said Joab, I may not tarry thus with thee. And he took -three darts in his hand, and thrust them through the heart of Absalom, -while he was yet alive in the midst of the oak. - -18:15 And ten young men that bare Joab's armour compassed about and -smote Absalom, and slew him. - -18:16 And Joab blew the trumpet, and the people returned from pursuing -after Israel: for Joab held back the people. - -18:17 And they took Absalom, and cast him into a great pit in the -wood, and laid a very great heap of stones upon him: and all Israel -fled every one to his tent. - -18:18 Now Absalom in his lifetime had taken and reared up for himself -a pillar, which is in the king's dale: for he said, I have no son to -keep my name in remembrance: and he called the pillar after his own -name: and it is called unto this day, Absalom's place. - -18:19 Then said Ahimaaz the son of Zadok, Let me now run, and bear the -king tidings, how that the LORD hath avenged him of his enemies. - -18:20 And Joab said unto him, Thou shalt not bear tidings this day, -but thou shalt bear tidings another day: but this day thou shalt bear -no tidings, because the king's son is dead. - -18:21 Then said Joab to Cushi, Go tell the king what thou hast seen. -And Cushi bowed himself unto Joab, and ran. - -18:22 Then said Ahimaaz the son of Zadok yet again to Joab, But -howsoever, let me, I pray thee, also run after Cushi. And Joab said, -Wherefore wilt thou run, my son, seeing that thou hast no tidings -ready? 18:23 But howsoever, said he, let me run. And he said unto -him, Run. Then Ahimaaz ran by the way of the plain, and overran Cushi. - -18:24 And David sat between the two gates: and the watchman went up to -the roof over the gate unto the wall, and lifted up his eyes, and -looked, and behold a man running alone. - -18:25 And the watchman cried, and told the king. And the king said, If -he be alone, there is tidings in his mouth. And he came apace, and -drew near. - -18:26 And the watchman saw another man running: and the watchman -called unto the porter, and said, Behold another man running alone. -And the king said, He also bringeth tidings. - -18:27 And the watchman said, Me thinketh the running of the foremost -is like the running of Ahimaaz the son of Zadok. And the king said, He -is a good man, and cometh with good tidings. - -18:28 And Ahimaaz called, and said unto the king, All is well. And he -fell down to the earth upon his face before the king, and said, -Blessed be the LORD thy God, which hath delivered up the men that -lifted up their hand against my lord the king. - -18:29 And the king said, Is the young man Absalom safe? And Ahimaaz -answered, When Joab sent the king's servant, and me thy servant, I saw -a great tumult, but I knew not what it was. - -18:30 And the king said unto him, Turn aside, and stand here. And he -turned aside, and stood still. - -18:31 And, behold, Cushi came; and Cushi said, Tidings, my lord the -king: for the LORD hath avenged thee this day of all them that rose up -against thee. - -18:32 And the king said unto Cushi, Is the young man Absalom safe? And -Cushi answered, The enemies of my lord the king, and all that rise -against thee to do thee hurt, be as that young man is. - -18:33 And the king was much moved, and went up to the chamber over the -gate, and wept: and as he went, thus he said, O my son Absalom, my -son, my son Absalom! would God I had died for thee, O Absalom, my son, -my son! 19:1 And it was told Joab, Behold, the king weepeth and -mourneth for Absalom. - -19:2 And the victory that day was turned into mourning unto all the -people: for the people heard say that day how the king was grieved for -his son. - -19:3 And the people gat them by stealth that day into the city, as -people being ashamed steal away when they flee in battle. - -19:4 But the king covered his face, and the king cried with a loud -voice, O my son Absalom, O Absalom, my son, my son! 19:5 And Joab -came into the house to the king, and said, Thou hast shamed this day -the faces of all thy servants, which this day have saved thy life, and -the lives of thy sons and of thy daughters, and the lives of thy -wives, and the lives of thy concubines; 19:6 In that thou lovest thine -enemies, and hatest thy friends. For thou hast declared this day, that -thou regardest neither princes nor servants: for this day I perceive, -that if Absalom had lived, and all we had died this day, then it had -pleased thee well. - -19:7 Now therefore arise, go forth, and speak comfortably unto thy -servants: for I swear by the LORD, if thou go not forth, there will -not tarry one with thee this night: and that will be worse unto thee -than all the evil that befell thee from thy youth until now. - -19:8 Then the king arose, and sat in the gate. And they told unto all -the people, saying, Behold, the king doth sit in the gate. And all the -people came before the king: for Israel had fled every man to his -tent. - -19:9 And all the people were at strife throughout all the tribes of -Israel, saying, The king saved us out of the hand of our enemies, and -he delivered us out of the hand of the Philistines; and now he is fled -out of the land for Absalom. - -19:10 And Absalom, whom we anointed over us, is dead in battle. Now -therefore why speak ye not a word of bringing the king back? 19:11 -And king David sent to Zadok and to Abiathar the priests, saying, -Speak unto the elders of Judah, saying, Why are ye the last to bring -the king back to his house? seeing the speech of all Israel is come to -the king, even to his house. - -19:12 Ye are my brethren, ye are my bones and my flesh: wherefore then -are ye the last to bring back the king? 19:13 And say ye to Amasa, -Art thou not of my bone, and of my flesh? God do so to me, and more -also, if thou be not captain of the host before me continually in the -room of Joab. - -19:14 And he bowed the heart of all the men of Judah, even as the -heart of one man; so that they sent this word unto the king, Return -thou, and all thy servants. - -19:15 So the king returned, and came to Jordan. And Judah came to -Gilgal, to go to meet the king, to conduct the king over Jordan. - -19:16 And Shimei the son of Gera, a Benjamite, which was of Bahurim, -hasted and came down with the men of Judah to meet king David. - -19:17 And there were a thousand men of Benjamin with him, and Ziba the -servant of the house of Saul, and his fifteen sons and his twenty -servants with him; and they went over Jordan before the king. - -19:18 And there went over a ferry boat to carry over the king's -household, and to do what he thought good. And Shimei the son of Gera -fell down before the king, as he was come over Jordan; 19:19 And said -unto the king, Let not my lord impute iniquity unto me, neither do -thou remember that which thy servant did perversely the day that my -lord the king went out of Jerusalem, that the king should take it to -his heart. - -19:20 For thy servant doth know that I have sinned: therefore, behold, -I am come the first this day of all the house of Joseph to go down to -meet my lord the king. - -19:21 But Abishai the son of Zeruiah answered and said, Shall not -Shimei be put to death for this, because he cursed the LORD's -anointed? 19:22 And David said, What have I to do with you, ye sons -of Zeruiah, that ye should this day be adversaries unto me? shall -there any man be put to death this day in Israel? for do not I know -that I am this day king over Israel? 19:23 Therefore the king said -unto Shimei, Thou shalt not die. And the king sware unto him. - -19:24 And Mephibosheth the son of Saul came down to meet the king, and -had neither dressed his feet, nor trimmed his beard, nor washed his -clothes, from the day the king departed until the day he came again in -peace. - -19:25 And it came to pass, when he was come to Jerusalem to meet the -king, that the king said unto him, Wherefore wentest not thou with me, -Mephibosheth? 19:26 And he answered, My lord, O king, my servant -deceived me: for thy servant said, I will saddle me an ass, that I may -ride thereon, and go to the king; because thy servant is lame. - -19:27 And he hath slandered thy servant unto my lord the king; but my -lord the king is as an angel of God: do therefore what is good in -thine eyes. - -19:28 For all of my father's house were but dead men before my lord -the king: yet didst thou set thy servant among them that did eat at -thine own table. What right therefore have I yet to cry any more unto -the king? 19:29 And the king said unto him, Why speakest thou any -more of thy matters? I have said, Thou and Ziba divide the land. - -19:30 And Mephibosheth said unto the king, Yea, let him take all, -forasmuch as my lord the king is come again in peace unto his own -house. - -19:31 And Barzillai the Gileadite came down from Rogelim, and went -over Jordan with the king, to conduct him over Jordan. - -19:32 Now Barzillai was a very aged man, even fourscore years old: and -he had provided the king of sustenance while he lay at Mahanaim; for -he was a very great man. - -19:33 And the king said unto Barzillai, Come thou over with me, and I -will feed thee with me in Jerusalem. - -19:34 And Barzillai said unto the king, How long have I to live, that -I should go up with the king unto Jerusalem? 19:35 I am this day -fourscore years old: and can I discern between good and evil? can thy -servant taste what I eat or what I drink? can I hear any more the -voice of singing men and singing women? wherefore then should thy -servant be yet a burden unto my lord the king? 19:36 Thy servant will -go a little way over Jordan with the king: and why should the king -recompense it me with such a reward? 19:37 Let thy servant, I pray -thee, turn back again, that I may die in mine own city, and be buried -by the grave of my father and of my mother. But behold thy servant -Chimham; let him go over with my lord the king; and do to him what -shall seem good unto thee. - -19:38 And the king answered, Chimham shall go over with me, and I will -do to him that which shall seem good unto thee: and whatsoever thou -shalt require of me, that will I do for thee. - -19:39 And all the people went over Jordan. And when the king was come -over, the king kissed Barzillai, and blessed him; and he returned unto -his own place. - -19:40 Then the king went on to Gilgal, and Chimham went on with him: -and all the people of Judah conducted the king, and also half the -people of Israel. - -19:41 And, behold, all the men of Israel came to the king, and said -unto the king, Why have our brethren the men of Judah stolen thee -away, and have brought the king, and his household, and all David's -men with him, over Jordan? 19:42 And all the men of Judah answered -the men of Israel, Because the king is near of kin to us: wherefore -then be ye angry for this matter? have we eaten at all of the king's -cost? or hath he given us any gift? 19:43 And the men of Israel -answered the men of Judah, and said, We have ten parts in the king, -and we have also more right in David than ye: why then did ye despise -us, that our advice should not be first had in bringing back our king? -And the words of the men of Judah were fiercer than the words of the -men of Israel. - -20:1 And there happened to be there a man of Belial, whose name was -Sheba, the son of Bichri, a Benjamite: and he blew a trumpet, and -said, We have no part in David, neither have we inheritance in the son -of Jesse: every man to his tents, O Israel. - -20:2 So every man of Israel went up from after David, and followed -Sheba the son of Bichri: but the men of Judah clave unto their king, -from Jordan even to Jerusalem. - -20:3 And David came to his house at Jerusalem; and the king took the -ten women his concubines, whom he had left to keep the house, and put -them in ward, and fed them, but went not in unto them. So they were -shut up unto the day of their death, living in widowhood. - -20:4 Then said the king to Amasa, Assemble me the men of Judah within -three days, and be thou here present. - -20:5 So Amasa went to assemble the men of Judah: but he tarried longer -than the set time which he had appointed him. - -20:6 And David said to Abishai, Now shall Sheba the son of Bichri do -us more harm than did Absalom: take thou thy lord's servants, and -pursue after him, lest he get him fenced cities, and escape us. - -20:7 And there went out after him Joab's men, and the Cherethites, and -the Pelethites, and all the mighty men: and they went out of -Jerusalem, to pursue after Sheba the son of Bichri. - -20:8 When they were at the great stone which is in Gibeon, Amasa went -before them. And Joab's garment that he had put on was girded unto -him, and upon it a girdle with a sword fastened upon his loins in the -sheath thereof; and as he went forth it fell out. - -20:9 And Joab said to Amasa, Art thou in health, my brother? And Joab -took Amasa by the beard with the right hand to kiss him. - -20:10 But Amasa took no heed to the sword that was in Joab's hand: so -he smote him therewith in the fifth rib, and shed out his bowels to -the ground, and struck him not again; and he died. So Joab and Abishai -his brother pursued after Sheba the son of Bichri. - -20:11 And one of Joab's men stood by him, and said, He that favoureth -Joab, and he that is for David, let him go after Joab. - -20:12 And Amasa wallowed in blood in the midst of the highway. And -when the man saw that all the people stood still, he removed Amasa out -of the highway into the field, and cast a cloth upon him, when he saw -that every one that came by him stood still. - -20:13 When he was removed out of the highway, all the people went on -after Joab, to pursue after Sheba the son of Bichri. - -20:14 And he went through all the tribes of Israel unto Abel, and to -Bethmaachah, and all the Berites: and they were gathered together, and -went also after him. - -20:15 And they came and besieged him in Abel of Bethmaachah, and they -cast up a bank against the city, and it stood in the trench: and all -the people that were with Joab battered the wall, to throw it down. - -20:16 Then cried a wise woman out of the city, Hear, hear; say, I pray -you, unto Joab, Come near hither, that I may speak with thee. - -20:17 And when he was come near unto her, the woman said, Art thou -Joab? And he answered, I am he. Then she said unto him, Hear the -words of thine handmaid. And he answered, I do hear. - -20:18 Then she spake, saying, They were wont to speak in old time, -saying, They shall surely ask counsel at Abel: and so they ended the -matter. - -20:19 I am one of them that are peaceable and faithful in Israel: thou -seekest to destroy a city and a mother in Israel: why wilt thou -swallow up the inheritance of the LORD? 20:20 And Joab answered and -said, Far be it, far be it from me, that I should swallow up or -destroy. - -20:21 The matter is not so: but a man of mount Ephraim, Sheba the son -of Bichri by name, hath lifted up his hand against the king, even -against David: deliver him only, and I will depart from the city. And -the woman said unto Joab, Behold, his head shall be thrown to thee -over the wall. - -20:22 Then the woman went unto all the people in her wisdom. And they -cut off the head of Sheba the son of Bichri, and cast it out to Joab. -And he blew a trumpet, and they retired from the city, every man to -his tent. And Joab returned to Jerusalem unto the king. - -20:23 Now Joab was over all the host of Israel: and Benaiah the son of -Jehoiada was over the Cherethites and over the Pelethites: 20:24 And -Adoram was over the tribute: and Jehoshaphat the son of Ahilud was -recorder: 20:25 And Sheva was scribe: and Zadok and Abiathar were the -priests: 20:26 And Ira also the Jairite was a chief ruler about David. - -21:1 Then there was a famine in the days of David three years, year -after year; and David enquired of the LORD. And the LORD answered, It -is for Saul, and for his bloody house, because he slew the Gibeonites. - -21:2 And the king called the Gibeonites, and said unto them; (now the -Gibeonites were not of the children of Israel, but of the remnant of -the Amorites; and the children of Israel had sworn unto them: and Saul -sought to slay them in his zeal to the children of Israel and Judah.) -21:3 Wherefore David said unto the Gibeonites, What shall I do for -you? and wherewith shall I make the atonement, that ye may bless the -inheritance of the LORD? 21:4 And the Gibeonites said unto him, We -will have no silver nor gold of Saul, nor of his house; neither for us -shalt thou kill any man in Israel. And he said, What ye shall say, -that will I do for you. - -21:5 And they answered the king, The man that consumed us, and that -devised against us that we should be destroyed from remaining in any -of the coasts of Israel, 21:6 Let seven men of his sons be delivered -unto us, and we will hang them up unto the LORD in Gibeah of Saul, -whom the LORD did choose. And the king said, I will give them. - -21:7 But the king spared Mephibosheth, the son of Jonathan the son of -Saul, because of the LORD's oath that was between them, between David -and Jonathan the son of Saul. - -21:8 But the king took the two sons of Rizpah the daughter of Aiah, -whom she bare unto Saul, Armoni and Mephibosheth; and the five sons of -Michal the daughter of Saul, whom she brought up for Adriel the son of -Barzillai the Meholathite: 21:9 And he delivered them into the hands -of the Gibeonites, and they hanged them in the hill before the LORD: -and they fell all seven together, and were put to death in the days of -harvest, in the first days, in the beginning of barley harvest. - -21:10 And Rizpah the daughter of Aiah took sackcloth, and spread it -for her upon the rock, from the beginning of harvest until water -dropped upon them out of heaven, and suffered neither the birds of the -air to rest on them by day, nor the beasts of the field by night. - -21:11 And it was told David what Rizpah the daughter of Aiah, the -concubine of Saul, had done. - -21:12 And David went and took the bones of Saul and the bones of -Jonathan his son from the men of Jabeshgilead, which had stolen them -from the street of Bethshan, where the Philistines had hanged them, -when the Philistines had slain Saul in Gilboa: 21:13 And he brought up -from thence the bones of Saul and the bones of Jonathan his son; and -they gathered the bones of them that were hanged. - -21:14 And the bones of Saul and Jonathan his son buried they in the -country of Benjamin in Zelah, in the sepulchre of Kish his father: and -they performed all that the king commanded. And after that God was -intreated for the land. - -21:15 Moreover the Philistines had yet war again with Israel; and -David went down, and his servants with him, and fought against the -Philistines: and David waxed faint. - -21:16 And Ishbibenob, which was of the sons of the giant, the weight -of whose spear weighed three hundred shekels of brass in weight, he -being girded with a new sword, thought to have slain David. - -21:17 But Abishai the son of Zeruiah succoured him, and smote the -Philistine, and killed him. Then the men of David sware unto him, -saying, Thou shalt go no more out with us to battle, that thou quench -not the light of Israel. - -21:18 And it came to pass after this, that there was again a battle -with the Philistines at Gob: then Sibbechai the Hushathite slew Saph, -which was of the sons of the giant. - -21:19 And there was again a battle in Gob with the Philistines, where -Elhanan the son of Jaareoregim, a Bethlehemite, slew the brother of -Goliath the Gittite, the staff of whose spear was like a weaver's -beam. - -21:20 And there was yet a battle in Gath, where was a man of great -stature, that had on every hand six fingers, and on every foot six -toes, four and twenty in number; and he also was born to the giant. - -21:21 And when he defied Israel, Jonathan the son of Shimeah the -brother of David slew him. - -21:22 These four were born to the giant in Gath, and fell by the hand -of David, and by the hand of his servants. - -22:1 And David spake unto the LORD the words of this song in the day -that the LORD had delivered him out of the hand of all his enemies, -and out of the hand of Saul: 22:2 And he said, The LORD is my rock, -and my fortress, and my deliverer; 22:3 The God of my rock; in him -will I trust: he is my shield, and the horn of my salvation, my high -tower, and my refuge, my saviour; thou savest me from violence. - -22:4 I will call on the LORD, who is worthy to be praised: so shall I -be saved from mine enemies. - -22:5 When the waves of death compassed me, the floods of ungodly men -made me afraid; 22:6 The sorrows of hell compassed me about; the -snares of death prevented me; 22:7 In my distress I called upon the -LORD, and cried to my God: and he did hear my voice out of his temple, -and my cry did enter into his ears. - -22:8 Then the earth shook and trembled; the foundations of heaven -moved and shook, because he was wroth. - -22:9 There went up a smoke out of his nostrils, and fire out of his -mouth devoured: coals were kindled by it. - -22:10 He bowed the heavens also, and came down; and darkness was under -his feet. - -22:11 And he rode upon a cherub, and did fly: and he was seen upon the -wings of the wind. - -22:12 And he made darkness pavilions round about him, dark waters, and -thick clouds of the skies. - -22:13 Through the brightness before him were coals of fire kindled. - -22:14 The LORD thundered from heaven, and the most High uttered his -voice. - -22:15 And he sent out arrows, and scattered them; lightning, and -discomfited them. - -22:16 And the channels of the sea appeared, the foundations of the -world were discovered, at the rebuking of the LORD, at the blast of -the breath of his nostrils. - -22:17 He sent from above, he took me; he drew me out of many waters; -22:18 He delivered me from my strong enemy, and from them that hated -me: for they were too strong for me. - -22:19 They prevented me in the day of my calamity: but the LORD was my -stay. - -22:20 He brought me forth also into a large place: he delivered me, -because he delighted in me. - -22:21 The LORD rewarded me according to my righteousness: according to -the cleanness of my hands hath he recompensed me. - -22:22 For I have kept the ways of the LORD, and have not wickedly -departed from my God. - -22:23 For all his judgments were before me: and as for his statutes, I -did not depart from them. - -22:24 I was also upright before him, and have kept myself from mine -iniquity. - -22:25 Therefore the LORD hath recompensed me according to my -righteousness; according to my cleanness in his eye sight. - -22:26 With the merciful thou wilt shew thyself merciful, and with the -upright man thou wilt shew thyself upright. - -22:27 With the pure thou wilt shew thyself pure; and with the froward -thou wilt shew thyself unsavoury. - -22:28 And the afflicted people thou wilt save: but thine eyes are upon -the haughty, that thou mayest bring them down. - -22:29 For thou art my lamp, O LORD: and the LORD will lighten my -darkness. - -22:30 For by thee I have run through a troop: by my God have I leaped -over a wall. - -22:31 As for God, his way is perfect; the word of the LORD is tried: -he is a buckler to all them that trust in him. - -22:32 For who is God, save the LORD? and who is a rock, save our God? -22:33 God is my strength and power: and he maketh my way perfect. - -22:34 He maketh my feet like hinds' feet: and setteth me upon my high -places. - -22:35 He teacheth my hands to war; so that a bow of steel is broken by -mine arms. - -22:36 Thou hast also given me the shield of thy salvation: and thy -gentleness hath made me great. - -22:37 Thou hast enlarged my steps under me; so that my feet did not -slip. - -22:38 I have pursued mine enemies, and destroyed them; and turned not -again until I had consumed them. - -22:39 And I have consumed them, and wounded them, that they could not -arise: yea, they are fallen under my feet. - -22:40 For thou hast girded me with strength to battle: them that rose -up against me hast thou subdued under me. - -22:41 Thou hast also given me the necks of mine enemies, that I might -destroy them that hate me. - -22:42 They looked, but there was none to save; even unto the LORD, but -he answered them not. - -22:43 Then did I beat them as small as the dust of the earth, I did -stamp them as the mire of the street, and did spread them abroad. - -22:44 Thou also hast delivered me from the strivings of my people, -thou hast kept me to be head of the heathen: a people which I knew not -shall serve me. - -22:45 Strangers shall submit themselves unto me: as soon as they hear, -they shall be obedient unto me. - -22:46 Strangers shall fade away, and they shall be afraid out of their -close places. - -22:47 The LORD liveth; and blessed be my rock; and exalted be the God -of the rock of my salvation. - -22:48 It is God that avengeth me, and that bringeth down the people -under me. - -22:49 And that bringeth me forth from mine enemies: thou also hast -lifted me up on high above them that rose up against me: thou hast -delivered me from the violent man. - -22:50 Therefore I will give thanks unto thee, O LORD, among the -heathen, and I will sing praises unto thy name. - -22:51 He is the tower of salvation for his king: and sheweth mercy to -his anointed, unto David, and to his seed for evermore. - -23:1 Now these be the last words of David. David the son of Jesse -said, and the man who was raised up on high, the anointed of the God -of Jacob, and the sweet psalmist of Israel, said, 23:2 The Spirit of -the LORD spake by me, and his word was in my tongue. - -23:3 The God of Israel said, the Rock of Israel spake to me, He that -ruleth over men must be just, ruling in the fear of God. - -23:4 And he shall be as the light of the morning, when the sun riseth, -even a morning without clouds; as the tender grass springing out of -the earth by clear shining after rain. - -23:5 Although my house be not so with God; yet he hath made with me an -everlasting covenant, ordered in all things, and sure: for this is all -my salvation, and all my desire, although he make it not to grow. - -23:6 But the sons of Belial shall be all of them as thorns thrust -away, because they cannot be taken with hands: 23:7 But the man that -shall touch them must be fenced with iron and the staff of a spear; -and they shall be utterly burned with fire in the same place. - -23:8 These be the names of the mighty men whom David had: The -Tachmonite that sat in the seat, chief among the captains; the same -was Adino the Eznite: he lift up his spear against eight hundred, whom -he slew at one time. - -23:9 And after him was Eleazar the son of Dodo the Ahohite, one of the -three mighty men with David, when they defied the Philistines that -were there gathered together to battle, and the men of Israel were -gone away: 23:10 He arose, and smote the Philistines until his hand -was weary, and his hand clave unto the sword: and the LORD wrought a -great victory that day; and the people returned after him only to -spoil. - -23:11 And after him was Shammah the son of Agee the Hararite. And the -Philistines were gathered together into a troop, where was a piece of -ground full of lentiles: and the people fled from the Philistines. - -23:12 But he stood in the midst of the ground, and defended it, and -slew the Philistines: and the LORD wrought a great victory. - -23:13 And three of the thirty chief went down, and came to David in -the harvest time unto the cave of Adullam: and the troop of the -Philistines pitched in the valley of Rephaim. - -23:14 And David was then in an hold, and the garrison of the -Philistines was then in Bethlehem. - -23:15 And David longed, and said, Oh that one would give me drink of -the water of the well of Bethlehem, which is by the gate! 23:16 And -the three mighty men brake through the host of the Philistines, and -drew water out of the well of Bethlehem, that was by the gate, and -took it, and brought it to David: nevertheless he would not drink -thereof, but poured it out unto the LORD. - -23:17 And he said, Be it far from me, O LORD, that I should do this: -is not this the blood of the men that went in jeopardy of their lives? -therefore he would not drink it. These things did these three mighty -men. - -23:18 And Abishai, the brother of Joab, the son of Zeruiah, was chief -among three. And he lifted up his spear against three hundred, and -slew them, and had the name among three. - -23:19 Was he not most honourable of three? therefore he was their -captain: howbeit he attained not unto the first three. - -23:20 And Benaiah the son of Jehoiada, the son of a valiant man, of -Kabzeel, who had done many acts, he slew two lionlike men of Moab: he -went down also and slew a lion in the midst of a pit in time of snow: -23:21 And he slew an Egyptian, a goodly man: and the Egyptian had a -spear in his hand; but he went down to him with a staff, and plucked -the spear out of the Egyptian's hand, and slew him with his own spear. - -23:22 These things did Benaiah the son of Jehoiada, and had the name -among three mighty men. - -23:23 He was more honourable than the thirty, but he attained not to -the first three. And David set him over his guard. - -23:24 Asahel the brother of Joab was one of the thirty; Elhanan the -son of Dodo of Bethlehem, 23:25 Shammah the Harodite, Elika the -Harodite, 23:26 Helez the Paltite, Ira the son of Ikkesh the Tekoite, -23:27 Abiezer the Anethothite, Mebunnai the Hushathite, 23:28 Zalmon -the Ahohite, Maharai the Netophathite, 23:29 Heleb the son of Baanah, -a Netophathite, Ittai the son of Ribai out of Gibeah of the children -of Benjamin, 23:30 Benaiah the Pirathonite, Hiddai of the brooks of -Gaash, 23:31 Abialbon the Arbathite, Azmaveth the Barhumite, 23:32 -Eliahba the Shaalbonite, of the sons of Jashen, Jonathan, 23:33 -Shammah the Hararite, Ahiam the son of Sharar the Hararite, 23:34 -Eliphelet the son of Ahasbai, the son of the Maachathite, Eliam the -son of Ahithophel the Gilonite, 23:35 Hezrai the Carmelite, Paarai the -Arbite, 23:36 Igal the son of Nathan of Zobah, Bani the Gadite, 23:37 -Zelek the Ammonite, Nahari the Beerothite, armourbearer to Joab the -son of Zeruiah, 23:38 Ira an Ithrite, Gareb an Ithrite, 23:39 Uriah -the Hittite: thirty and seven in all. - -24:1 And again the anger of the LORD was kindled against Israel, and -he moved David against them to say, Go, number Israel and Judah. - -24:2 For the king said to Joab the captain of the host, which was with -him, Go now through all the tribes of Israel, from Dan even to -Beersheba, and number ye the people, that I may know the number of the -people. - -24:3 And Joab said unto the king, Now the LORD thy God add unto the -people, how many soever they be, an hundredfold, and that the eyes of -my lord the king may see it: but why doth my lord the king delight in -this thing? 24:4 Notwithstanding the king's word prevailed against -Joab, and against the captains of the host. And Joab and the captains -of the host went out from the presence of the king, to number the -people of Israel. - -24:5 And they passed over Jordan, and pitched in Aroer, on the right -side of the city that lieth in the midst of the river of Gad, and -toward Jazer: 24:6 Then they came to Gilead, and to the land of -Tahtimhodshi; and they came to Danjaan, and about to Zidon, 24:7 And -came to the strong hold of Tyre, and to all the cities of the Hivites, -and of the Canaanites: and they went out to the south of Judah, even -to Beersheba. - -24:8 So when they had gone through all the land, they came to -Jerusalem at the end of nine months and twenty days. - -24:9 And Joab gave up the sum of the number of the people unto the -king: and there were in Israel eight hundred thousand valiant men that -drew the sword; and the men of Judah were five hundred thousand men. - -24:10 And David's heart smote him after that he had numbered the -people. - -And David said unto the LORD, I have sinned greatly in that I have -done: and now, I beseech thee, O LORD, take away the iniquity of thy -servant; for I have done very foolishly. - -24:11 For when David was up in the morning, the word of the LORD came -unto the prophet Gad, David's seer, saying, 24:12 Go and say unto -David, Thus saith the LORD, I offer thee three things; choose thee one -of them, that I may do it unto thee. - -24:13 So Gad came to David, and told him, and said unto him, Shall -seven years of famine come unto thee in thy land? or wilt thou flee -three months before thine enemies, while they pursue thee? or that -there be three days' pestilence in thy land? now advise, and see what -answer I shall return to him that sent me. - -24:14 And David said unto Gad, I am in a great strait: let us fall now -into the hand of the LORD; for his mercies are great: and let me not -fall into the hand of man. - -24:15 So the LORD sent a pestilence upon Israel from the morning even -to the time appointed: and there died of the people from Dan even to -Beersheba seventy thousand men. - -24:16 And when the angel stretched out his hand upon Jerusalem to -destroy it, the LORD repented him of the evil, and said to the angel -that destroyed the people, It is enough: stay now thine hand. And the -angel of the LORD was by the threshingplace of Araunah the Jebusite. - -24:17 And David spake unto the LORD when he saw the angel that smote -the people, and said, Lo, I have sinned, and I have done wickedly: but -these sheep, what have they done? let thine hand, I pray thee, be -against me, and against my father's house. - -24:18 And Gad came that day to David, and said unto him, Go up, rear -an altar unto the LORD in the threshingfloor of Araunah the Jebusite. - -24:19 And David, according to the saying of Gad, went up as the LORD -commanded. - -24:20 And Araunah looked, and saw the king and his servants coming on -toward him: and Araunah went out, and bowed himself before the king on -his face upon the ground. - -24:21 And Araunah said, Wherefore is my lord the king come to his -servant? And David said, To buy the threshingfloor of thee, to build -an altar unto the LORD, that the plague may be stayed from the people. - -24:22 And Araunah said unto David, Let my lord the king take and offer -up what seemeth good unto him: behold, here be oxen for burnt -sacrifice, and threshing instruments and other instruments of the oxen -for wood. - -24:23 All these things did Araunah, as a king, give unto the king. And -Araunah said unto the king, The LORD thy God accept thee. - -24:24 And the king said unto Araunah, Nay; but I will surely buy it of -thee at a price: neither will I offer burnt offerings unto the LORD my -God of that which doth cost me nothing. So David bought the -threshingfloor and the oxen for fifty shekels of silver. - -24:25 And David built there an altar unto the LORD, and offered burnt -offerings and peace offerings. So the LORD was intreated for the land, -and the plague was stayed from Israel. - - - - -The First Book of the Kings - -Commonly Called: - -The Third Book of the Kings - - -1:1 Now king David was old and stricken in years; and they covered -him with clothes, but he gat no heat. - -1:2 Wherefore his servants said unto him, Let there be sought for my -lord the king a young virgin: and let her stand before the king, and -let her cherish him, and let her lie in thy bosom, that my lord the -king may get heat. - -1:3 So they sought for a fair damsel throughout all the coasts of -Israel, and found Abishag a Shunammite, and brought her to the king. - -1:4 And the damsel was very fair, and cherished the king, and -ministered to him: but the king knew her not. - -1:5 Then Adonijah the son of Haggith exalted himself, saying, I will -be king: and he prepared him chariots and horsemen, and fifty men to -run before him. - -1:6 And his father had not displeased him at any time in saying, Why -hast thou done so? and he also was a very goodly man; and his mother -bare him after Absalom. - -1:7 And he conferred with Joab the son of Zeruiah, and with Abiathar -the priest: and they following Adonijah helped him. - -1:8 But Zadok the priest, and Benaiah the son of Jehoiada, and Nathan -the prophet, and Shimei, and Rei, and the mighty men which belonged to -David, were not with Adonijah. - -1:9 And Adonijah slew sheep and oxen and fat cattle by the stone of -Zoheleth, which is by Enrogel, and called all his brethren the king's -sons, and all the men of Judah the king's servants: 1:10 But Nathan -the prophet, and Benaiah, and the mighty men, and Solomon his brother, -he called not. - -1:11 Wherefore Nathan spake unto Bathsheba the mother of Solomon, -saying, Hast thou not heard that Adonijah the son of Haggith doth -reign, and David our lord knoweth it not? 1:12 Now therefore come, -let me, I pray thee, give thee counsel, that thou mayest save thine -own life, and the life of thy son Solomon. - -1:13 Go and get thee in unto king David, and say unto him, Didst not -thou, my lord, O king, swear unto thine handmaid, saying, Assuredly -Solomon thy son shall reign after me, and he shall sit upon my throne? -why then doth Adonijah reign? 1:14 Behold, while thou yet talkest -there with the king, I also will come in after thee, and confirm thy -words. - -1:15 And Bathsheba went in unto the king into the chamber: and the -king was very old; and Abishag the Shunammite ministered unto the -king. - -1:16 And Bathsheba bowed, and did obeisance unto the king. And the -king said, What wouldest thou? 1:17 And she said unto him, My lord, -thou swarest by the LORD thy God unto thine handmaid, saying, -Assuredly Solomon thy son shall reign after me, and he shall sit upon -my throne. - -1:18 And now, behold, Adonijah reigneth; and now, my lord the king, -thou knowest it not: 1:19 And he hath slain oxen and fat cattle and -sheep in abundance, and hath called all the sons of the king, and -Abiathar the priest, and Joab the captain of the host: but Solomon thy -servant hath he not called. - -1:20 And thou, my lord, O king, the eyes of all Israel are upon thee, -that thou shouldest tell them who shall sit on the throne of my lord -the king after him. - -1:21 Otherwise it shall come to pass, when my lord the king shall -sleep with his fathers, that I and my son Solomon shall be counted -offenders. - -1:22 And, lo, while she yet talked with the king, Nathan the prophet -also came in. - -1:23 And they told the king, saying, Behold Nathan the prophet. And -when he was come in before the king, he bowed himself before the king -with his face to the ground. - -1:24 And Nathan said, My lord, O king, hast thou said, Adonijah shall -reign after me, and he shall sit upon my throne? 1:25 For he is gone -down this day, and hath slain oxen and fat cattle and sheep in -abundance, and hath called all the king's sons, and the captains of -the host, and Abiathar the priest; and, behold, they eat and drink -before him, and say, God save king Adonijah. - -1:26 But me, even me thy servant, and Zadok the priest, and Benaiah -the son of Jehoiada, and thy servant Solomon, hath he not called. - -1:27 Is this thing done by my lord the king, and thou hast not shewed -it unto thy servant, who should sit on the throne of my lord the king -after him? 1:28 Then king David answered and said, Call me Bathsheba. -And she came into the king's presence, and stood before the king. - -1:29 And the king sware, and said, As the LORD liveth, that hath -redeemed my soul out of all distress, 1:30 Even as I sware unto thee -by the LORD God of Israel, saying, Assuredly Solomon thy son shall -reign after me, and he shall sit upon my throne in my stead; even so -will I certainly do this day. - -1:31 Then Bathsheba bowed with her face to the earth, and did -reverence to the king, and said, Let my lord king David live for ever. - -1:32 And king David said, Call me Zadok the priest, and Nathan the -prophet, and Benaiah the son of Jehoiada. And they came before the -king. - -1:33 The king also said unto them, Take with you the servants of your -lord, and cause Solomon my son to ride upon mine own mule, and bring -him down to Gihon: 1:34 And let Zadok the priest and Nathan the -prophet anoint him there king over Israel: and blow ye with the -trumpet, and say, God save king Solomon. - -1:35 Then ye shall come up after him, that he may come and sit upon my -throne; for he shall be king in my stead: and I have appointed him to -be ruler over Israel and over Judah. - -1:36 And Benaiah the son of Jehoiada answered the king, and said, -Amen: the LORD God of my lord the king say so too. - -1:37 As the LORD hath been with my lord the king, even so be he with -Solomon, and make his throne greater than the throne of my lord king -David. - -1:38 So Zadok the priest, and Nathan the prophet, and Benaiah the son -of Jehoiada, and the Cherethites, and the Pelethites, went down, and -caused Solomon to ride upon king David's mule, and brought him to -Gihon. - -1:39 And Zadok the priest took an horn of oil out of the tabernacle, -and anointed Solomon. And they blew the trumpet; and all the people -said, God save king Solomon. - -1:40 And all the people came up after him, and the people piped with -pipes, and rejoiced with great joy, so that the earth rent with the -sound of them. - -1:41 And Adonijah and all the guests that were with him heard it as -they had made an end of eating. And when Joab heard the sound of the -trumpet, he said, Wherefore is this noise of the city being in an -uproar? 1:42 And while he yet spake, behold, Jonathan the son of -Abiathar the priest came; and Adonijah said unto him, Come in; for -thou art a valiant man, and bringest good tidings. - -1:43 And Jonathan answered and said to Adonijah, Verily our lord king -David hath made Solomon king. - -1:44 And the king hath sent with him Zadok the priest, and Nathan the -prophet, and Benaiah the son of Jehoiada, and the Cherethites, and the -Pelethites, and they have caused him to ride upon the king's mule: -1:45 And Zadok the priest and Nathan the prophet have anointed him -king in Gihon: and they are come up from thence rejoicing, so that the -city rang again. This is the noise that ye have heard. - -1:46 And also Solomon sitteth on the throne of the kingdom. - -1:47 And moreover the king's servants came to bless our lord king -David, saying, God make the name of Solomon better than thy name, and -make his throne greater than thy throne. And the king bowed himself -upon the bed. - -1:48 And also thus said the king, Blessed be the LORD God of Israel, -which hath given one to sit on my throne this day, mine eyes even -seeing it. - -1:49 And all the guests that were with Adonijah were afraid, and rose -up, and went every man his way. - -1:50 And Adonijah feared because of Solomon, and arose, and went, and -caught hold on the horns of the altar. - -1:51 And it was told Solomon, saying, Behold, Adonijah feareth king -Solomon: for, lo, he hath caught hold on the horns of the altar, -saying, Let king Solomon swear unto me today that he will not slay his -servant with the sword. - -1:52 And Solomon said, If he will shew himself a worthy man, there -shall not an hair of him fall to the earth: but if wickedness shall be -found in him, he shall die. - -1:53 So king Solomon sent, and they brought him down from the altar. -And he came and bowed himself to king Solomon: and Solomon said unto -him, Go to thine house. - -2:1 Now the days of David drew nigh that he should die; and he charged -Solomon his son, saying, 2:2 I go the way of all the earth: be thou -strong therefore, and shew thyself a man; 2:3 And keep the charge of -the LORD thy God, to walk in his ways, to keep his statutes, and his -commandments, and his judgments, and his testimonies, as it is written -in the law of Moses, that thou mayest prosper in all that thou doest, -and whithersoever thou turnest thyself: 2:4 That the LORD may continue -his word which he spake concerning me, saying, If thy children take -heed to their way, to walk before me in truth with all their heart and -with all their soul, there shall not fail thee (said he) a man on the -throne of Israel. - -2:5 Moreover thou knowest also what Joab the son of Zeruiah did to me, -and what he did to the two captains of the hosts of Israel, unto Abner -the son of Ner, and unto Amasa the son of Jether, whom he slew, and -shed the blood of war in peace, and put the blood of war upon his -girdle that was about his loins, and in his shoes that were on his -feet. - -2:6 Do therefore according to thy wisdom, and let not his hoar head go -down to the grave in peace. - -2:7 But shew kindness unto the sons of Barzillai the Gileadite, and -let them be of those that eat at thy table: for so they came to me -when I fled because of Absalom thy brother. - -2:8 And, behold, thou hast with thee Shimei the son of Gera, a -Benjamite of Bahurim, which cursed me with a grievous curse in the day -when I went to Mahanaim: but he came down to meet me at Jordan, and I -sware to him by the LORD, saying, I will not put thee to death with -the sword. - -2:9 Now therefore hold him not guiltless: for thou art a wise man, and -knowest what thou oughtest to do unto him; but his hoar head bring -thou down to the grave with blood. - -2:10 So David slept with his fathers, and was buried in the city of -David. - -2:11 And the days that David reigned over Israel were forty years: -seven years reigned he in Hebron, and thirty and three years reigned -he in Jerusalem. - -2:12 Then sat Solomon upon the throne of David his father; and his -kingdom was established greatly. - -2:13 And Adonijah the son of Haggith came to Bathsheba the mother of -Solomon. And she said, Comest thou peaceably? And he said, Peaceably. - -2:14 He said moreover, I have somewhat to say unto thee. And she said, -Say on. - -2:15 And he said, Thou knowest that the kingdom was mine, and that all -Israel set their faces on me, that I should reign: howbeit the kingdom -is turned about, and is become my brother's: for it was his from the -LORD. - -2:16 And now I ask one petition of thee, deny me not. And she said -unto him, Say on. - -2:17 And he said, Speak, I pray thee, unto Solomon the king, (for he -will not say thee nay,) that he give me Abishag the Shunammite to -wife. - -2:18 And Bathsheba said, Well; I will speak for thee unto the king. - -2:19 Bathsheba therefore went unto king Solomon, to speak unto him for -Adonijah. And the king rose up to meet her, and bowed himself unto -her, and sat down on his throne, and caused a seat to be set for the -king's mother; and she sat on his right hand. - -2:20 Then she said, I desire one small petition of thee; I pray thee, -say me not nay. And the king said unto her, Ask on, my mother: for I -will not say thee nay. - -2:21 And she said, Let Abishag the Shunammite be given to Adonijah thy -brother to wife. - -2:22 And king Solomon answered and said unto his mother, And why dost -thou ask Abishag the Shunammite for Adonijah? ask for him the kingdom -also; for he is mine elder brother; even for him, and for Abiathar the -priest, and for Joab the son of Zeruiah. - -2:23 Then king Solomon sware by the LORD, saying, God do so to me, and -more also, if Adonijah have not spoken this word against his own life. - -2:24 Now therefore, as the LORD liveth, which hath established me, and -set me on the throne of David my father, and who hath made me an -house, as he promised, Adonijah shall be put to death this day. - -2:25 And king Solomon sent by the hand of Benaiah the son of Jehoiada; -and he fell upon him that he died. - -2:26 And unto Abiathar the priest said the king, Get thee to Anathoth, -unto thine own fields; for thou art worthy of death: but I will not at -this time put thee to death, because thou barest the ark of the LORD -God before David my father, and because thou hast been afflicted in -all wherein my father was afflicted. - -2:27 So Solomon thrust out Abiathar from being priest unto the LORD; -that he might fulfil the word of the LORD, which he spake concerning -the house of Eli in Shiloh. - -2:28 Then tidings came to Joab: for Joab had turned after Adonijah, -though he turned not after Absalom. And Joab fled unto the tabernacle -of the LORD, and caught hold on the horns of the altar. - -2:29 And it was told king Solomon that Joab was fled unto the -tabernacle of the LORD; and, behold, he is by the altar. Then Solomon -sent Benaiah the son of Jehoiada, saying, Go, fall upon him. - -2:30 And Benaiah came to the tabernacle of the LORD, and said unto -him, Thus saith the king, Come forth. And he said, Nay; but I will die -here. And Benaiah brought the king word again, saying, Thus said Joab, -and thus he answered me. - -2:31 And the king said unto him, Do as he hath said, and fall upon -him, and bury him; that thou mayest take away the innocent blood, -which Joab shed, from me, and from the house of my father. - -2:32 And the LORD shall return his blood upon his own head, who fell -upon two men more righteous and better than he, and slew them with the -sword, my father David not knowing thereof, to wit, Abner the son of -Ner, captain of the host of Israel, and Amasa the son of Jether, -captain of the host of Judah. - -2:33 Their blood shall therefore return upon the head of Joab, and -upon the head of his seed for ever: but upon David, and upon his seed, -and upon his house, and upon his throne, shall there be peace for ever -from the LORD. - -2:34 So Benaiah the son of Jehoiada went up, and fell upon him, and -slew him: and he was buried in his own house in the wilderness. - -2:35 And the king put Benaiah the son of Jehoiada in his room over the -host: and Zadok the priest did the king put in the room of Abiathar. - -2:36 And the king sent and called for Shimei, and said unto him, Build -thee an house in Jerusalem, and dwell there, and go not forth thence -any whither. - -2:37 For it shall be, that on the day thou goest out, and passest over -the brook Kidron, thou shalt know for certain that thou shalt surely -die: thy blood shall be upon thine own head. - -2:38 And Shimei said unto the king, The saying is good: as my lord the -king hath said, so will thy servant do. And Shimei dwelt in Jerusalem -many days. - -2:39 And it came to pass at the end of three years, that two of the -servants of Shimei ran away unto Achish son of Maachah king of Gath. -And they told Shimei, saying, Behold, thy servants be in Gath. - -2:40 And Shimei arose, and saddled his ass, and went to Gath to Achish -to seek his servants: and Shimei went, and brought his servants from -Gath. - -2:41 And it was told Solomon that Shimei had gone from Jerusalem to -Gath, and was come again. - -2:42 And the king sent and called for Shimei, and said unto him, Did I -not make thee to swear by the LORD, and protested unto thee, saying, -Know for a certain, on the day thou goest out, and walkest abroad any -whither, that thou shalt surely die? and thou saidst unto me, The word -that I have heard is good. - -2:43 Why then hast thou not kept the oath of the LORD, and the -commandment that I have charged thee with? 2:44 The king said -moreover to Shimei, Thou knowest all the wickedness which thine heart -is privy to, that thou didst to David my father: therefore the LORD -shall return thy wickedness upon thine own head; 2:45 And king Solomon -shall be blessed, and the throne of David shall be established before -the LORD for ever. - -2:46 So the king commanded Benaiah the son of Jehoiada; which went -out, and fell upon him, that he died. And the kingdom was established -in the hand of Solomon. - -3:1 And Solomon made affinity with Pharaoh king of Egypt, and took -Pharaoh's daughter, and brought her into the city of David, until he -had made an end of building his own house, and the house of the LORD, -and the wall of Jerusalem round about. - -3:2 Only the people sacrificed in high places, because there was no -house built unto the name of the LORD, until those days. - -3:3 And Solomon loved the LORD, walking in the statutes of David his -father: only he sacrificed and burnt incense in high places. - -3:4 And the king went to Gibeon to sacrifice there; for that was the -great high place: a thousand burnt offerings did Solomon offer upon -that altar. - -3:5 In Gibeon the LORD appeared to Solomon in a dream by night: and -God said, Ask what I shall give thee. - -3:6 And Solomon said, Thou hast shewed unto thy servant David my -father great mercy, according as he walked before thee in truth, and -in righteousness, and in uprightness of heart with thee; and thou hast -kept for him this great kindness, that thou hast given him a son to -sit on his throne, as it is this day. - -3:7 And now, O LORD my God, thou hast made thy servant king instead of -David my father: and I am but a little child: I know not how to go out -or come in. - -3:8 And thy servant is in the midst of thy people which thou hast -chosen, a great people, that cannot be numbered nor counted for -multitude. - -3:9 Give therefore thy servant an understanding heart to judge thy -people, that I may discern between good and bad: for who is able to -judge this thy so great a people? 3:10 And the speech pleased the -LORD, that Solomon had asked this thing. - -3:11 And God said unto him, Because thou hast asked this thing, and -hast not asked for thyself long life; neither hast asked riches for -thyself, nor hast asked the life of thine enemies; but hast asked for -thyself understanding to discern judgment; 3:12 Behold, I have done -according to thy words: lo, I have given thee a wise and an -understanding heart; so that there was none like thee before thee, -neither after thee shall any arise like unto thee. - -3:13 And I have also given thee that which thou hast not asked, both -riches, and honour: so that there shall not be any among the kings -like unto thee all thy days. - -3:14 And if thou wilt walk in my ways, to keep my statutes and my -commandments, as thy father David did walk, then I will lengthen thy -days. - -3:15 And Solomon awoke; and, behold, it was a dream. And he came to -Jerusalem, and stood before the ark of the covenant of the LORD, and -offered up burnt offerings, and offered peace offerings, and made a -feast to all his servants. - -3:16 Then came there two women, that were harlots, unto the king, and -stood before him. - -3:17 And the one woman said, O my lord, I and this woman dwell in one -house; and I was delivered of a child with her in the house. - -3:18 And it came to pass the third day after that I was delivered, -that this woman was delivered also: and we were together; there was no -stranger with us in the house, save we two in the house. - -3:19 And this woman's child died in the night; because she overlaid -it. - -3:20 And she arose at midnight, and took my son from beside me, while -thine handmaid slept, and laid it in her bosom, and laid her dead -child in my bosom. - -3:21 And when I rose in the morning to give my child suck, behold, it -was dead: but when I had considered it in the morning, behold, it was -not my son, which I did bear. - -3:22 And the other woman said, Nay; but the living is my son, and the -dead is thy son. And this said, No; but the dead is thy son, and the -living is my son. Thus they spake before the king. - -3:23 Then said the king, The one saith, This is my son that liveth, -and thy son is the dead: and the other saith, Nay; but thy son is the -dead, and my son is the living. - -3:24 And the king said, Bring me a sword. And they brought a sword -before the king. - -3:25 And the king said, Divide the living child in two, and give half -to the one, and half to the other. - -3:26 Then spake the woman whose the living child was unto the king, -for her bowels yearned upon her son, and she said, O my lord, give her -the living child, and in no wise slay it. But the other said, Let it -be neither mine nor thine, but divide it. - -3:27 Then the king answered and said, Give her the living child, and -in no wise slay it: she is the mother thereof. - -3:28 And all Israel heard of the judgment which the king had judged; -and they feared the king: for they saw that the wisdom of God was in -him, to do judgment. - -4:1 So king Solomon was king over all Israel. - -4:2 And these were the princes which he had; Azariah the son of Zadok -the priest, 4:3 Elihoreph and Ahiah, the sons of Shisha, scribes; -Jehoshaphat the son of Ahilud, the recorder. - -4:4 And Benaiah the son of Jehoiada was over the host: and Zadok and -Abiathar were the priests: 4:5 And Azariah the son of Nathan was over -the officers: and Zabud the son of Nathan was principal officer, and -the king's friend: 4:6 And Ahishar was over the household: and -Adoniram the son of Abda was over the tribute. - -4:7 And Solomon had twelve officers over all Israel, which provided -victuals for the king and his household: each man his month in a year -made provision. - -4:8 And these are their names: The son of Hur, in mount Ephraim: 4:9 -The son of Dekar, in Makaz, and in Shaalbim, and Bethshemesh, and -Elonbethhanan: 4:10 The son of Hesed, in Aruboth; to him pertained -Sochoh, and all the land of Hepher: 4:11 The son of Abinadab, in all -the region of Dor; which had Taphath the daughter of Solomon to wife: -4:12 Baana the son of Ahilud; to him pertained Taanach and Megiddo, -and all Bethshean, which is by Zartanah beneath Jezreel, from -Bethshean to Abelmeholah, even unto the place that is beyond Jokneam: -4:13 The son of Geber, in Ramothgilead; to him pertained the towns of -Jair the son of Manasseh, which are in Gilead; to him also pertained -the region of Argob, which is in Bashan, threescore great cities with -walls and brasen bars: 4:14 Ahinadab the son of Iddo had Mahanaim: -4:15 Ahimaaz was in Naphtali; he also took Basmath the daughter of -Solomon to wife: 4:16 Baanah the son of Hushai was in Asher and in -Aloth: 4:17 Jehoshaphat the son of Paruah, in Issachar: 4:18 Shimei -the son of Elah, in Benjamin: 4:19 Geber the son of Uri was in the -country of Gilead, in the country of Sihon king of the Amorites, and -of Og king of Bashan; and he was the only officer which was in the -land. - -4:20 Judah and Israel were many, as the sand which is by the sea in -multitude, eating and drinking, and making merry. - -4:21 And Solomon reigned over all kingdoms from the river unto the -land of the Philistines, and unto the border of Egypt: they brought -presents, and served Solomon all the days of his life. - -4:22 And Solomon's provision for one day was thirty measures of fine -flour, and threescore measures of meal, 4:23 Ten fat oxen, and twenty -oxen out of the pastures, and an hundred sheep, beside harts, and -roebucks, and fallowdeer, and fatted fowl. - -4:24 For he had dominion over all the region on this side the river, -from Tiphsah even to Azzah, over all the kings on this side the river: -and he had peace on all sides round about him. - -4:25 And Judah and Israel dwelt safely, every man under his vine and -under his fig tree, from Dan even to Beersheba, all the days of -Solomon. - -4:26 And Solomon had forty thousand stalls of horses for his chariots, -and twelve thousand horsemen. - -4:27 And those officers provided victual for king Solomon, and for all -that came unto king Solomon's table, every man in his month: they -lacked nothing. - -4:28 Barley also and straw for the horses and dromedaries brought they -unto the place where the officers were, every man according to his -charge. - -4:29 And God gave Solomon wisdom and understanding exceeding much, and -largeness of heart, even as the sand that is on the sea shore. - -4:30 And Solomon's wisdom excelled the wisdom of all the children of -the east country, and all the wisdom of Egypt. - -4:31 For he was wiser than all men; than Ethan the Ezrahite, and -Heman, and Chalcol, and Darda, the sons of Mahol: and his fame was in -all nations round about. - -4:32 And he spake three thousand proverbs: and his songs were a -thousand and five. - -4:33 And he spake of trees, from the cedar tree that is in Lebanon -even unto the hyssop that springeth out of the wall: he spake also of -beasts, and of fowl, and of creeping things, and of fishes. - -4:34 And there came of all people to hear the wisdom of Solomon, from -all kings of the earth, which had heard of his wisdom. - -5:1 And Hiram king of Tyre sent his servants unto Solomon; for he had -heard that they had anointed him king in the room of his father: for -Hiram was ever a lover of David. - -5:2 And Solomon sent to Hiram, saying, 5:3 Thou knowest how that David -my father could not build an house unto the name of the LORD his God -for the wars which were about him on every side, until the LORD put -them under the soles of his feet. - -5:4 But now the LORD my God hath given me rest on every side, so that -there is neither adversary nor evil occurrent. - -5:5 And, behold, I purpose to build an house unto the name of the LORD -my God, as the LORD spake unto David my father, saying, Thy son, whom -I will set upon thy throne in thy room, he shall build an house unto -my name. - -5:6 Now therefore command thou that they hew me cedar trees out of -Lebanon; and my servants shall be with thy servants: and unto thee -will I give hire for thy servants according to all that thou shalt -appoint: for thou knowest that there is not among us any that can -skill to hew timber like unto the Sidonians. - -5:7 And it came to pass, when Hiram heard the words of Solomon, that -he rejoiced greatly, and said, Blessed be the LORD this day, which -hath given unto David a wise son over this great people. - -5:8 And Hiram sent to Solomon, saying, I have considered the things -which thou sentest to me for: and I will do all thy desire concerning -timber of cedar, and concerning timber of fir. - -5:9 My servants shall bring them down from Lebanon unto the sea: and I -will convey them by sea in floats unto the place that thou shalt -appoint me, and will cause them to be discharged there, and thou shalt -receive them: and thou shalt accomplish my desire, in giving food for -my household. - -5:10 So Hiram gave Solomon cedar trees and fir trees according to all -his desire. - -5:11 And Solomon gave Hiram twenty thousand measures of wheat for food -to his household, and twenty measures of pure oil: thus gave Solomon -to Hiram year by year. - -5:12 And the LORD gave Solomon wisdom, as he promised him: and there -was peace between Hiram and Solomon; and they two made a league -together. - -5:13 And king Solomon raised a levy out of all Israel; and the levy -was thirty thousand men. - -5:14 And he sent them to Lebanon, ten thousand a month by courses: a -month they were in Lebanon, and two months at home: and Adoniram was -over the levy. - -5:15 And Solomon had threescore and ten thousand that bare burdens, -and fourscore thousand hewers in the mountains; 5:16 Beside the chief -of Solomon's officers which were over the work, three thousand and -three hundred, which ruled over the people that wrought in the work. - -5:17 And the king commanded, and they brought great stones, costly -stones, and hewed stones, to lay the foundation of the house. - -5:18 And Solomon's builders and Hiram's builders did hew them, and the -stonesquarers: so they prepared timber and stones to build the house. - -6:1 And it came to pass in the four hundred and eightieth year after -the children of Israel were come out of the land of Egypt, in the -fourth year of Solomon's reign over Israel, in the month Zif, which is -the second month, that he began to build the house of the LORD. - -6:2 And the house which king Solomon built for the LORD, the length -thereof was threescore cubits, and the breadth thereof twenty cubits, -and the height thereof thirty cubits. - -6:3 And the porch before the temple of the house, twenty cubits was -the length thereof, according to the breadth of the house; and ten -cubits was the breadth thereof before the house. - -6:4 And for the house he made windows of narrow lights. - -6:5 And against the wall of the house he built chambers round about, -against the walls of the house round about, both of the temple and of -the oracle: and he made chambers round about: 6:6 The nethermost -chamber was five cubits broad, and the middle was six cubits broad, -and the third was seven cubits broad: for without in the wall of the -house he made narrowed rests round about, that the beams should not be -fastened in the walls of the house. - -6:7 And the house, when it was in building, was built of stone made -ready before it was brought thither: so that there was neither hammer -nor axe nor any tool of iron heard in the house, while it was in -building. - -6:8 The door for the middle chamber was in the right side of the -house: and they went up with winding stairs into the middle chamber, -and out of the middle into the third. - -6:9 So he built the house, and finished it; and covered the house with -beams and boards of cedar. - -6:10 And then he built chambers against all the house, five cubits -high: and they rested on the house with timber of cedar. - -6:11 And the word of the LORD came to Solomon, saying, 6:12 Concerning -this house which thou art in building, if thou wilt walk in my -statutes, and execute my judgments, and keep all my commandments to -walk in them; then will I perform my word with thee, which I spake -unto David thy father: 6:13 And I will dwell among the children of -Israel, and will not forsake my people Israel. - -6:14 So Solomon built the house, and finished it. - -6:15 And he built the walls of the house within with boards of cedar, -both the floor of the house, and the walls of the ceiling: and he -covered them on the inside with wood, and covered the floor of the -house with planks of fir. - -6:16 And he built twenty cubits on the sides of the house, both the -floor and the walls with boards of cedar: he even built them for it -within, even for the oracle, even for the most holy place. - -6:17 And the house, that is, the temple before it, was forty cubits -long. - -6:18 And the cedar of the house within was carved with knops and open -flowers: all was cedar; there was no stone seen. - -6:19 And the oracle he prepared in the house within, to set there the -ark of the covenant of the LORD. - -6:20 And the oracle in the forepart was twenty cubits in length, and -twenty cubits in breadth, and twenty cubits in the height thereof: and -he overlaid it with pure gold; and so covered the altar which was of -cedar. - -6:21 So Solomon overlaid the house within with pure gold: and he made -a partition by the chains of gold before the oracle; and he overlaid -it with gold. - -6:22 And the whole house he overlaid with gold, until he had finished -all the house: also the whole altar that was by the oracle he overlaid -with gold. - -6:23 And within the oracle he made two cherubims of olive tree, each -ten cubits high. - -6:24 And five cubits was the one wing of the cherub, and five cubits -the other wing of the cherub: from the uttermost part of the one wing -unto the uttermost part of the other were ten cubits. - -6:25 And the other cherub was ten cubits: both the cherubims were of -one measure and one size. - -6:26 The height of the one cherub was ten cubits, and so was it of the -other cherub. - -6:27 And he set the cherubims within the inner house: and they -stretched forth the wings of the cherubims, so that the wing of the -one touched the one wall, and the wing of the other cherub touched the -other wall; and their wings touched one another in the midst of the -house. - -6:28 And he overlaid the cherubims with gold. - -6:29 And he carved all the walls of the house round about with carved -figures of cherubims and palm trees and open flowers, within and -without. - -6:30 And the floors of the house he overlaid with gold, within and -without. - -6:31 And for the entering of the oracle he made doors of olive tree: -the lintel and side posts were a fifth part of the wall. - -6:32 The two doors also were of olive tree; and he carved upon them -carvings of cherubims and palm trees and open flowers, and overlaid -them with gold, and spread gold upon the cherubims, and upon the palm -trees. - -6:33 So also made he for the door of the temple posts of olive tree, a -fourth part of the wall. - -6:34 And the two doors were of fir tree: the two leaves of the one -door were folding, and the two leaves of the other door were folding. - -6:35 And he carved thereon cherubims and palm trees and open flowers: -and covered them with gold fitted upon the carved work. - -6:36 And he built the inner court with three rows of hewed stone, and -a row of cedar beams. - -6:37 In the fourth year was the foundation of the house of the LORD -laid, in the month Zif: 6:38 And in the eleventh year, in the month -Bul, which is the eighth month, was the house finished throughout all -the parts thereof, and according to all the fashion of it. So was he -seven years in building it. - -7:1 But Solomon was building his own house thirteen years, and he -finished all his house. - -7:2 He built also the house of the forest of Lebanon; the length -thereof was an hundred cubits, and the breadth thereof fifty cubits, -and the height thereof thirty cubits, upon four rows of cedar pillars, -with cedar beams upon the pillars. - -7:3 And it was covered with cedar above upon the beams, that lay on -forty five pillars, fifteen in a row. - -7:4 And there were windows in three rows, and light was against light -in three ranks. - -7:5 And all the doors and posts were square, with the windows: and -light was against light in three ranks. - -7:6 And he made a porch of pillars; the length thereof was fifty -cubits, and the breadth thereof thirty cubits: and the porch was -before them: and the other pillars and the thick beam were before -them. - -7:7 Then he made a porch for the throne where he might judge, even the -porch of judgment: and it was covered with cedar from one side of the -floor to the other. - -7:8 And his house where he dwelt had another court within the porch, -which was of the like work. Solomon made also an house for Pharaoh's -daughter, whom he had taken to wife, like unto this porch. - -7:9 All these were of costly stones, according to the measures of -hewed stones, sawed with saws, within and without, even from the -foundation unto the coping, and so on the outside toward the great -court. - -7:10 And the foundation was of costly stones, even great stones, -stones of ten cubits, and stones of eight cubits. - -7:11 And above were costly stones, after the measures of hewed stones, -and cedars. - -7:12 And the great court round about was with three rows of hewed -stones, and a row of cedar beams, both for the inner court of the -house of the LORD, and for the porch of the house. - -7:13 And king Solomon sent and fetched Hiram out of Tyre. - -7:14 He was a widow's son of the tribe of Naphtali, and his father was -a man of Tyre, a worker in brass: and he was filled with wisdom, and -understanding, and cunning to work all works in brass. And he came to -king Solomon, and wrought all his work. - -7:15 For he cast two pillars of brass, of eighteen cubits high apiece: -and a line of twelve cubits did compass either of them about. - -7:16 And he made two chapiters of molten brass, to set upon the tops -of the pillars: the height of the one chapiter was five cubits, and -the height of the other chapiter was five cubits: 7:17 And nets of -checker work, and wreaths of chain work, for the chapiters which were -upon the top of the pillars; seven for the one chapiter, and seven for -the other chapiter. - -7:18 And he made the pillars, and two rows round about upon the one -network, to cover the chapiters that were upon the top, with -pomegranates: and so did he for the other chapiter. - -7:19 And the chapiters that were upon the top of the pillars were of -lily work in the porch, four cubits. - -7:20 And the chapiters upon the two pillars had pomegranates also -above, over against the belly which was by the network: and the -pomegranates were two hundred in rows round about upon the other -chapiter. - -7:21 And he set up the pillars in the porch of the temple: and he set -up the right pillar, and called the name thereof Jachin: and he set up -the left pillar, and called the name thereof Boaz. - -7:22 And upon the top of the pillars was lily work: so was the work of -the pillars finished. - -7:23 And he made a molten sea, ten cubits from the one brim to the -other: it was round all about, and his height was five cubits: and a -line of thirty cubits did compass it round about. - -7:24 And under the brim of it round about there were knops compassing -it, ten in a cubit, compassing the sea round about: the knops were -cast in two rows, when it was cast. - -7:25 It stood upon twelve oxen, three looking toward the north, and -three looking toward the west, and three looking toward the south, and -three looking toward the east: and the sea was set above upon them, -and all their hinder parts were inward. - -7:26 And it was an hand breadth thick, and the brim thereof was -wrought like the brim of a cup, with flowers of lilies: it contained -two thousand baths. - -7:27 And he made ten bases of brass; four cubits was the length of one -base, and four cubits the breadth thereof, and three cubits the height -of it. - -7:28 And the work of the bases was on this manner: they had borders, -and the borders were between the ledges: 7:29 And on the borders that -were between the ledges were lions, oxen, and cherubims: and upon the -ledges there was a base above: and beneath the lions and oxen were -certain additions made of thin work. - -7:30 And every base had four brasen wheels, and plates of brass: and -the four corners thereof had undersetters: under the laver were -undersetters molten, at the side of every addition. - -7:31 And the mouth of it within the chapiter and above was a cubit: -but the mouth thereof was round after the work of the base, a cubit -and an half: and also upon the mouth of it were gravings with their -borders, foursquare, not round. - -7:32 And under the borders were four wheels; and the axletrees of the -wheels were joined to the base: and the height of a wheel was a cubit -and half a cubit. - -7:33 And the work of the wheels was like the work of a chariot wheel: -their axletrees, and their naves, and their felloes, and their spokes, -were all molten. - -7:34 And there were four undersetters to the four corners of one base: -and the undersetters were of the very base itself. - -7:35 And in the top of the base was there a round compass of half a -cubit high: and on the top of the base the ledges thereof and the -borders thereof were of the same. - -7:36 For on the plates of the ledges thereof, and on the borders -thereof, he graved cherubims, lions, and palm trees, according to the -proportion of every one, and additions round about. - -7:37 After this manner he made the ten bases: all of them had one -casting, one measure, and one size. - -7:38 Then made he ten lavers of brass: one laver contained forty -baths: and every laver was four cubits: and upon every one of the ten -bases one laver. - -7:39 And he put five bases on the right side of the house, and five on -the left side of the house: and he set the sea on the right side of -the house eastward over against the south. - -7:40 And Hiram made the lavers, and the shovels, and the basons. So -Hiram made an end of doing all the work that he made king Solomon for -the house of the LORD: 7:41 The two pillars, and the two bowls of the -chapiters that were on the top of the two pillars; and the two -networks, to cover the two bowls of the chapiters which were upon the -top of the pillars; 7:42 And four hundred pomegranates for the two -networks, even two rows of pomegranates for one network, to cover the -two bowls of the chapiters that were upon the pillars; 7:43 And the -ten bases, and ten lavers on the bases; 7:44 And one sea, and twelve -oxen under the sea; 7:45 And the pots, and the shovels, and the -basons: and all these vessels, which Hiram made to king Solomon for -the house of the LORD, were of bright brass. - -7:46 In the plain of Jordan did the king cast them, in the clay ground -between Succoth and Zarthan. - -7:47 And Solomon left all the vessels unweighed, because they were -exceeding many: neither was the weight of the brass found out. - -7:48 And Solomon made all the vessels that pertained unto the house of -the LORD: the altar of gold, and the table of gold, whereupon the -shewbread was, 7:49 And the candlesticks of pure gold, five on the -right side, and five on the left, before the oracle, with the flowers, -and the lamps, and the tongs of gold, 7:50 And the bowls, and the -snuffers, and the basons, and the spoons, and the censers of pure -gold; and the hinges of gold, both for the doors of the inner house, -the most holy place, and for the doors of the house, to wit, of the -temple. - -7:51 So was ended all the work that king Solomon made for the house of -the LORD. And Solomon brought in the things which David his father had -dedicated; even the silver, and the gold, and the vessels, did he put -among the treasures of the house of the LORD. - -8:1 Then Solomon assembled the elders of Israel, and all the heads of -the tribes, the chief of the fathers of the children of Israel, unto -king Solomon in Jerusalem, that they might bring up the ark of the -covenant of the LORD out of the city of David, which is Zion. - -8:2 And all the men of Israel assembled themselves unto king Solomon -at the feast in the month Ethanim, which is the seventh month. - -8:3 And all the elders of Israel came, and the priests took up the -ark. - -8:4 And they brought up the ark of the LORD, and the tabernacle of the -congregation, and all the holy vessels that were in the tabernacle, -even those did the priests and the Levites bring up. - -8:5 And king Solomon, and all the congregation of Israel, that were -assembled unto him, were with him before the ark, sacrificing sheep -and oxen, that could not be told nor numbered for multitude. - -8:6 And the priests brought in the ark of the covenant of the LORD -unto his place, into the oracle of the house, to the most holy place, -even under the wings of the cherubims. - -8:7 For the cherubims spread forth their two wings over the place of -the ark, and the cherubims covered the ark and the staves thereof -above. - -8:8 And they drew out the staves, that the ends of the staves were -seen out in the holy place before the oracle, and they were not seen -without: and there they are unto this day. - -8:9 There was nothing in the ark save the two tables of stone, which -Moses put there at Horeb, when the LORD made a covenant with the -children of Israel, when they came out of the land of Egypt. - -8:10 And it came to pass, when the priests were come out of the holy -place, that the cloud filled the house of the LORD, 8:11 So that the -priests could not stand to minister because of the cloud: for the -glory of the LORD had filled the house of the LORD. - -8:12 Then spake Solomon, The LORD said that he would dwell in the -thick darkness. - -8:13 I have surely built thee an house to dwell in, a settled place -for thee to abide in for ever. - -8:14 And the king turned his face about, and blessed all the -congregation of Israel: (and all the congregation of Israel stood;) -8:15 And he said, Blessed be the LORD God of Israel, which spake with -his mouth unto David my father, and hath with his hand fulfilled it, -saying, 8:16 Since the day that I brought forth my people Israel out -of Egypt, I chose no city out of all the tribes of Israel to build an -house, that my name might be therein; but I chose David to be over my -people Israel. - -8:17 And it was in the heart of David my father to build an house for -the name of the LORD God of Israel. - -8:18 And the LORD said unto David my father, Whereas it was in thine -heart to build an house unto my name, thou didst well that it was in -thine heart. - -8:19 Nevertheless thou shalt not build the house; but thy son that -shall come forth out of thy loins, he shall build the house unto my -name. - -8:20 And the LORD hath performed his word that he spake, and I am -risen up in the room of David my father, and sit on the throne of -Israel, as the LORD promised, and have built an house for the name of -the LORD God of Israel. - -8:21 And I have set there a place for the ark, wherein is the covenant -of the LORD, which he made with our fathers, when he brought them out -of the land of Egypt. - -8:22 And Solomon stood before the altar of the LORD in the presence of -all the congregation of Israel, and spread forth his hands toward -heaven: 8:23 And he said, LORD God of Israel, there is no God like -thee, in heaven above, or on earth beneath, who keepest covenant and -mercy with thy servants that walk before thee with all their heart: -8:24 Who hast kept with thy servant David my father that thou -promisedst him: thou spakest also with thy mouth, and hast fulfilled -it with thine hand, as it is this day. - -8:25 Therefore now, LORD God of Israel, keep with thy servant David my -father that thou promisedst him, saying, There shall not fail thee a -man in my sight to sit on the throne of Israel; so that thy children -take heed to their way, that they walk before me as thou hast walked -before me. - -8:26 And now, O God of Israel, let thy word, I pray thee, be verified, -which thou spakest unto thy servant David my father. - -8:27 But will God indeed dwell on the earth? behold, the heaven and -heaven of heavens cannot contain thee; how much less this house that I -have builded? 8:28 Yet have thou respect unto the prayer of thy -servant, and to his supplication, O LORD my God, to hearken unto the -cry and to the prayer, which thy servant prayeth before thee to day: -8:29 That thine eyes may be open toward this house night and day, even -toward the place of which thou hast said, My name shall be there: that -thou mayest hearken unto the prayer which thy servant shall make -toward this place. - -8:30 And hearken thou to the supplication of thy servant, and of thy -people Israel, when they shall pray toward this place: and hear thou -in heaven thy dwelling place: and when thou hearest, forgive. - -8:31 If any man trespass against his neighbour, and an oath be laid -upon him to cause him to swear, and the oath come before thine altar -in this house: 8:32 Then hear thou in heaven, and do, and judge thy -servants, condemning the wicked, to bring his way upon his head; and -justifying the righteous, to give him according to his righteousness. - -8:33 When thy people Israel be smitten down before the enemy, because -they have sinned against thee, and shall turn again to thee, and -confess thy name, and pray, and make supplication unto thee in this -house: 8:34 Then hear thou in heaven, and forgive the sin of thy -people Israel, and bring them again unto the land which thou gavest -unto their fathers. - -8:35 When heaven is shut up, and there is no rain, because they have -sinned against thee; if they pray toward this place, and confess thy -name, and turn from their sin, when thou afflictest them: 8:36 Then -hear thou in heaven, and forgive the sin of thy servants, and of thy -people Israel, that thou teach them the good way wherein they should -walk, and give rain upon thy land, which thou hast given to thy people -for an inheritance. - -8:37 If there be in the land famine, if there be pestilence, blasting, -mildew, locust, or if there be caterpiller; if their enemy besiege -them in the land of their cities; whatsoever plague, whatsoever -sickness there be; 8:38 What prayer and supplication soever be made by -any man, or by all thy people Israel, which shall know every man the -plague of his own heart, and spread forth his hands toward this house: -8:39 Then hear thou in heaven thy dwelling place, and forgive, and do, -and give to every man according to his ways, whose heart thou knowest; -(for thou, even thou only, knowest the hearts of all the children of -men;) 8:40 That they may fear thee all the days that they live in the -land which thou gavest unto our fathers. - -8:41 Moreover concerning a stranger, that is not of thy people Israel, -but cometh out of a far country for thy name's sake; 8:42 (For they -shall hear of thy great name, and of thy strong hand, and of thy -stretched out arm;) when he shall come and pray toward this house; -8:43 Hear thou in heaven thy dwelling place, and do according to all -that the stranger calleth to thee for: that all people of the earth -may know thy name, to fear thee, as do thy people Israel; and that -they may know that this house, which I have builded, is called by thy -name. - -8:44 If thy people go out to battle against their enemy, whithersoever -thou shalt send them, and shall pray unto the LORD toward the city -which thou hast chosen, and toward the house that I have built for thy -name: 8:45 Then hear thou in heaven their prayer and their -supplication, and maintain their cause. - -8:46 If they sin against thee, (for there is no man that sinneth not,) -and thou be angry with them, and deliver them to the enemy, so that -they carry them away captives unto the land of the enemy, far or near; -8:47 Yet if they shall bethink themselves in the land whither they -were carried captives, and repent, and make supplication unto thee in -the land of them that carried them captives, saying, We have sinned, -and have done perversely, we have committed wickedness; 8:48 And so -return unto thee with all their heart, and with all their soul, in the -land of their enemies, which led them away captive, and pray unto thee -toward their land, which thou gavest unto their fathers, the city -which thou hast chosen, and the house which I have built for thy name: -8:49 Then hear thou their prayer and their supplication in heaven thy -dwelling place, and maintain their cause, 8:50 And forgive thy people -that have sinned against thee, and all their transgressions wherein -they have transgressed against thee, and give them compassion before -them who carried them captive, that they may have compassion on them: -8:51 For they be thy people, and thine inheritance, which thou -broughtest forth out of Egypt, from the midst of the furnace of iron: -8:52 That thine eyes may be open unto the supplication of thy servant, -and unto the supplication of thy people Israel, to hearken unto them -in all that they call for unto thee. - -8:53 For thou didst separate them from among all the people of the -earth, to be thine inheritance, as thou spakest by the hand of Moses -thy servant, when thou broughtest our fathers out of Egypt, O LORD -God. - -8:54 And it was so, that when Solomon had made an end of praying all -this prayer and supplication unto the LORD, he arose from before the -altar of the LORD, from kneeling on his knees with his hands spread up -to heaven. - -8:55 And he stood, and blessed all the congregation of Israel with a -loud voice, saying, 8:56 Blessed be the LORD, that hath given rest -unto his people Israel, according to all that he promised: there hath -not failed one word of all his good promise, which he promised by the -hand of Moses his servant. - -8:57 The LORD our God be with us, as he was with our fathers: let him -not leave us, nor forsake us: 8:58 That he may incline our hearts unto -him, to walk in all his ways, and to keep his commandments, and his -statutes, and his judgments, which he commanded our fathers. - -8:59 And let these my words, wherewith I have made supplication before -the LORD, be nigh unto the LORD our God day and night, that he -maintain the cause of his servant, and the cause of his people Israel -at all times, as the matter shall require: 8:60 That all the people of -the earth may know that the LORD is God, and that there is none else. - -8:61 Let your heart therefore be perfect with the LORD our God, to -walk in his statutes, and to keep his commandments, as at this day. - -8:62 And the king, and all Israel with him, offered sacrifice before -the LORD. - -8:63 And Solomon offered a sacrifice of peace offerings, which he -offered unto the LORD, two and twenty thousand oxen, and an hundred -and twenty thousand sheep. So the king and all the children of Israel -dedicated the house of the LORD. - -8:64 The same day did the king hallow the middle of the court that was -before the house of the LORD: for there he offered burnt offerings, -and meat offerings, and the fat of the peace offerings: because the -brasen altar that was before the LORD was too little to receive the -burnt offerings, and meat offerings, and the fat of the peace -offerings. - -8:65 And at that time Solomon held a feast, and all Israel with him, a -great congregation, from the entering in of Hamath unto the river of -Egypt, before the LORD our God, seven days and seven days, even -fourteen days. - -8:66 On the eighth day he sent the people away: and they blessed the -king, and went unto their tents joyful and glad of heart for all the -goodness that the LORD had done for David his servant, and for Israel -his people. - -9:1 And it came to pass, when Solomon had finished the building of the -house of the LORD, and the king's house, and all Solomon's desire -which he was pleased to do, 9:2 That the LORD appeared to Solomon the -second time, as he had appeared unto him at Gibeon. - -9:3 And the LORD said unto him, I have heard thy prayer and thy -supplication, that thou hast made before me: I have hallowed this -house, which thou hast built, to put my name there for ever; and mine -eyes and mine heart shall be there perpetually. - -9:4 And if thou wilt walk before me, as David thy father walked, in -integrity of heart, and in uprightness, to do according to all that I -have commanded thee, and wilt keep my statutes and my judgments: 9:5 -Then I will establish the throne of thy kingdom upon Israel for ever, -as I promised to David thy father, saying, There shall not fail thee a -man upon the throne of Israel. - -9:6 But if ye shall at all turn from following me, ye or your -children, and will not keep my commandments and my statutes which I -have set before you, but go and serve other gods, and worship them: -9:7 Then will I cut off Israel out of the land which I have given -them; and this house, which I have hallowed for my name, will I cast -out of my sight; and Israel shall be a proverb and a byword among all -people: 9:8 And at this house, which is high, every one that passeth -by it shall be astonished, and shall hiss; and they shall say, Why -hath the LORD done thus unto this land, and to this house? 9:9 And -they shall answer, Because they forsook the LORD their God, who -brought forth their fathers out of the land of Egypt, and have taken -hold upon other gods, and have worshipped them, and served them: -therefore hath the LORD brought upon them all this evil. - -9:10 And it came to pass at the end of twenty years, when Solomon had -built the two houses, the house of the LORD, and the king's house, -9:11 (Now Hiram the king of Tyre had furnished Solomon with cedar -trees and fir trees, and with gold, according to all his desire,) that -then king Solomon gave Hiram twenty cities in the land of Galilee. - -9:12 And Hiram came out from Tyre to see the cities which Solomon had -given him; and they pleased him not. - -9:13 And he said, What cities are these which thou hast given me, my -brother? And he called them the land of Cabul unto this day. - -9:14 And Hiram sent to the king sixscore talents of gold. - -9:15 And this is the reason of the levy which king Solomon raised; for -to build the house of the LORD, and his own house, and Millo, and the -wall of Jerusalem, and Hazor, and Megiddo, and Gezer. - -9:16 For Pharaoh king of Egypt had gone up, and taken Gezer, and burnt -it with fire, and slain the Canaanites that dwelt in the city, and -given it for a present unto his daughter, Solomon's wife. - -9:17 And Solomon built Gezer, and Bethhoron the nether, 9:18 And -Baalath, and Tadmor in the wilderness, in the land, 9:19 And all the -cities of store that Solomon had, and cities for his chariots, and -cities for his horsemen, and that which Solomon desired to build in -Jerusalem, and in Lebanon, and in all the land of his dominion. - -9:20 And all the people that were left of the Amorites, Hittites, -Perizzites, Hivites, and Jebusites, which were not of the children of -Israel, 9:21 Their children that were left after them in the land, -whom the children of Israel also were not able utterly to destroy, -upon those did Solomon levy a tribute of bondservice unto this day. - -9:22 But of the children of Israel did Solomon make no bondmen: but -they were men of war, and his servants, and his princes, and his -captains, and rulers of his chariots, and his horsemen. - -9:23 These were the chief of the officers that were over Solomon's -work, five hundred and fifty, which bare rule over the people that -wrought in the work. - -9:24 But Pharaoh's daughter came up out of the city of David unto her -house which Solomon had built for her: then did he build Millo. - -9:25 And three times in a year did Solomon offer burnt offerings and -peace offerings upon the altar which he built unto the LORD, and he -burnt incense upon the altar that was before the LORD. So he finished -the house. - -9:26 And king Solomon made a navy of ships in Eziongeber, which is -beside Eloth, on the shore of the Red sea, in the land of Edom. - -9:27 And Hiram sent in the navy his servants, shipmen that had -knowledge of the sea, with the servants of Solomon. - -9:28 And they came to Ophir, and fetched from thence gold, four -hundred and twenty talents, and brought it to king Solomon. - -10:1 And when the queen of Sheba heard of the fame of Solomon -concerning the name of the LORD, she came to prove him with hard -questions. - -10:2 And she came to Jerusalem with a very great train, with camels -that bare spices, and very much gold, and precious stones: and when -she was come to Solomon, she communed with him of all that was in her -heart. - -10:3 And Solomon told her all her questions: there was not any thing -hid from the king, which he told her not. - -10:4 And when the queen of Sheba had seen all Solomon's wisdom, and -the house that he had built, 10:5 And the meat of his table, and the -sitting of his servants, and the attendance of his ministers, and -their apparel, and his cupbearers, and his ascent by which he went up -unto the house of the LORD; there was no more spirit in her. - -10:6 And she said to the king, It was a true report that I heard in -mine own land of thy acts and of thy wisdom. - -10:7 Howbeit I believed not the words, until I came, and mine eyes had -seen it: and, behold, the half was not told me: thy wisdom and -prosperity exceedeth the fame which I heard. - -10:8 Happy are thy men, happy are these thy servants, which stand -continually before thee, and that hear thy wisdom. - -10:9 Blessed be the LORD thy God, which delighted in thee, to set thee -on the throne of Israel: because the LORD loved Israel for ever, -therefore made he thee king, to do judgment and justice. - -10:10 And she gave the king an hundred and twenty talents of gold, and -of spices very great store, and precious stones: there came no more -such abundance of spices as these which the queen of Sheba gave to -king Solomon. - -10:11 And the navy also of Hiram, that brought gold from Ophir, -brought in from Ophir great plenty of almug trees, and precious -stones. - -10:12 And the king made of the almug trees pillars for the house of -the LORD, and for the king's house, harps also and psalteries for -singers: there came no such almug trees, nor were seen unto this day. - -10:13 And king Solomon gave unto the queen of Sheba all her desire, -whatsoever she asked, beside that which Solomon gave her of his royal -bounty. - -So she turned and went to her own country, she and her servants. - -10:14 Now the weight of gold that came to Solomon in one year was six -hundred threescore and six talents of gold, 10:15 Beside that he had -of the merchantmen, and of the traffick of the spice merchants, and of -all the kings of Arabia, and of the governors of the country. - -10:16 And king Solomon made two hundred targets of beaten gold: six -hundred shekels of gold went to one target. - -10:17 And he made three hundred shields of beaten gold; three pound of -gold went to one shield: and the king put them in the house of the -forest of Lebanon. - -10:18 Moreover the king made a great throne of ivory, and overlaid it -with the best gold. - -10:19 The throne had six steps, and the top of the throne was round -behind: and there were stays on either side on the place of the seat, -and two lions stood beside the stays. - -10:20 And twelve lions stood there on the one side and on the other -upon the six steps: there was not the like made in any kingdom. - -10:21 And all king Solomon's drinking vessels were of gold, and all -the vessels of the house of the forest of Lebanon were of pure gold; -none were of silver: it was nothing accounted of in the days of -Solomon. - -10:22 For the king had at sea a navy of Tharshish with the navy of -Hiram: once in three years came the navy of Tharshish, bringing gold, -and silver, ivory, and apes, and peacocks. - -10:23 So king Solomon exceeded all the kings of the earth for riches -and for wisdom. - -10:24 And all the earth sought to Solomon, to hear his wisdom, which -God had put in his heart. - -10:25 And they brought every man his present, vessels of silver, and -vessels of gold, and garments, and armour, and spices, horses, and -mules, a rate year by year. - -10:26 And Solomon gathered together chariots and horsemen: and he had -a thousand and four hundred chariots, and twelve thousand horsemen, -whom he bestowed in the cities for chariots, and with the king at -Jerusalem. - -10:27 And the king made silver to be in Jerusalem as stones, and -cedars made he to be as the sycomore trees that are in the vale, for -abundance. - -10:28 And Solomon had horses brought out of Egypt, and linen yarn: the -king's merchants received the linen yarn at a price. - -10:29 And a chariot came up and went out of Egypt for six hundred -shekels of silver, and an horse for an hundred and fifty: and so for -all the kings of the Hittites, and for the kings of Syria, did they -bring them out by their means. - -11:1 But king Solomon loved many strange women, together with the -daughter of Pharaoh, women of the Moabites, Ammonites, Edomites, -Zidonians, and Hittites: 11:2 Of the nations concerning which the LORD -said unto the children of Israel, Ye shall not go in to them, neither -shall they come in unto you: for surely they will turn away your heart -after their gods: Solomon clave unto these in love. - -11:3 And he had seven hundred wives, princesses, and three hundred -concubines: and his wives turned away his heart. - -11:4 For it came to pass, when Solomon was old, that his wives turned -away his heart after other gods: and his heart was not perfect with -the LORD his God, as was the heart of David his father. - -11:5 For Solomon went after Ashtoreth the goddess of the Zidonians, -and after Milcom the abomination of the Ammonites. - -11:6 And Solomon did evil in the sight of the LORD, and went not fully -after the LORD, as did David his father. - -11:7 Then did Solomon build an high place for Chemosh, the abomination -of Moab, in the hill that is before Jerusalem, and for Molech, the -abomination of the children of Ammon. - -11:8 And likewise did he for all his strange wives, which burnt -incense and sacrificed unto their gods. - -11:9 And the LORD was angry with Solomon, because his heart was turned -from the LORD God of Israel, which had appeared unto him twice, 11:10 -And had commanded him concerning this thing, that he should not go -after other gods: but he kept not that which the LORD commanded. - -11:11 Wherefore the LORD said unto Solomon, Forasmuch as this is done -of thee, and thou hast not kept my covenant and my statutes, which I -have commanded thee, I will surely rend the kingdom from thee, and -will give it to thy servant. - -11:12 Notwithstanding in thy days I will not do it for David thy -father's sake: but I will rend it out of the hand of thy son. - -11:13 Howbeit I will not rend away all the kingdom; but will give one -tribe to thy son for David my servant's sake, and for Jerusalem's sake -which I have chosen. - -11:14 And the LORD stirred up an adversary unto Solomon, Hadad the -Edomite: he was of the king's seed in Edom. - -11:15 For it came to pass, when David was in Edom, and Joab the -captain of the host was gone up to bury the slain, after he had -smitten every male in Edom; 11:16 (For six months did Joab remain -there with all Israel, until he had cut off every male in Edom:) 11:17 -That Hadad fled, he and certain Edomites of his father's servants with -him, to go into Egypt; Hadad being yet a little child. - -11:18 And they arose out of Midian, and came to Paran: and they took -men with them out of Paran, and they came to Egypt, unto Pharaoh king -of Egypt; which gave him an house, and appointed him victuals, and -gave him land. - -11:19 And Hadad found great favour in the sight of Pharaoh, so that he -gave him to wife the sister of his own wife, the sister of Tahpenes -the queen. - -11:20 And the sister of Tahpenes bare him Genubath his son, whom -Tahpenes weaned in Pharaoh's house: and Genubath was in Pharaoh's -household among the sons of Pharaoh. - -11:21 And when Hadad heard in Egypt that David slept with his fathers, -and that Joab the captain of the host was dead, Hadad said to Pharaoh, -Let me depart, that I may go to mine own country. - -11:22 Then Pharaoh said unto him, But what hast thou lacked with me, -that, behold, thou seekest to go to thine own country? And he -answered, Nothing: howbeit let me go in any wise. - -11:23 And God stirred him up another adversary, Rezon the son of -Eliadah, which fled from his lord Hadadezer king of Zobah: 11:24 And -he gathered men unto him, and became captain over a band, when David -slew them of Zobah: and they went to Damascus, and dwelt therein, and -reigned in Damascus. - -11:25 And he was an adversary to Israel all the days of Solomon, -beside the mischief that Hadad did: and he abhorred Israel, and -reigned over Syria. - -11:26 And Jeroboam the son of Nebat, an Ephrathite of Zereda, -Solomon's servant, whose mother's name was Zeruah, a widow woman, even -he lifted up his hand against the king. - -11:27 And this was the cause that he lifted up his hand against the -king: Solomon built Millo, and repaired the breaches of the city of -David his father. - -11:28 And the man Jeroboam was a mighty man of valour: and Solomon -seeing the young man that he was industrious, he made him ruler over -all the charge of the house of Joseph. - -11:29 And it came to pass at that time when Jeroboam went out of -Jerusalem, that the prophet Ahijah the Shilonite found him in the way; -and he had clad himself with a new garment; and they two were alone in -the field: 11:30 And Ahijah caught the new garment that was on him, -and rent it in twelve pieces: 11:31 And he said to Jeroboam, Take thee -ten pieces: for thus saith the LORD, the God of Israel, Behold, I will -rend the kingdom out of the hand of Solomon, and will give ten tribes -to thee: 11:32 (But he shall have one tribe for my servant David's -sake, and for Jerusalem's sake, the city which I have chosen out of -all the tribes of Israel:) 11:33 Because that they have forsaken me, -and have worshipped Ashtoreth the goddess of the Zidonians, Chemosh -the god of the Moabites, and Milcom the god of the children of Ammon, -and have not walked in my ways, to do that which is right in mine -eyes, and to keep my statutes and my judgments, as did David his -father. - -11:34 Howbeit I will not take the whole kingdom out of his hand: but I -will make him prince all the days of his life for David my servant's -sake, whom I chose, because he kept my commandments and my statutes: -11:35 But I will take the kingdom out of his son's hand, and will give -it unto thee, even ten tribes. - -11:36 And unto his son will I give one tribe, that David my servant -may have a light alway before me in Jerusalem, the city which I have -chosen me to put my name there. - -11:37 And I will take thee, and thou shalt reign according to all that -thy soul desireth, and shalt be king over Israel. - -11:38 And it shall be, if thou wilt hearken unto all that I command -thee, and wilt walk in my ways, and do that is right in my sight, to -keep my statutes and my commandments, as David my servant did; that I -will be with thee, and build thee a sure house, as I built for David, -and will give Israel unto thee. - -11:39 And I will for this afflict the seed of David, but not for ever. - -11:40 Solomon sought therefore to kill Jeroboam. And Jeroboam arose, -and fled into Egypt, unto Shishak king of Egypt, and was in Egypt -until the death of Solomon. - -11:41 And the rest of the acts of Solomon, and all that he did, and -his wisdom, are they not written in the book of the acts of Solomon? -11:42 And the time that Solomon reigned in Jerusalem over all Israel -was forty years. - -11:43 And Solomon slept with his fathers, and was buried in the city -of David his father: and Rehoboam his son reigned in his stead. - -12:1 And Rehoboam went to Shechem: for all Israel were come to Shechem -to make him king. - -12:2 And it came to pass, when Jeroboam the son of Nebat, who was yet -in Egypt, heard of it, (for he was fled from the presence of king -Solomon, and Jeroboam dwelt in Egypt;) 12:3 That they sent and called -him. And Jeroboam and all the congregation of Israel came, and spake -unto Rehoboam, saying, 12:4 Thy father made our yoke grievous: now -therefore make thou the grievous service of thy father, and his heavy -yoke which he put upon us, lighter, and we will serve thee. - -12:5 And he said unto them, Depart yet for three days, then come again -to me. And the people departed. - -12:6 And king Rehoboam consulted with the old men, that stood before -Solomon his father while he yet lived, and said, How do ye advise that -I may answer this people? 12:7 And they spake unto him, saying, If -thou wilt be a servant unto this people this day, and wilt serve them, -and answer them, and speak good words to them, then they will be thy -servants for ever. - -12:8 But he forsook the counsel of the old men, which they had given -him, and consulted with the young men that were grown up with him, and -which stood before him: 12:9 And he said unto them, What counsel give -ye that we may answer this people, who have spoken to me, saying, Make -the yoke which thy father did put upon us lighter? 12:10 And the -young men that were grown up with him spake unto him, saying, Thus -shalt thou speak unto this people that spake unto thee, saying, Thy -father made our yoke heavy, but make thou it lighter unto us; thus -shalt thou say unto them, My little finger shall be thicker than my -father's loins. - -12:11 And now whereas my father did lade you with a heavy yoke, I will -add to your yoke: my father hath chastised you with whips, but I will -chastise you with scorpions. - -12:12 So Jeroboam and all the people came to Rehoboam the third day, -as the king had appointed, saying, Come to me again the third day. - -12:13 And the king answered the people roughly, and forsook the old -men's counsel that they gave him; 12:14 And spake to them after the -counsel of the young men, saying, My father made your yoke heavy, and -I will add to your yoke: my father also chastised you with whips, but -I will chastise you with scorpions. - -12:15 Wherefore the king hearkened not unto the people; for the cause -was from the LORD, that he might perform his saying, which the LORD -spake by Ahijah the Shilonite unto Jeroboam the son of Nebat. - -12:16 So when all Israel saw that the king hearkened not unto them, -the people answered the king, saying, What portion have we in David? -neither have we inheritance in the son of Jesse: to your tents, O -Israel: now see to thine own house, David. So Israel departed unto -their tents. - -12:17 But as for the children of Israel which dwelt in the cities of -Judah, Rehoboam reigned over them. - -12:18 Then king Rehoboam sent Adoram, who was over the tribute; and -all Israel stoned him with stones, that he died. Therefore king -Rehoboam made speed to get him up to his chariot, to flee to -Jerusalem. - -12:19 So Israel rebelled against the house of David unto this day. - -12:20 And it came to pass, when all Israel heard that Jeroboam was -come again, that they sent and called him unto the congregation, and -made him king over all Israel: there was none that followed the house -of David, but the tribe of Judah only. - -12:21 And when Rehoboam was come to Jerusalem, he assembled all the -house of Judah, with the tribe of Benjamin, an hundred and fourscore -thousand chosen men, which were warriors, to fight against the house -of Israel, to bring the kingdom again to Rehoboam the son of Solomon. - -12:22 But the word of God came unto Shemaiah the man of God, saying, -12:23 Speak unto Rehoboam, the son of Solomon, king of Judah, and unto -all the house of Judah and Benjamin, and to the remnant of the people, -saying, 12:24 Thus saith the LORD, Ye shall not go up, nor fight -against your brethren the children of Israel: return every man to his -house; for this thing is from me. They hearkened therefore to the word -of the LORD, and returned to depart, according to the word of the -LORD. - -12:25 Then Jeroboam built Shechem in mount Ephraim, and dwelt therein; -and went out from thence, and built Penuel. - -12:26 And Jeroboam said in his heart, Now shall the kingdom return to -the house of David: 12:27 If this people go up to do sacrifice in the -house of the LORD at Jerusalem, then shall the heart of this people -turn again unto their lord, even unto Rehoboam king of Judah, and they -shall kill me, and go again to Rehoboam king of Judah. - -12:28 Whereupon the king took counsel, and made two calves of gold, -and said unto them, It is too much for you to go up to Jerusalem: -behold thy gods, O Israel, which brought thee up out of the land of -Egypt. - -12:29 And he set the one in Bethel, and the other put he in Dan. - -12:30 And this thing became a sin: for the people went to worship -before the one, even unto Dan. - -12:31 And he made an house of high places, and made priests of the -lowest of the people, which were not of the sons of Levi. - -12:32 And Jeroboam ordained a feast in the eighth month, on the -fifteenth day of the month, like unto the feast that is in Judah, and -he offered upon the altar. So did he in Bethel, sacrificing unto the -calves that he had made: and he placed in Bethel the priests of the -high places which he had made. - -12:33 So he offered upon the altar which he had made in Bethel the -fifteenth day of the eighth month, even in the month which he had -devised of his own heart; and ordained a feast unto the children of -Israel: and he offered upon the altar, and burnt incense. - -13:1 And, behold, there came a man of God out of Judah by the word of -the LORD unto Bethel: and Jeroboam stood by the altar to burn incense. - -13:2 And he cried against the altar in the word of the LORD, and said, -O altar, altar, thus saith the LORD; Behold, a child shall be born -unto the house of David, Josiah by name; and upon thee shall he offer -the priests of the high places that burn incense upon thee, and men's -bones shall be burnt upon thee. - -13:3 And he gave a sign the same day, saying, This is the sign which -the LORD hath spoken; Behold, the altar shall be rent, and the ashes -that are upon it shall be poured out. - -13:4 And it came to pass, when king Jeroboam heard the saying of the -man of God, which had cried against the altar in Bethel, that he put -forth his hand from the altar, saying, Lay hold on him. And his hand, -which he put forth against him, dried up, so that he could not pull it -in again to him. - -13:5 The altar also was rent, and the ashes poured out from the altar, -according to the sign which the man of God had given by the word of -the LORD. - -13:6 And the king answered and said unto the man of God, Intreat now -the face of the LORD thy God, and pray for me, that my hand may be -restored me again. And the man of God besought the LORD, and the -king's hand was restored him again, and became as it was before. - -13:7 And the king said unto the man of God, Come home with me, and -refresh thyself, and I will give thee a reward. - -13:8 And the man of God said unto the king, If thou wilt give me half -thine house, I will not go in with thee, neither will I eat bread nor -drink water in this place: 13:9 For so was it charged me by the word -of the LORD, saying, Eat no bread, nor drink water, nor turn again by -the same way that thou camest. - -13:10 So he went another way, and returned not by the way that he came -to Bethel. - -13:11 Now there dwelt an old prophet in Bethel; and his sons came and -told him all the works that the man of God had done that day in -Bethel: the words which he had spoken unto the king, them they told -also to their father. - -13:12 And their father said unto them, What way went he? For his sons -had seen what way the man of God went, which came from Judah. - -13:13 And he said unto his sons, Saddle me the ass. So they saddled -him the ass: and he rode thereon, 13:14 And went after the man of God, -and found him sitting under an oak: and he said unto him, Art thou the -man of God that camest from Judah? And he said, I am. - -13:15 Then he said unto him, Come home with me, and eat bread. - -13:16 And he said, I may not return with thee, nor go in with thee: -neither will I eat bread nor drink water with thee in this place: -13:17 For it was said to me by the word of the LORD, Thou shalt eat no -bread nor drink water there, nor turn again to go by the way that thou -camest. - -13:18 He said unto him, I am a prophet also as thou art; and an angel -spake unto me by the word of the LORD, saying, Bring him back with -thee into thine house, that he may eat bread and drink water. But he -lied unto him. - -13:19 So he went back with him, and did eat bread in his house, and -drank water. - -13:20 And it came to pass, as they sat at the table, that the word of -the LORD came unto the prophet that brought him back: 13:21 And he -cried unto the man of God that came from Judah, saying, Thus saith the -LORD, Forasmuch as thou hast disobeyed the mouth of the LORD, and hast -not kept the commandment which the LORD thy God commanded thee, 13:22 -But camest back, and hast eaten bread and drunk water in the place, of -the which the Lord did say to thee, Eat no bread, and drink no water; -thy carcase shall not come unto the sepulchre of thy fathers. - -13:23 And it came to pass, after he had eaten bread, and after he had -drunk, that he saddled for him the ass, to wit, for the prophet whom -he had brought back. - -13:24 And when he was gone, a lion met him by the way, and slew him: -and his carcase was cast in the way, and the ass stood by it, the lion -also stood by the carcase. - -13:25 And, behold, men passed by, and saw the carcase cast in the way, -and the lion standing by the carcase: and they came and told it in the -city where the old prophet dwelt. - -13:26 And when the prophet that brought him back from the way heard -thereof, he said, It is the man of God, who was disobedient unto the -word of the LORD: therefore the LORD hath delivered him unto the lion, -which hath torn him, and slain him, according to the word of the LORD, -which he spake unto him. - -13:27 And he spake to his sons, saying, Saddle me the ass. And they -saddled him. - -13:28 And he went and found his carcase cast in the way, and the ass -and the lion standing by the carcase: the lion had not eaten the -carcase, nor torn the ass. - -13:29 And the prophet took up the carcase of the man of God, and laid -it upon the ass, and brought it back: and the old prophet came to the -city, to mourn and to bury him. - -13:30 And he laid his carcase in his own grave; and they mourned over -him, saying, Alas, my brother! 13:31 And it came to pass, after he -had buried him, that he spake to his sons, saying, When I am dead, -then bury me in the sepulchre wherein the man of God is buried; lay my -bones beside his bones: 13:32 For the saying which he cried by the -word of the LORD against the altar in Bethel, and against all the -houses of the high places which are in the cities of Samaria, shall -surely come to pass. - -13:33 After this thing Jeroboam returned not from his evil way, but -made again of the lowest of the people priests of the high places: -whosoever would, he consecrated him, and he became one of the priests -of the high places. - -13:34 And this thing became sin unto the house of Jeroboam, even to -cut it off, and to destroy it from off the face of the earth. - -14:1 At that time Abijah the son of Jeroboam fell sick. - -14:2 And Jeroboam said to his wife, Arise, I pray thee, and disguise -thyself, that thou be not known to be the wife of Jeroboam; and get -thee to Shiloh: behold, there is Ahijah the prophet, which told me -that I should be king over this people. - -14:3 And take with thee ten loaves, and cracknels, and a cruse of -honey, and go to him: he shall tell thee what shall become of the -child. - -14:4 And Jeroboam's wife did so, and arose, and went to Shiloh, and -came to the house of Ahijah. But Ahijah could not see; for his eyes -were set by reason of his age. - -14:5 And the LORD said unto Ahijah, Behold, the wife of Jeroboam -cometh to ask a thing of thee for her son; for he is sick: thus and -thus shalt thou say unto her: for it shall be, when she cometh in, -that she shall feign herself to be another woman. - -14:6 And it was so, when Ahijah heard the sound of her feet, as she -came in at the door, that he said, Come in, thou wife of Jeroboam; why -feignest thou thyself to be another? for I am sent to thee with heavy -tidings. - -14:7 Go, tell Jeroboam, Thus saith the LORD God of Israel, Forasmuch -as I exalted thee from among the people, and made thee prince over my -people Israel, 14:8 And rent the kingdom away from the house of David, -and gave it thee: and yet thou hast not been as my servant David, who -kept my commandments, and who followed me with all his heart, to do -that only which was right in mine eyes; 14:9 But hast done evil above -all that were before thee: for thou hast gone and made thee other -gods, and molten images, to provoke me to anger, and hast cast me -behind thy back: 14:10 Therefore, behold, I will bring evil upon the -house of Jeroboam, and will cut off from Jeroboam him that pisseth -against the wall, and him that is shut up and left in Israel, and will -take away the remnant of the house of Jeroboam, as a man taketh away -dung, till it be all gone. - -14:11 Him that dieth of Jeroboam in the city shall the dogs eat; and -him that dieth in the field shall the fowls of the air eat: for the -LORD hath spoken it. - -14:12 Arise thou therefore, get thee to thine own house: and when thy -feet enter into the city, the child shall die. - -14:13 And all Israel shall mourn for him, and bury him: for he only of -Jeroboam shall come to the grave, because in him there is found some -good thing toward the LORD God of Israel in the house of Jeroboam. - -14:14 Moreover the LORD shall raise him up a king over Israel, who -shall cut off the house of Jeroboam that day: but what? even now. - -14:15 For the LORD shall smite Israel, as a reed is shaken in the -water, and he shall root up Israel out of this good land, which he -gave to their fathers, and shall scatter them beyond the river, -because they have made their groves, provoking the LORD to anger. - -14:16 And he shall give Israel up because of the sins of Jeroboam, who -did sin, and who made Israel to sin. - -14:17 And Jeroboam's wife arose, and departed, and came to Tirzah: and -when she came to the threshold of the door, the child died; 14:18 And -they buried him; and all Israel mourned for him, according to the word -of the LORD, which he spake by the hand of his servant Ahijah the -prophet. - -14:19 And the rest of the acts of Jeroboam, how he warred, and how he -reigned, behold, they are written in the book of the chronicles of the -kings of Israel. - -14:20 And the days which Jeroboam reigned were two and twenty years: -and he slept with his fathers, and Nadab his son reigned in his stead. - -14:21 And Rehoboam the son of Solomon reigned in Judah. Rehoboam was -forty and one years old when he began to reign, and he reigned -seventeen years in Jerusalem, the city which the LORD did choose out -of all the tribes of Israel, to put his name there. And his mother's -name was Naamah an Ammonitess. - -14:22 And Judah did evil in the sight of the LORD, and they provoked -him to jealousy with their sins which they had committed, above all -that their fathers had done. - -14:23 For they also built them high places, and images, and groves, on -every high hill, and under every green tree. - -14:24 And there were also sodomites in the land: and they did -according to all the abominations of the nations which the LORD cast -out before the children of Israel. - -14:25 And it came to pass in the fifth year of king Rehoboam, that -Shishak king of Egypt came up against Jerusalem: 14:26 And he took -away the treasures of the house of the LORD, and the treasures of the -king's house; he even took away all: and he took away all the shields -of gold which Solomon had made. - -14:27 And king Rehoboam made in their stead brasen shields, and -committed them unto the hands of the chief of the guard, which kept -the door of the king's house. - -14:28 And it was so, when the king went into the house of the LORD, -that the guard bare them, and brought them back into the guard -chamber. - -14:29 Now the rest of the acts of Rehoboam, and all that he did, are -they not written in the book of the chronicles of the kings of Judah? -14:30 And there was war between Rehoboam and Jeroboam all their days. - -14:31 And Rehoboam slept with his fathers, and was buried with his -fathers in the city of David. And his mother's name was Naamah an -Ammonitess. And Abijam his son reigned in his stead. - -15:1 Now in the eighteenth year of king Jeroboam the son of Nebat -reigned Abijam over Judah. - -15:2 Three years reigned he in Jerusalem. and his mother's name was -Maachah, the daughter of Abishalom. - -15:3 And he walked in all the sins of his father, which he had done -before him: and his heart was not perfect with the LORD his God, as -the heart of David his father. - -15:4 Nevertheless for David's sake did the LORD his God give him a -lamp in Jerusalem, to set up his son after him, and to establish -Jerusalem: 15:5 Because David did that which was right in the eyes of -the LORD, and turned not aside from any thing that he commanded him -all the days of his life, save only in the matter of Uriah the -Hittite. - -15:6 And there was war between Rehoboam and Jeroboam all the days of -his life. - -15:7 Now the rest of the acts of Abijam, and all that he did, are they -not written in the book of the chronicles of the kings of Judah? And -there was war between Abijam and Jeroboam. - -15:8 And Abijam slept with his fathers; and they buried him in the -city of David: and Asa his son reigned in his stead. - -15:9 And in the twentieth year of Jeroboam king of Israel reigned Asa -over Judah. - -15:10 And forty and one years reigned he in Jerusalem. And his -mother's name was Maachah, the daughter of Abishalom. - -15:11 And Asa did that which was right in the eyes of the LORD, as did -David his father. - -15:12 And he took away the sodomites out of the land, and removed all -the idols that his fathers had made. - -15:13 And also Maachah his mother, even her he removed from being -queen, because she had made an idol in a grove; and Asa destroyed her -idol, and burnt it by the brook Kidron. - -15:14 But the high places were not removed: nevertheless Asa's heart -was perfect with the LORD all his days. - -15:15 And he brought in the things which his father had dedicated, and -the things which himself had dedicated, into the house of the LORD, -silver, and gold, and vessels. - -15:16 And there was war between Asa and Baasha king of Israel all -their days. - -15:17 And Baasha king of Israel went up against Judah, and built -Ramah, that he might not suffer any to go out or come in to Asa king -of Judah. - -15:18 Then Asa took all the silver and the gold that were left in the -treasures of the house of the LORD, and the treasures of the king's -house, and delivered them into the hand of his servants: and king Asa -sent them to Benhadad, the son of Tabrimon, the son of Hezion, king of -Syria, that dwelt at Damascus, saying, 15:19 There is a league between -me and thee, and between my father and thy father: behold, I have sent -unto thee a present of silver and gold; come and break thy league with -Baasha king of Israel, that he may depart from me. - -15:20 So Benhadad hearkened unto king Asa, and sent the captains of -the hosts which he had against the cities of Israel, and smote Ijon, -and Dan, and Abelbethmaachah, and all Cinneroth, with all the land of -Naphtali. - -15:21 And it came to pass, when Baasha heard thereof, that he left off -building of Ramah, and dwelt in Tirzah. - -15:22 Then king Asa made a proclamation throughout all Judah; none was -exempted: and they took away the stones of Ramah, and the timber -thereof, wherewith Baasha had builded; and king Asa built with them -Geba of Benjamin, and Mizpah. - -15:23 The rest of all the acts of Asa, and all his might, and all that -he did, and the cities which he built, are they not written in the -book of the chronicles of the kings of Judah? Nevertheless in the time -of his old age he was diseased in his feet. - -15:24 And Asa slept with his fathers, and was buried with his fathers -in the city of David his father: and Jehoshaphat his son reigned in -his stead. - -15:25 And Nadab the son of Jeroboam began to reign over Israel in the -second year of Asa king of Judah, and reigned over Israel two years. - -15:26 And he did evil in the sight of the LORD, and walked in the way -of his father, and in his sin wherewith he made Israel to sin. - -15:27 And Baasha the son of Ahijah, of the house of Issachar, -conspired against him; and Baasha smote him at Gibbethon, which -belonged to the Philistines; for Nadab and all Israel laid siege to -Gibbethon. - -15:28 Even in the third year of Asa king of Judah did Baasha slay him, -and reigned in his stead. - -15:29 And it came to pass, when he reigned, that he smote all the -house of Jeroboam; he left not to Jeroboam any that breathed, until he -had destroyed him, according unto the saying of the LORD, which he -spake by his servant Ahijah the Shilonite: 15:30 Because of the sins -of Jeroboam which he sinned, and which he made Israel sin, by his -provocation wherewith he provoked the LORD God of Israel to anger. - -15:31 Now the rest of the acts of Nadab, and all that he did, are they -not written in the book of the chronicles of the kings of Israel? -15:32 And there was war between Asa and Baasha king of Israel all -their days. - -15:33 In the third year of Asa king of Judah began Baasha the son of -Ahijah to reign over all Israel in Tirzah, twenty and four years. - -15:34 And he did evil in the sight of the LORD, and walked in the way -of Jeroboam, and in his sin wherewith he made Israel to sin. - -16:1 Then the word of the LORD came to Jehu the son of Hanani against -Baasha, saying, 16:2 Forasmuch as I exalted thee out of the dust, and -made thee prince over my people Israel; and thou hast walked in the -way of Jeroboam, and hast made my people Israel to sin, to provoke me -to anger with their sins; 16:3 Behold, I will take away the posterity -of Baasha, and the posterity of his house; and will make thy house -like the house of Jeroboam the son of Nebat. - -16:4 Him that dieth of Baasha in the city shall the dogs eat; and him -that dieth of his in the fields shall the fowls of the air eat. - -16:5 Now the rest of the acts of Baasha, and what he did, and his -might, are they not written in the book of the chronicles of the kings -of Israel? 16:6 So Baasha slept with his fathers, and was buried in -Tirzah: and Elah his son reigned in his stead. - -16:7 And also by the hand of the prophet Jehu the son of Hanani came -the word of the LORD against Baasha, and against his house, even for -all the evil that he did in the sight of the LORD, in provoking him to -anger with the work of his hands, in being like the house of Jeroboam; -and because he killed him. - -16:8 In the twenty and sixth year of Asa king of Judah began Elah the -son of Baasha to reign over Israel in Tirzah, two years. - -16:9 And his servant Zimri, captain of half his chariots, conspired -against him, as he was in Tirzah, drinking himself drunk in the house -of Arza steward of his house in Tirzah. - -16:10 And Zimri went in and smote him, and killed him, in the twenty -and seventh year of Asa king of Judah, and reigned in his stead. - -16:11 And it came to pass, when he began to reign, as soon as he sat -on his throne, that he slew all the house of Baasha: he left him not -one that pisseth against a wall, neither of his kinsfolks, nor of his -friends. - -16:12 Thus did Zimri destroy all the house of Baasha, according to the -word of the LORD, which he spake against Baasha by Jehu the prophet. - -16:13 For all the sins of Baasha, and the sins of Elah his son, by -which they sinned, and by which they made Israel to sin, in provoking -the LORD God of Israel to anger with their vanities. - -16:14 Now the rest of the acts of Elah, and all that he did, are they -not written in the book of the chronicles of the kings of Israel? -16:15 In the twenty and seventh year of Asa king of Judah did Zimri -reign seven days in Tirzah. And the people were encamped against -Gibbethon, which belonged to the Philistines. - -16:16 And the people that were encamped heard say, Zimri hath -conspired, and hath also slain the king: wherefore all Israel made -Omri, the captain of the host, king over Israel that day in the camp. - -16:17 And Omri went up from Gibbethon, and all Israel with him, and -they besieged Tirzah. - -16:18 And it came to pass, when Zimri saw that the city was taken, -that he went into the palace of the king's house, and burnt the king's -house over him with fire, and died. - -16:19 For his sins which he sinned in doing evil in the sight of the -LORD, in walking in the way of Jeroboam, and in his sin which he did, -to make Israel to sin. - -16:20 Now the rest of the acts of Zimri, and his treason that he -wrought, are they not written in the book of the chronicles of the -kings of Israel? 16:21 Then were the people of Israel divided into -two parts: half of the people followed Tibni the son of Ginath, to -make him king; and half followed Omri. - -16:22 But the people that followed Omri prevailed against the people -that followed Tibni the son of Ginath: so Tibni died, and Omri -reigned. - -16:23 In the thirty and first year of Asa king of Judah began Omri to -reign over Israel, twelve years: six years reigned he in Tirzah. - -16:24 And he bought the hill Samaria of Shemer for two talents of -silver, and built on the hill, and called the name of the city which -he built, after the name of Shemer, owner of the hill, Samaria. - -16:25 But Omri wrought evil in the eyes of the LORD, and did worse -than all that were before him. - -16:26 For he walked in all the way of Jeroboam the son of Nebat, and -in his sin wherewith he made Israel to sin, to provoke the LORD God of -Israel to anger with their vanities. - -16:27 Now the rest of the acts of Omri which he did, and his might -that he shewed, are they not written in the book of the chronicles of -the kings of Israel? 16:28 So Omri slept with his fathers, and was -buried in Samaria: and Ahab his son reigned in his stead. - -16:29 And in the thirty and eighth year of Asa king of Judah began -Ahab the son of Omri to reign over Israel: and Ahab the son of Omri -reigned over Israel in Samaria twenty and two years. - -16:30 And Ahab the son of Omri did evil in the sight of the LORD above -all that were before him. - -16:31 And it came to pass, as if it had been a light thing for him to -walk in the sins of Jeroboam the son of Nebat, that he took to wife -Jezebel the daughter of Ethbaal king of the Zidonians, and went and -served Baal, and worshipped him. - -16:32 And he reared up an altar for Baal in the house of Baal, which -he had built in Samaria. - -16:33 And Ahab made a grove; and Ahab did more to provoke the LORD God -of Israel to anger than all the kings of Israel that were before him. - -16:34 In his days did Hiel the Bethelite build Jericho: he laid the -foundation thereof in Abiram his firstborn, and set up the gates -thereof in his youngest son Segub, according to the word of the LORD, -which he spake by Joshua the son of Nun. - -17:1 And Elijah the Tishbite, who was of the inhabitants of Gilead, -said unto Ahab, As the LORD God of Israel liveth, before whom I stand, -there shall not be dew nor rain these years, but according to my word. - -17:2 And the word of the LORD came unto him, saying, 17:3 Get thee -hence, and turn thee eastward, and hide thyself by the brook Cherith, -that is before Jordan. - -17:4 And it shall be, that thou shalt drink of the brook; and I have -commanded the ravens to feed thee there. - -17:5 So he went and did according unto the word of the LORD: for he -went and dwelt by the brook Cherith, that is before Jordan. - -17:6 And the ravens brought him bread and flesh in the morning, and -bread and flesh in the evening; and he drank of the brook. - -17:7 And it came to pass after a while, that the brook dried up, -because there had been no rain in the land. - -17:8 And the word of the LORD came unto him, saying, 17:9 Arise, get -thee to Zarephath, which belongeth to Zidon, and dwell there: behold, -I have commanded a widow woman there to sustain thee. - -17:10 So he arose and went to Zarephath. And when he came to the gate -of the city, behold, the widow woman was there gathering of sticks: -and he called to her, and said, Fetch me, I pray thee, a little water -in a vessel, that I may drink. - -17:11 And as she was going to fetch it, he called to her, and said, -Bring me, I pray thee, a morsel of bread in thine hand. - -17:12 And she said, As the LORD thy God liveth, I have not a cake, but -an handful of meal in a barrel, and a little oil in a cruse: and, -behold, I am gathering two sticks, that I may go in and dress it for -me and my son, that we may eat it, and die. - -17:13 And Elijah said unto her, Fear not; go and do as thou hast said: -but make me thereof a little cake first, and bring it unto me, and -after make for thee and for thy son. - -17:14 For thus saith the LORD God of Israel, The barrel of meal shall -not waste, neither shall the cruse of oil fail, until the day that the -LORD sendeth rain upon the earth. - -17:15 And she went and did according to the saying of Elijah: and she, -and he, and her house, did eat many days. - -17:16 And the barrel of meal wasted not, neither did the cruse of oil -fail, according to the word of the LORD, which he spake by Elijah. - -17:17 And it came to pass after these things, that the son of the -woman, the mistress of the house, fell sick; and his sickness was so -sore, that there was no breath left in him. - -17:18 And she said unto Elijah, What have I to do with thee, O thou -man of God? art thou come unto me to call my sin to remembrance, and -to slay my son? 17:19 And he said unto her, Give me thy son. And he -took him out of her bosom, and carried him up into a loft, where he -abode, and laid him upon his own bed. - -17:20 And he cried unto the LORD, and said, O LORD my God, hast thou -also brought evil upon the widow with whom I sojourn, by slaying her -son? 17:21 And he stretched himself upon the child three times, and -cried unto the LORD, and said, O LORD my God, I pray thee, let this -child's soul come into him again. - -17:22 And the LORD heard the voice of Elijah; and the soul of the -child came into him again, and he revived. - -17:23 And Elijah took the child, and brought him down out of the -chamber into the house, and delivered him unto his mother: and Elijah -said, See, thy son liveth. - -17:24 And the woman said to Elijah, Now by this I know that thou art a -man of God, and that the word of the LORD in thy mouth is truth. - -18:1 And it came to pass after many days, that the word of the LORD -came to Elijah in the third year, saying, Go, shew thyself unto Ahab; -and I will send rain upon the earth. - -18:2 And Elijah went to shew himself unto Ahab. And there was a sore -famine in Samaria. - -18:3 And Ahab called Obadiah, which was the governor of his house. -(Now Obadiah feared the LORD greatly: 18:4 For it was so, when Jezebel -cut off the prophets of the LORD, that Obadiah took an hundred -prophets, and hid them by fifty in a cave, and fed them with bread and -water.) 18:5 And Ahab said unto Obadiah, Go into the land, unto all -fountains of water, and unto all brooks: peradventure we may find -grass to save the horses and mules alive, that we lose not all the -beasts. - -18:6 So they divided the land between them to pass throughout it: Ahab -went one way by himself, and Obadiah went another way by himself. - -18:7 And as Obadiah was in the way, behold, Elijah met him: and he -knew him, and fell on his face, and said, Art thou that my lord -Elijah? 18:8 And he answered him, I am: go, tell thy lord, Behold, -Elijah is here. - -18:9 And he said, What have I sinned, that thou wouldest deliver thy -servant into the hand of Ahab, to slay me? 18:10 As the LORD thy God -liveth, there is no nation or kingdom, whither my lord hath not sent -to seek thee: and when they said, He is not there; he took an oath of -the kingdom and nation, that they found thee not. - -18:11 And now thou sayest, Go, tell thy lord, Behold, Elijah is here. - -18:12 And it shall come to pass, as soon as I am gone from thee, that -the Spirit of the LORD shall carry thee whither I know not; and so -when I come and tell Ahab, and he cannot find thee, he shall slay me: -but I thy servant fear the LORD from my youth. - -18:13 Was it not told my lord what I did when Jezebel slew the -prophets of the LORD, how I hid an hundred men of the LORD's prophets -by fifty in a cave, and fed them with bread and water? 18:14 And now -thou sayest, Go, tell thy lord, Behold, Elijah is here: and he shall -slay me. - -18:15 And Elijah said, As the LORD of hosts liveth, before whom I -stand, I will surely shew myself unto him to day. - -18:16 So Obadiah went to meet Ahab, and told him: and Ahab went to -meet Elijah. - -18:17 And it came to pass, when Ahab saw Elijah, that Ahab said unto -him, Art thou he that troubleth Israel? 18:18 And he answered, I have -not troubled Israel; but thou, and thy father's house, in that ye have -forsaken the commandments of the LORD, and thou hast followed Baalim. - -18:19 Now therefore send, and gather to me all Israel unto mount -Carmel, and the prophets of Baal four hundred and fifty, and the -prophets of the groves four hundred, which eat at Jezebel's table. - -18:20 So Ahab sent unto all the children of Israel, and gathered the -prophets together unto mount Carmel. - -18:21 And Elijah came unto all the people, and said, How long halt ye -between two opinions? if the LORD be God, follow him: but if Baal, -then follow him. And the people answered him not a word. - -18:22 Then said Elijah unto the people, I, even I only, remain a -prophet of the LORD; but Baal's prophets are four hundred and fifty -men. - -18:23 Let them therefore give us two bullocks; and let them choose one -bullock for themselves, and cut it in pieces, and lay it on wood, and -put no fire under: and I will dress the other bullock, and lay it on -wood, and put no fire under: 18:24 And call ye on the name of your -gods, and I will call on the name of the LORD: and the God that -answereth by fire, let him be God. And all the people answered and -said, It is well spoken. - -18:25 And Elijah said unto the prophets of Baal, Choose you one -bullock for yourselves, and dress it first; for ye are many; and call -on the name of your gods, but put no fire under. - -18:26 And they took the bullock which was given them, and they dressed -it, and called on the name of Baal from morning even until noon, -saying, O Baal, hear us. But there was no voice, nor any that -answered. And they leaped upon the altar which was made. - -18:27 And it came to pass at noon, that Elijah mocked them, and said, -Cry aloud: for he is a god; either he is talking, or he is pursuing, -or he is in a journey, or peradventure he sleepeth, and must be -awaked. - -18:28 And they cried aloud, and cut themselves after their manner with -knives and lancets, till the blood gushed out upon them. - -18:29 And it came to pass, when midday was past, and they prophesied -until the time of the offering of the evening sacrifice, that there -was neither voice, nor any to answer, nor any that regarded. - -18:30 And Elijah said unto all the people, Come near unto me. And all -the people came near unto him. And he repaired the altar of the LORD -that was broken down. - -18:31 And Elijah took twelve stones, according to the number of the -tribes of the sons of Jacob, unto whom the word of the LORD came, -saying, Israel shall be thy name: 18:32 And with the stones he built -an altar in the name of the LORD: and he made a trench about the -altar, as great as would contain two measures of seed. - -18:33 And he put the wood in order, and cut the bullock in pieces, and -laid him on the wood, and said, Fill four barrels with water, and pour -it on the burnt sacrifice, and on the wood. - -18:34 And he said, Do it the second time. And they did it the second -time. - -And he said, Do it the third time. And they did it the third time. - -18:35 And the water ran round about the altar; and he filled the -trench also with water. - -18:36 And it came to pass at the time of the offering of the evening -sacrifice, that Elijah the prophet came near, and said, LORD God of -Abraham, Isaac, and of Israel, let it be known this day that thou art -God in Israel, and that I am thy servant, and that I have done all -these things at thy word. - -18:37 Hear me, O LORD, hear me, that this people may know that thou -art the LORD God, and that thou hast turned their heart back again. - -18:38 Then the fire of the LORD fell, and consumed the burnt -sacrifice, and the wood, and the stones, and the dust, and licked up -the water that was in the trench. - -18:39 And when all the people saw it, they fell on their faces: and -they said, The LORD, he is the God; the LORD, he is the God. - -18:40 And Elijah said unto them, Take the prophets of Baal; let not -one of them escape. And they took them: and Elijah brought them down -to the brook Kishon, and slew them there. - -18:41 And Elijah said unto Ahab, Get thee up, eat and drink; for there -is a sound of abundance of rain. - -18:42 So Ahab went up to eat and to drink. And Elijah went up to the -top of Carmel; and he cast himself down upon the earth, and put his -face between his knees, 18:43 And said to his servant, Go up now, look -toward the sea. And he went up, and looked, and said, There is -nothing. And he said, Go again seven times. - -18:44 And it came to pass at the seventh time, that he said, Behold, -there ariseth a little cloud out of the sea, like a man's hand. And he -said, Go up, say unto Ahab, Prepare thy chariot, and get thee down -that the rain stop thee not. - -18:45 And it came to pass in the mean while, that the heaven was black -with clouds and wind, and there was a great rain. And Ahab rode, and -went to Jezreel. - -18:46 And the hand of the LORD was on Elijah; and he girded up his -loins, and ran before Ahab to the entrance of Jezreel. - -19:1 And Ahab told Jezebel all that Elijah had done, and withal how he -had slain all the prophets with the sword. - -19:2 Then Jezebel sent a messenger unto Elijah, saying, So let the -gods do to me, and more also, if I make not thy life as the life of -one of them by to morrow about this time. - -19:3 And when he saw that, he arose, and went for his life, and came -to Beersheba, which belongeth to Judah, and left his servant there. - -19:4 But he himself went a day's journey into the wilderness, and came -and sat down under a juniper tree: and he requested for himself that -he might die; and said, It is enough; now, O LORD, take away my life; -for I am not better than my fathers. - -19:5 And as he lay and slept under a juniper tree, behold, then an -angel touched him, and said unto him, Arise and eat. - -19:6 And he looked, and, behold, there was a cake baken on the coals, -and a cruse of water at his head. And he did eat and drink, and laid -him down again. - -19:7 And the angel of the LORD came again the second time, and touched -him, and said, Arise and eat; because the journey is too great for -thee. - -19:8 And he arose, and did eat and drink, and went in the strength of -that meat forty days and forty nights unto Horeb the mount of God. - -19:9 And he came thither unto a cave, and lodged there; and, behold, -the word of the LORD came to him, and he said unto him, What doest -thou here, Elijah? 19:10 And he said, I have been very jealous for -the LORD God of hosts: for the children of Israel have forsaken thy -covenant, thrown down thine altars, and slain thy prophets with the -sword; and I, even I only, am left; and they seek my life, to take it -away. - -19:11 And he said, Go forth, and stand upon the mount before the LORD. - -And, behold, the LORD passed by, and a great and strong wind rent the -mountains, and brake in pieces the rocks before the LORD; but the LORD -was not in the wind: and after the wind an earthquake; but the LORD -was not in the earthquake: 19:12 And after the earthquake a fire; but -the LORD was not in the fire: and after the fire a still small voice. - -19:13 And it was so, when Elijah heard it, that he wrapped his face in -his mantle, and went out, and stood in the entering in of the cave. -And, behold, there came a voice unto him, and said, What doest thou -here, Elijah? 19:14 And he said, I have been very jealous for the -LORD God of hosts: because the children of Israel have forsaken thy -covenant, thrown down thine altars, and slain thy prophets with the -sword; and I, even I only, am left; and they seek my life, to take it -away. - -19:15 And the LORD said unto him, Go, return on thy way to the -wilderness of Damascus: and when thou comest, anoint Hazael to be king -over Syria: 19:16 And Jehu the son of Nimshi shalt thou anoint to be -king over Israel: and Elisha the son of Shaphat of Abelmeholah shalt -thou anoint to be prophet in thy room. - -19:17 And it shall come to pass, that him that escapeth the sword of -Hazael shall Jehu slay: and him that escapeth from the sword of Jehu -shall Elisha slay. - -19:18 Yet I have left me seven thousand in Israel, all the knees which -have not bowed unto Baal, and every mouth which hath not kissed him. - -19:19 So he departed thence, and found Elisha the son of Shaphat, who -was plowing with twelve yoke of oxen before him, and he with the -twelfth: and Elijah passed by him, and cast his mantle upon him. - -19:20 And he left the oxen, and ran after Elijah, and said, Let me, I -pray thee, kiss my father and my mother, and then I will follow thee. -And he said unto him, Go back again: for what have I done to thee? -19:21 And he returned back from him, and took a yoke of oxen, and slew -them, and boiled their flesh with the instruments of the oxen, and -gave unto the people, and they did eat. Then he arose, and went after -Elijah, and ministered unto him. - -20:1 And Benhadad the king of Syria gathered all his host together: -and there were thirty and two kings with him, and horses, and -chariots; and he went up and besieged Samaria, and warred against it. - -20:2 And he sent messengers to Ahab king of Israel into the city, and -said unto him, Thus saith Benhadad, 20:3 Thy silver and thy gold is -mine; thy wives also and thy children, even the goodliest, are mine. - -20:4 And the king of Israel answered and said, My lord, O king, -according to thy saying, I am thine, and all that I have. - -20:5 And the messengers came again, and said, Thus speaketh Benhadad, -saying, Although I have sent unto thee, saying, Thou shalt deliver me -thy silver, and thy gold, and thy wives, and thy children; 20:6 Yet I -will send my servants unto thee to morrow about this time, and they -shall search thine house, and the houses of thy servants; and it shall -be, that whatsoever is pleasant in thine eyes, they shall put it in -their hand, and take it away. - -20:7 Then the king of Israel called all the elders of the land, and -said, Mark, I pray you, and see how this man seeketh mischief: for he -sent unto me for my wives, and for my children, and for my silver, and -for my gold; and I denied him not. - -20:8 And all the elders and all the people said unto him, Hearken not -unto him, nor consent. - -20:9 Wherefore he said unto the messengers of Benhadad, Tell my lord -the king, All that thou didst send for to thy servant at the first I -will do: but this thing I may not do. And the messengers departed, and -brought him word again. - -20:10 And Benhadad sent unto him, and said, The gods do so unto me, -and more also, if the dust of Samaria shall suffice for handfuls for -all the people that follow me. - -20:11 And the king of Israel answered and said, Tell him, Let not him -that girdeth on his harness boast himself as he that putteth it off. - -20:12 And it came to pass, when Ben-hadad heard this message, as he -was drinking, he and the kings in the pavilions, that he said unto his -servants, Set yourselves in array. And they set themselves in array -against the city. - -20:13 And, behold, there came a prophet unto Ahab king of Israel, -saying, Thus saith the LORD, Hast thou seen all this great multitude? -behold, I will deliver it into thine hand this day; and thou shalt -know that I am the LORD. - -20:14 And Ahab said, By whom? And he said, Thus saith the LORD, Even -by the young men of the princes of the provinces. Then he said, Who -shall order the battle? And he answered, Thou. - -20:15 Then he numbered the young men of the princes of the provinces, -and they were two hundred and thirty two: and after them he numbered -all the people, even all the children of Israel, being seven thousand. - -20:16 And they went out at noon. But Benhadad was drinking himself -drunk in the pavilions, he and the kings, the thirty and two kings -that helped him. - -20:17 And the young men of the princes of the provinces went out -first; and Benhadad sent out, and they told him, saying, There are men -come out of Samaria. - -20:18 And he said, Whether they be come out for peace, take them -alive; or whether they be come out for war, take them alive. - -20:19 So these young men of the princes of the provinces came out of -the city, and the army which followed them. - -20:20 And they slew every one his man: and the Syrians fled; and -Israel pursued them: and Benhadad the king of Syria escaped on an -horse with the horsemen. - -20:21 And the king of Israel went out, and smote the horses and -chariots, and slew the Syrians with a great slaughter. - -20:22 And the prophet came to the king of Israel, and said unto him, -Go, strengthen thyself, and mark, and see what thou doest: for at the -return of the year the king of Syria will come up against thee. - -20:23 And the servants of the king of Syria said unto him, Their gods -are gods of the hills; therefore they were stronger than we; but let -us fight against them in the plain, and surely we shall be stronger -than they. - -20:24 And do this thing, Take the kings away, every man out of his -place, and put captains in their rooms: 20:25 And number thee an army, -like the army that thou hast lost, horse for horse, and chariot for -chariot: and we will fight against them in the plain, and surely we -shall be stronger than they. And he hearkened unto their voice, and -did so. - -20:26 And it came to pass at the return of the year, that Benhadad -numbered the Syrians, and went up to Aphek, to fight against Israel. - -20:27 And the children of Israel were numbered, and were all present, -and went against them: and the children of Israel pitched before them -like two little flocks of kids; but the Syrians filled the country. - -20:28 And there came a man of God, and spake unto the king of Israel, -and said, Thus saith the LORD, Because the Syrians have said, The LORD -is God of the hills, but he is not God of the valleys, therefore will -I deliver all this great multitude into thine hand, and ye shall know -that I am the LORD. - -20:29 And they pitched one over against the other seven days. And so -it was, that in the seventh day the battle was joined: and the -children of Israel slew of the Syrians an hundred thousand footmen in -one day. - -20:30 But the rest fled to Aphek, into the city; and there a wall fell -upon twenty and seven thousand of the men that were left. And Benhadad -fled, and came into the city, into an inner chamber. - -20:31 And his servants said unto him, Behold now, we have heard that -the kings of the house of Israel are merciful kings: let us, I pray -thee, put sackcloth on our loins, and ropes upon our heads, and go out -to the king of Israel: peradventure he will save thy life. - -20:32 So they girded sackcloth on their loins, and put ropes on their -heads, and came to the king of Israel, and said, Thy servant Benhadad -saith, I pray thee, let me live. And he said, Is he yet alive? he is -my brother. - -20:33 Now the men did diligently observe whether any thing would come -from him, and did hastily catch it: and they said, Thy brother -Benhadad. Then he said, Go ye, bring him. Then Benhadad came forth to -him; and he caused him to come up into the chariot. - -20:34 And Ben-hadad said unto him, The cities, which my father took -from thy father, I will restore; and thou shalt make streets for thee -in Damascus, as my father made in Samaria. Then said Ahab, I will send -thee away with this covenant. So he made a covenant with him, and sent -him away. - -20:35 And a certain man of the sons of the prophets said unto his -neighbour in the word of the LORD, Smite me, I pray thee. And the man -refused to smite him. - -20:36 Then said he unto him, Because thou hast not obeyed the voice of -the LORD, behold, as soon as thou art departed from me, a lion shall -slay thee. - -And as soon as he was departed from him, a lion found him, and slew -him. - -20:37 Then he found another man, and said, Smite me, I pray thee. And -the man smote him, so that in smiting he wounded him. - -20:38 So the prophet departed, and waited for the king by the way, and -disguised himself with ashes upon his face. - -20:39 And as the king passed by, he cried unto the king: and he said, -Thy servant went out into the midst of the battle; and, behold, a man -turned aside, and brought a man unto me, and said, Keep this man: if -by any means he be missing, then shall thy life be for his life, or -else thou shalt pay a talent of silver. - -20:40 And as thy servant was busy here and there, he was gone. And the -king of Israel said unto him, So shall thy judgment be; thyself hast -decided it. - -20:41 And he hasted, and took the ashes away from his face; and the -king of Israel discerned him that he was of the prophets. - -20:42 And he said unto him, Thus saith the LORD, Because thou hast let -go out of thy hand a man whom I appointed to utter destruction, -therefore thy life shall go for his life, and thy people for his -people. - -20:43 And the king of Israel went to his house heavy and displeased, -and came to Samaria. - -21:1 And it came to pass after these things, that Naboth the -Jezreelite had a vineyard, which was in Jezreel, hard by the palace of -Ahab king of Samaria. - -21:2 And Ahab spake unto Naboth, saying, Give me thy vineyard, that I -may have it for a garden of herbs, because it is near unto my house: -and I will give thee for it a better vineyard than it; or, if it seem -good to thee, I will give thee the worth of it in money. - -21:3 And Naboth said to Ahab, The LORD forbid it me, that I should -give the inheritance of my fathers unto thee. - -21:4 And Ahab came into his house heavy and displeased because of the -word which Naboth the Jezreelite had spoken to him: for he had said, I -will not give thee the inheritance of my fathers. And he laid him down -upon his bed, and turned away his face, and would eat no bread. - -21:5 But Jezebel his wife came to him, and said unto him, Why is thy -spirit so sad, that thou eatest no bread? 21:6 And he said unto her, -Because I spake unto Naboth the Jezreelite, and said unto him, Give me -thy vineyard for money; or else, if it please thee, I will give thee -another vineyard for it: and he answered, I will not give thee my -vineyard. - -21:7 And Jezebel his wife said unto him, Dost thou now govern the -kingdom of Israel? arise, and eat bread, and let thine heart be merry: -I will give thee the vineyard of Naboth the Jezreelite. - -21:8 So she wrote letters in Ahab's name, and sealed them with his -seal, and sent the letters unto the elders and to the nobles that were -in his city, dwelling with Naboth. - -21:9 And she wrote in the letters, saying, Proclaim a fast, and set -Naboth on high among the people: 21:10 And set two men, sons of -Belial, before him, to bear witness against him, saying, Thou didst -blaspheme God and the king. And then carry him out, and stone him, -that he may die. - -21:11 And the men of his city, even the elders and the nobles who were -the inhabitants in his city, did as Jezebel had sent unto them, and as -it was written in the letters which she had sent unto them. - -21:12 They proclaimed a fast, and set Naboth on high among the people. - -21:13 And there came in two men, children of Belial, and sat before -him: and the men of Belial witnessed against him, even against Naboth, -in the presence of the people, saying, Naboth did blaspheme God and -the king. Then they carried him forth out of the city, and stoned him -with stones, that he died. - -21:14 Then they sent to Jezebel, saying, Naboth is stoned, and is -dead. - -21:15 And it came to pass, when Jezebel heard that Naboth was stoned, -and was dead, that Jezebel said to Ahab, Arise, take possession of the -vineyard of Naboth the Jezreelite, which he refused to give thee for -money: for Naboth is not alive, but dead. - -21:16 And it came to pass, when Ahab heard that Naboth was dead, that -Ahab rose up to go down to the vineyard of Naboth the Jezreelite, to -take possession of it. - -21:17 And the word of the LORD came to Elijah the Tishbite, saying, -21:18 Arise, go down to meet Ahab king of Israel, which is in Samaria: -behold, he is in the vineyard of Naboth, whither he is gone down to -possess it. - -21:19 And thou shalt speak unto him, saying, Thus saith the LORD, Hast -thou killed, and also taken possession? And thou shalt speak unto him, -saying, Thus saith the LORD, In the place where dogs licked the blood -of Naboth shall dogs lick thy blood, even thine. - -21:20 And Ahab said to Elijah, Hast thou found me, O mine enemy? And -he answered, I have found thee: because thou hast sold thyself to work -evil in the sight of the LORD. - -21:21 Behold, I will bring evil upon thee, and will take away thy -posterity, and will cut off from Ahab him that pisseth against the -wall, and him that is shut up and left in Israel, 21:22 And will make -thine house like the house of Jeroboam the son of Nebat, and like the -house of Baasha the son of Ahijah, for the provocation wherewith thou -hast provoked me to anger, and made Israel to sin. - -21:23 And of Jezebel also spake the LORD, saying, The dogs shall eat -Jezebel by the wall of Jezreel. - -21:24 Him that dieth of Ahab in the city the dogs shall eat; and him -that dieth in the field shall the fowls of the air eat. - -21:25 But there was none like unto Ahab, which did sell himself to -work wickedness in the sight of the LORD, whom Jezebel his wife -stirred up. - -21:26 And he did very abominably in following idols, according to all -things as did the Amorites, whom the LORD cast out before the children -of Israel. - -21:27 And it came to pass, when Ahab heard those words, that he rent -his clothes, and put sackcloth upon his flesh, and fasted, and lay in -sackcloth, and went softly. - -21:28 And the word of the LORD came to Elijah the Tishbite, saying, -21:29 Seest thou how Ahab humbleth himself before me? because he -humbleth himself before me, I will not bring the evil in his days: but -in his son's days will I bring the evil upon his house. - -22:1 And they continued three years without war between Syria and -Israel. - -22:2 And it came to pass in the third year, that Jehoshaphat the king -of Judah came down to the king of Israel. - -22:3 And the king of Israel said unto his servants, Know ye that -Ramoth in Gilead is ours, and we be still, and take it not out of the -hand of the king of Syria? 22:4 And he said unto Jehoshaphat, Wilt -thou go with me to battle to Ramothgilead? And Jehoshaphat said to the -king of Israel, I am as thou art, my people as thy people, my horses -as thy horses. - -22:5 And Jehoshaphat said unto the king of Israel, Enquire, I pray -thee, at the word of the LORD to day. - -22:6 Then the king of Israel gathered the prophets together, about -four hundred men, and said unto them, Shall I go against Ramothgilead -to battle, or shall I forbear? And they said, Go up; for the LORD -shall deliver it into the hand of the king. - -22:7 And Jehoshaphat said, Is there not here a prophet of the LORD -besides, that we might enquire of him? 22:8 And the king of Israel -said unto Jehoshaphat, There is yet one man, Micaiah the son of Imlah, -by whom we may enquire of the LORD: but I hate him; for he doth not -prophesy good concerning me, but evil. And Jehoshaphat said, Let not -the king say so. - -22:9 Then the king of Israel called an officer, and said, Hasten -hither Micaiah the son of Imlah. - -22:10 And the king of Israel and Jehoshaphat the king of Judah sat -each on his throne, having put on their robes, in a void place in the -entrance of the gate of Samaria; and all the prophets prophesied -before them. - -22:11 And Zedekiah the son of Chenaanah made him horns of iron: and he -said, Thus saith the LORD, With these shalt thou push the Syrians, -until thou have consumed them. - -22:12 And all the prophets prophesied so, saying, Go up to -Ramothgilead, and prosper: for the LORD shall deliver it into the -king's hand. - -22:13 And the messenger that was gone to call Micaiah spake unto him, -saying, Behold now, the words of the prophets declare good unto the -king with one mouth: let thy word, I pray thee, be like the word of -one of them, and speak that which is good. - -22:14 And Micaiah said, As the LORD liveth, what the LORD saith unto -me, that will I speak. - -22:15 So he came to the king. And the king said unto him, Micaiah, -shall we go against Ramothgilead to battle, or shall we forbear? And -he answered him, Go, and prosper: for the LORD shall deliver it into -the hand of the king. - -22:16 And the king said unto him, How many times shall I adjure thee -that thou tell me nothing but that which is true in the name of the -LORD? 22:17 And he said, I saw all Israel scattered upon the hills, -as sheep that have not a shepherd: and the LORD said, These have no -master: let them return every man to his house in peace. - -22:18 And the king of Israel said unto Jehoshaphat, Did I not tell -thee that he would prophesy no good concerning me, but evil? 22:19 -And he said, Hear thou therefore the word of the LORD: I saw the LORD -sitting on his throne, and all the host of heaven standing by him on -his right hand and on his left. - -22:20 And the LORD said, Who shall persuade Ahab, that he may go up -and fall at Ramothgilead? And one said on this manner, and another -said on that manner. - -22:21 And there came forth a spirit, and stood before the LORD, and -said, I will persuade him. - -22:22 And the LORD said unto him, Wherewith? And he said, I will go -forth, and I will be a lying spirit in the mouth of all his prophets. -And he said, Thou shalt persude him, and prevail also: go forth, and -do so. - -22:23 Now therefore, behold, the LORD hath put a lying spirit in the -mouth of all these thy prophets, and the LORD hath spoken evil -concerning thee. - -22:24 But Zedekiah the son of Chenaanah went near, and smote Micaiah -on the cheek, and said, Which way went the Spirit of the LORD from me -to speak unto thee? 22:25 And Micaiah said, Behold, thou shalt see in -that day, when thou shalt go into an inner chamber to hide thyself. - -22:26 And the king of Israel said, Take Micaiah, and carry him back -unto Amon the governor of the city, and to Joash the king's son; 22:27 -And say, Thus saith the king, Put this fellow in the prison, and feed -him with bread of affliction and with water of affliction, until I -come in peace. - -22:28 And Micaiah said, If thou return at all in peace, the LORD hath -not spoken by me. And he said, Hearken, O people, every one of you. - -22:29 So the king of Israel and Jehoshaphat the king of Judah went up -to Ramothgilead. - -22:30 And the king of Israel said unto Jehoshaphat, I will disguise -myself, and enter into the battle; but put thou on thy robes. And the -king of Israel disguised himself, and went into the battle. - -22:31 But the king of Syria commanded his thirty and two captains that -had rule over his chariots, saying, Fight neither with small nor -great, save only with the king of Israel. - -22:32 And it came to pass, when the captains of the chariots saw -Jehoshaphat, that they said, Surely it is the king of Israel. And they -turned aside to fight against him: and Jehoshaphat cried out. - -22:33 And it came to pass, when the captains of the chariots perceived -that it was not the king of Israel, that they turned back from -pursuing him. - -22:34 And a certain man drew a bow at a venture, and smote the king of -Israel between the joints of the harness: wherefore he said unto the -driver of his chariot, Turn thine hand, and carry me out of the host; -for I am wounded. - -22:35 And the battle increased that day: and the king was stayed up in -his chariot against the Syrians, and died at even: and the blood ran -out of the wound into the midst of the chariot. - -22:36 And there went a proclamation throughout the host about the -going down of the sun, saying, Every man to his city, and every man to -his own country. - -22:37 So the king died, and was brought to Samaria; and they buried -the king in Samaria. - -22:38 And one washed the chariot in the pool of Samaria; and the dogs -licked up his blood; and they washed his armour; according unto the -word of the LORD which he spake. - -22:39 Now the rest of the acts of Ahab, and all that he did, and the -ivory house which he made, and all the cities that he built, are they -not written in the book of the chronicles of the kings of Israel? -22:40 So Ahab slept with his fathers; and Ahaziah his son reigned in -his stead. - -22:41 And Jehoshaphat the son of Asa began to reign over Judah in the -fourth year of Ahab king of Israel. - -22:42 Jehoshaphat was thirty and five years old when he began to -reign; and he reigned twenty and five years in Jerusalem. And his -mother's name was Azubah the daughter of Shilhi. - -22:43 And he walked in all the ways of Asa his father; he turned not -aside from it, doing that which was right in the eyes of the LORD: -nevertheless the high places were not taken away; for the people -offered and burnt incense yet in the high places. - -22:44 And Jehoshaphat made peace with the king of Israel. - -22:45 Now the rest of the acts of Jehoshaphat, and his might that he -shewed, and how he warred, are they not written in the book of the -chronicles of the kings of Judah? 22:46 And the remnant of the -sodomites, which remained in the days of his father Asa, he took out -of the land. - -22:47 There was then no king in Edom: a deputy was king. - -22:48 Jehoshaphat made ships of Tharshish to go to Ophir for gold: but -they went not; for the ships were broken at Eziongeber. - -22:49 Then said Ahaziah the son of Ahab unto Jehoshaphat, Let my -servants go with thy servants in the ships. But Jehoshaphat would not. - -22:50 And Jehoshaphat slept with his fathers, and was buried with his -fathers in the city of David his father: and Jehoram his son reigned -in his stead. - -22:51 Ahaziah the son of Ahab began to reign over Israel in Samaria -the seventeenth year of Jehoshaphat king of Judah, and reigned two -years over Israel. - -22:52 And he did evil in the sight of the LORD, and walked in the way -of his father, and in the way of his mother, and in the way of -Jeroboam the son of Nebat, who made Israel to sin: 22:53 For he served -Baal, and worshipped him, and provoked to anger the LORD God of -Israel, according to all that his father had done. - - - - -The Second Book of the Kings - -Commonly Called: - -The Fourth Book of the Kings - - -1:1 Then Moab rebelled against Israel after the death of Ahab. - -1:2 And Ahaziah fell down through a lattice in his upper chamber that -was in Samaria, and was sick: and he sent messengers, and said unto -them, Go, enquire of Baalzebub the god of Ekron whether I shall -recover of this disease. - -1:3 But the angel of the LORD said to Elijah the Tishbite, Arise, go -up to meet the messengers of the king of Samaria, and say unto them, -Is it not because there is not a God in Israel, that ye go to enquire -of Baalzebub the god of Ekron? 1:4 Now therefore thus saith the LORD, -Thou shalt not come down from that bed on which thou art gone up, but -shalt surely die. And Elijah departed. - -1:5 And when the messengers turned back unto him, he said unto them, -Why are ye now turned back? 1:6 And they said unto him, There came a -man up to meet us, and said unto us, Go, turn again unto the king that -sent you, and say unto him, Thus saith the LORD, Is it not because -there is not a God in Israel, that thou sendest to enquire of -Baalzebub the god of Ekron? therefore thou shalt not come down from -that bed on which thou art gone up, but shalt surely die. - -1:7 And he said unto them, What manner of man was he which came up to -meet you, and told you these words? 1:8 And they answered him, He was -an hairy man, and girt with a girdle of leather about his loins. And -he said, It is Elijah the Tishbite. - -1:9 Then the king sent unto him a captain of fifty with his fifty. And -he went up to him: and, behold, he sat on the top of an hill. And he -spake unto him, Thou man of God, the king hath said, Come down. - -1:10 And Elijah answered and said to the captain of fifty, If I be a -man of God, then let fire come down from heaven, and consume thee and -thy fifty. - -And there came down fire from heaven, and consumed him and his fifty. - -1:11 Again also he sent unto him another captain of fifty with his -fifty. - -And he answered and said unto him, O man of God, thus hath the king -said, Come down quickly. - -1:12 And Elijah answered and said unto them, If I be a man of God, let -fire come down from heaven, and consume thee and thy fifty. And the -fire of God came down from heaven, and consumed him and his fifty. - -1:13 And he sent again a captain of the third fifty with his fifty. -And the third captain of fifty went up, and came and fell on his knees -before Elijah, and besought him, and said unto him, O man of God, I -pray thee, let my life, and the life of these fifty thy servants, be -precious in thy sight. - -1:14 Behold, there came fire down from heaven, and burnt up the two -captains of the former fifties with their fifties: therefore let my -life now be precious in thy sight. - -1:15 And the angel of the LORD said unto Elijah, Go down with him: be -not afraid of him. And he arose, and went down with him unto the king. - -1:16 And he said unto him, Thus saith the LORD, Forasmuch as thou hast -sent messengers to enquire of Baalzebub the god of Ekron, is it not -because there is no God in Israel to enquire of his word? therefore -thou shalt not come down off that bed on which thou art gone up, but -shalt surely die. - -1:17 So he died according to the word of the LORD which Elijah had -spoken. - -And Jehoram reigned in his stead in the second year of Jehoram the son -of Jehoshaphat king of Judah; because he had no son. - -1:18 Now the rest of the acts of Ahaziah which he did, are they not -written in the book of the chronicles of the kings of Israel? 2:1 And -it came to pass, when the LORD would take up Elijah into heaven by a -whirlwind, that Elijah went with Elisha from Gilgal. - -2:2 And Elijah said unto Elisha, Tarry here, I pray thee; for the LORD -hath sent me to Bethel. And Elisha said unto him, As the LORD liveth, -and as thy soul liveth, I will not leave thee. So they went down to -Bethel. - -2:3 And the sons of the prophets that were at Bethel came forth to -Elisha, and said unto him, Knowest thou that the LORD will take away -thy master from thy head to day? And he said, Yea, I know it; hold ye -your peace. - -2:4 And Elijah said unto him, Elisha, tarry here, I pray thee; for the -LORD hath sent me to Jericho. And he said, As the LORD liveth, and as -thy soul liveth, I will not leave thee. So they came to Jericho. - -2:5 And the sons of the prophets that were at Jericho came to Elisha, -and said unto him, Knowest thou that the LORD will take away thy -master from thy head to day? And he answered, Yea, I know it; hold ye -your peace. - -2:6 And Elijah said unto him, Tarry, I pray thee, here; for the LORD -hath sent me to Jordan. And he said, As the LORD liveth, and as thy -soul liveth, I will not leave thee. And they two went on. - -2:7 And fifty men of the sons of the prophets went, and stood to view -afar off: and they two stood by Jordan. - -2:8 And Elijah took his mantle, and wrapped it together, and smote the -waters, and they were divided hither and thither, so that they two -went over on dry ground. - -2:9 And it came to pass, when they were gone over, that Elijah said -unto Elisha, Ask what I shall do for thee, before I be taken away from -thee. And Elisha said, I pray thee, let a double portion of thy spirit -be upon me. - -2:10 And he said, Thou hast asked a hard thing: nevertheless, if thou -see me when I am taken from thee, it shall be so unto thee; but if -not, it shall not be so. - -2:11 And it came to pass, as they still went on, and talked, that, -behold, there appeared a chariot of fire, and horses of fire, and -parted them both asunder; and Elijah went up by a whirlwind into -heaven. - -2:12 And Elisha saw it, and he cried, My father, my father, the -chariot of Israel, and the horsemen thereof. And he saw him no more: -and he took hold of his own clothes, and rent them in two pieces. - -2:13 He took up also the mantle of Elijah that fell from him, and went -back, and stood by the bank of Jordan; 2:14 And he took the mantle of -Elijah that fell from him, and smote the waters, and said, Where is -the LORD God of Elijah? and when he also had smitten the waters, they -parted hither and thither: and Elisha went over. - -2:15 And when the sons of the prophets which were to view at Jericho -saw him, they said, The spirit of Elijah doth rest on Elisha. And they -came to meet him, and bowed themselves to the ground before him. - -2:16 And they said unto him, Behold now, there be with thy servants -fifty strong men; let them go, we pray thee, and seek thy master: lest -peradventure the Spirit of the LORD hath taken him up, and cast him -upon some mountain, or into some valley. And he said, Ye shall not -send. - -2:17 And when they urged him till he was ashamed, he said, Send. They -sent therefore fifty men; and they sought three days, but found him -not. - -2:18 And when they came again to him, (for he tarried at Jericho,) he -said unto them, Did I not say unto you, Go not? 2:19 And the men of -the city said unto Elisha, Behold, I pray thee, the situation of this -city is pleasant, as my lord seeth: but the water is naught, and the -ground barren. - -2:20 And he said, Bring me a new cruse, and put salt therein. And they -brought it to him. - -2:21 And he went forth unto the spring of the waters, and cast the -salt in there, and said, Thus saith the LORD, I have healed these -waters; there shall not be from thence any more death or barren land. - -2:22 So the waters were healed unto this day, according to the saying -of Elisha which he spake. - -2:23 And he went up from thence unto Bethel: and as he was going up by -the way, there came forth little children out of the city, and mocked -him, and said unto him, Go up, thou bald head; go up, thou bald head. - -2:24 And he turned back, and looked on them, and cursed them in the -name of the LORD. And there came forth two she bears out of the wood, -and tare forty and two children of them. - -2:25 And he went from thence to mount Carmel, and from thence he -returned to Samaria. - -3:1 Now Jehoram the son of Ahab began to reign over Israel in Samaria -the eighteenth year of Jehoshaphat king of Judah, and reigned twelve -years. - -3:2 And he wrought evil in the sight of the LORD; but not like his -father, and like his mother: for he put away the image of Baal that -his father had made. - -3:3 Nevertheless he cleaved unto the sins of Jeroboam the son of -Nebat, which made Israel to sin; he departed not therefrom. - -3:4 And Mesha king of Moab was a sheepmaster, and rendered unto the -king of Israel an hundred thousand lambs, and an hundred thousand -rams, with the wool. - -3:5 But it came to pass, when Ahab was dead, that the king of Moab -rebelled against the king of Israel. - -3:6 And king Jehoram went out of Samaria the same time, and numbered -all Israel. - -3:7 And he went and sent to Jehoshaphat the king of Judah, saying, The -king of Moab hath rebelled against me: wilt thou go with me against -Moab to battle? And he said, I will go up: I am as thou art, my people -as thy people, and my horses as thy horses. - -3:8 And he said, Which way shall we go up? And he answered, The way -through the wilderness of Edom. - -3:9 So the king of Israel went, and the king of Judah, and the king of -Edom: and they fetched a compass of seven days' journey: and there was -no water for the host, and for the cattle that followed them. - -3:10 And the king of Israel said, Alas! that the LORD hath called -these three kings together, to deliver them into the hand of Moab! -3:11 But Jehoshaphat said, Is there not here a prophet of the LORD, -that we may enquire of the LORD by him? And one of the king of -Israel's servants answered and said, Here is Elisha the son of -Shaphat, which poured water on the hands of Elijah. - -3:12 And Jehoshaphat said, The word of the LORD is with him. So the -king of Israel and Jehoshaphat and the king of Edom went down to him. - -3:13 And Elisha said unto the king of Israel, What have I to do with -thee? get thee to the prophets of thy father, and to the prophets of -thy mother. - -And the king of Israel said unto him, Nay: for the LORD hath called -these three kings together, to deliver them into the hand of Moab. - -3:14 And Elisha said, As the LORD of hosts liveth, before whom I -stand, surely, were it not that I regard the presence of Jehoshaphat -the king of Judah, I would not look toward thee, nor see thee. - -3:15 But now bring me a minstrel. And it came to pass, when the -minstrel played, that the hand of the LORD came upon him. - -3:16 And he said, Thus saith the LORD, Make this valley full of -ditches. - -3:17 For thus saith the LORD, Ye shall not see wind, neither shall ye -see rain; yet that valley shall be filled with water, that ye may -drink, both ye, and your cattle, and your beasts. - -3:18 And this is but a light thing in the sight of the LORD: he will -deliver the Moabites also into your hand. - -3:19 And ye shall smite every fenced city, and every choice city, and -shall fell every good tree, and stop all wells of water, and mar every -good piece of land with stones. - -3:20 And it came to pass in the morning, when the meat offering was -offered, that, behold, there came water by the way of Edom, and the -country was filled with water. - -3:21 And when all the Moabites heard that the kings were come up to -fight against them, they gathered all that were able to put on armour, -and upward, and stood in the border. - -3:22 And they rose up early in the morning, and the sun shone upon the -water, and the Moabites saw the water on the other side as red as -blood: 3:23 And they said, This is blood: the kings are surely slain, -and they have smitten one another: now therefore, Moab, to the spoil. - -3:24 And when they came to the camp of Israel, the Israelites rose up -and smote the Moabites, so that they fled before them: but they went -forward smiting the Moabites, even in their country. - -3:25 And they beat down the cities, and on every good piece of land -cast every man his stone, and filled it; and they stopped all the -wells of water, and felled all the good trees: only in Kirharaseth -left they the stones thereof; howbeit the slingers went about it, and -smote it. - -3:26 And when the king of Moab saw that the battle was too sore for -him, he took with him seven hundred men that drew swords, to break -through even unto the king of Edom: but they could not. - -3:27 Then he took his eldest son that should have reigned in his -stead, and offered him for a burnt offering upon the wall. And there -was great indignation against Israel: and they departed from him, and -returned to their own land. - -4:1 Now there cried a certain woman of the wives of the sons of the -prophets unto Elisha, saying, Thy servant my husband is dead; and thou -knowest that thy servant did fear the LORD: and the creditor is come -to take unto him my two sons to be bondmen. - -4:2 And Elisha said unto her, What shall I do for thee? tell me, what -hast thou in the house? And she said, Thine handmaid hath not any -thing in the house, save a pot of oil. - -4:3 Then he said, Go, borrow thee vessels abroad of all thy -neighbours, even empty vessels; borrow not a few. - -4:4 And when thou art come in, thou shalt shut the door upon thee and -upon thy sons, and shalt pour out into all those vessels, and thou -shalt set aside that which is full. - -4:5 So she went from him, and shut the door upon her and upon her -sons, who brought the vessels to her; and she poured out. - -4:6 And it came to pass, when the vessels were full, that she said -unto her son, Bring me yet a vessel. And he said unto her, There is -not a vessel more. And the oil stayed. - -4:7 Then she came and told the man of God. And he said, Go, sell the -oil, and pay thy debt, and live thou and thy children of the rest. - -4:8 And it fell on a day, that Elisha passed to Shunem, where was a -great woman; and she constrained him to eat bread. And so it was, that -as oft as he passed by, he turned in thither to eat bread. - -4:9 And she said unto her husband, Behold now, I perceive that this is -an holy man of God, which passeth by us continually. - -4:10 Let us make a little chamber, I pray thee, on the wall; and let -us set for him there a bed, and a table, and a stool, and a -candlestick: and it shall be, when he cometh to us, that he shall turn -in thither. - -4:11 And it fell on a day, that he came thither, and he turned into -the chamber, and lay there. - -4:12 And he said to Gehazi his servant, Call this Shunammite. And when -he had called her, she stood before him. - -4:13 And he said unto him, Say now unto her, Behold, thou hast been -careful for us with all this care; what is to be done for thee? -wouldest thou be spoken for to the king, or to the captain of the -host? And she answered, I dwell among mine own people. - -4:14 And he said, What then is to be done for her? And Gehazi -answered, Verily she hath no child, and her husband is old. - -4:15 And he said, Call her. And when he had called her, she stood in -the door. - -4:16 And he said, About this season, according to the time of life, -thou shalt embrace a son. And she said, Nay, my lord, thou man of God, -do not lie unto thine handmaid. - -4:17 And the woman conceived, and bare a son at that season that -Elisha had said unto her, according to the time of life. - -4:18 And when the child was grown, it fell on a day, that he went out -to his father to the reapers. - -4:19 And he said unto his father, My head, my head. And he said to a -lad, Carry him to his mother. - -4:20 And when he had taken him, and brought him to his mother, he sat -on her knees till noon, and then died. - -4:21 And she went up, and laid him on the bed of the man of God, and -shut the door upon him, and went out. - -4:22 And she called unto her husband, and said, Send me, I pray thee, -one of the young men, and one of the asses, that I may run to the man -of God, and come again. - -4:23 And he said, Wherefore wilt thou go to him to day? it is neither -new moon, nor sabbath. And she said, It shall be well. - -4:24 Then she saddled an ass, and said to her servant, Drive, and go -forward; slack not thy riding for me, except I bid thee. - -4:25 So she went and came unto the man of God to mount Carmel. And it -came to pass, when the man of God saw her afar off, that he said to -Gehazi his servant, Behold, yonder is that Shunammite: 4:26 Run now, I -pray thee, to meet her, and say unto her, Is it well with thee? is it -well with thy husband? is it well with the child? And she answered, It -is well: 4:27 And when she came to the man of God to the hill, she -caught him by the feet: but Gehazi came near to thrust her away. And -the man of God said, Let her alone; for her soul is vexed within her: -and the LORD hath hid it from me, and hath not told me. - -4:28 Then she said, Did I desire a son of my lord? did I not say, Do -not deceive me? 4:29 Then he said to Gehazi, Gird up thy loins, and -take my staff in thine hand, and go thy way: if thou meet any man, -salute him not; and if any salute thee, answer him not again: and lay -my staff upon the face of the child. - -4:30 And the mother of the child said, As the LORD liveth, and as thy -soul liveth, I will not leave thee. And he arose, and followed her. - -4:31 And Gehazi passed on before them, and laid the staff upon the -face of the child; but there was neither voice, nor hearing. Wherefore -he went again to meet him, and told him, saying, The child is not -awaked. - -4:32 And when Elisha was come into the house, behold, the child was -dead, and laid upon his bed. - -4:33 He went in therefore, and shut the door upon them twain, and -prayed unto the LORD. - -4:34 And he went up, and lay upon the child, and put his mouth upon -his mouth, and his eyes upon his eyes, and his hands upon his hands: -and stretched himself upon the child; and the flesh of the child waxed -warm. - -4:35 Then he returned, and walked in the house to and fro; and went -up, and stretched himself upon him: and the child sneezed seven times, -and the child opened his eyes. - -4:36 And he called Gehazi, and said, Call this Shunammite. So he -called her. And when she was come in unto him, he said, Take up thy -son. - -4:37 Then she went in, and fell at his feet, and bowed herself to the -ground, and took up her son, and went out. - -4:38 And Elisha came again to Gilgal: and there was a dearth in the -land; and the sons of the prophets were sitting before him: and he -said unto his servant, Set on the great pot, and seethe pottage for -the sons of the prophets. - -4:39 And one went out into the field to gather herbs, and found a wild -vine, and gathered thereof wild gourds his lap full, and came and -shred them into the pot of pottage: for they knew them not. - -4:40 So they poured out for the men to eat. And it came to pass, as -they were eating of the pottage, that they cried out, and said, O thou -man of God, there is death in the pot. And they could not eat thereof. - -4:41 But he said, Then bring meal. And he cast it into the pot; and he -said, Pour out for the people, that they may eat. And there was no -harm in the pot. - -4:42 And there came a man from Baalshalisha, and brought the man of -God bread of the firstfruits, twenty loaves of barley, and full ears -of corn in the husk thereof. And he said, Give unto the people, that -they may eat. - -4:43 And his servitor said, What, should I set this before an hundred -men? He said again, Give the people, that they may eat: for thus -saith the LORD, They shall eat, and shall leave thereof. - -4:44 So he set it before them, and they did eat, and left thereof, -according to the word of the LORD. - -5:1 Now Naaman, captain of the host of the king of Syria, was a great -man with his master, and honourable, because by him the LORD had given -deliverance unto Syria: he was also a mighty man in valour, but he was -a leper. - -5:2 And the Syrians had gone out by companies, and had brought away -captive out of the land of Israel a little maid; and she waited on -Naaman's wife. - -5:3 And she said unto her mistress, Would God my lord were with the -prophet that is in Samaria! for he would recover him of his leprosy. - -5:4 And one went in, and told his lord, saying, Thus and thus said the -maid that is of the land of Israel. - -5:5 And the king of Syria said, Go to, go, and I will send a letter -unto the king of Israel. And he departed, and took with him ten -talents of silver, and six thousand pieces of gold, and ten changes of -raiment. - -5:6 And he brought the letter to the king of Israel, saying, Now when -this letter is come unto thee, behold, I have therewith sent Naaman my -servant to thee, that thou mayest recover him of his leprosy. - -5:7 And it came to pass, when the king of Israel had read the letter, -that he rent his clothes, and said, Am I God, to kill and to make -alive, that this man doth send unto me to recover a man of his -leprosy? wherefore consider, I pray you, and see how he seeketh a -quarrel against me. - -5:8 And it was so, when Elisha the man of God had heard that the king -of Israel had rent his clothes, that he sent to the king, saying, -Wherefore hast thou rent thy clothes? let him come now to me, and he -shall know that there is a prophet in Israel. - -5:9 So Naaman came with his horses and with his chariot, and stood at -the door of the house of Elisha. - -5:10 And Elisha sent a messenger unto him, saying, Go and wash in -Jordan seven times, and thy flesh shall come again to thee, and thou -shalt be clean. - -5:11 But Naaman was wroth, and went away, and said, Behold, I thought, -He will surely come out to me, and stand, and call on the name of the -LORD his God, and strike his hand over the place, and recover the -leper. - -5:12 Are not Abana and Pharpar, rivers of Damascus, better than all -the waters of Israel? may I not wash in them, and be clean? So he -turned and went away in a rage. - -5:13 And his servants came near, and spake unto him, and said, My -father, if the prophet had bid thee do some great thing, wouldest thou -not have done it? how much rather then, when he saith to thee, Wash, -and be clean? 5:14 Then went he down, and dipped himself seven times -in Jordan, according to the saying of the man of God: and his flesh -came again like unto the flesh of a little child, and he was clean. - -5:15 And he returned to the man of God, he and all his company, and -came, and stood before him: and he said, Behold, now I know that there -is no God in all the earth, but in Israel: now therefore, I pray thee, -take a blessing of thy servant. - -5:16 But he said, As the LORD liveth, before whom I stand, I will -receive none. And he urged him to take it; but he refused. - -5:17 And Naaman said, Shall there not then, I pray thee, be given to -thy servant two mules' burden of earth? for thy servant will -henceforth offer neither burnt offering nor sacrifice unto other gods, -but unto the LORD. - -5:18 In this thing the LORD pardon thy servant, that when my master -goeth into the house of Rimmon to worship there, and he leaneth on my -hand, and I bow myself in the house of Rimmon: when I bow down myself -in the house of Rimmon, the LORD pardon thy servant in this thing. - -5:19 And he said unto him, Go in peace. So he departed from him a -little way. - -5:20 But Gehazi, the servant of Elisha the man of God, said, Behold, -my master hath spared Naaman this Syrian, in not receiving at his -hands that which he brought: but, as the LORD liveth, I will run after -him, and take somewhat of him. - -5:21 So Gehazi followed after Naaman. And when Naaman saw him running -after him, he lighted down from the chariot to meet him, and said, Is -all well? 5:22 And he said, All is well. My master hath sent me, -saying, Behold, even now there be come to me from mount Ephraim two -young men of the sons of the prophets: give them, I pray thee, a -talent of silver, and two changes of garments. - -5:23 And Naaman said, Be content, take two talents. And he urged him, -and bound two talents of silver in two bags, with two changes of -garments, and laid them upon two of his servants; and they bare them -before him. - -5:24 And when he came to the tower, he took them from their hand, and -bestowed them in the house: and he let the men go, and they departed. - -5:25 But he went in, and stood before his master. And Elisha said unto -him, Whence comest thou, Gehazi? And he said, Thy servant went no -whither. - -5:26 And he said unto him, Went not mine heart with thee, when the man -turned again from his chariot to meet thee? Is it a time to receive -money, and to receive garments, and oliveyards, and vineyards, and -sheep, and oxen, and menservants, and maidservants? 5:27 The leprosy -therefore of Naaman shall cleave unto thee, and unto thy seed for -ever. And he went out from his presence a leper as white as snow. - -6:1 And the sons of the prophets said unto Elisha, Behold now, the -place where we dwell with thee is too strait for us. - -6:2 Let us go, we pray thee, unto Jordan, and take thence every man a -beam, and let us make us a place there, where we may dwell. And he -answered, Go ye. - -6:3 And one said, Be content, I pray thee, and go with thy servants. -And he answered, I will go. - -6:4 So he went with them. And when they came to Jordan, they cut down -wood. - -6:5 But as one was felling a beam, the axe head fell into the water: -and he cried, and said, Alas, master! for it was borrowed. - -6:6 And the man of God said, Where fell it? And he shewed him the -place. - -And he cut down a stick, and cast it in thither; and the iron did -swim. - -6:7 Therefore said he, Take it up to thee. And he put out his hand, -and took it. - -6:8 Then the king of Syria warred against Israel, and took counsel -with his servants, saying, In such and such a place shall be my camp. - -6:9 And the man of God sent unto the king of Israel, saying, Beware -that thou pass not such a place; for thither the Syrians are come -down. - -6:10 And the king of Israel sent to the place which the man of God -told him and warned him of, and saved himself there, not once nor -twice. - -6:11 Therefore the heart of the king of Syria was sore troubled for -this thing; and he called his servants, and said unto them, Will ye -not shew me which of us is for the king of Israel? 6:12 And one of -his servants said, None, my lord, O king: but Elisha, the prophet that -is in Israel, telleth the king of Israel the words that thou speakest -in thy bedchamber. - -6:13 And he said, Go and spy where he is, that I may send and fetch -him. - -And it was told him, saying, Behold, he is in Dothan. - -6:14 Therefore sent he thither horses, and chariots, and a great host: -and they came by night, and compassed the city about. - -6:15 And when the servant of the man of God was risen early, and gone -forth, behold, an host compassed the city both with horses and -chariots. And his servant said unto him, Alas, my master! how shall we -do? 6:16 And he answered, Fear not: for they that be with us are more -than they that be with them. - -6:17 And Elisha prayed, and said, LORD, I pray thee, open his eyes, -that he may see. And the LORD opened the eyes of the young man; and he -saw: and, behold, the mountain was full of horses and chariots of fire -round about Elisha. - -6:18 And when they came down to him, Elisha prayed unto the LORD, and -said, Smite this people, I pray thee, with blindness. And he smote -them with blindness according to the word of Elisha. - -6:19 And Elisha said unto them, This is not the way, neither is this -the city: follow me, and I will bring you to the man whom ye seek. But -he led them to Samaria. - -6:20 And it came to pass, when they were come into Samaria, that -Elisha said, LORD, open the eyes of these men, that they may see. And -the LORD opened their eyes, and they saw; and, behold, they were in -the midst of Samaria. - -6:21 And the king of Israel said unto Elisha, when he saw them, My -father, shall I smite them? shall I smite them? 6:22 And he answered, -Thou shalt not smite them: wouldest thou smite those whom thou hast -taken captive with thy sword and with thy bow? set bread and water -before them, that they may eat and drink, and go to their master. - -6:23 And he prepared great provision for them: and when they had eaten -and drunk, he sent them away, and they went to their master. So the -bands of Syria came no more into the land of Israel. - -6:24 And it came to pass after this, that Benhadad king of Syria -gathered all his host, and went up, and besieged Samaria. - -6:25 And there was a great famine in Samaria: and, behold, they -besieged it, until an ass's head was sold for fourscore pieces of -silver, and the fourth part of a cab of dove's dung for five pieces of -silver. - -6:26 And as the king of Israel was passing by upon the wall, there -cried a woman unto him, saying, Help, my lord, O king. - -6:27 And he said, If the LORD do not help thee, whence shall I help -thee? out of the barnfloor, or out of the winepress? 6:28 And the -king said unto her, What aileth thee? And she answered, This woman -said unto me, Give thy son, that we may eat him to day, and we will -eat my son to morrow. - -6:29 So we boiled my son, and did eat him: and I said unto her on the -next day, Give thy son, that we may eat him: and she hath hid her son. - -6:30 And it came to pass, when the king heard the words of the woman, -that he rent his clothes; and he passed by upon the wall, and the -people looked, and, behold, he had sackcloth within upon his flesh. - -6:31 Then he said, God do so and more also to me, if the head of -Elisha the son of Shaphat shall stand on him this day. - -6:32 But Elisha sat in his house, and the elders sat with him; and the -king sent a man from before him: but ere the messenger came to him, he -said to the elders, See ye how this son of a murderer hath sent to -take away mine head? look, when the messenger cometh, shut the door, -and hold him fast at the door: is not the sound of his master's feet -behind him? 6:33 And while he yet talked with them, behold, the -messenger came down unto him: and he said, Behold, this evil is of the -LORD; what should I wait for the LORD any longer? 7:1 Then Elisha -said, Hear ye the word of the LORD; Thus saith the LORD, To morrow -about this time shall a measure of fine flour be sold for a shekel, -and two measures of barley for a shekel, in the gate of Samaria. - -7:2 Then a lord on whose hand the king leaned answered the man of God, -and said, Behold, if the LORD would make windows in heaven, might this -thing be? And he said, Behold, thou shalt see it with thine eyes, but -shalt not eat thereof. - -7:3 And there were four leprous men at the entering in of the gate: -and they said one to another, Why sit we here until we die? 7:4 If we -say, We will enter into the city, then the famine is in the city, and -we shall die there: and if we sit still here, we die also. Now -therefore come, and let us fall unto the host of the Syrians: if they -save us alive, we shall live; and if they kill us, we shall but die. - -7:5 And they rose up in the twilight, to go unto the camp of the -Syrians: and when they were come to the uttermost part of the camp of -Syria, behold, there was no man there. - -7:6 For the LORD had made the host of the Syrians to hear a noise of -chariots, and a noise of horses, even the noise of a great host: and -they said one to another, Lo, the king of Israel hath hired against us -the kings of the Hittites, and the kings of the Egyptians, to come -upon us. - -7:7 Wherefore they arose and fled in the twilight, and left their -tents, and their horses, and their asses, even the camp as it was, and -fled for their life. - -7:8 And when these lepers came to the uttermost part of the camp, they -went into one tent, and did eat and drink, and carried thence silver, -and gold, and raiment, and went and hid it; and came again, and -entered into another tent, and carried thence also, and went and hid -it. - -7:9 Then they said one to another, We do not well: this day is a day -of good tidings, and we hold our peace: if we tarry till the morning -light, some mischief will come upon us: now therefore come, that we -may go and tell the king's household. - -7:10 So they came and called unto the porter of the city: and they -told them, saying, We came to the camp of the Syrians, and, behold, -there was no man there, neither voice of man, but horses tied, and -asses tied, and the tents as they were. - -7:11 And he called the porters; and they told it to the king's house -within. - -7:12 And the king arose in the night, and said unto his servants, I -will now shew you what the Syrians have done to us. They know that we -be hungry; therefore are they gone out of the camp to hide themselves -in the field, saying, When they come out of the city, we shall catch -them alive, and get into the city. - -7:13 And one of his servants answered and said, Let some take, I pray -thee, five of the horses that remain, which are left in the city, -(behold, they are as all the multitude of Israel that are left in it: -behold, I say, they are even as all the multitude of the Israelites -that are consumed:) and let us send and see. - -7:14 They took therefore two chariot horses; and the king sent after -the host of the Syrians, saying, Go and see. - -7:15 And they went after them unto Jordan: and, lo, all the way was -full of garments and vessels, which the Syrians had cast away in their -haste. And the messengers returned, and told the king. - -7:16 And the people went out, and spoiled the tents of the Syrians. So -a measure of fine flour was sold for a shekel, and two measures of -barley for a shekel, according to the word of the LORD. - -7:17 And the king appointed the lord on whose hand he leaned to have -the charge of the gate: and the people trode upon him in the gate, and -he died, as the man of God had said, who spake when the king came down -to him. - -7:18 And it came to pass as the man of God had spoken to the king, -saying, Two measures of barley for a shekel, and a measure of fine -flour for a shekel, shall be to morrow about this time in the gate of -Samaria: 7:19 And that lord answered the man of God, and said, Now, -behold, if the LORD should make windows in heaven, might such a thing -be? And he said, Behold, thou shalt see it with thine eyes, but shalt -not eat thereof. - -7:20 And so it fell out unto him: for the people trode upon him in the -gate, and he died. - -8:1 Then spake Elisha unto the woman, whose son he had restored to -life, saying, Arise, and go thou and thine household, and sojourn -wheresoever thou canst sojourn: for the LORD hath called for a famine; -and it shall also come upon the land seven years. - -8:2 And the woman arose, and did after the saying of the man of God: -and she went with her household, and sojourned in the land of the -Philistines seven years. - -8:3 And it came to pass at the seven years' end, that the woman -returned out of the land of the Philistines: and she went forth to cry -unto the king for her house and for her land. - -8:4 And the king talked with Gehazi the servant of the man of God, -saying, Tell me, I pray thee, all the great things that Elisha hath -done. - -8:5 And it came to pass, as he was telling the king how he had -restored a dead body to life, that, behold, the woman, whose son he -had restored to life, cried to the king for her house and for her -land. And Gehazi said, My lord, O king, this is the woman, and this is -her son, whom Elisha restored to life. - -8:6 And when the king asked the woman, she told him. So the king -appointed unto her a certain officer, saying, Restore all that was -hers, and all the fruits of the field since the day that she left the -land, even until now. - -8:7 And Elisha came to Damascus; and Benhadad the king of Syria was -sick; and it was told him, saying, The man of God is come hither. - -8:8 And the king said unto Hazael, Take a present in thine hand, and -go, meet the man of God, and enquire of the LORD by him, saying, Shall -I recover of this disease? 8:9 So Hazael went to meet him, and took a -present with him, even of every good thing of Damascus, forty camels' -burden, and came and stood before him, and said, Thy son Benhadad king -of Syria hath sent me to thee, saying, Shall I recover of this -disease? 8:10 And Elisha said unto him, Go, say unto him, Thou mayest -certainly recover: howbeit the LORD hath shewed me that he shall -surely die. - -8:11 And he settled his countenance stedfastly, until he was ashamed: -and the man of God wept. - -8:12 And Hazael said, Why weepeth my lord? And he answered, Because I -know the evil that thou wilt do unto the children of Israel: their -strong holds wilt thou set on fire, and their young men wilt thou slay -with the sword, and wilt dash their children, and rip up their women -with child. - -8:13 And Hazael said, But what, is thy servant a dog, that he should -do this great thing? And Elisha answered, The LORD hath shewed me that -thou shalt be king over Syria. - -8:14 So he departed from Elisha, and came to his master; who said to -him, What said Elisha to thee? And he answered, He told me that thou -shouldest surely recover. - -8:15 And it came to pass on the morrow, that he took a thick cloth, -and dipped it in water, and spread it on his face, so that he died: -and Hazael reigned in his stead. - -8:16 And in the fifth year of Joram the son of Ahab king of Israel, -Jehoshaphat being then king of Judah, Jehoram the son of Je hoshaphat -king of Judah began to reign. - -8:17 Thirty and two years old was he when he began to reign; and he -reigned eight years in Jerusalem. - -8:18 And he walked in the way of the kings of Israel, as did the house -of Ahab: for the daughter of Ahab was his wife: and he did evil in the -sight of the LORD. - -8:19 Yet the LORD would not destroy Judah for David his servant's -sake, as he promised him to give him alway a light, and to his -children. - -8:20 In his days Edom revolted from under the hand of Judah, and made -a king over themselves. - -8:21 So Joram went over to Zair, and all the chariots with him: and he -rose by night, and smote the Edomites which compassed him about, and -the captains of the chariots: and the people fled into their tents. - -8:22 Yet Edom revolted from under the hand of Judah unto this day. -Then Libnah revolted at the same time. - -8:23 And the rest of the acts of Joram, and all that he did, are they -not written in the book of the chronicles of the kings of Judah? 8:24 -And Joram slept with his fathers, and was buried with his fathers in -the city of David: and Ahaziah his son reigned in his stead. - -8:25 In the twelfth year of Joram the son of Ahab king of Israel did -Ahaziah the son of Jehoram king of Judah begin to reign. - -8:26 Two and twenty years old was Ahaziah when he began to reign; and -he reigned one year in Jerusalem. And his mother's name was Athaliah, -the daughter of Omri king of Israel. - -8:27 And he walked in the way of the house of Ahab, and did evil in -the sight of the LORD, as did the house of Ahab: for he was the son in -law of the house of Ahab. - -8:28 And he went with Joram the son of Ahab to the war against Hazael -king of Syria in Ramothgilead; and the Syrians wounded Joram. - -8:29 And king Joram went back to be healed in Jezreel of the wounds -which the Syrians had given him at Ramah, when he fought against -Hazael king of Syria. And Ahaziah the son of Jehoram king of Judah -went down to see Joram the son of Ahab in Jezreel, because he was -sick. - -9:1 And Elisha the prophet called one of the children of the prophets, -and said unto him, Gird up thy loins, and take this box of oil in -thine hand, and go to Ramothgilead: 9:2 And when thou comest thither, -look out there Jehu the son of Jehoshaphat the son of Nimshi, and go -in, and make him arise up from among his brethren, and carry him to an -inner chamber; 9:3 Then take the box of oil, and pour it on his head, -and say, Thus saith the LORD, I have anointed thee king over Israel. -Then open the door, and flee, and tarry not. - -9:4 So the young man, even the young man the prophet, went to -Ramothgilead. - -9:5 And when he came, behold, the captains of the host were sitting; -and he said, I have an errand to thee, O captain. And Jehu said, Unto -which of all us? And he said, To thee, O captain. - -9:6 And he arose, and went into the house; and he poured the oil on -his head, and said unto him, Thus saith the LORD God of Israel, I have -anointed thee king over the people of the LORD, even over Israel. - -9:7 And thou shalt smite the house of Ahab thy master, that I may -avenge the blood of my servants the prophets, and the blood of all the -servants of the LORD, at the hand of Jezebel. - -9:8 For the whole house of Ahab shall perish: and I will cut off from -Ahab him that pisseth against the wall, and him that is shut up and -left in Israel: 9:9 And I will make the house of Ahab like the house -of Jeroboam the son of Nebat, and like the house of Baasha the son of -Ahijah: 9:10 And the dogs shall eat Jezebel in the portion of Jezreel, -and there shall be none to bury her. And he opened the door, and fled. - -9:11 Then Jehu came forth to the servants of his lord: and one said -unto him, Is all well? wherefore came this mad fellow to thee? And he -said unto them, Ye know the man, and his communication. - -9:12 And they said, It is false; tell us now. And he said, Thus and -thus spake he to me, saying, Thus saith the LORD, I have anointed thee -king over Israel. - -9:13 Then they hasted, and took every man his garment, and put it -under him on the top of the stairs, and blew with trumpets, saying, -Jehu is king. - -9:14 So Jehu the son of Jehoshaphat the son of Nimshi conspired -against Joram. (Now Joram had kept Ramothgilead, he and all Israel, -because of Hazael king of Syria. - -9:15 But king Joram was returned to be healed in Jezreel of the wounds -which the Syrians had given him, when he fought with Hazael king of -Syria.) And Jehu said, If it be your minds, then let none go forth -nor escape out of the city to go to tell it in Jezreel. - -9:16 So Jehu rode in a chariot, and went to Jezreel; for Joram lay -there. - -And Ahaziah king of Judah was come down to see Joram. - -9:17 And there stood a watchman on the tower in Jezreel, and he spied -the company of Jehu as he came, and said, I see a company. And Joram -said, Take an horseman, and send to meet them, and let him say, Is it -peace? 9:18 So there went one on horseback to meet him, and said, -Thus saith the king, Is it peace? And Jehu said, What hast thou to do -with peace? turn thee behind me. And the watchman told, saying, The -messenger came to them, but he cometh not again. - -9:19 Then he sent out a second on horseback, which came to them, and -said, Thus saith the king, Is it peace? And Jehu answered, What hast -thou to do with peace? turn thee behind me. - -9:20 And the watchman told, saying, He came even unto them, and cometh -not again: and the driving is like the driving of Jehu the son of -Nimshi; for he driveth furiously. - -9:21 And Joram said, Make ready. And his chariot was made ready. And -Joram king of Israel and Ahaziah king of Judah went out, each in his -chariot, and they went out against Jehu, and met him in the portion of -Naboth the Jezreelite. - -9:22 And it came to pass, when Joram saw Jehu, that he said, Is it -peace, Jehu? And he answered, What peace, so long as the whoredoms of -thy mother Jezebel and her witchcrafts are so many? 9:23 And Joram -turned his hands, and fled, and said to Ahaziah, There is treachery, O -Ahaziah. - -9:24 And Jehu drew a bow with his full strength, and smote Jehoram -between his arms, and the arrow went out at his heart, and he sunk -down in his chariot. - -9:25 Then said Jehu to Bidkar his captain, Take up, and cast him in -the portion of the field of Naboth the Jezreelite: for remember how -that, when I and thou rode together after Ahab his father, the LORD -laid this burden upon him; 9:26 Surely I have seen yesterday the blood -of Naboth, and the blood of his sons, saith the LORD; and I will -requite thee in this plat, saith the LORD. Now therefore take and cast -him into the plat of ground, according to the word of the LORD. - -9:27 But when Ahaziah the king of Judah saw this, he fled by the way -of the garden house. And Jehu followed after him, and said, Smite him -also in the chariot. And they did so at the going up to Gur, which is -by Ibleam. - -And he fled to Megiddo, and died there. - -9:28 And his servants carried him in a chariot to Jerusalem, and -buried him in his sepulchre with his fathers in the city of David. - -9:29 And in the eleventh year of Joram the son of Ahab began Ahaziah -to reign over Judah. - -9:30 And when Jehu was come to Jezreel, Jezebel heard of it; and she -painted her face, and tired her head, and looked out at a window. - -9:31 And as Jehu entered in at the gate, she said, Had Zimri peace, -who slew his master? 9:32 And he lifted up his face to the window, -and said, Who is on my side? who? And there looked out to him two or -three eunuchs. - -9:33 And he said, Throw her down. So they threw her down: and some of -her blood was sprinkled on the wall, and on the horses: and he trode -her under foot. - -9:34 And when he was come in, he did eat and drink, and said, Go, see -now this cursed woman, and bury her: for she is a king's daughter. - -9:35 And they went to bury her: but they found no more of her than the -skull, and the feet, and the palms of her hands. - -9:36 Wherefore they came again, and told him. And he said, This is the -word of the LORD, which he spake by his servant Elijah the Tishbite, -saying, In the portion of Jezreel shall dogs eat the flesh of Jezebel: -9:37 And the carcase of Jezebel shall be as dung upon the face of the -field in the portion of Jezreel; so that they shall not say, This is -Jezebel. - -10:1 And Ahab had seventy sons in Samaria. And Jehu wrote letters, and -sent to Samaria, unto the rulers of Jezreel, to the elders, and to -them that brought up Ahab's children, saying, 10:2 Now as soon as this -letter cometh to you, seeing your master's sons are with you, and -there are with you chariots and horses, a fenced city also, and -armour; 10:3 Look even out the best and meetest of your master's sons, -and set him on his father's throne, and fight for your master's house. - -10:4 But they were exceedingly afraid, and said, Behold, two kings -stood not before him: how then shall we stand? 10:5 And he that was -over the house, and he that was over the city, the elders also, and -the bringers up of the children, sent to Jehu, saying, We are thy -servants, and will do all that thou shalt bid us; we will not make any -king: do thou that which is good in thine eyes. - -10:6 Then he wrote a letter the second time to them, saying, If ye be -mine, and if ye will hearken unto my voice, take ye the heads of the -men your master's sons, and come to me to Jezreel by to morrow this -time. Now the king's sons, being seventy persons, were with the great -men of the city, which brought them up. - -10:7 And it came to pass, when the letter came to them, that they took -the king's sons, and slew seventy persons, and put their heads in -baskets, and sent him them to Jezreel. - -10:8 And there came a messenger, and told him, saying, They have -brought the heads of the king's sons. And he said, Lay ye them in two -heaps at the entering in of the gate until the morning. - -10:9 And it came to pass in the morning, that he went out, and stood, -and said to all the people, Ye be righteous: behold, I conspired -against my master, and slew him: but who slew all these? 10:10 Know -now that there shall fall unto the earth nothing of the word of the -LORD, which the LORD spake concerning the house of Ahab: for the LORD -hath done that which he spake by his servant Elijah. - -10:11 So Jehu slew all that remained of the house of Ahab in Jezreel, -and all his great men, and his kinsfolks, and his priests, until he -left him none remaining. - -10:12 And he arose and departed, and came to Samaria. And as he was at -the shearing house in the way, 10:13 Jehu met with the brethren of -Ahaziah king of Judah, and said, Who are ye? And they answered, We are -the brethren of Ahaziah; and we go down to salute the children of the -king and the children of the queen. - -10:14 And he said, Take them alive. And they took them alive, and slew -them at the pit of the shearing house, even two and forty men; neither -left he any of them. - -10:15 And when he was departed thence, he lighted on Jehonadab the son -of Rechab coming to meet him: and he saluted him, and said to him, Is -thine heart right, as my heart is with thy heart? And Jehonadab -answered, It is. If it be, give me thine hand. And he gave him his -hand; and he took him up to him into the chariot. - -10:16 And he said, Come with me, and see my zeal for the LORD. So they -made him ride in his chariot. - -10:17 And when he came to Samaria, he slew all that remained unto Ahab -in Samaria, till he had destroyed him, according to the saying of the -LORD, which he spake to Elijah. - -10:18 And Jehu gathered all the people together, and said unto them, -Ahab served Baal a little; but Jehu shall serve him much. - -10:19 Now therefore call unto me all the prophets of Baal, all his -servants, and all his priests; let none be wanting: for I have a great -sacrifice to do to Baal; whosoever shall be wanting, he shall not -live. But Jehu did it in subtilty, to the intent that he might destroy -the worshippers of Baal. - -10:20 And Jehu said, Proclaim a solemn assembly for Baal. And they -proclaimed it. - -10:21 And Jehu sent through all Israel: and all the worshippers of -Baal came, so that there was not a man left that came not. And they -came into the house of Baal; and the house of Baal was full from one -end to another. - -10:22 And he said unto him that was over the vestry, Bring forth -vestments for all the worshippers of Baal. And he brought them forth -vestments. - -10:23 And Jehu went, and Jehonadab the son of Rechab, into the house -of Baal, and said unto the worshippers of Baal, Search, and look that -there be here with you none of the servants of the LORD, but the -worshippers of Baal only. - -10:24 And when they went in to offer sacrifices and burnt offerings, -Jehu appointed fourscore men without, and said, If any of the men whom -I have brought into your hands escape, he that letteth him go, his -life shall be for the life of him. - -10:25 And it came to pass, as soon as he had made an end of offering -the burnt offering, that Jehu said to the guard and to the captains, -Go in, and slay them; let none come forth. And they smote them with -the edge of the sword; and the guard and the captains cast them out, -and went to the city of the house of Baal. - -10:26 And they brought forth the images out of the house of Baal, and -burned them. - -10:27 And they brake down the image of Baal, and brake down the house -of Baal, and made it a draught house unto this day. - -10:28 Thus Jehu destroyed Baal out of Israel. - -10:29 Howbeit from the sins of Jeroboam the son of Nebat, who made -Israel to sin, Jehu departed not from after them, to wit, the golden -calves that were in Bethel, and that were in Dan. - -10:30 And the LORD said unto Jehu, Because thou hast done well in -executing that which is right in mine eyes, and hast done unto the -house of Ahab according to all that was in mine heart, thy children of -the fourth generation shall sit on the throne of Israel. - -10:31 But Jehu took no heed to walk in the law of the LORD God of -Israel with all his heart: for he departed not from the sins of -Jeroboam, which made Israel to sin. - -10:32 In those days the LORD began to cut Israel short: and Hazael -smote them in all the coasts of Israel; 10:33 From Jordan eastward, -all the land of Gilead, the Gadites, and the Reubenites, and the -Manassites, from Aroer, which is by the river Arnon, even Gilead and -Bashan. - -10:34 Now the rest of the acts of Jehu, and all that he did, and all -his might, are they not written in the book of the chronicles of the -kings of Israel? 10:35 And Jehu slept with his fathers: and they -buried him in Samaria. And Jehoahaz his son reigned in his stead. - -10:36 And the time that Jehu reigned over Israel in Samaria was twenty -and eight years. - -11:1 And when Athaliah the mother of Ahaziah saw that her son was -dead, she arose and destroyed all the seed royal. - -11:2 But Jehosheba, the daughter of king Joram, sister of Ahaziah, -took Joash the son of Ahaziah, and stole him from among the king's -sons which were slain; and they hid him, even him and his nurse, in -the bedchamber from Athaliah, so that he was not slain. - -11:3 And he was with her hid in the house of the LORD six years. And -Athaliah did reign over the land. - -11:4 And the seventh year Jehoiada sent and fetched the rulers over -hundreds, with the captains and the guard, and brought them to him -into the house of the LORD, and made a covenant with them, and took an -oath of them in the house of the LORD, and shewed them the king's son. - -11:5 And he commanded them, saying, This is the thing that ye shall -do; A third part of you that enter in on the sabbath shall even be -keepers of the watch of the king's house; 11:6 And a third part shall -be at the gate of Sur; and a third part at the gate behind the guard: -so shall ye keep the watch of the house, that it be not broken down. - -11:7 And two parts of all you that go forth on the sabbath, even they -shall keep the watch of the house of the LORD about the king. - -11:8 And ye shall compass the king round about, every man with his -weapons in his hand: and he that cometh within the ranges, let him be -slain: and be ye with the king as he goeth out and as he cometh in. - -11:9 And the captains over the hundreds did according to all things -that Jehoiada the priest commanded: and they took every man his men -that were to come in on the sabbath, with them that should go out on -the sabbath, and came to Jehoiada the priest. - -11:10 And to the captains over hundreds did the priest give king -David's spears and shields, that were in the temple of the LORD. - -11:11 And the guard stood, every man with his weapons in his hand, -round about the king, from the right corner of the temple to the left -corner of the temple, along by the altar and the temple. - -11:12 And he brought forth the king's son, and put the crown upon him, -and gave him the testimony; and they made him king, and anointed him; -and they clapped their hands, and said, God save the king. - -11:13 And when Athaliah heard the noise of the guard and of the -people, she came to the people into the temple of the LORD. - -11:14 And when she looked, behold, the king stood by a pillar, as the -manner was, and the princes and the trumpeters by the king, and all -the people of the land rejoiced, and blew with trumpets: and Athaliah -rent her clothes, and cried, Treason, Treason. - -11:15 But Jehoiada the priest commanded the captains of the hundreds, -the officers of the host, and said unto them, Have her forth without -the ranges: and him that followeth her kill with the sword. For the -priest had said, Let her not be slain in the house of the LORD. - -11:16 And they laid hands on her; and she went by the way by the which -the horses came into the king's house: and there was she slain. - -11:17 And Jehoiada made a covenant between the LORD and the king and -the people, that they should be the LORD's people; between the king -also and the people. - -11:18 And all the people of the land went into the house of Baal, and -brake it down; his altars and his images brake they in pieces -thoroughly, and slew Mattan the priest of Baal before the altars. And -the priest appointed officers over the house of the LORD. - -11:19 And he took the rulers over hundreds, and the captains, and the -guard, and all the people of the land; and they brought down the king -from the house of the LORD, and came by the way of the gate of the -guard to the king's house. And he sat on the throne of the kings. - -11:20 And all the people of the land rejoiced, and the city was in -quiet: and they slew Athaliah with the sword beside the king's house. - -11:21 Seven years old was Jehoash when he began to reign. - -12:1 In the seventh year of Jehu Jehoash began to reign; and forty -years reigned he in Jerusalem. And his mother's name was Zibiah of -Beersheba. - -12:2 And Jehoash did that which was right in the sight of the LORD all -his days wherein Jehoiada the priest instructed him. - -12:3 But the high places were not taken away: the people still -sacrificed and burnt incense in the high places. - -12:4 And Jehoash said to the priests, All the money of the dedicated -things that is brought into the house of the LORD, even the money of -every one that passeth the account, the money that every man is set -at, and all the money that cometh into any man's heart to bring into -the house of the LORD, 12:5 Let the priests take it to them, every man -of his acquaintance: and let them repair the breaches of the house, -wheresoever any breach shall be found. - -12:6 But it was so, that in the three and twentieth year of king -Jehoash the priests had not repaired the breaches of the house. - -12:7 Then king Jehoash called for Jehoiada the priest, and the other -priests, and said unto them, Why repair ye not the breaches of the -house? now therefore receive no more money of your acquaintance, but -deliver it for the breaches of the house. - -12:8 And the priests consented to receive no more money of the people, -neither to repair the breaches of the house. - -12:9 But Jehoiada the priest took a chest, and bored a hole in the lid -of it, and set it beside the altar, on the right side as one cometh -into the house of the LORD: and the priests that kept the door put -therein all the money that was brought into the house of the LORD. - -12:10 And it was so, when they saw that there was much money in the -chest, that the king's scribe and the high priest came up, and they -put up in bags, and told the money that was found in the house of the -LORD. - -12:11 And they gave the money, being told, into the hands of them that -did the work, that had the oversight of the house of the LORD: and -they laid it out to the carpenters and builders, that wrought upon the -house of the LORD, 12:12 And to masons, and hewers of stone, and to -buy timber and hewed stone to repair the breaches of the house of the -LORD, and for all that was laid out for the house to repair it. - -12:13 Howbeit there were not made for the house of the LORD bowls of -silver, snuffers, basons, trumpets, any vessels of gold, or vessels of -silver, of the money that was brought into the house of the LORD: -12:14 But they gave that to the workmen, and repaired therewith the -house of the LORD. - -12:15 Moreover they reckoned not with the men, into whose hand they -delivered the money to be bestowed on workmen: for they dealt -faithfully. - -12:16 The trespass money and sin money was not brought into the house -of the LORD: it was the priests'. - -12:17 Then Hazael king of Syria went up, and fought against Gath, and -took it: and Hazael set his face to go up to Jerusalem. - -12:18 And Jehoash king of Judah took all the hallowed things that -Jehoshaphat, and Jehoram, and Ahaziah, his fathers, kings of Judah, -had dedicated, and his own hallowed things, and all the gold that was -found in the treasures of the house of the LORD, and in the king's -house, and sent it to Hazael king of Syria: and he went away from -Jerusalem. - -12:19 And the rest of the acts of Joash, and all that he did, are they -not written in the book of the chronicles of the kings of Judah? -12:20 And his servants arose, and made a conspiracy, and slew Joash in -the house of Millo, which goeth down to Silla. - -12:21 For Jozachar the son of Shimeath, and Jehozabad the son of -Shomer, his servants, smote him, and he died; and they buried him with -his fathers in the city of David: and Amaziah his son reigned in his -stead. - -13:1 In the three and twentieth year of Joash the son of Ahaziah king -of Judah Jehoahaz the son of Jehu began to reign over Israel in -Samaria, and reigned seventeen years. - -13:2 And he did that which was evil in the sight of the LORD, and -followed the sins of Jeroboam the son of Nebat, which made Israel to -sin; he departed not therefrom. - -13:3 And the anger of the LORD was kindled against Israel, and he -delivered them into the hand of Hazael king of Syria, and into the -hand of Benhadad the son of Hazael, all their days. - -13:4 And Jehoahaz besought the LORD, and the LORD hearkened unto him: -for he saw the oppression of Israel, because the king of Syria -oppressed them. - -13:5 (And the LORD gave Israel a saviour, so that they went out from -under the hand of the Syrians: and the children of Israel dwelt in -their tents, as beforetime. - -13:6 Nevertheless they departed not from the sins of the house of -Jeroboam, who made Israel sin, but walked therein: and there remained -the grove also in Samaria.) 13:7 Neither did he leave of the people -to Jehoahaz but fifty horsemen, and ten chariots, and ten thousand -footmen; for the king of Syria had destroyed them, and had made them -like the dust by threshing. - -13:8 Now the rest of the acts of Jehoahaz, and all that he did, and -his might, are they not written in the book of the chronicles of the -kings of Israel? 13:9 And Jehoahaz slept with his fathers; and they -buried him in Samaria: and Joash his son reigned in his stead. - -13:10 In the thirty and seventh year of Joash king of Judah began -Jehoash the son of Jehoahaz to reign over Israel in Samaria, and -reigned sixteen years. - -13:11 And he did that which was evil in the sight of the LORD; he -departed not from all the sins of Jeroboam the son of Nebat, who made -Israel sin: but he walked therein. - -13:12 And the rest of the acts of Joash, and all that he did, and his -might wherewith he fought against Amaziah king of Judah, are they not -written in the book of the chronicles of the kings of Israel? 13:13 -And Joash slept with his fathers; and Jeroboam sat upon his throne: -and Joash was buried in Samaria with the kings of Israel. - -13:14 Now Elisha was fallen sick of his sickness whereof he died. And -Joash the king of Israel came down unto him, and wept over his face, -and said, O my father, my father, the chariot of Israel, and the -horsemen thereof. - -13:15 And Elisha said unto him, Take bow and arrows. And he took unto -him bow and arrows. - -13:16 And he said to the king of Israel, Put thine hand upon the bow. -And he put his hand upon it: and Elisha put his hands upon the king's -hands. - -13:17 And he said, Open the window eastward. And he opened it. Then -Elisha said, Shoot. And he shot. And he said, The arrow of the LORD's -deliverance, and the arrow of deliverance from Syria: for thou shalt -smite the Syrians in Aphek, till thou have consumed them. - -13:18 And he said, Take the arrows. And he took them. And he said unto -the king of Israel, Smite upon the ground. And he smote thrice, and -stayed. - -13:19 And the man of God was wroth with him, and said, Thou shouldest -have smitten five or six times; then hadst thou smitten Syria till -thou hadst consumed it: whereas now thou shalt smite Syria but thrice. - -13:20 And Elisha died, and they buried him. And the bands of the -Moabites invaded the land at the coming in of the year. - -13:21 And it came to pass, as they were burying a man, that, behold, -they spied a band of men; and they cast the man into the sepulchre of -Elisha: and when the man was let down, and touched the bones of -Elisha, he revived, and stood up on his feet. - -13:22 But Hazael king of Syria oppressed Israel all the days of -Jehoahaz. - -13:23 And the LORD was gracious unto them, and had compassion on them, -and had respect unto them, because of his covenant with Abraham, -Isaac, and Jacob, and would not destroy them, neither cast he them -from his presence as yet. - -13:24 So Hazael king of Syria died; and Benhadad his son reigned in -his stead. - -13:25 And Jehoash the son of Jehoahaz took again out of the hand of -Benhadad the son of Hazael the cities, which he had taken out of the -hand of Jehoahaz his father by war. Three times did Joash beat him, -and recovered the cities of Israel. - -14:1 In the second year of Joash son of Jehoahaz king of Israel -reigned Amaziah the son of Joash king of Judah. - -14:2 He was twenty and five years old when he began to reign, and -reigned twenty and nine years in Jerusalem. And his mother's name was -Jehoaddan of Jerusalem. - -14:3 And he did that which was right in the sight of the LORD, yet not -like David his father: he did according to all things as Joash his -father did. - -14:4 Howbeit the high places were not taken away: as yet the people -did sacrifice and burnt incense on the high places. - -14:5 And it came to pass, as soon as the kingdom was confirmed in his -hand, that he slew his servants which had slain the king his father. - -14:6 But the children of the murderers he slew not: according unto -that which is written in the book of the law of Moses, wherein the -LORD commanded, saying, The fathers shall not be put to death for the -children, nor the children be put to death for the fathers; but every -man shall be put to death for his own sin. - -14:7 He slew of Edom in the valley of salt ten thousand, and took -Selah by war, and called the name of it Joktheel unto this day. - -14:8 Then Amaziah sent messengers to Jehoash, the son of Jehoahaz son -of Jehu, king of Israel, saying, Come, let us look one another in the -face. - -14:9 And Jehoash the king of Israel sent to Amaziah king of Judah, -saying, The thistle that was in Lebanon sent to the cedar that was in -Lebanon, saying, Give thy daughter to my son to wife: and there passed -by a wild beast that was in Lebanon, and trode down the thistle. - -14:10 Thou hast indeed smitten Edom, and thine heart hath lifted thee -up: glory of this, and tarry at home: for why shouldest thou meddle to -thy hurt, that thou shouldest fall, even thou, and Judah with thee? -14:11 But Amaziah would not hear. Therefore Jehoash king of Israel -went up; and he and Amaziah king of Judah looked one another in the -face at Bethshemesh, which belongeth to Judah. - -14:12 And Judah was put to the worse before Israel; and they fled -every man to their tents. - -14:13 And Jehoash king of Israel took Amaziah king of Judah, the son -of Jehoash the son of Ahaziah, at Bethshemesh, and came to Jerusalem, -and brake down the wall of Jerusalem from the gate of Ephraim unto the -corner gate, four hundred cubits. - -14:14 And he took all the gold and silver, and all the vessels that -were found in the house of the LORD, and in the treasures of the -king's house, and hostages, and returned to Samaria. - -14:15 Now the rest of the acts of Jehoash which he did, and his might, -and how he fought with Amaziah king of Judah, are they not written in -the book of the chronicles of the kings of Israel? 14:16 And Jehoash -slept with his fathers, and was buried in Samaria with the kings of -Israel; and Jeroboam his son reigned in his stead. - -14:17 And Amaziah the son of Joash king of Judah lived after the death -of Jehoash son of Jehoahaz king of Israel fifteen years. - -14:18 And the rest of the acts of Amaziah, are they not written in the -book of the chronicles of the kings of Judah? 14:19 Now they made a -conspiracy against him in Jerusalem: and he fled to Lachish; but they -sent after him to Lachish, and slew him there. - -14:20 And they brought him on horses: and he was buried at Jerusalem -with his fathers in the city of David. - -14:21 And all the people of Judah took Azariah, which was sixteen -years old, and made him king instead of his father Amaziah. - -14:22 He built Elath, and restored it to Judah, after that the king -slept with his fathers. - -14:23 In the fifteenth year of Amaziah the son of Joash king of Judah -Jeroboam the son of Joash king of Israel began to reign in Samaria, -and reigned forty and one years. - -14:24 And he did that which was evil in the sight of the LORD: he -departed not from all the sins of Jeroboam the son of Nebat, who made -Israel to sin. - -14:25 He restored the coast of Israel from the entering of Hamath unto -the sea of the plain, according to the word of the LORD God of Israel, -which he spake by the hand of his servant Jonah, the son of Amittai, -the prophet, which was of Gathhepher. - -14:26 For the LORD saw the affliction of Israel, that it was very -bitter: for there was not any shut up, nor any left, nor any helper -for Israel. - -14:27 And the LORD said not that he would blot out the name of Israel -from under heaven: but he saved them by the hand of Jeroboam the son -of Joash. - -14:28 Now the rest of the acts of Jeroboam, and all that he did, and -his might, how he warred, and how he recovered Damascus, and Hamath, -which belonged to Judah, for Israel, are they not written in the book -of the chronicles of the kings of Israel? 14:29 And Jeroboam slept -with his fathers, even with the kings of Israel; and Zachariah his son -reigned in his stead. - -15:1 In the twenty and seventh year of Jeroboam king of Israel began -Azariah son of Amaziah king of Judah to reign. - -15:2 Sixteen years old was he when he began to reign, and he reigned -two and fifty years in Jerusalem. And his mother's name was Jecholiah -of Jerusalem. - -15:3 And he did that which was right in the sight of the LORD, -according to all that his father Amaziah had done; 15:4 Save that the -high places were not removed: the people sacrificed and burnt incense -still on the high places. - -15:5 And the LORD smote the king, so that he was a leper unto the day -of his death, and dwelt in a several house. And Jotham the king's son -was over the house, judging the people of the land. - -15:6 And the rest of the acts of Azariah, and all that he did, are -they not written in the book of the chronicles of the kings of Judah? -15:7 So Azariah slept with his fathers; and they buried him with his -fathers in the city of David: and Jotham his son reigned in his stead. - -15:8 In the thirty and eighth year of Azariah king of Judah did -Zachariah the son of Jeroboam reign over Israel in Samaria six months. - -15:9 And he did that which was evil in the sight of the LORD, as his -fathers had done: he departed not from the sins of Jeroboam the son of -Nebat, who made Israel to sin. - -15:10 And Shallum the son of Jabesh conspired against him, and smote -him before the people, and slew him, and reigned in his stead. - -15:11 And the rest of the acts of Zachariah, behold, they are written -in the book of the chronicles of the kings of Israel. - -15:12 This was the word of the LORD which he spake unto Jehu, saying, -Thy sons shall sit on the throne of Israel unto the fourth generation. -And so it came to pass. - -15:13 Shallum the son of Jabesh began to reign in the nine and -thirtieth year of Uzziah king of Judah; and he reigned a full month in -Samaria. - -15:14 For Menahem the son of Gadi went up from Tirzah, and came to -Samaria, and smote Shallum the son of Jabesh in Samaria, and slew him, -and reigned in his stead. - -15:15 And the rest of the acts of Shallum, and his conspiracy which he -made, behold, they are written in the book of the chronicles of the -kings of Israel. - -15:16 Then Menahem smote Tiphsah, and all that were therein, and the -coasts thereof from Tirzah: because they opened not to him, therefore -he smote it; and all the women therein that were with child he ripped -up. - -15:17 In the nine and thirtieth year of Azariah king of Judah began -Menahem the son of Gadi to reign over Israel, and reigned ten years in -Samaria. - -15:18 And he did that which was evil in the sight of the LORD: he -departed not all his days from the sins of Jeroboam the son of Nebat, -who made Israel to sin. - -15:19 And Pul the king of Assyria came against the land: and Menahem -gave Pul a thousand talents of silver, that his hand might be with him -to confirm the kingdom in his hand. - -15:20 And Menahem exacted the money of Israel, even of all the mighty -men of wealth, of each man fifty shekels of silver, to give to the -king of Assyria. So the king of Assyria turned back, and stayed not -there in the land. - -15:21 And the rest of the acts of Menahem, and all that he did, are -they not written in the book of the chronicles of the kings of Israel? -15:22 And Menahem slept with his fathers; and Pekahiah his son reigned -in his stead. - -15:23 In the fiftieth year of Azariah king of Judah Pekahiah the son -of Menahem began to reign over Israel in Samaria, and reigned two -years. - -15:24 And he did that which was evil in the sight of the LORD: he -departed not from the sins of Jeroboam the son of Nebat, who made -Israel to sin. - -15:25 But Pekah the son of Remaliah, a captain of his, conspired -against him, and smote him in Samaria, in the palace of the king's -house, with Argob and Arieh, and with him fifty men of the Gileadites: -and he killed him, and reigned in his room. - -15:26 And the rest of the acts of Pekahiah, and all that he did, -behold, they are written in the book of the chronicles of the kings of -Israel. - -15:27 In the two and fiftieth year of Azariah king of Judah Pekah the -son of Remaliah began to reign over Israel in Samaria, and reigned -twenty years. - -15:28 And he did that which was evil in the sight of the LORD: he -departed not from the sins of Jeroboam the son of Nebat, who made -Israel to sin. - -15:29 In the days of Pekah king of Israel came Tiglathpileser king of -Assyria, and took Ijon, and Abelbethmaachah, and Janoah, and Kedesh, -and Hazor, and Gilead, and Galilee, all the land of Naphtali, and -carried them captive to Assyria. - -15:30 And Hoshea the son of Elah made a conspiracy against Pekah the -son of Remaliah, and smote him, and slew him, and reigned in his -stead, in the twentieth year of Jotham the son of Uzziah. - -15:31 And the rest of the acts of Pekah, and all that he did, behold, -they are written in the book of the chronicles of the kings of Israel. - -15:32 In the second year of Pekah the son of Remaliah king of Israel -began Jotham the son of Uzziah king of Judah to reign. - -15:33 Five and twenty years old was he when he began to reign, and he -reigned sixteen years in Jerusalem. And his mother's name was Jerusha, -the daughter of Zadok. - -15:34 And he did that which was right in the sight of the LORD: he did -according to all that his father Uzziah had done. - -15:35 Howbeit the high places were not removed: the people sacrificed -and burned incense still in the high places. He built the higher gate -of the house of the LORD. - -15:36 Now the rest of the acts of Jotham, and all that he did, are -they not written in the book of the chronicles of the kings of Judah? -15:37 In those days the LORD began to send against Judah Rezin the -king of Syria, and Pekah the son of Remaliah. - -15:38 And Jotham slept with his fathers, and was buried with his -fathers in the city of David his father: and Ahaz his son reigned in -his stead. - -16:1 In the seventeenth year of Pekah the son of Remaliah Ahaz the son -of Jotham king of Judah began to reign. - -16:2 Twenty years old was Ahaz when he began to reign, and reigned -sixteen years in Jerusalem, and did not that which was right in the -sight of the LORD his God, like David his father. - -16:3 But he walked in the way of the kings of Israel, yea, and made -his son to pass through the fire, according to the abominations of the -heathen, whom the LORD cast out from before the children of Israel. - -16:4 And he sacrificed and burnt incense in the high places, and on -the hills, and under every green tree. - -16:5 Then Rezin king of Syria and Pekah son of Remaliah king of Israel -came up to Jerusalem to war: and they besieged Ahaz, but could not -overcome him. - -16:6 At that time Rezin king of Syria recovered Elath to Syria, and -drave the Jews from Elath: and the Syrians came to Elath, and dwelt -there unto this day. - -16:7 So Ahaz sent messengers to Tiglathpileser king of Assyria, -saying, I am thy servant and thy son: come up, and save me out of the -hand of the king of Syria, and out of the hand of the king of Israel, -which rise up against me. - -16:8 And Ahaz took the silver and gold that was found in the house of -the LORD, and in the treasures of the king's house, and sent it for a -present to the king of Assyria. - -16:9 And the king of Assyria hearkened unto him: for the king of -Assyria went up against Damascus, and took it, and carried the people -of it captive to Kir, and slew Rezin. - -16:10 And king Ahaz went to Damascus to meet Tiglathpileser king of -Assyria, and saw an altar that was at Damascus: and king Ahaz sent to -Urijah the priest the fashion of the altar, and the pattern of it, -according to all the workmanship thereof. - -16:11 And Urijah the priest built an altar according to all that king -Ahaz had sent from Damascus: so Urijah the priest made it against king -Ahaz came from Damascus. - -16:12 And when the king was come from Damascus, the king saw the -altar: and the king approached to the altar, and offered thereon. - -16:13 And he burnt his burnt offering and his meat offering, and -poured his drink offering, and sprinkled the blood of his peace -offerings, upon the altar. - -16:14 And he brought also the brasen altar, which was before the LORD, -from the forefront of the house, from between the altar and the house -of the LORD, and put it on the north side of the altar. - -16:15 And king Ahaz commanded Urijah the priest, saying, Upon the -great altar burn the morning burnt offering, and the evening meat -offering, and the king's burnt sacrifice, and his meat offering, with -the burnt offering of all the people of the land, and their meat -offering, and their drink offerings; and sprinkle upon it all the -blood of the burnt offering, and all the blood of the sacrifice: and -the brasen altar shall be for me to enquire by. - -16:16 Thus did Urijah the priest, according to all that king Ahaz -commanded. - -16:17 And king Ahaz cut off the borders of the bases, and removed the -laver from off them; and took down the sea from off the brasen oxen -that were under it, and put it upon the pavement of stones. - -16:18 And the covert for the sabbath that they had built in the house, -and the king's entry without, turned he from the house of the LORD for -the king of Assyria. - -16:19 Now the rest of the acts of Ahaz which he did, are they not -written in the book of the chronicles of the kings of Judah? 16:20 -And Ahaz slept with his fathers, and was buried with his fathers in -the city of David: and Hezekiah his son reigned in his stead. - -17:1 In the twelfth year of Ahaz king of Judah began Hoshea the son of -Elah to reign in Samaria over Israel nine years. - -17:2 And he did that which was evil in the sight of the LORD, but not -as the kings of Israel that were before him. - -17:3 Against him came up Shalmaneser king of Assyria; and Hoshea -became his servant, and gave him presents. - -17:4 And the king of Assyria found conspiracy in Hoshea: for he had -sent messengers to So king of Egypt, and brought no present to the -king of Assyria, as he had done year by year: therefore the king of -Assyria shut him up, and bound him in prison. - -17:5 Then the king of Assyria came up throughout all the land, and -went up to Samaria, and besieged it three years. - -17:6 In the ninth year of Hoshea the king of Assyria took Samaria, and -carried Israel away into Assyria, and placed them in Halah and in -Habor by the river of Gozan, and in the cities of the Medes. - -17:7 For so it was, that the children of Israel had sinned against the -LORD their God, which had brought them up out of the land of Egypt, -from under the hand of Pharaoh king of Egypt, and had feared other -gods, 17:8 And walked in the statutes of the heathen, whom the LORD -cast out from before the children of Israel, and of the kings of -Israel, which they had made. - -17:9 And the children of Israel did secretly those things that were -not right against the LORD their God, and they built them high places -in all their cities, from the tower of the watchmen to the fenced -city. - -17:10 And they set them up images and groves in every high hill, and -under every green tree: 17:11 And there they burnt incense in all the -high places, as did the heathen whom the LORD carried away before -them; and wrought wicked things to provoke the LORD to anger: 17:12 -For they served idols, whereof the LORD had said unto them, Ye shall -not do this thing. - -17:13 Yet the LORD testified against Israel, and against Judah, by all -the prophets, and by all the seers, saying, Turn ye from your evil -ways, and keep my commandments and my statutes, according to all the -law which I commanded your fathers, and which I sent to you by my -servants the prophets. - -17:14 Notwithstanding they would not hear, but hardened their necks, -like to the neck of their fathers, that did not believe in the LORD -their God. - -17:15 And they rejected his statutes, and his covenant that he made -with their fathers, and his testimonies which he testified against -them; and they followed vanity, and became vain, and went after the -heathen that were round about them, concerning whom the LORD had -charged them, that they should not do like them. - -17:16 And they left all the commandments of the LORD their God, and -made them molten images, even two calves, and made a grove, and -worshipped all the host of heaven, and served Baal. - -17:17 And they caused their sons and their daughters to pass through -the fire, and used divination and enchantments, and sold themselves to -do evil in the sight of the LORD, to provoke him to anger. - -17:18 Therefore the LORD was very angry with Israel, and removed them -out of his sight: there was none left but the tribe of Judah only. - -17:19 Also Judah kept not the commandments of the LORD their God, but -walked in the statutes of Israel which they made. - -17:20 And the LORD rejected all the seed of Israel, and afflicted -them, and delivered them into the hand of spoilers, until he had cast -them out of his sight. - -17:21 For he rent Israel from the house of David; and they made -Jeroboam the son of Nebat king: and Jeroboam drave Israel from -following the LORD, and made them sin a great sin. - -17:22 For the children of Israel walked in all the sins of Jeroboam -which he did; they departed not from them; 17:23 Until the LORD -removed Israel out of his sight, as he had said by all his servants -the prophets. So was Israel carried away out of their own land to -Assyria unto this day. - -17:24 And the king of Assyria brought men from Babylon, and from -Cuthah, and from Ava, and from Hamath, and from Sepharvaim, and placed -them in the cities of Samaria instead of the children of Israel: and -they possessed Samaria, and dwelt in the cities thereof. - -17:25 And so it was at the beginning of their dwelling there, that -they feared not the LORD: therefore the LORD sent lions among them, -which slew some of them. - -17:26 Wherefore they spake to the king of Assyria, saying, The nations -which thou hast removed, and placed in the cities of Samaria, know not -the manner of the God of the land: therefore he hath sent lions among -them, and, behold, they slay them, because they know not the manner of -the God of the land. - -17:27 Then the king of Assyria commanded, saying, Carry thither one of -the priests whom ye brought from thence; and let them go and dwell -there, and let him teach them the manner of the God of the land. - -17:28 Then one of the priests whom they had carried away from Samaria -came and dwelt in Bethel, and taught them how they should fear the -LORD. - -17:29 Howbeit every nation made gods of their own, and put them in the -houses of the high places which the Samaritans had made, every nation -in their cities wherein they dwelt. - -17:30 And the men of Babylon made Succothbenoth, and the men of Cuth -made Nergal, and the men of Hamath made Ashima, 17:31 And the Avites -made Nibhaz and Tartak, and the Sepharvites burnt their children in -fire to Adrammelech and Anammelech, the gods of Sepharvaim. - -17:32 So they feared the LORD, and made unto themselves of the lowest -of them priests of the high places, which sacrificed for them in the -houses of the high places. - -17:33 They feared the LORD, and served their own gods, after the -manner of the nations whom they carried away from thence. - -17:34 Unto this day they do after the former manners: they fear not -the LORD, neither do they after their statutes, or after their -ordinances, or after the law and commandment which the LORD commanded -the children of Jacob, whom he named Israel; 17:35 With whom the LORD -had made a covenant, and charged them, saying, Ye shall not fear other -gods, nor bow yourselves to them, nor serve them, nor sacrifice to -them: 17:36 But the LORD, who brought you up out of the land of Egypt -with great power and a stretched out arm, him shall ye fear, and him -shall ye worship, and to him shall ye do sacrifice. - -17:37 And the statutes, and the ordinances, and the law, and the -commandment, which he wrote for you, ye shall observe to do for -evermore; and ye shall not fear other gods. - -17:38 And the covenant that I have made with you ye shall not forget; -neither shall ye fear other gods. - -17:39 But the LORD your God ye shall fear; and he shall deliver you -out of the hand of all your enemies. - -17:40 Howbeit they did not hearken, but they did after their former -manner. - -17:41 So these nations feared the LORD, and served their graven -images, both their children, and their children's children: as did -their fathers, so do they unto this day. - -18:1 Now it came to pass in the third year of Hoshea son of Elah king -of Israel, that Hezekiah the son of Ahaz king of Judah began to reign. - -18:2 Twenty and five years old was he when he began to reign; and he -reigned twenty and nine years in Jerusalem. His mother's name also was -Abi, the daughter of Zachariah. - -18:3 And he did that which was right in the sight of the LORD, -according to all that David his father did. - -18:4 He removed the high places, and brake the images, and cut down -the groves, and brake in pieces the brasen serpent that Moses had -made: for unto those days the children of Israel did burn incense to -it: and he called it Nehushtan. - -18:5 He trusted in the LORD God of Israel; so that after him was none -like him among all the kings of Judah, nor any that were before him. - -18:6 For he clave to the LORD, and departed not from following him, -but kept his commandments, which the LORD commanded Moses. - -18:7 And the LORD was with him; and he prospered whithersoever he went -forth: and he rebelled against the king of Assyria, and served him -not. - -18:8 He smote the Philistines, even unto Gaza, and the borders -thereof, from the tower of the watchmen to the fenced city. - -18:9 And it came to pass in the fourth year of king Hezekiah, which -was the seventh year of Hoshea son of Elah king of Israel, that -Shalmaneser king of Assyria came up against Samaria, and besieged it. - -18:10 And at the end of three years they took it: even in the sixth -year of Hezekiah, that is in the ninth year of Hoshea king of Israel, -Samaria was taken. - -18:11 And the king of Assyria did carry away Israel unto Assyria, and -put them in Halah and in Habor by the river of Gozan, and in the -cities of the Medes: 18:12 Because they obeyed not the voice of the -LORD their God, but transgressed his covenant, and all that Moses the -servant of the LORD commanded, and would not hear them, nor do them. - -18:13 Now in the fourteenth year of king Hezekiah did Sennacherib king -of Assyria come up against all the fenced cities of Judah, and took -them. - -18:14 And Hezekiah king of Judah sent to the king of Assyria to -Lachish, saying, I have offended; return from me: that which thou -puttest on me will I bear. And the king of Assyria appointed unto -Hezekiah king of Judah three hundred talents of silver and thirty -talents of gold. - -18:15 And Hezekiah gave him all the silver that was found in the house -of the LORD, and in the treasures of the king's house. - -18:16 At that time did Hezekiah cut off the gold from the doors of the -temple of the LORD, and from the pillars which Hezekiah king of Judah -had overlaid, and gave it to the king of Assyria. - -18:17 And the king of Assyria sent Tartan and Rabsaris and Rabshakeh -from Lachish to king Hezekiah with a great host against Jerusalem. And -they went up and came to Jerusalem. And when they were come up, they -came and stood by the conduit of the upper pool, which is in the -highway of the fuller's field. - -18:18 And when they had called to the king, there came out to them -Eliakim the son of Hilkiah, which was over the household, and Shebna -the scribe, and Joah the son of Asaph the recorder. - -18:19 And Rabshakeh said unto them, Speak ye now to Hezekiah, Thus -saith the great king, the king of Assyria, What confidence is this -wherein thou trustest? 18:20 Thou sayest, (but they are but vain -words,) I have counsel and strength for the war. Now on whom dost thou -trust, that thou rebellest against me? 18:21 Now, behold, thou -trustest upon the staff of this bruised reed, even upon Egypt, on -which if a man lean, it will go into his hand, and pierce it: so is -Pharaoh king of Egypt unto all that trust on him. - -18:22 But if ye say unto me, We trust in the LORD our God: is not that -he, whose high places and whose altars Hezekiah hath taken away, and -hath said to Judah and Jerusalem, Ye shall worship before this altar -in Jerusalem? 18:23 Now therefore, I pray thee, give pledges to my -lord the king of Assyria, and I will deliver thee two thousand horses, -if thou be able on thy part to set riders upon them. - -18:24 How then wilt thou turn away the face of one captain of the -least of my master's servants, and put thy trust on Egypt for chariots -and for horsemen? 18:25 Am I now come up without the LORD against -this place to destroy it? The LORD said to me, Go up against this -land, and destroy it. - -18:26 Then said Eliakim the son of Hilkiah, and Shebna, and Joah, unto -Rabshakeh, Speak, I pray thee, to thy servants in the Syrian language; -for we understand it: and talk not with us in the Jews' language in -the ears of the people that are on the wall. - -18:27 But Rabshakeh said unto them, Hath my master sent me to thy -master, and to thee, to speak these words? hath he not sent me to the -men which sit on the wall, that they may eat their own dung, and drink -their own piss with you? 18:28 Then Rabshakeh stood and cried with a -loud voice in the Jews' language, and spake, saying, Hear the word of -the great king, the king of Assyria: 18:29 Thus saith the king, Let -not Hezekiah deceive you: for he shall not be able to deliver you out -of his hand: 18:30 Neither let Hezekiah make you trust in the LORD, -saying, The LORD will surely deliver us, and this city shall not be -delivered into the hand of the king of Assyria. - -18:31 Hearken not to Hezekiah: for thus saith the king of Assyria, -Make an agreement with me by a present, and come out to me, and then -eat ye every man of his own vine, and every one of his fig tree, and -drink ye every one the waters of his cistern: 18:32 Until I come and -take you away to a land like your own land, a land of corn and wine, a -land of bread and vineyards, a land of oil olive and of honey, that ye -may live, and not die: and hearken not unto Hezekiah, when he -persuadeth you, saying, The LORD will deliver us. - -18:33 Hath any of the gods of the nations delivered at all his land -out of the hand of the king of Assyria? 18:34 Where are the gods of -Hamath, and of Arpad? where are the gods of Sepharvaim, Hena, and -Ivah? have they delivered Samaria out of mine hand? 18:35 Who are -they among all the gods of the countries, that have delivered their -country out of mine hand, that the LORD should deliver Jerusalem out -of mine hand? 18:36 But the people held their peace, and answered him -not a word: for the king's commandment was, saying, Answer him not. - -18:37 Then came Eliakim the son of Hilkiah, which was over the -household, and Shebna the scribe, and Joah the son of Asaph the -recorder, to Hezekiah with their clothes rent, and told him the words -of Rabshakeh. - -19:1 And it came to pass, when king Hezekiah heard it, that he rent -his clothes, and covered himself with sackcloth, and went into the -house of the LORD. - -19:2 And he sent Eliakim, which was over the household, and Shebna the -scribe, and the elders of the priests, covered with sackcloth, to -Isaiah the prophet the son of Amoz. - -19:3 And they said unto him, Thus saith Hezekiah, This day is a day of -trouble, and of rebuke, and blasphemy; for the children are come to -the birth, and there is not strength to bring forth. - -19:4 It may be the LORD thy God will hear all the words of Rabshakeh, -whom the king of Assyria his master hath sent to reproach the living -God; and will reprove the words which the LORD thy God hath heard: -wherefore lift up thy prayer for the remnant that are left. - -19:5 So the servants of king Hezekiah came to Isaiah. - -19:6 And Isaiah said unto them, Thus shall ye say to your master, Thus -saith the LORD, Be not afraid of the words which thou hast heard, with -which the servants of the king of Assyria have blasphemed me. - -19:7 Behold, I will send a blast upon him, and he shall hear a rumour, -and shall return to his own land; and I will cause him to fall by the -sword in his own land. - -19:8 So Rabshakeh returned, and found the king of Assyria warring -against Libnah: for he had heard that he was departed from Lachish. - -19:9 And when he heard say of Tirhakah king of Ethiopia, Behold, he is -come out to fight against thee: he sent messengers again unto -Hezekiah, saying, 19:10 Thus shall ye speak to Hezekiah king of Judah, -saying, Let not thy God in whom thou trustest deceive thee, saying, -Jerusalem shall not be delivered into the hand of the king of Assyria. - -19:11 Behold, thou hast heard what the kings of Assyria have done to -all lands, by destroying them utterly: and shalt thou be delivered? -19:12 Have the gods of the nations delivered them which my fathers -have destroyed; as Gozan, and Haran, and Rezeph, and the children of -Eden which were in Thelasar? 19:13 Where is the king of Hamath, and -the king of Arpad, and the king of the city of Sepharvaim, of Hena, -and Ivah? 19:14 And Hezekiah received the letter of the hand of the -messengers, and read it: and Hezekiah went up into the house of the -LORD, and spread it before the LORD. - -19:15 And Hezekiah prayed before the LORD, and said, O LORD God of -Israel, which dwellest between the cherubims, thou art the God, even -thou alone, of all the kingdoms of the earth; thou hast made heaven -and earth. - -19:16 LORD, bow down thine ear, and hear: open, LORD, thine eyes, and -see: and hear the words of Sennacherib, which hath sent him to -reproach the living God. - -19:17 Of a truth, LORD, the kings of Assyria have destroyed the -nations and their lands, 19:18 And have cast their gods into the fire: -for they were no gods, but the work of men's hands, wood and stone: -therefore they have destroyed them. - -19:19 Now therefore, O LORD our God, I beseech thee, save thou us out -of his hand, that all the kingdoms of the earth may know that thou art -the LORD God, even thou only. - -19:20 Then Isaiah the son of Amoz sent to Hezekiah, saying, Thus saith -the LORD God of Israel, That which thou hast prayed to me against -Sennacherib king of Assyria I have heard. - -19:21 This is the word that the LORD hath spoken concerning him; The -virgin the daughter of Zion hath despised thee, and laughed thee to -scorn; the daughter of Jerusalem hath shaken her head at thee. - -19:22 Whom hast thou reproached and blasphemed? and against whom hast -thou exalted thy voice, and lifted up thine eyes on high? even against -the Holy One of Israel. - -19:23 By thy messengers thou hast reproached the LORD, and hast said, -With the multitude of my chariots I am come up to the height of the -mountains, to the sides of Lebanon, and will cut down the tall cedar -trees thereof, and the choice fir trees thereof: and I will enter into -the lodgings of his borders, and into the forest of his Carmel. - -19:24 I have digged and drunk strange waters, and with the sole of my -feet have I dried up all the rivers of besieged places. - -19:25 Hast thou not heard long ago how I have done it, and of ancient -times that I have formed it? now have I brought it to pass, that thou -shouldest be to lay waste fenced cities into ruinous heaps. - -19:26 Therefore their inhabitants were of small power, they were -dismayed and confounded; they were as the grass of the field, and as -the green herb, as the grass on the house tops, and as corn blasted -before it be grown up. - -19:27 But I know thy abode, and thy going out, and thy coming in, and -thy rage against me. - -19:28 Because thy rage against me and thy tumult is come up into mine -ears, therefore I will put my hook in thy nose, and my bridle in thy -lips, and I will turn thee back by the way by which thou camest. - -19:29 And this shall be a sign unto thee, Ye shall eat this year such -things as grow of themselves, and in the second year that which -springeth of the same; and in the third year sow ye, and reap, and -plant vineyards, and eat the fruits thereof. - -19:30 And the remnant that is escaped of the house of Judah shall yet -again take root downward, and bear fruit upward. - -19:31 For out of Jerusalem shall go forth a remnant, and they that -escape out of mount Zion: the zeal of the LORD of hosts shall do this. - -19:32 Therefore thus saith the LORD concerning the king of Assyria, He -shall not come into this city, nor shoot an arrow there, nor come -before it with shield, nor cast a bank against it. - -19:33 By the way that he came, by the same shall he return, and shall -not come into this city, saith the LORD. - -19:34 For I will defend this city, to save it, for mine own sake, and -for my servant David's sake. - -19:35 And it came to pass that night, that the angel of the LORD went -out, and smote in the camp of the Assyrians an hundred fourscore and -five thousand: and when they arose early in the morning, behold, they -were all dead corpses. - -19:36 So Sennacherib king of Assyria departed, and went and returned, -and dwelt at Nineveh. - -19:37 And it came to pass, as he was worshipping in the house of -Nisroch his god, that Adrammelech and Sharezer his sons smote him with -the sword: and they escaped into the land of Armenia. And Esarhaddon -his son reigned in his stead. - -20:1 In those days was Hezekiah sick unto death. And the prophet -Isaiah the son of Amoz came to him, and said unto him, Thus saith the -LORD, Set thine house in order; for thou shalt die, and not live. - -20:2 Then he turned his face to the wall, and prayed unto the LORD, -saying, 20:3 I beseech thee, O LORD, remember now how I have walked -before thee in truth and with a perfect heart, and have done that -which is good in thy sight. And Hezekiah wept sore. - -20:4 And it came to pass, afore Isaiah was gone out into the middle -court, that the word of the LORD came to him, saying, 20:5 Turn again, -and tell Hezekiah the captain of my people, Thus saith the LORD, the -God of David thy father, I have heard thy prayer, I have seen thy -tears: behold, I will heal thee: on the third day thou shalt go up -unto the house of the LORD. - -20:6 And I will add unto thy days fifteen years; and I will deliver -thee and this city out of the hand of the king of Assyria; and I will -defend this city for mine own sake, and for my servant David's sake. - -20:7 And Isaiah said, Take a lump of figs. And they took and laid it -on the boil, and he recovered. - -20:8 And Hezekiah said unto Isaiah, What shall be the sign that the -LORD will heal me, and that I shall go up into the house of the LORD -the third day? 20:9 And Isaiah said, This sign shalt thou have of the -LORD, that the LORD will do the thing that he hath spoken: shall the -shadow go forward ten degrees, or go back ten degrees? 20:10 And -Hezekiah answered, It is a light thing for the shadow to go down ten -degrees: nay, but let the shadow return backward ten degrees. - -20:11 And Isaiah the prophet cried unto the LORD: and he brought the -shadow ten degrees backward, by which it had gone down in the dial of -Ahaz. - -20:12 At that time Berodachbaladan, the son of Baladan, king of -Babylon, sent letters and a present unto Hezekiah: for he had heard -that Hezekiah had been sick. - -20:13 And Hezekiah hearkened unto them, and shewed them all the house -of his precious things, the silver, and the gold, and the spices, and -the precious ointment, and all the house of his armour, and all that -was found in his treasures: there was nothing in his house, nor in all -his dominion, that Hezekiah shewed them not. - -20:14 Then came Isaiah the prophet unto king Hezekiah, and said unto -him, What said these men? and from whence came they unto thee? And -Hezekiah said, They are come from a far country, even from Babylon. - -20:15 And he said, What have they seen in thine house? And Hezekiah -answered, All the things that are in mine house have they seen: there -is nothing among my treasures that I have not shewed them. - -20:16 And Isaiah said unto Hezekiah, Hear the word of the LORD. - -20:17 Behold, the days come, that all that is in thine house, and that -which thy fathers have laid up in store unto this day, shall be -carried into Babylon: nothing shall be left, saith the LORD. - -20:18 And of thy sons that shall issue from thee, which thou shalt -beget, shall they take away; and they shall be eunuchs in the palace -of the king of Babylon. - -20:19 Then said Hezekiah unto Isaiah, Good is the word of the LORD -which thou hast spoken. And he said, Is it not good, if peace and -truth be in my days? 20:20 And the rest of the acts of Hezekiah, and -all his might, and how he made a pool, and a conduit, and brought -water into the city, are they not written in the book of the -chronicles of the kings of Judah? 20:21 And Hezekiah slept with his -fathers: and Manasseh his son reigned in his stead. - -21:1 Manasseh was twelve years old when he began to reign, and reigned -fifty and five years in Jerusalem. And his mother's name was -Hephzibah. - -21:2 And he did that which was evil in the sight of the LORD, after -the abominations of the heathen, whom the LORD cast out before the -children of Israel. - -21:3 For he built up again the high places which Hezekiah his father -had destroyed; and he reared up altars for Baal, and made a grove, as -did Ahab king of Israel; and worshipped all the host of heaven, and -served them. - -21:4 And he built altars in the house of the LORD, of which the LORD -said, In Jerusalem will I put my name. - -21:5 And he built altars for all the host of heaven in the two courts -of the house of the LORD. - -21:6 And he made his son pass through the fire, and observed times, -and used enchantments, and dealt with familiar spirits and wizards: he -wrought much wickedness in the sight of the LORD, to provoke him to -anger. - -21:7 And he set a graven image of the grove that he had made in the -house, of which the LORD said to David, and to Solomon his son, In -this house, and in Jerusalem, which I have chosen out of all tribes of -Israel, will I put my name for ever: 21:8 Neither will I make the feet -of Israel move any more out of the land which I gave their fathers; -only if they will observe to do according to all that I have commanded -them, and according to all the law that my servant Moses commanded -them. - -21:9 But they hearkened not: and Manasseh seduced them to do more evil -than did the nations whom the LORD destroyed before the children of -Israel. - -21:10 And the LORD spake by his servants the prophets, saying, 21:11 -Because Manasseh king of Judah hath done these abominations, and hath -done wickedly above all that the Amorites did, which were before him, -and hath made Judah also to sin with his idols: 21:12 Therefore thus -saith the LORD God of Israel, Behold, I am bringing such evil upon -Jerusalem and Judah, that whosoever heareth of it, both his ears shall -tingle. - -21:13 And I will stretch over Jerusalem the line of Samaria, and the -plummet of the house of Ahab: and I will wipe Jerusalem as a man -wipeth a dish, wiping it, and turning it upside down. - -21:14 And I will forsake the remnant of mine inheritance, and deliver -them into the hand of their enemies; and they shall become a prey and -a spoil to all their enemies; 21:15 Because they have done that which -was evil in my sight, and have provoked me to anger, since the day -their fathers came forth out of Egypt, even unto this day. - -21:16 Moreover Manasseh shed innocent blood very much, till he had -filled Jerusalem from one end to another; beside his sin wherewith he -made Judah to sin, in doing that which was evil in the sight of the -LORD. - -21:17 Now the rest of the acts of Manasseh, and all that he did, and -his sin that he sinned, are they not written in the book of the -chronicles of the kings of Judah? 21:18 And Manasseh slept with his -fathers, and was buried in the garden of his own house, in the garden -of Uzza: and Amon his son reigned in his stead. - -21:19 Amon was twenty and two years old when he began to reign, and he -reigned two years in Jerusalem. And his mother's name was -Meshullemeth, the daughter of Haruz of Jotbah. - -21:20 And he did that which was evil in the sight of the LORD, as his -father Manasseh did. - -21:21 And he walked in all the way that his father walked in, and -served the idols that his father served, and worshipped them: 21:22 -And he forsook the LORD God of his fathers, and walked not in the way -of the LORD. - -21:23 And the servants of Amon conspired against him, and slew the -king in his own house. - -21:24 And the people of the land slew all them that had conspired -against king Amon; and the people of the land made Josiah his son king -in his stead. - -21:25 Now the rest of the acts of Amon which he did, are they not -written in the book of the chronicles of the kings of Judah? 21:26 -And he was buried in his sepulchre in the garden of Uzza: and Josiah -his son reigned in his stead. - -22:1 Josiah was eight years old when he began to reign, and he reigned -thirty and one years in Jerusalem. And his mother's name was Jedidah, -the daughter of Adaiah of Boscath. - -22:2 And he did that which was right in the sight of the LORD, and -walked in all the way of David his father, and turned not aside to the -right hand or to the left. - -22:3 And it came to pass in the eighteenth year of king Josiah, that -the king sent Shaphan the son of Azaliah, the son of Meshullam, the -scribe, to the house of the LORD, saying, 22:4 Go up to Hilkiah the -high priest, that he may sum the silver which is brought into the -house of the LORD, which the keepers of the door have gathered of the -people: 22:5 And let them deliver it into the hand of the doers of the -work, that have the oversight of the house of the LORD: and let them -give it to the doers of the work which is in the house of the LORD, to -repair the breaches of the house, 22:6 Unto carpenters, and builders, -and masons, and to buy timber and hewn stone to repair the house. - -22:7 Howbeit there was no reckoning made with them of the money that -was delivered into their hand, because they dealt faithfully. - -22:8 And Hilkiah the high priest said unto Shaphan the scribe, I have -found the book of the law in the house of the LORD. And Hilkiah gave -the book to Shaphan, and he read it. - -22:9 And Shaphan the scribe came to the king, and brought the king -word again, and said, Thy servants have gathered the money that was -found in the house, and have delivered it into the hand of them that -do the work, that have the oversight of the house of the LORD. - -22:10 And Shaphan the scribe shewed the king, saying, Hilkiah the -priest hath delivered me a book. And Shaphan read it before the king. - -22:11 And it came to pass, when the king had heard the words of the -book of the law, that he rent his clothes. - -22:12 And the king commanded Hilkiah the priest, and Ahikam the son of -Shaphan, and Achbor the son of Michaiah, and Shaphan the scribe, and -Asahiah a servant of the king's, saying, 22:13 Go ye, enquire of the -LORD for me, and for the people, and for all Judah, concerning the -words of this book that is found: for great is the wrath of the LORD -that is kindled against us, because our fathers have not hearkened -unto the words of this book, to do according unto all that which is -written concerning us. - -22:14 So Hilkiah the priest, and Ahikam, and Achbor, and Shaphan, and -Asahiah, went unto Huldah the prophetess, the wife of Shallum the son -of Tikvah, the son of Harhas, keeper of the wardrobe; (now she dwelt -in Jerusalem in the college;) and they communed with her. - -22:15 And she said unto them, Thus saith the LORD God of Israel, Tell -the man that sent you to me, 22:16 Thus saith the LORD, Behold, I will -bring evil upon this place, and upon the inhabitants thereof, even all -the words of the book which the king of Judah hath read: 22:17 Because -they have forsaken me, and have burned incense unto other gods, that -they might provoke me to anger with all the works of their hands; -therefore my wrath shall be kindled against this place, and shall not -be quenched. - -22:18 But to the king of Judah which sent you to enquire of the LORD, -thus shall ye say to him, Thus saith the LORD God of Israel, As -touching the words which thou hast heard; 22:19 Because thine heart -was tender, and thou hast humbled thyself before the LORD, when thou -heardest what I spake against this place, and against the inhabitants -thereof, that they should become a desolation and a curse, and hast -rent thy clothes, and wept before me; I also have heard thee, saith -the LORD. - -22:20 Behold therefore, I will gather thee unto thy fathers, and thou -shalt be gathered into thy grave in peace; and thine eyes shall not -see all the evil which I will bring upon this place. And they brought -the king word again. - -23:1 And the king sent, and they gathered unto him all the elders of -Judah and of Jerusalem. - -23:2 And the king went up into the house of the LORD, and all the men -of Judah and all the inhabitants of Jerusalem with him, and the -priests, and the prophets, and all the people, both small and great: -and he read in their ears all the words of the book of the covenant -which was found in the house of the LORD. - -23:3 And the king stood by a pillar, and made a covenant before the -LORD, to walk after the LORD, and to keep his commandments and his -testimonies and his statutes with all their heart and all their soul, -to perform the words of this covenant that were written in this book. -And all the people stood to the covenant. - -23:4 And the king commanded Hilkiah the high priest, and the priests -of the second order, and the keepers of the door, to bring forth out -of the temple of the LORD all the vessels that were made for Baal, and -for the grove, and for all the host of heaven: and he burned them -without Jerusalem in the fields of Kidron, and carried the ashes of -them unto Bethel. - -23:5 And he put down the idolatrous priests, whom the kings of Judah -had ordained to burn incense in the high places in the cities of -Judah, and in the places round about Jerusalem; them also that burned -incense unto Baal, to the sun, and to the moon, and to the planets, -and to all the host of heaven. - -23:6 And he brought out the grove from the house of the LORD, without -Jerusalem, unto the brook Kidron, and burned it at the brook Kidron, -and stamped it small to powder, and cast the powder thereof upon the -graves of the children of the people. - -23:7 And he brake down the houses of the sodomites, that were by the -house of the LORD, where the women wove hangings for the grove. - -23:8 And he brought all the priests out of the cities of Judah, and -defiled the high places where the priests had burned incense, from -Geba to Beersheba, and brake down the high places of the gates that -were in the entering in of the gate of Joshua the governor of the -city, which were on a man's left hand at the gate of the city. - -23:9 Nevertheless the priests of the high places came not up to the -altar of the LORD in Jerusalem, but they did eat of the unleavened -bread among their brethren. - -23:10 And he defiled Topheth, which is in the valley of the children -of Hinnom, that no man might make his son or his daughter to pass -through the fire to Molech. - -23:11 And he took away the horses that the kings of Judah had given to -the sun, at the entering in of the house of the LORD, by the chamber -of Nathanmelech the chamberlain, which was in the suburbs, and burned -the chariots of the sun with fire. - -23:12 And the altars that were on the top of the upper chamber of -Ahaz, which the kings of Judah had made, and the altars which Manasseh -had made in the two courts of the house of the LORD, did the king beat -down, and brake them down from thence, and cast the dust of them into -the brook Kidron. - -23:13 And the high places that were before Jerusalem, which were on -the right hand of the mount of corruption, which Solomon the king of -Israel had builded for Ashtoreth the abomination of the Zidonians, and -for Chemosh the abomination of the Moabites, and for Milcom the -abomination of the children of Ammon, did the king defile. - -23:14 And he brake in pieces the images, and cut down the groves, and -filled their places with the bones of men. - -23:15 Moreover the altar that was at Bethel, and the high place which -Jeroboam the son of Nebat, who made Israel to sin, had made, both that -altar and the high place he brake down, and burned the high place, and -stamped it small to powder, and burned the grove. - -23:16 And as Josiah turned himself, he spied the sepulchres that were -there in the mount, and sent, and took the bones out of the -sepulchres, and burned them upon the altar, and polluted it, according -to the word of the LORD which the man of God proclaimed, who -proclaimed these words. - -23:17 Then he said, What title is that that I see? And the men of the -city told him, It is the sepulchre of the man of God, which came from -Judah, and proclaimed these things that thou hast done against the -altar of Bethel. - -23:18 And he said, Let him alone; let no man move his bones. So they -let his bones alone, with the bones of the prophet that came out of -Samaria. - -23:19 And all the houses also of the high places that were in the -cities of Samaria, which the kings of Israel had made to provoke the -Lord to anger, Josiah took away, and did to them according to all the -acts that he had done in Bethel. - -23:20 And he slew all the priests of the high places that were there -upon the altars, and burned men's bones upon them, and returned to -Jerusalem. - -23:21 And the king commanded all the people, saying, Keep the passover -unto the LORD your God, as it is written in the book of this covenant. - -23:22 Surely there was not holden such a passover from the days of the -judges that judged Israel, nor in all the days of the kings of Israel, -nor of the kings of Judah; 23:23 But in the eighteenth year of king -Josiah, wherein this passover was holden to the LORD in Jerusalem. - -23:24 Moreover the workers with familiar spirits, and the wizards, and -the images, and the idols, and all the abominations that were spied in -the land of Judah and in Jerusalem, did Josiah put away, that he might -perform the words of the law which were written in the book that -Hilkiah the priest found in the house of the LORD. - -23:25 And like unto him was there no king before him, that turned to -the LORD with all his heart, and with all his soul, and with all his -might, according to all the law of Moses; neither after him arose -there any like him. - -23:26 Notwithstanding the LORD turned not from the fierceness of his -great wrath, wherewith his anger was kindled against Judah, because of -all the provocations that Manasseh had provoked him withal. - -23:27 And the LORD said, I will remove Judah also out of my sight, as -I have removed Israel, and will cast off this city Jerusalem which I -have chosen, and the house of which I said, My name shall be there. - -23:28 Now the rest of the acts of Josiah, and all that he did, are -they not written in the book of the chronicles of the kings of Judah? -23:29 In his days Pharaohnechoh king of Egypt went up against the king -of Assyria to the river Euphrates: and king Josiah went against him; -and he slew him at Megiddo, when he had seen him. - -23:30 And his servants carried him in a chariot dead from Megiddo, and -brought him to Jerusalem, and buried him in his own sepulchre. And the -people of the land took Jehoahaz the son of Josiah, and anointed him, -and made him king in his father's stead. - -23:31 Jehoahaz was twenty and three years old when he began to reign; -and he reigned three months in Jerusalem. And his mother's name was -Hamutal, the daughter of Jeremiah of Libnah. - -23:32 And he did that which was evil in the sight of the LORD, -according to all that his fathers had done. - -23:33 And Pharaohnechoh put him in bands at Riblah in the land of -Hamath, that he might not reign in Jerusalem; and put the land to a -tribute of an hundred talents of silver, and a talent of gold. - -23:34 And Pharaohnechoh made Eliakim the son of Josiah king in the -room of Josiah his father, and turned his name to Jehoiakim, and took -Jehoahaz away: and he came to Egypt, and died there. - -23:35 And Jehoiakim gave the silver and the gold to Pharaoh; but he -taxed the land to give the money according to the commandment of -Pharaoh: he exacted the silver and the gold of the people of the land, -of every one according to his taxation, to give it unto Pharaohnechoh. - -23:36 Jehoiakim was twenty and five years old when he began to reign; -and he reigned eleven years in Jerusalem. And his mother's name was -Zebudah, the daughter of Pedaiah of Rumah. - -23:37 And he did that which was evil in the sight of the LORD, -according to all that his fathers had done. - -24:1 In his days Nebuchadnezzar king of Babylon came up, and Jehoiakim -became his servant three years: then he turned and rebelled against -him. - -24:2 And the LORD sent against him bands of the Chaldees, and bands of -the Syrians, and bands of the Moabites, and bands of the children of -Ammon, and sent them against Judah to destroy it, according to the -word of the LORD, which he spake by his servants the prophets. - -24:3 Surely at the commandment of the LORD came this upon Judah, to -remove them out of his sight, for the sins of Manasseh, according to -all that he did; 24:4 And also for the innocent blood that he shed: -for he filled Jerusalem with innocent blood; which the LORD would not -pardon. - -24:5 Now the rest of the acts of Jehoiakim, and all that he did, are -they not written in the book of the chronicles of the kings of Judah? -24:6 So Jehoiakim slept with his fathers: and Jehoiachin his son -reigned in his stead. - -24:7 And the king of Egypt came not again any more out of his land: -for the king of Babylon had taken from the river of Egypt unto the -river Euphrates all that pertained to the king of Egypt. - -24:8 Jehoiachin was eighteen years old when he began to reign, and he -reigned in Jerusalem three months. And his mother's name was Nehushta, -the daughter of Elnathan of Jerusalem. - -24:9 And he did that which was evil in the sight of the LORD, -according to all that his father had done. - -24:10 At that time the servants of Nebuchadnezzar king of Babylon came -up against Jerusalem, and the city was besieged. - -24:11 And Nebuchadnezzar king of Babylon came against the city, and -his servants did besiege it. - -24:12 And Jehoiachin the king of Judah went out to the king of -Babylon, he, and his mother, and his servants, and his princes, and -his officers: and the king of Babylon took him in the eighth year of -his reign. - -24:13 And he carried out thence all the treasures of the house of the -LORD, and the treasures of the king's house, and cut in pieces all the -vessels of gold which Solomon king of Israel had made in the temple of -the LORD, as the LORD had said. - -24:14 And he carried away all Jerusalem, and all the princes, and all -the mighty men of valour, even ten thousand captives, and all the -craftsmen and smiths: none remained, save the poorest sort of the -people of the land. - -24:15 And he carried away Jehoiachin to Babylon, and the king's -mother, and the king's wives, and his officers, and the mighty of the -land, those carried he into captivity from Jerusalem to Babylon. - -24:16 And all the men of might, even seven thousand, and craftsmen and -smiths a thousand, all that were strong and apt for war, even them the -king of Babylon brought captive to Babylon. - -24:17 And the king of Babylon made Mattaniah his father's brother king -in his stead, and changed his name to Zedekiah. - -24:18 Zedekiah was twenty and one years old when he began to reign, -and he reigned eleven years in Jerusalem. And his mother's name was -Hamutal, the daughter of Jeremiah of Libnah. - -24:19 And he did that which was evil in the sight of the LORD, -according to all that Jehoiakim had done. - -24:20 For through the anger of the LORD it came to pass in Jerusalem -and Judah, until he had cast them out from his presence, that Zedekiah -rebelled against the king of Babylon. - -25:1 And it came to pass in the ninth year of his reign, in the tenth -month, in the tenth day of the month, that Nebuchadnezzar king of -Babylon came, he, and all his host, against Jerusalem, and pitched -against it; and they built forts against it round about. - -25:2 And the city was besieged unto the eleventh year of king -Zedekiah. - -25:3 And on the ninth day of the fourth month the famine prevailed in -the city, and there was no bread for the people of the land. - -25:4 And the city was broken up, and all the men of war fled by night -by the way of the gate between two walls, which is by the king's -garden: (now the Chaldees were against the city round about:) and the -king went the way toward the plain. - -25:5 And the army of the Chaldees pursued after the king, and overtook -him in the plains of Jericho: and all his army were scattered from -him. - -25:6 So they took the king, and brought him up to the king of Babylon -to Riblah; and they gave judgment upon him. - -25:7 And they slew the sons of Zedekiah before his eyes, and put out -the eyes of Zedekiah, and bound him with fetters of brass, and carried -him to Babylon. - -25:8 And in the fifth month, on the seventh day of the month, which is -the nineteenth year of king Nebuchadnezzar king of Babylon, came -Nebuzaradan, captain of the guard, a servant of the king of Babylon, -unto Jerusalem: 25:9 And he burnt the house of the LORD, and the -king's house, and all the houses of Jerusalem, and every great man's -house burnt he with fire. - -25:10 And all the army of the Chaldees, that were with the captain of -the guard, brake down the walls of Jerusalem round about. - -25:11 Now the rest of the people that were left in the city, and the -fugitives that fell away to the king of Babylon, with the remnant of -the multitude, did Nebuzaradan the captain of the guard carry away. - -25:12 But the captain of the guard left of the door of the poor of the -land to be vinedressers and husbandmen. - -25:13 And the pillars of brass that were in the house of the LORD, and -the bases, and the brasen sea that was in the house of the LORD, did -the Chaldees break in pieces, and carried the brass of them to -Babylon. - -25:14 And the pots, and the shovels, and the snuffers, and the spoons, -and all the vessels of brass wherewith they ministered, took they -away. - -25:15 And the firepans, and the bowls, and such things as were of -gold, in gold, and of silver, in silver, the captain of the guard took -away. - -25:16 The two pillars, one sea, and the bases which Solomon had made -for the house of the LORD; the brass of all these vessels was without -weight. - -25:17 The height of the one pillar was eighteen cubits, and the -chapiter upon it was brass: and the height of the chapiter three -cubits; and the wreathen work, and pomegranates upon the chapiter -round about, all of brass: and like unto these had the second pillar -with wreathen work. - -25:18 And the captain of the guard took Seraiah the chief priest, and -Zephaniah the second priest, and the three keepers of the door: 25:19 -And out of the city he took an officer that was set over the men of -war, and five men of them that were in the king's presence, which were -found in the city, and the principal scribe of the host, which -mustered the people of the land, and threescore men of the people of -the land that were found in the city: 25:20 And Nebuzaradan captain of -the guard took these, and brought them to the king of Babylon to -Riblah: 25:21 And the king of Babylon smote them, and slew them at -Riblah in the land of Hamath. So Judah was carried away out of their -land. - -25:22 And as for the people that remained in the land of Judah, whom -Nebuchadnezzar king of Babylon had left, even over them he made -Gedaliah the son of Ahikam, the son of Shaphan, ruler. - -25:23 And when all the captains of the armies, they and their men, -heard that the king of Babylon had made Gedaliah governor, there came -to Gedaliah to Mizpah, even Ishmael the son of Nethaniah, and Johanan -the son of Careah, and Seraiah the son of Tanhumeth the Netophathite, -and Jaazaniah the son of a Maachathite, they and their men. - -25:24 And Gedaliah sware to them, and to their men, and said unto -them, Fear not to be the servants of the Chaldees: dwell in the land, -and serve the king of Babylon; and it shall be well with you. - -25:25 But it came to pass in the seventh month, that Ishmael the son -of Nethaniah, the son of Elishama, of the seed royal, came, and ten -men with him, and smote Gedaliah, that he died, and the Jews and the -Chaldees that were with him at Mizpah. - -25:26 And all the people, both small and great, and the captains of -the armies, arose, and came to Egypt: for they were afraid of the -Chaldees. - -25:27 And it came to pass in the seven and thirtieth year of the -captivity of Jehoiachin king of Judah, in the twelfth month, on the -seven and twentieth day of the month, that Evilmerodach king of -Babylon in the year that he began to reign did lift up the head of -Jehoiachin king of Judah out of prison; 25:28 And he spake kindly to -him, and set his throne above the throne of the kings that were with -him in Babylon; 25:29 And changed his prison garments: and he did eat -bread continually before him all the days of his life. - -25:30 And his allowance was a continual allowance given him of the -king, a daily rate for every day, all the days of his life. - - - - -The First Book of the Chronicles - - -1:1 Adam, Sheth, Enosh, 1:2 Kenan, Mahalaleel, Jered, 1:3 Henoch, -Methuselah, Lamech, 1:4 Noah, Shem, Ham, and Japheth. - -1:5 The sons of Japheth; Gomer, and Magog, and Madai, and Javan, and -Tubal, and Meshech, and Tiras. - -1:6 And the sons of Gomer; Ashchenaz, and Riphath, and Togarmah. - -1:7 And the sons of Javan; Elishah, and Tarshish, Kittim, and Dodanim. - -1:8 The sons of Ham; Cush, and Mizraim, Put, and Canaan. - -1:9 And the sons of Cush; Seba, and Havilah, and Sabta, and Raamah, -and Sabtecha. And the sons of Raamah; Sheba, and Dedan. - -1:10 And Cush begat Nimrod: he began to be mighty upon the earth. - -1:11 And Mizraim begat Ludim, and Anamim, and Lehabim, and Naphtuhim, -1:12 And Pathrusim, and Casluhim, (of whom came the Philistines,) and -Caphthorim. - -1:13 And Canaan begat Zidon his firstborn, and Heth, 1:14 The Jebusite -also, and the Amorite, and the Girgashite, 1:15 And the Hivite, and -the Arkite, and the Sinite, 1:16 And the Arvadite, and the Zemarite, -and the Hamathite. - -1:17 The sons of Shem; Elam, and Asshur, and Arphaxad, and Lud, and -Aram, and Uz, and Hul, and Gether, and Meshech. - -1:18 And Arphaxad begat Shelah, and Shelah begat Eber. - -1:19 And unto Eber were born two sons: the name of the one was Peleg; -because in his days the earth was divided: and his brother's name was -Joktan. - -1:20 And Joktan begat Almodad, and Sheleph, and Hazarmaveth, and -Jerah, 1:21 Hadoram also, and Uzal, and Diklah, 1:22 And Ebal, and -Abimael, and Sheba, 1:23 And Ophir, and Havilah, and Jobab. All these -were the sons of Joktan. - -1:24 Shem, Arphaxad, Shelah, 1:25 Eber, Peleg, Reu, 1:26 Serug, Nahor, -Terah, 1:27 Abram; the same is Abraham. - -1:28 The sons of Abraham; Isaac, and Ishmael. - -1:29 These are their generations: The firstborn of Ishmael, Nebaioth; -then Kedar, and Adbeel, and Mibsam, 1:30 Mishma, and Dumah, Massa, -Hadad, and Tema, 1:31 Jetur, Naphish, and Kedemah. These are the sons -of Ishmael. - -1:32 Now the sons of Keturah, Abraham's concubine: she bare Zimran, -and Jokshan, and Medan, and Midian, and Ishbak, and Shuah. And the -sons of Jokshan; Sheba, and Dedan. - -1:33 And the sons of Midian; Ephah, and Epher, and Henoch, and Abida, -and Eldaah. All these are the sons of Keturah. - -1:34 And Abraham begat Isaac. The sons of Isaac; Esau and Israel. - -1:35 The sons of Esau; Eliphaz, Reuel, and Jeush, and Jaalam, and -Korah. - -1:36 The sons of Eliphaz; Teman, and Omar, Zephi, and Gatam, Kenaz, -and Timna, and Amalek. - -1:37 The sons of Reuel; Nahath, Zerah, Shammah, and Mizzah. - -1:38 And the sons of Seir; Lotan, and Shobal, and Zibeon, and Anah, -and Dishon, and Ezar, and Dishan. - -1:39 And the sons of Lotan; Hori, and Homam: and Timna was Lotan's -sister. - -1:40 The sons of Shobal; Alian, and Manahath, and Ebal, Shephi, and -Onam. - -and the sons of Zibeon; Aiah, and Anah. - -1:41 The sons of Anah; Dishon. And the sons of Dishon; Amram, and -Eshban, and Ithran, and Cheran. - -1:42 The sons of Ezer; Bilhan, and Zavan, and Jakan. The sons of -Dishan; Uz, and Aran. - -1:43 Now these are the kings that reigned in the land of Edom before -any king reigned over the children of Israel; Bela the son of Beor: -and the name of his city was Dinhabah. - -1:44 And when Bela was dead, Jobab the son of Zerah of Bozrah reigned -in his stead. - -1:45 And when Jobab was dead, Husham of the land of the Temanites -reigned in his stead. - -1:46 And when Husham was dead, Hadad the son of Bedad, which smote -Midian in the field of Moab, reigned in his stead: and the name of his -city was Avith. - -1:47 And when Hadad was dead, Samlah of Masrekah reigned in his stead. - -1:48 And when Samlah was dead, Shaul of Rehoboth by the river reigned -in his stead. - -1:49 And when Shaul was dead, Baalhanan the son of Achbor reigned in -his stead. - -1:50 And when Baalhanan was dead, Hadad reigned in his stead: and the -name of his city was Pai; and his wife's name was Mehetabel, the -daughter of Matred, the daughter of Mezahab. - -1:51 Hadad died also. And the dukes of Edom were; duke Timnah, duke -Aliah, duke Jetheth, 1:52 Duke Aholibamah, duke Elah, duke Pinon, 1:53 -Duke Kenaz, duke Teman, duke Mibzar, 1:54 Duke Magdiel, duke Iram. -These are the dukes of Edom. - -2:1 These are the sons of Israel; Reuben, Simeon, Levi, and Judah, -Issachar, and Zebulun, 2:2 Dan, Joseph, and Benjamin, Naphtali, Gad, -and Asher. - -2:3 The sons of Judah; Er, and Onan, and Shelah: which three were born -unto him of the daughter of Shua the Canaanitess. And Er, the -firstborn of Judah, was evil in the sight of the LORD; and he slew -him. - -2:4 And Tamar his daughter in law bore him Pharez and Zerah. All the -sons of Judah were five. - -2:5 The sons of Pharez; Hezron, and Hamul. - -2:6 And the sons of Zerah; Zimri, and Ethan, and Heman, and Calcol, -and Dara: five of them in all. - -2:7 And the sons of Carmi; Achar, the troubler of Israel, who -transgressed in the thing accursed. - -2:8 And the sons of Ethan; Azariah. - -2:9 The sons also of Hezron, that were born unto him; Jerahmeel, and -Ram, and Chelubai. - -2:10 And Ram begat Amminadab; and Amminadab begat Nahshon, prince of -the children of Judah; 2:11 And Nahshon begat Salma, and Salma begat -Boaz, 2:12 And Boaz begat Obed, and Obed begat Jesse, 2:13 And Jesse -begat his firstborn Eliab, and Abinadab the second, and Shimma the -third, 2:14 Nethaneel the fourth, Raddai the fifth, 2:15 Ozem the -sixth, David the seventh: 2:16 Whose sisters were Zeruiah, and -Abigail. And the sons of Zeruiah; Abishai, and Joab, and Asahel, -three. - -2:17 And Abigail bare Amasa: and the father of Amasa was Jether the -Ishmeelite. - -2:18 And Caleb the son of Hezron begat children of Azubah his wife, -and of Jerioth: her sons are these; Jesher, and Shobab, and Ardon. - -2:19 And when Azubah was dead, Caleb took unto him Ephrath, which bare -him Hur. - -2:20 And Hur begat Uri, and Uri begat Bezaleel. - -2:21 And afterward Hezron went in to the daughter of Machir the father -of Gilead, whom he married when he was threescore years old; and she -bare him Segub. - -2:22 And Segub begat Jair, who had three and twenty cities in the land -of Gilead. - -2:23 And he took Geshur, and Aram, with the towns of Jair, from them, -with Kenath, and the towns thereof, even threescore cities. All these -belonged to the sons of Machir the father of Gilead. - -2:24 And after that Hezron was dead in Calebephratah, then Abiah -Hezron's wife bare him Ashur the father of Tekoa. - -2:25 And the sons of Jerahmeel the firstborn of Hezron were, Ram the -firstborn, and Bunah, and Oren, and Ozem, and Ahijah. - -2:26 Jerahmeel had also another wife, whose name was Atarah; she was -the mother of Onam. - -2:27 And the sons of Ram the firstborn of Jerahmeel were, Maaz, and -Jamin, and Eker. - -2:28 And the sons of Onam were, Shammai, and Jada. And the sons of -Shammai; Nadab and Abishur. - -2:29 And the name of the wife of Abishur was Abihail, and she bare him -Ahban, and Molid. - -2:30 And the sons of Nadab; Seled, and Appaim: but Seled died without -children. - -2:31 And the sons of Appaim; Ishi. And the sons of Ishi; Sheshan. And -the children of Sheshan; Ahlai. - -2:32 And the sons of Jada the brother of Shammai; Jether, and -Jonathan: and Jether died without children. - -2:33 And the sons of Jonathan; Peleth, and Zaza. These were the sons -of Jerahmeel. - -2:34 Now Sheshan had no sons, but daughters. And Sheshan had a -servant, an Egyptian, whose name was Jarha. - -2:35 And Sheshan gave his daughter to Jarha his servant to wife; and -she bare him Attai. - -2:36 And Attai begat Nathan, and Nathan begat Zabad, 2:37 And Zabad -begat Ephlal, and Ephlal begat Obed, 2:38 And Obed begat Jehu, and -Jehu begat Azariah, 2:39 And Azariah begat Helez, and Helez begat -Eleasah, 2:40 And Eleasah begat Sisamai, and Sisamai begat Shallum, -2:41 And Shallum begat Jekamiah, and Jekamiah begat Elishama. - -2:42 Now the sons of Caleb the brother of Jerahmeel were, Mesha his -firstborn, which was the father of Ziph; and the sons of Mareshah the -father of Hebron. - -2:43 And the sons of Hebron; Korah, and Tappuah, and Rekem, and Shema. - -2:44 And Shema begat Raham, the father of Jorkoam: and Rekem begat -Shammai. - -2:45 And the son of Shammai was Maon: and Maon was the father of -Bethzur. - -2:46 And Ephah, Caleb's concubine, bare Haran, and Moza, and Gazez: -and Haran begat Gazez. - -2:47 And the sons of Jahdai; Regem, and Jotham, and Gesham, and Pelet, -and Ephah, and Shaaph. - -2:48 Maachah, Caleb's concubine, bare Sheber, and Tirhanah. - -2:49 She bare also Shaaph the father of Madmannah, Sheva the father of -Machbenah, and the father of Gibea: and the daughter of Caleb was -Achsa. - -2:50 These were the sons of Caleb the son of Hur, the firstborn of -Ephratah; Shobal the father of Kirjathjearim. - -2:51 Salma the father of Bethlehem, Hareph the father of Bethgader. - -2:52 And Shobal the father of Kirjathjearim had sons; Haroeh, and half -of the Manahethites. - -2:53 And the families of Kirjathjearim; the Ithrites, and the Puhites, -and the Shumathites, and the Mishraites; of them came the Zareathites, -and the Eshtaulites, 2:54 The sons of Salma; Bethlehem, and the -Netophathites, Ataroth, the house of Joab, and half of the -Manahethites, the Zorites. - -2:55 And the families of the scribes which dwelt at Jabez; the -Tirathites, the Shimeathites, and Suchathites. These are the Kenites -that came of Hemath, the father of the house of Rechab. - -3:1 Now these were the sons of David, which were born unto him in -Hebron; the firstborn Amnon, of Ahinoam the Jezreelitess; the second -Daniel, of Abigail the Carmelitess: 3:2 The third, Absalom the son of -Maachah the daughter of Talmai king of Geshur: the fourth, Adonijah -the son of Haggith: 3:3 The fifth, Shephatiah of Abital: the sixth, -Ithream by Eglah his wife. - -3:4 These six were born unto him in Hebron; and there he reigned seven -years and six months: and in Jerusalem he reigned thirty and three -years. - -3:5 And these were born unto him in Jerusalem; Shimea, and Shobab, and -Nathan, and Solomon, four, of Bathshua the daughter of Ammiel: 3:6 -Ibhar also, and Elishama, and Eliphelet, 3:7 And Nogah, and Nepheg, -and Japhia, 3:8 And Elishama, and Eliada, and Eliphelet, nine. - -3:9 These were all the sons of David, beside the sons of the -concubines, and Tamar their sister. - -3:10 And Solomon's son was Rehoboam, Abia his son, Asa his son, -Jehoshaphat his son, 3:11 Joram his son, Ahaziah his son, Joash his -son, 3:12 Amaziah his son, Azariah his son, Jotham his son, 3:13 Ahaz -his son, Hezekiah his son, Manasseh his son, 3:14 Amon his son, Josiah -his son. - -3:15 And the sons of Josiah were, the firstborn Johanan, the second -Jehoiakim, the third Zedekiah, the fourth Shallum. - -3:16 And the sons of Jehoiakim: Jeconiah his son, Zedekiah his son. - -3:17 And the sons of Jeconiah; Assir, Salathiel his son, 3:18 -Malchiram also, and Pedaiah, and Shenazar, Jecamiah, Hoshama, and -Nedabiah. - -3:19 And the sons of Pedaiah were, Zerubbabel, and Shimei: and the -sons of Zerubbabel; Meshullam, and Hananiah, and Shelomith their -sister: 3:20 And Hashubah, and Ohel, and Berechiah, and Hasadiah, -Jushabhesed, five. - -3:21 And the sons of Hananiah; Pelatiah, and Jesaiah: the sons of -Rephaiah, the sons of Arnan, the sons of Obadiah, the sons of -Shechaniah. - -3:22 And the sons of Shechaniah; Shemaiah: and the sons of Shemaiah; -Hattush, and Igeal, and Bariah, and Neariah, and Shaphat, six. - -3:23 And the sons of Neariah; Elioenai, and Hezekiah, and Azrikam, -three. - -3:24 And the sons of Elioenai were, Hodaiah, and Eliashib, and -Pelaiah, and Akkub, and Johanan, and Dalaiah, and Anani, seven. - -4:1 The sons of Judah; Pharez, Hezron, and Carmi, and Hur, and Shobal. - -4:2 And Reaiah the son of Shobal begat Jahath; and Jahath begat -Ahumai, and Lahad. These are the families of the Zorathites. - -4:3 And these were of the father of Etam; Jezreel, and Ishma, and -Idbash: and the name of their sister was Hazelelponi: 4:4 And Penuel -the father of Gedor, and Ezer the father of Hushah. These are the sons -of Hur, the firstborn of Ephratah, the father of Bethlehem. - -4:5 And Ashur the father of Tekoa had two wives, Helah and Naarah. - -4:6 And Naarah bare him Ahuzam, and Hepher, and Temeni, and -Haahashtari. - -These were the sons of Naarah. - -4:7 And the sons of Helah were, Zereth, and Jezoar, and Ethnan. - -4:8 And Coz begat Anub, and Zobebah, and the families of Aharhel the -son of Harum. - -4:9 And Jabez was more honourable than his brethren: and his mother -called his name Jabez, saying, Because I bare him with sorrow. - -4:10 And Jabez called on the God of Israel, saying, Oh that thou -wouldest bless me indeed, and enlarge my coast, and that thine hand -might be with me, and that thou wouldest keep me from evil, that it -may not grieve me! And God granted him that which he requested. - -4:11 And Chelub the brother of Shuah begat Mehir, which was the father -of Eshton. - -4:12 And Eshton begat Bethrapha, and Paseah, and Tehinnah the father -of Irnahash. These are the men of Rechah. - -4:13 And the sons of Kenaz; Othniel, and Seraiah: and the sons of -Othniel; Hathath. - -4:14 And Meonothai begat Ophrah: and Seraiah begat Joab, the father of -the valley of Charashim; for they were craftsmen. - -4:15 And the sons of Caleb the son of Jephunneh; Iru, Elah, and Naam: -and the sons of Elah, even Kenaz. - -4:16 And the sons of Jehaleleel; Ziph, and Ziphah, Tiria, and Asareel. - -4:17 And the sons of Ezra were, Jether, and Mered, and Epher, and -Jalon: and she bare Miriam, and Shammai, and Ishbah the father of -Eshtemoa. - -4:18 And his wife Jehudijah bare Jered the father of Gedor, and Heber -the father of Socho, and Jekuthiel the father of Zanoah. And these are -the sons of Bithiah the daughter of Pharaoh, which Mered took. - -4:19 And the sons of his wife Hodiah the sister of Naham, the father -of Keilah the Garmite, and Eshtemoa the Maachathite. - -4:20 And the sons of Shimon were, Amnon, and Rinnah, Benhanan, and -Tilon. - -And the sons of Ishi were, Zoheth, and Benzoheth. - -4:21 The sons of Shelah the son of Judah were, Er the father of Lecah, -and Laadah the father of Mareshah, and the families of the house of -them that wrought fine linen, of the house of Ashbea, 4:22 And Jokim, -and the men of Chozeba, and Joash, and Saraph, who had the dominion in -Moab, and Jashubilehem. And these are ancient things. - -4:23 These were the potters, and those that dwelt among plants and -hedges: there they dwelt with the king for his work. - -4:24 The sons of Simeon were, Nemuel, and Jamin, Jarib, Zerah, and -Shaul: 4:25 Shallum his son, Mibsam his son, Mishma his son. - -4:26 And the sons of Mishma; Hamuel his son, Zacchur his son, Shimei -his son. - -4:27 And Shimei had sixteen sons and six daughters: but his brethren -had not many children, neither did all their family multiply, like to -the children of Judah. - -4:28 And they dwelt at Beersheba, and Moladah, and Hazarshual, 4:29 -And at Bilhah, and at Ezem, and at Tolad, 4:30 And at Bethuel, and at -Hormah, and at Ziklag, 4:31 And at Bethmarcaboth, and Hazarsusim, and -at Bethbirei, and at Shaaraim. These were their cities unto the reign -of David. - -4:32 And their villages were, Etam, and Ain, Rimmon, and Tochen, and -Ashan, five cities: 4:33 And all their villages that were round about -the same cities, unto Baal. These were their habitations, and their -genealogy. - -4:34 And Meshobab, and Jamlech, and Joshah, the son of Amaziah, 4:35 -And Joel, and Jehu the son of Josibiah, the son of Seraiah, the son of -Asiel, 4:36 And Elioenai, and Jaakobah, and Jeshohaiah, and Asaiah, -and Adiel, and Jesimiel, and Benaiah, 4:37 And Ziza the son of Shiphi, -the son of Allon, the son of Jedaiah, the son of Shimri, the son of -Shemaiah; 4:38 These mentioned by their names were princes in their -families: and the house of their fathers increased greatly. - -4:39 And they went to the entrance of Gedor, even unto the east side -of the valley, to seek pasture for their flocks. - -4:40 And they found fat pasture and good, and the land was wide, and -quiet, and peaceable; for they of Ham had dwelt there of old. - -4:41 And these written by name came in the days of Hezekiah king of -Judah, and smote their tents, and the habitations that were found -there, and destroyed them utterly unto this day, and dwelt in their -rooms: because there was pasture there for their flocks. - -4:42 And some of them, even of the sons of Simeon, five hundred men, -went to mount Seir, having for their captains Pelatiah, and Neariah, -and Rephaiah, and Uzziel, the sons of Ishi. - -4:43 And they smote the rest of the Amalekites that were escaped, and -dwelt there unto this day. - -5:1 Now the sons of Reuben the firstborn of Israel, (for he was the -firstborn; but forasmuch as he defiled his father's bed, his -birthright was given unto the sons of Joseph the son of Israel: and -the genealogy is not to be reckoned after the birthright. - -5:2 For Judah prevailed above his brethren, and of him came the chief -ruler; but the birthright was Joseph's:) 5:3 The sons, I say, of -Reuben the firstborn of Israel were, Hanoch, and Pallu, Hezron, and -Carmi. - -5:4 The sons of Joel; Shemaiah his son, Gog his son, Shimei his son, -5:5 Micah his son, Reaia his son, Baal his son, 5:6 Beerah his son, -whom Tilgathpilneser king of Assyria carried away captive: he was -prince of the Reubenites. - -5:7 And his brethren by their families, when the genealogy of their -generations was reckoned, were the chief, Jeiel, and Zechariah, 5:8 -And Bela the son of Azaz, the son of Shema, the son of Joel, who dwelt -in Aroer, even unto Nebo and Baalmeon: 5:9 And eastward he inhabited -unto the entering in of the wilderness from the river Euphrates: -because their cattle were multiplied in the land of Gilead. - -5:10 And in the days of Saul they made war with the Hagarites, who -fell by their hand: and they dwelt in their tents throughout all the -east land of Gilead. - -5:11 And the children of Gad dwelt over against them, in the land of -Bashan unto Salcah: 5:12 Joel the chief, and Shapham the next, and -Jaanai, and Shaphat in Bashan. - -5:13 And their brethren of the house of their fathers were, Michael, -and Meshullam, and Sheba, and Jorai, and Jachan, and Zia, and Heber, -seven. - -5:14 These are the children of Abihail the son of Huri, the son of -Jaroah, the son of Gilead, the son of Michael, the son of Jeshishai, -the son of Jahdo, the son of Buz; 5:15 Ahi the son of Abdiel, the son -of Guni, chief of the house of their fathers. - -5:16 And they dwelt in Gilead in Bashan, and in her towns, and in all -the suburbs of Sharon, upon their borders. - -5:17 All these were reckoned by genealogies in the days of Jotham king -of Judah, and in the days of Jeroboam king of Israel. - -5:18 The sons of Reuben, and the Gadites, and half the tribe of -Manasseh, of valiant men, men able to bear buckler and sword, and to -shoot with bow, and skilful in war, were four and forty thousand seven -hundred and threescore, that went out to the war. - -5:19 And they made war with the Hagarites, with Jetur, and Nephish, -and Nodab. - -5:20 And they were helped against them, and the Hagarites were -delivered into their hand, and all that were with them: for they cried -to God in the battle, and he was intreated of them; because they put -their trust in him. - -5:21 And they took away their cattle; of their camels fifty thousand, -and of sheep two hundred and fifty thousand, and of asses two -thousand, and of men an hundred thousand. - -5:22 For there fell down many slain, because the war was of God. And -they dwelt in their steads until the captivity. - -5:23 And the children of the half tribe of Manasseh dwelt in the land: -they increased from Bashan unto Baalhermon and Senir, and unto mount -Hermon. - -5:24 And these were the heads of the house of their fathers, even -Epher, and Ishi, and Eliel, and Azriel, and Jeremiah, and Hodaviah, -and Jahdiel, mighty men of valour, famous men, and heads of the house -of their fathers. - -5:25 And they transgressed against the God of their fathers, and went -a whoring after the gods of the people of the land, whom God destroyed -before them. - -5:26 And the God of Israel stirred up the spirit of Pul king of -Assyria, and the spirit of Tilgathpilneser king of Assyria, and he -carried them away, even the Reubenites, and the Gadites, and the half -tribe of Manasseh, and brought them unto Halah, and Habor, and Hara, -and to the river Gozan, unto this day. - -6:1 The sons of Levi; Gershon, Kohath, and Merari. - -6:2 And the sons of Kohath; Amram, Izhar, and Hebron, and Uzziel. - -6:3 And the children of Amram; Aaron, and Moses, and Miriam. The sons -also of Aaron; Nadab, and Abihu, Eleazar, and Ithamar. - -6:4 Eleazar begat Phinehas, Phinehas begat Abishua, 6:5 And Abishua -begat Bukki, and Bukki begat Uzzi, 6:6 And Uzzi begat Zerahiah, and -Zerahiah begat Meraioth, 6:7 Meraioth begat Amariah, and Amariah begat -Ahitub, 6:8 And Ahitub begat Zadok, and Zadok begat Ahimaaz, 6:9 And -Ahimaaz begat Azariah, and Azariah begat Johanan, 6:10 And Johanan -begat Azariah, (he it is that executed the priest's office in the -temple that Solomon built in Jerusalem:) 6:11 And Azariah begat -Amariah, and Amariah begat Ahitub, 6:12 And Ahitub begat Zadok, and -Zadok begat Shallum, 6:13 And Shallum begat Hilkiah, and Hilkiah begat -Azariah, 6:14 And Azariah begat Seraiah, and Seraiah begat Jehozadak, -6:15 And Jehozadak went into captivity, when the LORD carried away -Judah and Jerusalem by the hand of Nebuchadnezzar. - -6:16 The sons of Levi; Gershom, Kohath, and Merari. - -6:17 And these be the names of the sons of Gershom; Libni, and Shimei. - -6:18 And the sons of Kohath were, Amram, and Izhar, and Hebron, and -Uzziel. - -6:19 The sons of Merari; Mahli, and Mushi. And these are the families -of the Levites according to their fathers. - -6:20 Of Gershom; Libni his son, Jahath his son, Zimmah his son, 6:21 -Joah his son, Iddo his son, Zerah his son, Jeaterai his son. - -6:22 The sons of Kohath; Amminadab his son, Korah his son, Assir his -son, 6:23 Elkanah his son, and Ebiasaph his son, and Assir his son, -6:24 Tahath his son, Uriel his son, Uzziah his son, and Shaul his son. - -6:25 And the sons of Elkanah; Amasai, and Ahimoth. - -6:26 As for Elkanah: the sons of Elkanah; Zophai his son, and Nahath -his son, 6:27 Eliab his son, Jeroham his son, Elkanah his son. - -6:28 And the sons of Samuel; the firstborn Vashni, and Abiah. - -6:29 The sons of Merari; Mahli, Libni his son, Shimei his son, Uzza -his son, 6:30 Shimea his son, Haggiah his son, Asaiah his son. - -6:31 And these are they whom David set over the service of song in the -house of the LORD, after that the ark had rest. - -6:32 And they ministered before the dwelling place of the tabernacle -of the congregation with singing, until Solomon had built the house of -the LORD in Jerusalem: and then they waited on their office according -to their order. - -6:33 And these are they that waited with their children. Of the sons -of the Kohathites: Heman a singer, the son of Joel, the son of -Shemuel, 6:34 The son of Elkanah, the son of Jeroham, the son of -Eliel, the son of Toah, 6:35 The son of Zuph, the son of Elkanah, the -son of Mahath, the son of Amasai, 6:36 The son of Elkanah, the son of -Joel, the son of Azariah, the son of Zephaniah, 6:37 The son of -Tahath, the son of Assir, the son of Ebiasaph, the son of Korah, 6:38 -The son of Izhar, the son of Kohath, the son of Levi, the son of -Israel. - -6:39 And his brother Asaph, who stood on his right hand, even Asaph -the son of Berachiah, the son of Shimea, 6:40 The son of Michael, the -son of Baaseiah, the son of Malchiah, 6:41 The son of Ethni, the son -of Zerah, the son of Adaiah, 6:42 The son of Ethan, the son of Zimmah, -the son of Shimei, 6:43 The son of Jahath, the son of Gershom, the son -of Levi. - -6:44 And their brethren the sons of Merari stood on the left hand: -Ethan the son of Kishi, the son of Abdi, the son of Malluch, 6:45 The -son of Hashabiah, the son of Amaziah, the son of Hilkiah, 6:46 The son -of Amzi, the son of Bani, the son of Shamer, 6:47 The son of Mahli, -the son of Mushi, the son of Merari, the son of Levi. - -6:48 Their brethren also the Levites were appointed unto all manner of -service of the tabernacle of the house of God. - -6:49 But Aaron and his sons offered upon the altar of the burnt -offering, and on the altar of incense, and were appointed for all the -work of the place most holy, and to make an atonement for Israel, -according to all that Moses the servant of God had commanded. - -6:50 And these are the sons of Aaron; Eleazar his son, Phinehas his -son, Abishua his son, 6:51 Bukki his son, Uzzi his son, Zerahiah his -son, 6:52 Meraioth his son, Amariah his son, Ahitub his son, 6:53 -Zadok his son, Ahimaaz his son. - -6:54 Now these are their dwelling places throughout their castles in -their coasts, of the sons of Aaron, of the families of the Kohathites: -for theirs was the lot. - -6:55 And they gave them Hebron in the land of Judah, and the suburbs -thereof round about it. - -6:56 But the fields of the city, and the villages thereof, they gave -to Caleb the son of Jephunneh. - -6:57 And to the sons of Aaron they gave the cities of Judah, namely, -Hebron, the city of refuge, and Libnah with her suburbs, and Jattir, -and Eshtemoa, with their suburbs, 6:58 And Hilen with her suburbs, -Debir with her suburbs, 6:59 And Ashan with her suburbs, and -Bethshemesh with her suburbs: 6:60 And out of the tribe of Benjamin; -Geba with her suburbs, and Alemeth with her suburbs, and Anathoth with -her suburbs. All their cities throughout their families were thirteen -cities. - -6:61 And unto the sons of Kohath, which were left of the family of -that tribe, were cities given out of the half tribe, namely, out of -the half tribe of Manasseh, by lot, ten cities. - -6:62 And to the sons of Gershom throughout their families out of the -tribe of Issachar, and out of the tribe of Asher, and out of the tribe -of Naphtali, and out of the tribe of Manasseh in Bashan, thirteen -cities. - -6:63 Unto the sons of Merari were given by lot, throughout their -families, out of the tribe of Reuben, and out of the tribe of Gad, and -out of the tribe of Zebulun, twelve cities. - -6:64 And the children of Israel gave to the Levites these cities with -their suburbs. - -6:65 And they gave by lot out of the tribe of the children of Judah, -and out of the tribe of the children of Simeon, and out of the tribe -of the children of Benjamin, these cities, which are called by their -names. - -6:66 And the residue of the families of the sons of Kohath had cities -of their coasts out of the tribe of Ephraim. - -6:67 And they gave unto them, of the cities of refuge, Shechem in -mount Ephraim with her suburbs; they gave also Gezer with her suburbs, -6:68 And Jokmeam with her suburbs, and Bethhoron with her suburbs, -6:69 And Aijalon with her suburbs, and Gathrimmon with her suburbs: -6:70 And out of the half tribe of Manasseh; Aner with her suburbs, and -Bileam with her suburbs, for the family of the remnant of the sons of -Kohath. - -6:71 Unto the sons of Gershom were given out of the family of the half -tribe of Manasseh, Golan in Bashan with her suburbs, and Ashtaroth -with her suburbs: 6:72 And out of the tribe of Issachar; Kedesh with -her suburbs, Daberath with her suburbs, 6:73 And Ramoth with her -suburbs, and Anem with her suburbs: 6:74 And out of the tribe of -Asher; Mashal with her suburbs, and Abdon with her suburbs, 6:75 And -Hukok with her suburbs, and Rehob with her suburbs: 6:76 And out of -the tribe of Naphtali; Kedesh in Galilee with her suburbs, and Hammon -with her suburbs, and Kirjathaim with her suburbs. - -6:77 Unto the rest of the children of Merari were given out of the -tribe of Zebulun, Rimmon with her suburbs, Tabor with her suburbs: -6:78 And on the other side Jordan by Jericho, on the east side of -Jordan, were given them out of the tribe of Reuben, Bezer in the -wilderness with her suburbs, and Jahzah with her suburbs, 6:79 -Kedemoth also with her suburbs, and Mephaath with her suburbs: 6:80 -And out of the tribe of Gad; Ramoth in Gilead with her suburbs, and -Mahanaim with her suburbs, 6:81 And Heshbon with her suburbs, and -Jazer with her suburbs. - -7:1 Now the sons of Issachar were, Tola, and Puah, Jashub, and -Shimrom, four. - -7:2 And the sons of Tola; Uzzi, and Rephaiah, and Jeriel, and Jahmai, -and Jibsam, and Shemuel, heads of their father's house, to wit, of -Tola: they were valiant men of might in their generations; whose -number was in the days of David two and twenty thousand and six -hundred. - -7:3 And the sons of Uzzi; Izrahiah: and the sons of Izrahiah; Michael, -and Obadiah, and Joel, Ishiah, five: all of them chief men. - -7:4 And with them, by their generations, after the house of their -fathers, were bands of soldiers for war, six and thirty thousand men: -for they had many wives and sons. - -7:5 And their brethren among all the families of Issachar were valiant -men of might, reckoned in all by their genealogies fourscore and seven -thousand. - -7:6 The sons of Benjamin; Bela, and Becher, and Jediael, three. - -7:7 And the sons of Bela; Ezbon, and Uzzi, and Uzziel, and Jerimoth, -and Iri, five; heads of the house of their fathers, mighty men of -valour; and were reckoned by their genealogies twenty and two thousand -and thirty and four. - -7:8 And the sons of Becher; Zemira, and Joash, and Eliezer, and -Elioenai, and Omri, and Jerimoth, and Abiah, and Anathoth, and -Alameth. All these are the sons of Becher. - -7:9 And the number of them, after their genealogy by their -generations, heads of the house of their fathers, mighty men of -valour, was twenty thousand and two hundred. - -7:10 The sons also of Jediael; Bilhan: and the sons of Bilhan; Jeush, -and Benjamin, and Ehud, and Chenaanah, and Zethan, and Tharshish, and -Ahishahar. - -7:11 All these the sons of Jediael, by the heads of their fathers, -mighty men of valour, were seventeen thousand and two hundred -soldiers, fit to go out for war and battle. - -7:12 Shuppim also, and Huppim, the children of Ir, and Hushim, the -sons of Aher. - -7:13 The sons of Naphtali; Jahziel, and Guni, and Jezer, and Shallum, -the sons of Bilhah. - -7:14 The sons of Manasseh; Ashriel, whom she bare: (but his concubine -the Aramitess bare Machir the father of Gilead: 7:15 And Machir took -to wife the sister of Huppim and Shuppim, whose sister's name was -Maachah;) and the name of the second was Zelophehad: and Zelophehad -had daughters. - -7:16 And Maachah the wife of Machir bare a son, and she called his -name Peresh; and the name of his brother was Sheresh; and his sons -were Ulam and Rakem. - -7:17 And the sons of Ulam; Bedan. These were the sons of Gilead, the -son of Machir, the son of Manasseh. - -7:18 And his sister Hammoleketh bare Ishod, and Abiezer, and Mahalah. - -7:19 And the sons of Shemidah were, Ahian, and Shechem, and Likhi, and -Aniam. - -7:20 And the sons of Ephraim; Shuthelah, and Bered his son, and Tahath -his son, and Eladah his son, and Tahath his son, 7:21 And Zabad his -son, and Shuthelah his son, and Ezer, and Elead, whom the men of Gath -that were born in that land slew, because they came down to take away -their cattle. - -7:22 And Ephraim their father mourned many days, and his brethren came -to comfort him. - -7:23 And when he went in to his wife, she conceived, and bare a son, -and he called his name Beriah, because it went evil with his house. - -7:24 (And his daughter was Sherah, who built Bethhoron the nether, and -the upper, and Uzzensherah.) 7:25 And Rephah was his son, also -Resheph, and Telah his son, and Tahan his son. - -7:26 Laadan his son, Ammihud his son, Elishama his son. - -7:27 Non his son, Jehoshuah his son. - -7:28 And their possessions and habitations were, Bethel and the towns -thereof, and eastward Naaran, and westward Gezer, with the towns -thereof; Shechem also and the towns thereof, unto Gaza and the towns -thereof: 7:29 And by the borders of the children of Manasseh, -Bethshean and her towns, Taanach and her towns, Megiddo and her towns, -Dor and her towns. In these dwelt the children of Joseph the son of -Israel. - -7:30 The sons of Asher; Imnah, and Isuah, and Ishuai, and Beriah, and -Serah their sister. - -7:31 And the sons of Beriah; Heber, and Malchiel, who is the father of -Birzavith. - -7:32 And Heber begat Japhlet, and Shomer, and Hotham, and Shua their -sister. - -7:33 And the sons of Japhlet; Pasach, and Bimhal, and Ashvath. These -are the children of Japhlet. - -7:34 And the sons of Shamer; Ahi, and Rohgah, Jehubbah, and Aram. - -7:35 And the sons of his brother Helem; Zophah, and Imna, and Shelesh, -and Amal. - -7:36 The sons of Zophah; Suah, and Harnepher, and Shual, and Beri, and -Imrah, 7:37 Bezer, and Hod, and Shamma, and Shilshah, and Ithran, and -Beera. - -7:38 And the sons of Jether; Jephunneh, and Pispah, and Ara. - -7:39 And the sons of Ulla; Arah, and Haniel, and Rezia. - -7:40 All these were the children of Asher, heads of their father's -house, choice and mighty men of valour, chief of the princes. And the -number throughout the genealogy of them that were apt to the war and -to battle was twenty and six thousand men. - -8:1 Now Benjamin begat Bela his firstborn, Ashbel the second, and -Aharah the third, 8:2 Nohah the fourth, and Rapha the fifth. - -8:3 And the sons of Bela were, Addar, and Gera, and Abihud, 8:4 And -Abishua, and Naaman, and Ahoah, 8:5 And Gera, and Shephuphan, and -Huram. - -8:6 And these are the sons of Ehud: these are the heads of the fathers -of the inhabitants of Geba, and they removed them to Manahath: 8:7 And -Naaman, and Ahiah, and Gera, he removed them, and begat Uzza, and -Ahihud. - -8:8 And Shaharaim begat children in the country of Moab, after he had -sent them away; Hushim and Baara were his wives. - -8:9 And he begat of Hodesh his wife, Jobab, and Zibia, and Mesha, and -Malcham, 8:10 And Jeuz, and Shachia, and Mirma. These were his sons, -heads of the fathers. - -8:11 And of Hushim he begat Abitub, and Elpaal. - -8:12 The sons of Elpaal; Eber, and Misham, and Shamed, who built Ono, -and Lod, with the towns thereof: 8:13 Beriah also, and Shema, who were -heads of the fathers of the inhabitants of Aijalon, who drove away the -inhabitants of Gath: 8:14 And Ahio, Shashak, and Jeremoth, 8:15 And -Zebadiah, and Arad, and Ader, 8:16 And Michael, and Ispah, and Joha, -the sons of Beriah; 8:17 And Zebadiah, and Meshullam, and Hezeki, and -Heber, 8:18 Ishmerai also, and Jezliah, and Jobab, the sons of Elpaal; -8:19 And Jakim, and Zichri, and Zabdi, 8:20 And Elienai, and Zilthai, -and Eliel, 8:21 And Adaiah, and Beraiah, and Shimrath, the sons of -Shimhi; 8:22 And Ishpan, and Heber, and Eliel, 8:23 And Abdon, and -Zichri, and Hanan, 8:24 And Hananiah, and Elam, and Antothijah, 8:25 -And Iphedeiah, and Penuel, the sons of Shashak; 8:26 And Shamsherai, -and Shehariah, and Athaliah, 8:27 And Jaresiah, and Eliah, and Zichri, -the sons of Jeroham. - -8:28 These were heads of the fathers, by their generations, chief men. - -These dwelt in Jerusalem. - -8:29 And at Gibeon dwelt the father of Gibeon; whose wife's name was -Maachah: 8:30 And his firstborn son Abdon, and Zur, and Kish, and -Baal, and Nadab, 8:31 And Gedor, and Ahio, and Zacher. - -8:32 And Mikloth begat Shimeah. And these also dwelt with their -brethren in Jerusalem, over against them. - -8:33 And Ner begat Kish, and Kish begat Saul, and Saul begat Jonathan, -and Malchishua, and Abinadab, and Eshbaal. - -8:34 And the son of Jonathan was Meribbaal; and Meribbaal begat Micah. - -8:35 And the sons of Micah were, Pithon, and Melech, and Tarea, and -Ahaz. - -8:36 And Ahaz begat Jehoadah; and Jehoadah begat Alemeth, and -Azmaveth, and Zimri; and Zimri begat Moza, 8:37 And Moza begat Binea: -Rapha was his son, Eleasah his son, Azel his son: 8:38 And Azel had -six sons, whose names are these, Azrikam, Bocheru, and Ishmael, and -Sheariah, and Obadiah, and Hanan. All these were the sons of Azel. - -8:39 And the sons of Eshek his brother were, Ulam his firstborn, -Jehush the second, and Eliphelet the third. - -8:40 And the sons of Ulam were mighty men of valour, archers, and had -many sons, and sons' sons, an hundred and fifty. All these are of the -sons of Benjamin. - -9:1 So all Israel were reckoned by genealogies; and, behold, they were -written in the book of the kings of Israel and Judah, who were carried -away to Babylon for their transgression. - -9:2 Now the first inhabitants that dwelt in their possessions in their -cities were, the Israelites, the priests, Levites, and the Nethinims. - -9:3 And in Jerusalem dwelt of the children of Judah, and of the -children of Benjamin, and of the children of Ephraim, and Manasseh; -9:4 Uthai the son of Ammihud, the son of Omri, the son of Imri, the -son of Bani, of the children of Pharez the son of Judah. - -9:5 And of the Shilonites; Asaiah the firstborn, and his sons. - -9:6 And of the sons of Zerah; Jeuel, and their brethren, six hundred -and ninety. - -9:7 And of the sons of Benjamin; Sallu the son of Meshullam, the son -of Hodaviah, the son of Hasenuah, 9:8 And Ibneiah the son of Jeroham, -and Elah the son of Uzzi, the son of Michri, and Meshullam the son of -Shephathiah, the son of Reuel, the son of Ibnijah; 9:9 And their -brethren, according to their generations, nine hundred and fifty and -six. All these men were chief of the fathers in the house of their -fathers. - -9:10 And of the priests; Jedaiah, and Jehoiarib, and Jachin, 9:11 And -Azariah the son of Hilkiah, the son of Meshullam, the son of Zadok, -the son of Meraioth, the son of Ahitub, the ruler of the house of God; -9:12 And Adaiah the son of Jeroham, the son of Pashur, the son of -Malchijah, and Maasiai the son of Adiel, the son of Jahzerah, the son -of Meshullam, the son of Meshillemith, the son of Immer; 9:13 And -their brethren, heads of the house of their fathers, a thousand and -seven hundred and threescore; very able men for the work of the -service of the house of God. - -9:14 And of the Levites; Shemaiah the son of Hasshub, the son of -Azrikam, the son of Hashabiah, of the sons of Merari; 9:15 And -Bakbakkar, Heresh, and Galal, and Mattaniah the son of Micah, the son -of Zichri, the son of Asaph; 9:16 And Obadiah the son of Shemaiah, the -son of Galal, the son of Jeduthun, and Berechiah the son of Asa, the -son of Elkanah, that dwelt in the villages of the Netophathites. - -9:17 And the porters were, Shallum, and Akkub, and Talmon, and Ahiman, -and their brethren: Shallum was the chief; 9:18 Who hitherto waited in -the king's gate eastward: they were porters in the companies of the -children of Levi. - -9:19 And Shallum the son of Kore, the son of Ebiasaph, the son of -Korah, and his brethren, of the house of his father, the Korahites, -were over the work of the service, keepers of the gates of the -tabernacle: and their fathers, being over the host of the LORD, were -keepers of the entry. - -9:20 And Phinehas the son of Eleazar was the ruler over them in time -past, and the LORD was with him. - -9:21 And Zechariah the son of Meshelemiah was porter of the door of -the tabernacle of the congregation. - -9:22 All these which were chosen to be porters in the gates were two -hundred and twelve. These were reckoned by their genealogy in their -villages, whom David and Samuel the seer did ordain in their set -office. - -9:23 So they and their children had the oversight of the gates of the -house of the LORD, namely, the house of the tabernacle, by wards. - -9:24 In four quarters were the porters, toward the east, west, north, -and south. - -9:25 And their brethren, which were in their villages, were to come -after seven days from time to time with them. - -9:26 For these Levites, the four chief porters, were in their set -office, and were over the chambers and treasuries of the house of God. - -9:27 And they lodged round about the house of God, because the charge -was upon them, and the opening thereof every morning pertained to -them. - -9:28 And certain of them had the charge of the ministering vessels, -that they should bring them in and out by tale. - -9:29 Some of them also were appointed to oversee the vessels, and all -the instruments of the sanctuary, and the fine flour, and the wine, -and the oil, and the frankincense, and the spices. - -9:30 And some of the sons of the priests made the ointment of the -spices. - -9:31 And Mattithiah, one of the Levites, who was the firstborn of -Shallum the Korahite, had the set office over the things that were -made in the pans. - -9:32 And other of their brethren, of the sons of the Kohathites, were -over the shewbread, to prepare it every sabbath. - -9:33 And these are the singers, chief of the fathers of the Levites, -who remaining in the chambers were free: for they were employed in -that work day and night. - -9:34 These chief fathers of the Levites were chief throughout their -generations; these dwelt at Jerusalem. - -9:35 And in Gibeon dwelt the father of Gibeon, Jehiel, whose wife's -name was Maachah: 9:36 And his firstborn son Abdon, then Zur, and -Kish, and Baal, and Ner, and Nadab. - -9:37 And Gedor, and Ahio, and Zechariah, and Mikloth. - -9:38 And Mikloth begat Shimeam. And they also dwelt with their -brethren at Jerusalem, over against their brethren. - -9:39 And Ner begat Kish; and Kish begat Saul; and Saul begat Jonathan, -and Malchishua, and Abinadab, and Eshbaal. - -9:40 And the son of Jonathan was Meribbaal: and Meribbaal begat Micah. - -9:41 And the sons of Micah were, Pithon, and Melech, and Tahrea, and -Ahaz. - -9:42 And Ahaz begat Jarah; and Jarah begat Alemeth, and Azmaveth, and -Zimri; and Zimri begat Moza; 9:43 And Moza begat Binea; and Rephaiah -his son, Eleasah his son, Azel his son. - -9:44 And Azel had six sons, whose names are these, Azrikam, Bocheru, -and Ishmael, and Sheariah, and Obadiah, and Hanan: these were the sons -of Azel. - -10:1 Now the Philistines fought against Israel; and the men of Israel -fled from before the Philistines, and fell down slain in mount Gilboa. - -10:2 And the Philistines followed hard after Saul, and after his sons; -and the Philistines slew Jonathan, and Abinadab, and Malchishua, the -sons of Saul. - -10:3 And the battle went sore against Saul, and the archers hit him, -and he was wounded of the archers. - -10:4 Then said Saul to his armourbearer, Draw thy sword, and thrust me -through therewith; lest these uncircumcised come and abuse me. But his -armourbearer would not; for he was sore afraid. So Saul took a sword, -and fell upon it. - -10:5 And when his armourbearer saw that Saul was dead, he fell -likewise on the sword, and died. - -10:6 So Saul died, and his three sons, and all his house died -together. - -10:7 And when all the men of Israel that were in the valley saw that -they fled, and that Saul and his sons were dead, then they forsook -their cities, and fled: and the Philistines came and dwelt in them. - -10:8 And it came to pass on the morrow, when the Philistines came to -strip the slain, that they found Saul and his sons fallen in mount -Gilboa. - -10:9 And when they had stripped him, they took his head, and his -armour, and sent into the land of the Philistines round about, to -carry tidings unto their idols, and to the people. - -10:10 And they put his armour in the house of their gods, and fastened -his head in the temple of Dagon. - -10:11 And when all Jabeshgilead heard all that the Philistines had -done to Saul, 10:12 They arose, all the valiant men, and took away the -body of Saul, and the bodies of his sons, and brought them to Jabesh, -and buried their bones under the oak in Jabesh, and fasted seven days. - -10:13 So Saul died for his transgression which he committed against -the LORD, even against the word of the LORD, which he kept not, and -also for asking counsel of one that had a familiar spirit, to enquire -of it; 10:14 And enquired not of the LORD: therefore he slew him, and -turned the kingdom unto David the son of Jesse. - -11:1 Then all Israel gathered themselves to David unto Hebron, saying, -Behold, we are thy bone and thy flesh. - -11:2 And moreover in time past, even when Saul was king, thou wast he -that leddest out and broughtest in Israel: and the LORD thy God said -unto thee, Thou shalt feed my people Israel, and thou shalt be ruler -over my people Israel. - -11:3 Therefore came all the elders of Israel to the king to Hebron; -and David made a covenant with them in Hebron before the LORD; and -they anointed David king over Israel, according to the word of the -LORD by Samuel. - -11:4 And David and all Israel went to Jerusalem, which is Jebus; where -the Jebusites were, the inhabitants of the land. - -11:5 And the inhabitants of Jebus said to David, Thou shalt not come -hither. Nevertheless David took the castle of Zion, which is the city -of David. - -11:6 And David said, Whosoever smiteth the Jebusites first shall be -chief and captain. So Joab the son of Zeruiah went first up, and was -chief. - -11:7 And David dwelt in the castle; therefore they called it the city -of David. - -11:8 And he built the city round about, even from Millo round about: -and Joab repaired the rest of the city. - -11:9 So David waxed greater and greater: for the LORD of hosts was -with him. - -11:10 These also are the chief of the mighty men whom David had, who -strengthened themselves with him in his kingdom, and with all Israel, -to make him king, according to the word of the LORD concerning Israel. - -11:11 And this is the number of the mighty men whom David had; -Jashobeam, an Hachmonite, the chief of the captains: he lifted up his -spear against three hundred slain by him at one time. - -11:12 And after him was Eleazar the son of Dodo, the Ahohite, who was -one of the three mighties. - -11:13 He was with David at Pasdammim, and there the Philistines were -gathered together to battle, where was a parcel of ground full of -barley; and the people fled from before the Philistines. - -11:14 And they set themselves in the midst of that parcel, and -delivered it, and slew the Philistines; and the LORD saved them by a -great deliverance. - -11:15 Now three of the thirty captains went down to the rock to David, -into the cave of Adullam; and the host of the Philistines encamped in -the valley of Rephaim. - -11:16 And David was then in the hold, and the Philistines' garrison -was then at Bethlehem. - -11:17 And David longed, and said, Oh that one would give me drink of -the water of the well of Bethlehem, that is at the gate! 11:18 And -the three brake through the host of the Philistines, and drew water -out of the well of Bethlehem, that was by the gate, and took it, and -brought it to David: but David would not drink of it, but poured it -out to the LORD. - -11:19 And said, My God forbid it me, that I should do this thing: -shall I drink the blood of these men that have put their lives in -jeopardy? for with the jeopardy of their lives they brought it. -Therefore he would not drink it. - -These things did these three mightiest. - -11:20 And Abishai the brother of Joab, he was chief of the three: for -lifting up his spear against three hundred, he slew them, and had a -name among the three. - -11:21 Of the three, he was more honourable than the two; for he was -their captain: howbeit he attained not to the first three. - -11:22 Benaiah the son of Jehoiada, the son of a valiant man of -Kabzeel, who had done many acts; he slew two lionlike men of Moab: -also he went down and slew a lion in a pit in a snowy day. - -11:23 And he slew an Egyptian, a man of great stature, five cubits -high; and in the Egyptian's hand was a spear like a weaver's beam; and -he went down to him with a staff, and plucked the spear out of the -Egyptian's hand, and slew him with his own spear. - -11:24 These things did Benaiah the son of Jehoiada, and had the name -among the three mighties. - -11:25 Behold, he was honourable among the thirty, but attained not to -the first three: and David set him over his guard. - -11:26 Also the valiant men of the armies were, Asahel the brother of -Joab, Elhanan the son of Dodo of Bethlehem, 11:27 Shammoth the -Harorite, Helez the Pelonite, 11:28 Ira the son of Ikkesh the Tekoite, -Abiezer the Antothite, 11:29 Sibbecai the Hushathite, Ilai the -Ahohite, 11:30 Maharai the Netophathite, Heled the son of Baanah the -Netophathite, 11:31 Ithai the son of Ribai of Gibeah, that pertained -to the children of Benjamin, Benaiah the Pirathonite, 11:32 Hurai of -the brooks of Gaash, Abiel the Arbathite, 11:33 Azmaveth the -Baharumite, Eliahba the Shaalbonite, 11:34 The sons of Hashem the -Gizonite, Jonathan the son of Shage the Hararite, 11:35 Ahiam the son -of Sacar the Hararite, Eliphal the son of Ur, 11:36 Hepher the -Mecherathite, Ahijah the Pelonite, 11:37 Hezro the Carmelite, Naarai -the son of Ezbai, 11:38 Joel the brother of Nathan, Mibhar the son of -Haggeri, 11:39 Zelek the Ammonite, Naharai the Berothite, the -armourbearer of Joab the son of Zeruiah, 11:40 Ira the Ithrite, Gareb -the Ithrite, 11:41 Uriah the Hittite, Zabad the son of Ahlai, 11:42 -Adina the son of Shiza the Reubenite, a captain of the Reubenites, and -thirty with him, 11:43 Hanan the son of Maachah, and Joshaphat the -Mithnite, 11:44 Uzzia the Ashterathite, Shama and Jehiel the sons of -Hothan the Aroerite, 11:45 Jediael the son of Shimri, and Joha his -brother, the Tizite, 11:46 Eliel the Mahavite, and Jeribai, and -Joshaviah, the sons of Elnaam, and Ithmah the Moabite, 11:47 Eliel, -and Obed, and Jasiel the Mesobaite. - -12:1 Now these are they that came to David to Ziklag, while he yet -kept himself close because of Saul the son of Kish: and they were -among the mighty men, helpers of the war. - -12:2 They were armed with bows, and could use both the right hand and -the left in hurling stones and shooting arrows out of a bow, even of -Saul's brethren of Benjamin. - -12:3 The chief was Ahiezer, then Joash, the sons of Shemaah the -Gibeathite; and Jeziel, and Pelet, the sons of Azmaveth; and Berachah, -and Jehu the Antothite. - -12:4 And Ismaiah the Gibeonite, a mighty man among the thirty, and -over the thirty; and Jeremiah, and Jahaziel, and Johanan, and Josabad -the Gederathite, 12:5 Eluzai, and Jerimoth, and Bealiah, and -Shemariah, and Shephatiah the Haruphite, 12:6 Elkanah, and Jesiah, and -Azareel, and Joezer, and Jashobeam, the Korhites, 12:7 And Joelah, and -Zebadiah, the sons of Jeroham of Gedor. - -12:8 And of the Gadites there separated themselves unto David into the -hold to the wilderness men of might, and men of war fit for the -battle, that could handle shield and buckler, whose faces were like -the faces of lions, and were as swift as the roes upon the mountains; -12:9 Ezer the first, Obadiah the second, Eliab the third, 12:10 -Mishmannah the fourth, Jeremiah the fifth, 12:11 Attai the sixth, -Eliel the seventh, 12:12 Johanan the eighth, Elzabad the ninth, 12:13 -Jeremiah the tenth, Machbanai the eleventh. - -12:14 These were of the sons of Gad, captains of the host: one of the -least was over an hundred, and the greatest over a thousand. - -12:15 These are they that went over Jordan in the first month, when it -had overflown all his banks; and they put to flight all them of the -valleys, both toward the east, and toward the west. - -12:16 And there came of the children of Benjamin and Judah to the hold -unto David. - -12:17 And David went out to meet them, and answered and said unto -them, If ye be come peaceably unto me to help me, mine heart shall be -knit unto you: but if ye be come to betray me to mine enemies, seeing -there is no wrong in mine hands, the God of our fathers look thereon, -and rebuke it. - -12:18 Then the spirit came upon Amasai, who was chief of the captains, -and he said, Thine are we, David, and on thy side, thou son of Jesse: -peace, peace be unto thee, and peace be to thine helpers; for thy God -helpeth thee. - -Then David received them, and made them captains of the band. - -12:19 And there fell some of Manasseh to David, when he came with the -Philistines against Saul to battle: but they helped them not: for the -lords of the Philistines upon advisement sent him away, saying, He -will fall to his master Saul to the jeopardy of our heads. - -12:20 As he went to Ziklag, there fell to him of Manasseh, Adnah, and -Jozabad, and Jediael, and Michael, and Jozabad, and Elihu, and -Zilthai, captains of the thousands that were of Manasseh. - -12:21 And they helped David against the band of the rovers: for they -were all mighty men of valour, and were captains in the host. - -12:22 For at that time day by day there came to David to help him, -until it was a great host, like the host of God. - -12:23 And these are the numbers of the bands that were ready armed to -the war, and came to David to Hebron, to turn the kingdom of Saul to -him, according to the word of the LORD. - -12:24 The children of Judah that bare shield and spear were six -thousand and eight hundred, ready armed to the war. - -12:25 Of the children of Simeon, mighty men of valour for the war, -seven thousand and one hundred. - -12:26 Of the children of Levi four thousand and six hundred. - -12:27 And Jehoiada was the leader of the Aaronites, and with him were -three thousand and seven hundred; 12:28 And Zadok, a young man mighty -of valour, and of his father's house twenty and two captains. - -12:29 And of the children of Benjamin, the kindred of Saul, three -thousand: for hitherto the greatest part of them had kept the ward of -the house of Saul. - -12:30 And of the children of Ephraim twenty thousand and eight -hundred, mighty men of valour, famous throughout the house of their -fathers. - -12:31 And of the half tribe of Manasseh eighteen thousand, which were -expressed by name, to come and make David king. - -12:32 And of the children of Issachar, which were men that had -understanding of the times, to know what Israel ought to do; the heads -of them were two hundred; and all their brethren were at their -commandment. - -12:33 Of Zebulun, such as went forth to battle, expert in war, with -all instruments of war, fifty thousand, which could keep rank: they -were not of double heart. - -12:34 And of Naphtali a thousand captains, and with them with shield -and spear thirty and seven thousand. - -12:35 And of the Danites expert in war twenty and eight thousand and -six hundred. - -12:36 And of Asher, such as went forth to battle, expert in war, forty -thousand. - -12:37 And on the other side of Jordan, of the Reubenites, and the -Gadites, and of the half tribe of Manasseh, with all manner of -instruments of war for the battle, an hundred and twenty thousand. - -12:38 All these men of war, that could keep rank, came with a perfect -heart to Hebron, to make David king over all Israel: and all the rest -also of Israel were of one heart to make David king. - -12:39 And there they were with David three days, eating and drinking: -for their brethren had prepared for them. - -12:40 Moreover they that were nigh them, even unto Issachar and -Zebulun and Naphtali, brought bread on asses, and on camels, and on -mules, and on oxen, and meat, meal, cakes of figs, and bunches of -raisins, and wine, and oil, and oxen, and sheep abundantly: for there -was joy in Israel. - -13:1 And David consulted with the captains of thousands and hundreds, -and with every leader. - -13:2 And David said unto all the congregation of Israel, If it seem -good unto you, and that it be of the LORD our God, let us send abroad -unto our brethren every where, that are left in all the land of -Israel, and with them also to the priests and Levites which are in -their cities and suburbs, that they may gather themselves unto us: -13:3 And let us bring again the ark of our God to us: for we enquired -not at it in the days of Saul. - -13:4 And all the congregation said that they would do so: for the -thing was right in the eyes of all the people. - -13:5 So David gathered all Israel together, from Shihor of Egypt even -unto the entering of Hemath, to bring the ark of God from -Kirjathjearim. - -13:6 And David went up, and all Israel, to Baalah, that is, to -Kirjathjearim, which belonged to Judah, to bring up thence the ark of -God the LORD, that dwelleth between the cherubims, whose name is -called on it. - -13:7 And they carried the ark of God in a new cart out of the house of -Abinadab: and Uzza and Ahio drave the cart. - -13:8 And David and all Israel played before God with all their might, -and with singing, and with harps, and with psalteries, and with -timbrels, and with cymbals, and with trumpets. - -13:9 And when they came unto the threshingfloor of Chidon, Uzza put -forth his hand to hold the ark; for the oxen stumbled. - -13:10 And the anger of the LORD was kindled against Uzza, and he smote -him, because he put his hand to the ark: and there he died before God. - -13:11 And David was displeased, because the LORD had made a breach -upon Uzza: wherefore that place is called Perezuzza to this day. - -13:12 And David was afraid of God that day, saying, How shall I bring -the ark of God home to me? 13:13 So David brought not the ark home to -himself to the city of David, but carried it aside into the house of -Obededom the Gittite. - -13:14 And the ark of God remained with the family of Obededom in his -house three months. And the LORD blessed the house of Obededom, and -all that he had. - -14:1 Now Hiram king of Tyre sent messengers to David, and timber of -cedars, with masons and carpenters, to build him an house. - -14:2 And David perceived that the LORD had confirmed him king over -Israel, for his kingdom was lifted up on high, because of his people -Israel. - -14:3 And David took more wives at Jerusalem: and David begat more sons -and daughters. - -14:4 Now these are the names of his children which he had in -Jerusalem; Shammua, and Shobab, Nathan, and Solomon, 14:5 And Ibhar, -and Elishua, and Elpalet, 14:6 And Nogah, and Nepheg, and Japhia, 14:7 -And Elishama, and Beeliada, and Eliphalet. - -14:8 And when the Philistines heard that David was anointed king over -all Israel, all the Philistines went up to seek David. And David heard -of it, and went out against them. - -14:9 And the Philistines came and spread themselves in the valley of -Rephaim. - -14:10 And David enquired of God, saying, Shall I go up against the -Philistines? And wilt thou deliver them into mine hand? And the LORD -said unto him, Go up; for I will deliver them into thine hand. - -14:11 So they came up to Baalperazim; and David smote them there. Then -David said, God hath broken in upon mine enemies by mine hand like the -breaking forth of waters: therefore they called the name of that place -Baalperazim. - -14:12 And when they had left their gods there, David gave a -commandment, and they were burned with fire. - -14:13 And the Philistines yet again spread themselves abroad in the -valley. - -14:14 Therefore David enquired again of God; and God said unto him, Go -not up after them; turn away from them, and come upon them over -against the mulberry trees. - -14:15 And it shall be, when thou shalt hear a sound of going in the -tops of the mulberry trees, that then thou shalt go out to battle: for -God is gone forth before thee to smite the host of the Philistines. - -14:16 David therefore did as God commanded him: and they smote the -host of the Philistines from Gibeon even to Gazer. - -14:17 And the fame of David went out into all lands; and the LORD -brought the fear of him upon all nations. - -15:1 And David made him houses in the city of David, and prepared a -place for the ark of God, and pitched for it a tent. - -15:2 Then David said, None ought to carry the ark of God but the -Levites: for them hath the LORD chosen to carry the ark of God, and to -minister unto him for ever. - -15:3 And David gathered all Israel together to Jerusalem, to bring up -the ark of the LORD unto his place, which he had prepared for it. - -15:4 And David assembled the children of Aaron, and the Levites: 15:5 -Of the sons of Kohath; Uriel the chief, and his brethren an hundred -and twenty: 15:6 Of the sons of Merari; Asaiah the chief, and his -brethren two hundred and twenty: 15:7 Of the sons of Gershom; Joel the -chief and his brethren an hundred and thirty: 15:8 Of the sons of -Elizaphan; Shemaiah the chief, and his brethren two hundred: 15:9 Of -the sons of Hebron; Eliel the chief, and his brethren fourscore: 15:10 -Of the sons of Uzziel; Amminadab the chief, and his brethren an -hundred and twelve. - -15:11 And David called for Zadok and Abiathar the priests, and for the -Levites, for Uriel, Asaiah, and Joel, Shemaiah, and Eliel, and -Amminadab, 15:12 And said unto them, Ye are the chief of the fathers -of the Levites: sanctify yourselves, both ye and your brethren, that -ye may bring up the ark of the LORD God of Israel unto the place that -I have prepared for it. - -15:13 For because ye did it not at the first, the LORD our God made a -breach upon us, for that we sought him not after the due order. - -15:14 So the priests and the Levites sanctified themselves to bring up -the ark of the LORD God of Israel. - -15:15 And the children of the Levites bare the ark of God upon their -shoulders with the staves thereon, as Moses commanded according to the -word of the LORD. - -15:16 And David spake to the chief of the Levites to appoint their -brethren to be the singers with instruments of musick, psalteries and -harps and cymbals, sounding, by lifting up the voice with joy. - -15:17 So the Levites appointed Heman the son of Joel; and of his -brethren, Asaph the son of Berechiah; and of the sons of Merari their -brethren, Ethan the son of Kushaiah; 15:18 And with them their -brethren of the second degree, Zechariah, Ben, and Jaaziel, and -Shemiramoth, and Jehiel, and Unni, Eliab, and Benaiah, and Maaseiah, -and Mattithiah, and Elipheleh, and Mikneiah, and Obededom, and Jeiel, -the porters. - -15:19 So the singers, Heman, Asaph, and Ethan, were appointed to sound -with cymbals of brass; 15:20 And Zechariah, and Aziel, and -Shemiramoth, and Jehiel, and Unni, and Eliab, and Maaseiah, and -Benaiah, with psalteries on Alamoth; 15:21 And Mattithiah, and -Elipheleh, and Mikneiah, and Obededom, and Jeiel, and Azaziah, with -harps on the Sheminith to excel. - -15:22 And Chenaniah, chief of the Levites, was for song: he instructed -about the song, because he was skilful. - -15:23 And Berechiah and Elkanah were doorkeepers for the ark. - -15:24 And Shebaniah, and Jehoshaphat, and Nethaneel, and Amasai, and -Zechariah, and Benaiah, and Eliezer, the priests, did blow with the -trumpets before the ark of God: and Obededom and Jehiah were -doorkeepers for the ark. - -15:25 So David, and the elders of Israel, and the captains over -thousands, went to bring up the ark of the covenant of the LORD out of -the house of Obededom with joy. - -15:26 And it came to pass, when God helped the Levites that bare the -ark of the covenant of the LORD, that they offered seven bullocks and -seven rams. - -15:27 And David was clothed with a robe of fine linen, and all the -Levites that bare the ark, and the singers, and Chenaniah the master -of the song with the singers: David also had upon him an ephod of -linen. - -15:28 Thus all Israel brought up the ark of the covenant of the LORD -with shouting, and with sound of the cornet, and with trumpets, and -with cymbals, making a noise with psalteries and harps. - -15:29 And it came to pass, as the ark of the covenant of the LORD came -to the city of David, that Michal, the daughter of Saul looking out at -a window saw king David dancing and playing: and she despised him in -her heart. - -16:1 So they brought the ark of God, and set it in the midst of the -tent that David had pitched for it: and they offered burnt sacrifices -and peace offerings before God. - -16:2 And when David had made an end of offering the burnt offerings -and the peace offerings, he blessed the people in the name of the -LORD. - -16:3 And he dealt to every one of Israel, both man and woman, to every -one a loaf of bread, and a good piece of flesh, and a flagon of wine. - -16:4 And he appointed certain of the Levites to minister before the -ark of the LORD, and to record, and to thank and praise the LORD God -of Israel: 16:5 Asaph the chief, and next to him Zechariah, Jeiel, and -Shemiramoth, and Jehiel, and Mattithiah, and Eliab, and Benaiah, and -Obededom: and Jeiel with psalteries and with harps; but Asaph made a -sound with cymbals; 16:6 Benaiah also and Jahaziel the priests with -trumpets continually before the ark of the covenant of God. - -16:7 Then on that day David delivered first this psalm to thank the -LORD into the hand of Asaph and his brethren. - -16:8 Give thanks unto the LORD, call upon his name, make known his -deeds among the people. - -16:9 Sing unto him, sing psalms unto him, talk ye of all his wondrous -works. - -16:10 Glory ye in his holy name: let the heart of them rejoice that -seek the LORD. - -16:11 Seek the LORD and his strength, seek his face continually. - -16:12 Remember his marvellous works that he hath done, his wonders, -and the judgments of his mouth; 16:13 O ye seed of Israel his servant, -ye children of Jacob, his chosen ones. - -16:14 He is the LORD our God; his judgments are in all the earth. - -16:15 Be ye mindful always of his covenant; the word which he -commanded to a thousand generations; 16:16 Even of the covenant which -he made with Abraham, and of his oath unto Isaac; 16:17 And hath -confirmed the same to Jacob for a law, and to Israel for an -everlasting covenant, 16:18 Saying, Unto thee will I give the land of -Canaan, the lot of your inheritance; 16:19 When ye were but few, even -a few, and strangers in it. - -16:20 And when they went from nation to nation, and from one kingdom -to another people; 16:21 He suffered no man to do them wrong: yea, he -reproved kings for their sakes, 16:22 Saying, Touch not mine anointed, -and do my prophets no harm. - -16:23 Sing unto the LORD, all the earth; shew forth from day to day -his salvation. - -16:24 Declare his glory among the heathen; his marvellous works among -all nations. - -16:25 For great is the LORD, and greatly to be praised: he also is to -be feared above all gods. - -16:26 For all the gods of the people are idols: but the LORD made the -heavens. - -16:27 Glory and honour are in his presence; strength and gladness are -in his place. - -16:28 Give unto the LORD, ye kindreds of the people, give unto the -LORD glory and strength. - -16:29 Give unto the LORD the glory due unto his name: bring an -offering, and come before him: worship the LORD in the beauty of -holiness. - -16:30 Fear before him, all the earth: the world also shall be stable, -that it be not moved. - -16:31 Let the heavens be glad, and let the earth rejoice: and let men -say among the nations, The LORD reigneth. - -16:32 Let the sea roar, and the fulness thereof: let the fields -rejoice, and all that is therein. - -16:33 Then shall the trees of the wood sing out at the presence of the -LORD, because he cometh to judge the earth. - -16:34 O give thanks unto the LORD; for he is good; for his mercy -endureth for ever. - -16:35 And say ye, Save us, O God of our salvation, and gather us -together, and deliver us from the heathen, that we may give thanks to -thy holy name, and glory in thy praise. - -16:36 Blessed be the LORD God of Israel for ever and ever. And all the -people said, Amen, and praised the LORD. - -16:37 So he left there before the ark of the covenant of the LORD -Asaph and his brethren, to minister before the ark continually, as -every day's work required: 16:38 And Obededom with their brethren, -threescore and eight; Obededom also the son of Jeduthun and Hosah to -be porters: 16:39 And Zadok the priest, and his brethren the priests, -before the tabernacle of the LORD in the high place that was at -Gibeon, 16:40 To offer burnt offerings unto the LORD upon the altar of -the burnt offering continually morning and evening, and to do -according to all that is written in the law of the LORD, which he -commanded Israel; 16:41 And with them Heman and Jeduthun, and the rest -that were chosen, who were expressed by name, to give thanks to the -LORD, because his mercy endureth for ever; 16:42 And with them Heman -and Jeduthun with trumpets and cymbals for those that should make a -sound, and with musical instruments of God. And the sons of Jeduthun -were porters. - -16:43 And all the people departed every man to his house: and David -returned to bless his house. - -17:1 Now it came to pass, as David sat in his house, that David said -to Nathan the prophet, Lo, I dwell in an house of cedars, but the ark -of the covenant of the LORD remaineth under curtains. - -17:2 Then Nathan said unto David, Do all that is in thine heart; for -God is with thee. - -17:3 And it came to pass the same night, that the word of God came to -Nathan, saying, 17:4 Go and tell David my servant, Thus saith the -LORD, Thou shalt not build me an house to dwell in: 17:5 For I have -not dwelt in an house since the day that I brought up Israel unto this -day; but have gone from tent to tent, and from one tabernacle to -another. - -17:6 Wheresoever I have walked with all Israel, spake I a word to any -of the judges of Israel, whom I commanded to feed my people, saying, -Why have ye not built me an house of cedars? 17:7 Now therefore thus -shalt thou say unto my servant David, Thus saith the LORD of hosts, I -took thee from the sheepcote, even from following the sheep, that thou -shouldest be ruler over my people Israel: 17:8 And I have been with -thee whithersoever thou hast walked, and have cut off all thine -enemies from before thee, and have made thee a name like the name of -the great men that are in the earth. - -17:9 Also I will ordain a place for my people Israel, and will plant -them, and they shall dwell in their place, and shall be moved no more; -neither shall the children of wickedness waste them any more, as at -the beginning, 17:10 And since the time that I commanded judges to be -over my people Israel. Moreover I will subdue all thine enemies. -Furthermore I tell thee that the LORD will build thee an house. - -17:11 And it shall come to pass, when thy days be expired that thou -must go to be with thy fathers, that I will raise up thy seed after -thee, which shall be of thy sons; and I will establish his kingdom. - -17:12 He shall build me an house, and I will stablish his throne for -ever. - -17:13 I will be his father, and he shall be my son: and I will not -take my mercy away from him, as I took it from him that was before -thee: 17:14 But I will settle him in mine house and in my kingdom for -ever: and his throne shall be established for evermore. - -17:15 According to all these words, and according to all this vision, -so did Nathan speak unto David. - -17:16 And David the king came and sat before the LORD, and said, Who -am I, O LORD God, and what is mine house, that thou hast brought me -hitherto? 17:17 And yet this was a small thing in thine eyes, O God; -for thou hast also spoken of thy servant's house for a great while to -come, and hast regarded me according to the estate of a man of high -degree, O LORD God. - -17:18 What can David speak more to thee for the honour of thy servant? -for thou knowest thy servant. - -17:19 O LORD, for thy servant's sake, and according to thine own -heart, hast thou done all this greatness, in making known all these -great things. - -17:20 O LORD, there is none like thee, neither is there any God beside -thee, according to all that we have heard with our ears. - -17:21 And what one nation in the earth is like thy people Israel, whom -God went to redeem to be his own people, to make thee a name of -greatness and terribleness, by driving out nations from before thy -people whom thou hast redeemed out of Egypt? 17:22 For thy people -Israel didst thou make thine own people for ever; and thou, LORD, -becamest their God. - -17:23 Therefore now, LORD, let the thing that thou hast spoken -concerning thy servant and concerning his house be established for -ever, and do as thou hast said. - -17:24 Let it even be established, that thy name may be magnified for -ever, saying, The LORD of hosts is the God of Israel, even a God to -Israel: and let the house of David thy servant be established before -thee. - -17:25 For thou, O my God, hast told thy servant that thou wilt build -him an house: therefore thy servant hath found in his heart to pray -before thee. - -17:26 And now, LORD, thou art God, and hast promised this goodness -unto thy servant: 17:27 Now therefore let it please thee to bless the -house of thy servant, that it may be before thee for ever: for thou -blessest, O LORD, and it shall be blessed for ever. - -18:1 Now after this it came to pass, that David smote the Philistines, -and subdued them, and took Gath and her towns out of the hand of the -Philistines. - -18:2 And he smote Moab; and the Moabites became David's servants, and -brought gifts. - -18:3 And David smote Hadarezer king of Zobah unto Hamath, as he went -to stablish his dominion by the river Euphrates. - -18:4 And David took from him a thousand chariots, and seven thousand -horsemen, and twenty thousand footmen: David also houghed all the -chariot horses, but reserved of them an hundred chariots. - -18:5 And when the Syrians of Damascus came to help Hadarezer king of -Zobah, David slew of the Syrians two and twenty thousand men. - -18:6 Then David put garrisons in Syriadamascus; and the Syrians became -David's servants, and brought gifts. Thus the LORD preserved David -whithersoever he went. - -18:7 And David took the shields of gold that were on the servants of -Hadarezer, and brought them to Jerusalem. - -18:8 Likewise from Tibhath, and from Chun, cities of Hadarezer, -brought David very much brass, wherewith Solomon made the brasen sea, -and the pillars, and the vessels of brass. - -18:9 Now when Tou king of Hamath heard how David had smitten all the -host of Hadarezer king of Zobah; 18:10 He sent Hadoram his son to king -David, to enquire of his welfare, and to congratulate him, because he -had fought against Hadarezer, and smitten him; (for Hadarezer had war -with Tou;) and with him all manner of vessels of gold and silver and -brass. - -18:11 Them also king David dedicated unto the LORD, with the silver -and the gold that he brought from all these nations; from Edom, and -from Moab, and from the children of Ammon, and from the Philistines, -and from Amalek. - -18:12 Moreover Abishai the son of Zeruiah slew of the Edomites in the -valley of salt eighteen thousand. - -18:13 And he put garrisons in Edom; and all the Edomites became -David's servants. Thus the LORD preserved David whithersoever he went. - -18:14 So David reigned over all Israel, and executed judgment and -justice among all his people. - -18:15 And Joab the son of Zeruiah was over the host; and Jehoshaphat -the son of Ahilud, recorder. - -18:16 And Zadok the son of Ahitub, and Abimelech the son of Abiathar, -were the priests; and Shavsha was scribe; 18:17 And Benaiah the son of -Jehoiada was over the Cherethites and the Pelethites; and the sons of -David were chief about the king. - -19:1 Now it came to pass after this, that Nahash the king of the -children of Ammon died, and his son reigned in his stead. - -19:2 And David said, I will shew kindness unto Hanun the son of -Nahash, because his father shewed kindness to me. And David sent -messengers to comfort him concerning his father. So the servants of -David came into the land of the children of Ammon to Hanun, to comfort -him. - -19:3 But the princes of the children of Ammon said to Hanun, Thinkest -thou that David doth honour thy father, that he hath sent comforters -unto thee? are not his servants come unto thee for to search, and to -overthrow, and to spy out the land? 19:4 Wherefore Hanun took David's -servants, and shaved them, and cut off their garments in the midst -hard by their buttocks, and sent them away. - -19:5 Then there went certain, and told David how the men were served. -And he sent to meet them: for the men were greatly ashamed. And the -king said, Tarry at Jericho until your beards be grown, and then -return. - -19:6 And when the children of Ammon saw that they had made themselves -odious to David, Hanun and the children of Ammon sent a thousand -talents of silver to hire them chariots and horsemen out of -Mesopotamia, and out of Syriamaachah, and out of Zobah. - -19:7 So they hired thirty and two thousand chariots, and the king of -Maachah and his people; who came and pitched before Medeba. And the -children of Ammon gathered themselves together from their cities, and -came to battle. - -19:8 And when David heard of it, he sent Joab, and all the host of the -mighty men. - -19:9 And the children of Ammon came out, and put the battle in array -before the gate of the city: and the kings that were come were by -themselves in the field. - -19:10 Now when Joab saw that the battle was set against him before and -behind, he chose out of all the choice of Israel, and put them in -array against the Syrians. - -19:11 And the rest of the people he delivered unto the hand of Abishai -his brother, and they set themselves in array against the children of -Ammon. - -19:12 And he said, If the Syrians be too strong for me, then thou -shalt help me: but if the children of Ammon be too strong for thee, -then I will help thee. - -19:13 Be of good courage, and let us behave ourselves valiantly for -our people, and for the cities of our God: and let the LORD do that -which is good in his sight. - -19:14 So Joab and the people that were with him drew nigh before the -Syrians unto the battle; and they fled before him. - -19:15 And when the children of Ammon saw that the Syrians were fled, -they likewise fled before Abishai his brother, and entered into the -city. Then Joab came to Jerusalem. - -19:16 And when the Syrians saw that they were put to the worse before -Israel, they sent messengers, and drew forth the Syrians that were -beyond the river: and Shophach the captain of the host of Hadarezer -went before them. - -19:17 And it was told David; and he gathered all Israel, and passed -over Jordan, and came upon them, and set the battle in array against -them. So when David had put the battle in array against the Syrians, -they fought with him. - -19:18 But the Syrians fled before Israel; and David slew of the -Syrians seven thousand men which fought in chariots, and forty -thousand footmen, and killed Shophach the captain of the host. - -19:19 And when the servants of Hadarezer saw that they were put to the -worse before Israel, they made peace with David, and became his -servants: neither would the Syrians help the children of Ammon any -more. - -20:1 And it came to pass, that after the year was expired, at the time -that kings go out to battle, Joab led forth the power of the army, and -wasted the country of the children of Ammon, and came and besieged -Rabbah. But David tarried at Jerusalem. And Joab smote Rabbah, and -destroyed it. - -20:2 And David took the crown of their king from off his head, and -found it to weigh a talent of gold, and there were precious stones in -it; and it was set upon David's head: and he brought also exceeding -much spoil out of the city. - -20:3 And he brought out the people that were in it, and cut them with -saws, and with harrows of iron, and with axes. Even so dealt David -with all the cities of the children of Ammon. And David and all the -people returned to Jerusalem. - -20:4 And it came to pass after this, that there arose war at Gezer -with the Philistines; at which time Sibbechai the Hushathite slew -Sippai, that was of the children of the giant: and they were subdued. - -20:5 And there was war again with the Philistines; and Elhanan the son -of Jair slew Lahmi the brother of Goliath the Gittite, whose spear -staff was like a weaver's beam. - -20:6 And yet again there was war at Gath, where was a man of great -stature, whose fingers and toes were four and twenty, six on each -hand, and six on each foot and he also was the son of the giant. - -20:7 But when he defied Israel, Jonathan the son of Shimea David's -brother slew him. - -20:8 These were born unto the giant in Gath; and they fell by the hand -of David, and by the hand of his servants. - -21:1 And Satan stood up against Israel, and provoked David to number -Israel. - -21:2 And David said to Joab and to the rulers of the people, Go, -number Israel from Beersheba even to Dan; and bring the number of them -to me, that I may know it. - -21:3 And Joab answered, The LORD make his people an hundred times so -many more as they be: but, my lord the king, are they not all my -lord's servants? why then doth my lord require this thing? why will -he be a cause of trespass to Israel? 21:4 Nevertheless the king's -word prevailed against Joab. Wherefore Joab departed, and went -throughout all Israel, and came to Jerusalem. - -21:5 And Joab gave the sum of the number of the people unto David. And -all they of Israel were a thousand thousand and an hundred thousand -men that drew sword: and Judah was four hundred threescore and ten -thousand men that drew sword. - -21:6 But Levi and Benjamin counted he not among them: for the king's -word was abominable to Joab. - -21:7 And God was displeased with this thing; therefore he smote -Israel. - -21:8 And David said unto God, I have sinned greatly, because I have -done this thing: but now, I beseech thee, do away the iniquity of thy -servant; for I have done very foolishly. - -21:9 And the LORD spake unto Gad, David's seer, saying, 21:10 Go and -tell David, saying, Thus saith the LORD, I offer thee three things: -choose thee one of them, that I may do it unto thee. - -21:11 So Gad came to David, and said unto him, Thus saith the LORD, -Choose thee 21:12 Either three years' famine; or three months to be -destroyed before thy foes, while that the sword of thine enemies -overtaketh thee; or else three days the sword of the LORD, even the -pestilence, in the land, and the angel of the LORD destroying -throughout all the coasts of Israel. Now therefore advise thyself what -word I shall bring again to him that sent me. - -21:13 And David said unto Gad, I am in a great strait: let me fall now -into the hand of the LORD; for very great are his mercies: but let me -not fall into the hand of man. - -21:14 So the LORD sent pestilence upon Israel: and there fell of -Israel seventy thousand men. - -21:15 And God sent an angel unto Jerusalem to destroy it: and as he -was destroying, the LORD beheld, and he repented him of the evil, and -said to the angel that destroyed, It is enough, stay now thine hand. -And the angel of the LORD stood by the threshingfloor of Ornan the -Jebusite. - -21:16 And David lifted up his eyes, and saw the angel of the LORD -stand between the earth and the heaven, having a drawn sword in his -hand stretched out over Jerusalem. Then David and the elders of -Israel, who were clothed in sackcloth, fell upon their faces. - -21:17 And David said unto God, Is it not I that commanded the people -to be numbered? even I it is that have sinned and done evil indeed; -but as for these sheep, what have they done? let thine hand, I pray -thee, O LORD my God, be on me, and on my father's house; but not on -thy people, that they should be plagued. - -21:18 Then the angel of the LORD commanded Gad to say to David, that -David should go up, and set up an altar unto the LORD in the -threshingfloor of Ornan the Jebusite. - -21:19 And David went up at the saying of Gad, which he spake in the -name of the LORD. - -21:20 And Ornan turned back, and saw the angel; and his four sons with -him hid themselves. Now Ornan was threshing wheat. - -21:21 And as David came to Ornan, Ornan looked and saw David, and went -out of the threshingfloor, and bowed himself to David with his face to -the ground. - -21:22 Then David said to Ornan, Grant me the place of this -threshingfloor, that I may build an altar therein unto the LORD: thou -shalt grant it me for the full price: that the plague may be stayed -from the people. - -21:23 And Ornan said unto David, Take it to thee, and let my lord the -king do that which is good in his eyes: lo, I give thee the oxen also -for burnt offerings, and the threshing instruments for wood, and the -wheat for the meat offering; I give it all. - -21:24 And king David said to Ornan, Nay; but I will verily buy it for -the full price: for I will not take that which is thine for the LORD, -nor offer burnt offerings without cost. - -21:25 So David gave to Ornan for the place six hundred shekels of gold -by weight. - -21:26 And David built there an altar unto the LORD, and offered burnt -offerings and peace offerings, and called upon the LORD; and he -answered him from heaven by fire upon the altar of burnt offering. - -21:27 And the LORD commanded the angel; and he put up his sword again -into the sheath thereof. - -21:28 At that time when David saw that the LORD had answered him in -the threshingfloor of Ornan the Jebusite, then he sacrificed there. - -21:29 For the tabernacle of the LORD, which Moses made in the -wilderness, and the altar of the burnt offering, were at that season -in the high place at Gibeon. - -21:30 But David could not go before it to enquire of God: for he was -afraid because of the sword of the angel of the LORD. - -22:1 Then David said, This is the house of the LORD God, and this is -the altar of the burnt offering for Israel. - -22:2 And David commanded to gather together the strangers that were in -the land of Israel; and he set masons to hew wrought stones to build -the house of God. - -22:3 And David prepared iron in abundance for the nails for the doors -of the gates, and for the joinings; and brass in abundance without -weight; 22:4 Also cedar trees in abundance: for the Zidonians and they -of Tyre brought much cedar wood to David. - -22:5 And David said, Solomon my son is young and tender, and the house -that is to be builded for the LORD must be exceeding magnifical, of -fame and of glory throughout all countries: I will therefore now make -preparation for it. So David prepared abundantly before his death. - -22:6 Then he called for Solomon his son, and charged him to build an -house for the LORD God of Israel. - -22:7 And David said to Solomon, My son, as for me, it was in my mind -to build an house unto the name of the LORD my God: 22:8 But the word -of the LORD came to me, saying, Thou hast shed blood abundantly, and -hast made great wars: thou shalt not build an house unto my name, -because thou hast shed much blood upon the earth in my sight. - -22:9 Behold, a son shall be born to thee, who shall be a man of rest; -and I will give him rest from all his enemies round about: for his -name shall be Solomon, and I will give peace and quietness unto Israel -in his days. - -22:10 He shall build an house for my name; and he shall be my son, and -I will be his father; and I will establish the throne of his kingdom -over Israel for ever. - -22:11 Now, my son, the LORD be with thee; and prosper thou, and build -the house of the LORD thy God, as he hath said of thee. - -22:12 Only the LORD give thee wisdom and understanding, and give thee -charge concerning Israel, that thou mayest keep the law of the LORD -thy God. - -22:13 Then shalt thou prosper, if thou takest heed to fulfil the -statutes and judgments which the LORD charged Moses with concerning -Israel: be strong, and of good courage; dread not, nor be dismayed. - -22:14 Now, behold, in my trouble I have prepared for the house of the -LORD an hundred thousand talents of gold, and a thousand thousand -talents of silver; and of brass and iron without weight; for it is in -abundance: timber also and stone have I prepared; and thou mayest add -thereto. - -22:15 Moreover there are workmen with thee in abundance, hewers and -workers of stone and timber, and all manner of cunning men for every -manner of work. - -22:16 Of the gold, the silver, and the brass, and the iron, there is -no number. Arise therefore, and be doing, and the LORD be with thee. - -22:17 David also commanded all the princes of Israel to help Solomon -his son, saying, 22:18 Is not the LORD your God with you? and hath he -not given you rest on every side? for he hath given the inhabitants of -the land into mine hand; and the land is subdued before the LORD, and -before his people. - -22:19 Now set your heart and your soul to seek the LORD your God; -arise therefore, and build ye the sanctuary of the LORD God, to bring -the ark of the covenant of the LORD, and the holy vessels of God, into -the house that is to be built to the name of the LORD. - -23:1 So when David was old and full of days, he made Solomon his son -king over Israel. - -23:2 And he gathered together all the princes of Israel, with the -priests and the Levites. - -23:3 Now the Levites were numbered from the age of thirty years and -upward: and their number by their polls, man by man, was thirty and -eight thousand. - -23:4 Of which, twenty and four thousand were to set forward the work -of the house of the LORD; and six thousand were officers and judges: -23:5 Moreover four thousand were porters; and four thousand praised -the LORD with the instruments which I made, said David, to praise -therewith. - -23:6 And David divided them into courses among the sons of Levi, -namely, Gershon, Kohath, and Merari. - -23:7 Of the Gershonites were, Laadan, and Shimei. - -23:8 The sons of Laadan; the chief was Jehiel, and Zetham, and Joel, -three. - -23:9 The sons of Shimei; Shelomith, and Haziel, and Haran, three. -These were the chief of the fathers of Laadan. - -23:10 And the sons of Shimei were, Jahath, Zina, and Jeush, and -Beriah. - -These four were the sons of Shimei. - -23:11 And Jahath was the chief, and Zizah the second: but Jeush and -Beriah had not many sons; therefore they were in one reckoning, -according to their father's house. - -23:12 The sons of Kohath; Amram, Izhar, Hebron, and Uzziel, four. - -23:13 The sons of Amram; Aaron and Moses: and Aaron was separated, -that he should sanctify the most holy things, he and his sons for -ever, to burn incense before the LORD, to minister unto him, and to -bless in his name for ever. - -23:14 Now concerning Moses the man of God, his sons were named of the -tribe of Levi. - -23:15 The sons of Moses were, Gershom, and Eliezer. - -23:16 Of the sons of Gershom, Shebuel was the chief. - -23:17 And the sons of Eliezer were, Rehabiah the chief. And Eliezer -had none other sons; but the sons of Rehabiah were very many. - -23:18 Of the sons of Izhar; Shelomith the chief. - -23:19 Of the sons of Hebron; Jeriah the first, Amariah the second, -Jahaziel the third, and Jekameam the fourth. - -23:20 Of the sons of Uzziel; Micah the first and Jesiah the second. - -23:21 The sons of Merari; Mahli, and Mushi. The sons of Mahli; -Eleazar, and Kish. - -23:22 And Eleazar died, and had no sons, but daughters: and their -brethren the sons of Kish took them. - -23:23 The sons of Mushi; Mahli, and Eder, and Jeremoth, three. - -23:24 These were the sons of Levi after the house of their fathers; -even the chief of the fathers, as they were counted by number of names -by their polls, that did the work for the service of the house of the -LORD, from the age of twenty years and upward. - -23:25 For David said, The LORD God of Israel hath given rest unto his -people, that they may dwell in Jerusalem for ever: 23:26 And also unto -the Levites; they shall no more carry the tabernacle, nor any vessels -of it for the service thereof. - -23:27 For by the last words of David the Levites were numbered from -twenty years old and above: 23:28 Because their office was to wait on -the sons of Aaron for the service of the house of the LORD, in the -courts, and in the chambers, and in the purifying of all holy things, -and the work of the service of the house of God; 23:29 Both for the -shewbread, and for the fine flour for meat offering, and for the -unleavened cakes, and for that which is baked in the pan, and for that -which is fried, and for all manner of measure and size; 23:30 And to -stand every morning to thank and praise the LORD, and likewise at -even: 23:31 And to offer all burnt sacrifices unto the LORD in the -sabbaths, in the new moons, and on the set feasts, by number, -according to the order commanded unto them, continually before the -LORD: 23:32 And that they should keep the charge of the tabernacle of -the congregation, and the charge of the holy place, and the charge of -the sons of Aaron their brethren, in the service of the house of the -LORD. - -24:1 Now these are the divisions of the sons of Aaron. The sons of -Aaron; Nadab, and Abihu, Eleazar, and Ithamar. - -24:2 But Nadab and Abihu died before their father, and had no -children: therefore Eleazar and Ithamar executed the priest's office. - -24:3 And David distributed them, both Zadok of the sons of Eleazar, -and Ahimelech of the sons of Ithamar, according to their offices in -their service. - -24:4 And there were more chief men found of the sons of Eleazar than -of the sons of Ithamar, and thus were they divided. Among the sons of -Eleazar there were sixteen chief men of the house of their fathers, -and eight among the sons of Ithamar according to the house of their -fathers. - -24:5 Thus were they divided by lot, one sort with another; for the -governors of the sanctuary, and governors of the house of God, were of -the sons of Eleazar, and of the sons of Ithamar. - -24:6 And Shemaiah the son of Nethaneel the scribe, one of the Levites, -wrote them before the king, and the princes, and Zadok the priest, and -Ahimelech the son of Abiathar, and before the chief of the fathers of -the priests and Levites: one principal household being taken for -Eleazar, and one taken for Ithamar. - -24:7 Now the first lot came forth to Jehoiarib, the second to Jedaiah, -24:8 The third to Harim, the fourth to Seorim, 24:9 The fifth to -Malchijah, the sixth to Mijamin, 24:10 The seventh to Hakkoz, the -eighth to Abijah, 24:11 The ninth to Jeshuah, the tenth to Shecaniah, -24:12 The eleventh to Eliashib, the twelfth to Jakim, 24:13 The -thirteenth to Huppah, the fourteenth to Jeshebeab, 24:14 The fifteenth -to Bilgah, the sixteenth to Immer, 24:15 The seventeenth to Hezir, the -eighteenth to Aphses, 24:16 The nineteenth to Pethahiah, the twentieth -to Jehezekel, 24:17 The one and twentieth to Jachin, the two and -twentieth to Gamul, 24:18 The three and twentieth to Delaiah, the four -and twentieth to Maaziah. - -24:19 These were the orderings of them in their service to come into -the house of the LORD, according to their manner, under Aaron their -father, as the LORD God of Israel had commanded him. - -24:20 And the rest of the sons of Levi were these: Of the sons of -Amram; Shubael: of the sons of Shubael; Jehdeiah. - -24:21 Concerning Rehabiah: of the sons of Rehabiah, the first was -Isshiah. - -24:22 Of the Izharites; Shelomoth: of the sons of Shelomoth; Jahath. - -24:23 And the sons of Hebron; Jeriah the first, Amariah the second, -Jahaziel the third, Jekameam the fourth. - -24:24 Of the sons of Uzziel; Michah: of the sons of Michah; Shamir. - -24:25 The brother of Michah was Isshiah: of the sons of Isshiah; -Zechariah. - -24:26 The sons of Merari were Mahli and Mushi: the sons of Jaaziah; -Beno. - -24:27 The sons of Merari by Jaaziah; Beno, and Shoham, and Zaccur, and -Ibri. - -24:28 Of Mahli came Eleazar, who had no sons. - -24:29 Concerning Kish: the son of Kish was Jerahmeel. - -24:30 The sons also of Mushi; Mahli, and Eder, and Jerimoth. These -were the sons of the Levites after the house of their fathers. - -24:31 These likewise cast lots over against their brethren the sons of -Aaron in the presence of David the king, and Zadok, and Ahimelech, and -the chief of the fathers of the priests and Levites, even the -principal fathers over against their younger brethren. - -25:1 Moreover David and the captains of the host separated to the -service of the sons of Asaph, and of Heman, and of Jeduthun, who -should prophesy with harps, with psalteries, and with cymbals: and the -number of the workmen according to their service was: 25:2 Of the sons -of Asaph; Zaccur, and Joseph, and Nethaniah, and Asarelah, the sons of -Asaph under the hands of Asaph, which prophesied according to the -order of the king. - -25:3 Of Jeduthun: the sons of Jeduthun; Gedaliah, and Zeri, and -Jeshaiah, Hashabiah, and Mattithiah, six, under the hands of their -father Jeduthun, who prophesied with a harp, to give thanks and to -praise the LORD. - -25:4 Of Heman: the sons of Heman: Bukkiah, Mattaniah, Uzziel, Shebuel, -and Jerimoth, Hananiah, Hanani, Eliathah, Giddalti, and Romamtiezer, -Joshbekashah, Mallothi, Hothir, and Mahazioth: 25:5 All these were the -sons of Heman the king's seer in the words of God, to lift up the -horn. And God gave to Heman fourteen sons and three daughters. - -25:6 All these were under the hands of their father for song in the -house of the LORD, with cymbals, psalteries, and harps, for the -service of the house of God, according to the king's order to Asaph, -Jeduthun, and Heman. - -25:7 So the number of them, with their brethren that were instructed -in the songs of the LORD, even all that were cunning, was two hundred -fourscore and eight. - -25:8 And they cast lots, ward against ward, as well the small as the -great, the teacher as the scholar. - -25:9 Now the first lot came forth for Asaph to Joseph: the second to -Gedaliah, who with his brethren and sons were twelve: 25:10 The third -to Zaccur, he, his sons, and his brethren, were twelve: 25:11 The -fourth to Izri, he, his sons, and his brethren, were twelve: 25:12 The -fifth to Nethaniah, he, his sons, and his brethren, were twelve: 25:13 -The sixth to Bukkiah, he, his sons, and his brethren, were twelve: -25:14 The seventh to Jesharelah, he, his sons, and his brethren, were -twelve: 25:15 The eighth to Jeshaiah, he, his sons, and his brethren, -were twelve: 25:16 The ninth to Mattaniah, he, his sons, and his -brethren, were twelve: 25:17 The tenth to Shimei, he, his sons, and -his brethren, were twelve: 25:18 The eleventh to Azareel, he, his -sons, and his brethren, were twelve: 25:19 The twelfth to Hashabiah, -he, his sons, and his brethren, were twelve: 25:20 The thirteenth to -Shubael, he, his sons, and his brethren, were twelve: 25:21 The -fourteenth to Mattithiah, he, his sons, and his brethren, were twelve: -25:22 The fifteenth to Jeremoth, he, his sons, and his brethren, were -twelve: 25:23 The sixteenth to Hananiah, he, his sons, and his -brethren, were twelve: 25:24 The seventeenth to Joshbekashah, he, his -sons, and his brethren, were twelve: 25:25 The eighteenth to Hanani, -he, his sons, and his brethren, were twelve: 25:26 The nineteenth to -Mallothi, he, his sons, and his brethren, were twelve: 25:27 The -twentieth to Eliathah, he, his sons, and his brethren, were twelve: -25:28 The one and twentieth to Hothir, he, his sons, and his brethren, -were twelve: 25:29 The two and twentieth to Giddalti, he, his sons, -and his brethren, were twelve: 25:30 The three and twentieth to -Mahazioth, he, his sons, and his brethren, were twelve: 25:31 The four -and twentieth to Romamtiezer, he, his sons, and his brethren, were -twelve. - -26:1 Concerning the divisions of the porters: Of the Korhites was -Meshelemiah the son of Kore, of the sons of Asaph. - -26:2 And the sons of Meshelemiah were, Zechariah the firstborn, -Jediael the second, Zebadiah the third, Jathniel the fourth, 26:3 Elam -the fifth, Jehohanan the sixth, Elioenai the seventh. - -26:4 Moreover the sons of Obededom were, Shemaiah the firstborn, -Jehozabad the second, Joah the third, and Sacar the fourth, and -Nethaneel the fifth. - -26:5 Ammiel the sixth, Issachar the seventh, Peulthai the eighth: for -God blessed him. - -26:6 Also unto Shemaiah his son were sons born, that ruled throughout -the house of their father: for they were mighty men of valour. - -26:7 The sons of Shemaiah; Othni, and Rephael, and Obed, Elzabad, -whose brethren were strong men, Elihu, and Semachiah. - -26:8 All these of the sons of Obededom: they and their sons and their -brethren, able men for strength for the service, were threescore and -two of Obededom. - -26:9 And Meshelemiah had sons and brethren, strong men, eighteen. - -26:10 Also Hosah, of the children of Merari, had sons; Simri the -chief, (for though he was not the firstborn, yet his father made him -the chief;) 26:11 Hilkiah the second, Tebaliah the third, Zechariah -the fourth: all the sons and brethren of Hosah were thirteen. - -26:12 Among these were the divisions of the porters, even among the -chief men, having wards one against another, to minister in the house -of the LORD. - -26:13 And they cast lots, as well the small as the great, according to -the house of their fathers, for every gate. - -26:14 And the lot eastward fell to Shelemiah. Then for Zechariah his -son, a wise counsellor, they cast lots; and his lot came out -northward. - -26:15 To Obededom southward; and to his sons the house of Asuppim. - -26:16 To Shuppim and Hosah the lot came forth westward, with the gate -Shallecheth, by the causeway of the going up, ward against ward. - -26:17 Eastward were six Levites, northward four a day, southward four -a day, and toward Asuppim two and two. - -26:18 At Parbar westward, four at the causeway, and two at Parbar. - -26:19 These are the divisions of the porters among the sons of Kore, -and among the sons of Merari. - -26:20 And of the Levites, Ahijah was over the treasures of the house -of God, and over the treasures of the dedicated things. - -26:21 As concerning the sons of Laadan; the sons of the Gershonite -Laadan, chief fathers, even of Laadan the Gershonite, were Jehieli. - -26:22 The sons of Jehieli; Zetham, and Joel his brother, which were -over the treasures of the house of the LORD. - -26:23 Of the Amramites, and the Izharites, the Hebronites, and the -Uzzielites: 26:24 And Shebuel the son of Gershom, the son of Moses, -was ruler of the treasures. - -26:25 And his brethren by Eliezer; Rehabiah his son, and Jeshaiah his -son, and Joram his son, and Zichri his son, and Shelomith his son. - -26:26 Which Shelomith and his brethren were over all the treasures of -the dedicated things, which David the king, and the chief fathers, the -captains over thousands and hundreds, and the captains of the host, -had dedicated. - -26:27 Out of the spoils won in battles did they dedicate to maintain -the house of the LORD. - -26:28 And all that Samuel the seer, and Saul the son of Kish, and -Abner the son of Ner, and Joab the son of Zeruiah, had dedicated; and -whosoever had dedicated any thing, it was under the hand of Shelomith, -and of his brethren. - -26:29 Of the Izharites, Chenaniah and his sons were for the outward -business over Israel, for officers and judges. - -26:30 And of the Hebronites, Hashabiah and his brethren, men of -valour, a thousand and seven hundred, were officers among them of -Israel on this side Jordan westward in all the business of the LORD, -and in the service of the king. - -26:31 Among the Hebronites was Jerijah the chief, even among the -Hebronites, according to the generations of his fathers. In the -fortieth year of the reign of David they were sought for, and there -were found among them mighty men of valour at Jazer of Gilead. - -26:32 And his brethren, men of valour, were two thousand and seven -hundred chief fathers, whom king David made rulers over the -Reubenites, the Gadites, and the half tribe of Manasseh, for every -matter pertaining to God, and affairs of the king. - -27:1 Now the children of Israel after their number, to wit, the chief -fathers and captains of thousands and hundreds, and their officers -that served the king in any matter of the courses, which came in and -went out month by month throughout all the months of the year, of -every course were twenty and four thousand. - -27:2 Over the first course for the first month was Jashobeam the son -of Zabdiel: and in his course were twenty and four thousand. - -27:3 Of the children of Perez was the chief of all the captains of the -host for the first month. - -27:4 And over the course of the second month was Dodai an Ahohite, and -of his course was Mikloth also the ruler: in his course likewise were -twenty and four thousand. - -27:5 The third captain of the host for the third month was Benaiah the -son of Jehoiada, a chief priest: and in his course were twenty and -four thousand. - -27:6 This is that Benaiah, who was mighty among the thirty, and above -the thirty: and in his course was Ammizabad his son. - -27:7 The fourth captain for the fourth month was Asahel the brother of -Joab, and Zebadiah his son after him: and in his course were twenty -and four thousand. - -27:8 The fifth captain for the fifth month was Shamhuth the Izrahite: -and in his course were twenty and four thousand. - -27:9 The sixth captain for the sixth month was Ira the son of Ikkesh -the Tekoite: and in his course were twenty and four thousand. - -27:10 The seventh captain for the seventh month was Helez the -Pelonite, of the children of Ephraim: and in his course were twenty -and four thousand. - -27:11 The eighth captain for the eighth month was Sibbecai the -Hushathite, of the Zarhites: and in his course were twenty and four -thousand. - -27:12 The ninth captain for the ninth month was Abiezer the -Anetothite, of the Benjamites: and in his course were twenty and four -thousand. - -27:13 The tenth captain for the tenth month was Maharai the -Netophathite, of the Zarhites: and in his course were twenty and four -thousand. - -27:14 The eleventh captain for the eleventh month was Benaiah the -Pirathonite, of the children of Ephraim: and in his course were twenty -and four thousand. - -27:15 The twelfth captain for the twelfth month was Heldai the -Netophathite, of Othniel: and in his course were twenty and four -thousand. - -27:16 Furthermore over the tribes of Israel: the ruler of the -Reubenites was Eliezer the son of Zichri: of the Simeonites, -Shephatiah the son of Maachah: 27:17 Of the Levites, Hashabiah the son -of Kemuel: of the Aaronites, Zadok: 27:18 Of Judah, Elihu, one of the -brethren of David: of Issachar, Omri the son of Michael: 27:19 Of -Zebulun, Ishmaiah the son of Obadiah: of Naphtali, Jerimoth the son of -Azriel: 27:20 Of the children of Ephraim, Hoshea the son of Azaziah: -of the half tribe of Manasseh, Joel the son of Pedaiah: 27:21 Of the -half tribe of Manasseh in Gilead, Iddo the son of Zechariah: of -Benjamin, Jaasiel the son of Abner: 27:22 Of Dan, Azareel the son of -Jeroham. These were the princes of the tribes of Israel. - -27:23 But David took not the number of them from twenty years old and -under: because the LORD had said he would increase Israel like to the -stars of the heavens. - -27:24 Joab the son of Zeruiah began to number, but he finished not, -because there fell wrath for it against Israel; neither was the number -put in the account of the chronicles of king David. - -27:25 And over the king's treasures was Azmaveth the son of Adiel: and -over the storehouses in the fields, in the cities, and in the -villages, and in the castles, was Jehonathan the son of Uzziah: 27:26 -And over them that did the work of the field for tillage of the ground -was Ezri the son of Chelub: 27:27 And over the vineyards was Shimei -the Ramathite: over the increase of the vineyards for the wine cellars -was Zabdi the Shiphmite: 27:28 And over the olive trees and the -sycomore trees that were in the low plains was Baalhanan the Gederite: -and over the cellars of oil was Joash: 27:29 And over the herds that -fed in Sharon was Shitrai the Sharonite: and over the herds that were -in the valleys was Shaphat the son of Adlai: 27:30 Over the camels -also was Obil the Ishmaelite: and over the asses was Jehdeiah the -Meronothite: 27:31 And over the flocks was Jaziz the Hagerite. All -these were the rulers of the substance which was king David's. - -27:32 Also Jonathan David's uncle was a counsellor, a wise man, and a -scribe: and Jehiel the son of Hachmoni was with the king's sons: 27:33 -And Ahithophel was the king's counsellor: and Hushai the Archite was -the king's companion: 27:34 And after Ahithophel was Jehoiada the son -of Benaiah, and Abiathar: and the general of the king's army was Joab. - -28:1 And David assembled all the princes of Israel, the princes of the -tribes, and the captains of the companies that ministered to the king -by course, and the captains over the thousands, and captains over the -hundreds, and the stewards over all the substance and possession of -the king, and of his sons, with the officers, and with the mighty men, -and with all the valiant men, unto Jerusalem. - -28:2 Then David the king stood up upon his feet, and said, Hear me, my -brethren, and my people: As for me, I had in mine heart to build an -house of rest for the ark of the covenant of the LORD, and for the -footstool of our God, and had made ready for the building: 28:3 But -God said unto me, Thou shalt not build an house for my name, because -thou hast been a man of war, and hast shed blood. - -28:4 Howbeit the LORD God of Israel chose me before all the house of -my father to be king over Israel for ever: for he hath chosen Judah to -be the ruler; and of the house of Judah, the house of my father; and -among the sons of my father he liked me to make me king over all -Israel: 28:5 And of all my sons, (for the LORD hath given me many -sons,) he hath chosen Solomon my son to sit upon the throne of the -kingdom of the LORD over Israel. - -28:6 And he said unto me, Solomon thy son, he shall build my house and -my courts: for I have chosen him to be my son, and I will be his -father. - -28:7 Moreover I will establish his kingdom for ever, if he be constant -to do my commandments and my judgments, as at this day. - -28:8 Now therefore in the sight of all Israel the congregation of the -LORD, and in the audience of our God, keep and seek for all the -commandments of the LORD your God: that ye may possess this good land, -and leave it for an inheritance for your children after you for ever. - -28:9 And thou, Solomon my son, know thou the God of thy father, and -serve him with a perfect heart and with a willing mind: for the LORD -searcheth all hearts, and understandeth all the imaginations of the -thoughts: if thou seek him, he will be found of thee; but if thou -forsake him, he will cast thee off for ever. - -28:10 Take heed now; for the LORD hath chosen thee to build an house -for the sanctuary: be strong, and do it. - -28:11 Then David gave to Solomon his son the pattern of the porch, and -of the houses thereof, and of the treasuries thereof, and of the upper -chambers thereof, and of the inner parlours thereof, and of the place -of the mercy seat, 28:12 And the pattern of all that he had by the -spirit, of the courts of the house of the LORD, and of all the -chambers round about, of the treasuries of the house of God, and of -the treasuries of the dedicated things: 28:13 Also for the courses of -the priests and the Levites, and for all the work of the service of -the house of the LORD, and for all the vessels of service in the house -of the LORD. - -28:14 He gave of gold by weight for things of gold, for all -instruments of all manner of service; silver also for all instruments -of silver by weight, for all instruments of every kind of service: -28:15 Even the weight for the candlesticks of gold, and for their -lamps of gold, by weight for every candlestick, and for the lamps -thereof: and for the candlesticks of silver by weight, both for the -candlestick, and also for the lamps thereof, according to the use of -every candlestick. - -28:16 And by weight he gave gold for the tables of shewbread, for -every table; and likewise silver for the tables of silver: 28:17 Also -pure gold for the fleshhooks, and the bowls, and the cups: and for the -golden basons he gave gold by weight for every bason; and likewise -silver by weight for every bason of silver: 28:18 And for the altar of -incense refined gold by weight; and gold for the pattern of the -chariot of the cherubims, that spread out their wings, and covered the -ark of the covenant of the LORD. - -28:19 All this, said David, the LORD made me understand in writing by -his hand upon me, even all the works of this pattern. - -28:20 And David said to Solomon his son, Be strong and of good -courage, and do it: fear not, nor be dismayed: for the LORD God, even -my God, will be with thee; he will not fail thee, nor forsake thee, -until thou hast finished all the work for the service of the house of -the LORD. - -28:21 And, behold, the courses of the priests and the Levites, even -they shall be with thee for all the service of the house of God: and -there shall be with thee for all manner of workmanship every willing -skilful man, for any manner of service: also the princes and all the -people will be wholly at thy commandment. - -29:1 Furthermore David the king said unto all the congregation, -Solomon my son, whom alone God hath chosen, is yet young and tender, -and the work is great: for the palace is not for man, but for the LORD -God. - -29:2 Now I have prepared with all my might for the house of my God the -gold for things to be made of gold, and the silver for things of -silver, and the brass for things of brass, the iron for things of -iron, and wood for things of wood; onyx stones, and stones to be set, -glistering stones, and of divers colours, and all manner of precious -stones, and marble stones in abundance. - -29:3 Moreover, because I have set my affection to the house of my God, -I have of mine own proper good, of gold and silver, which I have given -to the house of my God, over and above all that I have prepared for -the holy house. - -29:4 Even three thousand talents of gold, of the gold of Ophir, and -seven thousand talents of refined silver, to overlay the walls of the -houses withal: 29:5 The gold for things of gold, and the silver for -things of silver, and for all manner of work to be made by the hands -of artificers. And who then is willing to consecrate his service this -day unto the LORD? 29:6 Then the chief of the fathers and princes of -the tribes of Israel and the captains of thousands and of hundreds, -with the rulers of the king's work, offered willingly, 29:7 And gave -for the service of the house of God of gold five thousand talents and -ten thousand drams, and of silver ten thousand talents, and of brass -eighteen thousand talents, and one hundred thousand talents of iron. - -29:8 And they with whom precious stones were found gave them to the -treasure of the house of the LORD, by the hand of Jehiel the -Gershonite. - -29:9 Then the people rejoiced, for that they offered willingly, -because with perfect heart they offered willingly to the LORD: and -David the king also rejoiced with great joy. - -29:10 Wherefore David blessed the LORD before all the congregation: -and David said, Blessed be thou, LORD God of Israel our father, for -ever and ever. - -29:11 Thine, O LORD is the greatness, and the power, and the glory, -and the victory, and the majesty: for all that is in the heaven and in -the earth is thine; thine is the kingdom, O LORD, and thou art exalted -as head above all. - -29:12 Both riches and honour come of thee, and thou reignest over all; -and in thine hand is power and might; and in thine hand it is to make -great, and to give strength unto all. - -29:13 Now therefore, our God, we thank thee, and praise thy glorious -name. - -29:14 But who am I, and what is my people, that we should be able to -offer so willingly after this sort? for all things come of thee, and -of thine own have we given thee. - -29:15 For we are strangers before thee, and sojourners, as were all -our fathers: our days on the earth are as a shadow, and there is none -abiding. - -29:16 O LORD our God, all this store that we have prepared to build -thee an house for thine holy name cometh of thine hand, and is all -thine own. - -29:17 I know also, my God, that thou triest the heart, and hast -pleasure in uprightness. As for me, in the uprightness of mine heart I -have willingly offered all these things: and now have I seen with joy -thy people, which are present here, to offer willingly unto thee. - -29:18 O LORD God of Abraham, Isaac, and of Israel, our fathers, keep -this for ever in the imagination of the thoughts of the heart of thy -people, and prepare their heart unto thee: 29:19 And give unto Solomon -my son a perfect heart, to keep thy commandments, thy testimonies, and -thy statutes, and to do all these things, and to build the palace, for -the which I have made provision. - -29:20 And David said to all the congregation, Now bless the LORD your -God. - -And all the congregation blessed the LORD God of their fathers, and -bowed down their heads, and worshipped the LORD, and the king. - -29:21 And they sacrificed sacrifices unto the LORD, and offered burnt -offerings unto the LORD, on the morrow after that day, even a thousand -bullocks, a thousand rams, and a thousand lambs, with their drink -offerings, and sacrifices in abundance for all Israel: 29:22 And did -eat and drink before the LORD on that day with great gladness. And -they made Solomon the son of David king the second time, and anointed -him unto the LORD to be the chief governor, and Zadok to be priest. - -29:23 Then Solomon sat on the throne of the LORD as king instead of -David his father, and prospered; and all Israel obeyed him. - -29:24 And all the princes, and the mighty men, and all the sons -likewise of king David, submitted themselves unto Solomon the king. - -29:25 And the LORD magnified Solomon exceedingly in the sight of all -Israel, and bestowed upon him such royal majesty as had not been on -any king before him in Israel. - -29:26 Thus David the son of Jesse reigned over all Israel. - -29:27 And the time that he reigned over Israel was forty years; seven -years reigned he in Hebron, and thirty and three years reigned he in -Jerusalem. - -29:28 And he died in a good old age, full of days, riches, and honour: -and Solomon his son reigned in his stead. - -29:29 Now the acts of David the king, first and last, behold, they are -written in the book of Samuel the seer, and in the book of Nathan the -prophet, and in the book of Gad the seer, 29:30 With all his reign and -his might, and the times that went over him, and over Israel, and over -all the kingdoms of the countries. - - - - -The Second Book of the Chronicles - - -1:1 And Solomon the son of David was strengthened in his kingdom, and -the LORD his God was with him, and magnified him exceedingly. - -1:2 Then Solomon spake unto all Israel, to the captains of thousands -and of hundreds, and to the judges, and to every governor in all -Israel, the chief of the fathers. - -1:3 So Solomon, and all the congregation with him, went to the high -place that was at Gibeon; for there was the tabernacle of the -congregation of God, which Moses the servant of the LORD had made in -the wilderness. - -1:4 But the ark of God had David brought up from Kirjathjearim to the -place which David had prepared for it: for he had pitched a tent for -it at Jerusalem. - -1:5 Moreover the brasen altar, that Bezaleel the son of Uri, the son -of Hur, had made, he put before the tabernacle of the LORD: and -Solomon and the congregation sought unto it. - -1:6 And Solomon went up thither to the brasen altar before the LORD, -which was at the tabernacle of the congregation, and offered a -thousand burnt offerings upon it. - -1:7 In that night did God appear unto Solomon, and said unto him, Ask -what I shall give thee. - -1:8 And Solomon said unto God, Thou hast shewed great mercy unto David -my father, and hast made me to reign in his stead. - -1:9 Now, O LORD God, let thy promise unto David my father be -established: for thou hast made me king over a people like the dust of -the earth in multitude. - -1:10 Give me now wisdom and knowledge, that I may go out and come in -before this people: for who can judge this thy people, that is so -great? 1:11 And God said to Solomon, Because this was in thine heart, -and thou hast not asked riches, wealth, or honour, nor the life of -thine enemies, neither yet hast asked long life; but hast asked wisdom -and knowledge for thyself, that thou mayest judge my people, over whom -I have made thee king: 1:12 Wisdom and knowledge is granted unto thee; -and I will give thee riches, and wealth, and honour, such as none of -the kings have had that have been before thee, neither shall there any -after thee have the like. - -1:13 Then Solomon came from his journey to the high place that was at -Gibeon to Jerusalem, from before the tabernacle of the congregation, -and reigned over Israel. - -1:14 And Solomon gathered chariots and horsemen: and he had a thousand -and four hundred chariots, and twelve thousand horsemen, which he -placed in the chariot cities, and with the king at Jerusalem. - -1:15 And the king made silver and gold at Jerusalem as plenteous as -stones, and cedar trees made he as the sycomore trees that are in the -vale for abundance. - -1:16 And Solomon had horses brought out of Egypt, and linen yarn: the -king's merchants received the linen yarn at a price. - -1:17 And they fetched up, and brought forth out of Egypt a chariot for -six hundred shekels of silver, and an horse for an hundred and fifty: -and so brought they out horses for all the kings of the Hittites, and -for the kings of Syria, by their means. - -2:1 And Solomon determined to build an house for the name of the LORD, -and an house for his kingdom. - -2:2 And Solomon told out threescore and ten thousand men to bear -burdens, and fourscore thousand to hew in the mountain, and three -thousand and six hundred to oversee them. - -2:3 And Solomon sent to Huram the king of Tyre, saying, As thou didst -deal with David my father, and didst send him cedars to build him an -house to dwell therein, even so deal with me. - -2:4 Behold, I build an house to the name of the LORD my God, to -dedicate it to him, and to burn before him sweet incense, and for the -continual shewbread, and for the burnt offerings morning and evening, -on the sabbaths, and on the new moons, and on the solemn feasts of the -LORD our God. This is an ordinance for ever to Israel. - -2:5 And the house which I build is great: for great is our God above -all gods. - -2:6 But who is able to build him an house, seeing the heaven and -heaven of heavens cannot contain him? who am I then, that I should -build him an house, save only to burn sacrifice before him? 2:7 Send -me now therefore a man cunning to work in gold, and in silver, and in -brass, and in iron, and in purple, and crimson, and blue, and that can -skill to grave with the cunning men that are with me in Judah and in -Jerusalem, whom David my father did provide. - -2:8 Send me also cedar trees, fir trees, and algum trees, out of -Lebanon: for I know that thy servants can skill to cut timber in -Lebanon; and, behold, my servants shall be with thy servants, 2:9 Even -to prepare me timber in abundance: for the house which I am about to -build shall be wonderful great. - -2:10 And, behold, I will give to thy servants, the hewers that cut -timber, twenty thousand measures of beaten wheat, and twenty thousand -measures of barley, and twenty thousand baths of wine, and twenty -thousand baths of oil. - -2:11 Then Huram the king of Tyre answered in writing, which he sent to -Solomon, Because the LORD hath loved his people, he hath made thee -king over them. - -2:12 Huram said moreover, Blessed be the LORD God of Israel, that made -heaven and earth, who hath given to David the king a wise son, endued -with prudence and understanding, that might build an house for the -LORD, and an house for his kingdom. - -2:13 And now I have sent a cunning man, endued with understanding, of -Huram my father's, 2:14 The son of a woman of the daughters of Dan, -and his father was a man of Tyre, skilful to work in gold, and in -silver, in brass, in iron, in stone, and in timber, in purple, in -blue, and in fine linen, and in crimson; also to grave any manner of -graving, and to find out every device which shall be put to him, with -thy cunning men, and with the cunning men of my lord David thy father. - -2:15 Now therefore the wheat, and the barley, the oil, and the wine, -which my lord hath spoken of, let him send unto his servants: 2:16 And -we will cut wood out of Lebanon, as much as thou shalt need: and we -will bring it to thee in floats by sea to Joppa; and thou shalt carry -it up to Jerusalem. - -2:17 And Solomon numbered all the strangers that were in the land of -Israel, after the numbering wherewith David his father had numbered -them; and they were found an hundred and fifty thousand and three -thousand and six hundred. - -2:18 And he set threescore and ten thousand of them to be bearers of -burdens, and fourscore thousand to be hewers in the mountain, and -three thousand and six hundred overseers to set the people a work. - -3:1 Then Solomon began to build the house of the LORD at Jerusalem in -mount Moriah, where the Lord appeared unto David his father, in the -place that David had prepared in the threshingfloor of Ornan the -Jebusite. - -3:2 And he began to build in the second day of the second month, in -the fourth year of his reign. - -3:3 Now these are the things wherein Solomon was instructed for the -building of the house of God. The length by cubits after the first -measure was threescore cubits, and the breadth twenty cubits. - -3:4 And the porch that was in the front of the house, the length of it -was according to the breadth of the house, twenty cubits, and the -height was an hundred and twenty: and he overlaid it within with pure -gold. - -3:5 And the greater house he cieled with fir tree, which he overlaid -with fine gold, and set thereon palm trees and chains. - -3:6 And he garnished the house with precious stones for beauty: and -the gold was gold of Parvaim. - -3:7 He overlaid also the house, the beams, the posts, and the walls -thereof, and the doors thereof, with gold; and graved cherubims on the -walls. - -3:8 And he made the most holy house, the length whereof was according -to the breadth of the house, twenty cubits, and the breadth thereof -twenty cubits: and he overlaid it with fine gold, amounting to six -hundred talents. - -3:9 And the weight of the nails was fifty shekels of gold. And he -overlaid the upper chambers with gold. - -3:10 And in the most holy house he made two cherubims of image work, -and overlaid them with gold. - -3:11 And the wings of the cherubims were twenty cubits long: one wing -of the one cherub was five cubits, reaching to the wall of the house: -and the other wing was likewise five cubits, reaching to the wing of -the other cherub. - -3:12 And one wing of the other cherub was five cubits, reaching to the -wall of the house: and the other wing was five cubits also, joining to -the wing of the other cherub. - -3:13 The wings of these cherubims spread themselves forth twenty -cubits: and they stood on their feet, and their faces were inward. - -3:14 And he made the vail of blue, and purple, and crimson, and fine -linen, and wrought cherubims thereon. - -3:15 Also he made before the house two pillars of thirty and five -cubits high, and the chapiter that was on the top of each of them was -five cubits. - -3:16 And he made chains, as in the oracle, and put them on the heads -of the pillars; and made an hundred pomegranates, and put them on the -chains. - -3:17 And he reared up the pillars before the temple, one on the right -hand, and the other on the left; and called the name of that on the -right hand Jachin, and the name of that on the left Boaz. - -4:1 Moreover he made an altar of brass, twenty cubits the length -thereof, and twenty cubits the breadth thereof, and ten cubits the -height thereof. - -4:2 Also he made a molten sea of ten cubits from brim to brim, round -in compass, and five cubits the height thereof; and a line of thirty -cubits did compass it round about. - -4:3 And under it was the similitude of oxen, which did compass it -round about: ten in a cubit, compassing the sea round about. Two rows -of oxen were cast, when it was cast. - -4:4 It stood upon twelve oxen, three looking toward the north, and -three looking toward the west, and three looking toward the south, and -three looking toward the east: and the sea was set above upon them, -and all their hinder parts were inward. - -4:5 And the thickness of it was an handbreadth, and the brim of it -like the work of the brim of a cup, with flowers of lilies; and it -received and held three thousand baths. - -4:6 He made also ten lavers, and put five on the right hand, and five -on the left, to wash in them: such things as they offered for the -burnt offering they washed in them; but the sea was for the priests to -wash in. - -4:7 And he made ten candlesticks of gold according to their form, and -set them in the temple, five on the right hand, and five on the left. - -4:8 He made also ten tables, and placed them in the temple, five on -the right side, and five on the left. And he made an hundred basons of -gold. - -4:9 Furthermore he made the court of the priests, and the great court, -and doors for the court, and overlaid the doors of them with brass. - -4:10 And he set the sea on the right side of the east end, over -against the south. - -4:11 And Huram made the pots, and the shovels, and the basons. And -Huram finished the work that he was to make for king Solomon for the -house of God; 4:12 To wit, the two pillars, and the pommels, and the -chapiters which were on the top of the two pillars, and the two -wreaths to cover the two pommels of the chapiters which were on the -top of the pillars; 4:13 And four hundred pomegranates on the two -wreaths; two rows of pomegranates on each wreath, to cover the two -pommels of the chapiters which were upon the pillars. - -4:14 He made also bases, and lavers made he upon the bases; 4:15 One -sea, and twelve oxen under it. - -4:16 The pots also, and the shovels, and the fleshhooks, and all their -instruments, did Huram his father make to king Solomon for the house -of the LORD of bright brass. - -4:17 In the plain of Jordan did the king cast them, in the clay ground -between Succoth and Zeredathah. - -4:18 Thus Solomon made all these vessels in great abundance: for the -weight of the brass could not be found out. - -4:19 And Solomon made all the vessels that were for the house of God, -the golden altar also, and the tables whereon the shewbread was set; -4:20 Moreover the candlesticks with their lamps, that they should burn -after the manner before the oracle, of pure gold; 4:21 And the -flowers, and the lamps, and the tongs, made he of gold, and that -perfect gold; 4:22 And the snuffers, and the basons, and the spoons, -and the censers, of pure gold: and the entry of the house, the inner -doors thereof for the most holy place, and the doors of the house of -the temple, were of gold. - -5:1 Thus all the work that Solomon made for the house of the LORD was -finished: and Solomon brought in all the things that David his father -had dedicated; and the silver, and the gold, and all the instruments, -put he among the treasures of the house of God. - -5:2 Then Solomon assembled the elders of Israel, and all the heads of -the tribes, the chief of the fathers of the children of Israel, unto -Jerusalem, to bring up the ark of the covenant of the LORD out of the -city of David, which is Zion. - -5:3 Wherefore all the men of Israel assembled themselves unto the king -in the feast which was in the seventh month. - -5:4 And all the elders of Israel came; and the Levites took up the -ark. - -5:5 And they brought up the ark, and the tabernacle of the -congregation, and all the holy vessels that were in the tabernacle, -these did the priests and the Levites bring up. - -5:6 Also king Solomon, and all the congregation of Israel that were -assembled unto him before the ark, sacrificed sheep and oxen, which -could not be told nor numbered for multitude. - -5:7 And the priests brought in the ark of the covenant of the LORD -unto his place, to the oracle of the house, into the most holy place, -even under the wings of the cherubims: 5:8 For the cherubims spread -forth their wings over the place of the ark, and the cherubims covered -the ark and the staves thereof above. - -5:9 And they drew out the staves of the ark, that the ends of the -staves were seen from the ark before the oracle; but they were not -seen without. And there it is unto this day. - -5:10 There was nothing in the ark save the two tables which Moses put -therein at Horeb, when the LORD made a covenant with the children of -Israel, when they came out of Egypt. - -5:11 And it came to pass, when the priests were come out of the holy -place: (for all the priests that were present were sanctified, and did -not then wait by course: 5:12 Also the Levites which were the singers, -all of them of Asaph, of Heman, of Jeduthun, with their sons and their -brethren, being arrayed in white linen, having cymbals and psalteries -and harps, stood at the east end of the altar, and with them an -hundred and twenty priests sounding with trumpets:) 5:13 It came even -to pass, as the trumpeters and singers were as one, to make one sound -to be heard in praising and thanking the LORD; and when they lifted up -their voice with the trumpets and cymbals and instruments of musick, -and praised the LORD, saying, For he is good; for his mercy endureth -for ever: that then the house was filled with a cloud, even the house -of the LORD; 5:14 So that the priests could not stand to minister by -reason of the cloud: for the glory of the LORD had filled the house of -God. - -6:1 Then said Solomon, The LORD hath said that he would dwell in the -thick darkness. - -6:2 But I have built an house of habitation for thee, and a place for -thy dwelling for ever. - -6:3 And the king turned his face, and blessed the whole congregation -of Israel: and all the congregation of Israel stood. - -6:4 And he said, Blessed be the LORD God of Israel, who hath with his -hands fulfilled that which he spake with his mouth to my father David, -saying, 6:5 Since the day that I brought forth my people out of the -land of Egypt I chose no city among all the tribes of Israel to build -an house in, that my name might be there; neither chose I any man to -be a ruler over my people Israel: 6:6 But I have chosen Jerusalem, -that my name might be there; and have chosen David to be over my -people Israel. - -6:7 Now it was in the heart of David my father to build an house for -the name of the LORD God of Israel. - -6:8 But the LORD said to David my father, Forasmuch as it was in thine -heart to build an house for my name, thou didst well in that it was in -thine heart: 6:9 Notwithstanding thou shalt not build the house; but -thy son which shall come forth out of thy loins, he shall build the -house for my name. - -6:10 The LORD therefore hath performed his word that he hath spoken: -for I am risen up in the room of David my father, and am set on the -throne of Israel, as the LORD promised, and have built the house for -the name of the LORD God of Israel. - -6:11 And in it have I put the ark, wherein is the covenant of the -LORD, that he made with the children of Israel. - -6:12 And he stood before the altar of the LORD in the presence of all -the congregation of Israel, and spread forth his hands: 6:13 For -Solomon had made a brasen scaffold of five cubits long, and five -cubits broad, and three cubits high, and had set it in the midst of -the court: and upon it he stood, and kneeled down upon his knees -before all the congregation of Israel, and spread forth his hands -toward heaven. - -6:14 And said, O LORD God of Israel, there is no God like thee in the -heaven, nor in the earth; which keepest covenant, and shewest mercy -unto thy servants, that walk before thee with all their hearts: 6:15 -Thou which hast kept with thy servant David my father that which thou -hast promised him; and spakest with thy mouth, and hast fulfilled it -with thine hand, as it is this day. - -6:16 Now therefore, O LORD God of Israel, keep with thy servant David -my father that which thou hast promised him, saying, There shall not -fail thee a man in my sight to sit upon the throne of Israel; yet so -that thy children take heed to their way to walk in my law, as thou -hast walked before me. - -6:17 Now then, O LORD God of Israel, let thy word be verified, which -thou hast spoken unto thy servant David. - -6:18 But will God in very deed dwell with men on the earth? behold, -heaven and the heaven of heavens cannot contain thee; how much less -this house which I have built! 6:19 Have respect therefore to the -prayer of thy servant, and to his supplication, O LORD my God, to -hearken unto the cry and the prayer which thy servant prayeth before -thee: 6:20 That thine eyes may be open upon this house day and night, -upon the place whereof thou hast said that thou wouldest put thy name -there; to hearken unto the prayer which thy servant prayeth toward -this place. - -6:21 Hearken therefore unto the supplications of thy servant, and of -thy people Israel, which they shall make toward this place: hear thou -from thy dwelling place, even from heaven; and when thou hearest, -forgive. - -6:22 If a man sin against his neighbour, and an oath be laid upon him -to make him swear, and the oath come before thine altar in this house; -6:23 Then hear thou from heaven, and do, and judge thy servants, by -requiting the wicked, by recompensing his way upon his own head; and -by justifying the righteous, by giving him according to his -righteousness. - -6:24 And if thy people Israel be put to the worse before the enemy, -because they have sinned against thee; and shall return and confess -thy name, and pray and make supplication before thee in this house; -6:25 Then hear thou from the heavens, and forgive the sin of thy -people Israel, and bring them again unto the land which thou gavest to -them and to their fathers. - -6:26 When the heaven is shut up, and there is no rain, because they -have sinned against thee; yet if they pray toward this place, and -confess thy name, and turn from their sin, when thou dost afflict -them; 6:27 Then hear thou from heaven, and forgive the sin of thy -servants, and of thy people Israel, when thou hast taught them the -good way, wherein they should walk; and send rain upon thy land, which -thou hast given unto thy people for an inheritance. - -6:28 If there be dearth in the land, if there be pestilence, if there -be blasting, or mildew, locusts, or caterpillers; if their enemies -besiege them in the cities of their land; whatsoever sore or -whatsoever sickness there be: 6:29 Then what prayer or what -supplication soever shall be made of any man, or of all thy people -Israel, when every one shall know his own sore and his own grief, and -shall spread forth his hands in this house: 6:30 Then hear thou from -heaven thy dwelling place, and forgive, and render unto every man -according unto all his ways, whose heart thou knowest; (for thou only -knowest the hearts of the children of men:) 6:31 That they may fear -thee, to walk in thy ways, so long as they live in the land which thou -gavest unto our fathers. - -6:32 Moreover concerning the stranger, which is not of thy people -Israel, but is come from a far country for thy great name's sake, and -thy mighty hand, and thy stretched out arm; if they come and pray in -this house; 6:33 Then hear thou from the heavens, even from thy -dwelling place, and do according to all that the stranger calleth to -thee for; that all people of the earth may know thy name, and fear -thee, as doth thy people Israel, and may know that this house which I -have built is called by thy name. - -6:34 If thy people go out to war against their enemies by the way that -thou shalt send them, and they pray unto thee toward this city which -thou hast chosen, and the house which I have built for thy name; 6:35 -Then hear thou from the heavens their prayer and their supplication, -and maintain their cause. - -6:36 If they sin against thee, (for there is no man which sinneth -not,) and thou be angry with them, and deliver them over before their -enemies, and they carry them away captives unto a land far off or -near; 6:37 Yet if they bethink themselves in the land whither they are -carried captive, and turn and pray unto thee in the land of their -captivity, saying, We have sinned, we have done amiss, and have dealt -wickedly; 6:38 If they return to thee with all their heart and with -all their soul in the land of their captivity, whither they have -carried them captives, and pray toward their land, which thou gavest -unto their fathers, and toward the city which thou hast chosen, and -toward the house which I have built for thy name: 6:39 Then hear thou -from the heavens, even from thy dwelling place, their prayer and their -supplications, and maintain their cause, and forgive thy people which -have sinned against thee. - -6:40 Now, my God, let, I beseech thee, thine eyes be open, and let -thine ears be attent unto the prayer that is made in this place. - -6:41 Now therefore arise, O LORD God, into thy resting place, thou, -and the ark of thy strength: let thy priests, O LORD God, be clothed -with salvation, and let thy saints rejoice in goodness. - -6:42 O LORD God, turn not away the face of thine anointed: remember -the mercies of David thy servant. - -7:1 Now when Solomon had made an end of praying, the fire came down -from heaven, and consumed the burnt offering and the sacrifices; and -the glory of the LORD filled the house. - -7:2 And the priests could not enter into the house of the LORD, -because the glory of the LORD had filled the LORD's house. - -7:3 And when all the children of Israel saw how the fire came down, -and the glory of the LORD upon the house, they bowed themselves with -their faces to the ground upon the pavement, and worshipped, and -praised the LORD, saying, For he is good; for his mercy endureth for -ever. - -7:4 Then the king and all the people offered sacrifices before the -LORD. - -7:5 And king Solomon offered a sacrifice of twenty and two thousand -oxen, and an hundred and twenty thousand sheep: so the king and all -the people dedicated the house of God. - -7:6 And the priests waited on their offices: the Levites also with -instruments of musick of the LORD, which David the king had made to -praise the LORD, because his mercy endureth for ever, when David -praised by their ministry; and the priests sounded trumpets before -them, and all Israel stood. - -7:7 Moreover Solomon hallowed the middle of the court that was before -the house of the LORD: for there he offered burnt offerings, and the -fat of the peace offerings, because the brasen altar which Solomon had -made was not able to receive the burnt offerings, and the meat -offerings, and the fat. - -7:8 Also at the same time Solomon kept the feast seven days, and all -Israel with him, a very great congregation, from the entering in of -Hamath unto the river of Egypt. - -7:9 And in the eighth day they made a solemn assembly: for they kept -the dedication of the altar seven days, and the feast seven days. - -7:10 And on the three and twentieth day of the seventh month he sent -the people away into their tents, glad and merry in heart for the -goodness that the LORD had shewed unto David, and to Solomon, and to -Israel his people. - -7:11 Thus Solomon finished the house of the LORD, and the king's -house: and all that came into Solomon's heart to make in the house of -the LORD, and in his own house, he prosperously effected. - -7:12 And the LORD appeared to Solomon by night, and said unto him, I -have heard thy prayer, and have chosen this place to myself for an -house of sacrifice. - -7:13 If I shut up heaven that there be no rain, or if I command the -locusts to devour the land, or if I send pestilence among my people; -7:14 If my people, which are called by my name, shall humble -themselves, and pray, and seek my face, and turn from their wicked -ways; then will I hear from heaven, and will forgive their sin, and -will heal their land. - -7:15 Now mine eyes shall be open, and mine ears attent unto the prayer -that is made in this place. - -7:16 For now have I chosen and sanctified this house, that my name may -be there for ever: and mine eyes and mine heart shall be there -perpetually. - -7:17 And as for thee, if thou wilt walk before me, as David thy father -walked, and do according to all that I have commanded thee, and shalt -observe my statutes and my judgments; 7:18 Then will I stablish the -throne of thy kingdom, according as I have covenanted with David thy -father, saying, There shall not fail thee a man to be ruler in Israel. - -7:19 But if ye turn away, and forsake my statutes and my commandments, -which I have set before you, and shall go and serve other gods, and -worship them; 7:20 Then will I pluck them up by the roots out of my -land which I have given them; and this house, which I have sanctified -for my name, will I cast out of my sight, and will make it to be a -proverb and a byword among all nations. - -7:21 And this house, which is high, shall be an astonishment to every -one that passeth by it; so that he shall say, Why hath the LORD done -thus unto this land, and unto this house? 7:22 And it shall be -answered, Because they forsook the LORD God of their fathers, which -brought them forth out of the land of Egypt, and laid hold on other -gods, and worshipped them, and served them: therefore hath he brought -all this evil upon them. - -8:1 And it came to pass at the end of twenty years, wherein Solomon -had built the house of the LORD, and his own house, 8:2 That the -cities which Huram had restored to Solomon, Solomon built them, and -caused the children of Israel to dwell there. - -8:3 And Solomon went to Hamathzobah, and prevailed against it. - -8:4 And he built Tadmor in the wilderness, and all the store cities, -which he built in Hamath. - -8:5 Also he built Bethhoron the upper, and Bethhoron the nether, -fenced cities, with walls, gates, and bars; 8:6 And Baalath, and all -the store cities that Solomon had, and all the chariot cities, and the -cities of the horsemen, and all that Solomon desired to build in -Jerusalem, and in Lebanon, and throughout all the land of his -dominion. - -8:7 As for all the people that were left of the Hittites, and the -Amorites, and the Perizzites, and the Hivites, and the Jebusites, -which were not of Israel, 8:8 But of their children, who were left -after them in the land, whom the children of Israel consumed not, them -did Solomon make to pay tribute until this day. - -8:9 But of the children of Israel did Solomon make no servants for his -work; but they were men of war, and chief of his captains, and -captains of his chariots and horsemen. - -8:10 And these were the chief of king Solomon's officers, even two -hundred and fifty, that bare rule over the people. - -8:11 And Solomon brought up the daughter of Pharaoh out of the city of -David unto the house that he had built for her: for he said, My wife -shall not dwell in the house of David king of Israel, because the -places are holy, whereunto the ark of the LORD hath come. - -8:12 Then Solomon offered burnt offerings unto the LORD on the altar -of the LORD, which he had built before the porch, 8:13 Even after a -certain rate every day, offering according to the commandment of -Moses, on the sabbaths, and on the new moons, and on the solemn -feasts, three times in the year, even in the feast of unleavened -bread, and in the feast of weeks, and in the feast of tabernacles. - -8:14 And he appointed, according to the order of David his father, the -courses of the priests to their service, and the Levites to their -charges, to praise and minister before the priests, as the duty of -every day required: the porters also by their courses at every gate: -for so had David the man of God commanded. - -8:15 And they departed not from the commandment of the king unto the -priests and Levites concerning any matter, or concerning the -treasures. - -8:16 Now all the work of Solomon was prepared unto the day of the -foundation of the house of the LORD, and until it was finished. So the -house of the LORD was perfected. - -8:17 Then went Solomon to Eziongeber, and to Eloth, at the sea side in -the land of Edom. - -8:18 And Huram sent him by the hands of his servants ships, and -servants that had knowledge of the sea; and they went with the -servants of Solomon to Ophir, and took thence four hundred and fifty -talents of gold, and brought them to king Solomon. - -9:1 And when the queen of Sheba heard of the fame of Solomon, she came -to prove Solomon with hard questions at Jerusalem, with a very great -company, and camels that bare spices, and gold in abundance, and -precious stones: and when she was come to Solomon, she communed with -him of all that was in her heart. - -9:2 And Solomon told her all her questions: and there was nothing hid -from Solomon which he told her not. - -9:3 And when the queen of Sheba had seen the wisdom of Solomon, and -the house that he had built, 9:4 And the meat of his table, and the -sitting of his servants, and the attendance of his ministers, and -their apparel; his cupbearers also, and their apparel; and his ascent -by which he went up into the house of the LORD; there was no more -spirit in her. - -9:5 And she said to the king, It was a true report which I heard in -mine own land of thine acts, and of thy wisdom: 9:6 Howbeit I believed -not their words, until I came, and mine eyes had seen it: and, behold, -the one half of the greatness of thy wisdom was not told me: for thou -exceedest the fame that I heard. - -9:7 Happy are thy men, and happy are these thy servants, which stand -continually before thee, and hear thy wisdom. - -9:8 Blessed be the LORD thy God, which delighted in thee to set thee -on his throne, to be king for the LORD thy God: because thy God loved -Israel, to establish them for ever, therefore made he thee king over -them, to do judgment and justice. - -9:9 And she gave the king an hundred and twenty talents of gold, and -of spices great abundance, and precious stones: neither was there any -such spice as the queen of Sheba gave king Solomon. - -9:10 And the servants also of Huram, and the servants of Solomon, -which brought gold from Ophir, brought algum trees and precious -stones. - -9:11 And the king made of the algum trees terraces to the house of the -LORD, and to the king's palace, and harps and psalteries for singers: -and there were none such seen before in the land of Judah. - -9:12 And king Solomon gave to the queen of Sheba all her desire, -whatsoever she asked, beside that which she had brought unto the king. -So she turned, and went away to her own land, she and her servants. - -9:13 Now the weight of gold that came to Solomon in one year was six -hundred and threescore and six talents of gold; 9:14 Beside that which -chapmen and merchants brought. And all the kings of Arabia and -governors of the country brought gold and silver to Solomon. - -9:15 And king Solomon made two hundred targets of beaten gold: six -hundred shekels of beaten gold went to one target. - -9:16 And three hundred shields made he of beaten gold: three hundred -shekels of gold went to one shield. And the king put them in the house -of the forest of Lebanon. - -9:17 Moreover the king made a great throne of ivory, and overlaid it -with pure gold. - -9:18 And there were six steps to the throne, with a footstool of gold, -which were fastened to the throne, and stays on each side of the -sitting place, and two lions standing by the stays: 9:19 And twelve -lions stood there on the one side and on the other upon the six steps. -There was not the like made in any kingdom. - -9:20 And all the drinking vessels of king Solomon were of gold, and -all the vessels of the house of the forest of Lebanon were of pure -gold: none were of silver; it was not any thing accounted of in the -days of Solomon. - -9:21 For the king's ships went to Tarshish with the servants of Huram: -every three years once came the ships of Tarshish bringing gold, and -silver, ivory, and apes, and peacocks. - -9:22 And king Solomon passed all the kings of the earth in riches and -wisdom. - -9:23 And all the kings of the earth sought the presence of Solomon, to -hear his wisdom, that God had put in his heart. - -9:24 And they brought every man his present, vessels of silver, and -vessels of gold, and raiment, harness, and spices, horses, and mules, -a rate year by year. - -9:25 And Solomon had four thousand stalls for horses and chariots, and -twelve thousand horsemen; whom he bestowed in the chariot cities, and -with the king at Jerusalem. - -9:26 And he reigned over all the kings from the river even unto the -land of the Philistines, and to the border of Egypt. - -9:27 And the king made silver in Jerusalem as stones, and cedar trees -made he as the sycomore trees that are in the low plains in abundance. - -9:28 And they brought unto Solomon horses out of Egypt, and out of all -lands. - -9:29 Now the rest of the acts of Solomon, first and last, are they not -written in the book of Nathan the prophet, and in the prophecy of -Ahijah the Shilonite, and in the visions of Iddo the seer against -Jeroboam the son of Nebat? 9:30 And Solomon reigned in Jerusalem over -all Israel forty years. - -9:31 And Solomon slept with his fathers, and he was buried in the city -of David his father: and Rehoboam his son reigned in his stead. - -10:1 And Rehoboam went to Shechem: for to Shechem were all Israel come -to make him king. - -10:2 And it came to pass, when Jeroboam the son of Nebat, who was in -Egypt, whither he fled from the presence of Solomon the king, heard -it, that Jeroboam returned out of Egypt. - -10:3 And they sent and called him. So Jeroboam and all Israel came and -spake to Rehoboam, saying, 10:4 Thy father made our yoke grievous: now -therefore ease thou somewhat the grievous servitude of thy father, and -his heavy yoke that he put upon us, and we will serve thee. - -10:5 And he said unto them, Come again unto me after three days. And -the people departed. - -10:6 And king Rehoboam took counsel with the old men that had stood -before Solomon his father while he yet lived, saying, What counsel -give ye me to return answer to this people? 10:7 And they spake unto -him, saying, If thou be kind to this people, and please them, and -speak good words to them, they will be thy servants for ever. - -10:8 But he forsook the counsel which the old men gave him, and took -counsel with the young men that were brought up with him, that stood -before him. - -10:9 And he said unto them, What advice give ye that we may return -answer to this people, which have spoken to me, saying, Ease somewhat -the yoke that thy father did put upon us? 10:10 And the young men -that were brought up with him spake unto him, saying, Thus shalt thou -answer the people that spake unto thee, saying, Thy father made our -yoke heavy, but make thou it somewhat lighter for us; thus shalt thou -say unto them, My little finger shall be thicker than my father's -loins. - -10:11 For whereas my father put a heavy yoke upon you, I will put more -to your yoke: my father chastised you with whips, but I will chastise -you with scorpions. - -10:12 So Jeroboam and all the people came to Rehoboam on the third -day, as the king bade, saying, Come again to me on the third day. - -10:13 And the king answered them roughly; and king Rehoboam forsook -the counsel of the old men, 10:14 And answered them after the advice -of the young men, saying, My father made your yoke heavy, but I will -add thereto: my father chastised you with whips, but I will chastise -you with scorpions. - -10:15 So the king hearkened not unto the people: for the cause was of -God, that the LORD might perform his word, which he spake by the hand -of Ahijah the Shilonite to Jeroboam the son of Nebat. - -10:16 And when all Israel saw that the king would not hearken unto -them, the people answered the king, saying, What portion have we in -David? and we have none inheritance in the son of Jesse: every man to -your tents, O Israel: and now, David, see to thine own house. So all -Israel went to their tents. - -10:17 But as for the children of Israel that dwelt in the cities of -Judah, Rehoboam reigned over them. - -10:18 Then king Rehoboam sent Hadoram that was over the tribute; and -the children of Israel stoned him with stones, that he died. But king -Rehoboam made speed to get him up to his chariot, to flee to -Jerusalem. - -10:19 And Israel rebelled against the house of David unto this day. - -11:1 And when Rehoboam was come to Jerusalem, he gathered of the house -of Judah and Benjamin an hundred and fourscore thousand chosen men, -which were warriors, to fight against Israel, that he might bring the -kingdom again to Rehoboam. - -11:2 But the word of the LORD came to Shemaiah the man of God, saying, -11:3 Speak unto Rehoboam the son of Solomon, king of Judah, and to all -Israel in Judah and Benjamin, saying, 11:4 Thus saith the LORD, Ye -shall not go up, nor fight against your brethren: return every man to -his house: for this thing is done of me. And they obeyed the words of -the LORD, and returned from going against Jeroboam. - -11:5 And Rehoboam dwelt in Jerusalem, and built cities for defence in -Judah. - -11:6 He built even Bethlehem, and Etam, and Tekoa, 11:7 And Bethzur, -and Shoco, and Adullam, 11:8 And Gath, and Mareshah, and Ziph, 11:9 -And Adoraim, and Lachish, and Azekah, 11:10 And Zorah, and Aijalon, -and Hebron, which are in Judah and in Benjamin fenced cities. - -11:11 And he fortified the strong holds, and put captains in them, and -store of victual, and of oil and wine. - -11:12 And in every several city he put shields and spears, and made -them exceeding strong, having Judah and Benjamin on his side. - -11:13 And the priests and the Levites that were in all Israel resorted -to him out of all their coasts. - -11:14 For the Levites left their suburbs and their possession, and -came to Judah and Jerusalem: for Jeroboam and his sons had cast them -off from executing the priest's office unto the LORD: 11:15 And he -ordained him priests for the high places, and for the devils, and for -the calves which he had made. - -11:16 And after them out of all the tribes of Israel such as set their -hearts to seek the LORD God of Israel came to Jerusalem, to sacrifice -unto the LORD God of their fathers. - -11:17 So they strengthened the kingdom of Judah, and made Rehoboam the -son of Solomon strong, three years: for three years they walked in the -way of David and Solomon. - -11:18 And Rehoboam took him Mahalath the daughter of Jerimoth the son -of David to wife, and Abihail the daughter of Eliab the son of Jesse; -11:19 Which bare him children; Jeush, and Shamariah, and Zaham. - -11:20 And after her he took Maachah the daughter of Absalom; which -bare him Abijah, and Attai, and Ziza, and Shelomith. - -11:21 And Rehoboam loved Maachah the daughter of Absalom above all his -wives and his concubines: (for he took eighteen wives, and threescore -concubines; and begat twenty and eight sons, and threescore -daughters.) 11:22 And Rehoboam made Abijah the son of Maachah the -chief, to be ruler among his brethren: for he thought to make him -king. - -11:23 And he dealt wisely, and dispersed of all his children -throughout all the countries of Judah and Benjamin, unto every fenced -city: and he gave them victual in abundance. And he desired many -wives. - -12:1 And it came to pass, when Rehoboam had established the kingdom, -and had strengthened himself, he forsook the law of the LORD, and all -Israel with him. - -12:2 And it came to pass, that in the fifth year of king Rehoboam -Shishak king of Egypt came up against Jerusalem, because they had -transgressed against the LORD, 12:3 With twelve hundred chariots, and -threescore thousand horsemen: and the people were without number that -came with him out of Egypt; the Lubims, the Sukkiims, and the -Ethiopians. - -12:4 And he took the fenced cities which pertained to Judah, and came -to Jerusalem. - -12:5 Then came Shemaiah the prophet to Rehoboam, and to the princes of -Judah, that were gathered together to Jerusalem because of Shishak, -and said unto them, Thus saith the LORD, Ye have forsaken me, and -therefore have I also left you in the hand of Shishak. - -12:6 Whereupon the princes of Israel and the king humbled themselves; -and they said, The LORD is righteous. - -12:7 And when the LORD saw that they humbled themselves, the word of -the LORD came to Shemaiah, saying, They have humbled themselves; -therefore I will not destroy them, but I will grant them some -deliverance; and my wrath shall not be poured out upon Jerusalem by -the hand of Shishak. - -12:8 Nevertheless they shall be his servants; that they may know my -service, and the service of the kingdoms of the countries. - -12:9 So Shishak king of Egypt came up against Jerusalem, and took away -the treasures of the house of the LORD, and the treasures of the -king's house; he took all: he carried away also the shields of gold -which Solomon had made. - -12:10 Instead of which king Rehoboam made shields of brass, and -committed them to the hands of the chief of the guard, that kept the -entrance of the king's house. - -12:11 And when the king entered into the house of the LORD, the guard -came and fetched them, and brought them again into the guard chamber. - -12:12 And when he humbled himself, the wrath of the LORD turned from -him, that he would not destroy him altogether: and also in Judah -things went well. - -12:13 So king Rehoboam strengthened himself in Jerusalem, and reigned: -for Rehoboam was one and forty years old when he began to reign, and -he reigned seventeen years in Jerusalem, the city which the LORD had -chosen out of all the tribes of Israel, to put his name there. And his -mother's name was Naamah an Ammonitess. - -12:14 And he did evil, because he prepared not his heart to seek the -LORD. - -12:15 Now the acts of Rehoboam, first and last, are they not written -in the book of Shemaiah the prophet, and of Iddo the seer concerning -genealogies? And there were wars between Rehoboam and Jeroboam -continually. - -12:16 And Rehoboam slept with his fathers, and was buried in the city -of David: and Abijah his son reigned in his stead. - -13:1 Now in the eighteenth year of king Jeroboam began Abijah to reign -over Judah. - -13:2 He reigned three years in Jerusalem. His mother's name also was -Michaiah the daughter of Uriel of Gibeah. And there was war between -Abijah and Jeroboam. - -13:3 And Abijah set the battle in array with an army of valiant men of -war, even four hundred thousand chosen men: Jeroboam also set the -battle in array against him with eight hundred thousand chosen men, -being mighty men of valour. - -13:4 And Abijah stood up upon mount Zemaraim, which is in mount -Ephraim, and said, Hear me, thou Jeroboam, and all Israel; 13:5 Ought -ye not to know that the LORD God of Israel gave the kingdom over -Israel to David for ever, even to him and to his sons by a covenant of -salt? 13:6 Yet Jeroboam the son of Nebat, the servant of Solomon the -son of David, is risen up, and hath rebelled against his lord. - -13:7 And there are gathered unto him vain men, the children of Belial, -and have strengthened themselves against Rehoboam the son of Solomon, -when Rehoboam was young and tenderhearted, and could not withstand -them. - -13:8 And now ye think to withstand the kingdom of the LORD in the hand -of the sons of David; and ye be a great multitude, and there are with -your golden calves, which Jeroboam made you for gods. - -13:9 Have ye not cast out the priests of the LORD, the sons of Aaron, -and the Levites, and have made you priests after the manner of the -nations of other lands? so that whosoever cometh to consecrate himself -with a young bullock and seven rams, the same may be a priest of them -that are no gods. - -13:10 But as for us, the LORD is our God, and we have not forsaken -him; and the priests, which minister unto the LORD, are the sons of -Aaron, and the Levites wait upon their business: 13:11 And they burn -unto the LORD every morning and every evening burnt sacrifices and -sweet incense: the shewbread also set they in order upon the pure -table; and the candlestick of gold with the lamps thereof, to burn -every evening: for we keep the charge of the LORD our God; but ye have -forsaken him. - -13:12 And, behold, God himself is with us for our captain, and his -priests with sounding trumpets to cry alarm against you. O children of -Israel, fight ye not against the LORD God of your fathers; for ye -shall not prosper. - -13:13 But Jeroboam caused an ambushment to come about behind them: so -they were before Judah, and the ambushment was behind them. - -13:14 And when Judah looked back, behold, the battle was before and -behind: and they cried unto the LORD, and the priests sounded with the -trumpets. - -13:15 Then the men of Judah gave a shout: and as the men of Judah -shouted, it came to pass, that God smote Jeroboam and all Israel -before Abijah and Judah. - -13:16 And the children of Israel fled before Judah: and God delivered -them into their hand. - -13:17 And Abijah and his people slew them with a great slaughter: so -there fell down slain of Israel five hundred thousand chosen men. - -13:18 Thus the children of Israel were brought under at that time, and -the children of Judah prevailed, because they relied upon the LORD God -of their fathers. - -13:19 And Abijah pursued after Jeroboam, and took cities from him, -Bethel with the towns thereof, and Jeshanah with the towns thereof, -and Ephraim with the towns thereof. - -13:20 Neither did Jeroboam recover strength again in the days of -Abijah: and the LORD struck him, and he died. - -13:21 But Abijah waxed mighty, and married fourteen wives, and begat -twenty and two sons, and sixteen daughters. - -13:22 And the rest of the acts of Abijah, and his ways, and his -sayings, are written in the story of the prophet Iddo. - -14:1 So Abijah slept with his fathers, and they buried him in the city -of David: and Asa his son reigned in his stead. In his days the land -was quiet ten years. - -14:2 And Asa did that which was good and right in the eyes of the LORD -his God: 14:3 For he took away the altars of the strange gods, and the -high places, and brake down the images, and cut down the groves: 14:4 -And commanded Judah to seek the LORD God of their fathers, and to do -the law and the commandment. - -14:5 Also he took away out of all the cities of Judah the high places -and the images: and the kingdom was quiet before him. - -14:6 And he built fenced cities in Judah: for the land had rest, and -he had no war in those years; because the LORD had given him rest. - -14:7 Therefore he said unto Judah, Let us build these cities, and make -about them walls, and towers, gates, and bars, while the land is yet -before us; because we have sought the LORD our God, we have sought -him, and he hath given us rest on every side. So they built and -prospered. - -14:8 And Asa had an army of men that bare targets and spears, out of -Judah three hundred thousand; and out of Benjamin, that bare shields -and drew bows, two hundred and fourscore thousand: all these were -mighty men of valour. - -14:9 And there came out against them Zerah the Ethiopian with an host -of a thousand thousand, and three hundred chariots; and came unto -Mareshah. - -14:10 Then Asa went out against him, and they set the battle in array -in the valley of Zephathah at Mareshah. - -14:11 And Asa cried unto the LORD his God, and said, LORD, it is -nothing with thee to help, whether with many, or with them that have -no power: help us, O LORD our God; for we rest on thee, and in thy -name we go against this multitude. O LORD, thou art our God; let no -man prevail against thee. - -14:12 So the LORD smote the Ethiopians before Asa, and before Judah; -and the Ethiopians fled. - -14:13 And Asa and the people that were with him pursued them unto -Gerar: and the Ethiopians were overthrown, that they could not recover -themselves; for they were destroyed before the LORD, and before his -host; and they carried away very much spoil. - -14:14 And they smote all the cities round about Gerar; for the fear of -the LORD came upon them: and they spoiled all the cities; for there -was exceeding much spoil in them. - -14:15 They smote also the tents of cattle, and carried away sheep and -camels in abundance, and returned to Jerusalem. - -15:1 And the Spirit of God came upon Azariah the son of Oded: 15:2 And -he went out to meet Asa, and said unto him, Hear ye me, Asa, and all -Judah and Benjamin; The LORD is with you, while ye be with him; and if -ye seek him, he will be found of you; but if ye forsake him, he will -forsake you. - -15:3 Now for a long season Israel hath been without the true God, and -without a teaching priest, and without law. - -15:4 But when they in their trouble did turn unto the LORD God of -Israel, and sought him, he was found of them. - -15:5 And in those times there was no peace to him that went out, nor -to him that came in, but great vexations were upon all the inhabitants -of the countries. - -15:6 And nation was destroyed of nation, and city of city: for God did -vex them with all adversity. - -15:7 Be ye strong therefore, and let not your hands be weak: for your -work shall be rewarded. - -15:8 And when Asa heard these words, and the prophecy of Oded the -prophet, he took courage, and put away the abominable idols out of all -the land of Judah and Benjamin, and out of the cities which he had -taken from mount Ephraim, and renewed the altar of the LORD, that was -before the porch of the LORD. - -15:9 And he gathered all Judah and Benjamin, and the strangers with -them out of Ephraim and Manasseh, and out of Simeon: for they fell to -him out of Israel in abundance, when they saw that the LORD his God -was with him. - -15:10 So they gathered themselves together at Jerusalem in the third -month, in the fifteenth year of the reign of Asa. - -15:11 And they offered unto the LORD the same time, of the spoil which -they had brought, seven hundred oxen and seven thousand sheep. - -15:12 And they entered into a covenant to seek the LORD God of their -fathers with all their heart and with all their soul; 15:13 That -whosoever would not seek the LORD God of Israel should be put to -death, whether small or great, whether man or woman. - -15:14 And they sware unto the LORD with a loud voice, and with -shouting, and with trumpets, and with cornets. - -15:15 And all Judah rejoiced at the oath: for they had sworn with all -their heart, and sought him with their whole desire; and he was found -of them: and the LORD gave them rest round about. - -15:16 And also concerning Maachah the mother of Asa the king, he -removed her from being queen, because she had made an idol in a grove: -and Asa cut down her idol, and stamped it, and burnt it at the brook -Kidron. - -15:17 But the high places were not taken away out of Israel: -nevertheless the heart of Asa was perfect all his days. - -15:18 And he brought into the house of God the things that his father -had dedicated, and that he himself had dedicated, silver, and gold, -and vessels. - -15:19 And there was no more war unto the five and thirtieth year of -the reign of Asa. - -16:1 In the six and thirtieth year of the reign of Asa Baasha king of -Israel came up against Judah, and built Ramah, to the intent that he -might let none go out or come in to Asa king of Judah. - -16:2 Then Asa brought out silver and gold out of the treasures of the -house of the LORD and of the king's house, and sent to Benhadad king -of Syria, that dwelt at Damascus, saying, 16:3 There is a league -between me and thee, as there was between my father and thy father: -behold, I have sent thee silver and gold; go, break thy league with -Baasha king of Israel, that he may depart from me. - -16:4 And Benhadad hearkened unto king Asa, and sent the captains of -his armies against the cities of Israel; and they smote Ijon, and Dan, -and Abelmaim, and all the store cities of Naphtali. - -16:5 And it came to pass, when Baasha heard it, that he left off -building of Ramah, and let his work cease. - -16:6 Then Asa the king took all Judah; and they carried away the -stones of Ramah, and the timber thereof, wherewith Baasha was -building; and he built therewith Geba and Mizpah. - -16:7 And at that time Hanani the seer came to Asa king of Judah, and -said unto him, Because thou hast relied on the king of Syria, and not -relied on the LORD thy God, therefore is the host of the king of Syria -escaped out of thine hand. - -16:8 Were not the Ethiopians and the Lubims a huge host, with very -many chariots and horsemen? yet, because thou didst rely on the LORD, -he delivered them into thine hand. - -16:9 For the eyes of the LORD run to and fro throughout the whole -earth, to shew himself strong in the behalf of them whose heart is -perfect toward him. Herein thou hast done foolishly: therefore from -henceforth thou shalt have wars. - -16:10 Then Asa was wroth with the seer, and put him in a prison house; -for he was in a rage with him because of this thing. And Asa oppressed -some of the people the same time. - -16:11 And, behold, the acts of Asa, first and last, lo, they are -written in the book of the kings of Judah and Israel. - -16:12 And Asa in the thirty and ninth year of his reign was diseased -in his feet, until his disease was exceeding great: yet in his disease -he sought not to the LORD, but to the physicians. - -16:13 And Asa slept with his fathers, and died in the one and fortieth -year of his reign. - -16:14 And they buried him in his own sepulchres, which he had made for -himself in the city of David, and laid him in the bed which was filled -with sweet odours and divers kinds of spices prepared by the -apothecaries' art: and they made a very great burning for him. - -17:1 And Jehoshaphat his son reigned in his stead, and strengthened -himself against Israel. - -17:2 And he placed forces in all the fenced cities of Judah, and set -garrisons in the land of Judah, and in the cities of Ephraim, which -Asa his father had taken. - -17:3 And the LORD was with Jehoshaphat, because he walked in the first -ways of his father David, and sought not unto Baalim; 17:4 But sought -to the Lord God of his father, and walked in his commandments, and not -after the doings of Israel. - -17:5 Therefore the LORD stablished the kingdom in his hand; and all -Judah brought to Jehoshaphat presents; and he had riches and honour in -abundance. - -17:6 And his heart was lifted up in the ways of the LORD: moreover he -took away the high places and groves out of Judah. - -17:7 Also in the third year of his reign he sent to his princes, even -to Benhail, and to Obadiah, and to Zechariah, and to Nethaneel, and to -Michaiah, to teach in the cities of Judah. - -17:8 And with them he sent Levites, even Shemaiah, and Nethaniah, and -Zebadiah, and Asahel, and Shemiramoth, and Jehonathan, and Adonijah, -and Tobijah, and Tobadonijah, Levites; and with them Elishama and -Jehoram, priests. - -17:9 And they taught in Judah, and had the book of the law of the LORD -with them, and went about throughout all the cities of Judah, and -taught the people. - -17:10 And the fear of the LORD fell upon all the kingdoms of the lands -that were round about Judah, so that they made no war against -Jehoshaphat. - -17:11 Also some of the Philistines brought Jehoshaphat presents, and -tribute silver; and the Arabians brought him flocks, seven thousand -and seven hundred rams, and seven thousand and seven hundred he goats. - -17:12 And Jehoshaphat waxed great exceedingly; and he built in Judah -castles, and cities of store. - -17:13 And he had much business in the cities of Judah: and the men of -war, mighty men of valour, were in Jerusalem. - -17:14 And these are the numbers of them according to the house of -their fathers: Of Judah, the captains of thousands; Adnah the chief, -and with him mighty men of valour three hundred thousand. - -17:15 And next to him was Jehohanan the captain, and with him two -hundred and fourscore thousand. - -17:16 And next him was Amasiah the son of Zichri, who willingly -offered himself unto the LORD; and with him two hundred thousand -mighty men of valour. - -17:17 And of Benjamin; Eliada a mighty man of valour, and with him -armed men with bow and shield two hundred thousand. - -17:18 And next him was Jehozabad, and with him an hundred and -fourscore thousand ready prepared for the war. - -17:19 These waited on the king, beside those whom the king put in the -fenced cities throughout all Judah. - -18:1 Now Jehoshaphat had riches and honour in abundance, and joined -affinity with Ahab. - -18:2 And after certain years he went down to Ahab to Samaria. And Ahab -killed sheep and oxen for him in abundance, and for the people that he -had with him, and persuaded him to go up with him to Ramothgilead. - -18:3 And Ahab king of Israel said unto Jehoshaphat king of Judah, Wilt -thou go with me to Ramothgilead? And he answered him, I am as thou -art, and my people as thy people; and we will be with thee in the war. - -18:4 And Jehoshaphat said unto the king of Israel, Enquire, I pray -thee, at the word of the LORD to day. - -18:5 Therefore the king of Israel gathered together of prophets four -hundred men, and said unto them, Shall we go to Ramothgilead to -battle, or shall I forbear? And they said, Go up; for God will deliver -it into the king's hand. - -18:6 But Jehoshaphat said, Is there not here a prophet of the LORD -besides, that we might enquire of him? 18:7 And the king of Israel -said unto Jehoshaphat, There is yet one man, by whom we may enquire of -the LORD: but I hate him; for he never prophesied good unto me, but -always evil: the same is Micaiah the son of Imla. And Jehoshaphat -said, Let not the king say so. - -18:8 And the king of Israel called for one of his officers, and said, -Fetch quickly Micaiah the son of Imla. - -18:9 And the king of Israel and Jehoshaphat king of Judah sat either -of them on his throne, clothed in their robes, and they sat in a void -place at the entering in of the gate of Samaria; and all the prophets -prophesied before them. - -18:10 And Zedekiah the son of Chenaanah had made him horns of iron, -and said, Thus saith the LORD, With these thou shalt push Syria until -they be consumed. - -18:11 And all the prophets prophesied so, saying, Go up to -Ramothgilead, and prosper: for the LORD shall deliver it into the hand -of the king. - -18:12 And the messenger that went to call Micaiah spake to him, -saying, Behold, the words of the prophets declare good to the king -with one assent; let thy word therefore, I pray thee, be like one of -their's, and speak thou good. - -18:13 And Micaiah said, As the LORD liveth, even what my God saith, -that will I speak. - -18:14 And when he was come to the king, the king said unto him, -Micaiah, shall we go to Ramothgilead to battle, or shall I forbear? -And he said, Go ye up, and prosper, and they shall be delivered into -your hand. - -18:15 And the king said to him, How many times shall I adjure thee -that thou say nothing but the truth to me in the name of the LORD? -18:16 Then he said, I did see all Israel scattered upon the mountains, -as sheep that have no shepherd: and the LORD said, These have no -master; let them return therefore every man to his house in peace. - -18:17 And the king of Israel said to Jehoshaphat, Did I not tell thee -that he would not prophesy good unto me, but evil? 18:18 Again he -said, Therefore hear the word of the LORD; I saw the LORD sitting upon -his throne, and all the host of heaven standing on his right hand and -on his left. - -18:19 And the LORD said, Who shall entice Ahab king of Israel, that he -may go up and fall at Ramothgilead? And one spake saying after this -manner, and another saying after that manner. - -18:20 Then there came out a spirit, and stood before the LORD, and -said, I will entice him. And the LORD said unto him, Wherewith? 18:21 -And he said, I will go out, and be a lying spirit in the mouth of all -his prophets. And the Lord said, Thou shalt entice him, and thou shalt -also prevail: go out, and do even so. - -18:22 Now therefore, behold, the LORD hath put a lying spirit in the -mouth of these thy prophets, and the LORD hath spoken evil against -thee. - -18:23 Then Zedekiah the son of Chenaanah came near, and smote Micaiah -upon the cheek, and said, Which way went the Spirit of the LORD from -me to speak unto thee? 18:24 And Micaiah said, Behold, thou shalt see -on that day when thou shalt go into an inner chamber to hide thyself. - -18:25 Then the king of Israel said, Take ye Micaiah, and carry him -back to Amon the governor of the city, and to Joash the king's son; -18:26 And say, Thus saith the king, Put this fellow in the prison, and -feed him with bread of affliction and with water of affliction, until -I return in peace. - -18:27 And Micaiah said, If thou certainly return in peace, then hath -not the LORD spoken by me. And he said, Hearken, all ye people. - -18:28 So the king of Israel and Jehoshaphat the king of Judah went up -to Ramothgilead. - -18:29 And the king of Israel said unto Jehoshaphat, I will disguise -myself, and I will go to the battle; but put thou on thy robes. So the -king of Israel disguised himself; and they went to the battle. - -18:30 Now the king of Syria had commanded the captains of the chariots -that were with him, saying, Fight ye not with small or great, save -only with the king of Israel. - -18:31 And it came to pass, when the captains of the chariots saw -Jehoshaphat, that they said, It is the king of Israel. Therefore they -compassed about him to fight: but Jehoshaphat cried out, and the LORD -helped him; and God moved them to depart from him. - -18:32 For it came to pass, that, when the captains of the chariots -perceived that it was not the king of Israel, they turned back again -from pursuing him. - -18:33 And a certain man drew a bow at a venture, and smote the king of -Israel between the joints of the harness: therefore he said to his -chariot man, Turn thine hand, that thou mayest carry me out of the -host; for I am wounded. - -18:34 And the battle increased that day: howbeit the king of Israel -stayed himself up in his chariot against the Syrians until the even: -and about the time of the sun going down he died. - -19:1 And Jehoshaphat the king of Judah returned to his house in peace -to Jerusalem. - -19:2 And Jehu the son of Hanani the seer went out to meet him, and -said to king Jehoshaphat, Shouldest thou help the ungodly, and love -them that hate the LORD? therefore is wrath upon thee from before the -LORD. - -19:3 Nevertheless there are good things found in thee, in that thou -hast taken away the groves out of the land, and hast prepared thine -heart to seek God. - -19:4 And Jehoshaphat dwelt at Jerusalem: and he went out again through -the people from Beersheba to mount Ephraim, and brought them back unto -the LORD God of their fathers. - -19:5 And he set judges in the land throughout all the fenced cities of -Judah, city by city, 19:6 And said to the judges, Take heed what ye -do: for ye judge not for man, but for the LORD, who is with you in the -judgment. - -19:7 Wherefore now let the fear of the LORD be upon you; take heed and -do it: for there is no iniquity with the LORD our God, nor respect of -persons, nor taking of gifts. - -19:8 Moreover in Jerusalem did Jehoshaphat set of the Levites, and of -the priests, and of the chief of the fathers of Israel, for the -judgment of the LORD, and for controversies, when they returned to -Jerusalem. - -19:9 And he charged them, saying, Thus shall ye do in the fear of the -LORD, faithfully, and with a perfect heart. - -19:10 And what cause soever shall come to you of your brethren that -dwell in your cities, between blood and blood, between law and -commandment, statutes and judgments, ye shall even warn them that they -trespass not against the LORD, and so wrath come upon you, and upon -your brethren: this do, and ye shall not trespass. - -19:11 And, behold, Amariah the chief priest is over you in all matters -of the LORD; and Zebadiah the son of Ishmael, the ruler of the house -of Judah, for all the king's matters: also the Levites shall be -officers before you. Deal courageously, and the LORD shall be with the -good. - -20:1 It came to pass after this also, that the children of Moab, and -the children of Ammon, and with them other beside the Ammonites, came -against Jehoshaphat to battle. - -20:2 Then there came some that told Jehoshaphat, saying, There cometh -a great multitude against thee from beyond the sea on this side Syria; -and, behold, they be in Hazazontamar, which is Engedi. - -20:3 And Jehoshaphat feared, and set himself to seek the LORD, and -proclaimed a fast throughout all Judah. - -20:4 And Judah gathered themselves together, to ask help of the LORD: -even out of all the cities of Judah they came to seek the LORD. - -20:5 And Jehoshaphat stood in the congregation of Judah and Jerusalem, -in the house of the LORD, before the new court, 20:6 And said, O LORD -God of our fathers, art not thou God in heaven? and rulest not thou -over all the kingdoms of the heathen? and in thine hand is there not -power and might, so that none is able to withstand thee? 20:7 Art not -thou our God, who didst drive out the inhabitants of this land before -thy people Israel, and gavest it to the seed of Abraham thy friend for -ever? 20:8 And they dwelt therein, and have built thee a sanctuary -therein for thy name, saying, 20:9 If, when evil cometh upon us, as -the sword, judgment, or pestilence, or famine, we stand before this -house, and in thy presence, (for thy name is in this house,) and cry -unto thee in our affliction, then thou wilt hear and help. - -20:10 And now, behold, the children of Ammon and Moab and mount Seir, -whom thou wouldest not let Israel invade, when they came out of the -land of Egypt, but they turned from them, and destroyed them not; -20:11 Behold, I say, how they reward us, to come to cast us out of thy -possession, which thou hast given us to inherit. - -20:12 O our God, wilt thou not judge them? for we have no might -against this great company that cometh against us; neither know we -what to do: but our eyes are upon thee. - -20:13 And all Judah stood before the LORD, with their little ones, -their wives, and their children. - -20:14 Then upon Jahaziel the son of Zechariah, the son of Benaiah, the -son of Jeiel, the son of Mattaniah, a Levite of the sons of Asaph, -came the Spirit of the LORD in the midst of the congregation; 20:15 -And he said, Hearken ye, all Judah, and ye inhabitants of Jerusalem, -and thou king Jehoshaphat, Thus saith the LORD unto you, Be not afraid -nor dismayed by reason of this great multitude; for the battle is not -yours, but God's. - -20:16 To morrow go ye down against them: behold, they come up by the -cliff of Ziz; and ye shall find them at the end of the brook, before -the wilderness of Jeruel. - -20:17 Ye shall not need to fight in this battle: set yourselves, stand -ye still, and see the salvation of the LORD with you, O Judah and -Jerusalem: fear not, nor be dismayed; to morrow go out against them: -for the LORD will be with you. - -20:18 And Jehoshaphat bowed his head with his face to the ground: and -all Judah and the inhabitants of Jerusalem fell before the LORD, -worshipping the LORD. - -20:19 And the Levites, of the children of the Kohathites, and of the -children of the Korhites, stood up to praise the LORD God of Israel -with a loud voice on high. - -20:20 And they rose early in the morning, and went forth into the -wilderness of Tekoa: and as they went forth, Jehoshaphat stood and -said, Hear me, O Judah, and ye inhabitants of Jerusalem; Believe in -the LORD your God, so shall ye be established; believe his prophets, -so shall ye prosper. - -20:21 And when he had consulted with the people, he appointed singers -unto the LORD, and that should praise the beauty of holiness, as they -went out before the army, and to say, Praise the LORD; for his mercy -endureth for ever. - -20:22 And when they began to sing and to praise, the LORD set -ambushments against the children of Ammon, Moab, and mount Seir, which -were come against Judah; and they were smitten. - -20:23 For the children of Ammon and Moab stood up against the -inhabitants of mount Seir, utterly to slay and destroy them: and when -they had made an end of the inhabitants of Seir, every one helped to -destroy another. - -20:24 And when Judah came toward the watch tower in the wilderness, -they looked unto the multitude, and, behold, they were dead bodies -fallen to the earth, and none escaped. - -20:25 And when Jehoshaphat and his people came to take away the spoil -of them, they found among them in abundance both riches with the dead -bodies, and precious jewels, which they stripped off for themselves, -more than they could carry away: and they were three days in gathering -of the spoil, it was so much. - -20:26 And on the fourth day they assembled themselves in the valley of -Berachah; for there they blessed the LORD: therefore the name of the -same place was called, The valley of Berachah, unto this day. - -20:27 Then they returned, every man of Judah and Jerusalem, and -Jehoshaphat in the forefront of them, to go again to Jerusalem with -joy; for the LORD had made them to rejoice over their enemies. - -20:28 And they came to Jerusalem with psalteries and harps and -trumpets unto the house of the LORD. - -20:29 And the fear of God was on all the kingdoms of those countries, -when they had heard that the LORD fought against the enemies of -Israel. - -20:30 So the realm of Jehoshaphat was quiet: for his God gave him rest -round about. - -20:31 And Jehoshaphat reigned over Judah: he was thirty and five years -old when he began to reign, and he reigned twenty and five years in -Jerusalem. - -And his mother's name was Azubah the daughter of Shilhi. - -20:32 And he walked in the way of Asa his father, and departed not -from it, doing that which was right in the sight of the LORD. - -20:33 Howbeit the high places were not taken away: for as yet the -people had not prepared their hearts unto the God of their fathers. - -20:34 Now the rest of the acts of Jehoshaphat, first and last, behold, -they are written in the book of Jehu the son of Hanani, who is -mentioned in the book of the kings of Israel. - -20:35 And after this did Jehoshaphat king of Judah join himself with -Ahaziah king of Israel, who did very wickedly: 20:36 And he joined -himself with him to make ships to go to Tarshish: and they made the -ships in Eziongaber. - -20:37 Then Eliezer the son of Dodavah of Mareshah prophesied against -Jehoshaphat, saying, Because thou hast joined thyself with Ahaziah, -the LORD hath broken thy works. And the ships were broken, that they -were not able to go to Tarshish. - -21:1 Now Jehoshaphat slept with his fathers, and was buried with his -fathers in the city of David. And Jehoram his son reigned in his -stead. - -21:2 And he had brethren the sons of Jehoshaphat, Azariah, and Jehiel, -and Zechariah, and Azariah, and Michael, and Shephatiah: all these -were the sons of Jehoshaphat king of Israel. - -21:3 And their father gave them great gifts of silver, and of gold, -and of precious things, with fenced cities in Judah: but the kingdom -gave he to Jehoram; because he was the firstborn. - -21:4 Now when Jehoram was risen up to the kingdom of his father, he -strengthened himself, and slew all his brethren with the sword, and -divers also of the princes of Israel. - -21:5 Jehoram was thirty and two years old when he began to reign, and -he reigned eight years in Jerusalem. - -21:6 And he walked in the way of the kings of Israel, like as did the -house of Ahab: for he had the daughter of Ahab to wife: and he wrought -that which was evil in the eyes of the LORD. - -21:7 Howbeit the LORD would not destroy the house of David, because of -the covenant that he had made with David, and as he promised to give a -light to him and to his sons for ever. - -21:8 In his days the Edomites revolted from under the dominion of -Judah, and made themselves a king. - -21:9 Then Jehoram went forth with his princes, and all his chariots -with him: and he rose up by night, and smote the Edomites which -compassed him in, and the captains of the chariots. - -21:10 So the Edomites revolted from under the hand of Judah unto this -day. - -The same time also did Libnah revolt from under his hand; because he -had forsaken the LORD God of his fathers. - -21:11 Moreover he made high places in the mountains of Judah and -caused the inhabitants of Jerusalem to commit fornication, and -compelled Judah thereto. - -21:12 And there came a writing to him from Elijah the prophet, saying, -Thus saith the LORD God of David thy father, Because thou hast not -walked in the ways of Jehoshaphat thy father, nor in the ways of Asa -king of Judah, 21:13 But hast walked in the way of the kings of -Israel, and hast made Judah and the inhabitants of Jerusalem to go a -whoring, like to the whoredoms of the house of Ahab, and also hast -slain thy brethren of thy father's house, which were better than -thyself: 21:14 Behold, with a great plague will the LORD smite thy -people, and thy children, and thy wives, and all thy goods: 21:15 And -thou shalt have great sickness by disease of thy bowels, until thy -bowels fall out by reason of the sickness day by day. - -21:16 Moreover the LORD stirred up against Jehoram the spirit of the -Philistines, and of the Arabians, that were near the Ethiopians: 21:17 -And they came up into Judah, and brake into it, and carried away all -the substance that was found in the king's house, and his sons also, -and his wives; so that there was never a son left him, save Jehoahaz, -the youngest of his sons. - -21:18 And after all this the LORD smote him in his bowels with an -incurable disease. - -21:19 And it came to pass, that in process of time, after the end of -two years, his bowels fell out by reason of his sickness: so he died -of sore diseases. And his people made no burning for him, like the -burning of his fathers. - -21:20 Thirty and two years old was he when he began to reign, and he -reigned in Jerusalem eight years, and departed without being desired. -Howbeit they buried him in the city of David, but not in the -sepulchres of the kings. - -22:1 And the inhabitants of Jerusalem made Ahaziah his youngest son -king in his stead: for the band of men that came with the Arabians to -the camp had slain all the eldest. So Ahaziah the son of Jehoram king -of Judah reigned. - -22:2 Forty and two years old was Ahaziah when he began to reign, and -he reigned one year in Jerusalem. His mother's name also was Athaliah -the daughter of Omri. - -22:3 He also walked in the ways of the house of Ahab: for his mother -was his counsellor to do wickedly. - -22:4 Wherefore he did evil in the sight of the LORD like the house of -Ahab: for they were his counsellors after the death of his father to -his destruction. - -22:5 He walked also after their counsel, and went with Jehoram the son -of Ahab king of Israel to war against Hazael king of Syria at -Ramothgilead: and the Syrians smote Joram. - -22:6 And he returned to be healed in Jezreel because of the wounds -which were given him at Ramah, when he fought with Hazael king of -Syria. And Azariah the son of Jehoram king of Judah went down to see -Jehoram the son of Ahab at Jezreel, because he was sick. - -22:7 And the destruction of Ahaziah was of God by coming to Joram: for -when he was come, he went out with Jehoram against Jehu the son of -Nimshi, whom the LORD had anointed to cut off the house of Ahab. - -22:8 And it came to pass, that, when Jehu was executing judgment upon -the house of Ahab, and found the princes of Judah, and the sons of the -brethren of Ahaziah, that ministered to Ahaziah, he slew them. - -22:9 And he sought Ahaziah: and they caught him, (for he was hid in -Samaria,) and brought him to Jehu: and when they had slain him, they -buried him: Because, said they, he is the son of Jehoshaphat, who -sought the LORD with all his heart. So the house of Ahaziah had no -power to keep still the kingdom. - -22:10 But when Athaliah the mother of Ahaziah saw that her son was -dead, she arose and destroyed all the seed royal of the house of -Judah. - -22:11 But Jehoshabeath, the daughter of the king, took Joash the son -of Ahaziah, and stole him from among the king's sons that were slain, -and put him and his nurse in a bedchamber. So Jehoshabeath, the -daughter of king Jehoram, the wife of Jehoiada the priest, (for she -was the sister of Ahaziah,) hid him from Athaliah, so that she slew -him not. - -22:12 And he was with them hid in the house of God six years: and -Athaliah reigned over the land. - -23:1 And in the seventh year Jehoiada strengthened himself, and took -the captains of hundreds, Azariah the son of Jeroham, and Ishmael the -son of Jehohanan, and Azariah the son of Obed, and Maaseiah the son of -Adaiah, and Elishaphat the son of Zichri, into covenant with him. - -23:2 And they went about in Judah, and gathered the Levites out of all -the cities of Judah, and the chief of the fathers of Israel, and they -came to Jerusalem. - -23:3 And all the congregation made a covenant with the king in the -house of God. And he said unto them, Behold, the king's son shall -reign, as the LORD hath said of the sons of David. - -23:4 This is the thing that ye shall do; A third part of you entering -on the sabbath, of the priests and of the Levites, shall be porters of -the doors; 23:5 And a third part shall be at the king's house; and a -third part at the gate of the foundation: and all the people shall be -in the courts of the house of the LORD. - -23:6 But let none come into the house of the LORD, save the priests, -and they that minister of the Levites; they shall go in, for they are -holy: but all the people shall keep the watch of the LORD. - -23:7 And the Levites shall compass the king round about, every man -with his weapons in his hand; and whosoever else cometh into the -house, he shall be put to death: but be ye with the king when he -cometh in, and when he goeth out. - -23:8 So the Levites and all Judah did according to all things that -Jehoiada the priest had commanded, and took every man his men that -were to come in on the sabbath, with them that were to go out on the -sabbath: for Jehoiada the priest dismissed not the courses. - -23:9 Moreover Jehoiada the priest delivered to the captains of -hundreds spears, and bucklers, and shields, that had been king -David's, which were in the house of God. - -23:10 And he set all the people, every man having his weapon in his -hand, from the right side of the temple to the left side of the -temple, along by the altar and the temple, by the king round about. - -23:11 Then they brought out the king's son, and put upon him the -crown, and gave him the testimony, and made him king. And Jehoiada and -his sons anointed him, and said, God save the king. - -23:12 Now when Athaliah heard the noise of the people running and -praising the king, she came to the people into the house of the LORD: -23:13 And she looked, and, behold, the king stood at his pillar at the -entering in, and the princes and the trumpets by the king: and all the -people of the land rejoiced, and sounded with trumpets, also the -singers with instruments of musick, and such as taught to sing praise. -Then Athaliah rent her clothes, and said, Treason, Treason. - -23:14 Then Jehoiada the priest brought out the captains of hundreds -that were set over the host, and said unto them, Have her forth of the -ranges: and whoso followeth her, let him be slain with the sword. For -the priest said, Slay her not in the house of the LORD. - -23:15 So they laid hands on her; and when she was come to the entering -of the horse gate by the king's house, they slew her there. - -23:16 And Jehoiada made a covenant between him, and between all the -people, and between the king, that they should be the LORD's people. - -23:17 Then all the people went to the house of Baal, and brake it -down, and brake his altars and his images in pieces, and slew Mattan -the priest of Baal before the altars. - -23:18 Also Jehoiada appointed the offices of the house of the LORD by -the hand of the priests the Levites, whom David had distributed in the -house of the LORD, to offer the burnt offerings of the LORD, as it is -written in the law of Moses, with rejoicing and with singing, as it -was ordained by David. - -23:19 And he set the porters at the gates of the house of the LORD, -that none which was unclean in any thing should enter in. - -23:20 And he took the captains of hundreds, and the nobles, and the -governors of the people, and all the people of the land, and brought -down the king from the house of the LORD: and they came through the -high gate into the king's house, and set the king upon the throne of -the kingdom. - -23:21 And all the people of the land rejoiced: and the city was quiet, -after that they had slain Athaliah with the sword. - -24:1 Joash was seven years old when he began to reign, and he reigned -forty years in Jerusalem. His mother's name also was Zibiah of -Beersheba. - -24:2 And Joash did that which was right in the sight of the LORD all -the days of Jehoiada the priest. - -24:3 And Jehoiada took for him two wives; and he begat sons and -daughters. - -24:4 And it came to pass after this, that Joash was minded to repair -the house of the LORD. - -24:5 And he gathered together the priests and the Levites, and said to -them, Go out unto the cities of Judah, and gather of all Israel money -to repair the house of your God from year to year, and see that ye -hasten the matter. Howbeit the Levites hastened it not. - -24:6 And the king called for Jehoiada the chief, and said unto him, -Why hast thou not required of the Levites to bring in out of Judah and -out of Jerusalem the collection, according to the commandment of Moses -the servant of the LORD, and of the congregation of Israel, for the -tabernacle of witness? 24:7 For the sons of Athaliah, that wicked -woman, had broken up the house of God; and also all the dedicated -things of the house of the LORD did they bestow upon Baalim. - -24:8 And at the king's commandment they made a chest, and set it -without at the gate of the house of the LORD. - -24:9 And they made a proclamation through Judah and Jerusalem, to -bring in to the LORD the collection that Moses the servant of God laid -upon Israel in the wilderness. - -24:10 And all the princes and all the people rejoiced, and brought in, -and cast into the chest, until they had made an end. - -24:11 Now it came to pass, that at what time the chest was brought -unto the king's office by the hand of the Levites, and when they saw -that there was much money, the king's scribe and the high priest's -officer came and emptied the chest, and took it, and carried it to his -place again. Thus they did day by day, and gathered money in -abundance. - -24:12 And the king and Jehoiada gave it to such as did the work of the -service of the house of the LORD, and hired masons and carpenters to -repair the house of the LORD, and also such as wrought iron and brass -to mend the house of the LORD. - -24:13 So the workmen wrought, and the work was perfected by them, and -they set the house of God in his state, and strengthened it. - -24:14 And when they had finished it, they brought the rest of the -money before the king and Jehoiada, whereof were made vessels for the -house of the LORD, even vessels to minister, and to offer withal, and -spoons, and vessels of gold and silver. And they offered burnt -offerings in the house of the LORD continually all the days of -Jehoiada. - -24:15 But Jehoiada waxed old, and was full of days when he died; an -hundred and thirty years old was he when he died. - -24:16 And they buried him in the city of David among the kings, -because he had done good in Israel, both toward God, and toward his -house. - -24:17 Now after the death of Jehoiada came the princes of Judah, and -made obeisance to the king. Then the king hearkened unto them. - -24:18 And they left the house of the LORD God of their fathers, and -served groves and idols: and wrath came upon Judah and Jerusalem for -this their trespass. - -24:19 Yet he sent prophets to them, to bring them again unto the LORD; -and they testified against them: but they would not give ear. - -24:20 And the Spirit of God came upon Zechariah the son of Jehoiada -the priest, which stood above the people, and said unto them, Thus -saith God, Why transgress ye the commandments of the LORD, that ye -cannot prosper? because ye have forsaken the LORD, he hath also -forsaken you. - -24:21 And they conspired against him, and stoned him with stones at -the commandment of the king in the court of the house of the LORD. - -24:22 Thus Joash the king remembered not the kindness which Jehoiada -his father had done to him, but slew his son. And when he died, he -said, The LORD look upon it, and require it. - -24:23 And it came to pass at the end of the year, that the host of -Syria came up against him: and they came to Judah and Jerusalem, and -destroyed all the princes of the people from among the people, and -sent all the spoil of them unto the king of Damascus. - -24:24 For the army of the Syrians came with a small company of men, -and the LORD delivered a very great host into their hand, because they -had forsaken the LORD God of their fathers. So they executed judgment -against Joash. - -24:25 And when they were departed from him, (for they left him in -great diseases,) his own servants conspired against him for the blood -of the sons of Jehoiada the priest, and slew him on his bed, and he -died: and they buried him in the city of David, but they buried him -not in the sepulchres of the kings. - -24:26 And these are they that conspired against him; Zabad the son of -Shimeath an Ammonitess, and Jehozabad the son of Shimrith a Moabitess. - -24:27 Now concerning his sons, and the greatness of the burdens laid -upon him, and the repairing of the house of God, behold, they are -written in the story of the book of the kings. And Amaziah his son -reigned in his stead. - -25:1 Amaziah was twenty and five years old when he began to reign, and -he reigned twenty and nine years in Jerusalem. And his mother's name -was Jehoaddan of Jerusalem. - -25:2 And he did that which was right in the sight of the LORD, but not -with a perfect heart. - -25:3 Now it came to pass, when the kingdom was established to him, -that he slew his servants that had killed the king his father. - -25:4 But he slew not their children, but did as it is written in the -law in the book of Moses, where the LORD commanded, saying, The -fathers shall not die for the children, neither shall the children die -for the fathers, but every man shall die for his own sin. - -25:5 Moreover Amaziah gathered Judah together, and made them captains -over thousands, and captains over hundreds, according to the houses of -their fathers, throughout all Judah and Benjamin: and he numbered them -from twenty years old and above, and found them three hundred thousand -choice men, able to go forth to war, that could handle spear and -shield. - -25:6 He hired also an hundred thousand mighty men of valour out of -Israel for an hundred talents of silver. - -25:7 But there came a man of God to him, saying, O king, let not the -army of Israel go with thee; for the LORD is not with Israel, to wit, -with all the children of Ephraim. - -25:8 But if thou wilt go, do it; be strong for the battle: God shall -make thee fall before the enemy: for God hath power to help, and to -cast down. - -25:9 And Amaziah said to the man of God, But what shall we do for the -hundred talents which I have given to the army of Israel? And the man -of God answered, The LORD is able to give thee much more than this. - -25:10 Then Amaziah separated them, to wit, the army that was come to -him out of Ephraim, to go home again: wherefore their anger was -greatly kindled against Judah, and they returned home in great anger. - -25:11 And Amaziah strengthened himself, and led forth his people, and -went to the valley of salt, and smote of the children of Seir ten -thousand. - -25:12 And other ten thousand left alive did the children of Judah -carry away captive, and brought them unto the top of the rock, and -cast them down from the top of the rock, that they all were broken in -pieces. - -25:13 But the soldiers of the army which Amaziah sent back, that they -should not go with him to battle, fell upon the cities of Judah, from -Samaria even unto Bethhoron, and smote three thousand of them, and -took much spoil. - -25:14 Now it came to pass, after that Amaziah was come from the -slaughter of the Edomites, that he brought the gods of the children of -Seir, and set them up to be his gods, and bowed down himself before -them, and burned incense unto them. - -25:15 Wherefore the anger of the LORD was kindled against Amaziah, and -he sent unto him a prophet, which said unto him, Why hast thou sought -after the gods of the people, which could not deliver their own people -out of thine hand? 25:16 And it came to pass, as he talked with him, -that the king said unto him, Art thou made of the king's counsel? -forbear; why shouldest thou be smitten? Then the prophet forbare, and -said, I know that God hath determined to destroy thee, because thou -hast done this, and hast not hearkened unto my counsel. - -25:17 Then Amaziah king of Judah took advice, and sent to Joash, the -son of Jehoahaz, the son of Jehu, king of Israel, saying, Come, let us -see one another in the face. - -25:18 And Joash king of Israel sent to Amaziah king of Judah, saying, -The thistle that was in Lebanon sent to the cedar that was in Lebanon, -saying, Give thy daughter to my son to wife: and there passed by a -wild beast that was in Lebanon, and trode down the thistle. - -25:19 Thou sayest, Lo, thou hast smitten the Edomites; and thine heart -lifteth thee up to boast: abide now at home; why shouldest thou meddle -to thine hurt, that thou shouldest fall, even thou, and Judah with -thee? 25:20 But Amaziah would not hear; for it came of God, that he -might deliver them into the hand of their enemies, because they sought -after the gods of Edom. - -25:21 So Joash the king of Israel went up; and they saw one another in -the face, both he and Amaziah king of Judah, at Bethshemesh, which -belongeth to Judah. - -25:22 And Judah was put to the worse before Israel, and they fled -every man to his tent. - -25:23 And Joash the king of Israel took Amaziah king of Judah, the son -of Joash, the son of Jehoahaz, at Bethshemesh, and brought him to -Jerusalem, and brake down the wall of Jerusalem from the gate of -Ephraim to the corner gate, four hundred cubits. - -25:24 And he took all the gold and the silver, and all the vessels -that were found in the house of God with Obededom, and the treasures -of the king's house, the hostages also, and returned to Samaria. - -25:25 And Amaziah the son of Joash king of Judah lived after the death -of Joash son of Jehoahaz king of Israel fifteen years. - -25:26 Now the rest of the acts of Amaziah, first and last, behold, are -they not written in the book of the kings of Judah and Israel? 25:27 -Now after the time that Amaziah did turn away from following the LORD -they made a conspiracy against him in Jerusalem; and he fled to -Lachish: but they sent to Lachish after him, and slew him there. - -25:28 And they brought him upon horses, and buried him with his -fathers in the city of Judah. - -26:1 Then all the people of Judah took Uzziah, who was sixteen years -old, and made him king in the room of his father Amaziah. - -26:2 He built Eloth, and restored it to Judah, after that the king -slept with his fathers. - -26:3 Sixteen years old was Uzziah when he began to reign, and he -reigned fifty and two years in Jerusalem. His mother's name also was -Jecoliah of Jerusalem. - -26:4 And he did that which was right in the sight of the LORD, -according to all that his father Amaziah did. - -26:5 And he sought God in the days of Zechariah, who had understanding -in the visions of God: and as long as he sought the LORD, God made him -to prosper. - -26:6 And he went forth and warred against the Philistines, and brake -down the wall of Gath, and the wall of Jabneh, and the wall of Ashdod, -and built cities about Ashdod, and among the Philistines. - -26:7 And God helped him against the Philistines, and against the -Arabians that dwelt in Gurbaal, and the Mehunims. - -26:8 And the Ammonites gave gifts to Uzziah: and his name spread -abroad even to the entering in of Egypt; for he strengthened himself -exceedingly. - -26:9 Moreover Uzziah built towers in Jerusalem at the corner gate, and -at the valley gate, and at the turning of the wall, and fortified -them. - -26:10 Also he built towers in the desert, and digged many wells: for -he had much cattle, both in the low country, and in the plains: -husbandmen also, and vine dressers in the mountains, and in Carmel: -for he loved husbandry. - -26:11 Moreover Uzziah had an host of fighting men, that went out to -war by bands, according to the number of their account by the hand of -Jeiel the scribe and Maaseiah the ruler, under the hand of Hananiah, -one of the king's captains. - -26:12 The whole number of the chief of the fathers of the mighty men -of valour were two thousand and six hundred. - -26:13 And under their hand was an army, three hundred thousand and -seven thousand and five hundred, that made war with mighty power, to -help the king against the enemy. - -26:14 And Uzziah prepared for them throughout all the host shields, -and spears, and helmets, and habergeons, and bows, and slings to cast -stones. - -26:15 And he made in Jerusalem engines, invented by cunning men, to be -on the towers and upon the bulwarks, to shoot arrows and great stones -withal. - -And his name spread far abroad; for he was marvellously helped, till -he was strong. - -26:16 But when he was strong, his heart was lifted up to his -destruction: for he transgressed against the LORD his God, and went -into the temple of the LORD to burn incense upon the altar of incense. - -26:17 And Azariah the priest went in after him, and with him fourscore -priests of the LORD, that were valiant men: 26:18 And they withstood -Uzziah the king, and said unto him, It appertaineth not unto thee, -Uzziah, to burn incense unto the LORD, but to the priests the sons of -Aaron, that are consecrated to burn incense: go out of the sanctuary; -for thou hast trespassed; neither shall it be for thine honour from -the LORD God. - -26:19 Then Uzziah was wroth, and had a censer in his hand to burn -incense: and while he was wroth with the priests, the leprosy even -rose up in his forehead before the priests in the house of the LORD, -from beside the incense altar. - -26:20 And Azariah the chief priest, and all the priests, looked upon -him, and, behold, he was leprous in his forehead, and they thrust him -out from thence; yea, himself hasted also to go out, because the LORD -had smitten him. - -26:21 And Uzziah the king was a leper unto the day of his death, and -dwelt in a several house, being a leper; for he was cut off from the -house of the LORD: and Jotham his son was over the king's house, -judging the people of the land. - -26:22 Now the rest of the acts of Uzziah, first and last, did Isaiah -the prophet, the son of Amoz, write. - -26:23 So Uzziah slept with his fathers, and they buried him with his -fathers in the field of the burial which belonged to the kings; for -they said, He is a leper: and Jotham his son reigned in his stead. - -27:1 Jotham was twenty and five years old when he began to reign, and -he reigned sixteen years in Jerusalem. His mother's name also was -Jerushah, the daughter of Zadok. - -27:2 And he did that which was right in the sight of the LORD, -according to all that his father Uzziah did: howbeit he entered not -into the temple of the LORD. And the people did yet corruptly. - -27:3 He built the high gate of the house of the LORD, and on the wall -of Ophel he built much. - -27:4 Moreover he built cities in the mountains of Judah, and in the -forests he built castles and towers. - -27:5 He fought also with the king of the Ammonites, and prevailed -against them. And the children of Ammon gave him the same year an -hundred talents of silver, and ten thousand measures of wheat, and ten -thousand of barley. So much did the children of Ammon pay unto him, -both the second year, and the third. - -27:6 So Jotham became mighty, because he prepared his ways before the -LORD his God. - -27:7 Now the rest of the acts of Jotham, and all his wars, and his -ways, lo, they are written in the book of the kings of Israel and -Judah. - -27:8 He was five and twenty years old when he began to reign, and -reigned sixteen years in Jerusalem. - -27:9 And Jotham slept with his fathers, and they buried him in the -city of David: and Ahaz his son reigned in his stead. - -28:1 Ahaz was twenty years old when he began to reign, and he reigned -sixteen years in Jerusalem: but he did not that which was right in the -sight of the LORD, like David his father: 28:2 For he walked in the -ways of the kings of Israel, and made also molten images for Baalim. - -28:3 Moreover he burnt incense in the valley of the son of Hinnom, and -burnt his children in the fire, after the abominations of the heathen -whom the LORD had cast out before the children of Israel. - -28:4 He sacrificed also and burnt incense in the high places, and on -the hills, and under every green tree. - -28:5 Wherefore the LORD his God delivered him into the hand of the -king of Syria; and they smote him, and carried away a great multitude -of them captives, and brought them to Damascus. And he was also -delivered into the hand of the king of Israel, who smote him with a -great slaughter. - -28:6 For Pekah the son of Remaliah slew in Judah an hundred and twenty -thousand in one day, which were all valiant men; because they had -forsaken the LORD God of their fathers. - -28:7 And Zichri, a mighty man of Ephraim, slew Maaseiah the king's -son, and Azrikam the governor of the house, and Elkanah that was next -to the king. - -28:8 And the children of Israel carried away captive of their brethren -two hundred thousand, women, sons, and daughters, and took also away -much spoil from them, and brought the spoil to Samaria. - -28:9 But a prophet of the LORD was there, whose name was Oded: and he -went out before the host that came to Samaria, and said unto them, -Behold, because the LORD God of your fathers was wroth with Judah, he -hath delivered them into your hand, and ye have slain them in a rage -that reacheth up unto heaven. - -28:10 And now ye purpose to keep under the children of Judah and -Jerusalem for bondmen and bondwomen unto you: but are there not with -you, even with you, sins against the LORD your God? 28:11 Now hear me -therefore, and deliver the captives again, which ye have taken captive -of your brethren: for the fierce wrath of the LORD is upon you. - -28:12 Then certain of the heads of the children of Ephraim, Azariah -the son of Johanan, Berechiah the son of Meshillemoth, and Jehizkiah -the son of Shallum, and Amasa the son of Hadlai, stood up against them -that came from the war, 28:13 And said unto them, Ye shall not bring -in the captives hither: for whereas we have offended against the LORD -already, ye intend to add more to our sins and to our trespass: for -our trespass is great, and there is fierce wrath against Israel. - -28:14 So the armed men left the captives and the spoil before the -princes and all the congregation. - -28:15 And the men which were expressed by name rose up, and took the -captives, and with the spoil clothed all that were naked among them, -and arrayed them, and shod them, and gave them to eat and to drink, -and anointed them, and carried all the feeble of them upon asses, and -brought them to Jericho, the city of palm trees, to their brethren: -then they returned to Samaria. - -28:16 At that time did king Ahaz send unto the kings of Assyria to -help him. - -28:17 For again the Edomites had come and smitten Judah, and carried -away captives. - -28:18 The Philistines also had invaded the cities of the low country, -and of the south of Judah, and had taken Bethshemesh, and Ajalon, and -Gederoth, and Shocho with the villages thereof, and Timnah with the -villages thereof, Gimzo also and the villages thereof: and they dwelt -there. - -28:19 For the LORD brought Judah low because of Ahaz king of Israel; -for he made Judah naked, and transgressed sore against the LORD. - -28:20 And Tilgathpilneser king of Assyria came unto him, and -distressed him, but strengthened him not. - -28:21 For Ahaz took away a portion out of the house of the LORD, and -out of the house of the king, and of the princes, and gave it unto the -king of Assyria: but he helped him not. - -28:22 And in the time of his distress did he trespass yet more against -the LORD: this is that king Ahaz. - -28:23 For he sacrificed unto the gods of Damascus, which smote him: -and he said, Because the gods of the kings of Syria help them, -therefore will I sacrifice to them, that they may help me. But they -were the ruin of him, and of all Israel. - -28:24 And Ahaz gathered together the vessels of the house of God, and -cut in pieces the vessels of the house of God, and shut up the doors -of the house of the LORD, and he made him altars in every corner of -Jerusalem. - -28:25 And in every several city of Judah he made high places to burn -incense unto other gods, and provoked to anger the LORD God of his -fathers. - -28:26 Now the rest of his acts and of all his ways, first and last, -behold, they are written in the book of the kings of Judah and Israel. - -28:27 And Ahaz slept with his fathers, and they buried him in the -city, even in Jerusalem: but they brought him not into the sepulchres -of the kings of Israel: and Hezekiah his son reigned in his stead. - -29:1 Hezekiah began to reign when he was five and twenty years old, -and he reigned nine and twenty years in Jerusalem. And his mother's -name was Abijah, the daughter of Zechariah. - -29:2 And he did that which was right in the sight of the LORD, -according to all that David his father had done. - -29:3 He in the first year of his reign, in the first month, opened the -doors of the house of the LORD, and repaired them. - -29:4 And he brought in the priests and the Levites, and gathered them -together into the east street, 29:5 And said unto them, Hear me, ye -Levites, sanctify now yourselves, and sanctify the house of the LORD -God of your fathers, and carry forth the filthiness out of the holy -place. - -29:6 For our fathers have trespassed, and done that which was evil in -the eyes of the LORD our God, and have forsaken him, and have turned -away their faces from the habitation of the LORD, and turned their -backs. - -29:7 Also they have shut up the doors of the porch, and put out the -lamps, and have not burned incense nor offered burnt offerings in the -holy place unto the God of Israel. - -29:8 Wherefore the wrath of the LORD was upon Judah and Jerusalem, and -he hath delivered them to trouble, to astonishment, and to hissing, as -ye see with your eyes. - -29:9 For, lo, our fathers have fallen by the sword, and our sons and -our daughters and our wives are in captivity for this. - -29:10 Now it is in mine heart to make a covenant with the LORD God of -Israel, that his fierce wrath may turn away from us. - -29:11 My sons, be not now negligent: for the LORD hath chosen you to -stand before him, to serve him, and that ye should minister unto him, -and burn incense. - -29:12 Then the Levites arose, Mahath the son of Amasai, and Joel the -son of Azariah, of the sons of the Kohathites: and of the sons of -Merari, Kish the son of Abdi, and Azariah the son of Jehalelel: and of -the Gershonites; Joah the son of Zimmah, and Eden the son of Joah: -29:13 And of the sons of Elizaphan; Shimri, and Jeiel: and of the sons -of Asaph; Zechariah, and Mattaniah: 29:14 And of the sons of Heman; -Jehiel, and Shimei: and of the sons of Jeduthun; Shemaiah, and Uzziel. - -29:15 And they gathered their brethren, and sanctified themselves, and -came, according to the commandment of the king, by the words of the -LORD, to cleanse the house of the LORD. - -29:16 And the priests went into the inner part of the house of the -LORD, to cleanse it, and brought out all the uncleanness that they -found in the temple of the LORD into the court of the house of the -LORD. And the Levites took it, to carry it out abroad into the brook -Kidron. - -29:17 Now they began on the first day of the first month to sanctify, -and on the eighth day of the month came they to the porch of the LORD: -so they sanctified the house of the LORD in eight days; and in the -sixteenth day of the first month they made an end. - -29:18 Then they went in to Hezekiah the king, and said, We have -cleansed all the house of the LORD, and the altar of burnt offering, -with all the vessels thereof, and the shewbread table, with all the -vessels thereof. - -29:19 Moreover all the vessels, which king Ahaz in his reign did cast -away in his transgression, have we prepared and sanctified, and, -behold, they are before the altar of the LORD. - -29:20 Then Hezekiah the king rose early, and gathered the rulers of -the city, and went up to the house of the LORD. - -29:21 And they brought seven bullocks, and seven rams, and seven -lambs, and seven he goats, for a sin offering for the kingdom, and for -the sanctuary, and for Judah. And he commanded the priests the sons of -Aaron to offer them on the altar of the LORD. - -29:22 So they killed the bullocks, and the priests received the blood, -and sprinkled it on the altar: likewise, when they had killed the -rams, they sprinkled the blood upon the altar: they killed also the -lambs, and they sprinkled the blood upon the altar. - -29:23 And they brought forth the he goats for the sin offering before -the king and the congregation; and they laid their hands upon them: -29:24 And the priests killed them, and they made reconciliation with -their blood upon the altar, to make an atonement for all Israel: for -the king commanded that the burnt offering and the sin offering should -be made for all Israel. - -29:25 And he set the Levites in the house of the LORD with cymbals, -with psalteries, and with harps, according to the commandment of -David, and of Gad the king's seer, and Nathan the prophet: for so was -the commandment of the LORD by his prophets. - -29:26 And the Levites stood with the instruments of David, and the -priests with the trumpets. - -29:27 And Hezekiah commanded to offer the burnt offering upon the -altar. - -And when the burnt offering began, the song of the LORD began also -with the trumpets, and with the instruments ordained by David king of -Israel. - -29:28 And all the congregation worshipped, and the singers sang, and -the trumpeters sounded: and all this continued until the burnt -offering was finished. - -29:29 And when they had made an end of offering, the king and all that -were present with him bowed themselves, and worshipped. - -29:30 Moreover Hezekiah the king and the princes commanded the Levites -to sing praise unto the LORD with the words of David, and of Asaph the -seer. And they sang praises with gladness, and they bowed their heads -and worshipped. - -29:31 Then Hezekiah answered and said, Now ye have consecrated -yourselves unto the LORD, come near and bring sacrifices and thank -offerings into the house of the LORD. And the congregation brought in -sacrifices and thank offerings; and as many as were of a free heart -burnt offerings. - -29:32 And the number of the burnt offerings, which the congregation -brought, was threescore and ten bullocks, an hundred rams, and two -hundred lambs: all these were for a burnt offering to the LORD. - -29:33 And the consecrated things were six hundred oxen and three -thousand sheep. - -29:34 But the priests were too few, so that they could not flay all -the burnt offerings: wherefore their brethren the Levites did help -them, till the work was ended, and until the other priests had -sanctified themselves: for the Levites were more upright in heart to -sanctify themselves than the priests. - -29:35 And also the burnt offerings were in abundance, with the fat of -the peace offerings, and the drink offerings for every burnt offering. -So the service of the house of the LORD was set in order. - -29:36 And Hezekiah rejoiced, and all the people, that God had prepared -the people: for the thing was done suddenly. - -30:1 And Hezekiah sent to all Israel and Judah, and wrote letters also -to Ephraim and Manasseh, that they should come to the house of the -LORD at Jerusalem, to keep the passover unto the LORD God of Israel. - -30:2 For the king had taken counsel, and his princes, and all the -congregation in Jerusalem, to keep the passover in the second month. - -30:3 For they could not keep it at that time, because the priests had -not sanctified themselves sufficiently, neither had the people -gathered themselves together to Jerusalem. - -30:4 And the thing pleased the king and all the congregation. - -30:5 So they established a decree to make proclamation throughout all -Israel, from Beersheba even to Dan, that they should come to keep the -passover unto the LORD God of Israel at Jerusalem: for they had not -done it of a long time in such sort as it was written. - -30:6 So the posts went with the letters from the king and his princes -throughout all Israel and Judah, and according to the commandment of -the king, saying, Ye children of Israel, turn again unto the LORD God -of Abraham, Isaac, and Israel, and he will return to the remnant of -you, that are escaped out of the hand of the kings of Assyria. - -30:7 And be not ye like your fathers, and like your brethren, which -trespassed against the LORD God of their fathers, who therefore gave -them up to desolation, as ye see. - -30:8 Now be ye not stiffnecked, as your fathers were, but yield -yourselves unto the LORD, and enter into his sanctuary, which he hath -sanctified for ever: and serve the LORD your God, that the fierceness -of his wrath may turn away from you. - -30:9 For if ye turn again unto the LORD, your brethren and your -children shall find compassion before them that lead them captive, so -that they shall come again into this land: for the LORD your God is -gracious and merciful, and will not turn away his face from you, if ye -return unto him. - -30:10 So the posts passed from city to city through the country of -Ephraim and Manasseh even unto Zebulun: but they laughed them to -scorn, and mocked them. - -30:11 Nevertheless divers of Asher and Manasseh and of Zebulun humbled -themselves, and came to Jerusalem. - -30:12 Also in Judah the hand of God was to give them one heart to do -the commandment of the king and of the princes, by the word of the -LORD. - -30:13 And there assembled at Jerusalem much people to keep the feast -of unleavened bread in the second month, a very great congregation. - -30:14 And they arose and took away the altars that were in Jerusalem, -and all the altars for incense took they away, and cast them into the -brook Kidron. - -30:15 Then they killed the passover on the fourteenth day of the -second month: and the priests and the Levites were ashamed, and -sanctified themselves, and brought in the burnt offerings into the -house of the LORD. - -30:16 And they stood in their place after their manner, according to -the law of Moses the man of God: the priests sprinkled the blood, -which they received of the hand of the Levites. - -30:17 For there were many in the congregation that were not -sanctified: therefore the Levites had the charge of the killing of the -passovers for every one that was not clean, to sanctify them unto the -LORD. - -30:18 For a multitude of the people, even many of Ephraim, and -Manasseh, Issachar, and Zebulun, had not cleansed themselves, yet did -they eat the passover otherwise than it was written. But Hezekiah -prayed for them, saying, The good LORD pardon every one 30:19 That -prepareth his heart to seek God, the LORD God of his fathers, though -he be not cleansed according to the purification of the sanctuary. - -30:20 And the LORD hearkened to Hezekiah, and healed the people. - -30:21 And the children of Israel that were present at Jerusalem kept -the feast of unleavened bread seven days with great gladness: and the -Levites and the priests praised the LORD day by day, singing with loud -instruments unto the LORD. - -30:22 And Hezekiah spake comfortably unto all the Levites that taught -the good knowledge of the LORD: and they did eat throughout the feast -seven days, offering peace offerings, and making confession to the -LORD God of their fathers. - -30:23 And the whole assembly took counsel to keep other seven days: -and they kept other seven days with gladness. - -30:24 For Hezekiah king of Judah did give to the congregation a -thousand bullocks and seven thousand sheep; and the princes gave to -the congregation a thousand bullocks and ten thousand sheep: and a -great number of priests sanctified themselves. - -30:25 And all the congregation of Judah, with the priests and the -Levites, and all the congregation that came out of Israel, and the -strangers that came out of the land of Israel, and that dwelt in -Judah, rejoiced. - -30:26 So there was great joy in Jerusalem: for since the time of -Solomon the son of David king of Israel there was not the like in -Jerusalem. - -30:27 Then the priests the Levites arose and blessed the people: and -their voice was heard, and their prayer came up to his holy dwelling -place, even unto heaven. - -31:1 Now when all this was finished, all Israel that were present went -out to the cities of Judah, and brake the images in pieces, and cut -down the groves, and threw down the high places and the altars out of -all Judah and Benjamin, in Ephraim also and Manasseh, until they had -utterly destroyed them all. Then all the children of Israel returned, -every man to his possession, into their own cities. - -31:2 And Hezekiah appointed the courses of the priests and the Levites -after their courses, every man according to his service, the priests -and Levites for burnt offerings and for peace offerings, to minister, -and to give thanks, and to praise in the gates of the tents of the -LORD. - -31:3 He appointed also the king's portion of his substance for the -burnt offerings, to wit, for the morning and evening burnt offerings, -and the burnt offerings for the sabbaths, and for the new moons, and -for the set feasts, as it is written in the law of the LORD. - -31:4 Moreover he commanded the people that dwelt in Jerusalem to give -the portion of the priests and the Levites, that they might be -encouraged in the law of the LORD. - -31:5 And as soon as the commandment came abroad, the children of -Israel brought in abundance the firstfruits of corn, wine, and oil, -and honey, and of all the increase of the field; and the tithe of all -things brought they in abundantly. - -31:6 And concerning the children of Israel and Judah, that dwelt in -the cities of Judah, they also brought in the tithe of oxen and sheep, -and the tithe of holy things which were consecrated unto the LORD -their God, and laid them by heaps. - -31:7 In the third month they began to lay the foundation of the heaps, -and finished them in the seventh month. - -31:8 And when Hezekiah and the princes came and saw the heaps, they -blessed the LORD, and his people Israel. - -31:9 Then Hezekiah questioned with the priests and the Levites -concerning the heaps. - -31:10 And Azariah the chief priest of the house of Zadok answered him, -and said, Since the people began to bring the offerings into the house -of the LORD, we have had enough to eat, and have left plenty: for the -LORD hath blessed his people; and that which is left is this great -store. - -31:11 Then Hezekiah commanded to prepare chambers in the house of the -LORD; and they prepared them, 31:12 And brought in the offerings and -the tithes and the dedicated things faithfully: over which Cononiah -the Levite was ruler, and Shimei his brother was the next. - -31:13 And Jehiel, and Azaziah, and Nahath, and Asahel, and Jerimoth, -and Jozabad, and Eliel, and Ismachiah, and Mahath, and Benaiah, were -overseers under the hand of Cononiah and Shimei his brother, at the -commandment of Hezekiah the king, and Azariah the ruler of the house -of God. - -31:14 And Kore the son of Imnah the Levite, the porter toward the -east, was over the freewill offerings of God, to distribute the -oblations of the LORD, and the most holy things. - -31:15 And next him were Eden, and Miniamin, and Jeshua, and Shemaiah, -Amariah, and Shecaniah, in the cities of the priests, in their set -office, to give to their brethren by courses, as well to the great as -to the small: 31:16 Beside their genealogy of males, from three years -old and upward, even unto every one that entereth into the house of -the LORD, his daily portion for their service in their charges -according to their courses; 31:17 Both to the genealogy of the priests -by the house of their fathers, and the Levites from twenty years old -and upward, in their charges by their courses; 31:18 And to the -genealogy of all their little ones, their wives, and their sons, and -their daughters, through all the congregation: for in their set office -they sanctified themselves in holiness: 31:19 Also of the sons of -Aaron the priests, which were in the fields of the suburbs of their -cities, in every several city, the men that were expressed by name, to -give portions to all the males among the priests, and to all that were -reckoned by genealogies among the Levites. - -31:20 And thus did Hezekiah throughout all Judah, and wrought that -which was good and right and truth before the LORD his God. - -31:21 And in every work that he began in the service of the house of -God, and in the law, and in the commandments, to seek his God, he did -it with all his heart, and prospered. - -32:1 After these things, and the establishment thereof, Sennacherib -king of Assyria came, and entered into Judah, and encamped against the -fenced cities, and thought to win them for himself. - -32:2 And when Hezekiah saw that Sennacherib was come, and that he was -purposed to fight against Jerusalem, 32:3 He took counsel with his -princes and his mighty men to stop the waters of the fountains which -were without the city: and they did help him. - -32:4 So there was gathered much people together, who stopped all the -fountains, and the brook that ran through the midst of the land, -saying, Why should the kings of Assyria come, and find much water? -32:5 Also he strengthened himself, and built up all the wall that was -broken, and raised it up to the towers, and another wall without, and -repaired Millo in the city of David, and made darts and shields in -abundance. - -32:6 And he set captains of war over the people, and gathered them -together to him in the street of the gate of the city, and spake -comfortably to them, saying, 32:7 Be strong and courageous, be not -afraid nor dismayed for the king of Assyria, nor for all the multitude -that is with him: for there be more with us than with him: 32:8 With -him is an arm of flesh; but with us is the LORD our God to help us, -and to fight our battles. And the people rested themselves upon the -words of Hezekiah king of Judah. - -32:9 After this did Sennacherib king of Assyria send his servants to -Jerusalem, (but he himself laid siege against Lachish, and all his -power with him,) unto Hezekiah king of Judah, and unto all Judah that -were at Jerusalem, saying, 32:10 Thus saith Sennacherib king of -Assyria, Whereon do ye trust, that ye abide in the siege in Jerusalem? -32:11 Doth not Hezekiah persuade you to give over yourselves to die by -famine and by thirst, saying, The LORD our God shall deliver us out of -the hand of the king of Assyria? 32:12 Hath not the same Hezekiah -taken away his high places and his altars, and commanded Judah and -Jerusalem, saying, Ye shall worship before one altar, and burn incense -upon it? 32:13 Know ye not what I and my fathers have done unto all -the people of other lands? were the gods of the nations of those lands -any ways able to deliver their lands out of mine hand? 32:14 Who was -there among all the gods of those nations that my fathers utterly -destroyed, that could deliver his people out of mine hand, that your -God should be able to deliver you out of mine hand? 32:15 Now -therefore let not Hezekiah deceive you, nor persuade you on this -manner, neither yet believe him: for no god of any nation or kingdom -was able to deliver his people out of mine hand, and out of the hand -of my fathers: how much less shall your God deliver you out of mine -hand? 32:16 And his servants spake yet more against the LORD God, and -against his servant Hezekiah. - -32:17 He wrote also letters to rail on the LORD God of Israel, and to -speak against him, saying, As the gods of the nations of other lands -have not delivered their people out of mine hand, so shall not the God -of Hezekiah deliver his people out of mine hand. - -32:18 Then they cried with a loud voice in the Jews' speech unto the -people of Jerusalem that were on the wall, to affright them, and to -trouble them; that they might take the city. - -32:19 And they spake against the God of Jerusalem, as against the gods -of the people of the earth, which were the work of the hands of man. - -32:20 And for this cause Hezekiah the king, and the prophet Isaiah the -son of Amoz, prayed and cried to heaven. - -32:21 And the LORD sent an angel, which cut off all the mighty men of -valour, and the leaders and captains in the camp of the king of -Assyria. So he returned with shame of face to his own land. And when -he was come into the house of his god, they that came forth of his own -bowels slew him there with the sword. - -32:22 Thus the LORD saved Hezekiah and the inhabitants of Jerusalem -from the hand of Sennacherib the king of Assyria, and from the hand of -all other, and guided them on every side. - -32:23 And many brought gifts unto the LORD to Jerusalem, and presents -to Hezekiah king of Judah: so that he was magnified in the sight of -all nations from thenceforth. - -32:24 In those days Hezekiah was sick to the death, and prayed unto -the LORD: and he spake unto him, and he gave him a sign. - -32:25 But Hezekiah rendered not again according to the benefit done -unto him; for his heart was lifted up: therefore there was wrath upon -him, and upon Judah and Jerusalem. - -32:26 Notwithstanding Hezekiah humbled himself for the pride of his -heart, both he and the inhabitants of Jerusalem, so that the wrath of -the LORD came not upon them in the days of Hezekiah. - -32:27 And Hezekiah had exceeding much riches and honour: and he made -himself treasuries for silver, and for gold, and for precious stones, -and for spices, and for shields, and for all manner of pleasant -jewels; 32:28 Storehouses also for the increase of corn, and wine, and -oil; and stalls for all manner of beasts, and cotes for flocks. - -32:29 Moreover he provided him cities, and possessions of flocks and -herds in abundance: for God had given him substance very much. - -32:30 This same Hezekiah also stopped the upper watercourse of Gihon, -and brought it straight down to the west side of the city of David. -And Hezekiah prospered in all his works. - -32:31 Howbeit in the business of the ambassadors of the princes of -Babylon, who sent unto him to enquire of the wonder that was done in -the land, God left him, to try him, that he might know all that was in -his heart. - -32:32 Now the rest of the acts of Hezekiah, and his goodness, behold, -they are written in the vision of Isaiah the prophet, the son of Amoz, -and in the book of the kings of Judah and Israel. - -32:33 And Hezekiah slept with his fathers, and they buried him in the -chiefest of the sepulchres of the sons of David: and all Judah and the -inhabitants of Jerusalem did him honour at his death. And Manasseh his -son reigned in his stead. - -33:1 Manasseh was twelve years old when he began to reign, and he -reigned fifty and five years in Jerusalem: 33:2 But did that which was -evil in the sight of the LORD, like unto the abominations of the -heathen, whom the LORD had cast out before the children of Israel. - -33:3 For he built again the high places which Hezekiah his father had -broken down, and he reared up altars for Baalim, and made groves, and -worshipped all the host of heaven, and served them. - -33:4 Also he built altars in the house of the LORD, whereof the LORD -had said, In Jerusalem shall my name be for ever. - -33:5 And he built altars for all the host of heaven in the two courts -of the house of the LORD. - -33:6 And he caused his children to pass through the fire in the valley -of the son of Hinnom: also he observed times, and used enchantments, -and used witchcraft, and dealt with a familiar spirit, and with -wizards: he wrought much evil in the sight of the LORD, to provoke him -to anger. - -33:7 And he set a carved image, the idol which he had made, in the -house of God, of which God had said to David and to Solomon his son, -In this house, and in Jerusalem, which I have chosen before all the -tribes of Israel, will I put my name for ever: 33:8 Neither will I any -more remove the foot of Israel from out of the land which I have -appointed for your fathers; so that they will take heed to do all that -I have commanded them, according to the whole law and the statutes and -the ordinances by the hand of Moses. - -33:9 So Manasseh made Judah and the inhabitants of Jerusalem to err, -and to do worse than the heathen, whom the LORD had destroyed before -the children of Israel. - -33:10 And the LORD spake to Manasseh, and to his people: but they -would not hearken. - -33:11 Wherefore the LORD brought upon them the captains of the host of -the king of Assyria, which took Manasseh among the thorns, and bound -him with fetters, and carried him to Babylon. - -33:12 And when he was in affliction, he besought the LORD his God, and -humbled himself greatly before the God of his fathers, 33:13 And -prayed unto him: and he was intreated of him, and heard his -supplication, and brought him again to Jerusalem into his kingdom. -Then Manasseh knew that the LORD he was God. - -33:14 Now after this he built a wall without the city of David, on the -west side of Gihon, in the valley, even to the entering in at the fish -gate, and compassed about Ophel, and raised it up a very great height, -and put captains of war in all the fenced cities of Judah. - -33:15 And he took away the strange gods, and the idol out of the house -of the LORD, and all the altars that he had built in the mount of the -house of the LORD, and in Jerusalem, and cast them out of the city. - -33:16 And he repaired the altar of the LORD, and sacrificed thereon -peace offerings and thank offerings, and commanded Judah to serve the -LORD God of Israel. - -33:17 Nevertheless the people did sacrifice still in the high places, -yet unto the LORD their God only. - -33:18 Now the rest of the acts of Manasseh, and his prayer unto his -God, and the words of the seers that spake to him in the name of the -LORD God of Israel, behold, they are written in the book of the kings -of Israel. - -33:19 His prayer also, and how God was intreated of him, and all his -sins, and his trespass, and the places wherein he built high places, -and set up groves and graven images, before he was humbled: behold, -they are written among the sayings of the seers. - -33:20 So Manasseh slept with his fathers, and they buried him in his -own house: and Amon his son reigned in his stead. - -33:21 Amon was two and twenty years old when he began to reign, and -reigned two years in Jerusalem. - -33:22 But he did that which was evil in the sight of the LORD, as did -Manasseh his father: for Amon sacrificed unto all the carved images -which Manasseh his father had made, and served them; 33:23 And humbled -not himself before the LORD, as Manasseh his father had humbled -himself; but Amon trespassed more and more. - -33:24 And his servants conspired against him, and slew him in his own -house. - -33:25 But the people of the land slew all them that had conspired -against king Amon; and the people of the land made Josiah his son king -in his stead. - -34:1 Josiah was eight years old when he began to reign, and he reigned -in Jerusalem one and thirty years. - -34:2 And he did that which was right in the sight of the LORD, and -walked in the ways of David his father, and declined neither to the -right hand, nor to the left. - -34:3 For in the eighth year of his reign, while he was yet young, he -began to seek after the God of David his father: and in the twelfth -year he began to purge Judah and Jerusalem from the high places, and -the groves, and the carved images, and the molten images. - -34:4 And they brake down the altars of Baalim in his presence; and the -images, that were on high above them, he cut down; and the groves, and -the carved images, and the molten images, he brake in pieces, and made -dust of them, and strowed it upon the graves of them that had -sacrificed unto them. - -34:5 And he burnt the bones of the priests upon their altars, and -cleansed Judah and Jerusalem. - -34:6 And so did he in the cities of Manasseh, and Ephraim, and Simeon, -even unto Naphtali, with their mattocks round about. - -34:7 And when he had broken down the altars and the groves, and had -beaten the graven images into powder, and cut down all the idols -throughout all the land of Israel, he returned to Jerusalem. - -34:8 Now in the eighteenth year of his reign, when he had purged the -land, and the house, he sent Shaphan the son of Azaliah, and Maaseiah -the governor of the city, and Joah the son of Joahaz the recorder, to -repair the house of the LORD his God. - -34:9 And when they came to Hilkiah the high priest, they delivered the -money that was brought into the house of God, which the Levites that -kept the doors had gathered of the hand of Manasseh and Ephraim, and -of all the remnant of Israel, and of all Judah and Benjamin; and they -returned to Jerusalem. - -34:10 And they put it in the hand of the workmen that had the -oversight of the house of the LORD, and they gave it to the workmen -that wrought in the house of the LORD, to repair and amend the house: -34:11 Even to the artificers and builders gave they it, to buy hewn -stone, and timber for couplings, and to floor the houses which the -kings of Judah had destroyed. - -34:12 And the men did the work faithfully: and the overseers of them -were Jahath and Obadiah, the Levites, of the sons of Merari; and -Zechariah and Meshullam, of the sons of the Kohathites, to set it -forward; and other of the Levites, all that could skill of instruments -of musick. - -34:13 Also they were over the bearers of burdens, and were overseers -of all that wrought the work in any manner of service: and of the -Levites there were scribes, and officers, and porters. - -34:14 And when they brought out the money that was brought into the -house of the LORD, Hilkiah the priest found a book of the law of the -LORD given by Moses. - -34:15 And Hilkiah answered and said to Shaphan the scribe, I have -found the book of the law in the house of the LORD. And Hilkiah -delivered the book to Shaphan. - -34:16 And Shaphan carried the book to the king, and brought the king -word back again, saying, All that was committed to thy servants, they -do it. - -34:17 And they have gathered together the money that was found in the -house of the LORD, and have delivered it into the hand of the -overseers, and to the hand of the workmen. - -34:18 Then Shaphan the scribe told the king, saying, Hilkiah the -priest hath given me a book. And Shaphan read it before the king. - -34:19 And it came to pass, when the king had heard the words of the -law, that he rent his clothes. - -34:20 And the king commanded Hilkiah, and Ahikam the son of Shaphan, -and Abdon the son of Micah, and Shaphan the scribe, and Asaiah a -servant of the king's, saying, 34:21 Go, enquire of the LORD for me, -and for them that are left in Israel and in Judah, concerning the -words of the book that is found: for great is the wrath of the LORD -that is poured out upon us, because our fathers have not kept the word -of the LORD, to do after all that is written in this book. - -34:22 And Hilkiah, and they that the king had appointed, went to -Huldah the prophetess, the wife of Shallum the son of Tikvath, the son -of Hasrah, keeper of the wardrobe; (now she dwelt in Jerusalem in the -college:) and they spake to her to that effect. - -34:23 And she answered them, Thus saith the LORD God of Israel, Tell -ye the man that sent you to me, 34:24 Thus saith the LORD, Behold, I -will bring evil upon this place, and upon the inhabitants thereof, -even all the curses that are written in the book which they have read -before the king of Judah: 34:25 Because they have forsaken me, and -have burned incense unto other gods, that they might provoke me to -anger with all the works of their hands; therefore my wrath shall be -poured out upon this place, and shall not be quenched. - -34:26 And as for the king of Judah, who sent you to enquire of the -LORD, so shall ye say unto him, Thus saith the LORD God of Israel -concerning the words which thou hast heard; 34:27 Because thine heart -was tender, and thou didst humble thyself before God, when thou -heardest his words against this place, and against the inhabitants -thereof, and humbledst thyself before me, and didst rend thy clothes, -and weep before me; I have even heard thee also, saith the LORD. - -34:28 Behold, I will gather thee to thy fathers, and thou shalt be -gathered to thy grave in peace, neither shall thine eyes see all the -evil that I will bring upon this place, and upon the inhabitants of -the same. So they brought the king word again. - -34:29 Then the king sent and gathered together all the elders of Judah -and Jerusalem. - -34:30 And the king went up into the house of the LORD, and all the men -of Judah, and the inhabitants of Jerusalem, and the priests, and the -Levites, and all the people, great and small: and he read in their -ears all the words of the book of the covenant that was found in the -house of the LORD. - -34:31 And the king stood in his place, and made a covenant before the -LORD, to walk after the LORD, and to keep his commandments, and his -testimonies, and his statutes, with all his heart, and with all his -soul, to perform the words of the covenant which are written in this -book. - -34:32 And he caused all that were present in Jerusalem and Benjamin to -stand to it. And the inhabitants of Jerusalem did according to the -covenant of God, the God of their fathers. - -34:33 And Josiah took away all the abominations out of all the -countries that pertained to the children of Israel, and made all that -were present in Israel to serve, even to serve the LORD their God. And -all his days they departed not from following the LORD, the God of -their fathers. - -35:1 Moreover Josiah kept a passover unto the LORD in Jerusalem: and -they killed the passover on the fourteenth day of the first month. - -35:2 And he set the priests in their charges, and encouraged them to -the service of the house of the LORD, 35:3 And said unto the Levites -that taught all Israel, which were holy unto the LORD, Put the holy -ark in the house which Solomon the son of David king of Israel did -build; it shall not be a burden upon your shoulders: serve now the -LORD your God, and his people Israel, 35:4 And prepare yourselves by -the houses of your fathers, after your courses, according to the -writing of David king of Israel, and according to the writing of -Solomon his son. - -35:5 And stand in the holy place according to the divisions of the -families of the fathers of your brethren the people, and after the -division of the families of the Levites. - -35:6 So kill the passover, and sanctify yourselves, and prepare your -brethren, that they may do according to the word of the LORD by the -hand of Moses. - -35:7 And Josiah gave to the people, of the flock, lambs and kids, all -for the passover offerings, for all that were present, to the number -of thirty thousand, and three thousand bullocks: these were of the -king's substance. - -35:8 And his princes gave willingly unto the people, to the priests, -and to the Levites: Hilkiah and Zechariah and Jehiel, rulers of the -house of God, gave unto the priests for the passover offerings two -thousand and six hundred small cattle and three hundred oxen. - -35:9 Conaniah also, and Shemaiah and Nethaneel, his brethren, and -Hashabiah and Jeiel and Jozabad, chief of the Levites, gave unto the -Levites for passover offerings five thousand small cattle, and five -hundred oxen. - -35:10 So the service was prepared, and the priests stood in their -place, and the Levites in their courses, according to the king's -commandment. - -35:11 And they killed the passover, and the priests sprinkled the -blood from their hands, and the Levites flayed them. - -35:12 And they removed the burnt offerings, that they might give -according to the divisions of the families of the people, to offer -unto the LORD, as it is written in the book of Moses. And so did they -with the oxen. - -35:13 And they roasted the passover with fire according to the -ordinance: but the other holy offerings sod they in pots, and in -caldrons, and in pans, and divided them speedily among all the people. - -35:14 And afterward they made ready for themselves, and for the -priests: because the priests the sons of Aaron were busied in offering -of burnt offerings and the fat until night; therefore the Levites -prepared for themselves, and for the priests the sons of Aaron. - -35:15 And the singers the sons of Asaph were in their place, according -to the commandment of David, and Asaph, and Heman, and Jeduthun the -king's seer; and the porters waited at every gate; they might not -depart from their service; for their brethren the Levites prepared for -them. - -35:16 So all the service of the LORD was prepared the same day, to -keep the passover, and to offer burnt offerings upon the altar of the -LORD, according to the commandment of king Josiah. - -35:17 And the children of Israel that were present kept the passover -at that time, and the feast of unleavened bread seven days. - -35:18 And there was no passover like to that kept in Israel from the -days of Samuel the prophet; neither did all the kings of Israel keep -such a passover as Josiah kept, and the priests, and the Levites, and -all Judah and Israel that were present, and the inhabitants of -Jerusalem. - -35:19 In the eighteenth year of the reign of Josiah was this passover -kept. - -35:20 After all this, when Josiah had prepared the temple, Necho king -of Egypt came up to fight against Charchemish by Euphrates: and Josiah -went out against him. - -35:21 But he sent ambassadors to him, saying, What have I to do with -thee, thou king of Judah? I come not against thee this day, but -against the house wherewith I have war: for God commanded me to make -haste: forbear thee from meddling with God, who is with me, that he -destroy thee not. - -35:22 Nevertheless Josiah would not turn his face from him, but -disguised himself, that he might fight with him, and hearkened not -unto the words of Necho from the mouth of God, and came to fight in -the valley of Megiddo. - -35:23 And the archers shot at king Josiah; and the king said to his -servants, Have me away; for I am sore wounded. - -35:24 His servants therefore took him out of that chariot, and put him -in the second chariot that he had; and they brought him to Jerusalem, -and he died, and was buried in one of the sepulchres of his fathers. -And all Judah and Jerusalem mourned for Josiah. - -35:25 And Jeremiah lamented for Josiah: and all the singing men and -the singing women spake of Josiah in their lamentations to this day, -and made them an ordinance in Israel: and, behold, they are written in -the lamentations. - -35:26 Now the rest of the acts of Josiah, and his goodness, according -to that which was written in the law of the LORD, 35:27 And his deeds, -first and last, behold, they are written in the book of the kings of -Israel and Judah. - -36:1 Then the people of the land took Jehoahaz the son of Josiah, and -made him king in his father's stead in Jerusalem. - -36:2 Jehoahaz was twenty and three years old when he began to reign, -and he reigned three months in Jerusalem. - -36:3 And the king of Egypt put him down at Jerusalem, and condemned -the land in an hundred talents of silver and a talent of gold. - -36:4 And the king of Egypt made Eliakim his brother king over Judah -and Jerusalem, and turned his name to Jehoiakim. And Necho took -Jehoahaz his brother, and carried him to Egypt. - -36:5 Jehoiakim was twenty and five years old when he began to reign, -and he reigned eleven years in Jerusalem: and he did that which was -evil in the sight of the LORD his God. - -36:6 Against him came up Nebuchadnezzar king of Babylon, and bound him -in fetters, to carry him to Babylon. - -36:7 Nebuchadnezzar also carried of the vessels of the house of the -LORD to Babylon, and put them in his temple at Babylon. - -36:8 Now the rest of the acts of Jehoiakim, and his abominations which -he did, and that which was found in him, behold, they are written in -the book of the kings of Israel and Judah: and Jehoiachin his son -reigned in his stead. - -36:9 Jehoiachin was eight years old when he began to reign, and he -reigned three months and ten days in Jerusalem: and he did that which -was evil in the sight of the LORD. - -36:10 And when the year was expired, king Nebuchadnezzar sent, and -brought him to Babylon, with the goodly vessels of the house of the -LORD, and made Zedekiah his brother king over Judah and Jerusalem. - -36:11 Zedekiah was one and twenty years old when he began to reign, -and reigned eleven years in Jerusalem. - -36:12 And he did that which was evil in the sight of the LORD his God, -and humbled not himself before Jeremiah the prophet speaking from the -mouth of the LORD. - -36:13 And he also rebelled against king Nebuchadnezzar, who had made -him swear by God: but he stiffened his neck, and hardened his heart -from turning unto the LORD God of Israel. - -36:14 Moreover all the chief of the priests, and the people, -transgressed very much after all the abominations of the heathen; and -polluted the house of the LORD which he had hallowed in Jerusalem. - -36:15 And the LORD God of their fathers sent to them by his -messengers, rising up betimes, and sending; because he had compassion -on his people, and on his dwelling place: 36:16 But they mocked the -messengers of God, and despised his words, and misused his prophets, -until the wrath of the LORD arose against his people, till there was -no remedy. - -36:17 Therefore he brought upon them the king of the Chaldees, who -slew their young men with the sword in the house of their sanctuary, -and had no compassion upon young man or maiden, old man, or him that -stooped for age: he gave them all into his hand. - -36:18 And all the vessels of the house of God, great and small, and -the treasures of the house of the LORD, and the treasures of the king, -and of his princes; all these he brought to Babylon. - -36:19 And they burnt the house of God, and brake down the wall of -Jerusalem, and burnt all the palaces thereof with fire, and destroyed -all the goodly vessels thereof. - -36:20 And them that had escaped from the sword carried he away to -Babylon; where they were servants to him and his sons until the reign -of the kingdom of Persia: 36:21 To fulfil the word of the LORD by the -mouth of Jeremiah, until the land had enjoyed her sabbaths: for as -long as she lay desolate she kept sabbath, to fulfil threescore and -ten years. - -36:22 Now in the first year of Cyrus king of Persia, that the word of -the LORD spoken by the mouth of Jeremiah might be accomplished, the -LORD stirred up the spirit of Cyrus king of Persia, that he made a -proclamation throughout all his kingdom, and put it also in writing, -saying, 36:23 Thus saith Cyrus king of Persia, All the kingdoms of the -earth hath the LORD God of heaven given me; and he hath charged me to -build him an house in Jerusalem, which is in Judah. Who is there among -you of all his people? The LORD his God be with him, and let him go up. - - - - -Ezra - - -1:1 Now in the first year of Cyrus king of Persia, that the word of -the LORD by the mouth of Jeremiah might be fulfilled, the LORD stirred -up the spirit of Cyrus king of Persia, that he made a proclamation -throughout all his kingdom, and put it also in writing, saying, 1:2 -Thus saith Cyrus king of Persia, The LORD God of heaven hath given me -all the kingdoms of the earth; and he hath charged me to build him an -house at Jerusalem, which is in Judah. - -1:3 Who is there among you of all his people? his God be with him, and -let him go up to Jerusalem, which is in Judah, and build the house of -the LORD God of Israel, (he is the God,) which is in Jerusalem. - -1:4 And whosoever remaineth in any place where he sojourneth, let the -men of his place help him with silver, and with gold, and with goods, -and with beasts, beside the freewill offering for the house of God -that is in Jerusalem. - -1:5 Then rose up the chief of the fathers of Judah and Benjamin, and -the priests, and the Levites, with all them whose spirit God had -raised, to go up to build the house of the LORD which is in Jerusalem. - -1:6 And all they that were about them strengthened their hands with -vessels of silver, with gold, with goods, and with beasts, and with -precious things, beside all that was willingly offered. - -1:7 Also Cyrus the king brought forth the vessels of the house of the -LORD, which Nebuchadnezzar had brought forth out of Jerusalem, and had -put them in the house of his gods; 1:8 Even those did Cyrus king of -Persia bring forth by the hand of Mithredath the treasurer, and -numbered them unto Sheshbazzar, the prince of Judah. - -1:9 And this is the number of them: thirty chargers of gold, a -thousand chargers of silver, nine and twenty knives, 1:10 Thirty -basons of gold, silver basons of a second sort four hundred and ten, -and other vessels a thousand. - -1:11 All the vessels of gold and of silver were five thousand and four -hundred. All these did Sheshbazzar bring up with them of the captivity -that were brought up from Babylon unto Jerusalem. - -2:1 Now these are the children of the province that went up out of the -captivity, of those which had been carried away, whom Nebuchadnezzar -the king of Babylon had carried away unto Babylon, and came again unto -Jerusalem and Judah, every one unto his city; 2:2 Which came with -Zerubbabel: Jeshua, Nehemiah, Seraiah, Reelaiah, Mordecai, Bilshan, -Mizpar, Bigvai, Rehum, Baanah. The number of the men of the people of -Israel: 2:3 The children of Parosh, two thousand an hundred seventy -and two. - -2:4 The children of Shephatiah, three hundred seventy and two. - -2:5 The children of Arah, seven hundred seventy and five. - -2:6 The children of Pahathmoab, of the children of Jeshua and Joab, -two thousand eight hundred and twelve. - -2:7 The children of Elam, a thousand two hundred fifty and four. - -2:8 The children of Zattu, nine hundred forty and five. - -2:9 The children of Zaccai, seven hundred and threescore. - -2:10 The children of Bani, six hundred forty and two. - -2:11 The children of Bebai, six hundred twenty and three. - -2:12 The children of Azgad, a thousand two hundred twenty and two. - -2:13 The children of Adonikam, six hundred sixty and six. - -2:14 The children of Bigvai, two thousand fifty and six. - -2:15 The children of Adin, four hundred fifty and four. - -2:16 The children of Ater of Hezekiah, ninety and eight. - -2:17 The children of Bezai, three hundred twenty and three. - -2:18 The children of Jorah, an hundred and twelve. - -2:19 The children of Hashum, two hundred twenty and three. - -2:20 The children of Gibbar, ninety and five. - -2:21 The children of Bethlehem, an hundred twenty and three. - -2:22 The men of Netophah, fifty and six. - -2:23 The men of Anathoth, an hundred twenty and eight. - -2:24 The children of Azmaveth, forty and two. - -2:25 The children of Kirjatharim, Chephirah, and Beeroth, seven -hundred and forty and three. - -2:26 The children of Ramah and Gaba, six hundred twenty and one. - -2:27 The men of Michmas, an hundred twenty and two. - -2:28 The men of Bethel and Ai, two hundred twenty and three. - -2:29 The children of Nebo, fifty and two. - -2:30 The children of Magbish, an hundred fifty and six. - -2:31 The children of the other Elam, a thousand two hundred fifty and -four. - -2:32 The children of Harim, three hundred and twenty. - -2:33 The children of Lod, Hadid, and Ono, seven hundred twenty and -five. - -2:34 The children of Jericho, three hundred forty and five. - -2:35 The children of Senaah, three thousand and six hundred and -thirty. - -2:36 The priests: the children of Jedaiah, of the house of Jeshua, -nine hundred seventy and three. - -2:37 The children of Immer, a thousand fifty and two. - -2:38 The children of Pashur, a thousand two hundred forty and seven. - -2:39 The children of Harim, a thousand and seventeen. - -2:40 The Levites: the children of Jeshua and Kadmiel, of the children -of Hodaviah, seventy and four. - -2:41 The singers: the children of Asaph, an hundred twenty and eight. - -2:42 The children of the porters: the children of Shallum, the -children of Ater, the children of Talmon, the children of Akkub, the -children of Hatita, the children of Shobai, in all an hundred thirty -and nine. - -2:43 The Nethinims: the children of Ziha, the children of Hasupha, the -children of Tabbaoth, 2:44 The children of Keros, the children of -Siaha, the children of Padon, 2:45 The children of Lebanah, the -children of Hagabah, the children of Akkub, 2:46 The children of -Hagab, the children of Shalmai, the children of Hanan, 2:47 The -children of Giddel, the children of Gahar, the children of Reaiah, -2:48 The children of Rezin, the children of Nekoda, the children of -Gazzam, 2:49 The children of Uzza, the children of Paseah, the -children of Besai, 2:50 The children of Asnah, the children of -Mehunim, the children of Nephusim, 2:51 The children of Bakbuk, the -children of Hakupha, the children of Harhur, 2:52 The children of -Bazluth, the children of Mehida, the children of Harsha, 2:53 The -children of Barkos, the children of Sisera, the children of Thamah, -2:54 The children of Neziah, the children of Hatipha. - -2:55 The children of Solomon's servants: the children of Sotai, the -children of Sophereth, the children of Peruda, 2:56 The children of -Jaalah, the children of Darkon, the children of Giddel, 2:57 The -children of Shephatiah, the children of Hattil, the children of -Pochereth of Zebaim, the children of Ami. - -2:58 All the Nethinims, and the children of Solomon's servants, were -three hundred ninety and two. - -2:59 And these were they which went up from Telmelah, Telharsa, -Cherub, Addan, and Immer: but they could not shew their father's -house, and their seed, whether they were of Israel: 2:60 The children -of Delaiah, the children of Tobiah, the children of Nekoda, six -hundred fifty and two. - -2:61 And of the children of the priests: the children of Habaiah, the -children of Koz, the children of Barzillai; which took a wife of the -daughters of Barzillai the Gileadite, and was called after their name: -2:62 These sought their register among those that were reckoned by -genealogy, but they were not found: therefore were they, as polluted, -put from the priesthood. - -2:63 And the Tirshatha said unto them, that they should not eat of the -most holy things, till there stood up a priest with Urim and with -Thummim. - -2:64 The whole congregation together was forty and two thousand three -hundred and threescore, 2:65 Beside their servants and their maids, of -whom there were seven thousand three hundred thirty and seven: and -there were among them two hundred singing men and singing women. - -2:66 Their horses were seven hundred thirty and six; their mules, two -hundred forty and five; 2:67 Their camels, four hundred thirty and -five; their asses, six thousand seven hundred and twenty. - -2:68 And some of the chief of the fathers, when they came to the house -of the LORD which is at Jerusalem, offered freely for the house of God -to set it up in his place: 2:69 They gave after their ability unto the -treasure of the work threescore and one thousand drams of gold, and -five thousand pound of silver, and one hundred priests' garments. - -2:70 So the priests, and the Levites, and some of the people, and the -singers, and the porters, and the Nethinims, dwelt in their cities, -and all Israel in their cities. - -3:1 And when the seventh month was come, and the children of Israel -were in the cities, the people gathered themselves together as one man -to Jerusalem. - -3:2 Then stood up Jeshua the son of Jozadak, and his brethren the -priests, and Zerubbabel the son of Shealtiel, and his brethren, and -builded the altar of the God of Israel, to offer burnt offerings -thereon, as it is written in the law of Moses the man of God. - -3:3 And they set the altar upon his bases; for fear was upon them -because of the people of those countries: and they offered burnt -offerings thereon unto the LORD, even burnt offerings morning and -evening. - -3:4 They kept also the feast of tabernacles, as it is written, and -offered the daily burnt offerings by number, according to the custom, -as the duty of every day required; 3:5 And afterward offered the -continual burnt offering, both of the new moons, and of all the set -feasts of the LORD that were consecrated, and of every one that -willingly offered a freewill offering unto the LORD. - -3:6 From the first day of the seventh month began they to offer burnt -offerings unto the LORD. But the foundation of the temple of the LORD -was not yet laid. - -3:7 They gave money also unto the masons, and to the carpenters; and -meat, and drink, and oil, unto them of Zidon, and to them of Tyre, to -bring cedar trees from Lebanon to the sea of Joppa, according to the -grant that they had of Cyrus king of Persia. - -3:8 Now in the second year of their coming unto the house of God at -Jerusalem, in the second month, began Zerubbabel the son of Shealtiel, -and Jeshua the son of Jozadak, and the remnant of their brethren the -priests and the Levites, and all they that were come out of the -captivity unto Jerusalem; and appointed the Levites, from twenty years -old and upward, to set forward the work of the house of the LORD. - -3:9 Then stood Jeshua with his sons and his brethren, Kadmiel and his -sons, the sons of Judah, together, to set forward the workmen in the -house of God: the sons of Henadad, with their sons and their brethren -the Levites. - -3:10 And when the builders laid the foundation of the temple of the -LORD, they set the priests in their apparel with trumpets, and the -Levites the sons of Asaph with cymbals, to praise the LORD, after the -ordinance of David king of Israel. - -3:11 And they sang together by course in praising and giving thanks -unto the LORD; because he is good, for his mercy endureth for ever -toward Israel. - -And all the people shouted with a great shout, when they praised the -LORD, because the foundation of the house of the LORD was laid. - -3:12 But many of the priests and Levites and chief of the fathers, who -were ancient men, that had seen the first house, when the foundation -of this house was laid before their eyes, wept with a loud voice; and -many shouted aloud for joy: 3:13 So that the people could not discern -the noise of the shout of joy from the noise of the weeping of the -people: for the people shouted with a loud shout, and the noise was -heard afar off. - -4:1 Now when the adversaries of Judah and Benjamin heard that the -children of the captivity builded the temple unto the LORD God of -Israel; 4:2 Then they came to Zerubbabel, and to the chief of the -fathers, and said unto them, Let us build with you: for we seek your -God, as ye do; and we do sacrifice unto him since the days of -Esarhaddon king of Assur, which brought us up hither. - -4:3 But Zerubbabel, and Jeshua, and the rest of the chief of the -fathers of Israel, said unto them, Ye have nothing to do with us to -build an house unto our God; but we ourselves together will build unto -the LORD God of Israel, as king Cyrus the king of Persia hath -commanded us. - -4:4 Then the people of the land weakened the hands of the people of -Judah, and troubled them in building, 4:5 And hired counsellors -against them, to frustrate their purpose, all the days of Cyrus king -of Persia, even until the reign of Darius king of Persia. - -4:6 And in the reign of Ahasuerus, in the beginning of his reign, -wrote they unto him an accusation against the inhabitants of Judah and -Jerusalem. - -4:7 And in the days of Artaxerxes wrote Bishlam, Mithredath, Tabeel, -and the rest of their companions, unto Artaxerxes king of Persia; and -the writing of the letter was written in the Syrian tongue, and -interpreted in the Syrian tongue. - -4:8 Rehum the chancellor and Shimshai the scribe wrote a letter -against Jerusalem to Artaxerxes the king in this sort: 4:9 Then wrote -Rehum the chancellor, and Shimshai the scribe, and the rest of their -companions; the Dinaites, the Apharsathchites, the Tarpelites, the -Apharsites, the Archevites, the Babylonians, the Susanchites, the -Dehavites, and the Elamites, 4:10 And the rest of the nations whom the -great and noble Asnapper brought over, and set in the cities of -Samaria, and the rest that are on this side the river, and at such a -time. - -4:11 This is the copy of the letter that they sent unto him, even unto -Artaxerxes the king; Thy servants the men on this side the river, and -at such a time. - -4:12 Be it known unto the king, that the Jews which came up from thee -to us are come unto Jerusalem, building the rebellious and the bad -city, and have set up the walls thereof, and joined the foundations. - -4:13 Be it known now unto the king, that, if this city be builded, and -the walls set up again, then will they not pay toll, tribute, and -custom, and so thou shalt endamage the revenue of the kings. - -4:14 Now because we have maintenance from the king's palace, and it -was not meet for us to see the king's dishonour, therefore have we -sent and certified the king; 4:15 That search may be made in the book -of the records of thy fathers: so shalt thou find in the book of the -records, and know that this city is a rebellious city, and hurtful -unto kings and provinces, and that they have moved sedition within the -same of old time: for which cause was this city destroyed. - -4:16 We certify the king that, if this city be builded again, and the -walls thereof set up, by this means thou shalt have no portion on this -side the river. - -4:17 Then sent the king an answer unto Rehum the chancellor, and to -Shimshai the scribe, and to the rest of their companions that dwell in -Samaria, and unto the rest beyond the river, Peace, and at such a -time. - -4:18 The letter which ye sent unto us hath been plainly read before -me. - -4:19 And I commanded, and search hath been made, and it is found that -this city of old time hath made insurrection against kings, and that -rebellion and sedition have been made therein. - -4:20 There have been mighty kings also over Jerusalem, which have -ruled over all countries beyond the river; and toll, tribute, and -custom, was paid unto them. - -4:21 Give ye now commandment to cause these men to cease, and that -this city be not builded, until another commandment shall be given -from me. - -4:22 Take heed now that ye fail not to do this: why should damage grow -to the hurt of the kings? 4:23 Now when the copy of king Artaxerxes' -letter was read before Rehum, and Shimshai the scribe, and their -companions, they went up in haste to Jerusalem unto the Jews, and made -them to cease by force and power. - -4:24 Then ceased the work of the house of God which is at Jerusalem. -So it ceased unto the second year of the reign of Darius king of -Persia. - -5:1 Then the prophets, Haggai the prophet, and Zechariah the son of -Iddo, prophesied unto the Jews that were in Judah and Jerusalem in the -name of the God of Israel, even unto them. - -5:2 Then rose up Zerubbabel the son of Shealtiel, and Jeshua the son -of Jozadak, and began to build the house of God which is at Jerusalem: -and with them were the prophets of God helping them. - -5:3 At the same time came to them Tatnai, governor on this side the -river, and Shetharboznai and their companions, and said thus unto -them, Who hath commanded you to build this house, and to make up this -wall? 5:4 Then said we unto them after this manner, What are the -names of the men that make this building? 5:5 But the eye of their -God was upon the elders of the Jews, that they could not cause them to -cease, till the matter came to Darius: and then they returned answer -by letter concerning this matter. - -5:6 The copy of the letter that Tatnai, governor on this side the -river, and Shetharboznai and his companions the Apharsachites, which -were on this side the river, sent unto Darius the king: 5:7 They sent -a letter unto him, wherein was written thus; Unto Darius the king, all -peace. - -5:8 Be it known unto the king, that we went into the province of -Judea, to the house of the great God, which is builded with great -stones, and timber is laid in the walls, and this work goeth fast on, -and prospereth in their hands. - -5:9 Then asked we those elders, and said unto them thus, Who commanded -you to build this house, and to make up these walls? 5:10 We asked -their names also, to certify thee, that we might write the names of -the men that were the chief of them. - -5:11 And thus they returned us answer, saying, We are the servants of -the God of heaven and earth, and build the house that was builded -these many years ago, which a great king of Israel builded and set up. - -5:12 But after that our fathers had provoked the God of heaven unto -wrath, he gave them into the hand of Nebuchadnezzar the king of -Babylon, the Chaldean, who destroyed this house, and carried the -people away into Babylon. - -5:13 But in the first year of Cyrus the king of Babylon the same king -Cyrus made a decree to build this house of God. - -5:14 And the vessels also of gold and silver of the house of God, -which Nebuchadnezzar took out of the temple that was in Jerusalem, and -brought them into the temple of Babylon, those did Cyrus the king take -out of the temple of Babylon, and they were delivered unto one, whose -name was Sheshbazzar, whom he had made governor; 5:15 And said unto -him, Take these vessels, go, carry them into the temple that is in -Jerusalem, and let the house of God be builded in his place. - -5:16 Then came the same Sheshbazzar, and laid the foundation of the -house of God which is in Jerusalem: and since that time even until now -hath it been in building, and yet it is not finished. - -5:17 Now therefore, if it seem good to the king, let there be search -made in the king's treasure house, which is there at Babylon, whether -it be so, that a decree was made of Cyrus the king to build this house -of God at Jerusalem, and let the king send his pleasure to us -concerning this matter. - -6:1 Then Darius the king made a decree, and search was made in the -house of the rolls, where the treasures were laid up in Babylon. - -6:2 And there was found at Achmetha, in the palace that is in the -province of the Medes, a roll, and therein was a record thus written: -6:3 In the first year of Cyrus the king the same Cyrus the king made a -decree concerning the house of God at Jerusalem, Let the house be -builded, the place where they offered sacrifices, and let the -foundations thereof be strongly laid; the height thereof threescore -cubits, and the breadth thereof threescore cubits; 6:4 With three rows -of great stones, and a row of new timber: and let the expenses be -given out of the king's house: 6:5 And also let the golden and silver -vessels of the house of God, which Nebuchadnezzar took forth out of -the temple which is at Jerusalem, and brought unto Babylon, be -restored, and brought again unto the temple which is at Jerusalem, -every one to his place, and place them in the house of God. - -6:6 Now therefore, Tatnai, governor beyond the river, Shetharboznai, -and your companions the Apharsachites, which are beyond the river, be -ye far from thence: 6:7 Let the work of this house of God alone; let -the governor of the Jews and the elders of the Jews build this house -of God in his place. - -6:8 Moreover I make a decree what ye shall do to the elders of these -Jews for the building of this house of God: that of the king's goods, -even of the tribute beyond the river, forthwith expenses be given unto -these men, that they be not hindered. - -6:9 And that which they have need of, both young bullocks, and rams, -and lambs, for the burnt offerings of the God of heaven, wheat, salt, -wine, and oil, according to the appointment of the priests which are -at Jerusalem, let it be given them day by day without fail: 6:10 That -they may offer sacrifices of sweet savours unto the God of heaven, and -pray for the life of the king, and of his sons. - -6:11 Also I have made a decree, that whosoever shall alter this word, -let timber be pulled down from his house, and being set up, let him be -hanged thereon; and let his house be made a dunghill for this. - -6:12 And the God that hath caused his name to dwell there destroy all -kings and people, that shall put to their hand to alter and to destroy -this house of God which is at Jerusalem. I Darius have made a decree; -let it be done with speed. - -6:13 Then Tatnai, governor on this side the river, Shetharboznai, and -their companions, according to that which Darius the king had sent, so -they did speedily. - -6:14 And the elders of the Jews builded, and they prospered through -the prophesying of Haggai the prophet and Zechariah the son of Iddo. -And they builded, and finished it, according to the commandment of the -God of Israel, and according to the commandment of Cyrus, and Darius, -and Artaxerxes king of Persia. - -6:15 And this house was finished on the third day of the month Adar, -which was in the sixth year of the reign of Darius the king. - -6:16 And the children of Israel, the priests, and the Levites, and the -rest of the children of the captivity, kept the dedication of this -house of God with joy. - -6:17 And offered at the dedication of this house of God an hundred -bullocks, two hundred rams, four hundred lambs; and for a sin offering -for all Israel, twelve he goats, according to the number of the tribes -of Israel. - -6:18 And they set the priests in their divisions, and the Levites in -their courses, for the service of God, which is at Jerusalem; as it is -written in the book of Moses. - -6:19 And the children of the captivity kept the passover upon the -fourteenth day of the first month. - -6:20 For the priests and the Levites were purified together, all of -them were pure, and killed the passover for all the children of the -captivity, and for their brethren the priests, and for themselves. - -6:21 And the children of Israel, which were come again out of -captivity, and all such as had separated themselves unto them from the -filthiness of the heathen of the land, to seek the LORD God of Israel, -did eat, 6:22 And kept the feast of unleavened bread seven days with -joy: for the LORD had made them joyful, and turned the heart of the -king of Assyria unto them, to strengthen their hands in the work of -the house of God, the God of Israel. - -7:1 Now after these things, in the reign of Artaxerxes king of Persia, -Ezra the son of Seraiah, the son of Azariah, the son of Hilkiah, 7:2 -The son of Shallum, the son of Zadok, the son of Ahitub, 7:3 The son -of Amariah, the son of Azariah, the son of Meraioth, 7:4 The son of -Zerahiah, the son of Uzzi, the son of Bukki, 7:5 The son of Abishua, -the son of Phinehas, the son of Eleazar, the son of Aaron the chief -priest: 7:6 This Ezra went up from Babylon; and he was a ready scribe -in the law of Moses, which the LORD God of Israel had given: and the -king granted him all his request, according to the hand of the LORD -his God upon him. - -7:7 And there went up some of the children of Israel, and of the -priests, and the Levites, and the singers, and the porters, and the -Nethinims, unto Jerusalem, in the seventh year of Artaxerxes the king. - -7:8 And he came to Jerusalem in the fifth month, which was in the -seventh year of the king. - -7:9 For upon the first day of the first month began he to go up from -Babylon, and on the first day of the fifth month came he to Jerusalem, -according to the good hand of his God upon him. - -7:10 For Ezra had prepared his heart to seek the law of the LORD, and -to do it, and to teach in Israel statutes and judgments. - -7:11 Now this is the copy of the letter that the king Artaxerxes gave -unto Ezra the priest, the scribe, even a scribe of the words of the -commandments of the LORD, and of his statutes to Israel. - -7:12 Artaxerxes, king of kings, unto Ezra the priest, a scribe of the -law of the God of heaven, perfect peace, and at such a time. - -7:13 I make a decree, that all they of the people of Israel, and of -his priests and Levites, in my realm, which are minded of their own -freewill to go up to Jerusalem, go with thee. - -7:14 Forasmuch as thou art sent of the king, and of his seven -counsellors, to enquire concerning Judah and Jerusalem, according to -the law of thy God which is in thine hand; 7:15 And to carry the -silver and gold, which the king and his counsellors have freely -offered unto the God of Israel, whose habitation is in Jerusalem, 7:16 -And all the silver and gold that thou canst find in all the province -of Babylon, with the freewill offering of the people, and of the -priests, offering willingly for the house of their God which is in -Jerusalem: 7:17 That thou mayest buy speedily with this money -bullocks, rams, lambs, with their meat offerings and their drink -offerings, and offer them upon the altar of the house of your God -which is in Jerusalem. - -7:18 And whatsoever shall seem good to thee, and to thy brethren, to -do with the rest of the silver and the gold, that do after the will of -your God. - -7:19 The vessels also that are given thee for the service of the house -of thy God, those deliver thou before the God of Jerusalem. - -7:20 And whatsoever more shall be needful for the house of thy God, -which thou shalt have occasion to bestow, bestow it out of the king's -treasure house. - -7:21 And I, even I Artaxerxes the king, do make a decree to all the -treasurers which are beyond the river, that whatsoever Ezra the -priest, the scribe of the law of the God of heaven, shall require of -you, it be done speedily, 7:22 Unto an hundred talents of silver, and -to an hundred measures of wheat, and to an hundred baths of wine, and -to an hundred baths of oil, and salt without prescribing how much. - -7:23 Whatsoever is commanded by the God of heaven, let it be -diligently done for the house of the God of heaven: for why should -there be wrath against the realm of the king and his sons? 7:24 Also -we certify you, that touching any of the priests and Levites, singers, -porters, Nethinims, or ministers of this house of God, it shall not be -lawful to impose toll, tribute, or custom, upon them. - -7:25 And thou, Ezra, after the wisdom of thy God, that is in thine -hand, set magistrates and judges, which may judge all the people that -are beyond the river, all such as know the laws of thy God; and teach -ye them that know them not. - -7:26 And whosoever will not do the law of thy God, and the law of the -king, let judgment be executed speedily upon him, whether it be unto -death, or to banishment, or to confiscation of goods, or to -imprisonment. - -7:27 Blessed be the LORD God of our fathers, which hath put such a -thing as this in the king's heart, to beautify the house of the LORD -which is in Jerusalem: 7:28 And hath extended mercy unto me before the -king, and his counsellors, and before all the king's mighty princes. -And I was strengthened as the hand of the LORD my God was upon me, and -I gathered together out of Israel chief men to go up with me. - -8:1 These are now the chief of their fathers, and this is the -genealogy of them that went up with me from Babylon, in the reign of -Artaxerxes the king. - -8:2 Of the sons of Phinehas; Gershom: of the sons of Ithamar; Daniel: -of the sons of David; Hattush. - -8:3 Of the sons of Shechaniah, of the sons of Pharosh; Zechariah: and -with him were reckoned by genealogy of the males an hundred and fifty. - -8:4 Of the sons of Pahathmoab; Elihoenai the son of Zerahiah, and with -him two hundred males. - -8:5 Of the sons of Shechaniah; the son of Jahaziel, and with him three -hundred males. - -8:6 Of the sons also of Adin; Ebed the son of Jonathan, and with him -fifty males. - -8:7 And of the sons of Elam; Jeshaiah the son of Athaliah, and with -him seventy males. - -8:8 And of the sons of Shephatiah; Zebadiah the son of Michael, and -with him fourscore males. - -8:9 Of the sons of Joab; Obadiah the son of Jehiel, and with him two -hundred and eighteen males. - -8:10 And of the sons of Shelomith; the son of Josiphiah, and with him -an hundred and threescore males. - -8:11 And of the sons of Bebai; Zechariah the son of Bebai, and with -him twenty and eight males. - -8:12 And of the sons of Azgad; Johanan the son of Hakkatan, and with -him an hundred and ten males. - -8:13 And of the last sons of Adonikam, whose names are these, -Eliphelet, Jeiel, and Shemaiah, and with them threescore males. - -8:14 Of the sons also of Bigvai; Uthai, and Zabbud, and with them -seventy males. - -8:15 And I gathered them together to the river that runneth to Ahava; -and there abode we in tents three days: and I viewed the people, and -the priests, and found there none of the sons of Levi. - -8:16 Then sent I for Eliezer, for Ariel, for Shemaiah, and for -Elnathan, and for Jarib, and for Elnathan, and for Nathan, and for -Zechariah, and for Meshullam, chief men; also for Joiarib, and for -Elnathan, men of understanding. - -8:17 And I sent them with commandment unto Iddo the chief at the place -Casiphia, and I told them what they should say unto Iddo, and to his -brethren the Nethinims, at the place Casiphia, that they should bring -unto us ministers for the house of our God. - -8:18 And by the good hand of our God upon us they brought us a man of -understanding, of the sons of Mahli, the son of Levi, the son of -Israel; and Sherebiah, with his sons and his brethren, eighteen; 8:19 -And Hashabiah, and with him Jeshaiah of the sons of Merari, his -brethren and their sons, twenty; 8:20 Also of the Nethinims, whom -David and the princes had appointed for the service of the Levites, -two hundred and twenty Nethinims: all of them were expressed by name. - -8:21 Then I proclaimed a fast there, at the river of Ahava, that we -might afflict ourselves before our God, to seek of him a right way for -us, and for our little ones, and for all our substance. - -8:22 For I was ashamed to require of the king a band of soldiers and -horsemen to help us against the enemy in the way: because we had -spoken unto the king, saying, The hand of our God is upon all them for -good that seek him; but his power and his wrath is against all them -that forsake him. - -8:23 So we fasted and besought our God for this: and he was intreated -of us. - -8:24 Then I separated twelve of the chief of the priests, Sherebiah, -Hashabiah, and ten of their brethren with them, 8:25 And weighed unto -them the silver, and the gold, and the vessels, even the offering of -the house of our God, which the king, and his counsellors, and his -lords, and all Israel there present, had offered: 8:26 I even weighed -unto their hand six hundred and fifty talents of silver, and silver -vessels an hundred talents, and of gold an hundred talents; 8:27 Also -twenty basons of gold, of a thousand drams; and two vessels of fine -copper, precious as gold. - -8:28 And I said unto them, Ye are holy unto the LORD; the vessels are -holy also; and the silver and the gold are a freewill offering unto -the LORD God of your fathers. - -8:29 Watch ye, and keep them, until ye weigh them before the chief of -the priests and the Levites, and chief of the fathers of Israel, at -Jerusalem, in the chambers of the house of the LORD. - -8:30 So took the priests and the Levites the weight of the silver, and -the gold, and the vessels, to bring them to Jerusalem unto the house -of our God. - -8:31 Then we departed from the river of Ahava on the twelfth day of -the first month, to go unto Jerusalem: and the hand of our God was -upon us, and he delivered us from the hand of the enemy, and of such -as lay in wait by the way. - -8:32 And we came to Jerusalem, and abode there three days. - -8:33 Now on the fourth day was the silver and the gold and the vessels -weighed in the house of our God by the hand of Meremoth the son of -Uriah the priest; and with him was Eleazar the son of Phinehas; and -with them was Jozabad the son of Jeshua, and Noadiah the son of -Binnui, Levites; 8:34 By number and by weight of every one: and all -the weight was written at that time. - -8:35 Also the children of those that had been carried away, which were -come out of the captivity, offered burnt offerings unto the God of -Israel, twelve bullocks for all Israel, ninety and six rams, seventy -and seven lambs, twelve he goats for a sin offering: all this was a -burnt offering unto the LORD. - -8:36 And they delivered the king's commissions unto the king's -lieutenants, and to the governors on this side the river: and they -furthered the people, and the house of God. - -9:1 Now when these things were done, the princes came to me, saying, -The people of Israel, and the priests, and the Levites, have not -separated themselves from the people of the lands, doing according to -their abominations, even of the Canaanites, the Hittites, the -Perizzites, the Jebusites, the Ammonites, the Moabites, the Egyptians, -and the Amorites. - -9:2 For they have taken of their daughters for themselves, and for -their sons: so that the holy seed have mingled themselves with the -people of those lands: yea, the hand of the princes and rulers hath -been chief in this trespass. - -9:3 And when I heard this thing, I rent my garment and my mantle, and -plucked off the hair of my head and of my beard, and sat down -astonied. - -9:4 Then were assembled unto me every one that trembled at the words -of the God of Israel, because of the transgression of those that had -been carried away; and I sat astonied until the evening sacrifice. - -9:5 And at the evening sacrifice I arose up from my heaviness; and -having rent my garment and my mantle, I fell upon my knees, and spread -out my hands unto the LORD my God, 9:6 And said, O my God, I am -ashamed and blush to lift up my face to thee, my God: for our -iniquities are increased over our head, and our trespass is grown up -unto the heavens. - -9:7 Since the days of our fathers have we been in a great trespass -unto this day; and for our iniquities have we, our kings, and our -priests, been delivered into the hand of the kings of the lands, to -the sword, to captivity, and to a spoil, and to confusion of face, as -it is this day. - -9:8 And now for a little space grace hath been shewed from the LORD -our God, to leave us a remnant to escape, and to give us a nail in his -holy place, that our God may lighten our eyes, and give us a little -reviving in our bondage. - -9:9 For we were bondmen; yet our God hath not forsaken us in our -bondage, but hath extended mercy unto us in the sight of the kings of -Persia, to give us a reviving, to set up the house of our God, and to -repair the desolations thereof, and to give us a wall in Judah and in -Jerusalem. - -9:10 And now, O our God, what shall we say after this? for we have -forsaken thy commandments, 9:11 Which thou hast commanded by thy -servants the prophets, saying, The land, unto which ye go to possess -it, is an unclean land with the filthiness of the people of the lands, -with their abominations, which have filled it from one end to another -with their uncleanness. - -9:12 Now therefore give not your daughters unto their sons, neither -take their daughters unto your sons, nor seek their peace or their -wealth for ever: that ye may be strong, and eat the good of the land, -and leave it for an inheritance to your children for ever. - -9:13 And after all that is come upon us for our evil deeds, and for -our great trespass, seeing that thou our God hast punished us less -than our iniquities deserve, and hast given us such deliverance as -this; 9:14 Should we again break thy commandments, and join in -affinity with the people of these abominations? wouldest not thou be -angry with us till thou hadst consumed us, so that there should be no -remnant nor escaping? 9:15 O LORD God of Israel, thou art righteous: -for we remain yet escaped, as it is this day: behold, we are before -thee in our trespasses: for we cannot stand before thee because of -this. - -10:1 Now when Ezra had prayed, and when he had confessed, weeping and -casting himself down before the house of God, there assembled unto him -out of Israel a very great congregation of men and women and children: -for the people wept very sore. - -10:2 And Shechaniah the son of Jehiel, one of the sons of Elam, -answered and said unto Ezra, We have trespassed against our God, and -have taken strange wives of the people of the land: yet now there is -hope in Israel concerning this thing. - -10:3 Now therefore let us make a covenant with our God to put away all -the wives, and such as are born of them, according to the counsel of -my lord, and of those that tremble at the commandment of our God; and -let it be done according to the law. - -10:4 Arise; for this matter belongeth unto thee: we also will be with -thee: be of good courage, and do it. - -10:5 Then arose Ezra, and made the chief priests, the Levites, and all -Israel, to swear that they should do according to this word. And they -sware. - -10:6 Then Ezra rose up from before the house of God, and went into the -chamber of Johanan the son of Eliashib: and when he came thither, he -did eat no bread, nor drink water: for he mourned because of the -transgression of them that had been carried away. - -10:7 And they made proclamation throughout Judah and Jerusalem unto -all the children of the captivity, that they should gather themselves -together unto Jerusalem; 10:8 And that whosoever would not come within -three days, according to the counsel of the princes and the elders, -all his substance should be forfeited, and himself separated from the -congregation of those that had been carried away. - -10:9 Then all the men of Judah and Benjamin gathered themselves -together unto Jerusalem within three days. It was the ninth month, on -the twentieth day of the month; and all the people sat in the street -of the house of God, trembling because of this matter, and for the -great rain. - -10:10 And Ezra the priest stood up, and said unto them, Ye have -transgressed, and have taken strange wives, to increase the trespass -of Israel. - -10:11 Now therefore make confession unto the LORD God of your fathers, -and do his pleasure: and separate yourselves from the people of the -land, and from the strange wives. - -10:12 Then all the congregation answered and said with a loud voice, -As thou hast said, so must we do. - -10:13 But the people are many, and it is a time of much rain, and we -are not able to stand without, neither is this a work of one day or -two: for we are many that have transgressed in this thing. - -10:14 Let now our rulers of all the congregation stand, and let all -them which have taken strange wives in our cities come at appointed -times, and with them the elders of every city, and the judges thereof, -until the fierce wrath of our God for this matter be turned from us. - -10:15 Only Jonathan the son of Asahel and Jahaziah the son of Tikvah -were employed about this matter: and Meshullam and Shabbethai the -Levite helped them. - -10:16 And the children of the captivity did so. And Ezra the priest, -with certain chief of the fathers, after the house of their fathers, -and all of them by their names, were separated, and sat down in the -first day of the tenth month to examine the matter. - -10:17 And they made an end with all the men that had taken strange -wives by the first day of the first month. - -10:18 And among the sons of the priests there were found that had -taken strange wives: namely, of the sons of Jeshua the son of Jozadak, -and his brethren; Maaseiah, and Eliezer, and Jarib, and Gedaliah. - -10:19 And they gave their hands that they would put away their wives; -and being guilty, they offered a ram of the flock for their trespass. - -10:20 And of the sons of Immer; Hanani, and Zebadiah. - -10:21 And of the sons of Harim; Maaseiah, and Elijah, and Shemaiah, -and Jehiel, and Uzziah. - -10:22 And of the sons of Pashur; Elioenai, Maaseiah, Ishmael, -Nethaneel, Jozabad, and Elasah. - -10:23 Also of the Levites; Jozabad, and Shimei, and Kelaiah, (the same -is Kelita,) Pethahiah, Judah, and Eliezer. - -10:24 Of the singers also; Eliashib: and of the porters; Shallum, and -Telem, and Uri. - -10:25 Moreover of Israel: of the sons of Parosh; Ramiah, and Jeziah, -and Malchiah, and Miamin, and Eleazar, and Malchijah, and Benaiah. - -10:26 And of the sons of Elam; Mattaniah, Zechariah, and Jehiel, and -Abdi, and Jeremoth, and Eliah. - -10:27 And of the sons of Zattu; Elioenai, Eliashib, Mattaniah, and -Jeremoth, and Zabad, and Aziza. - -10:28 Of the sons also of Bebai; Jehohanan, Hananiah, Zabbai, and -Athlai. - -10:29 And of the sons of Bani; Meshullam, Malluch, and Adaiah, Jashub, -and Sheal, and Ramoth. - -10:30 And of the sons of Pahathmoab; Adna, and Chelal, Benaiah, -Maaseiah, Mattaniah, Bezaleel, and Binnui, and Manasseh. - -10:31 And of the sons of Harim; Eliezer, Ishijah, Malchiah, Shemaiah, -Shimeon, 10:32 Benjamin, Malluch, and Shemariah. - -10:33 Of the sons of Hashum; Mattenai, Mattathah, Zabad, Eliphelet, -Jeremai, Manasseh, and Shimei. - -10:34 Of the sons of Bani; Maadai, Amram, and Uel, 10:35 Benaiah, -Bedeiah, Chelluh, 10:36 Vaniah, Meremoth, Eliashib, 10:37 Mattaniah, -Mattenai, and Jaasau, 10:38 And Bani, and Binnui, Shimei, 10:39 And -Shelemiah, and Nathan, and Adaiah, 10:40 Machnadebai, Shashai, Sharai, -10:41 Azareel, and Shelemiah, Shemariah, 10:42 Shallum, Amariah, and -Joseph. - -10:43 Of the sons of Nebo; Jeiel, Mattithiah, Zabad, Zebina, Jadau, -and Joel, Benaiah. - -10:44 All these had taken strange wives: and some of them had wives by -whom they had children. - - - - -The Book of Nehemiah - - -1:1 The words of Nehemiah the son of Hachaliah. And it came to pass -in the month Chisleu, in the twentieth year, as I was in Shushan the -palace, 1:2 That Hanani, one of my brethren, came, he and certain men -of Judah; and I asked them concerning the Jews that had escaped, which -were left of the captivity, and concerning Jerusalem. - -1:3 And they said unto me, The remnant that are left of the captivity -there in the province are in great affliction and reproach: the wall -of Jerusalem also is broken down, and the gates thereof are burned -with fire. - -1:4 And it came to pass, when I heard these words, that I sat down and -wept, and mourned certain days, and fasted, and prayed before the God -of heaven, 1:5 And said, I beseech thee, O LORD God of heaven, the -great and terrible God, that keepeth covenant and mercy for them that -love him and observe his commandments: 1:6 Let thine ear now be -attentive, and thine eyes open, that thou mayest hear the prayer of -thy servant, which I pray before thee now, day and night, for the -children of Israel thy servants, and confess the sins of the children -of Israel, which we have sinned against thee: both I and my father's -house have sinned. - -1:7 We have dealt very corruptly against thee, and have not kept the -commandments, nor the statutes, nor the judgments, which thou -commandedst thy servant Moses. - -1:8 Remember, I beseech thee, the word that thou commandedst thy -servant Moses, saying, If ye transgress, I will scatter you abroad -among the nations: 1:9 But if ye turn unto me, and keep my -commandments, and do them; though there were of you cast out unto the -uttermost part of the heaven, yet will I gather them from thence, and -will bring them unto the place that I have chosen to set my name -there. - -1:10 Now these are thy servants and thy people, whom thou hast -redeemed by thy great power, and by thy strong hand. - -1:11 O LORD, I beseech thee, let now thine ear be attentive to the -prayer of thy servant, and to the prayer of thy servants, who desire -to fear thy name: and prosper, I pray thee, thy servant this day, and -grant him mercy in the sight of this man. For I was the king's -cupbearer. - -2:1 And it came to pass in the month Nisan, in the twentieth year of -Artaxerxes the king, that wine was before him: and I took up the wine, -and gave it unto the king. Now I had not been beforetime sad in his -presence. - -2:2 Wherefore the king said unto me, Why is thy countenance sad, -seeing thou art not sick? this is nothing else but sorrow of heart. -Then I was very sore afraid, 2:3 And said unto the king, Let the king -live for ever: why should not my countenance be sad, when the city, -the place of my fathers' sepulchres, lieth waste, and the gates -thereof are consumed with fire? 2:4 Then the king said unto me, For -what dost thou make request? So I prayed to the God of heaven. - -2:5 And I said unto the king, If it please the king, and if thy -servant have found favour in thy sight, that thou wouldest send me -unto Judah, unto the city of my fathers' sepulchres, that I may build -it. - -2:6 And the king said unto me, (the queen also sitting by him,) For -how long shall thy journey be? and when wilt thou return? So it -pleased the king to send me; and I set him a time. - -2:7 Moreover I said unto the king, If it please the king, let letters -be given me to the governors beyond the river, that they may convey me -over till I come into Judah; 2:8 And a letter unto Asaph the keeper of -the king's forest, that he may give me timber to make beams for the -gates of the palace which appertained to the house, and for the wall -of the city, and for the house that I shall enter into. And the king -granted me, according to the good hand of my God upon me. - -2:9 Then I came to the governors beyond the river, and gave them the -king's letters. Now the king had sent captains of the army and -horsemen with me. - -2:10 When Sanballat the Horonite, and Tobiah the servant, the -Ammonite, heard of it, it grieved them exceedingly that there was come -a man to seek the welfare of the children of Israel. - -2:11 So I came to Jerusalem, and was there three days. - -2:12 And I arose in the night, I and some few men with me; neither -told I any man what my God had put in my heart to do at Jerusalem: -neither was there any beast with me, save the beast that I rode upon. - -2:13 And I went out by night by the gate of the valley, even before -the dragon well, and to the dung port, and viewed the walls of -Jerusalem, which were broken down, and the gates thereof were consumed -with fire. - -2:14 Then I went on to the gate of the fountain, and to the king's -pool: but there was no place for the beast that was under me to pass. - -2:15 Then went I up in the night by the brook, and viewed the wall, -and turned back, and entered by the gate of the valley, and so -returned. - -2:16 And the rulers knew not whither I went, or what I did; neither -had I as yet told it to the Jews, nor to the priests, nor to the -nobles, nor to the rulers, nor to the rest that did the work. - -2:17 Then said I unto them, Ye see the distress that we are in, how -Jerusalem lieth waste, and the gates thereof are burned with fire: -come, and let us build up the wall of Jerusalem, that we be no more a -reproach. - -2:18 Then I told them of the hand of my God which was good upon me; as -also the king's words that he had spoken unto me. And they said, Let -us rise up and build. So they strengthened their hands for this good -work. - -2:19 But when Sanballat the Horonite, and Tobiah the servant, the -Ammonite, and Geshem the Arabian, heard it, they laughed us to scorn, -and despised us, and said, What is this thing that ye do? will ye -rebel against the king? 2:20 Then answered I them, and said unto -them, The God of heaven, he will prosper us; therefore we his servants -will arise and build: but ye have no portion, nor right, nor memorial, -in Jerusalem. - -3:1 Then Eliashib the high priest rose up with his brethren the -priests, and they builded the sheep gate; they sanctified it, and set -up the doors of it; even unto the tower of Meah they sanctified it, -unto the tower of Hananeel. - -3:2 And next unto him builded the men of Jericho. And next to them -builded Zaccur the son of Imri. - -3:3 But the fish gate did the sons of Hassenaah build, who also laid -the beams thereof, and set up the doors thereof, the locks thereof, -and the bars thereof. - -3:4 And next unto them repaired Meremoth the son of Urijah, the son of -Koz. And next unto them repaired Meshullam the son of Berechiah, the -son of Meshezabeel. And next unto them repaired Zadok the son of -Baana. - -3:5 And next unto them the Tekoites repaired; but their nobles put not -their necks to the work of their LORD. - -3:6 Moreover the old gate repaired Jehoiada the son of Paseah, and -Meshullam the son of Besodeiah; they laid the beams thereof, and set -up the doors thereof, and the locks thereof, and the bars thereof. - -3:7 And next unto them repaired Melatiah the Gibeonite, and Jadon the -Meronothite, the men of Gibeon, and of Mizpah, unto the throne of the -governor on this side the river. - -3:8 Next unto him repaired Uzziel the son of Harhaiah, of the -goldsmiths. - -Next unto him also repaired Hananiah the son of one of the -apothecaries, and they fortified Jerusalem unto the broad wall. - -3:9 And next unto them repaired Rephaiah the son of Hur, the ruler of -the half part of Jerusalem. - -3:10 And next unto them repaired Jedaiah the son of Harumaph, even -over against his house. And next unto him repaired Hattush the son of -Hashabniah. - -3:11 Malchijah the son of Harim, and Hashub the son of Pahathmoab, -repaired the other piece, and the tower of the furnaces. - -3:12 And next unto him repaired Shallum the son of Halohesh, the ruler -of the half part of Jerusalem, he and his daughters. - -3:13 The valley gate repaired Hanun, and the inhabitants of Zanoah; -they built it, and set up the doors thereof, the locks thereof, and -the bars thereof, and a thousand cubits on the wall unto the dung -gate. - -3:14 But the dung gate repaired Malchiah the son of Rechab, the ruler -of part of Bethhaccerem; he built it, and set up the doors thereof, -the locks thereof, and the bars thereof. - -3:15 But the gate of the fountain repaired Shallun the son of -Colhozeh, the ruler of part of Mizpah; he built it, and covered it, -and set up the doors thereof, the locks thereof, and the bars thereof, -and the wall of the pool of Siloah by the king's garden, and unto the -stairs that go down from the city of David. - -3:16 After him repaired Nehemiah the son of Azbuk, the ruler of the -half part of Bethzur, unto the place over against the sepulchres of -David, and to the pool that was made, and unto the house of the -mighty. - -3:17 After him repaired the Levites, Rehum the son of Bani. Next unto -him repaired Hashabiah, the ruler of the half part of Keilah, in his -part. - -3:18 After him repaired their brethren, Bavai the son of Henadad, the -ruler of the half part of Keilah. - -3:19 And next to him repaired Ezer the son of Jeshua, the ruler of -Mizpah, another piece over against the going up to the armoury at the -turning of the wall. - -3:20 After him Baruch the son of Zabbai earnestly repaired the other -piece, from the turning of the wall unto the door of the house of -Eliashib the high priest. - -3:21 After him repaired Meremoth the son of Urijah the son of Koz -another piece, from the door of the house of Eliashib even to the end -of the house of Eliashib. - -3:22 And after him repaired the priests, the men of the plain. - -3:23 After him repaired Benjamin and Hashub over against their house. - -After him repaired Azariah the son of Maaseiah the son of Ananiah by -his house. - -3:24 After him repaired Binnui the son of Henadad another piece, from -the house of Azariah unto the turning of the wall, even unto the -corner. - -3:25 Palal the son of Uzai, over against the turning of the wall, and -the tower which lieth out from the king's high house, that was by the -court of the prison. After him Pedaiah the son of Parosh. - -3:26 Moreover the Nethinims dwelt in Ophel, unto the place over -against the water gate toward the east, and the tower that lieth out. - -3:27 After them the Tekoites repaired another piece, over against the -great tower that lieth out, even unto the wall of Ophel. - -3:28 From above the horse gate repaired the priests, every one over -against his house. - -3:29 After them repaired Zadok the son of Immer over against his -house. - -After him repaired also Shemaiah the son of Shechaniah, the keeper of -the east gate. - -3:30 After him repaired Hananiah the son of Shelemiah, and Hanun the -sixth son of Zalaph, another piece. After him repaired Meshullam the -son of Berechiah over against his chamber. - -3:31 After him repaired Malchiah the goldsmith's son unto the place of -the Nethinims, and of the merchants, over against the gate Miphkad, -and to the going up of the corner. - -3:32 And between the going up of the corner unto the sheep gate -repaired the goldsmiths and the merchants. - -4:1 But it came to pass, that when Sanballat heard that we builded the -wall, he was wroth, and took great indignation, and mocked the Jews. - -4:2 And he spake before his brethren and the army of Samaria, and -said, What do these feeble Jews? will they fortify themselves? will -they sacrifice? will they make an end in a day? will they revive the -stones out of the heaps of the rubbish which are burned? 4:3 Now -Tobiah the Ammonite was by him, and he said, Even that which they -build, if a fox go up, he shall even break down their stone wall. - -4:4 Hear, O our God; for we are despised: and turn their reproach upon -their own head, and give them for a prey in the land of captivity: 4:5 -And cover not their iniquity, and let not their sin be blotted out -from before thee: for they have provoked thee to anger before the -builders. - -4:6 So built we the wall; and all the wall was joined together unto -the half thereof: for the people had a mind to work. - -4:7 But it came to pass, that when Sanballat, and Tobiah, and the -Arabians, and the Ammonites, and the Ashdodites, heard that the walls -of Jerusalem were made up, and that the breaches began to be stopped, -then they were very wroth, 4:8 And conspired all of them together to -come and to fight against Jerusalem, and to hinder it. - -4:9 Nevertheless we made our prayer unto our God, and set a watch -against them day and night, because of them. - -4:10 And Judah said, The strength of the bearers of burdens is -decayed, and there is much rubbish; so that we are not able to build -the wall. - -4:11 And our adversaries said, They shall not know, neither see, till -we come in the midst among them, and slay them, and cause the work to -cease. - -4:12 And it came to pass, that when the Jews which dwelt by them came, -they said unto us ten times, From all places whence ye shall return -unto us they will be upon you. - -4:13 Therefore set I in the lower places behind the wall, and on the -higher places, I even set the people after their families with their -swords, their spears, and their bows. - -4:14 And I looked, and rose up, and said unto the nobles, and to the -rulers, and to the rest of the people, Be not ye afraid of them: -remember the LORD, which is great and terrible, and fight for your -brethren, your sons, and your daughters, your wives, and your houses. - -4:15 And it came to pass, when our enemies heard that it was known -unto us, and God had brought their counsel to nought, that we returned -all of us to the wall, every one unto his work. - -4:16 And it came to pass from that time forth, that the half of my -servants wrought in the work, and the other half of them held both the -spears, the shields, and the bows, and the habergeons; and the rulers -were behind all the house of Judah. - -4:17 They which builded on the wall, and they that bare burdens, with -those that laded, every one with one of his hands wrought in the work, -and with the other hand held a weapon. - -4:18 For the builders, every one had his sword girded by his side, and -so builded. And he that sounded the trumpet was by me. - -4:19 And I said unto the nobles, and to the rulers, and to the rest of -the people, The work is great and large, and we are separated upon the -wall, one far from another. - -4:20 In what place therefore ye hear the sound of the trumpet, resort -ye thither unto us: our God shall fight for us. - -4:21 So we laboured in the work: and half of them held the spears from -the rising of the morning till the stars appeared. - -4:22 Likewise at the same time said I unto the people, Let every one -with his servant lodge within Jerusalem, that in the night they may be -a guard to us, and labour on the day. - -4:23 So neither I, nor my brethren, nor my servants, nor the men of -the guard which followed me, none of us put off our clothes, saving -that every one put them off for washing. - -5:1 And there was a great cry of the people and of their wives against -their brethren the Jews. - -5:2 For there were that said, We, our sons, and our daughters, are -many: therefore we take up corn for them, that we may eat, and live. - -5:3 Some also there were that said, We have mortgaged our lands, -vineyards, and houses, that we might buy corn, because of the dearth. - -5:4 There were also that said, We have borrowed money for the king's -tribute, and that upon our lands and vineyards. - -5:5 Yet now our flesh is as the flesh of our brethren, our children as -their children: and, lo, we bring into bondage our sons and our -daughters to be servants, and some of our daughters are brought unto -bondage already: neither is it in our power to redeem them; for other -men have our lands and vineyards. - -5:6 And I was very angry when I heard their cry and these words. - -5:7 Then I consulted with myself, and I rebuked the nobles, and the -rulers, and said unto them, Ye exact usury, every one of his brother. -And I set a great assembly against them. - -5:8 And I said unto them, We after our ability have redeemed our -brethren the Jews, which were sold unto the heathen; and will ye even -sell your brethren? or shall they be sold unto us? Then held they -their peace, and found nothing to answer. - -5:9 Also I said, It is not good that ye do: ought ye not to walk in -the fear of our God because of the reproach of the heathen our -enemies? 5:10 I likewise, and my brethren, and my servants, might -exact of them money and corn: I pray you, let us leave off this usury. - -5:11 Restore, I pray you, to them, even this day, their lands, their -vineyards, their oliveyards, and their houses, also the hundredth part -of the money, and of the corn, the wine, and the oil, that ye exact of -them. - -5:12 Then said they, We will restore them, and will require nothing of -them; so will we do as thou sayest. Then I called the priests, and -took an oath of them, that they should do according to this promise. - -5:13 Also I shook my lap, and said, So God shake out every man from -his house, and from his labour, that performeth not this promise, even -thus be he shaken out, and emptied. And all the congregation said, -Amen, and praised the LORD. And the people did according to this -promise. - -5:14 Moreover from the time that I was appointed to be their governor -in the land of Judah, from the twentieth year even unto the two and -thirtieth year of Artaxerxes the king, that is, twelve years, I and my -brethren have not eaten the bread of the governor. - -5:15 But the former governors that had been before me were chargeable -unto the people, and had taken of them bread and wine, beside forty -shekels of silver; yea, even their servants bare rule over the people: -but so did not I, because of the fear of God. - -5:16 Yea, also I continued in the work of this wall, neither bought we -any land: and all my servants were gathered thither unto the work. - -5:17 Moreover there were at my table an hundred and fifty of the Jews -and rulers, beside those that came unto us from among the heathen that -are about us. - -5:18 Now that which was prepared for me daily was one ox and six -choice sheep; also fowls were prepared for me, and once in ten days -store of all sorts of wine: yet for all this required not I the bread -of the governor, because the bondage was heavy upon this people. - -5:19 Think upon me, my God, for good, according to all that I have -done for this people. - -6:1 Now it came to pass when Sanballat, and Tobiah, and Geshem the -Arabian, and the rest of our enemies, heard that I had builded the -wall, and that there was no breach left therein; (though at that time -I had not set up the doors upon the gates;) 6:2 That Sanballat and -Geshem sent unto me, saying, Come, let us meet together in some one of -the villages in the plain of Ono. But they thought to do me mischief. - -6:3 And I sent messengers unto them, saying, I am doing a great work, -so that I cannot come down: why should the work cease, whilst I leave -it, and come down to you? 6:4 Yet they sent unto me four times after -this sort; and I answered them after the same manner. - -6:5 Then sent Sanballat his servant unto me in like manner the fifth -time with an open letter in his hand; 6:6 Wherein was written, It is -reported among the heathen, and Gashmu saith it, that thou and the -Jews think to rebel: for which cause thou buildest the wall, that thou -mayest be their king, according to these words. - -6:7 And thou hast also appointed prophets to preach of thee at -Jerusalem, saying, There is a king in Judah: and now shall it be -reported to the king according to these words. Come now therefore, and -let us take counsel together. - -6:8 Then I sent unto him, saying, There are no such things done as -thou sayest, but thou feignest them out of thine own heart. - -6:9 For they all made us afraid, saying, Their hands shall be weakened -from the work, that it be not done. Now therefore, O God, strengthen -my hands. - -6:10 Afterward I came unto the house of Shemaiah the son of Delaiah -the son of Mehetabeel, who was shut up; and he said, Let us meet -together in the house of God, within the temple, and let us shut the -doors of the temple: for they will come to slay thee; yea, in the -night will they come to slay thee. - -6:11 And I said, Should such a man as I flee? and who is there, that, -being as I am, would go into the temple to save his life? I will not -go in. - -6:12 And, lo, I perceived that God had not sent him; but that he -pronounced this prophecy against me: for Tobiah and Sanballat had -hired him. - -6:13 Therefore was he hired, that I should be afraid, and do so, and -sin, and that they might have matter for an evil report, that they -might reproach me. - -6:14 My God, think thou upon Tobiah and Sanballat according to these -their works, and on the prophetess Noadiah, and the rest of the -prophets, that would have put me in fear. - -6:15 So the wall was finished in the twenty and fifth day of the month -Elul, in fifty and two days. - -6:16 And it came to pass, that when all our enemies heard thereof, and -all the heathen that were about us saw these things, they were much -cast down in their own eyes: for they perceived that this work was -wrought of our God. - -6:17 Moreover in those days the nobles of Judah sent many letters unto -Tobiah, and the letters of Tobiah came unto them. - -6:18 For there were many in Judah sworn unto him, because he was the -son in law of Shechaniah the son of Arah; and his son Johanan had -taken the daughter of Meshullam the son of Berechiah. - -6:19 Also they reported his good deeds before me, and uttered my words -to him. And Tobiah sent letters to put me in fear. - -7:1 Now it came to pass, when the wall was built, and I had set up the -doors, and the porters and the singers and the Levites were appointed, -7:2 That I gave my brother Hanani, and Hananiah the ruler of the -palace, charge over Jerusalem: for he was a faithful man, and feared -God above many. - -7:3 And I said unto them, Let not the gates of Jerusalem be opened -until the sun be hot; and while they stand by, let them shut the -doors, and bar them: and appoint watches of the inhabitants of -Jerusalem, every one in his watch, and every one to be over against -his house. - -7:4 Now the city was large and great: but the people were few therein, -and the houses were not builded. - -7:5 And my God put into mine heart to gather together the nobles, and -the rulers, and the people, that they might be reckoned by genealogy. -And I found a register of the genealogy of them which came up at the -first, and found written therein, 7:6 These are the children of the -province, that went up out of the captivity, of those that had been -carried away, whom Nebuchadnezzar the king of Babylon had carried -away, and came again to Jerusalem and to Judah, every one unto his -city; 7:7 Who came with Zerubbabel, Jeshua, Nehemiah, Azariah, -Raamiah, Nahamani, Mordecai, Bilshan, Mispereth, Bigvai, Nehum, -Baanah. The number, I say, of the men of the people of Israel was -this; 7:8 The children of Parosh, two thousand an hundred seventy and -two. - -7:9 The children of Shephatiah, three hundred seventy and two. - -7:10 The children of Arah, six hundred fifty and two. - -7:11 The children of Pahathmoab, of the children of Jeshua and Joab, -two thousand and eight hundred and eighteen. - -7:12 The children of Elam, a thousand two hundred fifty and four. - -7:13 The children of Zattu, eight hundred forty and five. - -7:14 The children of Zaccai, seven hundred and threescore. - -7:15 The children of Binnui, six hundred forty and eight. - -7:16 The children of Bebai, six hundred twenty and eight. - -7:17 The children of Azgad, two thousand three hundred twenty and two. - -7:18 The children of Adonikam, six hundred threescore and seven. - -7:19 The children of Bigvai, two thousand threescore and seven. - -7:20 The children of Adin, six hundred fifty and five. - -7:21 The children of Ater of Hezekiah, ninety and eight. - -7:22 The children of Hashum, three hundred twenty and eight. - -7:23 The children of Bezai, three hundred twenty and four. - -7:24 The children of Hariph, an hundred and twelve. - -7:25 The children of Gibeon, ninety and five. - -7:26 The men of Bethlehem and Netophah, an hundred fourscore and -eight. - -7:27 The men of Anathoth, an hundred twenty and eight. - -7:28 The men of Bethazmaveth, forty and two. - -7:29 The men of Kirjathjearim, Chephirah, and Beeroth, seven hundred -forty and three. - -7:30 The men of Ramah and Gaba, six hundred twenty and one. - -7:31 The men of Michmas, an hundred and twenty and two. - -7:32 The men of Bethel and Ai, an hundred twenty and three. - -7:33 The men of the other Nebo, fifty and two. - -7:34 The children of the other Elam, a thousand two hundred fifty and -four. - -7:35 The children of Harim, three hundred and twenty. - -7:36 The children of Jericho, three hundred forty and five. - -7:37 The children of Lod, Hadid, and Ono, seven hundred twenty and -one. - -7:38 The children of Senaah, three thousand nine hundred and thirty. - -7:39 The priests: the children of Jedaiah, of the house of Jeshua, -nine hundred seventy and three. - -7:40 The children of Immer, a thousand fifty and two. - -7:41 The children of Pashur, a thousand two hundred forty and seven. - -7:42 The children of Harim, a thousand and seventeen. - -7:43 The Levites: the children of Jeshua, of Kadmiel, and of the -children of Hodevah, seventy and four. - -7:44 The singers: the children of Asaph, an hundred forty and eight. - -7:45 The porters: the children of Shallum, the children of Ater, the -children of Talmon, the children of Akkub, the children of Hatita, the -children of Shobai, an hundred thirty and eight. - -7:46 The Nethinims: the children of Ziha, the children of Hashupha, -the children of Tabbaoth, 7:47 The children of Keros, the children of -Sia, the children of Padon, 7:48 The children of Lebana, the children -of Hagaba, the children of Shalmai, 7:49 The children of Hanan, the -children of Giddel, the children of Gahar, 7:50 The children of -Reaiah, the children of Rezin, the children of Nekoda, 7:51 The -children of Gazzam, the children of Uzza, the children of Phaseah, -7:52 The children of Besai, the children of Meunim, the children of -Nephishesim, 7:53 The children of Bakbuk, the children of Hakupha, the -children of Harhur, 7:54 The children of Bazlith, the children of -Mehida, the children of Harsha, 7:55 The children of Barkos, the -children of Sisera, the children of Tamah, 7:56 The children of -Neziah, the children of Hatipha. - -7:57 The children of Solomon's servants: the children of Sotai, the -children of Sophereth, the children of Perida, 7:58 The children of -Jaala, the children of Darkon, the children of Giddel, 7:59 The -children of Shephatiah, the children of Hattil, the children of -Pochereth of Zebaim, the children of Amon. - -7:60 All the Nethinims, and the children of Solomon's servants, were -three hundred ninety and two. - -7:61 And these were they which went up also from Telmelah, Telharesha, -Cherub, Addon, and Immer: but they could not shew their father's -house, nor their seed, whether they were of Israel. - -7:62 The children of Delaiah, the children of Tobiah, the children of -Nekoda, six hundred forty and two. - -7:63 And of the priests: the children of Habaiah, the children of Koz, -the children of Barzillai, which took one of the daughters of -Barzillai the Gileadite to wife, and was called after their name. - -7:64 These sought their register among those that were reckoned by -genealogy, but it was not found: therefore were they, as polluted, put -from the priesthood. - -7:65 And the Tirshatha said unto them, that they should not eat of the -most holy things, till there stood up a priest with Urim and Thummim. - -7:66 The whole congregation together was forty and two thousand three -hundred and threescore, 7:67 Beside their manservants and their -maidservants, of whom there were seven thousand three hundred thirty -and seven: and they had two hundred forty and five singing men and -singing women. - -7:68 Their horses, seven hundred thirty and six: their mules, two -hundred forty and five: 7:69 Their camels, four hundred thirty and -five: six thousand seven hundred and twenty asses. - -7:70 And some of the chief of the fathers gave unto the work. The -Tirshatha gave to the treasure a thousand drams of gold, fifty basons, -five hundred and thirty priests' garments. - -7:71 And some of the chief of the fathers gave to the treasure of the -work twenty thousand drams of gold, and two thousand and two hundred -pound of silver. - -7:72 And that which the rest of the people gave was twenty thousand -drams of gold, and two thousand pound of silver, and threescore and -seven priests' garments. - -7:73 So the priests, and the Levites, and the porters, and the -singers, and some of the people, and the Nethinims, and all Israel, -dwelt in their cities; and when the seventh month came, the children -of Israel were in their cities. - -8:1 And all the people gathered themselves together as one man into -the street that was before the water gate; and they spake unto Ezra -the scribe to bring the book of the law of Moses, which the LORD had -commanded to Israel. - -8:2 And Ezra the priest brought the law before the congregation both -of men and women, and all that could hear with understanding, upon the -first day of the seventh month. - -8:3 And he read therein before the street that was before the water -gate from the morning until midday, before the men and the women, and -those that could understand; and the ears of all the people were -attentive unto the book of the law. - -8:4 And Ezra the scribe stood upon a pulpit of wood, which they had -made for the purpose; and beside him stood Mattithiah, and Shema, and -Anaiah, and Urijah, and Hilkiah, and Maaseiah, on his right hand; and -on his left hand, Pedaiah, and Mishael, and Malchiah, and Hashum, and -Hashbadana, Zechariah, and Meshullam. - -8:5 And Ezra opened the book in the sight of all the people; (for he -was above all the people;) and when he opened it, all the people stood -up: 8:6 And Ezra blessed the LORD, the great God. And all the people -answered, Amen, Amen, with lifting up their hands: and they bowed -their heads, and worshipped the LORD with their faces to the ground. - -8:7 Also Jeshua, and Bani, and Sherebiah, Jamin, Akkub, Shabbethai, -Hodijah, Maaseiah, Kelita, Azariah, Jozabad, Hanan, Pelaiah, and the -Levites, caused the people to understand the law: and the people stood -in their place. - -8:8 So they read in the book in the law of God distinctly, and gave -the sense, and caused them to understand the reading. - -8:9 And Nehemiah, which is the Tirshatha, and Ezra the priest the -scribe, and the Levites that taught the people, said unto all the -people, This day is holy unto the LORD your God; mourn not, nor weep. -For all the people wept, when they heard the words of the law. - -8:10 Then he said unto them, Go your way, eat the fat, and drink the -sweet, and send portions unto them for whom nothing is prepared: for -this day is holy unto our LORD: neither be ye sorry; for the joy of -the LORD is your strength. - -8:11 So the Levites stilled all the people, saying, Hold your peace, -for the day is holy; neither be ye grieved. - -8:12 And all the people went their way to eat, and to drink, and to -send portions, and to make great mirth, because they had understood -the words that were declared unto them. - -8:13 And on the second day were gathered together the chief of the -fathers of all the people, the priests, and the Levites, unto Ezra the -scribe, even to understand the words of the law. - -8:14 And they found written in the law which the LORD had commanded by -Moses, that the children of Israel should dwell in booths in the feast -of the seventh month: 8:15 And that they should publish and proclaim -in all their cities, and in Jerusalem, saying, Go forth unto the -mount, and fetch olive branches, and pine branches, and myrtle -branches, and palm branches, and branches of thick trees, to make -booths, as it is written. - -8:16 So the people went forth, and brought them, and made themselves -booths, every one upon the roof of his house, and in their courts, and -in the courts of the house of God, and in the street of the water -gate, and in the street of the gate of Ephraim. - -8:17 And all the congregation of them that were come again out of the -captivity made booths, and sat under the booths: for since the days of -Jeshua the son of Nun unto that day had not the children of Israel -done so. And there was very great gladness. - -8:18 Also day by day, from the first day unto the last day, he read in -the book of the law of God. And they kept the feast seven days; and on -the eighth day was a solemn assembly, according unto the manner. - -9:1 Now in the twenty and fourth day of this month the children of -Israel were assembled with fasting, and with sackclothes, and earth -upon them. - -9:2 And the seed of Israel separated themselves from all strangers, -and stood and confessed their sins, and the iniquities of their -fathers. - -9:3 And they stood up in their place, and read in the book of the law -of the LORD their God one fourth part of the day; and another fourth -part they confessed, and worshipped the LORD their God. - -9:4 Then stood up upon the stairs, of the Levites, Jeshua, and Bani, -Kadmiel, Shebaniah, Bunni, Sherebiah, Bani, and Chenani, and cried -with a loud voice unto the LORD their God. - -9:5 Then the Levites, Jeshua, and Kadmiel, Bani, Hashabniah, -Sherebiah, Hodijah, Shebaniah, and Pethahiah, said, Stand up and bless -the LORD your God for ever and ever: and blessed be thy glorious name, -which is exalted above all blessing and praise. - -9:6 Thou, even thou, art LORD alone; thou hast made heaven, the heaven -of heavens, with all their host, the earth, and all things that are -therein, the seas, and all that is therein, and thou preservest them -all; and the host of heaven worshippeth thee. - -9:7 Thou art the LORD the God, who didst choose Abram, and broughtest -him forth out of Ur of the Chaldees, and gavest him the name of -Abraham; 9:8 And foundest his heart faithful before thee, and madest a -covenant with him to give the land of the Canaanites, the Hittites, -the Amorites, and the Perizzites, and the Jebusites, and the -Girgashites, to give it, I say, to his seed, and hast performed thy -words; for thou art righteous: 9:9 And didst see the affliction of our -fathers in Egypt, and heardest their cry by the Red sea; 9:10 And -shewedst signs and wonders upon Pharaoh, and on all his servants, and -on all the people of his land: for thou knewest that they dealt -proudly against them. So didst thou get thee a name, as it is this -day. - -9:11 And thou didst divide the sea before them, so that they went -through the midst of the sea on the dry land; and their persecutors -thou threwest into the deeps, as a stone into the mighty waters. - -9:12 Moreover thou leddest them in the day by a cloudy pillar; and in -the night by a pillar of fire, to give them light in the way wherein -they should go. - -9:13 Thou camest down also upon mount Sinai, and spakest with them -from heaven, and gavest them right judgments, and true laws, good -statutes and commandments: 9:14 And madest known unto them thy holy -sabbath, and commandedst them precepts, statutes, and laws, by the -hand of Moses thy servant: 9:15 And gavest them bread from heaven for -their hunger, and broughtest forth water for them out of the rock for -their thirst, and promisedst them that they should go in to possess -the land which thou hadst sworn to give them. - -9:16 But they and our fathers dealt proudly, and hardened their necks, -and hearkened not to thy commandments, 9:17 And refused to obey, -neither were mindful of thy wonders that thou didst among them; but -hardened their necks, and in their rebellion appointed a captain to -return to their bondage: but thou art a God ready to pardon, gracious -and merciful, slow to anger, and of great kindness, and forsookest -them not. - -9:18 Yea, when they had made them a molten calf, and said, This is thy -God that brought thee up out of Egypt, and had wrought great -provocations; 9:19 Yet thou in thy manifold mercies forsookest them -not in the wilderness: the pillar of the cloud departed not from them -by day, to lead them in the way; neither the pillar of fire by night, -to shew them light, and the way wherein they should go. - -9:20 Thou gavest also thy good spirit to instruct them, and -withheldest not thy manna from their mouth, and gavest them water for -their thirst. - -9:21 Yea, forty years didst thou sustain them in the wilderness, so -that they lacked nothing; their clothes waxed not old, and their feet -swelled not. - -9:22 Moreover thou gavest them kingdoms and nations, and didst divide -them into corners: so they possessed the land of Sihon, and the land -of the king of Heshbon, and the land of Og king of Bashan. - -9:23 Their children also multipliedst thou as the stars of heaven, and -broughtest them into the land, concerning which thou hadst promised to -their fathers, that they should go in to possess it. - -9:24 So the children went in and possessed the land, and thou -subduedst before them the inhabitants of the land, the Canaanites, and -gavest them into their hands, with their kings, and the people of the -land, that they might do with them as they would. - -9:25 And they took strong cities, and a fat land, and possessed houses -full of all goods, wells digged, vineyards, and oliveyards, and fruit -trees in abundance: so they did eat, and were filled, and became fat, -and delighted themselves in thy great goodness. - -9:26 Nevertheless they were disobedient, and rebelled against thee, -and cast thy law behind their backs, and slew thy prophets which -testified against them to turn them to thee, and they wrought great -provocations. - -9:27 Therefore thou deliveredst them into the hand of their enemies, -who vexed them: and in the time of their trouble, when they cried unto -thee, thou heardest them from heaven; and according to thy manifold -mercies thou gavest them saviours, who saved them out of the hand of -their enemies. - -9:28 But after they had rest, they did evil again before thee: -therefore leftest thou them in the land of their enemies, so that they -had the dominion over them: yet when they returned, and cried unto -thee, thou heardest them from heaven; and many times didst thou -deliver them according to thy mercies; 9:29 And testifiedst against -them, that thou mightest bring them again unto thy law: yet they dealt -proudly, and hearkened not unto thy commandments, but sinned against -thy judgments, (which if a man do, he shall live in them;) and -withdrew the shoulder, and hardened their neck, and would not hear. - -9:30 Yet many years didst thou forbear them, and testifiedst against -them by thy spirit in thy prophets: yet would they not give ear: -therefore gavest thou them into the hand of the people of the lands. - -9:31 Nevertheless for thy great mercies' sake thou didst not utterly -consume them, nor forsake them; for thou art a gracious and merciful -God. - -9:32 Now therefore, our God, the great, the mighty, and the terrible -God, who keepest covenant and mercy, let not all the trouble seem -little before thee, that hath come upon us, on our kings, on our -princes, and on our priests, and on our prophets, and on our fathers, -and on all thy people, since the time of the kings of Assyria unto -this day. - -9:33 Howbeit thou art just in all that is brought upon us; for thou -hast done right, but we have done wickedly: 9:34 Neither have our -kings, our princes, our priests, nor our fathers, kept thy law, nor -hearkened unto thy commandments and thy testimonies, wherewith thou -didst testify against them. - -9:35 For they have not served thee in their kingdom, and in thy great -goodness that thou gavest them, and in the large and fat land which -thou gavest before them, neither turned they from their wicked works. - -9:36 Behold, we are servants this day, and for the land that thou -gavest unto our fathers to eat the fruit thereof and the good thereof, -behold, we are servants in it: 9:37 And it yieldeth much increase unto -the kings whom thou hast set over us because of our sins: also they -have dominion over our bodies, and over our cattle, at their pleasure, -and we are in great distress. - -9:38 And because of all this we make a sure covenant, and write it; -and our princes, Levites, and priests, seal unto it. - -10:1 Now those that sealed were, Nehemiah, the Tirshatha, the son of -Hachaliah, and Zidkijah, 10:2 Seraiah, Azariah, Jeremiah, 10:3 Pashur, -Amariah, Malchijah, 10:4 Hattush, Shebaniah, Malluch, 10:5 Harim, -Meremoth, Obadiah, 10:6 Daniel, Ginnethon, Baruch, 10:7 Meshullam, -Abijah, Mijamin, 10:8 Maaziah, Bilgai, Shemaiah: these were the -priests. - -10:9 And the Levites: both Jeshua the son of Azaniah, Binnui of the -sons of Henadad, Kadmiel; 10:10 And their brethren, Shebaniah, -Hodijah, Kelita, Pelaiah, Hanan, 10:11 Micha, Rehob, Hashabiah, 10:12 -Zaccur, Sherebiah, Shebaniah, 10:13 Hodijah, Bani, Beninu. - -10:14 The chief of the people; Parosh, Pahathmoab, Elam, Zatthu, Bani, -10:15 Bunni, Azgad, Bebai, 10:16 Adonijah, Bigvai, Adin, 10:17 Ater, -Hizkijah, Azzur, 10:18 Hodijah, Hashum, Bezai, 10:19 Hariph, Anathoth, -Nebai, 10:20 Magpiash, Meshullam, Hezir, 10:21 Meshezabeel, Zadok, -Jaddua, 10:22 Pelatiah, Hanan, Anaiah, 10:23 Hoshea, Hananiah, Hashub, -10:24 Hallohesh, Pileha, Shobek, 10:25 Rehum, Hashabnah, Maaseiah, -10:26 And Ahijah, Hanan, Anan, 10:27 Malluch, Harim, Baanah. - -10:28 And the rest of the people, the priests, the Levites, the -porters, the singers, the Nethinims, and all they that had separated -themselves from the people of the lands unto the law of God, their -wives, their sons, and their daughters, every one having knowledge, -and having understanding; 10:29 They clave to their brethren, their -nobles, and entered into a curse, and into an oath, to walk in God's -law, which was given by Moses the servant of God, and to observe and -do all the commandments of the LORD our Lord, and his judgments and -his statutes; 10:30 And that we would not give our daughters unto the -people of the land, not take their daughters for our sons: 10:31 And -if the people of the land bring ware or any victuals on the sabbath -day to sell, that we would not buy it of them on the sabbath, or on -the holy day: and that we would leave the seventh year, and the -exaction of every debt. - -10:32 Also we made ordinances for us, to charge ourselves yearly with -the third part of a shekel for the service of the house of our God; -10:33 For the shewbread, and for the continual meat offering, and for -the continual burnt offering, of the sabbaths, of the new moons, for -the set feasts, and for the holy things, and for the sin offerings to -make an atonement for Israel, and for all the work of the house of our -God. - -10:34 And we cast the lots among the priests, the Levites, and the -people, for the wood offering, to bring it into the house of our God, -after the houses of our fathers, at times appointed year by year, to -burn upon the altar of the LORD our God, as it is written in the law: -10:35 And to bring the firstfruits of our ground, and the firstfruits -of all fruit of all trees, year by year, unto the house of the LORD: -10:36 Also the firstborn of our sons, and of our cattle, as it is -written in the law, and the firstlings of our herds and of our flocks, -to bring to the house of our God, unto the priests that minister in -the house of our God: 10:37 And that we should bring the firstfruits -of our dough, and our offerings, and the fruit of all manner of trees, -of wine and of oil, unto the priests, to the chambers of the house of -our God; and the tithes of our ground unto the Levites, that the same -Levites might have the tithes in all the cities of our tillage. - -10:38 And the priest the son of Aaron shall be with the Levites, when -the Levites take tithes: and the Levites shall bring up the tithe of -the tithes unto the house of our God, to the chambers, into the -treasure house. - -10:39 For the children of Israel and the children of Levi shall bring -the offering of the corn, of the new wine, and the oil, unto the -chambers, where are the vessels of the sanctuary, and the priests that -minister, and the porters, and the singers: and we will not forsake -the house of our God. - -11:1 And the rulers of the people dwelt at Jerusalem: the rest of the -people also cast lots, to bring one of ten to dwell in Jerusalem the -holy city, and nine parts to dwell in other cities. - -11:2 And the people blessed all the men, that willingly offered -themselves to dwell at Jerusalem. - -11:3 Now these are the chief of the province that dwelt in Jerusalem: -but in the cities of Judah dwelt every one in his possession in their -cities, to wit, Israel, the priests, and the Levites, and the -Nethinims, and the children of Solomon's servants. - -11:4 And at Jerusalem dwelt certain of the children of Judah, and of -the children of Benjamin. Of the children of Judah; Athaiah the son of -Uzziah, the son of Zechariah, the son of Amariah, the son of -Shephatiah, the son of Mahalaleel, of the children of Perez; 11:5 And -Maaseiah the son of Baruch, the son of Colhozeh, the son of Hazaiah, -the son of Adaiah, the son of Joiarib, the son of Zechariah, the son -of Shiloni. - -11:6 All the sons of Perez that dwelt at Jerusalem were four hundred -threescore and eight valiant men. - -11:7 And these are the sons of Benjamin; Sallu the son of Meshullam, -the son of Joed, the son of Pedaiah, the son of Kolaiah, the son of -Maaseiah, the son of Ithiel, the son of Jesaiah. - -11:8 And after him Gabbai, Sallai, nine hundred twenty and eight. - -11:9 And Joel the son of Zichri was their overseer: and Judah the son -of Senuah was second over the city. - -11:10 Of the priests: Jedaiah the son of Joiarib, Jachin. - -11:11 Seraiah the son of Hilkiah, the son of Meshullam, the son of -Zadok, the son of Meraioth, the son of Ahitub, was the ruler of the -house of God. - -11:12 And their brethren that did the work of the house were eight -hundred twenty and two: and Adaiah the son of Jeroham, the son of -Pelaliah, the son of Amzi, the son of Zechariah, the son of Pashur, -the son of Malchiah. - -11:13 And his brethren, chief of the fathers, two hundred forty and -two: and Amashai the son of Azareel, the son of Ahasai, the son of -Meshillemoth, the son of Immer, 11:14 And their brethren, mighty men -of valour, an hundred twenty and eight: and their overseer was -Zabdiel, the son of one of the great men. - -11:15 Also of the Levites: Shemaiah the son of Hashub, the son of -Azrikam, the son of Hashabiah, the son of Bunni; 11:16 And Shabbethai -and Jozabad, of the chief of the Levites, had the oversight of the -outward business of the house of God. - -11:17 And Mattaniah the son of Micha, the son of Zabdi, the son of -Asaph, was the principal to begin the thanksgiving in prayer: and -Bakbukiah the second among his brethren, and Abda the son of Shammua, -the son of Galal, the son of Jeduthun. - -11:18 All the Levites in the holy city were two hundred fourscore and -four. - -11:19 Moreover the porters, Akkub, Talmon, and their brethren that -kept the gates, were an hundred seventy and two. - -11:20 And the residue of Israel, of the priests, and the Levites, were -in all the cities of Judah, every one in his inheritance. - -11:21 But the Nethinims dwelt in Ophel: and Ziha and Gispa were over -the Nethinims. - -11:22 The overseer also of the Levites at Jerusalem was Uzzi the son -of Bani, the son of Hashabiah, the son of Mattaniah, the son of Micha. -Of the sons of Asaph, the singers were over the business of the house -of God. - -11:23 For it was the king's commandment concerning them, that a -certain portion should be for the singers, due for every day. - -11:24 And Pethahiah the son of Meshezabeel, of the children of Zerah -the son of Judah, was at the king's hand in all matters concerning the -people. - -11:25 And for the villages, with their fields, some of the children of -Judah dwelt at Kirjatharba, and in the villages thereof, and at Dibon, -and in the villages thereof, and at Jekabzeel, and in the villages -thereof, 11:26 And at Jeshua, and at Moladah, and at Bethphelet, 11:27 -And at Hazarshual, and at Beersheba, and in the villages thereof, -11:28 And at Ziklag, and at Mekonah, and in the villages thereof, -11:29 And at Enrimmon, and at Zareah, and at Jarmuth, 11:30 Zanoah, -Adullam, and in their villages, at Lachish, and the fields thereof, at -Azekah, and in the villages thereof. And they dwelt from Beersheba -unto the valley of Hinnom. - -11:31 The children also of Benjamin from Geba dwelt at Michmash, and -Aija, and Bethel, and in their villages. - -11:32 And at Anathoth, Nob, Ananiah, 11:33 Hazor, Ramah, Gittaim, -11:34 Hadid, Zeboim, Neballat, 11:35 Lod, and Ono, the valley of -craftsmen. - -11:36 And of the Levites were divisions in Judah, and in Benjamin. - -12:1 Now these are the priests and the Levites that went up with -Zerubbabel the son of Shealtiel, and Jeshua: Seraiah, Jeremiah, Ezra, -12:2 Amariah, Malluch, Hattush, 12:3 Shechaniah, Rehum, Meremoth, 12:4 -Iddo, Ginnetho, Abijah, 12:5 Miamin, Maadiah, Bilgah, 12:6 Shemaiah, -and Joiarib, Jedaiah, 12:7 Sallu, Amok, Hilkiah, Jedaiah. These were -the chief of the priests and of their brethren in the days of Jeshua. - -12:8 Moreover the Levites: Jeshua, Binnui, Kadmiel, Sherebiah, Judah, -and Mattaniah, which was over the thanksgiving, he and his brethren. - -12:9 Also Bakbukiah and Unni, their brethren, were over against them -in the watches. - -12:10 And Jeshua begat Joiakim, Joiakim also begat Eliashib, and -Eliashib begat Joiada, 12:11 And Joiada begat Jonathan, and Jonathan -begat Jaddua. - -12:12 And in the days of Joiakim were priests, the chief of the -fathers: of Seraiah, Meraiah; of Jeremiah, Hananiah; 12:13 Of Ezra, -Meshullam; of Amariah, Jehohanan; 12:14 Of Melicu, Jonathan; of -Shebaniah, Joseph; 12:15 Of Harim, Adna; of Meraioth, Helkai; 12:16 Of -Iddo, Zechariah; of Ginnethon, Meshullam; 12:17 Of Abijah, Zichri; of -Miniamin, of Moadiah, Piltai: 12:18 Of Bilgah, Shammua; of Shemaiah, -Jehonathan; 12:19 And of Joiarib, Mattenai; of Jedaiah, Uzzi; 12:20 Of -Sallai, Kallai; of Amok, Eber; 12:21 Of Hilkiah, Hashabiah; of -Jedaiah, Nethaneel. - -12:22 The Levites in the days of Eliashib, Joiada, and Johanan, and -Jaddua, were recorded chief of the fathers: also the priests, to the -reign of Darius the Persian. - -12:23 The sons of Levi, the chief of the fathers, were written in the -book of the chronicles, even until the days of Johanan the son of -Eliashib. - -12:24 And the chief of the Levites: Hashabiah, Sherebiah, and Jeshua -the son of Kadmiel, with their brethren over against them, to praise -and to give thanks, according to the commandment of David the man of -God, ward over against ward. - -12:25 Mattaniah, and Bakbukiah, Obadiah, Meshullam, Talmon, Akkub, -were porters keeping the ward at the thresholds of the gates. - -12:26 These were in the days of Joiakim the son of Jeshua, the son of -Jozadak, and in the days of Nehemiah the governor, and of Ezra the -priest, the scribe. - -12:27 And at the dedication of the wall of Jerusalem they sought the -Levites out of all their places, to bring them to Jerusalem, to keep -the dedication with gladness, both with thanksgivings, and with -singing, with cymbals, psalteries, and with harps. - -12:28 And the sons of the singers gathered themselves together, both -out of the plain country round about Jerusalem, and from the villages -of Netophathi; 12:29 Also from the house of Gilgal, and out of the -fields of Geba and Azmaveth: for the singers had builded them villages -round about Jerusalem. - -12:30 And the priests and the Levites purified themselves, and -purified the people, and the gates, and the wall. - -12:31 Then I brought up the princes of Judah upon the wall, and -appointed two great companies of them that gave thanks, whereof one -went on the right hand upon the wall toward the dung gate: 12:32 And -after them went Hoshaiah, and half of the princes of Judah, 12:33 And -Azariah, Ezra, and Meshullam, 12:34 Judah, and Benjamin, and Shemaiah, -and Jeremiah, 12:35 And certain of the priests' sons with trumpets; -namely, Zechariah the son of Jonathan, the son of Shemaiah, the son of -Mattaniah, the son of Michaiah, the son of Zaccur, the son of Asaph: -12:36 And his brethren, Shemaiah, and Azarael, Milalai, Gilalai, Maai, -Nethaneel, and Judah, Hanani, with the musical instruments of David -the man of God, and Ezra the scribe before them. - -12:37 And at the fountain gate, which was over against them, they went -up by the stairs of the city of David, at the going up of the wall, -above the house of David, even unto the water gate eastward. - -12:38 And the other company of them that gave thanks went over against -them, and I after them, and the half of the people upon the wall, from -beyond the tower of the furnaces even unto the broad wall; 12:39 And -from above the gate of Ephraim, and above the old gate, and above the -fish gate, and the tower of Hananeel, and the tower of Meah, even unto -the sheep gate: and they stood still in the prison gate. - -12:40 So stood the two companies of them that gave thanks in the house -of God, and I, and the half of the rulers with me: 12:41 And the -priests; Eliakim, Maaseiah, Miniamin, Michaiah, Elioenai, Zechariah, -and Hananiah, with trumpets; 12:42 And Maaseiah, and Shemaiah, and -Eleazar, and Uzzi, and Jehohanan, and Malchijah, and Elam, and Ezer. -And the singers sang loud, with Jezrahiah their overseer. - -12:43 Also that day they offered great sacrifices, and rejoiced: for -God had made them rejoice with great joy: the wives also and the -children rejoiced: so that the joy of Jerusalem was heard even afar -off. - -12:44 And at that time were some appointed over the chambers for the -treasures, for the offerings, for the firstfruits, and for the tithes, -to gather into them out of the fields of the cities the portions of -the law for the priests and Levites: for Judah rejoiced for the -priests and for the Levites that waited. - -12:45 And both the singers and the porters kept the ward of their God, -and the ward of the purification, according to the commandment of -David, and of Solomon his son. - -12:46 For in the days of David and Asaph of old there were chief of -the singers, and songs of praise and thanksgiving unto God. - -12:47 And all Israel in the days of Zerubbabel, and in the days of -Nehemiah, gave the portions of the singers and the porters, every day -his portion: and they sanctified holy things unto the Levites; and the -Levites sanctified them unto the children of Aaron. - -13:1 On that day they read in the book of Moses in the audience of the -people; and therein was found written, that the Ammonite and the -Moabite should not come into the congregation of God for ever; 13:2 -Because they met not the children of Israel with bread and with water, -but hired Balaam against them, that he should curse them: howbeit our -God turned the curse into a blessing. - -13:3 Now it came to pass, when they had heard the law, that they -separated from Israel all the mixed multitude. - -13:4 And before this, Eliashib the priest, having the oversight of the -chamber of the house of our God, was allied unto Tobiah: 13:5 And he -had prepared for him a great chamber, where aforetime they laid the -meat offerings, the frankincense, and the vessels, and the tithes of -the corn, the new wine, and the oil, which was commanded to be given -to the Levites, and the singers, and the porters; and the offerings of -the priests. - -13:6 But in all this time was not I at Jerusalem: for in the two and -thirtieth year of Artaxerxes king of Babylon came I unto the king, and -after certain days obtained I leave of the king: 13:7 And I came to -Jerusalem, and understood of the evil that Eliashib did for Tobiah, in -preparing him a chamber in the courts of the house of God. - -13:8 And it grieved me sore: therefore I cast forth all the household -stuff to Tobiah out of the chamber. - -13:9 Then I commanded, and they cleansed the chambers: and thither -brought I again the vessels of the house of God, with the meat -offering and the frankincense. - -13:10 And I perceived that the portions of the Levites had not been -given them: for the Levites and the singers, that did the work, were -fled every one to his field. - -13:11 Then contended I with the rulers, and said, Why is the house of -God forsaken? And I gathered them together, and set them in their -place. - -13:12 Then brought all Judah the tithe of the corn and the new wine -and the oil unto the treasuries. - -13:13 And I made treasurers over the treasuries, Shelemiah the priest, -and Zadok the scribe, and of the Levites, Pedaiah: and next to them -was Hanan the son of Zaccur, the son of Mattaniah: for they were -counted faithful, and their office was to distribute unto their -brethren. - -13:14 Remember me, O my God, concerning this, and wipe not out my good -deeds that I have done for the house of my God, and for the offices -thereof. - -13:15 In those days saw I in Judah some treading wine presses on the -sabbath, and bringing in sheaves, and lading asses; as also wine, -grapes, and figs, and all manner of burdens, which they brought into -Jerusalem on the sabbath day: and I testified against them in the day -wherein they sold victuals. - -13:16 There dwelt men of Tyre also therein, which brought fish, and -all manner of ware, and sold on the sabbath unto the children of -Judah, and in Jerusalem. - -13:17 Then I contended with the nobles of Judah, and said unto them, -What evil thing is this that ye do, and profane the sabbath day? -13:18 Did not your fathers thus, and did not our God bring all this -evil upon us, and upon this city? yet ye bring more wrath upon Israel -by profaning the sabbath. - -13:19 And it came to pass, that when the gates of Jerusalem began to -be dark before the sabbath, I commanded that the gates should be shut, -and charged that they should not be opened till after the sabbath: and -some of my servants set I at the gates, that there should no burden be -brought in on the sabbath day. - -13:20 So the merchants and sellers of all kind of ware lodged without -Jerusalem once or twice. - -13:21 Then I testified against them, and said unto them, Why lodge ye -about the wall? if ye do so again, I will lay hands on you. From that -time forth came they no more on the sabbath. - -13:22 And I commanded the Levites that they should cleanse themselves, -and that they should come and keep the gates, to sanctify the sabbath -day. - -Remember me, O my God, concerning this also, and spare me according to -the greatness of thy mercy. - -13:23 In those days also saw I Jews that had married wives of Ashdod, -of Ammon, and of Moab: 13:24 And their children spake half in the -speech of Ashdod, and could not speak in the Jews' language, but -according to the language of each people. - -13:25 And I contended with them, and cursed them, and smote certain of -them, and plucked off their hair, and made them swear by God, saying, -Ye shall not give your daughters unto their sons, nor take their -daughters unto your sons, or for yourselves. - -13:26 Did not Solomon king of Israel sin by these things? yet among -many nations was there no king like him, who was beloved of his God, -and God made him king over all Israel: nevertheless even him did -outlandish women cause to sin. - -13:27 Shall we then hearken unto you to do all this great evil, to -transgress against our God in marrying strange wives? 13:28 And one -of the sons of Joiada, the son of Eliashib the high priest, was son in -law to Sanballat the Horonite: therefore I chased him from me. - -13:29 Remember them, O my God, because they have defiled the -priesthood, and the covenant of the priesthood, and of the Levites. - -13:30 Thus cleansed I them from all strangers, and appointed the wards -of the priests and the Levites, every one in his business; 13:31 And -for the wood offering, at times appointed, and for the firstfruits. -Remember me, O my God, for good. - - - - -The Book of Esther - - -1:1 Now it came to pass in the days of Ahasuerus, (this is Ahasuerus -which reigned, from India even unto Ethiopia, over an hundred and -seven and twenty provinces:) 1:2 That in those days, when the king -Ahasuerus sat on the throne of his kingdom, which was in Shushan the -palace, 1:3 In the third year of his reign, he made a feast unto all -his princes and his servants; the power of Persia and Media, the -nobles and princes of the provinces, being before him: 1:4 When he -shewed the riches of his glorious kingdom and the honour of his -excellent majesty many days, even an hundred and fourscore days. - -1:5 And when these days were expired, the king made a feast unto all -the people that were present in Shushan the palace, both unto great -and small, seven days, in the court of the garden of the king's -palace; 1:6 Where were white, green, and blue, hangings, fastened with -cords of fine linen and purple to silver rings and pillars of marble: -the beds were of gold and silver, upon a pavement of red, and blue, -and white, and black, marble. - -1:7 And they gave them drink in vessels of gold, (the vessels being -diverse one from another,) and royal wine in abundance, according to -the state of the king. - -1:8 And the drinking was according to the law; none did compel: for so -the king had appointed to all the officers of his house, that they -should do according to every man's pleasure. - -1:9 Also Vashti the queen made a feast for the women in the royal -house which belonged to king Ahasuerus. - -1:10 On the seventh day, when the heart of the king was merry with -wine, he commanded Mehuman, Biztha, Harbona, Bigtha, and Abagtha, -Zethar, and Carcas, the seven chamberlains that served in the presence -of Ahasuerus the king, 1:11 To bring Vashti the queen before the king -with the crown royal, to shew the people and the princes her beauty: -for she was fair to look on. - -1:12 But the queen Vashti refused to come at the king's commandment by -his chamberlains: therefore was the king very wroth, and his anger -burned in him. - -1:13 Then the king said to the wise men, which knew the times, (for so -was the king's manner toward all that knew law and judgment: 1:14 And -the next unto him was Carshena, Shethar, Admatha, Tarshish, Meres, -Marsena, and Memucan, the seven princes of Persia and Media, which saw -the king's face, and which sat the first in the kingdom;) 1:15 What -shall we do unto the queen Vashti according to law, because she hath -not performed the commandment of the king Ahasuerus by the -chamberlains? 1:16 And Memucan answered before the king and the -princes, Vashti the queen hath not done wrong to the king only, but -also to all the princes, and to all the people that are in all the -provinces of the king Ahasuerus. - -1:17 For this deed of the queen shall come abroad unto all women, so -that they shall despise their husbands in their eyes, when it shall be -reported, The king Ahasuerus commanded Vashti the queen to be brought -in before him, but she came not. - -1:18 Likewise shall the ladies of Persia and Media say this day unto -all the king's princes, which have heard of the deed of the queen. -Thus shall there arise too much contempt and wrath. - -1:19 If it please the king, let there go a royal commandment from him, -and let it be written among the laws of the Persians and the Medes, -that it be not altered, That Vashti come no more before king -Ahasuerus; and let the king give her royal estate unto another that is -better than she. - -1:20 And when the king's decree which he shall make shall be published -throughout all his empire, (for it is great,) all the wives shall give -to their husbands honour, both to great and small. - -1:21 And the saying pleased the king and the princes; and the king did -according to the word of Memucan: 1:22 For he sent letters into all -the king's provinces, into every province according to the writing -thereof, and to every people after their language, that every man -should bear rule in his own house, and that it should be published -according to the language of every people. - -2:1 After these things, when the wrath of king Ahasuerus was appeased, -he remembered Vashti, and what she had done, and what was decreed -against her. - -2:2 Then said the king's servants that ministered unto him, Let there -be fair young virgins sought for the king: 2:3 And let the king -appoint officers in all the provinces of his kingdom, that they may -gather together all the fair young virgins unto Shushan the palace, to -the house of the women, unto the custody of Hege the king's -chamberlain, keeper of the women; and let their things for -purification be given them: 2:4 And let the maiden which pleaseth the -king be queen instead of Vashti. - -And the thing pleased the king; and he did so. - -2:5 Now in Shushan the palace there was a certain Jew, whose name was -Mordecai, the son of Jair, the son of Shimei, the son of Kish, a -Benjamite; 2:6 Who had been carried away from Jerusalem with the -captivity which had been carried away with Jeconiah king of Judah, -whom Nebuchadnezzar the king of Babylon had carried away. - -2:7 And he brought up Hadassah, that is, Esther, his uncle's daughter: -for she had neither father nor mother, and the maid was fair and -beautiful; whom Mordecai, when her father and mother were dead, took -for his own daughter. - -2:8 So it came to pass, when the king's commandment and his decree was -heard, and when many maidens were gathered together unto Shushan the -palace, to the custody of Hegai, that Esther was brought also unto the -king's house, to the custody of Hegai, keeper of the women. - -2:9 And the maiden pleased him, and she obtained kindness of him; and -he speedily gave her her things for purification, with such things as -belonged to her, and seven maidens, which were meet to be given her, -out of the king's house: and he preferred her and her maids unto the -best place of the house of the women. - -2:10 Esther had not shewed her people nor her kindred: for Mordecai -had charged her that she should not shew it. - -2:11 And Mordecai walked every day before the court of the women's -house, to know how Esther did, and what should become of her. - -2:12 Now when every maid's turn was come to go in to king Ahasuerus, -after that she had been twelve months, according to the manner of the -women, (for so were the days of their purifications accomplished, to -wit, six months with oil of myrrh, and six months with sweet odours, -and with other things for the purifying of the women;) 2:13 Then thus -came every maiden unto the king; whatsoever she desired was given her -to go with her out of the house of the women unto the king's house. - -2:14 In the evening she went, and on the morrow she returned into the -second house of the women, to the custody of Shaashgaz, the king's -chamberlain, which kept the concubines: she came in unto the king no -more, except the king delighted in her, and that she were called by -name. - -2:15 Now when the turn of Esther, the daughter of Abihail the uncle of -Mordecai, who had taken her for his daughter, was come to go in unto -the king, she required nothing but what Hegai the king's chamberlain, -the keeper of the women, appointed. And Esther obtained favour in the -sight of all them that looked upon her. - -2:16 So Esther was taken unto king Ahasuerus into his house royal in -the tenth month, which is the month Tebeth, in the seventh year of his -reign. - -2:17 And the king loved Esther above all the women, and she obtained -grace and favour in his sight more than all the virgins; so that he -set the royal crown upon her head, and made her queen instead of -Vashti. - -2:18 Then the king made a great feast unto all his princes and his -servants, even Esther's feast; and he made a release to the provinces, -and gave gifts, according to the state of the king. - -2:19 And when the virgins were gathered together the second time, then -Mordecai sat in the king's gate. - -2:20 Esther had not yet shewed her kindred nor her people; as Mordecai -had charged her: for Esther did the commandment of Mordecai, like as -when she was brought up with him. - -2:21 In those days, while Mordecai sat in the king's gate, two of the -king's chamberlains, Bigthan and Teresh, of those which kept the door, -were wroth, and sought to lay hands on the king Ahasuerus. - -2:22 And the thing was known to Mordecai, who told it unto Esther the -queen; and Esther certified the king thereof in Mordecai's name. - -2:23 And when inquisition was made of the matter, it was found out; -therefore they were both hanged on a tree: and it was written in the -book of the chronicles before the king. - -3:1 After these things did king Ahasuerus promote Haman the son of -Hammedatha the Agagite, and advanced him, and set his seat above all -the princes that were with him. - -3:2 And all the king's servants, that were in the king's gate, bowed, -and reverenced Haman: for the king had so commanded concerning him. -But Mordecai bowed not, nor did him reverence. - -3:3 Then the king's servants, which were in the king's gate, said unto -Mordecai, Why transgressest thou the king's commandment? 3:4 Now it -came to pass, when they spake daily unto him, and he hearkened not -unto them, that they told Haman, to see whether Mordecai's matters -would stand: for he had told them that he was a Jew. - -3:5 And when Haman saw that Mordecai bowed not, nor did him reverence, -then was Haman full of wrath. - -3:6 And he thought scorn to lay hands on Mordecai alone; for they had -shewed him the people of Mordecai: wherefore Haman sought to destroy -all the Jews that were throughout the whole kingdom of Ahasuerus, even -the people of Mordecai. - -3:7 In the first month, that is, the month Nisan, in the twelfth year -of king Ahasuerus, they cast Pur, that is, the lot, before Haman from -day to day, and from month to month, to the twelfth month, that is, -the month Adar. - -3:8 And Haman said unto king Ahasuerus, There is a certain people -scattered abroad and dispersed among the people in all the provinces -of thy kingdom; and their laws are diverse from all people; neither -keep they the king's laws: therefore it is not for the king's profit -to suffer them. - -3:9 If it please the king, let it be written that they may be -destroyed: and I will pay ten thousand talents of silver to the hands -of those that have the charge of the business, to bring it into the -king's treasuries. - -3:10 And the king took his ring from his hand, and gave it unto Haman -the son of Hammedatha the Agagite, the Jews' enemy. - -3:11 And the king said unto Haman, The silver is given to thee, the -people also, to do with them as it seemeth good to thee. - -3:12 Then were the king's scribes called on the thirteenth day of the -first month, and there was written according to all that Haman had -commanded unto the king's lieutenants, and to the governors that were -over every province, and to the rulers of every people of every -province according to the writing thereof, and to every people after -their language; in the name of king Ahasuerus was it written, and -sealed with the king's ring. - -3:13 And the letters were sent by posts into all the king's provinces, -to destroy, to kill, and to cause to perish, all Jews, both young and -old, little children and women, in one day, even upon the thirteenth -day of the twelfth month, which is the month Adar, and to take the -spoil of them for a prey. - -3:14 The copy of the writing for a commandment to be given in every -province was published unto all people, that they should be ready -against that day. - -3:15 The posts went out, being hastened by the king's commandment, and -the decree was given in Shushan the palace. And the king and Haman sat -down to drink; but the city Shushan was perplexed. - -4:1 When Mordecai perceived all that was done, Mordecai rent his -clothes, and put on sackcloth with ashes, and went out into the midst -of the city, and cried with a loud and a bitter cry; 4:2 And came even -before the king's gate: for none might enter into the king's gate -clothed with sackcloth. - -4:3 And in every province, whithersoever the king's commandment and -his decree came, there was great mourning among the Jews, and fasting, -and weeping, and wailing; and many lay in sackcloth and ashes. - -4:4 So Esther's maids and her chamberlains came and told it her. Then -was the queen exceedingly grieved; and she sent raiment to clothe -Mordecai, and to take away his sackcloth from him: but he received it -not. - -4:5 Then called Esther for Hatach, one of the king's chamberlains, -whom he had appointed to attend upon her, and gave him a commandment -to Mordecai, to know what it was, and why it was. - -4:6 So Hatach went forth to Mordecai unto the street of the city, -which was before the king's gate. - -4:7 And Mordecai told him of all that had happened unto him, and of -the sum of the money that Haman had promised to pay to the king's -treasuries for the Jews, to destroy them. - -4:8 Also he gave him the copy of the writing of the decree that was -given at Shushan to destroy them, to shew it unto Esther, and to -declare it unto her, and to charge her that she should go in unto the -king, to make supplication unto him, and to make request before him -for her people. - -4:9 And Hatach came and told Esther the words of Mordecai. - -4:10 Again Esther spake unto Hatach, and gave him commandment unto -Mordecai; 4:11 All the king's servants, and the people of the king's -provinces, do know, that whosoever, whether man or women, shall come -unto the king into the inner court, who is not called, there is one -law of his to put him to death, except such to whom the king shall -hold out the golden sceptre, that he may live: but I have not been -called to come in unto the king these thirty days. - -4:12 And they told to Mordecai Esther's words. - -4:13 Then Mordecai commanded to answer Esther, Think not with thyself -that thou shalt escape in the king's house, more than all the Jews. - -4:14 For if thou altogether holdest thy peace at this time, then shall -there enlargement and deliverance arise to the Jews from another -place; but thou and thy father's house shall be destroyed: and who -knoweth whether thou art come to the kingdom for such a time as this? -4:15 Then Esther bade them return Mordecai this answer, 4:16 Go, -gather together all the Jews that are present in Shushan, and fast ye -for me, and neither eat nor drink three days, night or day: I also and -my maidens will fast likewise; and so will I go in unto the king, -which is not according to the law: and if I perish, I perish. - -4:17 So Mordecai went his way, and did according to all that Esther -had commanded him. - -5:1 Now it came to pass on the third day, that Esther put on her royal -apparel, and stood in the inner court of the king's house, over -against the king's house: and the king sat upon his royal throne in -the royal house, over against the gate of the house. - -5:2 And it was so, when the king saw Esther the queen standing in the -court, that she obtained favour in his sight: and the king held out to -Esther the golden sceptre that was in his hand. So Esther drew near, -and touched the top of the sceptre. - -5:3 Then said the king unto her, What wilt thou, queen Esther? and -what is thy request? it shall be even given thee to the half of the -kingdom. - -5:4 And Esther answered, If it seem good unto the king, let the king -and Haman come this day unto the banquet that I have prepared for him. - -5:5 Then the king said, Cause Haman to make haste, that he may do as -Esther hath said. So the king and Haman came to the banquet that -Esther had prepared. - -5:6 And the king said unto Esther at the banquet of wine, What is thy -petition? and it shall be granted thee: and what is thy request? even -to the half of the kingdom it shall be performed. - -5:7 Then answered Esther, and said, My petition and my request is; 5:8 -If I have found favour in the sight of the king, and if it please the -king to grant my petition, and to perform my request, let the king and -Haman come to the banquet that I shall prepare for them, and I will do -to morrow as the king hath said. - -5:9 Then went Haman forth that day joyful and with a glad heart: but -when Haman saw Mordecai in the king's gate, that he stood not up, nor -moved for him, he was full of indignation against Mordecai. - -5:10 Nevertheless Haman refrained himself: and when he came home, he -sent and called for his friends, and Zeresh his wife. - -5:11 And Haman told them of the glory of his riches, and the multitude -of his children, and all the things wherein the king had promoted him, -and how he had advanced him above the princes and servants of the -king. - -5:12 Haman said moreover, Yea, Esther the queen did let no man come in -with the king unto the banquet that she had prepared but myself; and -to morrow am I invited unto her also with the king. - -5:13 Yet all this availeth me nothing, so long as I see Mordecai the -Jew sitting at the king's gate. - -5:14 Then said Zeresh his wife and all his friends unto him, Let a -gallows be made of fifty cubits high, and to morrow speak thou unto -the king that Mordecai may be hanged thereon: then go thou in merrily -with the king unto the banquet. And the thing pleased Haman; and he -caused the gallows to be made. - -6:1 On that night could not the king sleep, and he commanded to bring -the book of records of the chronicles; and they were read before the -king. - -6:2 And it was found written, that Mordecai had told of Bigthana and -Teresh, two of the king's chamberlains, the keepers of the door, who -sought to lay hand on the king Ahasuerus. - -6:3 And the king said, What honour and dignity hath been done to -Mordecai for this? Then said the king's servants that ministered unto -him, There is nothing done for him. - -6:4 And the king said, Who is in the court? Now Haman was come into -the outward court of the king's house, to speak unto the king to hang -Mordecai on the gallows that he had prepared for him. - -6:5 And the king's servants said unto him, Behold, Haman standeth in -the court. And the king said, Let him come in. - -6:6 So Haman came in. And the king said unto him, What shall be done -unto the man whom the king delighteth to honour? Now Haman thought in -his heart, To whom would the king delight to do honour more than to -myself? 6:7 And Haman answered the king, For the man whom the king -delighteth to honour, 6:8 Let the royal apparel be brought which the -king useth to wear, and the horse that the king rideth upon, and the -crown royal which is set upon his head: 6:9 And let this apparel and -horse be delivered to the hand of one of the king's most noble -princes, that they may array the man withal whom the king delighteth -to honour, and bring him on horseback through the street of the city, -and proclaim before him, Thus shall it be done to the man whom the -king delighteth to honour. - -6:10 Then the king said to Haman, Make haste, and take the apparel and -the horse, as thou hast said, and do even so to Mordecai the Jew, that -sitteth at the king's gate: let nothing fail of all that thou hast -spoken. - -6:11 Then took Haman the apparel and the horse, and arrayed Mordecai, -and brought him on horseback through the street of the city, and -proclaimed before him, Thus shall it be done unto the man whom the -king delighteth to honour. - -6:12 And Mordecai came again to the king's gate. But Haman hasted to -his house mourning, and having his head covered. - -6:13 And Haman told Zeresh his wife and all his friends every thing -that had befallen him. Then said his wise men and Zeresh his wife unto -him, If Mordecai be of the seed of the Jews, before whom thou hast -begun to fall, thou shalt not prevail against him, but shalt surely -fall before him. - -6:14 And while they were yet talking with him, came the king's -chamberlains, and hasted to bring Haman unto the banquet that Esther -had prepared. - -7:1 So the king and Haman came to banquet with Esther the queen. - -7:2 And the king said again unto Esther on the second day at the -banquet of wine, What is thy petition, queen Esther? and it shall be -granted thee: and what is thy request? and it shall be performed, even -to the half of the kingdom. - -7:3 Then Esther the queen answered and said, If I have found favour in -thy sight, O king, and if it please the king, let my life be given me -at my petition, and my people at my request: 7:4 For we are sold, I -and my people, to be destroyed, to be slain, and to perish. But if we -had been sold for bondmen and bondwomen, I had held my tongue, -although the enemy could not countervail the king's damage. - -7:5 Then the king Ahasuerus answered and said unto Esther the queen, -Who is he, and where is he, that durst presume in his heart to do so? -7:6 And Esther said, The adversary and enemy is this wicked Haman. -Then Haman was afraid before the king and the queen. - -7:7 And the king arising from the banquet of wine in his wrath went -into the palace garden: and Haman stood up to make request for his -life to Esther the queen; for he saw that there was evil determined -against him by the king. - -7:8 Then the king returned out of the palace garden into the place of -the banquet of wine; and Haman was fallen upon the bed whereon Esther -was. Then said the king, Will he force the queen also before me in the -house? As the word went out of king's mouth, they covered Haman's -face. - -7:9 And Harbonah, one of the chamberlains, said before the king, -Behold also, the gallows fifty cubits high, which Haman had made for -Mordecai, who spoken good for the king, standeth in the house of -Haman. Then the king said, Hang him thereon. - -7:10 So they hanged Haman on the gallows that he had prepared for -Mordecai. Then was the king's wrath pacified. - -8:1 On that day did the king Ahasuerus give the house of Haman the -Jews' enemy unto Esther the queen. And Mordecai came before the king; -for Esther had told what he was unto her. - -8:2 And the king took off his ring, which he had taken from Haman, and -gave it unto Mordecai. And Esther set Mordecai over the house of -Haman. - -8:3 And Esther spake yet again before the king, and fell down at his -feet, and besought him with tears to put away the mischief of Haman -the Agagite, and his device that he had devised against the Jews. - -8:4 Then the king held out the golden sceptre toward Esther. So Esther -arose, and stood before the king, 8:5 And said, If it please the king, -and if I have favour in his sight, and the thing seem right before the -king, and I be pleasing in his eyes, let it be written to reverse the -letters devised by Haman the son of Hammedatha the Agagite, which he -wrote to destroy the Jews which are in all the king's provinces: 8:6 -For how can I endure to see the evil that shall come unto my people? -or how can I endure to see the destruction of my kindred? 8:7 Then -the king Ahasuerus said unto Esther the queen and to Mordecai the Jew, -Behold, I have given Esther the house of Haman, and him they have -hanged upon the gallows, because he laid his hand upon the Jews. - -8:8 Write ye also for the Jews, as it liketh you, in the king's name, -and seal it with the king's ring: for the writing which is written in -the king's name, and sealed with the king's ring, may no man reverse. - -8:9 Then were the king's scribes called at that time in the third -month, that is, the month Sivan, on the three and twentieth day -thereof; and it was written according to all that Mordecai commanded -unto the Jews, and to the lieutenants, and the deputies and rulers of -the provinces which are from India unto Ethiopia, an hundred twenty -and seven provinces, unto every province according to the writing -thereof, and unto every people after their language, and to the Jews -according to their writing, and according to their language. - -8:10 And he wrote in the king Ahasuerus' name, and sealed it with the -king's ring, and sent letters by posts on horseback, and riders on -mules, camels, and young dromedaries: 8:11 Wherein the king granted -the Jews which were in every city to gather themselves together, and -to stand for their life, to destroy, to slay and to cause to perish, -all the power of the people and province that would assault them, both -little ones and women, and to take the spoil of them for a prey, 8:12 -Upon one day in all the provinces of king Ahasuerus, namely, upon the -thirteenth day of the twelfth month, which is the month Adar. - -8:13 The copy of the writing for a commandment to be given in every -province was published unto all people, and that the Jews should be -ready against that day to avenge themselves on their enemies. - -8:14 So the posts that rode upon mules and camels went out, being -hastened and pressed on by the king's commandment. And the decree was -given at Shushan the palace. - -8:15 And Mordecai went out from the presence of the king in royal -apparel of blue and white, and with a great crown of gold, and with a -garment of fine linen and purple: and the city of Shushan rejoiced and -was glad. - -8:16 The Jews had light, and gladness, and joy, and honour. - -8:17 And in every province, and in every city, whithersoever the -king's commandment and his decree came, the Jews had joy and gladness, -a feast and a good day. And many of the people of the land became -Jews; for the fear of the Jews fell upon them. - -9:1 Now in the twelfth month, that is, the month Adar, on the -thirteenth day of the same, when the king's commandment and his decree -drew near to be put in execution, in the day that the enemies of the -Jews hoped to have power over them, (though it was turned to the -contrary, that the Jews had rule over them that hated them;) 9:2 The -Jews gathered themselves together in their cities throughout all the -provinces of the king Ahasuerus, to lay hand on such as sought their -hurt: and no man could withstand them; for the fear of them fell upon -all people. - -9:3 And all the rulers of the provinces, and the lieutenants, and the -deputies, and officers of the king, helped the Jews; because the fear -of Mordecai fell upon them. - -9:4 For Mordecai was great in the king's house, and his fame went out -throughout all the provinces: for this man Mordecai waxed greater and -greater. - -9:5 Thus the Jews smote all their enemies with the stroke of the -sword, and slaughter, and destruction, and did what they would unto -those that hated them. - -9:6 And in Shushan the palace the Jews slew and destroyed five hundred -men. - -9:7 And Parshandatha, and Dalphon, and Aspatha, 9:8 And Poratha, and -Adalia, and Aridatha, 9:9 And Parmashta, and Arisai, and Aridai, and -Vajezatha, 9:10 The ten sons of Haman the son of Hammedatha, the enemy -of the Jews, slew they; but on the spoil laid they not their hand. - -9:11 On that day the number of those that were slain in Shushan the -palace was brought before the king. - -9:12 And the king said unto Esther the queen, The Jews have slain and -destroyed five hundred men in Shushan the palace, and the ten sons of -Haman; what have they done in the rest of the king's provinces? now -what is thy petition? and it shall be granted thee: or what is thy -request further? and it shall be done. - -9:13 Then said Esther, If it please the king, let it be granted to the -Jews which are in Shushan to do to morrow also according unto this -day's decree, and let Haman's ten sons be hanged upon the gallows. - -9:14 And the king commanded it so to be done: and the decree was given -at Shushan; and they hanged Haman's ten sons. - -9:15 For the Jews that were in Shushan gathered themselves together on -the fourteenth day also of the month Adar, and slew three hundred men -at Shushan; but on the prey they laid not their hand. - -9:16 But the other Jews that were in the king's provinces gathered -themselves together, and stood for their lives, and had rest from -their enemies, and slew of their foes seventy and five thousand, but -they laid not their hands on the prey, 9:17 On the thirteenth day of -the month Adar; and on the fourteenth day of the same rested they, and -made it a day of feasting and gladness. - -9:18 But the Jews that were at Shushan assembled together on the -thirteenth day thereof, and on the fourteenth thereof; and on the -fifteenth day of the same they rested, and made it a day of feasting -and gladness. - -9:19 Therefore the Jews of the villages, that dwelt in the unwalled -towns, made the fourteenth day of the month Adar a day of gladness and -feasting, and a good day, and of sending portions one to another. - -9:20 And Mordecai wrote these things, and sent letters unto all the -Jews that were in all the provinces of the king Ahasuerus, both nigh -and far, 9:21 To stablish this among them, that they should keep the -fourteenth day of the month Adar, and the fifteenth day of the same, -yearly, 9:22 As the days wherein the Jews rested from their enemies, -and the month which was turned unto them from sorrow to joy, and from -mourning into a good day: that they should make them days of feasting -and joy, and of sending portions one to another, and gifts to the -poor. - -9:23 And the Jews undertook to do as they had begun, and as Mordecai -had written unto them; 9:24 Because Haman the son of Hammedatha, the -Agagite, the enemy of all the Jews, had devised against the Jews to -destroy them, and had cast Pur, that is, the lot, to consume them, and -to destroy them; 9:25 But when Esther came before the king, he -commanded by letters that his wicked device, which he devised against -the Jews, should return upon his own head, and that he and his sons -should be hanged on the gallows. - -9:26 Wherefore they called these days Purim after the name of Pur. - -Therefore for all the words of this letter, and of that which they had -seen concerning this matter, and which had come unto them, 9:27 The -Jews ordained, and took upon them, and upon their seed, and upon all -such as joined themselves unto them, so as it should not fail, that -they would keep these two days according to their writing, and -according to their appointed time every year; 9:28 And that these days -should be remembered and kept throughout every generation, every -family, every province, and every city; and that these days of Purim -should not fail from among the Jews, nor the memorial of them perish -from their seed. - -9:29 Then Esther the queen, the daughter of Abihail, and Mordecai the -Jew, wrote with all authority, to confirm this second letter of Purim. - -9:30 And he sent the letters unto all the Jews, to the hundred twenty -and seven provinces of the kingdom of Ahasuerus, with words of peace -and truth, 9:31 To confirm these days of Purim in their times -appointed, according as Mordecai the Jew and Esther the queen had -enjoined them, and as they had decreed for themselves and for their -seed, the matters of the fastings and their cry. - -9:32 And the decree of Esther confirmed these matters of Purim; and it -was written in the book. - -10:1 And the king Ahasuerus laid a tribute upon the land, and upon the -isles of the sea. - -10:2 And all the acts of his power and of his might, and the -declaration of the greatness of Mordecai, whereunto the king advanced -him, are they not written in the book of the chronicles of the kings -of Media and Persia? 10:3 For Mordecai the Jew was next unto king -Ahasuerus, and great among the Jews, and accepted of the multitude of -his brethren, seeking the wealth of his people, and speaking peace to -all his seed. - - - - -The Book of Job - - -1:1 There was a man in the land of Uz, whose name was Job; and that -man was perfect and upright, and one that feared God, and eschewed evil. - -1:2 And there were born unto him seven sons and three daughters. - -1:3 His substance also was seven thousand sheep, and three thousand -camels, and five hundred yoke of oxen, and five hundred she asses, and -a very great household; so that this man was the greatest of all the -men of the east. - -1:4 And his sons went and feasted in their houses, every one his day; -and sent and called for their three sisters to eat and to drink with -them. - -1:5 And it was so, when the days of their feasting were gone about, -that Job sent and sanctified them, and rose up early in the morning, -and offered burnt offerings according to the number of them all: for -Job said, It may be that my sons have sinned, and cursed God in their -hearts. Thus did Job continually. - -1:6 Now there was a day when the sons of God came to present -themselves before the LORD, and Satan came also among them. - -1:7 And the LORD said unto Satan, Whence comest thou? Then Satan -answered the LORD, and said, From going to and fro in the earth, and -from walking up and down in it. - -1:8 And the LORD said unto Satan, Hast thou considered my servant Job, -that there is none like him in the earth, a perfect and an upright -man, one that feareth God, and escheweth evil? 1:9 Then Satan -answered the LORD, and said, Doth Job fear God for nought? 1:10 Hast -not thou made an hedge about him, and about his house, and about all -that he hath on every side? thou hast blessed the work of his hands, -and his substance is increased in the land. - -1:11 But put forth thine hand now, and touch all that he hath, and he -will curse thee to thy face. - -1:12 And the LORD said unto Satan, Behold, all that he hath is in thy -power; only upon himself put not forth thine hand. So Satan went forth -from the presence of the LORD. - -1:13 And there was a day when his sons and his daughters were eating -and drinking wine in their eldest brother's house: 1:14 And there came -a messenger unto Job, and said, The oxen were plowing, and the asses -feeding beside them: 1:15 And the Sabeans fell upon them, and took -them away; yea, they have slain the servants with the edge of the -sword; and I only am escaped alone to tell thee. - -1:16 While he was yet speaking, there came also another, and said, The -fire of God is fallen from heaven, and hath burned up the sheep, and -the servants, and consumed them; and I only am escaped alone to tell -thee. - -1:17 While he was yet speaking, there came also another, and said, The -Chaldeans made out three bands, and fell upon the camels, and have -carried them away, yea, and slain the servants with the edge of the -sword; and I only am escaped alone to tell thee. - -1:18 While he was yet speaking, there came also another, and said, Thy -sons and thy daughters were eating and drinking wine in their eldest -brother's house: 1:19 And, behold, there came a great wind from the -wilderness, and smote the four corners of the house, and it fell upon -the young men, and they are dead; and I only am escaped alone to tell -thee. - -1:20 Then Job arose, and rent his mantle, and shaved his head, and -fell down upon the ground, and worshipped, 1:21 And said, Naked came I -out of my mother's womb, and naked shall I return thither: the LORD -gave, and the LORD hath taken away; blessed be the name of the LORD. - -1:22 In all this Job sinned not, nor charged God foolishly. - -2:1 Again there was a day when the sons of God came to present -themselves before the LORD, and Satan came also among them to present -himself before the LORD. - -2:2 And the LORD said unto Satan, From whence comest thou? And Satan -answered the LORD, and said, From going to and fro in the earth, and -from walking up and down in it. - -2:3 And the LORD said unto Satan, Hast thou considered my servant Job, -that there is none like him in the earth, a perfect and an upright -man, one that feareth God, and escheweth evil? and still he holdeth -fast his integrity, although thou movedst me against him, to destroy -him without cause. - -2:4 And Satan answered the LORD, and said, Skin for skin, yea, all -that a man hath will he give for his life. - -2:5 But put forth thine hand now, and touch his bone and his flesh, -and he will curse thee to thy face. - -2:6 And the LORD said unto Satan, Behold, he is in thine hand; but -save his life. - -2:7 So went Satan forth from the presence of the LORD, and smote Job -with sore boils from the sole of his foot unto his crown. - -2:8 And he took him a potsherd to scrape himself withal; and he sat -down among the ashes. - -2:9 Then said his wife unto him, Dost thou still retain thine -integrity? curse God, and die. - -2:10 But he said unto her, Thou speakest as one of the foolish women -speaketh. What? shall we receive good at the hand of God, and shall we -not receive evil? In all this did not Job sin with his lips. - -2:11 Now when Job's three friends heard of all this evil that was come -upon him, they came every one from his own place; Eliphaz the -Temanite, and Bildad the Shuhite, and Zophar the Naamathite: for they -had made an appointment together to come to mourn with him and to -comfort him. - -2:12 And when they lifted up their eyes afar off, and knew him not, -they lifted up their voice, and wept; and they rent every one his -mantle, and sprinkled dust upon their heads toward heaven. - -2:13 So they sat down with him upon the ground seven days and seven -nights, and none spake a word unto him: for they saw that his grief -was very great. - -3:1 After this opened Job his mouth, and cursed his day. - -3:2 And Job spake, and said, 3:3 Let the day perish wherein I was -born, and the night in which it was said, There is a man child -conceived. - -3:4 Let that day be darkness; let not God regard it from above, -neither let the light shine upon it. - -3:5 Let darkness and the shadow of death stain it; let a cloud dwell -upon it; let the blackness of the day terrify it. - -3:6 As for that night, let darkness seize upon it; let it not be -joined unto the days of the year, let it not come into the number of -the months. - -3:7 Lo, let that night be solitary, let no joyful voice come therein. - -3:8 Let them curse it that curse the day, who are ready to raise up -their mourning. - -3:9 Let the stars of the twilight thereof be dark; let it look for -light, but have none; neither let it see the dawning of the day: 3:10 -Because it shut not up the doors of my mother's womb, nor hid sorrow -from mine eyes. - -3:11 Why died I not from the womb? why did I not give up the ghost -when I came out of the belly? 3:12 Why did the knees prevent me? or -why the breasts that I should suck? 3:13 For now should I have lain -still and been quiet, I should have slept: then had I been at rest, -3:14 With kings and counsellors of the earth, which build desolate -places for themselves; 3:15 Or with princes that had gold, who filled -their houses with silver: 3:16 Or as an hidden untimely birth I had -not been; as infants which never saw light. - -3:17 There the wicked cease from troubling; and there the weary be at -rest. - -3:18 There the prisoners rest together; they hear not the voice of the -oppressor. - -3:19 The small and great are there; and the servant is free from his -master. - -3:20 Wherefore is light given to him that is in misery, and life unto -the bitter in soul; 3:21 Which long for death, but it cometh not; and -dig for it more than for hid treasures; 3:22 Which rejoice -exceedingly, and are glad, when they can find the grave? 3:23 Why is -light given to a man whose way is hid, and whom God hath hedged in? -3:24 For my sighing cometh before I eat, and my roarings are poured -out like the waters. - -3:25 For the thing which I greatly feared is come upon me, and that -which I was afraid of is come unto me. - -3:26 I was not in safety, neither had I rest, neither was I quiet; yet -trouble came. - -4:1 Then Eliphaz the Temanite answered and said, 4:2 If we assay to -commune with thee, wilt thou be grieved? but who can withhold himself -from speaking? 4:3 Behold, thou hast instructed many, and thou hast -strengthened the weak hands. - -4:4 Thy words have upholden him that was falling, and thou hast -strengthened the feeble knees. - -4:5 But now it is come upon thee, and thou faintest; it toucheth thee, -and thou art troubled. - -4:6 Is not this thy fear, thy confidence, thy hope, and the -uprightness of thy ways? 4:7 Remember, I pray thee, who ever -perished, being innocent? or where were the righteous cut off? 4:8 -Even as I have seen, they that plow iniquity, and sow wickedness, reap -the same. - -4:9 By the blast of God they perish, and by the breath of his nostrils -are they consumed. - -4:10 The roaring of the lion, and the voice of the fierce lion, and -the teeth of the young lions, are broken. - -4:11 The old lion perisheth for lack of prey, and the stout lion's -whelps are scattered abroad. - -4:12 Now a thing was secretly brought to me, and mine ear received a -little thereof. - -4:13 In thoughts from the visions of the night, when deep sleep -falleth on men, 4:14 Fear came upon me, and trembling, which made all -my bones to shake. - -4:15 Then a spirit passed before my face; the hair of my flesh stood -up: 4:16 It stood still, but I could not discern the form thereof: an -image was before mine eyes, there was silence, and I heard a voice, -saying, 4:17 Shall mortal man be more just than God? shall a man be -more pure than his maker? 4:18 Behold, he put no trust in his -servants; and his angels he charged with folly: 4:19 How much less in -them that dwell in houses of clay, whose foundation is in the dust, -which are crushed before the moth? 4:20 They are destroyed from -morning to evening: they perish for ever without any regarding it. - -4:21 Doth not their excellency which is in them go away? they die, -even without wisdom. - -5:1 Call now, if there be any that will answer thee; and to which of -the saints wilt thou turn? 5:2 For wrath killeth the foolish man, and -envy slayeth the silly one. - -5:3 I have seen the foolish taking root: but suddenly I cursed his -habitation. - -5:4 His children are far from safety, and they are crushed in the -gate, neither is there any to deliver them. - -5:5 Whose harvest the hungry eateth up, and taketh it even out of the -thorns, and the robber swalloweth up their substance. - -5:6 Although affliction cometh not forth of the dust, neither doth -trouble spring out of the ground; 5:7 Yet man is born unto trouble, as -the sparks fly upward. - -5:8 I would seek unto God, and unto God would I commit my cause: 5:9 -Which doeth great things and unsearchable; marvellous things without -number: 5:10 Who giveth rain upon the earth, and sendeth waters upon -the fields: 5:11 To set up on high those that be low; that those which -mourn may be exalted to safety. - -5:12 He disappointeth the devices of the crafty, so that their hands -cannot perform their enterprise. - -5:13 He taketh the wise in their own craftiness: and the counsel of -the froward is carried headlong. - -5:14 They meet with darkness in the day time, and grope in the noonday -as in the night. - -5:15 But he saveth the poor from the sword, from their mouth, and from -the hand of the mighty. - -5:16 So the poor hath hope, and iniquity stoppeth her mouth. - -5:17 Behold, happy is the man whom God correcteth: therefore despise -not thou the chastening of the Almighty: 5:18 For he maketh sore, and -bindeth up: he woundeth, and his hands make whole. - -5:19 He shall deliver thee in six troubles: yea, in seven there shall -no evil touch thee. - -5:20 In famine he shall redeem thee from death: and in war from the -power of the sword. - -5:21 Thou shalt be hid from the scourge of the tongue: neither shalt -thou be afraid of destruction when it cometh. - -5:22 At destruction and famine thou shalt laugh: neither shalt thou be -afraid of the beasts of the earth. - -5:23 For thou shalt be in league with the stones of the field: and the -beasts of the field shall be at peace with thee. - -5:24 And thou shalt know that thy tabernacle shall be in peace; and -thou shalt visit thy habitation, and shalt not sin. - -5:25 Thou shalt know also that thy seed shall be great, and thine -offspring as the grass of the earth. - -5:26 Thou shalt come to thy grave in a full age, like as a shock of -corn cometh in in his season. - -5:27 Lo this, we have searched it, so it is; hear it, and know thou it -for thy good. - -6:1 But Job answered and said, 6:2 Oh that my grief were throughly -weighed, and my calamity laid in the balances together! 6:3 For now -it would be heavier than the sand of the sea: therefore my words are -swallowed up. - -6:4 For the arrows of the Almighty are within me, the poison whereof -drinketh up my spirit: the terrors of God do set themselves in array -against me. - -6:5 Doth the wild ass bray when he hath grass? or loweth the ox over -his fodder? 6:6 Can that which is unsavoury be eaten without salt? or -is there any taste in the white of an egg? 6:7 The things that my -soul refused to touch are as my sorrowful meat. - -6:8 Oh that I might have my request; and that God would grant me the -thing that I long for! 6:9 Even that it would please God to destroy -me; that he would let loose his hand, and cut me off! 6:10 Then -should I yet have comfort; yea, I would harden myself in sorrow: let -him not spare; for I have not concealed the words of the Holy One. - -6:11 What is my strength, that I should hope? and what is mine end, -that I should prolong my life? 6:12 Is my strength the strength of -stones? or is my flesh of brass? 6:13 Is not my help in me? and is -wisdom driven quite from me? 6:14 To him that is afflicted pity -should be shewed from his friend; but he forsaketh the fear of the -Almighty. - -6:15 My brethren have dealt deceitfully as a brook, and as the stream -of brooks they pass away; 6:16 Which are blackish by reason of the -ice, and wherein the snow is hid: 6:17 What time they wax warm, they -vanish: when it is hot, they are consumed out of their place. - -6:18 The paths of their way are turned aside; they go to nothing, and -perish. - -6:19 The troops of Tema looked, the companies of Sheba waited for -them. - -6:20 They were confounded because they had hoped; they came thither, -and were ashamed. - -6:21 For now ye are nothing; ye see my casting down, and are afraid. - -6:22 Did I say, Bring unto me? or, Give a reward for me of your -substance? 6:23 Or, Deliver me from the enemy's hand? or, Redeem me -from the hand of the mighty? 6:24 Teach me, and I will hold my -tongue: and cause me to understand wherein I have erred. - -6:25 How forcible are right words! but what doth your arguing reprove? -6:26 Do ye imagine to reprove words, and the speeches of one that is -desperate, which are as wind? 6:27 Yea, ye overwhelm the fatherless, -and ye dig a pit for your friend. - -6:28 Now therefore be content, look upon me; for it is evident unto -you if I lie. - -6:29 Return, I pray you, let it not be iniquity; yea, return again, my -righteousness is in it. - -6:30 Is there iniquity in my tongue? cannot my taste discern perverse -things? 7:1 Is there not an appointed time to man upon earth? are not -his days also like the days of an hireling? 7:2 As a servant -earnestly desireth the shadow, and as an hireling looketh for the -reward of his work: 7:3 So am I made to possess months of vanity, and -wearisome nights are appointed to me. - -7:4 When I lie down, I say, When shall I arise, and the night be gone? -and I am full of tossings to and fro unto the dawning of the day. - -7:5 My flesh is clothed with worms and clods of dust; my skin is -broken, and become loathsome. - -7:6 My days are swifter than a weaver's shuttle, and are spent without -hope. - -7:7 O remember that my life is wind: mine eye shall no more see good. - -7:8 The eye of him that hath seen me shall see me no more: thine eyes -are upon me, and I am not. - -7:9 As the cloud is consumed and vanisheth away: so he that goeth down -to the grave shall come up no more. - -7:10 He shall return no more to his house, neither shall his place -know him any more. - -7:11 Therefore I will not refrain my mouth; I will speak in the -anguish of my spirit; I will complain in the bitterness of my soul. - -7:12 Am I a sea, or a whale, that thou settest a watch over me? 7:13 -When I say, My bed shall comfort me, my couch shall ease my -complaints; 7:14 Then thou scarest me with dreams, and terrifiest me -through visions: 7:15 So that my soul chooseth strangling, and death -rather than my life. - -7:16 I loathe it; I would not live alway: let me alone; for my days -are vanity. - -7:17 What is man, that thou shouldest magnify him? and that thou -shouldest set thine heart upon him? 7:18 And that thou shouldest -visit him every morning, and try him every moment? 7:19 How long wilt -thou not depart from me, nor let me alone till I swallow down my -spittle? 7:20 I have sinned; what shall I do unto thee, O thou -preserver of men? why hast thou set me as a mark against thee, so -that I am a burden to myself? 7:21 And why dost thou not pardon my -transgression, and take away my iniquity? for now shall I sleep in the -dust; and thou shalt seek me in the morning, but I shall not be. - -8:1 Then answered Bildad the Shuhite, and said, 8:2 How long wilt thou -speak these things? and how long shall the words of thy mouth be like -a strong wind? 8:3 Doth God pervert judgment? or doth the Almighty -pervert justice? 8:4 If thy children have sinned against him, and he -have cast them away for their transgression; 8:5 If thou wouldest seek -unto God betimes, and make thy supplication to the Almighty; 8:6 If -thou wert pure and upright; surely now he would awake for thee, and -make the habitation of thy righteousness prosperous. - -8:7 Though thy beginning was small, yet thy latter end should greatly -increase. - -8:8 For enquire, I pray thee, of the former age, and prepare thyself -to the search of their fathers: 8:9 (For we are but of yesterday, and -know nothing, because our days upon earth are a shadow:) 8:10 Shall -not they teach thee, and tell thee, and utter words out of their -heart? 8:11 Can the rush grow up without mire? can the flag grow -without water? 8:12 Whilst it is yet in his greenness, and not cut -down, it withereth before any other herb. - -8:13 So are the paths of all that forget God; and the hypocrite's hope -shall perish: 8:14 Whose hope shall be cut off, and whose trust shall -be a spider's web. - -8:15 He shall lean upon his house, but it shall not stand: he shall -hold it fast, but it shall not endure. - -8:16 He is green before the sun, and his branch shooteth forth in his -garden. - -8:17 His roots are wrapped about the heap, and seeth the place of -stones. - -8:18 If he destroy him from his place, then it shall deny him, saying, -I have not seen thee. - -8:19 Behold, this is the joy of his way, and out of the earth shall -others grow. - -8:20 Behold, God will not cast away a perfect man, neither will he -help the evil doers: 8:21 Till he fill thy mouth with laughing, and -thy lips with rejoicing. - -8:22 They that hate thee shall be clothed with shame; and the dwelling -place of the wicked shall come to nought. - -9:1 Then Job answered and said, 9:2 I know it is so of a truth: but -how should man be just with God? 9:3 If he will contend with him, he -cannot answer him one of a thousand. - -9:4 He is wise in heart, and mighty in strength: who hath hardened -himself against him, and hath prospered? 9:5 Which removeth the -mountains, and they know not: which overturneth them in his anger. - -9:6 Which shaketh the earth out of her place, and the pillars thereof -tremble. - -9:7 Which commandeth the sun, and it riseth not; and sealeth up the -stars. - -9:8 Which alone spreadeth out the heavens, and treadeth upon the waves -of the sea. - -9:9 Which maketh Arcturus, Orion, and Pleiades, and the chambers of -the south. - -9:10 Which doeth great things past finding out; yea, and wonders -without number. - -9:11 Lo, he goeth by me, and I see him not: he passeth on also, but I -perceive him not. - -9:12 Behold, he taketh away, who can hinder him? who will say unto -him, What doest thou? 9:13 If God will not withdraw his anger, the -proud helpers do stoop under him. - -9:14 How much less shall I answer him, and choose out my words to -reason with him? 9:15 Whom, though I were righteous, yet would I not -answer, but I would make supplication to my judge. - -9:16 If I had called, and he had answered me; yet would I not believe -that he had hearkened unto my voice. - -9:17 For he breaketh me with a tempest, and multiplieth my wounds -without cause. - -9:18 He will not suffer me to take my breath, but filleth me with -bitterness. - -9:19 If I speak of strength, lo, he is strong: and if of judgment, who -shall set me a time to plead? 9:20 If I justify myself, mine own -mouth shall condemn me: if I say, I am perfect, it shall also prove me -perverse. - -9:21 Though I were perfect, yet would I not know my soul: I would -despise my life. - -9:22 This is one thing, therefore I said it, He destroyeth the perfect -and the wicked. - -9:23 If the scourge slay suddenly, he will laugh at the trial of the -innocent. - -9:24 The earth is given into the hand of the wicked: he covereth the -faces of the judges thereof; if not, where, and who is he? 9:25 Now -my days are swifter than a post: they flee away, they see no good. - -9:26 They are passed away as the swift ships: as the eagle that -hasteth to the prey. - -9:27 If I say, I will forget my complaint, I will leave off my -heaviness, and comfort myself: 9:28 I am afraid of all my sorrows, I -know that thou wilt not hold me innocent. - -9:29 If I be wicked, why then labour I in vain? 9:30 If I wash myself -with snow water, and make my hands never so clean; 9:31 Yet shalt thou -plunge me in the ditch, and mine own clothes shall abhor me. - -9:32 For he is not a man, as I am, that I should answer him, and we -should come together in judgment. - -9:33 Neither is there any daysman betwixt us, that might lay his hand -upon us both. - -9:34 Let him take his rod away from me, and let not his fear terrify -me: 9:35 Then would I speak, and not fear him; but it is not so with -me. - -10:1 My soul is weary of my life; I will leave my complaint upon -myself; I will speak in the bitterness of my soul. - -10:2 I will say unto God, Do not condemn me; shew me wherefore thou -contendest with me. - -10:3 Is it good unto thee that thou shouldest oppress, that thou -shouldest despise the work of thine hands, and shine upon the counsel -of the wicked? 10:4 Hast thou eyes of flesh? or seest thou as man -seeth? 10:5 Are thy days as the days of man? are thy years as man's -days, 10:6 That thou enquirest after mine iniquity, and searchest -after my sin? 10:7 Thou knowest that I am not wicked; and there is -none that can deliver out of thine hand. - -10:8 Thine hands have made me and fashioned me together round about; -yet thou dost destroy me. - -10:9 Remember, I beseech thee, that thou hast made me as the clay; and -wilt thou bring me into dust again? 10:10 Hast thou not poured me out -as milk, and curdled me like cheese? 10:11 Thou hast clothed me with -skin and flesh, and hast fenced me with bones and sinews. - -10:12 Thou hast granted me life and favour, and thy visitation hath -preserved my spirit. - -10:13 And these things hast thou hid in thine heart: I know that this -is with thee. - -10:14 If I sin, then thou markest me, and thou wilt not acquit me from -mine iniquity. - -10:15 If I be wicked, woe unto me; and if I be righteous, yet will I -not lift up my head. I am full of confusion; therefore see thou mine -affliction; 10:16 For it increaseth. Thou huntest me as a fierce lion: -and again thou shewest thyself marvellous upon me. - -10:17 Thou renewest thy witnesses against me, and increasest thine -indignation upon me; changes and war are against me. - -10:18 Wherefore then hast thou brought me forth out of the womb? Oh -that I had given up the ghost, and no eye had seen me! 10:19 I should -have been as though I had not been; I should have been carried from -the womb to the grave. - -10:20 Are not my days few? cease then, and let me alone, that I may -take comfort a little, 10:21 Before I go whence I shall not return, -even to the land of darkness and the shadow of death; 10:22 A land of -darkness, as darkness itself; and of the shadow of death, without any -order, and where the light is as darkness. - -11:1 Then answered Zophar the Naamathite, and said, 11:2 Should not -the multitude of words be answered? and should a man full of talk be -justified? 11:3 Should thy lies make men hold their peace? and when -thou mockest, shall no man make thee ashamed? 11:4 For thou hast -said, My doctrine is pure, and I am clean in thine eyes. - -11:5 But oh that God would speak, and open his lips against thee; 11:6 -And that he would shew thee the secrets of wisdom, that they are -double to that which is! Know therefore that God exacteth of thee less -than thine iniquity deserveth. - -11:7 Canst thou by searching find out God? canst thou find out the -Almighty unto perfection? 11:8 It is as high as heaven; what canst -thou do? deeper than hell; what canst thou know? 11:9 The measure -thereof is longer than the earth, and broader than the sea. - -11:10 If he cut off, and shut up, or gather together, then who can -hinder him? 11:11 For he knoweth vain men: he seeth wickedness also; -will he not then consider it? 11:12 For vain men would be wise, -though man be born like a wild ass's colt. - -11:13 If thou prepare thine heart, and stretch out thine hands toward -him; 11:14 If iniquity be in thine hand, put it far away, and let not -wickedness dwell in thy tabernacles. - -11:15 For then shalt thou lift up thy face without spot; yea, thou -shalt be stedfast, and shalt not fear: 11:16 Because thou shalt forget -thy misery, and remember it as waters that pass away: 11:17 And thine -age shall be clearer than the noonday: thou shalt shine forth, thou -shalt be as the morning. - -11:18 And thou shalt be secure, because there is hope; yea, thou shalt -dig about thee, and thou shalt take thy rest in safety. - -11:19 Also thou shalt lie down, and none shall make thee afraid; yea, -many shall make suit unto thee. - -11:20 But the eyes of the wicked shall fail, and they shall not -escape, and their hope shall be as the giving up of the ghost. - -12:1 And Job answered and said, 12:2 No doubt but ye are the people, -and wisdom shall die with you. - -12:3 But I have understanding as well as you; I am not inferior to -you: yea, who knoweth not such things as these? 12:4 I am as one -mocked of his neighbour, who calleth upon God, and he answereth him: -the just upright man is laughed to scorn. - -12:5 He that is ready to slip with his feet is as a lamp despised in -the thought of him that is at ease. - -12:6 The tabernacles of robbers prosper, and they that provoke God are -secure; into whose hand God bringeth abundantly. - -12:7 But ask now the beasts, and they shall teach thee; and the fowls -of the air, and they shall tell thee: 12:8 Or speak to the earth, and -it shall teach thee: and the fishes of the sea shall declare unto -thee. - -12:9 Who knoweth not in all these that the hand of the LORD hath -wrought this? 12:10 In whose hand is the soul of every living thing, -and the breath of all mankind. - -12:11 Doth not the ear try words? and the mouth taste his meat? 12:12 -With the ancient is wisdom; and in length of days understanding. - -12:13 With him is wisdom and strength, he hath counsel and -understanding. - -12:14 Behold, he breaketh down, and it cannot be built again: he -shutteth up a man, and there can be no opening. - -12:15 Behold, he withholdeth the waters, and they dry up: also he -sendeth them out, and they overturn the earth. - -12:16 With him is strength and wisdom: the deceived and the deceiver -are his. - -12:17 He leadeth counsellors away spoiled, and maketh the judges -fools. - -12:18 He looseth the bond of kings, and girdeth their loins with a -girdle. - -12:19 He leadeth princes away spoiled, and overthroweth the mighty. - -12:20 He removeth away the speech of the trusty, and taketh away the -understanding of the aged. - -12:21 He poureth contempt upon princes, and weakeneth the strength of -the mighty. - -12:22 He discovereth deep things out of darkness, and bringeth out to -light the shadow of death. - -12:23 He increaseth the nations, and destroyeth them: he enlargeth the -nations, and straiteneth them again. - -12:24 He taketh away the heart of the chief of the people of the -earth, and causeth them to wander in a wilderness where there is no -way. - -12:25 They grope in the dark without light, and he maketh them to -stagger like a drunken man. - -13:1 Lo, mine eye hath seen all this, mine ear hath heard and -understood it. - -13:2 What ye know, the same do I know also: I am not inferior unto -you. - -13:3 Surely I would speak to the Almighty, and I desire to reason with -God. - -13:4 But ye are forgers of lies, ye are all physicians of no value. - -13:5 O that ye would altogether hold your peace! and it should be your -wisdom. - -13:6 Hear now my reasoning, and hearken to the pleadings of my lips. - -13:7 Will ye speak wickedly for God? and talk deceitfully for him? -13:8 Will ye accept his person? will ye contend for God? 13:9 Is it -good that he should search you out? or as one man mocketh another, do -ye so mock him? 13:10 He will surely reprove you, if ye do secretly -accept persons. - -13:11 Shall not his excellency make you afraid? and his dread fall -upon you? 13:12 Your remembrances are like unto ashes, your bodies to -bodies of clay. - -13:13 Hold your peace, let me alone, that I may speak, and let come on -me what will. - -13:14 Wherefore do I take my flesh in my teeth, and put my life in -mine hand? 13:15 Though he slay me, yet will I trust in him: but I -will maintain mine own ways before him. - -13:16 He also shall be my salvation: for an hypocrite shall not come -before him. - -13:17 Hear diligently my speech, and my declaration with your ears. - -13:18 Behold now, I have ordered my cause; I know that I shall be -justified. - -13:19 Who is he that will plead with me? for now, if I hold my tongue, -I shall give up the ghost. - -13:20 Only do not two things unto me: then will I not hide myself from -thee. - -13:21 Withdraw thine hand far from me: and let not thy dread make me -afraid. - -13:22 Then call thou, and I will answer: or let me speak, and answer -thou me. - -13:23 How many are mine iniquities and sins? make me to know my -transgression and my sin. - -13:24 Wherefore hidest thou thy face, and holdest me for thine enemy? -13:25 Wilt thou break a leaf driven to and fro? and wilt thou pursue -the dry stubble? 13:26 For thou writest bitter things against me, and -makest me to possess the iniquities of my youth. - -13:27 Thou puttest my feet also in the stocks, and lookest narrowly -unto all my paths; thou settest a print upon the heels of my feet. - -13:28 And he, as a rotten thing, consumeth, as a garment that is moth -eaten. - -14:1 Man that is born of a woman is of few days and full of trouble. - -14:2 He cometh forth like a flower, and is cut down: he fleeth also as -a shadow, and continueth not. - -14:3 And doth thou open thine eyes upon such an one, and bringest me -into judgment with thee? 14:4 Who can bring a clean thing out of an -unclean? not one. - -14:5 Seeing his days are determined, the number of his months are with -thee, thou hast appointed his bounds that he cannot pass; 14:6 Turn -from him, that he may rest, till he shall accomplish, as an hireling, -his day. - -14:7 For there is hope of a tree, if it be cut down, that it will -sprout again, and that the tender branch thereof will not cease. - -14:8 Though the root thereof wax old in the earth, and the stock -thereof die in the ground; 14:9 Yet through the scent of water it will -bud, and bring forth boughs like a plant. - -14:10 But man dieth, and wasteth away: yea, man giveth up the ghost, -and where is he? 14:11 As the waters fail from the sea, and the flood -decayeth and drieth up: 14:12 So man lieth down, and riseth not: till -the heavens be no more, they shall not awake, nor be raised out of -their sleep. - -14:13 O that thou wouldest hide me in the grave, that thou wouldest -keep me secret, until thy wrath be past, that thou wouldest appoint me -a set time, and remember me! 14:14 If a man die, shall he live again? -all the days of my appointed time will I wait, till my change come. - -14:15 Thou shalt call, and I will answer thee: thou wilt have a desire -to the work of thine hands. - -14:16 For now thou numberest my steps: dost thou not watch over my -sin? 14:17 My transgression is sealed up in a bag, and thou sewest up -mine iniquity. - -14:18 And surely the mountains falling cometh to nought, and the rock -is removed out of his place. - -14:19 The waters wear the stones: thou washest away the things which -grow out of the dust of the earth; and thou destroyest the hope of -man. - -14:20 Thou prevailest for ever against him, and he passeth: thou -changest his countenance, and sendest him away. - -14:21 His sons come to honour, and he knoweth it not; and they are -brought low, but he perceiveth it not of them. - -14:22 But his flesh upon him shall have pain, and his soul within him -shall mourn. - -15:1 Then answered Eliphaz the Temanite, and said, 15:2 Should a wise -man utter vain knowledge, and fill his belly with the east wind? 15:3 -Should he reason with unprofitable talk? or with speeches wherewith he -can do no good? 15:4 Yea, thou castest off fear, and restrainest -prayer before God. - -15:5 For thy mouth uttereth thine iniquity, and thou choosest the -tongue of the crafty. - -15:6 Thine own mouth condemneth thee, and not I: yea, thine own lips -testify against thee. - -15:7 Art thou the first man that was born? or wast thou made before -the hills? 15:8 Hast thou heard the secret of God? and dost thou -restrain wisdom to thyself? 15:9 What knowest thou, that we know not? -what understandest thou, which is not in us? 15:10 With us are both -the grayheaded and very aged men, much elder than thy father. - -15:11 Are the consolations of God small with thee? is there any secret -thing with thee? 15:12 Why doth thine heart carry thee away? and what -do thy eyes wink at, 15:13 That thou turnest thy spirit against God, -and lettest such words go out of thy mouth? 15:14 What is man, that -he should be clean? and he which is born of a woman, that he should be -righteous? 15:15 Behold, he putteth no trust in his saints; yea, the -heavens are not clean in his sight. - -15:16 How much more abominable and filthy is man, which drinketh -iniquity like water? 15:17 I will shew thee, hear me; and that which -I have seen I will declare; 15:18 Which wise men have told from their -fathers, and have not hid it: 15:19 Unto whom alone the earth was -given, and no stranger passed among them. - -15:20 The wicked man travaileth with pain all his days, and the number -of years is hidden to the oppressor. - -15:21 A dreadful sound is in his ears: in prosperity the destroyer -shall come upon him. - -15:22 He believeth not that he shall return out of darkness, and he is -waited for of the sword. - -15:23 He wandereth abroad for bread, saying, Where is it? he knoweth -that the day of darkness is ready at his hand. - -15:24 Trouble and anguish shall make him afraid; they shall prevail -against him, as a king ready to the battle. - -15:25 For he stretcheth out his hand against God, and strengtheneth -himself against the Almighty. - -15:26 He runneth upon him, even on his neck, upon the thick bosses of -his bucklers: 15:27 Because he covereth his face with his fatness, and -maketh collops of fat on his flanks. - -15:28 And he dwelleth in desolate cities, and in houses which no man -inhabiteth, which are ready to become heaps. - -15:29 He shall not be rich, neither shall his substance continue, -neither shall he prolong the perfection thereof upon the earth. - -15:30 He shall not depart out of darkness; the flame shall dry up his -branches, and by the breath of his mouth shall he go away. - -15:31 Let not him that is deceived trust in vanity: for vanity shall -be his recompence. - -15:32 It shall be accomplished before his time, and his branch shall -not be green. - -15:33 He shall shake off his unripe grape as the vine, and shall cast -off his flower as the olive. - -15:34 For the congregation of hypocrites shall be desolate, and fire -shall consume the tabernacles of bribery. - -15:35 They conceive mischief, and bring forth vanity, and their belly -prepareth deceit. - -16:1 Then Job answered and said, 16:2 I have heard many such things: -miserable comforters are ye all. - -16:3 Shall vain words have an end? or what emboldeneth thee that thou -answerest? 16:4 I also could speak as ye do: if your soul were in my -soul's stead, I could heap up words against you, and shake mine head -at you. - -16:5 But I would strengthen you with my mouth, and the moving of my -lips should asswage your grief. - -16:6 Though I speak, my grief is not asswaged: and though I forbear, -what am I eased? 16:7 But now he hath made me weary: thou hast made -desolate all my company. - -16:8 And thou hast filled me with wrinkles, which is a witness against -me: and my leanness rising up in me beareth witness to my face. - -16:9 He teareth me in his wrath, who hateth me: he gnasheth upon me -with his teeth; mine enemy sharpeneth his eyes upon me. - -16:10 They have gaped upon me with their mouth; they have smitten me -upon the cheek reproachfully; they have gathered themselves together -against me. - -16:11 God hath delivered me to the ungodly, and turned me over into -the hands of the wicked. - -16:12 I was at ease, but he hath broken me asunder: he hath also taken -me by my neck, and shaken me to pieces, and set me up for his mark. - -16:13 His archers compass me round about, he cleaveth my reins -asunder, and doth not spare; he poureth out my gall upon the ground. - -16:14 He breaketh me with breach upon breach, he runneth upon me like -a giant. - -16:15 I have sewed sackcloth upon my skin, and defiled my horn in the -dust. - -16:16 My face is foul with weeping, and on my eyelids is the shadow of -death; 16:17 Not for any injustice in mine hands: also my prayer is -pure. - -16:18 O earth, cover not thou my blood, and let my cry have no place. - -16:19 Also now, behold, my witness is in heaven, and my record is on -high. - -16:20 My friends scorn me: but mine eye poureth out tears unto God. - -16:21 O that one might plead for a man with God, as a man pleadeth for -his neighbour! 16:22 When a few years are come, then I shall go the -way whence I shall not return. - -17:1 My breath is corrupt, my days are extinct, the graves are ready -for me. - -17:2 Are there not mockers with me? and doth not mine eye continue in -their provocation? 17:3 Lay down now, put me in a surety with thee; -who is he that will strike hands with me? 17:4 For thou hast hid -their heart from understanding: therefore shalt thou not exalt them. - -17:5 He that speaketh flattery to his friends, even the eyes of his -children shall fail. - -17:6 He hath made me also a byword of the people; and aforetime I was -as a tabret. - -17:7 Mine eye also is dim by reason of sorrow, and all my members are -as a shadow. - -17:8 Upright men shall be astonied at this, and the innocent shall -stir up himself against the hypocrite. - -17:9 The righteous also shall hold on his way, and he that hath clean -hands shall be stronger and stronger. - -17:10 But as for you all, do ye return, and come now: for I cannot -find one wise man among you. - -17:11 My days are past, my purposes are broken off, even the thoughts -of my heart. - -17:12 They change the night into day: the light is short because of -darkness. - -17:13 If I wait, the grave is mine house: I have made my bed in the -darkness. - -17:14 I have said to corruption, Thou art my father: to the worm, Thou -art my mother, and my sister. - -17:15 And where is now my hope? as for my hope, who shall see it? -17:16 They shall go down to the bars of the pit, when our rest -together is in the dust. - -18:1 Then answered Bildad the Shuhite, and said, 18:2 How long will it -be ere ye make an end of words? mark, and afterwards we will speak. - -18:3 Wherefore are we counted as beasts, and reputed vile in your -sight? 18:4 He teareth himself in his anger: shall the earth be -forsaken for thee? and shall the rock be removed out of his place? -18:5 Yea, the light of the wicked shall be put out, and the spark of -his fire shall not shine. - -18:6 The light shall be dark in his tabernacle, and his candle shall -be put out with him. - -18:7 The steps of his strength shall be straitened, and his own -counsel shall cast him down. - -18:8 For he is cast into a net by his own feet, and he walketh upon a -snare. - -18:9 The gin shall take him by the heel, and the robber shall prevail -against him. - -18:10 The snare is laid for him in the ground, and a trap for him in -the way. - -18:11 Terrors shall make him afraid on every side, and shall drive him -to his feet. - -18:12 His strength shall be hungerbitten, and destruction shall be -ready at his side. - -18:13 It shall devour the strength of his skin: even the firstborn of -death shall devour his strength. - -18:14 His confidence shall be rooted out of his tabernacle, and it -shall bring him to the king of terrors. - -18:15 It shall dwell in his tabernacle, because it is none of his: -brimstone shall be scattered upon his habitation. - -18:16 His roots shall be dried up beneath, and above shall his branch -be cut off. - -18:17 His remembrance shall perish from the earth, and he shall have -no name in the street. - -18:18 He shall be driven from light into darkness, and chased out of -the world. - -18:19 He shall neither have son nor nephew among his people, nor any -remaining in his dwellings. - -18:20 They that come after him shall be astonied at his day, as they -that went before were affrighted. - -18:21 Surely such are the dwellings of the wicked, and this is the -place of him that knoweth not God. - -19:1 Then Job answered and said, 19:2 How long will ye vex my soul, -and break me in pieces with words? 19:3 These ten times have ye -reproached me: ye are not ashamed that ye make yourselves strange to -me. - -19:4 And be it indeed that I have erred, mine error remaineth with -myself. - -19:5 If indeed ye will magnify yourselves against me, and plead -against me my reproach: 19:6 Know now that God hath overthrown me, and -hath compassed me with his net. - -19:7 Behold, I cry out of wrong, but I am not heard: I cry aloud, but -there is no judgment. - -19:8 He hath fenced up my way that I cannot pass, and he hath set -darkness in my paths. - -19:9 He hath stripped me of my glory, and taken the crown from my -head. - -19:10 He hath destroyed me on every side, and I am gone: and mine hope -hath he removed like a tree. - -19:11 He hath also kindled his wrath against me, and he counteth me -unto him as one of his enemies. - -19:12 His troops come together, and raise up their way against me, and -encamp round about my tabernacle. - -19:13 He hath put my brethren far from me, and mine acquaintance are -verily estranged from me. - -19:14 My kinsfolk have failed, and my familiar friends have forgotten -me. - -19:15 They that dwell in mine house, and my maids, count me for a -stranger: I am an alien in their sight. - -19:16 I called my servant, and he gave me no answer; I intreated him -with my mouth. - -19:17 My breath is strange to my wife, though I intreated for the -children's sake of mine own body. - -19:18 Yea, young children despised me; I arose, and they spake against -me. - -19:19 All my inward friends abhorred me: and they whom I loved are -turned against me. - -19:20 My bone cleaveth to my skin and to my flesh, and I am escaped -with the skin of my teeth. - -19:21 Have pity upon me, have pity upon me, O ye my friends; for the -hand of God hath touched me. - -19:22 Why do ye persecute me as God, and are not satisfied with my -flesh? 19:23 Oh that my words were now written! oh that they were -printed in a book! 19:24 That they were graven with an iron pen and -lead in the rock for ever! 19:25 For I know that my redeemer liveth, -and that he shall stand at the latter day upon the earth: 19:26 And -though after my skin worms destroy this body, yet in my flesh shall I -see God: 19:27 Whom I shall see for myself, and mine eyes shall -behold, and not another; though my reins be consumed within me. - -19:28 But ye should say, Why persecute we him, seeing the root of the -matter is found in me? 19:29 Be ye afraid of the sword: for wrath -bringeth the punishments of the sword, that ye may know there is a -judgment. - -20:1 Then answered Zophar the Naamathite, and said, 20:2 Therefore do -my thoughts cause me to answer, and for this I make haste. - -20:3 I have heard the check of my reproach, and the spirit of my -understanding causeth me to answer. - -20:4 Knowest thou not this of old, since man was placed upon earth, -20:5 That the triumphing of the wicked is short, and the joy of the -hypocrite but for a moment? 20:6 Though his excellency mount up to -the heavens, and his head reach unto the clouds; 20:7 Yet he shall -perish for ever like his own dung: they which have seen him shall say, -Where is he? 20:8 He shall fly away as a dream, and shall not be -found: yea, he shall be chased away as a vision of the night. - -20:9 The eye also which saw him shall see him no more; neither shall -his place any more behold him. - -20:10 His children shall seek to please the poor, and his hands shall -restore their goods. - -20:11 His bones are full of the sin of his youth, which shall lie down -with him in the dust. - -20:12 Though wickedness be sweet in his mouth, though he hide it under -his tongue; 20:13 Though he spare it, and forsake it not; but keep it -still within his mouth: 20:14 Yet his meat in his bowels is turned, it -is the gall of asps within him. - -20:15 He hath swallowed down riches, and he shall vomit them up again: -God shall cast them out of his belly. - -20:16 He shall suck the poison of asps: the viper's tongue shall slay -him. - -20:17 He shall not see the rivers, the floods, the brooks of honey and -butter. - -20:18 That which he laboured for shall he restore, and shall not -swallow it down: according to his substance shall the restitution be, -and he shall not rejoice therein. - -20:19 Because he hath oppressed and hath forsaken the poor; because he -hath violently taken away an house which he builded not; 20:20 Surely -he shall not feel quietness in his belly, he shall not save of that -which he desired. - -20:21 There shall none of his meat be left; therefore shall no man -look for his goods. - -20:22 In the fulness of his sufficiency he shall be in straits: every -hand of the wicked shall come upon him. - -20:23 When he is about to fill his belly, God shall cast the fury of -his wrath upon him, and shall rain it upon him while he is eating. - -20:24 He shall flee from the iron weapon, and the bow of steel shall -strike him through. - -20:25 It is drawn, and cometh out of the body; yea, the glittering -sword cometh out of his gall: terrors are upon him. - -20:26 All darkness shall be hid in his secret places: a fire not blown -shall consume him; it shall go ill with him that is left in his -tabernacle. - -20:27 The heaven shall reveal his iniquity; and the earth shall rise -up against him. - -20:28 The increase of his house shall depart, and his goods shall flow -away in the day of his wrath. - -20:29 This is the portion of a wicked man from God, and the heritage -appointed unto him by God. - -21:1 But Job answered and said, 21:2 Hear diligently my speech, and -let this be your consolations. - -21:3 Suffer me that I may speak; and after that I have spoken, mock -on. - -21:4 As for me, is my complaint to man? and if it were so, why should -not my spirit be troubled? 21:5 Mark me, and be astonished, and lay -your hand upon your mouth. - -21:6 Even when I remember I am afraid, and trembling taketh hold on my -flesh. - -21:7 Wherefore do the wicked live, become old, yea, are mighty in -power? 21:8 Their seed is established in their sight with them, and -their offspring before their eyes. - -21:9 Their houses are safe from fear, neither is the rod of God upon -them. - -21:10 Their bull gendereth, and faileth not; their cow calveth, and -casteth not her calf. - -21:11 They send forth their little ones like a flock, and their -children dance. - -21:12 They take the timbrel and harp, and rejoice at the sound of the -organ. - -21:13 They spend their days in wealth, and in a moment go down to the -grave. - -21:14 Therefore they say unto God, Depart from us; for we desire not -the knowledge of thy ways. - -21:15 What is the Almighty, that we should serve him? and what profit -should we have, if we pray unto him? 21:16 Lo, their good is not in -their hand: the counsel of the wicked is far from me. - -21:17 How oft is the candle of the wicked put out! and how oft cometh -their destruction upon them! God distributeth sorrows in his anger. - -21:18 They are as stubble before the wind, and as chaff that the storm -carrieth away. - -21:19 God layeth up his iniquity for his children: he rewardeth him, -and he shall know it. - -21:20 His eyes shall see his destruction, and he shall drink of the -wrath of the Almighty. - -21:21 For what pleasure hath he in his house after him, when the -number of his months is cut off in the midst? 21:22 Shall any teach -God knowledge? seeing he judgeth those that are high. - -21:23 One dieth in his full strength, being wholly at ease and quiet. - -21:24 His breasts are full of milk, and his bones are moistened with -marrow. - -21:25 And another dieth in the bitterness of his soul, and never -eateth with pleasure. - -21:26 They shall lie down alike in the dust, and the worms shall cover -them. - -21:27 Behold, I know your thoughts, and the devices which ye -wrongfully imagine against me. - -21:28 For ye say, Where is the house of the prince? and where are the -dwelling places of the wicked? 21:29 Have ye not asked them that go -by the way? and do ye not know their tokens, 21:30 That the wicked is -reserved to the day of destruction? they shall be brought forth to the -day of wrath. - -21:31 Who shall declare his way to his face? and who shall repay him -what he hath done? 21:32 Yet shall he be brought to the grave, and -shall remain in the tomb. - -21:33 The clods of the valley shall be sweet unto him, and every man -shall draw after him, as there are innumerable before him. - -21:34 How then comfort ye me in vain, seeing in your answers there -remaineth falsehood? 22:1 Then Eliphaz the Temanite answered and -said, 22:2 Can a man be profitable unto God, as he that is wise may be -profitable unto himself? 22:3 Is it any pleasure to the Almighty, -that thou art righteous? or is it gain to him, that thou makest thy -ways perfect? 22:4 Will he reprove thee for fear of thee? will he -enter with thee into judgment? 22:5 Is not thy wickedness great? and -thine iniquities infinite? 22:6 For thou hast taken a pledge from thy -brother for nought, and stripped the naked of their clothing. - -22:7 Thou hast not given water to the weary to drink, and thou hast -withholden bread from the hungry. - -22:8 But as for the mighty man, he had the earth; and the honourable -man dwelt in it. - -22:9 Thou hast sent widows away empty, and the arms of the fatherless -have been broken. - -22:10 Therefore snares are round about thee, and sudden fear troubleth -thee; 22:11 Or darkness, that thou canst not see; and abundance of -waters cover thee. - -22:12 Is not God in the height of heaven? and behold the height of the -stars, how high they are! 22:13 And thou sayest, How doth God know? -can he judge through the dark cloud? 22:14 Thick clouds are a -covering to him, that he seeth not; and he walketh in the circuit of -heaven. - -22:15 Hast thou marked the old way which wicked men have trodden? -22:16 Which were cut down out of time, whose foundation was overflown -with a flood: 22:17 Which said unto God, Depart from us: and what can -the Almighty do for them? 22:18 Yet he filled their houses with good -things: but the counsel of the wicked is far from me. - -22:19 The righteous see it, and are glad: and the innocent laugh them -to scorn. - -22:20 Whereas our substance is not cut down, but the remnant of them -the fire consumeth. - -22:21 Acquaint now thyself with him, and be at peace: thereby good -shall come unto thee. - -22:22 Receive, I pray thee, the law from his mouth, and lay up his -words in thine heart. - -22:23 If thou return to the Almighty, thou shalt be built up, thou -shalt put away iniquity far from thy tabernacles. - -22:24 Then shalt thou lay up gold as dust, and the gold of Ophir as -the stones of the brooks. - -22:25 Yea, the Almighty shall be thy defence, and thou shalt have -plenty of silver. - -22:26 For then shalt thou have thy delight in the Almighty, and shalt -lift up thy face unto God. - -22:27 Thou shalt make thy prayer unto him, and he shall hear thee, and -thou shalt pay thy vows. - -22:28 Thou shalt also decree a thing, and it shall be established unto -thee: and the light shall shine upon thy ways. - -22:29 When men are cast down, then thou shalt say, There is lifting -up; and he shall save the humble person. - -22:30 He shall deliver the island of the innocent: and it is delivered -by the pureness of thine hands. - -23:1 Then Job answered and said, 23:2 Even to day is my complaint -bitter: my stroke is heavier than my groaning. - -23:3 Oh that I knew where I might find him! that I might come even to -his seat! 23:4 I would order my cause before him, and fill my mouth -with arguments. - -23:5 I would know the words which he would answer me, and understand -what he would say unto me. - -23:6 Will he plead against me with his great power? No; but he would -put strength in me. - -23:7 There the righteous might dispute with him; so should I be -delivered for ever from my judge. - -23:8 Behold, I go forward, but he is not there; and backward, but I -cannot perceive him: 23:9 On the left hand, where he doth work, but I -cannot behold him: he hideth himself on the right hand, that I cannot -see him: 23:10 But he knoweth the way that I take: when he hath tried -me, I shall come forth as gold. - -23:11 My foot hath held his steps, his way have I kept, and not -declined. - -23:12 Neither have I gone back from the commandment of his lips; I -have esteemed the words of his mouth more than my necessary food. - -23:13 But he is in one mind, and who can turn him? and what his soul -desireth, even that he doeth. - -23:14 For he performeth the thing that is appointed for me: and many -such things are with him. - -23:15 Therefore am I troubled at his presence: when I consider, I am -afraid of him. - -23:16 For God maketh my heart soft, and the Almighty troubleth me: -23:17 Because I was not cut off before the darkness, neither hath he -covered the darkness from my face. - -24:1 Why, seeing times are not hidden from the Almighty, do they that -know him not see his days? 24:2 Some remove the landmarks; they -violently take away flocks, and feed thereof. - -24:3 They drive away the ass of the fatherless, they take the widow's -ox for a pledge. - -24:4 They turn the needy out of the way: the poor of the earth hide -themselves together. - -24:5 Behold, as wild asses in the desert, go they forth to their work; -rising betimes for a prey: the wilderness yieldeth food for them and -for their children. - -24:6 They reap every one his corn in the field: and they gather the -vintage of the wicked. - -24:7 They cause the naked to lodge without clothing, that they have no -covering in the cold. - -24:8 They are wet with the showers of the mountains, and embrace the -rock for want of a shelter. - -24:9 They pluck the fatherless from the breast, and take a pledge of -the poor. - -24:10 They cause him to go naked without clothing, and they take away -the sheaf from the hungry; 24:11 Which make oil within their walls, -and tread their winepresses, and suffer thirst. - -24:12 Men groan from out of the city, and the soul of the wounded -crieth out: yet God layeth not folly to them. - -24:13 They are of those that rebel against the light; they know not -the ways thereof, nor abide in the paths thereof. - -24:14 The murderer rising with the light killeth the poor and needy, -and in the night is as a thief. - -24:15 The eye also of the adulterer waiteth for the twilight, saying, -No eye shall see me: and disguiseth his face. - -24:16 In the dark they dig through houses, which they had marked for -themselves in the daytime: they know not the light. - -24:17 For the morning is to them even as the shadow of death: if one -know them, they are in the terrors of the shadow of death. - -24:18 He is swift as the waters; their portion is cursed in the earth: -he beholdeth not the way of the vineyards. - -24:19 Drought and heat consume the snow waters: so doth the grave -those which have sinned. - -24:20 The womb shall forget him; the worm shall feed sweetly on him; -he shall be no more remembered; and wickedness shall be broken as a -tree. - -24:21 He evil entreateth the barren that beareth not: and doeth not -good to the widow. - -24:22 He draweth also the mighty with his power: he riseth up, and no -man is sure of life. - -24:23 Though it be given him to be in safety, whereon he resteth; yet -his eyes are upon their ways. - -24:24 They are exalted for a little while, but are gone and brought -low; they are taken out of the way as all other, and cut off as the -tops of the ears of corn. - -24:25 And if it be not so now, who will make me a liar, and make my -speech nothing worth? 25:1 Then answered Bildad the Shuhite, and -said, 25:2 Dominion and fear are with him, he maketh peace in his high -places. - -25:3 Is there any number of his armies? and upon whom doth not his -light arise? 25:4 How then can man be justified with God? or how can -he be clean that is born of a woman? 25:5 Behold even to the moon, -and it shineth not; yea, the stars are not pure in his sight. - -25:6 How much less man, that is a worm? and the son of man, which is a -worm? 26:1 But Job answered and said, 26:2 How hast thou helped him -that is without power? how savest thou the arm that hath no strength? -26:3 How hast thou counselled him that hath no wisdom? and how hast -thou plentifully declared the thing as it is? 26:4 To whom hast thou -uttered words? and whose spirit came from thee? 26:5 Dead things are -formed from under the waters, and the inhabitants thereof. - -26:6 Hell is naked before him, and destruction hath no covering. - -26:7 He stretcheth out the north over the empty place, and hangeth the -earth upon nothing. - -26:8 He bindeth up the waters in his thick clouds; and the cloud is -not rent under them. - -26:9 He holdeth back the face of his throne, and spreadeth his cloud -upon it. - -26:10 He hath compassed the waters with bounds, until the day and -night come to an end. - -26:11 The pillars of heaven tremble and are astonished at his reproof. - -26:12 He divideth the sea with his power, and by his understanding he -smiteth through the proud. - -26:13 By his spirit he hath garnished the heavens; his hand hath -formed the crooked serpent. - -26:14 Lo, these are parts of his ways: but how little a portion is -heard of him? but the thunder of his power who can understand? 27:1 -Moreover Job continued his parable, and said, 27:2 As God liveth, who -hath taken away my judgment; and the Almighty, who hath vexed my soul; -27:3 All the while my breath is in me, and the spirit of God is in my -nostrils; 27:4 My lips shall not speak wickedness, nor my tongue utter -deceit. - -27:5 God forbid that I should justify you: till I die I will not -remove mine integrity from me. - -27:6 My righteousness I hold fast, and will not let it go: my heart -shall not reproach me so long as I live. - -27:7 Let mine enemy be as the wicked, and he that riseth up against me -as the unrighteous. - -27:8 For what is the hope of the hypocrite, though he hath gained, -when God taketh away his soul? 27:9 Will God hear his cry when -trouble cometh upon him? 27:10 Will he delight himself in the -Almighty? will he always call upon God? 27:11 I will teach you by the -hand of God: that which is with the Almighty will I not conceal. - -27:12 Behold, all ye yourselves have seen it; why then are ye thus -altogether vain? 27:13 This is the portion of a wicked man with God, -and the heritage of oppressors, which they shall receive of the -Almighty. - -27:14 If his children be multiplied, it is for the sword: and his -offspring shall not be satisfied with bread. - -27:15 Those that remain of him shall be buried in death: and his -widows shall not weep. - -27:16 Though he heap up silver as the dust, and prepare raiment as the -clay; 27:17 He may prepare it, but the just shall put it on, and the -innocent shall divide the silver. - -27:18 He buildeth his house as a moth, and as a booth that the keeper -maketh. - -27:19 The rich man shall lie down, but he shall not be gathered: he -openeth his eyes, and he is not. - -27:20 Terrors take hold on him as waters, a tempest stealeth him away -in the night. - -27:21 The east wind carrieth him away, and he departeth: and as a -storm hurleth him out of his place. - -27:22 For God shall cast upon him, and not spare: he would fain flee -out of his hand. - -27:23 Men shall clap their hands at him, and shall hiss him out of his -place. - -28:1 Surely there is a vein for the silver, and a place for gold where -they fine it. - -28:2 Iron is taken out of the earth, and brass is molten out of the -stone. - -28:3 He setteth an end to darkness, and searcheth out all perfection: -the stones of darkness, and the shadow of death. - -28:4 The flood breaketh out from the inhabitant; even the waters -forgotten of the foot: they are dried up, they are gone away from men. - -28:5 As for the earth, out of it cometh bread: and under it is turned -up as it were fire. - -28:6 The stones of it are the place of sapphires: and it hath dust of -gold. - -28:7 There is a path which no fowl knoweth, and which the vulture's -eye hath not seen: 28:8 The lion's whelps have not trodden it, nor the -fierce lion passed by it. - -28:9 He putteth forth his hand upon the rock; he overturneth the -mountains by the roots. - -28:10 He cutteth out rivers among the rocks; and his eye seeth every -precious thing. - -28:11 He bindeth the floods from overflowing; and the thing that is -hid bringeth he forth to light. - -28:12 But where shall wisdom be found? and where is the place of -understanding? 28:13 Man knoweth not the price thereof; neither is it -found in the land of the living. - -28:14 The depth saith, It is not in me: and the sea saith, It is not -with me. - -28:15 It cannot be gotten for gold, neither shall silver be weighed -for the price thereof. - -28:16 It cannot be valued with the gold of Ophir, with the precious -onyx, or the sapphire. - -28:17 The gold and the crystal cannot equal it: and the exchange of it -shall not be for jewels of fine gold. - -28:18 No mention shall be made of coral, or of pearls: for the price -of wisdom is above rubies. - -28:19 The topaz of Ethiopia shall not equal it, neither shall it be -valued with pure gold. - -28:20 Whence then cometh wisdom? and where is the place of -understanding? 28:21 Seeing it is hid from the eyes of all living, -and kept close from the fowls of the air. - -28:22 Destruction and death say, We have heard the fame thereof with -our ears. - -28:23 God understandeth the way thereof, and he knoweth the place -thereof. - -28:24 For he looketh to the ends of the earth, and seeth under the -whole heaven; 28:25 To make the weight for the winds; and he weigheth -the waters by measure. - -28:26 When he made a decree for the rain, and a way for the lightning -of the thunder: 28:27 Then did he see it, and declare it; he prepared -it, yea, and searched it out. - -28:28 And unto man he said, Behold, the fear of the LORD, that is -wisdom; and to depart from evil is understanding. - -29:1 Moreover Job continued his parable, and said, 29:2 Oh that I were -as in months past, as in the days when God preserved me; 29:3 When his -candle shined upon my head, and when by his light I walked through -darkness; 29:4 As I was in the days of my youth, when the secret of -God was upon my tabernacle; 29:5 When the Almighty was yet with me, -when my children were about me; 29:6 When I washed my steps with -butter, and the rock poured me out rivers of oil; 29:7 When I went out -to the gate through the city, when I prepared my seat in the street! -29:8 The young men saw me, and hid themselves: and the aged arose, and -stood up. - -29:9 The princes refrained talking, and laid their hand on their -mouth. - -29:10 The nobles held their peace, and their tongue cleaved to the -roof of their mouth. - -29:11 When the ear heard me, then it blessed me; and when the eye saw -me, it gave witness to me: 29:12 Because I delivered the poor that -cried, and the fatherless, and him that had none to help him. - -29:13 The blessing of him that was ready to perish came upon me: and I -caused the widow's heart to sing for joy. - -29:14 I put on righteousness, and it clothed me: my judgment was as a -robe and a diadem. - -29:15 I was eyes to the blind, and feet was I to the lame. - -29:16 I was a father to the poor: and the cause which I knew not I -searched out. - -29:17 And I brake the jaws of the wicked, and plucked the spoil out of -his teeth. - -29:18 Then I said, I shall die in my nest, and I shall multiply my -days as the sand. - -29:19 My root was spread out by the waters, and the dew lay all night -upon my branch. - -29:20 My glory was fresh in me, and my bow was renewed in my hand. - -29:21 Unto me men gave ear, and waited, and kept silence at my -counsel. - -29:22 After my words they spake not again; and my speech dropped upon -them. - -29:23 And they waited for me as for the rain; and they opened their -mouth wide as for the latter rain. - -29:24 If I laughed on them, they believed it not; and the light of my -countenance they cast not down. - -29:25 I chose out their way, and sat chief, and dwelt as a king in the -army, as one that comforteth the mourners. - -30:1 But now they that are younger than I have me in derision, whose -fathers I would have disdained to have set with the dogs of my flock. - -30:2 Yea, whereto might the strength of their hands profit me, in whom -old age was perished? 30:3 For want and famine they were solitary; -fleeing into the wilderness in former time desolate and waste. - -30:4 Who cut up mallows by the bushes, and juniper roots for their -meat. - -30:5 They were driven forth from among men, (they cried after them as -after a thief;) 30:6 To dwell in the cliffs of the valleys, in caves -of the earth, and in the rocks. - -30:7 Among the bushes they brayed; under the nettles they were -gathered together. - -30:8 They were children of fools, yea, children of base men: they were -viler than the earth. - -30:9 And now am I their song, yea, I am their byword. - -30:10 They abhor me, they flee far from me, and spare not to spit in -my face. - -30:11 Because he hath loosed my cord, and afflicted me, they have also -let loose the bridle before me. - -30:12 Upon my right hand rise the youth; they push away my feet, and -they raise up against me the ways of their destruction. - -30:13 They mar my path, they set forward my calamity, they have no -helper. - -30:14 They came upon me as a wide breaking in of waters: in the -desolation they rolled themselves upon me. - -30:15 Terrors are turned upon me: they pursue my soul as the wind: and -my welfare passeth away as a cloud. - -30:16 And now my soul is poured out upon me; the days of affliction -have taken hold upon me. - -30:17 My bones are pierced in me in the night season: and my sinews -take no rest. - -30:18 By the great force of my disease is my garment changed: it -bindeth me about as the collar of my coat. - -30:19 He hath cast me into the mire, and I am become like dust and -ashes. - -30:20 I cry unto thee, and thou dost not hear me: I stand up, and thou -regardest me not. - -30:21 Thou art become cruel to me: with thy strong hand thou opposest -thyself against me. - -30:22 Thou liftest me up to the wind; thou causest me to ride upon it, -and dissolvest my substance. - -30:23 For I know that thou wilt bring me to death, and to the house -appointed for all living. - -30:24 Howbeit he will not stretch out his hand to the grave, though -they cry in his destruction. - -30:25 Did not I weep for him that was in trouble? was not my soul -grieved for the poor? 30:26 When I looked for good, then evil came -unto me: and when I waited for light, there came darkness. - -30:27 My bowels boiled, and rested not: the days of affliction -prevented me. - -30:28 I went mourning without the sun: I stood up, and I cried in the -congregation. - -30:29 I am a brother to dragons, and a companion to owls. - -30:30 My skin is black upon me, and my bones are burned with heat. - -30:31 My harp also is turned to mourning, and my organ into the voice -of them that weep. - -31:1 I made a covenant with mine eyes; why then should I think upon a -maid? 31:2 For what portion of God is there from above? and what -inheritance of the Almighty from on high? 31:3 Is not destruction to -the wicked? and a strange punishment to the workers of iniquity? 31:4 -Doth not he see my ways, and count all my steps? 31:5 If I have -walked with vanity, or if my foot hath hasted to deceit; 31:6 Let me -be weighed in an even balance that God may know mine integrity. - -31:7 If my step hath turned out of the way, and mine heart walked -after mine eyes, and if any blot hath cleaved to mine hands; 31:8 Then -let me sow, and let another eat; yea, let my offspring be rooted out. - -31:9 If mine heart have been deceived by a woman, or if I have laid -wait at my neighbour's door; 31:10 Then let my wife grind unto -another, and let others bow down upon her. - -31:11 For this is an heinous crime; yea, it is an iniquity to be -punished by the judges. - -31:12 For it is a fire that consumeth to destruction, and would root -out all mine increase. - -31:13 If I did despise the cause of my manservant or of my -maidservant, when they contended with me; 31:14 What then shall I do -when God riseth up? and when he visiteth, what shall I answer him? -31:15 Did not he that made me in the womb make him? and did not one -fashion us in the womb? 31:16 If I have withheld the poor from their -desire, or have caused the eyes of the widow to fail; 31:17 Or have -eaten my morsel myself alone, and the fatherless hath not eaten -thereof; 31:18 (For from my youth he was brought up with me, as with a -father, and I have guided her from my mother's womb;) 31:19 If I have -seen any perish for want of clothing, or any poor without covering; -31:20 If his loins have not blessed me, and if he were not warmed with -the fleece of my sheep; 31:21 If I have lifted up my hand against the -fatherless, when I saw my help in the gate: 31:22 Then let mine arm -fall from my shoulder blade, and mine arm be broken from the bone. - -31:23 For destruction from God was a terror to me, and by reason of -his highness I could not endure. - -31:24 If I have made gold my hope, or have said to the fine gold, Thou -art my confidence; 31:25 If I rejoice because my wealth was great, and -because mine hand had gotten much; 31:26 If I beheld the sun when it -shined, or the moon walking in brightness; 31:27 And my heart hath -been secretly enticed, or my mouth hath kissed my hand: 31:28 This -also were an iniquity to be punished by the judge: for I should have -denied the God that is above. - -31:29 If I rejoice at the destruction of him that hated me, or lifted -up myself when evil found him: 31:30 Neither have I suffered my mouth -to sin by wishing a curse to his soul. - -31:31 If the men of my tabernacle said not, Oh that we had of his -flesh! we cannot be satisfied. - -31:32 The stranger did not lodge in the street: but I opened my doors -to the traveller. - -31:33 If I covered my transgressions as Adam, by hiding mine iniquity -in my bosom: 31:34 Did I fear a great multitude, or did the contempt -of families terrify me, that I kept silence, and went not out of the -door? 31:35 Oh that one would hear me! behold, my desire is, that the -Almighty would answer me, and that mine adversary had written a book. - -31:36 Surely I would take it upon my shoulder, and bind it as a crown -to me. - -31:37 I would declare unto him the number of my steps; as a prince -would I go near unto him. - -31:38 If my land cry against me, or that the furrows likewise thereof -complain; 31:39 If I have eaten the fruits thereof without money, or -have caused the owners thereof to lose their life: 31:40 Let thistles -grow instead of wheat, and cockle instead of barley. - -The words of Job are ended. - -32:1 So these three men ceased to answer Job, because he was righteous -in his own eyes. - -32:2 Then was kindled the wrath of Elihu the son of Barachel the -Buzite, of the kindred of Ram: against Job was his wrath kindled, -because he justified himself rather than God. - -32:3 Also against his three friends was his wrath kindled, because -they had found no answer, and yet had condemned Job. - -32:4 Now Elihu had waited till Job had spoken, because they were elder -than he. - -32:5 When Elihu saw that there was no answer in the mouth of these -three men, then his wrath was kindled. - -32:6 And Elihu the son of Barachel the Buzite answered and said, I am -young, and ye are very old; wherefore I was afraid, and durst not shew -you mine opinion. - -32:7 I said, Days should speak, and multitude of years should teach -wisdom. - -32:8 But there is a spirit in man: and the inspiration of the Almighty -giveth them understanding. - -32:9 Great men are not always wise: neither do the aged understand -judgment. - -32:10 Therefore I said, Hearken to me; I also will shew mine opinion. - -32:11 Behold, I waited for your words; I gave ear to your reasons, -whilst ye searched out what to say. - -32:12 Yea, I attended unto you, and, behold, there was none of you -that convinced Job, or that answered his words: 32:13 Lest ye should -say, We have found out wisdom: God thrusteth him down, not man. - -32:14 Now he hath not directed his words against me: neither will I -answer him with your speeches. - -32:15 They were amazed, they answered no more: they left off speaking. - -32:16 When I had waited, (for they spake not, but stood still, and -answered no more;) 32:17 I said, I will answer also my part, I also -will shew mine opinion. - -32:18 For I am full of matter, the spirit within me constraineth me. - -32:19 Behold, my belly is as wine which hath no vent; it is ready to -burst like new bottles. - -32:20 I will speak, that I may be refreshed: I will open my lips and -answer. - -32:21 Let me not, I pray you, accept any man's person, neither let me -give flattering titles unto man. - -32:22 For I know not to give flattering titles; in so doing my maker -would soon take me away. - -33:1 Wherefore, Job, I pray thee, hear my speeches, and hearken to all -my words. - -33:2 Behold, now I have opened my mouth, my tongue hath spoken in my -mouth. - -33:3 My words shall be of the uprightness of my heart: and my lips -shall utter knowledge clearly. - -33:4 The spirit of God hath made me, and the breath of the Almighty -hath given me life. - -33:5 If thou canst answer me, set thy words in order before me, stand -up. - -33:6 Behold, I am according to thy wish in God's stead: I also am -formed out of the clay. - -33:7 Behold, my terror shall not make thee afraid, neither shall my -hand be heavy upon thee. - -33:8 Surely thou hast spoken in mine hearing, and I have heard the -voice of thy words, saying, 33:9 I am clean without transgression, I -am innocent; neither is there iniquity in me. - -33:10 Behold, he findeth occasions against me, he counteth me for his -enemy, 33:11 He putteth my feet in the stocks, he marketh all my -paths. - -33:12 Behold, in this thou art not just: I will answer thee, that God -is greater than man. - -33:13 Why dost thou strive against him? for he giveth not account of -any of his matters. - -33:14 For God speaketh once, yea twice, yet man perceiveth it not. - -33:15 In a dream, in a vision of the night, when deep sleep falleth -upon men, in slumberings upon the bed; 33:16 Then he openeth the ears -of men, and sealeth their instruction, 33:17 That he may withdraw man -from his purpose, and hide pride from man. - -33:18 He keepeth back his soul from the pit, and his life from -perishing by the sword. - -33:19 He is chastened also with pain upon his bed, and the multitude -of his bones with strong pain: 33:20 So that his life abhorreth bread, -and his soul dainty meat. - -33:21 His flesh is consumed away, that it cannot be seen; and his -bones that were not seen stick out. - -33:22 Yea, his soul draweth near unto the grave, and his life to the -destroyers. - -33:23 If there be a messenger with him, an interpreter, one among a -thousand, to shew unto man his uprightness: 33:24 Then he is gracious -unto him, and saith, Deliver him from going down to the pit: I have -found a ransom. - -33:25 His flesh shall be fresher than a child's: he shall return to -the days of his youth: 33:26 He shall pray unto God, and he will be -favourable unto him: and he shall see his face with joy: for he will -render unto man his righteousness. - -33:27 He looketh upon men, and if any say, I have sinned, and -perverted that which was right, and it profited me not; 33:28 He will -deliver his soul from going into the pit, and his life shall see the -light. - -33:29 Lo, all these things worketh God oftentimes with man, 33:30 To -bring back his soul from the pit, to be enlightened with the light of -the living. - -33:31 Mark well, O Job, hearken unto me: hold thy peace, and I will -speak. - -33:32 If thou hast anything to say, answer me: speak, for I desire to -justify thee. - -33:33 If not, hearken unto me: hold thy peace, and I shall teach thee -wisdom. - -34:1 Furthermore Elihu answered and said, 34:2 Hear my words, O ye -wise men; and give ear unto me, ye that have knowledge. - -34:3 For the ear trieth words, as the mouth tasteth meat. - -34:4 Let us choose to us judgment: let us know among ourselves what is -good. - -34:5 For Job hath said, I am righteous: and God hath taken away my -judgment. - -34:6 Should I lie against my right? my wound is incurable without -transgression. - -34:7 What man is like Job, who drinketh up scorning like water? 34:8 -Which goeth in company with the workers of iniquity, and walketh with -wicked men. - -34:9 For he hath said, It profiteth a man nothing that he should -delight himself with God. - -34:10 Therefore hearken unto me ye men of understanding: far be it -from God, that he should do wickedness; and from the Almighty, that he -should commit iniquity. - -34:11 For the work of a man shall he render unto him, and cause every -man to find according to his ways. - -34:12 Yea, surely God will not do wickedly, neither will the Almighty -pervert judgment. - -34:13 Who hath given him a charge over the earth? or who hath disposed -the whole world? 34:14 If he set his heart upon man, if he gather -unto himself his spirit and his breath; 34:15 All flesh shall perish -together, and man shall turn again unto dust. - -34:16 If now thou hast understanding, hear this: hearken to the voice -of my words. - -34:17 Shall even he that hateth right govern? and wilt thou condemn -him that is most just? 34:18 Is it fit to say to a king, Thou art -wicked? and to princes, Ye are ungodly? 34:19 How much less to him -that accepteth not the persons of princes, nor regardeth the rich more -than the poor? for they all are the work of his hands. - -34:20 In a moment shall they die, and the people shall be troubled at -midnight, and pass away: and the mighty shall be taken away without -hand. - -34:21 For his eyes are upon the ways of man, and he seeth all his -goings. - -34:22 There is no darkness, nor shadow of death, where the workers of -iniquity may hide themselves. - -34:23 For he will not lay upon man more than right; that he should -enter into judgment with God. - -34:24 He shall break in pieces mighty men without number, and set -others in their stead. - -34:25 Therefore he knoweth their works, and he overturneth them in the -night, so that they are destroyed. - -34:26 He striketh them as wicked men in the open sight of others; -34:27 Because they turned back from him, and would not consider any of -his ways: 34:28 So that they cause the cry of the poor to come unto -him, and he heareth the cry of the afflicted. - -34:29 When he giveth quietness, who then can make trouble? and when he -hideth his face, who then can behold him? whether it be done against a -nation, or against a man only: 34:30 That the hypocrite reign not, -lest the people be ensnared. - -34:31 Surely it is meet to be said unto God, I have borne -chastisement, I will not offend any more: 34:32 That which I see not -teach thou me: if I have done iniquity, I will do no more. - -34:33 Should it be according to thy mind? he will recompense it, -whether thou refuse, or whether thou choose; and not I: therefore -speak what thou knowest. - -34:34 Let men of understanding tell me, and let a wise man hearken -unto me. - -34:35 Job hath spoken without knowledge, and his words were without -wisdom. - -34:36 My desire is that Job may be tried unto the end because of his -answers for wicked men. - -34:37 For he addeth rebellion unto his sin, he clappeth his hands -among us, and multiplieth his words against God. - -35:1 Elihu spake moreover, and said, 35:2 Thinkest thou this to be -right, that thou saidst, My righteousness is more than God's? 35:3 -For thou saidst, What advantage will it be unto thee? and, What profit -shall I have, if I be cleansed from my sin? 35:4 I will answer thee, -and thy companions with thee. - -35:5 Look unto the heavens, and see; and behold the clouds which are -higher than thou. - -35:6 If thou sinnest, what doest thou against him? or if thy -transgressions be multiplied, what doest thou unto him? 35:7 If thou -be righteous, what givest thou him? or what receiveth he of thine -hand? 35:8 Thy wickedness may hurt a man as thou art; and thy -righteousness may profit the son of man. - -35:9 By reason of the multitude of oppressions they make the oppressed -to cry: they cry out by reason of the arm of the mighty. - -35:10 But none saith, Where is God my maker, who giveth songs in the -night; 35:11 Who teacheth us more than the beasts of the earth, and -maketh us wiser than the fowls of heaven? 35:12 There they cry, but -none giveth answer, because of the pride of evil men. - -35:13 Surely God will not hear vanity, neither will the Almighty -regard it. - -35:14 Although thou sayest thou shalt not see him, yet judgment is -before him; therefore trust thou in him. - -35:15 But now, because it is not so, he hath visited in his anger; yet -he knoweth it not in great extremity: 35:16 Therefore doth Job open -his mouth in vain; he multiplieth words without knowledge. - -36:1 Elihu also proceeded, and said, 36:2 Suffer me a little, and I -will shew thee that I have yet to speak on God's behalf. - -36:3 I will fetch my knowledge from afar, and will ascribe -righteousness to my Maker. - -36:4 For truly my words shall not be false: he that is perfect in -knowledge is with thee. - -36:5 Behold, God is mighty, and despiseth not any: he is mighty in -strength and wisdom. - -36:6 He preserveth not the life of the wicked: but giveth right to the -poor. - -36:7 He withdraweth not his eyes from the righteous: but with kings -are they on the throne; yea, he doth establish them for ever, and they -are exalted. - -36:8 And if they be bound in fetters, and be holden in cords of -affliction; 36:9 Then he sheweth them their work, and their -transgressions that they have exceeded. - -36:10 He openeth also their ear to discipline, and commandeth that -they return from iniquity. - -36:11 If they obey and serve him, they shall spend their days in -prosperity, and their years in pleasures. - -36:12 But if they obey not, they shall perish by the sword, and they -shall die without knowledge. - -36:13 But the hypocrites in heart heap up wrath: they cry not when he -bindeth them. - -36:14 They die in youth, and their life is among the unclean. - -36:15 He delivereth the poor in his affliction, and openeth their ears -in oppression. - -36:16 Even so would he have removed thee out of the strait into a -broad place, where there is no straitness; and that which should be -set on thy table should be full of fatness. - -36:17 But thou hast fulfilled the judgment of the wicked: judgment and -justice take hold on thee. - -36:18 Because there is wrath, beware lest he take thee away with his -stroke: then a great ransom cannot deliver thee. - -36:19 Will he esteem thy riches? no, not gold, nor all the forces of -strength. - -36:20 Desire not the night, when people are cut off in their place. - -36:21 Take heed, regard not iniquity: for this hast thou chosen rather -than affliction. - -36:22 Behold, God exalteth by his power: who teacheth like him? 36:23 -Who hath enjoined him his way? or who can say, Thou hast wrought -iniquity? 36:24 Remember that thou magnify his work, which men -behold. - -36:25 Every man may see it; man may behold it afar off. - -36:26 Behold, God is great, and we know him not, neither can the -number of his years be searched out. - -36:27 For he maketh small the drops of water: they pour down rain -according to the vapour thereof: 36:28 Which the clouds do drop and -distil upon man abundantly. - -36:29 Also can any understand the spreadings of the clouds, or the -noise of his tabernacle? 36:30 Behold, he spreadeth his light upon -it, and covereth the bottom of the sea. - -36:31 For by them judgeth he the people; he giveth meat in abundance. - -36:32 With clouds he covereth the light; and commandeth it not to -shine by the cloud that cometh betwixt. - -36:33 The noise thereof sheweth concerning it, the cattle also -concerning the vapour. - -37:1 At this also my heart trembleth, and is moved out of his place. - -37:2 Hear attentively the noise of his voice, and the sound that goeth -out of his mouth. - -37:3 He directeth it under the whole heaven, and his lightning unto -the ends of the earth. - -37:4 After it a voice roareth: he thundereth with the voice of his -excellency; and he will not stay them when his voice is heard. - -37:5 God thundereth marvellously with his voice; great things doeth -he, which we cannot comprehend. - -37:6 For he saith to the snow, Be thou on the earth; likewise to the -small rain, and to the great rain of his strength. - -37:7 He sealeth up the hand of every man; that all men may know his -work. - -37:8 Then the beasts go into dens, and remain in their places. - -37:9 Out of the south cometh the whirlwind: and cold out of the north. - -37:10 By the breath of God frost is given: and the breadth of the -waters is straitened. - -37:11 Also by watering he wearieth the thick cloud: he scattereth his -bright cloud: 37:12 And it is turned round about by his counsels: that -they may do whatsoever he commandeth them upon the face of the world -in the earth. - -37:13 He causeth it to come, whether for correction, or for his land, -or for mercy. - -37:14 Hearken unto this, O Job: stand still, and consider the wondrous -works of God. - -37:15 Dost thou know when God disposed them, and caused the light of -his cloud to shine? 37:16 Dost thou know the balancings of the -clouds, the wondrous works of him which is perfect in knowledge? -37:17 How thy garments are warm, when he quieteth the earth by the -south wind? 37:18 Hast thou with him spread out the sky, which is -strong, and as a molten looking glass? 37:19 Teach us what we shall -say unto him; for we cannot order our speech by reason of darkness. - -37:20 Shall it be told him that I speak? if a man speak, surely he -shall be swallowed up. - -37:21 And now men see not the bright light which is in the clouds: but -the wind passeth, and cleanseth them. - -37:22 Fair weather cometh out of the north: with God is terrible -majesty. - -37:23 Touching the Almighty, we cannot find him out: he is excellent -in power, and in judgment, and in plenty of justice: he will not -afflict. - -37:24 Men do therefore fear him: he respecteth not any that are wise -of heart. - -38:1 Then the LORD answered Job out of the whirlwind, and said, 38:2 -Who is this that darkeneth counsel by words without knowledge? 38:3 -Gird up now thy loins like a man; for I will demand of thee, and -answer thou me. - -38:4 Where wast thou when I laid the foundations of the earth? -declare, if thou hast understanding. - -38:5 Who hath laid the measures thereof, if thou knowest? or who hath -stretched the line upon it? 38:6 Whereupon are the foundations -thereof fastened? or who laid the corner stone thereof; 38:7 When the -morning stars sang together, and all the sons of God shouted for joy? -38:8 Or who shut up the sea with doors, when it brake forth, as if it -had issued out of the womb? 38:9 When I made the cloud the garment -thereof, and thick darkness a swaddlingband for it, 38:10 And brake up -for it my decreed place, and set bars and doors, 38:11 And said, -Hitherto shalt thou come, but no further: and here shall thy proud -waves be stayed? 38:12 Hast thou commanded the morning since thy -days; and caused the dayspring to know his place; 38:13 That it might -take hold of the ends of the earth, that the wicked might be shaken -out of it? 38:14 It is turned as clay to the seal; and they stand as -a garment. - -38:15 And from the wicked their light is withholden, and the high arm -shall be broken. - -38:16 Hast thou entered into the springs of the sea? or hast thou -walked in the search of the depth? 38:17 Have the gates of death been -opened unto thee? or hast thou seen the doors of the shadow of death? -38:18 Hast thou perceived the breadth of the earth? declare if thou -knowest it all. - -38:19 Where is the way where light dwelleth? and as for darkness, -where is the place thereof, 38:20 That thou shouldest take it to the -bound thereof, and that thou shouldest know the paths to the house -thereof? 38:21 Knowest thou it, because thou wast then born? or -because the number of thy days is great? 38:22 Hast thou entered into -the treasures of the snow? or hast thou seen the treasures of the -hail, 38:23 Which I have reserved against the time of trouble, against -the day of battle and war? 38:24 By what way is the light parted, -which scattereth the east wind upon the earth? 38:25 Who hath divided -a watercourse for the overflowing of waters, or a way for the -lightning of thunder; 38:26 To cause it to rain on the earth, where no -man is; on the wilderness, wherein there is no man; 38:27 To satisfy -the desolate and waste ground; and to cause the bud of the tender herb -to spring forth? 38:28 Hath the rain a father? or who hath begotten -the drops of dew? 38:29 Out of whose womb came the ice? and the hoary -frost of heaven, who hath gendered it? 38:30 The waters are hid as -with a stone, and the face of the deep is frozen. - -38:31 Canst thou bind the sweet influences of Pleiades, or loose the -bands of Orion? 38:32 Canst thou bring forth Mazzaroth in his season? -or canst thou guide Arcturus with his sons? 38:33 Knowest thou the -ordinances of heaven? canst thou set the dominion thereof in the -earth? 38:34 Canst thou lift up thy voice to the clouds, that -abundance of waters may cover thee? 38:35 Canst thou send lightnings, -that they may go and say unto thee, Here we are? 38:36 Who hath put -wisdom in the inward parts? or who hath given understanding to the -heart? 38:37 Who can number the clouds in wisdom? or who can stay the -bottles of heaven, 38:38 When the dust groweth into hardness, and the -clods cleave fast together? 38:39 Wilt thou hunt the prey for the -lion? or fill the appetite of the young lions, 38:40 When they couch -in their dens, and abide in the covert to lie in wait? 38:41 Who -provideth for the raven his food? when his young ones cry unto God, -they wander for lack of meat. - -39:1 Knowest thou the time when the wild goats of the rock bring -forth? or canst thou mark when the hinds do calve? 39:2 Canst thou -number the months that they fulfil? or knowest thou the time when they -bring forth? 39:3 They bow themselves, they bring forth their young -ones, they cast out their sorrows. - -39:4 Their young ones are in good liking, they grow up with corn; they -go forth, and return not unto them. - -39:5 Who hath sent out the wild ass free? or who hath loosed the bands -of the wild ass? 39:6 Whose house I have made the wilderness, and the -barren land his dwellings. - -39:7 He scorneth the multitude of the city, neither regardeth he the -crying of the driver. - -39:8 The range of the mountains is his pasture, and he searcheth after -every green thing. - -39:9 Will the unicorn be willing to serve thee, or abide by thy crib? -39:10 Canst thou bind the unicorn with his band in the furrow? or will -he harrow the valleys after thee? 39:11 Wilt thou trust him, because -his strength is great? or wilt thou leave thy labour to him? 39:12 -Wilt thou believe him, that he will bring home thy seed, and gather it -into thy barn? 39:13 Gavest thou the goodly wings unto the peacocks? -or wings and feathers unto the ostrich? 39:14 Which leaveth her eggs -in the earth, and warmeth them in dust, 39:15 And forgetteth that the -foot may crush them, or that the wild beast may break them. - -39:16 She is hardened against her young ones, as though they were not -her's: her labour is in vain without fear; 39:17 Because God hath -deprived her of wisdom, neither hath he imparted to her understanding. - -39:18 What time she lifteth up herself on high, she scorneth the horse -and his rider. - -39:19 Hast thou given the horse strength? hast thou clothed his neck -with thunder? 39:20 Canst thou make him afraid as a grasshopper? the -glory of his nostrils is terrible. - -39:21 He paweth in the valley, and rejoiceth in his strength: he goeth -on to meet the armed men. - -39:22 He mocketh at fear, and is not affrighted; neither turneth he -back from the sword. - -39:23 The quiver rattleth against him, the glittering spear and the -shield. - -39:24 He swalloweth the ground with fierceness and rage: neither -believeth he that it is the sound of the trumpet. - -39:25 He saith among the trumpets, Ha, ha; and he smelleth the battle -afar off, the thunder of the captains, and the shouting. - -39:26 Doth the hawk fly by thy wisdom, and stretch her wings toward -the south? 39:27 Doth the eagle mount up at thy command, and make her -nest on high? 39:28 She dwelleth and abideth on the rock, upon the -crag of the rock, and the strong place. - -39:29 From thence she seeketh the prey, and her eyes behold afar off. - -39:30 Her young ones also suck up blood: and where the slain are, -there is she. - -40:1 Moreover the LORD answered Job, and said, 40:2 Shall he that -contendeth with the Almighty instruct him? he that reproveth God, let -him answer it. - -40:3 Then Job answered the LORD, and said, 40:4 Behold, I am vile; -what shall I answer thee? I will lay mine hand upon my mouth. - -40:5 Once have I spoken; but I will not answer: yea, twice; but I will -proceed no further. - -40:6 Then answered the LORD unto Job out of the whirlwind, and said, -40:7 Gird up thy loins now like a man: I will demand of thee, and -declare thou unto me. - -40:8 Wilt thou also disannul my judgment? wilt thou condemn me, that -thou mayest be righteous? 40:9 Hast thou an arm like God? or canst -thou thunder with a voice like him? 40:10 Deck thyself now with -majesty and excellency; and array thyself with glory and beauty. - -40:11 Cast abroad the rage of thy wrath: and behold every one that is -proud, and abase him. - -40:12 Look on every one that is proud, and bring him low; and tread -down the wicked in their place. - -40:13 Hide them in the dust together; and bind their faces in secret. - -40:14 Then will I also confess unto thee that thine own right hand can -save thee. - -40:15 Behold now behemoth, which I made with thee; he eateth grass as -an ox. - -40:16 Lo now, his strength is in his loins, and his force is in the -navel of his belly. - -40:17 He moveth his tail like a cedar: the sinews of his stones are -wrapped together. - -40:18 His bones are as strong pieces of brass; his bones are like bars -of iron. - -40:19 He is the chief of the ways of God: he that made him can make -his sword to approach unto him. - -40:20 Surely the mountains bring him forth food, where all the beasts -of the field play. - -40:21 He lieth under the shady trees, in the covert of the reed, and -fens. - -40:22 The shady trees cover him with their shadow; the willows of the -brook compass him about. - -40:23 Behold, he drinketh up a river, and hasteth not: he trusteth -that he can draw up Jordan into his mouth. - -40:24 He taketh it with his eyes: his nose pierceth through snares. - -41:1 Canst thou draw out leviathan with an hook? or his tongue with a -cord which thou lettest down? 41:2 Canst thou put an hook into his -nose? or bore his jaw through with a thorn? 41:3 Will he make many -supplications unto thee? will he speak soft words unto thee? 41:4 -Will he make a covenant with thee? wilt thou take him for a servant -for ever? 41:5 Wilt thou play with him as with a bird? or wilt thou -bind him for thy maidens? 41:6 Shall the companions make a banquet of -him? shall they part him among the merchants? 41:7 Canst thou fill -his skin with barbed irons? or his head with fish spears? 41:8 Lay -thine hand upon him, remember the battle, do no more. - -41:9 Behold, the hope of him is in vain: shall not one be cast down -even at the sight of him? 41:10 None is so fierce that dare stir him -up: who then is able to stand before me? 41:11 Who hath prevented me, -that I should repay him? whatsoever is under the whole heaven is mine. - -41:12 I will not conceal his parts, nor his power, nor his comely -proportion. - -41:13 Who can discover the face of his garment? or who can come to him -with his double bridle? 41:14 Who can open the doors of his face? his -teeth are terrible round about. - -41:15 His scales are his pride, shut up together as with a close seal. - -41:16 One is so near to another, that no air can come between them. - -41:17 They are joined one to another, they stick together, that they -cannot be sundered. - -41:18 By his neesings a light doth shine, and his eyes are like the -eyelids of the morning. - -41:19 Out of his mouth go burning lamps, and sparks of fire leap out. - -41:20 Out of his nostrils goeth smoke, as out of a seething pot or -caldron. - -41:21 His breath kindleth coals, and a flame goeth out of his mouth. - -41:22 In his neck remaineth strength, and sorrow is turned into joy -before him. - -41:23 The flakes of his flesh are joined together: they are firm in -themselves; they cannot be moved. - -41:24 His heart is as firm as a stone; yea, as hard as a piece of the -nether millstone. - -41:25 When he raiseth up himself, the mighty are afraid: by reason of -breakings they purify themselves. - -41:26 The sword of him that layeth at him cannot hold: the spear, the -dart, nor the habergeon. - -41:27 He esteemeth iron as straw, and brass as rotten wood. - -41:28 The arrow cannot make him flee: slingstones are turned with him -into stubble. - -41:29 Darts are counted as stubble: he laugheth at the shaking of a -spear. - -41:30 Sharp stones are under him: he spreadeth sharp pointed things -upon the mire. - -41:31 He maketh the deep to boil like a pot: he maketh the sea like a -pot of ointment. - -41:32 He maketh a path to shine after him; one would think the deep to -be hoary. - -41:33 Upon earth there is not his like, who is made without fear. - -41:34 He beholdeth all high things: he is a king over all the children -of pride. - -42:1 Then Job answered the LORD, and said, 42:2 I know that thou canst -do every thing, and that no thought can be withholden from thee. - -42:3 Who is he that hideth counsel without knowledge? therefore have I -uttered that I understood not; things too wonderful for me, which I -knew not. - -42:4 Hear, I beseech thee, and I will speak: I will demand of thee, -and declare thou unto me. - -42:5 I have heard of thee by the hearing of the ear: but now mine eye -seeth thee. - -42:6 Wherefore I abhor myself, and repent in dust and ashes. - -42:7 And it was so, that after the LORD had spoken these words unto -Job, the LORD said to Eliphaz the Temanite, My wrath is kindled -against thee, and against thy two friends: for ye have not spoken of -me the thing that is right, as my servant Job hath. - -42:8 Therefore take unto you now seven bullocks and seven rams, and go -to my servant Job, and offer up for yourselves a burnt offering; and -my servant Job shall pray for you: for him will I accept: lest I deal -with you after your folly, in that ye have not spoken of me the thing -which is right, like my servant Job. - -42:9 So Eliphaz the Temanite and Bildad the Shuhite and Zophar the -Naamathite went, and did according as the LORD commanded them: the -LORD also accepted Job. - -42:10 And the LORD turned the captivity of Job, when he prayed for his -friends: also the LORD gave Job twice as much as he had before. - -42:11 Then came there unto him all his brethren, and all his sisters, -and all they that had been of his acquaintance before, and did eat -bread with him in his house: and they bemoaned him, and comforted him -over all the evil that the LORD had brought upon him: every man also -gave him a piece of money, and every one an earring of gold. - -42:12 So the LORD blessed the latter end of Job more than his -beginning: for he had fourteen thousand sheep, and six thousand -camels, and a thousand yoke of oxen, and a thousand she asses. - -42:13 He had also seven sons and three daughters. - -42:14 And he called the name of the first, Jemima; and the name of the -second, Kezia; and the name of the third, Kerenhappuch. - -42:15 And in all the land were no women found so fair as the daughters -of Job: and their father gave them inheritance among their brethren. - -42:16 After this lived Job an hundred and forty years, and saw his -sons, and his sons' sons, even four generations. - -42:17 So Job died, being old and full of days. - - - - -The Book of Psalms - - -1:1 Blessed is the man that walketh not in the counsel of the ungodly, -nor standeth in the way of sinners, nor sitteth in the seat of the -scornful. - -1:2 But his delight is in the law of the LORD; and in his law doth he -meditate day and night. - -1:3 And he shall be like a tree planted by the rivers of water, that -bringeth forth his fruit in his season; his leaf also shall not -wither; and whatsoever he doeth shall prosper. - -1:4 The ungodly are not so: but are like the chaff which the wind -driveth away. - -1:5 Therefore the ungodly shall not stand in the judgment, nor sinners -in the congregation of the righteous. - -1:6 For the LORD knoweth the way of the righteous: but the way of the -ungodly shall perish. - - - -2:1 Why do the heathen rage, and the people imagine a vain thing? - -2:2 The kings of the earth set themselves, and the rulers take counsel -together, against the LORD, and against his anointed, saying, - -2:3 Let us break their bands asunder, and cast away their cords from -us. - -2:4 He that sitteth in the heavens shall laugh: the LORD shall have -them in derision. - -2:5 Then shall he speak unto them in his wrath, and vex them in his -sore displeasure. - -2:6 Yet have I set my king upon my holy hill of Zion. - -2:7 I will declare the decree: the LORD hath said unto me, Thou art my -Son; this day have I begotten thee. - -2:8 Ask of me, and I shall give thee the heathen for thine -inheritance, and the uttermost parts of the earth for thy possession. - -2:9 Thou shalt break them with a rod of iron; thou shalt dash them in -pieces like a potter's vessel. - -2:10 Be wise now therefore, O ye kings: be instructed, ye judges of -the earth. - -2:11 Serve the LORD with fear, and rejoice with trembling. - -2:12 Kiss the Son, lest he be angry, and ye perish from the way, when -his wrath is kindled but a little. Blessed are all they that put their -trust in him. - - - -3:1 Lord, how are they increased that trouble me! many are they that -rise up against me. - -3:2 Many there be which say of my soul, There is no help for him in -God. - -Selah. - -3:3 But thou, O LORD, art a shield for me; my glory, and the lifter up -of mine head. - -3:4 I cried unto the LORD with my voice, and he heard me out of his -holy hill. Selah. - -3:5 I laid me down and slept; I awaked; for the LORD sustained me. - -3:6 I will not be afraid of ten thousands of people, that have set -themselves against me round about. - -3:7 Arise, O LORD; save me, O my God: for thou hast smitten all mine -enemies upon the cheek bone; thou hast broken the teeth of the -ungodly. - -3:8 Salvation belongeth unto the LORD: thy blessing is upon thy -people. - -Selah. - - - -4:1 Hear me when I call, O God of my righteousness: thou hast enlarged -me when I was in distress; have mercy upon me, and hear my prayer. - -4:2 O ye sons of men, how long will ye turn my glory into shame? how -long will ye love vanity, and seek after leasing? Selah. - -4:3 But know that the LORD hath set apart him that is godly for -himself: the LORD will hear when I call unto him. - -4:4 Stand in awe, and sin not: commune with your own heart upon your -bed, and be still. Selah. - -4:5 Offer the sacrifices of righteousness, and put your trust in the -LORD. - -4:6 There be many that say, Who will shew us any good? LORD, lift thou -up the light of thy countenance upon us. - -4:7 Thou hast put gladness in my heart, more than in the time that -their corn and their wine increased. - -4:8 I will both lay me down in peace, and sleep: for thou, LORD, only -makest me dwell in safety. - - - -5:1 Give ear to my words, O LORD, consider my meditation. - -5:2 Hearken unto the voice of my cry, my King, and my God: for unto -thee will I pray. - -5:3 My voice shalt thou hear in the morning, O LORD; in the morning -will I direct my prayer unto thee, and will look up. - -5:4 For thou art not a God that hath pleasure in wickedness: neither -shall evil dwell with thee. - -5:5 The foolish shall not stand in thy sight: thou hatest all workers -of iniquity. - -5:6 Thou shalt destroy them that speak leasing: the LORD will abhor -the bloody and deceitful man. - -5:7 But as for me, I will come into thy house in the multitude of thy -mercy: and in thy fear will I worship toward thy holy temple. - -5:8 Lead me, O LORD, in thy righteousness because of mine enemies; -make thy way straight before my face. - -5:9 For there is no faithfulness in their mouth; their inward part is -very wickedness; their throat is an open sepulchre; they flatter with -their tongue. - -5:10 Destroy thou them, O God; let them fall by their own counsels; -cast them out in the multitude of their transgressions; for they have -rebelled against thee. - -5:11 But let all those that put their trust in thee rejoice: let them -ever shout for joy, because thou defendest them: let them also that -love thy name be joyful in thee. - -5:12 For thou, LORD, wilt bless the righteous; with favour wilt thou -compass him as with a shield. - - - -6:1 O LORD, rebuke me not in thine anger, neither chasten me in thy -hot displeasure. - -6:2 Have mercy upon me, O LORD; for I am weak: O LORD, heal me; for my -bones are vexed. - -6:3 My soul is also sore vexed: but thou, O LORD, how long? - -6:4 Return, O LORD, deliver my soul: oh save me for thy mercies' sake. - -6:5 For in death there is no remembrance of thee: in the grave who -shall give thee thanks? - -6:6 I am weary with my groaning; all the night make I my bed to swim; -I water my couch with my tears. - -6:7 Mine eye is consumed because of grief; it waxeth old because of -all mine enemies. - -6:8 Depart from me, all ye workers of iniquity; for the LORD hath -heard the voice of my weeping. - -6:9 The LORD hath heard my supplication; the LORD will receive my -prayer. - -6:10 Let all mine enemies be ashamed and sore vexed: let them return -and be ashamed suddenly. - - - -7:1 O LORD my God, in thee do I put my trust: save me from all them -that persecute me, and deliver me: - -7:2 Lest he tear my soul like a lion, rending it in pieces, while -there is none to deliver. - -7:3 O LORD my God, If I have done this; if there be iniquity in my -hands; - -7:4 If I have rewarded evil unto him that was at peace with me; (yea, -I have delivered him that without cause is mine enemy:) - -7:5 Let the enemy persecute my soul, and take it; yea, let him tread -down my life upon the earth, and lay mine honour in the dust. Selah. - -7:6 Arise, O LORD, in thine anger, lift up thyself because of the rage -of mine enemies: and awake for me to the judgment that thou hast -commanded. - -7:7 So shall the congregation of the people compass thee about: for -their sakes therefore return thou on high. - -7:8 The LORD shall judge the people: judge me, O LORD, according to my -righteousness, and according to mine integrity that is in me. - -7:9 Oh let the wickedness of the wicked come to an end; but establish -the just: for the righteous God trieth the hearts and reins. - -7:10 My defence is of God, which saveth the upright in heart. - -7:11 God judgeth the righteous, and God is angry with the wicked every -day. - -7:12 If he turn not, he will whet his sword; he hath bent his bow, and -made it ready. - -7:13 He hath also prepared for him the instruments of death; he -ordaineth his arrows against the persecutors. - -7:14 Behold, he travaileth with iniquity, and hath conceived mischief, -and brought forth falsehood. - -7:15 He made a pit, and digged it, and is fallen into the ditch which -he made. - -7:16 His mischief shall return upon his own head, and his violent -dealing shall come down upon his own pate. - -7:17 I will praise the LORD according to his righteousness: and will -sing praise to the name of the LORD most high. - - - -8:1 O LORD, our Lord, how excellent is thy name in all the earth! who -hast set thy glory above the heavens. - -8:2 Out of the mouth of babes and sucklings hast thou ordained -strength because of thine enemies, that thou mightest still the enemy -and the avenger. - -8:3 When I consider thy heavens, the work of thy fingers, the moon and -the stars, which thou hast ordained; - -8:4 What is man, that thou art mindful of him? and the son of man, -that thou visitest him? - -8:5 For thou hast made him a little lower than the angels, and hast -crowned him with glory and honour. - -8:6 Thou madest him to have dominion over the works of thy hands; thou -hast put all things under his feet: - -8:7 All sheep and oxen, yea, and the beasts of the field; - -8:8 The fowl of the air, and the fish of the sea, and whatsoever -passeth through the paths of the seas. - -8:9 O LORD our Lord, how excellent is thy name in all the earth! - - -9:1 I will praise thee, O LORD, with my whole heart; I will shew forth -all thy marvellous works. - -9:2 I will be glad and rejoice in thee: I will sing praise to thy -name, O thou most High. - -9:3 When mine enemies are turned back, they shall fall and perish at -thy presence. - -9:4 For thou hast maintained my right and my cause; thou satest in the -throne judging right. - -9:5 Thou hast rebuked the heathen, thou hast destroyed the wicked, -thou hast put out their name for ever and ever. - -9:6 O thou enemy, destructions are come to a perpetual end: and thou -hast destroyed cities; their memorial is perished with them. - -9:7 But the LORD shall endure for ever: he hath prepared his throne -for judgment. - -9:8 And he shall judge the world in righteousness, he shall minister -judgment to the people in uprightness. - -9:9 The LORD also will be a refuge for the oppressed, a refuge in -times of trouble. - -9:10 And they that know thy name will put their trust in thee: for -thou, LORD, hast not forsaken them that seek thee. - -9:11 Sing praises to the LORD, which dwelleth in Zion: declare among -the people his doings. - -9:12 When he maketh inquisition for blood, he remembereth them: he -forgetteth not the cry of the humble. - -9:13 Have mercy upon me, O LORD; consider my trouble which I suffer of -them that hate me, thou that liftest me up from the gates of death: - -9:14 That I may shew forth all thy praise in the gates of the daughter -of Zion: I will rejoice in thy salvation. - -9:15 The heathen are sunk down in the pit that they made: in the net -which they hid is their own foot taken. - -9:16 The LORD is known by the judgment which he executeth: the wicked -is snared in the work of his own hands. Higgaion. Selah. - -9:17 The wicked shall be turned into hell, and all the nations that -forget God. - -9:18 For the needy shall not alway be forgotten: the expectation of -the poor shall not perish for ever. - -9:19 Arise, O LORD; let not man prevail: let the heathen be judged in -thy sight. - -9:20 Put them in fear, O LORD: that the nations may know themselves to -be but men. Selah. - - - -10:1 Why standest thou afar off, O LORD? why hidest thou thyself in -times of trouble? - -10:2 The wicked in his pride doth persecute the poor: let them be -taken in the devices that they have imagined. - -10:3 For the wicked boasteth of his heart's desire, and blesseth the -covetous, whom the LORD abhorreth. - -10:4 The wicked, through the pride of his countenance, will not seek -after God: God is not in all his thoughts. - -10:5 His ways are always grievous; thy judgments are far above out of -his sight: as for all his enemies, he puffeth at them. - -10:6 He hath said in his heart, I shall not be moved: for I shall -never be in adversity. - -10:7 His mouth is full of cursing and deceit and fraud: under his -tongue is mischief and vanity. - -10:8 He sitteth in the lurking places of the villages: in the secret -places doth he murder the innocent: his eyes are privily set against -the poor. - -10:9 He lieth in wait secretly as a lion in his den: he lieth in wait -to catch the poor: he doth catch the poor, when he draweth him into -his net. - -10:10 He croucheth, and humbleth himself, that the poor may fall by -his strong ones. - -10:11 He hath said in his heart, God hath forgotten: he hideth his -face; he will never see it. - -10:12 Arise, O LORD; O God, lift up thine hand: forget not the humble. - -10:13 Wherefore doth the wicked contemn God? he hath said in his -heart, Thou wilt not require it. - -10:14 Thou hast seen it; for thou beholdest mischief and spite, to -requite it with thy hand: the poor committeth himself unto thee; thou -art the helper of the fatherless. - -10:15 Break thou the arm of the wicked and the evil man: seek out his -wickedness till thou find none. - -10:16 The LORD is King for ever and ever: the heathen are perished out -of his land. - -10:17 LORD, thou hast heard the desire of the humble: thou wilt -prepare their heart, thou wilt cause thine ear to hear: - -10:18 To judge the fatherless and the oppressed, that the man of the -earth may no more oppress. - - - -11:1 In the LORD put I my trust: how say ye to my soul, Flee as a bird -to your mountain? - -11:2 For, lo, the wicked bend their bow, they make ready their arrow -upon the string, that they may privily shoot at the upright in heart. - -11:3 If the foundations be destroyed, what can the righteous do? - -11:4 The LORD is in his holy temple, the LORD's throne is in heaven: -his eyes behold, his eyelids try, the children of men. - -11:5 The LORD trieth the righteous: but the wicked and him that loveth -violence his soul hateth. - -11:6 Upon the wicked he shall rain snares, fire and brimstone, and an -horrible tempest: this shall be the portion of their cup. - -11:7 For the righteous LORD loveth righteousness; his countenance doth -behold the upright. - - - -12:1 Help, LORD; for the godly man ceaseth; for the faithful fail from -among the children of men. - -12:2 They speak vanity every one with his neighbour: with flattering -lips and with a double heart do they speak. - -12:3 The LORD shall cut off all flattering lips, and the tongue that -speaketh proud things: - -12:4 Who have said, With our tongue will we prevail; our lips are our -own: who is lord over us? - -12:5 For the oppression of the poor, for the sighing of the needy, now -will I arise, saith the LORD; I will set him in safety from him that -puffeth at him. - -12:6 The words of the LORD are pure words: as silver tried in a -furnace of earth, purified seven times. - -12:7 Thou shalt keep them, O LORD, thou shalt preserve them from this -generation for ever. - -12:8 The wicked walk on every side, when the vilest men are exalted. - - - -13:1 How long wilt thou forget me, O LORD? for ever? how long wilt -thou hide thy face from me? - -13:2 How long shall I take counsel in my soul, having sorrow in my -heart daily? how long shall mine enemy be exalted over me? - -13:3 Consider and hear me, O LORD my God: lighten mine eyes, lest I -sleep the sleep of death; - -13:4 Lest mine enemy say, I have prevailed against him; and those that -trouble me rejoice when I am moved. - -13:5 But I have trusted in thy mercy; my heart shall rejoice in thy -salvation. - -13:6 I will sing unto the LORD, because he hath dealt bountifully with -me. - - - -14:1 The fool hath said in his heart, There is no God. They are -corrupt, they have done abominable works, there is none that doeth -good. - -14:2 The LORD looked down from heaven upon the children of men, to see -if there were any that did understand, and seek God. - -14:3 They are all gone aside, they are all together become filthy: -there is none that doeth good, no, not one. - -14:4 Have all the workers of iniquity no knowledge? who eat up my -people as they eat bread, and call not upon the LORD. - -14:5 There were they in great fear: for God is in the generation of -the righteous. - -14:6 Ye have shamed the counsel of the poor, because the LORD is his -refuge. - -14:7 Oh that the salvation of Israel were come out of Zion! when the -LORD bringeth back the captivity of his people, Jacob shall rejoice, -and Israel shall be glad. - - - -15:1 Lord, who shall abide in thy tabernacle? who shall dwell in thy -holy hill? - -15:2 He that walketh uprightly, and worketh righteousness, and -speaketh the truth in his heart. - -15:3 He that backbiteth not with his tongue, nor doeth evil to his -neighbour, nor taketh up a reproach against his neighbour. - -15:4 In whose eyes a vile person is contemned; but he honoureth them -that fear the LORD. He that sweareth to his own hurt, and changeth -not. - -15:5 He that putteth not out his money to usury, nor taketh reward -against the innocent. He that doeth these things shall never be moved. - - - -16:1 Preserve me, O God: for in thee do I put my trust. - -16:2 O my soul, thou hast said unto the LORD, Thou art my Lord: my -goodness extendeth not to thee; - -16:3 But to the saints that are in the earth, and to the excellent, in -whom is all my delight. - -16:4 Their sorrows shall be multiplied that hasten after another god: -their drink offerings of blood will I not offer, nor take up their -names into my lips. - -16:5 The LORD is the portion of mine inheritance and of my cup: thou -maintainest my lot. - -16:6 The lines are fallen unto me in pleasant places; yea, I have a -goodly heritage. - -16:7 I will bless the LORD, who hath given me counsel: my reins also -instruct me in the night seasons. - -16:8 I have set the LORD always before me: because he is at my right -hand, I shall not be moved. - -16:9 Therefore my heart is glad, and my glory rejoiceth: my flesh also -shall rest in hope. - -16:10 For thou wilt not leave my soul in hell; neither wilt thou -suffer thine Holy One to see corruption. - -16:11 Thou wilt shew me the path of life: in thy presence is fulness -of joy; at thy right hand there are pleasures for evermore. - - - -17:1 Hear the right, O LORD, attend unto my cry, give ear unto my -prayer, that goeth not out of feigned lips. - -17:2 Let my sentence come forth from thy presence; let thine eyes -behold the things that are equal. - -17:3 Thou hast proved mine heart; thou hast visited me in the night; -thou hast tried me, and shalt find nothing; I am purposed that my -mouth shall not transgress. - -17:4 Concerning the works of men, by the word of thy lips I have kept -me from the paths of the destroyer. - -17:5 Hold up my goings in thy paths, that my footsteps slip not. - -17:6 I have called upon thee, for thou wilt hear me, O God: incline -thine ear unto me, and hear my speech. - -17:7 Shew thy marvellous lovingkindness, O thou that savest by thy -right hand them which put their trust in thee from those that rise up -against them. - -17:8 Keep me as the apple of the eye, hide me under the shadow of thy -wings, - -17:9 From the wicked that oppress me, from my deadly enemies, who -compass me about. - -17:10 They are inclosed in their own fat: with their mouth they speak -proudly. - -17:11 They have now compassed us in our steps: they have set their -eyes bowing down to the earth; - -17:12 Like as a lion that is greedy of his prey, and as it were a -young lion lurking in secret places. - -17:13 Arise, O LORD, disappoint him, cast him down: deliver my soul -from the wicked, which is thy sword: - -17:14 From men which are thy hand, O LORD, from men of the world, -which have their portion in this life, and whose belly thou fillest -with thy hid treasure: they are full of children, and leave the rest -of their substance to their babes. - -17:15 As for me, I will behold thy face in righteousness: I shall be -satisfied, when I awake, with thy likeness. - - - -18:1 I will love thee, O LORD, my strength. - -18:2 The LORD is my rock, and my fortress, and my deliverer; my God, -my strength, in whom I will trust; my buckler, and the horn of my -salvation, and my high tower. - -18:3 I will call upon the LORD, who is worthy to be praised: so shall -I be saved from mine enemies. - -18:4 The sorrows of death compassed me, and the floods of ungodly men -made me afraid. - -18:5 The sorrows of hell compassed me about: the snares of death -prevented me. - -18:6 In my distress I called upon the LORD, and cried unto my God: he -heard my voice out of his temple, and my cry came before him, even -into his ears. - -18:7 Then the earth shook and trembled; the foundations also of the -hills moved and were shaken, because he was wroth. - -18:8 There went up a smoke out of his nostrils, and fire out of his -mouth devoured: coals were kindled by it. - -18:9 He bowed the heavens also, and came down: and darkness was under -his feet. - -18:10 And he rode upon a cherub, and did fly: yea, he did fly upon the -wings of the wind. - -18:11 He made darkness his secret place; his pavilion round about him -were dark waters and thick clouds of the skies. - -18:12 At the brightness that was before him his thick clouds passed, -hail stones and coals of fire. - -18:13 The LORD also thundered in the heavens, and the Highest gave his -voice; hail stones and coals of fire. - -18:14 Yea, he sent out his arrows, and scattered them; and he shot out -lightnings, and discomfited them. - -18:15 Then the channels of waters were seen, and the foundations of -the world were discovered at thy rebuke, O LORD, at the blast of the -breath of thy nostrils. - -18:16 He sent from above, he took me, he drew me out of many waters. - -18:17 He delivered me from my strong enemy, and from them which hated -me: for they were too strong for me. - -18:18 They prevented me in the day of my calamity: but the LORD was my -stay. - -18:19 He brought me forth also into a large place; he delivered me, -because he delighted in me. - -18:20 The LORD rewarded me according to my righteousness; according to -the cleanness of my hands hath he recompensed me. - -18:21 For I have kept the ways of the LORD, and have not wickedly -departed from my God. - -18:22 For all his judgments were before me, and I did not put away his -statutes from me. - -18:23 I was also upright before him, and I kept myself from mine -iniquity. - -18:24 Therefore hath the LORD recompensed me according to my -righteousness, according to the cleanness of my hands in his eyesight. - -18:25 With the merciful thou wilt shew thyself merciful; with an -upright man thou wilt shew thyself upright; - -18:26 With the pure thou wilt shew thyself pure; and with the froward -thou wilt shew thyself froward. - -18:27 For thou wilt save the afflicted people; but wilt bring down -high looks. - -18:28 For thou wilt light my candle: the LORD my God will enlighten my -darkness. - -18:29 For by thee I have run through a troop; and by my God have I -leaped over a wall. - -18:30 As for God, his way is perfect: the word of the LORD is tried: -he is a buckler to all those that trust in him. - -18:31 For who is God save the LORD? or who is a rock save our God? - -18:32 It is God that girdeth me with strength, and maketh my way -perfect. - -18:33 He maketh my feet like hinds' feet, and setteth me upon my high -places. - -18:34 He teacheth my hands to war, so that a bow of steel is broken by -mine arms. - -18:35 Thou hast also given me the shield of thy salvation: and thy -right hand hath holden me up, and thy gentleness hath made me great. - -18:36 Thou hast enlarged my steps under me, that my feet did not slip. - -18:37 I have pursued mine enemies, and overtaken them: neither did I -turn again till they were consumed. - -18:38 I have wounded them that they were not able to rise: they are -fallen under my feet. - -18:39 For thou hast girded me with strength unto the battle: thou hast -subdued under me those that rose up against me. - -18:40 Thou hast also given me the necks of mine enemies; that I might -destroy them that hate me. - -18:41 They cried, but there was none to save them: even unto the LORD, -but he answered them not. - -18:42 Then did I beat them small as the dust before the wind: I did -cast them out as the dirt in the streets. - -18:43 Thou hast delivered me from the strivings of the people; and -thou hast made me the head of the heathen: a people whom I have not -known shall serve me. - -18:44 As soon as they hear of me, they shall obey me: the strangers -shall submit themselves unto me. - -18:45 The strangers shall fade away, and be afraid out of their close -places. - -18:46 The LORD liveth; and blessed be my rock; and let the God of my -salvation be exalted. - -18:47 It is God that avengeth me, and subdueth the people under me. - -18:48 He delivereth me from mine enemies: yea, thou liftest me up -above those that rise up against me: thou hast delivered me from the -violent man. - -18:49 Therefore will I give thanks unto thee, O LORD, among the -heathen, and sing praises unto thy name. - -18:50 Great deliverance giveth he to his king; and sheweth mercy to -his anointed, to David, and to his seed for evermore. - - - -19:1 The heavens declare the glory of God; and the firmament sheweth -his handywork. - -19:2 Day unto day uttereth speech, and night unto night sheweth -knowledge. - -19:3 There is no speech nor language, where their voice is not heard. - -19:4 Their line is gone out through all the earth, and their words to -the end of the world. In them hath he set a tabernacle for the sun, - -19:5 Which is as a bridegroom coming out of his chamber, and rejoiceth -as a strong man to run a race. - -19:6 His going forth is from the end of the heaven, and his circuit -unto the ends of it: and there is nothing hid from the heat thereof. - -19:7 The law of the LORD is perfect, converting the soul: the -testimony of the LORD is sure, making wise the simple. - -19:8 The statutes of the LORD are right, rejoicing the heart: the -commandment of the LORD is pure, enlightening the eyes. - -19:9 The fear of the LORD is clean, enduring for ever: the judgments -of the LORD are true and righteous altogether. - -19:10 More to be desired are they than gold, yea, than much fine gold: -sweeter also than honey and the honeycomb. - -19:11 Moreover by them is thy servant warned: and in keeping of them -there is great reward. - -19:12 Who can understand his errors? cleanse thou me from secret -faults. - -19:13 Keep back thy servant also from presumptuous sins; let them not -have dominion over me: then shall I be upright, and I shall be -innocent from the great transgression. - -19:14 Let the words of my mouth, and the meditation of my heart, be -acceptable in thy sight, O LORD, my strength, and my redeemer. - - - -20:1 The LORD hear thee in the day of trouble; the name of the God of -Jacob defend thee; - -20:2 Send thee help from the sanctuary, and strengthen thee out of -Zion; - -20:3 Remember all thy offerings, and accept thy burnt sacrifice; -Selah. - -20:4 Grant thee according to thine own heart, and fulfil all thy -counsel. - -20:5 We will rejoice in thy salvation, and in the name of our God we -will set up our banners: the LORD fulfil all thy petitions. - -20:6 Now know I that the LORD saveth his anointed; he will hear him -from his holy heaven with the saving strength of his right hand. - -20:7 Some trust in chariots, and some in horses: but we will remember -the name of the LORD our God. - -20:8 They are brought down and fallen: but we are risen, and stand -upright. - -20:9 Save, LORD: let the king hear us when we call. - - - -21:1 The king shall joy in thy strength, O LORD; and in thy salvation -how greatly shall he rejoice! - -21:2 Thou hast given him his heart's desire, and hast not withholden -the request of his lips. Selah. - -21:3 For thou preventest him with the blessings of goodness: thou -settest a crown of pure gold on his head. - -21:4 He asked life of thee, and thou gavest it him, even length of -days for ever and ever. - -21:5 His glory is great in thy salvation: honour and majesty hast thou -laid upon him. - -21:6 For thou hast made him most blessed for ever: thou hast made him -exceeding glad with thy countenance. - -21:7 For the king trusteth in the LORD, and through the mercy of the -most High he shall not be moved. - -21:8 Thine hand shall find out all thine enemies: thy right hand shall -find out those that hate thee. - -21:9 Thou shalt make them as a fiery oven in the time of thine anger: -the LORD shall swallow them up in his wrath, and the fire shall devour -them. - -21:10 Their fruit shalt thou destroy from the earth, and their seed -from among the children of men. - -21:11 For they intended evil against thee: they imagined a mischievous -device, which they are not able to perform. - -21:12 Therefore shalt thou make them turn their back, when thou shalt -make ready thine arrows upon thy strings against the face of them. - -21:13 Be thou exalted, LORD, in thine own strength: so will we sing -and praise thy power. - - - -22:1 My God, my God, why hast thou forsaken me? why art thou so far -from helping me, and from the words of my roaring? - -22:2 O my God, I cry in the day time, but thou hearest not; and in the -night season, and am not silent. - -22:3 But thou art holy, O thou that inhabitest the praises of Israel. - -22:4 Our fathers trusted in thee: they trusted, and thou didst deliver -them. - -22:5 They cried unto thee, and were delivered: they trusted in thee, -and were not confounded. - -22:6 But I am a worm, and no man; a reproach of men, and despised of -the people. - -22:7 All they that see me laugh me to scorn: they shoot out the lip, -they shake the head, saying, - -22:8 He trusted on the LORD that he would deliver him: let him deliver -him, seeing he delighted in him. - -22:9 But thou art he that took me out of the womb: thou didst make me -hope when I was upon my mother's breasts. - -22:10 I was cast upon thee from the womb: thou art my God from my -mother's belly. - -22:11 Be not far from me; for trouble is near; for there is none to -help. - -22:12 Many bulls have compassed me: strong bulls of Bashan have beset -me round. - -22:13 They gaped upon me with their mouths, as a ravening and a -roaring lion. - -22:14 I am poured out like water, and all my bones are out of joint: -my heart is like wax; it is melted in the midst of my bowels. - -22:15 My strength is dried up like a potsherd; and my tongue cleaveth -to my jaws; and thou hast brought me into the dust of death. - -22:16 For dogs have compassed me: the assembly of the wicked have -inclosed me: they pierced my hands and my feet. - -22:17 I may tell all my bones: they look and stare upon me. - -22:18 They part my garments among them, and cast lots upon my vesture. - -22:19 But be not thou far from me, O LORD: O my strength, haste thee -to help me. - -22:20 Deliver my soul from the sword; my darling from the power of the -dog. - -22:21 Save me from the lion's mouth: for thou hast heard me from the -horns of the unicorns. - -22:22 I will declare thy name unto my brethren: in the midst of the -congregation will I praise thee. - -22:23 Ye that fear the LORD, praise him; all ye the seed of Jacob, -glorify him; and fear him, all ye the seed of Israel. - -22:24 For he hath not despised nor abhorred the affliction of the -afflicted; neither hath he hid his face from him; but when he cried -unto him, he heard. - -22:25 My praise shall be of thee in the great congregation: I will pay -my vows before them that fear him. - -22:26 The meek shall eat and be satisfied: they shall praise the LORD -that seek him: your heart shall live for ever. - -22:27 All the ends of the world shall remember and turn unto the LORD: -and all the kindreds of the nations shall worship before thee. - -22:28 For the kingdom is the LORD's: and he is the governor among the -nations. - -22:29 All they that be fat upon earth shall eat and worship: all they -that go down to the dust shall bow before him: and none can keep alive -his own soul. - -22:30 A seed shall serve him; it shall be accounted to the Lord for a -generation. - -22:31 They shall come, and shall declare his righteousness unto a -people that shall be born, that he hath done this. - - - -23:1 The LORD is my shepherd; I shall not want. - -23:2 He maketh me to lie down in green pastures: he leadeth me beside -the still waters. - -23:3 He restoreth my soul: he leadeth me in the paths of righteousness -for his name's sake. - -23:4 Yea, though I walk through the valley of the shadow of death, I -will fear no evil: for thou art with me; thy rod and thy staff they -comfort me. - -23:5 Thou preparest a table before me in the presence of mine enemies: -thou anointest my head with oil; my cup runneth over. - -23:6 Surely goodness and mercy shall follow me all the days of my -life: and I will dwell in the house of the LORD for ever. - - - -24:1 The earth is the LORD's, and the fulness thereof; the world, and -they that dwell therein. - -24:2 For he hath founded it upon the seas, and established it upon the -floods. - -24:3 Who shall ascend into the hill of the LORD? or who shall stand in -his holy place? - -24:4 He that hath clean hands, and a pure heart; who hath not lifted -up his soul unto vanity, nor sworn deceitfully. - -24:5 He shall receive the blessing from the LORD, and righteousness -from the God of his salvation. - -24:6 This is the generation of them that seek him, that seek thy face, -O Jacob. Selah. - -24:7 Lift up your heads, O ye gates; and be ye lift up, ye everlasting -doors; and the King of glory shall come in. - -24:8 Who is this King of glory? The LORD strong and mighty, the LORD -mighty in battle. - -24:9 Lift up your heads, O ye gates; even lift them up, ye everlasting -doors; and the King of glory shall come in. - -24:10 Who is this King of glory? The LORD of hosts, he is the King of -glory. Selah. - - - -25:1 Unto thee, O LORD, do I lift up my soul. - -25:2 O my God, I trust in thee: let me not be ashamed, let not mine -enemies triumph over me. - -25:3 Yea, let none that wait on thee be ashamed: let them be ashamed -which transgress without cause. - -25:4 Shew me thy ways, O LORD; teach me thy paths. - -25:5 Lead me in thy truth, and teach me: for thou art the God of my -salvation; on thee do I wait all the day. - -25:6 Remember, O LORD, thy tender mercies and thy lovingkindnesses; -for they have been ever of old. - -25:7 Remember not the sins of my youth, nor my transgressions: -according to thy mercy remember thou me for thy goodness' sake, O -LORD. - -25:8 Good and upright is the LORD: therefore will he teach sinners in -the way. - -25:9 The meek will he guide in judgment: and the meek will he teach -his way. - -25:10 All the paths of the LORD are mercy and truth unto such as keep -his covenant and his testimonies. - -25:11 For thy name's sake, O LORD, pardon mine iniquity; for it is -great. - -25:12 What man is he that feareth the LORD? him shall he teach in the -way that he shall choose. - -25:13 His soul shall dwell at ease; and his seed shall inherit the -earth. - -25:14 The secret of the LORD is with them that fear him; and he will -shew them his covenant. - -25:15 Mine eyes are ever toward the LORD; for he shall pluck my feet -out of the net. - -25:16 Turn thee unto me, and have mercy upon me; for I am desolate and -afflicted. - -25:17 The troubles of my heart are enlarged: O bring thou me out of my -distresses. - -25:18 Look upon mine affliction and my pain; and forgive all my sins. - -25:19 Consider mine enemies; for they are many; and they hate me with -cruel hatred. - -25:20 O keep my soul, and deliver me: let me not be ashamed; for I put -my trust in thee. - -25:21 Let integrity and uprightness preserve me; for I wait on thee. - -25:22 Redeem Israel, O God, out of all his troubles. - - - -26:1 Judge me, O LORD; for I have walked in mine integrity: I have -trusted also in the LORD; therefore I shall not slide. - -26:2 Examine me, O LORD, and prove me; try my reins and my heart. - -26:3 For thy lovingkindness is before mine eyes: and I have walked in -thy truth. - -26:4 I have not sat with vain persons, neither will I go in with -dissemblers. - -26:5 I have hated the congregation of evil doers; and will not sit -with the wicked. - -26:6 I will wash mine hands in innocency: so will I compass thine -altar, O LORD: - -26:7 That I may publish with the voice of thanksgiving, and tell of -all thy wondrous works. - -26:8 LORD, I have loved the habitation of thy house, and the place -where thine honour dwelleth. - -26:9 Gather not my soul with sinners, nor my life with bloody men: - -26:10 In whose hands is mischief, and their right hand is full of -bribes. - -26:11 But as for me, I will walk in mine integrity: redeem me, and be -merciful unto me. - -26:12 My foot standeth in an even place: in the congregations will I -bless the LORD. - - - -27:1 The LORD is my light and my salvation; whom shall I fear? the -LORD is the strength of my life; of whom shall I be afraid? - -27:2 When the wicked, even mine enemies and my foes, came upon me to -eat up my flesh, they stumbled and fell. - -27:3 Though an host should encamp against me, my heart shall not fear: -though war should rise against me, in this will I be confident. - -27:4 One thing have I desired of the LORD, that will I seek after; -that I may dwell in the house of the LORD all the days of my life, to -behold the beauty of the LORD, and to enquire in his temple. - -27:5 For in the time of trouble he shall hide me in his pavilion: in -the secret of his tabernacle shall he hide me; he shall set me up upon -a rock. - -27:6 And now shall mine head be lifted up above mine enemies round -about me: therefore will I offer in his tabernacle sacrifices of joy; -I will sing, yea, I will sing praises unto the LORD. - -27:7 Hear, O LORD, when I cry with my voice: have mercy also upon me, -and answer me. - -27:8 When thou saidst, Seek ye my face; my heart said unto thee, Thy -face, LORD, will I seek. - -27:9 Hide not thy face far from me; put not thy servant away in anger: -thou hast been my help; leave me not, neither forsake me, O God of my -salvation. - -27:10 When my father and my mother forsake me, then the LORD will take -me up. - -27:11 Teach me thy way, O LORD, and lead me in a plain path, because -of mine enemies. - -27:12 Deliver me not over unto the will of mine enemies: for false -witnesses are risen up against me, and such as breathe out cruelty. - -27:13 I had fainted, unless I had believed to see the goodness of the -LORD in the land of the living. - -27:14 Wait on the LORD: be of good courage, and he shall strengthen -thine heart: wait, I say, on the LORD. - - - -28:1 Unto thee will I cry, O LORD my rock; be not silent to me: lest, -if thou be silent to me, I become like them that go down into the pit. - -28:2 Hear the voice of my supplications, when I cry unto thee, when I -lift up my hands toward thy holy oracle. - -28:3 Draw me not away with the wicked, and with the workers of -iniquity, which speak peace to their neighbours, but mischief is in -their hearts. - -28:4 Give them according to their deeds, and according to the -wickedness of their endeavours: give them after the work of their -hands; render to them their desert. - -28:5 Because they regard not the works of the LORD, nor the operation -of his hands, he shall destroy them, and not build them up. - -28:6 Blessed be the LORD, because he hath heard the voice of my -supplications. - -28:7 The LORD is my strength and my shield; my heart trusted in him, -and I am helped: therefore my heart greatly rejoiceth; and with my -song will I praise him. - -28:8 The LORD is their strength, and he is the saving strength of his -anointed. - -28:9 Save thy people, and bless thine inheritance: feed them also, and -lift them up for ever. - - - -29:1 Give unto the LORD, O ye mighty, give unto the LORD glory and -strength. - -29:2 Give unto the LORD the glory due unto his name; worship the LORD -in the beauty of holiness. - -29:3 The voice of the LORD is upon the waters: the God of glory -thundereth: the LORD is upon many waters. - -29:4 The voice of the LORD is powerful; the voice of the LORD is full -of majesty. - -29:5 The voice of the LORD breaketh the cedars; yea, the LORD breaketh -the cedars of Lebanon. - -29:6 He maketh them also to skip like a calf; Lebanon and Sirion like -a young unicorn. - -29:7 The voice of the LORD divideth the flames of fire. - -29:8 The voice of the LORD shaketh the wilderness; the LORD shaketh -the wilderness of Kadesh. - -29:9 The voice of the LORD maketh the hinds to calve, and discovereth -the forests: and in his temple doth every one speak of his glory. - -29:10 The LORD sitteth upon the flood; yea, the LORD sitteth King for -ever. - -29:11 The LORD will give strength unto his people; the LORD will bless -his people with peace. - - - -30:1 I will extol thee, O LORD; for thou hast lifted me up, and hast -not made my foes to rejoice over me. - -30:2 O LORD my God, I cried unto thee, and thou hast healed me. - -30:3 O LORD, thou hast brought up my soul from the grave: thou hast -kept me alive, that I should not go down to the pit. - -30:4 Sing unto the LORD, O ye saints of his, and give thanks at the -remembrance of his holiness. - -30:5 For his anger endureth but a moment; in his favour is life: -weeping may endure for a night, but joy cometh in the morning. - -30:6 And in my prosperity I said, I shall never be moved. - -30:7 LORD, by thy favour thou hast made my mountain to stand strong: -thou didst hide thy face, and I was troubled. - -30:8 I cried to thee, O LORD; and unto the LORD I made supplication. - -30:9 What profit is there in my blood, when I go down to the pit? -Shall the dust praise thee? shall it declare thy truth? - -30:10 Hear, O LORD, and have mercy upon me: LORD, be thou my helper. - -30:11 Thou hast turned for me my mourning into dancing: thou hast put -off my sackcloth, and girded me with gladness; - -30:12 To the end that my glory may sing praise to thee, and not be -silent. - -O LORD my God, I will give thanks unto thee for ever. - - - -31:1 In thee, O LORD, do I put my trust; let me never be ashamed: -deliver me in thy righteousness. - -31:2 Bow down thine ear to me; deliver me speedily: be thou my strong -rock, for an house of defence to save me. - -31:3 For thou art my rock and my fortress; therefore for thy name's -sake lead me, and guide me. - -31:4 Pull me out of the net that they have laid privily for me: for -thou art my strength. - -31:5 Into thine hand I commit my spirit: thou hast redeemed me, O LORD -God of truth. - -31:6 I have hated them that regard lying vanities: but I trust in the -LORD. - -31:7 I will be glad and rejoice in thy mercy: for thou hast considered -my trouble; thou hast known my soul in adversities; - -31:8 And hast not shut me up into the hand of the enemy: thou hast set -my feet in a large room. - -31:9 Have mercy upon me, O LORD, for I am in trouble: mine eye is -consumed with grief, yea, my soul and my belly. - -31:10 For my life is spent with grief, and my years with sighing: my -strength faileth because of mine iniquity, and my bones are consumed. - -31:11 I was a reproach among all mine enemies, but especially among my -neighbours, and a fear to mine acquaintance: they that did see me -without fled from me. - -31:12 I am forgotten as a dead man out of mind: I am like a broken -vessel. - -31:13 For I have heard the slander of many: fear was on every side: -while they took counsel together against me, they devised to take away -my life. - -31:14 But I trusted in thee, O LORD: I said, Thou art my God. - -31:15 My times are in thy hand: deliver me from the hand of mine -enemies, and from them that persecute me. - -31:16 Make thy face to shine upon thy servant: save me for thy -mercies' sake. - -31:17 Let me not be ashamed, O LORD; for I have called upon thee: let -the wicked be ashamed, and let them be silent in the grave. - -31:18 Let the lying lips be put to silence; which speak grievous -things proudly and contemptuously against the righteous. - -31:19 Oh how great is thy goodness, which thou hast laid up for them -that fear thee; which thou hast wrought for them that trust in thee -before the sons of men! - -31:20 Thou shalt hide them in the secret of thy presence from the -pride of man: thou shalt keep them secretly in a pavilion from the -strife of tongues. - -31:21 Blessed be the LORD: for he hath shewed me his marvellous -kindness in a strong city. - -31:22 For I said in my haste, I am cut off from before thine eyes: -nevertheless thou heardest the voice of my supplications when I cried -unto thee. - -31:23 O love the LORD, all ye his saints: for the LORD preserveth the -faithful, and plentifully rewardeth the proud doer. - -31:24 Be of good courage, and he shall strengthen your heart, all ye -that hope in the LORD. - - - -32:1 Blessed is he whose transgression is forgiven, whose sin is -covered. - -32:2 Blessed is the man unto whom the LORD imputeth not iniquity, and -in whose spirit there is no guile. - -32:3 When I kept silence, my bones waxed old through my roaring all -the day long. - -32:4 For day and night thy hand was heavy upon me: my moisture is -turned into the drought of summer. Selah. - -32:5 I acknowledge my sin unto thee, and mine iniquity have I not hid. -I said, I will confess my transgressions unto the LORD; and thou -forgavest the iniquity of my sin. Selah. - -32:6 For this shall every one that is godly pray unto thee in a time -when thou mayest be found: surely in the floods of great waters they -shall not come nigh unto him. - -32:7 Thou art my hiding place; thou shalt preserve me from trouble; -thou shalt compass me about with songs of deliverance. Selah. - -32:8 I will instruct thee and teach thee in the way which thou shalt -go: I will guide thee with mine eye. - -32:9 Be ye not as the horse, or as the mule, which have no -understanding: whose mouth must be held in with bit and bridle, lest -they come near unto thee. - -32:10 Many sorrows shall be to the wicked: but he that trusteth in the -LORD, mercy shall compass him about. - -32:11 Be glad in the LORD, and rejoice, ye righteous: and shout for -joy, all ye that are upright in heart. - - - -33:1 Rejoice in the LORD, O ye righteous: for praise is comely for the -upright. - -33:2 Praise the LORD with harp: sing unto him with the psaltery and an -instrument of ten strings. - -33:3 Sing unto him a new song; play skilfully with a loud noise. - -33:4 For the word of the LORD is right; and all his works are done in -truth. - -33:5 He loveth righteousness and judgment: the earth is full of the -goodness of the LORD. - -33:6 By the word of the LORD were the heavens made; and all the host -of them by the breath of his mouth. - -33:7 He gathereth the waters of the sea together as an heap: he layeth -up the depth in storehouses. - -33:8 Let all the earth fear the LORD: let all the inhabitants of the -world stand in awe of him. - -33:9 For he spake, and it was done; he commanded, and it stood fast. - -33:10 The LORD bringeth the counsel of the heathen to nought: he -maketh the devices of the people of none effect. - -33:11 The counsel of the LORD standeth for ever, the thoughts of his -heart to all generations. - -33:12 Blessed is the nation whose God is the LORD; and the people whom -he hath chosen for his own inheritance. - -33:13 The LORD looketh from heaven; he beholdeth all the sons of men. - -33:14 From the place of his habitation he looketh upon all the -inhabitants of the earth. - -33:15 He fashioneth their hearts alike; he considereth all their -works. - -33:16 There is no king saved by the multitude of an host: a mighty man -is not delivered by much strength. - -33:17 An horse is a vain thing for safety: neither shall he deliver -any by his great strength. - -33:18 Behold, the eye of the LORD is upon them that fear him, upon -them that hope in his mercy; - -33:19 To deliver their soul from death, and to keep them alive in -famine. - -33:20 Our soul waiteth for the LORD: he is our help and our shield. - -33:21 For our heart shall rejoice in him, because we have trusted in -his holy name. - -33:22 Let thy mercy, O LORD, be upon us, according as we hope in thee. - - - -34:1 I will bless the LORD at all times: his praise shall continually -be in my mouth. - -34:2 My soul shall make her boast in the LORD: the humble shall hear -thereof, and be glad. - -34:3 O magnify the LORD with me, and let us exalt his name together. - -34:4 I sought the LORD, and he heard me, and delivered me from all my -fears. - -34:5 They looked unto him, and were lightened: and their faces were -not ashamed. - -34:6 This poor man cried, and the LORD heard him, and saved him out of -all his troubles. - -34:7 The angel of the LORD encampeth round about them that fear him, -and delivereth them. - -34:8 O taste and see that the LORD is good: blessed is the man that -trusteth in him. - -34:9 O fear the LORD, ye his saints: for there is no want to them that -fear him. - -34:10 The young lions do lack, and suffer hunger: but they that seek -the LORD shall not want any good thing. - -34:11 Come, ye children, hearken unto me: I will teach you the fear of -the LORD. - -34:12 What man is he that desireth life, and loveth many days, that he -may see good? - -34:13 Keep thy tongue from evil, and thy lips from speaking guile. - -34:14 Depart from evil, and do good; seek peace, and pursue it. - -34:15 The eyes of the LORD are upon the righteous, and his ears are -open unto their cry. - -34:16 The face of the LORD is against them that do evil, to cut off -the remembrance of them from the earth. - -34:17 The righteous cry, and the LORD heareth, and delivereth them out -of all their troubles. - -34:18 The LORD is nigh unto them that are of a broken heart; and -saveth such as be of a contrite spirit. - -34:19 Many are the afflictions of the righteous: but the LORD -delivereth him out of them all. - -34:20 He keepeth all his bones: not one of them is broken. - -34:21 Evil shall slay the wicked: and they that hate the righteous -shall be desolate. - -34:22 The LORD redeemeth the soul of his servants: and none of them -that trust in him shall be desolate. - - - -35:1 Plead my cause, O LORD, with them that strive with me: fight -against them that fight against me. - -35:2 Take hold of shield and buckler, and stand up for mine help. - -35:3 Draw out also the spear, and stop the way against them that -persecute me: say unto my soul, I am thy salvation. - -35:4 Let them be confounded and put to shame that seek after my soul: -let them be turned back and brought to confusion that devise my hurt. - -35:5 Let them be as chaff before the wind: and let the angel of the -LORD chase them. - -35:6 Let their way be dark and slippery: and let the angel of the LORD -persecute them. - -35:7 For without cause have they hid for me their net in a pit, which -without cause they have digged for my soul. - -35:8 Let destruction come upon him at unawares; and let his net that -he hath hid catch himself: into that very destruction let him fall. - -35:9 And my soul shall be joyful in the LORD: it shall rejoice in his -salvation. - -35:10 All my bones shall say, LORD, who is like unto thee, which -deliverest the poor from him that is too strong for him, yea, the poor -and the needy from him that spoileth him? - -35:11 False witnesses did rise up; they laid to my charge things that -I knew not. - -35:12 They rewarded me evil for good to the spoiling of my soul. - -35:13 But as for me, when they were sick, my clothing was sackcloth: I -humbled my soul with fasting; and my prayer returned into mine own -bosom. - -35:14 I behaved myself as though he had been my friend or brother: I -bowed down heavily, as one that mourneth for his mother. - -35:15 But in mine adversity they rejoiced, and gathered themselves -together: yea, the abjects gathered themselves together against me, -and I knew it not; they did tear me, and ceased not: - -35:16 With hypocritical mockers in feasts, they gnashed upon me with -their teeth. - -35:17 Lord, how long wilt thou look on? rescue my soul from their -destructions, my darling from the lions. - -35:18 I will give thee thanks in the great congregation: I will praise -thee among much people. - -35:19 Let not them that are mine enemies wrongfully rejoice over me: -neither let them wink with the eye that hate me without a cause. - -35:20 For they speak not peace: but they devise deceitful matters -against them that are quiet in the land. - -35:21 Yea, they opened their mouth wide against me, and said, Aha, -aha, our eye hath seen it. - -35:22 This thou hast seen, O LORD: keep not silence: O Lord, be not -far from me. - -35:23 Stir up thyself, and awake to my judgment, even unto my cause, -my God and my Lord. - -35:24 Judge me, O LORD my God, according to thy righteousness; and let -them not rejoice over me. - -35:25 Let them not say in their hearts, Ah, so would we have it: let -them not say, We have swallowed him up. - -35:26 Let them be ashamed and brought to confusion together that -rejoice at mine hurt: let them be clothed with shame and dishonour -that magnify themselves against me. - -35:27 Let them shout for joy, and be glad, that favour my righteous -cause: yea, let them say continually, Let the LORD be magnified, which -hath pleasure in the prosperity of his servant. - -35:28 And my tongue shall speak of thy righteousness and of thy praise -all the day long. - - - -36:1 The transgression of the wicked saith within my heart, that there -is no fear of God before his eyes. - -36:2 For he flattereth himself in his own eyes, until his iniquity be -found to be hateful. - -36:3 The words of his mouth are iniquity and deceit: he hath left off -to be wise, and to do good. - -36:4 He deviseth mischief upon his bed; he setteth himself in a way -that is not good; he abhorreth not evil. - -36:5 Thy mercy, O LORD, is in the heavens; and thy faithfulness -reacheth unto the clouds. - -36:6 Thy righteousness is like the great mountains; thy judgments are -a great deep: O LORD, thou preservest man and beast. - -36:7 How excellent is thy lovingkindness, O God! therefore the -children of men put their trust under the shadow of thy wings. - -36:8 They shall be abundantly satisfied with the fatness of thy house; -and thou shalt make them drink of the river of thy pleasures. - -36:9 For with thee is the fountain of life: in thy light shall we see -light. - -36:10 O continue thy lovingkindness unto them that know thee; and thy -righteousness to the upright in heart. - -36:11 Let not the foot of pride come against me, and let not the hand -of the wicked remove me. - -36:12 There are the workers of iniquity fallen: they are cast down, -and shall not be able to rise. - - - -37:1 Fret not thyself because of evildoers, neither be thou envious -against the workers of iniquity. - -37:2 For they shall soon be cut down like the grass, and wither as the -green herb. - -37:3 Trust in the LORD, and do good; so shalt thou dwell in the land, -and verily thou shalt be fed. - -37:4 Delight thyself also in the LORD: and he shall give thee the -desires of thine heart. - -37:5 Commit thy way unto the LORD; trust also in him; and he shall -bring it to pass. - -37:6 And he shall bring forth thy righteousness as the light, and thy -judgment as the noonday. - -37:7 Rest in the LORD, and wait patiently for him: fret not thyself -because of him who prospereth in his way, because of the man who -bringeth wicked devices to pass. - -37:8 Cease from anger, and forsake wrath: fret not thyself in any wise -to do evil. - -37:9 For evildoers shall be cut off: but those that wait upon the -LORD, they shall inherit the earth. - -37:10 For yet a little while, and the wicked shall not be: yea, thou -shalt diligently consider his place, and it shall not be. - -37:11 But the meek shall inherit the earth; and shall delight -themselves in the abundance of peace. - -37:12 The wicked plotteth against the just, and gnasheth upon him with -his teeth. - -37:13 The LORD shall laugh at him: for he seeth that his day is -coming. - -37:14 The wicked have drawn out the sword, and have bent their bow, to -cast down the poor and needy, and to slay such as be of upright -conversation. - -37:15 Their sword shall enter into their own heart, and their bows -shall be broken. - -37:16 A little that a righteous man hath is better than the riches of -many wicked. - -37:17 For the arms of the wicked shall be broken: but the LORD -upholdeth the righteous. - -37:18 The LORD knoweth the days of the upright: and their inheritance -shall be for ever. - -37:19 They shall not be ashamed in the evil time: and in the days of -famine they shall be satisfied. - -37:20 But the wicked shall perish, and the enemies of the LORD shall -be as the fat of lambs: they shall consume; into smoke shall they -consume away. - -37:21 The wicked borroweth, and payeth not again: but the righteous -sheweth mercy, and giveth. - -37:22 For such as be blessed of him shall inherit the earth; and they -that be cursed of him shall be cut off. - -37:23 The steps of a good man are ordered by the LORD: and he -delighteth in his way. - -37:24 Though he fall, he shall not be utterly cast down: for the LORD -upholdeth him with his hand. - -37:25 I have been young, and now am old; yet have I not seen the -righteous forsaken, nor his seed begging bread. - -37:26 He is ever merciful, and lendeth; and his seed is blessed. - -37:27 Depart from evil, and do good; and dwell for evermore. - -37:28 For the LORD loveth judgment, and forsaketh not his saints; they -are preserved for ever: but the seed of the wicked shall be cut off. - -37:29 The righteous shall inherit the land, and dwell therein for -ever. - -37:30 The mouth of the righteous speaketh wisdom, and his tongue -talketh of judgment. - -37:31 The law of his God is in his heart; none of his steps shall -slide. - -37:32 The wicked watcheth the righteous, and seeketh to slay him. - -37:33 The LORD will not leave him in his hand, nor condemn him when he -is judged. - -37:34 Wait on the LORD, and keep his way, and he shall exalt thee to -inherit the land: when the wicked are cut off, thou shalt see it. - -37:35 I have seen the wicked in great power, and spreading himself -like a green bay tree. - -37:36 Yet he passed away, and, lo, he was not: yea, I sought him, but -he could not be found. - -37:37 Mark the perfect man, and behold the upright: for the end of -that man is peace. - -37:38 But the transgressors shall be destroyed together: the end of -the wicked shall be cut off. - -37:39 But the salvation of the righteous is of the LORD: he is their -strength in the time of trouble. - -37:40 And the LORD shall help them, and deliver them: he shall deliver -them from the wicked, and save them, because they trust in him. - - - -38:1 O lord, rebuke me not in thy wrath: neither chasten me in thy hot -displeasure. - -38:2 For thine arrows stick fast in me, and thy hand presseth me sore. - -38:3 There is no soundness in my flesh because of thine anger; neither -is there any rest in my bones because of my sin. - -38:4 For mine iniquities are gone over mine head: as an heavy burden -they are too heavy for me. - -38:5 My wounds stink and are corrupt because of my foolishness. - -38:6 I am troubled; I am bowed down greatly; I go mourning all the day -long. - -38:7 For my loins are filled with a loathsome disease: and there is no -soundness in my flesh. - -38:8 I am feeble and sore broken: I have roared by reason of the -disquietness of my heart. - -38:9 Lord, all my desire is before thee; and my groaning is not hid -from thee. - -38:10 My heart panteth, my strength faileth me: as for the light of -mine eyes, it also is gone from me. - -38:11 My lovers and my friends stand aloof from my sore; and my -kinsmen stand afar off. - -38:12 They also that seek after my life lay snares for me: and they -that seek my hurt speak mischievous things, and imagine deceits all -the day long. - -38:13 But I, as a deaf man, heard not; and I was as a dumb man that -openeth not his mouth. - -38:14 Thus I was as a man that heareth not, and in whose mouth are no -reproofs. - -38:15 For in thee, O LORD, do I hope: thou wilt hear, O Lord my God. - -38:16 For I said, Hear me, lest otherwise they should rejoice over me: -when my foot slippeth, they magnify themselves against me. - -38:17 For I am ready to halt, and my sorrow is continually before me. - -38:18 For I will declare mine iniquity; I will be sorry for my sin. - -38:19 But mine enemies are lively, and they are strong: and they that -hate me wrongfully are multiplied. - -38:20 They also that render evil for good are mine adversaries; -because I follow the thing that good is. - -38:21 Forsake me not, O LORD: O my God, be not far from me. - -38:22 Make haste to help me, O Lord my salvation. - - - -39:1 I said, I will take heed to my ways, that I sin not with my -tongue: I will keep my mouth with a bridle, while the wicked is before -me. - -39:2 I was dumb with silence, I held my peace, even from good; and my -sorrow was stirred. - -39:3 My heart was hot within me, while I was musing the fire burned: -then spake I with my tongue, - -39:4 LORD, make me to know mine end, and the measure of my days, what -it is: that I may know how frail I am. - -39:5 Behold, thou hast made my days as an handbreadth; and mine age is -as nothing before thee: verily every man at his best state is -altogether vanity. - -Selah. - -39:6 Surely every man walketh in a vain shew: surely they are -disquieted in vain: he heapeth up riches, and knoweth not who shall -gather them. - -39:7 And now, Lord, what wait I for? my hope is in thee. - -39:8 Deliver me from all my transgressions: make me not the reproach -of the foolish. - -39:9 I was dumb, I opened not my mouth; because thou didst it. - -39:10 Remove thy stroke away from me: I am consumed by the blow of -thine hand. - -39:11 When thou with rebukes dost correct man for iniquity, thou -makest his beauty to consume away like a moth: surely every man is -vanity. Selah. - -39:12 Hear my prayer, O LORD, and give ear unto my cry; hold not thy -peace at my tears: for I am a stranger with thee, and a sojourner, as -all my fathers were. - -39:13 O spare me, that I may recover strength, before I go hence, and -be no more. - - - -40:1 I waited patiently for the LORD; and he inclined unto me, and -heard my cry. - -40:2 He brought me up also out of an horrible pit, out of the miry -clay, and set my feet upon a rock, and established my goings. - -40:3 And he hath put a new song in my mouth, even praise unto our God: -many shall see it, and fear, and shall trust in the LORD. - -40:4 Blessed is that man that maketh the LORD his trust, and -respecteth not the proud, nor such as turn aside to lies. - -40:5 Many, O LORD my God, are thy wonderful works which thou hast -done, and thy thoughts which are to us-ward: they cannot be reckoned -up in order unto thee: if I would declare and speak of them, they are -more than can be numbered. - -40:6 Sacrifice and offering thou didst not desire; mine ears hast thou -opened: burnt offering and sin offering hast thou not required. - -40:7 Then said I, Lo, I come: in the volume of the book it is written -of me, - -40:8 I delight to do thy will, O my God: yea, thy law is within my -heart. - -40:9 I have preached righteousness in the great congregation: lo, I -have not refrained my lips, O LORD, thou knowest. - -40:10 I have not hid thy righteousness within my heart; I have -declared thy faithfulness and thy salvation: I have not concealed thy -lovingkindness and thy truth from the great congregation. - -40:11 Withhold not thou thy tender mercies from me, O LORD: let thy -lovingkindness and thy truth continually preserve me. - -40:12 For innumerable evils have compassed me about: mine iniquities -have taken hold upon me, so that I am not able to look up; they are -more than the hairs of mine head: therefore my heart faileth me. - -40:13 Be pleased, O LORD, to deliver me: O LORD, make haste to help -me. - -40:14 Let them be ashamed and confounded together that seek after my -soul to destroy it; let them be driven backward and put to shame that -wish me evil. - -40:15 Let them be desolate for a reward of their shame that say unto -me, Aha, aha. - -40:16 Let all those that seek thee rejoice and be glad in thee: let -such as love thy salvation say continually, The LORD be magnified. - -40:17 But I am poor and needy; yet the Lord thinketh upon me: thou art -my help and my deliverer; make no tarrying, O my God. - - - -41:1 Blessed is he that considereth the poor: the LORD will deliver -him in time of trouble. - -41:2 The LORD will preserve him, and keep him alive; and he shall be -blessed upon the earth: and thou wilt not deliver him unto the will of -his enemies. - -41:3 The LORD will strengthen him upon the bed of languishing: thou -wilt make all his bed in his sickness. - -41:4 I said, LORD, be merciful unto me: heal my soul; for I have -sinned against thee. - -41:5 Mine enemies speak evil of me, When shall he die, and his name -perish? - -41:6 And if he come to see me, he speaketh vanity: his heart gathereth -iniquity to itself; when he goeth abroad, he telleth it. - -41:7 All that hate me whisper together against me: against me do they -devise my hurt. - -41:8 An evil disease, say they, cleaveth fast unto him: and now that -he lieth he shall rise up no more. - -41:9 Yea, mine own familiar friend, in whom I trusted, which did eat -of my bread, hath lifted up his heel against me. - -41:10 But thou, O LORD, be merciful unto me, and raise me up, that I -may requite them. - -41:11 By this I know that thou favourest me, because mine enemy doth -not triumph over me. - -41:12 And as for me, thou upholdest me in mine integrity, and settest -me before thy face for ever. - -41:13 Blessed be the LORD God of Israel from everlasting, and to -everlasting. Amen, and Amen. - - - -42:1 As the hart panteth after the water brooks, so panteth my soul -after thee, O God. - -42:2 My soul thirsteth for God, for the living God: when shall I come -and appear before God? - -42:3 My tears have been my meat day and night, while they continually -say unto me, Where is thy God? - -42:4 When I remember these things, I pour out my soul in me: for I had -gone with the multitude, I went with them to the house of God, with -the voice of joy and praise, with a multitude that kept holyday. - -42:5 Why art thou cast down, O my soul? and why art thou disquieted in -me? hope thou in God: for I shall yet praise him for the help of his -countenance. - -42:6 O my God, my soul is cast down within me: therefore will I -remember thee from the land of Jordan, and of the Hermonites, from the -hill Mizar. - -42:7 Deep calleth unto deep at the noise of thy waterspouts: all thy -waves and thy billows are gone over me. - -42:8 Yet the LORD will command his lovingkindness in the day time, and -in the night his song shall be with me, and my prayer unto the God of -my life. - -42:9 I will say unto God my rock, Why hast thou forgotten me? why go I -mourning because of the oppression of the enemy? - -42:10 As with a sword in my bones, mine enemies reproach me; while -they say daily unto me, Where is thy God? - -42:11 Why art thou cast down, O my soul? and why art thou disquieted -within me? hope thou in God: for I shall yet praise him, who is the -health of my countenance, and my God. - - - -43:1 Judge me, O God, and plead my cause against an ungodly nation: O -deliver me from the deceitful and unjust man. - -43:2 For thou art the God of my strength: why dost thou cast me off? -why go I mourning because of the oppression of the enemy? - -43:3 O send out thy light and thy truth: let them lead me; let them -bring me unto thy holy hill, and to thy tabernacles. - -43:4 Then will I go unto the altar of God, unto God my exceeding joy: -yea, upon the harp will I praise thee, O God my God. - -43:5 Why art thou cast down, O my soul? and why art thou disquieted -within me? hope in God: for I shall yet praise him, who is the health -of my countenance, and my God. - - - -44:1 We have heard with our ears, O God, our fathers have told us, -what work thou didst in their days, in the times of old. - -44:2 How thou didst drive out the heathen with thy hand, and plantedst -them; how thou didst afflict the people, and cast them out. - -44:3 For they got not the land in possession by their own sword, -neither did their own arm save them: but thy right hand, and thine -arm, and the light of thy countenance, because thou hadst a favour -unto them. - -44:4 Thou art my King, O God: command deliverances for Jacob. - -44:5 Through thee will we push down our enemies: through thy name will -we tread them under that rise up against us. - -44:6 For I will not trust in my bow, neither shall my sword save me. - -44:7 But thou hast saved us from our enemies, and hast put them to -shame that hated us. - -44:8 In God we boast all the day long, and praise thy name for ever. - -Selah. - -44:9 But thou hast cast off, and put us to shame; and goest not forth -with our armies. - -44:10 Thou makest us to turn back from the enemy: and they which hate -us spoil for themselves. - -44:11 Thou hast given us like sheep appointed for meat; and hast -scattered us among the heathen. - -44:12 Thou sellest thy people for nought, and dost not increase thy -wealth by their price. - -44:13 Thou makest us a reproach to our neighbours, a scorn and a -derision to them that are round about us. - -44:14 Thou makest us a byword among the heathen, a shaking of the head -among the people. - -44:15 My confusion is continually before me, and the shame of my face -hath covered me, - -44:16 For the voice of him that reproacheth and blasphemeth; by reason -of the enemy and avenger. - -44:17 All this is come upon us; yet have we not forgotten thee, -neither have we dealt falsely in thy covenant. - -44:18 Our heart is not turned back, neither have our steps declined -from thy way; - -44:19 Though thou hast sore broken us in the place of dragons, and -covered us with the shadow of death. - -44:20 If we have forgotten the name of our God, or stretched out our -hands to a strange god; - -44:21 Shall not God search this out? for he knoweth the secrets of the -heart. - -44:22 Yea, for thy sake are we killed all the day long; we are counted -as sheep for the slaughter. - -44:23 Awake, why sleepest thou, O Lord? arise, cast us not off for -ever. - -44:24 Wherefore hidest thou thy face, and forgettest our affliction -and our oppression? - -44:25 For our soul is bowed down to the dust: our belly cleaveth unto -the earth. - -44:26 Arise for our help, and redeem us for thy mercies' sake. - - - -45:1 My heart is inditing a good matter: I speak of the things which I -have made touching the king: my tongue is the pen of a ready writer. - -45:2 Thou art fairer than the children of men: grace is poured into -thy lips: therefore God hath blessed thee for ever. - -45:3 Gird thy sword upon thy thigh, O most mighty, with thy glory and -thy majesty. - -45:4 And in thy majesty ride prosperously because of truth and -meekness and righteousness; and thy right hand shall teach thee -terrible things. - -45:5 Thine arrows are sharp in the heart of the king's enemies; -whereby the people fall under thee. - -45:6 Thy throne, O God, is for ever and ever: the sceptre of thy -kingdom is a right sceptre. - -45:7 Thou lovest righteousness, and hatest wickedness: therefore God, -thy God, hath anointed thee with the oil of gladness above thy -fellows. - -45:8 All thy garments smell of myrrh, and aloes, and cassia, out of -the ivory palaces, whereby they have made thee glad. - -45:9 Kings' daughters were among thy honourable women: upon thy right -hand did stand the queen in gold of Ophir. - -45:10 Hearken, O daughter, and consider, and incline thine ear; forget -also thine own people, and thy father's house; - -45:11 So shall the king greatly desire thy beauty: for he is thy Lord; -and worship thou him. - -45:12 And the daughter of Tyre shall be there with a gift; even the -rich among the people shall intreat thy favour. - -45:13 The king's daughter is all glorious within: her clothing is of -wrought gold. - -45:14 She shall be brought unto the king in raiment of needlework: the -virgins her companions that follow her shall be brought unto thee. - -45:15 With gladness and rejoicing shall they be brought: they shall -enter into the king's palace. - -45:16 Instead of thy fathers shall be thy children, whom thou mayest -make princes in all the earth. - -45:17 I will make thy name to be remembered in all generations: -therefore shall the people praise thee for ever and ever. - - - -46:1 God is our refuge and strength, a very present help in trouble. - -46:2 Therefore will not we fear, though the earth be removed, and -though the mountains be carried into the midst of the sea; - -46:3 Though the waters thereof roar and be troubled, though the -mountains shake with the swelling thereof. Selah. - -46:4 There is a river, the streams whereof shall make glad the city of -God, the holy place of the tabernacles of the most High. - -46:5 God is in the midst of her; she shall not be moved: God shall -help her, and that right early. - -46:6 The heathen raged, the kingdoms were moved: he uttered his voice, -the earth melted. - -46:7 The LORD of hosts is with us; the God of Jacob is our refuge. -Selah. - -46:8 Come, behold the works of the LORD, what desolations he hath made -in the earth. - -46:9 He maketh wars to cease unto the end of the earth; he breaketh -the bow, and cutteth the spear in sunder; he burneth the chariot in -the fire. - -46:10 Be still, and know that I am God: I will be exalted among the -heathen, I will be exalted in the earth. - -46:11 The LORD of hosts is with us; the God of Jacob is our refuge. -Selah. - - - -47:1 O clap your hands, all ye people; shout unto God with the voice -of triumph. - -47:2 For the LORD most high is terrible; he is a great King over all -the earth. - -47:3 He shall subdue the people under us, and the nations under our -feet. - -47:4 He shall choose our inheritance for us, the excellency of Jacob -whom he loved. Selah. - -47:5 God is gone up with a shout, the LORD with the sound of a -trumpet. - -47:6 Sing praises to God, sing praises: sing praises unto our King, -sing praises. - -47:7 For God is the King of all the earth: sing ye praises with -understanding. - -47:8 God reigneth over the heathen: God sitteth upon the throne of his -holiness. - -47:9 The princes of the people are gathered together, even the people -of the God of Abraham: for the shields of the earth belong unto God: -he is greatly exalted. - - - -48:1 Great is the LORD, and greatly to be praised in the city of our -God, in the mountain of his holiness. - -48:2 Beautiful for situation, the joy of the whole earth, is mount -Zion, on the sides of the north, the city of the great King. - -48:3 God is known in her palaces for a refuge. - -48:4 For, lo, the kings were assembled, they passed by together. - -48:5 They saw it, and so they marvelled; they were troubled, and -hasted away. - -48:6 Fear took hold upon them there, and pain, as of a woman in -travail. - -48:7 Thou breakest the ships of Tarshish with an east wind. - -48:8 As we have heard, so have we seen in the city of the LORD of -hosts, in the city of our God: God will establish it for ever. Selah. - -48:9 We have thought of thy lovingkindness, O God, in the midst of thy -temple. - -48:10 According to thy name, O God, so is thy praise unto the ends of -the earth: thy right hand is full of righteousness. - -48:11 Let mount Zion rejoice, let the daughters of Judah be glad, -because of thy judgments. - -48:12 Walk about Zion, and go round about her: tell the towers -thereof. - -48:13 Mark ye well her bulwarks, consider her palaces; that ye may -tell it to the generation following. - -48:14 For this God is our God for ever and ever: he will be our guide -even unto death. - - - -49:1 Hear this, all ye people; give ear, all ye inhabitants of the -world: - -49:2 Both low and high, rich and poor, together. - -49:3 My mouth shall speak of wisdom; and the meditation of my heart -shall be of understanding. - -49:4 I will incline mine ear to a parable: I will open my dark saying -upon the harp. - -49:5 Wherefore should I fear in the days of evil, when the iniquity of -my heels shall compass me about? - -49:6 They that trust in their wealth, and boast themselves in the -multitude of their riches; - -49:7 None of them can by any means redeem his brother, nor give to God -a ransom for him: - -49:8 (For the redemption of their soul is precious, and it ceaseth for -ever:) - -49:9 That he should still live for ever, and not see corruption. - -49:10 For he seeth that wise men die, likewise the fool and the -brutish person perish, and leave their wealth to others. - -49:11 Their inward thought is, that their houses shall continue for -ever, and their dwelling places to all generations; they call their -lands after their own names. - -49:12 Nevertheless man being in honour abideth not: he is like the -beasts that perish. - -49:13 This their way is their folly: yet their posterity approve their -sayings. Selah. - -49:14 Like sheep they are laid in the grave; death shall feed on them; -and the upright shall have dominion over them in the morning; and -their beauty shall consume in the grave from their dwelling. - -49:15 But God will redeem my soul from the power of the grave: for he -shall receive me. Selah. - -49:16 Be not thou afraid when one is made rich, when the glory of his -house is increased; - -49:17 For when he dieth he shall carry nothing away: his glory shall -not descend after him. - -49:18 Though while he lived he blessed his soul: and men will praise -thee, when thou doest well to thyself. - -49:19 He shall go to the generation of his fathers; they shall never -see light. - -49:20 Man that is in honour, and understandeth not, is like the beasts -that perish. - - - -50:1 The mighty God, even the LORD, hath spoken, and called the earth -from the rising of the sun unto the going down thereof. - -50:2 Out of Zion, the perfection of beauty, God hath shined. - -50:3 Our God shall come, and shall not keep silence: a fire shall -devour before him, and it shall be very tempestuous round about him. - -50:4 He shall call to the heavens from above, and to the earth, that -he may judge his people. - -50:5 Gather my saints together unto me; those that have made a -covenant with me by sacrifice. - -50:6 And the heavens shall declare his righteousness: for God is judge -himself. Selah. - -50:7 Hear, O my people, and I will speak; O Israel, and I will testify -against thee: I am God, even thy God. - -50:8 I will not reprove thee for thy sacrifices or thy burnt -offerings, to have been continually before me. - -50:9 I will take no bullock out of thy house, nor he goats out of thy -folds. - -50:10 For every beast of the forest is mine, and the cattle upon a -thousand hills. - -50:11 I know all the fowls of the mountains: and the wild beasts of -the field are mine. - -50:12 If I were hungry, I would not tell thee: for the world is mine, -and the fulness thereof. - -50:13 Will I eat the flesh of bulls, or drink the blood of goats? - -50:14 Offer unto God thanksgiving; and pay thy vows unto the most -High: - -50:15 And call upon me in the day of trouble: I will deliver thee, and -thou shalt glorify me. - -50:16 But unto the wicked God saith, What hast thou to do to declare -my statutes, or that thou shouldest take my covenant in thy mouth? - -50:17 Seeing thou hatest instruction, and casteth my words behind -thee. - -50:18 When thou sawest a thief, then thou consentedst with him, and -hast been partaker with adulterers. - -50:19 Thou givest thy mouth to evil, and thy tongue frameth deceit. - -50:20 Thou sittest and speakest against thy brother; thou slanderest -thine own mother's son. - -50:21 These things hast thou done, and I kept silence; thou thoughtest -that I was altogether such an one as thyself: but I will reprove thee, -and set them in order before thine eyes. - -50:22 Now consider this, ye that forget God, lest I tear you in -pieces, and there be none to deliver. - -50:23 Whoso offereth praise glorifieth me: and to him that ordereth -his conversation aright will I shew the salvation of God. - - - -51:1 Have mercy upon me, O God, according to thy lovingkindness: -according unto the multitude of thy tender mercies blot out my -transgressions. - -51:2 Wash me throughly from mine iniquity, and cleanse me from my sin. - -51:3 For I acknowledge my transgressions: and my sin is ever before -me. - -51:4 Against thee, thee only, have I sinned, and done this evil in thy -sight: that thou mightest be justified when thou speakest, and be -clear when thou judgest. - -51:5 Behold, I was shapen in iniquity; and in sin did my mother -conceive me. - -51:6 Behold, thou desirest truth in the inward parts: and in the -hidden part thou shalt make me to know wisdom. - -51:7 Purge me with hyssop, and I shall be clean: wash me, and I shall -be whiter than snow. - -51:8 Make me to hear joy and gladness; that the bones which thou hast -broken may rejoice. - -51:9 Hide thy face from my sins, and blot out all mine iniquities. - -51:10 Create in me a clean heart, O God; and renew a right spirit -within me. - -51:11 Cast me not away from thy presence; and take not thy holy spirit -from me. - -51:12 Restore unto me the joy of thy salvation; and uphold me with thy -free spirit. - -51:13 Then will I teach transgressors thy ways; and sinners shall be -converted unto thee. - -51:14 Deliver me from bloodguiltiness, O God, thou God of my -salvation: and my tongue shall sing aloud of thy righteousness. - -51:15 O Lord, open thou my lips; and my mouth shall shew forth thy -praise. - -51:16 For thou desirest not sacrifice; else would I give it: thou -delightest not in burnt offering. - -51:17 The sacrifices of God are a broken spirit: a broken and a -contrite heart, O God, thou wilt not despise. - -51:18 Do good in thy good pleasure unto Zion: build thou the walls of -Jerusalem. - -51:19 Then shalt thou be pleased with the sacrifices of righteousness, -with burnt offering and whole burnt offering: then shall they offer -bullocks upon thine altar. - - - -52:1 Why boastest thou thyself in mischief, O mighty man? the goodness -of God endureth continually. - -52:2 The tongue deviseth mischiefs; like a sharp razor, working -deceitfully. - -52:3 Thou lovest evil more than good; and lying rather than to speak -righteousness. Selah. - -52:4 Thou lovest all devouring words, O thou deceitful tongue. - -52:5 God shall likewise destroy thee for ever, he shall take thee -away, and pluck thee out of thy dwelling place, and root thee out of -the land of the living. Selah. - -52:6 The righteous also shall see, and fear, and shall laugh at him: - -52:7 Lo, this is the man that made not God his strength; but trusted -in the abundance of his riches, and strengthened himself in his -wickedness. - -52:8 But I am like a green olive tree in the house of God: I trust in -the mercy of God for ever and ever. - -52:9 I will praise thee for ever, because thou hast done it: and I -will wait on thy name; for it is good before thy saints. - - - -53:1 The fool hath said in his heart, There is no God. Corrupt are -they, and have done abominable iniquity: there is none that doeth -good. - -53:2 God looked down from heaven upon the children of men, to see if -there were any that did understand, that did seek God. - -53:3 Every one of them is gone back: they are altogether become -filthy; there is none that doeth good, no, not one. - -53:4 Have the workers of iniquity no knowledge? who eat up my people -as they eat bread: they have not called upon God. - -53:5 There were they in great fear, where no fear was: for God hath -scattered the bones of him that encampeth against thee: thou hast put -them to shame, because God hath despised them. - -53:6 Oh that the salvation of Israel were come out of Zion! When God -bringeth back the captivity of his people, Jacob shall rejoice, and -Israel shall be glad. - - - -54:1 Save me, O God, by thy name, and judge me by thy strength. - -54:2 Hear my prayer, O God; give ear to the words of my mouth. - -54:3 For strangers are risen up against me, and oppressors seek after -my soul: they have not set God before them. Selah. - -54:4 Behold, God is mine helper: the Lord is with them that uphold my -soul. - -54:5 He shall reward evil unto mine enemies: cut them off in thy -truth. - -54:6 I will freely sacrifice unto thee: I will praise thy name, O -LORD; for it is good. - -54:7 For he hath delivered me out of all trouble: and mine eye hath -seen his desire upon mine enemies. - - - -55:1 Give ear to my prayer, O God; and hide not thyself from my -supplication. - -55:2 Attend unto me, and hear me: I mourn in my complaint, and make a -noise; - -55:3 Because of the voice of the enemy, because of the oppression of -the wicked: for they cast iniquity upon me, and in wrath they hate me. - -55:4 My heart is sore pained within me: and the terrors of death are -fallen upon me. - -55:5 Fearfulness and trembling are come upon me, and horror hath -overwhelmed me. - -55:6 And I said, Oh that I had wings like a dove! for then would I fly -away, and be at rest. - -55:7 Lo, then would I wander far off, and remain in the wilderness. -Selah. - -55:8 I would hasten my escape from the windy storm and tempest. - -55:9 Destroy, O Lord, and divide their tongues: for I have seen -violence and strife in the city. - -55:10 Day and night they go about it upon the walls thereof: mischief -also and sorrow are in the midst of it. - -55:11 Wickedness is in the midst thereof: deceit and guile depart not -from her streets. - -55:12 For it was not an enemy that reproached me; then I could have -borne it: neither was it he that hated me that did magnify himself -against me; then I would have hid myself from him: - -55:13 But it was thou, a man mine equal, my guide, and mine -acquaintance. - -55:14 We took sweet counsel together, and walked unto the house of God -in company. - -55:15 Let death seize upon them, and let them go down quick into hell: -for wickedness is in their dwellings, and among them. - -55:16 As for me, I will call upon God; and the LORD shall save me. - -55:17 Evening, and morning, and at noon, will I pray, and cry aloud: -and he shall hear my voice. - -55:18 He hath delivered my soul in peace from the battle that was -against me: for there were many with me. - -55:19 God shall hear, and afflict them, even he that abideth of old. - -Selah. Because they have no changes, therefore they fear not God. - -55:20 He hath put forth his hands against such as be at peace with -him: he hath broken his covenant. - -55:21 The words of his mouth were smoother than butter, but war was in -his heart: his words were softer than oil, yet were they drawn swords. - -55:22 Cast thy burden upon the LORD, and he shall sustain thee: he -shall never suffer the righteous to be moved. - -55:23 But thou, O God, shalt bring them down into the pit of -destruction: bloody and deceitful men shall not live out half their -days; but I will trust in thee. - - - -56:1 Be merciful unto me, O God: for man would swallow me up; he -fighting daily oppresseth me. - -56:2 Mine enemies would daily swallow me up: for they be many that -fight against me, O thou most High. - -56:3 What time I am afraid, I will trust in thee. - -56:4 In God I will praise his word, in God I have put my trust; I will -not fear what flesh can do unto me. - -56:5 Every day they wrest my words: all their thoughts are against me -for evil. - -56:6 They gather themselves together, they hide themselves, they mark -my steps, when they wait for my soul. - -56:7 Shall they escape by iniquity? in thine anger cast down the -people, O God. - -56:8 Thou tellest my wanderings: put thou my tears into thy bottle: -are they not in thy book? - -56:9 When I cry unto thee, then shall mine enemies turn back: this I -know; for God is for me. - -56:10 In God will I praise his word: in the LORD will I praise his -word. - -56:11 In God have I put my trust: I will not be afraid what man can do -unto me. - -56:12 Thy vows are upon me, O God: I will render praises unto thee. - -56:13 For thou hast delivered my soul from death: wilt not thou -deliver my feet from falling, that I may walk before God in the light -of the living? - - - -57:1 Be merciful unto me, O God, be merciful unto me: for my soul -trusteth in thee: yea, in the shadow of thy wings will I make my -refuge, until these calamities be overpast. - -57:2 I will cry unto God most high; unto God that performeth all -things for me. - -57:3 He shall send from heaven, and save me from the reproach of him -that would swallow me up. Selah. God shall send forth his mercy and -his truth. - -57:4 My soul is among lions: and I lie even among them that are set on -fire, even the sons of men, whose teeth are spears and arrows, and -their tongue a sharp sword. - -57:5 Be thou exalted, O God, above the heavens; let thy glory be above -all the earth. - -57:6 They have prepared a net for my steps; my soul is bowed down: -they have digged a pit before me, into the midst whereof they are -fallen themselves. Selah. - -57:7 My heart is fixed, O God, my heart is fixed: I will sing and give -praise. - -57:8 Awake up, my glory; awake, psaltery and harp: I myself will awake -early. - -57:9 I will praise thee, O Lord, among the people: I will sing unto -thee among the nations. - -57:10 For thy mercy is great unto the heavens, and thy truth unto the -clouds. - -57:11 Be thou exalted, O God, above the heavens: let thy glory be -above all the earth. - - - -58:1 Do ye indeed speak righteousness, O congregation? do ye judge -uprightly, O ye sons of men? - -58:2 Yea, in heart ye work wickedness; ye weigh the violence of your -hands in the earth. - -58:3 The wicked are estranged from the womb: they go astray as soon as -they be born, speaking lies. - -58:4 Their poison is like the poison of a serpent: they are like the -deaf adder that stoppeth her ear; - -58:5 Which will not hearken to the voice of charmers, charming never -so wisely. - -58:6 Break their teeth, O God, in their mouth: break out the great -teeth of the young lions, O LORD. - -58:7 Let them melt away as waters which run continually: when he -bendeth his bow to shoot his arrows, let them be as cut in pieces. - -58:8 As a snail which melteth, let every one of them pass away: like -the untimely birth of a woman, that they may not see the sun. - -58:9 Before your pots can feel the thorns, he shall take them away as -with a whirlwind, both living, and in his wrath. - -58:10 The righteous shall rejoice when he seeth the vengeance: he -shall wash his feet in the blood of the wicked. - -58:11 So that a man shall say, Verily there is a reward for the -righteous: verily he is a God that judgeth in the earth. - - - -59:1 Deliver me from mine enemies, O my God: defend me from them that -rise up against me. - -59:2 Deliver me from the workers of iniquity, and save me from bloody -men. - -59:3 For, lo, they lie in wait for my soul: the mighty are gathered -against me; not for my transgression, nor for my sin, O LORD. - -59:4 They run and prepare themselves without my fault: awake to help -me, and behold. - -59:5 Thou therefore, O LORD God of hosts, the God of Israel, awake to -visit all the heathen: be not merciful to any wicked transgressors. -Selah. - -59:6 They return at evening: they make a noise like a dog, and go -round about the city. - -59:7 Behold, they belch out with their mouth: swords are in their -lips: for who, say they, doth hear? - -59:8 But thou, O LORD, shalt laugh at them; thou shalt have all the -heathen in derision. - -59:9 Because of his strength will I wait upon thee: for God is my -defence. - -59:10 The God of my mercy shall prevent me: God shall let me see my -desire upon mine enemies. - -59:11 Slay them not, lest my people forget: scatter them by thy power; -and bring them down, O Lord our shield. - -59:12 For the sin of their mouth and the words of their lips let them -even be taken in their pride: and for cursing and lying which they -speak. - -59:13 Consume them in wrath, consume them, that they may not be: and -let them know that God ruleth in Jacob unto the ends of the earth. -Selah. - -59:14 And at evening let them return; and let them make a noise like a -dog, and go round about the city. - -59:15 Let them wander up and down for meat, and grudge if they be not -satisfied. - -59:16 But I will sing of thy power; yea, I will sing aloud of thy -mercy in the morning: for thou hast been my defence and refuge in the -day of my trouble. - -59:17 Unto thee, O my strength, will I sing: for God is my defence, -and the God of my mercy. - - - -60:1 O God, thou hast cast us off, thou hast scattered us, thou hast -been displeased; O turn thyself to us again. - -60:2 Thou hast made the earth to tremble; thou hast broken it: heal -the breaches thereof; for it shaketh. - -60:3 Thou hast shewed thy people hard things: thou hast made us to -drink the wine of astonishment. - -60:4 Thou hast given a banner to them that fear thee, that it may be -displayed because of the truth. Selah. - -60:5 That thy beloved may be delivered; save with thy right hand, and -hear me. - -60:6 God hath spoken in his holiness; I will rejoice, I will divide -Shechem, and mete out the valley of Succoth. - -60:7 Gilead is mine, and Manasseh is mine; Ephraim also is the -strength of mine head; Judah is my lawgiver; - -60:8 Moab is my washpot; over Edom will I cast out my shoe: Philistia, -triumph thou because of me. - -60:9 Who will bring me into the strong city? who will lead me into -Edom? - -60:10 Wilt not thou, O God, which hadst cast us off? and thou, O God, -which didst not go out with our armies? - -60:11 Give us help from trouble: for vain is the help of man. - -60:12 Through God we shall do valiantly: for he it is that shall tread -down our enemies. - - - -61:1 Hear my cry, O God; attend unto my prayer. - -61:2 From the end of the earth will I cry unto thee, when my heart is -overwhelmed: lead me to the rock that is higher than I. - -61:3 For thou hast been a shelter for me, and a strong tower from the -enemy. - -61:4 I will abide in thy tabernacle for ever: I will trust in the -covert of thy wings. Selah. - -61:5 For thou, O God, hast heard my vows: thou hast given me the -heritage of those that fear thy name. - -61:6 Thou wilt prolong the king's life: and his years as many -generations. - -61:7 He shall abide before God for ever: O prepare mercy and truth, -which may preserve him. - -61:8 So will I sing praise unto thy name for ever, that I may daily -perform my vows. - - - -62:1 Truly my soul waiteth upon God: from him cometh my salvation. - -62:2 He only is my rock and my salvation; he is my defence; I shall -not be greatly moved. - -62:3 How long will ye imagine mischief against a man? ye shall be -slain all of you: as a bowing wall shall ye be, and as a tottering -fence. - -62:4 They only consult to cast him down from his excellency: they -delight in lies: they bless with their mouth, but they curse inwardly. -Selah. - -62:5 My soul, wait thou only upon God; for my expectation is from him. - -62:6 He only is my rock and my salvation: he is my defence; I shall -not be moved. - -62:7 In God is my salvation and my glory: the rock of my strength, and -my refuge, is in God. - -62:8 Trust in him at all times; ye people, pour out your heart before -him: God is a refuge for us. Selah. - -62:9 Surely men of low degree are vanity, and men of high degree are a -lie: to be laid in the balance, they are altogether lighter than -vanity. - -62:10 Trust not in oppression, and become not vain in robbery: if -riches increase, set not your heart upon them. - -62:11 God hath spoken once; twice have I heard this; that power -belongeth unto God. - -62:12 Also unto thee, O Lord, belongeth mercy: for thou renderest to -every man according to his work. - - - -63:1 O God, thou art my God; early will I seek thee: my soul thirsteth -for thee, my flesh longeth for thee in a dry and thirsty land, where -no water is; - -63:2 To see thy power and thy glory, so as I have seen thee in the -sanctuary. - -63:3 Because thy lovingkindness is better than life, my lips shall -praise thee. - -63:4 Thus will I bless thee while I live: I will lift up my hands in -thy name. - -63:5 My soul shall be satisfied as with marrow and fatness; and my -mouth shall praise thee with joyful lips: - -63:6 When I remember thee upon my bed, and meditate on thee in the -night watches. - -63:7 Because thou hast been my help, therefore in the shadow of thy -wings will I rejoice. - -63:8 My soul followeth hard after thee: thy right hand upholdeth me. - -63:9 But those that seek my soul, to destroy it, shall go into the -lower parts of the earth. - -63:10 They shall fall by the sword: they shall be a portion for foxes. - -63:11 But the king shall rejoice in God; every one that sweareth by -him shall glory: but the mouth of them that speak lies shall be -stopped. - - - -64:1 Hear my voice, O God, in my prayer: preserve my life from fear of -the enemy. - -64:2 Hide me from the secret counsel of the wicked; from the -insurrection of the workers of iniquity: - -64:3 Who whet their tongue like a sword, and bend their bows to shoot -their arrows, even bitter words: - -64:4 That they may shoot in secret at the perfect: suddenly do they -shoot at him, and fear not. - -64:5 They encourage themselves in an evil matter: they commune of -laying snares privily; they say, Who shall see them? - -64:6 They search out iniquities; they accomplish a diligent search: -both the inward thought of every one of them, and the heart, is deep. - -64:7 But God shall shoot at them with an arrow; suddenly shall they be -wounded. - -64:8 So they shall make their own tongue to fall upon themselves: all -that see them shall flee away. - -64:9 And all men shall fear, and shall declare the work of God; for -they shall wisely consider of his doing. - -64:10 The righteous shall be glad in the LORD, and shall trust in him; -and all the upright in heart shall glory. - - - -65:1 Praise waiteth for thee, O God, in Sion: and unto thee shall the -vow be performed. - -65:2 O thou that hearest prayer, unto thee shall all flesh come. - -65:3 Iniquities prevail against me: as for our transgressions, thou -shalt purge them away. - -65:4 Blessed is the man whom thou choosest, and causest to approach -unto thee, that he may dwell in thy courts: we shall be satisfied with -the goodness of thy house, even of thy holy temple. - -65:5 By terrible things in righteousness wilt thou answer us, O God of -our salvation; who art the confidence of all the ends of the earth, -and of them that are afar off upon the sea: - -65:6 Which by his strength setteth fast the mountains; being girded -with power: - -65:7 Which stilleth the noise of the seas, the noise of their waves, -and the tumult of the people. - -65:8 They also that dwell in the uttermost parts are afraid at thy -tokens: thou makest the outgoings of the morning and evening to -rejoice. - -65:9 Thou visitest the earth, and waterest it: thou greatly enrichest -it with the river of God, which is full of water: thou preparest them -corn, when thou hast so provided for it. - -65:10 Thou waterest the ridges thereof abundantly: thou settlest the -furrows thereof: thou makest it soft with showers: thou blessest the -springing thereof. - -65:11 Thou crownest the year with thy goodness; and thy paths drop -fatness. - -65:12 They drop upon the pastures of the wilderness: and the little -hills rejoice on every side. - -65:13 The pastures are clothed with flocks; the valleys also are -covered over with corn; they shout for joy, they also sing. - - - -66:1 Make a joyful noise unto God, all ye lands: - -66:2 Sing forth the honour of his name: make his praise glorious. - -66:3 Say unto God, How terrible art thou in thy works! through the -greatness of thy power shall thine enemies submit themselves unto -thee. - -66:4 All the earth shall worship thee, and shall sing unto thee; they -shall sing to thy name. Selah. - -66:5 Come and see the works of God: he is terrible in his doing toward -the children of men. - -66:6 He turned the sea into dry land: they went through the flood on -foot: there did we rejoice in him. - -66:7 He ruleth by his power for ever; his eyes behold the nations: let -not the rebellious exalt themselves. Selah. - -66:8 O bless our God, ye people, and make the voice of his praise to -be heard: - -66:9 Which holdeth our soul in life, and suffereth not our feet to be -moved. - -66:10 For thou, O God, hast proved us: thou hast tried us, as silver -is tried. - -66:11 Thou broughtest us into the net; thou laidst affliction upon our -loins. - -66:12 Thou hast caused men to ride over our heads; we went through -fire and through water: but thou broughtest us out into a wealthy -place. - -66:13 I will go into thy house with burnt offerings: I will pay thee -my vows, - -66:14 Which my lips have uttered, and my mouth hath spoken, when I was -in trouble. - -66:15 I will offer unto thee burnt sacrifices of fatlings, with the -incense of rams; I will offer bullocks with goats. Selah. - -66:16 Come and hear, all ye that fear God, and I will declare what he -hath done for my soul. - -66:17 I cried unto him with my mouth, and he was extolled with my -tongue. - -66:18 If I regard iniquity in my heart, the Lord will not hear me: - -66:19 But verily God hath heard me; he hath attended to the voice of -my prayer. - -66:20 Blessed be God, which hath not turned away my prayer, nor his -mercy from me. - - - -67:1 God be merciful unto us, and bless us; and cause his face to -shine upon us; Selah. - -67:2 That thy way may be known upon earth, thy saving health among all -nations. - -67:3 Let the people praise thee, O God; let all the people praise -thee. - -67:4 O let the nations be glad and sing for joy: for thou shalt judge -the people righteously, and govern the nations upon earth. Selah. - -67:5 Let the people praise thee, O God; let all the people praise -thee. - -67:6 Then shall the earth yield her increase; and God, even our own -God, shall bless us. - -67:7 God shall bless us; and all the ends of the earth shall fear him. - - - -68:1 Let God arise, let his enemies be scattered: let them also that -hate him flee before him. - -68:2 As smoke is driven away, so drive them away: as wax melteth -before the fire, so let the wicked perish at the presence of God. - -68:3 But let the righteous be glad; let them rejoice before God: yea, -let them exceedingly rejoice. - -68:4 Sing unto God, sing praises to his name: extol him that rideth -upon the heavens by his name JAH, and rejoice before him. - -68:5 A father of the fatherless, and a judge of the widows, is God in -his holy habitation. - -68:6 God setteth the solitary in families: he bringeth out those which -are bound with chains: but the rebellious dwell in a dry land. - -68:7 O God, when thou wentest forth before thy people, when thou didst -march through the wilderness; Selah: - -68:8 The earth shook, the heavens also dropped at the presence of God: -even Sinai itself was moved at the presence of God, the God of Israel. - -68:9 Thou, O God, didst send a plentiful rain, whereby thou didst -confirm thine inheritance, when it was weary. - -68:10 Thy congregation hath dwelt therein: thou, O God, hast prepared -of thy goodness for the poor. - -68:11 The Lord gave the word: great was the company of those that -published it. - -68:12 Kings of armies did flee apace: and she that tarried at home -divided the spoil. - -68:13 Though ye have lien among the pots, yet shall ye be as the wings -of a dove covered with silver, and her feathers with yellow gold. - -68:14 When the Almighty scattered kings in it, it was white as snow in -Salmon. - -68:15 The hill of God is as the hill of Bashan; an high hill as the -hill of Bashan. - -68:16 Why leap ye, ye high hills? this is the hill which God desireth -to dwell in; yea, the LORD will dwell in it for ever. - -68:17 The chariots of God are twenty thousand, even thousands of -angels: the Lord is among them, as in Sinai, in the holy place. - -68:18 Thou hast ascended on high, thou hast led captivity captive: -thou hast received gifts for men; yea, for the rebellious also, that -the LORD God might dwell among them. - -68:19 Blessed be the Lord, who daily loadeth us with benefits, even -the God of our salvation. Selah. - -68:20 He that is our God is the God of salvation; and unto GOD the -Lord belong the issues from death. - -68:21 But God shall wound the head of his enemies, and the hairy scalp -of such an one as goeth on still in his trespasses. - -68:22 The Lord said, I will bring again from Bashan, I will bring my -people again from the depths of the sea: - -68:23 That thy foot may be dipped in the blood of thine enemies, and -the tongue of thy dogs in the same. - -68:24 They have seen thy goings, O God; even the goings of my God, my -King, in the sanctuary. - -68:25 The singers went before, the players on instruments followed -after; among them were the damsels playing with timbrels. - -68:26 Bless ye God in the congregations, even the Lord, from the -fountain of Israel. - -68:27 There is little Benjamin with their ruler, the princes of Judah -and their council, the princes of Zebulun, and the princes of -Naphtali. - -68:28 Thy God hath commanded thy strength: strengthen, O God, that -which thou hast wrought for us. - -68:29 Because of thy temple at Jerusalem shall kings bring presents -unto thee. - -68:30 Rebuke the company of spearmen, the multitude of the bulls, with -the calves of the people, till every one submit himself with pieces of -silver: scatter thou the people that delight in war. - -68:31 Princes shall come out of Egypt; Ethiopia shall soon stretch out -her hands unto God. - -68:32 Sing unto God, ye kingdoms of the earth; O sing praises unto the -Lord; Selah: - -68:33 To him that rideth upon the heavens of heavens, which were of -old; lo, he doth send out his voice, and that a mighty voice. - -68:34 Ascribe ye strength unto God: his excellency is over Israel, and -his strength is in the clouds. - -68:35 O God, thou art terrible out of thy holy places: the God of -Israel is he that giveth strength and power unto his people. Blessed -be God. - - - -69:1 Save me, O God; for the waters are come in unto my soul. - -69:2 I sink in deep mire, where there is no standing: I am come into -deep waters, where the floods overflow me. - -69:3 I am weary of my crying: my throat is dried: mine eyes fail while -I wait for my God. - -69:4 They that hate me without a cause are more than the hairs of mine -head: they that would destroy me, being mine enemies wrongfully, are -mighty: then I restored that which I took not away. - -69:5 O God, thou knowest my foolishness; and my sins are not hid from -thee. - -69:6 Let not them that wait on thee, O Lord GOD of hosts, be ashamed -for my sake: let not those that seek thee be confounded for my sake, O -God of Israel. - -69:7 Because for thy sake I have borne reproach; shame hath covered my -face. - -69:8 I am become a stranger unto my brethren, and an alien unto my -mother's children. - -69:9 For the zeal of thine house hath eaten me up; and the reproaches -of them that reproached thee are fallen upon me. - -69:10 When I wept, and chastened my soul with fasting, that was to my -reproach. - -69:11 I made sackcloth also my garment; and I became a proverb to -them. - -69:12 They that sit in the gate speak against me; and I was the song -of the drunkards. - -69:13 But as for me, my prayer is unto thee, O LORD, in an acceptable -time: O God, in the multitude of thy mercy hear me, in the truth of -thy salvation. - -69:14 Deliver me out of the mire, and let me not sink: let me be -delivered from them that hate me, and out of the deep waters. - -69:15 Let not the waterflood overflow me, neither let the deep swallow -me up, and let not the pit shut her mouth upon me. - -69:16 Hear me, O LORD; for thy lovingkindness is good: turn unto me -according to the multitude of thy tender mercies. - -69:17 And hide not thy face from thy servant; for I am in trouble: -hear me speedily. - -69:18 Draw nigh unto my soul, and redeem it: deliver me because of -mine enemies. - -69:19 Thou hast known my reproach, and my shame, and my dishonour: -mine adversaries are all before thee. - -69:20 Reproach hath broken my heart; and I am full of heaviness: and I -looked for some to take pity, but there was none; and for comforters, -but I found none. - -69:21 They gave me also gall for my meat; and in my thirst they gave -me vinegar to drink. - -69:22 Let their table become a snare before them: and that which -should have been for their welfare, let it become a trap. - -69:23 Let their eyes be darkened, that they see not; and make their -loins continually to shake. - -69:24 Pour out thine indignation upon them, and let thy wrathful anger -take hold of them. - -69:25 Let their habitation be desolate; and let none dwell in their -tents. - -69:26 For they persecute him whom thou hast smitten; and they talk to -the grief of those whom thou hast wounded. - -69:27 Add iniquity unto their iniquity: and let them not come into thy -righteousness. - -69:28 Let them be blotted out of the book of the living, and not be -written with the righteous. - -69:29 But I am poor and sorrowful: let thy salvation, O God, set me up -on high. - -69:30 I will praise the name of God with a song, and will magnify him -with thanksgiving. - -69:31 This also shall please the LORD better than an ox or bullock -that hath horns and hoofs. - -69:32 The humble shall see this, and be glad: and your heart shall -live that seek God. - -69:33 For the LORD heareth the poor, and despiseth not his prisoners. - -69:34 Let the heaven and earth praise him, the seas, and every thing -that moveth therein. - -69:35 For God will save Zion, and will build the cities of Judah: that -they may dwell there, and have it in possession. - -69:36 The seed also of his servants shall inherit it: and they that -love his name shall dwell therein. - - - -70:1 Make haste, O God, to deliver me; make haste to help me, O Lord. - -70:2 Let them be ashamed and confounded that seek after my soul: let -them be turned backward, and put to confusion, that desire my hurt. - -70:3 Let them be turned back for a reward of their shame that say, -Aha, aha. - -70:4 Let all those that seek thee rejoice and be glad in thee: and let -such as love thy salvation say continually, Let God be magnified. - -70:5 But I am poor and needy: make haste unto me, O God: thou art my -help and my deliverer; O LORD, make no tarrying. - - - -71:1 In thee, O LORD, do I put my trust: let me never be put to -confusion. - -71:2 Deliver me in thy righteousness, and cause me to escape: incline -thine ear unto me, and save me. - -71:3 Be thou my strong habitation, whereunto I may continually resort: -thou hast given commandment to save me; for thou art my rock and my -fortress. - -71:4 Deliver me, O my God, out of the hand of the wicked, out of the -hand of the unrighteous and cruel man. - -71:5 For thou art my hope, O Lord GOD: thou art my trust from my -youth. - -71:6 By thee have I been holden up from the womb: thou art he that -took me out of my mother's bowels: my praise shall be continually of -thee. - -71:7 I am as a wonder unto many; but thou art my strong refuge. - -71:8 Let my mouth be filled with thy praise and with thy honour all -the day. - -71:9 Cast me not off in the time of old age; forsake me not when my -strength faileth. - -71:10 For mine enemies speak against me; and they that lay wait for my -soul take counsel together, - -71:11 Saying, God hath forsaken him: persecute and take him; for there -is none to deliver him. - -71:12 O God, be not far from me: O my God, make haste for my help. - -71:13 Let them be confounded and consumed that are adversaries to my -soul; let them be covered with reproach and dishonour that seek my -hurt. - -71:14 But I will hope continually, and will yet praise thee more and -more. - -71:15 My mouth shall shew forth thy righteousness and thy salvation -all the day; for I know not the numbers thereof. - -71:16 I will go in the strength of the Lord GOD: I will make mention -of thy righteousness, even of thine only. - -71:17 O God, thou hast taught me from my youth: and hitherto have I -declared thy wondrous works. - -71:18 Now also when I am old and greyheaded, O God, forsake me not; -until I have shewed thy strength unto this generation, and thy power -to every one that is to come. - -71:19 Thy righteousness also, O God, is very high, who hast done great -things: O God, who is like unto thee! - -71:20 Thou, which hast shewed me great and sore troubles, shalt -quicken me again, and shalt bring me up again from the depths of the -earth. - -71:21 Thou shalt increase my greatness, and comfort me on every side. - -71:22 I will also praise thee with the psaltery, even thy truth, O my -God: unto thee will I sing with the harp, O thou Holy One of Israel. - -71:23 My lips shall greatly rejoice when I sing unto thee; and my -soul, which thou hast redeemed. - -71:24 My tongue also shall talk of thy righteousness all the day long: -for they are confounded, for they are brought unto shame, that seek my -hurt. - - - -72:1 Give the king thy judgments, O God, and thy righteousness unto -the king's son. - -72:2 He shall judge thy people with righteousness, and thy poor with -judgment. - -72:3 The mountains shall bring peace to the people, and the little -hills, by righteousness. - -72:4 He shall judge the poor of the people, he shall save the children -of the needy, and shall break in pieces the oppressor. - -72:5 They shall fear thee as long as the sun and moon endure, -throughout all generations. - -72:6 He shall come down like rain upon the mown grass: as showers that -water the earth. - -72:7 In his days shall the righteous flourish; and abundance of peace -so long as the moon endureth. - -72:8 He shall have dominion also from sea to sea, and from the river -unto the ends of the earth. - -72:9 They that dwell in the wilderness shall bow before him; and his -enemies shall lick the dust. - -72:10 The kings of Tarshish and of the isles shall bring presents: the -kings of Sheba and Seba shall offer gifts. - -72:11 Yea, all kings shall fall down before him: all nations shall -serve him. - -72:12 For he shall deliver the needy when he crieth; the poor also, -and him that hath no helper. - -72:13 He shall spare the poor and needy, and shall save the souls of -the needy. - -72:14 He shall redeem their soul from deceit and violence: and -precious shall their blood be in his sight. - -72:15 And he shall live, and to him shall be given of the gold of -Sheba: prayer also shall be made for him continually; and daily shall -he be praised. - -72:16 There shall be an handful of corn in the earth upon the top of -the mountains; the fruit thereof shall shake like Lebanon: and they of -the city shall flourish like grass of the earth. - -72:17 His name shall endure for ever: his name shall be continued as -long as the sun: and men shall be blessed in him: all nations shall -call him blessed. - -72:18 Blessed be the LORD God, the God of Israel, who only doeth -wondrous things. - -72:19 And blessed be his glorious name for ever: and let the whole -earth be filled with his glory; Amen, and Amen. - -72:20 The prayers of David the son of Jesse are ended. - - - -73:1 Truly God is good to Israel, even to such as are of a clean -heart. - -73:2 But as for me, my feet were almost gone; my steps had well nigh -slipped. - -73:3 For I was envious at the foolish, when I saw the prosperity of -the wicked. - -73:4 For there are no bands in their death: but their strength is -firm. - -73:5 They are not in trouble as other men; neither are they plagued -like other men. - -73:6 Therefore pride compasseth them about as a chain; violence -covereth them as a garment. - -73:7 Their eyes stand out with fatness: they have more than heart -could wish. - -73:8 They are corrupt, and speak wickedly concerning oppression: they -speak loftily. - -73:9 They set their mouth against the heavens, and their tongue -walketh through the earth. - -73:10 Therefore his people return hither: and waters of a full cup are -wrung out to them. - -73:11 And they say, How doth God know? and is there knowledge in the -most High? - -73:12 Behold, these are the ungodly, who prosper in the world; they -increase in riches. - -73:13 Verily I have cleansed my heart in vain, and washed my hands in -innocency. - -73:14 For all the day long have I been plagued, and chastened every -morning. - -73:15 If I say, I will speak thus; behold, I should offend against the -generation of thy children. - -73:16 When I thought to know this, it was too painful for me; - -73:17 Until I went into the sanctuary of God; then understood I their -end. - -73:18 Surely thou didst set them in slippery places: thou castedst -them down into destruction. - -73:19 How are they brought into desolation, as in a moment! they are -utterly consumed with terrors. - -73:20 As a dream when one awaketh; so, O Lord, when thou awakest, thou -shalt despise their image. - -73:21 Thus my heart was grieved, and I was pricked in my reins. - -73:22 So foolish was I, and ignorant: I was as a beast before thee. - -73:23 Nevertheless I am continually with thee: thou hast holden me by -my right hand. - -73:24 Thou shalt guide me with thy counsel, and afterward receive me -to glory. - -73:25 Whom have I in heaven but thee? and there is none upon earth -that I desire beside thee. - -73:26 My flesh and my heart faileth: but God is the strength of my -heart, and my portion for ever. - -73:27 For, lo, they that are far from thee shall perish: thou hast -destroyed all them that go a whoring from thee. - -73:28 But it is good for me to draw near to God: I have put my trust -in the Lord GOD, that I may declare all thy works. - - - -74:1 O God, why hast thou cast us off for ever? why doth thine anger -smoke against the sheep of thy pasture? - -74:2 Remember thy congregation, which thou hast purchased of old; the -rod of thine inheritance, which thou hast redeemed; this mount Zion, -wherein thou hast dwelt. - -74:3 Lift up thy feet unto the perpetual desolations; even all that -the enemy hath done wickedly in the sanctuary. - -74:4 Thine enemies roar in the midst of thy congregations; they set up -their ensigns for signs. - -74:5 A man was famous according as he had lifted up axes upon the -thick trees. - -74:6 But now they break down the carved work thereof at once with axes -and hammers. - -74:7 They have cast fire into thy sanctuary, they have defiled by -casting down the dwelling place of thy name to the ground. - -74:8 They said in their hearts, Let us destroy them together: they -have burned up all the synagogues of God in the land. - -74:9 We see not our signs: there is no more any prophet: neither is -there among us any that knoweth how long. - -74:10 O God, how long shall the adversary reproach? shall the enemy -blaspheme thy name for ever? - -74:11 Why withdrawest thou thy hand, even thy right hand? pluck it out -of thy bosom. - -74:12 For God is my King of old, working salvation in the midst of the -earth. - -74:13 Thou didst divide the sea by thy strength: thou brakest the -heads of the dragons in the waters. - -74:14 Thou brakest the heads of leviathan in pieces, and gavest him to -be meat to the people inhabiting the wilderness. - -74:15 Thou didst cleave the fountain and the flood: thou driedst up -mighty rivers. - -74:16 The day is thine, the night also is thine: thou hast prepared -the light and the sun. - -74:17 Thou hast set all the borders of the earth: thou hast made -summer and winter. - -74:18 Remember this, that the enemy hath reproached, O LORD, and that -the foolish people have blasphemed thy name. - -74:19 O deliver not the soul of thy turtledove unto the multitude of -the wicked: forget not the congregation of thy poor for ever. - -74:20 Have respect unto the covenant: for the dark places of the earth -are full of the habitations of cruelty. - -74:21 O let not the oppressed return ashamed: let the poor and needy -praise thy name. - -74:22 Arise, O God, plead thine own cause: remember how the foolish -man reproacheth thee daily. - -74:23 Forget not the voice of thine enemies: the tumult of those that -rise up against thee increaseth continually. - - - -75:1 Unto thee, O God, do we give thanks, unto thee do we give thanks: -for that thy name is near thy wondrous works declare. - -75:2 When I shall receive the congregation I will judge uprightly. - -75:3 The earth and all the inhabitants thereof are dissolved: I bear -up the pillars of it. Selah. - -75:4 I said unto the fools, Deal not foolishly: and to the wicked, -Lift not up the horn: - -75:5 Lift not up your horn on high: speak not with a stiff neck. - -75:6 For promotion cometh neither from the east, nor from the west, -nor from the south. - -75:7 But God is the judge: he putteth down one, and setteth up -another. - -75:8 For in the hand of the LORD there is a cup, and the wine is red; -it is full of mixture; and he poureth out of the same: but the dregs -thereof, all the wicked of the earth shall wring them out, and drink -them. - -75:9 But I will declare for ever; I will sing praises to the God of -Jacob. - -75:10 All the horns of the wicked also will I cut off; but the horns -of the righteous shall be exalted. - - - -76:1 In Judah is God known: his name is great in Israel. - -76:2 In Salem also is his tabernacle, and his dwelling place in Zion. - -76:3 There brake he the arrows of the bow, the shield, and the sword, -and the battle. Selah. - -76:4 Thou art more glorious and excellent than the mountains of prey. - -76:5 The stouthearted are spoiled, they have slept their sleep: and -none of the men of might have found their hands. - -76:6 At thy rebuke, O God of Jacob, both the chariot and horse are -cast into a dead sleep. - -76:7 Thou, even thou, art to be feared: and who may stand in thy sight -when once thou art angry? - -76:8 Thou didst cause judgment to be heard from heaven; the earth -feared, and was still, - -76:9 When God arose to judgment, to save all the meek of the earth. -Selah. - -76:10 Surely the wrath of man shall praise thee: the remainder of -wrath shalt thou restrain. - -76:11 Vow, and pay unto the LORD your God: let all that be round about -him bring presents unto him that ought to be feared. - -76:12 He shall cut off the spirit of princes: he is terrible to the -kings of the earth. - - - -77:1 I cried unto God with my voice, even unto God with my voice; and -he gave ear unto me. - -77:2 In the day of my trouble I sought the Lord: my sore ran in the -night, and ceased not: my soul refused to be comforted. - -77:3 I remembered God, and was troubled: I complained, and my spirit -was overwhelmed. Selah. - -77:4 Thou holdest mine eyes waking: I am so troubled that I cannot -speak. - -77:5 I have considered the days of old, the years of ancient times. - -77:6 I call to remembrance my song in the night: I commune with mine -own heart: and my spirit made diligent search. - -77:7 Will the Lord cast off for ever? and will he be favourable no -more? - -77:8 Is his mercy clean gone for ever? doth his promise fail for -evermore? - -77:9 Hath God forgotten to be gracious? hath he in anger shut up his -tender mercies? Selah. - -77:10 And I said, This is my infirmity: but I will remember the years -of the right hand of the most High. - -77:11 I will remember the works of the LORD: surely I will remember -thy wonders of old. - -77:12 I will meditate also of all thy work, and talk of thy doings. - -77:13 Thy way, O God, is in the sanctuary: who is so great a God as -our God? - -77:14 Thou art the God that doest wonders: thou hast declared thy -strength among the people. - -77:15 Thou hast with thine arm redeemed thy people, the sons of Jacob -and Joseph. Selah. - -77:16 The waters saw thee, O God, the waters saw thee; they were -afraid: the depths also were troubled. - -77:17 The clouds poured out water: the skies sent out a sound: thine -arrows also went abroad. - -77:18 The voice of thy thunder was in the heaven: the lightnings -lightened the world: the earth trembled and shook. - -77:19 Thy way is in the sea, and thy path in the great waters, and thy -footsteps are not known. - -77:20 Thou leddest thy people like a flock by the hand of Moses and -Aaron. - - - -78:1 Give ear, O my people, to my law: incline your ears to the words -of my mouth. - -78:2 I will open my mouth in a parable: I will utter dark sayings of -old: - -78:3 Which we have heard and known, and our fathers have told us. - -78:4 We will not hide them from their children, shewing to the -generation to come the praises of the LORD, and his strength, and his -wonderful works that he hath done. - -78:5 For he established a testimony in Jacob, and appointed a law in -Israel, which he commanded our fathers, that they should make them -known to their children: - -78:6 That the generation to come might know them, even the children -which should be born; who should arise and declare them to their -children: - -78:7 That they might set their hope in God, and not forget the works -of God, but keep his commandments: - -78:8 And might not be as their fathers, a stubborn and rebellious -generation; a generation that set not their heart aright, and whose -spirit was not stedfast with God. - -78:9 The children of Ephraim, being armed, and carrying bows, turned -back in the day of battle. - -78:10 They kept not the covenant of God, and refused to walk in his -law; - -78:11 And forgat his works, and his wonders that he had shewed them. - -78:12 Marvellous things did he in the sight of their fathers, in the -land of Egypt, in the field of Zoan. - -78:13 He divided the sea, and caused them to pass through; and he made -the waters to stand as an heap. - -78:14 In the daytime also he led them with a cloud, and all the night -with a light of fire. - -78:15 He clave the rocks in the wilderness, and gave them drink as out -of the great depths. - -78:16 He brought streams also out of the rock, and caused waters to -run down like rivers. - -78:17 And they sinned yet more against him by provoking the most High -in the wilderness. - -78:18 And they tempted God in their heart by asking meat for their -lust. - -78:19 Yea, they spake against God; they said, Can God furnish a table -in the wilderness? - -78:20 Behold, he smote the rock, that the waters gushed out, and the -streams overflowed; can he give bread also? can he provide flesh for -his people? - -78:21 Therefore the LORD heard this, and was wroth: so a fire was -kindled against Jacob, and anger also came up against Israel; - -78:22 Because they believed not in God, and trusted not in his -salvation: - -78:23 Though he had commanded the clouds from above, and opened the -doors of heaven, - -78:24 And had rained down manna upon them to eat, and had given them -of the corn of heaven. - -78:25 Man did eat angels' food: he sent them meat to the full. - -78:26 He caused an east wind to blow in the heaven: and by his power -he brought in the south wind. - -78:27 He rained flesh also upon them as dust, and feathered fowls like -as the sand of the sea: - -78:28 And he let it fall in the midst of their camp, round about their -habitations. - -78:29 So they did eat, and were well filled: for he gave them their -own desire; - -78:30 They were not estranged from their lust. But while their meat -was yet in their mouths, - -78:31 The wrath of God came upon them, and slew the fattest of them, -and smote down the chosen men of Israel. - -78:32 For all this they sinned still, and believed not for his -wondrous works. - -78:33 Therefore their days did he consume in vanity, and their years -in trouble. - -78:34 When he slew them, then they sought him: and they returned and -enquired early after God. - -78:35 And they remembered that God was their rock, and the high God -their redeemer. - -78:36 Nevertheless they did flatter him with their mouth, and they -lied unto him with their tongues. - -78:37 For their heart was not right with him, neither were they -stedfast in his covenant. - -78:38 But he, being full of compassion, forgave their iniquity, and -destroyed them not: yea, many a time turned he his anger away, and did -not stir up all his wrath. - -78:39 For he remembered that they were but flesh; a wind that passeth -away, and cometh not again. - -78:40 How oft did they provoke him in the wilderness, and grieve him -in the desert! - -78:41 Yea, they turned back and tempted God, and limited the Holy One -of Israel. - -78:42 They remembered not his hand, nor the day when he delivered them -from the enemy. - -78:43 How he had wrought his signs in Egypt, and his wonders in the -field of Zoan. - -78:44 And had turned their rivers into blood; and their floods, that -they could not drink. - -78:45 He sent divers sorts of flies among them, which devoured them; -and frogs, which destroyed them. - -78:46 He gave also their increase unto the caterpiller, and their -labour unto the locust. - -78:47 He destroyed their vines with hail, and their sycomore trees -with frost. - -78:48 He gave up their cattle also to the hail, and their flocks to -hot thunderbolts. - -78:49 He cast upon them the fierceness of his anger, wrath, and -indignation, and trouble, by sending evil angels among them. - -78:50 He made a way to his anger; he spared not their soul from death, -but gave their life over to the pestilence; - -78:51 And smote all the firstborn in Egypt; the chief of their -strength in the tabernacles of Ham: - -78:52 But made his own people to go forth like sheep, and guided them -in the wilderness like a flock. - -78:53 And he led them on safely, so that they feared not: but the sea -overwhelmed their enemies. - -78:54 And he brought them to the border of his sanctuary, even to this -mountain, which his right hand had purchased. - -78:55 He cast out the heathen also before them, and divided them an -inheritance by line, and made the tribes of Israel to dwell in their -tents. - -78:56 Yet they tempted and provoked the most high God, and kept not -his testimonies: - -78:57 But turned back, and dealt unfaithfully like their fathers: they -were turned aside like a deceitful bow. - -78:58 For they provoked him to anger with their high places, and moved -him to jealousy with their graven images. - -78:59 When God heard this, he was wroth, and greatly abhorred Israel: - -78:60 So that he forsook the tabernacle of Shiloh, the tent which he -placed among men; - -78:61 And delivered his strength into captivity, and his glory into -the enemy's hand. - -78:62 He gave his people over also unto the sword; and was wroth with -his inheritance. - -78:63 The fire consumed their young men; and their maidens were not -given to marriage. - -78:64 Their priests fell by the sword; and their widows made no -lamentation. - -78:65 Then the LORD awaked as one out of sleep, and like a mighty man -that shouteth by reason of wine. - -78:66 And he smote his enemies in the hinder parts: he put them to a -perpetual reproach. - -78:67 Moreover he refused the tabernacle of Joseph, and chose not the -tribe of Ephraim: - -78:68 But chose the tribe of Judah, the mount Zion which he loved. - -78:69 And he built his sanctuary like high palaces, like the earth -which he hath established for ever. - -78:70 He chose David also his servant, and took him from the -sheepfolds: - -78:71 From following the ewes great with young he brought him to feed -Jacob his people, and Israel his inheritance. - -78:72 So he fed them according to the integrity of his heart; and -guided them by the skilfulness of his hands. - - - -79:1 O God, the heathen are come into thine inheritance; thy holy -temple have they defiled; they have laid Jerusalem on heaps. - -79:2 The dead bodies of thy servants have they given to be meat unto -the fowls of the heaven, the flesh of thy saints unto the beasts of -the earth. - -79:3 Their blood have they shed like water round about Jerusalem; and -there was none to bury them. - -79:4 We are become a reproach to our neighbours, a scorn and derision -to them that are round about us. - -79:5 How long, LORD? wilt thou be angry for ever? shall thy jealousy -burn like fire? - -79:6 Pour out thy wrath upon the heathen that have not known thee, and -upon the kingdoms that have not called upon thy name. - -79:7 For they have devoured Jacob, and laid waste his dwelling place. - -79:8 O remember not against us former iniquities: let thy tender -mercies speedily prevent us: for we are brought very low. - -79:9 Help us, O God of our salvation, for the glory of thy name: and -deliver us, and purge away our sins, for thy name's sake. - -79:10 Wherefore should the heathen say, Where is their God? let him be -known among the heathen in our sight by the revenging of the blood of -thy servants which is shed. - -79:11 Let the sighing of the prisoner come before thee; according to -the greatness of thy power preserve thou those that are appointed to -die; - -79:12 And render unto our neighbours sevenfold into their bosom their -reproach, wherewith they have reproached thee, O Lord. - -79:13 So we thy people and sheep of thy pasture will give thee thanks -for ever: we will shew forth thy praise to all generations. - - - -80:1 Give ear, O Shepherd of Israel, thou that leadest Joseph like a -flock; thou that dwellest between the cherubims, shine forth. - -80:2 Before Ephraim and Benjamin and Manasseh stir up thy strength, -and come and save us. - -80:3 Turn us again, O God, and cause thy face to shine; and we shall -be saved. - -80:4 O LORD God of hosts, how long wilt thou be angry against the -prayer of thy people? - -80:5 Thou feedest them with the bread of tears; and givest them tears -to drink in great measure. - -80:6 Thou makest us a strife unto our neighbours: and our enemies -laugh among themselves. - -80:7 Turn us again, O God of hosts, and cause thy face to shine; and -we shall be saved. - -80:8 Thou hast brought a vine out of Egypt: thou hast cast out the -heathen, and planted it. - -80:9 Thou preparedst room before it, and didst cause it to take deep -root, and it filled the land. - -80:10 The hills were covered with the shadow of it, and the boughs -thereof were like the goodly cedars. - -80:11 She sent out her boughs unto the sea, and her branches unto the -river. - -80:12 Why hast thou then broken down her hedges, so that all they -which pass by the way do pluck her? - -80:13 The boar out of the wood doth waste it, and the wild beast of -the field doth devour it. - -80:14 Return, we beseech thee, O God of hosts: look down from heaven, -and behold, and visit this vine; - -80:15 And the vineyard which thy right hand hath planted, and the -branch that thou madest strong for thyself. - -80:16 It is burned with fire, it is cut down: they perish at the -rebuke of thy countenance. - -80:17 Let thy hand be upon the man of thy right hand, upon the son of -man whom thou madest strong for thyself. - -80:18 So will not we go back from thee: quicken us, and we will call -upon thy name. - -80:19 Turn us again, O LORD God of hosts, cause thy face to shine; and -we shall be saved. - - - -81:1 Sing aloud unto God our strength: make a joyful noise unto the -God of Jacob. - -81:2 Take a psalm, and bring hither the timbrel, the pleasant harp -with the psaltery. - -81:3 Blow up the trumpet in the new moon, in the time appointed, on -our solemn feast day. - -81:4 For this was a statute for Israel, and a law of the God of Jacob. - -81:5 This he ordained in Joseph for a testimony, when he went out -through the land of Egypt: where I heard a language that I understood -not. - -81:6 I removed his shoulder from the burden: his hands were delivered -from the pots. - -81:7 Thou calledst in trouble, and I delivered thee; I answered thee -in the secret place of thunder: I proved thee at the waters of -Meribah. - -Selah. - -81:8 Hear, O my people, and I will testify unto thee: O Israel, if -thou wilt hearken unto me; - -81:9 There shall no strange god be in thee; neither shalt thou worship -any strange god. - -81:10 I am the LORD thy God, which brought thee out of the land of -Egypt: open thy mouth wide, and I will fill it. - -81:11 But my people would not hearken to my voice; and Israel would -none of me. - -81:12 So I gave them up unto their own hearts' lust: and they walked -in their own counsels. - -81:13 Oh that my people had hearkened unto me, and Israel had walked -in my ways! - -81:14 I should soon have subdued their enemies, and turned my hand -against their adversaries. - -81:15 The haters of the LORD should have submitted themselves unto -him: but their time should have endured for ever. - -81:16 He should have fed them also with the finest of the wheat: and -with honey out of the rock should I have satisfied thee. - - - -82:1 God standeth in the congregation of the mighty; he judgeth among -the gods. - -82:2 How long will ye judge unjustly, and accept the persons of the -wicked? Selah. - -82:3 Defend the poor and fatherless: do justice to the afflicted and -needy. - -82:4 Deliver the poor and needy: rid them out of the hand of the -wicked. - -82:5 They know not, neither will they understand; they walk on in -darkness: all the foundations of the earth are out of course. - -82:6 I have said, Ye are gods; and all of you are children of the most -High. - -82:7 But ye shall die like men, and fall like one of the princes. - -82:8 Arise, O God, judge the earth: for thou shalt inherit all -nations. - - - -83:1 Keep not thou silence, O God: hold not thy peace, and be not -still, O God. - -83:2 For, lo, thine enemies make a tumult: and they that hate thee -have lifted up the head. - -83:3 They have taken crafty counsel against thy people, and consulted -against thy hidden ones. - -83:4 They have said, Come, and let us cut them off from being a -nation; that the name of Israel may be no more in remembrance. - -83:5 For they have consulted together with one consent: they are -confederate against thee: - -83:6 The tabernacles of Edom, and the Ishmaelites; of Moab, and the -Hagarenes; - -83:7 Gebal, and Ammon, and Amalek; the Philistines with the -inhabitants of Tyre; - -83:8 Assur also is joined with them: they have holpen the children of -Lot. - -Selah. - -83:9 Do unto them as unto the Midianites; as to Sisera, as to Jabin, -at the brook of Kison: - -83:10 Which perished at Endor: they became as dung for the earth. - -83:11 Make their nobles like Oreb, and like Zeeb: yea, all their -princes as Zebah, and as Zalmunna: - -83:12 Who said, Let us take to ourselves the houses of God in -possession. - -83:13 O my God, make them like a wheel; as the stubble before the -wind. - -83:14 As the fire burneth a wood, and as the flame setteth the -mountains on fire; - -83:15 So persecute them with thy tempest, and make them afraid with -thy storm. - -83:16 Fill their faces with shame; that they may seek thy name, O -LORD. - -83:17 Let them be confounded and troubled for ever; yea, let them be -put to shame, and perish: - -83:18 That men may know that thou, whose name alone is JEHOVAH, art -the most high over all the earth. - - - -84:1 How amiable are thy tabernacles, O LORD of hosts! - -84:2 My soul longeth, yea, even fainteth for the courts of the LORD: -my heart and my flesh crieth out for the living God. - -84:3 Yea, the sparrow hath found an house, and the swallow a nest for -herself, where she may lay her young, even thine altars, O LORD of -hosts, my King, and my God. - -84:4 Blessed are they that dwell in thy house: they will be still -praising thee. Selah. - -84:5 Blessed is the man whose strength is in thee; in whose heart are -the ways of them. - -84:6 Who passing through the valley of Baca make it a well; the rain -also filleth the pools. - -84:7 They go from strength to strength, every one of them in Zion -appeareth before God. - -84:8 O LORD God of hosts, hear my prayer: give ear, O God of Jacob. -Selah. - -84:9 Behold, O God our shield, and look upon the face of thine -anointed. - -84:10 For a day in thy courts is better than a thousand. I had rather -be a doorkeeper in the house of my God, than to dwell in the tents of -wickedness. - -84:11 For the LORD God is a sun and shield: the LORD will give grace -and glory: no good thing will he withhold from them that walk -uprightly. - -84:12 O LORD of hosts, blessed is the man that trusteth in thee. - - - -85:1 Lord, thou hast been favourable unto thy land: thou hast brought -back the captivity of Jacob. - -85:2 Thou hast forgiven the iniquity of thy people, thou hast covered -all their sin. Selah. - -85:3 Thou hast taken away all thy wrath: thou hast turned thyself from -the fierceness of thine anger. - -85:4 Turn us, O God of our salvation, and cause thine anger toward us -to cease. - -85:5 Wilt thou be angry with us for ever? wilt thou draw out thine -anger to all generations? - -85:6 Wilt thou not revive us again: that thy people may rejoice in -thee? - -85:7 Shew us thy mercy, O LORD, and grant us thy salvation. - -85:8 I will hear what God the LORD will speak: for he will speak peace -unto his people, and to his saints: but let them not turn again to -folly. - -85:9 Surely his salvation is nigh them that fear him; that glory may -dwell in our land. - -85:10 Mercy and truth are met together; righteousness and peace have -kissed each other. - -85:11 Truth shall spring out of the earth; and righteousness shall -look down from heaven. - -85:12 Yea, the LORD shall give that which is good; and our land shall -yield her increase. - -85:13 Righteousness shall go before him; and shall set us in the way -of his steps. - - - -86:1 Bow down thine ear, O LORD, hear me: for I am poor and needy. - -86:2 Preserve my soul; for I am holy: O thou my God, save thy servant -that trusteth in thee. - -86:3 Be merciful unto me, O Lord: for I cry unto thee daily. - -86:4 Rejoice the soul of thy servant: for unto thee, O Lord, do I lift -up my soul. - -86:5 For thou, Lord, art good, and ready to forgive; and plenteous in -mercy unto all them that call upon thee. - -86:6 Give ear, O LORD, unto my prayer; and attend to the voice of my -supplications. - -86:7 In the day of my trouble I will call upon thee: for thou wilt -answer me. - -86:8 Among the gods there is none like unto thee, O Lord; neither are -there any works like unto thy works. - -86:9 All nations whom thou hast made shall come and worship before -thee, O Lord; and shall glorify thy name. - -86:10 For thou art great, and doest wondrous things: thou art God -alone. - -86:11 Teach me thy way, O LORD; I will walk in thy truth: unite my -heart to fear thy name. - -86:12 I will praise thee, O Lord my God, with all my heart: and I will -glorify thy name for evermore. - -86:13 For great is thy mercy toward me: and thou hast delivered my -soul from the lowest hell. - -86:14 O God, the proud are risen against me, and the assemblies of -violent men have sought after my soul; and have not set thee before -them. - -86:15 But thou, O Lord, art a God full of compassion, and gracious, -long suffering, and plenteous in mercy and truth. - -86:16 O turn unto me, and have mercy upon me; give thy strength unto -thy servant, and save the son of thine handmaid. - -86:17 Shew me a token for good; that they which hate me may see it, -and be ashamed: because thou, LORD, hast holpen me, and comforted me. - - - -87:1 His foundation is in the holy mountains. - -87:2 The LORD loveth the gates of Zion more than all the dwellings of -Jacob. - -87:3 Glorious things are spoken of thee, O city of God. Selah. - -87:4 I will make mention of Rahab and Babylon to them that know me: -behold Philistia, and Tyre, with Ethiopia; this man was born there. - -87:5 And of Zion it shall be said, This and that man was born in her: -and the highest himself shall establish her. - -87:6 The LORD shall count, when he writeth up the people, that this -man was born there. Selah. - -87:7 As well the singers as the players on instruments shall be there: -all my springs are in thee. - - - -88:1 O lord God of my salvation, I have cried day and night before -thee: - -88:2 Let my prayer come before thee: incline thine ear unto my cry; - -88:3 For my soul is full of troubles: and my life draweth nigh unto -the grave. - -88:4 I am counted with them that go down into the pit: I am as a man -that hath no strength: - -88:5 Free among the dead, like the slain that lie in the grave, whom -thou rememberest no more: and they are cut off from thy hand. - -88:6 Thou hast laid me in the lowest pit, in darkness, in the deeps. - -88:7 Thy wrath lieth hard upon me, and thou hast afflicted me with all -thy waves. Selah. - -88:8 Thou hast put away mine acquaintance far from me; thou hast made -me an abomination unto them: I am shut up, and I cannot come forth. - -88:9 Mine eye mourneth by reason of affliction: LORD, I have called -daily upon thee, I have stretched out my hands unto thee. - -88:10 Wilt thou shew wonders to the dead? shall the dead arise and -praise thee? Selah. - -88:11 Shall thy lovingkindness be declared in the grave? or thy -faithfulness in destruction? - -88:12 Shall thy wonders be known in the dark? and thy righteousness in -the land of forgetfulness? - -88:13 But unto thee have I cried, O LORD; and in the morning shall my -prayer prevent thee. - -88:14 LORD, why castest thou off my soul? why hidest thou thy face -from me? - -88:15 I am afflicted and ready to die from my youth up: while I suffer -thy terrors I am distracted. - -88:16 Thy fierce wrath goeth over me; thy terrors have cut me off. - -88:17 They came round about me daily like water; they compassed me -about together. - -88:18 Lover and friend hast thou put far from me, and mine -acquaintance into darkness. - - - -89:1 I will sing of the mercies of the LORD for ever: with my mouth -will I make known thy faithfulness to all generations. - -89:2 For I have said, Mercy shall be built up for ever: thy -faithfulness shalt thou establish in the very heavens. - -89:3 I have made a covenant with my chosen, I have sworn unto David my -servant, - -89:4 Thy seed will I establish for ever, and build up thy throne to -all generations. Selah. - -89:5 And the heavens shall praise thy wonders, O LORD: thy -faithfulness also in the congregation of the saints. - -89:6 For who in the heaven can be compared unto the LORD? who among -the sons of the mighty can be likened unto the LORD? - -89:7 God is greatly to be feared in the assembly of the saints, and to -be had in reverence of all them that are about him. - -89:8 O LORD God of hosts, who is a strong LORD like unto thee? or to -thy faithfulness round about thee? - -89:9 Thou rulest the raging of the sea: when the waves thereof arise, -thou stillest them. - -89:10 Thou hast broken Rahab in pieces, as one that is slain; thou -hast scattered thine enemies with thy strong arm. - -89:11 The heavens are thine, the earth also is thine: as for the world -and the fulness thereof, thou hast founded them. - -89:12 The north and the south thou hast created them: Tabor and Hermon -shall rejoice in thy name. - -89:13 Thou hast a mighty arm: strong is thy hand, and high is thy -right hand. - -89:14 Justice and judgment are the habitation of thy throne: mercy and -truth shall go before thy face. - -89:15 Blessed is the people that know the joyful sound: they shall -walk, O LORD, in the light of thy countenance. - -89:16 In thy name shall they rejoice all the day: and in thy -righteousness shall they be exalted. - -89:17 For thou art the glory of their strength: and in thy favour our -horn shall be exalted. - -89:18 For the LORD is our defence; and the Holy One of Israel is our -king. - -89:19 Then thou spakest in vision to thy holy one, and saidst, I have -laid help upon one that is mighty; I have exalted one chosen out of -the people. - -89:20 I have found David my servant; with my holy oil have I anointed -him: - -89:21 With whom my hand shall be established: mine arm also shall -strengthen him. - -89:22 The enemy shall not exact upon him; nor the son of wickedness -afflict him. - -89:23 And I will beat down his foes before his face, and plague them -that hate him. - -89:24 But my faithfulness and my mercy shall be with him: and in my -name shall his horn be exalted. - -89:25 I will set his hand also in the sea, and his right hand in the -rivers. - -89:26 He shall cry unto me, Thou art my father, my God, and the rock -of my salvation. - -89:27 Also I will make him my firstborn, higher than the kings of the -earth. - -89:28 My mercy will I keep for him for evermore, and my covenant shall -stand fast with him. - -89:29 His seed also will I make to endure for ever, and his throne as -the days of heaven. - -89:30 If his children forsake my law, and walk not in my judgments; - -89:31 If they break my statutes, and keep not my commandments; - -89:32 Then will I visit their transgression with the rod, and their -iniquity with stripes. - -89:33 Nevertheless my lovingkindness will I not utterly take from him, -nor suffer my faithfulness to fail. - -89:34 My covenant will I not break, nor alter the thing that is gone -out of my lips. - -89:35 Once have I sworn by my holiness that I will not lie unto David. - -89:36 His seed shall endure for ever, and his throne as the sun before -me. - -89:37 It shall be established for ever as the moon, and as a faithful -witness in heaven. Selah. - -89:38 But thou hast cast off and abhorred, thou hast been wroth with -thine anointed. - -89:39 Thou hast made void the covenant of thy servant: thou hast -profaned his crown by casting it to the ground. - -89:40 Thou hast broken down all his hedges; thou hast brought his -strong holds to ruin. - -89:41 All that pass by the way spoil him: he is a reproach to his -neighbours. - -89:42 Thou hast set up the right hand of his adversaries; thou hast -made all his enemies to rejoice. - -89:43 Thou hast also turned the edge of his sword, and hast not made -him to stand in the battle. - -89:44 Thou hast made his glory to cease, and cast his throne down to -the ground. - -89:45 The days of his youth hast thou shortened: thou hast covered him -with shame. Selah. - -89:46 How long, LORD? wilt thou hide thyself for ever? shall thy wrath -burn like fire? - -89:47 Remember how short my time is: wherefore hast thou made all men -in vain? - -89:48 What man is he that liveth, and shall not see death? shall he -deliver his soul from the hand of the grave? Selah. - -89:49 Lord, where are thy former lovingkindnesses, which thou swarest -unto David in thy truth? - -89:50 Remember, Lord, the reproach of thy servants; how I do bear in -my bosom the reproach of all the mighty people; - -89:51 Wherewith thine enemies have reproached, O LORD; wherewith they -have reproached the footsteps of thine anointed. - -89:52 Blessed be the LORD for evermore. Amen, and Amen. - - - -90:1 Lord, thou hast been our dwelling place in all generations. - -90:2 Before the mountains were brought forth, or ever thou hadst -formed the earth and the world, even from everlasting to everlasting, -thou art God. - -90:3 Thou turnest man to destruction; and sayest, Return, ye children -of men. - -90:4 For a thousand years in thy sight are but as yesterday when it is -past, and as a watch in the night. - -90:5 Thou carriest them away as with a flood; they are as a sleep: in -the morning they are like grass which groweth up. - -90:6 In the morning it flourisheth, and groweth up; in the evening it -is cut down, and withereth. - -90:7 For we are consumed by thine anger, and by thy wrath are we -troubled. - -90:8 Thou hast set our iniquities before thee, our secret sins in the -light of thy countenance. - -90:9 For all our days are passed away in thy wrath: we spend our years -as a tale that is told. - -90:10 The days of our years are threescore years and ten; and if by -reason of strength they be fourscore years, yet is their strength -labour and sorrow; for it is soon cut off, and we fly away. - -90:11 Who knoweth the power of thine anger? even according to thy -fear, so is thy wrath. - -90:12 So teach us to number our days, that we may apply our hearts -unto wisdom. - -90:13 Return, O LORD, how long? and let it repent thee concerning thy -servants. - -90:14 O satisfy us early with thy mercy; that we may rejoice and be -glad all our days. - -90:15 Make us glad according to the days wherein thou hast afflicted -us, and the years wherein we have seen evil. - -90:16 Let thy work appear unto thy servants, and thy glory unto their -children. - -90:17 And let the beauty of the LORD our God be upon us: and establish -thou the work of our hands upon us; yea, the work of our hands -establish thou it. - - - -91:1 He that dwelleth in the secret place of the most High shall abide -under the shadow of the Almighty. - -91:2 I will say of the LORD, He is my refuge and my fortress: my God; -in him will I trust. - -91:3 Surely he shall deliver thee from the snare of the fowler, and -from the noisome pestilence. - -91:4 He shall cover thee with his feathers, and under his wings shalt -thou trust: his truth shall be thy shield and buckler. - -91:5 Thou shalt not be afraid for the terror by night; nor for the -arrow that flieth by day; - -91:6 Nor for the pestilence that walketh in darkness; nor for the -destruction that wasteth at noonday. - -91:7 A thousand shall fall at thy side, and ten thousand at thy right -hand; but it shall not come nigh thee. - -91:8 Only with thine eyes shalt thou behold and see the reward of the -wicked. - -91:9 Because thou hast made the LORD, which is my refuge, even the -most High, thy habitation; - -91:10 There shall no evil befall thee, neither shall any plague come -nigh thy dwelling. - -91:11 For he shall give his angels charge over thee, to keep thee in -all thy ways. - -91:12 They shall bear thee up in their hands, lest thou dash thy foot -against a stone. - -91:13 Thou shalt tread upon the lion and adder: the young lion and the -dragon shalt thou trample under feet. - -91:14 Because he hath set his love upon me, therefore will I deliver -him: I will set him on high, because he hath known my name. - -91:15 He shall call upon me, and I will answer him: I will be with him -in trouble; I will deliver him, and honour him. - -91:16 With long life will I satisfy him, and shew him my salvation. - - - -92:1 It is a good thing to give thanks unto the Lord, and to sing -praises unto thy name, O most High: - -92:2 To shew forth thy lovingkindness in the morning, and thy -faithfulness every night, - -92:3 Upon an instrument of ten strings, and upon the psaltery; upon -the harp with a solemn sound. - -92:4 For thou, LORD, hast made me glad through thy work: I will -triumph in the works of thy hands. - -92:5 O LORD, how great are thy works! and thy thoughts are very deep. - -92:6 A brutish man knoweth not; neither doth a fool understand this. - -92:7 When the wicked spring as the grass, and when all the workers of -iniquity do flourish; it is that they shall be destroyed for ever: - -92:8 But thou, LORD, art most high for evermore. - -92:9 For, lo, thine enemies, O LORD, for, lo, thine enemies shall -perish; all the workers of iniquity shall be scattered. - -92:10 But my horn shalt thou exalt like the horn of an unicorn: I -shall be anointed with fresh oil. - -92:11 Mine eye also shall see my desire on mine enemies, and mine ears -shall hear my desire of the wicked that rise up against me. - -92:12 The righteous shall flourish like the palm tree: he shall grow -like a cedar in Lebanon. - -92:13 Those that be planted in the house of the LORD shall flourish in -the courts of our God. - -92:14 They shall still bring forth fruit in old age; they shall be fat -and flourishing; - -92:15 To shew that the LORD is upright: he is my rock, and there is no -unrighteousness in him. - - - -93:1 The LORD reigneth, he is clothed with majesty; the LORD is -clothed with strength, wherewith he hath girded himself: the world -also is stablished, that it cannot be moved. - -93:2 Thy throne is established of old: thou art from everlasting. - -93:3 The floods have lifted up, O LORD, the floods have lifted up -their voice; the floods lift up their waves. - -93:4 The LORD on high is mightier than the noise of many waters, yea, -than the mighty waves of the sea. - -93:5 Thy testimonies are very sure: holiness becometh thine house, O -LORD, for ever. - - - -94:1 O Lord God, to whom vengeance belongeth; O God, to whom vengeance -belongeth, shew thyself. - -94:2 Lift up thyself, thou judge of the earth: render a reward to the -proud. - -94:3 LORD, how long shall the wicked, how long shall the wicked -triumph? - -94:4 How long shall they utter and speak hard things? and all the -workers of iniquity boast themselves? - -94:5 They break in pieces thy people, O LORD, and afflict thine -heritage. - -94:6 They slay the widow and the stranger, and murder the fatherless. - -94:7 Yet they say, The LORD shall not see, neither shall the God of -Jacob regard it. - -94:8 Understand, ye brutish among the people: and ye fools, when will -ye be wise? - -94:9 He that planted the ear, shall he not hear? he that formed the -eye, shall he not see? - -94:10 He that chastiseth the heathen, shall not he correct? he that -teacheth man knowledge, shall not he know? - -94:11 The LORD knoweth the thoughts of man, that they are vanity. - -94:12 Blessed is the man whom thou chastenest, O LORD, and teachest -him out of thy law; - -94:13 That thou mayest give him rest from the days of adversity, until -the pit be digged for the wicked. - -94:14 For the LORD will not cast off his people, neither will he -forsake his inheritance. - -94:15 But judgment shall return unto righteousness: and all the -upright in heart shall follow it. - -94:16 Who will rise up for me against the evildoers? or who will stand -up for me against the workers of iniquity? - -94:17 Unless the LORD had been my help, my soul had almost dwelt in -silence. - -94:18 When I said, My foot slippeth; thy mercy, O LORD, held me up. - -94:19 In the multitude of my thoughts within me thy comforts delight -my soul. - -94:20 Shall the throne of iniquity have fellowship with thee, which -frameth mischief by a law? - -94:21 They gather themselves together against the soul of the -righteous, and condemn the innocent blood. - -94:22 But the LORD is my defence; and my God is the rock of my refuge. - -94:23 And he shall bring upon them their own iniquity, and shall cut -them off in their own wickedness; yea, the LORD our God shall cut them -off. - - - -95:1 O come, let us sing unto the LORD: let us make a joyful noise to -the rock of our salvation. - -95:2 Let us come before his presence with thanksgiving, and make a -joyful noise unto him with psalms. - -95:3 For the LORD is a great God, and a great King above all gods. - -95:4 In his hand are the deep places of the earth: the strength of the -hills is his also. - -95:5 The sea is his, and he made it: and his hands formed the dry -land. - -95:6 O come, let us worship and bow down: let us kneel before the LORD -our maker. - -95:7 For he is our God; and we are the people of his pasture, and the -sheep of his hand. To day if ye will hear his voice, - -95:8 Harden not your heart, as in the provocation, and as in the day -of temptation in the wilderness: - -95:9 When your fathers tempted me, proved me, and saw my work. - -95:10 Forty years long was I grieved with this generation, and said, -It is a people that do err in their heart, and they have not known my -ways: - -95:11 Unto whom I sware in my wrath that they should not enter into my -rest. - - - -96:1 O sing unto the LORD a new song: sing unto the LORD, all the -earth. - -96:2 Sing unto the LORD, bless his name; shew forth his salvation from -day to day. - -96:3 Declare his glory among the heathen, his wonders among all -people. - -96:4 For the LORD is great, and greatly to be praised: he is to be -feared above all gods. - -96:5 For all the gods of the nations are idols: but the LORD made the -heavens. - -96:6 Honour and majesty are before him: strength and beauty are in his -sanctuary. - -96:7 Give unto the LORD, O ye kindreds of the people, give unto the -LORD glory and strength. - -96:8 Give unto the LORD the glory due unto his name: bring an -offering, and come into his courts. - -96:9 O worship the LORD in the beauty of holiness: fear before him, -all the earth. - -96:10 Say among the heathen that the LORD reigneth: the world also -shall be established that it shall not be moved: he shall judge the -people righteously. - -96:11 Let the heavens rejoice, and let the earth be glad; let the sea -roar, and the fulness thereof. - -96:12 Let the field be joyful, and all that is therein: then shall all -the trees of the wood rejoice - -96:13 Before the LORD: for he cometh, for he cometh to judge the -earth: he shall judge the world with righteousness, and the people -with his truth. - - - -97:1 The LORD reigneth; let the earth rejoice; let the multitude of -isles be glad thereof. - -97:2 Clouds and darkness are round about him: righteousness and -judgment are the habitation of his throne. - -97:3 A fire goeth before him, and burneth up his enemies round about. - -97:4 His lightnings enlightened the world: the earth saw, and -trembled. - -97:5 The hills melted like wax at the presence of the LORD, at the -presence of the Lord of the whole earth. - -97:6 The heavens declare his righteousness, and all the people see his -glory. - -97:7 Confounded be all they that serve graven images, that boast -themselves of idols: worship him, all ye gods. - -97:8 Zion heard, and was glad; and the daughters of Judah rejoiced -because of thy judgments, O LORD. - -97:9 For thou, LORD, art high above all the earth: thou art exalted -far above all gods. - -97:10 Ye that love the LORD, hate evil: he preserveth the souls of his -saints; he delivereth them out of the hand of the wicked. - -97:11 Light is sown for the righteous, and gladness for the upright in -heart. - -97:12 Rejoice in the LORD, ye righteous; and give thanks at the -remembrance of his holiness. - - - -98:1 O sing unto the LORD a new song; for he hath done marvellous -things: his right hand, and his holy arm, hath gotten him the victory. - -98:2 The LORD hath made known his salvation: his righteousness hath he -openly shewed in the sight of the heathen. - -98:3 He hath remembered his mercy and his truth toward the house of -Israel: all the ends of the earth have seen the salvation of our God. - -98:4 Make a joyful noise unto the LORD, all the earth: make a loud -noise, and rejoice, and sing praise. - -98:5 Sing unto the LORD with the harp; with the harp, and the voice of -a psalm. - -98:6 With trumpets and sound of cornet make a joyful noise before the -LORD, the King. - -98:7 Let the sea roar, and the fulness thereof; the world, and they -that dwell therein. - -98:8 Let the floods clap their hands: let the hills be joyful together - -98:9 Before the LORD; for he cometh to judge the earth: with -righteousness shall he judge the world, and the people with equity. - - - -99:1 The LORD reigneth; let the people tremble: he sitteth between the -cherubims; let the earth be moved. - -99:2 The LORD is great in Zion; and he is high above all the people. - -99:3 Let them praise thy great and terrible name; for it is holy. - -99:4 The king's strength also loveth judgment; thou dost establish -equity, thou executest judgment and righteousness in Jacob. - -99:5 Exalt ye the LORD our God, and worship at his footstool; for he -is holy. - -99:6 Moses and Aaron among his priests, and Samuel among them that -call upon his name; they called upon the LORD, and he answered them. - -99:7 He spake unto them in the cloudy pillar: they kept his -testimonies, and the ordinance that he gave them. - -99:8 Thou answeredst them, O LORD our God: thou wast a God that -forgavest them, though thou tookest vengeance of their inventions. - -99:9 Exalt the LORD our God, and worship at his holy hill; for the -LORD our God is holy. - - - -100:1 Make a joyful noise unto the LORD, all ye lands. - -100:2 Serve the LORD with gladness: come before his presence with -singing. - -100:3 Know ye that the LORD he is God: it is he that hath made us, and -not we ourselves; we are his people, and the sheep of his pasture. - -100:4 Enter into his gates with thanksgiving, and into his courts with -praise: be thankful unto him, and bless his name. - -100:5 For the LORD is good; his mercy is everlasting; and his truth -endureth to all generations. - - - -101:1 I will sing of mercy and judgment: unto thee, O LORD, will I -sing. - -101:2 I will behave myself wisely in a perfect way. O when wilt thou -come unto me? I will walk within my house with a perfect heart. - -101:3 I will set no wicked thing before mine eyes: I hate the work of -them that turn aside; it shall not cleave to me. - -101:4 A froward heart shall depart from me: I will not know a wicked -person. - -101:5 Whoso privily slandereth his neighbour, him will I cut off: him -that hath an high look and a proud heart will not I suffer. - -101:6 Mine eyes shall be upon the faithful of the land, that they may -dwell with me: he that walketh in a perfect way, he shall serve me. - -101:7 He that worketh deceit shall not dwell within my house: he that -telleth lies shall not tarry in my sight. - -101:8 I will early destroy all the wicked of the land; that I may cut -off all wicked doers from the city of the LORD. - - - -102:1 Hear my prayer, O LORD, and let my cry come unto thee. - -102:2 Hide not thy face from me in the day when I am in trouble; -incline thine ear unto me: in the day when I call answer me speedily. - -102:3 For my days are consumed like smoke, and my bones are burned as -an hearth. - -102:4 My heart is smitten, and withered like grass; so that I forget -to eat my bread. - -102:5 By reason of the voice of my groaning my bones cleave to my -skin. - -102:6 I am like a pelican of the wilderness: I am like an owl of the -desert. - -102:7 I watch, and am as a sparrow alone upon the house top. - -102:8 Mine enemies reproach me all the day; and they that are mad -against me are sworn against me. - -102:9 For I have eaten ashes like bread, and mingled my drink with -weeping. - -102:10 Because of thine indignation and thy wrath: for thou hast -lifted me up, and cast me down. - -102:11 My days are like a shadow that declineth; and I am withered -like grass. - -102:12 But thou, O LORD, shall endure for ever; and thy remembrance -unto all generations. - -102:13 Thou shalt arise, and have mercy upon Zion: for the time to -favour her, yea, the set time, is come. - -102:14 For thy servants take pleasure in her stones, and favour the -dust thereof. - -102:15 So the heathen shall fear the name of the LORD, and all the -kings of the earth thy glory. - -102:16 When the LORD shall build up Zion, he shall appear in his -glory. - -102:17 He will regard the prayer of the destitute, and not despise -their prayer. - -102:18 This shall be written for the generation to come: and the -people which shall be created shall praise the LORD. - -102:19 For he hath looked down from the height of his sanctuary; from -heaven did the LORD behold the earth; - -102:20 To hear the groaning of the prisoner; to loose those that are -appointed to death; - -102:21 To declare the name of the LORD in Zion, and his praise in -Jerusalem; - -102:22 When the people are gathered together, and the kingdoms, to -serve the LORD. - -102:23 He weakened my strength in the way; he shortened my days. - -102:24 I said, O my God, take me not away in the midst of my days: thy -years are throughout all generations. - -102:25 Of old hast thou laid the foundation of the earth: and the -heavens are the work of thy hands. - -102:26 They shall perish, but thou shalt endure: yea, all of them -shall wax old like a garment; as a vesture shalt thou change them, and -they shall be changed: - -102:27 But thou art the same, and thy years shall have no end. - -102:28 The children of thy servants shall continue, and their seed -shall be established before thee. - - - -103:1 Bless the LORD, O my soul: and all that is within me, bless his -holy name. - -103:2 Bless the LORD, O my soul, and forget not all his benefits: - -103:3 Who forgiveth all thine iniquities; who healeth all thy -diseases; - -103:4 Who redeemeth thy life from destruction; who crowneth thee with -lovingkindness and tender mercies; - -103:5 Who satisfieth thy mouth with good things; so that thy youth is -renewed like the eagle's. - -103:6 The LORD executeth righteousness and judgment for all that are -oppressed. - -103:7 He made known his ways unto Moses, his acts unto the children of -Israel. - -103:8 The LORD is merciful and gracious, slow to anger, and plenteous -in mercy. - -103:9 He will not always chide: neither will he keep his anger for -ever. - -103:10 He hath not dealt with us after our sins; nor rewarded us -according to our iniquities. - -103:11 For as the heaven is high above the earth, so great is his -mercy toward them that fear him. - -103:12 As far as the east is from the west, so far hath he removed our -transgressions from us. - -103:13 Like as a father pitieth his children, so the LORD pitieth them -that fear him. - -103:14 For he knoweth our frame; he remembereth that we are dust. - -103:15 As for man, his days are as grass: as a flower of the field, so -he flourisheth. - -103:16 For the wind passeth over it, and it is gone; and the place -thereof shall know it no more. - -103:17 But the mercy of the LORD is from everlasting to everlasting -upon them that fear him, and his righteousness unto children's -children; - -103:18 To such as keep his covenant, and to those that remember his -commandments to do them. - -103:19 The LORD hath prepared his throne in the heavens; and his -kingdom ruleth over all. - -103:20 Bless the LORD, ye his angels, that excel in strength, that do -his commandments, hearkening unto the voice of his word. - -103:21 Bless ye the LORD, all ye his hosts; ye ministers of his, that -do his pleasure. - -103:22 Bless the LORD, all his works in all places of his dominion: -bless the LORD, O my soul. - - - -104:1 Bless the LORD, O my soul. O LORD my God, thou art very great; -thou art clothed with honour and majesty. - -104:2 Who coverest thyself with light as with a garment: who -stretchest out the heavens like a curtain: - -104:3 Who layeth the beams of his chambers in the waters: who maketh -the clouds his chariot: who walketh upon the wings of the wind: - -104:4 Who maketh his angels spirits; his ministers a flaming fire: - -104:5 Who laid the foundations of the earth, that it should not be -removed for ever. - -104:6 Thou coveredst it with the deep as with a garment: the waters -stood above the mountains. - -104:7 At thy rebuke they fled; at the voice of thy thunder they hasted -away. - -104:8 They go up by the mountains; they go down by the valleys unto -the place which thou hast founded for them. - -104:9 Thou hast set a bound that they may not pass over; that they -turn not again to cover the earth. - -104:10 He sendeth the springs into the valleys, which run among the -hills. - -104:11 They give drink to every beast of the field: the wild asses -quench their thirst. - -104:12 By them shall the fowls of the heaven have their habitation, -which sing among the branches. - -104:13 He watereth the hills from his chambers: the earth is satisfied -with the fruit of thy works. - -104:14 He causeth the grass to grow for the cattle, and herb for the -service of man: that he may bring forth food out of the earth; - -104:15 And wine that maketh glad the heart of man, and oil to make his -face to shine, and bread which strengtheneth man's heart. - -104:16 The trees of the LORD are full of sap; the cedars of Lebanon, -which he hath planted; - -104:17 Where the birds make their nests: as for the stork, the fir -trees are her house. - -104:18 The high hills are a refuge for the wild goats; and the rocks -for the conies. - -104:19 He appointed the moon for seasons: the sun knoweth his going -down. - -104:20 Thou makest darkness, and it is night: wherein all the beasts -of the forest do creep forth. - -104:21 The young lions roar after their prey, and seek their meat from -God. - -104:22 The sun ariseth, they gather themselves together, and lay them -down in their dens. - -104:23 Man goeth forth unto his work and to his labour until the -evening. - -104:24 O LORD, how manifold are thy works! in wisdom hast thou made -them all: the earth is full of thy riches. - -104:25 So is this great and wide sea, wherein are things creeping -innumerable, both small and great beasts. - -104:26 There go the ships: there is that leviathan, whom thou hast -made to play therein. - -104:27 These wait all upon thee; that thou mayest give them their meat -in due season. - -104:28 That thou givest them they gather: thou openest thine hand, -they are filled with good. - -104:29 Thou hidest thy face, they are troubled: thou takest away their -breath, they die, and return to their dust. - -104:30 Thou sendest forth thy spirit, they are created: and thou -renewest the face of the earth. - -104:31 The glory of the LORD shall endure for ever: the LORD shall -rejoice in his works. - -104:32 He looketh on the earth, and it trembleth: he toucheth the -hills, and they smoke. - -104:33 I will sing unto the LORD as long as I live: I will sing praise -to my God while I have my being. - -104:34 My meditation of him shall be sweet: I will be glad in the -LORD. - -104:35 Let the sinners be consumed out of the earth, and let the -wicked be no more. Bless thou the LORD, O my soul. Praise ye the LORD. - - - -105:1 O give thanks unto the LORD; call upon his name: make known his -deeds among the people. - -105:2 Sing unto him, sing psalms unto him: talk ye of all his wondrous -works. - -105:3 Glory ye in his holy name: let the heart of them rejoice that -seek the LORD. - -105:4 Seek the LORD, and his strength: seek his face evermore. - -105:5 Remember his marvellous works that he hath done; his wonders, -and the judgments of his mouth; - -105:6 O ye seed of Abraham his servant, ye children of Jacob his -chosen. - -105:7 He is the LORD our God: his judgments are in all the earth. - -105:8 He hath remembered his covenant for ever, the word which he -commanded to a thousand generations. - -105:9 Which covenant he made with Abraham, and his oath unto Isaac; - -105:10 And confirmed the same unto Jacob for a law, and to Israel for -an everlasting covenant: - -105:11 Saying, Unto thee will I give the land of Canaan, the lot of -your inheritance: - -105:12 When they were but a few men in number; yea, very few, and -strangers in it. - -105:13 When they went from one nation to another, from one kingdom to -another people; - -105:14 He suffered no man to do them wrong: yea, he reproved kings for -their sakes; - -105:15 Saying, Touch not mine anointed, and do my prophets no harm. - -105:16 Moreover he called for a famine upon the land: he brake the -whole staff of bread. - -105:17 He sent a man before them, even Joseph, who was sold for a -servant: - -105:18 Whose feet they hurt with fetters: he was laid in iron: - -105:19 Until the time that his word came: the word of the LORD tried -him. - -105:20 The king sent and loosed him; even the ruler of the people, and -let him go free. - -105:21 He made him lord of his house, and ruler of all his substance: - -105:22 To bind his princes at his pleasure; and teach his senators -wisdom. - -105:23 Israel also came into Egypt; and Jacob sojourned in the land of -Ham. - -105:24 And he increased his people greatly; and made them stronger -than their enemies. - -105:25 He turned their heart to hate his people, to deal subtilly with -his servants. - -105:26 He sent Moses his servant; and Aaron whom he had chosen. - -105:27 They shewed his signs among them, and wonders in the land of -Ham. - -105:28 He sent darkness, and made it dark; and they rebelled not -against his word. - -105:29 He turned their waters into blood, and slew their fish. - -105:30 Their land brought forth frogs in abundance, in the chambers of -their kings. - -105:31 He spake, and there came divers sorts of flies, and lice in all -their coasts. - -105:32 He gave them hail for rain, and flaming fire in their land. - -105:33 He smote their vines also and their fig trees; and brake the -trees of their coasts. - -105:34 He spake, and the locusts came, and caterpillers, and that -without number, - -105:35 And did eat up all the herbs in their land, and devoured the -fruit of their ground. - -105:36 He smote also all the firstborn in their land, the chief of all -their strength. - -105:37 He brought them forth also with silver and gold: and there was -not one feeble person among their tribes. - -105:38 Egypt was glad when they departed: for the fear of them fell -upon them. - -105:39 He spread a cloud for a covering; and fire to give light in the -night. - -105:40 The people asked, and he brought quails, and satisfied them -with the bread of heaven. - -105:41 He opened the rock, and the waters gushed out; they ran in the -dry places like a river. - -105:42 For he remembered his holy promise, and Abraham his servant. - -105:43 And he brought forth his people with joy, and his chosen with -gladness: - -105:44 And gave them the lands of the heathen: and they inherited the -labour of the people; - -105:45 That they might observe his statutes, and keep his laws. Praise -ye the LORD. - - - -106:1 Praise ye the LORD. O give thanks unto the LORD; for he is good: -for his mercy endureth for ever. - -106:2 Who can utter the mighty acts of the LORD? who can shew forth -all his praise? - -106:3 Blessed are they that keep judgment, and he that doeth -righteousness at all times. - -106:4 Remember me, O LORD, with the favour that thou bearest unto thy -people: O visit me with thy salvation; - -106:5 That I may see the good of thy chosen, that I may rejoice in the -gladness of thy nation, that I may glory with thine inheritance. - -106:6 We have sinned with our fathers, we have committed iniquity, we -have done wickedly. - -106:7 Our fathers understood not thy wonders in Egypt; they remembered -not the multitude of thy mercies; but provoked him at the sea, even at -the Red sea. - -106:8 Nevertheless he saved them for his name's sake, that he might -make his mighty power to be known. - -106:9 He rebuked the Red sea also, and it was dried up: so he led them -through the depths, as through the wilderness. - -106:10 And he saved them from the hand of him that hated them, and -redeemed them from the hand of the enemy. - -106:11 And the waters covered their enemies: there was not one of them -left. - -106:12 Then believed they his words; they sang his praise. - -106:13 They soon forgat his works; they waited not for his counsel: - -106:14 But lusted exceedingly in the wilderness, and tempted God in -the desert. - -106:15 And he gave them their request; but sent leanness into their -soul. - -106:16 They envied Moses also in the camp, and Aaron the saint of the -LORD. - -106:17 The earth opened and swallowed up Dathan and covered the -company of Abiram. - -106:18 And a fire was kindled in their company; the flame burned up -the wicked. - -106:19 They made a calf in Horeb, and worshipped the molten image. - -106:20 Thus they changed their glory into the similitude of an ox that -eateth grass. - -106:21 They forgat God their saviour, which had done great things in -Egypt; - -106:22 Wondrous works in the land of Ham, and terrible things by the -Red sea. - -106:23 Therefore he said that he would destroy them, had not Moses his -chosen stood before him in the breach, to turn away his wrath, lest he -should destroy them. - -106:24 Yea, they despised the pleasant land, they believed not his -word: - -106:25 But murmured in their tents, and hearkened not unto the voice -of the LORD. - -106:26 Therefore he lifted up his hand against them, to overthrow them -in the wilderness: - -106:27 To overthrow their seed also among the nations, and to scatter -them in the lands. - -106:28 They joined themselves also unto Baalpeor, and ate the -sacrifices of the dead. - -106:29 Thus they provoked him to anger with their inventions: and the -plague brake in upon them. - -106:30 Then stood up Phinehas, and executed judgment: and so the -plague was stayed. - -106:31 And that was counted unto him for righteousness unto all -generations for evermore. - -106:32 They angered him also at the waters of strife, so that it went -ill with Moses for their sakes: - -106:33 Because they provoked his spirit, so that he spake unadvisedly -with his lips. - -106:34 They did not destroy the nations, concerning whom the LORD -commanded them: - -106:35 But were mingled among the heathen, and learned their works. - -106:36 And they served their idols: which were a snare unto them. - -106:37 Yea, they sacrificed their sons and their daughters unto -devils, - -106:38 And shed innocent blood, even the blood of their sons and of -their daughters, whom they sacrificed unto the idols of Canaan: and -the land was polluted with blood. - -106:39 Thus were they defiled with their own works, and went a whoring -with their own inventions. - -106:40 Therefore was the wrath of the LORD kindled against his people, -insomuch that he abhorred his own inheritance. - -106:41 And he gave them into the hand of the heathen; and they that -hated them ruled over them. - -106:42 Their enemies also oppressed them, and they were brought into -subjection under their hand. - -106:43 Many times did he deliver them; but they provoked him with -their counsel, and were brought low for their iniquity. - -106:44 Nevertheless he regarded their affliction, when he heard their -cry: - -106:45 And he remembered for them his covenant, and repented according -to the multitude of his mercies. - -106:46 He made them also to be pitied of all those that carried them -captives. - -106:47 Save us, O LORD our God, and gather us from among the heathen, -to give thanks unto thy holy name, and to triumph in thy praise. - -106:48 Blessed be the LORD God of Israel from everlasting to -everlasting: and let all the people say, Amen. Praise ye the LORD. - - - -107:1 O give thanks unto the LORD, for he is good: for his mercy -endureth for ever. - -107:2 Let the redeemed of the LORD say so, whom he hath redeemed from -the hand of the enemy; - -107:3 And gathered them out of the lands, from the east, and from the -west, from the north, and from the south. - -107:4 They wandered in the wilderness in a solitary way; they found no -city to dwell in. - -107:5 Hungry and thirsty, their soul fainted in them. - -107:6 Then they cried unto the LORD in their trouble, and he delivered -them out of their distresses. - -107:7 And he led them forth by the right way, that they might go to a -city of habitation. - -107:8 Oh that men would praise the LORD for his goodness, and for his -wonderful works to the children of men! - -107:9 For he satisfieth the longing soul, and filleth the hungry soul -with goodness. - -107:10 Such as sit in darkness and in the shadow of death, being bound -in affliction and iron; - -107:11 Because they rebelled against the words of God, and contemned -the counsel of the most High: - -107:12 Therefore he brought down their heart with labour; they fell -down, and there was none to help. - -107:13 Then they cried unto the LORD in their trouble, and he saved -them out of their distresses. - -107:14 He brought them out of darkness and the shadow of death, and -brake their bands in sunder. - -107:15 Oh that men would praise the LORD for his goodness, and for his -wonderful works to the children of men! - -107:16 For he hath broken the gates of brass, and cut the bars of iron -in sunder. - -107:17 Fools because of their transgression, and because of their -iniquities, are afflicted. - -107:18 Their soul abhorreth all manner of meat; and they draw near -unto the gates of death. - -107:19 Then they cry unto the LORD in their trouble, and he saveth -them out of their distresses. - -107:20 He sent his word, and healed them, and delivered them from -their destructions. - -107:21 Oh that men would praise the LORD for his goodness, and for his -wonderful works to the children of men! - -107:22 And let them sacrifice the sacrifices of thanksgiving, and -declare his works with rejoicing. - -107:23 They that go down to the sea in ships, that do business in -great waters; - -107:24 These see the works of the LORD, and his wonders in the deep. - -107:25 For he commandeth, and raiseth the stormy wind, which lifteth -up the waves thereof. - -107:26 They mount up to the heaven, they go down again to the depths: -their soul is melted because of trouble. - -107:27 They reel to and fro, and stagger like a drunken man, and are -at their wit's end. - -107:28 Then they cry unto the LORD in their trouble, and he bringeth -them out of their distresses. - -107:29 He maketh the storm a calm, so that the waves thereof are -still. - -107:30 Then are they glad because they be quiet; so he bringeth them -unto their desired haven. - -107:31 Oh that men would praise the LORD for his goodness, and for his -wonderful works to the children of men! - -107:32 Let them exalt him also in the congregation of the people, and -praise him in the assembly of the elders. - -107:33 He turneth rivers into a wilderness, and the watersprings into -dry ground; - -107:34 A fruitful land into barrenness, for the wickedness of them -that dwell therein. - -107:35 He turneth the wilderness into a standing water, and dry ground -into watersprings. - -107:36 And there he maketh the hungry to dwell, that they may prepare -a city for habitation; - -107:37 And sow the fields, and plant vineyards, which may yield fruits -of increase. - -107:38 He blesseth them also, so that they are multiplied greatly; and -suffereth not their cattle to decrease. - -107:39 Again, they are minished and brought low through oppression, -affliction, and sorrow. - -107:40 He poureth contempt upon princes, and causeth them to wander in -the wilderness, where there is no way. - -107:41 Yet setteth he the poor on high from affliction, and maketh him -families like a flock. - -107:42 The righteous shall see it, and rejoice: and all iniquity shall -stop her mouth. - -107:43 Whoso is wise, and will observe these things, even they shall -understand the lovingkindness of the LORD. - - - -108:1 O god, my heart is fixed; I will sing and give praise, even with -my glory. - -108:2 Awake, psaltery and harp: I myself will awake early. - -108:3 I will praise thee, O LORD, among the people: and I will sing -praises unto thee among the nations. - -108:4 For thy mercy is great above the heavens: and thy truth reacheth -unto the clouds. - -108:5 Be thou exalted, O God, above the heavens: and thy glory above -all the earth; - -108:6 That thy beloved may be delivered: save with thy right hand, and -answer me. - -108:7 God hath spoken in his holiness; I will rejoice, I will divide -Shechem, and mete out the valley of Succoth. - -108:8 Gilead is mine; Manasseh is mine; Ephraim also is the strength -of mine head; Judah is my lawgiver; - -108:9 Moab is my washpot; over Edom will I cast out my shoe; over -Philistia will I triumph. - -108:10 Who will bring me into the strong city? who will lead me into -Edom? - -108:11 Wilt not thou, O God, who hast cast us off? and wilt not thou, -O God, go forth with our hosts? - -108:12 Give us help from trouble: for vain is the help of man. - -108:13 Through God we shall do valiantly: for he it is that shall -tread down our enemies. - - - -109:1 Hold not thy peace, O God of my praise; - -109:2 For the mouth of the wicked and the mouth of the deceitful are -opened against me: they have spoken against me with a lying tongue. - -109:3 They compassed me about also with words of hatred; and fought -against me without a cause. - -109:4 For my love they are my adversaries: but I give myself unto -prayer. - -109:5 And they have rewarded me evil for good, and hatred for my love. - -109:6 Set thou a wicked man over him: and let Satan stand at his right -hand. - -109:7 When he shall be judged, let him be condemned: and let his -prayer become sin. - -109:8 Let his days be few; and let another take his office. - -109:9 Let his children be fatherless, and his wife a widow. - -109:10 Let his children be continually vagabonds, and beg: let them -seek their bread also out of their desolate places. - -109:11 Let the extortioner catch all that he hath; and let the -strangers spoil his labour. - -109:12 Let there be none to extend mercy unto him: neither let there -be any to favour his fatherless children. - -109:13 Let his posterity be cut off; and in the generation following -let their name be blotted out. - -109:14 Let the iniquity of his fathers be remembered with the LORD; -and let not the sin of his mother be blotted out. - -109:15 Let them be before the LORD continually, that he may cut off -the memory of them from the earth. - -109:16 Because that he remembered not to shew mercy, but persecuted -the poor and needy man, that he might even slay the broken in heart. - -109:17 As he loved cursing, so let it come unto him: as he delighted -not in blessing, so let it be far from him. - -109:18 As he clothed himself with cursing like as with his garment, so -let it come into his bowels like water, and like oil into his bones. - -109:19 Let it be unto him as the garment which covereth him, and for a -girdle wherewith he is girded continually. - -109:20 Let this be the reward of mine adversaries from the LORD, and -of them that speak evil against my soul. - -109:21 But do thou for me, O GOD the Lord, for thy name's sake: -because thy mercy is good, deliver thou me. - -109:22 For I am poor and needy, and my heart is wounded within me. - -109:23 I am gone like the shadow when it declineth: I am tossed up and -down as the locust. - -109:24 My knees are weak through fasting; and my flesh faileth of -fatness. - -109:25 I became also a reproach unto them: when they looked upon me -they shaked their heads. - -109:26 Help me, O LORD my God: O save me according to thy mercy: - -109:27 That they may know that this is thy hand; that thou, LORD, hast -done it. - -109:28 Let them curse, but bless thou: when they arise, let them be -ashamed; but let thy servant rejoice. - -109:29 Let mine adversaries be clothed with shame, and let them cover -themselves with their own confusion, as with a mantle. - -109:30 I will greatly praise the LORD with my mouth; yea, I will -praise him among the multitude. - -109:31 For he shall stand at the right hand of the poor, to save him -from those that condemn his soul. - - - -110:1 The LORD said unto my Lord, Sit thou at my right hand, until I -make thine enemies thy footstool. - -110:2 The LORD shall send the rod of thy strength out of Zion: rule -thou in the midst of thine enemies. - -110:3 Thy people shall be willing in the day of thy power, in the -beauties of holiness from the womb of the morning: thou hast the dew -of thy youth. - -110:4 The LORD hath sworn, and will not repent, Thou art a priest for -ever after the order of Melchizedek. - -110:5 The Lord at thy right hand shall strike through kings in the day -of his wrath. - -110:6 He shall judge among the heathen, he shall fill the places with -the dead bodies; he shall wound the heads over many countries. - -110:7 He shall drink of the brook in the way: therefore shall he lift -up the head. - - - -111:1 Praise ye the LORD. I will praise the LORD with my whole heart, -in the assembly of the upright, and in the congregation. - -111:2 The works of the LORD are great, sought out of all them that -have pleasure therein. - -111:3 His work is honourable and glorious: and his righteousness -endureth for ever. - -111:4 He hath made his wonderful works to be remembered: the LORD is -gracious and full of compassion. - -111:5 He hath given meat unto them that fear him: he will ever be -mindful of his covenant. - -111:6 He hath shewed his people the power of his works, that he may -give them the heritage of the heathen. - -111:7 The works of his hands are verity and judgment; all his -commandments are sure. - -111:8 They stand fast for ever and ever, and are done in truth and -uprightness. - -111:9 He sent redemption unto his people: he hath commanded his -covenant for ever: holy and reverend is his name. - -111:10 The fear of the LORD is the beginning of wisdom: a good -understanding have all they that do his commandments: his praise -endureth for ever. - - - -112:1 Praise ye the LORD. Blessed is the man that feareth the LORD, -that delighteth greatly in his commandments. - -112:2 His seed shall be mighty upon earth: the generation of the -upright shall be blessed. - -112:3 Wealth and riches shall be in his house: and his righteousness -endureth for ever. - -112:4 Unto the upright there ariseth light in the darkness: he is -gracious, and full of compassion, and righteous. - -112:5 A good man sheweth favour, and lendeth: he will guide his -affairs with discretion. - -112:6 Surely he shall not be moved for ever: the righteous shall be in -everlasting remembrance. - -112:7 He shall not be afraid of evil tidings: his heart is fixed, -trusting in the LORD. - -112:8 His heart is established, he shall not be afraid, until he see -his desire upon his enemies. - -112:9 He hath dispersed, he hath given to the poor; his righteousness -endureth for ever; his horn shall be exalted with honour. - -112:10 The wicked shall see it, and be grieved; he shall gnash with -his teeth, and melt away: the desire of the wicked shall perish. - - - -113:1 Praise ye the LORD. Praise, O ye servants of the LORD, praise -the name of the LORD. - -113:2 Blessed be the name of the LORD from this time forth and for -evermore. - -113:3 From the rising of the sun unto the going down of the same the -LORD's name is to be praised. - -113:4 The LORD is high above all nations, and his glory above the -heavens. - -113:5 Who is like unto the LORD our God, who dwelleth on high, - -113:6 Who humbleth himself to behold the things that are in heaven, -and in the earth! - -113:7 He raiseth up the poor out of the dust, and lifteth the needy -out of the dunghill; - -113:8 That he may set him with princes, even with the princes of his -people. - -113:9 He maketh the barren woman to keep house, and to be a joyful -mother of children. Praise ye the LORD. - - - -114:1 When Israel went out of Egypt, the house of Jacob from a people -of strange language; - -114:2 Judah was his sanctuary, and Israel his dominion. - -114:3 The sea saw it, and fled: Jordan was driven back. - -114:4 The mountains skipped like rams, and the little hills like -lambs. - -114:5 What ailed thee, O thou sea, that thou fleddest? thou Jordan, -that thou wast driven back? - -114:6 Ye mountains, that ye skipped like rams; and ye little hills, -like lambs? - -114:7 Tremble, thou earth, at the presence of the Lord, at the -presence of the God of Jacob; - -114:8 Which turned the rock into a standing water, the flint into a -fountain of waters. - - - -115:1 Not unto us, O LORD, not unto us, but unto thy name give glory, -for thy mercy, and for thy truth's sake. - -115:2 Wherefore should the heathen say, Where is now their God? - -115:3 But our God is in the heavens: he hath done whatsoever he hath -pleased. - -115:4 Their idols are silver and gold, the work of men's hands. - -115:5 They have mouths, but they speak not: eyes have they, but they -see not: - -115:6 They have ears, but they hear not: noses have they, but they -smell not: - -115:7 They have hands, but they handle not: feet have they, but they -walk not: neither speak they through their throat. - -115:8 They that make them are like unto them; so is every one that -trusteth in them. - -115:9 O Israel, trust thou in the LORD: he is their help and their -shield. - -115:10 O house of Aaron, trust in the LORD: he is their help and their -shield. - -115:11 Ye that fear the LORD, trust in the LORD: he is their help and -their shield. - -115:12 The LORD hath been mindful of us: he will bless us; he will -bless the house of Israel; he will bless the house of Aaron. - -115:13 He will bless them that fear the LORD, both small and great. - -115:14 The LORD shall increase you more and more, you and your -children. - -115:15 Ye are blessed of the LORD which made heaven and earth. - -115:16 The heaven, even the heavens, are the LORD's: but the earth -hath he given to the children of men. - -115:17 The dead praise not the LORD, neither any that go down into -silence. - -115:18 But we will bless the LORD from this time forth and for -evermore. - -Praise the LORD. - - - -116:1 I love the LORD, because he hath heard my voice and my -supplications. - -116:2 Because he hath inclined his ear unto me, therefore will I call -upon him as long as I live. - -116:3 The sorrows of death compassed me, and the pains of hell gat -hold upon me: I found trouble and sorrow. - -116:4 Then called I upon the name of the LORD; O LORD, I beseech thee, -deliver my soul. - -116:5 Gracious is the LORD, and righteous; yea, our God is merciful. - -116:6 The LORD preserveth the simple: I was brought low, and he helped -me. - -116:7 Return unto thy rest, O my soul; for the LORD hath dealt -bountifully with thee. - -116:8 For thou hast delivered my soul from death, mine eyes from -tears, and my feet from falling. - -116:9 I will walk before the LORD in the land of the living. - -116:10 I believed, therefore have I spoken: I was greatly afflicted: - -116:11 I said in my haste, All men are liars. - -116:12 What shall I render unto the LORD for all his benefits toward -me? - -116:13 I will take the cup of salvation, and call upon the name of the -LORD. - -116:14 I will pay my vows unto the LORD now in the presence of all his -people. - -116:15 Precious in the sight of the LORD is the death of his saints. - -116:16 O LORD, truly I am thy servant; I am thy servant, and the son -of thine handmaid: thou hast loosed my bonds. - -116:17 I will offer to thee the sacrifice of thanksgiving, and will -call upon the name of the LORD. - -116:18 I will pay my vows unto the LORD now in the presence of all his -people. - -116:19 In the courts of the LORD's house, in the midst of thee, O -Jerusalem. Praise ye the LORD. - - - -117:1 O praise the LORD, all ye nations: praise him, all ye people. - -117:2 For his merciful kindness is great toward us: and the truth of -the LORD endureth for ever. Praise ye the LORD. - - - -118:1 O give thanks unto the LORD; for he is good: because his mercy -endureth for ever. - -118:2 Let Israel now say, that his mercy endureth for ever. - -118:3 Let the house of Aaron now say, that his mercy endureth for -ever. - -118:4 Let them now that fear the LORD say, that his mercy endureth for -ever. - -118:5 I called upon the LORD in distress: the LORD answered me, and -set me in a large place. - -118:6 The LORD is on my side; I will not fear: what can man do unto -me? - -118:7 The LORD taketh my part with them that help me: therefore shall -I see my desire upon them that hate me. - -118:8 It is better to trust in the LORD than to put confidence in man. - -118:9 It is better to trust in the LORD than to put confidence in -princes. - -118:10 All nations compassed me about: but in the name of the LORD -will I destroy them. - -118:11 They compassed me about; yea, they compassed me about: but in -the name of the LORD I will destroy them. - -118:12 They compassed me about like bees: they are quenched as the -fire of thorns: for in the name of the LORD I will destroy them. - -118:13 Thou hast thrust sore at me that I might fall: but the LORD -helped me. - -118:14 The LORD is my strength and song, and is become my salvation. - -118:15 The voice of rejoicing and salvation is in the tabernacles of -the righteous: the right hand of the LORD doeth valiantly. - -118:16 The right hand of the LORD is exalted: the right hand of the -LORD doeth valiantly. - -118:17 I shall not die, but live, and declare the works of the LORD. - -118:18 The LORD hath chastened me sore: but he hath not given me over -unto death. - -118:19 Open to me the gates of righteousness: I will go into them, and -I will praise the LORD: - -118:20 This gate of the LORD, into which the righteous shall enter. - -118:21 I will praise thee: for thou hast heard me, and art become my -salvation. - -118:22 The stone which the builders refused is become the head stone -of the corner. - -118:23 This is the LORD's doing; it is marvellous in our eyes. - -118:24 This is the day which the LORD hath made; we will rejoice and -be glad in it. - -118:25 Save now, I beseech thee, O LORD: O LORD, I beseech thee, send -now prosperity. - -118:26 Blessed be he that cometh in the name of the LORD: we have -blessed you out of the house of the LORD. - -118:27 God is the LORD, which hath shewed us light: bind the sacrifice -with cords, even unto the horns of the altar. - -118:28 Thou art my God, and I will praise thee: thou art my God, I -will exalt thee. - -118:29 O give thanks unto the LORD; for he is good: for his mercy -endureth for ever. - - - -119:1 Blessed are the undefiled in the way, who walk in the law of the -LORD. - -119:2 Blessed are they that keep his testimonies, and that seek him -with the whole heart. - -119:3 They also do no iniquity: they walk in his ways. - -119:4 Thou hast commanded us to keep thy precepts diligently. - -119:5 O that my ways were directed to keep thy statutes! - -119:6 Then shall I not be ashamed, when I have respect unto all thy -commandments. - -119:7 I will praise thee with uprightness of heart, when I shall have -learned thy righteous judgments. - -119:8 I will keep thy statutes: O forsake me not utterly. - -119:9 Wherewithal shall a young man cleanse his way? by taking heed -thereto according to thy word. - -119:10 With my whole heart have I sought thee: O let me not wander -from thy commandments. - -119:11 Thy word have I hid in mine heart, that I might not sin against -thee. - -119:12 Blessed art thou, O LORD: teach me thy statutes. - -119:13 With my lips have I declared all the judgments of thy mouth. - -119:14 I have rejoiced in the way of thy testimonies, as much as in -all riches. - -119:15 I will meditate in thy precepts, and have respect unto thy -ways. - -119:16 I will delight myself in thy statutes: I will not forget thy -word. - -119:17 Deal bountifully with thy servant, that I may live, and keep -thy word. - -119:18 Open thou mine eyes, that I may behold wondrous things out of -thy law. - -119:19 I am a stranger in the earth: hide not thy commandments from -me. - -119:20 My soul breaketh for the longing that it hath unto thy -judgments at all times. - -119:21 Thou hast rebuked the proud that are cursed, which do err from -thy commandments. - -119:22 Remove from me reproach and contempt; for I have kept thy -testimonies. - -119:23 Princes also did sit and speak against me: but thy servant did -meditate in thy statutes. - -119:24 Thy testimonies also are my delight and my counsellors. - -119:25 My soul cleaveth unto the dust: quicken thou me according to -thy word. - -119:26 I have declared my ways, and thou heardest me: teach me thy -statutes. - -119:27 Make me to understand the way of thy precepts: so shall I talk -of thy wondrous works. - -119:28 My soul melteth for heaviness: strengthen thou me according -unto thy word. - -119:29 Remove from me the way of lying: and grant me thy law -graciously. - -119:30 I have chosen the way of truth: thy judgments have I laid -before me. - -119:31 I have stuck unto thy testimonies: O LORD, put me not to shame. - -119:32 I will run the way of thy commandments, when thou shalt enlarge -my heart. - -119:33 Teach me, O LORD, the way of thy statutes; and I shall keep it -unto the end. - -119:34 Give me understanding, and I shall keep thy law; yea, I shall -observe it with my whole heart. - -119:35 Make me to go in the path of thy commandments; for therein do I -delight. - -119:36 Incline my heart unto thy testimonies, and not to covetousness. - -119:37 Turn away mine eyes from beholding vanity; and quicken thou me -in thy way. - -119:38 Stablish thy word unto thy servant, who is devoted to thy fear. - -119:39 Turn away my reproach which I fear: for thy judgments are good. - -119:40 Behold, I have longed after thy precepts: quicken me in thy -righteousness. - -119:41 Let thy mercies come also unto me, O LORD, even thy salvation, -according to thy word. - -119:42 So shall I have wherewith to answer him that reproacheth me: -for I trust in thy word. - -119:43 And take not the word of truth utterly out of my mouth; for I -have hoped in thy judgments. - -119:44 So shall I keep thy law continually for ever and ever. - -119:45 And I will walk at liberty: for I seek thy precepts. - -119:46 I will speak of thy testimonies also before kings, and will not -be ashamed. - -119:47 And I will delight myself in thy commandments, which I have -loved. - -119:48 My hands also will I lift up unto thy commandments, which I -have loved; and I will meditate in thy statutes. - -119:49 Remember the word unto thy servant, upon which thou hast caused -me to hope. - -119:50 This is my comfort in my affliction: for thy word hath -quickened me. - -119:51 The proud have had me greatly in derision: yet have I not -declined from thy law. - -119:52 I remembered thy judgments of old, O LORD; and have comforted -myself. - -119:53 Horror hath taken hold upon me because of the wicked that -forsake thy law. - -119:54 Thy statutes have been my songs in the house of my pilgrimage. - -119:55 I have remembered thy name, O LORD, in the night, and have kept -thy law. - -119:56 This I had, because I kept thy precepts. - -119:57 Thou art my portion, O LORD: I have said that I would keep thy -words. - -119:58 I intreated thy favour with my whole heart: be merciful unto me -according to thy word. - -119:59 I thought on my ways, and turned my feet unto thy testimonies. - -119:60 I made haste, and delayed not to keep thy commandments. - -119:61 The bands of the wicked have robbed me: but I have not -forgotten thy law. - -119:62 At midnight I will rise to give thanks unto thee because of thy -righteous judgments. - -119:63 I am a companion of all them that fear thee, and of them that -keep thy precepts. - -119:64 The earth, O LORD, is full of thy mercy: teach me thy statutes. - -119:65 Thou hast dealt well with thy servant, O LORD, according unto -thy word. - -119:66 Teach me good judgment and knowledge: for I have believed thy -commandments. - -119:67 Before I was afflicted I went astray: but now have I kept thy -word. - -119:68 Thou art good, and doest good; teach me thy statutes. - -119:69 The proud have forged a lie against me: but I will keep thy -precepts with my whole heart. - -119:70 Their heart is as fat as grease; but I delight in thy law. - -119:71 It is good for me that I have been afflicted; that I might -learn thy statutes. - -119:72 The law of thy mouth is better unto me than thousands of gold -and silver. - -119:73 Thy hands have made me and fashioned me: give me understanding, -that I may learn thy commandments. - -119:74 They that fear thee will be glad when they see me; because I -have hoped in thy word. - -119:75 I know, O LORD, that thy judgments are right, and that thou in -faithfulness hast afflicted me. - -119:76 Let, I pray thee, thy merciful kindness be for my comfort, -according to thy word unto thy servant. - -119:77 Let thy tender mercies come unto me, that I may live: for thy -law is my delight. - -119:78 Let the proud be ashamed; for they dealt perversely with me -without a cause: but I will meditate in thy precepts. - -119:79 Let those that fear thee turn unto me, and those that have -known thy testimonies. - -119:80 Let my heart be sound in thy statutes; that I be not ashamed. - -119:81 My soul fainteth for thy salvation: but I hope in thy word. - -119:82 Mine eyes fail for thy word, saying, When wilt thou comfort me? - -119:83 For I am become like a bottle in the smoke; yet do I not forget -thy statutes. - -119:84 How many are the days of thy servant? when wilt thou execute -judgment on them that persecute me? - -119:85 The proud have digged pits for me, which are not after thy law. - -119:86 All thy commandments are faithful: they persecute me -wrongfully; help thou me. - -119:87 They had almost consumed me upon earth; but I forsook not thy -precepts. - -119:88 Quicken me after thy lovingkindness; so shall I keep the -testimony of thy mouth. - -119:89 For ever, O LORD, thy word is settled in heaven. - -119:90 Thy faithfulness is unto all generations: thou hast established -the earth, and it abideth. - -119:91 They continue this day according to thine ordinances: for all -are thy servants. - -119:92 Unless thy law had been my delights, I should then have -perished in mine affliction. - -119:93 I will never forget thy precepts: for with them thou hast -quickened me. - -119:94 I am thine, save me: for I have sought thy precepts. - -119:95 The wicked have waited for me to destroy me: but I will -consider thy testimonies. - -119:96 I have seen an end of all perfection: but thy commandment is -exceeding broad. - -119:97 O how I love thy law! it is my meditation all the day. - -119:98 Thou through thy commandments hast made me wiser than mine -enemies: for they are ever with me. - -119:99 I have more understanding than all my teachers: for thy -testimonies are my meditation. - -119:100 I understand more than the ancients, because I keep thy -precepts. - -119:101 I have refrained my feet from every evil way, that I might -keep thy word. - -119:102 I have not departed from thy judgments: for thou hast taught -me. - -119:103 How sweet are thy words unto my taste! yea, sweeter than honey -to my mouth! - -119:104 Through thy precepts I get understanding: therefore I hate -every false way. - -119:105 Thy word is a lamp unto my feet, and a light unto my path. - -119:106 I have sworn, and I will perform it, that I will keep thy -righteous judgments. - -119:107 I am afflicted very much: quicken me, O LORD, according unto -thy word. - -119:108 Accept, I beseech thee, the freewill offerings of my mouth, O -LORD, and teach me thy judgments. - -119:109 My soul is continually in my hand: yet do I not forget thy -law. - -119:110 The wicked have laid a snare for me: yet I erred not from thy -precepts. - -119:111 Thy testimonies have I taken as an heritage for ever: for they -are the rejoicing of my heart. - -119:112 I have inclined mine heart to perform thy statutes alway, even -unto the end. - -119:113 I hate vain thoughts: but thy law do I love. - -119:114 Thou art my hiding place and my shield: I hope in thy word. - -119:115 Depart from me, ye evildoers: for I will keep the commandments -of my God. - -119:116 Uphold me according unto thy word, that I may live: and let me -not be ashamed of my hope. - -119:117 Hold thou me up, and I shall be safe: and I will have respect -unto thy statutes continually. - -119:118 Thou hast trodden down all them that err from thy statutes: -for their deceit is falsehood. - -119:119 Thou puttest away all the wicked of the earth like dross: -therefore I love thy testimonies. - -119:120 My flesh trembleth for fear of thee; and I am afraid of thy -judgments. - -119:121 I have done judgment and justice: leave me not to mine -oppressors. - -119:122 Be surety for thy servant for good: let not the proud oppress -me. - -119:123 Mine eyes fail for thy salvation, and for the word of thy -righteousness. - -119:124 Deal with thy servant according unto thy mercy, and teach me -thy statutes. - -119:125 I am thy servant; give me understanding, that I may know thy -testimonies. - -119:126 It is time for thee, LORD, to work: for they have made void -thy law. - -119:127 Therefore I love thy commandments above gold; yea, above fine -gold. - -119:128 Therefore I esteem all thy precepts concerning all things to -be right; and I hate every false way. - -119:129 Thy testimonies are wonderful: therefore doth my soul keep -them. - -119:130 The entrance of thy words giveth light; it giveth -understanding unto the simple. - -119:131 I opened my mouth, and panted: for I longed for thy -commandments. - -119:132 Look thou upon me, and be merciful unto me, as thou usest to -do unto those that love thy name. - -119:133 Order my steps in thy word: and let not any iniquity have -dominion over me. - -119:134 Deliver me from the oppression of man: so will I keep thy -precepts. - -119:135 Make thy face to shine upon thy servant; and teach me thy -statutes. - -119:136 Rivers of waters run down mine eyes, because they keep not thy -law. - -119:137 Righteous art thou, O LORD, and upright are thy judgments. - -119:138 Thy testimonies that thou hast commanded are righteous and -very faithful. - -119:139 My zeal hath consumed me, because mine enemies have forgotten -thy words. - -119:140 Thy word is very pure: therefore thy servant loveth it. - -119:141 I am small and despised: yet do not I forget thy precepts. - -119:142 Thy righteousness is an everlasting righteousness, and thy law -is the truth. - -119:143 Trouble and anguish have taken hold on me: yet thy -commandments are my delights. - -119:144 The righteousness of thy testimonies is everlasting: give me -understanding, and I shall live. - -119:145 I cried with my whole heart; hear me, O LORD: I will keep thy -statutes. - -119:146 I cried unto thee; save me, and I shall keep thy testimonies. - -119:147 I prevented the dawning of the morning, and cried: I hoped in -thy word. - -119:148 Mine eyes prevent the night watches, that I might meditate in -thy word. - -119:149 Hear my voice according unto thy lovingkindness: O LORD, -quicken me according to thy judgment. - -119:150 They draw nigh that follow after mischief: they are far from -thy law. - -119:151 Thou art near, O LORD; and all thy commandments are truth. - -119:152 Concerning thy testimonies, I have known of old that thou hast -founded them for ever. - -119:153 Consider mine affliction, and deliver me: for I do not forget -thy law. - -119:154 Plead my cause, and deliver me: quicken me according to thy -word. - -119:155 Salvation is far from the wicked: for they seek not thy -statutes. - -119:156 Great are thy tender mercies, O LORD: quicken me according to -thy judgments. - -119:157 Many are my persecutors and mine enemies; yet do I not decline -from thy testimonies. - -119:158 I beheld the transgressors, and was grieved; because they kept -not thy word. - -119:159 Consider how I love thy precepts: quicken me, O LORD, -according to thy lovingkindness. - -119:160 Thy word is true from the beginning: and every one of thy -righteous judgments endureth for ever. - -119:161 Princes have persecuted me without a cause: but my heart -standeth in awe of thy word. - -119:162 I rejoice at thy word, as one that findeth great spoil. - -119:163 I hate and abhor lying: but thy law do I love. - -119:164 Seven times a day do I praise thee because of thy righteous -judgments. - -119:165 Great peace have they which love thy law: and nothing shall -offend them. - -119:166 LORD, I have hoped for thy salvation, and done thy -commandments. - -119:167 My soul hath kept thy testimonies; and I love them -exceedingly. - -119:168 I have kept thy precepts and thy testimonies: for all my ways -are before thee. - -119:169 Let my cry come near before thee, O LORD: give me -understanding according to thy word. - -119:170 Let my supplication come before thee: deliver me according to -thy word. - -119:171 My lips shall utter praise, when thou hast taught me thy -statutes. - -119:172 My tongue shall speak of thy word: for all thy commandments -are righteousness. - -119:173 Let thine hand help me; for I have chosen thy precepts. - -119:174 I have longed for thy salvation, O LORD; and thy law is my -delight. - -119:175 Let my soul live, and it shall praise thee; and let thy -judgments help me. - -119:176 I have gone astray like a lost sheep; seek thy servant; for I -do not forget thy commandments. - - - -120:1 In my distress I cried unto the LORD, and he heard me. - -120:2 Deliver my soul, O LORD, from lying lips, and from a deceitful -tongue. - -120:3 What shall be given unto thee? or what shall be done unto thee, -thou false tongue? - -120:4 Sharp arrows of the mighty, with coals of juniper. - -120:5 Woe is me, that I sojourn in Mesech, that I dwell in the tents -of Kedar! - -120:6 My soul hath long dwelt with him that hateth peace. - -120:7 I am for peace: but when I speak, they are for war. - - - -121:1 I will lift up mine eyes unto the hills, from whence cometh my -help. - -121:2 My help cometh from the LORD, which made heaven and earth. - -121:3 He will not suffer thy foot to be moved: he that keepeth thee -will not slumber. - -121:4 Behold, he that keepeth Israel shall neither slumber nor sleep. - -121:5 The LORD is thy keeper: the LORD is thy shade upon thy right -hand. - -121:6 The sun shall not smite thee by day, nor the moon by night. - -121:7 The LORD shall preserve thee from all evil: he shall preserve -thy soul. - -121:8 The LORD shall preserve thy going out and thy coming in from -this time forth, and even for evermore. - - - -122:1 I was glad when they said unto me, Let us go into the house of -the LORD. - -122:2 Our feet shall stand within thy gates, O Jerusalem. - -122:3 Jerusalem is builded as a city that is compact together: - -122:4 Whither the tribes go up, the tribes of the LORD, unto the -testimony of Israel, to give thanks unto the name of the LORD. - -122:5 For there are set thrones of judgment, the thrones of the house -of David. - -122:6 Pray for the peace of Jerusalem: they shall prosper that love -thee. - -122:7 Peace be within thy walls, and prosperity within thy palaces. - -122:8 For my brethren and companions' sakes, I will now say, Peace be -within thee. - -122:9 Because of the house of the LORD our God I will seek thy good. - - - -123:1 Unto thee lift I up mine eyes, O thou that dwellest in the -heavens. - -123:2 Behold, as the eyes of servants look unto the hand of their -masters, and as the eyes of a maiden unto the hand of her mistress; so -our eyes wait upon the LORD our God, until that he have mercy upon us. - -123:3 Have mercy upon us, O LORD, have mercy upon us: for we are -exceedingly filled with contempt. - -123:4 Our soul is exceedingly filled with the scorning of those that -are at ease, and with the contempt of the proud. - - - -124:1 If it had not been the LORD who was on our side, now may Israel -say; - -124:2 If it had not been the LORD who was on our side, when men rose -up against us: - -124:3 Then they had swallowed us up quick, when their wrath was -kindled against us: - -124:4 Then the waters had overwhelmed us, the stream had gone over our -soul: - -124:5 Then the proud waters had gone over our soul. - -124:6 Blessed be the LORD, who hath not given us as a prey to their -teeth. - -124:7 Our soul is escaped as a bird out of the snare of the fowlers: -the snare is broken, and we are escaped. - -124:8 Our help is in the name of the LORD, who made heaven and earth. - - - -125:1 They that trust in the LORD shall be as mount Zion, which cannot -be removed, but abideth for ever. - -125:2 As the mountains are round about Jerusalem, so the LORD is round -about his people from henceforth even for ever. - -125:3 For the rod of the wicked shall not rest upon the lot of the -righteous; lest the righteous put forth their hands unto iniquity. - -125:4 Do good, O LORD, unto those that be good, and to them that are -upright in their hearts. - -125:5 As for such as turn aside unto their crooked ways, the LORD -shall lead them forth with the workers of iniquity: but peace shall be -upon Israel. - - - -126:1 When the LORD turned again the captivity of Zion, we were like -them that dream. - -126:2 Then was our mouth filled with laughter, and our tongue with -singing: then said they among the heathen, The LORD hath done great -things for them. - -126:3 The LORD hath done great things for us; whereof we are glad. - -126:4 Turn again our captivity, O LORD, as the streams in the south. - -126:5 They that sow in tears shall reap in joy. - -126:6 He that goeth forth and weepeth, bearing precious seed, shall -doubtless come again with rejoicing, bringing his sheaves with him. - - - -127:1 Except the LORD build the house, they labour in vain that build -it: except the LORD keep the city, the watchman waketh but in vain. - -127:2 It is vain for you to rise up early, to sit up late, to eat the -bread of sorrows: for so he giveth his beloved sleep. - -127:3 Lo, children are an heritage of the LORD: and the fruit of the -womb is his reward. - -127:4 As arrows are in the hand of a mighty man; so are children of -the youth. - -127:5 Happy is the man that hath his quiver full of them: they shall -not be ashamed, but they shall speak with the enemies in the gate. - - - -128:1 Blessed is every one that feareth the LORD; that walketh in his -ways. - -128:2 For thou shalt eat the labour of thine hands: happy shalt thou -be, and it shall be well with thee. - -128:3 Thy wife shall be as a fruitful vine by the sides of thine -house: thy children like olive plants round about thy table. - -128:4 Behold, that thus shall the man be blessed that feareth the -LORD. - -128:5 The LORD shall bless thee out of Zion: and thou shalt see the -good of Jerusalem all the days of thy life. - -128:6 Yea, thou shalt see thy children's children, and peace upon -Israel. - - - -129:1 Many a time have they afflicted me from my youth, may Israel now -say: - -129:2 Many a time have they afflicted me from my youth: yet they have -not prevailed against me. - -129:3 The plowers plowed upon my back: they made long their furrows. - -129:4 The LORD is righteous: he hath cut asunder the cords of the -wicked. - -129:5 Let them all be confounded and turned back that hate Zion. - -129:6 Let them be as the grass upon the housetops, which withereth -afore it groweth up: - -129:7 Wherewith the mower filleth not his hand; nor he that bindeth -sheaves his bosom. - -129:8 Neither do they which go by say, The blessing of the LORD be -upon you: we bless you in the name of the LORD. - - - -130:1 Out of the depths have I cried unto thee, O LORD. - -130:2 Lord, hear my voice: let thine ears be attentive to the voice of -my supplications. - -130:3 If thou, LORD, shouldest mark iniquities, O Lord, who shall -stand? - -130:4 But there is forgiveness with thee, that thou mayest be feared. - -130:5 I wait for the LORD, my soul doth wait, and in his word do I -hope. - -130:6 My soul waiteth for the Lord more than they that watch for the -morning: I say, more than they that watch for the morning. - -130:7 Let Israel hope in the LORD: for with the LORD there is mercy, -and with him is plenteous redemption. - -130:8 And he shall redeem Israel from all his iniquities. - - - -131:1 Lord, my heart is not haughty, nor mine eyes lofty: neither do I -exercise myself in great matters, or in things too high for me. - -131:2 Surely I have behaved and quieted myself, as a child that is -weaned of his mother: my soul is even as a weaned child. - -131:3 Let Israel hope in the LORD from henceforth and for ever. - - - -132:1 Lord, remember David, and all his afflictions: - -132:2 How he sware unto the LORD, and vowed unto the mighty God of -Jacob; - -132:3 Surely I will not come into the tabernacle of my house, nor go -up into my bed; - -132:4 I will not give sleep to mine eyes, or slumber to mine eyelids, - -132:5 Until I find out a place for the LORD, an habitation for the -mighty God of Jacob. - -132:6 Lo, we heard of it at Ephratah: we found it in the fields of the -wood. - -132:7 We will go into his tabernacles: we will worship at his -footstool. - -132:8 Arise, O LORD, into thy rest; thou, and the ark of thy strength. - -132:9 Let thy priests be clothed with righteousness; and let thy -saints shout for joy. - -132:10 For thy servant David's sake turn not away the face of thine -anointed. - -132:11 The LORD hath sworn in truth unto David; he will not turn from -it; Of the fruit of thy body will I set upon thy throne. - -132:12 If thy children will keep my covenant and my testimony that I -shall teach them, their children shall also sit upon thy throne for -evermore. - -132:13 For the LORD hath chosen Zion; he hath desired it for his -habitation. - -132:14 This is my rest for ever: here will I dwell; for I have desired -it. - -132:15 I will abundantly bless her provision: I will satisfy her poor -with bread. - -132:16 I will also clothe her priests with salvation: and her saints -shall shout aloud for joy. - -132:17 There will I make the horn of David to bud: I have ordained a -lamp for mine anointed. - -132:18 His enemies will I clothe with shame: but upon himself shall -his crown flourish. - - - -133:1 Behold, how good and how pleasant it is for brethren to dwell -together in unity! - -133:2 It is like the precious ointment upon the head, that ran down -upon the beard, even Aaron's beard: that went down to the skirts of -his garments; - -133:3 As the dew of Hermon, and as the dew that descended upon the -mountains of Zion: for there the LORD commanded the blessing, even -life for evermore. - - - -134:1 Behold, bless ye the LORD, all ye servants of the LORD, which by -night stand in the house of the LORD. - -134:2 Lift up your hands in the sanctuary, and bless the LORD. - -134:3 The LORD that made heaven and earth bless thee out of Zion. - - - -135:1 Praise ye the LORD. Praise ye the name of the LORD; praise him, -O ye servants of the LORD. - -135:2 Ye that stand in the house of the LORD, in the courts of the -house of our God. - -135:3 Praise the LORD; for the LORD is good: sing praises unto his -name; for it is pleasant. - -135:4 For the LORD hath chosen Jacob unto himself, and Israel for his -peculiar treasure. - -135:5 For I know that the LORD is great, and that our Lord is above -all gods. - -135:6 Whatsoever the LORD pleased, that did he in heaven, and in -earth, in the seas, and all deep places. - -135:7 He causeth the vapours to ascend from the ends of the earth; he -maketh lightnings for the rain; he bringeth the wind out of his -treasuries. - -135:8 Who smote the firstborn of Egypt, both of man and beast. - -135:9 Who sent tokens and wonders into the midst of thee, O Egypt, -upon Pharaoh, and upon all his servants. - -135:10 Who smote great nations, and slew mighty kings; - -135:11 Sihon king of the Amorites, and Og king of Bashan, and all the -kingdoms of Canaan: - -135:12 And gave their land for an heritage, an heritage unto Israel -his people. - -135:13 Thy name, O LORD, endureth for ever; and thy memorial, O LORD, -throughout all generations. - -135:14 For the LORD will judge his people, and he will repent himself -concerning his servants. - -135:15 The idols of the heathen are silver and gold, the work of men's -hands. - -135:16 They have mouths, but they speak not; eyes have they, but they -see not; - -135:17 They have ears, but they hear not; neither is there any breath -in their mouths. - -135:18 They that make them are like unto them: so is every one that -trusteth in them. - -135:19 Bless the LORD, O house of Israel: bless the LORD, O house of -Aaron: - -135:20 Bless the LORD, O house of Levi: ye that fear the LORD, bless -the LORD. - -135:21 Blessed be the LORD out of Zion, which dwelleth at Jerusalem. - -Praise ye the LORD. - - - -136:1 O give thanks unto the LORD; for he is good: for his mercy -endureth for ever. - -136:2 O give thanks unto the God of gods: for his mercy endureth for -ever. - -136:3 O give thanks to the Lord of lords: for his mercy endureth for -ever. - -136:4 To him who alone doeth great wonders: for his mercy endureth for -ever. - -136:5 To him that by wisdom made the heavens: for his mercy endureth -for ever. - -136:6 To him that stretched out the earth above the waters: for his -mercy endureth for ever. - -136:7 To him that made great lights: for his mercy endureth for ever: - -136:8 The sun to rule by day: for his mercy endureth for ever: - -136:9 The moon and stars to rule by night: for his mercy endureth for -ever. - -136:10 To him that smote Egypt in their firstborn: for his mercy -endureth for ever: - -136:11 And brought out Israel from among them: for his mercy endureth -for ever: - -136:12 With a strong hand, and with a stretched out arm: for his mercy -endureth for ever. - -136:13 To him which divided the Red sea into parts: for his mercy -endureth for ever: - -136:14 And made Israel to pass through the midst of it: for his mercy -endureth for ever: - -136:15 But overthrew Pharaoh and his host in the Red sea: for his -mercy endureth for ever. - -136:16 To him which led his people through the wilderness: for his -mercy endureth for ever. - -136:17 To him which smote great kings: for his mercy endureth for -ever: - -136:18 And slew famous kings: for his mercy endureth for ever: - -136:19 Sihon king of the Amorites: for his mercy endureth for ever: - -136:20 And Og the king of Bashan: for his mercy endureth for ever: - -136:21 And gave their land for an heritage: for his mercy endureth for -ever: - -136:22 Even an heritage unto Israel his servant: for his mercy -endureth for ever. - -136:23 Who remembered us in our low estate: for his mercy endureth for -ever: - -136:24 And hath redeemed us from our enemies: for his mercy endureth -for ever. - -136:25 Who giveth food to all flesh: for his mercy endureth for ever. - -136:26 O give thanks unto the God of heaven: for his mercy endureth -for ever. - - - -137:1 By the rivers of Babylon, there we sat down, yea, we wept, when -we remembered Zion. - -137:2 We hanged our harps upon the willows in the midst thereof. - -137:3 For there they that carried us away captive required of us a -song; and they that wasted us required of us mirth, saying, Sing us -one of the songs of Zion. - -137:4 How shall we sing the LORD's song in a strange land? - -137:5 If I forget thee, O Jerusalem, let my right hand forget her -cunning. - -137:6 If I do not remember thee, let my tongue cleave to the roof of -my mouth; if I prefer not Jerusalem above my chief joy. - -137:7 Remember, O LORD, the children of Edom in the day of Jerusalem; -who said, Rase it, rase it, even to the foundation thereof. - -137:8 O daughter of Babylon, who art to be destroyed; happy shall he -be, that rewardeth thee as thou hast served us. - -137:9 Happy shall he be, that taketh and dasheth thy little ones -against the stones. - - - -138:1 I will praise thee with my whole heart: before the gods will I -sing praise unto thee. - -138:2 I will worship toward thy holy temple, and praise thy name for -thy lovingkindness and for thy truth: for thou hast magnified thy word -above all thy name. - -138:3 In the day when I cried thou answeredst me, and strengthenedst -me with strength in my soul. - -138:4 All the kings of the earth shall praise thee, O LORD, when they -hear the words of thy mouth. - -138:5 Yea, they shall sing in the ways of the LORD: for great is the -glory of the LORD. - -138:6 Though the LORD be high, yet hath he respect unto the lowly: but -the proud he knoweth afar off. - -138:7 Though I walk in the midst of trouble, thou wilt revive me: thou -shalt stretch forth thine hand against the wrath of mine enemies, and -thy right hand shall save me. - -138:8 The LORD will perfect that which concerneth me: thy mercy, O -LORD, endureth for ever: forsake not the works of thine own hands. - - - -139:1 O lord, thou hast searched me, and known me. - -139:2 Thou knowest my downsitting and mine uprising, thou -understandest my thought afar off. - -139:3 Thou compassest my path and my lying down, and art acquainted -with all my ways. - -139:4 For there is not a word in my tongue, but, lo, O LORD, thou -knowest it altogether. - -139:5 Thou hast beset me behind and before, and laid thine hand upon -me. - -139:6 Such knowledge is too wonderful for me; it is high, I cannot -attain unto it. - -139:7 Whither shall I go from thy spirit? or whither shall I flee from -thy presence? - -139:8 If I ascend up into heaven, thou art there: if I make my bed in -hell, behold, thou art there. - -139:9 If I take the wings of the morning, and dwell in the uttermost -parts of the sea; - -139:10 Even there shall thy hand lead me, and thy right hand shall -hold me. - -139:11 If I say, Surely the darkness shall cover me; even the night -shall be light about me. - -139:12 Yea, the darkness hideth not from thee; but the night shineth -as the day: the darkness and the light are both alike to thee. - -139:13 For thou hast possessed my reins: thou hast covered me in my -mother's womb. - -139:14 I will praise thee; for I am fearfully and wonderfully made: -marvellous are thy works; and that my soul knoweth right well. - -139:15 My substance was not hid from thee, when I was made in secret, -and curiously wrought in the lowest parts of the earth. - -139:16 Thine eyes did see my substance, yet being unperfect; and in -thy book all my members were written, which in continuance were -fashioned, when as yet there was none of them. - -139:17 How precious also are thy thoughts unto me, O God! how great is -the sum of them! - -139:18 If I should count them, they are more in number than the sand: -when I awake, I am still with thee. - -139:19 Surely thou wilt slay the wicked, O God: depart from me -therefore, ye bloody men. - -139:20 For they speak against thee wickedly, and thine enemies take -thy name in vain. - -139:21 Do not I hate them, O LORD, that hate thee? and am not I -grieved with those that rise up against thee? - -139:22 I hate them with perfect hatred: I count them mine enemies. - -139:23 Search me, O God, and know my heart: try me, and know my -thoughts: - -139:24 And see if there be any wicked way in me, and lead me in the -way everlasting. - - - -140:1 Deliver me, O LORD, from the evil man: preserve me from the -violent man; - -140:2 Which imagine mischiefs in their heart; continually are they -gathered together for war. - -140:3 They have sharpened their tongues like a serpent; adders' poison -is under their lips. Selah. - -140:4 Keep me, O LORD, from the hands of the wicked; preserve me from -the violent man; who have purposed to overthrow my goings. - -140:5 The proud have hid a snare for me, and cords; they have spread a -net by the wayside; they have set gins for me. Selah. - -140:6 I said unto the LORD, Thou art my God: hear the voice of my -supplications, O LORD. - -140:7 O GOD the Lord, the strength of my salvation, thou hast covered -my head in the day of battle. - -140:8 Grant not, O LORD, the desires of the wicked: further not his -wicked device; lest they exalt themselves. Selah. - -140:9 As for the head of those that compass me about, let the mischief -of their own lips cover them. - -140:10 Let burning coals fall upon them: let them be cast into the -fire; into deep pits, that they rise not up again. - -140:11 Let not an evil speaker be established in the earth: evil shall -hunt the violent man to overthrow him. - -140:12 I know that the LORD will maintain the cause of the afflicted, -and the right of the poor. - -140:13 Surely the righteous shall give thanks unto thy name: the -upright shall dwell in thy presence. - - - -141:1 Lord, I cry unto thee: make haste unto me; give ear unto my -voice, when I cry unto thee. - -141:2 Let my prayer be set forth before thee as incense; and the -lifting up of my hands as the evening sacrifice. - -141:3 Set a watch, O LORD, before my mouth; keep the door of my lips. - -141:4 Incline not my heart to any evil thing, to practise wicked works -with men that work iniquity: and let me not eat of their dainties. - -141:5 Let the righteous smite me; it shall be a kindness: and let him -reprove me; it shall be an excellent oil, which shall not break my -head: for yet my prayer also shall be in their calamities. - -141:6 When their judges are overthrown in stony places, they shall -hear my words; for they are sweet. - -141:7 Our bones are scattered at the grave's mouth, as when one -cutteth and cleaveth wood upon the earth. - -141:8 But mine eyes are unto thee, O GOD the Lord: in thee is my -trust; leave not my soul destitute. - -141:9 Keep me from the snares which they have laid for me, and the -gins of the workers of iniquity. - -141:10 Let the wicked fall into their own nets, whilst that I withal -escape. - - - -142:1 I cried unto the LORD with my voice; with my voice unto the LORD -did I make my supplication. - -142:2 I poured out my complaint before him; I shewed before him my -trouble. - -142:3 When my spirit was overwhelmed within me, then thou knewest my -path. - -In the way wherein I walked have they privily laid a snare for me. - -142:4 I looked on my right hand, and beheld, but there was no man that -would know me: refuge failed me; no man cared for my soul. - -142:5 I cried unto thee, O LORD: I said, Thou art my refuge and my -portion in the land of the living. - -142:6 Attend unto my cry; for I am brought very low: deliver me from -my persecutors; for they are stronger than I. - -142:7 Bring my soul out of prison, that I may praise thy name: the -righteous shall compass me about; for thou shalt deal bountifully with -me. - - - -143:1 Hear my prayer, O LORD, give ear to my supplications: in thy -faithfulness answer me, and in thy righteousness. - -143:2 And enter not into judgment with thy servant: for in thy sight -shall no man living be justified. - -143:3 For the enemy hath persecuted my soul; he hath smitten my life -down to the ground; he hath made me to dwell in darkness, as those -that have been long dead. - -143:4 Therefore is my spirit overwhelmed within me; my heart within me -is desolate. - -143:5 I remember the days of old; I meditate on all thy works; I muse -on the work of thy hands. - -143:6 I stretch forth my hands unto thee: my soul thirsteth after -thee, as a thirsty land. Selah. - -143:7 Hear me speedily, O LORD: my spirit faileth: hide not thy face -from me, lest I be like unto them that go down into the pit. - -143:8 Cause me to hear thy lovingkindness in the morning; for in thee -do I trust: cause me to know the way wherein I should walk; for I lift -up my soul unto thee. - -143:9 Deliver me, O LORD, from mine enemies: I flee unto thee to hide -me. - -143:10 Teach me to do thy will; for thou art my God: thy spirit is -good; lead me into the land of uprightness. - -143:11 Quicken me, O LORD, for thy name's sake: for thy righteousness' -sake bring my soul out of trouble. - -143:12 And of thy mercy cut off mine enemies, and destroy all them -that afflict my soul: for I am thy servant. - - - -144:1 Blessed be the LORD my strength which teacheth my hands to war, -and my fingers to fight: - -144:2 My goodness, and my fortress; my high tower, and my deliverer; -my shield, and he in whom I trust; who subdueth my people under me. - -144:3 LORD, what is man, that thou takest knowledge of him! or the son -of man, that thou makest account of him! - -144:4 Man is like to vanity: his days are as a shadow that passeth -away. - -144:5 Bow thy heavens, O LORD, and come down: touch the mountains, and -they shall smoke. - -144:6 Cast forth lightning, and scatter them: shoot out thine arrows, -and destroy them. - -144:7 Send thine hand from above; rid me, and deliver me out of great -waters, from the hand of strange children; - -144:8 Whose mouth speaketh vanity, and their right hand is a right -hand of falsehood. - -144:9 I will sing a new song unto thee, O God: upon a psaltery and an -instrument of ten strings will I sing praises unto thee. - -144:10 It is he that giveth salvation unto kings: who delivereth David -his servant from the hurtful sword. - -144:11 Rid me, and deliver me from the hand of strange children, whose -mouth speaketh vanity, and their right hand is a right hand of -falsehood: - -144:12 That our sons may be as plants grown up in their youth; that -our daughters may be as corner stones, polished after the similitude -of a palace: - -144:13 That our garners may be full, affording all manner of store: -that our sheep may bring forth thousands and ten thousands in our -streets: - -144:14 That our oxen may be strong to labour; that there be no -breaking in, nor going out; that there be no complaining in our -streets. - -144:15 Happy is that people, that is in such a case: yea, happy is -that people, whose God is the LORD. - - - -145:1 I will extol thee, my God, O king; and I will bless thy name for -ever and ever. - -145:2 Every day will I bless thee; and I will praise thy name for ever -and ever. - -145:3 Great is the LORD, and greatly to be praised; and his greatness -is unsearchable. - -145:4 One generation shall praise thy works to another, and shall -declare thy mighty acts. - -145:5 I will speak of the glorious honour of thy majesty, and of thy -wondrous works. - -145:6 And men shall speak of the might of thy terrible acts: and I -will declare thy greatness. - -145:7 They shall abundantly utter the memory of thy great goodness, -and shall sing of thy righteousness. - -145:8 The LORD is gracious, and full of compassion; slow to anger, and -of great mercy. - -145:9 The LORD is good to all: and his tender mercies are over all his -works. - -145:10 All thy works shall praise thee, O LORD; and thy saints shall -bless thee. - -145:11 They shall speak of the glory of thy kingdom, and talk of thy -power; - -145:12 To make known to the sons of men his mighty acts, and the -glorious majesty of his kingdom. - -145:13 Thy kingdom is an everlasting kingdom, and thy dominion -endureth throughout all generations. - -145:14 The LORD upholdeth all that fall, and raiseth up all those that -be bowed down. - -145:15 The eyes of all wait upon thee; and thou givest them their meat -in due season. - -145:16 Thou openest thine hand, and satisfiest the desire of every -living thing. - -145:17 The LORD is righteous in all his ways, and holy in all his -works. - -145:18 The LORD is nigh unto all them that call upon him, to all that -call upon him in truth. - -145:19 He will fulfil the desire of them that fear him: he also will -hear their cry, and will save them. - -145:20 The LORD preserveth all them that love him: but all the wicked -will he destroy. - -145:21 My mouth shall speak the praise of the LORD: and let all flesh -bless his holy name for ever and ever. - - - -146:1 Praise ye the LORD. Praise the LORD, O my soul. - -146:2 While I live will I praise the LORD: I will sing praises unto my -God while I have any being. - -146:3 Put not your trust in princes, nor in the son of man, in whom -there is no help. - -146:4 His breath goeth forth, he returneth to his earth; in that very -day his thoughts perish. - -146:5 Happy is he that hath the God of Jacob for his help, whose hope -is in the LORD his God: - -146:6 Which made heaven, and earth, the sea, and all that therein is: -which keepeth truth for ever: - -146:7 Which executeth judgment for the oppressed: which giveth food to -the hungry. The LORD looseth the prisoners: - -146:8 The LORD openeth the eyes of the blind: the LORD raiseth them -that are bowed down: the LORD loveth the righteous: - -146:9 The LORD preserveth the strangers; he relieveth the fatherless -and widow: but the way of the wicked he turneth upside down. - -146:10 The LORD shall reign for ever, even thy God, O Zion, unto all -generations. Praise ye the LORD. - - - -147:1 Praise ye the LORD: for it is good to sing praises unto our God; -for it is pleasant; and praise is comely. - -147:2 The LORD doth build up Jerusalem: he gathereth together the -outcasts of Israel. - -147:3 He healeth the broken in heart, and bindeth up their wounds. - -147:4 He telleth the number of the stars; he calleth them all by their -names. - -147:5 Great is our Lord, and of great power: his understanding is -infinite. - -147:6 The LORD lifteth up the meek: he casteth the wicked down to the -ground. - -147:7 Sing unto the LORD with thanksgiving; sing praise upon the harp -unto our God: - -147:8 Who covereth the heaven with clouds, who prepareth rain for the -earth, who maketh grass to grow upon the mountains. - -147:9 He giveth to the beast his food, and to the young ravens which -cry. - -147:10 He delighteth not in the strength of the horse: he taketh not -pleasure in the legs of a man. - -147:11 The LORD taketh pleasure in them that fear him, in those that -hope in his mercy. - -147:12 Praise the LORD, O Jerusalem; praise thy God, O Zion. - -147:13 For he hath strengthened the bars of thy gates; he hath blessed -thy children within thee. - -147:14 He maketh peace in thy borders, and filleth thee with the -finest of the wheat. - -147:15 He sendeth forth his commandment upon earth: his word runneth -very swiftly. - -147:16 He giveth snow like wool: he scattereth the hoarfrost like -ashes. - -147:17 He casteth forth his ice like morsels: who can stand before his -cold? - -147:18 He sendeth out his word, and melteth them: he causeth his wind -to blow, and the waters flow. - -147:19 He sheweth his word unto Jacob, his statutes and his judgments -unto Israel. - -147:20 He hath not dealt so with any nation: and as for his judgments, -they have not known them. Praise ye the LORD. - - - -148:1 Praise ye the LORD. Praise ye the LORD from the heavens: praise -him in the heights. - -148:2 Praise ye him, all his angels: praise ye him, all his hosts. - -148:3 Praise ye him, sun and moon: praise him, all ye stars of light. - -148:4 Praise him, ye heavens of heavens, and ye waters that be above -the heavens. - -148:5 Let them praise the name of the LORD: for he commanded, and they -were created. - -148:6 He hath also stablished them for ever and ever: he hath made a -decree which shall not pass. - -148:7 Praise the LORD from the earth, ye dragons, and all deeps: - -148:8 Fire, and hail; snow, and vapours; stormy wind fulfilling his -word: - -148:9 Mountains, and all hills; fruitful trees, and all cedars: - -148:10 Beasts, and all cattle; creeping things, and flying fowl: - -148:11 Kings of the earth, and all people; princes, and all judges of -the earth: - -148:12 Both young men, and maidens; old men, and children: - -148:13 Let them praise the name of the LORD: for his name alone is -excellent; his glory is above the earth and heaven. - -148:14 He also exalteth the horn of his people, the praise of all his -saints; even of the children of Israel, a people near unto him. Praise -ye the LORD. - - - -149:1 Praise ye the LORD. Sing unto the LORD a new song, and his -praise in the congregation of saints. - -149:2 Let Israel rejoice in him that made him: let the children of -Zion be joyful in their King. - -149:3 Let them praise his name in the dance: let them sing praises -unto him with the timbrel and harp. - -149:4 For the LORD taketh pleasure in his people: he will beautify the -meek with salvation. - -149:5 Let the saints be joyful in glory: let them sing aloud upon -their beds. - -149:6 Let the high praises of God be in their mouth, and a two-edged -sword in their hand; - -149:7 To execute vengeance upon the heathen, and punishments upon the -people; - -149:8 To bind their kings with chains, and their nobles with fetters -of iron; - -149:9 To execute upon them the judgment written: this honour have all -his saints. Praise ye the LORD. - - - -150:1 Praise ye the LORD. Praise God in his sanctuary: praise him in -the firmament of his power. - -150:2 Praise him for his mighty acts: praise him according to his -excellent greatness. - -150:3 Praise him with the sound of the trumpet: praise him with the -psaltery and harp. - -150:4 Praise him with the timbrel and dance: praise him with stringed -instruments and organs. - -150:5 Praise him upon the loud cymbals: praise him upon the high -sounding cymbals. - -150:6 Let every thing that hath breath praise the LORD. Praise ye the LORD. - - - - -The Proverbs - - -1:1 The proverbs of Solomon the son of David, king of Israel; 1:2 To -know wisdom and instruction; to perceive the words of understanding; -1:3 To receive the instruction of wisdom, justice, and judgment, and -equity; 1:4 To give subtilty to the simple, to the young man knowledge -and discretion. - -1:5 A wise man will hear, and will increase learning; and a man of -understanding shall attain unto wise counsels: 1:6 To understand a -proverb, and the interpretation; the words of the wise, and their dark -sayings. - -1:7 The fear of the LORD is the beginning of knowledge: but fools -despise wisdom and instruction. - -1:8 My son, hear the instruction of thy father, and forsake not the -law of thy mother: 1:9 For they shall be an ornament of grace unto thy -head, and chains about thy neck. - -1:10 My son, if sinners entice thee, consent thou not. - -1:11 If they say, Come with us, let us lay wait for blood, let us lurk -privily for the innocent without cause: 1:12 Let us swallow them up -alive as the grave; and whole, as those that go down into the pit: -1:13 We shall find all precious substance, we shall fill our houses -with spoil: 1:14 Cast in thy lot among us; let us all have one purse: -1:15 My son, walk not thou in the way with them; refrain thy foot from -their path: 1:16 For their feet run to evil, and make haste to shed -blood. - -1:17 Surely in vain the net is spread in the sight of any bird. - -1:18 And they lay wait for their own blood; they lurk privily for -their own lives. - -1:19 So are the ways of every one that is greedy of gain; which taketh -away the life of the owners thereof. - -1:20 Wisdom crieth without; she uttereth her voice in the streets: -1:21 She crieth in the chief place of concourse, in the openings of -the gates: in the city she uttereth her words, saying, 1:22 How long, -ye simple ones, will ye love simplicity? and the scorners delight in -their scorning, and fools hate knowledge? 1:23 Turn you at my -reproof: behold, I will pour out my spirit unto you, I will make known -my words unto you. - -1:24 Because I have called, and ye refused; I have stretched out my -hand, and no man regarded; 1:25 But ye have set at nought all my -counsel, and would none of my reproof: 1:26 I also will laugh at your -calamity; I will mock when your fear cometh; 1:27 When your fear -cometh as desolation, and your destruction cometh as a whirlwind; when -distress and anguish cometh upon you. - -1:28 Then shall they call upon me, but I will not answer; they shall -seek me early, but they shall not find me: 1:29 For that they hated -knowledge, and did not choose the fear of the LORD: 1:30 They would -none of my counsel: they despised all my reproof. - -1:31 Therefore shall they eat of the fruit of their own way, and be -filled with their own devices. - -1:32 For the turning away of the simple shall slay them, and the -prosperity of fools shall destroy them. - -1:33 But whoso hearkeneth unto me shall dwell safely, and shall be -quiet from fear of evil. - -2:1 My son, if thou wilt receive my words, and hide my commandments -with thee; 2:2 So that thou incline thine ear unto wisdom, and apply -thine heart to understanding; 2:3 Yea, if thou criest after knowledge, -and liftest up thy voice for understanding; 2:4 If thou seekest her as -silver, and searchest for her as for hid treasures; 2:5 Then shalt -thou understand the fear of the LORD, and find the knowledge of God. - -2:6 For the LORD giveth wisdom: out of his mouth cometh knowledge and -understanding. - -2:7 He layeth up sound wisdom for the righteous: he is a buckler to -them that walk uprightly. - -2:8 He keepeth the paths of judgment, and preserveth the way of his -saints. - -2:9 Then shalt thou understand righteousness, and judgment, and -equity; yea, every good path. - -2:10 When wisdom entereth into thine heart, and knowledge is pleasant -unto thy soul; 2:11 Discretion shall preserve thee, understanding -shall keep thee: 2:12 To deliver thee from the way of the evil man, -from the man that speaketh froward things; 2:13 Who leave the paths of -uprightness, to walk in the ways of darkness; 2:14 Who rejoice to do -evil, and delight in the frowardness of the wicked; 2:15 Whose ways -are crooked, and they froward in their paths: 2:16 To deliver thee -from the strange woman, even from the stranger which flattereth with -her words; 2:17 Which forsaketh the guide of her youth, and forgetteth -the covenant of her God. - -2:18 For her house inclineth unto death, and her paths unto the dead. - -2:19 None that go unto her return again, neither take they hold of the -paths of life. - -2:20 That thou mayest walk in the way of good men, and keep the paths -of the righteous. - -2:21 For the upright shall dwell in the land, and the perfect shall -remain in it. - -2:22 But the wicked shall be cut off from the earth, and the -transgressors shall be rooted out of it. - -3:1 My son, forget not my law; but let thine heart keep my -commandments: 3:2 For length of days, and long life, and peace, shall -they add to thee. - -3:3 Let not mercy and truth forsake thee: bind them about thy neck; -write them upon the table of thine heart: 3:4 So shalt thou find -favour and good understanding in the sight of God and man. - -3:5 Trust in the LORD with all thine heart; and lean not unto thine -own understanding. - -3:6 In all thy ways acknowledge him, and he shall direct thy paths. - -3:7 Be not wise in thine own eyes: fear the LORD, and depart from -evil. - -3:8 It shall be health to thy navel, and marrow to thy bones. - -3:9 Honour the LORD with thy substance, and with the firstfruits of -all thine increase: 3:10 So shall thy barns be filled with plenty, and -thy presses shall burst out with new wine. - -3:11 My son, despise not the chastening of the LORD; neither be weary -of his correction: 3:12 For whom the LORD loveth he correcteth; even -as a father the son in whom he delighteth. - -3:13 Happy is the man that findeth wisdom, and the man that getteth -understanding. - -3:14 For the merchandise of it is better than the merchandise of -silver, and the gain thereof than fine gold. - -3:15 She is more precious than rubies: and all the things thou canst -desire are not to be compared unto her. - -3:16 Length of days is in her right hand; and in her left hand riches -and honour. - -3:17 Her ways are ways of pleasantness, and all her paths are peace. - -3:18 She is a tree of life to them that lay hold upon her: and happy -is every one that retaineth her. - -3:19 The LORD by wisdom hath founded the earth; by understanding hath -he established the heavens. - -3:20 By his knowledge the depths are broken up, and the clouds drop -down the dew. - -3:21 My son, let not them depart from thine eyes: keep sound wisdom -and discretion: 3:22 So shall they be life unto thy soul, and grace to -thy neck. - -3:23 Then shalt thou walk in thy way safely, and thy foot shall not -stumble. - -3:24 When thou liest down, thou shalt not be afraid: yea, thou shalt -lie down, and thy sleep shall be sweet. - -3:25 Be not afraid of sudden fear, neither of the desolation of the -wicked, when it cometh. - -3:26 For the LORD shall be thy confidence, and shall keep thy foot -from being taken. - -3:27 Withhold not good from them to whom it is due, when it is in the -power of thine hand to do it. - -3:28 Say not unto thy neighbour, Go, and come again, and to morrow I -will give; when thou hast it by thee. - -3:29 Devise not evil against thy neighbour, seeing he dwelleth -securely by thee. - -3:30 Strive not with a man without cause, if he have done thee no -harm. - -3:31 Envy thou not the oppressor, and choose none of his ways. - -3:32 For the froward is abomination to the LORD: but his secret is -with the righteous. - -3:33 The curse of the LORD is in the house of the wicked: but he -blesseth the habitation of the just. - -3:34 Surely he scorneth the scorners: but he giveth grace unto the -lowly. - -3:35 The wise shall inherit glory: but shame shall be the promotion of -fools. - -4:1 Hear, ye children, the instruction of a father, and attend to know -understanding. - -4:2 For I give you good doctrine, forsake ye not my law. - -4:3 For I was my father's son, tender and only beloved in the sight of -my mother. - -4:4 He taught me also, and said unto me, Let thine heart retain my -words: keep my commandments, and live. - -4:5 Get wisdom, get understanding: forget it not; neither decline from -the words of my mouth. - -4:6 Forsake her not, and she shall preserve thee: love her, and she -shall keep thee. - -4:7 Wisdom is the principal thing; therefore get wisdom: and with all -thy getting get understanding. - -4:8 Exalt her, and she shall promote thee: she shall bring thee to -honour, when thou dost embrace her. - -4:9 She shall give to thine head an ornament of grace: a crown of -glory shall she deliver to thee. - -4:10 Hear, O my son, and receive my sayings; and the years of thy life -shall be many. - -4:11 I have taught thee in the way of wisdom; I have led thee in right -paths. - -4:12 When thou goest, thy steps shall not be straitened; and when thou -runnest, thou shalt not stumble. - -4:13 Take fast hold of instruction; let her not go: keep her; for she -is thy life. - -4:14 Enter not into the path of the wicked, and go not in the way of -evil men. - -4:15 Avoid it, pass not by it, turn from it, and pass away. - -4:16 For they sleep not, except they have done mischief; and their -sleep is taken away, unless they cause some to fall. - -4:17 For they eat the bread of wickedness, and drink the wine of -violence. - -4:18 But the path of the just is as the shining light, that shineth -more and more unto the perfect day. - -4:19 The way of the wicked is as darkness: they know not at what they -stumble. - -4:20 My son, attend to my words; incline thine ear unto my sayings. - -4:21 Let them not depart from thine eyes; keep them in the midst of -thine heart. - -4:22 For they are life unto those that find them, and health to all -their flesh. - -4:23 Keep thy heart with all diligence; for out of it are the issues -of life. - -4:24 Put away from thee a froward mouth, and perverse lips put far -from thee. - -4:25 Let thine eyes look right on, and let thine eyelids look straight -before thee. - -4:26 Ponder the path of thy feet, and let all thy ways be established. - -4:27 Turn not to the right hand nor to the left: remove thy foot from -evil. - -5:1 My son, attend unto my wisdom, and bow thine ear to my -understanding: 5:2 That thou mayest regard discretion, and that thy -lips may keep knowledge. - -5:3 For the lips of a strange woman drop as an honeycomb, and her -mouth is smoother than oil: 5:4 But her end is bitter as wormwood, -sharp as a two-edged sword. - -5:5 Her feet go down to death; her steps take hold on hell. - -5:6 Lest thou shouldest ponder the path of life, her ways are -moveable, that thou canst not know them. - -5:7 Hear me now therefore, O ye children, and depart not from the -words of my mouth. - -5:8 Remove thy way far from her, and come not nigh the door of her -house: 5:9 Lest thou give thine honour unto others, and thy years unto -the cruel: 5:10 Lest strangers be filled with thy wealth; and thy -labours be in the house of a stranger; 5:11 And thou mourn at the -last, when thy flesh and thy body are consumed, 5:12 And say, How have -I hated instruction, and my heart despised reproof; 5:13 And have not -obeyed the voice of my teachers, nor inclined mine ear to them that -instructed me! 5:14 I was almost in all evil in the midst of the -congregation and assembly. - -5:15 Drink waters out of thine own cistern, and running waters out of -thine own well. - -5:16 Let thy fountains be dispersed abroad, and rivers of waters in -the streets. - -5:17 Let them be only thine own, and not strangers' with thee. - -5:18 Let thy fountain be blessed: and rejoice with the wife of thy -youth. - -5:19 Let her be as the loving hind and pleasant roe; let her breasts -satisfy thee at all times; and be thou ravished always with her love. - -5:20 And why wilt thou, my son, be ravished with a strange woman, and -embrace the bosom of a stranger? 5:21 For the ways of man are before -the eyes of the LORD, and he pondereth all his goings. - -5:22 His own iniquities shall take the wicked himself, and he shall be -holden with the cords of his sins. - -5:23 He shall die without instruction; and in the greatness of his -folly he shall go astray. - -6:1 My son, if thou be surety for thy friend, if thou hast stricken -thy hand with a stranger, 6:2 Thou art snared with the words of thy -mouth, thou art taken with the words of thy mouth. - -6:3 Do this now, my son, and deliver thyself, when thou art come into -the hand of thy friend; go, humble thyself, and make sure thy friend. - -6:4 Give not sleep to thine eyes, nor slumber to thine eyelids. - -6:5 Deliver thyself as a roe from the hand of the hunter, and as a -bird from the hand of the fowler. - -6:6 Go to the ant, thou sluggard; consider her ways, and be wise: 6:7 -Which having no guide, overseer, or ruler, 6:8 Provideth her meat in -the summer, and gathereth her food in the harvest. - -6:9 How long wilt thou sleep, O sluggard? when wilt thou arise out of -thy sleep? 6:10 Yet a little sleep, a little slumber, a little -folding of the hands to sleep: 6:11 So shall thy poverty come as one -that travelleth, and thy want as an armed man. - -6:12 A naughty person, a wicked man, walketh with a froward mouth. - -6:13 He winketh with his eyes, he speaketh with his feet, he teacheth -with his fingers; 6:14 Frowardness is in his heart, he deviseth -mischief continually; he soweth discord. - -6:15 Therefore shall his calamity come suddenly; suddenly shall he be -broken without remedy. - -6:16 These six things doth the LORD hate: yea, seven are an -abomination unto him: 6:17 A proud look, a lying tongue, and hands -that shed innocent blood, 6:18 An heart that deviseth wicked -imaginations, feet that be swift in running to mischief, 6:19 A false -witness that speaketh lies, and he that soweth discord among brethren. - -6:20 My son, keep thy father's commandment, and forsake not the law of -thy mother: 6:21 Bind them continually upon thine heart, and tie them -about thy neck. - -6:22 When thou goest, it shall lead thee; when thou sleepest, it shall -keep thee; and when thou awakest, it shall talk with thee. - -6:23 For the commandment is a lamp; and the law is light; and reproofs -of instruction are the way of life: 6:24 To keep thee from the evil -woman, from the flattery of the tongue of a strange woman. - -6:25 Lust not after her beauty in thine heart; neither let her take -thee with her eyelids. - -6:26 For by means of a whorish woman a man is brought to a piece of -bread: and the adultress will hunt for the precious life. - -6:27 Can a man take fire in his bosom, and his clothes not be burned? -6:28 Can one go upon hot coals, and his feet not be burned? 6:29 So -he that goeth in to his neighbour's wife; whosoever toucheth her shall -not be innocent. - -6:30 Men do not despise a thief, if he steal to satisfy his soul when -he is hungry; 6:31 But if he be found, he shall restore sevenfold; he -shall give all the substance of his house. - -6:32 But whoso committeth adultery with a woman lacketh understanding: -he that doeth it destroyeth his own soul. - -6:33 A wound and dishonour shall he get; and his reproach shall not be -wiped away. - -6:34 For jealousy is the rage of a man: therefore he will not spare in -the day of vengeance. - -6:35 He will not regard any ransom; neither will he rest content, -though thou givest many gifts. - -7:1 My son, keep my words, and lay up my commandments with thee. - -7:2 Keep my commandments, and live; and my law as the apple of thine -eye. - -7:3 Bind them upon thy fingers, write them upon the table of thine -heart. - -7:4 Say unto wisdom, Thou art my sister; and call understanding thy -kinswoman: 7:5 That they may keep thee from the strange woman, from -the stranger which flattereth with her words. - -7:6 For at the window of my house I looked through my casement, 7:7 -And beheld among the simple ones, I discerned among the youths, a -young man void of understanding, 7:8 Passing through the street near -her corner; and he went the way to her house, 7:9 In the twilight, in -the evening, in the black and dark night: 7:10 And, behold, there met -him a woman with the attire of an harlot, and subtil of heart. - -7:11 (She is loud and stubborn; her feet abide not in her house: 7:12 -Now is she without, now in the streets, and lieth in wait at every -corner.) 7:13 So she caught him, and kissed him, and with an impudent -face said unto him, 7:14 I have peace offerings with me; this day have -I payed my vows. - -7:15 Therefore came I forth to meet thee, diligently to seek thy face, -and I have found thee. - -7:16 I have decked my bed with coverings of tapestry, with carved -works, with fine linen of Egypt. - -7:17 I have perfumed my bed with myrrh, aloes, and cinnamon. - -7:18 Come, let us take our fill of love until the morning: let us -solace ourselves with loves. - -7:19 For the goodman is not at home, he is gone a long journey: 7:20 -He hath taken a bag of money with him, and will come home at the day -appointed. - -7:21 With her much fair speech she caused him to yield, with the -flattering of her lips she forced him. - -7:22 He goeth after her straightway, as an ox goeth to the slaughter, -or as a fool to the correction of the stocks; 7:23 Till a dart strike -through his liver; as a bird hasteth to the snare, and knoweth not -that it is for his life. - -7:24 Hearken unto me now therefore, O ye children, and attend to the -words of my mouth. - -7:25 Let not thine heart decline to her ways, go not astray in her -paths. - -7:26 For she hath cast down many wounded: yea, many strong men have -been slain by her. - -7:27 Her house is the way to hell, going down to the chambers of -death. - -8:1 Doth not wisdom cry? and understanding put forth her voice? 8:2 -She standeth in the top of high places, by the way in the places of -the paths. - -8:3 She crieth at the gates, at the entry of the city, at the coming -in at the doors. - -8:4 Unto you, O men, I call; and my voice is to the sons of man. - -8:5 O ye simple, understand wisdom: and, ye fools, be ye of an -understanding heart. - -8:6 Hear; for I will speak of excellent things; and the opening of my -lips shall be right things. - -8:7 For my mouth shall speak truth; and wickedness is an abomination -to my lips. - -8:8 All the words of my mouth are in righteousness; there is nothing -froward or perverse in them. - -8:9 They are all plain to him that understandeth, and right to them -that find knowledge. - -8:10 Receive my instruction, and not silver; and knowledge rather than -choice gold. - -8:11 For wisdom is better than rubies; and all the things that may be -desired are not to be compared to it. - -8:12 I wisdom dwell with prudence, and find out knowledge of witty -inventions. - -8:13 The fear of the LORD is to hate evil: pride, and arrogancy, and -the evil way, and the froward mouth, do I hate. - -8:14 Counsel is mine, and sound wisdom: I am understanding; I have -strength. - -8:15 By me kings reign, and princes decree justice. - -8:16 By me princes rule, and nobles, even all the judges of the earth. - -8:17 I love them that love me; and those that seek me early shall find -me. - -8:18 Riches and honour are with me; yea, durable riches and -righteousness. - -8:19 My fruit is better than gold, yea, than fine gold; and my revenue -than choice silver. - -8:20 I lead in the way of righteousness, in the midst of the paths of -judgment: 8:21 That I may cause those that love me to inherit -substance; and I will fill their treasures. - -8:22 The LORD possessed me in the beginning of his way, before his -works of old. - -8:23 I was set up from everlasting, from the beginning, or ever the -earth was. - -8:24 When there were no depths, I was brought forth; when there were -no fountains abounding with water. - -8:25 Before the mountains were settled, before the hills was I brought -forth: 8:26 While as yet he had not made the earth, nor the fields, -nor the highest part of the dust of the world. - -8:27 When he prepared the heavens, I was there: when he set a compass -upon the face of the depth: 8:28 When he established the clouds above: -when he strengthened the fountains of the deep: 8:29 When he gave to -the sea his decree, that the waters should not pass his commandment: -when he appointed the foundations of the earth: 8:30 Then I was by -him, as one brought up with him: and I was daily his delight, -rejoicing always before him; 8:31 Rejoicing in the habitable part of -his earth; and my delights were with the sons of men. - -8:32 Now therefore hearken unto me, O ye children: for blessed are -they that keep my ways. - -8:33 Hear instruction, and be wise, and refuse it not. - -8:34 Blessed is the man that heareth me, watching daily at my gates, -waiting at the posts of my doors. - -8:35 For whoso findeth me findeth life, and shall obtain favour of the -LORD. - -8:36 But he that sinneth against me wrongeth his own soul: all they -that hate me love death. - -9:1 Wisdom hath builded her house, she hath hewn out her seven -pillars: 9:2 She hath killed her beasts; she hath mingled her wine; -she hath also furnished her table. - -9:3 She hath sent forth her maidens: she crieth upon the highest -places of the city, 9:4 Whoso is simple, let him turn in hither: as -for him that wanteth understanding, she saith to him, 9:5 Come, eat of -my bread, and drink of the wine which I have mingled. - -9:6 Forsake the foolish, and live; and go in the way of understanding. - -9:7 He that reproveth a scorner getteth to himself shame: and he that -rebuketh a wicked man getteth himself a blot. - -9:8 Reprove not a scorner, lest he hate thee: rebuke a wise man, and -he will love thee. - -9:9 Give instruction to a wise man, and he will be yet wiser: teach a -just man, and he will increase in learning. - -9:10 The fear of the LORD is the beginning of wisdom: and the -knowledge of the holy is understanding. - -9:11 For by me thy days shall be multiplied, and the years of thy life -shall be increased. - -9:12 If thou be wise, thou shalt be wise for thyself: but if thou -scornest, thou alone shalt bear it. - -9:13 A foolish woman is clamorous: she is simple, and knoweth nothing. - -9:14 For she sitteth at the door of her house, on a seat in the high -places of the city, 9:15 To call passengers who go right on their -ways: 9:16 Whoso is simple, let him turn in hither: and as for him -that wanteth understanding, she saith to him, 9:17 Stolen waters are -sweet, and bread eaten in secret is pleasant. - -9:18 But he knoweth not that the dead are there; and that her guests -are in the depths of hell. - -10:1 The proverbs of Solomon. A wise son maketh a glad father: but a -foolish son is the heaviness of his mother. - -10:2 Treasures of wickedness profit nothing: but righteousness -delivereth from death. - -10:3 The LORD will not suffer the soul of the righteous to famish: but -he casteth away the substance of the wicked. - -10:4 He becometh poor that dealeth with a slack hand: but the hand of -the diligent maketh rich. - -10:5 He that gathereth in summer is a wise son: but he that sleepeth -in harvest is a son that causeth shame. - -10:6 Blessings are upon the head of the just: but violence covereth -the mouth of the wicked. - -10:7 The memory of the just is blessed: but the name of the wicked -shall rot. - -10:8 The wise in heart will receive commandments: but a prating fool -shall fall. - -10:9 He that walketh uprightly walketh surely: but he that perverteth -his ways shall be known. - -10:10 He that winketh with the eye causeth sorrow: but a prating fool -shall fall. - -10:11 The mouth of a righteous man is a well of life: but violence -covereth the mouth of the wicked. - -10:12 Hatred stirreth up strifes: but love covereth all sins. - -10:13 In the lips of him that hath understanding wisdom is found: but -a rod is for the back of him that is void of understanding. - -10:14 Wise men lay up knowledge: but the mouth of the foolish is near -destruction. - -10:15 The rich man's wealth is his strong city: the destruction of the -poor is their poverty. - -10:16 The labour of the righteous tendeth to life: the fruit of the -wicked to sin. - -10:17 He is in the way of life that keepeth instruction: but he that -refuseth reproof erreth. - -10:18 He that hideth hatred with lying lips, and he that uttereth a -slander, is a fool. - -10:19 In the multitude of words there wanteth not sin: but he that -refraineth his lips is wise. - -10:20 The tongue of the just is as choice silver: the heart of the -wicked is little worth. - -10:21 The lips of the righteous feed many: but fools die for want of -wisdom. - -10:22 The blessing of the LORD, it maketh rich, and he addeth no -sorrow with it. - -10:23 It is as sport to a fool to do mischief: but a man of -understanding hath wisdom. - -10:24 The fear of the wicked, it shall come upon him: but the desire -of the righteous shall be granted. - -10:25 As the whirlwind passeth, so is the wicked no more: but the -righteous is an everlasting foundation. - -10:26 As vinegar to the teeth, and as smoke to the eyes, so is the -sluggard to them that send him. - -10:27 The fear of the LORD prolongeth days: but the years of the -wicked shall be shortened. - -10:28 The hope of the righteous shall be gladness: but the expectation -of the wicked shall perish. - -10:29 The way of the LORD is strength to the upright: but destruction -shall be to the workers of iniquity. - -10:30 The righteous shall never be removed: but the wicked shall not -inhabit the earth. - -10:31 The mouth of the just bringeth forth wisdom: but the froward -tongue shall be cut out. - -10:32 The lips of the righteous know what is acceptable: but the mouth -of the wicked speaketh frowardness. - -11:1 A false balance is abomination to the LORD: but a just weight is -his delight. - -11:2 When pride cometh, then cometh shame: but with the lowly is -wisdom. - -11:3 The integrity of the upright shall guide them: but the -perverseness of transgressors shall destroy them. - -11:4 Riches profit not in the day of wrath: but righteousness -delivereth from death. - -11:5 The righteousness of the perfect shall direct his way: but the -wicked shall fall by his own wickedness. - -11:6 The righteousness of the upright shall deliver them: but -transgressors shall be taken in their own naughtiness. - -11:7 When a wicked man dieth, his expectation shall perish: and the -hope of unjust men perisheth. - -11:8 The righteous is delivered out of trouble, and the wicked cometh -in his stead. - -11:9 An hypocrite with his mouth destroyeth his neighbour: but through -knowledge shall the just be delivered. - -11:10 When it goeth well with the righteous, the city rejoiceth: and -when the wicked perish, there is shouting. - -11:11 By the blessing of the upright the city is exalted: but it is -overthrown by the mouth of the wicked. - -11:12 He that is void of wisdom despiseth his neighbour: but a man of -understanding holdeth his peace. - -11:13 A talebearer revealeth secrets: but he that is of a faithful -spirit concealeth the matter. - -11:14 Where no counsel is, the people fall: but in the multitude of -counsellors there is safety. - -11:15 He that is surety for a stranger shall smart for it: and he that -hateth suretiship is sure. - -11:16 A gracious woman retaineth honour: and strong men retain riches. - -11:17 The merciful man doeth good to his own soul: but he that is -cruel troubleth his own flesh. - -11:18 The wicked worketh a deceitful work: but to him that soweth -righteousness shall be a sure reward. - -11:19 As righteousness tendeth to life: so he that pursueth evil -pursueth it to his own death. - -11:20 They that are of a froward heart are abomination to the LORD: -but such as are upright in their way are his delight. - -11:21 Though hand join in hand, the wicked shall not be unpunished: -but the seed of the righteous shall be delivered. - -11:22 As a jewel of gold in a swine's snout, so is a fair woman which -is without discretion. - -11:23 The desire of the righteous is only good: but the expectation of -the wicked is wrath. - -11:24 There is that scattereth, and yet increaseth; and there is that -withholdeth more than is meet, but it tendeth to poverty. - -11:25 The liberal soul shall be made fat: and he that watereth shall -be watered also himself. - -11:26 He that withholdeth corn, the people shall curse him: but -blessing shall be upon the head of him that selleth it. - -11:27 He that diligently seeketh good procureth favour: but he that -seeketh mischief, it shall come unto him. - -11:28 He that trusteth in his riches shall fall; but the righteous -shall flourish as a branch. - -11:29 He that troubleth his own house shall inherit the wind: and the -fool shall be servant to the wise of heart. - -11:30 The fruit of the righteous is a tree of life; and he that -winneth souls is wise. - -11:31 Behold, the righteous shall be recompensed in the earth: much -more the wicked and the sinner. - -12:1 Whoso loveth instruction loveth knowledge: but he that hateth -reproof is brutish. - -12:2 A good man obtaineth favour of the LORD: but a man of wicked -devices will he condemn. - -12:3 A man shall not be established by wickedness: but the root of the -righteous shall not be moved. - -12:4 A virtuous woman is a crown to her husband: but she that maketh -ashamed is as rottenness in his bones. - -12:5 The thoughts of the righteous are right: but the counsels of the -wicked are deceit. - -12:6 The words of the wicked are to lie in wait for blood: but the -mouth of the upright shall deliver them. - -12:7 The wicked are overthrown, and are not: but the house of the -righteous shall stand. - -12:8 A man shall be commended according to his wisdom: but he that is -of a perverse heart shall be despised. - -12:9 He that is despised, and hath a servant, is better than he that -honoureth himself, and lacketh bread. - -12:10 A righteous man regardeth the life of his beast: but the tender -mercies of the wicked are cruel. - -12:11 He that tilleth his land shall be satisfied with bread: but he -that followeth vain persons is void of understanding. - -12:12 The wicked desireth the net of evil men: but the root of the -righteous yieldeth fruit. - -12:13 The wicked is snared by the transgression of his lips: but the -just shall come out of trouble. - -12:14 A man shall be satisfied with good by the fruit of his mouth: -and the recompence of a man's hands shall be rendered unto him. - -12:15 The way of a fool is right in his own eyes: but he that -hearkeneth unto counsel is wise. - -12:16 A fool's wrath is presently known: but a prudent man covereth -shame. - -12:17 He that speaketh truth sheweth forth righteousness: but a false -witness deceit. - -12:18 There is that speaketh like the piercings of a sword: but the -tongue of the wise is health. - -12:19 The lip of truth shall be established for ever: but a lying -tongue is but for a moment. - -12:20 Deceit is in the heart of them that imagine evil: but to the -counsellors of peace is joy. - -12:21 There shall no evil happen to the just: but the wicked shall be -filled with mischief. - -12:22 Lying lips are abomination to the LORD: but they that deal truly -are his delight. - -12:23 A prudent man concealeth knowledge: but the heart of fools -proclaimeth foolishness. - -12:24 The hand of the diligent shall bear rule: but the slothful shall -be under tribute. - -12:25 Heaviness in the heart of man maketh it stoop: but a good word -maketh it glad. - -12:26 The righteous is more excellent than his neighbour: but the way -of the wicked seduceth them. - -12:27 The slothful man roasteth not that which he took in hunting: but -the substance of a diligent man is precious. - -12:28 In the way of righteousness is life: and in the pathway thereof -there is no death. - -13:1 A wise son heareth his father's instruction: but a scorner -heareth not rebuke. - -13:2 A man shall eat good by the fruit of his mouth: but the soul of -the transgressors shall eat violence. - -13:3 He that keepeth his mouth keepeth his life: but he that openeth -wide his lips shall have destruction. - -13:4 The soul of the sluggard desireth, and hath nothing: but the soul -of the diligent shall be made fat. - -13:5 A righteous man hateth lying: but a wicked man is loathsome, and -cometh to shame. - -13:6 Righteousness keepeth him that is upright in the way: but -wickedness overthroweth the sinner. - -13:7 There is that maketh himself rich, yet hath nothing: there is -that maketh himself poor, yet hath great riches. - -13:8 The ransom of a man's life are his riches: but the poor heareth -not rebuke. - -13:9 The light of the righteous rejoiceth: but the lamp of the wicked -shall be put out. - -13:10 Only by pride cometh contention: but with the well advised is -wisdom. - -13:11 Wealth gotten by vanity shall be diminished: but he that -gathereth by labour shall increase. - -13:12 Hope deferred maketh the heart sick: but when the desire cometh, -it is a tree of life. - -13:13 Whoso despiseth the word shall be destroyed: but he that feareth -the commandment shall be rewarded. - -13:14 The law of the wise is a fountain of life, to depart from the -snares of death. - -13:15 Good understanding giveth favour: but the way of transgressors -is hard. - -13:16 Every prudent man dealeth with knowledge: but a fool layeth open -his folly. - -13:17 A wicked messenger falleth into mischief: but a faithful -ambassador is health. - -13:18 Poverty and shame shall be to him that refuseth instruction: but -he that regardeth reproof shall be honoured. - -13:19 The desire accomplished is sweet to the soul: but it is -abomination to fools to depart from evil. - -13:20 He that walketh with wise men shall be wise: but a companion of -fools shall be destroyed. - -13:21 Evil pursueth sinners: but to the righteous good shall be -repayed. - -13:22 A good man leaveth an inheritance to his children's children: -and the wealth of the sinner is laid up for the just. - -13:23 Much food is in the tillage of the poor: but there is that is -destroyed for want of judgment. - -13:24 He that spareth his rod hateth his son: but he that loveth him -chasteneth him betimes. - -13:25 The righteous eateth to the satisfying of his soul: but the -belly of the wicked shall want. - -14:1 Every wise woman buildeth her house: but the foolish plucketh it -down with her hands. - -14:2 He that walketh in his uprightness feareth the LORD: but he that -is perverse in his ways despiseth him. - -14:3 In the mouth of the foolish is a rod of pride: but the lips of -the wise shall preserve them. - -14:4 Where no oxen are, the crib is clean: but much increase is by the -strength of the ox. - -14:5 A faithful witness will not lie: but a false witness will utter -lies. - -14:6 A scorner seeketh wisdom, and findeth it not: but knowledge is -easy unto him that understandeth. - -14:7 Go from the presence of a foolish man, when thou perceivest not -in him the lips of knowledge. - -14:8 The wisdom of the prudent is to understand his way: but the folly -of fools is deceit. - -14:9 Fools make a mock at sin: but among the righteous there is -favour. - -14:10 The heart knoweth his own bitterness; and a stranger doth not -intermeddle with his joy. - -14:11 The house of the wicked shall be overthrown: but the tabernacle -of the upright shall flourish. - -14:12 There is a way which seemeth right unto a man, but the end -thereof are the ways of death. - -14:13 Even in laughter the heart is sorrowful; and the end of that -mirth is heaviness. - -14:14 The backslider in heart shall be filled with his own ways: and a -good man shall be satisfied from himself. - -14:15 The simple believeth every word: but the prudent man looketh -well to his going. - -14:16 A wise man feareth, and departeth from evil: but the fool -rageth, and is confident. - -14:17 He that is soon angry dealeth foolishly: and a man of wicked -devices is hated. - -14:18 The simple inherit folly: but the prudent are crowned with -knowledge. - -14:19 The evil bow before the good; and the wicked at the gates of the -righteous. - -14:20 The poor is hated even of his own neighbour: but the rich hath -many friends. - -14:21 He that despiseth his neighbour sinneth: but he that hath mercy -on the poor, happy is he. - -14:22 Do they not err that devise evil? but mercy and truth shall be -to them that devise good. - -14:23 In all labour there is profit: but the talk of the lips tendeth -only to penury. - -14:24 The crown of the wise is their riches: but the foolishness of -fools is folly. - -14:25 A true witness delivereth souls: but a deceitful witness -speaketh lies. - -14:26 In the fear of the LORD is strong confidence: and his children -shall have a place of refuge. - -14:27 The fear of the LORD is a fountain of life, to depart from the -snares of death. - -14:28 In the multitude of people is the king's honour: but in the want -of people is the destruction of the prince. - -14:29 He that is slow to wrath is of great understanding: but he that -is hasty of spirit exalteth folly. - -14:30 A sound heart is the life of the flesh: but envy the rottenness -of the bones. - -14:31 He that oppresseth the poor reproacheth his Maker: but he that -honoureth him hath mercy on the poor. - -14:32 The wicked is driven away in his wickedness: but the righteous -hath hope in his death. - -14:33 Wisdom resteth in the heart of him that hath understanding: but -that which is in the midst of fools is made known. - -14:34 Righteousness exalteth a nation: but sin is a reproach to any -people. - -14:35 The king's favour is toward a wise servant: but his wrath is -against him that causeth shame. - -15:1 A soft answer turneth away wrath: but grievous words stir up -anger. - -15:2 The tongue of the wise useth knowledge aright: but the mouth of -fools poureth out foolishness. - -15:3 The eyes of the LORD are in every place, beholding the evil and -the good. - -15:4 A wholesome tongue is a tree of life: but perverseness therein is -a breach in the spirit. - -15:5 A fool despiseth his father's instruction: but he that regardeth -reproof is prudent. - -15:6 In the house of the righteous is much treasure: but in the -revenues of the wicked is trouble. - -15:7 The lips of the wise disperse knowledge: but the heart of the -foolish doeth not so. - -15:8 The sacrifice of the wicked is an abomination to the LORD: but -the prayer of the upright is his delight. - -15:9 The way of the wicked is an abomination unto the LORD: but he -loveth him that followeth after righteousness. - -15:10 Correction is grievous unto him that forsaketh the way: and he -that hateth reproof shall die. - -15:11 Hell and destruction are before the LORD: how much more then the -hearts of the children of men? 15:12 A scorner loveth not one that -reproveth him: neither will he go unto the wise. - -15:13 A merry heart maketh a cheerful countenance: but by sorrow of -the heart the spirit is broken. - -15:14 The heart of him that hath understanding seeketh knowledge: but -the mouth of fools feedeth on foolishness. - -15:15 All the days of the afflicted are evil: but he that is of a -merry heart hath a continual feast. - -15:16 Better is little with the fear of the LORD than great treasure -and trouble therewith. - -15:17 Better is a dinner of herbs where love is, than a stalled ox and -hatred therewith. - -15:18 A wrathful man stirreth up strife: but he that is slow to anger -appeaseth strife. - -15:19 The way of the slothful man is as an hedge of thorns: but the -way of the righteous is made plain. - -15:20 A wise son maketh a glad father: but a foolish man despiseth his -mother. - -15:21 Folly is joy to him that is destitute of wisdom: but a man of -understanding walketh uprightly. - -15:22 Without counsel purposes are disappointed: but in the multitude -of counsellors they are established. - -15:23 A man hath joy by the answer of his mouth: and a word spoken in -due season, how good is it! 15:24 The way of life is above to the -wise, that he may depart from hell beneath. - -15:25 The LORD will destroy the house of the proud: but he will -establish the border of the widow. - -15:26 The thoughts of the wicked are an abomination to the LORD: but -the words of the pure are pleasant words. - -15:27 He that is greedy of gain troubleth his own house; but he that -hateth gifts shall live. - -15:28 The heart of the righteous studieth to answer: but the mouth of -the wicked poureth out evil things. - -15:29 The LORD is far from the wicked: but he heareth the prayer of -the righteous. - -15:30 The light of the eyes rejoiceth the heart: and a good report -maketh the bones fat. - -15:31 The ear that heareth the reproof of life abideth among the wise. - -15:32 He that refuseth instruction despiseth his own soul: but he that -heareth reproof getteth understanding. - -15:33 The fear of the LORD is the instruction of wisdom; and before -honour is humility. - -16:1 The preparations of the heart in man, and the answer of the -tongue, is from the LORD. - -16:2 All the ways of a man are clean in his own eyes; but the LORD -weigheth the spirits. - -16:3 Commit thy works unto the LORD, and thy thoughts shall be -established. - -16:4 The LORD hath made all things for himself: yea, even the wicked -for the day of evil. - -16:5 Every one that is proud in heart is an abomination to the LORD: -though hand join in hand, he shall not be unpunished. - -16:6 By mercy and truth iniquity is purged: and by the fear of the -LORD men depart from evil. - -16:7 When a man's ways please the LORD, he maketh even his enemies to -be at peace with him. - -16:8 Better is a little with righteousness than great revenues without -right. - -16:9 A man's heart deviseth his way: but the LORD directeth his steps. - -16:10 A divine sentence is in the lips of the king: his mouth -transgresseth not in judgment. - -16:11 A just weight and balance are the LORD's: all the weights of the -bag are his work. - -16:12 It is an abomination to kings to commit wickedness: for the -throne is established by righteousness. - -16:13 Righteous lips are the delight of kings; and they love him that -speaketh right. - -16:14 The wrath of a king is as messengers of death: but a wise man -will pacify it. - -16:15 In the light of the king's countenance is life; and his favour -is as a cloud of the latter rain. - -16:16 How much better is it to get wisdom than gold! and to get -understanding rather to be chosen than silver! 16:17 The highway of -the upright is to depart from evil: he that keepeth his way preserveth -his soul. - -16:18 Pride goeth before destruction, and an haughty spirit before a -fall. - -16:19 Better it is to be of an humble spirit with the lowly, than to -divide the spoil with the proud. - -16:20 He that handleth a matter wisely shall find good: and whoso -trusteth in the LORD, happy is he. - -16:21 The wise in heart shall be called prudent: and the sweetness of -the lips increaseth learning. - -16:22 Understanding is a wellspring of life unto him that hath it: but -the instruction of fools is folly. - -16:23 The heart of the wise teacheth his mouth, and addeth learning to -his lips. - -16:24 Pleasant words are as an honeycomb, sweet to the soul, and -health to the bones. - -16:25 There is a way that seemeth right unto a man, but the end -thereof are the ways of death. - -16:26 He that laboureth laboureth for himself; for his mouth craveth -it of him. - -16:27 An ungodly man diggeth up evil: and in his lips there is as a -burning fire. - -16:28 A froward man soweth strife: and a whisperer separateth chief -friends. - -16:29 A violent man enticeth his neighbour, and leadeth him into the -way that is not good. - -16:30 He shutteth his eyes to devise froward things: moving his lips -he bringeth evil to pass. - -16:31 The hoary head is a crown of glory, if it be found in the way of -righteousness. - -16:32 He that is slow to anger is better than the mighty; and he that -ruleth his spirit than he that taketh a city. - -16:33 The lot is cast into the lap; but the whole disposing thereof is -of the LORD. - -17:1 Better is a dry morsel, and quietness therewith, than an house -full of sacrifices with strife. - -17:2 A wise servant shall have rule over a son that causeth shame, and -shall have part of the inheritance among the brethren. - -17:3 The fining pot is for silver, and the furnace for gold: but the -LORD trieth the hearts. - -17:4 A wicked doer giveth heed to false lips; and a liar giveth ear to -a naughty tongue. - -17:5 Whoso mocketh the poor reproacheth his Maker: and he that is glad -at calamities shall not be unpunished. - -17:6 Children's children are the crown of old men; and the glory of -children are their fathers. - -17:7 Excellent speech becometh not a fool: much less do lying lips a -prince. - -17:8 A gift is as a precious stone in the eyes of him that hath it: -whithersoever it turneth, it prospereth. - -17:9 He that covereth a transgression seeketh love; but he that -repeateth a matter separateth very friends. - -17:10 A reproof entereth more into a wise man than an hundred stripes -into a fool. - -17:11 An evil man seeketh only rebellion: therefore a cruel messenger -shall be sent against him. - -17:12 Let a bear robbed of her whelps meet a man, rather than a fool -in his folly. - -17:13 Whoso rewardeth evil for good, evil shall not depart from his -house. - -17:14 The beginning of strife is as when one letteth out water: -therefore leave off contention, before it be meddled with. - -17:15 He that justifieth the wicked, and he that condemneth the just, -even they both are abomination to the LORD. - -17:16 Wherefore is there a price in the hand of a fool to get wisdom, -seeing he hath no heart to it? 17:17 A friend loveth at all times, -and a brother is born for adversity. - -17:18 A man void of understanding striketh hands, and becometh surety -in the presence of his friend. - -17:19 He loveth transgression that loveth strife: and he that exalteth -his gate seeketh destruction. - -17:20 He that hath a froward heart findeth no good: and he that hath a -perverse tongue falleth into mischief. - -17:21 He that begetteth a fool doeth it to his sorrow: and the father -of a fool hath no joy. - -17:22 A merry heart doeth good like a medicine: but a broken spirit -drieth the bones. - -17:23 A wicked man taketh a gift out of the bosom to pervert the ways -of judgment. - -17:24 Wisdom is before him that hath understanding; but the eyes of a -fool are in the ends of the earth. - -17:25 A foolish son is a grief to his father, and bitterness to her -that bare him. - -17:26 Also to punish the just is not good, nor to strike princes for -equity. - -17:27 He that hath knowledge spareth his words: and a man of -understanding is of an excellent spirit. - -17:28 Even a fool, when he holdeth his peace, is counted wise: and he -that shutteth his lips is esteemed a man of understanding. - -18:1 Through desire a man, having separated himself, seeketh and -intermeddleth with all wisdom. - -18:2 A fool hath no delight in understanding, but that his heart may -discover itself. - -18:3 When the wicked cometh, then cometh also contempt, and with -ignominy reproach. - -18:4 The words of a man's mouth are as deep waters, and the wellspring -of wisdom as a flowing brook. - -18:5 It is not good to accept the person of the wicked, to overthrow -the righteous in judgment. - -18:6 A fool's lips enter into contention, and his mouth calleth for -strokes. - -18:7 A fool's mouth is his destruction, and his lips are the snare of -his soul. - -18:8 The words of a talebearer are as wounds, and they go down into -the innermost parts of the belly. - -18:9 He also that is slothful in his work is brother to him that is a -great waster. - -18:10 The name of the LORD is a strong tower: the righteous runneth -into it, and is safe. - -18:11 The rich man's wealth is his strong city, and as an high wall in -his own conceit. - -18:12 Before destruction the heart of man is haughty, and before -honour is humility. - -18:13 He that answereth a matter before he heareth it, it is folly and -shame unto him. - -18:14 The spirit of a man will sustain his infirmity; but a wounded -spirit who can bear? 18:15 The heart of the prudent getteth -knowledge; and the ear of the wise seeketh knowledge. - -18:16 A man's gift maketh room for him, and bringeth him before great -men. - -18:17 He that is first in his own cause seemeth just; but his -neighbour cometh and searcheth him. - -18:18 The lot causeth contentions to cease, and parteth between the -mighty. - -18:19 A brother offended is harder to be won than a strong city: and -their contentions are like the bars of a castle. - -18:20 A man's belly shall be satisfied with the fruit of his mouth; -and with the increase of his lips shall he be filled. - -18:21 Death and life are in the power of the tongue: and they that -love it shall eat the fruit thereof. - -18:22 Whoso findeth a wife findeth a good thing, and obtaineth favour -of the LORD. - -18:23 The poor useth intreaties; but the rich answereth roughly. - -18:24 A man that hath friends must shew himself friendly: and there is -a friend that sticketh closer than a brother. - -19:1 Better is the poor that walketh in his integrity, than he that is -perverse in his lips, and is a fool. - -19:2 Also, that the soul be without knowledge, it is not good; and he -that hasteth with his feet sinneth. - -19:3 The foolishness of man perverteth his way: and his heart fretteth -against the LORD. - -19:4 Wealth maketh many friends; but the poor is separated from his -neighbour. - -19:5 A false witness shall not be unpunished, and he that speaketh -lies shall not escape. - -19:6 Many will intreat the favour of the prince: and every man is a -friend to him that giveth gifts. - -19:7 All the brethren of the poor do hate him: how much more do his -friends go far from him? he pursueth them with words, yet they are -wanting to him. - -19:8 He that getteth wisdom loveth his own soul: he that keepeth -understanding shall find good. - -19:9 A false witness shall not be unpunished, and he that speaketh -lies shall perish. - -19:10 Delight is not seemly for a fool; much less for a servant to -have rule over princes. - -19:11 The discretion of a man deferreth his anger; and it is his glory -to pass over a transgression. - -19:12 The king's wrath is as the roaring of a lion; but his favour is -as dew upon the grass. - -19:13 A foolish son is the calamity of his father: and the contentions -of a wife are a continual dropping. - -19:14 House and riches are the inheritance of fathers: and a prudent -wife is from the LORD. - -19:15 Slothfulness casteth into a deep sleep; and an idle soul shall -suffer hunger. - -19:16 He that keepeth the commandment keepeth his own soul; but he -that despiseth his ways shall die. - -19:17 He that hath pity upon the poor lendeth unto the LORD; and that -which he hath given will he pay him again. - -19:18 Chasten thy son while there is hope, and let not thy soul spare -for his crying. - -19:19 A man of great wrath shall suffer punishment: for if thou -deliver him, yet thou must do it again. - -19:20 Hear counsel, and receive instruction, that thou mayest be wise -in thy latter end. - -19:21 There are many devices in a man's heart; nevertheless the -counsel of the LORD, that shall stand. - -19:22 The desire of a man is his kindness: and a poor man is better -than a liar. - -19:23 The fear of the LORD tendeth to life: and he that hath it shall -abide satisfied; he shall not be visited with evil. - -19:24 A slothful man hideth his hand in his bosom, and will not so -much as bring it to his mouth again. - -19:25 Smite a scorner, and the simple will beware: and reprove one -that hath understanding, and he will understand knowledge. - -19:26 He that wasteth his father, and chaseth away his mother, is a -son that causeth shame, and bringeth reproach. - -19:27 Cease, my son, to hear the instruction that causeth to err from -the words of knowledge. - -19:28 An ungodly witness scorneth judgment: and the mouth of the -wicked devoureth iniquity. - -19:29 Judgments are prepared for scorners, and stripes for the back of -fools. - -20:1 Wine is a mocker, strong drink is raging: and whosoever is -deceived thereby is not wise. - -20:2 The fear of a king is as the roaring of a lion: whoso provoketh -him to anger sinneth against his own soul. - -20:3 It is an honour for a man to cease from strife: but every fool -will be meddling. - -20:4 The sluggard will not plow by reason of the cold; therefore shall -he beg in harvest, and have nothing. - -20:5 Counsel in the heart of man is like deep water; but a man of -understanding will draw it out. - -20:6 Most men will proclaim every one his own goodness: but a faithful -man who can find? 20:7 The just man walketh in his integrity: his -children are blessed after him. - -20:8 A king that sitteth in the throne of judgment scattereth away all -evil with his eyes. - -20:9 Who can say, I have made my heart clean, I am pure from my sin? -20:10 Divers weights, and divers measures, both of them are alike -abomination to the LORD. - -20:11 Even a child is known by his doings, whether his work be pure, -and whether it be right. - -20:12 The hearing ear, and the seeing eye, the LORD hath made even -both of them. - -20:13 Love not sleep, lest thou come to poverty; open thine eyes, and -thou shalt be satisfied with bread. - -20:14 It is naught, it is naught, saith the buyer: but when he is gone -his way, then he boasteth. - -20:15 There is gold, and a multitude of rubies: but the lips of -knowledge are a precious jewel. - -20:16 Take his garment that is surety for a stranger: and take a -pledge of him for a strange woman. - -20:17 Bread of deceit is sweet to a man; but afterwards his mouth -shall be filled with gravel. - -20:18 Every purpose is established by counsel: and with good advice -make war. - -20:19 He that goeth about as a talebearer revealeth secrets: therefore -meddle not with him that flattereth with his lips. - -20:20 Whoso curseth his father or his mother, his lamp shall be put -out in obscure darkness. - -20:21 An inheritance may be gotten hastily at the beginning; but the -end thereof shall not be blessed. - -20:22 Say not thou, I will recompense evil; but wait on the LORD, and -he shall save thee. - -20:23 Divers weights are an abomination unto the LORD; and a false -balance is not good. - -20:24 Man's goings are of the LORD; how can a man then understand his -own way? 20:25 It is a snare to the man who devoureth that which is -holy, and after vows to make enquiry. - -20:26 A wise king scattereth the wicked, and bringeth the wheel over -them. - -20:27 The spirit of man is the candle of the LORD, searching all the -inward parts of the belly. - -20:28 Mercy and truth preserve the king: and his throne is upholden by -mercy. - -20:29 The glory of young men is their strength: and the beauty of old -men is the grey head. - -20:30 The blueness of a wound cleanseth away evil: so do stripes the -inward parts of the belly. - -21:1 The king's heart is in the hand of the LORD, as the rivers of -water: he turneth it whithersoever he will. - -21:2 Every way of a man is right in his own eyes: but the LORD -pondereth the hearts. - -21:3 To do justice and judgment is more acceptable to the LORD than -sacrifice. - -21:4 An high look, and a proud heart, and the plowing of the wicked, -is sin. - -21:5 The thoughts of the diligent tend only to plenteousness; but of -every one that is hasty only to want. - -21:6 The getting of treasures by a lying tongue is a vanity tossed to -and fro of them that seek death. - -21:7 The robbery of the wicked shall destroy them; because they refuse -to do judgment. - -21:8 The way of man is froward and strange: but as for the pure, his -work is right. - -21:9 It is better to dwell in a corner of the housetop, than with a -brawling woman in a wide house. - -21:10 The soul of the wicked desireth evil: his neighbour findeth no -favour in his eyes. - -21:11 When the scorner is punished, the simple is made wise: and when -the wise is instructed, he receiveth knowledge. - -21:12 The righteous man wisely considereth the house of the wicked: -but God overthroweth the wicked for their wickedness. - -21:13 Whoso stoppeth his ears at the cry of the poor, he also shall -cry himself, but shall not be heard. - -21:14 A gift in secret pacifieth anger: and a reward in the bosom -strong wrath. - -21:15 It is joy to the just to do judgment: but destruction shall be -to the workers of iniquity. - -21:16 The man that wandereth out of the way of understanding shall -remain in the congregation of the dead. - -21:17 He that loveth pleasure shall be a poor man: he that loveth wine -and oil shall not be rich. - -21:18 The wicked shall be a ransom for the righteous, and the -transgressor for the upright. - -21:19 It is better to dwell in the wilderness, than with a contentious -and an angry woman. - -21:20 There is treasure to be desired and oil in the dwelling of the -wise; but a foolish man spendeth it up. - -21:21 He that followeth after righteousness and mercy findeth life, -righteousness, and honour. - -21:22 A wise man scaleth the city of the mighty, and casteth down the -strength of the confidence thereof. - -21:23 Whoso keepeth his mouth and his tongue keepeth his soul from -troubles. - -21:24 Proud and haughty scorner is his name, who dealeth in proud -wrath. - -21:25 The desire of the slothful killeth him; for his hands refuse to -labour. - -21:26 He coveteth greedily all the day long: but the righteous giveth -and spareth not. - -21:27 The sacrifice of the wicked is abomination: how much more, when -he bringeth it with a wicked mind? 21:28 A false witness shall -perish: but the man that heareth speaketh constantly. - -21:29 A wicked man hardeneth his face: but as for the upright, he -directeth his way. - -21:30 There is no wisdom nor understanding nor counsel against the -LORD. - -21:31 The horse is prepared against the day of battle: but safety is -of the LORD. - -22:1 A GOOD name is rather to be chosen than great riches, and loving -favour rather than silver and gold. - -22:2 The rich and poor meet together: the LORD is the maker of them -all. - -22:3 A prudent man foreseeth the evil, and hideth himself: but the -simple pass on, and are punished. - -22:4 By humility and the fear of the LORD are riches, and honour, and -life. - -22:5 Thorns and snares are in the way of the froward: he that doth -keep his soul shall be far from them. - -22:6 Train up a child in the way he should go: and when he is old, he -will not depart from it. - -22:7 The rich ruleth over the poor, and the borrower is servant to the -lender. - -22:8 He that soweth iniquity shall reap vanity: and the rod of his -anger shall fail. - -22:9 He that hath a bountiful eye shall be blessed; for he giveth of -his bread to the poor. - -22:10 Cast out the scorner, and contention shall go out; yea, strife -and reproach shall cease. - -22:11 He that loveth pureness of heart, for the grace of his lips the -king shall be his friend. - -22:12 The eyes of the LORD preserve knowledge, and he overthroweth the -words of the transgressor. - -22:13 The slothful man saith, There is a lion without, I shall be -slain in the streets. - -22:14 The mouth of strange women is a deep pit: he that is abhorred of -the LORD shall fall therein. - -22:15 Foolishness is bound in the heart of a child; but the rod of -correction shall drive it far from him. - -22:16 He that oppresseth the poor to increase his riches, and he that -giveth to the rich, shall surely come to want. - -22:17 Bow down thine ear, and hear the words of the wise, and apply -thine heart unto my knowledge. - -22:18 For it is a pleasant thing if thou keep them within thee; they -shall withal be fitted in thy lips. - -22:19 That thy trust may be in the LORD, I have made known to thee -this day, even to thee. - -22:20 Have not I written to thee excellent things in counsels and -knowledge, 22:21 That I might make thee know the certainty of the -words of truth; that thou mightest answer the words of truth to them -that send unto thee? 22:22 Rob not the poor, because he is poor: -neither oppress the afflicted in the gate: 22:23 For the LORD will -plead their cause, and spoil the soul of those that spoiled them. - -22:24 Make no friendship with an angry man; and with a furious man -thou shalt not go: 22:25 Lest thou learn his ways, and get a snare to -thy soul. - -22:26 Be not thou one of them that strike hands, or of them that are -sureties for debts. - -22:27 If thou hast nothing to pay, why should he take away thy bed -from under thee? 22:28 Remove not the ancient landmark, which thy -fathers have set. - -22:29 Seest thou a man diligent in his business? he shall stand before -kings; he shall not stand before mean men. - -23:1 When thou sittest to eat with a ruler, consider diligently what -is before thee: 23:2 And put a knife to thy throat, if thou be a man -given to appetite. - -23:3 Be not desirous of his dainties: for they are deceitful meat. - -23:4 Labour not to be rich: cease from thine own wisdom. - -23:5 Wilt thou set thine eyes upon that which is not? for riches -certainly make themselves wings; they fly away as an eagle toward -heaven. - -23:6 Eat thou not the bread of him that hath an evil eye, neither -desire thou his dainty meats: 23:7 For as he thinketh in his heart, so -is he: Eat and drink, saith he to thee; but his heart is not with -thee. - -23:8 The morsel which thou hast eaten shalt thou vomit up, and lose -thy sweet words. - -23:9 Speak not in the ears of a fool: for he will despise the wisdom -of thy words. - -23:10 Remove not the old landmark; and enter not into the fields of -the fatherless: 23:11 For their redeemer is mighty; he shall plead -their cause with thee. - -23:12 Apply thine heart unto instruction, and thine ears to the words -of knowledge. - -23:13 Withhold not correction from the child: for if thou beatest him -with the rod, he shall not die. - -23:14 Thou shalt beat him with the rod, and shalt deliver his soul -from hell. - -23:15 My son, if thine heart be wise, my heart shall rejoice, even -mine. - -23:16 Yea, my reins shall rejoice, when thy lips speak right things. - -23:17 Let not thine heart envy sinners: but be thou in the fear of the -LORD all the day long. - -23:18 For surely there is an end; and thine expectation shall not be -cut off. - -23:19 Hear thou, my son, and be wise, and guide thine heart in the -way. - -23:20 Be not among winebibbers; among riotous eaters of flesh: 23:21 -For the drunkard and the glutton shall come to poverty: and drowsiness -shall clothe a man with rags. - -23:22 Hearken unto thy father that begat thee, and despise not thy -mother when she is old. - -23:23 Buy the truth, and sell it not; also wisdom, and instruction, -and understanding. - -23:24 The father of the righteous shall greatly rejoice: and he that -begetteth a wise child shall have joy of him. - -23:25 Thy father and thy mother shall be glad, and she that bare thee -shall rejoice. - -23:26 My son, give me thine heart, and let thine eyes observe my ways. - -23:27 For a whore is a deep ditch; and a strange woman is a narrow -pit. - -23:28 She also lieth in wait as for a prey, and increaseth the -transgressors among men. - -23:29 Who hath woe? who hath sorrow? who hath contentions? who hath -babbling? who hath wounds without cause? who hath redness of eyes? -23:30 They that tarry long at the wine; they that go to seek mixed -wine. - -23:31 Look not thou upon the wine when it is red, when it giveth his -colour in the cup, when it moveth itself aright. - -23:32 At the last it biteth like a serpent, and stingeth like an -adder. - -23:33 Thine eyes shall behold strange women, and thine heart shall -utter perverse things. - -23:34 Yea, thou shalt be as he that lieth down in the midst of the -sea, or as he that lieth upon the top of a mast. - -23:35 They have stricken me, shalt thou say, and I was not sick; they -have beaten me, and I felt it not: when shall I awake? I will seek it -yet again. - -24:1 Be not thou envious against evil men, neither desire to be with -them. - -24:2 For their heart studieth destruction, and their lips talk of -mischief. - -24:3 Through wisdom is an house builded; and by understanding it is -established: 24:4 And by knowledge shall the chambers be filled with -all precious and pleasant riches. - -24:5 A wise man is strong; yea, a man of knowledge increaseth -strength. - -24:6 For by wise counsel thou shalt make thy war: and in multitude of -counsellors there is safety. - -24:7 Wisdom is too high for a fool: he openeth not his mouth in the -gate. - -24:8 He that deviseth to do evil shall be called a mischievous person. - -24:9 The thought of foolishness is sin: and the scorner is an -abomination to men. - -24:10 If thou faint in the day of adversity, thy strength is small. - -24:11 If thou forbear to deliver them that are drawn unto death, and -those that are ready to be slain; 24:12 If thou sayest, Behold, we -knew it not; doth not he that pondereth the heart consider it? and he -that keepeth thy soul, doth not he know it? and shall not he render to -every man according to his works? 24:13 My son, eat thou honey, -because it is good; and the honeycomb, which is sweet to thy taste: -24:14 So shall the knowledge of wisdom be unto thy soul: when thou -hast found it, then there shall be a reward, and thy expectation shall -not be cut off. - -24:15 Lay not wait, O wicked man, against the dwelling of the -righteous; spoil not his resting place: 24:16 For a just man falleth -seven times, and riseth up again: but the wicked shall fall into -mischief. - -24:17 Rejoice not when thine enemy falleth, and let not thine heart be -glad when he stumbleth: 24:18 Lest the LORD see it, and it displease -him, and he turn away his wrath from him. - -24:19 Fret not thyself because of evil men, neither be thou envious at -the wicked: 24:20 For there shall be no reward to the evil man; the -candle of the wicked shall be put out. - -24:21 My son, fear thou the LORD and the king: and meddle not with -them that are given to change: 24:22 For their calamity shall rise -suddenly; and who knoweth the ruin of them both? 24:23 These things -also belong to the wise. It is not good to have respect of persons in -judgment. - -24:24 He that saith unto the wicked, Thou are righteous; him shall the -people curse, nations shall abhor him: 24:25 But to them that rebuke -him shall be delight, and a good blessing shall come upon them. - -24:26 Every man shall kiss his lips that giveth a right answer. - -24:27 Prepare thy work without, and make it fit for thyself in the -field; and afterwards build thine house. - -24:28 Be not a witness against thy neighbour without cause; and -deceive not with thy lips. - -24:29 Say not, I will do so to him as he hath done to me: I will -render to the man according to his work. - -24:30 I went by the field of the slothful, and by the vineyard of the -man void of understanding; 24:31 And, lo, it was all grown over with -thorns, and nettles had covered the face thereof, and the stone wall -thereof was broken down. - -24:32 Then I saw, and considered it well: I looked upon it, and -received instruction. - -24:33 Yet a little sleep, a little slumber, a little folding of the -hands to sleep: 24:34 So shall thy poverty come as one that -travelleth; and thy want as an armed man. - -25:1 These are also proverbs of Solomon, which the men of Hezekiah -king of Judah copied out. - -25:2 It is the glory of God to conceal a thing: but the honour of -kings is to search out a matter. - -25:3 The heaven for height, and the earth for depth, and the heart of -kings is unsearchable. - -25:4 Take away the dross from the silver, and there shall come forth a -vessel for the finer. - -25:5 Take away the wicked from before the king, and his throne shall -be established in righteousness. - -25:6 Put not forth thyself in the presence of the king, and stand not -in the place of great men: 25:7 For better it is that it be said unto -thee, Come up hither; than that thou shouldest be put lower in the -presence of the prince whom thine eyes have seen. - -25:8 Go not forth hastily to strive, lest thou know not what to do in -the end thereof, when thy neighbour hath put thee to shame. - -25:9 Debate thy cause with thy neighbour himself; and discover not a -secret to another: 25:10 Lest he that heareth it put thee to shame, -and thine infamy turn not away. - -25:11 A word fitly spoken is like apples of gold in pictures of -silver. - -25:12 As an earring of gold, and an ornament of fine gold, so is a -wise reprover upon an obedient ear. - -25:13 As the cold of snow in the time of harvest, so is a faithful -messenger to them that send him: for he refresheth the soul of his -masters. - -25:14 Whoso boasteth himself of a false gift is like clouds and wind -without rain. - -25:15 By long forbearing is a prince persuaded, and a soft tongue -breaketh the bone. - -25:16 Hast thou found honey? eat so much as is sufficient for thee, -lest thou be filled therewith, and vomit it. - -25:17 Withdraw thy foot from thy neighbour's house; lest he be weary -of thee, and so hate thee. - -25:18 A man that beareth false witness against his neighbour is a -maul, and a sword, and a sharp arrow. - -25:19 Confidence in an unfaithful man in time of trouble is like a -broken tooth, and a foot out of joint. - -25:20 As he that taketh away a garment in cold weather, and as vinegar -upon nitre, so is he that singeth songs to an heavy heart. - -25:21 If thine enemy be hungry, give him bread to eat; and if he be -thirsty, give him water to drink: 25:22 For thou shalt heap coals of -fire upon his head, and the LORD shall reward thee. - -25:23 The north wind driveth away rain: so doth an angry countenance a -backbiting tongue. - -25:24 It is better to dwell in the corner of the housetop, than with a -brawling woman and in a wide house. - -25:25 As cold waters to a thirsty soul, so is good news from a far -country. - -25:26 A righteous man falling down before the wicked is as a troubled -fountain, and a corrupt spring. - -25:27 It is not good to eat much honey: so for men to search their own -glory is not glory. - -25:28 He that hath no rule over his own spirit is like a city that is -broken down, and without walls. - -26:1 As snow in summer, and as rain in harvest, so honour is not -seemly for a fool. - -26:2 As the bird by wandering, as the swallow by flying, so the curse -causeless shall not come. - -26:3 A whip for the horse, a bridle for the ass, and a rod for the -fool's back. - -26:4 Answer not a fool according to his folly, lest thou also be like -unto him. - -26:5 Answer a fool according to his folly, lest he be wise in his own -conceit. - -26:6 He that sendeth a message by the hand of a fool cutteth off the -feet, and drinketh damage. - -26:7 The legs of the lame are not equal: so is a parable in the mouth -of fools. - -26:8 As he that bindeth a stone in a sling, so is he that giveth -honour to a fool. - -26:9 As a thorn goeth up into the hand of a drunkard, so is a parable -in the mouths of fools. - -26:10 The great God that formed all things both rewardeth the fool, -and rewardeth transgressors. - -26:11 As a dog returneth to his vomit, so a fool returneth to his -folly. - -26:12 Seest thou a man wise in his own conceit? there is more hope of -a fool than of him. - -26:13 The slothful man saith, There is a lion in the way; a lion is in -the streets. - -26:14 As the door turneth upon his hinges, so doth the slothful upon -his bed. - -26:15 The slothful hideth his hand in his bosom; it grieveth him to -bring it again to his mouth. - -26:16 The sluggard is wiser in his own conceit than seven men that can -render a reason. - -26:17 He that passeth by, and meddleth with strife belonging not to -him, is like one that taketh a dog by the ears. - -26:18 As a mad man who casteth firebrands, arrows, and death, 26:19 So -is the man that deceiveth his neighbour, and saith, Am not I in sport? -26:20 Where no wood is, there the fire goeth out: so where there is no -talebearer, the strife ceaseth. - -26:21 As coals are to burning coals, and wood to fire; so is a -contentious man to kindle strife. - -26:22 The words of a talebearer are as wounds, and they go down into -the innermost parts of the belly. - -26:23 Burning lips and a wicked heart are like a potsherd covered with -silver dross. - -26:24 He that hateth dissembleth with his lips, and layeth up deceit -within him; 26:25 When he speaketh fair, believe him not: for there -are seven abominations in his heart. - -26:26 Whose hatred is covered by deceit, his wickedness shall be -shewed before the whole congregation. - -26:27 Whoso diggeth a pit shall fall therein: and he that rolleth a -stone, it will return upon him. - -26:28 A lying tongue hateth those that are afflicted by it; and a -flattering mouth worketh ruin. - -27:1 Boast not thyself of to morrow; for thou knowest not what a day -may bring forth. - -27:2 Let another man praise thee, and not thine own mouth; a stranger, -and not thine own lips. - -27:3 A stone is heavy, and the sand weighty; but a fool's wrath is -heavier than them both. - -27:4 Wrath is cruel, and anger is outrageous; but who is able to stand -before envy? 27:5 Open rebuke is better than secret love. - -27:6 Faithful are the wounds of a friend; but the kisses of an enemy -are deceitful. - -27:7 The full soul loatheth an honeycomb; but to the hungry soul every -bitter thing is sweet. - -27:8 As a bird that wandereth from her nest, so is a man that -wandereth from his place. - -27:9 Ointment and perfume rejoice the heart: so doth the sweetness of -a man's friend by hearty counsel. - -27:10 Thine own friend, and thy father's friend, forsake not; neither -go into thy brother's house in the day of thy calamity: for better is -a neighbour that is near than a brother far off. - -27:11 My son, be wise, and make my heart glad, that I may answer him -that reproacheth me. - -27:12 A prudent man foreseeth the evil, and hideth himself; but the -simple pass on, and are punished. - -27:13 Take his garment that is surety for a stranger, and take a -pledge of him for a strange woman. - -27:14 He that blesseth his friend with a loud voice, rising early in -the morning, it shall be counted a curse to him. - -27:15 A continual dropping in a very rainy day and a contentious woman -are alike. - -27:16 Whosoever hideth her hideth the wind, and the ointment of his -right hand, which bewrayeth itself. - -27:17 Iron sharpeneth iron; so a man sharpeneth the countenance of his -friend. - -27:18 Whoso keepeth the fig tree shall eat the fruit thereof: so he -that waiteth on his master shall be honoured. - -27:19 As in water face answereth to face, so the heart of man to man. - -27:20 Hell and destruction are never full; so the eyes of man are -never satisfied. - -27:21 As the fining pot for silver, and the furnace for gold; so is a -man to his praise. - -27:22 Though thou shouldest bray a fool in a mortar among wheat with a -pestle, yet will not his foolishness depart from him. - -27:23 Be thou diligent to know the state of thy flocks, and look well -to thy herds. - -27:24 For riches are not for ever: and doth the crown endure to every -generation? 27:25 The hay appeareth, and the tender grass sheweth -itself, and herbs of the mountains are gathered. - -27:26 The lambs are for thy clothing, and the goats are the price of -the field. - -27:27 And thou shalt have goats' milk enough for thy food, for the -food of thy household, and for the maintenance for thy maidens. - -28:1 The wicked flee when no man pursueth: but the righteous are bold -as a lion. - -28:2 For the transgression of a land many are the princes thereof: but -by a man of understanding and knowledge the state thereof shall be -prolonged. - -28:3 A poor man that oppresseth the poor is like a sweeping rain which -leaveth no food. - -28:4 They that forsake the law praise the wicked: but such as keep the -law contend with them. - -28:5 Evil men understand not judgment: but they that seek the LORD -understand all things. - -28:6 Better is the poor that walketh in his uprightness, than he that -is perverse in his ways, though he be rich. - -28:7 Whoso keepeth the law is a wise son: but he that is a companion -of riotous men shameth his father. - -28:8 He that by usury and unjust gain increaseth his substance, he -shall gather it for him that will pity the poor. - -28:9 He that turneth away his ear from hearing the law, even his -prayer shall be abomination. - -28:10 Whoso causeth the righteous to go astray in an evil way, he -shall fall himself into his own pit: but the upright shall have good -things in possession. - -28:11 The rich man is wise in his own conceit; but the poor that hath -understanding searcheth him out. - -28:12 When righteous men do rejoice, there is great glory: but when -the wicked rise, a man is hidden. - -28:13 He that covereth his sins shall not prosper: but whoso -confesseth and forsaketh them shall have mercy. - -28:14 Happy is the man that feareth alway: but he that hardeneth his -heart shall fall into mischief. - -28:15 As a roaring lion, and a ranging bear; so is a wicked ruler over -the poor people. - -28:16 The prince that wanteth understanding is also a great oppressor: -but he that hateth covetousness shall prolong his days. - -28:17 A man that doeth violence to the blood of any person shall flee -to the pit; let no man stay him. - -28:18 Whoso walketh uprightly shall be saved: but he that is perverse -in his ways shall fall at once. - -28:19 He that tilleth his land shall have plenty of bread: but he that -followeth after vain persons shall have poverty enough. - -28:20 A faithful man shall abound with blessings: but he that maketh -haste to be rich shall not be innocent. - -28:21 To have respect of persons is not good: for for a piece of bread -that man will transgress. - -28:22 He that hasteth to be rich hath an evil eye, and considereth not -that poverty shall come upon him. - -28:23 He that rebuketh a man afterwards shall find more favour than he -that flattereth with the tongue. - -28:24 Whoso robbeth his father or his mother, and saith, It is no -transgression; the same is the companion of a destroyer. - -28:25 He that is of a proud heart stirreth up strife: but he that -putteth his trust in the LORD shall be made fat. - -28:26 He that trusteth in his own heart is a fool: but whoso walketh -wisely, he shall be delivered. - -28:27 He that giveth unto the poor shall not lack: but he that hideth -his eyes shall have many a curse. - -28:28 When the wicked rise, men hide themselves: but when they perish, -the righteous increase. - -29:1 He, that being often reproved hardeneth his neck, shall suddenly -be destroyed, and that without remedy. - -29:2 When the righteous are in authority, the people rejoice: but when -the wicked beareth rule, the people mourn. - -29:3 Whoso loveth wisdom rejoiceth his father: but he that keepeth -company with harlots spendeth his substance. - -29:4 The king by judgment establisheth the land: but he that receiveth -gifts overthroweth it. - -29:5 A man that flattereth his neighbour spreadeth a net for his feet. - -29:6 In the transgression of an evil man there is a snare: but the -righteous doth sing and rejoice. - -29:7 The righteous considereth the cause of the poor: but the wicked -regardeth not to know it. - -29:8 Scornful men bring a city into a snare: but wise men turn away -wrath. - -29:9 If a wise man contendeth with a foolish man, whether he rage or -laugh, there is no rest. - -29:10 The bloodthirsty hate the upright: but the just seek his soul. - -29:11 A fool uttereth all his mind: but a wise man keepeth it in till -afterwards. - -29:12 If a ruler hearken to lies, all his servants are wicked. - -29:13 The poor and the deceitful man meet together: the LORD -lighteneth both their eyes. - -29:14 The king that faithfully judgeth the poor, his throne shall be -established for ever. - -29:15 The rod and reproof give wisdom: but a child left to himself -bringeth his mother to shame. - -29:16 When the wicked are multiplied, transgression increaseth: but -the righteous shall see their fall. - -29:17 Correct thy son, and he shall give thee rest; yea, he shall give -delight unto thy soul. - -29:18 Where there is no vision, the people perish: but he that keepeth -the law, happy is he. - -29:19 A servant will not be corrected by words: for though he -understand he will not answer. - -29:20 Seest thou a man that is hasty in his words? there is more hope -of a fool than of him. - -29:21 He that delicately bringeth up his servant from a child shall -have him become his son at the length. - -29:22 An angry man stirreth up strife, and a furious man aboundeth in -transgression. - -29:23 A man's pride shall bring him low: but honour shall uphold the -humble in spirit. - -29:24 Whoso is partner with a thief hateth his own soul: he heareth -cursing, and bewrayeth it not. - -29:25 The fear of man bringeth a snare: but whoso putteth his trust in -the LORD shall be safe. - -29:26 Many seek the ruler's favour; but every man's judgment cometh -from the LORD. - -29:27 An unjust man is an abomination to the just: and he that is -upright in the way is abomination to the wicked. - -30:1 The words of Agur the son of Jakeh, even the prophecy: the man -spake unto Ithiel, even unto Ithiel and Ucal, 30:2 Surely I am more -brutish than any man, and have not the understanding of a man. - -30:3 I neither learned wisdom, nor have the knowledge of the holy. - -30:4 Who hath ascended up into heaven, or descended? who hath gathered -the wind in his fists? who hath bound the waters in a garment? who -hath established all the ends of the earth? what is his name, and what -is his son's name, if thou canst tell? 30:5 Every word of God is -pure: he is a shield unto them that put their trust in him. - -30:6 Add thou not unto his words, lest he reprove thee, and thou be -found a liar. - -30:7 Two things have I required of thee; deny me them not before I -die: 30:8 Remove far from me vanity and lies: give me neither poverty -nor riches; feed me with food convenient for me: 30:9 Lest I be full, -and deny thee, and say, Who is the LORD? or lest I be poor, and steal, -and take the name of my God in vain. - -30:10 Accuse not a servant unto his master, lest he curse thee, and -thou be found guilty. - -30:11 There is a generation that curseth their father, and doth not -bless their mother. - -30:12 There is a generation that are pure in their own eyes, and yet -is not washed from their filthiness. - -30:13 There is a generation, O how lofty are their eyes! and their -eyelids are lifted up. - -30:14 There is a generation, whose teeth are as swords, and their jaw -teeth as knives, to devour the poor from off the earth, and the needy -from among men. - -30:15 The horseleach hath two daughters, crying, Give, give. There are -three things that are never satisfied, yea, four things say not, It is -enough: 30:16 The grave; and the barren womb; the earth that is not -filled with water; and the fire that saith not, It is enough. - -30:17 The eye that mocketh at his father, and despiseth to obey his -mother, the ravens of the valley shall pick it out, and the young -eagles shall eat it. - -30:18 There be three things which are too wonderful for me, yea, four -which I know not: 30:19 The way of an eagle in the air; the way of a -serpent upon a rock; the way of a ship in the midst of the sea; and -the way of a man with a maid. - -30:20 Such is the way of an adulterous woman; she eateth, and wipeth -her mouth, and saith, I have done no wickedness. - -30:21 For three things the earth is disquieted, and for four which it -cannot bear: 30:22 For a servant when he reigneth; and a fool when he -is filled with meat; 30:23 For an odious woman when she is married; -and an handmaid that is heir to her mistress. - -30:24 There be four things which are little upon the earth, but they -are exceeding wise: 30:25 The ants are a people not strong, yet they -prepare their meat in the summer; 30:26 The conies are but a feeble -folk, yet make they their houses in the rocks; 30:27 The locusts have -no king, yet go they forth all of them by bands; 30:28 The spider -taketh hold with her hands, and is in kings' palaces. - -30:29 There be three things which go well, yea, four are comely in -going: 30:30 A lion which is strongest among beasts, and turneth not -away for any; 30:31 A greyhound; an he goat also; and a king, against -whom there is no rising up. - -30:32 If thou hast done foolishly in lifting up thyself, or if thou -hast thought evil, lay thine hand upon thy mouth. - -30:33 Surely the churning of milk bringeth forth butter, and the -wringing of the nose bringeth forth blood: so the forcing of wrath -bringeth forth strife. - -31:1 The words of king Lemuel, the prophecy that his mother taught -him. - -31:2 What, my son? and what, the son of my womb? and what, the son of -my vows? 31:3 Give not thy strength unto women, nor thy ways to that -which destroyeth kings. - -31:4 It is not for kings, O Lemuel, it is not for kings to drink wine; -nor for princes strong drink: 31:5 Lest they drink, and forget the -law, and pervert the judgment of any of the afflicted. - -31:6 Give strong drink unto him that is ready to perish, and wine unto -those that be of heavy hearts. - -31:7 Let him drink, and forget his poverty, and remember his misery no -more. - -31:8 Open thy mouth for the dumb in the cause of all such as are -appointed to destruction. - -31:9 Open thy mouth, judge righteously, and plead the cause of the -poor and needy. - -31:10 Who can find a virtuous woman? for her price is far above -rubies. - -31:11 The heart of her husband doth safely trust in her, so that he -shall have no need of spoil. - -31:12 She will do him good and not evil all the days of her life. - -31:13 She seeketh wool, and flax, and worketh willingly with her -hands. - -31:14 She is like the merchants' ships; she bringeth her food from -afar. - -31:15 She riseth also while it is yet night, and giveth meat to her -household, and a portion to her maidens. - -31:16 She considereth a field, and buyeth it: with the fruit of her -hands she planteth a vineyard. - -31:17 She girdeth her loins with strength, and strengtheneth her arms. - -31:18 She perceiveth that her merchandise is good: her candle goeth -not out by night. - -31:19 She layeth her hands to the spindle, and her hands hold the -distaff. - -31:20 She stretcheth out her hand to the poor; yea, she reacheth forth -her hands to the needy. - -31:21 She is not afraid of the snow for her household: for all her -household are clothed with scarlet. - -31:22 She maketh herself coverings of tapestry; her clothing is silk -and purple. - -31:23 Her husband is known in the gates, when he sitteth among the -elders of the land. - -31:24 She maketh fine linen, and selleth it; and delivereth girdles -unto the merchant. - -31:25 Strength and honour are her clothing; and she shall rejoice in -time to come. - -31:26 She openeth her mouth with wisdom; and in her tongue is the law -of kindness. - -31:27 She looketh well to the ways of her household, and eateth not -the bread of idleness. - -31:28 Her children arise up, and call her blessed; her husband also, -and he praiseth her. - -31:29 Many daughters have done virtuously, but thou excellest them -all. - -31:30 Favour is deceitful, and beauty is vain: but a woman that -feareth the LORD, she shall be praised. - -31:31 Give her of the fruit of her hands; and let her own works praise -her in the gates. - - - - -Ecclesiastes - -or - -The Preacher - - -1:1 The words of the Preacher, the son of David, king in Jerusalem. - -1:2 Vanity of vanities, saith the Preacher, vanity of vanities; all is -vanity. - -1:3 What profit hath a man of all his labour which he taketh under the -sun? 1:4 One generation passeth away, and another generation cometh: -but the earth abideth for ever. - -1:5 The sun also ariseth, and the sun goeth down, and hasteth to his -place where he arose. - -1:6 The wind goeth toward the south, and turneth about unto the north; -it whirleth about continually, and the wind returneth again according -to his circuits. - -1:7 All the rivers run into the sea; yet the sea is not full; unto the -place from whence the rivers come, thither they return again. - -1:8 All things are full of labour; man cannot utter it: the eye is not -satisfied with seeing, nor the ear filled with hearing. - -1:9 The thing that hath been, it is that which shall be; and that -which is done is that which shall be done: and there is no new thing -under the sun. - -1:10 Is there any thing whereof it may be said, See, this is new? it -hath been already of old time, which was before us. - -1:11 There is no remembrance of former things; neither shall there be -any remembrance of things that are to come with those that shall come -after. - -1:12 I the Preacher was king over Israel in Jerusalem. - -1:13 And I gave my heart to seek and search out by wisdom concerning -all things that are done under heaven: this sore travail hath God -given to the sons of man to be exercised therewith. - -1:14 I have seen all the works that are done under the sun; and, -behold, all is vanity and vexation of spirit. - -1:15 That which is crooked cannot be made straight: and that which is -wanting cannot be numbered. - -1:16 I communed with mine own heart, saying, Lo, I am come to great -estate, and have gotten more wisdom than all they that have been -before me in Jerusalem: yea, my heart had great experience of wisdom -and knowledge. - -1:17 And I gave my heart to know wisdom, and to know madness and -folly: I perceived that this also is vexation of spirit. - -1:18 For in much wisdom is much grief: and he that increaseth -knowledge increaseth sorrow. - -2:1 I said in mine heart, Go to now, I will prove thee with mirth, -therefore enjoy pleasure: and, behold, this also is vanity. - -2:2 I said of laughter, It is mad: and of mirth, What doeth it? 2:3 I -sought in mine heart to give myself unto wine, yet acquainting mine -heart with wisdom; and to lay hold on folly, till I might see what was -that good for the sons of men, which they should do under the heaven -all the days of their life. - -2:4 I made me great works; I builded me houses; I planted me -vineyards: 2:5 I made me gardens and orchards, and I planted trees in -them of all kind of fruits: 2:6 I made me pools of water, to water -therewith the wood that bringeth forth trees: 2:7 I got me servants -and maidens, and had servants born in my house; also I had great -possessions of great and small cattle above all that were in Jerusalem -before me: 2:8 I gathered me also silver and gold, and the peculiar -treasure of kings and of the provinces: I gat me men singers and women -singers, and the delights of the sons of men, as musical instruments, -and that of all sorts. - -2:9 So I was great, and increased more than all that were before me in -Jerusalem: also my wisdom remained with me. - -2:10 And whatsoever mine eyes desired I kept not from them, I withheld -not my heart from any joy; for my heart rejoiced in all my labour: and -this was my portion of all my labour. - -2:11 Then I looked on all the works that my hands had wrought, and on -the labour that I had laboured to do: and, behold, all was vanity and -vexation of spirit, and there was no profit under the sun. - -2:12 And I turned myself to behold wisdom, and madness, and folly: for -what can the man do that cometh after the king? even that which hath -been already done. - -2:13 Then I saw that wisdom excelleth folly, as far as light excelleth -darkness. - -2:14 The wise man's eyes are in his head; but the fool walketh in -darkness: and I myself perceived also that one event happeneth to them -all. - -2:15 Then said I in my heart, As it happeneth to the fool, so it -happeneth even to me; and why was I then more wise? Then I said in my -heart, that this also is vanity. - -2:16 For there is no remembrance of the wise more than of the fool for -ever; seeing that which now is in the days to come shall all be -forgotten. - -And how dieth the wise man? as the fool. - -2:17 Therefore I hated life; because the work that is wrought under -the sun is grievous unto me: for all is vanity and vexation of spirit. - -2:18 Yea, I hated all my labour which I had taken under the sun: -because I should leave it unto the man that shall be after me. - -2:19 And who knoweth whether he shall be a wise man or a fool? yet -shall he have rule over all my labour wherein I have laboured, and -wherein I have shewed myself wise under the sun. This is also vanity. - -2:20 Therefore I went about to cause my heart to despair of all the -labour which I took under the sun. - -2:21 For there is a man whose labour is in wisdom, and in knowledge, -and in equity; yet to a man that hath not laboured therein shall he -leave it for his portion. This also is vanity and a great evil. - -2:22 For what hath man of all his labour, and of the vexation of his -heart, wherein he hath laboured under the sun? 2:23 For all his days -are sorrows, and his travail grief; yea, his heart taketh not rest in -the night. This is also vanity. - -2:24 There is nothing better for a man, than that he should eat and -drink, and that he should make his soul enjoy good in his labour. This -also I saw, that it was from the hand of God. - -2:25 For who can eat, or who else can hasten hereunto, more than I? -2:26 For God giveth to a man that is good in his sight wisdom, and -knowledge, and joy: but to the sinner he giveth travail, to gather and -to heap up, that he may give to him that is good before God. This also -is vanity and vexation of spirit. - -3:1 To every thing there is a season, and a time to every purpose -under the heaven: 3:2 A time to be born, and a time to die; a time to -plant, and a time to pluck up that which is planted; 3:3 A time to -kill, and a time to heal; a time to break down, and a time to build -up; 3:4 A time to weep, and a time to laugh; a time to mourn, and a -time to dance; 3:5 A time to cast away stones, and a time to gather -stones together; a time to embrace, and a time to refrain from -embracing; 3:6 A time to get, and a time to lose; a time to keep, and -a time to cast away; 3:7 A time to rend, and a time to sew; a time to -keep silence, and a time to speak; 3:8 A time to love, and a time to -hate; a time of war, and a time of peace. - -3:9 What profit hath he that worketh in that wherein he laboureth? -3:10 I have seen the travail, which God hath given to the sons of men -to be exercised in it. - -3:11 He hath made every thing beautiful in his time: also he hath set -the world in their heart, so that no man can find out the work that -God maketh from the beginning to the end. - -3:12 I know that there is no good in them, but for a man to rejoice, -and to do good in his life. - -3:13 And also that every man should eat and drink, and enjoy the good -of all his labour, it is the gift of God. - -3:14 I know that, whatsoever God doeth, it shall be for ever: nothing -can be put to it, nor any thing taken from it: and God doeth it, that -men should fear before him. - -3:15 That which hath been is now; and that which is to be hath already -been; and God requireth that which is past. - -3:16 And moreover I saw under the sun the place of judgment, that -wickedness was there; and the place of righteousness, that iniquity -was there. - -3:17 I said in mine heart, God shall judge the righteous and the -wicked: for there is a time there for every purpose and for every -work. - -3:18 I said in mine heart concerning the estate of the sons of men, -that God might manifest them, and that they might see that they -themselves are beasts. - -3:19 For that which befalleth the sons of men befalleth beasts; even -one thing befalleth them: as the one dieth, so dieth the other; yea, -they have all one breath; so that a man hath no preeminence above a -beast: for all is vanity. - -3:20 All go unto one place; all are of the dust, and all turn to dust -again. - -3:21 Who knoweth the spirit of man that goeth upward, and the spirit -of the beast that goeth downward to the earth? 3:22 Wherefore I -perceive that there is nothing better, than that a man should rejoice -in his own works; for that is his portion: for who shall bring him to -see what shall be after him? 4:1 So I returned, and considered all -the oppressions that are done under the sun: and behold the tears of -such as were oppressed, and they had no comforter; and on the side of -their oppressors there was power; but they had no comforter. - -4:2 Wherefore I praised the dead which are already dead more than the -living which are yet alive. - -4:3 Yea, better is he than both they, which hath not yet been, who -hath not seen the evil work that is done under the sun. - -4:4 Again, I considered all travail, and every right work, that for -this a man is envied of his neighbour. This is also vanity and -vexation of spirit. - -4:5 The fool foldeth his hands together, and eateth his own flesh. - -4:6 Better is an handful with quietness, than both the hands full with -travail and vexation of spirit. - -4:7 Then I returned, and I saw vanity under the sun. - -4:8 There is one alone, and there is not a second; yea, he hath -neither child nor brother: yet is there no end of all his labour; -neither is his eye satisfied with riches; neither saith he, For whom -do I labour, and bereave my soul of good? This is also vanity, yea, it -is a sore travail. - -4:9 Two are better than one; because they have a good reward for their -labour. - -4:10 For if they fall, the one will lift up his fellow: but woe to him -that is alone when he falleth; for he hath not another to help him up. - -4:11 Again, if two lie together, then they have heat: but how can one -be warm alone? 4:12 And if one prevail against him, two shall -withstand him; and a threefold cord is not quickly broken. - -4:13 Better is a poor and a wise child than an old and foolish king, -who will no more be admonished. - -4:14 For out of prison he cometh to reign; whereas also he that is -born in his kingdom becometh poor. - -4:15 I considered all the living which walk under the sun, with the -second child that shall stand up in his stead. - -4:16 There is no end of all the people, even of all that have been -before them: they also that come after shall not rejoice in him. -Surely this also is vanity and vexation of spirit. - -5:1 Keep thy foot when thou goest to the house of God, and be more -ready to hear, than to give the sacrifice of fools: for they consider -not that they do evil. - -5:2 Be not rash with thy mouth, and let not thine heart be hasty to -utter any thing before God: for God is in heaven, and thou upon earth: -therefore let thy words be few. - -5:3 For a dream cometh through the multitude of business; and a fool's -voice is known by multitude of words. - -5:4 When thou vowest a vow unto God, defer not to pay it; for he hath -no pleasure in fools: pay that which thou hast vowed. - -5:5 Better is it that thou shouldest not vow, than that thou shouldest -vow and not pay. - -5:6 Suffer not thy mouth to cause thy flesh to sin; neither say thou -before the angel, that it was an error: wherefore should God be angry -at thy voice, and destroy the work of thine hands? 5:7 For in the -multitude of dreams and many words there are also divers vanities: but -fear thou God. - -5:8 If thou seest the oppression of the poor, and violent perverting -of judgment and justice in a province, marvel not at the matter: for -he that is higher than the highest regardeth; and there be higher than -they. - -5:9 Moreover the profit of the earth is for all: the king himself is -served by the field. - -5:10 He that loveth silver shall not be satisfied with silver; nor he -that loveth abundance with increase: this is also vanity. - -5:11 When goods increase, they are increased that eat them: and what -good is there to the owners thereof, saving the beholding of them with -their eyes? 5:12 The sleep of a labouring man is sweet, whether he -eat little or much: but the abundance of the rich will not suffer him -to sleep. - -5:13 There is a sore evil which I have seen under the sun, namely, -riches kept for the owners thereof to their hurt. - -5:14 But those riches perish by evil travail: and he begetteth a son, -and there is nothing in his hand. - -5:15 As he came forth of his mother's womb, naked shall he return to -go as he came, and shall take nothing of his labour, which he may -carry away in his hand. - -5:16 And this also is a sore evil, that in all points as he came, so -shall he go: and what profit hath he that hath laboured for the wind? -5:17 All his days also he eateth in darkness, and he hath much sorrow -and wrath with his sickness. - -5:18 Behold that which I have seen: it is good and comely for one to -eat and to drink, and to enjoy the good of all his labour that he -taketh under the sun all the days of his life, which God giveth him: -for it is his portion. - -5:19 Every man also to whom God hath given riches and wealth, and hath -given him power to eat thereof, and to take his portion, and to -rejoice in his labour; this is the gift of God. - -5:20 For he shall not much remember the days of his life; because God -answereth him in the joy of his heart. - -6:1 There is an evil which I have seen under the sun, and it is common -among men: 6:2 A man to whom God hath given riches, wealth, and -honour, so that he wanteth nothing for his soul of all that he -desireth, yet God giveth him not power to eat thereof, but a stranger -eateth it: this is vanity, and it is an evil disease. - -6:3 If a man beget an hundred children, and live many years, so that -the days of his years be many, and his soul be not filled with good, -and also that he have no burial; I say, that an untimely birth is -better than he. - -6:4 For he cometh in with vanity, and departeth in darkness, and his -name shall be covered with darkness. - -6:5 Moreover he hath not seen the sun, nor known any thing: this hath -more rest than the other. - -6:6 Yea, though he live a thousand years twice told, yet hath he seen -no good: do not all go to one place? 6:7 All the labour of man is for -his mouth, and yet the appetite is not filled. - -6:8 For what hath the wise more than the fool? what hath the poor, -that knoweth to walk before the living? 6:9 Better is the sight of -the eyes than the wandering of the desire: this is also vanity and -vexation of spirit. - -6:10 That which hath been is named already, and it is known that it is -man: neither may he contend with him that is mightier than he. - -6:11 Seeing there be many things that increase vanity, what is man the -better? 6:12 For who knoweth what is good for man in this life, all -the days of his vain life which he spendeth as a shadow? for who can -tell a man what shall be after him under the sun? 7:1 A good name is -better than precious ointment; and the day of death than the day of -one's birth. - -7:2 It is better to go to the house of mourning, than to go to the -house of feasting: for that is the end of all men; and the living will -lay it to his heart. - -7:3 Sorrow is better than laughter: for by the sadness of the -countenance the heart is made better. - -7:4 The heart of the wise is in the house of mourning; but the heart -of fools is in the house of mirth. - -7:5 It is better to hear the rebuke of the wise, than for a man to -hear the song of fools. - -7:6 For as the crackling of thorns under a pot, so is the laughter of -the fool: this also is vanity. - -7:7 Surely oppression maketh a wise man mad; and a gift destroyeth the -heart. - -7:8 Better is the end of a thing than the beginning thereof: and the -patient in spirit is better than the proud in spirit. - -7:9 Be not hasty in thy spirit to be angry: for anger resteth in the -bosom of fools. - -7:10 Say not thou, What is the cause that the former days were better -than these? for thou dost not enquire wisely concerning this. - -7:11 Wisdom is good with an inheritance: and by it there is profit to -them that see the sun. - -7:12 For wisdom is a defence, and money is a defence: but the -excellency of knowledge is, that wisdom giveth life to them that have -it. - -7:13 Consider the work of God: for who can make that straight, which -he hath made crooked? 7:14 In the day of prosperity be joyful, but in -the day of adversity consider: God also hath set the one over against -the other, to the end that man should find nothing after him. - -7:15 All things have I seen in the days of my vanity: there is a just -man that perisheth in his righteousness, and there is a wicked man -that prolongeth his life in his wickedness. - -7:16 Be not righteous over much; neither make thyself over wise: why -shouldest thou destroy thyself ? 7:17 Be not over much wicked, -neither be thou foolish: why shouldest thou die before thy time? 7:18 -It is good that thou shouldest take hold of this; yea, also from this -withdraw not thine hand: for he that feareth God shall come forth of -them all. - -7:19 Wisdom strengtheneth the wise more than ten mighty men which are -in the city. - -7:20 For there is not a just man upon earth, that doeth good, and -sinneth not. - -7:21 Also take no heed unto all words that are spoken; lest thou hear -thy servant curse thee: 7:22 For oftentimes also thine own heart -knoweth that thou thyself likewise hast cursed others. - -7:23 All this have I proved by wisdom: I said, I will be wise; but it -was far from me. - -7:24 That which is far off, and exceeding deep, who can find it out? -7:25 I applied mine heart to know, and to search, and to seek out -wisdom, and the reason of things, and to know the wickedness of folly, -even of foolishness and madness: 7:26 And I find more bitter than -death the woman, whose heart is snares and nets, and her hands as -bands: whoso pleaseth God shall escape from her; but the sinner shall -be taken by her. - -7:27 Behold, this have I found, saith the preacher, counting one by -one, to find out the account: 7:28 Which yet my soul seeketh, but I -find not: one man among a thousand have I found; but a woman among all -those have I not found. - -7:29 Lo, this only have I found, that God hath made man upright; but -they have sought out many inventions. - -8:1 Who is as the wise man? and who knoweth the interpretation of a -thing? a man's wisdom maketh his face to shine, and the boldness of -his face shall be changed. - -8:2 I counsel thee to keep the king's commandment, and that in regard -of the oath of God. - -8:3 Be not hasty to go out of his sight: stand not in an evil thing; -for he doeth whatsoever pleaseth him. - -8:4 Where the word of a king is, there is power: and who may say unto -him, What doest thou? 8:5 Whoso keepeth the commandment shall feel no -evil thing: and a wise man's heart discerneth both time and judgment. - -8:6 Because to every purpose there is time and judgment, therefore the -misery of man is great upon him. - -8:7 For he knoweth not that which shall be: for who can tell him when -it shall be? 8:8 There is no man that hath power over the spirit to -retain the spirit; neither hath he power in the day of death: and -there is no discharge in that war; neither shall wickedness deliver -those that are given to it. - -8:9 All this have I seen, and applied my heart unto every work that is -done under the sun: there is a time wherein one man ruleth over -another to his own hurt. - -8:10 And so I saw the wicked buried, who had come and gone from the -place of the holy, and they were forgotten in the city where they had -so done: this is also vanity. - -8:11 Because sentence against an evil work is not executed speedily, -therefore the heart of the sons of men is fully set in them to do -evil. - -8:12 Though a sinner do evil an hundred times, and his days be -prolonged, yet surely I know that it shall be well with them that fear -God, which fear before him: 8:13 But it shall not be well with the -wicked, neither shall he prolong his days, which are as a shadow; -because he feareth not before God. - -8:14 There is a vanity which is done upon the earth; that there be -just men, unto whom it happeneth according to the work of the wicked; -again, there be wicked men, to whom it happeneth according to the work -of the righteous: I said that this also is vanity. - -8:15 Then I commended mirth, because a man hath no better thing under -the sun, than to eat, and to drink, and to be merry: for that shall -abide with him of his labour the days of his life, which God giveth -him under the sun. - -8:16 When I applied mine heart to know wisdom, and to see the business -that is done upon the earth: (for also there is that neither day nor -night seeth sleep with his eyes:) 8:17 Then I beheld all the work of -God, that a man cannot find out the work that is done under the sun: -because though a man labour to seek it out, yet he shall not find it; -yea farther; though a wise man think to know it, yet shall he not be -able to find it. - -9:1 For all this I considered in my heart even to declare all this, -that the righteous, and the wise, and their works, are in the hand of -God: no man knoweth either love or hatred by all that is before them. - -9:2 All things come alike to all: there is one event to the righteous, -and to the wicked; to the good and to the clean, and to the unclean; -to him that sacrificeth, and to him that sacrificeth not: as is the -good, so is the sinner; and he that sweareth, as he that feareth an -oath. - -9:3 This is an evil among all things that are done under the sun, that -there is one event unto all: yea, also the heart of the sons of men is -full of evil, and madness is in their heart while they live, and after -that they go to the dead. - -9:4 For to him that is joined to all the living there is hope: for a -living dog is better than a dead lion. - -9:5 For the living know that they shall die: but the dead know not any -thing, neither have they any more a reward; for the memory of them is -forgotten. - -9:6 Also their love, and their hatred, and their envy, is now -perished; neither have they any more a portion for ever in any thing -that is done under the sun. - -9:7 Go thy way, eat thy bread with joy, and drink thy wine with a -merry heart; for God now accepteth thy works. - -9:8 Let thy garments be always white; and let thy head lack no -ointment. - -9:9 Live joyfully with the wife whom thou lovest all the days of the -life of thy vanity, which he hath given thee under the sun, all the -days of thy vanity: for that is thy portion in this life, and in thy -labour which thou takest under the sun. - -9:10 Whatsoever thy hand findeth to do, do it with thy might; for -there is no work, nor device, nor knowledge, nor wisdom, in the grave, -whither thou goest. - -9:11 I returned, and saw under the sun, that the race is not to the -swift, nor the battle to the strong, neither yet bread to the wise, -nor yet riches to men of understanding, nor yet favour to men of -skill; but time and chance happeneth to them all. - -9:12 For man also knoweth not his time: as the fishes that are taken -in an evil net, and as the birds that are caught in the snare; so are -the sons of men snared in an evil time, when it falleth suddenly upon -them. - -9:13 This wisdom have I seen also under the sun, and it seemed great -unto me: 9:14 There was a little city, and few men within it; and -there came a great king against it, and besieged it, and built great -bulwarks against it: 9:15 Now there was found in it a poor wise man, -and he by his wisdom delivered the city; yet no man remembered that -same poor man. - -9:16 Then said I, Wisdom is better than strength: nevertheless the -poor man's wisdom is despised, and his words are not heard. - -9:17 The words of wise men are heard in quiet more than the cry of him -that ruleth among fools. - -9:18 Wisdom is better than weapons of war: but one sinner destroyeth -much good. - -10:1 Dead flies cause the ointment of the apothecary to send forth a -stinking savour: so doth a little folly him that is in reputation for -wisdom and honour. - -10:2 A wise man's heart is at his right hand; but a fool's heart at -his left. - -10:3 Yea also, when he that is a fool walketh by the way, his wisdom -faileth him, and he saith to every one that he is a fool. - -10:4 If the spirit of the ruler rise up against thee, leave not thy -place; for yielding pacifieth great offences. - -10:5 There is an evil which I have seen under the sun, as an error -which proceedeth from the ruler: 10:6 Folly is set in great dignity, -and the rich sit in low place. - -10:7 I have seen servants upon horses, and princes walking as servants -upon the earth. - -10:8 He that diggeth a pit shall fall into it; and whoso breaketh an -hedge, a serpent shall bite him. - -10:9 Whoso removeth stones shall be hurt therewith; and he that -cleaveth wood shall be endangered thereby. - -10:10 If the iron be blunt, and he do not whet the edge, then must he -put to more strength: but wisdom is profitable to direct. - -10:11 Surely the serpent will bite without enchantment; and a babbler -is no better. - -10:12 The words of a wise man's mouth are gracious; but the lips of a -fool will swallow up himself. - -10:13 The beginning of the words of his mouth is foolishness: and the -end of his talk is mischievous madness. - -10:14 A fool also is full of words: a man cannot tell what shall be; -and what shall be after him, who can tell him? 10:15 The labour of -the foolish wearieth every one of them, because he knoweth not how to -go to the city. - -10:16 Woe to thee, O land, when thy king is a child, and thy princes -eat in the morning! 10:17 Blessed art thou, O land, when thy king is -the son of nobles, and thy princes eat in due season, for strength, -and not for drunkenness! 10:18 By much slothfulness the building -decayeth; and through idleness of the hands the house droppeth -through. - -10:19 A feast is made for laughter, and wine maketh merry: but money -answereth all things. - -10:20 Curse not the king, no not in thy thought; and curse not the -rich in thy bedchamber: for a bird of the air shall carry the voice, -and that which hath wings shall tell the matter. - -11:1 Cast thy bread upon the waters: for thou shalt find it after many -days. - -11:2 Give a portion to seven, and also to eight; for thou knowest not -what evil shall be upon the earth. - -11:3 If the clouds be full of rain, they empty themselves upon the -earth: and if the tree fall toward the south, or toward the north, in -the place where the tree falleth, there it shall be. - -11:4 He that observeth the wind shall not sow; and he that regardeth -the clouds shall not reap. - -11:5 As thou knowest not what is the way of the spirit, nor how the -bones do grow in the womb of her that is with child: even so thou -knowest not the works of God who maketh all. - -11:6 In the morning sow thy seed, and in the evening withhold not -thine hand: for thou knowest not whether shall prosper, either this or -that, or whether they both shall be alike good. - -11:7 Truly the light is sweet, and a pleasant thing it is for the eyes -to behold the sun: 11:8 But if a man live many years, and rejoice in -them all; yet let him remember the days of darkness; for they shall be -many. All that cometh is vanity. - -11:9 Rejoice, O young man, in thy youth; and let thy heart cheer thee -in the days of thy youth, and walk in the ways of thine heart, and in -the sight of thine eyes: but know thou, that for all these things God -will bring thee into judgment. - -11:10 Therefore remove sorrow from thy heart, and put away evil from -thy flesh: for childhood and youth are vanity. - -12:1 Remember now thy Creator in the days of thy youth, while the evil -days come not, nor the years draw nigh, when thou shalt say, I have no -pleasure in them; 12:2 While the sun, or the light, or the moon, or -the stars, be not darkened, nor the clouds return after the rain: 12:3 -In the day when the keepers of the house shall tremble, and the strong -men shall bow themselves, and the grinders cease because they are few, -and those that look out of the windows be darkened, 12:4 And the doors -shall be shut in the streets, when the sound of the grinding is low, -and he shall rise up at the voice of the bird, and all the daughters -of musick shall be brought low; 12:5 Also when they shall be afraid of -that which is high, and fears shall be in the way, and the almond tree -shall flourish, and the grasshopper shall be a burden, and desire -shall fail: because man goeth to his long home, and the mourners go -about the streets: 12:6 Or ever the silver cord be loosed, or the -golden bowl be broken, or the pitcher be broken at the fountain, or -the wheel broken at the cistern. - -12:7 Then shall the dust return to the earth as it was: and the spirit -shall return unto God who gave it. - -12:8 Vanity of vanities, saith the preacher; all is vanity. - -12:9 And moreover, because the preacher was wise, he still taught the -people knowledge; yea, he gave good heed, and sought out, and set in -order many proverbs. - -12:10 The preacher sought to find out acceptable words: and that which -was written was upright, even words of truth. - -12:11 The words of the wise are as goads, and as nails fastened by the -masters of assemblies, which are given from one shepherd. - -12:12 And further, by these, my son, be admonished: of making many -books there is no end; and much study is a weariness of the flesh. - -12:13 Let us hear the conclusion of the whole matter: Fear God, and -keep his commandments: for this is the whole duty of man. - -12:14 For God shall bring every work into judgment, with every secret -thing, whether it be good, or whether it be evil. - - - - -The Song of Solomon - - -1:1 The song of songs, which is Solomon's. - -1:2 Let him kiss me with the kisses of his mouth: for thy love is -better than wine. - -1:3 Because of the savour of thy good ointments thy name is as -ointment poured forth, therefore do the virgins love thee. - -1:4 Draw me, we will run after thee: the king hath brought me into his -chambers: we will be glad and rejoice in thee, we will remember thy -love more than wine: the upright love thee. - -1:5 I am black, but comely, O ye daughters of Jerusalem, as the tents -of Kedar, as the curtains of Solomon. - -1:6 Look not upon me, because I am black, because the sun hath looked -upon me: my mother's children were angry with me; they made me the -keeper of the vineyards; but mine own vineyard have I not kept. - -1:7 Tell me, O thou whom my soul loveth, where thou feedest, where -thou makest thy flock to rest at noon: for why should I be as one that -turneth aside by the flocks of thy companions? 1:8 If thou know not, -O thou fairest among women, go thy way forth by the footsteps of the -flock, and feed thy kids beside the shepherds' tents. - -1:9 I have compared thee, O my love, to a company of horses in -Pharaoh's chariots. - -1:10 Thy cheeks are comely with rows of jewels, thy neck with chains -of gold. - -1:11 We will make thee borders of gold with studs of silver. - -1:12 While the king sitteth at his table, my spikenard sendeth forth -the smell thereof. - -1:13 A bundle of myrrh is my well-beloved unto me; he shall lie all -night betwixt my breasts. - -1:14 My beloved is unto me as a cluster of camphire in the vineyards -of Engedi. - -1:15 Behold, thou art fair, my love; behold, thou art fair; thou hast -doves' eyes. - -1:16 Behold, thou art fair, my beloved, yea, pleasant: also our bed is -green. - -1:17 The beams of our house are cedar, and our rafters of fir. - -2:1 I am the rose of Sharon, and the lily of the valleys. - -2:2 As the lily among thorns, so is my love among the daughters. - -2:3 As the apple tree among the trees of the wood, so is my beloved -among the sons. I sat down under his shadow with great delight, and -his fruit was sweet to my taste. - -2:4 He brought me to the banqueting house, and his banner over me was -love. - -2:5 Stay me with flagons, comfort me with apples: for I am sick of -love. - -2:6 His left hand is under my head, and his right hand doth embrace -me. - -2:7 I charge you, O ye daughters of Jerusalem, by the roes, and by the -hinds of the field, that ye stir not up, nor awake my love, till he -please. - -2:8 The voice of my beloved! behold, he cometh leaping upon the -mountains, skipping upon the hills. - -2:9 My beloved is like a roe or a young hart: behold, he standeth -behind our wall, he looketh forth at the windows, shewing himself -through the lattice. - -2:10 My beloved spake, and said unto me, Rise up, my love, my fair -one, and come away. - -2:11 For, lo, the winter is past, the rain is over and gone; 2:12 The -flowers appear on the earth; the time of the singing of birds is come, -and the voice of the turtle is heard in our land; 2:13 The fig tree -putteth forth her green figs, and the vines with the tender grape give -a good smell. Arise, my love, my fair one, and come away. - -2:14 O my dove, that art in the clefts of the rock, in the secret -places of the stairs, let me see thy countenance, let me hear thy -voice; for sweet is thy voice, and thy countenance is comely. - -2:15 Take us the foxes, the little foxes, that spoil the vines: for -our vines have tender grapes. - -2:16 My beloved is mine, and I am his: he feedeth among the lilies. - -2:17 Until the day break, and the shadows flee away, turn, my beloved, -and be thou like a roe or a young hart upon the mountains of Bether. - -3:1 By night on my bed I sought him whom my soul loveth: I sought him, -but I found him not. - -3:2 I will rise now, and go about the city in the streets, and in the -broad ways I will seek him whom my soul loveth: I sought him, but I -found him not. - -3:3 The watchmen that go about the city found me: to whom I said, Saw -ye him whom my soul loveth? 3:4 It was but a little that I passed -from them, but I found him whom my soul loveth: I held him, and would -not let him go, until I had brought him into my mother's house, and -into the chamber of her that conceived me. - -3:5 I charge you, O ye daughters of Jerusalem, by the roes, and by the -hinds of the field, that ye stir not up, nor awake my love, till he -please. - -3:6 Who is this that cometh out of the wilderness like pillars of -smoke, perfumed with myrrh and frankincense, with all powders of the -merchant? 3:7 Behold his bed, which is Solomon's; threescore valiant -men are about it, of the valiant of Israel. - -3:8 They all hold swords, being expert in war: every man hath his -sword upon his thigh because of fear in the night. - -3:9 King Solomon made himself a chariot of the wood of Lebanon. - -3:10 He made the pillars thereof of silver, the bottom thereof of -gold, the covering of it of purple, the midst thereof being paved with -love, for the daughters of Jerusalem. - -3:11 Go forth, O ye daughters of Zion, and behold king Solomon with -the crown wherewith his mother crowned him in the day of his -espousals, and in the day of the gladness of his heart. - -4:1 Behold, thou art fair, my love; behold, thou art fair; thou hast -doves' eyes within thy locks: thy hair is as a flock of goats, that -appear from mount Gilead. - -4:2 Thy teeth are like a flock of sheep that are even shorn, which -came up from the washing; whereof every one bear twins, and none is -barren among them. - -4:3 Thy lips are like a thread of scarlet, and thy speech is comely: -thy temples are like a piece of a pomegranate within thy locks. - -4:4 Thy neck is like the tower of David builded for an armoury, -whereon there hang a thousand bucklers, all shields of mighty men. - -4:5 Thy two breasts are like two young roes that are twins, which feed -among the lilies. - -4:6 Until the day break, and the shadows flee away, I will get me to -the mountain of myrrh, and to the hill of frankincense. - -4:7 Thou art all fair, my love; there is no spot in thee. - -4:8 Come with me from Lebanon, my spouse, with me from Lebanon: look -from the top of Amana, from the top of Shenir and Hermon, from the -lions' dens, from the mountains of the leopards. - -4:9 Thou hast ravished my heart, my sister, my spouse; thou hast -ravished my heart with one of thine eyes, with one chain of thy neck. - -4:10 How fair is thy love, my sister, my spouse! how much better is -thy love than wine! and the smell of thine ointments than all spices! -4:11 Thy lips, O my spouse, drop as the honeycomb: honey and milk are -under thy tongue; and the smell of thy garments is like the smell of -Lebanon. - -4:12 A garden inclosed is my sister, my spouse; a spring shut up, a -fountain sealed. - -4:13 Thy plants are an orchard of pomegranates, with pleasant fruits; -camphire, with spikenard, 4:14 Spikenard and saffron; calamus and -cinnamon, with all trees of frankincense; myrrh and aloes, with all -the chief spices: 4:15 A fountain of gardens, a well of living waters, -and streams from Lebanon. - -4:16 Awake, O north wind; and come, thou south; blow upon my garden, -that the spices thereof may flow out. Let my beloved come into his -garden, and eat his pleasant fruits. - -5:1 I am come into my garden, my sister, my spouse: I have gathered my -myrrh with my spice; I have eaten my honeycomb with my honey; I have -drunk my wine with my milk: eat, O friends; drink, yea, drink -abundantly, O beloved. - -5:2 I sleep, but my heart waketh: it is the voice of my beloved that -knocketh, saying, Open to me, my sister, my love, my dove, my -undefiled: for my head is filled with dew, and my locks with the drops -of the night. - -5:3 I have put off my coat; how shall I put it on? I have washed my -feet; how shall I defile them? 5:4 My beloved put in his hand by the -hole of the door, and my bowels were moved for him. - -5:5 I rose up to open to my beloved; and my hands dropped with myrrh, -and my fingers with sweet smelling myrrh, upon the handles of the -lock. - -5:6 I opened to my beloved; but my beloved had withdrawn himself, and -was gone: my soul failed when he spake: I sought him, but I could not -find him; I called him, but he gave me no answer. - -5:7 The watchmen that went about the city found me, they smote me, -they wounded me; the keepers of the walls took away my veil from me. - -5:8 I charge you, O daughters of Jerusalem, if ye find my beloved, -that ye tell him, that I am sick of love. - -5:9 What is thy beloved more than another beloved, O thou fairest -among women? what is thy beloved more than another beloved, that thou -dost so charge us? 5:10 My beloved is white and ruddy, the chiefest -among ten thousand. - -5:11 His head is as the most fine gold, his locks are bushy, and black -as a raven. - -5:12 His eyes are as the eyes of doves by the rivers of waters, washed -with milk, and fitly set. - -5:13 His cheeks are as a bed of spices, as sweet flowers: his lips -like lilies, dropping sweet smelling myrrh. - -5:14 His hands are as gold rings set with the beryl: his belly is as -bright ivory overlaid with sapphires. - -5:15 His legs are as pillars of marble, set upon sockets of fine gold: -his countenance is as Lebanon, excellent as the cedars. - -5:16 His mouth is most sweet: yea, he is altogether lovely. This is my -beloved, and this is my friend, O daughters of Jerusalem. - -6:1 Whither is thy beloved gone, O thou fairest among women? whither -is thy beloved turned aside? that we may seek him with thee. - -6:2 My beloved is gone down into his garden, to the beds of spices, to -feed in the gardens, and to gather lilies. - -6:3 I am my beloved's, and my beloved is mine: he feedeth among the -lilies. - -6:4 Thou art beautiful, O my love, as Tirzah, comely as Jerusalem, -terrible as an army with banners. - -6:5 Turn away thine eyes from me, for they have overcome me: thy hair -is as a flock of goats that appear from Gilead. - -6:6 Thy teeth are as a flock of sheep which go up from the washing, -whereof every one beareth twins, and there is not one barren among -them. - -6:7 As a piece of a pomegranate are thy temples within thy locks. - -6:8 There are threescore queens, and fourscore concubines, and virgins -without number. - -6:9 My dove, my undefiled is but one; she is the only one of her -mother, she is the choice one of her that bare her. The daughters saw -her, and blessed her; yea, the queens and the concubines, and they -praised her. - -6:10 Who is she that looketh forth as the morning, fair as the moon, -clear as the sun, and terrible as an army with banners? 6:11 I went -down into the garden of nuts to see the fruits of the valley, and to -see whether the vine flourished and the pomegranates budded. - -6:12 Or ever I was aware, my soul made me like the chariots of -Amminadib. - -6:13 Return, return, O Shulamite; return, return, that we may look -upon thee. What will ye see in the Shulamite? As it were the company -of two armies. - -7:1 How beautiful are thy feet with shoes, O prince's daughter! the -joints of thy thighs are like jewels, the work of the hands of a -cunning workman. - -7:2 Thy navel is like a round goblet, which wanteth not liquor: thy -belly is like an heap of wheat set about with lilies. - -7:3 Thy two breasts are like two young roes that are twins. - -7:4 Thy neck is as a tower of ivory; thine eyes like the fishpools in -Heshbon, by the gate of Bathrabbim: thy nose is as the tower of -Lebanon which looketh toward Damascus. - -7:5 Thine head upon thee is like Carmel, and the hair of thine head -like purple; the king is held in the galleries. - -7:6 How fair and how pleasant art thou, O love, for delights! 7:7 -This thy stature is like to a palm tree, and thy breasts to clusters -of grapes. - -7:8 I said, I will go up to the palm tree, I will take hold of the -boughs thereof: now also thy breasts shall be as clusters of the vine, -and the smell of thy nose like apples; 7:9 And the roof of thy mouth -like the best wine for my beloved, that goeth down sweetly, causing -the lips of those that are asleep to speak. - -7:10 I am my beloved's, and his desire is toward me. - -7:11 Come, my beloved, let us go forth into the field; let us lodge in -the villages. - -7:12 Let us get up early to the vineyards; let us see if the vine -flourish, whether the tender grape appear, and the pomegranates bud -forth: there will I give thee my loves. - -7:13 The mandrakes give a smell, and at our gates are all manner of -pleasant fruits, new and old, which I have laid up for thee, O my -beloved. - -8:1 O that thou wert as my brother, that sucked the breasts of my -mother! when I should find thee without, I would kiss thee; yea, I -should not be despised. - -8:2 I would lead thee, and bring thee into my mother's house, who -would instruct me: I would cause thee to drink of spiced wine of the -juice of my pomegranate. - -8:3 His left hand should be under my head, and his right hand should -embrace me. - -8:4 I charge you, O daughters of Jerusalem, that ye stir not up, nor -awake my love, until he please. - -8:5 Who is this that cometh up from the wilderness, leaning upon her -beloved? I raised thee up under the apple tree: there thy mother -brought thee forth: there she brought thee forth that bare thee. - -8:6 Set me as a seal upon thine heart, as a seal upon thine arm: for -love is strong as death; jealousy is cruel as the grave: the coals -thereof are coals of fire, which hath a most vehement flame. - -8:7 Many waters cannot quench love, neither can the floods drown it: -if a man would give all the substance of his house for love, it would -utterly be contemned. - -8:8 We have a little sister, and she hath no breasts: what shall we do -for our sister in the day when she shall be spoken for? 8:9 If she be -a wall, we will build upon her a palace of silver: and if she be a -door, we will inclose her with boards of cedar. - -8:10 I am a wall, and my breasts like towers: then was I in his eyes -as one that found favour. - -8:11 Solomon had a vineyard at Baalhamon; he let out the vineyard unto -keepers; every one for the fruit thereof was to bring a thousand -pieces of silver. - -8:12 My vineyard, which is mine, is before me: thou, O Solomon, must -have a thousand, and those that keep the fruit thereof two hundred. - -8:13 Thou that dwellest in the gardens, the companions hearken to thy -voice: cause me to hear it. - -8:14 Make haste, my beloved, and be thou like to a roe or to a young -hart upon the mountains of spices. - - - - -The Book of the Prophet Isaiah - - -1:1 The vision of Isaiah the son of Amoz, which he saw concerning -Judah and Jerusalem in the days of Uzziah, Jotham, Ahaz, and Hezekiah, -kings of Judah. - -1:2 Hear, O heavens, and give ear, O earth: for the LORD hath spoken, -I have nourished and brought up children, and they have rebelled -against me. - -1:3 The ox knoweth his owner, and the ass his master's crib: but -Israel doth not know, my people doth not consider. - -1:4 Ah sinful nation, a people laden with iniquity, a seed of -evildoers, children that are corrupters: they have forsaken the LORD, -they have provoked the Holy One of Israel unto anger, they are gone -away backward. - -1:5 Why should ye be stricken any more? ye will revolt more and more: -the whole head is sick, and the whole heart faint. - -1:6 From the sole of the foot even unto the head there is no soundness -in it; but wounds, and bruises, and putrifying sores: they have not -been closed, neither bound up, neither mollified with ointment. - -1:7 Your country is desolate, your cities are burned with fire: your -land, strangers devour it in your presence, and it is desolate, as -overthrown by strangers. - -1:8 And the daughter of Zion is left as a cottage in a vineyard, as a -lodge in a garden of cucumbers, as a besieged city. - -1:9 Except the LORD of hosts had left unto us a very small remnant, we -should have been as Sodom, and we should have been like unto Gomorrah. - -1:10 Hear the word of the LORD, ye rulers of Sodom; give ear unto the -law of our God, ye people of Gomorrah. - -1:11 To what purpose is the multitude of your sacrifices unto me? -saith the LORD: I am full of the burnt offerings of rams, and the fat -of fed beasts; and I delight not in the blood of bullocks, or of -lambs, or of he goats. - -1:12 When ye come to appear before me, who hath required this at your -hand, to tread my courts? 1:13 Bring no more vain oblations; incense -is an abomination unto me; the new moons and sabbaths, the calling of -assemblies, I cannot away with; it is iniquity, even the solemn -meeting. - -1:14 Your new moons and your appointed feasts my soul hateth: they are -a trouble unto me; I am weary to bear them. - -1:15 And when ye spread forth your hands, I will hide mine eyes from -you: yea, when ye make many prayers, I will not hear: your hands are -full of blood. - -1:16 Wash you, make you clean; put away the evil of your doings from -before mine eyes; cease to do evil; 1:17 Learn to do well; seek -judgment, relieve the oppressed, judge the fatherless, plead for the -widow. - -1:18 Come now, and let us reason together, saith the LORD: though your -sins be as scarlet, they shall be as white as snow; though they be red -like crimson, they shall be as wool. - -1:19 If ye be willing and obedient, ye shall eat the good of the land: -1:20 But if ye refuse and rebel, ye shall be devoured with the sword: -for the mouth of the LORD hath spoken it. - -1:21 How is the faithful city become an harlot! it was full of -judgment; righteousness lodged in it; but now murderers. - -1:22 Thy silver is become dross, thy wine mixed with water: 1:23 Thy -princes are rebellious, and companions of thieves: every one loveth -gifts, and followeth after rewards: they judge not the fatherless, -neither doth the cause of the widow come unto them. - -1:24 Therefore saith the LORD, the LORD of hosts, the mighty One of -Israel, Ah, I will ease me of mine adversaries, and avenge me of mine -enemies: 1:25 And I will turn my hand upon thee, and purely purge away -thy dross, and take away all thy tin: 1:26 And I will restore thy -judges as at the first, and thy counsellors as at the beginning: -afterward thou shalt be called, The city of righteousness, the -faithful city. - -1:27 Zion shall be redeemed with judgment, and her converts with -righteousness. - -1:28 And the destruction of the transgressors and of the sinners shall -be together, and they that forsake the LORD shall be consumed. - -1:29 For they shall be ashamed of the oaks which ye have desired, and -ye shall be confounded for the gardens that ye have chosen. - -1:30 For ye shall be as an oak whose leaf fadeth, and as a garden that -hath no water. - -1:31 And the strong shall be as tow, and the maker of it as a spark, -and they shall both burn together, and none shall quench them. - -2:1 The word that Isaiah the son of Amoz saw concerning Judah and -Jerusalem. - -2:2 And it shall come to pass in the last days, that the mountain of -the LORD's house shall be established in the top of the mountains, and -shall be exalted above the hills; and all nations shall flow unto it. - -2:3 And many people shall go and say, Come ye, and let us go up to the -mountain of the LORD, to the house of the God of Jacob; and he will -teach us of his ways, and we will walk in his paths: for out of Zion -shall go forth the law, and the word of the LORD from Jerusalem. - -2:4 And he shall judge among the nations, and shall rebuke many -people: and they shall beat their swords into plowshares, and their -spears into pruninghooks: nation shall not lift up sword against -nation, neither shall they learn war any more. - -2:5 O house of Jacob, come ye, and let us walk in the light of the -LORD. - -2:6 Therefore thou hast forsaken thy people the house of Jacob, -because they be replenished from the east, and are soothsayers like -the Philistines, and they please themselves in the children of -strangers. - -2:7 Their land also is full of silver and gold, neither is there any -end of their treasures; their land is also full of horses, neither is -there any end of their chariots: 2:8 Their land also is full of idols; -they worship the work of their own hands, that which their own fingers -have made: 2:9 And the mean man boweth down, and the great man -humbleth himself: therefore forgive them not. - -2:10 Enter into the rock, and hide thee in the dust, for fear of the -LORD, and for the glory of his majesty. - -2:11 The lofty looks of man shall be humbled, and the haughtiness of -men shall be bowed down, and the LORD alone shall be exalted in that -day. - -2:12 For the day of the LORD of hosts shall be upon every one that is -proud and lofty, and upon every one that is lifted up; and he shall be -brought low: 2:13 And upon all the cedars of Lebanon, that are high -and lifted up, and upon all the oaks of Bashan, 2:14 And upon all the -high mountains, and upon all the hills that are lifted up, 2:15 And -upon every high tower, and upon every fenced wall, 2:16 And upon all -the ships of Tarshish, and upon all pleasant pictures. - -2:17 And the loftiness of man shall be bowed down, and the haughtiness -of men shall be made low: and the LORD alone shall be exalted in that -day. - -2:18 And the idols he shall utterly abolish. - -2:19 And they shall go into the holes of the rocks, and into the caves -of the earth, for fear of the LORD, and for the glory of his majesty, -when he ariseth to shake terribly the earth. - -2:20 In that day a man shall cast his idols of silver, and his idols -of gold, which they made each one for himself to worship, to the moles -and to the bats; 2:21 To go into the clefts of the rocks, and into the -tops of the ragged rocks, for fear of the LORD, and for the glory of -his majesty, when he ariseth to shake terribly the earth. - -2:22 Cease ye from man, whose breath is in his nostrils: for wherein -is he to be accounted of ? 3:1 For, behold, the Lord, the LORD of -hosts, doth take away from Jerusalem and from Judah the stay and the -staff, the whole stay of bread, and the whole stay of water. - -3:2 The mighty man, and the man of war, the judge, and the prophet, -and the prudent, and the ancient, 3:3 The captain of fifty, and the -honourable man, and the counsellor, and the cunning artificer, and the -eloquent orator. - -3:4 And I will give children to be their princes, and babes shall rule -over them. - -3:5 And the people shall be oppressed, every one by another, and every -one by his neighbour: the child shall behave himself proudly against -the ancient, and the base against the honourable. - -3:6 When a man shall take hold of his brother of the house of his -father, saying, Thou hast clothing, be thou our ruler, and let this -ruin be under thy hand: 3:7 In that day shall he swear, saying, I will -not be an healer; for in my house is neither bread nor clothing: make -me not a ruler of the people. - -3:8 For Jerusalem is ruined, and Judah is fallen: because their tongue -and their doings are against the LORD, to provoke the eyes of his -glory. - -3:9 The shew of their countenance doth witness against them; and they -declare their sin as Sodom, they hide it not. Woe unto their soul! for -they have rewarded evil unto themselves. - -3:10 Say ye to the righteous, that it shall be well with him: for they -shall eat the fruit of their doings. - -3:11 Woe unto the wicked! it shall be ill with him: for the reward of -his hands shall be given him. - -3:12 As for my people, children are their oppressors, and women rule -over them. O my people, they which lead thee cause thee to err, and -destroy the way of thy paths. - -3:13 The LORD standeth up to plead, and standeth to judge the people. - -3:14 The LORD will enter into judgment with the ancients of his -people, and the princes thereof: for ye have eaten up the vineyard; -the spoil of the poor is in your houses. - -3:15 What mean ye that ye beat my people to pieces, and grind the -faces of the poor? saith the Lord GOD of hosts. - -3:16 Moreover the LORD saith, Because the daughters of Zion are -haughty, and walk with stretched forth necks and wanton eyes, walking -and mincing as they go, and making a tinkling with their feet: 3:17 -Therefore the LORD will smite with a scab the crown of the head of the -daughters of Zion, and the LORD will discover their secret parts. - -3:18 In that day the Lord will take away the bravery of their tinkling -ornaments about their feet, and their cauls, and their round tires -like the moon, 3:19 The chains, and the bracelets, and the mufflers, -3:20 The bonnets, and the ornaments of the legs, and the headbands, -and the tablets, and the earrings, 3:21 The rings, and nose jewels, -3:22 The changeable suits of apparel, and the mantles, and the -wimples, and the crisping pins, 3:23 The glasses, and the fine linen, -and the hoods, and the vails. - -3:24 And it shall come to pass, that instead of sweet smell there -shall be stink; and instead of a girdle a rent; and instead of well -set hair baldness; and instead of a stomacher a girding of sackcloth; -and burning instead of beauty. - -3:25 Thy men shall fall by the sword, and thy mighty in the war. - -3:26 And her gates shall lament and mourn; and she being desolate -shall sit upon the ground. - -4:1 And in that day seven women shall take hold of one man, saying, We -will eat our own bread, and wear our own apparel: only let us be -called by thy name, to take away our reproach. - -4:2 In that day shall the branch of the LORD be beautiful and -glorious, and the fruit of the earth shall be excellent and comely for -them that are escaped of Israel. - -4:3 And it shall come to pass, that he that is left in Zion, and he -that remaineth in Jerusalem, shall be called holy, even every one that -is written among the living in Jerusalem: 4:4 When the Lord shall have -washed away the filth of the daughters of Zion, and shall have purged -the blood of Jerusalem from the midst thereof by the spirit of -judgment, and by the spirit of burning. - -4:5 And the LORD will create upon every dwelling place of mount Zion, -and upon her assemblies, a cloud and smoke by day, and the shining of -a flaming fire by night: for upon all the glory shall be a defence. - -4:6 And there shall be a tabernacle for a shadow in the day time from -the heat, and for a place of refuge, and for a covert from storm and -from rain. - -5:1 Now will I sing to my wellbeloved a song of my beloved touching -his vineyard. My wellbeloved hath a vineyard in a very fruitful hill: -5:2 And he fenced it, and gathered out the stones thereof, and planted -it with the choicest vine, and built a tower in the midst of it, and -also made a winepress therein: and he looked that it should bring -forth grapes, and it brought forth wild grapes. - -5:3 And now, O inhabitants of Jerusalem, and men of Judah, judge, I -pray you, betwixt me and my vineyard. - -5:4 What could have been done more to my vineyard, that I have not -done in it? wherefore, when I looked that it should bring forth -grapes, brought it forth wild grapes? 5:5 And now go to; I will tell -you what I will do to my vineyard: I will take away the hedge thereof, -and it shall be eaten up; and break down the wall thereof, and it -shall be trodden down: 5:6 And I will lay it waste: it shall not be -pruned, nor digged; but there shall come up briers and thorns: I will -also command the clouds that they rain no rain upon it. - -5:7 For the vineyard of the LORD of hosts is the house of Israel, and -the men of Judah his pleasant plant: and he looked for judgment, but -behold oppression; for righteousness, but behold a cry. - -5:8 Woe unto them that join house to house, that lay field to field, -till there be no place, that they may be placed alone in the midst of -the earth! 5:9 In mine ears said the LORD of hosts, Of a truth many -houses shall be desolate, even great and fair, without inhabitant. - -5:10 Yea, ten acres of vineyard shall yield one bath, and the seed of -an homer shall yield an ephah. - -5:11 Woe unto them that rise up early in the morning, that they may -follow strong drink; that continue until night, till wine inflame -them! 5:12 And the harp, and the viol, the tabret, and pipe, and -wine, are in their feasts: but they regard not the work of the LORD, -neither consider the operation of his hands. - -5:13 Therefore my people are gone into captivity, because they have no -knowledge: and their honourable men are famished, and their multitude -dried up with thirst. - -5:14 Therefore hell hath enlarged herself, and opened her mouth -without measure: and their glory, and their multitude, and their pomp, -and he that rejoiceth, shall descend into it. - -5:15 And the mean man shall be brought down, and the mighty man shall -be humbled, and the eyes of the lofty shall be humbled: 5:16 But the -LORD of hosts shall be exalted in judgment, and God that is holy shall -be sanctified in righteousness. - -5:17 Then shall the lambs feed after their manner, and the waste -places of the fat ones shall strangers eat. - -5:18 Woe unto them that draw iniquity with cords of vanity, and sin as -it were with a cart rope: 5:19 That say, Let him make speed, and -hasten his work, that we may see it: and let the counsel of the Holy -One of Israel draw nigh and come, that we may know it! 5:20 Woe unto -them that call evil good, and good evil; that put darkness for light, -and light for darkness; that put bitter for sweet, and sweet for -bitter! 5:21 Woe unto them that are wise in their own eyes, and -prudent in their own sight! 5:22 Woe unto them that are mighty to -drink wine, and men of strength to mingle strong drink: 5:23 Which -justify the wicked for reward, and take away the righteousness of the -righteous from him! 5:24 Therefore as the fire devoureth the stubble, -and the flame consumeth the chaff, so their root shall be as -rottenness, and their blossom shall go up as dust: because they have -cast away the law of the LORD of hosts, and despised the word of the -Holy One of Israel. - -5:25 Therefore is the anger of the LORD kindled against his people, -and he hath stretched forth his hand against them, and hath smitten -them: and the hills did tremble, and their carcases were torn in the -midst of the streets. - -For all this his anger is not turned away, but his hand is stretched -out still. - -5:26 And he will lift up an ensign to the nations from far, and will -hiss unto them from the end of the earth: and, behold, they shall come -with speed swiftly: 5:27 None shall be weary nor stumble among them; -none shall slumber nor sleep; neither shall the girdle of their loins -be loosed, nor the latchet of their shoes be broken: 5:28 Whose arrows -are sharp, and all their bows bent, their horses' hoofs shall be -counted like flint, and their wheels like a whirlwind: 5:29 Their -roaring shall be like a lion, they shall roar like young lions: yea, -they shall roar, and lay hold of the prey, and shall carry it away -safe, and none shall deliver it. - -5:30 And in that day they shall roar against them like the roaring of -the sea: and if one look unto the land, behold darkness and sorrow, -and the light is darkened in the heavens thereof. - -6:1 In the year that king Uzziah died I saw also the LORD sitting upon -a throne, high and lifted up, and his train filled the temple. - -6:2 Above it stood the seraphims: each one had six wings; with twain -he covered his face, and with twain he covered his feet, and with -twain he did fly. - -6:3 And one cried unto another, and said, Holy, holy, holy, is the -LORD of hosts: the whole earth is full of his glory. - -6:4 And the posts of the door moved at the voice of him that cried, -and the house was filled with smoke. - -6:5 Then said I, Woe is me! for I am undone; because I am a man of -unclean lips, and I dwell in the midst of a people of unclean lips: -for mine eyes have seen the King, the LORD of hosts. - -6:6 Then flew one of the seraphims unto me, having a live coal in his -hand, which he had taken with the tongs from off the altar: 6:7 And he -laid it upon my mouth, and said, Lo, this hath touched thy lips; and -thine iniquity is taken away, and thy sin purged. - -6:8 Also I heard the voice of the Lord, saying, Whom shall I send, and -who will go for us? Then said I, Here am I; send me. - -6:9 And he said, Go, and tell this people, Hear ye indeed, but -understand not; and see ye indeed, but perceive not. - -6:10 Make the heart of this people fat, and make their ears heavy, and -shut their eyes; lest they see with their eyes, and hear with their -ears, and understand with their heart, and convert, and be healed. - -6:11 Then said I, Lord, how long? And he answered, Until the cities be -wasted without inhabitant, and the houses without man, and the land be -utterly desolate, 6:12 And the LORD have removed men far away, and -there be a great forsaking in the midst of the land. - -6:13 But yet in it shall be a tenth, and it shall return, and shall be -eaten: as a teil tree, and as an oak, whose substance is in them, when -they cast their leaves: so the holy seed shall be the substance -thereof. - -7:1 And it came to pass in the days of Ahaz the son of Jotham, the son -of Uzziah, king of Judah, that Rezin the king of Syria, and Pekah the -son of Remaliah, king of Israel, went up toward Jerusalem to war -against it, but could not prevail against it. - -7:2 And it was told the house of David, saying, Syria is confederate -with Ephraim. And his heart was moved, and the heart of his people, as -the trees of the wood are moved with the wind. - -7:3 Then said the LORD unto Isaiah, Go forth now to meet Ahaz, thou, -and Shearjashub thy son, at the end of the conduit of the upper pool -in the highway of the fuller's field; 7:4 And say unto him, Take heed, -and be quiet; fear not, neither be fainthearted for the two tails of -these smoking firebrands, for the fierce anger of Rezin with Syria, -and of the son of Remaliah. - -7:5 Because Syria, Ephraim, and the son of Remaliah, have taken evil -counsel against thee, saying, 7:6 Let us go up against Judah, and vex -it, and let us make a breach therein for us, and set a king in the -midst of it, even the son of Tabeal: 7:7 Thus saith the Lord GOD, It -shall not stand, neither shall it come to pass. - -7:8 For the head of Syria is Damascus, and the head of Damascus is -Rezin; and within threescore and five years shall Ephraim be broken, -that it be not a people. - -7:9 And the head of Ephraim is Samaria, and the head of Samaria is -Remaliah's son. If ye will not believe, surely ye shall not be -established. - -7:10 Moreover the LORD spake again unto Ahaz, saying, 7:11 Ask thee a -sign of the LORD thy God; ask it either in the depth, or in the height -above. - -7:12 But Ahaz said, I will not ask, neither will I tempt the LORD. - -7:13 And he said, Hear ye now, O house of David; Is it a small thing -for you to weary men, but will ye weary my God also? 7:14 Therefore -the Lord himself shall give you a sign; Behold, a virgin shall -conceive, and bear a son, and shall call his name Immanuel. - -7:15 Butter and honey shall he eat, that he may know to refuse the -evil, and choose the good. - -7:16 For before the child shall know to refuse the evil, and choose -the good, the land that thou abhorrest shall be forsaken of both her -kings. - -7:17 The LORD shall bring upon thee, and upon thy people, and upon thy -father's house, days that have not come, from the day that Ephraim -departed from Judah; even the king of Assyria. - -7:18 And it shall come to pass in that day, that the LORD shall hiss -for the fly that is in the uttermost part of the rivers of Egypt, and -for the bee that is in the land of Assyria. - -7:19 And they shall come, and shall rest all of them in the desolate -valleys, and in the holes of the rocks, and upon all thorns, and upon -all bushes. - -7:20 In the same day shall the Lord shave with a razor that is hired, -namely, by them beyond the river, by the king of Assyria, the head, -and the hair of the feet: and it shall also consume the beard. - -7:21 And it shall come to pass in that day, that a man shall nourish a -young cow, and two sheep; 7:22 And it shall come to pass, for the -abundance of milk that they shall give he shall eat butter: for butter -and honey shall every one eat that is left in the land. - -7:23 And it shall come to pass in that day, that every place shall be, -where there were a thousand vines at a thousand silverlings, it shall -even be for briers and thorns. - -7:24 With arrows and with bows shall men come thither; because all the -land shall become briers and thorns. - -7:25 And on all hills that shall be digged with the mattock, there -shall not come thither the fear of briers and thorns: but it shall be -for the sending forth of oxen, and for the treading of lesser cattle. - -8:1 Moreover the LORD said unto me, Take thee a great roll, and write -in it with a man's pen concerning Mahershalalhashbaz. - -8:2 And I took unto me faithful witnesses to record, Uriah the priest, -and Zechariah the son of Jeberechiah. - -8:3 And I went unto the prophetess; and she conceived, and bare a son. - -Then said the LORD to me, Call his name Mahershalalhashbaz. - -8:4 For before the child shall have knowledge to cry, My father, and -my mother, the riches of Damascus and the spoil of Samaria shall be -taken away before the king of Assyria. - -8:5 The LORD spake also unto me again, saying, 8:6 Forasmuch as this -people refuseth the waters of Shiloah that go softly, and rejoice in -Rezin and Remaliah's son; 8:7 Now therefore, behold, the Lord bringeth -up upon them the waters of the river, strong and many, even the king -of Assyria, and all his glory: and he shall come up over all his -channels, and go over all his banks: 8:8 And he shall pass through -Judah; he shall overflow and go over, he shall reach even to the neck; -and the stretching out of his wings shall fill the breadth of thy -land, O Immanuel. - -8:9 Associate yourselves, O ye people, and ye shall be broken in -pieces; and give ear, all ye of far countries: gird yourselves, and ye -shall be broken in pieces; gird yourselves, and ye shall be broken in -pieces. - -8:10 Take counsel together, and it shall come to nought; speak the -word, and it shall not stand: for God is with us. - -8:11 For the LORD spake thus to me with a strong hand, and instructed -me that I should not walk in the way of this people, saying, 8:12 Say -ye not, A confederacy, to all them to whom this people shall say, A -confederacy; neither fear ye their fear, nor be afraid. - -8:13 Sanctify the LORD of hosts himself; and let him be your fear, and -let him be your dread. - -8:14 And he shall be for a sanctuary; but for a stone of stumbling and -for a rock of offence to both the houses of Israel, for a gin and for -a snare to the inhabitants of Jerusalem. - -8:15 And many among them shall stumble, and fall, and be broken, and -be snared, and be taken. - -8:16 Bind up the testimony, seal the law among my disciples. - -8:17 And I will wait upon the LORD, that hideth his face from the -house of Jacob, and I will look for him. - -8:18 Behold, I and the children whom the LORD hath given me are for -signs and for wonders in Israel from the LORD of hosts, which dwelleth -in mount Zion. - -8:19 And when they shall say unto you, Seek unto them that have -familiar spirits, and unto wizards that peep, and that mutter: should -not a people seek unto their God? for the living to the dead? 8:20 To -the law and to the testimony: if they speak not according to this -word, it is because there is no light in them. - -8:21 And they shall pass through it, hardly bestead and hungry: and it -shall come to pass, that when they shall be hungry, they shall fret -themselves, and curse their king and their God, and look upward. - -8:22 And they shall look unto the earth; and behold trouble and -darkness, dimness of anguish; and they shall be driven to darkness. - -9:1 Nevertheless the dimness shall not be such as was in her vexation, -when at the first he lightly afflicted the land of Zebulun and the -land of Naphtali, and afterward did more grievously afflict her by the -way of the sea, beyond Jordan, in Galilee of the nations. - -9:2 The people that walked in darkness have seen a great light: they -that dwell in the land of the shadow of death, upon them hath the -light shined. - -9:3 Thou hast multiplied the nation, and not increased the joy: they -joy before thee according to the joy in harvest, and as men rejoice -when they divide the spoil. - -9:4 For thou hast broken the yoke of his burden, and the staff of his -shoulder, the rod of his oppressor, as in the day of Midian. - -9:5 For every battle of the warrior is with confused noise, and -garments rolled in blood; but this shall be with burning and fuel of -fire. - -9:6 For unto us a child is born, unto us a son is given: and the -government shall be upon his shoulder: and his name shall be called -Wonderful, Counsellor, The mighty God, The everlasting Father, The -Prince of Peace. - -9:7 Of the increase of his government and peace there shall be no end, -upon the throne of David, and upon his kingdom, to order it, and to -establish it with judgment and with justice from henceforth even for -ever. The zeal of the LORD of hosts will perform this. - -9:8 The Lord sent a word into Jacob, and it hath lighted upon Israel. - -9:9 And all the people shall know, even Ephraim and the inhabitant of -Samaria, that say in the pride and stoutness of heart, 9:10 The bricks -are fallen down, but we will build with hewn stones: the sycomores are -cut down, but we will change them into cedars. - -9:11 Therefore the LORD shall set up the adversaries of Rezin against -him, and join his enemies together; 9:12 The Syrians before, and the -Philistines behind; and they shall devour Israel with open mouth. For -all this his anger is not turned away, but his hand is stretched out -still. - -9:13 For the people turneth not unto him that smiteth them, neither do -they seek the LORD of hosts. - -9:14 Therefore the LORD will cut off from Israel head and tail, branch -and rush, in one day. - -9:15 The ancient and honourable, he is the head; and the prophet that -teacheth lies, he is the tail. - -9:16 For the leaders of this people cause them to err; and they that -are led of them are destroyed. - -9:17 Therefore the LORD shall have no joy in their young men, neither -shall have mercy on their fatherless and widows: for every one is an -hypocrite and an evildoer, and every mouth speaketh folly. For all -this his anger is not turned away, but his hand is stretched out -still. - -9:18 For wickedness burneth as the fire: it shall devour the briers -and thorns, and shall kindle in the thickets of the forest, and they -shall mount up like the lifting up of smoke. - -9:19 Through the wrath of the LORD of hosts is the land darkened, and -the people shall be as the fuel of the fire: no man shall spare his -brother. - -9:20 And he shall snatch on the right hand, and be hungry; and he -shall eat on the left hand, and they shall not be satisfied: they -shall eat every man the flesh of his own arm: 9:21 Manasseh, Ephraim; -and Ephraim, Manasseh: and they together shall be against Judah. For -all this his anger is not turned away, but his hand is stretched out -still. - -10:1 Woe unto them that decree unrighteous decrees, and that write -grievousness which they have prescribed; 10:2 To turn aside the needy -from judgment, and to take away the right from the poor of my people, -that widows may be their prey, and that they may rob the fatherless! -10:3 And what will ye do in the day of visitation, and in the -desolation which shall come from far? to whom will ye flee for help? -and where will ye leave your glory? 10:4 Without me they shall bow -down under the prisoners, and they shall fall under the slain. For all -this his anger is not turned away, but his hand is stretched out -still. - -10:5 O Assyrian, the rod of mine anger, and the staff in their hand is -mine indignation. - -10:6 I will send him against an hypocritical nation, and against the -people of my wrath will I give him a charge, to take the spoil, and to -take the prey, and to tread them down like the mire of the streets. - -10:7 Howbeit he meaneth not so, neither doth his heart think so; but -it is in his heart to destroy and cut off nations not a few. - -10:8 For he saith, Are not my princes altogether kings? 10:9 Is not -Calno as Carchemish? is not Hamath as Arpad? is not Samaria as -Damascus? 10:10 As my hand hath found the kingdoms of the idols, and -whose graven images did excel them of Jerusalem and of Samaria; 10:11 -Shall I not, as I have done unto Samaria and her idols, so do to -Jerusalem and her idols? 10:12 Wherefore it shall come to pass, that -when the Lord hath performed his whole work upon mount Zion and on -Jerusalem, I will punish the fruit of the stout heart of the king of -Assyria, and the glory of his high looks. - -10:13 For he saith, By the strength of my hand I have done it, and by -my wisdom; for I am prudent: and I have removed the bounds of the -people, and have robbed their treasures, and I have put down the -inhabitants like a valiant man: 10:14 And my hand hath found as a nest -the riches of the people: and as one gathereth eggs that are left, -have I gathered all the earth; and there was none that moved the wing, -or opened the mouth, or peeped. - -10:15 Shall the axe boast itself against him that heweth therewith? or -shall the saw magnify itself against him that shaketh it? as if the -rod should shake itself against them that lift it up, or as if the -staff should lift up itself, as if it were no wood. - -10:16 Therefore shall the Lord, the Lord of hosts, send among his fat -ones leanness; and under his glory he shall kindle a burning like the -burning of a fire. - -10:17 And the light of Israel shall be for a fire, and his Holy One -for a flame: and it shall burn and devour his thorns and his briers in -one day; 10:18 And shall consume the glory of his forest, and of his -fruitful field, both soul and body: and they shall be as when a -standard-bearer fainteth. - -10:19 And the rest of the trees of his forest shall be few, that a -child may write them. - -10:20 And it shall come to pass in that day, that the remnant of -Israel, and such as are escaped of the house of Jacob, shall no more -again stay upon him that smote them; but shall stay upon the LORD, the -Holy One of Israel, in truth. - -10:21 The remnant shall return, even the remnant of Jacob, unto the -mighty God. - -10:22 For though thy people Israel be as the sand of the sea, yet a -remnant of them shall return: the consumption decreed shall overflow -with righteousness. - -10:23 For the Lord GOD of hosts shall make a consumption, even -determined, in the midst of all the land. - -10:24 Therefore thus saith the Lord GOD of hosts, O my people that -dwellest in Zion, be not afraid of the Assyrian: he shall smite thee -with a rod, and shall lift up his staff against thee, after the manner -of Egypt. - -10:25 For yet a very little while, and the indignation shall cease, -and mine anger in their destruction. - -10:26 And the LORD of hosts shall stir up a scourge for him according -to the slaughter of Midian at the rock of Oreb: and as his rod was -upon the sea, so shall he lift it up after the manner of Egypt. - -10:27 And it shall come to pass in that day, that his burden shall be -taken away from off thy shoulder, and his yoke from off thy neck, and -the yoke shall be destroyed because of the anointing. - -10:28 He is come to Aiath, he is passed to Migron; at Michmash he hath -laid up his carriages: 10:29 They are gone over the passage: they have -taken up their lodging at Geba; Ramah is afraid; Gibeah of Saul is -fled. - -10:30 Lift up thy voice, O daughter of Gallim: cause it to be heard -unto Laish, O poor Anathoth. - -10:31 Madmenah is removed; the inhabitants of Gebim gather themselves -to flee. - -10:32 As yet shall he remain at Nob that day: he shall shake his hand -against the mount of the daughter of Zion, the hill of Jerusalem. - -10:33 Behold, the Lord, the LORD of hosts, shall lop the bough with -terror: and the high ones of stature shall be hewn down, and the -haughty shall be humbled. - -10:34 And he shall cut down the thickets of the forest with iron, and -Lebanon shall fall by a mighty one. - -11:1 And there shall come forth a rod out of the stem of Jesse, and a -Branch shall grow out of his roots: 11:2 And the spirit of the LORD -shall rest upon him, the spirit of wisdom and understanding, the -spirit of counsel and might, the spirit of knowledge and of the fear -of the LORD; 11:3 And shall make him of quick understanding in the -fear of the LORD: and he shall not judge after the sight of his eyes, -neither reprove after the hearing of his ears: 11:4 But with -righteousness shall he judge the poor, and reprove with equity for the -meek of the earth: and he shall smite the earth: with the rod of his -mouth, and with the breath of his lips shall he slay the wicked. - -11:5 And righteousness shall be the girdle of his loins, and -faithfulness the girdle of his reins. - -11:6 The wolf also shall dwell with the lamb, and the leopard shall -lie down with the kid; and the calf and the young lion and the fatling -together; and a little child shall lead them. - -11:7 And the cow and the bear shall feed; their young ones shall lie -down together: and the lion shall eat straw like the ox. - -11:8 And the sucking child shall play on the hole of the asp, and the -weaned child shall put his hand on the cockatrice' den. - -11:9 They shall not hurt nor destroy in all my holy mountain: for the -earth shall be full of the knowledge of the LORD, as the waters cover -the sea. - -11:10 And in that day there shall be a root of Jesse, which shall -stand for an ensign of the people; to it shall the Gentiles seek: and -his rest shall be glorious. - -11:11 And it shall come to pass in that day, that the Lord shall set -his hand again the second time to recover the remnant of his people, -which shall be left, from Assyria, and from Egypt, and from Pathros, -and from Cush, and from Elam, and from Shinar, and from Hamath, and -from the islands of the sea. - -11:12 And he shall set up an ensign for the nations, and shall -assemble the outcasts of Israel, and gather together the dispersed of -Judah from the four corners of the earth. - -11:13 The envy also of Ephraim shall depart, and the adversaries of -Judah shall be cut off: Ephraim shall not envy Judah, and Judah shall -not vex Ephraim. - -11:14 But they shall fly upon the shoulders of the Philistines toward -the west; they shall spoil them of the east together: they shall lay -their hand upon Edom and Moab; and the children of Ammon shall obey -them. - -11:15 And the LORD shall utterly destroy the tongue of the Egyptian -sea; and with his mighty wind shall he shake his hand over the river, -and shall smite it in the seven streams, and make men go over dryshod. - -11:16 And there shall be an highway for the remnant of his people, -which shall be left, from Assyria; like as it was to Israel in the day -that he came up out of the land of Egypt. - -12:1 And in that day thou shalt say, O LORD, I will praise thee: -though thou wast angry with me, thine anger is turned away, and thou -comfortedst me. - -12:2 Behold, God is my salvation; I will trust, and not be afraid: for -the LORD JEHOVAH is my strength and my song; he also is become my -salvation. - -12:3 Therefore with joy shall ye draw water out of the wells of -salvation. - -12:4 And in that day shall ye say, Praise the LORD, call upon his -name, declare his doings among the people, make mention that his name -is exalted. - -12:5 Sing unto the LORD; for he hath done excellent things: this is -known in all the earth. - -12:6 Cry out and shout, thou inhabitant of Zion: for great is the Holy -One of Israel in the midst of thee. - -13:1 The burden of Babylon, which Isaiah the son of Amoz did see. - -13:2 Lift ye up a banner upon the high mountain, exalt the voice unto -them, shake the hand, that they may go into the gates of the nobles. - -13:3 I have commanded my sanctified ones, I have also called my mighty -ones for mine anger, even them that rejoice in my highness. - -13:4 The noise of a multitude in the mountains, like as of a great -people; a tumultuous noise of the kingdoms of nations gathered -together: the LORD of hosts mustereth the host of the battle. - -13:5 They come from a far country, from the end of heaven, even the -LORD, and the weapons of his indignation, to destroy the whole land. - -13:6 Howl ye; for the day of the LORD is at hand; it shall come as a -destruction from the Almighty. - -13:7 Therefore shall all hands be faint, and every man's heart shall -melt: 13:8 And they shall be afraid: pangs and sorrows shall take hold -of them; they shall be in pain as a woman that travaileth: they shall -be amazed one at another; their faces shall be as flames. - -13:9 Behold, the day of the LORD cometh, cruel both with wrath and -fierce anger, to lay the land desolate: and he shall destroy the -sinners thereof out of it. - -13:10 For the stars of heaven and the constellations thereof shall not -give their light: the sun shall be darkened in his going forth, and -the moon shall not cause her light to shine. - -13:11 And I will punish the world for their evil, and the wicked for -their iniquity; and I will cause the arrogancy of the proud to cease, -and will lay low the haughtiness of the terrible. - -13:12 I will make a man more precious than fine gold; even a man than -the golden wedge of Ophir. - -13:13 Therefore I will shake the heavens, and the earth shall remove -out of her place, in the wrath of the LORD of hosts, and in the day of -his fierce anger. - -13:14 And it shall be as the chased roe, and as a sheep that no man -taketh up: they shall every man turn to his own people, and flee every -one into his own land. - -13:15 Every one that is found shall be thrust through; and every one -that is joined unto them shall fall by the sword. - -13:16 Their children also shall be dashed to pieces before their eyes; -their houses shall be spoiled, and their wives ravished. - -13:17 Behold, I will stir up the Medes against them, which shall not -regard silver; and as for gold, they shall not delight in it. - -13:18 Their bows also shall dash the young men to pieces; and they -shall have no pity on the fruit of the womb; their eyes shall not -spare children. - -13:19 And Babylon, the glory of kingdoms, the beauty of the Chaldees' -excellency, shall be as when God overthrew Sodom and Gomorrah. - -13:20 It shall never be inhabited, neither shall it be dwelt in from -generation to generation: neither shall the Arabian pitch tent there; -neither shall the shepherds make their fold there. - -13:21 But wild beasts of the desert shall lie there; and their houses -shall be full of doleful creatures; and owls shall dwell there, and -satyrs shall dance there. - -13:22 And the wild beasts of the islands shall cry in their desolate -houses, and dragons in their pleasant palaces: and her time is near to -come, and her days shall not be prolonged. - -14:1 For the LORD will have mercy on Jacob, and will yet choose -Israel, and set them in their own land: and the strangers shall be -joined with them, and they shall cleave to the house of Jacob. - -14:2 And the people shall take them, and bring them to their place: -and the house of Israel shall possess them in the land of the LORD for -servants and handmaids: and they shall take them captives, whose -captives they were; and they shall rule over their oppressors. - -14:3 And it shall come to pass in the day that the LORD shall give -thee rest from thy sorrow, and from thy fear, and from the hard -bondage wherein thou wast made to serve, 14:4 That thou shalt take up -this proverb against the king of Babylon, and say, How hath the -oppressor ceased! the golden city ceased! 14:5 The LORD hath broken -the staff of the wicked, and the sceptre of the rulers. - -14:6 He who smote the people in wrath with a continual stroke, he that -ruled the nations in anger, is persecuted, and none hindereth. - -14:7 The whole earth is at rest, and is quiet: they break forth into -singing. - -14:8 Yea, the fir trees rejoice at thee, and the cedars of Lebanon, -saying, Since thou art laid down, no feller is come up against us. - -14:9 Hell from beneath is moved for thee to meet thee at thy coming: -it stirreth up the dead for thee, even all the chief ones of the -earth; it hath raised up from their thrones all the kings of the -nations. - -14:10 All they shall speak and say unto thee, Art thou also become -weak as we? art thou become like unto us? 14:11 Thy pomp is brought -down to the grave, and the noise of thy viols: the worm is spread -under thee, and the worms cover thee. - -14:12 How art thou fallen from heaven, O Lucifer, son of the morning! -how art thou cut down to the ground, which didst weaken the nations! -14:13 For thou hast said in thine heart, I will ascend into heaven, I -will exalt my throne above the stars of God: I will sit also upon the -mount of the congregation, in the sides of the north: 14:14 I will -ascend above the heights of the clouds; I will be like the most High. - -14:15 Yet thou shalt be brought down to hell, to the sides of the pit. - -14:16 They that see thee shall narrowly look upon thee, and consider -thee, saying, Is this the man that made the earth to tremble, that did -shake kingdoms; 14:17 That made the world as a wilderness, and -destroyed the cities thereof; that opened not the house of his -prisoners? 14:18 All the kings of the nations, even all of them, lie -in glory, every one in his own house. - -14:19 But thou art cast out of thy grave like an abominable branch, -and as the raiment of those that are slain, thrust through with a -sword, that go down to the stones of the pit; as a carcase trodden -under feet. - -14:20 Thou shalt not be joined with them in burial, because thou hast -destroyed thy land, and slain thy people: the seed of evildoers shall -never be renowned. - -14:21 Prepare slaughter for his children for the iniquity of their -fathers; that they do not rise, nor possess the land, nor fill the -face of the world with cities. - -14:22 For I will rise up against them, saith the LORD of hosts, and -cut off from Babylon the name, and remnant, and son, and nephew, saith -the LORD. - -14:23 I will also make it a possession for the bittern, and pools of -water: and I will sweep it with the besom of destruction, saith the -LORD of hosts. - -14:24 The LORD of hosts hath sworn, saying, Surely as I have thought, -so shall it come to pass; and as I have purposed, so shall it stand: -14:25 That I will break the Assyrian in my land, and upon my mountains -tread him under foot: then shall his yoke depart from off them, and -his burden depart from off their shoulders. - -14:26 This is the purpose that is purposed upon the whole earth: and -this is the hand that is stretched out upon all the nations. - -14:27 For the LORD of hosts hath purposed, and who shall disannul it? -and his hand is stretched out, and who shall turn it back? 14:28 In -the year that king Ahaz died was this burden. - -14:29 Rejoice not thou, whole Palestina, because the rod of him that -smote thee is broken: for out of the serpent's root shall come forth a -cockatrice, and his fruit shall be a fiery flying serpent. - -14:30 And the firstborn of the poor shall feed, and the needy shall -lie down in safety: and I will kill thy root with famine, and he shall -slay thy remnant. - -14:31 Howl, O gate; cry, O city; thou, whole Palestina, art dissolved: -for there shall come from the north a smoke, and none shall be alone -in his appointed times. - -14:32 What shall one then answer the messengers of the nation? That -the LORD hath founded Zion, and the poor of his people shall trust in -it. - -15:1 The burden of Moab. Because in the night Ar of Moab is laid -waste, and brought to silence; because in the night Kir of Moab is -laid waste, and brought to silence; 15:2 He is gone up to Bajith, and -to Dibon, the high places, to weep: Moab shall howl over Nebo, and -over Medeba: on all their heads shall be baldness, and every beard cut -off. - -15:3 In their streets they shall gird themselves with sackcloth: on -the tops of their houses, and in their streets, every one shall howl, -weeping abundantly. - -15:4 And Heshbon shall cry, and Elealeh: their voice shall be heard -even unto Jahaz: therefore the armed soldiers of Moab shall cry out; -his life shall be grievous unto him. - -15:5 My heart shall cry out for Moab; his fugitives shall flee unto -Zoar, an heifer of three years old: for by the mounting up of Luhith -with weeping shall they go it up; for in the way of Horonaim they -shall raise up a cry of destruction. - -15:6 For the waters of Nimrim shall be desolate: for the hay is -withered away, the grass faileth, there is no green thing. - -15:7 Therefore the abundance they have gotten, and that which they -have laid up, shall they carry away to the brook of the willows. - -15:8 For the cry is gone round about the borders of Moab; the howling -thereof unto Eglaim, and the howling thereof unto Beerelim. - -15:9 For the waters of Dimon shall be full of blood: for I will bring -more upon Dimon, lions upon him that escapeth of Moab, and upon the -remnant of the land. - -16:1 Send ye the lamb to the ruler of the land from Sela to the -wilderness, unto the mount of the daughter of Zion. - -16:2 For it shall be, that, as a wandering bird cast out of the nest, -so the daughters of Moab shall be at the fords of Arnon. - -16:3 Take counsel, execute judgment; make thy shadow as the night in -the midst of the noonday; hide the outcasts; bewray not him that -wandereth. - -16:4 Let mine outcasts dwell with thee, Moab; be thou a covert to them -from the face of the spoiler: for the extortioner is at an end, the -spoiler ceaseth, the oppressors are consumed out of the land. - -16:5 And in mercy shall the throne be established: and he shall sit -upon it in truth in the tabernacle of David, judging, and seeking -judgment, and hasting righteousness. - -16:6 We have heard of the pride of Moab; he is very proud: even of his -haughtiness, and his pride, and his wrath: but his lies shall not be -so. - -16:7 Therefore shall Moab howl for Moab, every one shall howl: for the -foundations of Kirhareseth shall ye mourn; surely they are stricken. - -16:8 For the fields of Heshbon languish, and the vine of Sibmah: the -lords of the heathen have broken down the principal plants thereof, -they are come even unto Jazer, they wandered through the wilderness: -her branches are stretched out, they are gone over the sea. - -16:9 Therefore I will bewail with the weeping of Jazer the vine of -Sibmah: I will water thee with my tears, O Heshbon, and Elealeh: for -the shouting for thy summer fruits and for thy harvest is fallen. - -16:10 And gladness is taken away, and joy out of the plentiful field; -and in the vineyards there shall be no singing, neither shall there be -shouting: the treaders shall tread out no wine in their presses; I -have made their vintage shouting to cease. - -16:11 Wherefore my bowels shall sound like an harp for Moab, and mine -inward parts for Kirharesh. - -16:12 And it shall come to pass, when it is seen that Moab is weary on -the high place, that he shall come to his sanctuary to pray; but he -shall not prevail. - -16:13 This is the word that the LORD hath spoken concerning Moab since -that time. - -16:14 But now the LORD hath spoken, saying, Within three years, as the -years of an hireling, and the glory of Moab shall be contemned, with -all that great multitude; and the remnant shall be very small and -feeble. - -17:1 The burden of Damascus. Behold, Damascus is taken away from being -a city, and it shall be a ruinous heap. - -17:2 The cities of Aroer are forsaken: they shall be for flocks, which -shall lie down, and none shall make them afraid. - -17:3 The fortress also shall cease from Ephraim, and the kingdom from -Damascus, and the remnant of Syria: they shall be as the glory of the -children of Israel, saith the LORD of hosts. - -17:4 And in that day it shall come to pass, that the glory of Jacob -shall be made thin, and the fatness of his flesh shall wax lean. - -17:5 And it shall be as when the harvestman gathereth the corn, and -reapeth the ears with his arm; and it shall be as he that gathereth -ears in the valley of Rephaim. - -17:6 Yet gleaning grapes shall be left in it, as the shaking of an -olive tree, two or three berries in the top of the uppermost bough, -four or five in the outmost fruitful branches thereof, saith the LORD -God of Israel. - -17:7 At that day shall a man look to his Maker, and his eyes shall -have respect to the Holy One of Israel. - -17:8 And he shall not look to the altars, the work of his hands, -neither shall respect that which his fingers have made, either the -groves, or the images. - -17:9 In that day shall his strong cities be as a forsaken bough, and -an uppermost branch, which they left because of the children of -Israel: and there shall be desolation. - -17:10 Because thou hast forgotten the God of thy salvation, and hast -not been mindful of the rock of thy strength, therefore shalt thou -plant pleasant plants, and shalt set it with strange slips: 17:11 In -the day shalt thou make thy plant to grow, and in the morning shalt -thou make thy seed to flourish: but the harvest shall be a heap in the -day of grief and of desperate sorrow. - -17:12 Woe to the multitude of many people, which make a noise like the -noise of the seas; and to the rushing of nations, that make a rushing -like the rushing of mighty waters! 17:13 The nations shall rush like -the rushing of many waters: but God shall rebuke them, and they shall -flee far off, and shall be chased as the chaff of the mountains before -the wind, and like a rolling thing before the whirlwind. - -17:14 And behold at eveningtide trouble; and before the morning he is -not. - -This is the portion of them that spoil us, and the lot of them that -rob us. - -18:1 Woe to the land shadowing with wings, which is beyond the rivers -of Ethiopia: 18:2 That sendeth ambassadors by the sea, even in vessels -of bulrushes upon the waters, saying, Go, ye swift messengers, to a -nation scattered and peeled, to a people terrible from their beginning -hitherto; a nation meted out and trodden down, whose land the rivers -have spoiled! 18:3 All ye inhabitants of the world, and dwellers on -the earth, see ye, when he lifteth up an ensign on the mountains; and -when he bloweth a trumpet, hear ye. - -18:4 For so the LORD said unto me, I will take my rest, and I will -consider in my dwelling place like a clear heat upon herbs, and like a -cloud of dew in the heat of harvest. - -18:5 For afore the harvest, when the bud is perfect, and the sour -grape is ripening in the flower, he shall both cut off the sprigs with -pruning hooks, and take away and cut down the branches. - -18:6 They shall be left together unto the fowls of the mountains, and -to the beasts of the earth: and the fowls shall summer upon them, and -all the beasts of the earth shall winter upon them. - -18:7 In that time shall the present be brought unto the LORD of hosts -of a people scattered and peeled, and from a people terrible from -their beginning hitherto; a nation meted out and trodden under foot, -whose land the rivers have spoiled, to the place of the name of the -LORD of hosts, the mount Zion. - -19:1 The burden of Egypt. Behold, the LORD rideth upon a swift cloud, -and shall come into Egypt: and the idols of Egypt shall be moved at -his presence, and the heart of Egypt shall melt in the midst of it. - -19:2 And I will set the Egyptians against the Egyptians: and they -shall fight every one against his brother, and every one against his -neighbour; city against city, and kingdom against kingdom. - -19:3 And the spirit of Egypt shall fail in the midst thereof; and I -will destroy the counsel thereof: and they shall seek to the idols, -and to the charmers, and to them that have familiar spirits, and to -the wizards. - -19:4 And the Egyptians will I give over into the hand of a cruel lord; -and a fierce king shall rule over them, saith the Lord, the LORD of -hosts. - -19:5 And the waters shall fail from the sea, and the river shall be -wasted and dried up. - -19:6 And they shall turn the rivers far away; and the brooks of -defence shall be emptied and dried up: the reeds and flags shall -wither. - -19:7 The paper reeds by the brooks, by the mouth of the brooks, and -every thing sown by the brooks, shall wither, be driven away, and be -no more. - -19:8 The fishers also shall mourn, and all they that cast angle into -the brooks shall lament, and they that spread nets upon the waters -shall languish. - -19:9 Moreover they that work in fine flax, and they that weave -networks, shall be confounded. - -19:10 And they shall be broken in the purposes thereof, all that make -sluices and ponds for fish. - -19:11 Surely the princes of Zoan are fools, the counsel of the wise -counsellors of Pharaoh is become brutish: how say ye unto Pharaoh, I -am the son of the wise, the son of ancient kings? 19:12 Where are -they? where are thy wise men? and let them tell thee now, and let them -know what the LORD of hosts hath purposed upon Egypt. - -19:13 The princes of Zoan are become fools, the princes of Noph are -deceived; they have also seduced Egypt, even they that are the stay of -the tribes thereof. - -19:14 The LORD hath mingled a perverse spirit in the midst thereof: -and they have caused Egypt to err in every work thereof, as a drunken -man staggereth in his vomit. - -19:15 Neither shall there be any work for Egypt, which the head or -tail, branch or rush, may do. - -19:16 In that day shall Egypt be like unto women: and it shall be -afraid and fear because of the shaking of the hand of the LORD of -hosts, which he shaketh over it. - -19:17 And the land of Judah shall be a terror unto Egypt, every one -that maketh mention thereof shall be afraid in himself, because of the -counsel of the LORD of hosts, which he hath determined against it. - -19:18 In that day shall five cities in the land of Egypt speak the -language of Canaan, and swear to the LORD of hosts; one shall be -called, The city of destruction. - -19:19 In that day shall there be an altar to the LORD in the midst of -the land of Egypt, and a pillar at the border thereof to the LORD. - -19:20 And it shall be for a sign and for a witness unto the LORD of -hosts in the land of Egypt: for they shall cry unto the LORD because -of the oppressors, and he shall send them a saviour, and a great one, -and he shall deliver them. - -19:21 And the LORD shall be known to Egypt, and the Egyptians shall -know the LORD in that day, and shall do sacrifice and oblation; yea, -they shall vow a vow unto the LORD, and perform it. - -19:22 And the LORD shall smite Egypt: he shall smite and heal it: and -they shall return even to the LORD, and he shall be intreated of them, -and shall heal them. - -19:23 In that day shall there be a highway out of Egypt to Assyria, -and the Assyrian shall come into Egypt, and the Egyptian into Assyria, -and the Egyptians shall serve with the Assyrians. - -19:24 In that day shall Israel be the third with Egypt and with -Assyria, even a blessing in the midst of the land: 19:25 Whom the LORD -of hosts shall bless, saying, Blessed be Egypt my people, and Assyria -the work of my hands, and Israel mine inheritance. - -20:1 In the year that Tartan came unto Ashdod, (when Sargon the king -of Assyria sent him,) and fought against Ashdod, and took it; 20:2 At -the same time spake the LORD by Isaiah the son of Amoz, saying, Go and -loose the sackcloth from off thy loins, and put off thy shoe from thy -foot. And he did so, walking naked and barefoot. - -20:3 And the LORD said, Like as my servant Isaiah hath walked naked -and barefoot three years for a sign and wonder upon Egypt and upon -Ethiopia; 20:4 So shall the king of Assyria lead away the Egyptians -prisoners, and the Ethiopians captives, young and old, naked and -barefoot, even with their buttocks uncovered, to the shame of Egypt. - -20:5 And they shall be afraid and ashamed of Ethiopia their -expectation, and of Egypt their glory. - -20:6 And the inhabitant of this isle shall say in that day, Behold, -such is our expectation, whither we flee for help to be delivered from -the king of Assyria: and how shall we escape? 21:1 The burden of the -desert of the sea. As whirlwinds in the south pass through; so it -cometh from the desert, from a terrible land. - -21:2 A grievous vision is declared unto me; the treacherous dealer -dealeth treacherously, and the spoiler spoileth. Go up, O Elam: -besiege, O Media; all the sighing thereof have I made to cease. - -21:3 Therefore are my loins filled with pain: pangs have taken hold -upon me, as the pangs of a woman that travaileth: I was bowed down at -the hearing of it; I was dismayed at the seeing of it. - -21:4 My heart panted, fearfulness affrighted me: the night of my -pleasure hath he turned into fear unto me. - -21:5 Prepare the table, watch in the watchtower, eat, drink: arise, ye -princes, and anoint the shield. - -21:6 For thus hath the LORD said unto me, Go, set a watchman, let him -declare what he seeth. - -21:7 And he saw a chariot with a couple of horsemen, a chariot of -asses, and a chariot of camels; and he hearkened diligently with much -heed: 21:8 And he cried, A lion: My lord, I stand continually upon the -watchtower in the daytime, and I am set in my ward whole nights: 21:9 -And, behold, here cometh a chariot of men, with a couple of horsemen. - -And he answered and said, Babylon is fallen, is fallen; and all the -graven images of her gods he hath broken unto the ground. - -21:10 O my threshing, and the corn of my floor: that which I have -heard of the LORD of hosts, the God of Israel, have I declared unto -you. - -21:11 The burden of Dumah. He calleth to me out of Seir, Watchman, -what of the night? Watchman, what of the night? 21:12 The watchman -said, The morning cometh, and also the night: if ye will enquire, -enquire ye: return, come. - -21:13 The burden upon Arabia. In the forest in Arabia shall ye lodge, -O ye travelling companies of Dedanim. - -21:14 The inhabitants of the land of Tema brought water to him that -was thirsty, they prevented with their bread him that fled. - -21:15 For they fled from the swords, from the drawn sword, and from -the bent bow, and from the grievousness of war. - -21:16 For thus hath the LORD said unto me, Within a year, according to -the years of an hireling, and all the glory of Kedar shall fail: 21:17 -And the residue of the number of archers, the mighty men of the -children of Kedar, shall be diminished: for the LORD God of Israel -hath spoken it. - -22:1 The burden of the valley of vision. What aileth thee now, that -thou art wholly gone up to the housetops? 22:2 Thou that art full of -stirs, a tumultuous city, joyous city: thy slain men are not slain -with the sword, nor dead in battle. - -22:3 All thy rulers are fled together, they are bound by the archers: -all that are found in thee are bound together, which have fled from -far. - -22:4 Therefore said I, Look away from me; I will weep bitterly, labour -not to comfort me, because of the spoiling of the daughter of my -people. - -22:5 For it is a day of trouble, and of treading down, and of -perplexity by the Lord GOD of hosts in the valley of vision, breaking -down the walls, and of crying to the mountains. - -22:6 And Elam bare the quiver with chariots of men and horsemen, and -Kir uncovered the shield. - -22:7 And it shall come to pass, that thy choicest valleys shall be -full of chariots, and the horsemen shall set themselves in array at -the gate. - -22:8 And he discovered the covering of Judah, and thou didst look in -that day to the armour of the house of the forest. - -22:9 Ye have seen also the breaches of the city of David, that they -are many: and ye gathered together the waters of the lower pool. - -22:10 And ye have numbered the houses of Jerusalem, and the houses -have ye broken down to fortify the wall. - -22:11 Ye made also a ditch between the two walls for the water of the -old pool: but ye have not looked unto the maker thereof, neither had -respect unto him that fashioned it long ago. - -22:12 And in that day did the Lord GOD of hosts call to weeping, and -to mourning, and to baldness, and to girding with sackcloth: 22:13 And -behold joy and gladness, slaying oxen, and killing sheep, eating -flesh, and drinking wine: let us eat and drink; for to morrow we shall -die. - -22:14 And it was revealed in mine ears by the LORD of hosts, Surely -this iniquity shall not be purged from you till ye die, saith the Lord -GOD of hosts. - -22:15 Thus saith the Lord GOD of hosts, Go, get thee unto this -treasurer, even unto Shebna, which is over the house, and say, 22:16 -What hast thou here? and whom hast thou here, that thou hast hewed -thee out a sepulchre here, as he that heweth him out a sepulchre on -high, and that graveth an habitation for himself in a rock? 22:17 -Behold, the LORD will carry thee away with a mighty captivity, and -will surely cover thee. - -22:18 He will surely violently turn and toss thee like a ball into a -large country: there shalt thou die, and there the chariots of thy -glory shall be the shame of thy lord's house. - -22:19 And I will drive thee from thy station, and from thy state shall -he pull thee down. - -22:20 And it shall come to pass in that day, that I will call my -servant Eliakim the son of Hilkiah: 22:21 And I will clothe him with -thy robe, and strengthen him with thy girdle, and I will commit thy -government into his hand: and he shall be a father to the inhabitants -of Jerusalem, and to the house of Judah. - -22:22 And the key of the house of David will I lay upon his shoulder; -so he shall open, and none shall shut; and he shall shut, and none -shall open. - -22:23 And I will fasten him as a nail in a sure place; and he shall be -for a glorious throne to his father's house. - -22:24 And they shall hang upon him all the glory of his father's -house, the offspring and the issue, all vessels of small quantity, -from the vessels of cups, even to all the vessels of flagons. - -22:25 In that day, saith the LORD of hosts, shall the nail that is -fastened in the sure place be removed, and be cut down, and fall; and -the burden that was upon it shall be cut off: for the LORD hath spoken -it. - -23:1 The burden of Tyre. Howl, ye ships of Tarshish; for it is laid -waste, so that there is no house, no entering in: from the land of -Chittim it is revealed to them. - -23:2 Be still, ye inhabitants of the isle; thou whom the merchants of -Zidon, that pass over the sea, have replenished. - -23:3 And by great waters the seed of Sihor, the harvest of the river, -is her revenue; and she is a mart of nations. - -23:4 Be thou ashamed, O Zidon: for the sea hath spoken, even the -strength of the sea, saying, I travail not, nor bring forth children, -neither do I nourish up young men, nor bring up virgins. - -23:5 As at the report concerning Egypt, so shall they be sorely pained -at the report of Tyre. - -23:6 Pass ye over to Tarshish; howl, ye inhabitants of the isle. - -23:7 Is this your joyous city, whose antiquity is of ancient days? her -own feet shall carry her afar off to sojourn. - -23:8 Who hath taken this counsel against Tyre, the crowning city, -whose merchants are princes, whose traffickers are the honourable of -the earth? 23:9 The LORD of hosts hath purposed it, to stain the -pride of all glory, and to bring into contempt all the honourable of -the earth. - -23:10 Pass through thy land as a river, O daughter of Tarshish: there -is no more strength. - -23:11 He stretched out his hand over the sea, he shook the kingdoms: -the LORD hath given a commandment against the merchant city, to -destroy the strong holds thereof. - -23:12 And he said, Thou shalt no more rejoice, O thou oppressed -virgin, daughter of Zidon: arise, pass over to Chittim; there also -shalt thou have no rest. - -23:13 Behold the land of the Chaldeans; this people was not, till the -Assyrian founded it for them that dwell in the wilderness: they set up -the towers thereof, they raised up the palaces thereof; and he brought -it to ruin. - -23:14 Howl, ye ships of Tarshish: for your strength is laid waste. - -23:15 And it shall come to pass in that day, that Tyre shall be -forgotten seventy years, according to the days of one king: after the -end of seventy years shall Tyre sing as an harlot. - -23:16 Take an harp, go about the city, thou harlot that hast been -forgotten; make sweet melody, sing many songs, that thou mayest be -remembered. - -23:17 And it shall come to pass after the end of seventy years, that -the LORD will visit Tyre, and she shall turn to her hire, and shall -commit fornication with all the kingdoms of the world upon the face of -the earth. - -23:18 And her merchandise and her hire shall be holiness to the LORD: -it shall not be treasured nor laid up; for her merchandise shall be -for them that dwell before the LORD, to eat sufficiently, and for -durable clothing. - -24:1 Behold, the LORD maketh the earth empty, and maketh it waste, and -turneth it upside down, and scattereth abroad the inhabitants thereof. - -24:2 And it shall be, as with the people, so with the priest; as with -the servant, so with his master; as with the maid, so with her -mistress; as with the buyer, so with the seller; as with the lender, -so with the borrower; as with the taker of usury, so with the giver of -usury to him. - -24:3 The land shall be utterly emptied, and utterly spoiled: for the -LORD hath spoken this word. - -24:4 The earth mourneth and fadeth away, the world languisheth and -fadeth away, the haughty people of the earth do languish. - -24:5 The earth also is defiled under the inhabitants thereof; because -they have transgressed the laws, changed the ordinance, broken the -everlasting covenant. - -24:6 Therefore hath the curse devoured the earth, and they that dwell -therein are desolate: therefore the inhabitants of the earth are -burned, and few men left. - -24:7 The new wine mourneth, the vine languisheth, all the merryhearted -do sigh. - -24:8 The mirth of tabrets ceaseth, the noise of them that rejoice -endeth, the joy of the harp ceaseth. - -24:9 They shall not drink wine with a song; strong drink shall be -bitter to them that drink it. - -24:10 The city of confusion is broken down: every house is shut up, -that no man may come in. - -24:11 There is a crying for wine in the streets; all joy is darkened, -the mirth of the land is gone. - -24:12 In the city is left desolation, and the gate is smitten with -destruction. - -24:13 When thus it shall be in the midst of the land among the people, -there shall be as the shaking of an olive tree, and as the gleaning -grapes when the vintage is done. - -24:14 They shall lift up their voice, they shall sing for the majesty -of the LORD, they shall cry aloud from the sea. - -24:15 Wherefore glorify ye the LORD in the fires, even the name of the -LORD God of Israel in the isles of the sea. - -24:16 From the uttermost part of the earth have we heard songs, even -glory to the righteous. But I said, My leanness, my leanness, woe unto -me! the treacherous dealers have dealt treacherously; yea, the -treacherous dealers have dealt very treacherously. - -24:17 Fear, and the pit, and the snare, are upon thee, O inhabitant of -the earth. - -24:18 And it shall come to pass, that he who fleeth from the noise of -the fear shall fall into the pit; and he that cometh up out of the -midst of the pit shall be taken in the snare: for the windows from on -high are open, and the foundations of the earth do shake. - -24:19 The earth is utterly broken down, the earth is clean dissolved, -the earth is moved exceedingly. - -24:20 The earth shall reel to and fro like a drunkard, and shall be -removed like a cottage; and the transgression thereof shall be heavy -upon it; and it shall fall, and not rise again. - -24:21 And it shall come to pass in that day, that the LORD shall -punish the host of the high ones that are on high, and the kings of -the earth upon the earth. - -24:22 And they shall be gathered together, as prisoners are gathered -in the pit, and shall be shut up in the prison, and after many days -shall they be visited. - -24:23 Then the moon shall be confounded, and the sun ashamed, when the -LORD of hosts shall reign in mount Zion, and in Jerusalem, and before -his ancients gloriously. - -25:1 O Lord, thou art my God; I will exalt thee, I will praise thy -name; for thou hast done wonderful things; thy counsels of old are -faithfulness and truth. - -25:2 For thou hast made of a city an heap; of a defenced city a ruin: -a palace of strangers to be no city; it shall never be built. - -25:3 Therefore shall the strong people glorify thee, the city of the -terrible nations shall fear thee. - -25:4 For thou hast been a strength to the poor, a strength to the -needy in his distress, a refuge from the storm, a shadow from the -heat, when the blast of the terrible ones is as a storm against the -wall. - -25:5 Thou shalt bring down the noise of strangers, as the heat in a -dry place; even the heat with the shadow of a cloud: the branch of the -terrible ones shall be brought low. - -25:6 And in this mountain shall the LORD of hosts make unto all people -a feast of fat things, a feast of wines on the lees, of fat things -full of marrow, of wines on the lees well refined. - -25:7 And he will destroy in this mountain the face of the covering -cast over all people, and the vail that is spread over all nations. - -25:8 He will swallow up death in victory; and the Lord GOD will wipe -away tears from off all faces; and the rebuke of his people shall he -take away from off all the earth: for the LORD hath spoken it. - -25:9 And it shall be said in that day, Lo, this is our God; we have -waited for him, and he will save us: this is the LORD; we have waited -for him, we will be glad and rejoice in his salvation. - -25:10 For in this mountain shall the hand of the LORD rest, and Moab -shall be trodden down under him, even as straw is trodden down for the -dunghill. - -25:11 And he shall spread forth his hands in the midst of them, as he -that swimmeth spreadeth forth his hands to swim: and he shall bring -down their pride together with the spoils of their hands. - -25:12 And the fortress of the high fort of thy walls shall he bring -down, lay low, and bring to the ground, even to the dust. - -26:1 In that day shall this song be sung in the land of Judah; We have -a strong city; salvation will God appoint for walls and bulwarks. - -26:2 Open ye the gates, that the righteous nation which keepeth the -truth may enter in. - -26:3 Thou wilt keep him in perfect peace, whose mind is stayed on -thee: because he trusteth in thee. - -26:4 Trust ye in the LORD for ever: for in the LORD JEHOVAH is -everlasting strength: 26:5 For he bringeth down them that dwell on -high; the lofty city, he layeth it low; he layeth it low, even to the -ground; he bringeth it even to the dust. - -26:6 The foot shall tread it down, even the feet of the poor, and the -steps of the needy. - -26:7 The way of the just is uprightness: thou, most upright, dost -weigh the path of the just. - -26:8 Yea, in the way of thy judgments, O LORD, have we waited for -thee; the desire of our soul is to thy name, and to the remembrance of -thee. - -26:9 With my soul have I desired thee in the night; yea, with my -spirit within me will I seek thee early: for when thy judgments are in -the earth, the inhabitants of the world will learn righteousness. - -26:10 Let favour be shewed to the wicked, yet will he not learn -righteousness: in the land of uprightness will he deal unjustly, and -will not behold the majesty of the LORD. - -26:11 LORD, when thy hand is lifted up, they will not see: but they -shall see, and be ashamed for their envy at the people; yea, the fire -of thine enemies shall devour them. - -26:12 LORD, thou wilt ordain peace for us: for thou also hast wrought -all our works in us. - -26:13 O LORD our God, other lords beside thee have had dominion over -us: but by thee only will we make mention of thy name. - -26:14 They are dead, they shall not live; they are deceased, they -shall not rise: therefore hast thou visited and destroyed them, and -made all their memory to perish. - -26:15 Thou hast increased the nation, O LORD, thou hast increased the -nation: thou art glorified: thou hadst removed it far unto all the -ends of the earth. - -26:16 LORD, in trouble have they visited thee, they poured out a -prayer when thy chastening was upon them. - -26:17 Like as a woman with child, that draweth near the time of her -delivery, is in pain, and crieth out in her pangs; so have we been in -thy sight, O LORD. - -26:18 We have been with child, we have been in pain, we have as it -were brought forth wind; we have not wrought any deliverance in the -earth; neither have the inhabitants of the world fallen. - -26:19 Thy dead men shall live, together with my dead body shall they -arise. Awake and sing, ye that dwell in dust: for thy dew is as the -dew of herbs, and the earth shall cast out the dead. - -26:20 Come, my people, enter thou into thy chambers, and shut thy -doors about thee: hide thyself as it were for a little moment, until -the indignation be overpast. - -26:21 For, behold, the LORD cometh out of his place to punish the -inhabitants of the earth for their iniquity: the earth also shall -disclose her blood, and shall no more cover her slain. - -27:1 In that day the LORD with his sore and great and strong sword -shall punish leviathan the piercing serpent, even leviathan that -crooked serpent; and he shall slay the dragon that is in the sea. - -27:2 In that day sing ye unto her, A vineyard of red wine. - -27:3 I the LORD do keep it; I will water it every moment: lest any -hurt it, I will keep it night and day. - -27:4 Fury is not in me: who would set the briers and thorns against me -in battle? I would go through them, I would burn them together. - -27:5 Or let him take hold of my strength, that he may make peace with -me; and he shall make peace with me. - -27:6 He shall cause them that come of Jacob to take root: Israel shall -blossom and bud, and fill the face of the world with fruit. - -27:7 Hath he smitten him, as he smote those that smote him? or is he -slain according to the slaughter of them that are slain by him? 27:8 -In measure, when it shooteth forth, thou wilt debate with it: he -stayeth his rough wind in the day of the east wind. - -27:9 By this therefore shall the iniquity of Jacob be purged; and this -is all the fruit to take away his sin; when he maketh all the stones -of the altar as chalkstones that are beaten in sunder, the groves and -images shall not stand up. - -27:10 Yet the defenced city shall be desolate, and the habitation -forsaken, and left like a wilderness: there shall the calf feed, and -there shall he lie down, and consume the branches thereof. - -27:11 When the boughs thereof are withered, they shall be broken off: -the women come, and set them on fire: for it is a people of no -understanding: therefore he that made them will not have mercy on -them, and he that formed them will shew them no favour. - -27:12 And it shall come to pass in that day, that the LORD shall beat -off from the channel of the river unto the stream of Egypt, and ye -shall be gathered one by one, O ye children of Israel. - -27:13 And it shall come to pass in that day, that the great trumpet -shall be blown, and they shall come which were ready to perish in the -land of Assyria, and the outcasts in the land of Egypt, and shall -worship the LORD in the holy mount at Jerusalem. - -28:1 Woe to the crown of pride, to the drunkards of Ephraim, whose -glorious beauty is a fading flower, which are on the head of the fat -valleys of them that are overcome with wine! 28:2 Behold, the Lord -hath a mighty and strong one, which as a tempest of hail and a -destroying storm, as a flood of mighty waters overflowing, shall cast -down to the earth with the hand. - -28:3 The crown of pride, the drunkards of Ephraim, shall be trodden -under feet: 28:4 And the glorious beauty, which is on the head of the -fat valley, shall be a fading flower, and as the hasty fruit before -the summer; which when he that looketh upon it seeth, while it is yet -in his hand he eateth it up. - -28:5 In that day shall the LORD of hosts be for a crown of glory, and -for a diadem of beauty, unto the residue of his people, 28:6 And for a -spirit of judgment to him that sitteth in judgment, and for strength -to them that turn the battle to the gate. - -28:7 But they also have erred through wine, and through strong drink -are out of the way; the priest and the prophet have erred through -strong drink, they are swallowed up of wine, they are out of the way -through strong drink; they err in vision, they stumble in judgment. - -28:8 For all tables are full of vomit and filthiness, so that there is -no place clean. - -28:9 Whom shall he teach knowledge? and whom shall he make to -understand doctrine? them that are weaned from the milk, and drawn -from the breasts. - -28:10 For precept must be upon precept, precept upon precept; line -upon line, line upon line; here a little, and there a little: 28:11 -For with stammering lips and another tongue will he speak to this -people. - -28:12 To whom he said, This is the rest wherewith ye may cause the -weary to rest; and this is the refreshing: yet they would not hear. - -28:13 But the word of the LORD was unto them precept upon precept, -precept upon precept; line upon line, line upon line; here a little, -and there a little; that they might go, and fall backward, and be -broken, and snared, and taken. - -28:14 Wherefore hear the word of the LORD, ye scornful men, that rule -this people which is in Jerusalem. - -28:15 Because ye have said, We have made a covenant with death, and -with hell are we at agreement; when the overflowing scourge shall pass -through, it shall not come unto us: for we have made lies our refuge, -and under falsehood have we hid ourselves: 28:16 Therefore thus saith -the Lord GOD, Behold, I lay in Zion for a foundation a stone, a tried -stone, a precious corner stone, a sure foundation: he that believeth -shall not make haste. - -28:17 Judgment also will I lay to the line, and righteousness to the -plummet: and the hail shall sweep away the refuge of lies, and the -waters shall overflow the hiding place. - -28:18 And your covenant with death shall be disannulled, and your -agreement with hell shall not stand; when the overflowing scourge -shall pass through, then ye shall be trodden down by it. - -28:19 From the time that it goeth forth it shall take you: for morning -by morning shall it pass over, by day and by night: and it shall be a -vexation only to understand the report. - -28:20 For the bed is shorter than that a man can stretch himself on -it: and the covering narrower than that he can wrap himself in it. - -28:21 For the LORD shall rise up as in mount Perazim, he shall be -wroth as in the valley of Gibeon, that he may do his work, his strange -work; and bring to pass his act, his strange act. - -28:22 Now therefore be ye not mockers, lest your bands be made strong: -for I have heard from the Lord GOD of hosts a consumption, even -determined upon the whole earth. - -28:23 Give ye ear, and hear my voice; hearken, and hear my speech. - -28:24 Doth the plowman plow all day to sow? doth he open and break the -clods of his ground? 28:25 When he hath made plain the face thereof, -doth he not cast abroad the fitches, and scatter the cummin, and cast -in the principal wheat and the appointed barley and the rie in their -place? 28:26 For his God doth instruct him to discretion, and doth -teach him. - -28:27 For the fitches are not threshed with a threshing instrument, -neither is a cart wheel turned about upon the cummin; but the fitches -are beaten out with a staff, and the cummin with a rod. - -28:28 Bread corn is bruised; because he will not ever be threshing it, -nor break it with the wheel of his cart, nor bruise it with his -horsemen. - -28:29 This also cometh forth from the LORD of hosts, which is -wonderful in counsel, and excellent in working. - -29:1 Woe to Ariel, to Ariel, the city where David dwelt! add ye year -to year; let them kill sacrifices. - -29:2 Yet I will distress Ariel, and there shall be heaviness and -sorrow: and it shall be unto me as Ariel. - -29:3 And I will camp against thee round about, and will lay siege -against thee with a mount, and I will raise forts against thee. - -29:4 And thou shalt be brought down, and shalt speak out of the -ground, and thy speech shall be low out of the dust, and thy voice -shall be, as of one that hath a familiar spirit, out of the ground, -and thy speech shall whisper out of the dust. - -29:5 Moreover the multitude of thy strangers shall be like small dust, -and the multitude of the terrible ones shall be as chaff that passeth -away: yea, it shall be at an instant suddenly. - -29:6 Thou shalt be visited of the LORD of hosts with thunder, and with -earthquake, and great noise, with storm and tempest, and the flame of -devouring fire. - -29:7 And the multitude of all the nations that fight against Ariel, -even all that fight against her and her munition, and that distress -her, shall be as a dream of a night vision. - -29:8 It shall even be as when an hungry man dreameth, and, behold, he -eateth; but he awaketh, and his soul is empty: or as when a thirsty -man dreameth, and, behold, he drinketh; but he awaketh, and, behold, -he is faint, and his soul hath appetite: so shall the multitude of all -the nations be, that fight against mount Zion. - -29:9 Stay yourselves, and wonder; cry ye out, and cry: they are -drunken, but not with wine; they stagger, but not with strong drink. - -29:10 For the LORD hath poured out upon you the spirit of deep sleep, -and hath closed your eyes: the prophets and your rulers, the seers -hath he covered. - -29:11 And the vision of all is become unto you as the words of a book -that is sealed, which men deliver to one that is learned, saying, Read -this, I pray thee: and he saith, I cannot; for it is sealed: 29:12 And -the book is delivered to him that is not learned, saying, Read this, I -pray thee: and he saith, I am not learned. - -29:13 Wherefore the Lord said, Forasmuch as this people draw near me -with their mouth, and with their lips do honour me, but have removed -their heart far from me, and their fear toward me is taught by the -precept of men: 29:14 Therefore, behold, I will proceed to do a -marvellous work among this people, even a marvellous work and a -wonder: for the wisdom of their wise men shall perish, and the -understanding of their prudent men shall be hid. - -29:15 Woe unto them that seek deep to hide their counsel from the -LORD, and their works are in the dark, and they say, Who seeth us? and -who knoweth us? 29:16 Surely your turning of things upside down shall -be esteemed as the potter's clay: for shall the work say of him that -made it, He made me not? or shall the thing framed say of him that -framed it, He had no understanding? 29:17 Is it not yet a very little -while, and Lebanon shall be turned into a fruitful field, and the -fruitful field shall be esteemed as a forest? 29:18 And in that day -shall the deaf hear the words of the book, and the eyes of the blind -shall see out of obscurity, and out of darkness. - -29:19 The meek also shall increase their joy in the LORD, and the poor -among men shall rejoice in the Holy One of Israel. - -29:20 For the terrible one is brought to nought, and the scorner is -consumed, and all that watch for iniquity are cut off: 29:21 That make -a man an offender for a word, and lay a snare for him that reproveth -in the gate, and turn aside the just for a thing of nought. - -29:22 Therefore thus saith the LORD, who redeemed Abraham, concerning -the house of Jacob, Jacob shall not now be ashamed, neither shall his -face now wax pale. - -29:23 But when he seeth his children, the work of mine hands, in the -midst of him, they shall sanctify my name, and sanctify the Holy One -of Jacob, and shall fear the God of Israel. - -29:24 They also that erred in spirit shall come to understanding, and -they that murmured shall learn doctrine. - -30:1 Woe to the rebellious children, saith the LORD, that take -counsel, but not of me; and that cover with a covering, but not of my -spirit, that they may add sin to sin: 30:2 That walk to go down into -Egypt, and have not asked at my mouth; to strengthen themselves in the -strength of Pharaoh, and to trust in the shadow of Egypt! 30:3 -Therefore shall the strength of Pharaoh be your shame, and the trust -in the shadow of Egypt your confusion. - -30:4 For his princes were at Zoan, and his ambassadors came to Hanes. - -30:5 They were all ashamed of a people that could not profit them, nor -be an help nor profit, but a shame, and also a reproach. - -30:6 The burden of the beasts of the south: into the land of trouble -and anguish, from whence come the young and old lion, the viper and -fiery flying serpent, they will carry their riches upon the shoulders -of young asses, and their treasures upon the bunches of camels, to a -people that shall not profit them. - -30:7 For the Egyptians shall help in vain, and to no purpose: -therefore have I cried concerning this, Their strength is to sit -still. - -30:8 Now go, write it before them in a table, and note it in a book, -that it may be for the time to come for ever and ever: 30:9 That this -is a rebellious people, lying children, children that will not hear -the law of the LORD: 30:10 Which say to the seers, See not; and to the -prophets, Prophesy not unto us right things, speak unto us smooth -things, prophesy deceits: 30:11 Get you out of the way, turn aside out -of the path, cause the Holy One of Israel to cease from before us. - -30:12 Wherefore thus saith the Holy One of Israel, Because ye despise -this word, and trust in oppression and perverseness, and stay thereon: -30:13 Therefore this iniquity shall be to you as a breach ready to -fall, swelling out in a high wall, whose breaking cometh suddenly at -an instant. - -30:14 And he shall break it as the breaking of the potters' vessel -that is broken in pieces; he shall not spare: so that there shall not -be found in the bursting of it a sherd to take fire from the hearth, -or to take water withal out of the pit. - -30:15 For thus saith the Lord GOD, the Holy One of Israel; In -returning and rest shall ye be saved; in quietness and in confidence -shall be your strength: and ye would not. - -30:16 But ye said, No; for we will flee upon horses; therefore shall -ye flee: and, We will ride upon the swift; therefore shall they that -pursue you be swift. - -30:17 One thousand shall flee at the rebuke of one; at the rebuke of -five shall ye flee: till ye be left as a beacon upon the top of a -mountain, and as an ensign on an hill. - -30:18 And therefore will the LORD wait, that he may be gracious unto -you, and therefore will he be exalted, that he may have mercy upon -you: for the LORD is a God of judgment: blessed are all they that wait -for him. - -30:19 For the people shall dwell in Zion at Jerusalem: thou shalt weep -no more: he will be very gracious unto thee at the voice of thy cry; -when he shall hear it, he will answer thee. - -30:20 And though the Lord give you the bread of adversity, and the -water of affliction, yet shall not thy teachers be removed into a -corner any more, but thine eyes shall see thy teachers: 30:21 And -thine ears shall hear a word behind thee, saying, This is the way, -walk ye in it, when ye turn to the right hand, and when ye turn to the -left. - -30:22 Ye shall defile also the covering of thy graven images of -silver, and the ornament of thy molten images of gold: thou shalt cast -them away as a menstruous cloth; thou shalt say unto it, Get thee -hence. - -30:23 Then shall he give the rain of thy seed, that thou shalt sow the -ground withal; and bread of the increase of the earth, and it shall be -fat and plenteous: in that day shall thy cattle feed in large -pastures. - -30:24 The oxen likewise and the young asses that ear the ground shall -eat clean provender, which hath been winnowed with the shovel and with -the fan. - -30:25 And there shall be upon every high mountain, and upon every high -hill, rivers and streams of waters in the day of the great slaughter, -when the towers fall. - -30:26 Moreover the light of the moon shall be as the light of the sun, -and the light of the sun shall be sevenfold, as the light of seven -days, in the day that the LORD bindeth up the breach of his people, -and healeth the stroke of their wound. - -30:27 Behold, the name of the LORD cometh from far, burning with his -anger, and the burden thereof is heavy: his lips are full of -indignation, and his tongue as a devouring fire: 30:28 And his breath, -as an overflowing stream, shall reach to the midst of the neck, to -sift the nations with the sieve of vanity: and there shall be a bridle -in the jaws of the people, causing them to err. - -30:29 Ye shall have a song, as in the night when a holy solemnity is -kept; and gladness of heart, as when one goeth with a pipe to come -into the mountain of the LORD, to the mighty One of Israel. - -30:30 And the LORD shall cause his glorious voice to be heard, and -shall shew the lighting down of his arm, with the indignation of his -anger, and with the flame of a devouring fire, with scattering, and -tempest, and hailstones. - -30:31 For through the voice of the LORD shall the Assyrian be beaten -down, which smote with a rod. - -30:32 And in every place where the grounded staff shall pass, which -the LORD shall lay upon him, it shall be with tabrets and harps: and -in battles of shaking will he fight with it. - -30:33 For Tophet is ordained of old; yea, for the king it is prepared; -he hath made it deep and large: the pile thereof is fire and much -wood; the breath of the LORD, like a stream of brimstone, doth kindle -it. - -31:1 Woe to them that go down to Egypt for help; and stay on horses, -and trust in chariots, because they are many; and in horsemen, because -they are very strong; but they look not unto the Holy One of Israel, -neither seek the LORD! 31:2 Yet he also is wise, and will bring evil, -and will not call back his words: but will arise against the house of -the evildoers, and against the help of them that work iniquity. - -31:3 Now the Egyptians are men, and not God; and their horses flesh, -and not spirit. When the LORD shall stretch out his hand, both he that -helpeth shall fall, and he that is holpen shall fall down, and they -all shall fail together. - -31:4 For thus hath the LORD spoken unto me, Like as the lion and the -young lion roaring on his prey, when a multitude of shepherds is -called forth against him, he will not be afraid of their voice, nor -abase himself for the noise of them: so shall the LORD of hosts come -down to fight for mount Zion, and for the hill thereof. - -31:5 As birds flying, so will the LORD of hosts defend Jerusalem; -defending also he will deliver it; and passing over he will preserve -it. - -31:6 Turn ye unto him from whom the children of Israel have deeply -revolted. - -31:7 For in that day every man shall cast away his idols of silver, -and his idols of gold, which your own hands have made unto you for a -sin. - -31:8 Then shall the Assyrian fall with the sword, not of a mighty man; -and the sword, not of a mean man, shall devour him: but he shall flee -from the sword, and his young men shall be discomfited. - -31:9 And he shall pass over to his strong hold for fear, and his -princes shall be afraid of the ensign, saith the LORD, whose fire is -in Zion, and his furnace in Jerusalem. - -32:1 Behold, a king shall reign in righteousness, and princes shall -rule in judgment. - -32:2 And a man shall be as an hiding place from the wind, and a covert -from the tempest; as rivers of water in a dry place, as the shadow of -a great rock in a weary land. - -32:3 And the eyes of them that see shall not be dim, and the ears of -them that hear shall hearken. - -32:4 The heart also of the rash shall understand knowledge, and the -tongue of the stammerers shall be ready to speak plainly. - -32:5 The vile person shall be no more called liberal, nor the churl -said to be bountiful. - -32:6 For the vile person will speak villany, and his heart will work -iniquity, to practise hypocrisy, and to utter error against the LORD, -to make empty the soul of the hungry, and he will cause the drink of -the thirsty to fail. - -32:7 The instruments also of the churl are evil: he deviseth wicked -devices to destroy the poor with lying words, even when the needy -speaketh right. - -32:8 But the liberal deviseth liberal things; and by liberal things -shall he stand. - -32:9 Rise up, ye women that are at ease; hear my voice, ye careless -daughters; give ear unto my speech. - -32:10 Many days and years shall ye be troubled, ye careless women: for -the vintage shall fail, the gathering shall not come. - -32:11 Tremble, ye women that are at ease; be troubled, ye careless -ones: strip you, and make you bare, and gird sackcloth upon your -loins. - -32:12 They shall lament for the teats, for the pleasant fields, for -the fruitful vine. - -32:13 Upon the land of my people shall come up thorns and briers; yea, -upon all the houses of joy in the joyous city: 32:14 Because the -palaces shall be forsaken; the multitude of the city shall be left; -the forts and towers shall be for dens for ever, a joy of wild asses, -a pasture of flocks; 32:15 Until the spirit be poured upon us from on -high, and the wilderness be a fruitful field, and the fruitful field -be counted for a forest. - -32:16 Then judgment shall dwell in the wilderness, and righteousness -remain in the fruitful field. - -32:17 And the work of righteousness shall be peace; and the effect of -righteousness quietness and assurance for ever. - -32:18 And my people shall dwell in a peaceable habitation, and in sure -dwellings, and in quiet resting places; 32:19 When it shall hail, -coming down on the forest; and the city shall be low in a low place. - -32:20 Blessed are ye that sow beside all waters, that send forth -thither the feet of the ox and the ass. - -33:1 Woe to thee that spoilest, and thou wast not spoiled; and dealest -treacherously, and they dealt not treacherously with thee! when thou -shalt cease to spoil, thou shalt be spoiled; and when thou shalt make -an end to deal treacherously, they shall deal treacherously with thee. - -33:2 O LORD, be gracious unto us; we have waited for thee: be thou -their arm every morning, our salvation also in the time of trouble. - -33:3 At the noise of the tumult the people fled; at the lifting up of -thyself the nations were scattered. - -33:4 And your spoil shall be gathered like the gathering of the -caterpiller: as the running to and fro of locusts shall he run upon -them. - -33:5 The LORD is exalted; for he dwelleth on high: he hath filled Zion -with judgment and righteousness. - -33:6 And wisdom and knowledge shall be the stability of thy times, and -strength of salvation: the fear of the LORD is his treasure. - -33:7 Behold, their valiant ones shall cry without: the ambassadors of -peace shall weep bitterly. - -33:8 The highways lie waste, the wayfaring man ceaseth: he hath broken -the covenant, he hath despised the cities, he regardeth no man. - -33:9 The earth mourneth and languisheth: Lebanon is ashamed and hewn -down: Sharon is like a wilderness; and Bashan and Carmel shake off -their fruits. - -33:10 Now will I rise, saith the LORD; now will I be exalted; now will -I lift up myself. - -33:11 Ye shall conceive chaff, ye shall bring forth stubble: your -breath, as fire, shall devour you. - -33:12 And the people shall be as the burnings of lime: as thorns cut -up shall they be burned in the fire. - -33:13 Hear, ye that are far off, what I have done; and, ye that are -near, acknowledge my might. - -33:14 The sinners in Zion are afraid; fearfulness hath surprised the -hypocrites. Who among us shall dwell with the devouring fire? who -among us shall dwell with everlasting burnings? 33:15 He that walketh -righteously, and speaketh uprightly; he that despiseth the gain of -oppressions, that shaketh his hands from holding of bribes, that -stoppeth his ears from hearing of blood, and shutteth his eyes from -seeing evil; 33:16 He shall dwell on high: his place of defence shall -be the munitions of rocks: bread shall be given him; his waters shall -be sure. - -33:17 Thine eyes shall see the king in his beauty: they shall behold -the land that is very far off. - -33:18 Thine heart shall meditate terror. Where is the scribe? where is -the receiver? where is he that counted the towers? 33:19 Thou shalt -not see a fierce people, a people of a deeper speech than thou canst -perceive; of a stammering tongue, that thou canst not understand. - -33:20 Look upon Zion, the city of our solemnities: thine eyes shall -see Jerusalem a quiet habitation, a tabernacle that shall not be taken -down; not one of the stakes thereof shall ever be removed, neither -shall any of the cords thereof be broken. - -33:21 But there the glorious LORD will be unto us a place of broad -rivers and streams; wherein shall go no galley with oars, neither -shall gallant ship pass thereby. - -33:22 For the LORD is our judge, the LORD is our lawgiver, the LORD is -our king; he will save us. - -33:23 Thy tacklings are loosed; they could not well strengthen their -mast, they could not spread the sail: then is the prey of a great -spoil divided; the lame take the prey. - -33:24 And the inhabitant shall not say, I am sick: the people that -dwell therein shall be forgiven their iniquity. - -34:1 Come near, ye nations, to hear; and hearken, ye people: let the -earth hear, and all that is therein; the world, and all things that -come forth of it. - -34:2 For the indignation of the LORD is upon all nations, and his fury -upon all their armies: he hath utterly destroyed them, he hath -delivered them to the slaughter. - -34:3 Their slain also shall be cast out, and their stink shall come up -out of their carcases, and the mountains shall be melted with their -blood. - -34:4 And all the host of heaven shall be dissolved, and the heavens -shall be rolled together as a scroll: and all their host shall fall -down, as the leaf falleth off from the vine, and as a falling fig from -the fig tree. - -34:5 For my sword shall be bathed in heaven: behold, it shall come -down upon Idumea, and upon the people of my curse, to judgment. - -34:6 The sword of the LORD is filled with blood, it is made fat with -fatness, and with the blood of lambs and goats, with the fat of the -kidneys of rams: for the LORD hath a sacrifice in Bozrah, and a great -slaughter in the land of Idumea. - -34:7 And the unicorns shall come down with them, and the bullocks with -the bulls; and their land shall be soaked with blood, and their dust -made fat with fatness. - -34:8 For it is the day of the LORD's vengeance, and the year of -recompences for the controversy of Zion. - -34:9 And the streams thereof shall be turned into pitch, and the dust -thereof into brimstone, and the land thereof shall become burning -pitch. - -34:10 It shall not be quenched night nor day; the smoke thereof shall -go up for ever: from generation to generation it shall lie waste; none -shall pass through it for ever and ever. - -34:11 But the cormorant and the bittern shall possess it; the owl also -and the raven shall dwell in it: and he shall stretch out upon it the -line of confusion, and the stones of emptiness. - -34:12 They shall call the nobles thereof to the kingdom, but none -shall be there, and all her princes shall be nothing. - -34:13 And thorns shall come up in her palaces, nettles and brambles in -the fortresses thereof: and it shall be an habitation of dragons, and -a court for owls. - -34:14 The wild beasts of the desert shall also meet with the wild -beasts of the island, and the satyr shall cry to his fellow; the -screech owl also shall rest there, and find for herself a place of -rest. - -34:15 There shall the great owl make her nest, and lay, and hatch, and -gather under her shadow: there shall the vultures also be gathered, -every one with her mate. - -34:16 Seek ye out of the book of the LORD, and read: no one of these -shall fail, none shall want her mate: for my mouth it hath commanded, -and his spirit it hath gathered them. - -34:17 And he hath cast the lot for them, and his hand hath divided it -unto them by line: they shall possess it for ever, from generation to -generation shall they dwell therein. - -35:1 The wilderness and the solitary place shall be glad for them; and -the desert shall rejoice, and blossom as the rose. - -35:2 It shall blossom abundantly, and rejoice even with joy and -singing: the glory of Lebanon shall be given unto it, the excellency -of Carmel and Sharon, they shall see the glory of the LORD, and the -excellency of our God. - -35:3 Strengthen ye the weak hands, and confirm the feeble knees. - -35:4 Say to them that are of a fearful heart, Be strong, fear not: -behold, your God will come with vengeance, even God with a recompence; -he will come and save you. - -35:5 Then the eyes of the blind shall be opened, and the ears of the -deaf shall be unstopped. - -35:6 Then shall the lame man leap as an hart, and the tongue of the -dumb sing: for in the wilderness shall waters break out, and streams -in the desert. - -35:7 And the parched ground shall become a pool, and the thirsty land -springs of water: in the habitation of dragons, where each lay, shall -be grass with reeds and rushes. - -35:8 And an highway shall be there, and a way, and it shall be called -The way of holiness; the unclean shall not pass over it; but it shall -be for those: the wayfaring men, though fools, shall not err therein. - -35:9 No lion shall be there, nor any ravenous beast shall go up -thereon, it shall not be found there; but the redeemed shall walk -there: 35:10 And the ransomed of the LORD shall return, and come to -Zion with songs and everlasting joy upon their heads: they shall -obtain joy and gladness, and sorrow and sighing shall flee away. - -36:1 Now it came to pass in the fourteenth year of king Hezekiah, that -Sennacherib king of Assyria came up against all the defenced cities of -Judah, and took them. - -36:2 And the king of Assyria sent Rabshakeh from Lachish to Jerusalem -unto king Hezekiah with a great army. And he stood by the conduit of -the upper pool in the highway of the fuller's field. - -36:3 Then came forth unto him Eliakim, Hilkiah's son, which was over -the house, and Shebna the scribe, and Joah, Asaph's son, the recorder. - -36:4 And Rabshakeh said unto them, Say ye now to Hezekiah, Thus saith -the great king, the king of Assyria, What confidence is this wherein -thou trustest? 36:5 I say, sayest thou, (but they are but vain words) -I have counsel and strength for war: now on whom dost thou trust, that -thou rebellest against me? 36:6 Lo, thou trustest in the staff of -this broken reed, on Egypt; whereon if a man lean, it will go into his -hand, and pierce it: so is Pharaoh king of Egypt to all that trust in -him. - -36:7 But if thou say to me, We trust in the LORD our God: is it not -he, whose high places and whose altars Hezekiah hath taken away, and -said to Judah and to Jerusalem, Ye shall worship before this altar? -36:8 Now therefore give pledges, I pray thee, to my master the king of -Assyria, and I will give thee two thousand horses, if thou be able on -thy part to set riders upon them. - -36:9 How then wilt thou turn away the face of one captain of the least -of my master's servants, and put thy trust on Egypt for chariots and -for horsemen? 36:10 And am I now come up without the LORD against -this land to destroy it? the LORD said unto me, Go up against this -land, and destroy it. - -36:11 Then said Eliakim and Shebna and Joah unto Rabshakeh, Speak, I -pray thee, unto thy servants in the Syrian language; for we understand -it: and speak not to us in the Jews' language, in the ears of the -people that are on the wall. - -36:12 But Rabshakeh said, Hath my master sent me to thy master and to -thee to speak these words? hath he not sent me to the men that sit -upon the wall, that they may eat their own dung, and drink their own -piss with you? 36:13 Then Rabshakeh stood, and cried with a loud -voice in the Jews' language, and said, Hear ye the words of the great -king, the king of Assyria. - -36:14 Thus saith the king, Let not Hezekiah deceive you: for he shall -not be able to deliver you. - -36:15 Neither let Hezekiah make you trust in the LORD, saying, The -LORD will surely deliver us: this city shall not be delivered into the -hand of the king of Assyria. - -36:16 Hearken not to Hezekiah: for thus saith the king of Assyria, -Make an agreement with me by a present, and come out to me: and eat ye -every one of his vine, and every one of his fig tree, and drink ye -every one the waters of his own cistern; 36:17 Until I come and take -you away to a land like your own land, a land of corn and wine, a land -of bread and vineyards. - -36:18 Beware lest Hezekiah persuade you, saying, the LORD will deliver -us. - -Hath any of the gods of the nations delivered his land out of the hand -of the king of Assyria? 36:19 Where are the gods of Hamath and -Arphad? where are the gods of Sepharvaim? and have they delivered -Samaria out of my hand? 36:20 Who are they among all the gods of -these lands, that have delivered their land out of my hand, that the -LORD should deliver Jerusalem out of my hand? 36:21 But they held -their peace, and answered him not a word: for the king's commandment -was, saying, Answer him not. - -36:22 Then came Eliakim, the son of Hilkiah, that was over the -household, and Shebna the scribe, and Joah, the son of Asaph, the -recorder, to Hezekiah with their clothes rent, and told him the words -of Rabshakeh. - -37:1 And it came to pass, when king Hezekiah heard it, that he rent -his clothes, and covered himself with sackcloth, and went into the -house of the LORD. - -37:2 And he sent Eliakim, who was over the household, and Shebna the -scribe, and the elders of the priests covered with sackcloth, unto -Isaiah the prophet the son of Amoz. - -37:3 And they said unto him, Thus saith Hezekiah, This day is a day of -trouble, and of rebuke, and of blasphemy: for the children are come to -the birth, and there is not strength to bring forth. - -37:4 It may be the LORD thy God will hear the words of Rabshakeh, whom -the king of Assyria his master hath sent to reproach the living God, -and will reprove the words which the LORD thy God hath heard: -wherefore lift up thy prayer for the remnant that is left. - -37:5 So the servants of king Hezekiah came to Isaiah. - -37:6 And Isaiah said unto them, Thus shall ye say unto your master, -Thus saith the LORD, Be not afraid of the words that thou hast heard, -wherewith the servants of the king of Assyria have blasphemed me. - -37:7 Behold, I will send a blast upon him, and he shall hear a rumour, -and return to his own land; and I will cause him to fall by the sword -in his own land. - -37:8 So Rabshakeh returned, and found the king of Assyria warring -against Libnah: for he had heard that he was departed from Lachish. - -37:9 And he heard say concerning Tirhakah king of Ethiopia, He is come -forth to make war with thee. And when he heard it, he sent messengers -to Hezekiah, saying, 37:10 Thus shall ye speak to Hezekiah king of -Judah, saying, Let not thy God, in whom thou trustest, deceive thee, -saying, Jerusalem shall not be given into the hand of the king of -Assyria. - -37:11 Behold, thou hast heard what the kings of Assyria have done to -all lands by destroying them utterly; and shalt thou be delivered? -37:12 Have the gods of the nations delivered them which my fathers -have destroyed, as Gozan, and Haran, and Rezeph, and the children of -Eden which were in Telassar? 37:13 Where is the king of Hamath, and -the king of Arphad, and the king of the city of Sepharvaim, Hena, and -Ivah? 37:14 And Hezekiah received the letter from the hand of the -messengers, and read it: and Hezekiah went up unto the house of the -LORD, and spread it before the LORD. - -37:15 And Hezekiah prayed unto the LORD, saying, 37:16 O LORD of -hosts, God of Israel, that dwellest between the cherubims, thou art -the God, even thou alone, of all the kingdoms of the earth: thou hast -made heaven and earth. - -37:17 Incline thine ear, O LORD, and hear; open thine eyes, O LORD, -and see: and hear all the words of Sennacherib, which hath sent to -reproach the living God. - -37:18 Of a truth, LORD, the kings of Assyria have laid waste all the -nations, and their countries, 37:19 And have cast their gods into the -fire: for they were no gods, but the work of men's hands, wood and -stone: therefore they have destroyed them. - -37:20 Now therefore, O LORD our God, save us from his hand, that all -the kingdoms of the earth may know that thou art the LORD, even thou -only. - -37:21 Then Isaiah the son of Amoz sent unto Hezekiah, saying, Thus -saith the LORD God of Israel, Whereas thou hast prayed to me against -Sennacherib king of Assyria: 37:22 This is the word which the LORD -hath spoken concerning him; The virgin, the daughter of Zion, hath -despised thee, and laughed thee to scorn; the daughter of Jerusalem -hath shaken her head at thee. - -37:23 Whom hast thou reproached and blasphemed? and against whom hast -thou exalted thy voice, and lifted up thine eyes on high? even against -the Holy One of Israel. - -37:24 By thy servants hast thou reproached the Lord, and hast said, By -the multitude of my chariots am I come up to the height of the -mountains, to the sides of Lebanon; and I will cut down the tall -cedars thereof, and the choice fir trees thereof: and I will enter -into the height of his border, and the forest of his Carmel. - -37:25 I have digged, and drunk water; and with the sole of my feet -have I dried up all the rivers of the besieged places. - -37:26 Hast thou not heard long ago, how I have done it; and of ancient -times, that I have formed it? now have I brought it to pass, that thou -shouldest be to lay waste defenced cities into ruinous heaps. - -37:27 Therefore their inhabitants were of small power, they were -dismayed and confounded: they were as the grass of the field, and as -the green herb, as the grass on the housetops, and as corn blasted -before it be grown up. - -37:28 But I know thy abode, and thy going out, and thy coming in, and -thy rage against me. - -37:29 Because thy rage against me, and thy tumult, is come up into -mine ears, therefore will I put my hook in thy nose, and my bridle in -thy lips, and I will turn thee back by the way by which thou camest. - -37:30 And this shall be a sign unto thee, Ye shall eat this year such -as groweth of itself; and the second year that which springeth of the -same: and in the third year sow ye, and reap, and plant vineyards, and -eat the fruit thereof. - -37:31 And the remnant that is escaped of the house of Judah shall -again take root downward, and bear fruit upward: 37:32 For out of -Jerusalem shall go forth a remnant, and they that escape out of mount -Zion: the zeal of the LORD of hosts shall do this. - -37:33 Therefore thus saith the LORD concerning the king of Assyria, He -shall not come into this city, nor shoot an arrow there, nor come -before it with shields, nor cast a bank against it. - -37:34 By the way that he came, by the same shall he return, and shall -not come into this city, saith the LORD. - -37:35 For I will defend this city to save it for mine own sake, and -for my servant David's sake. - -37:36 Then the angel of the LORD went forth, and smote in the camp of -the Assyrians a hundred and fourscore and five thousand: and when they -arose early in the morning, behold, they were all dead corpses. - -37:37 So Sennacherib king of Assyria departed, and went and returned, -and dwelt at Nineveh. - -37:38 And it came to pass, as he was worshipping in the house of -Nisroch his god, that Adrammelech and Sharezer his sons smote him with -the sword; and they escaped into the land of Armenia: and Esarhaddon -his son reigned in his stead. - -38:1 In those days was Hezekiah sick unto death. And Isaiah the -prophet the son of Amoz came unto him, and said unto him, Thus saith -the LORD, Set thine house in order: for thou shalt die, and not live. - -38:2 Then Hezekiah turned his face toward the wall, and prayed unto -the LORD, 38:3 And said, Remember now, O LORD, I beseech thee, how I -have walked before thee in truth and with a perfect heart, and have -done that which is good in thy sight. And Hezekiah wept sore. - -38:4 Then came the word of the LORD to Isaiah, saying, 38:5 Go, and -say to Hezekiah, Thus saith the LORD, the God of David thy father, I -have heard thy prayer, I have seen thy tears: behold, I will add unto -thy days fifteen years. - -38:6 And I will deliver thee and this city out of the hand of the king -of Assyria: and I will defend this city. - -38:7 And this shall be a sign unto thee from the LORD, that the LORD -will do this thing that he hath spoken; 38:8 Behold, I will bring -again the shadow of the degrees, which is gone down in the sun dial of -Ahaz, ten degrees backward. So the sun returned ten degrees, by which -degrees it was gone down. - -38:9 The writing of Hezekiah king of Judah, when he had been sick, and -was recovered of his sickness: 38:10 I said in the cutting off of my -days, I shall go to the gates of the grave: I am deprived of the -residue of my years. - -38:11 I said, I shall not see the LORD, even the LORD, in the land of -the living: I shall behold man no more with the inhabitants of the -world. - -38:12 Mine age is departed, and is removed from me as a shepherd's -tent: I have cut off like a weaver my life: he will cut me off with -pining sickness: from day even to night wilt thou make an end of me. - -38:13 I reckoned till morning, that, as a lion, so will he break all -my bones: from day even to night wilt thou make an end of me. - -38:14 Like a crane or a swallow, so did I chatter: I did mourn as a -dove: mine eyes fail with looking upward: O LORD, I am oppressed; -undertake for me. - -38:15 What shall I say? he hath both spoken unto me, and himself hath -done it: I shall go softly all my years in the bitterness of my soul. - -38:16 O LORD, by these things men live, and in all these things is the -life of my spirit: so wilt thou recover me, and make me to live. - -38:17 Behold, for peace I had great bitterness: but thou hast in love -to my soul delivered it from the pit of corruption: for thou hast cast -all my sins behind thy back. - -38:18 For the grave cannot praise thee, death can not celebrate thee: -they that go down into the pit cannot hope for thy truth. - -38:19 The living, the living, he shall praise thee, as I do this day: -the father to the children shall make known thy truth. - -38:20 The LORD was ready to save me: therefore we will sing my songs -to the stringed instruments all the days of our life in the house of -the LORD. - -38:21 For Isaiah had said, Let them take a lump of figs, and lay it -for a plaister upon the boil, and he shall recover. - -38:22 Hezekiah also had said, What is the sign that I shall go up to -the house of the LORD? 39:1 At that time Merodachbaladan, the son of -Baladan, king of Babylon, sent letters and a present to Hezekiah: for -he had heard that he had been sick, and was recovered. - -39:2 And Hezekiah was glad of them, and shewed them the house of his -precious things, the silver, and the gold, and the spices, and the -precious ointment, and all the house of his armour, and all that was -found in his treasures: there was nothing in his house, nor in all his -dominion, that Hezekiah shewed them not. - -39:3 Then came Isaiah the prophet unto king Hezekiah, and said unto -him, What said these men? and from whence came they unto thee? And -Hezekiah said, They are come from a far country unto me, even from -Babylon. - -39:4 Then said he, What have they seen in thine house? And Hezekiah -answered, All that is in mine house have they seen: there is nothing -among my treasures that I have not shewed them. - -39:5 Then said Isaiah to Hezekiah, Hear the word of the LORD of hosts: -39:6 Behold, the days come, that all that is in thine house, and that -which thy fathers have laid up in store until this day, shall be -carried to Babylon: nothing shall be left, saith the LORD. - -39:7 And of thy sons that shall issue from thee, which thou shalt -beget, shall they take away; and they shall be eunuchs in the palace -of the king of Babylon. - -39:8 Then said Hezekiah to Isaiah, Good is the word of the LORD which -thou hast spoken. He said moreover, For there shall be peace and truth -in my days. - -40:1 Comfort ye, comfort ye my people, saith your God. - -40:2 Speak ye comfortably to Jerusalem, and cry unto her, that her -warfare is accomplished, that her iniquity is pardoned: for she hath -received of the LORD's hand double for all her sins. - -40:3 The voice of him that crieth in the wilderness, Prepare ye the -way of the LORD, make straight in the desert a highway for our God. - -40:4 Every valley shall be exalted, and every mountain and hill shall -be made low: and the crooked shall be made straight, and the rough -places plain: 40:5 And the glory of the LORD shall be revealed, and -all flesh shall see it together: for the mouth of the LORD hath spoken -it. - -40:6 The voice said, Cry. And he said, What shall I cry? All flesh is -grass, and all the goodliness thereof is as the flower of the field: -40:7 The grass withereth, the flower fadeth: because the spirit of the -LORD bloweth upon it: surely the people is grass. - -40:8 The grass withereth, the flower fadeth: but the word of our God -shall stand for ever. - -40:9 O Zion, that bringest good tidings, get thee up into the high -mountain; O Jerusalem, that bringest good tidings, lift up thy voice -with strength; lift it up, be not afraid; say unto the cities of -Judah, Behold your God! 40:10 Behold, the Lord GOD will come with -strong hand, and his arm shall rule for him: behold, his reward is -with him, and his work before him. - -40:11 He shall feed his flock like a shepherd: he shall gather the -lambs with his arm, and carry them in his bosom, and shall gently lead -those that are with young. - -40:12 Who hath measured the waters in the hollow of his hand, and -meted out heaven with the span, and comprehended the dust of the earth -in a measure, and weighed the mountains in scales, and the hills in a -balance? 40:13 Who hath directed the Spirit of the LORD, or being his -counsellor hath taught him? 40:14 With whom took he counsel, and who -instructed him, and taught him in the path of judgment, and taught him -knowledge, and shewed to him the way of understanding? 40:15 Behold, -the nations are as a drop of a bucket, and are counted as the small -dust of the balance: behold, he taketh up the isles as a very little -thing. - -40:16 And Lebanon is not sufficient to burn, nor the beasts thereof -sufficient for a burnt offering. - -40:17 All nations before him are as nothing; and they are counted to -him less than nothing, and vanity. - -40:18 To whom then will ye liken God? or what likeness will ye compare -unto him? 40:19 The workman melteth a graven image, and the goldsmith -spreadeth it over with gold, and casteth silver chains. - -40:20 He that is so impoverished that he hath no oblation chooseth a -tree that will not rot; he seeketh unto him a cunning workman to -prepare a graven image, that shall not be moved. - -40:21 Have ye not known? have ye not heard? hath it not been told you -from the beginning? have ye not understood from the foundations of the -earth? 40:22 It is he that sitteth upon the circle of the earth, and -the inhabitants thereof are as grasshoppers; that stretcheth out the -heavens as a curtain, and spreadeth them out as a tent to dwell in: -40:23 That bringeth the princes to nothing; he maketh the judges of -the earth as vanity. - -40:24 Yea, they shall not be planted; yea, they shall not be sown: -yea, their stock shall not take root in the earth: and he shall also -blow upon them, and they shall wither, and the whirlwind shall take -them away as stubble. - -40:25 To whom then will ye liken me, or shall I be equal? saith the -Holy One. - -40:26 Lift up your eyes on high, and behold who hath created these -things, that bringeth out their host by number: he calleth them all by -names by the greatness of his might, for that he is strong in power; -not one faileth. - -40:27 Why sayest thou, O Jacob, and speakest, O Israel, My way is hid -from the LORD, and my judgment is passed over from my God? 40:28 Hast -thou not known? hast thou not heard, that the everlasting God, the -LORD, the Creator of the ends of the earth, fainteth not, neither is -weary? there is no searching of his understanding. - -40:29 He giveth power to the faint; and to them that have no might he -increaseth strength. - -40:30 Even the youths shall faint and be weary, and the young men -shall utterly fall: 40:31 But they that wait upon the LORD shall renew -their strength; they shall mount up with wings as eagles; they shall -run, and not be weary; and they shall walk, and not faint. - -41:1 Keep silence before me, O islands; and let the people renew their -strength: let them come near; then let them speak: let us come near -together to judgment. - -41:2 Who raised up the righteous man from the east, called him to his -foot, gave the nations before him, and made him rule over kings? he -gave them as the dust to his sword, and as driven stubble to his bow. - -41:3 He pursued them, and passed safely; even by the way that he had -not gone with his feet. - -41:4 Who hath wrought and done it, calling the generations from the -beginning? I the LORD, the first, and with the last; I am he. - -41:5 The isles saw it, and feared; the ends of the earth were afraid, -drew near, and came. - -41:6 They helped every one his neighbour; and every one said to his -brother, Be of good courage. - -41:7 So the carpenter encouraged the goldsmith, and he that smootheth -with the hammer him that smote the anvil, saying, It is ready for the -sodering: and he fastened it with nails, that it should not be moved. - -41:8 But thou, Israel, art my servant, Jacob whom I have chosen, the -seed of Abraham my friend. - -41:9 Thou whom I have taken from the ends of the earth, and called -thee from the chief men thereof, and said unto thee, Thou art my -servant; I have chosen thee, and not cast thee away. - -41:10 Fear thou not; for I am with thee: be not dismayed; for I am thy -God: I will strengthen thee; yea, I will help thee; yea, I will uphold -thee with the right hand of my righteousness. - -41:11 Behold, all they that were incensed against thee shall be -ashamed and confounded: they shall be as nothing; and they that strive -with thee shall perish. - -41:12 Thou shalt seek them, and shalt not find them, even them that -contended with thee: they that war against thee shall be as nothing, -and as a thing of nought. - -41:13 For I the LORD thy God will hold thy right hand, saying unto -thee, Fear not; I will help thee. - -41:14 Fear not, thou worm Jacob, and ye men of Israel; I will help -thee, saith the LORD, and thy redeemer, the Holy One of Israel. - -41:15 Behold, I will make thee a new sharp threshing instrument having -teeth: thou shalt thresh the mountains, and beat them small, and shalt -make the hills as chaff. - -41:16 Thou shalt fan them, and the wind shall carry them away, and the -whirlwind shall scatter them: and thou shalt rejoice in the LORD, and -shalt glory in the Holy One of Israel. - -41:17 When the poor and needy seek water, and there is none, and their -tongue faileth for thirst, I the LORD will hear them, I the God of -Israel will not forsake them. - -41:18 I will open rivers in high places, and fountains in the midst of -the valleys: I will make the wilderness a pool of water, and the dry -land springs of water. - -41:19 I will plant in the wilderness the cedar, the shittah tree, and -the myrtle, and the oil tree; I will set in the desert the fir tree, -and the pine, and the box tree together: 41:20 That they may see, and -know, and consider, and understand together, that the hand of the LORD -hath done this, and the Holy One of Israel hath created it. - -41:21 Produce your cause, saith the LORD; bring forth your strong -reasons, saith the King of Jacob. - -41:22 Let them bring them forth, and shew us what shall happen: let -them shew the former things, what they be, that we may consider them, -and know the latter end of them; or declare us things for to come. - -41:23 Shew the things that are to come hereafter, that we may know -that ye are gods: yea, do good, or do evil, that we may be dismayed, -and behold it together. - -41:24 Behold, ye are of nothing, and your work of nought: an -abomination is he that chooseth you. - -41:25 I have raised up one from the north, and he shall come: from the -rising of the sun shall he call upon my name: and he shall come upon -princes as upon morter, and as the potter treadeth clay. - -41:26 Who hath declared from the beginning, that we may know? and -beforetime, that we may say, He is righteous? yea, there is none that -sheweth, yea, there is none that declareth, yea, there is none that -heareth your words. - -41:27 The first shall say to Zion, Behold, behold them: and I will -give to Jerusalem one that bringeth good tidings. - -41:28 For I beheld, and there was no man; even among them, and there -was no counsellor, that, when I asked of them, could answer a word. - -41:29 Behold, they are all vanity; their works are nothing: their -molten images are wind and confusion. - -42:1 Behold my servant, whom I uphold; mine elect, in whom my soul -delighteth; I have put my spirit upon him: he shall bring forth -judgment to the Gentiles. - -42:2 He shall not cry, nor lift up, nor cause his voice to be heard in -the street. - -42:3 A bruised reed shall he not break, and the smoking flax shall he -not quench: he shall bring forth judgment unto truth. - -42:4 He shall not fail nor be discouraged, till he have set judgment -in the earth: and the isles shall wait for his law. - -42:5 Thus saith God the LORD, he that created the heavens, and -stretched them out; he that spread forth the earth, and that which -cometh out of it; he that giveth breath unto the people upon it, and -spirit to them that walk therein: 42:6 I the LORD have called thee in -righteousness, and will hold thine hand, and will keep thee, and give -thee for a covenant of the people, for a light of the Gentiles; 42:7 -To open the blind eyes, to bring out the prisoners from the prison, -and them that sit in darkness out of the prison house. - -42:8 I am the LORD: that is my name: and my glory will I not give to -another, neither my praise to graven images. - -42:9 Behold, the former things are come to pass, and new things do I -declare: before they spring forth I tell you of them. - -42:10 Sing unto the LORD a new song, and his praise from the end of -the earth, ye that go down to the sea, and all that is therein; the -isles, and the inhabitants thereof. - -42:11 Let the wilderness and the cities thereof lift up their voice, -the villages that Kedar doth inhabit: let the inhabitants of the rock -sing, let them shout from the top of the mountains. - -42:12 Let them give glory unto the LORD, and declare his praise in the -islands. - -42:13 The LORD shall go forth as a mighty man, he shall stir up -jealousy like a man of war: he shall cry, yea, roar; he shall prevail -against his enemies. - -42:14 I have long time holden my peace; I have been still, and -refrained myself: now will I cry like a travailing woman; I will -destroy and devour at once. - -42:15 I will make waste mountains and hills, and dry up all their -herbs; and I will make the rivers islands, and I will dry up the -pools. - -42:16 And I will bring the blind by a way that they knew not; I will -lead them in paths that they have not known: I will make darkness -light before them, and crooked things straight. These things will I do -unto them, and not forsake them. - -42:17 They shall be turned back, they shall be greatly ashamed, that -trust in graven images, that say to the molten images, Ye are our -gods. - -42:18 Hear, ye deaf; and look, ye blind, that ye may see. - -42:19 Who is blind, but my servant? or deaf, as my messenger that I -sent? who is blind as he that is perfect, and blind as the LORD's -servant? 42:20 Seeing many things, but thou observest not; opening -the ears, but he heareth not. - -42:21 The LORD is well pleased for his righteousness' sake; he will -magnify the law, and make it honourable. - -42:22 But this is a people robbed and spoiled; they are all of them -snared in holes, and they are hid in prison houses: they are for a -prey, and none delivereth; for a spoil, and none saith, Restore. - -42:23 Who among you will give ear to this? who will hearken and hear -for the time to come? 42:24 Who gave Jacob for a spoil, and Israel to -the robbers? did not the LORD, he against whom we have sinned? for -they would not walk in his ways, neither were they obedient unto his -law. - -42:25 Therefore he hath poured upon him the fury of his anger, and the -strength of battle: and it hath set him on fire round about, yet he -knew not; and it burned him, yet he laid it not to heart. - -43:1 But now thus saith the LORD that created thee, O Jacob, and he -that formed thee, O Israel, Fear not: for I have redeemed thee, I have -called thee by thy name; thou art mine. - -43:2 When thou passest through the waters, I will be with thee; and -through the rivers, they shall not overflow thee: when thou walkest -through the fire, thou shalt not be burned; neither shall the flame -kindle upon thee. - -43:3 For I am the LORD thy God, the Holy One of Israel, thy Saviour: I -gave Egypt for thy ransom, Ethiopia and Seba for thee. - -43:4 Since thou wast precious in my sight, thou hast been honourable, -and I have loved thee: therefore will I give men for thee, and people -for thy life. - -43:5 Fear not: for I am with thee: I will bring thy seed from the -east, and gather thee from the west; 43:6 I will say to the north, -Give up; and to the south, Keep not back: bring my sons from far, and -my daughters from the ends of the earth; 43:7 Even every one that is -called by my name: for I have created him for my glory, I have formed -him; yea, I have made him. - -43:8 Bring forth the blind people that have eyes, and the deaf that -have ears. - -43:9 Let all the nations be gathered together, and let the people be -assembled: who among them can declare this, and shew us former things? -let them bring forth their witnesses, that they may be justified: or -let them hear, and say, It is truth. - -43:10 Ye are my witnesses, saith the LORD, and my servant whom I have -chosen: that ye may know and believe me, and understand that I am he: -before me there was no God formed, neither shall there be after me. - -43:11 I, even I, am the LORD; and beside me there is no saviour. - -43:12 I have declared, and have saved, and I have shewed, when there -was no strange god among you: therefore ye are my witnesses, saith the -LORD, that I am God. - -43:13 Yea, before the day was I am he; and there is none that can -deliver out of my hand: I will work, and who shall let it? 43:14 Thus -saith the LORD, your redeemer, the Holy One of Israel; For your sake I -have sent to Babylon, and have brought down all their nobles, and the -Chaldeans, whose cry is in the ships. - -43:15 I am the LORD, your Holy One, the creator of Israel, your King. - -43:16 Thus saith the LORD, which maketh a way in the sea, and a path -in the mighty waters; 43:17 Which bringeth forth the chariot and -horse, the army and the power; they shall lie down together, they -shall not rise: they are extinct, they are quenched as tow. - -43:18 Remember ye not the former things, neither consider the things -of old. - -43:19 Behold, I will do a new thing; now it shall spring forth; shall -ye not know it? I will even make a way in the wilderness, and rivers -in the desert. - -43:20 The beast of the field shall honour me, the dragons and the -owls: because I give waters in the wilderness, and rivers in the -desert, to give drink to my people, my chosen. - -43:21 This people have I formed for myself; they shall shew forth my -praise. - -43:22 But thou hast not called upon me, O Jacob; but thou hast been -weary of me, O Israel. - -43:23 Thou hast not brought me the small cattle of thy burnt -offerings; neither hast thou honoured me with thy sacrifices. I have -not caused thee to serve with an offering, nor wearied thee with -incense. - -43:24 Thou hast bought me no sweet cane with money, neither hast thou -filled me with the fat of thy sacrifices: but thou hast made me to -serve with thy sins, thou hast wearied me with thine iniquities. - -43:25 I, even I, am he that blotteth out thy transgressions for mine -own sake, and will not remember thy sins. - -43:26 Put me in remembrance: let us plead together: declare thou, that -thou mayest be justified. - -43:27 Thy first father hath sinned, and thy teachers have transgressed -against me. - -43:28 Therefore I have profaned the princes of the sanctuary, and have -given Jacob to the curse, and Israel to reproaches. - -44:1 Yet now hear, O Jacob my servant; and Israel, whom I have chosen: -44:2 Thus saith the LORD that made thee, and formed thee from the -womb, which will help thee; Fear not, O Jacob, my servant; and thou, -Jesurun, whom I have chosen. - -44:3 For I will pour water upon him that is thirsty, and floods upon -the dry ground: I will pour my spirit upon thy seed, and my blessing -upon thine offspring: 44:4 And they shall spring up as among the -grass, as willows by the water courses. - -44:5 One shall say, I am the LORD's; and another shall call himself by -the name of Jacob; and another shall subscribe with his hand unto the -LORD, and surname himself by the name of Israel. - -44:6 Thus saith the LORD the King of Israel, and his redeemer the LORD -of hosts; I am the first, and I am the last; and beside me there is no -God. - -44:7 And who, as I, shall call, and shall declare it, and set it in -order for me, since I appointed the ancient people? and the things -that are coming, and shall come, let them shew unto them. - -44:8 Fear ye not, neither be afraid: have not I told thee from that -time, and have declared it? ye are even my witnesses. Is there a God -beside me? yea, there is no God; I know not any. - -44:9 They that make a graven image are all of them vanity; and their -delectable things shall not profit; and they are their own witnesses; -they see not, nor know; that they may be ashamed. - -44:10 Who hath formed a god, or molten a graven image that is -profitable for nothing? 44:11 Behold, all his fellows shall be -ashamed: and the workmen, they are of men: let them all be gathered -together, let them stand up; yet they shall fear, and they shall be -ashamed together. - -44:12 The smith with the tongs both worketh in the coals, and -fashioneth it with hammers, and worketh it with the strength of his -arms: yea, he is hungry, and his strength faileth: he drinketh no -water, and is faint. - -44:13 The carpenter stretcheth out his rule; he marketh it out with a -line; he fitteth it with planes, and he marketh it out with the -compass, and maketh it after the figure of a man, according to the -beauty of a man; that it may remain in the house. - -44:14 He heweth him down cedars, and taketh the cypress and the oak, -which he strengtheneth for himself among the trees of the forest: he -planteth an ash, and the rain doth nourish it. - -44:15 Then shall it be for a man to burn: for he will take thereof, -and warm himself; yea, he kindleth it, and baketh bread; yea, he -maketh a god, and worshippeth it; he maketh it a graven image, and -falleth down thereto. - -44:16 He burneth part thereof in the fire; with part thereof he eateth -flesh; he roasteth roast, and is satisfied: yea, he warmeth himself, -and saith, Aha, I am warm, I have seen the fire: 44:17 And the residue -thereof he maketh a god, even his graven image: he falleth down unto -it, and worshippeth it, and prayeth unto it, and saith, Deliver me; -for thou art my god. - -44:18 They have not known nor understood: for he hath shut their eyes, -that they cannot see; and their hearts, that they cannot understand. - -44:19 And none considereth in his heart, neither is there knowledge -nor understanding to say, I have burned part of it in the fire; yea, -also I have baked bread upon the coals thereof; I have roasted flesh, -and eaten it: and shall I make the residue thereof an abomination? -shall I fall down to the stock of a tree? 44:20 He feedeth on ashes: -a deceived heart hath turned him aside, that he cannot deliver his -soul, nor say, Is there not a lie in my right hand? 44:21 Remember -these, O Jacob and Israel; for thou art my servant: I have formed -thee; thou art my servant: O Israel, thou shalt not be forgotten of -me. - -44:22 I have blotted out, as a thick cloud, thy transgressions, and, -as a cloud, thy sins: return unto me; for I have redeemed thee. - -44:23 Sing, O ye heavens; for the LORD hath done it: shout, ye lower -parts of the earth: break forth into singing, ye mountains, O forest, -and every tree therein: for the LORD hath redeemed Jacob, and -glorified himself in Israel. - -44:24 Thus saith the LORD, thy redeemer, and he that formed thee from -the womb, I am the LORD that maketh all things; that stretcheth forth -the heavens alone; that spreadeth abroad the earth by myself; 44:25 -That frustrateth the tokens of the liars, and maketh diviners mad; -that turneth wise men backward, and maketh their knowledge foolish; -44:26 That confirmeth the word of his servant, and performeth the -counsel of his messengers; that saith to Jerusalem, Thou shalt be -inhabited; and to the cities of Judah, Ye shall be built, and I will -raise up the decayed places thereof: 44:27 That saith to the deep, Be -dry, and I will dry up thy rivers: 44:28 That saith of Cyrus, He is my -shepherd, and shall perform all my pleasure: even saying to Jerusalem, -Thou shalt be built; and to the temple, Thy foundation shall be laid. - -45:1 Thus saith the LORD to his anointed, to Cyrus, whose right hand I -have holden, to subdue nations before him; and I will loose the loins -of kings, to open before him the two leaved gates; and the gates shall -not be shut; 45:2 I will go before thee, and make the crooked places -straight: I will break in pieces the gates of brass, and cut in sunder -the bars of iron: 45:3 And I will give thee the treasures of darkness, -and hidden riches of secret places, that thou mayest know that I, the -LORD, which call thee by thy name, am the God of Israel. - -45:4 For Jacob my servant's sake, and Israel mine elect, I have even -called thee by thy name: I have surnamed thee, though thou hast not -known me. - -45:5 I am the LORD, and there is none else, there is no God beside me: -I girded thee, though thou hast not known me: 45:6 That they may know -from the rising of the sun, and from the west, that there is none -beside me. I am the LORD, and there is none else. - -45:7 I form the light, and create darkness: I make peace, and create -evil: I the LORD do all these things. - -45:8 Drop down, ye heavens, from above, and let the skies pour down -righteousness: let the earth open, and let them bring forth salvation, -and let righteousness spring up together; I the LORD have created it. - -45:9 Woe unto him that striveth with his Maker! Let the potsherd -strive with the potsherds of the earth. Shall the clay say to him that -fashioneth it, What makest thou? or thy work, He hath no hands? 45:10 -Woe unto him that saith unto his father, What begettest thou? or to -the woman, What hast thou brought forth? 45:11 Thus saith the LORD, -the Holy One of Israel, and his Maker, Ask me of things to come -concerning my sons, and concerning the work of my hands command ye me. - -45:12 I have made the earth, and created man upon it: I, even my -hands, have stretched out the heavens, and all their host have I -commanded. - -45:13 I have raised him up in righteousness, and I will direct all his -ways: he shall build my city, and he shall let go my captives, not for -price nor reward, saith the LORD of hosts. - -45:14 Thus saith the LORD, The labour of Egypt, and merchandise of -Ethiopia and of the Sabeans, men of stature, shall come over unto -thee, and they shall be thine: they shall come after thee; in chains -they shall come over, and they shall fall down unto thee, they shall -make supplication unto thee, saying, Surely God is in thee; and there -is none else, there is no God. - -45:15 Verily thou art a God that hidest thyself, O God of Israel, the -Saviour. - -45:16 They shall be ashamed, and also confounded, all of them: they -shall go to confusion together that are makers of idols. - -45:17 But Israel shall be saved in the LORD with an everlasting -salvation: ye shall not be ashamed nor confounded world without end. - -45:18 For thus saith the LORD that created the heavens; God himself -that formed the earth and made it; he hath established it, he created -it not in vain, he formed it to be inhabited: I am the LORD; and there -is none else. - -45:19 I have not spoken in secret, in a dark place of the earth: I -said not unto the seed of Jacob, Seek ye me in vain: I the LORD speak -righteousness, I declare things that are right. - -45:20 Assemble yourselves and come; draw near together, ye that are -escaped of the nations: they have no knowledge that set up the wood of -their graven image, and pray unto a god that cannot save. - -45:21 Tell ye, and bring them near; yea, let them take counsel -together: who hath declared this from ancient time? who hath told it -from that time? have not I the LORD? and there is no God else beside -me; a just God and a Saviour; there is none beside me. - -45:22 Look unto me, and be ye saved, all the ends of the earth: for I -am God, and there is none else. - -45:23 I have sworn by myself, the word is gone out of my mouth in -righteousness, and shall not return, That unto me every knee shall -bow, every tongue shall swear. - -45:24 Surely, shall one say, in the LORD have I righteousness and -strength: even to him shall men come; and all that are incensed -against him shall be ashamed. - -45:25 In the LORD shall all the seed of Israel be justified, and shall -glory. - -46:1 Bel boweth down, Nebo stoopeth, their idols were upon the beasts, -and upon the cattle: your carriages were heavy loaden; they are a -burden to the weary beast. - -46:2 They stoop, they bow down together; they could not deliver the -burden, but themselves are gone into captivity. - -46:3 Hearken unto me, O house of Jacob, and all the remnant of the -house of Israel, which are borne by me from the belly, which are -carried from the womb: 46:4 And even to your old age I am he; and even -to hoar hairs will I carry you: I have made, and I will bear; even I -will carry, and will deliver you. - -46:5 To whom will ye liken me, and make me equal, and compare me, that -we may be like? 46:6 They lavish gold out of the bag, and weigh -silver in the balance, and hire a goldsmith; and he maketh it a god: -they fall down, yea, they worship. - -46:7 They bear him upon the shoulder, they carry him, and set him in -his place, and he standeth; from his place shall he not remove: yea, -one shall cry unto him, yet can he not answer, nor save him out of his -trouble. - -46:8 Remember this, and shew yourselves men: bring it again to mind, O -ye transgressors. - -46:9 Remember the former things of old: for I am God, and there is -none else; I am God, and there is none like me, 46:10 Declaring the -end from the beginning, and from ancient times the things that are not -yet done, saying, My counsel shall stand, and I will do all my -pleasure: 46:11 Calling a ravenous bird from the east, the man that -executeth my counsel from a far country: yea, I have spoken it, I will -also bring it to pass; I have purposed it, I will also do it. - -46:12 Hearken unto me, ye stouthearted, that are far from -righteousness: 46:13 I bring near my righteousness; it shall not be -far off, and my salvation shall not tarry: and I will place salvation -in Zion for Israel my glory. - -47:1 Come down, and sit in the dust, O virgin daughter of Babylon, sit -on the ground: there is no throne, O daughter of the Chaldeans: for -thou shalt no more be called tender and delicate. - -47:2 Take the millstones, and grind meal: uncover thy locks, make bare -the leg, uncover the thigh, pass over the rivers. - -47:3 Thy nakedness shall be uncovered, yea, thy shame shall be seen: I -will take vengeance, and I will not meet thee as a man. - -47:4 As for our redeemer, the LORD of hosts is his name, the Holy One -of Israel. - -47:5 Sit thou silent, and get thee into darkness, O daughter of the -Chaldeans: for thou shalt no more be called, The lady of kingdoms. - -47:6 I was wroth with my people, I have polluted mine inheritance, and -given them into thine hand: thou didst shew them no mercy; upon the -ancient hast thou very heavily laid thy yoke. - -47:7 And thou saidst, I shall be a lady for ever: so that thou didst -not lay these things to thy heart, neither didst remember the latter -end of it. - -47:8 Therefore hear now this, thou that art given to pleasures, that -dwellest carelessly, that sayest in thine heart, I am, and none else -beside me; I shall not sit as a widow, neither shall I know the loss -of children: 47:9 But these two things shall come to thee in a moment -in one day, the loss of children, and widowhood: they shall come upon -thee in their perfection for the multitude of thy sorceries, and for -the great abundance of thine enchantments. - -47:10 For thou hast trusted in thy wickedness: thou hast said, None -seeth me. Thy wisdom and thy knowledge, it hath perverted thee; and -thou hast said in thine heart, I am, and none else beside me. - -47:11 Therefore shall evil come upon thee; thou shalt not know from -whence it riseth: and mischief shall fall upon thee; thou shalt not be -able to put it off: and desolation shall come upon thee suddenly, -which thou shalt not know. - -47:12 Stand now with thine enchantments, and with the multitude of thy -sorceries, wherein thou hast laboured from thy youth; if so be thou -shalt be able to profit, if so be thou mayest prevail. - -47:13 Thou art wearied in the multitude of thy counsels. Let now the -astrologers, the stargazers, the monthly prognosticators, stand up, -and save thee from these things that shall come upon thee. - -47:14 Behold, they shall be as stubble; the fire shall burn them; they -shall not deliver themselves from the power of the flame: there shall -not be a coal to warm at, nor fire to sit before it. - -47:15 Thus shall they be unto thee with whom thou hast laboured, even -thy merchants, from thy youth: they shall wander every one to his -quarter; none shall save thee. - -48:1 Hear ye this, O house of Jacob, which are called by the name of -Israel, and are come forth out of the waters of Judah, which swear by -the name of the LORD, and make mention of the God of Israel, but not -in truth, nor in righteousness. - -48:2 For they call themselves of the holy city, and stay themselves -upon the God of Israel; The LORD of hosts is his name. - -48:3 I have declared the former things from the beginning; and they -went forth out of my mouth, and I shewed them; I did them suddenly, -and they came to pass. - -48:4 Because I knew that thou art obstinate, and thy neck is an iron -sinew, and thy brow brass; 48:5 I have even from the beginning -declared it to thee; before it came to pass I shewed it thee: lest -thou shouldest say, Mine idol hath done them, and my graven image, and -my molten image, hath commanded them. - -48:6 Thou hast heard, see all this; and will not ye declare it? I have -shewed thee new things from this time, even hidden things, and thou -didst not know them. - -48:7 They are created now, and not from the beginning; even before the -day when thou heardest them not; lest thou shouldest say, Behold, I -knew them. - -48:8 Yea, thou heardest not; yea, thou knewest not; yea, from that -time that thine ear was not opened: for I knew that thou wouldest deal -very treacherously, and wast called a transgressor from the womb. - -48:9 For my name's sake will I defer mine anger, and for my praise -will I refrain for thee, that I cut thee not off. - -48:10 Behold, I have refined thee, but not with silver; I have chosen -thee in the furnace of affliction. - -48:11 For mine own sake, even for mine own sake, will I do it: for how -should my name be polluted? and I will not give my glory unto another. - -48:12 Hearken unto me, O Jacob and Israel, my called; I am he; I am -the first, I also am the last. - -48:13 Mine hand also hath laid the foundation of the earth, and my -right hand hath spanned the heavens: when I call unto them, they stand -up together. - -48:14 All ye, assemble yourselves, and hear; which among them hath -declared these things? The LORD hath loved him: he will do his -pleasure on Babylon, and his arm shall be on the Chaldeans. - -48:15 I, even I, have spoken; yea, I have called him: I have brought -him, and he shall make his way prosperous. - -48:16 Come ye near unto me, hear ye this; I have not spoken in secret -from the beginning; from the time that it was, there am I: and now the -Lord GOD, and his Spirit, hath sent me. - -48:17 Thus saith the LORD, thy Redeemer, the Holy One of Israel; I am -the LORD thy God which teacheth thee to profit, which leadeth thee by -the way that thou shouldest go. - -48:18 O that thou hadst hearkened to my commandments! then had thy -peace been as a river, and thy righteousness as the waves of the sea: -48:19 Thy seed also had been as the sand, and the offspring of thy -bowels like the gravel thereof; his name should not have been cut off -nor destroyed from before me. - -48:20 Go ye forth of Babylon, flee ye from the Chaldeans, with a voice -of singing declare ye, tell this, utter it even to the end of the -earth; say ye, The LORD hath redeemed his servant Jacob. - -48:21 And they thirsted not when he led them through the deserts: he -caused the waters to flow out of the rock for them: he clave the rock -also, and the waters gushed out. - -48:22 There is no peace, saith the LORD, unto the wicked. - -49:1 Listen, O isles, unto me; and hearken, ye people, from far; The -LORD hath called me from the womb; from the bowels of my mother hath -he made mention of my name. - -49:2 And he hath made my mouth like a sharp sword; in the shadow of -his hand hath he hid me, and made me a polished shaft; in his quiver -hath he hid me; 49:3 And said unto me, Thou art my servant, O Israel, -in whom I will be glorified. - -49:4 Then I said, I have laboured in vain, I have spent my strength -for nought, and in vain: yet surely my judgment is with the LORD, and -my work with my God. - -49:5 And now, saith the LORD that formed me from the womb to be his -servant, to bring Jacob again to him, Though Israel be not gathered, -yet shall I be glorious in the eyes of the LORD, and my God shall be -my strength. - -49:6 And he said, It is a light thing that thou shouldest be my -servant to raise up the tribes of Jacob, and to restore the preserved -of Israel: I will also give thee for a light to the Gentiles, that -thou mayest be my salvation unto the end of the earth. - -49:7 Thus saith the LORD, the Redeemer of Israel, and his Holy One, to -him whom man despiseth, to him whom the nation abhorreth, to a servant -of rulers, Kings shall see and arise, princes also shall worship, -because of the LORD that is faithful, and the Holy One of Israel, and -he shall choose thee. - -49:8 Thus saith the LORD, In an acceptable time have I heard thee, and -in a day of salvation have I helped thee: and I will preserve thee, -and give thee for a covenant of the people, to establish the earth, to -cause to inherit the desolate heritages; 49:9 That thou mayest say to -the prisoners, Go forth; to them that are in darkness, Shew -yourselves. They shall feed in the ways, and their pastures shall be -in all high places. - -49:10 They shall not hunger nor thirst; neither shall the heat nor sun -smite them: for he that hath mercy on them shall lead them, even by -the springs of water shall he guide them. - -49:11 And I will make all my mountains a way, and my highways shall be -exalted. - -49:12 Behold, these shall come from far: and, lo, these from the north -and from the west; and these from the land of Sinim. - -49:13 Sing, O heavens; and be joyful, O earth; and break forth into -singing, O mountains: for the LORD hath comforted his people, and will -have mercy upon his afflicted. - -49:14 But Zion said, The LORD hath forsaken me, and my Lord hath -forgotten me. - -49:15 Can a woman forget her sucking child, that she should not have -compassion on the son of her womb? yea, they may forget, yet will I -not forget thee. - -49:16 Behold, I have graven thee upon the palms of my hands; thy walls -are continually before me. - -49:17 Thy children shall make haste; thy destroyers and they that made -thee waste shall go forth of thee. - -49:18 Lift up thine eyes round about, and behold: all these gather -themselves together, and come to thee. As I live, saith the LORD, thou -shalt surely clothe thee with them all, as with an ornament, and bind -them on thee, as a bride doeth. - -49:19 For thy waste and thy desolate places, and the land of thy -destruction, shall even now be too narrow by reason of the -inhabitants, and they that swallowed thee up shall be far away. - -49:20 The children which thou shalt have, after thou hast lost the -other, shall say again in thine ears, The place is too strait for me: -give place to me that I may dwell. - -49:21 Then shalt thou say in thine heart, Who hath begotten me these, -seeing I have lost my children, and am desolate, a captive, and -removing to and fro? and who hath brought up these? Behold, I was left -alone; these, where had they been? 49:22 Thus saith the Lord GOD, -Behold, I will lift up mine hand to the Gentiles, and set up my -standard to the people: and they shall bring thy sons in their arms, -and thy daughters shall be carried upon their shoulders. - -49:23 And kings shall be thy nursing fathers, and their queens thy -nursing mothers: they shall bow down to thee with their face toward -the earth, and lick up the dust of thy feet; and thou shalt know that -I am the LORD: for they shall not be ashamed that wait for me. - -49:24 Shall the prey be taken from the mighty, or the lawful captive -delivered? 49:25 But thus saith the LORD, Even the captives of the -mighty shall be taken away, and the prey of the terrible shall be -delivered: for I will contend with him that contendeth with thee, and -I will save thy children. - -49:26 And I will feed them that oppress thee with their own flesh; and -they shall be drunken with their own blood, as with sweet wine: and -all flesh shall know that I the LORD am thy Saviour and thy Redeemer, -the mighty One of Jacob. - -50:1 Thus saith the LORD, Where is the bill of your mother's -divorcement, whom I have put away? or which of my creditors is it to -whom I have sold you? Behold, for your iniquities have ye sold -yourselves, and for your transgressions is your mother put away. - -50:2 Wherefore, when I came, was there no man? when I called, was -there none to answer? Is my hand shortened at all, that it cannot -redeem? or have I no power to deliver? behold, at my rebuke I dry up -the sea, I make the rivers a wilderness: their fish stinketh, because -there is no water, and dieth for thirst. - -50:3 I clothe the heavens with blackness, and I make sackcloth their -covering. - -50:4 The Lord GOD hath given me the tongue of the learned, that I -should know how to speak a word in season to him that is weary: he -wakeneth morning by morning, he wakeneth mine ear to hear as the -learned. - -50:5 The Lord GOD hath opened mine ear, and I was not rebellious, -neither turned away back. - -50:6 I gave my back to the smiters, and my cheeks to them that plucked -off the hair: I hid not my face from shame and spitting. - -50:7 For the Lord GOD will help me; therefore shall I not be -confounded: therefore have I set my face like a flint, and I know that -I shall not be ashamed. - -50:8 He is near that justifieth me; who will contend with me? let us -stand together: who is mine adversary? let him come near to me. - -50:9 Behold, the Lord GOD will help me; who is he that shall condemn -me? lo, they all shall wax old as a garment; the moth shall eat them -up. - -50:10 Who is among you that feareth the LORD, that obeyeth the voice -of his servant, that walketh in darkness, and hath no light? let him -trust in the name of the LORD, and stay upon his God. - -50:11 Behold, all ye that kindle a fire, that compass yourselves about -with sparks: walk in the light of your fire, and in the sparks that ye -have kindled. This shall ye have of mine hand; ye shall lie down in -sorrow. - -51:1 Hearken to me, ye that follow after righteousness, ye that seek -the LORD: look unto the rock whence ye are hewn, and to the hole of -the pit whence ye are digged. - -51:2 Look unto Abraham your father, and unto Sarah that bare you: for -I called him alone, and blessed him, and increased him. - -51:3 For the LORD shall comfort Zion: he will comfort all her waste -places; and he will make her wilderness like Eden, and her desert like -the garden of the LORD; joy and gladness shall be found therein, -thanksgiving, and the voice of melody. - -51:4 Hearken unto me, my people; and give ear unto me, O my nation: -for a law shall proceed from me, and I will make my judgment to rest -for a light of the people. - -51:5 My righteousness is near; my salvation is gone forth, and mine -arms shall judge the people; the isles shall wait upon me, and on mine -arm shall they trust. - -51:6 Lift up your eyes to the heavens, and look upon the earth -beneath: for the heavens shall vanish away like smoke, and the earth -shall wax old like a garment, and they that dwell therein shall die in -like manner: but my salvation shall be for ever, and my righteousness -shall not be abolished. - -51:7 Hearken unto me, ye that know righteousness, the people in whose -heart is my law; fear ye not the reproach of men, neither be ye afraid -of their revilings. - -51:8 For the moth shall eat them up like a garment, and the worm shall -eat them like wool: but my righteousness shall be for ever, and my -salvation from generation to generation. - -51:9 Awake, awake, put on strength, O arm of the LORD; awake, as in -the ancient days, in the generations of old. Art thou not it that hath -cut Rahab, and wounded the dragon? 51:10 Art thou not it which hath -dried the sea, the waters of the great deep; that hath made the depths -of the sea a way for the ransomed to pass over? 51:11 Therefore the -redeemed of the LORD shall return, and come with singing unto Zion; -and everlasting joy shall be upon their head: they shall obtain -gladness and joy; and sorrow and mourning shall flee away. - -51:12 I, even I, am he that comforteth you: who art thou, that thou -shouldest be afraid of a man that shall die, and of the son of man -which shall be made as grass; 51:13 And forgettest the LORD thy maker, -that hath stretched forth the heavens, and laid the foundations of the -earth; and hast feared continually every day because of the fury of -the oppressor, as if he were ready to destroy? and where is the fury -of the oppressor? 51:14 The captive exile hasteneth that he may be -loosed, and that he should not die in the pit, nor that his bread -should fail. - -51:15 But I am the LORD thy God, that divided the sea, whose waves -roared: The LORD of hosts is his name. - -51:16 And I have put my words in thy mouth, and I have covered thee in -the shadow of mine hand, that I may plant the heavens, and lay the -foundations of the earth, and say unto Zion, Thou art my people. - -51:17 Awake, awake, stand up, O Jerusalem, which hast drunk at the -hand of the LORD the cup of his fury; thou hast drunken the dregs of -the cup of trembling, and wrung them out. - -51:18 There is none to guide her among all the sons whom she hath -brought forth; neither is there any that taketh her by the hand of all -the sons that she hath brought up. - -51:19 These two things are come unto thee; who shall be sorry for -thee? desolation, and destruction, and the famine, and the sword: by -whom shall I comfort thee? 51:20 Thy sons have fainted, they lie at -the head of all the streets, as a wild bull in a net: they are full of -the fury of the LORD, the rebuke of thy God. - -51:21 Therefore hear now this, thou afflicted, and drunken, but not -with wine: 51:22 Thus saith thy Lord the LORD, and thy God that -pleadeth the cause of his people, Behold, I have taken out of thine -hand the cup of trembling, even the dregs of the cup of my fury; thou -shalt no more drink it again: 51:23 But I will put it into the hand of -them that afflict thee; which have said to thy soul, Bow down, that we -may go over: and thou hast laid thy body as the ground, and as the -street, to them that went over. - -52:1 Awake, awake; put on thy strength, O Zion; put on thy beautiful -garments, O Jerusalem, the holy city: for henceforth there shall no -more come into thee the uncircumcised and the unclean. - -52:2 Shake thyself from the dust; arise, and sit down, O Jerusalem: -loose thyself from the bands of thy neck, O captive daughter of Zion. - -52:3 For thus saith the LORD, Ye have sold yourselves for nought; and -ye shall be redeemed without money. - -52:4 For thus saith the Lord GOD, My people went down aforetime into -Egypt to sojourn there; and the Assyrian oppressed them without cause. - -52:5 Now therefore, what have I here, saith the LORD, that my people -is taken away for nought? they that rule over them make them to howl, -saith the LORD; and my name continually every day is blasphemed. - -52:6 Therefore my people shall know my name: therefore they shall know -in that day that I am he that doth speak: behold, it is I. - -52:7 How beautiful upon the mountains are the feet of him that -bringeth good tidings, that publisheth peace; that bringeth good -tidings of good, that publisheth salvation; that saith unto Zion, Thy -God reigneth! 52:8 Thy watchmen shall lift up the voice; with the -voice together shall they sing: for they shall see eye to eye, when -the LORD shall bring again Zion. - -52:9 Break forth into joy, sing together, ye waste places of -Jerusalem: for the LORD hath comforted his people, he hath redeemed -Jerusalem. - -52:10 The LORD hath made bare his holy arm in the eyes of all the -nations; and all the ends of the earth shall see the salvation of our -God. - -52:11 Depart ye, depart ye, go ye out from thence, touch no unclean -thing; go ye out of the midst of her; be ye clean, that bear the -vessels of the LORD. - -52:12 For ye shall not go out with haste, nor go by flight: for the -LORD will go before you; and the God of Israel will be your rereward. - -52:13 Behold, my servant shall deal prudently, he shall be exalted and -extolled, and be very high. - -52:14 As many were astonied at thee; his visage was so marred more -than any man, and his form more than the sons of men: 52:15 So shall -he sprinkle many nations; the kings shall shut their mouths at him: -for that which had not been told them shall they see; and that which -they had not heard shall they consider. - -53:1 Who hath believed our report? and to whom is the arm of the LORD -revealed? 53:2 For he shall grow up before him as a tender plant, and -as a root out of a dry ground: he hath no form nor comeliness; and -when we shall see him, there is no beauty that we should desire him. - -53:3 He is despised and rejected of men; a man of sorrows, and -acquainted with grief: and we hid as it were our faces from him; he -was despised, and we esteemed him not. - -53:4 Surely he hath borne our griefs, and carried our sorrows: yet we -did esteem him stricken, smitten of God, and afflicted. - -53:5 But he was wounded for our transgressions, he was bruised for our -iniquities: the chastisement of our peace was upon him; and with his -stripes we are healed. - -53:6 All we like sheep have gone astray; we have turned every one to -his own way; and the LORD hath laid on him the iniquity of us all. - -53:7 He was oppressed, and he was afflicted, yet he opened not his -mouth: he is brought as a lamb to the slaughter, and as a sheep before -her shearers is dumb, so he openeth not his mouth. - -53:8 He was taken from prison and from judgment: and who shall declare -his generation? for he was cut off out of the land of the living: for -the transgression of my people was he stricken. - -53:9 And he made his grave with the wicked, and with the rich in his -death; because he had done no violence, neither was any deceit in his -mouth. - -53:10 Yet it pleased the LORD to bruise him; he hath put him to grief: -when thou shalt make his soul an offering for sin, he shall see his -seed, he shall prolong his days, and the pleasure of the LORD shall -prosper in his hand. - -53:11 He shall see of the travail of his soul, and shall be satisfied: -by his knowledge shall my righteous servant justify many; for he shall -bear their iniquities. - -53:12 Therefore will I divide him a portion with the great, and he -shall divide the spoil with the strong; because he hath poured out his -soul unto death: and he was numbered with the transgressors; and he -bare the sin of many, and made intercession for the transgressors. - -54:1 Sing, O barren, thou that didst not bear; break forth into -singing, and cry aloud, thou that didst not travail with child: for -more are the children of the desolate than the children of the married -wife, saith the LORD. - -54:2 Enlarge the place of thy tent, and let them stretch forth the -curtains of thine habitations: spare not, lengthen thy cords, and -strengthen thy stakes; 54:3 For thou shalt break forth on the right -hand and on the left; and thy seed shall inherit the Gentiles, and -make the desolate cities to be inhabited. - -54:4 Fear not; for thou shalt not be ashamed: neither be thou -confounded; for thou shalt not be put to shame: for thou shalt forget -the shame of thy youth, and shalt not remember the reproach of thy -widowhood any more. - -54:5 For thy Maker is thine husband; the LORD of hosts is his name; -and thy Redeemer the Holy One of Israel; The God of the whole earth -shall he be called. - -54:6 For the LORD hath called thee as a woman forsaken and grieved in -spirit, and a wife of youth, when thou wast refused, saith thy God. - -54:7 For a small moment have I forsaken thee; but with great mercies -will I gather thee. - -54:8 In a little wrath I hid my face from thee for a moment; but with -everlasting kindness will I have mercy on thee, saith the LORD thy -Redeemer. - -54:9 For this is as the waters of Noah unto me: for as I have sworn -that the waters of Noah should no more go over the earth; so have I -sworn that I would not be wroth with thee, nor rebuke thee. - -54:10 For the mountains shall depart, and the hills be removed; but my -kindness shall not depart from thee, neither shall the covenant of my -peace be removed, saith the LORD that hath mercy on thee. - -54:11 O thou afflicted, tossed with tempest, and not comforted, -behold, I will lay thy stones with fair colours, and lay thy -foundations with sapphires. - -54:12 And I will make thy windows of agates, and thy gates of -carbuncles, and all thy borders of pleasant stones. - -54:13 And all thy children shall be taught of the LORD; and great -shall be the peace of thy children. - -54:14 In righteousness shalt thou be established: thou shalt be far -from oppression; for thou shalt not fear: and from terror; for it -shall not come near thee. - -54:15 Behold, they shall surely gather together, but not by me: -whosoever shall gather together against thee shall fall for thy sake. - -54:16 Behold, I have created the smith that bloweth the coals in the -fire, and that bringeth forth an instrument for his work; and I have -created the waster to destroy. - -54:17 No weapon that is formed against thee shall prosper; and every -tongue that shall rise against thee in judgment thou shalt condemn. -This is the heritage of the servants of the LORD, and their -righteousness is of me, saith the LORD. - -55:1 Ho, every one that thirsteth, come ye to the waters, and he that -hath no money; come ye, buy, and eat; yea, come, buy wine and milk -without money and without price. - -55:2 Wherefore do ye spend money for that which is not bread? and your -labour for that which satisfieth not? hearken diligently unto me, and -eat ye that which is good, and let your soul delight itself in -fatness. - -55:3 Incline your ear, and come unto me: hear, and your soul shall -live; and I will make an everlasting covenant with you, even the sure -mercies of David. - -55:4 Behold, I have given him for a witness to the people, a leader -and commander to the people. - -55:5 Behold, thou shalt call a nation that thou knowest not, and -nations that knew not thee shall run unto thee because of the LORD thy -God, and for the Holy One of Israel; for he hath glorified thee. - -55:6 Seek ye the LORD while he may be found, call ye upon him while he -is near: 55:7 Let the wicked forsake his way, and the unrighteous man -his thoughts: and let him return unto the LORD, and he will have mercy -upon him; and to our God, for he will abundantly pardon. - -55:8 For my thoughts are not your thoughts, neither are your ways my -ways, saith the LORD. - -55:9 For as the heavens are higher than the earth, so are my ways -higher than your ways, and my thoughts than your thoughts. - -55:10 For as the rain cometh down, and the snow from heaven, and -returneth not thither, but watereth the earth, and maketh it bring -forth and bud, that it may give seed to the sower, and bread to the -eater: 55:11 So shall my word be that goeth forth out of my mouth: it -shall not return unto me void, but it shall accomplish that which I -please, and it shall prosper in the thing whereto I sent it. - -55:12 For ye shall go out with joy, and be led forth with peace: the -mountains and the hills shall break forth before you into singing, and -all the trees of the field shall clap their hands. - -55:13 Instead of the thorn shall come up the fir tree, and instead of -the brier shall come up the myrtle tree: and it shall be to the LORD -for a name, for an everlasting sign that shall not be cut off. - -56:1 Thus saith the LORD, Keep ye judgment, and do justice: for my -salvation is near to come, and my righteousness to be revealed. - -56:2 Blessed is the man that doeth this, and the son of man that -layeth hold on it; that keepeth the sabbath from polluting it, and -keepeth his hand from doing any evil. - -56:3 Neither let the son of the stranger, that hath joined himself to -the LORD, speak, saying, The LORD hath utterly separated me from his -people: neither let the eunuch say, Behold, I am a dry tree. - -56:4 For thus saith the LORD unto the eunuchs that keep my sabbaths, -and choose the things that please me, and take hold of my covenant; -56:5 Even unto them will I give in mine house and within my walls a -place and a name better than of sons and of daughters: I will give -them an everlasting name, that shall not be cut off. - -56:6 Also the sons of the stranger, that join themselves to the LORD, -to serve him, and to love the name of the LORD, to be his servants, -every one that keepeth the sabbath from polluting it, and taketh hold -of my covenant; 56:7 Even them will I bring to my holy mountain, and -make them joyful in my house of prayer: their burnt offerings and -their sacrifices shall be accepted upon mine altar; for mine house -shall be called an house of prayer for all people. - -56:8 The Lord GOD, which gathereth the outcasts of Israel saith, Yet -will I gather others to him, beside those that are gathered unto him. - -56:9 All ye beasts of the field, come to devour, yea, all ye beasts in -the forest. - -56:10 His watchmen are blind: they are all ignorant, they are all dumb -dogs, they cannot bark; sleeping, lying down, loving to slumber. - -56:11 Yea, they are greedy dogs which can never have enough, and they -are shepherds that cannot understand: they all look to their own way, -every one for his gain, from his quarter. - -56:12 Come ye, say they, I will fetch wine, and we will fill ourselves -with strong drink; and to morrow shall be as this day, and much more -abundant. - -57:1 The righteous perisheth, and no man layeth it to heart: and -merciful men are taken away, none considering that the righteous is -taken away from the evil to come. - -57:2 He shall enter into peace: they shall rest in their beds, each -one walking in his uprightness. - -57:3 But draw near hither, ye sons of the sorceress, the seed of the -adulterer and the whore. - -57:4 Against whom do ye sport yourselves? against whom make ye a wide -mouth, and draw out the tongue? are ye not children of transgression, -a seed of falsehood. - -57:5 Enflaming yourselves with idols under every green tree, slaying -the children in the valleys under the clifts of the rocks? 57:6 Among -the smooth stones of the stream is thy portion; they, they are thy -lot: even to them hast thou poured a drink offering, thou hast offered -a meat offering. Should I receive comfort in these? 57:7 Upon a lofty -and high mountain hast thou set thy bed: even thither wentest thou up -to offer sacrifice. - -57:8 Behind the doors also and the posts hast thou set up thy -remembrance: for thou hast discovered thyself to another than me, and -art gone up; thou hast enlarged thy bed, and made thee a covenant with -them; thou lovedst their bed where thou sawest it. - -57:9 And thou wentest to the king with ointment, and didst increase -thy perfumes, and didst send thy messengers far off, and didst debase -thyself even unto hell. - -57:10 Thou art wearied in the greatness of thy way; yet saidst thou -not, There is no hope: thou hast found the life of thine hand; -therefore thou wast not grieved. - -57:11 And of whom hast thou been afraid or feared, that thou hast -lied, and hast not remembered me, nor laid it to thy heart? have not I -held my peace even of old, and thou fearest me not? 57:12 I will -declare thy righteousness, and thy works; for they shall not profit -thee. - -57:13 When thou criest, let thy companies deliver thee; but the wind -shall carry them all away; vanity shall take them: but he that putteth -his trust in me shall possess the land, and shall inherit my holy -mountain; 57:14 And shall say, Cast ye up, cast ye up, prepare the -way, take up the stumblingblock out of the way of my people. - -57:15 For thus saith the high and lofty One that inhabiteth eternity, -whose name is Holy; I dwell in the high and holy place, with him also -that is of a contrite and humble spirit, to revive the spirit of the -humble, and to revive the heart of the contrite ones. - -57:16 For I will not contend for ever, neither will I be always wroth: -for the spirit should fail before me, and the souls which I have made. - -57:17 For the iniquity of his covetousness was I wroth, and smote him: -I hid me, and was wroth, and he went on frowardly in the way of his -heart. - -57:18 I have seen his ways, and will heal him: I will lead him also, -and restore comforts unto him and to his mourners. - -57:19 I create the fruit of the lips; Peace, peace to him that is far -off, and to him that is near, saith the LORD; and I will heal him. - -57:20 But the wicked are like the troubled sea, when it cannot rest, -whose waters cast up mire and dirt. - -57:21 There is no peace, saith my God, to the wicked. - -58:1 Cry aloud, spare not, lift up thy voice like a trumpet, and shew -my people their transgression, and the house of Jacob their sins. - -58:2 Yet they seek me daily, and delight to know my ways, as a nation -that did righteousness, and forsook not the ordinance of their God: -they ask of me the ordinances of justice; they take delight in -approaching to God. - -58:3 Wherefore have we fasted, say they, and thou seest not? wherefore -have we afflicted our soul, and thou takest no knowledge? Behold, in -the day of your fast ye find pleasure, and exact all your labours. - -58:4 Behold, ye fast for strife and debate, and to smite with the fist -of wickedness: ye shall not fast as ye do this day, to make your voice -to be heard on high. - -58:5 Is it such a fast that I have chosen? a day for a man to afflict -his soul? is it to bow down his head as a bulrush, and to spread -sackcloth and ashes under him? wilt thou call this a fast, and an -acceptable day to the LORD? 58:6 Is not this the fast that I have -chosen? to loose the bands of wickedness, to undo the heavy burdens, -and to let the oppressed go free, and that ye break every yoke? 58:7 -Is it not to deal thy bread to the hungry, and that thou bring the -poor that are cast out to thy house? when thou seest the naked, that -thou cover him; and that thou hide not thyself from thine own flesh? -58:8 Then shall thy light break forth as the morning, and thine health -shall spring forth speedily: and thy righteousness shall go before -thee; the glory of the LORD shall be thy rereward. - -58:9 Then shalt thou call, and the LORD shall answer; thou shalt cry, -and he shall say, Here I am. If thou take away from the midst of thee -the yoke, the putting forth of the finger, and speaking vanity; 58:10 -And if thou draw out thy soul to the hungry, and satisfy the afflicted -soul; then shall thy light rise in obscurity, and thy darkness be as -the noon day: 58:11 And the LORD shall guide thee continually, and -satisfy thy soul in drought, and make fat thy bones: and thou shalt be -like a watered garden, and like a spring of water, whose waters fail -not. - -58:12 And they that shall be of thee shall build the old waste places: -thou shalt raise up the foundations of many generations; and thou -shalt be called, The repairer of the breach, The restorer of paths to -dwell in. - -58:13 If thou turn away thy foot from the sabbath, from doing thy -pleasure on my holy day; and call the sabbath a delight, the holy of -the LORD, honourable; and shalt honour him, not doing thine own ways, -nor finding thine own pleasure, nor speaking thine own words: 58:14 -Then shalt thou delight thyself in the LORD; and I will cause thee to -ride upon the high places of the earth, and feed thee with the -heritage of Jacob thy father: for the mouth of the LORD hath spoken -it. - -59:1 Behold, the LORD's hand is not shortened, that it cannot save; -neither his ear heavy, that it cannot hear: 59:2 But your iniquities -have separated between you and your God, and your sins have hid his -face from you, that he will not hear. - -59:3 For your hands are defiled with blood, and your fingers with -iniquity; your lips have spoken lies, your tongue hath muttered -perverseness. - -59:4 None calleth for justice, nor any pleadeth for truth: they trust -in vanity, and speak lies; they conceive mischief, and bring forth -iniquity. - -59:5 They hatch cockatrice' eggs, and weave the spider's web: he that -eateth of their eggs dieth, and that which is crushed breaketh out -into a viper. - -59:6 Their webs shall not become garments, neither shall they cover -themselves with their works: their works are works of iniquity, and -the act of violence is in their hands. - -59:7 Their feet run to evil, and they make haste to shed innocent -blood: their thoughts are thoughts of iniquity; wasting and -destruction are in their paths. - -59:8 The way of peace they know not; and there is no judgment in their -goings: they have made them crooked paths: whosoever goeth therein -shall not know peace. - -59:9 Therefore is judgment far from us, neither doth justice overtake -us: we wait for light, but behold obscurity; for brightness, but we -walk in darkness. - -59:10 We grope for the wall like the blind, and we grope as if we had -no eyes: we stumble at noon day as in the night; we are in desolate -places as dead men. - -59:11 We roar all like bears, and mourn sore like doves: we look for -judgment, but there is none; for salvation, but it is far off from us. - -59:12 For our transgressions are multiplied before thee, and our sins -testify against us: for our transgressions are with us; and as for our -iniquities, we know them; 59:13 In transgressing and lying against the -LORD, and departing away from our God, speaking oppression and revolt, -conceiving and uttering from the heart words of falsehood. - -59:14 And judgment is turned away backward, and justice standeth afar -off: for truth is fallen in the street, and equity cannot enter. - -59:15 Yea, truth faileth; and he that departeth from evil maketh -himself a prey: and the LORD saw it, and it displeased him that there -was no judgment. - -59:16 And he saw that there was no man, and wondered that there was no -intercessor: therefore his arm brought salvation unto him; and his -righteousness, it sustained him. - -59:17 For he put on righteousness as a breastplate, and an helmet of -salvation upon his head; and he put on the garments of vengeance for -clothing, and was clad with zeal as a cloak. - -59:18 According to their deeds, accordingly he will repay, fury to his -adversaries, recompence to his enemies; to the islands he will repay -recompence. - -59:19 So shall they fear the name of the LORD from the west, and his -glory from the rising of the sun. When the enemy shall come in like a -flood, the Spirit of the LORD shall lift up a standard against him. - -59:20 And the Redeemer shall come to Zion, and unto them that turn -from transgression in Jacob, saith the LORD. - -59:21 As for me, this is my covenant with them, saith the LORD; My -spirit that is upon thee, and my words which I have put in thy mouth, -shall not depart out of thy mouth, nor out of the mouth of thy seed, -nor out of the mouth of thy seed's seed, saith the LORD, from -henceforth and for ever. - -60:1 Arise, shine; for thy light is come, and the glory of the LORD is -risen upon thee. - -60:2 For, behold, the darkness shall cover the earth, and gross -darkness the people: but the LORD shall arise upon thee, and his glory -shall be seen upon thee. - -60:3 And the Gentiles shall come to thy light, and kings to the -brightness of thy rising. - -60:4 Lift up thine eyes round about, and see: all they gather -themselves together, they come to thee: thy sons shall come from far, -and thy daughters shall be nursed at thy side. - -60:5 Then thou shalt see, and flow together, and thine heart shall -fear, and be enlarged; because the abundance of the sea shall be -converted unto thee, the forces of the Gentiles shall come unto thee. - -60:6 The multitude of camels shall cover thee, the dromedaries of -Midian and Ephah; all they from Sheba shall come: they shall bring -gold and incense; and they shall shew forth the praises of the LORD. - -60:7 All the flocks of Kedar shall be gathered together unto thee, the -rams of Nebaioth shall minister unto thee: they shall come up with -acceptance on mine altar, and I will glorify the house of my glory. - -60:8 Who are these that fly as a cloud, and as the doves to their -windows? 60:9 Surely the isles shall wait for me, and the ships of -Tarshish first, to bring thy sons from far, their silver and their -gold with them, unto the name of the LORD thy God, and to the Holy One -of Israel, because he hath glorified thee. - -60:10 And the sons of strangers shall build up thy walls, and their -kings shall minister unto thee: for in my wrath I smote thee, but in -my favour have I had mercy on thee. - -60:11 Therefore thy gates shall be open continually; they shall not be -shut day nor night; that men may bring unto thee the forces of the -Gentiles, and that their kings may be brought. - -60:12 For the nation and kingdom that will not serve thee shall -perish; yea, those nations shall be utterly wasted. - -60:13 The glory of Lebanon shall come unto thee, the fir tree, the -pine tree, and the box together, to beautify the place of my -sanctuary; and I will make the place of my feet glorious. - -60:14 The sons also of them that afflicted thee shall come bending -unto thee; and all they that despised thee shall bow themselves down -at the soles of thy feet; and they shall call thee; The city of the -LORD, The Zion of the Holy One of Israel. - -60:15 Whereas thou has been forsaken and hated, so that no man went -through thee, I will make thee an eternal excellency, a joy of many -generations. - -60:16 Thou shalt also suck the milk of the Gentiles, and shalt suck -the breast of kings: and thou shalt know that I the LORD am thy -Saviour and thy Redeemer, the mighty One of Jacob. - -60:17 For brass I will bring gold, and for iron I will bring silver, -and for wood brass, and for stones iron: I will also make thy officers -peace, and thine exactors righteousness. - -60:18 Violence shall no more be heard in thy land, wasting nor -destruction within thy borders; but thou shalt call thy walls -Salvation, and thy gates Praise. - -60:19 The sun shall be no more thy light by day; neither for -brightness shall the moon give light unto thee: but the LORD shall be -unto thee an everlasting light, and thy God thy glory. - -60:20 Thy sun shall no more go down; neither shall thy moon withdraw -itself: for the LORD shall be thine everlasting light, and the days of -thy mourning shall be ended. - -60:21 Thy people also shall be all righteous: they shall inherit the -land for ever, the branch of my planting, the work of my hands, that I -may be glorified. - -60:22 A little one shall become a thousand, and a small one a strong -nation: I the LORD will hasten it in his time. - -61:1 The Spirit of the Lord GOD is upon me; because the LORD hath -anointed me to preach good tidings unto the meek; he hath sent me to -bind up the brokenhearted, to proclaim liberty to the captives, and -the opening of the prison to them that are bound; 61:2 To proclaim the -acceptable year of the LORD, and the day of vengeance of our God; to -comfort all that mourn; 61:3 To appoint unto them that mourn in Zion, -to give unto them beauty for ashes, the oil of joy for mourning, the -garment of praise for the spirit of heaviness; that they might be -called trees of righteousness, the planting of the LORD, that he might -be glorified. - -61:4 And they shall build the old wastes, they shall raise up the -former desolations, and they shall repair the waste cities, the -desolations of many generations. - -61:5 And strangers shall stand and feed your flocks, and the sons of -the alien shall be your plowmen and your vinedressers. - -61:6 But ye shall be named the Priests of the LORD: men shall call you -the Ministers of our God: ye shall eat the riches of the Gentiles, and -in their glory shall ye boast yourselves. - -61:7 For your shame ye shall have double; and for confusion they shall -rejoice in their portion: therefore in their land they shall possess -the double: everlasting joy shall be unto them. - -61:8 For I the LORD love judgment, I hate robbery for burnt offering; -and I will direct their work in truth, and I will make an everlasting -covenant with them. - -61:9 And their seed shall be known among the Gentiles, and their -offspring among the people: all that see them shall acknowledge them, -that they are the seed which the LORD hath blessed. - -61:10 I will greatly rejoice in the LORD, my soul shall be joyful in -my God; for he hath clothed me with the garments of salvation, he hath -covered me with the robe of righteousness, as a bridegroom decketh -himself with ornaments, and as a bride adorneth herself with her -jewels. - -61:11 For as the earth bringeth forth her bud, and as the garden -causeth the things that are sown in it to spring forth; so the Lord -GOD will cause righteousness and praise to spring forth before all the -nations. - -62:1 For Zion's sake will I not hold my peace, and for Jerusalem's -sake I will not rest, until the righteousness thereof go forth as -brightness, and the salvation thereof as a lamp that burneth. - -62:2 And the Gentiles shall see thy righteousness, and all kings thy -glory: and thou shalt be called by a new name, which the mouth of the -LORD shall name. - -62:3 Thou shalt also be a crown of glory in the hand of the LORD, and -a royal diadem in the hand of thy God. - -62:4 Thou shalt no more be termed Forsaken; neither shall thy land any -more be termed Desolate: but thou shalt be called Hephzibah, and thy -land Beulah: for the LORD delighteth in thee, and thy land shall be -married. - -62:5 For as a young man marrieth a virgin, so shall thy sons marry -thee: and as the bridegroom rejoiceth over the bride, so shall thy God -rejoice over thee. - -62:6 I have set watchmen upon thy walls, O Jerusalem, which shall -never hold their peace day nor night: ye that make mention of the -LORD, keep not silence, 62:7 And give him no rest, till he establish, -and till he make Jerusalem a praise in the earth. - -62:8 The LORD hath sworn by his right hand, and by the arm of his -strength, Surely I will no more give thy corn to be meat for thine -enemies; and the sons of the stranger shall not drink thy wine, for -the which thou hast laboured: 62:9 But they that have gathered it -shall eat it, and praise the LORD; and they that have brought it -together shall drink it in the courts of my holiness. - -62:10 Go through, go through the gates; prepare ye the way of the -people; cast up, cast up the highway; gather out the stones; lift up a -standard for the people. - -62:11 Behold, the LORD hath proclaimed unto the end of the world, Say -ye to the daughter of Zion, Behold, thy salvation cometh; behold, his -reward is with him, and his work before him. - -62:12 And they shall call them, The holy people, The redeemed of the -LORD: and thou shalt be called, Sought out, A city not forsaken. - -63:1 Who is this that cometh from Edom, with dyed garments from -Bozrah? this that is glorious in his apparel, travelling in the -greatness of his strength? I that speak in righteousness, mighty to -save. - -63:2 Wherefore art thou red in thine apparel, and thy garments like -him that treadeth in the winefat? 63:3 I have trodden the winepress -alone; and of the people there was none with me: for I will tread them -in mine anger, and trample them in my fury; and their blood shall be -sprinkled upon my garments, and I will stain all my raiment. - -63:4 For the day of vengeance is in mine heart, and the year of my -redeemed is come. - -63:5 And I looked, and there was none to help; and I wondered that -there was none to uphold: therefore mine own arm brought salvation -unto me; and my fury, it upheld me. - -63:6 And I will tread down the people in mine anger, and make them -drunk in my fury, and I will bring down their strength to the earth. - -63:7 I will mention the lovingkindnesses of the LORD, and the praises -of the LORD, according to all that the LORD hath bestowed on us, and -the great goodness toward the house of Israel, which he hath bestowed -on them according to his mercies, and according to the multitude of -his lovingkindnesses. - -63:8 For he said, Surely they are my people, children that will not -lie: so he was their Saviour. - -63:9 In all their affliction he was afflicted, and the angel of his -presence saved them: in his love and in his pity he redeemed them; and -he bare them, and carried them all the days of old. - -63:10 But they rebelled, and vexed his holy Spirit: therefore he was -turned to be their enemy, and he fought against them. - -63:11 Then he remembered the days of old, Moses, and his people, -saying, Where is he that brought them up out of the sea with the -shepherd of his flock? where is he that put his holy Spirit within -him? 63:12 That led them by the right hand of Moses with his glorious -arm, dividing the water before them, to make himself an everlasting -name? 63:13 That led them through the deep, as an horse in the -wilderness, that they should not stumble? 63:14 As a beast goeth down -into the valley, the Spirit of the LORD caused him to rest: so didst -thou lead thy people, to make thyself a glorious name. - -63:15 Look down from heaven, and behold from the habitation of thy -holiness and of thy glory: where is thy zeal and thy strength, the -sounding of thy bowels and of thy mercies toward me? are they -restrained? 63:16 Doubtless thou art our father, though Abraham be -ignorant of us, and Israel acknowledge us not: thou, O LORD, art our -father, our redeemer; thy name is from everlasting. - -63:17 O LORD, why hast thou made us to err from thy ways, and hardened -our heart from thy fear? Return for thy servants' sake, the tribes of -thine inheritance. - -63:18 The people of thy holiness have possessed it but a little while: -our adversaries have trodden down thy sanctuary. - -63:19 We are thine: thou never barest rule over them; they were not -called by thy name. - -64:1 Oh that thou wouldest rend the heavens, that thou wouldest come -down, that the mountains might flow down at thy presence, 64:2 As when -the melting fire burneth, the fire causeth the waters to boil, to make -thy name known to thine adversaries, that the nations may tremble at -thy presence! 64:3 When thou didst terrible things which we looked -not for, thou camest down, the mountains flowed down at thy presence. - -64:4 For since the beginning of the world men have not heard, nor -perceived by the ear, neither hath the eye seen, O God, beside thee, -what he hath prepared for him that waiteth for him. - -64:5 Thou meetest him that rejoiceth and worketh righteousness, those -that remember thee in thy ways: behold, thou art wroth; for we have -sinned: in those is continuance, and we shall be saved. - -64:6 But we are all as an unclean thing, and all our righteousnesses -are as filthy rags; and we all do fade as a leaf; and our iniquities, -like the wind, have taken us away. - -64:7 And there is none that calleth upon thy name, that stirreth up -himself to take hold of thee: for thou hast hid thy face from us, and -hast consumed us, because of our iniquities. - -64:8 But now, O LORD, thou art our father; we are the clay, and thou -our potter; and we all are the work of thy hand. - -64:9 Be not wroth very sore, O LORD, neither remember iniquity for -ever: behold, see, we beseech thee, we are all thy people. - -64:10 Thy holy cities are a wilderness, Zion is a wilderness, -Jerusalem a desolation. - -64:11 Our holy and our beautiful house, where our fathers praised -thee, is burned up with fire: and all our pleasant things are laid -waste. - -64:12 Wilt thou refrain thyself for these things, O LORD? wilt thou -hold thy peace, and afflict us very sore? 65:1 I am sought of them -that asked not for me; I am found of them that sought me not: I said, -Behold me, behold me, unto a nation that was not called by my name. - -65:2 I have spread out my hands all the day unto a rebellious people, -which walketh in a way that was not good, after their own thoughts; -65:3 A people that provoketh me to anger continually to my face; that -sacrificeth in gardens, and burneth incense upon altars of brick; 65:4 -Which remain among the graves, and lodge in the monuments, which eat -swine's flesh, and broth of abominable things is in their vessels; -65:5 Which say, Stand by thyself, come not near to me; for I am holier -than thou. These are a smoke in my nose, a fire that burneth all the -day. - -65:6 Behold, it is written before me: I will not keep silence, but -will recompense, even recompense into their bosom, 65:7 Your -iniquities, and the iniquities of your fathers together, saith the -LORD, which have burned incense upon the mountains, and blasphemed me -upon the hills: therefore will I measure their former work into their -bosom. - -65:8 Thus saith the LORD, As the new wine is found in the cluster, and -one saith, Destroy it not; for a blessing is in it: so will I do for -my servants' sakes, that I may not destroy them all. - -65:9 And I will bring forth a seed out of Jacob, and out of Judah an -inheritor of my mountains: and mine elect shall inherit it, and my -servants shall dwell there. - -65:10 And Sharon shall be a fold of flocks, and the valley of Achor a -place for the herds to lie down in, for my people that have sought me. - -65:11 But ye are they that forsake the LORD, that forget my holy -mountain, that prepare a table for that troop, and that furnish the -drink offering unto that number. - -65:12 Therefore will I number you to the sword, and ye shall all bow -down to the slaughter: because when I called, ye did not answer; when -I spake, ye did not hear; but did evil before mine eyes, and did -choose that wherein I delighted not. - -65:13 Therefore thus saith the Lord GOD, Behold, my servants shall -eat, but ye shall be hungry: behold, my servants shall drink, but ye -shall be thirsty: behold, my servants shall rejoice, but ye shall be -ashamed: 65:14 Behold, my servants shall sing for joy of heart, but ye -shall cry for sorrow of heart, and shall howl for vexation of spirit. - -65:15 And ye shall leave your name for a curse unto my chosen: for the -Lord GOD shall slay thee, and call his servants by another name: 65:16 -That he who blesseth himself in the earth shall bless himself in the -God of truth; and he that sweareth in the earth shall swear by the God -of truth; because the former troubles are forgotten, and because they -are hid from mine eyes. - -65:17 For, behold, I create new heavens and a new earth: and the -former shall not be remembered, nor come into mind. - -65:18 But be ye glad and rejoice for ever in that which I create: for, -behold, I create Jerusalem a rejoicing, and her people a joy. - -65:19 And I will rejoice in Jerusalem, and joy in my people: and the -voice of weeping shall be no more heard in her, nor the voice of -crying. - -65:20 There shall be no more thence an infant of days, nor an old man -that hath not filled his days: for the child shall die an hundred -years old; but the sinner being an hundred years old shall be -accursed. - -65:21 And they shall build houses, and inhabit them; and they shall -plant vineyards, and eat the fruit of them. - -65:22 They shall not build, and another inhabit; they shall not plant, -and another eat: for as the days of a tree are the days of my people, -and mine elect shall long enjoy the work of their hands. - -65:23 They shall not labour in vain, nor bring forth for trouble; for -they are the seed of the blessed of the LORD, and their offspring with -them. - -65:24 And it shall come to pass, that before they call, I will answer; -and while they are yet speaking, I will hear. - -65:25 The wolf and the lamb shall feed together, and the lion shall -eat straw like the bullock: and dust shall be the serpent's meat. They -shall not hurt nor destroy in all my holy mountain, saith the LORD. - -66:1 Thus saith the LORD, The heaven is my throne, and the earth is my -footstool: where is the house that ye build unto me? and where is the -place of my rest? 66:2 For all those things hath mine hand made, and -all those things have been, saith the LORD: but to this man will I -look, even to him that is poor and of a contrite spirit, and trembleth -at my word. - -66:3 He that killeth an ox is as if he slew a man; he that sacrificeth -a lamb, as if he cut off a dog's neck; he that offereth an oblation, -as if he offered swine's blood; he that burneth incense, as if he -blessed an idol. - -Yea, they have chosen their own ways, and their soul delighteth in -their abominations. - -66:4 I also will choose their delusions, and will bring their fears -upon them; because when I called, none did answer; when I spake, they -did not hear: but they did evil before mine eyes, and chose that in -which I delighted not. - -66:5 Hear the word of the LORD, ye that tremble at his word; Your -brethren that hated you, that cast you out for my name's sake, said, -Let the LORD be glorified: but he shall appear to your joy, and they -shall be ashamed. - -66:6 A voice of noise from the city, a voice from the temple, a voice -of the LORD that rendereth recompence to his enemies. - -66:7 Before she travailed, she brought forth; before her pain came, -she was delivered of a man child. - -66:8 Who hath heard such a thing? who hath seen such things? Shall the -earth be made to bring forth in one day? or shall a nation be born at -once? for as soon as Zion travailed, she brought forth her children. - -66:9 Shall I bring to the birth, and not cause to bring forth? saith -the LORD: shall I cause to bring forth, and shut the womb? saith thy -God. - -66:10 Rejoice ye with Jerusalem, and be glad with her, all ye that -love her: rejoice for joy with her, all ye that mourn for her: 66:11 -That ye may suck, and be satisfied with the breasts of her -consolations; that ye may milk out, and be delighted with the -abundance of her glory. - -66:12 For thus saith the LORD, Behold, I will extend peace to her like -a river, and the glory of the Gentiles like a flowing stream: then -shall ye suck, ye shall be borne upon her sides, and be dandled upon -her knees. - -66:13 As one whom his mother comforteth, so will I comfort you; and ye -shall be comforted in Jerusalem. - -66:14 And when ye see this, your heart shall rejoice, and your bones -shall flourish like an herb: and the hand of the LORD shall be known -toward his servants, and his indignation toward his enemies. - -66:15 For, behold, the LORD will come with fire, and with his chariots -like a whirlwind, to render his anger with fury, and his rebuke with -flames of fire. - -66:16 For by fire and by his sword will the LORD plead with all flesh: -and the slain of the LORD shall be many. - -66:17 They that sanctify themselves, and purify themselves in the -gardens behind one tree in the midst, eating swine's flesh, and the -abomination, and the mouse, shall be consumed together, saith the -LORD. - -66:18 For I know their works and their thoughts: it shall come, that I -will gather all nations and tongues; and they shall come, and see my -glory. - -66:19 And I will set a sign among them, and I will send those that -escape of them unto the nations, to Tarshish, Pul, and Lud, that draw -the bow, to Tubal, and Javan, to the isles afar off, that have not -heard my fame, neither have seen my glory; and they shall declare my -glory among the Gentiles. - -66:20 And they shall bring all your brethren for an offering unto the -LORD out of all nations upon horses, and in chariots, and in litters, -and upon mules, and upon swift beasts, to my holy mountain Jerusalem, -saith the LORD, as the children of Israel bring an offering in a clean -vessel into the house of the LORD. - -66:21 And I will also take of them for priests and for Levites, saith -the LORD. - -66:22 For as the new heavens and the new earth, which I will make, -shall remain before me, saith the LORD, so shall your seed and your -name remain. - -66:23 And it shall come to pass, that from one new moon to another, -and from one sabbath to another, shall all flesh come to worship -before me, saith the LORD. - -66:24 And they shall go forth, and look upon the carcases of the men -that have transgressed against me: for their worm shall not die, -neither shall their fire be quenched; and they shall be an abhorring -unto all flesh. - - - - -The Book of the Prophet Jeremiah - - -1:1 The words of Jeremiah the son of Hilkiah, of the priests that -were in Anathoth in the land of Benjamin: 1:2 To whom the word of the -LORD came in the days of Josiah the son of Amon king of Judah, in the -thirteenth year of his reign. - -1:3 It came also in the days of Jehoiakim the son of Josiah king of -Judah, unto the end of the eleventh year of Zedekiah the son of Josiah -king of Judah, unto the carrying away of Jerusalem captive in the -fifth month. - -1:4 Then the word of the LORD came unto me, saying, 1:5 Before I -formed thee in the belly I knew thee; and before thou camest forth out -of the womb I sanctified thee, and I ordained thee a prophet unto the -nations. - -1:6 Then said I, Ah, Lord GOD! behold, I cannot speak: for I am a -child. - -1:7 But the LORD said unto me, Say not, I am a child: for thou shalt -go to all that I shall send thee, and whatsoever I command thee thou -shalt speak. - -1:8 Be not afraid of their faces: for I am with thee to deliver thee, -saith the LORD. - -1:9 Then the LORD put forth his hand, and touched my mouth. And the -LORD said unto me, Behold, I have put my words in thy mouth. - -1:10 See, I have this day set thee over the nations and over the -kingdoms, to root out, and to pull down, and to destroy, and to throw -down, to build, and to plant. - -1:11 Moreover the word of the LORD came unto me, saying, Jeremiah, -what seest thou? And I said, I see a rod of an almond tree. - -1:12 Then said the LORD unto me, Thou hast well seen: for I will -hasten my word to perform it. - -1:13 And the word of the LORD came unto me the second time, saying, -What seest thou? And I said, I see a seething pot; and the face -thereof is toward the north. - -1:14 Then the LORD said unto me, Out of the north an evil shall break -forth upon all the inhabitants of the land. - -1:15 For, lo, I will call all the families of the kingdoms of the -north, saith the LORD; and they shall come, and they shall set every -one his throne at the entering of the gates of Jerusalem, and against -all the walls thereof round about, and against all the cities of -Judah. - -1:16 And I will utter my judgments against them touching all their -wickedness, who have forsaken me, and have burned incense unto other -gods, and worshipped the works of their own hands. - -1:17 Thou therefore gird up thy loins, and arise, and speak unto them -all that I command thee: be not dismayed at their faces, lest I -confound thee before them. - -1:18 For, behold, I have made thee this day a defenced city, and an -iron pillar, and brasen walls against the whole land, against the -kings of Judah, against the princes thereof, against the priests -thereof, and against the people of the land. - -1:19 And they shall fight against thee; but they shall not prevail -against thee; for I am with thee, saith the LORD, to deliver thee. - -2:1 Moreover the word of the LORD came to me, saying, 2:2 Go and cry -in the ears of Jerusalem, saying, Thus saith the LORD; I remember -thee, the kindness of thy youth, the love of thine espousals, when -thou wentest after me in the wilderness, in a land that was not sown. - -2:3 Israel was holiness unto the LORD, and the firstfruits of his -increase: all that devour him shall offend; evil shall come upon them, -saith the LORD. - -2:4 Hear ye the word of the LORD, O house of Jacob, and all the -families of the house of Israel: 2:5 Thus saith the LORD, What -iniquity have your fathers found in me, that they are gone far from -me, and have walked after vanity, and are become vain? 2:6 Neither -said they, Where is the LORD that brought us up out of the land of -Egypt, that led us through the wilderness, through a land of deserts -and of pits, through a land of drought, and of the shadow of death, -through a land that no man passed through, and where no man dwelt? -2:7 And I brought you into a plentiful country, to eat the fruit -thereof and the goodness thereof; but when ye entered, ye defiled my -land, and made mine heritage an abomination. - -2:8 The priests said not, Where is the LORD? and they that handle the -law knew me not: the pastors also transgressed against me, and the -prophets prophesied by Baal, and walked after things that do not -profit. - -2:9 Wherefore I will yet plead with you, saith the LORD, and with your -children's children will I plead. - -2:10 For pass over the isles of Chittim, and see; and send unto Kedar, -and consider diligently, and see if there be such a thing. - -2:11 Hath a nation changed their gods, which are yet no gods? but my -people have changed their glory for that which doth not profit. - -2:12 Be astonished, O ye heavens, at this, and be horribly afraid, be -ye very desolate, saith the LORD. - -2:13 For my people have committed two evils; they have forsaken me the -fountain of living waters, and hewed them out cisterns, broken -cisterns, that can hold no water. - -2:14 Is Israel a servant? is he a homeborn slave? why is he spoiled? -2:15 The young lions roared upon him, and yelled, and they made his -land waste: his cities are burned without inhabitant. - -2:16 Also the children of Noph and Tahapanes have broken the crown of -thy head. - -2:17 Hast thou not procured this unto thyself, in that thou hast -forsaken the LORD thy God, when he led thee by the way? 2:18 And now -what hast thou to do in the way of Egypt, to drink the waters of -Sihor? or what hast thou to do in the way of Assyria, to drink the -waters of the river? 2:19 Thine own wickedness shall correct thee, -and thy backslidings shall reprove thee: know therefore and see that -it is an evil thing and bitter, that thou hast forsaken the LORD thy -God, and that my fear is not in thee, saith the Lord GOD of hosts. - -2:20 For of old time I have broken thy yoke, and burst thy bands; and -thou saidst, I will not transgress; when upon every high hill and -under every green tree thou wanderest, playing the harlot. - -2:21 Yet I had planted thee a noble vine, wholly a right seed: how -then art thou turned into the degenerate plant of a strange vine unto -me? 2:22 For though thou wash thee with nitre, and take thee much -soap, yet thine iniquity is marked before me, saith the Lord GOD. - -2:23 How canst thou say, I am not polluted, I have not gone after -Baalim? see thy way in the valley, know what thou hast done: thou art -a swift dromedary traversing her ways; 2:24 A wild ass used to the -wilderness, that snuffeth up the wind at her pleasure; in her occasion -who can turn her away? all they that seek her will not weary -themselves; in her month they shall find her. - -2:25 Withhold thy foot from being unshod, and thy throat from thirst: -but thou saidst, There is no hope: no; for I have loved strangers, and -after them will I go. - -2:26 As the thief is ashamed when he is found, so is the house of -Israel ashamed; they, their kings, their princes, and their priests, -and their prophets. - -2:27 Saying to a stock, Thou art my father; and to a stone, Thou hast -brought me forth: for they have turned their back unto me, and not -their face: but in the time of their trouble they will say, Arise, and -save us. - -2:28 But where are thy gods that thou hast made thee? let them arise, -if they can save thee in the time of thy trouble: for according to the -number of thy cities are thy gods, O Judah. - -2:29 Wherefore will ye plead with me? ye all have transgressed against -me, saith the LORD. - -2:30 In vain have I smitten your children; they received no -correction: your own sword hath devoured your prophets, like a -destroying lion. - -2:31 O generation, see ye the word of the LORD. Have I been a -wilderness unto Israel? a land of darkness? wherefore say my people, -We are lords; we will come no more unto thee? 2:32 Can a maid forget -her ornaments, or a bride her attire? yet my people have forgotten me -days without number. - -2:33 Why trimmest thou thy way to seek love? therefore hast thou also -taught the wicked ones thy ways. - -2:34 Also in thy skirts is found the blood of the souls of the poor -innocents: I have not found it by secret search, but upon all these. - -2:35 Yet thou sayest, Because I am innocent, surely his anger shall -turn from me. Behold, I will plead with thee, because thou sayest, I -have not sinned. - -2:36 Why gaddest thou about so much to change thy way? thou also shalt -be ashamed of Egypt, as thou wast ashamed of Assyria. - -2:37 Yea, thou shalt go forth from him, and thine hands upon thine -head: for the LORD hath rejected thy confidences, and thou shalt not -prosper in them. - -3:1 They say, If a man put away his wife, and she go from him, and -become another man's, shall he return unto her again? shall not that -land be greatly polluted? but thou hast played the harlot with many -lovers; yet return again to me, saith the LORD. - -3:2 Lift up thine eyes unto the high places, and see where thou hast -not been lien with. In the ways hast thou sat for them, as the Arabian -in the wilderness; and thou hast polluted the land with thy whoredoms -and with thy wickedness. - -3:3 Therefore the showers have been withholden, and there hath been no -latter rain; and thou hadst a whore's forehead, thou refusedst to be -ashamed. - -3:4 Wilt thou not from this time cry unto me, My father, thou art the -guide of my youth? 3:5 Will he reserve his anger for ever? will he -keep it to the end? Behold, thou hast spoken and done evil things as -thou couldest. - -3:6 The LORD said also unto me in the days of Josiah the king, Hast -thou seen that which backsliding Israel hath done? she is gone up upon -every high mountain and under every green tree, and there hath played -the harlot. - -3:7 And I said after she had done all these things, Turn thou unto me. -But she returned not. And her treacherous sister Judah saw it. - -3:8 And I saw, when for all the causes whereby backsliding Israel -committed adultery I had put her away, and given her a bill of -divorce; yet her treacherous sister Judah feared not, but went and -played the harlot also. - -3:9 And it came to pass through the lightness of her whoredom, that -she defiled the land, and committed adultery with stones and with -stocks. - -3:10 And yet for all this her treacherous sister Judah hath not turned -unto me with her whole heart, but feignedly, saith the LORD. - -3:11 And the LORD said unto me, The backsliding Israel hath justified -herself more than treacherous Judah. - -3:12 Go and proclaim these words toward the north, and say, Return, -thou backsliding Israel, saith the LORD; and I will not cause mine -anger to fall upon you: for I am merciful, saith the LORD, and I will -not keep anger for ever. - -3:13 Only acknowledge thine iniquity, that thou hast transgressed -against the LORD thy God, and hast scattered thy ways to the strangers -under every green tree, and ye have not obeyed my voice, saith the -LORD. - -3:14 Turn, O backsliding children, saith the LORD; for I am married -unto you: and I will take you one of a city, and two of a family, and -I will bring you to Zion: 3:15 And I will give you pastors according -to mine heart, which shall feed you with knowledge and understanding. - -3:16 And it shall come to pass, when ye be multiplied and increased in -the land, in those days, saith the LORD, they shall say no more, The -ark of the covenant of the LORD: neither shall it come to mind: -neither shall they remember it; neither shall they visit it; neither -shall that be done any more. - -3:17 At that time they shall call Jerusalem the throne of the LORD; -and all the nations shall be gathered unto it, to the name of the -LORD, to Jerusalem: neither shall they walk any more after the -imagination of their evil heart. - -3:18 In those days the house of Judah shall walk with the house of -Israel, and they shall come together out of the land of the north to -the land that I have given for an inheritance unto your fathers. - -3:19 But I said, How shall I put thee among the children, and give -thee a pleasant land, a goodly heritage of the hosts of nations? and I -said, Thou shalt call me, My father; and shalt not turn away from me. - -3:20 Surely as a wife treacherously departeth from her husband, so -have ye dealt treacherously with me, O house of Israel, saith the -LORD. - -3:21 A voice was heard upon the high places, weeping and supplications -of the children of Israel: for they have perverted their way, and they -have forgotten the LORD their God. - -3:22 Return, ye backsliding children, and I will heal your -backslidings. - -Behold, we come unto thee; for thou art the LORD our God. - -3:23 Truly in vain is salvation hoped for from the hills, and from the -multitude of mountains: truly in the LORD our God is the salvation of -Israel. - -3:24 For shame hath devoured the labour of our fathers from our youth; -their flocks and their herds, their sons and their daughters. - -3:25 We lie down in our shame, and our confusion covereth us: for we -have sinned against the LORD our God, we and our fathers, from our -youth even unto this day, and have not obeyed the voice of the LORD -our God. - -4:1 If thou wilt return, O Israel, saith the LORD, return unto me: and -if thou wilt put away thine abominations out of my sight, then shalt -thou not remove. - -4:2 And thou shalt swear, The LORD liveth, in truth, in judgment, and -in righteousness; and the nations shall bless themselves in him, and -in him shall they glory. - -4:3 For thus saith the LORD to the men of Judah and Jerusalem, Break -up your fallow ground, and sow not among thorns. - -4:4 Circumcise yourselves to the LORD, and take away the foreskins of -your heart, ye men of Judah and inhabitants of Jerusalem: lest my fury -come forth like fire, and burn that none can quench it, because of the -evil of your doings. - -4:5 Declare ye in Judah, and publish in Jerusalem; and say, Blow ye -the trumpet in the land: cry, gather together, and say, Assemble -yourselves, and let us go into the defenced cities. - -4:6 Set up the standard toward Zion: retire, stay not: for I will -bring evil from the north, and a great destruction. - -4:7 The lion is come up from his thicket, and the destroyer of the -Gentiles is on his way; he is gone forth from his place to make thy -land desolate; and thy cities shall be laid waste, without an -inhabitant. - -4:8 For this gird you with sackcloth, lament and howl: for the fierce -anger of the LORD is not turned back from us. - -4:9 And it shall come to pass at that day, saith the LORD, that the -heart of the king shall perish, and the heart of the princes; and the -priests shall be astonished, and the prophets shall wonder. - -4:10 Then said I, Ah, Lord GOD! surely thou hast greatly deceived this -people and Jerusalem, saying, Ye shall have peace; whereas the sword -reacheth unto the soul. - -4:11 At that time shall it be said to this people and to Jerusalem, A -dry wind of the high places in the wilderness toward the daughter of -my people, not to fan, nor to cleanse, 4:12 Even a full wind from -those places shall come unto me: now also will I give sentence against -them. - -4:13 Behold, he shall come up as clouds, and his chariots shall be as -a whirlwind: his horses are swifter than eagles. Woe unto us! for we -are spoiled. - -4:14 O Jerusalem, wash thine heart from wickedness, that thou mayest -be saved. How long shall thy vain thoughts lodge within thee? 4:15 -For a voice declareth from Dan, and publisheth affliction from mount -Ephraim. - -4:16 Make ye mention to the nations; behold, publish against -Jerusalem, that watchers come from a far country, and give out their -voice against the cities of Judah. - -4:17 As keepers of a field, are they against her round about; because -she hath been rebellious against me, saith the LORD. - -4:18 Thy way and thy doings have procured these things unto thee; this -is thy wickedness, because it is bitter, because it reacheth unto -thine heart. - -4:19 My bowels, my bowels! I am pained at my very heart; my heart -maketh a noise in me; I cannot hold my peace, because thou hast heard, -O my soul, the sound of the trumpet, the alarm of war. - -4:20 Destruction upon destruction is cried; for the whole land is -spoiled: suddenly are my tents spoiled, and my curtains in a moment. - -4:21 How long shall I see the standard, and hear the sound of the -trumpet? 4:22 For my people is foolish, they have not known me; they -are sottish children, and they have none understanding: they are wise -to do evil, but to do good they have no knowledge. - -4:23 I beheld the earth, and, lo, it was without form, and void; and -the heavens, and they had no light. - -4:24 I beheld the mountains, and, lo, they trembled, and all the hills -moved lightly. - -4:25 I beheld, and, lo, there was no man, and all the birds of the -heavens were fled. - -4:26 I beheld, and, lo, the fruitful place was a wilderness, and all -the cities thereof were broken down at the presence of the LORD, and -by his fierce anger. - -4:27 For thus hath the LORD said, The whole land shall be desolate; -yet will I not make a full end. - -4:28 For this shall the earth mourn, and the heavens above be black; -because I have spoken it, I have purposed it, and will not repent, -neither will I turn back from it. - -4:29 The whole city shall flee for the noise of the horsemen and -bowmen; they shall go into thickets, and climb up upon the rocks: -every city shall be forsaken, and not a man dwell therein. - -4:30 And when thou art spoiled, what wilt thou do? Though thou -clothest thyself with crimson, though thou deckest thee with ornaments -of gold, though thou rentest thy face with painting, in vain shalt -thou make thyself fair; thy lovers will despise thee, they will seek -thy life. - -4:31 For I have heard a voice as of a woman in travail, and the -anguish as of her that bringeth forth her first child, the voice of -the daughter of Zion, that bewaileth herself, that spreadeth her -hands, saying, Woe is me now! for my soul is wearied because of -murderers. - -5:1 Run ye to and fro through the streets of Jerusalem, and see now, -and know, and seek in the broad places thereof, if ye can find a man, -if there be any that executeth judgment, that seeketh the truth; and I -will pardon it. - -5:2 And though they say, The LORD liveth; surely they swear falsely. - -5:3 O LORD, are not thine eyes upon the truth? thou hast stricken -them, but they have not grieved; thou hast consumed them, but they -have refused to receive correction: they have made their faces harder -than a rock; they have refused to return. - -5:4 Therefore I said, Surely these are poor; they are foolish: for -they know not the way of the LORD, nor the judgment of their God. - -5:5 I will get me unto the great men, and will speak unto them; for -they have known the way of the LORD, and the judgment of their God: -but these have altogether broken the yoke, and burst the bonds. - -5:6 Wherefore a lion out of the forest shall slay them, and a wolf of -the evenings shall spoil them, a leopard shall watch over their -cities: every one that goeth out thence shall be torn in pieces: -because their transgressions are many, and their backslidings are -increased. - -5:7 How shall I pardon thee for this? thy children have forsaken me, -and sworn by them that are no gods: when I had fed them to the full, -they then committed adultery, and assembled themselves by troops in -the harlots' houses. - -5:8 They were as fed horses in the morning: every one neighed after -his neighbour's wife. - -5:9 Shall I not visit for these things? saith the LORD: and shall not -my soul be avenged on such a nation as this? 5:10 Go ye up upon her -walls, and destroy; but make not a full end: take away her -battlements; for they are not the LORD's. - -5:11 For the house of Israel and the house of Judah have dealt very -treacherously against me, saith the LORD. - -5:12 They have belied the LORD, and said, It is not he; neither shall -evil come upon us; neither shall we see sword nor famine: 5:13 And the -prophets shall become wind, and the word is not in them: thus shall it -be done unto them. - -5:14 Wherefore thus saith the LORD God of hosts, Because ye speak this -word, behold, I will make my words in thy mouth fire, and this people -wood, and it shall devour them. - -5:15 Lo, I will bring a nation upon you from far, O house of Israel, -saith the LORD: it is a mighty nation, it is an ancient nation, a -nation whose language thou knowest not, neither understandest what -they say. - -5:16 Their quiver is as an open sepulchre, they are all mighty men. - -5:17 And they shall eat up thine harvest, and thy bread, which thy -sons and thy daughters should eat: they shall eat up thy flocks and -thine herds: they shall eat up thy vines and thy fig trees: they shall -impoverish thy fenced cities, wherein thou trustedst, with the sword. - -5:18 Nevertheless in those days, saith the LORD, I will not make a -full end with you. - -5:19 And it shall come to pass, when ye shall say, Wherefore doeth the -LORD our God all these things unto us? then shalt thou answer them, -Like as ye have forsaken me, and served strange gods in your land, so -shall ye serve strangers in a land that is not your's. - -5:20 Declare this in the house of Jacob, and publish it in Judah, -saying, 5:21 Hear now this, O foolish people, and without -understanding; which have eyes, and see not; which have ears, and hear -not: 5:22 Fear ye not me? saith the LORD: will ye not tremble at my -presence, which have placed the sand for the bound of the sea by a -perpetual decree, that it cannot pass it: and though the waves thereof -toss themselves, yet can they not prevail; though they roar, yet can -they not pass over it? 5:23 But this people hath a revolting and a -rebellious heart; they are revolted and gone. - -5:24 Neither say they in their heart, Let us now fear the LORD our -God, that giveth rain, both the former and the latter, in his season: -he reserveth unto us the appointed weeks of the harvest. - -5:25 Your iniquities have turned away these things, and your sins have -withholden good things from you. - -5:26 For among my people are found wicked men: they lay wait, as he -that setteth snares; they set a trap, they catch men. - -5:27 As a cage is full of birds, so are their houses full of deceit: -therefore they are become great, and waxen rich. - -5:28 They are waxen fat, they shine: yea, they overpass the deeds of -the wicked: they judge not the cause, the cause of the fatherless, yet -they prosper; and the right of the needy do they not judge. - -5:29 Shall I not visit for these things? saith the LORD: shall not my -soul be avenged on such a nation as this? 5:30 A wonderful and -horrible thing is committed in the land; 5:31 The prophets prophesy -falsely, and the priests bear rule by their means; and my people love -to have it so: and what will ye do in the end thereof? 6:1 O ye -children of Benjamin, gather yourselves to flee out of the midst of -Jerusalem, and blow the trumpet in Tekoa, and set up a sign of fire in -Bethhaccerem: for evil appeareth out of the north, and great -destruction. - -6:2 I have likened the daughter of Zion to a comely and delicate -woman. - -6:3 The shepherds with their flocks shall come unto her; they shall -pitch their tents against her round about; they shall feed every one -in his place. - -6:4 Prepare ye war against her; arise, and let us go up at noon. Woe -unto us! for the day goeth away, for the shadows of the evening are -stretched out. - -6:5 Arise, and let us go by night, and let us destroy her palaces. - -6:6 For thus hath the LORD of hosts said, Hew ye down trees, and cast -a mount against Jerusalem: this is the city to be visited; she is -wholly oppression in the midst of her. - -6:7 As a fountain casteth out her waters, so she casteth out her -wickedness: violence and spoil is heard in her; before me continually -is grief and wounds. - -6:8 Be thou instructed, O Jerusalem, lest my soul depart from thee; -lest I make thee desolate, a land not inhabited. - -6:9 Thus saith the LORD of hosts, They shall throughly glean the -remnant of Israel as a vine: turn back thine hand as a grapegatherer -into the baskets. - -6:10 To whom shall I speak, and give warning, that they may hear? -behold, their ear is uncircumcised, and they cannot hearken: behold, -the word of the LORD is unto them a reproach; they have no delight in -it. - -6:11 Therefore I am full of the fury of the LORD; I am weary with -holding in: I will pour it out upon the children abroad, and upon the -assembly of young men together: for even the husband with the wife -shall be taken, the aged with him that is full of days. - -6:12 And their houses shall be turned unto others, with their fields -and wives together: for I will stretch out my hand upon the -inhabitants of the land, saith the LORD. - -6:13 For from the least of them even unto the greatest of them every -one is given to covetousness; and from the prophet even unto the -priest every one dealeth falsely. - -6:14 They have healed also the hurt of the daughter of my people -slightly, saying, Peace, peace; when there is no peace. - -6:15 Were they ashamed when they had committed abomination? nay, they -were not at all ashamed, neither could they blush: therefore they -shall fall among them that fall: at the time that I visit them they -shall be cast down, saith the LORD. - -6:16 Thus saith the LORD, Stand ye in the ways, and see, and ask for -the old paths, where is the good way, and walk therein, and ye shall -find rest for your souls. But they said, We will not walk therein. - -6:17 Also I set watchmen over you, saying, Hearken to the sound of the -trumpet. But they said, We will not hearken. - -6:18 Therefore hear, ye nations, and know, O congregation, what is -among them. - -6:19 Hear, O earth: behold, I will bring evil upon this people, even -the fruit of their thoughts, because they have not hearkened unto my -words, nor to my law, but rejected it. - -6:20 To what purpose cometh there to me incense from Sheba, and the -sweet cane from a far country? your burnt offerings are not -acceptable, nor your sacrifices sweet unto me. - -6:21 Therefore thus saith the LORD, Behold, I will lay stumblingblocks -before this people, and the fathers and the sons together shall fall -upon them; the neighbour and his friend shall perish. - -6:22 Thus saith the LORD, Behold, a people cometh from the north -country, and a great nation shall be raised from the sides of the -earth. - -6:23 They shall lay hold on bow and spear; they are cruel, and have no -mercy; their voice roareth like the sea; and they ride upon horses, -set in array as men for war against thee, O daughter of Zion. - -6:24 We have heard the fame thereof: our hands wax feeble: anguish -hath taken hold of us, and pain, as of a woman in travail. - -6:25 Go not forth into the field, nor walk by the way; for the sword -of the enemy and fear is on every side. - -6:26 O daughter of my people, gird thee with sackcloth, and wallow -thyself in ashes: make thee mourning, as for an only son, most bitter -lamentation: for the spoiler shall suddenly come upon us. - -6:27 I have set thee for a tower and a fortress among my people, that -thou mayest know and try their way. - -6:28 They are all grievous revolters, walking with slanders: they are -brass and iron; they are all corrupters. - -6:29 The bellows are burned, the lead is consumed of the fire; the -founder melteth in vain: for the wicked are not plucked away. - -6:30 Reprobate silver shall men call them, because the LORD hath -rejected them. - -7:1 The word that came to Jeremiah from the LORD, saying, 7:2 Stand in -the gate of the LORD's house, and proclaim there this word, and say, -Hear the word of the LORD, all ye of Judah, that enter in at these -gates to worship the LORD. - -7:3 Thus saith the LORD of hosts, the God of Israel, Amend your ways -and your doings, and I will cause you to dwell in this place. - -7:4 Trust ye not in lying words, saying, The temple of the LORD, The -temple of the LORD, The temple of the LORD, are these. - -7:5 For if ye throughly amend your ways and your doings; if ye -throughly execute judgment between a man and his neighbour; 7:6 If ye -oppress not the stranger, the fatherless, and the widow, and shed not -innocent blood in this place, neither walk after other gods to your -hurt: 7:7 Then will I cause you to dwell in this place, in the land -that I gave to your fathers, for ever and ever. - -7:8 Behold, ye trust in lying words, that cannot profit. - -7:9 Will ye steal, murder, and commit adultery, and swear falsely, and -burn incense unto Baal, and walk after other gods whom ye know not; -7:10 And come and stand before me in this house, which is called by my -name, and say, We are delivered to do all these abominations? 7:11 Is -this house, which is called by my name, become a den of robbers in -your eyes? Behold, even I have seen it, saith the LORD. - -7:12 But go ye now unto my place which was in Shiloh, where I set my -name at the first, and see what I did to it for the wickedness of my -people Israel. - -7:13 And now, because ye have done all these works, saith the LORD, -and I spake unto you, rising up early and speaking, but ye heard not; -and I called you, but ye answered not; 7:14 Therefore will I do unto -this house, which is called by my name, wherein ye trust, and unto the -place which I gave to you and to your fathers, as I have done to -Shiloh. - -7:15 And I will cast you out of my sight, as I have cast out all your -brethren, even the whole seed of Ephraim. - -7:16 Therefore pray not thou for this people, neither lift up cry nor -prayer for them, neither make intercession to me: for I will not hear -thee. - -7:17 Seest thou not what they do in the cities of Judah and in the -streets of Jerusalem? 7:18 The children gather wood, and the fathers -kindle the fire, and the women knead their dough, to make cakes to the -queen of heaven, and to pour out drink offerings unto other gods, that -they may provoke me to anger. - -7:19 Do they provoke me to anger? saith the LORD: do they not provoke -themselves to the confusion of their own faces? 7:20 Therefore thus -saith the Lord GOD; Behold, mine anger and my fury shall be poured out -upon this place, upon man, and upon beast, and upon the trees of the -field, and upon the fruit of the ground; and it shall burn, and shall -not be quenched. - -7:21 Thus saith the LORD of hosts, the God of Israel; Put your burnt -offerings unto your sacrifices, and eat flesh. - -7:22 For I spake not unto your fathers, nor commanded them in the day -that I brought them out of the land of Egypt, concerning burnt -offerings or sacrifices: 7:23 But this thing commanded I them, saying, -Obey my voice, and I will be your God, and ye shall be my people: and -walk ye in all the ways that I have commanded you, that it may be well -unto you. - -7:24 But they hearkened not, nor inclined their ear, but walked in the -counsels and in the imagination of their evil heart, and went -backward, and not forward. - -7:25 Since the day that your fathers came forth out of the land of -Egypt unto this day I have even sent unto you all my servants the -prophets, daily rising up early and sending them: 7:26 Yet they -hearkened not unto me, nor inclined their ear, but hardened their -neck: they did worse than their fathers. - -7:27 Therefore thou shalt speak all these words unto them; but they -will not hearken to thee: thou shalt also call unto them; but they -will not answer thee. - -7:28 But thou shalt say unto them, This is a nation that obeyeth not -the voice of the LORD their God, nor receiveth correction: truth is -perished, and is cut off from their mouth. - -7:29 Cut off thine hair, O Jerusalem, and cast it away, and take up a -lamentation on high places; for the LORD hath rejected and forsaken -the generation of his wrath. - -7:30 For the children of Judah have done evil in my sight, saith the -LORD: they have set their abominations in the house which is called by -my name, to pollute it. - -7:31 And they have built the high places of Tophet, which is in the -valley of the son of Hinnom, to burn their sons and their daughters in -the fire; which I commanded them not, neither came it into my heart. - -7:32 Therefore, behold, the days come, saith the LORD, that it shall -no more be called Tophet, nor the valley of the son of Hinnom, but the -valley of slaughter: for they shall bury in Tophet, till there be no -place. - -7:33 And the carcases of this people shall be meat for the fowls of -the heaven, and for the beasts of the earth; and none shall fray them -away. - -7:34 Then will I cause to cease from the cities of Judah, and from the -streets of Jerusalem, the voice of mirth, and the voice of gladness, -the voice of the bridegroom, and the voice of the bride: for the land -shall be desolate. - -8:1 At that time, saith the LORD, they shall bring out the bones of -the kings of Judah, and the bones of his princes, and the bones of the -priests, and the bones of the prophets, and the bones of the -inhabitants of Jerusalem, out of their graves: 8:2 And they shall -spread them before the sun, and the moon, and all the host of heaven, -whom they have loved, and whom they have served, and after whom they -have walked, and whom they have sought, and whom they have worshipped: -they shall not be gathered, nor be buried; they shall be for dung upon -the face of the earth. - -8:3 And death shall be chosen rather than life by all the residue of -them that remain of this evil family, which remain in all the places -whither I have driven them, saith the LORD of hosts. - -8:4 Moreover thou shalt say unto them, Thus saith the LORD; Shall they -fall, and not arise? shall he turn away, and not return? 8:5 Why then -is this people of Jerusalem slidden back by a perpetual backsliding? -they hold fast deceit, they refuse to return. - -8:6 I hearkened and heard, but they spake not aright: no man repented -him of his wickedness, saying, What have I done? every one turned to -his course, as the horse rusheth into the battle. - -8:7 Yea, the stork in the heaven knoweth her appointed times; and the -turtle and the crane and the swallow observe the time of their coming; -but my people know not the judgment of the LORD. - -8:8 How do ye say, We are wise, and the law of the LORD is with us? -Lo, certainly in vain made he it; the pen of the scribes is in vain. - -8:9 The wise men are ashamed, they are dismayed and taken: lo, they -have rejected the word of the LORD; and what wisdom is in them? 8:10 -Therefore will I give their wives unto others, and their fields to -them that shall inherit them: for every one from the least even unto -the greatest is given to covetousness, from the prophet even unto the -priest every one dealeth falsely. - -8:11 For they have healed the hurt of the daughter of my people -slightly, saying, Peace, peace; when there is no peace. - -8:12 Were they ashamed when they had committed abomination? nay, they -were not at all ashamed, neither could they blush: therefore shall -they fall among them that fall: in the time of their visitation they -shall be cast down, saith the LORD. - -8:13 I will surely consume them, saith the LORD: there shall be no -grapes on the vine, nor figs on the fig tree, and the leaf shall fade; -and the things that I have given them shall pass away from them. - -8:14 Why do we sit still? assemble yourselves, and let us enter into -the defenced cities, and let us be silent there: for the LORD our God -hath put us to silence, and given us water of gall to drink, because -we have sinned against the LORD. - -8:15 We looked for peace, but no good came; and for a time of health, -and behold trouble! 8:16 The snorting of his horses was heard from -Dan: the whole land trembled at the sound of the neighing of his -strong ones; for they are come, and have devoured the land, and all -that is in it; the city, and those that dwell therein. - -8:17 For, behold, I will send serpents, cockatrices, among you, which -will not be charmed, and they shall bite you, saith the LORD. - -8:18 When I would comfort myself against sorrow, my heart is faint in -me. - -8:19 Behold the voice of the cry of the daughter of my people because -of them that dwell in a far country: Is not the LORD in Zion? is not -her king in her? Why have they provoked me to anger with their graven -images, and with strange vanities? 8:20 The harvest is past, the -summer is ended, and we are not saved. - -8:21 For the hurt of the daughter of my people am I hurt; I am black; -astonishment hath taken hold on me. - -8:22 Is there no balm in Gilead; is there no physician there? why then -is not the health of the daughter of my people recovered? 9:1 Oh that -my head were waters, and mine eyes a fountain of tears, that I might -weep day and night for the slain of the daughter of my people! 9:2 Oh -that I had in the wilderness a lodging place of wayfaring men; that I -might leave my people, and go from them! for they be all adulterers, -an assembly of treacherous men. - -9:3 And they bend their tongues like their bow for lies: but they are -not valiant for the truth upon the earth; for they proceed from evil -to evil, and they know not me, saith the LORD. - -9:4 Take ye heed every one of his neighbour, and trust ye not in any -brother: for every brother will utterly supplant, and every neighbour -will walk with slanders. - -9:5 And they will deceive every one his neighbour, and will not speak -the truth: they have taught their tongue to speak lies, and weary -themselves to commit iniquity. - -9:6 Thine habitation is in the midst of deceit; through deceit they -refuse to know me, saith the LORD. - -9:7 Therefore thus saith the LORD of hosts, Behold, I will melt them, -and try them; for how shall I do for the daughter of my people? 9:8 -Their tongue is as an arrow shot out; it speaketh deceit: one speaketh -peaceably to his neighbour with his mouth, but in heart he layeth his -wait. - -9:9 Shall I not visit them for these things? saith the LORD: shall not -my soul be avenged on such a nation as this? 9:10 For the mountains -will I take up a weeping and wailing, and for the habitations of the -wilderness a lamentation, because they are burned up, so that none can -pass through them; neither can men hear the voice of the cattle; both -the fowl of the heavens and the beast are fled; they are gone. - -9:11 And I will make Jerusalem heaps, and a den of dragons; and I will -make the cities of Judah desolate, without an inhabitant. - -9:12 Who is the wise man, that may understand this? and who is he to -whom the mouth of the LORD hath spoken, that he may declare it, for -what the land perisheth and is burned up like a wilderness, that none -passeth through? 9:13 And the LORD saith, Because they have forsaken -my law which I set before them, and have not obeyed my voice, neither -walked therein; 9:14 But have walked after the imagination of their -own heart, and after Baalim, which their fathers taught them: 9:15 -Therefore thus saith the LORD of hosts, the God of Israel; Behold, I -will feed them, even this people, with wormwood, and give them water -of gall to drink. - -9:16 I will scatter them also among the heathen, whom neither they nor -their fathers have known: and I will send a sword after them, till I -have consumed them. - -9:17 Thus saith the LORD of hosts, Consider ye, and call for the -mourning women, that they may come; and send for cunning women, that -they may come: 9:18 And let them make haste, and take up a wailing for -us, that our eyes may run down with tears, and our eyelids gush out -with waters. - -9:19 For a voice of wailing is heard out of Zion, How are we spoiled! -we are greatly confounded, because we have forsaken the land, because -our dwellings have cast us out. - -9:20 Yet hear the word of the LORD, O ye women, and let your ear -receive the word of his mouth, and teach your daughters wailing, and -every one her neighbour lamentation. - -9:21 For death is come up into our windows, and is entered into our -palaces, to cut off the children from without, and the young men from -the streets. - -9:22 Speak, Thus saith the LORD, Even the carcases of men shall fall -as dung upon the open field, and as the handful after the harvestman, -and none shall gather them. - -9:23 Thus saith the LORD, Let not the wise man glory in his wisdom, -neither let the mighty man glory in his might, let not the rich man -glory in his riches: 9:24 But let him that glorieth glory in this, -that he understandeth and knoweth me, that I am the LORD which -exercise lovingkindness, judgment, and righteousness, in the earth: -for in these things I delight, saith the LORD. - -9:25 Behold, the days come, saith the LORD, that I will punish all -them which are circumcised with the uncircumcised; 9:26 Egypt, and -Judah, and Edom, and the children of Ammon, and Moab, and all that are -in the utmost corners, that dwell in the wilderness: for all these -nations are uncircumcised, and all the house of Israel are -uncircumcised in the heart. - -10:1 Hear ye the word which the LORD speaketh unto you, O house of -Israel: 10:2 Thus saith the LORD, Learn not the way of the heathen, -and be not dismayed at the signs of heaven; for the heathen are -dismayed at them. - -10:3 For the customs of the people are vain: for one cutteth a tree -out of the forest, the work of the hands of the workman, with the axe. - -10:4 They deck it with silver and with gold; they fasten it with nails -and with hammers, that it move not. - -10:5 They are upright as the palm tree, but speak not: they must needs -be borne, because they cannot go. Be not afraid of them; for they -cannot do evil, neither also is it in them to do good. - -10:6 Forasmuch as there is none like unto thee, O LORD; thou art -great, and thy name is great in might. - -10:7 Who would not fear thee, O King of nations? for to thee doth it -appertain: forasmuch as among all the wise men of the nations, and in -all their kingdoms, there is none like unto thee. - -10:8 But they are altogether brutish and foolish: the stock is a -doctrine of vanities. - -10:9 Silver spread into plates is brought from Tarshish, and gold from -Uphaz, the work of the workman, and of the hands of the founder: blue -and purple is their clothing: they are all the work of cunning men. - -10:10 But the LORD is the true God, he is the living God, and an -everlasting king: at his wrath the earth shall tremble, and the -nations shall not be able to abide his indignation. - -10:11 Thus shall ye say unto them, The gods that have not made the -heavens and the earth, even they shall perish from the earth, and from -under these heavens. - -10:12 He hath made the earth by his power, he hath established the -world by his wisdom, and hath stretched out the heavens by his -discretion. - -10:13 When he uttereth his voice, there is a multitude of waters in -the heavens, and he causeth the vapours to ascend from the ends of the -earth; he maketh lightnings with rain, and bringeth forth the wind out -of his treasures. - -10:14 Every man is brutish in his knowledge: every founder is -confounded by the graven image: for his molten image is falsehood, and -there is no breath in them. - -10:15 They are vanity, and the work of errors: in the time of their -visitation they shall perish. - -10:16 The portion of Jacob is not like them: for he is the former of -all things; and Israel is the rod of his inheritance: The LORD of -hosts is his name. - -10:17 Gather up thy wares out of the land, O inhabitant of the -fortress. - -10:18 For thus saith the LORD, Behold, I will sling out the -inhabitants of the land at this once, and will distress them, that -they may find it so. - -10:19 Woe is me for my hurt! my wound is grievous; but I said, Truly -this is a grief, and I must bear it. - -10:20 My tabernacle is spoiled, and all my cords are broken: my -children are gone forth of me, and they are not: there is none to -stretch forth my tent any more, and to set up my curtains. - -10:21 For the pastors are become brutish, and have not sought the -LORD: therefore they shall not prosper, and all their flocks shall be -scattered. - -10:22 Behold, the noise of the bruit is come, and a great commotion -out of the north country, to make the cities of Judah desolate, and a -den of dragons. - -10:23 O LORD, I know that the way of man is not in himself: it is not -in man that walketh to direct his steps. - -10:24 O LORD, correct me, but with judgment; not in thine anger, lest -thou bring me to nothing. - -10:25 Pour out thy fury upon the heathen that know thee not, and upon -the families that call not on thy name: for they have eaten up Jacob, -and devoured him, and consumed him, and have made his habitation -desolate. - -11:1 The word that came to Jeremiah from the LORD saying, 11:2 Hear ye -the words of this covenant, and speak unto the men of Judah, and to -the inhabitants of Jerusalem; 11:3 And say thou unto them, Thus saith -the LORD God of Israel; Cursed be the man that obeyeth not the words -of this covenant, 11:4 Which I commanded your fathers in the day that -I brought them forth out of the land of Egypt, from the iron furnace, -saying, Obey my voice, and do them, according to all which I command -you: so shall ye be my people, and I will be your God: 11:5 That I may -perform the oath which I have sworn unto your fathers, to give them a -land flowing with milk and honey, as it is this day. Then answered I, -and said, So be it, O LORD. - -11:6 Then the LORD said unto me, Proclaim all these words in the -cities of Judah, and in the streets of Jerusalem, saying, Hear ye the -words of this covenant, and do them. - -11:7 For I earnestly protested unto your fathers in the day that I -brought them up out of the land of Egypt, even unto this day, rising -early and protesting, saying, Obey my voice. - -11:8 Yet they obeyed not, nor inclined their ear, but walked every one -in the imagination of their evil heart: therefore I will bring upon -them all the words of this covenant, which I commanded them to do: but -they did them not. - -11:9 And the LORD said unto me, A conspiracy is found among the men of -Judah, and among the inhabitants of Jerusalem. - -11:10 They are turned back to the iniquities of their forefathers, -which refused to hear my words; and they went after other gods to -serve them: the house of Israel and the house of Judah have broken my -covenant which I made with their fathers. - -11:11 Therefore thus saith the LORD, Behold, I will bring evil upon -them, which they shall not be able to escape; and though they shall -cry unto me, I will not hearken unto them. - -11:12 Then shall the cities of Judah and inhabitants of Jerusalem go, -and cry unto the gods unto whom they offer incense: but they shall not -save them at all in the time of their trouble. - -11:13 For according to the number of thy cities were thy gods, O -Judah; and according to the number of the streets of Jerusalem have ye -set up altars to that shameful thing, even altars to burn incense unto -Baal. - -11:14 Therefore pray not thou for this people, neither lift up a cry -or prayer for them: for I will not hear them in the time that they cry -unto me for their trouble. - -11:15 What hath my beloved to do in mine house, seeing she hath -wrought lewdness with many, and the holy flesh is passed from thee? -when thou doest evil, then thou rejoicest. - -11:16 The LORD called thy name, A green olive tree, fair, and of -goodly fruit: with the noise of a great tumult he hath kindled fire -upon it, and the branches of it are broken. - -11:17 For the LORD of hosts, that planted thee, hath pronounced evil -against thee, for the evil of the house of Israel and of the house of -Judah, which they have done against themselves to provoke me to anger -in offering incense unto Baal. - -11:18 And the LORD hath given me knowledge of it, and I know it: then -thou shewedst me their doings. - -11:19 But I was like a lamb or an ox that is brought to the slaughter; -and I knew not that they had devised devices against me, saying, Let -us destroy the tree with the fruit thereof, and let us cut him off -from the land of the living, that his name may be no more remembered. - -11:20 But, O LORD of hosts, that judgest righteously, that triest the -reins and the heart, let me see thy vengeance on them: for unto thee -have I revealed my cause. - -11:21 Therefore thus saith the LORD of the men of Anathoth, that seek -thy life, saying, Prophesy not in the name of the LORD, that thou die -not by our hand: 11:22 Therefore thus saith the LORD of hosts, Behold, -I will punish them: the young men shall die by the sword; their sons -and their daughters shall die by famine: 11:23 And there shall be no -remnant of them: for I will bring evil upon the men of Anathoth, even -the year of their visitation. - -12:1 Righteous art thou, O LORD, when I plead with thee: yet let me -talk with thee of thy judgments: Wherefore doth the way of the wicked -prosper? wherefore are all they happy that deal very treacherously? -12:2 Thou hast planted them, yea, they have taken root: they grow, -yea, they bring forth fruit: thou art near in their mouth, and far -from their reins. - -12:3 But thou, O LORD, knowest me: thou hast seen me, and tried mine -heart toward thee: pull them out like sheep for the slaughter, and -prepare them for the day of slaughter. - -12:4 How long shall the land mourn, and the herbs of every field -wither, for the wickedness of them that dwell therein? the beasts are -consumed, and the birds; because they said, He shall not see our last -end. - -12:5 If thou hast run with the footmen, and they have wearied thee, -then how canst thou contend with horses? and if in the land of peace, -wherein thou trustedst, they wearied thee, then how wilt thou do in -the swelling of Jordan? 12:6 For even thy brethren, and the house of -thy father, even they have dealt treacherously with thee; yea, they -have called a multitude after thee: believe them not, though they -speak fair words unto thee. - -12:7 I have forsaken mine house, I have left mine heritage; I have -given the dearly beloved of my soul into the hand of her enemies. - -12:8 Mine heritage is unto me as a lion in the forest; it crieth out -against me: therefore have I hated it. - -12:9 Mine heritage is unto me as a speckled bird, the birds round -about are against her; come ye, assemble all the beasts of the field, -come to devour. - -12:10 Many pastors have destroyed my vineyard, they have trodden my -portion under foot, they have made my pleasant portion a desolate -wilderness. - -12:11 They have made it desolate, and being desolate it mourneth unto -me; the whole land is made desolate, because no man layeth it to -heart. - -12:12 The spoilers are come upon all high places through the -wilderness: for the sword of the LORD shall devour from the one end of -the land even to the other end of the land: no flesh shall have peace. - -12:13 They have sown wheat, but shall reap thorns: they have put -themselves to pain, but shall not profit: and they shall be ashamed of -your revenues because of the fierce anger of the LORD. - -12:14 Thus saith the LORD against all mine evil neighbours, that touch -the inheritance which I have caused my people Israel to inherit; -Behold, I will pluck them out of their land, and pluck out the house -of Judah from among them. - -12:15 And it shall come to pass, after that I have plucked them out I -will return, and have compassion on them, and will bring them again, -every man to his heritage, and every man to his land. - -12:16 And it shall come to pass, if they will diligently learn the -ways of my people, to swear by my name, The LORD liveth; as they -taught my people to swear by Baal; then shall they be built in the -midst of my people. - -12:17 But if they will not obey, I will utterly pluck up and destroy -that nation, saith the LORD. - -13:1 Thus saith the LORD unto me, Go and get thee a linen girdle, and -put it upon thy loins, and put it not in water. - -13:2 So I got a girdle according to the word of the LORD, and put it -on my loins. - -13:3 And the word of the LORD came unto me the second time, saying, -13:4 Take the girdle that thou hast got, which is upon thy loins, and -arise, go to Euphrates, and hide it there in a hole of the rock. - -13:5 So I went, and hid it by Euphrates, as the LORD commanded me. - -13:6 And it came to pass after many days, that the LORD said unto me, -Arise, go to Euphrates, and take the girdle from thence, which I -commanded thee to hide there. - -13:7 Then I went to Euphrates, and digged, and took the girdle from -the place where I had hid it: and, behold, the girdle was marred, it -was profitable for nothing. - -13:8 Then the word of the LORD came unto me, saying, 13:9 Thus saith -the LORD, After this manner will I mar the pride of Judah, and the -great pride of Jerusalem. - -13:10 This evil people, which refuse to hear my words, which walk in -the imagination of their heart, and walk after other gods, to serve -them, and to worship them, shall even be as this girdle, which is good -for nothing. - -13:11 For as the girdle cleaveth to the loins of a man, so have I -caused to cleave unto me the whole house of Israel and the whole house -of Judah, saith the LORD; that they might be unto me for a people, and -for a name, and for a praise, and for a glory: but they would not -hear. - -13:12 Therefore thou shalt speak unto them this word; Thus saith the -LORD God of Israel, Every bottle shall be filled with wine: and they -shall say unto thee, Do we not certainly know that every bottle shall -be filled with wine? 13:13 Then shalt thou say unto them, Thus saith -the LORD, Behold, I will fill all the inhabitants of this land, even -the kings that sit upon David's throne, and the priests, and the -prophets, and all the inhabitants of Jerusalem, with drunkenness. - -13:14 And I will dash them one against another, even the fathers and -the sons together, saith the LORD: I will not pity, nor spare, nor -have mercy, but destroy them. - -13:15 Hear ye, and give ear; be not proud: for the LORD hath spoken. - -13:16 Give glory to the LORD your God, before he cause darkness, and -before your feet stumble upon the dark mountains, and, while ye look -for light, he turn it into the shadow of death, and make it gross -darkness. - -13:17 But if ye will not hear it, my soul shall weep in secret places -for your pride; and mine eye shall weep sore, and run down with tears, -because the LORD's flock is carried away captive. - -13:18 Say unto the king and to the queen, Humble yourselves, sit down: -for your principalities shall come down, even the crown of your glory. - -13:19 The cities of the south shall be shut up, and none shall open -them: Judah shall be carried away captive all of it, it shall be -wholly carried away captive. - -13:20 Lift up your eyes, and behold them that come from the north: -where is the flock that was given thee, thy beautiful flock? 13:21 -What wilt thou say when he shall punish thee? for thou hast taught -them to be captains, and as chief over thee: shall not sorrows take -thee, as a woman in travail? 13:22 And if thou say in thine heart, -Wherefore come these things upon me? For the greatness of thine -iniquity are thy skirts discovered, and thy heels made bare. - -13:23 Can the Ethiopian change his skin, or the leopard his spots? -then may ye also do good, that are accustomed to do evil. - -13:24 Therefore will I scatter them as the stubble that passeth away -by the wind of the wilderness. - -13:25 This is thy lot, the portion of thy measures from me, saith the -LORD; because thou hast forgotten me, and trusted in falsehood. - -13:26 Therefore will I discover thy skirts upon thy face, that thy -shame may appear. - -13:27 I have seen thine adulteries, and thy neighings, the lewdness of -thy whoredom, and thine abominations on the hills in the fields. Woe -unto thee, O Jerusalem! wilt thou not be made clean? when shall it -once be? 14:1 The word of the LORD that came to Jeremiah concerning -the dearth. - -14:2 Judah mourneth, and the gates thereof languish; they are black -unto the ground; and the cry of Jerusalem is gone up. - -14:3 And their nobles have sent their little ones to the waters: they -came to the pits, and found no water; they returned with their vessels -empty; they were ashamed and confounded, and covered their heads. - -14:4 Because the ground is chapt, for there was no rain in the earth, -the plowmen were ashamed, they covered their heads. - -14:5 Yea, the hind also calved in the field, and forsook it, because -there was no grass. - -14:6 And the wild asses did stand in the high places, they snuffed up -the wind like dragons; their eyes did fail, because there was no -grass. - -14:7 O LORD, though our iniquities testify against us, do thou it for -thy name's sake: for our backslidings are many; we have sinned against -thee. - -14:8 O the hope of Israel, the saviour thereof in time of trouble, why -shouldest thou be as a stranger in the land, and as a wayfaring man -that turneth aside to tarry for a night? 14:9 Why shouldest thou be -as a man astonied, as a mighty man that cannot save? yet thou, O LORD, -art in the midst of us, and we are called by thy name; leave us not. - -14:10 Thus saith the LORD unto this people, Thus have they loved to -wander, they have not refrained their feet, therefore the LORD doth -not accept them; he will now remember their iniquity, and visit their -sins. - -14:11 Then said the LORD unto me, Pray not for this people for their -good. - -14:12 When they fast, I will not hear their cry; and when they offer -burnt offering and an oblation, I will not accept them: but I will -consume them by the sword, and by the famine, and by the pestilence. - -14:13 Then said I, Ah, Lord GOD! behold, the prophets say unto them, -Ye shall not see the sword, neither shall ye have famine; but I will -give you assured peace in this place. - -14:14 Then the LORD said unto me, The prophets prophesy lies in my -name: I sent them not, neither have I commanded them, neither spake -unto them: they prophesy unto you a false vision and divination, and a -thing of nought, and the deceit of their heart. - -14:15 Therefore thus saith the LORD concerning the prophets that -prophesy in my name, and I sent them not, yet they say, Sword and -famine shall not be in this land; By sword and famine shall those -prophets be consumed. - -14:16 And the people to whom they prophesy shall be cast out in the -streets of Jerusalem because of the famine and the sword; and they -shall have none to bury them, them, their wives, nor their sons, nor -their daughters: for I will pour their wickedness upon them. - -14:17 Therefore thou shalt say this word unto them; Let mine eyes run -down with tears night and day, and let them not cease: for the virgin -daughter of my people is broken with a great breach, with a very -grievous blow. - -14:18 If I go forth into the field, then behold the slain with the -sword! and if I enter into the city, then behold them that are sick -with famine! yea, both the prophet and the priest go about into a -land that they know not. - -14:19 Hast thou utterly rejected Judah? hath thy soul lothed Zion? why -hast thou smitten us, and there is no healing for us? we looked for -peace, and there is no good; and for the time of healing, and behold -trouble! 14:20 We acknowledge, O LORD, our wickedness, and the -iniquity of our fathers: for we have sinned against thee. - -14:21 Do not abhor us, for thy name's sake, do not disgrace the throne -of thy glory: remember, break not thy covenant with us. - -14:22 Are there any among the vanities of the Gentiles that can cause -rain? or can the heavens give showers? art not thou he, O LORD our -God? therefore we will wait upon thee: for thou hast made all these -things. - -15:1 Then said the LORD unto me, Though Moses and Samuel stood before -me, yet my mind could not be toward this people: cast them out of my -sight, and let them go forth. - -15:2 And it shall come to pass, if they say unto thee, Whither shall -we go forth? then thou shalt tell them, Thus saith the LORD; Such as -are for death, to death; and such as are for the sword, to the sword; -and such as are for the famine, to the famine; and such as are for the -captivity, to the captivity. - -15:3 And I will appoint over them four kinds, saith the LORD: the -sword to slay, and the dogs to tear, and the fowls of the heaven, and -the beasts of the earth, to devour and destroy. - -15:4 And I will cause them to be removed into all kingdoms of the -earth, because of Manasseh the son of Hezekiah king of Judah, for that -which he did in Jerusalem. - -15:5 For who shall have pity upon thee, O Jerusalem? or who shall -bemoan thee? or who shall go aside to ask how thou doest? 15:6 Thou -hast forsaken me, saith the LORD, thou art gone backward: therefore -will I stretch out my hand against thee, and destroy thee; I am weary -with repenting. - -15:7 And I will fan them with a fan in the gates of the land; I will -bereave them of children, I will destroy my people since they return -not from their ways. - -15:8 Their widows are increased to me above the sand of the seas: I -have brought upon them against the mother of the young men a spoiler -at noonday: I have caused him to fall upon it suddenly, and terrors -upon the city. - -15:9 She that hath borne seven languisheth: she hath given up the -ghost; her sun is gone down while it was yet day: she hath been -ashamed and confounded: and the residue of them will I deliver to the -sword before their enemies, saith the LORD. - -15:10 Woe is me, my mother, that thou hast borne me a man of strife -and a man of contention to the whole earth! I have neither lent on -usury, nor men have lent to me on usury; yet every one of them doth -curse me. - -15:11 The LORD said, Verily it shall be well with thy remnant; verily -I will cause the enemy to entreat thee well in the time of evil and in -the time of affliction. - -15:12 Shall iron break the northern iron and the steel? 15:13 Thy -substance and thy treasures will I give to the spoil without price, -and that for all thy sins, even in all thy borders. - -15:14 And I will make thee to pass with thine enemies into a land -which thou knowest not: for a fire is kindled in mine anger, which -shall burn upon you. - -15:15 O LORD, thou knowest: remember me, and visit me, and revenge me -of my persecutors; take me not away in thy longsuffering: know that -for thy sake I have suffered rebuke. - -15:16 Thy words were found, and I did eat them; and thy word was unto -me the joy and rejoicing of mine heart: for I am called by thy name, O -LORD God of hosts. - -15:17 I sat not in the assembly of the mockers, nor rejoiced; I sat -alone because of thy hand: for thou hast filled me with indignation. - -15:18 Why is my pain perpetual, and my wound incurable, which refuseth -to be healed? wilt thou be altogether unto me as a liar, and as waters -that fail? 15:19 Therefore thus saith the LORD, If thou return, then -will I bring thee again, and thou shalt stand before me: and if thou -take forth the precious from the vile, thou shalt be as my mouth: let -them return unto thee; but return not thou unto them. - -15:20 And I will make thee unto this people a fenced brasen wall: and -they shall fight against thee, but they shall not prevail against -thee: for I am with thee to save thee and to deliver thee, saith the -LORD. - -15:21 And I will deliver thee out of the hand of the wicked, and I -will redeem thee out of the hand of the terrible. - -16:1 The word of the LORD came also unto me, saying, 16:2 Thou shalt -not take thee a wife, neither shalt thou have sons or daughters in -this place. - -16:3 For thus saith the LORD concerning the sons and concerning the -daughters that are born in this place, and concerning their mothers -that bare them, and concerning their fathers that begat them in this -land; 16:4 They shall die of grievous deaths; they shall not be -lamented; neither shall they be buried; but they shall be as dung upon -the face of the earth: and they shall be consumed by the sword, and by -famine; and their carcases shall be meat for the fowls of heaven, and -for the beasts of the earth. - -16:5 For thus saith the LORD, Enter not into the house of mourning, -neither go to lament nor bemoan them: for I have taken away my peace -from this people, saith the LORD, even lovingkindness and mercies. - -16:6 Both the great and the small shall die in this land: they shall -not be buried, neither shall men lament for them, nor cut themselves, -nor make themselves bald for them: 16:7 Neither shall men tear -themselves for them in mourning, to comfort them for the dead; neither -shall men give them the cup of consolation to drink for their father -or for their mother. - -16:8 Thou shalt not also go into the house of feasting, to sit with -them to eat and to drink. - -16:9 For thus saith the LORD of hosts, the God of Israel; Behold, I -will cause to cease out of this place in your eyes, and in your days, -the voice of mirth, and the voice of gladness, the voice of the -bridegroom, and the voice of the bride. - -16:10 And it shall come to pass, when thou shalt shew this people all -these words, and they shall say unto thee, Wherefore hath the LORD -pronounced all this great evil against us? or what is our iniquity? or -what is our sin that we have committed against the LORD our God? -16:11 Then shalt thou say unto them, Because your fathers have -forsaken me, saith the LORD, and have walked after other gods, and -have served them, and have worshipped them, and have forsaken me, and -have not kept my law; 16:12 And ye have done worse than your fathers; -for, behold, ye walk every one after the imagination of his evil -heart, that they may not hearken unto me: 16:13 Therefore will I cast -you out of this land into a land that ye know not, neither ye nor your -fathers; and there shall ye serve other gods day and night; where I -will not shew you favour. - -16:14 Therefore, behold, the days come, saith the LORD, that it shall -no more be said, The LORD liveth, that brought up the children of -Israel out of the land of Egypt; 16:15 But, The LORD liveth, that -brought up the children of Israel from the land of the north, and from -all the lands whither he had driven them: and I will bring them again -into their land that I gave unto their fathers. - -16:16 Behold, I will send for many fishers, saith the LORD, and they -shall fish them; and after will I send for many hunters, and they -shall hunt them from every mountain, and from every hill, and out of -the holes of the rocks. - -16:17 For mine eyes are upon all their ways: they are not hid from my -face, neither is their iniquity hid from mine eyes. - -16:18 And first I will recompense their iniquity and their sin double; -because they have defiled my land, they have filled mine inheritance -with the carcases of their detestable and abominable things. - -16:19 O LORD, my strength, and my fortress, and my refuge in the day -of affliction, the Gentiles shall come unto thee from the ends of the -earth, and shall say, Surely our fathers have inherited lies, vanity, -and things wherein there is no profit. - -16:20 Shall a man make gods unto himself, and they are no gods? 16:21 -Therefore, behold, I will this once cause them to know, I will cause -them to know mine hand and my might; and they shall know that my name -is The LORD. - -17:1 The sin of Judah is written with a pen of iron, and with the -point of a diamond: it is graven upon the table of their heart, and -upon the horns of your altars; 17:2 Whilst their children remember -their altars and their groves by the green trees upon the high hills. - -17:3 O my mountain in the field, I will give thy substance and all thy -treasures to the spoil, and thy high places for sin, throughout all -thy borders. - -17:4 And thou, even thyself, shalt discontinue from thine heritage -that I gave thee; and I will cause thee to serve thine enemies in the -land which thou knowest not: for ye have kindled a fire in mine anger, -which shall burn for ever. - -17:5 Thus saith the LORD; Cursed be the man that trusteth in man, and -maketh flesh his arm, and whose heart departeth from the LORD. - -17:6 For he shall be like the heath in the desert, and shall not see -when good cometh; but shall inhabit the parched places in the -wilderness, in a salt land and not inhabited. - -17:7 Blessed is the man that trusteth in the LORD, and whose hope the -LORD is. - -17:8 For he shall be as a tree planted by the waters, and that -spreadeth out her roots by the river, and shall not see when heat -cometh, but her leaf shall be green; and shall not be careful in the -year of drought, neither shall cease from yielding fruit. - -17:9 The heart is deceitful above all things, and desperately wicked: -who can know it? 17:10 I the LORD search the heart, I try the reins, -even to give every man according to his ways, and according to the -fruit of his doings. - -17:11 As the partridge sitteth on eggs, and hatcheth them not; so he -that getteth riches, and not by right, shall leave them in the midst -of his days, and at his end shall be a fool. - -17:12 A glorious high throne from the beginning is the place of our -sanctuary. - -17:13 O LORD, the hope of Israel, all that forsake thee shall be -ashamed, and they that depart from me shall be written in the earth, -because they have forsaken the LORD, the fountain of living waters. - -17:14 Heal me, O LORD, and I shall be healed; save me, and I shall be -saved: for thou art my praise. - -17:15 Behold, they say unto me, Where is the word of the LORD? let it -come now. - -17:16 As for me, I have not hastened from being a pastor to follow -thee: neither have I desired the woeful day; thou knowest: that which -came out of my lips was right before thee. - -17:17 Be not a terror unto me: thou art my hope in the day of evil. - -17:18 Let them be confounded that persecute me, but let not me be -confounded: let them be dismayed, but let not me be dismayed: bring -upon them the day of evil, and destroy them with double destruction. - -17:19 Thus said the LORD unto me; Go and stand in the gate of the -children of the people, whereby the kings of Judah come in, and by the -which they go out, and in all the gates of Jerusalem; 17:20 And say -unto them, Hear ye the word of the LORD, ye kings of Judah, and all -Judah, and all the inhabitants of Jerusalem, that enter in by these -gates: 17:21 Thus saith the LORD; Take heed to yourselves, and bear no -burden on the sabbath day, nor bring it in by the gates of Jerusalem; -17:22 Neither carry forth a burden out of your houses on the sabbath -day, neither do ye any work, but hallow ye the sabbath day, as I -commanded your fathers. - -17:23 But they obeyed not, neither inclined their ear, but made their -neck stiff, that they might not hear, nor receive instruction. - -17:24 And it shall come to pass, if ye diligently hearken unto me, -saith the LORD, to bring in no burden through the gates of this city -on the sabbath day, but hallow the sabbath day, to do no work therein; -17:25 Then shall there enter into the gates of this city kings and -princes sitting upon the throne of David, riding in chariots and on -horses, they, and their princes, the men of Judah, and the inhabitants -of Jerusalem: and this city shall remain for ever. - -17:26 And they shall come from the cities of Judah, and from the -places about Jerusalem, and from the land of Benjamin, and from the -plain, and from the mountains, and from the south, bringing burnt -offerings, and sacrifices, and meat offerings, and incense, and -bringing sacrifices of praise, unto the house of the LORD. - -17:27 But if ye will not hearken unto me to hallow the sabbath day, -and not to bear a burden, even entering in at the gates of Jerusalem -on the sabbath day; then will I kindle a fire in the gates thereof, -and it shall devour the palaces of Jerusalem, and it shall not be -quenched. - -18:1 The word which came to Jeremiah from the LORD, saying, 18:2 -Arise, and go down to the potter's house, and there I will cause thee -to hear my words. - -18:3 Then I went down to the potter's house, and, behold, he wrought a -work on the wheels. - -18:4 And the vessel that he made of clay was marred in the hand of the -potter: so he made it again another vessel, as seemed good to the -potter to make it. - -18:5 Then the word of the LORD came to me, saying, 18:6 O house of -Israel, cannot I do with you as this potter? saith the LORD. Behold, -as the clay is in the potter's hand, so are ye in mine hand, O house -of Israel. - -18:7 At what instant I shall speak concerning a nation, and concerning -a kingdom, to pluck up, and to pull down, and to destroy it; 18:8 If -that nation, against whom I have pronounced, turn from their evil, I -will repent of the evil that I thought to do unto them. - -18:9 And at what instant I shall speak concerning a nation, and -concerning a kingdom, to build and to plant it; 18:10 If it do evil in -my sight, that it obey not my voice, then I will repent of the good, -wherewith I said I would benefit them. - -18:11 Now therefore go to, speak to the men of Judah, and to the -inhabitants of Jerusalem, saying, Thus saith the LORD; Behold, I frame -evil against you, and devise a device against you: return ye now every -one from his evil way, and make your ways and your doings good. - -18:12 And they said, There is no hope: but we will walk after our own -devices, and we will every one do the imagination of his evil heart. - -18:13 Therefore thus saith the LORD; Ask ye now among the heathen, who -hath heard such things: the virgin of Israel hath done a very horrible -thing. - -18:14 Will a man leave the snow of Lebanon which cometh from the rock -of the field? or shall the cold flowing waters that come from another -place be forsaken? 18:15 Because my people hath forgotten me, they -have burned incense to vanity, and they have caused them to stumble in -their ways from the ancient paths, to walk in paths, in a way not cast -up; 18:16 To make their land desolate, and a perpetual hissing; every -one that passeth thereby shall be astonished, and wag his head. - -18:17 I will scatter them as with an east wind before the enemy; I -will shew them the back, and not the face, in the day of their -calamity. - -18:18 Then said they, Come and let us devise devices against Jeremiah; -for the law shall not perish from the priest, nor counsel from the -wise, nor the word from the prophet. Come, and let us smite him with -the tongue, and let us not give heed to any of his words. - -18:19 Give heed to me, O LORD, and hearken to the voice of them that -contend with me. - -18:20 Shall evil be recompensed for good? for they have digged a pit -for my soul. Remember that I stood before thee to speak good for them, -and to turn away thy wrath from them. - -18:21 Therefore deliver up their children to the famine, and pour out -their blood by the force of the sword; and let their wives be bereaved -of their children, and be widows; and let their men be put to death; -let their young men be slain by the sword in battle. - -18:22 Let a cry be heard from their houses, when thou shalt bring a -troop suddenly upon them: for they have digged a pit to take me, and -hid snares for my feet. - -18:23 Yet, LORD, thou knowest all their counsel against me to slay me: -forgive not their iniquity, neither blot out their sin from thy sight, -but let them be overthrown before thee; deal thus with them in the -time of thine anger. - -19:1 Thus saith the LORD, Go and get a potter's earthen bottle, and -take of the ancients of the people, and of the ancients of the -priests; 19:2 And go forth unto the valley of the son of Hinnom, which -is by the entry of the east gate, and proclaim there the words that I -shall tell thee, 19:3 And say, Hear ye the word of the LORD, O kings -of Judah, and inhabitants of Jerusalem; Thus saith the LORD of hosts, -the God of Israel; Behold, I will bring evil upon this place, the -which whosoever heareth, his ears shall tingle. - -19:4 Because they have forsaken me, and have estranged this place, and -have burned incense in it unto other gods, whom neither they nor their -fathers have known, nor the kings of Judah, and have filled this place -with the blood of innocents; 19:5 They have built also the high places -of Baal, to burn their sons with fire for burnt offerings unto Baal, -which I commanded not, nor spake it, neither came it into my mind: -19:6 Therefore, behold, the days come, saith the LORD, that this place -shall no more be called Tophet, nor The valley of the son of Hinnom, -but The valley of slaughter. - -19:7 And I will make void the counsel of Judah and Jerusalem in this -place; and I will cause them to fall by the sword before their -enemies, and by the hands of them that seek their lives: and their -carcases will I give to be meat for the fowls of the heaven, and for -the beasts of the earth. - -19:8 And I will make this city desolate, and an hissing; every one -that passeth thereby shall be astonished and hiss because of all the -plagues thereof. - -19:9 And I will cause them to eat the flesh of their sons and the -flesh of their daughters, and they shall eat every one the flesh of -his friend in the siege and straitness, wherewith their enemies, and -they that seek their lives, shall straiten them. - -19:10 Then shalt thou break the bottle in the sight of the men that go -with thee, 19:11 And shalt say unto them, Thus saith the LORD of -hosts; Even so will I break this people and this city, as one breaketh -a potter's vessel, that cannot be made whole again: and they shall -bury them in Tophet, till there be no place to bury. - -19:12 Thus will I do unto this place, saith the LORD, and to the -inhabitants thereof, and even make this city as Tophet: 19:13 And the -houses of Jerusalem, and the houses of the kings of Judah, shall be -defiled as the place of Tophet, because of all the houses upon whose -roofs they have burned incense unto all the host of heaven, and have -poured out drink offerings unto other gods. - -19:14 Then came Jeremiah from Tophet, whither the LORD had sent him to -prophesy; and he stood in the court of the LORD's house; and said to -all the people, 19:15 Thus saith the LORD of hosts, the God of Israel; -Behold, I will bring upon this city and upon all her towns all the -evil that I have pronounced against it, because they have hardened -their necks, that they might not hear my words. - -20:1 Now Pashur the son of Immer the priest, who was also chief -governor in the house of the LORD, heard that Jeremiah prophesied -these things. - -20:2 Then Pashur smote Jeremiah the prophet, and put him in the stocks -that were in the high gate of Benjamin, which was by the house of the -LORD. - -20:3 And it came to pass on the morrow, that Pashur brought forth -Jeremiah out of the stocks. Then said Jeremiah unto him, The LORD hath -not called thy name Pashur, but Magormissabib. - -20:4 For thus saith the LORD, Behold, I will make thee a terror to -thyself, and to all thy friends: and they shall fall by the sword of -their enemies, and thine eyes shall behold it: and I will give all -Judah into the hand of the king of Babylon, and he shall carry them -captive into Babylon, and shall slay them with the sword. - -20:5 Moreover I will deliver all the strength of this city, and all -the labours thereof, and all the precious things thereof, and all the -treasures of the kings of Judah will I give into the hand of their -enemies, which shall spoil them, and take them, and carry them to -Babylon. - -20:6 And thou, Pashur, and all that dwell in thine house shall go into -captivity: and thou shalt come to Babylon, and there thou shalt die, -and shalt be buried there, thou, and all thy friends, to whom thou -hast prophesied lies. - -20:7 O LORD, thou hast deceived me, and I was deceived; thou art -stronger than I, and hast prevailed: I am in derision daily, every one -mocketh me. - -20:8 For since I spake, I cried out, I cried violence and spoil; -because the word of the LORD was made a reproach unto me, and a -derision, daily. - -20:9 Then I said, I will not make mention of him, nor speak any more -in his name. But his word was in mine heart as a burning fire shut up -in my bones, and I was weary with forbearing, and I could not stay. - -20:10 For I heard the defaming of many, fear on every side. Report, -say they, and we will report it. All my familiars watched for my -halting, saying, Peradventure he will be enticed, and we shall prevail -against him, and we shall take our revenge on him. - -20:11 But the LORD is with me as a mighty terrible one: therefore my -persecutors shall stumble, and they shall not prevail: they shall be -greatly ashamed; for they shall not prosper: their everlasting -confusion shall never be forgotten. - -20:12 But, O LORD of hosts, that triest the righteous, and seest the -reins and the heart, let me see thy vengeance on them: for unto thee -have I opened my cause. - -20:13 Sing unto the LORD, praise ye the LORD: for he hath delivered -the soul of the poor from the hand of evildoers. - -20:14 Cursed be the day wherein I was born: let not the day wherein my -mother bare me be blessed. - -20:15 Cursed be the man who brought tidings to my father, saying, A -man child is born unto thee; making him very glad. - -20:16 And let that man be as the cities which the LORD overthrew, and -repented not: and let him hear the cry in the morning, and the -shouting at noontide; 20:17 Because he slew me not from the womb; or -that my mother might have been my grave, and her womb to be always -great with me. - -20:18 Wherefore came I forth out of the womb to see labour and sorrow, -that my days should be consumed with shame? 21:1 The word which came -unto Jeremiah from the LORD, when king Zedekiah sent unto him Pashur -the son of Melchiah, and Zephaniah the son of Maaseiah the priest, -saying, 21:2 Enquire, I pray thee, of the LORD for us; for -Nebuchadrezzar king of Babylon maketh war against us; if so be that -the LORD will deal with us according to all his wondrous works, that -he may go up from us. - -21:3 Then said Jeremiah unto them, Thus shall ye say to Zedekiah: 21:4 -Thus saith the LORD God of Israel; Behold, I will turn back the -weapons of war that are in your hands, wherewith ye fight against the -king of Babylon, and against the Chaldeans, which besiege you without -the walls, and I will assemble them into the midst of this city. - -21:5 And I myself will fight against you with an outstretched hand and -with a strong arm, even in anger, and in fury, and in great wrath. - -21:6 And I will smite the inhabitants of this city, both man and -beast: they shall die of a great pestilence. - -21:7 And afterward, saith the LORD, I will deliver Zedekiah king of -Judah, and his servants, and the people, and such as are left in this -city from the pestilence, from the sword, and from the famine, into -the hand of Nebuchadrezzar king of Babylon, and into the hand of their -enemies, and into the hand of those that seek their life: and he shall -smite them with the edge of the sword; he shall not spare them, -neither have pity, nor have mercy. - -21:8 And unto this people thou shalt say, Thus saith the LORD; Behold, -I set before you the way of life, and the way of death. - -21:9 He that abideth in this city shall die by the sword, and by the -famine, and by the pestilence: but he that goeth out, and falleth to -the Chaldeans that besiege you, he shall live, and his life shall be -unto him for a prey. - -21:10 For I have set my face against this city for evil, and not for -good, saith the LORD: it shall be given into the hand of the king of -Babylon, and he shall burn it with fire. - -21:11 And touching the house of the king of Judah, say, Hear ye the -word of the LORD; 21:12 O house of David, thus saith the LORD; Execute -judgment in the morning, and deliver him that is spoiled out of the -hand of the oppressor, lest my fury go out like fire, and burn that -none can quench it, because of the evil of your doings. - -21:13 Behold, I am against thee, O inhabitant of the valley, and rock -of the plain, saith the LORD; which say, Who shall come down against -us? or who shall enter into our habitations? 21:14 But I will punish -you according to the fruit of your doings, saith the LORD: and I will -kindle a fire in the forest thereof, and it shall devour all things -round about it. - -22:1 Thus saith the LORD; Go down to the house of the king of Judah, -and speak there this word, 22:2 And say, Hear the word of the LORD, O -king of Judah, that sittest upon the throne of David, thou, and thy -servants, and thy people that enter in by these gates: 22:3 Thus saith -the LORD; Execute ye judgment and righteousness, and deliver the -spoiled out of the hand of the oppressor: and do no wrong, do no -violence to the stranger, the fatherless, nor the widow, neither shed -innocent blood in this place. - -22:4 For if ye do this thing indeed, then shall there enter in by the -gates of this house kings sitting upon the throne of David, riding in -chariots and on horses, he, and his servants, and his people. - -22:5 But if ye will not hear these words, I swear by myself, saith the -LORD, that this house shall become a desolation. - -22:6 For thus saith the LORD unto the king's house of Judah; Thou art -Gilead unto me, and the head of Lebanon: yet surely I will make thee a -wilderness, and cities which are not inhabited. - -22:7 And I will prepare destroyers against thee, every one with his -weapons: and they shall cut down thy choice cedars, and cast them into -the fire. - -22:8 And many nations shall pass by this city, and they shall say -every man to his neighbour, Wherefore hath the LORD done thus unto -this great city? 22:9 Then they shall answer, Because they have -forsaken the covenant of the LORD their God, and worshipped other -gods, and served them. - -22:10 Weep ye not for the dead, neither bemoan him: but weep sore for -him that goeth away: for he shall return no more, nor see his native -country. - -22:11 For thus saith the LORD touching Shallum the son of Josiah king -of Judah, which reigned instead of Josiah his father, which went forth -out of this place; He shall not return thither any more: 22:12 But he -shall die in the place whither they have led him captive, and shall -see this land no more. - -22:13 Woe unto him that buildeth his house by unrighteousness, and his -chambers by wrong; that useth his neighbour's service without wages, -and giveth him not for his work; 22:14 That saith, I will build me a -wide house and large chambers, and cutteth him out windows; and it is -cieled with cedar, and painted with vermilion. - -22:15 Shalt thou reign, because thou closest thyself in cedar? did not -thy father eat and drink, and do judgment and justice, and then it was -well with him? 22:16 He judged the cause of the poor and needy; then -it was well with him: was not this to know me? saith the LORD. - -22:17 But thine eyes and thine heart are not but for thy covetousness, -and for to shed innocent blood, and for oppression, and for violence, -to do it. - -22:18 Therefore thus saith the LORD concerning Jehoiakim the son of -Josiah king of Judah; They shall not lament for him, saying, Ah my -brother! or, Ah sister! they shall not lament for him, saying, Ah -lord! or, Ah his glory! 22:19 He shall be buried with the burial of -an ass, drawn and cast forth beyond the gates of Jerusalem. - -22:20 Go up to Lebanon, and cry; and lift up thy voice in Bashan, and -cry from the passages: for all thy lovers are destroyed. - -22:21 I spake unto thee in thy prosperity; but thou saidst, I will not -hear. This hath been thy manner from thy youth, that thou obeyedst not -my voice. - -22:22 The wind shall eat up all thy pastors, and thy lovers shall go -into captivity: surely then shalt thou be ashamed and confounded for -all thy wickedness. - -22:23 O inhabitant of Lebanon, that makest thy nest in the cedars, how -gracious shalt thou be when pangs come upon thee, the pain as of a -woman in travail! 22:24 As I live, saith the LORD, though Coniah the -son of Jehoiakim king of Judah were the signet upon my right hand, yet -would I pluck thee thence; 22:25 And I will give thee into the hand of -them that seek thy life, and into the hand of them whose face thou -fearest, even into the hand of Nebuchadrezzar king of Babylon, and -into the hand of the Chaldeans. - -22:26 And I will cast thee out, and thy mother that bare thee, into -another country, where ye were not born; and there shall ye die. - -22:27 But to the land whereunto they desire to return, thither shall -they not return. - -22:28 Is this man Coniah a despised broken idol? is he a vessel -wherein is no pleasure? wherefore are they cast out, he and his seed, -and are cast into a land which they know not? 22:29 O earth, earth, -earth, hear the word of the LORD. - -22:30 Thus saith the LORD, Write ye this man childless, a man that -shall not prosper in his days: for no man of his seed shall prosper, -sitting upon the throne of David, and ruling any more in Judah. - -23:1 Woe be unto the pastors that destroy and scatter the sheep of my -pasture! saith the LORD. - -23:2 Therefore thus saith the LORD God of Israel against the pastors -that feed my people; Ye have scattered my flock, and driven them away, -and have not visited them: behold, I will visit upon you the evil of -your doings, saith the LORD. - -23:3 And I will gather the remnant of my flock out of all countries -whither I have driven them, and will bring them again to their folds; -and they shall be fruitful and increase. - -23:4 And I will set up shepherds over them which shall feed them: and -they shall fear no more, nor be dismayed, neither shall they be -lacking, saith the LORD. - -23:5 Behold, the days come, saith the LORD, that I will raise unto -David a righteous Branch, and a King shall reign and prosper, and -shall execute judgment and justice in the earth. - -23:6 In his days Judah shall be saved, and Israel shall dwell safely: -and this is his name whereby he shall be called, THE LORD OUR -RIGHTEOUSNESS. - -23:7 Therefore, behold, the days come, saith the LORD, that they shall -no more say, The LORD liveth, which brought up the children of Israel -out of the land of Egypt; 23:8 But, The LORD liveth, which brought up -and which led the seed of the house of Israel out of the north -country, and from all countries whither I had driven them; and they -shall dwell in their own land. - -23:9 Mine heart within me is broken because of the prophets; all my -bones shake; I am like a drunken man, and like a man whom wine hath -overcome, because of the LORD, and because of the words of his -holiness. - -23:10 For the land is full of adulterers; for because of swearing the -land mourneth; the pleasant places of the wilderness are dried up, and -their course is evil, and their force is not right. - -23:11 For both prophet and priest are profane; yea, in my house have I -found their wickedness, saith the LORD. - -23:12 Wherefore their way shall be unto them as slippery ways in the -darkness: they shall be driven on, and fall therein: for I will bring -evil upon them, even the year of their visitation, saith the LORD. - -23:13 And I have seen folly in the prophets of Samaria; they -prophesied in Baal, and caused my people Israel to err. - -23:14 I have seen also in the prophets of Jerusalem an horrible thing: -they commit adultery, and walk in lies: they strengthen also the hands -of evildoers, that none doth return from his wickedness; they are all -of them unto me as Sodom, and the inhabitants thereof as Gomorrah. - -23:15 Therefore thus saith the LORD of hosts concerning the prophets; -Behold, I will feed them with wormwood, and make them drink the water -of gall: for from the prophets of Jerusalem is profaneness gone forth -into all the land. - -23:16 Thus saith the LORD of hosts, Hearken not unto the words of the -prophets that prophesy unto you: they make you vain: they speak a -vision of their own heart, and not out of the mouth of the LORD. - -23:17 They say still unto them that despise me, The LORD hath said, Ye -shall have peace; and they say unto every one that walketh after the -imagination of his own heart, No evil shall come upon you. - -23:18 For who hath stood in the counsel of the LORD, and hath -perceived and heard his word? who hath marked his word, and heard it? -23:19 Behold, a whirlwind of the LORD is gone forth in fury, even a -grievous whirlwind: it shall fall grievously upon the head of the -wicked. - -23:20 The anger of the LORD shall not return, until he have executed, -and till he have performed the thoughts of his heart: in the latter -days ye shall consider it perfectly. - -23:21 I have not sent these prophets, yet they ran: I have not spoken -to them, yet they prophesied. - -23:22 But if they had stood in my counsel, and had caused my people to -hear my words, then they should have turned them from their evil way, -and from the evil of their doings. - -23:23 Am I a God at hand, saith the LORD, and not a God afar off? -23:24 Can any hide himself in secret places that I shall not see him? -saith the LORD. Do not I fill heaven and earth? saith the LORD. - -23:25 I have heard what the prophets said, that prophesy lies in my -name, saying, I have dreamed, I have dreamed. - -23:26 How long shall this be in the heart of the prophets that -prophesy lies? yea, they are prophets of the deceit of their own -heart; 23:27 Which think to cause my people to forget my name by their -dreams which they tell every man to his neighbour, as their fathers -have forgotten my name for Baal. - -23:28 The prophet that hath a dream, let him tell a dream; and he that -hath my word, let him speak my word faithfully. What is the chaff to -the wheat? saith the LORD. - -23:29 Is not my word like as a fire? saith the LORD; and like a hammer -that breaketh the rock in pieces? 23:30 Therefore, behold, I am -against the prophets, saith the LORD, that steal my words every one -from his neighbour. - -23:31 Behold, I am against the prophets, saith the LORD, that use -their tongues, and say, He saith. - -23:32 Behold, I am against them that prophesy false dreams, saith the -LORD, and do tell them, and cause my people to err by their lies, and -by their lightness; yet I sent them not, nor commanded them: therefore -they shall not profit this people at all, saith the LORD. - -23:33 And when this people, or the prophet, or a priest, shall ask -thee, saying, What is the burden of the LORD? thou shalt then say unto -them, What burden? I will even forsake you, saith the LORD. - -23:34 And as for the prophet, and the priest, and the people, that -shall say, The burden of the LORD, I will even punish that man and his -house. - -23:35 Thus shall ye say every one to his neighbour, and every one to -his brother, What hath the LORD answered? and, What hath the LORD -spoken? 23:36 And the burden of the LORD shall ye mention no more: -for every man's word shall be his burden; for ye have perverted the -words of the living God, of the LORD of hosts our God. - -23:37 Thus shalt thou say to the prophet, What hath the LORD answered -thee? and, What hath the LORD spoken? 23:38 But since ye say, The -burden of the LORD; therefore thus saith the LORD; Because ye say this -word, The burden of the LORD, and I have sent unto you, saying, Ye -shall not say, The burden of the LORD; 23:39 Therefore, behold, I, -even I, will utterly forget you, and I will forsake you, and the city -that I gave you and your fathers, and cast you out of my presence: -23:40 And I will bring an everlasting reproach upon you, and a -perpetual shame, which shall not be forgotten. - -24:1 The LORD shewed me, and, behold, two baskets of figs were set -before the temple of the LORD, after that Nebuchadrezzar king of -Babylon had carried away captive Jeconiah the son of Jehoiakim king of -Judah, and the princes of Judah, with the carpenters and smiths, from -Jerusalem, and had brought them to Babylon. - -24:2 One basket had very good figs, even like the figs that are first -ripe: and the other basket had very naughty figs, which could not be -eaten, they were so bad. - -24:3 Then said the LORD unto me, What seest thou, Jeremiah? And I -said, Figs; the good figs, very good; and the evil, very evil, that -cannot be eaten, they are so evil. - -24:4 Again the word of the LORD came unto me, saying, 24:5 Thus saith -the LORD, the God of Israel; Like these good figs, so will I -acknowledge them that are carried away captive of Judah, whom I have -sent out of this place into the land of the Chaldeans for their good. - -24:6 For I will set mine eyes upon them for good, and I will bring -them again to this land: and I will build them, and not pull them -down; and I will plant them, and not pluck them up. - -24:7 And I will give them an heart to know me, that I am the LORD: and -they shall be my people, and I will be their God: for they shall -return unto me with their whole heart. - -24:8 And as the evil figs, which cannot be eaten, they are so evil; -surely thus saith the LORD, So will I give Zedekiah the king of Judah, -and his princes, and the residue of Jerusalem, that remain in this -land, and them that dwell in the land of Egypt: 24:9 And I will -deliver them to be removed into all the kingdoms of the earth for -their hurt, to be a reproach and a proverb, a taunt and a curse, in -all places whither I shall drive them. - -24:10 And I will send the sword, the famine, and the pestilence, among -them, till they be consumed from off the land that I gave unto them -and to their fathers. - -25:1 The word that came to Jeremiah concerning all the people of Judah -in the fourth year of Jehoiakim the son of Josiah king of Judah, that -was the first year of Nebuchadrezzar king of Babylon; 25:2 The which -Jeremiah the prophet spake unto all the people of Judah, and to all -the inhabitants of Jerusalem, saying, 25:3 From the thirteenth year of -Josiah the son of Amon king of Judah, even unto this day, that is the -three and twentieth year, the word of the LORD hath come unto me, and -I have spoken unto you, rising early and speaking; but ye have not -hearkened. - -25:4 And the LORD hath sent unto you all his servants the prophets, -rising early and sending them; but ye have not hearkened, nor inclined -your ear to hear. - -25:5 They said, Turn ye again now every one from his evil way, and -from the evil of your doings, and dwell in the land that the LORD hath -given unto you and to your fathers for ever and ever: 25:6 And go not -after other gods to serve them, and to worship them, and provoke me -not to anger with the works of your hands; and I will do you no hurt. - -25:7 Yet ye have not hearkened unto me, saith the LORD; that ye might -provoke me to anger with the works of your hands to your own hurt. - -25:8 Therefore thus saith the LORD of hosts; Because ye have not heard -my words, 25:9 Behold, I will send and take all the families of the -north, saith the LORD, and Nebuchadrezzar the king of Babylon, my -servant, and will bring them against this land, and against the -inhabitants thereof, and against all these nations round about, and -will utterly destroy them, and make them an astonishment, and an -hissing, and perpetual desolations. - -25:10 Moreover I will take from them the voice of mirth, and the voice -of gladness, the voice of the bridegroom, and the voice of the bride, -the sound of the millstones, and the light of the candle. - -25:11 And this whole land shall be a desolation, and an astonishment; -and these nations shall serve the king of Babylon seventy years. - -25:12 And it shall come to pass, when seventy years are accomplished, -that I will punish the king of Babylon, and that nation, saith the -LORD, for their iniquity, and the land of the Chaldeans, and will make -it perpetual desolations. - -25:13 And I will bring upon that land all my words which I have -pronounced against it, even all that is written in this book, which -Jeremiah hath prophesied against all the nations. - -25:14 For many nations and great kings shall serve themselves of them -also: and I will recompense them according to their deeds, and -according to the works of their own hands. - -25:15 For thus saith the LORD God of Israel unto me; Take the wine cup -of this fury at my hand, and cause all the nations, to whom I send -thee, to drink it. - -25:16 And they shall drink, and be moved, and be mad, because of the -sword that I will send among them. - -25:17 Then took I the cup at the LORD's hand, and made all the nations -to drink, unto whom the LORD had sent me: 25:18 To wit, Jerusalem, and -the cities of Judah, and the kings thereof, and the princes thereof, -to make them a desolation, an astonishment, an hissing, and a curse; -as it is this day; 25:19 Pharaoh king of Egypt, and his servants, and -his princes, and all his people; 25:20 And all the mingled people, and -all the kings of the land of Uz, and all the kings of the land of the -Philistines, and Ashkelon, and Azzah, and Ekron, and the remnant of -Ashdod, 25:21 Edom, and Moab, and the children of Ammon, 25:22 And all -the kings of Tyrus, and all the kings of Zidon, and the kings of the -isles which are beyond the sea, 25:23 Dedan, and Tema, and Buz, and -all that are in the utmost corners, 25:24 And all the kings of Arabia, -and all the kings of the mingled people that dwell in the desert, -25:25 And all the kings of Zimri, and all the kings of Elam, and all -the kings of the Medes, 25:26 And all the kings of the north, far and -near, one with another, and all the kingdoms of the world, which are -upon the face of the earth: and the king of Sheshach shall drink after -them. - -25:27 Therefore thou shalt say unto them, Thus saith the LORD of -hosts, the God of Israel; Drink ye, and be drunken, and spue, and -fall, and rise no more, because of the sword which I will send among -you. - -25:28 And it shall be, if they refuse to take the cup at thine hand to -drink, then shalt thou say unto them, Thus saith the LORD of hosts; Ye -shall certainly drink. - -25:29 For, lo, I begin to bring evil on the city which is called by my -name, and should ye be utterly unpunished? Ye shall not be unpunished: -for I will call for a sword upon all the inhabitants of the earth, -saith the LORD of hosts. - -25:30 Therefore prophesy thou against them all these words, and say -unto them, The LORD shall roar from on high, and utter his voice from -his holy habitation; he shall mightily roar upon his habitation; he -shall give a shout, as they that tread the grapes, against all the -inhabitants of the earth. - -25:31 A noise shall come even to the ends of the earth; for the LORD -hath a controversy with the nations, he will plead with all flesh; he -will give them that are wicked to the sword, saith the LORD. - -25:32 Thus saith the LORD of hosts, Behold, evil shall go forth from -nation to nation, and a great whirlwind shall be raised up from the -coasts of the earth. - -25:33 And the slain of the LORD shall be at that day from one end of -the earth even unto the other end of the earth: they shall not be -lamented, neither gathered, nor buried; they shall be dung upon the -ground. - -25:34 Howl, ye shepherds, and cry; and wallow yourselves in the ashes, -ye principal of the flock: for the days of your slaughter and of your -dispersions are accomplished; and ye shall fall like a pleasant -vessel. - -25:35 And the shepherds shall have no way to flee, nor the principal -of the flock to escape. - -25:36 A voice of the cry of the shepherds, and an howling of the -principal of the flock, shall be heard: for the LORD hath spoiled -their pasture. - -25:37 And the peaceable habitations are cut down because of the fierce -anger of the LORD. - -25:38 He hath forsaken his covert, as the lion: for their land is -desolate because of the fierceness of the oppressor, and because of -his fierce anger. - -26:1 In the beginning of the reign of Jehoiakim the son of Josiah king -of Judah came this word from the LORD, saying, 26:2 Thus saith the -LORD; Stand in the court of the LORD's house, and speak unto all the -cities of Judah, which come to worship in the LORD's house, all the -words that I command thee to speak unto them; diminish not a word: -26:3 If so be they will hearken, and turn every man from his evil way, -that I may repent me of the evil, which I purpose to do unto them -because of the evil of their doings. - -26:4 And thou shalt say unto them, Thus saith the LORD; If ye will not -hearken to me, to walk in my law, which I have set before you, 26:5 To -hearken to the words of my servants the prophets, whom I sent unto -you, both rising up early, and sending them, but ye have not -hearkened; 26:6 Then will I make this house like Shiloh, and will make -this city a curse to all the nations of the earth. - -26:7 So the priests and the prophets and all the people heard Jeremiah -speaking these words in the house of the LORD. - -26:8 Now it came to pass, when Jeremiah had made an end of speaking -all that the LORD had commanded him to speak unto all the people, that -the priests and the prophets and all the people took him, saying, Thou -shalt surely die. - -26:9 Why hast thou prophesied in the name of the LORD, saying, This -house shall be like Shiloh, and this city shall be desolate without an -inhabitant? And all the people were gathered against Jeremiah in the -house of the LORD. - -26:10 When the princes of Judah heard these things, then they came up -from the king's house unto the house of the LORD, and sat down in the -entry of the new gate of the LORD's house. - -26:11 Then spake the priests and the prophets unto the princes and to -all the people, saying, This man is worthy to die; for he hath -prophesied against this city, as ye have heard with your ears. - -26:12 Then spake Jeremiah unto all the princes and to all the people, -saying, The LORD sent me to prophesy against this house and against -this city all the words that ye have heard. - -26:13 Therefore now amend your ways and your doings, and obey the -voice of the LORD your God; and the LORD will repent him of the evil -that he hath pronounced against you. - -26:14 As for me, behold, I am in your hand: do with me as seemeth good -and meet unto you. - -26:15 But know ye for certain, that if ye put me to death, ye shall -surely bring innocent blood upon yourselves, and upon this city, and -upon the inhabitants thereof: for of a truth the LORD hath sent me -unto you to speak all these words in your ears. - -26:16 Then said the princes and all the people unto the priests and to -the prophets; This man is not worthy to die: for he hath spoken to us -in the name of the LORD our God. - -26:17 Then rose up certain of the elders of the land, and spake to all -the assembly of the people, saying, 26:18 Micah the Morasthite -prophesied in the days of Hezekiah king of Judah, and spake to all the -people of Judah, saying, Thus saith the LORD of hosts; Zion shall be -plowed like a field, and Jerusalem shall become heaps, and the -mountain of the house as the high places of a forest. - -26:19 Did Hezekiah king of Judah and all Judah put him at all to -death? did he not fear the LORD, and besought the LORD, and the LORD -repented him of the evil which he had pronounced against them? Thus -might we procure great evil against our souls. - -26:20 And there was also a man that prophesied in the name of the -LORD, Urijah the son of Shemaiah of Kirjathjearim, who prophesied -against this city and against this land according to all the words of -Jeremiah. - -26:21 And when Jehoiakim the king, with all his mighty men, and all -the princes, heard his words, the king sought to put him to death: but -when Urijah heard it, he was afraid, and fled, and went into Egypt; -26:22 And Jehoiakim the king sent men into Egypt, namely, Elnathan the -son of Achbor, and certain men with him into Egypt. - -26:23 And they fetched forth Urijah out of Egypt, and brought him unto -Jehoiakim the king; who slew him with the sword, and cast his dead -body into the graves of the common people. - -26:24 Nevertheless the hand of Ahikam the son of Shaphan was with -Jeremiah, that they should not give him into the hand of the people to -put him to death. - -27:1 In the beginning of the reign of Jehoiakim the son of Josiah king -of Judah came this word unto Jeremiah from the LORD, saying, 27:2 Thus -saith the LORD to me; Make thee bonds and yokes, and put them upon thy -neck, 27:3 And send them to the king of Edom, and to the king of Moab, -and to the king of the Ammonites, and to the king of Tyrus, and to the -king of Zidon, by the hand of the messengers which come to Jerusalem -unto Zedekiah king of Judah; 27:4 And command them to say unto their -masters, Thus saith the LORD of hosts, the God of Israel; Thus shall -ye say unto your masters; 27:5 I have made the earth, the man and the -beast that are upon the ground, by my great power and by my -outstretched arm, and have given it unto whom it seemed meet unto me. - -27:6 And now have I given all these lands into the hand of -Nebuchadnezzar the king of Babylon, my servant; and the beasts of the -field have I given him also to serve him. - -27:7 And all nations shall serve him, and his son, and his son's son, -until the very time of his land come: and then many nations and great -kings shall serve themselves of him. - -27:8 And it shall come to pass, that the nation and kingdom which will -not serve the same Nebuchadnezzar the king of Babylon, and that will -not put their neck under the yoke of the king of Babylon, that nation -will I punish, saith the LORD, with the sword, and with the famine, -and with the pestilence, until I have consumed them by his hand. - -27:9 Therefore hearken not ye to your prophets, nor to your diviners, -nor to your dreamers, nor to your enchanters, nor to your sorcerers, -which speak unto you, saying, Ye shall not serve the king of Babylon: -27:10 For they prophesy a lie unto you, to remove you far from your -land; and that I should drive you out, and ye should perish. - -27:11 But the nations that bring their neck under the yoke of the king -of Babylon, and serve him, those will I let remain still in their own -land, saith the LORD; and they shall till it, and dwell therein. - -27:12 I spake also to Zedekiah king of Judah according to all these -words, saying, Bring your necks under the yoke of the king of Babylon, -and serve him and his people, and live. - -27:13 Why will ye die, thou and thy people, by the sword, by the -famine, and by the pestilence, as the LORD hath spoken against the -nation that will not serve the king of Babylon? 27:14 Therefore -hearken not unto the words of the prophets that speak unto you, -saying, Ye shall not serve the king of Babylon: for they prophesy a -lie unto you. - -27:15 For I have not sent them, saith the LORD, yet they prophesy a -lie in my name; that I might drive you out, and that ye might perish, -ye, and the prophets that prophesy unto you. - -27:16 Also I spake to the priests and to all this people, saying, Thus -saith the LORD; Hearken not to the words of your prophets that -prophesy unto you, saying, Behold, the vessels of the LORD's house -shall now shortly be brought again from Babylon: for they prophesy a -lie unto you. - -27:17 Hearken not unto them; serve the king of Babylon, and live: -wherefore should this city be laid waste? 27:18 But if they be -prophets, and if the word of the LORD be with them, let them now make -intercession to the LORD of hosts, that the vessels which are left in -the house of the LORD, and in the house of the king of Judah, and at -Jerusalem, go not to Babylon. - -27:19 For thus saith the LORD of hosts concerning the pillars, and -concerning the sea, and concerning the bases, and concerning the -residue of the vessels that remain in this city. - -27:20 Which Nebuchadnezzar king of Babylon took not, when he carried -away captive Jeconiah the son of Jehoiakim king of Judah from -Jerusalem to Babylon, and all the nobles of Judah and Jerusalem; 27:21 -Yea, thus saith the LORD of hosts, the God of Israel, concerning the -vessels that remain in the house of the LORD, and in the house of the -king of Judah and of Jerusalem; 27:22 They shall be carried to -Babylon, and there shall they be until the day that I visit them, -saith the LORD; then will I bring them up, and restore them to this -place. - -28:1 And it came to pass the same year, in the beginning of the reign -of Zedekiah king of Judah, in the fourth year, and in the fifth month, -that Hananiah the son of Azur the prophet, which was of Gibeon, spake -unto me in the house of the LORD, in the presence of the priests and -of all the people, saying, 28:2 Thus speaketh the LORD of hosts, the -God of Israel, saying, I have broken the yoke of the king of Babylon. - -28:3 Within two full years will I bring again into this place all the -vessels of the LORD's house, that Nebuchadnezzar king of Babylon took -away from this place, and carried them to Babylon: 28:4 And I will -bring again to this place Jeconiah the son of Jehoiakim king of Judah, -with all the captives of Judah, that went into Babylon, saith the -LORD: for I will break the yoke of the king of Babylon. - -28:5 Then the prophet Jeremiah said unto the prophet Hananiah in the -presence of the priests, and in the presence of all the people that -stood in the house of the LORD, 28:6 Even the prophet Jeremiah said, -Amen: the LORD do so: the LORD perform thy words which thou hast -prophesied, to bring again the vessels of the LORD's house, and all -that is carried away captive, from Babylon into this place. - -28:7 Nevertheless hear thou now this word that I speak in thine ears, -and in the ears of all the people; 28:8 The prophets that have been -before me and before thee of old prophesied both against many -countries, and against great kingdoms, of war, and of evil, and of -pestilence. - -28:9 The prophet which prophesieth of peace, when the word of the -prophet shall come to pass, then shall the prophet be known, that the -LORD hath truly sent him. - -28:10 Then Hananiah the prophet took the yoke from off the prophet -Jeremiah's neck, and brake it. - -28:11 And Hananiah spake in the presence of all the people, saying, -Thus saith the LORD; Even so will I break the yoke of Nebuchadnezzar -king of Babylon from the neck of all nations within the space of two -full years. And the prophet Jeremiah went his way. - -28:12 Then the word of the LORD came unto Jeremiah the prophet, after -that Hananiah the prophet had broken the yoke from off the neck of the -prophet Jeremiah, saying, 28:13 Go and tell Hananiah, saying, Thus -saith the LORD; Thou hast broken the yokes of wood; but thou shalt -make for them yokes of iron. - -28:14 For thus saith the LORD of hosts, the God of Israel; I have put -a yoke of iron upon the neck of all these nations, that they may serve -Nebuchadnezzar king of Babylon; and they shall serve him: and I have -given him the beasts of the field also. - -28:15 Then said the prophet Jeremiah unto Hananiah the prophet, Hear -now, Hananiah; The LORD hath not sent thee; but thou makest this -people to trust in a lie. - -28:16 Therefore thus saith the LORD; Behold, I will cast thee from off -the face of the earth: this year thou shalt die, because thou hast -taught rebellion against the LORD. - -28:17 So Hananiah the prophet died the same year in the seventh month. - -29:1 Now these are the words of the letter that Jeremiah the prophet -sent from Jerusalem unto the residue of the elders which were carried -away captives, and to the priests, and to the prophets, and to all the -people whom Nebuchadnezzar had carried away captive from Jerusalem to -Babylon; 29:2 (After that Jeconiah the king, and the queen, and the -eunuchs, the princes of Judah and Jerusalem, and the carpenters, and -the smiths, were departed from Jerusalem;) 29:3 By the hand of Elasah -the son of Shaphan, and Gemariah the son of Hilkiah, (whom Zedekiah -king of Judah sent unto Babylon to Nebuchadnezzar king of Babylon) -saying, 29:4 Thus saith the LORD of hosts, the God of Israel, unto all -that are carried away captives, whom I have caused to be carried away -from Jerusalem unto Babylon; 29:5 Build ye houses, and dwell in them; -and plant gardens, and eat the fruit of them; 29:6 Take ye wives, and -beget sons and daughters; and take wives for your sons, and give your -daughters to husbands, that they may bear sons and daughters; that ye -may be increased there, and not diminished. - -29:7 And seek the peace of the city whither I have caused you to be -carried away captives, and pray unto the LORD for it: for in the peace -thereof shall ye have peace. - -29:8 For thus saith the LORD of hosts, the God of Israel; Let not your -prophets and your diviners, that be in the midst of you, deceive you, -neither hearken to your dreams which ye cause to be dreamed. - -29:9 For they prophesy falsely unto you in my name: I have not sent -them, saith the LORD. - -29:10 For thus saith the LORD, That after seventy years be -accomplished at Babylon I will visit you, and perform my good word -toward you, in causing you to return to this place. - -29:11 For I know the thoughts that I think toward you, saith the LORD, -thoughts of peace, and not of evil, to give you an expected end. - -29:12 Then shall ye call upon me, and ye shall go and pray unto me, -and I will hearken unto you. - -29:13 And ye shall seek me, and find me, when ye shall search for me -with all your heart. - -29:14 And I will be found of you, saith the LORD: and I will turn away -your captivity, and I will gather you from all the nations, and from -all the places whither I have driven you, saith the LORD; and I will -bring you again into the place whence I caused you to be carried away -captive. - -29:15 Because ye have said, The LORD hath raised us up prophets in -Babylon; 29:16 Know that thus saith the LORD of the king that sitteth -upon the throne of David, and of all the people that dwelleth in this -city, and of your brethren that are not gone forth with you into -captivity; 29:17 Thus saith the LORD of hosts; Behold, I will send -upon them the sword, the famine, and the pestilence, and will make -them like vile figs, that cannot be eaten, they are so evil. - -29:18 And I will persecute them with the sword, with the famine, and -with the pestilence, and will deliver them to be removed to all the -kingdoms of the earth, to be a curse, and an astonishment, and an -hissing, and a reproach, among all the nations whither I have driven -them: 29:19 Because they have not hearkened to my words, saith the -LORD, which I sent unto them by my servants the prophets, rising up -early and sending them; but ye would not hear, saith the LORD. - -29:20 Hear ye therefore the word of the LORD, all ye of the captivity, -whom I have sent from Jerusalem to Babylon: 29:21 Thus saith the LORD -of hosts, the God of Israel, of Ahab the son of Kolaiah, and of -Zedekiah the son of Maaseiah, which prophesy a lie unto you in my -name; Behold, I will deliver them into the hand of Nebuchadrezzar king -of Babylon; and he shall slay them before your eyes; 29:22 And of them -shall be taken up a curse by all the captivity of Judah which are in -Babylon, saying, The LORD make thee like Zedekiah and like Ahab, whom -the king of Babylon roasted in the fire; 29:23 Because they have -committed villany in Israel, and have committed adultery with their -neighbours' wives, and have spoken lying words in my name, which I -have not commanded them; even I know, and am a witness, saith the -LORD. - -29:24 Thus shalt thou also speak to Shemaiah the Nehelamite, saying, -29:25 Thus speaketh the LORD of hosts, the God of Israel, saying, -Because thou hast sent letters in thy name unto all the people that -are at Jerusalem, and to Zephaniah the son of Maaseiah the priest, and -to all the priests, saying, 29:26 The LORD hath made thee priest in -the stead of Jehoiada the priest, that ye should be officers in the -house of the LORD, for every man that is mad, and maketh himself a -prophet, that thou shouldest put him in prison, and in the stocks. - -29:27 Now therefore why hast thou not reproved Jeremiah of Anathoth, -which maketh himself a prophet to you? 29:28 For therefore he sent -unto us in Babylon, saying, This captivity is long: build ye houses, -and dwell in them; and plant gardens, and eat the fruit of them. - -29:29 And Zephaniah the priest read this letter in the ears of -Jeremiah the prophet. - -29:30 Then came the word of the LORD unto Jeremiah, saying, 29:31 Send -to all them of the captivity, saying, Thus saith the LORD concerning -Shemaiah the Nehelamite; Because that Shemaiah hath prophesied unto -you, and I sent him not, and he caused you to trust in a lie: 29:32 -Therefore thus saith the LORD; Behold, I will punish Shemaiah the -Nehelamite, and his seed: he shall not have a man to dwell among this -people; neither shall he behold the good that I will do for my people, -saith the LORD; because he hath taught rebellion against the LORD. - -30:1 The word that came to Jeremiah from the LORD, saying, 30:2 Thus -speaketh the LORD God of Israel, saying, Write thee all the words that -I have spoken unto thee in a book. - -30:3 For, lo, the days come, saith the LORD, that I will bring again -the captivity of my people Israel and Judah, saith the LORD: and I -will cause them to return to the land that I gave to their fathers, -and they shall possess it. - -30:4 And these are the words that the LORD spake concerning Israel and -concerning Judah. - -30:5 For thus saith the LORD; We have heard a voice of trembling, of -fear, and not of peace. - -30:6 Ask ye now, and see whether a man doth travail with child? -wherefore do I see every man with his hands on his loins, as a woman -in travail, and all faces are turned into paleness? 30:7 Alas! for -that day is great, so that none is like it: it is even the time of -Jacob's trouble, but he shall be saved out of it. - -30:8 For it shall come to pass in that day, saith the LORD of hosts, -that I will break his yoke from off thy neck, and will burst thy -bonds, and strangers shall no more serve themselves of him: 30:9 But -they shall serve the LORD their God, and David their king, whom I will -raise up unto them. - -30:10 Therefore fear thou not, O my servant Jacob, saith the LORD; -neither be dismayed, O Israel: for, lo, I will save thee from afar, -and thy seed from the land of their captivity; and Jacob shall return, -and shall be in rest, and be quiet, and none shall make him afraid. - -30:11 For I am with thee, saith the LORD, to save thee: though I make -a full end of all nations whither I have scattered thee, yet I will -not make a full end of thee: but I will correct thee in measure, and -will not leave thee altogether unpunished. - -30:12 For thus saith the LORD, Thy bruise is incurable, and thy wound -is grievous. - -30:13 There is none to plead thy cause, that thou mayest be bound up: -thou hast no healing medicines. - -30:14 All thy lovers have forgotten thee; they seek thee not; for I -have wounded thee with the wound of an enemy, with the chastisement of -a cruel one, for the multitude of thine iniquity; because thy sins -were increased. - -30:15 Why criest thou for thine affliction? thy sorrow is incurable -for the multitude of thine iniquity: because thy sins were increased, -I have done these things unto thee. - -30:16 Therefore all they that devour thee shall be devoured; and all -thine adversaries, every one of them, shall go into captivity; and -they that spoil thee shall be a spoil, and all that prey upon thee -will I give for a prey. - -30:17 For I will restore health unto thee, and I will heal thee of thy -wounds, saith the LORD; because they called thee an Outcast, saying, -This is Zion, whom no man seeketh after. - -30:18 Thus saith the LORD; Behold, I will bring again the captivity of -Jacob's tents, and have mercy on his dwellingplaces; and the city -shall be builded upon her own heap, and the palace shall remain after -the manner thereof. - -30:19 And out of them shall proceed thanksgiving and the voice of them -that make merry: and I will multiply them, and they shall not be few; -I will also glorify them, and they shall not be small. - -30:20 Their children also shall be as aforetime, and their -congregation shall be established before me, and I will punish all -that oppress them. - -30:21 And their nobles shall be of themselves, and their governor -shall proceed from the midst of them; and I will cause him to draw -near, and he shall approach unto me: for who is this that engaged his -heart to approach unto me? saith the LORD. - -30:22 And ye shall be my people, and I will be your God. - -30:23 Behold, the whirlwind of the LORD goeth forth with fury, a -continuing whirlwind: it shall fall with pain upon the head of the -wicked. - -30:24 The fierce anger of the LORD shall not return, until he hath -done it, and until he have performed the intents of his heart: in the -latter days ye shall consider it. - -31:1 At the same time, saith the LORD, will I be the God of all the -families of Israel, and they shall be my people. - -31:2 Thus saith the LORD, The people which were left of the sword -found grace in the wilderness; even Israel, when I went to cause him -to rest. - -31:3 The LORD hath appeared of old unto me, saying, Yea, I have loved -thee with an everlasting love: therefore with lovingkindness have I -drawn thee. - -31:4 Again I will build thee, and thou shalt be built, O virgin of -Israel: thou shalt again be adorned with thy tabrets, and shalt go -forth in the dances of them that make merry. - -31:5 Thou shalt yet plant vines upon the mountains of Samaria: the -planters shall plant, and shall eat them as common things. - -31:6 For there shall be a day, that the watchmen upon the mount -Ephraim shall cry, Arise ye, and let us go up to Zion unto the LORD -our God. - -31:7 For thus saith the LORD; Sing with gladness for Jacob, and shout -among the chief of the nations: publish ye, praise ye, and say, O -LORD, save thy people, the remnant of Israel. - -31:8 Behold, I will bring them from the north country, and gather them -from the coasts of the earth, and with them the blind and the lame, -the woman with child and her that travaileth with child together: a -great company shall return thither. - -31:9 They shall come with weeping, and with supplications will I lead -them: I will cause them to walk by the rivers of waters in a straight -way, wherein they shall not stumble: for I am a father to Israel, and -Ephraim is my firstborn. - -31:10 Hear the word of the LORD, O ye nations, and declare it in the -isles afar off, and say, He that scattered Israel will gather him, and -keep him, as a shepherd doth his flock. - -31:11 For the LORD hath redeemed Jacob, and ransomed him from the hand -of him that was stronger than he. - -31:12 Therefore they shall come and sing in the height of Zion, and -shall flow together to the goodness of the LORD, for wheat, and for -wine, and for oil, and for the young of the flock and of the herd: and -their soul shall be as a watered garden; and they shall not sorrow any -more at all. - -31:13 Then shall the virgin rejoice in the dance, both young men and -old together: for I will turn their mourning into joy, and will -comfort them, and make them rejoice from their sorrow. - -31:14 And I will satiate the soul of the priests with fatness, and my -people shall be satisfied with my goodness, saith the LORD. - -31:15 Thus saith the LORD; A voice was heard in Ramah, lamentation, -and bitter weeping; Rahel weeping for her children refused to be -comforted for her children, because they were not. - -31:16 Thus saith the LORD; Refrain thy voice from weeping, and thine -eyes from tears: for thy work shall be rewarded, saith the LORD; and -they shall come again from the land of the enemy. - -31:17 And there is hope in thine end, saith the LORD, that thy -children shall come again to their own border. - -31:18 I have surely heard Ephraim bemoaning himself thus; Thou hast -chastised me, and I was chastised, as a bullock unaccustomed to the -yoke: turn thou me, and I shall be turned; for thou art the LORD my -God. - -31:19 Surely after that I was turned, I repented; and after that I was -instructed, I smote upon my thigh: I was ashamed, yea, even -confounded, because I did bear the reproach of my youth. - -31:20 Is Ephraim my dear son? is he a pleasant child? for since I -spake against him, I do earnestly remember him still: therefore my -bowels are troubled for him; I will surely have mercy upon him, saith -the LORD. - -31:21 Set thee up waymarks, make thee high heaps: set thine heart -toward the highway, even the way which thou wentest: turn again, O -virgin of Israel, turn again to these thy cities. - -31:22 How long wilt thou go about, O thou backsliding daughter? for -the LORD hath created a new thing in the earth, A woman shall compass -a man. - -31:23 Thus saith the LORD of hosts, the God of Israel; As yet they -shall use this speech in the land of Judah and in the cities thereof, -when I shall bring again their captivity; The LORD bless thee, O -habitation of justice, and mountain of holiness. - -31:24 And there shall dwell in Judah itself, and in all the cities -thereof together, husbandmen, and they that go forth with flocks. - -31:25 For I have satiated the weary soul, and I have replenished every -sorrowful soul. - -31:26 Upon this I awaked, and beheld; and my sleep was sweet unto me. - -31:27 Behold, the days come, saith the LORD, that I will sow the house -of Israel and the house of Judah with the seed of man, and with the -seed of beast. - -31:28 And it shall come to pass, that like as I have watched over -them, to pluck up, and to break down, and to throw down, and to -destroy, and to afflict; so will I watch over them, to build, and to -plant, saith the LORD. - -31:29 In those days they shall say no more, The fathers have eaten a -sour grape, and the children's teeth are set on edge. - -31:30 But every one shall die for his own iniquity: every man that -eateth the sour grape, his teeth shall be set on edge. - -31:31 Behold, the days come, saith the LORD, that I will make a new -covenant with the house of Israel, and with the house of Judah: 31:32 -Not according to the covenant that I made with their fathers in the -day that I took them by the hand to bring them out of the land of -Egypt; which my covenant they brake, although I was an husband unto -them, saith the LORD: 31:33 But this shall be the covenant that I will -make with the house of Israel; After those days, saith the LORD, I -will put my law in their inward parts, and write it in their hearts; -and will be their God, and they shall be my people. - -31:34 And they shall teach no more every man his neighbour, and every -man his brother, saying, Know the LORD: for they shall all know me, -from the least of them unto the greatest of them, saith the LORD: for -I will forgive their iniquity, and I will remember their sin no more. - -31:35 Thus saith the LORD, which giveth the sun for a light by day, -and the ordinances of the moon and of the stars for a light by night, -which divideth the sea when the waves thereof roar; The LORD of hosts -is his name: 31:36 If those ordinances depart from before me, saith -the LORD, then the seed of Israel also shall cease from being a nation -before me for ever. - -31:37 Thus saith the LORD; If heaven above can be measured, and the -foundations of the earth searched out beneath, I will also cast off -all the seed of Israel for all that they have done, saith the LORD. - -31:38 Behold, the days come, saith the LORD, that the city shall be -built to the LORD from the tower of Hananeel unto the gate of the -corner. - -31:39 And the measuring line shall yet go forth over against it upon -the hill Gareb, and shall compass about to Goath. - -31:40 And the whole valley of the dead bodies, and of the ashes, and -all the fields unto the brook of Kidron, unto the corner of the horse -gate toward the east, shall be holy unto the LORD; it shall not be -plucked up, nor thrown down any more for ever. - -32:1 The word that came to Jeremiah from the LORD in the tenth year of -Zedekiah king of Judah, which was the eighteenth year of -Nebuchadrezzar. - -32:2 For then the king of Babylon's army besieged Jerusalem: and -Jeremiah the prophet was shut up in the court of the prison, which was -in the king of Judah's house. - -32:3 For Zedekiah king of Judah had shut him up, saying, Wherefore -dost thou prophesy, and say, Thus saith the LORD, Behold, I will give -this city into the hand of the king of Babylon, and he shall take it; -32:4 And Zedekiah king of Judah shall not escape out of the hand of -the Chaldeans, but shall surely be delivered into the hand of the king -of Babylon, and shall speak with him mouth to mouth, and his eyes -shall behold his eyes; 32:5 And he shall lead Zedekiah to Babylon, and -there shall he be until I visit him, saith the LORD: though ye fight -with the Chaldeans, ye shall not prosper. - -32:6 And Jeremiah said, The word of the LORD came unto me, saying, -32:7 Behold, Hanameel the son of Shallum thine uncle shall come unto -thee saying, Buy thee my field that is in Anathoth: for the right of -redemption is thine to buy it. - -32:8 So Hanameel mine uncle's son came to me in the court of the -prison according to the word of the LORD, and said unto me, Buy my -field, I pray thee, that is in Anathoth, which is in the country of -Benjamin: for the right of inheritance is thine, and the redemption is -thine; buy it for thyself. - -Then I knew that this was the word of the LORD. - -32:9 And I bought the field of Hanameel my uncle's son, that was in -Anathoth, and weighed him the money, even seventeen shekels of silver. - -32:10 And I subscribed the evidence, and sealed it, and took -witnesses, and weighed him the money in the balances. - -32:11 So I took the evidence of the purchase, both that which was -sealed according to the law and custom, and that which was open: 32:12 -And I gave the evidence of the purchase unto Baruch the son of Neriah, -the son of Maaseiah, in the sight of Hanameel mine uncle's son, and in -the presence of the witnesses that subscribed the book of the -purchase, before all the Jews that sat in the court of the prison. - -32:13 And I charged Baruch before them, saying, 32:14 Thus saith the -LORD of hosts, the God of Israel; Take these evidences, this evidence -of the purchase, both which is sealed, and this evidence which is -open; and put them in an earthen vessel, that they may continue many -days. - -32:15 For thus saith the LORD of hosts, the God of Israel; Houses and -fields and vineyards shall be possessed again in this land. - -32:16 Now when I had delivered the evidence of the purchase unto -Baruch the son of Neriah, I prayed unto the LORD, saying, 32:17 Ah -Lord GOD! behold, thou hast made the heaven and the earth by thy great -power and stretched out arm, and there is nothing too hard for thee: -32:18 Thou shewest lovingkindness unto thousands, and recompensest the -iniquity of the fathers into the bosom of their children after them: -the Great, the Mighty God, the LORD of hosts, is his name, 32:19 Great -in counsel, and mighty in work: for thine eyes are open upon all the -ways of the sons of men: to give every one according to his ways, and -according to the fruit of his doings: 32:20 Which hast set signs and -wonders in the land of Egypt, even unto this day, and in Israel, and -among other men; and hast made thee a name, as at this day; 32:21 And -hast brought forth thy people Israel out of the land of Egypt with -signs, and with wonders, and with a strong hand, and with a stretched -out arm, and with great terror; 32:22 And hast given them this land, -which thou didst swear to their fathers to give them, a land flowing -with milk and honey; 32:23 And they came in, and possessed it; but -they obeyed not thy voice, neither walked in thy law; they have done -nothing of all that thou commandedst them to do: therefore thou hast -caused all this evil to come upon them: 32:24 Behold the mounts, they -are come unto the city to take it; and the city is given into the hand -of the Chaldeans, that fight against it, because of the sword, and of -the famine, and of the pestilence: and what thou hast spoken is come -to pass; and, behold, thou seest it. - -32:25 And thou hast said unto me, O Lord GOD, Buy thee the field for -money, and take witnesses; for the city is given into the hand of the -Chaldeans. - -32:26 Then came the word of the LORD unto Jeremiah, saying, 32:27 -Behold, I am the LORD, the God of all flesh: is there any thing too -hard for me? 32:28 Therefore thus saith the LORD; Behold, I will give -this city into the hand of the Chaldeans, and into the hand of -Nebuchadrezzar king of Babylon, and he shall take it: 32:29 And the -Chaldeans, that fight against this city, shall come and set fire on -this city, and burn it with the houses, upon whose roofs they have -offered incense unto Baal, and poured out drink offerings unto other -gods, to provoke me to anger. - -32:30 For the children of Israel and the children of Judah have only -done evil before me from their youth: for the children of Israel have -only provoked me to anger with the work of their hands, saith the -LORD. - -32:31 For this city hath been to me as a provocation of mine anger and -of my fury from the day that they built it even unto this day; that I -should remove it from before my face, 32:32 Because of all the evil of -the children of Israel and of the children of Judah, which they have -done to provoke me to anger, they, their kings, their princes, their -priests, and their prophets, and the men of Judah, and the inhabitants -of Jerusalem. - -32:33 And they have turned unto me the back, and not the face: though -I taught them, rising up early and teaching them, yet they have not -hearkened to receive instruction. - -32:34 But they set their abominations in the house, which is called by -my name, to defile it. - -32:35 And they built the high places of Baal, which are in the valley -of the son of Hinnom, to cause their sons and their daughters to pass -through the fire unto Molech; which I commanded them not, neither came -it into my mind, that they should do this abomination, to cause Judah -to sin. - -32:36 And now therefore thus saith the LORD, the God of Israel, -concerning this city, whereof ye say, It shall be delivered into the -hand of the king of Babylon by the sword, and by the famine, and by -the pestilence; 32:37 Behold, I will gather them out of all countries, -whither I have driven them in mine anger, and in my fury, and in great -wrath; and I will bring them again unto this place, and I will cause -them to dwell safely: 32:38 And they shall be my people, and I will be -their God: 32:39 And I will give them one heart, and one way, that -they may fear me for ever, for the good of them, and of their children -after them: 32:40 And I will make an everlasting covenant with them, -that I will not turn away from them, to do them good; but I will put -my fear in their hearts, that they shall not depart from me. - -32:41 Yea, I will rejoice over them to do them good, and I will plant -them in this land assuredly with my whole heart and with my whole -soul. - -32:42 For thus saith the LORD; Like as I have brought all this great -evil upon this people, so will I bring upon them all the good that I -have promised them. - -32:43 And fields shall be bought in this land, whereof ye say, It is -desolate without man or beast; it is given into the hand of the -Chaldeans. - -32:44 Men shall buy fields for money, and subscribe evidences, and -seal them, and take witnesses in the land of Benjamin, and in the -places about Jerusalem, and in the cities of Judah, and in the cities -of the mountains, and in the cities of the valley, and in the cities -of the south: for I will cause their captivity to return, saith the -LORD. - -33:1 Moreover the word of the LORD came unto Jeremiah the second time, -while he was yet shut up in the court of the prison, saying, 33:2 Thus -saith the LORD the maker thereof, the LORD that formed it, to -establish it; the LORD is his name; 33:3 Call unto me, and I will -answer thee, and shew thee great and mighty things, which thou knowest -not. - -33:4 For thus saith the LORD, the God of Israel, concerning the houses -of this city, and concerning the houses of the kings of Judah, which -are thrown down by the mounts, and by the sword; 33:5 They come to -fight with the Chaldeans, but it is to fill them with the dead bodies -of men, whom I have slain in mine anger and in my fury, and for all -whose wickedness I have hid my face from this city. - -33:6 Behold, I will bring it health and cure, and I will cure them, -and will reveal unto them the abundance of peace and truth. - -33:7 And I will cause the captivity of Judah and the captivity of -Israel to return, and will build them, as at the first. - -33:8 And I will cleanse them from all their iniquity, whereby they -have sinned against me; and I will pardon all their iniquities, -whereby they have sinned, and whereby they have transgressed against -me. - -33:9 And it shall be to me a name of joy, a praise and an honour -before all the nations of the earth, which shall hear all the good -that I do unto them: and they shall fear and tremble for all the -goodness and for all the prosperity that I procure unto it. - -33:10 Thus saith the LORD; Again there shall be heard in this place, -which ye say shall be desolate without man and without beast, even in -the cities of Judah, and in the streets of Jerusalem, that are -desolate, without man, and without inhabitant, and without beast, -33:11 The voice of joy, and the voice of gladness, the voice of the -bridegroom, and the voice of the bride, the voice of them that shall -say, Praise the LORD of hosts: for the LORD is good; for his mercy -endureth for ever: and of them that shall bring the sacrifice of -praise into the house of the LORD. For I will cause to return the -captivity of the land, as at the first, saith the LORD. - -33:12 Thus saith the LORD of hosts; Again in this place, which is -desolate without man and without beast, and in all the cities thereof, -shall be an habitation of shepherds causing their flocks to lie down. - -33:13 In the cities of the mountains, in the cities of the vale, and -in the cities of the south, and in the land of Benjamin, and in the -places about Jerusalem, and in the cities of Judah, shall the flocks -pass again under the hands of him that telleth them, saith the LORD. - -33:14 Behold, the days come, saith the LORD, that I will perform that -good thing which I have promised unto the house of Israel and to the -house of Judah. - -33:15 In those days, and at that time, will I cause the Branch of -righteousness to grow up unto David; and he shall execute judgment and -righteousness in the land. - -33:16 In those days shall Judah be saved, and Jerusalem shall dwell -safely: and this is the name wherewith she shall be called, The LORD -our righteousness. - -33:17 For thus saith the LORD; David shall never want a man to sit -upon the throne of the house of Israel; 33:18 Neither shall the -priests the Levites want a man before me to offer burnt offerings, and -to kindle meat offerings, and to do sacrifice continually. - -33:19 And the word of the LORD came unto Jeremiah, saying, 33:20 Thus -saith the LORD; If ye can break my covenant of the day, and my -covenant of the night, and that there should not be day and night in -their season; 33:21 Then may also my covenant be broken with David my -servant, that he should not have a son to reign upon his throne; and -with the Levites the priests, my ministers. - -33:22 As the host of heaven cannot be numbered, neither the sand of -the sea measured: so will I multiply the seed of David my servant, and -the Levites that minister unto me. - -33:23 Moreover the word of the LORD came to Jeremiah, saying, 33:24 -Considerest thou not what this people have spoken, saying, The two -families which the LORD hath chosen, he hath even cast them off? thus -they have despised my people, that they should be no more a nation -before them. - -33:25 Thus saith the LORD; If my covenant be not with day and night, -and if I have not appointed the ordinances of heaven and earth; 33:26 -Then will I cast away the seed of Jacob and David my servant, so that -I will not take any of his seed to be rulers over the seed of Abraham, -Isaac, and Jacob: for I will cause their captivity to return, and have -mercy on them. - -34:1 The word which came unto Jeremiah from the LORD, when -Nebuchadnezzar king of Babylon, and all his army, and all the kingdoms -of the earth of his dominion, and all the people, fought against -Jerusalem, and against all the cities thereof, saying, 34:2 Thus saith -the LORD, the God of Israel; Go and speak to Zedekiah king of Judah, -and tell him, Thus saith the LORD; Behold, I will give this city into -the hand of the king of Babylon, and he shall burn it with fire: 34:3 -And thou shalt not escape out of his hand, but shalt surely be taken, -and delivered into his hand; and thine eyes shall behold the eyes of -the king of Babylon, and he shall speak with thee mouth to mouth, and -thou shalt go to Babylon. - -34:4 Yet hear the word of the LORD, O Zedekiah king of Judah; Thus -saith the LORD of thee, Thou shalt not die by the sword: 34:5 But thou -shalt die in peace: and with the burnings of thy fathers, the former -kings which were before thee, so shall they burn odours for thee; and -they will lament thee, saying, Ah lord! for I have pronounced the -word, saith the LORD. - -34:6 Then Jeremiah the prophet spake all these words unto Zedekiah -king of Judah in Jerusalem, 34:7 When the king of Babylon's army -fought against Jerusalem, and against all the cities of Judah that -were left, against Lachish, and against Azekah: for these defenced -cities remained of the cities of Judah. - -34:8 This is the word that came unto Jeremiah from the LORD, after -that the king Zedekiah had made a covenant with all the people which -were at Jerusalem, to proclaim liberty unto them; 34:9 That every man -should let his manservant, and every man his maidservant, being an -Hebrew or an Hebrewess, go free; that none should serve himself of -them, to wit, of a Jew his brother. - -34:10 Now when all the princes, and all the people, which had entered -into the covenant, heard that every one should let his manservant, and -every one his maidservant, go free, that none should serve themselves -of them any more, then they obeyed, and let them go. - -34:11 But afterward they turned, and caused the servants and the -handmaids, whom they had let go free, to return, and brought them into -subjection for servants and for handmaids. - -34:12 Therefore the word of the LORD came to Jeremiah from the LORD, -saying, 34:13 Thus saith the LORD, the God of Israel; I made a -covenant with your fathers in the day that I brought them forth out of -the land of Egypt, out of the house of bondmen, saying, 34:14 At the -end of seven years let ye go every man his brother an Hebrew, which -hath been sold unto thee; and when he hath served thee six years, thou -shalt let him go free from thee: but your fathers hearkened not unto -me, neither inclined their ear. - -34:15 And ye were now turned, and had done right in my sight, in -proclaiming liberty every man to his neighbour; and ye had made a -covenant before me in the house which is called by my name: 34:16 But -ye turned and polluted my name, and caused every man his servant, and -every man his handmaid, whom ye had set at liberty at their pleasure, -to return, and brought them into subjection, to be unto you for -servants and for handmaids. - -34:17 Therefore thus saith the LORD; Ye have not hearkened unto me, in -proclaiming liberty, every one to his brother, and every man to his -neighbour: behold, I proclaim a liberty for you, saith the LORD, to -the sword, to the pestilence, and to the famine; and I will make you -to be removed into all the kingdoms of the earth. - -34:18 And I will give the men that have transgressed my covenant, -which have not performed the words of the covenant which they had made -before me, when they cut the calf in twain, and passed between the -parts thereof, 34:19 The princes of Judah, and the princes of -Jerusalem, the eunuchs, and the priests, and all the people of the -land, which passed between the parts of the calf; 34:20 I will even -give them into the hand of their enemies, and into the hand of them -that seek their life: and their dead bodies shall be for meat unto the -fowls of the heaven, and to the beasts of the earth. - -34:21 And Zedekiah king of Judah and his princes will I give into the -hand of their enemies, and into the hand of them that seek their life, -and into the hand of the king of Babylon's army, which are gone up -from you. - -34:22 Behold, I will command, saith the LORD, and cause them to return -to this city; and they shall fight against it, and take it, and burn -it with fire: and I will make the cities of Judah a desolation without -an inhabitant. - -35:1 The word which came unto Jeremiah from the LORD in the days of -Jehoiakim the son of Josiah king of Judah, saying, 35:2 Go unto the -house of the Rechabites, and speak unto them, and bring them into the -house of the LORD, into one of the chambers, and give them wine to -drink. - -35:3 Then I took Jaazaniah the son of Jeremiah, the son of Habaziniah, -and his brethren, and all his sons, and the whole house of the -Rechabites; 35:4 And I brought them into the house of the LORD, into -the chamber of the sons of Hanan, the son of Igdaliah, a man of God, -which was by the chamber of the princes, which was above the chamber -of Maaseiah the son of Shallum, the keeper of the door: 35:5 And I set -before the sons of the house of the Rechabites pots full of wine, and -cups, and I said unto them, Drink ye wine. - -35:6 But they said, We will drink no wine: for Jonadab the son of -Rechab our father commanded us, saying, Ye shall drink no wine, -neither ye, nor your sons for ever: 35:7 Neither shall ye build house, -nor sow seed, nor plant vineyard, nor have any: but all your days ye -shall dwell in tents; that ye may live many days in the land where ye -be strangers. - -35:8 Thus have we obeyed the voice of Jonadab the son of Rechab our -father in all that he hath charged us, to drink no wine all our days, -we, our wives, our sons, nor our daughters; 35:9 Nor to build houses -for us to dwell in: neither have we vineyard, nor field, nor seed: -35:10 But we have dwelt in tents, and have obeyed, and done according -to all that Jonadab our father commanded us. - -35:11 But it came to pass, when Nebuchadrezzar king of Babylon came up -into the land, that we said, Come, and let us go to Jerusalem for fear -of the army of the Chaldeans, and for fear of the army of the Syrians: -so we dwell at Jerusalem. - -35:12 Then came the word of the LORD unto Jeremiah, saying, 35:13 Thus -saith the LORD of hosts, the God of Israel; Go and tell the men of -Judah and the inhabitants of Jerusalem, Will ye not receive -instruction to hearken to my words? saith the LORD. - -35:14 The words of Jonadab the son of Rechab, that he commanded his -sons not to drink wine, are performed; for unto this day they drink -none, but obey their father's commandment: notwithstanding I have -spoken unto you, rising early and speaking; but ye hearkened not unto -me. - -35:15 I have sent also unto you all my servants the prophets, rising -up early and sending them, saying, Return ye now every man from his -evil way, and amend your doings, and go not after other gods to serve -them, and ye shall dwell in the land which I have given to you and to -your fathers: but ye have not inclined your ear, nor hearkened unto -me. - -35:16 Because the sons of Jonadab the son of Rechab have performed the -commandment of their father, which he commanded them; but this people -hath not hearkened unto me: 35:17 Therefore thus saith the LORD God of -hosts, the God of Israel; Behold, I will bring upon Judah and upon all -the inhabitants of Jerusalem all the evil that I have pronounced -against them: because I have spoken unto them, but they have not -heard; and I have called unto them, but they have not answered. - -35:18 And Jeremiah said unto the house of the Rechabites, Thus saith -the LORD of hosts, the God of Israel; Because ye have obeyed the -commandment of Jonadab your father, and kept all his precepts, and -done according unto all that he hath commanded you: 35:19 Therefore -thus saith the LORD of hosts, the God of Israel; Jonadab the son of -Rechab shall not want a man to stand before me for ever. - -36:1 And it came to pass in the fourth year of Jehoiakim the son of -Josiah king of Judah, that this word came unto Jeremiah from the LORD, -saying, 36:2 Take thee a roll of a book, and write therein all the -words that I have spoken unto thee against Israel, and against Judah, -and against all the nations, from the day I spake unto thee, from the -days of Josiah, even unto this day. - -36:3 It may be that the house of Judah will hear all the evil which I -purpose to do unto them; that they may return every man from his evil -way; that I may forgive their iniquity and their sin. - -36:4 Then Jeremiah called Baruch the son of Neriah: and Baruch wrote -from the mouth of Jeremiah all the words of the LORD, which he had -spoken unto him, upon a roll of a book. - -36:5 And Jeremiah commanded Baruch, saying, I am shut up; I cannot go -into the house of the LORD: 36:6 Therefore go thou, and read in the -roll, which thou hast written from my mouth, the words of the LORD in -the ears of the people in the LORD's house upon the fasting day: and -also thou shalt read them in the ears of all Judah that come out of -their cities. - -36:7 It may be they will present their supplication before the LORD, -and will return every one from his evil way: for great is the anger -and the fury that the LORD hath pronounced against this people. - -36:8 And Baruch the son of Neriah did according to all that Jeremiah -the prophet commanded him, reading in the book the words of the LORD -in the LORD's house. - -36:9 And it came to pass in the fifth year of Jehoiakim the son of -Josiah king of Judah, in the ninth month, that they proclaimed a fast -before the LORD to all the people in Jerusalem, and to all the people -that came from the cities of Judah unto Jerusalem. - -36:10 Then read Baruch in the book the words of Jeremiah in the house -of the LORD, in the chamber of Gemariah the son of Shaphan the scribe, -in the higher court, at the entry of the new gate of the LORD's house, -in the ears of all the people. - -36:11 When Michaiah the son of Gemariah, the son of Shaphan, had heard -out of the book all the words of the LORD, 36:12 Then he went down -into the king's house, into the scribe's chamber: and, lo, all the -princes sat there, even Elishama the scribe, and Delaiah the son of -Shemaiah, and Elnathan the son of Achbor, and Gemariah the son of -Shaphan, and Zedekiah the son of Hananiah, and all the princes. - -36:13 Then Michaiah declared unto them all the words that he had -heard, when Baruch read the book in the ears of the people. - -36:14 Therefore all the princes sent Jehudi the son of Nethaniah, the -son of Shelemiah, the son of Cushi, unto Baruch, saying, Take in thine -hand the roll wherein thou hast read in the ears of the people, and -come. So Baruch the son of Neriah took the roll in his hand, and came -unto them. - -36:15 And they said unto him, Sit down now, and read it in our ears. -So Baruch read it in their ears. - -36:16 Now it came to pass, when they had heard all the words, they -were afraid both one and other, and said unto Baruch, We will surely -tell the king of all these words. - -36:17 And they asked Baruch, saying, Tell us now, How didst thou write -all these words at his mouth? 36:18 Then Baruch answered them, He -pronounced all these words unto me with his mouth, and I wrote them -with ink in the book. - -36:19 Then said the princes unto Baruch, Go, hide thee, thou and -Jeremiah; and let no man know where ye be. - -36:20 And they went in to the king into the court, but they laid up -the roll in the chamber of Elishama the scribe, and told all the words -in the ears of the king. - -36:21 So the king sent Jehudi to fetch the roll: and he took it out of -Elishama the scribe's chamber. And Jehudi read it in the ears of the -king, and in the ears of all the princes which stood beside the king. - -36:22 Now the king sat in the winterhouse in the ninth month: and -there was a fire on the hearth burning before him. - -36:23 And it came to pass, that when Jehudi had read three or four -leaves, he cut it with the penknife, and cast it into the fire that -was on the hearth, until all the roll was consumed in the fire that -was on the hearth. - -36:24 Yet they were not afraid, nor rent their garments, neither the -king, nor any of his servants that heard all these words. - -36:25 Nevertheless Elnathan and Delaiah and Gemariah had made -intercession to the king that he would not burn the roll: but he would -not hear them. - -36:26 But the king commanded Jerahmeel the son of Hammelech, and -Seraiah the son of Azriel, and Shelemiah the son of Abdeel, to take -Baruch the scribe and Jeremiah the prophet: but the LORD hid them. - -36:27 Then the word of the LORD came to Jeremiah, after that the king -had burned the roll, and the words which Baruch wrote at the mouth of -Jeremiah, saying, 36:28 Take thee again another roll, and write in it -all the former words that were in the first roll, which Jehoiakim the -king of Judah hath burned. - -36:29 And thou shalt say to Jehoiakim king of Judah, Thus saith the -LORD; Thou hast burned this roll, saying, Why hast thou written -therein, saying, The king of Babylon shall certainly come and destroy -this land, and shall cause to cease from thence man and beast? 36:30 -Therefore thus saith the LORD of Jehoiakim king of Judah; He shall -have none to sit upon the throne of David: and his dead body shall be -cast out in the day to the heat, and in the night to the frost. - -36:31 And I will punish him and his seed and his servants for their -iniquity; and I will bring upon them, and upon the inhabitants of -Jerusalem, and upon the men of Judah, all the evil that I have -pronounced against them; but they hearkened not. - -36:32 Then took Jeremiah another roll, and gave it to Baruch the -scribe, the son of Neriah; who wrote therein from the mouth of -Jeremiah all the words of the book which Jehoiakim king of Judah had -burned in the fire: and there were added besides unto them many like -words. - -37:1 And king Zedekiah the son of Josiah reigned instead of Coniah the -son of Jehoiakim, whom Nebuchadrezzar king of Babylon made king in the -land of Judah. - -37:2 But neither he, nor his servants, nor the people of the land, did -hearken unto the words of the LORD, which he spake by the prophet -Jeremiah. - -37:3 And Zedekiah the king sent Jehucal the son of Shelemiah and -Zephaniah the son of Maaseiah the priest to the prophet Jeremiah, -saying, Pray now unto the LORD our God for us. - -37:4 Now Jeremiah came in and went out among the people: for they had -not put him into prison. - -37:5 Then Pharaoh's army was come forth out of Egypt: and when the -Chaldeans that besieged Jerusalem heard tidings of them, they departed -from Jerusalem. - -37:6 Then came the word of the LORD unto the prophet Jeremiah saying, -37:7 Thus saith the LORD, the God of Israel; Thus shall ye say to the -king of Judah, that sent you unto me to enquire of me; Behold, -Pharaoh's army, which is come forth to help you, shall return to Egypt -into their own land. - -37:8 And the Chaldeans shall come again, and fight against this city, -and take it, and burn it with fire. - -37:9 Thus saith the LORD; Deceive not yourselves, saying, The -Chaldeans shall surely depart from us: for they shall not depart. - -37:10 For though ye had smitten the whole army of the Chaldeans that -fight against you, and there remained but wounded men among them, yet -should they rise up every man in his tent, and burn this city with -fire. - -37:11 And it came to pass, that when the army of the Chaldeans was -broken up from Jerusalem for fear of Pharaoh's army, 37:12 Then -Jeremiah went forth out of Jerusalem to go into the land of Benjamin, -to separate himself thence in the midst of the people. - -37:13 And when he was in the gate of Benjamin, a captain of the ward -was there, whose name was Irijah, the son of Shelemiah, the son of -Hananiah; and he took Jeremiah the prophet, saying, Thou fallest away -to the Chaldeans. - -37:14 Then said Jeremiah, It is false; I fall not away to the -Chaldeans. - -But he hearkened not to him: so Irijah took Jeremiah, and brought him -to the princes. - -37:15 Wherefore the princes were wroth with Jeremiah, and smote him, -and put him in prison in the house of Jonathan the scribe: for they -had made that the prison. - -37:16 When Jeremiah was entered into the dungeon, and into the cabins, -and Jeremiah had remained there many days; 37:17 Then Zedekiah the -king sent, and took him out: and the king asked him secretly in his -house, and said, Is there any word from the LORD? And Jeremiah said, -There is: for, said he, thou shalt be delivered into the hand of the -king of Babylon. - -37:18 Moreover Jeremiah said unto king Zedekiah, What have I offended -against thee, or against thy servants, or against this people, that ye -have put me in prison? 37:19 Where are now your prophets which -prophesied unto you, saying, The king of Babylon shall not come -against you, nor against this land? 37:20 Therefore hear now, I pray -thee, O my lord the king: let my supplication, I pray thee, be -accepted before thee; that thou cause me not to return to the house of -Jonathan the scribe, lest I die there. - -37:21 Then Zedekiah the king commanded that they should commit -Jeremiah into the court of the prison, and that they should give him -daily a piece of bread out of the bakers' street, until all the bread -in the city were spent. - -Thus Jeremiah remained in the court of the prison. - -38:1 Then Shephatiah the son of Mattan, and Gedaliah the son of -Pashur, and Jucal the son of Shelemiah, and Pashur the son of -Malchiah, heard the words that Jeremiah had spoken unto all the -people, saying, 38:2 Thus saith the LORD, He that remaineth in this -city shall die by the sword, by the famine, and by the pestilence: but -he that goeth forth to the Chaldeans shall live; for he shall have his -life for a prey, and shall live. - -38:3 Thus saith the LORD, This city shall surely be given into the -hand of the king of Babylon's army, which shall take it. - -38:4 Therefore the princes said unto the king, We beseech thee, let -this man be put to death: for thus he weakeneth the hands of the men -of war that remain in this city, and the hands of all the people, in -speaking such words unto them: for this man seeketh not the welfare of -this people, but the hurt. - -38:5 Then Zedekiah the king said, Behold, he is in your hand: for the -king is not he that can do any thing against you. - -38:6 Then took they Jeremiah, and cast him into the dungeon of -Malchiah the son of Hammelech, that was in the court of the prison: -and they let down Jeremiah with cords. And in the dungeon there was no -water, but mire: so Jeremiah sunk in the mire. - -38:7 Now when Ebedmelech the Ethiopian, one of the eunuchs which was -in the king's house, heard that they had put Jeremiah in the dungeon; -the king then sitting in the gate of Benjamin; 38:8 Ebedmelech went -forth out of the king's house, and spake to the king saying, 38:9 My -lord the king, these men have done evil in all that they have done to -Jeremiah the prophet, whom they have cast into the dungeon; and he is -like to die for hunger in the place where he is: for there is no more -bread in the city. - -38:10 Then the king commanded Ebedmelech the Ethiopian, saying, Take -from hence thirty men with thee, and take up Jeremiah the prophet out -of the dungeon, before he die. - -38:11 So Ebedmelech took the men with him, and went into the house of -the king under the treasury, and took thence old cast clouts and old -rotten rags, and let them down by cords into the dungeon to Jeremiah. - -38:12 And Ebedmelech the Ethiopian said unto Jeremiah, Put now these -old cast clouts and rotten rags under thine armholes under the cords. -And Jeremiah did so. - -38:13 So they drew up Jeremiah with cords, and took him up out of the -dungeon: and Jeremiah remained in the court of the prison. - -38:14 Then Zedekiah the king sent, and took Jeremiah the prophet unto -him into the third entry that is in the house of the LORD: and the -king said unto Jeremiah, I will ask thee a thing; hide nothing from -me. - -38:15 Then Jeremiah said unto Zedekiah, If I declare it unto thee, -wilt thou not surely put me to death? and if I give thee counsel, wilt -thou not hearken unto me? 38:16 So Zedekiah the king sware secretly -unto Jeremiah, saying, As the LORD liveth, that made us this soul, I -will not put thee to death, neither will I give thee into the hand of -these men that seek thy life. - -38:17 Then said Jeremiah unto Zedekiah, Thus saith the LORD, the God -of hosts, the God of Israel; If thou wilt assuredly go forth unto the -king of Babylon's princes, then thy soul shall live, and this city -shall not be burned with fire; and thou shalt live, and thine house: -38:18 But if thou wilt not go forth to the king of Babylon's princes, -then shall this city be given into the hand of the Chaldeans, and they -shall burn it with fire, and thou shalt not escape out of their hand. - -38:19 And Zedekiah the king said unto Jeremiah, I am afraid of the -Jews that are fallen to the Chaldeans, lest they deliver me into their -hand, and they mock me. - -38:20 But Jeremiah said, They shall not deliver thee. Obey, I beseech -thee, the voice of the LORD, which I speak unto thee: so it shall be -well unto thee, and thy soul shall live. - -38:21 But if thou refuse to go forth, this is the word that the LORD -hath shewed me: 38:22 And, behold, all the women that are left in the -king of Judah's house shall be brought forth to the king of Babylon's -princes, and those women shall say, Thy friends have set thee on, and -have prevailed against thee: thy feet are sunk in the mire, and they -are turned away back. - -38:23 So they shall bring out all thy wives and thy children to the -Chaldeans: and thou shalt not escape out of their hand, but shalt be -taken by the hand of the king of Babylon: and thou shalt cause this -city to be burned with fire. - -38:24 Then said Zedekiah unto Jeremiah, Let no man know of these -words, and thou shalt not die. - -38:25 But if the princes hear that I have talked with thee, and they -come unto thee, and say unto thee, Declare unto us now what thou hast -said unto the king, hide it not from us, and we will not put thee to -death; also what the king said unto thee: 38:26 Then thou shalt say -unto them, I presented my supplication before the king, that he would -not cause me to return to Jonathan's house, to die there. - -38:27 Then came all the princes unto Jeremiah, and asked him: and he -told them according to all these words that the king had commanded. So -they left off speaking with him; for the matter was not perceived. - -38:28 So Jeremiah abode in the court of the prison until the day that -Jerusalem was taken: and he was there when Jerusalem was taken. - -39:1 In the ninth year of Zedekiah king of Judah, in the tenth month, -came Nebuchadrezzar king of Babylon and all his army against -Jerusalem, and they besieged it. - -39:2 And in the eleventh year of Zedekiah, in the fourth month, the -ninth day of the month, the city was broken up. - -39:3 And all the princes of the king of Babylon came in, and sat in -the middle gate, even Nergalsharezer, Samgarnebo, Sarsechim, Rabsaris, -Nergalsharezer, Rabmag, with all the residue of the princes of the -king of Babylon. - -39:4 And it came to pass, that when Zedekiah the king of Judah saw -them, and all the men of war, then they fled, and went forth out of -the city by night, by the way of the king's garden, by the gate -betwixt the two walls: and he went out the way of the plain. - -39:5 But the Chaldeans' army pursued after them, and overtook Zedekiah -in the plains of Jericho: and when they had taken him, they brought -him up to Nebuchadnezzar king of Babylon to Riblah in the land of -Hamath, where he gave judgment upon him. - -39:6 Then the king of Babylon slew the sons of Zedekiah in Riblah -before his eyes: also the king of Babylon slew all the nobles of -Judah. - -39:7 Moreover he put out Zedekiah's eyes, and bound him with chains, -to carry him to Babylon. - -39:8 And the Chaldeans burned the king's house, and the houses of the -people, with fire, and brake down the walls of Jerusalem. - -39:9 Then Nebuzaradan the captain of the guard carried away captive -into Babylon the remnant of the people that remained in the city, and -those that fell away, that fell to him, with the rest of the people -that remained. - -39:10 But Nebuzaradan the captain of the guard left of the poor of the -people, which had nothing, in the land of Judah, and gave them -vineyards and fields at the same time. - -39:11 Now Nebuchadrezzar king of Babylon gave charge concerning -Jeremiah to Nebuzaradan the captain of the guard, saying, 39:12 Take -him, and look well to him, and do him no harm; but do unto him even as -he shall say unto thee. - -39:13 So Nebuzaradan the captain of the guard sent, and Nebushasban, -Rabsaris, and Nergalsharezer, Rabmag, and all the king of Babylon's -princes; 39:14 Even they sent, and took Jeremiah out of the court of -the prison, and committed him unto Gedaliah the son of Ahikam the son -of Shaphan, that he should carry him home: so he dwelt among the -people. - -39:15 Now the word of the LORD came unto Jeremiah, while he was shut -up in the court of the prison, saying, 39:16 Go and speak to -Ebedmelech the Ethiopian, saying, Thus saith the LORD of hosts, the -God of Israel; Behold, I will bring my words upon this city for evil, -and not for good; and they shall be accomplished in that day before -thee. - -39:17 But I will deliver thee in that day, saith the LORD: and thou -shalt not be given into the hand of the men of whom thou art afraid. - -39:18 For I will surely deliver thee, and thou shalt not fall by the -sword, but thy life shall be for a prey unto thee: because thou hast -put thy trust in me, saith the LORD. - -40:1 The word that came to Jeremiah from the LORD, after that -Nebuzaradan the captain of the guard had let him go from Ramah, when -he had taken him being bound in chains among all that were carried -away captive of Jerusalem and Judah, which were carried away captive -unto Babylon. - -40:2 And the captain of the guard took Jeremiah, and said unto him, -The LORD thy God hath pronounced this evil upon this place. - -40:3 Now the LORD hath brought it, and done according as he hath said: -because ye have sinned against the LORD, and have not obeyed his -voice, therefore this thing is come upon you. - -40:4 And now, behold, I loose thee this day from the chains which were -upon thine hand. If it seem good unto thee to come with me into -Babylon, come; and I will look well unto thee: but if it seem ill unto -thee to come with me into Babylon, forbear: behold, all the land is -before thee: whither it seemeth good and convenient for thee to go, -thither go. - -40:5 Now while he was not yet gone back, he said, Go back also to -Gedaliah the son of Ahikam the son of Shaphan, whom the king of -Babylon hath made governor over the cities of Judah, and dwell with -him among the people: or go wheresoever it seemeth convenient unto -thee to go. So the captain of the guard gave him victuals and a -reward, and let him go. - -40:6 Then went Jeremiah unto Gedaliah the son of Ahikam to Mizpah; and -dwelt with him among the people that were left in the land. - -40:7 Now when all the captains of the forces which were in the fields, -even they and their men, heard that the king of Babylon had made -Gedaliah the son of Ahikam governor in the land, and had committed -unto him men, and women, and children, and of the poor of the land, of -them that were not carried away captive to Babylon; 40:8 Then they -came to Gedaliah to Mizpah, even Ishmael the son of Nethaniah, and -Johanan and Jonathan the sons of Kareah, and Seraiah the son of -Tanhumeth, and the sons of Ephai the Netophathite, and Jezaniah the -son of a Maachathite, they and their men. - -40:9 And Gedaliah the son of Ahikam the son of Shaphan sware unto them -and to their men, saying, Fear not to serve the Chaldeans: dwell in -the land, and serve the king of Babylon, and it shall be well with -you. - -40:10 As for me, behold, I will dwell at Mizpah, to serve the -Chaldeans, which will come unto us: but ye, gather ye wine, and summer -fruits, and oil, and put them in your vessels, and dwell in your -cities that ye have taken. - -40:11 Likewise when all the Jews that were in Moab, and among the -Ammonites, and in Edom, and that were in all the countries, heard that -the king of Babylon had left a remnant of Judah, and that he had set -over them Gedaliah the son of Ahikam the son of Shaphan; 40:12 Even -all the Jews returned out of all places whither they were driven, and -came to the land of Judah, to Gedaliah, unto Mizpah, and gathered wine -and summer fruits very much. - -40:13 Moreover Johanan the son of Kareah, and all the captains of the -forces that were in the fields, came to Gedaliah to Mizpah, 40:14 And -said unto him, Dost thou certainly know that Baalis the king of the -Ammonites hath sent Ishmael the son of Nethaniah to slay thee? But -Gedaliah the son of Ahikam believed them not. - -40:15 Then Johanan the son of Kareah spake to Gedaliah in Mizpah -secretly saying, Let me go, I pray thee, and I will slay Ishmael the -son of Nethaniah, and no man shall know it: wherefore should he slay -thee, that all the Jews which are gathered unto thee should be -scattered, and the remnant in Judah perish? 40:16 But Gedaliah the -son of Ahikam said unto Johanan the son of Kareah, Thou shalt not do -this thing: for thou speakest falsely of Ishmael. - -41:1 Now it came to pass in the seventh month, that Ishmael the son of -Nethaniah the son of Elishama, of the seed royal, and the princes of -the king, even ten men with him, came unto Gedaliah the son of Ahikam -to Mizpah; and there they did eat bread together in Mizpah. - -41:2 Then arose Ishmael the son of Nethaniah, and the ten men that -were with him, and smote Gedaliah the son of Ahikam the son of Shaphan -with the sword, and slew him, whom the king of Babylon had made -governor over the land. - -41:3 Ishmael also slew all the Jews that were with him, even with -Gedaliah, at Mizpah, and the Chaldeans that were found there, and the -men of war. - -41:4 And it came to pass the second day after he had slain Gedaliah, -and no man knew it, 41:5 That there came certain from Shechem, from -Shiloh, and from Samaria, even fourscore men, having their beards -shaven, and their clothes rent, and having cut themselves, with -offerings and incense in their hand, to bring them to the house of the -LORD. - -41:6 And Ishmael the son of Nethaniah went forth from Mizpah to meet -them, weeping all along as he went: and it came to pass, as he met -them, he said unto them, Come to Gedaliah the son of Ahikam. - -41:7 And it was so, when they came into the midst of the city, that -Ishmael the son of Nethaniah slew them, and cast them into the midst -of the pit, he, and the men that were with him. - -41:8 But ten men were found among them that said unto Ishmael, Slay us -not: for we have treasures in the field, of wheat, and of barley, and -of oil, and of honey. So he forbare, and slew them not among their -brethren. - -41:9 Now the pit wherein Ishmael had cast all the dead bodies of the -men, whom he had slain because of Gedaliah, was it which Asa the king -had made for fear of Baasha king of Israel: and Ishmael the son of -Nethaniah filled it with them that were slain. - -41:10 Then Ishmael carried away captive all the residue of the people -that were in Mizpah, even the king's daughters, and all the people -that remained in Mizpah, whom Nebuzaradan the captain of the guard had -committed to Gedaliah the son of Ahikam: and Ishmael the son of -Nethaniah carried them away captive, and departed to go over to the -Ammonites. - -41:11 But when Johanan the son of Kareah, and all the captains of the -forces that were with him, heard of all the evil that Ishmael the son -of Nethaniah had done, 41:12 Then they took all the men, and went to -fight with Ishmael the son of Nethaniah, and found him by the great -waters that are in Gibeon. - -41:13 Now it came to pass, that when all the people which were with -Ishmael saw Johanan the son of Kareah, and all the captains of the -forces that were with him, then they were glad. - -41:14 So all the people that Ishmael had carried away captive from -Mizpah cast about and returned, and went unto Johanan the son of -Kareah. - -41:15 But Ishmael the son of Nethaniah escaped from Johanan with eight -men, and went to the Ammonites. - -41:16 Then took Johanan the son of Kareah, and all the captains of the -forces that were with him, all the remnant of the people whom he had -recovered from Ishmael the son of Nethaniah, from Mizpah, after that -he had slain Gedaliah the son of Ahikam, even mighty men of war, and -the women, and the children, and the eunuchs, whom he had brought -again from Gibeon: 41:17 And they departed, and dwelt in the -habitation of Chimham, which is by Bethlehem, to go to enter into -Egypt, 41:18 Because of the Chaldeans: for they were afraid of them, -because Ishmael the son of Nethaniah had slain Gedaliah the son of -Ahikam, whom the king of Babylon made governor in the land. - -42:1 Then all the captains of the forces, and Johanan the son of -Kareah, and Jezaniah the son of Hoshaiah, and all the people from the -least even unto the greatest, came near, 42:2 And said unto Jeremiah -the prophet, Let, we beseech thee, our supplication be accepted before -thee, and pray for us unto the LORD thy God, even for all this -remnant; (for we are left but a few of many, as thine eyes do behold -us:) 42:3 That the LORD thy God may shew us the way wherein we may -walk, and the thing that we may do. - -42:4 Then Jeremiah the prophet said unto them, I have heard you; -behold, I will pray unto the LORD your God according to your words; -and it shall come to pass, that whatsoever thing the LORD shall answer -you, I will declare it unto you; I will keep nothing back from you. - -42:5 Then they said to Jeremiah, The LORD be a true and faithful -witness between us, if we do not even according to all things for the -which the LORD thy God shall send thee to us. - -42:6 Whether it be good, or whether it be evil, we will obey the voice -of the LORD our God, to whom we send thee; that it may be well with -us, when we obey the voice of the LORD our God. - -42:7 And it came to pass after ten days, that the word of the LORD -came unto Jeremiah. - -42:8 Then called he Johanan the son of Kareah, and all the captains of -the forces which were with him, and all the people from the least even -to the greatest, 42:9 And said unto them, Thus saith the LORD, the God -of Israel, unto whom ye sent me to present your supplication before -him; 42:10 If ye will still abide in this land, then will I build you, -and not pull you down, and I will plant you, and not pluck you up: for -I repent me of the evil that I have done unto you. - -42:11 Be not afraid of the king of Babylon, of whom ye are afraid; be -not afraid of him, saith the LORD: for I am with you to save you, and -to deliver you from his hand. - -42:12 And I will shew mercies unto you, that he may have mercy upon -you, and cause you to return to your own land. - -42:13 But if ye say, We will not dwell in this land, neither obey the -voice of the LORD your God, 42:14 Saying, No; but we will go into the -land of Egypt, where we shall see no war, nor hear the sound of the -trumpet, nor have hunger of bread; and there will we dwell: 42:15 And -now therefore hear the word of the LORD, ye remnant of Judah; Thus -saith the LORD of hosts, the God of Israel; If ye wholly set your -faces to enter into Egypt, and go to sojourn there; 42:16 Then it -shall come to pass, that the sword, which ye feared, shall overtake -you there in the land of Egypt, and the famine, whereof ye were -afraid, shall follow close after you there in Egypt; and there ye -shall die. - -42:17 So shall it be with all the men that set their faces to go into -Egypt to sojourn there; they shall die by the sword, by the famine, -and by the pestilence: and none of them shall remain or escape from -the evil that I will bring upon them. - -42:18 For thus saith the LORD of hosts, the God of Israel; As mine -anger and my fury hath been poured forth upon the inhabitants of -Jerusalem; so shall my fury be poured forth upon you, when ye shall -enter into Egypt: and ye shall be an execration, and an astonishment, -and a curse, and a reproach; and ye shall see this place no more. - -42:19 The LORD hath said concerning you, O ye remnant of Judah; Go ye -not into Egypt: know certainly that I have admonished you this day. - -42:20 For ye dissembled in your hearts, when ye sent me unto the LORD -your God, saying, Pray for us unto the LORD our God; and according -unto all that the LORD our God shall say, so declare unto us, and we -will do it. - -42:21 And now I have this day declared it to you; but ye have not -obeyed the voice of the LORD your God, nor any thing for the which he -hath sent me unto you. - -42:22 Now therefore know certainly that ye shall die by the sword, by -the famine, and by the pestilence, in the place whither ye desire to -go and to sojourn. - -43:1 And it came to pass, that when Jeremiah had made an end of -speaking unto all the people all the words of the LORD their God, for -which the LORD their God had sent him to them, even all these words, -43:2 Then spake Azariah the son of Hoshaiah, and Johanan the son of -Kareah, and all the proud men, saying unto Jeremiah, Thou speakest -falsely: the LORD our God hath not sent thee to say, Go not into Egypt -to sojourn there: 43:3 But Baruch the son of Neriah setteth thee on -against us, for to deliver us into the hand of the Chaldeans, that -they might put us to death, and carry us away captives into Babylon. - -43:4 So Johanan the son of Kareah, and all the captains of the forces, -and all the people, obeyed not the voice of the LORD, to dwell in the -land of Judah. - -43:5 But Johanan the son of Kareah, and all the captains of the -forces, took all the remnant of Judah, that were returned from all -nations, whither they had been driven, to dwell in the land of Judah; -43:6 Even men, and women, and children, and the king's daughters, and -every person that Nebuzaradan the captain of the guard had left with -Gedaliah the son of Ahikam the son of Shaphan, and Jeremiah the -prophet, and Baruch the son of Neriah. - -43:7 So they came into the land of Egypt: for they obeyed not the -voice of the LORD: thus came they even to Tahpanhes. - -43:8 Then came the word of the LORD unto Jeremiah in Tahpanhes, -saying, 43:9 Take great stones in thine hand, and hide them in the -clay in the brickkiln, which is at the entry of Pharaoh's house in -Tahpanhes, in the sight of the men of Judah; 43:10 And say unto them, -Thus saith the LORD of hosts, the God of Israel; Behold, I will send -and take Nebuchadrezzar the king of Babylon, my servant, and will set -his throne upon these stones that I have hid; and he shall spread his -royal pavilion over them. - -43:11 And when he cometh, he shall smite the land of Egypt, and -deliver such as are for death to death; and such as are for captivity -to captivity; and such as are for the sword to the sword. - -43:12 And I will kindle a fire in the houses of the gods of Egypt; and -he shall burn them, and carry them away captives: and he shall array -himself with the land of Egypt, as a shepherd putteth on his garment; -and he shall go forth from thence in peace. - -43:13 He shall break also the images of Bethshemesh, that is in the -land of Egypt; and the houses of the gods of the Egyptians shall he -burn with fire. - -44:1 The word that came to Jeremiah concerning all the Jews which -dwell in the land of Egypt, which dwell at Migdol, and at Tahpanhes, -and at Noph, and in the country of Pathros, saying, 44:2 Thus saith -the LORD of hosts, the God of Israel; Ye have seen all the evil that I -have brought upon Jerusalem, and upon all the cities of Judah; and, -behold, this day they are a desolation, and no man dwelleth therein, -44:3 Because of their wickedness which they have committed to provoke -me to anger, in that they went to burn incense, and to serve other -gods, whom they knew not, neither they, ye, nor your fathers. - -44:4 Howbeit I sent unto you all my servants the prophets, rising -early and sending them, saying, Oh, do not this abominable thing that -I hate. - -44:5 But they hearkened not, nor inclined their ear to turn from their -wickedness, to burn no incense unto other gods. - -44:6 Wherefore my fury and mine anger was poured forth, and was -kindled in the cities of Judah and in the streets of Jerusalem; and -they are wasted and desolate, as at this day. - -44:7 Therefore now thus saith the LORD, the God of hosts, the God of -Israel; Wherefore commit ye this great evil against your souls, to cut -off from you man and woman, child and suckling, out of Judah, to leave -you none to remain; 44:8 In that ye provoke me unto wrath with the -works of your hands, burning incense unto other gods in the land of -Egypt, whither ye be gone to dwell, that ye might cut yourselves off, -and that ye might be a curse and a reproach among all the nations of -the earth? 44:9 Have ye forgotten the wickedness of your fathers, and -the wickedness of the kings of Judah, and the wickedness of their -wives, and your own wickedness, and the wickedness of your wives, -which they have committed in the land of Judah, and in the streets of -Jerusalem? 44:10 They are not humbled even unto this day, neither -have they feared, nor walked in my law, nor in my statutes, that I set -before you and before your fathers. - -44:11 Therefore thus saith the LORD of hosts, the God of Israel; -Behold, I will set my face against you for evil, and to cut off all -Judah. - -44:12 And I will take the remnant of Judah, that have set their faces -to go into the land of Egypt to sojourn there, and they shall all be -consumed, and fall in the land of Egypt; they shall even be consumed -by the sword and by the famine: they shall die, from the least even -unto the greatest, by the sword and by the famine: and they shall be -an execration, and an astonishment, and a curse, and a reproach. - -44:13 For I will punish them that dwell in the land of Egypt, as I -have punished Jerusalem, by the sword, by the famine, and by the -pestilence: 44:14 So that none of the remnant of Judah, which are gone -into the land of Egypt to sojourn there, shall escape or remain, that -they should return into the land of Judah, to the which they have a -desire to return to dwell there: for none shall return but such as -shall escape. - -44:15 Then all the men which knew that their wives had burned incense -unto other gods, and all the women that stood by, a great multitude, -even all the people that dwelt in the land of Egypt, in Pathros, -answered Jeremiah, saying, 44:16 As for the word that thou hast spoken -unto us in the name of the LORD, we will not hearken unto thee. - -44:17 But we will certainly do whatsoever thing goeth forth out of our -own mouth, to burn incense unto the queen of heaven, and to pour out -drink offerings unto her, as we have done, we, and our fathers, our -kings, and our princes, in the cities of Judah, and in the streets of -Jerusalem: for then had we plenty of victuals, and were well, and saw -no evil. - -44:18 But since we left off to burn incense to the queen of heaven, -and to pour out drink offerings unto her, we have wanted all things, -and have been consumed by the sword and by the famine. - -44:19 And when we burned incense to the queen of heaven, and poured -out drink offerings unto her, did we make her cakes to worship her, -and pour out drink offerings unto her, without our men? 44:20 Then -Jeremiah said unto all the people, to the men, and to the women, and -to all the people which had given him that answer, saying, 44:21 The -incense that ye burned in the cities of Judah, and in the streets of -Jerusalem, ye, and your fathers, your kings, and your princes, and the -people of the land, did not the LORD remember them, and came it not -into his mind? 44:22 So that the LORD could no longer bear, because -of the evil of your doings, and because of the abominations which ye -have committed; therefore is your land a desolation, and an -astonishment, and a curse, without an inhabitant, as at this day. - -44:23 Because ye have burned incense, and because ye have sinned -against the LORD, and have not obeyed the voice of the LORD, nor -walked in his law, nor in his statutes, nor in his testimonies; -therefore this evil is happened unto you, as at this day. - -44:24 Moreover Jeremiah said unto all the people, and to all the -women, Hear the word of the LORD, all Judah that are in the land of -Egypt: 44:25 Thus saith the LORD of hosts, the God of Israel, saying; -Ye and your wives have both spoken with your mouths, and fulfilled -with your hand, saying, We will surely perform our vows that we have -vowed, to burn incense to the queen of heaven, and to pour out drink -offerings unto her: ye will surely accomplish your vows, and surely -perform your vows. - -44:26 Therefore hear ye the word of the LORD, all Judah that dwell in -the land of Egypt; Behold, I have sworn by my great name, saith the -LORD, that my name shall no more be named in the mouth of any man of -Judah in all the land of Egypt, saying, The Lord GOD liveth. - -44:27 Behold, I will watch over them for evil, and not for good: and -all the men of Judah that are in the land of Egypt shall be consumed -by the sword and by the famine, until there be an end of them. - -44:28 Yet a small number that escape the sword shall return out of the -land of Egypt into the land of Judah, and all the remnant of Judah, -that are gone into the land of Egypt to sojourn there, shall know -whose words shall stand, mine, or their's. - -44:29 And this shall be a sign unto you, saith the LORD, that I will -punish you in this place, that ye may know that my words shall surely -stand against you for evil: 44:30 Thus saith the LORD; Behold, I will -give Pharaohhophra king of Egypt into the hand of his enemies, and -into the hand of them that seek his life; as I gave Zedekiah king of -Judah into the hand of Nebuchadrezzar king of Babylon, his enemy, and -that sought his life. - -45:1 The word that Jeremiah the prophet spake unto Baruch the son of -Neriah, when he had written these words in a book at the mouth of -Jeremiah, in the fourth year of Jehoiakim the son of Josiah king of -Judah, saying, 45:2 Thus saith the LORD, the God of Israel, unto thee, -O Baruch: 45:3 Thou didst say, Woe is me now! for the LORD hath added -grief to my sorrow; I fainted in my sighing, and I find no rest. - -45:4 Thus shalt thou say unto him, The LORD saith thus; Behold, that -which I have built will I break down, and that which I have planted I -will pluck up, even this whole land. - -45:5 And seekest thou great things for thyself? seek them not: for, -behold, I will bring evil upon all flesh, saith the LORD: but thy life -will I give unto thee for a prey in all places whither thou goest. - -46:1 The word of the LORD which came to Jeremiah the prophet against -the Gentiles; 46:2 Against Egypt, against the army of Pharaohnecho -king of Egypt, which was by the river Euphrates in Carchemish, which -Nebuchadrezzar king of Babylon smote in the fourth year of Jehoiakim -the son of Josiah king of Judah. - -46:3 Order ye the buckler and shield, and draw near to battle. - -46:4 Harness the horses; and get up, ye horsemen, and stand forth with -your helmets; furbish the spears, and put on the brigandines. - -46:5 Wherefore have I seen them dismayed and turned away back? and -their mighty ones are beaten down, and are fled apace, and look not -back: for fear was round about, saith the LORD. - -46:6 Let not the swift flee away, nor the mighty man escape; they -shall stumble, and fall toward the north by the river Euphrates. - -46:7 Who is this that cometh up as a flood, whose waters are moved as -the rivers? 46:8 Egypt riseth up like a flood, and his waters are -moved like the rivers; and he saith, I will go up, and will cover the -earth; I will destroy the city and the inhabitants thereof. - -46:9 Come up, ye horses; and rage, ye chariots; and let the mighty men -come forth; the Ethiopians and the Libyans, that handle the shield; -and the Lydians, that handle and bend the bow. - -46:10 For this is the day of the Lord GOD of hosts, a day of -vengeance, that he may avenge him of his adversaries: and the sword -shall devour, and it shall be satiate and made drunk with their blood: -for the Lord GOD of hosts hath a sacrifice in the north country by the -river Euphrates. - -46:11 Go up into Gilead, and take balm, O virgin, the daughter of -Egypt: in vain shalt thou use many medicines; for thou shalt not be -cured. - -46:12 The nations have heard of thy shame, and thy cry hath filled the -land: for the mighty man hath stumbled against the mighty, and they -are fallen both together. - -46:13 The word that the LORD spake to Jeremiah the prophet, how -Nebuchadrezzar king of Babylon should come and smite the land of -Egypt. - -46:14 Declare ye in Egypt, and publish in Migdol, and publish in Noph -and in Tahpanhes: say ye, Stand fast, and prepare thee; for the sword -shall devour round about thee. - -46:15 Why are thy valiant men swept away? they stood not, because the -LORD did drive them. - -46:16 He made many to fall, yea, one fell upon another: and they said, -Arise, and let us go again to our own people, and to the land of our -nativity, from the oppressing sword. - -46:17 They did cry there, Pharaoh king of Egypt is but a noise; he -hath passed the time appointed. - -46:18 As I live, saith the King, whose name is the LORD of hosts, -Surely as Tabor is among the mountains, and as Carmel by the sea, so -shall he come. - -46:19 O thou daughter dwelling in Egypt, furnish thyself to go into -captivity: for Noph shall be waste and desolate without an inhabitant. - -46:20 Egypt is like a very fair heifer, but destruction cometh; it -cometh out of the north. - -46:21 Also her hired men are in the midst of her like fatted bullocks; -for they also are turned back, and are fled away together: they did -not stand, because the day of their calamity was come upon them, and -the time of their visitation. - -46:22 The voice thereof shall go like a serpent; for they shall march -with an army, and come against her with axes, as hewers of wood. - -46:23 They shall cut down her forest, saith the LORD, though it cannot -be searched; because they are more than the grasshoppers, and are -innumerable. - -46:24 The daughter of Egypt shall be confounded; she shall be -delivered into the hand of the people of the north. - -46:25 The LORD of hosts, the God of Israel, saith; Behold, I will -punish the multitude of No, and Pharaoh, and Egypt, with their gods, -and their kings; even Pharaoh, and all them that trust in him: 46:26 -And I will deliver them into the hand of those that seek their lives, -and into the hand of Nebuchadrezzar king of Babylon, and into the hand -of his servants: and afterward it shall be inhabited, as in the days -of old, saith the LORD. - -46:27 But fear not thou, O my servant Jacob, and be not dismayed, O -Israel: for, behold, I will save thee from afar off, and thy seed from -the land of their captivity; and Jacob shall return, and be in rest -and at ease, and none shall make him afraid. - -46:28 Fear thou not, O Jacob my servant, saith the LORD: for I am with -thee; for I will make a full end of all the nations whither I have -driven thee: but I will not make a full end of thee, but correct thee -in measure; yet will I not leave thee wholly unpunished. - -47:1 The word of the LORD that came to Jeremiah the prophet against -the Philistines, before that Pharaoh smote Gaza. - -47:2 Thus saith the LORD; Behold, waters rise up out of the north, and -shall be an overflowing flood, and shall overflow the land, and all -that is therein; the city, and them that dwell therein: then the men -shall cry, and all the inhabitants of the land shall howl. - -47:3 At the noise of the stamping of the hoofs of his strong horses, -at the rushing of his chariots, and at the rumbling of his wheels, the -fathers shall not look back to their children for feebleness of hands; -47:4 Because of the day that cometh to spoil all the Philistines, and -to cut off from Tyrus and Zidon every helper that remaineth: for the -LORD will spoil the Philistines, the remnant of the country of -Caphtor. - -47:5 Baldness is come upon Gaza; Ashkelon is cut off with the remnant -of their valley: how long wilt thou cut thyself? 47:6 O thou sword of -the LORD, how long will it be ere thou be quiet? put up thyself into -thy scabbard, rest, and be still. - -47:7 How can it be quiet, seeing the LORD hath given it a charge -against Ashkelon, and against the sea shore? there hath he appointed -it. - -48:1 Against Moab thus saith the LORD of hosts, the God of Israel; Woe -unto Nebo! for it is spoiled: Kiriathaim is confounded and taken: -Misgab is confounded and dismayed. - -48:2 There shall be no more praise of Moab: in Heshbon they have -devised evil against it; come, and let us cut it off from being a -nation. Also thou shalt be cut down, O Madmen; the sword shall pursue -thee. - -48:3 A voice of crying shall be from Horonaim, spoiling and great -destruction. - -48:4 Moab is destroyed; her little ones have caused a cry to be heard. - -48:5 For in the going up of Luhith continual weeping shall go up; for -in the going down of Horonaim the enemies have heard a cry of -destruction. - -48:6 Flee, save your lives, and be like the heath in the wilderness. - -48:7 For because thou hast trusted in thy works and in thy treasures, -thou shalt also be taken: and Chemosh shall go forth into captivity -with his priests and his princes together. - -48:8 And the spoiler shall come upon every city, and no city shall -escape: the valley also shall perish, and the plain shall be -destroyed, as the LORD hath spoken. - -48:9 Give wings unto Moab, that it may flee and get away: for the -cities thereof shall be desolate, without any to dwell therein. - -48:10 Cursed be he that doeth the work of the LORD deceitfully, and -cursed be he that keepeth back his sword from blood. - -48:11 Moab hath been at ease from his youth, and he hath settled on -his lees, and hath not been emptied from vessel to vessel, neither -hath he gone into captivity: therefore his taste remained in him, and -his scent is not changed. - -48:12 Therefore, behold, the days come, saith the LORD, that I will -send unto him wanderers, that shall cause him to wander, and shall -empty his vessels, and break their bottles. - -48:13 And Moab shall be ashamed of Chemosh, as the house of Israel was -ashamed of Bethel their confidence. - -48:14 How say ye, We are mighty and strong men for the war? 48:15 -Moab is spoiled, and gone up out of her cities, and his chosen young -men are gone down to the slaughter, saith the King, whose name is the -LORD of hosts. - -48:16 The calamity of Moab is near to come, and his affliction hasteth -fast. - -48:17 All ye that are about him, bemoan him; and all ye that know his -name, say, How is the strong staff broken, and the beautiful rod! -48:18 Thou daughter that dost inhabit Dibon, come down from thy glory, -and sit in thirst; for the spoiler of Moab shall come upon thee, and -he shall destroy thy strong holds. - -48:19 O inhabitant of Aroer, stand by the way, and espy; ask him that -fleeth, and her that escapeth, and say, What is done? 48:20 Moab is -confounded; for it is broken down: howl and cry; tell ye it in Arnon, -that Moab is spoiled, 48:21 And judgment is come upon the plain -country; upon Holon, and upon Jahazah, and upon Mephaath, 48:22 And -upon Dibon, and upon Nebo, and upon Bethdiblathaim, 48:23 And upon -Kiriathaim, and upon Bethgamul, and upon Bethmeon, 48:24 And upon -Kerioth, and upon Bozrah, and upon all the cities of the land of Moab, -far or near. - -48:25 The horn of Moab is cut off, and his arm is broken, saith the -LORD. - -48:26 Make ye him drunken: for he magnified himself against the LORD: -Moab also shall wallow in his vomit, and he also shall be in derision. - -48:27 For was not Israel a derision unto thee? was he found among -thieves? for since thou spakest of him, thou skippedst for joy. - -48:28 O ye that dwell in Moab, leave the cities, and dwell in the -rock, and be like the dove that maketh her nest in the sides of the -hole's mouth. - -48:29 We have heard the pride of Moab, (he is exceeding proud) his -loftiness, and his arrogancy, and his pride, and the haughtiness of -his heart. - -48:30 I know his wrath, saith the LORD; but it shall not be so; his -lies shall not so effect it. - -48:31 Therefore will I howl for Moab, and I will cry out for all Moab; -mine heart shall mourn for the men of Kirheres. - -48:32 O vine of Sibmah, I will weep for thee with the weeping of -Jazer: thy plants are gone over the sea, they reach even to the sea of -Jazer: the spoiler is fallen upon thy summer fruits and upon thy -vintage. - -48:33 And joy and gladness is taken from the plentiful field, and from -the land of Moab, and I have caused wine to fail from the winepresses: -none shall tread with shouting; their shouting shall be no shouting. - -48:34 From the cry of Heshbon even unto Elealeh, and even unto Jahaz, -have they uttered their voice, from Zoar even unto Horonaim, as an -heifer of three years old: for the waters also of Nimrim shall be -desolate. - -48:35 Moreover I will cause to cease in Moab, saith the LORD, him that -offereth in the high places, and him that burneth incense to his gods. - -48:36 Therefore mine heart shall sound for Moab like pipes, and mine -heart shall sound like pipes for the men of Kirheres: because the -riches that he hath gotten are perished. - -48:37 For every head shall be bald, and every beard clipped: upon all -the hands shall be cuttings, and upon the loins sackcloth. - -48:38 There shall be lamentation generally upon all the housetops of -Moab, and in the streets thereof: for I have broken Moab like a vessel -wherein is no pleasure, saith the LORD. - -48:39 They shall howl, saying, How is it broken down! how hath Moab -turned the back with shame! so shall Moab be a derision and a -dismaying to all them about him. - -48:40 For thus saith the LORD; Behold, he shall fly as an eagle, and -shall spread his wings over Moab. - -48:41 Kerioth is taken, and the strong holds are surprised, and the -mighty men's hearts in Moab at that day shall be as the heart of a -woman in her pangs. - -48:42 And Moab shall be destroyed from being a people, because he hath -magnified himself against the LORD. - -48:43 Fear, and the pit, and the snare, shall be upon thee, O -inhabitant of Moab, saith the LORD. - -48:44 He that fleeth from the fear shall fall into the pit; and he -that getteth up out of the pit shall be taken in the snare: for I will -bring upon it, even upon Moab, the year of their visitation, saith the -LORD. - -48:45 They that fled stood under the shadow of Heshbon because of the -force: but a fire shall come forth out of Heshbon, and a flame from -the midst of Sihon, and shall devour the corner of Moab, and the crown -of the head of the tumultuous ones. - -48:46 Woe be unto thee, O Moab! the people of Chemosh perisheth: for -thy sons are taken captives, and thy daughters captives. - -48:47 Yet will I bring again the captivity of Moab in the latter days, -saith the LORD. Thus far is the judgment of Moab. - -49:1 Concerning the Ammonites, thus saith the LORD; Hath Israel no -sons? hath he no heir? why then doth their king inherit Gad, and his -people dwell in his cities? 49:2 Therefore, behold, the days come, -saith the LORD, that I will cause an alarm of war to be heard in -Rabbah of the Ammonites; and it shall be a desolate heap, and her -daughters shall be burned with fire: then shall Israel be heir unto -them that were his heirs, saith the LORD. - -49:3 Howl, O Heshbon, for Ai is spoiled: cry, ye daughters of Rabbah, -gird you with sackcloth; lament, and run to and fro by the hedges; for -their king shall go into captivity, and his priests and his princes -together. - -49:4 Wherefore gloriest thou in the valleys, thy flowing valley, O -backsliding daughter? that trusted in her treasures, saying, Who shall -come unto me? 49:5 Behold, I will bring a fear upon thee, saith the -Lord GOD of hosts, from all those that be about thee; and ye shall be -driven out every man right forth; and none shall gather up him that -wandereth. - -49:6 And afterward I will bring again the captivity of the children of -Ammon, saith the LORD. - -49:7 Concerning Edom, thus saith the LORD of hosts; Is wisdom no more -in Teman? is counsel perished from the prudent? is their wisdom -vanished? 49:8 Flee ye, turn back, dwell deep, O inhabitants of -Dedan; for I will bring the calamity of Esau upon him, the time that I -will visit him. - -49:9 If grapegatherers come to thee, would they not leave some -gleaning grapes? if thieves by night, they will destroy till they have -enough. - -49:10 But I have made Esau bare, I have uncovered his secret places, -and he shall not be able to hide himself: his seed is spoiled, and his -brethren, and his neighbours, and he is not. - -49:11 Leave thy fatherless children, I will preserve them alive; and -let thy widows trust in me. - -49:12 For thus saith the LORD; Behold, they whose judgment was not to -drink of the cup have assuredly drunken; and art thou he that shall -altogether go unpunished? thou shalt not go unpunished, but thou shalt -surely drink of it. - -49:13 For I have sworn by myself, saith the LORD, that Bozrah shall -become a desolation, a reproach, a waste, and a curse; and all the -cities thereof shall be perpetual wastes. - -49:14 I have heard a rumour from the LORD, and an ambassador is sent -unto the heathen, saying, Gather ye together, and come against her, -and rise up to the battle. - -49:15 For, lo, I will make thee small among the heathen, and despised -among men. - -49:16 Thy terribleness hath deceived thee, and the pride of thine -heart, O thou that dwellest in the clefts of the rock, that holdest -the height of the hill: though thou shouldest make thy nest as high as -the eagle, I will bring thee down from thence, saith the LORD. - -49:17 Also Edom shall be a desolation: every one that goeth by it -shall be astonished, and shall hiss at all the plagues thereof. - -49:18 As in the overthrow of Sodom and Gomorrah and the neighbour -cities thereof, saith the LORD, no man shall abide there, neither -shall a son of man dwell in it. - -49:19 Behold, he shall come up like a lion from the swelling of Jordan -against the habitation of the strong: but I will suddenly make him run -away from her: and who is a chosen man, that I may appoint over her? -for who is like me? and who will appoint me the time? and who is that -shepherd that will stand before me? 49:20 Therefore hear the counsel -of the LORD, that he hath taken against Edom; and his purposes, that -he hath purposed against the inhabitants of Teman: Surely the least of -the flock shall draw them out: surely he shall make their habitations -desolate with them. - -49:21 The earth is moved at the noise of their fall, at the cry the -noise thereof was heard in the Red sea. - -49:22 Behold, he shall come up and fly as the eagle, and spread his -wings over Bozrah: and at that day shall the heart of the mighty men -of Edom be as the heart of a woman in her pangs. - -49:23 Concerning Damascus. Hamath is confounded, and Arpad: for they -have heard evil tidings: they are fainthearted; there is sorrow on the -sea; it cannot be quiet. - -49:24 Damascus is waxed feeble, and turneth herself to flee, and fear -hath seized on her: anguish and sorrows have taken her, as a woman in -travail. - -49:25 How is the city of praise not left, the city of my joy! 49:26 -Therefore her young men shall fall in her streets, and all the men of -war shall be cut off in that day, saith the LORD of hosts. - -49:27 And I will kindle a fire in the wall of Damascus, and it shall -consume the palaces of Benhadad. - -49:28 Concerning Kedar, and concerning the kingdoms of Hazor, which -Nebuchadrezzar king of Babylon shall smite, thus saith the LORD; Arise -ye, go up to Kedar, and spoil the men of the east. - -49:29 Their tents and their flocks shall they take away: they shall -take to themselves their curtains, and all their vessels, and their -camels; and they shall cry unto them, Fear is on every side. - -49:30 Flee, get you far off, dwell deep, O ye inhabitants of Hazor, -saith the LORD; for Nebuchadrezzar king of Babylon hath taken counsel -against you, and hath conceived a purpose against you. - -49:31 Arise, get you up unto the wealthy nation, that dwelleth without -care, saith the LORD, which have neither gates nor bars, which dwell -alone. - -49:32 And their camels shall be a booty, and the multitude of their -cattle a spoil: and I will scatter into all winds them that are in the -utmost corners; and I will bring their calamity from all sides -thereof, saith the LORD. - -49:33 And Hazor shall be a dwelling for dragons, and a desolation for -ever: there shall no man abide there, nor any son of man dwell in it. - -49:34 The word of the LORD that came to Jeremiah the prophet against -Elam in the beginning of the reign of Zedekiah king of Judah, saying, -49:35 Thus saith the LORD of hosts; Behold, I will break the bow of -Elam, the chief of their might. - -49:36 And upon Elam will I bring the four winds from the four quarters -of heaven, and will scatter them toward all those winds; and there -shall be no nation whither the outcasts of Elam shall not come. - -49:37 For I will cause Elam to be dismayed before their enemies, and -before them that seek their life: and I will bring evil upon them, -even my fierce anger, saith the LORD; and I will send the sword after -them, till I have consumed them: 49:38 And I will set my throne in -Elam, and will destroy from thence the king and the princes, saith the -LORD. - -49:39 But it shall come to pass in the latter days, that I will bring -again the captivity of Elam, saith the LORD. - -50:1 The word that the LORD spake against Babylon and against the land -of the Chaldeans by Jeremiah the prophet. - -50:2 Declare ye among the nations, and publish, and set up a standard; -publish, and conceal not: say, Babylon is taken, Bel is confounded, -Merodach is broken in pieces; her idols are confounded, her images are -broken in pieces. - -50:3 For out of the north there cometh up a nation against her, which -shall make her land desolate, and none shall dwell therein: they shall -remove, they shall depart, both man and beast. - -50:4 In those days, and in that time, saith the LORD, the children of -Israel shall come, they and the children of Judah together, going and -weeping: they shall go, and seek the LORD their God. - -50:5 They shall ask the way to Zion with their faces thitherward, -saying, Come, and let us join ourselves to the LORD in a perpetual -covenant that shall not be forgotten. - -50:6 My people hath been lost sheep: their shepherds have caused them -to go astray, they have turned them away on the mountains: they have -gone from mountain to hill, they have forgotten their restingplace. - -50:7 All that found them have devoured them: and their adversaries -said, We offend not, because they have sinned against the LORD, the -habitation of justice, even the LORD, the hope of their fathers. - -50:8 Remove out of the midst of Babylon, and go forth out of the land -of the Chaldeans, and be as the he goats before the flocks. - -50:9 For, lo, I will raise and cause to come up against Babylon an -assembly of great nations from the north country: and they shall set -themselves in array against her; from thence she shall be taken: their -arrows shall be as of a mighty expert man; none shall return in vain. - -50:10 And Chaldea shall be a spoil: all that spoil her shall be -satisfied, saith the LORD. - -50:11 Because ye were glad, because ye rejoiced, O ye destroyers of -mine heritage, because ye are grown fat as the heifer at grass, and -bellow as bulls; 50:12 Your mother shall be sore confounded; she that -bare you shall be ashamed: behold, the hindermost of the nations shall -be a wilderness, a dry land, and a desert. - -50:13 Because of the wrath of the LORD it shall not be inhabited, but -it shall be wholly desolate: every one that goeth by Babylon shall be -astonished, and hiss at all her plagues. - -50:14 Put yourselves in array against Babylon round about: all ye that -bend the bow, shoot at her, spare no arrows: for she hath sinned -against the LORD. - -50:15 Shout against her round about: she hath given her hand: her -foundations are fallen, her walls are thrown down: for it is the -vengeance of the LORD: take vengeance upon her; as she hath done, do -unto her. - -50:16 Cut off the sower from Babylon, and him that handleth the sickle -in the time of harvest: for fear of the oppressing sword they shall -turn every one to his people, and they shall flee every one to his own -land. - -50:17 Israel is a scattered sheep; the lions have driven him away: -first the king of Assyria hath devoured him; and last this -Nebuchadrezzar king of Babylon hath broken his bones. - -50:18 Therefore thus saith the LORD of hosts, the God of Israel; -Behold, I will punish the king of Babylon and his land, as I have -punished the king of Assyria. - -50:19 And I will bring Israel again to his habitation, and he shall -feed on Carmel and Bashan, and his soul shall be satisfied upon mount -Ephraim and Gilead. - -50:20 In those days, and in that time, saith the LORD, the iniquity of -Israel shall be sought for, and there shall be none; and the sins of -Judah, and they shall not be found: for I will pardon them whom I -reserve. - -50:21 Go up against the land of Merathaim, even against it, and -against the inhabitants of Pekod: waste and utterly destroy after -them, saith the LORD, and do according to all that I have commanded -thee. - -50:22 A sound of battle is in the land, and of great destruction. - -50:23 How is the hammer of the whole earth cut asunder and broken! how -is Babylon become a desolation among the nations! 50:24 I have laid a -snare for thee, and thou art also taken, O Babylon, and thou wast not -aware: thou art found, and also caught, because thou hast striven -against the LORD. - -50:25 The LORD hath opened his armoury, and hath brought forth the -weapons of his indignation: for this is the work of the Lord GOD of -hosts in the land of the Chaldeans. - -50:26 Come against her from the utmost border, open her storehouses: -cast her up as heaps, and destroy her utterly: let nothing of her be -left. - -50:27 Slay all her bullocks; let them go down to the slaughter: woe -unto them! for their day is come, the time of their visitation. - -50:28 The voice of them that flee and escape out of the land of -Babylon, to declare in Zion the vengeance of the LORD our God, the -vengeance of his temple. - -50:29 Call together the archers against Babylon: all ye that bend the -bow, camp against it round about; let none thereof escape: recompense -her according to her work; according to all that she hath done, do -unto her: for she hath been proud against the LORD, against the Holy -One of Israel. - -50:30 Therefore shall her young men fall in the streets, and all her -men of war shall be cut off in that day, saith the LORD. - -50:31 Behold, I am against thee, O thou most proud, saith the Lord GOD -of hosts: for thy day is come, the time that I will visit thee. - -50:32 And the most proud shall stumble and fall, and none shall raise -him up: and I will kindle a fire in his cities, and it shall devour -all round about him. - -50:33 Thus saith the LORD of hosts; The children of Israel and the -children of Judah were oppressed together: and all that took them -captives held them fast; they refused to let them go. - -50:34 Their Redeemer is strong; the LORD of hosts is his name: he -shall throughly plead their cause, that he may give rest to the land, -and disquiet the inhabitants of Babylon. - -50:35 A sword is upon the Chaldeans, saith the LORD, and upon the -inhabitants of Babylon, and upon her princes, and upon her wise men. - -50:36 A sword is upon the liars; and they shall dote: a sword is upon -her mighty men; and they shall be dismayed. - -50:37 A sword is upon their horses, and upon their chariots, and upon -all the mingled people that are in the midst of her; and they shall -become as women: a sword is upon her treasures; and they shall be -robbed. - -50:38 A drought is upon her waters; and they shall be dried up: for it -is the land of graven images, and they are mad upon their idols. - -50:39 Therefore the wild beasts of the desert with the wild beasts of -the islands shall dwell there, and the owls shall dwell therein: and -it shall be no more inhabited for ever; neither shall it be dwelt in -from generation to generation. - -50:40 As God overthrew Sodom and Gomorrah and the neighbour cities -thereof, saith the LORD; so shall no man abide there, neither shall -any son of man dwell therein. - -50:41 Behold, a people shall come from the north, and a great nation, -and many kings shall be raised up from the coasts of the earth. - -50:42 They shall hold the bow and the lance: they are cruel, and will -not shew mercy: their voice shall roar like the sea, and they shall -ride upon horses, every one put in array, like a man to the battle, -against thee, O daughter of Babylon. - -50:43 The king of Babylon hath heard the report of them, and his hands -waxed feeble: anguish took hold of him, and pangs as of a woman in -travail. - -50:44 Behold, he shall come up like a lion from the swelling of Jordan -unto the habitation of the strong: but I will make them suddenly run -away from her: and who is a chosen man, that I may appoint over her? -for who is like me? and who will appoint me the time? and who is that -shepherd that will stand before me? 50:45 Therefore hear ye the -counsel of the LORD, that he hath taken against Babylon; and his -purposes, that he hath purposed against the land of the Chaldeans: -Surely the least of the flock shall draw them out: surely he shall -make their habitation desolate with them. - -50:46 At the noise of the taking of Babylon the earth is moved, and -the cry is heard among the nations. - -51:1 Thus saith the LORD; Behold, I will raise up against Babylon, and -against them that dwell in the midst of them that rise up against me, -a destroying wind; 51:2 And will send unto Babylon fanners, that shall -fan her, and shall empty her land: for in the day of trouble they -shall be against her round about. - -51:3 Against him that bendeth let the archer bend his bow, and against -him that lifteth himself up in his brigandine: and spare ye not her -young men; destroy ye utterly all her host. - -51:4 Thus the slain shall fall in the land of the Chaldeans, and they -that are thrust through in her streets. - -51:5 For Israel hath not been forsaken, nor Judah of his God, of the -LORD of hosts; though their land was filled with sin against the Holy -One of Israel. - -51:6 Flee out of the midst of Babylon, and deliver every man his soul: -be not cut off in her iniquity; for this is the time of the LORD's -vengeance; he will render unto her a recompence. - -51:7 Babylon hath been a golden cup in the LORD's hand, that made all -the earth drunken: the nations have drunken of her wine; therefore the -nations are mad. - -51:8 Babylon is suddenly fallen and destroyed: howl for her; take balm -for her pain, if so be she may be healed. - -51:9 We would have healed Babylon, but she is not healed: forsake her, -and let us go every one into his own country: for her judgment -reacheth unto heaven, and is lifted up even to the skies. - -51:10 The LORD hath brought forth our righteousness: come, and let us -declare in Zion the work of the LORD our God. - -51:11 Make bright the arrows; gather the shields: the LORD hath raised -up the spirit of the kings of the Medes: for his device is against -Babylon, to destroy it; because it is the vengeance of the LORD, the -vengeance of his temple. - -51:12 Set up the standard upon the walls of Babylon, make the watch -strong, set up the watchmen, prepare the ambushes: for the LORD hath -both devised and done that which he spake against the inhabitants of -Babylon. - -51:13 O thou that dwellest upon many waters, abundant in treasures, -thine end is come, and the measure of thy covetousness. - -51:14 The LORD of hosts hath sworn by himself, saying, Surely I will -fill thee with men, as with caterpillers; and they shall lift up a -shout against thee. - -51:15 He hath made the earth by his power, he hath established the -world by his wisdom, and hath stretched out the heaven by his -understanding. - -51:16 When he uttereth his voice, there is a multitude of waters in -the heavens; and he causeth the vapours to ascend from the ends of the -earth: he maketh lightnings with rain, and bringeth forth the wind out -of his treasures. - -51:17 Every man is brutish by his knowledge; every founder is -confounded by the graven image: for his molten image is falsehood, and -there is no breath in them. - -51:18 They are vanity, the work of errors: in the time of their -visitation they shall perish. - -51:19 The portion of Jacob is not like them; for he is the former of -all things: and Israel is the rod of his inheritance: the LORD of -hosts is his name. - -51:20 Thou art my battle axe and weapons of war: for with thee will I -break in pieces the nations, and with thee will I destroy kingdoms; -51:21 And with thee will I break in pieces the horse and his rider; -and with thee will I break in pieces the chariot and his rider; 51:22 -With thee also will I break in pieces man and woman; and with thee -will I break in pieces old and young; and with thee will I break in -pieces the young man and the maid; 51:23 I will also break in pieces -with thee the shepherd and his flock; and with thee will I break in -pieces the husbandman and his yoke of oxen; and with thee will I break -in pieces captains and rulers. - -51:24 And I will render unto Babylon and to all the inhabitants of -Chaldea all their evil that they have done in Zion in your sight, -saith the LORD. - -51:25 Behold, I am against thee, O destroying mountain, saith the -LORD, which destroyest all the earth: and I will stretch out mine hand -upon thee, and roll thee down from the rocks, and will make thee a -burnt mountain. - -51:26 And they shall not take of thee a stone for a corner, nor a -stone for foundations; but thou shalt be desolate for ever, saith the -LORD. - -51:27 Set ye up a standard in the land, blow the trumpet among the -nations, prepare the nations against her, call together against her -the kingdoms of Ararat, Minni, and Ashchenaz; appoint a captain -against her; cause the horses to come up as the rough caterpillers. - -51:28 Prepare against her the nations with the kings of the Medes, the -captains thereof, and all the rulers thereof, and all the land of his -dominion. - -51:29 And the land shall tremble and sorrow: for every purpose of the -LORD shall be performed against Babylon, to make the land of Babylon a -desolation without an inhabitant. - -51:30 The mighty men of Babylon have forborn to fight, they have -remained in their holds: their might hath failed; they became as -women: they have burned her dwellingplaces; her bars are broken. - -51:31 One post shall run to meet another, and one messenger to meet -another, to shew the king of Babylon that his city is taken at one -end, 51:32 And that the passages are stopped, and the reeds they have -burned with fire, and the men of war are affrighted. - -51:33 For thus saith the LORD of hosts, the God of Israel; The -daughter of Babylon is like a threshingfloor, it is time to thresh -her: yet a little while, and the time of her harvest shall come. - -51:34 Nebuchadrezzar the king of Babylon hath devoured me, he hath -crushed me, he hath made me an empty vessel, he hath swallowed me up -like a dragon, he hath filled his belly with my delicates, he hath -cast me out. - -51:35 The violence done to me and to my flesh be upon Babylon, shall -the inhabitant of Zion say; and my blood upon the inhabitants of -Chaldea, shall Jerusalem say. - -51:36 Therefore thus saith the LORD; Behold, I will plead thy cause, -and take vengeance for thee; and I will dry up her sea, and make her -springs dry. - -51:37 And Babylon shall become heaps, a dwellingplace for dragons, an -astonishment, and an hissing, without an inhabitant. - -51:38 They shall roar together like lions: they shall yell as lions' -whelps. - -51:39 In their heat I will make their feasts, and I will make them -drunken, that they may rejoice, and sleep a perpetual sleep, and not -wake, saith the LORD. - -51:40 I will bring them down like lambs to the slaughter, like rams -with he goats. - -51:41 How is Sheshach taken! and how is the praise of the whole earth -surprised! how is Babylon become an astonishment among the nations! -51:42 The sea is come up upon Babylon: she is covered with the -multitude of the waves thereof. - -51:43 Her cities are a desolation, a dry land, and a wilderness, a -land wherein no man dwelleth, neither doth any son of man pass -thereby. - -51:44 And I will punish Bel in Babylon, and I will bring forth out of -his mouth that which he hath swallowed up: and the nations shall not -flow together any more unto him: yea, the wall of Babylon shall fall. - -51:45 My people, go ye out of the midst of her, and deliver ye every -man his soul from the fierce anger of the LORD. - -51:46 And lest your heart faint, and ye fear for the rumour that shall -be heard in the land; a rumour shall both come one year, and after -that in another year shall come a rumour, and violence in the land, -ruler against ruler. - -51:47 Therefore, behold, the days come, that I will do judgment upon -the graven images of Babylon: and her whole land shall be confounded, -and all her slain shall fall in the midst of her. - -51:48 Then the heaven and the earth, and all that is therein, shall -sing for Babylon: for the spoilers shall come unto her from the north, -saith the LORD. - -51:49 As Babylon hath caused the slain of Israel to fall, so at -Babylon shall fall the slain of all the earth. - -51:50 Ye that have escaped the sword, go away, stand not still: -remember the LORD afar off, and let Jerusalem come into your mind. - -51:51 We are confounded, because we have heard reproach: shame hath -covered our faces: for strangers are come into the sanctuaries of the -LORD's house. - -51:52 Wherefore, behold, the days come, saith the LORD, that I will do -judgment upon her graven images: and through all her land the wounded -shall groan. - -51:53 Though Babylon should mount up to heaven, and though she should -fortify the height of her strength, yet from me shall spoilers come -unto her, saith the LORD. - -51:54 A sound of a cry cometh from Babylon, and great destruction from -the land of the Chaldeans: 51:55 Because the LORD hath spoiled -Babylon, and destroyed out of her the great voice; when her waves do -roar like great waters, a noise of their voice is uttered: 51:56 -Because the spoiler is come upon her, even upon Babylon, and her -mighty men are taken, every one of their bows is broken: for the LORD -God of recompences shall surely requite. - -51:57 And I will make drunk her princes, and her wise men, her -captains, and her rulers, and her mighty men: and they shall sleep a -perpetual sleep, and not wake, saith the King, whose name is the LORD -of hosts. - -51:58 Thus saith the LORD of hosts; The broad walls of Babylon shall -be utterly broken, and her high gates shall be burned with fire; and -the people shall labour in vain, and the folk in the fire, and they -shall be weary. - -51:59 The word which Jeremiah the prophet commanded Seraiah the son of -Neriah, the son of Maaseiah, when he went with Zedekiah the king of -Judah into Babylon in the fourth year of his reign. And this Seraiah -was a quiet prince. - -51:60 So Jeremiah wrote in a book all the evil that should come upon -Babylon, even all these words that are written against Babylon. - -51:61 And Jeremiah said to Seraiah, When thou comest to Babylon, and -shalt see, and shalt read all these words; 51:62 Then shalt thou say, -O LORD, thou hast spoken against this place, to cut it off, that none -shall remain in it, neither man nor beast, but that it shall be -desolate for ever. - -51:63 And it shall be, when thou hast made an end of reading this -book, that thou shalt bind a stone to it, and cast it into the midst -of Euphrates: 51:64 And thou shalt say, Thus shall Babylon sink, and -shall not rise from the evil that I will bring upon her: and they -shall be weary. Thus far are the words of Jeremiah. - -52:1 Zedekiah was one and twenty years old when he began to reign, and -he reigned eleven years in Jerusalem. And his mother's name was -Hamutal the daughter of Jeremiah of Libnah. - -52:2 And he did that which was evil in the eyes of the LORD, according -to all that Jehoiakim had done. - -52:3 For through the anger of the LORD it came to pass in Jerusalem -and Judah, till he had cast them out from his presence, that Zedekiah -rebelled against the king of Babylon. - -52:4 And it came to pass in the ninth year of his reign, in the tenth -month, in the tenth day of the month, that Nebuchadrezzar king of -Babylon came, he and all his army, against Jerusalem, and pitched -against it, and built forts against it round about. - -52:5 So the city was besieged unto the eleventh year of king Zedekiah. - -52:6 And in the fourth month, in the ninth day of the month, the -famine was sore in the city, so that there was no bread for the people -of the land. - -52:7 Then the city was broken up, and all the men of war fled, and -went forth out of the city by night by the way of the gate between the -two walls, which was by the king's garden; (now the Chaldeans were by -the city round about:) and they went by the way of the plain. - -52:8 But the army of the Chaldeans pursued after the king, and -overtook Zedekiah in the plains of Jericho; and all his army was -scattered from him. - -52:9 Then they took the king, and carried him up unto the king of -Babylon to Riblah in the land of Hamath; where he gave judgment upon -him. - -52:10 And the king of Babylon slew the sons of Zedekiah before his -eyes: he slew also all the princes of Judah in Riblah. - -52:11 Then he put out the eyes of Zedekiah; and the king of Babylon -bound him in chains, and carried him to Babylon, and put him in prison -till the day of his death. - -52:12 Now in the fifth month, in the tenth day of the month, which was -the nineteenth year of Nebuchadrezzar king of Babylon, came -Nebuzaradan, captain of the guard, which served the king of Babylon, -into Jerusalem, 52:13 And burned the house of the LORD, and the king's -house; and all the houses of Jerusalem, and all the houses of the -great men, burned he with fire: 52:14 And all the army of the -Chaldeans, that were with the captain of the guard, brake down all the -walls of Jerusalem round about. - -52:15 Then Nebuzaradan the captain of the guard carried away captive -certain of the poor of the people, and the residue of the people that -remained in the city, and those that fell away, that fell to the king -of Babylon, and the rest of the multitude. - -52:16 But Nebuzaradan the captain of the guard left certain of the -poor of the land for vinedressers and for husbandmen. - -52:17 Also the pillars of brass that were in the house of the LORD, -and the bases, and the brasen sea that was in the house of the LORD, -the Chaldeans brake, and carried all the brass of them to Babylon. - -52:18 The caldrons also, and the shovels, and the snuffers, and the -bowls, and the spoons, and all the vessels of brass wherewith they -ministered, took they away. - -52:19 And the basons, and the firepans, and the bowls, and the -caldrons, and the candlesticks, and the spoons, and the cups; that -which was of gold in gold, and that which was of silver in silver, -took the captain of the guard away. - -52:20 The two pillars, one sea, and twelve brasen bulls that were -under the bases, which king Solomon had made in the house of the LORD: -the brass of all these vessels was without weight. - -52:21 And concerning the pillars, the height of one pillar was -eighteen cubits; and a fillet of twelve cubits did compass it; and the -thickness thereof was four fingers: it was hollow. - -52:22 And a chapiter of brass was upon it; and the height of one -chapiter was five cubits, with network and pomegranates upon the -chapiters round about, all of brass. The second pillar also and the -pomegranates were like unto these. - -52:23 And there were ninety and six pomegranates on a side; and all -the pomegranates upon the network were an hundred round about. - -52:24 And the captain of the guard took Seraiah the chief priest, and -Zephaniah the second priest, and the three keepers of the door: 52:25 -He took also out of the city an eunuch, which had the charge of the -men of war; and seven men of them that were near the king's person, -which were found in the city; and the principal scribe of the host, -who mustered the people of the land; and threescore men of the people -of the land, that were found in the midst of the city. - -52:26 So Nebuzaradan the captain of the guard took them, and brought -them to the king of Babylon to Riblah. - -52:27 And the king of Babylon smote them, and put them to death in -Riblah in the land of Hamath. Thus Judah was carried away captive out -of his own land. - -52:28 This is the people whom Nebuchadrezzar carried away captive: in -the seventh year three thousand Jews and three and twenty: 52:29 In -the eighteenth year of Nebuchadrezzar he carried away captive from -Jerusalem eight hundred thirty and two persons: 52:30 In the three and -twentieth year of Nebuchadrezzar Nebuzaradan the captain of the guard -carried away captive of the Jews seven hundred forty and five persons: -all the persons were four thousand and six hundred. - -52:31 And it came to pass in the seven and thirtieth year of the -captivity of Jehoiachin king of Judah, in the twelfth month, in the -five and twentieth day of the month, that Evilmerodach king of Babylon -in the first year of his reign lifted up the head of Jehoiachin king -of Judah, and brought him forth out of prison. - -52:32 And spake kindly unto him, and set his throne above the throne -of the kings that were with him in Babylon, 52:33 And changed his -prison garments: and he did continually eat bread before him all the -days of his life. - -52:34 And for his diet, there was a continual diet given him of the -king of Babylon, every day a portion until the day of his death, all -the days of his life. - - - - -The Lamentations of Jeremiah - - -1:1 How doth the city sit solitary, that was full of people! how is -she become as a widow! she that was great among the nations, and -princess among the provinces, how is she become tributary! 1:2 She -weepeth sore in the night, and her tears are on her cheeks: among all -her lovers she hath none to comfort her: all her friends have dealt -treacherously with her, they are become her enemies. - -1:3 Judah is gone into captivity because of affliction, and because of -great servitude: she dwelleth among the heathen, she findeth no rest: -all her persecutors overtook her between the straits. - -1:4 The ways of Zion do mourn, because none come to the solemn feasts: -all her gates are desolate: her priests sigh, her virgins are -afflicted, and she is in bitterness. - -1:5 Her adversaries are the chief, her enemies prosper; for the LORD -hath afflicted her for the multitude of her transgressions: her -children are gone into captivity before the enemy. - -1:6 And from the daughter of Zion all her beauty is departed: her -princes are become like harts that find no pasture, and they are gone -without strength before the pursuer. - -1:7 Jerusalem remembered in the days of her affliction and of her -miseries all her pleasant things that she had in the days of old, when -her people fell into the hand of the enemy, and none did help her: the -adversaries saw her, and did mock at her sabbaths. - -1:8 Jerusalem hath grievously sinned; therefore she is removed: all -that honoured her despise her, because they have seen her nakedness: -yea, she sigheth, and turneth backward. - -1:9 Her filthiness is in her skirts; she remembereth not her last end; -therefore she came down wonderfully: she had no comforter. O LORD, -behold my affliction: for the enemy hath magnified himself. - -1:10 The adversary hath spread out his hand upon all her pleasant -things: for she hath seen that the heathen entered into her sanctuary, -whom thou didst command that they should not enter into thy -congregation. - -1:11 All her people sigh, they seek bread; they have given their -pleasant things for meat to relieve the soul: see, O LORD, and -consider; for I am become vile. - -1:12 Is it nothing to you, all ye that pass by? behold, and see if -there be any sorrow like unto my sorrow, which is done unto me, -wherewith the LORD hath afflicted me in the day of his fierce anger. - -1:13 From above hath he sent fire into my bones, and it prevaileth -against them: he hath spread a net for my feet, he hath turned me -back: he hath made me desolate and faint all the day. - -1:14 The yoke of my transgressions is bound by his hand: they are -wreathed, and come up upon my neck: he hath made my strength to fall, -the LORD hath delivered me into their hands, from whom I am not able -to rise up. - -1:15 The LORD hath trodden under foot all my mighty men in the midst -of me: he hath called an assembly against me to crush my young men: -the LORD hath trodden the virgin, the daughter of Judah, as in a -winepress. - -1:16 For these things I weep; mine eye, mine eye runneth down with -water, because the comforter that should relieve my soul is far from -me: my children are desolate, because the enemy prevailed. - -1:17 Zion spreadeth forth her hands, and there is none to comfort her: -the LORD hath commanded concerning Jacob, that his adversaries should -be round about him: Jerusalem is as a menstruous woman among them. - -1:18 The LORD is righteous; for I have rebelled against his -commandment: hear, I pray you, all people, and behold my sorrow: my -virgins and my young men are gone into captivity. - -1:19 I called for my lovers, but they deceived me: my priests and mine -elders gave up the ghost in the city, while they sought their meat to -relieve their souls. - -1:20 Behold, O LORD; for I am in distress: my bowels are troubled; -mine heart is turned within me; for I have grievously rebelled: abroad -the sword bereaveth, at home there is as death. - -1:21 They have heard that I sigh: there is none to comfort me: all -mine enemies have heard of my trouble; they are glad that thou hast -done it: thou wilt bring the day that thou hast called, and they shall -be like unto me. - -1:22 Let all their wickedness come before thee; and do unto them, as -thou hast done unto me for all my transgressions: for my sighs are -many, and my heart is faint. - -2:1 How hath the LORD covered the daughter of Zion with a cloud in his -anger, and cast down from heaven unto the earth the beauty of Israel, -and remembered not his footstool in the day of his anger! 2:2 The -LORD hath swallowed up all the habitations of Jacob, and hath not -pitied: he hath thrown down in his wrath the strong holds of the -daughter of Judah; he hath brought them down to the ground: he hath -polluted the kingdom and the princes thereof. - -2:3 He hath cut off in his fierce anger all the horn of Israel: he -hath drawn back his right hand from before the enemy, and he burned -against Jacob like a flaming fire, which devoureth round about. - -2:4 He hath bent his bow like an enemy: he stood with his right hand -as an adversary, and slew all that were pleasant to the eye in the -tabernacle of the daughter of Zion: he poured out his fury like fire. - -2:5 The LORD was as an enemy: he hath swallowed up Israel, he hath -swallowed up all her palaces: he hath destroyed his strong holds, and -hath increased in the daughter of Judah mourning and lamentation. - -2:6 And he hath violently taken away his tabernacle, as if it were of -a garden: he hath destroyed his places of the assembly: the LORD hath -caused the solemn feasts and sabbaths to be forgotten in Zion, and -hath despised in the indignation of his anger the king and the priest. - -2:7 The LORD hath cast off his altar, he hath abhorred his sanctuary, -he hath given up into the hand of the enemy the walls of her palaces; -they have made a noise in the house of the LORD, as in the day of a -solemn feast. - -2:8 The LORD hath purposed to destroy the wall of the daughter of -Zion: he hath stretched out a line, he hath not withdrawn his hand -from destroying: therefore he made the rampart and the wall to lament; -they languished together. - -2:9 Her gates are sunk into the ground; he hath destroyed and broken -her bars: her king and her princes are among the Gentiles: the law is -no more; her prophets also find no vision from the LORD. - -2:10 The elders of the daughter of Zion sit upon the ground, and keep -silence: they have cast up dust upon their heads; they have girded -themselves with sackcloth: the virgins of Jerusalem hang down their -heads to the ground. - -2:11 Mine eyes do fail with tears, my bowels are troubled, my liver is -poured upon the earth, for the destruction of the daughter of my -people; because the children and the sucklings swoon in the streets of -the city. - -2:12 They say to their mothers, Where is corn and wine? when they -swooned as the wounded in the streets of the city, when their soul was -poured out into their mothers' bosom. - -2:13 What thing shall I take to witness for thee? what thing shall I -liken to thee, O daughter of Jerusalem? what shall I equal to thee, -that I may comfort thee, O virgin daughter of Zion? for thy breach is -great like the sea: who can heal thee? 2:14 Thy prophets have seen -vain and foolish things for thee: and they have not discovered thine -iniquity, to turn away thy captivity; but have seen for thee false -burdens and causes of banishment. - -2:15 All that pass by clap their hands at thee; they hiss and wag -their head at the daughter of Jerusalem, saying, Is this the city that -men call The perfection of beauty, The joy of the whole earth? 2:16 -All thine enemies have opened their mouth against thee: they hiss and -gnash the teeth: they say, We have swallowed her up: certainly this is -the day that we looked for; we have found, we have seen it. - -2:17 The LORD hath done that which he had devised; he hath fulfilled -his word that he had commanded in the days of old: he hath thrown -down, and hath not pitied: and he hath caused thine enemy to rejoice -over thee, he hath set up the horn of thine adversaries. - -2:18 Their heart cried unto the LORD, O wall of the daughter of Zion, -let tears run down like a river day and night: give thyself no rest; -let not the apple of thine eye cease. - -2:19 Arise, cry out in the night: in the beginning of the watches pour -out thine heart like water before the face of the LORD: lift up thy -hands toward him for the life of thy young children, that faint for -hunger in the top of every street. - -2:20 Behold, O LORD, and consider to whom thou hast done this. Shall -the women eat their fruit, and children of a span long? shall the -priest and the prophet be slain in the sanctuary of the Lord? 2:21 -The young and the old lie on the ground in the streets: my virgins and -my young men are fallen by the sword; thou hast slain them in the day -of thine anger; thou hast killed, and not pitied. - -2:22 Thou hast called as in a solemn day my terrors round about, so -that in the day of the LORD's anger none escaped nor remained: those -that I have swaddled and brought up hath mine enemy consumed. - -3:1 I AM the man that hath seen affliction by the rod of his wrath. - -3:2 He hath led me, and brought me into darkness, but not into light. - -3:3 Surely against me is he turned; he turneth his hand against me all -the day. - -3:4 My flesh and my skin hath he made old; he hath broken my bones. - -3:5 He hath builded against me, and compassed me with gall and -travail. - -3:6 He hath set me in dark places, as they that be dead of old. - -3:7 He hath hedged me about, that I cannot get out: he hath made my -chain heavy. - -3:8 Also when I cry and shout, he shutteth out my prayer. - -3:9 He hath inclosed my ways with hewn stone, he hath made my paths -crooked. - -3:10 He was unto me as a bear lying in wait, and as a lion in secret -places. - -3:11 He hath turned aside my ways, and pulled me in pieces: he hath -made me desolate. - -3:12 He hath bent his bow, and set me as a mark for the arrow. - -3:13 He hath caused the arrows of his quiver to enter into my reins. - -3:14 I was a derision to all my people; and their song all the day. - -3:15 He hath filled me with bitterness, he hath made me drunken with -wormwood. - -3:16 He hath also broken my teeth with gravel stones, he hath covered -me with ashes. - -3:17 And thou hast removed my soul far off from peace: I forgat -prosperity. - -3:18 And I said, My strength and my hope is perished from the LORD: -3:19 Remembering mine affliction and my misery, the wormwood and the -gall. - -3:20 My soul hath them still in remembrance, and is humbled in me. - -3:21 This I recall to my mind, therefore have I hope. - -3:22 It is of the LORD's mercies that we are not consumed, because his -compassions fail not. - -3:23 They are new every morning: great is thy faithfulness. - -3:24 The LORD is my portion, saith my soul; therefore will I hope in -him. - -3:25 The LORD is good unto them that wait for him, to the soul that -seeketh him. - -3:26 It is good that a man should both hope and quietly wait for the -salvation of the LORD. - -3:27 It is good for a man that he bear the yoke of his youth. - -3:28 He sitteth alone and keepeth silence, because he hath borne it -upon him. - -3:29 He putteth his mouth in the dust; if so be there may be hope. - -3:30 He giveth his cheek to him that smiteth him: he is filled full -with reproach. - -3:31 For the LORD will not cast off for ever: 3:32 But though he cause -grief, yet will he have compassion according to the multitude of his -mercies. - -3:33 For he doth not afflict willingly nor grieve the children of men. - -3:34 To crush under his feet all the prisoners of the earth. - -3:35 To turn aside the right of a man before the face of the most -High, 3:36 To subvert a man in his cause, the LORD approveth not. - -3:37 Who is he that saith, and it cometh to pass, when the Lord -commandeth it not? 3:38 Out of the mouth of the most High proceedeth -not evil and good? 3:39 Wherefore doth a living man complain, a man -for the punishment of his sins? 3:40 Let us search and try our ways, -and turn again to the LORD. - -3:41 Let us lift up our heart with our hands unto God in the heavens. - -3:42 We have transgressed and have rebelled: thou hast not pardoned. - -3:43 Thou hast covered with anger, and persecuted us: thou hast slain, -thou hast not pitied. - -3:44 Thou hast covered thyself with a cloud, that our prayer should -not pass through. - -3:45 Thou hast made us as the offscouring and refuse in the midst of -the people. - -3:46 All our enemies have opened their mouths against us. - -3:47 Fear and a snare is come upon us, desolation and destruction. - -3:48 Mine eye runneth down with rivers of water for the destruction of -the daughter of my people. - -3:49 Mine eye trickleth down, and ceaseth not, without any -intermission. - -3:50 Till the LORD look down, and behold from heaven. - -3:51 Mine eye affecteth mine heart because of all the daughters of my -city. - -3:52 Mine enemies chased me sore, like a bird, without cause. - -3:53 They have cut off my life in the dungeon, and cast a stone upon -me. - -3:54 Waters flowed over mine head; then I said, I am cut off. - -3:55 I called upon thy name, O LORD, out of the low dungeon. - -3:56 Thou hast heard my voice: hide not thine ear at my breathing, at -my cry. - -3:57 Thou drewest near in the day that I called upon thee: thou -saidst, Fear not. - -3:58 O LORD, thou hast pleaded the causes of my soul; thou hast -redeemed my life. - -3:59 O LORD, thou hast seen my wrong: judge thou my cause. - -3:60 Thou hast seen all their vengeance and all their imaginations -against me. - -3:61 Thou hast heard their reproach, O LORD, and all their -imaginations against me; 3:62 The lips of those that rose up against -me, and their device against me all the day. - -3:63 Behold their sitting down, and their rising up; I am their -musick. - -3:64 Render unto them a recompence, O LORD, according to the work of -their hands. - -3:65 Give them sorrow of heart, thy curse unto them. - -3:66 Persecute and destroy them in anger from under the heavens of the -LORD. - -4:1 How is the gold become dim! how is the most fine gold changed! the -stones of the sanctuary are poured out in the top of every street. - -4:2 The precious sons of Zion, comparable to fine gold, how are they -esteemed as earthen pitchers, the work of the hands of the potter! -4:3 Even the sea monsters draw out the breast, they give suck to their -young ones: the daughter of my people is become cruel, like the -ostriches in the wilderness. - -4:4 The tongue of the sucking child cleaveth to the roof of his mouth -for thirst: the young children ask bread, and no man breaketh it unto -them. - -4:5 They that did feed delicately are desolate in the streets: they -that were brought up in scarlet embrace dunghills. - -4:6 For the punishment of the iniquity of the daughter of my people is -greater than the punishment of the sin of Sodom, that was overthrown -as in a moment, and no hands stayed on her. - -4:7 Her Nazarites were purer than snow, they were whiter than milk, -they were more ruddy in body than rubies, their polishing was of -sapphire: 4:8 Their visage is blacker than a coal; they are not known -in the streets: their skin cleaveth to their bones; it is withered, it -is become like a stick. - -4:9 They that be slain with the sword are better than they that be -slain with hunger: for these pine away, stricken through for want of -the fruits of the field. - -4:10 The hands of the pitiful women have sodden their own children: -they were their meat in the destruction of the daughter of my people. - -4:11 The LORD hath accomplished his fury; he hath poured out his -fierce anger, and hath kindled a fire in Zion, and it hath devoured -the foundations thereof. - -4:12 The kings of the earth, and all the inhabitants of the world, -would not have believed that the adversary and the enemy should have -entered into the gates of Jerusalem. - -4:13 For the sins of her prophets, and the iniquities of her priests, -that have shed the blood of the just in the midst of her, 4:14 They -have wandered as blind men in the streets, they have polluted -themselves with blood, so that men could not touch their garments. - -4:15 They cried unto them, Depart ye; it is unclean; depart, depart, -touch not: when they fled away and wandered, they said among the -heathen, They shall no more sojourn there. - -4:16 The anger of the LORD hath divided them; he will no more regard -them: they respected not the persons of the priests, they favoured not -the elders. - -4:17 As for us, our eyes as yet failed for our vain help: in our -watching we have watched for a nation that could not save us. - -4:18 They hunt our steps, that we cannot go in our streets: our end is -near, our days are fulfilled; for our end is come. - -4:19 Our persecutors are swifter than the eagles of the heaven: they -pursued us upon the mountains, they laid wait for us in the -wilderness. - -4:20 The breath of our nostrils, the anointed of the LORD, was taken -in their pits, of whom we said, Under his shadow we shall live among -the heathen. - -4:21 Rejoice and be glad, O daughter of Edom, that dwellest in the -land of Uz; the cup also shall pass through unto thee: thou shalt be -drunken, and shalt make thyself naked. - -4:22 The punishment of thine iniquity is accomplished, O daughter of -Zion; he will no more carry thee away into captivity: he will visit -thine iniquity, O daughter of Edom; he will discover thy sins. - -5:1 Remember, O LORD, what is come upon us: consider, and behold our -reproach. - -5:2 Our inheritance is turned to strangers, our houses to aliens. - -5:3 We are orphans and fatherless, our mothers are as widows. - -5:4 We have drunken our water for money; our wood is sold unto us. - -5:5 Our necks are under persecution: we labour, and have no rest. - -5:6 We have given the hand to the Egyptians, and to the Assyrians, to -be satisfied with bread. - -5:7 Our fathers have sinned, and are not; and we have borne their -iniquities. - -5:8 Servants have ruled over us: there is none that doth deliver us -out of their hand. - -5:9 We gat our bread with the peril of our lives because of the sword -of the wilderness. - -5:10 Our skin was black like an oven because of the terrible famine. - -5:11 They ravished the women in Zion, and the maids in the cities of -Judah. - -5:12 Princes are hanged up by their hand: the faces of elders were not -honoured. - -5:13 They took the young men to grind, and the children fell under the -wood. - -5:14 The elders have ceased from the gate, the young men from their -musick. - -5:15 The joy of our heart is ceased; our dance is turned into -mourning. - -5:16 The crown is fallen from our head: woe unto us, that we have -sinned! 5:17 For this our heart is faint; for these things our eyes -are dim. - -5:18 Because of the mountain of Zion, which is desolate, the foxes -walk upon it. - -5:19 Thou, O LORD, remainest for ever; thy throne from generation to -generation. - -5:20 Wherefore dost thou forget us for ever, and forsake us so long -time? 5:21 Turn thou us unto thee, O LORD, and we shall be turned; -renew our days as of old. - -5:22 But thou hast utterly rejected us; thou art very wroth against us. - - - - -The Book of the Prophet Ezekiel - - -1:1 Now it came to pass in the thirtieth year, in the fourth month, -in the fifth day of the month, as I was among the captives by the river -of Chebar, that the heavens were opened, and I saw visions of God. - -1:2 In the fifth day of the month, which was the fifth year of king -Jehoiachin's captivity, 1:3 The word of the LORD came expressly unto -Ezekiel the priest, the son of Buzi, in the land of the Chaldeans by -the river Chebar; and the hand of the LORD was there upon him. - -1:4 And I looked, and, behold, a whirlwind came out of the north, a -great cloud, and a fire infolding itself, and a brightness was about -it, and out of the midst thereof as the colour of amber, out of the -midst of the fire. - -1:5 Also out of the midst thereof came the likeness of four living -creatures. And this was their appearance; they had the likeness of a -man. - -1:6 And every one had four faces, and every one had four wings. - -1:7 And their feet were straight feet; and the sole of their feet was -like the sole of a calf's foot: and they sparkled like the colour of -burnished brass. - -1:8 And they had the hands of a man under their wings on their four -sides; and they four had their faces and their wings. - -1:9 Their wings were joined one to another; they turned not when they -went; they went every one straight forward. - -1:10 As for the likeness of their faces, they four had the face of a -man, and the face of a lion, on the right side: and they four had the -face of an ox on the left side; they four also had the face of an -eagle. - -1:11 Thus were their faces: and their wings were stretched upward; two -wings of every one were joined one to another, and two covered their -bodies. - -1:12 And they went every one straight forward: whither the spirit was -to go, they went; and they turned not when they went. - -1:13 As for the likeness of the living creatures, their appearance was -like burning coals of fire, and like the appearance of lamps: it went -up and down among the living creatures; and the fire was bright, and -out of the fire went forth lightning. - -1:14 And the living creatures ran and returned as the appearance of a -flash of lightning. - -1:15 Now as I beheld the living creatures, behold one wheel upon the -earth by the living creatures, with his four faces. - -1:16 The appearance of the wheels and their work was like unto the -colour of a beryl: and they four had one likeness: and their -appearance and their work was as it were a wheel in the middle of a -wheel. - -1:17 When they went, they went upon their four sides: and they turned -not when they went. - -1:18 As for their rings, they were so high that they were dreadful; -and their rings were full of eyes round about them four. - -1:19 And when the living creatures went, the wheels went by them: and -when the living creatures were lifted up from the earth, the wheels -were lifted up. - -1:20 Whithersoever the spirit was to go, they went, thither was their -spirit to go; and the wheels were lifted up over against them: for the -spirit of the living creature was in the wheels. - -1:21 When those went, these went; and when those stood, these stood; -and when those were lifted up from the earth, the wheels were lifted -up over against them: for the spirit of the living creature was in the -wheels. - -1:22 And the likeness of the firmament upon the heads of the living -creature was as the colour of the terrible crystal, stretched forth -over their heads above. - -1:23 And under the firmament were their wings straight, the one toward -the other: every one had two, which covered on this side, and every -one had two, which covered on that side, their bodies. - -1:24 And when they went, I heard the noise of their wings, like the -noise of great waters, as the voice of the Almighty, the voice of -speech, as the noise of an host: when they stood, they let down their -wings. - -1:25 And there was a voice from the firmament that was over their -heads, when they stood, and had let down their wings. - -1:26 And above the firmament that was over their heads was the -likeness of a throne, as the appearance of a sapphire stone: and upon -the likeness of the throne was the likeness as the appearance of a man -above upon it. - -1:27 And I saw as the colour of amber, as the appearance of fire round -about within it, from the appearance of his loins even upward, and -from the appearance of his loins even downward, I saw as it were the -appearance of fire, and it had brightness round about. - -1:28 As the appearance of the bow that is in the cloud in the day of -rain, so was the appearance of the brightness round about. This was -the appearance of the likeness of the glory of the LORD. And when I -saw it, I fell upon my face, and I heard a voice of one that spake. - -2:1 And he said unto me, Son of man, stand upon thy feet, and I will -speak unto thee. - -2:2 And the spirit entered into me when he spake unto me, and set me -upon my feet, that I heard him that spake unto me. - -2:3 And he said unto me, Son of man, I send thee to the children of -Israel, to a rebellious nation that hath rebelled against me: they and -their fathers have transgressed against me, even unto this very day. - -2:4 For they are impudent children and stiffhearted. I do send thee -unto them; and thou shalt say unto them, Thus saith the Lord GOD. - -2:5 And they, whether they will hear, or whether they will forbear, -(for they are a rebellious house,) yet shall know that there hath been -a prophet among them. - -2:6 And thou, son of man, be not afraid of them, neither be afraid of -their words, though briers and thorns be with thee, and thou dost -dwell among scorpions: be not afraid of their words, nor be dismayed -at their looks, though they be a rebellious house. - -2:7 And thou shalt speak my words unto them, whether they will hear, -or whether they will forbear: for they are most rebellious. - -2:8 But thou, son of man, hear what I say unto thee; Be not thou -rebellious like that rebellious house: open thy mouth, and eat that I -give thee. - -2:9 And when I looked, behold, an hand was sent unto me; and, lo, a -roll of a book was therein; 2:10 And he spread it before me; and it -was written within and without: and there was written therein -lamentations, and mourning, and woe. - -3:1 Moreover he said unto me, Son of man, eat that thou findest; eat -this roll, and go speak unto the house of Israel. - -3:2 So I opened my mouth, and he caused me to eat that roll. - -3:3 And he said unto me, Son of man, cause thy belly to eat, and fill -thy bowels with this roll that I give thee. Then did I eat it; and it -was in my mouth as honey for sweetness. - -3:4 And he said unto me, Son of man, go, get thee unto the house of -Israel, and speak with my words unto them. - -3:5 For thou art not sent to a people of a strange speech and of an -hard language, but to the house of Israel; 3:6 Not to many people of a -strange speech and of an hard language, whose words thou canst not -understand. Surely, had I sent thee to them, they would have hearkened -unto thee. - -3:7 But the house of Israel will not hearken unto thee; for they will -not hearken unto me: for all the house of Israel are impudent and -hardhearted. - -3:8 Behold, I have made thy face strong against their faces, and thy -forehead strong against their foreheads. - -3:9 As an adamant harder than flint have I made thy forehead: fear -them not, neither be dismayed at their looks, though they be a -rebellious house. - -3:10 Moreover he said unto me, Son of man, all my words that I shall -speak unto thee receive in thine heart, and hear with thine ears. - -3:11 And go, get thee to them of the captivity, unto the children of -thy people, and speak unto them, and tell them, Thus saith the Lord -GOD; whether they will hear, or whether they will forbear. - -3:12 Then the spirit took me up, and I heard behind me a voice of a -great rushing, saying, Blessed be the glory of the LORD from his -place. - -3:13 I heard also the noise of the wings of the living creatures that -touched one another, and the noise of the wheels over against them, -and a noise of a great rushing. - -3:14 So the spirit lifted me up, and took me away, and I went in -bitterness, in the heat of my spirit; but the hand of the LORD was -strong upon me. - -3:15 Then I came to them of the captivity at Telabib, that dwelt by -the river of Chebar, and I sat where they sat, and remained there -astonished among them seven days. - -3:16 And it came to pass at the end of seven days, that the word of -the LORD came unto me, saying, 3:17 Son of man, I have made thee a -watchman unto the house of Israel: therefore hear the word at my -mouth, and give them warning from me. - -3:18 When I say unto the wicked, Thou shalt surely die; and thou -givest him not warning, nor speakest to warn the wicked from his -wicked way, to save his life; the same wicked man shall die in his -iniquity; but his blood will I require at thine hand. - -3:19 Yet if thou warn the wicked, and he turn not from his wickedness, -nor from his wicked way, he shall die in his iniquity; but thou hast -delivered thy soul. - -3:20 Again, When a righteous man doth turn from his righteousness, and -commit iniquity, and I lay a stumbling-block before him, he shall die: -because thou hast not given him warning, he shall die in his sin, and -his righteousness which he hath done shall not be remembered; but his -blood will I require at thine hand. - -3:21 Nevertheless if thou warn the righteous man, that the righteous -sin not, and he doth not sin, he shall surely live, because he is -warned; also thou hast delivered thy soul. - -3:22 And the hand of the LORD was there upon me; and he said unto me, -Arise, go forth into the plain, and I will there talk with thee. - -3:23 Then I arose, and went forth into the plain: and, behold, the -glory of the LORD stood there, as the glory which I saw by the river -of Chebar: and I fell on my face. - -3:24 Then the spirit entered into me, and set me upon my feet, and -spake with me, and said unto me, Go, shut thyself within thine house. - -3:25 But thou, O son of man, behold, they shall put bands upon thee, -and shall bind thee with them, and thou shalt not go out among them: -3:26 And I will make thy tongue cleave to the roof of thy mouth, that -thou shalt be dumb, and shalt not be to them a reprover: for they are -a rebellious house. - -3:27 But when I speak with thee, I will open thy mouth, and thou shalt -say unto them, Thus saith the Lord GOD; He that heareth, let him hear; -and he that forbeareth, let him forbear: for they are a rebellious -house. - -4:1 Thou also, son of man, take thee a tile, and lay it before thee, -and pourtray upon it the city, even Jerusalem: 4:2 And lay siege -against it, and build a fort against it, and cast a mount against it; -set the camp also against it, and set battering rams against it round -about. - -4:3 Moreover take thou unto thee an iron pan, and set it for a wall of -iron between thee and the city: and set thy face against it, and it -shall be besieged, and thou shalt lay siege against it. This shall be -a sign to the house of Israel. - -4:4 Lie thou also upon thy left side, and lay the iniquity of the -house of Israel upon it: according to the number of the days that thou -shalt lie upon it thou shalt bear their iniquity. - -4:5 For I have laid upon thee the years of their iniquity, according -to the number of the days, three hundred and ninety days: so shalt -thou bear the iniquity of the house of Israel. - -4:6 And when thou hast accomplished them, lie again on thy right side, -and thou shalt bear the iniquity of the house of Judah forty days: I -have appointed thee each day for a year. - -4:7 Therefore thou shalt set thy face toward the siege of Jerusalem, -and thine arm shall be uncovered, and thou shalt prophesy against it. - -4:8 And, behold, I will lay bands upon thee, and thou shalt not turn -thee from one side to another, till thou hast ended the days of thy -siege. - -4:9 Take thou also unto thee wheat, and barley, and beans, and -lentiles, and millet, and fitches, and put them in one vessel, and -make thee bread thereof, according to the number of the days that thou -shalt lie upon thy side, three hundred and ninety days shalt thou eat -thereof. - -4:10 And thy meat which thou shalt eat shall be by weight, twenty -shekels a day: from time to time shalt thou eat it. - -4:11 Thou shalt drink also water by measure, the sixth part of an hin: -from time to time shalt thou drink. - -4:12 And thou shalt eat it as barley cakes, and thou shalt bake it -with dung that cometh out of man, in their sight. - -4:13 And the LORD said, Even thus shall the children of Israel eat -their defiled bread among the Gentiles, whither I will drive them. - -4:14 Then said I, Ah Lord GOD! behold, my soul hath not been polluted: -for from my youth up even till now have I not eaten of that which -dieth of itself, or is torn in pieces; neither came there abominable -flesh into my mouth. - -4:15 Then he said unto me, Lo, I have given thee cow's dung for man's -dung, and thou shalt prepare thy bread therewith. - -4:16 Moreover he said unto me, Son of man, behold, I will break the -staff of bread in Jerusalem: and they shall eat bread by weight, and -with care; and they shall drink water by measure, and with -astonishment: 4:17 That they may want bread and water, and be astonied -one with another, and consume away for their iniquity. - -5:1 And thou, son of man, take thee a sharp knife, take thee a -barber's razor, and cause it to pass upon thine head and upon thy -beard: then take thee balances to weigh, and divide the hair. - -5:2 Thou shalt burn with fire a third part in the midst of the city, -when the days of the siege are fulfilled: and thou shalt take a third -part, and smite about it with a knife: and a third part thou shalt -scatter in the wind; and I will draw out a sword after them. - -5:3 Thou shalt also take thereof a few in number, and bind them in thy -skirts. - -5:4 Then take of them again, and cast them into the midst of the fire, -and burn them in the fire; for thereof shall a fire come forth into -all the house of Israel. - -5:5 Thus saith the Lord GOD; This is Jerusalem: I have set it in the -midst of the nations and countries that are round about her. - -5:6 And she hath changed my judgments into wickedness more than the -nations, and my statutes more than the countries that are round about -her: for they have refused my judgments and my statutes, they have not -walked in them. - -5:7 Therefore thus saith the Lord GOD; Because ye multiplied more than -the nations that are round about you, and have not walked in my -statutes, neither have kept my judgments, neither have done according -to the judgments of the nations that are round about you; 5:8 -Therefore thus saith the Lord GOD; Behold, I, even I, am against thee, -and will execute judgments in the midst of thee in the sight of the -nations. - -5:9 And I will do in thee that which I have not done, and whereunto I -will not do any more the like, because of all thine abominations. - -5:10 Therefore the fathers shall eat the sons in the midst of thee, -and the sons shall eat their fathers; and I will execute judgments in -thee, and the whole remnant of thee will I scatter into all the winds. - -5:11 Wherefore, as I live, saith the Lord GOD; Surely, because thou -hast defiled my sanctuary with all thy detestable things, and with all -thine abominations, therefore will I also diminish thee; neither shall -mine eye spare, neither will I have any pity. - -5:12 A third part of thee shall die with the pestilence, and with -famine shall they be consumed in the midst of thee: and a third part -shall fall by the sword round about thee; and I will scatter a third -part into all the winds, and I will draw out a sword after them. - -5:13 Thus shall mine anger be accomplished, and I will cause my fury -to rest upon them, and I will be comforted: and they shall know that I -the LORD have spoken it in my zeal, when I have accomplished my fury -in them. - -5:14 Moreover I will make thee waste, and a reproach among the nations -that are round about thee, in the sight of all that pass by. - -5:15 So it shall be a reproach and a taunt, an instruction and an -astonishment unto the nations that are round about thee, when I shall -execute judgments in thee in anger and in fury and in furious rebukes. -I the LORD have spoken it. - -5:16 When I shall send upon them the evil arrows of famine, which -shall be for their destruction, and which I will send to destroy you: -and I will increase the famine upon you, and will break your staff of -bread: 5:17 So will I send upon you famine and evil beasts, and they -shall bereave thee: and pestilence and blood shall pass through thee; -and I will bring the sword upon thee. I the LORD have spoken it. - -6:1 And the word of the LORD came unto me, saying, 6:2 Son of man, set -thy face toward the mountains of Israel, and prophesy against them, -6:3 And say, Ye mountains of Israel, hear the word of the Lord GOD; -Thus saith the Lord GOD to the mountains, and to the hills, to the -rivers, and to the valleys; Behold, I, even I, will bring a sword upon -you, and I will destroy your high places. - -6:4 And your altars shall be desolate, and your images shall be -broken: and I will cast down your slain men before your idols. - -6:5 And I will lay the dead carcases of the children of Israel before -their idols; and I will scatter your bones round about your altars. - -6:6 In all your dwellingplaces the cities shall be laid waste, and the -high places shall be desolate; that your altars may be laid waste and -made desolate, and your idols may be broken and cease, and your images -may be cut down, and your works may be abolished. - -6:7 And the slain shall fall in the midst of you, and ye shall know -that I am the LORD. - -6:8 Yet will I leave a remnant, that ye may have some that shall -escape the sword among the nations, when ye shall be scattered through -the countries. - -6:9 And they that escape of you shall remember me among the nations -whither they shall be carried captives, because I am broken with their -whorish heart, which hath departed from me, and with their eyes, which -go a whoring after their idols: and they shall lothe themselves for -the evils which they have committed in all their abominations. - -6:10 And they shall know that I am the LORD, and that I have not said -in vain that I would do this evil unto them. - -6:11 Thus saith the Lord GOD; Smite with thine hand, and stamp with -thy foot, and say, Alas for all the evil abominations of the house of -Israel! for they shall fall by the sword, by the famine, and by the -pestilence. - -6:12 He that is far off shall die of the pestilence; and he that is -near shall fall by the sword; and he that remaineth and is besieged -shall die by the famine: thus will I accomplish my fury upon them. - -6:13 Then shall ye know that I am the LORD, when their slain men shall -be among their idols round about their altars, upon every high hill, -in all the tops of the mountains, and under every green tree, and -under every thick oak, the place where they did offer sweet savour to -all their idols. - -6:14 So will I stretch out my hand upon them, and make the land -desolate, yea, more desolate than the wilderness toward Diblath, in -all their habitations: and they shall know that I am the LORD. - -7:1 Moreover the word of the LORD came unto me, saying, 7:2 Also, thou -son of man, thus saith the Lord GOD unto the land of Israel; An end, -the end is come upon the four corners of the land. - -7:3 Now is the end come upon thee, and I will send mine anger upon -thee, and will judge thee according to thy ways, and will recompense -upon thee all thine abominations. - -7:4 And mine eye shall not spare thee, neither will I have pity: but I -will recompense thy ways upon thee, and thine abominations shall be in -the midst of thee: and ye shall know that I am the LORD. - -7:5 Thus saith the Lord GOD; An evil, an only evil, behold, is come. - -7:6 An end is come, the end is come: it watcheth for thee; behold, it -is come. - -7:7 The morning is come unto thee, O thou that dwellest in the land: -the time is come, the day of trouble is near, and not the sounding -again of the mountains. - -7:8 Now will I shortly pour out my fury upon thee, and accomplish mine -anger upon thee: and I will judge thee according to thy ways, and will -recompense thee for all thine abominations. - -7:9 And mine eye shall not spare, neither will I have pity: I will -recompense thee according to thy ways and thine abominations that are -in the midst of thee; and ye shall know that I am the LORD that -smiteth. - -7:10 Behold the day, behold, it is come: the morning is gone forth; -the rod hath blossomed, pride hath budded. - -7:11 Violence is risen up into a rod of wickedness: none of them shall -remain, nor of their multitude, nor of any of their's: neither shall -there be wailing for them. - -7:12 The time is come, the day draweth near: let not the buyer -rejoice, nor the seller mourn: for wrath is upon all the multitude -thereof. - -7:13 For the seller shall not return to that which is sold, although -they were yet alive: for the vision is touching the whole multitude -thereof, which shall not return; neither shall any strengthen himself -in the iniquity of his life. - -7:14 They have blown the trumpet, even to make all ready; but none -goeth to the battle: for my wrath is upon all the multitude thereof. - -7:15 The sword is without, and the pestilence and the famine within: -he that is in the field shall die with the sword; and he that is in -the city, famine and pestilence shall devour him. - -7:16 But they that escape of them shall escape, and shall be on the -mountains like doves of the valleys, all of them mourning, every one -for his iniquity. - -7:17 All hands shall be feeble, and all knees shall be weak as water. - -7:18 They shall also gird themselves with sackcloth, and horror shall -cover them; and shame shall be upon all faces, and baldness upon all -their heads. - -7:19 They shall cast their silver in the streets, and their gold shall -be removed: their silver and their gold shall not be able to deliver -them in the day of the wrath of the LORD: they shall not satisfy their -souls, neither fill their bowels: because it is the stumblingblock of -their iniquity. - -7:20 As for the beauty of his ornament, he set it in majesty: but they -made the images of their abominations and of their detestable things -therein: therefore have I set it far from them. - -7:21 And I will give it into the hands of the strangers for a prey, -and to the wicked of the earth for a spoil; and they shall pollute it. - -7:22 My face will I turn also from them, and they shall pollute my -secret place: for the robbers shall enter into it, and defile it. - -7:23 Make a chain: for the land is full of bloody crimes, and the city -is full of violence. - -7:24 Wherefore I will bring the worst of the heathen, and they shall -possess their houses: I will also make the pomp of the strong to -cease; and their holy places shall be defiled. - -7:25 Destruction cometh; and they shall seek peace, and there shall be -none. - -7:26 Mischief shall come upon mischief, and rumour shall be upon -rumour; then shall they seek a vision of the prophet; but the law -shall perish from the priest, and counsel from the ancients. - -7:27 The king shall mourn, and the prince shall be clothed with -desolation, and the hands of the people of the land shall be troubled: -I will do unto them after their way, and according to their deserts -will I judge them; and they shall know that I am the LORD. - -8:1 And it came to pass in the sixth year, in the sixth month, in the -fifth day of the month, as I sat in mine house, and the elders of -Judah sat before me, that the hand of the Lord GOD fell there upon me. - -8:2 Then I beheld, and lo a likeness as the appearance of fire: from -the appearance of his loins even downward, fire; and from his loins -even upward, as the appearance of brightness, as the colour of amber. - -8:3 And he put forth the form of an hand, and took me by a lock of -mine head; and the spirit lifted me up between the earth and the -heaven, and brought me in the visions of God to Jerusalem, to the door -of the inner gate that looketh toward the north; where was the seat of -the image of jealousy, which provoketh to jealousy. - -8:4 And, behold, the glory of the God of Israel was there, according -to the vision that I saw in the plain. - -8:5 Then said he unto me, Son of man, lift up thine eyes now the way -toward the north. So I lifted up mine eyes the way toward the north, -and behold northward at the gate of the altar this image of jealousy -in the entry. - -8:6 He said furthermore unto me, Son of man, seest thou what they do? -even the great abominations that the house of Israel committeth here, -that I should go far off from my sanctuary? but turn thee yet again, -and thou shalt see greater abominations. - -8:7 And he brought me to the door of the court; and when I looked, -behold a hole in the wall. - -8:8 Then said he unto me, Son of man, dig now in the wall: and when I -had digged in the wall, behold a door. - -8:9 And he said unto me, Go in, and behold the wicked abominations -that they do here. - -8:10 So I went in and saw; and behold every form of creeping things, -and abominable beasts, and all the idols of the house of Israel, -pourtrayed upon the wall round about. - -8:11 And there stood before them seventy men of the ancients of the -house of Israel, and in the midst of them stood Jaazaniah the son of -Shaphan, with every man his censer in his hand; and a thick cloud of -incense went up. - -8:12 Then said he unto me, Son of man, hast thou seen what the -ancients of the house of Israel do in the dark, every man in the -chambers of his imagery? for they say, the LORD seeth us not; the LORD -hath forsaken the earth. - -8:13 He said also unto me, Turn thee yet again, and thou shalt see -greater abominations that they do. - -8:14 Then he brought me to the door of the gate of the LORD's house -which was toward the north; and, behold, there sat women weeping for -Tammuz. - -8:15 Then said he unto me, Hast thou seen this, O son of man? turn -thee yet again, and thou shalt see greater abominations than these. - -8:16 And he brought me into the inner court of the LORD's house, and, -behold, at the door of the temple of the LORD, between the porch and -the altar, were about five and twenty men, with their backs toward the -temple of the LORD, and their faces toward the east; and they -worshipped the sun toward the east. - -8:17 Then he said unto me, Hast thou seen this, O son of man? Is it a -light thing to the house of Judah that they commit the abominations -which they commit here? for they have filled the land with violence, -and have returned to provoke me to anger: and, lo, they put the branch -to their nose. - -8:18 Therefore will I also deal in fury: mine eye shall not spare, -neither will I have pity: and though they cry in mine ears with a loud -voice, yet will I not hear them. - -9:1 He cried also in mine ears with a loud voice, saying, Cause them -that have charge over the city to draw near, even every man with his -destroying weapon in his hand. - -9:2 And, behold, six men came from the way of the higher gate, which -lieth toward the north, and every man a slaughter weapon in his hand; -and one man among them was clothed with linen, with a writer's inkhorn -by his side: and they went in, and stood beside the brasen altar. - -9:3 And the glory of the God of Israel was gone up from the cherub, -whereupon he was, to the threshold of the house. And he called to the -man clothed with linen, which had the writer's inkhorn by his side; -9:4 And the LORD said unto him, Go through the midst of the city, -through the midst of Jerusalem, and set a mark upon the foreheads of -the men that sigh and that cry for all the abominations that be done -in the midst thereof. - -9:5 And to the others he said in mine hearing, Go ye after him through -the city, and smite: let not your eye spare, neither have ye pity: 9:6 -Slay utterly old and young, both maids, and little children, and -women: but come not near any man upon whom is the mark; and begin at -my sanctuary. Then they began at the ancient men which were before the -house. - -9:7 And he said unto them, Defile the house, and fill the courts with -the slain: go ye forth. And they went forth, and slew in the city. - -9:8 And it came to pass, while they were slaying them, and I was left, -that I fell upon my face, and cried, and said, Ah Lord GOD! wilt thou -destroy all the residue of Israel in thy pouring out of thy fury upon -Jerusalem? 9:9 Then said he unto me, The iniquity of the house of -Israel and Judah is exceeding great, and the land is full of blood, -and the city full of perverseness: for they say, The LORD hath -forsaken the earth, and the LORD seeth not. - -9:10 And as for me also, mine eye shall not spare, neither will I have -pity, but I will recompense their way upon their head. - -9:11 And, behold, the man clothed with linen, which had the inkhorn by -his side, reported the matter, saying, I have done as thou hast -commanded me. - -10:1 Then I looked, and, behold, in the firmament that was above the -head of the cherubims there appeared over them as it were a sapphire -stone, as the appearance of the likeness of a throne. - -10:2 And he spake unto the man clothed with linen, and said, Go in -between the wheels, even under the cherub, and fill thine hand with -coals of fire from between the cherubims, and scatter them over the -city. And he went in in my sight. - -10:3 Now the cherubims stood on the right side of the house, when the -man went in; and the cloud filled the inner court. - -10:4 Then the glory of the LORD went up from the cherub, and stood -over the threshold of the house; and the house was filled with the -cloud, and the court was full of the brightness of the LORD's glory. - -10:5 And the sound of the cherubims' wings was heard even to the outer -court, as the voice of the Almighty God when he speaketh. - -10:6 And it came to pass, that when he had commanded the man clothed -with linen, saying, Take fire from between the wheels, from between -the cherubims; then he went in, and stood beside the wheels. - -10:7 And one cherub stretched forth his hand from between the -cherubims unto the fire that was between the cherubims, and took -thereof, and put it into the hands of him that was clothed with linen: -who took it, and went out. - -10:8 And there appeared in the cherubims the form of a man's hand -under their wings. - -10:9 And when I looked, behold the four wheels by the cherubims, one -wheel by one cherub, and another wheel by another cherub: and the -appearance of the wheels was as the colour of a beryl stone. - -10:10 And as for their appearances, they four had one likeness, as if -a wheel had been in the midst of a wheel. - -10:11 When they went, they went upon their four sides; they turned not -as they went, but to the place whither the head looked they followed -it; they turned not as they went. - -10:12 And their whole body, and their backs, and their hands, and -their wings, and the wheels, were full of eyes round about, even the -wheels that they four had. - -10:13 As for the wheels, it was cried unto them in my hearing, O -wheel. - -10:14 And every one had four faces: the first face was the face of a -cherub, and the second face was the face of a man, and the third the -face of a lion, and the fourth the face of an eagle. - -10:15 And the cherubims were lifted up. This is the living creature -that I saw by the river of Chebar. - -10:16 And when the cherubims went, the wheels went by them: and when -the cherubims lifted up their wings to mount up from the earth, the -same wheels also turned not from beside them. - -10:17 When they stood, these stood; and when they were lifted up, -these lifted up themselves also: for the spirit of the living creature -was in them. - -10:18 Then the glory of the LORD departed from off the threshold of -the house, and stood over the cherubims. - -10:19 And the cherubims lifted up their wings, and mounted up from the -earth in my sight: when they went out, the wheels also were beside -them, and every one stood at the door of the east gate of the LORD's -house; and the glory of the God of Israel was over them above. - -10:20 This is the living creature that I saw under the God of Israel -by the river of Chebar; and I knew that they were the cherubims. - -10:21 Every one had four faces apiece, and every one four wings; and -the likeness of the hands of a man was under their wings. - -10:22 And the likeness of their faces was the same faces which I saw -by the river of Chebar, their appearances and themselves: they went -every one straight forward. - -11:1 Moreover the spirit lifted me up, and brought me unto the east -gate of the LORD's house, which looketh eastward: and behold at the -door of the gate five and twenty men; among whom I saw Jaazaniah the -son of Azur, and Pelatiah the son of Benaiah, princes of the people. - -11:2 Then said he unto me, Son of man, these are the men that devise -mischief, and give wicked counsel in this city: 11:3 Which say, It is -not near; let us build houses: this city is the caldron, and we be the -flesh. - -11:4 Therefore prophesy against them, prophesy, O son of man. - -11:5 And the Spirit of the LORD fell upon me, and said unto me, Speak; -Thus saith the LORD; Thus have ye said, O house of Israel: for I know -the things that come into your mind, every one of them. - -11:6 Ye have multiplied your slain in this city, and ye have filled -the streets thereof with the slain. - -11:7 Therefore thus saith the Lord GOD; Your slain whom ye have laid -in the midst of it, they are the flesh, and this city is the caldron: -but I will bring you forth out of the midst of it. - -11:8 Ye have feared the sword; and I will bring a sword upon you, -saith the Lord GOD. - -11:9 And I will bring you out of the midst thereof, and deliver you -into the hands of strangers, and will execute judgments among you. - -11:10 Ye shall fall by the sword; I will judge you in the border of -Israel; and ye shall know that I am the LORD. - -11:11 This city shall not be your caldron, neither shall ye be the -flesh in the midst thereof; but I will judge you in the border of -Israel: 11:12 And ye shall know that I am the LORD: for ye have not -walked in my statutes, neither executed my judgments, but have done -after the manners of the heathen that are round about you. - -11:13 And it came to pass, when I prophesied, that Pelatiah the son of -Benaiah died. Then fell I down upon my face, and cried with a loud -voice, and said, Ah Lord GOD! wilt thou make a full end of the remnant -of Israel? 11:14 Again the word of the LORD came unto me, saying, -11:15 Son of man, thy brethren, even thy brethren, the men of thy -kindred, and all the house of Israel wholly, are they unto whom the -inhabitants of Jerusalem have said, Get you far from the LORD: unto us -is this land given in possession. - -11:16 Therefore say, Thus saith the Lord GOD; Although I have cast -them far off among the heathen, and although I have scattered them -among the countries, yet will I be to them as a little sanctuary in -the countries where they shall come. - -11:17 Therefore say, Thus saith the Lord GOD; I will even gather you -from the people, and assemble you out of the countries where ye have -been scattered, and I will give you the land of Israel. - -11:18 And they shall come thither, and they shall take away all the -detestable things thereof and all the abominations thereof from -thence. - -11:19 And I will give them one heart, and I will put a new spirit -within you; and I will take the stony heart out of their flesh, and -will give them an heart of flesh: 11:20 That they may walk in my -statutes, and keep mine ordinances, and do them: and they shall be my -people, and I will be their God. - -11:21 But as for them whose heart walketh after the heart of their -detestable things and their abominations, I will recompense their way -upon their own heads, saith the Lord GOD. - -11:22 Then did the cherubims lift up their wings, and the wheels -beside them; and the glory of the God of Israel was over them above. - -11:23 And the glory of the LORD went up from the midst of the city, -and stood upon the mountain which is on the east side of the city. - -11:24 Afterwards the spirit took me up, and brought me in a vision by -the Spirit of God into Chaldea, to them of the captivity. So the -vision that I had seen went up from me. - -11:25 Then I spake unto them of the captivity all the things that the -LORD had shewed me. - -12:1 The word of the LORD also came unto me, saying, 12:2 Son of man, -thou dwellest in the midst of a rebellious house, which have eyes to -see, and see not; they have ears to hear, and hear not: for they are a -rebellious house. - -12:3 Therefore, thou son of man, prepare thee stuff for removing, and -remove by day in their sight; and thou shalt remove from thy place to -another place in their sight: it may be they will consider, though -they be a rebellious house. - -12:4 Then shalt thou bring forth thy stuff by day in their sight, as -stuff for removing: and thou shalt go forth at even in their sight, as -they that go forth into captivity. - -12:5 Dig thou through the wall in their sight, and carry out thereby. - -12:6 In their sight shalt thou bear it upon thy shoulders, and carry -it forth in the twilight: thou shalt cover thy face, that thou see not -the ground: for I have set thee for a sign unto the house of Israel. - -12:7 And I did so as I was commanded: I brought forth my stuff by day, -as stuff for captivity, and in the even I digged through the wall with -mine hand; I brought it forth in the twilight, and I bare it upon my -shoulder in their sight. - -12:8 And in the morning came the word of the LORD unto me, saying, -12:9 Son of man, hath not the house of Israel, the rebellious house, -said unto thee, What doest thou? 12:10 Say thou unto them, Thus saith -the Lord GOD; This burden concerneth the prince in Jerusalem, and all -the house of Israel that are among them. - -12:11 Say, I am your sign: like as I have done, so shall it be done -unto them: they shall remove and go into captivity. - -12:12 And the prince that is among them shall bear upon his shoulder -in the twilight, and shall go forth: they shall dig through the wall -to carry out thereby: he shall cover his face, that he see not the -ground with his eyes. - -12:13 My net also will I spread upon him, and he shall be taken in my -snare: and I will bring him to Babylon to the land of the Chaldeans; -yet shall he not see it, though he shall die there. - -12:14 And I will scatter toward every wind all that are about him to -help him, and all his bands; and I will draw out the sword after them. - -12:15 And they shall know that I am the LORD, when I shall scatter -them among the nations, and disperse them in the countries. - -12:16 But I will leave a few men of them from the sword, from the -famine, and from the pestilence; that they may declare all their -abominations among the heathen whither they come; and they shall know -that I am the LORD. - -12:17 Moreover the word of the LORD came to me, saying, 12:18 Son of -man, eat thy bread with quaking, and drink thy water with trembling -and with carefulness; 12:19 And say unto the people of the land, Thus -saith the Lord GOD of the inhabitants of Jerusalem, and of the land of -Israel; They shall eat their bread with carefulness, and drink their -water with astonishment, that her land may be desolate from all that -is therein, because of the violence of all them that dwell therein. - -12:20 And the cities that are inhabited shall be laid waste, and the -land shall be desolate; and ye shall know that I am the LORD. - -12:21 And the word of the LORD came unto me, saying, 12:22 Son of man, -what is that proverb that ye have in the land of Israel, saying, The -days are prolonged, and every vision faileth? 12:23 Tell them -therefore, Thus saith the Lord GOD; I will make this proverb to cease, -and they shall no more use it as a proverb in Israel; but say unto -them, The days are at hand, and the effect of every vision. - -12:24 For there shall be no more any vain vision nor flattering -divination within the house of Israel. - -12:25 For I am the LORD: I will speak, and the word that I shall speak -shall come to pass; it shall be no more prolonged: for in your days, O -rebellious house, will I say the word, and will perform it, saith the -Lord GOD. - -12:26 Again the word of the LORD came to me, saying. - -12:27 Son of man, behold, they of the house of Israel say, The vision -that he seeth is for many days to come, and he prophesieth of the -times that are far off. - -12:28 Therefore say unto them, Thus saith the Lord GOD; There shall -none of my words be prolonged any more, but the word which I have -spoken shall be done, saith the Lord GOD. - -13:1 And the word of the LORD came unto me, saying, 13:2 Son of man, -prophesy against the prophets of Israel that prophesy, and say thou -unto them that prophesy out of their own hearts, Hear ye the word of -the LORD; 13:3 Thus saith the Lord GOD; Woe unto the foolish prophets, -that follow their own spirit, and have seen nothing! 13:4 O Israel, -thy prophets are like the foxes in the deserts. - -13:5 Ye have not gone up into the gaps, neither made up the hedge for -the house of Israel to stand in the battle in the day of the LORD. - -13:6 They have seen vanity and lying divination, saying, The LORD -saith: and the LORD hath not sent them: and they have made others to -hope that they would confirm the word. - -13:7 Have ye not seen a vain vision, and have ye not spoken a lying -divination, whereas ye say, The LORD saith it; albeit I have not -spoken? 13:8 Therefore thus saith the Lord GOD; Because ye have -spoken vanity, and seen lies, therefore, behold, I am against you, -saith the Lord GOD. - -13:9 And mine hand shall be upon the prophets that see vanity, and -that divine lies: they shall not be in the assembly of my people, -neither shall they be written in the writing of the house of Israel, -neither shall they enter into the land of Israel; and ye shall know -that I am the Lord GOD. - -13:10 Because, even because they have seduced my people, saying, -Peace; and there was no peace; and one built up a wall, and, lo, -others daubed it with untempered morter: 13:11 Say unto them which -daub it with untempered morter, that it shall fall: there shall be an -overflowing shower; and ye, O great hailstones, shall fall; and a -stormy wind shall rend it. - -13:12 Lo, when the wall is fallen, shall it not be said unto you, -Where is the daubing wherewith ye have daubed it? 13:13 Therefore -thus saith the Lord GOD; I will even rend it with a stormy wind in my -fury; and there shall be an overflowing shower in mine anger, and -great hailstones in my fury to consume it. - -13:14 So will I break down the wall that ye have daubed with -untempered morter, and bring it down to the ground, so that the -foundation thereof shall be discovered, and it shall fall, and ye -shall be consumed in the midst thereof: and ye shall know that I am -the LORD. - -13:15 Thus will I accomplish my wrath upon the wall, and upon them -that have daubed it with untempered morter, and will say unto you, The -wall is no more, neither they that daubed it; 13:16 To wit, the -prophets of Israel which prophesy concerning Jerusalem, and which see -visions of peace for her, and there is no peace, saith the Lord GOD. - -13:17 Likewise, thou son of man, set thy face against the daughters of -thy people, which prophesy out of their own heart; and prophesy thou -against them, 13:18 And say, Thus saith the Lord GOD; Woe to the women -that sew pillows to all armholes, and make kerchiefs upon the head of -every stature to hunt souls! Will ye hunt the souls of my people, and -will ye save the souls alive that come unto you? 13:19 And will ye -pollute me among my people for handfuls of barley and for pieces of -bread, to slay the souls that should not die, and to save the souls -alive that should not live, by your lying to my people that hear your -lies? 13:20 Wherefore thus saith the Lord GOD; Behold, I am against -your pillows, wherewith ye there hunt the souls to make them fly, and -I will tear them from your arms, and will let the souls go, even the -souls that ye hunt to make them fly. - -13:21 Your kerchiefs also will I tear, and deliver my people out of -your hand, and they shall be no more in your hand to be hunted; and ye -shall know that I am the LORD. - -13:22 Because with lies ye have made the heart of the righteous sad, -whom I have not made sad; and strengthened the hands of the wicked, -that he should not return from his wicked way, by promising him life: -13:23 Therefore ye shall see no more vanity, nor divine divinations: -for I will deliver my people out of your hand: and ye shall know that -I am the LORD. - -14:1 Then came certain of the elders of Israel unto me, and sat before -me. - -14:2 And the word of the LORD came unto me, saying, 14:3 Son of man, -these men have set up their idols in their heart, and put the -stumblingblock of their iniquity before their face: should I be -enquired of at all by them? 14:4 Therefore speak unto them, and say -unto them, Thus saith the Lord GOD; Every man of the house of Israel -that setteth up his idols in his heart, and putteth the stumblingblock -of his iniquity before his face, and cometh to the prophet; I the LORD -will answer him that cometh according to the multitude of his idols; -14:5 That I may take the house of Israel in their own heart, because -they are all estranged from me through their idols. - -14:6 Therefore say unto the house of Israel, Thus saith the Lord GOD; -Repent, and turn yourselves from your idols; and turn away your faces -from all your abominations. - -14:7 For every one of the house of Israel, or of the stranger that -sojourneth in Israel, which separateth himself from me, and setteth up -his idols in his heart, and putteth the stumblingblock of his iniquity -before his face, and cometh to a prophet to enquire of him concerning -me; I the LORD will answer him by myself: 14:8 And I will set my face -against that man, and will make him a sign and a proverb, and I will -cut him off from the midst of my people; and ye shall know that I am -the LORD. - -14:9 And if the prophet be deceived when he hath spoken a thing, I the -LORD have deceived that prophet, and I will stretch out my hand upon -him, and will destroy him from the midst of my people Israel. - -14:10 And they shall bear the punishment of their iniquity: the -punishment of the prophet shall be even as the punishment of him that -seeketh unto him; 14:11 That the house of Israel may go no more astray -from me, neither be polluted any more with all their transgressions; -but that they may be my people, and I may be their God, saith the Lord -GOD. - -14:12 The word of the LORD came again to me, saying, 14:13 Son of man, -when the land sinneth against me by trespassing grievously, then will -I stretch out mine hand upon it, and will break the staff of the bread -thereof, and will send famine upon it, and will cut off man and beast -from it: 14:14 Though these three men, Noah, Daniel, and Job, were in -it, they should deliver but their own souls by their righteousness, -saith the Lord GOD. - -14:15 If I cause noisome beasts to pass through the land, and they -spoil it, so that it be desolate, that no man may pass through because -of the beasts: 14:16 Though these three men were in it, as I live, -saith the Lord GOD, they shall deliver neither sons nor daughters; -they only shall be delivered, but the land shall be desolate. - -14:17 Or if I bring a sword upon that land, and say, Sword, go through -the land; so that I cut off man and beast from it: 14:18 Though these -three men were in it, as I live, saith the Lord GOD, they shall -deliver neither sons nor daughters, but they only shall be delivered -themselves. - -14:19 Or if I send a pestilence into that land, and pour out my fury -upon it in blood, to cut off from it man and beast: 14:20 Though Noah, -Daniel, and Job were in it, as I live, saith the Lord GOD, they shall -deliver neither son nor daughter; they shall but deliver their own -souls by their righteousness. - -14:21 For thus saith the Lord GOD; How much more when I send my four -sore judgments upon Jerusalem, the sword, and the famine, and the -noisome beast, and the pestilence, to cut off from it man and beast? -14:22 Yet, behold, therein shall be left a remnant that shall be -brought forth, both sons and daughters: behold, they shall come forth -unto you, and ye shall see their way and their doings: and ye shall be -comforted concerning the evil that I have brought upon Jerusalem, even -concerning all that I have brought upon it. - -14:23 And they shall comfort you, when ye see their ways and their -doings: and ye shall know that I have not done without cause all that -I have done in it, saith the Lord GOD. - -15:1 And the word of the LORD came unto me, saying, 15:2 Son of man, -what is the vine tree more than any tree, or than a branch which is -among the trees of the forest? 15:3 Shall wood be taken thereof to do -any work? or will men take a pin of it to hang any vessel thereon? -15:4 Behold, it is cast into the fire for fuel; the fire devoureth -both the ends of it, and the midst of it is burned. Is it meet for any -work? 15:5 Behold, when it was whole, it was meet for no work: how -much less shall it be meet yet for any work, when the fire hath -devoured it, and it is burned? 15:6 Therefore thus saith the Lord -GOD; As the vine tree among the trees of the forest, which I have -given to the fire for fuel, so will I give the inhabitants of -Jerusalem. - -15:7 And I will set my face against them; they shall go out from one -fire, and another fire shall devour them; and ye shall know that I am -the LORD, when I set my face against them. - -15:8 And I will make the land desolate, because they have committed a -trespass, saith the Lord GOD. - -16:1 Again the word of the LORD came unto me, saying, 16:2 Son of man, -cause Jerusalem to know her abominations, 16:3 And say, Thus saith the -Lord GOD unto Jerusalem; Thy birth and thy nativity is of the land of -Canaan; thy father was an Amorite, and thy mother an Hittite. - -16:4 And as for thy nativity, in the day thou wast born thy navel was -not cut, neither wast thou washed in water to supple thee; thou wast -not salted at all, nor swaddled at all. - -16:5 None eye pitied thee, to do any of these unto thee, to have -compassion upon thee; but thou wast cast out in the open field, to the -lothing of thy person, in the day that thou wast born. - -16:6 And when I passed by thee, and saw thee polluted in thine own -blood, I said unto thee when thou wast in thy blood, Live; yea, I said -unto thee when thou wast in thy blood, Live. - -16:7 I have caused thee to multiply as the bud of the field, and thou -hast increased and waxen great, and thou art come to excellent -ornaments: thy breasts are fashioned, and thine hair is grown, whereas -thou wast naked and bare. - -16:8 Now when I passed by thee, and looked upon thee, behold, thy time -was the time of love; and I spread my skirt over thee, and covered thy -nakedness: yea, I sware unto thee, and entered into a covenant with -thee, saith the Lord GOD, and thou becamest mine. - -16:9 Then washed I thee with water; yea, I throughly washed away thy -blood from thee, and I anointed thee with oil. - -16:10 I clothed thee also with broidered work, and shod thee with -badgers' skin, and I girded thee about with fine linen, and I covered -thee with silk. - -16:11 I decked thee also with ornaments, and I put bracelets upon thy -hands, and a chain on thy neck. - -16:12 And I put a jewel on thy forehead, and earrings in thine ears, -and a beautiful crown upon thine head. - -16:13 Thus wast thou decked with gold and silver; and thy raiment was -of fine linen, and silk, and broidered work; thou didst eat fine -flour, and honey, and oil: and thou wast exceeding beautiful, and thou -didst prosper into a kingdom. - -16:14 And thy renown went forth among the heathen for thy beauty: for -it was perfect through my comeliness, which I had put upon thee, saith -the Lord GOD. - -16:15 But thou didst trust in thine own beauty, and playedst the -harlot because of thy renown, and pouredst out thy fornications on -every one that passed by; his it was. - -16:16 And of thy garments thou didst take, and deckedst thy high -places with divers colours, and playedst the harlot thereupon: the -like things shall not come, neither shall it be so. - -16:17 Thou hast also taken thy fair jewels of my gold and of my -silver, which I had given thee, and madest to thyself images of men, -and didst commit whoredom with them, 16:18 And tookest thy broidered -garments, and coveredst them: and thou hast set mine oil and mine -incense before them. - -16:19 My meat also which I gave thee, fine flour, and oil, and honey, -wherewith I fed thee, thou hast even set it before them for a sweet -savour: and thus it was, saith the Lord GOD. - -16:20 Moreover thou hast taken thy sons and thy daughters, whom thou -hast borne unto me, and these hast thou sacrificed unto them to be -devoured. Is this of thy whoredoms a small matter, 16:21 That thou -hast slain my children, and delivered them to cause them to pass -through the fire for them? 16:22 And in all thine abominations and -thy whoredoms thou hast not remembered the days of thy youth, when -thou wast naked and bare, and wast polluted in thy blood. - -16:23 And it came to pass after all thy wickedness, (woe, woe unto -thee! saith the LORD GOD;) 16:24 That thou hast also built unto thee -an eminent place, and hast made thee an high place in every street. - -16:25 Thou hast built thy high place at every head of the way, and -hast made thy beauty to be abhorred, and hast opened thy feet to every -one that passed by, and multiplied thy whoredoms. - -16:26 Thou hast also committed fornication with the Egyptians thy -neighbours, great of flesh; and hast increased thy whoredoms, to -provoke me to anger. - -16:27 Behold, therefore I have stretched out my hand over thee, and -have diminished thine ordinary food, and delivered thee unto the will -of them that hate thee, the daughters of the Philistines, which are -ashamed of thy lewd way. - -16:28 Thou hast played the whore also with the Assyrians, because thou -wast unsatiable; yea, thou hast played the harlot with them, and yet -couldest not be satisfied. - -16:29 Thou hast moreover multiplied thy fornication in the land of -Canaan unto Chaldea; and yet thou wast not satisfied therewith. - -16:30 How weak is thine heart, saith the LORD GOD, seeing thou doest -all these things, the work of an imperious whorish woman; 16:31 In -that thou buildest thine eminent place in the head of every way, and -makest thine high place in every street; and hast not been as an -harlot, in that thou scornest hire; 16:32 But as a wife that -committeth adultery, which taketh strangers instead of her husband! -16:33 They give gifts to all whores: but thou givest thy gifts to all -thy lovers, and hirest them, that they may come unto thee on every -side for thy whoredom. - -16:34 And the contrary is in thee from other women in thy whoredoms, -whereas none followeth thee to commit whoredoms: and in that thou -givest a reward, and no reward is given unto thee, therefore thou art -contrary. - -16:35 Wherefore, O harlot, hear the word of the LORD: 16:36 Thus saith -the Lord GOD; Because thy filthiness was poured out, and thy nakedness -discovered through thy whoredoms with thy lovers, and with all the -idols of thy abominations, and by the blood of thy children, which -thou didst give unto them; 16:37 Behold, therefore I will gather all -thy lovers, with whom thou hast taken pleasure, and all them that thou -hast loved, with all them that thou hast hated; I will even gather -them round about against thee, and will discover thy nakedness unto -them, that they may see all thy nakedness. - -16:38 And I will judge thee, as women that break wedlock and shed -blood are judged; and I will give thee blood in fury and jealousy. - -16:39 And I will also give thee into their hand, and they shall throw -down thine eminent place, and shall break down thy high places: they -shall strip thee also of thy clothes, and shall take thy fair jewels, -and leave thee naked and bare. - -16:40 They shall also bring up a company against thee, and they shall -stone thee with stones, and thrust thee through with their swords. - -16:41 And they shall burn thine houses with fire, and execute -judgments upon thee in the sight of many women: and I will cause thee -to cease from playing the harlot, and thou also shalt give no hire any -more. - -16:42 So will I make my fury toward thee to rest, and my jealousy -shall depart from thee, and I will be quiet, and will be no more -angry. - -16:43 Because thou hast not remembered the days of thy youth, but hast -fretted me in all these things; behold, therefore I also will -recompense thy way upon thine head, saith the Lord GOD: and thou shalt -not commit this lewdness above all thine abominations. - -16:44 Behold, every one that useth proverbs shall use this proverb -against thee, saying, As is the mother, so is her daughter. - -16:45 Thou art thy mother's daughter, that lotheth her husband and her -children; and thou art the sister of thy sisters, which lothed their -husbands and their children: your mother was an Hittite, and your -father an Amorite. - -16:46 And thine elder sister is Samaria, she and her daughters that -dwell at thy left hand: and thy younger sister, that dwelleth at thy -right hand, is Sodom and her daughters. - -16:47 Yet hast thou not walked after their ways, nor done after their -abominations: but, as if that were a very little thing, thou wast -corrupted more than they in all thy ways. - -16:48 As I live, saith the Lord GOD, Sodom thy sister hath not done, -she nor her daughters, as thou hast done, thou and thy daughters. - -16:49 Behold, this was the iniquity of thy sister Sodom, pride, -fulness of bread, and abundance of idleness was in her and in her -daughters, neither did she strengthen the hand of the poor and needy. - -16:50 And they were haughty, and committed abomination before me: -therefore I took them away as I saw good. - -16:51 Neither hath Samaria committed half of thy sins; but thou hast -multiplied thine abominations more than they, and hast justified thy -sisters in all thine abominations which thou hast done. - -16:52 Thou also, which hast judged thy sisters, bear thine own shame -for thy sins that thou hast committed more abominable than they: they -are more righteous than thou: yea, be thou confounded also, and bear -thy shame, in that thou hast justified thy sisters. - -16:53 When I shall bring again their captivity, the captivity of Sodom -and her daughters, and the captivity of Samaria and her daughters, -then will I bring again the captivity of thy captives in the midst of -them: 16:54 That thou mayest bear thine own shame, and mayest be -confounded in all that thou hast done, in that thou art a comfort unto -them. - -16:55 When thy sisters, Sodom and her daughters, shall return to their -former estate, and Samaria and her daughters shall return to their -former estate, then thou and thy daughters shall return to your former -estate. - -16:56 For thy sister Sodom was not mentioned by thy mouth in the day -of thy pride, 16:57 Before thy wickedness was discovered, as at the -time of thy reproach of the daughters of Syria, and all that are round -about her, the daughters of the Philistines, which despise thee round -about. - -16:58 Thou hast borne thy lewdness and thine abominations, saith the -LORD. - -16:59 For thus saith the Lord GOD; I will even deal with thee as thou -hast done, which hast despised the oath in breaking the covenant. - -16:60 Nevertheless I will remember my covenant with thee in the days -of thy youth, and I will establish unto thee an everlasting covenant. - -16:61 Then thou shalt remember thy ways, and be ashamed, when thou -shalt receive thy sisters, thine elder and thy younger: and I will -give them unto thee for daughters, but not by thy covenant. - -16:62 And I will establish my covenant with thee; and thou shalt know -that I am the LORD: 16:63 That thou mayest remember, and be -confounded, and never open thy mouth any more because of thy shame, -when I am pacified toward thee for all that thou hast done, saith the -Lord GOD. - -17:1 And the word of the LORD came unto me, saying, 17:2 Son of man, -put forth a riddle, and speak a parable unto the house of Israel; 17:3 -And say, Thus saith the Lord GOD; A great eagle with great wings, -longwinged, full of feathers, which had divers colours, came unto -Lebanon, and took the highest branch of the cedar: 17:4 He cropped off -the top of his young twigs, and carried it into a land of traffick; he -set it in a city of merchants. - -17:5 He took also of the seed of the land, and planted it in a -fruitful field; he placed it by great waters, and set it as a willow -tree. - -17:6 And it grew, and became a spreading vine of low stature, whose -branches turned toward him, and the roots thereof were under him: so -it became a vine, and brought forth branches, and shot forth sprigs. - -17:7 There was also another great eagle with great wings and many -feathers: and, behold, this vine did bend her roots toward him, and -shot forth her branches toward him, that he might water it by the -furrows of her plantation. - -17:8 It was planted in a good soil by great waters, that it might -bring forth branches, and that it might bear fruit, that it might be a -goodly vine. - -17:9 Say thou, Thus saith the Lord GOD; Shall it prosper? shall he not -pull up the roots thereof, and cut off the fruit thereof, that it -wither? it shall wither in all the leaves of her spring, even without -great power or many people to pluck it up by the roots thereof. - -17:10 Yea, behold, being planted, shall it prosper? shall it not -utterly wither, when the east wind toucheth it? it shall wither in the -furrows where it grew. - -17:11 Moreover the word of the LORD came unto me, saying, 17:12 Say -now to the rebellious house, Know ye not what these things mean? tell -them, Behold, the king of Babylon is come to Jerusalem, and hath taken -the king thereof, and the princes thereof, and led them with him to -Babylon; 17:13 And hath taken of the king's seed, and made a covenant -with him, and hath taken an oath of him: he hath also taken the mighty -of the land: 17:14 That the kingdom might be base, that it might not -lift itself up, but that by keeping of his covenant it might stand. - -17:15 But he rebelled against him in sending his ambassadors into -Egypt, that they might give him horses and much people. Shall he -prosper? shall he escape that doeth such things? or shall he break the -covenant, and be delivered? 17:16 As I live, saith the Lord GOD, -surely in the place where the king dwelleth that made him king, whose -oath he despised, and whose covenant he brake, even with him in the -midst of Babylon he shall die. - -17:17 Neither shall Pharaoh with his mighty army and great company -make for him in the war, by casting up mounts, and building forts, to -cut off many persons: 17:18 Seeing he despised the oath by breaking -the covenant, when, lo, he had given his hand, and hath done all these -things, he shall not escape. - -17:19 Therefore thus saith the Lord GOD; As I live, surely mine oath -that he hath despised, and my covenant that he hath broken, even it -will I recompense upon his own head. - -17:20 And I will spread my net upon him, and he shall be taken in my -snare, and I will bring him to Babylon, and will plead with him there -for his trespass that he hath trespassed against me. - -17:21 And all his fugitives with all his bands shall fall by the -sword, and they that remain shall be scattered toward all winds: and -ye shall know that I the LORD have spoken it. - -17:22 Thus saith the Lord GOD; I will also take of the highest branch -of the high cedar, and will set it; I will crop off from the top of -his young twigs a tender one, and will plant it upon an high mountain -and eminent: 17:23 In the mountain of the height of Israel will I -plant it: and it shall bring forth boughs, and bear fruit, and be a -goodly cedar: and under it shall dwell all fowl of every wing; in the -shadow of the branches thereof shall they dwell. - -17:24 And all the trees of the field shall know that I the LORD have -brought down the high tree, have exalted the low tree, have dried up -the green tree, and have made the dry tree to flourish: I the LORD -have spoken and have done it. - -18:1 The word of the LORD came unto me again, saying, 18:2 What mean -ye, that ye use this proverb concerning the land of Israel, saying, -The fathers have eaten sour grapes, and the children's teeth are set -on edge? 18:3 As I live, saith the Lord GOD, ye shall not have -occasion any more to use this proverb in Israel. - -18:4 Behold, all souls are mine; as the soul of the father, so also -the soul of the son is mine: the soul that sinneth, it shall die. - -18:5 But if a man be just, and do that which is lawful and right, 18:6 -And hath not eaten upon the mountains, neither hath lifted up his eyes -to the idols of the house of Israel, neither hath defiled his -neighbour's wife, neither hath come near to a menstruous woman, 18:7 -And hath not oppressed any, but hath restored to the debtor his -pledge, hath spoiled none by violence, hath given his bread to the -hungry, and hath covered the naked with a garment; 18:8 He that hath -not given forth upon usury, neither hath taken any increase, that hath -withdrawn his hand from iniquity, hath executed true judgment between -man and man, 18:9 Hath walked in my statutes, and hath kept my -judgments, to deal truly; he is just, he shall surely live, saith the -Lord GOD. - -18:10 If he beget a son that is a robber, a shedder of blood, and that -doeth the like to any one of these things, 18:11 And that doeth not -any of those duties, but even hath eaten upon the mountains, and -defiled his neighbour's wife, 18:12 Hath oppressed the poor and needy, -hath spoiled by violence, hath not restored the pledge, and hath -lifted up his eyes to the idols, hath committed abomination, 18:13 -Hath given forth upon usury, and hath taken increase: shall he then -live? he shall not live: he hath done all these abominations; he shall -surely die; his blood shall be upon him. - -18:14 Now, lo, if he beget a son, that seeth all his father's sins -which he hath done, and considereth, and doeth not such like, 18:15 -That hath not eaten upon the mountains, neither hath lifted up his -eyes to the idols of the house of Israel, hath not defiled his -neighbour's wife, 18:16 Neither hath oppressed any, hath not -withholden the pledge, neither hath spoiled by violence, but hath -given his bread to the hungry, and hath covered the naked with a -garment, 18:17 That hath taken off his hand from the poor, that hath -not received usury nor increase, hath executed my judgments, hath -walked in my statutes; he shall not die for the iniquity of his -father, he shall surely live. - -18:18 As for his father, because he cruelly oppressed, spoiled his -brother by violence, and did that which is not good among his people, -lo, even he shall die in his iniquity. - -18:19 Yet say ye, Why? doth not the son bear the iniquity of the -father? When the son hath done that which is lawful and right, and -hath kept all my statutes, and hath done them, he shall surely live. - -18:20 The soul that sinneth, it shall die. The son shall not bear the -iniquity of the father, neither shall the father bear the iniquity of -the son: the righteousness of the righteous shall be upon him, and the -wickedness of the wicked shall be upon him. - -18:21 But if the wicked will turn from all his sins that he hath -committed, and keep all my statutes, and do that which is lawful and -right, he shall surely live, he shall not die. - -18:22 All his transgressions that he hath committed, they shall not be -mentioned unto him: in his righteousness that he hath done he shall -live. - -18:23 Have I any pleasure at all that the wicked should die? saith the -Lord GOD: and not that he should return from his ways, and live? -18:24 But when the righteous turneth away from his righteousness, and -committeth iniquity, and doeth according to all the abominations that -the wicked man doeth, shall he live? All his righteousness that he -hath done shall not be mentioned: in his trespass that he hath -trespassed, and in his sin that he hath sinned, in them shall he die. - -18:25 Yet ye say, The way of the LORD is not equal. Hear now, O house -of Israel; Is not my way equal? are not your ways unequal? 18:26 When -a righteous man turneth away from his righteousness, and committeth -iniquity, and dieth in them; for his iniquity that he hath done shall -he die. - -18:27 Again, when the wicked man turneth away from his wickedness that -he hath committed, and doeth that which is lawful and right, he shall -save his soul alive. - -18:28 Because he considereth, and turneth away from all his -transgressions that he hath committed, he shall surely live, he shall -not die. - -18:29 Yet saith the house of Israel, The way of the LORD is not equal. -O house of Israel, are not my ways equal? are not your ways unequal? -18:30 Therefore I will judge you, O house of Israel, every one -according to his ways, saith the Lord GOD. Repent, and turn yourselves -from all your transgressions; so iniquity shall not be your ruin. - -18:31 Cast away from you all your transgressions, whereby ye have -transgressed; and make you a new heart and a new spirit: for why will -ye die, O house of Israel? 18:32 For I have no pleasure in the death -of him that dieth, saith the Lord GOD: wherefore turn yourselves, and -live ye. - -19:1 Moreover take thou up a lamentation for the princes of Israel, -19:2 And say, What is thy mother? A lioness: she lay down among lions, -she nourished her whelps among young lions. - -19:3 And she brought up one of her whelps: it became a young lion, and -it learned to catch the prey; it devoured men. - -19:4 The nations also heard of him; he was taken in their pit, and -they brought him with chains unto the land of Egypt. - -19:5 Now when she saw that she had waited, and her hope was lost, then -she took another of her whelps, and made him a young lion. - -19:6 And he went up and down among the lions, he became a young lion, -and learned to catch the prey, and devoured men. - -19:7 And he knew their desolate palaces, and he laid waste their -cities; and the land was desolate, and the fulness thereof, by the -noise of his roaring. - -19:8 Then the nations set against him on every side from the -provinces, and spread their net over him: he was taken in their pit. - -19:9 And they put him in ward in chains, and brought him to the king -of Babylon: they brought him into holds, that his voice should no more -be heard upon the mountains of Israel. - -19:10 Thy mother is like a vine in thy blood, planted by the waters: -she was fruitful and full of branches by reason of many waters. - -19:11 And she had strong rods for the sceptres of them that bare rule, -and her stature was exalted among the thick branches, and she appeared -in her height with the multitude of her branches. - -19:12 But she was plucked up in fury, she was cast down to the ground, -and the east wind dried up her fruit: her strong rods were broken and -withered; the fire consumed them. - -19:13 And now she is planted in the wilderness, in a dry and thirsty -ground. - -19:14 And fire is gone out of a rod of her branches, which hath -devoured her fruit, so that she hath no strong rod to be a sceptre to -rule. This is a lamentation, and shall be for a lamentation. - -20:1 And it came to pass in the seventh year, in the fifth month, the -tenth day of the month, that certain of the elders of Israel came to -enquire of the LORD, and sat before me. - -20:2 Then came the word of the LORD unto me, saying, 20:3 Son of man, -speak unto the elders of Israel, and say unto them, Thus saith the -Lord GOD; Are ye come to enquire of me? As I live, saith the Lord GOD, -I will not be enquired of by you. - -20:4 Wilt thou judge them, son of man, wilt thou judge them? cause -them to know the abominations of their fathers: 20:5 And say unto -them, Thus saith the Lord GOD; In the day when I chose Israel, and -lifted up mine hand unto the seed of the house of Jacob, and made -myself known unto them in the land of Egypt, when I lifted up mine -hand unto them, saying, I am the LORD your God; 20:6 In the day that I -lifted up mine hand unto them, to bring them forth of the land of -Egypt into a land that I had espied for them, flowing with milk and -honey, which is the glory of all lands: 20:7 Then said I unto them, -Cast ye away every man the abominations of his eyes, and defile not -yourselves with the idols of Egypt: I am the LORD your God. - -20:8 But they rebelled against me, and would not hearken unto me: they -did not every man cast away the abominations of their eyes, neither -did they forsake the idols of Egypt: then I said, I will pour out my -fury upon them, to accomplish my anger against them in the midst of -the land of Egypt. - -20:9 But I wrought for my name's sake, that it should not be polluted -before the heathen, among whom they were, in whose sight I made myself -known unto them, in bringing them forth out of the land of Egypt. - -20:10 Wherefore I caused them to go forth out of the land of Egypt, -and brought them into the wilderness. - -20:11 And I gave them my statutes, and shewed them my judgments, which -if a man do, he shall even live in them. - -20:12 Moreover also I gave them my sabbaths, to be a sign between me -and them, that they might know that I am the LORD that sanctify them. - -20:13 But the house of Israel rebelled against me in the wilderness: -they walked not in my statutes, and they despised my judgments, which -if a man do, he shall even live in them; and my sabbaths they greatly -polluted: then I said, I would pour out my fury upon them in the -wilderness, to consume them. - -20:14 But I wrought for my name's sake, that it should not be polluted -before the heathen, in whose sight I brought them out. - -20:15 Yet also I lifted up my hand unto them in the wilderness, that I -would not bring them into the land which I had given them, flowing -with milk and honey, which is the glory of all lands; 20:16 Because -they despised my judgments, and walked not in my statutes, but -polluted my sabbaths: for their heart went after their idols. - -20:17 Nevertheless mine eye spared them from destroying them, neither -did I make an end of them in the wilderness. - -20:18 But I said unto their children in the wilderness, Walk ye not in -the statutes of your fathers, neither observe their judgments, nor -defile yourselves with their idols: 20:19 I am the LORD your God; walk -in my statutes, and keep my judgments, and do them; 20:20 And hallow -my sabbaths; and they shall be a sign between me and you, that ye may -know that I am the LORD your God. - -20:21 Notwithstanding the children rebelled against me: they walked -not in my statutes, neither kept my judgments to do them, which if a -man do, he shall even live in them; they polluted my sabbaths: then I -said, I would pour out my fury upon them, to accomplish my anger -against them in the wilderness. - -20:22 Nevertheless I withdrew mine hand, and wrought for my name's -sake, that it should not be polluted in the sight of the heathen, in -whose sight I brought them forth. - -20:23 I lifted up mine hand unto them also in the wilderness, that I -would scatter them among the heathen, and disperse them through the -countries; 20:24 Because they had not executed my judgments, but had -despised my statutes, and had polluted my sabbaths, and their eyes -were after their fathers' idols. - -20:25 Wherefore I gave them also statutes that were not good, and -judgments whereby they should not live; 20:26 And I polluted them in -their own gifts, in that they caused to pass through the fire all that -openeth the womb, that I might make them desolate, to the end that -they might know that I am the LORD. - -20:27 Therefore, son of man, speak unto the house of Israel, and say -unto them, Thus saith the Lord GOD; Yet in this your fathers have -blasphemed me, in that they have committed a trespass against me. - -20:28 For when I had brought them into the land, for the which I -lifted up mine hand to give it to them, then they saw every high hill, -and all the thick trees, and they offered there their sacrifices, and -there they presented the provocation of their offering: there also -they made their sweet savour, and poured out there their drink -offerings. - -20:29 Then I said unto them, What is the high place whereunto ye go? -And the name whereof is called Bamah unto this day. - -20:30 Wherefore say unto the house of Israel, Thus saith the Lord GOD; -Are ye polluted after the manner of your fathers? and commit ye -whoredom after their abominations? 20:31 For when ye offer your -gifts, when ye make your sons to pass through the fire, ye pollute -yourselves with all your idols, even unto this day: and shall I be -enquired of by you, O house of Israel? As I live, saith the Lord GOD, -I will not be enquired of by you. - -20:32 And that which cometh into your mind shall not be at all, that -ye say, We will be as the heathen, as the families of the countries, -to serve wood and stone. - -20:33 As I live, saith the Lord GOD, surely with a mighty hand, and -with a stretched out arm, and with fury poured out, will I rule over -you: 20:34 And I will bring you out from the people, and will gather -you out of the countries wherein ye are scattered, with a mighty hand, -and with a stretched out arm, and with fury poured out. - -20:35 And I will bring you into the wilderness of the people, and -there will I plead with you face to face. - -20:36 Like as I pleaded with your fathers in the wilderness of the -land of Egypt, so will I plead with you, saith the Lord GOD. - -20:37 And I will cause you to pass under the rod, and I will bring you -into the bond of the covenant: 20:38 And I will purge out from among -you the rebels, and them that transgress against me: I will bring them -forth out of the country where they sojourn, and they shall not enter -into the land of Israel: and ye shall know that I am the LORD. - -20:39 As for you, O house of Israel, thus saith the Lord GOD; Go ye, -serve ye every one his idols, and hereafter also, if ye will not -hearken unto me: but pollute ye my holy name no more with your gifts, -and with your idols. - -20:40 For in mine holy mountain, in the mountain of the height of -Israel, saith the Lord GOD, there shall all the house of Israel, all -of them in the land, serve me: there will I accept them, and there -will I require your offerings, and the firstfruits of your oblations, -with all your holy things. - -20:41 I will accept you with your sweet savour, when I bring you out -from the people, and gather you out of the countries wherein ye have -been scattered; and I will be sanctified in you before the heathen. - -20:42 And ye shall know that I am the LORD, when I shall bring you -into the land of Israel, into the country for the which I lifted up -mine hand to give it to your fathers. - -20:43 And there shall ye remember your ways, and all your doings, -wherein ye have been defiled; and ye shall lothe yourselves in your -own sight for all your evils that ye have committed. - -20:44 And ye shall know that I am the LORD when I have wrought with -you for my name's sake, not according to your wicked ways, nor -according to your corrupt doings, O ye house of Israel, saith the Lord -GOD. - -20:45 Moreover the word of the LORD came unto me, saying, 20:46 Son of -man, set thy face toward the south, and drop thy word toward the -south, and prophesy against the forest of the south field; 20:47 And -say to the forest of the south, Hear the word of the LORD; Thus saith -the Lord GOD; Behold, I will kindle a fire in thee, and it shall -devour every green tree in thee, and every dry tree: the flaming flame -shall not be quenched, and all faces from the south to the north shall -be burned therein. - -20:48 And all flesh shall see that I the LORD have kindled it: it -shall not be quenched. - -20:49 Then said I, Ah Lord GOD! they say of me, Doth he not speak -parables? 21:1 And the word of the LORD came unto me, saying, 21:2 -Son of man, set thy face toward Jerusalem, and drop thy word toward -the holy places, and prophesy against the land of Israel, 21:3 And say -to the land of Israel, Thus saith the LORD; Behold, I am against thee, -and will draw forth my sword out of his sheath, and will cut off from -thee the righteous and the wicked. - -21:4 Seeing then that I will cut off from thee the righteous and the -wicked, therefore shall my sword go forth out of his sheath against -all flesh from the south to the north: 21:5 That all flesh may know -that I the LORD have drawn forth my sword out of his sheath: it shall -not return any more. - -21:6 Sigh therefore, thou son of man, with the breaking of thy loins; -and with bitterness sigh before their eyes. - -21:7 And it shall be, when they say unto thee, Wherefore sighest thou? -that thou shalt answer, For the tidings; because it cometh: and every -heart shall melt, and all hands shall be feeble, and every spirit -shall faint, and all knees shall be weak as water: behold, it cometh, -and shall be brought to pass, saith the Lord GOD. - -21:8 Again the word of the LORD came unto me, saying, 21:9 Son of man, -prophesy, and say, Thus saith the LORD; Say, A sword, a sword is -sharpened, and also furbished: 21:10 It is sharpened to make a sore -slaughter; it is furbished that it may glitter: should we then make -mirth? it contemneth the rod of my son, as every tree. - -21:11 And he hath given it to be furbished, that it may be handled: -this sword is sharpened, and it is furbished, to give it into the hand -of the slayer. - -21:12 Cry and howl, son of man: for it shall be upon my people, it -shall be upon all the princes of Israel: terrors by reason of the -sword shall be upon my people: smite therefore upon thy thigh. - -21:13 Because it is a trial, and what if the sword contemn even the -rod? it shall be no more, saith the Lord GOD. - -21:14 Thou therefore, son of man, prophesy, and smite thine hands -together. and let the sword be doubled the third time, the sword of -the slain: it is the sword of the great men that are slain, which -entereth into their privy chambers. - -21:15 I have set the point of the sword against all their gates, that -their heart may faint, and their ruins be multiplied: ah! it is made -bright, it is wrapped up for the slaughter. - -21:16 Go thee one way or other, either on the right hand, or on the -left, whithersoever thy face is set. - -21:17 I will also smite mine hands together, and I will cause my fury -to rest: I the LORD have said it. - -21:18 The word of the LORD came unto me again, saying, 21:19 Also, -thou son of man, appoint thee two ways, that the sword of the king of -Babylon may come: both twain shall come forth out of one land: and -choose thou a place, choose it at the head of the way to the city. - -21:20 Appoint a way, that the sword may come to Rabbath of the -Ammonites, and to Judah in Jerusalem the defenced. - -21:21 For the king of Babylon stood at the parting of the way, at the -head of the two ways, to use divination: he made his arrows bright, he -consulted with images, he looked in the liver. - -21:22 At his right hand was the divination for Jerusalem, to appoint -captains, to open the mouth in the slaughter, to lift up the voice -with shouting, to appoint battering rams against the gates, to cast a -mount, and to build a fort. - -21:23 And it shall be unto them as a false divination in their sight, -to them that have sworn oaths: but he will call to remembrance the -iniquity, that they may be taken. - -21:24 Therefore thus saith the Lord GOD; Because ye have made your -iniquity to be remembered, in that your transgressions are discovered, -so that in all your doings your sins do appear; because, I say, that -ye are come to remembrance, ye shall be taken with the hand. - -21:25 And thou, profane wicked prince of Israel, whose day is come, -when iniquity shall have an end, 21:26 Thus saith the Lord GOD; Remove -the diadem, and take off the crown: this shall not be the same: exalt -him that is low, and abase him that is high. - -21:27 I will overturn, overturn, overturn, it: and it shall be no -more, until he come whose right it is; and I will give it him. - -21:28 And thou, son of man, prophesy and say, Thus saith the Lord GOD -concerning the Ammonites, and concerning their reproach; even say -thou, The sword, the sword is drawn: for the slaughter it is -furbished, to consume because of the glittering: 21:29 Whiles they see -vanity unto thee, whiles they divine a lie unto thee, to bring thee -upon the necks of them that are slain, of the wicked, whose day is -come, when their iniquity shall have an end. - -21:30 Shall I cause it to return into his sheath? I will judge thee in -the place where thou wast created, in the land of thy nativity. - -21:31 And I will pour out mine indignation upon thee, I will blow -against thee in the fire of my wrath, and deliver thee into the hand -of brutish men, and skilful to destroy. - -21:32 Thou shalt be for fuel to the fire; thy blood shall be in the -midst of the land; thou shalt be no more remembered: for I the LORD -have spoken it. - -22:1 Moreover the word of the LORD came unto me, saying, 22:2 Now, -thou son of man, wilt thou judge, wilt thou judge the bloody city? -yea, thou shalt shew her all her abominations. - -22:3 Then say thou, Thus saith the Lord GOD, The city sheddeth blood -in the midst of it, that her time may come, and maketh idols against -herself to defile herself. - -22:4 Thou art become guilty in thy blood that thou hast shed; and hast -defiled thyself in thine idols which thou hast made; and thou hast -caused thy days to draw near, and art come even unto thy years: -therefore have I made thee a reproach unto the heathen, and a mocking -to all countries. - -22:5 Those that be near, and those that be far from thee, shall mock -thee, which art infamous and much vexed. - -22:6 Behold, the princes of Israel, every one were in thee to their -power to shed blood. - -22:7 In thee have they set light by father and mother: in the midst of -thee have they dealt by oppression with the stranger: in thee have -they vexed the fatherless and the widow. - -22:8 Thou hast despised mine holy things, and hast profaned my -sabbaths. - -22:9 In thee are men that carry tales to shed blood: and in thee they -eat upon the mountains: in the midst of thee they commit lewdness. - -22:10 In thee have they discovered their fathers' nakedness: in thee -have they humbled her that was set apart for pollution. - -22:11 And one hath committed abomination with his neighbour's wife; -and another hath lewdly defiled his daughter in law; and another in -thee hath humbled his sister, his father's daughter. - -22:12 In thee have they taken gifts to shed blood; thou hast taken -usury and increase, and thou hast greedily gained of thy neighbours by -extortion, and hast forgotten me, saith the Lord GOD. - -22:13 Behold, therefore I have smitten mine hand at thy dishonest gain -which thou hast made, and at thy blood which hath been in the midst of -thee. - -22:14 Can thine heart endure, or can thine hands be strong, in the -days that I shall deal with thee? I the LORD have spoken it, and will -do it. - -22:15 And I will scatter thee among the heathen, and disperse thee in -the countries, and will consume thy filthiness out of thee. - -22:16 And thou shalt take thine inheritance in thyself in the sight of -the heathen, and thou shalt know that I am the LORD. - -22:17 And the word of the LORD came unto me, saying, 22:18 Son of man, -the house of Israel is to me become dross: all they are brass, and -tin, and iron, and lead, in the midst of the furnace; they are even -the dross of silver. - -22:19 Therefore thus saith the Lord GOD; Because ye are all become -dross, behold, therefore I will gather you into the midst of -Jerusalem. - -22:20 As they gather silver, and brass, and iron, and lead, and tin, -into the midst of the furnace, to blow the fire upon it, to melt it; -so will I gather you in mine anger and in my fury, and I will leave -you there, and melt you. - -22:21 Yea, I will gather you, and blow upon you in the fire of my -wrath, and ye shall be melted in the midst therof. - -22:22 As silver is melted in the midst of the furnace, so shall ye be -melted in the midst thereof; and ye shall know that I the LORD have -poured out my fury upon you. - -22:23 And the word of the LORD came unto me, saying, 22:24 Son of man, -say unto her, Thou art the land that is not cleansed, nor rained upon -in the day of indignation. - -22:25 There is a conspiracy of her prophets in the midst thereof, like -a roaring lion ravening the prey; they have devoured souls; they have -taken the treasure and precious things; they have made her many widows -in the midst thereof. - -22:26 Her priests have violated my law, and have profaned mine holy -things: they have put no difference between the holy and profane, -neither have they shewed difference between the unclean and the clean, -and have hid their eyes from my sabbaths, and I am profaned among -them. - -22:27 Her princes in the midst thereof are like wolves ravening the -prey, to shed blood, and to destroy souls, to get dishonest gain. - -22:28 And her prophets have daubed them with untempered morter, seeing -vanity, and divining lies unto them, saying, Thus saith the Lord GOD, -when the LORD hath not spoken. - -22:29 The people of the land have used oppression, and exercised -robbery, and have vexed the poor and needy: yea, they have oppressed -the stranger wrongfully. - -22:30 And I sought for a man among them, that should make up the -hedge, and stand in the gap before me for the land, that I should not -destroy it: but I found none. - -22:31 Therefore have I poured out mine indignation upon them; I have -consumed them with the fire of my wrath: their own way have I -recompensed upon their heads, saith the Lord GOD. - -23:1 The word of the LORD came again unto me, saying, 23:2 Son of man, -there were two women, the daughters of one mother: 23:3 And they -committed whoredoms in Egypt; they committed whoredoms in their youth: -there were their breasts pressed, and there they bruised the teats of -their virginity. - -23:4 And the names of them were Aholah the elder, and Aholibah her -sister: and they were mine, and they bare sons and daughters. Thus -were their names; Samaria is Aholah, and Jerusalem Aholibah. - -23:5 And Aholah played the harlot when she was mine; and she doted on -her lovers, on the Assyrians her neighbours, 23:6 Which were clothed -with blue, captains and rulers, all of them desirable young men, -horsemen riding upon horses. - -23:7 Thus she committed her whoredoms with them, with all them that -were the chosen men of Assyria, and with all on whom she doted: with -all their idols she defiled herself. - -23:8 Neither left she her whoredoms brought from Egypt: for in her -youth they lay with her, and they bruised the breasts of her -virginity, and poured their whoredom upon her. - -23:9 Wherefore I have delivered her into the hand of her lovers, into -the hand of the Assyrians, upon whom she doted. - -23:10 These discovered her nakedness: they took her sons and her -daughters, and slew her with the sword: and she became famous among -women; for they had executed judgment upon her. - -23:11 And when her sister Aholibah saw this, she was more corrupt in -her inordinate love than she, and in her whoredoms more than her -sister in her whoredoms. - -23:12 She doted upon the Assyrians her neighbours, captains and rulers -clothed most gorgeously, horsemen riding upon horses, all of them -desirable young men. - -23:13 Then I saw that she was defiled, that they took both one way, -23:14 And that she increased her whoredoms: for when she saw men -pourtrayed upon the wall, the images of the Chaldeans pourtrayed with -vermilion, 23:15 Girded with girdles upon their loins, exceeding in -dyed attire upon their heads, all of them princes to look to, after -the manner of the Babylonians of Chaldea, the land of their nativity: -23:16 And as soon as she saw them with her eyes, she doted upon them, -and sent messengers unto them into Chaldea. - -23:17 And the Babylonians came to her into the bed of love, and they -defiled her with their whoredom, and she was polluted with them, and -her mind was alienated from them. - -23:18 So she discovered her whoredoms, and discovered her nakedness: -then my mind was alienated from her, like as my mind was alienated -from her sister. - -23:19 Yet she multiplied her whoredoms, in calling to remembrance the -days of her youth, wherein she had played the harlot in the land of -Egypt. - -23:20 For she doted upon their paramours, whose flesh is as the flesh -of asses, and whose issue is like the issue of horses. - -23:21 Thus thou calledst to remembrance the lewdness of thy youth, in -bruising thy teats by the Egyptians for the paps of thy youth. - -23:22 Therefore, O Aholibah, thus saith the Lord GOD; Behold, I will -raise up thy lovers against thee, from whom thy mind is alienated, and -I will bring them against thee on every side; 23:23 The Babylonians, -and all the Chaldeans, Pekod, and Shoa, and Koa, and all the Assyrians -with them: all of them desirable young men, captains and rulers, great -lords and renowned, all of them riding upon horses. - -23:24 And they shall come against thee with chariots, wagons, and -wheels, and with an assembly of people, which shall set against thee -buckler and shield and helmet round about: and I will set judgment -before them, and they shall judge thee according to their judgments. - -23:25 And I will set my jealousy against thee, and they shall deal -furiously with thee: they shall take away thy nose and thine ears; and -thy remnant shall fall by the sword: they shall take thy sons and thy -daughters; and thy residue shall be devoured by the fire. - -23:26 They shall also strip thee out of thy clothes, and take away thy -fair jewels. - -23:27 Thus will I make thy lewdness to cease from thee, and thy -whoredom brought from the land of Egypt: so that thou shalt not lift -up thine eyes unto them, nor remember Egypt any more. - -23:28 For thus saith the Lord GOD; Behold, I will deliver thee into -the hand of them whom thou hatest, into the hand of them from whom thy -mind is alienated: 23:29 And they shall deal with thee hatefully, and -shall take away all thy labour, and shall leave thee naked and bare: -and the nakedness of thy whoredoms shall be discovered, both thy -lewdness and thy whoredoms. - -23:30 I will do these things unto thee, because thou hast gone a -whoring after the heathen, and because thou art polluted with their -idols. - -23:31 Thou hast walked in the way of thy sister; therefore will I give -her cup into thine hand. - -23:32 Thus saith the Lord GOD; Thou shalt drink of thy sister's cup -deep and large: thou shalt be laughed to scorn and had in derision; it -containeth much. - -23:33 Thou shalt be filled with drunkenness and sorrow, with the cup -of astonishment and desolation, with the cup of thy sister Samaria. - -23:34 Thou shalt even drink it and suck it out, and thou shalt break -the sherds thereof, and pluck off thine own breasts: for I have spoken -it, saith the Lord GOD. - -23:35 Therefore thus saith the Lord GOD; Because thou hast forgotten -me, and cast me behind thy back, therefore bear thou also thy lewdness -and thy whoredoms. - -23:36 The LORD said moreover unto me; Son of man, wilt thou judge -Aholah and Aholibah? yea, declare unto them their abominations; 23:37 -That they have committed adultery, and blood is in their hands, and -with their idols have they committed adultery, and have also caused -their sons, whom they bare unto me, to pass for them through the fire, -to devour them. - -23:38 Moreover this they have done unto me: they have defiled my -sanctuary in the same day, and have profaned my sabbaths. - -23:39 For when they had slain their children to their idols, then they -came the same day into my sanctuary to profane it; and, lo, thus have -they done in the midst of mine house. - -23:40 And furthermore, that ye have sent for men to come from far, -unto whom a messenger was sent; and, lo, they came: for whom thou -didst wash thyself, paintedst thy eyes, and deckedst thyself with -ornaments, 23:41 And satest upon a stately bed, and a table prepared -before it, whereupon thou hast set mine incense and mine oil. - -23:42 And a voice of a multitude being at ease was with her: and with -the men of the common sort were brought Sabeans from the wilderness, -which put bracelets upon their hands, and beautiful crowns upon their -heads. - -23:43 Then said I unto her that was old in adulteries, Will they now -commit whoredoms with her, and she with them? 23:44 Yet they went in -unto her, as they go in unto a woman that playeth the harlot: so went -they in unto Aholah and unto Aholibah, the lewd women. - -23:45 And the righteous men, they shall judge them after the manner of -adulteresses, and after the manner of women that shed blood; because -they are adulteresses, and blood is in their hands. - -23:46 For thus saith the Lord GOD; I will bring up a company upon -them, and will give them to be removed and spoiled. - -23:47 And the company shall stone them with stones, and dispatch them -with their swords; they shall slay their sons and their daughters, and -burn up their houses with fire. - -23:48 Thus will I cause lewdness to cease out of the land, that all -women may be taught not to do after your lewdness. - -23:49 And they shall recompense your lewdness upon you, and ye shall -bear the sins of your idols: and ye shall know that I am the Lord GOD. - -24:1 Again in the ninth year, in the tenth month, in the tenth day of -the month, the word of the LORD came unto me, saying, 24:2 Son of man, -write thee the name of the day, even of this same day: the king of -Babylon set himself against Jerusalem this same day. - -24:3 And utter a parable unto the rebellious house, and say unto them, -Thus saith the Lord GOD; Set on a pot, set it on, and also pour water -into it: 24:4 Gather the pieces thereof into it, even every good -piece, the thigh, and the shoulder; fill it with the choice bones. - -24:5 Take the choice of the flock, and burn also the bones under it, -and make it boil well, and let them seethe the bones of it therein. - -24:6 Wherefore thus saith the Lord GOD; Woe to the bloody city, to the -pot whose scum is therein, and whose scum is not gone out of it! bring -it out piece by piece; let no lot fall upon it. - -24:7 For her blood is in the midst of her; she set it upon the top of -a rock; she poured it not upon the ground, to cover it with dust; 24:8 -That it might cause fury to come up to take vengeance; I have set her -blood upon the top of a rock, that it should not be covered. - -24:9 Therefore thus saith the Lord GOD; Woe to the bloody city! I will -even make the pile for fire great. - -24:10 Heap on wood, kindle the fire, consume the flesh, and spice it -well, and let the bones be burned. - -24:11 Then set it empty upon the coals thereof, that the brass of it -may be hot, and may burn, and that the filthiness of it may be molten -in it, that the scum of it may be consumed. - -24:12 She hath wearied herself with lies, and her great scum went not -forth out of her: her scum shall be in the fire. - -24:13 In thy filthiness is lewdness: because I have purged thee, and -thou wast not purged, thou shalt not be purged from thy filthiness any -more, till I have caused my fury to rest upon thee. - -24:14 I the LORD have spoken it: it shall come to pass, and I will do -it; I will not go back, neither will I spare, neither will I repent; -according to thy ways, and according to thy doings, shall they judge -thee, saith the Lord GOD. - -24:15 Also the word of the LORD came unto me, saying, 24:16 Son of -man, behold, I take away from thee the desire of thine eyes with a -stroke: yet neither shalt thou mourn nor weep, neither shall thy tears -run down. - -24:17 Forbear to cry, make no mourning for the dead, bind the tire of -thine head upon thee, and put on thy shoes upon thy feet, and cover -not thy lips, and eat not the bread of men. - -24:18 So I spake unto the people in the morning: and at even my wife -died; and I did in the morning as I was commanded. - -24:19 And the people said unto me, Wilt thou not tell us what these -things are to us, that thou doest so? 24:20 Then I answered them, The -word of the LORD came unto me, saying, 24:21 Speak unto the house of -Israel, Thus saith the Lord GOD; Behold, I will profane my sanctuary, -the excellency of your strength, the desire of your eyes, and that -which your soul pitieth; and your sons and your daughters whom ye have -left shall fall by the sword. - -24:22 And ye shall do as I have done: ye shall not cover your lips, -nor eat the bread of men. - -24:23 And your tires shall be upon your heads, and your shoes upon -your feet: ye shall not mourn nor weep; but ye shall pine away for -your iniquities, and mourn one toward another. - -24:24 Thus Ezekiel is unto you a sign: according to all that he hath -done shall ye do: and when this cometh, ye shall know that I am the -Lord GOD. - -24:25 Also, thou son of man, shall it not be in the day when I take -from them their strength, the joy of their glory, the desire of their -eyes, and that whereupon they set their minds, their sons and their -daughters, 24:26 That he that escapeth in that day shall come unto -thee, to cause thee to hear it with thine ears? 24:27 In that day -shall thy mouth be opened to him which is escaped, and thou shalt -speak, and be no more dumb: and thou shalt be a sign unto them; and -they shall know that I am the LORD. - -25:1 The word of the LORD came again unto me, saying, 25:2 Son of man, -set thy face against the Ammonites, and prophesy against them; 25:3 -And say unto the Ammonites, Hear the word of the Lord GOD; Thus saith -the Lord GOD; Because thou saidst, Aha, against my sanctuary, when it -was profaned; and against the land of Israel, when it was desolate; -and against the house of Judah, when they went into captivity; 25:4 -Behold, therefore I will deliver thee to the men of the east for a -possession, and they shall set their palaces in thee, and make their -dwellings in thee: they shall eat thy fruit, and they shall drink thy -milk. - -25:5 And I will make Rabbah a stable for camels, and the Ammonites a -couching place for flocks: and ye shall know that I am the LORD. - -25:6 For thus saith the Lord GOD; Because thou hast clapped thine -hands, and stamped with the feet, and rejoiced in heart with all thy -despite against the land of Israel; 25:7 Behold, therefore I will -stretch out mine hand upon thee, and will deliver thee for a spoil to -the heathen; and I will cut thee off from the people, and I will cause -thee to perish out of the countries: I will destroy thee; and thou -shalt know that I am the LORD. - -25:8 Thus saith the Lord GOD; Because that Moab and Seir do say, -Behold, the house of Judah is like unto all the heathen; 25:9 -Therefore, behold, I will open the side of Moab from the cities, from -his cities which are on his frontiers, the glory of the country, -Bethjeshimoth, Baalmeon, and Kiriathaim, 25:10 Unto the men of the -east with the Ammonites, and will give them in possession, that the -Ammonites may not be remembered among the nations. - -25:11 And I will execute judgments upon Moab; and they shall know that -I am the LORD. - -25:12 Thus saith the Lord GOD; Because that Edom hath dealt against -the house of Judah by taking vengeance, and hath greatly offended, and -revenged himself upon them; 25:13 Therefore thus saith the Lord GOD; I -will also stretch out mine hand upon Edom, and will cut off man and -beast from it; and I will make it desolate from Teman; and they of -Dedan shall fall by the sword. - -25:14 And I will lay my vengeance upon Edom by the hand of my people -Israel: and they shall do in Edom according to mine anger and -according to my fury; and they shall know my vengeance, saith the Lord -GOD. - -25:15 Thus saith the Lord GOD; Because the Philistines have dealt by -revenge, and have taken vengeance with a despiteful heart, to destroy -it for the old hatred; 25:16 Therefore thus saith the Lord GOD; -Behold, I will stretch out mine hand upon the Philistines, and I will -cut off the Cherethims, and destroy the remnant of the sea coast. - -25:17 And I will execute great vengeance upon them with furious -rebukes; and they shall know that I am the LORD, when I shall lay my -vengeance upon them. - -26:1 And it came to pass in the eleventh year, in the first day of the -month, that the word of the LORD came unto me, saying, 26:2 Son of -man, because that Tyrus hath said against Jerusalem, Aha, she is -broken that was the gates of the people: she is turned unto me: I -shall be replenished, now she is laid waste: 26:3 Therefore thus saith -the Lord GOD; Behold, I am against thee, O Tyrus, and will cause many -nations to come up against thee, as the sea causeth his waves to come -up. - -26:4 And they shall destroy the walls of Tyrus, and break down her -towers: I will also scrape her dust from her, and make her like the -top of a rock. - -26:5 It shall be a place for the spreading of nets in the midst of the -sea: for I have spoken it, saith the Lord GOD: and it shall become a -spoil to the nations. - -26:6 And her daughters which are in the field shall be slain by the -sword; and they shall know that I am the LORD. - -26:7 For thus saith the Lord GOD; Behold, I will bring upon Tyrus -Nebuchadrezzar king of Babylon, a king of kings, from the north, with -horses, and with chariots, and with horsemen, and companies, and much -people. - -26:8 He shall slay with the sword thy daughters in the field: and he -shall make a fort against thee, and cast a mount against thee, and -lift up the buckler against thee. - -26:9 And he shall set engines of war against thy walls, and with his -axes he shall break down thy towers. - -26:10 By reason of the abundance of his horses their dust shall cover -thee: thy walls shall shake at the noise of the horsemen, and of the -wheels, and of the chariots, when he shall enter into thy gates, as -men enter into a city wherein is made a breach. - -26:11 With the hoofs of his horses shall he tread down all thy -streets: he shall slay thy people by the sword, and thy strong -garrisons shall go down to the ground. - -26:12 And they shall make a spoil of thy riches, and make a prey of -thy merchandise: and they shall break down thy walls, and destroy thy -pleasant houses: and they shall lay thy stones and thy timber and thy -dust in the midst of the water. - -26:13 And I will cause the noise of thy songs to cease; and the sound -of thy harps shall be no more heard. - -26:14 And I will make thee like the top of a rock: thou shalt be a -place to spread nets upon; thou shalt be built no more: for I the LORD -have spoken it, saith the Lord GOD. - -26:15 Thus saith the Lord GOD to Tyrus; Shall not the isles shake at -the sound of thy fall, when the wounded cry, when the slaughter is -made in the midst of thee? 26:16 Then all the princes of the sea -shall come down from their thrones, and lay away their robes, and put -off their broidered garments: they shall clothe themselves with -trembling; they shall sit upon the ground, and shall tremble at every -moment, and be astonished at thee. - -26:17 And they shall take up a lamentation for thee, and say to thee, -How art thou destroyed, that wast inhabited of seafaring men, the -renowned city, which wast strong in the sea, she and her inhabitants, -which cause their terror to be on all that haunt it! 26:18 Now shall -the isles tremble in the day of thy fall; yea, the isles that are in -the sea shall be troubled at thy departure. - -26:19 For thus saith the Lord GOD; When I shall make thee a desolate -city, like the cities that are not inhabited; when I shall bring up -the deep upon thee, and great waters shall cover thee; 26:20 When I -shall bring thee down with them that descend into the pit, with the -people of old time, and shall set thee in the low parts of the earth, -in places desolate of old, with them that go down to the pit, that -thou be not inhabited; and I shall set glory in the land of the -living; 26:21 I will make thee a terror, and thou shalt be no more: -though thou be sought for, yet shalt thou never be found again, saith -the Lord GOD. - -27:1 The word of the LORD came again unto me, saying, 27:2 Now, thou -son of man, take up a lamentation for Tyrus; 27:3 And say unto Tyrus, -O thou that art situate at the entry of the sea, which art a merchant -of the people for many isles, Thus saith the Lord GOD; O Tyrus, thou -hast said, I am of perfect beauty. - -27:4 Thy borders are in the midst of the seas, thy builders have -perfected thy beauty. - -27:5 They have made all thy ship boards of fir trees of Senir: they -have taken cedars from Lebanon to make masts for thee. - -27:6 Of the oaks of Bashan have they made thine oars; the company of -the Ashurites have made thy benches of ivory, brought out of the isles -of Chittim. - -27:7 Fine linen with broidered work from Egypt was that which thou -spreadest forth to be thy sail; blue and purple from the isles of -Elishah was that which covered thee. - -27:8 The inhabitants of Zidon and Arvad were thy mariners: thy wise -men, O Tyrus, that were in thee, were thy pilots. - -27:9 The ancients of Gebal and the wise men thereof were in thee thy -calkers: all the ships of the sea with their mariners were in thee to -occupy thy merchandise. - -27:10 They of Persia and of Lud and of Phut were in thine army, thy -men of war: they hanged the shield and helmet in thee; they set forth -thy comeliness. - -27:11 The men of Arvad with thine army were upon thy walls round -about, and the Gammadims were in thy towers: they hanged their shields -upon thy walls round about; they have made thy beauty perfect. - -27:12 Tarshish was thy merchant by reason of the multitude of all kind -of riches; with silver, iron, tin, and lead, they traded in thy fairs. - -27:13 Javan, Tubal, and Meshech, they were thy merchants: they traded -the persons of men and vessels of brass in thy market. - -27:14 They of the house of Togarmah traded in thy fairs with horses -and horsemen and mules. - -27:15 The men of Dedan were thy merchants; many isles were the -merchandise of thine hand: they brought thee for a present horns of -ivory and ebony. - -27:16 Syria was thy merchant by reason of the multitude of the wares -of thy making: they occupied in thy fairs with emeralds, purple, and -broidered work, and fine linen, and coral, and agate. - -27:17 Judah, and the land of Israel, they were thy merchants: they -traded in thy market wheat of Minnith, and Pannag, and honey, and oil, -and balm. - -27:18 Damascus was thy merchant in the multitude of the wares of thy -making, for the multitude of all riches; in the wine of Helbon, and -white wool. - -27:19 Dan also and Javan going to and fro occupied in thy fairs: -bright iron, cassia, and calamus, were in thy market. - -27:20 Dedan was thy merchant in precious clothes for chariots. - -27:21 Arabia, and all the princes of Kedar, they occupied with thee in -lambs, and rams, and goats: in these were they thy merchants. - -27:22 The merchants of Sheba and Raamah, they were thy merchants: they -occupied in thy fairs with chief of all spices, and with all precious -stones, and gold. - -27:23 Haran, and Canneh, and Eden, the merchants of Sheba, Asshur, and -Chilmad, were thy merchants. - -27:24 These were thy merchants in all sorts of things, in blue -clothes, and broidered work, and in chests of rich apparel, bound with -cords, and made of cedar, among thy merchandise. - -27:25 The ships of Tarshish did sing of thee in thy market: and thou -wast replenished, and made very glorious in the midst of the seas. - -27:26 Thy rowers have brought thee into great waters: the east wind -hath broken thee in the midst of the seas. - -27:27 Thy riches, and thy fairs, thy merchandise, thy mariners, and -thy pilots, thy calkers, and the occupiers of thy merchandise, and all -thy men of war, that are in thee, and in all thy company which is in -the midst of thee, shall fall into the midst of the seas in the day of -thy ruin. - -27:28 The suburbs shall shake at the sound of the cry of thy pilots. - -27:29 And all that handle the oar, the mariners, and all the pilots of -the sea, shall come down from their ships, they shall stand upon the -land; 27:30 And shall cause their voice to be heard against thee, and -shall cry bitterly, and shall cast up dust upon their heads, they -shall wallow themselves in the ashes: 27:31 And they shall make -themselves utterly bald for thee, and gird them with sackcloth, and -they shall weep for thee with bitterness of heart and bitter wailing. - -27:32 And in their wailing they shall take up a lamentation for thee, -and lament over thee, saying, What city is like Tyrus, like the -destroyed in the midst of the sea? 27:33 When thy wares went forth -out of the seas, thou filledst many people; thou didst enrich the -kings of the earth with the multitude of thy riches and of thy -merchandise. - -27:34 In the time when thou shalt be broken by the seas in the depths -of the waters thy merchandise and all thy company in the midst of thee -shall fall. - -27:35 All the inhabitants of the isles shall be astonished at thee, -and their kings shall be sore afraid, they shall be troubled in their -countenance. - -27:36 The merchants among the people shall hiss at thee; thou shalt be -a terror, and never shalt be any more. - -28:1 The word of the LORD came again unto me, saying, 28:2 Son of man, -say unto the prince of Tyrus, Thus saith the Lord GOD; Because thine -heart is lifted up, and thou hast said, I am a God, I sit in the seat -of God, in the midst of the seas; yet thou art a man, and not God, -though thou set thine heart as the heart of God: 28:3 Behold, thou art -wiser than Daniel; there is no secret that they can hide from thee: -28:4 With thy wisdom and with thine understanding thou hast gotten -thee riches, and hast gotten gold and silver into thy treasures: 28:5 -By thy great wisdom and by thy traffick hast thou increased thy -riches, and thine heart is lifted up because of thy riches: 28:6 -Therefore thus saith the Lord GOD; Because thou hast set thine heart -as the heart of God; 28:7 Behold, therefore I will bring strangers -upon thee, the terrible of the nations: and they shall draw their -swords against the beauty of thy wisdom, and they shall defile thy -brightness. - -28:8 They shall bring thee down to the pit, and thou shalt die the -deaths of them that are slain in the midst of the seas. - -28:9 Wilt thou yet say before him that slayeth thee, I am God? but -thou shalt be a man, and no God, in the hand of him that slayeth thee. - -28:10 Thou shalt die the deaths of the uncircumcised by the hand of -strangers: for I have spoken it, saith the Lord GOD. - -28:11 Moreover the word of the LORD came unto me, saying, 28:12 Son of -man, take up a lamentation upon the king of Tyrus, and say unto him, -Thus saith the Lord GOD; Thou sealest up the sum, full of wisdom, and -perfect in beauty. - -28:13 Thou hast been in Eden the garden of God; every precious stone -was thy covering, the sardius, topaz, and the diamond, the beryl, the -onyx, and the jasper, the sapphire, the emerald, and the carbuncle, -and gold: the workmanship of thy tabrets and of thy pipes was prepared -in thee in the day that thou wast created. - -28:14 Thou art the anointed cherub that covereth; and I have set thee -so: thou wast upon the holy mountain of God; thou hast walked up and -down in the midst of the stones of fire. - -28:15 Thou wast perfect in thy ways from the day that thou wast -created, till iniquity was found in thee. - -28:16 By the multitude of thy merchandise they have filled the midst -of thee with violence, and thou hast sinned: therefore I will cast -thee as profane out of the mountain of God: and I will destroy thee, O -covering cherub, from the midst of the stones of fire. - -28:17 Thine heart was lifted up because of thy beauty, thou hast -corrupted thy wisdom by reason of thy brightness: I will cast thee to -the ground, I will lay thee before kings, that they may behold thee. - -28:18 Thou hast defiled thy sanctuaries by the multitude of thine -iniquities, by the iniquity of thy traffick; therefore will I bring -forth a fire from the midst of thee, it shall devour thee, and I will -bring thee to ashes upon the earth in the sight of all them that -behold thee. - -28:19 All they that know thee among the people shall be astonished at -thee: thou shalt be a terror, and never shalt thou be any more. - -28:20 Again the word of the LORD came unto me, saying, 28:21 Son of -man, set thy face against Zidon, and prophesy against it, 28:22 And -say, Thus saith the Lord GOD; Behold, I am against thee, O Zidon; and -I will be glorified in the midst of thee: and they shall know that I -am the LORD, when I shall have executed judgments in her, and shall be -sanctified in her. - -28:23 For I will send into her pestilence, and blood into her streets; -and the wounded shall be judged in the midst of her by the sword upon -her on every side; and they shall know that I am the LORD. - -28:24 And there shall be no more a pricking brier unto the house of -Israel, nor any grieving thorn of all that are round about them, that -despised them; and they shall know that I am the Lord GOD. - -28:25 Thus saith the Lord GOD; When I shall have gathered the house of -Israel from the people among whom they are scattered, and shall be -sanctified in them in the sight of the heathen, then shall they dwell -in their land that I have given to my servant Jacob. - -28:26 And they shall dwell safely therein, and shall build houses, and -plant vineyards; yea, they shall dwell with confidence, when I have -executed judgments upon all those that despise them round about them; -and they shall know that I am the LORD their God. - -29:1 In the tenth year, in the tenth month, in the twelfth day of the -month, the word of the LORD came unto me, saying, 29:2 Son of man, set -thy face against Pharaoh king of Egypt, and prophesy against him, and -against all Egypt: 29:3 Speak, and say, Thus saith the Lord GOD; -Behold, I am against thee, Pharaoh king of Egypt, the great dragon -that lieth in the midst of his rivers, which hath said, My river is -mine own, and I have made it for myself. - -29:4 But I will put hooks in thy jaws, and I will cause the fish of -thy rivers to stick unto thy scales, and I will bring thee up out of -the midst of thy rivers, and all the fish of thy rivers shall stick -unto thy scales. - -29:5 And I will leave thee thrown into the wilderness, thee and all -the fish of thy rivers: thou shalt fall upon the open fields; thou -shalt not be brought together, nor gathered: I have given thee for -meat to the beasts of the field and to the fowls of the heaven. - -29:6 And all the inhabitants of Egypt shall know that I am the LORD, -because they have been a staff of reed to the house of Israel. - -29:7 When they took hold of thee by thy hand, thou didst break, and -rend all their shoulder: and when they leaned upon thee, thou brakest, -and madest all their loins to be at a stand. - -29:8 Therefore thus saith the Lord GOD; Behold, I will bring a sword -upon thee, and cut off man and beast out of thee. - -29:9 And the land of Egypt shall be desolate and waste; and they shall -know that I am the LORD: because he hath said, The river is mine, and -I have made it. - -29:10 Behold, therefore I am against thee, and against thy rivers, and -I will make the land of Egypt utterly waste and desolate, from the -tower of Syene even unto the border of Ethiopia. - -29:11 No foot of man shall pass through it, nor foot of beast shall -pass through it, neither shall it be inhabited forty years. - -29:12 And I will make the land of Egypt desolate in the midst of the -countries that are desolate, and her cities among the cities that are -laid waste shall be desolate forty years: and I will scatter the -Egyptians among the nations, and will disperse them through the -countries. - -29:13 Yet thus saith the Lord GOD; At the end of forty years will I -gather the Egyptians from the people whither they were scattered: -29:14 And I will bring again the captivity of Egypt, and will cause -them to return into the land of Pathros, into the land of their -habitation; and they shall be there a base kingdom. - -29:15 It shall be the basest of the kingdoms; neither shall it exalt -itself any more above the nations: for I will diminish them, that they -shall no more rule over the nations. - -29:16 And it shall be no more the confidence of the house of Israel, -which bringeth their iniquity to remembrance, when they shall look -after them: but they shall know that I am the Lord GOD. - -29:17 And it came to pass in the seven and twentieth year, in the -first month, in the first day of the month, the word of the LORD came -unto me, saying, 29:18 Son of man, Nebuchadrezzar king of Babylon -caused his army to serve a great service against Tyrus: every head was -made bald, and every shoulder was peeled: yet had he no wages, nor his -army, for Tyrus, for the service that he had served against it: 29:19 -Therefore thus saith the Lord GOD; Behold, I will give the land of -Egypt unto Nebuchadrezzar king of Babylon; and he shall take her -multitude, and take her spoil, and take her prey; and it shall be the -wages for his army. - -29:20 I have given him the land of Egypt for his labour wherewith he -served against it, because they wrought for me, saith the Lord GOD. - -29:21 In that day will I cause the horn of the house of Israel to bud -forth, and I will give thee the opening of the mouth in the midst of -them; and they shall know that I am the LORD. - -30:1 The word of the LORD came again unto me, saying, 30:2 Son of man, -prophesy and say, Thus saith the Lord GOD; Howl ye, Woe worth the day! -30:3 For the day is near, even the day of the LORD is near, a cloudy -day; it shall be the time of the heathen. - -30:4 And the sword shall come upon Egypt, and great pain shall be in -Ethiopia, when the slain shall fall in Egypt, and they shall take away -her multitude, and her foundations shall be broken down. - -30:5 Ethiopia, and Libya, and Lydia, and all the mingled people, and -Chub, and the men of the land that is in league, shall fall with them -by the sword. - -30:6 Thus saith the LORD; They also that uphold Egypt shall fall; and -the pride of her power shall come down: from the tower of Syene shall -they fall in it by the sword, saith the Lord GOD. - -30:7 And they shall be desolate in the midst of the countries that are -desolate, and her cities shall be in the midst of the cities that are -wasted. - -30:8 And they shall know that I am the LORD, when I have set a fire in -Egypt, and when all her helpers shall be destroyed. - -30:9 In that day shall messengers go forth from me in ships to make -the careless Ethiopians afraid, and great pain shall come upon them, -as in the day of Egypt: for, lo, it cometh. - -30:10 Thus saith the Lord GOD; I will also make the multitude of Egypt -to cease by the hand of Nebuchadrezzar king of Babylon. - -30:11 He and his people with him, the terrible of the nations, shall -be brought to destroy the land: and they shall draw their swords -against Egypt, and fill the land with the slain. - -30:12 And I will make the rivers dry, and sell the land into the hand -of the wicked: and I will make the land waste, and all that is -therein, by the hand of strangers: I the LORD have spoken it. - -30:13 Thus saith the Lord GOD; I will also destroy the idols, and I -will cause their images to cease out of Noph; and there shall be no -more a prince of the land of Egypt: and I will put a fear in the land -of Egypt. - -30:14 And I will make Pathros desolate, and will set fire in Zoan, and -will execute judgments in No. - -30:15 And I will pour my fury upon Sin, the strength of Egypt; and I -will cut off the multitude of No. - -30:16 And I will set fire in Egypt: Sin shall have great pain, and No -shall be rent asunder, and Noph shall have distresses daily. - -30:17 The young men of Aven and of Pibeseth shall fall by the sword: -and these cities shall go into captivity. - -30:18 At Tehaphnehes also the day shall be darkened, when I shall -break there the yokes of Egypt: and the pomp of her strength shall -cease in her: as for her, a cloud shall cover her, and her daughters -shall go into captivity. - -30:19 Thus will I execute judgments in Egypt: and they shall know that -I am the LORD. - -30:20 And it came to pass in the eleventh year, in the first month, in -the seventh day of the month, that the word of the LORD came unto me, -saying, 30:21 Son of man, I have broken the arm of Pharaoh king of -Egypt; and, lo, it shall not be bound up to be healed, to put a roller -to bind it, to make it strong to hold the sword. - -30:22 Therefore thus saith the Lord GOD; Behold, I am against Pharaoh -king of Egypt, and will break his arms, the strong, and that which was -broken; and I will cause the sword to fall out of his hand. - -30:23 And I will scatter the Egyptians among the nations, and will -disperse them through the countries. - -30:24 And I will strengthen the arms of the king of Babylon, and put -my sword in his hand: but I will break Pharaoh's arms, and he shall -groan before him with the groanings of a deadly wounded man. - -30:25 But I will strengthen the arms of the king of Babylon, and the -arms of Pharaoh shall fall down; and they shall know that I am the -LORD, when I shall put my sword into the hand of the king of Babylon, -and he shall stretch it out upon the land of Egypt. - -30:26 And I will scatter the Egyptians among the nations, and disperse -them among the countries; and they shall know that I am the LORD. - -31:1 And it came to pass in the eleventh year, in the third month, in -the first day of the month, that the word of the LORD came unto me, -saying, 31:2 Son of man, speak unto Pharaoh king of Egypt, and to his -multitude; Whom art thou like in thy greatness? 31:3 Behold, the -Assyrian was a cedar in Lebanon with fair branches, and with a -shadowing shroud, and of an high stature; and his top was among the -thick boughs. - -31:4 The waters made him great, the deep set him up on high with her -rivers running round about his plants, and sent her little rivers unto -all the trees of the field. - -31:5 Therefore his height was exalted above all the trees of the -field, and his boughs were multiplied, and his branches became long -because of the multitude of waters, when he shot forth. - -31:6 All the fowls of heaven made their nests in his boughs, and under -his branches did all the beasts of the field bring forth their young, -and under his shadow dwelt all great nations. - -31:7 Thus was he fair in his greatness, in the length of his branches: -for his root was by great waters. - -31:8 The cedars in the garden of God could not hide him: the fir trees -were not like his boughs, and the chestnut trees were not like his -branches; nor any tree in the garden of God was like unto him in his -beauty. - -31:9 I have made him fair by the multitude of his branches: so that -all the trees of Eden, that were in the garden of God, envied him. - -31:10 Therefore thus saith the Lord GOD; Because thou hast lifted up -thyself in height, and he hath shot up his top among the thick boughs, -and his heart is lifted up in his height; 31:11 I have therefore -delivered him into the hand of the mighty one of the heathen; he shall -surely deal with him: I have driven him out for his wickedness. - -31:12 And strangers, the terrible of the nations, have cut him off, -and have left him: upon the mountains and in all the valleys his -branches are fallen, and his boughs are broken by all the rivers of -the land; and all the people of the earth are gone down from his -shadow, and have left him. - -31:13 Upon his ruin shall all the fowls of the heaven remain, and all -the beasts of the field shall be upon his branches: 31:14 To the end -that none of all the trees by the waters exalt themselves for their -height, neither shoot up their top among the thick boughs, neither -their trees stand up in their height, all that drink water: for they -are all delivered unto death, to the nether parts of the earth, in the -midst of the children of men, with them that go down to the pit. - -31:15 Thus saith the Lord GOD; In the day when he went down to the -grave I caused a mourning: I covered the deep for him, and I -restrained the floods thereof, and the great waters were stayed: and I -caused Lebanon to mourn for him, and all the trees of the field -fainted for him. - -31:16 I made the nations to shake at the sound of his fall, when I -cast him down to hell with them that descend into the pit: and all the -trees of Eden, the choice and best of Lebanon, all that drink water, -shall be comforted in the nether parts of the earth. - -31:17 They also went down into hell with him unto them that be slain -with the sword; and they that were his arm, that dwelt under his -shadow in the midst of the heathen. - -31:18 To whom art thou thus like in glory and in greatness among the -trees of Eden? yet shalt thou be brought down with the trees of Eden -unto the nether parts of the earth: thou shalt lie in the midst of the -uncircumcised with them that be slain by the sword. This is Pharaoh -and all his multitude, saith the Lord GOD. - -32:1 And it came to pass in the twelfth year, in the twelfth month, in -the first day of the month, that the word of the LORD came unto me, -saying, 32:2 Son of man, take up a lamentation for Pharaoh king of -Egypt, and say unto him, Thou art like a young lion of the nations, -and thou art as a whale in the seas: and thou camest forth with thy -rivers, and troubledst the waters with thy feet, and fouledst their -rivers. - -32:3 Thus saith the Lord GOD; I will therefore spread out my net over -thee with a company of many people; and they shall bring thee up in my -net. - -32:4 Then will I leave thee upon the land, I will cast thee forth upon -the open field, and will cause all the fowls of the heaven to remain -upon thee, and I will fill the beasts of the whole earth with thee. - -32:5 And I will lay thy flesh upon the mountains, and fill the valleys -with thy height. - -32:6 I will also water with thy blood the land wherein thou swimmest, -even to the mountains; and the rivers shall be full of thee. - -32:7 And when I shall put thee out, I will cover the heaven, and make -the stars thereof dark; I will cover the sun with a cloud, and the -moon shall not give her light. - -32:8 All the bright lights of heaven will I make dark over thee, and -set darkness upon thy land, saith the Lord GOD. - -32:9 I will also vex the hearts of many people, when I shall bring thy -destruction among the nations, into the countries which thou hast not -known. - -32:10 Yea, I will make many people amazed at thee, and their kings -shall be horribly afraid for thee, when I shall brandish my sword -before them; and they shall tremble at every moment, every man for his -own life, in the day of thy fall. - -32:11 For thus saith the Lord GOD; The sword of the king of Babylon -shall come upon thee. - -32:12 By the swords of the mighty will I cause thy multitude to fall, -the terrible of the nations, all of them: and they shall spoil the -pomp of Egypt, and all the multitude thereof shall be destroyed. - -32:13 I will destroy also all the beasts thereof from beside the great -waters; neither shall the foot of man trouble them any more, nor the -hoofs of beasts trouble them. - -32:14 Then will I make their waters deep, and cause their rivers to -run like oil, saith the Lord GOD. - -32:15 When I shall make the land of Egypt desolate, and the country -shall be destitute of that whereof it was full, when I shall smite all -them that dwell therein, then shall they know that I am the LORD. - -32:16 This is the lamentation wherewith they shall lament her: the -daughters of the nations shall lament her: they shall lament for her, -even for Egypt, and for all her multitude, saith the Lord GOD. - -32:17 It came to pass also in the twelfth year, in the fifteenth day -of the month, that the word of the LORD came unto me, saying, 32:18 -Son of man, wail for the multitude of Egypt, and cast them down, even -her, and the daughters of the famous nations, unto the nether parts of -the earth, with them that go down into the pit. - -32:19 Whom dost thou pass in beauty? go down, and be thou laid with -the uncircumcised. - -32:20 They shall fall in the midst of them that are slain by the -sword: she is delivered to the sword: draw her and all her multitudes. - -32:21 The strong among the mighty shall speak to him out of the midst -of hell with them that help him: they are gone down, they lie -uncircumcised, slain by the sword. - -32:22 Asshur is there and all her company: his graves are about him: -all of them slain, fallen by the sword: 32:23 Whose graves are set in -the sides of the pit, and her company is round about her grave: all of -them slain, fallen by the sword, which caused terror in the land of -the living. - -32:24 There is Elam and all her multitude round about her grave, all -of them slain, fallen by the sword, which are gone down uncircumcised -into the nether parts of the earth, which caused their terror in the -land of the living; yet have they borne their shame with them that go -down to the pit. - -32:25 They have set her a bed in the midst of the slain with all her -multitude: her graves are round about him: all of them uncircumcised, -slain by the sword: though their terror was caused in the land of the -living, yet have they borne their shame with them that go down to the -pit: he is put in the midst of them that be slain. - -32:26 There is Meshech, Tubal, and all her multitude: her graves are -round about him: all of them uncircumcised, slain by the sword, though -they caused their terror in the land of the living. - -32:27 And they shall not lie with the mighty that are fallen of the -uncircumcised, which are gone down to hell with their weapons of war: -and they have laid their swords under their heads, but their -iniquities shall be upon their bones, though they were the terror of -the mighty in the land of the living. - -32:28 Yea, thou shalt be broken in the midst of the uncircumcised, and -shalt lie with them that are slain with the sword. - -32:29 There is Edom, her kings, and all her princes, which with their -might are laid by them that were slain by the sword: they shall lie -with the uncircumcised, and with them that go down to the pit. - -32:30 There be the princes of the north, all of them, and all the -Zidonians, which are gone down with the slain; with their terror they -are ashamed of their might; and they lie uncircumcised with them that -be slain by the sword, and bear their shame with them that go down to -the pit. - -32:31 Pharaoh shall see them, and shall be comforted over all his -multitude, even Pharaoh and all his army slain by the sword, saith the -Lord GOD. - -32:32 For I have caused my terror in the land of the living: and he -shall be laid in the midst of the uncircumcised with them that are -slain with the sword, even Pharaoh and all his multitude, saith the -Lord GOD. - -33:1 Again the word of the LORD came unto me, saying, 33:2 Son of man, -speak to the children of thy people, and say unto them, When I bring -the sword upon a land, if the people of the land take a man of their -coasts, and set him for their watchman: 33:3 If when he seeth the -sword come upon the land, he blow the trumpet, and warn the people; -33:4 Then whosoever heareth the sound of the trumpet, and taketh not -warning; if the sword come, and take him away, his blood shall be upon -his own head. - -33:5 He heard the sound of the trumpet, and took not warning; his -blood shall be upon him. But he that taketh warning shall deliver his -soul. - -33:6 But if the watchman see the sword come, and blow not the trumpet, -and the people be not warned; if the sword come, and take any person -from among them, he is taken away in his iniquity; but his blood will -I require at the watchman's hand. - -33:7 So thou, O son of man, I have set thee a watchman unto the house -of Israel; therefore thou shalt hear the word at my mouth, and warn -them from me. - -33:8 When I say unto the wicked, O wicked man, thou shalt surely die; -if thou dost not speak to warn the wicked from his way, that wicked -man shall die in his iniquity; but his blood will I require at thine -hand. - -33:9 Nevertheless, if thou warn the wicked of his way to turn from it; -if he do not turn from his way, he shall die in his iniquity; but thou -hast delivered thy soul. - -33:10 Therefore, O thou son of man, speak unto the house of Israel; -Thus ye speak, saying, If our transgressions and our sins be upon us, -and we pine away in them, how should we then live? 33:11 Say unto -them, As I live, saith the Lord GOD, I have no pleasure in the death -of the wicked; but that the wicked turn from his way and live: turn -ye, turn ye from your evil ways; for why will ye die, O house of -Israel? 33:12 Therefore, thou son of man, say unto the children of -thy people, The righteousness of the righteous shall not deliver him -in the day of his transgression: as for the wickedness of the wicked, -he shall not fall thereby in the day that he turneth from his -wickedness; neither shall the righteous be able to live for his -righteousness in the day that he sinneth. - -33:13 When I shall say to the righteous, that he shall surely live; if -he trust to his own righteousness, and commit iniquity, all his -righteousnesses shall not be remembered; but for his iniquity that he -hath committed, he shall die for it. - -33:14 Again, when I say unto the wicked, Thou shalt surely die; if he -turn from his sin, and do that which is lawful and right; 33:15 If the -wicked restore the pledge, give again that he had robbed, walk in the -statutes of life, without committing iniquity; he shall surely live, -he shall not die. - -33:16 None of his sins that he hath committed shall be mentioned unto -him: he hath done that which is lawful and right; he shall surely -live. - -33:17 Yet the children of thy people say, The way of the Lord is not -equal: but as for them, their way is not equal. - -33:18 When the righteous turneth from his righteousness, and -committeth iniquity, he shall even die thereby. - -33:19 But if the wicked turn from his wickedness, and do that which is -lawful and right, he shall live thereby. - -33:20 Yet ye say, The way of the Lord is not equal. O ye house of -Israel, I will judge you every one after his ways. - -33:21 And it came to pass in the twelfth year of our captivity, in the -tenth month, in the fifth day of the month, that one that had escaped -out of Jerusalem came unto me, saying, The city is smitten. - -33:22 Now the hand of the LORD was upon me in the evening, afore he -that was escaped came; and had opened my mouth, until he came to me in -the morning; and my mouth was opened, and I was no more dumb. - -33:23 Then the word of the LORD came unto me, saying, 33:24 Son of -man, they that inhabit those wastes of the land of Israel speak, -saying, Abraham was one, and he inherited the land: but we are many; -the land is given us for inheritance. - -33:25 Wherefore say unto them, Thus saith the Lord GOD; Ye eat with -the blood, and lift up your eyes toward your idols, and shed blood: -and shall ye possess the land? 33:26 Ye stand upon your sword, ye -work abomination, and ye defile every one his neighbour's wife: and -shall ye possess the land? 33:27 Say thou thus unto them, Thus saith -the Lord GOD; As I live, surely they that are in the wastes shall fall -by the sword, and him that is in the open field will I give to the -beasts to be devoured, and they that be in the forts and in the caves -shall die of the pestilence. - -33:28 For I will lay the land most desolate, and the pomp of her -strength shall cease; and the mountains of Israel shall be desolate, -that none shall pass through. - -33:29 Then shall they know that I am the LORD, when I have laid the -land most desolate because of all their abominations which they have -committed. - -33:30 Also, thou son of man, the children of thy people still are -talking against thee by the walls and in the doors of the houses, and -speak one to another, every one to his brother, saying, Come, I pray -you, and hear what is the word that cometh forth from the LORD. - -33:31 And they come unto thee as the people cometh, and they sit -before thee as my people, and they hear thy words, but they will not -do them: for with their mouth they shew much love, but their heart -goeth after their covetousness. - -33:32 And, lo, thou art unto them as a very lovely song of one that -hath a pleasant voice, and can play well on an instrument: for they -hear thy words, but they do them not. - -33:33 And when this cometh to pass, (lo, it will come,) then shall -they know that a prophet hath been among them. - -34:1 And the word of the LORD came unto me, saying, 34:2 Son of man, -prophesy against the shepherds of Israel, prophesy, and say unto them, -Thus saith the Lord GOD unto the shepherds; Woe be to the shepherds of -Israel that do feed themselves! should not the shepherds feed the -flocks? 34:3 Ye eat the fat, and ye clothe you with the wool, ye kill -them that are fed: but ye feed not the flock. - -34:4 The diseased have ye not strengthened, neither have ye healed -that which was sick, neither have ye bound up that which was broken, -neither have ye brought again that which was driven away, neither have -ye sought that which was lost; but with force and with cruelty have ye -ruled them. - -34:5 And they were scattered, because there is no shepherd: and they -became meat to all the beasts of the field, when they were scattered. - -34:6 My sheep wandered through all the mountains, and upon every high -hill: yea, my flock was scattered upon all the face of the earth, and -none did search or seek after them. - -34:7 Therefore, ye shepherds, hear the word of the LORD; 34:8 As I -live, saith the Lord GOD, surely because my flock became a prey, and -my flock became meat to every beast of the field, because there was no -shepherd, neither did my shepherds search for my flock, but the -shepherds fed themselves, and fed not my flock; 34:9 Therefore, O ye -shepherds, hear the word of the LORD; 34:10 Thus saith the Lord GOD; -Behold, I am against the shepherds; and I will require my flock at -their hand, and cause them to cease from feeding the flock; neither -shall the shepherds feed themselves any more; for I will deliver my -flock from their mouth, that they may not be meat for them. - -34:11 For thus saith the Lord GOD; Behold, I, even I, will both search -my sheep, and seek them out. - -34:12 As a shepherd seeketh out his flock in the day that he is among -his sheep that are scattered; so will I seek out my sheep, and will -deliver them out of all places where they have been scattered in the -cloudy and dark day. - -34:13 And I will bring them out from the people, and gather them from -the countries, and will bring them to their own land, and feed them -upon the mountains of Israel by the rivers, and in all the inhabited -places of the country. - -34:14 I will feed them in a good pasture, and upon the high mountains -of Israel shall their fold be: there shall they lie in a good fold, -and in a fat pasture shall they feed upon the mountains of Israel. - -34:15 I will feed my flock, and I will cause them to lie down, saith -the Lord GOD. - -34:16 I will seek that which was lost, and bring again that which was -driven away, and will bind up that which was broken, and will -strengthen that which was sick: but I will destroy the fat and the -strong; I will feed them with judgment. - -34:17 And as for you, O my flock, thus saith the Lord GOD; Behold, I -judge between cattle and cattle, between the rams and the he goats. - -34:18 Seemeth it a small thing unto you to have eaten up the good -pasture, but ye must tread down with your feet the residue of your -pastures? and to have drunk of the deep waters, but ye must foul the -residue with your feet? 34:19 And as for my flock, they eat that -which ye have trodden with your feet; and they drink that which ye -have fouled with your feet. - -34:20 Therefore thus saith the Lord GOD unto them; Behold, I, even I, -will judge between the fat cattle and between the lean cattle. - -34:21 Because ye have thrust with side and with shoulder, and pushed -all the diseased with your horns, till ye have scattered them abroad; -34:22 Therefore will I save my flock, and they shall no more be a -prey; and I will judge between cattle and cattle. - -34:23 And I will set up one shepherd over them, and he shall feed -them, even my servant David; he shall feed them, and he shall be their -shepherd. - -34:24 And I the LORD will be their God, and my servant David a prince -among them; I the LORD have spoken it. - -34:25 And I will make with them a covenant of peace, and will cause -the evil beasts to cease out of the land: and they shall dwell safely -in the wilderness, and sleep in the woods. - -34:26 And I will make them and the places round about my hill a -blessing; and I will cause the shower to come down in his season; -there shall be showers of blessing. - -34:27 And the tree of the field shall yield her fruit, and the earth -shall yield her increase, and they shall be safe in their land, and -shall know that I am the LORD, when I have broken the bands of their -yoke, and delivered them out of the hand of those that served -themselves of them. - -34:28 And they shall no more be a prey to the heathen, neither shall -the beast of the land devour them; but they shall dwell safely, and -none shall make them afraid. - -34:29 And I will raise up for them a plant of renown, and they shall -be no more consumed with hunger in the land, neither bear the shame of -the heathen any more. - -34:30 Thus shall they know that I the LORD their God am with them, and -that they, even the house of Israel, are my people, saith the Lord -GOD. - -34:31 And ye my flock, the flock of my pasture, are men, and I am your -God, saith the Lord GOD. - -35:1 Moreover the word of the LORD came unto me, saying, 35:2 Son of -man, set thy face against mount Seir, and prophesy against it, 35:3 -And say unto it, Thus saith the Lord GOD; Behold, O mount Seir, I am -against thee, and I will stretch out mine hand against thee, and I -will make thee most desolate. - -35:4 I will lay thy cities waste, and thou shalt be desolate, and thou -shalt know that I am the LORD. - -35:5 Because thou hast had a perpetual hatred, and hast shed the blood -of the children of Israel by the force of the sword in the time of -their calamity, in the time that their iniquity had an end: 35:6 -Therefore, as I live, saith the Lord GOD, I will prepare thee unto -blood, and blood shall pursue thee: sith thou hast not hated blood, -even blood shall pursue thee. - -35:7 Thus will I make mount Seir most desolate, and cut off from it -him that passeth out and him that returneth. - -35:8 And I will fill his mountains with his slain men: in thy hills, -and in thy valleys, and in all thy rivers, shall they fall that are -slain with the sword. - -35:9 I will make thee perpetual desolations, and thy cities shall not -return: and ye shall know that I am the LORD. - -35:10 Because thou hast said, These two nations and these two -countries shall be mine, and we will possess it; whereas the LORD was -there: 35:11 Therefore, as I live, saith the Lord GOD, I will even do -according to thine anger, and according to thine envy which thou hast -used out of thy hatred against them; and I will make myself known -among them, when I have judged thee. - -35:12 And thou shalt know that I am the LORD, and that I have heard -all thy blasphemies which thou hast spoken against the mountains of -Israel, saying, They are laid desolate, they are given us to consume. - -35:13 Thus with your mouth ye have boasted against me, and have -multiplied your words against me: I have heard them. - -35:14 Thus saith the Lord GOD; When the whole earth rejoiceth, I will -make thee desolate. - -35:15 As thou didst rejoice at the inheritance of the house of Israel, -because it was desolate, so will I do unto thee: thou shalt be -desolate, O mount Seir, and all Idumea, even all of it: and they shall -know that I am the LORD. - -36:1 Also, thou son of man, prophesy unto the mountains of Israel, and -say, Ye mountains of Israel, hear the word of the LORD: 36:2 Thus -saith the Lord GOD; Because the enemy hath said against you, Aha, even -the ancient high places are ours in possession: 36:3 Therefore -prophesy and say, Thus saith the Lord GOD; Because they have made you -desolate, and swallowed you up on every side, that ye might be a -possession unto the residue of the heathen, and ye are taken up in the -lips of talkers, and are an infamy of the people: 36:4 Therefore, ye -mountains of Israel, hear the word of the Lord GOD; Thus saith the -Lord GOD to the mountains, and to the hills, to the rivers, and to the -valleys, to the desolate wastes, and to the cities that are forsaken, -which became a prey and derision to the residue of the heathen that -are round about; 36:5 Therefore thus saith the Lord GOD; Surely in the -fire of my jealousy have I spoken against the residue of the heathen, -and against all Idumea, which have appointed my land into their -possession with the joy of all their heart, with despiteful minds, to -cast it out for a prey. - -36:6 Prophesy therefore concerning the land of Israel, and say unto -the mountains, and to the hills, to the rivers, and to the valleys, -Thus saith the Lord GOD; Behold, I have spoken in my jealousy and in -my fury, because ye have borne the shame of the heathen: 36:7 -Therefore thus saith the Lord GOD; I have lifted up mine hand, Surely -the heathen that are about you, they shall bear their shame. - -36:8 But ye, O mountains of Israel, ye shall shoot forth your -branches, and yield your fruit to my people of Israel; for they are at -hand to come. - -36:9 For, behold, I am for you, and I will turn unto you, and ye shall -be tilled and sown: 36:10 And I will multiply men upon you, all the -house of Israel, even all of it: and the cities shall be inhabited, -and the wastes shall be builded: 36:11 And I will multiply upon you -man and beast; and they shall increase and bring fruit: and I will -settle you after your old estates, and will do better unto you than at -your beginnings: and ye shall know that I am the LORD. - -36:12 Yea, I will cause men to walk upon you, even my people Israel; -and they shall possess thee, and thou shalt be their inheritance, and -thou shalt no more henceforth bereave them of men. - -36:13 Thus saith the Lord GOD; Because they say unto you, Thou land -devourest up men, and hast bereaved thy nations: 36:14 Therefore thou -shalt devour men no more, neither bereave thy nations any more, saith -the Lord GOD. - -36:15 Neither will I cause men to hear in thee the shame of the -heathen any more, neither shalt thou bear the reproach of the people -any more, neither shalt thou cause thy nations to fall any more, saith -the Lord GOD. - -36:16 Moreover the word of the LORD came unto me, saying, 36:17 Son of -man, when the house of Israel dwelt in their own land, they defiled it -by their own way and by their doings: their way was before me as the -uncleanness of a removed woman. - -36:18 Wherefore I poured my fury upon them for the blood that they had -shed upon the land, and for their idols wherewith they had polluted -it: 36:19 And I scattered them among the heathen, and they were -dispersed through the countries: according to their way and according -to their doings I judged them. - -36:20 And when they entered unto the heathen, whither they went, they -profaned my holy name, when they said to them, These are the people of -the LORD, and are gone forth out of his land. - -36:21 But I had pity for mine holy name, which the house of Israel had -profaned among the heathen, whither they went. - -36:22 Therefore say unto the house of Israel, thus saith the Lord GOD; -I do not this for your sakes, O house of Israel, but for mine holy -name's sake, which ye have profaned among the heathen, whither ye -went. - -36:23 And I will sanctify my great name, which was profaned among the -heathen, which ye have profaned in the midst of them; and the heathen -shall know that I am the LORD, saith the Lord GOD, when I shall be -sanctified in you before their eyes. - -36:24 For I will take you from among the heathen, and gather you out -of all countries, and will bring you into your own land. - -36:25 Then will I sprinkle clean water upon you, and ye shall be -clean: from all your filthiness, and from all your idols, will I -cleanse you. - -36:26 A new heart also will I give you, and a new spirit will I put -within you: and I will take away the stony heart out of your flesh, -and I will give you an heart of flesh. - -36:27 And I will put my spirit within you, and cause you to walk in my -statutes, and ye shall keep my judgments, and do them. - -36:28 And ye shall dwell in the land that I gave to your fathers; and -ye shall be my people, and I will be your God. - -36:29 I will also save you from all your uncleannesses: and I will -call for the corn, and will increase it, and lay no famine upon you. - -36:30 And I will multiply the fruit of the tree, and the increase of -the field, that ye shall receive no more reproach of famine among the -heathen. - -36:31 Then shall ye remember your own evil ways, and your doings that -were not good, and shall lothe yourselves in your own sight for your -iniquities and for your abominations. - -36:32 Not for your sakes do I this, saith the Lord GOD, be it known -unto you: be ashamed and confounded for your own ways, O house of -Israel. - -36:33 Thus saith the Lord GOD; In the day that I shall have cleansed -you from all your iniquities I will also cause you to dwell in the -cities, and the wastes shall be builded. - -36:34 And the desolate land shall be tilled, whereas it lay desolate -in the sight of all that passed by. - -36:35 And they shall say, This land that was desolate is become like -the garden of Eden; and the waste and desolate and ruined cities are -become fenced, and are inhabited. - -36:36 Then the heathen that are left round about you shall know that I -the LORD build the ruined places, and plant that that was desolate: I -the LORD have spoken it, and I will do it. - -36:37 Thus saith the Lord GOD; I will yet for this be enquired of by -the house of Israel, to do it for them; I will increase them with men -like a flock. - -36:38 As the holy flock, as the flock of Jerusalem in her solemn -feasts; so shall the waste cities be filled with flocks of men: and -they shall know that I am the LORD. - -37:1 The hand of the LORD was upon me, and carried me out in the -spirit of the LORD, and set me down in the midst of the valley which -was full of bones, 37:2 And caused me to pass by them round about: -and, behold, there were very many in the open valley; and, lo, they -were very dry. - -37:3 And he said unto me, Son of man, can these bones live? And I -answered, O Lord GOD, thou knowest. - -37:4 Again he said unto me, Prophesy upon these bones, and say unto -them, O ye dry bones, hear the word of the LORD. - -37:5 Thus saith the Lord GOD unto these bones; Behold, I will cause -breath to enter into you, and ye shall live: 37:6 And I will lay -sinews upon you, and will bring up flesh upon you, and cover you with -skin, and put breath in you, and ye shall live; and ye shall know that -I am the LORD. - -37:7 So I prophesied as I was commanded: and as I prophesied, there -was a noise, and behold a shaking, and the bones came together, bone -to his bone. - -37:8 And when I beheld, lo, the sinews and the flesh came up upon -them, and the skin covered them above: but there was no breath in -them. - -37:9 Then said he unto me, Prophesy unto the wind, prophesy, son of -man, and say to the wind, Thus saith the Lord GOD; Come from the four -winds, O breath, and breathe upon these slain, that they may live. - -37:10 So I prophesied as he commanded me, and the breath came into -them, and they lived, and stood up upon their feet, an exceeding great -army. - -37:11 Then he said unto me, Son of man, these bones are the whole -house of Israel: behold, they say, Our bones are dried, and our hope -is lost: we are cut off for our parts. - -37:12 Therefore prophesy and say unto them, Thus saith the Lord GOD; -Behold, O my people, I will open your graves, and cause you to come up -out of your graves, and bring you into the land of Israel. - -37:13 And ye shall know that I am the LORD, when I have opened your -graves, O my people, and brought you up out of your graves, 37:14 And -shall put my spirit in you, and ye shall live, and I shall place you -in your own land: then shall ye know that I the LORD have spoken it, -and performed it, saith the LORD. - -37:15 The word of the LORD came again unto me, saying, 37:16 Moreover, -thou son of man, take thee one stick, and write upon it, For Judah, -and for the children of Israel his companions: then take another -stick, and write upon it, For Joseph, the stick of Ephraim and for all -the house of Israel his companions: 37:17 And join them one to another -into one stick; and they shall become one in thine hand. - -37:18 And when the children of thy people shall speak unto thee, -saying, Wilt thou not shew us what thou meanest by these? 37:19 Say -unto them, Thus saith the Lord GOD; Behold, I will take the stick of -Joseph, which is in the hand of Ephraim, and the tribes of Israel his -fellows, and will put them with him, even with the stick of Judah, and -make them one stick, and they shall be one in mine hand. - -37:20 And the sticks whereon thou writest shall be in thine hand -before their eyes. - -37:21 And say unto them, Thus saith the Lord GOD; Behold, I will take -the children of Israel from among the heathen, whither they be gone, -and will gather them on every side, and bring them into their own -land: 37:22 And I will make them one nation in the land upon the -mountains of Israel; and one king shall be king to them all: and they -shall be no more two nations, neither shall they be divided into two -kingdoms any more at all. - -37:23 Neither shall they defile themselves any more with their idols, -nor with their detestable things, nor with any of their -transgressions: but I will save them out of all their dwellingplaces, -wherein they have sinned, and will cleanse them: so shall they be my -people, and I will be their God. - -37:24 And David my servant shall be king over them; and they all shall -have one shepherd: they shall also walk in my judgments, and observe -my statutes, and do them. - -37:25 And they shall dwell in the land that I have given unto Jacob my -servant, wherein your fathers have dwelt; and they shall dwell -therein, even they, and their children, and their children's children -for ever: and my servant David shall be their prince for ever. - -37:26 Moreover I will make a covenant of peace with them; it shall be -an everlasting covenant with them: and I will place them, and multiply -them, and will set my sanctuary in the midst of them for evermore. - -37:27 My tabernacle also shall be with them: yea, I will be their God, -and they shall be my people. - -37:28 And the heathen shall know that I the LORD do sanctify Israel, -when my sanctuary shall be in the midst of them for evermore. - -38:1 And the word of the LORD came unto me, saying, 38:2 Son of man, -set thy face against Gog, the land of Magog, the chief prince of -Meshech and Tubal, and prophesy against him, 38:3 And say, Thus saith -the Lord GOD; Behold, I am against thee, O Gog, the chief prince of -Meshech and Tubal: 38:4 And I will turn thee back, and put hooks into -thy jaws, and I will bring thee forth, and all thine army, horses and -horsemen, all of them clothed with all sorts of armour, even a great -company with bucklers and shields, all of them handling swords: 38:5 -Persia, Ethiopia, and Libya with them; all of them with shield and -helmet: 38:6 Gomer, and all his bands; the house of Togarmah of the -north quarters, and all his bands: and many people with thee. - -38:7 Be thou prepared, and prepare for thyself, thou, and all thy -company that are assembled unto thee, and be thou a guard unto them. - -38:8 After many days thou shalt be visited: in the latter years thou -shalt come into the land that is brought back from the sword, and is -gathered out of many people, against the mountains of Israel, which -have been always waste: but it is brought forth out of the nations, -and they shall dwell safely all of them. - -38:9 Thou shalt ascend and come like a storm, thou shalt be like a -cloud to cover the land, thou, and all thy bands, and many people with -thee. - -38:10 Thus saith the Lord GOD; It shall also come to pass, that at the -same time shall things come into thy mind, and thou shalt think an -evil thought: 38:11 And thou shalt say, I will go up to the land of -unwalled villages; I will go to them that are at rest, that dwell -safely, all of them dwelling without walls, and having neither bars -nor gates, 38:12 To take a spoil, and to take a prey; to turn thine -hand upon the desolate places that are now inhabited, and upon the -people that are gathered out of the nations, which have gotten cattle -and goods, that dwell in the midst of the land. - -38:13 Sheba, and Dedan, and the merchants of Tarshish, with all the -young lions thereof, shall say unto thee, Art thou come to take a -spoil? hast thou gathered thy company to take a prey? to carry away -silver and gold, to take away cattle and goods, to take a great spoil? -38:14 Therefore, son of man, prophesy and say unto Gog, Thus saith the -Lord GOD; In that day when my people of Israel dwelleth safely, shalt -thou not know it? 38:15 And thou shalt come from thy place out of the -north parts, thou, and many people with thee, all of them riding upon -horses, a great company, and a mighty army: 38:16 And thou shalt come -up against my people of Israel, as a cloud to cover the land; it shall -be in the latter days, and I will bring thee against my land, that the -heathen may know me, when I shall be sanctified in thee, O Gog, before -their eyes. - -38:17 Thus saith the Lord GOD; Art thou he of whom I have spoken in -old time by my servants the prophets of Israel, which prophesied in -those days many years that I would bring thee against them? 38:18 And -it shall come to pass at the same time when Gog shall come against the -land of Israel, saith the Lord GOD, that my fury shall come up in my -face. - -38:19 For in my jealousy and in the fire of my wrath have I spoken, -Surely in that day there shall be a great shaking in the land of -Israel; 38:20 So that the fishes of the sea, and the fowls of the -heaven, and the beasts of the field, and all creeping things that -creep upon the earth, and all the men that are upon the face of the -earth, shall shake at my presence, and the mountains shall be thrown -down, and the steep places shall fall, and every wall shall fall to -the ground. - -38:21 And I will call for a sword against him throughout all my -mountains, saith the Lord GOD: every man's sword shall be against his -brother. - -38:22 And I will plead against him with pestilence and with blood; and -I will rain upon him, and upon his bands, and upon the many people -that are with him, an overflowing rain, and great hailstones, fire, -and brimstone. - -38:23 Thus will I magnify myself, and sanctify myself; and I will be -known in the eyes of many nations, and they shall know that I am the -LORD. - -39:1 Therefore, thou son of man, prophesy against Gog, and say, Thus -saith the Lord GOD; Behold, I am against thee, O Gog, the chief prince -of Meshech and Tubal: 39:2 And I will turn thee back, and leave but -the sixth part of thee, and will cause thee to come up from the north -parts, and will bring thee upon the mountains of Israel: 39:3 And I -will smite thy bow out of thy left hand, and will cause thine arrows -to fall out of thy right hand. - -39:4 Thou shalt fall upon the mountains of Israel, thou, and all thy -bands, and the people that is with thee: I will give thee unto the -ravenous birds of every sort, and to the beasts of the field to be -devoured. - -39:5 Thou shalt fall upon the open field: for I have spoken it, saith -the Lord GOD. - -39:6 And I will send a fire on Magog, and among them that dwell -carelessly in the isles: and they shall know that I am the LORD. - -39:7 So will I make my holy name known in the midst of my people -Israel; and I will not let them pollute my holy name any more: and the -heathen shall know that I am the LORD, the Holy One in Israel. - -39:8 Behold, it is come, and it is done, saith the Lord GOD; this is -the day whereof I have spoken. - -39:9 And they that dwell in the cities of Israel shall go forth, and -shall set on fire and burn the weapons, both the shields and the -bucklers, the bows and the arrows, and the handstaves, and the spears, -and they shall burn them with fire seven years: 39:10 So that they -shall take no wood out of the field, neither cut down any out of the -forests; for they shall burn the weapons with fire: and they shall -spoil those that spoiled them, and rob those that robbed them, saith -the Lord GOD. - -39:11 And it shall come to pass in that day, that I will give unto Gog -a place there of graves in Israel, the valley of the passengers on the -east of the sea: and it shall stop the noses of the passengers: and -there shall they bury Gog and all his multitude: and they shall call -it The valley of Hamongog. - -39:12 And seven months shall the house of Israel be burying of them, -that they may cleanse the land. - -39:13 Yea, all the people of the land shall bury them; and it shall be -to them a renown the day that I shall be glorified, saith the Lord -GOD. - -39:14 And they shall sever out men of continual employment, passing -through the land to bury with the passengers those that remain upon -the face of the earth, to cleanse it: after the end of seven months -shall they search. - -39:15 And the passengers that pass through the land, when any seeth a -man's bone, then shall he set up a sign by it, till the buriers have -buried it in the valley of Hamongog. - -39:16 And also the name of the city shall be Hamonah. Thus shall they -cleanse the land. - -39:17 And, thou son of man, thus saith the Lord GOD; Speak unto every -feathered fowl, and to every beast of the field, Assemble yourselves, -and come; gather yourselves on every side to my sacrifice that I do -sacrifice for you, even a great sacrifice upon the mountains of -Israel, that ye may eat flesh, and drink blood. - -39:18 Ye shall eat the flesh of the mighty, and drink the blood of the -princes of the earth, of rams, of lambs, and of goats, of bullocks, -all of them fatlings of Bashan. - -39:19 And ye shall eat fat till ye be full, and drink blood till ye be -drunken, of my sacrifice which I have sacrificed for you. - -39:20 Thus ye shall be filled at my table with horses and chariots, -with mighty men, and with all men of war, saith the Lord GOD. - -39:21 And I will set my glory among the heathen, and all the heathen -shall see my judgment that I have executed, and my hand that I have -laid upon them. - -39:22 So the house of Israel shall know that I am the LORD their God -from that day and forward. - -39:23 And the heathen shall know that the house of Israel went into -captivity for their iniquity: because they trespassed against me, -therefore hid I my face from them, and gave them into the hand of -their enemies: so fell they all by the sword. - -39:24 According to their uncleanness and according to their -transgressions have I done unto them, and hid my face from them. - -39:25 Therefore thus saith the Lord GOD; Now will I bring again the -captivity of Jacob, and have mercy upon the whole house of Israel, and -will be jealous for my holy name; 39:26 After that they have borne -their shame, and all their trespasses whereby they have trespassed -against me, when they dwelt safely in their land, and none made them -afraid. - -39:27 When I have brought them again from the people, and gathered -them out of their enemies' lands, and am sanctified in them in the -sight of many nations; 39:28 Then shall they know that I am the LORD -their God, which caused them to be led into captivity among the -heathen: but I have gathered them unto their own land, and have left -none of them any more there. - -39:29 Neither will I hide my face any more from them: for I have -poured out my spirit upon the house of Israel, saith the Lord GOD. - -40:1 In the five and twentieth year of our captivity, in the beginning -of the year, in the tenth day of the month, in the fourteenth year -after that the city was smitten, in the selfsame day the hand of the -LORD was upon me, and brought me thither. - -40:2 In the visions of God brought he me into the land of Israel, and -set me upon a very high mountain, by which was as the frame of a city -on the south. - -40:3 And he brought me thither, and, behold, there was a man, whose -appearance was like the appearance of brass, with a line of flax in -his hand, and a measuring reed; and he stood in the gate. - -40:4 And the man said unto me, Son of man, behold with thine eyes, and -hear with thine ears, and set thine heart upon all that I shall shew -thee; for to the intent that I might shew them unto thee art thou -brought hither: declare all that thou seest to the house of Israel. - -40:5 And behold a wall on the outside of the house round about, and in -the man's hand a measuring reed of six cubits long by the cubit and an -hand breadth: so he measured the breadth of the building, one reed; -and the height, one reed. - -40:6 Then came he unto the gate which looketh toward the east, and -went up the stairs thereof, and measured the threshold of the gate, -which was one reed broad; and the other threshold of the gate, which -was one reed broad. - -40:7 And every little chamber was one reed long, and one reed broad; -and between the little chambers were five cubits; and the threshold of -the gate by the porch of the gate within was one reed. - -40:8 He measured also the porch of the gate within, one reed. - -40:9 Then measured he the porch of the gate, eight cubits; and the -posts thereof, two cubits; and the porch of the gate was inward. - -40:10 And the little chambers of the gate eastward were three on this -side, and three on that side; they three were of one measure: and the -posts had one measure on this side and on that side. - -40:11 And he measured the breadth of the entry of the gate, ten -cubits; and the length of the gate, thirteen cubits. - -40:12 The space also before the little chambers was one cubit on this -side, and the space was one cubit on that side: and the little -chambers were six cubits on this side, and six cubits on that side. - -40:13 He measured then the gate from the roof of one little chamber to -the roof of another: the breadth was five and twenty cubits, door -against door. - -40:14 He made also posts of threescore cubits, even unto the post of -the court round about the gate. - -40:15 And from the face of the gate of the entrance unto the face of -the porch of the inner gate were fifty cubits. - -40:16 And there were narrow windows to the little chambers, and to -their posts within the gate round about, and likewise to the arches: -and windows were round about inward: and upon each post were palm -trees. - -40:17 Then brought he me into the outward court, and, lo, there were -chambers, and a pavement made for the court round about: thirty -chambers were upon the pavement. - -40:18 And the pavement by the side of the gates over against the -length of the gates was the lower pavement. - -40:19 Then he measured the breadth from the forefront of the lower -gate unto the forefront of the inner court without, an hundred cubits -eastward and northward. - -40:20 And the gate of the outward court that looked toward the north, -he measured the length thereof, and the breadth thereof. - -40:21 And the little chambers thereof were three on this side and -three on that side; and the posts thereof and the arches thereof were -after the measure of the first gate: the length thereof was fifty -cubits, and the breadth five and twenty cubits. - -40:22 And their windows, and their arches, and their palm trees, were -after the measure of the gate that looketh toward the east; and they -went up unto it by seven steps; and the arches thereof were before -them. - -40:23 And the gate of the inner court was over against the gate toward -the north, and toward the east; and he measured from gate to gate an -hundred cubits. - -40:24 After that he brought me toward the south, and behold a gate -toward the south: and he measured the posts thereof and the arches -thereof according to these measures. - -40:25 And there were windows in it and in the arches thereof round -about, like those windows: the length was fifty cubits, and the -breadth five and twenty cubits. - -40:26 And there were seven steps to go up to it, and the arches -thereof were before them: and it had palm trees, one on this side, and -another on that side, upon the posts thereof. - -40:27 And there was a gate in the inner court toward the south: and he -measured from gate to gate toward the south an hundred cubits. - -40:28 And he brought me to the inner court by the south gate: and he -measured the south gate according to these measures; 40:29 And the -little chambers thereof, and the posts thereof, and the arches -thereof, according to these measures: and there were windows in it and -in the arches thereof round about: it was fifty cubits long, and five -and twenty cubits broad. - -40:30 And the arches round about were five and twenty cubits long, and -five cubits broad. - -40:31 And the arches thereof were toward the utter court; and palm -trees were upon the posts thereof: and the going up to it had eight -steps. - -40:32 And he brought me into the inner court toward the east: and he -measured the gate according to these measures. - -40:33 And the little chambers thereof, and the posts thereof, and the -arches thereof, were according to these measures: and there were -windows therein and in the arches thereof round about: it was fifty -cubits long, and five and twenty cubits broad. - -40:34 And the arches thereof were toward the outward court; and palm -trees were upon the posts thereof, on this side, and on that side: and -the going up to it had eight steps. - -40:35 And he brought me to the north gate, and measured it according -to these measures; 40:36 The little chambers thereof, the posts -thereof, and the arches thereof, and the windows to it round about: -the length was fifty cubits, and the breadth five and twenty cubits. - -40:37 And the posts thereof were toward the utter court; and palm -trees were upon the posts thereof, on this side, and on that side: and -the going up to it had eight steps. - -40:38 And the chambers and the entries thereof were by the posts of -the gates, where they washed the burnt offering. - -40:39 And in the porch of the gate were two tables on this side, and -two tables on that side, to slay thereon the burnt offering and the -sin offering and the trespass offering. - -40:40 And at the side without, as one goeth up to the entry of the -north gate, were two tables; and on the other side, which was at the -porch of the gate, were two tables. - -40:41 Four tables were on this side, and four tables on that side, by -the side of the gate; eight tables, whereupon they slew their -sacrifices. - -40:42 And the four tables were of hewn stone for the burnt offering, -of a cubit and an half long, and a cubit and an half broad, and one -cubit high: whereupon also they laid the instruments wherewith they -slew the burnt offering and the sacrifice. - -40:43 And within were hooks, an hand broad, fastened round about: and -upon the tables was the flesh of the offering. - -40:44 And without the inner gate were the chambers of the singers in -the inner court, which was at the side of the north gate; and their -prospect was toward the south: one at the side of the east gate having -the prospect toward the north. - -40:45 And he said unto me, This chamber, whose prospect is toward the -south, is for the priests, the keepers of the charge of the house. - -40:46 And the chamber whose prospect is toward the north is for the -priests, the keepers of the charge of the altar: these are the sons of -Zadok among the sons of Levi, which come near to the LORD to minister -unto him. - -40:47 So he measured the court, an hundred cubits long, and an hundred -cubits broad, foursquare; and the altar that was before the house. - -40:48 And he brought me to the porch of the house, and measured each -post of the porch, five cubits on this side, and five cubits on that -side: and the breadth of the gate was three cubits on this side, and -three cubits on that side. - -40:49 The length of the porch was twenty cubits, and the breadth -eleven cubits, and he brought me by the steps whereby they went up to -it: and there were pillars by the posts, one on this side, and another -on that side. - -41:1 Afterward he brought me to the temple, and measured the posts, -six cubits broad on the one side, and six cubits broad on the other -side, which was the breadth of the tabernacle. - -41:2 And the breadth of the door was ten cubits; and the sides of the -door were five cubits on the one side, and five cubits on the other -side: and he measured the length thereof, forty cubits: and the -breadth, twenty cubits. - -41:3 Then went he inward, and measured the post of the door, two -cubits; and the door, six cubits; and the breadth of the door, seven -cubits. - -41:4 So he measured the length thereof, twenty cubits; and the -breadth, twenty cubits, before the temple: and he said unto me, This -is the most holy place. - -41:5 After he measured the wall of the house, six cubits; and the -breadth of every side chamber, four cubits, round about the house on -every side. - -41:6 And the side chambers were three, one over another, and thirty in -order; and they entered into the wall which was of the house for the -side chambers round about, that they might have hold, but they had not -hold in the wall of the house. - -41:7 And there was an enlarging, and a winding about still upward to -the side chambers: for the winding about of the house went still -upward round about the house: therefore the breadth of the house was -still upward, and so increased from the lowest chamber to the highest -by the midst. - -41:8 I saw also the height of the house round about: the foundations -of the side chambers were a full reed of six great cubits. - -41:9 The thickness of the wall, which was for the side chamber -without, was five cubits: and that which was left was the place of the -side chambers that were within. - -41:10 And between the chambers was the wideness of twenty cubits round -about the house on every side. - -41:11 And the doors of the side chambers were toward the place that -was left, one door toward the north, and another door toward the -south: and the breadth of the place that was left was five cubits -round about. - -41:12 Now the building that was before the separate place at the end -toward the west was seventy cubits broad; and the wall of the building -was five cubits thick round about, and the length thereof ninety -cubits. - -41:13 So he measured the house, an hundred cubits long; and the -separate place, and the building, with the walls thereof, an hundred -cubits long; 41:14 Also the breadth of the face of the house, and of -the separate place toward the east, an hundred cubits. - -41:15 And he measured the length of the building over against the -separate place which was behind it, and the galleries thereof on the -one side and on the other side, an hundred cubits, with the inner -temple, and the porches of the court; 41:16 The door posts, and the -narrow windows, and the galleries round about on their three stories, -over against the door, cieled with wood round about, and from the -ground up to the windows, and the windows were covered; 41:17 To that -above the door, even unto the inner house, and without, and by all the -wall round about within and without, by measure. - -41:18 And it was made with cherubims and palm trees, so that a palm -tree was between a cherub and a cherub; and every cherub had two -faces; 41:19 So that the face of a man was toward the palm tree on the -one side, and the face of a young lion toward the palm tree on the -other side: it was made through all the house round about. - -41:20 From the ground unto above the door were cherubims and palm -trees made, and on the wall of the temple. - -41:21 The posts of the temple were squared, and the face of the -sanctuary; the appearance of the one as the appearance of the other. - -41:22 The altar of wood was three cubits high, and the length thereof -two cubits; and the corners thereof, and the length thereof, and the -walls thereof, were of wood: and he said unto me, This is the table -that is before the LORD. - -41:23 And the temple and the sanctuary had two doors. - -41:24 And the doors had two leaves apiece, two turning leaves; two -leaves for the one door, and two leaves for the other door. - -41:25 And there were made on them, on the doors of the temple, -cherubims and palm trees, like as were made upon the walls; and there -were thick planks upon the face of the porch without. - -41:26 And there were narrow windows and palm trees on the one side and -on the other side, on the sides of the porch, and upon the side -chambers of the house, and thick planks. - -42:1 Then he brought me forth into the utter court, the way toward the -north: and he brought me into the chamber that was over against the -separate place, and which was before the building toward the north. - -42:2 Before the length of an hundred cubits was the north door, and -the breadth was fifty cubits. - -42:3 Over against the twenty cubits which were for the inner court, -and over against the pavement which was for the utter court, was -gallery against gallery in three stories. - -42:4 And before the chambers was a walk to ten cubits breadth inward, -a way of one cubit; and their doors toward the north. - -42:5 Now the upper chambers were shorter: for the galleries were -higher than these, than the lower, and than the middlemost of the -building. - -42:6 For they were in three stories, but had not pillars as the -pillars of the courts: therefore the building was straitened more than -the lowest and the middlemost from the ground. - -42:7 And the wall that was without over against the chambers, toward -the utter court on the forepart of the chambers, the length thereof -was fifty cubits. - -42:8 For the length of the chambers that were in the utter court was -fifty cubits: and, lo, before the temple were an hundred cubits. - -42:9 And from under these chambers was the entry on the east side, as -one goeth into them from the utter court. - -42:10 The chambers were in the thickness of the wall of the court -toward the east, over against the separate place, and over against the -building. - -42:11 And the way before them was like the appearance of the chambers -which were toward the north, as long as they, and as broad as they: -and all their goings out were both according to their fashions, and -according to their doors. - -42:12 And according to the doors of the chambers that were toward the -south was a door in the head of the way, even the way directly before -the wall toward the east, as one entereth into them. - -42:13 Then said he unto me, The north chambers and the south chambers, -which are before the separate place, they be holy chambers, where the -priests that approach unto the LORD shall eat the most holy things: -there shall they lay the most holy things, and the meat offering, and -the sin offering, and the trespass offering; for the place is holy. - -42:14 When the priests enter therein, then shall they not go out of -the holy place into the utter court, but there they shall lay their -garments wherein they minister; for they are holy; and shall put on -other garments, and shall approach to those things which are for the -people. - -42:15 Now when he had made an end of measuring the inner house, he -brought me forth toward the gate whose prospect is toward the east, -and measured it round about. - -42:16 He measured the east side with the measuring reed, five hundred -reeds, with the measuring reed round about. - -42:17 He measured the north side, five hundred reeds, with the -measuring reed round about. - -42:18 He measured the south side, five hundred reeds, with the -measuring reed. - -42:19 He turned about to the west side, and measured five hundred -reeds with the measuring reed. - -42:20 He measured it by the four sides: it had a wall round about, -five hundred reeds long, and five hundred broad, to make a separation -between the sanctuary and the profane place. - -43:1 Afterward he brought me to the gate, even the gate that looketh -toward the east: 43:2 And, behold, the glory of the God of Israel came -from the way of the east: and his voice was like a noise of many -waters: and the earth shined with his glory. - -43:3 And it was according to the appearance of the vision which I saw, -even according to the vision that I saw when I came to destroy the -city: and the visions were like the vision that I saw by the river -Chebar; and I fell upon my face. - -43:4 And the glory of the LORD came into the house by the way of the -gate whose prospect is toward the east. - -43:5 So the spirit took me up, and brought me into the inner court; -and, behold, the glory of the LORD filled the house. - -43:6 And I heard him speaking unto me out of the house; and the man -stood by me. - -43:7 And he said unto me, Son of man, the place of my throne, and the -place of the soles of my feet, where I will dwell in the midst of the -children of Israel for ever, and my holy name, shall the house of -Israel no more defile, neither they, nor their kings, by their -whoredom, nor by the carcases of their kings in their high places. - -43:8 In their setting of their threshold by my thresholds, and their -post by my posts, and the wall between me and them, they have even -defiled my holy name by their abominations that they have committed: -wherefore I have consumed them in mine anger. - -43:9 Now let them put away their whoredom, and the carcases of their -kings, far from me, and I will dwell in the midst of them for ever. - -43:10 Thou son of man, shew the house to the house of Israel, that -they may be ashamed of their iniquities: and let them measure the -pattern. - -43:11 And if they be ashamed of all that they have done, shew them the -form of the house, and the fashion thereof, and the goings out -thereof, and the comings in thereof, and all the forms thereof, and -all the ordinances thereof, and all the forms thereof, and all the -laws thereof: and write it in their sight, that they may keep the -whole form thereof, and all the ordinances thereof, and do them. - -43:12 This is the law of the house; Upon the top of the mountain the -whole limit thereof round about shall be most holy. Behold, this is -the law of the house. - -43:13 And these are the measures of the altar after the cubits: The -cubit is a cubit and an hand breadth; even the bottom shall be a -cubit, and the breadth a cubit, and the border thereof by the edge -thereof round about shall be a span: and this shall be the higher -place of the altar. - -43:14 And from the bottom upon the ground even to the lower settle -shall be two cubits, and the breadth one cubit; and from the lesser -settle even to the greater settle shall be four cubits, and the -breadth one cubit. - -43:15 So the altar shall be four cubits; and from the altar and upward -shall be four horns. - -43:16 And the altar shall be twelve cubits long, twelve broad, square -in the four squares thereof. - -43:17 And the settle shall be fourteen cubits long and fourteen broad -in the four squares thereof; and the border about it shall be half a -cubit; and the bottom thereof shall be a cubit about; and his stairs -shall look toward the east. - -43:18 And he said unto me, Son of man, thus saith the Lord GOD; These -are the ordinances of the altar in the day when they shall make it, to -offer burnt offerings thereon, and to sprinkle blood thereon. - -43:19 And thou shalt give to the priests the Levites that be of the -seed of Zadok, which approach unto me, to minister unto me, saith the -Lord GOD, a young bullock for a sin offering. - -43:20 And thou shalt take of the blood thereof, and put it on the four -horns of it, and on the four corners of the settle, and upon the -border round about: thus shalt thou cleanse and purge it. - -43:21 Thou shalt take the bullock also of the sin offering, and he -shall burn it in the appointed place of the house, without the -sanctuary. - -43:22 And on the second day thou shalt offer a kid of the goats -without blemish for a sin offering; and they shall cleanse the altar, -as they did cleanse it with the bullock. - -43:23 When thou hast made an end of cleansing it, thou shalt offer a -young bullock without blemish, and a ram out of the flock without -blemish. - -43:24 And thou shalt offer them before the LORD, and the priests shall -cast salt upon them, and they shall offer them up for a burnt offering -unto the LORD. - -43:25 Seven days shalt thou prepare every day a goat for a sin -offering: they shall also prepare a young bullock, and a ram out of -the flock, without blemish. - -43:26 Seven days shall they purge the altar and purify it; and they -shall consecrate themselves. - -43:27 And when these days are expired, it shall be, that upon the -eighth day, and so forward, the priests shall make your burnt -offerings upon the altar, and your peace offerings; and I will accept -you, saith the Lord GOD. - -44:1 Then he brought me back the way of the gate of the outward -sanctuary which looketh toward the east; and it was shut. - -44:2 Then said the LORD unto me; This gate shall be shut, it shall not -be opened, and no man shall enter in by it; because the LORD, the God -of Israel, hath entered in by it, therefore it shall be shut. - -44:3 It is for the prince; the prince, he shall sit in it to eat bread -before the LORD; he shall enter by the way of the porch of that gate, -and shall go out by the way of the same. - -44:4 Then brought he me the way of the north gate before the house: -and I looked, and, behold, the glory of the LORD filled the house of -the LORD: and I fell upon my face. - -44:5 And the LORD said unto me, Son of man, mark well, and behold with -thine eyes, and hear with thine ears all that I say unto thee -concerning all the ordinances of the house of the LORD, and all the -laws thereof; and mark well the entering in of the house, with every -going forth of the sanctuary. - -44:6 And thou shalt say to the rebellious, even to the house of -Israel, Thus saith the Lord GOD; O ye house of Israel, let it suffice -you of all your abominations, 44:7 In that ye have brought into my -sanctuary strangers, uncircumcised in heart, and uncircumcised in -flesh, to be in my sanctuary, to pollute it, even my house, when ye -offer my bread, the fat and the blood, and they have broken my -covenant because of all your abominations. - -44:8 And ye have not kept the charge of mine holy things: but ye have -set keepers of my charge in my sanctuary for yourselves. - -44:9 Thus saith the Lord GOD; No stranger, uncircumcised in heart, nor -uncircumcised in flesh, shall enter into my sanctuary, of any stranger -that is among the children of Israel. - -44:10 And the Levites that are gone away far from me, when Israel went -astray, which went astray away from me after their idols; they shall -even bear their iniquity. - -44:11 Yet they shall be ministers in my sanctuary, having charge at -the gates of the house, and ministering to the house: they shall slay -the burnt offering and the sacrifice for the people, and they shall -stand before them to minister unto them. - -44:12 Because they ministered unto them before their idols, and caused -the house of Israel to fall into iniquity; therefore have I lifted up -mine hand against them, saith the Lord GOD, and they shall bear their -iniquity. - -44:13 And they shall not come near unto me, to do the office of a -priest unto me, nor to come near to any of my holy things, in the most -holy place: but they shall bear their shame, and their abominations -which they have committed. - -44:14 But I will make them keepers of the charge of the house, for all -the service thereof, and for all that shall be done therein. - -44:15 But the priests the Levites, the sons of Zadok, that kept the -charge of my sanctuary when the children of Israel went astray from -me, they shall come near to me to minister unto me, and they shall -stand before me to offer unto me the fat and the blood, saith the Lord -GOD: 44:16 They shall enter into my sanctuary, and they shall come -near to my table, to minister unto me, and they shall keep my charge. - -44:17 And it shall come to pass, that when they enter in at the gates -of the inner court, they shall be clothed with linen garments; and no -wool shall come upon them, whiles they minister in the gates of the -inner court, and within. - -44:18 They shall have linen bonnets upon their heads, and shall have -linen breeches upon their loins; they shall not gird themselves with -any thing that causeth sweat. - -44:19 And when they go forth into the utter court, even into the utter -court to the people, they shall put off their garments wherein they -ministered, and lay them in the holy chambers, and they shall put on -other garments; and they shall not sanctify the people with their -garments. - -44:20 Neither shall they shave their heads, nor suffer their locks to -grow long; they shall only poll their heads. - -44:21 Neither shall any priest drink wine, when they enter into the -inner court. - -44:22 Neither shall they take for their wives a widow, nor her that is -put away: but they shall take maidens of the seed of the house of -Israel, or a widow that had a priest before. - -44:23 And they shall teach my people the difference between the holy -and profane, and cause them to discern between the unclean and the -clean. - -44:24 And in controversy they shall stand in judgment; and they shall -judge it according to my judgments: and they shall keep my laws and my -statutes in all mine assemblies; and they shall hallow my sabbaths. - -44:25 And they shall come at no dead person to defile themselves: but -for father, or for mother, or for son, or for daughter, for brother, -or for sister that hath had no husband, they may defile themselves. - -44:26 And after he is cleansed, they shall reckon unto him seven days. - -44:27 And in the day that he goeth into the sanctuary, unto the inner -court, to minister in the sanctuary, he shall offer his sin offering, -saith the Lord GOD. - -44:28 And it shall be unto them for an inheritance: I am their -inheritance: and ye shall give them no possession in Israel: I am -their possession. - -44:29 They shall eat the meat offering, and the sin offering, and the -trespass offering: and every dedicated thing in Israel shall be -theirs. - -44:30 And the first of all the firstfruits of all things, and every -oblation of all, of every sort of your oblations, shall be the -priest's: ye shall also give unto the priest the first of your dough, -that he may cause the blessing to rest in thine house. - -44:31 The priests shall not eat of any thing that is dead of itself, -or torn, whether it be fowl or beast. - -45:1 Moreover, when ye shall divide by lot the land for inheritance, -ye shall offer an oblation unto the LORD, an holy portion of the land: -the length shall be the length of five and twenty thousand reeds, and -the breadth shall be ten thousand. This shall be holy in all the -borders thereof round about. - -45:2 Of this there shall be for the sanctuary five hundred in length, -with five hundred in breadth, square round about; and fifty cubits -round about for the suburbs thereof. - -45:3 And of this measure shalt thou measure the length of five and -twenty thousand, and the breadth of ten thousand: and in it shall be -the sanctuary and the most holy place. - -45:4 The holy portion of the land shall be for the priests the -ministers of the sanctuary, which shall come near to minister unto the -LORD: and it shall be a place for their houses, and an holy place for -the sanctuary. - -45:5 And the five and twenty thousand of length, and the ten thousand -of breadth shall also the Levites, the ministers of the house, have -for themselves, for a possession for twenty chambers. - -45:6 And ye shall appoint the possession of the city five thousand -broad, and five and twenty thousand long, over against the oblation of -the holy portion: it shall be for the whole house of Israel. - -45:7 And a portion shall be for the prince on the one side and on the -other side of the oblation of the holy portion, and of the possession -of the city, before the oblation of the holy portion, and before the -possession of the city, from the west side westward, and from the east -side eastward: and the length shall be over against one of the -portions, from the west border unto the east border. - -45:8 In the land shall be his possession in Israel: and my princes -shall no more oppress my people; and the rest of the land shall they -give to the house of Israel according to their tribes. - -45:9 Thus saith the Lord GOD; Let it suffice you, O princes of Israel: -remove violence and spoil, and execute judgment and justice, take away -your exactions from my people, saith the Lord GOD. - -45:10 Ye shall have just balances, and a just ephah, and a just bath. - -45:11 The ephah and the bath shall be of one measure, that the bath -may contain the tenth part of an homer, and the ephah the tenth part -of an homer: the measure thereof shall be after the homer. - -45:12 And the shekel shall be twenty gerahs: twenty shekels, five and -twenty shekels, fifteen shekels, shall be your maneh. - -45:13 This is the oblation that ye shall offer; the sixth part of an -ephah of an homer of wheat, and ye shall give the sixth part of an -ephah of an homer of barley: 45:14 Concerning the ordinance of oil, -the bath of oil, ye shall offer the tenth part of a bath out of the -cor, which is an homer of ten baths; for ten baths are an homer: 45:15 -And one lamb out of the flock, out of two hundred, out of the fat -pastures of Israel; for a meat offering, and for a burnt offering, and -for peace offerings, to make reconciliation for them, saith the Lord -GOD. - -45:16 All the people of the land shall give this oblation for the -prince in Israel. - -45:17 And it shall be the prince's part to give burnt offerings, and -meat offerings, and drink offerings, in the feasts, and in the new -moons, and in the sabbaths, in all solemnities of the house of Israel: -he shall prepare the sin offering, and the meat offering, and the -burnt offering, and the peace offerings, to make reconciliation for -the house of Israel. - -45:18 Thus saith the Lord GOD; In the first month, in the first day of -the month, thou shalt take a young bullock without blemish, and -cleanse the sanctuary: 45:19 And the priest shall take of the blood of -the sin offering, and put it upon the posts of the house, and upon the -four corners of the settle of the altar, and upon the posts of the -gate of the inner court. - -45:20 And so thou shalt do the seventh day of the month for every one -that erreth, and for him that is simple: so shall ye reconcile the -house. - -45:21 In the first month, in the fourteenth day of the month, ye shall -have the passover, a feast of seven days; unleavened bread shall be -eaten. - -45:22 And upon that day shall the prince prepare for himself and for -all the people of the land a bullock for a sin offering. - -45:23 And seven days of the feast he shall prepare a burnt offering to -the LORD, seven bullocks and seven rams without blemish daily the -seven days; and a kid of the goats daily for a sin offering. - -45:24 And he shall prepare a meat offering of an ephah for a bullock, -and an ephah for a ram, and an hin of oil for an ephah. - -45:25 In the seventh month, in the fifteenth day of the month, shall -he do the like in the feast of the seven days, according to the sin -offering, according to the burnt offering, and according to the meat -offering, and according to the oil. - -46:1 Thus saith the Lord GOD; The gate of the inner court that looketh -toward the east shall be shut the six working days; but on the sabbath -it shall be opened, and in the day of the new moon it shall be opened. - -46:2 And the prince shall enter by the way of the porch of that gate -without, and shall stand by the post of the gate, and the priests -shall prepare his burnt offering and his peace offerings, and he shall -worship at the threshold of the gate: then he shall go forth; but the -gate shall not be shut until the evening. - -46:3 Likewise the people of the land shall worship at the door of this -gate before the LORD in the sabbaths and in the new moons. - -46:4 And the burnt offering that the prince shall offer unto the LORD -in the sabbath day shall be six lambs without blemish, and a ram -without blemish. - -46:5 And the meat offering shall be an ephah for a ram, and the meat -offering for the lambs as he shall be able to give, and an hin of oil -to an ephah. - -46:6 And in the day of the new moon it shall be a young bullock -without blemish, and six lambs, and a ram: they shall be without -blemish. - -46:7 And he shall prepare a meat offering, an ephah for a bullock, and -an ephah for a ram, and for the lambs according as his hand shall -attain unto, and an hin of oil to an ephah. - -46:8 And when the prince shall enter, he shall go in by the way of the -porch of that gate, and he shall go forth by the way thereof. - -46:9 But when the people of the land shall come before the LORD in the -solemn feasts, he that entereth in by the way of the north gate to -worship shall go out by the way of the south gate; and he that -entereth by the way of the south gate shall go forth by the way of the -north gate: he shall not return by the way of the gate whereby he came -in, but shall go forth over against it. - -46:10 And the prince in the midst of them, when they go in, shall go -in; and when they go forth, shall go forth. - -46:11 And in the feasts and in the solemnities the meat offering shall -be an ephah to a bullock, and an ephah to a ram, and to the lambs as -he is able to give, and an hin of oil to an ephah. - -46:12 Now when the prince shall prepare a voluntary burnt offering or -peace offerings voluntarily unto the LORD, one shall then open him the -gate that looketh toward the east, and he shall prepare his burnt -offering and his peace offerings, as he did on the sabbath day: then -he shall go forth; and after his going forth one shall shut the gate. - -46:13 Thou shalt daily prepare a burnt offering unto the LORD of a -lamb of the first year without blemish: thou shalt prepare it every -morning. - -46:14 And thou shalt prepare a meat offering for it every morning, the -sixth part of an ephah, and the third part of an hin of oil, to temper -with the fine flour; a meat offering continually by a perpetual -ordinance unto the LORD. - -46:15 Thus shall they prepare the lamb, and the meat offering, and the -oil, every morning for a continual burnt offering. - -46:16 Thus saith the Lord GOD; If the prince give a gift unto any of -his sons, the inheritance thereof shall be his sons'; it shall be -their possession by inheritance. - -46:17 But if he give a gift of his inheritance to one of his servants, -then it shall be his to the year of liberty; after it shall return to -the prince: but his inheritance shall be his sons' for them. - -46:18 Moreover the prince shall not take of the people's inheritance -by oppression, to thrust them out of their possession; but he shall -give his sons inheritance out of his own possession: that my people be -not scattered every man from his possession. - -46:19 After he brought me through the entry, which was at the side of -the gate, into the holy chambers of the priests, which looked toward -the north: and, behold, there was a place on the two sides westward. - -46:20 Then said he unto me, This is the place where the priests shall -boil the trespass offering and the sin offering, where they shall bake -the meat offering; that they bear them not out into the utter court, -to sanctify the people. - -46:21 Then he brought me forth into the utter court, and caused me to -pass by the four corners of the court; and, behold, in every corner of -the court there was a court. - -46:22 In the four corners of the court there were courts joined of -forty cubits long and thirty broad: these four corners were of one -measure. - -46:23 And there was a row of building round about in them, round about -them four, and it was made with boiling places under the rows round -about. - -46:24 Then said he unto me, These are the places of them that boil, -where the ministers of the house shall boil the sacrifice of the -people. - -47:1 Afterward he brought me again unto the door of the house; and, -behold, waters issued out from under the threshold of the house -eastward: for the forefront of the house stood toward the east, and -the waters came down from under from the right side of the house, at -the south side of the altar. - -47:2 Then brought he me out of the way of the gate northward, and led -me about the way without unto the utter gate by the way that looketh -eastward; and, behold, there ran out waters on the right side. - -47:3 And when the man that had the line in his hand went forth -eastward, he measured a thousand cubits, and he brought me through the -waters; the waters were to the ankles. - -47:4 Again he measured a thousand, and brought me through the waters; -the waters were to the knees. Again he measured a thousand, and -brought me through; the waters were to the loins. - -47:5 Afterward he measured a thousand; and it was a river that I could -not pass over: for the waters were risen, waters to swim in, a river -that could not be passed over. - -47:6 And he said unto me, Son of man, hast thou seen this? Then he -brought me, and caused me to return to the brink of the river. - -47:7 Now when I had returned, behold, at the bank of the river were -very many trees on the one side and on the other. - -47:8 Then said he unto me, These waters issue out toward the east -country, and go down into the desert, and go into the sea: which being -brought forth into the sea, the waters shall be healed. - -47:9 And it shall come to pass, that every thing that liveth, which -moveth, whithersoever the rivers shall come, shall live: and there -shall be a very great multitude of fish, because these waters shall -come thither: for they shall be healed; and every thing shall live -whither the river cometh. - -47:10 And it shall come to pass, that the fishers shall stand upon it -from Engedi even unto Eneglaim; they shall be a place to spread forth -nets; their fish shall be according to their kinds, as the fish of the -great sea, exceeding many. - -47:11 But the miry places thereof and the marishes thereof shall not -be healed; they shall be given to salt. - -47:12 And by the river upon the bank thereof, on this side and on that -side, shall grow all trees for meat, whose leaf shall not fade, -neither shall the fruit thereof be consumed: it shall bring forth new -fruit according to his months, because their waters they issued out of -the sanctuary: and the fruit thereof shall be for meat, and the leaf -thereof for medicine. - -47:13 Thus saith the Lord GOD; This shall be the border, whereby ye -shall inherit the land according to the twelve tribes of Israel: -Joseph shall have two portions. - -47:14 And ye shall inherit it, one as well as another: concerning the -which I lifted up mine hand to give it unto your fathers: and this -land shall fall unto you for inheritance. - -47:15 And this shall be the border of the land toward the north side, -from the great sea, the way of Hethlon, as men go to Zedad; 47:16 -Hamath, Berothah, Sibraim, which is between the border of Damascus and -the border of Hamath; Hazarhatticon, which is by the coast of Hauran. - -47:17 And the border from the sea shall be Hazarenan, the border of -Damascus, and the north northward, and the border of Hamath. And this -is the north side. - -47:18 And the east side ye shall measure from Hauran, and from -Damascus, and from Gilead, and from the land of Israel by Jordan, from -the border unto the east sea. And this is the east side. - -47:19 And the south side southward, from Tamar even to the waters of -strife in Kadesh, the river to the great sea. And this is the south -side southward. - -47:20 The west side also shall be the great sea from the border, till -a man come over against Hamath. This is the west side. - -47:21 So shall ye divide this land unto you according to the tribes of -Israel. - -47:22 And it shall come to pass, that ye shall divide it by lot for an -inheritance unto you, and to the strangers that sojourn among you, -which shall beget children among you: and they shall be unto you as -born in the country among the children of Israel; they shall have -inheritance with you among the tribes of Israel. - -47:23 And it shall come to pass, that in what tribe the stranger -sojourneth, there shall ye give him his inheritance, saith the Lord -GOD. - -48:1 Now these are the names of the tribes. From the north end to the -coast of the way of Hethlon, as one goeth to Hamath, Hazarenan, the -border of Damascus northward, to the coast of Hamath; for these are -his sides east and west; a portion for Dan. - -48:2 And by the border of Dan, from the east side unto the west side, -a portion for Asher. - -48:3 And by the border of Asher, from the east side even unto the west -side, a portion for Naphtali. - -48:4 And by the border of Naphtali, from the east side unto the west -side, a portion for Manasseh. - -48:5 And by the border of Manasseh, from the east side unto the west -side, a portion for Ephraim. - -48:6 And by the border of Ephraim, from the east side even unto the -west side, a portion for Reuben. - -48:7 And by the border of Reuben, from the east side unto the west -side, a portion for Judah. - -48:8 And by the border of Judah, from the east side unto the west -side, shall be the offering which ye shall offer of five and twenty -thousand reeds in breadth, and in length as one of the other parts, -from the east side unto the west side: and the sanctuary shall be in -the midst of it. - -48:9 The oblation that ye shall offer unto the LORD shall be of five -and twenty thousand in length, and of ten thousand in breadth. - -48:10 And for them, even for the priests, shall be this holy oblation; -toward the north five and twenty thousand in length, and toward the -west ten thousand in breadth, and toward the east ten thousand in -breadth, and toward the south five and twenty thousand in length: and -the sanctuary of the LORD shall be in the midst thereof. - -48:11 It shall be for the priests that are sanctified of the sons of -Zadok; which have kept my charge, which went not astray when the -children of Israel went astray, as the Levites went astray. - -48:12 And this oblation of the land that is offered shall be unto them -a thing most holy by the border of the Levites. - -48:13 And over against the border of the priests the Levites shall -have five and twenty thousand in length, and ten thousand in breadth: -all the length shall be five and twenty thousand, and the breadth ten -thousand. - -48:14 And they shall not sell of it, neither exchange, nor alienate -the firstfruits of the land: for it is holy unto the LORD. - -48:15 And the five thousand, that are left in the breadth over against -the five and twenty thousand, shall be a profane place for the city, -for dwelling, and for suburbs: and the city shall be in the midst -thereof. - -48:16 And these shall be the measures thereof; the north side four -thousand and five hundred, and the south side four thousand and five -hundred, and on the east side four thousand and five hundred, and the -west side four thousand and five hundred. - -48:17 And the suburbs of the city shall be toward the north two -hundred and fifty, and toward the south two hundred and fifty, and -toward the east two hundred and fifty, and toward the west two hundred -and fifty. - -48:18 And the residue in length over against the oblation of the holy -portion shall be ten thousand eastward, and ten thousand westward: and -it shall be over against the oblation of the holy portion; and the -increase thereof shall be for food unto them that serve the city. - -48:19 And they that serve the city shall serve it out of all the -tribes of Israel. - -48:20 All the oblation shall be five and twenty thousand by five and -twenty thousand: ye shall offer the holy oblation foursquare, with the -possession of the city. - -48:21 And the residue shall be for the prince, on the one side and on -the other of the holy oblation, and of the possession of the city, -over against the five and twenty thousand of the oblation toward the -east border, and westward over against the five and twenty thousand -toward the west border, over against the portions for the prince: and -it shall be the holy oblation; and the sanctuary of the house shall be -in the midst thereof. - -48:22 Moreover from the possession of the Levites, and from the -possession of the city, being in the midst of that which is the -prince's, between the border of Judah and the border of Benjamin, -shall be for the prince. - -48:23 As for the rest of the tribes, from the east side unto the west -side, Benjamin shall have a portion. - -48:24 And by the border of Benjamin, from the east side unto the west -side, Simeon shall have a portion. - -48:25 And by the border of Simeon, from the east side unto the west -side, Issachar a portion. - -48:26 And by the border of Issachar, from the east side unto the west -side, Zebulun a portion. - -48:27 And by the border of Zebulun, from the east side unto the west -side, Gad a portion. - -48:28 And by the border of Gad, at the south side southward, the -border shall be even from Tamar unto the waters of strife in Kadesh, -and to the river toward the great sea. - -48:29 This is the land which ye shall divide by lot unto the tribes of -Israel for inheritance, and these are their portions, saith the Lord -GOD. - -48:30 And these are the goings out of the city on the north side, four -thousand and five hundred measures. - -48:31 And the gates of the city shall be after the names of the tribes -of Israel: three gates northward; one gate of Reuben, one gate of -Judah, one gate of Levi. - -48:32 And at the east side four thousand and five hundred: and three -gates; and one gate of Joseph, one gate of Benjamin, one gate of Dan. - -48:33 And at the south side four thousand and five hundred measures: -and three gates; one gate of Simeon, one gate of Issachar, one gate of -Zebulun. - -48:34 At the west side four thousand and five hundred, with their -three gates; one gate of Gad, one gate of Asher, one gate of Naphtali. - -48:35 It was round about eighteen thousand measures: and the name of -the city from that day shall be, The LORD is there. - - - - -The Book of Daniel - - -1:1 In the third year of the reign of Jehoiakim king of Judah came -Nebuchadnezzar king of Babylon unto Jerusalem, and besieged it. - -1:2 And the Lord gave Jehoiakim king of Judah into his hand, with part -of the vessels of the house of God: which he carried into the land of -Shinar to the house of his god; and he brought the vessels into the -treasure house of his god. - -1:3 And the king spake unto Ashpenaz the master of his eunuchs, that -he should bring certain of the children of Israel, and of the king's -seed, and of the princes; 1:4 Children in whom was no blemish, but -well favoured, and skilful in all wisdom, and cunning in knowledge, -and understanding science, and such as had ability in them to stand in -the king's palace, and whom they might teach the learning and the -tongue of the Chaldeans. - -1:5 And the king appointed them a daily provision of the king's meat, -and of the wine which he drank: so nourishing them three years, that -at the end thereof they might stand before the king. - -1:6 Now among these were of the children of Judah, Daniel, Hananiah, -Mishael, and Azariah: 1:7 Unto whom the prince of the eunuchs gave -names: for he gave unto Daniel the name of Belteshazzar; and to -Hananiah, of Shadrach; and to Mishael, of Meshach; and to Azariah, of -Abednego. - -1:8 But Daniel purposed in his heart that he would not defile himself -with the portion of the king's meat, nor with the wine which he drank: -therefore he requested of the prince of the eunuchs that he might not -defile himself. - -1:9 Now God had brought Daniel into favour and tender love with the -prince of the eunuchs. - -1:10 And the prince of the eunuchs said unto Daniel, I fear my lord -the king, who hath appointed your meat and your drink: for why should -he see your faces worse liking than the children which are of your -sort? then shall ye make me endanger my head to the king. - -1:11 Then said Daniel to Melzar, whom the prince of the eunuchs had -set over Daniel, Hananiah, Mishael, and Azariah, 1:12 Prove thy -servants, I beseech thee, ten days; and let them give us pulse to eat, -and water to drink. - -1:13 Then let our countenances be looked upon before thee, and the -countenance of the children that eat of the portion of the king's -meat: and as thou seest, deal with thy servants. - -1:14 So he consented to them in this matter, and proved them ten days. - -1:15 And at the end of ten days their countenances appeared fairer and -fatter in flesh than all the children which did eat the portion of the -king's meat. - -1:16 Thus Melzar took away the portion of their meat, and the wine -that they should drink; and gave them pulse. - -1:17 As for these four children, God gave them knowledge and skill in -all learning and wisdom: and Daniel had understanding in all visions -and dreams. - -1:18 Now at the end of the days that the king had said he should bring -them in, then the prince of the eunuchs brought them in before -Nebuchadnezzar. - -1:19 And the king communed with them; and among them all was found -none like Daniel, Hananiah, Mishael, and Azariah: therefore stood they -before the king. - -1:20 And in all matters of wisdom and understanding, that the king -enquired of them, he found them ten times better than all the -magicians and astrologers that were in all his realm. - -1:21 And Daniel continued even unto the first year of king Cyrus. - -2:1 And in the second year of the reign of Nebuchadnezzar -Nebuchadnezzar dreamed dreams, wherewith his spirit was troubled, and -his sleep brake from him. - -2:2 Then the king commanded to call the magicians, and the -astrologers, and the sorcerers, and the Chaldeans, for to shew the -king his dreams. So they came and stood before the king. - -2:3 And the king said unto them, I have dreamed a dream, and my spirit -was troubled to know the dream. - -2:4 Then spake the Chaldeans to the king in Syriack, O king, live for -ever: tell thy servants the dream, and we will shew the -interpretation. - -2:5 The king answered and said to the Chaldeans, The thing is gone -from me: if ye will not make known unto me the dream, with the -interpretation thereof, ye shall be cut in pieces, and your houses -shall be made a dunghill. - -2:6 But if ye shew the dream, and the interpretation thereof, ye shall -receive of me gifts and rewards and great honour: therefore shew me -the dream, and the interpretation thereof. - -2:7 They answered again and said, Let the king tell his servants the -dream, and we will shew the interpretation of it. - -2:8 The king answered and said, I know of certainty that ye would gain -the time, because ye see the thing is gone from me. - -2:9 But if ye will not make known unto me the dream, there is but one -decree for you: for ye have prepared lying and corrupt words to speak -before me, till the time be changed: therefore tell me the dream, and -I shall know that ye can shew me the interpretation thereof. - -2:10 The Chaldeans answered before the king, and said, There is not a -man upon the earth that can shew the king's matter: therefore there is -no king, lord, nor ruler, that asked such things at any magician, or -astrologer, or Chaldean. - -2:11 And it is a rare thing that the king requireth, and there is none -other that can shew it before the king, except the gods, whose -dwelling is not with flesh. - -2:12 For this cause the king was angry and very furious, and commanded -to destroy all the wise men of Babylon. - -2:13 And the decree went forth that the wise men should be slain; and -they sought Daniel and his fellows to be slain. - -2:14 Then Daniel answered with counsel and wisdom to Arioch the -captain of the king's guard, which was gone forth to slay the wise men -of Babylon: 2:15 He answered and said to Arioch the king's captain, -Why is the decree so hasty from the king? Then Arioch made the thing -known to Daniel. - -2:16 Then Daniel went in, and desired of the king that he would give -him time, and that he would shew the king the interpretation. - -2:17 Then Daniel went to his house, and made the thing known to -Hananiah, Mishael, and Azariah, his companions: 2:18 That they would -desire mercies of the God of heaven concerning this secret; that -Daniel and his fellows should not perish with the rest of the wise men -of Babylon. - -2:19 Then was the secret revealed unto Daniel in a night vision. Then -Daniel blessed the God of heaven. - -2:20 Daniel answered and said, Blessed be the name of God for ever and -ever: for wisdom and might are his: 2:21 And he changeth the times and -the seasons: he removeth kings, and setteth up kings: he giveth wisdom -unto the wise, and knowledge to them that know understanding: 2:22 He -revealeth the deep and secret things: he knoweth what is in the -darkness, and the light dwelleth with him. - -2:23 I thank thee, and praise thee, O thou God of my fathers, who hast -given me wisdom and might, and hast made known unto me now what we -desired of thee: for thou hast now made known unto us the king's -matter. - -2:24 Therefore Daniel went in unto Arioch, whom the king had ordained -to destroy the wise men of Babylon: he went and said thus unto him; -Destroy not the wise men of Babylon: bring me in before the king, and -I will shew unto the king the interpretation. - -2:25 Then Arioch brought in Daniel before the king in haste, and said -thus unto him, I have found a man of the captives of Judah, that will -make known unto the king the interpretation. - -2:26 The king answered and said to Daniel, whose name was -Belteshazzar, Art thou able to make known unto me the dream which I -have seen, and the interpretation thereof? 2:27 Daniel answered in -the presence of the king, and said, The secret which the king hath -demanded cannot the wise men, the astrologers, the magicians, the -soothsayers, shew unto the king; 2:28 But there is a God in heaven -that revealeth secrets, and maketh known to the king Nebuchadnezzar -what shall be in the latter days. Thy dream, and the visions of thy -head upon thy bed, are these; 2:29 As for thee, O king, thy thoughts -came into thy mind upon thy bed, what should come to pass hereafter: -and he that revealeth secrets maketh known to thee what shall come to -pass. - -2:30 But as for me, this secret is not revealed to me for any wisdom -that I have more than any living, but for their sakes that shall make -known the interpretation to the king, and that thou mightest know the -thoughts of thy heart. - -2:31 Thou, O king, sawest, and behold a great image. This great image, -whose brightness was excellent, stood before thee; and the form -thereof was terrible. - -2:32 This image's head was of fine gold, his breast and his arms of -silver, his belly and his thighs of brass, 2:33 His legs of iron, his -feet part of iron and part of clay. - -2:34 Thou sawest till that a stone was cut out without hands, which -smote the image upon his feet that were of iron and clay, and brake -them to pieces. - -2:35 Then was the iron, the clay, the brass, the silver, and the gold, -broken to pieces together, and became like the chaff of the summer -threshingfloors; and the wind carried them away, that no place was -found for them: and the stone that smote the image became a great -mountain, and filled the whole earth. - -2:36 This is the dream; and we will tell the interpretation thereof -before the king. - -2:37 Thou, O king, art a king of kings: for the God of heaven hath -given thee a kingdom, power, and strength, and glory. - -2:38 And wheresoever the children of men dwell, the beasts of the -field and the fowls of the heaven hath he given into thine hand, and -hath made thee ruler over them all. Thou art this head of gold. - -2:39 And after thee shall arise another kingdom inferior to thee, and -another third kingdom of brass, which shall bear rule over all the -earth. - -2:40 And the fourth kingdom shall be strong as iron: forasmuch as iron -breaketh in pieces and subdueth all things: and as iron that breaketh -all these, shall it break in pieces and bruise. - -2:41 And whereas thou sawest the feet and toes, part of potters' clay, -and part of iron, the kingdom shall be divided; but there shall be in -it of the strength of the iron, forasmuch as thou sawest the iron -mixed with miry clay. - -2:42 And as the toes of the feet were part of iron, and part of clay, -so the kingdom shall be partly strong, and partly broken. - -2:43 And whereas thou sawest iron mixed with miry clay, they shall -mingle themselves with the seed of men: but they shall not cleave one -to another, even as iron is not mixed with clay. - -2:44 And in the days of these kings shall the God of heaven set up a -kingdom, which shall never be destroyed: and the kingdom shall not be -left to other people, but it shall break in pieces and consume all -these kingdoms, and it shall stand for ever. - -2:45 Forasmuch as thou sawest that the stone was cut out of the -mountain without hands, and that it brake in pieces the iron, the -brass, the clay, the silver, and the gold; the great God hath made -known to the king what shall come to pass hereafter: and the dream is -certain, and the interpretation thereof sure. - -2:46 Then the king Nebuchadnezzar fell upon his face, and worshipped -Daniel, and commanded that they should offer an oblation and sweet -odours unto him. - -2:47 The king answered unto Daniel, and said, Of a truth it is, that -your God is a God of gods, and a Lord of kings, and a revealer of -secrets, seeing thou couldest reveal this secret. - -2:48 Then the king made Daniel a great man, and gave him many great -gifts, and made him ruler over the whole province of Babylon, and -chief of the governors over all the wise men of Babylon. - -2:49 Then Daniel requested of the king, and he set Shadrach, Meshach, -and Abednego, over the affairs of the province of Babylon: but Daniel -sat in the gate of the king. - -3:1 Nebuchadnezzar the king made an image of gold, whose height was -threescore cubits, and the breadth thereof six cubits: he set it up in -the plain of Dura, in the province of Babylon. - -3:2 Then Nebuchadnezzar the king sent to gather together the princes, -the governors, and the captains, the judges, the treasurers, the -counsellors, the sheriffs, and all the rulers of the provinces, to -come to the dedication of the image which Nebuchadnezzar the king had -set up. - -3:3 Then the princes, the governors, and captains, the judges, the -treasurers, the counsellors, the sheriffs, and all the rulers of the -provinces, were gathered together unto the dedication of the image -that Nebuchadnezzar the king had set up; and they stood before the -image that Nebuchadnezzar had set up. - -3:4 Then an herald cried aloud, To you it is commanded, O people, -nations, and languages, 3:5 That at what time ye hear the sound of the -cornet, flute, harp, sackbut, psaltery, dulcimer, and all kinds of -musick, ye fall down and worship the golden image that Nebuchadnezzar -the king hath set up: 3:6 And whoso falleth not down and worshippeth -shall the same hour be cast into the midst of a burning fiery furnace. - -3:7 Therefore at that time, when all the people heard the sound of the -cornet, flute, harp, sackbut, psaltery, and all kinds of musick, all -the people, the nations, and the languages, fell down and worshipped -the golden image that Nebuchadnezzar the king had set up. - -3:8 Wherefore at that time certain Chaldeans came near, and accused -the Jews. - -3:9 They spake and said to the king Nebuchadnezzar, O king, live for -ever. - -3:10 Thou, O king, hast made a decree, that every man that shall hear -the sound of the cornet, flute, harp, sackbut, psaltery, and dulcimer, -and all kinds of musick, shall fall down and worship the golden image: -3:11 And whoso falleth not down and worshippeth, that he should be -cast into the midst of a burning fiery furnace. - -3:12 There are certain Jews whom thou hast set over the affairs of the -province of Babylon, Shadrach, Meshach, and Abednego; these men, O -king, have not regarded thee: they serve not thy gods, nor worship the -golden image which thou hast set up. - -3:13 Then Nebuchadnezzar in his rage and fury commanded to bring -Shadrach, Meshach, and Abednego. Then they brought these men before -the king. - -3:14 Nebuchadnezzar spake and said unto them, Is it true, O Shadrach, -Meshach, and Abednego, do not ye serve my gods, nor worship the golden -image which I have set up? 3:15 Now if ye be ready that at what time -ye hear the sound of the cornet, flute, harp, sackbut, psaltery, and -dulcimer, and all kinds of musick, ye fall down and worship the image -which I have made; well: but if ye worship not, ye shall be cast the -same hour into the midst of a burning fiery furnace; and who is that -God that shall deliver you out of my hands? 3:16 Shadrach, Meshach, -and Abednego, answered and said to the king, O Nebuchadnezzar, we are -not careful to answer thee in this matter. - -3:17 If it be so, our God whom we serve is able to deliver us from the -burning fiery furnace, and he will deliver us out of thine hand, O -king. - -3:18 But if not, be it known unto thee, O king, that we will not serve -thy gods, nor worship the golden image which thou hast set up. - -3:19 Then was Nebuchadnezzar full of fury, and the form of his visage -was changed against Shadrach, Meshach, and Abednego: therefore he -spake, and commanded that they should heat the furnace one seven times -more than it was wont to be heated. - -3:20 And he commanded the most mighty men that were in his army to -bind Shadrach, Meshach, and Abednego, and to cast them into the -burning fiery furnace. - -3:21 Then these men were bound in their coats, their hosen, and their -hats, and their other garments, and were cast into the midst of the -burning fiery furnace. - -3:22 Therefore because the king's commandment was urgent, and the -furnace exceeding hot, the flames of the fire slew those men that took -up Shadrach, Meshach, and Abednego. - -3:23 And these three men, Shadrach, Meshach, and Abednego, fell down -bound into the midst of the burning fiery furnace. - -3:24 Then Nebuchadnezzar the king was astonied, and rose up in haste, -and spake, and said unto his counsellors, Did not we cast three men -bound into the midst of the fire? They answered and said unto the -king, True, O king. - -3:25 He answered and said, Lo, I see four men loose, walking in the -midst of the fire, and they have no hurt; and the form of the fourth -is like the Son of God. - -3:26 Then Nebuchadnezzar came near to the mouth of the burning fiery -furnace, and spake, and said, Shadrach, Meshach, and Abednego, ye -servants of the most high God, come forth, and come hither. Then -Shadrach, Meshach, and Abednego, came forth of the midst of the fire. - -3:27 And the princes, governors, and captains, and the king's -counsellors, being gathered together, saw these men, upon whose bodies -the fire had no power, nor was an hair of their head singed, neither -were their coats changed, nor the smell of fire had passed on them. - -3:28 Then Nebuchadnezzar spake, and said, Blessed be the God of -Shadrach, Meshach, and Abednego, who hath sent his angel, and -delivered his servants that trusted in him, and have changed the -king's word, and yielded their bodies, that they might not serve nor -worship any god, except their own God. - -3:29 Therefore I make a decree, That every people, nation, and -language, which speak any thing amiss against the God of Shadrach, -Meshach, and Abednego, shall be cut in pieces, and their houses shall -be made a dunghill: because there is no other God that can deliver -after this sort. - -3:30 Then the king promoted Shadrach, Meshach, and Abednego, in the -province of Babylon. - -4:1 Nebuchadnezzar the king, unto all people, nations, and languages, -that dwell in all the earth; Peace be multiplied unto you. - -4:2 I thought it good to shew the signs and wonders that the high God -hath wrought toward me. - -4:3 How great are his signs! and how mighty are his wonders! his -kingdom is an everlasting kingdom, and his dominion is from generation -to generation. - -4:4 I Nebuchadnezzar was at rest in mine house, and flourishing in my -palace: 4:5 I saw a dream which made me afraid, and the thoughts upon -my bed and the visions of my head troubled me. - -4:6 Therefore made I a decree to bring in all the wise men of Babylon -before me, that they might make known unto me the interpretation of -the dream. - -4:7 Then came in the magicians, the astrologers, the Chaldeans, and -the soothsayers: and I told the dream before them; but they did not -make known unto me the interpretation thereof. - -4:8 But at the last Daniel came in before me, whose name was -Belteshazzar, according to the name of my God, and in whom is the -spirit of the holy gods: and before him I told the dream, saying, 4:9 -O Belteshazzar, master of the magicians, because I know that the -spirit of the holy gods is in thee, and no secret troubleth thee, tell -me the visions of my dream that I have seen, and the interpretation -thereof. - -4:10 Thus were the visions of mine head in my bed; I saw, and behold a -tree in the midst of the earth, and the height thereof was great. - -4:11 The tree grew, and was strong, and the height thereof reached -unto heaven, and the sight thereof to the end of all the earth: 4:12 -The leaves thereof were fair, and the fruit thereof much, and in it -was meat for all: the beasts of the field had shadow under it, and the -fowls of the heaven dwelt in the boughs thereof, and all flesh was fed -of it. - -4:13 I saw in the visions of my head upon my bed, and, behold, a -watcher and an holy one came down from heaven; 4:14 He cried aloud, -and said thus, Hew down the tree, and cut off his branches, shake off -his leaves, and scatter his fruit: let the beasts get away from under -it, and the fowls from his branches: 4:15 Nevertheless leave the stump -of his roots in the earth, even with a band of iron and brass, in the -tender grass of the field; and let it be wet with the dew of heaven, -and let his portion be with the beasts in the grass of the earth: 4:16 -Let his heart be changed from man's, and let a beast's heart be given -unto him; and let seven times pass over him. - -4:17 This matter is by the decree of the watchers, and the demand by -the word of the holy ones: to the intent that the living may know that -the most High ruleth in the kingdom of men, and giveth it to -whomsoever he will, and setteth up over it the basest of men. - -4:18 This dream I king Nebuchadnezzar have seen. Now thou, O -Belteshazzar, declare the interpretation thereof, forasmuch as all the -wise men of my kingdom are not able to make known unto me the -interpretation: but thou art able; for the spirit of the holy gods is -in thee. - -4:19 Then Daniel, whose name was Belteshazzar, was astonied for one -hour, and his thoughts troubled him. The king spake, and said, -Belteshazzar, let not the dream, or the interpretation thereof, -trouble thee. Belteshazzar answered and said, My lord, the dream be to -them that hate thee, and the interpretation thereof to thine enemies. - -4:20 The tree that thou sawest, which grew, and was strong, whose -height reached unto the heaven, and the sight thereof to all the -earth; 4:21 Whose leaves were fair, and the fruit thereof much, and in -it was meat for all; under which the beasts of the field dwelt, and -upon whose branches the fowls of the heaven had their habitation: 4:22 -It is thou, O king, that art grown and become strong: for thy -greatness is grown, and reacheth unto heaven, and thy dominion to the -end of the earth. - -4:23 And whereas the king saw a watcher and an holy one coming down -from heaven, and saying, Hew the tree down, and destroy it; yet leave -the stump of the roots thereof in the earth, even with a band of iron -and brass, in the tender grass of the field; and let it be wet with -the dew of heaven, and let his portion be with the beasts of the -field, till seven times pass over him; 4:24 This is the -interpretation, O king, and this is the decree of the most High, which -is come upon my lord the king: 4:25 That they shall drive thee from -men, and thy dwelling shall be with the beasts of the field, and they -shall make thee to eat grass as oxen, and they shall wet thee with the -dew of heaven, and seven times shall pass over thee, till thou know -that the most High ruleth in the kingdom of men, and giveth it to -whomsoever he will. - -4:26 And whereas they commanded to leave the stump of the tree roots; -thy kingdom shall be sure unto thee, after that thou shalt have known -that the heavens do rule. - -4:27 Wherefore, O king, let my counsel be acceptable unto thee, and -break off thy sins by righteousness, and thine iniquities by shewing -mercy to the poor; if it may be a lengthening of thy tranquillity. - -4:28 All this came upon the king Nebuchadnezzar. - -4:29 At the end of twelve months he walked in the palace of the -kingdom of Babylon. - -4:30 The king spake, and said, Is not this great Babylon, that I have -built for the house of the kingdom by the might of my power, and for -the honour of my majesty? 4:31 While the word was in the king's -mouth, there fell a voice from heaven, saying, O king Nebuchadnezzar, -to thee it is spoken; The kingdom is departed from thee. - -4:32 And they shall drive thee from men, and thy dwelling shall be -with the beasts of the field: they shall make thee to eat grass as -oxen, and seven times shall pass over thee, until thou know that the -most High ruleth in the kingdom of men, and giveth it to whomsoever he -will. - -4:33 The same hour was the thing fulfilled upon Nebuchadnezzar: and he -was driven from men, and did eat grass as oxen, and his body was wet -with the dew of heaven, till his hairs were grown like eagles' -feathers, and his nails like birds' claws. - -4:34 And at the end of the days I Nebuchadnezzar lifted up mine eyes -unto heaven, and mine understanding returned unto me, and I blessed -the most High, and I praised and honoured him that liveth for ever, -whose dominion is an everlasting dominion, and his kingdom is from -generation to generation: 4:35 And all the inhabitants of the earth -are reputed as nothing: and he doeth according to his will in the army -of heaven, and among the inhabitants of the earth: and none can stay -his hand, or say unto him, What doest thou? 4:36 At the same time my -reason returned unto me; and for the glory of my kingdom, mine honour -and brightness returned unto me; and my counsellors and my lords -sought unto me; and I was established in my kingdom, and excellent -majesty was added unto me. - -4:37 Now I Nebuchadnezzar praise and extol and honour the King of -heaven, all whose works are truth, and his ways judgment: and those -that walk in pride he is able to abase. - -5:1 Belshazzar the king made a great feast to a thousand of his lords, -and drank wine before the thousand. - -5:2 Belshazzar, whiles he tasted the wine, commanded to bring the -golden and silver vessels which his father Nebuchadnezzar had taken -out of the temple which was in Jerusalem; that the king, and his -princes, his wives, and his concubines, might drink therein. - -5:3 Then they brought the golden vessels that were taken out of the -temple of the house of God which was at Jerusalem; and the king, and -his princes, his wives, and his concubines, drank in them. - -5:4 They drank wine, and praised the gods of gold, and of silver, of -brass, of iron, of wood, and of stone. - -5:5 In the same hour came forth fingers of a man's hand, and wrote -over against the candlestick upon the plaister of the wall of the -king's palace: and the king saw the part of the hand that wrote. - -5:6 Then the king's countenance was changed, and his thoughts troubled -him, so that the joints of his loins were loosed, and his knees smote -one against another. - -5:7 The king cried aloud to bring in the astrologers, the Chaldeans, -and the soothsayers. And the king spake, and said to the wise men of -Babylon, Whosoever shall read this writing, and shew me the -interpretation thereof, shall be clothed with scarlet, and have a -chain of gold about his neck, and shall be the third ruler in the -kingdom. - -5:8 Then came in all the king's wise men: but they could not read the -writing, nor make known to the king the interpretation thereof. - -5:9 Then was king Belshazzar greatly troubled, and his countenance was -changed in him, and his lords were astonied. - -5:10 Now the queen by reason of the words of the king and his lords -came into the banquet house: and the queen spake and said, O king, -live for ever: let not thy thoughts trouble thee, nor let thy -countenance be changed: 5:11 There is a man in thy kingdom, in whom is -the spirit of the holy gods; and in the days of thy father light and -understanding and wisdom, like the wisdom of the gods, was found in -him; whom the king Nebuchadnezzar thy father, the king, I say, thy -father, made master of the magicians, astrologers, Chaldeans, and -soothsayers; 5:12 Forasmuch as an excellent spirit, and knowledge, and -understanding, interpreting of dreams, and shewing of hard sentences, -and dissolving of doubts, were found in the same Daniel, whom the king -named Belteshazzar: now let Daniel be called, and he will shew the -interpretation. - -5:13 Then was Daniel brought in before the king. And the king spake -and said unto Daniel, Art thou that Daniel, which art of the children -of the captivity of Judah, whom the king my father brought out of -Jewry? 5:14 I have even heard of thee, that the spirit of the gods is -in thee, and that light and understanding and excellent wisdom is -found in thee. - -5:15 And now the wise men, the astrologers, have been brought in -before me, that they should read this writing, and make known unto me -the interpretation thereof: but they could not shew the interpretation -of the thing: 5:16 And I have heard of thee, that thou canst make -interpretations, and dissolve doubts: now if thou canst read the -writing, and make known to me the interpretation thereof, thou shalt -be clothed with scarlet, and have a chain of gold about thy neck, and -shalt be the third ruler in the kingdom. - -5:17 Then Daniel answered and said before the king, Let thy gifts be -to thyself, and give thy rewards to another; yet I will read the -writing unto the king, and make known to him the interpretation. - -5:18 O thou king, the most high God gave Nebuchadnezzar thy father a -kingdom, and majesty, and glory, and honour: 5:19 And for the majesty -that he gave him, all people, nations, and languages, trembled and -feared before him: whom he would he slew; and whom he would he kept -alive; and whom he would he set up; and whom he would he put down. - -5:20 But when his heart was lifted up, and his mind hardened in pride, -he was deposed from his kingly throne, and they took his glory from -him: 5:21 And he was driven from the sons of men; and his heart was -made like the beasts, and his dwelling was with the wild asses: they -fed him with grass like oxen, and his body was wet with the dew of -heaven; till he knew that the most high God ruled in the kingdom of -men, and that he appointeth over it whomsoever he will. - -5:22 And thou his son, O Belshazzar, hast not humbled thine heart, -though thou knewest all this; 5:23 But hast lifted up thyself against -the Lord of heaven; and they have brought the vessels of his house -before thee, and thou, and thy lords, thy wives, and thy concubines, -have drunk wine in them; and thou hast praised the gods of silver, and -gold, of brass, iron, wood, and stone, which see not, nor hear, nor -know: and the God in whose hand thy breath is, and whose are all thy -ways, hast thou not glorified: 5:24 Then was the part of the hand sent -from him; and this writing was written. - -5:25 And this is the writing that was written, MENE, MENE, TEKEL, -UPHARSIN. - -5:26 This is the interpretation of the thing: MENE; God hath numbered -thy kingdom, and finished it. - -5:27 TEKEL; Thou art weighed in the balances, and art found wanting. - -5:28 PERES; Thy kingdom is divided, and given to the Medes and -Persians. - -5:29 Then commanded Belshazzar, and they clothed Daniel with scarlet, -and put a chain of gold about his neck, and made a proclamation -concerning him, that he should be the third ruler in the kingdom. - -5:30 In that night was Belshazzar the king of the Chaldeans slain. - -5:31 And Darius the Median took the kingdom, being about threescore -and two years old. - -6:1 It pleased Darius to set over the kingdom an hundred and twenty -princes, which should be over the whole kingdom; 6:2 And over these -three presidents; of whom Daniel was first: that the princes might -give accounts unto them, and the king should have no damage. - -6:3 Then this Daniel was preferred above the presidents and princes, -because an excellent spirit was in him; and the king thought to set -him over the whole realm. - -6:4 Then the presidents and princes sought to find occasion against -Daniel concerning the kingdom; but they could find none occasion nor -fault; forasmuch as he was faithful, neither was there any error or -fault found in him. - -6:5 Then said these men, We shall not find any occasion against this -Daniel, except we find it against him concerning the law of his God. - -6:6 Then these presidents and princes assembled together to the king, -and said thus unto him, King Darius, live for ever. - -6:7 All the presidents of the kingdom, the governors, and the princes, -the counsellors, and the captains, have consulted together to -establish a royal statute, and to make a firm decree, that whosoever -shall ask a petition of any God or man for thirty days, save of thee, -O king, he shall be cast into the den of lions. - -6:8 Now, O king, establish the decree, and sign the writing, that it -be not changed, according to the law of the Medes and Persians, which -altereth not. - -6:9 Wherefore king Darius signed the writing and the decree. - -6:10 Now when Daniel knew that the writing was signed, he went into -his house; and his windows being open in his chamber toward Jerusalem, -he kneeled upon his knees three times a day, and prayed, and gave -thanks before his God, as he did aforetime. - -6:11 Then these men assembled, and found Daniel praying and making -supplication before his God. - -6:12 Then they came near, and spake before the king concerning the -king's decree; Hast thou not signed a decree, that every man that -shall ask a petition of any God or man within thirty days, save of -thee, O king, shall be cast into the den of lions? The king answered -and said, The thing is true, according to the law of the Medes and -Persians, which altereth not. - -6:13 Then answered they and said before the king, That Daniel, which -is of the children of the captivity of Judah, regardeth not thee, O -king, nor the decree that thou hast signed, but maketh his petition -three times a day. - -6:14 Then the king, when he heard these words, was sore displeased -with himself, and set his heart on Daniel to deliver him: and he -laboured till the going down of the sun to deliver him. - -6:15 Then these men assembled unto the king, and said unto the king, -Know, O king, that the law of the Medes and Persians is, That no -decree nor statute which the king establisheth may be changed. - -6:16 Then the king commanded, and they brought Daniel, and cast him -into the den of lions. Now the king spake and said unto Daniel, Thy -God whom thou servest continually, he will deliver thee. - -6:17 And a stone was brought, and laid upon the mouth of the den; and -the king sealed it with his own signet, and with the signet of his -lords; that the purpose might not be changed concerning Daniel. - -6:18 Then the king went to his palace, and passed the night fasting: -neither were instruments of musick brought before him: and his sleep -went from him. - -6:19 Then the king arose very early in the morning, and went in haste -unto the den of lions. - -6:20 And when he came to the den, he cried with a lamentable voice -unto Daniel: and the king spake and said to Daniel, O Daniel, servant -of the living God, is thy God, whom thou servest continually, able to -deliver thee from the lions? 6:21 Then said Daniel unto the king, O -king, live for ever. - -6:22 My God hath sent his angel, and hath shut the lions' mouths, that -they have not hurt me: forasmuch as before him innocency was found in -me; and also before thee, O king, have I done no hurt. - -6:23 Then was the king exceedingly glad for him, and commanded that -they should take Daniel up out of the den. So Daniel was taken up out -of the den, and no manner of hurt was found upon him, because he -believed in his God. - -6:24 And the king commanded, and they brought those men which had -accused Daniel, and they cast them into the den of lions, them, their -children, and their wives; and the lions had the mastery of them, and -brake all their bones in pieces or ever they came at the bottom of the -den. - -6:25 Then king Darius wrote unto all people, nations, and languages, -that dwell in all the earth; Peace be multiplied unto you. - -6:26 I make a decree, That in every dominion of my kingdom men tremble -and fear before the God of Daniel: for he is the living God, and -stedfast for ever, and his kingdom that which shall not be destroyed, -and his dominion shall be even unto the end. - -6:27 He delivereth and rescueth, and he worketh signs and wonders in -heaven and in earth, who hath delivered Daniel from the power of the -lions. - -6:28 So this Daniel prospered in the reign of Darius, and in the reign -of Cyrus the Persian. - -7:1 In the first year of Belshazzar king of Babylon Daniel had a dream -and visions of his head upon his bed: then he wrote the dream, and -told the sum of the matters. - -7:2 Daniel spake and said, I saw in my vision by night, and, behold, -the four winds of the heaven strove upon the great sea. - -7:3 And four great beasts came up from the sea, diverse one from -another. - -7:4 The first was like a lion, and had eagle's wings: I beheld till -the wings thereof were plucked, and it was lifted up from the earth, -and made stand upon the feet as a man, and a man's heart was given to -it. - -7:5 And behold another beast, a second, like to a bear, and it raised -up itself on one side, and it had three ribs in the mouth of it -between the teeth of it: and they said thus unto it, Arise, devour -much flesh. - -7:6 After this I beheld, and lo another, like a leopard, which had -upon the back of it four wings of a fowl; the beast had also four -heads; and dominion was given to it. - -7:7 After this I saw in the night visions, and behold a fourth beast, -dreadful and terrible, and strong exceedingly; and it had great iron -teeth: it devoured and brake in pieces, and stamped the residue with -the feet of it: and it was diverse from all the beasts that were -before it; and it had ten horns. - -7:8 I considered the horns, and, behold, there came up among them -another little horn, before whom there were three of the first horns -plucked up by the roots: and, behold, in this horn were eyes like the -eyes of man, and a mouth speaking great things. - -7:9 I beheld till the thrones were cast down, and the Ancient of days -did sit, whose garment was white as snow, and the hair of his head -like the pure wool: his throne was like the fiery flame, and his -wheels as burning fire. - -7:10 A fiery stream issued and came forth from before him: thousand -thousands ministered unto him, and ten thousand times ten thousand -stood before him: the judgment was set, and the books were opened. - -7:11 I beheld then because of the voice of the great words which the -horn spake: I beheld even till the beast was slain, and his body -destroyed, and given to the burning flame. - -7:12 As concerning the rest of the beasts, they had their dominion -taken away: yet their lives were prolonged for a season and time. - -7:13 I saw in the night visions, and, behold, one like the Son of man -came with the clouds of heaven, and came to the Ancient of days, and -they brought him near before him. - -7:14 And there was given him dominion, and glory, and a kingdom, that -all people, nations, and languages, should serve him: his dominion is -an everlasting dominion, which shall not pass away, and his kingdom -that which shall not be destroyed. - -7:15 I Daniel was grieved in my spirit in the midst of my body, and -the visions of my head troubled me. - -7:16 I came near unto one of them that stood by, and asked him the -truth of all this. So he told me, and made me know the interpretation -of the things. - -7:17 These great beasts, which are four, are four kings, which shall -arise out of the earth. - -7:18 But the saints of the most High shall take the kingdom, and -possess the kingdom for ever, even for ever and ever. - -7:19 Then I would know the truth of the fourth beast, which was -diverse from all the others, exceeding dreadful, whose teeth were of -iron, and his nails of brass; which devoured, brake in pieces, and -stamped the residue with his feet; 7:20 And of the ten horns that were -in his head, and of the other which came up, and before whom three -fell; even of that horn that had eyes, and a mouth that spake very -great things, whose look was more stout than his fellows. - -7:21 I beheld, and the same horn made war with the saints, and -prevailed against them; 7:22 Until the Ancient of days came, and -judgment was given to the saints of the most High; and the time came -that the saints possessed the kingdom. - -7:23 Thus he said, The fourth beast shall be the fourth kingdom upon -earth, which shall be diverse from all kingdoms, and shall devour the -whole earth, and shall tread it down, and break it in pieces. - -7:24 And the ten horns out of this kingdom are ten kings that shall -arise: and another shall rise after them; and he shall be diverse from -the first, and he shall subdue three kings. - -7:25 And he shall speak great words against the most High, and shall -wear out the saints of the most High, and think to change times and -laws: and they shall be given into his hand until a time and times and -the dividing of time. - -7:26 But the judgment shall sit, and they shall take away his -dominion, to consume and to destroy it unto the end. - -7:27 And the kingdom and dominion, and the greatness of the kingdom -under the whole heaven, shall be given to the people of the saints of -the most High, whose kingdom is an everlasting kingdom, and all -dominions shall serve and obey him. - -7:28 Hitherto is the end of the matter. As for me Daniel, my -cogitations much troubled me, and my countenance changed in me: but I -kept the matter in my heart. - -8:1 In the third year of the reign of king Belshazzar a vision -appeared unto me, even unto me Daniel, after that which appeared unto -me at the first. - -8:2 And I saw in a vision; and it came to pass, when I saw, that I was -at Shushan in the palace, which is in the province of Elam; and I saw -in a vision, and I was by the river of Ulai. - -8:3 Then I lifted up mine eyes, and saw, and, behold, there stood -before the river a ram which had two horns: and the two horns were -high; but one was higher than the other, and the higher came up last. - -8:4 I saw the ram pushing westward, and northward, and southward; so -that no beasts might stand before him, neither was there any that -could deliver out of his hand; but he did according to his will, and -became great. - -8:5 And as I was considering, behold, an he goat came from the west on -the face of the whole earth, and touched not the ground: and the goat -had a notable horn between his eyes. - -8:6 And he came to the ram that had two horns, which I had seen -standing before the river, and ran unto him in the fury of his power. - -8:7 And I saw him come close unto the ram, and he was moved with -choler against him, and smote the ram, and brake his two horns: and -there was no power in the ram to stand before him, but he cast him -down to the ground, and stamped upon him: and there was none that -could deliver the ram out of his hand. - -8:8 Therefore the he goat waxed very great: and when he was strong, -the great horn was broken; and for it came up four notable ones toward -the four winds of heaven. - -8:9 And out of one of them came forth a little horn, which waxed -exceeding great, toward the south, and toward the east, and toward the -pleasant land. - -8:10 And it waxed great, even to the host of heaven; and it cast down -some of the host and of the stars to the ground, and stamped upon -them. - -8:11 Yea, he magnified himself even to the prince of the host, and by -him the daily sacrifice was taken away, and the place of the sanctuary -was cast down. - -8:12 And an host was given him against the daily sacrifice by reason -of transgression, and it cast down the truth to the ground; and it -practised, and prospered. - -8:13 Then I heard one saint speaking, and another saint said unto that -certain saint which spake, How long shall be the vision concerning the -daily sacrifice, and the transgression of desolation, to give both the -sanctuary and the host to be trodden under foot? 8:14 And he said -unto me, Unto two thousand and three hundred days; then shall the -sanctuary be cleansed. - -8:15 And it came to pass, when I, even I Daniel, had seen the vision, -and sought for the meaning, then, behold, there stood before me as the -appearance of a man. - -8:16 And I heard a man's voice between the banks of Ulai, which -called, and said, Gabriel, make this man to understand the vision. - -8:17 So he came near where I stood: and when he came, I was afraid, -and fell upon my face: but he said unto me, Understand, O son of man: -for at the time of the end shall be the vision. - -8:18 Now as he was speaking with me, I was in a deep sleep on my face -toward the ground: but he touched me, and set me upright. - -8:19 And he said, Behold, I will make thee know what shall be in the -last end of the indignation: for at the time appointed the end shall -be. - -8:20 The ram which thou sawest having two horns are the kings of Media -and Persia. - -8:21 And the rough goat is the king of Grecia: and the great horn that -is between his eyes is the first king. - -8:22 Now that being broken, whereas four stood up for it, four -kingdoms shall stand up out of the nation, but not in his power. - -8:23 And in the latter time of their kingdom, when the transgressors -are come to the full, a king of fierce countenance, and understanding -dark sentences, shall stand up. - -8:24 And his power shall be mighty, but not by his own power: and he -shall destroy wonderfully, and shall prosper, and practise, and shall -destroy the mighty and the holy people. - -8:25 And through his policy also he shall cause craft to prosper in -his hand; and he shall magnify himself in his heart, and by peace -shall destroy many: he shall also stand up against the Prince of -princes; but he shall be broken without hand. - -8:26 And the vision of the evening and the morning which was told is -true: wherefore shut thou up the vision; for it shall be for many -days. - -8:27 And I Daniel fainted, and was sick certain days; afterward I rose -up, and did the king's business; and I was astonished at the vision, -but none understood it. - -9:1 In the first year of Darius the son of Ahasuerus, of the seed of -the Medes, which was made king over the realm of the Chaldeans; 9:2 In -the first year of his reign I Daniel understood by books the number of -the years, whereof the word of the LORD came to Jeremiah the prophet, -that he would accomplish seventy years in the desolations of -Jerusalem. - -9:3 And I set my face unto the Lord God, to seek by prayer and -supplications, with fasting, and sackcloth, and ashes: 9:4 And I -prayed unto the LORD my God, and made my confession, and said, O Lord, -the great and dreadful God, keeping the covenant and mercy to them -that love him, and to them that keep his commandments; 9:5 We have -sinned, and have committed iniquity, and have done wickedly, and have -rebelled, even by departing from thy precepts and from thy judgments: -9:6 Neither have we hearkened unto thy servants the prophets, which -spake in thy name to our kings, our princes, and our fathers, and to -all the people of the land. - -9:7 O LORD, righteousness belongeth unto thee, but unto us confusion -of faces, as at this day; to the men of Judah, and to the inhabitants -of Jerusalem, and unto all Israel, that are near, and that are far -off, through all the countries whither thou hast driven them, because -of their trespass that they have trespassed against thee. - -9:8 O Lord, to us belongeth confusion of face, to our kings, to our -princes, and to our fathers, because we have sinned against thee. - -9:9 To the Lord our God belong mercies and forgivenesses, though we -have rebelled against him; 9:10 Neither have we obeyed the voice of -the LORD our God, to walk in his laws, which he set before us by his -servants the prophets. - -9:11 Yea, all Israel have transgressed thy law, even by departing, -that they might not obey thy voice; therefore the curse is poured upon -us, and the oath that is written in the law of Moses the servant of -God, because we have sinned against him. - -9:12 And he hath confirmed his words, which he spake against us, and -against our judges that judged us, by bringing upon us a great evil: -for under the whole heaven hath not been done as hath been done upon -Jerusalem. - -9:13 As it is written in the law of Moses, all this evil is come upon -us: yet made we not our prayer before the LORD our God, that we might -turn from our iniquities, and understand thy truth. - -9:14 Therefore hath the LORD watched upon the evil, and brought it -upon us: for the LORD our God is righteous in all his works which he -doeth: for we obeyed not his voice. - -9:15 And now, O Lord our God, that hast brought thy people forth out -of the land of Egypt with a mighty hand, and hast gotten thee renown, -as at this day; we have sinned, we have done wickedly. - -9:16 O LORD, according to all thy righteousness, I beseech thee, let -thine anger and thy fury be turned away from thy city Jerusalem, thy -holy mountain: because for our sins, and for the iniquities of our -fathers, Jerusalem and thy people are become a reproach to all that -are about us. - -9:17 Now therefore, O our God, hear the prayer of thy servant, and his -supplications, and cause thy face to shine upon thy sanctuary that is -desolate, for the Lord's sake. - -9:18 O my God, incline thine ear, and hear; open thine eyes, and -behold our desolations, and the city which is called by thy name: for -we do not present our supplications before thee for our -righteousnesses, but for thy great mercies. - -9:19 O Lord, hear; O Lord, forgive; O Lord, hearken and do; defer not, -for thine own sake, O my God: for thy city and thy people are called -by thy name. - -9:20 And whiles I was speaking, and praying, and confessing my sin and -the sin of my people Israel, and presenting my supplication before the -LORD my God for the holy mountain of my God; 9:21 Yea, whiles I was -speaking in prayer, even the man Gabriel, whom I had seen in the -vision at the beginning, being caused to fly swiftly, touched me about -the time of the evening oblation. - -9:22 And he informed me, and talked with me, and said, O Daniel, I am -now come forth to give thee skill and understanding. - -9:23 At the beginning of thy supplications the commandment came forth, -and I am come to shew thee; for thou art greatly beloved: therefore -understand the matter, and consider the vision. - -9:24 Seventy weeks are determined upon thy people and upon thy holy -city, to finish the transgression, and to make an end of sins, and to -make reconciliation for iniquity, and to bring in everlasting -righteousness, and to seal up the vision and prophecy, and to anoint -the most Holy. - -9:25 Know therefore and understand, that from the going forth of the -commandment to restore and to build Jerusalem unto the Messiah the -Prince shall be seven weeks, and threescore and two weeks: the street -shall be built again, and the wall, even in troublous times. - -9:26 And after threescore and two weeks shall Messiah be cut off, but -not for himself: and the people of the prince that shall come shall -destroy the city and the sanctuary; and the end thereof shall be with -a flood, and unto the end of the war desolations are determined. - -9:27 And he shall confirm the covenant with many for one week: and in -the midst of the week he shall cause the sacrifice and the oblation to -cease, and for the overspreading of abominations he shall make it -desolate, even until the consummation, and that determined shall be -poured upon the desolate. - -10:1 In the third year of Cyrus king of Persia a thing was revealed -unto Daniel, whose name was called Belteshazzar; and the thing was -true, but the time appointed was long: and he understood the thing, -and had understanding of the vision. - -10:2 In those days I Daniel was mourning three full weeks. - -10:3 I ate no pleasant bread, neither came flesh nor wine in my mouth, -neither did I anoint myself at all, till three whole weeks were -fulfilled. - -10:4 And in the four and twentieth day of the first month, as I was by -the side of the great river, which is Hiddekel; 10:5 Then I lifted up -mine eyes, and looked, and behold a certain man clothed in linen, -whose loins were girded with fine gold of Uphaz: 10:6 His body also -was like the beryl, and his face as the appearance of lightning, and -his eyes as lamps of fire, and his arms and his feet like in colour to -polished brass, and the voice of his words like the voice of a -multitude. - -10:7 And I Daniel alone saw the vision: for the men that were with me -saw not the vision; but a great quaking fell upon them, so that they -fled to hide themselves. - -10:8 Therefore I was left alone, and saw this great vision, and there -remained no strength in me: for my comeliness was turned in me into -corruption, and I retained no strength. - -10:9 Yet heard I the voice of his words: and when I heard the voice of -his words, then was I in a deep sleep on my face, and my face toward -the ground. - -10:10 And, behold, an hand touched me, which set me upon my knees and -upon the palms of my hands. - -10:11 And he said unto me, O Daniel, a man greatly beloved, understand -the words that I speak unto thee, and stand upright: for unto thee am -I now sent. - -And when he had spoken this word unto me, I stood trembling. - -10:12 Then said he unto me, Fear not, Daniel: for from the first day -that thou didst set thine heart to understand, and to chasten thyself -before thy God, thy words were heard, and I am come for thy words. - -10:13 But the prince of the kingdom of Persia withstood me one and -twenty days: but, lo, Michael, one of the chief princes, came to help -me; and I remained there with the kings of Persia. - -10:14 Now I am come to make thee understand what shall befall thy -people in the latter days: for yet the vision is for many days. - -10:15 And when he had spoken such words unto me, I set my face toward -the ground, and I became dumb. - -10:16 And, behold, one like the similitude of the sons of men touched -my lips: then I opened my mouth, and spake, and said unto him that -stood before me, O my lord, by the vision my sorrows are turned upon -me, and I have retained no strength. - -10:17 For how can the servant of this my lord talk with this my lord? -for as for me, straightway there remained no strength in me, neither -is there breath left in me. - -10:18 Then there came again and touched me one like the appearance of -a man, and he strengthened me, 10:19 And said, O man greatly beloved, -fear not: peace be unto thee, be strong, yea, be strong. And when he -had spoken unto me, I was strengthened, and said, Let my lord speak; -for thou hast strengthened me. - -10:20 Then said he, Knowest thou wherefore I come unto thee? and now -will I return to fight with the prince of Persia: and when I am gone -forth, lo, the prince of Grecia shall come. - -10:21 But I will shew thee that which is noted in the scripture of -truth: and there is none that holdeth with me in these things, but -Michael your prince. - -11:1 Also I in the first year of Darius the Mede, even I, stood to -confirm and to strengthen him. - -11:2 And now will I shew thee the truth. Behold, there shall stand up -yet three kings in Persia; and the fourth shall be far richer than -they all: and by his strength through his riches he shall stir up all -against the realm of Grecia. - -11:3 And a mighty king shall stand up, that shall rule with great -dominion, and do according to his will. - -11:4 And when he shall stand up, his kingdom shall be broken, and -shall be divided toward the four winds of heaven; and not to his -posterity, nor according to his dominion which he ruled: for his -kingdom shall be plucked up, even for others beside those. - -11:5 And the king of the south shall be strong, and one of his -princes; and he shall be strong above him, and have dominion; his -dominion shall be a great dominion. - -11:6 And in the end of years they shall join themselves together; for -the king's daughter of the south shall come to the king of the north -to make an agreement: but she shall not retain the power of the arm; -neither shall he stand, nor his arm: but she shall be given up, and -they that brought her, and he that begat her, and he that strengthened -her in these times. - -11:7 But out of a branch of her roots shall one stand up in his -estate, which shall come with an army, and shall enter into the -fortress of the king of the north, and shall deal against them, and -shall prevail: 11:8 And shall also carry captives into Egypt their -gods, with their princes, and with their precious vessels of silver -and of gold; and he shall continue more years than the king of the -north. - -11:9 So the king of the south shall come into his kingdom, and shall -return into his own land. - -11:10 But his sons shall be stirred up, and shall assemble a multitude -of great forces: and one shall certainly come, and overflow, and pass -through: then shall he return, and be stirred up, even to his -fortress. - -11:11 And the king of the south shall be moved with choler, and shall -come forth and fight with him, even with the king of the north: and he -shall set forth a great multitude; but the multitude shall be given -into his hand. - -11:12 And when he hath taken away the multitude, his heart shall be -lifted up; and he shall cast down many ten thousands: but he shall not -be strengthened by it. - -11:13 For the king of the north shall return, and shall set forth a -multitude greater than the former, and shall certainly come after -certain years with a great army and with much riches. - -11:14 And in those times there shall many stand up against the king of -the south: also the robbers of thy people shall exalt themselves to -establish the vision; but they shall fall. - -11:15 So the king of the north shall come, and cast up a mount, and -take the most fenced cities: and the arms of the south shall not -withstand, neither his chosen people, neither shall there be any -strength to withstand. - -11:16 But he that cometh against him shall do according to his own -will, and none shall stand before him: and he shall stand in the -glorious land, which by his hand shall be consumed. - -11:17 He shall also set his face to enter with the strength of his -whole kingdom, and upright ones with him; thus shall he do: and he -shall give him the daughter of women, corrupting her: but she shall -not stand on his side, neither be for him. - -11:18 After this shall he turn his face unto the isles, and shall take -many: but a prince for his own behalf shall cause the reproach offered -by him to cease; without his own reproach he shall cause it to turn -upon him. - -11:19 Then he shall turn his face toward the fort of his own land: but -he shall stumble and fall, and not be found. - -11:20 Then shall stand up in his estate a raiser of taxes in the glory -of the kingdom: but within few days he shall be destroyed, neither in -anger, nor in battle. - -11:21 And in his estate shall stand up a vile person, to whom they -shall not give the honour of the kingdom: but he shall come in -peaceably, and obtain the kingdom by flatteries. - -11:22 And with the arms of a flood shall they be overflown from before -him, and shall be broken; yea, also the prince of the covenant. - -11:23 And after the league made with him he shall work deceitfully: -for he shall come up, and shall become strong with a small people. - -11:24 He shall enter peaceably even upon the fattest places of the -province; and he shall do that which his fathers have not done, nor -his fathers' fathers; he shall scatter among them the prey, and spoil, -and riches: yea, and he shall forecast his devices against the strong -holds, even for a time. - -11:25 And he shall stir up his power and his courage against the king -of the south with a great army; and the king of the south shall be -stirred up to battle with a very great and mighty army; but he shall -not stand: for they shall forecast devices against him. - -11:26 Yea, they that feed of the portion of his meat shall destroy -him, and his army shall overflow: and many shall fall down slain. - -11:27 And both of these kings' hearts shall be to do mischief, and -they shall speak lies at one table; but it shall not prosper: for yet -the end shall be at the time appointed. - -11:28 Then shall he return into his land with great riches; and his -heart shall be against the holy covenant; and he shall do exploits, -and return to his own land. - -11:29 At the time appointed he shall return, and come toward the -south; but it shall not be as the former, or as the latter. - -11:30 For the ships of Chittim shall come against him: therefore he -shall be grieved, and return, and have indignation against the holy -covenant: so shall he do; he shall even return, and have intelligence -with them that forsake the holy covenant. - -11:31 And arms shall stand on his part, and they shall pollute the -sanctuary of strength, and shall take away the daily sacrifice, and -they shall place the abomination that maketh desolate. - -11:32 And such as do wickedly against the covenant shall he corrupt by -flatteries: but the people that do know their God shall be strong, and -do exploits. - -11:33 And they that understand among the people shall instruct many: -yet they shall fall by the sword, and by flame, by captivity, and by -spoil, many days. - -11:34 Now when they shall fall, they shall be holpen with a little -help: but many shall cleave to them with flatteries. - -11:35 And some of them of understanding shall fall, to try them, and -to purge, and to make them white, even to the time of the end: because -it is yet for a time appointed. - -11:36 And the king shall do according to his will; and he shall exalt -himself, and magnify himself above every god, and shall speak -marvellous things against the God of gods, and shall prosper till the -indignation be accomplished: for that that is determined shall be -done. - -11:37 Neither shall he regard the God of his fathers, nor the desire -of women, nor regard any god: for he shall magnify himself above all. - -11:38 But in his estate shall he honour the God of forces: and a god -whom his fathers knew not shall he honour with gold, and silver, and -with precious stones, and pleasant things. - -11:39 Thus shall he do in the most strong holds with a strange god, -whom he shall acknowledge and increase with glory: and he shall cause -them to rule over many, and shall divide the land for gain. - -11:40 And at the time of the end shall the king of the south push at -him: and the king of the north shall come against him like a -whirlwind, with chariots, and with horsemen, and with many ships; and -he shall enter into the countries, and shall overflow and pass over. - -11:41 He shall enter also into the glorious land, and many countries -shall be overthrown: but these shall escape out of his hand, even -Edom, and Moab, and the chief of the children of Ammon. - -11:42 He shall stretch forth his hand also upon the countries: and the -land of Egypt shall not escape. - -11:43 But he shall have power over the treasures of gold and of -silver, and over all the precious things of Egypt: and the Libyans and -the Ethiopians shall be at his steps. - -11:44 But tidings out of the east and out of the north shall trouble -him: therefore he shall go forth with great fury to destroy, and -utterly to make away many. - -11:45 And he shall plant the tabernacles of his palace between the -seas in the glorious holy mountain; yet he shall come to his end, and -none shall help him. - -12:1 And at that time shall Michael stand up, the great prince which -standeth for the children of thy people: and there shall be a time of -trouble, such as never was since there was a nation even to that same -time: and at that time thy people shall be delivered, every one that -shall be found written in the book. - -12:2 And many of them that sleep in the dust of the earth shall awake, -some to everlasting life, and some to shame and everlasting contempt. - -12:3 And they that be wise shall shine as the brightness of the -firmament; and they that turn many to righteousness as the stars for -ever and ever. - -12:4 But thou, O Daniel, shut up the words, and seal the book, even to -the time of the end: many shall run to and fro, and knowledge shall be -increased. - -12:5 Then I Daniel looked, and, behold, there stood other two, the one -on this side of the bank of the river, and the other on that side of -the bank of the river. - -12:6 And one said to the man clothed in linen, which was upon the -waters of the river, How long shall it be to the end of these wonders? -12:7 And I heard the man clothed in linen, which was upon the waters -of the river, when he held up his right hand and his left hand unto -heaven, and sware by him that liveth for ever that it shall be for a -time, times, and an half; and when he shall have accomplished to -scatter the power of the holy people, all these things shall be -finished. - -12:8 And I heard, but I understood not: then said I, O my Lord, what -shall be the end of these things? 12:9 And he said, Go thy way, -Daniel: for the words are closed up and sealed till the time of the -end. - -12:10 Many shall be purified, and made white, and tried; but the -wicked shall do wickedly: and none of the wicked shall understand; but -the wise shall understand. - -12:11 And from the time that the daily sacrifice shall be taken away, -and the abomination that maketh desolate set up, there shall be a -thousand two hundred and ninety days. - -12:12 Blessed is he that waiteth, and cometh to the thousand three -hundred and five and thirty days. - -12:13 But go thou thy way till the end be: for thou shalt rest, -and stand in thy lot at the end of the days. - - - - -Hosea - - -1:1 The word of the LORD that came unto Hosea, the son of Beeri, in -the days of Uzziah, Jotham, Ahaz, and Hezekiah, kings of Judah, and in -the days of Jeroboam the son of Joash, king of Israel. - -1:2 The beginning of the word of the LORD by Hosea. And the LORD said -to Hosea, Go, take unto thee a wife of whoredoms and children of -whoredoms: for the land hath committed great whoredom, departing from -the LORD. - -1:3 So he went and took Gomer the daughter of Diblaim; which -conceived, and bare him a son. - -1:4 And the LORD said unto him, Call his name Jezreel; for yet a -little while, and I will avenge the blood of Jezreel upon the house of -Jehu, and will cause to cease the kingdom of the house of Israel. - -1:5 And it shall come to pass at that day, that I will break the bow -of Israel, in the valley of Jezreel. - -1:6 And she conceived again, and bare a daughter. And God said unto -him, Call her name Loruhamah: for I will no more have mercy upon the -house of Israel; but I will utterly take them away. - -1:7 But I will have mercy upon the house of Judah, and will save them -by the LORD their God, and will not save them by bow, nor by sword, -nor by battle, by horses, nor by horsemen. - -1:8 Now when she had weaned Loruhamah, she conceived, and bare a son. - -1:9 Then said God, Call his name Loammi: for ye are not my people, and -I will not be your God. - -1:10 Yet the number of the children of Israel shall be as the sand of -the sea, which cannot be measured nor numbered; and it shall come to -pass, that in the place where it was said unto them, Ye are not my -people, there it shall be said unto them, Ye are the sons of the -living God. - -1:11 Then shall the children of Judah and the children of Israel be -gathered together, and appoint themselves one head, and they shall -come up out of the land: for great shall be the day of Jezreel. - -2:1 Say ye unto your brethren, Ammi; and to your sisters, Ruhamah. - -2:2 Plead with your mother, plead: for she is not my wife, neither am -I her husband: let her therefore put away her whoredoms out of her -sight, and her adulteries from between her breasts; 2:3 Lest I strip -her naked, and set her as in the day that she was born, and make her -as a wilderness, and set her like a dry land, and slay her with -thirst. - -2:4 And I will not have mercy upon her children; for they be the -children of whoredoms. - -2:5 For their mother hath played the harlot: she that conceived them -hath done shamefully: for she said, I will go after my lovers, that -give me my bread and my water, my wool and my flax, mine oil and my -drink. - -2:6 Therefore, behold, I will hedge up thy way with thorns, and make a -wall, that she shall not find her paths. - -2:7 And she shall follow after her lovers, but she shall not overtake -them; and she shall seek them, but shall not find them: then shall she -say, I will go and return to my first husband; for then was it better -with me than now. - -2:8 For she did not know that I gave her corn, and wine, and oil, and -multiplied her silver and gold, which they prepared for Baal. - -2:9 Therefore will I return, and take away my corn in the time -thereof, and my wine in the season thereof, and will recover my wool -and my flax given to cover her nakedness. - -2:10 And now will I discover her lewdness in the sight of her lovers, -and none shall deliver her out of mine hand. - -2:11 I will also cause all her mirth to cease, her feast days, her new -moons, and her sabbaths, and all her solemn feasts. - -2:12 And I will destroy her vines and her fig trees, whereof she hath -said, These are my rewards that my lovers have given me: and I will -make them a forest, and the beasts of the field shall eat them. - -2:13 And I will visit upon her the days of Baalim, wherein she burned -incense to them, and she decked herself with her earrings and her -jewels, and she went after her lovers, and forgat me, saith the LORD. - -2:14 Therefore, behold, I will allure her, and bring her into the -wilderness, and speak comfortably unto her. - -2:15 And I will give her her vineyards from thence, and the valley of -Achor for a door of hope: and she shall sing there, as in the days of -her youth, and as in the day when she came up out of the land of -Egypt. - -2:16 And it shall be at that day, saith the LORD, that thou shalt call -me Ishi; and shalt call me no more Baali. - -2:17 For I will take away the names of Baalim out of her mouth, and -they shall no more be remembered by their name. - -2:18 And in that day will I make a covenant for them with the beasts -of the field and with the fowls of heaven, and with the creeping -things of the ground: and I will break the bow and the sword and the -battle out of the earth, and will make them to lie down safely. - -2:19 And I will betroth thee unto me for ever; yea, I will betroth -thee unto me in righteousness, and in judgment, and in lovingkindness, -and in mercies. - -2:20 I will even betroth thee unto me in faithfulness: and thou shalt -know the LORD. - -2:21 And it shall come to pass in that day, I will hear, saith the -LORD, I will hear the heavens, and they shall hear the earth; 2:22 And -the earth shall hear the corn, and the wine, and the oil; and they -shall hear Jezreel. - -2:23 And I will sow her unto me in the earth; and I will have mercy -upon her that had not obtained mercy; and I will say to them which -were not my people, Thou art my people; and they shall say, Thou art -my God. - -3:1 Then said the LORD unto me, Go yet, love a woman beloved of her -friend, yet an adulteress, according to the love of the LORD toward -the children of Israel, who look to other gods, and love flagons of -wine. - -3:2 So I bought her to me for fifteen pieces of silver, and for an -homer of barley, and an half homer of barley: 3:3 And I said unto her, -Thou shalt abide for me many days; thou shalt not play the harlot, and -thou shalt not be for another man: so will I also be for thee. - -3:4 For the children of Israel shall abide many days without a king, -and without a prince, and without a sacrifice, and without an image, -and without an ephod, and without teraphim: 3:5 Afterward shall the -children of Israel return, and seek the LORD their God, and David -their king; and shall fear the LORD and his goodness in the latter -days. - -4:1 Hear the word of the LORD, ye children of Israel: for the LORD -hath a controversy with the inhabitants of the land, because there is -no truth, nor mercy, nor knowledge of God in the land. - -4:2 By swearing, and lying, and killing, and stealing, and committing -adultery, they break out, and blood toucheth blood. - -4:3 Therefore shall the land mourn, and every one that dwelleth -therein shall languish, with the beasts of the field, and with the -fowls of heaven; yea, the fishes of the sea also shall be taken away. - -4:4 Yet let no man strive, nor reprove another: for thy people are as -they that strive with the priest. - -4:5 Therefore shalt thou fall in the day, and the prophet also shall -fall with thee in the night, and I will destroy thy mother. - -4:6 My people are destroyed for lack of knowledge: because thou hast -rejected knowledge, I will also reject thee, that thou shalt be no -priest to me: seeing thou hast forgotten the law of thy God, I will -also forget thy children. - -4:7 As they were increased, so they sinned against me: therefore will -I change their glory into shame. - -4:8 They eat up the sin of my people, and they set their heart on -their iniquity. - -4:9 And there shall be, like people, like priest: and I will punish -them for their ways, and reward them their doings. - -4:10 For they shall eat, and not have enough: they shall commit -whoredom, and shall not increase: because they have left off to take -heed to the LORD. - -4:11 Whoredom and wine and new wine take away the heart. - -4:12 My people ask counsel at their stocks, and their staff declareth -unto them: for the spirit of whoredoms hath caused them to err, and -they have gone a whoring from under their God. - -4:13 They sacrifice upon the tops of the mountains, and burn incense -upon the hills, under oaks and poplars and elms, because the shadow -thereof is good: therefore your daughters shall commit whoredom, and -your spouses shall commit adultery. - -4:14 I will not punish your daughters when they commit whoredom, nor -your spouses when they commit adultery: for themselves are separated -with whores, and they sacrifice with harlots: therefore the people -that doth not understand shall fall. - -4:15 Though thou, Israel, play the harlot, yet let not Judah offend; -and come not ye unto Gilgal, neither go ye up to Bethaven, nor swear, -The LORD liveth. - -4:16 For Israel slideth back as a backsliding heifer: now the LORD -will feed them as a lamb in a large place. - -4:17 Ephraim is joined to idols: let him alone. - -4:18 Their drink is sour: they have committed whoredom continually: -her rulers with shame do love, Give ye. - -4:19 The wind hath bound her up in her wings, and they shall be -ashamed because of their sacrifices. - -5:1 Hear ye this, O priests; and hearken, ye house of Israel; and give -ye ear, O house of the king; for judgment is toward you, because ye -have been a snare on Mizpah, and a net spread upon Tabor. - -5:2 And the revolters are profound to make slaughter, though I have -been a rebuker of them all. - -5:3 I know Ephraim, and Israel is not hid from me: for now, O Ephraim, -thou committest whoredom, and Israel is defiled. - -5:4 They will not frame their doings to turn unto their God: for the -spirit of whoredoms is in the midst of them, and they have not known -the LORD. - -5:5 And the pride of Israel doth testify to his face: therefore shall -Israel and Ephraim fall in their iniquity: Judah also shall fall with -them. - -5:6 They shall go with their flocks and with their herds to seek the -LORD; but they shall not find him; he hath withdrawn himself from -them. - -5:7 They have dealt treacherously against the LORD: for they have -begotten strange children: now shall a month devour them with their -portions. - -5:8 Blow ye the cornet in Gibeah, and the trumpet in Ramah: cry aloud -at Bethaven, after thee, O Benjamin. - -5:9 Ephraim shall be desolate in the day of rebuke: among the tribes -of Israel have I made known that which shall surely be. - -5:10 The princes of Judah were like them that remove the bound: -therefore I will pour out my wrath upon them like water. - -5:11 Ephraim is oppressed and broken in judgment, because he willingly -walked after the commandment. - -5:12 Therefore will I be unto Ephraim as a moth, and to the house of -Judah as rottenness. - -5:13 When Ephraim saw his sickness, and Judah saw his wound, then went -Ephraim to the Assyrian, and sent to king Jareb: yet could he not heal -you, nor cure you of your wound. - -5:14 For I will be unto Ephraim as a lion, and as a young lion to the -house of Judah: I, even I, will tear and go away; I will take away, -and none shall rescue him. - -5:15 I will go and return to my place, till they acknowledge their -offence, and seek my face: in their affliction they will seek me -early. - -6:1 Come, and let us return unto the LORD: for he hath torn, and he -will heal us; he hath smitten, and he will bind us up. - -6:2 After two days will he revive us: in the third day he will raise -us up, and we shall live in his sight. - -6:3 Then shall we know, if we follow on to know the LORD: his going -forth is prepared as the morning; and he shall come unto us as the -rain, as the latter and former rain unto the earth. - -6:4 O Ephraim, what shall I do unto thee? O Judah, what shall I do -unto thee? for your goodness is as a morning cloud, and as the early -dew it goeth away. - -6:5 Therefore have I hewed them by the prophets; I have slain them by -the words of my mouth: and thy judgments are as the light that goeth -forth. - -6:6 For I desired mercy, and not sacrifice; and the knowledge of God -more than burnt offerings. - -6:7 But they like men have transgressed the covenant: there have they -dealt treacherously against me. - -6:8 Gilead is a city of them that work iniquity, and is polluted with -blood. - -6:9 And as troops of robbers wait for a man, so the company of priests -murder in the way by consent: for they commit lewdness. - -6:10 I have seen an horrible thing in the house of Israel: there is -the whoredom of Ephraim, Israel is defiled. - -6:11 Also, O Judah, he hath set an harvest for thee, when I returned -the captivity of my people. - -7:1 When I would have healed Israel, then the iniquity of Ephraim was -discovered, and the wickedness of Samaria: for they commit falsehood; -and the thief cometh in, and the troop of robbers spoileth without. - -7:2 And they consider not in their hearts that I remember all their -wickedness: now their own doings have beset them about; they are -before my face. - -7:3 They make the king glad with their wickedness, and the princes -with their lies. - -7:4 They are all adulterers, as an oven heated by the baker, who -ceaseth from raising after he hath kneaded the dough, until it be -leavened. - -7:5 In the day of our king the princes have made him sick with bottles -of wine; he stretched out his hand with scorners. - -7:6 For they have made ready their heart like an oven, whiles they lie -in wait: their baker sleepeth all the night; in the morning it burneth -as a flaming fire. - -7:7 They are all hot as an oven, and have devoured their judges; all -their kings are fallen: there is none among them that calleth unto me. - -7:8 Ephraim, he hath mixed himself among the people; Ephraim is a cake -not turned. - -7:9 Strangers have devoured his strength, and he knoweth it not: yea, -gray hairs are here and there upon him, yet he knoweth not. - -7:10 And the pride of Israel testifieth to his face: and they do not -return to the LORD their God, nor seek him for all this. - -7:11 Ephraim also is like a silly dove without heart: they call to -Egypt, they go to Assyria. - -7:12 When they shall go, I will spread my net upon them; I will bring -them down as the fowls of the heaven; I will chastise them, as their -congregation hath heard. - -7:13 Woe unto them! for they have fled from me: destruction unto them! -because they have transgressed against me: though I have redeemed -them, yet they have spoken lies against me. - -7:14 And they have not cried unto me with their heart, when they -howled upon their beds: they assemble themselves for corn and wine, -and they rebel against me. - -7:15 Though I have bound and strengthened their arms, yet do they -imagine mischief against me. - -7:16 They return, but not to the most High: they are like a deceitful -bow: their princes shall fall by the sword for the rage of their -tongue: this shall be their derision in the land of Egypt. - -8:1 Set the trumpet to thy mouth. He shall come as an eagle against -the house of the LORD, because they have transgressed my covenant, and -trespassed against my law. - -8:2 Israel shall cry unto me, My God, we know thee. - -8:3 Israel hath cast off the thing that is good: the enemy shall -pursue him. - -8:4 They have set up kings, but not by me: they have made princes, and -I knew it not: of their silver and their gold have they made them -idols, that they may be cut off. - -8:5 Thy calf, O Samaria, hath cast thee off; mine anger is kindled -against them: how long will it be ere they attain to innocency? 8:6 -For from Israel was it also: the workman made it; therefore it is not -God: but the calf of Samaria shall be broken in pieces. - -8:7 For they have sown the wind, and they shall reap the whirlwind: it -hath no stalk; the bud shall yield no meal: if so be it yield, the -strangers shall swallow it up. - -8:8 Israel is swallowed up: now shall they be among the Gentiles as a -vessel wherein is no pleasure. - -8:9 For they are gone up to Assyria, a wild ass alone by himself: -Ephraim hath hired lovers. - -8:10 Yea, though they have hired among the nations, now will I gather -them, and they shall sorrow a little for the burden of the king of -princes. - -8:11 Because Ephraim hath made many altars to sin, altars shall be -unto him to sin. - -8:12 I have written to him the great things of my law, but they were -counted as a strange thing. - -8:13 They sacrifice flesh for the sacrifices of mine offerings, and -eat it; but the LORD accepteth them not; now will he remember their -iniquity, and visit their sins: they shall return to Egypt. - -8:14 For Israel hath forgotten his Maker, and buildeth temples; and -Judah hath multiplied fenced cities: but I will send a fire upon his -cities, and it shall devour the palaces thereof. - -9:1 Rejoice not, O Israel, for joy, as other people: for thou hast -gone a whoring from thy God, thou hast loved a reward upon every -cornfloor. - -9:2 The floor and the winepress shall not feed them, and the new wine -shall fail in her. - -9:3 They shall not dwell in the LORD's land; but Ephraim shall return -to Egypt, and they shall eat unclean things in Assyria. - -9:4 They shall not offer wine offerings to the LORD, neither shall -they be pleasing unto him: their sacrifices shall be unto them as the -bread of mourners; all that eat thereof shall be polluted: for their -bread for their soul shall not come into the house of the LORD. - -9:5 What will ye do in the solemn day, and in the day of the feast of -the LORD? 9:6 For, lo, they are gone because of destruction: Egypt -shall gather them up, Memphis shall bury them: the pleasant places for -their silver, nettles shall possess them: thorns shall be in their -tabernacles. - -9:7 The days of visitation are come, the days of recompence are come; -Israel shall know it: the prophet is a fool, the spiritual man is mad, -for the multitude of thine iniquity, and the great hatred. - -9:8 The watchman of Ephraim was with my God: but the prophet is a -snare of a fowler in all his ways, and hatred in the house of his God. - -9:9 They have deeply corrupted themselves, as in the days of Gibeah: -therefore he will remember their iniquity, he will visit their sins. - -9:10 I found Israel like grapes in the wilderness; I saw your fathers -as the firstripe in the fig tree at her first time: but they went to -Baalpeor, and separated themselves unto that shame; and their -abominations were according as they loved. - -9:11 As for Ephraim, their glory shall fly away like a bird, from the -birth, and from the womb, and from the conception. - -9:12 Though they bring up their children, yet will I bereave them, -that there shall not be a man left: yea, woe also to them when I -depart from them! 9:13 Ephraim, as I saw Tyrus, is planted in a -pleasant place: but Ephraim shall bring forth his children to the -murderer. - -9:14 Give them, O LORD: what wilt thou give? give them a miscarrying -womb and dry breasts. - -9:15 All their wickedness is in Gilgal: for there I hated them: for -the wickedness of their doings I will drive them out of mine house, I -will love them no more: all their princes are revolters. - -9:16 Ephraim is smitten, their root is dried up, they shall bear no -fruit: yea, though they bring forth, yet will I slay even the beloved -fruit of their womb. - -9:17 My God will cast them away, because they did not hearken unto -him: and they shall be wanderers among the nations. - -10:1 Israel is an empty vine, he bringeth forth fruit unto himself: -according to the multitude of his fruit he hath increased the altars; -according to the goodness of his land they have made goodly images. - -10:2 Their heart is divided; now shall they be found faulty: he shall -break down their altars, he shall spoil their images. - -10:3 For now they shall say, We have no king, because we feared not -the LORD; what then should a king do to us? 10:4 They have spoken -words, swearing falsely in making a covenant: thus judgment springeth -up as hemlock in the furrows of the field. - -10:5 The inhabitants of Samaria shall fear because of the calves of -Bethaven: for the people thereof shall mourn over it, and the priests -thereof that rejoiced on it, for the glory thereof, because it is -departed from it. - -10:6 It shall be also carried unto Assyria for a present to king -Jareb: Ephraim shall receive shame, and Israel shall be ashamed of his -own counsel. - -10:7 As for Samaria, her king is cut off as the foam upon the water. - -10:8 The high places also of Aven, the sin of Israel, shall be -destroyed: the thorn and the thistle shall come up on their altars; -and they shall say to the mountains, Cover us; and to the hills, Fall -on us. - -10:9 O Israel, thou hast sinned from the days of Gibeah: there they -stood: the battle in Gibeah against the children of iniquity did not -overtake them. - -10:10 It is in my desire that I should chastise them; and the people -shall be gathered against them, when they shall bind themselves in -their two furrows. - -10:11 And Ephraim is as an heifer that is taught, and loveth to tread -out the corn; but I passed over upon her fair neck: I will make -Ephraim to ride; Judah shall plow, and Jacob shall break his clods. - -10:12 Sow to yourselves in righteousness, reap in mercy; break up your -fallow ground: for it is time to seek the LORD, till he come and rain -righteousness upon you. - -10:13 Ye have plowed wickedness, ye have reaped iniquity; ye have -eaten the fruit of lies: because thou didst trust in thy way, in the -multitude of thy mighty men. - -10:14 Therefore shall a tumult arise among thy people, and all thy -fortresses shall be spoiled, as Shalman spoiled Betharbel in the day -of battle: the mother was dashed in pieces upon her children. - -10:15 So shall Bethel do unto you because of your great wickedness: in -a morning shall the king of Israel utterly be cut off. - -11:1 When Israel was a child, then I loved him, and called my son out -of Egypt. - -11:2 As they called them, so they went from them: they sacrificed unto -Baalim, and burned incense to graven images. - -11:3 I taught Ephraim also to go, taking them by their arms; but they -knew not that I healed them. - -11:4 I drew them with cords of a man, with bands of love: and I was to -them as they that take off the yoke on their jaws, and I laid meat -unto them. - -11:5 He shall not return into the land of Egypt, and the Assyrian -shall be his king, because they refused to return. - -11:6 And the sword shall abide on his cities, and shall consume his -branches, and devour them, because of their own counsels. - -11:7 And my people are bent to backsliding from me: though they called -them to the most High, none at all would exalt him. - -11:8 How shall I give thee up, Ephraim? how shall I deliver thee, -Israel? how shall I make thee as Admah? how shall I set thee as -Zeboim? mine heart is turned within me, my repentings are kindled -together. - -11:9 I will not execute the fierceness of mine anger, I will not -return to destroy Ephraim: for I am God, and not man; the Holy One in -the midst of thee: and I will not enter into the city. - -11:10 They shall walk after the LORD: he shall roar like a lion: when -he shall roar, then the children shall tremble from the west. - -11:11 They shall tremble as a bird out of Egypt, and as a dove out of -the land of Assyria: and I will place them in their houses, saith the -LORD. - -11:12 Ephraim compasseth me about with lies, and the house of Israel -with deceit: but Judah yet ruleth with God, and is faithful with the -saints. - -12:1 Ephraim feedeth on wind, and followeth after the east wind: he -daily increaseth lies and desolation; and they do make a covenant with -the Assyrians, and oil is carried into Egypt. - -12:2 The LORD hath also a controversy with Judah, and will punish -Jacob according to his ways; according to his doings will he -recompense him. - -12:3 He took his brother by the heel in the womb, and by his strength -he had power with God: 12:4 Yea, he had power over the angel, and -prevailed: he wept, and made supplication unto him: he found him in -Bethel, and there he spake with us; 12:5 Even the LORD God of hosts; -the LORD is his memorial. - -12:6 Therefore turn thou to thy God: keep mercy and judgment and wait -on thy God continually. - -12:7 He is a merchant, the balances of deceit are in his hand: he -loveth to oppress. - -12:8 And Ephraim said, Yet I am become rich, I have found me out -substance: in all my labours they shall find none iniquity in me that -were sin. - -12:9 And I that am the LORD thy God from the land of Egypt will yet -make thee to dwell in tabernacles, as in the days of the solemn feast. - -12:10 I have also spoken by the prophets, and I have multiplied -visions, and used similitudes, by the ministry of the prophets. - -12:11 Is there iniquity in Gilead? surely they are vanity: they -sacrifice bullocks in Gilgal; yea, their altars are as heaps in the -furrows of the fields. - -12:12 And Jacob fled into the country of Syria, and Israel served for -a wife, and for a wife he kept sheep. - -12:13 And by a prophet the LORD brought Israel out of Egypt, and by a -prophet was he preserved. - -12:14 Ephraim provoked him to anger most bitterly: therefore shall he -leave his blood upon him, and his reproach shall his LORD return unto -him. - -13:1 When Ephraim spake trembling, he exalted himself in Israel; but -when he offended in Baal, he died. - -13:2 And now they sin more and more, and have made them molten images -of their silver, and idols according to their own understanding, all -of it the work of the craftsmen: they say of them, Let the men that -sacrifice kiss the calves. - -13:3 Therefore they shall be as the morning cloud and as the early dew -that passeth away, as the chaff that is driven with the whirlwind out -of the floor, and as the smoke out of the chimney. - -13:4 Yet I am the LORD thy God from the land of Egypt, and thou shalt -know no god but me: for there is no saviour beside me. - -13:5 I did know thee in the wilderness, in the land of great drought. - -13:6 According to their pasture, so were they filled; they were -filled, and their heart was exalted; therefore have they forgotten me. - -13:7 Therefore I will be unto them as a lion: as a leopard by the way -will I observe them: 13:8 I will meet them as a bear that is bereaved -of her whelps, and will rend the caul of their heart, and there will I -devour them like a lion: the wild beast shall tear them. - -13:9 O Israel, thou hast destroyed thyself; but in me is thine help. - -13:10 I will be thy king: where is any other that may save thee in all -thy cities? and thy judges of whom thou saidst, Give me a king and -princes? 13:11 I gave thee a king in mine anger, and took him away in -my wrath. - -13:12 The iniquity of Ephraim is bound up; his sin is hid. - -13:13 The sorrows of a travailing woman shall come upon him: he is an -unwise son; for he should not stay long in the place of the breaking -forth of children. - -13:14 I will ransom them from the power of the grave; I will redeem -them from death: O death, I will be thy plagues; O grave, I will be -thy destruction: repentance shall be hid from mine eyes. - -13:15 Though he be fruitful among his brethren, an east wind shall -come, the wind of the LORD shall come up from the wilderness, and his -spring shall become dry, and his fountain shall be dried up: he shall -spoil the treasure of all pleasant vessels. - -13:16 Samaria shall become desolate; for she hath rebelled against her -God: they shall fall by the sword: their infants shall be dashed in -pieces, and their women with child shall be ripped up. - -14:1 O israel, return unto the LORD thy God; for thou hast fallen by -thine iniquity. - -14:2 Take with you words, and turn to the LORD: say unto him, Take -away all iniquity, and receive us graciously: so will we render the -calves of our lips. - -14:3 Asshur shall not save us; we will not ride upon horses: neither -will we say any more to the work of our hands, Ye are our gods: for in -thee the fatherless findeth mercy. - -14:4 I will heal their backsliding, I will love them freely: for mine -anger is turned away from him. - -14:5 I will be as the dew unto Israel: he shall grow as the lily, and -cast forth his roots as Lebanon. - -14:6 His branches shall spread, and his beauty shall be as the olive -tree, and his smell as Lebanon. - -14:7 They that dwell under his shadow shall return; they shall revive -as the corn, and grow as the vine: the scent thereof shall be as the -wine of Lebanon. - -14:8 Ephraim shall say, What have I to do any more with idols? I have -heard him, and observed him: I am like a green fir tree. From me is -thy fruit found. - -14:9 Who is wise, and he shall understand these things? prudent, and -he shall know them? for the ways of the LORD are right, and the just -shall walk in them: but the transgressors shall fall therein. - - - - -Joel - - -1:1 The word of the LORD that came to Joel the son of Pethuel. - -1:2 Hear this, ye old men, and give ear, all ye inhabitants of the land. - -Hath this been in your days, or even in the days of your fathers? 1:3 -Tell ye your children of it, and let your children tell their -children, and their children another generation. - -1:4 That which the palmerworm hath left hath the locust eaten; and -that which the locust hath left hath the cankerworm eaten; and that -which the cankerworm hath left hath the caterpiller eaten. - -1:5 Awake, ye drunkards, and weep; and howl, all ye drinkers of wine, -because of the new wine; for it is cut off from your mouth. - -1:6 For a nation is come up upon my land, strong, and without number, -whose teeth are the teeth of a lion, and he hath the cheek teeth of a -great lion. - -1:7 He hath laid my vine waste, and barked my fig tree: he hath made -it clean bare, and cast it away; the branches thereof are made white. - -1:8 Lament like a virgin girded with sackcloth for the husband of her -youth. - -1:9 The meat offering and the drink offering is cut off from the house -of the LORD; the priests, the LORD's ministers, mourn. - -1:10 The field is wasted, the land mourneth; for the corn is wasted: -the new wine is dried up, the oil languisheth. - -1:11 Be ye ashamed, O ye husbandmen; howl, O ye vinedressers, for the -wheat and for the barley; because the harvest of the field is -perished. - -1:12 The vine is dried up, and the fig tree languisheth; the -pomegranate tree, the palm tree also, and the apple tree, even all the -trees of the field, are withered: because joy is withered away from -the sons of men. - -1:13 Gird yourselves, and lament, ye priests: howl, ye ministers of -the altar: come, lie all night in sackcloth, ye ministers of my God: -for the meat offering and the drink offering is withholden from the -house of your God. - -1:14 Sanctify ye a fast, call a solemn assembly, gather the elders and -all the inhabitants of the land into the house of the LORD your God, -and cry unto the LORD, 1:15 Alas for the day! for the day of the LORD -is at hand, and as a destruction from the Almighty shall it come. - -1:16 Is not the meat cut off before our eyes, yea, joy and gladness -from the house of our God? 1:17 The seed is rotten under their clods, -the garners are laid desolate, the barns are broken down; for the corn -is withered. - -1:18 How do the beasts groan! the herds of cattle are perplexed, -because they have no pasture; yea, the flocks of sheep are made -desolate. - -1:19 O LORD, to thee will I cry: for the fire hath devoured the -pastures of the wilderness, and the flame hath burned all the trees of -the field. - -1:20 The beasts of the field cry also unto thee: for the rivers of -waters are dried up, and the fire hath devoured the pastures of the -wilderness. - -2:1 Blow ye the trumpet in Zion, and sound an alarm in my holy -mountain: let all the inhabitants of the land tremble: for the day of -the LORD cometh, for it is nigh at hand; 2:2 A day of darkness and of -gloominess, a day of clouds and of thick darkness, as the morning -spread upon the mountains: a great people and a strong; there hath not -been ever the like, neither shall be any more after it, even to the -years of many generations. - -2:3 A fire devoureth before them; and behind them a flame burneth: the -land is as the garden of Eden before them, and behind them a desolate -wilderness; yea, and nothing shall escape them. - -2:4 The appearance of them is as the appearance of horses; and as -horsemen, so shall they run. - -2:5 Like the noise of chariots on the tops of mountains shall they -leap, like the noise of a flame of fire that devoureth the stubble, as -a strong people set in battle array. - -2:6 Before their face the people shall be much pained: all faces shall -gather blackness. - -2:7 They shall run like mighty men; they shall climb the wall like men -of war; and they shall march every one on his ways, and they shall not -break their ranks: 2:8 Neither shall one thrust another; they shall -walk every one in his path: and when they fall upon the sword, they -shall not be wounded. - -2:9 They shall run to and fro in the city; they shall run upon the -wall, they shall climb up upon the houses; they shall enter in at the -windows like a thief. - -2:10 The earth shall quake before them; the heavens shall tremble: the -sun and the moon shall be dark, and the stars shall withdraw their -shining: 2:11 And the LORD shall utter his voice before his army: for -his camp is very great: for he is strong that executeth his word: for -the day of the LORD is great and very terrible; and who can abide it? -2:12 Therefore also now, saith the LORD, turn ye even to me with all -your heart, and with fasting, and with weeping, and with mourning: -2:13 And rend your heart, and not your garments, and turn unto the -LORD your God: for he is gracious and merciful, slow to anger, and of -great kindness, and repenteth him of the evil. - -2:14 Who knoweth if he will return and repent, and leave a blessing -behind him; even a meat offering and a drink offering unto the LORD -your God? 2:15 Blow the trumpet in Zion, sanctify a fast, call a -solemn assembly: 2:16 Gather the people, sanctify the congregation, -assemble the elders, gather the children, and those that suck the -breasts: let the bridegroom go forth of his chamber, and the bride out -of her closet. - -2:17 Let the priests, the ministers of the LORD, weep between the -porch and the altar, and let them say, Spare thy people, O LORD, and -give not thine heritage to reproach, that the heathen should rule over -them: wherefore should they say among the people, Where is their God? -2:18 Then will the LORD be jealous for his land, and pity his people. - -2:19 Yea, the LORD will answer and say unto his people, Behold, I will -send you corn, and wine, and oil, and ye shall be satisfied therewith: -and I will no more make you a reproach among the heathen: 2:20 But I -will remove far off from you the northern army, and will drive him -into a land barren and desolate, with his face toward the east sea, -and his hinder part toward the utmost sea, and his stink shall come -up, and his ill savour shall come up, because he hath done great -things. - -2:21 Fear not, O land; be glad and rejoice: for the LORD will do great -things. - -2:22 Be not afraid, ye beasts of the field: for the pastures of the -wilderness do spring, for the tree beareth her fruit, the fig tree and -the vine do yield their strength. - -2:23 Be glad then, ye children of Zion, and rejoice in the LORD your -God: for he hath given you the former rain moderately, and he will -cause to come down for you the rain, the former rain, and the latter -rain in the first month. - -2:24 And the floors shall be full of wheat, and the vats shall -overflow with wine and oil. - -2:25 And I will restore to you the years that the locust hath eaten, -the cankerworm, and the caterpiller, and the palmerworm, my great army -which I sent among you. - -2:26 And ye shall eat in plenty, and be satisfied, and praise the name -of the LORD your God, that hath dealt wondrously with you: and my -people shall never be ashamed. - -2:27 And ye shall know that I am in the midst of Israel, and that I am -the LORD your God, and none else: and my people shall never be -ashamed. - -2:28 And it shall come to pass afterward, that I will pour out my -spirit upon all flesh; and your sons and your daughters shall -prophesy, your old men shall dream dreams, your young men shall see -visions: 2:29 And also upon the servants and upon the handmaids in -those days will I pour out my spirit. - -2:30 And I will shew wonders in the heavens and in the earth, blood, -and fire, and pillars of smoke. - -2:31 The sun shall be turned into darkness, and the moon into blood, -before the great and terrible day of the LORD come. - -2:32 And it shall come to pass, that whosoever shall call on the name -of the LORD shall be delivered: for in mount Zion and in Jerusalem -shall be deliverance, as the LORD hath said, and in the remnant whom -the LORD shall call. - -3:1 For, behold, in those days, and in that time, when I shall bring -again the captivity of Judah and Jerusalem, 3:2 I will also gather all -nations, and will bring them down into the valley of Jehoshaphat, and -will plead with them there for my people and for my heritage Israel, -whom they have scattered among the nations, and parted my land. - -3:3 And they have cast lots for my people; and have given a boy for an -harlot, and sold a girl for wine, that they might drink. - -3:4 Yea, and what have ye to do with me, O Tyre, and Zidon, and all -the coasts of Palestine? will ye render me a recompence? and if ye -recompense me, swiftly and speedily will I return your recompence upon -your own head; 3:5 Because ye have taken my silver and my gold, and -have carried into your temples my goodly pleasant things: 3:6 The -children also of Judah and the children of Jerusalem have ye sold unto -the Grecians, that ye might remove them far from their border. - -3:7 Behold, I will raise them out of the place whither ye have sold -them, and will return your recompence upon your own head: 3:8 And I -will sell your sons and your daughters into the hand of the children -of Judah, and they shall sell them to the Sabeans, to a people far -off: for the LORD hath spoken it. - -3:9 Proclaim ye this among the Gentiles; Prepare war, wake up the -mighty men, let all the men of war draw near; let them come up: 3:10 -Beat your plowshares into swords and your pruninghooks into spears: -let the weak say, I am strong. - -3:11 Assemble yourselves, and come, all ye heathen, and gather -yourselves together round about: thither cause thy mighty ones to come -down, O LORD. - -3:12 Let the heathen be wakened, and come up to the valley of -Jehoshaphat: for there will I sit to judge all the heathen round -about. - -3:13 Put ye in the sickle, for the harvest is ripe: come, get you -down; for the press is full, the fats overflow; for their wickedness -is great. - -3:14 Multitudes, multitudes in the valley of decision: for the day of -the LORD is near in the valley of decision. - -3:15 The sun and the moon shall be darkened, and the stars shall -withdraw their shining. - -3:16 The LORD also shall roar out of Zion, and utter his voice from -Jerusalem; and the heavens and the earth shall shake: but the LORD -will be the hope of his people, and the strength of the children of -Israel. - -3:17 So shall ye know that I am the LORD your God dwelling in Zion, my -holy mountain: then shall Jerusalem be holy, and there shall no -strangers pass through her any more. - -3:18 And it shall come to pass in that day, that the mountains shall -drop down new wine, and the hills shall flow with milk, and all the -rivers of Judah shall flow with waters, and a fountain shall come -forth out of the house of the LORD, and shall water the valley of -Shittim. - -3:19 Egypt shall be a desolation, and Edom shall be a desolate -wilderness, for the violence against the children of Judah, because -they have shed innocent blood in their land. - -3:20 But Judah shall dwell for ever, and Jerusalem from generation to -generation. - -3:21 For I will cleanse their blood that I have not cleansed: for the -LORD dwelleth in Zion. - - - - -Amos - - -1:1 The words of Amos, who was among the herdmen of Tekoa, which he -saw concerning Israel in the days of Uzziah king of Judah, and in the -days of Jeroboam the son of Joash king of Israel, two years before the -earthquake. - -1:2 And he said, The LORD will roar from Zion, and utter his voice -from Jerusalem; and the habitations of the shepherds shall mourn, and -the top of Carmel shall wither. - -1:3 Thus saith the LORD; For three transgressions of Damascus, and for -four, I will not turn away the punishment thereof; because they have -threshed Gilead with threshing instruments of iron: 1:4 But I will -send a fire into the house of Hazael, which shall devour the palaces -of Benhadad. - -1:5 I will break also the bar of Damascus, and cut off the inhabitant -from the plain of Aven, and him that holdeth the sceptre from the -house of Eden: and the people of Syria shall go into captivity unto -Kir, saith the LORD. - -1:6 Thus saith the LORD; For three transgressions of Gaza, and for -four, I will not turn away the punishment thereof; because they -carried away captive the whole captivity, to deliver them up to Edom: -1:7 But I will send a fire on the wall of Gaza, which shall devour the -palaces thereof: 1:8 And I will cut off the inhabitant from Ashdod, -and him that holdeth the sceptre from Ashkelon, and I will turn mine -hand against Ekron: and the remnant of the Philistines shall perish, -saith the Lord GOD. - -1:9 Thus saith the LORD; For three transgressions of Tyrus, and for -four, I will not turn away the punishment thereof; because they -delivered up the whole captivity to Edom, and remembered not the -brotherly covenant: 1:10 But I will send a fire on the wall of Tyrus, -which shall devour the palaces thereof. - -1:11 Thus saith the LORD; For three transgressions of Edom, and for -four, I will not turn away the punishment thereof; because he did -pursue his brother with the sword, and did cast off all pity, and his -anger did tear perpetually, and he kept his wrath for ever: 1:12 But I -will send a fire upon Teman, which shall devour the palaces of Bozrah. - -1:13 Thus saith the LORD; For three transgressions of the children of -Ammon, and for four, I will not turn away the punishment thereof; -because they have ripped up the women with child of Gilead, that they -might enlarge their border: 1:14 But I will kindle a fire in the wall -of Rabbah, and it shall devour the palaces thereof, with shouting in -the day of battle, with a tempest in the day of the whirlwind: 1:15 -And their king shall go into captivity, he and his princes together, -saith the LORD. - -2:1 Thus saith the LORD; For three transgressions of Moab, and for -four, I will not turn away the punishment thereof; because he burned -the bones of the king of Edom into lime: 2:2 But I will send a fire -upon Moab, and it shall devour the palaces of Kirioth: and Moab shall -die with tumult, with shouting, and with the sound of the trumpet: 2:3 -And I will cut off the judge from the midst thereof, and will slay all -the princes thereof with him, saith the LORD. - -2:4 Thus saith the LORD; For three transgressions of Judah, and for -four, I will not turn away the punishment thereof; because they have -despised the law of the LORD, and have not kept his commandments, and -their lies caused them to err, after the which their fathers have -walked: 2:5 But I will send a fire upon Judah, and it shall devour the -palaces of Jerusalem. - -2:6 Thus saith the LORD; For three transgressions of Israel, and for -four, I will not turn away the punishment thereof; because they sold -the righteous for silver, and the poor for a pair of shoes; 2:7 That -pant after the dust of the earth on the head of the poor, and turn -aside the way of the meek: and a man and his father will go in unto -the same maid, to profane my holy name: 2:8 And they lay themselves -down upon clothes laid to pledge by every altar, and they drink the -wine of the condemned in the house of their god. - -2:9 Yet destroyed I the Amorite before them, whose height was like the -height of the cedars, and he was strong as the oaks; yet I destroyed -his fruit from above, and his roots from beneath. - -2:10 Also I brought you up from the land of Egypt, and led you forty -years through the wilderness, to possess the land of the Amorite. - -2:11 And I raised up of your sons for prophets, and of your young men -for Nazarites. Is it not even thus, O ye children of Israel? saith the -LORD. - -2:12 But ye gave the Nazarites wine to drink; and commanded the -prophets, saying, Prophesy not. - -2:13 Behold, I am pressed under you, as a cart is pressed that is full -of sheaves. - -2:14 Therefore the flight shall perish from the swift, and the strong -shall not strengthen his force, neither shall the mighty deliver -himself: 2:15 Neither shall he stand that handleth the bow; and he -that is swift of foot shall not deliver himself: neither shall he that -rideth the horse deliver himself. - -2:16 And he that is courageous among the mighty shall flee away naked -in that day, saith the LORD. - -3:1 Hear this word that the LORD hath spoken against you, O children -of Israel, against the whole family which I brought up from the land -of Egypt, saying, 3:2 You only have I known of all the families of the -earth: therefore I will punish you for all your iniquities. - -3:3 Can two walk together, except they be agreed? 3:4 Will a lion -roar in the forest, when he hath no prey? will a young lion cry out of -his den, if he have taken nothing? 3:5 Can a bird fall in a snare -upon the earth, where no gin is for him? shall one take up a snare -from the earth, and have taken nothing at all? 3:6 Shall a trumpet be -blown in the city, and the people not be afraid? shall there be evil -in a city, and the LORD hath not done it? 3:7 Surely the Lord GOD -will do nothing, but he revealeth his secret unto his servants the -prophets. - -3:8 The lion hath roared, who will not fear? the Lord GOD hath spoken, -who can but prophesy? 3:9 Publish in the palaces at Ashdod, and in -the palaces in the land of Egypt, and say, Assemble yourselves upon -the mountains of Samaria, and behold the great tumults in the midst -thereof, and the oppressed in the midst thereof. - -3:10 For they know not to do right, saith the LORD, who store up -violence and robbery in their palaces. - -3:11 Therefore thus saith the Lord GOD; An adversary there shall be -even round about the land; and he shall bring down thy strength from -thee, and thy palaces shall be spoiled. - -3:12 Thus saith the LORD; As the shepherd taketh out of the mouth of -the lion two legs, or a piece of an ear; so shall the children of -Israel be taken out that dwell in Samaria in the corner of a bed, and -in Damascus in a couch. - -3:13 Hear ye, and testify in the house of Jacob, saith the Lord GOD, -the God of hosts, 3:14 That in the day that I shall visit the -transgressions of Israel upon him I will also visit the altars of -Bethel: and the horns of the altar shall be cut off, and fall to the -ground. - -3:15 And I will smite the winter house with the summer house; and the -houses of ivory shall perish, and the great houses shall have an end, -saith the LORD. - -4:1 Hear this word, ye kine of Bashan, that are in the mountain of -Samaria, which oppress the poor, which crush the needy, which say to -their masters, Bring, and let us drink. - -4:2 The Lord GOD hath sworn by his holiness, that, lo, the days shall -come upon you, that he will take you away with hooks, and your -posterity with fishhooks. - -4:3 And ye shall go out at the breaches, every cow at that which is -before her; and ye shall cast them into the palace, saith the LORD. - -4:4 Come to Bethel, and transgress; at Gilgal multiply transgression; -and bring your sacrifices every morning, and your tithes after three -years: 4:5 And offer a sacrifice of thanksgiving with leaven, and -proclaim and publish the free offerings: for this liketh you, O ye -children of Israel, saith the Lord GOD. - -4:6 And I also have given you cleanness of teeth in all your cities, -and want of bread in all your places: yet have ye not returned unto -me, saith the LORD. - -4:7 And also I have withholden the rain from you, when there were yet -three months to the harvest: and I caused it to rain upon one city, -and caused it not to rain upon another city: one piece was rained -upon, and the piece whereupon it rained not withered. - -4:8 So two or three cities wandered unto one city, to drink water; but -they were not satisfied: yet have ye not returned unto me, saith the -LORD. - -4:9 I have smitten you with blasting and mildew: when your gardens and -your vineyards and your fig trees and your olive trees increased, the -palmerworm devoured them: yet have ye not returned unto me, saith the -LORD. - -4:10 I have sent among you the pestilence after the manner of Egypt: -your young men have I slain with the sword, and have taken away your -horses; and I have made the stink of your camps to come up unto your -nostrils: yet have ye not returned unto me, saith the LORD. - -4:11 I have overthrown some of you, as God overthrew Sodom and -Gomorrah, and ye were as a firebrand plucked out of the burning: yet -have ye not returned unto me, saith the LORD. - -4:12 Therefore thus will I do unto thee, O Israel: and because I will -do this unto thee, prepare to meet thy God, O Israel. - -4:13 For, lo, he that formeth the mountains, and createth the wind, -and declareth unto man what is his thought, that maketh the morning -darkness, and treadeth upon the high places of the earth, The LORD, -The God of hosts, is his name. - -5:1 Hear ye this word which I take up against you, even a lamentation, -O house of Israel. - -5:2 The virgin of Israel is fallen; she shall no more rise: she is -forsaken upon her land; there is none to raise her up. - -5:3 For thus saith the Lord GOD; The city that went out by a thousand -shall leave an hundred, and that which went forth by an hundred shall -leave ten, to the house of Israel. - -5:4 For thus saith the LORD unto the house of Israel, Seek ye me, and -ye shall live: 5:5 But seek not Bethel, nor enter into Gilgal, and -pass not to Beersheba: for Gilgal shall surely go into captivity, and -Bethel shall come to nought. - -5:6 Seek the LORD, and ye shall live; lest he break out like fire in -the house of Joseph, and devour it, and there be none to quench it in -Bethel. - -5:7 Ye who turn judgment to wormwood, and leave off righteousness in -the earth, 5:8 Seek him that maketh the seven stars and Orion, and -turneth the shadow of death into the morning, and maketh the day dark -with night: that calleth for the waters of the sea, and poureth them -out upon the face of the earth: The LORD is his name: 5:9 That -strengtheneth the spoiled against the strong, so that the spoiled -shall come against the fortress. - -5:10 They hate him that rebuketh in the gate, and they abhor him that -speaketh uprightly. - -5:11 Forasmuch therefore as your treading is upon the poor, and ye -take from him burdens of wheat: ye have built houses of hewn stone, -but ye shall not dwell in them; ye have planted pleasant vineyards, -but ye shall not drink wine of them. - -5:12 For I know your manifold transgressions and your mighty sins: -they afflict the just, they take a bribe, and they turn aside the poor -in the gate from their right. - -5:13 Therefore the prudent shall keep silence in that time; for it is -an evil time. - -5:14 Seek good, and not evil, that ye may live: and so the LORD, the -God of hosts, shall be with you, as ye have spoken. - -5:15 Hate the evil, and love the good, and establish judgment in the -gate: it may be that the LORD God of hosts will be gracious unto the -remnant of Joseph. - -5:16 Therefore the LORD, the God of hosts, the LORD, saith thus; -Wailing shall be in all streets; and they shall say in all the -highways, Alas! alas! and they shall call the husbandman to mourning, -and such as are skilful of lamentation to wailing. - -5:17 And in all vineyards shall be wailing: for I will pass through -thee, saith the LORD. - -5:18 Woe unto you that desire the day of the LORD! to what end is it -for you? the day of the LORD is darkness, and not light. - -5:19 As if a man did flee from a lion, and a bear met him; or went -into the house, and leaned his hand on the wall, and a serpent bit -him. - -5:20 Shall not the day of the LORD be darkness, and not light? even -very dark, and no brightness in it? 5:21 I hate, I despise your feast -days, and I will not smell in your solemn assemblies. - -5:22 Though ye offer me burnt offerings and your meat offerings, I -will not accept them: neither will I regard the peace offerings of -your fat beasts. - -5:23 Take thou away from me the noise of thy songs; for I will not -hear the melody of thy viols. - -5:24 But let judgment run down as waters, and righteousness as a -mighty stream. - -5:25 Have ye offered unto me sacrifices and offerings in the -wilderness forty years, O house of Israel? 5:26 But ye have borne the -tabernacle of your Moloch and Chiun your images, the star of your god, -which ye made to yourselves. - -5:27 Therefore will I cause you to go into captivity beyond Damascus, -saith the LORD, whose name is The God of hosts. - -6:1 Woe to them that are at ease in Zion, and trust in the mountain of -Samaria, which are named chief of the nations, to whom the house of -Israel came! 6:2 Pass ye unto Calneh, and see; and from thence go ye -to Hamath the great: then go down to Gath of the Philistines: be they -better than these kingdoms? or their border greater than your border? -6:3 Ye that put far away the evil day, and cause the seat of violence -to come near; 6:4 That lie upon beds of ivory, and stretch themselves -upon their couches, and eat the lambs out of the flock, and the calves -out of the midst of the stall; 6:5 That chant to the sound of the -viol, and invent to themselves instruments of musick, like David; 6:6 -That drink wine in bowls, and anoint themselves with the chief -ointments: but they are not grieved for the affliction of Joseph. - -6:7 Therefore now shall they go captive with the first that go -captive, and the banquet of them that stretched themselves shall be -removed. - -6:8 The Lord GOD hath sworn by himself, saith the LORD the God of -hosts, I abhor the excellency of Jacob, and hate his palaces: -therefore will I deliver up the city with all that is therein. - -6:9 And it shall come to pass, if there remain ten men in one house, -that they shall die. - -6:10 And a man's uncle shall take him up, and he that burneth him, to -bring out the bones out of the house, and shall say unto him that is -by the sides of the house, Is there yet any with thee? and he shall -say, No. Then shall he say, Hold thy tongue: for we may not make -mention of the name of the LORD. - -6:11 For, behold, the LORD commandeth, and he will smite the great -house with breaches, and the little house with clefts. - -6:12 Shall horses run upon the rock? will one plow there with oxen? -for ye have turned judgment into gall, and the fruit of righteousness -into hemlock: 6:13 Ye which rejoice in a thing of nought, which say, -Have we not taken to us horns by our own strength? 6:14 But, behold, -I will raise up against you a nation, O house of Israel, saith the -LORD the God of hosts; and they shall afflict you from the entering in -of Hemath unto the river of the wilderness. - -7:1 Thus hath the Lord GOD shewed unto me; and, behold, he formed -grasshoppers in the beginning of the shooting up of the latter growth; -and, lo, it was the latter growth after the king's mowings. - -7:2 And it came to pass, that when they had made an end of eating the -grass of the land, then I said, O Lord GOD, forgive, I beseech thee: -by whom shall Jacob arise? for he is small. - -7:3 The LORD repented for this: It shall not be, saith the LORD. - -7:4 Thus hath the Lord GOD shewed unto me: and, behold, the Lord GOD -called to contend by fire, and it devoured the great deep, and did eat -up a part. - -7:5 Then said I, O Lord GOD, cease, I beseech thee: by whom shall -Jacob arise? for he is small. - -7:6 The LORD repented for this: This also shall not be, saith the Lord -GOD. - -7:7 Thus he shewed me: and, behold, the LORD stood upon a wall made by -a plumbline, with a plumbline in his hand. - -7:8 And the LORD said unto me, Amos, what seest thou? And I said, A -plumbline. Then said the LORD, Behold, I will set a plumbline in the -midst of my people Israel: I will not again pass by them any more: 7:9 -And the high places of Isaac shall be desolate, and the sanctuaries of -Israel shall be laid waste; and I will rise against the house of -Jeroboam with the sword. - -7:10 Then Amaziah the priest of Bethel sent to Jeroboam king of -Israel, saying, Amos hath conspired against thee in the midst of the -house of Israel: the land is not able to bear all his words. - -7:11 For thus Amos saith, Jeroboam shall die by the sword, and Israel -shall surely be led away captive out of their own land. - -7:12 Also Amaziah said unto Amos, O thou seer, go, flee thee away into -the land of Judah, and there eat bread, and prophesy there: 7:13 But -prophesy not again any more at Bethel: for it is the king's chapel, -and it is the king's court. - -7:14 Then answered Amos, and said to Amaziah, I was no prophet, -neither was I a prophet's son; but I was an herdman, and a gatherer of -sycomore fruit: 7:15 And the LORD took me as I followed the flock, and -the LORD said unto me, Go, prophesy unto my people Israel. - -7:16 Now therefore hear thou the word of the LORD: Thou sayest, -Prophesy not against Israel, and drop not thy word against the house -of Isaac. - -7:17 Therefore thus saith the LORD; Thy wife shall be an harlot in the -city, and thy sons and thy daughters shall fall by the sword, and thy -land shall be divided by line; and thou shalt die in a polluted land: -and Israel shall surely go into captivity forth of his land. - -8:1 Thus hath the Lord GOD shewed unto me: and behold a basket of -summer fruit. - -8:2 And he said, Amos, what seest thou? And I said, A basket of summer -fruit. Then said the LORD unto me, The end is come upon my people of -Israel; I will not again pass by them any more. - -8:3 And the songs of the temple shall be howlings in that day, saith -the Lord GOD: there shall be many dead bodies in every place; they -shall cast them forth with silence. - -8:4 Hear this, O ye that swallow up the needy, even to make the poor -of the land to fail, 8:5 Saying, When will the new moon be gone, that -we may sell corn? and the sabbath, that we may set forth wheat, making -the ephah small, and the shekel great, and falsifying the balances by -deceit? 8:6 That we may buy the poor for silver, and the needy for a -pair of shoes; yea, and sell the refuse of the wheat? 8:7 The LORD -hath sworn by the excellency of Jacob, Surely I will never forget any -of their works. - -8:8 Shall not the land tremble for this, and every one mourn that -dwelleth therein? and it shall rise up wholly as a flood; and it shall -be cast out and drowned, as by the flood of Egypt. - -8:9 And it shall come to pass in that day, saith the Lord GOD, that I -will cause the sun to go down at noon, and I will darken the earth in -the clear day: 8:10 And I will turn your feasts into mourning, and all -your songs into lamentation; and I will bring up sackcloth upon all -loins, and baldness upon every head; and I will make it as the -mourning of an only son, and the end thereof as a bitter day. - -8:11 Behold, the days come, saith the Lord GOD, that I will send a -famine in the land, not a famine of bread, nor a thirst for water, but -of hearing the words of the LORD: 8:12 And they shall wander from sea -to sea, and from the north even to the east, they shall run to and fro -to seek the word of the LORD, and shall not find it. - -8:13 In that day shall the fair virgins and young men faint for -thirst. - -8:14 They that swear by the sin of Samaria, and say, Thy god, O Dan, -liveth; and, The manner of Beersheba liveth; even they shall fall, and -never rise up again. - -9:1 I saw the LORD standing upon the altar: and he said, Smite the -lintel of the door, that the posts may shake: and cut them in the -head, all of them; and I will slay the last of them with the sword: he -that fleeth of them shall not flee away, and he that escapeth of them -shall not be delivered. - -9:2 Though they dig into hell, thence shall mine hand take them; -though they climb up to heaven, thence will I bring them down: 9:3 And -though they hide themselves in the top of Carmel, I will search and -take them out thence; and though they be hid from my sight in the -bottom of the sea, thence will I command the serpent, and he shall -bite them: 9:4 And though they go into captivity before their enemies, -thence will I command the sword, and it shall slay them: and I will -set mine eyes upon them for evil, and not for good. - -9:5 And the Lord GOD of hosts is he that toucheth the land, and it -shall melt, and all that dwell therein shall mourn: and it shall rise -up wholly like a flood; and shall be drowned, as by the flood of -Egypt. - -9:6 It is he that buildeth his stories in the heaven, and hath founded -his troop in the earth; he that calleth for the waters of the sea, and -poureth them out upon the face of the earth: The LORD is his name. - -9:7 Are ye not as children of the Ethiopians unto me, O children of -Israel? saith the LORD. Have not I brought up Israel out of the land -of Egypt? and the Philistines from Caphtor, and the Syrians from Kir? -9:8 Behold, the eyes of the Lord GOD are upon the sinful kingdom, and -I will destroy it from off the face of the earth; saving that I will -not utterly destroy the house of Jacob, saith the LORD. - -9:9 For, lo, I will command, and I will sift the house of Israel among -all nations, like as corn is sifted in a sieve, yet shall not the -least grain fall upon the earth. - -9:10 All the sinners of my people shall die by the sword, which say, -The evil shall not overtake nor prevent us. - -9:11 In that day will I raise up the tabernacle of David that is -fallen, and close up the breaches thereof; and I will raise up his -ruins, and I will build it as in the days of old: 9:12 That they may -possess the remnant of Edom, and of all the heathen, which are called -by my name, saith the LORD that doeth this. - -9:13 Behold, the days come, saith the LORD, that the plowman shall -overtake the reaper, and the treader of grapes him that soweth seed; -and the mountains shall drop sweet wine, and all the hills shall melt. - -9:14 And I will bring again the captivity of my people of Israel, and -they shall build the waste cities, and inhabit them; and they shall -plant vineyards, and drink the wine thereof; they shall also make -gardens, and eat the fruit of them. - -9:15 And I will plant them upon their land, and they shall no more be -pulled up out of their land which I have given them, saith the LORD -thy God. - - - - -Obadiah - - -1:1 The vision of Obadiah. Thus saith the Lord GOD concerning Edom; -We have heard a rumour from the LORD, and an ambassador is sent among -the heathen, Arise ye, and let us rise up against her in battle. - -1:2 Behold, I have made thee small among the heathen: thou art greatly -despised. - -1:3 The pride of thine heart hath deceived thee, thou that dwellest in -the clefts of the rock, whose habitation is high; that saith in his -heart, Who shall bring me down to the ground? 1:4 Though thou exalt -thyself as the eagle, and though thou set thy nest among the stars, -thence will I bring thee down, saith the LORD. - -1:5 If thieves came to thee, if robbers by night, (how art thou cut -off!) would they not have stolen till they had enough? if the -grapegatherers came to thee, would they not leave some grapes? 1:6 -How are the things of Esau searched out! how are his hidden things -sought up! 1:7 All the men of thy confederacy have brought thee even -to the border: the men that were at peace with thee have deceived -thee, and prevailed against thee; that they eat thy bread have laid a -wound under thee: there is none understanding in him. - -1:8 Shall I not in that day, saith the LORD, even destroy the wise men -out of Edom, and understanding out of the mount of Esau? 1:9 And thy -mighty men, O Teman, shall be dismayed, to the end that every one of -the mount of Esau may be cut off by slaughter. - -1:10 For thy violence against thy brother Jacob shame shall cover -thee, and thou shalt be cut off for ever. - -1:11 In the day that thou stoodest on the other side, in the day that -the strangers carried away captive his forces, and foreigners entered -into his gates, and cast lots upon Jerusalem, even thou wast as one of -them. - -1:12 But thou shouldest not have looked on the day of thy brother in -the day that he became a stranger; neither shouldest thou have -rejoiced over the children of Judah in the day of their destruction; -neither shouldest thou have spoken proudly in the day of distress. - -1:13 Thou shouldest not have entered into the gate of my people in the -day of their calamity; yea, thou shouldest not have looked on their -affliction in the day of their calamity, nor have laid hands on their -substance in the day of their calamity; 1:14 Neither shouldest thou -have stood in the crossway, to cut off those of his that did escape; -neither shouldest thou have delivered up those of his that did remain -in the day of distress. - -1:15 For the day of the LORD is near upon all the heathen: as thou -hast done, it shall be done unto thee: thy reward shall return upon -thine own head. - -1:16 For as ye have drunk upon my holy mountain, so shall all the -heathen drink continually, yea, they shall drink, and they shall -swallow down, and they shall be as though they had not been. - -1:17 But upon mount Zion shall be deliverance, and there shall be -holiness; and the house of Jacob shall possess their possessions. - -1:18 And the house of Jacob shall be a fire, and the house of Joseph a -flame, and the house of Esau for stubble, and they shall kindle in -them, and devour them; and there shall not be any remaining of the -house of Esau; for the LORD hath spoken it. - -1:19 And they of the south shall possess the mount of Esau; and they -of the plain the Philistines: and they shall possess the fields of -Ephraim, and the fields of Samaria: and Benjamin shall possess Gilead. - -1:20 And the captivity of this host of the children of Israel shall -possess that of the Canaanites, even unto Zarephath; and the captivity -of Jerusalem, which is in Sepharad, shall possess the cities of the -south. - -1:21 And saviours shall come up on mount Zion to judge the mount of -Esau; and the kingdom shall be the LORD's. - - - - -Jonah - - -1:1 Now the word of the LORD came unto Jonah the son of Amittai, -saying, 1:2 Arise, go to Nineveh, that great city, and cry against it; -for their wickedness is come up before me. - -1:3 But Jonah rose up to flee unto Tarshish from the presence of the -LORD, and went down to Joppa; and he found a ship going to Tarshish: -so he paid the fare thereof, and went down into it, to go with them -unto Tarshish from the presence of the LORD. - -1:4 But the LORD sent out a great wind into the sea, and there was a -mighty tempest in the sea, so that the ship was like to be broken. - -1:5 Then the mariners were afraid, and cried every man unto his god, -and cast forth the wares that were in the ship into the sea, to -lighten it of them. But Jonah was gone down into the sides of the -ship; and he lay, and was fast asleep. - -1:6 So the shipmaster came to him, and said unto him, What meanest -thou, O sleeper? arise, call upon thy God, if so be that God will -think upon us, that we perish not. - -1:7 And they said every one to his fellow, Come, and let us cast lots, -that we may know for whose cause this evil is upon us. So they cast -lots, and the lot fell upon Jonah. - -1:8 Then said they unto him, Tell us, we pray thee, for whose cause -this evil is upon us; What is thine occupation? and whence comest -thou? what is thy country? and of what people art thou? 1:9 And he -said unto them, I am an Hebrew; and I fear the LORD, the God of -heaven, which hath made the sea and the dry land. - -1:10 Then were the men exceedingly afraid, and said unto him. Why hast -thou done this? For the men knew that he fled from the presence of the -LORD, because he had told them. - -1:11 Then said they unto him, What shall we do unto thee, that the sea -may be calm unto us? for the sea wrought, and was tempestuous. - -1:12 And he said unto them, Take me up, and cast me forth into the -sea; so shall the sea be calm unto you: for I know that for my sake -this great tempest is upon you. - -1:13 Nevertheless the men rowed hard to bring it to the land; but they -could not: for the sea wrought, and was tempestuous against them. - -1:14 Wherefore they cried unto the LORD, and said, We beseech thee, O -LORD, we beseech thee, let us not perish for this man's life, and lay -not upon us innocent blood: for thou, O LORD, hast done as it pleased -thee. - -1:15 So they look up Jonah, and cast him forth into the sea: and the -sea ceased from her raging. - -1:16 Then the men feared the LORD exceedingly, and offered a sacrifice -unto the LORD, and made vows. - -1:17 Now the LORD had prepared a great fish to swallow up Jonah. And -Jonah was in the belly of the fish three days and three nights. - -2:1 Then Jonah prayed unto the LORD his God out of the fish's belly, -2:2 And said, I cried by reason of mine affliction unto the LORD, and -he heard me; out of the belly of hell cried I, and thou heardest my -voice. - -2:3 For thou hadst cast me into the deep, in the midst of the seas; -and the floods compassed me about: all thy billows and thy waves -passed over me. - -2:4 Then I said, I am cast out of thy sight; yet I will look again -toward thy holy temple. - -2:5 The waters compassed me about, even to the soul: the depth closed -me round about, the weeds were wrapped about my head. - -2:6 I went down to the bottoms of the mountains; the earth with her -bars was about me for ever: yet hast thou brought up my life from -corruption, O LORD my God. - -2:7 When my soul fainted within me I remembered the LORD: and my -prayer came in unto thee, into thine holy temple. - -2:8 They that observe lying vanities forsake their own mercy. - -2:9 But I will sacrifice unto thee with the voice of thanksgiving; I -will pay that that I have vowed. Salvation is of the LORD. - -2:10 And the LORD spake unto the fish, and it vomited out Jonah upon -the dry land. - -3:1 And the word of the LORD came unto Jonah the second time, saying, -3:2 Arise, go unto Nineveh, that great city, and preach unto it the -preaching that I bid thee. - -3:3 So Jonah arose, and went unto Nineveh, according to the word of -the LORD. Now Nineveh was an exceeding great city of three days' -journey. - -3:4 And Jonah began to enter into the city a day's journey, and he -cried, and said, Yet forty days, and Nineveh shall be overthrown. - -3:5 So the people of Nineveh believed God, and proclaimed a fast, and -put on sackcloth, from the greatest of them even to the least of them. - -3:6 For word came unto the king of Nineveh, and he arose from his -throne, and he laid his robe from him, and covered him with sackcloth, -and sat in ashes. - -3:7 And he caused it to be proclaimed and published through Nineveh by -the decree of the king and his nobles, saying, Let neither man nor -beast, herd nor flock, taste any thing: let them not feed, nor drink -water: 3:8 But let man and beast be covered with sackcloth, and cry -mightily unto God: yea, let them turn every one from his evil way, and -from the violence that is in their hands. - -3:9 Who can tell if God will turn and repent, and turn away from his -fierce anger, that we perish not? 3:10 And God saw their works, that -they turned from their evil way; and God repented of the evil, that he -had said that he would do unto them; and he did it not. - -4:1 But it displeased Jonah exceedingly, and he was very angry. - -4:2 And he prayed unto the LORD, and said, I pray thee, O LORD, was -not this my saying, when I was yet in my country? Therefore I fled -before unto Tarshish: for I knew that thou art a gracious God, and -merciful, slow to anger, and of great kindness, and repentest thee of -the evil. - -4:3 Therefore now, O LORD, take, I beseech thee, my life from me; for -it is better for me to die than to live. - -4:4 Then said the LORD, Doest thou well to be angry? 4:5 So Jonah -went out of the city, and sat on the east side of the city, and there -made him a booth, and sat under it in the shadow, till he might see -what would become of the city. - -4:6 And the LORD God prepared a gourd, and made it to come up over -Jonah, that it might be a shadow over his head, to deliver him from -his grief. So Jonah was exceeding glad of the gourd. - -4:7 But God prepared a worm when the morning rose the next day, and it -smote the gourd that it withered. - -4:8 And it came to pass, when the sun did arise, that God prepared a -vehement east wind; and the sun beat upon the head of Jonah, that he -fainted, and wished in himself to die, and said, It is better for me -to die than to live. - -4:9 And God said to Jonah, Doest thou well to be angry for the gourd? -And he said, I do well to be angry, even unto death. - -4:10 Then said the LORD, Thou hast had pity on the gourd, for the -which thou hast not laboured, neither madest it grow; which came up in -a night, and perished in a night: 4:11 And should not I spare Nineveh, -that great city, wherein are more then sixscore thousand persons that -cannot discern between their right hand and their left hand; and also -much cattle? - - - - -Micah - - -1:1 The word of the LORD that came to Micah the Morasthite in the -days of Jotham, Ahaz, and Hezekiah, kings of Judah, which he saw -concerning Samaria and Jerusalem. - -1:2 Hear, all ye people; hearken, O earth, and all that therein is: -and let the Lord GOD be witness against you, the LORD from his holy -temple. - -1:3 For, behold, the LORD cometh forth out of his place, and will come -down, and tread upon the high places of the earth. - -1:4 And the mountains shall be molten under him, and the valleys shall -be cleft, as wax before the fire, and as the waters that are poured -down a steep place. - -1:5 For the transgression of Jacob is all this, and for the sins of -the house of Israel. What is the transgression of Jacob? is it not -Samaria? and what are the high places of Judah? are they not -Jerusalem? 1:6 Therefore I will make Samaria as an heap of the field, -and as plantings of a vineyard: and I will pour down the stones -thereof into the valley, and I will discover the foundations thereof. - -1:7 And all the graven images thereof shall be beaten to pieces, and -all the hires thereof shall be burned with the fire, and all the idols -thereof will I lay desolate: for she gathered it of the hire of an -harlot, and they shall return to the hire of an harlot. - -1:8 Therefore I will wail and howl, I will go stripped and naked: I -will make a wailing like the dragons, and mourning as the owls. - -1:9 For her wound is incurable; for it is come unto Judah; he is come -unto the gate of my people, even to Jerusalem. - -1:10 Declare ye it not at Gath, weep ye not at all: in the house of -Aphrah roll thyself in the dust. - -1:11 Pass ye away, thou inhabitant of Saphir, having thy shame naked: -the inhabitant of Zaanan came not forth in the mourning of Bethezel; -he shall receive of you his standing. - -1:12 For the inhabitant of Maroth waited carefully for good: but evil -came down from the LORD unto the gate of Jerusalem. - -1:13 O thou inhabitant of Lachish, bind the chariot to the swift -beast: she is the beginning of the sin to the daughter of Zion: for -the transgressions of Israel were found in thee. - -1:14 Therefore shalt thou give presents to Moreshethgath: the houses -of Achzib shall be a lie to the kings of Israel. - -1:15 Yet will I bring an heir unto thee, O inhabitant of Mareshah: he -shall come unto Adullam the glory of Israel. - -1:16 Make thee bald, and poll thee for thy delicate children; enlarge -thy baldness as the eagle; for they are gone into captivity from thee. - -2:1 Woe to them that devise iniquity, and work evil upon their beds! -when the morning is light, they practise it, because it is in the -power of their hand. - -2:2 And they covet fields, and take them by violence; and houses, and -take them away: so they oppress a man and his house, even a man and -his heritage. - -2:3 Therefore thus saith the LORD; Behold, against this family do I -devise an evil, from which ye shall not remove your necks; neither -shall ye go haughtily: for this time is evil. - -2:4 In that day shall one take up a parable against you, and lament -with a doleful lamentation, and say, We be utterly spoiled: he hath -changed the portion of my people: how hath he removed it from me! -turning away he hath divided our fields. - -2:5 Therefore thou shalt have none that shall cast a cord by lot in -the congregation of the LORD. - -2:6 Prophesy ye not, say they to them that prophesy: they shall not -prophesy to them, that they shall not take shame. - -2:7 O thou that art named the house of Jacob, is the spirit of the -LORD straitened? are these his doings? do not my words do good to him -that walketh uprightly? 2:8 Even of late my people is risen up as an -enemy: ye pull off the robe with the garment from them that pass by -securely as men averse from war. - -2:9 The women of my people have ye cast out from their pleasant -houses; from their children have ye taken away my glory for ever. - -2:10 Arise ye, and depart; for this is not your rest: because it is -polluted, it shall destroy you, even with a sore destruction. - -2:11 If a man walking in the spirit and falsehood do lie, saying, I -will prophesy unto thee of wine and of strong drink; he shall even be -the prophet of this people. - -2:12 I will surely assemble, O Jacob, all of thee; I will surely -gather the remnant of Israel; I will put them together as the sheep of -Bozrah, as the flock in the midst of their fold: they shall make great -noise by reason of the multitude of men. - -2:13 The breaker is come up before them: they have broken up, and have -passed through the gate, and are gone out by it: and their king shall -pass before them, and the LORD on the head of them. - -3:1 And I said, Hear, I pray you, O heads of Jacob, and ye princes of -the house of Israel; Is it not for you to know judgment? 3:2 Who hate -the good, and love the evil; who pluck off their skin from off them, -and their flesh from off their bones; 3:3 Who also eat the flesh of my -people, and flay their skin from off them; and they break their bones, -and chop them in pieces, as for the pot, and as flesh within the -caldron. - -3:4 Then shall they cry unto the LORD, but he will not hear them: he -will even hide his face from them at that time, as they have behaved -themselves ill in their doings. - -3:5 Thus saith the LORD concerning the prophets that make my people -err, that bite with their teeth, and cry, Peace; and he that putteth -not into their mouths, they even prepare war against him. - -3:6 Therefore night shall be unto you, that ye shall not have a -vision; and it shall be dark unto you, that ye shall not divine; and -the sun shall go down over the prophets, and the day shall be dark -over them. - -3:7 Then shall the seers be ashamed, and the diviners confounded: yea, -they shall all cover their lips; for there is no answer of God. - -3:8 But truly I am full of power by the spirit of the LORD, and of -judgment, and of might, to declare unto Jacob his transgression, and -to Israel his sin. - -3:9 Hear this, I pray you, ye heads of the house of Jacob, and princes -of the house of Israel, that abhor judgment, and pervert all equity. - -3:10 They build up Zion with blood, and Jerusalem with iniquity. - -3:11 The heads thereof judge for reward, and the priests thereof teach -for hire, and the prophets thereof divine for money: yet will they -lean upon the LORD, and say, Is not the LORD among us? none evil can -come upon us. - -3:12 Therefore shall Zion for your sake be plowed as a field, and -Jerusalem shall become heaps, and the mountain of the house as the -high places of the forest. - -4:1 But in the last days it shall come to pass, that the mountain of -the house of the LORD shall be established in the top of the -mountains, and it shall be exalted above the hills; and people shall -flow unto it. - -4:2 And many nations shall come, and say, Come, and let us go up to -the mountain of the LORD, and to the house of the God of Jacob; and he -will teach us of his ways, and we will walk in his paths: for the law -shall go forth of Zion, and the word of the LORD from Jerusalem. - -4:3 And he shall judge among many people, and rebuke strong nations -afar off; and they shall beat their swords into plowshares, and their -spears into pruninghooks: nation shall not lift up a sword against -nation, neither shall they learn war any more. - -4:4 But they shall sit every man under his vine and under his fig -tree; and none shall make them afraid: for the mouth of the LORD of -hosts hath spoken it. - -4:5 For all people will walk every one in the name of his god, and we -will walk in the name of the LORD our God for ever and ever. - -4:6 In that day, saith the LORD, will I assemble her that halteth, and -I will gather her that is driven out, and her that I have afflicted; -4:7 And I will make her that halted a remnant, and her that was cast -far off a strong nation: and the LORD shall reign over them in mount -Zion from henceforth, even for ever. - -4:8 And thou, O tower of the flock, the strong hold of the daughter of -Zion, unto thee shall it come, even the first dominion; the kingdom -shall come to the daughter of Jerusalem. - -4:9 Now why dost thou cry out aloud? is there no king in thee? is thy -counsellor perished? for pangs have taken thee as a woman in travail. - -4:10 Be in pain, and labour to bring forth, O daughter of Zion, like a -woman in travail: for now shalt thou go forth out of the city, and -thou shalt dwell in the field, and thou shalt go even to Babylon; -there shalt thou be delivered; there the LORD shall redeem thee from -the hand of thine enemies. - -4:11 Now also many nations are gathered against thee, that say, Let -her be defiled, and let our eye look upon Zion. - -4:12 But they know not the thoughts of the LORD, neither understand -they his counsel: for he shall gather them as the sheaves into the -floor. - -4:13 Arise and thresh, O daughter of Zion: for I will make thine horn -iron, and I will make thy hoofs brass: and thou shalt beat in pieces -many people: and I will consecrate their gain unto the LORD, and their -substance unto the Lord of the whole earth. - -5:1 Now gather thyself in troops, O daughter of troops: he hath laid -siege against us: they shall smite the judge of Israel with a rod upon -the cheek. - -5:2 But thou, Bethlehem Ephratah, though thou be little among the -thousands of Judah, yet out of thee shall he come forth unto me that -is to be ruler in Israel; whose goings forth have been from of old, -from everlasting. - -5:3 Therefore will he give them up, until the time that she which -travaileth hath brought forth: then the remnant of his brethren shall -return unto the children of Israel. - -5:4 And he shall stand and feed in the strength of the LORD, in the -majesty of the name of the LORD his God; and they shall abide: for now -shall he be great unto the ends of the earth. - -5:5 And this man shall be the peace, when the Assyrian shall come into -our land: and when he shall tread in our palaces, then shall we raise -against him seven shepherds, and eight principal men. - -5:6 And they shall waste the land of Assyria with the sword, and the -land of Nimrod in the entrances thereof: thus shall he deliver us from -the Assyrian, when he cometh into our land, and when he treadeth -within our borders. - -5:7 And the remnant of Jacob shall be in the midst of many people as a -dew from the LORD, as the showers upon the grass, that tarrieth not -for man, nor waiteth for the sons of men. - -5:8 And the remnant of Jacob shall be among the Gentiles in the midst -of many people as a lion among the beasts of the forest, as a young -lion among the flocks of sheep: who, if he go through, both treadeth -down, and teareth in pieces, and none can deliver. - -5:9 Thine hand shall be lifted up upon thine adversaries, and all -thine enemies shall be cut off. - -5:10 And it shall come to pass in that day, saith the LORD, that I -will cut off thy horses out of the midst of thee, and I will destroy -thy chariots: 5:11 And I will cut off the cities of thy land, and -throw down all thy strong holds: 5:12 And I will cut off witchcrafts -out of thine hand; and thou shalt have no more soothsayers: 5:13 Thy -graven images also will I cut off, and thy standing images out of the -midst of thee; and thou shalt no more worship the work of thine hands. - -5:14 And I will pluck up thy groves out of the midst of thee: so will -I destroy thy cities. - -5:15 And I will execute vengeance in anger and fury upon the heathen, -such as they have not heard. - -6:1 Hear ye now what the LORD saith; Arise, contend thou before the -mountains, and let the hills hear thy voice. - -6:2 Hear ye, O mountains, the LORD's controversy, and ye strong -foundations of the earth: for the LORD hath a controversy with his -people, and he will plead with Israel. - -6:3 O my people, what have I done unto thee? and wherein have I -wearied thee? testify against me. - -6:4 For I brought thee up out of the land of Egypt, and redeemed thee -out of the house of servants; and I sent before thee Moses, Aaron, and -Miriam. - -6:5 O my people, remember now what Balak king of Moab consulted, and -what Balaam the son of Beor answered him from Shittim unto Gilgal; -that ye may know the righteousness of the LORD. - -6:6 Wherewith shall I come before the LORD, and bow myself before the -high God? shall I come before him with burnt offerings, with calves of -a year old? 6:7 Will the LORD be pleased with thousands of rams, or -with ten thousands of rivers of oil? shall I give my firstborn for my -transgression, the fruit of my body for the sin of my soul? 6:8 He -hath shewed thee, O man, what is good; and what doth the LORD require -of thee, but to do justly, and to love mercy, and to walk humbly with -thy God? 6:9 The LORD's voice crieth unto the city, and the man of -wisdom shall see thy name: hear ye the rod, and who hath appointed it. - -6:10 Are there yet the treasures of wickedness in the house of the -wicked, and the scant measure that is abominable? 6:11 Shall I count -them pure with the wicked balances, and with the bag of deceitful -weights? 6:12 For the rich men thereof are full of violence, and the -inhabitants thereof have spoken lies, and their tongue is deceitful in -their mouth. - -6:13 Therefore also will I make thee sick in smiting thee, in making -thee desolate because of thy sins. - -6:14 Thou shalt eat, but not be satisfied; and thy casting down shall -be in the midst of thee; and thou shalt take hold, but shalt not -deliver; and that which thou deliverest will I give up to the sword. - -6:15 Thou shalt sow, but thou shalt not reap; thou shalt tread the -olives, but thou shalt not anoint thee with oil; and sweet wine, but -shalt not drink wine. - -6:16 For the statutes of Omri are kept, and all the works of the house -of Ahab, and ye walk in their counsels; that I should make thee a -desolation, and the inhabitants thereof an hissing: therefore ye shall -bear the reproach of my people. - -7:1 Woe is me! for I am as when they have gathered the summer fruits, -as the grapegleanings of the vintage: there is no cluster to eat: my -soul desired the firstripe fruit. - -7:2 The good man is perished out of the earth: and there is none -upright among men: they all lie in wait for blood; they hunt every man -his brother with a net. - -7:3 That they may do evil with both hands earnestly, the prince -asketh, and the judge asketh for a reward; and the great man, he -uttereth his mischievous desire: so they wrap it up. - -7:4 The best of them is as a brier: the most upright is sharper than a -thorn hedge: the day of thy watchmen and thy visitation cometh; now -shall be their perplexity. - -7:5 Trust ye not in a friend, put ye not confidence in a guide: keep -the doors of thy mouth from her that lieth in thy bosom. - -7:6 For the son dishonoureth the father, the daughter riseth up -against her mother, the daughter in law against her mother in law; a -man's enemies are the men of his own house. - -7:7 Therefore I will look unto the LORD; I will wait for the God of my -salvation: my God will hear me. - -7:8 Rejoice not against me, O mine enemy: when I fall, I shall arise; -when I sit in darkness, the LORD shall be a light unto me. - -7:9 I will bear the indignation of the LORD, because I have sinned -against him, until he plead my cause, and execute judgment for me: he -will bring me forth to the light, and I shall behold his -righteousness. - -7:10 Then she that is mine enemy shall see it, and shame shall cover -her which said unto me, Where is the LORD thy God? mine eyes shall -behold her: now shall she be trodden down as the mire of the streets. - -7:11 In the day that thy walls are to be built, in that day shall the -decree be far removed. - -7:12 In that day also he shall come even to thee from Assyria, and -from the fortified cities, and from the fortress even to the river, -and from sea to sea, and from mountain to mountain. - -7:13 Notwithstanding the land shall be desolate because of them that -dwell therein, for the fruit of their doings. - -7:14 Feed thy people with thy rod, the flock of thine heritage, which -dwell solitarily in the wood, in the midst of Carmel: let them feed in -Bashan and Gilead, as in the days of old. - -7:15 According to the days of thy coming out of the land of Egypt will -I shew unto him marvellous things. - -7:16 The nations shall see and be confounded at all their might: they -shall lay their hand upon their mouth, their ears shall be deaf. - -7:17 They shall lick the dust like a serpent, they shall move out of -their holes like worms of the earth: they shall be afraid of the LORD -our God, and shall fear because of thee. - -7:18 Who is a God like unto thee, that pardoneth iniquity, and passeth -by the transgression of the remnant of his heritage? he retaineth not -his anger for ever, because he delighteth in mercy. - -7:19 He will turn again, he will have compassion upon us; he will -subdue our iniquities; and thou wilt cast all their sins into the -depths of the sea. - -7:20 Thou wilt perform the truth to Jacob, and the mercy to Abraham, -which thou hast sworn unto our fathers from the days of old. - - - - -Nahum - - -1:1 The burden of Nineveh. The book of the vision of Nahum the Elkoshite. - -1:2 God is jealous, and the LORD revengeth; the LORD revengeth, and is -furious; the LORD will take vengeance on his adversaries, and he -reserveth wrath for his enemies. - -1:3 The LORD is slow to anger, and great in power, and will not at all -acquit the wicked: the LORD hath his way in the whirlwind and in the -storm, and the clouds are the dust of his feet. - -1:4 He rebuketh the sea, and maketh it dry, and drieth up all the -rivers: Bashan languisheth, and Carmel, and the flower of Lebanon -languisheth. - -1:5 The mountains quake at him, and the hills melt, and the earth is -burned at his presence, yea, the world, and all that dwell therein. - -1:6 Who can stand before his indignation? and who can abide in the -fierceness of his anger? his fury is poured out like fire, and the -rocks are thrown down by him. - -1:7 The LORD is good, a strong hold in the day of trouble; and he -knoweth them that trust in him. - -1:8 But with an overrunning flood he will make an utter end of the -place thereof, and darkness shall pursue his enemies. - -1:9 What do ye imagine against the LORD? he will make an utter end: -affliction shall not rise up the second time. - -1:10 For while they be folden together as thorns, and while they are -drunken as drunkards, they shall be devoured as stubble fully dry. - -1:11 There is one come out of thee, that imagineth evil against the -LORD, a wicked counsellor. - -1:12 Thus saith the LORD; Though they be quiet, and likewise many, yet -thus shall they be cut down, when he shall pass through. Though I have -afflicted thee, I will afflict thee no more. - -1:13 For now will I break his yoke from off thee, and will burst thy -bonds in sunder. - -1:14 And the LORD hath given a commandment concerning thee, that no -more of thy name be sown: out of the house of thy gods will I cut off -the graven image and the molten image: I will make thy grave; for thou -art vile. - -1:15 Behold upon the mountains the feet of him that bringeth good -tidings, that publisheth peace! O Judah, keep thy solemn feasts, -perform thy vows: for the wicked shall no more pass through thee; he -is utterly cut off. - -2:1 He that dasheth in pieces is come up before thy face: keep the -munition, watch the way, make thy loins strong, fortify thy power -mightily. - -2:2 For the LORD hath turned away the excellency of Jacob, as the -excellency of Israel: for the emptiers have emptied them out, and -marred their vine branches. - -2:3 The shield of his mighty men is made red, the valiant men are in -scarlet: the chariots shall be with flaming torches in the day of his -preparation, and the fir trees shall be terribly shaken. - -2:4 The chariots shall rage in the streets, they shall justle one -against another in the broad ways: they shall seem like torches, they -shall run like the lightnings. - -2:5 He shall recount his worthies: they shall stumble in their walk; -they shall make haste to the wall thereof, and the defence shall be -prepared. - -2:6 The gates of the rivers shall be opened, and the palace shall be -dissolved. - -2:7 And Huzzab shall be led away captive, she shall be brought up, and -her maids shall lead her as with the voice of doves, tabering upon -their breasts. - -2:8 But Nineveh is of old like a pool of water: yet they shall flee -away. - -Stand, stand, shall they cry; but none shall look back. - -2:9 Take ye the spoil of silver, take the spoil of gold: for there is -none end of the store and glory out of all the pleasant furniture. - -2:10 She is empty, and void, and waste: and the heart melteth, and the -knees smite together, and much pain is in all loins, and the faces of -them all gather blackness. - -2:11 Where is the dwelling of the lions, and the feedingplace of the -young lions, where the lion, even the old lion, walked, and the lion's -whelp, and none made them afraid? 2:12 The lion did tear in pieces -enough for his whelps, and strangled for his lionesses, and filled his -holes with prey, and his dens with ravin. - -2:13 Behold, I am against thee, saith the LORD of hosts, and I will -burn her chariots in the smoke, and the sword shall devour thy young -lions: and I will cut off thy prey from the earth, and the voice of -thy messengers shall no more be heard. - -3:1 Woe to the bloody city! it is all full of lies and robbery; the -prey departeth not; 3:2 The noise of a whip, and the noise of the -rattling of the wheels, and of the pransing horses, and of the jumping -chariots. - -3:3 The horseman lifteth up both the bright sword and the glittering -spear: and there is a multitude of slain, and a great number of -carcases; and there is none end of their corpses; they stumble upon -their corpses: 3:4 Because of the multitude of the whoredoms of the -wellfavoured harlot, the mistress of witchcrafts, that selleth nations -through her whoredoms, and families through her witchcrafts. - -3:5 Behold, I am against thee, saith the LORD of hosts; and I will -discover thy skirts upon thy face, and I will shew the nations thy -nakedness, and the kingdoms thy shame. - -3:6 And I will cast abominable filth upon thee, and make thee vile, -and will set thee as a gazingstock. - -3:7 And it shall come to pass, that all they that look upon thee shall -flee from thee, and say, Nineveh is laid waste: who will bemoan her? -whence shall I seek comforters for thee? 3:8 Art thou better than -populous No, that was situate among the rivers, that had the waters -round about it, whose rampart was the sea, and her wall was from the -sea? 3:9 Ethiopia and Egypt were her strength, and it was infinite; -Put and Lubim were thy helpers. - -3:10 Yet was she carried away, she went into captivity: her young -children also were dashed in pieces at the top of all the streets: and -they cast lots for her honourable men, and all her great men were -bound in chains. - -3:11 Thou also shalt be drunken: thou shalt be hid, thou also shalt -seek strength because of the enemy. - -3:12 All thy strong holds shall be like fig trees with the firstripe -figs: if they be shaken, they shall even fall into the mouth of the -eater. - -3:13 Behold, thy people in the midst of thee are women: the gates of -thy land shall be set wide open unto thine enemies: the fire shall -devour thy bars. - -3:14 Draw thee waters for the siege, fortify thy strong holds: go into -clay, and tread the morter, make strong the brickkiln. - -3:15 There shall the fire devour thee; the sword shall cut thee off, -it shall eat thee up like the cankerworm: make thyself many as the -cankerworm, make thyself many as the locusts. - -3:16 Thou hast multiplied thy merchants above the stars of heaven: the -cankerworm spoileth, and fleeth away. - -3:17 Thy crowned are as the locusts, and thy captains as the great -grasshoppers, which camp in the hedges in the cold day, but when the -sun ariseth they flee away, and their place is not known where they -are. - -3:18 Thy shepherds slumber, O king of Assyria: thy nobles shall dwell -in the dust: thy people is scattered upon the mountains, and no man -gathereth them. - -3:19 There is no healing of thy bruise; thy wound is grievous: all -that hear the bruit of thee shall clap the hands over thee: for upon -whom hath not thy wickedness passed continually? - - - - -Habakkuk - - -1:1 The burden which Habakkuk the prophet did see. - -1:2 O LORD, how long shall I cry, and thou wilt not hear! even cry out -unto thee of violence, and thou wilt not save! 1:3 Why dost thou shew -me iniquity, and cause me to behold grievance? for spoiling and -violence are before me: and there are that raise up strife and -contention. - -1:4 Therefore the law is slacked, and judgment doth never go forth: -for the wicked doth compass about the righteous; therefore wrong -judgment proceedeth. - -1:5 Behold ye among the heathen, and regard, and wonder marvelously: -for I will work a work in your days which ye will not believe, though -it be told you. - -1:6 For, lo, I raise up the Chaldeans, that bitter and hasty nation, -which shall march through the breadth of the land, to possess the -dwellingplaces that are not their's. - -1:7 They are terrible and dreadful: their judgment and their dignity -shall proceed of themselves. - -1:8 Their horses also are swifter than the leopards, and are more -fierce than the evening wolves: and their horsemen shall spread -themselves, and their horsemen shall come from far; they shall fly as -the eagle that hasteth to eat. - -1:9 They shall come all for violence: their faces shall sup up as the -east wind, and they shall gather the captivity as the sand. - -1:10 And they shall scoff at the kings, and the princes shall be a -scorn unto them: they shall deride every strong hold; for they shall -heap dust, and take it. - -1:11 Then shall his mind change, and he shall pass over, and offend, -imputing this his power unto his god. - -1:12 Art thou not from everlasting, O LORD my God, mine Holy One? we -shall not die. O LORD, thou hast ordained them for judgment; and, O -mighty God, thou hast established them for correction. - -1:13 Thou art of purer eyes than to behold evil, and canst not look on -iniquity: wherefore lookest thou upon them that deal treacherously, -and holdest thy tongue when the wicked devoureth the man that is more -righteous than he? 1:14 And makest men as the fishes of the sea, as -the creeping things, that have no ruler over them? 1:15 They take up -all of them with the angle, they catch them in their net, and gather -them in their drag: therefore they rejoice and are glad. - -1:16 Therefore they sacrifice unto their net, and burn incense unto -their drag; because by them their portion is fat, and their meat -plenteous. - -1:17 Shall they therefore empty their net, and not spare continually -to slay the nations? 2:1 I will stand upon my watch, and set me upon -the tower, and will watch to see what he will say unto me, and what I -shall answer when I am reproved. - -2:2 And the LORD answered me, and said, Write the vision, and make it -plain upon tables, that he may run that readeth it. - -2:3 For the vision is yet for an appointed time, but at the end it -shall speak, and not lie: though it tarry, wait for it; because it -will surely come, it will not tarry. - -2:4 Behold, his soul which is lifted up is not upright in him: but the -just shall live by his faith. - -2:5 Yea also, because he transgresseth by wine, he is a proud man, -neither keepeth at home, who enlargeth his desire as hell, and is as -death, and cannot be satisfied, but gathereth unto him all nations, -and heapeth unto him all people: 2:6 Shall not all these take up a -parable against him, and a taunting proverb against him, and say, Woe -to him that increaseth that which is not his! how long? and to him -that ladeth himself with thick clay! 2:7 Shall they not rise up -suddenly that shall bite thee, and awake that shall vex thee, and thou -shalt be for booties unto them? 2:8 Because thou hast spoiled many -nations, all the remnant of the people shall spoil thee; because of -men's blood, and for the violence of the land, of the city, and of all -that dwell therein. - -2:9 Woe to him that coveteth an evil covetousness to his house, that -he may set his nest on high, that he may be delivered from the power -of evil! 2:10 Thou hast consulted shame to thy house by cutting off -many people, and hast sinned against thy soul. - -2:11 For the stone shall cry out of the wall, and the beam out of the -timber shall answer it. - -2:12 Woe to him that buildeth a town with blood, and stablisheth a -city by iniquity! 2:13 Behold, is it not of the LORD of hosts that -the people shall labour in the very fire, and the people shall weary -themselves for very vanity? 2:14 For the earth shall be filled with -the knowledge of the glory of the LORD, as the waters cover the sea. - -2:15 Woe unto him that giveth his neighbour drink, that puttest thy -bottle to him, and makest him drunken also, that thou mayest look on -their nakedness! 2:16 Thou art filled with shame for glory: drink -thou also, and let thy foreskin be uncovered: the cup of the LORD's -right hand shall be turned unto thee, and shameful spewing shall be on -thy glory. - -2:17 For the violence of Lebanon shall cover thee, and the spoil of -beasts, which made them afraid, because of men's blood, and for the -violence of the land, of the city, and of all that dwell therein. - -2:18 What profiteth the graven image that the maker thereof hath -graven it; the molten image, and a teacher of lies, that the maker of -his work trusteth therein, to make dumb idols? 2:19 Woe unto him that -saith to the wood, Awake; to the dumb stone, Arise, it shall teach! -Behold, it is laid over with gold and silver, and there is no breath -at all in the midst of it. - -2:20 But the LORD is in his holy temple: let all the earth keep -silence before him. - -3:1 A prayer of Habakkuk the prophet upon Shigionoth. - -3:2 O LORD, I have heard thy speech, and was afraid: O LORD, revive -thy work in the midst of the years, in the midst of the years make -known; in wrath remember mercy. - -3:3 God came from Teman, and the Holy One from mount Paran. Selah. His -glory covered the heavens, and the earth was full of his praise. - -3:4 And his brightness was as the light; he had horns coming out of -his hand: and there was the hiding of his power. - -3:5 Before him went the pestilence, and burning coals went forth at -his feet. - -3:6 He stood, and measured the earth: he beheld, and drove asunder the -nations; and the everlasting mountains were scattered, the perpetual -hills did bow: his ways are everlasting. - -3:7 I saw the tents of Cushan in affliction: and the curtains of the -land of Midian did tremble. - -3:8 Was the LORD displeased against the rivers? was thine anger -against the rivers? was thy wrath against the sea, that thou didst -ride upon thine horses and thy chariots of salvation? 3:9 Thy bow was -made quite naked, according to the oaths of the tribes, even thy word. -Selah. Thou didst cleave the earth with rivers. - -3:10 The mountains saw thee, and they trembled: the overflowing of the -water passed by: the deep uttered his voice, and lifted up his hands -on high. - -3:11 The sun and moon stood still in their habitation: at the light of -thine arrows they went, and at the shining of thy glittering spear. - -3:12 Thou didst march through the land in indignation, thou didst -thresh the heathen in anger. - -3:13 Thou wentest forth for the salvation of thy people, even for -salvation with thine anointed; thou woundedst the head out of the -house of the wicked, by discovering the foundation unto the neck. -Selah. - -3:14 Thou didst strike through with his staves the head of his -villages: they came out as a whirlwind to scatter me: their rejoicing -was as to devour the poor secretly. - -3:15 Thou didst walk through the sea with thine horses, through the -heap of great waters. - -3:16 When I heard, my belly trembled; my lips quivered at the voice: -rottenness entered into my bones, and I trembled in myself, that I -might rest in the day of trouble: when he cometh up unto the people, -he will invade them with his troops. - -3:17 Although the fig tree shall not blossom, neither shall fruit be -in the vines; the labour of the olive shall fail, and the fields shall -yield no meat; the flock shall be cut off from the fold, and there -shall be no herd in the stalls: 3:18 Yet I will rejoice in the LORD, I -will joy in the God of my salvation. - -3:19 The LORD God is my strength, and he will make my feet like hinds' -feet, and he will make me to walk upon mine high places. To the chief -singer on my stringed instruments. - - - - -Zephaniah - - -1:1 The word of the LORD which came unto Zephaniah the son of Cushi, -the son of Gedaliah, the son of Amariah, the son of Hizkiah, in the -days of Josiah the son of Amon, king of Judah. - -1:2 I will utterly consume all things from off the land, saith the -LORD. - -1:3 I will consume man and beast; I will consume the fowls of the -heaven, and the fishes of the sea, and the stumbling blocks with the -wicked: and I will cut off man from off the land, saith the LORD. - -1:4 I will also stretch out mine hand upon Judah, and upon all the -inhabitants of Jerusalem; and I will cut off the remnant of Baal from -this place, and the name of the Chemarims with the priests; 1:5 And -them that worship the host of heaven upon the housetops; and them that -worship and that swear by the LORD, and that swear by Malcham; 1:6 And -them that are turned back from the LORD; and those that have not -sought the LORD, nor enquired for him. - -1:7 Hold thy peace at the presence of the Lord GOD: for the day of the -LORD is at hand: for the LORD hath prepared a sacrifice, he hath bid -his guests. - -1:8 And it shall come to pass in the day of the LORD's sacrifice, that -I will punish the princes, and the king's children, and all such as -are clothed with strange apparel. - -1:9 In the same day also will I punish all those that leap on the -threshold, which fill their masters' houses with violence and deceit. - -1:10 And it shall come to pass in that day, saith the LORD, that there -shall be the noise of a cry from the fish gate, and an howling from -the second, and a great crashing from the hills. - -1:11 Howl, ye inhabitants of Maktesh, for all the merchant people are -cut down; all they that bear silver are cut off. - -1:12 And it shall come to pass at that time, that I will search -Jerusalem with candles, and punish the men that are settled on their -lees: that say in their heart, The LORD will not do good, neither will -he do evil. - -1:13 Therefore their goods shall become a booty, and their houses a -desolation: they shall also build houses, but not inhabit them; and -they shall plant vineyards, but not drink the wine thereof. - -1:14 The great day of the LORD is near, it is near, and hasteth -greatly, even the voice of the day of the LORD: the mighty man shall -cry there bitterly. - -1:15 That day is a day of wrath, a day of trouble and distress, a day -of wasteness and desolation, a day of darkness and gloominess, a day -of clouds and thick darkness, 1:16 A day of the trumpet and alarm -against the fenced cities, and against the high towers. - -1:17 And I will bring distress upon men, that they shall walk like -blind men, because they have sinned against the LORD: and their blood -shall be poured out as dust, and their flesh as the dung. - -1:18 Neither their silver nor their gold shall be able to deliver them -in the day of the LORD's wrath; but the whole land shall be devoured -by the fire of his jealousy: for he shall make even a speedy riddance -of all them that dwell in the land. - -2:1 Gather yourselves together, yea, gather together, O nation not -desired; 2:2 Before the decree bring forth, before the day pass as the -chaff, before the fierce anger of the LORD come upon you, before the -day of the LORD's anger come upon you. - -2:3 Seek ye the LORD, all ye meek of the earth, which have wrought his -judgment; seek righteousness, seek meekness: it may be ye shall be hid -in the day of the LORD's anger. - -2:4 For Gaza shall be forsaken, and Ashkelon a desolation: they shall -drive out Ashdod at the noon day, and Ekron shall be rooted up. - -2:5 Woe unto the inhabitants of the sea coast, the nation of the -Cherethites! the word of the LORD is against you; O Canaan, the land -of the Philistines, I will even destroy thee, that there shall be no -inhabitant. - -2:6 And the sea coast shall be dwellings and cottages for shepherds, -and folds for flocks. - -2:7 And the coast shall be for the remnant of the house of Judah; they -shall feed thereupon: in the houses of Ashkelon shall they lie down in -the evening: for the LORD their God shall visit them, and turn away -their captivity. - -2:8 I have heard the reproach of Moab, and the revilings of the -children of Ammon, whereby they have reproached my people, and -magnified themselves against their border. - -2:9 Therefore as I live, saith the LORD of hosts, the God of Israel, -Surely Moab shall be as Sodom, and the children of Ammon as Gomorrah, -even the breeding of nettles, and saltpits, and a perpetual -desolation: the residue of my people shall spoil them, and the remnant -of my people shall possess them. - -2:10 This shall they have for their pride, because they have -reproached and magnified themselves against the people of the LORD of -hosts. - -2:11 The LORD will be terrible unto them: for he will famish all the -gods of the earth; and men shall worship him, every one from his -place, even all the isles of the heathen. - -2:12 Ye Ethiopians also, ye shall be slain by my sword. - -2:13 And he will stretch out his hand against the north, and destroy -Assyria; and will make Nineveh a desolation, and dry like a -wilderness. - -2:14 And flocks shall lie down in the midst of her, all the beasts of -the nations: both the cormorant and the bittern shall lodge in the -upper lintels of it; their voice shall sing in the windows; desolation -shall be in the thresholds; for he shall uncover the cedar work. - -2:15 This is the rejoicing city that dwelt carelessly, that said in -her heart, I am, and there is none beside me: how is she become a -desolation, a place for beasts to lie down in! every one that passeth -by her shall hiss, and wag his hand. - -3:1 Woe to her that is filthy and polluted, to the oppressing city! -3:2 She obeyed not the voice; she received not correction; she trusted -not in the LORD; she drew not near to her God. - -3:3 Her princes within her are roaring lions; her judges are evening -wolves; they gnaw not the bones till the morrow. - -3:4 Her prophets are light and treacherous persons: her priests have -polluted the sanctuary, they have done violence to the law. - -3:5 The just LORD is in the midst thereof; he will not do iniquity: -every morning doth he bring his judgment to light, he faileth not; but -the unjust knoweth no shame. - -3:6 I have cut off the nations: their towers are desolate; I made -their streets waste, that none passeth by: their cities are destroyed, -so that there is no man, that there is none inhabitant. - -3:7 I said, Surely thou wilt fear me, thou wilt receive instruction; -so their dwelling should not be cut off, howsoever I punished them: -but they rose early, and corrupted all their doings. - -3:8 Therefore wait ye upon me, saith the LORD, until the day that I -rise up to the prey: for my determination is to gather the nations, -that I may assemble the kingdoms, to pour upon them mine indignation, -even all my fierce anger: for all the earth shall be devoured with the -fire of my jealousy. - -3:9 For then will I turn to the people a pure language, that they may -all call upon the name of the LORD, to serve him with one consent. - -3:10 From beyond the rivers of Ethiopia my suppliants, even the -daughter of my dispersed, shall bring mine offering. - -3:11 In that day shalt thou not be ashamed for all thy doings, wherein -thou hast transgressed against me: for then I will take away out of -the midst of thee them that rejoice in thy pride, and thou shalt no -more be haughty because of my holy mountain. - -3:12 I will also leave in the midst of thee an afflicted and poor -people, and they shall trust in the name of the LORD. - -3:13 The remnant of Israel shall not do iniquity, nor speak lies; -neither shall a deceitful tongue be found in their mouth: for they -shall feed and lie down, and none shall make them afraid. - -3:14 Sing, O daughter of Zion; shout, O Israel; be glad and rejoice -with all the heart, O daughter of Jerusalem. - -3:15 The LORD hath taken away thy judgments, he hath cast out thine -enemy: the king of Israel, even the LORD, is in the midst of thee: -thou shalt not see evil any more. - -3:16 In that day it shall be said to Jerusalem, Fear thou not: and to -Zion, Let not thine hands be slack. - -3:17 The LORD thy God in the midst of thee is mighty; he will save, he -will rejoice over thee with joy; he will rest in his love, he will joy -over thee with singing. - -3:18 I will gather them that are sorrowful for the solemn assembly, -who are of thee, to whom the reproach of it was a burden. - -3:19 Behold, at that time I will undo all that afflict thee: and I -will save her that halteth, and gather her that was driven out; and I -will get them praise and fame in every land where they have been put -to shame. - -3:20 At that time will I bring you again, even in the time that I -gather you: for I will make you a name and a praise among all people -of the earth, when I turn back your captivity before your eyes, -saith the LORD. - - - - -Haggai - - -1:1 In the second year of Darius the king, in the sixth month, in the -first day of the month, came the word of the LORD by Haggai the -prophet unto Zerubbabel the son of Shealtiel, governor of Judah, and -to Joshua the son of Josedech, the high priest, saying, 1:2 Thus -speaketh the LORD of hosts, saying, This people say, The time is not -come, the time that the LORD's house should be built. - -1:3 Then came the word of the LORD by Haggai the prophet, saying, 1:4 -Is it time for you, O ye, to dwell in your cieled houses, and this -house lie waste? 1:5 Now therefore thus saith the LORD of hosts; -Consider your ways. - -1:6 Ye have sown much, and bring in little; ye eat, but ye have not -enough; ye drink, but ye are not filled with drink; ye clothe you, but -there is none warm; and he that earneth wages earneth wages to put it -into a bag with holes. - -1:7 Thus saith the LORD of hosts; Consider your ways. - -1:8 Go up to the mountain, and bring wood, and build the house; and I -will take pleasure in it, and I will be glorified, saith the LORD. - -1:9 Ye looked for much, and, lo it came to little; and when ye brought -it home, I did blow upon it. Why? saith the LORD of hosts. Because of -mine house that is waste, and ye run every man unto his own house. - -1:10 Therefore the heaven over you is stayed from dew, and the earth -is stayed from her fruit. - -1:11 And I called for a drought upon the land, and upon the mountains, -and upon the corn, and upon the new wine, and upon the oil, and upon -that which the ground bringeth forth, and upon men, and upon cattle, -and upon all the labour of the hands. - -1:12 Then Zerubbabel the son of Shealtiel, and Joshua the son of -Josedech, the high priest, with all the remnant of the people, obeyed -the voice of the LORD their God, and the words of Haggai the prophet, -as the LORD their God had sent him, and the people did fear before the -LORD. - -1:13 Then spake Haggai the LORD's messenger in the LORD's message unto -the people, saying, I am with you, saith the LORD. - -1:14 And the LORD stirred up the spirit of Zerubbabel the son of -Shealtiel, governor of Judah, and the spirit of Joshua the son of -Josedech, the high priest, and the spirit of all the remnant of the -people; and they came and did work in the house of the LORD of hosts, -their God, 1:15 In the four and twentieth day of the sixth month, in -the second year of Darius the king. - -2:1 In the seventh month, in the one and twentieth day of the month, -came the word of the LORD by the prophet Haggai, saying, 2:2 Speak now -to Zerubbabel the son of Shealtiel, governor of Judah, and to Joshua -the son of Josedech, the high priest, and to the residue of the -people, saying, 2:3 Who is left among you that saw this house in her -first glory? and how do ye see it now? is it not in your eyes in -comparison of it as nothing? 2:4 Yet now be strong, O Zerubbabel, -saith the LORD; and be strong, O Joshua, son of Josedech, the high -priest; and be strong, all ye people of the land, saith the LORD, and -work: for I am with you, saith the LORD of hosts: 2:5 According to the -word that I covenanted with you when ye came out of Egypt, so my -spirit remaineth among you: fear ye not. - -2:6 For thus saith the LORD of hosts; Yet once, it is a little while, -and I will shake the heavens, and the earth, and the sea, and the dry -land; 2:7 And I will shake all nations, and the desire of all nations -shall come: and I will fill this house with glory, saith the LORD of -hosts. - -2:8 The silver is mine, and the gold is mine, saith the LORD of hosts. - -2:9 The glory of this latter house shall be greater than of the -former, saith the LORD of hosts: and in this place will I give peace, -saith the LORD of hosts. - -2:10 In the four and twentieth day of the ninth month, in the second -year of Darius, came the word of the LORD by Haggai the prophet, -saying, 2:11 Thus saith the LORD of hosts; Ask now the priests -concerning the law, saying, 2:12 If one bear holy flesh in the skirt -of his garment, and with his skirt do touch bread, or pottage, or -wine, or oil, or any meat, shall it be holy? And the priests answered -and said, No. - -2:13 Then said Haggai, If one that is unclean by a dead body touch any -of these, shall it be unclean? And the priests answered and said, It -shall be unclean. - -2:14 Then answered Haggai, and said, So is this people, and so is this -nation before me, saith the LORD; and so is every work of their hands; -and that which they offer there is unclean. - -2:15 And now, I pray you, consider from this day and upward, from -before a stone was laid upon a stone in the temple of the LORD: 2:16 -Since those days were, when one came to an heap of twenty measures, -there were but ten: when one came to the pressfat for to draw out -fifty vessels out of the press, there were but twenty. - -2:17 I smote you with blasting and with mildew and with hail in all -the labours of your hands; yet ye turned not to me, saith the LORD. - -2:18 Consider now from this day and upward, from the four and -twentieth day of the ninth month, even from the day that the -foundation of the LORD's temple was laid, consider it. - -2:19 Is the seed yet in the barn? yea, as yet the vine, and the fig -tree, and the pomegranate, and the olive tree, hath not brought forth: -from this day will I bless you. - -2:20 And again the word of the LORD came unto Haggai in the four and -twentieth day of the month, saying, 2:21 Speak to Zerubbabel, governor -of Judah, saying, I will shake the heavens and the earth; 2:22 And I -will overthrow the throne of kingdoms, and I will destroy the strength -of the kingdoms of the heathen; and I will overthrow the chariots, and -those that ride in them; and the horses and their riders shall come -down, every one by the sword of his brother. - -2:23 In that day, saith the LORD of hosts, will I take thee, O -Zerubbabel, my servant, the son of Shealtiel, saith the LORD, and will -make thee as a signet: for I have chosen thee, saith the LORD of hosts. - - - - -Zechariah - - -1:1 In the eighth month, in the second year of Darius, came the word -of the LORD unto Zechariah, the son of Berechiah, the son of Iddo the -prophet, saying, 1:2 The LORD hath been sore displeased with your -fathers. - -1:3 Therefore say thou unto them, Thus saith the LORD of hosts; Turn -ye unto me, saith the LORD of hosts, and I will turn unto you, saith -the LORD of hosts. - -1:4 Be ye not as your fathers, unto whom the former prophets have -cried, saying, Thus saith the LORD of hosts; Turn ye now from your -evil ways, and from your evil doings: but they did not hear, nor -hearken unto me, saith the LORD. - -1:5 Your fathers, where are they? and the prophets, do they live for -ever? 1:6 But my words and my statutes, which I commanded my servants -the prophets, did they not take hold of your fathers? and they -returned and said, Like as the LORD of hosts thought to do unto us, -according to our ways, and according to our doings, so hath he dealt -with us. - -1:7 Upon the four and twentieth day of the eleventh month, which is -the month Sebat, in the second year of Darius, came the word of the -LORD unto Zechariah, the son of Berechiah, the son of Iddo the -prophet, saying, 1:8 I saw by night, and behold a man riding upon a -red horse, and he stood among the myrtle trees that were in the -bottom; and behind him were there red horses, speckled, and white. - -1:9 Then said I, O my lord, what are these? And the angel that talked -with me said unto me, I will shew thee what these be. - -1:10 And the man that stood among the myrtle trees answered and said, -These are they whom the LORD hath sent to walk to and fro through the -earth. - -1:11 And they answered the angel of the LORD that stood among the -myrtle trees, and said, We have walked to and fro through the earth, -and, behold, all the earth sitteth still, and is at rest. - -1:12 Then the angel of the LORD answered and said, O LORD of hosts, -how long wilt thou not have mercy on Jerusalem and on the cities of -Judah, against which thou hast had indignation these threescore and -ten years? 1:13 And the LORD answered the angel that talked with me -with good words and comfortable words. - -1:14 So the angel that communed with me said unto me, Cry thou, -saying, Thus saith the LORD of hosts; I am jealous for Jerusalem and -for Zion with a great jealousy. - -1:15 And I am very sore displeased with the heathen that are at ease: -for I was but a little displeased, and they helped forward the -affliction. - -1:16 Therefore thus saith the LORD; I am returned to Jerusalem with -mercies: my house shall be built in it, saith the LORD of hosts, and a -line shall be stretched forth upon Jerusalem. - -1:17 Cry yet, saying, Thus saith the LORD of hosts; My cities through -prosperity shall yet be spread abroad; and the LORD shall yet comfort -Zion, and shall yet choose Jerusalem. - -1:18 Then lifted I up mine eyes, and saw, and behold four horns. - -1:19 And I said unto the angel that talked with me, What be these? And -he answered me, These are the horns which have scattered Judah, -Israel, and Jerusalem. - -1:20 And the LORD shewed me four carpenters. - -1:21 Then said I, What come these to do? And he spake, saying, These -are the horns which have scattered Judah, so that no man did lift up -his head: but these are come to fray them, to cast out the horns of -the Gentiles, which lifted up their horn over the land of Judah to -scatter it. - -2:1 I lifted up mine eyes again, and looked, and behold a man with a -measuring line in his hand. - -2:2 Then said I, Whither goest thou? And he said unto me, To measure -Jerusalem, to see what is the breadth thereof, and what is the length -thereof. - -2:3 And, behold, the angel that talked with me went forth, and another -angel went out to meet him, 2:4 And said unto him, Run, speak to this -young man, saying, Jerusalem shall be inhabited as towns without walls -for the multitude of men and cattle therein: 2:5 For I, saith the -LORD, will be unto her a wall of fire round about, and will be the -glory in the midst of her. - -2:6 Ho, ho, come forth, and flee from the land of the north, saith the -LORD: for I have spread you abroad as the four winds of the heaven, -saith the LORD. - -2:7 Deliver thyself, O Zion, that dwellest with the daughter of -Babylon. - -2:8 For thus saith the LORD of hosts; After the glory hath he sent me -unto the nations which spoiled you: for he that toucheth you toucheth -the apple of his eye. - -2:9 For, behold, I will shake mine hand upon them, and they shall be a -spoil to their servants: and ye shall know that the LORD of hosts hath -sent me. - -2:10 Sing and rejoice, O daughter of Zion: for, lo, I come, and I will -dwell in the midst of thee, saith the LORD. - -2:11 And many nations shall be joined to the LORD in that day, and -shall be my people: and I will dwell in the midst of thee, and thou -shalt know that the LORD of hosts hath sent me unto thee. - -2:12 And the LORD shall inherit Judah his portion in the holy land, -and shall choose Jerusalem again. - -2:13 Be silent, O all flesh, before the LORD: for he is raised up out -of his holy habitation. - -3:1 And he shewed me Joshua the high priest standing before the angel -of the LORD, and Satan standing at his right hand to resist him. - -3:2 And the LORD said unto Satan, The LORD rebuke thee, O Satan; even -the LORD that hath chosen Jerusalem rebuke thee: is not this a brand -plucked out of the fire? 3:3 Now Joshua was clothed with filthy -garments, and stood before the angel. - -3:4 And he answered and spake unto those that stood before him, -saying, Take away the filthy garments from him. And unto him he said, -Behold, I have caused thine iniquity to pass from thee, and I will -clothe thee with change of raiment. - -3:5 And I said, Let them set a fair mitre upon his head. So they set a -fair mitre upon his head, and clothed him with garments. And the angel -of the LORD stood by. - -3:6 And the angel of the LORD protested unto Joshua, saying, 3:7 Thus -saith the LORD of hosts; If thou wilt walk in my ways, and if thou -wilt keep my charge, then thou shalt also judge my house, and shalt -also keep my courts, and I will give thee places to walk among these -that stand by. - -3:8 Hear now, O Joshua the high priest, thou, and thy fellows that sit -before thee: for they are men wondered at: for, behold, I will bring -forth my servant the BRANCH. - -3:9 For behold the stone that I have laid before Joshua; upon one -stone shall be seven eyes: behold, I will engrave the graving thereof, -saith the LORD of hosts, and I will remove the iniquity of that land -in one day. - -3:10 In that day, saith the LORD of hosts, shall ye call every man his -neighbour under the vine and under the fig tree. - -4:1 And the angel that talked with me came again, and waked me, as a -man that is wakened out of his sleep. - -4:2 And said unto me, What seest thou? And I said, I have looked, and -behold a candlestick all of gold, with a bowl upon the top of it, and -his seven lamps thereon, and seven pipes to the seven lamps, which are -upon the top thereof: 4:3 And two olive trees by it, one upon the -right side of the bowl, and the other upon the left side thereof. - -4:4 So I answered and spake to the angel that talked with me, saying, -What are these, my lord? 4:5 Then the angel that talked with me -answered and said unto me, Knowest thou not what these be? And I said, -No, my lord. - -4:6 Then he answered and spake unto me, saying, This is the word of -the LORD unto Zerubbabel, saying, Not by might, nor by power, but by -my spirit, saith the LORD of hosts. - -4:7 Who art thou, O great mountain? before Zerubbabel thou shalt -become a plain: and he shall bring forth the headstone thereof with -shoutings, crying, Grace, grace unto it. - -4:8 Moreover the word of the LORD came unto me, saying, 4:9 The hands -of Zerubbabel have laid the foundation of this house; his hands shall -also finish it; and thou shalt know that the LORD of hosts hath sent -me unto you. - -4:10 For who hath despised the day of small things? for they shall -rejoice, and shall see the plummet in the hand of Zerubbabel with -those seven; they are the eyes of the LORD, which run to and fro -through the whole earth. - -4:11 Then answered I, and said unto him, What are these two olive -trees upon the right side of the candlestick and upon the left side -thereof? 4:12 And I answered again, and said unto him, What be these -two olive branches which through the two golden pipes empty the golden -oil out of themselves? 4:13 And he answered me and said, Knowest thou -not what these be? And I said, No, my lord. - -4:14 Then said he, These are the two anointed ones, that stand by the -LORD of the whole earth. - -5:1 Then I turned, and lifted up mine eyes, and looked, and behold a -flying roll. - -5:2 And he said unto me, What seest thou? And I answered, I see a -flying roll; the length thereof is twenty cubits, and the breadth -thereof ten cubits. - -5:3 Then said he unto me, This is the curse that goeth forth over the -face of the whole earth: for every one that stealeth shall be cut off -as on this side according to it; and every one that sweareth shall be -cut off as on that side according to it. - -5:4 I will bring it forth, saith the LORD of hosts, and it shall enter -into the house of the thief, and into the house of him that sweareth -falsely by my name: and it shall remain in the midst of his house, and -shall consume it with the timber thereof and the stones thereof. - -5:5 Then the angel that talked with me went forth, and said unto me, -Lift up now thine eyes, and see what is this that goeth forth. - -5:6 And I said, What is it? And he said, This is an ephah that goeth -forth. He said moreover, This is their resemblance through all the -earth. - -5:7 And, behold, there was lifted up a talent of lead: and this is a -woman that sitteth in the midst of the ephah. - -5:8 And he said, This is wickedness. And he cast it into the midst of -the ephah; and he cast the weight of lead upon the mouth thereof. - -5:9 Then lifted I up mine eyes, and looked, and, behold, there came -out two women, and the wind was in their wings; for they had wings -like the wings of a stork: and they lifted up the ephah between the -earth and the heaven. - -5:10 Then said I to the angel that talked with me, Whither do these -bear the ephah? 5:11 And he said unto me, To build it an house in the -land of Shinar: and it shall be established, and set there upon her -own base. - -6:1 And I turned, and lifted up mine eyes, and looked, and, behold, -there came four chariots out from between two mountains; and the -mountains were mountains of brass. - -6:2 In the first chariot were red horses; and in the second chariot -black horses; 6:3 And in the third chariot white horses; and in the -fourth chariot grisled and bay horses. - -6:4 Then I answered and said unto the angel that talked with me, What -are these, my lord? 6:5 And the angel answered and said unto me, -These are the four spirits of the heavens, which go forth from -standing before the LORD of all the earth. - -6:6 The black horses which are therein go forth into the north -country; and the white go forth after them; and the grisled go forth -toward the south country. - -6:7 And the bay went forth, and sought to go that they might walk to -and fro through the earth: and he said, Get you hence, walk to and fro -through the earth. So they walked to and fro through the earth. - -6:8 Then cried he upon me, and spake unto me, saying, Behold, these -that go toward the north country have quieted my spirit in the north -country. - -6:9 And the word of the LORD came unto me, saying, 6:10 Take of them -of the captivity, even of Heldai, of Tobijah, and of Jedaiah, which -are come from Babylon, and come thou the same day, and go into the -house of Josiah the son of Zephaniah; 6:11 Then take silver and gold, -and make crowns, and set them upon the head of Joshua the son of -Josedech, the high priest; 6:12 And speak unto him, saying, Thus -speaketh the LORD of hosts, saying, Behold the man whose name is The -BRANCH; and he shall grow up out of his place, and he shall build the -temple of the LORD: 6:13 Even he shall build the temple of the LORD; -and he shall bear the glory, and shall sit and rule upon his throne; -and he shall be a priest upon his throne: and the counsel of peace -shall be between them both. - -6:14 And the crowns shall be to Helem, and to Tobijah, and to Jedaiah, -and to Hen the son of Zephaniah, for a memorial in the temple of the -LORD. - -6:15 And they that are far off shall come and build in the temple of -the LORD, and ye shall know that the LORD of hosts hath sent me unto -you. And this shall come to pass, if ye will diligently obey the voice -of the LORD your God. - -7:1 And it came to pass in the fourth year of king Darius, that the -word of the LORD came unto Zechariah in the fourth day of the ninth -month, even in Chisleu; 7:2 When they had sent unto the house of God -Sherezer and Regemmelech, and their men, to pray before the LORD, 7:3 -And to speak unto the priests which were in the house of the LORD of -hosts, and to the prophets, saying, Should I weep in the fifth month, -separating myself, as I have done these so many years? 7:4 Then came -the word of the LORD of hosts unto me, saying, 7:5 Speak unto all the -people of the land, and to the priests, saying, When ye fasted and -mourned in the fifth and seventh month, even those seventy years, did -ye at all fast unto me, even to me? 7:6 And when ye did eat, and when -ye did drink, did not ye eat for yourselves, and drink for yourselves? -7:7 Should ye not hear the words which the LORD hath cried by the -former prophets, when Jerusalem was inhabited and in prosperity, and -the cities thereof round about her, when men inhabited the south and -the plain? 7:8 And the word of the LORD came unto Zechariah, saying, -7:9 Thus speaketh the LORD of hosts, saying, Execute true judgment, -and shew mercy and compassions every man to his brother: 7:10 And -oppress not the widow, nor the fatherless, the stranger, nor the poor; -and let none of you imagine evil against his brother in your heart. - -7:11 But they refused to hearken, and pulled away the shoulder, and -stopped their ears, that they should not hear. - -7:12 Yea, they made their hearts as an adamant stone, lest they should -hear the law, and the words which the LORD of hosts hath sent in his -spirit by the former prophets: therefore came a great wrath from the -LORD of hosts. - -7:13 Therefore it is come to pass, that as he cried, and they would -not hear; so they cried, and I would not hear, saith the LORD of -hosts: 7:14 But I scattered them with a whirlwind among all the -nations whom they knew not. Thus the land was desolate after them, -that no man passed through nor returned: for they laid the pleasant -land desolate. - -8:1 Again the word of the LORD of hosts came to me, saying, 8:2 Thus -saith the LORD of hosts; I was jealous for Zion with great jealousy, -and I was jealous for her with great fury. - -8:3 Thus saith the LORD; I am returned unto Zion, and will dwell in -the midst of Jerusalem: and Jerusalem shall be called a city of truth; -and the mountain of the LORD of hosts the holy mountain. - -8:4 Thus saith the LORD of hosts; There shall yet old men and old -women dwell in the streets of Jerusalem, and every man with his staff -in his hand for very age. - -8:5 And the streets of the city shall be full of boys and girls -playing in the streets thereof. - -8:6 Thus saith the LORD of hosts; If it be marvellous in the eyes of -the remnant of this people in these days, should it also be marvellous -in mine eyes? saith the LORD of hosts. - -8:7 Thus saith the LORD of hosts; Behold, I will save my people from -the east country, and from the west country; 8:8 And I will bring -them, and they shall dwell in the midst of Jerusalem: and they shall -be my people, and I will be their God, in truth and in righteousness. - -8:9 Thus saith the LORD of hosts; Let your hands be strong, ye that -hear in these days these words by the mouth of the prophets, which -were in the day that the foundation of the house of the LORD of hosts -was laid, that the temple might be built. - -8:10 For before these days there was no hire for man, nor any hire for -beast; neither was there any peace to him that went out or came in -because of the affliction: for I set all men every one against his -neighbour. - -8:11 But now I will not be unto the residue of this people as in the -former days, saith the LORD of hosts. - -8:12 For the seed shall be prosperous; the vine shall give her fruit, -and the ground shall give her increase, and the heavens shall give -their dew; and I will cause the remnant of this people to possess all -these things. - -8:13 And it shall come to pass, that as ye were a curse among the -heathen, O house of Judah, and house of Israel; so will I save you, -and ye shall be a blessing: fear not, but let your hands be strong. - -8:14 For thus saith the LORD of hosts; As I thought to punish you, -when your fathers provoked me to wrath, saith the LORD of hosts, and I -repented not: 8:15 So again have I thought in these days to do well -unto Jerusalem and to the house of Judah: fear ye not. - -8:16 These are the things that ye shall do; Speak ye every man the -truth to his neighbour; execute the judgment of truth and peace in -your gates: 8:17 And let none of you imagine evil in your hearts -against his neighbour; and love no false oath: for all these are -things that I hate, saith the LORD. - -8:18 And the word of the LORD of hosts came unto me, saying, 8:19 Thus -saith the LORD of hosts; The fast of the fourth month, and the fast of -the fifth, and the fast of the seventh, and the fast of the tenth, -shall be to the house of Judah joy and gladness, and cheerful feasts; -therefore love the truth and peace. - -8:20 Thus saith the LORD of hosts; It shall yet come to pass, that -there shall come people, and the inhabitants of many cities: 8:21 And -the inhabitants of one city shall go to another, saying, Let us go -speedily to pray before the LORD, and to seek the LORD of hosts: I -will go also. - -8:22 Yea, many people and strong nations shall come to seek the LORD -of hosts in Jerusalem, and to pray before the LORD. - -8:23 Thus saith the LORD of hosts; In those days it shall come to -pass, that ten men shall take hold out of all languages of the -nations, even shall take hold of the skirt of him that is a Jew, -saying, We will go with you: for we have heard that God is with you. - -9:1 The burden of the word of the LORD in the land of Hadrach, and -Damascus shall be the rest thereof: when the eyes of man, as of all -the tribes of Israel, shall be toward the LORD. - -9:2 And Hamath also shall border thereby; Tyrus, and Zidon, though it -be very wise. - -9:3 And Tyrus did build herself a strong hold, and heaped up silver as -the dust, and fine gold as the mire of the streets. - -9:4 Behold, the LORD will cast her out, and he will smite her power in -the sea; and she shall be devoured with fire. - -9:5 Ashkelon shall see it, and fear; Gaza also shall see it, and be -very sorrowful, and Ekron; for her expectation shall be ashamed; and -the king shall perish from Gaza, and Ashkelon shall not be inhabited. - -9:6 And a bastard shall dwell in Ashdod, and I will cut off the pride -of the Philistines. - -9:7 And I will take away his blood out of his mouth, and his -abominations from between his teeth: but he that remaineth, even he, -shall be for our God, and he shall be as a governor in Judah, and -Ekron as a Jebusite. - -9:8 And I will encamp about mine house because of the army, because of -him that passeth by, and because of him that returneth: and no -oppressor shall pass through them any more: for now have I seen with -mine eyes. - -9:9 Rejoice greatly, O daughter of Zion; shout, O daughter of -Jerusalem: behold, thy King cometh unto thee: he is just, and having -salvation; lowly, and riding upon an ass, and upon a colt the foal of -an ass. - -9:10 And I will cut off the chariot from Ephraim, and the horse from -Jerusalem, and the battle bow shall be cut off: and he shall speak -peace unto the heathen: and his dominion shall be from sea even to -sea, and from the river even to the ends of the earth. - -9:11 As for thee also, by the blood of thy covenant I have sent forth -thy prisoners out of the pit wherein is no water. - -9:12 Turn you to the strong hold, ye prisoners of hope: even to day do -I declare that I will render double unto thee; 9:13 When I have bent -Judah for me, filled the bow with Ephraim, and raised up thy sons, O -Zion, against thy sons, O Greece, and made thee as the sword of a -mighty man. - -9:14 And the LORD shall be seen over them, and his arrow shall go -forth as the lightning: and the LORD God shall blow the trumpet, and -shall go with whirlwinds of the south. - -9:15 The LORD of hosts shall defend them; and they shall devour, and -subdue with sling stones; and they shall drink, and make a noise as -through wine; and they shall be filled like bowls, and as the corners -of the altar. - -9:16 And the LORD their God shall save them in that day as the flock -of his people: for they shall be as the stones of a crown, lifted up -as an ensign upon his land. - -9:17 For how great is his goodness, and how great is his beauty! corn -shall make the young men cheerful, and new wine the maids. - -10:1 Ask ye of the LORD rain in the time of the latter rain; so the -LORD shall make bright clouds, and give them showers of rain, to every -one grass in the field. - -10:2 For the idols have spoken vanity, and the diviners have seen a -lie, and have told false dreams; they comfort in vain: therefore they -went their way as a flock, they were troubled, because there was no -shepherd. - -10:3 Mine anger was kindled against the shepherds, and I punished the -goats: for the LORD of hosts hath visited his flock the house of -Judah, and hath made them as his goodly horse in the battle. - -10:4 Out of him came forth the corner, out of him the nail, out of him -the battle bow, out of him every oppressor together. - -10:5 And they shall be as mighty men, which tread down their enemies -in the mire of the streets in the battle: and they shall fight, -because the LORD is with them, and the riders on horses shall be -confounded. - -10:6 And I will strengthen the house of Judah, and I will save the -house of Joseph, and I will bring them again to place them; for I have -mercy upon them: and they shall be as though I had not cast them off: -for I am the LORD their God, and will hear them. - -10:7 And they of Ephraim shall be like a mighty man, and their heart -shall rejoice as through wine: yea, their children shall see it, and -be glad; their heart shall rejoice in the LORD. - -10:8 I will hiss for them, and gather them; for I have redeemed them: -and they shall increase as they have increased. - -10:9 And I will sow them among the people: and they shall remember me -in far countries; and they shall live with their children, and turn -again. - -10:10 I will bring them again also out of the land of Egypt, and -gather them out of Assyria; and I will bring them into the land of -Gilead and Lebanon; and place shall not be found for them. - -10:11 And he shall pass through the sea with affliction, and shall -smite the waves in the sea, and all the deeps of the river shall dry -up: and the pride of Assyria shall be brought down, and the sceptre of -Egypt shall depart away. - -10:12 And I will strengthen them in the LORD; and they shall walk up -and down in his name, saith the LORD. - -11:1 Open thy doors, O Lebanon, that the fire may devour thy cedars. - -11:2 Howl, fir tree; for the cedar is fallen; because the mighty are -spoiled: howl, O ye oaks of Bashan; for the forest of the vintage is -come down. - -11:3 There is a voice of the howling of the shepherds; for their glory -is spoiled: a voice of the roaring of young lions; for the pride of -Jordan is spoiled. - -11:4 Thus saith the LORD my God; Feed the flock of the slaughter; 11:5 -Whose possessors slay them, and hold themselves not guilty: and they -that sell them say, Blessed be the LORD; for I am rich: and their own -shepherds pity them not. - -11:6 For I will no more pity the inhabitants of the land, saith the -LORD: but, lo, I will deliver the men every one into his neighbour's -hand, and into the hand of his king: and they shall smite the land, -and out of their hand I will not deliver them. - -11:7 And I will feed the flock of slaughter, even you, O poor of the -flock. And I took unto me two staves; the one I called Beauty, and the -other I called Bands; and I fed the flock. - -11:8 Three shepherds also I cut off in one month; and my soul lothed -them, and their soul also abhorred me. - -11:9 Then said I, I will not feed you: that that dieth, let it die; -and that that is to be cut off, let it be cut off; and let the rest -eat every one the flesh of another. - -11:10 And I took my staff, even Beauty, and cut it asunder, that I -might break my covenant which I had made with all the people. - -11:11 And it was broken in that day: and so the poor of the flock that -waited upon me knew that it was the word of the LORD. - -11:12 And I said unto them, If ye think good, give me my price; and if -not, forbear. So they weighed for my price thirty pieces of silver. - -11:13 And the LORD said unto me, Cast it unto the potter: a goodly -price that I was prised at of them. And I took the thirty pieces of -silver, and cast them to the potter in the house of the LORD. - -11:14 Then I cut asunder mine other staff, even Bands, that I might -break the brotherhood between Judah and Israel. - -11:15 And the LORD said unto me, Take unto thee yet the instruments of -a foolish shepherd. - -11:16 For, lo, I will raise up a shepherd in the land, which shall not -visit those that be cut off, neither shall seek the young one, nor -heal that that is broken, nor feed that that standeth still: but he -shall eat the flesh of the fat, and tear their claws in pieces. - -11:17 Woe to the idol shepherd that leaveth the flock! the sword shall -be upon his arm, and upon his right eye: his arm shall be clean dried -up, and his right eye shall be utterly darkened. - -12:1 The burden of the word of the LORD for Israel, saith the LORD, -which stretcheth forth the heavens, and layeth the foundation of the -earth, and formeth the spirit of man within him. - -12:2 Behold, I will make Jerusalem a cup of trembling unto all the -people round about, when they shall be in the siege both against Judah -and against Jerusalem. - -12:3 And in that day will I make Jerusalem a burdensome stone for all -people: all that burden themselves with it shall be cut in pieces, -though all the people of the earth be gathered together against it. - -12:4 In that day, saith the LORD, I will smite every horse with -astonishment, and his rider with madness: and I will open mine eyes -upon the house of Judah, and will smite every horse of the people with -blindness. - -12:5 And the governors of Judah shall say in their heart, The -inhabitants of Jerusalem shall be my strength in the LORD of hosts -their God. - -12:6 In that day will I make the governors of Judah like an hearth of -fire among the wood, and like a torch of fire in a sheaf; and they -shall devour all the people round about, on the right hand and on the -left: and Jerusalem shall be inhabited again in her own place, even in -Jerusalem. - -12:7 The LORD also shall save the tents of Judah first, that the glory -of the house of David and the glory of the inhabitants of Jerusalem do -not magnify themselves against Judah. - -12:8 In that day shall the LORD defend the inhabitants of Jerusalem; -and he that is feeble among them at that day shall be as David; and -the house of David shall be as God, as the angel of the LORD before -them. - -12:9 And it shall come to pass in that day, that I will seek to -destroy all the nations that come against Jerusalem. - -12:10 And I will pour upon the house of David, and upon the -inhabitants of Jerusalem, the spirit of grace and of supplications: -and they shall look upon me whom they have pierced, and they shall -mourn for him, as one mourneth for his only son, and shall be in -bitterness for him, as one that is in bitterness for his firstborn. - -12:11 In that day shall there be a great mourning in Jerusalem, as the -mourning of Hadadrimmon in the valley of Megiddon. - -12:12 And the land shall mourn, every family apart; the family of the -house of David apart, and their wives apart; the family of the house -of Nathan apart, and their wives apart; 12:13 The family of the house -of Levi apart, and their wives apart; the family of Shimei apart, and -their wives apart; 12:14 All the families that remain, every family -apart, and their wives apart. - -13:1 In that day there shall be a fountain opened to the house of -David and to the inhabitants of Jerusalem for sin and for uncleanness. - -13:2 And it shall come to pass in that day, saith the LORD of hosts, -that I will cut off the names of the idols out of the land, and they -shall no more be remembered: and also I will cause the prophets and -the unclean spirit to pass out of the land. - -13:3 And it shall come to pass, that when any shall yet prophesy, then -his father and his mother that begat him shall say unto him, Thou -shalt not live; for thou speakest lies in the name of the LORD: and -his father and his mother that begat him shall thrust him through when -he prophesieth. - -13:4 And it shall come to pass in that day, that the prophets shall be -ashamed every one of his vision, when he hath prophesied; neither -shall they wear a rough garment to deceive: 13:5 But he shall say, I -am no prophet, I am an husbandman; for man taught me to keep cattle -from my youth. - -13:6 And one shall say unto him, What are these wounds in thine hands? -Then he shall answer, Those with which I was wounded in the house of -my friends. - -13:7 Awake, O sword, against my shepherd, and against the man that is -my fellow, saith the LORD of hosts: smite the shepherd, and the sheep -shall be scattered: and I will turn mine hand upon the little ones. - -13:8 And it shall come to pass, that in all the land, saith the LORD, -two parts therein shall be cut off and die; but the third shall be -left therein. - -13:9 And I will bring the third part through the fire, and will refine -them as silver is refined, and will try them as gold is tried: they -shall call on my name, and I will hear them: I will say, It is my -people: and they shall say, The LORD is my God. - -14:1 Behold, the day of the LORD cometh, and thy spoil shall be -divided in the midst of thee. - -14:2 For I will gather all nations against Jerusalem to battle; and -the city shall be taken, and the houses rifled, and the women -ravished; and half of the city shall go forth into captivity, and the -residue of the people shall not be cut off from the city. - -14:3 Then shall the LORD go forth, and fight against those nations, as -when he fought in the day of battle. - -14:4 And his feet shall stand in that day upon the mount of Olives, -which is before Jerusalem on the east, and the mount of Olives shall -cleave in the midst thereof toward the east and toward the west, and -there shall be a very great valley; and half of the mountain shall -remove toward the north, and half of it toward the south. - -14:5 And ye shall flee to the valley of the mountains; for the valley -of the mountains shall reach unto Azal: yea, ye shall flee, like as ye -fled from before the earthquake in the days of Uzziah king of Judah: -and the LORD my God shall come, and all the saints with thee. - -14:6 And it shall come to pass in that day, that the light shall not -be clear, nor dark: 14:7 But it shall be one day which shall be known -to the LORD, not day, nor night: but it shall come to pass, that at -evening time it shall be light. - -14:8 And it shall be in that day, that living waters shall go out from -Jerusalem; half of them toward the former sea, and half of them toward -the hinder sea: in summer and in winter shall it be. - -14:9 And the LORD shall be king over all the earth: in that day shall -there be one LORD, and his name one. - -14:10 All the land shall be turned as a plain from Geba to Rimmon -south of Jerusalem: and it shall be lifted up, and inhabited in her -place, from Benjamin's gate unto the place of the first gate, unto the -corner gate, and from the tower of Hananeel unto the king's -winepresses. - -14:11 And men shall dwell in it, and there shall be no more utter -destruction; but Jerusalem shall be safely inhabited. - -14:12 And this shall be the plague wherewith the LORD will smite all -the people that have fought against Jerusalem; Their flesh shall -consume away while they stand upon their feet, and their eyes shall -consume away in their holes, and their tongue shall consume away in -their mouth. - -14:13 And it shall come to pass in that day, that a great tumult from -the LORD shall be among them; and they shall lay hold every one on the -hand of his neighbour, and his hand shall rise up against the hand of -his neighbour. - -14:14 And Judah also shall fight at Jerusalem; and the wealth of all -the heathen round about shall be gathered together, gold, and silver, -and apparel, in great abundance. - -14:15 And so shall be the plague of the horse, of the mule, of the -camel, and of the ass, and of all the beasts that shall be in these -tents, as this plague. - -14:16 And it shall come to pass, that every one that is left of all -the nations which came against Jerusalem shall even go up from year to -year to worship the King, the LORD of hosts, and to keep the feast of -tabernacles. - -14:17 And it shall be, that whoso will not come up of all the families -of the earth unto Jerusalem to worship the King, the LORD of hosts, -even upon them shall be no rain. - -14:18 And if the family of Egypt go not up, and come not, that have no -rain; there shall be the plague, wherewith the LORD will smite the -heathen that come not up to keep the feast of tabernacles. - -14:19 This shall be the punishment of Egypt, and the punishment of all -nations that come not up to keep the feast of tabernacles. - -14:20 In that day shall there be upon the bells of the horses, -HOLINESS UNTO THE LORD; and the pots in the LORD's house shall be like -the bowls before the altar. - -14:21 Yea, every pot in Jerusalem and in Judah shall be holiness unto -the LORD of hosts: and all they that sacrifice shall come and take of -them, and seethe therein: and in that day there shall be no more the -Canaanite in the house of the LORD of hosts. - - - - -Malachi - - -1:1 The burden of the word of the LORD to Israel by Malachi. - -1:2 I have loved you, saith the LORD. Yet ye say, Wherein hast thou -loved us? Was not Esau Jacob's brother? saith the LORD: yet I loved -Jacob, 1:3 And I hated Esau, and laid his mountains and his heritage -waste for the dragons of the wilderness. - -1:4 Whereas Edom saith, We are impoverished, but we will return and -build the desolate places; thus saith the LORD of hosts, They shall -build, but I will throw down; and they shall call them, The border of -wickedness, and, The people against whom the LORD hath indignation for -ever. - -1:5 And your eyes shall see, and ye shall say, The LORD will be -magnified from the border of Israel. - -1:6 A son honoureth his father, and a servant his master: if then I be -a father, where is mine honour? and if I be a master, where is my -fear? saith the LORD of hosts unto you, O priests, that despise my -name. And ye say, Wherein have we despised thy name? 1:7 Ye offer -polluted bread upon mine altar; and ye say, Wherein have we polluted -thee? In that ye say, The table of the LORD is contemptible. - -1:8 And if ye offer the blind for sacrifice, is it not evil? and if ye -offer the lame and sick, is it not evil? offer it now unto thy -governor; will he be pleased with thee, or accept thy person? saith -the LORD of hosts. - -1:9 And now, I pray you, beseech God that he will be gracious unto us: -this hath been by your means: will he regard your persons? saith the -LORD of hosts. - -1:10 Who is there even among you that would shut the doors for nought? -neither do ye kindle fire on mine altar for nought. I have no pleasure -in you, saith the LORD of hosts, neither will I accept an offering at -your hand. - -1:11 For from the rising of the sun even unto the going down of the -same my name shall be great among the Gentiles; and in every place -incense shall be offered unto my name, and a pure offering: for my -name shall be great among the heathen, saith the LORD of hosts. - -1:12 But ye have profaned it, in that ye say, The table of the LORD is -polluted; and the fruit thereof, even his meat, is contemptible. - -1:13 Ye said also, Behold, what a weariness is it! and ye have snuffed -at it, saith the LORD of hosts; and ye brought that which was torn, -and the lame, and the sick; thus ye brought an offering: should I -accept this of your hand? saith the LORD. - -1:14 But cursed be the deceiver, which hath in his flock a male, and -voweth, and sacrificeth unto the LORD a corrupt thing: for I am a -great King, saith the LORD of hosts, and my name is dreadful among the -heathen. - -2:1 And now, O ye priests, this commandment is for you. - -2:2 If ye will not hear, and if ye will not lay it to heart, to give -glory unto my name, saith the LORD of hosts, I will even send a curse -upon you, and I will curse your blessings: yea, I have cursed them -already, because ye do not lay it to heart. - -2:3 Behold, I will corrupt your seed, and spread dung upon your faces, -even the dung of your solemn feasts; and one shall take you away with -it. - -2:4 And ye shall know that I have sent this commandment unto you, that -my covenant might be with Levi, saith the LORD of hosts. - -2:5 My covenant was with him of life and peace; and I gave them to him -for the fear wherewith he feared me, and was afraid before my name. - -2:6 The law of truth was in his mouth, and iniquity was not found in -his lips: he walked with me in peace and equity, and did turn many -away from iniquity. - -2:7 For the priest's lips should keep knowledge, and they should seek -the law at his mouth: for he is the messenger of the LORD of hosts. - -2:8 But ye are departed out of the way; ye have caused many to stumble -at the law; ye have corrupted the covenant of Levi, saith the LORD of -hosts. - -2:9 Therefore have I also made you contemptible and base before all -the people, according as ye have not kept my ways, but have been -partial in the law. - -2:10 Have we not all one father? hath not one God created us? why do -we deal treacherously every man against his brother, by profaning the -covenant of our fathers? 2:11 Judah hath dealt treacherously, and an -abomination is committed in Israel and in Jerusalem; for Judah hath -profaned the holiness of the LORD which he loved, and hath married the -daughter of a strange god. - -2:12 The LORD will cut off the man that doeth this, the master and the -scholar, out of the tabernacles of Jacob, and him that offereth an -offering unto the LORD of hosts. - -2:13 And this have ye done again, covering the altar of the LORD with -tears, with weeping, and with crying out, insomuch that he regardeth -not the offering any more, or receiveth it with good will at your -hand. - -2:14 Yet ye say, Wherefore? Because the LORD hath been witness between -thee and the wife of thy youth, against whom thou hast dealt -treacherously: yet is she thy companion, and the wife of thy covenant. - -2:15 And did not he make one? Yet had he the residue of the spirit. -And wherefore one? That he might seek a godly seed. Therefore take -heed to your spirit, and let none deal treacherously against the wife -of his youth. - -2:16 For the LORD, the God of Israel, saith that he hateth putting -away: for one covereth violence with his garment, saith the LORD of -hosts: therefore take heed to your spirit, that ye deal not -treacherously. - -2:17 Ye have wearied the LORD with your words. Yet ye say, Wherein -have we wearied him? When ye say, Every one that doeth evil is good in -the sight of the LORD, and he delighteth in them; or, Where is the God -of judgment? 3:1 Behold, I will send my messenger, and he shall -prepare the way before me: and the LORD, whom ye seek, shall suddenly -come to his temple, even the messenger of the covenant, whom ye -delight in: behold, he shall come, saith the LORD of hosts. - -3:2 But who may abide the day of his coming? and who shall stand when -he appeareth? for he is like a refiner's fire, and like fullers' soap: -3:3 And he shall sit as a refiner and purifier of silver: and he shall -purify the sons of Levi, and purge them as gold and silver, that they -may offer unto the LORD an offering in righteousness. - -3:4 Then shall the offering of Judah and Jerusalem be pleasant unto -the LORD, as in the days of old, and as in former years. - -3:5 And I will come near to you to judgment; and I will be a swift -witness against the sorcerers, and against the adulterers, and against -false swearers, and against those that oppress the hireling in his -wages, the widow, and the fatherless, and that turn aside the stranger -from his right, and fear not me, saith the LORD of hosts. - -3:6 For I am the LORD, I change not; therefore ye sons of Jacob are -not consumed. - -3:7 Even from the days of your fathers ye are gone away from mine -ordinances, and have not kept them. Return unto me, and I will return -unto you, saith the LORD of hosts. But ye said, Wherein shall we -return? 3:8 Will a man rob God? Yet ye have robbed me. But ye say, -Wherein have we robbed thee? In tithes and offerings. - -3:9 Ye are cursed with a curse: for ye have robbed me, even this whole -nation. - -3:10 Bring ye all the tithes into the storehouse, that there may be -meat in mine house, and prove me now herewith, saith the LORD of -hosts, if I will not open you the windows of heaven, and pour you out -a blessing, that there shall not be room enough to receive it. - -3:11 And I will rebuke the devourer for your sakes, and he shall not -destroy the fruits of your ground; neither shall your vine cast her -fruit before the time in the field, saith the LORD of hosts. - -3:12 And all nations shall call you blessed: for ye shall be a -delightsome land, saith the LORD of hosts. - -3:13 Your words have been stout against me, saith the LORD. Yet ye -say, What have we spoken so much against thee? 3:14 Ye have said, It -is vain to serve God: and what profit is it that we have kept his -ordinance, and that we have walked mournfully before the LORD of -hosts? 3:15 And now we call the proud happy; yea, they that work -wickedness are set up; yea, they that tempt God are even delivered. - -3:16 Then they that feared the LORD spake often one to another: and -the LORD hearkened, and heard it, and a book of remembrance was -written before him for them that feared the LORD, and that thought -upon his name. - -3:17 And they shall be mine, saith the LORD of hosts, in that day when -I make up my jewels; and I will spare them, as a man spareth his own -son that serveth him. - -3:18 Then shall ye return, and discern between the righteous and the -wicked, between him that serveth God and him that serveth him not. - -4:1 For, behold, the day cometh, that shall burn as an oven; and all -the proud, yea, and all that do wickedly, shall be stubble: and the -day that cometh shall burn them up, saith the LORD of hosts, that it -shall leave them neither root nor branch. - -4:2 But unto you that fear my name shall the Sun of righteousness -arise with healing in his wings; and ye shall go forth, and grow up as -calves of the stall. - -4:3 And ye shall tread down the wicked; for they shall be ashes under -the soles of your feet in the day that I shall do this, saith the LORD -of hosts. - -4:4 Remember ye the law of Moses my servant, which I commanded unto -him in Horeb for all Israel, with the statutes and judgments. - -4:5 Behold, I will send you Elijah the prophet before the coming of -the great and dreadful day of the LORD: 4:6 And he shall turn the -heart of the fathers to the children, and the heart of the children to -their fathers, lest I come and smite the earth with a curse. - - -*** - - - - -The New Testament of the King James Bible - - - - -The Gospel According to Saint Matthew - - -1:1 The book of the generation of Jesus Christ, the son of David, the -son of Abraham. - -1:2 Abraham begat Isaac; and Isaac begat Jacob; and Jacob begat Judas -and his brethren; 1:3 And Judas begat Phares and Zara of Thamar; and -Phares begat Esrom; and Esrom begat Aram; 1:4 And Aram begat Aminadab; -and Aminadab begat Naasson; and Naasson begat Salmon; 1:5 And Salmon -begat Booz of Rachab; and Booz begat Obed of Ruth; and Obed begat -Jesse; 1:6 And Jesse begat David the king; and David the king begat -Solomon of her that had been the wife of Urias; 1:7 And Solomon begat -Roboam; and Roboam begat Abia; and Abia begat Asa; 1:8 And Asa begat -Josaphat; and Josaphat begat Joram; and Joram begat Ozias; 1:9 And -Ozias begat Joatham; and Joatham begat Achaz; and Achaz begat Ezekias; -1:10 And Ezekias begat Manasses; and Manasses begat Amon; and Amon -begat Josias; 1:11 And Josias begat Jechonias and his brethren, about -the time they were carried away to Babylon: 1:12 And after they were -brought to Babylon, Jechonias begat Salathiel; and Salathiel begat -Zorobabel; 1:13 And Zorobabel begat Abiud; and Abiud begat Eliakim; -and Eliakim begat Azor; 1:14 And Azor begat Sadoc; and Sadoc begat -Achim; and Achim begat Eliud; 1:15 And Eliud begat Eleazar; and -Eleazar begat Matthan; and Matthan begat Jacob; 1:16 And Jacob begat -Joseph the husband of Mary, of whom was born Jesus, who is called -Christ. - -1:17 So all the generations from Abraham to David are fourteen -generations; and from David until the carrying away into Babylon are -fourteen generations; and from the carrying away into Babylon unto -Christ are fourteen generations. - -1:18 Now the birth of Jesus Christ was on this wise: When as his -mother Mary was espoused to Joseph, before they came together, she was -found with child of the Holy Ghost. - -1:19 Then Joseph her husband, being a just man, and not willing to -make her a publick example, was minded to put her away privily. - -1:20 But while he thought on these things, behold, the angel of the -LORD appeared unto him in a dream, saying, Joseph, thou son of David, -fear not to take unto thee Mary thy wife: for that which is conceived -in her is of the Holy Ghost. - -1:21 And she shall bring forth a son, and thou shalt call his name -JESUS: for he shall save his people from their sins. - -1:22 Now all this was done, that it might be fulfilled which was -spoken of the Lord by the prophet, saying, 1:23 Behold, a virgin shall -be with child, and shall bring forth a son, and they shall call his -name Emmanuel, which being interpreted is, God with us. - -1:24 Then Joseph being raised from sleep did as the angel of the Lord -had bidden him, and took unto him his wife: 1:25 And knew her not till -she had brought forth her firstborn son: and he called his name JESUS. - -2:1 Now when Jesus was born in Bethlehem of Judaea in the days of -Herod the king, behold, there came wise men from the east to -Jerusalem, 2:2 Saying, Where is he that is born King of the Jews? for -we have seen his star in the east, and are come to worship him. - -2:3 When Herod the king had heard these things, he was troubled, and -all Jerusalem with him. - -2:4 And when he had gathered all the chief priests and scribes of the -people together, he demanded of them where Christ should be born. - -2:5 And they said unto him, In Bethlehem of Judaea: for thus it is -written by the prophet, 2:6 And thou Bethlehem, in the land of Juda, -art not the least among the princes of Juda: for out of thee shall -come a Governor, that shall rule my people Israel. - -2:7 Then Herod, when he had privily called the wise men, enquired of -them diligently what time the star appeared. - -2:8 And he sent them to Bethlehem, and said, Go and search diligently -for the young child; and when ye have found him, bring me word again, -that I may come and worship him also. - -2:9 When they had heard the king, they departed; and, lo, the star, -which they saw in the east, went before them, till it came and stood -over where the young child was. - -2:10 When they saw the star, they rejoiced with exceeding great joy. - -2:11 And when they were come into the house, they saw the young child -with Mary his mother, and fell down, and worshipped him: and when they -had opened their treasures, they presented unto him gifts; gold, and -frankincense and myrrh. - -2:12 And being warned of God in a dream that they should not return to -Herod, they departed into their own country another way. - -2:13 And when they were departed, behold, the angel of the Lord -appeareth to Joseph in a dream, saying, Arise, and take the young -child and his mother, and flee into Egypt, and be thou there until I -bring thee word: for Herod will seek the young child to destroy him. - -2:14 When he arose, he took the young child and his mother by night, -and departed into Egypt: 2:15 And was there until the death of Herod: -that it might be fulfilled which was spoken of the Lord by the -prophet, saying, Out of Egypt have I called my son. - -2:16 Then Herod, when he saw that he was mocked of the wise men, was -exceeding wroth, and sent forth, and slew all the children that were -in Bethlehem, and in all the coasts thereof, from two years old and -under, according to the time which he had diligently enquired of the -wise men. - -2:17 Then was fulfilled that which was spoken by Jeremy the prophet, -saying, 2:18 In Rama was there a voice heard, lamentation, and -weeping, and great mourning, Rachel weeping for her children, and -would not be comforted, because they are not. - -2:19 But when Herod was dead, behold, an angel of the Lord appeareth -in a dream to Joseph in Egypt, 2:20 Saying, Arise, and take the young -child and his mother, and go into the land of Israel: for they are -dead which sought the young child's life. - -2:21 And he arose, and took the young child and his mother, and came -into the land of Israel. - -2:22 But when he heard that Archelaus did reign in Judaea in the room -of his father Herod, he was afraid to go thither: notwithstanding, -being warned of God in a dream, he turned aside into the parts of -Galilee: 2:23 And he came and dwelt in a city called Nazareth: that it -might be fulfilled which was spoken by the prophets, He shall be -called a Nazarene. - -3:1 In those days came John the Baptist, preaching in the wilderness -of Judaea, 3:2 And saying, Repent ye: for the kingdom of heaven is at -hand. - -3:3 For this is he that was spoken of by the prophet Esaias, saying, -The voice of one crying in the wilderness, Prepare ye the way of the -Lord, make his paths straight. - -3:4 And the same John had his raiment of camel's hair, and a leathern -girdle about his loins; and his meat was locusts and wild honey. - -3:5 Then went out to him Jerusalem, and all Judaea, and all the region -round about Jordan, 3:6 And were baptized of him in Jordan, confessing -their sins. - -3:7 But when he saw many of the Pharisees and Sadducees come to his -baptism, he said unto them, O generation of vipers, who hath warned -you to flee from the wrath to come? 3:8 Bring forth therefore fruits -meet for repentance: 3:9 And think not to say within yourselves, We -have Abraham to our father: for I say unto you, that God is able of -these stones to raise up children unto Abraham. - -3:10 And now also the axe is laid unto the root of the trees: -therefore every tree which bringeth not forth good fruit is hewn down, -and cast into the fire. - -3:11 I indeed baptize you with water unto repentance. but he that -cometh after me is mightier than I, whose shoes I am not worthy to -bear: he shall baptize you with the Holy Ghost, and with fire: 3:12 -Whose fan is in his hand, and he will throughly purge his floor, and -gather his wheat into the garner; but he will burn up the chaff with -unquenchable fire. - -3:13 Then cometh Jesus from Galilee to Jordan unto John, to be -baptized of him. - -3:14 But John forbad him, saying, I have need to be baptized of thee, -and comest thou to me? 3:15 And Jesus answering said unto him, Suffer -it to be so now: for thus it becometh us to fulfil all righteousness. -Then he suffered him. - -3:16 And Jesus, when he was baptized, went up straightway out of the -water: and, lo, the heavens were opened unto him, and he saw the -Spirit of God descending like a dove, and lighting upon him: 3:17 And -lo a voice from heaven, saying, This is my beloved Son, in whom I am -well pleased. - -4:1 Then was Jesus led up of the spirit into the wilderness to be -tempted of the devil. - -4:2 And when he had fasted forty days and forty nights, he was -afterward an hungred. - -4:3 And when the tempter came to him, he said, If thou be the Son of -God, command that these stones be made bread. - -4:4 But he answered and said, It is written, Man shall not live by -bread alone, but by every word that proceedeth out of the mouth of -God. - -4:5 Then the devil taketh him up into the holy city, and setteth him -on a pinnacle of the temple, 4:6 And saith unto him, If thou be the -Son of God, cast thyself down: for it is written, He shall give his -angels charge concerning thee: and in their hands they shall bear thee -up, lest at any time thou dash thy foot against a stone. - -4:7 Jesus said unto him, It is written again, Thou shalt not tempt the -Lord thy God. - -4:8 Again, the devil taketh him up into an exceeding high mountain, -and sheweth him all the kingdoms of the world, and the glory of them; -4:9 And saith unto him, All these things will I give thee, if thou -wilt fall down and worship me. - -4:10 Then saith Jesus unto him, Get thee hence, Satan: for it is -written, Thou shalt worship the Lord thy God, and him only shalt thou -serve. - -4:11 Then the devil leaveth him, and, behold, angels came and -ministered unto him. - -4:12 Now when Jesus had heard that John was cast into prison, he -departed into Galilee; 4:13 And leaving Nazareth, he came and dwelt in -Capernaum, which is upon the sea coast, in the borders of Zabulon and -Nephthalim: 4:14 That it might be fulfilled which was spoken by Esaias -the prophet, saying, 4:15 The land of Zabulon, and the land of -Nephthalim, by the way of the sea, beyond Jordan, Galilee of the -Gentiles; 4:16 The people which sat in darkness saw great light; and -to them which sat in the region and shadow of death light is sprung -up. - -4:17 From that time Jesus began to preach, and to say, Repent: for the -kingdom of heaven is at hand. - -4:18 And Jesus, walking by the sea of Galilee, saw two brethren, Simon -called Peter, and Andrew his brother, casting a net into the sea: for -they were fishers. - -4:19 And he saith unto them, Follow me, and I will make you fishers of -men. - -4:20 And they straightway left their nets, and followed him. - -4:21 And going on from thence, he saw other two brethren, James the -son of Zebedee, and John his brother, in a ship with Zebedee their -father, mending their nets; and he called them. - -4:22 And they immediately left the ship and their father, and followed -him. - -4:23 And Jesus went about all Galilee, teaching in their synagogues, -and preaching the gospel of the kingdom, and healing all manner of -sickness and all manner of disease among the people. - -4:24 And his fame went throughout all Syria: and they brought unto him -all sick people that were taken with divers diseases and torments, and -those which were possessed with devils, and those which were lunatick, -and those that had the palsy; and he healed them. - -4:25 And there followed him great multitudes of people from Galilee, -and from Decapolis, and from Jerusalem, and from Judaea, and from -beyond Jordan. - -5:1 And seeing the multitudes, he went up into a mountain: and when he -was set, his disciples came unto him: 5:2 And he opened his mouth, and -taught them, saying, 5:3 Blessed are the poor in spirit: for theirs is -the kingdom of heaven. - -5:4 Blessed are they that mourn: for they shall be comforted. - -5:5 Blessed are the meek: for they shall inherit the earth. - -5:6 Blessed are they which do hunger and thirst after righteousness: -for they shall be filled. - -5:7 Blessed are the merciful: for they shall obtain mercy. - -5:8 Blessed are the pure in heart: for they shall see God. - -5:9 Blessed are the peacemakers: for they shall be called the children -of God. - -5:10 Blessed are they which are persecuted for righteousness' sake: -for theirs is the kingdom of heaven. - -5:11 Blessed are ye, when men shall revile you, and persecute you, and -shall say all manner of evil against you falsely, for my sake. - -5:12 Rejoice, and be exceeding glad: for great is your reward in -heaven: for so persecuted they the prophets which were before you. - -5:13 Ye are the salt of the earth: but if the salt have lost his -savour, wherewith shall it be salted? it is thenceforth good for -nothing, but to be cast out, and to be trodden under foot of men. - -5:14 Ye are the light of the world. A city that is set on an hill -cannot be hid. - -5:15 Neither do men light a candle, and put it under a bushel, but on -a candlestick; and it giveth light unto all that are in the house. - -5:16 Let your light so shine before men, that they may see your good -works, and glorify your Father which is in heaven. - -5:17 Think not that I am come to destroy the law, or the prophets: I -am not come to destroy, but to fulfil. - -5:18 For verily I say unto you, Till heaven and earth pass, one jot or -one tittle shall in no wise pass from the law, till all be fulfilled. - -5:19 Whosoever therefore shall break one of these least commandments, -and shall teach men so, he shall be called the least in the kingdom of -heaven: but whosoever shall do and teach them, the same shall be -called great in the kingdom of heaven. - -5:20 For I say unto you, That except your righteousness shall exceed -the righteousness of the scribes and Pharisees, ye shall in no case -enter into the kingdom of heaven. - -5:21 Ye have heard that it was said by them of old time, Thou shalt -not kill; and whosoever shall kill shall be in danger of the judgment: -5:22 But I say unto you, That whosoever is angry with his brother -without a cause shall be in danger of the judgment: and whosoever -shall say to his brother, Raca, shall be in danger of the council: but -whosoever shall say, Thou fool, shall be in danger of hell fire. - -5:23 Therefore if thou bring thy gift to the altar, and there -rememberest that thy brother hath ought against thee; 5:24 Leave there -thy gift before the altar, and go thy way; first be reconciled to thy -brother, and then come and offer thy gift. - -5:25 Agree with thine adversary quickly, whiles thou art in the way -with him; lest at any time the adversary deliver thee to the judge, -and the judge deliver thee to the officer, and thou be cast into -prison. - -5:26 Verily I say unto thee, Thou shalt by no means come out thence, -till thou hast paid the uttermost farthing. - -5:27 Ye have heard that it was said by them of old time, Thou shalt -not commit adultery: 5:28 But I say unto you, That whosoever looketh -on a woman to lust after her hath committed adultery with her already -in his heart. - -5:29 And if thy right eye offend thee, pluck it out, and cast it from -thee: for it is profitable for thee that one of thy members should -perish, and not that thy whole body should be cast into hell. - -5:30 And if thy right hand offend thee, cut it off, and cast it from -thee: for it is profitable for thee that one of thy members should -perish, and not that thy whole body should be cast into hell. - -5:31 It hath been said, Whosoever shall put away his wife, let him -give her a writing of divorcement: 5:32 But I say unto you, That -whosoever shall put away his wife, saving for the cause of -fornication, causeth her to commit adultery: and whosoever shall marry -her that is divorced committeth adultery. - -5:33 Again, ye have heard that it hath been said by them of old time, -Thou shalt not forswear thyself, but shalt perform unto the Lord thine -oaths: 5:34 But I say unto you, Swear not at all; neither by heaven; -for it is God's throne: 5:35 Nor by the earth; for it is his -footstool: neither by Jerusalem; for it is the city of the great King. - -5:36 Neither shalt thou swear by thy head, because thou canst not make -one hair white or black. - -5:37 But let your communication be, Yea, yea; Nay, nay: for whatsoever -is more than these cometh of evil. - -5:38 Ye have heard that it hath been said, An eye for an eye, and a -tooth for a tooth: 5:39 But I say unto you, That ye resist not evil: -but whosoever shall smite thee on thy right cheek, turn to him the -other also. - -5:40 And if any man will sue thee at the law, and take away thy coat, -let him have thy cloak also. - -5:41 And whosoever shall compel thee to go a mile, go with him twain. - -5:42 Give to him that asketh thee, and from him that would borrow of -thee turn not thou away. - -5:43 Ye have heard that it hath been said, Thou shalt love thy -neighbour, and hate thine enemy. - -5:44 But I say unto you, Love your enemies, bless them that curse you, -do good to them that hate you, and pray for them which despitefully -use you, and persecute you; 5:45 That ye may be the children of your -Father which is in heaven: for he maketh his sun to rise on the evil -and on the good, and sendeth rain on the just and on the unjust. - -5:46 For if ye love them which love you, what reward have ye? do not -even the publicans the same? 5:47 And if ye salute your brethren -only, what do ye more than others? do not even the publicans so? 5:48 -Be ye therefore perfect, even as your Father which is in heaven is -perfect. - -6:1 Take heed that ye do not your alms before men, to be seen of them: -otherwise ye have no reward of your Father which is in heaven. - -6:2 Therefore when thou doest thine alms, do not sound a trumpet -before thee, as the hypocrites do in the synagogues and in the -streets, that they may have glory of men. Verily I say unto you, They -have their reward. - -6:3 But when thou doest alms, let not thy left hand know what thy -right hand doeth: 6:4 That thine alms may be in secret: and thy Father -which seeth in secret himself shall reward thee openly. - -6:5 And when thou prayest, thou shalt not be as the hypocrites are: -for they love to pray standing in the synagogues and in the corners of -the streets, that they may be seen of men. Verily I say unto you, They -have their reward. - -6:6 But thou, when thou prayest, enter into thy closet, and when thou -hast shut thy door, pray to thy Father which is in secret; and thy -Father which seeth in secret shall reward thee openly. - -6:7 But when ye pray, use not vain repetitions, as the heathen do: for -they think that they shall be heard for their much speaking. - -6:8 Be not ye therefore like unto them: for your Father knoweth what -things ye have need of, before ye ask him. - -6:9 After this manner therefore pray ye: Our Father which art in -heaven, Hallowed be thy name. - -6:10 Thy kingdom come, Thy will be done in earth, as it is in heaven. - -6:11 Give us this day our daily bread. - -6:12 And forgive us our debts, as we forgive our debtors. - -6:13 And lead us not into temptation, but deliver us from evil: For -thine is the kingdom, and the power, and the glory, for ever. Amen. - -6:14 For if ye forgive men their trespasses, your heavenly Father will -also forgive you: 6:15 But if ye forgive not men their trespasses, -neither will your Father forgive your trespasses. - -6:16 Moreover when ye fast, be not, as the hypocrites, of a sad -countenance: for they disfigure their faces, that they may appear unto -men to fast. Verily I say unto you, They have their reward. - -6:17 But thou, when thou fastest, anoint thine head, and wash thy -face; 6:18 That thou appear not unto men to fast, but unto thy Father -which is in secret: and thy Father, which seeth in secret, shall -reward thee openly. - -6:19 Lay not up for yourselves treasures upon earth, where moth and -rust doth corrupt, and where thieves break through and steal: 6:20 But -lay up for yourselves treasures in heaven, where neither moth nor rust -doth corrupt, and where thieves do not break through nor steal: 6:21 -For where your treasure is, there will your heart be also. - -6:22 The light of the body is the eye: if therefore thine eye be -single, thy whole body shall be full of light. - -6:23 But if thine eye be evil, thy whole body shall be full of -darkness. - -If therefore the light that is in thee be darkness, how great is that -darkness! 6:24 No man can serve two masters: for either he will hate -the one, and love the other; or else he will hold to the one, and -despise the other. Ye cannot serve God and mammon. - -6:25 Therefore I say unto you, Take no thought for your life, what ye -shall eat, or what ye shall drink; nor yet for your body, what ye -shall put on. Is not the life more than meat, and the body than -raiment? 6:26 Behold the fowls of the air: for they sow not, neither -do they reap, nor gather into barns; yet your heavenly Father feedeth -them. Are ye not much better than they? 6:27 Which of you by taking -thought can add one cubit unto his stature? 6:28 And why take ye -thought for raiment? Consider the lilies of the field, how they grow; -they toil not, neither do they spin: 6:29 And yet I say unto you, That -even Solomon in all his glory was not arrayed like one of these. - -6:30 Wherefore, if God so clothe the grass of the field, which to day -is, and to morrow is cast into the oven, shall he not much more clothe -you, O ye of little faith? 6:31 Therefore take no thought, saying, -What shall we eat? or, What shall we drink? or, Wherewithal shall we -be clothed? 6:32 (For after all these things do the Gentiles seek:) -for your heavenly Father knoweth that ye have need of all these -things. - -6:33 But seek ye first the kingdom of God, and his righteousness; and -all these things shall be added unto you. - -6:34 Take therefore no thought for the morrow: for the morrow shall -take thought for the things of itself. Sufficient unto the day is the -evil thereof. - -7:1 Judge not, that ye be not judged. - -7:2 For with what judgment ye judge, ye shall be judged: and with what -measure ye mete, it shall be measured to you again. - -7:3 And why beholdest thou the mote that is in thy brother's eye, but -considerest not the beam that is in thine own eye? 7:4 Or how wilt -thou say to thy brother, Let me pull out the mote out of thine eye; -and, behold, a beam is in thine own eye? 7:5 Thou hypocrite, first -cast out the beam out of thine own eye; and then shalt thou see -clearly to cast out the mote out of thy brother's eye. - -7:6 Give not that which is holy unto the dogs, neither cast ye your -pearls before swine, lest they trample them under their feet, and turn -again and rend you. - -7:7 Ask, and it shall be given you; seek, and ye shall find; knock, -and it shall be opened unto you: 7:8 For every one that asketh -receiveth; and he that seeketh findeth; and to him that knocketh it -shall be opened. - -7:9 Or what man is there of you, whom if his son ask bread, will he -give him a stone? 7:10 Or if he ask a fish, will he give him a -serpent? 7:11 If ye then, being evil, know how to give good gifts -unto your children, how much more shall your Father which is in heaven -give good things to them that ask him? 7:12 Therefore all things -whatsoever ye would that men should do to you, do ye even so to them: -for this is the law and the prophets. - -7:13 Enter ye in at the strait gate: for wide is the gate, and broad -is the way, that leadeth to destruction, and many there be which go in -thereat: 7:14 Because strait is the gate, and narrow is the way, which -leadeth unto life, and few there be that find it. - -7:15 Beware of false prophets, which come to you in sheep's clothing, -but inwardly they are ravening wolves. - -7:16 Ye shall know them by their fruits. Do men gather grapes of -thorns, or figs of thistles? 7:17 Even so every good tree bringeth -forth good fruit; but a corrupt tree bringeth forth evil fruit. - -7:18 A good tree cannot bring forth evil fruit, neither can a corrupt -tree bring forth good fruit. - -7:19 Every tree that bringeth not forth good fruit is hewn down, and -cast into the fire. - -7:20 Wherefore by their fruits ye shall know them. - -7:21 Not every one that saith unto me, Lord, Lord, shall enter into -the kingdom of heaven; but he that doeth the will of my Father which -is in heaven. - -7:22 Many will say to me in that day, Lord, Lord, have we not -prophesied in thy name? and in thy name have cast out devils? and in -thy name done many wonderful works? 7:23 And then will I profess unto -them, I never knew you: depart from me, ye that work iniquity. - -7:24 Therefore whosoever heareth these sayings of mine, and doeth -them, I will liken him unto a wise man, which built his house upon a -rock: 7:25 And the rain descended, and the floods came, and the winds -blew, and beat upon that house; and it fell not: for it was founded -upon a rock. - -7:26 And every one that heareth these sayings of mine, and doeth them -not, shall be likened unto a foolish man, which built his house upon -the sand: 7:27 And the rain descended, and the floods came, and the -winds blew, and beat upon that house; and it fell: and great was the -fall of it. - -7:28 And it came to pass, when Jesus had ended these sayings, the -people were astonished at his doctrine: 7:29 For he taught them as one -having authority, and not as the scribes. - -8:1 When he was come down from the mountain, great multitudes followed -him. - -8:2 And, behold, there came a leper and worshipped him, saying, Lord, -if thou wilt, thou canst make me clean. - -8:3 And Jesus put forth his hand, and touched him, saying, I will; be -thou clean. And immediately his leprosy was cleansed. - -8:4 And Jesus saith unto him, See thou tell no man; but go thy way, -shew thyself to the priest, and offer the gift that Moses commanded, -for a testimony unto them. - -8:5 And when Jesus was entered into Capernaum, there came unto him a -centurion, beseeching him, 8:6 And saying, Lord, my servant lieth at -home sick of the palsy, grievously tormented. - -8:7 And Jesus saith unto him, I will come and heal him. - -8:8 The centurion answered and said, Lord, I am not worthy that thou -shouldest come under my roof: but speak the word only, and my servant -shall be healed. - -8:9 For I am a man under authority, having soldiers under me: and I -say to this man, Go, and he goeth; and to another, Come, and he -cometh; and to my servant, Do this, and he doeth it. - -8:10 When Jesus heard it, he marvelled, and said to them that -followed, Verily I say unto you, I have not found so great faith, no, -not in Israel. - -8:11 And I say unto you, That many shall come from the east and west, -and shall sit down with Abraham, and Isaac, and Jacob, in the kingdom -of heaven. - -8:12 But the children of the kingdom shall be cast out into outer -darkness: there shall be weeping and gnashing of teeth. - -8:13 And Jesus said unto the centurion, Go thy way; and as thou hast -believed, so be it done unto thee. And his servant was healed in the -selfsame hour. - -8:14 And when Jesus was come into Peter's house, he saw his wife's -mother laid, and sick of a fever. - -8:15 And he touched her hand, and the fever left her: and she arose, -and ministered unto them. - -8:16 When the even was come, they brought unto him many that were -possessed with devils: and he cast out the spirits with his word, and -healed all that were sick: 8:17 That it might be fulfilled which was -spoken by Esaias the prophet, saying, Himself took our infirmities, -and bare our sicknesses. - -8:18 Now when Jesus saw great multitudes about him, he gave -commandment to depart unto the other side. - -8:19 And a certain scribe came, and said unto him, Master, I will -follow thee whithersoever thou goest. - -8:20 And Jesus saith unto him, The foxes have holes, and the birds of -the air have nests; but the Son of man hath not where to lay his head. - -8:21 And another of his disciples said unto him, Lord, suffer me first -to go and bury my father. - -8:22 But Jesus said unto him, Follow me; and let the dead bury their -dead. - -8:23 And when he was entered into a ship, his disciples followed him. - -8:24 And, behold, there arose a great tempest in the sea, insomuch -that the ship was covered with the waves: but he was asleep. - -8:25 And his disciples came to him, and awoke him, saying, Lord, save -us: we perish. - -8:26 And he saith unto them, Why are ye fearful, O ye of little faith? -Then he arose, and rebuked the winds and the sea; and there was a -great calm. - -8:27 But the men marvelled, saying, What manner of man is this, that -even the winds and the sea obey him! 8:28 And when he was come to the -other side into the country of the Gergesenes, there met him two -possessed with devils, coming out of the tombs, exceeding fierce, so -that no man might pass by that way. - -8:29 And, behold, they cried out, saying, What have we to do with -thee, Jesus, thou Son of God? art thou come hither to torment us -before the time? 8:30 And there was a good way off from them an herd -of many swine feeding. - -8:31 So the devils besought him, saying, If thou cast us out, suffer -us to go away into the herd of swine. - -8:32 And he said unto them, Go. And when they were come out, they went -into the herd of swine: and, behold, the whole herd of swine ran -violently down a steep place into the sea, and perished in the waters. - -8:33 And they that kept them fled, and went their ways into the city, -and told every thing, and what was befallen to the possessed of the -devils. - -8:34 And, behold, the whole city came out to meet Jesus: and when they -saw him, they besought him that he would depart out of their coasts. - -9:1 And he entered into a ship, and passed over, and came into his own -city. - -9:2 And, behold, they brought to him a man sick of the palsy, lying on -a bed: and Jesus seeing their faith said unto the sick of the palsy; -Son, be of good cheer; thy sins be forgiven thee. - -9:3 And, behold, certain of the scribes said within themselves, This -man blasphemeth. - -9:4 And Jesus knowing their thoughts said, Wherefore think ye evil in -your hearts? 9:5 For whether is easier, to say, Thy sins be forgiven -thee; or to say, Arise, and walk? 9:6 But that ye may know that the -Son of man hath power on earth to forgive sins, (then saith he to the -sick of the palsy,) Arise, take up thy bed, and go unto thine house. - -9:7 And he arose, and departed to his house. - -9:8 But when the multitudes saw it, they marvelled, and glorified God, -which had given such power unto men. - -9:9 And as Jesus passed forth from thence, he saw a man, named -Matthew, sitting at the receipt of custom: and he saith unto him, -Follow me. And he arose, and followed him. - -9:10 And it came to pass, as Jesus sat at meat in the house, behold, -many publicans and sinners came and sat down with him and his -disciples. - -9:11 And when the Pharisees saw it, they said unto his disciples, Why -eateth your Master with publicans and sinners? 9:12 But when Jesus -heard that, he said unto them, They that be whole need not a -physician, but they that are sick. - -9:13 But go ye and learn what that meaneth, I will have mercy, and not -sacrifice: for I am not come to call the righteous, but sinners to -repentance. - -9:14 Then came to him the disciples of John, saying, Why do we and the -Pharisees fast oft, but thy disciples fast not? 9:15 And Jesus said -unto them, Can the children of the bridechamber mourn, as long as the -bridegroom is with them? but the days will come, when the bridegroom -shall be taken from them, and then shall they fast. - -9:16 No man putteth a piece of new cloth unto an old garment, for that -which is put in to fill it up taketh from the garment, and the rent is -made worse. - -9:17 Neither do men put new wine into old bottles: else the bottles -break, and the wine runneth out, and the bottles perish: but they put -new wine into new bottles, and both are preserved. - -9:18 While he spake these things unto them, behold, there came a -certain ruler, and worshipped him, saying, My daughter is even now -dead: but come and lay thy hand upon her, and she shall live. - -9:19 And Jesus arose, and followed him, and so did his disciples. - -9:20 And, behold, a woman, which was diseased with an issue of blood -twelve years, came behind him, and touched the hem of his garment: -9:21 For she said within herself, If I may but touch his garment, I -shall be whole. - -9:22 But Jesus turned him about, and when he saw her, he said, -Daughter, be of good comfort; thy faith hath made thee whole. And the -woman was made whole from that hour. - -9:23 And when Jesus came into the ruler's house, and saw the minstrels -and the people making a noise, 9:24 He said unto them, Give place: for -the maid is not dead, but sleepeth. And they laughed him to scorn. - -9:25 But when the people were put forth, he went in, and took her by -the hand, and the maid arose. - -9:26 And the fame hereof went abroad into all that land. - -9:27 And when Jesus departed thence, two blind men followed him, -crying, and saying, Thou son of David, have mercy on us. - -9:28 And when he was come into the house, the blind men came to him: -and Jesus saith unto them, Believe ye that I am able to do this? They -said unto him, Yea, Lord. - -9:29 Then touched he their eyes, saying, According to your faith be it -unto you. - -9:30 And their eyes were opened; and Jesus straitly charged them, -saying, See that no man know it. - -9:31 But they, when they were departed, spread abroad his fame in all -that country. - -9:32 As they went out, behold, they brought to him a dumb man -possessed with a devil. - -9:33 And when the devil was cast out, the dumb spake: and the -multitudes marvelled, saying, It was never so seen in Israel. - -9:34 But the Pharisees said, He casteth out devils through the prince -of the devils. - -9:35 And Jesus went about all the cities and villages, teaching in -their synagogues, and preaching the gospel of the kingdom, and healing -every sickness and every disease among the people. - -9:36 But when he saw the multitudes, he was moved with compassion on -them, because they fainted, and were scattered abroad, as sheep having -no shepherd. - -9:37 Then saith he unto his disciples, The harvest truly is plenteous, -but the labourers are few; 9:38 Pray ye therefore the Lord of the -harvest, that he will send forth labourers into his harvest. - -10:1 And when he had called unto him his twelve disciples, he gave -them power against unclean spirits, to cast them out, and to heal all -manner of sickness and all manner of disease. - -10:2 Now the names of the twelve apostles are these; The first, Simon, -who is called Peter, and Andrew his brother; James the son of Zebedee, -and John his brother; 10:3 Philip, and Bartholomew; Thomas, and -Matthew the publican; James the son of Alphaeus, and Lebbaeus, whose -surname was Thaddaeus; 10:4 Simon the Canaanite, and Judas Iscariot, -who also betrayed him. - -10:5 These twelve Jesus sent forth, and commanded them, saying, Go not -into the way of the Gentiles, and into any city of the Samaritans -enter ye not: 10:6 But go rather to the lost sheep of the house of -Israel. - -10:7 And as ye go, preach, saying, The kingdom of heaven is at hand. - -10:8 Heal the sick, cleanse the lepers, raise the dead, cast out -devils: freely ye have received, freely give. - -10:9 Provide neither gold, nor silver, nor brass in your purses, 10:10 -Nor scrip for your journey, neither two coats, neither shoes, nor yet -staves: for the workman is worthy of his meat. - -10:11 And into whatsoever city or town ye shall enter, enquire who in -it is worthy; and there abide till ye go thence. - -10:12 And when ye come into an house, salute it. - -10:13 And if the house be worthy, let your peace come upon it: but if -it be not worthy, let your peace return to you. - -10:14 And whosoever shall not receive you, nor hear your words, when -ye depart out of that house or city, shake off the dust of your feet. - -10:15 Verily I say unto you, It shall be more tolerable for the land -of Sodom and Gomorrha in the day of judgment, than for that city. - -10:16 Behold, I send you forth as sheep in the midst of wolves: be ye -therefore wise as serpents, and harmless as doves. - -10:17 But beware of men: for they will deliver you up to the councils, -and they will scourge you in their synagogues; 10:18 And ye shall be -brought before governors and kings for my sake, for a testimony -against them and the Gentiles. - -10:19 But when they deliver you up, take no thought how or what ye -shall speak: for it shall be given you in that same hour what ye shall -speak. - -10:20 For it is not ye that speak, but the Spirit of your Father which -speaketh in you. - -10:21 And the brother shall deliver up the brother to death, and the -father the child: and the children shall rise up against their -parents, and cause them to be put to death. - -10:22 And ye shall be hated of all men for my name's sake: but he that -endureth to the end shall be saved. - -10:23 But when they persecute you in this city, flee ye into another: -for verily I say unto you, Ye shall not have gone over the cities of -Israel, till the Son of man be come. - -10:24 The disciple is not above his master, nor the servant above his -lord. - -10:25 It is enough for the disciple that he be as his master, and the -servant as his lord. If they have called the master of the house -Beelzebub, how much more shall they call them of his household? 10:26 -Fear them not therefore: for there is nothing covered, that shall not -be revealed; and hid, that shall not be known. - -10:27 What I tell you in darkness, that speak ye in light: and what ye -hear in the ear, that preach ye upon the housetops. - -10:28 And fear not them which kill the body, but are not able to kill -the soul: but rather fear him which is able to destroy both soul and -body in hell. - -10:29 Are not two sparrows sold for a farthing? and one of them shall -not fall on the ground without your Father. - -10:30 But the very hairs of your head are all numbered. - -10:31 Fear ye not therefore, ye are of more value than many sparrows. - -10:32 Whosoever therefore shall confess me before men, him will I -confess also before my Father which is in heaven. - -10:33 But whosoever shall deny me before men, him will I also deny -before my Father which is in heaven. - -10:34 Think not that I am come to send peace on earth: I came not to -send peace, but a sword. - -10:35 For I am come to set a man at variance against his father, and -the daughter against her mother, and the daughter in law against her -mother in law. - -10:36 And a man's foes shall be they of his own household. - -10:37 He that loveth father or mother more than me is not worthy of -me: and he that loveth son or daughter more than me is not worthy of -me. - -10:38 And he that taketh not his cross, and followeth after me, is not -worthy of me. - -10:39 He that findeth his life shall lose it: and he that loseth his -life for my sake shall find it. - -10:40 He that receiveth you receiveth me, and he that receiveth me -receiveth him that sent me. - -10:41 He that receiveth a prophet in the name of a prophet shall -receive a prophet's reward; and he that receiveth a righteous man in -the name of a righteous man shall receive a righteous man's reward. - -10:42 And whosoever shall give to drink unto one of these little ones -a cup of cold water only in the name of a disciple, verily I say unto -you, he shall in no wise lose his reward. - -11:1 And it came to pass, when Jesus had made an end of commanding his -twelve disciples, he departed thence to teach and to preach in their -cities. - -11:2 Now when John had heard in the prison the works of Christ, he -sent two of his disciples, 11:3 And said unto him, Art thou he that -should come, or do we look for another? 11:4 Jesus answered and said -unto them, Go and shew John again those things which ye do hear and -see: 11:5 The blind receive their sight, and the lame walk, the lepers -are cleansed, and the deaf hear, the dead are raised up, and the poor -have the gospel preached to them. - -11:6 And blessed is he, whosoever shall not be offended in me. - -11:7 And as they departed, Jesus began to say unto the multitudes -concerning John, What went ye out into the wilderness to see? A reed -shaken with the wind? 11:8 But what went ye out for to see? A man -clothed in soft raiment? behold, they that wear soft clothing are in -kings' houses. - -11:9 But what went ye out for to see? A prophet? yea, I say unto you, -and more than a prophet. - -11:10 For this is he, of whom it is written, Behold, I send my -messenger before thy face, which shall prepare thy way before thee. - -11:11 Verily I say unto you, Among them that are born of women there -hath not risen a greater than John the Baptist: notwithstanding he -that is least in the kingdom of heaven is greater than he. - -11:12 And from the days of John the Baptist until now the kingdom of -heaven suffereth violence, and the violent take it by force. - -11:13 For all the prophets and the law prophesied until John. - -11:14 And if ye will receive it, this is Elias, which was for to come. - -11:15 He that hath ears to hear, let him hear. - -11:16 But whereunto shall I liken this generation? It is like unto -children sitting in the markets, and calling unto their fellows, 11:17 -And saying, We have piped unto you, and ye have not danced; we have -mourned unto you, and ye have not lamented. - -11:18 For John came neither eating nor drinking, and they say, He hath -a devil. - -11:19 The Son of man came eating and drinking, and they say, Behold a -man gluttonous, and a winebibber, a friend of publicans and sinners. -But wisdom is justified of her children. - -11:20 Then began he to upbraid the cities wherein most of his mighty -works were done, because they repented not: 11:21 Woe unto thee, -Chorazin! woe unto thee, Bethsaida! for if the mighty works, which -were done in you, had been done in Tyre and Sidon, they would have -repented long ago in sackcloth and ashes. - -11:22 But I say unto you, It shall be more tolerable for Tyre and -Sidon at the day of judgment, than for you. - -11:23 And thou, Capernaum, which art exalted unto heaven, shalt be -brought down to hell: for if the mighty works, which have been done in -thee, had been done in Sodom, it would have remained until this day. - -11:24 But I say unto you, That it shall be more tolerable for the land -of Sodom in the day of judgment, than for thee. - -11:25 At that time Jesus answered and said, I thank thee, O Father, -Lord of heaven and earth, because thou hast hid these things from the -wise and prudent, and hast revealed them unto babes. - -11:26 Even so, Father: for so it seemed good in thy sight. - -11:27 All things are delivered unto me of my Father: and no man -knoweth the Son, but the Father; neither knoweth any man the Father, -save the Son, and he to whomsoever the Son will reveal him. - -11:28 Come unto me, all ye that labour and are heavy laden, and I will -give you rest. - -11:29 Take my yoke upon you, and learn of me; for I am meek and lowly -in heart: and ye shall find rest unto your souls. - -11:30 For my yoke is easy, and my burden is light. - -12:1 At that time Jesus went on the sabbath day through the corn; and -his disciples were an hungred, and began to pluck the ears of corn and -to eat. - -12:2 But when the Pharisees saw it, they said unto him, Behold, thy -disciples do that which is not lawful to do upon the sabbath day. - -12:3 But he said unto them, Have ye not read what David did, when he -was an hungred, and they that were with him; 12:4 How he entered into -the house of God, and did eat the shewbread, which was not lawful for -him to eat, neither for them which were with him, but only for the -priests? 12:5 Or have ye not read in the law, how that on the sabbath -days the priests in the temple profane the sabbath, and are blameless? -12:6 But I say unto you, That in this place is one greater than the -temple. - -12:7 But if ye had known what this meaneth, I will have mercy, and not -sacrifice, ye would not have condemned the guiltless. - -12:8 For the Son of man is Lord even of the sabbath day. - -12:9 And when he was departed thence, he went into their synagogue: -12:10 And, behold, there was a man which had his hand withered. And -they asked him, saying, Is it lawful to heal on the sabbath days? that -they might accuse him. - -12:11 And he said unto them, What man shall there be among you, that -shall have one sheep, and if it fall into a pit on the sabbath day, -will he not lay hold on it, and lift it out? 12:12 How much then is a -man better than a sheep? Wherefore it is lawful to do well on the -sabbath days. - -12:13 Then saith he to the man, Stretch forth thine hand. And he -stretched it forth; and it was restored whole, like as the other. - -12:14 Then the Pharisees went out, and held a council against him, how -they might destroy him. - -12:15 But when Jesus knew it, he withdrew himself from thence: and -great multitudes followed him, and he healed them all; 12:16 And -charged them that they should not make him known: 12:17 That it might -be fulfilled which was spoken by Esaias the prophet, saying, 12:18 -Behold my servant, whom I have chosen; my beloved, in whom my soul is -well pleased: I will put my spirit upon him, and he shall shew -judgment to the Gentiles. - -12:19 He shall not strive, nor cry; neither shall any man hear his -voice in the streets. - -12:20 A bruised reed shall he not break, and smoking flax shall he not -quench, till he send forth judgment unto victory. - -12:21 And in his name shall the Gentiles trust. - -12:22 Then was brought unto him one possessed with a devil, blind, and -dumb: and he healed him, insomuch that the blind and dumb both spake -and saw. - -12:23 And all the people were amazed, and said, Is not this the son of -David? 12:24 But when the Pharisees heard it, they said, This fellow -doth not cast out devils, but by Beelzebub the prince of the devils. - -12:25 And Jesus knew their thoughts, and said unto them, Every kingdom -divided against itself is brought to desolation; and every city or -house divided against itself shall not stand: 12:26 And if Satan cast -out Satan, he is divided against himself; how shall then his kingdom -stand? 12:27 And if I by Beelzebub cast out devils, by whom do your -children cast them out? therefore they shall be your judges. - -12:28 But if I cast out devils by the Spirit of God, then the kingdom -of God is come unto you. - -12:29 Or else how can one enter into a strong man's house, and spoil -his goods, except he first bind the strong man? and then he will spoil -his house. - -12:30 He that is not with me is against me; and he that gathereth not -with me scattereth abroad. - -12:31 Wherefore I say unto you, All manner of sin and blasphemy shall -be forgiven unto men: but the blasphemy against the Holy Ghost shall -not be forgiven unto men. - -12:32 And whosoever speaketh a word against the Son of man, it shall -be forgiven him: but whosoever speaketh against the Holy Ghost, it -shall not be forgiven him, neither in this world, neither in the world -to come. - -12:33 Either make the tree good, and his fruit good; or else make the -tree corrupt, and his fruit corrupt: for the tree is known by his -fruit. - -12:34 O generation of vipers, how can ye, being evil, speak good -things? for out of the abundance of the heart the mouth speaketh. - -12:35 A good man out of the good treasure of the heart bringeth forth -good things: and an evil man out of the evil treasure bringeth forth -evil things. - -12:36 But I say unto you, That every idle word that men shall speak, -they shall give account thereof in the day of judgment. - -12:37 For by thy words thou shalt be justified, and by thy words thou -shalt be condemned. - -12:38 Then certain of the scribes and of the Pharisees answered, -saying, Master, we would see a sign from thee. - -12:39 But he answered and said unto them, An evil and adulterous -generation seeketh after a sign; and there shall no sign be given to -it, but the sign of the prophet Jonas: 12:40 For as Jonas was three -days and three nights in the whale's belly; so shall the Son of man be -three days and three nights in the heart of the earth. - -12:41 The men of Nineveh shall rise in judgment with this generation, -and shall condemn it: because they repented at the preaching of Jonas; -and, behold, a greater than Jonas is here. - -12:42 The queen of the south shall rise up in the judgment with this -generation, and shall condemn it: for she came from the uttermost -parts of the earth to hear the wisdom of Solomon; and, behold, a -greater than Solomon is here. - -12:43 When the unclean spirit is gone out of a man, he walketh through -dry places, seeking rest, and findeth none. - -12:44 Then he saith, I will return into my house from whence I came -out; and when he is come, he findeth it empty, swept, and garnished. - -12:45 Then goeth he, and taketh with himself seven other spirits more -wicked than himself, and they enter in and dwell there: and the last -state of that man is worse than the first. Even so shall it be also -unto this wicked generation. - -12:46 While he yet talked to the people, behold, his mother and his -brethren stood without, desiring to speak with him. - -12:47 Then one said unto him, Behold, thy mother and thy brethren -stand without, desiring to speak with thee. - -12:48 But he answered and said unto him that told him, Who is my -mother? and who are my brethren? 12:49 And he stretched forth his -hand toward his disciples, and said, Behold my mother and my brethren! -12:50 For whosoever shall do the will of my Father which is in heaven, -the same is my brother, and sister, and mother. - -13:1 The same day went Jesus out of the house, and sat by the sea -side. - -13:2 And great multitudes were gathered together unto him, so that he -went into a ship, and sat; and the whole multitude stood on the shore. - -13:3 And he spake many things unto them in parables, saying, Behold, a -sower went forth to sow; 13:4 And when he sowed, some seeds fell by -the way side, and the fowls came and devoured them up: 13:5 Some fell -upon stony places, where they had not much earth: and forthwith they -sprung up, because they had no deepness of earth: 13:6 And when the -sun was up, they were scorched; and because they had no root, they -withered away. - -13:7 And some fell among thorns; and the thorns sprung up, and choked -them: 13:8 But other fell into good ground, and brought forth fruit, -some an hundredfold, some sixtyfold, some thirtyfold. - -13:9 Who hath ears to hear, let him hear. - -13:10 And the disciples came, and said unto him, Why speakest thou -unto them in parables? 13:11 He answered and said unto them, Because -it is given unto you to know the mysteries of the kingdom of heaven, -but to them it is not given. - -13:12 For whosoever hath, to him shall be given, and he shall have -more abundance: but whosoever hath not, from him shall be taken away -even that he hath. - -13:13 Therefore speak I to them in parables: because they seeing see -not; and hearing they hear not, neither do they understand. - -13:14 And in them is fulfilled the prophecy of Esaias, which saith, By -hearing ye shall hear, and shall not understand; and seeing ye shall -see, and shall not perceive: 13:15 For this people's heart is waxed -gross, and their ears are dull of hearing, and their eyes they have -closed; lest at any time they should see with their eyes and hear with -their ears, and should understand with their heart, and should be -converted, and I should heal them. - -13:16 But blessed are your eyes, for they see: and your ears, for they -hear. - -13:17 For verily I say unto you, That many prophets and righteous men -have desired to see those things which ye see, and have not seen them; -and to hear those things which ye hear, and have not heard them. - -13:18 Hear ye therefore the parable of the sower. - -13:19 When any one heareth the word of the kingdom, and understandeth -it not, then cometh the wicked one, and catcheth away that which was -sown in his heart. This is he which received seed by the way side. - -13:20 But he that received the seed into stony places, the same is he -that heareth the word, and anon with joy receiveth it; 13:21 Yet hath -he not root in himself, but dureth for a while: for when tribulation -or persecution ariseth because of the word, by and by he is offended. - -13:22 He also that received seed among the thorns is he that heareth -the word; and the care of this world, and the deceitfulness of riches, -choke the word, and he becometh unfruitful. - -13:23 But he that received seed into the good ground is he that -heareth the word, and understandeth it; which also beareth fruit, and -bringeth forth, some an hundredfold, some sixty, some thirty. - -13:24 Another parable put he forth unto them, saying, The kingdom of -heaven is likened unto a man which sowed good seed in his field: 13:25 -But while men slept, his enemy came and sowed tares among the wheat, -and went his way. - -13:26 But when the blade was sprung up, and brought forth fruit, then -appeared the tares also. - -13:27 So the servants of the householder came and said unto him, Sir, -didst not thou sow good seed in thy field? from whence then hath it -tares? 13:28 He said unto them, An enemy hath done this. The servants -said unto him, Wilt thou then that we go and gather them up? 13:29 -But he said, Nay; lest while ye gather up the tares, ye root up also -the wheat with them. - -13:30 Let both grow together until the harvest: and in the time of -harvest I will say to the reapers, Gather ye together first the tares, -and bind them in bundles to burn them: but gather the wheat into my -barn. - -13:31 Another parable put he forth unto them, saying, The kingdom of -heaven is like to a grain of mustard seed, which a man took, and sowed -in his field: 13:32 Which indeed is the least of all seeds: but when -it is grown, it is the greatest among herbs, and becometh a tree, so -that the birds of the air come and lodge in the branches thereof. - -13:33 Another parable spake he unto them; The kingdom of heaven is -like unto leaven, which a woman took, and hid in three measures of -meal, till the whole was leavened. - -13:34 All these things spake Jesus unto the multitude in parables; and -without a parable spake he not unto them: 13:35 That it might be -fulfilled which was spoken by the prophet, saying, I will open my -mouth in parables; I will utter things which have been kept secret -from the foundation of the world. - -13:36 Then Jesus sent the multitude away, and went into the house: and -his disciples came unto him, saying, Declare unto us the parable of -the tares of the field. - -13:37 He answered and said unto them, He that soweth the good seed is -the Son of man; 13:38 The field is the world; the good seed are the -children of the kingdom; but the tares are the children of the wicked -one; 13:39 The enemy that sowed them is the devil; the harvest is the -end of the world; and the reapers are the angels. - -13:40 As therefore the tares are gathered and burned in the fire; so -shall it be in the end of this world. - -13:41 The Son of man shall send forth his angels, and they shall -gather out of his kingdom all things that offend, and them which do -iniquity; 13:42 And shall cast them into a furnace of fire: there -shall be wailing and gnashing of teeth. - -13:43 Then shall the righteous shine forth as the sun in the kingdom -of their Father. Who hath ears to hear, let him hear. - -13:44 Again, the kingdom of heaven is like unto treasure hid in a -field; the which when a man hath found, he hideth, and for joy thereof -goeth and selleth all that he hath, and buyeth that field. - -13:45 Again, the kingdom of heaven is like unto a merchant man, -seeking goodly pearls: 13:46 Who, when he had found one pearl of great -price, went and sold all that he had, and bought it. - -13:47 Again, the kingdom of heaven is like unto a net, that was cast -into the sea, and gathered of every kind: 13:48 Which, when it was -full, they drew to shore, and sat down, and gathered the good into -vessels, but cast the bad away. - -13:49 So shall it be at the end of the world: the angels shall come -forth, and sever the wicked from among the just, 13:50 And shall cast -them into the furnace of fire: there shall be wailing and gnashing of -teeth. - -13:51 Jesus saith unto them, Have ye understood all these things? They -say unto him, Yea, Lord. - -13:52 Then said he unto them, Therefore every scribe which is -instructed unto the kingdom of heaven is like unto a man that is an -householder, which bringeth forth out of his treasure things new and -old. - -13:53 And it came to pass, that when Jesus had finished these -parables, he departed thence. - -13:54 And when he was come into his own country, he taught them in -their synagogue, insomuch that they were astonished, and said, Whence -hath this man this wisdom, and these mighty works? 13:55 Is not this -the carpenter's son? is not his mother called Mary? and his brethren, -James, and Joses, and Simon, and Judas? 13:56 And his sisters, are -they not all with us? Whence then hath this man all these things? -13:57 And they were offended in him. But Jesus said unto them, A -prophet is not without honour, save in his own country, and in his own -house. - -13:58 And he did not many mighty works there because of their -unbelief. - -14:1 At that time Herod the tetrarch heard of the fame of Jesus, 14:2 -And said unto his servants, This is John the Baptist; he is risen from -the dead; and therefore mighty works do shew forth themselves in him. - -14:3 For Herod had laid hold on John, and bound him, and put him in -prison for Herodias' sake, his brother Philip's wife. - -14:4 For John said unto him, It is not lawful for thee to have her. - -14:5 And when he would have put him to death, he feared the multitude, -because they counted him as a prophet. - -14:6 But when Herod's birthday was kept, the daughter of Herodias -danced before them, and pleased Herod. - -14:7 Whereupon he promised with an oath to give her whatsoever she -would ask. - -14:8 And she, being before instructed of her mother, said, Give me -here John Baptist's head in a charger. - -14:9 And the king was sorry: nevertheless for the oath's sake, and -them which sat with him at meat, he commanded it to be given her. - -14:10 And he sent, and beheaded John in the prison. - -14:11 And his head was brought in a charger, and given to the damsel: -and she brought it to her mother. - -14:12 And his disciples came, and took up the body, and buried it, and -went and told Jesus. - -14:13 When Jesus heard of it, he departed thence by ship into a desert -place apart: and when the people had heard thereof, they followed him -on foot out of the cities. - -14:14 And Jesus went forth, and saw a great multitude, and was moved -with compassion toward them, and he healed their sick. - -14:15 And when it was evening, his disciples came to him, saying, This -is a desert place, and the time is now past; send the multitude away, -that they may go into the villages, and buy themselves victuals. - -14:16 But Jesus said unto them, They need not depart; give ye them to -eat. - -14:17 And they say unto him, We have here but five loaves, and two -fishes. - -14:18 He said, Bring them hither to me. - -14:19 And he commanded the multitude to sit down on the grass, and -took the five loaves, and the two fishes, and looking up to heaven, he -blessed, and brake, and gave the loaves to his disciples, and the -disciples to the multitude. - -14:20 And they did all eat, and were filled: and they took up of the -fragments that remained twelve baskets full. - -14:21 And they that had eaten were about five thousand men, beside -women and children. - -14:22 And straightway Jesus constrained his disciples to get into a -ship, and to go before him unto the other side, while he sent the -multitudes away. - -14:23 And when he had sent the multitudes away, he went up into a -mountain apart to pray: and when the evening was come, he was there -alone. - -14:24 But the ship was now in the midst of the sea, tossed with waves: -for the wind was contrary. - -14:25 And in the fourth watch of the night Jesus went unto them, -walking on the sea. - -14:26 And when the disciples saw him walking on the sea, they were -troubled, saying, It is a spirit; and they cried out for fear. - -14:27 But straightway Jesus spake unto them, saying, Be of good cheer; -it is I; be not afraid. - -14:28 And Peter answered him and said, Lord, if it be thou, bid me -come unto thee on the water. - -14:29 And he said, Come. And when Peter was come down out of the ship, -he walked on the water, to go to Jesus. - -14:30 But when he saw the wind boisterous, he was afraid; and -beginning to sink, he cried, saying, Lord, save me. - -14:31 And immediately Jesus stretched forth his hand, and caught him, -and said unto him, O thou of little faith, wherefore didst thou doubt? -14:32 And when they were come into the ship, the wind ceased. - -14:33 Then they that were in the ship came and worshipped him, saying, -Of a truth thou art the Son of God. - -14:34 And when they were gone over, they came into the land of -Gennesaret. - -14:35 And when the men of that place had knowledge of him, they sent -out into all that country round about, and brought unto him all that -were diseased; 14:36 And besought him that they might only touch the -hem of his garment: and as many as touched were made perfectly whole. - -15:1 Then came to Jesus scribes and Pharisees, which were of -Jerusalem, saying, 15:2 Why do thy disciples transgress the tradition -of the elders? for they wash not their hands when they eat bread. - -15:3 But he answered and said unto them, Why do ye also transgress the -commandment of God by your tradition? 15:4 For God commanded, saying, -Honour thy father and mother: and, He that curseth father or mother, -let him die the death. - -15:5 But ye say, Whosoever shall say to his father or his mother, It -is a gift, by whatsoever thou mightest be profited by me; 15:6 And -honour not his father or his mother, he shall be free. Thus have ye -made the commandment of God of none effect by your tradition. - -15:7 Ye hypocrites, well did Esaias prophesy of you, saying, 15:8 This -people draweth nigh unto me with their mouth, and honoureth me with -their lips; but their heart is far from me. - -15:9 But in vain they do worship me, teaching for doctrines the -commandments of men. - -15:10 And he called the multitude, and said unto them, Hear, and -understand: 15:11 Not that which goeth into the mouth defileth a man; -but that which cometh out of the mouth, this defileth a man. - -15:12 Then came his disciples, and said unto him, Knowest thou that -the Pharisees were offended, after they heard this saying? 15:13 But -he answered and said, Every plant, which my heavenly Father hath not -planted, shall be rooted up. - -15:14 Let them alone: they be blind leaders of the blind. And if the -blind lead the blind, both shall fall into the ditch. - -15:15 Then answered Peter and said unto him, Declare unto us this -parable. - -15:16 And Jesus said, Are ye also yet without understanding? 15:17 Do -not ye yet understand, that whatsoever entereth in at the mouth goeth -into the belly, and is cast out into the draught? 15:18 But those -things which proceed out of the mouth come forth from the heart; and -they defile the man. - -15:19 For out of the heart proceed evil thoughts, murders, adulteries, -fornications, thefts, false witness, blasphemies: 15:20 These are the -things which defile a man: but to eat with unwashen hands defileth not -a man. - -15:21 Then Jesus went thence, and departed into the coasts of Tyre and -Sidon. - -15:22 And, behold, a woman of Canaan came out of the same coasts, and -cried unto him, saying, Have mercy on me, O Lord, thou son of David; -my daughter is grievously vexed with a devil. - -15:23 But he answered her not a word. And his disciples came and -besought him, saying, Send her away; for she crieth after us. - -15:24 But he answered and said, I am not sent but unto the lost sheep -of the house of Israel. - -15:25 Then came she and worshipped him, saying, Lord, help me. - -15:26 But he answered and said, It is not meet to take the children's -bread, and to cast it to dogs. - -15:27 And she said, Truth, Lord: yet the dogs eat of the crumbs which -fall from their masters' table. - -15:28 Then Jesus answered and said unto her, O woman, great is thy -faith: be it unto thee even as thou wilt. And her daughter was made -whole from that very hour. - -15:29 And Jesus departed from thence, and came nigh unto the sea of -Galilee; and went up into a mountain, and sat down there. - -15:30 And great multitudes came unto him, having with them those that -were lame, blind, dumb, maimed, and many others, and cast them down at -Jesus' feet; and he healed them: 15:31 Insomuch that the multitude -wondered, when they saw the dumb to speak, the maimed to be whole, the -lame to walk, and the blind to see: and they glorified the God of -Israel. - -15:32 Then Jesus called his disciples unto him, and said, I have -compassion on the multitude, because they continue with me now three -days, and have nothing to eat: and I will not send them away fasting, -lest they faint in the way. - -15:33 And his disciples say unto him, Whence should we have so much -bread in the wilderness, as to fill so great a multitude? 15:34 And -Jesus saith unto them, How many loaves have ye? And they said, Seven, -and a few little fishes. - -15:35 And he commanded the multitude to sit down on the ground. - -15:36 And he took the seven loaves and the fishes, and gave thanks, -and brake them, and gave to his disciples, and the disciples to the -multitude. - -15:37 And they did all eat, and were filled: and they took up of the -broken meat that was left seven baskets full. - -15:38 And they that did eat were four thousand men, beside women and -children. - -15:39 And he sent away the multitude, and took ship, and came into the -coasts of Magdala. - -16:1 The Pharisees also with the Sadducees came, and tempting desired -him that he would shew them a sign from heaven. - -16:2 He answered and said unto them, When it is evening, ye say, It -will be fair weather: for the sky is red. - -16:3 And in the morning, It will be foul weather to day: for the sky -is red and lowering. O ye hypocrites, ye can discern the face of the -sky; but can ye not discern the signs of the times? 16:4 A wicked and -adulterous generation seeketh after a sign; and there shall no sign be -given unto it, but the sign of the prophet Jonas. And he left them, -and departed. - -16:5 And when his disciples were come to the other side, they had -forgotten to take bread. - -16:6 Then Jesus said unto them, Take heed and beware of the leaven of -the Pharisees and of the Sadducees. - -16:7 And they reasoned among themselves, saying, It is because we have -taken no bread. - -16:8 Which when Jesus perceived, he said unto them, O ye of little -faith, why reason ye among yourselves, because ye have brought no -bread? 16:9 Do ye not yet understand, neither remember the five -loaves of the five thousand, and how many baskets ye took up? 16:10 -Neither the seven loaves of the four thousand, and how many baskets ye -took up? 16:11 How is it that ye do not understand that I spake it -not to you concerning bread, that ye should beware of the leaven of -the Pharisees and of the Sadducees? 16:12 Then understood they how -that he bade them not beware of the leaven of bread, but of the -doctrine of the Pharisees and of the Sadducees. - -16:13 When Jesus came into the coasts of Caesarea Philippi, he asked -his disciples, saying, Whom do men say that I the Son of man am? -16:14 And they said, Some say that thou art John the Baptist: some, -Elias; and others, Jeremias, or one of the prophets. - -16:15 He saith unto them, But whom say ye that I am? 16:16 And Simon -Peter answered and said, Thou art the Christ, the Son of the living -God. - -16:17 And Jesus answered and said unto him, Blessed art thou, Simon -Barjona: for flesh and blood hath not revealed it unto thee, but my -Father which is in heaven. - -16:18 And I say also unto thee, That thou art Peter, and upon this -rock I will build my church; and the gates of hell shall not prevail -against it. - -16:19 And I will give unto thee the keys of the kingdom of heaven: and -whatsoever thou shalt bind on earth shall be bound in heaven: and -whatsoever thou shalt loose on earth shall be loosed in heaven. - -16:20 Then charged he his disciples that they should tell no man that -he was Jesus the Christ. - -16:21 From that time forth began Jesus to shew unto his disciples, how -that he must go unto Jerusalem, and suffer many things of the elders -and chief priests and scribes, and be killed, and be raised again the -third day. - -16:22 Then Peter took him, and began to rebuke him, saying, Be it far -from thee, Lord: this shall not be unto thee. - -16:23 But he turned, and said unto Peter, Get thee behind me, Satan: -thou art an offence unto me: for thou savourest not the things that be -of God, but those that be of men. - -16:24 Then said Jesus unto his disciples, If any man will come after -me, let him deny himself, and take up his cross, and follow me. - -16:25 For whosoever will save his life shall lose it: and whosoever -will lose his life for my sake shall find it. - -16:26 For what is a man profited, if he shall gain the whole world, -and lose his own soul? or what shall a man give in exchange for his -soul? 16:27 For the Son of man shall come in the glory of his Father -with his angels; and then he shall reward every man according to his -works. - -16:28 Verily I say unto you, There be some standing here, which shall -not taste of death, till they see the Son of man coming in his -kingdom. - -17:1 And after six days Jesus taketh Peter, James, and John his -brother, and bringeth them up into an high mountain apart, 17:2 And -was transfigured before them: and his face did shine as the sun, and -his raiment was white as the light. - -17:3 And, behold, there appeared unto them Moses and Elias talking -with him. - -17:4 Then answered Peter, and said unto Jesus, Lord, it is good for us -to be here: if thou wilt, let us make here three tabernacles; one for -thee, and one for Moses, and one for Elias. - -17:5 While he yet spake, behold, a bright cloud overshadowed them: and -behold a voice out of the cloud, which said, This is my beloved Son, -in whom I am well pleased; hear ye him. - -17:6 And when the disciples heard it, they fell on their face, and -were sore afraid. - -17:7 And Jesus came and touched them, and said, Arise, and be not -afraid. - -17:8 And when they had lifted up their eyes, they saw no man, save -Jesus only. - -17:9 And as they came down from the mountain, Jesus charged them, -saying, Tell the vision to no man, until the Son of man be risen again -from the dead. - -17:10 And his disciples asked him, saying, Why then say the scribes -that Elias must first come? 17:11 And Jesus answered and said unto -them, Elias truly shall first come, and restore all things. - -17:12 But I say unto you, That Elias is come already, and they knew -him not, but have done unto him whatsoever they listed. Likewise shall -also the Son of man suffer of them. - -17:13 Then the disciples understood that he spake unto them of John -the Baptist. - -17:14 And when they were come to the multitude, there came to him a -certain man, kneeling down to him, and saying, 17:15 Lord, have mercy -on my son: for he is lunatick, and sore vexed: for ofttimes he falleth -into the fire, and oft into the water. - -17:16 And I brought him to thy disciples, and they could not cure him. - -17:17 Then Jesus answered and said, O faithless and perverse -generation, how long shall I be with you? how long shall I suffer you? -bring him hither to me. - -17:18 And Jesus rebuked the devil; and he departed out of him: and the -child was cured from that very hour. - -17:19 Then came the disciples to Jesus apart, and said, Why could not -we cast him out? 17:20 And Jesus said unto them, Because of your -unbelief: for verily I say unto you, If ye have faith as a grain of -mustard seed, ye shall say unto this mountain, Remove hence to yonder -place; and it shall remove; and nothing shall be impossible unto you. - -17:21 Howbeit this kind goeth not out but by prayer and fasting. - -17:22 And while they abode in Galilee, Jesus said unto them, The Son -of man shall be betrayed into the hands of men: 17:23 And they shall -kill him, and the third day he shall be raised again. - -And they were exceeding sorry. - -17:24 And when they were come to Capernaum, they that received tribute -money came to Peter, and said, Doth not your master pay tribute? -17:25 He saith, Yes. And when he was come into the house, Jesus -prevented him, saying, What thinkest thou, Simon? of whom do the kings -of the earth take custom or tribute? of their own children, or of -strangers? 17:26 Peter saith unto him, Of strangers. Jesus saith unto -him, Then are the children free. - -17:27 Notwithstanding, lest we should offend them, go thou to the sea, -and cast an hook, and take up the fish that first cometh up; and when -thou hast opened his mouth, thou shalt find a piece of money: that -take, and give unto them for me and thee. - -18:1 At the same time came the disciples unto Jesus, saying, Who is -the greatest in the kingdom of heaven? 18:2 And Jesus called a little -child unto him, and set him in the midst of them, 18:3 And said, -Verily I say unto you, Except ye be converted, and become as little -children, ye shall not enter into the kingdom of heaven. - -18:4 Whosoever therefore shall humble himself as this little child, -the same is greatest in the kingdom of heaven. - -18:5 And whoso shall receive one such little child in my name -receiveth me. - -18:6 But whoso shall offend one of these little ones which believe in -me, it were better for him that a millstone were hanged about his -neck, and that he were drowned in the depth of the sea. - -18:7 Woe unto the world because of offences! for it must needs be that -offences come; but woe to that man by whom the offence cometh! 18:8 -Wherefore if thy hand or thy foot offend thee, cut them off, and cast -them from thee: it is better for thee to enter into life halt or -maimed, rather than having two hands or two feet to be cast into -everlasting fire. - -18:9 And if thine eye offend thee, pluck it out, and cast it from -thee: it is better for thee to enter into life with one eye, rather -than having two eyes to be cast into hell fire. - -18:10 Take heed that ye despise not one of these little ones; for I -say unto you, That in heaven their angels do always behold the face of -my Father which is in heaven. - -18:11 For the Son of man is come to save that which was lost. - -18:12 How think ye? if a man have an hundred sheep, and one of them be -gone astray, doth he not leave the ninety and nine, and goeth into the -mountains, and seeketh that which is gone astray? 18:13 And if so be -that he find it, verily I say unto you, he rejoiceth more of that -sheep, than of the ninety and nine which went not astray. - -18:14 Even so it is not the will of your Father which is in heaven, -that one of these little ones should perish. - -18:15 Moreover if thy brother shall trespass against thee, go and tell -him his fault between thee and him alone: if he shall hear thee, thou -hast gained thy brother. - -18:16 But if he will not hear thee, then take with thee one or two -more, that in the mouth of two or three witnesses every word may be -established. - -18:17 And if he shall neglect to hear them, tell it unto the church: -but if he neglect to hear the church, let him be unto thee as an -heathen man and a publican. - -18:18 Verily I say unto you, Whatsoever ye shall bind on earth shall -be bound in heaven: and whatsoever ye shall loose on earth shall be -loosed in heaven. - -18:19 Again I say unto you, That if two of you shall agree on earth as -touching any thing that they shall ask, it shall be done for them of -my Father which is in heaven. - -18:20 For where two or three are gathered together in my name, there -am I in the midst of them. - -18:21 Then came Peter to him, and said, Lord, how oft shall my brother -sin against me, and I forgive him? till seven times? 18:22 Jesus -saith unto him, I say not unto thee, Until seven times: but, Until -seventy times seven. - -18:23 Therefore is the kingdom of heaven likened unto a certain king, -which would take account of his servants. - -18:24 And when he had begun to reckon, one was brought unto him, which -owed him ten thousand talents. - -18:25 But forasmuch as he had not to pay, his lord commanded him to be -sold, and his wife, and children, and all that he had, and payment to -be made. - -18:26 The servant therefore fell down, and worshipped him, saying, -Lord, have patience with me, and I will pay thee all. - -18:27 Then the lord of that servant was moved with compassion, and -loosed him, and forgave him the debt. - -18:28 But the same servant went out, and found one of his -fellowservants, which owed him an hundred pence: and he laid hands on -him, and took him by the throat, saying, Pay me that thou owest. - -18:29 And his fellowservant fell down at his feet, and besought him, -saying, Have patience with me, and I will pay thee all. - -18:30 And he would not: but went and cast him into prison, till he -should pay the debt. - -18:31 So when his fellowservants saw what was done, they were very -sorry, and came and told unto their lord all that was done. - -18:32 Then his lord, after that he had called him, said unto him, O -thou wicked servant, I forgave thee all that debt, because thou -desiredst me: 18:33 Shouldest not thou also have had compassion on thy -fellowservant, even as I had pity on thee? 18:34 And his lord was -wroth, and delivered him to the tormentors, till he should pay all -that was due unto him. - -18:35 So likewise shall my heavenly Father do also unto you, if ye -from your hearts forgive not every one his brother their trespasses. - -19:1 And it came to pass, that when Jesus had finished these sayings, -he departed from Galilee, and came into the coasts of Judaea beyond -Jordan; 19:2 And great multitudes followed him; and he healed them -there. - -19:3 The Pharisees also came unto him, tempting him, and saying unto -him, Is it lawful for a man to put away his wife for every cause? -19:4 And he answered and said unto them, Have ye not read, that he -which made them at the beginning made them male and female, 19:5 And -said, For this cause shall a man leave father and mother, and shall -cleave to his wife: and they twain shall be one flesh? 19:6 Wherefore -they are no more twain, but one flesh. What therefore God hath joined -together, let not man put asunder. - -19:7 They say unto him, Why did Moses then command to give a writing -of divorcement, and to put her away? 19:8 He saith unto them, Moses -because of the hardness of your hearts suffered you to put away your -wives: but from the beginning it was not so. - -19:9 And I say unto you, Whosoever shall put away his wife, except it -be for fornication, and shall marry another, committeth adultery: and -whoso marrieth her which is put away doth commit adultery. - -19:10 His disciples say unto him, If the case of the man be so with -his wife, it is not good to marry. - -19:11 But he said unto them, All men cannot receive this saying, save -they to whom it is given. - -19:12 For there are some eunuchs, which were so born from their -mother's womb: and there are some eunuchs, which were made eunuchs of -men: and there be eunuchs, which have made themselves eunuchs for the -kingdom of heaven's sake. He that is able to receive it, let him -receive it. - -19:13 Then were there brought unto him little children, that he should -put his hands on them, and pray: and the disciples rebuked them. - -19:14 But Jesus said, Suffer little children, and forbid them not, to -come unto me: for of such is the kingdom of heaven. - -19:15 And he laid his hands on them, and departed thence. - -19:16 And, behold, one came and said unto him, Good Master, what good -thing shall I do, that I may have eternal life? 19:17 And he said -unto him, Why callest thou me good? there is none good but one, that -is, God: but if thou wilt enter into life, keep the commandments. - -19:18 He saith unto him, Which? Jesus said, Thou shalt do no murder, -Thou shalt not commit adultery, Thou shalt not steal, Thou shalt not -bear false witness, 19:19 Honour thy father and thy mother: and, Thou -shalt love thy neighbour as thyself. - -19:20 The young man saith unto him, All these things have I kept from -my youth up: what lack I yet? 19:21 Jesus said unto him, If thou wilt -be perfect, go and sell that thou hast, and give to the poor, and thou -shalt have treasure in heaven: and come and follow me. - -19:22 But when the young man heard that saying, he went away -sorrowful: for he had great possessions. - -19:23 Then said Jesus unto his disciples, Verily I say unto you, That -a rich man shall hardly enter into the kingdom of heaven. - -19:24 And again I say unto you, It is easier for a camel to go through -the eye of a needle, than for a rich man to enter into the kingdom of -God. - -19:25 When his disciples heard it, they were exceedingly amazed, -saying, Who then can be saved? 19:26 But Jesus beheld them, and said -unto them, With men this is impossible; but with God all things are -possible. - -19:27 Then answered Peter and said unto him, Behold, we have forsaken -all, and followed thee; what shall we have therefore? 19:28 And Jesus -said unto them, Verily I say unto you, That ye which have followed me, -in the regeneration when the Son of man shall sit in the throne of his -glory, ye also shall sit upon twelve thrones, judging the twelve -tribes of Israel. - -19:29 And every one that hath forsaken houses, or brethren, or -sisters, or father, or mother, or wife, or children, or lands, for my -name's sake, shall receive an hundredfold, and shall inherit -everlasting life. - -19:30 But many that are first shall be last; and the last shall be -first. - -20:1 For the kingdom of heaven is like unto a man that is an -householder, which went out early in the morning to hire labourers -into his vineyard. - -20:2 And when he had agreed with the labourers for a penny a day, he -sent them into his vineyard. - -20:3 And he went out about the third hour, and saw others standing -idle in the marketplace, 20:4 And said unto them; Go ye also into the -vineyard, and whatsoever is right I will give you. And they went their -way. - -20:5 Again he went out about the sixth and ninth hour, and did -likewise. - -20:6 And about the eleventh hour he went out, and found others -standing idle, and saith unto them, Why stand ye here all the day -idle? 20:7 They say unto him, Because no man hath hired us. He saith -unto them, Go ye also into the vineyard; and whatsoever is right, that -shall ye receive. - -20:8 So when even was come, the lord of the vineyard saith unto his -steward, Call the labourers, and give them their hire, beginning from -the last unto the first. - -20:9 And when they came that were hired about the eleventh hour, they -received every man a penny. - -20:10 But when the first came, they supposed that they should have -received more; and they likewise received every man a penny. - -20:11 And when they had received it, they murmured against the goodman -of the house, 20:12 Saying, These last have wrought but one hour, and -thou hast made them equal unto us, which have borne the burden and -heat of the day. - -20:13 But he answered one of them, and said, Friend, I do thee no -wrong: didst not thou agree with me for a penny? 20:14 Take that -thine is, and go thy way: I will give unto this last, even as unto -thee. - -20:15 Is it not lawful for me to do what I will with mine own? Is -thine eye evil, because I am good? 20:16 So the last shall be first, -and the first last: for many be called, but few chosen. - -20:17 And Jesus going up to Jerusalem took the twelve disciples apart -in the way, and said unto them, 20:18 Behold, we go up to Jerusalem; -and the Son of man shall be betrayed unto the chief priests and unto -the scribes, and they shall condemn him to death, 20:19 And shall -deliver him to the Gentiles to mock, and to scourge, and to crucify -him: and the third day he shall rise again. - -20:20 Then came to him the mother of Zebedees children with her sons, -worshipping him, and desiring a certain thing of him. - -20:21 And he said unto her, What wilt thou? She saith unto him, Grant -that these my two sons may sit, the one on thy right hand, and the -other on the left, in thy kingdom. - -20:22 But Jesus answered and said, Ye know not what ye ask. Are ye -able to drink of the cup that I shall drink of, and to be baptized -with the baptism that I am baptized with? They say unto him, We are -able. - -20:23 And he saith unto them, Ye shall drink indeed of my cup, and be -baptized with the baptism that I am baptized with: but to sit on my -right hand, and on my left, is not mine to give, but it shall be given -to them for whom it is prepared of my Father. - -20:24 And when the ten heard it, they were moved with indignation -against the two brethren. - -20:25 But Jesus called them unto him, and said, Ye know that the -princes of the Gentiles exercise dominion over them, and they that are -great exercise authority upon them. - -20:26 But it shall not be so among you: but whosoever will be great -among you, let him be your minister; 20:27 And whosoever will be chief -among you, let him be your servant: 20:28 Even as the Son of man came -not to be ministered unto, but to minister, and to give his life a -ransom for many. - -20:29 And as they departed from Jericho, a great multitude followed -him. - -20:30 And, behold, two blind men sitting by the way side, when they -heard that Jesus passed by, cried out, saying, Have mercy on us, O -Lord, thou son of David. - -20:31 And the multitude rebuked them, because they should hold their -peace: but they cried the more, saying, Have mercy on us, O Lord, thou -son of David. - -20:32 And Jesus stood still, and called them, and said, What will ye -that I shall do unto you? 20:33 They say unto him, Lord, that our -eyes may be opened. - -20:34 So Jesus had compassion on them, and touched their eyes: and -immediately their eyes received sight, and they followed him. - -21:1 And when they drew nigh unto Jerusalem, and were come to -Bethphage, unto the mount of Olives, then sent Jesus two disciples, -21:2 Saying unto them, Go into the village over against you, and -straightway ye shall find an ass tied, and a colt with her: loose -them, and bring them unto me. - -21:3 And if any man say ought unto you, ye shall say, The Lord hath -need of them; and straightway he will send them. - -21:4 All this was done, that it might be fulfilled which was spoken by -the prophet, saying, 21:5 Tell ye the daughter of Sion, Behold, thy -King cometh unto thee, meek, and sitting upon an ass, and a colt the -foal of an ass. - -21:6 And the disciples went, and did as Jesus commanded them, 21:7 And -brought the ass, and the colt, and put on them their clothes, and they -set him thereon. - -21:8 And a very great multitude spread their garments in the way; -others cut down branches from the trees, and strawed them in the way. - -21:9 And the multitudes that went before, and that followed, cried, -saying, Hosanna to the son of David: Blessed is he that cometh in the -name of the Lord; Hosanna in the highest. - -21:10 And when he was come into Jerusalem, all the city was moved, -saying, Who is this? 21:11 And the multitude said, This is Jesus the -prophet of Nazareth of Galilee. - -21:12 And Jesus went into the temple of God, and cast out all them -that sold and bought in the temple, and overthrew the tables of the -moneychangers, and the seats of them that sold doves, 21:13 And said -unto them, It is written, My house shall be called the house of -prayer; but ye have made it a den of thieves. - -21:14 And the blind and the lame came to him in the temple; and he -healed them. - -21:15 And when the chief priests and scribes saw the wonderful things -that he did, and the children crying in the temple, and saying, -Hosanna to the son of David; they were sore displeased, 21:16 And said -unto him, Hearest thou what these say? And Jesus saith unto them, Yea; -have ye never read, Out of the mouth of babes and sucklings thou hast -perfected praise? 21:17 And he left them, and went out of the city -into Bethany; and he lodged there. - -21:18 Now in the morning as he returned into the city, he hungered. - -21:19 And when he saw a fig tree in the way, he came to it, and found -nothing thereon, but leaves only, and said unto it, Let no fruit grow -on thee henceforward for ever. And presently the fig tree withered -away. - -21:20 And when the disciples saw it, they marvelled, saying, How soon -is the fig tree withered away! 21:21 Jesus answered and said unto -them, Verily I say unto you, If ye have faith, and doubt not, ye shall -not only do this which is done to the fig tree, but also if ye shall -say unto this mountain, Be thou removed, and be thou cast into the -sea; it shall be done. - -21:22 And all things, whatsoever ye shall ask in prayer, believing, ye -shall receive. - -21:23 And when he was come into the temple, the chief priests and the -elders of the people came unto him as he was teaching, and said, By -what authority doest thou these things? and who gave thee this -authority? 21:24 And Jesus answered and said unto them, I also will -ask you one thing, which if ye tell me, I in like wise will tell you -by what authority I do these things. - -21:25 The baptism of John, whence was it? from heaven, or of men? And -they reasoned with themselves, saying, If we shall say, From heaven; -he will say unto us, Why did ye not then believe him? 21:26 But if we -shall say, Of men; we fear the people; for all hold John as a prophet. - -21:27 And they answered Jesus, and said, We cannot tell. And he said -unto them, Neither tell I you by what authority I do these things. - -21:28 But what think ye? A certain man had two sons; and he came to -the first, and said, Son, go work to day in my vineyard. - -21:29 He answered and said, I will not: but afterward he repented, and -went. - -21:30 And he came to the second, and said likewise. And he answered -and said, I go, sir: and went not. - -21:31 Whether of them twain did the will of his father? They say unto -him, The first. Jesus saith unto them, Verily I say unto you, That the -publicans and the harlots go into the kingdom of God before you. - -21:32 For John came unto you in the way of righteousness, and ye -believed him not: but the publicans and the harlots believed him: and -ye, when ye had seen it, repented not afterward, that ye might believe -him. - -21:33 Hear another parable: There was a certain householder, which -planted a vineyard, and hedged it round about, and digged a winepress -in it, and built a tower, and let it out to husbandmen, and went into -a far country: 21:34 And when the time of the fruit drew near, he sent -his servants to the husbandmen, that they might receive the fruits of -it. - -21:35 And the husbandmen took his servants, and beat one, and killed -another, and stoned another. - -21:36 Again, he sent other servants more than the first: and they did -unto them likewise. - -21:37 But last of all he sent unto them his son, saying, They will -reverence my son. - -21:38 But when the husbandmen saw the son, they said among themselves, -This is the heir; come, let us kill him, and let us seize on his -inheritance. - -21:39 And they caught him, and cast him out of the vineyard, and slew -him. - -21:40 When the lord therefore of the vineyard cometh, what will he do -unto those husbandmen? 21:41 They say unto him, He will miserably -destroy those wicked men, and will let out his vineyard unto other -husbandmen, which shall render him the fruits in their seasons. - -21:42 Jesus saith unto them, Did ye never read in the scriptures, The -stone which the builders rejected, the same is become the head of the -corner: this is the Lord's doing, and it is marvellous in our eyes? -21:43 Therefore say I unto you, The kingdom of God shall be taken from -you, and given to a nation bringing forth the fruits thereof. - -21:44 And whosoever shall fall on this stone shall be broken: but on -whomsoever it shall fall, it will grind him to powder. - -21:45 And when the chief priests and Pharisees had heard his parables, -they perceived that he spake of them. - -21:46 But when they sought to lay hands on him, they feared the -multitude, because they took him for a prophet. - -22:1 And Jesus answered and spake unto them again by parables, and -said, 22:2 The kingdom of heaven is like unto a certain king, which -made a marriage for his son, 22:3 And sent forth his servants to call -them that were bidden to the wedding: and they would not come. - -22:4 Again, he sent forth other servants, saying, Tell them which are -bidden, Behold, I have prepared my dinner: my oxen and my fatlings are -killed, and all things are ready: come unto the marriage. - -22:5 But they made light of it, and went their ways, one to his farm, -another to his merchandise: 22:6 And the remnant took his servants, -and entreated them spitefully, and slew them. - -22:7 But when the king heard thereof, he was wroth: and he sent forth -his armies, and destroyed those murderers, and burned up their city. - -22:8 Then saith he to his servants, The wedding is ready, but they -which were bidden were not worthy. - -22:9 Go ye therefore into the highways, and as many as ye shall find, -bid to the marriage. - -22:10 So those servants went out into the highways, and gathered -together all as many as they found, both bad and good: and the wedding -was furnished with guests. - -22:11 And when the king came in to see the guests, he saw there a man -which had not on a wedding garment: 22:12 And he saith unto him, -Friend, how camest thou in hither not having a wedding garment? And he -was speechless. - -22:13 Then said the king to the servants, Bind him hand and foot, and -take him away, and cast him into outer darkness, there shall be -weeping and gnashing of teeth. - -22:14 For many are called, but few are chosen. - -22:15 Then went the Pharisees, and took counsel how they might -entangle him in his talk. - -22:16 And they sent out unto him their disciples with the Herodians, -saying, Master, we know that thou art true, and teachest the way of -God in truth, neither carest thou for any man: for thou regardest not -the person of men. - -22:17 Tell us therefore, What thinkest thou? Is it lawful to give -tribute unto Caesar, or not? 22:18 But Jesus perceived their -wickedness, and said, Why tempt ye me, ye hypocrites? 22:19 Shew me -the tribute money. And they brought unto him a penny. - -22:20 And he saith unto them, Whose is this image and superscription? -22:21 They say unto him, Caesar's. Then saith he unto them, Render -therefore unto Caesar the things which are Caesar's; and unto God the -things that are God's. - -22:22 When they had heard these words, they marvelled, and left him, -and went their way. - -22:23 The same day came to him the Sadducees, which say that there is -no resurrection, and asked him, 22:24 Saying, Master, Moses said, If a -man die, having no children, his brother shall marry his wife, and -raise up seed unto his brother. - -22:25 Now there were with us seven brethren: and the first, when he -had married a wife, deceased, and, having no issue, left his wife unto -his brother: 22:26 Likewise the second also, and the third, unto the -seventh. - -22:27 And last of all the woman died also. - -22:28 Therefore in the resurrection whose wife shall she be of the -seven? for they all had her. - -22:29 Jesus answered and said unto them, Ye do err, not knowing the -scriptures, nor the power of God. - -22:30 For in the resurrection they neither marry, nor are given in -marriage, but are as the angels of God in heaven. - -22:31 But as touching the resurrection of the dead, have ye not read -that which was spoken unto you by God, saying, 22:32 I am the God of -Abraham, and the God of Isaac, and the God of Jacob? God is not the -God of the dead, but of the living. - -22:33 And when the multitude heard this, they were astonished at his -doctrine. - -22:34 But when the Pharisees had heard that he had put the Sadducees -to silence, they were gathered together. - -22:35 Then one of them, which was a lawyer, asked him a question, -tempting him, and saying, 22:36 Master, which is the great commandment -in the law? 22:37 Jesus said unto him, Thou shalt love the Lord thy -God with all thy heart, and with all thy soul, and with all thy mind. - -22:38 This is the first and great commandment. - -22:39 And the second is like unto it, Thou shalt love thy neighbour as -thyself. - -22:40 On these two commandments hang all the law and the prophets. - -22:41 While the Pharisees were gathered together, Jesus asked them, -22:42 Saying, What think ye of Christ? whose son is he? They say unto -him, The son of David. - -22:43 He saith unto them, How then doth David in spirit call him Lord, -saying, 22:44 The LORD said unto my Lord, Sit thou on my right hand, -till I make thine enemies thy footstool? 22:45 If David then call him -Lord, how is he his son? 22:46 And no man was able to answer him a -word, neither durst any man from that day forth ask him any more -questions. - -23:1 Then spake Jesus to the multitude, and to his disciples, 23:2 -Saying The scribes and the Pharisees sit in Moses' seat: 23:3 All -therefore whatsoever they bid you observe, that observe and do; but do -not ye after their works: for they say, and do not. - -23:4 For they bind heavy burdens and grievous to be borne, and lay -them on men's shoulders; but they themselves will not move them with -one of their fingers. - -23:5 But all their works they do for to be seen of men: they make -broad their phylacteries, and enlarge the borders of their garments, -23:6 And love the uppermost rooms at feasts, and the chief seats in -the synagogues, 23:7 And greetings in the markets, and to be called of -men, Rabbi, Rabbi. - -23:8 But be not ye called Rabbi: for one is your Master, even Christ; -and all ye are brethren. - -23:9 And call no man your father upon the earth: for one is your -Father, which is in heaven. - -23:10 Neither be ye called masters: for one is your Master, even -Christ. - -23:11 But he that is greatest among you shall be your servant. - -23:12 And whosoever shall exalt himself shall be abased; and he that -shall humble himself shall be exalted. - -23:13 But woe unto you, scribes and Pharisees, hypocrites! for ye shut -up the kingdom of heaven against men: for ye neither go in yourselves, -neither suffer ye them that are entering to go in. - -23:14 Woe unto you, scribes and Pharisees, hypocrites! for ye devour -widows' houses, and for a pretence make long prayer: therefore ye -shall receive the greater damnation. - -23:15 Woe unto you, scribes and Pharisees, hypocrites! for ye compass -sea and land to make one proselyte, and when he is made, ye make him -twofold more the child of hell than yourselves. - -23:16 Woe unto you, ye blind guides, which say, Whosoever shall swear -by the temple, it is nothing; but whosoever shall swear by the gold of -the temple, he is a debtor! 23:17 Ye fools and blind: for whether is -greater, the gold, or the temple that sanctifieth the gold? 23:18 -And, Whosoever shall swear by the altar, it is nothing; but whosoever -sweareth by the gift that is upon it, he is guilty. - -23:19 Ye fools and blind: for whether is greater, the gift, or the -altar that sanctifieth the gift? 23:20 Whoso therefore shall swear by -the altar, sweareth by it, and by all things thereon. - -23:21 And whoso shall swear by the temple, sweareth by it, and by him -that dwelleth therein. - -23:22 And he that shall swear by heaven, sweareth by the throne of -God, and by him that sitteth thereon. - -23:23 Woe unto you, scribes and Pharisees, hypocrites! for ye pay -tithe of mint and anise and cummin, and have omitted the weightier -matters of the law, judgment, mercy, and faith: these ought ye to have -done, and not to leave the other undone. - -23:24 Ye blind guides, which strain at a gnat, and swallow a camel. - -23:25 Woe unto you, scribes and Pharisees, hypocrites! for ye make -clean the outside of the cup and of the platter, but within they are -full of extortion and excess. - -23:26 Thou blind Pharisee, cleanse first that which is within the cup -and platter, that the outside of them may be clean also. - -23:27 Woe unto you, scribes and Pharisees, hypocrites! for ye are like -unto whited sepulchres, which indeed appear beautiful outward, but are -within full of dead men's bones, and of all uncleanness. - -23:28 Even so ye also outwardly appear righteous unto men, but within -ye are full of hypocrisy and iniquity. - -23:29 Woe unto you, scribes and Pharisees, hypocrites! because ye -build the tombs of the prophets, and garnish the sepulchres of the -righteous, 23:30 And say, If we had been in the days of our fathers, -we would not have been partakers with them in the blood of the -prophets. - -23:31 Wherefore ye be witnesses unto yourselves, that ye are the -children of them which killed the prophets. - -23:32 Fill ye up then the measure of your fathers. - -23:33 Ye serpents, ye generation of vipers, how can ye escape the -damnation of hell? 23:34 Wherefore, behold, I send unto you prophets, -and wise men, and scribes: and some of them ye shall kill and crucify; -and some of them shall ye scourge in your synagogues, and persecute -them from city to city: 23:35 That upon you may come all the righteous -blood shed upon the earth, from the blood of righteous Abel unto the -blood of Zacharias son of Barachias, whom ye slew between the temple -and the altar. - -23:36 Verily I say unto you, All these things shall come upon this -generation. - -23:37 O Jerusalem, Jerusalem, thou that killest the prophets, and -stonest them which are sent unto thee, how often would I have gathered -thy children together, even as a hen gathereth her chickens under her -wings, and ye would not! 23:38 Behold, your house is left unto you -desolate. - -23:39 For I say unto you, Ye shall not see me henceforth, till ye -shall say, Blessed is he that cometh in the name of the Lord. - -24:1 And Jesus went out, and departed from the temple: and his -disciples came to him for to shew him the buildings of the temple. - -24:2 And Jesus said unto them, See ye not all these things? verily I -say unto you, There shall not be left here one stone upon another, -that shall not be thrown down. - -24:3 And as he sat upon the mount of Olives, the disciples came unto -him privately, saying, Tell us, when shall these things be? and what -shall be the sign of thy coming, and of the end of the world? 24:4 -And Jesus answered and said unto them, Take heed that no man deceive -you. - -24:5 For many shall come in my name, saying, I am Christ; and shall -deceive many. - -24:6 And ye shall hear of wars and rumours of wars: see that ye be not -troubled: for all these things must come to pass, but the end is not -yet. - -24:7 For nation shall rise against nation, and kingdom against -kingdom: and there shall be famines, and pestilences, and earthquakes, -in divers places. - -24:8 All these are the beginning of sorrows. - -24:9 Then shall they deliver you up to be afflicted, and shall kill -you: and ye shall be hated of all nations for my name's sake. - -24:10 And then shall many be offended, and shall betray one another, -and shall hate one another. - -24:11 And many false prophets shall rise, and shall deceive many. - -24:12 And because iniquity shall abound, the love of many shall wax -cold. - -24:13 But he that shall endure unto the end, the same shall be saved. - -24:14 And this gospel of the kingdom shall be preached in all the -world for a witness unto all nations; and then shall the end come. - -24:15 When ye therefore shall see the abomination of desolation, -spoken of by Daniel the prophet, stand in the holy place, (whoso -readeth, let him understand:) 24:16 Then let them which be in Judaea -flee into the mountains: 24:17 Let him which is on the housetop not -come down to take any thing out of his house: 24:18 Neither let him -which is in the field return back to take his clothes. - -24:19 And woe unto them that are with child, and to them that give -suck in those days! 24:20 But pray ye that your flight be not in the -winter, neither on the sabbath day: 24:21 For then shall be great -tribulation, such as was not since the beginning of the world to this -time, no, nor ever shall be. - -24:22 And except those days should be shortened, there should no flesh -be saved: but for the elect's sake those days shall be shortened. - -24:23 Then if any man shall say unto you, Lo, here is Christ, or -there; believe it not. - -24:24 For there shall arise false Christs, and false prophets, and -shall shew great signs and wonders; insomuch that, if it were -possible, they shall deceive the very elect. - -24:25 Behold, I have told you before. - -24:26 Wherefore if they shall say unto you, Behold, he is in the -desert; go not forth: behold, he is in the secret chambers; believe it -not. - -24:27 For as the lightning cometh out of the east, and shineth even -unto the west; so shall also the coming of the Son of man be. - -24:28 For wheresoever the carcase is, there will the eagles be -gathered together. - -24:29 Immediately after the tribulation of those days shall the sun be -darkened, and the moon shall not give her light, and the stars shall -fall from heaven, and the powers of the heavens shall be shaken: 24:30 -And then shall appear the sign of the Son of man in heaven: and then -shall all the tribes of the earth mourn, and they shall see the Son of -man coming in the clouds of heaven with power and great glory. - -24:31 And he shall send his angels with a great sound of a trumpet, -and they shall gather together his elect from the four winds, from one -end of heaven to the other. - -24:32 Now learn a parable of the fig tree; When his branch is yet -tender, and putteth forth leaves, ye know that summer is nigh: 24:33 -So likewise ye, when ye shall see all these things, know that it is -near, even at the doors. - -24:34 Verily I say unto you, This generation shall not pass, till all -these things be fulfilled. - -24:35 Heaven and earth shall pass away, but my words shall not pass -away. - -24:36 But of that day and hour knoweth no man, no, not the angels of -heaven, but my Father only. - -24:37 But as the days of Noe were, so shall also the coming of the Son -of man be. - -24:38 For as in the days that were before the flood they were eating -and drinking, marrying and giving in marriage, until the day that Noe -entered into the ark, 24:39 And knew not until the flood came, and -took them all away; so shall also the coming of the Son of man be. - -24:40 Then shall two be in the field; the one shall be taken, and the -other left. - -24:41 Two women shall be grinding at the mill; the one shall be taken, -and the other left. - -24:42 Watch therefore: for ye know not what hour your Lord doth come. - -24:43 But know this, that if the goodman of the house had known in -what watch the thief would come, he would have watched, and would not -have suffered his house to be broken up. - -24:44 Therefore be ye also ready: for in such an hour as ye think not -the Son of man cometh. - -24:45 Who then is a faithful and wise servant, whom his lord hath made -ruler over his household, to give them meat in due season? 24:46 -Blessed is that servant, whom his lord when he cometh shall find so -doing. - -24:47 Verily I say unto you, That he shall make him ruler over all his -goods. - -24:48 But and if that evil servant shall say in his heart, My lord -delayeth his coming; 24:49 And shall begin to smite his -fellowservants, and to eat and drink with the drunken; 24:50 The lord -of that servant shall come in a day when he looketh not for him, and -in an hour that he is not aware of, 24:51 And shall cut him asunder, -and appoint him his portion with the hypocrites: there shall be -weeping and gnashing of teeth. - -25:1 Then shall the kingdom of heaven be likened unto ten virgins, -which took their lamps, and went forth to meet the bridegroom. - -25:2 And five of them were wise, and five were foolish. - -25:3 They that were foolish took their lamps, and took no oil with -them: 25:4 But the wise took oil in their vessels with their lamps. - -25:5 While the bridegroom tarried, they all slumbered and slept. - -25:6 And at midnight there was a cry made, Behold, the bridegroom -cometh; go ye out to meet him. - -25:7 Then all those virgins arose, and trimmed their lamps. - -25:8 And the foolish said unto the wise, Give us of your oil; for our -lamps are gone out. - -25:9 But the wise answered, saying, Not so; lest there be not enough -for us and you: but go ye rather to them that sell, and buy for -yourselves. - -25:10 And while they went to buy, the bridegroom came; and they that -were ready went in with him to the marriage: and the door was shut. - -25:11 Afterward came also the other virgins, saying, Lord, Lord, open -to us. - -25:12 But he answered and said, Verily I say unto you, I know you not. - -25:13 Watch therefore, for ye know neither the day nor the hour -wherein the Son of man cometh. - -25:14 For the kingdom of heaven is as a man travelling into a far -country, who called his own servants, and delivered unto them his -goods. - -25:15 And unto one he gave five talents, to another two, and to -another one; to every man according to his several ability; and -straightway took his journey. - -25:16 Then he that had received the five talents went and traded with -the same, and made them other five talents. - -25:17 And likewise he that had received two, he also gained other two. - -25:18 But he that had received one went and digged in the earth, and -hid his lord's money. - -25:19 After a long time the lord of those servants cometh, and -reckoneth with them. - -25:20 And so he that had received five talents came and brought other -five talents, saying, Lord, thou deliveredst unto me five talents: -behold, I have gained beside them five talents more. - -25:21 His lord said unto him, Well done, thou good and faithful -servant: thou hast been faithful over a few things, I will make thee -ruler over many things: enter thou into the joy of thy lord. - -25:22 He also that had received two talents came and said, Lord, thou -deliveredst unto me two talents: behold, I have gained two other -talents beside them. - -25:23 His lord said unto him, Well done, good and faithful servant; -thou hast been faithful over a few things, I will make thee ruler over -many things: enter thou into the joy of thy lord. - -25:24 Then he which had received the one talent came and said, Lord, I -knew thee that thou art an hard man, reaping where thou hast not sown, -and gathering where thou hast not strawed: 25:25 And I was afraid, and -went and hid thy talent in the earth: lo, there thou hast that is -thine. - -25:26 His lord answered and said unto him, Thou wicked and slothful -servant, thou knewest that I reap where I sowed not, and gather where -I have not strawed: 25:27 Thou oughtest therefore to have put my money -to the exchangers, and then at my coming I should have received mine -own with usury. - -25:28 Take therefore the talent from him, and give it unto him which -hath ten talents. - -25:29 For unto every one that hath shall be given, and he shall have -abundance: but from him that hath not shall be taken away even that -which he hath. - -25:30 And cast ye the unprofitable servant into outer darkness: there -shall be weeping and gnashing of teeth. - -25:31 When the Son of man shall come in his glory, and all the holy -angels with him, then shall he sit upon the throne of his glory: 25:32 -And before him shall be gathered all nations: and he shall separate -them one from another, as a shepherd divideth his sheep from the -goats: 25:33 And he shall set the sheep on his right hand, but the -goats on the left. - -25:34 Then shall the King say unto them on his right hand, Come, ye -blessed of my Father, inherit the kingdom prepared for you from the -foundation of the world: 25:35 For I was an hungred, and ye gave me -meat: I was thirsty, and ye gave me drink: I was a stranger, and ye -took me in: 25:36 Naked, and ye clothed me: I was sick, and ye visited -me: I was in prison, and ye came unto me. - -25:37 Then shall the righteous answer him, saying, Lord, when saw we -thee an hungred, and fed thee? or thirsty, and gave thee drink? 25:38 -When saw we thee a stranger, and took thee in? or naked, and clothed -thee? 25:39 Or when saw we thee sick, or in prison, and came unto -thee? 25:40 And the King shall answer and say unto them, Verily I say -unto you, Inasmuch as ye have done it unto one of the least of these -my brethren, ye have done it unto me. - -25:41 Then shall he say also unto them on the left hand, Depart from -me, ye cursed, into everlasting fire, prepared for the devil and his -angels: 25:42 For I was an hungred, and ye gave me no meat: I was -thirsty, and ye gave me no drink: 25:43 I was a stranger, and ye took -me not in: naked, and ye clothed me not: sick, and in prison, and ye -visited me not. - -25:44 Then shall they also answer him, saying, Lord, when saw we thee -an hungred, or athirst, or a stranger, or naked, or sick, or in -prison, and did not minister unto thee? 25:45 Then shall he answer -them, saying, Verily I say unto you, Inasmuch as ye did it not to one -of the least of these, ye did it not to me. - -25:46 And these shall go away into everlasting punishment: but the -righteous into life eternal. - -26:1 And it came to pass, when Jesus had finished all these sayings, -he said unto his disciples, 26:2 Ye know that after two days is the -feast of the passover, and the Son of man is betrayed to be crucified. - -26:3 Then assembled together the chief priests, and the scribes, and -the elders of the people, unto the palace of the high priest, who was -called Caiaphas, 26:4 And consulted that they might take Jesus by -subtilty, and kill him. - -26:5 But they said, Not on the feast day, lest there be an uproar -among the people. - -26:6 Now when Jesus was in Bethany, in the house of Simon the leper, -26:7 There came unto him a woman having an alabaster box of very -precious ointment, and poured it on his head, as he sat at meat. - -26:8 But when his disciples saw it, they had indignation, saying, To -what purpose is this waste? 26:9 For this ointment might have been -sold for much, and given to the poor. - -26:10 When Jesus understood it, he said unto them, Why trouble ye the -woman? for she hath wrought a good work upon me. - -26:11 For ye have the poor always with you; but me ye have not always. - -26:12 For in that she hath poured this ointment on my body, she did it -for my burial. - -26:13 Verily I say unto you, Wheresoever this gospel shall be preached -in the whole world, there shall also this, that this woman hath done, -be told for a memorial of her. - -26:14 Then one of the twelve, called Judas Iscariot, went unto the -chief priests, 26:15 And said unto them, What will ye give me, and I -will deliver him unto you? And they covenanted with him for thirty -pieces of silver. - -26:16 And from that time he sought opportunity to betray him. - -26:17 Now the first day of the feast of unleavened bread the disciples -came to Jesus, saying unto him, Where wilt thou that we prepare for -thee to eat the passover? 26:18 And he said, Go into the city to such -a man, and say unto him, The Master saith, My time is at hand; I will -keep the passover at thy house with my disciples. - -26:19 And the disciples did as Jesus had appointed them; and they made -ready the passover. - -26:20 Now when the even was come, he sat down with the twelve. - -26:21 And as they did eat, he said, Verily I say unto you, that one of -you shall betray me. - -26:22 And they were exceeding sorrowful, and began every one of them -to say unto him, Lord, is it I? 26:23 And he answered and said, He -that dippeth his hand with me in the dish, the same shall betray me. - -26:24 The Son of man goeth as it is written of him: but woe unto that -man by whom the Son of man is betrayed! it had been good for that man -if he had not been born. - -26:25 Then Judas, which betrayed him, answered and said, Master, is it -I? He said unto him, Thou hast said. - -26:26 And as they were eating, Jesus took bread, and blessed it, and -brake it, and gave it to the disciples, and said, Take, eat; this is -my body. - -26:27 And he took the cup, and gave thanks, and gave it to them, -saying, Drink ye all of it; 26:28 For this is my blood of the new -testament, which is shed for many for the remission of sins. - -26:29 But I say unto you, I will not drink henceforth of this fruit of -the vine, until that day when I drink it new with you in my Father's -kingdom. - -26:30 And when they had sung an hymn, they went out into the mount of -Olives. - -26:31 Then saith Jesus unto them, All ye shall be offended because of -me this night: for it is written, I will smite the shepherd, and the -sheep of the flock shall be scattered abroad. - -26:32 But after I am risen again, I will go before you into Galilee. - -26:33 Peter answered and said unto him, Though all men shall be -offended because of thee, yet will I never be offended. - -26:34 Jesus said unto him, Verily I say unto thee, That this night, -before the cock crow, thou shalt deny me thrice. - -26:35 Peter said unto him, Though I should die with thee, yet will I -not deny thee. Likewise also said all the disciples. - -26:36 Then cometh Jesus with them unto a place called Gethsemane, and -saith unto the disciples, Sit ye here, while I go and pray yonder. - -26:37 And he took with him Peter and the two sons of Zebedee, and -began to be sorrowful and very heavy. - -26:38 Then saith he unto them, My soul is exceeding sorrowful, even -unto death: tarry ye here, and watch with me. - -26:39 And he went a little farther, and fell on his face, and prayed, -saying, O my Father, if it be possible, let this cup pass from me: -nevertheless not as I will, but as thou wilt. - -26:40 And he cometh unto the disciples, and findeth them asleep, and -saith unto Peter, What, could ye not watch with me one hour? 26:41 -Watch and pray, that ye enter not into temptation: the spirit indeed -is willing, but the flesh is weak. - -26:42 He went away again the second time, and prayed, saying, O my -Father, if this cup may not pass away from me, except I drink it, thy -will be done. - -26:43 And he came and found them asleep again: for their eyes were -heavy. - -26:44 And he left them, and went away again, and prayed the third -time, saying the same words. - -26:45 Then cometh he to his disciples, and saith unto them, Sleep on -now, and take your rest: behold, the hour is at hand, and the Son of -man is betrayed into the hands of sinners. - -26:46 Rise, let us be going: behold, he is at hand that doth betray -me. - -26:47 And while he yet spake, lo, Judas, one of the twelve, came, and -with him a great multitude with swords and staves, from the chief -priests and elders of the people. - -26:48 Now he that betrayed him gave them a sign, saying, Whomsoever I -shall kiss, that same is he: hold him fast. - -26:49 And forthwith he came to Jesus, and said, Hail, master; and -kissed him. - -26:50 And Jesus said unto him, Friend, wherefore art thou come? Then -came they, and laid hands on Jesus and took him. - -26:51 And, behold, one of them which were with Jesus stretched out his -hand, and drew his sword, and struck a servant of the high priest's, -and smote off his ear. - -26:52 Then said Jesus unto him, Put up again thy sword into his place: -for all they that take the sword shall perish with the sword. - -26:53 Thinkest thou that I cannot now pray to my Father, and he shall -presently give me more than twelve legions of angels? 26:54 But how -then shall the scriptures be fulfilled, that thus it must be? 26:55 -In that same hour said Jesus to the multitudes, Are ye come out as -against a thief with swords and staves for to take me? I sat daily -with you teaching in the temple, and ye laid no hold on me. - -26:56 But all this was done, that the scriptures of the prophets might -be fulfilled. Then all the disciples forsook him, and fled. - -26:57 And they that had laid hold on Jesus led him away to Caiaphas -the high priest, where the scribes and the elders were assembled. - -26:58 But Peter followed him afar off unto the high priest's palace, -and went in, and sat with the servants, to see the end. - -26:59 Now the chief priests, and elders, and all the council, sought -false witness against Jesus, to put him to death; 26:60 But found -none: yea, though many false witnesses came, yet found they none. At -the last came two false witnesses, 26:61 And said, This fellow said, I -am able to destroy the temple of God, and to build it in three days. - -26:62 And the high priest arose, and said unto him, Answerest thou -nothing? what is it which these witness against thee? 26:63 But Jesus -held his peace, And the high priest answered and said unto him, I -adjure thee by the living God, that thou tell us whether thou be the -Christ, the Son of God. - -26:64 Jesus saith unto him, Thou hast said: nevertheless I say unto -you, Hereafter shall ye see the Son of man sitting on the right hand -of power, and coming in the clouds of heaven. - -26:65 Then the high priest rent his clothes, saying, He hath spoken -blasphemy; what further need have we of witnesses? behold, now ye have -heard his blasphemy. - -26:66 What think ye? They answered and said, He is guilty of death. - -26:67 Then did they spit in his face, and buffeted him; and others -smote him with the palms of their hands, 26:68 Saying, Prophesy unto -us, thou Christ, Who is he that smote thee? 26:69 Now Peter sat -without in the palace: and a damsel came unto him, saying, Thou also -wast with Jesus of Galilee. - -26:70 But he denied before them all, saying, I know not what thou -sayest. - -26:71 And when he was gone out into the porch, another maid saw him, -and said unto them that were there, This fellow was also with Jesus of -Nazareth. - -26:72 And again he denied with an oath, I do not know the man. - -26:73 And after a while came unto him they that stood by, and said to -Peter, Surely thou also art one of them; for thy speech bewrayeth -thee. - -26:74 Then began he to curse and to swear, saying, I know not the man. -And immediately the cock crew. - -26:75 And Peter remembered the word of Jesus, which said unto him, -Before the cock crow, thou shalt deny me thrice. And he went out, and -wept bitterly. - -27:1 When the morning was come, all the chief priests and elders of -the people took counsel against Jesus to put him to death: 27:2 And -when they had bound him, they led him away, and delivered him to -Pontius Pilate the governor. - -27:3 Then Judas, which had betrayed him, when he saw that he was -condemned, repented himself, and brought again the thirty pieces of -silver to the chief priests and elders, 27:4 Saying, I have sinned in -that I have betrayed the innocent blood. And they said, What is that -to us? see thou to that. - -27:5 And he cast down the pieces of silver in the temple, and -departed, and went and hanged himself. - -27:6 And the chief priests took the silver pieces, and said, It is not -lawful for to put them into the treasury, because it is the price of -blood. - -27:7 And they took counsel, and bought with them the potter's field, -to bury strangers in. - -27:8 Wherefore that field was called, The field of blood, unto this -day. - -27:9 Then was fulfilled that which was spoken by Jeremy the prophet, -saying, And they took the thirty pieces of silver, the price of him -that was valued, whom they of the children of Israel did value; 27:10 -And gave them for the potter's field, as the Lord appointed me. - -27:11 And Jesus stood before the governor: and the governor asked him, -saying, Art thou the King of the Jews? And Jesus said unto him, Thou -sayest. - -27:12 And when he was accused of the chief priests and elders, he -answered nothing. - -27:13 Then said Pilate unto him, Hearest thou not how many things they -witness against thee? 27:14 And he answered him to never a word; -insomuch that the governor marvelled greatly. - -27:15 Now at that feast the governor was wont to release unto the -people a prisoner, whom they would. - -27:16 And they had then a notable prisoner, called Barabbas. - -27:17 Therefore when they were gathered together, Pilate said unto -them, Whom will ye that I release unto you? Barabbas, or Jesus which -is called Christ? 27:18 For he knew that for envy they had delivered -him. - -27:19 When he was set down on the judgment seat, his wife sent unto -him, saying, Have thou nothing to do with that just man: for I have -suffered many things this day in a dream because of him. - -27:20 But the chief priests and elders persuaded the multitude that -they should ask Barabbas, and destroy Jesus. - -27:21 The governor answered and said unto them, Whether of the twain -will ye that I release unto you? They said, Barabbas. - -27:22 Pilate saith unto them, What shall I do then with Jesus which is -called Christ? They all say unto him, Let him be crucified. - -27:23 And the governor said, Why, what evil hath he done? But they -cried out the more, saying, Let him be crucified. - -27:24 When Pilate saw that he could prevail nothing, but that rather a -tumult was made, he took water, and washed his hands before the -multitude, saying, I am innocent of the blood of this just person: see -ye to it. - -27:25 Then answered all the people, and said, His blood be on us, and -on our children. - -27:26 Then released he Barabbas unto them: and when he had scourged -Jesus, he delivered him to be crucified. - -27:27 Then the soldiers of the governor took Jesus into the common -hall, and gathered unto him the whole band of soldiers. - -27:28 And they stripped him, and put on him a scarlet robe. - -27:29 And when they had platted a crown of thorns, they put it upon -his head, and a reed in his right hand: and they bowed the knee before -him, and mocked him, saying, Hail, King of the Jews! 27:30 And they -spit upon him, and took the reed, and smote him on the head. - -27:31 And after that they had mocked him, they took the robe off from -him, and put his own raiment on him, and led him away to crucify him. - -27:32 And as they came out, they found a man of Cyrene, Simon by name: -him they compelled to bear his cross. - -27:33 And when they were come unto a place called Golgotha, that is to -say, a place of a skull, 27:34 They gave him vinegar to drink mingled -with gall: and when he had tasted thereof, he would not drink. - -27:35 And they crucified him, and parted his garments, casting lots: -that it might be fulfilled which was spoken by the prophet, They -parted my garments among them, and upon my vesture did they cast lots. - -27:36 And sitting down they watched him there; 27:37 And set up over -his head his accusation written, THIS IS JESUS THE KING OF THE JEWS. - -27:38 Then were there two thieves crucified with him, one on the right -hand, and another on the left. - -27:39 And they that passed by reviled him, wagging their heads, 27:40 -And saying, Thou that destroyest the temple, and buildest it in three -days, save thyself. If thou be the Son of God, come down from the -cross. - -27:41 Likewise also the chief priests mocking him, with the scribes -and elders, said, 27:42 He saved others; himself he cannot save. If he -be the King of Israel, let him now come down from the cross, and we -will believe him. - -27:43 He trusted in God; let him deliver him now, if he will have him: -for he said, I am the Son of God. - -27:44 The thieves also, which were crucified with him, cast the same -in his teeth. - -27:45 Now from the sixth hour there was darkness over all the land -unto the ninth hour. - -27:46 And about the ninth hour Jesus cried with a loud voice, saying, -Eli, Eli, lama sabachthani? that is to say, My God, my God, why hast -thou forsaken me? 27:47 Some of them that stood there, when they -heard that, said, This man calleth for Elias. - -27:48 And straightway one of them ran, and took a spunge, and filled -it with vinegar, and put it on a reed, and gave him to drink. - -27:49 The rest said, Let be, let us see whether Elias will come to -save him. - -27:50 Jesus, when he had cried again with a loud voice, yielded up the -ghost. - -27:51 And, behold, the veil of the temple was rent in twain from the -top to the bottom; and the earth did quake, and the rocks rent; 27:52 -And the graves were opened; and many bodies of the saints which slept -arose, 27:53 And came out of the graves after his resurrection, and -went into the holy city, and appeared unto many. - -27:54 Now when the centurion, and they that were with him, watching -Jesus, saw the earthquake, and those things that were done, they -feared greatly, saying, Truly this was the Son of God. - -27:55 And many women were there beholding afar off, which followed -Jesus from Galilee, ministering unto him: 27:56 Among which was Mary -Magdalene, and Mary the mother of James and Joses, and the mother of -Zebedees children. - -27:57 When the even was come, there came a rich man of Arimathaea, -named Joseph, who also himself was Jesus' disciple: 27:58 He went to -Pilate, and begged the body of Jesus. Then Pilate commanded the body -to be delivered. - -27:59 And when Joseph had taken the body, he wrapped it in a clean -linen cloth, 27:60 And laid it in his own new tomb, which he had hewn -out in the rock: and he rolled a great stone to the door of the -sepulchre, and departed. - -27:61 And there was Mary Magdalene, and the other Mary, sitting over -against the sepulchre. - -27:62 Now the next day, that followed the day of the preparation, the -chief priests and Pharisees came together unto Pilate, 27:63 Saying, -Sir, we remember that that deceiver said, while he was yet alive, -After three days I will rise again. - -27:64 Command therefore that the sepulchre be made sure until the -third day, lest his disciples come by night, and steal him away, and -say unto the people, He is risen from the dead: so the last error -shall be worse than the first. - -27:65 Pilate said unto them, Ye have a watch: go your way, make it as -sure as ye can. - -27:66 So they went, and made the sepulchre sure, sealing the stone, -and setting a watch. - -28:1 In the end of the sabbath, as it began to dawn toward the first -day of the week, came Mary Magdalene and the other Mary to see the -sepulchre. - -28:2 And, behold, there was a great earthquake: for the angel of the -Lord descended from heaven, and came and rolled back the stone from -the door, and sat upon it. - -28:3 His countenance was like lightning, and his raiment white as -snow: 28:4 And for fear of him the keepers did shake, and became as -dead men. - -28:5 And the angel answered and said unto the women, Fear not ye: for -I know that ye seek Jesus, which was crucified. - -28:6 He is not here: for he is risen, as he said. Come, see the place -where the Lord lay. - -28:7 And go quickly, and tell his disciples that he is risen from the -dead; and, behold, he goeth before you into Galilee; there shall ye -see him: lo, I have told you. - -28:8 And they departed quickly from the sepulchre with fear and great -joy; and did run to bring his disciples word. - -28:9 And as they went to tell his disciples, behold, Jesus met them, -saying, All hail. And they came and held him by the feet, and -worshipped him. - -28:10 Then said Jesus unto them, Be not afraid: go tell my brethren -that they go into Galilee, and there shall they see me. - -28:11 Now when they were going, behold, some of the watch came into -the city, and shewed unto the chief priests all the things that were -done. - -28:12 And when they were assembled with the elders, and had taken -counsel, they gave large money unto the soldiers, 28:13 Saying, Say -ye, His disciples came by night, and stole him away while we slept. - -28:14 And if this come to the governor's ears, we will persuade him, -and secure you. - -28:15 So they took the money, and did as they were taught: and this -saying is commonly reported among the Jews until this day. - -28:16 Then the eleven disciples went away into Galilee, into a -mountain where Jesus had appointed them. - -28:17 And when they saw him, they worshipped him: but some doubted. - -28:18 And Jesus came and spake unto them, saying, All power is given -unto me in heaven and in earth. - -28:19 Go ye therefore, and teach all nations, baptizing them in the -name of the Father, and of the Son, and of the Holy Ghost: 28:20 -Teaching them to observe all things whatsoever I have commanded you: -and, lo, I am with you alway, even unto the end of the world. Amen. - - - - -The Gospel According to Saint Mark - - -1:1 The beginning of the gospel of Jesus Christ, the Son of God; 1:2 -As it is written in the prophets, Behold, I send my messenger before -thy face, which shall prepare thy way before thee. - -1:3 The voice of one crying in the wilderness, Prepare ye the way of -the Lord, make his paths straight. - -1:4 John did baptize in the wilderness, and preach the baptism of -repentance for the remission of sins. - -1:5 And there went out unto him all the land of Judaea, and they of -Jerusalem, and were all baptized of him in the river of Jordan, -confessing their sins. - -1:6 And John was clothed with camel's hair, and with a girdle of a -skin about his loins; and he did eat locusts and wild honey; 1:7 And -preached, saying, There cometh one mightier than I after me, the -latchet of whose shoes I am not worthy to stoop down and unloose. - -1:8 I indeed have baptized you with water: but he shall baptize you -with the Holy Ghost. - -1:9 And it came to pass in those days, that Jesus came from Nazareth -of Galilee, and was baptized of John in Jordan. - -1:10 And straightway coming up out of the water, he saw the heavens -opened, and the Spirit like a dove descending upon him: 1:11 And there -came a voice from heaven, saying, Thou art my beloved Son, in whom I -am well pleased. - -1:12 And immediately the spirit driveth him into the wilderness. - -1:13 And he was there in the wilderness forty days, tempted of Satan; -and was with the wild beasts; and the angels ministered unto him. - -1:14 Now after that John was put in prison, Jesus came into Galilee, -preaching the gospel of the kingdom of God, 1:15 And saying, The time -is fulfilled, and the kingdom of God is at hand: repent ye, and -believe the gospel. - -1:16 Now as he walked by the sea of Galilee, he saw Simon and Andrew -his brother casting a net into the sea: for they were fishers. - -1:17 And Jesus said unto them, Come ye after me, and I will make you -to become fishers of men. - -1:18 And straightway they forsook their nets, and followed him. - -1:19 And when he had gone a little farther thence, he saw James the -son of Zebedee, and John his brother, who also were in the ship -mending their nets. - -1:20 And straightway he called them: and they left their father -Zebedee in the ship with the hired servants, and went after him. - -1:21 And they went into Capernaum; and straightway on the sabbath day -he entered into the synagogue, and taught. - -1:22 And they were astonished at his doctrine: for he taught them as -one that had authority, and not as the scribes. - -1:23 And there was in their synagogue a man with an unclean spirit; -and he cried out, 1:24 Saying, Let us alone; what have we to do with -thee, thou Jesus of Nazareth? art thou come to destroy us? I know thee -who thou art, the Holy One of God. - -1:25 And Jesus rebuked him, saying, Hold thy peace, and come out of -him. - -1:26 And when the unclean spirit had torn him, and cried with a loud -voice, he came out of him. - -1:27 And they were all amazed, insomuch that they questioned among -themselves, saying, What thing is this? what new doctrine is this? for -with authority commandeth he even the unclean spirits, and they do -obey him. - -1:28 And immediately his fame spread abroad throughout all the region -round about Galilee. - -1:29 And forthwith, when they were come out of the synagogue, they -entered into the house of Simon and Andrew, with James and John. - -1:30 But Simon's wife's mother lay sick of a fever, and anon they tell -him of her. - -1:31 And he came and took her by the hand, and lifted her up; and -immediately the fever left her, and she ministered unto them. - -1:32 And at even, when the sun did set, they brought unto him all that -were diseased, and them that were possessed with devils. - -1:33 And all the city was gathered together at the door. - -1:34 And he healed many that were sick of divers diseases, and cast -out many devils; and suffered not the devils to speak, because they -knew him. - -1:35 And in the morning, rising up a great while before day, he went -out, and departed into a solitary place, and there prayed. - -1:36 And Simon and they that were with him followed after him. - -1:37 And when they had found him, they said unto him, All men seek for -thee. - -1:38 And he said unto them, Let us go into the next towns, that I may -preach there also: for therefore came I forth. - -1:39 And he preached in their synagogues throughout all Galilee, and -cast out devils. - -1:40 And there came a leper to him, beseeching him, and kneeling down -to him, and saying unto him, If thou wilt, thou canst make me clean. - -1:41 And Jesus, moved with compassion, put forth his hand, and touched -him, and saith unto him, I will; be thou clean. - -1:42 And as soon as he had spoken, immediately the leprosy departed -from him, and he was cleansed. - -1:43 And he straitly charged him, and forthwith sent him away; 1:44 -And saith unto him, See thou say nothing to any man: but go thy way, -shew thyself to the priest, and offer for thy cleansing those things -which Moses commanded, for a testimony unto them. - -1:45 But he went out, and began to publish it much, and to blaze -abroad the matter, insomuch that Jesus could no more openly enter into -the city, but was without in desert places: and they came to him from -every quarter. - -2:1 And again he entered into Capernaum after some days; and it was -noised that he was in the house. - -2:2 And straightway many were gathered together, insomuch that there -was no room to receive them, no, not so much as about the door: and he -preached the word unto them. - -2:3 And they come unto him, bringing one sick of the palsy, which was -borne of four. - -2:4 And when they could not come nigh unto him for the press, they -uncovered the roof where he was: and when they had broken it up, they -let down the bed wherein the sick of the palsy lay. - -2:5 When Jesus saw their faith, he said unto the sick of the palsy, -Son, thy sins be forgiven thee. - -2:6 But there was certain of the scribes sitting there, and reasoning -in their hearts, 2:7 Why doth this man thus speak blasphemies? who can -forgive sins but God only? 2:8 And immediately when Jesus perceived -in his spirit that they so reasoned within themselves, he said unto -them, Why reason ye these things in your hearts? 2:9 Whether is it -easier to say to the sick of the palsy, Thy sins be forgiven thee; or -to say, Arise, and take up thy bed, and walk? 2:10 But that ye may -know that the Son of man hath power on earth to forgive sins, (he -saith to the sick of the palsy,) 2:11 I say unto thee, Arise, and take -up thy bed, and go thy way into thine house. - -2:12 And immediately he arose, took up the bed, and went forth before -them all; insomuch that they were all amazed, and glorified God, -saying, We never saw it on this fashion. - -2:13 And he went forth again by the sea side; and all the multitude -resorted unto him, and he taught them. - -2:14 And as he passed by, he saw Levi the son of Alphaeus sitting at -the receipt of custom, and said unto him, Follow me. And he arose and -followed him. - -2:15 And it came to pass, that, as Jesus sat at meat in his house, -many publicans and sinners sat also together with Jesus and his -disciples: for there were many, and they followed him. - -2:16 And when the scribes and Pharisees saw him eat with publicans and -sinners, they said unto his disciples, How is it that he eateth and -drinketh with publicans and sinners? 2:17 When Jesus heard it, he -saith unto them, They that are whole have no need of the physician, -but they that are sick: I came not to call the righteous, but sinners -to repentance. - -2:18 And the disciples of John and of the Pharisees used to fast: and -they come and say unto him, Why do the disciples of John and of the -Pharisees fast, but thy disciples fast not? 2:19 And Jesus said unto -them, Can the children of the bridechamber fast, while the bridegroom -is with them? as long as they have the bridegroom with them, they -cannot fast. - -2:20 But the days will come, when the bridegroom shall be taken away -from them, and then shall they fast in those days. - -2:21 No man also seweth a piece of new cloth on an old garment: else -the new piece that filled it up taketh away from the old, and the rent -is made worse. - -2:22 And no man putteth new wine into old bottles: else the new wine -doth burst the bottles, and the wine is spilled, and the bottles will -be marred: but new wine must be put into new bottles. - -2:23 And it came to pass, that he went through the corn fields on the -sabbath day; and his disciples began, as they went, to pluck the ears -of corn. - -2:24 And the Pharisees said unto him, Behold, why do they on the -sabbath day that which is not lawful? 2:25 And he said unto them, -Have ye never read what David did, when he had need, and was an -hungred, he, and they that were with him? 2:26 How he went into the -house of God in the days of Abiathar the high priest, and did eat the -shewbread, which is not lawful to eat but for the priests, and gave -also to them which were with him? 2:27 And he said unto them, The -sabbath was made for man, and not man for the sabbath: 2:28 Therefore -the Son of man is Lord also of the sabbath. - -3:1 And he entered again into the synagogue; and there was a man there -which had a withered hand. - -3:2 And they watched him, whether he would heal him on the sabbath -day; that they might accuse him. - -3:3 And he saith unto the man which had the withered hand, Stand -forth. - -3:4 And he saith unto them, Is it lawful to do good on the sabbath -days, or to do evil? to save life, or to kill? But they held their -peace. - -3:5 And when he had looked round about on them with anger, being -grieved for the hardness of their hearts, he saith unto the man, -Stretch forth thine hand. And he stretched it out: and his hand was -restored whole as the other. - -3:6 And the Pharisees went forth, and straightway took counsel with -the Herodians against him, how they might destroy him. - -3:7 But Jesus withdrew himself with his disciples to the sea: and a -great multitude from Galilee followed him, and from Judaea, 3:8 And -from Jerusalem, and from Idumaea, and from beyond Jordan; and they -about Tyre and Sidon, a great multitude, when they had heard what -great things he did, came unto him. - -3:9 And he spake to his disciples, that a small ship should wait on -him because of the multitude, lest they should throng him. - -3:10 For he had healed many; insomuch that they pressed upon him for -to touch him, as many as had plagues. - -3:11 And unclean spirits, when they saw him, fell down before him, and -cried, saying, Thou art the Son of God. - -3:12 And he straitly charged them that they should not make him known. - -3:13 And he goeth up into a mountain, and calleth unto him whom he -would: and they came unto him. - -3:14 And he ordained twelve, that they should be with him, and that he -might send them forth to preach, 3:15 And to have power to heal -sicknesses, and to cast out devils: 3:16 And Simon he surnamed Peter; -3:17 And James the son of Zebedee, and John the brother of James; and -he surnamed them Boanerges, which is, The sons of thunder: 3:18 And -Andrew, and Philip, and Bartholomew, and Matthew, and Thomas, and -James the son of Alphaeus, and Thaddaeus, and Simon the Canaanite, -3:19 And Judas Iscariot, which also betrayed him: and they went into -an house. - -3:20 And the multitude cometh together again, so that they could not -so much as eat bread. - -3:21 And when his friends heard of it, they went out to lay hold on -him: for they said, He is beside himself. - -3:22 And the scribes which came down from Jerusalem said, He hath -Beelzebub, and by the prince of the devils casteth he out devils. - -3:23 And he called them unto him, and said unto them in parables, How -can Satan cast out Satan? 3:24 And if a kingdom be divided against -itself, that kingdom cannot stand. - -3:25 And if a house be divided against itself, that house cannot -stand. - -3:26 And if Satan rise up against himself, and be divided, he cannot -stand, but hath an end. - -3:27 No man can enter into a strong man's house, and spoil his goods, -except he will first bind the strong man; and then he will spoil his -house. - -3:28 Verily I say unto you, All sins shall be forgiven unto the sons -of men, and blasphemies wherewith soever they shall blaspheme: 3:29 -But he that shall blaspheme against the Holy Ghost hath never -forgiveness, but is in danger of eternal damnation. - -3:30 Because they said, He hath an unclean spirit. - -3:31 There came then his brethren and his mother, and, standing -without, sent unto him, calling him. - -3:32 And the multitude sat about him, and they said unto him, Behold, -thy mother and thy brethren without seek for thee. - -3:33 And he answered them, saying, Who is my mother, or my brethren? -3:34 And he looked round about on them which sat about him, and said, -Behold my mother and my brethren! 3:35 For whosoever shall do the -will of God, the same is my brother, and my sister, and mother. - -4:1 And he began again to teach by the sea side: and there was -gathered unto him a great multitude, so that he entered into a ship, -and sat in the sea; and the whole multitude was by the sea on the -land. - -4:2 And he taught them many things by parables, and said unto them in -his doctrine, 4:3 Hearken; Behold, there went out a sower to sow: 4:4 -And it came to pass, as he sowed, some fell by the way side, and the -fowls of the air came and devoured it up. - -4:5 And some fell on stony ground, where it had not much earth; and -immediately it sprang up, because it had no depth of earth: 4:6 But -when the sun was up, it was scorched; and because it had no root, it -withered away. - -4:7 And some fell among thorns, and the thorns grew up, and choked it, -and it yielded no fruit. - -4:8 And other fell on good ground, and did yield fruit that sprang up -and increased; and brought forth, some thirty, and some sixty, and -some an hundred. - -4:9 And he said unto them, He that hath ears to hear, let him hear. - -4:10 And when he was alone, they that were about him with the twelve -asked of him the parable. - -4:11 And he said unto them, Unto you it is given to know the mystery -of the kingdom of God: but unto them that are without, all these -things are done in parables: 4:12 That seeing they may see, and not -perceive; and hearing they may hear, and not understand; lest at any -time they should be converted, and their sins should be forgiven them. - -4:13 And he said unto them, Know ye not this parable? and how then -will ye know all parables? 4:14 The sower soweth the word. - -4:15 And these are they by the way side, where the word is sown; but -when they have heard, Satan cometh immediately, and taketh away the -word that was sown in their hearts. - -4:16 And these are they likewise which are sown on stony ground; who, -when they have heard the word, immediately receive it with gladness; -4:17 And have no root in themselves, and so endure but for a time: -afterward, when affliction or persecution ariseth for the word's sake, -immediately they are offended. - -4:18 And these are they which are sown among thorns; such as hear the -word, 4:19 And the cares of this world, and the deceitfulness of -riches, and the lusts of other things entering in, choke the word, and -it becometh unfruitful. - -4:20 And these are they which are sown on good ground; such as hear -the word, and receive it, and bring forth fruit, some thirtyfold, some -sixty, and some an hundred. - -4:21 And he said unto them, Is a candle brought to be put under a -bushel, or under a bed? and not to be set on a candlestick? 4:22 For -there is nothing hid, which shall not be manifested; neither was any -thing kept secret, but that it should come abroad. - -4:23 If any man have ears to hear, let him hear. - -4:24 And he said unto them, Take heed what ye hear: with what measure -ye mete, it shall be measured to you: and unto you that hear shall -more be given. - -4:25 For he that hath, to him shall be given: and he that hath not, -from him shall be taken even that which he hath. - -4:26 And he said, So is the kingdom of God, as if a man should cast -seed into the ground; 4:27 And should sleep, and rise night and day, -and the seed should spring and grow up, he knoweth not how. - -4:28 For the earth bringeth forth fruit of herself; first the blade, -then the ear, after that the full corn in the ear. - -4:29 But when the fruit is brought forth, immediately he putteth in -the sickle, because the harvest is come. - -4:30 And he said, Whereunto shall we liken the kingdom of God? or with -what comparison shall we compare it? 4:31 It is like a grain of -mustard seed, which, when it is sown in the earth, is less than all -the seeds that be in the earth: 4:32 But when it is sown, it groweth -up, and becometh greater than all herbs, and shooteth out great -branches; so that the fowls of the air may lodge under the shadow of -it. - -4:33 And with many such parables spake he the word unto them, as they -were able to hear it. - -4:34 But without a parable spake he not unto them: and when they were -alone, he expounded all things to his disciples. - -4:35 And the same day, when the even was come, he saith unto them, Let -us pass over unto the other side. - -4:36 And when they had sent away the multitude, they took him even as -he was in the ship. And there were also with him other little ships. - -4:37 And there arose a great storm of wind, and the waves beat into -the ship, so that it was now full. - -4:38 And he was in the hinder part of the ship, asleep on a pillow: -and they awake him, and say unto him, Master, carest thou not that we -perish? 4:39 And he arose, and rebuked the wind, and said unto the -sea, Peace, be still. And the wind ceased, and there was a great calm. - -4:40 And he said unto them, Why are ye so fearful? how is it that ye -have no faith? 4:41 And they feared exceedingly, and said one to -another, What manner of man is this, that even the wind and the sea -obey him? 5:1 And they came over unto the other side of the sea, into -the country of the Gadarenes. - -5:2 And when he was come out of the ship, immediately there met him -out of the tombs a man with an unclean spirit, 5:3 Who had his -dwelling among the tombs; and no man could bind him, no, not with -chains: 5:4 Because that he had been often bound with fetters and -chains, and the chains had been plucked asunder by him, and the -fetters broken in pieces: neither could any man tame him. - -5:5 And always, night and day, he was in the mountains, and in the -tombs, crying, and cutting himself with stones. - -5:6 But when he saw Jesus afar off, he ran and worshipped him, 5:7 And -cried with a loud voice, and said, What have I to do with thee, Jesus, -thou Son of the most high God? I adjure thee by God, that thou torment -me not. - -5:8 For he said unto him, Come out of the man, thou unclean spirit. - -5:9 And he asked him, What is thy name? And he answered, saying, My -name is Legion: for we are many. - -5:10 And he besought him much that he would not send them away out of -the country. - -5:11 Now there was there nigh unto the mountains a great herd of swine -feeding. - -5:12 And all the devils besought him, saying, Send us into the swine, -that we may enter into them. - -5:13 And forthwith Jesus gave them leave. And the unclean spirits went -out, and entered into the swine: and the herd ran violently down a -steep place into the sea, (they were about two thousand;) and were -choked in the sea. - -5:14 And they that fed the swine fled, and told it in the city, and in -the country. And they went out to see what it was that was done. - -5:15 And they come to Jesus, and see him that was possessed with the -devil, and had the legion, sitting, and clothed, and in his right -mind: and they were afraid. - -5:16 And they that saw it told them how it befell to him that was -possessed with the devil, and also concerning the swine. - -5:17 And they began to pray him to depart out of their coasts. - -5:18 And when he was come into the ship, he that had been possessed -with the devil prayed him that he might be with him. - -5:19 Howbeit Jesus suffered him not, but saith unto him, Go home to -thy friends, and tell them how great things the Lord hath done for -thee, and hath had compassion on thee. - -5:20 And he departed, and began to publish in Decapolis how great -things Jesus had done for him: and all men did marvel. - -5:21 And when Jesus was passed over again by ship unto the other side, -much people gathered unto him: and he was nigh unto the sea. - -5:22 And, behold, there cometh one of the rulers of the synagogue, -Jairus by name; and when he saw him, he fell at his feet, 5:23 And -besought him greatly, saying, My little daughter lieth at the point of -death: I pray thee, come and lay thy hands on her, that she may be -healed; and she shall live. - -5:24 And Jesus went with him; and much people followed him, and -thronged him. - -5:25 And a certain woman, which had an issue of blood twelve years, -5:26 And had suffered many things of many physicians, and had spent -all that she had, and was nothing bettered, but rather grew worse, -5:27 When she had heard of Jesus, came in the press behind, and -touched his garment. - -5:28 For she said, If I may touch but his clothes, I shall be whole. - -5:29 And straightway the fountain of her blood was dried up; and she -felt in her body that she was healed of that plague. - -5:30 And Jesus, immediately knowing in himself that virtue had gone -out of him, turned him about in the press, and said, Who touched my -clothes? 5:31 And his disciples said unto him, Thou seest the -multitude thronging thee, and sayest thou, Who touched me? 5:32 And -he looked round about to see her that had done this thing. - -5:33 But the woman fearing and trembling, knowing what was done in -her, came and fell down before him, and told him all the truth. - -5:34 And he said unto her, Daughter, thy faith hath made thee whole; -go in peace, and be whole of thy plague. - -5:35 While he yet spake, there came from the ruler of the synagogue's -house certain which said, Thy daughter is dead: why troublest thou the -Master any further? 5:36 As soon as Jesus heard the word that was -spoken, he saith unto the ruler of the synagogue, Be not afraid, only -believe. - -5:37 And he suffered no man to follow him, save Peter, and James, and -John the brother of James. - -5:38 And he cometh to the house of the ruler of the synagogue, and -seeth the tumult, and them that wept and wailed greatly. - -5:39 And when he was come in, he saith unto them, Why make ye this -ado, and weep? the damsel is not dead, but sleepeth. - -5:40 And they laughed him to scorn. But when he had put them all out, -he taketh the father and the mother of the damsel, and them that were -with him, and entereth in where the damsel was lying. - -5:41 And he took the damsel by the hand, and said unto her, Talitha -cumi; which is, being interpreted, Damsel, I say unto thee, arise. - -5:42 And straightway the damsel arose, and walked; for she was of the -age of twelve years. And they were astonished with a great -astonishment. - -5:43 And he charged them straitly that no man should know it; and -commanded that something should be given her to eat. - -6:1 And he went out from thence, and came into his own country; and -his disciples follow him. - -6:2 And when the sabbath day was come, he began to teach in the -synagogue: and many hearing him were astonished, saying, From whence -hath this man these things? and what wisdom is this which is given -unto him, that even such mighty works are wrought by his hands? 6:3 -Is not this the carpenter, the son of Mary, the brother of James, and -Joses, and of Juda, and Simon? and are not his sisters here with us? -And they were offended at him. - -6:4 But Jesus, said unto them, A prophet is not without honour, but in -his own country, and among his own kin, and in his own house. - -6:5 And he could there do no mighty work, save that he laid his hands -upon a few sick folk, and healed them. - -6:6 And he marvelled because of their unbelief. And he went round -about the villages, teaching. - -6:7 And he called unto him the twelve, and began to send them forth by -two and two; and gave them power over unclean spirits; 6:8 And -commanded them that they should take nothing for their journey, save a -staff only; no scrip, no bread, no money in their purse: 6:9 But be -shod with sandals; and not put on two coats. - -6:10 And he said unto them, In what place soever ye enter into an -house, there abide till ye depart from that place. - -6:11 And whosoever shall not receive you, nor hear you, when ye depart -thence, shake off the dust under your feet for a testimony against -them. - -Verily I say unto you, It shall be more tolerable for Sodom and -Gomorrha in the day of judgment, than for that city. - -6:12 And they went out, and preached that men should repent. - -6:13 And they cast out many devils, and anointed with oil many that -were sick, and healed them. - -6:14 And king Herod heard of him; (for his name was spread abroad:) -and he said, That John the Baptist was risen from the dead, and -therefore mighty works do shew forth themselves in him. - -6:15 Others said, That it is Elias. And others said, That it is a -prophet, or as one of the prophets. - -6:16 But when Herod heard thereof, he said, It is John, whom I -beheaded: he is risen from the dead. - -6:17 For Herod himself had sent forth and laid hold upon John, and -bound him in prison for Herodias' sake, his brother Philip's wife: for -he had married her. - -6:18 For John had said unto Herod, It is not lawful for thee to have -thy brother's wife. - -6:19 Therefore Herodias had a quarrel against him, and would have -killed him; but she could not: 6:20 For Herod feared John, knowing -that he was a just man and an holy, and observed him; and when he -heard him, he did many things, and heard him gladly. - -6:21 And when a convenient day was come, that Herod on his birthday -made a supper to his lords, high captains, and chief estates of -Galilee; 6:22 And when the daughter of the said Herodias came in, and -danced, and pleased Herod and them that sat with him, the king said -unto the damsel, Ask of me whatsoever thou wilt, and I will give it -thee. - -6:23 And he sware unto her, Whatsoever thou shalt ask of me, I will -give it thee, unto the half of my kingdom. - -6:24 And she went forth, and said unto her mother, What shall I ask? -And she said, The head of John the Baptist. - -6:25 And she came in straightway with haste unto the king, and asked, -saying, I will that thou give me by and by in a charger the head of -John the Baptist. - -6:26 And the king was exceeding sorry; yet for his oath's sake, and -for their sakes which sat with him, he would not reject her. - -6:27 And immediately the king sent an executioner, and commanded his -head to be brought: and he went and beheaded him in the prison, 6:28 -And brought his head in a charger, and gave it to the damsel: and the -damsel gave it to her mother. - -6:29 And when his disciples heard of it, they came and took up his -corpse, and laid it in a tomb. - -6:30 And the apostles gathered themselves together unto Jesus, and -told him all things, both what they had done, and what they had -taught. - -6:31 And he said unto them, Come ye yourselves apart into a desert -place, and rest a while: for there were many coming and going, and -they had no leisure so much as to eat. - -6:32 And they departed into a desert place by ship privately. - -6:33 And the people saw them departing, and many knew him, and ran -afoot thither out of all cities, and outwent them, and came together -unto him. - -6:34 And Jesus, when he came out, saw much people, and was moved with -compassion toward them, because they were as sheep not having a -shepherd: and he began to teach them many things. - -6:35 And when the day was now far spent, his disciples came unto him, -and said, This is a desert place, and now the time is far passed: 6:36 -Send them away, that they may go into the country round about, and -into the villages, and buy themselves bread: for they have nothing to -eat. - -6:37 He answered and said unto them, Give ye them to eat. And they say -unto him, Shall we go and buy two hundred pennyworth of bread, and -give them to eat? 6:38 He saith unto them, How many loaves have ye? -go and see. And when they knew, they say, Five, and two fishes. - -6:39 And he commanded them to make all sit down by companies upon the -green grass. - -6:40 And they sat down in ranks, by hundreds, and by fifties. - -6:41 And when he had taken the five loaves and the two fishes, he -looked up to heaven, and blessed, and brake the loaves, and gave them -to his disciples to set before them; and the two fishes divided he -among them all. - -6:42 And they did all eat, and were filled. - -6:43 And they took up twelve baskets full of the fragments, and of the -fishes. - -6:44 And they that did eat of the loaves were about five thousand men. - -6:45 And straightway he constrained his disciples to get into the -ship, and to go to the other side before unto Bethsaida, while he sent -away the people. - -6:46 And when he had sent them away, he departed into a mountain to -pray. - -6:47 And when even was come, the ship was in the midst of the sea, and -he alone on the land. - -6:48 And he saw them toiling in rowing; for the wind was contrary unto -them: and about the fourth watch of the night he cometh unto them, -walking upon the sea, and would have passed by them. - -6:49 But when they saw him walking upon the sea, they supposed it had -been a spirit, and cried out: 6:50 For they all saw him, and were -troubled. And immediately he talked with them, and saith unto them, Be -of good cheer: it is I; be not afraid. - -6:51 And he went up unto them into the ship; and the wind ceased: and -they were sore amazed in themselves beyond measure, and wondered. - -6:52 For they considered not the miracle of the loaves: for their -heart was hardened. - -6:53 And when they had passed over, they came into the land of -Gennesaret, and drew to the shore. - -6:54 And when they were come out of the ship, straightway they knew -him, 6:55 And ran through that whole region round about, and began to -carry about in beds those that were sick, where they heard he was. - -6:56 And whithersoever he entered, into villages, or cities, or -country, they laid the sick in the streets, and besought him that they -might touch if it were but the border of his garment: and as many as -touched him were made whole. - -7:1 Then came together unto him the Pharisees, and certain of the -scribes, which came from Jerusalem. - -7:2 And when they saw some of his disciples eat bread with defiled, -that is to say, with unwashen, hands, they found fault. - -7:3 For the Pharisees, and all the Jews, except they wash their hands -oft, eat not, holding the tradition of the elders. - -7:4 And when they come from the market, except they wash, they eat -not. - -And many other things there be, which they have received to hold, as -the washing of cups, and pots, brasen vessels, and of tables. - -7:5 Then the Pharisees and scribes asked him, Why walk not thy -disciples according to the tradition of the elders, but eat bread with -unwashen hands? 7:6 He answered and said unto them, Well hath Esaias -prophesied of you hypocrites, as it is written, This people honoureth -me with their lips, but their heart is far from me. - -7:7 Howbeit in vain do they worship me, teaching for doctrines the -commandments of men. - -7:8 For laying aside the commandment of God, ye hold the tradition of -men, as the washing of pots and cups: and many other such like things -ye do. - -7:9 And he said unto them, Full well ye reject the commandment of God, -that ye may keep your own tradition. - -7:10 For Moses said, Honour thy father and thy mother; and, Whoso -curseth father or mother, let him die the death: 7:11 But ye say, If a -man shall say to his father or mother, It is Corban, that is to say, a -gift, by whatsoever thou mightest be profited by me; he shall be free. - -7:12 And ye suffer him no more to do ought for his father or his -mother; 7:13 Making the word of God of none effect through your -tradition, which ye have delivered: and many such like things do ye. - -7:14 And when he had called all the people unto him, he said unto -them, Hearken unto me every one of you, and understand: 7:15 There is -nothing from without a man, that entering into him can defile him: but -the things which come out of him, those are they that defile the man. - -7:16 If any man have ears to hear, let him hear. - -7:17 And when he was entered into the house from the people, his -disciples asked him concerning the parable. - -7:18 And he saith unto them, Are ye so without understanding also? Do -ye not perceive, that whatsoever thing from without entereth into the -man, it cannot defile him; 7:19 Because it entereth not into his -heart, but into the belly, and goeth out into the draught, purging all -meats? 7:20 And he said, That which cometh out of the man, that -defileth the man. - -7:21 For from within, out of the heart of men, proceed evil thoughts, -adulteries, fornications, murders, 7:22 Thefts, covetousness, -wickedness, deceit, lasciviousness, an evil eye, blasphemy, pride, -foolishness: 7:23 All these evil things come from within, and defile -the man. - -7:24 And from thence he arose, and went into the borders of Tyre and -Sidon, and entered into an house, and would have no man know it: but -he could not be hid. - -7:25 For a certain woman, whose young daughter had an unclean spirit, -heard of him, and came and fell at his feet: 7:26 The woman was a -Greek, a Syrophenician by nation; and she besought him that he would -cast forth the devil out of her daughter. - -7:27 But Jesus said unto her, Let the children first be filled: for it -is not meet to take the children's bread, and to cast it unto the -dogs. - -7:28 And she answered and said unto him, Yes, Lord: yet the dogs under -the table eat of the children's crumbs. - -7:29 And he said unto her, For this saying go thy way; the devil is -gone out of thy daughter. - -7:30 And when she was come to her house, she found the devil gone out, -and her daughter laid upon the bed. - -7:31 And again, departing from the coasts of Tyre and Sidon, he came -unto the sea of Galilee, through the midst of the coasts of Decapolis. - -7:32 And they bring unto him one that was deaf, and had an impediment -in his speech; and they beseech him to put his hand upon him. - -7:33 And he took him aside from the multitude, and put his fingers -into his ears, and he spit, and touched his tongue; 7:34 And looking -up to heaven, he sighed, and saith unto him, Ephphatha, that is, Be -opened. - -7:35 And straightway his ears were opened, and the string of his -tongue was loosed, and he spake plain. - -7:36 And he charged them that they should tell no man: but the more he -charged them, so much the more a great deal they published it; 7:37 -And were beyond measure astonished, saying, He hath done all things -well: he maketh both the deaf to hear, and the dumb to speak. - -8:1 In those days the multitude being very great, and having nothing -to eat, Jesus called his disciples unto him, and saith unto them, 8:2 -I have compassion on the multitude, because they have now been with me -three days, and have nothing to eat: 8:3 And if I send them away -fasting to their own houses, they will faint by the way: for divers of -them came from far. - -8:4 And his disciples answered him, From whence can a man satisfy -these men with bread here in the wilderness? 8:5 And he asked them, -How many loaves have ye? And they said, Seven. - -8:6 And he commanded the people to sit down on the ground: and he took -the seven loaves, and gave thanks, and brake, and gave to his -disciples to set before them; and they did set them before the people. - -8:7 And they had a few small fishes: and he blessed, and commanded to -set them also before them. - -8:8 So they did eat, and were filled: and they took up of the broken -meat that was left seven baskets. - -8:9 And they that had eaten were about four thousand: and he sent them -away. - -8:10 And straightway he entered into a ship with his disciples, and -came into the parts of Dalmanutha. - -8:11 And the Pharisees came forth, and began to question with him, -seeking of him a sign from heaven, tempting him. - -8:12 And he sighed deeply in his spirit, and saith, Why doth this -generation seek after a sign? verily I say unto you, There shall no -sign be given unto this generation. - -8:13 And he left them, and entering into the ship again departed to -the other side. - -8:14 Now the disciples had forgotten to take bread, neither had they -in the ship with them more than one loaf. - -8:15 And he charged them, saying, Take heed, beware of the leaven of -the Pharisees, and of the leaven of Herod. - -8:16 And they reasoned among themselves, saying, It is because we have -no bread. - -8:17 And when Jesus knew it, he saith unto them, Why reason ye, -because ye have no bread? perceive ye not yet, neither understand? -have ye your heart yet hardened? 8:18 Having eyes, see ye not? and -having ears, hear ye not? and do ye not remember? 8:19 When I brake -the five loaves among five thousand, how many baskets full of -fragments took ye up? They say unto him, Twelve. - -8:20 And when the seven among four thousand, how many baskets full of -fragments took ye up? And they said, Seven. - -8:21 And he said unto them, How is it that ye do not understand? 8:22 -And he cometh to Bethsaida; and they bring a blind man unto him, and -besought him to touch him. - -8:23 And he took the blind man by the hand, and led him out of the -town; and when he had spit on his eyes, and put his hands upon him, he -asked him if he saw ought. - -8:24 And he looked up, and said, I see men as trees, walking. - -8:25 After that he put his hands again upon his eyes, and made him -look up: and he was restored, and saw every man clearly. - -8:26 And he sent him away to his house, saying, Neither go into the -town, nor tell it to any in the town. - -8:27 And Jesus went out, and his disciples, into the towns of Caesarea -Philippi: and by the way he asked his disciples, saying unto them, -Whom do men say that I am? 8:28 And they answered, John the Baptist; -but some say, Elias; and others, One of the prophets. - -8:29 And he saith unto them, But whom say ye that I am? And Peter -answereth and saith unto him, Thou art the Christ. - -8:30 And he charged them that they should tell no man of him. - -8:31 And he began to teach them, that the Son of man must suffer many -things, and be rejected of the elders, and of the chief priests, and -scribes, and be killed, and after three days rise again. - -8:32 And he spake that saying openly. And Peter took him, and began to -rebuke him. - -8:33 But when he had turned about and looked on his disciples, he -rebuked Peter, saying, Get thee behind me, Satan: for thou savourest -not the things that be of God, but the things that be of men. - -8:34 And when he had called the people unto him with his disciples -also, he said unto them, Whosoever will come after me, let him deny -himself, and take up his cross, and follow me. - -8:35 For whosoever will save his life shall lose it; but whosoever -shall lose his life for my sake and the gospel's, the same shall save -it. - -8:36 For what shall it profit a man, if he shall gain the whole world, -and lose his own soul? 8:37 Or what shall a man give in exchange for -his soul? 8:38 Whosoever therefore shall be ashamed of me and of my -words in this adulterous and sinful generation; of him also shall the -Son of man be ashamed, when he cometh in the glory of his Father with -the holy angels. - -9:1 And he said unto them, Verily I say unto you, That there be some -of them that stand here, which shall not taste of death, till they -have seen the kingdom of God come with power. - -9:2 And after six days Jesus taketh with him Peter, and James, and -John, and leadeth them up into an high mountain apart by themselves: -and he was transfigured before them. - -9:3 And his raiment became shining, exceeding white as snow; so as no -fuller on earth can white them. - -9:4 And there appeared unto them Elias with Moses: and they were -talking with Jesus. - -9:5 And Peter answered and said to Jesus, Master, it is good for us to -be here: and let us make three tabernacles; one for thee, and one for -Moses, and one for Elias. - -9:6 For he wist not what to say; for they were sore afraid. - -9:7 And there was a cloud that overshadowed them: and a voice came out -of the cloud, saying, This is my beloved Son: hear him. - -9:8 And suddenly, when they had looked round about, they saw no man -any more, save Jesus only with themselves. - -9:9 And as they came down from the mountain, he charged them that they -should tell no man what things they had seen, till the Son of man were -risen from the dead. - -9:10 And they kept that saying with themselves, questioning one with -another what the rising from the dead should mean. - -9:11 And they asked him, saying, Why say the scribes that Elias must -first come? 9:12 And he answered and told them, Elias verily cometh -first, and restoreth all things; and how it is written of the Son of -man, that he must suffer many things, and be set at nought. - -9:13 But I say unto you, That Elias is indeed come, and they have done -unto him whatsoever they listed, as it is written of him. - -9:14 And when he came to his disciples, he saw a great multitude about -them, and the scribes questioning with them. - -9:15 And straightway all the people, when they beheld him, were -greatly amazed, and running to him saluted him. - -9:16 And he asked the scribes, What question ye with them? 9:17 And -one of the multitude answered and said, Master, I have brought unto -thee my son, which hath a dumb spirit; 9:18 And wheresoever he taketh -him, he teareth him: and he foameth, and gnasheth with his teeth, and -pineth away: and I spake to thy disciples that they should cast him -out; and they could not. - -9:19 He answereth him, and saith, O faithless generation, how long -shall I be with you? how long shall I suffer you? bring him unto me. - -9:20 And they brought him unto him: and when he saw him, straightway -the spirit tare him; and he fell on the ground, and wallowed foaming. - -9:21 And he asked his father, How long is it ago since this came unto -him? And he said, Of a child. - -9:22 And ofttimes it hath cast him into the fire, and into the waters, -to destroy him: but if thou canst do any thing, have compassion on us, -and help us. - -9:23 Jesus said unto him, If thou canst believe, all things are -possible to him that believeth. - -9:24 And straightway the father of the child cried out, and said with -tears, Lord, I believe; help thou mine unbelief. - -9:25 When Jesus saw that the people came running together, he rebuked -the foul spirit, saying unto him, Thou dumb and deaf spirit, I charge -thee, come out of him, and enter no more into him. - -9:26 And the spirit cried, and rent him sore, and came out of him: and -he was as one dead; insomuch that many said, He is dead. - -9:27 But Jesus took him by the hand, and lifted him up; and he arose. - -9:28 And when he was come into the house, his disciples asked him -privately, Why could not we cast him out? 9:29 And he said unto them, -This kind can come forth by nothing, but by prayer and fasting. - -9:30 And they departed thence, and passed through Galilee; and he -would not that any man should know it. - -9:31 For he taught his disciples, and said unto them, The Son of man -is delivered into the hands of men, and they shall kill him; and after -that he is killed, he shall rise the third day. - -9:32 But they understood not that saying, and were afraid to ask him. - -9:33 And he came to Capernaum: and being in the house he asked them, -What was it that ye disputed among yourselves by the way? 9:34 But -they held their peace: for by the way they had disputed among -themselves, who should be the greatest. - -9:35 And he sat down, and called the twelve, and saith unto them, If -any man desire to be first, the same shall be last of all, and servant -of all. - -9:36 And he took a child, and set him in the midst of them: and when -he had taken him in his arms, he said unto them, 9:37 Whosoever shall -receive one of such children in my name, receiveth me: and whosoever -shall receive me, receiveth not me, but him that sent me. - -9:38 And John answered him, saying, Master, we saw one casting out -devils in thy name, and he followeth not us: and we forbad him, -because he followeth not us. - -9:39 But Jesus said, Forbid him not: for there is no man which shall -do a miracle in my name, that can lightly speak evil of me. - -9:40 For he that is not against us is on our part. - -9:41 For whosoever shall give you a cup of water to drink in my name, -because ye belong to Christ, verily I say unto you, he shall not lose -his reward. - -9:42 And whosoever shall offend one of these little ones that believe -in me, it is better for him that a millstone were hanged about his -neck, and he were cast into the sea. - -9:43 And if thy hand offend thee, cut it off: it is better for thee to -enter into life maimed, than having two hands to go into hell, into -the fire that never shall be quenched: 9:44 Where their worm dieth -not, and the fire is not quenched. - -9:45 And if thy foot offend thee, cut it off: it is better for thee to -enter halt into life, than having two feet to be cast into hell, into -the fire that never shall be quenched: 9:46 Where their worm dieth -not, and the fire is not quenched. - -9:47 And if thine eye offend thee, pluck it out: it is better for thee -to enter into the kingdom of God with one eye, than having two eyes to -be cast into hell fire: 9:48 Where their worm dieth not, and the fire -is not quenched. - -9:49 For every one shall be salted with fire, and every sacrifice -shall be salted with salt. - -9:50 Salt is good: but if the salt have lost his saltness, wherewith -will ye season it? Have salt in yourselves, and have peace one with -another. - -10:1 And he arose from thence, and cometh into the coasts of Judaea by -the farther side of Jordan: and the people resort unto him again; and, -as he was wont, he taught them again. - -10:2 And the Pharisees came to him, and asked him, Is it lawful for a -man to put away his wife? tempting him. - -10:3 And he answered and said unto them, What did Moses command you? -10:4 And they said, Moses suffered to write a bill of divorcement, and -to put her away. - -10:5 And Jesus answered and said unto them, For the hardness of your -heart he wrote you this precept. - -10:6 But from the beginning of the creation God made them male and -female. - -10:7 For this cause shall a man leave his father and mother, and -cleave to his wife; 10:8 And they twain shall be one flesh: so then -they are no more twain, but one flesh. - -10:9 What therefore God hath joined together, let not man put asunder. - -10:10 And in the house his disciples asked him again of the same -matter. - -10:11 And he saith unto them, Whosoever shall put away his wife, and -marry another, committeth adultery against her. - -10:12 And if a woman shall put away her husband, and be married to -another, she committeth adultery. - -10:13 And they brought young children to him, that he should touch -them: and his disciples rebuked those that brought them. - -10:14 But when Jesus saw it, he was much displeased, and said unto -them, Suffer the little children to come unto me, and forbid them not: -for of such is the kingdom of God. - -10:15 Verily I say unto you, Whosoever shall not receive the kingdom -of God as a little child, he shall not enter therein. - -10:16 And he took them up in his arms, put his hands upon them, and -blessed them. - -10:17 And when he was gone forth into the way, there came one running, -and kneeled to him, and asked him, Good Master, what shall I do that I -may inherit eternal life? 10:18 And Jesus said unto him, Why callest -thou me good? there is none good but one, that is, God. - -10:19 Thou knowest the commandments, Do not commit adultery, Do not -kill, Do not steal, Do not bear false witness, Defraud not, Honour thy -father and mother. 10:20 And he answered and said unto him, Master, -all these have I observed from my youth. - -10:21 Then Jesus beholding him loved him, and said unto him, One thing -thou lackest: go thy way, sell whatsoever thou hast, and give to the -poor, and thou shalt have treasure in heaven: and come, take up the -cross, and follow me. - -10:22 And he was sad at that saying, and went away grieved: for he had -great possessions. - -10:23 And Jesus looked round about, and saith unto his disciples, How -hardly shall they that have riches enter into the kingdom of God! -10:24 And the disciples were astonished at his words. But Jesus -answereth again, and saith unto them, Children, how hard is it for -them that trust in riches to enter into the kingdom of God! 10:25 It -is easier for a camel to go through the eye of a needle, than for a -rich man to enter into the kingdom of God. - -10:26 And they were astonished out of measure, saying among -themselves, Who then can be saved? 10:27 And Jesus looking upon them -saith, With men it is impossible, but not with God: for with God all -things are possible. - -10:28 Then Peter began to say unto him, Lo, we have left all, and have -followed thee. - -10:29 And Jesus answered and said, Verily I say unto you, There is no -man that hath left house, or brethren, or sisters, or father, or -mother, or wife, or children, or lands, for my sake, and the gospel's, -10:30 But he shall receive an hundredfold now in this time, houses, -and brethren, and sisters, and mothers, and children, and lands, with -persecutions; and in the world to come eternal life. - -10:31 But many that are first shall be last; and the last first. - -10:32 And they were in the way going up to Jerusalem; and Jesus went -before them: and they were amazed; and as they followed, they were -afraid. - -And he took again the twelve, and began to tell them what things -should happen unto him, 10:33 Saying, Behold, we go up to Jerusalem; -and the Son of man shall be delivered unto the chief priests, and unto -the scribes; and they shall condemn him to death, and shall deliver -him to the Gentiles: 10:34 And they shall mock him, and shall scourge -him, and shall spit upon him, and shall kill him: and the third day he -shall rise again. - -10:35 And James and John, the sons of Zebedee, come unto him, saying, -Master, we would that thou shouldest do for us whatsoever we shall -desire. - -10:36 And he said unto them, What would ye that I should do for you? -10:37 They said unto him, Grant unto us that we may sit, one on thy -right hand, and the other on thy left hand, in thy glory. - -10:38 But Jesus said unto them, Ye know not what ye ask: can ye drink -of the cup that I drink of? and be baptized with the baptism that I am -baptized with? 10:39 And they said unto him, We can. And Jesus said -unto them, Ye shall indeed drink of the cup that I drink of; and with -the baptism that I am baptized withal shall ye be baptized: 10:40 But -to sit on my right hand and on my left hand is not mine to give; but -it shall be given to them for whom it is prepared. - -10:41 And when the ten heard it, they began to be much displeased with -James and John. - -10:42 But Jesus called them to him, and saith unto them, Ye know that -they which are accounted to rule over the Gentiles exercise lordship -over them; and their great ones exercise authority upon them. - -10:43 But so shall it not be among you: but whosoever will be great -among you, shall be your minister: 10:44 And whosoever of you will be -the chiefest, shall be servant of all. - -10:45 For even the Son of man came not to be ministered unto, but to -minister, and to give his life a ransom for many. - -10:46 And they came to Jericho: and as he went out of Jericho with his -disciples and a great number of people, blind Bartimaeus, the son of -Timaeus, sat by the highway side begging. - -10:47 And when he heard that it was Jesus of Nazareth, he began to cry -out, and say, Jesus, thou son of David, have mercy on me. - -10:48 And many charged him that he should hold his peace: but he cried -the more a great deal, Thou son of David, have mercy on me. - -10:49 And Jesus stood still, and commanded him to be called. And they -call the blind man, saying unto him, Be of good comfort, rise; he -calleth thee. - -10:50 And he, casting away his garment, rose, and came to Jesus. - -10:51 And Jesus answered and said unto him, What wilt thou that I -should do unto thee? The blind man said unto him, Lord, that I might -receive my sight. - -10:52 And Jesus said unto him, Go thy way; thy faith hath made thee -whole. - -And immediately he received his sight, and followed Jesus in the way. - -11:1 And when they came nigh to Jerusalem, unto Bethphage and Bethany, -at the mount of Olives, he sendeth forth two of his disciples, 11:2 -And saith unto them, Go your way into the village over against you: -and as soon as ye be entered into it, ye shall find a colt tied, -whereon never man sat; loose him, and bring him. - -11:3 And if any man say unto you, Why do ye this? say ye that the Lord -hath need of him; and straightway he will send him hither. - -11:4 And they went their way, and found the colt tied by the door -without in a place where two ways met; and they loose him. - -11:5 And certain of them that stood there said unto them, What do ye, -loosing the colt? 11:6 And they said unto them even as Jesus had -commanded: and they let them go. - -11:7 And they brought the colt to Jesus, and cast their garments on -him; and he sat upon him. - -11:8 And many spread their garments in the way: and others cut down -branches off the trees, and strawed them in the way. - -11:9 And they that went before, and they that followed, cried, saying, -Hosanna; Blessed is he that cometh in the name of the Lord: 11:10 -Blessed be the kingdom of our father David, that cometh in the name of -the Lord: Hosanna in the highest. - -11:11 And Jesus entered into Jerusalem, and into the temple: and when -he had looked round about upon all things, and now the eventide was -come, he went out unto Bethany with the twelve. - -11:12 And on the morrow, when they were come from Bethany, he was -hungry: 11:13 And seeing a fig tree afar off having leaves, he came, -if haply he might find any thing thereon: and when he came to it, he -found nothing but leaves; for the time of figs was not yet. - -11:14 And Jesus answered and said unto it, No man eat fruit of thee -hereafter for ever. And his disciples heard it. - -11:15 And they come to Jerusalem: and Jesus went into the temple, and -began to cast out them that sold and bought in the temple, and -overthrew the tables of the moneychangers, and the seats of them that -sold doves; 11:16 And would not suffer that any man should carry any -vessel through the temple. - -11:17 And he taught, saying unto them, Is it not written, My house -shall be called of all nations the house of prayer? but ye have made -it a den of thieves. - -11:18 And the scribes and chief priests heard it, and sought how they -might destroy him: for they feared him, because all the people was -astonished at his doctrine. - -11:19 And when even was come, he went out of the city. - -11:20 And in the morning, as they passed by, they saw the fig tree -dried up from the roots. - -11:21 And Peter calling to remembrance saith unto him, Master, behold, -the fig tree which thou cursedst is withered away. - -11:22 And Jesus answering saith unto them, Have faith in God. - -11:23 For verily I say unto you, That whosoever shall say unto this -mountain, Be thou removed, and be thou cast into the sea; and shall -not doubt in his heart, but shall believe that those things which he -saith shall come to pass; he shall have whatsoever he saith. - -11:24 Therefore I say unto you, What things soever ye desire, when ye -pray, believe that ye receive them, and ye shall have them. - -11:25 And when ye stand praying, forgive, if ye have ought against -any: that your Father also which is in heaven may forgive you your -trespasses. - -11:26 But if ye do not forgive, neither will your Father which is in -heaven forgive your trespasses. - -11:27 And they come again to Jerusalem: and as he was walking in the -temple, there come to him the chief priests, and the scribes, and the -elders, 11:28 And say unto him, By what authority doest thou these -things? and who gave thee this authority to do these things? 11:29 -And Jesus answered and said unto them, I will also ask of you one -question, and answer me, and I will tell you by what authority I do -these things. - -11:30 The baptism of John, was it from heaven, or of men? answer me. - -11:31 And they reasoned with themselves, saying, If we shall say, From -heaven; he will say, Why then did ye not believe him? 11:32 But if we -shall say, Of men; they feared the people: for all men counted John, -that he was a prophet indeed. - -11:33 And they answered and said unto Jesus, We cannot tell. And Jesus -answering saith unto them, Neither do I tell you by what authority I -do these things. - -12:1 And he began to speak unto them by parables. A certain man -planted a vineyard, and set an hedge about it, and digged a place for -the winefat, and built a tower, and let it out to husbandmen, and went -into a far country. - -12:2 And at the season he sent to the husbandmen a servant, that he -might receive from the husbandmen of the fruit of the vineyard. - -12:3 And they caught him, and beat him, and sent him away empty. - -12:4 And again he sent unto them another servant; and at him they cast -stones, and wounded him in the head, and sent him away shamefully -handled. - -12:5 And again he sent another; and him they killed, and many others; -beating some, and killing some. - -12:6 Having yet therefore one son, his wellbeloved, he sent him also -last unto them, saying, They will reverence my son. - -12:7 But those husbandmen said among themselves, This is the heir; -come, let us kill him, and the inheritance shall be our's. - -12:8 And they took him, and killed him, and cast him out of the -vineyard. - -12:9 What shall therefore the lord of the vineyard do? he will come -and destroy the husbandmen, and will give the vineyard unto others. - -12:10 And have ye not read this scripture; The stone which the -builders rejected is become the head of the corner: 12:11 This was the -Lord's doing, and it is marvellous in our eyes? 12:12 And they sought -to lay hold on him, but feared the people: for they knew that he had -spoken the parable against them: and they left him, and went their -way. - -12:13 And they send unto him certain of the Pharisees and of the -Herodians, to catch him in his words. - -12:14 And when they were come, they say unto him, Master, we know that -thou art true, and carest for no man: for thou regardest not the -person of men, but teachest the way of God in truth: Is it lawful to -give tribute to Caesar, or not? 12:15 Shall we give, or shall we not -give? But he, knowing their hypocrisy, said unto them, Why tempt ye -me? bring me a penny, that I may see it. - -12:16 And they brought it. And he saith unto them, Whose is this image -and superscription? And they said unto him, Caesar's. - -12:17 And Jesus answering said unto them, Render to Caesar the things -that are Caesar's, and to God the things that are God's. And they -marvelled at him. - -12:18 Then come unto him the Sadducees, which say there is no -resurrection; and they asked him, saying, 12:19 Master, Moses wrote -unto us, If a man's brother die, and leave his wife behind him, and -leave no children, that his brother should take his wife, and raise up -seed unto his brother. - -12:20 Now there were seven brethren: and the first took a wife, and -dying left no seed. - -12:21 And the second took her, and died, neither left he any seed: and -the third likewise. - -12:22 And the seven had her, and left no seed: last of all the woman -died also. - -12:23 In the resurrection therefore, when they shall rise, whose wife -shall she be of them? for the seven had her to wife. - -12:24 And Jesus answering said unto them, Do ye not therefore err, -because ye know not the scriptures, neither the power of God? 12:25 -For when they shall rise from the dead, they neither marry, nor are -given in marriage; but are as the angels which are in heaven. - -12:26 And as touching the dead, that they rise: have ye not read in -the book of Moses, how in the bush God spake unto him, saying, I am -the God of Abraham, and the God of Isaac, and the God of Jacob? 12:27 -He is not the God of the dead, but the God of the living: ye therefore -do greatly err. - -12:28 And one of the scribes came, and having heard them reasoning -together, and perceiving that he had answered them well, asked him, -Which is the first commandment of all? 12:29 And Jesus answered him, -The first of all the commandments is, Hear, O Israel; The Lord our God -is one Lord: 12:30 And thou shalt love the Lord thy God with all thy -heart, and with all thy soul, and with all thy mind, and with all thy -strength: this is the first commandment. - -12:31 And the second is like, namely this, Thou shalt love thy -neighbour as thyself. There is none other commandment greater than -these. - -12:32 And the scribe said unto him, Well, Master, thou hast said the -truth: for there is one God; and there is none other but he: 12:33 And -to love him with all the heart, and with all the understanding, and -with all the soul, and with all the strength, and to love his -neighbour as himself, is more than all whole burnt offerings and -sacrifices. - -12:34 And when Jesus saw that he answered discreetly, he said unto -him, Thou art not far from the kingdom of God. And no man after that -durst ask him any question. - -12:35 And Jesus answered and said, while he taught in the temple, How -say the scribes that Christ is the son of David? 12:36 For David -himself said by the Holy Ghost, The LORD said to my Lord, Sit thou on -my right hand, till I make thine enemies thy footstool. - -12:37 David therefore himself calleth him Lord; and whence is he then -his son? And the common people heard him gladly. - -12:38 And he said unto them in his doctrine, Beware of the scribes, -which love to go in long clothing, and love salutations in the -marketplaces, 12:39 And the chief seats in the synagogues, and the -uppermost rooms at feasts: 12:40 Which devour widows' houses, and for -a pretence make long prayers: these shall receive greater damnation. - -12:41 And Jesus sat over against the treasury, and beheld how the -people cast money into the treasury: and many that were rich cast in -much. - -12:42 And there came a certain poor widow, and she threw in two mites, -which make a farthing. - -12:43 And he called unto him his disciples, and saith unto them, -Verily I say unto you, That this poor widow hath cast more in, than -all they which have cast into the treasury: 12:44 For all they did -cast in of their abundance; but she of her want did cast in all that -she had, even all her living. - -13:1 And as he went out of the temple, one of his disciples saith unto -him, Master, see what manner of stones and what buildings are here! -13:2 And Jesus answering said unto him, Seest thou these great -buildings? there shall not be left one stone upon another, that shall -not be thrown down. - -13:3 And as he sat upon the mount of Olives over against the temple, -Peter and James and John and Andrew asked him privately, 13:4 Tell us, -when shall these things be? and what shall be the sign when all these -things shall be fulfilled? 13:5 And Jesus answering them began to -say, Take heed lest any man deceive you: 13:6 For many shall come in -my name, saying, I am Christ; and shall deceive many. - -13:7 And when ye shall hear of wars and rumours of wars, be ye not -troubled: for such things must needs be; but the end shall not be yet. - -13:8 For nation shall rise against nation, and kingdom against -kingdom: and there shall be earthquakes in divers places, and there -shall be famines and troubles: these are the beginnings of sorrows. - -13:9 But take heed to yourselves: for they shall deliver you up to -councils; and in the synagogues ye shall be beaten: and ye shall be -brought before rulers and kings for my sake, for a testimony against -them. - -13:10 And the gospel must first be published among all nations. - -13:11 But when they shall lead you, and deliver you up, take no -thought beforehand what ye shall speak, neither do ye premeditate: but -whatsoever shall be given you in that hour, that speak ye: for it is -not ye that speak, but the Holy Ghost. - -13:12 Now the brother shall betray the brother to death, and the -father the son; and children shall rise up against their parents, and -shall cause them to be put to death. - -13:13 And ye shall be hated of all men for my name's sake: but he that -shall endure unto the end, the same shall be saved. - -13:14 But when ye shall see the abomination of desolation, spoken of -by Daniel the prophet, standing where it ought not, (let him that -readeth understand,) then let them that be in Judaea flee to the -mountains: 13:15 And let him that is on the housetop not go down into -the house, neither enter therein, to take any thing out of his house: -13:16 And let him that is in the field not turn back again for to take -up his garment. - -13:17 But woe to them that are with child, and to them that give suck -in those days! 13:18 And pray ye that your flight be not in the -winter. - -13:19 For in those days shall be affliction, such as was not from the -beginning of the creation which God created unto this time, neither -shall be. - -13:20 And except that the Lord had shortened those days, no flesh -should be saved: but for the elect's sake, whom he hath chosen, he -hath shortened the days. - -13:21 And then if any man shall say to you, Lo, here is Christ; or, -lo, he is there; believe him not: 13:22 For false Christs and false -prophets shall rise, and shall shew signs and wonders, to seduce, if -it were possible, even the elect. - -13:23 But take ye heed: behold, I have foretold you all things. - -13:24 But in those days, after that tribulation, the sun shall be -darkened, and the moon shall not give her light, 13:25 And the stars -of heaven shall fall, and the powers that are in heaven shall be -shaken. - -13:26 And then shall they see the Son of man coming in the clouds with -great power and glory. - -13:27 And then shall he send his angels, and shall gather together his -elect from the four winds, from the uttermost part of the earth to the -uttermost part of heaven. - -13:28 Now learn a parable of the fig tree; When her branch is yet -tender, and putteth forth leaves, ye know that summer is near: 13:29 -So ye in like manner, when ye shall see these things come to pass, -know that it is nigh, even at the doors. - -13:30 Verily I say unto you, that this generation shall not pass, till -all these things be done. - -13:31 Heaven and earth shall pass away: but my words shall not pass -away. - -13:32 But of that day and that hour knoweth no man, no, not the angels -which are in heaven, neither the Son, but the Father. - -13:33 Take ye heed, watch and pray: for ye know not when the time is. - -13:34 For the Son of Man is as a man taking a far journey, who left -his house, and gave authority to his servants, and to every man his -work, and commanded the porter to watch. - -13:35 Watch ye therefore: for ye know not when the master of the house -cometh, at even, or at midnight, or at the cockcrowing, or in the -morning: 13:36 Lest coming suddenly he find you sleeping. - -13:37 And what I say unto you I say unto all, Watch. - -14:1 After two days was the feast of the passover, and of unleavened -bread: and the chief priests and the scribes sought how they might -take him by craft, and put him to death. - -14:2 But they said, Not on the feast day, lest there be an uproar of -the people. - -14:3 And being in Bethany in the house of Simon the leper, as he sat -at meat, there came a woman having an alabaster box of ointment of -spikenard very precious; and she brake the box, and poured it on his -head. - -14:4 And there were some that had indignation within themselves, and -said, Why was this waste of the ointment made? 14:5 For it might have -been sold for more than three hundred pence, and have been given to -the poor. And they murmured against her. - -14:6 And Jesus said, Let her alone; why trouble ye her? she hath -wrought a good work on me. - -14:7 For ye have the poor with you always, and whensoever ye will ye -may do them good: but me ye have not always. - -14:8 She hath done what she could: she is come aforehand to anoint my -body to the burying. - -14:9 Verily I say unto you, Wheresoever this gospel shall be preached -throughout the whole world, this also that she hath done shall be -spoken of for a memorial of her. - -14:10 And Judas Iscariot, one of the twelve, went unto the chief -priests, to betray him unto them. - -14:11 And when they heard it, they were glad, and promised to give him -money. And he sought how he might conveniently betray him. - -14:12 And the first day of unleavened bread, when they killed the -passover, his disciples said unto him, Where wilt thou that we go and -prepare that thou mayest eat the passover? 14:13 And he sendeth forth -two of his disciples, and saith unto them, Go ye into the city, and -there shall meet you a man bearing a pitcher of water: follow him. - -14:14 And wheresoever he shall go in, say ye to the goodman of the -house, The Master saith, Where is the guestchamber, where I shall eat -the passover with my disciples? 14:15 And he will shew you a large -upper room furnished and prepared: there make ready for us. - -14:16 And his disciples went forth, and came into the city, and found -as he had said unto them: and they made ready the passover. - -14:17 And in the evening he cometh with the twelve. - -14:18 And as they sat and did eat, Jesus said, Verily I say unto you, -One of you which eateth with me shall betray me. - -14:19 And they began to be sorrowful, and to say unto him one by one, -Is it I? and another said, Is it I? 14:20 And he answered and said -unto them, It is one of the twelve, that dippeth with me in the dish. - -14:21 The Son of man indeed goeth, as it is written of him: but woe to -that man by whom the Son of man is betrayed! good were it for that man -if he had never been born. - -14:22 And as they did eat, Jesus took bread, and blessed, and brake -it, and gave to them, and said, Take, eat: this is my body. - -14:23 And he took the cup, and when he had given thanks, he gave it to -them: and they all drank of it. - -14:24 And he said unto them, This is my blood of the new testament, -which is shed for many. - -14:25 Verily I say unto you, I will drink no more of the fruit of the -vine, until that day that I drink it new in the kingdom of God. - -14:26 And when they had sung an hymn, they went out into the mount of -Olives. - -14:27 And Jesus saith unto them, All ye shall be offended because of -me this night: for it is written, I will smite the shepherd, and the -sheep shall be scattered. - -14:28 But after that I am risen, I will go before you into Galilee. - -14:29 But Peter said unto him, Although all shall be offended, yet -will not I. - -14:30 And Jesus saith unto him, Verily I say unto thee, That this day, -even in this night, before the cock crow twice, thou shalt deny me -thrice. - -14:31 But he spake the more vehemently, If I should die with thee, I -will not deny thee in any wise. Likewise also said they all. - -14:32 And they came to a place which was named Gethsemane: and he -saith to his disciples, Sit ye here, while I shall pray. - -14:33 And he taketh with him Peter and James and John, and began to be -sore amazed, and to be very heavy; 14:34 And saith unto them, My soul -is exceeding sorrowful unto death: tarry ye here, and watch. - -14:35 And he went forward a little, and fell on the ground, and prayed -that, if it were possible, the hour might pass from him. - -14:36 And he said, Abba, Father, all things are possible unto thee; -take away this cup from me: nevertheless not what I will, but what -thou wilt. - -14:37 And he cometh, and findeth them sleeping, and saith unto Peter, -Simon, sleepest thou? couldest not thou watch one hour? 14:38 Watch -ye and pray, lest ye enter into temptation. The spirit truly is ready, -but the flesh is weak. - -14:39 And again he went away, and prayed, and spake the same words. - -14:40 And when he returned, he found them asleep again, (for their -eyes were heavy,) neither wist they what to answer him. - -14:41 And he cometh the third time, and saith unto them, Sleep on now, -and take your rest: it is enough, the hour is come; behold, the Son of -man is betrayed into the hands of sinners. - -14:42 Rise up, let us go; lo, he that betrayeth me is at hand. - -14:43 And immediately, while he yet spake, cometh Judas, one of the -twelve, and with him a great multitude with swords and staves, from -the chief priests and the scribes and the elders. - -14:44 And he that betrayed him had given them a token, saying, -Whomsoever I shall kiss, that same is he; take him, and lead him away -safely. - -14:45 And as soon as he was come, he goeth straightway to him, and -saith, Master, master; and kissed him. - -14:46 And they laid their hands on him, and took him. - -14:47 And one of them that stood by drew a sword, and smote a servant -of the high priest, and cut off his ear. - -14:48 And Jesus answered and said unto them, Are ye come out, as -against a thief, with swords and with staves to take me? 14:49 I was -daily with you in the temple teaching, and ye took me not: but the -scriptures must be fulfilled. - -14:50 And they all forsook him, and fled. - -14:51 And there followed him a certain young man, having a linen cloth -cast about his naked body; and the young men laid hold on him: 14:52 -And he left the linen cloth, and fled from them naked. - -14:53 And they led Jesus away to the high priest: and with him were -assembled all the chief priests and the elders and the scribes. - -14:54 And Peter followed him afar off, even into the palace of the -high priest: and he sat with the servants, and warmed himself at the -fire. - -14:55 And the chief priests and all the council sought for witness -against Jesus to put him to death; and found none. - -14:56 For many bare false witness against him, but their witness -agreed not together. - -14:57 And there arose certain, and bare false witness against him, -saying, 14:58 We heard him say, I will destroy this temple that is -made with hands, and within three days I will build another made -without hands. - -14:59 But neither so did their witness agree together. - -14:60 And the high priest stood up in the midst, and asked Jesus, -saying, Answerest thou nothing? what is it which these witness against -thee? 14:61 But he held his peace, and answered nothing. Again the -high priest asked him, and said unto him, Art thou the Christ, the Son -of the Blessed? 14:62 And Jesus said, I am: and ye shall see the Son -of man sitting on the right hand of power, and coming in the clouds of -heaven. - -14:63 Then the high priest rent his clothes, and saith, What need we -any further witnesses? 14:64 Ye have heard the blasphemy: what think -ye? And they all condemned him to be guilty of death. - -14:65 And some began to spit on him, and to cover his face, and to -buffet him, and to say unto him, Prophesy: and the servants did strike -him with the palms of their hands. - -14:66 And as Peter was beneath in the palace, there cometh one of the -maids of the high priest: 14:67 And when she saw Peter warming -himself, she looked upon him, and said, And thou also wast with Jesus -of Nazareth. - -14:68 But he denied, saying, I know not, neither understand I what -thou sayest. And he went out into the porch; and the cock crew. - -14:69 And a maid saw him again, and began to say to them that stood -by, This is one of them. - -14:70 And he denied it again. And a little after, they that stood by -said again to Peter, Surely thou art one of them: for thou art a -Galilaean, and thy speech agreeth thereto. - -14:71 But he began to curse and to swear, saying, I know not this man -of whom ye speak. - -14:72 And the second time the cock crew. And Peter called to mind the -word that Jesus said unto him, Before the cock crow twice, thou shalt -deny me thrice. And when he thought thereon, he wept. - -15:1 And straightway in the morning the chief priests held a -consultation with the elders and scribes and the whole council, and -bound Jesus, and carried him away, and delivered him to Pilate. - -15:2 And Pilate asked him, Art thou the King of the Jews? And he -answering said unto them, Thou sayest it. - -15:3 And the chief priests accused him of many things: but he answered -nothing. - -15:4 And Pilate asked him again, saying, Answerest thou nothing? -behold how many things they witness against thee. - -15:5 But Jesus yet answered nothing; so that Pilate marvelled. - -15:6 Now at that feast he released unto them one prisoner, whomsoever -they desired. - -15:7 And there was one named Barabbas, which lay bound with them that -had made insurrection with him, who had committed murder in the -insurrection. - -15:8 And the multitude crying aloud began to desire him to do as he -had ever done unto them. - -15:9 But Pilate answered them, saying, Will ye that I release unto you -the King of the Jews? 15:10 For he knew that the chief priests had -delivered him for envy. - -15:11 But the chief priests moved the people, that he should rather -release Barabbas unto them. - -15:12 And Pilate answered and said again unto them, What will ye then -that I shall do unto him whom ye call the King of the Jews? 15:13 And -they cried out again, Crucify him. - -15:14 Then Pilate said unto them, Why, what evil hath he done? And -they cried out the more exceedingly, Crucify him. - -15:15 And so Pilate, willing to content the people, released Barabbas -unto them, and delivered Jesus, when he had scourged him, to be -crucified. - -15:16 And the soldiers led him away into the hall, called Praetorium; -and they call together the whole band. - -15:17 And they clothed him with purple, and platted a crown of thorns, -and put it about his head, 15:18 And began to salute him, Hail, King -of the Jews! 15:19 And they smote him on the head with a reed, and -did spit upon him, and bowing their knees worshipped him. - -15:20 And when they had mocked him, they took off the purple from him, -and put his own clothes on him, and led him out to crucify him. - -15:21 And they compel one Simon a Cyrenian, who passed by, coming out -of the country, the father of Alexander and Rufus, to bear his cross. - -15:22 And they bring him unto the place Golgotha, which is, being -interpreted, The place of a skull. - -15:23 And they gave him to drink wine mingled with myrrh: but he -received it not. - -15:24 And when they had crucified him, they parted his garments, -casting lots upon them, what every man should take. - -15:25 And it was the third hour, and they crucified him. - -15:26 And the superscription of his accusation was written over, THE -KING OF THE JEWS. - -15:27 And with him they crucify two thieves; the one on his right -hand, and the other on his left. - -15:28 And the scripture was fulfilled, which saith, And he was -numbered with the transgressors. - -15:29 And they that passed by railed on him, wagging their heads, and -saying, Ah, thou that destroyest the temple, and buildest it in three -days, 15:30 Save thyself, and come down from the cross. - -15:31 Likewise also the chief priests mocking said among themselves -with the scribes, He saved others; himself he cannot save. - -15:32 Let Christ the King of Israel descend now from the cross, that -we may see and believe. And they that were crucified with him reviled -him. - -15:33 And when the sixth hour was come, there was darkness over the -whole land until the ninth hour. - -15:34 And at the ninth hour Jesus cried with a loud voice, saying, -Eloi, Eloi, lama sabachthani? which is, being interpreted, My God, my -God, why hast thou forsaken me? 15:35 And some of them that stood by, -when they heard it, said, Behold, he calleth Elias. - -15:36 And one ran and filled a spunge full of vinegar, and put it on a -reed, and gave him to drink, saying, Let alone; let us see whether -Elias will come to take him down. - -15:37 And Jesus cried with a loud voice, and gave up the ghost. - -15:38 And the veil of the temple was rent in twain from the top to the -bottom. - -15:39 And when the centurion, which stood over against him, saw that -he so cried out, and gave up the ghost, he said, Truly this man was -the Son of God. - -15:40 There were also women looking on afar off: among whom was Mary -Magdalene, and Mary the mother of James the less and of Joses, and -Salome; 15:41 (Who also, when he was in Galilee, followed him, and -ministered unto him;) and many other women which came up with him unto -Jerusalem. - -15:42 And now when the even was come, because it was the preparation, -that is, the day before the sabbath, 15:43 Joseph of Arimathaea, an -honourable counsellor, which also waited for the kingdom of God, came, -and went in boldly unto Pilate, and craved the body of Jesus. - -15:44 And Pilate marvelled if he were already dead: and calling unto -him the centurion, he asked him whether he had been any while dead. - -15:45 And when he knew it of the centurion, he gave the body to -Joseph. - -15:46 And he bought fine linen, and took him down, and wrapped him in -the linen, and laid him in a sepulchre which was hewn out of a rock, -and rolled a stone unto the door of the sepulchre. - -15:47 And Mary Magdalene and Mary the mother of Joses beheld where he -was laid. - -16:1 And when the sabbath was past, Mary Magdalene, and Mary the -mother of James, and Salome, had bought sweet spices, that they might -come and anoint him. - -16:2 And very early in the morning the first day of the week, they -came unto the sepulchre at the rising of the sun. - -16:3 And they said among themselves, Who shall roll us away the stone -from the door of the sepulchre? 16:4 And when they looked, they saw -that the stone was rolled away: for it was very great. - -16:5 And entering into the sepulchre, they saw a young man sitting on -the right side, clothed in a long white garment; and they were -affrighted. - -16:6 And he saith unto them, Be not affrighted: Ye seek Jesus of -Nazareth, which was crucified: he is risen; he is not here: behold the -place where they laid him. - -16:7 But go your way, tell his disciples and Peter that he goeth -before you into Galilee: there shall ye see him, as he said unto you. - -16:8 And they went out quickly, and fled from the sepulchre; for they -trembled and were amazed: neither said they any thing to any man; for -they were afraid. - -16:9 Now when Jesus was risen early the first day of the week, he -appeared first to Mary Magdalene, out of whom he had cast seven -devils. - -16:10 And she went and told them that had been with him, as they -mourned and wept. - -16:11 And they, when they had heard that he was alive, and had been -seen of her, believed not. - -16:12 After that he appeared in another form unto two of them, as they -walked, and went into the country. - -16:13 And they went and told it unto the residue: neither believed -they them. - -16:14 Afterward he appeared unto the eleven as they sat at meat, and -upbraided them with their unbelief and hardness of heart, because they -believed not them which had seen him after he was risen. - -16:15 And he said unto them, Go ye into all the world, and preach the -gospel to every creature. - -16:16 He that believeth and is baptized shall be saved; but he that -believeth not shall be damned. - -16:17 And these signs shall follow them that believe; In my name shall -they cast out devils; they shall speak with new tongues; 16:18 They -shall take up serpents; and if they drink any deadly thing, it shall -not hurt them; they shall lay hands on the sick, and they shall -recover. - -16:19 So then after the Lord had spoken unto them, he was received up -into heaven, and sat on the right hand of God. - -16:20 And they went forth, and preached every where, the Lord working -with them, and confirming the word with signs following. Amen. - - - - -The Gospel According to Saint Luke - - -1:1 Forasmuch as many have taken in hand to set forth in order a -declaration of those things which are most surely believed among us, -1:2 Even as they delivered them unto us, which from the beginning were -eyewitnesses, and ministers of the word; 1:3 It seemed good to me -also, having had perfect understanding of all things from the very -first, to write unto thee in order, most excellent Theophilus, 1:4 -That thou mightest know the certainty of those things, wherein thou -hast been instructed. - -1:5 THERE was in the days of Herod, the king of Judaea, a certain -priest named Zacharias, of the course of Abia: and his wife was of the -daughters of Aaron, and her name was Elisabeth. - -1:6 And they were both righteous before God, walking in all the -commandments and ordinances of the Lord blameless. - -1:7 And they had no child, because that Elisabeth was barren, and they -both were now well stricken in years. - -1:8 And it came to pass, that while he executed the priest's office -before God in the order of his course, 1:9 According to the custom of -the priest's office, his lot was to burn incense when he went into the -temple of the Lord. - -1:10 And the whole multitude of the people were praying without at the -time of incense. - -1:11 And there appeared unto him an angel of the Lord standing on the -right side of the altar of incense. - -1:12 And when Zacharias saw him, he was troubled, and fear fell upon -him. - -1:13 But the angel said unto him, Fear not, Zacharias: for thy prayer -is heard; and thy wife Elisabeth shall bear thee a son, and thou shalt -call his name John. - -1:14 And thou shalt have joy and gladness; and many shall rejoice at -his birth. - -1:15 For he shall be great in the sight of the Lord, and shall drink -neither wine nor strong drink; and he shall be filled with the Holy -Ghost, even from his mother's womb. - -1:16 And many of the children of Israel shall he turn to the Lord -their God. - -1:17 And he shall go before him in the spirit and power of Elias, to -turn the hearts of the fathers to the children, and the disobedient to -the wisdom of the just; to make ready a people prepared for the Lord. - -1:18 And Zacharias said unto the angel, Whereby shall I know this? for -I am an old man, and my wife well stricken in years. - -1:19 And the angel answering said unto him, I am Gabriel, that stand -in the presence of God; and am sent to speak unto thee, and to shew -thee these glad tidings. - -1:20 And, behold, thou shalt be dumb, and not able to speak, until the -day that these things shall be performed, because thou believest not -my words, which shall be fulfilled in their season. - -1:21 And the people waited for Zacharias, and marvelled that he -tarried so long in the temple. - -1:22 And when he came out, he could not speak unto them: and they -perceived that he had seen a vision in the temple: for he beckoned -unto them, and remained speechless. - -1:23 And it came to pass, that, as soon as the days of his -ministration were accomplished, he departed to his own house. - -1:24 And after those days his wife Elisabeth conceived, and hid -herself five months, saying, 1:25 Thus hath the Lord dealt with me in -the days wherein he looked on me, to take away my reproach among men. - -1:26 And in the sixth month the angel Gabriel was sent from God unto a -city of Galilee, named Nazareth, 1:27 To a virgin espoused to a man -whose name was Joseph, of the house of David; and the virgin's name -was Mary. - -1:28 And the angel came in unto her, and said, Hail, thou that art -highly favoured, the Lord is with thee: blessed art thou among women. - -1:29 And when she saw him, she was troubled at his saying, and cast in -her mind what manner of salutation this should be. - -1:30 And the angel said unto her, Fear not, Mary: for thou hast found -favour with God. - -1:31 And, behold, thou shalt conceive in thy womb, and bring forth a -son, and shalt call his name JESUS. - -1:32 He shall be great, and shall be called the Son of the Highest: -and the Lord God shall give unto him the throne of his father David: -1:33 And he shall reign over the house of Jacob for ever; and of his -kingdom there shall be no end. - -1:34 Then said Mary unto the angel, How shall this be, seeing I know -not a man? 1:35 And the angel answered and said unto her, The Holy -Ghost shall come upon thee, and the power of the Highest shall -overshadow thee: therefore also that holy thing which shall be born of -thee shall be called the Son of God. - -1:36 And, behold, thy cousin Elisabeth, she hath also conceived a son -in her old age: and this is the sixth month with her, who was called -barren. - -1:37 For with God nothing shall be impossible. - -1:38 And Mary said, Behold the handmaid of the Lord; be it unto me -according to thy word. And the angel departed from her. - -1:39 And Mary arose in those days, and went into the hill country with -haste, into a city of Juda; 1:40 And entered into the house of -Zacharias, and saluted Elisabeth. - -1:41 And it came to pass, that, when Elisabeth heard the salutation of -Mary, the babe leaped in her womb; and Elisabeth was filled with the -Holy Ghost: 1:42 And she spake out with a loud voice, and said, -Blessed art thou among women, and blessed is the fruit of thy womb. - -1:43 And whence is this to me, that the mother of my Lord should come -to me? 1:44 For, lo, as soon as the voice of thy salutation sounded -in mine ears, the babe leaped in my womb for joy. - -1:45 And blessed is she that believed: for there shall be a -performance of those things which were told her from the Lord. - -1:46 And Mary said, My soul doth magnify the Lord, 1:47 And my spirit -hath rejoiced in God my Saviour. - -1:48 For he hath regarded the low estate of his handmaiden: for, -behold, from henceforth all generations shall call me blessed. - -1:49 For he that is mighty hath done to me great things; and holy is -his name. - -1:50 And his mercy is on them that fear him from generation to -generation. - -1:51 He hath shewed strength with his arm; he hath scattered the proud -in the imagination of their hearts. - -1:52 He hath put down the mighty from their seats, and exalted them of -low degree. - -1:53 He hath filled the hungry with good things; and the rich he hath -sent empty away. - -1:54 He hath holpen his servant Israel, in remembrance of his mercy; -1:55 As he spake to our fathers, to Abraham, and to his seed for ever. - -1:56 And Mary abode with her about three months, and returned to her -own house. - -1:57 Now Elisabeth's full time came that she should be delivered; and -she brought forth a son. - -1:58 And her neighbours and her cousins heard how the Lord had shewed -great mercy upon her; and they rejoiced with her. - -1:59 And it came to pass, that on the eighth day they came to -circumcise the child; and they called him Zacharias, after the name of -his father. - -1:60 And his mother answered and said, Not so; but he shall be called -John. - -1:61 And they said unto her, There is none of thy kindred that is -called by this name. - -1:62 And they made signs to his father, how he would have him called. - -1:63 And he asked for a writing table, and wrote, saying, His name is -John. And they marvelled all. - -1:64 And his mouth was opened immediately, and his tongue loosed, and -he spake, and praised God. - -1:65 And fear came on all that dwelt round about them: and all these -sayings were noised abroad throughout all the hill country of Judaea. - -1:66 And all they that heard them laid them up in their hearts, -saying, What manner of child shall this be! And the hand of the Lord -was with him. - -1:67 And his father Zacharias was filled with the Holy Ghost, and -prophesied, saying, 1:68 Blessed be the Lord God of Israel; for he -hath visited and redeemed his people, 1:69 And hath raised up an horn -of salvation for us in the house of his servant David; 1:70 As he -spake by the mouth of his holy prophets, which have been since the -world began: 1:71 That we should be saved from our enemies, and from -the hand of all that hate us; 1:72 To perform the mercy promised to -our fathers, and to remember his holy covenant; 1:73 The oath which he -sware to our father Abraham, 1:74 That he would grant unto us, that we -being delivered out of the hand of our enemies might serve him without -fear, 1:75 In holiness and righteousness before him, all the days of -our life. - -1:76 And thou, child, shalt be called the prophet of the Highest: for -thou shalt go before the face of the Lord to prepare his ways; 1:77 To -give knowledge of salvation unto his people by the remission of their -sins, 1:78 Through the tender mercy of our God; whereby the dayspring -from on high hath visited us, 1:79 To give light to them that sit in -darkness and in the shadow of death, to guide our feet into the way of -peace. - -1:80 And the child grew, and waxed strong in spirit, and was in the -deserts till the day of his shewing unto Israel. - -2:1 And it came to pass in those days, that there went out a decree -from Caesar Augustus that all the world should be taxed. - -2:2 (And this taxing was first made when Cyrenius was governor of -Syria.) 2:3 And all went to be taxed, every one into his own city. - -2:4 And Joseph also went up from Galilee, out of the city of Nazareth, -into Judaea, unto the city of David, which is called Bethlehem; -(because he was of the house and lineage of David:) 2:5 To be taxed -with Mary his espoused wife, being great with child. - -2:6 And so it was, that, while they were there, the days were -accomplished that she should be delivered. - -2:7 And she brought forth her firstborn son, and wrapped him in -swaddling clothes, and laid him in a manger; because there was no room -for them in the inn. - -2:8 And there were in the same country shepherds abiding in the field, -keeping watch over their flock by night. - -2:9 And, lo, the angel of the Lord came upon them, and the glory of -the Lord shone round about them: and they were sore afraid. - -2:10 And the angel said unto them, Fear not: for, behold, I bring you -good tidings of great joy, which shall be to all people. - -2:11 For unto you is born this day in the city of David a Saviour, -which is Christ the Lord. - -2:12 And this shall be a sign unto you; Ye shall find the babe wrapped -in swaddling clothes, lying in a manger. - -2:13 And suddenly there was with the angel a multitude of the heavenly -host praising God, and saying, 2:14 Glory to God in the highest, and -on earth peace, good will toward men. - -2:15 And it came to pass, as the angels were gone away from them into -heaven, the shepherds said one to another, Let us now go even unto -Bethlehem, and see this thing which is come to pass, which the Lord -hath made known unto us. - -2:16 And they came with haste, and found Mary, and Joseph, and the -babe lying in a manger. - -2:17 And when they had seen it, they made known abroad the saying -which was told them concerning this child. - -2:18 And all they that heard it wondered at those things which were -told them by the shepherds. - -2:19 But Mary kept all these things, and pondered them in her heart. - -2:20 And the shepherds returned, glorifying and praising God for all -the things that they had heard and seen, as it was told unto them. - -2:21 And when eight days were accomplished for the circumcising of the -child, his name was called JESUS, which was so named of the angel -before he was conceived in the womb. - -2:22 And when the days of her purification according to the law of -Moses were accomplished, they brought him to Jerusalem, to present him -to the Lord; 2:23 (As it is written in the law of the LORD, Every male -that openeth the womb shall be called holy to the Lord;) 2:24 And to -offer a sacrifice according to that which is said in the law of the -Lord, A pair of turtledoves, or two young pigeons. - -2:25 And, behold, there was a man in Jerusalem, whose name was Simeon; -and the same man was just and devout, waiting for the consolation of -Israel: and the Holy Ghost was upon him. - -2:26 And it was revealed unto him by the Holy Ghost, that he should -not see death, before he had seen the Lord's Christ. - -2:27 And he came by the Spirit into the temple: and when the parents -brought in the child Jesus, to do for him after the custom of the law, -2:28 Then took he him up in his arms, and blessed God, and said, 2:29 -Lord, now lettest thou thy servant depart in peace, according to thy -word: 2:30 For mine eyes have seen thy salvation, 2:31 Which thou hast -prepared before the face of all people; 2:32 A light to lighten the -Gentiles, and the glory of thy people Israel. - -2:33 And Joseph and his mother marvelled at those things which were -spoken of him. - -2:34 And Simeon blessed them, and said unto Mary his mother, Behold, -this child is set for the fall and rising again of many in Israel; and -for a sign which shall be spoken against; 2:35 (Yea, a sword shall -pierce through thy own soul also,) that the thoughts of many hearts -may be revealed. - -2:36 And there was one Anna, a prophetess, the daughter of Phanuel, of -the tribe of Aser: she was of a great age, and had lived with an -husband seven years from her virginity; 2:37 And she was a widow of -about fourscore and four years, which departed not from the temple, -but served God with fastings and prayers night and day. - -2:38 And she coming in that instant gave thanks likewise unto the -Lord, and spake of him to all them that looked for redemption in -Jerusalem. - -2:39 And when they had performed all things according to the law of -the Lord, they returned into Galilee, to their own city Nazareth. - -2:40 And the child grew, and waxed strong in spirit, filled with -wisdom: and the grace of God was upon him. - -2:41 Now his parents went to Jerusalem every year at the feast of the -passover. - -2:42 And when he was twelve years old, they went up to Jerusalem after -the custom of the feast. - -2:43 And when they had fulfilled the days, as they returned, the child -Jesus tarried behind in Jerusalem; and Joseph and his mother knew not -of it. - -2:44 But they, supposing him to have been in the company, went a day's -journey; and they sought him among their kinsfolk and acquaintance. - -2:45 And when they found him not, they turned back again to Jerusalem, -seeking him. - -2:46 And it came to pass, that after three days they found him in the -temple, sitting in the midst of the doctors, both hearing them, and -asking them questions. - -2:47 And all that heard him were astonished at his understanding and -answers. - -2:48 And when they saw him, they were amazed: and his mother said unto -him, Son, why hast thou thus dealt with us? behold, thy father and I -have sought thee sorrowing. - -2:49 And he said unto them, How is it that ye sought me? wist ye not -that I must be about my Father's business? 2:50 And they understood -not the saying which he spake unto them. - -2:51 And he went down with them, and came to Nazareth, and was subject -unto them: but his mother kept all these sayings in her heart. - -2:52 And Jesus increased in wisdom and stature, and in favour with God -and man. - -3:1 Now in the fifteenth year of the reign of Tiberius Caesar, Pontius -Pilate being governor of Judaea, and Herod being tetrarch of Galilee, -and his brother Philip tetrarch of Ituraea and of the region of -Trachonitis, and Lysanias the tetrarch of Abilene, 3:2 Annas and -Caiaphas being the high priests, the word of God came unto John the -son of Zacharias in the wilderness. - -3:3 And he came into all the country about Jordan, preaching the -baptism of repentance for the remission of sins; 3:4 As it is written -in the book of the words of Esaias the prophet, saying, The voice of -one crying in the wilderness, Prepare ye the way of the Lord, make his -paths straight. - -3:5 Every valley shall be filled, and every mountain and hill shall be -brought low; and the crooked shall be made straight, and the rough -ways shall be made smooth; 3:6 And all flesh shall see the salvation -of God. - -3:7 Then said he to the multitude that came forth to be baptized of -him, O generation of vipers, who hath warned you to flee from the -wrath to come? 3:8 Bring forth therefore fruits worthy of repentance, -and begin not to say within yourselves, We have Abraham to our father: -for I say unto you, That God is able of these stones to raise up -children unto Abraham. - -3:9 And now also the axe is laid unto the root of the trees: every -tree therefore which bringeth not forth good fruit is hewn down, and -cast into the fire. - -3:10 And the people asked him, saying, What shall we do then? 3:11 He -answereth and saith unto them, He that hath two coats, let him impart -to him that hath none; and he that hath meat, let him do likewise. - -3:12 Then came also publicans to be baptized, and said unto him, -Master, what shall we do? 3:13 And he said unto them, Exact no more -than that which is appointed you. - -3:14 And the soldiers likewise demanded of him, saying, And what shall -we do? And he said unto them, Do violence to no man, neither accuse -any falsely; and be content with your wages. - -3:15 And as the people were in expectation, and all men mused in their -hearts of John, whether he were the Christ, or not; 3:16 John -answered, saying unto them all, I indeed baptize you with water; but -one mightier than I cometh, the latchet of whose shoes I am not worthy -to unloose: he shall baptize you with the Holy Ghost and with fire: -3:17 Whose fan is in his hand, and he will throughly purge his floor, -and will gather the wheat into his garner; but the chaff he will burn -with fire unquenchable. - -3:18 And many other things in his exhortation preached he unto the -people. - -3:19 But Herod the tetrarch, being reproved by him for Herodias his -brother Philip's wife, and for all the evils which Herod had done, -3:20 Added yet this above all, that he shut up John in prison. - -3:21 Now when all the people were baptized, it came to pass, that -Jesus also being baptized, and praying, the heaven was opened, 3:22 -And the Holy Ghost descended in a bodily shape like a dove upon him, -and a voice came from heaven, which said, Thou art my beloved Son; in -thee I am well pleased. - -3:23 And Jesus himself began to be about thirty years of age, being -(as was supposed) the son of Joseph, which was the son of Heli, 3:24 -Which was the son of Matthat, which was the son of Levi, which was the -son of Melchi, which was the son of Janna, which was the son of -Joseph, 3:25 Which was the son of Mattathias, which was the son of -Amos, which was the son of Naum, which was the son of Esli, which was -the son of Nagge, 3:26 Which was the son of Maath, which was the son -of Mattathias, which was the son of Semei, which was the son of -Joseph, which was the son of Juda, 3:27 Which was the son of Joanna, -which was the son of Rhesa, which was the son of Zorobabel, which was -the son of Salathiel, which was the son of Neri, 3:28 Which was the -son of Melchi, which was the son of Addi, which was the son of Cosam, -which was the son of Elmodam, which was the son of Er, 3:29 Which was -the son of Jose, which was the son of Eliezer, which was the son of -Jorim, which was the son of Matthat, which was the son of Levi, 3:30 -Which was the son of Simeon, which was the son of Juda, which was the -son of Joseph, which was the son of Jonan, which was the son of -Eliakim, 3:31 Which was the son of Melea, which was the son of Menan, -which was the son of Mattatha, which was the son of Nathan, which was -the son of David, 3:32 Which was the son of Jesse, which was the son -of Obed, which was the son of Booz, which was the son of Salmon, which -was the son of Naasson, 3:33 Which was the son of Aminadab, which was -the son of Aram, which was the son of Esrom, which was the son of -Phares, which was the son of Juda, 3:34 Which was the son of Jacob, -which was the son of Isaac, which was the son of Abraham, which was -the son of Thara, which was the son of Nachor, 3:35 Which was the son -of Saruch, which was the son of Ragau, which was the son of Phalec, -which was the son of Heber, which was the son of Sala, 3:36 Which was -the son of Cainan, which was the son of Arphaxad, which was the son of -Sem, which was the son of Noe, which was the son of Lamech, 3:37 Which -was the son of Mathusala, which was the son of Enoch, which was the -son of Jared, which was the son of Maleleel, which was the son of -Cainan, 3:38 Which was the son of Enos, which was the son of Seth, -which was the son of Adam, which was the son of God. - -4:1 And Jesus being full of the Holy Ghost returned from Jordan, and -was led by the Spirit into the wilderness, 4:2 Being forty days -tempted of the devil. And in those days he did eat nothing: and when -they were ended, he afterward hungered. - -4:3 And the devil said unto him, If thou be the Son of God, command -this stone that it be made bread. - -4:4 And Jesus answered him, saying, It is written, That man shall not -live by bread alone, but by every word of God. - -4:5 And the devil, taking him up into an high mountain, shewed unto -him all the kingdoms of the world in a moment of time. - -4:6 And the devil said unto him, All this power will I give thee, and -the glory of them: for that is delivered unto me; and to whomsoever I -will I give it. - -4:7 If thou therefore wilt worship me, all shall be thine. - -4:8 And Jesus answered and said unto him, Get thee behind me, Satan: -for it is written, Thou shalt worship the Lord thy God, and him only -shalt thou serve. - -4:9 And he brought him to Jerusalem, and set him on a pinnacle of the -temple, and said unto him, If thou be the Son of God, cast thyself -down from hence: 4:10 For it is written, He shall give his angels -charge over thee, to keep thee: 4:11 And in their hands they shall -bear thee up, lest at any time thou dash thy foot against a stone. - -4:12 And Jesus answering said unto him, It is said, Thou shalt not -tempt the Lord thy God. - -4:13 And when the devil had ended all the temptation, he departed from -him for a season. - -4:14 And Jesus returned in the power of the Spirit into Galilee: and -there went out a fame of him through all the region round about. - -4:15 And he taught in their synagogues, being glorified of all. - -4:16 And he came to Nazareth, where he had been brought up: and, as -his custom was, he went into the synagogue on the sabbath day, and -stood up for to read. - -4:17 And there was delivered unto him the book of the prophet Esaias. -And when he had opened the book, he found the place where it was -written, 4:18 The Spirit of the Lord is upon me, because he hath -anointed me to preach the gospel to the poor; he hath sent me to heal -the brokenhearted, to preach deliverance to the captives, and -recovering of sight to the blind, to set at liberty them that are -bruised, 4:19 To preach the acceptable year of the Lord. - -4:20 And he closed the book, and he gave it again to the minister, and -sat down. And the eyes of all them that were in the synagogue were -fastened on him. - -4:21 And he began to say unto them, This day is this scripture -fulfilled in your ears. - -4:22 And all bare him witness, and wondered at the gracious words -which proceeded out of his mouth. And they said, Is not this Joseph's -son? 4:23 And he said unto them, Ye will surely say unto me this -proverb, Physician, heal thyself: whatsoever we have heard done in -Capernaum, do also here in thy country. - -4:24 And he said, Verily I say unto you, No prophet is accepted in his -own country. - -4:25 But I tell you of a truth, many widows were in Israel in the days -of Elias, when the heaven was shut up three years and six months, when -great famine was throughout all the land; 4:26 But unto none of them -was Elias sent, save unto Sarepta, a city of Sidon, unto a woman that -was a widow. - -4:27 And many lepers were in Israel in the time of Eliseus the -prophet; and none of them was cleansed, saving Naaman the Syrian. - -4:28 And all they in the synagogue, when they heard these things, were -filled with wrath, 4:29 And rose up, and thrust him out of the city, -and led him unto the brow of the hill whereon their city was built, -that they might cast him down headlong. - -4:30 But he passing through the midst of them went his way, 4:31 And -came down to Capernaum, a city of Galilee, and taught them on the -sabbath days. - -4:32 And they were astonished at his doctrine: for his word was with -power. - -4:33 And in the synagogue there was a man, which had a spirit of an -unclean devil, and cried out with a loud voice, 4:34 Saying, Let us -alone; what have we to do with thee, thou Jesus of Nazareth? art thou -come to destroy us? I know thee who thou art; the Holy One of God. - -4:35 And Jesus rebuked him, saying, Hold thy peace, and come out of -him. - -And when the devil had thrown him in the midst, he came out of him, -and hurt him not. - -4:36 And they were all amazed, and spake among themselves, saying, -What a word is this! for with authority and power he commandeth the -unclean spirits, and they come out. - -4:37 And the fame of him went out into every place of the country -round about. - -4:38 And he arose out of the synagogue, and entered into Simon's -house. - -And Simon's wife's mother was taken with a great fever; and they -besought him for her. - -4:39 And he stood over her, and rebuked the fever; and it left her: -and immediately she arose and ministered unto them. - -4:40 Now when the sun was setting, all they that had any sick with -divers diseases brought them unto him; and he laid his hands on every -one of them, and healed them. - -4:41 And devils also came out of many, crying out, and saying, Thou -art Christ the Son of God. And he rebuking them suffered them not to -speak: for they knew that he was Christ. - -4:42 And when it was day, he departed and went into a desert place: -and the people sought him, and came unto him, and stayed him, that he -should not depart from them. - -4:43 And he said unto them, I must preach the kingdom of God to other -cities also: for therefore am I sent. - -4:44 And he preached in the synagogues of Galilee. - -5:1 And it came to pass, that, as the people pressed upon him to hear -the word of God, he stood by the lake of Gennesaret, 5:2 And saw two -ships standing by the lake: but the fishermen were gone out of them, -and were washing their nets. - -5:3 And he entered into one of the ships, which was Simon's, and -prayed him that he would thrust out a little from the land. And he sat -down, and taught the people out of the ship. - -5:4 Now when he had left speaking, he said unto Simon, Launch out into -the deep, and let down your nets for a draught. - -5:5 And Simon answering said unto him, Master, we have toiled all the -night, and have taken nothing: nevertheless at thy word I will let -down the net. - -5:6 And when they had this done, they inclosed a great multitude of -fishes: and their net brake. - -5:7 And they beckoned unto their partners, which were in the other -ship, that they should come and help them. And they came, and filled -both the ships, so that they began to sink. - -5:8 When Simon Peter saw it, he fell down at Jesus' knees, saying, -Depart from me; for I am a sinful man, O Lord. - -5:9 For he was astonished, and all that were with him, at the draught -of the fishes which they had taken: 5:10 And so was also James, and -John, the sons of Zebedee, which were partners with Simon. And Jesus -said unto Simon, Fear not; from henceforth thou shalt catch men. - -5:11 And when they had brought their ships to land, they forsook all, -and followed him. - -5:12 And it came to pass, when he was in a certain city, behold a man -full of leprosy: who seeing Jesus fell on his face, and besought him, -saying, Lord, if thou wilt, thou canst make me clean. - -5:13 And he put forth his hand, and touched him, saying, I will: be -thou clean. And immediately the leprosy departed from him. - -5:14 And he charged him to tell no man: but go, and shew thyself to -the priest, and offer for thy cleansing, according as Moses commanded, -for a testimony unto them. - -5:15 But so much the more went there a fame abroad of him: and great -multitudes came together to hear, and to be healed by him of their -infirmities. - -5:16 And he withdrew himself into the wilderness, and prayed. - -5:17 And it came to pass on a certain day, as he was teaching, that -there were Pharisees and doctors of the law sitting by, which were -come out of every town of Galilee, and Judaea, and Jerusalem: and the -power of the Lord was present to heal them. - -5:18 And, behold, men brought in a bed a man which was taken with a -palsy: and they sought means to bring him in, and to lay him before -him. - -5:19 And when they could not find by what way they might bring him in -because of the multitude, they went upon the housetop, and let him -down through the tiling with his couch into the midst before Jesus. - -5:20 And when he saw their faith, he said unto him, Man, thy sins are -forgiven thee. - -5:21 And the scribes and the Pharisees began to reason, saying, Who is -this which speaketh blasphemies? Who can forgive sins, but God alone? -5:22 But when Jesus perceived their thoughts, he answering said unto -them, What reason ye in your hearts? 5:23 Whether is easier, to say, -Thy sins be forgiven thee; or to say, Rise up and walk? 5:24 But that -ye may know that the Son of man hath power upon earth to forgive sins, -(he said unto the sick of the palsy,) I say unto thee, Arise, and take -up thy couch, and go into thine house. - -5:25 And immediately he rose up before them, and took up that whereon -he lay, and departed to his own house, glorifying God. - -5:26 And they were all amazed, and they glorified God, and were filled -with fear, saying, We have seen strange things to day. - -5:27 And after these things he went forth, and saw a publican, named -Levi, sitting at the receipt of custom: and he said unto him, Follow -me. - -5:28 And he left all, rose up, and followed him. - -5:29 And Levi made him a great feast in his own house: and there was a -great company of publicans and of others that sat down with them. - -5:30 But their scribes and Pharisees murmured against his disciples, -saying, Why do ye eat and drink with publicans and sinners? 5:31 And -Jesus answering said unto them, They that are whole need not a -physician; but they that are sick. - -5:32 I came not to call the righteous, but sinners to repentance. - -5:33 And they said unto him, Why do the disciples of John fast often, -and make prayers, and likewise the disciples of the Pharisees; but -thine eat and drink? 5:34 And he said unto them, Can ye make the -children of the bridechamber fast, while the bridegroom is with them? -5:35 But the days will come, when the bridegroom shall be taken away -from them, and then shall they fast in those days. - -5:36 And he spake also a parable unto them; No man putteth a piece of -a new garment upon an old; if otherwise, then both the new maketh a -rent, and the piece that was taken out of the new agreeth not with the -old. - -5:37 And no man putteth new wine into old bottles; else the new wine -will burst the bottles, and be spilled, and the bottles shall perish. - -5:38 But new wine must be put into new bottles; and both are -preserved. - -5:39 No man also having drunk old wine straightway desireth new: for -he saith, The old is better. - -6:1 And it came to pass on the second sabbath after the first, that he -went through the corn fields; and his disciples plucked the ears of -corn, and did eat, rubbing them in their hands. - -6:2 And certain of the Pharisees said unto them, Why do ye that which -is not lawful to do on the sabbath days? 6:3 And Jesus answering them -said, Have ye not read so much as this, what David did, when himself -was an hungred, and they which were with him; 6:4 How he went into the -house of God, and did take and eat the shewbread, and gave also to -them that were with him; which it is not lawful to eat but for the -priests alone? 6:5 And he said unto them, That the Son of man is Lord -also of the sabbath. - -6:6 And it came to pass also on another sabbath, that he entered into -the synagogue and taught: and there was a man whose right hand was -withered. - -6:7 And the scribes and Pharisees watched him, whether he would heal -on the sabbath day; that they might find an accusation against him. - -6:8 But he knew their thoughts, and said to the man which had the -withered hand, Rise up, and stand forth in the midst. And he arose and -stood forth. - -6:9 Then said Jesus unto them, I will ask you one thing; Is it lawful -on the sabbath days to do good, or to do evil? to save life, or to -destroy it? 6:10 And looking round about upon them all, he said unto -the man, Stretch forth thy hand. And he did so: and his hand was -restored whole as the other. - -6:11 And they were filled with madness; and communed one with another -what they might do to Jesus. - -6:12 And it came to pass in those days, that he went out into a -mountain to pray, and continued all night in prayer to God. - -6:13 And when it was day, he called unto him his disciples: and of -them he chose twelve, whom also he named apostles; 6:14 Simon, (whom -he also named Peter,) and Andrew his brother, James and John, Philip -and Bartholomew, 6:15 Matthew and Thomas, James the son of Alphaeus, -and Simon called Zelotes, 6:16 And Judas the brother of James, and -Judas Iscariot, which also was the traitor. - -6:17 And he came down with them, and stood in the plain, and the -company of his disciples, and a great multitude of people out of all -Judaea and Jerusalem, and from the sea coast of Tyre and Sidon, which -came to hear him, and to be healed of their diseases; 6:18 And they -that were vexed with unclean spirits: and they were healed. - -6:19 And the whole multitude sought to touch him: for there went -virtue out of him, and healed them all. - -6:20 And he lifted up his eyes on his disciples, and said, Blessed be -ye poor: for yours is the kingdom of God. - -6:21 Blessed are ye that hunger now: for ye shall be filled. Blessed -are ye that weep now: for ye shall laugh. - -6:22 Blessed are ye, when men shall hate you, and when they shall -separate you from their company, and shall reproach you, and cast out -your name as evil, for the Son of man's sake. - -6:23 Rejoice ye in that day, and leap for joy: for, behold, your -reward is great in heaven: for in the like manner did their fathers -unto the prophets. - -6:24 But woe unto you that are rich! for ye have received your -consolation. - -6:25 Woe unto you that are full! for ye shall hunger. Woe unto you -that laugh now! for ye shall mourn and weep. - -6:26 Woe unto you, when all men shall speak well of you! for so did -their fathers to the false prophets. - -6:27 But I say unto you which hear, Love your enemies, do good to them -which hate you, 6:28 Bless them that curse you, and pray for them -which despitefully use you. - -6:29 And unto him that smiteth thee on the one cheek offer also the -other; and him that taketh away thy cloak forbid not to take thy coat -also. - -6:30 Give to every man that asketh of thee; and of him that taketh -away thy goods ask them not again. - -6:31 And as ye would that men should do to you, do ye also to them -likewise. - -6:32 For if ye love them which love you, what thank have ye? for -sinners also love those that love them. - -6:33 And if ye do good to them which do good to you, what thank have -ye? for sinners also do even the same. - -6:34 And if ye lend to them of whom ye hope to receive, what thank -have ye? for sinners also lend to sinners, to receive as much again. - -6:35 But love ye your enemies, and do good, and lend, hoping for -nothing again; and your reward shall be great, and ye shall be the -children of the Highest: for he is kind unto the unthankful and to the -evil. - -6:36 Be ye therefore merciful, as your Father also is merciful. - -6:37 Judge not, and ye shall not be judged: condemn not, and ye shall -not be condemned: forgive, and ye shall be forgiven: 6:38 Give, and it -shall be given unto you; good measure, pressed down, and shaken -together, and running over, shall men give into your bosom. For with -the same measure that ye mete withal it shall be measured to you -again. - -6:39 And he spake a parable unto them, Can the blind lead the blind? -shall they not both fall into the ditch? 6:40 The disciple is not -above his master: but every one that is perfect shall be as his -master. - -6:41 And why beholdest thou the mote that is in thy brother's eye, but -perceivest not the beam that is in thine own eye? 6:42 Either how -canst thou say to thy brother, Brother, let me pull out the mote that -is in thine eye, when thou thyself beholdest not the beam that is in -thine own eye? Thou hypocrite, cast out first the beam out of thine -own eye, and then shalt thou see clearly to pull out the mote that is -in thy brother's eye. - -6:43 For a good tree bringeth not forth corrupt fruit; neither doth a -corrupt tree bring forth good fruit. - -6:44 For every tree is known by his own fruit. For of thorns men do -not gather figs, nor of a bramble bush gather they grapes. - -6:45 A good man out of the good treasure of his heart bringeth forth -that which is good; and an evil man out of the evil treasure of his -heart bringeth forth that which is evil: for of the abundance of the -heart his mouth speaketh. - -6:46 And why call ye me, Lord, Lord, and do not the things which I -say? 6:47 Whosoever cometh to me, and heareth my sayings, and doeth -them, I will shew you to whom he is like: 6:48 He is like a man which -built an house, and digged deep, and laid the foundation on a rock: -and when the flood arose, the stream beat vehemently upon that house, -and could not shake it: for it was founded upon a rock. - -6:49 But he that heareth, and doeth not, is like a man that without a -foundation built an house upon the earth; against which the stream did -beat vehemently, and immediately it fell; and the ruin of that house -was great. - -7:1 Now when he had ended all his sayings in the audience of the -people, he entered into Capernaum. - -7:2 And a certain centurion's servant, who was dear unto him, was -sick, and ready to die. - -7:3 And when he heard of Jesus, he sent unto him the elders of the -Jews, beseeching him that he would come and heal his servant. - -7:4 And when they came to Jesus, they besought him instantly, saying, -That he was worthy for whom he should do this: 7:5 For he loveth our -nation, and he hath built us a synagogue. - -7:6 Then Jesus went with them. And when he was now not far from the -house, the centurion sent friends to him, saying unto him, Lord, -trouble not thyself: for I am not worthy that thou shouldest enter -under my roof: 7:7 Wherefore neither thought I myself worthy to come -unto thee: but say in a word, and my servant shall be healed. - -7:8 For I also am a man set under authority, having under me soldiers, -and I say unto one, Go, and he goeth; and to another, Come, and he -cometh; and to my servant, Do this, and he doeth it. - -7:9 When Jesus heard these things, he marvelled at him, and turned him -about, and said unto the people that followed him, I say unto you, I -have not found so great faith, no, not in Israel. - -7:10 And they that were sent, returning to the house, found the -servant whole that had been sick. - -7:11 And it came to pass the day after, that he went into a city -called Nain; and many of his disciples went with him, and much people. - -7:12 Now when he came nigh to the gate of the city, behold, there was -a dead man carried out, the only son of his mother, and she was a -widow: and much people of the city was with her. - -7:13 And when the Lord saw her, he had compassion on her, and said -unto her, Weep not. - -7:14 And he came and touched the bier: and they that bare him stood -still. - -And he said, Young man, I say unto thee, Arise. - -7:15 And he that was dead sat up, and began to speak. And he delivered -him to his mother. - -7:16 And there came a fear on all: and they glorified God, saying, -That a great prophet is risen up among us; and, That God hath visited -his people. - -7:17 And this rumour of him went forth throughout all Judaea, and -throughout all the region round about. - -7:18 And the disciples of John shewed him of all these things. - -7:19 And John calling unto him two of his disciples sent them to -Jesus, saying, Art thou he that should come? or look we for another? -7:20 When the men were come unto him, they said, John Baptist hath -sent us unto thee, saying, Art thou he that should come? or look we -for another? 7:21 And in that same hour he cured many of their -infirmities and plagues, and of evil spirits; and unto many that were -blind he gave sight. - -7:22 Then Jesus answering said unto them, Go your way, and tell John -what things ye have seen and heard; how that the blind see, the lame -walk, the lepers are cleansed, the deaf hear, the dead are raised, to -the poor the gospel is preached. - -7:23 And blessed is he, whosoever shall not be offended in me. - -7:24 And when the messengers of John were departed, he began to speak -unto the people concerning John, What went ye out into the wilderness -for to see? A reed shaken with the wind? 7:25 But what went ye out -for to see? A man clothed in soft raiment? Behold, they which are -gorgeously apparelled, and live delicately, are in kings' courts. - -7:26 But what went ye out for to see? A prophet? Yea, I say unto you, -and much more than a prophet. - -7:27 This is he, of whom it is written, Behold, I send my messenger -before thy face, which shall prepare thy way before thee. - -7:28 For I say unto you, Among those that are born of women there is -not a greater prophet than John the Baptist: but he that is least in -the kingdom of God is greater than he. - -7:29 And all the people that heard him, and the publicans, justified -God, being baptized with the baptism of John. - -7:30 But the Pharisees and lawyers rejected the counsel of God against -themselves, being not baptized of him. - -7:31 And the Lord said, Whereunto then shall I liken the men of this -generation? and to what are they like? 7:32 They are like unto -children sitting in the marketplace, and calling one to another, and -saying, We have piped unto you, and ye have not danced; we have -mourned to you, and ye have not wept. - -7:33 For John the Baptist came neither eating bread nor drinking wine; -and ye say, He hath a devil. - -7:34 The Son of man is come eating and drinking; and ye say, Behold a -gluttonous man, and a winebibber, a friend of publicans and sinners! -7:35 But wisdom is justified of all her children. - -7:36 And one of the Pharisees desired him that he would eat with him. -And he went into the Pharisee's house, and sat down to meat. - -7:37 And, behold, a woman in the city, which was a sinner, when she -knew that Jesus sat at meat in the Pharisee's house, brought an -alabaster box of ointment, 7:38 And stood at his feet behind him -weeping, and began to wash his feet with tears, and did wipe them with -the hairs of her head, and kissed his feet, and anointed them with the -ointment. - -7:39 Now when the Pharisee which had bidden him saw it, he spake -within himself, saying, This man, if he were a prophet, would have -known who and what manner of woman this is that toucheth him: for she -is a sinner. - -7:40 And Jesus answering said unto him, Simon, I have somewhat to say -unto thee. And he saith, Master, say on. - -7:41 There was a certain creditor which had two debtors: the one owed -five hundred pence, and the other fifty. - -7:42 And when they had nothing to pay, he frankly forgave them both. -Tell me therefore, which of them will love him most? 7:43 Simon -answered and said, I suppose that he, to whom he forgave most. - -And he said unto him, Thou hast rightly judged. - -7:44 And he turned to the woman, and said unto Simon, Seest thou this -woman? I entered into thine house, thou gavest me no water for my -feet: but she hath washed my feet with tears, and wiped them with the -hairs of her head. - -7:45 Thou gavest me no kiss: but this woman since the time I came in -hath not ceased to kiss my feet. - -7:46 My head with oil thou didst not anoint: but this woman hath -anointed my feet with ointment. - -7:47 Wherefore I say unto thee, Her sins, which are many, are -forgiven; for she loved much: but to whom little is forgiven, the same -loveth little. - -7:48 And he said unto her, Thy sins are forgiven. - -7:49 And they that sat at meat with him began to say within -themselves, Who is this that forgiveth sins also? 7:50 And he said to -the woman, Thy faith hath saved thee; go in peace. - -8:1 And it came to pass afterward, that he went throughout every city -and village, preaching and shewing the glad tidings of the kingdom of -God: and the twelve were with him, 8:2 And certain women, which had -been healed of evil spirits and infirmities, Mary called Magdalene, -out of whom went seven devils, 8:3 And Joanna the wife of Chuza -Herod's steward, and Susanna, and many others, which ministered unto -him of their substance. - -8:4 And when much people were gathered together, and were come to him -out of every city, he spake by a parable: 8:5 A sower went out to sow -his seed: and as he sowed, some fell by the way side; and it was -trodden down, and the fowls of the air devoured it. - -8:6 And some fell upon a rock; and as soon as it was sprung up, it -withered away, because it lacked moisture. - -8:7 And some fell among thorns; and the thorns sprang up with it, and -choked it. - -8:8 And other fell on good ground, and sprang up, and bare fruit an -hundredfold. And when he had said these things, he cried, He that hath -ears to hear, let him hear. - -8:9 And his disciples asked him, saying, What might this parable be? -8:10 And he said, Unto you it is given to know the mysteries of the -kingdom of God: but to others in parables; that seeing they might not -see, and hearing they might not understand. - -8:11 Now the parable is this: The seed is the word of God. - -8:12 Those by the way side are they that hear; then cometh the devil, -and taketh away the word out of their hearts, lest they should believe -and be saved. - -8:13 They on the rock are they, which, when they hear, receive the -word with joy; and these have no root, which for a while believe, and -in time of temptation fall away. - -8:14 And that which fell among thorns are they, which, when they have -heard, go forth, and are choked with cares and riches and pleasures of -this life, and bring no fruit to perfection. - -8:15 But that on the good ground are they, which in an honest and good -heart, having heard the word, keep it, and bring forth fruit with -patience. - -8:16 No man, when he hath lighted a candle, covereth it with a vessel, -or putteth it under a bed; but setteth it on a candlestick, that they -which enter in may see the light. - -8:17 For nothing is secret, that shall not be made manifest; neither -any thing hid, that shall not be known and come abroad. - -8:18 Take heed therefore how ye hear: for whosoever hath, to him shall -be given; and whosoever hath not, from him shall be taken even that -which he seemeth to have. - -8:19 Then came to him his mother and his brethren, and could not come -at him for the press. - -8:20 And it was told him by certain which said, Thy mother and thy -brethren stand without, desiring to see thee. - -8:21 And he answered and said unto them, My mother and my brethren are -these which hear the word of God, and do it. - -8:22 Now it came to pass on a certain day, that he went into a ship -with his disciples: and he said unto them, Let us go over unto the -other side of the lake. And they launched forth. - -8:23 But as they sailed he fell asleep: and there came down a storm of -wind on the lake; and they were filled with water, and were in -jeopardy. - -8:24 And they came to him, and awoke him, saying, Master, master, we -perish. Then he arose, and rebuked the wind and the raging of the -water: and they ceased, and there was a calm. - -8:25 And he said unto them, Where is your faith? And they being afraid -wondered, saying one to another, What manner of man is this! for he -commandeth even the winds and water, and they obey him. - -8:26 And they arrived at the country of the Gadarenes, which is over -against Galilee. - -8:27 And when he went forth to land, there met him out of the city a -certain man, which had devils long time, and ware no clothes, neither -abode in any house, but in the tombs. - -8:28 When he saw Jesus, he cried out, and fell down before him, and -with a loud voice said, What have I to do with thee, Jesus, thou Son -of God most high? I beseech thee, torment me not. - -8:29 (For he had commanded the unclean spirit to come out of the man. -For oftentimes it had caught him: and he was kept bound with chains -and in fetters; and he brake the bands, and was driven of the devil -into the wilderness.) 8:30 And Jesus asked him, saying, What is thy -name? And he said, Legion: because many devils were entered into him. - -8:31 And they besought him that he would not command them to go out -into the deep. - -8:32 And there was there an herd of many swine feeding on the -mountain: and they besought him that he would suffer them to enter -into them. And he suffered them. - -8:33 Then went the devils out of the man, and entered into the swine: -and the herd ran violently down a steep place into the lake, and were -choked. - -8:34 When they that fed them saw what was done, they fled, and went -and told it in the city and in the country. - -8:35 Then they went out to see what was done; and came to Jesus, and -found the man, out of whom the devils were departed, sitting at the -feet of Jesus, clothed, and in his right mind: and they were afraid. - -8:36 They also which saw it told them by what means he that was -possessed of the devils was healed. - -8:37 Then the whole multitude of the country of the Gadarenes round -about besought him to depart from them; for they were taken with great -fear: and he went up into the ship, and returned back again. - -8:38 Now the man out of whom the devils were departed besought him -that he might be with him: but Jesus sent him away, saying, 8:39 -Return to thine own house, and shew how great things God hath done -unto thee. And he went his way, and published throughout the whole -city how great things Jesus had done unto him. - -8:40 And it came to pass, that, when Jesus was returned, the people -gladly received him: for they were all waiting for him. - -8:41 And, behold, there came a man named Jairus, and he was a ruler of -the synagogue: and he fell down at Jesus' feet, and besought him that -he would come into his house: 8:42 For he had one only daughter, about -twelve years of age, and she lay a dying. But as he went the people -thronged him. - -8:43 And a woman having an issue of blood twelve years, which had -spent all her living upon physicians, neither could be healed of any, -8:44 Came behind him, and touched the border of his garment: and -immediately her issue of blood stanched. - -8:45 And Jesus said, Who touched me? When all denied, Peter and they -that were with him said, Master, the multitude throng thee and press -thee, and sayest thou, Who touched me? 8:46 And Jesus said, Somebody -hath touched me: for I perceive that virtue is gone out of me. - -8:47 And when the woman saw that she was not hid, she came trembling, -and falling down before him, she declared unto him before all the -people for what cause she had touched him, and how she was healed -immediately. - -8:48 And he said unto her, Daughter, be of good comfort: thy faith -hath made thee whole; go in peace. - -8:49 While he yet spake, there cometh one from the ruler of the -synagogue's house, saying to him, Thy daughter is dead; trouble not -the Master. - -8:50 But when Jesus heard it, he answered him, saying, Fear not: -believe only, and she shall be made whole. - -8:51 And when he came into the house, he suffered no man to go in, -save Peter, and James, and John, and the father and the mother of the -maiden. - -8:52 And all wept, and bewailed her: but he said, Weep not; she is not -dead, but sleepeth. - -8:53 And they laughed him to scorn, knowing that she was dead. - -8:54 And he put them all out, and took her by the hand, and called, -saying, Maid, arise. - -8:55 And her spirit came again, and she arose straightway: and he -commanded to give her meat. - -8:56 And her parents were astonished: but he charged them that they -should tell no man what was done. - -9:1 Then he called his twelve disciples together, and gave them power -and authority over all devils, and to cure diseases. - -9:2 And he sent them to preach the kingdom of God, and to heal the -sick. - -9:3 And he said unto them, Take nothing for your journey, neither -staves, nor scrip, neither bread, neither money; neither have two -coats apiece. - -9:4 And whatsoever house ye enter into, there abide, and thence -depart. - -9:5 And whosoever will not receive you, when ye go out of that city, -shake off the very dust from your feet for a testimony against them. - -9:6 And they departed, and went through the towns, preaching the -gospel, and healing every where. - -9:7 Now Herod the tetrarch heard of all that was done by him: and he -was perplexed, because that it was said of some, that John was risen -from the dead; 9:8 And of some, that Elias had appeared; and of -others, that one of the old prophets was risen again. - -9:9 And Herod said, John have I beheaded: but who is this, of whom I -hear such things? And he desired to see him. - -9:10 And the apostles, when they were returned, told him all that they -had done. And he took them, and went aside privately into a desert -place belonging to the city called Bethsaida. - -9:11 And the people, when they knew it, followed him: and he received -them, and spake unto them of the kingdom of God, and healed them that -had need of healing. - -9:12 And when the day began to wear away, then came the twelve, and -said unto him, Send the multitude away, that they may go into the -towns and country round about, and lodge, and get victuals: for we are -here in a desert place. - -9:13 But he said unto them, Give ye them to eat. And they said, We -have no more but five loaves and two fishes; except we should go and -buy meat for all this people. - -9:14 For they were about five thousand men. And he said to his -disciples, Make them sit down by fifties in a company. - -9:15 And they did so, and made them all sit down. - -9:16 Then he took the five loaves and the two fishes, and looking up -to heaven, he blessed them, and brake, and gave to the disciples to -set before the multitude. - -9:17 And they did eat, and were all filled: and there was taken up of -fragments that remained to them twelve baskets. - -9:18 And it came to pass, as he was alone praying, his disciples were -with him: and he asked them, saying, Whom say the people that I am? -9:19 They answering said, John the Baptist; but some say, Elias; and -others say, that one of the old prophets is risen again. - -9:20 He said unto them, But whom say ye that I am? Peter answering -said, The Christ of God. - -9:21 And he straitly charged them, and commanded them to tell no man -that thing; 9:22 Saying, The Son of man must suffer many things, and -be rejected of the elders and chief priests and scribes, and be slain, -and be raised the third day. - -9:23 And he said to them all, If any man will come after me, let him -deny himself, and take up his cross daily, and follow me. - -9:24 For whosoever will save his life shall lose it: but whosoever -will lose his life for my sake, the same shall save it. - -9:25 For what is a man advantaged, if he gain the whole world, and -lose himself, or be cast away? 9:26 For whosoever shall be ashamed of -me and of my words, of him shall the Son of man be ashamed, when he -shall come in his own glory, and in his Father's, and of the holy -angels. - -9:27 But I tell you of a truth, there be some standing here, which -shall not taste of death, till they see the kingdom of God. - -9:28 And it came to pass about an eight days after these sayings, he -took Peter and John and James, and went up into a mountain to pray. - -9:29 And as he prayed, the fashion of his countenance was altered, and -his raiment was white and glistering. - -9:30 And, behold, there talked with him two men, which were Moses and -Elias: 9:31 Who appeared in glory, and spake of his decease which he -should accomplish at Jerusalem. - -9:32 But Peter and they that were with him were heavy with sleep: and -when they were awake, they saw his glory, and the two men that stood -with him. - -9:33 And it came to pass, as they departed from him, Peter said unto -Jesus, Master, it is good for us to be here: and let us make three -tabernacles; one for thee, and one for Moses, and one for Elias: not -knowing what he said. - -9:34 While he thus spake, there came a cloud, and overshadowed them: -and they feared as they entered into the cloud. - -9:35 And there came a voice out of the cloud, saying, This is my -beloved Son: hear him. - -9:36 And when the voice was past, Jesus was found alone. And they kept -it close, and told no man in those days any of those things which they -had seen. - -9:37 And it came to pass, that on the next day, when they were come -down from the hill, much people met him. - -9:38 And, behold, a man of the company cried out, saying, Master, I -beseech thee, look upon my son: for he is mine only child. - -9:39 And, lo, a spirit taketh him, and he suddenly crieth out; and it -teareth him that he foameth again, and bruising him hardly departeth -from him. - -9:40 And I besought thy disciples to cast him out; and they could not. - -9:41 And Jesus answering said, O faithless and perverse generation, -how long shall I be with you, and suffer you? Bring thy son hither. - -9:42 And as he was yet a coming, the devil threw him down, and tare -him. - -And Jesus rebuked the unclean spirit, and healed the child, and -delivered him again to his father. - -9:43 And they were all amazed at the mighty power of God. But while -they wondered every one at all things which Jesus did, he said unto -his disciples, 9:44 Let these sayings sink down into your ears: for -the Son of man shall be delivered into the hands of men. - -9:45 But they understood not this saying, and it was hid from them, -that they perceived it not: and they feared to ask him of that saying. - -9:46 Then there arose a reasoning among them, which of them should be -greatest. - -9:47 And Jesus, perceiving the thought of their heart, took a child, -and set him by him, 9:48 And said unto them, Whosoever shall receive -this child in my name receiveth me: and whosoever shall receive me -receiveth him that sent me: for he that is least among you all, the -same shall be great. - -9:49 And John answered and said, Master, we saw one casting out devils -in thy name; and we forbad him, because he followeth not with us. - -9:50 And Jesus said unto him, Forbid him not: for he that is not -against us is for us. - -9:51 And it came to pass, when the time was come that he should be -received up, he stedfastly set his face to go to Jerusalem, 9:52 And -sent messengers before his face: and they went, and entered into a -village of the Samaritans, to make ready for him. - -9:53 And they did not receive him, because his face was as though he -would go to Jerusalem. - -9:54 And when his disciples James and John saw this, they said, Lord, -wilt thou that we command fire to come down from heaven, and consume -them, even as Elias did? 9:55 But he turned, and rebuked them, and -said, Ye know not what manner of spirit ye are of. - -9:56 For the Son of man is not come to destroy men's lives, but to -save them. And they went to another village. - -9:57 And it came to pass, that, as they went in the way, a certain man -said unto him, Lord, I will follow thee whithersoever thou goest. - -9:58 And Jesus said unto him, Foxes have holes, and birds of the air -have nests; but the Son of man hath not where to lay his head. - -9:59 And he said unto another, Follow me. But he said, Lord, suffer me -first to go and bury my father. - -9:60 Jesus said unto him, Let the dead bury their dead: but go thou -and preach the kingdom of God. - -9:61 And another also said, Lord, I will follow thee; but let me first -go bid them farewell, which are at home at my house. - -9:62 And Jesus said unto him, No man, having put his hand to the -plough, and looking back, is fit for the kingdom of God. - -10:1 After these things the LORD appointed other seventy also, and -sent them two and two before his face into every city and place, -whither he himself would come. - -10:2 Therefore said he unto them, The harvest truly is great, but the -labourers are few: pray ye therefore the Lord of the harvest, that he -would send forth labourers into his harvest. - -10:3 Go your ways: behold, I send you forth as lambs among wolves. - -10:4 Carry neither purse, nor scrip, nor shoes: and salute no man by -the way. - -10:5 And into whatsoever house ye enter, first say, Peace be to this -house. - -10:6 And if the son of peace be there, your peace shall rest upon it: -if not, it shall turn to you again. - -10:7 And in the same house remain, eating and drinking such things as -they give: for the labourer is worthy of his hire. Go not from house -to house. - -10:8 And into whatsoever city ye enter, and they receive you, eat such -things as are set before you: 10:9 And heal the sick that are therein, -and say unto them, The kingdom of God is come nigh unto you. - -10:10 But into whatsoever city ye enter, and they receive you not, go -your ways out into the streets of the same, and say, 10:11 Even the -very dust of your city, which cleaveth on us, we do wipe off against -you: notwithstanding be ye sure of this, that the kingdom of God is -come nigh unto you. - -10:12 But I say unto you, that it shall be more tolerable in that day -for Sodom, than for that city. - -10:13 Woe unto thee, Chorazin! woe unto thee, Bethsaida! for if the -mighty works had been done in Tyre and Sidon, which have been done in -you, they had a great while ago repented, sitting in sackcloth and -ashes. - -10:14 But it shall be more tolerable for Tyre and Sidon at the -judgment, than for you. - -10:15 And thou, Capernaum, which art exalted to heaven, shalt be -thrust down to hell. - -10:16 He that heareth you heareth me; and he that despiseth you -despiseth me; and he that despiseth me despiseth him that sent me. - -10:17 And the seventy returned again with joy, saying, Lord, even the -devils are subject unto us through thy name. - -10:18 And he said unto them, I beheld Satan as lightning fall from -heaven. - -10:19 Behold, I give unto you power to tread on serpents and -scorpions, and over all the power of the enemy: and nothing shall by -any means hurt you. - -10:20 Notwithstanding in this rejoice not, that the spirits are -subject unto you; but rather rejoice, because your names are written -in heaven. - -10:21 In that hour Jesus rejoiced in spirit, and said, I thank thee, O -Father, Lord of heaven and earth, that thou hast hid these things from -the wise and prudent, and hast revealed them unto babes: even so, -Father; for so it seemed good in thy sight. - -10:22 All things are delivered to me of my Father: and no man knoweth -who the Son is, but the Father; and who the Father is, but the Son, -and he to whom the Son will reveal him. - -10:23 And he turned him unto his disciples, and said privately, -Blessed are the eyes which see the things that ye see: 10:24 For I -tell you, that many prophets and kings have desired to see those -things which ye see, and have not seen them; and to hear those things -which ye hear, and have not heard them. - -10:25 And, behold, a certain lawyer stood up, and tempted him, saying, -Master, what shall I do to inherit eternal life? 10:26 He said unto -him, What is written in the law? how readest thou? 10:27 And he -answering said, Thou shalt love the Lord thy God with all thy heart, -and with all thy soul, and with all thy strength, and with all thy -mind; and thy neighbour as thyself. - -10:28 And he said unto him, Thou hast answered right: this do, and -thou shalt live. - -10:29 But he, willing to justify himself, said unto Jesus, And who is -my neighbour? 10:30 And Jesus answering said, A certain man went down -from Jerusalem to Jericho, and fell among thieves, which stripped him -of his raiment, and wounded him, and departed, leaving him half dead. - -10:31 And by chance there came down a certain priest that way: and -when he saw him, he passed by on the other side. - -10:32 And likewise a Levite, when he was at the place, came and looked -on him, and passed by on the other side. - -10:33 But a certain Samaritan, as he journeyed, came where he was: and -when he saw him, he had compassion on him, 10:34 And went to him, and -bound up his wounds, pouring in oil and wine, and set him on his own -beast, and brought him to an inn, and took care of him. - -10:35 And on the morrow when he departed, he took out two pence, and -gave them to the host, and said unto him, Take care of him; and -whatsoever thou spendest more, when I come again, I will repay thee. - -10:36 Which now of these three, thinkest thou, was neighbour unto him -that fell among the thieves? 10:37 And he said, He that shewed mercy -on him. Then said Jesus unto him, Go, and do thou likewise. - -10:38 Now it came to pass, as they went, that he entered into a -certain village: and a certain woman named Martha received him into -her house. - -10:39 And she had a sister called Mary, which also sat at Jesus' feet, -and heard his word. - -10:40 But Martha was cumbered about much serving, and came to him, and -said, Lord, dost thou not care that my sister hath left me to serve -alone? bid her therefore that she help me. - -10:41 And Jesus answered and said unto her, Martha, Martha, thou art -careful and troubled about many things: 10:42 But one thing is -needful: and Mary hath chosen that good part, which shall not be taken -away from her. - -11:1 And it came to pass, that, as he was praying in a certain place, -when he ceased, one of his disciples said unto him, Lord, teach us to -pray, as John also taught his disciples. - -11:2 And he said unto them, When ye pray, say, Our Father which art in -heaven, Hallowed be thy name. Thy kingdom come. Thy will be done, as -in heaven, so in earth. - -11:3 Give us day by day our daily bread. - -11:4 And forgive us our sins; for we also forgive every one that is -indebted to us. And lead us not into temptation; but deliver us from -evil. - -11:5 And he said unto them, Which of you shall have a friend, and -shall go unto him at midnight, and say unto him, Friend, lend me three -loaves; 11:6 For a friend of mine in his journey is come to me, and I -have nothing to set before him? 11:7 And he from within shall answer -and say, Trouble me not: the door is now shut, and my children are -with me in bed; I cannot rise and give thee. - -11:8 I say unto you, Though he will not rise and give him, because he -is his friend, yet because of his importunity he will rise and give -him as many as he needeth. - -11:9 And I say unto you, Ask, and it shall be given you; seek, and ye -shall find; knock, and it shall be opened unto you. - -11:10 For every one that asketh receiveth; and he that seeketh -findeth; and to him that knocketh it shall be opened. - -11:11 If a son shall ask bread of any of you that is a father, will he -give him a stone? or if he ask a fish, will he for a fish give him a -serpent? 11:12 Or if he shall ask an egg, will he offer him a -scorpion? 11:13 If ye then, being evil, know how to give good gifts -unto your children: how much more shall your heavenly Father give the -Holy Spirit to them that ask him? 11:14 And he was casting out a -devil, and it was dumb. And it came to pass, when the devil was gone -out, the dumb spake; and the people wondered. - -11:15 But some of them said, He casteth out devils through Beelzebub -the chief of the devils. - -11:16 And others, tempting him, sought of him a sign from heaven. - -11:17 But he, knowing their thoughts, said unto them, Every kingdom -divided against itself is brought to desolation; and a house divided -against a house falleth. - -11:18 If Satan also be divided against himself, how shall his kingdom -stand? because ye say that I cast out devils through Beelzebub. - -11:19 And if I by Beelzebub cast out devils, by whom do your sons cast -them out? therefore shall they be your judges. - -11:20 But if I with the finger of God cast out devils, no doubt the -kingdom of God is come upon you. - -11:21 When a strong man armed keepeth his palace, his goods are in -peace: 11:22 But when a stronger than he shall come upon him, and -overcome him, he taketh from him all his armour wherein he trusted, -and divideth his spoils. - -11:23 He that is not with me is against me: and he that gathereth not -with me scattereth. - -11:24 When the unclean spirit is gone out of a man, he walketh through -dry places, seeking rest; and finding none, he saith, I will return -unto my house whence I came out. - -11:25 And when he cometh, he findeth it swept and garnished. - -11:26 Then goeth he, and taketh to him seven other spirits more wicked -than himself; and they enter in, and dwell there: and the last state -of that man is worse than the first. - -11:27 And it came to pass, as he spake these things, a certain woman -of the company lifted up her voice, and said unto him, Blessed is the -womb that bare thee, and the paps which thou hast sucked. - -11:28 But he said, Yea rather, blessed are they that hear the word of -God, and keep it. - -11:29 And when the people were gathered thick together, he began to -say, This is an evil generation: they seek a sign; and there shall no -sign be given it, but the sign of Jonas the prophet. - -11:30 For as Jonas was a sign unto the Ninevites, so shall also the -Son of man be to this generation. - -11:31 The queen of the south shall rise up in the judgment with the -men of this generation, and condemn them: for she came from the utmost -parts of the earth to hear the wisdom of Solomon; and, behold, a -greater than Solomon is here. - -11:32 The men of Nineve shall rise up in the judgment with this -generation, and shall condemn it: for they repented at the preaching -of Jonas; and, behold, a greater than Jonas is here. - -11:33 No man, when he hath lighted a candle, putteth it in a secret -place, neither under a bushel, but on a candlestick, that they which -come in may see the light. - -11:34 The light of the body is the eye: therefore when thine eye is -single, thy whole body also is full of light; but when thine eye is -evil, thy body also is full of darkness. - -11:35 Take heed therefore that the light which is in thee be not -darkness. - -11:36 If thy whole body therefore be full of light, having no part -dark, the whole shall be full of light, as when the bright shining of -a candle doth give thee light. - -11:37 And as he spake, a certain Pharisee besought him to dine with -him: and he went in, and sat down to meat. - -11:38 And when the Pharisee saw it, he marvelled that he had not first -washed before dinner. - -11:39 And the Lord said unto him, Now do ye Pharisees make clean the -outside of the cup and the platter; but your inward part is full of -ravening and wickedness. - -11:40 Ye fools, did not he that made that which is without make that -which is within also? 11:41 But rather give alms of such things as ye -have; and, behold, all things are clean unto you. - -11:42 But woe unto you, Pharisees! for ye tithe mint and rue and all -manner of herbs, and pass over judgment and the love of God: these -ought ye to have done, and not to leave the other undone. - -11:43 Woe unto you, Pharisees! for ye love the uppermost seats in the -synagogues, and greetings in the markets. - -11:44 Woe unto you, scribes and Pharisees, hypocrites! for ye are as -graves which appear not, and the men that walk over them are not aware -of them. - -11:45 Then answered one of the lawyers, and said unto him, Master, -thus saying thou reproachest us also. - -11:46 And he said, Woe unto you also, ye lawyers! for ye lade men with -burdens grievous to be borne, and ye yourselves touch not the burdens -with one of your fingers. - -11:47 Woe unto you! for ye build the sepulchres of the prophets, and -your fathers killed them. - -11:48 Truly ye bear witness that ye allow the deeds of your fathers: -for they indeed killed them, and ye build their sepulchres. - -11:49 Therefore also said the wisdom of God, I will send them prophets -and apostles, and some of them they shall slay and persecute: 11:50 -That the blood of all the prophets, which was shed from the foundation -of the world, may be required of this generation; 11:51 From the blood -of Abel unto the blood of Zacharias which perished between the altar -and the temple: verily I say unto you, It shall be required of this -generation. - -11:52 Woe unto you, lawyers! for ye have taken away the key of -knowledge: ye entered not in yourselves, and them that were entering -in ye hindered. - -11:53 And as he said these things unto them, the scribes and the -Pharisees began to urge him vehemently, and to provoke him to speak of -many things: 11:54 Laying wait for him, and seeking to catch something -out of his mouth, that they might accuse him. - -12:1 In the mean time, when there were gathered together an -innumerable multitude of people, insomuch that they trode one upon -another, he began to say unto his disciples first of all, Beware ye of -the leaven of the Pharisees, which is hypocrisy. - -12:2 For there is nothing covered, that shall not be revealed; neither -hid, that shall not be known. - -12:3 Therefore whatsoever ye have spoken in darkness shall be heard in -the light; and that which ye have spoken in the ear in closets shall -be proclaimed upon the housetops. - -12:4 And I say unto you my friends, Be not afraid of them that kill -the body, and after that have no more that they can do. - -12:5 But I will forewarn you whom ye shall fear: Fear him, which after -he hath killed hath power to cast into hell; yea, I say unto you, Fear -him. - -12:6 Are not five sparrows sold for two farthings, and not one of them -is forgotten before God? 12:7 But even the very hairs of your head -are all numbered. Fear not therefore: ye are of more value than many -sparrows. - -12:8 Also I say unto you, Whosoever shall confess me before men, him -shall the Son of man also confess before the angels of God: 12:9 But -he that denieth me before men shall be denied before the angels of -God. - -12:10 And whosoever shall speak a word against the Son of man, it -shall be forgiven him: but unto him that blasphemeth against the Holy -Ghost it shall not be forgiven. - -12:11 And when they bring you unto the synagogues, and unto -magistrates, and powers, take ye no thought how or what thing ye shall -answer, or what ye shall say: 12:12 For the Holy Ghost shall teach you -in the same hour what ye ought to say. - -12:13 And one of the company said unto him, Master, speak to my -brother, that he divide the inheritance with me. - -12:14 And he said unto him, Man, who made me a judge or a divider over -you? 12:15 And he said unto them, Take heed, and beware of -covetousness: for a man's life consisteth not in the abundance of the -things which he possesseth. - -12:16 And he spake a parable unto them, saying, The ground of a -certain rich man brought forth plentifully: 12:17 And he thought -within himself, saying, What shall I do, because I have no room where -to bestow my fruits? 12:18 And he said, This will I do: I will pull -down my barns, and build greater; and there will I bestow all my -fruits and my goods. - -12:19 And I will say to my soul, Soul, thou hast much goods laid up -for many years; take thine ease, eat, drink, and be merry. - -12:20 But God said unto him, Thou fool, this night thy soul shall be -required of thee: then whose shall those things be, which thou hast -provided? 12:21 So is he that layeth up treasure for himself, and is -not rich toward God. - -12:22 And he said unto his disciples, Therefore I say unto you, Take -no thought for your life, what ye shall eat; neither for the body, -what ye shall put on. - -12:23 The life is more than meat, and the body is more than raiment. - -12:24 Consider the ravens: for they neither sow nor reap; which -neither have storehouse nor barn; and God feedeth them: how much more -are ye better than the fowls? 12:25 And which of you with taking -thought can add to his stature one cubit? 12:26 If ye then be not -able to do that thing which is least, why take ye thought for the -rest? 12:27 Consider the lilies how they grow: they toil not, they -spin not; and yet I say unto you, that Solomon in all his glory was -not arrayed like one of these. - -12:28 If then God so clothe the grass, which is to day in the field, -and to morrow is cast into the oven; how much more will he clothe you, -O ye of little faith? 12:29 And seek not ye what ye shall eat, or -what ye shall drink, neither be ye of doubtful mind. - -12:30 For all these things do the nations of the world seek after: and -your Father knoweth that ye have need of these things. - -12:31 But rather seek ye the kingdom of God; and all these things -shall be added unto you. - -12:32 Fear not, little flock; for it is your Father's good pleasure to -give you the kingdom. - -12:33 Sell that ye have, and give alms; provide yourselves bags which -wax not old, a treasure in the heavens that faileth not, where no -thief approacheth, neither moth corrupteth. - -12:34 For where your treasure is, there will your heart be also. - -12:35 Let your loins be girded about, and your lights burning; 12:36 -And ye yourselves like unto men that wait for their lord, when he will -return from the wedding; that when he cometh and knocketh, they may -open unto him immediately. - -12:37 Blessed are those servants, whom the lord when he cometh shall -find watching: verily I say unto you, that he shall gird himself, and -make them to sit down to meat, and will come forth and serve them. - -12:38 And if he shall come in the second watch, or come in the third -watch, and find them so, blessed are those servants. - -12:39 And this know, that if the goodman of the house had known what -hour the thief would come, he would have watched, and not have -suffered his house to be broken through. - -12:40 Be ye therefore ready also: for the Son of man cometh at an hour -when ye think not. - -12:41 Then Peter said unto him, Lord, speakest thou this parable unto -us, or even to all? 12:42 And the Lord said, Who then is that -faithful and wise steward, whom his lord shall make ruler over his -household, to give them their portion of meat in due season? 12:43 -Blessed is that servant, whom his lord when he cometh shall find so -doing. - -12:44 Of a truth I say unto you, that he will make him ruler over all -that he hath. - -12:45 But and if that servant say in his heart, My lord delayeth his -coming; and shall begin to beat the menservants and maidens, and to -eat and drink, and to be drunken; 12:46 The lord of that servant will -come in a day when he looketh not for him, and at an hour when he is -not aware, and will cut him in sunder, and will appoint him his -portion with the unbelievers. - -12:47 And that servant, which knew his lord's will, and prepared not -himself, neither did according to his will, shall be beaten with many -stripes. - -12:48 But he that knew not, and did commit things worthy of stripes, -shall be beaten with few stripes. For unto whomsoever much is given, -of him shall be much required: and to whom men have committed much, of -him they will ask the more. - -12:49 I am come to send fire on the earth; and what will I, if it be -already kindled? 12:50 But I have a baptism to be baptized with; and -how am I straitened till it be accomplished! 12:51 Suppose ye that I -am come to give peace on earth? I tell you, Nay; but rather division: -12:52 For from henceforth there shall be five in one house divided, -three against two, and two against three. - -12:53 The father shall be divided against the son, and the son against -the father; the mother against the daughter, and the daughter against -the mother; the mother in law against her daughter in law, and the -daughter in law against her mother in law. - -12:54 And he said also to the people, When ye see a cloud rise out of -the west, straightway ye say, There cometh a shower; and so it is. - -12:55 And when ye see the south wind blow, ye say, There will be heat; -and it cometh to pass. - -12:56 Ye hypocrites, ye can discern the face of the sky and of the -earth; but how is it that ye do not discern this time? 12:57 Yea, and -why even of yourselves judge ye not what is right? 12:58 When thou -goest with thine adversary to the magistrate, as thou art in the way, -give diligence that thou mayest be delivered from him; lest he hale -thee to the judge, and the judge deliver thee to the officer, and the -officer cast thee into prison. - -12:59 I tell thee, thou shalt not depart thence, till thou hast paid -the very last mite. - -13:1 There were present at that season some that told him of the -Galilaeans, whose blood Pilate had mingled with their sacrifices. - -13:2 And Jesus answering said unto them, Suppose ye that these -Galilaeans were sinners above all the Galilaeans, because they -suffered such things? 13:3 I tell you, Nay: but, except ye repent, ye -shall all likewise perish. - -13:4 Or those eighteen, upon whom the tower in Siloam fell, and slew -them, think ye that they were sinners above all men that dwelt in -Jerusalem? 13:5 I tell you, Nay: but, except ye repent, ye shall all -likewise perish. - -13:6 He spake also this parable; A certain man had a fig tree planted -in his vineyard; and he came and sought fruit thereon, and found none. - -13:7 Then said he unto the dresser of his vineyard, Behold, these -three years I come seeking fruit on this fig tree, and find none: cut -it down; why cumbereth it the ground? 13:8 And he answering said unto -him, Lord, let it alone this year also, till I shall dig about it, and -dung it: 13:9 And if it bear fruit, well: and if not, then after that -thou shalt cut it down. - -13:10 And he was teaching in one of the synagogues on the sabbath. - -13:11 And, behold, there was a woman which had a spirit of infirmity -eighteen years, and was bowed together, and could in no wise lift up -herself. - -13:12 And when Jesus saw her, he called her to him, and said unto her, -Woman, thou art loosed from thine infirmity. - -13:13 And he laid his hands on her: and immediately she was made -straight, and glorified God. - -13:14 And the ruler of the synagogue answered with indignation, -because that Jesus had healed on the sabbath day, and said unto the -people, There are six days in which men ought to work: in them -therefore come and be healed, and not on the sabbath day. - -13:15 The Lord then answered him, and said, Thou hypocrite, doth not -each one of you on the sabbath loose his ox or his ass from the stall, -and lead him away to watering? 13:16 And ought not this woman, being -a daughter of Abraham, whom Satan hath bound, lo, these eighteen -years, be loosed from this bond on the sabbath day? 13:17 And when he -had said these things, all his adversaries were ashamed: and all the -people rejoiced for all the glorious things that were done by him. - -13:18 Then said he, Unto what is the kingdom of God like? and -whereunto shall I resemble it? 13:19 It is like a grain of mustard -seed, which a man took, and cast into his garden; and it grew, and -waxed a great tree; and the fowls of the air lodged in the branches of -it. - -13:20 And again he said, Whereunto shall I liken the kingdom of God? -13:21 It is like leaven, which a woman took and hid in three measures -of meal, till the whole was leavened. - -13:22 And he went through the cities and villages, teaching, and -journeying toward Jerusalem. - -13:23 Then said one unto him, Lord, are there few that be saved? And -he said unto them, 13:24 Strive to enter in at the strait gate: for -many, I say unto you, will seek to enter in, and shall not be able. - -13:25 When once the master of the house is risen up, and hath shut to -the door, and ye begin to stand without, and to knock at the door, -saying, Lord, Lord, open unto us; and he shall answer and say unto -you, I know you not whence ye are: 13:26 Then shall ye begin to say, -We have eaten and drunk in thy presence, and thou hast taught in our -streets. - -13:27 But he shall say, I tell you, I know you not whence ye are; -depart from me, all ye workers of iniquity. - -13:28 There shall be weeping and gnashing of teeth, when ye shall see -Abraham, and Isaac, and Jacob, and all the prophets, in the kingdom of -God, and you yourselves thrust out. - -13:29 And they shall come from the east, and from the west, and from -the north, and from the south, and shall sit down in the kingdom of -God. - -13:30 And, behold, there are last which shall be first, and there are -first which shall be last. - -13:31 The same day there came certain of the Pharisees, saying unto -him, Get thee out, and depart hence: for Herod will kill thee. - -13:32 And he said unto them, Go ye, and tell that fox, Behold, I cast -out devils, and I do cures to day and to morrow, and the third day I -shall be perfected. - -13:33 Nevertheless I must walk to day, and to morrow, and the day -following: for it cannot be that a prophet perish out of Jerusalem. - -13:34 O Jerusalem, Jerusalem, which killest the prophets, and stonest -them that are sent unto thee; how often would I have gathered thy -children together, as a hen doth gather her brood under her wings, and -ye would not! 13:35 Behold, your house is left unto you desolate: and -verily I say unto you, Ye shall not see me, until the time come when -ye shall say, Blessed is he that cometh in the name of the Lord. - -14:1 And it came to pass, as he went into the house of one of the -chief Pharisees to eat bread on the sabbath day, that they watched -him. - -14:2 And, behold, there was a certain man before him which had the -dropsy. - -14:3 And Jesus answering spake unto the lawyers and Pharisees, saying, -Is it lawful to heal on the sabbath day? 14:4 And they held their -peace. And he took him, and healed him, and let him go; 14:5 And -answered them, saying, Which of you shall have an ass or an ox fallen -into a pit, and will not straightway pull him out on the sabbath day? -14:6 And they could not answer him again to these things. - -14:7 And he put forth a parable to those which were bidden, when he -marked how they chose out the chief rooms; saying unto them. - -14:8 When thou art bidden of any man to a wedding, sit not down in the -highest room; lest a more honourable man than thou be bidden of him; -14:9 And he that bade thee and him come and say to thee, Give this man -place; and thou begin with shame to take the lowest room. - -14:10 But when thou art bidden, go and sit down in the lowest room; -that when he that bade thee cometh, he may say unto thee, Friend, go -up higher: then shalt thou have worship in the presence of them that -sit at meat with thee. - -14:11 For whosoever exalteth himself shall be abased; and he that -humbleth himself shall be exalted. - -14:12 Then said he also to him that bade him, When thou makest a -dinner or a supper, call not thy friends, nor thy brethren, neither -thy kinsmen, nor thy rich neighbours; lest they also bid thee again, -and a recompence be made thee. - -14:13 But when thou makest a feast, call the poor, the maimed, the -lame, the blind: 14:14 And thou shalt be blessed; for they cannot -recompense thee: for thou shalt be recompensed at the resurrection of -the just. - -14:15 And when one of them that sat at meat with him heard these -things, he said unto him, Blessed is he that shall eat bread in the -kingdom of God. - -14:16 Then said he unto him, A certain man made a great supper, and -bade many: 14:17 And sent his servant at supper time to say to them -that were bidden, Come; for all things are now ready. - -14:18 And they all with one consent began to make excuse. The first -said unto him, I have bought a piece of ground, and I must needs go -and see it: I pray thee have me excused. - -14:19 And another said, I have bought five yoke of oxen, and I go to -prove them: I pray thee have me excused. - -14:20 And another said, I have married a wife, and therefore I cannot -come. - -14:21 So that servant came, and shewed his lord these things. Then the -master of the house being angry said to his servant, Go out quickly -into the streets and lanes of the city, and bring in hither the poor, -and the maimed, and the halt, and the blind. - -14:22 And the servant said, Lord, it is done as thou hast commanded, -and yet there is room. - -14:23 And the lord said unto the servant, Go out into the highways and -hedges, and compel them to come in, that my house may be filled. - -14:24 For I say unto you, That none of those men which were bidden -shall taste of my supper. - -14:25 And there went great multitudes with him: and he turned, and -said unto them, 14:26 If any man come to me, and hate not his father, -and mother, and wife, and children, and brethren, and sisters, yea, -and his own life also, he cannot be my disciple. - -14:27 And whosoever doth not bear his cross, and come after me, cannot -be my disciple. - -14:28 For which of you, intending to build a tower, sitteth not down -first, and counteth the cost, whether he have sufficient to finish it? -14:29 Lest haply, after he hath laid the foundation, and is not able -to finish it, all that behold it begin to mock him, 14:30 Saying, This -man began to build, and was not able to finish. - -14:31 Or what king, going to make war against another king, sitteth -not down first, and consulteth whether he be able with ten thousand to -meet him that cometh against him with twenty thousand? 14:32 Or else, -while the other is yet a great way off, he sendeth an ambassage, and -desireth conditions of peace. - -14:33 So likewise, whosoever he be of you that forsaketh not all that -he hath, he cannot be my disciple. - -14:34 Salt is good: but if the salt have lost his savour, wherewith -shall it be seasoned? 14:35 It is neither fit for the land, nor yet -for the dunghill; but men cast it out. He that hath ears to hear, let -him hear. - -15:1 Then drew near unto him all the publicans and sinners for to hear -him. - -15:2 And the Pharisees and scribes murmured, saying, This man -receiveth sinners, and eateth with them. - -15:3 And he spake this parable unto them, saying, 15:4 What man of -you, having an hundred sheep, if he lose one of them, doth not leave -the ninety and nine in the wilderness, and go after that which is -lost, until he find it? 15:5 And when he hath found it, he layeth it -on his shoulders, rejoicing. - -15:6 And when he cometh home, he calleth together his friends and -neighbours, saying unto them, Rejoice with me; for I have found my -sheep which was lost. - -15:7 I say unto you, that likewise joy shall be in heaven over one -sinner that repenteth, more than over ninety and nine just persons, -which need no repentance. - -15:8 Either what woman having ten pieces of silver, if she lose one -piece, doth not light a candle, and sweep the house, and seek -diligently till she find it? 15:9 And when she hath found it, she -calleth her friends and her neighbours together, saying, Rejoice with -me; for I have found the piece which I had lost. - -15:10 Likewise, I say unto you, there is joy in the presence of the -angels of God over one sinner that repenteth. - -15:11 And he said, A certain man had two sons: 15:12 And the younger -of them said to his father, Father, give me the portion of goods that -falleth to me. And he divided unto them his living. - -15:13 And not many days after the younger son gathered all together, -and took his journey into a far country, and there wasted his -substance with riotous living. - -15:14 And when he had spent all, there arose a mighty famine in that -land; and he began to be in want. - -15:15 And he went and joined himself to a citizen of that country; and -he sent him into his fields to feed swine. - -15:16 And he would fain have filled his belly with the husks that the -swine did eat: and no man gave unto him. - -15:17 And when he came to himself, he said, How many hired servants of -my father's have bread enough and to spare, and I perish with hunger! -15:18 I will arise and go to my father, and will say unto him, Father, -I have sinned against heaven, and before thee, 15:19 And am no more -worthy to be called thy son: make me as one of thy hired servants. - -15:20 And he arose, and came to his father. But when he was yet a -great way off, his father saw him, and had compassion, and ran, and -fell on his neck, and kissed him. - -15:21 And the son said unto him, Father, I have sinned against heaven, -and in thy sight, and am no more worthy to be called thy son. - -15:22 But the father said to his servants, Bring forth the best robe, -and put it on him; and put a ring on his hand, and shoes on his feet: -15:23 And bring hither the fatted calf, and kill it; and let us eat, -and be merry: 15:24 For this my son was dead, and is alive again; he -was lost, and is found. And they began to be merry. - -15:25 Now his elder son was in the field: and as he came and drew nigh -to the house, he heard musick and dancing. - -15:26 And he called one of the servants, and asked what these things -meant. - -15:27 And he said unto him, Thy brother is come; and thy father hath -killed the fatted calf, because he hath received him safe and sound. - -15:28 And he was angry, and would not go in: therefore came his father -out, and intreated him. - -15:29 And he answering said to his father, Lo, these many years do I -serve thee, neither transgressed I at any time thy commandment: and -yet thou never gavest me a kid, that I might make merry with my -friends: 15:30 But as soon as this thy son was come, which hath -devoured thy living with harlots, thou hast killed for him the fatted -calf. - -15:31 And he said unto him, Son, thou art ever with me, and all that I -have is thine. - -15:32 It was meet that we should make merry, and be glad: for this thy -brother was dead, and is alive again; and was lost, and is found. - -16:1 And he said also unto his disciples, There was a certain rich -man, which had a steward; and the same was accused unto him that he -had wasted his goods. - -16:2 And he called him, and said unto him, How is it that I hear this -of thee? give an account of thy stewardship; for thou mayest be no -longer steward. - -16:3 Then the steward said within himself, What shall I do? for my -lord taketh away from me the stewardship: I cannot dig; to beg I am -ashamed. - -16:4 I am resolved what to do, that, when I am put out of the -stewardship, they may receive me into their houses. - -16:5 So he called every one of his lord's debtors unto him, and said -unto the first, How much owest thou unto my lord? 16:6 And he said, -An hundred measures of oil. And he said unto him, Take thy bill, and -sit down quickly, and write fifty. - -16:7 Then said he to another, And how much owest thou? And he said, An -hundred measures of wheat. And he said unto him, Take thy bill, and -write fourscore. - -16:8 And the lord commended the unjust steward, because he had done -wisely: for the children of this world are in their generation wiser -than the children of light. - -16:9 And I say unto you, Make to yourselves friends of the mammon of -unrighteousness; that, when ye fail, they may receive you into -everlasting habitations. - -16:10 He that is faithful in that which is least is faithful also in -much: and he that is unjust in the least is unjust also in much. - -16:11 If therefore ye have not been faithful in the unrighteous -mammon, who will commit to your trust the true riches? 16:12 And if -ye have not been faithful in that which is another man's, who shall -give you that which is your own? 16:13 No servant can serve two -masters: for either he will hate the one, and love the other; or else -he will hold to the one, and despise the other. Ye cannot serve God -and mammon. - -16:14 And the Pharisees also, who were covetous, heard all these -things: and they derided him. - -16:15 And he said unto them, Ye are they which justify yourselves -before men; but God knoweth your hearts: for that which is highly -esteemed among men is abomination in the sight of God. - -16:16 The law and the prophets were until John: since that time the -kingdom of God is preached, and every man presseth into it. - -16:17 And it is easier for heaven and earth to pass, than one tittle -of the law to fail. - -16:18 Whosoever putteth away his wife, and marrieth another, -committeth adultery: and whosoever marrieth her that is put away from -her husband committeth adultery. - -16:19 There was a certain rich man, which was clothed in purple and -fine linen, and fared sumptuously every day: 16:20 And there was a -certain beggar named Lazarus, which was laid at his gate, full of -sores, 16:21 And desiring to be fed with the crumbs which fell from -the rich man's table: moreover the dogs came and licked his sores. - -16:22 And it came to pass, that the beggar died, and was carried by -the angels into Abraham's bosom: the rich man also died, and was -buried; 16:23 And in hell he lift up his eyes, being in torments, and -seeth Abraham afar off, and Lazarus in his bosom. - -16:24 And he cried and said, Father Abraham, have mercy on me, and -send Lazarus, that he may dip the tip of his finger in water, and cool -my tongue; for I am tormented in this flame. - -16:25 But Abraham said, Son, remember that thou in thy lifetime -receivedst thy good things, and likewise Lazarus evil things: but now -he is comforted, and thou art tormented. - -16:26 And beside all this, between us and you there is a great gulf -fixed: so that they which would pass from hence to you cannot; neither -can they pass to us, that would come from thence. - -16:27 Then he said, I pray thee therefore, father, that thou wouldest -send him to my father's house: 16:28 For I have five brethren; that he -may testify unto them, lest they also come into this place of torment. - -16:29 Abraham saith unto him, They have Moses and the prophets; let -them hear them. - -16:30 And he said, Nay, father Abraham: but if one went unto them from -the dead, they will repent. - -16:31 And he said unto him, If they hear not Moses and the prophets, -neither will they be persuaded, though one rose from the dead. - -17:1 Then said he unto the disciples, It is impossible but that -offences will come: but woe unto him, through whom they come! 17:2 It -were better for him that a millstone were hanged about his neck, and -he cast into the sea, than that he should offend one of these little -ones. - -17:3 Take heed to yourselves: If thy brother trespass against thee, -rebuke him; and if he repent, forgive him. - -17:4 And if he trespass against thee seven times in a day, and seven -times in a day turn again to thee, saying, I repent; thou shalt -forgive him. - -17:5 And the apostles said unto the Lord, Increase our faith. - -17:6 And the Lord said, If ye had faith as a grain of mustard seed, ye -might say unto this sycamine tree, Be thou plucked up by the root, and -be thou planted in the sea; and it should obey you. - -17:7 But which of you, having a servant plowing or feeding cattle, -will say unto him by and by, when he is come from the field, Go and -sit down to meat? 17:8 And will not rather say unto him, Make ready -wherewith I may sup, and gird thyself, and serve me, till I have eaten -and drunken; and afterward thou shalt eat and drink? 17:9 Doth he -thank that servant because he did the things that were commanded him? -I trow not. - -17:10 So likewise ye, when ye shall have done all those things which -are commanded you, say, We are unprofitable servants: we have done -that which was our duty to do. - -17:11 And it came to pass, as he went to Jerusalem, that he passed -through the midst of Samaria and Galilee. - -17:12 And as he entered into a certain village, there met him ten men -that were lepers, which stood afar off: 17:13 And they lifted up their -voices, and said, Jesus, Master, have mercy on us. - -17:14 And when he saw them, he said unto them, Go shew yourselves unto -the priests. And it came to pass, that, as they went, they were -cleansed. - -17:15 And one of them, when he saw that he was healed, turned back, -and with a loud voice glorified God, 17:16 And fell down on his face -at his feet, giving him thanks: and he was a Samaritan. - -17:17 And Jesus answering said, Were there not ten cleansed? but where -are the nine? 17:18 There are not found that returned to give glory -to God, save this stranger. - -17:19 And he said unto him, Arise, go thy way: thy faith hath made -thee whole. - -17:20 And when he was demanded of the Pharisees, when the kingdom of -God should come, he answered them and said, The kingdom of God cometh -not with observation: 17:21 Neither shall they say, Lo here! or, lo -there! for, behold, the kingdom of God is within you. - -17:22 And he said unto the disciples, The days will come, when ye -shall desire to see one of the days of the Son of man, and ye shall -not see it. - -17:23 And they shall say to you, See here; or, see there: go not after -them, nor follow them. - -17:24 For as the lightning, that lighteneth out of the one part under -heaven, shineth unto the other part under heaven; so shall also the -Son of man be in his day. - -17:25 But first must he suffer many things, and be rejected of this -generation. - -17:26 And as it was in the days of Noe, so shall it be also in the -days of the Son of man. - -17:27 They did eat, they drank, they married wives, they were given in -marriage, until the day that Noe entered into the ark, and the flood -came, and destroyed them all. - -17:28 Likewise also as it was in the days of Lot; they did eat, they -drank, they bought, they sold, they planted, they builded; 17:29 But -the same day that Lot went out of Sodom it rained fire and brimstone -from heaven, and destroyed them all. - -17:30 Even thus shall it be in the day when the Son of man is -revealed. - -17:31 In that day, he which shall be upon the housetop, and his stuff -in the house, let him not come down to take it away: and he that is in -the field, let him likewise not return back. - -17:32 Remember Lot's wife. - -17:33 Whosoever shall seek to save his life shall lose it; and -whosoever shall lose his life shall preserve it. - -17:34 I tell you, in that night there shall be two men in one bed; the -one shall be taken, and the other shall be left. - -17:35 Two women shall be grinding together; the one shall be taken, -and the other left. - -17:36 Two men shall be in the field; the one shall be taken, and the -other left. - -17:37 And they answered and said unto him, Where, Lord? And he said -unto them, Wheresoever the body is, thither will the eagles be -gathered together. - -18:1 And he spake a parable unto them to this end, that men ought -always to pray, and not to faint; 18:2 Saying, There was in a city a -judge, which feared not God, neither regarded man: 18:3 And there was -a widow in that city; and she came unto him, saying, Avenge me of mine -adversary. - -18:4 And he would not for a while: but afterward he said within -himself, Though I fear not God, nor regard man; 18:5 Yet because this -widow troubleth me, I will avenge her, lest by her continual coming -she weary me. - -18:6 And the Lord said, Hear what the unjust judge saith. - -18:7 And shall not God avenge his own elect, which cry day and night -unto him, though he bear long with them? 18:8 I tell you that he will -avenge them speedily. Nevertheless when the Son of man cometh, shall -he find faith on the earth? 18:9 And he spake this parable unto -certain which trusted in themselves that they were righteous, and -despised others: 18:10 Two men went up into the temple to pray; the -one a Pharisee, and the other a publican. - -18:11 The Pharisee stood and prayed thus with himself, God, I thank -thee, that I am not as other men are, extortioners, unjust, -adulterers, or even as this publican. - -18:12 I fast twice in the week, I give tithes of all that I possess. - -18:13 And the publican, standing afar off, would not lift up so much -as his eyes unto heaven, but smote upon his breast, saying, God be -merciful to me a sinner. - -18:14 I tell you, this man went down to his house justified rather -than the other: for every one that exalteth himself shall be abased; -and he that humbleth himself shall be exalted. - -18:15 And they brought unto him also infants, that he would touch -them: but when his disciples saw it, they rebuked them. - -18:16 But Jesus called them unto him, and said, Suffer little children -to come unto me, and forbid them not: for of such is the kingdom of -God. - -18:17 Verily I say unto you, Whosoever shall not receive the kingdom -of God as a little child shall in no wise enter therein. - -18:18 And a certain ruler asked him, saying, Good Master, what shall I -do to inherit eternal life? 18:19 And Jesus said unto him, Why -callest thou me good? none is good, save one, that is, God. - -18:20 Thou knowest the commandments, Do not commit adultery, Do not -kill, Do not steal, Do not bear false witness, Honour thy father and -thy mother. - -18:21 And he said, All these have I kept from my youth up. - -18:22 Now when Jesus heard these things, he said unto him, Yet lackest -thou one thing: sell all that thou hast, and distribute unto the poor, -and thou shalt have treasure in heaven: and come, follow me. - -18:23 And when he heard this, he was very sorrowful: for he was very -rich. - -18:24 And when Jesus saw that he was very sorrowful, he said, How -hardly shall they that have riches enter into the kingdom of God! -18:25 For it is easier for a camel to go through a needle's eye, than -for a rich man to enter into the kingdom of God. - -18:26 And they that heard it said, Who then can be saved? 18:27 And -he said, The things which are impossible with men are possible with -God. - -18:28 Then Peter said, Lo, we have left all, and followed thee. - -18:29 And he said unto them, Verily I say unto you, There is no man -that hath left house, or parents, or brethren, or wife, or children, -for the kingdom of God's sake, 18:30 Who shall not receive manifold -more in this present time, and in the world to come life everlasting. - -18:31 Then he took unto him the twelve, and said unto them, Behold, we -go up to Jerusalem, and all things that are written by the prophets -concerning the Son of man shall be accomplished. - -18:32 For he shall be delivered unto the Gentiles, and shall be -mocked, and spitefully entreated, and spitted on: 18:33 And they shall -scourge him, and put him to death: and the third day he shall rise -again. - -18:34 And they understood none of these things: and this saying was -hid from them, neither knew they the things which were spoken. - -18:35 And it came to pass, that as he was come nigh unto Jericho, a -certain blind man sat by the way side begging: 18:36 And hearing the -multitude pass by, he asked what it meant. - -18:37 And they told him, that Jesus of Nazareth passeth by. - -18:38 And he cried, saying, Jesus, thou son of David, have mercy on -me. - -18:39 And they which went before rebuked him, that he should hold his -peace: but he cried so much the more, Thou son of David, have mercy on -me. - -18:40 And Jesus stood, and commanded him to be brought unto him: and -when he was come near, he asked him, 18:41 Saying, What wilt thou that -I shall do unto thee? And he said, Lord, that I may receive my sight. - -18:42 And Jesus said unto him, Receive thy sight: thy faith hath saved -thee. - -18:43 And immediately he received his sight, and followed him, -glorifying God: and all the people, when they saw it, gave praise unto -God. - -19:1 And Jesus entered and passed through Jericho. - -19:2 And, behold, there was a man named Zacchaeus, which was the chief -among the publicans, and he was rich. - -19:3 And he sought to see Jesus who he was; and could not for the -press, because he was little of stature. - -19:4 And he ran before, and climbed up into a sycomore tree to see -him: for he was to pass that way. - -19:5 And when Jesus came to the place, he looked up, and saw him, and -said unto him, Zacchaeus, make haste, and come down; for to day I must -abide at thy house. - -19:6 And he made haste, and came down, and received him joyfully. - -19:7 And when they saw it, they all murmured, saying, That he was gone -to be guest with a man that is a sinner. - -19:8 And Zacchaeus stood, and said unto the Lord: Behold, Lord, the -half of my goods I give to the poor; and if I have taken any thing -from any man by false accusation, I restore him fourfold. - -19:9 And Jesus said unto him, This day is salvation come to this -house, forsomuch as he also is a son of Abraham. - -19:10 For the Son of man is come to seek and to save that which was -lost. - -19:11 And as they heard these things, he added and spake a parable, -because he was nigh to Jerusalem, and because they thought that the -kingdom of God should immediately appear. - -19:12 He said therefore, A certain nobleman went into a far country to -receive for himself a kingdom, and to return. - -19:13 And he called his ten servants, and delivered them ten pounds, -and said unto them, Occupy till I come. - -19:14 But his citizens hated him, and sent a message after him, -saying, We will not have this man to reign over us. - -19:15 And it came to pass, that when he was returned, having received -the kingdom, then he commanded these servants to be called unto him, -to whom he had given the money, that he might know how much every man -had gained by trading. - -19:16 Then came the first, saying, Lord, thy pound hath gained ten -pounds. - -19:17 And he said unto him, Well, thou good servant: because thou hast -been faithful in a very little, have thou authority over ten cities. - -19:18 And the second came, saying, Lord, thy pound hath gained five -pounds. - -19:19 And he said likewise to him, Be thou also over five cities. - -19:20 And another came, saying, Lord, behold, here is thy pound, which -I have kept laid up in a napkin: 19:21 For I feared thee, because thou -art an austere man: thou takest up that thou layedst not down, and -reapest that thou didst not sow. - -19:22 And he saith unto him, Out of thine own mouth will I judge thee, -thou wicked servant. Thou knewest that I was an austere man, taking up -that I laid not down, and reaping that I did not sow: 19:23 Wherefore -then gavest not thou my money into the bank, that at my coming I might -have required mine own with usury? 19:24 And he said unto them that -stood by, Take from him the pound, and give it to him that hath ten -pounds. - -19:25 (And they said unto him, Lord, he hath ten pounds.) 19:26 For I -say unto you, That unto every one which hath shall be given; and from -him that hath not, even that he hath shall be taken away from him. - -19:27 But those mine enemies, which would not that I should reign over -them, bring hither, and slay them before me. - -19:28 And when he had thus spoken, he went before, ascending up to -Jerusalem. - -19:29 And it came to pass, when he was come nigh to Bethphage and -Bethany, at the mount called the mount of Olives, he sent two of his -disciples, 19:30 Saying, Go ye into the village over against you; in -the which at your entering ye shall find a colt tied, whereon yet -never man sat: loose him, and bring him hither. - -19:31 And if any man ask you, Why do ye loose him? thus shall ye say -unto him, Because the Lord hath need of him. - -19:32 And they that were sent went their way, and found even as he had -said unto them. - -19:33 And as they were loosing the colt, the owners thereof said unto -them, Why loose ye the colt? 19:34 And they said, The Lord hath need -of him. - -19:35 And they brought him to Jesus: and they cast their garments upon -the colt, and they set Jesus thereon. - -19:36 And as he went, they spread their clothes in the way. - -19:37 And when he was come nigh, even now at the descent of the mount -of Olives, the whole multitude of the disciples began to rejoice and -praise God with a loud voice for all the mighty works that they had -seen; 19:38 Saying, Blessed be the King that cometh in the name of the -Lord: peace in heaven, and glory in the highest. - -19:39 And some of the Pharisees from among the multitude said unto -him, Master, rebuke thy disciples. - -19:40 And he answered and said unto them, I tell you that, if these -should hold their peace, the stones would immediately cry out. - -19:41 And when he was come near, he beheld the city, and wept over it, -19:42 Saying, If thou hadst known, even thou, at least in this thy -day, the things which belong unto thy peace! but now they are hid from -thine eyes. - -19:43 For the days shall come upon thee, that thine enemies shall cast -a trench about thee, and compass thee round, and keep thee in on every -side, 19:44 And shall lay thee even with the ground, and thy children -within thee; and they shall not leave in thee one stone upon another; -because thou knewest not the time of thy visitation. - -19:45 And he went into the temple, and began to cast out them that -sold therein, and them that bought; 19:46 Saying unto them, It is -written, My house is the house of prayer: but ye have made it a den of -thieves. - -19:47 And he taught daily in the temple. But the chief priests and the -scribes and the chief of the people sought to destroy him, 19:48 And -could not find what they might do: for all the people were very -attentive to hear him. - -20:1 And it came to pass, that on one of those days, as he taught the -people in the temple, and preached the gospel, the chief priests and -the scribes came upon him with the elders, 20:2 And spake unto him, -saying, Tell us, by what authority doest thou these things? or who is -he that gave thee this authority? 20:3 And he answered and said unto -them, I will also ask you one thing; and answer me: 20:4 The baptism -of John, was it from heaven, or of men? 20:5 And they reasoned with -themselves, saying, If we shall say, From heaven; he will say, Why -then believed ye him not? 20:6 But and if we say, Of men; all the -people will stone us: for they be persuaded that John was a prophet. - -20:7 And they answered, that they could not tell whence it was. - -20:8 And Jesus said unto them, Neither tell I you by what authority I -do these things. - -20:9 Then began he to speak to the people this parable; A certain man -planted a vineyard, and let it forth to husbandmen, and went into a -far country for a long time. - -20:10 And at the season he sent a servant to the husbandmen, that they -should give him of the fruit of the vineyard: but the husbandmen beat -him, and sent him away empty. - -20:11 And again he sent another servant: and they beat him also, and -entreated him shamefully, and sent him away empty. - -20:12 And again he sent a third: and they wounded him also, and cast -him out. - -20:13 Then said the lord of the vineyard, What shall I do? I will send -my beloved son: it may be they will reverence him when they see him. - -20:14 But when the husbandmen saw him, they reasoned among themselves, -saying, This is the heir: come, let us kill him, that the inheritance -may be ours. - -20:15 So they cast him out of the vineyard, and killed him. What -therefore shall the lord of the vineyard do unto them? 20:16 He shall -come and destroy these husbandmen, and shall give the vineyard to -others. And when they heard it, they said, God forbid. - -20:17 And he beheld them, and said, What is this then that is written, -The stone which the builders rejected, the same is become the head of -the corner? 20:18 Whosoever shall fall upon that stone shall be -broken; but on whomsoever it shall fall, it will grind him to powder. - -20:19 And the chief priests and the scribes the same hour sought to -lay hands on him; and they feared the people: for they perceived that -he had spoken this parable against them. - -20:20 And they watched him, and sent forth spies, which should feign -themselves just men, that they might take hold of his words, that so -they might deliver him unto the power and authority of the governor. - -20:21 And they asked him, saying, Master, we know that thou sayest and -teachest rightly, neither acceptest thou the person of any, but -teachest the way of God truly: 20:22 Is it lawful for us to give -tribute unto Caesar, or no? 20:23 But he perceived their craftiness, -and said unto them, Why tempt ye me? 20:24 Shew me a penny. Whose -image and superscription hath it? They answered and said, Caesar's. - -20:25 And he said unto them, Render therefore unto Caesar the things -which be Caesar's, and unto God the things which be God's. - -20:26 And they could not take hold of his words before the people: and -they marvelled at his answer, and held their peace. - -20:27 Then came to him certain of the Sadducees, which deny that there -is any resurrection; and they asked him, 20:28 Saying, Master, Moses -wrote unto us, If any man's brother die, having a wife, and he die -without children, that his brother should take his wife, and raise up -seed unto his brother. - -20:29 There were therefore seven brethren: and the first took a wife, -and died without children. - -20:30 And the second took her to wife, and he died childless. - -20:31 And the third took her; and in like manner the seven also: and -they left no children, and died. - -20:32 Last of all the woman died also. - -20:33 Therefore in the resurrection whose wife of them is she? for -seven had her to wife. - -20:34 And Jesus answering said unto them, The children of this world -marry, and are given in marriage: 20:35 But they which shall be -accounted worthy to obtain that world, and the resurrection from the -dead, neither marry, nor are given in marriage: 20:36 Neither can they -die any more: for they are equal unto the angels; and are the children -of God, being the children of the resurrection. - -20:37 Now that the dead are raised, even Moses shewed at the bush, -when he calleth the Lord the God of Abraham, and the God of Isaac, and -the God of Jacob. - -20:38 For he is not a God of the dead, but of the living: for all live -unto him. - -20:39 Then certain of the scribes answering said, Master, thou hast -well said. - -20:40 And after that they durst not ask him any question at all. - -20:41 And he said unto them, How say they that Christ is David's son? -20:42 And David himself saith in the book of Psalms, The LORD said -unto my Lord, Sit thou on my right hand, 20:43 Till I make thine -enemies thy footstool. - -20:44 David therefore calleth him Lord, how is he then his son? 20:45 -Then in the audience of all the people he said unto his disciples, -20:46 Beware of the scribes, which desire to walk in long robes, and -love greetings in the markets, and the highest seats in the -synagogues, and the chief rooms at feasts; 20:47 Which devour widows' -houses, and for a shew make long prayers: the same shall receive -greater damnation. - -21:1 And he looked up, and saw the rich men casting their gifts into -the treasury. - -21:2 And he saw also a certain poor widow casting in thither two -mites. - -21:3 And he said, Of a truth I say unto you, that this poor widow hath -cast in more than they all: 21:4 For all these have of their abundance -cast in unto the offerings of God: but she of her penury hath cast in -all the living that she had. - -21:5 And as some spake of the temple, how it was adorned with goodly -stones and gifts, he said, 21:6 As for these things which ye behold, -the days will come, in the which there shall not be left one stone -upon another, that shall not be thrown down. - -21:7 And they asked him, saying, Master, but when shall these things -be? and what sign will there be when these things shall come to pass? -21:8 And he said, Take heed that ye be not deceived: for many shall -come in my name, saying, I am Christ; and the time draweth near: go ye -not therefore after them. - -21:9 But when ye shall hear of wars and commotions, be not terrified: -for these things must first come to pass; but the end is not by and -by. - -21:10 Then said he unto them, Nation shall rise against nation, and -kingdom against kingdom: 21:11 And great earthquakes shall be in -divers places, and famines, and pestilences; and fearful sights and -great signs shall there be from heaven. - -21:12 But before all these, they shall lay their hands on you, and -persecute you, delivering you up to the synagogues, and into prisons, -being brought before kings and rulers for my name's sake. - -21:13 And it shall turn to you for a testimony. - -21:14 Settle it therefore in your hearts, not to meditate before what -ye shall answer: 21:15 For I will give you a mouth and wisdom, which -all your adversaries shall not be able to gainsay nor resist. - -21:16 And ye shall be betrayed both by parents, and brethren, and -kinsfolks, and friends; and some of you shall they cause to be put to -death. - -21:17 And ye shall be hated of all men for my name's sake. - -21:18 But there shall not an hair of your head perish. - -21:19 In your patience possess ye your souls. - -21:20 And when ye shall see Jerusalem compassed with armies, then know -that the desolation thereof is nigh. - -21:21 Then let them which are in Judaea flee to the mountains; and let -them which are in the midst of it depart out; and let not them that -are in the countries enter thereinto. - -21:22 For these be the days of vengeance, that all things which are -written may be fulfilled. - -21:23 But woe unto them that are with child, and to them that give -suck, in those days! for there shall be great distress in the land, -and wrath upon this people. - -21:24 And they shall fall by the edge of the sword, and shall be led -away captive into all nations: and Jerusalem shall be trodden down of -the Gentiles, until the times of the Gentiles be fulfilled. - -21:25 And there shall be signs in the sun, and in the moon, and in the -stars; and upon the earth distress of nations, with perplexity; the -sea and the waves roaring; 21:26 Men's hearts failing them for fear, -and for looking after those things which are coming on the earth: for -the powers of heaven shall be shaken. - -21:27 And then shall they see the Son of man coming in a cloud with -power and great glory. - -21:28 And when these things begin to come to pass, then look up, and -lift up your heads; for your redemption draweth nigh. - -21:29 And he spake to them a parable; Behold the fig tree, and all the -trees; 21:30 When they now shoot forth, ye see and know of your own -selves that summer is now nigh at hand. - -21:31 So likewise ye, when ye see these things come to pass, know ye -that the kingdom of God is nigh at hand. - -21:32 Verily I say unto you, This generation shall not pass away, till -all be fulfilled. - -21:33 Heaven and earth shall pass away: but my words shall not pass -away. - -21:34 And take heed to yourselves, lest at any time your hearts be -overcharged with surfeiting, and drunkenness, and cares of this life, -and so that day come upon you unawares. - -21:35 For as a snare shall it come on all them that dwell on the face -of the whole earth. - -21:36 Watch ye therefore, and pray always, that ye may be accounted -worthy to escape all these things that shall come to pass, and to -stand before the Son of man. - -21:37 And in the day time he was teaching in the temple; and at night -he went out, and abode in the mount that is called the mount of -Olives. - -21:38 And all the people came early in the morning to him in the -temple, for to hear him. - -22:1 Now the feast of unleavened bread drew nigh, which is called the -Passover. - -22:2 And the chief priests and scribes sought how they might kill him; -for they feared the people. - -22:3 Then entered Satan into Judas surnamed Iscariot, being of the -number of the twelve. - -22:4 And he went his way, and communed with the chief priests and -captains, how he might betray him unto them. - -22:5 And they were glad, and covenanted to give him money. - -22:6 And he promised, and sought opportunity to betray him unto them -in the absence of the multitude. - -22:7 Then came the day of unleavened bread, when the passover must be -killed. - -22:8 And he sent Peter and John, saying, Go and prepare us the -passover, that we may eat. - -22:9 And they said unto him, Where wilt thou that we prepare? 22:10 -And he said unto them, Behold, when ye are entered into the city, -there shall a man meet you, bearing a pitcher of water; follow him -into the house where he entereth in. - -22:11 And ye shall say unto the goodman of the house, The Master saith -unto thee, Where is the guestchamber, where I shall eat the passover -with my disciples? 22:12 And he shall shew you a large upper room -furnished: there make ready. - -22:13 And they went, and found as he had said unto them: and they made -ready the passover. - -22:14 And when the hour was come, he sat down, and the twelve apostles -with him. - -22:15 And he said unto them, With desire I have desired to eat this -passover with you before I suffer: 22:16 For I say unto you, I will -not any more eat thereof, until it be fulfilled in the kingdom of God. - -22:17 And he took the cup, and gave thanks, and said, Take this, and -divide it among yourselves: 22:18 For I say unto you, I will not drink -of the fruit of the vine, until the kingdom of God shall come. - -22:19 And he took bread, and gave thanks, and brake it, and gave unto -them, saying, This is my body which is given for you: this do in -remembrance of me. - -22:20 Likewise also the cup after supper, saying, This cup is the new -testament in my blood, which is shed for you. - -22:21 But, behold, the hand of him that betrayeth me is with me on the -table. - -22:22 And truly the Son of man goeth, as it was determined: but woe -unto that man by whom he is betrayed! 22:23 And they began to enquire -among themselves, which of them it was that should do this thing. - -22:24 And there was also a strife among them, which of them should be -accounted the greatest. - -22:25 And he said unto them, The kings of the Gentiles exercise -lordship over them; and they that exercise authority upon them are -called benefactors. - -22:26 But ye shall not be so: but he that is greatest among you, let -him be as the younger; and he that is chief, as he that doth serve. - -22:27 For whether is greater, he that sitteth at meat, or he that -serveth? is not he that sitteth at meat? but I am among you as he -that serveth. - -22:28 Ye are they which have continued with me in my temptations. - -22:29 And I appoint unto you a kingdom, as my Father hath appointed -unto me; 22:30 That ye may eat and drink at my table in my kingdom, -and sit on thrones judging the twelve tribes of Israel. - -22:31 And the Lord said, Simon, Simon, behold, Satan hath desired to -have you, that he may sift you as wheat: 22:32 But I have prayed for -thee, that thy faith fail not: and when thou art converted, strengthen -thy brethren. - -22:33 And he said unto him, Lord, I am ready to go with thee, both -into prison, and to death. - -22:34 And he said, I tell thee, Peter, the cock shall not crow this -day, before that thou shalt thrice deny that thou knowest me. - -22:35 And he said unto them, When I sent you without purse, and scrip, -and shoes, lacked ye any thing? And they said, Nothing. - -22:36 Then said he unto them, But now, he that hath a purse, let him -take it, and likewise his scrip: and he that hath no sword, let him -sell his garment, and buy one. - -22:37 For I say unto you, that this that is written must yet be -accomplished in me, And he was reckoned among the transgressors: for -the things concerning me have an end. - -22:38 And they said, Lord, behold, here are two swords. And he said -unto them, It is enough. - -22:39 And he came out, and went, as he was wont, to the mount of -Olives; and his disciples also followed him. - -22:40 And when he was at the place, he said unto them, Pray that ye -enter not into temptation. - -22:41 And he was withdrawn from them about a stone's cast, and kneeled -down, and prayed, 22:42 Saying, Father, if thou be willing, remove -this cup from me: nevertheless not my will, but thine, be done. - -22:43 And there appeared an angel unto him from heaven, strengthening -him. - -22:44 And being in an agony he prayed more earnestly: and his sweat -was as it were great drops of blood falling down to the ground. - -22:45 And when he rose up from prayer, and was come to his disciples, -he found them sleeping for sorrow, 22:46 And said unto them, Why sleep -ye? rise and pray, lest ye enter into temptation. - -22:47 And while he yet spake, behold a multitude, and he that was -called Judas, one of the twelve, went before them, and drew near unto -Jesus to kiss him. - -22:48 But Jesus said unto him, Judas, betrayest thou the Son of man -with a kiss? 22:49 When they which were about him saw what would -follow, they said unto him, Lord, shall we smite with the sword? -22:50 And one of them smote the servant of the high priest, and cut -off his right ear. - -22:51 And Jesus answered and said, Suffer ye thus far. And he touched -his ear, and healed him. - -22:52 Then Jesus said unto the chief priests, and captains of the -temple, and the elders, which were come to him, Be ye come out, as -against a thief, with swords and staves? 22:53 When I was daily with -you in the temple, ye stretched forth no hands against me: but this is -your hour, and the power of darkness. - -22:54 Then took they him, and led him, and brought him into the high -priest's house. And Peter followed afar off. - -22:55 And when they had kindled a fire in the midst of the hall, and -were set down together, Peter sat down among them. - -22:56 But a certain maid beheld him as he sat by the fire, and -earnestly looked upon him, and said, This man was also with him. - -22:57 And he denied him, saying, Woman, I know him not. - -22:58 And after a little while another saw him, and said, Thou art -also of them. And Peter said, Man, I am not. - -22:59 And about the space of one hour after another confidently -affirmed, saying, Of a truth this fellow also was with him: for he is -a Galilaean. - -22:60 And Peter said, Man, I know not what thou sayest. And -immediately, while he yet spake, the cock crew. - -22:61 And the Lord turned, and looked upon Peter. And Peter remembered -the word of the Lord, how he had said unto him, Before the cock crow, -thou shalt deny me thrice. - -22:62 And Peter went out, and wept bitterly. - -22:63 And the men that held Jesus mocked him, and smote him. - -22:64 And when they had blindfolded him, they struck him on the face, -and asked him, saying, Prophesy, who is it that smote thee? 22:65 And -many other things blasphemously spake they against him. - -22:66 And as soon as it was day, the elders of the people and the -chief priests and the scribes came together, and led him into their -council, saying, 22:67 Art thou the Christ? tell us. And he said unto -them, If I tell you, ye will not believe: 22:68 And if I also ask you, -ye will not answer me, nor let me go. - -22:69 Hereafter shall the Son of man sit on the right hand of the -power of God. - -22:70 Then said they all, Art thou then the Son of God? And he said -unto them, Ye say that I am. - -22:71 And they said, What need we any further witness? for we -ourselves have heard of his own mouth. - -23:1 And the whole multitude of them arose, and led him unto Pilate. - -23:2 And they began to accuse him, saying, We found this fellow -perverting the nation, and forbidding to give tribute to Caesar, -saying that he himself is Christ a King. - -23:3 And Pilate asked him, saying, Art thou the King of the Jews? And -he answered him and said, Thou sayest it. - -23:4 Then said Pilate to the chief priests and to the people, I find -no fault in this man. - -23:5 And they were the more fierce, saying, He stirreth up the people, -teaching throughout all Jewry, beginning from Galilee to this place. - -23:6 When Pilate heard of Galilee, he asked whether the man were a -Galilaean. - -23:7 And as soon as he knew that he belonged unto Herod's -jurisdiction, he sent him to Herod, who himself also was at Jerusalem -at that time. - -23:8 And when Herod saw Jesus, he was exceeding glad: for he was -desirous to see him of a long season, because he had heard many things -of him; and he hoped to have seen some miracle done by him. - -23:9 Then he questioned with him in many words; but he answered him -nothing. - -23:10 And the chief priests and scribes stood and vehemently accused -him. - -23:11 And Herod with his men of war set him at nought, and mocked him, -and arrayed him in a gorgeous robe, and sent him again to Pilate. - -23:12 And the same day Pilate and Herod were made friends together: -for before they were at enmity between themselves. - -23:13 And Pilate, when he had called together the chief priests and -the rulers and the people, 23:14 Said unto them, Ye have brought this -man unto me, as one that perverteth the people: and, behold, I, having -examined him before you, have found no fault in this man touching -those things whereof ye accuse him: 23:15 No, nor yet Herod: for I -sent you to him; and, lo, nothing worthy of death is done unto him. - -23:16 I will therefore chastise him, and release him. - -23:17 (For of necessity he must release one unto them at the feast.) -23:18 And they cried out all at once, saying, Away with this man, and -release unto us Barabbas: 23:19 (Who for a certain sedition made in -the city, and for murder, was cast into prison.) 23:20 Pilate -therefore, willing to release Jesus, spake again to them. - -23:21 But they cried, saying, Crucify him, crucify him. - -23:22 And he said unto them the third time, Why, what evil hath he -done? I have found no cause of death in him: I will therefore chastise -him, and let him go. - -23:23 And they were instant with loud voices, requiring that he might -be crucified. And the voices of them and of the chief priests -prevailed. - -23:24 And Pilate gave sentence that it should be as they required. - -23:25 And he released unto them him that for sedition and murder was -cast into prison, whom they had desired; but he delivered Jesus to -their will. - -23:26 And as they led him away, they laid hold upon one Simon, a -Cyrenian, coming out of the country, and on him they laid the cross, -that he might bear it after Jesus. - -23:27 And there followed him a great company of people, and of women, -which also bewailed and lamented him. - -23:28 But Jesus turning unto them said, Daughters of Jerusalem, weep -not for me, but weep for yourselves, and for your children. - -23:29 For, behold, the days are coming, in the which they shall say, -Blessed are the barren, and the wombs that never bare, and the paps -which never gave suck. - -23:30 Then shall they begin to say to the mountains, Fall on us; and -to the hills, Cover us. - -23:31 For if they do these things in a green tree, what shall be done -in the dry? 23:32 And there were also two other, malefactors, led -with him to be put to death. - -23:33 And when they were come to the place, which is called Calvary, -there they crucified him, and the malefactors, one on the right hand, -and the other on the left. - -23:34 Then said Jesus, Father, forgive them; for they know not what -they do. And they parted his raiment, and cast lots. - -23:35 And the people stood beholding. And the rulers also with them -derided him, saying, He saved others; let him save himself, if he be -Christ, the chosen of God. - -23:36 And the soldiers also mocked him, coming to him, and offering -him vinegar, 23:37 And saying, If thou be the king of the Jews, save -thyself. - -23:38 And a superscription also was written over him in letters of -Greek, and Latin, and Hebrew, THIS IS THE KING OF THE JEWS. - -23:39 And one of the malefactors which were hanged railed on him, -saying, If thou be Christ, save thyself and us. - -23:40 But the other answering rebuked him, saying, Dost not thou fear -God, seeing thou art in the same condemnation? 23:41 And we indeed -justly; for we receive the due reward of our deeds: but this man hath -done nothing amiss. - -23:42 And he said unto Jesus, Lord, remember me when thou comest into -thy kingdom. - -23:43 And Jesus said unto him, Verily I say unto thee, To day shalt -thou be with me in paradise. - -23:44 And it was about the sixth hour, and there was a darkness over -all the earth until the ninth hour. - -23:45 And the sun was darkened, and the veil of the temple was rent in -the midst. - -23:46 And when Jesus had cried with a loud voice, he said, Father, -into thy hands I commend my spirit: and having said thus, he gave up -the ghost. - -23:47 Now when the centurion saw what was done, he glorified God, -saying, Certainly this was a righteous man. - -23:48 And all the people that came together to that sight, beholding -the things which were done, smote their breasts, and returned. - -23:49 And all his acquaintance, and the women that followed him from -Galilee, stood afar off, beholding these things. - -23:50 And, behold, there was a man named Joseph, a counsellor; and he -was a good man, and a just: 23:51 (The same had not consented to the -counsel and deed of them;) he was of Arimathaea, a city of the Jews: -who also himself waited for the kingdom of God. - -23:52 This man went unto Pilate, and begged the body of Jesus. - -23:53 And he took it down, and wrapped it in linen, and laid it in a -sepulchre that was hewn in stone, wherein never man before was laid. - -23:54 And that day was the preparation, and the sabbath drew on. - -23:55 And the women also, which came with him from Galilee, followed -after, and beheld the sepulchre, and how his body was laid. - -23:56 And they returned, and prepared spices and ointments; and rested -the sabbath day according to the commandment. - -24:1 Now upon the first day of the week, very early in the morning, -they came unto the sepulchre, bringing the spices which they had -prepared, and certain others with them. - -24:2 And they found the stone rolled away from the sepulchre. - -24:3 And they entered in, and found not the body of the Lord Jesus. - -24:4 And it came to pass, as they were much perplexed thereabout, -behold, two men stood by them in shining garments: 24:5 And as they -were afraid, and bowed down their faces to the earth, they said unto -them, Why seek ye the living among the dead? 24:6 He is not here, but -is risen: remember how he spake unto you when he was yet in Galilee, -24:7 Saying, The Son of man must be delivered into the hands of sinful -men, and be crucified, and the third day rise again. - -24:8 And they remembered his words, 24:9 And returned from the -sepulchre, and told all these things unto the eleven, and to all the -rest. - -24:10 It was Mary Magdalene and Joanna, and Mary the mother of James, -and other women that were with them, which told these things unto the -apostles. - -24:11 And their words seemed to them as idle tales, and they believed -them not. - -24:12 Then arose Peter, and ran unto the sepulchre; and stooping down, -he beheld the linen clothes laid by themselves, and departed, -wondering in himself at that which was come to pass. - -24:13 And, behold, two of them went that same day to a village called -Emmaus, which was from Jerusalem about threescore furlongs. - -24:14 And they talked together of all these things which had happened. - -24:15 And it came to pass, that, while they communed together and -reasoned, Jesus himself drew near, and went with them. - -24:16 But their eyes were holden that they should not know him. - -24:17 And he said unto them, What manner of communications are these -that ye have one to another, as ye walk, and are sad? 24:18 And the -one of them, whose name was Cleopas, answering said unto him, Art thou -only a stranger in Jerusalem, and hast not known the things which are -come to pass there in these days? 24:19 And he said unto them, What -things? And they said unto him, Concerning Jesus of Nazareth, which -was a prophet mighty in deed and word before God and all the people: -24:20 And how the chief priests and our rulers delivered him to be -condemned to death, and have crucified him. - -24:21 But we trusted that it had been he which should have redeemed -Israel: and beside all this, to day is the third day since these -things were done. - -24:22 Yea, and certain women also of our company made us astonished, -which were early at the sepulchre; 24:23 And when they found not his -body, they came, saying, that they had also seen a vision of angels, -which said that he was alive. - -24:24 And certain of them which were with us went to the sepulchre, -and found it even so as the women had said: but him they saw not. - -24:25 Then he said unto them, O fools, and slow of heart to believe -all that the prophets have spoken: 24:26 Ought not Christ to have -suffered these things, and to enter into his glory? 24:27 And -beginning at Moses and all the prophets, he expounded unto them in all -the scriptures the things concerning himself. - -24:28 And they drew nigh unto the village, whither they went: and he -made as though he would have gone further. - -24:29 But they constrained him, saying, Abide with us: for it is -toward evening, and the day is far spent. And he went in to tarry with -them. - -24:30 And it came to pass, as he sat at meat with them, he took bread, -and blessed it, and brake, and gave to them. - -24:31 And their eyes were opened, and they knew him; and he vanished -out of their sight. - -24:32 And they said one to another, Did not our heart burn within us, -while he talked with us by the way, and while he opened to us the -scriptures? 24:33 And they rose up the same hour, and returned to -Jerusalem, and found the eleven gathered together, and them that were -with them, 24:34 Saying, The Lord is risen indeed, and hath appeared -to Simon. - -24:35 And they told what things were done in the way, and how he was -known of them in breaking of bread. - -24:36 And as they thus spake, Jesus himself stood in the midst of -them, and saith unto them, Peace be unto you. - -24:37 But they were terrified and affrighted, and supposed that they -had seen a spirit. - -24:38 And he said unto them, Why are ye troubled? and why do thoughts -arise in your hearts? 24:39 Behold my hands and my feet, that it is I -myself: handle me, and see; for a spirit hath not flesh and bones, as -ye see me have. - -24:40 And when he had thus spoken, he shewed them his hands and his -feet. - -24:41 And while they yet believed not for joy, and wondered, he said -unto them, Have ye here any meat? 24:42 And they gave him a piece of -a broiled fish, and of an honeycomb. - -24:43 And he took it, and did eat before them. - -24:44 And he said unto them, These are the words which I spake unto -you, while I was yet with you, that all things must be fulfilled, -which were written in the law of Moses, and in the prophets, and in -the psalms, concerning me. - -24:45 Then opened he their understanding, that they might understand -the scriptures, 24:46 And said unto them, Thus it is written, and thus -it behoved Christ to suffer, and to rise from the dead the third day: -24:47 And that repentance and remission of sins should be preached in -his name among all nations, beginning at Jerusalem. - -24:48 And ye are witnesses of these things. - -24:49 And, behold, I send the promise of my Father upon you: but tarry -ye in the city of Jerusalem, until ye be endued with power from on -high. - -24:50 And he led them out as far as to Bethany, and he lifted up his -hands, and blessed them. - -24:51 And it came to pass, while he blessed them, he was parted from -them, and carried up into heaven. - -24:52 And they worshipped him, and returned to Jerusalem with great -joy: 24:53 And were continually in the temple, praising and blessing -God. Amen. - - - - -The Gospel According to Saint John - - -1:1 In the beginning was the Word, and the Word was with God, and the -Word was God. - -1:2 The same was in the beginning with God. - -1:3 All things were made by him; and without him was not any thing -made that was made. - -1:4 In him was life; and the life was the light of men. - -1:5 And the light shineth in darkness; and the darkness comprehended -it not. - -1:6 There was a man sent from God, whose name was John. - -1:7 The same came for a witness, to bear witness of the Light, that -all men through him might believe. - -1:8 He was not that Light, but was sent to bear witness of that Light. - -1:9 That was the true Light, which lighteth every man that cometh into -the world. - -1:10 He was in the world, and the world was made by him, and the world -knew him not. - -1:11 He came unto his own, and his own received him not. - -1:12 But as many as received him, to them gave he power to become the -sons of God, even to them that believe on his name: 1:13 Which were -born, not of blood, nor of the will of the flesh, nor of the will of -man, but of God. - -1:14 And the Word was made flesh, and dwelt among us, (and we beheld -his glory, the glory as of the only begotten of the Father,) full of -grace and truth. - -1:15 John bare witness of him, and cried, saying, This was he of whom -I spake, He that cometh after me is preferred before me: for he was -before me. - -1:16 And of his fulness have all we received, and grace for grace. - -1:17 For the law was given by Moses, but grace and truth came by Jesus -Christ. - -1:18 No man hath seen God at any time, the only begotten Son, which is -in the bosom of the Father, he hath declared him. - -1:19 And this is the record of John, when the Jews sent priests and -Levites from Jerusalem to ask him, Who art thou? 1:20 And he -confessed, and denied not; but confessed, I am not the Christ. - -1:21 And they asked him, What then? Art thou Elias? And he saith, I am -not. Art thou that prophet? And he answered, No. - -1:22 Then said they unto him, Who art thou? that we may give an answer -to them that sent us. What sayest thou of thyself? 1:23 He said, I am -the voice of one crying in the wilderness, Make straight the way of -the Lord, as said the prophet Esaias. - -1:24 And they which were sent were of the Pharisees. - -1:25 And they asked him, and said unto him, Why baptizest thou then, -if thou be not that Christ, nor Elias, neither that prophet? 1:26 -John answered them, saying, I baptize with water: but there standeth -one among you, whom ye know not; 1:27 He it is, who coming after me is -preferred before me, whose shoe's latchet I am not worthy to unloose. - -1:28 These things were done in Bethabara beyond Jordan, where John was -baptizing. - -1:29 The next day John seeth Jesus coming unto him, and saith, Behold -the Lamb of God, which taketh away the sin of the world. - -1:30 This is he of whom I said, After me cometh a man which is -preferred before me: for he was before me. - -1:31 And I knew him not: but that he should be made manifest to -Israel, therefore am I come baptizing with water. - -1:32 And John bare record, saying, I saw the Spirit descending from -heaven like a dove, and it abode upon him. - -1:33 And I knew him not: but he that sent me to baptize with water, -the same said unto me, Upon whom thou shalt see the Spirit descending, -and remaining on him, the same is he which baptizeth with the Holy -Ghost. - -1:34 And I saw, and bare record that this is the Son of God. - -1:35 Again the next day after John stood, and two of his disciples; -1:36 And looking upon Jesus as he walked, he saith, Behold the Lamb of -God! 1:37 And the two disciples heard him speak, and they followed -Jesus. - -1:38 Then Jesus turned, and saw them following, and saith unto them, -What seek ye? They said unto him, Rabbi, (which is to say, being -interpreted, Master,) where dwellest thou? 1:39 He saith unto them, -Come and see. They came and saw where he dwelt, and abode with him -that day: for it was about the tenth hour. - -1:40 One of the two which heard John speak, and followed him, was -Andrew, Simon Peter's brother. - -1:41 He first findeth his own brother Simon, and saith unto him, We -have found the Messias, which is, being interpreted, the Christ. - -1:42 And he brought him to Jesus. And when Jesus beheld him, he said, -Thou art Simon the son of Jona: thou shalt be called Cephas, which is -by interpretation, A stone. - -1:43 The day following Jesus would go forth into Galilee, and findeth -Philip, and saith unto him, Follow me. - -1:44 Now Philip was of Bethsaida, the city of Andrew and Peter. - -1:45 Philip findeth Nathanael, and saith unto him, We have found him, -of whom Moses in the law, and the prophets, did write, Jesus of -Nazareth, the son of Joseph. - -1:46 And Nathanael said unto him, Can there any good thing come out of -Nazareth? Philip saith unto him, Come and see. - -1:47 Jesus saw Nathanael coming to him, and saith of him, Behold an -Israelite indeed, in whom is no guile! 1:48 Nathanael saith unto him, -Whence knowest thou me? Jesus answered and said unto him, Before that -Philip called thee, when thou wast under the fig tree, I saw thee. - -1:49 Nathanael answered and saith unto him, Rabbi, thou art the Son of -God; thou art the King of Israel. - -1:50 Jesus answered and said unto him, Because I said unto thee, I saw -thee under the fig tree, believest thou? thou shalt see greater things -than these. - -1:51 And he saith unto him, Verily, verily, I say unto you, Hereafter -ye shall see heaven open, and the angels of God ascending and -descending upon the Son of man. - -2:1 And the third day there was a marriage in Cana of Galilee; and the -mother of Jesus was there: 2:2 And both Jesus was called, and his -disciples, to the marriage. - -2:3 And when they wanted wine, the mother of Jesus saith unto him, -They have no wine. - -2:4 Jesus saith unto her, Woman, what have I to do with thee? mine -hour is not yet come. - -2:5 His mother saith unto the servants, Whatsoever he saith unto you, -do it. - -2:6 And there were set there six waterpots of stone, after the manner -of the purifying of the Jews, containing two or three firkins apiece. - -2:7 Jesus saith unto them, Fill the waterpots with water. And they -filled them up to the brim. - -2:8 And he saith unto them, Draw out now, and bear unto the governor -of the feast. And they bare it. - -2:9 When the ruler of the feast had tasted the water that was made -wine, and knew not whence it was: (but the servants which drew the -water knew;) the governor of the feast called the bridegroom, 2:10 And -saith unto him, Every man at the beginning doth set forth good wine; -and when men have well drunk, then that which is worse: but thou hast -kept the good wine until now. - -2:11 This beginning of miracles did Jesus in Cana of Galilee, and -manifested forth his glory; and his disciples believed on him. - -2:12 After this he went down to Capernaum, he, and his mother, and his -brethren, and his disciples: and they continued there not many days. - -2:13 And the Jews' passover was at hand, and Jesus went up to -Jerusalem. - -2:14 And found in the temple those that sold oxen and sheep and doves, -and the changers of money sitting: 2:15 And when he had made a scourge -of small cords, he drove them all out of the temple, and the sheep, -and the oxen; and poured out the changers' money, and overthrew the -tables; 2:16 And said unto them that sold doves, Take these things -hence; make not my Father's house an house of merchandise. - -2:17 And his disciples remembered that it was written, The zeal of -thine house hath eaten me up. - -2:18 Then answered the Jews and said unto him, What sign shewest thou -unto us, seeing that thou doest these things? 2:19 Jesus answered and -said unto them, Destroy this temple, and in three days I will raise it -up. - -2:20 Then said the Jews, Forty and six years was this temple in -building, and wilt thou rear it up in three days? 2:21 But he spake -of the temple of his body. - -2:22 When therefore he was risen from the dead, his disciples -remembered that he had said this unto them; and they believed the -scripture, and the word which Jesus had said. - -2:23 Now when he was in Jerusalem at the passover, in the feast day, -many believed in his name, when they saw the miracles which he did. - -2:24 But Jesus did not commit himself unto them, because he knew all -men, 2:25 And needed not that any should testify of man: for he knew -what was in man. - -3:1 There was a man of the Pharisees, named Nicodemus, a ruler of the -Jews: 3:2 The same came to Jesus by night, and said unto him, Rabbi, -we know that thou art a teacher come from God: for no man can do these -miracles that thou doest, except God be with him. - -3:3 Jesus answered and said unto him, Verily, verily, I say unto thee, -Except a man be born again, he cannot see the kingdom of God. - -3:4 Nicodemus saith unto him, How can a man be born when he is old? -can he enter the second time into his mother's womb, and be born? 3:5 -Jesus answered, Verily, verily, I say unto thee, Except a man be born -of water and of the Spirit, he cannot enter into the kingdom of God. - -3:6 That which is born of the flesh is flesh; and that which is born -of the Spirit is spirit. - -3:7 Marvel not that I said unto thee, Ye must be born again. - -3:8 The wind bloweth where it listeth, and thou hearest the sound -thereof, but canst not tell whence it cometh, and whither it goeth: so -is every one that is born of the Spirit. - -3:9 Nicodemus answered and said unto him, How can these things be? -3:10 Jesus answered and said unto him, Art thou a master of Israel, -and knowest not these things? 3:11 Verily, verily, I say unto thee, -We speak that we do know, and testify that we have seen; and ye -receive not our witness. - -3:12 If I have told you earthly things, and ye believe not, how shall -ye believe, if I tell you of heavenly things? 3:13 And no man hath -ascended up to heaven, but he that came down from heaven, even the Son -of man which is in heaven. - -3:14 And as Moses lifted up the serpent in the wilderness, even so -must the Son of man be lifted up: 3:15 That whosoever believeth in him -should not perish, but have eternal life. - -3:16 For God so loved the world, that he gave his only begotten Son, -that whosoever believeth in him should not perish, but have -everlasting life. - -3:17 For God sent not his Son into the world to condemn the world; but -that the world through him might be saved. - -3:18 He that believeth on him is not condemned: but he that believeth -not is condemned already, because he hath not believed in the name of -the only begotten Son of God. - -3:19 And this is the condemnation, that light is come into the world, -and men loved darkness rather than light, because their deeds were -evil. - -3:20 For every one that doeth evil hateth the light, neither cometh to -the light, lest his deeds should be reproved. - -3:21 But he that doeth truth cometh to the light, that his deeds may -be made manifest, that they are wrought in God. - -3:22 After these things came Jesus and his disciples into the land of -Judaea; and there he tarried with them, and baptized. - -3:23 And John also was baptizing in Aenon near to Salim, because there -was much water there: and they came, and were baptized. - -3:24 For John was not yet cast into prison. - -3:25 Then there arose a question between some of John's disciples and -the Jews about purifying. - -3:26 And they came unto John, and said unto him, Rabbi, he that was -with thee beyond Jordan, to whom thou barest witness, behold, the same -baptizeth, and all men come to him. - -3:27 John answered and said, A man can receive nothing, except it be -given him from heaven. - -3:28 Ye yourselves bear me witness, that I said, I am not the Christ, -but that I am sent before him. - -3:29 He that hath the bride is the bridegroom: but the friend of the -bridegroom, which standeth and heareth him, rejoiceth greatly because -of the bridegroom's voice: this my joy therefore is fulfilled. - -3:30 He must increase, but I must decrease. - -3:31 He that cometh from above is above all: he that is of the earth -is earthly, and speaketh of the earth: he that cometh from heaven is -above all. - -3:32 And what he hath seen and heard, that he testifieth; and no man -receiveth his testimony. - -3:33 He that hath received his testimony hath set to his seal that God -is true. - -3:34 For he whom God hath sent speaketh the words of God: for God -giveth not the Spirit by measure unto him. - -3:35 The Father loveth the Son, and hath given all things into his -hand. - -3:36 He that believeth on the Son hath everlasting life: and he that -believeth not the Son shall not see life; but the wrath of God abideth -on him. - -4:1 When therefore the LORD knew how the Pharisees had heard that -Jesus made and baptized more disciples than John, 4:2 (Though Jesus -himself baptized not, but his disciples,) 4:3 He left Judaea, and -departed again into Galilee. - -4:4 And he must needs go through Samaria. - -4:5 Then cometh he to a city of Samaria, which is called Sychar, near -to the parcel of ground that Jacob gave to his son Joseph. - -4:6 Now Jacob's well was there. Jesus therefore, being wearied with -his journey, sat thus on the well: and it was about the sixth hour. - -4:7 There cometh a woman of Samaria to draw water: Jesus saith unto -her, Give me to drink. - -4:8 (For his disciples were gone away unto the city to buy meat.) 4:9 -Then saith the woman of Samaria unto him, How is it that thou, being a -Jew, askest drink of me, which am a woman of Samaria? for the Jews -have no dealings with the Samaritans. - -4:10 Jesus answered and said unto her, If thou knewest the gift of -God, and who it is that saith to thee, Give me to drink; thou wouldest -have asked of him, and he would have given thee living water. - -4:11 The woman saith unto him, Sir, thou hast nothing to draw with, -and the well is deep: from whence then hast thou that living water? -4:12 Art thou greater than our father Jacob, which gave us the well, -and drank thereof himself, and his children, and his cattle? 4:13 -Jesus answered and said unto her, Whosoever drinketh of this water -shall thirst again: 4:14 But whosoever drinketh of the water that I -shall give him shall never thirst; but the water that I shall give him -shall be in him a well of water springing up into everlasting life. - -4:15 The woman saith unto him, Sir, give me this water, that I thirst -not, neither come hither to draw. - -4:16 Jesus saith unto her, Go, call thy husband, and come hither. - -4:17 The woman answered and said, I have no husband. Jesus said unto -her, Thou hast well said, I have no husband: 4:18 For thou hast had -five husbands; and he whom thou now hast is not thy husband: in that -saidst thou truly. - -4:19 The woman saith unto him, Sir, I perceive that thou art a -prophet. - -4:20 Our fathers worshipped in this mountain; and ye say, that in -Jerusalem is the place where men ought to worship. - -4:21 Jesus saith unto her, Woman, believe me, the hour cometh, when ye -shall neither in this mountain, nor yet at Jerusalem, worship the -Father. - -4:22 Ye worship ye know not what: we know what we worship: for -salvation is of the Jews. - -4:23 But the hour cometh, and now is, when the true worshippers shall -worship the Father in spirit and in truth: for the Father seeketh such -to worship him. - -4:24 God is a Spirit: and they that worship him must worship him in -spirit and in truth. - -4:25 The woman saith unto him, I know that Messias cometh, which is -called Christ: when he is come, he will tell us all things. - -4:26 Jesus saith unto her, I that speak unto thee am he. - -4:27 And upon this came his disciples, and marvelled that he talked -with the woman: yet no man said, What seekest thou? or, Why talkest -thou with her? 4:28 The woman then left her waterpot, and went her -way into the city, and saith to the men, 4:29 Come, see a man, which -told me all things that ever I did: is not this the Christ? 4:30 Then -they went out of the city, and came unto him. - -4:31 In the mean while his disciples prayed him, saying, Master, eat. - -4:32 But he said unto them, I have meat to eat that ye know not of. - -4:33 Therefore said the disciples one to another, Hath any man brought -him ought to eat? 4:34 Jesus saith unto them, My meat is to do the -will of him that sent me, and to finish his work. - -4:35 Say not ye, There are yet four months, and then cometh harvest? -behold, I say unto you, Lift up your eyes, and look on the fields; for -they are white already to harvest. - -4:36 And he that reapeth receiveth wages, and gathereth fruit unto -life eternal: that both he that soweth and he that reapeth may rejoice -together. - -4:37 And herein is that saying true, One soweth, and another reapeth. - -4:38 I sent you to reap that whereon ye bestowed no labour: other men -laboured, and ye are entered into their labours. - -4:39 And many of the Samaritans of that city believed on him for the -saying of the woman, which testified, He told me all that ever I did. - -4:40 So when the Samaritans were come unto him, they besought him that -he would tarry with them: and he abode there two days. - -4:41 And many more believed because of his own word; 4:42 And said -unto the woman, Now we believe, not because of thy saying: for we have -heard him ourselves, and know that this is indeed the Christ, the -Saviour of the world. - -4:43 Now after two days he departed thence, and went into Galilee. - -4:44 For Jesus himself testified, that a prophet hath no honour in his -own country. - -4:45 Then when he was come into Galilee, the Galilaeans received him, -having seen all the things that he did at Jerusalem at the feast: for -they also went unto the feast. - -4:46 So Jesus came again into Cana of Galilee, where he made the water -wine. And there was a certain nobleman, whose son was sick at -Capernaum. - -4:47 When he heard that Jesus was come out of Judaea into Galilee, he -went unto him, and besought him that he would come down, and heal his -son: for he was at the point of death. - -4:48 Then said Jesus unto him, Except ye see signs and wonders, ye -will not believe. - -4:49 The nobleman saith unto him, Sir, come down ere my child die. - -4:50 Jesus saith unto him, Go thy way; thy son liveth. And the man -believed the word that Jesus had spoken unto him, and he went his way. - -4:51 And as he was now going down, his servants met him, and told him, -saying, Thy son liveth. - -4:52 Then enquired he of them the hour when he began to amend. And -they said unto him, Yesterday at the seventh hour the fever left him. - -4:53 So the father knew that it was at the same hour, in the which -Jesus said unto him, Thy son liveth: and himself believed, and his -whole house. - -4:54 This is again the second miracle that Jesus did, when he was come -out of Judaea into Galilee. - -5:1 After this there was a feast of the Jews; and Jesus went up to -Jerusalem. - -5:2 Now there is at Jerusalem by the sheep market a pool, which is -called in the Hebrew tongue Bethesda, having five porches. - -5:3 In these lay a great multitude of impotent folk, of blind, halt, -withered, waiting for the moving of the water. - -5:4 For an angel went down at a certain season into the pool, and -troubled the water: whosoever then first after the troubling of the -water stepped in was made whole of whatsoever disease he had. - -5:5 And a certain man was there, which had an infirmity thirty and -eight years. - -5:6 When Jesus saw him lie, and knew that he had been now a long time -in that case, he saith unto him, Wilt thou be made whole? 5:7 The -impotent man answered him, Sir, I have no man, when the water is -troubled, to put me into the pool: but while I am coming, another -steppeth down before me. - -5:8 Jesus saith unto him, Rise, take up thy bed, and walk. - -5:9 And immediately the man was made whole, and took up his bed, and -walked: and on the same day was the sabbath. - -5:10 The Jews therefore said unto him that was cured, It is the -sabbath day: it is not lawful for thee to carry thy bed. - -5:11 He answered them, He that made me whole, the same said unto me, -Take up thy bed, and walk. - -5:12 Then asked they him, What man is that which said unto thee, Take -up thy bed, and walk? 5:13 And he that was healed wist not who it -was: for Jesus had conveyed himself away, a multitude being in that -place. - -5:14 Afterward Jesus findeth him in the temple, and said unto him, -Behold, thou art made whole: sin no more, lest a worse thing come unto -thee. - -5:15 The man departed, and told the Jews that it was Jesus, which had -made him whole. - -5:16 And therefore did the Jews persecute Jesus, and sought to slay -him, because he had done these things on the sabbath day. - -5:17 But Jesus answered them, My Father worketh hitherto, and I work. - -5:18 Therefore the Jews sought the more to kill him, because he not -only had broken the sabbath, but said also that God was his Father, -making himself equal with God. - -5:19 Then answered Jesus and said unto them, Verily, verily, I say -unto you, The Son can do nothing of himself, but what he seeth the -Father do: for what things soever he doeth, these also doeth the Son -likewise. - -5:20 For the Father loveth the Son, and sheweth him all things that -himself doeth: and he will shew him greater works than these, that ye -may marvel. - -5:21 For as the Father raiseth up the dead, and quickeneth them; even -so the Son quickeneth whom he will. - -5:22 For the Father judgeth no man, but hath committed all judgment -unto the Son: 5:23 That all men should honour the Son, even as they -honour the Father. - -He that honoureth not the Son honoureth not the Father which hath sent -him. - -5:24 Verily, verily, I say unto you, He that heareth my word, and -believeth on him that sent me, hath everlasting life, and shall not -come into condemnation; but is passed from death unto life. - -5:25 Verily, verily, I say unto you, The hour is coming, and now is, -when the dead shall hear the voice of the Son of God: and they that -hear shall live. - -5:26 For as the Father hath life in himself; so hath he given to the -Son to have life in himself; 5:27 And hath given him authority to -execute judgment also, because he is the Son of man. - -5:28 Marvel not at this: for the hour is coming, in the which all that -are in the graves shall hear his voice, 5:29 And shall come forth; -they that have done good, unto the resurrection of life; and they that -have done evil, unto the resurrection of damnation. - -5:30 I can of mine own self do nothing: as I hear, I judge: and my -judgment is just; because I seek not mine own will, but the will of -the Father which hath sent me. - -5:31 If I bear witness of myself, my witness is not true. - -5:32 There is another that beareth witness of me; and I know that the -witness which he witnesseth of me is true. - -5:33 Ye sent unto John, and he bare witness unto the truth. - -5:34 But I receive not testimony from man: but these things I say, -that ye might be saved. - -5:35 He was a burning and a shining light: and ye were willing for a -season to rejoice in his light. - -5:36 But I have greater witness than that of John: for the works which -the Father hath given me to finish, the same works that I do, bear -witness of me, that the Father hath sent me. - -5:37 And the Father himself, which hath sent me, hath borne witness of -me. - -Ye have neither heard his voice at any time, nor seen his shape. - -5:38 And ye have not his word abiding in you: for whom he hath sent, -him ye believe not. - -5:39 Search the scriptures; for in them ye think ye have eternal life: -and they are they which testify of me. - -5:40 And ye will not come to me, that ye might have life. - -5:41 I receive not honour from men. - -5:42 But I know you, that ye have not the love of God in you. - -5:43 I am come in my Father's name, and ye receive me not: if another -shall come in his own name, him ye will receive. - -5:44 How can ye believe, which receive honour one of another, and seek -not the honour that cometh from God only? 5:45 Do not think that I -will accuse you to the Father: there is one that accuseth you, even -Moses, in whom ye trust. - -5:46 For had ye believed Moses, ye would have believed me; for he -wrote of me. - -5:47 But if ye believe not his writings, how shall ye believe my -words? 6:1 After these things Jesus went over the sea of Galilee, -which is the sea of Tiberias. - -6:2 And a great multitude followed him, because they saw his miracles -which he did on them that were diseased. - -6:3 And Jesus went up into a mountain, and there he sat with his -disciples. - -6:4 And the passover, a feast of the Jews, was nigh. - -6:5 When Jesus then lifted up his eyes, and saw a great company come -unto him, he saith unto Philip, Whence shall we buy bread, that these -may eat? 6:6 And this he said to prove him: for he himself knew what -he would do. - -6:7 Philip answered him, Two hundred pennyworth of bread is not -sufficient for them, that every one of them may take a little. - -6:8 One of his disciples, Andrew, Simon Peter's brother, saith unto -him, 6:9 There is a lad here, which hath five barley loaves, and two -small fishes: but what are they among so many? 6:10 And Jesus said, -Make the men sit down. Now there was much grass in the place. So the -men sat down, in number about five thousand. - -6:11 And Jesus took the loaves; and when he had given thanks, he -distributed to the disciples, and the disciples to them that were set -down; and likewise of the fishes as much as they would. - -6:12 When they were filled, he said unto his disciples, Gather up the -fragments that remain, that nothing be lost. - -6:13 Therefore they gathered them together, and filled twelve baskets -with the fragments of the five barley loaves, which remained over and -above unto them that had eaten. - -6:14 Then those men, when they had seen the miracle that Jesus did, -said, This is of a truth that prophet that should come into the world. - -6:15 When Jesus therefore perceived that they would come and take him -by force, to make him a king, he departed again into a mountain -himself alone. - -6:16 And when even was now come, his disciples went down unto the sea, -6:17 And entered into a ship, and went over the sea toward Capernaum. -And it was now dark, and Jesus was not come to them. - -6:18 And the sea arose by reason of a great wind that blew. - -6:19 So when they had rowed about five and twenty or thirty furlongs, -they see Jesus walking on the sea, and drawing nigh unto the ship: and -they were afraid. - -6:20 But he saith unto them, It is I; be not afraid. - -6:21 Then they willingly received him into the ship: and immediately -the ship was at the land whither they went. - -6:22 The day following, when the people which stood on the other side -of the sea saw that there was none other boat there, save that one -whereinto his disciples were entered, and that Jesus went not with his -disciples into the boat, but that his disciples were gone away alone; -6:23 (Howbeit there came other boats from Tiberias nigh unto the place -where they did eat bread, after that the Lord had given thanks:) 6:24 -When the people therefore saw that Jesus was not there, neither his -disciples, they also took shipping, and came to Capernaum, seeking for -Jesus. - -6:25 And when they had found him on the other side of the sea, they -said unto him, Rabbi, when camest thou hither? 6:26 Jesus answered -them and said, Verily, verily, I say unto you, Ye seek me, not because -ye saw the miracles, but because ye did eat of the loaves, and were -filled. - -6:27 Labour not for the meat which perisheth, but for that meat which -endureth unto everlasting life, which the Son of man shall give unto -you: for him hath God the Father sealed. - -6:28 Then said they unto him, What shall we do, that we might work the -works of God? 6:29 Jesus answered and said unto them, This is the -work of God, that ye believe on him whom he hath sent. - -6:30 They said therefore unto him, What sign shewest thou then, that -we may see, and believe thee? what dost thou work? 6:31 Our fathers -did eat manna in the desert; as it is written, He gave them bread from -heaven to eat. - -6:32 Then Jesus said unto them, Verily, verily, I say unto you, Moses -gave you not that bread from heaven; but my Father giveth you the true -bread from heaven. - -6:33 For the bread of God is he which cometh down from heaven, and -giveth life unto the world. - -6:34 Then said they unto him, Lord, evermore give us this bread. - -6:35 And Jesus said unto them, I am the bread of life: he that cometh -to me shall never hunger; and he that believeth on me shall never -thirst. - -6:36 But I said unto you, That ye also have seen me, and believe not. - -6:37 All that the Father giveth me shall come to me; and him that -cometh to me I will in no wise cast out. - -6:38 For I came down from heaven, not to do mine own will, but the -will of him that sent me. - -6:39 And this is the Father's will which hath sent me, that of all -which he hath given me I should lose nothing, but should raise it up -again at the last day. - -6:40 And this is the will of him that sent me, that every one which -seeth the Son, and believeth on him, may have everlasting life: and I -will raise him up at the last day. - -6:41 The Jews then murmured at him, because he said, I am the bread -which came down from heaven. - -6:42 And they said, Is not this Jesus, the son of Joseph, whose father -and mother we know? how is it then that he saith, I came down from -heaven? 6:43 Jesus therefore answered and said unto them, Murmur not -among yourselves. - -6:44 No man can come to me, except the Father which hath sent me draw -him: and I will raise him up at the last day. - -6:45 It is written in the prophets, And they shall be all taught of -God. - -Every man therefore that hath heard, and hath learned of the Father, -cometh unto me. - -6:46 Not that any man hath seen the Father, save he which is of God, -he hath seen the Father. - -6:47 Verily, verily, I say unto you, He that believeth on me hath -everlasting life. - -6:48 I am that bread of life. - -6:49 Your fathers did eat manna in the wilderness, and are dead. - -6:50 This is the bread which cometh down from heaven, that a man may -eat thereof, and not die. - -6:51 I am the living bread which came down from heaven: if any man eat -of this bread, he shall live for ever: and the bread that I will give -is my flesh, which I will give for the life of the world. - -6:52 The Jews therefore strove among themselves, saying, How can this -man give us his flesh to eat? 6:53 Then Jesus said unto them, Verily, -verily, I say unto you, Except ye eat the flesh of the Son of man, and -drink his blood, ye have no life in you. - -6:54 Whoso eateth my flesh, and drinketh my blood, hath eternal life; -and I will raise him up at the last day. - -6:55 For my flesh is meat indeed, and my blood is drink indeed. - -6:56 He that eateth my flesh, and drinketh my blood, dwelleth in me, -and I in him. - -6:57 As the living Father hath sent me, and I live by the Father: so -he that eateth me, even he shall live by me. - -6:58 This is that bread which came down from heaven: not as your -fathers did eat manna, and are dead: he that eateth of this bread -shall live for ever. - -6:59 These things said he in the synagogue, as he taught in Capernaum. - -6:60 Many therefore of his disciples, when they had heard this, said, -This is an hard saying; who can hear it? 6:61 When Jesus knew in -himself that his disciples murmured at it, he said unto them, Doth -this offend you? 6:62 What and if ye shall see the Son of man ascend -up where he was before? 6:63 It is the spirit that quickeneth; the -flesh profiteth nothing: the words that I speak unto you, they are -spirit, and they are life. - -6:64 But there are some of you that believe not. For Jesus knew from -the beginning who they were that believed not, and who should betray -him. - -6:65 And he said, Therefore said I unto you, that no man can come unto -me, except it were given unto him of my Father. - -6:66 From that time many of his disciples went back, and walked no -more with him. - -6:67 Then said Jesus unto the twelve, Will ye also go away? 6:68 Then -Simon Peter answered him, Lord, to whom shall we go? thou hast the -words of eternal life. - -6:69 And we believe and are sure that thou art that Christ, the Son of -the living God. - -6:70 Jesus answered them, Have not I chosen you twelve, and one of you -is a devil? 6:71 He spake of Judas Iscariot the son of Simon: for he -it was that should betray him, being one of the twelve. - -7:1 After these things Jesus walked in Galilee: for he would not walk -in Jewry, because the Jews sought to kill him. - -7:2 Now the Jew's feast of tabernacles was at hand. - -7:3 His brethren therefore said unto him, Depart hence, and go into -Judaea, that thy disciples also may see the works that thou doest. - -7:4 For there is no man that doeth any thing in secret, and he himself -seeketh to be known openly. If thou do these things, shew thyself to -the world. - -7:5 For neither did his brethren believe in him. - -7:6 Then Jesus said unto them, My time is not yet come: but your time -is alway ready. - -7:7 The world cannot hate you; but me it hateth, because I testify of -it, that the works thereof are evil. - -7:8 Go ye up unto this feast: I go not up yet unto this feast: for my -time is not yet full come. - -7:9 When he had said these words unto them, he abode still in Galilee. - -7:10 But when his brethren were gone up, then went he also up unto the -feast, not openly, but as it were in secret. - -7:11 Then the Jews sought him at the feast, and said, Where is he? -7:12 And there was much murmuring among the people concerning him: for -some said, He is a good man: others said, Nay; but he deceiveth the -people. - -7:13 Howbeit no man spake openly of him for fear of the Jews. - -7:14 Now about the midst of the feast Jesus went up into the temple, -and taught. - -7:15 And the Jews marvelled, saying, How knoweth this man letters, -having never learned? 7:16 Jesus answered them, and said, My doctrine -is not mine, but his that sent me. - -7:17 If any man will do his will, he shall know of the doctrine, -whether it be of God, or whether I speak of myself. - -7:18 He that speaketh of himself seeketh his own glory: but he that -seeketh his glory that sent him, the same is true, and no -unrighteousness is in him. - -7:19 Did not Moses give you the law, and yet none of you keepeth the -law? Why go ye about to kill me? 7:20 The people answered and said, -Thou hast a devil: who goeth about to kill thee? 7:21 Jesus answered -and said unto them, I have done one work, and ye all marvel. - -7:22 Moses therefore gave unto you circumcision; (not because it is of -Moses, but of the fathers;) and ye on the sabbath day circumcise a -man. - -7:23 If a man on the sabbath day receive circumcision, that the law of -Moses should not be broken; are ye angry at me, because I have made a -man every whit whole on the sabbath day? 7:24 Judge not according to -the appearance, but judge righteous judgment. - -7:25 Then said some of them of Jerusalem, Is not this he, whom they -seek to kill? 7:26 But, lo, he speaketh boldly, and they say nothing -unto him. Do the rulers know indeed that this is the very Christ? -7:27 Howbeit we know this man whence he is: but when Christ cometh, no -man knoweth whence he is. - -7:28 Then cried Jesus in the temple as he taught, saying, Ye both know -me, and ye know whence I am: and I am not come of myself, but he that -sent me is true, whom ye know not. - -7:29 But I know him: for I am from him, and he hath sent me. - -7:30 Then they sought to take him: but no man laid hands on him, -because his hour was not yet come. - -7:31 And many of the people believed on him, and said, When Christ -cometh, will he do more miracles than these which this man hath done? -7:32 The Pharisees heard that the people murmured such things -concerning him; and the Pharisees and the chief priests sent officers -to take him. - -7:33 Then said Jesus unto them, Yet a little while am I with you, and -then I go unto him that sent me. - -7:34 Ye shall seek me, and shall not find me: and where I am, thither -ye cannot come. - -7:35 Then said the Jews among themselves, Whither will he go, that we -shall not find him? will he go unto the dispersed among the Gentiles, -and teach the Gentiles? 7:36 What manner of saying is this that he -said, Ye shall seek me, and shall not find me: and where I am, thither -ye cannot come? 7:37 In the last day, that great day of the feast, -Jesus stood and cried, saying, If any man thirst, let him come unto -me, and drink. - -7:38 He that believeth on me, as the scripture hath said, out of his -belly shall flow rivers of living water. - -7:39 (But this spake he of the Spirit, which they that believe on him -should receive: for the Holy Ghost was not yet given; because that -Jesus was not yet glorified.) 7:40 Many of the people therefore, when -they heard this saying, said, Of a truth this is the Prophet. - -7:41 Others said, This is the Christ. But some said, Shall Christ come -out of Galilee? 7:42 Hath not the scripture said, That Christ cometh -of the seed of David, and out of the town of Bethlehem, where David -was? 7:43 So there was a division among the people because of him. - -7:44 And some of them would have taken him; but no man laid hands on -him. - -7:45 Then came the officers to the chief priests and Pharisees; and -they said unto them, Why have ye not brought him? 7:46 The officers -answered, Never man spake like this man. - -7:47 Then answered them the Pharisees, Are ye also deceived? 7:48 -Have any of the rulers or of the Pharisees believed on him? 7:49 But -this people who knoweth not the law are cursed. - -7:50 Nicodemus saith unto them, (he that came to Jesus by night, being -one of them,) 7:51 Doth our law judge any man, before it hear him, and -know what he doeth? 7:52 They answered and said unto him, Art thou -also of Galilee? Search, and look: for out of Galilee ariseth no -prophet. - -7:53 And every man went unto his own house. - -8:1 Jesus went unto the mount of Olives. - -8:2 And early in the morning he came again into the temple, and all -the people came unto him; and he sat down, and taught them. - -8:3 And the scribes and Pharisees brought unto him a woman taken in -adultery; and when they had set her in the midst, 8:4 They say unto -him, Master, this woman was taken in adultery, in the very act. - -8:5 Now Moses in the law commanded us, that such should be stoned: but -what sayest thou? 8:6 This they said, tempting him, that they might -have to accuse him. But Jesus stooped down, and with his finger wrote -on the ground, as though he heard them not. - -8:7 So when they continued asking him, he lifted up himself, and said -unto them, He that is without sin among you, let him first cast a -stone at her. - -8:8 And again he stooped down, and wrote on the ground. - -8:9 And they which heard it, being convicted by their own conscience, -went out one by one, beginning at the eldest, even unto the last: and -Jesus was left alone, and the woman standing in the midst. - -8:10 When Jesus had lifted up himself, and saw none but the woman, he -said unto her, Woman, where are those thine accusers? hath no man -condemned thee? 8:11 She said, No man, Lord. And Jesus said unto her, -Neither do I condemn thee: go, and sin no more. - -8:12 Then spake Jesus again unto them, saying, I am the light of the -world: he that followeth me shall not walk in darkness, but shall have -the light of life. - -8:13 The Pharisees therefore said unto him, Thou bearest record of -thyself; thy record is not true. - -8:14 Jesus answered and said unto them, Though I bear record of -myself, yet my record is true: for I know whence I came, and whither I -go; but ye cannot tell whence I come, and whither I go. - -8:15 Ye judge after the flesh; I judge no man. - -8:16 And yet if I judge, my judgment is true: for I am not alone, but -I and the Father that sent me. - -8:17 It is also written in your law, that the testimony of two men is -true. - -8:18 I am one that bear witness of myself, and the Father that sent me -beareth witness of me. - -8:19 Then said they unto him, Where is thy Father? Jesus answered, Ye -neither know me, nor my Father: if ye had known me, ye should have -known my Father also. - -8:20 These words spake Jesus in the treasury, as he taught in the -temple: and no man laid hands on him; for his hour was not yet come. - -8:21 Then said Jesus again unto them, I go my way, and ye shall seek -me, and shall die in your sins: whither I go, ye cannot come. - -8:22 Then said the Jews, Will he kill himself? because he saith, -Whither I go, ye cannot come. - -8:23 And he said unto them, Ye are from beneath; I am from above: ye -are of this world; I am not of this world. - -8:24 I said therefore unto you, that ye shall die in your sins: for if -ye believe not that I am he, ye shall die in your sins. - -8:25 Then said they unto him, Who art thou? And Jesus saith unto them, -Even the same that I said unto you from the beginning. - -8:26 I have many things to say and to judge of you: but he that sent -me is true; and I speak to the world those things which I have heard -of him. - -8:27 They understood not that he spake to them of the Father. - -8:28 Then said Jesus unto them, When ye have lifted up the Son of man, -then shall ye know that I am he, and that I do nothing of myself; but -as my Father hath taught me, I speak these things. - -8:29 And he that sent me is with me: the Father hath not left me -alone; for I do always those things that please him. - -8:30 As he spake these words, many believed on him. - -8:31 Then said Jesus to those Jews which believed on him, If ye -continue in my word, then are ye my disciples indeed; 8:32 And ye -shall know the truth, and the truth shall make you free. - -8:33 They answered him, We be Abraham's seed, and were never in -bondage to any man: how sayest thou, Ye shall be made free? 8:34 -Jesus answered them, Verily, verily, I say unto you, Whosoever -committeth sin is the servant of sin. - -8:35 And the servant abideth not in the house for ever: but the Son -abideth ever. - -8:36 If the Son therefore shall make you free, ye shall be free -indeed. - -8:37 I know that ye are Abraham's seed; but ye seek to kill me, -because my word hath no place in you. - -8:38 I speak that which I have seen with my Father: and ye do that -which ye have seen with your father. - -8:39 They answered and said unto him, Abraham is our father. Jesus -saith unto them, If ye were Abraham's children, ye would do the works -of Abraham. - -8:40 But now ye seek to kill me, a man that hath told you the truth, -which I have heard of God: this did not Abraham. - -8:41 Ye do the deeds of your father. Then said they to him, We be not -born of fornication; we have one Father, even God. - -8:42 Jesus said unto them, If God were your Father, ye would love me: -for I proceeded forth and came from God; neither came I of myself, but -he sent me. - -8:43 Why do ye not understand my speech? even because ye cannot hear -my word. - -8:44 Ye are of your father the devil, and the lusts of your father ye -will do. He was a murderer from the beginning, and abode not in the -truth, because there is no truth in him. When he speaketh a lie, he -speaketh of his own: for he is a liar, and the father of it. - -8:45 And because I tell you the truth, ye believe me not. - -8:46 Which of you convinceth me of sin? And if I say the truth, why do -ye not believe me? 8:47 He that is of God heareth God's words: ye -therefore hear them not, because ye are not of God. - -8:48 Then answered the Jews, and said unto him, Say we not well that -thou art a Samaritan, and hast a devil? 8:49 Jesus answered, I have -not a devil; but I honour my Father, and ye do dishonour me. - -8:50 And I seek not mine own glory: there is one that seeketh and -judgeth. - -8:51 Verily, verily, I say unto you, If a man keep my saying, he shall -never see death. - -8:52 Then said the Jews unto him, Now we know that thou hast a devil. - -Abraham is dead, and the prophets; and thou sayest, If a man keep my -saying, he shall never taste of death. - -8:53 Art thou greater than our father Abraham, which is dead? and the -prophets are dead: whom makest thou thyself? 8:54 Jesus answered, If -I honour myself, my honour is nothing: it is my Father that honoureth -me; of whom ye say, that he is your God: 8:55 Yet ye have not known -him; but I know him: and if I should say, I know him not, I shall be a -liar like unto you: but I know him, and keep his saying. - -8:56 Your father Abraham rejoiced to see my day: and he saw it, and -was glad. - -8:57 Then said the Jews unto him, Thou art not yet fifty years old, -and hast thou seen Abraham? 8:58 Jesus said unto them, Verily, -verily, I say unto you, Before Abraham was, I am. - -8:59 Then took they up stones to cast at him: but Jesus hid himself, -and went out of the temple, going through the midst of them, and so -passed by. - -9:1 And as Jesus passed by, he saw a man which was blind from his -birth. - -9:2 And his disciples asked him, saying, Master, who did sin, this -man, or his parents, that he was born blind? 9:3 Jesus answered, -Neither hath this man sinned, nor his parents: but that the works of -God should be made manifest in him. - -9:4 I must work the works of him that sent me, while it is day: the -night cometh, when no man can work. - -9:5 As long as I am in the world, I am the light of the world. - -9:6 When he had thus spoken, he spat on the ground, and made clay of -the spittle, and he anointed the eyes of the blind man with the clay, -9:7 And said unto him, Go, wash in the pool of Siloam, (which is by -interpretation, Sent.) He went his way therefore, and washed, and came -seeing. - -9:8 The neighbours therefore, and they which before had seen him that -he was blind, said, Is not this he that sat and begged? 9:9 Some -said, This is he: others said, He is like him: but he said, I am he. - -9:10 Therefore said they unto him, How were thine eyes opened? 9:11 -He answered and said, A man that is called Jesus made clay, and -anointed mine eyes, and said unto me, Go to the pool of Siloam, and -wash: and I went and washed, and I received sight. - -9:12 Then said they unto him, Where is he? He said, I know not. - -9:13 They brought to the Pharisees him that aforetime was blind. - -9:14 And it was the sabbath day when Jesus made the clay, and opened -his eyes. - -9:15 Then again the Pharisees also asked him how he had received his -sight. He said unto them, He put clay upon mine eyes, and I washed, -and do see. - -9:16 Therefore said some of the Pharisees, This man is not of God, -because he keepeth not the sabbath day. Others said, How can a man -that is a sinner do such miracles? And there was a division among -them. - -9:17 They say unto the blind man again, What sayest thou of him, that -he hath opened thine eyes? He said, He is a prophet. - -9:18 But the Jews did not believe concerning him, that he had been -blind, and received his sight, until they called the parents of him -that had received his sight. - -9:19 And they asked them, saying, Is this your son, who ye say was -born blind? how then doth he now see? 9:20 His parents answered them -and said, We know that this is our son, and that he was born blind: -9:21 But by what means he now seeth, we know not; or who hath opened -his eyes, we know not: he is of age; ask him: he shall speak for -himself. - -9:22 These words spake his parents, because they feared the Jews: for -the Jews had agreed already, that if any man did confess that he was -Christ, he should be put out of the synagogue. - -9:23 Therefore said his parents, He is of age; ask him. - -9:24 Then again called they the man that was blind, and said unto him, -Give God the praise: we know that this man is a sinner. - -9:25 He answered and said, Whether he be a sinner or no, I know not: -one thing I know, that, whereas I was blind, now I see. - -9:26 Then said they to him again, What did he to thee? how opened he -thine eyes? 9:27 He answered them, I have told you already, and ye -did not hear: wherefore would ye hear it again? will ye also be his -disciples? 9:28 Then they reviled him, and said, Thou art his -disciple; but we are Moses' disciples. - -9:29 We know that God spake unto Moses: as for this fellow, we know -not from whence he is. - -9:30 The man answered and said unto them, Why herein is a marvellous -thing, that ye know not from whence he is, and yet he hath opened mine -eyes. - -9:31 Now we know that God heareth not sinners: but if any man be a -worshipper of God, and doeth his will, him he heareth. - -9:32 Since the world began was it not heard that any man opened the -eyes of one that was born blind. - -9:33 If this man were not of God, he could do nothing. - -9:34 They answered and said unto him, Thou wast altogether born in -sins, and dost thou teach us? And they cast him out. - -9:35 Jesus heard that they had cast him out; and when he had found -him, he said unto him, Dost thou believe on the Son of God? 9:36 He -answered and said, Who is he, Lord, that I might believe on him? 9:37 -And Jesus said unto him, Thou hast both seen him, and it is he that -talketh with thee. - -9:38 And he said, Lord, I believe. And he worshipped him. - -9:39 And Jesus said, For judgment I am come into this world, that they -which see not might see; and that they which see might be made blind. - -9:40 And some of the Pharisees which were with him heard these words, -and said unto him, Are we blind also? 9:41 Jesus said unto them, If -ye were blind, ye should have no sin: but now ye say, We see; -therefore your sin remaineth. - -10:1 Verily, verily, I say unto you, He that entereth not by the door -into the sheepfold, but climbeth up some other way, the same is a -thief and a robber. - -10:2 But he that entereth in by the door is the shepherd of the sheep. - -10:3 To him the porter openeth; and the sheep hear his voice: and he -calleth his own sheep by name, and leadeth them out. - -10:4 And when he putteth forth his own sheep, he goeth before them, -and the sheep follow him: for they know his voice. - -10:5 And a stranger will they not follow, but will flee from him: for -they know not the voice of strangers. - -10:6 This parable spake Jesus unto them: but they understood not what -things they were which he spake unto them. - -10:7 Then said Jesus unto them again, Verily, verily, I say unto you, -I am the door of the sheep. - -10:8 All that ever came before me are thieves and robbers: but the -sheep did not hear them. - -10:9 I am the door: by me if any man enter in, he shall be saved, and -shall go in and out, and find pasture. - -10:10 The thief cometh not, but for to steal, and to kill, and to -destroy: I am come that they might have life, and that they might have -it more abundantly. - -10:11 I am the good shepherd: the good shepherd giveth his life for -the sheep. - -10:12 But he that is an hireling, and not the shepherd, whose own the -sheep are not, seeth the wolf coming, and leaveth the sheep, and -fleeth: and the wolf catcheth them, and scattereth the sheep. - -10:13 The hireling fleeth, because he is an hireling, and careth not -for the sheep. - -10:14 I am the good shepherd, and know my sheep, and am known of mine. - -10:15 As the Father knoweth me, even so know I the Father: and I lay -down my life for the sheep. - -10:16 And other sheep I have, which are not of this fold: them also I -must bring, and they shall hear my voice; and there shall be one fold, -and one shepherd. - -10:17 Therefore doth my Father love me, because I lay down my life, -that I might take it again. - -10:18 No man taketh it from me, but I lay it down of myself. I have -power to lay it down, and I have power to take it again. This -commandment have I received of my Father. - -10:19 There was a division therefore again among the Jews for these -sayings. - -10:20 And many of them said, He hath a devil, and is mad; why hear ye -him? 10:21 Others said, These are not the words of him that hath a -devil. Can a devil open the eyes of the blind? 10:22 And it was at -Jerusalem the feast of the dedication, and it was winter. - -10:23 And Jesus walked in the temple in Solomon's porch. - -10:24 Then came the Jews round about him, and said unto him, How long -dost thou make us to doubt? If thou be the Christ, tell us plainly. - -10:25 Jesus answered them, I told you, and ye believed not: the works -that I do in my Father's name, they bear witness of me. - -10:26 But ye believe not, because ye are not of my sheep, as I said -unto you. - -10:27 My sheep hear my voice, and I know them, and they follow me: -10:28 And I give unto them eternal life; and they shall never perish, -neither shall any man pluck them out of my hand. - -10:29 My Father, which gave them me, is greater than all; and no man -is able to pluck them out of my Father's hand. - -10:30 I and my Father are one. - -10:31 Then the Jews took up stones again to stone him. - -10:32 Jesus answered them, Many good works have I shewed you from my -Father; for which of those works do ye stone me? 10:33 The Jews -answered him, saying, For a good work we stone thee not; but for -blasphemy; and because that thou, being a man, makest thyself God. - -10:34 Jesus answered them, Is it not written in your law, I said, Ye -are gods? 10:35 If he called them gods, unto whom the word of God -came, and the scripture cannot be broken; 10:36 Say ye of him, whom -the Father hath sanctified, and sent into the world, Thou blasphemest; -because I said, I am the Son of God? 10:37 If I do not the works of -my Father, believe me not. - -10:38 But if I do, though ye believe not me, believe the works: that -ye may know, and believe, that the Father is in me, and I in him. - -10:39 Therefore they sought again to take him: but he escaped out of -their hand, 10:40 And went away again beyond Jordan into the place -where John at first baptized; and there he abode. - -10:41 And many resorted unto him, and said, John did no miracle: but -all things that John spake of this man were true. - -10:42 And many believed on him there. - -11:1 Now a certain man was sick, named Lazarus, of Bethany, the town -of Mary and her sister Martha. - -11:2 (It was that Mary which anointed the Lord with ointment, and -wiped his feet with her hair, whose brother Lazarus was sick.) 11:3 -Therefore his sisters sent unto him, saying, Lord, behold, he whom -thou lovest is sick. - -11:4 When Jesus heard that, he said, This sickness is not unto death, -but for the glory of God, that the Son of God might be glorified -thereby. - -11:5 Now Jesus loved Martha, and her sister, and Lazarus. - -11:6 When he had heard therefore that he was sick, he abode two days -still in the same place where he was. - -11:7 Then after that saith he to his disciples, Let us go into Judaea -again. - -11:8 His disciples say unto him, Master, the Jews of late sought to -stone thee; and goest thou thither again? 11:9 Jesus answered, Are -there not twelve hours in the day? If any man walk in the day, he -stumbleth not, because he seeth the light of this world. - -11:10 But if a man walk in the night, he stumbleth, because there is -no light in him. - -11:11 These things said he: and after that he saith unto them, Our -friend Lazarus sleepeth; but I go, that I may awake him out of sleep. - -11:12 Then said his disciples, Lord, if he sleep, he shall do well. - -11:13 Howbeit Jesus spake of his death: but they thought that he had -spoken of taking of rest in sleep. - -11:14 Then said Jesus unto them plainly, Lazarus is dead. - -11:15 And I am glad for your sakes that I was not there, to the intent -ye may believe; nevertheless let us go unto him. - -11:16 Then said Thomas, which is called Didymus, unto his -fellowdisciples, Let us also go, that we may die with him. - -11:17 Then when Jesus came, he found that he had lain in the grave -four days already. - -11:18 Now Bethany was nigh unto Jerusalem, about fifteen furlongs off: -11:19 And many of the Jews came to Martha and Mary, to comfort them -concerning their brother. - -11:20 Then Martha, as soon as she heard that Jesus was coming, went -and met him: but Mary sat still in the house. - -11:21 Then said Martha unto Jesus, Lord, if thou hadst been here, my -brother had not died. - -11:22 But I know, that even now, whatsoever thou wilt ask of God, God -will give it thee. - -11:23 Jesus saith unto her, Thy brother shall rise again. - -11:24 Martha saith unto him, I know that he shall rise again in the -resurrection at the last day. - -11:25 Jesus said unto her, I am the resurrection, and the life: he -that believeth in me, though he were dead, yet shall he live: 11:26 -And whosoever liveth and believeth in me shall never die. Believest -thou this? 11:27 She saith unto him, Yea, Lord: I believe that thou -art the Christ, the Son of God, which should come into the world. - -11:28 And when she had so said, she went her way, and called Mary her -sister secretly, saying, The Master is come, and calleth for thee. - -11:29 As soon as she heard that, she arose quickly, and came unto him. - -11:30 Now Jesus was not yet come into the town, but was in that place -where Martha met him. - -11:31 The Jews then which were with her in the house, and comforted -her, when they saw Mary, that she rose up hastily and went out, -followed her, saying, She goeth unto the grave to weep there. - -11:32 Then when Mary was come where Jesus was, and saw him, she fell -down at his feet, saying unto him, Lord, if thou hadst been here, my -brother had not died. - -11:33 When Jesus therefore saw her weeping, and the Jews also weeping -which came with her, he groaned in the spirit, and was troubled. - -11:34 And said, Where have ye laid him? They said unto him, Lord, come -and see. - -11:35 Jesus wept. - -11:36 Then said the Jews, Behold how he loved him! 11:37 And some of -them said, Could not this man, which opened the eyes of the blind, -have caused that even this man should not have died? 11:38 Jesus -therefore again groaning in himself cometh to the grave. It was a -cave, and a stone lay upon it. - -11:39 Jesus said, Take ye away the stone. Martha, the sister of him -that was dead, saith unto him, Lord, by this time he stinketh: for he -hath been dead four days. - -11:40 Jesus saith unto her, Said I not unto thee, that, if thou -wouldest believe, thou shouldest see the glory of God? 11:41 Then -they took away the stone from the place where the dead was laid. And -Jesus lifted up his eyes, and said, Father, I thank thee that thou -hast heard me. - -11:42 And I knew that thou hearest me always: but because of the -people which stand by I said it, that they may believe that thou hast -sent me. - -11:43 And when he thus had spoken, he cried with a loud voice, -Lazarus, come forth. - -11:44 And he that was dead came forth, bound hand and foot with -graveclothes: and his face was bound about with a napkin. Jesus saith -unto them, Loose him, and let him go. - -11:45 Then many of the Jews which came to Mary, and had seen the -things which Jesus did, believed on him. - -11:46 But some of them went their ways to the Pharisees, and told them -what things Jesus had done. - -11:47 Then gathered the chief priests and the Pharisees a council, and -said, What do we? for this man doeth many miracles. - -11:48 If we let him thus alone, all men will believe on him: and the -Romans shall come and take away both our place and nation. - -11:49 And one of them, named Caiaphas, being the high priest that same -year, said unto them, Ye know nothing at all, 11:50 Nor consider that -it is expedient for us, that one man should die for the people, and -that the whole nation perish not. - -11:51 And this spake he not of himself: but being high priest that -year, he prophesied that Jesus should die for that nation; 11:52 And -not for that nation only, but that also he should gather together in -one the children of God that were scattered abroad. - -11:53 Then from that day forth they took counsel together for to put -him to death. - -11:54 Jesus therefore walked no more openly among the Jews; but went -thence unto a country near to the wilderness, into a city called -Ephraim, and there continued with his disciples. - -11:55 And the Jews' passover was nigh at hand: and many went out of -the country up to Jerusalem before the passover, to purify themselves. - -11:56 Then sought they for Jesus, and spake among themselves, as they -stood in the temple, What think ye, that he will not come to the -feast? 11:57 Now both the chief priests and the Pharisees had given a -commandment, that, if any man knew where he were, he should shew it, -that they might take him. - -12:1 Then Jesus six days before the passover came to Bethany, where -Lazarus was, which had been dead, whom he raised from the dead. - -12:2 There they made him a supper; and Martha served: but Lazarus was -one of them that sat at the table with him. - -12:3 Then took Mary a pound of ointment of spikenard, very costly, and -anointed the feet of Jesus, and wiped his feet with her hair: and the -house was filled with the odour of the ointment. - -12:4 Then saith one of his disciples, Judas Iscariot, Simon's son, -which should betray him, 12:5 Why was not this ointment sold for three -hundred pence, and given to the poor? 12:6 This he said, not that he -cared for the poor; but because he was a thief, and had the bag, and -bare what was put therein. - -12:7 Then said Jesus, Let her alone: against the day of my burying -hath she kept this. - -12:8 For the poor always ye have with you; but me ye have not always. - -12:9 Much people of the Jews therefore knew that he was there: and -they came not for Jesus' sake only, but that they might see Lazarus -also, whom he had raised from the dead. - -12:10 But the chief priests consulted that they might put Lazarus also -to death; 12:11 Because that by reason of him many of the Jews went -away, and believed on Jesus. - -12:12 On the next day much people that were come to the feast, when -they heard that Jesus was coming to Jerusalem, 12:13 Took branches of -palm trees, and went forth to meet him, and cried, Hosanna: Blessed is -the King of Israel that cometh in the name of the Lord. - -12:14 And Jesus, when he had found a young ass, sat thereon; as it is -written, 12:15 Fear not, daughter of Sion: behold, thy King cometh, -sitting on an ass's colt. - -12:16 These things understood not his disciples at the first: but when -Jesus was glorified, then remembered they that these things were -written of him, and that they had done these things unto him. - -12:17 The people therefore that was with him when he called Lazarus -out of his grave, and raised him from the dead, bare record. - -12:18 For this cause the people also met him, for that they heard that -he had done this miracle. - -12:19 The Pharisees therefore said among themselves, Perceive ye how -ye prevail nothing? behold, the world is gone after him. - -12:20 And there were certain Greeks among them that came up to worship -at the feast: 12:21 The same came therefore to Philip, which was of -Bethsaida of Galilee, and desired him, saying, Sir, we would see -Jesus. - -12:22 Philip cometh and telleth Andrew: and again Andrew and Philip -tell Jesus. - -12:23 And Jesus answered them, saying, The hour is come, that the Son -of man should be glorified. - -12:24 Verily, verily, I say unto you, Except a corn of wheat fall into -the ground and die, it abideth alone: but if it die, it bringeth forth -much fruit. - -12:25 He that loveth his life shall lose it; and he that hateth his -life in this world shall keep it unto life eternal. - -12:26 If any man serve me, let him follow me; and where I am, there -shall also my servant be: if any man serve me, him will my Father -honour. - -12:27 Now is my soul troubled; and what shall I say? Father, save me -from this hour: but for this cause came I unto this hour. - -12:28 Father, glorify thy name. Then came there a voice from heaven, -saying, I have both glorified it, and will glorify it again. - -12:29 The people therefore, that stood by, and heard it, said that it -thundered: others said, An angel spake to him. - -12:30 Jesus answered and said, This voice came not because of me, but -for your sakes. - -12:31 Now is the judgment of this world: now shall the prince of this -world be cast out. - -12:32 And I, if I be lifted up from the earth, will draw all men unto -me. - -12:33 This he said, signifying what death he should die. - -12:34 The people answered him, We have heard out of the law that -Christ abideth for ever: and how sayest thou, The Son of man must be -lifted up? who is this Son of man? 12:35 Then Jesus said unto them, -Yet a little while is the light with you. - -Walk while ye have the light, lest darkness come upon you: for he that -walketh in darkness knoweth not whither he goeth. - -12:36 While ye have light, believe in the light, that ye may be the -children of light. These things spake Jesus, and departed, and did -hide himself from them. - -12:37 But though he had done so many miracles before them, yet they -believed not on him: 12:38 That the saying of Esaias the prophet might -be fulfilled, which he spake, Lord, who hath believed our report? and -to whom hath the arm of the Lord been revealed? 12:39 Therefore they -could not believe, because that Esaias said again, 12:40 He hath -blinded their eyes, and hardened their heart; that they should not see -with their eyes, nor understand with their heart, and be converted, -and I should heal them. - -12:41 These things said Esaias, when he saw his glory, and spake of -him. - -12:42 Nevertheless among the chief rulers also many believed on him; -but because of the Pharisees they did not confess him, lest they -should be put out of the synagogue: 12:43 For they loved the praise of -men more than the praise of God. - -12:44 Jesus cried and said, He that believeth on me, believeth not on -me, but on him that sent me. - -12:45 And he that seeth me seeth him that sent me. - -12:46 I am come a light into the world, that whosoever believeth on me -should not abide in darkness. - -12:47 And if any man hear my words, and believe not, I judge him not: -for I came not to judge the world, but to save the world. - -12:48 He that rejecteth me, and receiveth not my words, hath one that -judgeth him: the word that I have spoken, the same shall judge him in -the last day. - -12:49 For I have not spoken of myself; but the Father which sent me, -he gave me a commandment, what I should say, and what I should speak. - -12:50 And I know that his commandment is life everlasting: whatsoever -I speak therefore, even as the Father said unto me, so I speak. - -13:1 Now before the feast of the passover, when Jesus knew that his -hour was come that he should depart out of this world unto the Father, -having loved his own which were in the world, he loved them unto the -end. - -13:2 And supper being ended, the devil having now put into the heart -of Judas Iscariot, Simon's son, to betray him; 13:3 Jesus knowing that -the Father had given all things into his hands, and that he was come -from God, and went to God; 13:4 He riseth from supper, and laid aside -his garments; and took a towel, and girded himself. - -13:5 After that he poureth water into a bason, and began to wash the -disciples' feet, and to wipe them with the towel wherewith he was -girded. - -13:6 Then cometh he to Simon Peter: and Peter saith unto him, Lord, -dost thou wash my feet? 13:7 Jesus answered and said unto him, What I -do thou knowest not now; but thou shalt know hereafter. - -13:8 Peter saith unto him, Thou shalt never wash my feet. Jesus -answered him, If I wash thee not, thou hast no part with me. - -13:9 Simon Peter saith unto him, Lord, not my feet only, but also my -hands and my head. - -13:10 Jesus saith to him, He that is washed needeth not save to wash -his feet, but is clean every whit: and ye are clean, but not all. - -13:11 For he knew who should betray him; therefore said he, Ye are not -all clean. - -13:12 So after he had washed their feet, and had taken his garments, -and was set down again, he said unto them, Know ye what I have done to -you? 13:13 Ye call me Master and Lord: and ye say well; for so I am. - -13:14 If I then, your Lord and Master, have washed your feet; ye also -ought to wash one another's feet. - -13:15 For I have given you an example, that ye should do as I have -done to you. - -13:16 Verily, verily, I say unto you, The servant is not greater than -his lord; neither he that is sent greater than he that sent him. - -13:17 If ye know these things, happy are ye if ye do them. - -13:18 I speak not of you all: I know whom I have chosen: but that the -scripture may be fulfilled, He that eateth bread with me hath lifted -up his heel against me. - -13:19 Now I tell you before it come, that, when it is come to pass, ye -may believe that I am he. - -13:20 Verily, verily, I say unto you, He that receiveth whomsoever I -send receiveth me; and he that receiveth me receiveth him that sent -me. - -13:21 When Jesus had thus said, he was troubled in spirit, and -testified, and said, Verily, verily, I say unto you, that one of you -shall betray me. - -13:22 Then the disciples looked one on another, doubting of whom he -spake. - -13:23 Now there was leaning on Jesus' bosom one of his disciples, whom -Jesus loved. - -13:24 Simon Peter therefore beckoned to him, that he should ask who it -should be of whom he spake. - -13:25 He then lying on Jesus' breast saith unto him, Lord, who is it? -13:26 Jesus answered, He it is, to whom I shall give a sop, when I -have dipped it. And when he had dipped the sop, he gave it to Judas -Iscariot, the son of Simon. - -13:27 And after the sop Satan entered into him. Then said Jesus unto -him, That thou doest, do quickly. - -13:28 Now no man at the table knew for what intent he spake this unto -him. - -13:29 For some of them thought, because Judas had the bag, that Jesus -had said unto him, Buy those things that we have need of against the -feast; or, that he should give something to the poor. - -13:30 He then having received the sop went immediately out: and it was -night. - -13:31 Therefore, when he was gone out, Jesus said, Now is the Son of -man glorified, and God is glorified in him. - -13:32 If God be glorified in him, God shall also glorify him in -himself, and shall straightway glorify him. - -13:33 Little children, yet a little while I am with you. Ye shall seek -me: and as I said unto the Jews, Whither I go, ye cannot come; so now -I say to you. - -13:34 A new commandment I give unto you, That ye love one another; as -I have loved you, that ye also love one another. - -13:35 By this shall all men know that ye are my disciples, if ye have -love one to another. - -13:36 Simon Peter said unto him, Lord, whither goest thou? Jesus -answered him, Whither I go, thou canst not follow me now; but thou -shalt follow me afterwards. - -13:37 Peter said unto him, Lord, why cannot I follow thee now? I will -lay down my life for thy sake. - -13:38 Jesus answered him, Wilt thou lay down thy life for my sake? -Verily, verily, I say unto thee, The cock shall not crow, till thou -hast denied me thrice. - -14:1 Let not your heart be troubled: ye believe in God, believe also -in me. - -14:2 In my Father's house are many mansions: if it were not so, I -would have told you. I go to prepare a place for you. - -14:3 And if I go and prepare a place for you, I will come again, and -receive you unto myself; that where I am, there ye may be also. - -14:4 And whither I go ye know, and the way ye know. - -14:5 Thomas saith unto him, Lord, we know not whither thou goest; and -how can we know the way? 14:6 Jesus saith unto him, I am the way, the -truth, and the life: no man cometh unto the Father, but by me. - -14:7 If ye had known me, ye should have known my Father also: and from -henceforth ye know him, and have seen him. - -14:8 Philip saith unto him, Lord, shew us the Father, and it sufficeth -us. - -14:9 Jesus saith unto him, Have I been so long time with you, and yet -hast thou not known me, Philip? he that hath seen me hath seen the -Father; and how sayest thou then, Shew us the Father? 14:10 Believest -thou not that I am in the Father, and the Father in me? the words -that I speak unto you I speak not of myself: but the Father that -dwelleth in me, he doeth the works. - -14:11 Believe me that I am in the Father, and the Father in me: or -else believe me for the very works' sake. - -14:12 Verily, verily, I say unto you, He that believeth on me, the -works that I do shall he do also; and greater works than these shall -he do; because I go unto my Father. - -14:13 And whatsoever ye shall ask in my name, that will I do, that the -Father may be glorified in the Son. - -14:14 If ye shall ask any thing in my name, I will do it. - -14:15 If ye love me, keep my commandments. - -14:16 And I will pray the Father, and he shall give you another -Comforter, that he may abide with you for ever; 14:17 Even the Spirit -of truth; whom the world cannot receive, because it seeth him not, -neither knoweth him: but ye know him; for he dwelleth with you, and -shall be in you. - -14:18 I will not leave you comfortless: I will come to you. - -14:19 Yet a little while, and the world seeth me no more; but ye see -me: because I live, ye shall live also. - -14:20 At that day ye shall know that I am in my Father, and ye in me, -and I in you. - -14:21 He that hath my commandments, and keepeth them, he it is that -loveth me: and he that loveth me shall be loved of my Father, and I -will love him, and will manifest myself to him. - -14:22 Judas saith unto him, not Iscariot, Lord, how is it that thou -wilt manifest thyself unto us, and not unto the world? 14:23 Jesus -answered and said unto him, If a man love me, he will keep my words: -and my Father will love him, and we will come unto him, and make our -abode with him. - -14:24 He that loveth me not keepeth not my sayings: and the word which -ye hear is not mine, but the Father's which sent me. - -14:25 These things have I spoken unto you, being yet present with you. - -14:26 But the Comforter, which is the Holy Ghost, whom the Father will -send in my name, he shall teach you all things, and bring all things -to your remembrance, whatsoever I have said unto you. - -14:27 Peace I leave with you, my peace I give unto you: not as the -world giveth, give I unto you. Let not your heart be troubled, neither -let it be afraid. - -14:28 Ye have heard how I said unto you, I go away, and come again -unto you. If ye loved me, ye would rejoice, because I said, I go unto -the Father: for my Father is greater than I. - -14:29 And now I have told you before it come to pass, that, when it is -come to pass, ye might believe. - -14:30 Hereafter I will not talk much with you: for the prince of this -world cometh, and hath nothing in me. - -14:31 But that the world may know that I love the Father; and as the -Father gave me commandment, even so I do. Arise, let us go hence. - -15:1 I am the true vine, and my Father is the husbandman. - -15:2 Every branch in me that beareth not fruit he taketh away: and -every branch that beareth fruit, he purgeth it, that it may bring -forth more fruit. - -15:3 Now ye are clean through the word which I have spoken unto you. - -15:4 Abide in me, and I in you. As the branch cannot bear fruit of -itself, except it abide in the vine; no more can ye, except ye abide -in me. - -15:5 I am the vine, ye are the branches: He that abideth in me, and I -in him, the same bringeth forth much fruit: for without me ye can do -nothing. - -15:6 If a man abide not in me, he is cast forth as a branch, and is -withered; and men gather them, and cast them into the fire, and they -are burned. - -15:7 If ye abide in me, and my words abide in you, ye shall ask what -ye will, and it shall be done unto you. - -15:8 Herein is my Father glorified, that ye bear much fruit; so shall -ye be my disciples. - -15:9 As the Father hath loved me, so have I loved you: continue ye in -my love. - -15:10 If ye keep my commandments, ye shall abide in my love; even as I -have kept my Father's commandments, and abide in his love. - -15:11 These things have I spoken unto you, that my joy might remain in -you, and that your joy might be full. - -15:12 This is my commandment, That ye love one another, as I have -loved you. - -15:13 Greater love hath no man than this, that a man lay down his life -for his friends. - -15:14 Ye are my friends, if ye do whatsoever I command you. - -15:15 Henceforth I call you not servants; for the servant knoweth not -what his lord doeth: but I have called you friends; for all things -that I have heard of my Father I have made known unto you. - -15:16 Ye have not chosen me, but I have chosen you, and ordained you, -that ye should go and bring forth fruit, and that your fruit should -remain: that whatsoever ye shall ask of the Father in my name, he may -give it you. - -15:17 These things I command you, that ye love one another. - -15:18 If the world hate you, ye know that it hated me before it hated -you. - -15:19 If ye were of the world, the world would love his own: but -because ye are not of the world, but I have chosen you out of the -world, therefore the world hateth you. - -15:20 Remember the word that I said unto you, The servant is not -greater than his lord. If they have persecuted me, they will also -persecute you; if they have kept my saying, they will keep yours also. - -15:21 But all these things will they do unto you for my name's sake, -because they know not him that sent me. - -15:22 If I had not come and spoken unto them, they had not had sin: -but now they have no cloak for their sin. - -15:23 He that hateth me hateth my Father also. - -15:24 If I had not done among them the works which none other man did, -they had not had sin: but now have they both seen and hated both me -and my Father. - -15:25 But this cometh to pass, that the word might be fulfilled that -is written in their law, They hated me without a cause. - -15:26 But when the Comforter is come, whom I will send unto you from -the Father, even the Spirit of truth, which proceedeth from the -Father, he shall testify of me: 15:27 And ye also shall bear witness, -because ye have been with me from the beginning. - -16:1 These things have I spoken unto you, that ye should not be -offended. - -16:2 They shall put you out of the synagogues: yea, the time cometh, -that whosoever killeth you will think that he doeth God service. - -16:3 And these things will they do unto you, because they have not -known the Father, nor me. - -16:4 But these things have I told you, that when the time shall come, -ye may remember that I told you of them. And these things I said not -unto you at the beginning, because I was with you. - -16:5 But now I go my way to him that sent me; and none of you asketh -me, Whither goest thou? 16:6 But because I have said these things -unto you, sorrow hath filled your heart. - -16:7 Nevertheless I tell you the truth; It is expedient for you that I -go away: for if I go not away, the Comforter will not come unto you; -but if I depart, I will send him unto you. - -16:8 And when he is come, he will reprove the world of sin, and of -righteousness, and of judgment: 16:9 Of sin, because they believe not -on me; 16:10 Of righteousness, because I go to my Father, and ye see -me no more; 16:11 Of judgment, because the prince of this world is -judged. - -16:12 I have yet many things to say unto you, but ye cannot bear them -now. - -16:13 Howbeit when he, the Spirit of truth, is come, he will guide you -into all truth: for he shall not speak of himself; but whatsoever he -shall hear, that shall he speak: and he will shew you things to come. - -16:14 He shall glorify me: for he shall receive of mine, and shall -shew it unto you. - -16:15 All things that the Father hath are mine: therefore said I, that -he shall take of mine, and shall shew it unto you. - -16:16 A little while, and ye shall not see me: and again, a little -while, and ye shall see me, because I go to the Father. - -16:17 Then said some of his disciples among themselves, What is this -that he saith unto us, A little while, and ye shall not see me: and -again, a little while, and ye shall see me: and, Because I go to the -Father? 16:18 They said therefore, What is this that he saith, A -little while? we cannot tell what he saith. - -16:19 Now Jesus knew that they were desirous to ask him, and said unto -them, Do ye enquire among yourselves of that I said, A little while, -and ye shall not see me: and again, a little while, and ye shall see -me? 16:20 Verily, verily, I say unto you, That ye shall weep and -lament, but the world shall rejoice: and ye shall be sorrowful, but -your sorrow shall be turned into joy. - -16:21 A woman when she is in travail hath sorrow, because her hour is -come: but as soon as she is delivered of the child, she remembereth no -more the anguish, for joy that a man is born into the world. - -16:22 And ye now therefore have sorrow: but I will see you again, and -your heart shall rejoice, and your joy no man taketh from you. - -16:23 And in that day ye shall ask me nothing. Verily, verily, I say -unto you, Whatsoever ye shall ask the Father in my name, he will give -it you. - -16:24 Hitherto have ye asked nothing in my name: ask, and ye shall -receive, that your joy may be full. - -16:25 These things have I spoken unto you in proverbs: but the time -cometh, when I shall no more speak unto you in proverbs, but I shall -shew you plainly of the Father. - -16:26 At that day ye shall ask in my name: and I say not unto you, -that I will pray the Father for you: 16:27 For the Father himself -loveth you, because ye have loved me, and have believed that I came -out from God. - -16:28 I came forth from the Father, and am come into the world: again, -I leave the world, and go to the Father. - -16:29 His disciples said unto him, Lo, now speakest thou plainly, and -speakest no proverb. - -16:30 Now are we sure that thou knowest all things, and needest not -that any man should ask thee: by this we believe that thou camest -forth from God. - -16:31 Jesus answered them, Do ye now believe? 16:32 Behold, the hour -cometh, yea, is now come, that ye shall be scattered, every man to his -own, and shall leave me alone: and yet I am not alone, because the -Father is with me. - -16:33 These things I have spoken unto you, that in me ye might have -peace. - -In the world ye shall have tribulation: but be of good cheer; I have -overcome the world. - -17:1 These words spake Jesus, and lifted up his eyes to heaven, and -said, Father, the hour is come; glorify thy Son, that thy Son also may -glorify thee: 17:2 As thou hast given him power over all flesh, that -he should give eternal life to as many as thou hast given him. - -17:3 And this is life eternal, that they might know thee the only true -God, and Jesus Christ, whom thou hast sent. - -17:4 I have glorified thee on the earth: I have finished the work -which thou gavest me to do. - -17:5 And now, O Father, glorify thou me with thine own self with the -glory which I had with thee before the world was. - -17:6 I have manifested thy name unto the men which thou gavest me out -of the world: thine they were, and thou gavest them me; and they have -kept thy word. - -17:7 Now they have known that all things whatsoever thou hast given me -are of thee. - -17:8 For I have given unto them the words which thou gavest me; and -they have received them, and have known surely that I came out from -thee, and they have believed that thou didst send me. - -17:9 I pray for them: I pray not for the world, but for them which -thou hast given me; for they are thine. - -17:10 And all mine are thine, and thine are mine; and I am glorified -in them. - -17:11 And now I am no more in the world, but these are in the world, -and I come to thee. Holy Father, keep through thine own name those -whom thou hast given me, that they may be one, as we are. - -17:12 While I was with them in the world, I kept them in thy name: -those that thou gavest me I have kept, and none of them is lost, but -the son of perdition; that the scripture might be fulfilled. - -17:13 And now come I to thee; and these things I speak in the world, -that they might have my joy fulfilled in themselves. - -17:14 I have given them thy word; and the world hath hated them, -because they are not of the world, even as I am not of the world. - -17:15 I pray not that thou shouldest take them out of the world, but -that thou shouldest keep them from the evil. - -17:16 They are not of the world, even as I am not of the world. - -17:17 Sanctify them through thy truth: thy word is truth. - -17:18 As thou hast sent me into the world, even so have I also sent -them into the world. - -17:19 And for their sakes I sanctify myself, that they also might be -sanctified through the truth. - -17:20 Neither pray I for these alone, but for them also which shall -believe on me through their word; 17:21 That they all may be one; as -thou, Father, art in me, and I in thee, that they also may be one in -us: that the world may believe that thou hast sent me. - -17:22 And the glory which thou gavest me I have given them; that they -may be one, even as we are one: 17:23 I in them, and thou in me, that -they may be made perfect in one; and that the world may know that thou -hast sent me, and hast loved them, as thou hast loved me. - -17:24 Father, I will that they also, whom thou hast given me, be with -me where I am; that they may behold my glory, which thou hast given -me: for thou lovedst me before the foundation of the world. - -17:25 O righteous Father, the world hath not known thee: but I have -known thee, and these have known that thou hast sent me. - -17:26 And I have declared unto them thy name, and will declare it: -that the love wherewith thou hast loved me may be in them, and I in -them. - -18:1 When Jesus had spoken these words, he went forth with his -disciples over the brook Cedron, where was a garden, into the which he -entered, and his disciples. - -18:2 And Judas also, which betrayed him, knew the place: for Jesus -ofttimes resorted thither with his disciples. - -18:3 Judas then, having received a band of men and officers from the -chief priests and Pharisees, cometh thither with lanterns and torches -and weapons. - -18:4 Jesus therefore, knowing all things that should come upon him, -went forth, and said unto them, Whom seek ye? 18:5 They answered him, -Jesus of Nazareth. Jesus saith unto them, I am he. - -And Judas also, which betrayed him, stood with them. - -18:6 As soon then as he had said unto them, I am he, they went -backward, and fell to the ground. - -18:7 Then asked he them again, Whom seek ye? And they said, Jesus of -Nazareth. - -18:8 Jesus answered, I have told you that I am he: if therefore ye -seek me, let these go their way: 18:9 That the saying might be -fulfilled, which he spake, Of them which thou gavest me have I lost -none. - -18:10 Then Simon Peter having a sword drew it, and smote the high -priest's servant, and cut off his right ear. The servant's name was -Malchus. - -18:11 Then said Jesus unto Peter, Put up thy sword into the sheath: -the cup which my Father hath given me, shall I not drink it? 18:12 -Then the band and the captain and officers of the Jews took Jesus, and -bound him, 18:13 And led him away to Annas first; for he was father in -law to Caiaphas, which was the high priest that same year. - -18:14 Now Caiaphas was he, which gave counsel to the Jews, that it was -expedient that one man should die for the people. - -18:15 And Simon Peter followed Jesus, and so did another disciple: -that disciple was known unto the high priest, and went in with Jesus -into the palace of the high priest. - -18:16 But Peter stood at the door without. Then went out that other -disciple, which was known unto the high priest, and spake unto her -that kept the door, and brought in Peter. - -18:17 Then saith the damsel that kept the door unto Peter, Art not -thou also one of this man's disciples? He saith, I am not. - -18:18 And the servants and officers stood there, who had made a fire -of coals; for it was cold: and they warmed themselves: and Peter stood -with them, and warmed himself. - -18:19 The high priest then asked Jesus of his disciples, and of his -doctrine. - -18:20 Jesus answered him, I spake openly to the world; I ever taught -in the synagogue, and in the temple, whither the Jews always resort; -and in secret have I said nothing. - -18:21 Why askest thou me? ask them which heard me, what I have said -unto them: behold, they know what I said. - -18:22 And when he had thus spoken, one of the officers which stood by -struck Jesus with the palm of his hand, saying, Answerest thou the -high priest so? 18:23 Jesus answered him, If I have spoken evil, bear -witness of the evil: but if well, why smitest thou me? 18:24 Now -Annas had sent him bound unto Caiaphas the high priest. - -18:25 And Simon Peter stood and warmed himself. They said therefore -unto him, Art not thou also one of his disciples? He denied it, and -said, I am not. - -18:26 One of the servants of the high priest, being his kinsman whose -ear Peter cut off, saith, Did not I see thee in the garden with him? -18:27 Peter then denied again: and immediately the cock crew. - -18:28 Then led they Jesus from Caiaphas unto the hall of judgment: and -it was early; and they themselves went not into the judgment hall, -lest they should be defiled; but that they might eat the passover. - -18:29 Pilate then went out unto them, and said, What accusation bring -ye against this man? 18:30 They answered and said unto him, If he -were not a malefactor, we would not have delivered him up unto thee. - -18:31 Then said Pilate unto them, Take ye him, and judge him according -to your law. The Jews therefore said unto him, It is not lawful for us -to put any man to death: 18:32 That the saying of Jesus might be -fulfilled, which he spake, signifying what death he should die. - -18:33 Then Pilate entered into the judgment hall again, and called -Jesus, and said unto him, Art thou the King of the Jews? 18:34 Jesus -answered him, Sayest thou this thing of thyself, or did others tell it -thee of me? 18:35 Pilate answered, Am I a Jew? Thine own nation and -the chief priests have delivered thee unto me: what hast thou done? -18:36 Jesus answered, My kingdom is not of this world: if my kingdom -were of this world, then would my servants fight, that I should not be -delivered to the Jews: but now is my kingdom not from hence. - -18:37 Pilate therefore said unto him, Art thou a king then? Jesus -answered, Thou sayest that I am a king. To this end was I born, and -for this cause came I into the world, that I should bear witness unto -the truth. Every one that is of the truth heareth my voice. - -18:38 Pilate saith unto him, What is truth? And when he had said this, -he went out again unto the Jews, and saith unto them, I find in him no -fault at all. - -18:39 But ye have a custom, that I should release unto you one at the -passover: will ye therefore that I release unto you the King of the -Jews? 18:40 Then cried they all again, saying, Not this man, but -Barabbas. Now Barabbas was a robber. - -19:1 Then Pilate therefore took Jesus, and scourged him. - -19:2 And the soldiers platted a crown of thorns, and put it on his -head, and they put on him a purple robe, 19:3 And said, Hail, King of -the Jews! and they smote him with their hands. - -19:4 Pilate therefore went forth again, and saith unto them, Behold, I -bring him forth to you, that ye may know that I find no fault in him. - -19:5 Then came Jesus forth, wearing the crown of thorns, and the -purple robe. And Pilate saith unto them, Behold the man! 19:6 When -the chief priests therefore and officers saw him, they cried out, -saying, Crucify him, crucify him. Pilate saith unto them, Take ye him, -and crucify him: for I find no fault in him. - -19:7 The Jews answered him, We have a law, and by our law he ought to -die, because he made himself the Son of God. - -19:8 When Pilate therefore heard that saying, he was the more afraid; -19:9 And went again into the judgment hall, and saith unto Jesus, -Whence art thou? But Jesus gave him no answer. - -19:10 Then saith Pilate unto him, Speakest thou not unto me? knowest -thou not that I have power to crucify thee, and have power to release -thee? 19:11 Jesus answered, Thou couldest have no power at all -against me, except it were given thee from above: therefore he that -delivered me unto thee hath the greater sin. - -19:12 And from thenceforth Pilate sought to release him: but the Jews -cried out, saying, If thou let this man go, thou art not Caesar's -friend: whosoever maketh himself a king speaketh against Caesar. - -19:13 When Pilate therefore heard that saying, he brought Jesus forth, -and sat down in the judgment seat in a place that is called the -Pavement, but in the Hebrew, Gabbatha. - -19:14 And it was the preparation of the passover, and about the sixth -hour: and he saith unto the Jews, Behold your King! 19:15 But they -cried out, Away with him, away with him, crucify him. - -Pilate saith unto them, Shall I crucify your King? The chief priests -answered, We have no king but Caesar. - -19:16 Then delivered he him therefore unto them to be crucified. And -they took Jesus, and led him away. - -19:17 And he bearing his cross went forth into a place called the -place of a skull, which is called in the Hebrew Golgotha: 19:18 Where -they crucified him, and two other with him, on either side one, and -Jesus in the midst. - -19:19 And Pilate wrote a title, and put it on the cross. And the -writing was JESUS OF NAZARETH THE KING OF THE JEWS. - -19:20 This title then read many of the Jews: for the place where Jesus -was crucified was nigh to the city: and it was written in Hebrew, and -Greek, and Latin. - -19:21 Then said the chief priests of the Jews to Pilate, Write not, -The King of the Jews; but that he said, I am King of the Jews. - -19:22 Pilate answered, What I have written I have written. - -19:23 Then the soldiers, when they had crucified Jesus, took his -garments, and made four parts, to every soldier a part; and also his -coat: now the coat was without seam, woven from the top throughout. - -19:24 They said therefore among themselves, Let us not rend it, but -cast lots for it, whose it shall be: that the scripture might be -fulfilled, which saith, They parted my raiment among them, and for my -vesture they did cast lots. These things therefore the soldiers did. - -19:25 Now there stood by the cross of Jesus his mother, and his -mother's sister, Mary the wife of Cleophas, and Mary Magdalene. - -19:26 When Jesus therefore saw his mother, and the disciple standing -by, whom he loved, he saith unto his mother, Woman, behold thy son! -19:27 Then saith he to the disciple, Behold thy mother! And from that -hour that disciple took her unto his own home. - -19:28 After this, Jesus knowing that all things were now accomplished, -that the scripture might be fulfilled, saith, I thirst. - -19:29 Now there was set a vessel full of vinegar: and they filled a -spunge with vinegar, and put it upon hyssop, and put it to his mouth. - -19:30 When Jesus therefore had received the vinegar, he said, It is -finished: and he bowed his head, and gave up the ghost. - -19:31 The Jews therefore, because it was the preparation, that the -bodies should not remain upon the cross on the sabbath day, (for that -sabbath day was an high day,) besought Pilate that their legs might be -broken, and that they might be taken away. - -19:32 Then came the soldiers, and brake the legs of the first, and of -the other which was crucified with him. - -19:33 But when they came to Jesus, and saw that he was dead already, -they brake not his legs: 19:34 But one of the soldiers with a spear -pierced his side, and forthwith came there out blood and water. - -19:35 And he that saw it bare record, and his record is true: and he -knoweth that he saith true, that ye might believe. - -19:36 For these things were done, that the scripture should be -fulfilled, A bone of him shall not be broken. - -19:37 And again another scripture saith, They shall look on him whom -they pierced. - -19:38 And after this Joseph of Arimathaea, being a disciple of Jesus, -but secretly for fear of the Jews, besought Pilate that he might take -away the body of Jesus: and Pilate gave him leave. He came therefore, -and took the body of Jesus. - -19:39 And there came also Nicodemus, which at the first came to Jesus -by night, and brought a mixture of myrrh and aloes, about an hundred -pound weight. - -19:40 Then took they the body of Jesus, and wound it in linen clothes -with the spices, as the manner of the Jews is to bury. - -19:41 Now in the place where he was crucified there was a garden; and -in the garden a new sepulchre, wherein was never man yet laid. - -19:42 There laid they Jesus therefore because of the Jews' preparation -day; for the sepulchre was nigh at hand. - -20:1 The first day of the week cometh Mary Magdalene early, when it -was yet dark, unto the sepulchre, and seeth the stone taken away from -the sepulchre. - -20:2 Then she runneth, and cometh to Simon Peter, and to the other -disciple, whom Jesus loved, and saith unto them, They have taken away -the LORD out of the sepulchre, and we know not where they have laid -him. - -20:3 Peter therefore went forth, and that other disciple, and came to -the sepulchre. - -20:4 So they ran both together: and the other disciple did outrun -Peter, and came first to the sepulchre. - -20:5 And he stooping down, and looking in, saw the linen clothes -lying; yet went he not in. - -20:6 Then cometh Simon Peter following him, and went into the -sepulchre, and seeth the linen clothes lie, 20:7 And the napkin, that -was about his head, not lying with the linen clothes, but wrapped -together in a place by itself. - -20:8 Then went in also that other disciple, which came first to the -sepulchre, and he saw, and believed. - -20:9 For as yet they knew not the scripture, that he must rise again -from the dead. - -20:10 Then the disciples went away again unto their own home. - -20:11 But Mary stood without at the sepulchre weeping: and as she -wept, she stooped down, and looked into the sepulchre, 20:12 And seeth -two angels in white sitting, the one at the head, and the other at the -feet, where the body of Jesus had lain. - -20:13 And they say unto her, Woman, why weepest thou? She saith unto -them, Because they have taken away my LORD, and I know not where they -have laid him. - -20:14 And when she had thus said, she turned herself back, and saw -Jesus standing, and knew not that it was Jesus. - -20:15 Jesus saith unto her, Woman, why weepest thou? whom seekest -thou? She, supposing him to be the gardener, saith unto him, Sir, if -thou have borne him hence, tell me where thou hast laid him, and I -will take him away. - -20:16 Jesus saith unto her, Mary. She turned herself, and saith unto -him, Rabboni; which is to say, Master. - -20:17 Jesus saith unto her, Touch me not; for I am not yet ascended to -my Father: but go to my brethren, and say unto them, I ascend unto my -Father, and your Father; and to my God, and your God. - -20:18 Mary Magdalene came and told the disciples that she had seen the -LORD, and that he had spoken these things unto her. - -20:19 Then the same day at evening, being the first day of the week, -when the doors were shut where the disciples were assembled for fear -of the Jews, came Jesus and stood in the midst, and saith unto them, -Peace be unto you. - -20:20 And when he had so said, he shewed unto them his hands and his -side. - -Then were the disciples glad, when they saw the LORD. - -20:21 Then said Jesus to them again, Peace be unto you: as my Father -hath sent me, even so send I you. - -20:22 And when he had said this, he breathed on them, and saith unto -them, Receive ye the Holy Ghost: 20:23 Whose soever sins ye remit, -they are remitted unto them; and whose soever sins ye retain, they are -retained. - -20:24 But Thomas, one of the twelve, called Didymus, was not with them -when Jesus came. - -20:25 The other disciples therefore said unto him, We have seen the -LORD. - -But he said unto them, Except I shall see in his hands the print of -the nails, and put my finger into the print of the nails, and thrust -my hand into his side, I will not believe. - -20:26 And after eight days again his disciples were within, and Thomas -with them: then came Jesus, the doors being shut, and stood in the -midst, and said, Peace be unto you. - -20:27 Then saith he to Thomas, Reach hither thy finger, and behold my -hands; and reach hither thy hand, and thrust it into my side: and be -not faithless, but believing. - -20:28 And Thomas answered and said unto him, My LORD and my God. - -20:29 Jesus saith unto him, Thomas, because thou hast seen me, thou -hast believed: blessed are they that have not seen, and yet have -believed. - -20:30 And many other signs truly did Jesus in the presence of his -disciples, which are not written in this book: 20:31 But these are -written, that ye might believe that Jesus is the Christ, the Son of -God; and that believing ye might have life through his name. - -21:1 After these things Jesus shewed himself again to the disciples at -the sea of Tiberias; and on this wise shewed he himself. - -21:2 There were together Simon Peter, and Thomas called Didymus, and -Nathanael of Cana in Galilee, and the sons of Zebedee, and two other -of his disciples. - -21:3 Simon Peter saith unto them, I go a fishing. They say unto him, -We also go with thee. They went forth, and entered into a ship -immediately; and that night they caught nothing. - -21:4 But when the morning was now come, Jesus stood on the shore: but -the disciples knew not that it was Jesus. - -21:5 Then Jesus saith unto them, Children, have ye any meat? They -answered him, No. - -21:6 And he said unto them, Cast the net on the right side of the -ship, and ye shall find. They cast therefore, and now they were not -able to draw it for the multitude of fishes. - -21:7 Therefore that disciple whom Jesus loved saith unto Peter, It is -the Lord. Now when Simon Peter heard that it was the Lord, he girt his -fisher's coat unto him, (for he was naked,) and did cast himself into -the sea. - -21:8 And the other disciples came in a little ship; (for they were not -far from land, but as it were two hundred cubits,) dragging the net -with fishes. - -21:9 As soon then as they were come to land, they saw a fire of coals -there, and fish laid thereon, and bread. - -21:10 Jesus saith unto them, Bring of the fish which ye have now -caught. - -21:11 Simon Peter went up, and drew the net to land full of great -fishes, an hundred and fifty and three: and for all there were so -many, yet was not the net broken. - -21:12 Jesus saith unto them, Come and dine. And none of the disciples -durst ask him, Who art thou? knowing that it was the Lord. - -21:13 Jesus then cometh, and taketh bread, and giveth them, and fish -likewise. - -21:14 This is now the third time that Jesus shewed himself to his -disciples, after that he was risen from the dead. - -21:15 So when they had dined, Jesus saith to Simon Peter, Simon, son -of Jonas, lovest thou me more than these? He saith unto him, Yea, -Lord; thou knowest that I love thee. He saith unto him, Feed my lambs. - -21:16 He saith to him again the second time, Simon, son of Jonas, -lovest thou me? He saith unto him, Yea, Lord; thou knowest that I love -thee. He saith unto him, Feed my sheep. - -21:17 He saith unto him the third time, Simon, son of Jonas, lovest -thou me? Peter was grieved because he said unto him the third time, -Lovest thou me? And he said unto him, Lord, thou knowest all things; -thou knowest that I love thee. Jesus saith unto him, Feed my sheep. - -21:18 Verily, verily, I say unto thee, When thou wast young, thou -girdest thyself, and walkedst whither thou wouldest: but when thou -shalt be old, thou shalt stretch forth thy hands, and another shall -gird thee, and carry thee whither thou wouldest not. - -21:19 This spake he, signifying by what death he should glorify God. -And when he had spoken this, he saith unto him, Follow me. - -21:20 Then Peter, turning about, seeth the disciple whom Jesus loved -following; which also leaned on his breast at supper, and said, Lord, -which is he that betrayeth thee? 21:21 Peter seeing him saith to -Jesus, Lord, and what shall this man do? 21:22 Jesus saith unto him, -If I will that he tarry till I come, what is that to thee? follow thou -me. - -21:23 Then went this saying abroad among the brethren, that that -disciple should not die: yet Jesus said not unto him, He shall not -die; but, If I will that he tarry till I come, what is that to thee? -21:24 This is the disciple which testifieth of these things, and wrote -these things: and we know that his testimony is true. - -21:25 And there are also many other things which Jesus did, the which, -if they should be written every one, I suppose that even the world -itself could not contain the books that should be written. Amen. - - - - -The Acts of the Apostles - - -1:1 The former treatise have I made, O Theophilus, of all that Jesus -began both to do and teach, 1:2 Until the day in which he was taken -up, after that he through the Holy Ghost had given commandments unto -the apostles whom he had chosen: 1:3 To whom also he shewed himself -alive after his passion by many infallible proofs, being seen of them -forty days, and speaking of the things pertaining to the kingdom of -God: 1:4 And, being assembled together with them, commanded them that -they should not depart from Jerusalem, but wait for the promise of the -Father, which, saith he, ye have heard of me. - -1:5 For John truly baptized with water; but ye shall be baptized with -the Holy Ghost not many days hence. - -1:6 When they therefore were come together, they asked of him, saying, -Lord, wilt thou at this time restore again the kingdom to Israel? 1:7 -And he said unto them, It is not for you to know the times or the -seasons, which the Father hath put in his own power. - -1:8 But ye shall receive power, after that the Holy Ghost is come upon -you: and ye shall be witnesses unto me both in Jerusalem, and in all -Judaea, and in Samaria, and unto the uttermost part of the earth. - -1:9 And when he had spoken these things, while they beheld, he was -taken up; and a cloud received him out of their sight. - -1:10 And while they looked stedfastly toward heaven as he went up, -behold, two men stood by them in white apparel; 1:11 Which also said, -Ye men of Galilee, why stand ye gazing up into heaven? this same -Jesus, which is taken up from you into heaven, shall so come in like -manner as ye have seen him go into heaven. - -1:12 Then returned they unto Jerusalem from the mount called Olivet, -which is from Jerusalem a sabbath day's journey. - -1:13 And when they were come in, they went up into an upper room, -where abode both Peter, and James, and John, and Andrew, Philip, and -Thomas, Bartholomew, and Matthew, James the son of Alphaeus, and Simon -Zelotes, and Judas the brother of James. - -1:14 These all continued with one accord in prayer and supplication, -with the women, and Mary the mother of Jesus, and with his brethren. - -1:15 And in those days Peter stood up in the midst of the disciples, -and said, (the number of names together were about an hundred and -twenty,) 1:16 Men and brethren, this scripture must needs have been -fulfilled, which the Holy Ghost by the mouth of David spake before -concerning Judas, which was guide to them that took Jesus. - -1:17 For he was numbered with us, and had obtained part of this -ministry. - -1:18 Now this man purchased a field with the reward of iniquity; and -falling headlong, he burst asunder in the midst, and all his bowels -gushed out. - -1:19 And it was known unto all the dwellers at Jerusalem; insomuch as -that field is called in their proper tongue, Aceldama, that is to say, -The field of blood. - -1:20 For it is written in the book of Psalms, Let his habitation be -desolate, and let no man dwell therein: and his bishoprick let another -take. - -1:21 Wherefore of these men which have companied with us all the time -that the Lord Jesus went in and out among us, 1:22 Beginning from the -baptism of John, unto that same day that he was taken up from us, must -one be ordained to be a witness with us of his resurrection. - -1:23 And they appointed two, Joseph called Barsabas, who was surnamed -Justus, and Matthias. - -1:24 And they prayed, and said, Thou, Lord, which knowest the hearts -of all men, shew whether of these two thou hast chosen, 1:25 That he -may take part of this ministry and apostleship, from which Judas by -transgression fell, that he might go to his own place. - -1:26 And they gave forth their lots; and the lot fell upon Matthias; -and he was numbered with the eleven apostles. - -2:1 And when the day of Pentecost was fully come, they were all with -one accord in one place. - -2:2 And suddenly there came a sound from heaven as of a rushing mighty -wind, and it filled all the house where they were sitting. - -2:3 And there appeared unto them cloven tongues like as of fire, and -it sat upon each of them. - -2:4 And they were all filled with the Holy Ghost, and began to speak -with other tongues, as the Spirit gave them utterance. - -2:5 And there were dwelling at Jerusalem Jews, devout men, out of -every nation under heaven. - -2:6 Now when this was noised abroad, the multitude came together, and -were confounded, because that every man heard them speak in his own -language. - -2:7 And they were all amazed and marvelled, saying one to another, -Behold, are not all these which speak Galilaeans? 2:8 And how hear we -every man in our own tongue, wherein we were born? 2:9 Parthians, and -Medes, and Elamites, and the dwellers in Mesopotamia, and in Judaea, -and Cappadocia, in Pontus, and Asia, 2:10 Phrygia, and Pamphylia, in -Egypt, and in the parts of Libya about Cyrene, and strangers of Rome, -Jews and proselytes, 2:11 Cretes and Arabians, we do hear them speak -in our tongues the wonderful works of God. - -2:12 And they were all amazed, and were in doubt, saying one to -another, What meaneth this? 2:13 Others mocking said, These men are -full of new wine. - -2:14 But Peter, standing up with the eleven, lifted up his voice, and -said unto them, Ye men of Judaea, and all ye that dwell at Jerusalem, -be this known unto you, and hearken to my words: 2:15 For these are -not drunken, as ye suppose, seeing it is but the third hour of the -day. - -2:16 But this is that which was spoken by the prophet Joel; 2:17 And -it shall come to pass in the last days, saith God, I will pour out of -my Spirit upon all flesh: and your sons and your daughters shall -prophesy, and your young men shall see visions, and your old men shall -dream dreams: 2:18 And on my servants and on my handmaidens I will -pour out in those days of my Spirit; and they shall prophesy: 2:19 And -I will shew wonders in heaven above, and signs in the earth beneath; -blood, and fire, and vapour of smoke: 2:20 The sun shall be turned -into darkness, and the moon into blood, before the great and notable -day of the Lord come: 2:21 And it shall come to pass, that whosoever -shall call on the name of the Lord shall be saved. - -2:22 Ye men of Israel, hear these words; Jesus of Nazareth, a man -approved of God among you by miracles and wonders and signs, which God -did by him in the midst of you, as ye yourselves also know: 2:23 Him, -being delivered by the determinate counsel and foreknowledge of God, -ye have taken, and by wicked hands have crucified and slain: 2:24 Whom -God hath raised up, having loosed the pains of death: because it was -not possible that he should be holden of it. - -2:25 For David speaketh concerning him, I foresaw the Lord always -before my face, for he is on my right hand, that I should not be -moved: 2:26 Therefore did my heart rejoice, and my tongue was glad; -moreover also my flesh shall rest in hope: 2:27 Because thou wilt not -leave my soul in hell, neither wilt thou suffer thine Holy One to see -corruption. - -2:28 Thou hast made known to me the ways of life; thou shalt make me -full of joy with thy countenance. - -2:29 Men and brethren, let me freely speak unto you of the patriarch -David, that he is both dead and buried, and his sepulchre is with us -unto this day. - -2:30 Therefore being a prophet, and knowing that God had sworn with an -oath to him, that of the fruit of his loins, according to the flesh, -he would raise up Christ to sit on his throne; 2:31 He seeing this -before spake of the resurrection of Christ, that his soul was not left -in hell, neither his flesh did see corruption. - -2:32 This Jesus hath God raised up, whereof we all are witnesses. - -2:33 Therefore being by the right hand of God exalted, and having -received of the Father the promise of the Holy Ghost, he hath shed -forth this, which ye now see and hear. - -2:34 For David is not ascended into the heavens: but he saith himself, -The Lord said unto my Lord, Sit thou on my right hand, 2:35 Until I -make thy foes thy footstool. - -2:36 Therefore let all the house of Israel know assuredly, that God -hath made the same Jesus, whom ye have crucified, both Lord and -Christ. - -2:37 Now when they heard this, they were pricked in their heart, and -said unto Peter and to the rest of the apostles, Men and brethren, -what shall we do? 2:38 Then Peter said unto them, Repent, and be -baptized every one of you in the name of Jesus Christ for the -remission of sins, and ye shall receive the gift of the Holy Ghost. - -2:39 For the promise is unto you, and to your children, and to all -that are afar off, even as many as the LORD our God shall call. - -2:40 And with many other words did he testify and exhort, saying, Save -yourselves from this untoward generation. - -2:41 Then they that gladly received his word were baptized: and the -same day there were added unto them about three thousand souls. - -2:42 And they continued stedfastly in the apostles' doctrine and -fellowship, and in breaking of bread, and in prayers. - -2:43 And fear came upon every soul: and many wonders and signs were -done by the apostles. - -2:44 And all that believed were together, and had all things common; -2:45 And sold their possessions and goods, and parted them to all men, -as every man had need. - -2:46 And they, continuing daily with one accord in the temple, and -breaking bread from house to house, did eat their meat with gladness -and singleness of heart, 2:47 Praising God, and having favour with all -the people. And the Lord added to the church daily such as should be -saved. - -3:1 Now Peter and John went up together into the temple at the hour of -prayer, being the ninth hour. - -3:2 And a certain man lame from his mother's womb was carried, whom -they laid daily at the gate of the temple which is called Beautiful, -to ask alms of them that entered into the temple; 3:3 Who seeing Peter -and John about to go into the temple asked an alms. - -3:4 And Peter, fastening his eyes upon him with John, said, Look on -us. - -3:5 And he gave heed unto them, expecting to receive something of -them. - -3:6 Then Peter said, Silver and gold have I none; but such as I have -give I thee: In the name of Jesus Christ of Nazareth rise up and walk. - -3:7 And he took him by the right hand, and lifted him up: and -immediately his feet and ankle bones received strength. - -3:8 And he leaping up stood, and walked, and entered with them into -the temple, walking, and leaping, and praising God. - -3:9 And all the people saw him walking and praising God: 3:10 And they -knew that it was he which sat for alms at the Beautiful gate of the -temple: and they were filled with wonder and amazement at that which -had happened unto him. - -3:11 And as the lame man which was healed held Peter and John, all the -people ran together unto them in the porch that is called Solomon's, -greatly wondering. - -3:12 And when Peter saw it, he answered unto the people, Ye men of -Israel, why marvel ye at this? or why look ye so earnestly on us, as -though by our own power or holiness we had made this man to walk? -3:13 The God of Abraham, and of Isaac, and of Jacob, the God of our -fathers, hath glorified his Son Jesus; whom ye delivered up, and -denied him in the presence of Pilate, when he was determined to let -him go. - -3:14 But ye denied the Holy One and the Just, and desired a murderer -to be granted unto you; 3:15 And killed the Prince of life, whom God -hath raised from the dead; whereof we are witnesses. - -3:16 And his name through faith in his name hath made this man strong, -whom ye see and know: yea, the faith which is by him hath given him -this perfect soundness in the presence of you all. - -3:17 And now, brethren, I wot that through ignorance ye did it, as did -also your rulers. - -3:18 But those things, which God before had shewed by the mouth of all -his prophets, that Christ should suffer, he hath so fulfilled. - -3:19 Repent ye therefore, and be converted, that your sins may be -blotted out, when the times of refreshing shall come from the presence -of the Lord. - -3:20 And he shall send Jesus Christ, which before was preached unto -you: 3:21 Whom the heaven must receive until the times of restitution -of all things, which God hath spoken by the mouth of all his holy -prophets since the world began. - -3:22 For Moses truly said unto the fathers, A prophet shall the Lord -your God raise up unto you of your brethren, like unto me; him shall -ye hear in all things whatsoever he shall say unto you. - -3:23 And it shall come to pass, that every soul, which will not hear -that prophet, shall be destroyed from among the people. - -3:24 Yea, and all the prophets from Samuel and those that follow -after, as many as have spoken, have likewise foretold of these days. - -3:25 Ye are the children of the prophets, and of the covenant which -God made with our fathers, saying unto Abraham, And in thy seed shall -all the kindreds of the earth be blessed. - -3:26 Unto you first God, having raised up his Son Jesus, sent him to -bless you, in turning away every one of you from his iniquities. - -4:1 And as they spake unto the people, the priests, and the captain of -the temple, and the Sadducees, came upon them, 4:2 Being grieved that -they taught the people, and preached through Jesus the resurrection -from the dead. - -4:3 And they laid hands on them, and put them in hold unto the next -day: for it was now eventide. - -4:4 Howbeit many of them which heard the word believed; and the number -of the men was about five thousand. - -4:5 And it came to pass on the morrow, that their rulers, and elders, -and scribes, 4:6 And Annas the high priest, and Caiaphas, and John, -and Alexander, and as many as were of the kindred of the high priest, -were gathered together at Jerusalem. - -4:7 And when they had set them in the midst, they asked, By what -power, or by what name, have ye done this? 4:8 Then Peter, filled -with the Holy Ghost, said unto them, Ye rulers of the people, and -elders of Israel, 4:9 If we this day be examined of the good deed done -to the impotent man, by what means he is made whole; 4:10 Be it known -unto you all, and to all the people of Israel, that by the name of -Jesus Christ of Nazareth, whom ye crucified, whom God raised from the -dead, even by him doth this man stand here before you whole. - -4:11 This is the stone which was set at nought of you builders, which -is become the head of the corner. - -4:12 Neither is there salvation in any other: for there is none other -name under heaven given among men, whereby we must be saved. - -4:13 Now when they saw the boldness of Peter and John, and perceived -that they were unlearned and ignorant men, they marvelled; and they -took knowledge of them, that they had been with Jesus. - -4:14 And beholding the man which was healed standing with them, they -could say nothing against it. - -4:15 But when they had commanded them to go aside out of the council, -they conferred among themselves, 4:16 Saying, What shall we do to -these men? for that indeed a notable miracle hath been done by them is -manifest to all them that dwell in Jerusalem; and we cannot deny it. - -4:17 But that it spread no further among the people, let us straitly -threaten them, that they speak henceforth to no man in this name. - -4:18 And they called them, and commanded them not to speak at all nor -teach in the name of Jesus. - -4:19 But Peter and John answered and said unto them, Whether it be -right in the sight of God to hearken unto you more than unto God, -judge ye. - -4:20 For we cannot but speak the things which we have seen and heard. - -4:21 So when they had further threatened them, they let them go, -finding nothing how they might punish them, because of the people: for -all men glorified God for that which was done. - -4:22 For the man was above forty years old, on whom this miracle of -healing was shewed. - -4:23 And being let go, they went to their own company, and reported -all that the chief priests and elders had said unto them. - -4:24 And when they heard that, they lifted up their voice to God with -one accord, and said, Lord, thou art God, which hast made heaven, and -earth, and the sea, and all that in them is: 4:25 Who by the mouth of -thy servant David hast said, Why did the heathen rage, and the people -imagine vain things? 4:26 The kings of the earth stood up, and the -rulers were gathered together against the Lord, and against his -Christ. - -4:27 For of a truth against thy holy child Jesus, whom thou hast -anointed, both Herod, and Pontius Pilate, with the Gentiles, and the -people of Israel, were gathered together, 4:28 For to do whatsoever -thy hand and thy counsel determined before to be done. - -4:29 And now, Lord, behold their threatenings: and grant unto thy -servants, that with all boldness they may speak thy word, 4:30 By -stretching forth thine hand to heal; and that signs and wonders may be -done by the name of thy holy child Jesus. - -4:31 And when they had prayed, the place was shaken where they were -assembled together; and they were all filled with the Holy Ghost, and -they spake the word of God with boldness. - -4:32 And the multitude of them that believed were of one heart and of -one soul: neither said any of them that ought of the things which he -possessed was his own; but they had all things common. - -4:33 And with great power gave the apostles witness of the -resurrection of the Lord Jesus: and great grace was upon them all. - -4:34 Neither was there any among them that lacked: for as many as were -possessors of lands or houses sold them, and brought the prices of the -things that were sold, 4:35 And laid them down at the apostles' feet: -and distribution was made unto every man according as he had need. - -4:36 And Joses, who by the apostles was surnamed Barnabas, (which is, -being interpreted, The son of consolation,) a Levite, and of the -country of Cyprus, 4:37 Having land, sold it, and brought the money, -and laid it at the apostles' feet. - -5:1 But a certain man named Ananias, with Sapphira his wife, sold a -possession, 5:2 And kept back part of the price, his wife also being -privy to it, and brought a certain part, and laid it at the apostles' -feet. - -5:3 But Peter said, Ananias, why hath Satan filled thine heart to lie -to the Holy Ghost, and to keep back part of the price of the land? -5:4 Whiles it remained, was it not thine own? and after it was sold, -was it not in thine own power? why hast thou conceived this thing in -thine heart? thou hast not lied unto men, but unto God. - -5:5 And Ananias hearing these words fell down, and gave up the ghost: -and great fear came on all them that heard these things. - -5:6 And the young men arose, wound him up, and carried him out, and -buried him. - -5:7 And it was about the space of three hours after, when his wife, -not knowing what was done, came in. - -5:8 And Peter answered unto her, Tell me whether ye sold the land for -so much? And she said, Yea, for so much. - -5:9 Then Peter said unto her, How is it that ye have agreed together -to tempt the Spirit of the Lord? behold, the feet of them which have -buried thy husband are at the door, and shall carry thee out. - -5:10 Then fell she down straightway at his feet, and yielded up the -ghost: and the young men came in, and found her dead, and, carrying -her forth, buried her by her husband. - -5:11 And great fear came upon all the church, and upon as many as -heard these things. - -5:12 And by the hands of the apostles were many signs and wonders -wrought among the people; (and they were all with one accord in -Solomon's porch. - -5:13 And of the rest durst no man join himself to them: but the people -magnified them. - -5:14 And believers were the more added to the Lord, multitudes both of -men and women.) 5:15 Insomuch that they brought forth the sick into -the streets, and laid them on beds and couches, that at the least the -shadow of Peter passing by might overshadow some of them. - -5:16 There came also a multitude out of the cities round about unto -Jerusalem, bringing sick folks, and them which were vexed with unclean -spirits: and they were healed every one. - -5:17 Then the high priest rose up, and all they that were with him, -(which is the sect of the Sadducees,) and were filled with -indignation, 5:18 And laid their hands on the apostles, and put them -in the common prison. - -5:19 But the angel of the Lord by night opened the prison doors, and -brought them forth, and said, 5:20 Go, stand and speak in the temple -to the people all the words of this life. - -5:21 And when they heard that, they entered into the temple early in -the morning, and taught. But the high priest came, and they that were -with him, and called the council together, and all the senate of the -children of Israel, and sent to the prison to have them brought. - -5:22 But when the officers came, and found them not in the prison, -they returned and told, 5:23 Saying, The prison truly found we shut -with all safety, and the keepers standing without before the doors: -but when we had opened, we found no man within. - -5:24 Now when the high priest and the captain of the temple and the -chief priests heard these things, they doubted of them whereunto this -would grow. - -5:25 Then came one and told them, saying, Behold, the men whom ye put -in prison are standing in the temple, and teaching the people. - -5:26 Then went the captain with the officers, and brought them without -violence: for they feared the people, lest they should have been -stoned. - -5:27 And when they had brought them, they set them before the council: -and the high priest asked them, 5:28 Saying, Did not we straitly -command you that ye should not teach in this name? and, behold, ye -have filled Jerusalem with your doctrine, and intend to bring this -man's blood upon us. - -5:29 Then Peter and the other apostles answered and said, We ought to -obey God rather than men. - -5:30 The God of our fathers raised up Jesus, whom ye slew and hanged -on a tree. - -5:31 Him hath God exalted with his right hand to be a Prince and a -Saviour, for to give repentance to Israel, and forgiveness of sins. - -5:32 And we are his witnesses of these things; and so is also the Holy -Ghost, whom God hath given to them that obey him. - -5:33 When they heard that, they were cut to the heart, and took -counsel to slay them. - -5:34 Then stood there up one in the council, a Pharisee, named -Gamaliel, a doctor of the law, had in reputation among all the people, -and commanded to put the apostles forth a little space; 5:35 And said -unto them, Ye men of Israel, take heed to yourselves what ye intend to -do as touching these men. - -5:36 For before these days rose up Theudas, boasting himself to be -somebody; to whom a number of men, about four hundred, joined -themselves: who was slain; and all, as many as obeyed him, were -scattered, and brought to nought. - -5:37 After this man rose up Judas of Galilee in the days of the -taxing, and drew away much people after him: he also perished; and -all, even as many as obeyed him, were dispersed. - -5:38 And now I say unto you, Refrain from these men, and let them -alone: for if this counsel or this work be of men, it will come to -nought: 5:39 But if it be of God, ye cannot overthrow it; lest haply -ye be found even to fight against God. - -5:40 And to him they agreed: and when they had called the apostles, -and beaten them, they commanded that they should not speak in the name -of Jesus, and let them go. - -5:41 And they departed from the presence of the council, rejoicing -that they were counted worthy to suffer shame for his name. - -5:42 And daily in the temple, and in every house, they ceased not to -teach and preach Jesus Christ. - -6:1 And in those days, when the number of the disciples was -multiplied, there arose a murmuring of the Grecians against the -Hebrews, because their widows were neglected in the daily -ministration. - -6:2 Then the twelve called the multitude of the disciples unto them, -and said, It is not reason that we should leave the word of God, and -serve tables. - -6:3 Wherefore, brethren, look ye out among you seven men of honest -report, full of the Holy Ghost and wisdom, whom we may appoint over -this business. - -6:4 But we will give ourselves continually to prayer, and to the -ministry of the word. - -6:5 And the saying pleased the whole multitude: and they chose -Stephen, a man full of faith and of the Holy Ghost, and Philip, and -Prochorus, and Nicanor, and Timon, and Parmenas, and Nicolas a -proselyte of Antioch: 6:6 Whom they set before the apostles: and when -they had prayed, they laid their hands on them. - -6:7 And the word of God increased; and the number of the disciples -multiplied in Jerusalem greatly; and a great company of the priests -were obedient to the faith. - -6:8 And Stephen, full of faith and power, did great wonders and -miracles among the people. - -6:9 Then there arose certain of the synagogue, which is called the -synagogue of the Libertines, and Cyrenians, and Alexandrians, and of -them of Cilicia and of Asia, disputing with Stephen. - -6:10 And they were not able to resist the wisdom and the spirit by -which he spake. - -6:11 Then they suborned men, which said, We have heard him speak -blasphemous words against Moses, and against God. - -6:12 And they stirred up the people, and the elders, and the scribes, -and came upon him, and caught him, and brought him to the council, -6:13 And set up false witnesses, which said, This man ceaseth not to -speak blasphemous words against this holy place, and the law: 6:14 For -we have heard him say, that this Jesus of Nazareth shall destroy this -place, and shall change the customs which Moses delivered us. - -6:15 And all that sat in the council, looking stedfastly on him, saw -his face as it had been the face of an angel. - -7:1 Then said the high priest, Are these things so? 7:2 And he said, -Men, brethren, and fathers, hearken; The God of glory appeared unto -our father Abraham, when he was in Mesopotamia, before he dwelt in -Charran, 7:3 And said unto him, Get thee out of thy country, and from -thy kindred, and come into the land which I shall shew thee. - -7:4 Then came he out of the land of the Chaldaeans, and dwelt in -Charran: and from thence, when his father was dead, he removed him -into this land, wherein ye now dwell. - -7:5 And he gave him none inheritance in it, no, not so much as to set -his foot on: yet he promised that he would give it to him for a -possession, and to his seed after him, when as yet he had no child. - -7:6 And God spake on this wise, That his seed should sojourn in a -strange land; and that they should bring them into bondage, and -entreat them evil four hundred years. - -7:7 And the nation to whom they shall be in bondage will I judge, said -God: and after that shall they come forth, and serve me in this place. - -7:8 And he gave him the covenant of circumcision: and so Abraham begat -Isaac, and circumcised him the eighth day; and Isaac begat Jacob; and -Jacob begat the twelve patriarchs. - -7:9 And the patriarchs, moved with envy, sold Joseph into Egypt: but -God was with him, 7:10 And delivered him out of all his afflictions, -and gave him favour and wisdom in the sight of Pharaoh king of Egypt; -and he made him governor over Egypt and all his house. - -7:11 Now there came a dearth over all the land of Egypt and Chanaan, -and great affliction: and our fathers found no sustenance. - -7:12 But when Jacob heard that there was corn in Egypt, he sent out -our fathers first. - -7:13 And at the second time Joseph was made known to his brethren; and -Joseph's kindred was made known unto Pharaoh. - -7:14 Then sent Joseph, and called his father Jacob to him, and all his -kindred, threescore and fifteen souls. - -7:15 So Jacob went down into Egypt, and died, he, and our fathers, -7:16 And were carried over into Sychem, and laid in the sepulchre that -Abraham bought for a sum of money of the sons of Emmor the father of -Sychem. - -7:17 But when the time of the promise drew nigh, which God had sworn -to Abraham, the people grew and multiplied in Egypt, 7:18 Till another -king arose, which knew not Joseph. - -7:19 The same dealt subtilly with our kindred, and evil entreated our -fathers, so that they cast out their young children, to the end they -might not live. - -7:20 In which time Moses was born, and was exceeding fair, and -nourished up in his father's house three months: 7:21 And when he was -cast out, Pharaoh's daughter took him up, and nourished him for her -own son. - -7:22 And Moses was learned in all the wisdom of the Egyptians, and was -mighty in words and in deeds. - -7:23 And when he was full forty years old, it came into his heart to -visit his brethren the children of Israel. - -7:24 And seeing one of them suffer wrong, he defended him, and avenged -him that was oppressed, and smote the Egyptian: 7:25 For he supposed -his brethren would have understood how that God by his hand would -deliver them: but they understood not. - -7:26 And the next day he shewed himself unto them as they strove, and -would have set them at one again, saying, Sirs, ye are brethren; why -do ye wrong one to another? 7:27 But he that did his neighbour wrong -thrust him away, saying, Who made thee a ruler and a judge over us? -7:28 Wilt thou kill me, as thou diddest the Egyptian yesterday? 7:29 -Then fled Moses at this saying, and was a stranger in the land of -Madian, where he begat two sons. - -7:30 And when forty years were expired, there appeared to him in the -wilderness of mount Sina an angel of the Lord in a flame of fire in a -bush. - -7:31 When Moses saw it, he wondered at the sight: and as he drew near -to behold it, the voice of the LORD came unto him, 7:32 Saying, I am -the God of thy fathers, the God of Abraham, and the God of Isaac, and -the God of Jacob. Then Moses trembled, and durst not behold. - -7:33 Then said the Lord to him, Put off thy shoes from thy feet: for -the place where thou standest is holy ground. - -7:34 I have seen, I have seen the affliction of my people which is in -Egypt, and I have heard their groaning, and am come down to deliver -them. And now come, I will send thee into Egypt. - -7:35 This Moses whom they refused, saying, Who made thee a ruler and a -judge? the same did God send to be a ruler and a deliverer by the hand -of the angel which appeared to him in the bush. - -7:36 He brought them out, after that he had shewed wonders and signs -in the land of Egypt, and in the Red sea, and in the wilderness forty -years. - -7:37 This is that Moses, which said unto the children of Israel, A -prophet shall the Lord your God raise up unto you of your brethren, -like unto me; him shall ye hear. - -7:38 This is he, that was in the church in the wilderness with the -angel which spake to him in the mount Sina, and with our fathers: who -received the lively oracles to give unto us: 7:39 To whom our fathers -would not obey, but thrust him from them, and in their hearts turned -back again into Egypt, 7:40 Saying unto Aaron, Make us gods to go -before us: for as for this Moses, which brought us out of the land of -Egypt, we wot not what is become of him. - -7:41 And they made a calf in those days, and offered sacrifice unto -the idol, and rejoiced in the works of their own hands. - -7:42 Then God turned, and gave them up to worship the host of heaven; -as it is written in the book of the prophets, O ye house of Israel, -have ye offered to me slain beasts and sacrifices by the space of -forty years in the wilderness? 7:43 Yea, ye took up the tabernacle of -Moloch, and the star of your god Remphan, figures which ye made to -worship them: and I will carry you away beyond Babylon. - -7:44 Our fathers had the tabernacle of witness in the wilderness, as -he had appointed, speaking unto Moses, that he should make it -according to the fashion that he had seen. - -7:45 Which also our fathers that came after brought in with Jesus into -the possession of the Gentiles, whom God drave out before the face of -our fathers, unto the days of David; 7:46 Who found favour before God, -and desired to find a tabernacle for the God of Jacob. - -7:47 But Solomon built him an house. - -7:48 Howbeit the most High dwelleth not in temples made with hands; as -saith the prophet, 7:49 Heaven is my throne, and earth is my -footstool: what house will ye build me? saith the Lord: or what is the -place of my rest? 7:50 Hath not my hand made all these things? 7:51 -Ye stiffnecked and uncircumcised in heart and ears, ye do always -resist the Holy Ghost: as your fathers did, so do ye. - -7:52 Which of the prophets have not your fathers persecuted? and they -have slain them which shewed before of the coming of the Just One; of -whom ye have been now the betrayers and murderers: 7:53 Who have -received the law by the disposition of angels, and have not kept it. - -7:54 When they heard these things, they were cut to the heart, and -they gnashed on him with their teeth. - -7:55 But he, being full of the Holy Ghost, looked up stedfastly into -heaven, and saw the glory of God, and Jesus standing on the right hand -of God, 7:56 And said, Behold, I see the heavens opened, and the Son -of man standing on the right hand of God. - -7:57 Then they cried out with a loud voice, and stopped their ears, -and ran upon him with one accord, 7:58 And cast him out of the city, -and stoned him: and the witnesses laid down their clothes at a young -man's feet, whose name was Saul. - -7:59 And they stoned Stephen, calling upon God, and saying, Lord -Jesus, receive my spirit. - -7:60 And he kneeled down, and cried with a loud voice, Lord, lay not -this sin to their charge. And when he had said this, he fell asleep. - -8:1 And Saul was consenting unto his death. And at that time there was -a great persecution against the church which was at Jerusalem; and -they were all scattered abroad throughout the regions of Judaea and -Samaria, except the apostles. - -8:2 And devout men carried Stephen to his burial, and made great -lamentation over him. - -8:3 As for Saul, he made havock of the church, entering into every -house, and haling men and women committed them to prison. - -8:4 Therefore they that were scattered abroad went every where -preaching the word. - -8:5 Then Philip went down to the city of Samaria, and preached Christ -unto them. - -8:6 And the people with one accord gave heed unto those things which -Philip spake, hearing and seeing the miracles which he did. - -8:7 For unclean spirits, crying with loud voice, came out of many that -were possessed with them: and many taken with palsies, and that were -lame, were healed. - -8:8 And there was great joy in that city. - -8:9 But there was a certain man, called Simon, which beforetime in the -same city used sorcery, and bewitched the people of Samaria, giving -out that himself was some great one: 8:10 To whom they all gave heed, -from the least to the greatest, saying, This man is the great power of -God. - -8:11 And to him they had regard, because that of long time he had -bewitched them with sorceries. - -8:12 But when they believed Philip preaching the things concerning the -kingdom of God, and the name of Jesus Christ, they were baptized, both -men and women. - -8:13 Then Simon himself believed also: and when he was baptized, he -continued with Philip, and wondered, beholding the miracles and signs -which were done. - -8:14 Now when the apostles which were at Jerusalem heard that Samaria -had received the word of God, they sent unto them Peter and John: 8:15 -Who, when they were come down, prayed for them, that they might -receive the Holy Ghost: 8:16 (For as yet he was fallen upon none of -them: only they were baptized in the name of the Lord Jesus.) 8:17 -Then laid they their hands on them, and they received the Holy Ghost. - -8:18 And when Simon saw that through laying on of the apostles' hands -the Holy Ghost was given, he offered them money, 8:19 Saying, Give me -also this power, that on whomsoever I lay hands, he may receive the -Holy Ghost. - -8:20 But Peter said unto him, Thy money perish with thee, because thou -hast thought that the gift of God may be purchased with money. - -8:21 Thou hast neither part nor lot in this matter: for thy heart is -not right in the sight of God. - -8:22 Repent therefore of this thy wickedness, and pray God, if perhaps -the thought of thine heart may be forgiven thee. - -8:23 For I perceive that thou art in the gall of bitterness, and in -the bond of iniquity. - -8:24 Then answered Simon, and said, Pray ye to the LORD for me, that -none of these things which ye have spoken come upon me. - -8:25 And they, when they had testified and preached the word of the -Lord, returned to Jerusalem, and preached the gospel in many villages -of the Samaritans. - -8:26 And the angel of the Lord spake unto Philip, saying, Arise, and -go toward the south unto the way that goeth down from Jerusalem unto -Gaza, which is desert. - -8:27 And he arose and went: and, behold, a man of Ethiopia, an eunuch -of great authority under Candace queen of the Ethiopians, who had the -charge of all her treasure, and had come to Jerusalem for to worship, -8:28 Was returning, and sitting in his chariot read Esaias the -prophet. - -8:29 Then the Spirit said unto Philip, Go near, and join thyself to -this chariot. - -8:30 And Philip ran thither to him, and heard him read the prophet -Esaias, and said, Understandest thou what thou readest? 8:31 And he -said, How can I, except some man should guide me? And he desired -Philip that he would come up and sit with him. - -8:32 The place of the scripture which he read was this, He was led as -a sheep to the slaughter; and like a lamb dumb before his shearer, so -opened he not his mouth: 8:33 In his humiliation his judgment was -taken away: and who shall declare his generation? for his life is -taken from the earth. - -8:34 And the eunuch answered Philip, and said, I pray thee, of whom -speaketh the prophet this? of himself, or of some other man? 8:35 -Then Philip opened his mouth, and began at the same scripture, and -preached unto him Jesus. - -8:36 And as they went on their way, they came unto a certain water: -and the eunuch said, See, here is water; what doth hinder me to be -baptized? 8:37 And Philip said, If thou believest with all thine -heart, thou mayest. - -And he answered and said, I believe that Jesus Christ is the Son of -God. - -8:38 And he commanded the chariot to stand still: and they went down -both into the water, both Philip and the eunuch; and he baptized him. - -8:39 And when they were come up out of the water, the Spirit of the -Lord caught away Philip, that the eunuch saw him no more: and he went -on his way rejoicing. - -8:40 But Philip was found at Azotus: and passing through he preached -in all the cities, till he came to Caesarea. - -9:1 And Saul, yet breathing out threatenings and slaughter against the -disciples of the Lord, went unto the high priest, 9:2 And desired of -him letters to Damascus to the synagogues, that if he found any of -this way, whether they were men or women, he might bring them bound -unto Jerusalem. - -9:3 And as he journeyed, he came near Damascus: and suddenly there -shined round about him a light from heaven: 9:4 And he fell to the -earth, and heard a voice saying unto him, Saul, Saul, why persecutest -thou me? 9:5 And he said, Who art thou, Lord? And the Lord said, I am -Jesus whom thou persecutest: it is hard for thee to kick against the -pricks. - -9:6 And he trembling and astonished said, Lord, what wilt thou have me -to do? And the Lord said unto him, Arise, and go into the city, and it -shall be told thee what thou must do. - -9:7 And the men which journeyed with him stood speechless, hearing a -voice, but seeing no man. - -9:8 And Saul arose from the earth; and when his eyes were opened, he -saw no man: but they led him by the hand, and brought him into -Damascus. - -9:9 And he was three days without sight, and neither did eat nor -drink. - -9:10 And there was a certain disciple at Damascus, named Ananias; and -to him said the Lord in a vision, Ananias. And he said, Behold, I am -here, Lord. - -9:11 And the Lord said unto him, Arise, and go into the street which -is called Straight, and enquire in the house of Judas for one called -Saul, of Tarsus: for, behold, he prayeth, 9:12 And hath seen in a -vision a man named Ananias coming in, and putting his hand on him, -that he might receive his sight. - -9:13 Then Ananias answered, Lord, I have heard by many of this man, -how much evil he hath done to thy saints at Jerusalem: 9:14 And here -he hath authority from the chief priests to bind all that call on thy -name. - -9:15 But the Lord said unto him, Go thy way: for he is a chosen vessel -unto me, to bear my name before the Gentiles, and kings, and the -children of Israel: 9:16 For I will shew him how great things he must -suffer for my name's sake. - -9:17 And Ananias went his way, and entered into the house; and putting -his hands on him said, Brother Saul, the Lord, even Jesus, that -appeared unto thee in the way as thou camest, hath sent me, that thou -mightest receive thy sight, and be filled with the Holy Ghost. - -9:18 And immediately there fell from his eyes as it had been scales: -and he received sight forthwith, and arose, and was baptized. - -9:19 And when he had received meat, he was strengthened. Then was Saul -certain days with the disciples which were at Damascus. - -9:20 And straightway he preached Christ in the synagogues, that he is -the Son of God. - -9:21 But all that heard him were amazed, and said; Is not this he that -destroyed them which called on this name in Jerusalem, and came hither -for that intent, that he might bring them bound unto the chief -priests? 9:22 But Saul increased the more in strength, and confounded -the Jews which dwelt at Damascus, proving that this is very Christ. - -9:23 And after that many days were fulfilled, the Jews took counsel to -kill him: 9:24 But their laying await was known of Saul. And they -watched the gates day and night to kill him. - -9:25 Then the disciples took him by night, and let him down by the -wall in a basket. - -9:26 And when Saul was come to Jerusalem, he assayed to join himself -to the disciples: but they were all afraid of him, and believed not -that he was a disciple. - -9:27 But Barnabas took him, and brought him to the apostles, and -declared unto them how he had seen the Lord in the way, and that he -had spoken to him, and how he had preached boldly at Damascus in the -name of Jesus. - -9:28 And he was with them coming in and going out at Jerusalem. - -9:29 And he spake boldly in the name of the Lord Jesus, and disputed -against the Grecians: but they went about to slay him. - -9:30 Which when the brethren knew, they brought him down to Caesarea, -and sent him forth to Tarsus. - -9:31 Then had the churches rest throughout all Judaea and Galilee and -Samaria, and were edified; and walking in the fear of the Lord, and in -the comfort of the Holy Ghost, were multiplied. - -9:32 And it came to pass, as Peter passed throughout all quarters, he -came down also to the saints which dwelt at Lydda. - -9:33 And there he found a certain man named Aeneas, which had kept his -bed eight years, and was sick of the palsy. - -9:34 And Peter said unto him, Aeneas, Jesus Christ maketh thee whole: -arise, and make thy bed. And he arose immediately. - -9:35 And all that dwelt at Lydda and Saron saw him, and turned to the -Lord. - -9:36 Now there was at Joppa a certain disciple named Tabitha, which by -interpretation is called Dorcas: this woman was full of good works and -almsdeeds which she did. - -9:37 And it came to pass in those days, that she was sick, and died: -whom when they had washed, they laid her in an upper chamber. - -9:38 And forasmuch as Lydda was nigh to Joppa, and the disciples had -heard that Peter was there, they sent unto him two men, desiring him -that he would not delay to come to them. - -9:39 Then Peter arose and went with them. When he was come, they -brought him into the upper chamber: and all the widows stood by him -weeping, and shewing the coats and garments which Dorcas made, while -she was with them. - -9:40 But Peter put them all forth, and kneeled down, and prayed; and -turning him to the body said, Tabitha, arise. And she opened her eyes: -and when she saw Peter, she sat up. - -9:41 And he gave her his hand, and lifted her up, and when he had -called the saints and widows, presented her alive. - -9:42 And it was known throughout all Joppa; and many believed in the -Lord. - -9:43 And it came to pass, that he tarried many days in Joppa with one -Simon a tanner. - -10:1 There was a certain man in Caesarea called Cornelius, a centurion -of the band called the Italian band, 10:2 A devout man, and one that -feared God with all his house, which gave much alms to the people, and -prayed to God alway. - -10:3 He saw in a vision evidently about the ninth hour of the day an -angel of God coming in to him, and saying unto him, Cornelius. - -10:4 And when he looked on him, he was afraid, and said, What is it, -Lord? And he said unto him, Thy prayers and thine alms are come up -for a memorial before God. - -10:5 And now send men to Joppa, and call for one Simon, whose surname -is Peter: 10:6 He lodgeth with one Simon a tanner, whose house is by -the sea side: he shall tell thee what thou oughtest to do. - -10:7 And when the angel which spake unto Cornelius was departed, he -called two of his household servants, and a devout soldier of them -that waited on him continually; 10:8 And when he had declared all -these things unto them, he sent them to Joppa. - -10:9 On the morrow, as they went on their journey, and drew nigh unto -the city, Peter went up upon the housetop to pray about the sixth -hour: 10:10 And he became very hungry, and would have eaten: but while -they made ready, he fell into a trance, 10:11 And saw heaven opened, -and a certain vessel descending upon him, as it had been a great sheet -knit at the four corners, and let down to the earth: 10:12 Wherein -were all manner of fourfooted beasts of the earth, and wild beasts, -and creeping things, and fowls of the air. - -10:13 And there came a voice to him, Rise, Peter; kill, and eat. - -10:14 But Peter said, Not so, Lord; for I have never eaten any thing -that is common or unclean. - -10:15 And the voice spake unto him again the second time, What God -hath cleansed, that call not thou common. - -10:16 This was done thrice: and the vessel was received up again into -heaven. - -10:17 Now while Peter doubted in himself what this vision which he had -seen should mean, behold, the men which were sent from Cornelius had -made enquiry for Simon's house, and stood before the gate, 10:18 And -called, and asked whether Simon, which was surnamed Peter, were lodged -there. - -10:19 While Peter thought on the vision, the Spirit said unto him, -Behold, three men seek thee. - -10:20 Arise therefore, and get thee down, and go with them, doubting -nothing: for I have sent them. - -10:21 Then Peter went down to the men which were sent unto him from -Cornelius; and said, Behold, I am he whom ye seek: what is the cause -wherefore ye are come? 10:22 And they said, Cornelius the centurion, -a just man, and one that feareth God, and of good report among all the -nation of the Jews, was warned from God by an holy angel to send for -thee into his house, and to hear words of thee. - -10:23 Then called he them in, and lodged them. And on the morrow Peter -went away with them, and certain brethren from Joppa accompanied him. - -10:24 And the morrow after they entered into Caesarea. And Cornelius -waited for them, and he had called together his kinsmen and near -friends. - -10:25 And as Peter was coming in, Cornelius met him, and fell down at -his feet, and worshipped him. - -10:26 But Peter took him up, saying, Stand up; I myself also am a man. - -10:27 And as he talked with him, he went in, and found many that were -come together. - -10:28 And he said unto them, Ye know how that it is an unlawful thing -for a man that is a Jew to keep company, or come unto one of another -nation; but God hath shewed me that I should not call any man common -or unclean. - -10:29 Therefore came I unto you without gainsaying, as soon as I was -sent for: I ask therefore for what intent ye have sent for me? 10:30 -And Cornelius said, Four days ago I was fasting until this hour; and -at the ninth hour I prayed in my house, and, behold, a man stood -before me in bright clothing, 10:31 And said, Cornelius, thy prayer is -heard, and thine alms are had in remembrance in the sight of God. - -10:32 Send therefore to Joppa, and call hither Simon, whose surname is -Peter; he is lodged in the house of one Simon a tanner by the sea -side: who, when he cometh, shall speak unto thee. - -10:33 Immediately therefore I sent to thee; and thou hast well done -that thou art come. Now therefore are we all here present before God, -to hear all things that are commanded thee of God. - -10:34 Then Peter opened his mouth, and said, Of a truth I perceive -that God is no respecter of persons: 10:35 But in every nation he that -feareth him, and worketh righteousness, is accepted with him. - -10:36 The word which God sent unto the children of Israel, preaching -peace by Jesus Christ: (he is Lord of all:) 10:37 That word, I say, ye -know, which was published throughout all Judaea, and began from -Galilee, after the baptism which John preached; 10:38 How God anointed -Jesus of Nazareth with the Holy Ghost and with power: who went about -doing good, and healing all that were oppressed of the devil; for God -was with him. - -10:39 And we are witnesses of all things which he did both in the land -of the Jews, and in Jerusalem; whom they slew and hanged on a tree: -10:40 Him God raised up the third day, and shewed him openly; 10:41 -Not to all the people, but unto witnesses chosen before God, even to -us, who did eat and drink with him after he rose from the dead. - -10:42 And he commanded us to preach unto the people, and to testify -that it is he which was ordained of God to be the Judge of quick and -dead. - -10:43 To him give all the prophets witness, that through his name -whosoever believeth in him shall receive remission of sins. - -10:44 While Peter yet spake these words, the Holy Ghost fell on all -them which heard the word. - -10:45 And they of the circumcision which believed were astonished, as -many as came with Peter, because that on the Gentiles also was poured -out the gift of the Holy Ghost. - -10:46 For they heard them speak with tongues, and magnify God. Then -answered Peter, 10:47 Can any man forbid water, that these should not -be baptized, which have received the Holy Ghost as well as we? 10:48 -And he commanded them to be baptized in the name of the Lord. Then -prayed they him to tarry certain days. - -11:1 And the apostles and brethren that were in Judaea heard that the -Gentiles had also received the word of God. - -11:2 And when Peter was come up to Jerusalem, they that were of the -circumcision contended with him, 11:3 Saying, Thou wentest in to men -uncircumcised, and didst eat with them. - -11:4 But Peter rehearsed the matter from the beginning, and expounded -it by order unto them, saying, 11:5 I was in the city of Joppa -praying: and in a trance I saw a vision, A certain vessel descend, as -it had been a great sheet, let down from heaven by four corners; and -it came even to me: 11:6 Upon the which when I had fastened mine eyes, -I considered, and saw fourfooted beasts of the earth, and wild beasts, -and creeping things, and fowls of the air. - -11:7 And I heard a voice saying unto me, Arise, Peter; slay and eat. - -11:8 But I said, Not so, Lord: for nothing common or unclean hath at -any time entered into my mouth. - -11:9 But the voice answered me again from heaven, What God hath -cleansed, that call not thou common. - -11:10 And this was done three times: and all were drawn up again into -heaven. - -11:11 And, behold, immediately there were three men already come unto -the house where I was, sent from Caesarea unto me. - -11:12 And the Spirit bade me go with them, nothing doubting. Moreover -these six brethren accompanied me, and we entered into the man's -house: 11:13 And he shewed us how he had seen an angel in his house, -which stood and said unto him, Send men to Joppa, and call for Simon, -whose surname is Peter; 11:14 Who shall tell thee words, whereby thou -and all thy house shall be saved. - -11:15 And as I began to speak, the Holy Ghost fell on them, as on us -at the beginning. - -11:16 Then remembered I the word of the Lord, how that he said, John -indeed baptized with water; but ye shall be baptized with the Holy -Ghost. - -11:17 Forasmuch then as God gave them the like gift as he did unto us, -who believed on the Lord Jesus Christ; what was I, that I could -withstand God? 11:18 When they heard these things, they held their -peace, and glorified God, saying, Then hath God also to the Gentiles -granted repentance unto life. - -11:19 Now they which were scattered abroad upon the persecution that -arose about Stephen travelled as far as Phenice, and Cyprus, and -Antioch, preaching the word to none but unto the Jews only. - -11:20 And some of them were men of Cyprus and Cyrene, which, when they -were come to Antioch, spake unto the Grecians, preaching the LORD -Jesus. - -11:21 And the hand of the Lord was with them: and a great number -believed, and turned unto the Lord. - -11:22 Then tidings of these things came unto the ears of the church -which was in Jerusalem: and they sent forth Barnabas, that he should -go as far as Antioch. - -11:23 Who, when he came, and had seen the grace of God, was glad, and -exhorted them all, that with purpose of heart they would cleave unto -the Lord. - -11:24 For he was a good man, and full of the Holy Ghost and of faith: -and much people was added unto the Lord. - -11:25 Then departed Barnabas to Tarsus, for to seek Saul: 11:26 And -when he had found him, he brought him unto Antioch. And it came to -pass, that a whole year they assembled themselves with the church, and -taught much people. And the disciples were called Christians first in -Antioch. - -11:27 And in these days came prophets from Jerusalem unto Antioch. - -11:28 And there stood up one of them named Agabus, and signified by -the Spirit that there should be great dearth throughout all the world: -which came to pass in the days of Claudius Caesar. - -11:29 Then the disciples, every man according to his ability, -determined to send relief unto the brethren which dwelt in Judaea: -11:30 Which also they did, and sent it to the elders by the hands of -Barnabas and Saul. - -12:1 Now about that time Herod the king stretched forth his hands to -vex certain of the church. - -12:2 And he killed James the brother of John with the sword. - -12:3 And because he saw it pleased the Jews, he proceeded further to -take Peter also. (Then were the days of unleavened bread.) 12:4 And -when he had apprehended him, he put him in prison, and delivered him -to four quaternions of soldiers to keep him; intending after Easter to -bring him forth to the people. - -12:5 Peter therefore was kept in prison: but prayer was made without -ceasing of the church unto God for him. - -12:6 And when Herod would have brought him forth, the same night Peter -was sleeping between two soldiers, bound with two chains: and the -keepers before the door kept the prison. - -12:7 And, behold, the angel of the Lord came upon him, and a light -shined in the prison: and he smote Peter on the side, and raised him -up, saying, Arise up quickly. And his chains fell off from his hands. - -12:8 And the angel said unto him, Gird thyself, and bind on thy -sandals. - -And so he did. And he saith unto him, Cast thy garment about thee, and -follow me. - -12:9 And he went out, and followed him; and wist not that it was true -which was done by the angel; but thought he saw a vision. - -12:10 When they were past the first and the second ward, they came -unto the iron gate that leadeth unto the city; which opened to them of -his own accord: and they went out, and passed on through one street; -and forthwith the angel departed from him. - -12:11 And when Peter was come to himself, he said, Now I know of a -surety, that the LORD hath sent his angel, and hath delivered me out -of the hand of Herod, and from all the expectation of the people of -the Jews. - -12:12 And when he had considered the thing, he came to the house of -Mary the mother of John, whose surname was Mark; where many were -gathered together praying. - -12:13 And as Peter knocked at the door of the gate, a damsel came to -hearken, named Rhoda. - -12:14 And when she knew Peter's voice, she opened not the gate for -gladness, but ran in, and told how Peter stood before the gate. - -12:15 And they said unto her, Thou art mad. But she constantly -affirmed that it was even so. Then said they, It is his angel. - -12:16 But Peter continued knocking: and when they had opened the door, -and saw him, they were astonished. - -12:17 But he, beckoning unto them with the hand to hold their peace, -declared unto them how the Lord had brought him out of the prison. And -he said, Go shew these things unto James, and to the brethren. And he -departed, and went into another place. - -12:18 Now as soon as it was day, there was no small stir among the -soldiers, what was become of Peter. - -12:19 And when Herod had sought for him, and found him not, he -examined the keepers, and commanded that they should be put to death. -And he went down from Judaea to Caesarea, and there abode. - -12:20 And Herod was highly displeased with them of Tyre and Sidon: but -they came with one accord to him, and, having made Blastus the king's -chamberlain their friend, desired peace; because their country was -nourished by the king's country. - -12:21 And upon a set day Herod, arrayed in royal apparel, sat upon his -throne, and made an oration unto them. - -12:22 And the people gave a shout, saying, It is the voice of a god, -and not of a man. - -12:23 And immediately the angel of the Lord smote him, because he gave -not God the glory: and he was eaten of worms, and gave up the ghost. - -12:24 But the word of God grew and multiplied. - -12:25 And Barnabas and Saul returned from Jerusalem, when they had -fulfilled their ministry, and took with them John, whose surname was -Mark. - -13:1 Now there were in the church that was at Antioch certain prophets -and teachers; as Barnabas, and Simeon that was called Niger, and -Lucius of Cyrene, and Manaen, which had been brought up with Herod the -tetrarch, and Saul. - -13:2 As they ministered to the Lord, and fasted, the Holy Ghost said, -Separate me Barnabas and Saul for the work whereunto I have called -them. - -13:3 And when they had fasted and prayed, and laid their hands on -them, they sent them away. - -13:4 So they, being sent forth by the Holy Ghost, departed unto -Seleucia; and from thence they sailed to Cyprus. - -13:5 And when they were at Salamis, they preached the word of God in -the synagogues of the Jews: and they had also John to their minister. - -13:6 And when they had gone through the isle unto Paphos, they found a -certain sorcerer, a false prophet, a Jew, whose name was Barjesus: -13:7 Which was with the deputy of the country, Sergius Paulus, a -prudent man; who called for Barnabas and Saul, and desired to hear the -word of God. - -13:8 But Elymas the sorcerer (for so is his name by interpretation) -withstood them, seeking to turn away the deputy from the faith. - -13:9 Then Saul, (who also is called Paul,) filled with the Holy Ghost, -set his eyes on him. - -13:10 And said, O full of all subtilty and all mischief, thou child of -the devil, thou enemy of all righteousness, wilt thou not cease to -pervert the right ways of the Lord? 13:11 And now, behold, the hand -of the Lord is upon thee, and thou shalt be blind, not seeing the sun -for a season. And immediately there fell on him a mist and a darkness; -and he went about seeking some to lead him by the hand. - -13:12 Then the deputy, when he saw what was done, believed, being -astonished at the doctrine of the Lord. - -13:13 Now when Paul and his company loosed from Paphos, they came to -Perga in Pamphylia: and John departing from them returned to -Jerusalem. - -13:14 But when they departed from Perga, they came to Antioch in -Pisidia, and went into the synagogue on the sabbath day, and sat down. - -13:15 And after the reading of the law and the prophets the rulers of -the synagogue sent unto them, saying, Ye men and brethren, if ye have -any word of exhortation for the people, say on. - -13:16 Then Paul stood up, and beckoning with his hand said, Men of -Israel, and ye that fear God, give audience. - -13:17 The God of this people of Israel chose our fathers, and exalted -the people when they dwelt as strangers in the land of Egypt, and with -an high arm brought he them out of it. - -13:18 And about the time of forty years suffered he their manners in -the wilderness. - -13:19 And when he had destroyed seven nations in the land of Chanaan, -he divided their land to them by lot. - -13:20 And after that he gave unto them judges about the space of four -hundred and fifty years, until Samuel the prophet. - -13:21 And afterward they desired a king: and God gave unto them Saul -the son of Cis, a man of the tribe of Benjamin, by the space of forty -years. - -13:22 And when he had removed him, he raised up unto them David to be -their king; to whom also he gave their testimony, and said, I have -found David the son of Jesse, a man after mine own heart, which shall -fulfil all my will. - -13:23 Of this man's seed hath God according to his promise raised unto -Israel a Saviour, Jesus: 13:24 When John had first preached before his -coming the baptism of repentance to all the people of Israel. - -13:25 And as John fulfilled his course, he said, Whom think ye that I -am? I am not he. But, behold, there cometh one after me, whose shoes -of his feet I am not worthy to loose. - -13:26 Men and brethren, children of the stock of Abraham, and -whosoever among you feareth God, to you is the word of this salvation -sent. - -13:27 For they that dwell at Jerusalem, and their rulers, because they -knew him not, nor yet the voices of the prophets which are read every -sabbath day, they have fulfilled them in condemning him. - -13:28 And though they found no cause of death in him, yet desired they -Pilate that he should be slain. - -13:29 And when they had fulfilled all that was written of him, they -took him down from the tree, and laid him in a sepulchre. - -13:30 But God raised him from the dead: 13:31 And he was seen many -days of them which came up with him from Galilee to Jerusalem, who are -his witnesses unto the people. - -13:32 And we declare unto you glad tidings, how that the promise which -was made unto the fathers, 13:33 God hath fulfilled the same unto us -their children, in that he hath raised up Jesus again; as it is also -written in the second psalm, Thou art my Son, this day have I begotten -thee. - -13:34 And as concerning that he raised him up from the dead, now no -more to return to corruption, he said on this wise, I will give you -the sure mercies of David. - -13:35 Wherefore he saith also in another psalm, Thou shalt not suffer -thine Holy One to see corruption. - -13:36 For David, after he had served his own generation by the will of -God, fell on sleep, and was laid unto his fathers, and saw corruption: -13:37 But he, whom God raised again, saw no corruption. - -13:38 Be it known unto you therefore, men and brethren, that through -this man is preached unto you the forgiveness of sins: 13:39 And by -him all that believe are justified from all things, from which ye -could not be justified by the law of Moses. - -13:40 Beware therefore, lest that come upon you, which is spoken of in -the prophets; 13:41 Behold, ye despisers, and wonder, and perish: for -I work a work in your days, a work which ye shall in no wise believe, -though a man declare it unto you. - -13:42 And when the Jews were gone out of the synagogue, the Gentiles -besought that these words might be preached to them the next sabbath. - -13:43 Now when the congregation was broken up, many of the Jews and -religious proselytes followed Paul and Barnabas: who, speaking to -them, persuaded them to continue in the grace of God. - -13:44 And the next sabbath day came almost the whole city together to -hear the word of God. - -13:45 But when the Jews saw the multitudes, they were filled with -envy, and spake against those things which were spoken by Paul, -contradicting and blaspheming. - -13:46 Then Paul and Barnabas waxed bold, and said, It was necessary -that the word of God should first have been spoken to you: but seeing -ye put it from you, and judge yourselves unworthy of everlasting life, -lo, we turn to the Gentiles. - -13:47 For so hath the Lord commanded us, saying, I have set thee to be -a light of the Gentiles, that thou shouldest be for salvation unto the -ends of the earth. - -13:48 And when the Gentiles heard this, they were glad, and glorified -the word of the Lord: and as many as were ordained to eternal life -believed. - -13:49 And the word of the Lord was published throughout all the -region. - -13:50 But the Jews stirred up the devout and honourable women, and the -chief men of the city, and raised persecution against Paul and -Barnabas, and expelled them out of their coasts. - -13:51 But they shook off the dust of their feet against them, and came -unto Iconium. - -13:52 And the disciples were filled with joy, and with the Holy Ghost. - -14:1 And it came to pass in Iconium, that they went both together into -the synagogue of the Jews, and so spake, that a great multitude both -of the Jews and also of the Greeks believed. - -14:2 But the unbelieving Jews stirred up the Gentiles, and made their -minds evil affected against the brethren. - -14:3 Long time therefore abode they speaking boldly in the Lord, which -gave testimony unto the word of his grace, and granted signs and -wonders to be done by their hands. - -14:4 But the multitude of the city was divided: and part held with the -Jews, and part with the apostles. - -14:5 And when there was an assault made both of the Gentiles, and also -of the Jews with their rulers, to use them despitefully, and to stone -them, 14:6 They were ware of it, and fled unto Lystra and Derbe, -cities of Lycaonia, and unto the region that lieth round about: 14:7 -And there they preached the gospel. - -14:8 And there sat a certain man at Lystra, impotent in his feet, -being a cripple from his mother's womb, who never had walked: 14:9 The -same heard Paul speak: who stedfastly beholding him, and perceiving -that he had faith to be healed, 14:10 Said with a loud voice, Stand -upright on thy feet. And he leaped and walked. - -14:11 And when the people saw what Paul had done, they lifted up their -voices, saying in the speech of Lycaonia, The gods are come down to us -in the likeness of men. - -14:12 And they called Barnabas, Jupiter; and Paul, Mercurius, because -he was the chief speaker. - -14:13 Then the priest of Jupiter, which was before their city, brought -oxen and garlands unto the gates, and would have done sacrifice with -the people. - -14:14 Which when the apostles, Barnabas and Paul, heard of, they rent -their clothes, and ran in among the people, crying out, 14:15 And -saying, Sirs, why do ye these things? We also are men of like passions -with you, and preach unto you that ye should turn from these vanities -unto the living God, which made heaven, and earth, and the sea, and -all things that are therein: 14:16 Who in times past suffered all -nations to walk in their own ways. - -14:17 Nevertheless he left not himself without witness, in that he did -good, and gave us rain from heaven, and fruitful seasons, filling our -hearts with food and gladness. - -14:18 And with these sayings scarce restrained they the people, that -they had not done sacrifice unto them. - -14:19 And there came thither certain Jews from Antioch and Iconium, -who persuaded the people, and having stoned Paul, drew him out of the -city, supposing he had been dead. - -14:20 Howbeit, as the disciples stood round about him, he rose up, and -came into the city: and the next day he departed with Barnabas to -Derbe. - -14:21 And when they had preached the gospel to that city, and had -taught many, they returned again to Lystra, and to Iconium, and -Antioch, 14:22 Confirming the souls of the disciples, and exhorting -them to continue in the faith, and that we must through much -tribulation enter into the kingdom of God. - -14:23 And when they had ordained them elders in every church, and had -prayed with fasting, they commended them to the Lord, on whom they -believed. - -14:24 And after they had passed throughout Pisidia, they came to -Pamphylia. - -14:25 And when they had preached the word in Perga, they went down -into Attalia: 14:26 And thence sailed to Antioch, from whence they had -been recommended to the grace of God for the work which they -fulfilled. - -14:27 And when they were come, and had gathered the church together, -they rehearsed all that God had done with them, and how he had opened -the door of faith unto the Gentiles. - -14:28 And there they abode long time with the disciples. - -15:1 And certain men which came down from Judaea taught the brethren, -and said, Except ye be circumcised after the manner of Moses, ye -cannot be saved. - -15:2 When therefore Paul and Barnabas had no small dissension and -disputation with them, they determined that Paul and Barnabas, and -certain other of them, should go up to Jerusalem unto the apostles and -elders about this question. - -15:3 And being brought on their way by the church, they passed through -Phenice and Samaria, declaring the conversion of the Gentiles: and -they caused great joy unto all the brethren. - -15:4 And when they were come to Jerusalem, they were received of the -church, and of the apostles and elders, and they declared all things -that God had done with them. - -15:5 But there rose up certain of the sect of the Pharisees which -believed, saying, That it was needful to circumcise them, and to -command them to keep the law of Moses. - -15:6 And the apostles and elders came together for to consider of this -matter. - -15:7 And when there had been much disputing, Peter rose up, and said -unto them, Men and brethren, ye know how that a good while ago God -made choice among us, that the Gentiles by my mouth should hear the -word of the gospel, and believe. - -15:8 And God, which knoweth the hearts, bare them witness, giving them -the Holy Ghost, even as he did unto us; 15:9 And put no difference -between us and them, purifying their hearts by faith. - -15:10 Now therefore why tempt ye God, to put a yoke upon the neck of -the disciples, which neither our fathers nor we were able to bear? -15:11 But we believe that through the grace of the LORD Jesus Christ -we shall be saved, even as they. - -15:12 Then all the multitude kept silence, and gave audience to -Barnabas and Paul, declaring what miracles and wonders God had wrought -among the Gentiles by them. - -15:13 And after they had held their peace, James answered, saying, Men -and brethren, hearken unto me: 15:14 Simeon hath declared how God at -the first did visit the Gentiles, to take out of them a people for his -name. - -15:15 And to this agree the words of the prophets; as it is written, -15:16 After this I will return, and will build again the tabernacle of -David, which is fallen down; and I will build again the ruins thereof, -and I will set it up: 15:17 That the residue of men might seek after -the Lord, and all the Gentiles, upon whom my name is called, saith the -Lord, who doeth all these things. - -15:18 Known unto God are all his works from the beginning of the -world. - -15:19 Wherefore my sentence is, that we trouble not them, which from -among the Gentiles are turned to God: 15:20 But that we write unto -them, that they abstain from pollutions of idols, and from -fornication, and from things strangled, and from blood. - -15:21 For Moses of old time hath in every city them that preach him, -being read in the synagogues every sabbath day. - -15:22 Then pleased it the apostles and elders with the whole church, -to send chosen men of their own company to Antioch with Paul and -Barnabas; namely, Judas surnamed Barsabas and Silas, chief men among -the brethren: 15:23 And they wrote letters by them after this manner; -The apostles and elders and brethren send greeting unto the brethren -which are of the Gentiles in Antioch and Syria and Cilicia. - -15:24 Forasmuch as we have heard, that certain which went out from us -have troubled you with words, subverting your souls, saying, Ye must -be circumcised, and keep the law: to whom we gave no such commandment: -15:25 It seemed good unto us, being assembled with one accord, to send -chosen men unto you with our beloved Barnabas and Paul, 15:26 Men that -have hazarded their lives for the name of our Lord Jesus Christ. - -15:27 We have sent therefore Judas and Silas, who shall also tell you -the same things by mouth. - -15:28 For it seemed good to the Holy Ghost, and to us, to lay upon you -no greater burden than these necessary things; 15:29 That ye abstain -from meats offered to idols, and from blood, and from things -strangled, and from fornication: from which if ye keep yourselves, ye -shall do well. Fare ye well. - -15:30 So when they were dismissed, they came to Antioch: and when they -had gathered the multitude together, they delivered the epistle: 15:31 -Which when they had read, they rejoiced for the consolation. - -15:32 And Judas and Silas, being prophets also themselves, exhorted -the brethren with many words, and confirmed them. - -15:33 And after they had tarried there a space, they were let go in -peace from the brethren unto the apostles. - -15:34 Notwithstanding it pleased Silas to abide there still. - -15:35 Paul also and Barnabas continued in Antioch, teaching and -preaching the word of the Lord, with many others also. - -15:36 And some days after Paul said unto Barnabas, Let us go again and -visit our brethren in every city where we have preached the word of -the LORD, and see how they do. - -15:37 And Barnabas determined to take with them John, whose surname -was Mark. - -15:38 But Paul thought not good to take him with them, who departed -from them from Pamphylia, and went not with them to the work. - -15:39 And the contention was so sharp between them, that they departed -asunder one from the other: and so Barnabas took Mark, and sailed unto -Cyprus; 15:40 And Paul chose Silas, and departed, being recommended by -the brethren unto the grace of God. - -15:41 And he went through Syria and Cilicia, confirming the churches. - -16:1 Then came he to Derbe and Lystra: and, behold, a certain disciple -was there, named Timotheus, the son of a certain woman, which was a -Jewess, and believed; but his father was a Greek: 16:2 Which was well -reported of by the brethren that were at Lystra and Iconium. - -16:3 Him would Paul have to go forth with him; and took and -circumcised him because of the Jews which were in those quarters: for -they knew all that his father was a Greek. - -16:4 And as they went through the cities, they delivered them the -decrees for to keep, that were ordained of the apostles and elders -which were at Jerusalem. - -16:5 And so were the churches established in the faith, and increased -in number daily. - -16:6 Now when they had gone throughout Phrygia and the region of -Galatia, and were forbidden of the Holy Ghost to preach the word in -Asia, 16:7 After they were come to Mysia, they assayed to go into -Bithynia: but the Spirit suffered them not. - -16:8 And they passing by Mysia came down to Troas. - -16:9 And a vision appeared to Paul in the night; There stood a man of -Macedonia, and prayed him, saying, Come over into Macedonia, and help -us. - -16:10 And after he had seen the vision, immediately we endeavoured to -go into Macedonia, assuredly gathering that the Lord had called us for -to preach the gospel unto them. - -16:11 Therefore loosing from Troas, we came with a straight course to -Samothracia, and the next day to Neapolis; 16:12 And from thence to -Philippi, which is the chief city of that part of Macedonia, and a -colony: and we were in that city abiding certain days. - -16:13 And on the sabbath we went out of the city by a river side, -where prayer was wont to be made; and we sat down, and spake unto the -women which resorted thither. - -16:14 And a certain woman named Lydia, a seller of purple, of the city -of Thyatira, which worshipped God, heard us: whose heart the Lord -opened, that she attended unto the things which were spoken of Paul. - -16:15 And when she was baptized, and her household, she besought us, -saying, If ye have judged me to be faithful to the Lord, come into my -house, and abide there. And she constrained us. - -16:16 And it came to pass, as we went to prayer, a certain damsel -possessed with a spirit of divination met us, which brought her -masters much gain by soothsaying: 16:17 The same followed Paul and us, -and cried, saying, These men are the servants of the most high God, -which shew unto us the way of salvation. - -16:18 And this did she many days. But Paul, being grieved, turned and -said to the spirit, I command thee in the name of Jesus Christ to come -out of her. - -And he came out the same hour. - -16:19 And when her masters saw that the hope of their gains was gone, -they caught Paul and Silas, and drew them into the marketplace unto -the rulers, 16:20 And brought them to the magistrates, saying, These -men, being Jews, do exceedingly trouble our city, 16:21 And teach -customs, which are not lawful for us to receive, neither to observe, -being Romans. - -16:22 And the multitude rose up together against them: and the -magistrates rent off their clothes, and commanded to beat them. - -16:23 And when they had laid many stripes upon them, they cast them -into prison, charging the jailor to keep them safely: 16:24 Who, -having received such a charge, thrust them into the inner prison, and -made their feet fast in the stocks. - -16:25 And at midnight Paul and Silas prayed, and sang praises unto -God: and the prisoners heard them. - -16:26 And suddenly there was a great earthquake, so that the -foundations of the prison were shaken: and immediately all the doors -were opened, and every one's bands were loosed. - -16:27 And the keeper of the prison awaking out of his sleep, and -seeing the prison doors open, he drew out his sword, and would have -killed himself, supposing that the prisoners had been fled. - -16:28 But Paul cried with a loud voice, saying, Do thyself no harm: -for we are all here. - -16:29 Then he called for a light, and sprang in, and came trembling, -and fell down before Paul and Silas, 16:30 And brought them out, and -said, Sirs, what must I do to be saved? 16:31 And they said, Believe -on the Lord Jesus Christ, and thou shalt be saved, and thy house. - -16:32 And they spake unto him the word of the Lord, and to all that -were in his house. - -16:33 And he took them the same hour of the night, and washed their -stripes; and was baptized, he and all his, straightway. - -16:34 And when he had brought them into his house, he set meat before -them, and rejoiced, believing in God with all his house. - -16:35 And when it was day, the magistrates sent the serjeants, saying, -Let those men go. - -16:36 And the keeper of the prison told this saying to Paul, The -magistrates have sent to let you go: now therefore depart, and go in -peace. - -16:37 But Paul said unto them, They have beaten us openly uncondemned, -being Romans, and have cast us into prison; and now do they thrust us -out privily? nay verily; but let them come themselves and fetch us -out. - -16:38 And the serjeants told these words unto the magistrates: and -they feared, when they heard that they were Romans. - -16:39 And they came and besought them, and brought them out, and -desired them to depart out of the city. - -16:40 And they went out of the prison, and entered into the house of -Lydia: and when they had seen the brethren, they comforted them, and -departed. - -17:1 Now when they had passed through Amphipolis and Apollonia, they -came to Thessalonica, where was a synagogue of the Jews: 17:2 And -Paul, as his manner was, went in unto them, and three sabbath days -reasoned with them out of the scriptures, 17:3 Opening and alleging, -that Christ must needs have suffered, and risen again from the dead; -and that this Jesus, whom I preach unto you, is Christ. - -17:4 And some of them believed, and consorted with Paul and Silas; and -of the devout Greeks a great multitude, and of the chief women not a -few. - -17:5 But the Jews which believed not, moved with envy, took unto them -certain lewd fellows of the baser sort, and gathered a company, and -set all the city on an uproar, and assaulted the house of Jason, and -sought to bring them out to the people. - -17:6 And when they found them not, they drew Jason and certain -brethren unto the rulers of the city, crying, These that have turned -the world upside down are come hither also; 17:7 Whom Jason hath -received: and these all do contrary to the decrees of Caesar, saying -that there is another king, one Jesus. - -17:8 And they troubled the people and the rulers of the city, when -they heard these things. - -17:9 And when they had taken security of Jason, and of the other, they -let them go. - -17:10 And the brethren immediately sent away Paul and Silas by night -unto Berea: who coming thither went into the synagogue of the Jews. - -17:11 These were more noble than those in Thessalonica, in that they -received the word with all readiness of mind, and searched the -scriptures daily, whether those things were so. - -17:12 Therefore many of them believed; also of honourable women which -were Greeks, and of men, not a few. - -17:13 But when the Jews of Thessalonica had knowledge that the word of -God was preached of Paul at Berea, they came thither also, and stirred -up the people. - -17:14 And then immediately the brethren sent away Paul to go as it -were to the sea: but Silas and Timotheus abode there still. - -17:15 And they that conducted Paul brought him unto Athens: and -receiving a commandment unto Silas and Timotheus for to come to him -with all speed, they departed. - -17:16 Now while Paul waited for them at Athens, his spirit was stirred -in him, when he saw the city wholly given to idolatry. - -17:17 Therefore disputed he in the synagogue with the Jews, and with -the devout persons, and in the market daily with them that met with -him. - -17:18 Then certain philosophers of the Epicureans, and of the Stoicks, -encountered him. And some said, What will this babbler say? other -some, He seemeth to be a setter forth of strange gods: because he -preached unto them Jesus, and the resurrection. - -17:19 And they took him, and brought him unto Areopagus, saying, May -we know what this new doctrine, whereof thou speakest, is? 17:20 For -thou bringest certain strange things to our ears: we would know -therefore what these things mean. - -17:21 (For all the Athenians and strangers which were there spent -their time in nothing else, but either to tell, or to hear some new -thing.) 17:22 Then Paul stood in the midst of Mars' hill, and said, -Ye men of Athens, I perceive that in all things ye are too -superstitious. - -17:23 For as I passed by, and beheld your devotions, I found an altar -with this inscription, TO THE UNKNOWN GOD. Whom therefore ye -ignorantly worship, him declare I unto you. - -17:24 God that made the world and all things therein, seeing that he -is Lord of heaven and earth, dwelleth not in temples made with hands; -17:25 Neither is worshipped with men's hands, as though he needed any -thing, seeing he giveth to all life, and breath, and all things; 17:26 -And hath made of one blood all nations of men for to dwell on all the -face of the earth, and hath determined the times before appointed, and -the bounds of their habitation; 17:27 That they should seek the Lord, -if haply they might feel after him, and find him, though he be not far -from every one of us: 17:28 For in him we live, and move, and have our -being; as certain also of your own poets have said, For we are also -his offspring. - -17:29 Forasmuch then as we are the offspring of God, we ought not to -think that the Godhead is like unto gold, or silver, or stone, graven -by art and man's device. - -17:30 And the times of this ignorance God winked at; but now -commandeth all men every where to repent: 17:31 Because he hath -appointed a day, in the which he will judge the world in righteousness -by that man whom he hath ordained; whereof he hath given assurance -unto all men, in that he hath raised him from the dead. - -17:32 And when they heard of the resurrection of the dead, some -mocked: and others said, We will hear thee again of this matter. - -17:33 So Paul departed from among them. - -17:34 Howbeit certain men clave unto him, and believed: among the -which was Dionysius the Areopagite, and a woman named Damaris, and -others with them. - -18:1 After these things Paul departed from Athens, and came to -Corinth; 18:2 And found a certain Jew named Aquila, born in Pontus, -lately come from Italy, with his wife Priscilla; (because that -Claudius had commanded all Jews to depart from Rome:) and came unto -them. - -18:3 And because he was of the same craft, he abode with them, and -wrought: for by their occupation they were tentmakers. - -18:4 And he reasoned in the synagogue every sabbath, and persuaded the -Jews and the Greeks. - -18:5 And when Silas and Timotheus were come from Macedonia, Paul was -pressed in the spirit, and testified to the Jews that Jesus was -Christ. - -18:6 And when they opposed themselves, and blasphemed, he shook his -raiment, and said unto them, Your blood be upon your own heads; I am -clean; from henceforth I will go unto the Gentiles. - -18:7 And he departed thence, and entered into a certain man's house, -named Justus, one that worshipped God, whose house joined hard to the -synagogue. - -18:8 And Crispus, the chief ruler of the synagogue, believed on the -Lord with all his house; and many of the Corinthians hearing believed, -and were baptized. - -18:9 Then spake the Lord to Paul in the night by a vision, Be not -afraid, but speak, and hold not thy peace: 18:10 For I am with thee, -and no man shall set on thee to hurt thee: for I have much people in -this city. - -18:11 And he continued there a year and six months, teaching the word -of God among them. - -18:12 And when Gallio was the deputy of Achaia, the Jews made -insurrection with one accord against Paul, and brought him to the -judgment seat, 18:13 Saying, This fellow persuadeth men to worship God -contrary to the law. - -18:14 And when Paul was now about to open his mouth, Gallio said unto -the Jews, If it were a matter of wrong or wicked lewdness, O ye Jews, -reason would that I should bear with you: 18:15 But if it be a -question of words and names, and of your law, look ye to it; for I -will be no judge of such matters. - -18:16 And he drave them from the judgment seat. - -18:17 Then all the Greeks took Sosthenes, the chief ruler of the -synagogue, and beat him before the judgment seat. And Gallio cared for -none of those things. - -18:18 And Paul after this tarried there yet a good while, and then -took his leave of the brethren, and sailed thence into Syria, and with -him Priscilla and Aquila; having shorn his head in Cenchrea: for he -had a vow. - -18:19 And he came to Ephesus, and left them there: but he himself -entered into the synagogue, and reasoned with the Jews. - -18:20 When they desired him to tarry longer time with them, he -consented not; 18:21 But bade them farewell, saying, I must by all -means keep this feast that cometh in Jerusalem: but I will return -again unto you, if God will. And he sailed from Ephesus. - -18:22 And when he had landed at Caesarea, and gone up, and saluted the -church, he went down to Antioch. - -18:23 And after he had spent some time there, he departed, and went -over all the country of Galatia and Phrygia in order, strengthening -all the disciples. - -18:24 And a certain Jew named Apollos, born at Alexandria, an eloquent -man, and mighty in the scriptures, came to Ephesus. - -18:25 This man was instructed in the way of the Lord; and being -fervent in the spirit, he spake and taught diligently the things of -the Lord, knowing only the baptism of John. - -18:26 And he began to speak boldly in the synagogue: whom when Aquila -and Priscilla had heard, they took him unto them, and expounded unto -him the way of God more perfectly. - -18:27 And when he was disposed to pass into Achaia, the brethren -wrote, exhorting the disciples to receive him: who, when he was come, -helped them much which had believed through grace: 18:28 For he -mightily convinced the Jews, and that publickly, shewing by the -scriptures that Jesus was Christ. - -19:1 And it came to pass, that, while Apollos was at Corinth, Paul -having passed through the upper coasts came to Ephesus: and finding -certain disciples, 19:2 He said unto them, Have ye received the Holy -Ghost since ye believed? And they said unto him, We have not so much -as heard whether there be any Holy Ghost. - -19:3 And he said unto them, Unto what then were ye baptized? And they -said, Unto John's baptism. - -19:4 Then said Paul, John verily baptized with the baptism of -repentance, saying unto the people, that they should believe on him -which should come after him, that is, on Christ Jesus. - -19:5 When they heard this, they were baptized in the name of the Lord -Jesus. - -19:6 And when Paul had laid his hands upon them, the Holy Ghost came -on them; and they spake with tongues, and prophesied. - -19:7 And all the men were about twelve. - -19:8 And he went into the synagogue, and spake boldly for the space of -three months, disputing and persuading the things concerning the -kingdom of God. - -19:9 But when divers were hardened, and believed not, but spake evil -of that way before the multitude, he departed from them, and separated -the disciples, disputing daily in the school of one Tyrannus. - -19:10 And this continued by the space of two years; so that all they -which dwelt in Asia heard the word of the Lord Jesus, both Jews and -Greeks. - -19:11 And God wrought special miracles by the hands of Paul: 19:12 So -that from his body were brought unto the sick handkerchiefs or aprons, -and the diseases departed from them, and the evil spirits went out of -them. - -19:13 Then certain of the vagabond Jews, exorcists, took upon them to -call over them which had evil spirits the name of the LORD Jesus, -saying, We adjure you by Jesus whom Paul preacheth. - -19:14 And there were seven sons of one Sceva, a Jew, and chief of the -priests, which did so. - -19:15 And the evil spirit answered and said, Jesus I know, and Paul I -know; but who are ye? 19:16 And the man in whom the evil spirit was -leaped on them, and overcame them, and prevailed against them, so that -they fled out of that house naked and wounded. - -19:17 And this was known to all the Jews and Greeks also dwelling at -Ephesus; and fear fell on them all, and the name of the Lord Jesus was -magnified. - -19:18 And many that believed came, and confessed, and shewed their -deeds. - -19:19 Many of them also which used curious arts brought their books -together, and burned them before all men: and they counted the price -of them, and found it fifty thousand pieces of silver. - -19:20 So mightily grew the word of God and prevailed. - -19:21 After these things were ended, Paul purposed in the spirit, when -he had passed through Macedonia and Achaia, to go to Jerusalem, -saying, After I have been there, I must also see Rome. - -19:22 So he sent into Macedonia two of them that ministered unto him, -Timotheus and Erastus; but he himself stayed in Asia for a season. - -19:23 And the same time there arose no small stir about that way. - -19:24 For a certain man named Demetrius, a silversmith, which made -silver shrines for Diana, brought no small gain unto the craftsmen; -19:25 Whom he called together with the workmen of like occupation, and -said, Sirs, ye know that by this craft we have our wealth. - -19:26 Moreover ye see and hear, that not alone at Ephesus, but almost -throughout all Asia, this Paul hath persuaded and turned away much -people, saying that they be no gods, which are made with hands: 19:27 -So that not only this our craft is in danger to be set at nought; but -also that the temple of the great goddess Diana should be despised, -and her magnificence should be destroyed, whom all Asia and the world -worshippeth. - -19:28 And when they heard these sayings, they were full of wrath, and -cried out, saying, Great is Diana of the Ephesians. - -19:29 And the whole city was filled with confusion: and having caught -Gaius and Aristarchus, men of Macedonia, Paul's companions in travel, -they rushed with one accord into the theatre. - -19:30 And when Paul would have entered in unto the people, the -disciples suffered him not. - -19:31 And certain of the chief of Asia, which were his friends, sent -unto him, desiring him that he would not adventure himself into the -theatre. - -19:32 Some therefore cried one thing, and some another: for the -assembly was confused: and the more part knew not wherefore they were -come together. - -19:33 And they drew Alexander out of the multitude, the Jews putting -him forward. And Alexander beckoned with the hand, and would have made -his defence unto the people. - -19:34 But when they knew that he was a Jew, all with one voice about -the space of two hours cried out, Great is Diana of the Ephesians. - -19:35 And when the townclerk had appeased the people, he said, Ye men -of Ephesus, what man is there that knoweth not how that the city of -the Ephesians is a worshipper of the great goddess Diana, and of the -image which fell down from Jupiter? 19:36 Seeing then that these -things cannot be spoken against, ye ought to be quiet, and to do -nothing rashly. - -19:37 For ye have brought hither these men, which are neither robbers -of churches, nor yet blasphemers of your goddess. - -19:38 Wherefore if Demetrius, and the craftsmen which are with him, -have a matter against any man, the law is open, and there are -deputies: let them implead one another. - -19:39 But if ye enquire any thing concerning other matters, it shall -be determined in a lawful assembly. - -19:40 For we are in danger to be called in question for this day's -uproar, there being no cause whereby we may give an account of this -concourse. - -19:41 And when he had thus spoken, he dismissed the assembly. - -20:1 And after the uproar was ceased, Paul called unto him the -disciples, and embraced them, and departed for to go into Macedonia. - -20:2 And when he had gone over those parts, and had given them much -exhortation, he came into Greece, 20:3 And there abode three months. -And when the Jews laid wait for him, as he was about to sail into -Syria, he purposed to return through Macedonia. - -20:4 And there accompanied him into Asia Sopater of Berea; and of the -Thessalonians, Aristarchus and Secundus; and Gaius of Derbe, and -Timotheus; and of Asia, Tychicus and Trophimus. - -20:5 These going before tarried for us at Troas. - -20:6 And we sailed away from Philippi after the days of unleavened -bread, and came unto them to Troas in five days; where we abode seven -days. - -20:7 And upon the first day of the week, when the disciples came -together to break bread, Paul preached unto them, ready to depart on -the morrow; and continued his speech until midnight. - -20:8 And there were many lights in the upper chamber, where they were -gathered together. - -20:9 And there sat in a window a certain young man named Eutychus, -being fallen into a deep sleep: and as Paul was long preaching, he -sunk down with sleep, and fell down from the third loft, and was taken -up dead. - -20:10 And Paul went down, and fell on him, and embracing him said, -Trouble not yourselves; for his life is in him. - -20:11 When he therefore was come up again, and had broken bread, and -eaten, and talked a long while, even till break of day, so he -departed. - -20:12 And they brought the young man alive, and were not a little -comforted. - -20:13 And we went before to ship, and sailed unto Assos, there -intending to take in Paul: for so had he appointed, minding himself to -go afoot. - -20:14 And when he met with us at Assos, we took him in, and came to -Mitylene. - -20:15 And we sailed thence, and came the next day over against Chios; -and the next day we arrived at Samos, and tarried at Trogyllium; and -the next day we came to Miletus. - -20:16 For Paul had determined to sail by Ephesus, because he would not -spend the time in Asia: for he hasted, if it were possible for him, to -be at Jerusalem the day of Pentecost. - -20:17 And from Miletus he sent to Ephesus, and called the elders of -the church. - -20:18 And when they were come to him, he said unto them, Ye know, from -the first day that I came into Asia, after what manner I have been -with you at all seasons, 20:19 Serving the LORD with all humility of -mind, and with many tears, and temptations, which befell me by the -lying in wait of the Jews: 20:20 And how I kept back nothing that was -profitable unto you, but have shewed you, and have taught you -publickly, and from house to house, 20:21 Testifying both to the Jews, -and also to the Greeks, repentance toward God, and faith toward our -Lord Jesus Christ. - -20:22 And now, behold, I go bound in the spirit unto Jerusalem, not -knowing the things that shall befall me there: 20:23 Save that the -Holy Ghost witnesseth in every city, saying that bonds and afflictions -abide me. - -20:24 But none of these things move me, neither count I my life dear -unto myself, so that I might finish my course with joy, and the -ministry, which I have received of the Lord Jesus, to testify the -gospel of the grace of God. - -20:25 And now, behold, I know that ye all, among whom I have gone -preaching the kingdom of God, shall see my face no more. - -20:26 Wherefore I take you to record this day, that I am pure from the -blood of all men. - -20:27 For I have not shunned to declare unto you all the counsel of -God. - -20:28 Take heed therefore unto yourselves, and to all the flock, over -the which the Holy Ghost hath made you overseers, to feed the church -of God, which he hath purchased with his own blood. - -20:29 For I know this, that after my departing shall grievous wolves -enter in among you, not sparing the flock. - -20:30 Also of your own selves shall men arise, speaking perverse -things, to draw away disciples after them. - -20:31 Therefore watch, and remember, that by the space of three years -I ceased not to warn every one night and day with tears. - -20:32 And now, brethren, I commend you to God, and to the word of his -grace, which is able to build you up, and to give you an inheritance -among all them which are sanctified. - -20:33 I have coveted no man's silver, or gold, or apparel. - -20:34 Yea, ye yourselves know, that these hands have ministered unto -my necessities, and to them that were with me. - -20:35 I have shewed you all things, how that so labouring ye ought to -support the weak, and to remember the words of the Lord Jesus, how he -said, It is more blessed to give than to receive. - -20:36 And when he had thus spoken, he kneeled down, and prayed with -them all. - -20:37 And they all wept sore, and fell on Paul's neck, and kissed him, -20:38 Sorrowing most of all for the words which he spake, that they -should see his face no more. And they accompanied him unto the ship. - -21:1 And it came to pass, that after we were gotten from them, and had -launched, we came with a straight course unto Coos, and the day -following unto Rhodes, and from thence unto Patara: 21:2 And finding a -ship sailing over unto Phenicia, we went aboard, and set forth. - -21:3 Now when we had discovered Cyprus, we left it on the left hand, -and sailed into Syria, and landed at Tyre: for there the ship was to -unlade her burden. - -21:4 And finding disciples, we tarried there seven days: who said to -Paul through the Spirit, that he should not go up to Jerusalem. - -21:5 And when we had accomplished those days, we departed and went our -way; and they all brought us on our way, with wives and children, till -we were out of the city: and we kneeled down on the shore, and prayed. - -21:6 And when we had taken our leave one of another, we took ship; and -they returned home again. - -21:7 And when we had finished our course from Tyre, we came to -Ptolemais, and saluted the brethren, and abode with them one day. - -21:8 And the next day we that were of Paul's company departed, and -came unto Caesarea: and we entered into the house of Philip the -evangelist, which was one of the seven; and abode with him. - -21:9 And the same man had four daughters, virgins, which did prophesy. - -21:10 And as we tarried there many days, there came down from Judaea a -certain prophet, named Agabus. - -21:11 And when he was come unto us, he took Paul's girdle, and bound -his own hands and feet, and said, Thus saith the Holy Ghost, So shall -the Jews at Jerusalem bind the man that owneth this girdle, and shall -deliver him into the hands of the Gentiles. - -21:12 And when we heard these things, both we, and they of that place, -besought him not to go up to Jerusalem. - -21:13 Then Paul answered, What mean ye to weep and to break mine -heart? for I am ready not to be bound only, but also to die at -Jerusalem for the name of the Lord Jesus. - -21:14 And when he would not be persuaded, we ceased, saying, The will -of the Lord be done. - -21:15 And after those days we took up our carriages, and went up to -Jerusalem. - -21:16 There went with us also certain of the disciples of Caesarea, -and brought with them one Mnason of Cyprus, an old disciple, with whom -we should lodge. - -21:17 And when we were come to Jerusalem, the brethren received us -gladly. - -21:18 And the day following Paul went in with us unto James; and all -the elders were present. - -21:19 And when he had saluted them, he declared particularly what -things God had wrought among the Gentiles by his ministry. - -21:20 And when they heard it, they glorified the Lord, and said unto -him, Thou seest, brother, how many thousands of Jews there are which -believe; and they are all zealous of the law: 21:21 And they are -informed of thee, that thou teachest all the Jews which are among the -Gentiles to forsake Moses, saying that they ought not to circumcise -their children, neither to walk after the customs. - -21:22 What is it therefore? the multitude must needs come together: -for they will hear that thou art come. - -21:23 Do therefore this that we say to thee: We have four men which -have a vow on them; 21:24 Them take, and purify thyself with them, and -be at charges with them, that they may shave their heads: and all may -know that those things, whereof they were informed concerning thee, -are nothing; but that thou thyself also walkest orderly, and keepest -the law. - -21:25 As touching the Gentiles which believe, we have written and -concluded that they observe no such thing, save only that they keep -themselves from things offered to idols, and from blood, and from -strangled, and from fornication. - -21:26 Then Paul took the men, and the next day purifying himself with -them entered into the temple, to signify the accomplishment of the -days of purification, until that an offering should be offered for -every one of them. - -21:27 And when the seven days were almost ended, the Jews which were -of Asia, when they saw him in the temple, stirred up all the people, -and laid hands on him, 21:28 Crying out, Men of Israel, help: This is -the man, that teacheth all men every where against the people, and the -law, and this place: and further brought Greeks also into the temple, -and hath polluted this holy place. - -21:29 (For they had seen before with him in the city Trophimus an -Ephesian, whom they supposed that Paul had brought into the temple.) -21:30 And all the city was moved, and the people ran together: and -they took Paul, and drew him out of the temple: and forthwith the -doors were shut. - -21:31 And as they went about to kill him, tidings came unto the chief -captain of the band, that all Jerusalem was in an uproar. - -21:32 Who immediately took soldiers and centurions, and ran down unto -them: and when they saw the chief captain and the soldiers, they left -beating of Paul. - -21:33 Then the chief captain came near, and took him, and commanded -him to be bound with two chains; and demanded who he was, and what he -had done. - -21:34 And some cried one thing, some another, among the multitude: and -when he could not know the certainty for the tumult, he commanded him -to be carried into the castle. - -21:35 And when he came upon the stairs, so it was, that he was borne -of the soldiers for the violence of the people. - -21:36 For the multitude of the people followed after, crying, Away -with him. - -21:37 And as Paul was to be led into the castle, he said unto the -chief captain, May I speak unto thee? Who said, Canst thou speak -Greek? 21:38 Art not thou that Egyptian, which before these days -madest an uproar, and leddest out into the wilderness four thousand -men that were murderers? 21:39 But Paul said, I am a man which am a -Jew of Tarsus, a city in Cilicia, a citizen of no mean city: and, I -beseech thee, suffer me to speak unto the people. - -21:40 And when he had given him licence, Paul stood on the stairs, and -beckoned with the hand unto the people. And when there was made a -great silence, he spake unto them in the Hebrew tongue, saying, 22:1 -Men, brethren, and fathers, hear ye my defence which I make now unto -you. - -22:2 (And when they heard that he spake in the Hebrew tongue to them, -they kept the more silence: and he saith,) 22:3 I am verily a man -which am a Jew, born in Tarsus, a city in Cilicia, yet brought up in -this city at the feet of Gamaliel, and taught according to the perfect -manner of the law of the fathers, and was zealous toward God, as ye -all are this day. - -22:4 And I persecuted this way unto the death, binding and delivering -into prisons both men and women. - -22:5 As also the high priest doth bear me witness, and all the estate -of the elders: from whom also I received letters unto the brethren, -and went to Damascus, to bring them which were there bound unto -Jerusalem, for to be punished. - -22:6 And it came to pass, that, as I made my journey, and was come -nigh unto Damascus about noon, suddenly there shone from heaven a -great light round about me. - -22:7 And I fell unto the ground, and heard a voice saying unto me, -Saul, Saul, why persecutest thou me? 22:8 And I answered, Who art -thou, Lord? And he said unto me, I am Jesus of Nazareth, whom thou -persecutest. - -22:9 And they that were with me saw indeed the light, and were afraid; -but they heard not the voice of him that spake to me. - -22:10 And I said, What shall I do, LORD? And the Lord said unto me, -Arise, and go into Damascus; and there it shall be told thee of all -things which are appointed for thee to do. - -22:11 And when I could not see for the glory of that light, being led -by the hand of them that were with me, I came into Damascus. - -22:12 And one Ananias, a devout man according to the law, having a -good report of all the Jews which dwelt there, 22:13 Came unto me, and -stood, and said unto me, Brother Saul, receive thy sight. And the same -hour I looked up upon him. - -22:14 And he said, The God of our fathers hath chosen thee, that thou -shouldest know his will, and see that Just One, and shouldest hear the -voice of his mouth. - -22:15 For thou shalt be his witness unto all men of what thou hast -seen and heard. - -22:16 And now why tarriest thou? arise, and be baptized, and wash away -thy sins, calling on the name of the Lord. - -22:17 And it came to pass, that, when I was come again to Jerusalem, -even while I prayed in the temple, I was in a trance; 22:18 And saw -him saying unto me, Make haste, and get thee quickly out of Jerusalem: -for they will not receive thy testimony concerning me. - -22:19 And I said, Lord, they know that I imprisoned and beat in every -synagogue them that believed on thee: 22:20 And when the blood of thy -martyr Stephen was shed, I also was standing by, and consenting unto -his death, and kept the raiment of them that slew him. - -22:21 And he said unto me, Depart: for I will send thee far hence unto -the Gentiles. - -22:22 And they gave him audience unto this word, and then lifted up -their voices, and said, Away with such a fellow from the earth: for it -is not fit that he should live. - -22:23 And as they cried out, and cast off their clothes, and threw -dust into the air, 22:24 The chief captain commanded him to be brought -into the castle, and bade that he should be examined by scourging; -that he might know wherefore they cried so against him. - -22:25 And as they bound him with thongs, Paul said unto the centurion -that stood by, Is it lawful for you to scourge a man that is a Roman, -and uncondemned? 22:26 When the centurion heard that, he went and -told the chief captain, saying, Take heed what thou doest: for this -man is a Roman. - -22:27 Then the chief captain came, and said unto him, Tell me, art -thou a Roman? He said, Yea. - -22:28 And the chief captain answered, With a great sum obtained I this -freedom. And Paul said, But I was free born. - -22:29 Then straightway they departed from him which should have -examined him: and the chief captain also was afraid, after he knew -that he was a Roman, and because he had bound him. - -22:30 On the morrow, because he would have known the certainty -wherefore he was accused of the Jews, he loosed him from his bands, -and commanded the chief priests and all their council to appear, and -brought Paul down, and set him before them. - -23:1 And Paul, earnestly beholding the council, said, Men and -brethren, I have lived in all good conscience before God until this -day. - -23:2 And the high priest Ananias commanded them that stood by him to -smite him on the mouth. - -23:3 Then said Paul unto him, God shall smite thee, thou whited wall: -for sittest thou to judge me after the law, and commandest me to be -smitten contrary to the law? 23:4 And they that stood by said, -Revilest thou God's high priest? 23:5 Then said Paul, I wist not, -brethren, that he was the high priest: for it is written, Thou shalt -not speak evil of the ruler of thy people. - -23:6 But when Paul perceived that the one part were Sadducees, and the -other Pharisees, he cried out in the council, Men and brethren, I am a -Pharisee, the son of a Pharisee: of the hope and resurrection of the -dead I am called in question. - -23:7 And when he had so said, there arose a dissension between the -Pharisees and the Sadducees: and the multitude was divided. - -23:8 For the Sadducees say that there is no resurrection, neither -angel, nor spirit: but the Pharisees confess both. - -23:9 And there arose a great cry: and the scribes that were of the -Pharisees' part arose, and strove, saying, We find no evil in this -man: but if a spirit or an angel hath spoken to him, let us not fight -against God. - -23:10 And when there arose a great dissension, the chief captain, -fearing lest Paul should have been pulled in pieces of them, commanded -the soldiers to go down, and to take him by force from among them, and -to bring him into the castle. - -23:11 And the night following the Lord stood by him, and said, Be of -good cheer, Paul: for as thou hast testified of me in Jerusalem, so -must thou bear witness also at Rome. - -23:12 And when it was day, certain of the Jews banded together, and -bound themselves under a curse, saying that they would neither eat nor -drink till they had killed Paul. - -23:13 And they were more than forty which had made this conspiracy. - -23:14 And they came to the chief priests and elders, and said, We have -bound ourselves under a great curse, that we will eat nothing until we -have slain Paul. - -23:15 Now therefore ye with the council signify to the chief captain -that he bring him down unto you to morrow, as though ye would enquire -something more perfectly concerning him: and we, or ever he come near, -are ready to kill him. - -23:16 And when Paul's sister's son heard of their lying in wait, he -went and entered into the castle, and told Paul. - -23:17 Then Paul called one of the centurions unto him, and said, Bring -this young man unto the chief captain: for he hath a certain thing to -tell him. - -23:18 So he took him, and brought him to the chief captain, and said, -Paul the prisoner called me unto him, and prayed me to bring this -young man unto thee, who hath something to say unto thee. - -23:19 Then the chief captain took him by the hand, and went with him -aside privately, and asked him, What is that thou hast to tell me? -23:20 And he said, The Jews have agreed to desire thee that thou -wouldest bring down Paul to morrow into the council, as though they -would enquire somewhat of him more perfectly. - -23:21 But do not thou yield unto them: for there lie in wait for him -of them more than forty men, which have bound themselves with an oath, -that they will neither eat nor drink till they have killed him: and -now are they ready, looking for a promise from thee. - -23:22 So the chief captain then let the young man depart, and charged -him, See thou tell no man that thou hast shewed these things to me. - -23:23 And he called unto him two centurions, saying, Make ready two -hundred soldiers to go to Caesarea, and horsemen threescore and ten, -and spearmen two hundred, at the third hour of the night; 23:24 And -provide them beasts, that they may set Paul on, and bring him safe -unto Felix the governor. - -23:25 And he wrote a letter after this manner: 23:26 Claudius Lysias -unto the most excellent governor Felix sendeth greeting. - -23:27 This man was taken of the Jews, and should have been killed of -them: then came I with an army, and rescued him, having understood -that he was a Roman. - -23:28 And when I would have known the cause wherefore they accused -him, I brought him forth into their council: 23:29 Whom I perceived to -be accused of questions of their law, but to have nothing laid to his -charge worthy of death or of bonds. - -23:30 And when it was told me how that the Jews laid wait for the man, -I sent straightway to thee, and gave commandment to his accusers also -to say before thee what they had against him. Farewell. - -23:31 Then the soldiers, as it was commanded them, took Paul, and -brought him by night to Antipatris. - -23:32 On the morrow they left the horsemen to go with him, and -returned to the castle: 23:33 Who, when they came to Caesarea and -delivered the epistle to the governor, presented Paul also before him. - -23:34 And when the governor had read the letter, he asked of what -province he was. And when he understood that he was of Cilicia; 23:35 -I will hear thee, said he, when thine accusers are also come. And he -commanded him to be kept in Herod's judgment hall. - -24:1 And after five days Ananias the high priest descended with the -elders, and with a certain orator named Tertullus, who informed the -governor against Paul. - -24:2 And when he was called forth, Tertullus began to accuse him, -saying, Seeing that by thee we enjoy great quietness, and that very -worthy deeds are done unto this nation by thy providence, 24:3 We -accept it always, and in all places, most noble Felix, with all -thankfulness. - -24:4 Notwithstanding, that I be not further tedious unto thee, I pray -thee that thou wouldest hear us of thy clemency a few words. - -24:5 For we have found this man a pestilent fellow, and a mover of -sedition among all the Jews throughout the world, and a ringleader of -the sect of the Nazarenes: 24:6 Who also hath gone about to profane -the temple: whom we took, and would have judged according to our law. - -24:7 But the chief captain Lysias came upon us, and with great -violence took him away out of our hands, 24:8 Commanding his accusers -to come unto thee: by examining of whom thyself mayest take knowledge -of all these things, whereof we accuse him. - -24:9 And the Jews also assented, saying that these things were so. - -24:10 Then Paul, after that the governor had beckoned unto him to -speak, answered, Forasmuch as I know that thou hast been of many years -a judge unto this nation, I do the more cheerfully answer for myself: -24:11 Because that thou mayest understand, that there are yet but -twelve days since I went up to Jerusalem for to worship. - -24:12 And they neither found me in the temple disputing with any man, -neither raising up the people, neither in the synagogues, nor in the -city: 24:13 Neither can they prove the things whereof they now accuse -me. - -24:14 But this I confess unto thee, that after the way which they call -heresy, so worship I the God of my fathers, believing all things which -are written in the law and in the prophets: 24:15 And have hope toward -God, which they themselves also allow, that there shall be a -resurrection of the dead, both of the just and unjust. - -24:16 And herein do I exercise myself, to have always a conscience -void to offence toward God, and toward men. - -24:17 Now after many years I came to bring alms to my nation, and -offerings. - -24:18 Whereupon certain Jews from Asia found me purified in the -temple, neither with multitude, nor with tumult. - -24:19 Who ought to have been here before thee, and object, if they had -ought against me. - -24:20 Or else let these same here say, if they have found any evil -doing in me, while I stood before the council, 24:21 Except it be for -this one voice, that I cried standing among them, Touching the -resurrection of the dead I am called in question by you this day. - -24:22 And when Felix heard these things, having more perfect knowledge -of that way, he deferred them, and said, When Lysias the chief captain -shall come down, I will know the uttermost of your matter. - -24:23 And he commanded a centurion to keep Paul, and to let him have -liberty, and that he should forbid none of his acquaintance to -minister or come unto him. - -24:24 And after certain days, when Felix came with his wife Drusilla, -which was a Jewess, he sent for Paul, and heard him concerning the -faith in Christ. - -24:25 And as he reasoned of righteousness, temperance, and judgment to -come, Felix trembled, and answered, Go thy way for this time; when I -have a convenient season, I will call for thee. - -24:26 He hoped also that money should have been given him of Paul, -that he might loose him: wherefore he sent for him the oftener, and -communed with him. - -24:27 But after two years Porcius Festus came into Felix' room: and -Felix, willing to shew the Jews a pleasure, left Paul bound. - -25:1 Now when Festus was come into the province, after three days he -ascended from Caesarea to Jerusalem. - -25:2 Then the high priest and the chief of the Jews informed him -against Paul, and besought him, 25:3 And desired favour against him, -that he would send for him to Jerusalem, laying wait in the way to -kill him. - -25:4 But Festus answered, that Paul should be kept at Caesarea, and -that he himself would depart shortly thither. - -25:5 Let them therefore, said he, which among you are able, go down -with me, and accuse this man, if there be any wickedness in him. - -25:6 And when he had tarried among them more than ten days, he went -down unto Caesarea; and the next day sitting on the judgment seat -commanded Paul to be brought. - -25:7 And when he was come, the Jews which came down from Jerusalem -stood round about, and laid many and grievous complaints against Paul, -which they could not prove. - -25:8 While he answered for himself, Neither against the law of the -Jews, neither against the temple, nor yet against Caesar, have I -offended any thing at all. - -25:9 But Festus, willing to do the Jews a pleasure, answered Paul, and -said, Wilt thou go up to Jerusalem, and there be judged of these -things before me? 25:10 Then said Paul, I stand at Caesar's judgment -seat, where I ought to be judged: to the Jews have I done no wrong, as -thou very well knowest. - -25:11 For if I be an offender, or have committed any thing worthy of -death, I refuse not to die: but if there be none of these things -whereof these accuse me, no man may deliver me unto them. I appeal -unto Caesar. - -25:12 Then Festus, when he had conferred with the council, answered, -Hast thou appealed unto Caesar? unto Caesar shalt thou go. - -25:13 And after certain days king Agrippa and Bernice came unto -Caesarea to salute Festus. - -25:14 And when they had been there many days, Festus declared Paul's -cause unto the king, saying, There is a certain man left in bonds by -Felix: 25:15 About whom, when I was at Jerusalem, the chief priests -and the elders of the Jews informed me, desiring to have judgment -against him. - -25:16 To whom I answered, It is not the manner of the Romans to -deliver any man to die, before that he which is accused have the -accusers face to face, and have licence to answer for himself -concerning the crime laid against him. - -25:17 Therefore, when they were come hither, without any delay on the -morrow I sat on the judgment seat, and commanded the man to be brought -forth. - -25:18 Against whom when the accusers stood up, they brought none -accusation of such things as I supposed: 25:19 But had certain -questions against him of their own superstition, and of one Jesus, -which was dead, whom Paul affirmed to be alive. - -25:20 And because I doubted of such manner of questions, I asked him -whether he would go to Jerusalem, and there be judged of these -matters. - -25:21 But when Paul had appealed to be reserved unto the hearing of -Augustus, I commanded him to be kept till I might send him to Caesar. - -25:22 Then Agrippa said unto Festus, I would also hear the man myself. -To morrow, said he, thou shalt hear him. - -25:23 And on the morrow, when Agrippa was come, and Bernice, with -great pomp, and was entered into the place of hearing, with the chief -captains, and principal men of the city, at Festus' commandment Paul -was brought forth. - -25:24 And Festus said, King Agrippa, and all men which are here -present with us, ye see this man, about whom all the multitude of the -Jews have dealt with me, both at Jerusalem, and also here, crying that -he ought not to live any longer. - -25:25 But when I found that he had committed nothing worthy of death, -and that he himself hath appealed to Augustus, I have determined to -send him. - -25:26 Of whom I have no certain thing to write unto my lord. Wherefore -I have brought him forth before you, and specially before thee, O king -Agrippa, that, after examination had, I might have somewhat to write. - -25:27 For it seemeth to me unreasonable to send a prisoner, and not -withal to signify the crimes laid against him. - -26:1 Then Agrippa said unto Paul, Thou art permitted to speak for -thyself. - -Then Paul stretched forth the hand, and answered for himself: 26:2 I -think myself happy, king Agrippa, because I shall answer for myself -this day before thee touching all the things whereof I am accused of -the Jews: 26:3 Especially because I know thee to be expert in all -customs and questions which are among the Jews: wherefore I beseech -thee to hear me patiently. - -26:4 My manner of life from my youth, which was at the first among -mine own nation at Jerusalem, know all the Jews; 26:5 Which knew me -from the beginning, if they would testify, that after the most -straitest sect of our religion I lived a Pharisee. - -26:6 And now I stand and am judged for the hope of the promise made of -God, unto our fathers: 26:7 Unto which promise our twelve tribes, -instantly serving God day and night, hope to come. For which hope's -sake, king Agrippa, I am accused of the Jews. - -26:8 Why should it be thought a thing incredible with you, that God -should raise the dead? 26:9 I verily thought with myself, that I -ought to do many things contrary to the name of Jesus of Nazareth. - -26:10 Which thing I also did in Jerusalem: and many of the saints did -I shut up in prison, having received authority from the chief priests; -and when they were put to death, I gave my voice against them. - -26:11 And I punished them oft in every synagogue, and compelled them -to blaspheme; and being exceedingly mad against them, I persecuted -them even unto strange cities. - -26:12 Whereupon as I went to Damascus with authority and commission -from the chief priests, 26:13 At midday, O king, I saw in the way a -light from heaven, above the brightness of the sun, shining round -about me and them which journeyed with me. - -26:14 And when we were all fallen to the earth, I heard a voice -speaking unto me, and saying in the Hebrew tongue, Saul, Saul, why -persecutest thou me? it is hard for thee to kick against the pricks. - -26:15 And I said, Who art thou, Lord? And he said, I am Jesus whom -thou persecutest. - -26:16 But rise, and stand upon thy feet: for I have appeared unto thee -for this purpose, to make thee a minister and a witness both of these -things which thou hast seen, and of those things in the which I will -appear unto thee; 26:17 Delivering thee from the people, and from the -Gentiles, unto whom now I send thee, 26:18 To open their eyes, and to -turn them from darkness to light, and from the power of Satan unto -God, that they may receive forgiveness of sins, and inheritance among -them which are sanctified by faith that is in me. - -26:19 Whereupon, O king Agrippa, I was not disobedient unto the -heavenly vision: 26:20 But shewed first unto them of Damascus, and at -Jerusalem, and throughout all the coasts of Judaea, and then to the -Gentiles, that they should repent and turn to God, and do works meet -for repentance. - -26:21 For these causes the Jews caught me in the temple, and went -about to kill me. - -26:22 Having therefore obtained help of God, I continue unto this day, -witnessing both to small and great, saying none other things than -those which the prophets and Moses did say should come: 26:23 That -Christ should suffer, and that he should be the first that should rise -from the dead, and should shew light unto the people, and to the -Gentiles. - -26:24 And as he thus spake for himself, Festus said with a loud voice, -Paul, thou art beside thyself; much learning doth make thee mad. - -26:25 But he said, I am not mad, most noble Festus; but speak forth -the words of truth and soberness. - -26:26 For the king knoweth of these things, before whom also I speak -freely: for I am persuaded that none of these things are hidden from -him; for this thing was not done in a corner. - -26:27 King Agrippa, believest thou the prophets? I know that thou -believest. - -26:28 Then Agrippa said unto Paul, Almost thou persuadest me to be a -Christian. - -26:29 And Paul said, I would to God, that not only thou, but also all -that hear me this day, were both almost, and altogether such as I am, -except these bonds. - -26:30 And when he had thus spoken, the king rose up, and the governor, -and Bernice, and they that sat with them: 26:31 And when they were -gone aside, they talked between themselves, saying, This man doeth -nothing worthy of death or of bonds. - -26:32 Then said Agrippa unto Festus, This man might have been set at -liberty, if he had not appealed unto Caesar. - -27:1 And when it was determined that we should sail into Italy, they -delivered Paul and certain other prisoners unto one named Julius, a -centurion of Augustus' band. - -27:2 And entering into a ship of Adramyttium, we launched, meaning to -sail by the coasts of Asia; one Aristarchus, a Macedonian of -Thessalonica, being with us. - -27:3 And the next day we touched at Sidon. And Julius courteously -entreated Paul, and gave him liberty to go unto his friends to refresh -himself. - -27:4 And when we had launched from thence, we sailed under Cyprus, -because the winds were contrary. - -27:5 And when we had sailed over the sea of Cilicia and Pamphylia, we -came to Myra, a city of Lycia. - -27:6 And there the centurion found a ship of Alexandria sailing into -Italy; and he put us therein. - -27:7 And when we had sailed slowly many days, and scarce were come -over against Cnidus, the wind not suffering us, we sailed under Crete, -over against Salmone; 27:8 And, hardly passing it, came unto a place -which is called The fair havens; nigh whereunto was the city of Lasea. - -27:9 Now when much time was spent, and when sailing was now dangerous, -because the fast was now already past, Paul admonished them, 27:10 And -said unto them, Sirs, I perceive that this voyage will be with hurt -and much damage, not only of the lading and ship, but also of our -lives. - -27:11 Nevertheless the centurion believed the master and the owner of -the ship, more than those things which were spoken by Paul. - -27:12 And because the haven was not commodious to winter in, the more -part advised to depart thence also, if by any means they might attain -to Phenice, and there to winter; which is an haven of Crete, and lieth -toward the south west and north west. - -27:13 And when the south wind blew softly, supposing that they had -obtained their purpose, loosing thence, they sailed close by Crete. - -27:14 But not long after there arose against it a tempestuous wind, -called Euroclydon. - -27:15 And when the ship was caught, and could not bear up into the -wind, we let her drive. - -27:16 And running under a certain island which is called Clauda, we -had much work to come by the boat: 27:17 Which when they had taken up, -they used helps, undergirding the ship; and, fearing lest they should -fall into the quicksands, strake sail, and so were driven. - -27:18 And we being exceedingly tossed with a tempest, the next day -they lightened the ship; 27:19 And the third day we cast out with our -own hands the tackling of the ship. - -27:20 And when neither sun nor stars in many days appeared, and no -small tempest lay on us, all hope that we should be saved was then -taken away. - -27:21 But after long abstinence Paul stood forth in the midst of them, -and said, Sirs, ye should have hearkened unto me, and not have loosed -from Crete, and to have gained this harm and loss. - -27:22 And now I exhort you to be of good cheer: for there shall be no -loss of any man's life among you, but of the ship. - -27:23 For there stood by me this night the angel of God, whose I am, -and whom I serve, 27:24 Saying, Fear not, Paul; thou must be brought -before Caesar: and, lo, God hath given thee all them that sail with -thee. - -27:25 Wherefore, sirs, be of good cheer: for I believe God, that it -shall be even as it was told me. - -27:26 Howbeit we must be cast upon a certain island. - -27:27 But when the fourteenth night was come, as we were driven up and -down in Adria, about midnight the shipmen deemed that they drew near -to some country; 27:28 And sounded, and found it twenty fathoms: and -when they had gone a little further, they sounded again, and found it -fifteen fathoms. - -27:29 Then fearing lest we should have fallen upon rocks, they cast -four anchors out of the stern, and wished for the day. - -27:30 And as the shipmen were about to flee out of the ship, when they -had let down the boat into the sea, under colour as though they would -have cast anchors out of the foreship, 27:31 Paul said to the -centurion and to the soldiers, Except these abide in the ship, ye -cannot be saved. - -27:32 Then the soldiers cut off the ropes of the boat, and let her -fall off. - -27:33 And while the day was coming on, Paul besought them all to take -meat, saying, This day is the fourteenth day that ye have tarried and -continued fasting, having taken nothing. - -27:34 Wherefore I pray you to take some meat: for this is for your -health: for there shall not an hair fall from the head of any of you. - -27:35 And when he had thus spoken, he took bread, and gave thanks to -God in presence of them all: and when he had broken it, he began to -eat. - -27:36 Then were they all of good cheer, and they also took some meat. - -27:37 And we were in all in the ship two hundred threescore and -sixteen souls. - -27:38 And when they had eaten enough, they lightened the ship, and -cast out the wheat into the sea. - -27:39 And when it was day, they knew not the land: but they discovered -a certain creek with a shore, into the which they were minded, if it -were possible, to thrust in the ship. - -27:40 And when they had taken up the anchors, they committed -themselves unto the sea, and loosed the rudder bands, and hoised up -the mainsail to the wind, and made toward shore. - -27:41 And falling into a place where two seas met, they ran the ship -aground; and the forepart stuck fast, and remained unmoveable, but the -hinder part was broken with the violence of the waves. - -27:42 And the soldiers' counsel was to kill the prisoners, lest any of -them should swim out, and escape. - -27:43 But the centurion, willing to save Paul, kept them from their -purpose; and commanded that they which could swim should cast -themselves first into the sea, and get to land: 27:44 And the rest, -some on boards, and some on broken pieces of the ship. - -And so it came to pass, that they escaped all safe to land. - -28:1 And when they were escaped, then they knew that the island was -called Melita. - -28:2 And the barbarous people shewed us no little kindness: for they -kindled a fire, and received us every one, because of the present -rain, and because of the cold. - -28:3 And when Paul had gathered a bundle of sticks, and laid them on -the fire, there came a viper out of the heat, and fastened on his -hand. - -28:4 And when the barbarians saw the venomous beast hang on his hand, -they said among themselves, No doubt this man is a murderer, whom, -though he hath escaped the sea, yet vengeance suffereth not to live. - -28:5 And he shook off the beast into the fire, and felt no harm. - -28:6 Howbeit they looked when he should have swollen, or fallen down -dead suddenly: but after they had looked a great while, and saw no -harm come to him, they changed their minds, and said that he was a -god. - -28:7 In the same quarters were possessions of the chief man of the -island, whose name was Publius; who received us, and lodged us three -days courteously. - -28:8 And it came to pass, that the father of Publius lay sick of a -fever and of a bloody flux: to whom Paul entered in, and prayed, and -laid his hands on him, and healed him. - -28:9 So when this was done, others also, which had diseases in the -island, came, and were healed: 28:10 Who also honoured us with many -honours; and when we departed, they laded us with such things as were -necessary. - -28:11 And after three months we departed in a ship of Alexandria, -which had wintered in the isle, whose sign was Castor and Pollux. - -28:12 And landing at Syracuse, we tarried there three days. - -28:13 And from thence we fetched a compass, and came to Rhegium: and -after one day the south wind blew, and we came the next day to -Puteoli: 28:14 Where we found brethren, and were desired to tarry with -them seven days: and so we went toward Rome. - -28:15 And from thence, when the brethren heard of us, they came to -meet us as far as Appii forum, and The three taverns: whom when Paul -saw, he thanked God, and took courage. - -28:16 And when we came to Rome, the centurion delivered the prisoners -to the captain of the guard: but Paul was suffered to dwell by himself -with a soldier that kept him. - -28:17 And it came to pass, that after three days Paul called the chief -of the Jews together: and when they were come together, he said unto -them, Men and brethren, though I have committed nothing against the -people, or customs of our fathers, yet was I delivered prisoner from -Jerusalem into the hands of the Romans. - -28:18 Who, when they had examined me, would have let me go, because -there was no cause of death in me. - -28:19 But when the Jews spake against it, I was constrained to appeal -unto Caesar; not that I had ought to accuse my nation of. - -28:20 For this cause therefore have I called for you, to see you, and -to speak with you: because that for the hope of Israel I am bound with -this chain. - -28:21 And they said unto him, We neither received letters out of -Judaea concerning thee, neither any of the brethren that came shewed -or spake any harm of thee. - -28:22 But we desire to hear of thee what thou thinkest: for as -concerning this sect, we know that every where it is spoken against. - -28:23 And when they had appointed him a day, there came many to him -into his lodging; to whom he expounded and testified the kingdom of -God, persuading them concerning Jesus, both out of the law of Moses, -and out of the prophets, from morning till evening. - -28:24 And some believed the things which were spoken, and some -believed not. - -28:25 And when they agreed not among themselves, they departed, after -that Paul had spoken one word, Well spake the Holy Ghost by Esaias the -prophet unto our fathers, 28:26 Saying, Go unto this people, and say, -Hearing ye shall hear, and shall not understand; and seeing ye shall -see, and not perceive: 28:27 For the heart of this people is waxed -gross, and their ears are dull of hearing, and their eyes have they -closed; lest they should see with their eyes, and hear with their -ears, and understand with their heart, and should be converted, and I -should heal them. - -28:28 Be it known therefore unto you, that the salvation of God is -sent unto the Gentiles, and that they will hear it. - -28:29 And when he had said these words, the Jews departed, and had -great reasoning among themselves. - -28:30 And Paul dwelt two whole years in his own hired house, and -received all that came in unto him, 28:31 Preaching the kingdom of -God, and teaching those things which concern the Lord Jesus Christ, -with all confidence, no man forbidding him. - - - - -The Epistle of Paul the Apostle to the Romans - - -1:1 Paul, a servant of Jesus Christ, called to be an apostle, -separated unto the gospel of God, 1:2 (Which he had promised afore by -his prophets in the holy scriptures,) 1:3 Concerning his Son Jesus -Christ our Lord, which was made of the seed of David according to the -flesh; 1:4 And declared to be the Son of God with power, according to -the spirit of holiness, by the resurrection from the dead: 1:5 By whom -we have received grace and apostleship, for obedience to the faith -among all nations, for his name: 1:6 Among whom are ye also the called -of Jesus Christ: 1:7 To all that be in Rome, beloved of God, called to -be saints: Grace to you and peace from God our Father, and the Lord -Jesus Christ. - -1:8 First, I thank my God through Jesus Christ for you all, that your -faith is spoken of throughout the whole world. - -1:9 For God is my witness, whom I serve with my spirit in the gospel -of his Son, that without ceasing I make mention of you always in my -prayers; 1:10 Making request, if by any means now at length I might -have a prosperous journey by the will of God to come unto you. - -1:11 For I long to see you, that I may impart unto you some spiritual -gift, to the end ye may be established; 1:12 That is, that I may be -comforted together with you by the mutual faith both of you and me. - -1:13 Now I would not have you ignorant, brethren, that oftentimes I -purposed to come unto you, (but was let hitherto,) that I might have -some fruit among you also, even as among other Gentiles. - -1:14 I am debtor both to the Greeks, and to the Barbarians; both to -the wise, and to the unwise. - -1:15 So, as much as in me is, I am ready to preach the gospel to you -that are at Rome also. - -1:16 For I am not ashamed of the gospel of Christ: for it is the power -of God unto salvation to every one that believeth; to the Jew first, -and also to the Greek. - -1:17 For therein is the righteousness of God revealed from faith to -faith: as it is written, The just shall live by faith. - -1:18 For the wrath of God is revealed from heaven against all -ungodliness and unrighteousness of men, who hold the truth in -unrighteousness; 1:19 Because that which may be known of God is -manifest in them; for God hath shewed it unto them. - -1:20 For the invisible things of him from the creation of the world -are clearly seen, being understood by the things that are made, even -his eternal power and Godhead; so that they are without excuse: 1:21 -Because that, when they knew God, they glorified him not as God, -neither were thankful; but became vain in their imaginations, and -their foolish heart was darkened. - -1:22 Professing themselves to be wise, they became fools, 1:23 And -changed the glory of the uncorruptible God into an image made like to -corruptible man, and to birds, and fourfooted beasts, and creeping -things. - -1:24 Wherefore God also gave them up to uncleanness through the lusts -of their own hearts, to dishonour their own bodies between themselves: -1:25 Who changed the truth of God into a lie, and worshipped and -served the creature more than the Creator, who is blessed for ever. -Amen. - -1:26 For this cause God gave them up unto vile affections: for even -their women did change the natural use into that which is against -nature: 1:27 And likewise also the men, leaving the natural use of the -woman, burned in their lust one toward another; men with men working -that which is unseemly, and receiving in themselves that recompence of -their error which was meet. - -1:28 And even as they did not like to retain God in their knowledge, -God gave them over to a reprobate mind, to do those things which are -not convenient; 1:29 Being filled with all unrighteousness, -fornication, wickedness, covetousness, maliciousness; full of envy, -murder, debate, deceit, malignity; whisperers, 1:30 Backbiters, haters -of God, despiteful, proud, boasters, inventors of evil things, -disobedient to parents, 1:31 Without understanding, covenantbreakers, -without natural affection, implacable, unmerciful: 1:32 Who knowing -the judgment of God, that they which commit such things are worthy of -death, not only do the same, but have pleasure in them that do them. - -2:1 Therefore thou art inexcusable, O man, whosoever thou art that -judgest: for wherein thou judgest another, thou condemnest thyself; -for thou that judgest doest the same things. - -2:2 But we are sure that the judgment of God is according to truth -against them which commit such things. - -2:3 And thinkest thou this, O man, that judgest them which do such -things, and doest the same, that thou shalt escape the judgment of -God? 2:4 Or despisest thou the riches of his goodness and forbearance -and longsuffering; not knowing that the goodness of God leadeth thee -to repentance? 2:5 But after thy hardness and impenitent heart -treasurest up unto thyself wrath against the day of wrath and -revelation of the righteous judgment of God; 2:6 Who will render to -every man according to his deeds: 2:7 To them who by patient -continuance in well doing seek for glory and honour and immortality, -eternal life: 2:8 But unto them that are contentious, and do not obey -the truth, but obey unrighteousness, indignation and wrath, 2:9 -Tribulation and anguish, upon every soul of man that doeth evil, of -the Jew first, and also of the Gentile; 2:10 But glory, honour, and -peace, to every man that worketh good, to the Jew first, and also to -the Gentile: 2:11 For there is no respect of persons with God. - -2:12 For as many as have sinned without law shall also perish without -law: and as many as have sinned in the law shall be judged by the law; -2:13 (For not the hearers of the law are just before God, but the -doers of the law shall be justified. - -2:14 For when the Gentiles, which have not the law, do by nature the -things contained in the law, these, having not the law, are a law unto -themselves: 2:15 Which shew the work of the law written in their -hearts, their conscience also bearing witness, and their thoughts the -mean while accusing or else excusing one another;) 2:16 In the day -when God shall judge the secrets of men by Jesus Christ according to -my gospel. - -2:17 Behold, thou art called a Jew, and restest in the law, and makest -thy boast of God, 2:18 And knowest his will, and approvest the things -that are more excellent, being instructed out of the law; 2:19 And art -confident that thou thyself art a guide of the blind, a light of them -which are in darkness, 2:20 An instructor of the foolish, a teacher of -babes, which hast the form of knowledge and of the truth in the law. - -2:21 Thou therefore which teachest another, teachest thou not thyself? -thou that preachest a man should not steal, dost thou steal? 2:22 -Thou that sayest a man should not commit adultery, dost thou commit -adultery? thou that abhorrest idols, dost thou commit sacrilege? 2:23 -Thou that makest thy boast of the law, through breaking the law -dishonourest thou God? 2:24 For the name of God is blasphemed among -the Gentiles through you, as it is written. - -2:25 For circumcision verily profiteth, if thou keep the law: but if -thou be a breaker of the law, thy circumcision is made uncircumcision. - -2:26 Therefore if the uncircumcision keep the righteousness of the -law, shall not his uncircumcision be counted for circumcision? 2:27 -And shall not uncircumcision which is by nature, if it fulfil the law, -judge thee, who by the letter and circumcision dost transgress the -law? 2:28 For he is not a Jew, which is one outwardly; neither is -that circumcision, which is outward in the flesh: 2:29 But he is a -Jew, which is one inwardly; and circumcision is that of the heart, in -the spirit, and not in the letter; whose praise is not of men, but of -God. - -3:1 What advantage then hath the Jew? or what profit is there of -circumcision? 3:2 Much every way: chiefly, because that unto them -were committed the oracles of God. - -3:3 For what if some did not believe? shall their unbelief make the -faith of God without effect? 3:4 God forbid: yea, let God be true, -but every man a liar; as it is written, That thou mightest be -justified in thy sayings, and mightest overcome when thou art judged. - -3:5 But if our unrighteousness commend the righteousness of God, what -shall we say? Is God unrighteous who taketh vengeance? (I speak as a -man) 3:6 God forbid: for then how shall God judge the world? 3:7 For -if the truth of God hath more abounded through my lie unto his glory; -why yet am I also judged as a sinner? 3:8 And not rather, (as we be -slanderously reported, and as some affirm that we say,) Let us do -evil, that good may come? whose damnation is just. - -3:9 What then? are we better than they? No, in no wise: for we have -before proved both Jews and Gentiles, that they are all under sin; -3:10 As it is written, There is none righteous, no, not one: 3:11 -There is none that understandeth, there is none that seeketh after -God. - -3:12 They are all gone out of the way, they are together become -unprofitable; there is none that doeth good, no, not one. - -3:13 Their throat is an open sepulchre; with their tongues they have -used deceit; the poison of asps is under their lips: 3:14 Whose mouth -is full of cursing and bitterness: 3:15 Their feet are swift to shed -blood: 3:16 Destruction and misery are in their ways: 3:17 And the way -of peace have they not known: 3:18 There is no fear of God before -their eyes. - -3:19 Now we know that what things soever the law saith, it saith to -them who are under the law: that every mouth may be stopped, and all -the world may become guilty before God. - -3:20 Therefore by the deeds of the law there shall no flesh be -justified in his sight: for by the law is the knowledge of sin. - -3:21 But now the righteousness of God without the law is manifested, -being witnessed by the law and the prophets; 3:22 Even the -righteousness of God which is by faith of Jesus Christ unto all and -upon all them that believe: for there is no difference: 3:23 For all -have sinned, and come short of the glory of God; 3:24 Being justified -freely by his grace through the redemption that is in Christ Jesus: -3:25 Whom God hath set forth to be a propitiation through faith in his -blood, to declare his righteousness for the remission of sins that are -past, through the forbearance of God; 3:26 To declare, I say, at this -time his righteousness: that he might be just, and the justifier of -him which believeth in Jesus. - -3:27 Where is boasting then? It is excluded. By what law? of works? -Nay: but by the law of faith. - -3:28 Therefore we conclude that a man is justified by faith without -the deeds of the law. - -3:29 Is he the God of the Jews only? is he not also of the Gentiles? -Yes, of the Gentiles also: 3:30 Seeing it is one God, which shall -justify the circumcision by faith, and uncircumcision through faith. - -3:31 Do we then make void the law through faith? God forbid: yea, we -establish the law. - -4:1 What shall we say then that Abraham our father, as pertaining to -the flesh, hath found? 4:2 For if Abraham were justified by works, he -hath whereof to glory; but not before God. - -4:3 For what saith the scripture? Abraham believed God, and it was -counted unto him for righteousness. - -4:4 Now to him that worketh is the reward not reckoned of grace, but -of debt. - -4:5 But to him that worketh not, but believeth on him that justifieth -the ungodly, his faith is counted for righteousness. - -4:6 Even as David also describeth the blessedness of the man, unto -whom God imputeth righteousness without works, 4:7 Saying, Blessed are -they whose iniquities are forgiven, and whose sins are covered. - -4:8 Blessed is the man to whom the Lord will not impute sin. - -4:9 Cometh this blessedness then upon the circumcision only, or upon -the uncircumcision also? for we say that faith was reckoned to Abraham -for righteousness. - -4:10 How was it then reckoned? when he was in circumcision, or in -uncircumcision? Not in circumcision, but in uncircumcision. - -4:11 And he received the sign of circumcision, a seal of the -righteousness of the faith which he had yet being uncircumcised: that -he might be the father of all them that believe, though they be not -circumcised; that righteousness might be imputed unto them also: 4:12 -And the father of circumcision to them who are not of the circumcision -only, but who also walk in the steps of that faith of our father -Abraham, which he had being yet uncircumcised. - -4:13 For the promise, that he should be the heir of the world, was not -to Abraham, or to his seed, through the law, but through the -righteousness of faith. - -4:14 For if they which are of the law be heirs, faith is made void, -and the promise made of none effect: 4:15 Because the law worketh -wrath: for where no law is, there is no transgression. - -4:16 Therefore it is of faith, that it might be by grace; to the end -the promise might be sure to all the seed; not to that only which is -of the law, but to that also which is of the faith of Abraham; who is -the father of us all, 4:17 (As it is written, I have made thee a -father of many nations,) before him whom he believed, even God, who -quickeneth the dead, and calleth those things which be not as though -they were. - -4:18 Who against hope believed in hope, that he might become the -father of many nations, according to that which was spoken, So shall -thy seed be. - -4:19 And being not weak in faith, he considered not his own body now -dead, when he was about an hundred years old, neither yet the deadness -of Sarah's womb: 4:20 He staggered not at the promise of God through -unbelief; but was strong in faith, giving glory to God; 4:21 And being -fully persuaded that, what he had promised, he was able also to -perform. - -4:22 And therefore it was imputed to him for righteousness. - -4:23 Now it was not written for his sake alone, that it was imputed to -him; 4:24 But for us also, to whom it shall be imputed, if we believe -on him that raised up Jesus our Lord from the dead; 4:25 Who was -delivered for our offences, and was raised again for our -justification. - -5:1 Therefore being justified by faith, we have peace with God through -our Lord Jesus Christ: 5:2 By whom also we have access by faith into -this grace wherein we stand, and rejoice in hope of the glory of God. - -5:3 And not only so, but we glory in tribulations also: knowing that -tribulation worketh patience; 5:4 And patience, experience; and -experience, hope: 5:5 And hope maketh not ashamed; because the love of -God is shed abroad in our hearts by the Holy Ghost which is given unto -us. - -5:6 For when we were yet without strength, in due time Christ died for -the ungodly. - -5:7 For scarcely for a righteous man will one die: yet peradventure -for a good man some would even dare to die. - -5:8 But God commendeth his love toward us, in that, while we were yet -sinners, Christ died for us. - -5:9 Much more then, being now justified by his blood, we shall be -saved from wrath through him. - -5:10 For if, when we were enemies, we were reconciled to God by the -death of his Son, much more, being reconciled, we shall be saved by -his life. - -5:11 And not only so, but we also joy in God through our Lord Jesus -Christ, by whom we have now received the atonement. - -5:12 Wherefore, as by one man sin entered into the world, and death by -sin; and so death passed upon all men, for that all have sinned: 5:13 -(For until the law sin was in the world: but sin is not imputed when -there is no law. - -5:14 Nevertheless death reigned from Adam to Moses, even over them -that had not sinned after the similitude of Adam's transgression, who -is the figure of him that was to come. - -5:15 But not as the offence, so also is the free gift. For if through -the offence of one many be dead, much more the grace of God, and the -gift by grace, which is by one man, Jesus Christ, hath abounded unto -many. - -5:16 And not as it was by one that sinned, so is the gift: for the -judgment was by one to condemnation, but the free gift is of many -offences unto justification. - -5:17 For if by one man's offence death reigned by one; much more they -which receive abundance of grace and of the gift of righteousness -shall reign in life by one, Jesus Christ.) 5:18 Therefore as by the -offence of one judgment came upon all men to condemnation; even so by -the righteousness of one the free gift came upon all men unto -justification of life. - -5:19 For as by one man's disobedience many were made sinners, so by -the obedience of one shall many be made righteous. - -5:20 Moreover the law entered, that the offence might abound. But -where sin abounded, grace did much more abound: 5:21 That as sin hath -reigned unto death, even so might grace reign through righteousness -unto eternal life by Jesus Christ our Lord. - -6:1 What shall we say then? Shall we continue in sin, that grace may -abound? 6:2 God forbid. How shall we, that are dead to sin, live any -longer therein? 6:3 Know ye not, that so many of us as were baptized -into Jesus Christ were baptized into his death? 6:4 Therefore we are -buried with him by baptism into death: that like as Christ was raised -up from the dead by the glory of the Father, even so we also should -walk in newness of life. - -6:5 For if we have been planted together in the likeness of his death, -we shall be also in the likeness of his resurrection: 6:6 Knowing -this, that our old man is crucified with him, that the body of sin -might be destroyed, that henceforth we should not serve sin. - -6:7 For he that is dead is freed from sin. - -6:8 Now if we be dead with Christ, we believe that we shall also live -with him: 6:9 Knowing that Christ being raised from the dead dieth no -more; death hath no more dominion over him. - -6:10 For in that he died, he died unto sin once: but in that he -liveth, he liveth unto God. - -6:11 Likewise reckon ye also yourselves to be dead indeed unto sin, -but alive unto God through Jesus Christ our Lord. - -6:12 Let not sin therefore reign in your mortal body, that ye should -obey it in the lusts thereof. - -6:13 Neither yield ye your members as instruments of unrighteousness -unto sin: but yield yourselves unto God, as those that are alive from -the dead, and your members as instruments of righteousness unto God. - -6:14 For sin shall not have dominion over you: for ye are not under -the law, but under grace. - -6:15 What then? shall we sin, because we are not under the law, but -under grace? God forbid. - -6:16 Know ye not, that to whom ye yield yourselves servants to obey, -his servants ye are to whom ye obey; whether of sin unto death, or of -obedience unto righteousness? 6:17 But God be thanked, that ye were -the servants of sin, but ye have obeyed from the heart that form of -doctrine which was delivered you. - -6:18 Being then made free from sin, ye became the servants of -righteousness. - -6:19 I speak after the manner of men because of the infirmity of your -flesh: for as ye have yielded your members servants to uncleanness and -to iniquity unto iniquity; even so now yield your members servants to -righteousness unto holiness. - -6:20 For when ye were the servants of sin, ye were free from -righteousness. - -6:21 What fruit had ye then in those things whereof ye are now -ashamed? for the end of those things is death. - -6:22 But now being made free from sin, and become servants to God, ye -have your fruit unto holiness, and the end everlasting life. - -6:23 For the wages of sin is death; but the gift of God is eternal -life through Jesus Christ our Lord. - -7:1 Know ye not, brethren, (for I speak to them that know the law,) -how that the law hath dominion over a man as long as he liveth? 7:2 -For the woman which hath an husband is bound by the law to her husband -so long as he liveth; but if the husband be dead, she is loosed from -the law of her husband. - -7:3 So then if, while her husband liveth, she be married to another -man, she shall be called an adulteress: but if her husband be dead, -she is free from that law; so that she is no adulteress, though she be -married to another man. - -7:4 Wherefore, my brethren, ye also are become dead to the law by the -body of Christ; that ye should be married to another, even to him who -is raised from the dead, that we should bring forth fruit unto God. - -7:5 For when we were in the flesh, the motions of sins, which were by -the law, did work in our members to bring forth fruit unto death. - -7:6 But now we are delivered from the law, that being dead wherein we -were held; that we should serve in newness of spirit, and not in the -oldness of the letter. - -7:7 What shall we say then? Is the law sin? God forbid. Nay, I had not -known sin, but by the law: for I had not known lust, except the law -had said, Thou shalt not covet. - -7:8 But sin, taking occasion by the commandment, wrought in me all -manner of concupiscence. For without the law sin was dead. - -7:9 For I was alive without the law once: but when the commandment -came, sin revived, and I died. - -7:10 And the commandment, which was ordained to life, I found to be -unto death. - -7:11 For sin, taking occasion by the commandment, deceived me, and by -it slew me. - -7:12 Wherefore the law is holy, and the commandment holy, and just, -and good. - -7:13 Was then that which is good made death unto me? God forbid. But -sin, that it might appear sin, working death in me by that which is -good; that sin by the commandment might become exceeding sinful. - -7:14 For we know that the law is spiritual: but I am carnal, sold -under sin. - -7:15 For that which I do I allow not: for what I would, that do I not; -but what I hate, that do I. - -7:16 If then I do that which I would not, I consent unto the law that -it is good. - -7:17 Now then it is no more I that do it, but sin that dwelleth in me. - -7:18 For I know that in me (that is, in my flesh,) dwelleth no good -thing: for to will is present with me; but how to perform that which -is good I find not. - -7:19 For the good that I would I do not: but the evil which I would -not, that I do. - -7:20 Now if I do that I would not, it is no more I that do it, but sin -that dwelleth in me. - -7:21 I find then a law, that, when I would do good, evil is present -with me. - -7:22 For I delight in the law of God after the inward man: 7:23 But I -see another law in my members, warring against the law of my mind, and -bringing me into captivity to the law of sin which is in my members. - -7:24 O wretched man that I am! who shall deliver me from the body of -this death? 7:25 I thank God through Jesus Christ our Lord. So then -with the mind I myself serve the law of God; but with the flesh the -law of sin. - -8:1 There is therefore now no condemnation to them which are in Christ -Jesus, who walk not after the flesh, but after the Spirit. - -8:2 For the law of the Spirit of life in Christ Jesus hath made me -free from the law of sin and death. - -8:3 For what the law could not do, in that it was weak through the -flesh, God sending his own Son in the likeness of sinful flesh, and -for sin, condemned sin in the flesh: 8:4 That the righteousness of the -law might be fulfilled in us, who walk not after the flesh, but after -the Spirit. - -8:5 For they that are after the flesh do mind the things of the flesh; -but they that are after the Spirit the things of the Spirit. - -8:6 For to be carnally minded is death; but to be spiritually minded -is life and peace. - -8:7 Because the carnal mind is enmity against God: for it is not -subject to the law of God, neither indeed can be. - -8:8 So then they that are in the flesh cannot please God. - -8:9 But ye are not in the flesh, but in the Spirit, if so be that the -Spirit of God dwell in you. Now if any man have not the Spirit of -Christ, he is none of his. - -8:10 And if Christ be in you, the body is dead because of sin; but the -Spirit is life because of righteousness. - -8:11 But if the Spirit of him that raised up Jesus from the dead dwell -in you, he that raised up Christ from the dead shall also quicken your -mortal bodies by his Spirit that dwelleth in you. - -8:12 Therefore, brethren, we are debtors, not to the flesh, to live -after the flesh. - -8:13 For if ye live after the flesh, ye shall die: but if ye through -the Spirit do mortify the deeds of the body, ye shall live. - -8:14 For as many as are led by the Spirit of God, they are the sons of -God. - -8:15 For ye have not received the spirit of bondage again to fear; but -ye have received the Spirit of adoption, whereby we cry, Abba, Father. - -8:16 The Spirit itself beareth witness with our spirit, that we are -the children of God: 8:17 And if children, then heirs; heirs of God, -and joint-heirs with Christ; if so be that we suffer with him, that we -may be also glorified together. - -8:18 For I reckon that the sufferings of this present time are not -worthy to be compared with the glory which shall be revealed in us. - -8:19 For the earnest expectation of the creature waiteth for the -manifestation of the sons of God. - -8:20 For the creature was made subject to vanity, not willingly, but -by reason of him who hath subjected the same in hope, 8:21 Because the -creature itself also shall be delivered from the bondage of corruption -into the glorious liberty of the children of God. - -8:22 For we know that the whole creation groaneth and travaileth in -pain together until now. - -8:23 And not only they, but ourselves also, which have the firstfruits -of the Spirit, even we ourselves groan within ourselves, waiting for -the adoption, to wit, the redemption of our body. - -8:24 For we are saved by hope: but hope that is seen is not hope: for -what a man seeth, why doth he yet hope for? 8:25 But if we hope for -that we see not, then do we with patience wait for it. - -8:26 Likewise the Spirit also helpeth our infirmities: for we know not -what we should pray for as we ought: but the Spirit itself maketh -intercession for us with groanings which cannot be uttered. - -8:27 And he that searcheth the hearts knoweth what is the mind of the -Spirit, because he maketh intercession for the saints according to the -will of God. - -8:28 And we know that all things work together for good to them that -love God, to them who are the called according to his purpose. - -8:29 For whom he did foreknow, he also did predestinate to be -conformed to the image of his Son, that he might be the firstborn -among many brethren. - -8:30 Moreover whom he did predestinate, them he also called: and whom -he called, them he also justified: and whom he justified, them he also -glorified. - -8:31 What shall we then say to these things? If God be for us, who can -be against us? 8:32 He that spared not his own Son, but delivered him -up for us all, how shall he not with him also freely give us all -things? 8:33 Who shall lay any thing to the charge of God's elect? It -is God that justifieth. - -8:34 Who is he that condemneth? It is Christ that died, yea rather, -that is risen again, who is even at the right hand of God, who also -maketh intercession for us. - -8:35 Who shall separate us from the love of Christ? shall tribulation, -or distress, or persecution, or famine, or nakedness, or peril, or -sword? 8:36 As it is written, For thy sake we are killed all the day -long; we are accounted as sheep for the slaughter. - -8:37 Nay, in all these things we are more than conquerors through him -that loved us. - -8:38 For I am persuaded, that neither death, nor life, nor angels, nor -principalities, nor powers, nor things present, nor things to come, -8:39 Nor height, nor depth, nor any other creature, shall be able to -separate us from the love of God, which is in Christ Jesus our Lord. - -9:1 I say the truth in Christ, I lie not, my conscience also bearing -me witness in the Holy Ghost, 9:2 That I have great heaviness and -continual sorrow in my heart. - -9:3 For I could wish that myself were accursed from Christ for my -brethren, my kinsmen according to the flesh: 9:4 Who are Israelites; -to whom pertaineth the adoption, and the glory, and the covenants, and -the giving of the law, and the service of God, and the promises; 9:5 -Whose are the fathers, and of whom as concerning the flesh Christ -came, who is over all, God blessed for ever. Amen. - -9:6 Not as though the word of God hath taken none effect. For they are -not all Israel, which are of Israel: 9:7 Neither, because they are the -seed of Abraham, are they all children: but, In Isaac shall thy seed -be called. - -9:8 That is, They which are the children of the flesh, these are not -the children of God: but the children of the promise are counted for -the seed. - -9:9 For this is the word of promise, At this time will I come, and -Sarah shall have a son. - -9:10 And not only this; but when Rebecca also had conceived by one, -even by our father Isaac; 9:11 (For the children being not yet born, -neither having done any good or evil, that the purpose of God -according to election might stand, not of works, but of him that -calleth;) 9:12 It was said unto her, The elder shall serve the -younger. - -9:13 As it is written, Jacob have I loved, but Esau have I hated. - -9:14 What shall we say then? Is there unrighteousness with God? God -forbid. - -9:15 For he saith to Moses, I will have mercy on whom I will have -mercy, and I will have compassion on whom I will have compassion. - -9:16 So then it is not of him that willeth, nor of him that runneth, -but of God that sheweth mercy. - -9:17 For the scripture saith unto Pharaoh, Even for this same purpose -have I raised thee up, that I might shew my power in thee, and that my -name might be declared throughout all the earth. - -9:18 Therefore hath he mercy on whom he will have mercy, and whom he -will he hardeneth. - -9:19 Thou wilt say then unto me, Why doth he yet find fault? For who -hath resisted his will? 9:20 Nay but, O man, who art thou that -repliest against God? Shall the thing formed say to him that formed -it, Why hast thou made me thus? 9:21 Hath not the potter power over -the clay, of the same lump to make one vessel unto honour, and another -unto dishonour? 9:22 What if God, willing to shew his wrath, and to -make his power known, endured with much longsuffering the vessels of -wrath fitted to destruction: 9:23 And that he might make known the -riches of his glory on the vessels of mercy, which he had afore -prepared unto glory, 9:24 Even us, whom he hath called, not of the -Jews only, but also of the Gentiles? 9:25 As he saith also in Osee, I -will call them my people, which were not my people; and her beloved, -which was not beloved. - -9:26 And it shall come to pass, that in the place where it was said -unto them, Ye are not my people; there shall they be called the -children of the living God. - -9:27 Esaias also crieth concerning Israel, Though the number of the -children of Israel be as the sand of the sea, a remnant shall be -saved: 9:28 For he will finish the work, and cut it short in -righteousness: because a short work will the Lord make upon the earth. - -9:29 And as Esaias said before, Except the Lord of Sabaoth had left us -a seed, we had been as Sodoma, and been made like unto Gomorrha. - -9:30 What shall we say then? That the Gentiles, which followed not -after righteousness, have attained to righteousness, even the -righteousness which is of faith. - -9:31 But Israel, which followed after the law of righteousness, hath -not attained to the law of righteousness. - -9:32 Wherefore? Because they sought it not by faith, but as it were by -the works of the law. For they stumbled at that stumblingstone; 9:33 -As it is written, Behold, I lay in Sion a stumblingstone and rock of -offence: and whosoever believeth on him shall not be ashamed. - -10:1 Brethren, my heart's desire and prayer to God for Israel is, that -they might be saved. - -10:2 For I bear them record that they have a zeal of God, but not -according to knowledge. - -10:3 For they being ignorant of God's righteousness, and going about -to establish their own righteousness, have not submitted themselves -unto the righteousness of God. - -10:4 For Christ is the end of the law for righteousness to every one -that believeth. - -10:5 For Moses describeth the righteousness which is of the law, That -the man which doeth those things shall live by them. - -10:6 But the righteousness which is of faith speaketh on this wise, -Say not in thine heart, Who shall ascend into heaven? (that is, to -bring Christ down from above:) 10:7 Or, Who shall descend into the -deep? (that is, to bring up Christ again from the dead.) 10:8 But -what saith it? The word is nigh thee, even in thy mouth, and in thy -heart: that is, the word of faith, which we preach; 10:9 That if thou -shalt confess with thy mouth the Lord Jesus, and shalt believe in -thine heart that God hath raised him from the dead, thou shalt be -saved. - -10:10 For with the heart man believeth unto righteousness; and with -the mouth confession is made unto salvation. - -10:11 For the scripture saith, Whosoever believeth on him shall not be -ashamed. - -10:12 For there is no difference between the Jew and the Greek: for -the same Lord over all is rich unto all that call upon him. - -10:13 For whosoever shall call upon the name of the Lord shall be -saved. - -10:14 How then shall they call on him in whom they have not believed? -and how shall they believe in him of whom they have not heard? and how -shall they hear without a preacher? 10:15 And how shall they preach, -except they be sent? as it is written, How beautiful are the feet of -them that preach the gospel of peace, and bring glad tidings of good -things! 10:16 But they have not all obeyed the gospel. For Esaias -saith, Lord, who hath believed our report? 10:17 So then faith cometh -by hearing, and hearing by the word of God. - -10:18 But I say, Have they not heard? Yes verily, their sound went -into all the earth, and their words unto the ends of the world. - -10:19 But I say, Did not Israel know? First Moses saith, I will -provoke you to jealousy by them that are no people, and by a foolish -nation I will anger you. - -10:20 But Esaias is very bold, and saith, I was found of them that -sought me not; I was made manifest unto them that asked not after me. - -10:21 But to Israel he saith, All day long I have stretched forth my -hands unto a disobedient and gainsaying people. - -11:1 I say then, Hath God cast away his people? God forbid. For I also -am an Israelite, of the seed of Abraham, of the tribe of Benjamin. - -11:2 God hath not cast away his people which he foreknew. Wot ye not -what the scripture saith of Elias? how he maketh intercession to God -against Israel saying, 11:3 Lord, they have killed thy prophets, and -digged down thine altars; and I am left alone, and they seek my life. - -11:4 But what saith the answer of God unto him? I have reserved to -myself seven thousand men, who have not bowed the knee to the image of -Baal. - -11:5 Even so then at this present time also there is a remnant -according to the election of grace. - -11:6 And if by grace, then is it no more of works: otherwise grace is -no more grace. But if it be of works, then it is no more grace: -otherwise work is no more work. - -11:7 What then? Israel hath not obtained that which he seeketh for; -but the election hath obtained it, and the rest were blinded. - -11:8 (According as it is written, God hath given them the spirit of -slumber, eyes that they should not see, and ears that they should not -hear;) unto this day. - -11:9 And David saith, Let their table be made a snare, and a trap, and -a stumblingblock, and a recompence unto them: 11:10 Let their eyes be -darkened, that they may not see, and bow down their back alway. - -11:11 I say then, Have they stumbled that they should fall? God -forbid: but rather through their fall salvation is come unto the -Gentiles, for to provoke them to jealousy. - -11:12 Now if the fall of them be the riches of the world, and the -diminishing of them the riches of the Gentiles; how much more their -fulness? 11:13 For I speak to you Gentiles, inasmuch as I am the -apostle of the Gentiles, I magnify mine office: 11:14 If by any means -I may provoke to emulation them which are my flesh, and might save -some of them. - -11:15 For if the casting away of them be the reconciling of the world, -what shall the receiving of them be, but life from the dead? 11:16 -For if the firstfruit be holy, the lump is also holy: and if the root -be holy, so are the branches. - -11:17 And if some of the branches be broken off, and thou, being a -wild olive tree, wert graffed in among them, and with them partakest -of the root and fatness of the olive tree; 11:18 Boast not against the -branches. But if thou boast, thou bearest not the root, but the root -thee. - -11:19 Thou wilt say then, The branches were broken off, that I might -be graffed in. - -11:20 Well; because of unbelief they were broken off, and thou -standest by faith. Be not highminded, but fear: 11:21 For if God -spared not the natural branches, take heed lest he also spare not -thee. - -11:22 Behold therefore the goodness and severity of God: on them which -fell, severity; but toward thee, goodness, if thou continue in his -goodness: otherwise thou also shalt be cut off. - -11:23 And they also, if they abide not still in unbelief, shall be -graffed in: for God is able to graff them in again. - -11:24 For if thou wert cut out of the olive tree which is wild by -nature, and wert graffed contrary to nature into a good olive tree: -how much more shall these, which be the natural branches, be graffed -into their own olive tree? 11:25 For I would not, brethren, that ye -should be ignorant of this mystery, lest ye should be wise in your own -conceits; that blindness in part is happened to Israel, until the -fulness of the Gentiles be come in. - -11:26 And so all Israel shall be saved: as it is written, There shall -come out of Sion the Deliverer, and shall turn away ungodliness from -Jacob: 11:27 For this is my covenant unto them, when I shall take away -their sins. - -11:28 As concerning the gospel, they are enemies for your sakes: but -as touching the election, they are beloved for the father's sakes. - -11:29 For the gifts and calling of God are without repentance. - -11:30 For as ye in times past have not believed God, yet have now -obtained mercy through their unbelief: 11:31 Even so have these also -now not believed, that through your mercy they also may obtain mercy. - -11:32 For God hath concluded them all in unbelief, that he might have -mercy upon all. - -11:33 O the depth of the riches both of the wisdom and knowledge of -God! how unsearchable are his judgments, and his ways past finding -out! 11:34 For who hath known the mind of the Lord? or who hath been -his counsellor? 11:35 Or who hath first given to him, and it shall be -recompensed unto him again? 11:36 For of him, and through him, and to -him, are all things: to whom be glory for ever. Amen. - -12:1 I beseech you therefore, brethren, by the mercies of God, that ye -present your bodies a living sacrifice, holy, acceptable unto God, -which is your reasonable service. - -12:2 And be not conformed to this world: but be ye transformed by the -renewing of your mind, that ye may prove what is that good, and -acceptable, and perfect, will of God. - -12:3 For I say, through the grace given unto me, to every man that is -among you, not to think of himself more highly than he ought to think; -but to think soberly, according as God hath dealt to every man the -measure of faith. - -12:4 For as we have many members in one body, and all members have not -the same office: 12:5 So we, being many, are one body in Christ, and -every one members one of another. - -12:6 Having then gifts differing according to the grace that is given -to us, whether prophecy, let us prophesy according to the proportion -of faith; 12:7 Or ministry, let us wait on our ministering: or he that -teacheth, on teaching; 12:8 Or he that exhorteth, on exhortation: he -that giveth, let him do it with simplicity; he that ruleth, with -diligence; he that sheweth mercy, with cheerfulness. - -12:9 Let love be without dissimulation. Abhor that which is evil; -cleave to that which is good. - -12:10 Be kindly affectioned one to another with brotherly love; in -honour preferring one another; 12:11 Not slothful in business; fervent -in spirit; serving the Lord; 12:12 Rejoicing in hope; patient in -tribulation; continuing instant in prayer; 12:13 Distributing to the -necessity of saints; given to hospitality. - -12:14 Bless them which persecute you: bless, and curse not. - -12:15 Rejoice with them that do rejoice, and weep with them that weep. - -12:16 Be of the same mind one toward another. Mind not high things, -but condescend to men of low estate. Be not wise in your own conceits. - -12:17 Recompense to no man evil for evil. Provide things honest in the -sight of all men. - -12:18 If it be possible, as much as lieth in you, live peaceably with -all men. - -12:19 Dearly beloved, avenge not yourselves, but rather give place -unto wrath: for it is written, Vengeance is mine; I will repay, saith -the Lord. - -12:20 Therefore if thine enemy hunger, feed him; if he thirst, give -him drink: for in so doing thou shalt heap coals of fire on his head. - -12:21 Be not overcome of evil, but overcome evil with good. - -13:1 Let every soul be subject unto the higher powers. For there is no -power but of God: the powers that be are ordained of God. - -13:2 Whosoever therefore resisteth the power, resisteth the ordinance -of God: and they that resist shall receive to themselves damnation. - -13:3 For rulers are not a terror to good works, but to the evil. Wilt -thou then not be afraid of the power? do that which is good, and thou -shalt have praise of the same: 13:4 For he is the minister of God to -thee for good. But if thou do that which is evil, be afraid; for he -beareth not the sword in vain: for he is the minister of God, a -revenger to execute wrath upon him that doeth evil. - -13:5 Wherefore ye must needs be subject, not only for wrath, but also -for conscience sake. - -13:6 For for this cause pay ye tribute also: for they are God's -ministers, attending continually upon this very thing. - -13:7 Render therefore to all their dues: tribute to whom tribute is -due; custom to whom custom; fear to whom fear; honour to whom honour. - -13:8 Owe no man any thing, but to love one another: for he that loveth -another hath fulfilled the law. - -13:9 For this, Thou shalt not commit adultery, Thou shalt not kill, -Thou shalt not steal, Thou shalt not bear false witness, Thou shalt -not covet; and if there be any other commandment, it is briefly -comprehended in this saying, namely, Thou shalt love thy neighbour as -thyself. - -13:10 Love worketh no ill to his neighbour: therefore love is the -fulfilling of the law. - -13:11 And that, knowing the time, that now it is high time to awake -out of sleep: for now is our salvation nearer than when we believed. - -13:12 The night is far spent, the day is at hand: let us therefore -cast off the works of darkness, and let us put on the armour of light. - -13:13 Let us walk honestly, as in the day; not in rioting and -drunkenness, not in chambering and wantonness, not in strife and -envying. - -13:14 But put ye on the Lord Jesus Christ, and make not provision for -the flesh, to fulfil the lusts thereof. - -14:1 Him that is weak in the faith receive ye, but not to doubtful -disputations. - -14:2 For one believeth that he may eat all things: another, who is -weak, eateth herbs. - -14:3 Let not him that eateth despise him that eateth not; and let not -him which eateth not judge him that eateth: for God hath received him. - -14:4 Who art thou that judgest another man's servant? to his own -master he standeth or falleth. Yea, he shall be holden up: for God is -able to make him stand. - -14:5 One man esteemeth one day above another: another esteemeth every -day alike. Let every man be fully persuaded in his own mind. - -14:6 He that regardeth the day, regardeth it unto the Lord; and he -that regardeth not the day, to the Lord he doth not regard it. He that -eateth, eateth to the Lord, for he giveth God thanks; and he that -eateth not, to the Lord he eateth not, and giveth God thanks. - -14:7 For none of us liveth to himself, and no man dieth to himself. - -14:8 For whether we live, we live unto the Lord; and whether we die, -we die unto the Lord: whether we live therefore, or die, we are the -Lord's. - -14:9 For to this end Christ both died, and rose, and revived, that he -might be Lord both of the dead and living. - -14:10 But why dost thou judge thy brother? or why dost thou set at -nought thy brother? for we shall all stand before the judgment seat of -Christ. - -14:11 For it is written, As I live, saith the Lord, every knee shall -bow to me, and every tongue shall confess to God. - -14:12 So then every one of us shall give account of himself to God. - -14:13 Let us not therefore judge one another any more: but judge this -rather, that no man put a stumblingblock or an occasion to fall in his -brother's way. - -14:14 I know, and am persuaded by the Lord Jesus, that there is -nothing unclean of itself: but to him that esteemeth any thing to be -unclean, to him it is unclean. - -14:15 But if thy brother be grieved with thy meat, now walkest thou -not charitably. Destroy not him with thy meat, for whom Christ died. - -14:16 Let not then your good be evil spoken of: 14:17 For the kingdom -of God is not meat and drink; but righteousness, and peace, and joy in -the Holy Ghost. - -14:18 For he that in these things serveth Christ is acceptable to God, -and approved of men. - -14:19 Let us therefore follow after the things which make for peace, -and things wherewith one may edify another. - -14:20 For meat destroy not the work of God. All things indeed are -pure; but it is evil for that man who eateth with offence. - -14:21 It is good neither to eat flesh, nor to drink wine, nor any -thing whereby thy brother stumbleth, or is offended, or is made weak. - -14:22 Hast thou faith? have it to thyself before God. Happy is he that -condemneth not himself in that thing which he alloweth. - -14:23 And he that doubteth is damned if he eat, because he eateth not -of faith: for whatsoever is not of faith is sin. - -15:1 We then that are strong ought to bear the infirmities of the -weak, and not to please ourselves. - -15:2 Let every one of us please his neighbour for his good to -edification. - -15:3 For even Christ pleased not himself; but, as it is written, The -reproaches of them that reproached thee fell on me. - -15:4 For whatsoever things were written aforetime were written for our -learning, that we through patience and comfort of the scriptures might -have hope. - -15:5 Now the God of patience and consolation grant you to be -likeminded one toward another according to Christ Jesus: 15:6 That ye -may with one mind and one mouth glorify God, even the Father of our -Lord Jesus Christ. - -15:7 Wherefore receive ye one another, as Christ also received us to -the glory of God. - -15:8 Now I say that Jesus Christ was a minister of the circumcision -for the truth of God, to confirm the promises made unto the fathers: -15:9 And that the Gentiles might glorify God for his mercy; as it is -written, For this cause I will confess to thee among the Gentiles, and -sing unto thy name. - -15:10 And again he saith, Rejoice, ye Gentiles, with his people. - -15:11 And again, Praise the Lord, all ye Gentiles; and laud him, all -ye people. - -15:12 And again, Esaias saith, There shall be a root of Jesse, and he -that shall rise to reign over the Gentiles; in him shall the Gentiles -trust. - -15:13 Now the God of hope fill you with all joy and peace in -believing, that ye may abound in hope, through the power of the Holy -Ghost. - -15:14 And I myself also am persuaded of you, my brethren, that ye also -are full of goodness, filled with all knowledge, able also to admonish -one another. - -15:15 Nevertheless, brethren, I have written the more boldly unto you -in some sort, as putting you in mind, because of the grace that is -given to me of God, 15:16 That I should be the minister of Jesus -Christ to the Gentiles, ministering the gospel of God, that the -offering up of the Gentiles might be acceptable, being sanctified by -the Holy Ghost. - -15:17 I have therefore whereof I may glory through Jesus Christ in -those things which pertain to God. - -15:18 For I will not dare to speak of any of those things which Christ -hath not wrought by me, to make the Gentiles obedient, by word and -deed, 15:19 Through mighty signs and wonders, by the power of the -Spirit of God; so that from Jerusalem, and round about unto Illyricum, -I have fully preached the gospel of Christ. - -15:20 Yea, so have I strived to preach the gospel, not where Christ -was named, lest I should build upon another man's foundation: 15:21 -But as it is written, To whom he was not spoken of, they shall see: -and they that have not heard shall understand. - -15:22 For which cause also I have been much hindered from coming to -you. - -15:23 But now having no more place in these parts, and having a great -desire these many years to come unto you; 15:24 Whensoever I take my -journey into Spain, I will come to you: for I trust to see you in my -journey, and to be brought on my way thitherward by you, if first I be -somewhat filled with your company. - -15:25 But now I go unto Jerusalem to minister unto the saints. - -15:26 For it hath pleased them of Macedonia and Achaia to make a -certain contribution for the poor saints which are at Jerusalem. - -15:27 It hath pleased them verily; and their debtors they are. For if -the Gentiles have been made partakers of their spiritual things, their -duty is also to minister unto them in carnal things. - -15:28 When therefore I have performed this, and have sealed to them -this fruit, I will come by you into Spain. - -15:29 And I am sure that, when I come unto you, I shall come in the -fulness of the blessing of the gospel of Christ. - -15:30 Now I beseech you, brethren, for the Lord Jesus Christ's sake, -and for the love of the Spirit, that ye strive together with me in -your prayers to God for me; 15:31 That I may be delivered from them -that do not believe in Judaea; and that my service which I have for -Jerusalem may be accepted of the saints; 15:32 That I may come unto -you with joy by the will of God, and may with you be refreshed. - -15:33 Now the God of peace be with you all. Amen. - -16:1 I commend unto you Phebe our sister, which is a servant of the -church which is at Cenchrea: 16:2 That ye receive her in the Lord, as -becometh saints, and that ye assist her in whatsoever business she -hath need of you: for she hath been a succourer of many, and of myself -also. - -16:3 Greet Priscilla and Aquila my helpers in Christ Jesus: 16:4 Who -have for my life laid down their own necks: unto whom not only I give -thanks, but also all the churches of the Gentiles. - -16:5 Likewise greet the church that is in their house. Salute my -well-beloved Epaenetus, who is the firstfruits of Achaia unto Christ. - -16:6 Greet Mary, who bestowed much labour on us. - -16:7 Salute Andronicus and Junia, my kinsmen, and my fellow-prisoners, -who are of note among the apostles, who also were in Christ before me. - -16:8 Greet Amplias my beloved in the Lord. - -16:9 Salute Urbane, our helper in Christ, and Stachys my beloved. - -16:10 Salute Apelles approved in Christ. Salute them which are of -Aristobulus' household. - -16:11 Salute Herodion my kinsman. Greet them that be of the household -of Narcissus, which are in the Lord. - -16:12 Salute Tryphena and Tryphosa, who labour in the Lord. Salute the -beloved Persis, which laboured much in the Lord. - -16:13 Salute Rufus chosen in the Lord, and his mother and mine. - -16:14 Salute Asyncritus, Phlegon, Hermas, Patrobas, Hermes, and the -brethren which are with them. - -16:15 Salute Philologus, and Julia, Nereus, and his sister, and -Olympas, and all the saints which are with them. - -16:16 Salute one another with an holy kiss. The churches of Christ -salute you. - -16:17 Now I beseech you, brethren, mark them which cause divisions and -offences contrary to the doctrine which ye have learned; and avoid -them. - -16:18 For they that are such serve not our Lord Jesus Christ, but -their own belly; and by good words and fair speeches deceive the -hearts of the simple. - -16:19 For your obedience is come abroad unto all men. I am glad -therefore on your behalf: but yet I would have you wise unto that -which is good, and simple concerning evil. - -16:20 And the God of peace shall bruise Satan under your feet shortly. -The grace of our Lord Jesus Christ be with you. Amen. - -16:21 Timotheus my workfellow, and Lucius, and Jason, and Sosipater, -my kinsmen, salute you. - -16:22 I Tertius, who wrote this epistle, salute you in the Lord. - -16:23 Gaius mine host, and of the whole church, saluteth you. Erastus -the chamberlain of the city saluteth you, and Quartus a brother. - -16:24 The grace of our Lord Jesus Christ be with you all. Amen. - -16:25 Now to him that is of power to stablish you according to my -gospel, and the preaching of Jesus Christ, according to the revelation -of the mystery, which was kept secret since the world began, 16:26 But -now is made manifest, and by the scriptures of the prophets, according -to the commandment of the everlasting God, made known to all nations -for the obedience of faith: 16:27 To God only wise, be glory through -Jesus Christ for ever. Amen. - - - - -The First Epistle of Paul the Apostle to the Corinthians - - -1:1 Paul called to be an apostle of Jesus Christ through the will of -God, and Sosthenes our brother, 1:2 Unto the church of God which is at -Corinth, to them that are sanctified in Christ Jesus, called to be -saints, with all that in every place call upon the name of Jesus -Christ our Lord, both their's and our's: 1:3 Grace be unto you, and -peace, from God our Father, and from the Lord Jesus Christ. - -1:4 I thank my God always on your behalf, for the grace of God which -is given you by Jesus Christ; 1:5 That in every thing ye are enriched -by him, in all utterance, and in all knowledge; 1:6 Even as the -testimony of Christ was confirmed in you: 1:7 So that ye come behind -in no gift; waiting for the coming of our Lord Jesus Christ: 1:8 Who -shall also confirm you unto the end, that ye may be blameless in the -day of our Lord Jesus Christ. - -1:9 God is faithful, by whom ye were called unto the fellowship of his -Son Jesus Christ our Lord. - -1:10 Now I beseech you, brethren, by the name of our Lord Jesus -Christ, that ye all speak the same thing, and that there be no -divisions among you; but that ye be perfectly joined together in the -same mind and in the same judgment. - -1:11 For it hath been declared unto me of you, my brethren, by them -which are of the house of Chloe, that there are contentions among you. - -1:12 Now this I say, that every one of you saith, I am of Paul; and I -of Apollos; and I of Cephas; and I of Christ. - -1:13 Is Christ divided? was Paul crucified for you? or were ye -baptized in the name of Paul? 1:14 I thank God that I baptized none -of you, but Crispus and Gaius; 1:15 Lest any should say that I had -baptized in mine own name. - -1:16 And I baptized also the household of Stephanas: besides, I know -not whether I baptized any other. - -1:17 For Christ sent me not to baptize, but to preach the gospel: not -with wisdom of words, lest the cross of Christ should be made of none -effect. - -1:18 For the preaching of the cross is to them that perish -foolishness; but unto us which are saved it is the power of God. - -1:19 For it is written, I will destroy the wisdom of the wise, and -will bring to nothing the understanding of the prudent. - -1:20 Where is the wise? where is the scribe? where is the disputer of -this world? hath not God made foolish the wisdom of this world? 1:21 -For after that in the wisdom of God the world by wisdom knew not God, -it pleased God by the foolishness of preaching to save them that -believe. - -1:22 For the Jews require a sign, and the Greeks seek after wisdom: -1:23 But we preach Christ crucified, unto the Jews a stumblingblock, -and unto the Greeks foolishness; 1:24 But unto them which are called, -both Jews and Greeks, Christ the power of God, and the wisdom of God. - -1:25 Because the foolishness of God is wiser than men; and the -weakness of God is stronger than men. - -1:26 For ye see your calling, brethren, how that not many wise men -after the flesh, not many mighty, not many noble, are called: 1:27 But -God hath chosen the foolish things of the world to confound the wise; -and God hath chosen the weak things of the world to confound the -things which are mighty; 1:28 And base things of the world, and things -which are despised, hath God chosen, yea, and things which are not, to -bring to nought things that are: 1:29 That no flesh should glory in -his presence. - -1:30 But of him are ye in Christ Jesus, who of God is made unto us -wisdom, and righteousness, and sanctification, and redemption: 1:31 -That, according as it is written, He that glorieth, let him glory in -the Lord. - -2:1 And I, brethren, when I came to you, came not with excellency of -speech or of wisdom, declaring unto you the testimony of God. - -2:2 For I determined not to know any thing among you, save Jesus -Christ, and him crucified. - -2:3 And I was with you in weakness, and in fear, and in much -trembling. - -2:4 And my speech and my preaching was not with enticing words of -man's wisdom, but in demonstration of the Spirit and of power: 2:5 -That your faith should not stand in the wisdom of men, but in the -power of God. - -2:6 Howbeit we speak wisdom among them that are perfect: yet not the -wisdom of this world, nor of the princes of this world, that come to -nought: 2:7 But we speak the wisdom of God in a mystery, even the -hidden wisdom, which God ordained before the world unto our glory: 2:8 -Which none of the princes of this world knew: for had they known it, -they would not have crucified the Lord of glory. - -2:9 But as it is written, Eye hath not seen, nor ear heard, neither -have entered into the heart of man, the things which God hath prepared -for them that love him. - -2:10 But God hath revealed them unto us by his Spirit: for the Spirit -searcheth all things, yea, the deep things of God. - -2:11 For what man knoweth the things of a man, save the spirit of man -which is in him? even so the things of God knoweth no man, but the -Spirit of God. - -2:12 Now we have received, not the spirit of the world, but the spirit -which is of God; that we might know the things that are freely given -to us of God. - -2:13 Which things also we speak, not in the words which man's wisdom -teacheth, but which the Holy Ghost teacheth; comparing spiritual -things with spiritual. - -2:14 But the natural man receiveth not the things of the Spirit of -God: for they are foolishness unto him: neither can he know them, -because they are spiritually discerned. - -2:15 But he that is spiritual judgeth all things, yet he himself is -judged of no man. - -2:16 For who hath known the mind of the Lord, that he may instruct -him? But we have the mind of Christ. - -3:1 And I, brethren, could not speak unto you as unto spiritual, but -as unto carnal, even as unto babes in Christ. - -3:2 I have fed you with milk, and not with meat: for hitherto ye were -not able to bear it, neither yet now are ye able. - -3:3 For ye are yet carnal: for whereas there is among you envying, and -strife, and divisions, are ye not carnal, and walk as men? 3:4 For -while one saith, I am of Paul; and another, I am of Apollos; are ye -not carnal? 3:5 Who then is Paul, and who is Apollos, but ministers -by whom ye believed, even as the Lord gave to every man? 3:6 I have -planted, Apollos watered; but God gave the increase. - -3:7 So then neither is he that planteth any thing, neither he that -watereth; but God that giveth the increase. - -3:8 Now he that planteth and he that watereth are one: and every man -shall receive his own reward according to his own labour. - -3:9 For we are labourers together with God: ye are God's husbandry, ye -are God's building. - -3:10 According to the grace of God which is given unto me, as a wise -masterbuilder, I have laid the foundation, and another buildeth -thereon. But let every man take heed how he buildeth thereupon. - -3:11 For other foundation can no man lay than that is laid, which is -Jesus Christ. - -3:12 Now if any man build upon this foundation gold, silver, precious -stones, wood, hay, stubble; 3:13 Every man's work shall be made -manifest: for the day shall declare it, because it shall be revealed -by fire; and the fire shall try every man's work of what sort it is. - -3:14 If any man's work abide which he hath built thereupon, he shall -receive a reward. - -3:15 If any man's work shall be burned, he shall suffer loss: but he -himself shall be saved; yet so as by fire. - -3:16 Know ye not that ye are the temple of God, and that the Spirit of -God dwelleth in you? 3:17 If any man defile the temple of God, him -shall God destroy; for the temple of God is holy, which temple ye are. - -3:18 Let no man deceive himself. If any man among you seemeth to be -wise in this world, let him become a fool, that he may be wise. - -3:19 For the wisdom of this world is foolishness with God. For it is -written, He taketh the wise in their own craftiness. - -3:20 And again, The Lord knoweth the thoughts of the wise, that they -are vain. - -3:21 Therefore let no man glory in men. For all things are your's; -3:22 Whether Paul, or Apollos, or Cephas, or the world, or life, or -death, or things present, or things to come; all are your's; 3:23 And -ye are Christ's; and Christ is God's. - -4:1 Let a man so account of us, as of the ministers of Christ, and -stewards of the mysteries of God. - -4:2 Moreover it is required in stewards, that a man be found faithful. - -4:3 But with me it is a very small thing that I should be judged of -you, or of man's judgment: yea, I judge not mine own self. - -4:4 For I know nothing by myself; yet am I not hereby justified: but -he that judgeth me is the Lord. - -4:5 Therefore judge nothing before the time, until the Lord come, who -both will bring to light the hidden things of darkness, and will make -manifest the counsels of the hearts: and then shall every man have -praise of God. - -4:6 And these things, brethren, I have in a figure transferred to -myself and to Apollos for your sakes; that ye might learn in us not to -think of men above that which is written, that no one of you be puffed -up for one against another. - -4:7 For who maketh thee to differ from another? and what hast thou -that thou didst not receive? now if thou didst receive it, why dost -thou glory, as if thou hadst not received it? 4:8 Now ye are full, -now ye are rich, ye have reigned as kings without us: and I would to -God ye did reign, that we also might reign with you. - -4:9 For I think that God hath set forth us the apostles last, as it -were appointed to death: for we are made a spectacle unto the world, -and to angels, and to men. - -4:10 We are fools for Christ's sake, but ye are wise in Christ; we are -weak, but ye are strong; ye are honourable, but we are despised. - -4:11 Even unto this present hour we both hunger, and thirst, and are -naked, and are buffeted, and have no certain dwellingplace; 4:12 And -labour, working with our own hands: being reviled, we bless; being -persecuted, we suffer it: 4:13 Being defamed, we intreat: we are made -as the filth of the world, and are the offscouring of all things unto -this day. - -4:14 I write not these things to shame you, but as my beloved sons I -warn you. - -4:15 For though ye have ten thousand instructers in Christ, yet have -ye not many fathers: for in Christ Jesus I have begotten you through -the gospel. - -4:16 Wherefore I beseech you, be ye followers of me. - -4:17 For this cause have I sent unto you Timotheus, who is my beloved -son, and faithful in the Lord, who shall bring you into remembrance of -my ways which be in Christ, as I teach every where in every church. - -4:18 Now some are puffed up, as though I would not come to you. - -4:19 But I will come to you shortly, if the Lord will, and will know, -not the speech of them which are puffed up, but the power. - -4:20 For the kingdom of God is not in word, but in power. - -4:21 What will ye? shall I come unto you with a rod, or in love, and -in the spirit of meekness? 5:1 It is reported commonly that there is -fornication among you, and such fornication as is not so much as named -among the Gentiles, that one should have his father's wife. - -5:2 And ye are puffed up, and have not rather mourned, that he that -hath done this deed might be taken away from among you. - -5:3 For I verily, as absent in body, but present in spirit, have -judged already, as though I were present, concerning him that hath so -done this deed, 5:4 In the name of our Lord Jesus Christ, when ye are -gathered together, and my spirit, with the power of our Lord Jesus -Christ, 5:5 To deliver such an one unto Satan for the destruction of -the flesh, that the spirit may be saved in the day of the Lord Jesus. - -5:6 Your glorying is not good. Know ye not that a little leaven -leaveneth the whole lump? 5:7 Purge out therefore the old leaven, -that ye may be a new lump, as ye are unleavened. For even Christ our -passover is sacrificed for us: 5:8 Therefore let us keep the feast, -not with old leaven, neither with the leaven of malice and wickedness; -but with the unleavened bread of sincerity and truth. - -5:9 I wrote unto you in an epistle not to company with fornicators: -5:10 Yet not altogether with the fornicators of this world, or with -the covetous, or extortioners, or with idolaters; for then must ye -needs go out of the world. - -5:11 But now I have written unto you not to keep company, if any man -that is called a brother be a fornicator, or covetous, or an idolater, -or a railer, or a drunkard, or an extortioner; with such an one no not -to eat. - -5:12 For what have I to do to judge them also that are without? do not -ye judge them that are within? 5:13 But them that are without God -judgeth. Therefore put away from among yourselves that wicked person. - -6:1 Dare any of you, having a matter against another, go to law before -the unjust, and not before the saints? 6:2 Do ye not know that the -saints shall judge the world? and if the world shall be judged by you, -are ye unworthy to judge the smallest matters? 6:3 Know ye not that -we shall judge angels? how much more things that pertain to this life? -6:4 If then ye have judgments of things pertaining to this life, set -them to judge who are least esteemed in the church. - -6:5 I speak to your shame. Is it so, that there is not a wise man -among you? no, not one that shall be able to judge between his -brethren? 6:6 But brother goeth to law with brother, and that before -the unbelievers. - -6:7 Now therefore there is utterly a fault among you, because ye go to -law one with another. Why do ye not rather take wrong? why do ye not -rather suffer yourselves to be defrauded? 6:8 Nay, ye do wrong, and -defraud, and that your brethren. - -6:9 Know ye not that the unrighteous shall not inherit the kingdom of -God? Be not deceived: neither fornicators, nor idolaters, nor -adulterers, nor effeminate, nor abusers of themselves with mankind, -6:10 Nor thieves, nor covetous, nor drunkards, nor revilers, nor -extortioners, shall inherit the kingdom of God. - -6:11 And such were some of you: but ye are washed, but ye are -sanctified, but ye are justified in the name of the Lord Jesus, and by -the Spirit of our God. - -6:12 All things are lawful unto me, but all things are not expedient: -all things are lawful for me, but I will not be brought under the -power of any. - -6:13 Meats for the belly, and the belly for meats: but God shall -destroy both it and them. Now the body is not for fornication, but for -the Lord; and the Lord for the body. - -6:14 And God hath both raised up the Lord, and will also raise up us -by his own power. - -6:15 Know ye not that your bodies are the members of Christ? shall I -then take the members of Christ, and make them the members of an -harlot? God forbid. - -6:16 What? know ye not that he which is joined to an harlot is one -body? for two, saith he, shall be one flesh. - -6:17 But he that is joined unto the Lord is one spirit. - -6:18 Flee fornication. Every sin that a man doeth is without the body; -but he that committeth fornication sinneth against his own body. - -6:19 What? know ye not that your body is the temple of the Holy Ghost -which is in you, which ye have of God, and ye are not your own? 6:20 -For ye are bought with a price: therefore glorify God in your body, -and in your spirit, which are God's. - -7:1 Now concerning the things whereof ye wrote unto me: It is good for -a man not to touch a woman. - -7:2 Nevertheless, to avoid fornication, let every man have his own -wife, and let every woman have her own husband. - -7:3 Let the husband render unto the wife due benevolence: and likewise -also the wife unto the husband. - -7:4 The wife hath not power of her own body, but the husband: and -likewise also the husband hath not power of his own body, but the -wife. - -7:5 Defraud ye not one the other, except it be with consent for a -time, that ye may give yourselves to fasting and prayer; and come -together again, that Satan tempt you not for your incontinency. - -7:6 But I speak this by permission, and not of commandment. - -7:7 For I would that all men were even as I myself. But every man hath -his proper gift of God, one after this manner, and another after that. - -7:8 I say therefore to the unmarried and widows, It is good for them -if they abide even as I. - -7:9 But if they cannot contain, let them marry: for it is better to -marry than to burn. - -7:10 And unto the married I command, yet not I, but the Lord, Let not -the wife depart from her husband: 7:11 But and if she depart, let her -remain unmarried or be reconciled to her husband: and let not the -husband put away his wife. - -7:12 But to the rest speak I, not the Lord: If any brother hath a wife -that believeth not, and she be pleased to dwell with him, let him not -put her away. - -7:13 And the woman which hath an husband that believeth not, and if he -be pleased to dwell with her, let her not leave him. - -7:14 For the unbelieving husband is sanctified by the wife, and the -unbelieving wife is sanctified by the husband: else were your children -unclean; but now are they holy. - -7:15 But if the unbelieving depart, let him depart. A brother or a -sister is not under bondage in such cases: but God hath called us to -peace. - -7:16 For what knowest thou, O wife, whether thou shalt save thy -husband? or how knowest thou, O man, whether thou shalt save thy -wife? 7:17 But as God hath distributed to every man, as the Lord hath -called every one, so let him walk. And so ordain I in all churches. - -7:18 Is any man called being circumcised? let him not become -uncircumcised. Is any called in uncircumcision? let him not be -circumcised. - -7:19 Circumcision is nothing, and uncircumcision is nothing, but the -keeping of the commandments of God. - -7:20 Let every man abide in the same calling wherein he was called. - -7:21 Art thou called being a servant? care not for it: but if thou -mayest be made free, use it rather. - -7:22 For he that is called in the Lord, being a servant, is the Lord's -freeman: likewise also he that is called, being free, is Christ's -servant. - -7:23 Ye are bought with a price; be not ye the servants of men. - -7:24 Brethren, let every man, wherein he is called, therein abide with -God. - -7:25 Now concerning virgins I have no commandment of the Lord: yet I -give my judgment, as one that hath obtained mercy of the Lord to be -faithful. - -7:26 I suppose therefore that this is good for the present distress, I -say, that it is good for a man so to be. - -7:27 Art thou bound unto a wife? seek not to be loosed. Art thou -loosed from a wife? seek not a wife. - -7:28 But and if thou marry, thou hast not sinned; and if a virgin -marry, she hath not sinned. Nevertheless such shall have trouble in -the flesh: but I spare you. - -7:29 But this I say, brethren, the time is short: it remaineth, that -both they that have wives be as though they had none; 7:30 And they -that weep, as though they wept not; and they that rejoice, as though -they rejoiced not; and they that buy, as though they possessed not; -7:31 And they that use this world, as not abusing it: for the fashion -of this world passeth away. - -7:32 But I would have you without carefulness. He that is unmarried -careth for the things that belong to the Lord, how he may please the -Lord: 7:33 But he that is married careth for the things that are of -the world, how he may please his wife. - -7:34 There is difference also between a wife and a virgin. The -unmarried woman careth for the things of the Lord, that she may be -holy both in body and in spirit: but she that is married careth for -the things of the world, how she may please her husband. - -7:35 And this I speak for your own profit; not that I may cast a snare -upon you, but for that which is comely, and that ye may attend upon -the Lord without distraction. - -7:36 But if any man think that he behaveth himself uncomely toward his -virgin, if she pass the flower of her age, and need so require, let -him do what he will, he sinneth not: let them marry. - -7:37 Nevertheless he that standeth stedfast in his heart, having no -necessity, but hath power over his own will, and hath so decreed in -his heart that he will keep his virgin, doeth well. - -7:38 So then he that giveth her in marriage doeth well; but he that -giveth her not in marriage doeth better. - -7:39 The wife is bound by the law as long as her husband liveth; but -if her husband be dead, she is at liberty to be married to whom she -will; only in the Lord. - -7:40 But she is happier if she so abide, after my judgment: and I -think also that I have the Spirit of God. - -8:1 Now as touching things offered unto idols, we know that we all -have knowledge. Knowledge puffeth up, but charity edifieth. - -8:2 And if any man think that he knoweth any thing, he knoweth nothing -yet as he ought to know. - -8:3 But if any man love God, the same is known of him. - -8:4 As concerning therefore the eating of those things that are -offered in sacrifice unto idols, we know that an idol is nothing in -the world, and that there is none other God but one. - -8:5 For though there be that are called gods, whether in heaven or in -earth, (as there be gods many, and lords many,) 8:6 But to us there is -but one God, the Father, of whom are all things, and we in him; and -one Lord Jesus Christ, by whom are all things, and we by him. - -8:7 Howbeit there is not in every man that knowledge: for some with -conscience of the idol unto this hour eat it as a thing offered unto -an idol; and their conscience being weak is defiled. - -8:8 But meat commendeth us not to God: for neither, if we eat, are we -the better; neither, if we eat not, are we the worse. - -8:9 But take heed lest by any means this liberty of your's become a -stumblingblock to them that are weak. - -8:10 For if any man see thee which hast knowledge sit at meat in the -idol's temple, shall not the conscience of him which is weak be -emboldened to eat those things which are offered to idols; 8:11 And -through thy knowledge shall the weak brother perish, for whom Christ -died? 8:12 But when ye sin so against the brethren, and wound their -weak conscience, ye sin against Christ. - -8:13 Wherefore, if meat make my brother to offend, I will eat no flesh -while the world standeth, lest I make my brother to offend. - -9:1 Am I not an apostle? am I not free? have I not seen Jesus Christ -our Lord? are not ye my work in the Lord? 9:2 If I be not an apostle -unto others, yet doubtless I am to you: for the seal of mine -apostleship are ye in the Lord. - -9:3 Mine answer to them that do examine me is this, 9:4 Have we not -power to eat and to drink? 9:5 Have we not power to lead about a -sister, a wife, as well as other apostles, and as the brethren of the -Lord, and Cephas? 9:6 Or I only and Barnabas, have not we power to -forbear working? 9:7 Who goeth a warfare any time at his own charges? -who planteth a vineyard, and eateth not of the fruit thereof? or who -feedeth a flock, and eateth not of the milk of the flock? 9:8 Say I -these things as a man? or saith not the law the same also? 9:9 For it -is written in the law of Moses, Thou shalt not muzzle the mouth of the -ox that treadeth out the corn. Doth God take care for oxen? 9:10 Or -saith he it altogether for our sakes? For our sakes, no doubt, this is -written: that he that ploweth should plow in hope; and that he that -thresheth in hope should be partaker of his hope. - -9:11 If we have sown unto you spiritual things, is it a great thing if -we shall reap your carnal things? 9:12 If others be partakers of this -power over you, are not we rather? Nevertheless we have not used this -power; but suffer all things, lest we should hinder the gospel of -Christ. - -9:13 Do ye not know that they which minister about holy things live of -the things of the temple? and they which wait at the altar are -partakers with the altar? 9:14 Even so hath the Lord ordained that -they which preach the gospel should live of the gospel. - -9:15 But I have used none of these things: neither have I written -these things, that it should be so done unto me: for it were better -for me to die, than that any man should make my glorying void. - -9:16 For though I preach the gospel, I have nothing to glory of: for -necessity is laid upon me; yea, woe is unto me, if I preach not the -gospel! 9:17 For if I do this thing willingly, I have a reward: but -if against my will, a dispensation of the gospel is committed unto me. - -9:18 What is my reward then? Verily that, when I preach the gospel, I -may make the gospel of Christ without charge, that I abuse not my -power in the gospel. - -9:19 For though I be free from all men, yet have I made myself servant -unto all, that I might gain the more. - -9:20 And unto the Jews I became as a Jew, that I might gain the Jews; -to them that are under the law, as under the law, that I might gain -them that are under the law; 9:21 To them that are without law, as -without law, (being not without law to God, but under the law to -Christ,) that I might gain them that are without law. - -9:22 To the weak became I as weak, that I might gain the weak: I am -made all things to all men, that I might by all means save some. - -9:23 And this I do for the gospel's sake, that I might be partaker -thereof with you. - -9:24 Know ye not that they which run in a race run all, but one -receiveth the prize? So run, that ye may obtain. - -9:25 And every man that striveth for the mastery is temperate in all -things. Now they do it to obtain a corruptible crown; but we an -incorruptible. - -9:26 I therefore so run, not as uncertainly; so fight I, not as one -that beateth the air: 9:27 But I keep under my body, and bring it into -subjection: lest that by any means, when I have preached to others, I -myself should be a castaway. - -10:1 Moreover, brethren, I would not that ye should be ignorant, how -that all our fathers were under the cloud, and all passed through the -sea; 10:2 And were all baptized unto Moses in the cloud and in the -sea; 10:3 And did all eat the same spiritual meat; 10:4 And did all -drink the same spiritual drink: for they drank of that spiritual Rock -that followed them: and that Rock was Christ. - -10:5 But with many of them God was not well pleased: for they were -overthrown in the wilderness. - -10:6 Now these things were our examples, to the intent we should not -lust after evil things, as they also lusted. - -10:7 Neither be ye idolaters, as were some of them; as it is written, -The people sat down to eat and drink, and rose up to play. - -10:8 Neither let us commit fornication, as some of them committed, and -fell in one day three and twenty thousand. - -10:9 Neither let us tempt Christ, as some of them also tempted, and -were destroyed of serpents. - -10:10 Neither murmur ye, as some of them also murmured, and were -destroyed of the destroyer. - -10:11 Now all these things happened unto them for ensamples: and they -are written for our admonition, upon whom the ends of the world are -come. - -10:12 Wherefore let him that thinketh he standeth take heed lest he -fall. - -10:13 There hath no temptation taken you but such as is common to man: -but God is faithful, who will not suffer you to be tempted above that -ye are able; but will with the temptation also make a way to escape, -that ye may be able to bear it. - -10:14 Wherefore, my dearly beloved, flee from idolatry. - -10:15 I speak as to wise men; judge ye what I say. - -10:16 The cup of blessing which we bless, is it not the communion of -the blood of Christ? The bread which we break, is it not the communion -of the body of Christ? 10:17 For we being many are one bread, and one -body: for we are all partakers of that one bread. - -10:18 Behold Israel after the flesh: are not they which eat of the -sacrifices partakers of the altar? 10:19 What say I then? that the -idol is any thing, or that which is offered in sacrifice to idols is -any thing? 10:20 But I say, that the things which the Gentiles -sacrifice, they sacrifice to devils, and not to God: and I would not -that ye should have fellowship with devils. - -10:21 Ye cannot drink the cup of the Lord, and the cup of devils: ye -cannot be partakers of the Lord's table, and of the table of devils. - -10:22 Do we provoke the Lord to jealousy? are we stronger than he? -10:23 All things are lawful for me, but all things are not expedient: -all things are lawful for me, but all things edify not. - -10:24 Let no man seek his own, but every man another's wealth. - -10:25 Whatsoever is sold in the shambles, that eat, asking no question -for conscience sake: 10:26 For the earth is the Lord's, and the -fulness thereof. - -10:27 If any of them that believe not bid you to a feast, and ye be -disposed to go; whatsoever is set before you, eat, asking no question -for conscience sake. - -10:28 But if any man say unto you, This is offered in sacrifice unto -idols, eat not for his sake that shewed it, and for conscience sake: -for the earth is the Lord's, and the fulness thereof: 10:29 -Conscience, I say, not thine own, but of the other: for why is my -liberty judged of another man's conscience? 10:30 For if I by grace -be a partaker, why am I evil spoken of for that for which I give -thanks? 10:31 Whether therefore ye eat, or drink, or whatsoever ye -do, do all to the glory of God. - -10:32 Give none offence, neither to the Jews, nor to the Gentiles, nor -to the church of God: 10:33 Even as I please all men in all things, -not seeking mine own profit, but the profit of many, that they may be -saved. - -11:1 Be ye followers of me, even as I also am of Christ. - -11:2 Now I praise you, brethren, that ye remember me in all things, -and keep the ordinances, as I delivered them to you. - -11:3 But I would have you know, that the head of every man is Christ; -and the head of the woman is the man; and the head of Christ is God. - -11:4 Every man praying or prophesying, having his head covered, -dishonoureth his head. - -11:5 But every woman that prayeth or prophesieth with her head -uncovered dishonoureth her head: for that is even all one as if she -were shaven. - -11:6 For if the woman be not covered, let her also be shorn: but if it -be a shame for a woman to be shorn or shaven, let her be covered. - -11:7 For a man indeed ought not to cover his head, forasmuch as he is -the image and glory of God: but the woman is the glory of the man. - -11:8 For the man is not of the woman: but the woman of the man. - -11:9 Neither was the man created for the woman; but the woman for the -man. - -11:10 For this cause ought the woman to have power on her head because -of the angels. - -11:11 Nevertheless neither is the man without the woman, neither the -woman without the man, in the Lord. - -11:12 For as the woman is of the man, even so is the man also by the -woman; but all things of God. - -11:13 Judge in yourselves: is it comely that a woman pray unto God -uncovered? 11:14 Doth not even nature itself teach you, that, if a -man have long hair, it is a shame unto him? 11:15 But if a woman have -long hair, it is a glory to her: for her hair is given her for a -covering. - -11:16 But if any man seem to be contentious, we have no such custom, -neither the churches of God. - -11:17 Now in this that I declare unto you I praise you not, that ye -come together not for the better, but for the worse. - -11:18 For first of all, when ye come together in the church, I hear -that there be divisions among you; and I partly believe it. - -11:19 For there must be also heresies among you, that they which are -approved may be made manifest among you. - -11:20 When ye come together therefore into one place, this is not to -eat the Lord's supper. - -11:21 For in eating every one taketh before other his own supper: and -one is hungry, and another is drunken. - -11:22 What? have ye not houses to eat and to drink in? or despise ye -the church of God, and shame them that have not? What shall I say to -you? shall I praise you in this? I praise you not. - -11:23 For I have received of the Lord that which also I delivered unto -you, That the Lord Jesus the same night in which he was betrayed took -bread: 11:24 And when he had given thanks, he brake it, and said, -Take, eat: this is my body, which is broken for you: this do in -remembrance of me. - -11:25 After the same manner also he took the cup, when he had supped, -saying, This cup is the new testament in my blood: this do ye, as oft -as ye drink it, in remembrance of me. - -11:26 For as often as ye eat this bread, and drink this cup, ye do -shew the Lord's death till he come. - -11:27 Wherefore whosoever shall eat this bread, and drink this cup of -the Lord, unworthily, shall be guilty of the body and blood of the -Lord. - -11:28 But let a man examine himself, and so let him eat of that bread, -and drink of that cup. - -11:29 For he that eateth and drinketh unworthily, eateth and drinketh -damnation to himself, not discerning the Lord's body. - -11:30 For this cause many are weak and sickly among you, and many -sleep. - -11:31 For if we would judge ourselves, we should not be judged. - -11:32 But when we are judged, we are chastened of the Lord, that we -should not be condemned with the world. - -11:33 Wherefore, my brethren, when ye come together to eat, tarry one -for another. - -11:34 And if any man hunger, let him eat at home; that ye come not -together unto condemnation. And the rest will I set in order when I -come. - -12:1 Now concerning spiritual gifts, brethren, I would not have you -ignorant. - -12:2 Ye know that ye were Gentiles, carried away unto these dumb -idols, even as ye were led. - -12:3 Wherefore I give you to understand, that no man speaking by the -Spirit of God calleth Jesus accursed: and that no man can say that -Jesus is the Lord, but by the Holy Ghost. - -12:4 Now there are diversities of gifts, but the same Spirit. - -12:5 And there are differences of administrations, but the same Lord. - -12:6 And there are diversities of operations, but it is the same God -which worketh all in all. - -12:7 But the manifestation of the Spirit is given to every man to -profit withal. - -12:8 For to one is given by the Spirit the word of wisdom; to another -the word of knowledge by the same Spirit; 12:9 To another faith by the -same Spirit; to another the gifts of healing by the same Spirit; 12:10 -To another the working of miracles; to another prophecy; to another -discerning of spirits; to another divers kinds of tongues; to another -the interpretation of tongues: 12:11 But all these worketh that one -and the selfsame Spirit, dividing to every man severally as he will. - -12:12 For as the body is one, and hath many members, and all the -members of that one body, being many, are one body: so also is Christ. - -12:13 For by one Spirit are we all baptized into one body, whether we -be Jews or Gentiles, whether we be bond or free; and have been all -made to drink into one Spirit. - -12:14 For the body is not one member, but many. - -12:15 If the foot shall say, Because I am not the hand, I am not of -the body; is it therefore not of the body? 12:16 And if the ear shall -say, Because I am not the eye, I am not of the body; is it therefore -not of the body? 12:17 If the whole body were an eye, where were the -hearing? If the whole were hearing, where were the smelling? 12:18 -But now hath God set the members every one of them in the body, as it -hath pleased him. - -12:19 And if they were all one member, where were the body? 12:20 But -now are they many members, yet but one body. - -12:21 And the eye cannot say unto the hand, I have no need of thee: -nor again the head to the feet, I have no need of you. - -12:22 Nay, much more those members of the body, which seem to be more -feeble, are necessary: 12:23 And those members of the body, which we -think to be less honourable, upon these we bestow more abundant -honour; and our uncomely parts have more abundant comeliness. - -12:24 For our comely parts have no need: but God hath tempered the -body together, having given more abundant honour to that part which -lacked. - -12:25 That there should be no schism in the body; but that the members -should have the same care one for another. - -12:26 And whether one member suffer, all the members suffer with it; -or one member be honoured, all the members rejoice with it. - -12:27 Now ye are the body of Christ, and members in particular. - -12:28 And God hath set some in the church, first apostles, secondarily -prophets, thirdly teachers, after that miracles, then gifts of -healings, helps, governments, diversities of tongues. - -12:29 Are all apostles? are all prophets? are all teachers? are all -workers of miracles? 12:30 Have all the gifts of healing? do all -speak with tongues? do all interpret? 12:31 But covet earnestly the -best gifts: and yet shew I unto you a more excellent way. - -13:1 Though I speak with the tongues of men and of angels, and have -not charity, I am become as sounding brass, or a tinkling cymbal. - -13:2 And though I have the gift of prophecy, and understand all -mysteries, and all knowledge; and though I have all faith, so that I -could remove mountains, and have not charity, I am nothing. - -13:3 And though I bestow all my goods to feed the poor, and though I -give my body to be burned, and have not charity, it profiteth me -nothing. - -13:4 Charity suffereth long, and is kind; charity envieth not; charity -vaunteth not itself, is not puffed up, 13:5 Doth not behave itself -unseemly, seeketh not her own, is not easily provoked, thinketh no -evil; 13:6 Rejoiceth not in iniquity, but rejoiceth in the truth; 13:7 -Beareth all things, believeth all things, hopeth all things, endureth -all things. - -13:8 Charity never faileth: but whether there be prophecies, they -shall fail; whether there be tongues, they shall cease; whether there -be knowledge, it shall vanish away. - -13:9 For we know in part, and we prophesy in part. - -13:10 But when that which is perfect is come, then that which is in -part shall be done away. - -13:11 When I was a child, I spake as a child, I understood as a child, -I thought as a child: but when I became a man, I put away childish -things. - -13:12 For now we see through a glass, darkly; but then face to face: -now I know in part; but then shall I know even as also I am known. - -13:13 And now abideth faith, hope, charity, these three; but the -greatest of these is charity. - -14:1 Follow after charity, and desire spiritual gifts, but rather that -ye may prophesy. - -14:2 For he that speaketh in an unknown tongue speaketh not unto men, -but unto God: for no man understandeth him; howbeit in the spirit he -speaketh mysteries. - -14:3 But he that prophesieth speaketh unto men to edification, and -exhortation, and comfort. - -14:4 He that speaketh in an unknown tongue edifieth himself; but he -that prophesieth edifieth the church. - -14:5 I would that ye all spake with tongues but rather that ye -prophesied: for greater is he that prophesieth than he that speaketh -with tongues, except he interpret, that the church may receive -edifying. - -14:6 Now, brethren, if I come unto you speaking with tongues, what -shall I profit you, except I shall speak to you either by revelation, -or by knowledge, or by prophesying, or by doctrine? 14:7 And even -things without life giving sound, whether pipe or harp, except they -give a distinction in the sounds, how shall it be known what is piped -or harped? 14:8 For if the trumpet give an uncertain sound, who shall -prepare himself to the battle? 14:9 So likewise ye, except ye utter -by the tongue words easy to be understood, how shall it be known what -is spoken? for ye shall speak into the air. - -14:10 There are, it may be, so many kinds of voices in the world, and -none of them is without signification. - -14:11 Therefore if I know not the meaning of the voice, I shall be -unto him that speaketh a barbarian, and he that speaketh shall be a -barbarian unto me. - -14:12 Even so ye, forasmuch as ye are zealous of spiritual gifts, seek -that ye may excel to the edifying of the church. - -14:13 Wherefore let him that speaketh in an unknown tongue pray that -he may interpret. - -14:14 For if I pray in an unknown tongue, my spirit prayeth, but my -understanding is unfruitful. - -14:15 What is it then? I will pray with the spirit, and I will pray -with the understanding also: I will sing with the spirit, and I will -sing with the understanding also. - -14:16 Else when thou shalt bless with the spirit, how shall he that -occupieth the room of the unlearned say Amen at thy giving of thanks, -seeing he understandeth not what thou sayest? 14:17 For thou verily -givest thanks well, but the other is not edified. - -14:18 I thank my God, I speak with tongues more than ye all: 14:19 Yet -in the church I had rather speak five words with my understanding, -that by my voice I might teach others also, than ten thousand words in -an unknown tongue. - -14:20 Brethren, be not children in understanding: howbeit in malice be -ye children, but in understanding be men. - -14:21 In the law it is written, With men of other tongues and other -lips will I speak unto this people; and yet for all that will they not -hear me, saith the LORD. - -14:22 Wherefore tongues are for a sign, not to them that believe, but -to them that believe not: but prophesying serveth not for them that -believe not, but for them which believe. - -14:23 If therefore the whole church be come together into one place, -and all speak with tongues, and there come in those that are -unlearned, or unbelievers, will they not say that ye are mad? 14:24 -But if all prophesy, and there come in one that believeth not, or one -unlearned, he is convinced of all, he is judged of all: 14:25 And thus -are the secrets of his heart made manifest; and so falling down on his -face he will worship God, and report that God is in you of a truth. - -14:26 How is it then, brethren? when ye come together, every one of -you hath a psalm, hath a doctrine, hath a tongue, hath a revelation, -hath an interpretation. Let all things be done unto edifying. - -14:27 If any man speak in an unknown tongue, let it be by two, or at -the most by three, and that by course; and let one interpret. - -14:28 But if there be no interpreter, let him keep silence in the -church; and let him speak to himself, and to God. - -14:29 Let the prophets speak two or three, and let the other judge. - -14:30 If any thing be revealed to another that sitteth by, let the -first hold his peace. - -14:31 For ye may all prophesy one by one, that all may learn, and all -may be comforted. - -14:32 And the spirits of the prophets are subject to the prophets. - -14:33 For God is not the author of confusion, but of peace, as in all -churches of the saints. - -14:34 Let your women keep silence in the churches: for it is not -permitted unto them to speak; but they are commanded to be under -obedience as also saith the law. - -14:35 And if they will learn any thing, let them ask their husbands at -home: for it is a shame for women to speak in the church. - -14:36 What? came the word of God out from you? or came it unto you -only? 14:37 If any man think himself to be a prophet, or spiritual, -let him acknowledge that the things that I write unto you are the -commandments of the Lord. - -14:38 But if any man be ignorant, let him be ignorant. - -14:39 Wherefore, brethren, covet to prophesy, and forbid not to speak -with tongues. - -14:40 Let all things be done decently and in order. - -15:1 Moreover, brethren, I declare unto you the gospel which I -preached unto you, which also ye have received, and wherein ye stand; -15:2 By which also ye are saved, if ye keep in memory what I preached -unto you, unless ye have believed in vain. - -15:3 For I delivered unto you first of all that which I also received, -how that Christ died for our sins according to the scriptures; 15:4 -And that he was buried, and that he rose again the third day according -to the scriptures: 15:5 And that he was seen of Cephas, then of the -twelve: 15:6 After that, he was seen of above five hundred brethren at -once; of whom the greater part remain unto this present, but some are -fallen asleep. - -15:7 After that, he was seen of James; then of all the apostles. - -15:8 And last of all he was seen of me also, as of one born out of due -time. - -15:9 For I am the least of the apostles, that am not meet to be called -an apostle, because I persecuted the church of God. - -15:10 But by the grace of God I am what I am: and his grace which was -bestowed upon me was not in vain; but I laboured more abundantly than -they all: yet not I, but the grace of God which was with me. - -15:11 Therefore whether it were I or they, so we preach, and so ye -believed. - -15:12 Now if Christ be preached that he rose from the dead, how say -some among you that there is no resurrection of the dead? 15:13 But -if there be no resurrection of the dead, then is Christ not risen: -15:14 And if Christ be not risen, then is our preaching vain, and your -faith is also vain. - -15:15 Yea, and we are found false witnesses of God; because we have -testified of God that he raised up Christ: whom he raised not up, if -so be that the dead rise not. - -15:16 For if the dead rise not, then is not Christ raised: 15:17 And -if Christ be not raised, your faith is vain; ye are yet in your sins. - -15:18 Then they also which are fallen asleep in Christ are perished. - -15:19 If in this life only we have hope in Christ, we are of all men -most miserable. - -15:20 But now is Christ risen from the dead, and become the -firstfruits of them that slept. - -15:21 For since by man came death, by man came also the resurrection -of the dead. - -15:22 For as in Adam all die, even so in Christ shall all be made -alive. - -15:23 But every man in his own order: Christ the firstfruits; -afterward they that are Christ's at his coming. - -15:24 Then cometh the end, when he shall have delivered up the kingdom -to God, even the Father; when he shall have put down all rule and all -authority and power. - -15:25 For he must reign, till he hath put all enemies under his feet. - -15:26 The last enemy that shall be destroyed is death. - -15:27 For he hath put all things under his feet. But when he saith all -things are put under him, it is manifest that he is excepted, which -did put all things under him. - -15:28 And when all things shall be subdued unto him, then shall the -Son also himself be subject unto him that put all things under him, -that God may be all in all. - -15:29 Else what shall they do which are baptized for the dead, if the -dead rise not at all? why are they then baptized for the dead? 15:30 -And why stand we in jeopardy every hour? 15:31 I protest by your -rejoicing which I have in Christ Jesus our LORD, I die daily. - -15:32 If after the manner of men I have fought with beasts at Ephesus, -what advantageth it me, if the dead rise not? let us eat and drink; -for to morrow we die. - -15:33 Be not deceived: evil communications corrupt good manners. - -15:34 Awake to righteousness, and sin not; for some have not the -knowledge of God: I speak this to your shame. - -15:35 But some man will say, How are the dead raised up? and with what -body do they come? 15:36 Thou fool, that which thou sowest is not -quickened, except it die: 15:37 And that which thou sowest, thou -sowest not that body that shall be, but bare grain, it may chance of -wheat, or of some other grain: 15:38 But God giveth it a body as it -hath pleased him, and to every seed his own body. - -15:39 All flesh is not the same flesh: but there is one kind of flesh -of men, another flesh of beasts, another of fishes, and another of -birds. - -15:40 There are also celestial bodies, and bodies terrestrial: but the -glory of the celestial is one, and the glory of the terrestrial is -another. - -15:41 There is one glory of the sun, and another glory of the moon, -and another glory of the stars: for one star differeth from another -star in glory. - -15:42 So also is the resurrection of the dead. It is sown in -corruption; it is raised in incorruption: 15:43 It is sown in -dishonour; it is raised in glory: it is sown in weakness; it is raised -in power: 15:44 It is sown a natural body; it is raised a spiritual -body. There is a natural body, and there is a spiritual body. - -15:45 And so it is written, The first man Adam was made a living soul; -the last Adam was made a quickening spirit. - -15:46 Howbeit that was not first which is spiritual, but that which is -natural; and afterward that which is spiritual. - -15:47 The first man is of the earth, earthy; the second man is the -Lord from heaven. - -15:48 As is the earthy, such are they also that are earthy: and as is -the heavenly, such are they also that are heavenly. - -15:49 And as we have borne the image of the earthy, we shall also bear -the image of the heavenly. - -15:50 Now this I say, brethren, that flesh and blood cannot inherit -the kingdom of God; neither doth corruption inherit incorruption. - -15:51 Behold, I shew you a mystery; We shall not all sleep, but we -shall all be changed, 15:52 In a moment, in the twinkling of an eye, -at the last trump: for the trumpet shall sound, and the dead shall be -raised incorruptible, and we shall be changed. - -15:53 For this corruptible must put on incorruption, and this mortal -must put on immortality. - -15:54 So when this corruptible shall have put on incorruption, and -this mortal shall have put on immortality, then shall be brought to -pass the saying that is written, Death is swallowed up in victory. - -15:55 O death, where is thy sting? O grave, where is thy victory? -15:56 The sting of death is sin; and the strength of sin is the law. - -15:57 But thanks be to God, which giveth us the victory through our -Lord Jesus Christ. - -15:58 Therefore, my beloved brethren, be ye stedfast, unmoveable, -always abounding in the work of the Lord, forasmuch as ye know that -your labour is not in vain in the Lord. - -16:1 Now concerning the collection for the saints, as I have given -order to the churches of Galatia, even so do ye. - -16:2 Upon the first day of the week let every one of you lay by him in -store, as God hath prospered him, that there be no gatherings when I -come. - -16:3 And when I come, whomsoever ye shall approve by your letters, -them will I send to bring your liberality unto Jerusalem. - -16:4 And if it be meet that I go also, they shall go with me. - -16:5 Now I will come unto you, when I shall pass through Macedonia: -for I do pass through Macedonia. - -16:6 And it may be that I will abide, yea, and winter with you, that -ye may bring me on my journey whithersoever I go. - -16:7 For I will not see you now by the way; but I trust to tarry a -while with you, if the Lord permit. - -16:8 But I will tarry at Ephesus until Pentecost. - -16:9 For a great door and effectual is opened unto me, and there are -many adversaries. - -16:10 Now if Timotheus come, see that he may be with you without fear: -for he worketh the work of the Lord, as I also do. - -16:11 Let no man therefore despise him: but conduct him forth in -peace, that he may come unto me: for I look for him with the brethren. - -16:12 As touching our brother Apollos, I greatly desired him to come -unto you with the brethren: but his will was not at all to come at -this time; but he will come when he shall have convenient time. - -16:13 Watch ye, stand fast in the faith, quit you like men, be strong. - -16:14 Let all your things be done with charity. - -16:15 I beseech you, brethren, (ye know the house of Stephanas, that -it is the firstfruits of Achaia, and that they have addicted -themselves to the ministry of the saints,) 16:16 That ye submit -yourselves unto such, and to every one that helpeth with us, and -laboureth. - -16:17 I am glad of the coming of Stephanas and Fortunatus and -Achaicus: for that which was lacking on your part they have supplied. - -16:18 For they have refreshed my spirit and your's: therefore -acknowledge ye them that are such. - -16:19 The churches of Asia salute you. Aquila and Priscilla salute you -much in the Lord, with the church that is in their house. - -16:20 All the brethren greet you. Greet ye one another with -an holy kiss. - -16:21 The salutation of me Paul with mine own hand. - -16:22 If any man love not the Lord Jesus Christ, let him be -Anathema Maranatha. - -16:23 The grace of our Lord Jesus Christ be with you. - -16:24 My love be with you all in Christ Jesus. Amen. - - - - -The Second Epistle of Paul the Apostle to the Corinthians - - -1:1 Paul, an apostle of Jesus Christ by the will of God, and Timothy -our brother, unto the church of God which is at Corinth, with all the -saints which are in all Achaia: 1:2 Grace be to you and peace from God -our Father, and from the Lord Jesus Christ. - -1:3 Blessed be God, even the Father of our Lord Jesus Christ, the -Father of mercies, and the God of all comfort; 1:4 Who comforteth us -in all our tribulation, that we may be able to comfort them which are -in any trouble, by the comfort wherewith we ourselves are comforted of -God. - -1:5 For as the sufferings of Christ abound in us, so our consolation -also aboundeth by Christ. - -1:6 And whether we be afflicted, it is for your consolation and -salvation, which is effectual in the enduring of the same sufferings -which we also suffer: or whether we be comforted, it is for your -consolation and salvation. - -1:7 And our hope of you is stedfast, knowing, that as ye are partakers -of the sufferings, so shall ye be also of the consolation. - -1:8 For we would not, brethren, have you ignorant of our trouble which -came to us in Asia, that we were pressed out of measure, above -strength, insomuch that we despaired even of life: 1:9 But we had the -sentence of death in ourselves, that we should not trust in ourselves, -but in God which raiseth the dead: 1:10 Who delivered us from so great -a death, and doth deliver: in whom we trust that he will yet deliver -us; 1:11 Ye also helping together by prayer for us, that for the gift -bestowed upon us by the means of many persons thanks may be given by -many on our behalf. - -1:12 For our rejoicing is this, the testimony of our conscience, that -in simplicity and godly sincerity, not with fleshly wisdom, but by the -grace of God, we have had our conversation in the world, and more -abundantly to you-ward. - -1:13 For we write none other things unto you, than what ye read or -acknowledge; and I trust ye shall acknowledge even to the end; 1:14 As -also ye have acknowledged us in part, that we are your rejoicing, even -as ye also are our's in the day of the Lord Jesus. - -1:15 And in this confidence I was minded to come unto you before, that -ye might have a second benefit; 1:16 And to pass by you into -Macedonia, and to come again out of Macedonia unto you, and of you to -be brought on my way toward Judaea. - -1:17 When I therefore was thus minded, did I use lightness? or the -things that I purpose, do I purpose according to the flesh, that with -me there should be yea yea, and nay nay? 1:18 But as God is true, our -word toward you was not yea and nay. - -1:19 For the Son of God, Jesus Christ, who was preached among you by -us, even by me and Silvanus and Timotheus, was not yea and nay, but in -him was yea. - -1:20 For all the promises of God in him are yea, and in him Amen, unto -the glory of God by us. - -1:21 Now he which stablisheth us with you in Christ, and hath anointed -us, is God; 1:22 Who hath also sealed us, and given the earnest of the -Spirit in our hearts. - -1:23 Moreover I call God for a record upon my soul, that to spare you -I came not as yet unto Corinth. - -1:24 Not for that we have dominion over your faith, but are helpers of -your joy: for by faith ye stand. - -2:1 But I determined this with myself, that I would not come again to -you in heaviness. - -2:2 For if I make you sorry, who is he then that maketh me glad, but -the same which is made sorry by me? 2:3 And I wrote this same unto -you, lest, when I came, I should have sorrow from them of whom I ought -to rejoice; having confidence in you all, that my joy is the joy of -you all. - -2:4 For out of much affliction and anguish of heart I wrote unto you -with many tears; not that ye should be grieved, but that ye might know -the love which I have more abundantly unto you. - -2:5 But if any have caused grief, he hath not grieved me, but in part: -that I may not overcharge you all. - -2:6 Sufficient to such a man is this punishment, which was inflicted -of many. - -2:7 So that contrariwise ye ought rather to forgive him, and comfort -him, lest perhaps such a one should be swallowed up with overmuch -sorrow. - -2:8 Wherefore I beseech you that ye would confirm your love toward -him. - -2:9 For to this end also did I write, that I might know the proof of -you, whether ye be obedient in all things. - -2:10 To whom ye forgive any thing, I forgive also: for if I forgave -any thing, to whom I forgave it, for your sakes forgave I it in the -person of Christ; 2:11 Lest Satan should get an advantage of us: for -we are not ignorant of his devices. - -2:12 Furthermore, when I came to Troas to preach Christ's gospel, and -a door was opened unto me of the Lord, 2:13 I had no rest in my -spirit, because I found not Titus my brother: but taking my leave of -them, I went from thence into Macedonia. - -2:14 Now thanks be unto God, which always causeth us to triumph in -Christ, and maketh manifest the savour of his knowledge by us in every -place. - -2:15 For we are unto God a sweet savour of Christ, in them that are -saved, and in them that perish: 2:16 To the one we are the savour of -death unto death; and to the other the savour of life unto life. And -who is sufficient for these things? 2:17 For we are not as many, -which corrupt the word of God: but as of sincerity, but as of God, in -the sight of God speak we in Christ. - -3:1 Do we begin again to commend ourselves? or need we, as some -others, epistles of commendation to you, or letters of commendation -from you? 3:2 Ye are our epistle written in our hearts, known and -read of all men: 3:3 Forasmuch as ye are manifestly declared to be the -epistle of Christ ministered by us, written not with ink, but with the -Spirit of the living God; not in tables of stone, but in fleshy tables -of the heart. - -3:4 And such trust have we through Christ to God-ward: 3:5 Not that we -are sufficient of ourselves to think any thing as of ourselves; but -our sufficiency is of God; 3:6 Who also hath made us able ministers of -the new testament; not of the letter, but of the spirit: for the -letter killeth, but the spirit giveth life. - -3:7 But if the ministration of death, written and engraven in stones, -was glorious, so that the children of Israel could not stedfastly -behold the face of Moses for the glory of his countenance; which glory -was to be done away: 3:8 How shall not the ministration of the spirit -be rather glorious? 3:9 For if the ministration of condemnation be -glory, much more doth the ministration of righteousness exceed in -glory. - -3:10 For even that which was made glorious had no glory in this -respect, by reason of the glory that excelleth. - -3:11 For if that which is done away was glorious, much more that which -remaineth is glorious. - -3:12 Seeing then that we have such hope, we use great plainness of -speech: 3:13 And not as Moses, which put a vail over his face, that -the children of Israel could not stedfastly look to the end of that -which is abolished: 3:14 But their minds were blinded: for until this -day remaineth the same vail untaken away in the reading of the old -testament; which vail is done away in Christ. - -3:15 But even unto this day, when Moses is read, the vail is upon -their heart. - -3:16 Nevertheless when it shall turn to the Lord, the vail shall be -taken away. - -3:17 Now the Lord is that Spirit: and where the Spirit of the Lord is, -there is liberty. - -3:18 But we all, with open face beholding as in a glass the glory of -the Lord, are changed into the same image from glory to glory, even as -by the Spirit of the LORD. - -4:1 Therefore seeing we have this ministry, as we have received mercy, -we faint not; 4:2 But have renounced the hidden things of dishonesty, -not walking in craftiness, nor handling the word of God deceitfully; -but by manifestation of the truth commending ourselves to every man's -conscience in the sight of God. - -4:3 But if our gospel be hid, it is hid to them that are lost: 4:4 In -whom the god of this world hath blinded the minds of them which -believe not, lest the light of the glorious gospel of Christ, who is -the image of God, should shine unto them. - -4:5 For we preach not ourselves, but Christ Jesus the Lord; and -ourselves your servants for Jesus' sake. - -4:6 For God, who commanded the light to shine out of darkness, hath -shined in our hearts, to give the light of the knowledge of the glory -of God in the face of Jesus Christ. - -4:7 But we have this treasure in earthen vessels, that the excellency -of the power may be of God, and not of us. - -4:8 We are troubled on every side, yet not distressed; we are -perplexed, but not in despair; 4:9 Persecuted, but not forsaken; cast -down, but not destroyed; 4:10 Always bearing about in the body the -dying of the Lord Jesus, that the life also of Jesus might be made -manifest in our body. - -4:11 For we which live are alway delivered unto death for Jesus' sake, -that the life also of Jesus might be made manifest in our mortal -flesh. - -4:12 So then death worketh in us, but life in you. - -4:13 We having the same spirit of faith, according as it is written, I -believed, and therefore have I spoken; we also believe, and therefore -speak; 4:14 Knowing that he which raised up the Lord Jesus shall raise -up us also by Jesus, and shall present us with you. - -4:15 For all things are for your sakes, that the abundant grace might -through the thanksgiving of many redound to the glory of God. - -4:16 For which cause we faint not; but though our outward man perish, -yet the inward man is renewed day by day. - -4:17 For our light affliction, which is but for a moment, worketh for -us a far more exceeding and eternal weight of glory; 4:18 While we -look not at the things which are seen, but at the things which are not -seen: for the things which are seen are temporal; but the things which -are not seen are eternal. - -5:1 For we know that if our earthly house of this tabernacle were -dissolved, we have a building of God, an house not made with hands, -eternal in the heavens. - -5:2 For in this we groan, earnestly desiring to be clothed upon with -our house which is from heaven: 5:3 If so be that being clothed we -shall not be found naked. - -5:4 For we that are in this tabernacle do groan, being burdened: not -for that we would be unclothed, but clothed upon, that mortality might -be swallowed up of life. - -5:5 Now he that hath wrought us for the selfsame thing is God, who -also hath given unto us the earnest of the Spirit. - -5:6 Therefore we are always confident, knowing that, whilst we are at -home in the body, we are absent from the Lord: 5:7 (For we walk by -faith, not by sight:) 5:8 We are confident, I say, and willing rather -to be absent from the body, and to be present with the Lord. - -5:9 Wherefore we labour, that, whether present or absent, we may be -accepted of him. - -5:10 For we must all appear before the judgment seat of Christ; that -every one may receive the things done in his body, according to that -he hath done, whether it be good or bad. - -5:11 Knowing therefore the terror of the Lord, we persuade men; but we -are made manifest unto God; and I trust also are made manifest in your -consciences. - -5:12 For we commend not ourselves again unto you, but give you -occasion to glory on our behalf, that ye may have somewhat to answer -them which glory in appearance, and not in heart. - -5:13 For whether we be beside ourselves, it is to God: or whether we -be sober, it is for your cause. - -5:14 For the love of Christ constraineth us; because we thus judge, -that if one died for all, then were all dead: 5:15 And that he died -for all, that they which live should not henceforth live unto -themselves, but unto him which died for them, and rose again. - -5:16 Wherefore henceforth know we no man after the flesh: yea, though -we have known Christ after the flesh, yet now henceforth know we him -no more. - -5:17 Therefore if any man be in Christ, he is a new creature: old -things are passed away; behold, all things are become new. - -5:18 And all things are of God, who hath reconciled us to himself by -Jesus Christ, and hath given to us the ministry of reconciliation; -5:19 To wit, that God was in Christ, reconciling the world unto -himself, not imputing their trespasses unto them; and hath committed -unto us the word of reconciliation. - -5:20 Now then we are ambassadors for Christ, as though God did beseech -you by us: we pray you in Christ's stead, be ye reconciled to God. - -5:21 For he hath made him to be sin for us, who knew no sin; that we -might be made the righteousness of God in him. - -6:1 We then, as workers together with him, beseech you also that ye -receive not the grace of God in vain. - -6:2 (For he saith, I have heard thee in a time accepted, and in the -day of salvation have I succoured thee: behold, now is the accepted -time; behold, now is the day of salvation.) 6:3 Giving no offence in -any thing, that the ministry be not blamed: 6:4 But in all things -approving ourselves as the ministers of God, in much patience, in -afflictions, in necessities, in distresses, 6:5 In stripes, in -imprisonments, in tumults, in labours, in watchings, in fastings; 6:6 -By pureness, by knowledge, by longsuffering, by kindness, by the Holy -Ghost, by love unfeigned, 6:7 By the word of truth, by the power of -God, by the armour of righteousness on the right hand and on the left, -6:8 By honour and dishonour, by evil report and good report: as -deceivers, and yet true; 6:9 As unknown, and yet well known; as dying, -and, behold, we live; as chastened, and not killed; 6:10 As sorrowful, -yet alway rejoicing; as poor, yet making many rich; as having nothing, -and yet possessing all things. - -6:11 O ye Corinthians, our mouth is open unto you, our heart is -enlarged. - -6:12 Ye are not straitened in us, but ye are straitened in your own -bowels. - -6:13 Now for a recompence in the same, (I speak as unto my children,) -be ye also enlarged. - -6:14 Be ye not unequally yoked together with unbelievers: for what -fellowship hath righteousness with unrighteousness? and what communion -hath light with darkness? 6:15 And what concord hath Christ with -Belial? or what part hath he that believeth with an infidel? 6:16 And -what agreement hath the temple of God with idols? for ye are the -temple of the living God; as God hath said, I will dwell in them, and -walk in them; and I will be their God, and they shall be my people. - -6:17 Wherefore come out from among them, and be ye separate, saith the -Lord, and touch not the unclean thing; and I will receive you. - -6:18 And will be a Father unto you, and ye shall be my sons and -daughters, saith the Lord Almighty. - -7:1 Having therefore these promises, dearly beloved, let us cleanse -ourselves from all filthiness of the flesh and spirit, perfecting -holiness in the fear of God. - -7:2 Receive us; we have wronged no man, we have corrupted no man, we -have defrauded no man. - -7:3 I speak not this to condemn you: for I have said before, that ye -are in our hearts to die and live with you. - -7:4 Great is my boldness of speech toward you, great is my glorying of -you: I am filled with comfort, I am exceeding joyful in all our -tribulation. - -7:5 For, when we were come into Macedonia, our flesh had no rest, but -we were troubled on every side; without were fightings, within were -fears. - -7:6 Nevertheless God, that comforteth those that are cast down, -comforted us by the coming of Titus; 7:7 And not by his coming only, -but by the consolation wherewith he was comforted in you, when he told -us your earnest desire, your mourning, your fervent mind toward me; so -that I rejoiced the more. - -7:8 For though I made you sorry with a letter, I do not repent, though -I did repent: for I perceive that the same epistle hath made you -sorry, though it were but for a season. - -7:9 Now I rejoice, not that ye were made sorry, but that ye sorrowed -to repentance: for ye were made sorry after a godly manner, that ye -might receive damage by us in nothing. - -7:10 For godly sorrow worketh repentance to salvation not to be -repented of: but the sorrow of the world worketh death. - -7:11 For behold this selfsame thing, that ye sorrowed after a godly -sort, what carefulness it wrought in you, yea, what clearing of -yourselves, yea, what indignation, yea, what fear, yea, what vehement -desire, yea, what zeal, yea, what revenge! In all things ye have -approved yourselves to be clear in this matter. - -7:12 Wherefore, though I wrote unto you, I did it not for his cause -that had done the wrong, nor for his cause that suffered wrong, but -that our care for you in the sight of God might appear unto you. - -7:13 Therefore we were comforted in your comfort: yea, and exceedingly -the more joyed we for the joy of Titus, because his spirit was -refreshed by you all. - -7:14 For if I have boasted any thing to him of you, I am not ashamed; -but as we spake all things to you in truth, even so our boasting, -which I made before Titus, is found a truth. - -7:15 And his inward affection is more abundant toward you, whilst he -remembereth the obedience of you all, how with fear and trembling ye -received him. - -7:16 I rejoice therefore that I have confidence in you in all things. - -8:1 Moreover, brethren, we do you to wit of the grace of God bestowed -on the churches of Macedonia; 8:2 How that in a great trial of -affliction the abundance of their joy and their deep poverty abounded -unto the riches of their liberality. - -8:3 For to their power, I bear record, yea, and beyond their power -they were willing of themselves; 8:4 Praying us with much intreaty -that we would receive the gift, and take upon us the fellowship of the -ministering to the saints. - -8:5 And this they did, not as we hoped, but first gave their own -selves to the Lord, and unto us by the will of God. - -8:6 Insomuch that we desired Titus, that as he had begun, so he would -also finish in you the same grace also. - -8:7 Therefore, as ye abound in every thing, in faith, and utterance, -and knowledge, and in all diligence, and in your love to us, see that -ye abound in this grace also. - -8:8 I speak not by commandment, but by occasion of the forwardness of -others, and to prove the sincerity of your love. - -8:9 For ye know the grace of our Lord Jesus Christ, that, though he -was rich, yet for your sakes he became poor, that ye through his -poverty might be rich. - -8:10 And herein I give my advice: for this is expedient for you, who -have begun before, not only to do, but also to be forward a year ago. - -8:11 Now therefore perform the doing of it; that as there was a -readiness to will, so there may be a performance also out of that -which ye have. - -8:12 For if there be first a willing mind, it is accepted according to -that a man hath, and not according to that he hath not. - -8:13 For I mean not that other men be eased, and ye burdened: 8:14 But -by an equality, that now at this time your abundance may be a supply -for their want, that their abundance also may be a supply for your -want: that there may be equality: 8:15 As it is written, He that had -gathered much had nothing over; and he that had gathered little had no -lack. - -8:16 But thanks be to God, which put the same earnest care into the -heart of Titus for you. - -8:17 For indeed he accepted the exhortation; but being more forward, -of his own accord he went unto you. - -8:18 And we have sent with him the brother, whose praise is in the -gospel throughout all the churches; 8:19 And not that only, but who -was also chosen of the churches to travel with us with this grace, -which is administered by us to the glory of the same Lord, and -declaration of your ready mind: 8:20 Avoiding this, that no man should -blame us in this abundance which is administered by us: 8:21 Providing -for honest things, not only in the sight of the Lord, but also in the -sight of men. - -8:22 And we have sent with them our brother, whom we have oftentimes -proved diligent in many things, but now much more diligent, upon the -great confidence which I have in you. - -8:23 Whether any do enquire of Titus, he is my partner and -fellowhelper concerning you: or our brethren be enquired of, they are -the messengers of the churches, and the glory of Christ. - -8:24 Wherefore shew ye to them, and before the churches, the proof of -your love, and of our boasting on your behalf. - -9:1 For as touching the ministering to the saints, it is superfluous -for me to write to you: 9:2 For I know the forwardness of your mind, -for which I boast of you to them of Macedonia, that Achaia was ready a -year ago; and your zeal hath provoked very many. - -9:3 Yet have I sent the brethren, lest our boasting of you should be -in vain in this behalf; that, as I said, ye may be ready: 9:4 Lest -haply if they of Macedonia come with me, and find you unprepared, we -(that we say not, ye) should be ashamed in this same confident -boasting. - -9:5 Therefore I thought it necessary to exhort the brethren, that they -would go before unto you, and make up beforehand your bounty, whereof -ye had notice before, that the same might be ready, as a matter of -bounty, and not as of covetousness. - -9:6 But this I say, He which soweth sparingly shall reap also -sparingly; and he which soweth bountifully shall reap also -bountifully. - -9:7 Every man according as he purposeth in his heart, so let him give; -not grudgingly, or of necessity: for God loveth a cheerful giver. - -9:8 And God is able to make all grace abound toward you; that ye, -always having all sufficiency in all things, may abound to every good -work: 9:9 (As it is written, He hath dispersed abroad; he hath given -to the poor: his righteousness remaineth for ever. - -9:10 Now he that ministereth seed to the sower both minister bread for -your food, and multiply your seed sown, and increase the fruits of -your righteousness;) 9:11 Being enriched in every thing to all -bountifulness, which causeth through us thanksgiving to God. - -9:12 For the administration of this service not only supplieth the -want of the saints, but is abundant also by many thanksgivings unto -God; 9:13 Whiles by the experiment of this ministration they glorify -God for your professed subjection unto the gospel of Christ, and for -your liberal distribution unto them, and unto all men; 9:14 And by -their prayer for you, which long after you for the exceeding grace of -God in you. - -9:15 Thanks be unto God for his unspeakable gift. - -10:1 Now I Paul myself beseech you by the meekness and gentleness of -Christ, who in presence am base among you, but being absent am bold -toward you: 10:2 But I beseech you, that I may not be bold when I am -present with that confidence, wherewith I think to be bold against -some, which think of us as if we walked according to the flesh. - -10:3 For though we walk in the flesh, we do not war after the flesh: -10:4 (For the weapons of our warfare are not carnal, but mighty -through God to the pulling down of strong holds;) 10:5 Casting down -imaginations, and every high thing that exalteth itself against the -knowledge of God, and bringing into captivity every thought to the -obedience of Christ; 10:6 And having in a readiness to revenge all -disobedience, when your obedience is fulfilled. - -10:7 Do ye look on things after the outward appearance? If any man -trust to himself that he is Christ's, let him of himself think this -again, that, as he is Christ's, even so are we Christ's. - -10:8 For though I should boast somewhat more of our authority, which -the Lord hath given us for edification, and not for your destruction, -I should not be ashamed: 10:9 That I may not seem as if I would -terrify you by letters. - -10:10 For his letters, say they, are weighty and powerful; but his -bodily presence is weak, and his speech contemptible. - -10:11 Let such an one think this, that, such as we are in word by -letters when we are absent, such will we be also in deed when we are -present. - -10:12 For we dare not make ourselves of the number, or compare -ourselves with some that commend themselves: but they measuring -themselves by themselves, and comparing themselves among themselves, -are not wise. - -10:13 But we will not boast of things without our measure, but -according to the measure of the rule which God hath distributed to us, -a measure to reach even unto you. - -10:14 For we stretch not ourselves beyond our measure, as though we -reached not unto you: for we are come as far as to you also in -preaching the gospel of Christ: 10:15 Not boasting of things without -our measure, that is, of other men's labours; but having hope, when -your faith is increased, that we shall be enlarged by you according to -our rule abundantly, 10:16 To preach the gospel in the regions beyond -you, and not to boast in another man's line of things made ready to -our hand. - -10:17 But he that glorieth, let him glory in the Lord. - -10:18 For not he that commendeth himself is approved, but whom the -Lord commendeth. - -11:1 Would to God ye could bear with me a little in my folly: and -indeed bear with me. - -11:2 For I am jealous over you with godly jealousy: for I have -espoused you to one husband, that I may present you as a chaste virgin -to Christ. - -11:3 But I fear, lest by any means, as the serpent beguiled Eve -through his subtilty, so your minds should be corrupted from the -simplicity that is in Christ. - -11:4 For if he that cometh preacheth another Jesus, whom we have not -preached, or if ye receive another spirit, which ye have not received, -or another gospel, which ye have not accepted, ye might well bear with -him. - -11:5 For I suppose I was not a whit behind the very chiefest apostles. - -11:6 But though I be rude in speech, yet not in knowledge; but we have -been throughly made manifest among you in all things. - -11:7 Have I committed an offence in abasing myself that ye might be -exalted, because I have preached to you the gospel of God freely? -11:8 I robbed other churches, taking wages of them, to do you service. - -11:9 And when I was present with you, and wanted, I was chargeable to -no man: for that which was lacking to me the brethren which came from -Macedonia supplied: and in all things I have kept myself from being -burdensome unto you, and so will I keep myself. - -11:10 As the truth of Christ is in me, no man shall stop me of this -boasting in the regions of Achaia. - -11:11 Wherefore? because I love you not? God knoweth. - -11:12 But what I do, that I will do, that I may cut off occasion from -them which desire occasion; that wherein they glory, they may be found -even as we. - -11:13 For such are false apostles, deceitful workers, transforming -themselves into the apostles of Christ. - -11:14 And no marvel; for Satan himself is transformed into an angel of -light. - -11:15 Therefore it is no great thing if his ministers also be -transformed as the ministers of righteousness; whose end shall be -according to their works. - -11:16 I say again, Let no man think me a fool; if otherwise, yet as a -fool receive me, that I may boast myself a little. - -11:17 That which I speak, I speak it not after the Lord, but as it -were foolishly, in this confidence of boasting. - -11:18 Seeing that many glory after the flesh, I will glory also. - -11:19 For ye suffer fools gladly, seeing ye yourselves are wise. - -11:20 For ye suffer, if a man bring you into bondage, if a man devour -you, if a man take of you, if a man exalt himself, if a man smite you -on the face. - -11:21 I speak as concerning reproach, as though we had been weak. -Howbeit whereinsoever any is bold, (I speak foolishly,) I am bold -also. - -11:22 Are they Hebrews? so am I. Are they Israelites? so am I. Are -they the seed of Abraham? so am I. - -11:23 Are they ministers of Christ? (I speak as a fool) I am more; in -labours more abundant, in stripes above measure, in prisons more -frequent, in deaths oft. - -11:24 Of the Jews five times received I forty stripes save one. - -11:25 Thrice was I beaten with rods, once was I stoned, thrice I -suffered shipwreck, a night and a day I have been in the deep; 11:26 -In journeyings often, in perils of waters, in perils of robbers, in -perils by mine own countrymen, in perils by the heathen, in perils in -the city, in perils in the wilderness, in perils in the sea, in perils -among false brethren; 11:27 In weariness and painfulness, in watchings -often, in hunger and thirst, in fastings often, in cold and nakedness. - -11:28 Beside those things that are without, that which cometh upon me -daily, the care of all the churches. - -11:29 Who is weak, and I am not weak? who is offended, and I burn not? -11:30 If I must needs glory, I will glory of the things which concern -mine infirmities. - -11:31 The God and Father of our Lord Jesus Christ, which is blessed -for evermore, knoweth that I lie not. - -11:32 In Damascus the governor under Aretas the king kept the city of -the Damascenes with a garrison, desirous to apprehend me: 11:33 And -through a window in a basket was I let down by the wall, and escaped -his hands. - -12:1 It is not expedient for me doubtless to glory. I will come to -visions and revelations of the Lord. - -12:2 I knew a man in Christ above fourteen years ago, (whether in the -body, I cannot tell; or whether out of the body, I cannot tell: God -knoweth;) such an one caught up to the third heaven. - -12:3 And I knew such a man, (whether in the body, or out of the body, -I cannot tell: God knoweth;) 12:4 How that he was caught up into -paradise, and heard unspeakable words, which it is not lawful for a -man to utter. - -12:5 Of such an one will I glory: yet of myself I will not glory, but -in mine infirmities. - -12:6 For though I would desire to glory, I shall not be a fool; for I -will say the truth: but now I forbear, lest any man should think of me -above that which he seeth me to be, or that he heareth of me. - -12:7 And lest I should be exalted above measure through the abundance -of the revelations, there was given to me a thorn in the flesh, the -messenger of Satan to buffet me, lest I should be exalted above -measure. - -12:8 For this thing I besought the Lord thrice, that it might depart -from me. - -12:9 And he said unto me, My grace is sufficient for thee: for my -strength is made perfect in weakness. Most gladly therefore will I -rather glory in my infirmities, that the power of Christ may rest upon -me. - -12:10 Therefore I take pleasure in infirmities, in reproaches, in -necessities, in persecutions, in distresses for Christ's sake: for -when I am weak, then am I strong. - -12:11 I am become a fool in glorying; ye have compelled me: for I -ought to have been commended of you: for in nothing am I behind the -very chiefest apostles, though I be nothing. - -12:12 Truly the signs of an apostle were wrought among you in all -patience, in signs, and wonders, and mighty deeds. - -12:13 For what is it wherein ye were inferior to other churches, -except it be that I myself was not burdensome to you? forgive me this -wrong. - -12:14 Behold, the third time I am ready to come to you; and I will not -be burdensome to you: for I seek not your's but you: for the children -ought not to lay up for the parents, but the parents for the children. - -12:15 And I will very gladly spend and be spent for you; though the -more abundantly I love you, the less I be loved. - -12:16 But be it so, I did not burden you: nevertheless, being crafty, -I caught you with guile. - -12:17 Did I make a gain of you by any of them whom I sent unto you? -12:18 I desired Titus, and with him I sent a brother. Did Titus make a -gain of you? walked we not in the same spirit? walked we not in the -same steps? 12:19 Again, think ye that we excuse ourselves unto you? -we speak before God in Christ: but we do all things, dearly beloved, -for your edifying. - -12:20 For I fear, lest, when I come, I shall not find you such as I -would, and that I shall be found unto you such as ye would not: lest -there be debates, envyings, wraths, strifes, backbitings, whisperings, -swellings, tumults: 12:21 And lest, when I come again, my God will -humble me among you, and that I shall bewail many which have sinned -already, and have not repented of the uncleanness and fornication and -lasciviousness which they have committed. - -13:1 This is the third time I am coming to you. In the mouth of two or -three witnesses shall every word be established. - -13:2 I told you before, and foretell you, as if I were present, the -second time; and being absent now I write to them which heretofore -have sinned, and to all other, that, if I come again, I will not -spare: 13:3 Since ye seek a proof of Christ speaking in me, which to -you-ward is not weak, but is mighty in you. - -13:4 For though he was crucified through weakness, yet he liveth by -the power of God. For we also are weak in him, but we shall live with -him by the power of God toward you. - -13:5 Examine yourselves, whether ye be in the faith; prove your own -selves. Know ye not your own selves, how that Jesus Christ is in you, -except ye be reprobates? 13:6 But I trust that ye shall know that we -are not reprobates. - -13:7 Now I pray to God that ye do no evil; not that we should appear -approved, but that ye should do that which is honest, though we be as -reprobates. - -13:8 For we can do nothing against the truth, but for the truth. - -13:9 For we are glad, when we are weak, and ye are strong: and this -also we wish, even your perfection. - -13:10 Therefore I write these things being absent, lest being present -I should use sharpness, according to the power which the Lord hath -given me to edification, and not to destruction. - -13:11 Finally, brethren, farewell. Be perfect, be of good comfort, be -of one mind, live in peace; and the God of love and peace shall be -with you. - -13:12 Greet one another with an holy kiss. - -13:13 All the saints salute you. - -13:14 The grace of the Lord Jesus Christ, and the love of God, and the -communion of the Holy Ghost, be with you all. Amen. - - - - -The Epistle of Paul the Apostle to the Galatians - - -1:1 Paul, an apostle, (not of men, neither by man, but by Jesus -Christ, and God the Father, who raised him from the dead;) 1:2 And all -the brethren which are with me, unto the churches of Galatia: 1:3 -Grace be to you and peace from God the Father, and from our Lord Jesus -Christ, 1:4 Who gave himself for our sins, that he might deliver us -from this present evil world, according to the will of God and our -Father: 1:5 To whom be glory for ever and ever. Amen. - -1:6 I marvel that ye are so soon removed from him that called you into -the grace of Christ unto another gospel: 1:7 Which is not another; but -there be some that trouble you, and would pervert the gospel of -Christ. - -1:8 But though we, or an angel from heaven, preach any other gospel -unto you than that which we have preached unto you, let him be -accursed. - -1:9 As we said before, so say I now again, if any man preach any other -gospel unto you than that ye have received, let him be accursed. - -1:10 For do I now persuade men, or God? or do I seek to please men? -for if I yet pleased men, I should not be the servant of Christ. - -1:11 But I certify you, brethren, that the gospel which was preached -of me is not after man. - -1:12 For I neither received it of man, neither was I taught it, but by -the revelation of Jesus Christ. - -1:13 For ye have heard of my conversation in time past in the Jews' -religion, how that beyond measure I persecuted the church of God, and -wasted it: 1:14 And profited in the Jews' religion above many my -equals in mine own nation, being more exceedingly zealous of the -traditions of my fathers. - -1:15 But when it pleased God, who separated me from my mother's womb, -and called me by his grace, 1:16 To reveal his Son in me, that I might -preach him among the heathen; immediately I conferred not with flesh -and blood: 1:17 Neither went I up to Jerusalem to them which were -apostles before me; but I went into Arabia, and returned again unto -Damascus. - -1:18 Then after three years I went up to Jerusalem to see Peter, and -abode with him fifteen days. - -1:19 But other of the apostles saw I none, save James the Lord's -brother. - -1:20 Now the things which I write unto you, behold, before God, I lie -not. - -1:21 Afterwards I came into the regions of Syria and Cilicia; 1:22 And -was unknown by face unto the churches of Judaea which were in Christ: -1:23 But they had heard only, That he which persecuted us in times -past now preacheth the faith which once he destroyed. - -1:24 And they glorified God in me. - -2:1 Then fourteen years after I went up again to Jerusalem with -Barnabas, and took Titus with me also. - -2:2 And I went up by revelation, and communicated unto them that -gospel which I preach among the Gentiles, but privately to them which -were of reputation, lest by any means I should run, or had run, in -vain. - -2:3 But neither Titus, who was with me, being a Greek, was compelled -to be circumcised: 2:4 And that because of false brethren unawares -brought in, who came in privily to spy out our liberty which we have -in Christ Jesus, that they might bring us into bondage: 2:5 To whom we -gave place by subjection, no, not for an hour; that the truth of the -gospel might continue with you. - -2:6 But of these who seemed to be somewhat, (whatsoever they were, it -maketh no matter to me: God accepteth no man's person:) for they who -seemed to be somewhat in conference added nothing to me: 2:7 But -contrariwise, when they saw that the gospel of the uncircumcision was -committed unto me, as the gospel of the circumcision was unto Peter; -2:8 (For he that wrought effectually in Peter to the apostleship of -the circumcision, the same was mighty in me toward the Gentiles:) 2:9 -And when James, Cephas, and John, who seemed to be pillars, perceived -the grace that was given unto me, they gave to me and Barnabas the -right hands of fellowship; that we should go unto the heathen, and -they unto the circumcision. - -2:10 Only they would that we should remember the poor; the same which -I also was forward to do. - -2:11 But when Peter was come to Antioch, I withstood him to the face, -because he was to be blamed. - -2:12 For before that certain came from James, he did eat with the -Gentiles: but when they were come, he withdrew and separated himself, -fearing them which were of the circumcision. - -2:13 And the other Jews dissembled likewise with him; insomuch that -Barnabas also was carried away with their dissimulation. - -2:14 But when I saw that they walked not uprightly according to the -truth of the gospel, I said unto Peter before them all, If thou, being -a Jew, livest after the manner of Gentiles, and not as do the Jews, -why compellest thou the Gentiles to live as do the Jews? 2:15 We who -are Jews by nature, and not sinners of the Gentiles, 2:16 Knowing that -a man is not justified by the works of the law, but by the faith of -Jesus Christ, even we have believed in Jesus Christ, that we might be -justified by the faith of Christ, and not by the works of the law: for -by the works of the law shall no flesh be justified. - -2:17 But if, while we seek to be justified by Christ, we ourselves -also are found sinners, is therefore Christ the minister of sin? God -forbid. - -2:18 For if I build again the things which I destroyed, I make myself -a transgressor. - -2:19 For I through the law am dead to the law, that I might live unto -God. - -2:20 I am crucified with Christ: neverthless I live; yet not I, but -Christ liveth in me: and the life which I now live in the flesh I live -by the faith of the Son of God, who loved me, and gave himself for me. - -2:21 I do not frustrate the grace of God: for if righteousness come by -the law, then Christ is dead in vain. - -3:1 O foolish Galatians, who hath bewitched you, that ye should not -obey the truth, before whose eyes Jesus Christ hath been evidently set -forth, crucified among you? 3:2 This only would I learn of you, -Received ye the Spirit by the works of the law, or by the hearing of -faith? 3:3 Are ye so foolish? having begun in the Spirit, are ye now -made perfect by the flesh? 3:4 Have ye suffered so many things in -vain? if it be yet in vain. - -3:5 He therefore that ministereth to you the Spirit, and worketh -miracles among you, doeth he it by the works of the law, or by the -hearing of faith? 3:6 Even as Abraham believed God, and it was -accounted to him for righteousness. - -3:7 Know ye therefore that they which are of faith, the same are the -children of Abraham. - -3:8 And the scripture, foreseeing that God would justify the heathen -through faith, preached before the gospel unto Abraham, saying, In -thee shall all nations be blessed. - -3:9 So then they which be of faith are blessed with faithful Abraham. - -3:10 For as many as are of the works of the law are under the curse: -for it is written, Cursed is every one that continueth not in all -things which are written in the book of the law to do them. - -3:11 But that no man is justified by the law in the sight of God, it -is evident: for, The just shall live by faith. - -3:12 And the law is not of faith: but, The man that doeth them shall -live in them. - -3:13 Christ hath redeemed us from the curse of the law, being made a -curse for us: for it is written, Cursed is every one that hangeth on a -tree: 3:14 That the blessing of Abraham might come on the Gentiles -through Jesus Christ; that we might receive the promise of the Spirit -through faith. - -3:15 Brethren, I speak after the manner of men; Though it be but a -man's covenant, yet if it be confirmed, no man disannulleth, or addeth -thereto. - -3:16 Now to Abraham and his seed were the promises made. He saith not, -And to seeds, as of many; but as of one, And to thy seed, which is -Christ. - -3:17 And this I say, that the covenant, that was confirmed before of -God in Christ, the law, which was four hundred and thirty years after, -cannot disannul, that it should make the promise of none effect. - -3:18 For if the inheritance be of the law, it is no more of promise: -but God gave it to Abraham by promise. - -3:19 Wherefore then serveth the law? It was added because of -transgressions, till the seed should come to whom the promise was -made; and it was ordained by angels in the hand of a mediator. - -3:20 Now a mediator is not a mediator of one, but God is one. - -3:21 Is the law then against the promises of God? God forbid: for if -there had been a law given which could have given life, verily -righteousness should have been by the law. - -3:22 But the scripture hath concluded all under sin, that the promise -by faith of Jesus Christ might be given to them that believe. - -3:23 But before faith came, we were kept under the law, shut up unto -the faith which should afterwards be revealed. - -3:24 Wherefore the law was our schoolmaster to bring us unto Christ, -that we might be justified by faith. - -3:25 But after that faith is come, we are no longer under a -schoolmaster. - -3:26 For ye are all the children of God by faith in Christ Jesus. - -3:27 For as many of you as have been baptized into Christ have put on -Christ. - -3:28 There is neither Jew nor Greek, there is neither bond nor free, -there is neither male nor female: for ye are all one in Christ Jesus. - -3:29 And if ye be Christ's, then are ye Abraham's seed, and heirs -according to the promise. - -4:1 Now I say, That the heir, as long as he is a child, differeth -nothing from a servant, though he be lord of all; 4:2 But is under -tutors and governors until the time appointed of the father. - -4:3 Even so we, when we were children, were in bondage under the -elements of the world: 4:4 But when the fulness of the time was come, -God sent forth his Son, made of a woman, made under the law, 4:5 To -redeem them that were under the law, that we might receive the -adoption of sons. - -4:6 And because ye are sons, God hath sent forth the Spirit of his Son -into your hearts, crying, Abba, Father. - -4:7 Wherefore thou art no more a servant, but a son; and if a son, -then an heir of God through Christ. - -4:8 Howbeit then, when ye knew not God, ye did service unto them which -by nature are no gods. - -4:9 But now, after that ye have known God, or rather are known of God, -how turn ye again to the weak and beggarly elements, whereunto ye -desire again to be in bondage? 4:10 Ye observe days, and months, and -times, and years. - -4:11 I am afraid of you, lest I have bestowed upon you labour in vain. - -4:12 Brethren, I beseech you, be as I am; for I am as ye are: ye have -not injured me at all. - -4:13 Ye know how through infirmity of the flesh I preached the gospel -unto you at the first. - -4:14 And my temptation which was in my flesh ye despised not, nor -rejected; but received me as an angel of God, even as Christ Jesus. - -4:15 Where is then the blessedness ye spake of? for I bear you record, -that, if it had been possible, ye would have plucked out your own -eyes, and have given them to me. - -4:16 Am I therefore become your enemy, because I tell you the truth? -4:17 They zealously affect you, but not well; yea, they would exclude -you, that ye might affect them. - -4:18 But it is good to be zealously affected always in a good thing, -and not only when I am present with you. - -4:19 My little children, of whom I travail in birth again until Christ -be formed in you, 4:20 I desire to be present with you now, and to -change my voice; for I stand in doubt of you. - -4:21 Tell me, ye that desire to be under the law, do ye not hear the -law? 4:22 For it is written, that Abraham had two sons, the one by a -bondmaid, the other by a freewoman. - -4:23 But he who was of the bondwoman was born after the flesh; but he -of the freewoman was by promise. - -4:24 Which things are an allegory: for these are the two covenants; -the one from the mount Sinai, which gendereth to bondage, which is -Agar. - -4:25 For this Agar is mount Sinai in Arabia, and answereth to -Jerusalem which now is, and is in bondage with her children. - -4:26 But Jerusalem which is above is free, which is the mother of us -all. - -4:27 For it is written, Rejoice, thou barren that bearest not; break -forth and cry, thou that travailest not: for the desolate hath many -more children than she which hath an husband. - -4:28 Now we, brethren, as Isaac was, are the children of promise. - -4:29 But as then he that was born after the flesh persecuted him that -was born after the Spirit, even so it is now. - -4:30 Nevertheless what saith the scripture? Cast out the bondwoman and -her son: for the son of the bondwoman shall not be heir with the son -of the freewoman. - -4:31 So then, brethren, we are not children of the bondwoman, but of -the free. - -5:1 Stand fast therefore in the liberty wherewith Christ hath made us -free, and be not entangled again with the yoke of bondage. - -5:2 Behold, I Paul say unto you, that if ye be circumcised, Christ -shall profit you nothing. - -5:3 For I testify again to every man that is circumcised, that he is a -debtor to do the whole law. - -5:4 Christ is become of no effect unto you, whosoever of you are -justified by the law; ye are fallen from grace. - -5:5 For we through the Spirit wait for the hope of righteousness by -faith. - -5:6 For in Jesus Christ neither circumcision availeth any thing, nor -uncircumcision; but faith which worketh by love. - -5:7 Ye did run well; who did hinder you that ye should not obey the -truth? 5:8 This persuasion cometh not of him that calleth you. - -5:9 A little leaven leaveneth the whole lump. - -5:10 I have confidence in you through the Lord, that ye will be none -otherwise minded: but he that troubleth you shall bear his judgment, -whosoever he be. - -5:11 And I, brethren, if I yet preach circumcision, why do I yet -suffer persecution? then is the offence of the cross ceased. - -5:12 I would they were even cut off which trouble you. - -5:13 For, brethren, ye have been called unto liberty; only use not -liberty for an occasion to the flesh, but by love serve one another. - -5:14 For all the law is fulfilled in one word, even in this; Thou -shalt love thy neighbour as thyself. - -5:15 But if ye bite and devour one another, take heed that ye be not -consumed one of another. - -5:16 This I say then, Walk in the Spirit, and ye shall not fulfil the -lust of the flesh. - -5:17 For the flesh lusteth against the Spirit, and the Spirit against -the flesh: and these are contrary the one to the other: so that ye -cannot do the things that ye would. - -5:18 But if ye be led of the Spirit, ye are not under the law. - -5:19 Now the works of the flesh are manifest, which are these; -Adultery, fornication, uncleanness, lasciviousness, 5:20 Idolatry, -witchcraft, hatred, variance, emulations, wrath, strife, seditions, -heresies, 5:21 Envyings, murders, drunkenness, revellings, and such -like: of the which I tell you before, as I have also told you in time -past, that they which do such things shall not inherit the kingdom of -God. - -5:22 But the fruit of the Spirit is love, joy, peace, longsuffering, -gentleness, goodness, faith, 5:23 Meekness, temperance: against such -there is no law. - -5:24 And they that are Christ's have crucified the flesh with the -affections and lusts. - -5:25 If we live in the Spirit, let us also walk in the Spirit. - -5:26 Let us not be desirous of vain glory, provoking one another, -envying one another. - -6:1 Brethren, if a man be overtaken in a fault, ye which are -spiritual, restore such an one in the spirit of meekness; considering -thyself, lest thou also be tempted. - -6:2 Bear ye one another's burdens, and so fulfil the law of Christ. - -6:3 For if a man think himself to be something, when he is nothing, he -deceiveth himself. - -6:4 But let every man prove his own work, and then shall he have -rejoicing in himself alone, and not in another. - -6:5 For every man shall bear his own burden. - -6:6 Let him that is taught in the word communicate unto him that -teacheth in all good things. - -6:7 Be not deceived; God is not mocked: for whatsoever a man soweth, -that shall he also reap. - -6:8 For he that soweth to his flesh shall of the flesh reap -corruption; but he that soweth to the Spirit shall of the Spirit reap -life everlasting. - -6:9 And let us not be weary in well doing: for in due season we shall -reap, if we faint not. - -6:10 As we have therefore opportunity, let us do good unto all men, -especially unto them who are of the household of faith. - -6:11 Ye see how large a letter I have written unto you with mine own -hand. - -6:12 As many as desire to make a fair shew in the flesh, they -constrain you to be circumcised; only lest they should suffer -persecution for the cross of Christ. - -6:13 For neither they themselves who are circumcised keep the law; but -desire to have you circumcised, that they may glory in your flesh. - -6:14 But God forbid that I should glory, save in the cross of our Lord -Jesus Christ, by whom the world is crucified unto me, and I unto the -world. - -6:15 For in Christ Jesus neither circumcision availeth any thing, nor -uncircumcision, but a new creature. - -6:16 And as many as walk according to this rule, peace be on them, and -mercy, and upon the Israel of God. - -6:17 From henceforth let no man trouble me: for I bear in my body the -marks of the Lord Jesus. - -6:18 Brethren, the grace of our Lord Jesus Christ be with your spirit. - -Amen. - - - - -The Epistle of Paul the Apostle to the Ephesians - - -1:1 Paul, an apostle of Jesus Christ by the will of God, to the -saints which are at Ephesus, and to the faithful in Christ Jesus: -1:2 Grace be to you, and peace, from God our Father, and from the Lord -Jesus Christ. - -1:3 Blessed be the God and Father of our Lord Jesus Christ, who hath -blessed us with all spiritual blessings in heavenly places in Christ: -1:4 According as he hath chosen us in him before the foundation of the -world, that we should be holy and without blame before him in love: -1:5 Having predestinated us unto the adoption of children by Jesus -Christ to himself, according to the good pleasure of his will, 1:6 To -the praise of the glory of his grace, wherein he hath made us accepted -in the beloved. - -1:7 In whom we have redemption through his blood, the forgiveness of -sins, according to the riches of his grace; 1:8 Wherein he hath -abounded toward us in all wisdom and prudence; 1:9 Having made known -unto us the mystery of his will, according to his good pleasure which -he hath purposed in himself: 1:10 That in the dispensation of the -fulness of times he might gather together in one all things in Christ, -both which are in heaven, and which are on earth; even in him: 1:11 In -whom also we have obtained an inheritance, being predestinated -according to the purpose of him who worketh all things after the -counsel of his own will: 1:12 That we should be to the praise of his -glory, who first trusted in Christ. - -1:13 In whom ye also trusted, after that ye heard the word of truth, -the gospel of your salvation: in whom also after that ye believed, ye -were sealed with that holy Spirit of promise, 1:14 Which is the -earnest of our inheritance until the redemption of the purchased -possession, unto the praise of his glory. - -1:15 Wherefore I also, after I heard of your faith in the Lord Jesus, -and love unto all the saints, 1:16 Cease not to give thanks for you, -making mention of you in my prayers; 1:17 That the God of our Lord -Jesus Christ, the Father of glory, may give unto you the spirit of -wisdom and revelation in the knowledge of him: 1:18 The eyes of your -understanding being enlightened; that ye may know what is the hope of -his calling, and what the riches of the glory of his inheritance in -the saints, 1:19 And what is the exceeding greatness of his power to -us-ward who believe, according to the working of his mighty power, -1:20 Which he wrought in Christ, when he raised him from the dead, and -set him at his own right hand in the heavenly places, 1:21 Far above -all principality, and power, and might, and dominion, and every name -that is named, not only in this world, but also in that which is to -come: 1:22 And hath put all things under his feet, and gave him to be -the head over all things to the church, 1:23 Which is his body, the -fulness of him that filleth all in all. - -2:1 And you hath he quickened, who were dead in trespasses and sins; -2:2 Wherein in time past ye walked according to the course of this -world, according to the prince of the power of the air, the spirit -that now worketh in the children of disobedience: 2:3 Among whom also -we all had our conversation in times past in the lusts of our flesh, -fulfilling the desires of the flesh and of the mind; and were by -nature the children of wrath, even as others. - -2:4 But God, who is rich in mercy, for his great love wherewith he -loved us, 2:5 Even when we were dead in sins, hath quickened us -together with Christ, (by grace ye are saved;) 2:6 And hath raised us -up together, and made us sit together in heavenly places in Christ -Jesus: 2:7 That in the ages to come he might shew the exceeding riches -of his grace in his kindness toward us through Christ Jesus. - -2:8 For by grace are ye saved through faith; and that not of -yourselves: it is the gift of God: 2:9 Not of works, lest any man -should boast. - -2:10 For we are his workmanship, created in Christ Jesus unto good -works, which God hath before ordained that we should walk in them. - -2:11 Wherefore remember, that ye being in time past Gentiles in the -flesh, who are called Uncircumcision by that which is called the -Circumcision in the flesh made by hands; 2:12 That at that time ye -were without Christ, being aliens from the commonwealth of Israel, and -strangers from the covenants of promise, having no hope, and without -God in the world: 2:13 But now in Christ Jesus ye who sometimes were -far off are made nigh by the blood of Christ. - -2:14 For he is our peace, who hath made both one, and hath broken down -the middle wall of partition between us; 2:15 Having abolished in his -flesh the enmity, even the law of commandments contained in -ordinances; for to make in himself of twain one new man, so making -peace; 2:16 And that he might reconcile both unto God in one body by -the cross, having slain the enmity thereby: 2:17 And came and preached -peace to you which were afar off, and to them that were nigh. - -2:18 For through him we both have access by one Spirit unto the -Father. - -2:19 Now therefore ye are no more strangers and foreigners, but -fellowcitizens with the saints, and of the household of God; 2:20 And -are built upon the foundation of the apostles and prophets, Jesus -Christ himself being the chief corner stone; 2:21 In whom all the -building fitly framed together groweth unto an holy temple in the -Lord: 2:22 In whom ye also are builded together for an habitation of -God through the Spirit. - -3:1 For this cause I Paul, the prisoner of Jesus Christ for you -Gentiles, 3:2 If ye have heard of the dispensation of the grace of God -which is given me to you-ward: 3:3 How that by revelation he made -known unto me the mystery; (as I wrote afore in few words, 3:4 -Whereby, when ye read, ye may understand my knowledge in the mystery -of Christ) 3:5 Which in other ages was not made known unto the sons of -men, as it is now revealed unto his holy apostles and prophets by the -Spirit; 3:6 That the Gentiles should be fellowheirs, and of the same -body, and partakers of his promise in Christ by the gospel: 3:7 -Whereof I was made a minister, according to the gift of the grace of -God given unto me by the effectual working of his power. - -3:8 Unto me, who am less than the least of all saints, is this grace -given, that I should preach among the Gentiles the unsearchable riches -of Christ; 3:9 And to make all men see what is the fellowship of the -mystery, which from the beginning of the world hath been hid in God, -who created all things by Jesus Christ: 3:10 To the intent that now -unto the principalities and powers in heavenly places might be known -by the church the manifold wisdom of God, 3:11 According to the -eternal purpose which he purposed in Christ Jesus our Lord: 3:12 In -whom we have boldness and access with confidence by the faith of him. - -3:13 Wherefore I desire that ye faint not at my tribulations for you, -which is your glory. - -3:14 For this cause I bow my knees unto the Father of our Lord Jesus -Christ, 3:15 Of whom the whole family in heaven and earth is named, -3:16 That he would grant you, according to the riches of his glory, to -be strengthened with might by his Spirit in the inner man; 3:17 That -Christ may dwell in your hearts by faith; that ye, being rooted and -grounded in love, 3:18 May be able to comprehend with all saints what -is the breadth, and length, and depth, and height; 3:19 And to know -the love of Christ, which passeth knowledge, that ye might be filled -with all the fulness of God. - -3:20 Now unto him that is able to do exceeding abundantly above all -that we ask or think, according to the power that worketh in us, 3:21 -Unto him be glory in the church by Christ Jesus throughout all ages, -world without end. Amen. - -4:1 I therefore, the prisoner of the Lord, beseech you that ye walk -worthy of the vocation wherewith ye are called, 4:2 With all lowliness -and meekness, with longsuffering, forbearing one another in love; 4:3 -Endeavouring to keep the unity of the Spirit in the bond of peace. - -4:4 There is one body, and one Spirit, even as ye are called in one -hope of your calling; 4:5 One Lord, one faith, one baptism, 4:6 One -God and Father of all, who is above all, and through all, and in you -all. - -4:7 But unto every one of us is given grace according to the measure -of the gift of Christ. - -4:8 Wherefore he saith, When he ascended up on high, he led captivity -captive, and gave gifts unto men. - -4:9 (Now that he ascended, what is it but that he also descended first -into the lower parts of the earth? 4:10 He that descended is the same -also that ascended up far above all heavens, that he might fill all -things.) 4:11 And he gave some, apostles; and some, prophets; and -some, evangelists; and some, pastors and teachers; 4:12 For the -perfecting of the saints, for the work of the ministry, for the -edifying of the body of Christ: 4:13 Till we all come in the unity of -the faith, and of the knowledge of the Son of God, unto a perfect man, -unto the measure of the stature of the fulness of Christ: 4:14 That we -henceforth be no more children, tossed to and fro, and carried about -with every wind of doctrine, by the sleight of men, and cunning -craftiness, whereby they lie in wait to deceive; 4:15 But speaking the -truth in love, may grow up into him in all things, which is the head, -even Christ: 4:16 From whom the whole body fitly joined together and -compacted by that which every joint supplieth, according to the -effectual working in the measure of every part, maketh increase of the -body unto the edifying of itself in love. - -4:17 This I say therefore, and testify in the Lord, that ye henceforth -walk not as other Gentiles walk, in the vanity of their mind, 4:18 -Having the understanding darkened, being alienated from the life of -God through the ignorance that is in them, because of the blindness of -their heart: 4:19 Who being past feeling have given themselves over -unto lasciviousness, to work all uncleanness with greediness. - -4:20 But ye have not so learned Christ; 4:21 If so be that ye have -heard him, and have been taught by him, as the truth is in Jesus: 4:22 -That ye put off concerning the former conversation the old man, which -is corrupt according to the deceitful lusts; 4:23 And be renewed in -the spirit of your mind; 4:24 And that ye put on the new man, which -after God is created in righteousness and true holiness. - -4:25 Wherefore putting away lying, speak every man truth with his -neighbour: for we are members one of another. - -4:26 Be ye angry, and sin not: let not the sun go down upon your -wrath: 4:27 Neither give place to the devil. - -4:28 Let him that stole steal no more: but rather let him labour, -working with his hands the thing which is good, that he may have to -give to him that needeth. - -4:29 Let no corrupt communication proceed out of your mouth, but that -which is good to the use of edifying, that it may minister grace unto -the hearers. - -4:30 And grieve not the holy Spirit of God, whereby ye are sealed unto -the day of redemption. - -4:31 Let all bitterness, and wrath, and anger, and clamour, and evil -speaking, be put away from you, with all malice: 4:32 And be ye kind -one to another, tenderhearted, forgiving one another, even as God for -Christ's sake hath forgiven you. - -5:1 Be ye therefore followers of God, as dear children; 5:2 And walk -in love, as Christ also hath loved us, and hath given himself for us -an offering and a sacrifice to God for a sweetsmelling savour. - -5:3 But fornication, and all uncleanness, or covetousness, let it not -be once named among you, as becometh saints; 5:4 Neither filthiness, -nor foolish talking, nor jesting, which are not convenient: but rather -giving of thanks. - -5:5 For this ye know, that no whoremonger, nor unclean person, nor -covetous man, who is an idolater, hath any inheritance in the kingdom -of Christ and of God. - -5:6 Let no man deceive you with vain words: for because of these -things cometh the wrath of God upon the children of disobedience. - -5:7 Be not ye therefore partakers with them. - -5:8 For ye were sometimes darkness, but now are ye light in the Lord: -walk as children of light: 5:9 (For the fruit of the Spirit is in all -goodness and righteousness and truth;) 5:10 Proving what is acceptable -unto the Lord. - -5:11 And have no fellowship with the unfruitful works of darkness, but -rather reprove them. - -5:12 For it is a shame even to speak of those things which are done of -them in secret. - -5:13 But all things that are reproved are made manifest by the light: -for whatsoever doth make manifest is light. - -5:14 Wherefore he saith, Awake thou that sleepest, and arise from the -dead, and Christ shall give thee light. - -5:15 See then that ye walk circumspectly, not as fools, but as wise, -5:16 Redeeming the time, because the days are evil. - -5:17 Wherefore be ye not unwise, but understanding what the will of -the Lord is. - -5:18 And be not drunk with wine, wherein is excess; but be filled with -the Spirit; 5:19 Speaking to yourselves in psalms and hymns and -spiritual songs, singing and making melody in your heart to the Lord; -5:20 Giving thanks always for all things unto God and the Father in -the name of our Lord Jesus Christ; 5:21 Submitting yourselves one to -another in the fear of God. - -5:22 Wives, submit yourselves unto your own husbands, as unto the -Lord. - -5:23 For the husband is the head of the wife, even as Christ is the -head of the church: and he is the saviour of the body. - -5:24 Therefore as the church is subject unto Christ, so let the wives -be to their own husbands in every thing. - -5:25 Husbands, love your wives, even as Christ also loved the church, -and gave himself for it; 5:26 That he might sanctify and cleanse it -with the washing of water by the word, 5:27 That he might present it -to himself a glorious church, not having spot, or wrinkle, or any such -thing; but that it should be holy and without blemish. - -5:28 So ought men to love their wives as their own bodies. He that -loveth his wife loveth himself. - -5:29 For no man ever yet hated his own flesh; but nourisheth and -cherisheth it, even as the Lord the church: 5:30 For we are members of -his body, of his flesh, and of his bones. - -5:31 For this cause shall a man leave his father and mother, and shall -be joined unto his wife, and they two shall be one flesh. - -5:32 This is a great mystery: but I speak concerning Christ and the -church. - -5:33 Nevertheless let every one of you in particular so love his wife -even as himself; and the wife see that she reverence her husband. - -6:1 Children, obey your parents in the Lord: for this is right. - -6:2 Honour thy father and mother; which is the first commandment with -promise; 6:3 That it may be well with thee, and thou mayest live long -on the earth. - -6:4 And, ye fathers, provoke not your children to wrath: but bring -them up in the nurture and admonition of the Lord. - -6:5 Servants, be obedient to them that are your masters according to -the flesh, with fear and trembling, in singleness of your heart, as -unto Christ; 6:6 Not with eyeservice, as menpleasers; but as the -servants of Christ, doing the will of God from the heart; 6:7 With -good will doing service, as to the Lord, and not to men: 6:8 Knowing -that whatsoever good thing any man doeth, the same shall he receive of -the Lord, whether he be bond or free. - -6:9 And, ye masters, do the same things unto them, forbearing -threatening: knowing that your Master also is in heaven; neither is -there respect of persons with him. - -6:10 Finally, my brethren, be strong in the Lord, and in the power of -his might. - -6:11 Put on the whole armour of God, that ye may be able to stand -against the wiles of the devil. - -6:12 For we wrestle not against flesh and blood, but against -principalities, against powers, against the rulers of the darkness of -this world, against spiritual wickedness in high places. - -6:13 Wherefore take unto you the whole armour of God, that ye may be -able to withstand in the evil day, and having done all, to stand. - -6:14 Stand therefore, having your loins girt about with truth, and -having on the breastplate of righteousness; 6:15 And your feet shod -with the preparation of the gospel of peace; 6:16 Above all, taking -the shield of faith, wherewith ye shall be able to quench all the -fiery darts of the wicked. - -6:17 And take the helmet of salvation, and the sword of the Spirit, -which is the word of God: 6:18 Praying always with all prayer and -supplication in the Spirit, and watching thereunto with all -perseverance and supplication for all saints; 6:19 And for me, that -utterance may be given unto me, that I may open my mouth boldly, to -make known the mystery of the gospel, 6:20 For which I am an -ambassador in bonds: that therein I may speak boldly, as I ought to -speak. - -6:21 But that ye also may know my affairs, and how I do, Tychicus, a -beloved brother and faithful minister in the Lord, shall make known to -you all things: 6:22 Whom I have sent unto you for the same purpose, -that ye might know our affairs, and that he might comfort your hearts. - -6:23 Peace be to the brethren, and love with faith, from God the -Father and the Lord Jesus Christ. - -6:24 Grace be with all them that love our Lord Jesus Christ in -sincerity. - -Amen. - - - - -The Epistle of Paul the Apostle to the Philippians - - -1:1 Paul and Timotheus, the servants of Jesus Christ, to all the -saints in Christ Jesus which are at Philippi, with the bishops and -deacons: 1:2 Grace be unto you, and peace, from God our Father, and -from the Lord Jesus Christ. - -1:3 I thank my God upon every remembrance of you, 1:4 Always in every -prayer of mine for you all making request with joy, 1:5 For your -fellowship in the gospel from the first day until now; 1:6 Being -confident of this very thing, that he which hath begun a good work in -you will perform it until the day of Jesus Christ: 1:7 Even as it is -meet for me to think this of you all, because I have you in my heart; -inasmuch as both in my bonds, and in the defence and confirmation of -the gospel, ye all are partakers of my grace. - -1:8 For God is my record, how greatly I long after you all in the -bowels of Jesus Christ. - -1:9 And this I pray, that your love may abound yet more and more in -knowledge and in all judgment; 1:10 That ye may approve things that -are excellent; that ye may be sincere and without offence till the day -of Christ. - -1:11 Being filled with the fruits of righteousness, which are by Jesus -Christ, unto the glory and praise of God. - -1:12 But I would ye should understand, brethren, that the things which -happened unto me have fallen out rather unto the furtherance of the -gospel; 1:13 So that my bonds in Christ are manifest in all the -palace, and in all other places; 1:14 And many of the brethren in the -Lord, waxing confident by my bonds, are much more bold to speak the -word without fear. - -1:15 Some indeed preach Christ even of envy and strife; and some also -of good will: 1:16 The one preach Christ of contention, not sincerely, -supposing to add affliction to my bonds: 1:17 But the other of love, -knowing that I am set for the defence of the gospel. - -1:18 What then? notwithstanding, every way, whether in pretence, or in -truth, Christ is preached; and I therein do rejoice, yea, and will -rejoice. - -1:19 For I know that this shall turn to my salvation through your -prayer, and the supply of the Spirit of Jesus Christ, 1:20 According -to my earnest expectation and my hope, that in nothing I shall be -ashamed, but that with all boldness, as always, so now also Christ -shall be magnified in my body, whether it be by life, or by death. - -1:21 For to me to live is Christ, and to die is gain. - -1:22 But if I live in the flesh, this is the fruit of my labour: yet -what I shall choose I wot not. - -1:23 For I am in a strait betwixt two, having a desire to depart, and -to be with Christ; which is far better: 1:24 Nevertheless to abide in -the flesh is more needful for you. - -1:25 And having this confidence, I know that I shall abide and -continue with you all for your furtherance and joy of faith; 1:26 That -your rejoicing may be more abundant in Jesus Christ for me by my -coming to you again. - -1:27 Only let your conversation be as it becometh the gospel of -Christ: that whether I come and see you, or else be absent, I may hear -of your affairs, that ye stand fast in one spirit, with one mind -striving together for the faith of the gospel; 1:28 And in nothing -terrified by your adversaries: which is to them an evident token of -perdition, but to you of salvation, and that of God. - -1:29 For unto you it is given in the behalf of Christ, not only to -believe on him, but also to suffer for his sake; 1:30 Having the same -conflict which ye saw in me, and now hear to be in me. - -2:1 If there be therefore any consolation in Christ, if any comfort of -love, if any fellowship of the Spirit, if any bowels and mercies, 2:2 -Fulfil ye my joy, that ye be likeminded, having the same love, being -of one accord, of one mind. - -2:3 Let nothing be done through strife or vainglory; but in lowliness -of mind let each esteem other better than themselves. - -2:4 Look not every man on his own things, but every man also on the -things of others. - -2:5 Let this mind be in you, which was also in Christ Jesus: 2:6 Who, -being in the form of God, thought it not robbery to be equal with God: -2:7 But made himself of no reputation, and took upon him the form of a -servant, and was made in the likeness of men: 2:8 And being found in -fashion as a man, he humbled himself, and became obedient unto death, -even the death of the cross. - -2:9 Wherefore God also hath highly exalted him, and given him a name -which is above every name: 2:10 That at the name of Jesus every knee -should bow, of things in heaven, and things in earth, and things under -the earth; 2:11 And that every tongue should confess that Jesus Christ -is Lord, to the glory of God the Father. - -2:12 Wherefore, my beloved, as ye have always obeyed, not as in my -presence only, but now much more in my absence, work out your own -salvation with fear and trembling. - -2:13 For it is God which worketh in you both to will and to do of his -good pleasure. - -2:14 Do all things without murmurings and disputings: 2:15 That ye may -be blameless and harmless, the sons of God, without rebuke, in the -midst of a crooked and perverse nation, among whom ye shine as lights -in the world; 2:16 Holding forth the word of life; that I may rejoice -in the day of Christ, that I have not run in vain, neither laboured in -vain. - -2:17 Yea, and if I be offered upon the sacrifice and service of your -faith, I joy, and rejoice with you all. - -2:18 For the same cause also do ye joy, and rejoice with me. - -2:19 But I trust in the Lord Jesus to send Timotheus shortly unto you, -that I also may be of good comfort, when I know your state. - -2:20 For I have no man likeminded, who will naturally care for your -state. - -2:21 For all seek their own, not the things which are Jesus Christ's. - -2:22 But ye know the proof of him, that, as a son with the father, he -hath served with me in the gospel. - -2:23 Him therefore I hope to send presently, so soon as I shall see -how it will go with me. - -2:24 But I trust in the Lord that I also myself shall come shortly. - -2:25 Yet I supposed it necessary to send to you Epaphroditus, my -brother, and companion in labour, and fellowsoldier, but your -messenger, and he that ministered to my wants. - -2:26 For he longed after you all, and was full of heaviness, because -that ye had heard that he had been sick. - -2:27 For indeed he was sick nigh unto death: but God had mercy on him; -and not on him only, but on me also, lest I should have sorrow upon -sorrow. - -2:28 I sent him therefore the more carefully, that, when ye see him -again, ye may rejoice, and that I may be the less sorrowful. - -2:29 Receive him therefore in the Lord with all gladness; and hold -such in reputation: 2:30 Because for the work of Christ he was nigh -unto death, not regarding his life, to supply your lack of service -toward me. - -3:1 Finally, my brethren, rejoice in the Lord. To write the same -things to you, to me indeed is not grievous, but for you it is safe. - -3:2 Beware of dogs, beware of evil workers, beware of the concision. - -3:3 For we are the circumcision, which worship God in the spirit, and -rejoice in Christ Jesus, and have no confidence in the flesh. - -3:4 Though I might also have confidence in the flesh. If any other man -thinketh that he hath whereof he might trust in the flesh, I more: 3:5 -Circumcised the eighth day, of the stock of Israel, of the tribe of -Benjamin, an Hebrew of the Hebrews; as touching the law, a Pharisee; -3:6 Concerning zeal, persecuting the church; touching the -righteousness which is in the law, blameless. - -3:7 But what things were gain to me, those I counted loss for Christ. - -3:8 Yea doubtless, and I count all things but loss for the excellency -of the knowledge of Christ Jesus my Lord: for whom I have suffered the -loss of all things, and do count them but dung, that I may win Christ, -3:9 And be found in him, not having mine own righteousness, which is -of the law, but that which is through the faith of Christ, the -righteousness which is of God by faith: 3:10 That I may know him, and -the power of his resurrection, and the fellowship of his sufferings, -being made conformable unto his death; 3:11 If by any means I might -attain unto the resurrection of the dead. - -3:12 Not as though I had already attained, either were already -perfect: but I follow after, if that I may apprehend that for which -also I am apprehended of Christ Jesus. - -3:13 Brethren, I count not myself to have apprehended: but this one -thing I do, forgetting those things which are behind, and reaching -forth unto those things which are before, 3:14 I press toward the mark -for the prize of the high calling of God in Christ Jesus. - -3:15 Let us therefore, as many as be perfect, be thus minded: and if -in any thing ye be otherwise minded, God shall reveal even this unto -you. - -3:16 Nevertheless, whereto we have already attained, let us walk by -the same rule, let us mind the same thing. - -3:17 Brethren, be followers together of me, and mark them which walk -so as ye have us for an ensample. - -3:18 (For many walk, of whom I have told you often, and now tell you -even weeping, that they are the enemies of the cross of Christ: 3:19 -Whose end is destruction, whose God is their belly, and whose glory is -in their shame, who mind earthly things.) 3:20 For our conversation -is in heaven; from whence also we look for the Saviour, the Lord Jesus -Christ: 3:21 Who shall change our vile body, that it may be fashioned -like unto his glorious body, according to the working whereby he is -able even to subdue all things unto himself. - -4:1 Therefore, my brethren dearly beloved and longed for, my joy and -crown, so stand fast in the Lord, my dearly beloved. - -4:2 I beseech Euodias, and beseech Syntyche, that they be of the same -mind in the Lord. - -4:3 And I intreat thee also, true yokefellow, help those women which -laboured with me in the gospel, with Clement also, and with other my -fellowlabourers, whose names are in the book of life. - -4:4 Rejoice in the Lord alway: and again I say, Rejoice. - -4:5 Let your moderation be known unto all men. The Lord is at hand. - -4:6 Be careful for nothing; but in every thing by prayer and -supplication with thanksgiving let your requests be made known unto -God. - -4:7 And the peace of God, which passeth all understanding, shall keep -your hearts and minds through Christ Jesus. - -4:8 Finally, brethren, whatsoever things are true, whatsoever things -are honest, whatsoever things are just, whatsoever things are pure, -whatsoever things are lovely, whatsoever things are of good report; if -there be any virtue, and if there be any praise, think on these -things. - -4:9 Those things, which ye have both learned, and received, and heard, -and seen in me, do: and the God of peace shall be with you. - -4:10 But I rejoiced in the Lord greatly, that now at the last your -care of me hath flourished again; wherein ye were also careful, but ye -lacked opportunity. - -4:11 Not that I speak in respect of want: for I have learned, in -whatsoever state I am, therewith to be content. - -4:12 I know both how to be abased, and I know how to abound: every -where and in all things I am instructed both to be full and to be -hungry, both to abound and to suffer need. - -4:13 I can do all things through Christ which strengtheneth me. - -4:14 Notwithstanding ye have well done, that ye did communicate with -my affliction. - -4:15 Now ye Philippians know also, that in the beginning of the -gospel, when I departed from Macedonia, no church communicated with me -as concerning giving and receiving, but ye only. - -4:16 For even in Thessalonica ye sent once and again unto my -necessity. - -4:17 Not because I desire a gift: but I desire fruit that may abound -to your account. - -4:18 But I have all, and abound: I am full, having received of -Epaphroditus the things which were sent from you, an odour of a sweet -smell, a sacrifice acceptable, wellpleasing to God. - -4:19 But my God shall supply all your need according to his riches in -glory by Christ Jesus. - -4:20 Now unto God and our Father be glory for ever and ever. Amen. - -4:21 Salute every saint in Christ Jesus. The brethren which are with -me greet you. - -4:22 All the saints salute you, chiefly they that are of Caesar's -household. - -4:23 The grace of our Lord Jesus Christ be with you all. Amen. - - - - -The Epistle of Paul the Apostle to the Colossians - - -1:1 Paul, an apostle of Jesus Christ by the will of God, -and Timotheus our brother, 1:2 To the saints and faithful brethren -in Christ which are at Colosse: Grace be unto you, and peace, -from God our Father and the Lord Jesus Christ. - -1:3 We give thanks to God and the Father of our Lord Jesus Christ, praying -always for you, -1:4 Since we heard of your faith in Christ Jesus, and of the love which ye -have to all the saints, -1:5 For the hope which is laid up for you in heaven, whereof ye heard -before in the word of the truth of the gospel; -1:6 Which is come unto you, as it is in all the world; and bringeth forth -fruit, as it doth also in you, since the day ye heard of it, and knew the -grace of God in truth: -1:7 As ye also learned of Epaphras our dear fellowservant, who is for you -a faithful minister of Christ; -1:8 Who also declared unto us your love in the Spirit. - -1:9 For this cause we also, since the day we heard it, do not cease to -pray for you, and to desire that ye might be filled with the knowledge of his -will in all wisdom and spiritual understanding; -1:10 That ye might walk worthy of the Lord unto all pleasing, being -fruitful in every good work, and increasing in the knowledge of God; -1:11 Strengthened with all might, according to his glorious power, unto -all patience and longsuffering with joyfulness; -1:12 Giving thanks unto the Father, which hath made us meet to be -partakers of the inheritance of the saints in light: -1:13 Who hath delivered us from the power of darkness, and hath translated -us into the kingdom of his dear Son: -1:14 In whom we have redemption through his blood, even the forgiveness of -sins: -1:15 Who is the image of the invisible God, the firstborn of every -creature: -1:16 For by him were all things created, that are in heaven, and that are -in earth, visible and invisible, whether they be thrones, or dominions, or -principalities, or powers: all things were created by him, and for him: -1:17 And he is before all things, and by him all things consist. - -1:18 And he is the head of the body, the church: who is the beginning, the -firstborn from the dead; that in all things he might have the preeminence. - -1:19 For it pleased the Father that in him should all fulness dwell; -1:20 And, having made peace through the blood of his cross, by him to -reconcile all things unto himself; by him, I say, whether they be things in -earth, or things in heaven. - -1:21 And you, that were sometime alienated and enemies in your mind by -wicked works, yet now hath he reconciled -1:22 In the body of his flesh through death, to present you holy and -unblameable and unreproveable in his sight: -1:23 If ye continue in the faith grounded and settled, and be not moved -away from the hope of the gospel, which ye have heard, and which was preached -to every creature which is under heaven; whereof I Paul am made a minister; -1:24 Who now rejoice in my sufferings for you, and fill up that which is -behind of the afflictions of Christ in my flesh for his body's sake, which is -the church: -1:25 Whereof I am made a minister, according to the dispensation of God -which is given to me for you, to fulfil the word of God; -1:26 Even the mystery which hath been hid from ages and from generations, -but now is made manifest to his saints: -1:27 To whom God would make known what is the riches of the glory of this -mystery among the Gentiles; which is Christ in you, the hope of glory: -1:28 Whom we preach, warning every man, and teaching every man in all -wisdom; that we may present every man perfect in Christ Jesus: -1:29 Whereunto I also labour, striving according to his working, which -worketh in me mightily. - -2:1 For I would that ye knew what great conflict I have for you, and for -them at Laodicea, and for as many as have not seen my face in the flesh; -2:2 That their hearts might be comforted, being knit together in love, and -unto all riches of the full assurance of understanding, to the -acknowledgement of the mystery of God, and of the Father, and of Christ; -2:3 In whom are hid all the treasures of wisdom and knowledge. - -2:4 And this I say, lest any man should beguile you with enticing words. - -2:5 For though I be absent in the flesh, yet am I with you in the spirit, -joying and beholding your order, and the stedfastness of your faith in -Christ. - -2:6 As ye have therefore received Christ Jesus the Lord, so walk ye in -him: -2:7 Rooted and built up in him, and stablished in the faith, as ye have -been taught, abounding therein with thanksgiving. - -2:8 Beware lest any man spoil you through philosophy and vain deceit, -after the tradition of men, after the rudiments of the world, and not after -Christ. - -2:9 For in him dwelleth all the fulness of the Godhead bodily. - -2:10 And ye are complete in him, which is the head of all principality and -power: -2:11 In whom also ye are circumcised with the circumcision made without -hands, in putting off the body of the sins of the flesh by the circumcision -of Christ: -2:12 Buried with him in baptism, wherein also ye are risen with him -through the faith of the operation of God, who hath raised him from the dead. - -2:13 And you, being dead in your sins and the uncircumcision of your -flesh, hath he quickened together with him, having forgiven you all -trespasses; -2:14 Blotting out the handwriting of ordinances that was against us, which -was contrary to us, and took it out of the way, nailing it to his cross; -2:15 And having spoiled principalities and powers, he made a shew of them -openly, triumphing over them in it. - -2:16 Let no man therefore judge you in meat, or in drink, or in respect of -an holyday, or of the new moon, or of the sabbath days: -2:17 Which are a shadow of things to come; but the body is of Christ. - -2:18 Let no man beguile you of your reward in a voluntary humility and -worshipping of angels, intruding into those things which he hath not seen, -vainly puffed up by his fleshly mind, -2:19 And not holding the Head, from which all the body by joints and bands -having nourishment ministered, and knit together, increaseth with the -increase of God. - -2:20 Wherefore if ye be dead with Christ from the rudiments of the world, -why, as though living in the world, are ye subject to ordinances, -2:21 (Touch not; taste not; handle not; -2:22 Which all are to perish with the using;) after the commandments and -doctrines of men? -2:23 Which things have indeed a shew of wisdom in will worship, and -humility, and neglecting of the body: not in any honour to the satisfying -of the flesh. - -3:1 If ye then be risen with Christ, seek those things which are above, -where Christ sitteth on the right hand of God. - -3:2 Set your affection on things above, not on things on the earth. - -3:3 For ye are dead, and your life is hid with Christ in God. - -3:4 When Christ, who is our life, shall appear, then shall ye also appear -with him in glory. - -3:5 Mortify therefore your members which are upon the earth; fornication, -uncleanness, inordinate affection, evil concupiscence, and covetousness, -which is idolatry: -3:6 For which things' sake the wrath of God cometh on the children of -disobedience: -3:7 In the which ye also walked some time, when ye lived in them. - -3:8 But now ye also put off all these; anger, wrath, malice, blasphemy, -filthy communication out of your mouth. - -3:9 Lie not one to another, seeing that ye have put off the old man with -his deeds; -3:10 And have put on the new man, which is renewed in knowledge after the -image of him that created him: -3:11 Where there is neither Greek nor Jew, circumcision nor -uncircumcision, Barbarian, Scythian, bond nor free: but Christ is all, and in -all. - -3:12 Put on therefore, as the elect of God, holy and beloved, bowels of -mercies, kindness, humbleness of mind, meekness, longsuffering; -3:13 Forbearing one another, and forgiving one another, if any man have a -quarrel against any: even as Christ forgave you, so also do ye. - -3:14 And above all these things put on charity, which is the bond of -perfectness. - -3:15 And let the peace of God rule in your hearts, to the which also ye -are called in one body; and be ye thankful. - -3:16 Let the word of Christ dwell in you richly in all wisdom; teaching -and admonishing one another in psalms and hymns and spiritual songs, singing -with grace in your hearts to the Lord. - -3:17 And whatsoever ye do in word or deed, do all in the name of the Lord -Jesus, giving thanks to God and the Father by him. - -3:18 Wives, submit yourselves unto your own husbands, as it is fit in the -Lord. - -3:19 Husbands, love your wives, and be not bitter against them. - -3:20 Children, obey your parents in all things: for this is well pleasing -unto the Lord. - -3:21 Fathers, provoke not your children to anger, lest they be -discouraged. - -3:22 Servants, obey in all things your masters according to the flesh; not -with eyeservice, as menpleasers; but in singleness of heart, fearing God; -3:23 And whatsoever ye do, do it heartily, as to the Lord, and not unto -men; -3:24 Knowing that of the Lord ye shall receive the reward of the -inheritance: for ye serve the Lord Christ. - -3:25 But he that doeth wrong shall receive for the wrong which he hath -done: and there is no respect of persons. - -4:1 Masters, give unto your servants that which is just and equal; knowing -that ye also have a Master in heaven. - -4:2 Continue in prayer, and watch in the same with thanksgiving; -4:3 Withal praying also for us, that God would open unto us a door of -utterance, to speak the mystery of Christ, for which I am also in bonds: -4:4 That I may make it manifest, as I ought to speak. - -4:5 Walk in wisdom toward them that are without, redeeming the time. - -4:6 Let your speech be alway with grace, seasoned with salt, that ye may -know how ye ought to answer every man. - -4:7 All my state shall Tychicus declare unto you, who is a beloved -brother, and a faithful minister and fellowservant in the Lord: -4:8 Whom I have sent unto you for the same purpose, that he might know -your estate, and comfort your hearts; -4:9 With Onesimus, a faithful and beloved brother, who is one of you. They -shall make known unto you all things which are done here. - -4:10 Aristarchus my fellowprisoner saluteth you, and Marcus, sister's son -to Barnabas, (touching whom ye received commandments: if he come unto you, -receive him;) -4:11 And Jesus, which is called Justus, who are of the circumcision. These -only are my fellowworkers unto the kingdom of God, which have been a comfort -unto me. - -4:12 Epaphras, who is one of you, a servant of Christ, saluteth you, -always labouring fervently for you in prayers, that ye may stand perfect and -complete in all the will of God. - -4:13 For I bear him record, that he hath a great zeal for you, and them -that are in Laodicea, and them in Hierapolis. - -4:14 Luke, the beloved physician, and Demas, greet you. - -4:15 Salute the brethren which are in Laodicea, and Nymphas, and the -church which is in his house. - -4:16 And when this epistle is read among you, cause that it be read also -in the church of the Laodiceans; and that ye likewise read the epistle from -Laodicea. - -4:17 And say to Archippus, Take heed to the ministry which thou hast -received in the Lord, that thou fulfil it. - -4:18 The salutation by the hand of me Paul. Remember my bonds. Grace be -with you. Amen. - - - - -The First Epistle of Paul the Apostle to the Thessalonians - - -1:1 Paul, and Silvanus, and Timotheus, unto the church of the -Thessalonians which is in God the Father and in the Lord Jesus Christ: -Grace be unto you, and peace, from God our Father, and the Lord Jesus -Christ. - -1:2 We give thanks to God always for you all, making mention of you in -our prayers; 1:3 Remembering without ceasing your work of faith, and -labour of love, and patience of hope in our Lord Jesus Christ, in the -sight of God and our Father; 1:4 Knowing, brethren beloved, your -election of God. - -1:5 For our gospel came not unto you in word only, but also in power, -and in the Holy Ghost, and in much assurance; as ye know what manner -of men we were among you for your sake. - -1:6 And ye became followers of us, and of the Lord, having received -the word in much affliction, with joy of the Holy Ghost. - -1:7 So that ye were ensamples to all that believe in Macedonia and -Achaia. - -1:8 For from you sounded out the word of the Lord not only in -Macedonia and Achaia, but also in every place your faith to God-ward -is spread abroad; so that we need not to speak any thing. - -1:9 For they themselves shew of us what manner of entering in we had -unto you, and how ye turned to God from idols to serve the living and -true God; 1:10 And to wait for his Son from heaven, whom he raised -from the dead, even Jesus, which delivered us from the wrath to come. - -2:1 For yourselves, brethren, know our entrance in unto you, that it -was not in vain: 2:2 But even after that we had suffered before, and -were shamefully entreated, as ye know, at Philippi, we were bold in -our God to speak unto you the gospel of God with much contention. - -2:3 For our exhortation was not of deceit, nor of uncleanness, nor in -guile: 2:4 But as we were allowed of God to be put in trust with the -gospel, even so we speak; not as pleasing men, but God, which trieth -our hearts. - -2:5 For neither at any time used we flattering words, as ye know, nor -a cloke of covetousness; God is witness: 2:6 Nor of men sought we -glory, neither of you, nor yet of others, when we might have been -burdensome, as the apostles of Christ. - -2:7 But we were gentle among you, even as a nurse cherisheth her -children: 2:8 So being affectionately desirous of you, we were willing -to have imparted unto you, not the gospel of God only, but also our -own souls, because ye were dear unto us. - -2:9 For ye remember, brethren, our labour and travail: for labouring -night and day, because we would not be chargeable unto any of you, we -preached unto you the gospel of God. - -2:10 Ye are witnesses, and God also, how holily and justly and -unblameably we behaved ourselves among you that believe: 2:11 As ye -know how we exhorted and comforted and charged every one of you, as a -father doth his children, 2:12 That ye would walk worthy of God, who -hath called you unto his kingdom and glory. - -2:13 For this cause also thank we God without ceasing, because, when -ye received the word of God which ye heard of us, ye received it not -as the word of men, but as it is in truth, the word of God, which -effectually worketh also in you that believe. - -2:14 For ye, brethren, became followers of the churches of God which -in Judaea are in Christ Jesus: for ye also have suffered like things -of your own countrymen, even as they have of the Jews: 2:15 Who both -killed the Lord Jesus, and their own prophets, and have persecuted us; -and they please not God, and are contrary to all men: 2:16 Forbidding -us to speak to the Gentiles that they might be saved, to fill up their -sins alway: for the wrath is come upon them to the uttermost. - -2:17 But we, brethren, being taken from you for a short time in -presence, not in heart, endeavoured the more abundantly to see your -face with great desire. - -2:18 Wherefore we would have come unto you, even I Paul, once and -again; but Satan hindered us. - -2:19 For what is our hope, or joy, or crown of rejoicing? Are not even -ye in the presence of our Lord Jesus Christ at his coming? 2:20 For -ye are our glory and joy. - -3:1 Wherefore when we could no longer forbear, we thought it good to -be left at Athens alone; 3:2 And sent Timotheus, our brother, and -minister of God, and our fellowlabourer in the gospel of Christ, to -establish you, and to comfort you concerning your faith: 3:3 That no -man should be moved by these afflictions: for yourselves know that we -are appointed thereunto. - -3:4 For verily, when we were with you, we told you before that we -should suffer tribulation; even as it came to pass, and ye know. - -3:5 For this cause, when I could no longer forbear, I sent to know -your faith, lest by some means the tempter have tempted you, and our -labour be in vain. - -3:6 But now when Timotheus came from you unto us, and brought us good -tidings of your faith and charity, and that ye have good remembrance -of us always, desiring greatly to see us, as we also to see you: 3:7 -Therefore, brethren, we were comforted over you in all our affliction -and distress by your faith: 3:8 For now we live, if ye stand fast in -the Lord. - -3:9 For what thanks can we render to God again for you, for all the -joy wherewith we joy for your sakes before our God; 3:10 Night and day -praying exceedingly that we might see your face, and might perfect -that which is lacking in your faith? 3:11 Now God himself and our -Father, and our Lord Jesus Christ, direct our way unto you. - -3:12 And the Lord make you to increase and abound in love one toward -another, and toward all men, even as we do toward you: 3:13 To the end -he may stablish your hearts unblameable in holiness before God, even -our Father, at the coming of our Lord Jesus Christ with all his -saints. - -4:1 Furthermore then we beseech you, brethren, and exhort you by the -Lord Jesus, that as ye have received of us how ye ought to walk and to -please God, so ye would abound more and more. - -4:2 For ye know what commandments we gave you by the Lord Jesus. - -4:3 For this is the will of God, even your sanctification, that ye -should abstain from fornication: 4:4 That every one of you should know -how to possess his vessel in sanctification and honour; 4:5 Not in the -lust of concupiscence, even as the Gentiles which know not God: 4:6 -That no man go beyond and defraud his brother in any matter: because -that the Lord is the avenger of all such, as we also have forewarned -you and testified. - -4:7 For God hath not called us unto uncleanness, but unto holiness. - -4:8 He therefore that despiseth, despiseth not man, but God, who hath -also given unto us his holy Spirit. - -4:9 But as touching brotherly love ye need not that I write unto you: -for ye yourselves are taught of God to love one another. - -4:10 And indeed ye do it toward all the brethren which are in all -Macedonia: but we beseech you, brethren, that ye increase more and -more; 4:11 And that ye study to be quiet, and to do your own business, -and to work with your own hands, as we commanded you; 4:12 That ye may -walk honestly toward them that are without, and that ye may have lack -of nothing. - -4:13 But I would not have you to be ignorant, brethren, concerning -them which are asleep, that ye sorrow not, even as others which have -no hope. - -4:14 For if we believe that Jesus died and rose again, even so them -also which sleep in Jesus will God bring with him. - -4:15 For this we say unto you by the word of the Lord, that we which -are alive and remain unto the coming of the Lord shall not prevent -them which are asleep. - -4:16 For the Lord himself shall descend from heaven with a shout, with -the voice of the archangel, and with the trump of God: and the dead in -Christ shall rise first: 4:17 Then we which are alive and remain shall -be caught up together with them in the clouds, to meet the Lord in the -air: and so shall we ever be with the Lord. - -4:18 Wherefore comfort one another with these words. - -5:1 But of the times and the seasons, brethren, ye have no need that I -write unto you. - -5:2 For yourselves know perfectly that the day of the Lord so cometh -as a thief in the night. - -5:3 For when they shall say, Peace and safety; then sudden destruction -cometh upon them, as travail upon a woman with child; and they shall -not escape. - -5:4 But ye, brethren, are not in darkness, that that day should -overtake you as a thief. - -5:5 Ye are all the children of light, and the children of the day: we -are not of the night, nor of darkness. - -5:6 Therefore let us not sleep, as do others; but let us watch and be -sober. - -5:7 For they that sleep sleep in the night; and they that be drunken -are drunken in the night. - -5:8 But let us, who are of the day, be sober, putting on the -breastplate of faith and love; and for an helmet, the hope of -salvation. - -5:9 For God hath not appointed us to wrath, but to obtain salvation by -our Lord Jesus Christ, 5:10 Who died for us, that, whether we wake or -sleep, we should live together with him. - -5:11 Wherefore comfort yourselves together, and edify one another, -even as also ye do. - -5:12 And we beseech you, brethren, to know them which labour among -you, and are over you in the Lord, and admonish you; 5:13 And to -esteem them very highly in love for their work's sake. And be at peace -among yourselves. - -5:14 Now we exhort you, brethren, warn them that are unruly, comfort -the feebleminded, support the weak, be patient toward all men. - -5:15 See that none render evil for evil unto any man; but ever follow -that which is good, both among yourselves, and to all men. - -5:16 Rejoice evermore. - -5:17 Pray without ceasing. - -5:18 In every thing give thanks: for this is the will of God in Christ -Jesus concerning you. - -5:19 Quench not the Spirit. - -5:20 Despise not prophesyings. - -5:21 Prove all things; hold fast that which is good. - -5:22 Abstain from all appearance of evil. - -5:23 And the very God of peace sanctify you wholly; and I pray God -your whole spirit and soul and body be preserved blameless unto the -coming of our Lord Jesus Christ. - -5:24 Faithful is he that calleth you, who also will do it. - -5:25 Brethren, pray for us. - -5:26 Greet all the brethren with an holy kiss. - -5:27 I charge you by the Lord that this epistle be read unto all the -holy brethren. - -5:28 The grace of our Lord Jesus Christ be with you. Amen. - - - - -The Second Epistle of Paul the Apostle to the Thessalonians - - -1:1 Paul, and Silvanus, and Timotheus, unto the church of the -Thessalonians in God our Father and the Lord Jesus Christ: 1:2 Grace -unto you, and peace, from God our Father and the Lord Jesus Christ. - -1:3 We are bound to thank God always for you, brethren, as it is meet, -because that your faith groweth exceedingly, and the charity of every -one of you all toward each other aboundeth; 1:4 So that we ourselves -glory in you in the churches of God for your patience and faith in all -your persecutions and tribulations that ye endure: 1:5 Which is a -manifest token of the righteous judgment of God, that ye may be -counted worthy of the kingdom of God, for which ye also suffer: 1:6 -Seeing it is a righteous thing with God to recompense tribulation to -them that trouble you; 1:7 And to you who are troubled rest with us, -when the Lord Jesus shall be revealed from heaven with his mighty -angels, 1:8 In flaming fire taking vengeance on them that know not -God, and that obey not the gospel of our Lord Jesus Christ: 1:9 Who -shall be punished with everlasting destruction from the presence of -the Lord, and from the glory of his power; 1:10 When he shall come to -be glorified in his saints, and to be admired in all them that believe -(because our testimony among you was believed) in that day. - -1:11 Wherefore also we pray always for you, that our God would count -you worthy of this calling, and fulfil all the good pleasure of his -goodness, and the work of faith with power: 1:12 That the name of our -Lord Jesus Christ may be glorified in you, and ye in him, according to -the grace of our God and the Lord Jesus Christ. - -2:1 Now we beseech you, brethren, by the coming of our Lord Jesus -Christ, and by our gathering together unto him, 2:2 That ye be not -soon shaken in mind, or be troubled, neither by spirit, nor by word, -nor by letter as from us, as that the day of Christ is at hand. - -2:3 Let no man deceive you by any means: for that day shall not come, -except there come a falling away first, and that man of sin be -revealed, the son of perdition; 2:4 Who opposeth and exalteth himself -above all that is called God, or that is worshipped; so that he as God -sitteth in the temple of God, shewing himself that he is God. - -2:5 Remember ye not, that, when I was yet with you, I told you these -things? 2:6 And now ye know what withholdeth that he might be -revealed in his time. - -2:7 For the mystery of iniquity doth already work: only he who now -letteth will let, until he be taken out of the way. - -2:8 And then shall that Wicked be revealed, whom the Lord shall -consume with the spirit of his mouth, and shall destroy with the -brightness of his coming: 2:9 Even him, whose coming is after the -working of Satan with all power and signs and lying wonders, 2:10 And -with all deceivableness of unrighteousness in them that perish; -because they received not the love of the truth, that they might be -saved. - -2:11 And for this cause God shall send them strong delusion, that they -should believe a lie: 2:12 That they all might be damned who believed -not the truth, but had pleasure in unrighteousness. - -2:13 But we are bound to give thanks alway to God for you, brethren -beloved of the Lord, because God hath from the beginning chosen you to -salvation through sanctification of the Spirit and belief of the -truth: 2:14 Whereunto he called you by our gospel, to the obtaining of -the glory of our Lord Jesus Christ. - -2:15 Therefore, brethren, stand fast, and hold the traditions which ye -have been taught, whether by word, or our epistle. - -2:16 Now our Lord Jesus Christ himself, and God, even our Father, -which hath loved us, and hath given us everlasting consolation and -good hope through grace, 2:17 Comfort your hearts, and stablish you in -every good word and work. - -3:1 Finally, brethren, pray for us, that the word of the Lord may have -free course, and be glorified, even as it is with you: 3:2 And that we -may be delivered from unreasonable and wicked men: for all men have -not faith. - -3:3 But the Lord is faithful, who shall stablish you, and keep you -from evil. - -3:4 And we have confidence in the Lord touching you, that ye both do -and will do the things which we command you. - -3:5 And the Lord direct your hearts into the love of God, and into the -patient waiting for Christ. - -3:6 Now we command you, brethren, in the name of our Lord Jesus -Christ, that ye withdraw yourselves from every brother that walketh -disorderly, and not after the tradition which he received of us. - -3:7 For yourselves know how ye ought to follow us: for we behaved not -ourselves disorderly among you; 3:8 Neither did we eat any man's bread -for nought; but wrought with labour and travail night and day, that we -might not be chargeable to any of you: 3:9 Not because we have not -power, but to make ourselves an ensample unto you to follow us. - -3:10 For even when we were with you, this we commanded you, that if -any would not work, neither should he eat. - -3:11 For we hear that there are some which walk among you disorderly, -working not at all, but are busybodies. - -3:12 Now them that are such we command and exhort by our Lord Jesus -Christ, that with quietness they work, and eat their own bread. - -3:13 But ye, brethren, be not weary in well doing. - -3:14 And if any man obey not our word by this epistle, note that man, -and have no company with him, that he may be ashamed. - -3:15 Yet count him not as an enemy, but admonish him as a brother. - -3:16 Now the Lord of peace himself give you peace always by all means. -The Lord be with you all. - -3:17 The salutation of Paul with mine own hand, which is the token in -every epistle: so I write. - -3:18 The grace of our Lord Jesus Christ be with you all. Amen. - - - - -The First Epistle of Paul the Apostle to Timothy - - -1:1 Paul, an apostle of Jesus Christ by the commandment of God our -Saviour, and Lord Jesus Christ, which is our hope; 1:2 Unto Timothy, -my own son in the faith: Grace, mercy, and peace, from God our Father -and Jesus Christ our Lord. - -1:3 As I besought thee to abide still at Ephesus, when I went into -Macedonia, that thou mightest charge some that they teach no other -doctrine, 1:4 Neither give heed to fables and endless genealogies, -which minister questions, rather than godly edifying which is in -faith: so do. - -1:5 Now the end of the commandment is charity out of a pure heart, and -of a good conscience, and of faith unfeigned: 1:6 From which some -having swerved have turned aside unto vain jangling; 1:7 Desiring to -be teachers of the law; understanding neither what they say, nor -whereof they affirm. - -1:8 But we know that the law is good, if a man use it lawfully; 1:9 -Knowing this, that the law is not made for a righteous man, but for -the lawless and disobedient, for the ungodly and for sinners, for -unholy and profane, for murderers of fathers and murderers of mothers, -for manslayers, 1:10 For whoremongers, for them that defile themselves -with mankind, for menstealers, for liars, for perjured persons, and if -there be any other thing that is contrary to sound doctrine; 1:11 -According to the glorious gospel of the blessed God, which was -committed to my trust. - -1:12 And I thank Christ Jesus our Lord, who hath enabled me, for that -he counted me faithful, putting me into the ministry; 1:13 Who was -before a blasphemer, and a persecutor, and injurious: but I obtained -mercy, because I did it ignorantly in unbelief. - -1:14 And the grace of our Lord was exceeding abundant with faith and -love which is in Christ Jesus. - -1:15 This is a faithful saying, and worthy of all acceptation, that -Christ Jesus came into the world to save sinners; of whom I am chief. - -1:16 Howbeit for this cause I obtained mercy, that in me first Jesus -Christ might shew forth all longsuffering, for a pattern to them which -should hereafter believe on him to life everlasting. - -1:17 Now unto the King eternal, immortal, invisible, the only wise -God, be honour and glory for ever and ever. Amen. - -1:18 This charge I commit unto thee, son Timothy, according to the -prophecies which went before on thee, that thou by them mightest war a -good warfare; 1:19 Holding faith, and a good conscience; which some -having put away concerning faith have made shipwreck: 1:20 Of whom is -Hymenaeus and Alexander; whom I have delivered unto Satan, that they -may learn not to blaspheme. - -2:1 I exhort therefore, that, first of all, supplications, prayers, -intercessions, and giving of thanks, be made for all men; 2:2 For -kings, and for all that are in authority; that we may lead a quiet and -peaceable life in all godliness and honesty. - -2:3 For this is good and acceptable in the sight of God our Saviour; -2:4 Who will have all men to be saved, and to come unto the knowledge -of the truth. - -2:5 For there is one God, and one mediator between God and men, the -man Christ Jesus; 2:6 Who gave himself a ransom for all, to be -testified in due time. - -2:7 Whereunto I am ordained a preacher, and an apostle, (I speak the -truth in Christ, and lie not;) a teacher of the Gentiles in faith and -verity. - -2:8 I will therefore that men pray every where, lifting up holy hands, -without wrath and doubting. - -2:9 In like manner also, that women adorn themselves in modest -apparel, with shamefacedness and sobriety; not with broided hair, or -gold, or pearls, or costly array; 2:10 But (which becometh women -professing godliness) with good works. - -2:11 Let the woman learn in silence with all subjection. - -2:12 But I suffer not a woman to teach, nor to usurp authority over -the man, but to be in silence. - -2:13 For Adam was first formed, then Eve. - -2:14 And Adam was not deceived, but the woman being deceived was in -the transgression. - -2:15 Notwithstanding she shall be saved in childbearing, if they -continue in faith and charity and holiness with sobriety. - -3:1 This is a true saying, If a man desire the office of a bishop, he -desireth a good work. - -3:2 A bishop then must be blameless, the husband of one wife, -vigilant, sober, of good behaviour, given to hospitality, apt to -teach; 3:3 Not given to wine, no striker, not greedy of filthy lucre; -but patient, not a brawler, not covetous; 3:4 One that ruleth well his -own house, having his children in subjection with all gravity; 3:5 -(For if a man know not how to rule his own house, how shall he take -care of the church of God?) 3:6 Not a novice, lest being lifted up -with pride he fall into the condemnation of the devil. - -3:7 Moreover he must have a good report of them which are without; -lest he fall into reproach and the snare of the devil. - -3:8 Likewise must the deacons be grave, not doubletongued, not given -to much wine, not greedy of filthy lucre; 3:9 Holding the mystery of -the faith in a pure conscience. - -3:10 And let these also first be proved; then let them use the office -of a deacon, being found blameless. - -3:11 Even so must their wives be grave, not slanderers, sober, -faithful in all things. - -3:12 Let the deacons be the husbands of one wife, ruling their -children and their own houses well. - -3:13 For they that have used the office of a deacon well purchase to -themselves a good degree, and great boldness in the faith which is in -Christ Jesus. - -3:14 These things write I unto thee, hoping to come unto thee shortly: -3:15 But if I tarry long, that thou mayest know how thou oughtest to -behave thyself in the house of God, which is the church of the living -God, the pillar and ground of the truth. - -3:16 And without controversy great is the mystery of godliness: God -was manifest in the flesh, justified in the Spirit, seen of angels, -preached unto the Gentiles, believed on in the world, received up into -glory. - -4:1 Now the Spirit speaketh expressly, that in the latter times some -shall depart from the faith, giving heed to seducing spirits, and -doctrines of devils; 4:2 Speaking lies in hypocrisy; having their -conscience seared with a hot iron; 4:3 Forbidding to marry, and -commanding to abstain from meats, which God hath created to be -received with thanksgiving of them which believe and know the truth. - -4:4 For every creature of God is good, and nothing to be refused, if -it be received with thanksgiving: 4:5 For it is sanctified by the word -of God and prayer. - -4:6 If thou put the brethren in remembrance of these things, thou -shalt be a good minister of Jesus Christ, nourished up in the words of -faith and of good doctrine, whereunto thou hast attained. - -4:7 But refuse profane and old wives' fables, and exercise thyself -rather unto godliness. - -4:8 For bodily exercise profiteth little: but godliness is profitable -unto all things, having promise of the life that now is, and of that -which is to come. - -4:9 This is a faithful saying and worthy of all acceptation. - -4:10 For therefore we both labour and suffer reproach, because we -trust in the living God, who is the Saviour of all men, specially of -those that believe. - -4:11 These things command and teach. - -4:12 Let no man despise thy youth; but be thou an example of the -believers, in word, in conversation, in charity, in spirit, in faith, -in purity. - -4:13 Till I come, give attendance to reading, to exhortation, to -doctrine. - -4:14 Neglect not the gift that is in thee, which was given thee by -prophecy, with the laying on of the hands of the presbytery. - -4:15 Meditate upon these things; give thyself wholly to them; that thy -profiting may appear to all. - -4:16 Take heed unto thyself, and unto the doctrine; continue in them: -for in doing this thou shalt both save thyself, and them that hear -thee. - -5:1 Rebuke not an elder, but intreat him as a father; and the younger -men as brethren; 5:2 The elder women as mothers; the younger as -sisters, with all purity. - -5:3 Honour widows that are widows indeed. - -5:4 But if any widow have children or nephews, let them learn first to -shew piety at home, and to requite their parents: for that is good and -acceptable before God. - -5:5 Now she that is a widow indeed, and desolate, trusteth in God, and -continueth in supplications and prayers night and day. - -5:6 But she that liveth in pleasure is dead while she liveth. - -5:7 And these things give in charge, that they may be blameless. - -5:8 But if any provide not for his own, and specially for those of his -own house, he hath denied the faith, and is worse than an infidel. - -5:9 Let not a widow be taken into the number under threescore years -old, having been the wife of one man. - -5:10 Well reported of for good works; if she have brought up children, -if she have lodged strangers, if she have washed the saints' feet, if -she have relieved the afflicted, if she have diligently followed every -good work. - -5:11 But the younger widows refuse: for when they have begun to wax -wanton against Christ, they will marry; 5:12 Having damnation, because -they have cast off their first faith. - -5:13 And withal they learn to be idle, wandering about from house to -house; and not only idle, but tattlers also and busybodies, speaking -things which they ought not. - -5:14 I will therefore that the younger women marry, bear children, -guide the house, give none occasion to the adversary to speak -reproachfully. - -5:15 For some are already turned aside after Satan. - -5:16 If any man or woman that believeth have widows, let them relieve -them, and let not the church be charged; that it may relieve them that -are widows indeed. - -5:17 Let the elders that rule well be counted worthy of double honour, -especially they who labour in the word and doctrine. - -5:18 For the scripture saith, Thou shalt not muzzle the ox that -treadeth out the corn. And, The labourer is worthy of his reward. - -5:19 Against an elder receive not an accusation, but before two or -three witnesses. - -5:20 Them that sin rebuke before all, that others also may fear. - -5:21 I charge thee before God, and the Lord Jesus Christ, and the -elect angels, that thou observe these things without preferring one -before another, doing nothing by partiality. - -5:22 Lay hands suddenly on no man, neither be partaker of other men's -sins: keep thyself pure. - -5:23 Drink no longer water, but use a little wine for thy stomach's -sake and thine often infirmities. - -5:24 Some men's sins are open beforehand, going before to judgment; -and some men they follow after. - -5:25 Likewise also the good works of some are manifest beforehand; and -they that are otherwise cannot be hid. - -6:1 Let as many servants as are under the yoke count their own masters -worthy of all honour, that the name of God and his doctrine be not -blasphemed. - -6:2 And they that have believing masters, let them not despise them, -because they are brethren; but rather do them service, because they -are faithful and beloved, partakers of the benefit. These things teach -and exhort. - -6:3 If any man teach otherwise, and consent not to wholesome words, -even the words of our Lord Jesus Christ, and to the doctrine which is -according to godliness; 6:4 He is proud, knowing nothing, but doting -about questions and strifes of words, whereof cometh envy, strife, -railings, evil surmisings, 6:5 Perverse disputings of men of corrupt -minds, and destitute of the truth, supposing that gain is godliness: -from such withdraw thyself. - -6:6 But godliness with contentment is great gain. - -6:7 For we brought nothing into this world, and it is certain we can -carry nothing out. - -6:8 And having food and raiment let us be therewith content. - -6:9 But they that will be rich fall into temptation and a snare, and -into many foolish and hurtful lusts, which drown men in destruction -and perdition. - -6:10 For the love of money is the root of all evil: which while some -coveted after, they have erred from the faith, and pierced themselves -through with many sorrows. - -6:11 But thou, O man of God, flee these things; and follow after -righteousness, godliness, faith, love, patience, meekness. - -6:12 Fight the good fight of faith, lay hold on eternal life, -whereunto thou art also called, and hast professed a good profession -before many witnesses. - -6:13 I give thee charge in the sight of God, who quickeneth all -things, and before Christ Jesus, who before Pontius Pilate witnessed a -good confession; 6:14 That thou keep this commandment without spot, -unrebukable, until the appearing of our Lord Jesus Christ: 6:15 Which -in his times he shall shew, who is the blessed and only Potentate, the -King of kings, and Lord of lords; 6:16 Who only hath immortality, -dwelling in the light which no man can approach unto; whom no man hath -seen, nor can see: to whom be honour and power everlasting. Amen. - -6:17 Charge them that are rich in this world, that they be not -highminded, nor trust in uncertain riches, but in the living God, who -giveth us richly all things to enjoy; 6:18 That they do good, that -they be rich in good works, ready to distribute, willing to -communicate; 6:19 Laying up in store for themselves a good foundation -against the time to come, that they may lay hold on eternal life. - -6:20 O Timothy, keep that which is committed to thy trust, avoiding -profane and vain babblings, and oppositions of science falsely so -called: 6:21 Which some professing have erred concerning the faith. -Grace be with thee. Amen. - - - - -The Second Epistle of Paul the Apostle to Timothy - - -1:1 Paul, an apostle of Jesus Christ by the will of God, according to -the promise of life which is in Christ Jesus, 1:2 To Timothy, -my dearly beloved son: Grace, mercy, and peace, from God the Father -and Christ Jesus our Lord. - -1:3 I thank God, whom I serve from my forefathers with pure -conscience, that without ceasing I have remembrance of thee in my -prayers night and day; 1:4 Greatly desiring to see thee, being mindful -of thy tears, that I may be filled with joy; 1:5 When I call to -remembrance the unfeigned faith that is in thee, which dwelt first in -thy grandmother Lois, and thy mother Eunice; and I am persuaded that -in thee also. - -1:6 Wherefore I put thee in remembrance that thou stir up the gift of -God, which is in thee by the putting on of my hands. - -1:7 For God hath not given us the spirit of fear; but of power, and of -love, and of a sound mind. - -1:8 Be not thou therefore ashamed of the testimony of our Lord, nor of -me his prisoner: but be thou partaker of the afflictions of the gospel -according to the power of God; 1:9 Who hath saved us, and called us -with an holy calling, not according to our works, but according to his -own purpose and grace, which was given us in Christ Jesus before the -world began, 1:10 But is now made manifest by the appearing of our -Saviour Jesus Christ, who hath abolished death, and hath brought life -and immortality to light through the gospel: 1:11 Whereunto I am -appointed a preacher, and an apostle, and a teacher of the Gentiles. - -1:12 For the which cause I also suffer these things: nevertheless I am -not ashamed: for I know whom I have believed, and am persuaded that he -is able to keep that which I have committed unto him against that day. - -1:13 Hold fast the form of sound words, which thou hast heard of me, -in faith and love which is in Christ Jesus. - -1:14 That good thing which was committed unto thee keep by the Holy -Ghost which dwelleth in us. - -1:15 This thou knowest, that all they which are in Asia be turned away -from me; of whom are Phygellus and Hermogenes. - -1:16 The Lord give mercy unto the house of Onesiphorus; for he oft -refreshed me, and was not ashamed of my chain: 1:17 But, when he was -in Rome, he sought me out very diligently, and found me. - -1:18 The Lord grant unto him that he may find mercy of the Lord in -that day: and in how many things he ministered unto me at Ephesus, -thou knowest very well. - -2:1 Thou therefore, my son, be strong in the grace that is in Christ -Jesus. - -2:2 And the things that thou hast heard of me among many witnesses, -the same commit thou to faithful men, who shall be able to teach -others also. - -2:3 Thou therefore endure hardness, as a good soldier of Jesus Christ. - -2:4 No man that warreth entangleth himself with the affairs of this -life; that he may please him who hath chosen him to be a soldier. - -2:5 And if a man also strive for masteries, yet is he not crowned, -except he strive lawfully. - -2:6 The husbandman that laboureth must be first partaker of the -fruits. - -2:7 Consider what I say; and the Lord give thee understanding in all -things. - -2:8 Remember that Jesus Christ of the seed of David was raised from -the dead according to my gospel: 2:9 Wherein I suffer trouble, as an -evil doer, even unto bonds; but the word of God is not bound. - -2:10 Therefore I endure all things for the elect's sakes, that they -may also obtain the salvation which is in Christ Jesus with eternal -glory. - -2:11 It is a faithful saying: For if we be dead with him, we shall -also live with him: 2:12 If we suffer, we shall also reign with him: -if we deny him, he also will deny us: 2:13 If we believe not, yet he -abideth faithful: he cannot deny himself. - -2:14 Of these things put them in remembrance, charging them before the -Lord that they strive not about words to no profit, but to the -subverting of the hearers. - -2:15 Study to shew thyself approved unto God, a workman that needeth -not to be ashamed, rightly dividing the word of truth. - -2:16 But shun profane and vain babblings: for they will increase unto -more ungodliness. - -2:17 And their word will eat as doth a canker: of whom is Hymenaeus -and Philetus; 2:18 Who concerning the truth have erred, saying that -the resurrection is past already; and overthrow the faith of some. - -2:19 Nevertheless the foundation of God standeth sure, having this -seal, The Lord knoweth them that are his. And, Let every one that -nameth the name of Christ depart from iniquity. - -2:20 But in a great house there are not only vessels of gold and of -silver, but also of wood and of earth; and some to honour, and some to -dishonour. - -2:21 If a man therefore purge himself from these, he shall be a vessel -unto honour, sanctified, and meet for the master's use, and prepared -unto every good work. - -2:22 Flee also youthful lusts: but follow righteousness, faith, -charity, peace, with them that call on the Lord out of a pure heart. - -2:23 But foolish and unlearned questions avoid, knowing that they do -gender strifes. - -2:24 And the servant of the Lord must not strive; but be gentle unto -all men, apt to teach, patient, 2:25 In meekness instructing those -that oppose themselves; if God peradventure will give them repentance -to the acknowledging of the truth; 2:26 And that they may recover -themselves out of the snare of the devil, who are taken captive by him -at his will. - -3:1 This know also, that in the last days perilous times shall come. - -3:2 For men shall be lovers of their own selves, covetous, boasters, -proud, blasphemers, disobedient to parents, unthankful, unholy, 3:3 -Without natural affection, trucebreakers, false accusers, incontinent, -fierce, despisers of those that are good, 3:4 Traitors, heady, -highminded, lovers of pleasures more than lovers of God; 3:5 Having a -form of godliness, but denying the power thereof: from such turn away. - -3:6 For of this sort are they which creep into houses, and lead -captive silly women laden with sins, led away with divers lusts, 3:7 -Ever learning, and never able to come to the knowledge of the truth. - -3:8 Now as Jannes and Jambres withstood Moses, so do these also resist -the truth: men of corrupt minds, reprobate concerning the faith. - -3:9 But they shall proceed no further: for their folly shall be -manifest unto all men, as their's also was. - -3:10 But thou hast fully known my doctrine, manner of life, purpose, -faith, longsuffering, charity, patience, 3:11 Persecutions, -afflictions, which came unto me at Antioch, at Iconium, at Lystra; -what persecutions I endured: but out of them all the Lord delivered -me. - -3:12 Yea, and all that will live godly in Christ Jesus shall suffer -persecution. - -3:13 But evil men and seducers shall wax worse and worse, deceiving, -and being deceived. - -3:14 But continue thou in the things which thou hast learned and hast -been assured of, knowing of whom thou hast learned them; 3:15 And that -from a child thou hast known the holy scriptures, which are able to -make thee wise unto salvation through faith which is in Christ Jesus. - -3:16 All scripture is given by inspiration of God, and is profitable -for doctrine, for reproof, for correction, for instruction in -righteousness: 3:17 That the man of God may be perfect, throughly -furnished unto all good works. - -4:1 I charge thee therefore before God, and the Lord Jesus Christ, who -shall judge the quick and the dead at his appearing and his kingdom; -4:2 Preach the word; be instant in season, out of season; reprove, -rebuke, exhort with all longsuffering and doctrine. - -4:3 For the time will come when they will not endure sound doctrine; -but after their own lusts shall they heap to themselves teachers, -having itching ears; 4:4 And they shall turn away their ears from the -truth, and shall be turned unto fables. - -4:5 But watch thou in all things, endure afflictions, do the work of -an evangelist, make full proof of thy ministry. - -4:6 For I am now ready to be offered, and the time of my departure is -at hand. - -4:7 I have fought a good fight, I have finished my course, I have kept -the faith: 4:8 Henceforth there is laid up for me a crown of -righteousness, which the Lord, the righteous judge, shall give me at -that day: and not to me only, but unto all them also that love his -appearing. - -4:9 Do thy diligence to come shortly unto me: 4:10 For Demas hath -forsaken me, having loved this present world, and is departed unto -Thessalonica; Crescens to Galatia, Titus unto Dalmatia. - -4:11 Only Luke is with me. Take Mark, and bring him with thee: for he -is profitable to me for the ministry. - -4:12 And Tychicus have I sent to Ephesus. - -4:13 The cloke that I left at Troas with Carpus, when thou comest, -bring with thee, and the books, but especially the parchments. - -4:14 Alexander the coppersmith did me much evil: the Lord reward him -according to his works: 4:15 Of whom be thou ware also; for he hath -greatly withstood our words. - -4:16 At my first answer no man stood with me, but all men forsook me: -I pray God that it may not be laid to their charge. - -4:17 Notwithstanding the Lord stood with me, and strengthened me; that -by me the preaching might be fully known, and that all the Gentiles -might hear: and I was delivered out of the mouth of the lion. - -4:18 And the Lord shall deliver me from every evil work, and will -preserve me unto his heavenly kingdom: to whom be glory for ever and -ever. Amen. - -4:19 Salute Prisca and Aquila, and the household of Onesiphorus. - -4:20 Erastus abode at Corinth: but Trophimus have I left at Miletum -sick. - -4:21 Do thy diligence to come before winter. Eubulus greeteth thee, -and Pudens, and Linus, and Claudia, and all the brethren. - -4:22 The Lord Jesus Christ be with thy spirit. Grace be with you. -Amen. - - - - -The Epistle of Paul the Apostle to Titus - - -1:1 Paul, a servant of God, and an apostle of Jesus Christ, according -to the faith of God's elect, and the acknowledging of the truth which -is after godliness; 1:2 In hope of eternal life, which God, that -cannot lie, promised before the world began; 1:3 But hath in due times -manifested his word through preaching, which is committed unto me -according to the commandment of God our Saviour; 1:4 To Titus, mine -own son after the common faith: Grace, mercy, and peace, from God the -Father and the Lord Jesus Christ our Saviour. - -1:5 For this cause left I thee in Crete, that thou shouldest set in -order the things that are wanting, and ordain elders in every city, as -I had appointed thee: 1:6 If any be blameless, the husband of one -wife, having faithful children not accused of riot or unruly. - -1:7 For a bishop must be blameless, as the steward of God; not -selfwilled, not soon angry, not given to wine, no striker, not given -to filthy lucre; 1:8 But a lover of hospitality, a lover of good men, -sober, just, holy, temperate; 1:9 Holding fast the faithful word as he -hath been taught, that he may be able by sound doctrine both to exhort -and to convince the gainsayers. - -1:10 For there are many unruly and vain talkers and deceivers, -specially they of the circumcision: 1:11 Whose mouths must be stopped, -who subvert whole houses, teaching things which they ought not, for -filthy lucre's sake. - -1:12 One of themselves, even a prophet of their own, said, The -Cretians are alway liars, evil beasts, slow bellies. - -1:13 This witness is true. Wherefore rebuke them sharply, that they -may be sound in the faith; 1:14 Not giving heed to Jewish fables, and -commandments of men, that turn from the truth. - -1:15 Unto the pure all things are pure: but unto them that are defiled -and unbelieving is nothing pure; but even their mind and conscience is -defiled. - -1:16 They profess that they know God; but in works they deny him, -being abominable, and disobedient, and unto every good work reprobate. - -2:1 But speak thou the things which become sound doctrine: 2:2 That -the aged men be sober, grave, temperate, sound in faith, in charity, -in patience. - -2:3 The aged women likewise, that they be in behaviour as becometh -holiness, not false accusers, not given to much wine, teachers of good -things; 2:4 That they may teach the young women to be sober, to love -their husbands, to love their children, 2:5 To be discreet, chaste, -keepers at home, good, obedient to their own husbands, that the word -of God be not blasphemed. - -2:6 Young men likewise exhort to be sober minded. - -2:7 In all things shewing thyself a pattern of good works: in doctrine -shewing uncorruptness, gravity, sincerity, 2:8 Sound speech, that -cannot be condemned; that he that is of the contrary part may be -ashamed, having no evil thing to say of you. - -2:9 Exhort servants to be obedient unto their own masters, and to -please them well in all things; not answering again; 2:10 Not -purloining, but shewing all good fidelity; that they may adorn the -doctrine of God our Saviour in all things. - -2:11 For the grace of God that bringeth salvation hath appeared to all -men, 2:12 Teaching us that, denying ungodliness and worldly lusts, we -should live soberly, righteously, and godly, in this present world; -2:13 Looking for that blessed hope, and the glorious appearing of the -great God and our Saviour Jesus Christ; 2:14 Who gave himself for us, -that he might redeem us from all iniquity, and purify unto himself a -peculiar people, zealous of good works. - -2:15 These things speak, and exhort, and rebuke with all authority. -Let no man despise thee. - -3:1 Put them in mind to be subject to principalities and powers, to -obey magistrates, to be ready to every good work, 3:2 To speak evil of -no man, to be no brawlers, but gentle, shewing all meekness unto all -men. - -3:3 For we ourselves also were sometimes foolish, disobedient, -deceived, serving divers lusts and pleasures, living in malice and -envy, hateful, and hating one another. - -3:4 But after that the kindness and love of God our Saviour toward man -appeared, 3:5 Not by works of righteousness which we have done, but -according to his mercy he saved us, by the washing of regeneration, -and renewing of the Holy Ghost; 3:6 Which he shed on us abundantly -through Jesus Christ our Saviour; 3:7 That being justified by his -grace, we should be made heirs according to the hope of eternal life. - -3:8 This is a faithful saying, and these things I will that thou -affirm constantly, that they which have believed in God might be -careful to maintain good works. These things are good and profitable -unto men. - -3:9 But avoid foolish questions, and genealogies, and contentions, and -strivings about the law; for they are unprofitable and vain. - -3:10 A man that is an heretick after the first and second admonition -reject; 3:11 Knowing that he that is such is subverted, and sinneth, -being condemned of himself. - -3:12 When I shall send Artemas unto thee, or Tychicus, be diligent to -come unto me to Nicopolis: for I have determined there to winter. - -3:13 Bring Zenas the lawyer and Apollos on their journey diligently, -that nothing be wanting unto them. - -3:14 And let our's also learn to maintain good works for necessary -uses, that they be not unfruitful. - -3:15 All that are with me salute thee. Greet them that love us in the -faith. Grace be with you all. Amen. - - - - -The Epistle of Paul the Apostle to Philemon - - -1:1 Paul, a prisoner of Jesus Christ, and Timothy our brother, unto -Philemon our dearly beloved, and fellowlabourer, 1:2 And to our -beloved Apphia, and Archippus our fellowsoldier, and to the church in -thy house: 1:3 Grace to you, and peace, from God our Father and the -Lord Jesus Christ. - -1:4 I thank my God, making mention of thee always in my prayers, 1:5 -Hearing of thy love and faith, which thou hast toward the Lord Jesus, -and toward all saints; 1:6 That the communication of thy faith may -become effectual by the acknowledging of every good thing which is in -you in Christ Jesus. - -1:7 For we have great joy and consolation in thy love, because the -bowels of the saints are refreshed by thee, brother. - -1:8 Wherefore, though I might be much bold in Christ to enjoin thee -that which is convenient, 1:9 Yet for love's sake I rather beseech -thee, being such an one as Paul the aged, and now also a prisoner of -Jesus Christ. - -1:10 I beseech thee for my son Onesimus, whom I have begotten in my -bonds: 1:11 Which in time past was to thee unprofitable, but now -profitable to thee and to me: 1:12 Whom I have sent again: thou -therefore receive him, that is, mine own bowels: 1:13 Whom I would -have retained with me, that in thy stead he might have ministered unto -me in the bonds of the gospel: 1:14 But without thy mind would I do -nothing; that thy benefit should not be as it were of necessity, but -willingly. - -1:15 For perhaps he therefore departed for a season, that thou -shouldest receive him for ever; 1:16 Not now as a servant, but above a -servant, a brother beloved, specially to me, but how much more unto -thee, both in the flesh, and in the Lord? 1:17 If thou count me -therefore a partner, receive him as myself. - -1:18 If he hath wronged thee, or oweth thee ought, put that on mine -account; 1:19 I Paul have written it with mine own hand, I will repay -it: albeit I do not say to thee how thou owest unto me even thine own -self besides. - -1:20 Yea, brother, let me have joy of thee in the Lord: refresh my -bowels in the Lord. - -1:21 Having confidence in thy obedience I wrote unto thee, knowing -that thou wilt also do more than I say. - -1:22 But withal prepare me also a lodging: for I trust that through -your prayers I shall be given unto you. - -1:23 There salute thee Epaphras, my fellowprisoner in Christ Jesus; -1:24 Marcus, Aristarchus, Demas, Lucas, my fellowlabourers. - -1:25 The grace of our Lord Jesus Christ be with your spirit. Amen. - - - - -The Epistle of Paul the Apostle to the Hebrews - - -1:1 God, who at sundry times and in divers manners spake in time past -unto the fathers by the prophets, 1:2 Hath in these last days spoken -unto us by his Son, whom he hath appointed heir of all things, by whom -also he made the worlds; 1:3 Who being the brightness of his glory, -and the express image of his person, and upholding all things by the -word of his power, when he had by himself purged our sins, sat down on -the right hand of the Majesty on high: 1:4 Being made so much better -than the angels, as he hath by inheritance obtained a more excellent -name than they. - -1:5 For unto which of the angels said he at any time, Thou art my Son, -this day have I begotten thee? And again, I will be to him a Father, -and he shall be to me a Son? 1:6 And again, when he bringeth in the -firstbegotten into the world, he saith, And let all the angels of God -worship him. - -1:7 And of the angels he saith, Who maketh his angels spirits, and his -ministers a flame of fire. - -1:8 But unto the Son he saith, Thy throne, O God, is for ever and -ever: a sceptre of righteousness is the sceptre of thy kingdom. - -1:9 Thou hast loved righteousness, and hated iniquity; therefore God, -even thy God, hath anointed thee with the oil of gladness above thy -fellows. - -1:10 And, Thou, Lord, in the beginning hast laid the foundation of the -earth; and the heavens are the works of thine hands: 1:11 They shall -perish; but thou remainest; and they all shall wax old as doth a -garment; 1:12 And as a vesture shalt thou fold them up, and they shall -be changed: but thou art the same, and thy years shall not fail. - -1:13 But to which of the angels said he at any time, Sit on my right -hand, until I make thine enemies thy footstool? 1:14 Are they not all -ministering spirits, sent forth to minister for them who shall be -heirs of salvation? 2:1 Therefore we ought to give the more earnest -heed to the things which we have heard, lest at any time we should let -them slip. - -2:2 For if the word spoken by angels was stedfast, and every -transgression and disobedience received a just recompence of reward; -2:3 How shall we escape, if we neglect so great salvation; which at -the first began to be spoken by the Lord, and was confirmed unto us by -them that heard him; 2:4 God also bearing them witness, both with -signs and wonders, and with divers miracles, and gifts of the Holy -Ghost, according to his own will? 2:5 For unto the angels hath he not -put in subjection the world to come, whereof we speak. - -2:6 But one in a certain place testified, saying, What is man, that -thou art mindful of him? or the son of man that thou visitest him? -2:7 Thou madest him a little lower than the angels; thou crownedst him -with glory and honour, and didst set him over the works of thy hands: -2:8 Thou hast put all things in subjection under his feet. For in that -he put all in subjection under him, he left nothing that is not put -under him. - -But now we see not yet all things put under him. - -2:9 But we see Jesus, who was made a little lower than the angels for -the suffering of death, crowned with glory and honour; that he by the -grace of God should taste death for every man. - -2:10 For it became him, for whom are all things, and by whom are all -things, in bringing many sons unto glory, to make the captain of their -salvation perfect through sufferings. - -2:11 For both he that sanctifieth and they who are sanctified are all -of one: for which cause he is not ashamed to call them brethren, 2:12 -Saying, I will declare thy name unto my brethren, in the midst of the -church will I sing praise unto thee. - -2:13 And again, I will put my trust in him. And again, Behold I and -the children which God hath given me. - -2:14 Forasmuch then as the children are partakers of flesh and blood, -he also himself likewise took part of the same; that through death he -might destroy him that had the power of death, that is, the devil; -2:15 And deliver them who through fear of death were all their -lifetime subject to bondage. - -2:16 For verily he took not on him the nature of angels; but he took -on him the seed of Abraham. - -2:17 Wherefore in all things it behoved him to be made like unto his -brethren, that he might be a merciful and faithful high priest in -things pertaining to God, to make reconciliation for the sins of the -people. - -2:18 For in that he himself hath suffered being tempted, he is able to -succour them that are tempted. - -3:1 Wherefore, holy brethren, partakers of the heavenly calling, -consider the Apostle and High Priest of our profession, Christ Jesus; -3:2 Who was faithful to him that appointed him, as also Moses was -faithful in all his house. - -3:3 For this man was counted worthy of more glory than Moses, inasmuch -as he who hath builded the house hath more honour than the house. - -3:4 For every house is builded by some man; but he that built all -things is God. - -3:5 And Moses verily was faithful in all his house, as a servant, for -a testimony of those things which were to be spoken after; 3:6 But -Christ as a son over his own house; whose house are we, if we hold -fast the confidence and the rejoicing of the hope firm unto the end. - -3:7 Wherefore (as the Holy Ghost saith, To day if ye will hear his -voice, 3:8 Harden not your hearts, as in the provocation, in the day -of temptation in the wilderness: 3:9 When your fathers tempted me, -proved me, and saw my works forty years. - -3:10 Wherefore I was grieved with that generation, and said, They do -alway err in their heart; and they have not known my ways. - -3:11 So I sware in my wrath, They shall not enter into my rest.) 3:12 -Take heed, brethren, lest there be in any of you an evil heart of -unbelief, in departing from the living God. - -3:13 But exhort one another daily, while it is called To day; lest any -of you be hardened through the deceitfulness of sin. - -3:14 For we are made partakers of Christ, if we hold the beginning of -our confidence stedfast unto the end; 3:15 While it is said, To day if -ye will hear his voice, harden not your hearts, as in the provocation. - -3:16 For some, when they had heard, did provoke: howbeit not all that -came out of Egypt by Moses. - -3:17 But with whom was he grieved forty years? was it not with them -that had sinned, whose carcases fell in the wilderness? 3:18 And to -whom sware he that they should not enter into his rest, but to them -that believed not? 3:19 So we see that they could not enter in -because of unbelief. - -4:1 Let us therefore fear, lest, a promise being left us of entering -into his rest, any of you should seem to come short of it. - -4:2 For unto us was the gospel preached, as well as unto them: but the -word preached did not profit them, not being mixed with faith in them -that heard it. - -4:3 For we which have believed do enter into rest, as he said, As I -have sworn in my wrath, if they shall enter into my rest: although the -works were finished from the foundation of the world. - -4:4 For he spake in a certain place of the seventh day on this wise, -And God did rest the seventh day from all his works. - -4:5 And in this place again, If they shall enter into my rest. - -4:6 Seeing therefore it remaineth that some must enter therein, and -they to whom it was first preached entered not in because of unbelief: -4:7 Again, he limiteth a certain day, saying in David, To day, after -so long a time; as it is said, To day if ye will hear his voice, -harden not your hearts. - -4:8 For if Jesus had given them rest, then would he not afterward have -spoken of another day. - -4:9 There remaineth therefore a rest to the people of God. - -4:10 For he that is entered into his rest, he also hath ceased from -his own works, as God did from his. - -4:11 Let us labour therefore to enter into that rest, lest any man -fall after the same example of unbelief. - -4:12 For the word of God is quick, and powerful, and sharper than any -twoedged sword, piercing even to the dividing asunder of soul and -spirit, and of the joints and marrow, and is a discerner of the -thoughts and intents of the heart. - -4:13 Neither is there any creature that is not manifest in his sight: -but all things are naked and opened unto the eyes of him with whom we -have to do. - -4:14 Seeing then that we have a great high priest, that is passed into -the heavens, Jesus the Son of God, let us hold fast our profession. - -4:15 For we have not an high priest which cannot be touched with the -feeling of our infirmities; but was in all points tempted like as we -are, yet without sin. - -4:16 Let us therefore come boldly unto the throne of grace, that we -may obtain mercy, and find grace to help in time of need. - -5:1 For every high priest taken from among men is ordained for men in -things pertaining to God, that he may offer both gifts and sacrifices -for sins: 5:2 Who can have compassion on the ignorant, and on them -that are out of the way; for that he himself also is compassed with -infirmity. - -5:3 And by reason hereof he ought, as for the people, so also for -himself, to offer for sins. - -5:4 And no man taketh this honour unto himself, but he that is called -of God, as was Aaron. - -5:5 So also Christ glorified not himself to be made an high priest; -but he that said unto him, Thou art my Son, to day have I begotten -thee. - -5:6 As he saith also in another place, Thou art a priest for ever -after the order of Melchisedec. - -5:7 Who in the days of his flesh, when he had offered up prayers and -supplications with strong crying and tears unto him that was able to -save him from death, and was heard in that he feared; 5:8 Though he -were a Son, yet learned he obedience by the things which he suffered; -5:9 And being made perfect, he became the author of eternal salvation -unto all them that obey him; 5:10 Called of God an high priest after -the order of Melchisedec. - -5:11 Of whom we have many things to say, and hard to be uttered, -seeing ye are dull of hearing. - -5:12 For when for the time ye ought to be teachers, ye have need that -one teach you again which be the first principles of the oracles of -God; and are become such as have need of milk, and not of strong meat. - -5:13 For every one that useth milk is unskilful in the word of -righteousness: for he is a babe. - -5:14 But strong meat belongeth to them that are of full age, even -those who by reason of use have their senses exercised to discern both -good and evil. - -6:1 Therefore leaving the principles of the doctrine of Christ, let us -go on unto perfection; not laying again the foundation of repentance -from dead works, and of faith toward God, 6:2 Of the doctrine of -baptisms, and of laying on of hands, and of resurrection of the dead, -and of eternal judgment. - -6:3 And this will we do, if God permit. - -6:4 For it is impossible for those who were once enlightened, and have -tasted of the heavenly gift, and were made partakers of the Holy -Ghost, 6:5 And have tasted the good word of God, and the powers of the -world to come, 6:6 If they shall fall away, to renew them again unto -repentance; seeing they crucify to themselves the Son of God afresh, -and put him to an open shame. - -6:7 For the earth which drinketh in the rain that cometh oft upon it, -and bringeth forth herbs meet for them by whom it is dressed, -receiveth blessing from God: 6:8 But that which beareth thorns and -briers is rejected, and is nigh unto cursing; whose end is to be -burned. - -6:9 But, beloved, we are persuaded better things of you, and things -that accompany salvation, though we thus speak. - -6:10 For God is not unrighteous to forget your work and labour of -love, which ye have shewed toward his name, in that ye have ministered -to the saints, and do minister. - -6:11 And we desire that every one of you do shew the same diligence to -the full assurance of hope unto the end: 6:12 That ye be not slothful, -but followers of them who through faith and patience inherit the -promises. - -6:13 For when God made promise to Abraham, because he could swear by -no greater, he sware by himself, 6:14 Saying, Surely blessing I will -bless thee, and multiplying I will multiply thee. - -6:15 And so, after he had patiently endured, he obtained the promise. - -6:16 For men verily swear by the greater: and an oath for confirmation -is to them an end of all strife. - -6:17 Wherein God, willing more abundantly to shew unto the heirs of -promise the immutability of his counsel, confirmed it by an oath: 6:18 -That by two immutable things, in which it was impossible for God to -lie, we might have a strong consolation, who have fled for refuge to -lay hold upon the hope set before us: 6:19 Which hope we have as an -anchor of the soul, both sure and stedfast, and which entereth into -that within the veil; 6:20 Whither the forerunner is for us entered, -even Jesus, made an high priest for ever after the order of -Melchisedec. - -7:1 For this Melchisedec, king of Salem, priest of the most high God, -who met Abraham returning from the slaughter of the kings, and blessed -him; 7:2 To whom also Abraham gave a tenth part of all; first being by -interpretation King of righteousness, and after that also King of -Salem, which is, King of peace; 7:3 Without father, without mother, -without descent, having neither beginning of days, nor end of life; -but made like unto the Son of God; abideth a priest continually. - -7:4 Now consider how great this man was, unto whom even the patriarch -Abraham gave the tenth of the spoils. - -7:5 And verily they that are of the sons of Levi, who receive the -office of the priesthood, have a commandment to take tithes of the -people according to the law, that is, of their brethren, though they -come out of the loins of Abraham: 7:6 But he whose descent is not -counted from them received tithes of Abraham, and blessed him that had -the promises. - -7:7 And without all contradiction the less is blessed of the better. - -7:8 And here men that die receive tithes; but there he receiveth them, -of whom it is witnessed that he liveth. - -7:9 And as I may so say, Levi also, who receiveth tithes, payed tithes -in Abraham. - -7:10 For he was yet in the loins of his father, when Melchisedec met -him. - -7:11 If therefore perfection were by the Levitical priesthood, (for -under it the people received the law,) what further need was there -that another priest should rise after the order of Melchisedec, and -not be called after the order of Aaron? 7:12 For the priesthood being -changed, there is made of necessity a change also of the law. - -7:13 For he of whom these things are spoken pertaineth to another -tribe, of which no man gave attendance at the altar. - -7:14 For it is evident that our Lord sprang out of Juda; of which -tribe Moses spake nothing concerning priesthood. - -7:15 And it is yet far more evident: for that after the similitude of -Melchisedec there ariseth another priest, 7:16 Who is made, not after -the law of a carnal commandment, but after the power of an endless -life. - -7:17 For he testifieth, Thou art a priest for ever after the order of -Melchisedec. - -7:18 For there is verily a disannulling of the commandment going -before for the weakness and unprofitableness thereof. - -7:19 For the law made nothing perfect, but the bringing in of a better -hope did; by the which we draw nigh unto God. - -7:20 And inasmuch as not without an oath he was made priest: 7:21 (For -those priests were made without an oath; but this with an oath by him -that said unto him, The Lord sware and will not repent, Thou art a -priest for ever after the order of Melchisedec:) 7:22 By so much was -Jesus made a surety of a better testament. - -7:23 And they truly were many priests, because they were not suffered -to continue by reason of death: 7:24 But this man, because he -continueth ever, hath an unchangeable priesthood. - -7:25 Wherefore he is able also to save them to the uttermost that come -unto God by him, seeing he ever liveth to make intercession for them. - -7:26 For such an high priest became us, who is holy, harmless, -undefiled, separate from sinners, and made higher than the heavens; -7:27 Who needeth not daily, as those high priests, to offer up -sacrifice, first for his own sins, and then for the people's: for this -he did once, when he offered up himself. - -7:28 For the law maketh men high priests which have infirmity; but the -word of the oath, which was since the law, maketh the Son, who is -consecrated for evermore. - -8:1 Now of the things which we have spoken this is the sum: We have -such an high priest, who is set on the right hand of the throne of the -Majesty in the heavens; 8:2 A minister of the sanctuary, and of the -true tabernacle, which the Lord pitched, and not man. - -8:3 For every high priest is ordained to offer gifts and sacrifices: -wherefore it is of necessity that this man have somewhat also to -offer. - -8:4 For if he were on earth, he should not be a priest, seeing that -there are priests that offer gifts according to the law: 8:5 Who serve -unto the example and shadow of heavenly things, as Moses was -admonished of God when he was about to make the tabernacle: for, See, -saith he, that thou make all things according to the pattern shewed to -thee in the mount. - -8:6 But now hath he obtained a more excellent ministry, by how much -also he is the mediator of a better covenant, which was established -upon better promises. - -8:7 For if that first covenant had been faultless, then should no -place have been sought for the second. - -8:8 For finding fault with them, he saith, Behold, the days come, -saith the Lord, when I will make a new covenant with the house of -Israel and with the house of Judah: 8:9 Not according to the covenant -that I made with their fathers in the day when I took them by the hand -to lead them out of the land of Egypt; because they continued not in -my covenant, and I regarded them not, saith the Lord. - -8:10 For this is the covenant that I will make with the house of -Israel after those days, saith the Lord; I will put my laws into their -mind, and write them in their hearts: and I will be to them a God, and -they shall be to me a people: 8:11 And they shall not teach every man -his neighbour, and every man his brother, saying, Know the Lord: for -all shall know me, from the least to the greatest. - -8:12 For I will be merciful to their unrighteousness, and their sins -and their iniquities will I remember no more. - -8:13 In that he saith, A new covenant, he hath made the first old. Now -that which decayeth and waxeth old is ready to vanish away. - -9:1 Then verily the first covenant had also ordinances of divine -service, and a worldly sanctuary. - -9:2 For there was a tabernacle made; the first, wherein was the -candlestick, and the table, and the shewbread; which is called the -sanctuary. - -9:3 And after the second veil, the tabernacle which is called the -Holiest of all; 9:4 Which had the golden censer, and the ark of the -covenant overlaid round about with gold, wherein was the golden pot -that had manna, and Aaron's rod that budded, and the tables of the -covenant; 9:5 And over it the cherubims of glory shadowing the -mercyseat; of which we cannot now speak particularly. - -9:6 Now when these things were thus ordained, the priests went always -into the first tabernacle, accomplishing the service of God. - -9:7 But into the second went the high priest alone once every year, -not without blood, which he offered for himself, and for the errors of -the people: 9:8 The Holy Ghost this signifying, that the way into the -holiest of all was not yet made manifest, while as the first -tabernacle was yet standing: 9:9 Which was a figure for the time then -present, in which were offered both gifts and sacrifices, that could -not make him that did the service perfect, as pertaining to the -conscience; 9:10 Which stood only in meats and drinks, and divers -washings, and carnal ordinances, imposed on them until the time of -reformation. - -9:11 But Christ being come an high priest of good things to come, by a -greater and more perfect tabernacle, not made with hands, that is to -say, not of this building; 9:12 Neither by the blood of goats and -calves, but by his own blood he entered in once into the holy place, -having obtained eternal redemption for us. - -9:13 For if the blood of bulls and of goats, and the ashes of an -heifer sprinkling the unclean, sanctifieth to the purifying of the -flesh: 9:14 How much more shall the blood of Christ, who through the -eternal Spirit offered himself without spot to God, purge your -conscience from dead works to serve the living God? 9:15 And for this -cause he is the mediator of the new testament, that by means of death, -for the redemption of the transgressions that were under the first -testament, they which are called might receive the promise of eternal -inheritance. - -9:16 For where a testament is, there must also of necessity be the -death of the testator. - -9:17 For a testament is of force after men are dead: otherwise it is -of no strength at all while the testator liveth. - -9:18 Whereupon neither the first testament was dedicated without -blood. - -9:19 For when Moses had spoken every precept to all the people -according to the law, he took the blood of calves and of goats, with -water, and scarlet wool, and hyssop, and sprinkled both the book, and -all the people, 9:20 Saying, This is the blood of the testament which -God hath enjoined unto you. - -9:21 Moreover he sprinkled with blood both the tabernacle, and all the -vessels of the ministry. - -9:22 And almost all things are by the law purged with blood; and -without shedding of blood is no remission. - -9:23 It was therefore necessary that the patterns of things in the -heavens should be purified with these; but the heavenly things -themselves with better sacrifices than these. - -9:24 For Christ is not entered into the holy places made with hands, -which are the figures of the true; but into heaven itself, now to -appear in the presence of God for us: 9:25 Nor yet that he should -offer himself often, as the high priest entereth into the holy place -every year with blood of others; 9:26 For then must he often have -suffered since the foundation of the world: but now once in the end of -the world hath he appeared to put away sin by the sacrifice of -himself. - -9:27 And as it is appointed unto men once to die, but after this the -judgment: 9:28 So Christ was once offered to bear the sins of many; -and unto them that look for him shall he appear the second time -without sin unto salvation. - -10:1 For the law having a shadow of good things to come, and not the -very image of the things, can never with those sacrifices which they -offered year by year continually make the comers thereunto perfect. - -10:2 For then would they not have ceased to be offered? because that -the worshippers once purged should have had no more conscience of -sins. - -10:3 But in those sacrifices there is a remembrance again made of sins -every year. - -10:4 For it is not possible that the blood of bulls and of goats -should take away sins. - -10:5 Wherefore when he cometh into the world, he saith, Sacrifice and -offering thou wouldest not, but a body hast thou prepared me: 10:6 In -burnt offerings and sacrifices for sin thou hast had no pleasure. - -10:7 Then said I, Lo, I come (in the volume of the book it is written -of me,) to do thy will, O God. - -10:8 Above when he said, Sacrifice and offering and burnt offerings -and offering for sin thou wouldest not, neither hadst pleasure -therein; which are offered by the law; 10:9 Then said he, Lo, I come -to do thy will, O God. He taketh away the first, that he may establish -the second. - -10:10 By the which will we are sanctified through the offering of the -body of Jesus Christ once for all. - -10:11 And every priest standeth daily ministering and offering -oftentimes the same sacrifices, which can never take away sins: 10:12 -But this man, after he had offered one sacrifice for sins for ever, -sat down on the right hand of God; 10:13 From henceforth expecting -till his enemies be made his footstool. - -10:14 For by one offering he hath perfected for ever them that are -sanctified. - -10:15 Whereof the Holy Ghost also is a witness to us: for after that -he had said before, 10:16 This is the covenant that I will make with -them after those days, saith the Lord, I will put my laws into their -hearts, and in their minds will I write them; 10:17 And their sins and -iniquities will I remember no more. - -10:18 Now where remission of these is, there is no more offering for -sin. - -10:19 Having therefore, brethren, boldness to enter into the holiest -by the blood of Jesus, 10:20 By a new and living way, which he hath -consecrated for us, through the veil, that is to say, his flesh; 10:21 -And having an high priest over the house of God; 10:22 Let us draw -near with a true heart in full assurance of faith, having our hearts -sprinkled from an evil conscience, and our bodies washed with pure -water. - -10:23 Let us hold fast the profession of our faith without wavering; -(for he is faithful that promised;) 10:24 And let us consider one -another to provoke unto love and to good works: 10:25 Not forsaking -the assembling of ourselves together, as the manner of some is; but -exhorting one another: and so much the more, as ye see the day -approaching. - -10:26 For if we sin wilfully after that we have received the knowledge -of the truth, there remaineth no more sacrifice for sins, 10:27 But a -certain fearful looking for of judgment and fiery indignation, which -shall devour the adversaries. - -10:28 He that despised Moses' law died without mercy under two or -three witnesses: 10:29 Of how much sorer punishment, suppose ye, shall -he be thought worthy, who hath trodden under foot the Son of God, and -hath counted the blood of the covenant, wherewith he was sanctified, -an unholy thing, and hath done despite unto the Spirit of grace? -10:30 For we know him that hath said, Vengeance belongeth unto me, I -will recompense, saith the Lord. And again, The Lord shall judge his -people. - -10:31 It is a fearful thing to fall into the hands of the living God. - -10:32 But call to remembrance the former days, in which, after ye were -illuminated, ye endured a great fight of afflictions; 10:33 Partly, -whilst ye were made a gazingstock both by reproaches and afflictions; -and partly, whilst ye became companions of them that were so used. - -10:34 For ye had compassion of me in my bonds, and took joyfully the -spoiling of your goods, knowing in yourselves that ye have in heaven a -better and an enduring substance. - -10:35 Cast not away therefore your confidence, which hath great -recompence of reward. - -10:36 For ye have need of patience, that, after ye have done the will -of God, ye might receive the promise. - -10:37 For yet a little while, and he that shall come will come, and -will not tarry. - -10:38 Now the just shall live by faith: but if any man draw back, my -soul shall have no pleasure in him. - -10:39 But we are not of them who draw back unto perdition; but of them -that believe to the saving of the soul. - -11:1 Now faith is the substance of things hoped for, the evidence of -things not seen. - -11:2 For by it the elders obtained a good report. - -11:3 Through faith we understand that the worlds were framed by the -word of God, so that things which are seen were not made of things -which do appear. - -11:4 By faith Abel offered unto God a more excellent sacrifice than -Cain, by which he obtained witness that he was righteous, God -testifying of his gifts: and by it he being dead yet speaketh. - -11:5 By faith Enoch was translated that he should not see death; and -was not found, because God had translated him: for before his -translation he had this testimony, that he pleased God. - -11:6 But without faith it is impossible to please him: for he that -cometh to God must believe that he is, and that he is a rewarder of -them that diligently seek him. - -11:7 By faith Noah, being warned of God of things not seen as yet, -moved with fear, prepared an ark to the saving of his house; by the -which he condemned the world, and became heir of the righteousness -which is by faith. - -11:8 By faith Abraham, when he was called to go out into a place which -he should after receive for an inheritance, obeyed; and he went out, -not knowing whither he went. - -11:9 By faith he sojourned in the land of promise, as in a strange -country, dwelling in tabernacles with Isaac and Jacob, the heirs with -him of the same promise: 11:10 For he looked for a city which hath -foundations, whose builder and maker is God. - -11:11 Through faith also Sara herself received strength to conceive -seed, and was delivered of a child when she was past age, because she -judged him faithful who had promised. - -11:12 Therefore sprang there even of one, and him as good as dead, so -many as the stars of the sky in multitude, and as the sand which is by -the sea shore innumerable. - -11:13 These all died in faith, not having received the promises, but -having seen them afar off, and were persuaded of them, and embraced -them, and confessed that they were strangers and pilgrims on the -earth. - -11:14 For they that say such things declare plainly that they seek a -country. - -11:15 And truly, if they had been mindful of that country from whence -they came out, they might have had opportunity to have returned. - -11:16 But now they desire a better country, that is, an heavenly: -wherefore God is not ashamed to be called their God: for he hath -prepared for them a city. - -11:17 By faith Abraham, when he was tried, offered up Isaac: and he -that had received the promises offered up his only begotten son, 11:18 -Of whom it was said, That in Isaac shall thy seed be called: 11:19 -Accounting that God was able to raise him up, even from the dead; from -whence also he received him in a figure. - -11:20 By faith Isaac blessed Jacob and Esau concerning things to come. - -11:21 By faith Jacob, when he was a dying, blessed both the sons of -Joseph; and worshipped, leaning upon the top of his staff. - -11:22 By faith Joseph, when he died, made mention of the departing of -the children of Israel; and gave commandment concerning his bones. - -11:23 By faith Moses, when he was born, was hid three months of his -parents, because they saw he was a proper child; and they were not -afraid of the king's commandment. - -11:24 By faith Moses, when he was come to years, refused to be called -the son of Pharaoh's daughter; 11:25 Choosing rather to suffer -affliction with the people of God, than to enjoy the pleasures of sin -for a season; 11:26 Esteeming the reproach of Christ greater riches -than the treasures in Egypt: for he had respect unto the recompence of -the reward. - -11:27 By faith he forsook Egypt, not fearing the wrath of the king: -for he endured, as seeing him who is invisible. - -11:28 Through faith he kept the passover, and the sprinkling of blood, -lest he that destroyed the firstborn should touch them. - -11:29 By faith they passed through the Red sea as by dry land: which -the Egyptians assaying to do were drowned. - -11:30 By faith the walls of Jericho fell down, after they were -compassed about seven days. - -11:31 By faith the harlot Rahab perished not with them that believed -not, when she had received the spies with peace. - -11:32 And what shall I more say? for the time would fail me to tell of -Gedeon, and of Barak, and of Samson, and of Jephthae; of David also, -and Samuel, and of the prophets: 11:33 Who through faith subdued -kingdoms, wrought righteousness, obtained promises, stopped the mouths -of lions. - -11:34 Quenched the violence of fire, escaped the edge of the sword, -out of weakness were made strong, waxed valiant in fight, turned to -flight the armies of the aliens. - -11:35 Women received their dead raised to life again: and others were -tortured, not accepting deliverance; that they might obtain a better -resurrection: 11:36 And others had trial of cruel mockings and -scourgings, yea, moreover of bonds and imprisonment: 11:37 They were -stoned, they were sawn asunder, were tempted, were slain with the -sword: they wandered about in sheepskins and goatskins; being -destitute, afflicted, tormented; 11:38 (Of whom the world was not -worthy:) they wandered in deserts, and in mountains, and in dens and -caves of the earth. - -11:39 And these all, having obtained a good report through faith, -received not the promise: 11:40 God having provided some better thing -for us, that they without us should not be made perfect. - -12:1 Wherefore seeing we also are compassed about with so great a -cloud of witnesses, let us lay aside every weight, and the sin which -doth so easily beset us, and let us run with patience the race that is -set before us, 12:2 Looking unto Jesus the author and finisher of our -faith; who for the joy that was set before him endured the cross, -despising the shame, and is set down at the right hand of the throne -of God. - -12:3 For consider him that endured such contradiction of sinners -against himself, lest ye be wearied and faint in your minds. - -12:4 Ye have not yet resisted unto blood, striving against sin. - -12:5 And ye have forgotten the exhortation which speaketh unto you as -unto children, My son, despise not thou the chastening of the Lord, -nor faint when thou art rebuked of him: 12:6 For whom the Lord loveth -he chasteneth, and scourgeth every son whom he receiveth. - -12:7 If ye endure chastening, God dealeth with you as with sons; for -what son is he whom the father chasteneth not? 12:8 But if ye be -without chastisement, whereof all are partakers, then are ye bastards, -and not sons. - -12:9 Furthermore we have had fathers of our flesh which corrected us, -and we gave them reverence: shall we not much rather be in subjection -unto the Father of spirits, and live? 12:10 For they verily for a few -days chastened us after their own pleasure; but he for our profit, -that we might be partakers of his holiness. - -12:11 Now no chastening for the present seemeth to be joyous, but -grievous: nevertheless afterward it yieldeth the peaceable fruit of -righteousness unto them which are exercised thereby. - -12:12 Wherefore lift up the hands which hang down, and the feeble -knees; 12:13 And make straight paths for your feet, lest that which is -lame be turned out of the way; but let it rather be healed. - -12:14 Follow peace with all men, and holiness, without which no man -shall see the Lord: 12:15 Looking diligently lest any man fail of the -grace of God; lest any root of bitterness springing up trouble you, -and thereby many be defiled; 12:16 Lest there be any fornicator, or -profane person, as Esau, who for one morsel of meat sold his -birthright. - -12:17 For ye know how that afterward, when he would have inherited the -blessing, he was rejected: for he found no place of repentance, though -he sought it carefully with tears. - -12:18 For ye are not come unto the mount that might be touched, and -that burned with fire, nor unto blackness, and darkness, and tempest, -12:19 And the sound of a trumpet, and the voice of words; which voice -they that heard intreated that the word should not be spoken to them -any more: 12:20 (For they could not endure that which was commanded, -And if so much as a beast touch the mountain, it shall be stoned, or -thrust through with a dart: 12:21 And so terrible was the sight, that -Moses said, I exceedingly fear and quake:) 12:22 But ye are come unto -mount Sion, and unto the city of the living God, the heavenly -Jerusalem, and to an innumerable company of angels, 12:23 To the -general assembly and church of the firstborn, which are written in -heaven, and to God the Judge of all, and to the spirits of just men -made perfect, 12:24 And to Jesus the mediator of the new covenant, and -to the blood of sprinkling, that speaketh better things than that of -Abel. - -12:25 See that ye refuse not him that speaketh. For if they escaped -not who refused him that spake on earth, much more shall not we -escape, if we turn away from him that speaketh from heaven: 12:26 -Whose voice then shook the earth: but now he hath promised, saying, -Yet once more I shake not the earth only, but also heaven. - -12:27 And this word, Yet once more, signifieth the removing of those -things that are shaken, as of things that are made, that those things -which cannot be shaken may remain. - -12:28 Wherefore we receiving a kingdom which cannot be moved, let us -have grace, whereby we may serve God acceptably with reverence and -godly fear: 12:29 For our God is a consuming fire. - -13:1 Let brotherly love continue. - -13:2 Be not forgetful to entertain strangers: for thereby some have -entertained angels unawares. - -13:3 Remember them that are in bonds, as bound with them; and them -which suffer adversity, as being yourselves also in the body. - -13:4 Marriage is honourable in all, and the bed undefiled: but -whoremongers and adulterers God will judge. - -13:5 Let your conversation be without covetousness; and be content -with such things as ye have: for he hath said, I will never leave -thee, nor forsake thee. - -13:6 So that we may boldly say, The Lord is my helper, and I will not -fear what man shall do unto me. - -13:7 Remember them which have the rule over you, who have spoken unto -you the word of God: whose faith follow, considering the end of their -conversation. - -13:8 Jesus Christ the same yesterday, and to day, and for ever. - -13:9 Be not carried about with divers and strange doctrines. For it is -a good thing that the heart be established with grace; not with meats, -which have not profited them that have been occupied therein. - -13:10 We have an altar, whereof they have no right to eat which serve -the tabernacle. - -13:11 For the bodies of those beasts, whose blood is brought into the -sanctuary by the high priest for sin, are burned without the camp. - -13:12 Wherefore Jesus also, that he might sanctify the people with his -own blood, suffered without the gate. - -13:13 Let us go forth therefore unto him without the camp, bearing his -reproach. - -13:14 For here have we no continuing city, but we seek one to come. - -13:15 By him therefore let us offer the sacrifice of praise to God -continually, that is, the fruit of our lips giving thanks to his name. - -13:16 But to do good and to communicate forget not: for with such -sacrifices God is well pleased. - -13:17 Obey them that have the rule over you, and submit yourselves: -for they watch for your souls, as they that must give account, that -they may do it with joy, and not with grief: for that is unprofitable -for you. - -13:18 Pray for us: for we trust we have a good conscience, in all -things willing to live honestly. - -13:19 But I beseech you the rather to do this, that I may be restored -to you the sooner. - -13:20 Now the God of peace, that brought again from the dead our Lord -Jesus, that great shepherd of the sheep, through the blood of the -everlasting covenant, 13:21 Make you perfect in every good work to do -his will, working in you that which is wellpleasing in his sight, -through Jesus Christ; to whom be glory for ever and ever. Amen. - -13:22 And I beseech you, brethren, suffer the word of exhortation: for -I have written a letter unto you in few words. - -13:23 Know ye that our brother Timothy is set at liberty; with whom, -if he come shortly, I will see you. - -13:24 Salute all them that have the rule over you, and all the saints. - -They of Italy salute you. - -13:25 Grace be with you all. Amen. - - - - -The General Epistle of James - - -1:1 James, a servant of God and of the Lord Jesus Christ, -to the twelve tribes which are scattered abroad, greeting. - -1:2 My brethren, count it all joy when ye fall into divers -temptations; 1:3 Knowing this, that the trying of your faith worketh -patience. - -1:4 But let patience have her perfect work, that ye may be perfect and -entire, wanting nothing. - -1:5 If any of you lack wisdom, let him ask of God, that giveth to all -men liberally, and upbraideth not; and it shall be given him. - -1:6 But let him ask in faith, nothing wavering. For he that wavereth -is like a wave of the sea driven with the wind and tossed. - -1:7 For let not that man think that he shall receive any thing of the -Lord. - -1:8 A double minded man is unstable in all his ways. - -1:9 Let the brother of low degree rejoice in that he is exalted: 1:10 -But the rich, in that he is made low: because as the flower of the -grass he shall pass away. - -1:11 For the sun is no sooner risen with a burning heat, but it -withereth the grass, and the flower thereof falleth, and the grace of -the fashion of it perisheth: so also shall the rich man fade away in -his ways. - -1:12 Blessed is the man that endureth temptation: for when he is -tried, he shall receive the crown of life, which the Lord hath -promised to them that love him. - -1:13 Let no man say when he is tempted, I am tempted of God: for God -cannot be tempted with evil, neither tempteth he any man: 1:14 But -every man is tempted, when he is drawn away of his own lust, and -enticed. - -1:15 Then when lust hath conceived, it bringeth forth sin: and sin, -when it is finished, bringeth forth death. - -1:16 Do not err, my beloved brethren. - -1:17 Every good gift and every perfect gift is from above, and cometh -down from the Father of lights, with whom is no variableness, neither -shadow of turning. - -1:18 Of his own will begat he us with the word of truth, that we -should be a kind of firstfruits of his creatures. - -1:19 Wherefore, my beloved brethren, let every man be swift to hear, -slow to speak, slow to wrath: 1:20 For the wrath of man worketh not -the righteousness of God. - -1:21 Wherefore lay apart all filthiness and superfluity of -naughtiness, and receive with meekness the engrafted word, which is -able to save your souls. - -1:22 But be ye doers of the word, and not hearers only, deceiving your -own selves. - -1:23 For if any be a hearer of the word, and not a doer, he is like -unto a man beholding his natural face in a glass: 1:24 For he -beholdeth himself, and goeth his way, and straightway forgetteth what -manner of man he was. - -1:25 But whoso looketh into the perfect law of liberty, and continueth -therein, he being not a forgetful hearer, but a doer of the work, this -man shall be blessed in his deed. - -1:26 If any man among you seem to be religious, and bridleth not his -tongue, but deceiveth his own heart, this man's religion is vain. - -1:27 Pure religion and undefiled before God and the Father is this, To -visit the fatherless and widows in their affliction, and to keep -himself unspotted from the world. - -2:1 My brethren, have not the faith of our Lord Jesus Christ, the Lord -of glory, with respect of persons. - -2:2 For if there come unto your assembly a man with a gold ring, in -goodly apparel, and there come in also a poor man in vile raiment; 2:3 -And ye have respect to him that weareth the gay clothing, and say unto -him, Sit thou here in a good place; and say to the poor, Stand thou -there, or sit here under my footstool: 2:4 Are ye not then partial in -yourselves, and are become judges of evil thoughts? 2:5 Hearken, my -beloved brethren, Hath not God chosen the poor of this world rich in -faith, and heirs of the kingdom which he hath promised to them that -love him? 2:6 But ye have despised the poor. Do not rich men oppress -you, and draw you before the judgment seats? 2:7 Do not they -blaspheme that worthy name by the which ye are called? 2:8 If ye -fulfil the royal law according to the scripture, Thou shalt love thy -neighbour as thyself, ye do well: 2:9 But if ye have respect to -persons, ye commit sin, and are convinced of the law as transgressors. - -2:10 For whosoever shall keep the whole law, and yet offend in one -point, he is guilty of all. - -2:11 For he that said, Do not commit adultery, said also, Do not kill. -Now if thou commit no adultery, yet if thou kill, thou art become a -transgressor of the law. - -2:12 So speak ye, and so do, as they that shall be judged by the law -of liberty. - -2:13 For he shall have judgment without mercy, that hath shewed no -mercy; and mercy rejoiceth against judgment. - -2:14 What doth it profit, my brethren, though a man say he hath faith, -and have not works? can faith save him? 2:15 If a brother or sister -be naked, and destitute of daily food, 2:16 And one of you say unto -them, Depart in peace, be ye warmed and filled; notwithstanding ye -give them not those things which are needful to the body; what doth it -profit? 2:17 Even so faith, if it hath not works, is dead, being -alone. - -2:18 Yea, a man may say, Thou hast faith, and I have works: shew me -thy faith without thy works, and I will shew thee my faith by my -works. - -2:19 Thou believest that there is one God; thou doest well: the devils -also believe, and tremble. - -2:20 But wilt thou know, O vain man, that faith without works is dead? -2:21 Was not Abraham our father justified by works, when he had -offered Isaac his son upon the altar? 2:22 Seest thou how faith -wrought with his works, and by works was faith made perfect? 2:23 And -the scripture was fulfilled which saith, Abraham believed God, and it -was imputed unto him for righteousness: and he was called the Friend -of God. - -2:24 Ye see then how that by works a man is justified, and not by -faith only. - -2:25 Likewise also was not Rahab the harlot justified by works, when -she had received the messengers, and had sent them out another way? -2:26 For as the body without the spirit is dead, so faith without -works is dead also. - -3:1 My brethren, be not many masters, knowing that we shall receive -the greater condemnation. - -3:2 For in many things we offend all. If any man offend not in word, -the same is a perfect man, and able also to bridle the whole body. - -3:3 Behold, we put bits in the horses' mouths, that they may obey us; -and we turn about their whole body. - -3:4 Behold also the ships, which though they be so great, and are -driven of fierce winds, yet are they turned about with a very small -helm, whithersoever the governor listeth. - -3:5 Even so the tongue is a little member, and boasteth great things. - -Behold, how great a matter a little fire kindleth! 3:6 And the tongue -is a fire, a world of iniquity: so is the tongue among our members, -that it defileth the whole body, and setteth on fire the course of -nature; and it is set on fire of hell. - -3:7 For every kind of beasts, and of birds, and of serpents, and of -things in the sea, is tamed, and hath been tamed of mankind: 3:8 But -the tongue can no man tame; it is an unruly evil, full of deadly -poison. - -3:9 Therewith bless we God, even the Father; and therewith curse we -men, which are made after the similitude of God. - -3:10 Out of the same mouth proceedeth blessing and cursing. My -brethren, these things ought not so to be. - -3:11 Doth a fountain send forth at the same place sweet water and -bitter? 3:12 Can the fig tree, my brethren, bear olive berries? -either a vine, figs? so can no fountain both yield salt water and -fresh. - -3:13 Who is a wise man and endued with knowledge among you? let him -shew out of a good conversation his works with meekness of wisdom. - -3:14 But if ye have bitter envying and strife in your hearts, glory -not, and lie not against the truth. - -3:15 This wisdom descendeth not from above, but is earthly, sensual, -devilish. - -3:16 For where envying and strife is, there is confusion and every -evil work. - -3:17 But the wisdom that is from above is first pure, then peaceable, -gentle, and easy to be intreated, full of mercy and good fruits, -without partiality, and without hypocrisy. - -3:18 And the fruit of righteousness is sown in peace of them that make -peace. - -4:1 From whence come wars and fightings among you? come they not -hence, even of your lusts that war in your members? 4:2 Ye lust, and -have not: ye kill, and desire to have, and cannot obtain: ye fight and -war, yet ye have not, because ye ask not. - -4:3 Ye ask, and receive not, because ye ask amiss, that ye may consume -it upon your lusts. - -4:4 Ye adulterers and adulteresses, know ye not that the friendship of -the world is enmity with God? whosoever therefore will be a friend of -the world is the enemy of God. - -4:5 Do ye think that the scripture saith in vain, The spirit that -dwelleth in us lusteth to envy? 4:6 But he giveth more grace. -Wherefore he saith, God resisteth the proud, but giveth grace unto the -humble. - -4:7 Submit yourselves therefore to God. Resist the devil, and he will -flee from you. - -4:8 Draw nigh to God, and he will draw nigh to you. Cleanse your -hands, ye sinners; and purify your hearts, ye double minded. - -4:9 Be afflicted, and mourn, and weep: let your laughter be turned to -mourning, and your joy to heaviness. - -4:10 Humble yourselves in the sight of the Lord, and he shall lift you -up. - -4:11 Speak not evil one of another, brethren. He that speaketh evil of -his brother, and judgeth his brother, speaketh evil of the law, and -judgeth the law: but if thou judge the law, thou art not a doer of the -law, but a judge. - -4:12 There is one lawgiver, who is able to save and to destroy: who -art thou that judgest another? 4:13 Go to now, ye that say, To day or -to morrow we will go into such a city, and continue there a year, and -buy and sell, and get gain: 4:14 Whereas ye know not what shall be on -the morrow. For what is your life? It is even a vapour, that appeareth -for a little time, and then vanisheth away. - -4:15 For that ye ought to say, If the Lord will, we shall live, and do -this, or that. - -4:16 But now ye rejoice in your boastings: all such rejoicing is evil. - -4:17 Therefore to him that knoweth to do good, and doeth it not, to -him it is sin. - -5:1 Go to now, ye rich men, weep and howl for your miseries that shall -come upon you. - -5:2 Your riches are corrupted, and your garments are motheaten. - -5:3 Your gold and silver is cankered; and the rust of them shall be a -witness against you, and shall eat your flesh as it were fire. Ye have -heaped treasure together for the last days. - -5:4 Behold, the hire of the labourers who have reaped down your -fields, which is of you kept back by fraud, crieth: and the cries of -them which have reaped are entered into the ears of the Lord of -sabaoth. - -5:5 Ye have lived in pleasure on the earth, and been wanton; ye have -nourished your hearts, as in a day of slaughter. - -5:6 Ye have condemned and killed the just; and he doth not resist you. - -5:7 Be patient therefore, brethren, unto the coming of the Lord. - -Behold, the husbandman waiteth for the precious fruit of the earth, -and hath long patience for it, until he receive the early and latter -rain. - -5:8 Be ye also patient; stablish your hearts: for the coming of the -Lord draweth nigh. - -5:9 Grudge not one against another, brethren, lest ye be condemned: -behold, the judge standeth before the door. - -5:10 Take, my brethren, the prophets, who have spoken in the name of -the Lord, for an example of suffering affliction, and of patience. - -5:11 Behold, we count them happy which endure. Ye have heard of the -patience of Job, and have seen the end of the Lord; that the Lord is -very pitiful, and of tender mercy. - -5:12 But above all things, my brethren, swear not, neither by heaven, -neither by the earth, neither by any other oath: but let your yea be -yea; and your nay, nay; lest ye fall into condemnation. - -5:13 Is any among you afflicted? let him pray. Is any merry? let him -sing psalms. - -5:14 Is any sick among you? let him call for the elders of the church; -and let them pray over him, anointing him with oil in the name of the -Lord: 5:15 And the prayer of faith shall save the sick, and the Lord -shall raise him up; and if he have committed sins, they shall be -forgiven him. - -5:16 Confess your faults one to another, and pray one for another, -that ye may be healed. The effectual fervent prayer of a righteous man -availeth much. - -5:17 Elias was a man subject to like passions as we are, and he prayed -earnestly that it might not rain: and it rained not on the earth by -the space of three years and six months. - -5:18 And he prayed again, and the heaven gave rain, and the earth -brought forth her fruit. - -5:19 Brethren, if any of you do err from the truth, and one convert -him; 5:20 Let him know, that he which converteth the sinner from the -error of his way shall save a soul from death, and shall hide a -multitude of sins. - - - - -The First Epistle General of Peter - - -1:1 Peter, an apostle of Jesus Christ, to the strangers scattered -throughout Pontus, Galatia, Cappadocia, Asia, and Bithynia, 1:2 Elect -according to the foreknowledge of God the Father, through -sanctification of the Spirit, unto obedience and sprinkling of the -blood of Jesus Christ: Grace unto you, and peace, be multiplied. - -1:3 Blessed be the God and Father of our Lord Jesus Christ, which -according to his abundant mercy hath begotten us again unto a lively -hope by the resurrection of Jesus Christ from the dead, 1:4 To an -inheritance incorruptible, and undefiled, and that fadeth not away, -reserved in heaven for you, 1:5 Who are kept by the power of God -through faith unto salvation ready to be revealed in the last time. - -1:6 Wherein ye greatly rejoice, though now for a season, if need be, -ye are in heaviness through manifold temptations: 1:7 That the trial -of your faith, being much more precious than of gold that perisheth, -though it be tried with fire, might be found unto praise and honour -and glory at the appearing of Jesus Christ: 1:8 Whom having not seen, -ye love; in whom, though now ye see him not, yet believing, ye rejoice -with joy unspeakable and full of glory: 1:9 Receiving the end of your -faith, even the salvation of your souls. - -1:10 Of which salvation the prophets have enquired and searched -diligently, who prophesied of the grace that should come unto you: -1:11 Searching what, or what manner of time the Spirit of Christ which -was in them did signify, when it testified beforehand the sufferings -of Christ, and the glory that should follow. - -1:12 Unto whom it was revealed, that not unto themselves, but unto us -they did minister the things, which are now reported unto you by them -that have preached the gospel unto you with the Holy Ghost sent down -from heaven; which things the angels desire to look into. - -1:13 Wherefore gird up the loins of your mind, be sober, and hope to -the end for the grace that is to be brought unto you at the revelation -of Jesus Christ; 1:14 As obedient children, not fashioning yourselves -according to the former lusts in your ignorance: 1:15 But as he which -hath called you is holy, so be ye holy in all manner of conversation; -1:16 Because it is written, Be ye holy; for I am holy. - -1:17 And if ye call on the Father, who without respect of persons -judgeth according to every man's work, pass the time of your -sojourning here in fear: 1:18 Forasmuch as ye know that ye were not -redeemed with corruptible things, as silver and gold, from your vain -conversation received by tradition from your fathers; 1:19 But with -the precious blood of Christ, as of a lamb without blemish and without -spot: 1:20 Who verily was foreordained before the foundation of the -world, but was manifest in these last times for you, 1:21 Who by him -do believe in God, that raised him up from the dead, and gave him -glory; that your faith and hope might be in God. - -1:22 Seeing ye have purified your souls in obeying the truth through -the Spirit unto unfeigned love of the brethren, see that ye love one -another with a pure heart fervently: 1:23 Being born again, not of -corruptible seed, but of incorruptible, by the word of God, which -liveth and abideth for ever. - -1:24 For all flesh is as grass, and all the glory of man as the flower -of grass. The grass withereth, and the flower thereof falleth away: -1:25 But the word of the Lord endureth for ever. And this is the word -which by the gospel is preached unto you. - -2:1 Wherefore laying aside all malice, and all guile, and hypocrisies, -and envies, all evil speakings, 2:2 As newborn babes, desire the -sincere milk of the word, that ye may grow thereby: 2:3 If so be ye -have tasted that the Lord is gracious. - -2:4 To whom coming, as unto a living stone, disallowed indeed of men, -but chosen of God, and precious, 2:5 Ye also, as lively stones, are -built up a spiritual house, an holy priesthood, to offer up spiritual -sacrifices, acceptable to God by Jesus Christ. - -2:6 Wherefore also it is contained in the scripture, Behold, I lay in -Sion a chief corner stone, elect, precious: and he that believeth on -him shall not be confounded. - -2:7 Unto you therefore which believe he is precious: but unto them -which be disobedient, the stone which the builders disallowed, the -same is made the head of the corner, 2:8 And a stone of stumbling, and -a rock of offence, even to them which stumble at the word, being -disobedient: whereunto also they were appointed. - -2:9 But ye are a chosen generation, a royal priesthood, an holy -nation, a peculiar people; that ye should shew forth the praises of -him who hath called you out of darkness into his marvellous light; -2:10 Which in time past were not a people, but are now the people of -God: which had not obtained mercy, but now have obtained mercy. - -2:11 Dearly beloved, I beseech you as strangers and pilgrims, abstain -from fleshly lusts, which war against the soul; 2:12 Having your -conversation honest among the Gentiles: that, whereas they speak -against you as evildoers, they may by your good works, which they -shall behold, glorify God in the day of visitation. - -2:13 Submit yourselves to every ordinance of man for the Lord's sake: -whether it be to the king, as supreme; 2:14 Or unto governors, as unto -them that are sent by him for the punishment of evildoers, and for the -praise of them that do well. - -2:15 For so is the will of God, that with well doing ye may put to -silence the ignorance of foolish men: 2:16 As free, and not using your -liberty for a cloke of maliciousness, but as the servants of God. - -2:17 Honour all men. Love the brotherhood. Fear God. Honour the king. - -2:18 Servants, be subject to your masters with all fear; not only to -the good and gentle, but also to the froward. - -2:19 For this is thankworthy, if a man for conscience toward God -endure grief, suffering wrongfully. - -2:20 For what glory is it, if, when ye be buffeted for your faults, ye -shall take it patiently? but if, when ye do well, and suffer for it, -ye take it patiently, this is acceptable with God. - -2:21 For even hereunto were ye called: because Christ also suffered -for us, leaving us an example, that ye should follow his steps: 2:22 -Who did no sin, neither was guile found in his mouth: 2:23 Who, when -he was reviled, reviled not again; when he suffered, he threatened -not; but committed himself to him that judgeth righteously: 2:24 Who -his own self bare our sins in his own body on the tree, that we, being -dead to sins, should live unto righteousness: by whose stripes ye were -healed. - -2:25 For ye were as sheep going astray; but are now returned unto the -Shepherd and Bishop of your souls. - -3:1 Likewise, ye wives, be in subjection to your own husbands; that, -if any obey not the word, they also may without the word be won by the -conversation of the wives; 3:2 While they behold your chaste -conversation coupled with fear. - -3:3 Whose adorning let it not be that outward adorning of plaiting the -hair, and of wearing of gold, or of putting on of apparel; 3:4 But let -it be the hidden man of the heart, in that which is not corruptible, -even the ornament of a meek and quiet spirit, which is in the sight of -God of great price. - -3:5 For after this manner in the old time the holy women also, who -trusted in God, adorned themselves, being in subjection unto their own -husbands: 3:6 Even as Sara obeyed Abraham, calling him lord: whose -daughters ye are, as long as ye do well, and are not afraid with any -amazement. - -3:7 Likewise, ye husbands, dwell with them according to knowledge, -giving honour unto the wife, as unto the weaker vessel, and as being -heirs together of the grace of life; that your prayers be not -hindered. - -3:8 Finally, be ye all of one mind, having compassion one of another, -love as brethren, be pitiful, be courteous: 3:9 Not rendering evil for -evil, or railing for railing: but contrariwise blessing; knowing that -ye are thereunto called, that ye should inherit a blessing. - -3:10 For he that will love life, and see good days, let him refrain -his tongue from evil, and his lips that they speak no guile: 3:11 Let -him eschew evil, and do good; let him seek peace, and ensue it. - -3:12 For the eyes of the Lord are over the righteous, and his ears are -open unto their prayers: but the face of the Lord is against them that -do evil. - -3:13 And who is he that will harm you, if ye be followers of that -which is good? 3:14 But and if ye suffer for righteousness' sake, -happy are ye: and be not afraid of their terror, neither be troubled; -3:15 But sanctify the Lord God in your hearts: and be ready always to -give an answer to every man that asketh you a reason of the hope that -is in you with meekness and fear: 3:16 Having a good conscience; that, -whereas they speak evil of you, as of evildoers, they may be ashamed -that falsely accuse your good conversation in Christ. - -3:17 For it is better, if the will of God be so, that ye suffer for -well doing, than for evil doing. - -3:18 For Christ also hath once suffered for sins, the just for the -unjust, that he might bring us to God, being put to death in the -flesh, but quickened by the Spirit: 3:19 By which also he went and -preached unto the spirits in prison; 3:20 Which sometime were -disobedient, when once the longsuffering of God waited in the days of -Noah, while the ark was a preparing, wherein few, that is, eight souls -were saved by water. - -3:21 The like figure whereunto even baptism doth also now save us (not -the putting away of the filth of the flesh, but the answer of a good -conscience toward God,) by the resurrection of Jesus Christ: 3:22 Who -is gone into heaven, and is on the right hand of God; angels and -authorities and powers being made subject unto him. - -4:1 Forasmuch then as Christ hath suffered for us in the flesh, arm -yourselves likewise with the same mind: for he that hath suffered in -the flesh hath ceased from sin; 4:2 That he no longer should live the -rest of his time in the flesh to the lusts of men, but to the will of -God. - -4:3 For the time past of our life may suffice us to have wrought the -will of the Gentiles, when we walked in lasciviousness, lusts, excess -of wine, revellings, banquetings, and abominable idolatries: 4:4 -Wherein they think it strange that ye run not with them to the same -excess of riot, speaking evil of you: 4:5 Who shall give account to -him that is ready to judge the quick and the dead. - -4:6 For for this cause was the gospel preached also to them that are -dead, that they might be judged according to men in the flesh, but -live according to God in the spirit. - -4:7 But the end of all things is at hand: be ye therefore sober, and -watch unto prayer. - -4:8 And above all things have fervent charity among yourselves: for -charity shall cover the multitude of sins. - -4:9 Use hospitality one to another without grudging. - -4:10 As every man hath received the gift, even so minister the same -one to another, as good stewards of the manifold grace of God. - -4:11 If any man speak, let him speak as the oracles of God; if any man -minister, let him do it as of the ability which God giveth: that God -in all things may be glorified through Jesus Christ, to whom be praise -and dominion for ever and ever. Amen. - -4:12 Beloved, think it not strange concerning the fiery trial which is -to try you, as though some strange thing happened unto you: 4:13 But -rejoice, inasmuch as ye are partakers of Christ's sufferings; that, -when his glory shall be revealed, ye may be glad also with exceeding -joy. - -4:14 If ye be reproached for the name of Christ, happy are ye; for the -spirit of glory and of God resteth upon you: on their part he is evil -spoken of, but on your part he is glorified. - -4:15 But let none of you suffer as a murderer, or as a thief, or as an -evildoer, or as a busybody in other men's matters. - -4:16 Yet if any man suffer as a Christian, let him not be ashamed; but -let him glorify God on this behalf. - -4:17 For the time is come that judgment must begin at the house of -God: and if it first begin at us, what shall the end be of them that -obey not the gospel of God? 4:18 And if the righteous scarcely be -saved, where shall the ungodly and the sinner appear? 4:19 Wherefore -let them that suffer according to the will of God commit the keeping -of their souls to him in well doing, as unto a faithful Creator. - -5:1 The elders which are among you I exhort, who am also an elder, and -a witness of the sufferings of Christ, and also a partaker of the -glory that shall be revealed: 5:2 Feed the flock of God which is among -you, taking the oversight thereof, not by constraint, but willingly; -not for filthy lucre, but of a ready mind; 5:3 Neither as being lords -over God's heritage, but being ensamples to the flock. - -5:4 And when the chief Shepherd shall appear, ye shall receive a crown -of glory that fadeth not away. - -5:5 Likewise, ye younger, submit yourselves unto the elder. Yea, all -of you be subject one to another, and be clothed with humility: for -God resisteth the proud, and giveth grace to the humble. - -5:6 Humble yourselves therefore under the mighty hand of God, that he -may exalt you in due time: 5:7 Casting all your care upon him; for he -careth for you. - -5:8 Be sober, be vigilant; because your adversary the devil, as a -roaring lion, walketh about, seeking whom he may devour: 5:9 Whom -resist stedfast in the faith, knowing that the same afflictions are -accomplished in your brethren that are in the world. - -5:10 But the God of all grace, who hath called us unto his eternal -glory by Christ Jesus, after that ye have suffered a while, make you -perfect, stablish, strengthen, settle you. - -5:11 To him be glory and dominion for ever and ever. Amen. - -5:12 By Silvanus, a faithful brother unto you, as I suppose, I have -written briefly, exhorting, and testifying that this is the true grace -of God wherein ye stand. - -5:13 The church that is at Babylon, elected together with you, -saluteth you; and so doth Marcus my son. - -5:14 Greet ye one another with a kiss of charity. Peace be with you -all that are in Christ Jesus. Amen. - - - - -The Second General Epistle of Peter - - -1:1 Simon Peter, a servant and an apostle of Jesus Christ, to them -that have obtained like precious faith with us through the -righteousness of God and our Saviour Jesus Christ: 1:2 Grace and peace -be multiplied unto you through the knowledge of God, and of Jesus our -Lord, 1:3 According as his divine power hath given unto us all things -that pertain unto life and godliness, through the knowledge of him -that hath called us to glory and virtue: 1:4 Whereby are given unto us -exceeding great and precious promises: that by these ye might be -partakers of the divine nature, having escaped the corruption that is -in the world through lust. - -1:5 And beside this, giving all diligence, add to your faith virtue; -and to virtue knowledge; 1:6 And to knowledge temperance; and to -temperance patience; and to patience godliness; 1:7 And to godliness -brotherly kindness; and to brotherly kindness charity. - -1:8 For if these things be in you, and abound, they make you that ye -shall neither be barren nor unfruitful in the knowledge of our Lord -Jesus Christ. - -1:9 But he that lacketh these things is blind, and cannot see afar -off, and hath forgotten that he was purged from his old sins. - -1:10 Wherefore the rather, brethren, give diligence to make your -calling and election sure: for if ye do these things, ye shall never -fall: 1:11 For so an entrance shall be ministered unto you abundantly -into the everlasting kingdom of our Lord and Saviour Jesus Christ. - -1:12 Wherefore I will not be negligent to put you always in -remembrance of these things, though ye know them, and be established -in the present truth. - -1:13 Yea, I think it meet, as long as I am in this tabernacle, to stir -you up by putting you in remembrance; 1:14 Knowing that shortly I must -put off this my tabernacle, even as our Lord Jesus Christ hath shewed -me. - -1:15 Moreover I will endeavour that ye may be able after my decease to -have these things always in remembrance. - -1:16 For we have not followed cunningly devised fables, when we made -known unto you the power and coming of our Lord Jesus Christ, but were -eyewitnesses of his majesty. - -1:17 For he received from God the Father honour and glory, when there -came such a voice to him from the excellent glory, This is my beloved -Son, in whom I am well pleased. - -1:18 And this voice which came from heaven we heard, when we were with -him in the holy mount. - -1:19 We have also a more sure word of prophecy; whereunto ye do well -that ye take heed, as unto a light that shineth in a dark place, until -the day dawn, and the day star arise in your hearts: 1:20 Knowing this -first, that no prophecy of the scripture is of any private -interpretation. - -1:21 For the prophecy came not in old time by the will of man: but -holy men of God spake as they were moved by the Holy Ghost. - -2:1 But there were false prophets also among the people, even as there -shall be false teachers among you, who privily shall bring in damnable -heresies, even denying the Lord that bought them, and bring upon -themselves swift destruction. - -2:2 And many shall follow their pernicious ways; by reason of whom the -way of truth shall be evil spoken of. - -2:3 And through covetousness shall they with feigned words make -merchandise of you: whose judgment now of a long time lingereth not, -and their damnation slumbereth not. - -2:4 For if God spared not the angels that sinned, but cast them down -to hell, and delivered them into chains of darkness, to be reserved -unto judgment; 2:5 And spared not the old world, but saved Noah the -eighth person, a preacher of righteousness, bringing in the flood upon -the world of the ungodly; 2:6 And turning the cities of Sodom and -Gomorrha into ashes condemned them with an overthrow, making them an -ensample unto those that after should live ungodly; 2:7 And delivered -just Lot, vexed with the filthy conversation of the wicked: 2:8 (For -that righteous man dwelling among them, in seeing and hearing, vexed -his righteous soul from day to day with their unlawful deeds;) 2:9 The -Lord knoweth how to deliver the godly out of temptations, and to -reserve the unjust unto the day of judgment to be punished: 2:10 But -chiefly them that walk after the flesh in the lust of uncleanness, and -despise government. Presumptuous are they, selfwilled, they are not -afraid to speak evil of dignities. - -2:11 Whereas angels, which are greater in power and might, bring not -railing accusation against them before the Lord. - -2:12 But these, as natural brute beasts, made to be taken and -destroyed, speak evil of the things that they understand not; and -shall utterly perish in their own corruption; 2:13 And shall receive -the reward of unrighteousness, as they that count it pleasure to riot -in the day time. Spots they are and blemishes, sporting themselves -with their own deceivings while they feast with you; 2:14 Having eyes -full of adultery, and that cannot cease from sin; beguiling unstable -souls: an heart they have exercised with covetous practices; cursed -children: 2:15 Which have forsaken the right way, and are gone astray, -following the way of Balaam the son of Bosor, who loved the wages of -unrighteousness; 2:16 But was rebuked for his iniquity: the dumb ass -speaking with man's voice forbad the madness of the prophet. - -2:17 These are wells without water, clouds that are carried with a -tempest; to whom the mist of darkness is reserved for ever. - -2:18 For when they speak great swelling words of vanity, they allure -through the lusts of the flesh, through much wantonness, those that -were clean escaped from them who live in error. - -2:19 While they promise them liberty, they themselves are the servants -of corruption: for of whom a man is overcome, of the same is he -brought in bondage. - -2:20 For if after they have escaped the pollutions of the world -through the knowledge of the Lord and Saviour Jesus Christ, they are -again entangled therein, and overcome, the latter end is worse with -them than the beginning. - -2:21 For it had been better for them not to have known the way of -righteousness, than, after they have known it, to turn from the holy -commandment delivered unto them. - -2:22 But it is happened unto them according to the true proverb, The -dog is turned to his own vomit again; and the sow that was washed to -her wallowing in the mire. - -3:1 This second epistle, beloved, I now write unto you; in both which -I stir up your pure minds by way of remembrance: 3:2 That ye may be -mindful of the words which were spoken before by the holy prophets, -and of the commandment of us the apostles of the Lord and Saviour: 3:3 -Knowing this first, that there shall come in the last days scoffers, -walking after their own lusts, 3:4 And saying, Where is the promise of -his coming? for since the fathers fell asleep, all things continue as -they were from the beginning of the creation. - -3:5 For this they willingly are ignorant of, that by the word of God -the heavens were of old, and the earth standing out of the water and -in the water: 3:6 Whereby the world that then was, being overflowed -with water, perished: 3:7 But the heavens and the earth, which are -now, by the same word are kept in store, reserved unto fire against -the day of judgment and perdition of ungodly men. - -3:8 But, beloved, be not ignorant of this one thing, that one day is -with the Lord as a thousand years, and a thousand years as one day. - -3:9 The Lord is not slack concerning his promise, as some men count -slackness; but is longsuffering to us-ward, not willing that any -should perish, but that all should come to repentance. - -3:10 But the day of the Lord will come as a thief in the night; in the -which the heavens shall pass away with a great noise, and the elements -shall melt with fervent heat, the earth also and the works that are -therein shall be burned up. - -3:11 Seeing then that all these things shall be dissolved, what manner -of persons ought ye to be in all holy conversation and godliness, 3:12 -Looking for and hasting unto the coming of the day of God, wherein the -heavens being on fire shall be dissolved, and the elements shall melt -with fervent heat? 3:13 Nevertheless we, according to his promise, -look for new heavens and a new earth, wherein dwelleth righteousness. - -3:14 Wherefore, beloved, seeing that ye look for such things, be -diligent that ye may be found of him in peace, without spot, and -blameless. - -3:15 And account that the longsuffering of our Lord is salvation; even -as our beloved brother Paul also according to the wisdom given unto -him hath written unto you; 3:16 As also in all his epistles, speaking -in them of these things; in which are some things hard to be -understood, which they that are unlearned and unstable wrest, as they -do also the other scriptures, unto their own destruction. - -3:17 Ye therefore, beloved, seeing ye know these things before, beware -lest ye also, being led away with the error of the wicked, fall from -your own stedfastness. - -3:18 But grow in grace, and in the knowledge of our Lord and Saviour -Jesus Christ. To him be glory both now and for ever. Amen. - - - - -The First Epistle General of John - - -1:1 That which was from the beginning, which we have heard, which we -have seen with our eyes, which we have looked upon, and our hands have -handled, of the Word of life; 1:2 (For the life was manifested, and we -have seen it, and bear witness, and shew unto you that eternal life, -which was with the Father, and was manifested unto us;) 1:3 That which -we have seen and heard declare we unto you, that ye also may have -fellowship with us: and truly our fellowship is with the Father, and -with his Son Jesus Christ. - -1:4 And these things write we unto you, that your joy may be full. - -1:5 This then is the message which we have heard of him, and declare -unto you, that God is light, and in him is no darkness at all. - -1:6 If we say that we have fellowship with him, and walk in darkness, -we lie, and do not the truth: 1:7 But if we walk in the light, as he -is in the light, we have fellowship one with another, and the blood of -Jesus Christ his Son cleanseth us from all sin. - -1:8 If we say that we have no sin, we deceive ourselves, and the truth -is not in us. - -1:9 If we confess our sins, he is faithful and just to forgive us our -sins, and to cleanse us from all unrighteousness. - -1:10 If we say that we have not sinned, we make him a liar, and his -word is not in us. - -2:1 My little children, these things write I unto you, that ye sin -not. - -And if any man sin, we have an advocate with the Father, Jesus Christ -the righteous: 2:2 And he is the propitiation for our sins: and not -for our's only, but also for the sins of the whole world. - -2:3 And hereby we do know that we know him, if we keep his -commandments. - -2:4 He that saith, I know him, and keepeth not his commandments, is a -liar, and the truth is not in him. - -2:5 But whoso keepeth his word, in him verily is the love of God -perfected: hereby know we that we are in him. - -2:6 He that saith he abideth in him ought himself also so to walk, -even as he walked. - -2:7 Brethren, I write no new commandment unto you, but an old -commandment which ye had from the beginning. The old commandment is -the word which ye have heard from the beginning. - -2:8 Again, a new commandment I write unto you, which thing is true in -him and in you: because the darkness is past, and the true light now -shineth. - -2:9 He that saith he is in the light, and hateth his brother, is in -darkness even until now. - -2:10 He that loveth his brother abideth in the light, and there is -none occasion of stumbling in him. - -2:11 But he that hateth his brother is in darkness, and walketh in -darkness, and knoweth not whither he goeth, because that darkness hath -blinded his eyes. - -2:12 I write unto you, little children, because your sins are forgiven -you for his name's sake. - -2:13 I write unto you, fathers, because ye have known him that is from -the beginning. I write unto you, young men, because ye have overcome -the wicked one. I write unto you, little children, because ye have -known the Father. - -2:14 I have written unto you, fathers, because ye have known him that -is from the beginning. I have written unto you, young men, because ye -are strong, and the word of God abideth in you, and ye have overcome -the wicked one. - -2:15 Love not the world, neither the things that are in the world. If -any man love the world, the love of the Father is not in him. - -2:16 For all that is in the world, the lust of the flesh, and the lust -of the eyes, and the pride of life, is not of the Father, but is of -the world. - -2:17 And the world passeth away, and the lust thereof: but he that -doeth the will of God abideth for ever. - -2:18 Little children, it is the last time: and as ye have heard that -antichrist shall come, even now are there many antichrists; whereby we -know that it is the last time. - -2:19 They went out from us, but they were not of us; for if they had -been of us, they would no doubt have continued with us: but they went -out, that they might be made manifest that they were not all of us. - -2:20 But ye have an unction from the Holy One, and ye know all things. - -2:21 I have not written unto you because ye know not the truth, but -because ye know it, and that no lie is of the truth. - -2:22 Who is a liar but he that denieth that Jesus is the Christ? He is -antichrist, that denieth the Father and the Son. - -2:23 Whosoever denieth the Son, the same hath not the Father: he that -acknowledgeth the Son hath the Father also. - -2:24 Let that therefore abide in you, which ye have heard from the -beginning. If that which ye have heard from the beginning shall remain -in you, ye also shall continue in the Son, and in the Father. - -2:25 And this is the promise that he hath promised us, even eternal -life. - -2:26 These things have I written unto you concerning them that seduce -you. - -2:27 But the anointing which ye have received of him abideth in you, -and ye need not that any man teach you: but as the same anointing -teacheth you of all things, and is truth, and is no lie, and even as -it hath taught you, ye shall abide in him. - -2:28 And now, little children, abide in him; that, when he shall -appear, we may have confidence, and not be ashamed before him at his -coming. - -2:29 If ye know that he is righteous, ye know that every one that -doeth righteousness is born of him. - -3:1 Behold, what manner of love the Father hath bestowed upon us, that -we should be called the sons of God: therefore the world knoweth us -not, because it knew him not. - -3:2 Beloved, now are we the sons of God, and it doth not yet appear -what we shall be: but we know that, when he shall appear, we shall be -like him; for we shall see him as he is. - -3:3 And every man that hath this hope in him purifieth himself, even -as he is pure. - -3:4 Whosoever committeth sin transgresseth also the law: for sin is -the transgression of the law. - -3:5 And ye know that he was manifested to take away our sins; and in -him is no sin. - -3:6 Whosoever abideth in him sinneth not: whosoever sinneth hath not -seen him, neither known him. - -3:7 Little children, let no man deceive you: he that doeth -righteousness is righteous, even as he is righteous. - -3:8 He that committeth sin is of the devil; for the devil sinneth from -the beginning. For this purpose the Son of God was manifested, that he -might destroy the works of the devil. - -3:9 Whosoever is born of God doth not commit sin; for his seed -remaineth in him: and he cannot sin, because he is born of God. - -3:10 In this the children of God are manifest, and the children of the -devil: whosoever doeth not righteousness is not of God, neither he -that loveth not his brother. - -3:11 For this is the message that ye heard from the beginning, that we -should love one another. - -3:12 Not as Cain, who was of that wicked one, and slew his brother. -And wherefore slew he him? Because his own works were evil, and his -brother's righteous. - -3:13 Marvel not, my brethren, if the world hate you. - -3:14 We know that we have passed from death unto life, because we love -the brethren. He that loveth not his brother abideth in death. - -3:15 Whosoever hateth his brother is a murderer: and ye know that no -murderer hath eternal life abiding in him. - -3:16 Hereby perceive we the love of God, because he laid down his life -for us: and we ought to lay down our lives for the brethren. - -3:17 But whoso hath this world's good, and seeth his brother have -need, and shutteth up his bowels of compassion from him, how dwelleth -the love of God in him? 3:18 My little children, let us not love in -word, neither in tongue; but in deed and in truth. - -3:19 And hereby we know that we are of the truth, and shall assure our -hearts before him. - -3:20 For if our heart condemn us, God is greater than our heart, and -knoweth all things. - -3:21 Beloved, if our heart condemn us not, then have we confidence -toward God. - -3:22 And whatsoever we ask, we receive of him, because we keep his -commandments, and do those things that are pleasing in his sight. - -3:23 And this is his commandment, That we should believe on the name -of his Son Jesus Christ, and love one another, as he gave us -commandment. - -3:24 And he that keepeth his commandments dwelleth in him, and he in -him. - -And hereby we know that he abideth in us, by the Spirit which he hath -given us. - -4:1 Beloved, believe not every spirit, but try the spirits whether -they are of God: because many false prophets are gone out into the -world. - -4:2 Hereby know ye the Spirit of God: Every spirit that confesseth -that Jesus Christ is come in the flesh is of God: 4:3 And every spirit -that confesseth not that Jesus Christ is come in the flesh is not of -God: and this is that spirit of antichrist, whereof ye have heard that -it should come; and even now already is it in the world. - -4:4 Ye are of God, little children, and have overcome them: because -greater is he that is in you, than he that is in the world. - -4:5 They are of the world: therefore speak they of the world, and the -world heareth them. - -4:6 We are of God: he that knoweth God heareth us; he that is not of -God heareth not us. Hereby know we the spirit of truth, and the spirit -of error. - -4:7 Beloved, let us love one another: for love is of God; and every -one that loveth is born of God, and knoweth God. - -4:8 He that loveth not knoweth not God; for God is love. - -4:9 In this was manifested the love of God toward us, because that God -sent his only begotten Son into the world, that we might live through -him. - -4:10 Herein is love, not that we loved God, but that he loved us, and -sent his Son to be the propitiation for our sins. - -4:11 Beloved, if God so loved us, we ought also to love one another. - -4:12 No man hath seen God at any time. If we love one another, God -dwelleth in us, and his love is perfected in us. - -4:13 Hereby know we that we dwell in him, and he in us, because he -hath given us of his Spirit. - -4:14 And we have seen and do testify that the Father sent the Son to -be the Saviour of the world. - -4:15 Whosoever shall confess that Jesus is the Son of God, God -dwelleth in him, and he in God. - -4:16 And we have known and believed the love that God hath to us. God -is love; and he that dwelleth in love dwelleth in God, and God in him. - -4:17 Herein is our love made perfect, that we may have boldness in the -day of judgment: because as he is, so are we in this world. - -4:18 There is no fear in love; but perfect love casteth out fear: -because fear hath torment. He that feareth is not made perfect in -love. - -4:19 We love him, because he first loved us. - -4:20 If a man say, I love God, and hateth his brother, he is a liar: -for he that loveth not his brother whom he hath seen, how can he love -God whom he hath not seen? 4:21 And this commandment have we from -him, That he who loveth God love his brother also. - -5:1 Whosoever believeth that Jesus is the Christ is born of God: and -every one that loveth him that begat loveth him also that is begotten -of him. - -5:2 By this we know that we love the children of God, when we love -God, and keep his commandments. - -5:3 For this is the love of God, that we keep his commandments: and -his commandments are not grievous. - -5:4 For whatsoever is born of God overcometh the world: and this is -the victory that overcometh the world, even our faith. - -5:5 Who is he that overcometh the world, but he that believeth that -Jesus is the Son of God? 5:6 This is he that came by water and blood, -even Jesus Christ; not by water only, but by water and blood. And it -is the Spirit that beareth witness, because the Spirit is truth. - -5:7 For there are three that bear record in heaven, the Father, the -Word, and the Holy Ghost: and these three are one. - -5:8 And there are three that bear witness in earth, the Spirit, and -the water, and the blood: and these three agree in one. - -5:9 If we receive the witness of men, the witness of God is greater: -for this is the witness of God which he hath testified of his Son. - -5:10 He that believeth on the Son of God hath the witness in himself: -he that believeth not God hath made him a liar; because he believeth -not the record that God gave of his Son. - -5:11 And this is the record, that God hath given to us eternal life, -and this life is in his Son. - -5:12 He that hath the Son hath life; and he that hath not the Son of -God hath not life. - -5:13 These things have I written unto you that believe on the name of -the Son of God; that ye may know that ye have eternal life, and that -ye may believe on the name of the Son of God. - -5:14 And this is the confidence that we have in him, that, if we ask -any thing according to his will, he heareth us: 5:15 And if we know -that he hear us, whatsoever we ask, we know that we have the petitions -that we desired of him. - -5:16 If any man see his brother sin a sin which is not unto death, he -shall ask, and he shall give him life for them that sin not unto -death. There is a sin unto death: I do not say that he shall pray for -it. - -5:17 All unrighteousness is sin: and there is a sin not unto death. - -5:18 We know that whosoever is born of God sinneth not; but he that is -begotten of God keepeth himself, and that wicked one toucheth him not. - -5:19 And we know that we are of God, and the whole world lieth in -wickedness. - -5:20 And we know that the Son of God is come, and hath given us an -understanding, that we may know him that is true, and we are in him -that is true, even in his Son Jesus Christ. This is the true God, and -eternal life. - -5:21 Little children, keep yourselves from idols. Amen. - - - - -The Second Epistle General of John - - -1:1 The elder unto the elect lady and her children, whom I love in -the truth; and not I only, but also all they that have known the -truth; 1:2 For the truth's sake, which dwelleth in us, and shall be -with us for ever. - -1:3 Grace be with you, mercy, and peace, from God the Father, and from -the Lord Jesus Christ, the Son of the Father, in truth and love. - -1:4 I rejoiced greatly that I found of thy children walking in truth, -as we have received a commandment from the Father. - -1:5 And now I beseech thee, lady, not as though I wrote a new -commandment unto thee, but that which we had from the beginning, that -we love one another. - -1:6 And this is love, that we walk after his commandments. This is the -commandment, That, as ye have heard from the beginning, ye should walk -in it. - -1:7 For many deceivers are entered into the world, who confess not -that Jesus Christ is come in the flesh. This is a deceiver and an -antichrist. - -1:8 Look to yourselves, that we lose not those things which we have -wrought, but that we receive a full reward. - -1:9 Whosoever transgresseth, and abideth not in the doctrine of -Christ, hath not God. He that abideth in the doctrine of Christ, he -hath both the Father and the Son. - -1:10 If there come any unto you, and bring not this doctrine, receive -him not into your house, neither bid him God speed: 1:11 For he that -biddeth him God speed is partaker of his evil deeds. - -1:12 Having many things to write unto you, I would not write with -paper and ink: but I trust to come unto you, and speak face to face, -that our joy may be full. - -1:13 The children of thy elect sister greet thee. Amen. - - - - -The Third Epistle General of John - - -1:1 The elder unto the wellbeloved Gaius, whom I love in the truth. - -1:2 Beloved, I wish above all things that thou mayest prosper and be -in health, even as thy soul prospereth. - -1:3 For I rejoiced greatly, when the brethren came and testified of -the truth that is in thee, even as thou walkest in the truth. - -1:4 I have no greater joy than to hear that my children walk in truth. - -1:5 Beloved, thou doest faithfully whatsoever thou doest to the -brethren, and to strangers; 1:6 Which have borne witness of thy -charity before the church: whom if thou bring forward on their journey -after a godly sort, thou shalt do well: 1:7 Because that for his -name's sake they went forth, taking nothing of the Gentiles. - -1:8 We therefore ought to receive such, that we might be fellowhelpers -to the truth. - -1:9 I wrote unto the church: but Diotrephes, who loveth to have the -preeminence among them, receiveth us not. - -1:10 Wherefore, if I come, I will remember his deeds which he doeth, -prating against us with malicious words: and not content therewith, -neither doth he himself receive the brethren, and forbiddeth them that -would, and casteth them out of the church. - -1:11 Beloved, follow not that which is evil, but that which is good. -He that doeth good is of God: but he that doeth evil hath not seen -God. - -1:12 Demetrius hath good report of all men, and of the truth itself: -yea, and we also bear record; and ye know that our record is true. - -1:13 I had many things to write, but I will not with ink and pen write -unto thee: 1:14 But I trust I shall shortly see thee, and we shall -speak face to face. Peace be to thee. Our friends salute thee. Greet -the friends by name. - - - - -The General Epistle of Jude - - -1:1 Jude, the servant of Jesus Christ, and brother of James, to them -that are sanctified by God the Father, and preserved in Jesus Christ, -and called: 1:2 Mercy unto you, and peace, and love, be multiplied. - -1:3 Beloved, when I gave all diligence to write unto you of the common -salvation, it was needful for me to write unto you, and exhort you -that ye should earnestly contend for the faith which was once -delivered unto the saints. - -1:4 For there are certain men crept in unawares, who were before of -old ordained to this condemnation, ungodly men, turning the grace of -our God into lasciviousness, and denying the only Lord God, and our -Lord Jesus Christ. - -1:5 I will therefore put you in remembrance, though ye once knew this, -how that the Lord, having saved the people out of the land of Egypt, -afterward destroyed them that believed not. - -1:6 And the angels which kept not their first estate, but left their -own habitation, he hath reserved in everlasting chains under darkness -unto the judgment of the great day. - -1:7 Even as Sodom and Gomorrha, and the cities about them in like -manner, giving themselves over to fornication, and going after strange -flesh, are set forth for an example, suffering the vengeance of -eternal fire. - -1:8 Likewise also these filthy dreamers defile the flesh, despise -dominion, and speak evil of dignities. - -1:9 Yet Michael the archangel, when contending with the devil he -disputed about the body of Moses, durst not bring against him a -railing accusation, but said, The Lord rebuke thee. - -1:10 But these speak evil of those things which they know not: but -what they know naturally, as brute beasts, in those things they -corrupt themselves. - -1:11 Woe unto them! for they have gone in the way of Cain, and ran -greedily after the error of Balaam for reward, and perished in the -gainsaying of Core. - -1:12 These are spots in your feasts of charity, when they feast with -you, feeding themselves without fear: clouds they are without water, -carried about of winds; trees whose fruit withereth, without fruit, -twice dead, plucked up by the roots; 1:13 Raging waves of the sea, -foaming out their own shame; wandering stars, to whom is reserved the -blackness of darkness for ever. - -1:14 And Enoch also, the seventh from Adam, prophesied of these, -saying, Behold, the Lord cometh with ten thousands of his saints, 1:15 -To execute judgment upon all, and to convince all that are ungodly -among them of all their ungodly deeds which they have ungodly -committed, and of all their hard speeches which ungodly sinners have -spoken against him. - -1:16 These are murmurers, complainers, walking after their own lusts; -and their mouth speaketh great swelling words, having men's persons in -admiration because of advantage. - -1:17 But, beloved, remember ye the words which were spoken before of -the apostles of our Lord Jesus Christ; 1:18 How that they told you -there should be mockers in the last time, who should walk after their -own ungodly lusts. - -1:19 These be they who separate themselves, sensual, having not the -Spirit. - -1:20 But ye, beloved, building up yourselves on your most holy faith, -praying in the Holy Ghost, 1:21 Keep yourselves in the love of God, -looking for the mercy of our Lord Jesus Christ unto eternal life. - -1:22 And of some have compassion, making a difference: 1:23 And others -save with fear, pulling them out of the fire; hating even the garment -spotted by the flesh. - -1:24 Now unto him that is able to keep you from falling, and to -present you faultless before the presence of his glory with exceeding -joy, 1:25 To the only wise God our Saviour, be glory and majesty, -dominion and power, both now and ever. Amen. - - - - -The Revelation of Saint John the Devine - - -1:1 The Revelation of Jesus Christ, which God gave unto him, to shew -unto his servants things which must shortly come to pass; and he sent -and signified it by his angel unto his servant John: 1:2 Who bare -record of the word of God, and of the testimony of Jesus Christ, and -of all things that he saw. - -1:3 Blessed is he that readeth, and they that hear the words of this -prophecy, and keep those things which are written therein: for the -time is at hand. - -1:4 John to the seven churches which are in Asia: Grace be unto you, -and peace, from him which is, and which was, and which is to come; and -from the seven Spirits which are before his throne; 1:5 And from Jesus -Christ, who is the faithful witness, and the first begotten of the -dead, and the prince of the kings of the earth. Unto him that loved -us, and washed us from our sins in his own blood, 1:6 And hath made us -kings and priests unto God and his Father; to him be glory and -dominion for ever and ever. Amen. - -1:7 Behold, he cometh with clouds; and every eye shall see him, and -they also which pierced him: and all kindreds of the earth shall wail -because of him. Even so, Amen. - -1:8 I am Alpha and Omega, the beginning and the ending, saith the -Lord, which is, and which was, and which is to come, the Almighty. - -1:9 I John, who also am your brother, and companion in tribulation, -and in the kingdom and patience of Jesus Christ, was in the isle that -is called Patmos, for the word of God, and for the testimony of Jesus -Christ. - -1:10 I was in the Spirit on the Lord's day, and heard behind me a -great voice, as of a trumpet, 1:11 Saying, I am Alpha and Omega, the -first and the last: and, What thou seest, write in a book, and send it -unto the seven churches which are in Asia; unto Ephesus, and unto -Smyrna, and unto Pergamos, and unto Thyatira, and unto Sardis, and -unto Philadelphia, and unto Laodicea. - -1:12 And I turned to see the voice that spake with me. And being -turned, I saw seven golden candlesticks; 1:13 And in the midst of the -seven candlesticks one like unto the Son of man, clothed with a -garment down to the foot, and girt about the paps with a golden -girdle. - -1:14 His head and his hairs were white like wool, as white as snow; -and his eyes were as a flame of fire; 1:15 And his feet like unto fine -brass, as if they burned in a furnace; and his voice as the sound of -many waters. - -1:16 And he had in his right hand seven stars: and out of his mouth -went a sharp twoedged sword: and his countenance was as the sun -shineth in his strength. - -1:17 And when I saw him, I fell at his feet as dead. And he laid his -right hand upon me, saying unto me, Fear not; I am the first and the -last: 1:18 I am he that liveth, and was dead; and, behold, I am alive -for evermore, Amen; and have the keys of hell and of death. - -1:19 Write the things which thou hast seen, and the things which are, -and the things which shall be hereafter; 1:20 The mystery of the seven -stars which thou sawest in my right hand, and the seven golden -candlesticks. The seven stars are the angels of the seven churches: -and the seven candlesticks which thou sawest are the seven churches. - -2:1 Unto the angel of the church of Ephesus write; These things saith -he that holdeth the seven stars in his right hand, who walketh in the -midst of the seven golden candlesticks; 2:2 I know thy works, and thy -labour, and thy patience, and how thou canst not bear them which are -evil: and thou hast tried them which say they are apostles, and are -not, and hast found them liars: 2:3 And hast borne, and hast patience, -and for my name's sake hast laboured, and hast not fainted. - -2:4 Nevertheless I have somewhat against thee, because thou hast left -thy first love. - -2:5 Remember therefore from whence thou art fallen, and repent, and do -the first works; or else I will come unto thee quickly, and will -remove thy candlestick out of his place, except thou repent. - -2:6 But this thou hast, that thou hatest the deeds of the -Nicolaitanes, which I also hate. - -2:7 He that hath an ear, let him hear what the Spirit saith unto the -churches; To him that overcometh will I give to eat of the tree of -life, which is in the midst of the paradise of God. - -2:8 And unto the angel of the church in Smyrna write; These things -saith the first and the last, which was dead, and is alive; 2:9 I know -thy works, and tribulation, and poverty, (but thou art rich) and I -know the blasphemy of them which say they are Jews, and are not, but -are the synagogue of Satan. - -2:10 Fear none of those things which thou shalt suffer: behold, the -devil shall cast some of you into prison, that ye may be tried; and ye -shall have tribulation ten days: be thou faithful unto death, and I -will give thee a crown of life. - -2:11 He that hath an ear, let him hear what the Spirit saith unto the -churches; He that overcometh shall not be hurt of the second death. - -2:12 And to the angel of the church in Pergamos write; These things -saith he which hath the sharp sword with two edges; 2:13 I know thy -works, and where thou dwellest, even where Satan's seat is: and thou -holdest fast my name, and hast not denied my faith, even in those days -wherein Antipas was my faithful martyr, who was slain among you, where -Satan dwelleth. - -2:14 But I have a few things against thee, because thou hast there -them that hold the doctrine of Balaam, who taught Balac to cast a -stumblingblock before the children of Israel, to eat things sacrificed -unto idols, and to commit fornication. - -2:15 So hast thou also them that hold the doctrine of the -Nicolaitanes, which thing I hate. - -2:16 Repent; or else I will come unto thee quickly, and will fight -against them with the sword of my mouth. - -2:17 He that hath an ear, let him hear what the Spirit saith unto the -churches; To him that overcometh will I give to eat of the hidden -manna, and will give him a white stone, and in the stone a new name -written, which no man knoweth saving he that receiveth it. - -2:18 And unto the angel of the church in Thyatira write; These things -saith the Son of God, who hath his eyes like unto a flame of fire, and -his feet are like fine brass; 2:19 I know thy works, and charity, and -service, and faith, and thy patience, and thy works; and the last to -be more than the first. - -2:20 Notwithstanding I have a few things against thee, because thou -sufferest that woman Jezebel, which calleth herself a prophetess, to -teach and to seduce my servants to commit fornication, and to eat -things sacrificed unto idols. - -2:21 And I gave her space to repent of her fornication; and she -repented not. - -2:22 Behold, I will cast her into a bed, and them that commit adultery -with her into great tribulation, except they repent of their deeds. - -2:23 And I will kill her children with death; and all the churches -shall know that I am he which searcheth the reins and hearts: and I -will give unto every one of you according to your works. - -2:24 But unto you I say, and unto the rest in Thyatira, as many as -have not this doctrine, and which have not known the depths of Satan, -as they speak; I will put upon you none other burden. - -2:25 But that which ye have already hold fast till I come. - -2:26 And he that overcometh, and keepeth my works unto the end, to him -will I give power over the nations: 2:27 And he shall rule them with a -rod of iron; as the vessels of a potter shall they be broken to -shivers: even as I received of my Father. - -2:28 And I will give him the morning star. - -2:29 He that hath an ear, let him hear what the Spirit saith unto the -churches. - -3:1 And unto the angel of the church in Sardis write; These things -saith he that hath the seven Spirits of God, and the seven stars; I -know thy works, that thou hast a name that thou livest, and art dead. - -3:2 Be watchful, and strengthen the things which remain, that are -ready to die: for I have not found thy works perfect before God. - -3:3 Remember therefore how thou hast received and heard, and hold -fast, and repent. If therefore thou shalt not watch, I will come on -thee as a thief, and thou shalt not know what hour I will come upon -thee. - -3:4 Thou hast a few names even in Sardis which have not defiled their -garments; and they shall walk with me in white: for they are worthy. - -3:5 He that overcometh, the same shall be clothed in white raiment; -and I will not blot out his name out of the book of life, but I will -confess his name before my Father, and before his angels. - -3:6 He that hath an ear, let him hear what the Spirit saith unto the -churches. - -3:7 And to the angel of the church in Philadelphia write; These things -saith he that is holy, he that is true, he that hath the key of David, -he that openeth, and no man shutteth; and shutteth, and no man -openeth; 3:8 I know thy works: behold, I have set before thee an open -door, and no man can shut it: for thou hast a little strength, and -hast kept my word, and hast not denied my name. - -3:9 Behold, I will make them of the synagogue of Satan, which say they -are Jews, and are not, but do lie; behold, I will make them to come -and worship before thy feet, and to know that I have loved thee. - -3:10 Because thou hast kept the word of my patience, I also will keep -thee from the hour of temptation, which shall come upon all the world, -to try them that dwell upon the earth. - -3:11 Behold, I come quickly: hold that fast which thou hast, that no -man take thy crown. - -3:12 Him that overcometh will I make a pillar in the temple of my God, -and he shall go no more out: and I will write upon him the name of my -God, and the name of the city of my God, which is new Jerusalem, which -cometh down out of heaven from my God: and I will write upon him my -new name. - -3:13 He that hath an ear, let him hear what the Spirit saith unto the -churches. - -3:14 And unto the angel of the church of the Laodiceans write; These -things saith the Amen, the faithful and true witness, the beginning of -the creation of God; 3:15 I know thy works, that thou art neither cold -nor hot: I would thou wert cold or hot. - -3:16 So then because thou art lukewarm, and neither cold nor hot, I -will spue thee out of my mouth. - -3:17 Because thou sayest, I am rich, and increased with goods, and -have need of nothing; and knowest not that thou art wretched, and -miserable, and poor, and blind, and naked: 3:18 I counsel thee to buy -of me gold tried in the fire, that thou mayest be rich; and white -raiment, that thou mayest be clothed, and that the shame of thy -nakedness do not appear; and anoint thine eyes with eyesalve, that -thou mayest see. - -3:19 As many as I love, I rebuke and chasten: be zealous therefore, -and repent. - -3:20 Behold, I stand at the door, and knock: if any man hear my voice, -and open the door, I will come in to him, and will sup with him, and -he with me. - -3:21 To him that overcometh will I grant to sit with me in my throne, -even as I also overcame, and am set down with my Father in his throne. - -3:22 He that hath an ear, let him hear what the Spirit saith unto the -churches. - -4:1 After this I looked, and, behold, a door was opened in heaven: and -the first voice which I heard was as it were of a trumpet talking with -me; which said, Come up hither, and I will shew thee things which must -be hereafter. - -4:2 And immediately I was in the spirit: and, behold, a throne was set -in heaven, and one sat on the throne. - -4:3 And he that sat was to look upon like a jasper and a sardine -stone: and there was a rainbow round about the throne, in sight like -unto an emerald. - -4:4 And round about the throne were four and twenty seats: and upon -the seats I saw four and twenty elders sitting, clothed in white -raiment; and they had on their heads crowns of gold. - -4:5 And out of the throne proceeded lightnings and thunderings and -voices: and there were seven lamps of fire burning before the throne, -which are the seven Spirits of God. - -4:6 And before the throne there was a sea of glass like unto crystal: -and in the midst of the throne, and round about the throne, were four -beasts full of eyes before and behind. - -4:7 And the first beast was like a lion, and the second beast like a -calf, and the third beast had a face as a man, and the fourth beast -was like a flying eagle. - -4:8 And the four beasts had each of them six wings about him; and they -were full of eyes within: and they rest not day and night, saying, -Holy, holy, holy, LORD God Almighty, which was, and is, and is to -come. - -4:9 And when those beasts give glory and honour and thanks to him that -sat on the throne, who liveth for ever and ever, 4:10 The four and -twenty elders fall down before him that sat on the throne, and worship -him that liveth for ever and ever, and cast their crowns before the -throne, saying, 4:11 Thou art worthy, O Lord, to receive glory and -honour and power: for thou hast created all things, and for thy -pleasure they are and were created. - -5:1 And I saw in the right hand of him that sat on the throne a book -written within and on the backside, sealed with seven seals. - -5:2 And I saw a strong angel proclaiming with a loud voice, Who is -worthy to open the book, and to loose the seals thereof? 5:3 And no -man in heaven, nor in earth, neither under the earth, was able to open -the book, neither to look thereon. - -5:4 And I wept much, because no man was found worthy to open and to -read the book, neither to look thereon. - -5:5 And one of the elders saith unto me, Weep not: behold, the Lion of -the tribe of Juda, the Root of David, hath prevailed to open the book, -and to loose the seven seals thereof. - -5:6 And I beheld, and, lo, in the midst of the throne and of the four -beasts, and in the midst of the elders, stood a Lamb as it had been -slain, having seven horns and seven eyes, which are the seven Spirits -of God sent forth into all the earth. - -5:7 And he came and took the book out of the right hand of him that -sat upon the throne. - -5:8 And when he had taken the book, the four beasts and four and -twenty elders fell down before the Lamb, having every one of them -harps, and golden vials full of odours, which are the prayers of -saints. - -5:9 And they sung a new song, saying, Thou art worthy to take the -book, and to open the seals thereof: for thou wast slain, and hast -redeemed us to God by thy blood out of every kindred, and tongue, and -people, and nation; 5:10 And hast made us unto our God kings and -priests: and we shall reign on the earth. - -5:11 And I beheld, and I heard the voice of many angels round about -the throne and the beasts and the elders: and the number of them was -ten thousand times ten thousand, and thousands of thousands; 5:12 -Saying with a loud voice, Worthy is the Lamb that was slain to receive -power, and riches, and wisdom, and strength, and honour, and glory, -and blessing. - -5:13 And every creature which is in heaven, and on the earth, and -under the earth, and such as are in the sea, and all that are in them, -heard I saying, Blessing, and honour, and glory, and power, be unto -him that sitteth upon the throne, and unto the Lamb for ever and ever. - -5:14 And the four beasts said, Amen. And the four and twenty elders -fell down and worshipped him that liveth for ever and ever. - -6:1 And I saw when the Lamb opened one of the seals, and I heard, as -it were the noise of thunder, one of the four beasts saying, Come and -see. - -6:2 And I saw, and behold a white horse: and he that sat on him had a -bow; and a crown was given unto him: and he went forth conquering, and -to conquer. - -6:3 And when he had opened the second seal, I heard the second beast -say, Come and see. - -6:4 And there went out another horse that was red: and power was given -to him that sat thereon to take peace from the earth, and that they -should kill one another: and there was given unto him a great sword. - -6:5 And when he had opened the third seal, I heard the third beast -say, Come and see. And I beheld, and lo a black horse; and he that sat -on him had a pair of balances in his hand. - -6:6 And I heard a voice in the midst of the four beasts say, A measure -of wheat for a penny, and three measures of barley for a penny; and -see thou hurt not the oil and the wine. - -6:7 And when he had opened the fourth seal, I heard the voice of the -fourth beast say, Come and see. - -6:8 And I looked, and behold a pale horse: and his name that sat on -him was Death, and Hell followed with him. And power was given unto -them over the fourth part of the earth, to kill with sword, and with -hunger, and with death, and with the beasts of the earth. - -6:9 And when he had opened the fifth seal, I saw under the altar the -souls of them that were slain for the word of God, and for the -testimony which they held: 6:10 And they cried with a loud voice, -saying, How long, O Lord, holy and true, dost thou not judge and -avenge our blood on them that dwell on the earth? 6:11 And white -robes were given unto every one of them; and it was said unto them, -that they should rest yet for a little season, until their -fellowservants also and their brethren, that should be killed as they -were, should be fulfilled. - -6:12 And I beheld when he had opened the sixth seal, and, lo, there -was a great earthquake; and the sun became black as sackcloth of hair, -and the moon became as blood; 6:13 And the stars of heaven fell unto -the earth, even as a fig tree casteth her untimely figs, when she is -shaken of a mighty wind. - -6:14 And the heaven departed as a scroll when it is rolled together; -and every mountain and island were moved out of their places. - -6:15 And the kings of the earth, and the great men, and the rich men, -and the chief captains, and the mighty men, and every bondman, and -every free man, hid themselves in the dens and in the rocks of the -mountains; 6:16 And said to the mountains and rocks, Fall on us, and -hide us from the face of him that sitteth on the throne, and from the -wrath of the Lamb: 6:17 For the great day of his wrath is come; and -who shall be able to stand? 7:1 And after these things I saw four -angels standing on the four corners of the earth, holding the four -winds of the earth, that the wind should not blow on the earth, nor on -the sea, nor on any tree. - -7:2 And I saw another angel ascending from the east, having the seal -of the living God: and he cried with a loud voice to the four angels, -to whom it was given to hurt the earth and the sea, 7:3 Saying, Hurt -not the earth, neither the sea, nor the trees, till we have sealed the -servants of our God in their foreheads. - -7:4 And I heard the number of them which were sealed: and there were -sealed an hundred and forty and four thousand of all the tribes of the -children of Israel. - -7:5 Of the tribe of Juda were sealed twelve thousand. Of the tribe of -Reuben were sealed twelve thousand. Of the tribe of Gad were sealed -twelve thousand. - -7:6 Of the tribe of Aser were sealed twelve thousand. Of the tribe of -Nephthalim were sealed twelve thousand. Of the tribe of Manasses were -sealed twelve thousand. - -7:7 Of the tribe of Simeon were sealed twelve thousand. Of the tribe -of Levi were sealed twelve thousand. Of the tribe of Issachar were -sealed twelve thousand. - -7:8 Of the tribe of Zabulon were sealed twelve thousand. Of the tribe -of Joseph were sealed twelve thousand. Of the tribe of Benjamin were -sealed twelve thousand. - -7:9 After this I beheld, and, lo, a great multitude, which no man -could number, of all nations, and kindreds, and people, and tongues, -stood before the throne, and before the Lamb, clothed with white -robes, and palms in their hands; 7:10 And cried with a loud voice, -saying, Salvation to our God which sitteth upon the throne, and unto -the Lamb. - -7:11 And all the angels stood round about the throne, and about the -elders and the four beasts, and fell before the throne on their faces, -and worshipped God, 7:12 Saying, Amen: Blessing, and glory, and -wisdom, and thanksgiving, and honour, and power, and might, be unto -our God for ever and ever. Amen. - -7:13 And one of the elders answered, saying unto me, What are these -which are arrayed in white robes? and whence came they? 7:14 And I -said unto him, Sir, thou knowest. And he said to me, These are they -which came out of great tribulation, and have washed their robes, and -made them white in the blood of the Lamb. - -7:15 Therefore are they before the throne of God, and serve him day -and night in his temple: and he that sitteth on the throne shall dwell -among them. - -7:16 They shall hunger no more, neither thirst any more; neither shall -the sun light on them, nor any heat. - -7:17 For the Lamb which is in the midst of the throne shall feed them, -and shall lead them unto living fountains of waters: and God shall -wipe away all tears from their eyes. - -8:1 And when he had opened the seventh seal, there was silence in -heaven about the space of half an hour. - -8:2 And I saw the seven angels which stood before God; and to them -were given seven trumpets. - -8:3 And another angel came and stood at the altar, having a golden -censer; and there was given unto him much incense, that he should -offer it with the prayers of all saints upon the golden altar which -was before the throne. - -8:4 And the smoke of the incense, which came with the prayers of the -saints, ascended up before God out of the angel's hand. - -8:5 And the angel took the censer, and filled it with fire of the -altar, and cast it into the earth: and there were voices, and -thunderings, and lightnings, and an earthquake. - -8:6 And the seven angels which had the seven trumpets prepared -themselves to sound. - -8:7 The first angel sounded, and there followed hail and fire mingled -with blood, and they were cast upon the earth: and the third part of -trees was burnt up, and all green grass was burnt up. - -8:8 And the second angel sounded, and as it were a great mountain -burning with fire was cast into the sea: and the third part of the sea -became blood; 8:9 And the third part of the creatures which were in -the sea, and had life, died; and the third part of the ships were -destroyed. - -8:10 And the third angel sounded, and there fell a great star from -heaven, burning as it were a lamp, and it fell upon the third part of -the rivers, and upon the fountains of waters; 8:11 And the name of the -star is called Wormwood: and the third part of the waters became -wormwood; and many men died of the waters, because they were made -bitter. - -8:12 And the fourth angel sounded, and the third part of the sun was -smitten, and the third part of the moon, and the third part of the -stars; so as the third part of them was darkened, and the day shone -not for a third part of it, and the night likewise. - -8:13 And I beheld, and heard an angel flying through the midst of -heaven, saying with a loud voice, Woe, woe, woe, to the inhabiters of -the earth by reason of the other voices of the trumpet of the three -angels, which are yet to sound! 9:1 And the fifth angel sounded, and -I saw a star fall from heaven unto the earth: and to him was given the -key of the bottomless pit. - -9:2 And he opened the bottomless pit; and there arose a smoke out of -the pit, as the smoke of a great furnace; and the sun and the air were -darkened by reason of the smoke of the pit. - -9:3 And there came out of the smoke locusts upon the earth: and unto -them was given power, as the scorpions of the earth have power. - -9:4 And it was commanded them that they should not hurt the grass of -the earth, neither any green thing, neither any tree; but only those -men which have not the seal of God in their foreheads. - -9:5 And to them it was given that they should not kill them, but that -they should be tormented five months: and their torment was as the -torment of a scorpion, when he striketh a man. - -9:6 And in those days shall men seek death, and shall not find it; and -shall desire to die, and death shall flee from them. - -9:7 And the shapes of the locusts were like unto horses prepared unto -battle; and on their heads were as it were crowns like gold, and their -faces were as the faces of men. - -9:8 And they had hair as the hair of women, and their teeth were as -the teeth of lions. - -9:9 And they had breastplates, as it were breastplates of iron; and -the sound of their wings was as the sound of chariots of many horses -running to battle. - -9:10 And they had tails like unto scorpions, and there were stings in -their tails: and their power was to hurt men five months. - -9:11 And they had a king over them, which is the angel of the -bottomless pit, whose name in the Hebrew tongue is Abaddon, but in the -Greek tongue hath his name Apollyon. - -9:12 One woe is past; and, behold, there come two woes more hereafter. - -9:13 And the sixth angel sounded, and I heard a voice from the four -horns of the golden altar which is before God, 9:14 Saying to the -sixth angel which had the trumpet, Loose the four angels which are -bound in the great river Euphrates. - -9:15 And the four angels were loosed, which were prepared for an hour, -and a day, and a month, and a year, for to slay the third part of men. - -9:16 And the number of the army of the horsemen were two hundred -thousand thousand: and I heard the number of them. - -9:17 And thus I saw the horses in the vision, and them that sat on -them, having breastplates of fire, and of jacinth, and brimstone: and -the heads of the horses were as the heads of lions; and out of their -mouths issued fire and smoke and brimstone. - -9:18 By these three was the third part of men killed, by the fire, and -by the smoke, and by the brimstone, which issued out of their mouths. - -9:19 For their power is in their mouth, and in their tails: for their -tails were like unto serpents, and had heads, and with them they do -hurt. - -9:20 And the rest of the men which were not killed by these plagues -yet repented not of the works of their hands, that they should not -worship devils, and idols of gold, and silver, and brass, and stone, -and of wood: which neither can see, nor hear, nor walk: 9:21 Neither -repented they of their murders, nor of their sorceries, nor of their -fornication, nor of their thefts. - -10:1 And I saw another mighty angel come down from heaven, clothed -with a cloud: and a rainbow was upon his head, and his face was as it -were the sun, and his feet as pillars of fire: 10:2 And he had in his -hand a little book open: and he set his right foot upon the sea, and -his left foot on the earth, 10:3 And cried with a loud voice, as when -a lion roareth: and when he had cried, seven thunders uttered their -voices. - -10:4 And when the seven thunders had uttered their voices, I was about -to write: and I heard a voice from heaven saying unto me, Seal up -those things which the seven thunders uttered, and write them not. - -10:5 And the angel which I saw stand upon the sea and upon the earth -lifted up his hand to heaven, 10:6 And sware by him that liveth for -ever and ever, who created heaven, and the things that therein are, -and the earth, and the things that therein are, and the sea, and the -things which are therein, that there should be time no longer: 10:7 -But in the days of the voice of the seventh angel, when he shall begin -to sound, the mystery of God should be finished, as he hath declared -to his servants the prophets. - -10:8 And the voice which I heard from heaven spake unto me again, and -said, Go and take the little book which is open in the hand of the -angel which standeth upon the sea and upon the earth. - -10:9 And I went unto the angel, and said unto him, Give me the little -book. And he said unto me, Take it, and eat it up; and it shall make -thy belly bitter, but it shall be in thy mouth sweet as honey. - -10:10 And I took the little book out of the angel's hand, and ate it -up; and it was in my mouth sweet as honey: and as soon as I had eaten -it, my belly was bitter. - -10:11 And he said unto me, Thou must prophesy again before many -peoples, and nations, and tongues, and kings. - -11:1 And there was given me a reed like unto a rod: and the angel -stood, saying, Rise, and measure the temple of God, and the altar, and -them that worship therein. - -11:2 But the court which is without the temple leave out, and measure -it not; for it is given unto the Gentiles: and the holy city shall -they tread under foot forty and two months. - -11:3 And I will give power unto my two witnesses, and they shall -prophesy a thousand two hundred and threescore days, clothed in -sackcloth. - -11:4 These are the two olive trees, and the two candlesticks standing -before the God of the earth. - -11:5 And if any man will hurt them, fire proceedeth out of their -mouth, and devoureth their enemies: and if any man will hurt them, he -must in this manner be killed. - -11:6 These have power to shut heaven, that it rain not in the days of -their prophecy: and have power over waters to turn them to blood, and -to smite the earth with all plagues, as often as they will. - -11:7 And when they shall have finished their testimony, the beast that -ascendeth out of the bottomless pit shall make war against them, and -shall overcome them, and kill them. - -11:8 And their dead bodies shall lie in the street of the great city, -which spiritually is called Sodom and Egypt, where also our Lord was -crucified. - -11:9 And they of the people and kindreds and tongues and nations shall -see their dead bodies three days and an half, and shall not suffer -their dead bodies to be put in graves. - -11:10 And they that dwell upon the earth shall rejoice over them, and -make merry, and shall send gifts one to another; because these two -prophets tormented them that dwelt on the earth. - -11:11 And after three days and an half the spirit of life from God -entered into them, and they stood upon their feet; and great fear fell -upon them which saw them. - -11:12 And they heard a great voice from heaven saying unto them, Come -up hither. And they ascended up to heaven in a cloud; and their -enemies beheld them. - -11:13 And the same hour was there a great earthquake, and the tenth -part of the city fell, and in the earthquake were slain of men seven -thousand: and the remnant were affrighted, and gave glory to the God -of heaven. - -11:14 The second woe is past; and, behold, the third woe cometh -quickly. - -11:15 And the seventh angel sounded; and there were great voices in -heaven, saying, The kingdoms of this world are become the kingdoms of -our Lord, and of his Christ; and he shall reign for ever and ever. - -11:16 And the four and twenty elders, which sat before God on their -seats, fell upon their faces, and worshipped God, 11:17 Saying, We -give thee thanks, O LORD God Almighty, which art, and wast, and art to -come; because thou hast taken to thee thy great power, and hast -reigned. - -11:18 And the nations were angry, and thy wrath is come, and the time -of the dead, that they should be judged, and that thou shouldest give -reward unto thy servants the prophets, and to the saints, and them -that fear thy name, small and great; and shouldest destroy them which -destroy the earth. - -11:19 And the temple of God was opened in heaven, and there was seen -in his temple the ark of his testament: and there were lightnings, and -voices, and thunderings, and an earthquake, and great hail. - -12:1 And there appeared a great wonder in heaven; a woman clothed with -the sun, and the moon under her feet, and upon her head a crown of -twelve stars: 12:2 And she being with child cried, travailing in -birth, and pained to be delivered. - -12:3 And there appeared another wonder in heaven; and behold a great -red dragon, having seven heads and ten horns, and seven crowns upon -his heads. - -12:4 And his tail drew the third part of the stars of heaven, and did -cast them to the earth: and the dragon stood before the woman which -was ready to be delivered, for to devour her child as soon as it was -born. - -12:5 And she brought forth a man child, who was to rule all nations -with a rod of iron: and her child was caught up unto God, and to his -throne. - -12:6 And the woman fled into the wilderness, where she hath a place -prepared of God, that they should feed her there a thousand two -hundred and threescore days. - -12:7 And there was war in heaven: Michael and his angels fought -against the dragon; and the dragon fought and his angels, 12:8 And -prevailed not; neither was their place found any more in heaven. - -12:9 And the great dragon was cast out, that old serpent, called the -Devil, and Satan, which deceiveth the whole world: he was cast out -into the earth, and his angels were cast out with him. - -12:10 And I heard a loud voice saying in heaven, Now is come -salvation, and strength, and the kingdom of our God, and the power of -his Christ: for the accuser of our brethren is cast down, which -accused them before our God day and night. - -12:11 And they overcame him by the blood of the Lamb, and by the word -of their testimony; and they loved not their lives unto the death. - -12:12 Therefore rejoice, ye heavens, and ye that dwell in them. Woe to -the inhabiters of the earth and of the sea! for the devil is come down -unto you, having great wrath, because he knoweth that he hath but a -short time. - -12:13 And when the dragon saw that he was cast unto the earth, he -persecuted the woman which brought forth the man child. - -12:14 And to the woman were given two wings of a great eagle, that she -might fly into the wilderness, into her place, where she is nourished -for a time, and times, and half a time, from the face of the serpent. - -12:15 And the serpent cast out of his mouth water as a flood after the -woman, that he might cause her to be carried away of the flood. - -12:16 And the earth helped the woman, and the earth opened her mouth, -and swallowed up the flood which the dragon cast out of his mouth. - -12:17 And the dragon was wroth with the woman, and went to make war -with the remnant of her seed, which keep the commandments of God, and -have the testimony of Jesus Christ. - -13:1 And I stood upon the sand of the sea, and saw a beast rise up out -of the sea, having seven heads and ten horns, and upon his horns ten -crowns, and upon his heads the name of blasphemy. - -13:2 And the beast which I saw was like unto a leopard, and his feet -were as the feet of a bear, and his mouth as the mouth of a lion: and -the dragon gave him his power, and his seat, and great authority. - -13:3 And I saw one of his heads as it were wounded to death; and his -deadly wound was healed: and all the world wondered after the beast. - -13:4 And they worshipped the dragon which gave power unto the beast: -and they worshipped the beast, saying, Who is like unto the beast? who -is able to make war with him? 13:5 And there was given unto him a -mouth speaking great things and blasphemies; and power was given unto -him to continue forty and two months. - -13:6 And he opened his mouth in blasphemy against God, to blaspheme -his name, and his tabernacle, and them that dwell in heaven. - -13:7 And it was given unto him to make war with the saints, and to -overcome them: and power was given him over all kindreds, and tongues, -and nations. - -13:8 And all that dwell upon the earth shall worship him, whose names -are not written in the book of life of the Lamb slain from the -foundation of the world. - -13:9 If any man have an ear, let him hear. - -13:10 He that leadeth into captivity shall go into captivity: he that -killeth with the sword must be killed with the sword. Here is the -patience and the faith of the saints. - -13:11 And I beheld another beast coming up out of the earth; and he -had two horns like a lamb, and he spake as a dragon. - -13:12 And he exerciseth all the power of the first beast before him, -and causeth the earth and them which dwell therein to worship the -first beast, whose deadly wound was healed. - -13:13 And he doeth great wonders, so that he maketh fire come down -from heaven on the earth in the sight of men, 13:14 And deceiveth them -that dwell on the earth by the means of those miracles which he had -power to do in the sight of the beast; saying to them that dwell on -the earth, that they should make an image to the beast, which had the -wound by a sword, and did live. - -13:15 And he had power to give life unto the image of the beast, that -the image of the beast should both speak, and cause that as many as -would not worship the image of the beast should be killed. - -13:16 And he causeth all, both small and great, rich and poor, free -and bond, to receive a mark in their right hand, or in their -foreheads: 13:17 And that no man might buy or sell, save he that had -the mark, or the name of the beast, or the number of his name. - -13:18 Here is wisdom. Let him that hath understanding count the number -of the beast: for it is the number of a man; and his number is Six -hundred threescore and six. - -14:1 And I looked, and, lo, a Lamb stood on the mount Sion, and with -him an hundred forty and four thousand, having his Father's name -written in their foreheads. - -14:2 And I heard a voice from heaven, as the voice of many waters, and -as the voice of a great thunder: and I heard the voice of harpers -harping with their harps: 14:3 And they sung as it were a new song -before the throne, and before the four beasts, and the elders: and no -man could learn that song but the hundred and forty and four thousand, -which were redeemed from the earth. - -14:4 These are they which were not defiled with women; for they are -virgins. These are they which follow the Lamb whithersoever he goeth. -These were redeemed from among men, being the firstfruits unto God and -to the Lamb. - -14:5 And in their mouth was found no guile: for they are without fault -before the throne of God. - -14:6 And I saw another angel fly in the midst of heaven, having the -everlasting gospel to preach unto them that dwell on the earth, and to -every nation, and kindred, and tongue, and people, 14:7 Saying with a -loud voice, Fear God, and give glory to him; for the hour of his -judgment is come: and worship him that made heaven, and earth, and the -sea, and the fountains of waters. - -14:8 And there followed another angel, saying, Babylon is fallen, is -fallen, that great city, because she made all nations drink of the -wine of the wrath of her fornication. - -14:9 And the third angel followed them, saying with a loud voice, If -any man worship the beast and his image, and receive his mark in his -forehead, or in his hand, 14:10 The same shall drink of the wine of -the wrath of God, which is poured out without mixture into the cup of -his indignation; and he shall be tormented with fire and brimstone in -the presence of the holy angels, and in the presence of the Lamb: -14:11 And the smoke of their torment ascendeth up for ever and ever: -and they have no rest day nor night, who worship the beast and his -image, and whosoever receiveth the mark of his name. - -14:12 Here is the patience of the saints: here are they that keep the -commandments of God, and the faith of Jesus. - -14:13 And I heard a voice from heaven saying unto me, Write, Blessed -are the dead which die in the Lord from henceforth: Yea, saith the -Spirit, that they may rest from their labours; and their works do -follow them. - -14:14 And I looked, and behold a white cloud, and upon the cloud one -sat like unto the Son of man, having on his head a golden crown, and -in his hand a sharp sickle. - -14:15 And another angel came out of the temple, crying with a loud -voice to him that sat on the cloud, Thrust in thy sickle, and reap: -for the time is come for thee to reap; for the harvest of the earth is -ripe. - -14:16 And he that sat on the cloud thrust in his sickle on the earth; -and the earth was reaped. - -14:17 And another angel came out of the temple which is in heaven, he -also having a sharp sickle. - -14:18 And another angel came out from the altar, which had power over -fire; and cried with a loud cry to him that had the sharp sickle, -saying, Thrust in thy sharp sickle, and gather the clusters of the -vine of the earth; for her grapes are fully ripe. - -14:19 And the angel thrust in his sickle into the earth, and gathered -the vine of the earth, and cast it into the great winepress of the -wrath of God. - -14:20 And the winepress was trodden without the city, and blood came -out of the winepress, even unto the horse bridles, by the space of a -thousand and six hundred furlongs. - -15:1 And I saw another sign in heaven, great and marvellous, seven -angels having the seven last plagues; for in them is filled up the -wrath of God. - -15:2 And I saw as it were a sea of glass mingled with fire: and them -that had gotten the victory over the beast, and over his image, and -over his mark, and over the number of his name, stand on the sea of -glass, having the harps of God. - -15:3 And they sing the song of Moses the servant of God, and the song -of the Lamb, saying, Great and marvellous are thy works, Lord God -Almighty; just and true are thy ways, thou King of saints. - -15:4 Who shall not fear thee, O Lord, and glorify thy name? for thou -only art holy: for all nations shall come and worship before thee; for -thy judgments are made manifest. - -15:5 And after that I looked, and, behold, the temple of the -tabernacle of the testimony in heaven was opened: 15:6 And the seven -angels came out of the temple, having the seven plagues, clothed in -pure and white linen, and having their breasts girded with golden -girdles. - -15:7 And one of the four beasts gave unto the seven angels seven -golden vials full of the wrath of God, who liveth for ever and ever. - -15:8 And the temple was filled with smoke from the glory of God, and -from his power; and no man was able to enter into the temple, till the -seven plagues of the seven angels were fulfilled. - -16:1 And I heard a great voice out of the temple saying to the seven -angels, Go your ways, and pour out the vials of the wrath of God upon -the earth. - -16:2 And the first went, and poured out his vial upon the earth; and -there fell a noisome and grievous sore upon the men which had the mark -of the beast, and upon them which worshipped his image. - -16:3 And the second angel poured out his vial upon the sea; and it -became as the blood of a dead man: and every living soul died in the -sea. - -16:4 And the third angel poured out his vial upon the rivers and -fountains of waters; and they became blood. - -16:5 And I heard the angel of the waters say, Thou art righteous, O -Lord, which art, and wast, and shalt be, because thou hast judged -thus. - -16:6 For they have shed the blood of saints and prophets, and thou -hast given them blood to drink; for they are worthy. - -16:7 And I heard another out of the altar say, Even so, Lord God -Almighty, true and righteous are thy judgments. - -16:8 And the fourth angel poured out his vial upon the sun; and power -was given unto him to scorch men with fire. - -16:9 And men were scorched with great heat, and blasphemed the name of -God, which hath power over these plagues: and they repented not to -give him glory. - -16:10 And the fifth angel poured out his vial upon the seat of the -beast; and his kingdom was full of darkness; and they gnawed their -tongues for pain, 16:11 And blasphemed the God of heaven because of -their pains and their sores, and repented not of their deeds. - -16:12 And the sixth angel poured out his vial upon the great river -Euphrates; and the water thereof was dried up, that the way of the -kings of the east might be prepared. - -16:13 And I saw three unclean spirits like frogs come out of the mouth -of the dragon, and out of the mouth of the beast, and out of the mouth -of the false prophet. - -16:14 For they are the spirits of devils, working miracles, which go -forth unto the kings of the earth and of the whole world, to gather -them to the battle of that great day of God Almighty. - -16:15 Behold, I come as a thief. Blessed is he that watcheth, and -keepeth his garments, lest he walk naked, and they see his shame. - -16:16 And he gathered them together into a place called in the Hebrew -tongue Armageddon. - -16:17 And the seventh angel poured out his vial into the air; and -there came a great voice out of the temple of heaven, from the throne, -saying, It is done. - -16:18 And there were voices, and thunders, and lightnings; and there -was a great earthquake, such as was not since men were upon the earth, -so mighty an earthquake, and so great. - -16:19 And the great city was divided into three parts, and the cities -of the nations fell: and great Babylon came in remembrance before God, -to give unto her the cup of the wine of the fierceness of his wrath. - -16:20 And every island fled away, and the mountains were not found. - -16:21 And there fell upon men a great hail out of heaven, every stone -about the weight of a talent: and men blasphemed God because of the -plague of the hail; for the plague thereof was exceeding great. - -17:1 And there came one of the seven angels which had the seven vials, -and talked with me, saying unto me, Come hither; I will shew unto thee -the judgment of the great whore that sitteth upon many waters: 17:2 -With whom the kings of the earth have committed fornication, and the -inhabitants of the earth have been made drunk with the wine of her -fornication. - -17:3 So he carried me away in the spirit into the wilderness: and I -saw a woman sit upon a scarlet coloured beast, full of names of -blasphemy, having seven heads and ten horns. - -17:4 And the woman was arrayed in purple and scarlet colour, and -decked with gold and precious stones and pearls, having a golden cup -in her hand full of abominations and filthiness of her fornication: -17:5 And upon her forehead was a name written, MYSTERY, BABYLON THE -GREAT, THE MOTHER OF HARLOTS AND ABOMINATIONS OF THE EARTH. - -17:6 And I saw the woman drunken with the blood of the saints, and -with the blood of the martyrs of Jesus: and when I saw her, I wondered -with great admiration. - -17:7 And the angel said unto me, Wherefore didst thou marvel? I will -tell thee the mystery of the woman, and of the beast that carrieth -her, which hath the seven heads and ten horns. - -17:8 The beast that thou sawest was, and is not; and shall ascend out -of the bottomless pit, and go into perdition: and they that dwell on -the earth shall wonder, whose names were not written in the book of -life from the foundation of the world, when they behold the beast that -was, and is not, and yet is. - -17:9 And here is the mind which hath wisdom. The seven heads are seven -mountains, on which the woman sitteth. - -17:10 And there are seven kings: five are fallen, and one is, and the -other is not yet come; and when he cometh, he must continue a short -space. - -17:11 And the beast that was, and is not, even he is the eighth, and -is of the seven, and goeth into perdition. - -17:12 And the ten horns which thou sawest are ten kings, which have -received no kingdom as yet; but receive power as kings one hour with -the beast. - -17:13 These have one mind, and shall give their power and strength -unto the beast. - -17:14 These shall make war with the Lamb, and the Lamb shall overcome -them: for he is Lord of lords, and King of kings: and they that are -with him are called, and chosen, and faithful. - -17:15 And he saith unto me, The waters which thou sawest, where the -whore sitteth, are peoples, and multitudes, and nations, and tongues. - -17:16 And the ten horns which thou sawest upon the beast, these shall -hate the whore, and shall make her desolate and naked, and shall eat -her flesh, and burn her with fire. - -17:17 For God hath put in their hearts to fulfil his will, and to -agree, and give their kingdom unto the beast, until the words of God -shall be fulfilled. - -17:18 And the woman which thou sawest is that great city, which -reigneth over the kings of the earth. - -18:1 And after these things I saw another angel come down from heaven, -having great power; and the earth was lightened with his glory. - -18:2 And he cried mightily with a strong voice, saying, Babylon the -great is fallen, is fallen, and is become the habitation of devils, -and the hold of every foul spirit, and a cage of every unclean and -hateful bird. - -18:3 For all nations have drunk of the wine of the wrath of her -fornication, and the kings of the earth have committed fornication -with her, and the merchants of the earth are waxed rich through the -abundance of her delicacies. - -18:4 And I heard another voice from heaven, saying, Come out of her, -my people, that ye be not partakers of her sins, and that ye receive -not of her plagues. - -18:5 For her sins have reached unto heaven, and God hath remembered -her iniquities. - -18:6 Reward her even as she rewarded you, and double unto her double -according to her works: in the cup which she hath filled fill to her -double. - -18:7 How much she hath glorified herself, and lived deliciously, so -much torment and sorrow give her: for she saith in her heart, I sit a -queen, and am no widow, and shall see no sorrow. - -18:8 Therefore shall her plagues come in one day, death, and mourning, -and famine; and she shall be utterly burned with fire: for strong is -the Lord God who judgeth her. - -18:9 And the kings of the earth, who have committed fornication and -lived deliciously with her, shall bewail her, and lament for her, when -they shall see the smoke of her burning, 18:10 Standing afar off for -the fear of her torment, saying, Alas, alas that great city Babylon, -that mighty city! for in one hour is thy judgment come. - -18:11 And the merchants of the earth shall weep and mourn over her; -for no man buyeth their merchandise any more: 18:12 The merchandise of -gold, and silver, and precious stones, and of pearls, and fine linen, -and purple, and silk, and scarlet, and all thyine wood, and all manner -vessels of ivory, and all manner vessels of most precious wood, and of -brass, and iron, and marble, 18:13 And cinnamon, and odours, and -ointments, and frankincense, and wine, and oil, and fine flour, and -wheat, and beasts, and sheep, and horses, and chariots, and slaves, -and souls of men. - -18:14 And the fruits that thy soul lusted after are departed from -thee, and all things which were dainty and goodly are departed from -thee, and thou shalt find them no more at all. - -18:15 The merchants of these things, which were made rich by her, -shall stand afar off for the fear of her torment, weeping and wailing, -18:16 And saying, Alas, alas that great city, that was clothed in fine -linen, and purple, and scarlet, and decked with gold, and precious -stones, and pearls! 18:17 For in one hour so great riches is come to -nought. And every shipmaster, and all the company in ships, and -sailors, and as many as trade by sea, stood afar off, 18:18 And cried -when they saw the smoke of her burning, saying, What city is like unto -this great city! 18:19 And they cast dust on their heads, and cried, -weeping and wailing, saying, Alas, alas that great city, wherein were -made rich all that had ships in the sea by reason of her costliness! -for in one hour is she made desolate. - -18:20 Rejoice over her, thou heaven, and ye holy apostles and -prophets; for God hath avenged you on her. - -18:21 And a mighty angel took up a stone like a great millstone, and -cast it into the sea, saying, Thus with violence shall that great city -Babylon be thrown down, and shall be found no more at all. - -18:22 And the voice of harpers, and musicians, and of pipers, and -trumpeters, shall be heard no more at all in thee; and no craftsman, -of whatsoever craft he be, shall be found any more in thee; and the -sound of a millstone shall be heard no more at all in thee; 18:23 And -the light of a candle shall shine no more at all in thee; and the -voice of the bridegroom and of the bride shall be heard no more at all -in thee: for thy merchants were the great men of the earth; for by thy -sorceries were all nations deceived. - -18:24 And in her was found the blood of prophets, and of saints, and -of all that were slain upon the earth. - -19:1 And after these things I heard a great voice of much people in -heaven, saying, Alleluia; Salvation, and glory, and honour, and power, -unto the Lord our God: 19:2 For true and righteous are his judgments: -for he hath judged the great whore, which did corrupt the earth with -her fornication, and hath avenged the blood of his servants at her -hand. - -19:3 And again they said, Alleluia And her smoke rose up for ever and -ever. - -19:4 And the four and twenty elders and the four beasts fell down and -worshipped God that sat on the throne, saying, Amen; Alleluia. - -19:5 And a voice came out of the throne, saying, Praise our God, all -ye his servants, and ye that fear him, both small and great. - -19:6 And I heard as it were the voice of a great multitude, and as the -voice of many waters, and as the voice of mighty thunderings, saying, -Alleluia: for the Lord God omnipotent reigneth. - -19:7 Let us be glad and rejoice, and give honour to him: for the -marriage of the Lamb is come, and his wife hath made herself ready. - -19:8 And to her was granted that she should be arrayed in fine linen, -clean and white: for the fine linen is the righteousness of saints. - -19:9 And he saith unto me, Write, Blessed are they which are called -unto the marriage supper of the Lamb. And he saith unto me, These are -the true sayings of God. - -19:10 And I fell at his feet to worship him. And he said unto me, See -thou do it not: I am thy fellowservant, and of thy brethren that have -the testimony of Jesus: worship God: for the testimony of Jesus is the -spirit of prophecy. - -19:11 And I saw heaven opened, and behold a white horse; and he that -sat upon him was called Faithful and True, and in righteousness he -doth judge and make war. - -19:12 His eyes were as a flame of fire, and on his head were many -crowns; and he had a name written, that no man knew, but he himself. - -19:13 And he was clothed with a vesture dipped in blood: and his name -is called The Word of God. - -19:14 And the armies which were in heaven followed him upon white -horses, clothed in fine linen, white and clean. - -19:15 And out of his mouth goeth a sharp sword, that with it he should -smite the nations: and he shall rule them with a rod of iron: and he -treadeth the winepress of the fierceness and wrath of Almighty God. - -19:16 And he hath on his vesture and on his thigh a name written, KING -OF KINGS, AND LORD OF LORDS. - -19:17 And I saw an angel standing in the sun; and he cried with a loud -voice, saying to all the fowls that fly in the midst of heaven, Come -and gather yourselves together unto the supper of the great God; 19:18 -That ye may eat the flesh of kings, and the flesh of captains, and the -flesh of mighty men, and the flesh of horses, and of them that sit on -them, and the flesh of all men, both free and bond, both small and -great. - -19:19 And I saw the beast, and the kings of the earth, and their -armies, gathered together to make war against him that sat on the -horse, and against his army. - -19:20 And the beast was taken, and with him the false prophet that -wrought miracles before him, with which he deceived them that had -received the mark of the beast, and them that worshipped his image. -These both were cast alive into a lake of fire burning with brimstone. - -19:21 And the remnant were slain with the sword of him that sat upon -the horse, which sword proceeded out of his mouth: and all the fowls -were filled with their flesh. - -20:1 And I saw an angel come down from heaven, having the key of the -bottomless pit and a great chain in his hand. - -20:2 And he laid hold on the dragon, that old serpent, which is the -Devil, and Satan, and bound him a thousand years, 20:3 And cast him -into the bottomless pit, and shut him up, and set a seal upon him, -that he should deceive the nations no more, till the thousand years -should be fulfilled: and after that he must be loosed a little season. - -20:4 And I saw thrones, and they sat upon them, and judgment was given -unto them: and I saw the souls of them that were beheaded for the -witness of Jesus, and for the word of God, and which had not -worshipped the beast, neither his image, neither had received his mark -upon their foreheads, or in their hands; and they lived and reigned -with Christ a thousand years. - -20:5 But the rest of the dead lived not again until the thousand years -were finished. This is the first resurrection. - -20:6 Blessed and holy is he that hath part in the first resurrection: -on such the second death hath no power, but they shall be priests of -God and of Christ, and shall reign with him a thousand years. - -20:7 And when the thousand years are expired, Satan shall be loosed -out of his prison, 20:8 And shall go out to deceive the nations which -are in the four quarters of the earth, Gog, and Magog, to gather them -together to battle: the number of whom is as the sand of the sea. - -20:9 And they went up on the breadth of the earth, and compassed the -camp of the saints about, and the beloved city: and fire came down -from God out of heaven, and devoured them. - -20:10 And the devil that deceived them was cast into the lake of fire -and brimstone, where the beast and the false prophet are, and shall be -tormented day and night for ever and ever. - -20:11 And I saw a great white throne, and him that sat on it, from -whose face the earth and the heaven fled away; and there was found no -place for them. - -20:12 And I saw the dead, small and great, stand before God; and the -books were opened: and another book was opened, which is the book of -life: and the dead were judged out of those things which were written -in the books, according to their works. - -20:13 And the sea gave up the dead which were in it; and death and -hell delivered up the dead which were in them: and they were judged -every man according to their works. - -20:14 And death and hell were cast into the lake of fire. This is the -second death. - -20:15 And whosoever was not found written in the book of life was cast -into the lake of fire. - -21:1 And I saw a new heaven and a new earth: for the first heaven and -the first earth were passed away; and there was no more sea. - -21:2 And I John saw the holy city, new Jerusalem, coming down from God -out of heaven, prepared as a bride adorned for her husband. - -21:3 And I heard a great voice out of heaven saying, Behold, the -tabernacle of God is with men, and he will dwell with them, and they -shall be his people, and God himself shall be with them, and be their -God. - -21:4 And God shall wipe away all tears from their eyes; and there -shall be no more death, neither sorrow, nor crying, neither shall -there be any more pain: for the former things are passed away. - -21:5 And he that sat upon the throne said, Behold, I make all things -new. - -And he said unto me, Write: for these words are true and faithful. - -21:6 And he said unto me, It is done. I am Alpha and Omega, the -beginning and the end. I will give unto him that is athirst of the -fountain of the water of life freely. - -21:7 He that overcometh shall inherit all things; and I will be his -God, and he shall be my son. - -21:8 But the fearful, and unbelieving, and the abominable, and -murderers, and whoremongers, and sorcerers, and idolaters, and all -liars, shall have their part in the lake which burneth with fire and -brimstone: which is the second death. - -21:9 And there came unto me one of the seven angels which had the -seven vials full of the seven last plagues, and talked with me, -saying, Come hither, I will shew thee the bride, the Lamb's wife. - -21:10 And he carried me away in the spirit to a great and high -mountain, and shewed me that great city, the holy Jerusalem, -descending out of heaven from God, 21:11 Having the glory of God: and -her light was like unto a stone most precious, even like a jasper -stone, clear as crystal; 21:12 And had a wall great and high, and had -twelve gates, and at the gates twelve angels, and names written -thereon, which are the names of the twelve tribes of the children of -Israel: 21:13 On the east three gates; on the north three gates; on -the south three gates; and on the west three gates. - -21:14 And the wall of the city had twelve foundations, and in them the -names of the twelve apostles of the Lamb. - -21:15 And he that talked with me had a golden reed to measure the -city, and the gates thereof, and the wall thereof. - -21:16 And the city lieth foursquare, and the length is as large as the -breadth: and he measured the city with the reed, twelve thousand -furlongs. - -The length and the breadth and the height of it are equal. - -21:17 And he measured the wall thereof, an hundred and forty and four -cubits, according to the measure of a man, that is, of the angel. - -21:18 And the building of the wall of it was of jasper: and the city -was pure gold, like unto clear glass. - -21:19 And the foundations of the wall of the city were garnished with -all manner of precious stones. The first foundation was jasper; the -second, sapphire; the third, a chalcedony; the fourth, an emerald; -21:20 The fifth, sardonyx; the sixth, sardius; the seventh, -chrysolyte; the eighth, beryl; the ninth, a topaz; the tenth, a -chrysoprasus; the eleventh, a jacinth; the twelfth, an amethyst. - -21:21 And the twelve gates were twelve pearls: every several gate was -of one pearl: and the street of the city was pure gold, as it were -transparent glass. - -21:22 And I saw no temple therein: for the Lord God Almighty and the -Lamb are the temple of it. - -21:23 And the city had no need of the sun, neither of the moon, to -shine in it: for the glory of God did lighten it, and the Lamb is the -light thereof. - -21:24 And the nations of them which are saved shall walk in the light -of it: and the kings of the earth do bring their glory and honour into -it. - -21:25 And the gates of it shall not be shut at all by day: for there -shall be no night there. - -21:26 And they shall bring the glory and honour of the nations into -it. - -21:27 And there shall in no wise enter into it any thing that -defileth, neither whatsoever worketh abomination, or maketh a lie: but -they which are written in the Lamb's book of life. - -22:1 And he shewed me a pure river of water of life, clear as crystal, -proceeding out of the throne of God and of the Lamb. - -22:2 In the midst of the street of it, and on either side of the -river, was there the tree of life, which bare twelve manner of fruits, -and yielded her fruit every month: and the leaves of the tree were for -the healing of the nations. - -22:3 And there shall be no more curse: but the throne of God and of -the Lamb shall be in it; and his servants shall serve him: 22:4 And -they shall see his face; and his name shall be in their foreheads. - -22:5 And there shall be no night there; and they need no candle, -neither light of the sun; for the Lord God giveth them light: and they -shall reign for ever and ever. - -22:6 And he said unto me, These sayings are faithful and true: and the -Lord God of the holy prophets sent his angel to shew unto his servants -the things which must shortly be done. - -22:7 Behold, I come quickly: blessed is he that keepeth the sayings of -the prophecy of this book. - -22:8 And I John saw these things, and heard them. And when I had heard -and seen, I fell down to worship before the feet of the angel which -shewed me these things. - -22:9 Then saith he unto me, See thou do it not: for I am thy -fellowservant, and of thy brethren the prophets, and of them which -keep the sayings of this book: worship God. - -22:10 And he saith unto me, Seal not the sayings of the prophecy of -this book: for the time is at hand. - -22:11 He that is unjust, let him be unjust still: and he which is -filthy, let him be filthy still: and he that is righteous, let him be -righteous still: and he that is holy, let him be holy still. - -22:12 And, behold, I come quickly; and my reward is with me, to give -every man according as his work shall be. - -22:13 I am Alpha and Omega, the beginning and the end, the first and -the last. - -22:14 Blessed are they that do his commandments, that they may have -right to the tree of life, and may enter in through the gates into the -city. - -22:15 For without are dogs, and sorcerers, and whoremongers, and -murderers, and idolaters, and whosoever loveth and maketh a lie. - -22:16 I Jesus have sent mine angel to testify unto you these things in -the churches. I am the root and the offspring of David, and the bright -and morning star. - -22:17 And the Spirit and the bride say, Come. And let him that heareth -say, Come. And let him that is athirst come. And whosoever will, let -him take the water of life freely. - -22:18 For I testify unto every man that heareth the words of the -prophecy of this book, If any man shall add unto these things, God -shall add unto him the plagues that are written in this book: 22:19 -And if any man shall take away from the words of the book of this -prophecy, God shall take away his part out of the book of life, and -out of the holy city, and from the things which are written in this book. - -22:20 He which testifieth these things saith, Surely I come quickly. -Amen. - -Even so, come, Lord Jesus. - -22:21 The grace of our Lord Jesus Christ be with you all. Amen. - - - - - - - - - - - - -End of the Project Gutenberg EBook of The King James Bible - -*** END OF THIS PROJECT GUTENBERG EBOOK THE KING JAMES BIBLE *** - -***** This file should be named 10.txt or 10.zip ***** -This and all associated files of various formats will be found in: - http://www.gutenberg.org/1/10/ - - - -Updated editions will replace the previous one--the old editions -will be renamed. - -Creating the works from public domain print editions means that no -one owns a United States copyright in these works, so the Foundation -(and you!) can copy and distribute it in the United States without -permission and without paying copyright royalties. Special rules, -set forth in the General Terms of Use part of this license, apply to -copying and distributing Project Gutenberg-tm electronic works to -protect the PROJECT GUTENBERG-tm concept and trademark. Project -Gutenberg is a registered trademark, and may not be used if you -charge for the eBooks, unless you receive specific permission. If you -do not charge anything for copies of this eBook, complying with the -rules is very easy. You may use this eBook for nearly any purpose -such as creation of derivative works, reports, performances and -research. They may be modified and printed and given away--you may do -practically ANYTHING with public domain eBooks. Redistribution is -subject to the trademark license, especially commercial -redistribution. - - - -*** START: FULL LICENSE *** - -THE FULL PROJECT GUTENBERG LICENSE -PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK - -To protect the Project Gutenberg-tm mission of promoting the free -distribution of electronic works, by using or distributing this work -(or any other work associated in any way with the phrase "Project -Gutenberg"), you agree to comply with all the terms of the Full Project -Gutenberg-tm License (available with this file or online at -http://gutenberg.org/license). - - -Section 1. General Terms of Use and Redistributing Project Gutenberg-tm -electronic works - -1.A. By reading or using any part of this Project Gutenberg-tm -electronic work, you indicate that you have read, understand, agree to -and accept all the terms of this license and intellectual property -(trademark/copyright) agreement. If you do not agree to abide by all -the terms of this agreement, you must cease using and return or destroy -all copies of Project Gutenberg-tm electronic works in your possession. -If you paid a fee for obtaining a copy of or access to a Project -Gutenberg-tm electronic work and you do not agree to be bound by the -terms of this agreement, you may obtain a refund from the person or -entity to whom you paid the fee as set forth in paragraph 1.E.8. - -1.B. "Project Gutenberg" is a registered trademark. It may only be -used on or associated in any way with an electronic work by people who -agree to be bound by the terms of this agreement. There are a few -things that you can do with most Project Gutenberg-tm electronic works -even without complying with the full terms of this agreement. See -paragraph 1.C below. There are a lot of things you can do with Project -Gutenberg-tm electronic works if you follow the terms of this agreement -and help preserve free future access to Project Gutenberg-tm electronic -works. See paragraph 1.E below. - -1.C. The Project Gutenberg Literary Archive Foundation ("the Foundation" -or PGLAF), owns a compilation copyright in the collection of Project -Gutenberg-tm electronic works. Nearly all the individual works in the -collection are in the public domain in the United States. If an -individual work is in the public domain in the United States and you are -located in the United States, we do not claim a right to prevent you from -copying, distributing, performing, displaying or creating derivative -works based on the work as long as all references to Project Gutenberg -are removed. Of course, we hope that you will support the Project -Gutenberg-tm mission of promoting free access to electronic works by -freely sharing Project Gutenberg-tm works in compliance with the terms of -this agreement for keeping the Project Gutenberg-tm name associated with -the work. You can easily comply with the terms of this agreement by -keeping this work in the same format with its attached full Project -Gutenberg-tm License when you share it without charge with others. - -1.D. The copyright laws of the place where you are located also govern -what you can do with this work. Copyright laws in most countries are in -a constant state of change. If you are outside the United States, check -the laws of your country in addition to the terms of this agreement -before downloading, copying, displaying, performing, distributing or -creating derivative works based on this work or any other Project -Gutenberg-tm work. The Foundation makes no representations concerning -the copyright status of any work in any country outside the United -States. - -1.E. Unless you have removed all references to Project Gutenberg: - -1.E.1. The following sentence, with active links to, or other immediate -access to, the full Project Gutenberg-tm License must appear prominently -whenever any copy of a Project Gutenberg-tm work (any work on which the -phrase "Project Gutenberg" appears, or with which the phrase "Project -Gutenberg" is associated) is accessed, displayed, performed, viewed, -copied or distributed: - -This eBook is for the use of anyone anywhere at no cost and with -almost no restrictions whatsoever. You may copy it, give it away or -re-use it under the terms of the Project Gutenberg License included -with this eBook or online at www.gutenberg.org - -1.E.2. If an individual Project Gutenberg-tm electronic work is derived -from the public domain (does not contain a notice indicating that it is -posted with permission of the copyright holder), the work can be copied -and distributed to anyone in the United States without paying any fees -or charges. If you are redistributing or providing access to a work -with the phrase "Project Gutenberg" associated with or appearing on the -work, you must comply either with the requirements of paragraphs 1.E.1 -through 1.E.7 or obtain permission for the use of the work and the -Project Gutenberg-tm trademark as set forth in paragraphs 1.E.8 or -1.E.9. - -1.E.3. If an individual Project Gutenberg-tm electronic work is posted -with the permission of the copyright holder, your use and distribution -must comply with both paragraphs 1.E.1 through 1.E.7 and any additional -terms imposed by the copyright holder. Additional terms will be linked -to the Project Gutenberg-tm License for all works posted with the -permission of the copyright holder found at the beginning of this work. - -1.E.4. Do not unlink or detach or remove the full Project Gutenberg-tm -License terms from this work, or any files containing a part of this -work or any other work associated with Project Gutenberg-tm. - -1.E.5. Do not copy, display, perform, distribute or redistribute this -electronic work, or any part of this electronic work, without -prominently displaying the sentence set forth in paragraph 1.E.1 with -active links or immediate access to the full terms of the Project -Gutenberg-tm License. - -1.E.6. You may convert to and distribute this work in any binary, -compressed, marked up, nonproprietary or proprietary form, including any -word processing or hypertext form. However, if you provide access to or -distribute copies of a Project Gutenberg-tm work in a format other than -"Plain Vanilla ASCII" or other format used in the official version -posted on the official Project Gutenberg-tm web site (www.gutenberg.org), -you must, at no additional cost, fee or expense to the user, provide a -copy, a means of exporting a copy, or a means of obtaining a copy upon -request, of the work in its original "Plain Vanilla ASCII" or other -form. Any alternate format must include the full Project Gutenberg-tm -License as specified in paragraph 1.E.1. - -1.E.7. Do not charge a fee for access to, viewing, displaying, -performing, copying or distributing any Project Gutenberg-tm works -unless you comply with paragraph 1.E.8 or 1.E.9. - -1.E.8. You may charge a reasonable fee for copies of or providing -access to or distributing Project Gutenberg-tm electronic works provided -that - -- You pay a royalty fee of 20% of the gross profits you derive from - the use of Project Gutenberg-tm works calculated using the method - you already use to calculate your applicable taxes. The fee is - owed to the owner of the Project Gutenberg-tm trademark, but he - has agreed to donate royalties under this paragraph to the - Project Gutenberg Literary Archive Foundation. Royalty payments - must be paid within 60 days following each date on which you - prepare (or are legally required to prepare) your periodic tax - returns. Royalty payments should be clearly marked as such and - sent to the Project Gutenberg Literary Archive Foundation at the - address specified in Section 4, "Information about donations to - the Project Gutenberg Literary Archive Foundation." - -- You provide a full refund of any money paid by a user who notifies - you in writing (or by e-mail) within 30 days of receipt that s/he - does not agree to the terms of the full Project Gutenberg-tm - License. You must require such a user to return or - destroy all copies of the works possessed in a physical medium - and discontinue all use of and all access to other copies of - Project Gutenberg-tm works. - -- You provide, in accordance with paragraph 1.F.3, a full refund of any - money paid for a work or a replacement copy, if a defect in the - electronic work is discovered and reported to you within 90 days - of receipt of the work. - -- You comply with all other terms of this agreement for free - distribution of Project Gutenberg-tm works. - -1.E.9. If you wish to charge a fee or distribute a Project Gutenberg-tm -electronic work or group of works on different terms than are set -forth in this agreement, you must obtain permission in writing from -both the Project Gutenberg Literary Archive Foundation and Michael -Hart, the owner of the Project Gutenberg-tm trademark. Contact the -Foundation as set forth in Section 3 below. - -1.F. - -1.F.1. Project Gutenberg volunteers and employees expend considerable -effort to identify, do copyright research on, transcribe and proofread -public domain works in creating the Project Gutenberg-tm -collection. Despite these efforts, Project Gutenberg-tm electronic -works, and the medium on which they may be stored, may contain -"Defects," such as, but not limited to, incomplete, inaccurate or -corrupt data, transcription errors, a copyright or other intellectual -property infringement, a defective or damaged disk or other medium, a -computer virus, or computer codes that damage or cannot be read by -your equipment. - -1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for the "Right -of Replacement or Refund" described in paragraph 1.F.3, the Project -Gutenberg Literary Archive Foundation, the owner of the Project -Gutenberg-tm trademark, and any other party distributing a Project -Gutenberg-tm electronic work under this agreement, disclaim all -liability to you for damages, costs and expenses, including legal -fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT -LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT EXCEPT THOSE -PROVIDED IN PARAGRAPH 1.F.3. YOU AGREE THAT THE FOUNDATION, THE -TRADEMARK OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE -LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE OR -INCIDENTAL DAMAGES EVEN IF YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH -DAMAGE. - -1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you discover a -defect in this electronic work within 90 days of receiving it, you can -receive a refund of the money (if any) you paid for it by sending a -written explanation to the person you received the work from. If you -received the work on a physical medium, you must return the medium with -your written explanation. The person or entity that provided you with -the defective work may elect to provide a replacement copy in lieu of a -refund. If you received the work electronically, the person or entity -providing it to you may choose to give you a second opportunity to -receive the work electronically in lieu of a refund. If the second copy -is also defective, you may demand a refund in writing without further -opportunities to fix the problem. - -1.F.4. Except for the limited right of replacement or refund set forth -in paragraph 1.F.3, this work is provided to you 'AS-IS' WITH NO OTHER -WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO -WARRANTIES OF MERCHANTIBILITY OR FITNESS FOR ANY PURPOSE. - -1.F.5. Some states do not allow disclaimers of certain implied -warranties or the exclusion or limitation of certain types of damages. -If any disclaimer or limitation set forth in this agreement violates the -law of the state applicable to this agreement, the agreement shall be -interpreted to make the maximum disclaimer or limitation permitted by -the applicable state law. The invalidity or unenforceability of any -provision of this agreement shall not void the remaining provisions. - -1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation, the -trademark owner, any agent or employee of the Foundation, anyone -providing copies of Project Gutenberg-tm electronic works in accordance -with this agreement, and any volunteers associated with the production, -promotion and distribution of Project Gutenberg-tm electronic works, -harmless from all liability, costs and expenses, including legal fees, -that arise directly or indirectly from any of the following which you do -or cause to occur: (a) distribution of this or any Project Gutenberg-tm -work, (b) alteration, modification, or additions or deletions to any -Project Gutenberg-tm work, and (c) any Defect you cause. - - -Section 2. Information about the Mission of Project Gutenberg-tm - -Project Gutenberg-tm is synonymous with the free distribution of -electronic works in formats readable by the widest variety of computers -including obsolete, old, middle-aged and new computers. It exists -because of the efforts of hundreds of volunteers and donations from -people in all walks of life. - -Volunteers and financial support to provide volunteers with the -assistance they need, are critical to reaching Project Gutenberg-tm's -goals and ensuring that the Project Gutenberg-tm collection will -remain freely available for generations to come. In 2001, the Project -Gutenberg Literary Archive Foundation was created to provide a secure -and permanent future for Project Gutenberg-tm and future generations. -To learn more about the Project Gutenberg Literary Archive Foundation -and how your efforts and donations can help, see Sections 3 and 4 -and the Foundation web page at http://www.pglaf.org. - - -Section 3. Information about the Project Gutenberg Literary Archive -Foundation - -The Project Gutenberg Literary Archive Foundation is a non profit -501(c)(3) educational corporation organized under the laws of the -state of Mississippi and granted tax exempt status by the Internal -Revenue Service. The Foundation's EIN or federal tax identification -number is 64-6221541. Its 501(c)(3) letter is posted at -http://pglaf.org/fundraising. Contributions to the Project Gutenberg -Literary Archive Foundation are tax deductible to the full extent -permitted by U.S. federal laws and your state's laws. - -The Foundation's principal office is located at 4557 Melan Dr. S. -Fairbanks, AK, 99712., but its volunteers and employees are scattered -throughout numerous locations. Its business office is located at -809 North 1500 West, Salt Lake City, UT 84116, (801) 596-1887, email -business@pglaf.org. Email contact links and up to date contact -information can be found at the Foundation's web site and official -page at http://pglaf.org - -For additional contact information: - Dr. Gregory B. Newby - Chief Executive and Director - gbnewby@pglaf.org - - -Section 4. Information about Donations to the Project Gutenberg -Literary Archive Foundation - -Project Gutenberg-tm depends upon and cannot survive without wide -spread public support and donations to carry out its mission of -increasing the number of public domain and licensed works that can be -freely distributed in machine readable form accessible by the widest -array of equipment including outdated equipment. Many small donations -($1 to $5,000) are particularly important to maintaining tax exempt -status with the IRS. - -The Foundation is committed to complying with the laws regulating -charities and charitable donations in all 50 states of the United -States. Compliance requirements are not uniform and it takes a -considerable effort, much paperwork and many fees to meet and keep up -with these requirements. We do not solicit donations in locations -where we have not received written confirmation of compliance. To -SEND DONATIONS or determine the status of compliance for any -particular state visit http://pglaf.org - -While we cannot and do not solicit contributions from states where we -have not met the solicitation requirements, we know of no prohibition -against accepting unsolicited donations from donors in such states who -approach us with offers to donate. - -International donations are gratefully accepted, but we cannot make -any statements concerning tax treatment of donations received from -outside the United States. U.S. laws alone swamp our small staff. - -Please check the Project Gutenberg Web pages for current donation -methods and addresses. Donations are accepted in a number of other -ways including checks, online payments and credit card donations. -To donate, please visit: http://pglaf.org/donate - - -Section 5. General Information About Project Gutenberg-tm electronic -works. - -Professor Michael S. Hart is the originator of the Project Gutenberg-tm -concept of a library of electronic works that could be freely shared -with anyone. For thirty years, he produced and distributed Project -Gutenberg-tm eBooks with only a loose network of volunteer support. - - -Project Gutenberg-tm eBooks are often created from several printed -editions, all of which are confirmed as Public Domain in the U.S. -unless a copyright notice is included. Thus, we do not necessarily -keep eBooks in compliance with any particular paper edition. - - -Most people start at our Web site which has the main PG search facility: - - http://www.gutenberg.org - -This Web site includes information about Project Gutenberg-tm, -including how to make donations to the Project Gutenberg Literary -Archive Foundation, how to help produce our new eBooks, and how to -subscribe to our email newsletter to hear about new eBooks. diff --git a/libs/anr/examples/res/cid2code.txt b/libs/anr/examples/res/cid2code.txt deleted file mode 100644 index 13ebdcb..0000000 --- a/libs/anr/examples/res/cid2code.txt +++ /dev/null @@ -1,19290 +0,0 @@ -# cid2code.txt (Version 10/24/2017) -# -# The data in this table contains nineteen tab-delimited columns of -# information. The contents of this file supplement "The Adobe-CNS1-7 -# Character Collection" (formerly Adobe Tech Note #5080): -# -# https://github.com/adobe-type-tools/Adobe-CNS1/ -# -# This table contains lists CIDs 0 through 19178 in the first column, -# and provides additional columns that indicate whether a CID is used -# in a particular CMap file, and if so, provides the encoded value. -# Here are some common aspects of the data that you will find in this -# table: -# -# o All character codes are provided in hexadecimal notation. -# -# o Many of the CMap files indicated at the head of each column have -# both "-H" (horizontal writing mode) and "-V" (vertical writing -# mode) versions. Those with only a "-H" version are explicitly -# shown with the "-H" appended. Those with both do not have a -# writing mode suffix. -# -# o The character codes found in a corresponding "-V" (vertical -# writing mode) CMap file are indicated by a "v" appended to the -# hexadecimal code. -# -# o There may be cases of single CIDs being referenced in multiple -# encoding points within a single CMap file. These cases are -# comma-delimited, within the same column. -# -# The following is a synopsis of columns 2 through 19, and provides -# information about character set and encoding: -# -# o Column 2: Character codes for the "B5-H" and "B5-V" CMaps (Big -# Five character set, Big Five encoding, half-width Latin -# characters). -# -# o Column 3: Character codes for the "B5pc-H" and "B5pc-V" CMaps -# (MacOS-T character set, Big Five encoding, proportional Latin -# characters). -# -# o Column 4: Character codes for the "ETen-B5-H" and "ETen-B5-V" -# CMaps (Big Five character set with ETen extensions, Big Five -# encoding, half-width Latin characters). -# -# o Column 5: Character codes for the "ETenms-B5-H" and -# "ETenms-B5-V" CMaps (Big Five character set with ETen extensions, -# Big Five encoding, proportional Latin characters). -# -# o Column 6: Character codes for the "CNS1-H" and "CNS1-V" CMaps -# (CNS 11643-1992 character set, Plane 1, ISO-2022-CN encoding). -# -# o Column 7: Character codes for the "CNS2-H" and "CNS2-V" CMaps -# (CNS 11643-1992 character set, Plane 2, ISO-2022-CN encoding). -# -# o Column 8: Character codes for the "CNS-EUC-H" and "CNS-EUC-V" -# CMaps (CNS 11643-1992 character set, Planes 1 and 2, EUC-TW -# encoding, half-width Latin characters). -# -# o Column 9: Character codes for the "UniCNS-UCS2-H" and -# "UniCNS-UCS2-V" CMaps (Unicode UCS-2 encoding, proportional -# Latin characters). -# (NOTE: These two CMap files are no longer being maintained. The -# use of the UTF-8, UTF-16, and UTF-32 CMap files is recommended.) -# -# o Column 10: Character codes for the "UniCNS-UTF8-H" and -# "UniCNS-UTF8-V" CMaps (Unicode 10.0 UTF-8 encoding, proportional Latin -# characters). -# -# o Column 11: Character codes for the "UniCNS-UTF16-H" and -# "UniCNS-UTF16-V" CMaps (Unicode 10.0 UTF-16 encoding, proportional -# Latin characters). -# -# o Column 12: Character codes for the "UniCNS-UTF32-H" and -# "UniCNS-UTF32-V" CMaps (Unicode 10.0 UTF-32 encoding, proportional -# Latin characters). -# -# o Column 13: Character codes for the "ETHK-B5-H" and "ETHK-B5-V" -# CMaps (Big Five character set with the ETen and Hong Kong SCS -# extensions, Big Five encoding, proportional Latin characters). -# -# o Column 14: Character codes for the "HKdla-B5-H" and "HKdla-B5-V" -# CMaps (Big Five character set with Dynalab's Hong Kong Extension -# A with 784 Hong Kong hanzi, Big Five encoding, proportional Latin -# characters). -# -# o Column 15: Character codes for the "HKdlb-B5-H" and "HKdlb-B5-V" -# CMaps (Big Five character set with Dynalab's Hong Kong Extension -# B with 665 Hong Kong hanzi, Big Five encoding, proportional Latin -# characters). -# -# o Column 16: Character codes for the "HKgccs-B5-H" and "HKgccs-B5-V" -# CMaps (Big Five character set with Hong Kong's GCCS extension, Big -# Five encoding, proportional Latin characters). -# -# o Column 17: Character codes for the "HKm314-B5-H" and "HKm314-B5-V" -# CMaps (Big Five character set with Monotype's Hong Kong extension -# containing 314 Hong Kong hanzi, Big Five encoding, proportional -# Latin characters). -# -# o Column 18: Character codes for the "HKm471-B5-H" and "HKm471-B5-V" -# CMaps (Big Five character set with Monotype's Hong Kong extension -# containing 471 Hong Kong hanzi, Big Five encoding, proportional -# Latin characters). -# -# o Column 19: Character codes for the "HKscs-B5-H" and "HKscs-B5-V" -# CMaps (Big Five character set with Hong Kong's SCS extension, -# Big Five encoding, proportional Latin characters). -# -CID B5 B5pc ETen-B5 ETenms-B5 CNS1 CNS2 CNS-EUC UniCNS-UCS2 UniCNS-UTF8 UniCNS-UTF16 UniCNS-UTF32 ETHK-B5 HKdla-B5 HKdlb-B5 HKgccs-B5 HKm314-B5 HKm471-B5 HKscs-B5 -0 * * * * * * * * * * * * * * * * * * -1 * 20 * 20 * * * 0020 c2a0,20 00a0,0020 000000a0,00000020 20 20 20 20 20 20 20 -2 * 21 * 21 * * * 0021 21 0021 00000021 21 21 21 21 21 21 21 -3 * 22 * 22 * * * 0022 22 0022 00000022 22 22 22 22 22 22 22 -4 * 23 * 23 * * * 0023 23 0023 00000023 23 23 23 23 23 23 23 -5 * 24 * 24 * * * 0024 24 0024 00000024 24 24 24 24 24 24 24 -6 * 25 * 25 * * * 0025 25 0025 00000025 25 25 25 25 25 25 25 -7 * 26 * 26 * * * 0026 26 0026 00000026 26 26 26 26 26 26 26 -8 * 27 * 27 * * * 0027 27 0027 00000027 27 27 27 27 27 27 27 -9 * 28 * 28 * * * 0028 28 0028 00000028 28 28 28 28 28 28 28 -10 * 29 * 29 * * * 0029 29 0029 00000029 29 29 29 29 29 29 29 -11 * 2a * 2a * * * 002a 2a 002a 0000002a 2a 2a 2a 2a 2a 2a 2a -12 * 2b * 2b * * * 002b 2b 002b 0000002b 2b 2b 2b 2b 2b 2b 2b -13 * 2c * 2c * * * 002c 2c 002c 0000002c 2c 2c 2c 2c 2c 2c 2c -14 * 2d * 2d * * * 002d 2d 002d 0000002d 2d 2d 2d 2d 2d 2d 2d -15 * 2e * 2e * * * 002e 2e 002e 0000002e 2e 2e 2e 2e 2e 2e 2e -16 * 2f * 2f * * * 002f 2f 002f 0000002f 2f 2f 2f 2f 2f 2f 2f -17 * 30 * 30 * * * 0030 30 0030 00000030 30 30 30 30 30 30 30 -18 * 31 * 31 * * * 0031 31 0031 00000031 31 31 31 31 31 31 31 -19 * 32 * 32 * * * 0032 32 0032 00000032 32 32 32 32 32 32 32 -20 * 33 * 33 * * * 0033 33 0033 00000033 33 33 33 33 33 33 33 -21 * 34 * 34 * * * 0034 34 0034 00000034 34 34 34 34 34 34 34 -22 * 35 * 35 * * * 0035 35 0035 00000035 35 35 35 35 35 35 35 -23 * 36 * 36 * * * 0036 36 0036 00000036 36 36 36 36 36 36 36 -24 * 37 * 37 * * * 0037 37 0037 00000037 37 37 37 37 37 37 37 -25 * 38 * 38 * * * 0038 38 0038 00000038 38 38 38 38 38 38 38 -26 * 39 * 39 * * * 0039 39 0039 00000039 39 39 39 39 39 39 39 -27 * 3a * 3a * * * 003a 3a 003a 0000003a 3a 3a 3a 3a 3a 3a 3a -28 * 3b * 3b * * * 003b 3b 003b 0000003b 3b 3b 3b 3b 3b 3b 3b -29 * 3c * 3c * * * 003c 3c 003c 0000003c 3c 3c 3c 3c 3c 3c 3c -30 * 3d * 3d * * * 003d 3d 003d 0000003d 3d 3d 3d 3d 3d 3d 3d -31 * 3e * 3e * * * 003e 3e 003e 0000003e 3e 3e 3e 3e 3e 3e 3e -32 * 3f * 3f * * * 003f 3f 003f 0000003f 3f 3f 3f 3f 3f 3f 3f -33 * 40 * 40 * * * 0040 40 0040 00000040 40 40 40 40 40 40 40 -34 * 41 * 41 * * * 0041 41 0041 00000041 41 41 41 41 41 41 41 -35 * 42 * 42 * * * 0042 42 0042 00000042 42 42 42 42 42 42 42 -36 * 43 * 43 * * * 0043 43 0043 00000043 43 43 43 43 43 43 43 -37 * 44 * 44 * * * 0044 44 0044 00000044 44 44 44 44 44 44 44 -38 * 45 * 45 * * * 0045 45 0045 00000045 45 45 45 45 45 45 45 -39 * 46 * 46 * * * 0046 46 0046 00000046 46 46 46 46 46 46 46 -40 * 47 * 47 * * * 0047 47 0047 00000047 47 47 47 47 47 47 47 -41 * 48 * 48 * * * 0048 48 0048 00000048 48 48 48 48 48 48 48 -42 * 49 * 49 * * * 0049 49 0049 00000049 49 49 49 49 49 49 49 -43 * 4a * 4a * * * 004a 4a 004a 0000004a 4a 4a 4a 4a 4a 4a 4a -44 * 4b * 4b * * * 004b 4b 004b 0000004b 4b 4b 4b 4b 4b 4b 4b -45 * 4c * 4c * * * 004c 4c 004c 0000004c 4c 4c 4c 4c 4c 4c 4c -46 * 4d * 4d * * * 004d 4d 004d 0000004d 4d 4d 4d 4d 4d 4d 4d -47 * 4e * 4e * * * 004e 4e 004e 0000004e 4e 4e 4e 4e 4e 4e 4e -48 * 4f * 4f * * * 004f 4f 004f 0000004f 4f 4f 4f 4f 4f 4f 4f -49 * 50 * 50 * * * 0050 50 0050 00000050 50 50 50 50 50 50 50 -50 * 51 * 51 * * * 0051 51 0051 00000051 51 51 51 51 51 51 51 -51 * 52 * 52 * * * 0052 52 0052 00000052 52 52 52 52 52 52 52 -52 * 53 * 53 * * * 0053 53 0053 00000053 53 53 53 53 53 53 53 -53 * 54 * 54 * * * 0054 54 0054 00000054 54 54 54 54 54 54 54 -54 * 55 * 55 * * * 0055 55 0055 00000055 55 55 55 55 55 55 55 -55 * 56 * 56 * * * 0056 56 0056 00000056 56 56 56 56 56 56 56 -56 * 57 * 57 * * * 0057 57 0057 00000057 57 57 57 57 57 57 57 -57 * 58 * 58 * * * 0058 58 0058 00000058 58 58 58 58 58 58 58 -58 * 59 * 59 * * * 0059 59 0059 00000059 59 59 59 59 59 59 59 -59 * 5a * 5a * * * 005a 5a 005a 0000005a 5a 5a 5a 5a 5a 5a 5a -60 * 5b * 5b * * * 005b 5b 005b 0000005b 5b 5b 5b 5b 5b 5b 5b -61 * 5c,80 * 5c * * * 005c 5c 005c 0000005c 5c 5c 5c 5c 5c 5c 5c -62 * 5d * 5d * * * 005d 5d 005d 0000005d 5d 5d 5d 5d 5d 5d 5d -63 * 5e * 5e * * * 005e 5e 005e 0000005e 5e 5e 5e 5e 5e 5e 5e -64 * 5f * 5f * * * 005f 5f 005f 0000005f 5f 5f 5f 5f 5f 5f 5f -65 * 60 * 60 * * * 0060 60 0060 00000060 60 60 60 60 60 60 60 -66 * 61 * 61 * * * 0061 61 0061 00000061 61 61 61 61 61 61 61 -67 * 62 * 62 * * * 0062 62 0062 00000062 62 62 62 62 62 62 62 -68 * 63 * 63 * * * 0063 63 0063 00000063 63 63 63 63 63 63 63 -69 * 64 * 64 * * * 0064 64 0064 00000064 64 64 64 64 64 64 64 -70 * 65 * 65 * * * 0065 65 0065 00000065 65 65 65 65 65 65 65 -71 * 66 * 66 * * * 0066 66 0066 00000066 66 66 66 66 66 66 66 -72 * 67 * 67 * * * 0067 67 0067 00000067 67 67 67 67 67 67 67 -73 * 68 * 68 * * * 0068 68 0068 00000068 68 68 68 68 68 68 68 -74 * 69 * 69 * * * 0069 69 0069 00000069 69 69 69 69 69 69 69 -75 * 6a * 6a * * * 006a 6a 006a 0000006a 6a 6a 6a 6a 6a 6a 6a -76 * 6b * 6b * * * 006b 6b 006b 0000006b 6b 6b 6b 6b 6b 6b 6b -77 * 6c * 6c * * * 006c 6c 006c 0000006c 6c 6c 6c 6c 6c 6c 6c -78 * 6d * 6d * * * 006d 6d 006d 0000006d 6d 6d 6d 6d 6d 6d 6d -79 * 6e * 6e * * * 006e 6e 006e 0000006e 6e 6e 6e 6e 6e 6e 6e -80 * 6f * 6f * * * 006f 6f 006f 0000006f 6f 6f 6f 6f 6f 6f 6f -81 * 70 * 70 * * * 0070 70 0070 00000070 70 70 70 70 70 70 70 -82 * 71 * 71 * * * 0071 71 0071 00000071 71 71 71 71 71 71 71 -83 * 72 * 72 * * * 0072 72 0072 00000072 72 72 72 72 72 72 72 -84 * 73 * 73 * * * 0073 73 0073 00000073 73 73 73 73 73 73 73 -85 * 74 * 74 * * * 0074 74 0074 00000074 74 74 74 74 74 74 74 -86 * 75 * 75 * * * 0075 75 0075 00000075 75 75 75 75 75 75 75 -87 * 76 * 76 * * * 0076 76 0076 00000076 76 76 76 76 76 76 76 -88 * 77 * 77 * * * 0077 77 0077 00000077 77 77 77 77 77 77 77 -89 * 78 * 78 * * * 0078 78 0078 00000078 78 78 78 78 78 78 78 -90 * 79 * 79 * * * 0079 79 0079 00000079 79 79 79 79 79 79 79 -91 * 7a * 7a * * * 007a 7a 007a 0000007a 7a 7a 7a 7a 7a 7a 7a -92 * 7b * 7b * * * 007b 7b 007b 0000007b 7b 7b 7b 7b 7b 7b 7b -93 * 7c * 7c * * * 007c 7c 007c 0000007c 7c 7c 7c 7c 7c 7c 7c -94 * 7d * 7d * * * 007d 7d 007d 0000007d 7d 7d 7d 7d 7d 7d 7d -95 * 7e * 7e * * * 007e 7e 007e 0000007e 7e 7e 7e 7e 7e 7e 7e -96 * fd * * * * * * c2a9 00a9 000000a9 * * * * * * * -97 * fe * * * * * * e284a2 2122 00002122 * * * * * * * -98 * ff * * * * * * * * * * * * * * * * -99 a140 a140 a140 * 2121 * 8ea1a1a1,a1a1,8ea1a1a1v,a1a1v 3000 e38080 3000 00003000 a140 a140 a140 a140 a140 a140 a140 -100 a141 a141 a141 * 2122 * 8ea1a1a2,a1a2,8ea1a1a2v,a1a2v ff0c efbc8c ff0c 0000ff0c a141 a141 a141 a141 a141 a141 a141 -101 a142 a142 a142 * 2123 * 8ea1a1a3,a1a3,8ea1a1a3v,a1a3v 3001 e38081 3001 00003001 a142 a142 a142 a142 a142 a142 a142 -102 a143 a143 a143 * 2124 * 8ea1a1a4,a1a4,8ea1a1a4v,a1a4v 3002 e38082 3002 00003002 a143 a143 a143 a143 a143 a143 a143 -103 a144 a144 a144 * 2125 * 8ea1a1a5,a1a5,8ea1a1a5v,a1a5v ff0e efbc8e ff0e 0000ff0e a144 a144 a144 a144 a144 a144 a144 -104 a145 a145 a145 * 2126 * 8ea1a1a6,a1a6,8ea1a1a6v,a1a6v 2022 e280a2,e280a7 2022,2027 00002022,00002027 a145 a145 a145 a145 a145 a145 a145 -105 a146 a146 a146 * 2127 * 8ea1a1a7,a1a7,8ea1a1a7v,a1a7v ff1b efbc9b ff1b 0000ff1b a146 a146 a146 a146 a146 a146 a146 -106 a147 a147 a147 * 2128 * 8ea1a1a8,a1a8,8ea1a1a8v,a1a8v ff1a efbc9a ff1a 0000ff1a a147 a147 a147 a147 a147 a147 a147 -107 a148 a148 a148 * 2129 * 8ea1a1a9,a1a9,8ea1a1a9v,a1a9v ff1f efbc9f ff1f 0000ff1f a148 a148 a148 a148 a148 a148 a148 -108 a149 a149 a149 * 212a * 8ea1a1aa,a1aa,8ea1a1aav,a1aav ff01 efbc81 ff01 0000ff01 a149 a149 a149 a149 a149 a149 a149 -109 a14a a14a a14a a14cv 212b * 8ea1a1ab,a1ab,8ea1a1abv,a1abv fe30,2025v efb8b0,e280a5v fe30,2025v 0000fe30,00002025v a14a a14a a14a a14a a14a a14a a14a -110 a14b a14b a14b * 212c * 8ea1a1ac,a1ac 2026 e280a6,e28baf 2026,22ef 00002026,000022ef a14b a14b a14b a14b a14b a14b a14b -111 a14c a14c a14c * 212d * 8ea1a1ad,a1ad,8ea1a1adv,a1adv 2025 e280a5 2025 00002025 a14c a14c a14c a14c a14c a14c a14c -112 a14d a14d a14d * 212e * 8ea1a1ae,a1ae,8ea1a1aev,a1aev fe50 efb990 fe50 0000fe50 a14d a14d a14d a14d a14d a14d a14d -113 a14e a14e a14e * 212f * 8ea1a1af,a1af,8ea1a1afv,a1afv ff64 efbda4,efb991 ff64,fe51 0000ff64,0000fe51 a14e a14e a14e a14e a14e a14e a14e -114 a14f a14f a14f * 2130 * 8ea1a1b0,a1b0,8ea1a1b0v,a1b0v fe52 efb992 fe52 0000fe52 a14f a14f a14f a14f a14f a14f a14f -115 a150 a150 a150 * 2131 * 8ea1a1b1,a1b1,8ea1a1b1v,a1b1v 00b7 c2b7 00b7 000000b7 a150 a150 a150 a150 a150 a150 a150 -116 a151 a151 a151 * 2132 * 8ea1a1b2,a1b2,8ea1a1b2v,a1b2v fe54 efb994 fe54 0000fe54 a151 a151 a151 a151 a151 a151 a151 -117 a152 a152 a152 * 2133 * 8ea1a1b3,a1b3,8ea1a1b3v,a1b3v fe55 efb995 fe55 0000fe55 a152 a152 a152 a152 a152 a152 a152 -118 a153 a153 a153 * 2134 * 8ea1a1b4,a1b4,8ea1a1b4v,a1b4v fe56 efb996 fe56 0000fe56 a153 a153 a153 a153 a153 a153 a153 -119 a154 a154 a154 * 2135 * 8ea1a1b5,a1b5,8ea1a1b5v,a1b5v fe57 efb997 fe57 0000fe57 a154 a154 a154 a154 a154 a154 a154 -120 a155 a155 a155 * 2136 * 8ea1a1b6,a1b6,8ea1a1b6v,a1b6v ff5c,2013v efbd9c,e28093v ff5c,2013v 0000ff5c,00002013v a155 a155 a155 a155 a155 a155 a155 -121 a156 a156 a156 * 2137 * 8ea1a1b7,a1b7,8ea1a1b7v,a1b7v 2013 e28093 2013 00002013 a156 a156 a156 a156 a156 a156 a156 -122 a157 a157 a157 a158v 2138 * 8ea1a1b8,a1b8,8ea1a1b8v,a1b8v fe31,2014v efb8b1,e28094v fe31,2014v 0000fe31,00002014v a157 a157 a157 a157 a157 a157 a157 -123 a158 a158 a158 * 2139 * 8ea1a1b9,a1b9,8ea1a1b9v,a1b9v 2014 e28094 2014 00002014 a158 a158 a158 a158 a158 a158 a158 -124 * * * * 213a,213bv * 8ea1a1ba,a1ba,8ea1a1bav,8ea1a1bbv,a1bav,a1bbv * * * * * * * * * * * -125 * * * * 213b * 8ea1a1bb,a1bb * * * * * * * * * * * -126 * * * * 213c,213dv * 8ea1a1bc,a1bc,8ea1a1bcv,8ea1a1bdv,a1bcv,a1bdv * * * * * * * * * * * -127 * * * * 213d * 8ea1a1bd,a1bd * * * * * * * * * * * -128 a15d a15d a15d * 213e * 8ea1a1be,a1be ff08 efbc88 ff08 0000ff08 a15d a15d a15d a15d a15d a15d a15d -129 a15e a15e a15e * 213f * 8ea1a1bf,a1bf ff09 efbc89 ff09 0000ff09 a15e a15e a15e a15e a15e a15e a15e -130 a15f,a15dv a15f,a15dv a15f,a15dv a15dv,a17dv 2140,213ev * 8ea1a1c0,a1c0,8ea1a1bev,8ea1a1c0v,a1bev,a1c0v fe35,ff08v efb8b5,efbc88v fe35,ff08v 0000fe35,0000ff08v a15f,a15dv a15f,a15dv a15f,a15dv a15f,a15dv a15f,a15dv a15f,a15dv a15f,a15dv -131 a160,a15ev a160,a15ev a160,a15ev a15ev,a17ev 2141,213fv * 8ea1a1c1,a1c1,8ea1a1bfv,8ea1a1c1v,a1bfv,a1c1v fe36,ff09v efb8b6,efbc89v fe36,ff09v 0000fe36,0000ff09v a160,a15ev a160,a15ev a160,a15ev a160,a15ev a160,a15ev a160,a15ev a160,a15ev -132 a161 a161 a161 * 2142 * 8ea1a1c2,a1c2 ff5b efbd9b ff5b 0000ff5b a161 a161 a161 a161 a161 a161 a161 -133 a162 a162 a162 * 2143 * 8ea1a1c3,a1c3 ff5d efbd9d ff5d 0000ff5d a162 a162 a162 a162 a162 a162 a162 -134 a163,a161v a163,a161v a163,a161v a161v,a1a1v 2144,2142v * 8ea1a1c4,a1c4,8ea1a1c2v,8ea1a1c4v,a1c2v,a1c4v fe37,ff5bv efb8b7,efbd9bv fe37,ff5bv 0000fe37,0000ff5bv a163,a161v a163,a161v a163,a161v a163,a161v a163,a161v a163,a161v a163,a161v -135 a164,a162v a164,a162v a164,a162v a162v,a1a2v 2145,2143v * 8ea1a1c5,a1c5,8ea1a1c3v,8ea1a1c5v,a1c3v,a1c5v fe38,ff5dv efb8b8,efbd9dv fe38,ff5dv 0000fe38,0000ff5dv a164,a162v a164,a162v a164,a162v a164,a162v a164,a162v a164,a162v a164,a162v -136 a165 a165 a165 * 2146 * 8ea1a1c6,a1c6 3014 e38094 3014 00003014 a165 a165 a165 a165 a165 a165 a165 -137 a166 a166 a166 * 2147 * 8ea1a1c7,a1c7 3015 e38095 3015 00003015 a166 a166 a166 a166 a166 a166 a166 -138 a167,a165v a167,a165v a167,a165v a165v,a1a3v 2148,2146v * 8ea1a1c8,a1c8,8ea1a1c6v,8ea1a1c8v,a1c6v,a1c8v fe39,3014v efb8b9,e38094v fe39,3014v 0000fe39,00003014v a167,a165v a167,a165v a167,a165v a167,a165v a167,a165v a167,a165v a167,a165v -139 a168,a166v a168,a166v a168,a166v a166v,a1a4v 2149,2147v * 8ea1a1c9,a1c9,8ea1a1c7v,8ea1a1c9v,a1c7v,a1c9v fe3a,3015v efb8ba,e38095v fe3a,3015v 0000fe3a,00003015v a168,a166v a168,a166v a168,a166v a168,a166v a168,a166v a168,a166v a168,a166v -140 a169 a169 a169 * 214a * 8ea1a1ca,a1ca 3010 e38090 3010 00003010 a169 a169 a169 a169 a169 a169 a169 -141 a16a a16a a16a * 214b * 8ea1a1cb,a1cb 3011 e38091 3011 00003011 a16a a16a a16a a16a a16a a16a a16a -142 a16b,a169v a16b,a169v a16b,a169v a169v 214c,214av * 8ea1a1cc,a1cc,8ea1a1cav,8ea1a1ccv,a1cav,a1ccv fe3b,3010v efb8bb,e38090v fe3b,3010v 0000fe3b,00003010v a16b,a169v a16b,a169v a16b,a169v a16b,a169v a16b,a169v a16b,a169v a16b,a169v -143 a16c,a16av a16c,a16av a16c,a16av a16av 214d,214bv * 8ea1a1cd,a1cd,8ea1a1cbv,8ea1a1cdv,a1cbv,a1cdv fe3c,3011v efb8bc,e38091v fe3c,3011v 0000fe3c,00003011v a16c,a16av a16c,a16av a16c,a16av a16c,a16av a16c,a16av a16c,a16av a16c,a16av -144 a16d a16d a16d * 214e * 8ea1a1ce,a1ce 300a e3808a 300a 0000300a a16d a16d a16d a16d a16d a16d a16d -145 a16e a16e a16e * 214f * 8ea1a1cf,a1cf 300b e3808b 300b 0000300b a16e a16e a16e a16e a16e a16e a16e -146 a16f,a16dv a16f,a16dv a16f,a16dv a16dv 2150,214ev * 8ea1a1d0,a1d0,8ea1a1cev,8ea1a1d0v,a1cev,a1d0v fe3d,300av efb8bd,e3808av fe3d,300av 0000fe3d,0000300av a16f,a16dv a16f,a16dv a16f,a16dv a16f,a16dv a16f,a16dv a16f,a16dv a16f,a16dv -147 a170,a16ev a170,a16ev a170,a16ev a16ev 2151,214fv * 8ea1a1d1,a1d1,8ea1a1cfv,8ea1a1d1v,a1cfv,a1d1v fe3e,300bv efb8be,e3808bv fe3e,300bv 0000fe3e,0000300bv a170,a16ev a170,a16ev a170,a16ev a170,a16ev a170,a16ev a170,a16ev a170,a16ev -148 a171 a171 a171 * 2152 * 8ea1a1d2,a1d2 3008 e28ca9,e38088 2329,3008 00002329,00003008 a171 a171 a171 a171 a171 a171 a171 -149 a172 a172 a172 * 2153 * 8ea1a1d3,a1d3 3009 e28caa,e38089 232a,3009 0000232a,00003009 a172 a172 a172 a172 a172 a172 a172 -150 a173,a171v a173,a171v a173,a171v a171v 2154,2152v * 8ea1a1d4,a1d4,8ea1a1d2v,8ea1a1d4v,a1d2v,a1d4v fe3f,3008v efb8bf,e38088v fe3f,3008v 0000fe3f,00003008v a173,a171v a173,a171v a173,a171v a173,a171v a173,a171v a173,a171v a173,a171v -151 a174,a172v a174,a172v a174,a172v a172v 2155,2153v * 8ea1a1d5,a1d5,8ea1a1d3v,8ea1a1d5v,a1d3v,a1d5v fe40,3009v efb980,e38089v fe40,3009v 0000fe40,00003009v a174,a172v a174,a172v a174,a172v a174,a172v a174,a172v a174,a172v a174,a172v -152 a175 a175 a175 * 2156 * 8ea1a1d6,a1d6 300c e3808c 300c 0000300c a175 a175 a175 a175 a175 a175 a175 -153 a176 a176 a176 * 2157 * 8ea1a1d7,a1d7 300d e3808d 300d 0000300d a176 a176 a176 a176 a176 a176 a176 -154 a177,a175v a177,a175v a177,a175v a175v 2158,2156v * 8ea1a1d8,a1d8,8ea1a1d6v,8ea1a1d8v,a1d6v,a1d8v fe41,300cv efb981,e3808cv fe41,300cv 0000fe41,0000300cv a177,a175v a177,a175v a177,a175v a177,a175v a177,a175v a177,a175v a177,a175v -155 a178,a176v a178,a176v a178,a176v a176v 2159,2157v * 8ea1a1d9,a1d9,8ea1a1d7v,8ea1a1d9v,a1d7v,a1d9v fe42,300dv efb982,e3808dv fe42,300dv 0000fe42,0000300dv a178,a176v a178,a176v a178,a176v a178,a176v a178,a176v a178,a176v a178,a176v -156 a179 a179 a179 * 215a * 8ea1a1da,a1da 300e e3808e 300e 0000300e a179 a179 a179 a179 a179 a179 a179 -157 a17a a17a a17a * 215b * 8ea1a1db,a1db 300f e3808f 300f 0000300f a17a a17a a17a a17a a17a a17a a17a -158 a17b,a179v a17b,a179v a17b,a179v a179v 215c,215av * 8ea1a1dc,a1dc,8ea1a1dav,8ea1a1dcv,a1dav,a1dcv fe43,300ev efb983,e3808ev fe43,300ev 0000fe43,0000300ev a17b,a179v a17b,a179v a17b,a179v a17b,a179v a17b,a179v a17b,a179v a17b,a179v -159 a17c,a17av a17c,a17av a17c,a17av a17av 215d,215bv * 8ea1a1dd,a1dd,8ea1a1dbv,8ea1a1ddv,a1dbv,a1ddv fe44,300fv efb984,e3808fv fe44,300fv 0000fe44,0000300fv a17c,a17av a17c,a17av a17c,a17av a17c,a17av a17c,a17av a17c,a17av a17c,a17av -160 a17d a17d a17d * 215e * 8ea1a1de,a1de,8ea1a1dev,a1dev fe59 efb999 fe59 0000fe59 a17d a17d a17d a17d a17d a17d a17d -161 a17e a17e a17e * 215f * 8ea1a1df,a1df,8ea1a1dfv,a1dfv fe5a efb99a fe5a 0000fe5a a17e a17e a17e a17e a17e a17e a17e -162 a1a1 a1a1 a1a1 * 2160 * 8ea1a1e0,a1e0,8ea1a1e0v,a1e0v fe5b efb99b fe5b 0000fe5b a1a1 a1a1 a1a1 a1a1 a1a1 a1a1 a1a1 -163 a1a2 a1a2 a1a2 * 2161 * 8ea1a1e1,a1e1,8ea1a1e1v,a1e1v fe5c efb99c fe5c 0000fe5c a1a2 a1a2 a1a2 a1a2 a1a2 a1a2 a1a2 -164 a1a3 a1a3 a1a3 * 2162 * 8ea1a1e2,a1e2,8ea1a1e2v,a1e2v fe5d efb99d fe5d 0000fe5d a1a3 a1a3 a1a3 a1a3 a1a3 a1a3 a1a3 -165 a1a4 a1a4 a1a4 * 2163 * 8ea1a1e3,a1e3,8ea1a1e3v,a1e3v fe5e efb99e fe5e 0000fe5e a1a4 a1a4 a1a4 a1a4 a1a4 a1a4 a1a4 -166 a1a5 a1a5 a1a5 * 2164 * 8ea1a1e4,a1e4,8ea1a1e4v,a1e4v 2018 e28098 2018 00002018 a1a5 a1a5 a1a5 a1a5 a1a5 a1a5 a1a5 -167 a1a6 a1a6 a1a6 * 2165 * 8ea1a1e5,a1e5,8ea1a1e5v,a1e5v 2019 e28099 2019 00002019 a1a6 a1a6 a1a6 a1a6 a1a6 a1a6 a1a6 -168 a1a7 a1a7 a1a7 * 2166 * 8ea1a1e6,a1e6,8ea1a1e6v,a1e6v 201c e2809c 201c 0000201c a1a7 a1a7 a1a7 a1a7 a1a7 a1a7 a1a7 -169 a1a8 a1a8 a1a8 * 2167 * 8ea1a1e7,a1e7,8ea1a1e7v,a1e7v 201d e2809d 201d 0000201d a1a8 a1a8 a1a8 a1a8 a1a8 a1a8 a1a8 -170 a1a9 a1a9 a1a9 * 2168 * 8ea1a1e8,a1e8,8ea1a1e8v,a1e8v 301d e3809d 301d 0000301d a1a9 a1a9 a1a9 a1a9 a1a9 a1a9 a1a9 -171 a1aa a1aa a1aa * 2169 * 8ea1a1e9,a1e9,8ea1a1e9v,a1e9v 301e e3809e 301e 0000301e a1aa a1aa a1aa a1aa a1aa a1aa a1aa -172 a1ab a1ab a1ab * 216a * 8ea1a1ea,a1ea,8ea1a1eav,a1eav 2035 e280b5 2035 00002035 a1ab a1ab a1ab a1ab a1ab a1ab a1ab -173 a1ac a1ac a1ac * 216b * 8ea1a1eb,a1eb,8ea1a1ebv,a1ebv 2032 e280b2 2032 00002032 a1ac a1ac a1ac a1ac a1ac a1ac a1ac -174 a1ad a1ad a1ad * 216c * 8ea1a1ec,a1ec,8ea1a1ecv,a1ecv ff03 efbc83 ff03 0000ff03 a1ad a1ad a1ad a1ad a1ad a1ad a1ad -175 a1ae a1ae a1ae * 216d * 8ea1a1ed,a1ed,8ea1a1edv,a1edv ff06 efbc86 ff06 0000ff06 a1ae a1ae a1ae a1ae a1ae a1ae a1ae -176 a1af a1af a1af * 216e * 8ea1a1ee,a1ee,8ea1a1eev,a1eev ff0a efbc8a ff0a 0000ff0a a1af a1af a1af a1af a1af a1af a1af -177 a1b0 a1b0 a1b0 * 216f * 8ea1a1ef,a1ef,8ea1a1efv,a1efv 203b e280bb 203b 0000203b a1b0 a1b0 a1b0 a1b0 a1b0 a1b0 a1b0 -178 a1b1 a1b1 a1b1 * 2170 * 8ea1a1f0,a1f0,8ea1a1f0v,a1f0v 00a7 c2a7 00a7 000000a7 a1b1 a1b1 a1b1 a1b1 a1b1 a1b1 a1b1 -179 a1b2 a1b2 a1b2 * 2171 * 8ea1a1f1,a1f1,8ea1a1f1v,a1f1v 3003 e38083 3003 00003003 a1b2 a1b2 a1b2 a1b2 a1b2 a1b2 a1b2 -180 a1b3 a1b3 a1b3 * 2172 * 8ea1a1f2,a1f2,8ea1a1f2v,a1f2v 25cb e2978b 25cb 000025cb a1b3 a1b3 a1b3 a1b3 a1b3 a1b3 a1b3 -181 a1b4 a1b4 a1b4 * 2173 * 8ea1a1f3,a1f3,8ea1a1f3v,a1f3v 25cf e2978f 25cf 000025cf a1b4 a1b4 a1b4 a1b4 a1b4 a1b4 a1b4 -182 a1b5 a1b5 a1b5 * 2174 * 8ea1a1f4,a1f4,8ea1a1f4v,a1f4v 25b3 e296b3 25b3 000025b3 a1b5 a1b5 a1b5 a1b5 a1b5 a1b5 a1b5 -183 a1b6 a1b6 a1b6 * 2175 * 8ea1a1f5,a1f5,8ea1a1f5v,a1f5v 25b2 e296b2 25b2 000025b2 a1b6 a1b6 a1b6 a1b6 a1b6 a1b6 a1b6 -184 a1b7 a1b7 a1b7 * 2176 * 8ea1a1f6,a1f6,8ea1a1f6v,a1f6v 25ce e2978e 25ce 000025ce a1b7 a1b7 a1b7 a1b7 a1b7 a1b7 a1b7 -185 a1b8 a1b8 a1b8 * 2177 * 8ea1a1f7,a1f7,8ea1a1f7v,a1f7v 2606 e29886 2606 00002606 a1b8 a1b8 a1b8 a1b8 a1b8 a1b8 a1b8 -186 a1b9 a1b9 a1b9 * 2178 * 8ea1a1f8,a1f8,8ea1a1f8v,a1f8v 2605 e29885 2605 00002605 a1b9 a1b9 a1b9 a1b9 a1b9 a1b9 a1b9 -187 a1ba a1ba a1ba * 2179 * 8ea1a1f9,a1f9,8ea1a1f9v,a1f9v 25c7 e29787 25c7 000025c7 a1ba a1ba a1ba a1ba a1ba a1ba a1ba -188 a1bb a1bb a1bb * 217a * 8ea1a1fa,a1fa,8ea1a1fav,a1fav 25c6 e29786 25c6 000025c6 a1bb a1bb a1bb a1bb a1bb a1bb a1bb -189 a1bc a1bc a1bc * 217b * 8ea1a1fb,a1fb,8ea1a1fbv,a1fbv 25a1 e296a1 25a1 000025a1 a1bc a1bc a1bc a1bc a1bc a1bc a1bc -190 a1bd a1bd a1bd * 217c * 8ea1a1fc,a1fc,8ea1a1fcv,a1fcv 25a0 e296a0 25a0 000025a0 a1bd a1bd a1bd a1bd a1bd a1bd a1bd -191 a1be a1be a1be * 217d * 8ea1a1fd,a1fd,8ea1a1fdv,a1fdv 25bd e296bd 25bd 000025bd a1be a1be a1be a1be a1be a1be a1be -192 a1bf a1bf a1bf * 217e * 8ea1a1fe,a1fe,8ea1a1fev,a1fev 25bc e296bc 25bc 000025bc a1bf a1bf a1bf a1bf a1bf a1bf a1bf -193 a1c0 a1c0 a1c0 * 2221 * 8ea1a2a1,a2a1,8ea1a2a1v,a2a1v 32a3 e38aa3 32a3 000032a3 a1c0 a1c0 a1c0 a1c0 a1c0 a1c0 a1c0 -194 a1c1 a1c1 a1c1 * 2222 * 8ea1a2a2,a2a2,8ea1a2a2v,a2a2v 2105 e28485 2105 00002105 a1c1 a1c1 a1c1 a1c1 a1c1 a1c1 a1c1 -195 a1c2 a1c2 a1c2 * 2223 * 8ea1a2a3,a2a3,8ea1a2a3v,a2a3v 203e c2af,cc84,e280be 00af,0304,203e 000000af,00000304,0000203e a1c2 a1c2 a1c2 a1c2 a1c2 a1c2 a1c2 -196 a1c3 a1c3 a1c3 * 2224 * 8ea1a2a4,a2a4,8ea1a2a4v,a2a4v * efbfa3 ffe3 0000ffe3 a1c3 a1c3 a1c3 a1c3 a1c3 a1c3 a1c3 -197 a1c4 a1c4 a1c4 * 2225 * 8ea1a2a5,a2a5,8ea1a2a5v,a2a5v ff3f efbcbf ff3f 0000ff3f a1c4 a1c4 a1c4 a1c4 a1c4 a1c4 a1c4 -198 a1c5 a1c5 a1c5 * 2226 * 8ea1a2a6,a2a6,8ea1a2a6v,a2a6v * cb8d 02cd 000002cd a1c5 a1c5 a1c5 a1c5 a1c5 a1c5 a1c5 -199 a1c6 a1c6 a1c6 * 2227 * 8ea1a2a7,a2a7,8ea1a2a7v,a2a7v fe49 efb989 fe49 0000fe49 a1c6 a1c6 a1c6 a1c6 a1c6 a1c6 a1c6 -200 a1c7 a1c7 a1c7 * 2228 * 8ea1a2a8,a2a8,8ea1a2a8v,a2a8v fe4a efb98a fe4a 0000fe4a a1c7 a1c7 a1c7 a1c7 a1c7 a1c7 a1c7 -201 a1c8 a1c8 a1c8 * 2229 * 8ea1a2a9,a2a9,8ea1a2a9v,a2a9v fe4d efb98d fe4d 0000fe4d a1c8 a1c8 a1c8 a1c8 a1c8 a1c8 a1c8 -202 a1c9 a1c9 a1c9 * 222a * 8ea1a2aa,a2aa,8ea1a2aav,a2aav fe4e efb98e fe4e 0000fe4e a1c9 a1c9 a1c9 a1c9 a1c9 a1c9 a1c9 -203 a1ca a1ca a1ca * 222b * 8ea1a2ab,a2ab,8ea1a2abv,a2abv fe4b efb98b fe4b 0000fe4b a1ca a1ca a1ca a1ca a1ca a1ca a1ca -204 a1cb a1cb a1cb * 222c * 8ea1a2ac,a2ac,8ea1a2acv,a2acv fe4c efb98c fe4c 0000fe4c a1cb a1cb a1cb a1cb a1cb a1cb a1cb -205 a1cc a1cc a1cc * 222d * 8ea1a2ad,a2ad,8ea1a2adv,a2adv fe5f efb99f fe5f 0000fe5f a1cc a1cc a1cc a1cc a1cc a1cc a1cc -206 a1cd a1cd a1cd * 222e * 8ea1a2ae,a2ae,8ea1a2aev,a2aev fe60 efb9a0 fe60 0000fe60 a1cd a1cd a1cd a1cd a1cd a1cd a1cd -207 a1ce a1ce a1ce * 222f * 8ea1a2af,a2af,8ea1a2afv,a2afv fe61 efb9a1 fe61 0000fe61 a1ce a1ce a1ce a1ce a1ce a1ce a1ce -208 a1cf a1cf a1cf * 2230 * 8ea1a2b0,a2b0,8ea1a2b0v,a2b0v ff0b efbc8b ff0b 0000ff0b a1cf a1cf a1cf a1cf a1cf a1cf a1cf -209 a1d0 a1d0 a1d0 * 2231 * 8ea1a2b1,a2b1,8ea1a2b1v,a2b1v ff0d efbc8d ff0d 0000ff0d a1d0 a1d0 a1d0 a1d0 a1d0 a1d0 a1d0 -210 a1d1 a1d1 a1d1 * 2232 * 8ea1a2b2,a2b2,8ea1a2b2v,a2b2v 00d7 c397 00d7 000000d7 a1d1 a1d1 a1d1 a1d1 a1d1 a1d1 a1d1 -211 a1d2 a1d2 a1d2 * 2233 * 8ea1a2b3,a2b3,8ea1a2b3v,a2b3v 00f7 c3b7 00f7 000000f7 a1d2 a1d2 a1d2 a1d2 a1d2 a1d2 a1d2 -212 a1d3 a1d3 a1d3 * 2234 * 8ea1a2b4,a2b4,8ea1a2b4v,a2b4v 00b1 c2b1 00b1 000000b1 a1d3 a1d3 a1d3 a1d3 a1d3 a1d3 a1d3 -213 a1d4 a1d4 a1d4 * 2235 * 8ea1a2b5,a2b5,8ea1a2b5v,a2b5v 221a e2889a 221a 0000221a a1d4 a1d4 a1d4 a1d4 a1d4 a1d4 a1d4 -214 a1d5 a1d5 a1d5 * 2236 * 8ea1a2b6,a2b6,8ea1a2b6v,a2b6v ff1c efbc9c ff1c 0000ff1c a1d5 a1d5 a1d5 a1d5 a1d5 a1d5 a1d5 -215 a1d6 a1d6 a1d6 * 2237 * 8ea1a2b7,a2b7,8ea1a2b7v,a2b7v ff1e efbc9e ff1e 0000ff1e a1d6 a1d6 a1d6 a1d6 a1d6 a1d6 a1d6 -216 a1d7 a1d7 a1d7 * 2238 * 8ea1a2b8,a2b8,8ea1a2b8v,a2b8v ff1d efbc9d ff1d 0000ff1d a1d7 a1d7 a1d7 a1d7 a1d7 a1d7 a1d7 -217 a1d8 a1d8 a1d8 * 2239 * 8ea1a2b9,a2b9,8ea1a2b9v,a2b9v 2266 e289a6 2266 00002266 a1d8 a1d8 a1d8 a1d8 a1d8 a1d8 a1d8 -218 a1d9 a1d9 a1d9 * 223a * 8ea1a2ba,a2ba,8ea1a2bav,a2bav 2267 e289a7 2267 00002267 a1d9 a1d9 a1d9 a1d9 a1d9 a1d9 a1d9 -219 a1da a1da a1da * 223b * 8ea1a2bb,a2bb,8ea1a2bbv,a2bbv 2260 e289a0 2260 00002260 a1da a1da a1da a1da a1da a1da a1da -220 a1db a1db a1db * 223c * 8ea1a2bc,a2bc,8ea1a2bcv,a2bcv 221e e2889e 221e 0000221e a1db a1db a1db a1db a1db a1db a1db -221 a1dc a1dc a1dc * 223d * 8ea1a2bd,a2bd,8ea1a2bdv,a2bdv 2252 e28992 2252 00002252 a1dc a1dc a1dc a1dc a1dc a1dc a1dc -222 a1dd a1dd a1dd * 223e * 8ea1a2be,a2be,8ea1a2bev,a2bev 2261 e289a1 2261 00002261 a1dd a1dd a1dd a1dd a1dd a1dd a1dd -223 a1de a1de a1de * 223f * 8ea1a2bf,a2bf,8ea1a2bfv,a2bfv fe62 efb9a2 fe62 0000fe62 a1de a1de a1de a1de a1de a1de a1de -224 a1df a1df a1df * 2240 * 8ea1a2c0,a2c0,8ea1a2c0v,a2c0v fe63 efb9a3 fe63 0000fe63 a1df a1df a1df a1df a1df a1df a1df -225 a1e0 a1e0 a1e0 * 2241 * 8ea1a2c1,a2c1,8ea1a2c1v,a2c1v fe64 efb9a4 fe64 0000fe64 a1e0 a1e0 a1e0 a1e0 a1e0 a1e0 a1e0 -226 a1e1 a1e1 a1e1 * 2242 * 8ea1a2c2,a2c2,8ea1a2c2v,a2c2v fe65 efb9a5 fe65 0000fe65 a1e1 a1e1 a1e1 a1e1 a1e1 a1e1 a1e1 -227 a1e2 a1e2 a1e2 * 2243 * 8ea1a2c3,a2c3,8ea1a2c3v,a2c3v fe66 efb9a6 fe66 0000fe66 a1e2 a1e2 a1e2 a1e2 a1e2 a1e2 a1e2 -228 a1e3 a1e3 a1e3 * 2244 * 8ea1a2c4,a2c4 223c e288bc,efbd9e 223c,ff5e 0000223c,0000ff5e a1e3 a1e3 a1e3 a1e3 a1e3 a1e3 a1e3 -229 a1e4 a1e4 a1e4 * 2245 * 8ea1a2c5,a2c5,8ea1a2c5v,a2c5v 2229 e288a9 2229 00002229 a1e4 a1e4 a1e4 a1e4 a1e4 a1e4 a1e4 -230 a1e5 a1e5 a1e5 * 2246 * 8ea1a2c6,a2c6,8ea1a2c6v,a2c6v 222a e288aa 222a 0000222a a1e5 a1e5 a1e5 a1e5 a1e5 a1e5 a1e5 -231 a1e6 a1e6 a1e6 * 2247 * 8ea1a2c7,a2c7,8ea1a2c7v,a2c7v 22a5 e28aa5 22a5 000022a5 a1e6 a1e6 a1e6 a1e6 a1e6 a1e6 a1e6 -232 a1e7 a1e7 a1e7 * 2248 * 8ea1a2c8,a2c8,8ea1a2c8v,a2c8v 2220 e288a0 2220 00002220 a1e7 a1e7 a1e7 a1e7 a1e7 a1e7 a1e7 -233 a1e8 a1e8 a1e8 * 2249 * 8ea1a2c9,a2c9,8ea1a2c9v,a2c9v 221f e2889f 221f 0000221f a1e8 a1e8 a1e8 a1e8 a1e8 a1e8 a1e8 -234 a1e9 a1e9 a1e9 * 224a * 8ea1a2ca,a2ca,8ea1a2cav,a2cav 22bf e28abf 22bf 000022bf a1e9 a1e9 a1e9 a1e9 a1e9 a1e9 a1e9 -235 a1ea a1ea a1ea * 224b * 8ea1a2cb,a2cb,8ea1a2cbv,a2cbv 33d2 e38f92 33d2 000033d2 a1ea a1ea a1ea a1ea a1ea a1ea a1ea -236 a1eb a1eb a1eb * 224c * 8ea1a2cc,a2cc,8ea1a2ccv,a2ccv 33d1 e38f91 33d1 000033d1 a1eb a1eb a1eb a1eb a1eb a1eb a1eb -237 a1ec a1ec a1ec * 224d * 8ea1a2cd,a2cd,8ea1a2cdv,a2cdv 222b e288ab 222b 0000222b a1ec a1ec a1ec a1ec a1ec a1ec a1ec -238 a1ed a1ed a1ed * 224e * 8ea1a2ce,a2ce,8ea1a2cev,a2cev 222e e288ae 222e 0000222e a1ed a1ed a1ed a1ed a1ed a1ed a1ed -239 a1ee a1ee a1ee * 224f * 8ea1a2cf,a2cf,8ea1a2cfv,a2cfv 2235 e288b5 2235 00002235 a1ee a1ee a1ee a1ee a1ee a1ee a1ee -240 a1ef a1ef a1ef * 2250 * 8ea1a2d0,a2d0,8ea1a2d0v,a2d0v 2234 e288b4 2234 00002234 a1ef a1ef a1ef a1ef a1ef a1ef a1ef -241 a1f0 a1f0 a1f0 * 2251 * 8ea1a2d1,a2d1,8ea1a2d1v,a2d1v 2640 e29980 2640 00002640 a1f0 a1f0 a1f0 a1f0 a1f0 a1f0 a1f0 -242 a1f1 a1f1 a1f1 * 2252 * 8ea1a2d2,a2d2,8ea1a2d2v,a2d2v 2642 e29982 2642 00002642 a1f1 a1f1 a1f1 a1f1 a1f1 a1f1 a1f1 -243 a1f2 a1f2 a1f2 * 2253 * 8ea1a2d3,a2d3,8ea1a2d3v,a2d3v 2641 e28a95,e29981 2295,2641 00002295,00002641 a1f2 a1f2 a1f2 a1f2 a1f2 a1f2 a1f2 -244 a1f3 a1f3 a1f3 * 2254 * 8ea1a2d4,a2d4,8ea1a2d4v,a2d4v 2609 e28a99,e29889 2299,2609 00002299,00002609 a1f3 a1f3 a1f3 a1f3 a1f3 a1f3 a1f3 -245 a1f4 a1f4 a1f4 * 2255 * 8ea1a2d5,a2d5,8ea1a2d5v,a2d5v 2191 e28691 2191 00002191 a1f4 a1f4 a1f4 a1f4 a1f4 a1f4 a1f4 -246 a1f5 a1f5 a1f5 * 2256 * 8ea1a2d6,a2d6,8ea1a2d6v,a2d6v 2193 e28693 2193 00002193 a1f5 a1f5 a1f5 a1f5 a1f5 a1f5 a1f5 -247 a1f7 a1f7 a1f7 * 2257 * 8ea1a2d7,a2d7,8ea1a2d7v,a2d7v 2192 e28692 2192 00002192 a1f7 a1f7 a1f7 a1f7 a1f7 a1f7 a1f7 -248 a1f6 a1f6 a1f6 * 2258 * 8ea1a2d8,a2d8,8ea1a2d8v,a2d8v 2190 e28690 2190 00002190 a1f6 a1f6 a1f6 a1f6 a1f6 a1f6 a1f6 -249 a1f8 a1f8 a1f8 * 2259 * 8ea1a2d9,a2d9,8ea1a2d9v,a2d9v 2196 e28696 2196 00002196 a1f8 a1f8 a1f8 a1f8 a1f8 a1f8 a1f8 -250 a1f9 a1f9 a1f9 * 225a * 8ea1a2da,a2da,8ea1a2dav,a2dav 2197 e28697 2197 00002197 a1f9 a1f9 a1f9 a1f9 a1f9 a1f9 a1f9 -251 a1fa a1fa a1fa * 225b * 8ea1a2db,a2db,8ea1a2dbv,a2dbv 2199 e28699 2199 00002199 a1fa a1fa a1fa a1fa a1fa a1fa a1fa -252 a1fb a1fb a1fb * 225c * 8ea1a2dc,a2dc,8ea1a2dcv,a2dcv 2198 e28698 2198 00002198 a1fb a1fb a1fb a1fb a1fb a1fb a1fb -253 a1fc a1fc a1fc * 225d * 8ea1a2dd,a2dd,8ea1a2ddv,a2ddv 2225 e288a5 2225 00002225 a1fc a1fc a1fc a1fc a1fc a1fc a1fc -254 a1fd a1fd a1fd * 225e * 8ea1a2de,a2de,8ea1a2dev,a2dev 2223 e288a3 2223 00002223 a1fd a1fd a1fd a1fd a1fd a1fd a1fd -255 a1fe a1fe a1fe * 225f * 8ea1a2df,a2df,8ea1a2dfv,a2dfv * * * * a1fe a1fe a1fe a1fe a1fe a1fe a1fe -256 a240 a240 a240 * 2260 * 8ea1a2e0,a2e0,8ea1a2e0v,a2e0v * * * * a240 a240 a240 a240 a240 a240 a240 -257 a241 a241 a241 * 2261 * 8ea1a2e1,a2e1,8ea1a2e1v,a2e1v ff0f e28895,efbc8f 2215,ff0f 00002215,0000ff0f a241 a241 a241 a241 a241 a241 a241 -258 a242 a242 a242 * 2262 * 8ea1a2e2,a2e2,8ea1a2e2v,a2e2v ff3c efb9a8,efbcbc fe68,ff3c 0000fe68,0000ff3c a242 a242 a242 a242 a242 a242 a242 -259 a243 a243 a243 * 2263 * 8ea1a2e3,a2e3,8ea1a2e3v,a2e3v ff04 efbc84 ff04 0000ff04 a243 a243 a243 a243 a243 a243 a243 -260 a244 a244 a244 * 2264 * 8ea1a2e4,a2e4,8ea1a2e4v,a2e4v 00a5 c2a5,efbfa5 00a5,ffe5 000000a5,0000ffe5 a244 a244 a244 a244 a244 a244 a244 -261 a245 a245 a245 * 2265 * 8ea1a2e5,a2e5,8ea1a2e5v,a2e5v 3012 e38092 3012 00003012 a245 a245 a245 a245 a245 a245 a245 -262 a246 a246 a246 * 2266 * 8ea1a2e6,a2e6,8ea1a2e6v,a2e6v 00a2 c2a2,efbfa0 00a2,ffe0 000000a2,0000ffe0 a246 a246 a246 a246 a246 a246 a246 -263 a247 a247 a247 * 2267 * 8ea1a2e7,a2e7,8ea1a2e7v,a2e7v 00a3 c2a3,efbfa1 00a3,ffe1 000000a3,0000ffe1 a247 a247 a247 a247 a247 a247 a247 -264 a248 a248 a248 * 2268 * 8ea1a2e8,a2e8,8ea1a2e8v,a2e8v ff05 efbc85 ff05 0000ff05 a248 a248 a248 a248 a248 a248 a248 -265 a249 a249 a249 * 2269 * 8ea1a2e9,a2e9,8ea1a2e9v,a2e9v ff20 efbca0 ff20 0000ff20 a249 a249 a249 a249 a249 a249 a249 -266 a24a a24a a24a * 226a * 8ea1a2ea,a2ea,8ea1a2eav,a2eav 2103 e28483 2103 00002103 a24a a24a a24a a24a a24a a24a a24a -267 a24b a24b a24b * 226b * 8ea1a2eb,a2eb,8ea1a2ebv,a2ebv 2109 e28489 2109 00002109 a24b a24b a24b a24b a24b a24b a24b -268 a24c a24c a24c * 226c * 8ea1a2ec,a2ec,8ea1a2ecv,a2ecv fe69 efb9a9 fe69 0000fe69 a24c a24c a24c a24c a24c a24c a24c -269 a24d a24d a24d * 226d * 8ea1a2ed,a2ed,8ea1a2edv,a2edv fe6a efb9aa fe6a 0000fe6a a24d a24d a24d a24d a24d a24d a24d -270 a24e a24e a24e * 226e * 8ea1a2ee,a2ee,8ea1a2eev,a2eev fe6b efb9ab fe6b 0000fe6b a24e a24e a24e a24e a24e a24e a24e -271 a24f a24f a24f * 226f * 8ea1a2ef,a2ef,8ea1a2efv,a2efv 33d5 e38f95 33d5 000033d5 a24f a24f a24f a24f a24f a24f a24f -272 a250 a250 a250 * 2270 * 8ea1a2f0,a2f0,8ea1a2f0v,a2f0v 339c e38e9c 339c 0000339c a250 a250 a250 a250 a250 a250 a250 -273 a251 a251 a251 * 2271 * 8ea1a2f1,a2f1,8ea1a2f1v,a2f1v 339d e38e9d 339d 0000339d a251 a251 a251 a251 a251 a251 a251 -274 a252 a252 a252 * 2272 * 8ea1a2f2,a2f2,8ea1a2f2v,a2f2v 339e e38e9e 339e 0000339e a252 a252 a252 a252 a252 a252 a252 -275 a253 a253 a253 * 2273 * 8ea1a2f3,a2f3,8ea1a2f3v,a2f3v 33ce e38f8e 33ce 000033ce a253 a253 a253 a253 a253 a253 a253 -276 a254 a254 a254 * 2274 * 8ea1a2f4,a2f4,8ea1a2f4v,a2f4v 33a1 e38ea1 33a1 000033a1 a254 a254 a254 a254 a254 a254 a254 -277 a255 a255 a255 * 2275 * 8ea1a2f5,a2f5,8ea1a2f5v,a2f5v 338e e38e8e 338e 0000338e a255 a255 a255 a255 a255 a255 a255 -278 a256 a256 a256 * 2276 * 8ea1a2f6,a2f6,8ea1a2f6v,a2f6v 338f e38e8f 338f 0000338f a256 a256 a256 a256 a256 a256 a256 -279 a257 a257 a257 * 2277 * 8ea1a2f7,a2f7,8ea1a2f7v,a2f7v 33c4 e38f84 33c4 000033c4 a257 a257 a257 a257 a257 a257 a257 -280 a258 a258 a258 * 2278 * 8ea1a2f8,a2f8,8ea1a2f8v,a2f8v 00b0 c2b0 00b0 000000b0 a258 a258 a258 a258 a258 a258 a258 -281 a259 a259 a259 * 2279 * 8ea1a2f9,a2f9,8ea1a2f9v,a2f9v 5159 e58599,ee9792 5159,e5d2 00005159,0000e5d2 92af,a259 a259 a259 92af,a259 a259 a259 92af,a259 -282 a25a a25a a25a * 227a * 8ea1a2fa,a2fa,8ea1a2fav,a2fav 515b e5859b,ee9793 515b,e5d3 0000515b,0000e5d3 92b0,a25a a25a a25a 92b0,a25a a25a a25a 92b0,a25a -283 a25b a25b a25b * 227b * 8ea1a2fb,a2fb,8ea1a2fbv,a2fbv 515e e5859e,ee9795 515e,e5d5 0000515e,0000e5d5 92b2,a25b a25b a25b 92b2,a25b a25b a25b 92b2,a25b -284 a25c a25c a25c * 227c * 8ea1a2fc,a2fc,8ea1a2fcv,a2fcv 515d e5859d,ee9794 515d,e5d4 0000515d,0000e5d4 92b1,a25c a25c a25c 92b1,a25c a25c a25c 92b1,a25c -285 a25d a25d a25d * 227d * 8ea1a2fd,a2fd,8ea1a2fdv,a2fdv 5161 e585a1 5161 00005161 a25d a25d a25d a25d a25d a25d a25d -286 a25e a25e a25e * 227e * 8ea1a2fe,a2fe,8ea1a2fev,a2fev 5163 e585a3 5163 00005163 a25e a25e a25e a25e a25e a25e a25e -287 a25f a25f a25f * 2321 * 8ea1a3a1,a3a1,8ea1a3a1v,a3a1v 55e7 e597a7 55e7 000055e7 a25f a25f a25f a25f a25f a25f a25f -288 a260 a260 a260 * 2322 * 8ea1a3a2,a3a2,8ea1a3a2v,a3a2v 74e9 e793a9,ee8abc 74e9,e2bc 000074e9,0000e2bc feaa,a260 a260 a260 a260,feaa a260 a260 feaa,a260 -289 a261 a261 a261 * 2323 * 8ea1a3a3,a3a3,8ea1a3a3v,a3a3v 7cce e7b38e,ee8d8f 7cce,e34f 00007cce,0000e34f 8e7e,a261 a261 a261 8e7e,a261 a261 a261 8e7e,a261 -290 a262 a262 a262 * 2324 * 8ea1a3a4,a3a4,8ea1a3a4v,a3a4v 2581 e29681 2581 00002581 a262 a262 a262 a262 a262 a262 a262 -291 a263 a263 a263 * 2325 * 8ea1a3a5,a3a5,8ea1a3a5v,a3a5v 2582 e29682 2582 00002582 a263 a263 a263 a263 a263 a263 a263 -292 a264 a264 a264 * 2326 * 8ea1a3a6,a3a6,8ea1a3a6v,a3a6v 2583 e29683 2583 00002583 a264 a264 a264 a264 a264 a264 a264 -293 a265 a265 a265 * 2327 * 8ea1a3a7,a3a7,8ea1a3a7v,a3a7v 2584 e29684 2584 00002584 a265 a265 a265 a265 a265 a265 a265 -294 a266 a266 a266 * 2328 * 8ea1a3a8,a3a8,8ea1a3a8v,a3a8v 2585 e29685 2585 00002585 a266 a266 a266 a266 a266 a266 a266 -295 a267 a267 a267 * 2329 * 8ea1a3a9,a3a9,8ea1a3a9v,a3a9v 2586 e29686 2586 00002586 a267 a267 a267 a267 a267 a267 a267 -296 a268 a268 a268 * 232a * 8ea1a3aa,a3aa,8ea1a3aav,a3aav 2587 e29687 2587 00002587 a268 a268 a268 a268 a268 a268 a268 -297 a269 a269 a269 * 232b * 8ea1a3ab,a3ab,8ea1a3abv,a3abv 2588 e29688 2588 00002588 a269 a269 a269 a269 a269 a269 a269 -298 a26a a26a a26a * 232c * 8ea1a3ac,a3ac,8ea1a3acv,a3acv 258f e2968f 258f 0000258f a26a a26a a26a a26a a26a a26a a26a -299 a26b a26b a26b * 232d * 8ea1a3ad,a3ad,8ea1a3adv,a3adv 258e e2968e 258e 0000258e a26b a26b a26b a26b a26b a26b a26b -300 a26c a26c a26c * 232e * 8ea1a3ae,a3ae,8ea1a3aev,a3aev 258d e2968d 258d 0000258d a26c a26c a26c a26c a26c a26c a26c -301 a26d a26d a26d * 232f * 8ea1a3af,a3af,8ea1a3afv,a3afv 258c e2968c 258c 0000258c a26d a26d a26d a26d a26d a26d a26d -302 a26e a26e a26e * 2330 * 8ea1a3b0,a3b0,8ea1a3b0v,a3b0v 258b e2968b 258b 0000258b a26e a26e a26e a26e a26e a26e a26e -303 a26f a26f a26f * 2331 * 8ea1a3b1,a3b1,8ea1a3b1v,a3b1v 258a e2968a 258a 0000258a a26f a26f a26f a26f a26f a26f a26f -304 a270 a270 a270 * 2332 * 8ea1a3b2,a3b2,8ea1a3b2v,a3b2v 2589 e29689 2589 00002589 a270 a270 a270 a270 a270 a270 a270 -305 a271 a271 a271 * 2333 * 8ea1a3b3,a3b3,8ea1a3b3v,a3b3v 253c e294bc 253c 0000253c a271 a271 a271 a271 a271 a271 a271 -306 a272 a272 a272 * 2334 * 8ea1a3b4,a3b4,8ea1a3b4v,a3b4v 2534 e294b4 2534 00002534 a272 a272 a272 a272 a272 a272 a272 -307 a273 a273 a273 * 2335 * 8ea1a3b5,a3b5,8ea1a3b5v,a3b5v 252c e294ac 252c 0000252c a273 a273 a273 a273 a273 a273 a273 -308 a274 a274 a274 * 2336 * 8ea1a3b6,a3b6,8ea1a3b6v,a3b6v 2524 e294a4 2524 00002524 a274 a274 a274 a274 a274 a274 a274 -309 a275 a275 a275 * 2337 * 8ea1a3b7,a3b7,8ea1a3b7v,a3b7v 251c e2949c 251c 0000251c a275 a275 a275 a275 a275 a275 a275 -310 a276 a276 a276 * 2338 * 8ea1a3b8,a3b8,8ea1a3b8v,a3b8v 2594 e29694 2594 00002594 a276 a276 a276 a276 a276 a276 a276 -311 a277 a277 a277 * 2339 * 8ea1a3b9,a3b9,8ea1a3b9v,a3b9v 2500 e29480 2500 00002500 a277 a277 a277 a277 a277 a277 a277 -312 a278 a278 a278 a156v 233a * 8ea1a3ba,a3ba,8ea1a3bav,a3bav 2502 e29482 2502 00002502 a278 a278 a278 a278 a278 a278 a278 -313 a279 a279 a279 * 233b * 8ea1a3bb,a3bb,8ea1a3bbv,a3bbv 2595 e29695 2595 00002595 a279 a279 a279 a279 a279 a279 a279 -314 a27a a27a a27a * 233c * 8ea1a3bc,a3bc,8ea1a3bcv,a3bcv 250c e2948c 250c 0000250c a27a a27a a27a a27a a27a a27a a27a -315 a27b a27b a27b * 233d * 8ea1a3bd,a3bd,8ea1a3bdv,a3bdv 2510 e29490 2510 00002510 a27b a27b a27b a27b a27b a27b a27b -316 a27c a27c a27c * 233e * 8ea1a3be,a3be,8ea1a3bev,a3bev 2514 e29494 2514 00002514 a27c a27c a27c a27c a27c a27c a27c -317 a27d a27d a27d * 233f * 8ea1a3bf,a3bf,8ea1a3bfv,a3bfv 2518 e29498 2518 00002518 a27d a27d a27d a27d a27d a27d a27d -318 a27e a27e a27e * 2340 * 8ea1a3c0,a3c0,8ea1a3c0v,a3c0v 256d e295ad 256d 0000256d a27e a27e a27e a27e a27e a27e a27e -319 a2a1 a2a1 a2a1 * 2341 * 8ea1a3c1,a3c1,8ea1a3c1v,a3c1v 256e e295ae 256e 0000256e a2a1 a2a1 a2a1 a2a1 a2a1 a2a1 a2a1 -320 a2a2 a2a2 a2a2 * 2342 * 8ea1a3c2,a3c2,8ea1a3c2v,a3c2v 2570 e295b0 2570 00002570 a2a2 a2a2 a2a2 a2a2 a2a2 a2a2 a2a2 -321 a2a3 a2a3 a2a3 * 2343 * 8ea1a3c3,a3c3,8ea1a3c3v,a3c3v 256f e295af 256f 0000256f a2a3 a2a3 a2a3 a2a3 a2a3 a2a3 a2a3 -322 a2a4 a2a4 a2a4 * 2344 * 8ea1a3c4,a3c4,8ea1a3c4v,a3c4v 2550 * * * a2a4 a2a4 a2a4 a2a4 a2a4 a2a4 a2a4 -323 a2a5 a2a5 a2a5 * 2345 * 8ea1a3c5,a3c5,8ea1a3c5v,a3c5v 255e * * * a2a5 a2a5 a2a5 a2a5 a2a5 a2a5 a2a5 -324 a2a6 a2a6 a2a6 * 2346 * 8ea1a3c6,a3c6,8ea1a3c6v,a3c6v 256a * * * a2a6 a2a6 a2a6 a2a6 a2a6 a2a6 a2a6 -325 a2a7 a2a7 a2a7 * 2347 * 8ea1a3c7,a3c7,8ea1a3c7v,a3c7v 2561 * * * a2a7 a2a7 a2a7 a2a7 a2a7 a2a7 a2a7 -326 a2a8 a2a8 a2a8 * 2348 * 8ea1a3c8,a3c8,8ea1a3c8v,a3c8v 25e2 e297a2 25e2 000025e2 a2a8 a2a8 a2a8 a2a8 a2a8 a2a8 a2a8 -327 a2a9 a2a9 a2a9 * 2349 * 8ea1a3c9,a3c9,8ea1a3c9v,a3c9v 25e3 e297a3 25e3 000025e3 a2a9 a2a9 a2a9 a2a9 a2a9 a2a9 a2a9 -328 a2aa a2aa a2aa * 234a * 8ea1a3ca,a3ca,8ea1a3cav,a3cav 25e5 e297a5 25e5 000025e5 a2aa a2aa a2aa a2aa a2aa a2aa a2aa -329 a2ab a2ab a2ab * 234b * 8ea1a3cb,a3cb,8ea1a3cbv,a3cbv 25e4 e297a4 25e4 000025e4 a2ab a2ab a2ab a2ab a2ab a2ab a2ab -330 a2ac a2ac a2ac * 234c * 8ea1a3cc,a3cc,8ea1a3ccv,a3ccv 2571 e295b1 2571 00002571 a2ac a2ac a2ac a2ac a2ac a2ac a2ac -331 a2ad a2ad a2ad * 234d * 8ea1a3cd,a3cd,8ea1a3cdv,a3cdv 2572 e295b2 2572 00002572 a2ad a2ad a2ad a2ad a2ad a2ad a2ad -332 a2ae a2ae a2ae * 234e * 8ea1a3ce,a3ce,8ea1a3cev,a3cev 2573 e295b3 2573 00002573 a2ae a2ae a2ae a2ae a2ae a2ae a2ae -333 a2af a2af a2af * 2421 * 8ea1a4a1,a4a1,8ea1a4a1v,a4a1v ff10 efbc90 ff10 0000ff10 a2af a2af a2af a2af a2af a2af a2af -334 a2b0 a2b0 a2b0 * 2422 * 8ea1a4a2,a4a2,8ea1a4a2v,a4a2v ff11 efbc91 ff11 0000ff11 a2b0 a2b0 a2b0 a2b0 a2b0 a2b0 a2b0 -335 a2b1 a2b1 a2b1 * 2423 * 8ea1a4a3,a4a3,8ea1a4a3v,a4a3v ff12 efbc92 ff12 0000ff12 a2b1 a2b1 a2b1 a2b1 a2b1 a2b1 a2b1 -336 a2b2 a2b2 a2b2 * 2424 * 8ea1a4a4,a4a4,8ea1a4a4v,a4a4v ff13 efbc93 ff13 0000ff13 a2b2 a2b2 a2b2 a2b2 a2b2 a2b2 a2b2 -337 a2b3 a2b3 a2b3 * 2425 * 8ea1a4a5,a4a5,8ea1a4a5v,a4a5v ff14 efbc94 ff14 0000ff14 a2b3 a2b3 a2b3 a2b3 a2b3 a2b3 a2b3 -338 a2b4 a2b4 a2b4 * 2426 * 8ea1a4a6,a4a6,8ea1a4a6v,a4a6v ff15 efbc95 ff15 0000ff15 a2b4 a2b4 a2b4 a2b4 a2b4 a2b4 a2b4 -339 a2b5 a2b5 a2b5 * 2427 * 8ea1a4a7,a4a7,8ea1a4a7v,a4a7v ff16 efbc96 ff16 0000ff16 a2b5 a2b5 a2b5 a2b5 a2b5 a2b5 a2b5 -340 a2b6 a2b6 a2b6 * 2428 * 8ea1a4a8,a4a8,8ea1a4a8v,a4a8v ff17 efbc97 ff17 0000ff17 a2b6 a2b6 a2b6 a2b6 a2b6 a2b6 a2b6 -341 a2b7 a2b7 a2b7 * 2429 * 8ea1a4a9,a4a9,8ea1a4a9v,a4a9v ff18 efbc98 ff18 0000ff18 a2b7 a2b7 a2b7 a2b7 a2b7 a2b7 a2b7 -342 a2b8 a2b8 a2b8 * 242a * 8ea1a4aa,a4aa,8ea1a4aav,a4aav ff19 efbc99 ff19 0000ff19 a2b8 a2b8 a2b8 a2b8 a2b8 a2b8 a2b8 -343 a2b9 a2b9 a2b9 * 242b * 8ea1a4ab,a4ab,8ea1a4abv,a4abv 2160 e285a0 2160 00002160 a2b9 a2b9 a2b9 a2b9 a2b9 a2b9 a2b9 -344 a2ba a2ba a2ba * 242c * 8ea1a4ac,a4ac,8ea1a4acv,a4acv 2161 e285a1 2161 00002161 a2ba a2ba a2ba a2ba a2ba a2ba a2ba -345 a2bb a2bb a2bb * 242d * 8ea1a4ad,a4ad,8ea1a4adv,a4adv 2162 e285a2 2162 00002162 a2bb a2bb a2bb a2bb a2bb a2bb a2bb -346 a2bc a2bc a2bc * 242e * 8ea1a4ae,a4ae,8ea1a4aev,a4aev 2163 e285a3 2163 00002163 a2bc a2bc a2bc a2bc a2bc a2bc a2bc -347 a2bd a2bd a2bd * 242f * 8ea1a4af,a4af,8ea1a4afv,a4afv 2164 e285a4 2164 00002164 a2bd a2bd a2bd a2bd a2bd a2bd a2bd -348 a2be a2be a2be * 2430 * 8ea1a4b0,a4b0,8ea1a4b0v,a4b0v 2165 e285a5 2165 00002165 a2be a2be a2be a2be a2be a2be a2be -349 a2bf a2bf a2bf * 2431 * 8ea1a4b1,a4b1,8ea1a4b1v,a4b1v 2166 e285a6 2166 00002166 a2bf a2bf a2bf a2bf a2bf a2bf a2bf -350 a2c0 a2c0 a2c0 * 2432 * 8ea1a4b2,a4b2,8ea1a4b2v,a4b2v 2167 e285a7 2167 00002167 a2c0 a2c0 a2c0 a2c0 a2c0 a2c0 a2c0 -351 a2c1 a2c1 a2c1 * 2433 * 8ea1a4b3,a4b3,8ea1a4b3v,a4b3v 2168 e285a8 2168 00002168 a2c1 a2c1 a2c1 a2c1 a2c1 a2c1 a2c1 -352 a2c2 a2c2 a2c2 * 2434 * 8ea1a4b4,a4b4,8ea1a4b4v,a4b4v 2169 e285a9 2169 00002169 a2c2 a2c2 a2c2 a2c2 a2c2 a2c2 a2c2 -353 a2c3 a2c3 a2c3 * 2435 * 8ea1a4b5,a4b5,8ea1a4b5v,a4b5v 3021 e380a1 3021 00003021 a2c3 a2c3 a2c3 a2c3 a2c3 a2c3 a2c3 -354 a2c4 a2c4 a2c4 * 2436 * 8ea1a4b6,a4b6,8ea1a4b6v,a4b6v 3022 e380a2 3022 00003022 a2c4 a2c4 a2c4 a2c4 a2c4 a2c4 a2c4 -355 a2c5 a2c5 a2c5 * 2437 * 8ea1a4b7,a4b7,8ea1a4b7v,a4b7v 3023 e380a3 3023 00003023 a2c5 a2c5 a2c5 a2c5 a2c5 a2c5 a2c5 -356 a2c6 a2c6 a2c6 * 2438 * 8ea1a4b8,a4b8,8ea1a4b8v,a4b8v 3024 e380a4 3024 00003024 a2c6 a2c6 a2c6 a2c6 a2c6 a2c6 a2c6 -357 a2c7 a2c7 a2c7 * 2439 * 8ea1a4b9,a4b9,8ea1a4b9v,a4b9v 3025 e380a5 3025 00003025 a2c7 a2c7 a2c7 a2c7 a2c7 a2c7 a2c7 -358 a2c8 a2c8 a2c8 * 243a * 8ea1a4ba,a4ba,8ea1a4bav,a4bav 3026 e380a6 3026 00003026 a2c8 a2c8 a2c8 a2c8 a2c8 a2c8 a2c8 -359 a2c9 a2c9 a2c9 * 243b * 8ea1a4bb,a4bb,8ea1a4bbv,a4bbv 3027 e380a7 3027 00003027 a2c9 a2c9 a2c9 a2c9 a2c9 a2c9 a2c9 -360 a2ca a2ca a2ca * 243c * 8ea1a4bc,a4bc,8ea1a4bcv,a4bcv 3028 e380a8 3028 00003028 a2ca a2ca a2ca a2ca a2ca a2ca a2ca -361 a2cb a2cb a2cb * 243d * 8ea1a4bd,a4bd,8ea1a4bdv,a4bdv 3029 e380a9 3029 00003029 a2cb a2cb a2cb a2cb a2cb a2cb a2cb -362 a2cc a2cc a2cc * 243e * 8ea1a4be,a4be,8ea1a4bev,a4bev * e380b8 3038 00003038 a2cc a2cc a2cc a2cc a2cc a2cc a2cc -363 a2cd a2cd a2cd * 243f * 8ea1a4bf,a4bf,8ea1a4bfv,a4bfv 5344 e58d84,ee81a3,e380b9 5344,e063,3039 00005344,0000e063,00003039 fac5,a2cd a2cd a2cd a2cd a2cd a2cd fac5,a2cd -364 a2ce a2ce a2ce * 2440 * 8ea1a4c0,a4c0,8ea1a4c0v,a4c0v * e380ba 303a 0000303a a2ce a2ce a2ce a2ce a2ce a2ce a2ce -365 a2cf a2cf a2cf * 2441 * 8ea1a4c1,a4c1,8ea1a4c1v,a4c1v ff21 efbca1 ff21 0000ff21 a2cf a2cf a2cf a2cf a2cf a2cf a2cf -366 a2d0 a2d0 a2d0 * 2442 * 8ea1a4c2,a4c2,8ea1a4c2v,a4c2v ff22 efbca2 ff22 0000ff22 a2d0 a2d0 a2d0 a2d0 a2d0 a2d0 a2d0 -367 a2d1 a2d1 a2d1 * 2443 * 8ea1a4c3,a4c3,8ea1a4c3v,a4c3v ff23 efbca3 ff23 0000ff23 a2d1 a2d1 a2d1 a2d1 a2d1 a2d1 a2d1 -368 a2d2 a2d2 a2d2 * 2444 * 8ea1a4c4,a4c4,8ea1a4c4v,a4c4v ff24 efbca4 ff24 0000ff24 a2d2 a2d2 a2d2 a2d2 a2d2 a2d2 a2d2 -369 a2d3 a2d3 a2d3 * 2445 * 8ea1a4c5,a4c5,8ea1a4c5v,a4c5v ff25 efbca5 ff25 0000ff25 a2d3 a2d3 a2d3 a2d3 a2d3 a2d3 a2d3 -370 a2d4 a2d4 a2d4 * 2446 * 8ea1a4c6,a4c6,8ea1a4c6v,a4c6v ff26 efbca6 ff26 0000ff26 a2d4 a2d4 a2d4 a2d4 a2d4 a2d4 a2d4 -371 a2d5 a2d5 a2d5 * 2447 * 8ea1a4c7,a4c7,8ea1a4c7v,a4c7v ff27 efbca7 ff27 0000ff27 a2d5 a2d5 a2d5 a2d5 a2d5 a2d5 a2d5 -372 a2d6 a2d6 a2d6 * 2448 * 8ea1a4c8,a4c8,8ea1a4c8v,a4c8v ff28 efbca8 ff28 0000ff28 a2d6 a2d6 a2d6 a2d6 a2d6 a2d6 a2d6 -373 a2d7 a2d7 a2d7 * 2449 * 8ea1a4c9,a4c9,8ea1a4c9v,a4c9v ff29 efbca9 ff29 0000ff29 a2d7 a2d7 a2d7 a2d7 a2d7 a2d7 a2d7 -374 a2d8 a2d8 a2d8 * 244a * 8ea1a4ca,a4ca,8ea1a4cav,a4cav ff2a efbcaa ff2a 0000ff2a a2d8 a2d8 a2d8 a2d8 a2d8 a2d8 a2d8 -375 a2d9 a2d9 a2d9 * 244b * 8ea1a4cb,a4cb,8ea1a4cbv,a4cbv ff2b efbcab ff2b 0000ff2b a2d9 a2d9 a2d9 a2d9 a2d9 a2d9 a2d9 -376 a2da a2da a2da * 244c * 8ea1a4cc,a4cc,8ea1a4ccv,a4ccv ff2c efbcac ff2c 0000ff2c a2da a2da a2da a2da a2da a2da a2da -377 a2db a2db a2db * 244d * 8ea1a4cd,a4cd,8ea1a4cdv,a4cdv ff2d efbcad ff2d 0000ff2d a2db a2db a2db a2db a2db a2db a2db -378 a2dc a2dc a2dc * 244e * 8ea1a4ce,a4ce,8ea1a4cev,a4cev ff2e efbcae ff2e 0000ff2e a2dc a2dc a2dc a2dc a2dc a2dc a2dc -379 a2dd a2dd a2dd * 244f * 8ea1a4cf,a4cf,8ea1a4cfv,a4cfv ff2f efbcaf ff2f 0000ff2f a2dd a2dd a2dd a2dd a2dd a2dd a2dd -380 a2de a2de a2de * 2450 * 8ea1a4d0,a4d0,8ea1a4d0v,a4d0v ff30 efbcb0 ff30 0000ff30 a2de a2de a2de a2de a2de a2de a2de -381 a2df a2df a2df * 2451 * 8ea1a4d1,a4d1,8ea1a4d1v,a4d1v ff31 efbcb1 ff31 0000ff31 a2df a2df a2df a2df a2df a2df a2df -382 a2e0 a2e0 a2e0 * 2452 * 8ea1a4d2,a4d2,8ea1a4d2v,a4d2v ff32 efbcb2 ff32 0000ff32 a2e0 a2e0 a2e0 a2e0 a2e0 a2e0 a2e0 -383 a2e1 a2e1 a2e1 * 2453 * 8ea1a4d3,a4d3,8ea1a4d3v,a4d3v ff33 efbcb3 ff33 0000ff33 a2e1 a2e1 a2e1 a2e1 a2e1 a2e1 a2e1 -384 a2e2 a2e2 a2e2 * 2454 * 8ea1a4d4,a4d4,8ea1a4d4v,a4d4v ff34 efbcb4 ff34 0000ff34 a2e2 a2e2 a2e2 a2e2 a2e2 a2e2 a2e2 -385 a2e3 a2e3 a2e3 * 2455 * 8ea1a4d5,a4d5,8ea1a4d5v,a4d5v ff35 efbcb5 ff35 0000ff35 a2e3 a2e3 a2e3 a2e3 a2e3 a2e3 a2e3 -386 a2e4 a2e4 a2e4 * 2456 * 8ea1a4d6,a4d6,8ea1a4d6v,a4d6v ff36 efbcb6 ff36 0000ff36 a2e4 a2e4 a2e4 a2e4 a2e4 a2e4 a2e4 -387 a2e5 a2e5 a2e5 * 2457 * 8ea1a4d7,a4d7,8ea1a4d7v,a4d7v ff37 efbcb7 ff37 0000ff37 a2e5 a2e5 a2e5 a2e5 a2e5 a2e5 a2e5 -388 a2e6 a2e6 a2e6 * 2458 * 8ea1a4d8,a4d8,8ea1a4d8v,a4d8v ff38 efbcb8 ff38 0000ff38 a2e6 a2e6 a2e6 a2e6 a2e6 a2e6 a2e6 -389 a2e7 a2e7 a2e7 * 2459 * 8ea1a4d9,a4d9,8ea1a4d9v,a4d9v ff39 efbcb9 ff39 0000ff39 a2e7 a2e7 a2e7 a2e7 a2e7 a2e7 a2e7 -390 a2e8 a2e8 a2e8 * 245a * 8ea1a4da,a4da,8ea1a4dav,a4dav ff3a efbcba ff3a 0000ff3a a2e8 a2e8 a2e8 a2e8 a2e8 a2e8 a2e8 -391 a2e9 a2e9 a2e9 * 245b * 8ea1a4db,a4db,8ea1a4dbv,a4dbv ff41 efbd81 ff41 0000ff41 a2e9 a2e9 a2e9 a2e9 a2e9 a2e9 a2e9 -392 a2ea a2ea a2ea * 245c * 8ea1a4dc,a4dc,8ea1a4dcv,a4dcv ff42 efbd82 ff42 0000ff42 a2ea a2ea a2ea a2ea a2ea a2ea a2ea -393 a2eb a2eb a2eb * 245d * 8ea1a4dd,a4dd,8ea1a4ddv,a4ddv ff43 efbd83 ff43 0000ff43 a2eb a2eb a2eb a2eb a2eb a2eb a2eb -394 a2ec a2ec a2ec * 245e * 8ea1a4de,a4de,8ea1a4dev,a4dev ff44 efbd84 ff44 0000ff44 a2ec a2ec a2ec a2ec a2ec a2ec a2ec -395 a2ed a2ed a2ed * 245f * 8ea1a4df,a4df,8ea1a4dfv,a4dfv ff45 efbd85 ff45 0000ff45 a2ed a2ed a2ed a2ed a2ed a2ed a2ed -396 a2ee a2ee a2ee * 2460 * 8ea1a4e0,a4e0,8ea1a4e0v,a4e0v ff46 efbd86 ff46 0000ff46 a2ee a2ee a2ee a2ee a2ee a2ee a2ee -397 a2ef a2ef a2ef * 2461 * 8ea1a4e1,a4e1,8ea1a4e1v,a4e1v ff47 efbd87 ff47 0000ff47 a2ef a2ef a2ef a2ef a2ef a2ef a2ef -398 a2f0 a2f0 a2f0 * 2462 * 8ea1a4e2,a4e2,8ea1a4e2v,a4e2v ff48 efbd88 ff48 0000ff48 a2f0 a2f0 a2f0 a2f0 a2f0 a2f0 a2f0 -399 a2f1 a2f1 a2f1 * 2463 * 8ea1a4e3,a4e3,8ea1a4e3v,a4e3v ff49 efbd89 ff49 0000ff49 a2f1 a2f1 a2f1 a2f1 a2f1 a2f1 a2f1 -400 a2f2 a2f2 a2f2 * 2464 * 8ea1a4e4,a4e4,8ea1a4e4v,a4e4v ff4a efbd8a ff4a 0000ff4a a2f2 a2f2 a2f2 a2f2 a2f2 a2f2 a2f2 -401 a2f3 a2f3 a2f3 * 2465 * 8ea1a4e5,a4e5,8ea1a4e5v,a4e5v ff4b efbd8b ff4b 0000ff4b a2f3 a2f3 a2f3 a2f3 a2f3 a2f3 a2f3 -402 a2f4 a2f4 a2f4 * 2466 * 8ea1a4e6,a4e6,8ea1a4e6v,a4e6v ff4c efbd8c ff4c 0000ff4c a2f4 a2f4 a2f4 a2f4 a2f4 a2f4 a2f4 -403 a2f5 a2f5 a2f5 * 2467 * 8ea1a4e7,a4e7,8ea1a4e7v,a4e7v ff4d efbd8d ff4d 0000ff4d a2f5 a2f5 a2f5 a2f5 a2f5 a2f5 a2f5 -404 a2f6 a2f6 a2f6 * 2468 * 8ea1a4e8,a4e8,8ea1a4e8v,a4e8v ff4e efbd8e ff4e 0000ff4e a2f6 a2f6 a2f6 a2f6 a2f6 a2f6 a2f6 -405 a2f7 a2f7 a2f7 * 2469 * 8ea1a4e9,a4e9,8ea1a4e9v,a4e9v ff4f efbd8f ff4f 0000ff4f a2f7 a2f7 a2f7 a2f7 a2f7 a2f7 a2f7 -406 a2f8 a2f8 a2f8 * 246a * 8ea1a4ea,a4ea,8ea1a4eav,a4eav ff50 efbd90 ff50 0000ff50 a2f8 a2f8 a2f8 a2f8 a2f8 a2f8 a2f8 -407 a2f9 a2f9 a2f9 * 246b * 8ea1a4eb,a4eb,8ea1a4ebv,a4ebv ff51 efbd91 ff51 0000ff51 a2f9 a2f9 a2f9 a2f9 a2f9 a2f9 a2f9 -408 a2fa a2fa a2fa * 246c * 8ea1a4ec,a4ec,8ea1a4ecv,a4ecv ff52 efbd92 ff52 0000ff52 a2fa a2fa a2fa a2fa a2fa a2fa a2fa -409 a2fb a2fb a2fb * 246d * 8ea1a4ed,a4ed,8ea1a4edv,a4edv ff53 efbd93 ff53 0000ff53 a2fb a2fb a2fb a2fb a2fb a2fb a2fb -410 a2fc a2fc a2fc * 246e * 8ea1a4ee,a4ee,8ea1a4eev,a4eev ff54 efbd94 ff54 0000ff54 a2fc a2fc a2fc a2fc a2fc a2fc a2fc -411 a2fd a2fd a2fd * 246f * 8ea1a4ef,a4ef,8ea1a4efv,a4efv ff55 efbd95 ff55 0000ff55 a2fd a2fd a2fd a2fd a2fd a2fd a2fd -412 a2fe a2fe a2fe * 2470 * 8ea1a4f0,a4f0,8ea1a4f0v,a4f0v ff56 efbd96 ff56 0000ff56 a2fe a2fe a2fe a2fe a2fe a2fe a2fe -413 a340 a340 a340 * 2471 * 8ea1a4f1,a4f1,8ea1a4f1v,a4f1v ff57 efbd97 ff57 0000ff57 a340 a340 a340 a340 a340 a340 a340 -414 a341 a341 a341 * 2472 * 8ea1a4f2,a4f2,8ea1a4f2v,a4f2v ff58 efbd98 ff58 0000ff58 a341 a341 a341 a341 a341 a341 a341 -415 a342 a342 a342 * 2473 * 8ea1a4f3,a4f3,8ea1a4f3v,a4f3v ff59 efbd99 ff59 0000ff59 a342 a342 a342 a342 a342 a342 a342 -416 a343 a343 a343 * 2474 * 8ea1a4f4,a4f4,8ea1a4f4v,a4f4v ff5a efbd9a ff5a 0000ff5a a343 a343 a343 a343 a343 a343 a343 -417 a344 a344 a344 * 2475 * 8ea1a4f5,a4f5,8ea1a4f5v,a4f5v 0391 ce91 0391 00000391 a344 a344 a344 a344 a344 a344 a344 -418 a345 a345 a345 * 2476 * 8ea1a4f6,a4f6,8ea1a4f6v,a4f6v 0392 ce92 0392 00000392 a345 a345 a345 a345 a345 a345 a345 -419 a346 a346 a346 * 2477 * 8ea1a4f7,a4f7,8ea1a4f7v,a4f7v 0393 ce93 0393 00000393 a346 a346 a346 a346 a346 a346 a346 -420 a347 a347 a347 * 2478 * 8ea1a4f8,a4f8,8ea1a4f8v,a4f8v 0394 ce94 0394 00000394 a347 a347 a347 a347 a347 a347 a347 -421 a348 a348 a348 * 2479 * 8ea1a4f9,a4f9,8ea1a4f9v,a4f9v 0395 ce95 0395 00000395 a348 a348 a348 a348 a348 a348 a348 -422 a349 a349 a349 * 247a * 8ea1a4fa,a4fa,8ea1a4fav,a4fav 0396 ce96 0396 00000396 a349 a349 a349 a349 a349 a349 a349 -423 a34a a34a a34a * 247b * 8ea1a4fb,a4fb,8ea1a4fbv,a4fbv 0397 ce97 0397 00000397 a34a a34a a34a a34a a34a a34a a34a -424 a34b a34b a34b * 247c * 8ea1a4fc,a4fc,8ea1a4fcv,a4fcv 0398 ce98 0398 00000398 a34b a34b a34b a34b a34b a34b a34b -425 a34c a34c a34c * 247d * 8ea1a4fd,a4fd,8ea1a4fdv,a4fdv 0399 ce99 0399 00000399 a34c a34c a34c a34c a34c a34c a34c -426 a34d a34d a34d * 247e * 8ea1a4fe,a4fe,8ea1a4fev,a4fev 039a ce9a 039a 0000039a a34d a34d a34d a34d a34d a34d a34d -427 a34e a34e a34e * 2521 * 8ea1a5a1,a5a1,8ea1a5a1v,a5a1v 039b ce9b 039b 0000039b a34e a34e a34e a34e a34e a34e a34e -428 a34f a34f a34f * 2522 * 8ea1a5a2,a5a2,8ea1a5a2v,a5a2v 039c ce9c 039c 0000039c a34f a34f a34f a34f a34f a34f a34f -429 a350 a350 a350 * 2523 * 8ea1a5a3,a5a3,8ea1a5a3v,a5a3v 039d ce9d 039d 0000039d a350 a350 a350 a350 a350 a350 a350 -430 a351 a351 a351 * 2524 * 8ea1a5a4,a5a4,8ea1a5a4v,a5a4v 039e ce9e 039e 0000039e a351 a351 a351 a351 a351 a351 a351 -431 a352 a352 a352 * 2525 * 8ea1a5a5,a5a5,8ea1a5a5v,a5a5v 039f ce9f 039f 0000039f a352 a352 a352 a352 a352 a352 a352 -432 a353 a353 a353 * 2526 * 8ea1a5a6,a5a6,8ea1a5a6v,a5a6v 03a0 cea0 03a0 000003a0 a353 a353 a353 a353 a353 a353 a353 -433 a354 a354 a354 * 2527 * 8ea1a5a7,a5a7,8ea1a5a7v,a5a7v 03a1 cea1 03a1 000003a1 a354 a354 a354 a354 a354 a354 a354 -434 a355 a355 a355 * 2528 * 8ea1a5a8,a5a8,8ea1a5a8v,a5a8v 03a3 cea3 03a3 000003a3 a355 a355 a355 a355 a355 a355 a355 -435 a356 a356 a356 * 2529 * 8ea1a5a9,a5a9,8ea1a5a9v,a5a9v 03a4 cea4 03a4 000003a4 a356 a356 a356 a356 a356 a356 a356 -436 a357 a357 a357 * 252a * 8ea1a5aa,a5aa,8ea1a5aav,a5aav 03a5 cea5 03a5 000003a5 a357 a357 a357 a357 a357 a357 a357 -437 a358 a358 a358 * 252b * 8ea1a5ab,a5ab,8ea1a5abv,a5abv 03a6 cea6 03a6 000003a6 a358 a358 a358 a358 a358 a358 a358 -438 a359 a359 a359 * 252c * 8ea1a5ac,a5ac,8ea1a5acv,a5acv 03a7 cea7 03a7 000003a7 a359 a359 a359 a359 a359 a359 a359 -439 a35a a35a a35a * 252d * 8ea1a5ad,a5ad,8ea1a5adv,a5adv 03a8 cea8 03a8 000003a8 a35a a35a a35a a35a a35a a35a a35a -440 a35b a35b a35b * 252e * 8ea1a5ae,a5ae,8ea1a5aev,a5aev 03a9 cea9 03a9 000003a9 a35b a35b a35b a35b a35b a35b a35b -441 a35c a35c a35c * 252f * 8ea1a5af,a5af,8ea1a5afv,a5afv 03b1 ceb1 03b1 000003b1 a35c a35c a35c a35c a35c a35c a35c -442 a35d a35d a35d * 2530 * 8ea1a5b0,a5b0,8ea1a5b0v,a5b0v 03b2 ceb2 03b2 000003b2 a35d a35d a35d a35d a35d a35d a35d -443 a35e a35e a35e * 2531 * 8ea1a5b1,a5b1,8ea1a5b1v,a5b1v 03b3 ceb3 03b3 000003b3 a35e a35e a35e a35e a35e a35e a35e -444 a35f a35f a35f * 2532 * 8ea1a5b2,a5b2,8ea1a5b2v,a5b2v 03b4 ceb4 03b4 000003b4 a35f a35f a35f a35f a35f a35f a35f -445 a360 a360 a360 * 2533 * 8ea1a5b3,a5b3,8ea1a5b3v,a5b3v 03b5 ceb5 03b5 000003b5 a360 a360 a360 a360 a360 a360 a360 -446 a361 a361 a361 * 2534 * 8ea1a5b4,a5b4,8ea1a5b4v,a5b4v 03b6 ceb6 03b6 000003b6 a361 a361 a361 a361 a361 a361 a361 -447 a362 a362 a362 * 2535 * 8ea1a5b5,a5b5,8ea1a5b5v,a5b5v 03b7 ceb7 03b7 000003b7 a362 a362 a362 a362 a362 a362 a362 -448 a363 a363 a363 * 2536 * 8ea1a5b6,a5b6,8ea1a5b6v,a5b6v 03b8 ceb8 03b8 000003b8 a363 a363 a363 a363 a363 a363 a363 -449 a364 a364 a364 * 2537 * 8ea1a5b7,a5b7,8ea1a5b7v,a5b7v 03b9 ceb9 03b9 000003b9 a364 a364 a364 a364 a364 a364 a364 -450 a365 a365 a365 * 2538 * 8ea1a5b8,a5b8,8ea1a5b8v,a5b8v 03ba ceba 03ba 000003ba a365 a365 a365 a365 a365 a365 a365 -451 a366 a366 a366 * 2539 * 8ea1a5b9,a5b9,8ea1a5b9v,a5b9v 03bb cebb 03bb 000003bb a366 a366 a366 a366 a366 a366 a366 -452 a367 a367 a367 * 253a * 8ea1a5ba,a5ba,8ea1a5bav,a5bav 03bc cebc 03bc 000003bc a367 a367 a367 a367 a367 a367 a367 -453 a368 a368 a368 * 253b * 8ea1a5bb,a5bb,8ea1a5bbv,a5bbv 03bd cebd 03bd 000003bd a368 a368 a368 a368 a368 a368 a368 -454 a369 a369 a369 * 253c * 8ea1a5bc,a5bc,8ea1a5bcv,a5bcv 03be cebe 03be 000003be a369 a369 a369 a369 a369 a369 a369 -455 a36a a36a a36a * 253d * 8ea1a5bd,a5bd,8ea1a5bdv,a5bdv 03bf cebf 03bf 000003bf a36a a36a a36a a36a a36a a36a a36a -456 a36b a36b a36b * 253e * 8ea1a5be,a5be,8ea1a5bev,a5bev 03c0 cf80 03c0 000003c0 a36b a36b a36b a36b a36b a36b a36b -457 a36c a36c a36c * 253f * 8ea1a5bf,a5bf,8ea1a5bfv,a5bfv 03c1 cf81 03c1 000003c1 a36c a36c a36c a36c a36c a36c a36c -458 a36d a36d a36d * 2540 * 8ea1a5c0,a5c0,8ea1a5c0v,a5c0v 03c3 cf83 03c3 000003c3 a36d a36d a36d a36d a36d a36d a36d -459 a36e a36e a36e * 2541 * 8ea1a5c1,a5c1,8ea1a5c1v,a5c1v 03c4 cf84 03c4 000003c4 a36e a36e a36e a36e a36e a36e a36e -460 a36f a36f a36f * 2542 * 8ea1a5c2,a5c2,8ea1a5c2v,a5c2v 03c5 cf85 03c5 000003c5 a36f a36f a36f a36f a36f a36f a36f -461 a370 a370 a370 * 2543 * 8ea1a5c3,a5c3,8ea1a5c3v,a5c3v 03c6 cf86 03c6 000003c6 a370 a370 a370 a370 a370 a370 a370 -462 a371 a371 a371 * 2544 * 8ea1a5c4,a5c4,8ea1a5c4v,a5c4v 03c7 cf87 03c7 000003c7 a371 a371 a371 a371 a371 a371 a371 -463 a372 a372 a372 * 2545 * 8ea1a5c5,a5c5,8ea1a5c5v,a5c5v 03c8 cf88 03c8 000003c8 a372 a372 a372 a372 a372 a372 a372 -464 a373 a373 a373 * 2546 * 8ea1a5c6,a5c6,8ea1a5c6v,a5c6v 03c9 cf89 03c9 000003c9 a373 a373 a373 a373 a373 a373 a373 -465 a374 a374 a374 * 2547 * 8ea1a5c7,a5c7,8ea1a5c7v,a5c7v 3105 e38485 3105 00003105 a374 a374 a374 a374 a374 a374 a374 -466 a375 a375 a375 * 2548 * 8ea1a5c8,a5c8,8ea1a5c8v,a5c8v 3106 e38486 3106 00003106 a375 a375 a375 a375 a375 a375 a375 -467 a376 a376 a376 * 2549 * 8ea1a5c9,a5c9,8ea1a5c9v,a5c9v 3107 e38487 3107 00003107 a376 a376 a376 a376 a376 a376 a376 -468 a377 a377 a377 * 254a * 8ea1a5ca,a5ca,8ea1a5cav,a5cav 3108 e38488 3108 00003108 a377 a377 a377 a377 a377 a377 a377 -469 a378 a378 a378 * 254b * 8ea1a5cb,a5cb,8ea1a5cbv,a5cbv 3109 e38489 3109 00003109 a378 a378 a378 a378 a378 a378 a378 -470 a379 a379 a379 * 254c * 8ea1a5cc,a5cc,8ea1a5ccv,a5ccv 310a e3848a 310a 0000310a a379 a379 a379 a379 a379 a379 a379 -471 a37a a37a a37a * 254d * 8ea1a5cd,a5cd,8ea1a5cdv,a5cdv 310b e3848b 310b 0000310b a37a a37a a37a a37a a37a a37a a37a -472 a37b a37b a37b * 254e * 8ea1a5ce,a5ce,8ea1a5cev,a5cev 310c e3848c 310c 0000310c a37b a37b a37b a37b a37b a37b a37b -473 a37c a37c a37c * 254f * 8ea1a5cf,a5cf,8ea1a5cfv,a5cfv 310d e3848d 310d 0000310d a37c a37c a37c a37c a37c a37c a37c -474 a37d a37d a37d * 2550 * 8ea1a5d0,a5d0,8ea1a5d0v,a5d0v 310e e3848e 310e 0000310e a37d a37d a37d a37d a37d a37d a37d -475 a37e a37e a37e * 2551 * 8ea1a5d1,a5d1,8ea1a5d1v,a5d1v 310f e3848f 310f 0000310f a37e a37e a37e a37e a37e a37e a37e -476 a3a1 a3a1 a3a1 * 2552 * 8ea1a5d2,a5d2,8ea1a5d2v,a5d2v 3110 e38490 3110 00003110 a3a1 a3a1 a3a1 a3a1 a3a1 a3a1 a3a1 -477 a3a2 a3a2 a3a2 * 2553 * 8ea1a5d3,a5d3,8ea1a5d3v,a5d3v 3111 e38491 3111 00003111 a3a2 a3a2 a3a2 a3a2 a3a2 a3a2 a3a2 -478 a3a3 a3a3 a3a3 * 2554 * 8ea1a5d4,a5d4,8ea1a5d4v,a5d4v 3112 e38492 3112 00003112 a3a3 a3a3 a3a3 a3a3 a3a3 a3a3 a3a3 -479 a3a4 a3a4 a3a4 * 2555 * 8ea1a5d5,a5d5,8ea1a5d5v,a5d5v 3113 e38493 3113 00003113 a3a4 a3a4 a3a4 a3a4 a3a4 a3a4 a3a4 -480 a3a5 a3a5 a3a5 * 2556 * 8ea1a5d6,a5d6,8ea1a5d6v,a5d6v 3114 e38494 3114 00003114 a3a5 a3a5 a3a5 a3a5 a3a5 a3a5 a3a5 -481 a3a6 a3a6 a3a6 * 2557 * 8ea1a5d7,a5d7,8ea1a5d7v,a5d7v 3115 e38495 3115 00003115 a3a6 a3a6 a3a6 a3a6 a3a6 a3a6 a3a6 -482 a3a7 a3a7 a3a7 * 2558 * 8ea1a5d8,a5d8,8ea1a5d8v,a5d8v 3116 e38496 3116 00003116 a3a7 a3a7 a3a7 a3a7 a3a7 a3a7 a3a7 -483 a3a8 a3a8 a3a8 * 2559 * 8ea1a5d9,a5d9,8ea1a5d9v,a5d9v 3117 e38497 3117 00003117 a3a8 a3a8 a3a8 a3a8 a3a8 a3a8 a3a8 -484 a3a9 a3a9 a3a9 * 255a * 8ea1a5da,a5da,8ea1a5dav,a5dav 3118 e38498 3118 00003118 a3a9 a3a9 a3a9 a3a9 a3a9 a3a9 a3a9 -485 a3aa a3aa a3aa * 255b * 8ea1a5db,a5db,8ea1a5dbv,a5dbv 3119 e38499 3119 00003119 a3aa a3aa a3aa a3aa a3aa a3aa a3aa -486 a3ab a3ab a3ab * 255c * 8ea1a5dc,a5dc,8ea1a5dcv,a5dcv 311a e3849a 311a 0000311a a3ab a3ab a3ab a3ab a3ab a3ab a3ab -487 a3ac a3ac a3ac * 255d * 8ea1a5dd,a5dd,8ea1a5ddv,a5ddv 311b e3849b 311b 0000311b a3ac a3ac a3ac a3ac a3ac a3ac a3ac -488 a3ad a3ad a3ad * 255e * 8ea1a5de,a5de,8ea1a5dev,a5dev 311c e3849c 311c 0000311c a3ad a3ad a3ad a3ad a3ad a3ad a3ad -489 a3ae a3ae a3ae * 255f * 8ea1a5df,a5df,8ea1a5dfv,a5dfv 311d e3849d 311d 0000311d a3ae a3ae a3ae a3ae a3ae a3ae a3ae -490 a3af a3af a3af * 2560 * 8ea1a5e0,a5e0,8ea1a5e0v,a5e0v 311e e3849e 311e 0000311e a3af a3af a3af a3af a3af a3af a3af -491 a3b0 a3b0 a3b0 * 2561 * 8ea1a5e1,a5e1,8ea1a5e1v,a5e1v 311f e3849f 311f 0000311f a3b0 a3b0 a3b0 a3b0 a3b0 a3b0 a3b0 -492 a3b1 a3b1 a3b1 * 2562 * 8ea1a5e2,a5e2,8ea1a5e2v,a5e2v 3120 e384a0 3120 00003120 a3b1 a3b1 a3b1 a3b1 a3b1 a3b1 a3b1 -493 a3b2 a3b2 a3b2 * 2563 * 8ea1a5e3,a5e3,8ea1a5e3v,a5e3v 3121 e384a1 3121 00003121 a3b2 a3b2 a3b2 a3b2 a3b2 a3b2 a3b2 -494 a3b3 a3b3 a3b3 * 2564 * 8ea1a5e4,a5e4,8ea1a5e4v,a5e4v 3122 e384a2 3122 00003122 a3b3 a3b3 a3b3 a3b3 a3b3 a3b3 a3b3 -495 a3b4 a3b4 a3b4 * 2565 * 8ea1a5e5,a5e5,8ea1a5e5v,a5e5v 3123 e384a3 3123 00003123 a3b4 a3b4 a3b4 a3b4 a3b4 a3b4 a3b4 -496 a3b5 a3b5 a3b5 * 2566 * 8ea1a5e6,a5e6,8ea1a5e6v,a5e6v 3124 e384a4 3124 00003124 a3b5 a3b5 a3b5 a3b5 a3b5 a3b5 a3b5 -497 a3b6 a3b6 a3b6 * 2567 * 8ea1a5e7,a5e7,8ea1a5e7v,a5e7v 3125 e384a5 3125 00003125 a3b6 a3b6 a3b6 a3b6 a3b6 a3b6 a3b6 -498 a3b7 a3b7 a3b7 * 2568 * 8ea1a5e8,a5e8,8ea1a5e8v,a5e8v 3126 e384a6 3126 00003126 a3b7 a3b7 a3b7 a3b7 a3b7 a3b7 a3b7 -499 a3b8 a3b8 a3b8 * 2569 * 8ea1a5e9,a5e9,8ea1a5e9v,a5e9v 3127 e384a7 3127 00003127 a3b8 a3b8 a3b8 a3b8 a3b8 a3b8 a3b8 -500 a3b9 a3b9 a3b9 * 256a * 8ea1a5ea,a5ea,8ea1a5eav,a5eav 3128 e384a8 3128 00003128 a3b9 a3b9 a3b9 a3b9 a3b9 a3b9 a3b9 -501 a3ba a3ba a3ba * 256b * 8ea1a5eb,a5eb,8ea1a5ebv,a5ebv 3129 e384a9 3129 00003129 a3ba a3ba a3ba a3ba a3ba a3ba a3ba -502 a3bb a3bb a3bb * 256c * 8ea1a5ec,a5ec,8ea1a5ecv,a5ecv 02d9 cb99 02d9 000002d9 a3bb a3bb a3bb a3bb a3bb a3bb a3bb -503 a3bd a3bd a3bd * 256e * 8ea1a5ee,a5ee,8ea1a5eev,a5eev 02ca cb8a 02ca 000002ca a3bd a3bd a3bd a3bd a3bd a3bd a3bd -504 a3be a3be a3be * 256f * 8ea1a5ef,a5ef,8ea1a5efv,a5efv 02c7 cb87,cc8c 02c7,030c 000002c7,0000030c a3be a3be a3be a3be a3be a3be a3be -505 a3bf a3bf a3bf * 2570 * 8ea1a5f0,a5f0,8ea1a5f0v,a5f0v 02cb cb8b 02cb 000002cb a3bf a3bf a3bf a3bf a3bf a3bf a3bf -506 * * c6a1 * 2621 * 8ea1a6a1,a6a1,8ea1a6a1v,a6a1v 2460 e291a0,ef9ab1 2460,f6b1 00002460,0000f6b1 c6a1 * * * * * c6a1 -507 * * c6a2 * 2622 * 8ea1a6a2,a6a2,8ea1a6a2v,a6a2v 2461 e291a1,ef9ab2 2461,f6b2 00002461,0000f6b2 c6a2 * * * * * c6a2 -508 * * c6a3 * 2623 * 8ea1a6a3,a6a3,8ea1a6a3v,a6a3v 2462 e291a2,ef9ab3 2462,f6b3 00002462,0000f6b3 c6a3 * * * * * c6a3 -509 * * c6a4 * 2624 * 8ea1a6a4,a6a4,8ea1a6a4v,a6a4v 2463 e291a3,ef9ab4 2463,f6b4 00002463,0000f6b4 c6a4 * * * * * c6a4 -510 * * c6a5 * 2625 * 8ea1a6a5,a6a5,8ea1a6a5v,a6a5v 2464 e291a4,ef9ab5 2464,f6b5 00002464,0000f6b5 c6a5 * * * * * c6a5 -511 * * c6a6 * 2626 * 8ea1a6a6,a6a6,8ea1a6a6v,a6a6v 2465 e291a5,ef9ab6 2465,f6b6 00002465,0000f6b6 c6a6 * * * * * c6a6 -512 * * c6a7 * 2627 * 8ea1a6a7,a6a7,8ea1a6a7v,a6a7v 2466 e291a6,ef9ab7 2466,f6b7 00002466,0000f6b7 c6a7 * * * * * c6a7 -513 * * c6a8 * 2628 * 8ea1a6a8,a6a8,8ea1a6a8v,a6a8v 2467 e291a7,ef9ab8 2467,f6b8 00002467,0000f6b8 c6a8 * * * * * c6a8 -514 * * c6a9 * 2629 * 8ea1a6a9,a6a9,8ea1a6a9v,a6a9v 2468 e291a8,ef9ab9 2468,f6b9 00002468,0000f6b9 c6a9 * * * * * c6a9 -515 * * c6aa * 262a * 8ea1a6aa,a6aa,8ea1a6aav,a6aav 2469 e291a9,ef9aba 2469,f6ba 00002469,0000f6ba c6aa * * * * * c6aa -516 * * c6ab * 262b * 8ea1a6ab,a6ab,8ea1a6abv,a6abv 2474 e291b4,ef9abb 2474,f6bb 00002474,0000f6bb c6ab * * * * * c6ab -517 * * c6ac * 262c * 8ea1a6ac,a6ac,8ea1a6acv,a6acv 2475 e291b5,ef9abc 2475,f6bc 00002475,0000f6bc c6ac * * * * * c6ac -518 * * c6ad * 262d * 8ea1a6ad,a6ad,8ea1a6adv,a6adv 2476 e291b6,ef9abd 2476,f6bd 00002476,0000f6bd c6ad * * * * * c6ad -519 * * c6ae * 262e * 8ea1a6ae,a6ae,8ea1a6aev,a6aev 2477 e291b7,ef9abe 2477,f6be 00002477,0000f6be c6ae * * * * * c6ae -520 * * c6af * 262f * 8ea1a6af,a6af,8ea1a6afv,a6afv 2478 e291b8,ef9abf 2478,f6bf 00002478,0000f6bf c6af * * * * * c6af -521 * * c6b0 * 2630 * 8ea1a6b0,a6b0,8ea1a6b0v,a6b0v 2479 e291b9,ef9b80 2479,f6c0 00002479,0000f6c0 c6b0 * * * * * c6b0 -522 * * c6b1 * 2631 * 8ea1a6b1,a6b1,8ea1a6b1v,a6b1v 247a e291ba,ef9b81 247a,f6c1 0000247a,0000f6c1 c6b1 * * * * * c6b1 -523 * * c6b2 * 2632 * 8ea1a6b2,a6b2,8ea1a6b2v,a6b2v 247b e291bb,ef9b82 247b,f6c2 0000247b,0000f6c2 c6b2 * * * * * c6b2 -524 * * c6b3 * 2633 * 8ea1a6b3,a6b3,8ea1a6b3v,a6b3v 247c e291bc,ef9b83 247c,f6c3 0000247c,0000f6c3 c6b3 * * * * * c6b3 -525 * * c6b4 * 2634 * 8ea1a6b4,a6b4,8ea1a6b4v,a6b4v 247d e291bd,ef9b84 247d,f6c4 0000247d,0000f6c4 c6b4 * * * * * c6b4 -526 * * c6b5 * 2635 * 8ea1a6b5,a6b5,8ea1a6b5v,a6b5v 2170 e285b0,ef9b85 2170,f6c5 00002170,0000f6c5 c6b5 * * * * * c6b5 -527 * * c6b6 * 2636 * 8ea1a6b6,a6b6,8ea1a6b6v,a6b6v 2171 e285b1,ef9b86 2171,f6c6 00002171,0000f6c6 c6b6 * * * * * c6b6 -528 * * c6b7 * 2637 * 8ea1a6b7,a6b7,8ea1a6b7v,a6b7v 2172 e285b2,ef9b87 2172,f6c7 00002172,0000f6c7 c6b7 * * * * * c6b7 -529 * * c6b8 * 2638 * 8ea1a6b8,a6b8,8ea1a6b8v,a6b8v 2173 e285b3,ef9b88 2173,f6c8 00002173,0000f6c8 c6b8 * * * * * c6b8 -530 * * c6b9 * 2639 * 8ea1a6b9,a6b9,8ea1a6b9v,a6b9v 2174 e285b4,ef9b89 2174,f6c9 00002174,0000f6c9 c6b9 * * * * * c6b9 -531 * * c6ba * 263a * 8ea1a6ba,a6ba,8ea1a6bav,a6bav 2175 e285b5,ef9b8a 2175,f6ca 00002175,0000f6ca c6ba * * * * * c6ba -532 * * c6bb * 263b * 8ea1a6bb,a6bb,8ea1a6bbv,a6bbv 2176 e285b6,ef9b8b 2176,f6cb 00002176,0000f6cb c6bb * * * * * c6bb -533 * * c6bc * 263c * 8ea1a6bc,a6bc,8ea1a6bcv,a6bcv 2177 e285b7,ef9b8c 2177,f6cc 00002177,0000f6cc c6bc * * * * * c6bc -534 * * c6bd * 263d * 8ea1a6bd,a6bd,8ea1a6bdv,a6bdv 2178 e285b8,ef9b8d 2178,f6cd 00002178,0000f6cd c6bd * * * * * c6bd -535 * * c6be * 263e * 8ea1a6be,a6be,8ea1a6bev,a6bev 2179 e285b9,ef9b8e 2179,f6ce 00002179,0000f6ce c6be * * * * * c6be -536 * * * * 2722 * 8ea1a7a2,a7a2,8ea1a7a2v,a7a2v 4e28 e4b8a8,e2bc81 4e28,2f01 00004e28,00002f01 * * * * * * * -537 * * c6bf * 2723 * 8ea1a7a3,a7a3,8ea1a7a3v,a7a3v 4e36 e4b8b6,e2bc82,ef9b8f 4e36,2f02,f6cf 00004e36,00002f02,0000f6cf c6bf * * * * * c6bf -538 * * c6c0 * 2724 * 8ea1a7a4,a7a4,8ea1a7a4v,a7a4v 4e3f e4b8bf,e2bc83,ef9b90 4e3f,2f03,f6d0 00004e3f,00002f03,0000f6d0 c6c0 * * * * * c6c0 -539 * * c6c1 * 2726 * 8ea1a7a6,a7a6,8ea1a7a6v,a7a6v 4e85 e2bc85,e4ba85,ef9b91 2f05,4e85,f6d1 00002f05,00004e85,0000f6d1 c6c1 * * * * * c6c1 -540 * * c6c2 * 2728 * 8ea1a7a8,a7a8,8ea1a7a8v,a7a8v 4ea0 e2bc87,e4baa0,ef9b92 2f07,4ea0,f6d2 00002f07,00004ea0,0000f6d2 c6c2 * * * * * c6c2 -541 * * c6c3 * 272d * 8ea1a7ad,a7ad,8ea1a7adv,a7adv 5182 e58682,e2bc8c,ef9b93 5182,2f0c,f6d3 00005182,00002f0c,0000f6d3 c6c3 * * * * * c6c3 -542 * * c6c4 * 272e * 8ea1a7ae,a7ae,8ea1a7aev,a7aev 5196 e58696,e2bc8d,ef9b94 5196,2f0d,f6d4 00005196,00002f0d,0000f6d4 c6c4 * * * * * c6c4 -543 * * c6c5 * 272f * 8ea1a7af,a7af,8ea1a7afv,a7afv 51ab e586ab,e2bc8e,ef9b95 51ab,2f0e,f6d5 000051ab,00002f0e,0000f6d5 c6c5 * * * * * c6c5 -544 * * c6c6 * 2734 * 8ea1a7b4,a7b4,8ea1a7b4v,a7b4v 52f9 e2bc93,e58bb9,ef9b96 2f13,52f9,f6d6 00002f13,000052f9,0000f6d6 c6c6 * * * * * c6c6 -545 * * c6c7 * 2737 * 8ea1a7b7,a7b7,8ea1a7b7v,a7b7v 5338 e2bc96,e58cb8,ef9b97 2f16,5338,f6d7 00002f16,00005338,0000f6d7 c6c7 * * * * * c6c7 -546 * * c6c8 * 273a * 8ea1a7ba,a7ba,8ea1a7bav,a7bav 5369 e2bc99,e58da9,ef9b98 2f19,5369,f6d8 00002f19,00005369,0000f6d8 c6c8 * * * * * c6c8 -547 * * c6c9 * 273c * 8ea1a7bc,a7bc,8ea1a7bcv,a7bcv 53b6 e2bc9b,e58eb6,ef9b99 2f1b,53b6,f6d9 00002f1b,000053b6,0000f6d9 c6c9 * * * * * c6c9 -548 * * c6ca * 2742 * 8ea1a7c2,a7c2,8ea1a7c2v,a7c2v 5902,590a e2bca2,e5a48a,ef9b9a 2f22,590a,f6da 00002f22,0000590a,0000f6da c6ca * * * * * c6ca -549 * * c6cb * 2747 * 8ea1a7c7,a7c7,8ea1a7c7v,a7c7v 5b80 e2bca7,e5ae80,ef9b9b 2f27,5b80,f6db 00002f27,00005b80,0000f6db c6cb * * * * * c6cb -550 * * c6cc * 274e * 8ea1a7ce,a7ce,8ea1a7cev,a7cev 5ddb e2bcae,e5b79b,ef9b9c 2f2e,5ddb,f6dc 00002f2e,00005ddb,0000f6dc c6cc * 91b0 * * * c6cc -551 * * c6cd * 2753 * 8ea1a7d3,a7d3,8ea1a7d3v,a7d3v 2f33,5e7a e5b9ba,e2bcb3,ef9b9d 5e7a,2f33,f6dd 00005e7a,00002f33,0000f6dd c6cd * * * * * c6cd -552 * * c6ce * 2754 * 8ea1a7d4,a7d4,8ea1a7d4v,a7d4v 5e7f e5b9bf,e2bcb4,ef9b9e 5e7f,2f34,f6de 00005e7f,00002f34,0000f6de c6ce * 9159 * * * c6ce -553 * * c6cf * 2755 * 8ea1a7d5,a7d5,8ea1a7d5v,a7d5v 5ef4 e5bbb4,e2bcb5 5ef4,2f35 00005ef4,00002f35 c6cf * * * * * * -554 * * c6d0 * 2759 * 8ea1a7d9,a7d9,8ea1a7d9v,a7d9v 5f50 e5bd90,e2bcb9,ef9ba0 5f50,2f39,f6e0 00005f50,00002f39,0000f6e0 c6d0 * * * * * c6d0 -555 * * c6d1 * 275a * 8ea1a7da,a7da,8ea1a7dav,a7dav 5f61 e5bda1,e2bcba,ef9ba1 5f61,2f3a,f6e1 00005f61,00002f3a,0000f6e1 c6d1 * * * * * c6d1 -556 * * c6d2 * 2761 * 8ea1a7e1,a7e1,8ea1a7e1v,a7e1v 6534 e2bd81,e694b4,ef9ba2 2f41,6534,f6e2 00002f41,00006534,0000f6e2 c6d2 * * * * * c6d2 -557 * * c6d3 * 2766 * 8ea1a7e6,a7e6,8ea1a7e6v,a7e6v 65e0 e2bd86,e697a0 2f46,65e0 00002f46,000065e0 c6d3 * * * * * * -558 * * c6d4 * 2829 * 8ea1a8a9,a8a9,8ea1a8a9v,a8a9v 7592 e79692,ef9ba4,e2bda7 7592,f6e4,2f67 00007592,0000f6e4,00002f67 c6d4 * * * * * c6d4 -559 * * c6d5 * 282a * 8ea1a8aa,a8aa,8ea1a8aav,a8aav 7676 e799b6,e2bda8 7676,2f68 00007676,00002f68 c6d5 * * * * * * -560 * * c6d6 * 2863 * 8ea1a8e3,a8e3,8ea1a8e3v,a8e3v 8fb5 e2bea1,e8beb5,ef9ba6 2fa1,8fb5,f6e6 00002fa1,00008fb5,0000f6e6 c6d6 * 90c4 * * * c6d6 -561 * * c6d7 * 286c * 8ea1a8ec,a8ec,8ea1a8ecv,a8ecv 96b6 e2beaa,e99ab6 2faa,96b6 00002faa,000096b6 c6d7 * * * * * * -562 * a3c0 * * 4221 * 8ea1c2a1,c2a1,8ea1c2a1v,c2a1v 2400 e29080 2400 00002400 * * * * * * * -563 * a3c1 * * 4222 * 8ea1c2a2,c2a2,8ea1c2a2v,c2a2v 2401 e29081 2401 00002401 * * * * * * * -564 * a3c2 * * 4223 * 8ea1c2a3,c2a3,8ea1c2a3v,c2a3v 2402 e29082 2402 00002402 * * * * * * * -565 * a3c3 * * 4224 * 8ea1c2a4,c2a4,8ea1c2a4v,c2a4v 2403 e29083 2403 00002403 * * * * * * * -566 * a3c4 * * 4225 * 8ea1c2a5,c2a5,8ea1c2a5v,c2a5v 2404 e29084 2404 00002404 * * * * * * * -567 * a3c5 * * 4226 * 8ea1c2a6,c2a6,8ea1c2a6v,c2a6v 2405 e29085 2405 00002405 * * * * * * * -568 * a3c6 * * 4227 * 8ea1c2a7,c2a7,8ea1c2a7v,c2a7v 2406 e29086 2406 00002406 * * * * * * * -569 * a3c7 * * 4228 * 8ea1c2a8,c2a8,8ea1c2a8v,c2a8v 2407 e29087 2407 00002407 * * * * * * * -570 * a3c8 * * 4229 * 8ea1c2a9,c2a9,8ea1c2a9v,c2a9v 2408 e29088 2408 00002408 * * * * * * * -571 * a3c9 * * 422a * 8ea1c2aa,c2aa,8ea1c2aav,c2aav 2409 e29089 2409 00002409 * * * * * * * -572 * a3ca * * 422b * 8ea1c2ab,c2ab,8ea1c2abv,c2abv 240a e2908a 240a 0000240a * * * * * * * -573 * a3cb * * 422c * 8ea1c2ac,c2ac,8ea1c2acv,c2acv 240b e2908b 240b 0000240b * * * * * * * -574 * a3cc * * 422d * 8ea1c2ad,c2ad,8ea1c2adv,c2adv 240c e2908c 240c 0000240c * * * * * * * -575 * a3cd * * 422e * 8ea1c2ae,c2ae,8ea1c2aev,c2aev 240d e2908d 240d 0000240d * * * * * * * -576 * a3ce * * 422f * 8ea1c2af,c2af,8ea1c2afv,c2afv 240e e2908e 240e 0000240e * * * * * * * -577 * a3cf * * 4230 * 8ea1c2b0,c2b0,8ea1c2b0v,c2b0v 240f e2908f 240f 0000240f * * * * * * * -578 * a3d0 * * 4231 * 8ea1c2b1,c2b1,8ea1c2b1v,c2b1v 2410 e29090 2410 00002410 * * * * * * * -579 * a3d1 * * 4232 * 8ea1c2b2,c2b2,8ea1c2b2v,c2b2v 2411 e29091 2411 00002411 * * * * * * * -580 * a3d2 * * 4233 * 8ea1c2b3,c2b3,8ea1c2b3v,c2b3v 2412 e29092 2412 00002412 * * * * * * * -581 * a3d3 * * 4234 * 8ea1c2b4,c2b4,8ea1c2b4v,c2b4v 2413 e29093 2413 00002413 * * * * * * * -582 * a3d4 * * 4235 * 8ea1c2b5,c2b5,8ea1c2b5v,c2b5v 2414 e29094 2414 00002414 * * * * * * * -583 * a3d5 * * 4236 * 8ea1c2b6,c2b6,8ea1c2b6v,c2b6v 2415 e29095 2415 00002415 * * * * * * * -584 * a3d6 * * 4237 * 8ea1c2b7,c2b7,8ea1c2b7v,c2b7v 2416 e29096 2416 00002416 * * * * * * * -585 * a3d7 * * 4238 * 8ea1c2b8,c2b8,8ea1c2b8v,c2b8v 2417 e29097 2417 00002417 * * * * * * * -586 * a3d8 * * 4239 * 8ea1c2b9,c2b9,8ea1c2b9v,c2b9v 2418 e29098 2418 00002418 * * * * * * * -587 * a3d9 * * 423a * 8ea1c2ba,c2ba,8ea1c2bav,c2bav 2419 e29099 2419 00002419 * * * * * * * -588 * a3da * * 423b * 8ea1c2bb,c2bb,8ea1c2bbv,c2bbv 241a e2909a 241a 0000241a * * * * * * * -589 * a3db * * 423c * 8ea1c2bc,c2bc,8ea1c2bcv,c2bcv 241b e2909b 241b 0000241b * * * * * * * -590 * a3dc * * 423d * 8ea1c2bd,c2bd,8ea1c2bdv,c2bdv 241c e2909c 241c 0000241c * * * * * * * -591 * a3dd * * 423e * 8ea1c2be,c2be,8ea1c2bev,c2bev 241d e2909d 241d 0000241d * * * * * * * -592 * a3de * * 423f * 8ea1c2bf,c2bf,8ea1c2bfv,c2bfv 241e e2909e 241e 0000241e * * * * * * * -593 * a3df * * 4240 * 8ea1c2c0,c2c0,8ea1c2c0v,c2c0v 241f e2909f 241f 0000241f * * * * * * * -594 * a3e0 * * 4241 * 8ea1c2c1,c2c1,8ea1c2c1v,c2c1v 2421 e290a1 2421 00002421 * * * * * * * -595 a440 a440 a440 * 2721,4421 * 8ea1a7a1,8ea1c4a1,a7a1,c4a1,8ea1a7a1v,8ea1c4a1v,a7a1v,c4a1v 4e00 e2bc80,e4b880 2f00,4e00 00002f00,00004e00 a440 a440 a440 a440 a440 a440 a440 -596 a441 a441 a441 * 2725,4422 * 8ea1a7a5,8ea1c4a2,a7a5,c4a2,8ea1a7a5v,8ea1c4a2v,a7a5v,c4a2v 4e59 e2bc84,e4b999 2f04,4e59 00002f04,00004e59 a441 a441 a441 a441 a441 a441 a441 -597 a442 a442 a442 * 4423 * 8ea1c4a3,c4a3,8ea1c4a3v,c4a3v 4e01 e4b881 4e01 00004e01 a442 a442 a442 a442 a442 a442 a442 -598 a443 a443 a443 * 4424 * 8ea1c4a4,c4a4,8ea1c4a4v,c4a4v 4e03 e4b883 4e03 00004e03 a443 a443 a443 a443 a443 a443 a443 -599 a444 a444 a444 * 4425 * 8ea1c4a5,c4a5,8ea1c4a5v,c4a5v 4e43 e4b983 4e43 00004e43 a444 a444 a444 a444 a444 a444 a444 -600 a445 a445 a445 * 4426 * 8ea1c4a6,c4a6,8ea1c4a6v,c4a6v 4e5d e4b99d 4e5d 00004e5d a445 a445 a445 a445 a445 a445 a445 -601 a446 a446 a446 * 4427 * 8ea1c4a7,c4a7,8ea1c4a7v,c4a7v 4e86 e4ba86 4e86 00004e86 a446 a446 a446 a446 a446 a446 a446 -602 a447 a447 a447 * 2727,4428 * 8ea1a7a7,8ea1c4a8,a7a7,c4a8,8ea1a7a7v,8ea1c4a8v,a7a7v,c4a8v 4e8c e2bc86,e4ba8c 2f06,4e8c 00002f06,00004e8c a447 a447 a447 a447 a447 a447 a447 -603 a448 a448 a448 * 2729,4429 * 8ea1a7a9,8ea1c4a9,a7a9,c4a9,8ea1a7a9v,8ea1c4a9v,a7a9v,c4a9v 4eba e4baba,e2bc88 4eba,2f08 00004eba,00002f08 a448 a448 a448 a448 a448 a448 a448 -604 a449 a449 a449 * 272a,442a * 8ea1a7aa,8ea1c4aa,a7aa,c4aa,8ea1a7aav,8ea1c4aav,a7aav,c4aav 513f e584bf,e2bc89 513f,2f09 0000513f,00002f09 a449 a449 a449 a449 a449 a449 a449 -605 a44a a44a a44a * 272b,442b * 8ea1a7ab,8ea1c4ab,a7ab,c4ab,8ea1a7abv,8ea1c4abv,a7abv,c4abv 5165 e585a5,e2bc8a 5165,2f0a 00005165,00002f0a a44a a44a a44a a44a a44a a44a a44a -606 a44b a44b a44b * 272c,442c * 8ea1a7ac,8ea1c4ac,a7ac,c4ac,8ea1a7acv,8ea1c4acv,a7acv,c4acv 516b e585ab,e2bc8b 516b,2f0b 0000516b,00002f0b a44b a44b a44b a44b a44b a44b a44b -607 a44c a44c a44c * 2730,442d * 8ea1a7b0,8ea1c4ad,a7b0,c4ad,8ea1a7b0v,8ea1c4adv,a7b0v,c4adv 51e0 e2bc8f,e587a0 2f0f,51e0 00002f0f,000051e0 a44c a44c a44c a44c a44c a44c a44c -608 a44d a44d a44d * 2732,442e * 8ea1a7b2,8ea1c4ae,a7b2,c4ae,8ea1a7b2v,8ea1c4aev,a7b2v,c4aev 5200 e2bc91,e58880 2f11,5200 00002f11,00005200 a44d a44d a44d a44d a44d a44d a44d -609 a44e a44e a44e * 442f * 8ea1c4af,c4af,8ea1c4afv,c4afv 5201 e58881 5201 00005201 a44e a44e a44e a44e a44e a44e a44e -610 a44f a44f a44f * 2733,4430 * 8ea1a7b3,8ea1c4b0,a7b3,c4b0,8ea1a7b3v,8ea1c4b0v,a7b3v,c4b0v 529b e2bc92,e58a9b 2f12,529b 00002f12,0000529b a44f a44f a44f a44f a44f a44f a44f -611 a450 a450 a450 * 2735,4431 * 8ea1a7b5,8ea1c4b1,a7b5,c4b1,8ea1a7b5v,8ea1c4b1v,a7b5v,c4b1v 5315 e2bc94,e58c95 2f14,5315 00002f14,00005315 a450 a450 a450 a450 a450 a450 a450 -612 a451 a451 a451 * 2738,4432 * 8ea1a7b8,8ea1c4b2,a7b8,c4b2,8ea1a7b8v,8ea1c4b2v,a7b8v,c4b2v 5341 e58d81,e2bc97 5341,2f17 00005341,00002f17 a451 a451 a451 a451 a451 a451 a451 -613 a452 a452 a452 * 2739,4433 * 8ea1a7b9,8ea1c4b3,a7b9,c4b3,8ea1a7b9v,8ea1c4b3v,a7b9v,c4b3v 535c e58d9c,e2bc98 535c,2f18 0000535c,00002f18 a452 a452 a452 a452 a452 a452 a452 -614 a453 a453 a453 * 273d,4434 * 8ea1a7bd,8ea1c4b4,a7bd,c4b4,8ea1a7bdv,8ea1c4b4v,a7bdv,c4b4v 53c8 e2bc9c,e58f88 2f1c,53c8 00002f1c,000053c8 a453 a453 a453 a453 a453 a453 a453 -615 a454 a454 a454 * 4435 * 8ea1c4b5,c4b5,8ea1c4b5v,c4b5v 4e09 e4b889 4e09 00004e09 a454 a454 a454 a454 a454 a454 a454 -616 a455 a455 a455 * 4436 * 8ea1c4b6,c4b6,8ea1c4b6v,c4b6v 4e0b e4b88b 4e0b 00004e0b a455 a455 a455 a455 a455 a455 a455 -617 a456 a456 a456 * 4437 * 8ea1c4b7,c4b7,8ea1c4b7v,c4b7v 4e08 e4b888 4e08 00004e08 a456 a456 a456 a456 a456 a456 a456 -618 a457 a457 a457 * 4438 * 8ea1c4b8,c4b8,8ea1c4b8v,c4b8v 4e0a e4b88a 4e0a 00004e0a a457 a457 a457 a457 a457 a457 a457 -619 a458 a458 a458 * 4439 * 8ea1c4b9,c4b9,8ea1c4b9v,c4b9v 4e2b e4b8ab 4e2b 00004e2b a458 a458 a458 a458 a458 a458 a458 -620 a459 a459 a459 * 443a * 8ea1c4ba,c4ba,8ea1c4bav,c4bav 4e38 e4b8b8 4e38 00004e38 a459 a459 a459 a459 a459 a459 a459 -621 a45a a45a a45a * 443b * 8ea1c4bb,c4bb,8ea1c4bbv,c4bbv 51e1 e587a1 51e1 000051e1 a45a a45a a45a a45a a45a a45a a45a -622 a45b a45b a45b * 443c * 8ea1c4bc,c4bc,8ea1c4bcv,c4bcv 4e45 e4b985 4e45 00004e45 a45b a45b a45b a45b a45b a45b a45b -623 a45c a45c a45c * 443d * 8ea1c4bd,c4bd,8ea1c4bdv,c4bdv 4e48 e4b988 4e48 00004e48 a45c a45c a45c a45c a45c a45c a45c -624 a45d a45d a45d * 443e * 8ea1c4be,c4be,8ea1c4bev,c4bev 4e5f e4b99f 4e5f 00004e5f a45d a45d a45d a45d a45d a45d a45d -625 a45e a45e a45e * 443f * 8ea1c4bf,c4bf,8ea1c4bfv,c4bfv 4e5e e4b99e 4e5e 00004e5e a45e a45e a45e a45e a45e a45e a45e -626 a45f a45f a45f * 4440 * 8ea1c4c0,c4c0,8ea1c4c0v,c4c0v 4e8e e4ba8e 4e8e 00004e8e a45f a45f a45f a45f a45f a45f a45f -627 a460 a460 a460 * 4441 * 8ea1c4c1,c4c1,8ea1c4c1v,c4c1v 4ea1 e4baa1 4ea1 00004ea1 a460 a460 a460 a460 a460 a460 a460 -628 a461,c94a a461,c94a a461,c94a * 4442 * 8ea1c4c2,c4c2,8ea1c4c2v,c4c2v 5140,fa0c e58580,efa88c 5140,fa0c 00005140,0000fa0c c94a,a461 a461,c94a a461,c94a a461,c94a a461,c94a a461,c94a c94a,a461 -629 a462 a462 a462 * 4443 * 8ea1c4c3,c4c3,8ea1c4c3v,c4c3v 5203 e58883 5203 00005203 a462 a462 a462 a462 a462 a462 a462 -630 a463 a463 a463 * 4444 * 8ea1c4c4,c4c4,8ea1c4c4v,c4c4v 52fa e58bba 52fa 000052fa a463 a463 a463 a463 a463 a463 a463 -631 a464 a464 a464 * 4445 * 8ea1c4c5,c4c5,8ea1c4c5v,c4c5v 5343 e58d83 5343 00005343 a464 a464 a464 a464 a464 a464 a464 -632 a465 a465 a465 * 4446 * 8ea1c4c6,c4c6,8ea1c4c6v,c4c6v 53c9 e58f89 53c9 000053c9 a465 a465 a465 a465 a465 a465 a465 -633 a466 a466 a466 * 273e,4447 * 8ea1a7be,8ea1c4c7,a7be,c4c7,8ea1a7bev,8ea1c4c7v,a7bev,c4c7v 53e3 e2bc9d,e58fa3 2f1d,53e3 00002f1d,000053e3 a466 a466 a466 a466 a466 a466 a466 -634 a467 a467 a467 * 2740,4448 * 8ea1a7c0,8ea1c4c8,a7c0,c4c8,8ea1a7c0v,8ea1c4c8v,a7c0v,c4c8v 571f e59c9f,e2bc9f 571f,2f1f 0000571f,00002f1f a467 a467 a467 a467 a467 a467 a467 -635 a468 a468 a468 * 2741,4449 * 8ea1a7c1,8ea1c4c9,a7c1,c4c9,8ea1a7c1v,8ea1c4c9v,a7c1v,c4c9v 58eb e5a3ab,e2bca0 58eb,2f20 000058eb,00002f20 a468 a468 a468 a468 a468 a468 a468 -636 a469 a469 a469 * 2743,444a * 8ea1a7c3,8ea1c4ca,a7c3,c4ca,8ea1a7c3v,8ea1c4cav,a7c3v,c4cav 5915 e5a495,e2bca3 5915,2f23 00005915,00002f23 a469 a469 a469 a469 a469 a469 a469 -637 a46a a46a a46a * 2744,444b * 8ea1a7c4,8ea1c4cb,a7c4,c4cb,8ea1a7c4v,8ea1c4cbv,a7c4v,c4cbv 5927 e5a4a7,e2bca4 5927,2f24 00005927,00002f24 a46a a46a a46a a46a a46a a46a a46a -638 a46b a46b a46b * 2745,444c * 8ea1a7c5,8ea1c4cc,a7c5,c4cc,8ea1a7c5v,8ea1c4ccv,a7c5v,c4ccv 5973 e5a5b3,e2bca5 5973,2f25 00005973,00002f25 a46b a46b a46b a46b a46b a46b a46b -639 a46c a46c a46c * 2746,444d * 8ea1a7c6,8ea1c4cd,a7c6,c4cd,8ea1a7c6v,8ea1c4cdv,a7c6v,c4cdv 5b50 e2bca6,e5ad90 2f26,5b50 00002f26,00005b50 a46c a46c a46c a46c a46c a46c a46c -640 a46d a46d a46d * 444e * 8ea1c4ce,c4ce,8ea1c4cev,c4cev 5b51 e5ad91 5b51 00005b51 a46d a46d a46d a46d a46d a46d a46d -641 a46e a46e a46e * 444f * 8ea1c4cf,c4cf,8ea1c4cfv,c4cfv 5b53 e5ad93 5b53 00005b53 a46e a46e a46e a46e a46e a46e a46e -642 a46f a46f a46f * 2748,4450 * 8ea1a7c8,8ea1c4d0,a7c8,c4d0,8ea1a7c8v,8ea1c4d0v,a7c8v,c4d0v 5bf8 e5afb8,e2bca8 5bf8,2f28 00005bf8,00002f28 a46f a46f a46f a46f a46f a46f a46f -643 a470 a470 a470 * 2749,4451 * 8ea1a7c9,8ea1c4d1,a7c9,c4d1,8ea1a7c9v,8ea1c4d1v,a7c9v,c4d1v 5c0f e5b08f,e2bca9 5c0f,2f29 00005c0f,00002f29 a470 a470 a470 a470 a470 a470 a470 -644 a471 a471 a471 * 274a,4452 * 8ea1a7ca,8ea1c4d2,a7ca,c4d2,8ea1a7cav,8ea1c4d2v,a7cav,c4d2v 5c22 e5b0a2,e2bcaa 5c22,2f2a 00005c22,00002f2a a471 a471 a471 a471 a471 a471 a471 -645 a472 a472 a472 * 274b,4453 * 8ea1a7cb,8ea1c4d3,a7cb,c4d3,8ea1a7cbv,8ea1c4d3v,a7cbv,c4d3v 5c38 e5b0b8,e2bcab 5c38,2f2b 00005c38,00002f2b a472 a472 a472 a472 a472 a472 a472 -646 a473 a473 a473 * 274d,4454 * 8ea1a7cd,8ea1c4d4,a7cd,c4d4,8ea1a7cdv,8ea1c4d4v,a7cdv,c4d4v 5c71 e2bcad,e5b1b1 2f2d,5c71 00002f2d,00005c71 a473 a473 a473 a473 a473 a473 a473 -647 a474 a474 a474 * 4455 * 8ea1c4d5,c4d5,8ea1c4d5v,c4d5v 5ddd e5b79d 5ddd 00005ddd a474 a474 a474 a474 a474 a474 a474 -648 a475 a475 a475 * 274f,4456 * 8ea1a7cf,8ea1c4d6,a7cf,c4d6,8ea1a7cfv,8ea1c4d6v,a7cfv,c4d6v 5de5 e5b7a5,e2bcaf 5de5,2f2f 00005de5,00002f2f a475 a475 a475 a475 a475 a475 a475 -649 a476 a476 a476 * 2750,4457 * 8ea1a7d0,8ea1c4d7,a7d0,c4d7,8ea1a7d0v,8ea1c4d7v,a7d0v,c4d7v 5df1 e2bcb0,e5b7b1 2f30,5df1 00002f30,00005df1 a476 a476 a476 a476 a476 a476 a476 -650 a477 a477 a477 * 4458 * 8ea1c4d8,c4d8,8ea1c4d8v,c4d8v 5df2 e5b7b2 5df2 00005df2 a477 a477 a477 a477 a477 a477 a477 -651 a478 a478 a478 * 4459 * 8ea1c4d9,c4d9,8ea1c4d9v,c4d9v 5df3 e5b7b3 5df3 00005df3 a478 a478 a478 a478 a478 a478 a478 -652 a479 a479 a479 * 2751,445a * 8ea1a7d1,8ea1c4da,a7d1,c4da,8ea1a7d1v,8ea1c4dav,a7d1v,c4dav 5dfe e5b7be,e2bcb1 5dfe,2f31 00005dfe,00002f31 a479 a479 a479 a479 a479 a479 a479 -653 a47a a47a a47a * 2752,445b * 8ea1a7d2,8ea1c4db,a7d2,c4db,8ea1a7d2v,8ea1c4dbv,a7d2v,c4dbv 5e72 e5b9b2,e2bcb2 5e72,2f32 00005e72,00002f32 a47a a47a a47a a47a a47a a47a a47a -654 a47b a47b a47b * 2756,445c * 8ea1a7d6,8ea1c4dc,a7d6,c4dc,8ea1a7d6v,8ea1c4dcv,a7d6v,c4dcv 5efe e5bbbe,e2bcb6 5efe,2f36 00005efe,00002f36 a47b a47b a47b a47b a47b a47b a47b -655 a47c a47c a47c * 2757,445d * 8ea1a7d7,8ea1c4dd,a7d7,c4dd,8ea1a7d7v,8ea1c4ddv,a7d7v,c4ddv 5f0b e5bc8b,e2bcb7 5f0b,2f37 00005f0b,00002f37 a47c a47c a47c a47c a47c a47c a47c -656 a47d a47d a47d * 2758,445e * 8ea1a7d8,8ea1c4de,a7d8,c4de,8ea1a7d8v,8ea1c4dev,a7d8v,c4dev 5f13 e5bc93,e2bcb8 5f13,2f38 00005f13,00002f38 a47d a47d a47d a47d a47d a47d a47d -657 a47e a47e a47e * 445f * 8ea1c4df,c4df,8ea1c4dfv,c4dfv 624d e6898d 624d 0000624d a47e a47e a47e a47e a47e a47e a47e -658 a4a1 a4a1 a4a1 * 4460 * 8ea1c4e0,c4e0,8ea1c4e0v,c4e0v 4e11 e4b891 4e11 00004e11 a4a1 a4a1 a4a1 a4a1 a4a1 a4a1 a4a1 -659 a4a2 a4a2 a4a2 * 4461 * 8ea1c4e1,c4e1,8ea1c4e1v,c4e1v 4e10 e4b890 4e10 00004e10 a4a2 a4a2 a4a2 a4a2 a4a2 a4a2 a4a2 -660 a4a3 a4a3 a4a3 * 4462 * 8ea1c4e2,c4e2,8ea1c4e2v,c4e2v 4e0d e4b88d 4e0d 00004e0d a4a3 a4a3 a4a3 a4a3 a4a3 a4a3 a4a3 -661 a4a4 a4a4 a4a4 * 4463 * 8ea1c4e3,c4e3,8ea1c4e3v,c4e3v 4e2d e4b8ad 4e2d 00004e2d a4a4 a4a4 a4a4 a4a4 a4a4 a4a4 a4a4 -662 a4a5 a4a5 a4a5 * 4464 * 8ea1c4e4,c4e4,8ea1c4e4v,c4e4v 4e30 e4b8b0 4e30 00004e30 a4a5 a4a5 a4a5 a4a5 a4a5 a4a5 a4a5 -663 a4a6 a4a6 a4a6 * 4465 * 8ea1c4e5,c4e5,8ea1c4e5v,c4e5v 4e39 e4b8b9 4e39 00004e39 a4a6 a4a6 a4a6 a4a6 a4a6 a4a6 a4a6 -664 a4a7 a4a7 a4a7 * 4466 * 8ea1c4e6,c4e6,8ea1c4e6v,c4e6v 4e4b e4b98b 4e4b 00004e4b a4a7 a4a7 a4a7 a4a7 a4a7 a4a7 a4a7 -665 a4a8 a4a8 a4a8 * 4467 * 8ea1c4e7,c4e7,8ea1c4e7v,c4e7v 5c39 e5b0b9 5c39 00005c39 a4a8 a4a8 a4a8 a4a8 a4a8 a4a8 a4a8 -666 a4a9 a4a9 a4a9 * 4468 * 8ea1c4e8,c4e8,8ea1c4e8v,c4e8v 4e88 e4ba88 4e88 00004e88 a4a9 a4a9 a4a9 a4a9 a4a9 a4a9 a4a9 -667 a4aa a4aa a4aa * 4469 * 8ea1c4e9,c4e9,8ea1c4e9v,c4e9v 4e91 e4ba91 4e91 00004e91 a4aa a4aa a4aa a4aa a4aa a4aa a4aa -668 a4ab a4ab a4ab * 446a * 8ea1c4ea,c4ea,8ea1c4eav,c4eav 4e95 e4ba95 4e95 00004e95 a4ab a4ab a4ab a4ab a4ab a4ab a4ab -669 a4ac a4ac a4ac * 446b * 8ea1c4eb,c4eb,8ea1c4ebv,c4ebv 4e92 e4ba92 4e92 00004e92 a4ac a4ac a4ac a4ac a4ac a4ac a4ac -670 a4ad a4ad a4ad * 446c * 8ea1c4ec,c4ec,8ea1c4ecv,c4ecv 4e94 e4ba94 4e94 00004e94 a4ad a4ad a4ad a4ad a4ad a4ad a4ad -671 a4ae a4ae a4ae * 446d * 8ea1c4ed,c4ed,8ea1c4edv,c4edv 4ea2 e4baa2 4ea2 00004ea2 a4ae a4ae a4ae a4ae a4ae a4ae a4ae -672 a4af a4af a4af * 446e * 8ea1c4ee,c4ee,8ea1c4eev,c4eev 4ec1 e4bb81 4ec1 00004ec1 a4af a4af a4af a4af a4af a4af a4af -673 a4b0 a4b0 a4b0 * 446f * 8ea1c4ef,c4ef,8ea1c4efv,c4efv 4ec0 e4bb80 4ec0 00004ec0 a4b0 a4b0 a4b0 a4b0 a4b0 a4b0 a4b0 -674 a4b1 a4b1 a4b1 * 4470 * 8ea1c4f0,c4f0,8ea1c4f0v,c4f0v 4ec3 e4bb83 4ec3 00004ec3 a4b1 a4b1 a4b1 a4b1 a4b1 a4b1 a4b1 -675 a4b2 a4b2 a4b2 * 4471 * 8ea1c4f1,c4f1,8ea1c4f1v,c4f1v 4ec6 e4bb86 4ec6 00004ec6 a4b2 a4b2 a4b2 a4b2 a4b2 a4b2 a4b2 -676 a4b3 a4b3 a4b3 * 4472 * 8ea1c4f2,c4f2,8ea1c4f2v,c4f2v 4ec7 e4bb87 4ec7 00004ec7 a4b3 a4b3 a4b3 a4b3 a4b3 a4b3 a4b3 -677 a4b4 a4b4 a4b4 * 4473 * 8ea1c4f3,c4f3,8ea1c4f3v,c4f3v 4ecd e4bb8d 4ecd 00004ecd a4b4 a4b4 a4b4 a4b4 a4b4 a4b4 a4b4 -678 a4b5 a4b5 a4b5 * 4474 * 8ea1c4f4,c4f4,8ea1c4f4v,c4f4v 4eca e4bb8a 4eca 00004eca a4b5 a4b5 a4b5 a4b5 a4b5 a4b5 a4b5 -679 a4b6 a4b6 a4b6 * 4475 * 8ea1c4f5,c4f5,8ea1c4f5v,c4f5v 4ecb e4bb8b 4ecb 00004ecb a4b6 a4b6 a4b6 a4b6 a4b6 a4b6 a4b6 -680 a4b7 a4b7 a4b7 * 4476 * 8ea1c4f6,c4f6,8ea1c4f6v,c4f6v 4ec4 e4bb84 4ec4 00004ec4 a4b7 a4b7 a4b7 a4b7 a4b7 a4b7 a4b7 -681 a4b8 a4b8 a4b8 * 4477 * 8ea1c4f7,c4f7,8ea1c4f7v,c4f7v 5143 e58583 5143 00005143 a4b8 a4b8 a4b8 a4b8 a4b8 a4b8 a4b8 -682 a4b9 a4b9 a4b9 * 4478 * 8ea1c4f8,c4f8,8ea1c4f8v,c4f8v 5141 e58581 5141 00005141 a4b9 a4b9 a4b9 a4b9 a4b9 a4b9 a4b9 -683 a4ba a4ba a4ba * 4479 * 8ea1c4f9,c4f9,8ea1c4f9v,c4f9v 5167 e585a7 5167 00005167 a4ba a4ba a4ba a4ba a4ba a4ba a4ba -684 a4bb a4bb a4bb * 447a * 8ea1c4fa,c4fa,8ea1c4fav,c4fav 516d e585ad 516d 0000516d a4bb a4bb a4bb a4bb a4bb a4bb a4bb -685 a4bc a4bc a4bc * 447b * 8ea1c4fb,c4fb,8ea1c4fbv,c4fbv 516e e585ae 516e 0000516e a4bc a4bc a4bc a4bc a4bc a4bc a4bc -686 a4bd a4bd a4bd * 447c * 8ea1c4fc,c4fc,8ea1c4fcv,c4fcv 516c e585ac 516c 0000516c a4bd a4bd a4bd a4bd a4bd a4bd a4bd -687 a4be a4be a4be * 447d * 8ea1c4fd,c4fd,8ea1c4fdv,c4fdv 5197 e58697 5197 00005197 a4be a4be a4be a4be a4be a4be a4be -688 a4bf a4bf a4bf * 447e * 8ea1c4fe,c4fe,8ea1c4fev,c4fev 51f6 e587b6 51f6 000051f6 a4bf a4bf a4bf a4bf a4bf a4bf a4bf -689 a4c0 a4c0 a4c0 * 4521 * 8ea1c5a1,c5a1,8ea1c5a1v,c5a1v 5206 e58886 5206 00005206 a4c0 a4c0 a4c0 a4c0 a4c0 a4c0 a4c0 -690 a4c1 a4c1 a4c1 * 4522 * 8ea1c5a2,c5a2,8ea1c5a2v,c5a2v 5207 e58887 5207 00005207 a4c1 a4c1 a4c1 a4c1 a4c1 a4c1 a4c1 -691 a4c2 a4c2 a4c2 * 4523 * 8ea1c5a3,c5a3,8ea1c5a3v,c5a3v 5208 e58888 5208 00005208 a4c2 a4c2 a4c2 a4c2 a4c2 a4c2 a4c2 -692 a4c3 a4c3 a4c3 * 4524 * 8ea1c5a4,c5a4,8ea1c5a4v,c5a4v 52fb e58bbb 52fb 000052fb a4c3 a4c3 a4c3 a4c3 a4c3 a4c3 a4c3 -693 a4c4 a4c4 a4c4 * 4525 * 8ea1c5a5,c5a5,8ea1c5a5v,c5a5v 52fe e58bbe 52fe 000052fe a4c4 a4c4 a4c4 a4c4 a4c4 a4c4 a4c4 -694 a4c5 a4c5 a4c5 * 4526 * 8ea1c5a6,c5a6,8ea1c5a6v,c5a6v 52ff e58bbf 52ff 000052ff a4c5 a4c5 a4c5 a4c5 a4c5 a4c5 a4c5 -695 a4c6 a4c6 a4c6 * 4527 * 8ea1c5a7,c5a7,8ea1c5a7v,c5a7v 5316 e58c96 5316 00005316 a4c6 a4c6 a4c6 a4c6 a4c6 a4c6 a4c6 -696 a4c7 a4c7 a4c7 * 4528 * 8ea1c5a8,c5a8,8ea1c5a8v,c5a8v 5339 e58cb9 5339 00005339 a4c7 a4c7 a4c7 a4c7 a4c7 a4c7 a4c7 -697 a4c8 a4c8 a4c8 * 4529 * 8ea1c5a9,c5a9,8ea1c5a9v,c5a9v 5348 e58d88 5348 00005348 a4c8 a4c8 a4c8 a4c8 a4c8 a4c8 a4c8 -698 a4c9 a4c9 a4c9 * 452a * 8ea1c5aa,c5aa,8ea1c5aav,c5aav 5347 e58d87 5347 00005347 a4c9 a4c9 a4c9 a4c9 a4c9 a4c9 a4c9 -699 a4ca a4ca a4ca * 452b * 8ea1c5ab,c5ab,8ea1c5abv,c5abv 5345 e58d85 5345 00005345 a4ca a4ca a4ca a4ca a4ca a4ca a4ca -700 a4cb a4cb a4cb * 452c * 8ea1c5ac,c5ac,8ea1c5acv,c5acv 535e e58d9e 535e 0000535e a4cb a4cb a4cb a4cb a4cb a4cb a4cb -701 a4cc a4cc a4cc * 452d * 8ea1c5ad,c5ad,8ea1c5adv,c5adv 5384 e58e84 5384 00005384 a4cc a4cc a4cc a4cc a4cc a4cc a4cc -702 a4cd a4cd a4cd * 452e * 8ea1c5ae,c5ae,8ea1c5aev,c5aev 53cb e58f8b 53cb 000053cb a4cd a4cd a4cd a4cd a4cd a4cd a4cd -703 a4ce a4ce a4ce * 452f * 8ea1c5af,c5af,8ea1c5afv,c5afv 53ca e58f8a 53ca 000053ca a4ce a4ce a4ce a4ce a4ce a4ce a4ce -704 a4cf a4cf a4cf * 4530 * 8ea1c5b0,c5b0,8ea1c5b0v,c5b0v 53cd e58f8d 53cd 000053cd a4cf a4cf a4cf a4cf a4cf a4cf a4cf -705 a4d0 a4d0 a4d0 * 4531 * 8ea1c5b1,c5b1,8ea1c5b1v,c5b1v 58ec e5a3ac 58ec 000058ec a4d0 a4d0 a4d0 a4d0 a4d0 a4d0 a4d0 -706 a4d1 a4d1 a4d1 * 4532 * 8ea1c5b2,c5b2,8ea1c5b2v,c5b2v 5929 e5a4a9 5929 00005929 a4d1 a4d1 a4d1 a4d1 a4d1 a4d1 a4d1 -707 a4d2 a4d2 a4d2 * 4533 * 8ea1c5b3,c5b3,8ea1c5b3v,c5b3v 592b e5a4ab 592b 0000592b a4d2 a4d2 a4d2 a4d2 a4d2 a4d2 a4d2 -708 a4d3 a4d3 a4d3 * 4534 * 8ea1c5b4,c5b4,8ea1c5b4v,c5b4v 592a e5a4aa 592a 0000592a a4d3 a4d3 a4d3 a4d3 a4d3 a4d3 a4d3 -709 a4d4 a4d4 a4d4 * 4535 * 8ea1c5b5,c5b5,8ea1c5b5v,c5b5v 592d e5a4ad 592d 0000592d a4d4 a4d4 a4d4 a4d4 a4d4 a4d4 a4d4 -710 a4d5 a4d5 a4d5 * 4536 * 8ea1c5b6,c5b6,8ea1c5b6v,c5b6v 5b54 e5ad94 5b54 00005b54 a4d5 a4d5 a4d5 a4d5 a4d5 a4d5 a4d5 -711 a4d6 a4d6 a4d6 * 4537 * 8ea1c5b7,c5b7,8ea1c5b7v,c5b7v 5c11 e5b091 5c11 00005c11 a4d6 a4d6 a4d6 a4d6 a4d6 a4d6 a4d6 -712 a4d7 a4d7 a4d7 * 4538 * 8ea1c5b8,c5b8,8ea1c5b8v,c5b8v 5c24 e5b0a4 5c24 00005c24 a4d7 a4d7 a4d7 a4d7 a4d7 a4d7 a4d7 -713 a4d8 a4d8 a4d8 * 4539 * 8ea1c5b9,c5b9,8ea1c5b9v,c5b9v 5c3a e5b0ba 5c3a 00005c3a a4d8 a4d8 a4d8 a4d8 a4d8 a4d8 a4d8 -714 a4d9 a4d9 a4d9 * 453a * 8ea1c5ba,c5ba,8ea1c5bav,c5bav 5c6f e5b1af 5c6f 00005c6f a4d9 a4d9 a4d9 a4d9 a4d9 a4d9 a4d9 -715 a4da a4da a4da * 453b * 8ea1c5bb,c5bb,8ea1c5bbv,c5bbv 5df4 e5b7b4 5df4 00005df4 a4da a4da a4da a4da a4da a4da a4da -716 a4db a4db a4db * 453c * 8ea1c5bc,c5bc,8ea1c5bcv,c5bcv 5e7b e5b9bb 5e7b 00005e7b a4db a4db a4db a4db a4db a4db a4db -717 a4dc a4dc a4dc * 453d * 8ea1c5bd,c5bd,8ea1c5bdv,c5bdv 5eff e5bbbf 5eff 00005eff a4dc a4dc a4dc a4dc a4dc a4dc a4dc -718 a4dd a4dd a4dd * 453e * 8ea1c5be,c5be,8ea1c5bev,c5bev 5f14 e5bc94 5f14 00005f14 a4dd a4dd a4dd a4dd a4dd a4dd a4dd -719 a4de a4de a4de * 453f * 8ea1c5bf,c5bf,8ea1c5bfv,c5bfv 5f15 e5bc95 5f15 00005f15 a4de a4de a4de a4de a4de a4de a4de -720 a4df a4df a4df * 275c,4540 * 8ea1a7dc,8ea1c5c0,a7dc,c5c0,8ea1a7dcv,8ea1c5c0v,a7dcv,c5c0v 5fc3 e5bf83,e2bcbc 5fc3,2f3c 00005fc3,00002f3c a4df a4df a4df a4df a4df a4df a4df -721 a4e0 a4e0 a4e0 * 275d,4541 * 8ea1a7dd,8ea1c5c1,a7dd,c5c1,8ea1a7ddv,8ea1c5c1v,a7ddv,c5c1v 6208 e68888,e2bcbd 6208,2f3d 00006208,00002f3d a4e0 a4e0 a4e0 a4e0 a4e0 a4e0 a4e0 -722 a4e1 a4e1 a4e1 * 275e,4542 * 8ea1a7de,8ea1c5c2,a7de,c5c2,8ea1a7dev,8ea1c5c2v,a7dev,c5c2v 6236 e688b6,e2bcbe 6236,2f3e 00006236,00002f3e a4e1 a4e1 a4e1 a4e1 a4e1 a4e1 a4e1 -723 a4e2 a4e2 a4e2 * 275f,4543 * 8ea1a7df,8ea1c5c3,a7df,c5c3,8ea1a7dfv,8ea1c5c3v,a7dfv,c5c3v 624b e6898b,e2bcbf 624b,2f3f 0000624b,00002f3f a4e2 a4e2 a4e2 a4e2 a4e2 a4e2 a4e2 -724 a4e3 a4e3 a4e3 * 4544 * 8ea1c5c4,c5c4,8ea1c5c4v,c5c4v 624e e6898e 624e 0000624e a4e3 a4e3 a4e3 a4e3 a4e3 a4e3 a4e3 -725 a4e4 a4e4 a4e4 * 2760,4545 * 8ea1a7e0,8ea1c5c5,a7e0,c5c5,8ea1a7e0v,8ea1c5c5v,a7e0v,c5c5v 652f e2bd80,e694af 2f40,652f 00002f40,0000652f a4e4 a4e4 a4e4 a4e4 a4e4 a4e4 a4e4 -726 a4e5 a4e5 a4e5 * 2762,4546 * 8ea1a7e2,8ea1c5c6,a7e2,c5c6,8ea1a7e2v,8ea1c5c6v,a7e2v,c5c6v 6587 e69687,e2bd82 6587,2f42 00006587,00002f42 a4e5 a4e5 a4e5 a4e5 a4e5 a4e5 a4e5 -727 a4e6 a4e6 a4e6 * 2763,4547 * 8ea1a7e3,8ea1c5c7,a7e3,c5c7,8ea1a7e3v,8ea1c5c7v,a7e3v,c5c7v 6597 e69697,e2bd83 6597,2f43 00006597,00002f43 a4e6 a4e6 a4e6 a4e6 a4e6 a4e6 a4e6 -728 a4e7 a4e7 a4e7 * 2764,4548 * 8ea1a7e4,8ea1c5c8,a7e4,c5c8,8ea1a7e4v,8ea1c5c8v,a7e4v,c5c8v 65a4 e696a4,e2bd84 65a4,2f44 000065a4,00002f44 a4e7 a4e7 a4e7 a4e7 a4e7 a4e7 a4e7 -729 a4e8 a4e8 a4e8 * 2765,4549 * 8ea1a7e5,8ea1c5c9,a7e5,c5c9,8ea1a7e5v,8ea1c5c9v,a7e5v,c5c9v 65b9 e696b9,e2bd85 65b9,2f45 000065b9,00002f45 a4e8 a4e8 a4e8 a4e8 a4e8 a4e8 a4e8 -730 a4e9 a4e9 a4e9 * 2767,454a * 8ea1a7e7,8ea1c5ca,a7e7,c5ca,8ea1a7e7v,8ea1c5cav,a7e7v,c5cav 65e5 e697a5,e2bd87 65e5,2f47 000065e5,00002f47 a4e9 a4e9 a4e9 a4e9 a4e9 a4e9 a4e9 -731 a4ea a4ea a4ea * 2768,454b * 8ea1a7e8,8ea1c5cb,a7e8,c5cb,8ea1a7e8v,8ea1c5cbv,a7e8v,c5cbv 66f0 e69bb0,e2bd88 66f0,2f48 000066f0,00002f48 a4ea a4ea a4ea a4ea a4ea a4ea a4ea -732 a4eb a4eb a4eb * 2769,454c * 8ea1a7e9,8ea1c5cc,a7e9,c5cc,8ea1a7e9v,8ea1c5ccv,a7e9v,c5ccv 2e9d,6708 e69c88,e2bd89 6708,2f49 00006708,00002f49 a4eb a4eb a4eb a4eb a4eb a4eb a4eb -733 a4ec a4ec a4ec * 276a,454d * 8ea1a7ea,8ea1c5cd,a7ea,c5cd,8ea1a7eav,8ea1c5cdv,a7eav,c5cdv 6728 e69ca8,e2bd8a 6728,2f4a 00006728,00002f4a a4ec a4ec a4ec a4ec a4ec a4ec a4ec -734 a4ed a4ed a4ed * 276b,454e * 8ea1a7eb,8ea1c5ce,a7eb,c5ce,8ea1a7ebv,8ea1c5cev,a7ebv,c5cev 6b20 e6aca0,e2bd8b 6b20,2f4b 00006b20,00002f4b a4ed a4ed a4ed a4ed a4ed a4ed a4ed -735 a4ee a4ee a4ee * 276c,454f * 8ea1a7ec,8ea1c5cf,a7ec,c5cf,8ea1a7ecv,8ea1c5cfv,a7ecv,c5cfv 6b62 e6ada2,e2bd8c 6b62,2f4c 00006b62,00002f4c a4ee a4ee a4ee a4ee a4ee a4ee a4ee -736 a4ef a4ef a4ef * 276d,4550 * 8ea1a7ed,8ea1c5d0,a7ed,c5d0,8ea1a7edv,8ea1c5d0v,a7edv,c5d0v 6b79 e6adb9,e2bd8d 6b79,2f4d 00006b79,00002f4d a4ef a4ef a4ef a4ef a4ef a4ef a4ef -737 a4f0 a4f0 a4f0 * 276f,4551 * 8ea1a7ef,8ea1c5d1,a7ef,c5d1,8ea1a7efv,8ea1c5d1v,a7efv,c5d1v 6bcb e6af8b,e2bd8f 6bcb,2f4f 00006bcb,00002f4f a4f0 a4f0 a4f0 a4f0 a4f0 a4f0 a4f0 -738 a4f1 a4f1 a4f1 * 2770,4552 * 8ea1a7f0,8ea1c5d2,a7f0,c5d2,8ea1a7f0v,8ea1c5d2v,a7f0v,c5d2v 6bd4 e6af94,e2bd90 6bd4,2f50 00006bd4,00002f50 a4f1 a4f1 a4f1 a4f1 a4f1 a4f1 a4f1 -739 a4f2 a4f2 a4f2 * 2771,4553 * 8ea1a7f1,8ea1c5d3,a7f1,c5d3,8ea1a7f1v,8ea1c5d3v,a7f1v,c5d3v 6bdb e6af9b,e2bd91 6bdb,2f51 00006bdb,00002f51 a4f2 a4f2 a4f2 a4f2 a4f2 a4f2 a4f2 -740 a4f3 a4f3 a4f3 * 2772,4554 * 8ea1a7f2,8ea1c5d4,a7f2,c5d4,8ea1a7f2v,8ea1c5d4v,a7f2v,c5d4v 6c0f e6b08f,e2bd92 6c0f,2f52 00006c0f,00002f52 a4f3 a4f3 a4f3 a4f3 a4f3 a4f3 a4f3 -741 a4f4 a4f4 a4f4 * 2774,4555 * 8ea1a7f4,8ea1c5d5,a7f4,c5d5,8ea1a7f4v,8ea1c5d5v,a7f4v,c5d5v 6c34 e6b0b4,e2bd94 6c34,2f54 00006c34,00002f54 a4f4 a4f4 a4f4 a4f4 a4f4 a4f4 a4f4 -742 a4f5 a4f5 a4f5 * 2775,4556 * 8ea1a7f5,8ea1c5d6,a7f5,c5d6,8ea1a7f5v,8ea1c5d6v,a7f5v,c5d6v 706b e781ab,e2bd95 706b,2f55 0000706b,00002f55 a4f5 a4f5 a4f5 a4f5 a4f5 a4f5 a4f5 -743 a4f6 a4f6 a4f6 * 2776,4557 * 8ea1a7f6,8ea1c5d7,a7f6,c5d7,8ea1a7f6v,8ea1c5d7v,a7f6v,c5d7v 722a e788aa,e2bd96 722a,2f56 0000722a,00002f56 a4f6 a4f6 a4f6 a4f6 a4f6 a4f6 a4f6 -744 a4f7 a4f7 a4f7 * 2777,4558 * 8ea1a7f7,8ea1c5d8,a7f7,c5d8,8ea1a7f7v,8ea1c5d8v,a7f7v,c5d8v 7236 e788b6,e2bd97 7236,2f57 00007236,00002f57 a4f7 a4f7 a4f7 a4f7 a4f7 a4f7 a4f7 -745 a4f8 a4f8 a4f8 * 2778,4559 * 8ea1a7f8,8ea1c5d9,a7f8,c5d9,8ea1a7f8v,8ea1c5d9v,a7f8v,c5d9v 723b e788bb,e2bd98 723b,2f58 0000723b,00002f58 a4f8 a4f8 a4f8 a4f8 a4f8 a4f8 a4f8 -746 a4f9 a4f9 a4f9 * 277a,455a * 8ea1a7fa,8ea1c5da,a7fa,c5da,8ea1a7fav,8ea1c5dav,a7fav,c5dav 7247 e78987,e2bd9a 7247,2f5a 00007247,00002f5a a4f9 a4f9 a4f9 a4f9 a4f9 a4f9 a4f9 -747 a4fa a4fa a4fa * 277b,455b * 8ea1a7fb,8ea1c5db,a7fb,c5db,8ea1a7fbv,8ea1c5dbv,a7fbv,c5dbv 7259 e78999,e2bd9b 7259,2f5b 00007259,00002f5b a4fa a4fa a4fa a4fa a4fa a4fa a4fa -748 a4fb a4fb a4fb * 277c,455c * 8ea1a7fc,8ea1c5dc,a7fc,c5dc,8ea1a7fcv,8ea1c5dcv,a7fcv,c5dcv 725b e7899b,e2bd9c 725b,2f5c 0000725b,00002f5c a4fb a4fb a4fb a4fb a4fb a4fb a4fb -749 a4fc a4fc a4fc * 277d,455d * 8ea1a7fd,8ea1c5dd,a7fd,c5dd,8ea1a7fdv,8ea1c5ddv,a7fdv,c5ddv 72ac e78aac,e2bd9d 72ac,2f5d 000072ac,00002f5d a4fc a4fc a4fc a4fc a4fc a4fc a4fc -750 a4fd a4fd a4fd * 455e * 8ea1c5de,c5de,8ea1c5dev,c5dev 738b e78e8b 738b 0000738b a4fd a4fd a4fd a4fd a4fd a4fd a4fd -751 a4fe a4fe a4fe * 455f * 8ea1c5df,c5df,8ea1c5dfv,c5dfv 4e19 e4b899 4e19 00004e19 a4fe a4fe a4fe a4fe a4fe a4fe a4fe -752 a540 a540 a540 * 4560 * 8ea1c5e0,c5e0,8ea1c5e0v,c5e0v 4e16 e4b896 4e16 00004e16 a540 a540 a540 a540 a540 a540 a540 -753 a541 a541 a541 * 4561 * 8ea1c5e1,c5e1,8ea1c5e1v,c5e1v 4e15 e4b895 4e15 00004e15 a541 a541 a541 a541 a541 a541 a541 -754 a542 a542 a542 * 4562 * 8ea1c5e2,c5e2,8ea1c5e2v,c5e2v 4e14 e4b894 4e14 00004e14 a542 a542 a542 a542 a542 a542 a542 -755 a543 a543 a543 * 4563 * 8ea1c5e3,c5e3,8ea1c5e3v,c5e3v 4e18 e4b898 4e18 00004e18 a543 a543 a543 a543 a543 a543 a543 -756 a544 a544 a544 * 4564 * 8ea1c5e4,c5e4,8ea1c5e4v,c5e4v 4e3b e4b8bb 4e3b 00004e3b a544 a544 a544 a544 a544 a544 a544 -757 a545 a545 a545 * 4565 * 8ea1c5e5,c5e5,8ea1c5e5v,c5e5v 4e4d e4b98d 4e4d 00004e4d a545 a545 a545 a545 a545 a545 a545 -758 a546 a546 a546 * 4566 * 8ea1c5e6,c5e6,8ea1c5e6v,c5e6v 4e4f e4b98f 4e4f 00004e4f a546 a546 a546 a546 a546 a546 a546 -759 a547 a547 a547 * 4567 * 8ea1c5e7,c5e7,8ea1c5e7v,c5e7v 4e4e e4b98e 4e4e 00004e4e a547 a547 a547 a547 a547 a547 a547 -760 a548 a548 a548 * 4568 * 8ea1c5e8,c5e8,8ea1c5e8v,c5e8v 4ee5 e4bba5 4ee5 00004ee5 a548 a548 a548 a548 a548 a548 a548 -761 a549 a549 a549 * 4569 * 8ea1c5e9,c5e9,8ea1c5e9v,c5e9v 4ed8 e4bb98 4ed8 00004ed8 a549 a549 a549 a549 a549 a549 a549 -762 a54a a54a a54a * 456a * 8ea1c5ea,c5ea,8ea1c5eav,c5eav 4ed4 e4bb94 4ed4 00004ed4 a54a a54a a54a a54a a54a a54a a54a -763 a54b a54b a54b * 456b * 8ea1c5eb,c5eb,8ea1c5ebv,c5ebv 4ed5 e4bb95 4ed5 00004ed5 a54b a54b a54b a54b a54b a54b a54b -764 a54c a54c a54c * 456c * 8ea1c5ec,c5ec,8ea1c5ecv,c5ecv 4ed6 e4bb96 4ed6 00004ed6 a54c a54c a54c a54c a54c a54c a54c -765 a54d a54d a54d * 456d * 8ea1c5ed,c5ed,8ea1c5edv,c5edv 4ed7 e4bb97 4ed7 00004ed7 a54d a54d a54d a54d a54d a54d a54d -766 a54e a54e a54e * 456e * 8ea1c5ee,c5ee,8ea1c5eev,c5eev 4ee3 e4bba3 4ee3 00004ee3 a54e a54e a54e a54e a54e a54e a54e -767 a54f a54f a54f * 456f * 8ea1c5ef,c5ef,8ea1c5efv,c5efv 4ee4 e4bba4 4ee4 00004ee4 a54f a54f a54f a54f a54f a54f a54f -768 a550 a550 a550 * 4570 * 8ea1c5f0,c5f0,8ea1c5f0v,c5f0v 4ed9 e4bb99 4ed9 00004ed9 a550 a550 a550 a550 a550 a550 a550 -769 a551 a551 a551 * 4571 * 8ea1c5f1,c5f1,8ea1c5f1v,c5f1v 4ede e4bb9e 4ede 00004ede a551 a551 a551 a551 a551 a551 a551 -770 a552 a552 a552 * 4572 * 8ea1c5f2,c5f2,8ea1c5f2v,c5f2v 5145 e58585 5145 00005145 a552 a552 a552 a552 a552 a552 a552 -771 a553 a553 a553 * 4573 * 8ea1c5f3,c5f3,8ea1c5f3v,c5f3v 5144 e58584 5144 00005144 a553 a553 a553 a553 a553 a553 a553 -772 a554 a554 a554 * 4574 * 8ea1c5f4,c5f4,8ea1c5f4v,c5f4v 5189 e58689 5189 00005189 a554 a554 a554 a554 a554 a554 a554 -773 a555 a555 a555 * 4575 * 8ea1c5f5,c5f5,8ea1c5f5v,c5f5v 518a e5868a 518a 0000518a a555 a555 a555 a555 a555 a555 a555 -774 a556 a556 a556 * 4576 * 8ea1c5f6,c5f6,8ea1c5f6v,c5f6v 51ac e586ac 51ac 000051ac a556 a556 a556 a556 a556 a556 a556 -775 a557 a557 a557 * 4577 * 8ea1c5f7,c5f7,8ea1c5f7v,c5f7v 51f9 e587b9 51f9 000051f9 a557 a557 a557 a557 a557 a557 a557 -776 a558 a558 a558 * 4578 * 8ea1c5f8,c5f8,8ea1c5f8v,c5f8v 51fa e587ba 51fa 000051fa a558 a558 a558 a558 a558 a558 a558 -777 a559 a559 a559 * 4579 * 8ea1c5f9,c5f9,8ea1c5f9v,c5f9v 51f8 e587b8 51f8 000051f8 a559 a559 a559 a559 a559 a559 a559 -778 a55a a55a a55a * 457a * 8ea1c5fa,c5fa,8ea1c5fav,c5fav 520a e5888a 520a 0000520a a55a a55a a55a a55a a55a a55a a55a -779 a55b a55b a55b * 457b * 8ea1c5fb,c5fb,8ea1c5fbv,c5fbv 52a0 e58aa0 52a0 000052a0 a55b a55b a55b a55b a55b a55b a55b -780 a55c a55c a55c * 457c * 8ea1c5fc,c5fc,8ea1c5fcv,c5fcv 529f e58a9f 529f 0000529f a55c a55c a55c a55c a55c a55c a55c -781 a55d a55d a55d * 457d * 8ea1c5fd,c5fd,8ea1c5fdv,c5fdv 5305 ee819b,e58c85 e05b,5305 0000e05b,00005305 fabd,a55d a55d a55d a55d a55d a55d fabd,a55d -782 a55e a55e a55e * 457e * 8ea1c5fe,c5fe,8ea1c5fev,c5fev 5306 e58c86 5306 00005306 a55e a55e a55e a55e a55e a55e a55e -783 a55f a55f a55f * 4621 * 8ea1c6a1,c6a1,8ea1c6a1v,c6a1v 5317 e58c97 5317 00005317 a55f a55f a55f a55f a55f a55f a55f -784 a560 a560 a560 * 4622 * 8ea1c6a2,c6a2,8ea1c6a2v,c6a2v 531d e58c9d 531d 0000531d a560 a560 a560 a560 a560 a560 a560 -785 a561 a561 a561 * 4623 * 8ea1c6a3,c6a3,8ea1c6a3v,c6a3v 4edf e4bb9f 4edf 00004edf a561 a561 a561 a561 a561 a561 a561 -786 a562 a562 a562 * 4624 * 8ea1c6a4,c6a4,8ea1c6a4v,c6a4v 534a e58d8a 534a 0000534a a562 a562 a562 a562 a562 a562 a562 -787 a563 a563 a563 * 4625 * 8ea1c6a5,c6a5,8ea1c6a5v,c6a5v 5349 e58d89 5349 00005349 a563 a563 a563 a563 a563 a563 a563 -788 a564 a564 a564 * 4626 * 8ea1c6a6,c6a6,8ea1c6a6v,c6a6v 5361 e58da1 5361 00005361 a564 a564 a564 a564 a564 a564 a564 -789 a565 a565 a565 * 4627 * 8ea1c6a7,c6a7,8ea1c6a7v,c6a7v 5360 e58da0 5360 00005360 a565 a565 a565 a565 a565 a565 a565 -790 a566 a566 a566 * 4628 * 8ea1c6a8,c6a8,8ea1c6a8v,c6a8v 536f e58daf 536f 0000536f a566 a566 a566 a566 a566 a566 a566 -791 a567 a567 a567 * 4629 * 8ea1c6a9,c6a9,8ea1c6a9v,c6a9v 536e e58dae 536e 0000536e a567 a567 a567 a567 a567 a567 a567 -792 a568 a568 a568 * 462a * 8ea1c6aa,c6aa,8ea1c6aav,c6aav 53bb e58ebb 53bb 000053bb a568 a568 a568 a568 a568 a568 a568 -793 a569 a569 a569 * 462b * 8ea1c6ab,c6ab,8ea1c6abv,c6abv 53ef e58faf 53ef 000053ef a569 a569 a569 a569 a569 a569 a569 -794 a56a a56a a56a * 462c * 8ea1c6ac,c6ac,8ea1c6acv,c6acv 53e4 e58fa4 53e4 000053e4 a56a a56a a56a a56a a56a a56a a56a -795 a56b a56b a56b * 462d * 8ea1c6ad,c6ad,8ea1c6adv,c6adv 53f3 e58fb3 53f3 000053f3 a56b a56b a56b a56b a56b a56b a56b -796 a56c a56c a56c * 462e * 8ea1c6ae,c6ae,8ea1c6aev,c6aev 53ec e58fac 53ec 000053ec a56c a56c a56c a56c a56c a56c a56c -797 a56d a56d a56d * 462f * 8ea1c6af,c6af,8ea1c6afv,c6afv 53ee e58fae 53ee 000053ee a56d a56d a56d a56d a56d a56d a56d -798 a56e a56e a56e * 4630 * 8ea1c6b0,c6b0,8ea1c6b0v,c6b0v 53e9 e58fa9 53e9 000053e9 a56e a56e a56e a56e a56e a56e a56e -799 a56f a56f a56f * 4631 * 8ea1c6b1,c6b1,8ea1c6b1v,c6b1v 53e8 e58fa8 53e8 000053e8 a56f a56f a56f a56f a56f a56f a56f -800 a570 a570 a570 * 4632 * 8ea1c6b2,c6b2,8ea1c6b2v,c6b2v 53fc e58fbc 53fc 000053fc a570 a570 a570 a570 a570 a570 a570 -801 a571 a571 a571 * 4633 * 8ea1c6b3,c6b3,8ea1c6b3v,c6b3v 53f8 e58fb8 53f8 000053f8 a571 a571 a571 a571 a571 a571 a571 -802 a572 a572 a572 * 4634 * 8ea1c6b4,c6b4,8ea1c6b4v,c6b4v 53f5 e58fb5 53f5 000053f5 a572 a572 a572 a572 a572 a572 a572 -803 a573 a573 a573 * 4635 * 8ea1c6b5,c6b5,8ea1c6b5v,c6b5v 53eb e58fab 53eb 000053eb a573 a573 a573 a573 a573 a573 a573 -804 a574 a574 a574 * 4636 * 8ea1c6b6,c6b6,8ea1c6b6v,c6b6v 53e6 e58fa6 53e6 000053e6 a574 a574 a574 a574 a574 a574 a574 -805 a575 a575 a575 * 4637 * 8ea1c6b7,c6b7,8ea1c6b7v,c6b7v 53ea e58faa 53ea 000053ea a575 a575 a575 a575 a575 a575 a575 -806 a576 a576 a576 * 4638 * 8ea1c6b8,c6b8,8ea1c6b8v,c6b8v 53f2 e58fb2 53f2 000053f2 a576 a576 a576 a576 a576 a576 a576 -807 a577 a577 a577 * 4639 * 8ea1c6b9,c6b9,8ea1c6b9v,c6b9v 53f1 e58fb1 53f1 000053f1 a577 a577 a577 a577 a577 a577 a577 -808 a578 a578 a578 * 463a * 8ea1c6ba,c6ba,8ea1c6bav,c6bav 53f0 e58fb0 53f0 000053f0 a578 a578 a578 a578 a578 a578 a578 -809 a579 a579 a579 * 463b * 8ea1c6bb,c6bb,8ea1c6bbv,c6bbv 53e5 e58fa5 53e5 000053e5 a579 a579 a579 a579 a579 a579 a579 -810 a57a a57a a57a * 463c * 8ea1c6bc,c6bc,8ea1c6bcv,c6bcv 53ed e58fad 53ed 000053ed a57a a57a a57a a57a a57a a57a a57a -811 a57b a57b a57b * 463d * 8ea1c6bd,c6bd,8ea1c6bdv,c6bdv 53fb e58fbb 53fb 000053fb a57b a57b a57b a57b a57b a57b a57b -812 a57c a57c a57c * 463e * 8ea1c6be,c6be,8ea1c6bev,c6bev 56db e59b9b 56db 000056db a57c a57c a57c a57c a57c a57c a57c -813 a57d a57d a57d * 463f * 8ea1c6bf,c6bf,8ea1c6bfv,c6bfv 56da e59b9a 56da 000056da a57d a57d a57d a57d a57d a57d a57d -814 a57e a57e a57e * 4640 * 8ea1c6c0,c6c0,8ea1c6c0v,c6c0v 5916 e5a496 5916 00005916 a57e a57e a57e a57e a57e a57e a57e -815 a5a1 a5a1 a5a1 * 4641 * 8ea1c6c1,c6c1,8ea1c6c1v,c6c1v 592e e5a4ae 592e 0000592e a5a1 a5a1 a5a1 a5a1 a5a1 a5a1 a5a1 -816 a5a2 a5a2 a5a2 * 4642 * 8ea1c6c2,c6c2,8ea1c6c2v,c6c2v 5931 e5a4b1 5931 00005931 a5a2 a5a2 a5a2 a5a2 a5a2 a5a2 a5a2 -817 a5a3 a5a3 a5a3 * 4643 * 8ea1c6c3,c6c3,8ea1c6c3v,c6c3v 5974 e5a5b4 5974 00005974 a5a3 a5a3 a5a3 a5a3 a5a3 a5a3 a5a3 -818 a5a4 a5a4 a5a4 * 4644 * 8ea1c6c4,c6c4,8ea1c6c4v,c6c4v 5976 e5a5b6 5976 00005976 a5a4 a5a4 a5a4 a5a4 a5a4 a5a4 a5a4 -819 a5a5 a5a5 a5a5 * 4645 * 8ea1c6c5,c6c5,8ea1c6c5v,c6c5v 5b55 e5ad95 5b55 00005b55 a5a5 a5a5 a5a5 a5a5 a5a5 a5a5 a5a5 -820 a5a6 a5a6 a5a6 * 4646 * 8ea1c6c6,c6c6,8ea1c6c6v,c6c6v 5b83 e5ae83 5b83 00005b83 a5a6 a5a6 a5a6 a5a6 a5a6 a5a6 a5a6 -821 a5a7 a5a7 a5a7 * 4647 * 8ea1c6c7,c6c7,8ea1c6c7v,c6c7v 5c3c e5b0bc 5c3c 00005c3c a5a7 a5a7 a5a7 a5a7 a5a7 a5a7 a5a7 -822 a5a8 a5a8 a5a8 * 4648 * 8ea1c6c8,c6c8,8ea1c6c8v,c6c8v 5de8 e5b7a8 5de8 00005de8 a5a8 a5a8 a5a8 a5a8 a5a8 a5a8 a5a8 -823 a5a9 a5a9 a5a9 * 4649 * 8ea1c6c9,c6c9,8ea1c6c9v,c6c9v 5de7 e5b7a7 5de7 00005de7 a5a9 a5a9 a5a9 a5a9 a5a9 a5a9 a5a9 -824 a5aa a5aa a5aa * 464a * 8ea1c6ca,c6ca,8ea1c6cav,c6cav 5de6 e5b7a6 5de6 00005de6 a5aa a5aa a5aa a5aa a5aa a5aa a5aa -825 a5ab a5ab a5ab * 464b * 8ea1c6cb,c6cb,8ea1c6cbv,c6cbv 5e02 e5b882 5e02 00005e02 a5ab a5ab a5ab a5ab a5ab a5ab a5ab -826 a5ac a5ac a5ac * 464c * 8ea1c6cc,c6cc,8ea1c6ccv,c6ccv 5e03 e5b883 5e03 00005e03 a5ac a5ac a5ac a5ac a5ac a5ac a5ac -827 a5ad a5ad a5ad * 464d * 8ea1c6cd,c6cd,8ea1c6cdv,c6cdv 5e73 e5b9b3 5e73 00005e73 a5ad a5ad a5ad a5ad a5ad a5ad a5ad -828 a5ae a5ae a5ae * 464e * 8ea1c6ce,c6ce,8ea1c6cev,c6cev 5e7c e5b9bc 5e7c 00005e7c a5ae a5ae a5ae a5ae a5ae a5ae a5ae -829 a5af a5af a5af * 464f * 8ea1c6cf,c6cf,8ea1c6cfv,c6cfv 5f01 e5bc81 5f01 00005f01 a5af a5af a5af a5af a5af a5af a5af -830 a5b0 a5b0 a5b0 * 4650 * 8ea1c6d0,c6d0,8ea1c6d0v,c6d0v 5f18 e5bc98 5f18 00005f18 a5b0 a5b0 a5b0 a5b0 a5b0 a5b0 a5b0 -831 a5b1 a5b1 a5b1 * 4651 * 8ea1c6d1,c6d1,8ea1c6d1v,c6d1v 5f17 e5bc97 5f17 00005f17 a5b1 a5b1 a5b1 a5b1 a5b1 a5b1 a5b1 -832 a5b2 a5b2 a5b2 * 4652 * 8ea1c6d2,c6d2,8ea1c6d2v,c6d2v 5fc5 e5bf85 5fc5 00005fc5 a5b2 a5b2 a5b2 a5b2 a5b2 a5b2 a5b2 -833 a5b3 a5b3 a5b3 * 4653 * 8ea1c6d3,c6d3,8ea1c6d3v,c6d3v 620a e6888a 620a 0000620a a5b3 a5b3 a5b3 a5b3 a5b3 a5b3 a5b3 -834 a5b4 a5b4 a5b4 * 4654 * 8ea1c6d4,c6d4,8ea1c6d4v,c6d4v 6253 e68993 6253 00006253 a5b4 a5b4 a5b4 a5b4 a5b4 a5b4 a5b4 -835 a5b5 a5b5 a5b5 * 4655 * 8ea1c6d5,c6d5,8ea1c6d5v,c6d5v 6254 e68994 6254 00006254 a5b5 a5b5 a5b5 a5b5 a5b5 a5b5 a5b5 -836 a5b6 a5b6 a5b6 * 4656 * 8ea1c6d6,c6d6,8ea1c6d6v,c6d6v 6252 e68992 6252 00006252 a5b6 a5b6 a5b6 a5b6 a5b6 a5b6 a5b6 -837 a5b7 a5b7 a5b7 * 4657 * 8ea1c6d7,c6d7,8ea1c6d7v,c6d7v 6251 e68991 6251 00006251 a5b7 a5b7 a5b7 a5b7 a5b7 a5b7 a5b7 -838 a5b8 a5b8 a5b8 * 4658 * 8ea1c6d8,c6d8,8ea1c6d8v,c6d8v 65a5 e696a5 65a5 000065a5 a5b8 a5b8 a5b8 a5b8 a5b8 a5b8 a5b8 -839 a5b9 a5b9 a5b9 * 4659 * 8ea1c6d9,c6d9,8ea1c6d9v,c6d9v 65e6 e697a6 65e6 000065e6 a5b9 a5b9 a5b9 a5b9 a5b9 a5b9 a5b9 -840 a5ba a5ba a5ba * 465a * 8ea1c6da,c6da,8ea1c6dav,c6dav 672e e69cae 672e 0000672e a5ba a5ba a5ba a5ba a5ba a5ba a5ba -841 a5bb a5bb a5bb * 465b * 8ea1c6db,c6db,8ea1c6dbv,c6dbv 672c e69cac 672c 0000672c a5bb a5bb a5bb a5bb a5bb a5bb a5bb -842 a5bc a5bc a5bc * 465c * 8ea1c6dc,c6dc,8ea1c6dcv,c6dcv 672a e69caa 672a 0000672a a5bc a5bc a5bc a5bc a5bc a5bc a5bc -843 a5bd a5bd a5bd * 465d * 8ea1c6dd,c6dd,8ea1c6ddv,c6ddv 672b e69cab 672b 0000672b a5bd a5bd a5bd a5bd a5bd a5bd a5bd -844 a5be a5be a5be * 465e * 8ea1c6de,c6de,8ea1c6dev,c6dev 672d e69cad 672d 0000672d a5be a5be a5be a5be a5be a5be a5be -845 a5bf a5bf a5bf * 465f * 8ea1c6df,c6df,8ea1c6dfv,c6dfv 6b63 e6ada3 6b63 00006b63 a5bf a5bf a5bf a5bf a5bf a5bf a5bf -846 a5c0 a5c0 a5c0 * 4660 * 8ea1c6e0,c6e0,8ea1c6e0v,c6e0v 6bcd e6af8d 6bcd 00006bcd a5c0 a5c0 a5c0 a5c0 a5c0 a5c0 a5c0 -847 a5c1 a5c1 a5c1 * 4661 * 8ea1c6e1,c6e1,8ea1c6e1v,c6e1v 6c11 e6b091 6c11 00006c11 a5c1 a5c1 a5c1 a5c1 a5c1 a5c1 a5c1 -848 a5c2 a5c2 a5c2 * 4662 * 8ea1c6e2,c6e2,8ea1c6e2v,c6e2v 6c10 e6b090 6c10 00006c10 a5c2 a5c2 a5c2 a5c2 a5c2 a5c2 a5c2 -849 a5c3 a5c3 a5c3 * 4663 * 8ea1c6e3,c6e3,8ea1c6e3v,c6e3v 6c38 e6b0b8 6c38 00006c38 a5c3 a5c3 a5c3 a5c3 a5c3 a5c3 a5c3 -850 a5c4 a5c4 a5c4 * 4664 * 8ea1c6e4,c6e4,8ea1c6e4v,c6e4v 6c41 e6b181 6c41 00006c41 a5c4 a5c4 a5c4 a5c4 a5c4 a5c4 a5c4 -851 a5c5 a5c5 a5c5 * 4665 * 8ea1c6e5,c6e5,8ea1c6e5v,c6e5v 6c40 e6b180 6c40 00006c40 a5c5 a5c5 a5c5 a5c5 a5c5 a5c5 a5c5 -852 a5c6 a5c6 a5c6 * 4666 * 8ea1c6e6,c6e6,8ea1c6e6v,c6e6v 6c3e e6b0be 6c3e 00006c3e a5c6 a5c6 a5c6 a5c6 a5c6 a5c6 a5c6 -853 a5c7 a5c7 a5c7 * 4667 * 8ea1c6e7,c6e7,8ea1c6e7v,c6e7v 72af e78aaf 72af 000072af a5c7 a5c7 a5c7 a5c7 a5c7 a5c7 a5c7 -854 a5c8 a5c8 a5c8 * 277e,4668 * 8ea1a7fe,8ea1c6e8,a7fe,c6e8,8ea1a7fev,8ea1c6e8v,a7fev,c6e8v 7384 e78e84,e2bd9e 7384,2f5e 00007384,00002f5e a5c8 a5c8 a5c8 a5c8 a5c8 a5c8 a5c8 -855 a5c9 a5c9 a5c9 * 2821,4669 * 8ea1a8a1,8ea1c6e9,a8a1,c6e9,8ea1a8a1v,8ea1c6e9v,a8a1v,c6e9v 7389 e78e89,e2bd9f 7389,2f5f 00007389,00002f5f a5c9 a5c9 a5c9 a5c9 a5c9 a5c9 a5c9 -856 a5ca a5ca a5ca * 2822,466a * 8ea1a8a2,8ea1c6ea,a8a2,c6ea,8ea1a8a2v,8ea1c6eav,a8a2v,c6eav 74dc e7939c,e2bda0 74dc,2f60 000074dc,00002f60 a5ca a5ca a5ca a5ca a5ca a5ca a5ca -857 a5cb a5cb a5cb * 2823,466b * 8ea1a8a3,8ea1c6eb,a8a3,c6eb,8ea1a8a3v,8ea1c6ebv,a8a3v,c6ebv 74e6 e793a6,e2bda1 74e6,2f61 000074e6,00002f61 a5cb a5cb a5cb a5cb a5cb a5cb a5cb -858 a5cc a5cc a5cc * 2824,466c * 8ea1a8a4,8ea1c6ec,a8a4,c6ec,8ea1a8a4v,8ea1c6ecv,a8a4v,c6ecv 7518 e79498,e2bda2 7518,2f62 00007518,00002f62 a5cc a5cc a5cc a5cc a5cc a5cc a5cc -859 a5cd a5cd a5cd * 2825,466d * 8ea1a8a5,8ea1c6ed,a8a5,c6ed,8ea1a8a5v,8ea1c6edv,a8a5v,c6edv 751f e7949f,e2bda3 751f,2f63 0000751f,00002f63 a5cd a5cd a5cd a5cd a5cd a5cd a5cd -860 a5ce a5ce a5ce * 2826,466e * 8ea1a8a6,8ea1c6ee,a8a6,c6ee,8ea1a8a6v,8ea1c6eev,a8a6v,c6eev 7528 e2bda4,e794a8 2f64,7528 00002f64,00007528 a5ce a5ce a5ce a5ce a5ce a5ce a5ce -861 a5cf a5cf a5cf * 466f * 8ea1c6ef,c6ef,8ea1c6efv,c6efv 7529 e794a9 7529 00007529 a5cf a5cf a5cf a5cf a5cf a5cf a5cf -862 a5d0 a5d0 a5d0 * 2827,4670 * 8ea1a8a7,8ea1c6f0,a8a7,c6f0,8ea1a8a7v,8ea1c6f0v,a8a7v,c6f0v 7530 e2bda5,e794b0 2f65,7530 00002f65,00007530 a5d0 a5d0 a5d0 a5d0 a5d0 a5d0 a5d0 -863 a5d1 a5d1 a5d1 * 4671 * 8ea1c6f1,c6f1,8ea1c6f1v,c6f1v 7531 e794b1 7531 00007531 a5d1 a5d1 a5d1 a5d1 a5d1 a5d1 a5d1 -864 a5d2 a5d2 a5d2 * 4672 * 8ea1c6f2,c6f2,8ea1c6f2v,c6f2v 7532 e794b2 7532 00007532 a5d2 a5d2 a5d2 a5d2 a5d2 a5d2 a5d2 -865 a5d3 a5d3 a5d3 * 4673 * 8ea1c6f3,c6f3,8ea1c6f3v,c6f3v 7533 e794b3 7533 00007533 a5d3 a5d3 a5d3 a5d3 a5d3 a5d3 a5d3 -866 a5d4 a5d4 a5d4 * 2828,4674 * 8ea1a8a8,8ea1c6f4,a8a8,c6f4,8ea1a8a8v,8ea1c6f4v,a8a8v,c6f4v 758b e2bda6,e7968b 2f66,758b 00002f66,0000758b a5d4 a5d4 a5d4 a5d4 a5d4 a5d4 a5d4 -867 a5d5 a5d5 a5d5 * 282b,4675 * 8ea1a8ab,8ea1c6f5,a8ab,c6f5,8ea1a8abv,8ea1c6f5v,a8abv,c6f5v 767d e799bd,e2bda9 767d,2f69 0000767d,00002f69 a5d5 a5d5 a5d5 a5d5 a5d5 a5d5 a5d5 -868 a5d6 a5d6 a5d6 * 282c,4676 * 8ea1a8ac,8ea1c6f6,a8ac,c6f6,8ea1a8acv,8ea1c6f6v,a8acv,c6f6v 76ae e79aae,e2bdaa 76ae,2f6a 000076ae,00002f6a a5d6 a5d6 a5d6 a5d6 a5d6 a5d6 a5d6 -869 a5d7 a5d7 a5d7 * 282d,4677 * 8ea1a8ad,8ea1c6f7,a8ad,c6f7,8ea1a8adv,8ea1c6f7v,a8adv,c6f7v 76bf e79abf,e2bdab 76bf,2f6b 000076bf,00002f6b a5d7 a5d7 a5d7 a5d7 a5d7 a5d7 a5d7 -870 a5d8 a5d8 a5d8 * 282e,4678 * 8ea1a8ae,8ea1c6f8,a8ae,c6f8,8ea1a8aev,8ea1c6f8v,a8aev,c6f8v 76ee e79bae,e2bdac 76ee,2f6c 000076ee,00002f6c a5d8 a5d8 a5d8 a5d8 a5d8 a5d8 a5d8 -871 a5d9 a5d9 a5d9 * 282f,4679 * 8ea1a8af,8ea1c6f9,a8af,c6f9,8ea1a8afv,8ea1c6f9v,a8afv,c6f9v 77db e79f9b,e2bdad 77db,2f6d 000077db,00002f6d a5d9 a5d9 a5d9 a5d9 a5d9 a5d9 a5d9 -872 a5da a5da a5da * 2830,467a * 8ea1a8b0,8ea1c6fa,a8b0,c6fa,8ea1a8b0v,8ea1c6fav,a8b0v,c6fav 77e2 e79fa2,e2bdae 77e2,2f6e 000077e2,00002f6e a5da a5da a5da a5da a5da a5da a5da -873 a5db a5db a5db * 2831,467b * 8ea1a8b1,8ea1c6fb,a8b1,c6fb,8ea1a8b1v,8ea1c6fbv,a8b1v,c6fbv 77f3 e79fb3,e2bdaf 77f3,2f6f 000077f3,00002f6f a5db a5db a5db a5db a5db a5db a5db -874 a5dc a5dc a5dc * 2832,467c * 8ea1a8b2,8ea1c6fc,a8b2,c6fc,8ea1a8b2v,8ea1c6fcv,a8b2v,c6fcv 793a e7a4ba,e2bdb0 793a,2f70 0000793a,00002f70 a5dc a5dc a5dc a5dc a5dc a5dc a5dc -875 a5dd a5dd a5dd * 2834,467d * 8ea1a8b4,8ea1c6fd,a8b4,c6fd,8ea1a8b4v,8ea1c6fdv,a8b4v,c6fdv 79be e7a6be,e2bdb2 79be,2f72 000079be,00002f72 a5dd a5dd a5dd a5dd a5dd a5dd a5dd -876 a5de a5de a5de * 2835,467e * 8ea1a8b5,8ea1c6fe,a8b5,c6fe,8ea1a8b5v,8ea1c6fev,a8b5v,c6fev 7a74 e7a9b4,e2bdb3 7a74,2f73 00007a74,00002f73 a5de a5de a5de a5de a5de a5de a5de -877 a5df a5df a5df * 2836,4721 * 8ea1a8b6,8ea1c7a1,a8b6,c7a1,8ea1a8b6v,8ea1c7a1v,a8b6v,c7a1v 7acb e7ab8b,e2bdb4 7acb,2f74 00007acb,00002f74 a5df a5df a5df a5df a5df a5df a5df -878 a5e0 a5e0 a5e0 * 4722 * 8ea1c7a2,c7a2,8ea1c7a2v,c7a2v 4e1e e4b89e 4e1e 00004e1e a5e0 a5e0 a5e0 a5e0 a5e0 a5e0 a5e0 -879 a5e1 a5e1 a5e1 * 4723 * 8ea1c7a3,c7a3,8ea1c7a3v,c7a3v 4e1f e4b89f 4e1f 00004e1f a5e1 a5e1 a5e1 a5e1 a5e1 a5e1 a5e1 -880 a5e2 a5e2 a5e2 * 4724 * 8ea1c7a4,c7a4,8ea1c7a4v,c7a4v 4e52 e4b992 4e52 00004e52 a5e2 a5e2 a5e2 a5e2 a5e2 a5e2 a5e2 -881 a5e3 a5e3 a5e3 * 4725 * 8ea1c7a5,c7a5,8ea1c7a5v,c7a5v 4e53 e4b993 4e53 00004e53 a5e3 a5e3 a5e3 a5e3 a5e3 a5e3 a5e3 -882 a5e4 a5e4 a5e4 * 4726 * 8ea1c7a6,c7a6,8ea1c7a6v,c7a6v 4e69 e4b9a9 4e69 00004e69 a5e4 a5e4 a5e4 a5e4 a5e4 a5e4 a5e4 -883 a5e5 a5e5 a5e5 * 4727 * 8ea1c7a7,c7a7,8ea1c7a7v,c7a7v 4e99 e4ba99 4e99 00004e99 a5e5 a5e5 a5e5 a5e5 a5e5 a5e5 a5e5 -884 a5e6 a5e6 a5e6 * 4728 * 8ea1c7a8,c7a8,8ea1c7a8v,c7a8v 4ea4 e4baa4 4ea4 00004ea4 a5e6 a5e6 a5e6 a5e6 a5e6 a5e6 a5e6 -885 a5e7 a5e7 a5e7 * 4729 * 8ea1c7a9,c7a9,8ea1c7a9v,c7a9v 4ea6 e4baa6 4ea6 00004ea6 a5e7 a5e7 a5e7 a5e7 a5e7 a5e7 a5e7 -886 a5e8 a5e8 a5e8 * 472a * 8ea1c7aa,c7aa,8ea1c7aav,c7aav 4ea5 e4baa5 4ea5 00004ea5 a5e8 a5e8 a5e8 a5e8 a5e8 a5e8 a5e8 -887 a5e9 a5e9 a5e9 * 472b * 8ea1c7ab,c7ab,8ea1c7abv,c7abv 4eff e4bbbf 4eff 00004eff a5e9 a5e9 a5e9 a5e9 a5e9 a5e9 a5e9 -888 a5ea a5ea a5ea * 472c * 8ea1c7ac,c7ac,8ea1c7acv,c7acv 4f09 e4bc89 4f09 00004f09 a5ea a5ea a5ea a5ea a5ea a5ea a5ea -889 a5eb a5eb a5eb * 472d * 8ea1c7ad,c7ad,8ea1c7adv,c7adv 4f19 e4bc99 4f19 00004f19 a5eb a5eb a5eb a5eb a5eb a5eb a5eb -890 a5ec a5ec a5ec * 472e * 8ea1c7ae,c7ae,8ea1c7aev,c7aev 4f0a e4bc8a 4f0a 00004f0a a5ec a5ec a5ec a5ec a5ec a5ec a5ec -891 a5ed a5ed a5ed * 472f * 8ea1c7af,c7af,8ea1c7afv,c7afv 4f15 e4bc95 4f15 00004f15 a5ed a5ed a5ed a5ed a5ed a5ed a5ed -892 a5ee a5ee a5ee * 4730 * 8ea1c7b0,c7b0,8ea1c7b0v,c7b0v 4f0d e4bc8d 4f0d 00004f0d a5ee a5ee a5ee a5ee a5ee a5ee a5ee -893 a5ef a5ef a5ef * 4731 * 8ea1c7b1,c7b1,8ea1c7b1v,c7b1v 4f10 e4bc90 4f10 00004f10 a5ef a5ef a5ef a5ef a5ef a5ef a5ef -894 a5f0 a5f0 a5f0 * 4732 * 8ea1c7b2,c7b2,8ea1c7b2v,c7b2v 4f11 e4bc91 4f11 00004f11 a5f0 a5f0 a5f0 a5f0 a5f0 a5f0 a5f0 -895 a5f1 a5f1 a5f1 * 4733 * 8ea1c7b3,c7b3,8ea1c7b3v,c7b3v 4f0f e4bc8f 4f0f 00004f0f a5f1 a5f1 a5f1 a5f1 a5f1 a5f1 a5f1 -896 a5f2 a5f2 a5f2 * 4734 * 8ea1c7b4,c7b4,8ea1c7b4v,c7b4v 4ef2 e4bbb2 4ef2 00004ef2 a5f2 a5f2 a5f2 a5f2 a5f2 a5f2 a5f2 -897 a5f3 a5f3 a5f3 * 4735 * 8ea1c7b5,c7b5,8ea1c7b5v,c7b5v 4ef6 e4bbb6 4ef6 00004ef6 a5f3 a5f3 a5f3 a5f3 a5f3 a5f3 a5f3 -898 a5f4 a5f4 a5f4 * 4736 * 8ea1c7b6,c7b6,8ea1c7b6v,c7b6v 4efb e4bbbb 4efb 00004efb a5f4 a5f4 a5f4 a5f4 a5f4 a5f4 a5f4 -899 a5f5 a5f5 a5f5 * 4737 * 8ea1c7b7,c7b7,8ea1c7b7v,c7b7v 4ef0 e4bbb0 4ef0 00004ef0 a5f5 a5f5 a5f5 a5f5 a5f5 a5f5 a5f5 -900 a5f6 a5f6 a5f6 * 4738 * 8ea1c7b8,c7b8,8ea1c7b8v,c7b8v 4ef3 e4bbb3 4ef3 00004ef3 a5f6 a5f6 a5f6 a5f6 a5f6 a5f6 a5f6 -901 a5f7 a5f7 a5f7 * 4739 * 8ea1c7b9,c7b9,8ea1c7b9v,c7b9v 4efd e4bbbd 4efd 00004efd a5f7 a5f7 a5f7 a5f7 a5f7 a5f7 a5f7 -902 a5f8 a5f8 a5f8 * 473a * 8ea1c7ba,c7ba,8ea1c7bav,c7bav 4f01 e4bc81 4f01 00004f01 a5f8 a5f8 a5f8 a5f8 a5f8 a5f8 a5f8 -903 a5f9 a5f9 a5f9 * 473b * 8ea1c7bb,c7bb,8ea1c7bbv,c7bbv 4f0b e4bc8b 4f0b 00004f0b a5f9 a5f9 a5f9 a5f9 a5f9 a5f9 a5f9 -904 a5fa a5fa a5fa * 473c * 8ea1c7bc,c7bc,8ea1c7bcv,c7bcv 5149 e58589 5149 00005149 a5fa a5fa a5fa a5fa a5fa a5fa a5fa -905 a5fb a5fb a5fb * 473d * 8ea1c7bd,c7bd,8ea1c7bdv,c7bdv 5147 e58587 5147 00005147 a5fb a5fb a5fb a5fb a5fb a5fb a5fb -906 a5fc a5fc a5fc * 473e * 8ea1c7be,c7be,8ea1c7bev,c7bev 5146 e58586 5146 00005146 a5fc a5fc a5fc a5fc a5fc a5fc a5fc -907 a5fd a5fd a5fd * 473f * 8ea1c7bf,c7bf,8ea1c7bfv,c7bfv 5148 e58588 5148 00005148 a5fd a5fd a5fd a5fd a5fd a5fd a5fd -908 a5fe a5fe a5fe * 4740 * 8ea1c7c0,c7c0,8ea1c7c0v,c7c0v 5168 e585a8 5168 00005168 a5fe a5fe a5fe a5fe a5fe a5fe a5fe -909 a640 a640 a640 * 4741 * 8ea1c7c1,c7c1,8ea1c7c1v,c7c1v 5171 e585b1 5171 00005171 a640 a640 a640 a640 a640 a640 a640 -910 a641 a641 a641 * 4742 * 8ea1c7c2,c7c2,8ea1c7c2v,c7c2v 518d e5868d 518d 0000518d a641 a641 a641 a641 a641 a641 a641 -911 a642 a642 a642 * 4743 * 8ea1c7c3,c7c3,8ea1c7c3v,c7c3v 51b0 e586b0 51b0 000051b0 a642 a642 a642 a642 a642 a642 a642 -912 a643 a643 a643 * 4744 * 8ea1c7c4,c7c4,8ea1c7c4v,c7c4v 5217 e58897 5217 00005217 a643 a643 a643 a643 a643 a643 a643 -913 a644 a644 a644 * 4745 * 8ea1c7c5,c7c5,8ea1c7c5v,c7c5v 5211 e58891 5211 00005211 a644 a644 a644 a644 a644 a644 a644 -914 a645 a645 a645 * 4746 * 8ea1c7c6,c7c6,8ea1c7c6v,c7c6v 5212 e58892 5212 00005212 a645 a645 a645 a645 a645 a645 a645 -915 a646 a646 a646 * 4747 * 8ea1c7c7,c7c7,8ea1c7c7v,c7c7v 520e e5888e 520e 0000520e a646 a646 a646 a646 a646 a646 a646 -916 a647 a647 a647 * 4748 * 8ea1c7c8,c7c8,8ea1c7c8v,c7c8v 5216 e58896 5216 00005216 a647 a647 a647 a647 a647 a647 a647 -917 a648 a648 a648 * 4749 * 8ea1c7c9,c7c9,8ea1c7c9v,c7c9v 52a3 e58aa3 52a3 000052a3 a648 a648 a648 a648 a648 a648 a648 -918 a649 a649 a649 * 474a * 8ea1c7ca,c7ca,8ea1c7cav,c7cav 5308 e58c88 5308 00005308 a649 a649 a649 a649 a649 a649 a649 -919 a64a a64a a64a * 474b * 8ea1c7cb,c7cb,8ea1c7cbv,c7cbv 5321 e58ca1 5321 00005321 a64a a64a a64a a64a a64a a64a a64a -920 a64b a64b a64b * 474c * 8ea1c7cc,c7cc,8ea1c7ccv,c7ccv 5320 e58ca0 5320 00005320 a64b a64b a64b a64b a64b a64b a64b -921 a64c a64c a64c * 474d * 8ea1c7cd,c7cd,8ea1c7cdv,c7cdv 5370 e58db0 5370 00005370 a64c a64c a64c a64c a64c a64c a64c -922 a64d a64d a64d * 474e * 8ea1c7ce,c7ce,8ea1c7cev,c7cev 5371 e58db1 5371 00005371 a64d a64d a64d a64d a64d a64d a64d -923 a64e a64e a64e * 474f * 8ea1c7cf,c7cf,8ea1c7cfv,c7cfv 5409 e59089 5409 00005409 a64e a64e a64e a64e a64e a64e a64e -924 a64f a64f a64f * 4750 * 8ea1c7d0,c7d0,8ea1c7d0v,c7d0v 540f e5908f 540f 0000540f a64f a64f a64f a64f a64f a64f a64f -925 a650 a650 a650 * 4751 * 8ea1c7d1,c7d1,8ea1c7d1v,c7d1v 540c e5908c 540c 0000540c a650 a650 a650 a650 a650 a650 a650 -926 a651 a651 a651 * 4752 * 8ea1c7d2,c7d2,8ea1c7d2v,c7d2v 540a e5908a 540a 0000540a a651 a651 a651 a651 a651 a651 a651 -927 a652 a652 a652 * 4753 * 8ea1c7d3,c7d3,8ea1c7d3v,c7d3v 5410 e59090 5410 00005410 a652 a652 a652 a652 a652 a652 a652 -928 a653 a653 a653 * 4754 * 8ea1c7d4,c7d4,8ea1c7d4v,c7d4v 5401 e59081 5401 00005401 a653 a653 a653 a653 a653 a653 a653 -929 a654 a654 a654 * 4755 * 8ea1c7d5,c7d5,8ea1c7d5v,c7d5v 540b e5908b 540b 0000540b a654 a654 a654 a654 a654 a654 a654 -930 a655 a655 a655 * 4756 * 8ea1c7d6,c7d6,8ea1c7d6v,c7d6v 5404 e59084 5404 00005404 a655 a655 a655 a655 a655 a655 a655 -931 a656 a656 a656 * 4757 * 8ea1c7d7,c7d7,8ea1c7d7v,c7d7v 5411 e59091 5411 00005411 a656 a656 a656 a656 a656 a656 a656 -932 a657 a657 a657 * 4758 * 8ea1c7d8,c7d8,8ea1c7d8v,c7d8v 540d e5908d 540d 0000540d a657 a657 a657 a657 a657 a657 a657 -933 a658 a658 a658 * 4759 * 8ea1c7d9,c7d9,8ea1c7d9v,c7d9v 5408 e59088 5408 00005408 a658 a658 a658 a658 a658 a658 a658 -934 a659 a659 a659 * 475a * 8ea1c7da,c7da,8ea1c7dav,c7dav 5403 e59083 5403 00005403 a659 a659 a659 a659 a659 a659 a659 -935 a65a a65a a65a * 475b * 8ea1c7db,c7db,8ea1c7dbv,c7dbv 540e e5908e 540e 0000540e a65a a65a a65a a65a a65a a65a a65a -936 a65b a65b a65b * 475c * 8ea1c7dc,c7dc,8ea1c7dcv,c7dcv 5406 e59086 5406 00005406 a65b a65b a65b a65b a65b a65b a65b -937 a65c a65c a65c * 475d * 8ea1c7dd,c7dd,8ea1c7ddv,c7ddv 5412 e59092 5412 00005412 a65c a65c a65c a65c a65c a65c a65c -938 a65d a65d a65d * 475e * 8ea1c7de,c7de,8ea1c7dev,c7dev 56e0 e59ba0 56e0 000056e0 a65d a65d a65d a65d a65d a65d a65d -939 a65e a65e a65e * 475f * 8ea1c7df,c7df,8ea1c7dfv,c7dfv 56de e59b9e 56de 000056de a65e a65e a65e a65e a65e a65e a65e -940 a65f a65f a65f * 4760 * 8ea1c7e0,c7e0,8ea1c7e0v,c7e0v 56dd e59b9d 56dd 000056dd a65f a65f a65f a65f a65f a65f a65f -941 a660 a660 a660 * 4761 * 8ea1c7e1,c7e1,8ea1c7e1v,c7e1v 5733 e59cb3 5733 00005733 a660 a660 a660 a660 a660 a660 a660 -942 a661 a661 a661 * 4762 * 8ea1c7e2,c7e2,8ea1c7e2v,c7e2v 5730 e59cb0 5730 00005730 a661 a661 a661 a661 a661 a661 a661 -943 a662 a662 a662 * 4763 * 8ea1c7e3,c7e3,8ea1c7e3v,c7e3v 5728 e59ca8 5728 00005728 a662 a662 a662 a662 a662 a662 a662 -944 a663 a663 a663 * 4764 * 8ea1c7e4,c7e4,8ea1c7e4v,c7e4v 572d e59cad 572d 0000572d a663 a663 a663 a663 a663 a663 a663 -945 a664 a664 a664 * 4765 * 8ea1c7e5,c7e5,8ea1c7e5v,c7e5v 572c e59cac 572c 0000572c a664 a664 a664 a664 a664 a664 a664 -946 a665 a665 a665 * 4766 * 8ea1c7e6,c7e6,8ea1c7e6v,c7e6v 572f e59caf 572f 0000572f a665 a665 a665 a665 a665 a665 a665 -947 a666 a666 a666 * 4767 * 8ea1c7e7,c7e7,8ea1c7e7v,c7e7v 5729 e59ca9 5729 00005729 a666 a666 a666 a666 a666 a666 a666 -948 a667 a667 a667 * 4768 * 8ea1c7e8,c7e8,8ea1c7e8v,c7e8v 5919 e5a499 5919 00005919 a667 a667 a667 a667 a667 a667 a667 -949 a668 a668 a668 * 4769 * 8ea1c7e9,c7e9,8ea1c7e9v,c7e9v 591a e5a49a 591a 0000591a a668 a668 a668 a668 a668 a668 a668 -950 a669 a669 a669 * 476a * 8ea1c7ea,c7ea,8ea1c7eav,c7eav 5937 e5a4b7 5937 00005937 a669 a669 a669 a669 a669 a669 a669 -951 a66a a66a a66a * 476b * 8ea1c7eb,c7eb,8ea1c7ebv,c7ebv 5938 e5a4b8 5938 00005938 a66a a66a a66a a66a a66a a66a a66a -952 a66b a66b a66b * 476c * 8ea1c7ec,c7ec,8ea1c7ecv,c7ecv 5984 e5a684 5984 00005984 a66b a66b a66b a66b a66b a66b a66b -953 a66c a66c a66c * 476d * 8ea1c7ed,c7ed,8ea1c7edv,c7edv 5978 e5a5b8 5978 00005978 a66c a66c a66c a66c a66c a66c a66c -954 a66d a66d a66d * 476e * 8ea1c7ee,c7ee,8ea1c7eev,c7eev 5983 e5a683 5983 00005983 a66d a66d a66d a66d a66d a66d a66d -955 a66e a66e a66e * 476f * 8ea1c7ef,c7ef,8ea1c7efv,c7efv 597d e5a5bd 597d 0000597d a66e a66e a66e a66e a66e a66e a66e -956 a66f a66f a66f * 4770 * 8ea1c7f0,c7f0,8ea1c7f0v,c7f0v 5979 e5a5b9 5979 00005979 a66f a66f a66f a66f a66f a66f a66f -957 a670 a670 a670 * 4771 * 8ea1c7f1,c7f1,8ea1c7f1v,c7f1v 5982 e5a682 5982 00005982 a670 a670 a670 a670 a670 a670 a670 -958 a671 a671 a671 * 4772 * 8ea1c7f2,c7f2,8ea1c7f2v,c7f2v 5981 e5a681 5981 00005981 a671 a671 a671 a671 a671 a671 a671 -959 a672 a672 a672 * 4773 * 8ea1c7f3,c7f3,8ea1c7f3v,c7f3v 5b57 e5ad97 5b57 00005b57 a672 a672 a672 a672 a672 a672 a672 -960 a673 a673 a673 * 4774 * 8ea1c7f4,c7f4,8ea1c7f4v,c7f4v 5b58 e5ad98 5b58 00005b58 a673 a673 a673 a673 a673 a673 a673 -961 a674 a674 a674 * 4775 * 8ea1c7f5,c7f5,8ea1c7f5v,c7f5v 5b87 e5ae87 5b87 00005b87 a674 a674 a674 a674 a674 a674 a674 -962 a675 a675 a675 * 4776 * 8ea1c7f6,c7f6,8ea1c7f6v,c7f6v 5b88 e5ae88 5b88 00005b88 a675 a675 a675 a675 a675 a675 a675 -963 a676 a676 a676 * 4777 * 8ea1c7f7,c7f7,8ea1c7f7v,c7f7v 5b85 e5ae85 5b85 00005b85 a676 a676 a676 a676 a676 a676 a676 -964 a677 a677 a677 * 4778 * 8ea1c7f8,c7f8,8ea1c7f8v,c7f8v 5b89 e5ae89 5b89 00005b89 a677 a677 a677 a677 a677 a677 a677 -965 a678 a678 a678 * 4779 * 8ea1c7f9,c7f9,8ea1c7f9v,c7f9v 5bfa e5afba 5bfa 00005bfa a678 a678 a678 a678 a678 a678 a678 -966 a679 a679 a679 * 477a * 8ea1c7fa,c7fa,8ea1c7fav,c7fav 5c16 e5b096 5c16 00005c16 a679 a679 a679 a679 a679 a679 a679 -967 a67a a67a a67a * 477b * 8ea1c7fb,c7fb,8ea1c7fbv,c7fbv 5c79 e5b1b9 5c79 00005c79 a67a a67a a67a a67a a67a a67a a67a -968 a67b a67b a67b * 477c * 8ea1c7fc,c7fc,8ea1c7fcv,c7fcv 5dde e5b79e 5dde 00005dde a67b a67b a67b a67b a67b a67b a67b -969 a67c a67c a67c * 477d * 8ea1c7fd,c7fd,8ea1c7fdv,c7fdv 5e06 e5b886 5e06 00005e06 a67c a67c a67c a67c a67c a67c a67c -970 a67d a67d a67d * 477e * 8ea1c7fe,c7fe,8ea1c7fev,c7fev 5e76 e5b9b6 5e76 00005e76 a67d a67d a67d a67d a67d a67d a67d -971 a67e a67e a67e * 4821 * 8ea1c8a1,c8a1,8ea1c8a1v,c8a1v 5e74 e5b9b4 5e74 00005e74 a67e a67e a67e a67e a67e a67e a67e -972 a6a1 a6a1 a6a1 * 4822 * 8ea1c8a2,c8a2,8ea1c8a2v,c8a2v 5f0f e5bc8f 5f0f 00005f0f a6a1 a6a1 a6a1 a6a1 a6a1 a6a1 a6a1 -973 a6a2 a6a2 a6a2 * 4823 * 8ea1c8a3,c8a3,8ea1c8a3v,c8a3v 5f1b e5bc9b 5f1b 00005f1b a6a2 a6a2 a6a2 a6a2 a6a2 a6a2 a6a2 -974 a6a3 a6a3 a6a3 * 4824 * 8ea1c8a4,c8a4,8ea1c8a4v,c8a4v 5fd9 e5bf99 5fd9 00005fd9 a6a3 a6a3 a6a3 a6a3 a6a3 a6a3 a6a3 -975 a6a4 a6a4 a6a4 * 4825 * 8ea1c8a5,c8a5,8ea1c8a5v,c8a5v 5fd6 e5bf96 5fd6 00005fd6 a6a4 a6a4 a6a4 a6a4 a6a4 a6a4 a6a4 -976 a6a5 a6a5 a6a5 * 4826 * 8ea1c8a6,c8a6,8ea1c8a6v,c8a6v 620e e6888e 620e 0000620e a6a5 a6a5 a6a5 a6a5 a6a5 a6a5 a6a5 -977 a6a6 a6a6 a6a6 * 4827 * 8ea1c8a7,c8a7,8ea1c8a7v,c8a7v 620c e6888c 620c 0000620c a6a6 a6a6 a6a6 a6a6 a6a6 a6a6 a6a6 -978 a6a7 a6a7 a6a7 * 4828 * 8ea1c8a8,c8a8,8ea1c8a8v,c8a8v 620d e6888d 620d 0000620d a6a7 a6a7 a6a7 a6a7 a6a7 a6a7 a6a7 -979 a6a8 a6a8 a6a8 * 4829 * 8ea1c8a9,c8a9,8ea1c8a9v,c8a9v 6210 e68890 6210 00006210 a6a8 a6a8 a6a8 a6a8 a6a8 a6a8 a6a8 -980 a6a9 a6a9 a6a9 * 482a * 8ea1c8aa,c8aa,8ea1c8aav,c8aav 6263 e689a3 6263 00006263 a6a9 a6a9 a6a9 a6a9 a6a9 a6a9 a6a9 -981 a6aa a6aa a6aa * 482b * 8ea1c8ab,c8ab,8ea1c8abv,c8abv 625b e6899b 625b 0000625b a6aa a6aa a6aa a6aa a6aa a6aa a6aa -982 a6ab a6ab a6ab * 482c * 8ea1c8ac,c8ac,8ea1c8acv,c8acv 6258 e68998 6258 00006258 a6ab a6ab a6ab a6ab a6ab a6ab a6ab -983 a6ac a6ac a6ac * 482d * 8ea1c8ad,c8ad,8ea1c8adv,c8adv 6536 e694b6 6536 00006536 a6ac a6ac a6ac a6ac a6ac a6ac a6ac -984 a6ad a6ad a6ad * 482e * 8ea1c8ae,c8ae,8ea1c8aev,c8aev 65e9 e697a9 65e9 000065e9 a6ad a6ad a6ad a6ad a6ad a6ad a6ad -985 a6ae a6ae a6ae * 482f * 8ea1c8af,c8af,8ea1c8afv,c8afv 65e8 e697a8 65e8 000065e8 a6ae a6ae a6ae a6ae a6ae a6ae a6ae -986 a6af a6af a6af * 4830 * 8ea1c8b0,c8b0,8ea1c8b0v,c8b0v 65ec e697ac 65ec 000065ec a6af a6af a6af a6af a6af a6af a6af -987 a6b0 a6b0 a6b0 * 4831 * 8ea1c8b1,c8b1,8ea1c8b1v,c8b1v 65ed e697ad 65ed 000065ed a6b0 a6b0 a6b0 a6b0 a6b0 a6b0 a6b0 -988 a6b1 a6b1 a6b1 * 4832 * 8ea1c8b2,c8b2,8ea1c8b2v,c8b2v 66f2 e69bb2 66f2 000066f2 a6b1 a6b1 a6b1 a6b1 a6b1 a6b1 a6b1 -989 a6b2 a6b2 a6b2 * 4833 * 8ea1c8b3,c8b3,8ea1c8b3v,c8b3v 66f3 e69bb3 66f3 000066f3 a6b2 a6b2 a6b2 a6b2 a6b2 a6b2 a6b2 -990 a6b3 a6b3 a6b3 * 4834 * 8ea1c8b4,c8b4,8ea1c8b4v,c8b4v 6709 e69c89 6709 00006709 a6b3 a6b3 a6b3 a6b3 a6b3 a6b3 a6b3 -991 a6b4 a6b4 a6b4 * 4835 * 8ea1c8b5,c8b5,8ea1c8b5v,c8b5v 673d e69cbd 673d 0000673d a6b4 a6b4 a6b4 a6b4 a6b4 a6b4 a6b4 -992 a6b5 a6b5 a6b5 * 4836 * 8ea1c8b6,c8b6,8ea1c8b6v,c8b6v 6734 e69cb4 6734 00006734 a6b5 a6b5 a6b5 a6b5 a6b5 a6b5 a6b5 -993 a6b6 a6b6 a6b6 * 4837 * 8ea1c8b7,c8b7,8ea1c8b7v,c8b7v 6731 e69cb1 6731 00006731 a6b6 a6b6 a6b6 a6b6 a6b6 a6b6 a6b6 -994 a6b7 a6b7 a6b7 * 4838 * 8ea1c8b8,c8b8,8ea1c8b8v,c8b8v 6735 e69cb5 6735 00006735 a6b7 a6b7,fcac a6b7 a6b7 a6b7 a6b7 a6b7 -995 a6b8 a6b8 a6b8 * 4839 * 8ea1c8b9,c8b9,8ea1c8b9v,c8b9v 6b21 e6aca1 6b21 00006b21 a6b8 a6b8 a6b8 a6b8 a6b8 a6b8 a6b8 -996 a6b9 a6b9 a6b9 * 483a * 8ea1c8ba,c8ba,8ea1c8bav,c8bav 6b64 e6ada4 6b64 00006b64 a6b9 a6b9 a6b9 a6b9 a6b9 a6b9 a6b9 -997 a6ba a6ba a6ba * 483b * 8ea1c8bb,c8bb,8ea1c8bbv,c8bbv 6b7b e6adbb 6b7b 00006b7b a6ba a6ba a6ba a6ba a6ba a6ba a6ba -998 a6bb a6bb a6bb * 483c * 8ea1c8bc,c8bc,8ea1c8bcv,c8bcv 6c16 e6b096 6c16 00006c16 a6bb a6bb a6bb a6bb a6bb a6bb a6bb -999 a6bc a6bc a6bc * 483d * 8ea1c8bd,c8bd,8ea1c8bdv,c8bdv 6c5d e6b19d 6c5d 00006c5d a6bc a6bc a6bc a6bc a6bc a6bc a6bc -1000 a6bd a6bd a6bd * 483e * 8ea1c8be,c8be,8ea1c8bev,c8bev 6c57 e6b197 6c57 00006c57 a6bd a6bd a6bd a6bd a6bd a6bd a6bd -1001 a6be a6be a6be * 483f * 8ea1c8bf,c8bf,8ea1c8bfv,c8bfv 6c59 e6b199 6c59 00006c59 a6be a6be a6be a6be a6be a6be a6be -1002 a6bf a6bf a6bf * 4840 * 8ea1c8c0,c8c0,8ea1c8c0v,c8c0v 6c5f e6b19f 6c5f 00006c5f a6bf a6bf a6bf a6bf a6bf a6bf a6bf -1003 a6c0 a6c0 a6c0 * 4841 * 8ea1c8c1,c8c1,8ea1c8c1v,c8c1v 6c60 e6b1a0 6c60 00006c60 a6c0 a6c0 a6c0 a6c0 a6c0 a6c0 a6c0 -1004 a6c1 a6c1 a6c1 * 4842 * 8ea1c8c2,c8c2,8ea1c8c2v,c8c2v 6c50 e6b190 6c50 00006c50 a6c1 a6c1 a6c1 a6c1 a6c1 a6c1 a6c1 -1005 a6c2 a6c2 a6c2 * 4843 * 8ea1c8c3,c8c3,8ea1c8c3v,c8c3v 6c55 e6b195 6c55 00006c55 a6c2 a6c2 a6c2 a6c2 a6c2 a6c2 a6c2 -1006 a6c3 a6c3 a6c3 * 4844 * 8ea1c8c4,c8c4,8ea1c8c4v,c8c4v 6c61 e6b1a1 6c61 00006c61 a6c3 a6c3 a6c3 a6c3 a6c3 a6c3 a6c3 -1007 a6c4 a6c4 a6c4 * 4845 * 8ea1c8c5,c8c5,8ea1c8c5v,c8c5v 6c5b e6b19b 6c5b 00006c5b a6c4 a6c4 a6c4 a6c4 a6c4 a6c4 a6c4 -1008 a6c5 a6c5 a6c5 * 4846 * 8ea1c8c6,c8c6,8ea1c8c6v,c8c6v 6c4d e6b18d 6c4d 00006c4d a6c5 a6c5 a6c5 a6c5 a6c5 a6c5 a6c5 -1009 a6c6 a6c6 a6c6 * 4847 * 8ea1c8c7,c8c7,8ea1c8c7v,c8c7v 6c4e e6b18e 6c4e 00006c4e a6c6 a6c6 a6c6 a6c6 a6c6 a6c6 a6c6 -1010 a6c7 a6c7 a6c7 * 4848 * 8ea1c8c8,c8c8,8ea1c8c8v,c8c8v 7070 e781b0 7070 00007070 a6c7 a6c7 a6c7 a6c7 a6c7 a6c7 a6c7 -1011 a6c8 a6c8 a6c8 * 4849 * 8ea1c8c9,c8c9,8ea1c8c9v,c8c9v 725f e7899f 725f 0000725f a6c8 a6c8 a6c8 a6c8 a6c8 a6c8 a6c8 -1012 a6c9 a6c9 a6c9 * 484a * 8ea1c8ca,c8ca,8ea1c8cav,c8cav 725d e7899d 725d 0000725d a6c9 a6c9 a6c9 a6c9 a6c9 a6c9 a6c9 -1013 a6ca a6ca a6ca * 484b * 8ea1c8cb,c8cb,8ea1c8cbv,c8cbv 767e e799be 767e 0000767e a6ca a6ca a6ca a6ca a6ca a6ca a6ca -1014 a6cb a6cb a6cb * 2837,484c * 8ea1a8b7,8ea1c8cc,a8b7,c8cc,8ea1a8b7v,8ea1c8ccv,a8b7v,c8ccv 7af9 e7abb9,e2bdb5 7af9,2f75 00007af9,00002f75 a6cb a6cb a6cb a6cb a6cb a6cb a6cb -1015 a6cc a6cc a6cc * 2838,484d * 8ea1a8b8,8ea1c8cd,a8b8,c8cd,8ea1a8b8v,8ea1c8cdv,a8b8v,c8cdv 7c73 e7b1b3,e2bdb6 7c73,2f76 00007c73,00002f76 a6cc a6cc a6cc a6cc a6cc a6cc a6cc -1016 a6cd a6cd a6cd * 2839,484e * 8ea1a8b9,8ea1c8ce,a8b9,c8ce,8ea1a8b9v,8ea1c8cev,a8b9v,c8cev 7cf8 e7b3b8,e2bdb7 7cf8,2f77 00007cf8,00002f77 a6cd a6cd a6cd a6cd a6cd a6cd a6cd -1017 a6ce a6ce a6ce * 283a,484f * 8ea1a8ba,8ea1c8cf,a8ba,c8cf,8ea1a8bav,8ea1c8cfv,a8bav,c8cfv 7f36 e7bcb6,e2bdb8 7f36,2f78 00007f36,00002f78 a6ce a6ce a6ce a6ce a6ce a6ce a6ce -1018 a6cf a6cf a6cf * 283c,4850 * 8ea1a8bc,8ea1c8d0,a8bc,c8d0,8ea1a8bcv,8ea1c8d0v,a8bcv,c8d0v 7f8a e7be8a,e2bdba 7f8a,2f7a 00007f8a,00002f7a a6cf a6cf a6cf a6cf a6cf a6cf a6cf -1019 a6d0 a6d0 a6d0 * 283d,4851 * 8ea1a8bd,8ea1c8d1,a8bd,c8d1,8ea1a8bdv,8ea1c8d1v,a8bdv,c8d1v 7fbd e7bebd,e2bdbb 7fbd,2f7b 00007fbd,00002f7b a6d0 a6d0 a6d0 a6d0 a6d0 a6d0 a6d0 -1020 a6d1 a6d1 a6d1 * 283e,4852 * 8ea1a8be,8ea1c8d2,a8be,c8d2,8ea1a8bev,8ea1c8d2v,a8bev,c8d2v 8001 e88081,e2bdbc 8001,2f7c 00008001,00002f7c a6d1 a6d1 a6d1 a6d1 a6d1 a6d1 a6d1 -1021 a6d2 a6d2 a6d2 * 4853 * 8ea1c8d3,c8d3,8ea1c8d3v,c8d3v 8003 e88083 8003 00008003 a6d2 a6d2 a6d2 a6d2 a6d2 a6d2 a6d2 -1022 a6d3 a6d3 a6d3 * 283f,4854 * 8ea1a8bf,8ea1c8d4,a8bf,c8d4,8ea1a8bfv,8ea1c8d4v,a8bfv,c8d4v 800c e8808c,e2bdbd 800c,2f7d 0000800c,00002f7d a6d3 a6d3 a6d3 a6d3 a6d3 a6d3 a6d3 -1023 a6d4 a6d4 a6d4 * 2840,4855 * 8ea1a8c0,8ea1c8d5,a8c0,c8d5,8ea1a8c0v,8ea1c8d5v,a8c0v,c8d5v 8012 e88092,e2bdbe 8012,2f7e 00008012,00002f7e a6d4 a6d4 a6d4 a6d4 a6d4 a6d4 a6d4 -1024 a6d5 a6d5 a6d5 * 2841,4856 * 8ea1a8c1,8ea1c8d6,a8c1,c8d6,8ea1a8c1v,8ea1c8d6v,a8c1v,c8d6v 8033 e880b3,e2bdbf 8033,2f7f 00008033,00002f7f a6d5 a6d5 a6d5 a6d5 a6d5 a6d5 a6d5 -1025 a6d6 a6d6 a6d6 * 2842,4857 * 8ea1a8c2,8ea1c8d7,a8c2,c8d7,8ea1a8c2v,8ea1c8d7v,a8c2v,c8d7v 807f e881bf,e2be80 807f,2f80 0000807f,00002f80 a6d6 a6d6 a6d6 a6d6 a6d6 a6d6 a6d6 -1026 a6d7 a6d7 a6d7 * 2843,4858 * 8ea1a8c3,8ea1c8d8,a8c3,c8d8,8ea1a8c3v,8ea1c8d8v,a8c3v,c8d8v 8089 e88289,e2be81 8089,2f81 00008089,00002f81 a6d7 a6d7 a6d7 a6d7 a6d7 a6d7 a6d7 -1027 a6d8 a6d8 a6d8 * 4859 * 8ea1c8d9,c8d9,8ea1c8d9v,c8d9v 808b e8828b 808b 0000808b a6d8 a6d8 a6d8 a6d8 a6d8 a6d8 a6d8 -1028 a6d9 a6d9 a6d9 * 485a * 8ea1c8da,c8da,8ea1c8dav,c8dav 808c e8828c 808c 0000808c a6d9 a6d9 a6d9 a6d9 a6d9 a6d9 a6d9 -1029 a6da a6da a6da * 2844,485b * 8ea1a8c4,8ea1c8db,a8c4,c8db,8ea1a8c4v,8ea1c8dbv,a8c4v,c8dbv 81e3 e887a3,e2be82 81e3,2f82 000081e3,00002f82 a6da a6da a6da a6da a6da a6da a6da -1030 a6db a6db a6db * 2845,485c * 8ea1a8c5,8ea1c8dc,a8c5,c8dc,8ea1a8c5v,8ea1c8dcv,a8c5v,c8dcv 81ea e887aa,e2be83 81ea,2f83 000081ea,00002f83 a6db a6db a6db a6db a6db a6db a6db -1031 a6dc a6dc a6dc * 2846,485d * 8ea1a8c6,8ea1c8dd,a8c6,c8dd,8ea1a8c6v,8ea1c8ddv,a8c6v,c8ddv 81f3 e887b3,e2be84 81f3,2f84 000081f3,00002f84 a6dc a6dc a6dc a6dc a6dc a6dc a6dc -1032 a6dd a6dd a6dd * 2847,485e * 8ea1a8c7,8ea1c8de,a8c7,c8de,8ea1a8c7v,8ea1c8dev,a8c7v,c8dev 81fc e887bc,e2be85 81fc,2f85 000081fc,00002f85 a6dd a6dd a6dd a6dd a6dd a6dd a6dd -1033 a6de a6de a6de * 2848,485f * 8ea1a8c8,8ea1c8df,a8c8,c8df,8ea1a8c8v,8ea1c8dfv,a8c8v,c8dfv 820c e8888c,e2be86 820c,2f86 0000820c,00002f86 a6de a6de a6de a6de a6de a6de a6de -1034 a6df a6df a6df * 2849,4860 * 8ea1a8c9,8ea1c8e0,a8c9,c8e0,8ea1a8c9v,8ea1c8e0v,a8c9v,c8e0v 821b e8889b,e2be87 821b,2f87 0000821b,00002f87 a6df a6df a6df a6df a6df a6df a6df -1035 a6e0 a6e0 a6e0 * 284a,4861 * 8ea1a8ca,8ea1c8e1,a8ca,c8e1,8ea1a8cav,8ea1c8e1v,a8cav,c8e1v 821f e8889f,e2be88 821f,2f88 0000821f,00002f88 a6e0 a6e0 a6e0 a6e0 a6e0 a6e0 a6e0 -1036 a6e1 a6e1 a6e1 * 284b,4862 * 8ea1a8cb,8ea1c8e2,a8cb,c8e2,8ea1a8cbv,8ea1c8e2v,a8cbv,c8e2v 826e e889ae,e2be89 826e,2f89 0000826e,00002f89 a6e1 a6e1 a6e1 a6e1 a6e1 a6e1 a6e1 -1037 a6e2 a6e2 a6e2 * 284c,4863 * 8ea1a8cc,8ea1c8e3,a8cc,c8e3,8ea1a8ccv,8ea1c8e3v,a8ccv,c8e3v 8272 e889b2,e2be8a 8272,2f8a 00008272,00002f8a a6e2 a6e2 a6e2 a6e2 a6e2 a6e2 a6e2 -1038 a6e3 a6e3 a6e3 * 4864 * 8ea1c8e4,c8e4,8ea1c8e4v,c8e4v 827e e889be 827e 0000827e a6e3 a6e3 a6e3 a6e3 a6e3 a6e3 a6e3 -1039 a6e4 a6e4 a6e4 * 284f,4865 * 8ea1a8cf,8ea1c8e5,a8cf,c8e5,8ea1a8cfv,8ea1c8e5v,a8cfv,c8e5v 866b e899ab,e2be8d 866b,2f8d 0000866b,00002f8d a6e4 a6e4 a6e4 a6e4 a6e4 a6e4 a6e4 -1040 a6e5 a6e5 a6e5 * 2850,4866 * 8ea1a8d0,8ea1c8e6,a8d0,c8e6,8ea1a8d0v,8ea1c8e6v,a8d0v,c8e6v 8840 e8a180,e2be8e 8840,2f8e 00008840,00002f8e a6e5 a6e5 a6e5 a6e5 a6e5 a6e5 a6e5 -1041 a6e6 a6e6 a6e6 * 2851,4867 * 8ea1a8d1,8ea1c8e7,a8d1,c8e7,8ea1a8d1v,8ea1c8e7v,a8d1v,c8e7v 884c e8a18c,e2be8f 884c,2f8f 0000884c,00002f8f a6e6 a6e6 a6e6 a6e6 a6e6 a6e6 a6e6 -1042 a6e7 a6e7 a6e7 * 2852,4868 * 8ea1a8d2,8ea1c8e8,a8d2,c8e8,8ea1a8d2v,8ea1c8e8v,a8d2v,c8e8v 8863 e8a1a3,e2be90 8863,2f90 00008863,00002f90 a6e7 a6e7 a6e7 a6e7 a6e7 a6e7 a6e7 -1043 a6e8 a6e8 a6e8 * 4869 * 8ea1c8e9,c8e9,8ea1c8e9v,c8e9v 897f e8a5bf 897f 0000897f a6e8 a6e8 a6e8 a6e8 a6e8 a6e8 a6e8 -1044 a6e9 a6e9 a6e9 * 486a * 8ea1c8ea,c8ea,8ea1c8eav,c8eav 9621 e998a1 9621 00009621 a6e9 a6e9 a6e9 a6e9 a6e9 a6e9 a6e9 -1045 a6ea a6ea a6ea * 486b * 8ea1c8eb,c8eb,8ea1c8ebv,c8ebv 4e32 e4b8b2 4e32 00004e32 a6ea a6ea a6ea a6ea a6ea a6ea a6ea -1046 a6eb a6eb a6eb * 486c * 8ea1c8ec,c8ec,8ea1c8ecv,c8ecv 4ea8 e4baa8 4ea8 00004ea8 a6eb a6eb a6eb a6eb a6eb a6eb a6eb -1047 a6ec a6ec a6ec * 486d * 8ea1c8ed,c8ed,8ea1c8edv,c8edv 4f4d e4bd8d 4f4d 00004f4d a6ec a6ec a6ec a6ec a6ec a6ec a6ec -1048 a6ed a6ed a6ed * 486e * 8ea1c8ee,c8ee,8ea1c8eev,c8eev 4f4f e4bd8f 4f4f 00004f4f a6ed a6ed a6ed a6ed a6ed a6ed a6ed -1049 a6ee a6ee a6ee * 486f * 8ea1c8ef,c8ef,8ea1c8efv,c8efv 4f47 e4bd87 4f47 00004f47 a6ee a6ee a6ee a6ee a6ee a6ee a6ee -1050 a6ef a6ef a6ef * 4870 * 8ea1c8f0,c8f0,8ea1c8f0v,c8f0v 4f57 e4bd97 4f57 00004f57 a6ef a6ef a6ef a6ef a6ef a6ef a6ef -1051 a6f0 a6f0 a6f0 * 4871 * 8ea1c8f1,c8f1,8ea1c8f1v,c8f1v 4f5e e4bd9e 4f5e 00004f5e a6f0 a6f0 a6f0 a6f0 a6f0 a6f0 a6f0 -1052 a6f1 a6f1 a6f1 * 4872 * 8ea1c8f2,c8f2,8ea1c8f2v,c8f2v 4f34 e4bcb4 4f34 00004f34 a6f1 a6f1 a6f1 a6f1 a6f1 a6f1 a6f1 -1053 a6f2 a6f2 a6f2 * 4873 * 8ea1c8f3,c8f3,8ea1c8f3v,c8f3v 4f5b e4bd9b 4f5b 00004f5b a6f2 a6f2 a6f2 a6f2 a6f2 a6f2 a6f2 -1054 a6f3 a6f3 a6f3 * 4874 * 8ea1c8f4,c8f4,8ea1c8f4v,c8f4v 4f55 e4bd95 4f55 00004f55 a6f3 a6f3 a6f3 a6f3 a6f3 a6f3 a6f3 -1055 a6f4 a6f4 a6f4 * 4875 * 8ea1c8f5,c8f5,8ea1c8f5v,c8f5v 4f30 e4bcb0 4f30 00004f30 a6f4 a6f4 a6f4 a6f4 a6f4 a6f4 a6f4 -1056 a6f5 a6f5 a6f5 * 4876 * 8ea1c8f6,c8f6,8ea1c8f6v,c8f6v 4f50 e4bd90 4f50 00004f50 a6f5 a6f5 a6f5 a6f5 a6f5 a6f5 a6f5 -1057 a6f6 a6f6 a6f6 * 4877 * 8ea1c8f7,c8f7,8ea1c8f7v,c8f7v 4f51 e4bd91 4f51 00004f51 a6f6 a6f6 a6f6 a6f6 a6f6 a6f6 a6f6 -1058 a6f7 a6f7 a6f7 * 4878 * 8ea1c8f8,c8f8,8ea1c8f8v,c8f8v 4f3d e4bcbd 4f3d 00004f3d a6f7 a6f7 a6f7 a6f7 a6f7 a6f7 a6f7 -1059 a6f8 a6f8 a6f8 * 4879 * 8ea1c8f9,c8f9,8ea1c8f9v,c8f9v 4f3a e4bcba 4f3a 00004f3a a6f8 a6f8 a6f8 a6f8 a6f8 a6f8 a6f8 -1060 a6f9 a6f9 a6f9 * 487a * 8ea1c8fa,c8fa,8ea1c8fav,c8fav 4f38 e4bcb8 4f38 00004f38 a6f9 a6f9 a6f9 a6f9 a6f9 a6f9 a6f9 -1061 a6fa a6fa a6fa * 487b * 8ea1c8fb,c8fb,8ea1c8fbv,c8fbv 4f43 e4bd83 4f43 00004f43 a6fa a6fa a6fa a6fa a6fa a6fa a6fa -1062 a6fb a6fb a6fb * 487c * 8ea1c8fc,c8fc,8ea1c8fcv,c8fcv 4f54 e4bd94 4f54 00004f54 a6fb a6fb a6fb a6fb a6fb a6fb a6fb -1063 a6fc a6fc a6fc * 487d * 8ea1c8fd,c8fd,8ea1c8fdv,c8fdv 4f3c e4bcbc 4f3c 00004f3c a6fc a6fc a6fc a6fc a6fc a6fc a6fc -1064 a6fd a6fd a6fd * 487e * 8ea1c8fe,c8fe,8ea1c8fev,c8fev 4f46 e4bd86 4f46 00004f46 a6fd a6fd a6fd a6fd a6fd a6fd a6fd -1065 a6fe a6fe a6fe * 4921 * 8ea1c9a1,c9a1,8ea1c9a1v,c9a1v 4f63 e4bda3 4f63 00004f63 a6fe a6fe a6fe a6fe a6fe a6fe a6fe -1066 a740 a740 a740 * 4922 * 8ea1c9a2,c9a2,8ea1c9a2v,c9a2v 4f5c e4bd9c 4f5c 00004f5c a740 a740 a740 a740 a740 a740 a740 -1067 a741 a741 a741 * 4923 * 8ea1c9a3,c9a3,8ea1c9a3v,c9a3v 4f60 e4bda0 4f60 00004f60 a741 a741 a741 a741 a741 a741 a741 -1068 a742 a742 a742 * 4924 * 8ea1c9a4,c9a4,8ea1c9a4v,c9a4v 4f2f e4bcaf 4f2f 00004f2f a742 a742 a742 a742 a742 a742 a742 -1069 a743 a743 a743 * 4925 * 8ea1c9a5,c9a5,8ea1c9a5v,c9a5v 4f4e e4bd8e 4f4e 00004f4e a743 a743 a743 a743 a743 a743 a743 -1070 a744 a744 a744 * 4926 * 8ea1c9a6,c9a6,8ea1c9a6v,c9a6v 4f36 e4bcb6 4f36 00004f36 a744 a744 a744 a744 a744 a744 a744 -1071 a745 a745 a745 * 4927 * 8ea1c9a7,c9a7,8ea1c9a7v,c9a7v 4f59 e4bd99 4f59 00004f59 a745 a745 a745 a745 a745 a745 a745 -1072 a746 a746 a746 * 4928 * 8ea1c9a8,c9a8,8ea1c9a8v,c9a8v 4f5d e4bd9d 4f5d 00004f5d a746 a746 a746 a746 a746 a746 a746 -1073 a747 a747 a747 * 4929 * 8ea1c9a9,c9a9,8ea1c9a9v,c9a9v 4f48 e4bd88 4f48 00004f48 a747 a747 a747 a747 a747 a747 a747 -1074 a748 a748 a748 * 492a * 8ea1c9aa,c9aa,8ea1c9aav,c9aav 4f5a e4bd9a 4f5a 00004f5a a748 a748 a748 a748 a748 a748 a748 -1075 a749 a749 a749 * 492b * 8ea1c9ab,c9ab,8ea1c9abv,c9abv 514c e5858c 514c 0000514c a749 a749 a749 a749 a749 a749 a749 -1076 a74a a74a a74a * 492c * 8ea1c9ac,c9ac,8ea1c9acv,c9acv 514b e5858b 514b 0000514b a74a a74a a74a a74a a74a a74a a74a -1077 a74b a74b a74b * 492d * 8ea1c9ad,c9ad,8ea1c9adv,c9adv 514d e5858d 514d 0000514d a74b a74b a74b a74b a74b a74b a74b -1078 a74c a74c a74c * 492e * 8ea1c9ae,c9ae,8ea1c9aev,c9aev 5175 e585b5 5175 00005175 a74c a74c a74c a74c a74c a74c a74c -1079 a74d a74d a74d * 492f * 8ea1c9af,c9af,8ea1c9afv,c9afv 51b6 e586b6 51b6 000051b6 a74d a74d a74d a74d a74d a74d a74d -1080 a74e a74e a74e * 4930 * 8ea1c9b0,c9b0,8ea1c9b0v,c9b0v 51b7 e586b7 51b7 000051b7 a74e a74e a74e a74e a74e a74e a74e -1081 a74f a74f a74f * 4931 * 8ea1c9b1,c9b1,8ea1c9b1v,c9b1v 5225 e588a5 5225 00005225 a74f a74f a74f a74f a74f a74f a74f -1082 a750 a750 a750 * 4932 * 8ea1c9b2,c9b2,8ea1c9b2v,c9b2v 5224 e588a4 5224 00005224 a750 a750 a750 a750 a750 a750 a750 -1083 a751 a751 a751 * 4933 * 8ea1c9b3,c9b3,8ea1c9b3v,c9b3v 5229 e588a9 5229 00005229 a751 a751 a751 a751 a751 a751 a751 -1084 a752 a752 a752 * 4934 * 8ea1c9b4,c9b4,8ea1c9b4v,c9b4v 522a e588aa 522a 0000522a a752 a752 a752 a752 a752 a752 a752 -1085 a753 a753 a753 * 4935 * 8ea1c9b5,c9b5,8ea1c9b5v,c9b5v 5228 e588a8 5228 00005228 a753 a753 a753 a753 a753 a753 a753 -1086 a754 a754 a754 * 4936 * 8ea1c9b6,c9b6,8ea1c9b6v,c9b6v 52ab e58aab 52ab 000052ab a754 a754 a754 a754 a754 a754 a754 -1087 a755 a755 a755 * 4937 * 8ea1c9b7,c9b7,8ea1c9b7v,c9b7v 52a9 e58aa9 52a9 000052a9 a755 a755 a755 a755 a755 a755 a755 -1088 a756 a756 a756 * 4938 * 8ea1c9b8,c9b8,8ea1c9b8v,c9b8v 52aa e58aaa 52aa 000052aa a756 a756 a756 a756 a756 a756 a756 -1089 a757 a757 a757 * 4939 * 8ea1c9b9,c9b9,8ea1c9b9v,c9b9v 52ac e58aac 52ac 000052ac a757 a757 a757 a757 a757 a757 a757 -1090 a758 a758 a758 * 493a * 8ea1c9ba,c9ba,8ea1c9bav,c9bav 5323 e58ca3 5323 00005323 a758 a758 a758 a758 a758 a758 a758 -1091 a759 a759 a759 * 493b * 8ea1c9bb,c9bb,8ea1c9bbv,c9bbv 5373 e58db3 5373 00005373 a759 a759 a759 a759 a759 a759 a759 -1092 a75a a75a a75a * 493c * 8ea1c9bc,c9bc,8ea1c9bcv,c9bcv 5375 e58db5 5375 00005375 a75a a75a a75a a75a a75a a75a a75a -1093 a75b a75b a75b * 493d * 8ea1c9bd,c9bd,8ea1c9bdv,c9bdv 541d e5909d 541d 0000541d a75b a75b a75b a75b a75b a75b a75b -1094 a75c a75c a75c * 493e * 8ea1c9be,c9be,8ea1c9bev,c9bev 542d e590ad 542d 0000542d a75c a75c a75c a75c a75c a75c a75c -1095 a75d a75d a75d * 493f * 8ea1c9bf,c9bf,8ea1c9bfv,c9bfv 541e e5909e 541e 0000541e a75d a75d a75d a75d a75d a75d a75d -1096 a75e a75e a75e * 4940 * 8ea1c9c0,c9c0,8ea1c9c0v,c9c0v 543e e590be 543e 0000543e a75e a75e a75e a75e a75e a75e a75e -1097 a75f a75f a75f * 4941 * 8ea1c9c1,c9c1,8ea1c9c1v,c9c1v 5426 e590a6 5426 00005426 a75f a75f a75f a75f a75f a75f a75f -1098 a760 a760 a760 * 4942 * 8ea1c9c2,c9c2,8ea1c9c2v,c9c2v 544e e5918e 544e 0000544e a760 a760 a760 a760 a760 a760 a760 -1099 a761 a761 a761 * 4943 * 8ea1c9c3,c9c3,8ea1c9c3v,c9c3v 5427 e590a7 5427 00005427 a761 a761 a761 a761 a761 a761 a761 -1100 a762 a762 a762 * 4944 * 8ea1c9c4,c9c4,8ea1c9c4v,c9c4v 5446 e59186 5446 00005446 a762 a762 a762 a762 a762 a762 a762 -1101 a763 a763 a763 * 4945 * 8ea1c9c5,c9c5,8ea1c9c5v,c9c5v 5443 e59183 5443 00005443 a763 a763 a763 a763 a763 a763 a763 -1102 a764 a764 a764 * 4946 * 8ea1c9c6,c9c6,8ea1c9c6v,c9c6v 5433 e590b3 5433 00005433 a764 a764 a764 a764 a764 a764 a764 -1103 a765 a765 a765 * 4947 * 8ea1c9c7,c9c7,8ea1c9c7v,c9c7v 5448 e59188 5448 00005448 a765 a765 a765 a765 a765 a765 a765 -1104 a766 a766 a766 * 4948 * 8ea1c9c8,c9c8,8ea1c9c8v,c9c8v 5442 e59182 5442 00005442 a766 a766 a766 a766 a766 a766 a766 -1105 a767 a767 a767 * 4949 * 8ea1c9c9,c9c9,8ea1c9c9v,c9c9v 541b e5909b 541b 0000541b a767 a767 a767 a767 a767 a767 a767 -1106 a768 a768 a768 * 494a * 8ea1c9ca,c9ca,8ea1c9cav,c9cav 5429 e590a9 5429 00005429 a768 a768 a768 a768 a768 a768 a768 -1107 a769 a769 a769 * 494b * 8ea1c9cb,c9cb,8ea1c9cbv,c9cbv 544a e5918a 544a 0000544a a769 a769 a769 a769 a769 a769 a769 -1108 a76a a76a a76a * 494c * 8ea1c9cc,c9cc,8ea1c9ccv,c9ccv 5439 e590b9 5439 00005439 a76a a76a a76a a76a a76a a76a a76a -1109 a76b a76b a76b * 494d * 8ea1c9cd,c9cd,8ea1c9cdv,c9cdv 543b e590bb 543b 0000543b a76b a76b a76b a76b a76b a76b a76b -1110 a76c a76c a76c * 494e * 8ea1c9ce,c9ce,8ea1c9cev,c9cev 5438 e590b8 5438 00005438 a76c a76c a76c a76c a76c a76c a76c -1111 a76d a76d a76d * 494f * 8ea1c9cf,c9cf,8ea1c9cfv,c9cfv 542e e590ae 542e 0000542e a76d a76d a76d a76d a76d a76d a76d -1112 a76e a76e a76e * 4950 * 8ea1c9d0,c9d0,8ea1c9d0v,c9d0v 5435 e590b5 5435 00005435 a76e a76e a76e a76e a76e a76e a76e -1113 a76f a76f a76f * 4951 * 8ea1c9d1,c9d1,8ea1c9d1v,c9d1v 5436 e590b6 5436 00005436 a76f a76f a76f a76f a76f a76f a76f -1114 a770 a770 a770 * 4952 * 8ea1c9d2,c9d2,8ea1c9d2v,c9d2v 5420 e590a0 5420 00005420 a770 a770 a770 a770 a770 a770 a770 -1115 a771 a771 a771 * 4953 * 8ea1c9d3,c9d3,8ea1c9d3v,c9d3v 543c e590bc 543c 0000543c a771 a771 a771 a771 a771 a771 a771 -1116 a772 a772 a772 * 4954 * 8ea1c9d4,c9d4,8ea1c9d4v,c9d4v 5440 e59180 5440 00005440 a772 a772 a772 a772 a772 a772 a772 -1117 a773 a773 a773 * 4955 * 8ea1c9d5,c9d5,8ea1c9d5v,c9d5v 5431 e590b1 5431 00005431 a773 a773 a773 a773 a773 a773 a773 -1118 a774 a774 a774 * 4956 * 8ea1c9d6,c9d6,8ea1c9d6v,c9d6v 542b e590ab 542b 0000542b a774 a774 a774 a774 a774 a774 a774 -1119 a775 a775 a775 * 4957 * 8ea1c9d7,c9d7,8ea1c9d7v,c9d7v 541f e5909f 541f 0000541f a775 a775 a775 a775 a775 a775 a775 -1120 a776 a776 a776 * 4958 * 8ea1c9d8,c9d8,8ea1c9d8v,c9d8v 542c e590ac 542c 0000542c a776 a776 a776 a776 a776 a776 a776 -1121 a777 a777 a777 * 4959 * 8ea1c9d9,c9d9,8ea1c9d9v,c9d9v 56ea e59baa 56ea 000056ea a777 a777 a777 a777 a777 a777 a777 -1122 a778 a778 a778 * 495a * 8ea1c9da,c9da,8ea1c9dav,c9dav 56f0 e59bb0 56f0 000056f0 a778 a778 a778 a778 a778 a778 a778 -1123 a779 a779 a779 * 495b * 8ea1c9db,c9db,8ea1c9dbv,c9dbv 56e4 e59ba4 56e4 000056e4 a779 a779 a779 a779 a779 a779 a779 -1124 a77a a77a a77a * 495c * 8ea1c9dc,c9dc,8ea1c9dcv,c9dcv 56eb e59bab 56eb 000056eb a77a a77a a77a a77a a77a a77a a77a -1125 a77b a77b a77b * 495d * 8ea1c9dd,c9dd,8ea1c9ddv,c9ddv 574a e59d8a 574a 0000574a a77b a77b a77b a77b a77b a77b a77b -1126 a77c a77c a77c * 495e * 8ea1c9de,c9de,8ea1c9dev,c9dev 5751 e59d91 5751 00005751 a77c a77c a77c a77c a77c a77c a77c -1127 a77d a77d a77d * 495f * 8ea1c9df,c9df,8ea1c9dfv,c9dfv 5740 e59d80 5740 00005740 a77d a77d a77d a77d a77d a77d a77d -1128 a77e a77e a77e * 4960 * 8ea1c9e0,c9e0,8ea1c9e0v,c9e0v 574d e59d8d 574d 0000574d a77e a77e a77e a77e a77e a77e a77e -1129 a7a1 a7a1 a7a1 * 4961 * 8ea1c9e1,c9e1,8ea1c9e1v,c9e1v 5747 e59d87 5747 00005747 a7a1 a7a1 a7a1 a7a1 a7a1 a7a1 a7a1 -1130 a7a2 a7a2 a7a2 * 4962 * 8ea1c9e2,c9e2,8ea1c9e2v,c9e2v 574e e59d8e 574e 0000574e a7a2 a7a2 a7a2 a7a2 a7a2 a7a2 a7a2 -1131 a7a3 a7a3 a7a3 * 4963 * 8ea1c9e3,c9e3,8ea1c9e3v,c9e3v 573e e59cbe 573e 0000573e a7a3 a7a3 a7a3 a7a3 a7a3 a7a3 a7a3 -1132 a7a4 a7a4 a7a4 * 4964 * 8ea1c9e4,c9e4,8ea1c9e4v,c9e4v 5750 e59d90 5750 00005750 a7a4 a7a4 a7a4 a7a4 a7a4 a7a4 a7a4 -1133 a7a5 a7a5 a7a5 * 4965 * 8ea1c9e5,c9e5,8ea1c9e5v,c9e5v 574f e59d8f 574f 0000574f a7a5 a7a5 a7a5 a7a5 a7a5 a7a5 a7a5 -1134 a7a6 a7a6 a7a6 * 4966 * 8ea1c9e6,c9e6,8ea1c9e6v,c9e6v 573b e59cbb 573b 0000573b a7a6 a7a6 a7a6 a7a6 a7a6 a7a6 a7a6 -1135 a7a7 a7a7 a7a7 * 4967 * 8ea1c9e7,c9e7,8ea1c9e7v,c9e7v 58ef e5a3af 58ef 000058ef a7a7 a7a7 a7a7 a7a7 a7a7 a7a7 a7a7 -1136 a7a8 a7a8 a7a8 * 4968 * 8ea1c9e8,c9e8,8ea1c9e8v,c9e8v 593e e5a4be 593e 0000593e a7a8 a7a8 a7a8 a7a8 a7a8 a7a8 a7a8 -1137 a7a9 a7a9 a7a9 * 4969 * 8ea1c9e9,c9e9,8ea1c9e9v,c9e9v 599d e5a69d 599d 0000599d a7a9 a7a9 a7a9 a7a9 a7a9 a7a9 a7a9 -1138 a7aa a7aa a7aa * 496a * 8ea1c9ea,c9ea,8ea1c9eav,c9eav 5992 e5a692 5992 00005992 a7aa a7aa a7aa a7aa a7aa a7aa a7aa -1139 a7ab a7ab a7ab * 496b * 8ea1c9eb,c9eb,8ea1c9ebv,c9ebv 59a8 e5a6a8 59a8 000059a8 a7ab a7ab a7ab a7ab a7ab a7ab a7ab -1140 a7ac a7ac a7ac * 496c * 8ea1c9ec,c9ec,8ea1c9ecv,c9ecv 599e e5a69e 599e 0000599e a7ac a7ac a7ac a7ac a7ac a7ac a7ac -1141 a7ad a7ad a7ad * 496d * 8ea1c9ed,c9ed,8ea1c9edv,c9edv 59a3 e5a6a3 59a3 000059a3 a7ad a7ad a7ad a7ad a7ad a7ad a7ad -1142 a7ae a7ae a7ae * 496e * 8ea1c9ee,c9ee,8ea1c9eev,c9eev 5999 e5a699 5999 00005999 a7ae a7ae a7ae a7ae a7ae a7ae a7ae -1143 a7af a7af a7af * 496f * 8ea1c9ef,c9ef,8ea1c9efv,c9efv 5996 e5a696 5996 00005996 a7af a7af a7af a7af a7af a7af a7af -1144 a7b0 a7b0 a7b0 * 4970 * 8ea1c9f0,c9f0,8ea1c9f0v,c9f0v 598d e5a68d 598d 0000598d a7b0 a7b0 a7b0 a7b0 a7b0 a7b0 a7b0 -1145 a7b1 a7b1 a7b1 * 4971 * 8ea1c9f1,c9f1,8ea1c9f1v,c9f1v 59a4 e5a6a4 59a4 000059a4 a7b1 a7b1 a7b1 a7b1 a7b1 a7b1 a7b1 -1146 a7b2 a7b2 a7b2 * 4972 * 8ea1c9f2,c9f2,8ea1c9f2v,c9f2v 5993 e5a693 5993 00005993 a7b2 a7b2 a7b2 a7b2 a7b2 a7b2 a7b2 -1147 a7b3 a7b3 a7b3 * 4973 * 8ea1c9f3,c9f3,8ea1c9f3v,c9f3v 598a e5a68a 598a 0000598a a7b3 a7b3 a7b3 a7b3 a7b3 a7b3 a7b3 -1148 a7b4 a7b4 a7b4 * 4974 * 8ea1c9f4,c9f4,8ea1c9f4v,c9f4v 59a5 e5a6a5 59a5 000059a5 a7b4 a7b4 a7b4 a7b4 a7b4 a7b4 a7b4 -1149 a7b5 a7b5 a7b5 * 4975 * 8ea1c9f5,c9f5,8ea1c9f5v,c9f5v 5b5d e5ad9d 5b5d 00005b5d a7b5 a7b5 a7b5 a7b5 a7b5 a7b5 a7b5 -1150 a7b6 a7b6 a7b6 * 4976 * 8ea1c9f6,c9f6,8ea1c9f6v,c9f6v 5b5c e5ad9c 5b5c 00005b5c a7b6 a7b6 a7b6 a7b6 a7b6 a7b6 a7b6 -1151 a7b7 a7b7 a7b7 * 4977 * 8ea1c9f7,c9f7,8ea1c9f7v,c9f7v 5b5a e5ad9a 5b5a 00005b5a a7b7 a7b7 a7b7 a7b7 a7b7 a7b7 a7b7 -1152 a7b8 a7b8 a7b8 * 4978 * 8ea1c9f8,c9f8,8ea1c9f8v,c9f8v 5b5b e5ad9b 5b5b 00005b5b a7b8 a7b8 a7b8 a7b8 a7b8 a7b8 a7b8 -1153 a7b9 a7b9 a7b9 * 4979 * 8ea1c9f9,c9f9,8ea1c9f9v,c9f9v 5b8c e5ae8c 5b8c 00005b8c a7b9 a7b9 a7b9 a7b9 a7b9 a7b9 a7b9 -1154 a7ba a7ba a7ba * 497a * 8ea1c9fa,c9fa,8ea1c9fav,c9fav 5b8b e5ae8b 5b8b 00005b8b a7ba a7ba a7ba a7ba a7ba a7ba a7ba -1155 a7bb a7bb a7bb * 497b * 8ea1c9fb,c9fb,8ea1c9fbv,c9fbv 5b8f e5ae8f 5b8f 00005b8f a7bb a7bb a7bb a7bb a7bb a7bb a7bb -1156 a7bc a7bc a7bc * 497c * 8ea1c9fc,c9fc,8ea1c9fcv,c9fcv 5c2c e5b0ac 5c2c 00005c2c a7bc a7bc a7bc a7bc a7bc a7bc a7bc -1157 a7bd a7bd a7bd * 497d * 8ea1c9fd,c9fd,8ea1c9fdv,c9fdv 5c40 e5b180 5c40 00005c40 a7bd a7bd a7bd a7bd a7bd a7bd a7bd -1158 a7be a7be a7be * 497e * 8ea1c9fe,c9fe,8ea1c9fev,c9fev 5c41 e5b181 5c41 00005c41 a7be a7be a7be a7be a7be a7be a7be -1159 a7bf a7bf a7bf * 4a21 * 8ea1caa1,caa1,8ea1caa1v,caa1v 5c3f e5b0bf 5c3f 00005c3f a7bf a7bf a7bf a7bf a7bf a7bf a7bf -1160 a7c0 a7c0 a7c0 * 4a22 * 8ea1caa2,caa2,8ea1caa2v,caa2v 5c3e e5b0be 5c3e 00005c3e a7c0 a7c0 a7c0 a7c0 a7c0 a7c0 a7c0 -1161 a7c1 a7c1 a7c1 * 4a23 * 8ea1caa3,caa3,8ea1caa3v,caa3v 5c90 e5b290 5c90 00005c90 a7c1 a7c1 a7c1 a7c1 a7c1 a7c1 a7c1 -1162 a7c2 a7c2 a7c2 * 4a24 * 8ea1caa4,caa4,8ea1caa4v,caa4v 5c91 e5b291 5c91 00005c91 a7c2 a7c2 a7c2 a7c2 a7c2 a7c2 a7c2 -1163 a7c3 a7c3 a7c3 * 4a25 * 8ea1caa5,caa5,8ea1caa5v,caa5v 5c94 e5b294 5c94 00005c94 a7c3 a7c3 a7c3 a7c3 a7c3 a7c3 a7c3 -1164 a7c4 a7c4 a7c4 * 4a26 * 8ea1caa6,caa6,8ea1caa6v,caa6v 5c8c e5b28c 5c8c 00005c8c a7c4 a7c4 a7c4 a7c4 a7c4 a7c4 a7c4 -1165 a7c5 a7c5 a7c5 * 4a27 * 8ea1caa7,caa7,8ea1caa7v,caa7v 5deb e5b7ab 5deb 00005deb a7c5 a7c5 a7c5 a7c5 a7c5 a7c5 a7c5 -1166 a7c6 a7c6 a7c6 * 4a28 * 8ea1caa8,caa8,8ea1caa8v,caa8v 5e0c e5b88c 5e0c 00005e0c a7c6 a7c6 a7c6 a7c6 a7c6 a7c6 a7c6 -1167 a7c7 a7c7 a7c7 * 4a29 * 8ea1caa9,caa9,8ea1caa9v,caa9v 5e8f e5ba8f 5e8f 00005e8f a7c7 a7c7 a7c7 a7c7 a7c7 a7c7 a7c7 -1168 a7c8 a7c8 a7c8 * 4a2a * 8ea1caaa,caaa,8ea1caaav,caaav 5e87 e5ba87 5e87 00005e87 a7c8 a7c8 a7c8 a7c8 a7c8 a7c8 a7c8 -1169 a7c9 a7c9 a7c9 * 4a2b * 8ea1caab,caab,8ea1caabv,caabv 5e8a e5ba8a 5e8a 00005e8a a7c9 a7c9 a7c9 a7c9 a7c9 a7c9 a7c9 -1170 a7ca a7ca a7ca * 4a2c * 8ea1caac,caac,8ea1caacv,caacv 5ef7 e5bbb7 5ef7 00005ef7 a7ca a7ca a7ca a7ca a7ca a7ca a7ca -1171 a7cb a7cb a7cb * 4a2d * 8ea1caad,caad,8ea1caadv,caadv 5f04 e5bc84 5f04 00005f04 a7cb a7cb a7cb a7cb a7cb a7cb a7cb -1172 a7cc a7cc a7cc * 4a2e * 8ea1caae,caae,8ea1caaev,caaev 5f1f e5bc9f 5f1f 00005f1f a7cc a7cc a7cc a7cc a7cc a7cc a7cc -1173 a7cd a7cd a7cd * 4a2f * 8ea1caaf,caaf,8ea1caafv,caafv 5f64 e5bda4 5f64 00005f64 a7cd a7cd a7cd a7cd a7cd a7cd a7cd -1174 a7ce a7ce a7ce * 4a30 * 8ea1cab0,cab0,8ea1cab0v,cab0v 5f62 e5bda2 5f62 00005f62 a7ce a7ce a7ce a7ce a7ce a7ce a7ce -1175 a7cf a7cf a7cf * 4a31 * 8ea1cab1,cab1,8ea1cab1v,cab1v 5f77 e5bdb7 5f77 00005f77 a7cf a7cf a7cf a7cf a7cf a7cf a7cf -1176 a7d0 a7d0 a7d0 * 4a32 * 8ea1cab2,cab2,8ea1cab2v,cab2v 5f79 e5bdb9 5f79 00005f79 a7d0 a7d0 a7d0 a7d0 a7d0 a7d0 a7d0 -1177 a7d1 a7d1 a7d1 * 4a33 * 8ea1cab3,cab3,8ea1cab3v,cab3v 5fd8 e5bf98 5fd8 00005fd8 a7d1 a7d1 a7d1 a7d1 a7d1 a7d1 a7d1 -1178 a7d2 a7d2 a7d2 * 4a34 * 8ea1cab4,cab4,8ea1cab4v,cab4v 5fcc e5bf8c 5fcc 00005fcc a7d2 a7d2 a7d2 a7d2 a7d2 a7d2 a7d2 -1179 a7d3 a7d3 a7d3 * 4a35 * 8ea1cab5,cab5,8ea1cab5v,cab5v 5fd7 e5bf97 5fd7 00005fd7 a7d3 a7d3 a7d3 a7d3 a7d3 a7d3 a7d3 -1180 a7d4 a7d4 a7d4 * 4a36 * 8ea1cab6,cab6,8ea1cab6v,cab6v 5fcd e5bf8d 5fcd 00005fcd a7d4 a7d4 a7d4 a7d4 a7d4 a7d4 a7d4 -1181 a7d5 a7d5 a7d5 * 4a37 * 8ea1cab7,cab7,8ea1cab7v,cab7v 5ff1 e5bfb1 5ff1 00005ff1 a7d5 a7d5 a7d5 a7d5 a7d5 a7d5 a7d5 -1182 a7d6 a7d6 a7d6 * 4a38 * 8ea1cab8,cab8,8ea1cab8v,cab8v 5feb e5bfab 5feb 00005feb a7d6 a7d6 a7d6 a7d6 a7d6 a7d6 a7d6 -1183 a7d7 a7d7 a7d7 * 4a39 * 8ea1cab9,cab9,8ea1cab9v,cab9v 5ff8 e5bfb8 5ff8 00005ff8 a7d7 a7d7 a7d7 a7d7 a7d7 a7d7 a7d7 -1184 a7d8 a7d8 a7d8 * 4a3a * 8ea1caba,caba,8ea1cabav,cabav 5fea e5bfaa 5fea 00005fea a7d8 a7d8 a7d8 a7d8 a7d8 a7d8 a7d8 -1185 a7d9 a7d9 a7d9 * 4a3b * 8ea1cabb,cabb,8ea1cabbv,cabbv 6212 e68892 6212 00006212 a7d9 a7d9 a7d9 a7d9 a7d9 a7d9 a7d9 -1186 a7da a7da a7da * 4a3c * 8ea1cabc,cabc,8ea1cabcv,cabcv 6211 e68891 6211 00006211 a7da a7da a7da a7da a7da a7da a7da -1187 a7db a7db a7db * 4a3d * 8ea1cabd,cabd,8ea1cabdv,cabdv 6284 e68a84 6284 00006284 a7db a7db a7db a7db a7db a7db a7db -1188 a7dc a7dc a7dc * 4a3e * 8ea1cabe,cabe,8ea1cabev,cabev 6297 e68a97 6297 00006297 a7dc a7dc a7dc a7dc a7dc a7dc a7dc -1189 a7dd a7dd a7dd * 4a3f * 8ea1cabf,cabf,8ea1cabfv,cabfv 6296 e68a96 6296 00006296 a7dd a7dd a7dd a7dd a7dd a7dd a7dd -1190 a7de a7de a7de * 4a40 * 8ea1cac0,cac0,8ea1cac0v,cac0v 6280 e68a80 6280 00006280 a7de a7de a7de a7de a7de a7de a7de -1191 a7df a7df a7df * 4a41 * 8ea1cac1,cac1,8ea1cac1v,cac1v 6276 e689b6 6276 00006276 a7df a7df a7df a7df a7df a7df a7df -1192 a7e0 a7e0 a7e0 * 4a42 * 8ea1cac2,cac2,8ea1cac2v,cac2v 6289 e68a89 6289 00006289 a7e0 a7e0 a7e0 a7e0 a7e0 a7e0 a7e0 -1193 a7e1 a7e1 a7e1 * 4a43 * 8ea1cac3,cac3,8ea1cac3v,cac3v 626d e689ad 626d 0000626d a7e1 a7e1 a7e1 a7e1 a7e1 a7e1 a7e1 -1194 a7e2 a7e2 a7e2 * 4a44 * 8ea1cac4,cac4,8ea1cac4v,cac4v 628a e68a8a 628a 0000628a a7e2 a7e2 a7e2 a7e2 a7e2 a7e2 a7e2 -1195 a7e3 a7e3 a7e3 * 4a45 * 8ea1cac5,cac5,8ea1cac5v,cac5v 627c e689bc 627c 0000627c a7e3 a7e3 a7e3 a7e3 a7e3 a7e3 a7e3 -1196 a7e4 a7e4 a7e4 * 4a46 * 8ea1cac6,cac6,8ea1cac6v,cac6v 627e e689be 627e 0000627e a7e4 a7e4 a7e4 a7e4 a7e4 a7e4 a7e4 -1197 a7e5 a7e5 a7e5 * 4a47 * 8ea1cac7,cac7,8ea1cac7v,cac7v 6279 e689b9 6279 00006279 a7e5 a7e5 a7e5 a7e5 a7e5 a7e5 a7e5 -1198 a7e6 a7e6 a7e6 * 4a48 * 8ea1cac8,cac8,8ea1cac8v,cac8v 6273 e689b3 6273 00006273 a7e6 a7e6 a7e6 a7e6 a7e6 a7e6 a7e6 -1199 a7e7 a7e7 a7e7 * 4a49 * 8ea1cac9,cac9,8ea1cac9v,cac9v 6292 e68a92 6292 00006292 a7e7 a7e7 a7e7 a7e7 a7e7 a7e7 a7e7 -1200 a7e8 a7e8 a7e8 * 4a4a * 8ea1caca,caca,8ea1cacav,cacav 626f e689af 626f 0000626f a7e8 a7e8 a7e8 a7e8 a7e8 a7e8 a7e8 -1201 a7e9 a7e9 a7e9 * 4a4b * 8ea1cacb,cacb,8ea1cacbv,cacbv 6298 e68a98 6298 00006298 a7e9 a7e9 a7e9 a7e9 a7e9 a7e9 a7e9 -1202 a7ea a7ea a7ea * 4a4c * 8ea1cacc,cacc,8ea1caccv,caccv 626e e689ae 626e 0000626e a7ea a7ea a7ea a7ea a7ea a7ea a7ea -1203 a7eb a7eb a7eb * 4a4d * 8ea1cacd,cacd,8ea1cacdv,cacdv 6295 e68a95 6295 00006295 a7eb a7eb a7eb a7eb a7eb a7eb a7eb -1204 a7ec a7ec a7ec * 4a4e * 8ea1cace,cace,8ea1cacev,cacev 6293 e68a93 6293 00006293 a7ec a7ec a7ec a7ec a7ec a7ec a7ec -1205 a7ed a7ed a7ed * 4a4f * 8ea1cacf,cacf,8ea1cacfv,cacfv 6291 e68a91 6291 00006291 a7ed a7ed a7ed a7ed a7ed a7ed a7ed -1206 a7ee a7ee a7ee * 4a50 * 8ea1cad0,cad0,8ea1cad0v,cad0v 6286 e68a86 6286 00006286 a7ee a7ee a7ee a7ee a7ee a7ee a7ee -1207 a7ef a7ef a7ef * 4a51 * 8ea1cad1,cad1,8ea1cad1v,cad1v 6539 e694b9 6539 00006539 a7ef a7ef a7ef a7ef a7ef a7ef a7ef -1208 a7f0 a7f0 a7f0 * 4a52 * 8ea1cad2,cad2,8ea1cad2v,cad2v 653b e694bb 653b 0000653b a7f0 a7f0 a7f0 a7f0 a7f0 a7f0 a7f0 -1209 a7f1 a7f1 a7f1 * 4a53 * 8ea1cad3,cad3,8ea1cad3v,cad3v 6538 e694b8 6538 00006538 a7f1 a7f1 a7f1 a7f1 a7f1 a7f1 a7f1 -1210 a7f2 a7f2 a7f2 * 4a54 * 8ea1cad4,cad4,8ea1cad4v,cad4v 65f1 e697b1 65f1 000065f1 a7f2 a7f2 a7f2 a7f2 a7f2 a7f2 a7f2 -1211 a7f3 a7f3 a7f3 * 4a55 * 8ea1cad5,cad5,8ea1cad5v,cad5v 66f4 e69bb4 66f4 000066f4 a7f3 a7f3 a7f3 a7f3 a7f3 a7f3 a7f3 -1212 a7f4 a7f4 a7f4 * 4a56 * 8ea1cad6,cad6,8ea1cad6v,cad6v 675f e69d9f 675f 0000675f a7f4 a7f4 a7f4 a7f4 a7f4 a7f4 a7f4 -1213 a7f5 a7f5 a7f5 * 4a57 * 8ea1cad7,cad7,8ea1cad7v,cad7v 674e e69d8e 674e 0000674e a7f5 a7f5 a7f5 a7f5 a7f5 a7f5 a7f5 -1214 a7f6 a7f6 a7f6 * 4a58 * 8ea1cad8,cad8,8ea1cad8v,cad8v 674f e69d8f 674f 0000674f a7f6 a7f6 a7f6 a7f6 a7f6 a7f6 a7f6 -1215 a7f7 a7f7 a7f7 * 4a59 * 8ea1cad9,cad9,8ea1cad9v,cad9v 6750 e69d90 6750 00006750 a7f7 a7f7 a7f7 a7f7 a7f7 a7f7 a7f7 -1216 a7f8 a7f8 a7f8 * 4a5a * 8ea1cada,cada,8ea1cadav,cadav 6751 e69d91 6751 00006751 a7f8 a7f8 a7f8 a7f8 a7f8 a7f8 a7f8 -1217 a7f9 a7f9 a7f9 * 4a5b * 8ea1cadb,cadb,8ea1cadbv,cadbv 675c e69d9c 675c 0000675c a7f9 a7f9 a7f9 a7f9 a7f9 a7f9 a7f9 -1218 a7fa a7fa a7fa * 4a5c * 8ea1cadc,cadc,8ea1cadcv,cadcv 6756 e69d96 6756 00006756 a7fa a7fa a7fa a7fa a7fa a7fa a7fa -1219 a7fb a7fb a7fb * 4a5d * 8ea1cadd,cadd,8ea1caddv,caddv 675e e69d9e,ee8789 675e,e1c9 0000675e,0000e1c9 fcf1,a7fb a7fb a7fb a7fb a7fb a7fb fcf1,a7fb -1220 a7fc a7fc a7fc * 4a5e * 8ea1cade,cade,8ea1cadev,cadev 6749 e69d89 6749 00006749 a7fc a7fc a7fc a7fc a7fc a7fc a7fc -1221 a7fd a7fd a7fd * 4a5f * 8ea1cadf,cadf,8ea1cadfv,cadfv 6746 e69d86 6746 00006746 a7fd a7fd a7fd a7fd a7fd a7fd a7fd -1222 a7fe a7fe a7fe * 4a60 * 8ea1cae0,cae0,8ea1cae0v,cae0v 6760 e69da0 6760 00006760 a7fe a7fe a7fe a7fe a7fe a7fe a7fe -1223 a840 a840 a840 * 4a61 * 8ea1cae1,cae1,8ea1cae1v,cae1v 6753 e69d93 6753 00006753 a840 a840 a840 a840 a840 a840 a840 -1224 a841 a841 a841 * 4a62 * 8ea1cae2,cae2,8ea1cae2v,cae2v 6757 e69d97 6757 00006757 a841 a841 a841 a841 a841 a841 a841 -1225 a842 a842 a842 * 4a63 * 8ea1cae3,cae3,8ea1cae3v,cae3v 6b65 e6ada5 6b65 00006b65 a842 a842 a842 a842 a842 a842 a842 -1226 a843 a843 a843 * 4a64 * 8ea1cae4,cae4,8ea1cae4v,cae4v 6bcf e6af8f 6bcf 00006bcf a843 a843 a843 a843 a843 a843 a843 -1227 a844 a844 a844 * 4a65 * 8ea1cae5,cae5,8ea1cae5v,cae5v 6c42 e6b182 6c42 00006c42 a844 a844 a844 a844 a844 a844 a844 -1228 a845 a845 a845 * 4a66 * 8ea1cae6,cae6,8ea1cae6v,cae6v 6c5e e6b19e 6c5e 00006c5e a845 a845 a845 a845 a845 a845 a845 -1229 a846 a846 a846 * 4a67 * 8ea1cae7,cae7,8ea1cae7v,cae7v 6c99 e6b299 6c99 00006c99 a846 a846 a846 a846 a846 a846 a846 -1230 a847 a847 a847 * 4a68 * 8ea1cae8,cae8,8ea1cae8v,cae8v 6c81 e6b281 6c81 00006c81 a847 a847 a847 a847 a847 a847 a847 -1231 a848 a848 a848 * 4a69 * 8ea1cae9,cae9,8ea1cae9v,cae9v 6c88 e6b288 6c88 00006c88 a848 a848 a848 a848 a848 a848 a848 -1232 a849 a849 a849 * 4a6a * 8ea1caea,caea,8ea1caeav,caeav 6c89 e6b289 6c89 00006c89 a849 a849 a849 a849 a849 a849 a849 -1233 a84a a84a a84a * 4a6b * 8ea1caeb,caeb,8ea1caebv,caebv 6c85 e6b285 6c85 00006c85 a84a a84a a84a a84a a84a a84a a84a -1234 a84b a84b a84b * 4a6c * 8ea1caec,caec,8ea1caecv,caecv 6c9b e6b29b 6c9b 00006c9b a84b a84b a84b a84b a84b a84b a84b -1235 a84c a84c a84c * 4a6d * 8ea1caed,caed,8ea1caedv,caedv 6c6a e6b1aa 6c6a 00006c6a a84c a84c a84c a84c a84c a84c a84c -1236 a84d a84d a84d * 4a6e * 8ea1caee,caee,8ea1caeev,caeev 6c7a e6b1ba 6c7a 00006c7a a84d a84d a84d a84d a84d a84d a84d -1237 a84e a84e a84e * 4a6f * 8ea1caef,caef,8ea1caefv,caefv 6c90 e6b290 6c90 00006c90 a84e a84e a84e a84e a84e a84e a84e -1238 a84f a84f a84f * 4a70 * 8ea1caf0,caf0,8ea1caf0v,caf0v 6c70 e6b1b0 6c70 00006c70 a84f a84f a84f a84f a84f a84f a84f -1239 a850 a850 a850 * 4a71 * 8ea1caf1,caf1,8ea1caf1v,caf1v 6c8c e6b28c 6c8c 00006c8c a850 a850 a850 a850 a850 a850 a850 -1240 a851 a851 a851 * 4a72 * 8ea1caf2,caf2,8ea1caf2v,caf2v 6c68 e6b1a8 6c68 00006c68 a851 a851 a851 a851 a851 a851 a851 -1241 a852 a852 a852 * 4a73 * 8ea1caf3,caf3,8ea1caf3v,caf3v 6c96 e6b296 6c96 00006c96 a852 a852 a852 a852 a852 a852 a852 -1242 a853 a853 a853 * 4a74 * 8ea1caf4,caf4,8ea1caf4v,caf4v 6c92 e6b292 6c92 00006c92 a853 a853 a853 a853 a853 a853 a853 -1243 a854 a854 a854 * 4a75 * 8ea1caf5,caf5,8ea1caf5v,caf5v 6c7d e6b1bd 6c7d 00006c7d a854 a854 a854 a854 a854 a854 a854 -1244 a855 a855 a855 * 4a76 * 8ea1caf6,caf6,8ea1caf6v,caf6v 6c83 e6b283 6c83 00006c83 a855 a855 a855 a855 a855 a855 a855 -1245 a856 a856 a856 * 4a77 * 8ea1caf7,caf7,8ea1caf7v,caf7v 6c72 e6b1b2 6c72 00006c72 a856 a856 a856 a856 a856 a856 a856 -1246 a857 a857 a857 * 4a78 * 8ea1caf8,caf8,8ea1caf8v,caf8v 6c7e e6b1be 6c7e 00006c7e a857 a857 a857 a857 a857 a857 a857 -1247 a858 a858 a858 * 4a79 * 8ea1caf9,caf9,8ea1caf9v,caf9v 6c74 e6b1b4 6c74 00006c74 a858 a858 a858 a858 a858 a858 a858 -1248 a859 a859 a859 * 4a7a * 8ea1cafa,cafa,8ea1cafav,cafav 6c86 e6b286 6c86 00006c86 a859 a859 a859 a859 a859 a859 a859 -1249 a85a a85a a85a * 4a7b * 8ea1cafb,cafb,8ea1cafbv,cafbv 6c76 e6b1b6 6c76 00006c76 a85a a85a a85a a85a a85a a85a a85a -1250 a85b a85b a85b * 4a7c * 8ea1cafc,cafc,8ea1cafcv,cafcv 6c8d e6b28d 6c8d 00006c8d a85b a85b a85b a85b a85b a85b a85b -1251 a85c a85c a85c * 4a7d * 8ea1cafd,cafd,8ea1cafdv,cafdv 6c94 e6b294 6c94 00006c94 a85c a85c a85c a85c a85c a85c a85c -1252 a85d a85d a85d * 4a7e * 8ea1cafe,cafe,8ea1cafev,cafev 6c98 e6b298 6c98 00006c98 a85d a85d a85d a85d a85d a85d a85d -1253 a85e a85e a85e * 4b21 * 8ea1cba1,cba1,8ea1cba1v,cba1v 6c82 e6b282 6c82 00006c82 a85e a85e a85e a85e a85e a85e a85e -1254 a85f a85f a85f * 4b22 * 8ea1cba2,cba2,8ea1cba2v,cba2v 7076 e781b6 7076 00007076 a85f a85f a85f a85f a85f a85f a85f -1255 a860 a860 a860 * 4b23 * 8ea1cba3,cba3,8ea1cba3v,cba3v 707c e781bc 707c 0000707c a860 a860 a860 a860 a860 a860 a860 -1256 a861 a861 a861 * 4b24 * 8ea1cba4,cba4,8ea1cba4v,cba4v 707d e781bd 707d 0000707d a861 a861 a861 a861 a861 a861 a861 -1257 a862 a862 a862 * 4b25 * 8ea1cba5,cba5,8ea1cba5v,cba5v 7078 e781b8 7078 00007078 a862 a862 a862 a862 a862 a862 a862 -1258 a863 a863 a863 * 4b26 * 8ea1cba6,cba6,8ea1cba6v,cba6v 7262 e789a2 7262 00007262 a863 a863 a863 a863 a863 a863 a863 -1259 a864 a864 a864 * 4b27 * 8ea1cba7,cba7,8ea1cba7v,cba7v 7261 e789a1 7261 00007261 a864 a864 a864 a864 a864 a864 a864 -1260 a865 a865 a865 * 4b28 * 8ea1cba8,cba8,8ea1cba8v,cba8v 7260 e789a0 7260 00007260 a865 a865 a865 a865 a865 a865 a865 -1261 a866 a866 a866 * 4b29 * 8ea1cba9,cba9,8ea1cba9v,cba9v 72c4 e78b84 72c4 000072c4 a866 a866 a866 a866 a866 a866 a866 -1262 a867 a867 a867 * 4b2a * 8ea1cbaa,cbaa,8ea1cbaav,cbaav 72c2 e78b82 72c2 000072c2 a867 a867 a867 a867 a867 a867 a867 -1263 a868 a868 a868 * 4b2b * 8ea1cbab,cbab,8ea1cbabv,cbabv 7396 e78e96 7396 00007396 a868 a868 a868 a868 a868 a868 a868 -1264 a869 a869 a869 * 4b2c * 8ea1cbac,cbac,8ea1cbacv,cbacv 752c e794ac 752c 0000752c a869 a869 a869 a869 a869 a869 a869 -1265 a86a a86a a86a * 4b2d * 8ea1cbad,cbad,8ea1cbadv,cbadv 752b e794ab 752b 0000752b a86a a86a a86a a86a a86a a86a a86a -1266 a86b a86b a86b * 4b2e * 8ea1cbae,cbae,8ea1cbaev,cbaev 7537 e794b7 7537 00007537 a86b a86b a86b a86b a86b a86b a86b -1267 a86c a86c a86c * 4b2f * 8ea1cbaf,cbaf,8ea1cbafv,cbafv 7538 e794b8 7538 00007538 a86c a86c a86c a86c a86c a86c a86c -1268 a86d a86d a86d * 4b30 * 8ea1cbb0,cbb0,8ea1cbb0v,cbb0v 7682 e79a82 7682 00007682 a86d a86d a86d a86d a86d a86d a86d -1269 a86e a86e a86e * 4b31 * 8ea1cbb1,cbb1,8ea1cbb1v,cbb1v 76ef e79baf 76ef 000076ef a86e a86e a86e a86e a86e a86e a86e -1270 a86f a86f a86f * 4b32 * 8ea1cbb2,cbb2,8ea1cbb2v,cbb2v 77e3 e79fa3 77e3 000077e3 a86f a86f a86f a86f a86f a86f a86f -1271 a870 a870 a870 * 4b33 * 8ea1cbb3,cbb3,8ea1cbb3v,cbb3v 79c1 e7a781 79c1 000079c1 a870 a870 a870 a870 a870 a870 a870 -1272 a871 a871 a871 * 4b34 * 8ea1cbb4,cbb4,8ea1cbb4v,cbb4v 79c0 e7a780 79c0 000079c0 a871 a871 a871 a871 a871 a871 a871 -1273 a872 a872 a872 * 4b35 * 8ea1cbb5,cbb5,8ea1cbb5v,cbb5v 79bf e7a6bf 79bf 000079bf a872 a872 a872 a872 a872 a872 a872 -1274 a873 a873 a873 * 4b36 * 8ea1cbb6,cbb6,8ea1cbb6v,cbb6v 7a76 e7a9b6 7a76 00007a76 a873 a873 a873 a873 a873 a873 a873 -1275 a874 a874 a874 * 4b37 * 8ea1cbb7,cbb7,8ea1cbb7v,cbb7v 7cfb e7b3bb 7cfb 00007cfb a874 a874 a874 a874 a874 a874 a874 -1276 a875 a875 a875 * 4b38 * 8ea1cbb8,cbb8,8ea1cbb8v,cbb8v 7f55 e7bd95 7f55 00007f55 a875 a875 a875 a875 a875 a875 a875 -1277 a876 a876 a876 * 4b39 * 8ea1cbb9,cbb9,8ea1cbb9v,cbb9v 8096 e88296 8096 00008096 a876 a876 a876 a876 a876 a876 a876 -1278 a877 a877 a877 * 4b3a * 8ea1cbba,cbba,8ea1cbbav,cbbav 8093 e88293 8093 00008093 a877 a877 a877 a877 a877 a877 a877 -1279 a878 a878 a878 * 4b3b * 8ea1cbbb,cbbb,8ea1cbbbv,cbbbv 809d e8829d 809d 0000809d a878 a878 a878 a878 a878 a878 a878 -1280 a879 a879 a879 * 4b3c * 8ea1cbbc,cbbc,8ea1cbbcv,cbbcv 8098 e88298 8098 00008098 a879 a879 a879 a879 a879 a879 a879 -1281 a87a a87a a87a * 4b3d * 8ea1cbbd,cbbd,8ea1cbbdv,cbbdv 809b e8829b 809b 0000809b a87a a87a a87a a87a a87a a87a a87a -1282 a87b a87b a87b * 4b3e * 8ea1cbbe,cbbe,8ea1cbbev,cbbev 809a e8829a 809a 0000809a a87b a87b a87b a87b a87b a87b a87b -1283 a87c a87c a87c * 4b3f * 8ea1cbbf,cbbf,8ea1cbbfv,cbbfv 80b2 e882b2 80b2 000080b2 a87c a87c a87c a87c a87c a87c a87c -1284 a87d a87d a87d * 4b40 * 8ea1cbc0,cbc0,8ea1cbc0v,cbc0v 826f e889af 826f 0000826f a87d a87d a87d a87d a87d a87d a87d -1285 a87e a87e a87e * 4b41 * 8ea1cbc1,cbc1,8ea1cbc1v,cbc1v 8292 e88a92 8292 00008292 a87e a87e a87e a87e a87e a87e a87e -1286 a8a1 a8a1 a8a1 * 4b42 * 8ea1cbc2,cbc2,8ea1cbc2v,cbc2v 828b e88a8b 828b 0000828b a8a1 a8a1 a8a1 a8a1 a8a1 a8a1 a8a1 -1287 a8a2 a8a2 a8a2 * 4b43 * 8ea1cbc3,cbc3,8ea1cbc3v,cbc3v 828d e88a8d 828d 0000828d a8a2 a8a2 a8a2 a8a2 a8a2 a8a2 a8a2 -1288 a8a3 a8a3 a8a3 * 2854,4b44 * 8ea1a8d4,8ea1cbc4,a8d4,cbc4,8ea1a8d4v,8ea1cbc4v,a8d4v,cbc4v 898b e8a68b,e2be92 898b,2f92 0000898b,00002f92 a8a3 a8a3 a8a3 a8a3 a8a3 a8a3 a8a3 -1289 a8a4 a8a4 a8a4 * 2855,4b45 * 8ea1a8d5,8ea1cbc5,a8d5,cbc5,8ea1a8d5v,8ea1cbc5v,a8d5v,cbc5v 2ec6,89d2 e8a792,e2be93 89d2,2f93 000089d2,00002f93 a8a4 a8a4 a8a4 a8a4 a8a4 a8a4 a8a4 -1290 a8a5 a8a5 a8a5 * 2856,4b46 * 8ea1a8d6,8ea1cbc6,a8d6,cbc6,8ea1a8d6v,8ea1cbc6v,a8d6v,cbc6v 8a00 e8a880,e2be94 8a00,2f94 00008a00,00002f94 a8a5 a8a5 a8a5 a8a5 a8a5 a8a5 a8a5 -1291 a8a6 a8a6 a8a6 * 2857,4b47 * 8ea1a8d7,8ea1cbc7,a8d7,cbc7,8ea1a8d7v,8ea1cbc7v,a8d7v,cbc7v 8c37 e8b0b7,e2be95 8c37,2f95 00008c37,00002f95 a8a6 a8a6 a8a6 a8a6 a8a6 a8a6 a8a6 -1292 a8a7 a8a7 a8a7 * 2858,4b48 * 8ea1a8d8,8ea1cbc8,a8d8,cbc8,8ea1a8d8v,8ea1cbc8v,a8d8v,cbc8v 8c46 e8b186,e2be96 8c46,2f96 00008c46,00002f96 a8a7 a8a7 a8a7 a8a7 a8a7 a8a7 a8a7 -1293 a8a8 a8a8 a8a8 * 2859,4b49 * 8ea1a8d9,8ea1cbc9,a8d9,cbc9,8ea1a8d9v,8ea1cbc9v,a8d9v,cbc9v 8c55 e8b195,e2be97 8c55,2f97 00008c55,00002f97 a8a8 a8a8 a8a8 a8a8 a8a8 a8a8 a8a8 -1294 a8a9 a8a9 a8a9 * 285b,4b4a * 8ea1a8db,8ea1cbca,a8db,cbca,8ea1a8dbv,8ea1cbcav,a8dbv,cbcav 8c9d e8b29d,e2be99 8c9d,2f99 00008c9d,00002f99 a8a9 a8a9 a8a9 a8a9 a8a9 a8a9 a8a9 -1295 a8aa a8aa a8aa * 285c,4b4b * 8ea1a8dc,8ea1cbcb,a8dc,cbcb,8ea1a8dcv,8ea1cbcbv,a8dcv,cbcbv 8d64 e8b5a4,e2be9a 8d64,2f9a 00008d64,00002f9a a8aa a8aa a8aa a8aa a8aa a8aa a8aa -1296 a8ab a8ab a8ab * 285d,4b4c * 8ea1a8dd,8ea1cbcc,a8dd,cbcc,8ea1a8ddv,8ea1cbccv,a8ddv,cbccv 8d70 e8b5b0,e2be9b 8d70,2f9b 00008d70,00002f9b a8ab a8ab a8ab a8ab a8ab a8ab a8ab -1297 a8ac a8ac a8ac * 285e,4b4d * 8ea1a8de,8ea1cbcd,a8de,cbcd,8ea1a8dev,8ea1cbcdv,a8dev,cbcdv 8db3 e8b6b3,e2be9c 8db3,2f9c 00008db3,00002f9c a8ac a8ac a8ac a8ac a8ac a8ac a8ac -1298 a8ad a8ad a8ad * 285f,4b4e * 8ea1a8df,8ea1cbce,a8df,cbce,8ea1a8dfv,8ea1cbcev,a8dfv,cbcev 8eab e8baab,e2be9d 8eab,2f9d 00008eab,00002f9d a8ad a8ad a8ad a8ad a8ad a8ad a8ad -1299 a8ae a8ae a8ae * 2860,4b4f * 8ea1a8e0,8ea1cbcf,a8e0,cbcf,8ea1a8e0v,8ea1cbcfv,a8e0v,cbcfv 8eca e8bb8a,e2be9e 8eca,2f9e 00008eca,00002f9e a8ae a8ae a8ae a8ae a8ae a8ae a8ae -1300 a8af a8af a8af * 2861,4b50 * 8ea1a8e1,8ea1cbd0,a8e1,cbd0,8ea1a8e1v,8ea1cbd0v,a8e1v,cbd0v 8f9b e8be9b,e2be9f 8f9b,2f9f 00008f9b,00002f9f a8af a8af a8af a8af a8af a8af a8af -1301 a8b0 a8b0 a8b0 * 2862,4b51 * 8ea1a8e2,8ea1cbd1,a8e2,cbd1,8ea1a8e2v,8ea1cbd1v,a8e2v,cbd1v 8fb0 e8beb0,e2bea0 8fb0,2fa0 00008fb0,00002fa0 a8b0 a8b0 a8b0 a8b0 a8b0 a8b0 a8b0 -1302 a8b1 a8b1 a8b1 * 4b52 * 8ea1cbd2,cbd2,8ea1cbd2v,cbd2v 8fc2 e8bf82 8fc2 00008fc2 a8b1 a8b1 a8b1 a8b1 a8b1 a8b1 a8b1 -1303 a8b2 a8b2 a8b2 * 4b53 * 8ea1cbd3,cbd3,8ea1cbd3v,cbd3v 8fc6 e8bf86 8fc6 00008fc6 a8b2 a8b2 a8b2 a8b2 a8b2 a8b2 a8b2 -1304 a8b3 a8b3 a8b3 * 4b54 * 8ea1cbd4,cbd4,8ea1cbd4v,cbd4v 8fc5 e8bf85 8fc5 00008fc5 a8b3 a8b3 a8b3 a8b3 a8b3 a8b3 a8b3 -1305 a8b4 a8b4 a8b4 * 4b55 * 8ea1cbd5,cbd5,8ea1cbd5v,cbd5v 8fc4 e8bf84 8fc4 00008fc4 a8b4 a8b4 a8b4 a8b4 a8b4 a8b4 a8b4 -1306 a8b5 a8b5 a8b5 * 4b56 * 8ea1cbd6,cbd6,8ea1cbd6v,cbd6v 5de1 e5b7a1 5de1 00005de1 a8b5 a8b5 a8b5 a8b5 a8b5 a8b5 a8b5 -1307 a8b6 a8b6 a8b6 * 2864,4b57 * 8ea1a8e4,8ea1cbd7,a8e4,cbd7,8ea1a8e4v,8ea1cbd7v,a8e4v,cbd7v 9091 e2bea2,e98291 2fa2,9091 00002fa2,00009091 a8b6 a8b6 a8b6 a8b6 a8b6 a8b6 a8b6 -1308 a8b7 a8b7 a8b7 * 4b58 * 8ea1cbd8,cbd8,8ea1cbd8v,cbd8v 90a2 e982a2 90a2 000090a2 a8b7 a8b7 a8b7 a8b7 a8b7 a8b7 a8b7 -1309 a8b8 a8b8 a8b8 * 4b59 * 8ea1cbd9,cbd9,8ea1cbd9v,cbd9v 90aa e982aa 90aa 000090aa a8b8 a8b8 a8b8 a8b8 a8b8 a8b8 a8b8 -1310 a8b9 a8b9 a8b9 * 4b5a * 8ea1cbda,cbda,8ea1cbdav,cbdav 90a6 e982a6 90a6 000090a6 a8b9 a8b9 a8b9 a8b9 a8b9 a8b9 a8b9 -1311 a8ba a8ba a8ba * 4b5b * 8ea1cbdb,cbdb,8ea1cbdbv,cbdbv 90a3 e982a3 90a3 000090a3 a8ba a8ba a8ba a8ba a8ba a8ba a8ba -1312 a8bb a8bb a8bb * 2865,4b5c * 8ea1a8e5,8ea1cbdc,a8e5,cbdc,8ea1a8e5v,8ea1cbdcv,a8e5v,cbdcv 9149 e98589,e2bea3 9149,2fa3 00009149,00002fa3 a8bb a8bb a8bb a8bb a8bb a8bb a8bb -1313 a8bc a8bc a8bc * 2866,4b5d * 8ea1a8e6,8ea1cbdd,a8e6,cbdd,8ea1a8e6v,8ea1cbddv,a8e6v,cbddv 91c6 e98786,e2bea4 91c6,2fa4 000091c6,00002fa4 a8bc a8bc a8bc a8bc a8bc a8bc a8bc -1314 a8bd a8bd a8bd * 2867,4b5e * 8ea1a8e7,8ea1cbde,a8e7,cbde,8ea1a8e7v,8ea1cbdev,a8e7v,cbdev 91cc e9878c,e2bea5 91cc,2fa5 000091cc,00002fa5 a8bd a8bd a8bd a8bd a8bd a8bd a8bd -1315 a8be a8be a8be * 4b5f * 8ea1cbdf,cbdf,8ea1cbdfv,cbdfv 9632 e998b2 9632 00009632 a8be a8be a8be a8be a8be a8be a8be -1316 a8bf a8bf a8bf * 4b60 * 8ea1cbe0,cbe0,8ea1cbe0v,cbe0v 962e e998ae 962e 0000962e a8bf a8bf a8bf a8bf a8bf a8bf a8bf -1317 a8c0 a8c0 a8c0 * 4b61 * 8ea1cbe1,cbe1,8ea1cbe1v,cbe1v 9631 e998b1 9631 00009631 a8c0 a8c0 a8c0 a8c0 a8c0 a8c0 a8c0 -1318 a8c1 a8c1 a8c1 * 4b62 * 8ea1cbe2,cbe2,8ea1cbe2v,cbe2v 962a e998aa 962a 0000962a a8c1 a8c1 a8c1 a8c1 a8c1 a8c1 a8c1 -1319 a8c2 a8c2 a8c2 * 4b63 * 8ea1cbe3,cbe3,8ea1cbe3v,cbe3v 962c e998ac 962c 0000962c a8c2 a8c2 a8c2 a8c2 a8c2 a8c2 a8c2 -1320 a8c3 a8c3 a8c3 * 4b64 * 8ea1cbe4,cbe4,8ea1cbe4v,cbe4v 4e26 e4b8a6 4e26 00004e26 a8c3 a8c3 a8c3 a8c3 a8c3 a8c3 a8c3 -1321 a8c4 a8c4 a8c4 * 4b65 * 8ea1cbe5,cbe5,8ea1cbe5v,cbe5v 4e56 e4b996 4e56 00004e56 a8c4 a8c4 a8c4 a8c4 a8c4 a8c4 a8c4 -1322 a8c5 a8c5 a8c5 * 4b66 * 8ea1cbe6,cbe6,8ea1cbe6v,cbe6v 4e73 e4b9b3 4e73 00004e73 a8c5 a8c5 a8c5 a8c5 a8c5 a8c5 a8c5 -1323 a8c6 a8c6 a8c6 * 4b67 * 8ea1cbe7,cbe7,8ea1cbe7v,cbe7v 4e8b e4ba8b 4e8b 00004e8b a8c6 a8c6 a8c6 a8c6 a8c6 a8c6 a8c6 -1324 a8c7 a8c7 a8c7 * 4b68 * 8ea1cbe8,cbe8,8ea1cbe8v,cbe8v 4e9b e4ba9b 4e9b 00004e9b a8c7 a8c7 a8c7 a8c7 a8c7 a8c7 a8c7 -1325 a8c8 a8c8 a8c8 * 4b69 * 8ea1cbe9,cbe9,8ea1cbe9v,cbe9v 4e9e e4ba9e 4e9e 00004e9e a8c8 a8c8 a8c8 a8c8 a8c8 a8c8 a8c8 -1326 a8c9 a8c9 a8c9 * 4b6a * 8ea1cbea,cbea,8ea1cbeav,cbeav 4eab e4baab 4eab 00004eab a8c9 a8c9 a8c9 a8c9 a8c9 a8c9 a8c9 -1327 a8ca a8ca a8ca * 4b6b * 8ea1cbeb,cbeb,8ea1cbebv,cbebv 4eac e4baac 4eac 00004eac a8ca a8ca a8ca a8ca a8ca a8ca a8ca -1328 a8cb a8cb a8cb * 4b6c * 8ea1cbec,cbec,8ea1cbecv,cbecv 4f6f e4bdaf 4f6f 00004f6f a8cb a8cb a8cb a8cb a8cb a8cb a8cb -1329 a8cc a8cc a8cc * 4b6d * 8ea1cbed,cbed,8ea1cbedv,cbedv 4f9d e4be9d 4f9d 00004f9d a8cc a8cc a8cc a8cc a8cc a8cc a8cc -1330 a8cd a8cd a8cd * 4b6e * 8ea1cbee,cbee,8ea1cbeev,cbeev 4f8d e4be8d 4f8d 00004f8d a8cd a8cd a8cd a8cd a8cd a8cd a8cd -1331 a8ce a8ce a8ce * 4b6f * 8ea1cbef,cbef,8ea1cbefv,cbefv 4f73 e4bdb3 4f73 00004f73 a8ce a8ce a8ce a8ce a8ce a8ce a8ce -1332 a8cf a8cf a8cf * 4b70 * 8ea1cbf0,cbf0,8ea1cbf0v,cbf0v 4f7f e4bdbf 4f7f 00004f7f a8cf a8cf a8cf a8cf a8cf a8cf a8cf -1333 a8d0 a8d0 a8d0 * 4b71 * 8ea1cbf1,cbf1,8ea1cbf1v,cbf1v 4f6c e4bdac 4f6c 00004f6c a8d0 a8d0 a8d0 a8d0 a8d0 a8d0 a8d0 -1334 a8d1 a8d1 a8d1 * 4b72 * 8ea1cbf2,cbf2,8ea1cbf2v,cbf2v 4f9b e4be9b 4f9b 00004f9b a8d1 a8d1 a8d1 a8d1 a8d1 a8d1 a8d1 -1335 a8d2 a8d2 a8d2 * 4b73 * 8ea1cbf3,cbf3,8ea1cbf3v,cbf3v 4f8b e4be8b 4f8b 00004f8b a8d2 a8d2 a8d2 a8d2 a8d2 a8d2 a8d2 -1336 a8d3 a8d3 a8d3 * 4b74 * 8ea1cbf4,cbf4,8ea1cbf4v,cbf4v 4f86 e4be86 4f86 00004f86 a8d3 a8d3 a8d3 a8d3 a8d3 a8d3 a8d3 -1337 a8d4 a8d4 a8d4 * 4b75 * 8ea1cbf5,cbf5,8ea1cbf5v,cbf5v 4f83 e4be83 4f83 00004f83 a8d4 a8d4 a8d4 a8d4 a8d4 a8d4 a8d4 -1338 a8d5 a8d5 a8d5 * 4b76 * 8ea1cbf6,cbf6,8ea1cbf6v,cbf6v 4f70 e4bdb0 4f70 00004f70 a8d5 a8d5 a8d5 a8d5 a8d5 a8d5 a8d5 -1339 a8d6 a8d6 a8d6 * 4b77 * 8ea1cbf7,cbf7,8ea1cbf7v,cbf7v 4f75 e4bdb5 4f75 00004f75 a8d6 a8d6 a8d6 a8d6 a8d6 a8d6 a8d6 -1340 a8d7 a8d7 a8d7 * 4b78 * 8ea1cbf8,cbf8,8ea1cbf8v,cbf8v 4f88 e4be88 4f88 00004f88 a8d7 a8d7 a8d7 a8d7 a8d7 a8d7 a8d7 -1341 a8d8 a8d8 a8d8 * 4b79 * 8ea1cbf9,cbf9,8ea1cbf9v,cbf9v 4f69 e4bda9 4f69 00004f69 a8d8 a8d8 a8d8 a8d8 a8d8 a8d8 a8d8 -1342 a8d9 a8d9 a8d9 * 4b7a * 8ea1cbfa,cbfa,8ea1cbfav,cbfav 4f7b e4bdbb 4f7b 00004f7b a8d9 a8d9 a8d9 a8d9 a8d9 a8d9 a8d9 -1343 a8da a8da a8da * 4b7b * 8ea1cbfb,cbfb,8ea1cbfbv,cbfbv 4f96 e4be96 4f96 00004f96 a8da a8da a8da a8da a8da a8da a8da -1344 a8db a8db a8db * 4b7c * 8ea1cbfc,cbfc,8ea1cbfcv,cbfcv 4f7e e4bdbe 4f7e 00004f7e a8db a8db a8db a8db a8db a8db a8db -1345 a8dc a8dc a8dc * 4b7d * 8ea1cbfd,cbfd,8ea1cbfdv,cbfdv 4f8f e4be8f 4f8f 00004f8f a8dc a8dc a8dc a8dc a8dc a8dc a8dc -1346 a8dd a8dd a8dd * 4b7e * 8ea1cbfe,cbfe,8ea1cbfev,cbfev 4f91 e4be91 4f91 00004f91 a8dd a8dd a8dd a8dd a8dd a8dd a8dd -1347 a8de a8de a8de * 4c21 * 8ea1cca1,cca1,8ea1cca1v,cca1v 4f7a e4bdba 4f7a 00004f7a a8de a8de a8de a8de a8de a8de a8de -1348 a8df a8df a8df * 4c22 * 8ea1cca2,cca2,8ea1cca2v,cca2v 5154 e58594 5154 00005154 a8df a8df a8df a8df a8df a8df a8df -1349 a8e0 a8e0 a8e0 * 4c23 * 8ea1cca3,cca3,8ea1cca3v,cca3v 5152 e58592 5152 00005152 a8e0 a8e0 a8e0 a8e0 a8e0 a8e0 a8e0 -1350 a8e1 a8e1 a8e1 * 4c24 * 8ea1cca4,cca4,8ea1cca4v,cca4v 5155 e58595 5155 00005155 a8e1 a8e1 a8e1 a8e1 a8e1 a8e1 a8e1 -1351 a8e2 a8e2 a8e2 * 4c25 * 8ea1cca5,cca5,8ea1cca5v,cca5v 5169 e585a9 5169 00005169 a8e2 a8e2 a8e2 a8e2 a8e2 a8e2 a8e2 -1352 a8e3 a8e3 a8e3 * 4c26 * 8ea1cca6,cca6,8ea1cca6v,cca6v 5177 e585b7 5177 00005177 a8e3 a8e3 a8e3 a8e3 a8e3 a8e3 a8e3 -1353 a8e4 a8e4 a8e4 * 4c27 * 8ea1cca7,cca7,8ea1cca7v,cca7v 5176 e585b6 5176 00005176 a8e4 a8e4 a8e4 a8e4 a8e4 a8e4 a8e4 -1354 a8e5 a8e5 a8e5 * 4c28 * 8ea1cca8,cca8,8ea1cca8v,cca8v 5178 e585b8 5178 00005178 a8e5 a8e5 a8e5 a8e5 a8e5 a8e5 a8e5 -1355 a8e6 a8e6 a8e6 * 4c29 * 8ea1cca9,cca9,8ea1cca9v,cca9v 51bd e586bd 51bd 000051bd a8e6 a8e6 a8e6 a8e6 a8e6 a8e6 a8e6 -1356 a8e7 a8e7 a8e7 * 4c2a * 8ea1ccaa,ccaa,8ea1ccaav,ccaav 51fd e587bd 51fd 000051fd a8e7 a8e7 a8e7 a8e7 a8e7 a8e7 a8e7 -1357 a8e8 a8e8 a8e8 * 4c2b * 8ea1ccab,ccab,8ea1ccabv,ccabv 523b e588bb 523b 0000523b a8e8 a8e8 a8e8 a8e8 a8e8 a8e8 a8e8 -1358 a8e9 a8e9 a8e9 * 4c2c * 8ea1ccac,ccac,8ea1ccacv,ccacv 5238 e588b8 5238 00005238 a8e9 a8e9 a8e9 a8e9 a8e9 a8e9 a8e9 -1359 a8ea a8ea a8ea * 4c2d * 8ea1ccad,ccad,8ea1ccadv,ccadv 5237 e588b7 5237 00005237 a8ea a8ea a8ea a8ea a8ea a8ea a8ea -1360 a8eb a8eb a8eb * 4c2e * 8ea1ccae,ccae,8ea1ccaev,ccaev 523a e588ba 523a 0000523a a8eb a8eb a8eb a8eb a8eb a8eb a8eb -1361 a8ec a8ec a8ec * 4c2f * 8ea1ccaf,ccaf,8ea1ccafv,ccafv 5230 e588b0 5230 00005230 a8ec a8ec a8ec a8ec a8ec a8ec a8ec -1362 a8ed a8ed a8ed * 4c30 * 8ea1ccb0,ccb0,8ea1ccb0v,ccb0v 522e e588ae 522e 0000522e a8ed a8ed a8ed a8ed a8ed a8ed a8ed -1363 a8ee a8ee a8ee * 4c31 * 8ea1ccb1,ccb1,8ea1ccb1v,ccb1v 5236 e588b6 5236 00005236 a8ee a8ee a8ee a8ee a8ee a8ee a8ee -1364 a8ef a8ef a8ef * 4c32 * 8ea1ccb2,ccb2,8ea1ccb2v,ccb2v 5241 e58981 5241 00005241 a8ef a8ef a8ef a8ef a8ef a8ef a8ef -1365 a8f0 a8f0 a8f0 * 4c33 * 8ea1ccb3,ccb3,8ea1ccb3v,ccb3v 52be e58abe 52be 000052be a8f0 a8f0 a8f0 a8f0 a8f0 a8f0 a8f0 -1366 a8f1 a8f1 a8f1 * 4c34 * 8ea1ccb4,ccb4,8ea1ccb4v,ccb4v 52bb e58abb 52bb 000052bb a8f1 a8f1 a8f1 a8f1 a8f1 a8f1 a8f1 -1367 a8f2 a8f2 a8f2 * 4c35 * 8ea1ccb5,ccb5,8ea1ccb5v,ccb5v 5352 e58d92 5352 00005352 a8f2 a8f2 a8f2 a8f2 a8f2 a8f2 a8f2 -1368 a8f3 a8f3 a8f3 * 4c36 * 8ea1ccb6,ccb6,8ea1ccb6v,ccb6v 5354 e58d94 5354 00005354 a8f3 a8f3 a8f3 a8f3 a8f3 a8f3 a8f3 -1369 a8f4 a8f4 a8f4 * 4c37 * 8ea1ccb7,ccb7,8ea1ccb7v,ccb7v 5353 e58d93 5353 00005353 a8f4 a8f4 a8f4 a8f4 a8f4 a8f4 a8f4 -1370 a8f5 a8f5 a8f5 * 4c38 * 8ea1ccb8,ccb8,8ea1ccb8v,ccb8v 5351 e58d91 5351 00005351 a8f5 a8f5 a8f5 a8f5 a8f5 a8f5 a8f5 -1371 a8f6 a8f6 a8f6 * 4c39 * 8ea1ccb9,ccb9,8ea1ccb9v,ccb9v 5366 e58da6 5366 00005366 a8f6 a8f6 a8f6 a8f6 a8f6 a8f6 a8f6 -1372 a8f7 a8f7 a8f7 * 4c3a * 8ea1ccba,ccba,8ea1ccbav,ccbav 5377 e58db7 5377 00005377 a8f7 a8f7 a8f7 a8f7 a8f7 a8f7 a8f7 -1373 a8f8 a8f8 a8f8 * 4c3b * 8ea1ccbb,ccbb,8ea1ccbbv,ccbbv 5378 e58db8 5378 00005378 a8f8 a8f8 a8f8 a8f8 a8f8 a8f8 a8f8 -1374 a8f9 a8f9 a8f9 * 4c3c * 8ea1ccbc,ccbc,8ea1ccbcv,ccbcv 5379 e58db9 5379 00005379 a8f9 a8f9 a8f9 a8f9 a8f9 a8f9 a8f9 -1375 a8fa a8fa a8fa * 4c3d * 8ea1ccbd,ccbd,8ea1ccbdv,ccbdv 53d6 e58f96 53d6 000053d6 a8fa a8fa a8fa a8fa a8fa a8fa a8fa -1376 a8fb a8fb a8fb * 4c3e * 8ea1ccbe,ccbe,8ea1ccbev,ccbev 53d4 e58f94 53d4 000053d4 a8fb a8fb a8fb a8fb a8fb a8fb a8fb -1377 a8fc a8fc a8fc * 4c3f * 8ea1ccbf,ccbf,8ea1ccbfv,ccbfv 53d7 e58f97 53d7 000053d7 a8fc a8fc a8fc a8fc a8fc a8fc a8fc -1378 a8fd a8fd a8fd * 4c40 * 8ea1ccc0,ccc0,8ea1ccc0v,ccc0v 5473 e591b3 5473 00005473 a8fd a8fd a8fd a8fd a8fd a8fd a8fd -1379 a8fe a8fe a8fe * 4c41 * 8ea1ccc1,ccc1,8ea1ccc1v,ccc1v 5475 e591b5 5475 00005475 a8fe a8fe a8fe a8fe a8fe a8fe a8fe -1380 a940 a940 a940 * 4c42 * 8ea1ccc2,ccc2,8ea1ccc2v,ccc2v 5496 e59296 5496 00005496 a940 a940 a940 a940 a940 a940 a940 -1381 a941 a941 a941 * 4c43 * 8ea1ccc3,ccc3,8ea1ccc3v,ccc3v 5478 e591b8 5478 00005478 a941 a941 a941 a941 a941 a941 a941 -1382 a942 a942 a942 * 4c44 * 8ea1ccc4,ccc4,8ea1ccc4v,ccc4v 5495 e59295 5495 00005495 a942 a942 a942 a942 a942 a942 a942 -1383 a943 a943 a943 * 4c45 * 8ea1ccc5,ccc5,8ea1ccc5v,ccc5v 5480 e59280 5480 00005480 a943 a943 a943 a943 a943 a943 a943 -1384 a944 a944 a944 * 4c46 * 8ea1ccc6,ccc6,8ea1ccc6v,ccc6v 547b e591bb 547b 0000547b a944 a944 a944 a944 a944 a944 a944 -1385 a945 a945 a945 * 4c47 * 8ea1ccc7,ccc7,8ea1ccc7v,ccc7v 5477 e591b7 5477 00005477 a945 a945 a945 a945 a945 a945 a945 -1386 a946 a946 a946 * 4c48 * 8ea1ccc8,ccc8,8ea1ccc8v,ccc8v 5484 e59284 5484 00005484 a946 a946 a946 a946 a946 a946 a946 -1387 a947 a947 a947 * 4c49 * 8ea1ccc9,ccc9,8ea1ccc9v,ccc9v 5492 e59292 5492 00005492 a947 a947 a947 a947 a947 a947 a947 -1388 a948 a948 a948 * 4c4a * 8ea1ccca,ccca,8ea1cccav,cccav 5486 e59286 5486 00005486 a948 a948 a948 a948 a948 a948 a948 -1389 a949 a949 a949 * 4c4b * 8ea1cccb,cccb,8ea1cccbv,cccbv 547c e591bc 547c 0000547c a949 a949 a949 a949 a949 a949 a949 -1390 a94a a94a a94a * 4c4c * 8ea1cccc,cccc,8ea1ccccv,ccccv 5490 e59290 5490 00005490 a94a a94a a94a a94a a94a a94a a94a -1391 a94b a94b a94b * 4c4d * 8ea1cccd,cccd,8ea1cccdv,cccdv 5471 e591b1 5471 00005471 a94b a94b a94b a94b a94b a94b a94b -1392 a94c a94c a94c * 4c4e * 8ea1ccce,ccce,8ea1cccev,cccev 5476 e591b6 5476 00005476 a94c a94c,fbd1 9154,a94c a94c a94c a94c a94c -1393 a94d a94d a94d * 4c4f * 8ea1cccf,cccf,8ea1cccfv,cccfv 548c e5928c 548c 0000548c a94d a94d a94d a94d a94d a94d a94d -1394 a94e a94e a94e * 4c50 * 8ea1ccd0,ccd0,8ea1ccd0v,ccd0v 549a e5929a 549a 0000549a a94e a94e a94e a94e a94e a94e a94e -1395 a94f a94f a94f * 4c51 * 8ea1ccd1,ccd1,8ea1ccd1v,ccd1v 5462 e591a2 5462 00005462 a94f a94f a94f a94f a94f a94f a94f -1396 a950 a950 a950 * 4c52 * 8ea1ccd2,ccd2,8ea1ccd2v,ccd2v 5468 e591a8 5468 00005468 a950 a950 a950 a950 a950 a950 a950 -1397 a951 a951 a951 * 4c53 * 8ea1ccd3,ccd3,8ea1ccd3v,ccd3v 548b e5928b 548b 0000548b a951 a951 a951 a951 a951 a951 a951 -1398 a952 a952 a952 * 4c54 * 8ea1ccd4,ccd4,8ea1ccd4v,ccd4v 547d e591bd 547d 0000547d a952 a952 a952 a952 a952 a952 a952 -1399 a953 a953 a953 * 4c55 * 8ea1ccd5,ccd5,8ea1ccd5v,ccd5v 548e e5928e 548e 0000548e a953 a953 a953 a953 a953 a953 a953 -1400 a954 a954 a954 * 4c56 * 8ea1ccd6,ccd6,8ea1ccd6v,ccd6v 56fa e59bba 56fa 000056fa a954 a954 a954 a954 a954 a954 a954 -1401 a955 a955 a955 * 4c57 * 8ea1ccd7,ccd7,8ea1ccd7v,ccd7v 5783 e59e83 5783 00005783 a955 a955 a955 a955 a955 a955 a955 -1402 a956 a956 a956 * 4c58 * 8ea1ccd8,ccd8,8ea1ccd8v,ccd8v 5777 e59db7 5777 00005777 a956 a956 a956 a956 a956 a956 a956 -1403 a957 a957 a957 * 4c59 * 8ea1ccd9,ccd9,8ea1ccd9v,ccd9v 576a e59daa 576a 0000576a a957 a957 a957 a957 a957 a957 a957 -1404 a958 a958 a958 * 4c5a * 8ea1ccda,ccda,8ea1ccdav,ccdav 5769 e59da9 5769 00005769 a958 a958 a958 a958 a958 a958 a958 -1405 a959 a959 a959 * 4c5b * 8ea1ccdb,ccdb,8ea1ccdbv,ccdbv 5761 e59da1 5761 00005761 a959 a959 a959 a959 a959 a959 a959 -1406 a95a a95a a95a * 4c5c * 8ea1ccdc,ccdc,8ea1ccdcv,ccdcv 5766 e59da6 5766 00005766 a95a a95a a95a a95a a95a a95a a95a -1407 a95b a95b a95b * 4c5d * 8ea1ccdd,ccdd,8ea1ccddv,ccddv 5764 e59da4 5764 00005764 a95b a95b a95b a95b a95b a95b a95b -1408 a95c a95c a95c * 4c5e * 8ea1ccde,ccde,8ea1ccdev,ccdev 577c e59dbc 577c 0000577c a95c a95c a95c a95c a95c a95c a95c -1409 a95d a95d a95d * 4c5f * 8ea1ccdf,ccdf,8ea1ccdfv,ccdfv 591c e5a49c 591c 0000591c a95d a95d a95d a95d a95d a95d a95d -1410 a95e a95e a95e * 4c60 * 8ea1cce0,cce0,8ea1cce0v,cce0v 5949 e5a589 5949 00005949 a95e a95e a95e a95e a95e a95e a95e -1411 a95f a95f a95f * 4c61 * 8ea1cce1,cce1,8ea1cce1v,cce1v 5947 e5a587 5947 00005947 a95f a95f a95f a95f a95f a95f a95f -1412 a960 a960 a960 * 4c62 * 8ea1cce2,cce2,8ea1cce2v,cce2v 5948 e5a588 5948 00005948 a960 a960 a960 a960 a960 a960 a960 -1413 a961 a961 a961 * 4c63 * 8ea1cce3,cce3,8ea1cce3v,cce3v 5944 e5a584 5944 00005944 a961 a961 a961 a961 a961 a961 a961 -1414 a962 a962 a962 * 4c64 * 8ea1cce4,cce4,8ea1cce4v,cce4v 5954 e5a594 5954 00005954 a962 a962 a962 a962 a962 a962 a962 -1415 a963 a963 a963 * 4c65 * 8ea1cce5,cce5,8ea1cce5v,cce5v 59be e5a6be 59be 000059be a963 a963 a963 a963 a963 a963 a963 -1416 a964 a964 a964 * 4c66 * 8ea1cce6,cce6,8ea1cce6v,cce6v 59bb e5a6bb 59bb 000059bb a964 a964 a964 a964 a964 a964 a964 -1417 a965 a965 a965 * 4c67 * 8ea1cce7,cce7,8ea1cce7v,cce7v 59d4 e5a794 59d4 000059d4 a965 a965 a965 a965 a965 a965 a965 -1418 a966 a966 a966 * 4c68 * 8ea1cce8,cce8,8ea1cce8v,cce8v 59b9 e5a6b9 59b9 000059b9 a966 a966 a966 a966 a966 a966 a966 -1419 a967 a967 a967 * 4c69 * 8ea1cce9,cce9,8ea1cce9v,cce9v 59ae e5a6ae 59ae 000059ae a967 a967 a967 a967 a967 a967 a967 -1420 a968 a968 a968 * 4c6a * 8ea1ccea,ccea,8ea1cceav,cceav 59d1 e5a791 59d1 000059d1 a968 a968 a968 a968 a968 a968 a968 -1421 a969 a969 a969 * 4c6b * 8ea1cceb,cceb,8ea1ccebv,ccebv 59c6 e5a786 59c6 000059c6 a969 a969 a969 a969 a969 a969 a969 -1422 a96a a96a a96a * 4c6c * 8ea1ccec,ccec,8ea1ccecv,ccecv 59d0 e5a790 59d0 000059d0 a96a a96a a96a a96a a96a a96a a96a -1423 a96b a96b a96b * 4c6d * 8ea1cced,cced,8ea1ccedv,ccedv 59cd e5a78d 59cd 000059cd a96b a96b a96b a96b a96b a96b a96b -1424 a96c a96c a96c * 4c6e * 8ea1ccee,ccee,8ea1cceev,cceev 59cb e5a78b 59cb 000059cb a96c a96c a96c a96c a96c a96c a96c -1425 a96d a96d a96d * 4c6f * 8ea1ccef,ccef,8ea1ccefv,ccefv 59d3 e5a793 59d3 000059d3 a96d a96d a96d a96d a96d a96d a96d -1426 a96e a96e a96e * 4c70 * 8ea1ccf0,ccf0,8ea1ccf0v,ccf0v 59ca e5a78a 59ca 000059ca a96e a96e a96e a96e a96e a96e a96e -1427 a96f a96f a96f * 4c71 * 8ea1ccf1,ccf1,8ea1ccf1v,ccf1v 59af e5a6af 59af 000059af a96f a96f a96f a96f a96f a96f a96f -1428 a970 a970 a970 * 4c72 * 8ea1ccf2,ccf2,8ea1ccf2v,ccf2v 59b3 e5a6b3 59b3 000059b3 a970 a970 a970 a970 a970 a970 a970 -1429 a971 a971 a971 * 4c73 * 8ea1ccf3,ccf3,8ea1ccf3v,ccf3v 59d2 e5a792 59d2 000059d2 a971 a971,fbf4 9158,a971 a971 a971 a971 a971 -1430 a972 a972 a972 * 4c74 * 8ea1ccf4,ccf4,8ea1ccf4v,ccf4v 59c5 e5a785 59c5 000059c5 a972 a972 a972 a972 a972 a972 a972 -1431 a973 a973 a973 * 4c75 * 8ea1ccf5,ccf5,8ea1ccf5v,ccf5v 5b5f e5ad9f 5b5f 00005b5f a973 a973 a973 a973 a973 a973 a973 -1432 a974 a974 a974 * 4c76 * 8ea1ccf6,ccf6,8ea1ccf6v,ccf6v 5b64 e5ada4 5b64 00005b64 a974 a974 a974 a974 a974 a974 a974 -1433 a975 a975 a975 * 4c77 * 8ea1ccf7,ccf7,8ea1ccf7v,ccf7v 5b63 e5ada3 5b63 00005b63 a975 a975 a975 a975 a975 a975 a975 -1434 a976 a976 a976 * 4c78 * 8ea1ccf8,ccf8,8ea1ccf8v,ccf8v 5b97 e5ae97 5b97 00005b97 a976 a976 a976 a976 a976 a976 a976 -1435 a977 a977 a977 * 4c79 * 8ea1ccf9,ccf9,8ea1ccf9v,ccf9v 5b9a e5ae9a 5b9a 00005b9a a977 a977 a977 a977 a977 a977 a977 -1436 a978 a978 a978 * 4c7a * 8ea1ccfa,ccfa,8ea1ccfav,ccfav 5b98 e5ae98 5b98 00005b98 a978 a978 a978 a978 a978 a978 a978 -1437 a979 a979 a979 * 4c7b * 8ea1ccfb,ccfb,8ea1ccfbv,ccfbv 5b9c e5ae9c 5b9c 00005b9c a979 a979 a979 a979 a979 a979 a979 -1438 a97a a97a a97a * 4c7c * 8ea1ccfc,ccfc,8ea1ccfcv,ccfcv 5b99 e5ae99 5b99 00005b99 a97a a97a a97a a97a a97a a97a a97a -1439 a97b a97b a97b * 4c7d * 8ea1ccfd,ccfd,8ea1ccfdv,ccfdv 5b9b e5ae9b 5b9b 00005b9b a97b a97b a97b a97b a97b a97b a97b -1440 a97c a97c a97c * 4c7e * 8ea1ccfe,ccfe,8ea1ccfev,ccfev 5c1a e5b09a 5c1a 00005c1a a97c a97c a97c a97c a97c a97c a97c -1441 a97d a97d a97d * 4d21 * 8ea1cda1,cda1,8ea1cda1v,cda1v 5c48 e5b188 5c48 00005c48 a97d a97d a97d a97d a97d a97d a97d -1442 a97e a97e a97e * 4d22 * 8ea1cda2,cda2,8ea1cda2v,cda2v 5c45 e5b185 5c45 00005c45 a97e a97e a97e a97e a97e a97e a97e -1443 a9a1 a9a1 a9a1 * 4d23 * 8ea1cda3,cda3,8ea1cda3v,cda3v 5c46 e5b186 5c46 00005c46 a9a1 a9a1 a9a1 a9a1 a9a1 a9a1 a9a1 -1444 a9a2 a9a2 a9a2 * 4d24 * 8ea1cda4,cda4,8ea1cda4v,cda4v 5cb7 e5b2b7 5cb7 00005cb7 a9a2 a9a2 a9a2 a9a2 a9a2 a9a2 a9a2 -1445 a9a3 a9a3 a9a3 * 4d25 * 8ea1cda5,cda5,8ea1cda5v,cda5v 5ca1 e5b2a1 5ca1 00005ca1 a9a3 a9a3 a9a3 a9a3 a9a3 a9a3 a9a3 -1446 a9a4 a9a4 a9a4 * 4d26 * 8ea1cda6,cda6,8ea1cda6v,cda6v 5cb8 e5b2b8 5cb8 00005cb8 a9a4 a9a4 a9a4 a9a4 a9a4 a9a4 a9a4 -1447 a9a5 a9a5 a9a5 * 4d27 * 8ea1cda7,cda7,8ea1cda7v,cda7v 5ca9 e5b2a9 5ca9 00005ca9 a9a5 a9a5 a9a5 a9a5 a9a5 a9a5 a9a5 -1448 a9a6 a9a6 a9a6 * 4d28 * 8ea1cda8,cda8,8ea1cda8v,cda8v 5cab e5b2ab 5cab 00005cab a9a6 a9a6 a9a6 a9a6 a9a6 a9a6 a9a6 -1449 a9a7 a9a7 a9a7 * 4d29 * 8ea1cda9,cda9,8ea1cda9v,cda9v 5cb1 e5b2b1 5cb1 00005cb1 a9a7 a9a7 a9a7 a9a7 a9a7 a9a7 a9a7 -1450 a9a8 a9a8 a9a8 * 4d2a * 8ea1cdaa,cdaa,8ea1cdaav,cdaav 5cb3 e5b2b3 5cb3 00005cb3 a9a8 a9a8 a9a8 a9a8 a9a8 a9a8 a9a8 -1451 a9a9 a9a9 a9a9 * 4d2b * 8ea1cdab,cdab,8ea1cdabv,cdabv 5e18 e5b898 5e18 00005e18 a9a9 a9a9 a9a9 a9a9 a9a9 a9a9 a9a9 -1452 a9aa a9aa a9aa * 4d2c * 8ea1cdac,cdac,8ea1cdacv,cdacv 5e1a e5b89a 5e1a 00005e1a a9aa a9aa a9aa a9aa a9aa a9aa a9aa -1453 a9ab a9ab a9ab * 4d2d * 8ea1cdad,cdad,8ea1cdadv,cdadv 5e16 e5b896 5e16 00005e16 a9ab a9ab a9ab a9ab a9ab a9ab a9ab -1454 a9ac a9ac a9ac * 4d2e * 8ea1cdae,cdae,8ea1cdaev,cdaev 5e15 e5b895 5e15 00005e15 a9ac a9ac a9ac a9ac a9ac a9ac a9ac -1455 a9ad a9ad a9ad * 4d2f * 8ea1cdaf,cdaf,8ea1cdafv,cdafv 5e1b e5b89b 5e1b 00005e1b a9ad a9ad a9ad a9ad a9ad a9ad a9ad -1456 a9ae a9ae a9ae * 4d30 * 8ea1cdb0,cdb0,8ea1cdb0v,cdb0v 5e11 e5b891 5e11 00005e11 a9ae a9ae a9ae a9ae a9ae a9ae a9ae -1457 a9af a9af a9af * 4d31 * 8ea1cdb1,cdb1,8ea1cdb1v,cdb1v 5e78 e5b9b8 5e78 00005e78 a9af a9af a9af a9af a9af a9af a9af -1458 a9b0 a9b0 a9b0 * 4d32 * 8ea1cdb2,cdb2,8ea1cdb2v,cdb2v 5e9a e5ba9a 5e9a 00005e9a a9b0 a9b0 a9b0 a9b0 a9b0 a9b0 a9b0 -1459 a9b1 a9b1 a9b1 * 4d33 * 8ea1cdb3,cdb3,8ea1cdb3v,cdb3v 5e97 e5ba97 5e97 00005e97 a9b1 a9b1 a9b1 a9b1 a9b1 a9b1 a9b1 -1460 a9b2 a9b2 a9b2 * 4d34 * 8ea1cdb4,cdb4,8ea1cdb4v,cdb4v 5e9c e5ba9c 5e9c 00005e9c a9b2 a9b2 a9b2 a9b2 a9b2 a9b2 a9b2 -1461 a9b3 a9b3 a9b3 * 4d35 * 8ea1cdb5,cdb5,8ea1cdb5v,cdb5v 5e95 e5ba95 5e95 00005e95 a9b3 a9b3 a9b3 a9b3 a9b3 a9b3 a9b3 -1462 a9b4 a9b4 a9b4 * 4d36 * 8ea1cdb6,cdb6,8ea1cdb6v,cdb6v 5e96 e5ba96 5e96 00005e96 a9b4 a9b4 a9b4 a9b4 a9b4 a9b4 a9b4 -1463 a9b5 a9b5 a9b5 * 4d37 * 8ea1cdb7,cdb7,8ea1cdb7v,cdb7v 5ef6 e5bbb6 5ef6 00005ef6 a9b5 a9b5 a9b5 a9b5 a9b5 a9b5 a9b5 -1464 a9b6 a9b6 a9b6 * 4d38 * 8ea1cdb8,cdb8,8ea1cdb8v,cdb8v 5f26 e5bca6 5f26 00005f26 a9b6 a9b6 a9b6 a9b6 a9b6 a9b6 a9b6 -1465 a9b7 a9b7 a9b7 * 4d39 * 8ea1cdb9,cdb9,8ea1cdb9v,cdb9v 5f27 e5bca7 5f27 00005f27 a9b7 a9b7 a9b7 a9b7 a9b7 a9b7 a9b7 -1466 a9b8 a9b8 a9b8 * 4d3a * 8ea1cdba,cdba,8ea1cdbav,cdbav 5f29 e5bca9 5f29 00005f29 a9b8 a9b8 a9b8 a9b8 a9b8 a9b8 a9b8 -1467 a9b9 a9b9 a9b9 * 4d3b * 8ea1cdbb,cdbb,8ea1cdbbv,cdbbv 5f80 e5be80 5f80 00005f80 a9b9 a9b9 a9b9 a9b9 a9b9 a9b9 a9b9 -1468 a9ba a9ba a9ba * 4d3c * 8ea1cdbc,cdbc,8ea1cdbcv,cdbcv 5f81 e5be81 5f81 00005f81 a9ba a9ba a9ba a9ba a9ba a9ba a9ba -1469 a9bb a9bb a9bb * 4d3d * 8ea1cdbd,cdbd,8ea1cdbdv,cdbdv 5f7f e5bdbf 5f7f 00005f7f a9bb a9bb a9bb a9bb a9bb a9bb a9bb -1470 a9bc a9bc a9bc * 4d3e * 8ea1cdbe,cdbe,8ea1cdbev,cdbev 5f7c e5bdbc 5f7c 00005f7c a9bc a9bc a9bc a9bc a9bc a9bc a9bc -1471 a9bd a9bd a9bd * 4d3f * 8ea1cdbf,cdbf,8ea1cdbfv,cdbfv 5fdd e5bf9d 5fdd 00005fdd a9bd a9bd a9bd a9bd a9bd a9bd a9bd -1472 a9be a9be a9be * 4d40 * 8ea1cdc0,cdc0,8ea1cdc0v,cdc0v 5fe0 e5bfa0 5fe0 00005fe0 a9be a9be a9be a9be a9be a9be a9be -1473 a9bf a9bf a9bf * 4d41 * 8ea1cdc1,cdc1,8ea1cdc1v,cdc1v 5ffd e5bfbd 5ffd 00005ffd a9bf a9bf a9bf a9bf a9bf a9bf a9bf -1474 a9c0 a9c0 a9c0 * 4d42 * 8ea1cdc2,cdc2,8ea1cdc2v,cdc2v 5ff5 e5bfb5 5ff5 00005ff5 a9c0 a9c0 a9c0 a9c0 a9c0 a9c0 a9c0 -1475 a9c1 a9c1 a9c1 * 4d43 * 8ea1cdc3,cdc3,8ea1cdc3v,cdc3v 5fff e5bfbf 5fff 00005fff a9c1 a9c1 a9c1 a9c1 a9c1 a9c1 a9c1 -1476 a9c2 a9c2 a9c2 * 4d44 * 8ea1cdc4,cdc4,8ea1cdc4v,cdc4v 600f e6808f 600f 0000600f a9c2 a9c2 a9c2 a9c2 a9c2 a9c2 a9c2 -1477 a9c3 a9c3 a9c3 * 4d45 * 8ea1cdc5,cdc5,8ea1cdc5v,cdc5v 6014 e68094 6014 00006014 a9c3 a9c3 a9c3 a9c3 a9c3 a9c3 a9c3 -1478 a9c4 a9c4 a9c4 * 4d46 * 8ea1cdc6,cdc6,8ea1cdc6v,cdc6v 602f e680af 602f 0000602f a9c4 a9c4 a9c4 a9c4 a9c4 a9c4 a9c4 -1479 a9c5 a9c5 a9c5 * 4d47 * 8ea1cdc7,cdc7,8ea1cdc7v,cdc7v 6035 e680b5 6035 00006035 a9c5 a9c5 a9c5 a9c5 a9c5 a9c5 a9c5 -1480 a9c6 a9c6 a9c6 * 4d48 * 8ea1cdc8,cdc8,8ea1cdc8v,cdc8v 6016 e68096 6016 00006016 a9c6 a9c6 a9c6 a9c6 a9c6 a9c6 a9c6 -1481 a9c7 a9c7 a9c7 * 4d49 * 8ea1cdc9,cdc9,8ea1cdc9v,cdc9v 602a e680aa 602a 0000602a a9c7 a9c7 a9c7 a9c7 a9c7 a9c7 a9c7 -1482 a9c8 a9c8 a9c8 * 4d4a * 8ea1cdca,cdca,8ea1cdcav,cdcav 6015 e68095 6015 00006015 a9c8 a9c8 a9c8 a9c8 a9c8 a9c8 a9c8 -1483 a9c9 a9c9 a9c9 * 4d4b * 8ea1cdcb,cdcb,8ea1cdcbv,cdcbv 6021 e680a1 6021 00006021 a9c9 a9c9 a9c9 a9c9 a9c9 a9c9 a9c9 -1484 a9ca a9ca a9ca * 4d4c * 8ea1cdcc,cdcc,8ea1cdccv,cdccv 6027 e680a7 6027 00006027 a9ca a9ca a9ca a9ca a9ca a9ca a9ca -1485 a9cb a9cb a9cb * 4d4d * 8ea1cdcd,cdcd,8ea1cdcdv,cdcdv 6029 e680a9 6029 00006029 a9cb a9cb a9cb a9cb a9cb a9cb a9cb -1486 a9cc a9cc a9cc * 4d4e * 8ea1cdce,cdce,8ea1cdcev,cdcev 602b e680ab 602b 0000602b a9cc a9cc a9cc a9cc a9cc a9cc a9cc -1487 a9cd a9cd a9cd * 4d4f * 8ea1cdcf,cdcf,8ea1cdcfv,cdcfv 601b e6809b 601b 0000601b a9cd a9cd a9cd a9cd a9cd a9cd a9cd -1488 a9ce a9ce a9ce * 4d50 * 8ea1cdd0,cdd0,8ea1cdd0v,cdd0v 6216 e68896 6216 00006216 a9ce a9ce a9ce a9ce a9ce a9ce a9ce -1489 a9cf a9cf a9cf * 4d51 * 8ea1cdd1,cdd1,8ea1cdd1v,cdd1v 6215 e68895 6215 00006215 a9cf a9cf a9cf a9cf a9cf a9cf a9cf -1490 a9d0 a9d0 a9d0 * 4d52 * 8ea1cdd2,cdd2,8ea1cdd2v,cdd2v 623f e688bf 623f 0000623f a9d0 a9d0 a9d0 a9d0 a9d0 a9d0 a9d0 -1491 a9d1 a9d1 a9d1 * 4d53 * 8ea1cdd3,cdd3,8ea1cdd3v,cdd3v 623e e688be 623e 0000623e a9d1 a9d1 a9d1 a9d1 a9d1 a9d1 a9d1 -1492 a9d2 a9d2 a9d2 * 4d54 * 8ea1cdd4,cdd4,8ea1cdd4v,cdd4v 6240 e68980 6240 00006240 a9d2 a9d2 a9d2 a9d2 a9d2 a9d2 a9d2 -1493 a9d3 a9d3 a9d3 * 4d55 * 8ea1cdd5,cdd5,8ea1cdd5v,cdd5v 627f e689bf 627f 0000627f a9d3 a9d3 a9d3 a9d3 a9d3 a9d3 a9d3 -1494 a9d4 a9d4 a9d4 * 4d56 * 8ea1cdd6,cdd6,8ea1cdd6v,cdd6v 62c9 e68b89 62c9 000062c9 a9d4 a9d4 a9d4 a9d4 a9d4 a9d4 a9d4 -1495 a9d5 a9d5 a9d5 * 4d57 * 8ea1cdd7,cdd7,8ea1cdd7v,cdd7v 62cc e68b8c 62cc 000062cc a9d5 a9d5 a9d5 a9d5 a9d5 a9d5 a9d5 -1496 a9d6 a9d6 a9d6 * 4d58 * 8ea1cdd8,cdd8,8ea1cdd8v,cdd8v 62c4 e68b84 62c4 000062c4 a9d6 a9d6 a9d6 a9d6 a9d6 a9d6 a9d6 -1497 a9d7 a9d7 a9d7 * 4d59 * 8ea1cdd9,cdd9,8ea1cdd9v,cdd9v 62bf e68abf 62bf 000062bf a9d7 a9d7 a9d7 a9d7 a9d7 a9d7 a9d7 -1498 a9d8 a9d8 a9d8 * 4d5a * 8ea1cdda,cdda,8ea1cddav,cddav 62c2 e68b82 62c2 000062c2 a9d8 a9d8 a9d8 a9d8 a9d8 a9d8 a9d8 -1499 a9d9 a9d9 a9d9 * 4d5b * 8ea1cddb,cddb,8ea1cddbv,cddbv 62b9 e68ab9 62b9 000062b9 a9d9 a9d9 a9d9 a9d9 a9d9 a9d9 a9d9 -1500 a9da a9da a9da * 4d5c * 8ea1cddc,cddc,8ea1cddcv,cddcv 62d2 e68b92 62d2 000062d2 a9da a9da a9da a9da a9da a9da a9da -1501 a9db a9db a9db * 4d5d * 8ea1cddd,cddd,8ea1cdddv,cdddv 62db e68b9b 62db 000062db a9db a9db a9db a9db a9db a9db a9db -1502 a9dc a9dc a9dc * 4d5e * 8ea1cdde,cdde,8ea1cddev,cddev 62ab e68aab 62ab 000062ab a9dc a9dc a9dc a9dc a9dc a9dc a9dc -1503 a9dd a9dd a9dd * 4d5f * 8ea1cddf,cddf,8ea1cddfv,cddfv 62d3 e68b93 62d3 000062d3 a9dd a9dd a9dd a9dd a9dd a9dd a9dd -1504 a9de a9de a9de * 4d60 * 8ea1cde0,cde0,8ea1cde0v,cde0v 62d4 e68b94 62d4 000062d4 a9de a9de a9de a9de a9de a9de a9de -1505 a9df a9df a9df * 4d61 * 8ea1cde1,cde1,8ea1cde1v,cde1v 62cb e68b8b 62cb 000062cb a9df a9df a9df a9df a9df a9df a9df -1506 a9e0 a9e0 a9e0 * 4d62 * 8ea1cde2,cde2,8ea1cde2v,cde2v 62c8 e68b88 62c8 000062c8 a9e0 a9e0 a9e0 a9e0 a9e0 a9e0 a9e0 -1507 a9e1 a9e1 a9e1 * 4d63 * 8ea1cde3,cde3,8ea1cde3v,cde3v 62a8 e68aa8 62a8 000062a8 a9e1 a9e1 a9e1 a9e1 a9e1 a9e1 a9e1 -1508 a9e2 a9e2 a9e2 * 4d64 * 8ea1cde4,cde4,8ea1cde4v,cde4v 62bd e68abd 62bd 000062bd a9e2 a9e2 a9e2 a9e2 a9e2 a9e2 a9e2 -1509 a9e3 a9e3 a9e3 * 4d65 * 8ea1cde5,cde5,8ea1cde5v,cde5v 62bc e68abc 62bc 000062bc a9e3 a9e3 a9e3 a9e3 a9e3 a9e3 a9e3 -1510 a9e4 a9e4 a9e4 * 4d66 * 8ea1cde6,cde6,8ea1cde6v,cde6v 62d0 e68b90,eeb2a6 62d0,eca6 000062d0,0000eca6 9dc4,a9e4 a9e4 a9e4 a9e4 a9e4 a9e4 9dc4,a9e4 -1511 a9e5 a9e5 a9e5 * 4d67 * 8ea1cde7,cde7,8ea1cde7v,cde7v 62d9 e68b99 62d9 000062d9 a9e5 a9e5 a9e5 a9e5 a9e5 a9e5 a9e5 -1512 a9e6 a9e6 a9e6 * 4d68 * 8ea1cde8,cde8,8ea1cde8v,cde8v 62c7 e68b87 62c7 000062c7 a9e6 a9e6 a9e6 a9e6 a9e6 a9e6 a9e6 -1513 a9e7 a9e7 a9e7 * 4d69 * 8ea1cde9,cde9,8ea1cde9v,cde9v 62cd e68b8d 62cd 000062cd a9e7 a9e7 a9e7 a9e7 a9e7 a9e7 a9e7 -1514 a9e8 a9e8 a9e8 * 4d6a * 8ea1cdea,cdea,8ea1cdeav,cdeav 62b5 e68ab5 62b5 000062b5 a9e8 a9e8 a9e8 a9e8 a9e8 a9e8 a9e8 -1515 a9e9 a9e9 a9e9 * 4d6b * 8ea1cdeb,cdeb,8ea1cdebv,cdebv 62da e68b9a 62da 000062da a9e9 a9e9 a9e9 a9e9 a9e9 a9e9 a9e9 -1516 a9ea a9ea a9ea * 4d6c * 8ea1cdec,cdec,8ea1cdecv,cdecv 62b1 e68ab1 62b1 000062b1 a9ea a9ea a9ea a9ea a9ea a9ea a9ea -1517 a9eb a9eb a9eb * 4d6d * 8ea1cded,cded,8ea1cdedv,cdedv 62d8 e68b98 62d8 000062d8 a9eb a9eb a9eb a9eb a9eb a9eb a9eb -1518 a9ec a9ec a9ec * 4d6e * 8ea1cdee,cdee,8ea1cdeev,cdeev 62d6 e68b96 62d6 000062d6 a9ec a9ec a9ec a9ec a9ec a9ec a9ec -1519 a9ed a9ed a9ed * 4d6f * 8ea1cdef,cdef,8ea1cdefv,cdefv 62d7 e68b97 62d7 000062d7 a9ed a9ed a9ed a9ed a9ed a9ed a9ed -1520 a9ee a9ee a9ee * 4d70 * 8ea1cdf0,cdf0,8ea1cdf0v,cdf0v 62c6 e68b86 62c6 000062c6 a9ee a9ee a9ee a9ee a9ee a9ee a9ee -1521 a9ef a9ef a9ef * 4d71 * 8ea1cdf1,cdf1,8ea1cdf1v,cdf1v 62ac e68aac 62ac 000062ac a9ef a9ef a9ef a9ef a9ef a9ef a9ef -1522 a9f0 a9f0 a9f0 * 4d72 * 8ea1cdf2,cdf2,8ea1cdf2v,cdf2v 62ce e68b8e,eeb992 62ce,ee52 000062ce,0000ee52 a077,a9f0 a9f0 a9f0 a9f0 a9f0 a9f0 a077,a9f0 -1523 a9f1 a9f1 a9f1 * 4d73 * 8ea1cdf3,cdf3,8ea1cdf3v,cdf3v 653e e694be 653e 0000653e a9f1 a9f1 a9f1 a9f1 a9f1 a9f1 a9f1 -1524 a9f2 a9f2 a9f2 * 4d74 * 8ea1cdf4,cdf4,8ea1cdf4v,cdf4v 65a7 e696a7 65a7 000065a7 a9f2 a9f2 a9f2 a9f2 a9f2 a9f2 a9f2 -1525 a9f3 a9f3 a9f3 * 4d75 * 8ea1cdf5,cdf5,8ea1cdf5v,cdf5v 65bc e696bc 65bc 000065bc a9f3 a9f3 a9f3 a9f3 a9f3 a9f3 a9f3 -1526 a9f4 a9f4 a9f4 * 4d76 * 8ea1cdf6,cdf6,8ea1cdf6v,cdf6v 65fa e697ba 65fa 000065fa a9f4 a9f4 a9f4 a9f4 a9f4 a9f4 a9f4 -1527 a9f5 a9f5 a9f5 * 4d77 * 8ea1cdf7,cdf7,8ea1cdf7v,cdf7v 6614 e69894 6614 00006614 a9f5 a9f5 a9f5 a9f5 a9f5 a9f5 a9f5 -1528 a9f6 a9f6 a9f6 * 4d78 * 8ea1cdf8,cdf8,8ea1cdf8v,cdf8v 6613 e69893 6613 00006613 a9f6 a9f6 a9f6 a9f6 a9f6 a9f6 a9f6 -1529 a9f7 a9f7 a9f7 * 4d79 * 8ea1cdf9,cdf9,8ea1cdf9v,cdf9v 660c e6988c 660c 0000660c a9f7 a9f7 a9f7 a9f7 a9f7 a9f7 a9f7 -1530 a9f8 a9f8 a9f8 * 4d7a * 8ea1cdfa,cdfa,8ea1cdfav,cdfav 6606 e69886 6606 00006606 a9f8 a9f8 a9f8 a9f8 a9f8 a9f8 a9f8 -1531 a9f9 a9f9 a9f9 * 4d7b * 8ea1cdfb,cdfb,8ea1cdfbv,cdfbv 6602 e69882 6602 00006602 a9f9 a9f9 a9f9 a9f9 a9f9 a9f9 a9f9 -1532 a9fa a9fa a9fa * 4d7c * 8ea1cdfc,cdfc,8ea1cdfcv,cdfcv 660e e6988e 660e 0000660e a9fa a9fa a9fa a9fa a9fa a9fa a9fa -1533 a9fb a9fb a9fb * 4d7d * 8ea1cdfd,cdfd,8ea1cdfdv,cdfdv 6600 e69880 6600 00006600 a9fb a9fb a9fb a9fb a9fb a9fb a9fb -1534 a9fc a9fc a9fc * 4d7e * 8ea1cdfe,cdfe,8ea1cdfev,cdfev 660f e6988f 660f 0000660f a9fc a9fc a9fc a9fc a9fc a9fc a9fc -1535 a9fd a9fd a9fd * 4e21 * 8ea1cea1,cea1,8ea1cea1v,cea1v 6615 e69895 6615 00006615 a9fd a9fd a9fd a9fd a9fd a9fd a9fd -1536 a9fe a9fe a9fe * 4e22 * 8ea1cea2,cea2,8ea1cea2v,cea2v 660a e6988a 660a 0000660a a9fe a9fe a9fe a9fe a9fe a9fe a9fe -1537 aa40 aa40 aa40 * 4e23 * 8ea1cea3,cea3,8ea1cea3v,cea3v 6607 e69887 6607 00006607 aa40 aa40 aa40 aa40 aa40 aa40 aa40 -1538 aa41 aa41 aa41 * 4e24 * 8ea1cea4,cea4,8ea1cea4v,cea4v 670d e69c8d 670d 0000670d aa41 aa41 aa41 aa41 aa41 aa41 aa41 -1539 aa42 aa42 aa42 * 4e25 * 8ea1cea5,cea5,8ea1cea5v,cea5v 670b e69c8b 670b 0000670b aa42 aa42 aa42 aa42 aa42 aa42 aa42 -1540 aa43 aa43 aa43 * 4e26 * 8ea1cea6,cea6,8ea1cea6v,cea6v 676d e69dad 676d 0000676d aa43 aa43 aa43 aa43 aa43 aa43 aa43 -1541 aa44 aa44 aa44 * 4e27 * 8ea1cea7,cea7,8ea1cea7v,cea7v 678b e69e8b 678b 0000678b aa44 aa44 aa44 aa44 aa44 aa44 aa44 -1542 aa45 aa45 aa45 * 4e28 * 8ea1cea8,cea8,8ea1cea8v,cea8v 6795 e69e95 6795 00006795 aa45 aa45 aa45 aa45 aa45 aa45 aa45 -1543 aa46 aa46 aa46 * 4e29 * 8ea1cea9,cea9,8ea1cea9v,cea9v 6771 e69db1 6771 00006771 aa46 aa46 aa46 aa46 aa46 aa46 aa46 -1544 aa47 aa47 aa47 * 4e2a * 8ea1ceaa,ceaa,8ea1ceaav,ceaav 679c e69e9c 679c 0000679c aa47 aa47 aa47 aa47 aa47 aa47 aa47 -1545 aa48 aa48 aa48 * 4e2b * 8ea1ceab,ceab,8ea1ceabv,ceabv 6773 e69db3 6773 00006773 aa48 aa48 aa48 aa48 aa48 aa48 aa48 -1546 aa49 aa49 aa49 * 4e2c * 8ea1ceac,ceac,8ea1ceacv,ceacv 6777 e69db7 6777 00006777 aa49 aa49 aa49 aa49 aa49 aa49 aa49 -1547 aa4a aa4a aa4a * 4e2d * 8ea1cead,cead,8ea1ceadv,ceadv 6787 e69e87 6787 00006787 aa4a aa4a aa4a aa4a aa4a aa4a aa4a -1548 aa4b aa4b aa4b * 4e2e * 8ea1ceae,ceae,8ea1ceaev,ceaev 679d e69e9d 679d 0000679d aa4b aa4b aa4b aa4b aa4b aa4b aa4b -1549 aa4c aa4c aa4c * 4e2f * 8ea1ceaf,ceaf,8ea1ceafv,ceafv 6797 e69e97 6797 00006797 aa4c aa4c aa4c aa4c aa4c aa4c aa4c -1550 aa4d aa4d aa4d * 4e30 * 8ea1ceb0,ceb0,8ea1ceb0v,ceb0v 676f e69daf 676f 0000676f aa4d aa4d aa4d aa4d aa4d aa4d aa4d -1551 aa4e aa4e aa4e * 4e31 * 8ea1ceb1,ceb1,8ea1ceb1v,ceb1v 6770 e69db0 6770 00006770 aa4e aa4e aa4e aa4e aa4e aa4e aa4e -1552 aa4f aa4f aa4f * 4e32 * 8ea1ceb2,ceb2,8ea1ceb2v,ceb2v 677f e69dbf 677f 0000677f aa4f aa4f aa4f aa4f aa4f aa4f aa4f -1553 aa50 aa50 aa50 * 4e33 * 8ea1ceb3,ceb3,8ea1ceb3v,ceb3v 6789 e69e89 6789 00006789 aa50 aa50 aa50 aa50 aa50 aa50 aa50 -1554 aa51 aa51 aa51 * 4e34 * 8ea1ceb4,ceb4,8ea1ceb4v,ceb4v 677e e69dbe 677e 0000677e aa51 aa51 aa51 aa51 aa51 aa51 aa51 -1555 aa52 aa52 aa52 * 4e35 * 8ea1ceb5,ceb5,8ea1ceb5v,ceb5v 6790 e69e90 6790 00006790 aa52 aa52 aa52 aa52 aa52 aa52 aa52 -1556 aa53 aa53 aa53 * 4e36 * 8ea1ceb6,ceb6,8ea1ceb6v,ceb6v 6775 e69db5 6775 00006775 aa53 aa53 aa53 aa53 aa53 aa53 aa53 -1557 aa54 aa54 aa54 * 4e37 * 8ea1ceb7,ceb7,8ea1ceb7v,ceb7v 679a e69e9a 679a 0000679a aa54 aa54 aa54 aa54 aa54 aa54 aa54 -1558 aa55 aa55 aa55 * 4e38 * 8ea1ceb8,ceb8,8ea1ceb8v,ceb8v 6793 e69e93 6793 00006793 aa55 aa55 aa55 aa55 aa55 aa55 aa55 -1559 aa56 aa56 aa56 * 4e39 * 8ea1ceb9,ceb9,8ea1ceb9v,ceb9v 677c e69dbc 677c 0000677c aa56 aa56 aa56 aa56 aa56 aa56 aa56 -1560 aa57 aa57 aa57 * 4e3a * 8ea1ceba,ceba,8ea1cebav,cebav 676a e69daa 676a 0000676a aa57 aa57 aa57 aa57 aa57 aa57 aa57 -1561 aa58 aa58 aa58 * 4e3b * 8ea1cebb,cebb,8ea1cebbv,cebbv 6772 e69db2 6772 00006772 aa58 aa58,fcb0 9061,aa58 aa58 aa58 aa58 aa58 -1562 aa59 aa59 aa59 * 4e3c * 8ea1cebc,cebc,8ea1cebcv,cebcv 6b23 e6aca3 6b23 00006b23 aa59 aa59 aa59 aa59 aa59 aa59 aa59 -1563 aa5a aa5a aa5a * 4e3d * 8ea1cebd,cebd,8ea1cebdv,cebdv 6b66 e6ada6 6b66 00006b66 aa5a aa5a aa5a aa5a aa5a aa5a aa5a -1564 aa5b aa5b aa5b * 4e3e * 8ea1cebe,cebe,8ea1cebev,cebev 6b67 e6ada7 6b67 00006b67 aa5b aa5b 9265,aa5b aa5b aa5b aa5b aa5b -1565 aa5c aa5c aa5c * 4e3f * 8ea1cebf,cebf,8ea1cebfv,cebfv 6b7f e6adbf 6b7f 00006b7f aa5c aa5c aa5c aa5c aa5c aa5c aa5c -1566 aa5d aa5d aa5d * 4e40 * 8ea1cec0,cec0,8ea1cec0v,cec0v 6c13 e6b093 6c13 00006c13 aa5d aa5d aa5d aa5d aa5d aa5d aa5d -1567 aa5e aa5e aa5e * 4e41 * 8ea1cec1,cec1,8ea1cec1v,cec1v 6c1b e6b09b 6c1b 00006c1b aa5e aa5e aa5e aa5e aa5e aa5e aa5e -1568 aa5f aa5f aa5f * 4e42 * 8ea1cec2,cec2,8ea1cec2v,cec2v 6ce3 e6b3a3 6ce3 00006ce3 aa5f aa5f aa5f aa5f aa5f aa5f aa5f -1569 aa60 aa60 aa60 * 4e43 * 8ea1cec3,cec3,8ea1cec3v,cec3v 6ce8 e6b3a8 6ce8 00006ce8 aa60 aa60 aa60 aa60 aa60 aa60 aa60 -1570 aa61 aa61 aa61 * 4e44 * 8ea1cec4,cec4,8ea1cec4v,cec4v 6cf3 e6b3b3 6cf3 00006cf3 aa61 aa61 aa61 aa61 aa61 aa61 aa61 -1571 aa62 aa62 aa62 * 4e45 * 8ea1cec5,cec5,8ea1cec5v,cec5v 6cb1 e6b2b1 6cb1 00006cb1 aa62 aa62 aa62 aa62 aa62 aa62 aa62 -1572 aa63 aa63 aa63 * 4e46 * 8ea1cec6,cec6,8ea1cec6v,cec6v 6ccc e6b38c 6ccc 00006ccc aa63 aa63 aa63 aa63 aa63 aa63 aa63 -1573 aa64 aa64 aa64 * 4e47 * 8ea1cec7,cec7,8ea1cec7v,cec7v 6ce5 e6b3a5 6ce5 00006ce5 aa64 aa64 aa64 aa64 aa64 aa64 aa64 -1574 aa65 aa65 aa65 * 4e48 * 8ea1cec8,cec8,8ea1cec8v,cec8v 6cb3 e6b2b3 6cb3 00006cb3 aa65 aa65 aa65 aa65 aa65 aa65 aa65 -1575 aa66 aa66 aa66 * 4e49 * 8ea1cec9,cec9,8ea1cec9v,cec9v 6cbd e6b2bd 6cbd 00006cbd aa66 aa66 aa66 aa66 aa66 aa66 aa66 -1576 aa67 aa67 aa67 * 4e4a * 8ea1ceca,ceca,8ea1cecav,cecav 6cbe e6b2be 6cbe 00006cbe aa67 aa67 aa67 aa67 aa67 aa67 aa67 -1577 aa68 aa68 aa68 * 4e4b * 8ea1cecb,cecb,8ea1cecbv,cecbv 6cbc e6b2bc 6cbc 00006cbc aa68 aa68 aa68 aa68 aa68 aa68 aa68 -1578 aa69 aa69 aa69 * 4e4c * 8ea1cecc,cecc,8ea1ceccv,ceccv 6ce2 e6b3a2 6ce2 00006ce2 aa69 aa69 aa69 aa69 aa69 aa69 aa69 -1579 aa6a aa6a aa6a * 4e4d * 8ea1cecd,cecd,8ea1cecdv,cecdv 6cab e6b2ab 6cab 00006cab aa6a aa6a aa6a aa6a aa6a aa6a aa6a -1580 aa6b aa6b aa6b * 4e4e * 8ea1cece,cece,8ea1cecev,cecev 6cd5 e6b395 6cd5 00006cd5 aa6b aa6b aa6b aa6b aa6b aa6b aa6b -1581 aa6c aa6c aa6c * 4e4f * 8ea1cecf,cecf,8ea1cecfv,cecfv 6cd3 e6b393 6cd3 00006cd3 aa6c aa6c aa6c aa6c aa6c aa6c aa6c -1582 aa6d aa6d aa6d * 4e50 * 8ea1ced0,ced0,8ea1ced0v,ced0v 6cb8 e6b2b8 6cb8 00006cb8 aa6d aa6d aa6d aa6d aa6d aa6d aa6d -1583 aa6e aa6e aa6e * 4e51 * 8ea1ced1,ced1,8ea1ced1v,ced1v 6cc4 e6b384 6cc4 00006cc4 aa6e aa6e aa6e aa6e aa6e aa6e aa6e -1584 aa6f aa6f aa6f * 4e52 * 8ea1ced2,ced2,8ea1ced2v,ced2v 6cb9 e6b2b9 6cb9 00006cb9 aa6f aa6f aa6f aa6f aa6f aa6f aa6f -1585 aa70 aa70 aa70 * 4e53 * 8ea1ced3,ced3,8ea1ced3v,ced3v 6cc1 e6b381 6cc1 00006cc1 aa70 aa70 aa70 aa70 aa70 aa70 aa70 -1586 aa71 aa71 aa71 * 4e54 * 8ea1ced4,ced4,8ea1ced4v,ced4v 6cae e6b2ae 6cae 00006cae aa71 aa71 aa71 aa71 aa71 aa71 aa71 -1587 aa72 aa72 aa72 * 4e55 * 8ea1ced5,ced5,8ea1ced5v,ced5v 6cd7 e6b397 6cd7 00006cd7 aa72 aa72 aa72 aa72 aa72 aa72 aa72 -1588 aa73 aa73 aa73 * 4e56 * 8ea1ced6,ced6,8ea1ced6v,ced6v 6cc5 e6b385 6cc5 00006cc5 aa73 aa73 aa73 aa73 aa73 aa73 aa73 -1589 aa74 aa74 aa74 * 4e57 * 8ea1ced7,ced7,8ea1ced7v,ced7v 6cf1 e6b3b1 6cf1 00006cf1 aa74 aa74 aa74 aa74 aa74 aa74 aa74 -1590 aa75 aa75 aa75 * 4e58 * 8ea1ced8,ced8,8ea1ced8v,ced8v 6cbf e6b2bf 6cbf 00006cbf aa75 aa75 aa75 aa75 aa75 aa75 aa75 -1591 aa76 aa76 aa76 * 4e59 * 8ea1ced9,ced9,8ea1ced9v,ced9v 6cbb e6b2bb 6cbb 00006cbb aa76 aa76 aa76 aa76 aa76 aa76 aa76 -1592 aa77 aa77 aa77 * 4e5a * 8ea1ceda,ceda,8ea1cedav,cedav 6ce1 e6b3a1 6ce1 00006ce1 aa77 aa77 aa77 aa77 aa77 aa77 aa77 -1593 aa78 aa78 aa78 * 4e5b * 8ea1cedb,cedb,8ea1cedbv,cedbv 6cdb e6b39b 6cdb 00006cdb aa78 aa78 aa78 aa78 aa78 aa78 aa78 -1594 aa79 aa79 aa79 * 4e5c * 8ea1cedc,cedc,8ea1cedcv,cedcv 6cca e6b38a 6cca 00006cca aa79 aa79 aa79 aa79 aa79 aa79 aa79 -1595 aa7a aa7a aa7a * 4e5d * 8ea1cedd,cedd,8ea1ceddv,ceddv 6cac e6b2ac 6cac 00006cac aa7a aa7a aa7a aa7a aa7a aa7a aa7a -1596 aa7b aa7b aa7b * 4e5e * 8ea1cede,cede,8ea1cedev,cedev 6cef e6b3af 6cef 00006cef aa7b aa7b aa7b aa7b aa7b aa7b aa7b -1597 aa7c aa7c aa7c * 4e5f * 8ea1cedf,cedf,8ea1cedfv,cedfv 6cdc e6b39c 6cdc 00006cdc aa7c aa7c aa7c aa7c aa7c aa7c aa7c -1598 aa7d aa7d aa7d * 4e60 * 8ea1cee0,cee0,8ea1cee0v,cee0v 6cd6 e6b396 6cd6 00006cd6 aa7d aa7d aa7d aa7d aa7d aa7d aa7d -1599 aa7e aa7e aa7e * 4e61 * 8ea1cee1,cee1,8ea1cee1v,cee1v 6ce0 e6b3a0 6ce0 00006ce0 aa7e aa7e aa7e aa7e aa7e aa7e aa7e -1600 aaa1 aaa1 aaa1 * 4e62 * 8ea1cee2,cee2,8ea1cee2v,cee2v 7095 e78295 7095 00007095 aaa1 aaa1 aaa1 aaa1 aaa1 aaa1 aaa1 -1601 aaa2 aaa2 aaa2 * 4e63 * 8ea1cee3,cee3,8ea1cee3v,cee3v 708e e7828e 708e 0000708e aaa2 aaa2 aaa2 aaa2 aaa2 aaa2 aaa2 -1602 aaa3 aaa3 aaa3 * 4e64 * 8ea1cee4,cee4,8ea1cee4v,cee4v 7092 e78292 7092 00007092 aaa3 aaa3 aaa3 aaa3 aaa3 aaa3 aaa3 -1603 aaa4 aaa4 aaa4 * 4e65 * 8ea1cee5,cee5,8ea1cee5v,cee5v 708a e7828a 708a 0000708a aaa4 aaa4 aaa4 aaa4 aaa4 aaa4 aaa4 -1604 aaa5 aaa5 aaa5 * 4e66 * 8ea1cee6,cee6,8ea1cee6v,cee6v 7099 e78299 7099 00007099 aaa5 aaa5 aaa5 aaa5 aaa5 aaa5 aaa5 -1605 aaa6 aaa6 aaa6 * 4e67 * 8ea1cee7,cee7,8ea1cee7v,cee7v 722c e788ac 722c 0000722c aaa6 aaa6 aaa6 aaa6 aaa6 aaa6 aaa6 -1606 aaa7 aaa7 aaa7 * 4e68 * 8ea1cee8,cee8,8ea1cee8v,cee8v 722d e788ad 722d 0000722d aaa7 aaa7 aaa7 aaa7 aaa7 aaa7 aaa7 -1607 aaa8 aaa8 aaa8 * 4e69 * 8ea1cee9,cee9,8ea1cee9v,cee9v 7238 e788b8 7238 00007238 aaa8 aaa8 aaa8 aaa8 aaa8 aaa8 aaa8 -1608 aaa9 aaa9 aaa9 * 4e6a * 8ea1ceea,ceea,8ea1ceeav,ceeav 7248 e78988 7248 00007248 aaa9 aaa9 aaa9 aaa9 aaa9 aaa9 aaa9 -1609 aaaa aaaa aaaa * 4e6b * 8ea1ceeb,ceeb,8ea1ceebv,ceebv 7267 e789a7 7267 00007267 aaaa aaaa aaaa aaaa aaaa aaaa aaaa -1610 aaab aaab aaab * 4e6c * 8ea1ceec,ceec,8ea1ceecv,ceecv 7269 e789a9 7269 00007269 aaab aaab aaab aaab aaab aaab aaab -1611 aaac aaac aaac * 4e6d * 8ea1ceed,ceed,8ea1ceedv,ceedv 72c0 e78b80 72c0 000072c0 aaac aaac aaac aaac aaac aaac aaac -1612 aaad aaad aaad * 4e6e * 8ea1ceee,ceee,8ea1ceeev,ceeev 72ce e78b8e 72ce 000072ce aaad aaad aaad aaad aaad aaad aaad -1613 aaae aaae aaae * 4e6f * 8ea1ceef,ceef,8ea1ceefv,ceefv 72d9 e78b99 72d9 000072d9 aaae aaae aaae aaae aaae aaae aaae -1614 aaaf aaaf aaaf * 4e70 * 8ea1cef0,cef0,8ea1cef0v,cef0v 72d7 e78b97 72d7 000072d7 aaaf aaaf aaaf aaaf aaaf aaaf aaaf -1615 aab0 aab0 aab0 * 4e71 * 8ea1cef1,cef1,8ea1cef1v,cef1v 72d0 e78b90 72d0 000072d0 aab0 aab0 aab0 aab0 aab0 aab0 aab0 -1616 aab1 aab1 aab1 * 4e72 * 8ea1cef2,cef2,8ea1cef2v,cef2v 73a9 e78ea9 73a9 000073a9 aab1 aab1 aab1 aab1 aab1 aab1 aab1 -1617 aab2 aab2 aab2 * 4e73 * 8ea1cef3,cef3,8ea1cef3v,cef3v 73a8 e78ea8 73a8 000073a8 aab2 aab2 aab2 aab2 aab2 aab2 aab2 -1618 aab3 aab3 aab3 * 4e74 * 8ea1cef4,cef4,8ea1cef4v,cef4v 739f e78e9f 739f 0000739f aab3 aab3 aab3 aab3 aab3 aab3 aab3 -1619 aab4 aab4 aab4 * 4e75 * 8ea1cef5,cef5,8ea1cef5v,cef5v 73ab e78eab 73ab 000073ab aab4 aab4 aab4 aab4 aab4 aab4 aab4 -1620 aab5 aab5 aab5 * 4e76 * 8ea1cef6,cef6,8ea1cef6v,cef6v 73a5 e78ea5 73a5 000073a5 aab5 aab5 aab5 aab5 aab5 aab5 aab5 -1621 aab6 aab6 aab6 * 4e77 * 8ea1cef7,cef7,8ea1cef7v,cef7v 753d e794bd 753d 0000753d aab6 aab6 aab6 aab6 aab6 aab6 aab6 -1622 aab7 aab7 aab7 * 4e78 * 8ea1cef8,cef8,8ea1cef8v,cef8v 759d e7969d 759d 0000759d aab7 aab7 aab7 aab7 aab7 aab7 aab7 -1623 aab8 aab8 aab8 * 4e79 * 8ea1cef9,cef9,8ea1cef9v,cef9v 7599 e79699 7599 00007599 aab8 aab8 aab8 aab8 aab8 aab8 aab8 -1624 aab9 aab9 aab9 * 4e7a * 8ea1cefa,cefa,8ea1cefav,cefav 759a e7969a 759a 0000759a aab9 aab9 aab9 aab9 aab9 aab9 aab9 -1625 aaba aaba aaba * 4e7b * 8ea1cefb,cefb,8ea1cefbv,cefbv 7684 e79a84 7684 00007684 aaba aaba aaba aaba aaba aaba aaba -1626 aabb aabb aabb * 4e7c * 8ea1cefc,cefc,8ea1cefcv,cefcv 76c2 e79b82 76c2 000076c2 aabb aabb aabb aabb aabb aabb aabb -1627 aabc aabc aabc * 4e7d * 8ea1cefd,cefd,8ea1cefdv,cefdv 76f2 e79bb2 76f2 000076f2 aabc aabc aabc aabc aabc aabc aabc -1628 aabd aabd aabd * 4e7e * 8ea1cefe,cefe,8ea1cefev,cefev 76f4 e79bb4 76f4 000076f4 aabd aabd aabd aabd aabd aabd aabd -1629 aabe aabe aabe * 4f21 * 8ea1cfa1,cfa1,8ea1cfa1v,cfa1v 77e5 e79fa5 77e5 000077e5 aabe aabe aabe aabe aabe aabe aabe -1630 aabf aabf aabf * 4f22 * 8ea1cfa2,cfa2,8ea1cfa2v,cfa2v 77fd e79fbd 77fd 000077fd aabf aabf aabf aabf aabf aabf aabf -1631 aac0 aac0 aac0 * 4f23 * 8ea1cfa3,cfa3,8ea1cfa3v,cfa3v 793e e7a4be 793e 0000793e aac0 aac0 aac0 aac0 aac0 aac0 aac0 -1632 aac1 aac1 aac1 * 4f24 * 8ea1cfa4,cfa4,8ea1cfa4v,cfa4v 7940 e7a580 7940 00007940 aac1 aac1 aac1 aac1 aac1 aac1 aac1 -1633 aac2 aac2 aac2 * 4f25 * 8ea1cfa5,cfa5,8ea1cfa5v,cfa5v 7941 e7a581 7941 00007941 aac2 aac2 aac2 aac2 aac2 aac2 aac2 -1634 aac3 aac3 aac3 * 4f26 * 8ea1cfa6,cfa6,8ea1cfa6v,cfa6v 79c9 e7a789 79c9 000079c9 aac3 aac3 aac3 aac3 aac3 aac3 aac3 -1635 aac4 aac4 aac4 * 4f27 * 8ea1cfa7,cfa7,8ea1cfa7v,cfa7v 79c8 e7a788 79c8 000079c8 aac4 aac4 aac4 aac4 aac4 aac4 aac4 -1636 aac5 aac5 aac5 * 4f28 * 8ea1cfa8,cfa8,8ea1cfa8v,cfa8v 7a7a e7a9ba 7a7a 00007a7a aac5 aac5 aac5 aac5 aac5 aac5 aac5 -1637 aac6 aac6 aac6 * 4f29 * 8ea1cfa9,cfa9,8ea1cfa9v,cfa9v 7a79 e7a9b9 7a79 00007a79 aac6 aac6 aac6 aac6 aac6 aac6 aac6 -1638 aac7 aac7 aac7 * 4f2a * 8ea1cfaa,cfaa,8ea1cfaav,cfaav 7afa e7abba 7afa 00007afa aac7 aac7 aac7 aac7 aac7 aac7 aac7 -1639 aac8 aac8 aac8 * 4f2b * 8ea1cfab,cfab,8ea1cfabv,cfabv 7cfe e7b3be 7cfe 00007cfe aac8 aac8 aac8 aac8 aac8 aac8 aac8 -1640 aac9 aac9 aac9 * 4f2c * 8ea1cfac,cfac,8ea1cfacv,cfacv 7f54 e7bd94 7f54 00007f54 aac9 aac9 aac9 aac9 aac9 aac9 aac9 -1641 aaca aaca aaca * 4f2d * 8ea1cfad,cfad,8ea1cfadv,cfadv 7f8c e7be8c 7f8c 00007f8c aaca aaca aaca aaca aaca aaca aaca -1642 aacb aacb aacb * 4f2e * 8ea1cfae,cfae,8ea1cfaev,cfaev 7f8b e7be8b 7f8b 00007f8b aacb aacb aacb aacb aacb aacb aacb -1643 aacc aacc aacc * 4f2f * 8ea1cfaf,cfaf,8ea1cfafv,cfafv 8005 e88085,ee8dbc 8005,e37c 00008005,0000e37c 8ecd,aacc aacc aacc aacc aacc aacc 8ecd,aacc -1644 aacd aacd aacd * 4f30 * 8ea1cfb0,cfb0,8ea1cfb0v,cfb0v 80ba e882ba 80ba 000080ba aacd aacd aacd aacd aacd aacd aacd -1645 aace aace aace * 4f31 * 8ea1cfb1,cfb1,8ea1cfb1v,cfb1v 80a5 e882a5 80a5 000080a5 aace aace aace aace aace aace aace -1646 aacf aacf aacf * 4f32 * 8ea1cfb2,cfb2,8ea1cfb2v,cfb2v 80a2 e882a2 80a2 000080a2 aacf aacf aacf aacf aacf aacf aacf -1647 aad0 aad0 aad0 * 4f33 * 8ea1cfb3,cfb3,8ea1cfb3v,cfb3v 80b1 e882b1 80b1 000080b1 aad0 aad0 aad0 aad0 aad0 aad0 aad0 -1648 aad1 aad1 aad1 * 4f34 * 8ea1cfb4,cfb4,8ea1cfb4v,cfb4v 80a1 e882a1 80a1 000080a1 aad1 aad1 aad1 aad1 aad1 aad1 aad1 -1649 aad2 aad2 aad2 * 4f35 * 8ea1cfb5,cfb5,8ea1cfb5v,cfb5v 80ab e882ab 80ab 000080ab aad2 aad2 aad2 aad2 aad2 aad2 aad2 -1650 aad3 aad3 aad3 * 4f36 * 8ea1cfb6,cfb6,8ea1cfb6v,cfb6v 80a9 e882a9 80a9 000080a9 aad3 aad3 aad3 aad3 aad3 aad3 aad3 -1651 aad4 aad4 aad4 * 4f37 * 8ea1cfb7,cfb7,8ea1cfb7v,cfb7v 80b4 e882b4 80b4 000080b4 aad4 aad4 aad4 aad4 aad4 aad4 aad4 -1652 aad5 aad5 aad5 * 4f38 * 8ea1cfb8,cfb8,8ea1cfb8v,cfb8v 80aa e882aa 80aa 000080aa aad5 aad5 aad5 aad5 aad5 aad5 aad5 -1653 aad6 aad6 aad6 * 4f39 * 8ea1cfb9,cfb9,8ea1cfb9v,cfb9v 80af e882af 80af 000080af aad6 aad6 aad6 aad6 aad6 aad6 aad6 -1654 aad7 aad7 aad7 * 4f3a * 8ea1cfba,cfba,8ea1cfbav,cfbav 81e5 e887a5 81e5 000081e5 aad7 aad7 aad7 aad7 aad7 aad7 aad7 -1655 aad8 aad8 aad8 * 4f3b * 8ea1cfbb,cfbb,8ea1cfbbv,cfbbv 81fe e887be 81fe 000081fe aad8 aad8 aad8 aad8 aad8 aad8 aad8 -1656 aad9 aad9 aad9 * 4f3c * 8ea1cfbc,cfbc,8ea1cfbcv,cfbcv 820d e8888d 820d 0000820d aad9 aad9 aad9 aad9 aad9 aad9 aad9 -1657 aada aada aada * 4f3d * 8ea1cfbd,cfbd,8ea1cfbdv,cfbdv 82b3 e88ab3 82b3 000082b3 aada aada aada aada aada aada aada -1658 aadb aadb aadb * 4f3e * 8ea1cfbe,cfbe,8ea1cfbev,cfbev 829d e88a9d 829d 0000829d aadb aadb aadb aadb aadb aadb aadb -1659 aadc aadc aadc * 4f3f * 8ea1cfbf,cfbf,8ea1cfbfv,cfbfv 8299 e88a99 8299 00008299 aadc aadc aadc aadc aadc aadc aadc -1660 aadd aadd aadd * 4f40 * 8ea1cfc0,cfc0,8ea1cfc0v,cfc0v 82ad e88aad 82ad 000082ad aadd aadd aadd aadd aadd aadd aadd -1661 aade aade aade * 4f41 * 8ea1cfc1,cfc1,8ea1cfc1v,cfc1v 82bd e88abd 82bd 000082bd aade aade aade aade aade aade aade -1662 aadf aadf aadf * 4f42 * 8ea1cfc2,cfc2,8ea1cfc2v,cfc2v 829f e88a9f 829f 0000829f aadf aadf aadf aadf aadf aadf aadf -1663 aae0 aae0 aae0 * 4f43 * 8ea1cfc3,cfc3,8ea1cfc3v,cfc3v 82b9 e88ab9 82b9 000082b9 aae0 aae0 aae0 aae0 aae0 aae0 aae0 -1664 aae1 aae1 aae1 * 4f44 * 8ea1cfc4,cfc4,8ea1cfc4v,cfc4v 82b1 e88ab1 82b1 000082b1 aae1 aae1 aae1 aae1 aae1 aae1 aae1 -1665 aae2 aae2 aae2 * 4f45 * 8ea1cfc5,cfc5,8ea1cfc5v,cfc5v 82ac e88aac 82ac 000082ac aae2 aae2 aae2 aae2 aae2 aae2 aae2 -1666 aae3 aae3 aae3 * 4f46 * 8ea1cfc6,cfc6,8ea1cfc6v,cfc6v 82a5 e88aa5 82a5 000082a5 aae3 aae3 aae3 aae3 aae3 aae3 aae3 -1667 aae4 aae4 aae4 * 4f47 * 8ea1cfc7,cfc7,8ea1cfc7v,cfc7v 82af e88aaf 82af 000082af aae4 aae4 aae4 aae4 aae4 aae4 aae4 -1668 aae5 aae5 aae5 * 4f48 * 8ea1cfc8,cfc8,8ea1cfc8v,cfc8v 82b8 e88ab8 82b8 000082b8 aae5 aae5 aae5 aae5 aae5 aae5 aae5 -1669 aae6 aae6 aae6 * 4f49 * 8ea1cfc9,cfc9,8ea1cfc9v,cfc9v 82a3 e88aa3 82a3 000082a3 aae6 aae6 aae6 aae6 aae6 aae6 aae6 -1670 aae7 aae7 aae7 * 4f4a * 8ea1cfca,cfca,8ea1cfcav,cfcav 82b0 e88ab0 82b0 000082b0 aae7 aae7 aae7 aae7 aae7 aae7 aae7 -1671 aae8 aae8 aae8 * 4f4b * 8ea1cfcb,cfcb,8ea1cfcbv,cfcbv 82be e88abe 82be 000082be aae8 aae8 aae8 aae8 aae8 aae8 aae8 -1672 aae9 aae9 aae9 * 4f4c * 8ea1cfcc,cfcc,8ea1cfccv,cfccv 82b7 e88ab7 82b7 000082b7 aae9 aae9 aae9 aae9 aae9 aae9 aae9 -1673 aaea aaea aaea * 4f4d * 8ea1cfcd,cfcd,8ea1cfcdv,cfcdv 864e e8998e 864e 0000864e aaea aaea aaea aaea aaea aaea aaea -1674 aaeb aaeb aaeb * 4f4e * 8ea1cfce,cfce,8ea1cfcev,cfcev 8671 e899b1 8671 00008671 aaeb aaeb aaeb aaeb aaeb aaeb aaeb -1675 aaec aaec aaec * 4f4f * 8ea1cfcf,cfcf,8ea1cfcfv,cfcfv 521d e5889d 521d 0000521d aaec aaec aaec aaec aaec aaec aaec -1676 aaed aaed aaed * 4f50 * 8ea1cfd0,cfd0,8ea1cfd0v,cfd0v 8868 e8a1a8 8868 00008868 aaed aaed aaed aaed aaed aaed aaed -1677 aaee aaee aaee * 4f51 * 8ea1cfd1,cfd1,8ea1cfd1v,cfd1v 8ecb e8bb8b 8ecb 00008ecb aaee aaee aaee aaee aaee aaee aaee -1678 aaef aaef aaef * 4f52 * 8ea1cfd2,cfd2,8ea1cfd2v,cfd2v 8fce e8bf8e 8fce 00008fce aaef aaef aaef aaef aaef aaef aaef -1679 aaf0 aaf0 aaf0 * 4f53 * 8ea1cfd3,cfd3,8ea1cfd3v,cfd3v 8fd4 e8bf94 8fd4 00008fd4 aaf0 aaf0 aaf0 aaf0 aaf0 aaf0 aaf0 -1680 aaf1 aaf1 aaf1 * 4f54 * 8ea1cfd4,cfd4,8ea1cfd4v,cfd4v 8fd1 e8bf91 8fd1 00008fd1 aaf1 aaf1 aaf1 aaf1 aaf1 aaf1 aaf1 -1681 aaf2 aaf2 aaf2 * 4f55 * 8ea1cfd5,cfd5,8ea1cfd5v,cfd5v 90b5 e982b5 90b5 000090b5 aaf2 aaf2 aaf2 aaf2 aaf2 aaf2 aaf2 -1682 aaf3 aaf3 aaf3 * 4f56 * 8ea1cfd6,cfd6,8ea1cfd6v,cfd6v 90b8 e982b8 90b8 000090b8 aaf3 aaf3 aaf3 aaf3 aaf3 aaf3 aaf3 -1683 aaf4 aaf4 aaf4 * 4f57 * 8ea1cfd7,cfd7,8ea1cfd7v,cfd7v 90b1 e982b1 90b1 000090b1 aaf4 aaf4 aaf4 aaf4 aaf4 aaf4 aaf4 -1684 aaf5 aaf5 aaf5 * 4f58 * 8ea1cfd8,cfd8,8ea1cfd8v,cfd8v 90b6 e982b6 90b6 000090b6 aaf5 aaf5 aaf5 aaf5 aaf5 aaf5 aaf5 -1685 aaf6 aaf6 aaf6 * 4f59 * 8ea1cfd9,cfd9,8ea1cfd9v,cfd9v 91c7 e98787 91c7 000091c7 aaf6 aaf6 aaf6 aaf6 aaf6 aaf6 aaf6 -1686 aaf7 aaf7 aaf7 * 2868,4f5a * 8ea1a8e8,8ea1cfda,a8e8,cfda,8ea1a8e8v,8ea1cfdav,a8e8v,cfdav 91d1 e98791,e2bea6 91d1,2fa6 000091d1,00002fa6 aaf7 aaf7 aaf7 aaf7 aaf7 aaf7 aaf7 -1687 aaf8 aaf8 aaf8 * 2869,4f5b * 8ea1a8e9,8ea1cfdb,a8e9,cfdb,8ea1a8e9v,8ea1cfdbv,a8e9v,cfdbv 9577 e995b7,e2bea7 9577,2fa7 00009577,00002fa7 aaf8 aaf8 aaf8 aaf8 aaf8 aaf8 aaf8 -1688 aaf9 aaf9 aaf9 * 286a,4f5c * 8ea1a8ea,8ea1cfdc,a8ea,cfdc,8ea1a8eav,8ea1cfdcv,a8eav,cfdcv 9580 e99680,e2bea8 9580,2fa8 00009580,00002fa8 aaf9 aaf9 aaf9 aaf9 aaf9 aaf9 aaf9 -1689 aafa aafa aafa * 286b,4f5d * 8ea1a8eb,8ea1cfdd,a8eb,cfdd,8ea1a8ebv,8ea1cfddv,a8ebv,cfddv 961c e9989c,e2bea9 961c,2fa9 0000961c,00002fa9 aafa aafa aafa aafa aafa aafa aafa -1690 aafb aafb aafb * 4f5e * 8ea1cfde,cfde,8ea1cfdev,cfdev 9640 e99980 9640 00009640 aafb aafb aafb aafb aafb aafb aafb -1691 aafc aafc aafc * 4f5f * 8ea1cfdf,cfdf,8ea1cfdfv,cfdfv 963f e998bf 963f 0000963f aafc aafc aafc aafc aafc aafc aafc -1692 aafd aafd aafd * 4f60 * 8ea1cfe0,cfe0,8ea1cfe0v,cfe0v 963b e998bb 963b 0000963b aafd aafd aafd aafd aafd aafd aafd -1693 aafe aafe aafe * 4f61 * 8ea1cfe1,cfe1,8ea1cfe1v,cfe1v 9644 e99984 9644 00009644 aafe aafe aafe aafe aafe aafe aafe -1694 ab40 ab40 ab40 * 4f62 * 8ea1cfe2,cfe2,8ea1cfe2v,cfe2v 9642 e99982 9642 00009642 ab40 ab40 ab40 ab40 ab40 ab40 ab40 -1695 ab41 ab41 ab41 * 286d,4f63 * 8ea1a8ed,8ea1cfe3,a8ed,cfe3,8ea1a8edv,8ea1cfe3v,a8edv,cfe3v 96b9 e99ab9,e2beab 96b9,2fab 000096b9,00002fab ab41 ab41 ab41 ab41 ab41 ab41 ab41 -1696 ab42 ab42 ab42 * 286e,4f64 * 8ea1a8ee,8ea1cfe4,a8ee,cfe4,8ea1a8eev,8ea1cfe4v,a8eev,cfe4v 96e8 e99ba8,e2beac 96e8,2fac 000096e8,00002fac ab42 ab42 ab42 ab42 ab42 ab42 ab42 -1697 ab43 ab43 ab43 * 286f,4f65 * 8ea1a8ef,8ea1cfe5,a8ef,cfe5,8ea1a8efv,8ea1cfe5v,a8efv,cfe5v 9752 e99d92 9752 00009752 ab43 ab43 ab43 ab43 ab43 ab43 ab43 -1698 ab44 ab44 ab44 * 2870,4f66 * 8ea1a8f0,8ea1cfe6,a8f0,cfe6,8ea1a8f0v,8ea1cfe6v,a8f0v,cfe6v 975e e2beae,e99d9e 2fae,975e 00002fae,0000975e ab44 ab44 ab44 ab44 ab44 ab44 ab44 -1699 ab45 ab45 ab45 * 4f67 * 8ea1cfe7,cfe7,8ea1cfe7v,cfe7v 4e9f e4ba9f 4e9f 00004e9f ab45 ab45 ab45 ab45 ab45 ab45 ab45 -1700 ab46 ab46 ab46 * 4f68 * 8ea1cfe8,cfe8,8ea1cfe8v,cfe8v 4ead e4baad 4ead 00004ead ab46 ab46 ab46 ab46 ab46 ab46 ab46 -1701 ab47 ab47 ab47 * 4f69 * 8ea1cfe9,cfe9,8ea1cfe9v,cfe9v 4eae e4baae 4eae 00004eae ab47 ab47 ab47 ab47 ab47 ab47 ab47 -1702 ab48 ab48 ab48 * 4f6a * 8ea1cfea,cfea,8ea1cfeav,cfeav 4fe1 e4bfa1 4fe1 00004fe1 ab48 ab48 ab48 ab48 ab48 ab48 ab48 -1703 ab49 ab49 ab49 * 4f6b * 8ea1cfeb,cfeb,8ea1cfebv,cfebv 4fb5 e4beb5 4fb5 00004fb5 ab49 ab49 ab49 ab49 ab49 ab49 ab49 -1704 ab4a ab4a ab4a * 4f6c * 8ea1cfec,cfec,8ea1cfecv,cfecv 4faf e4beaf 4faf 00004faf ab4a ab4a ab4a ab4a ab4a ab4a ab4a -1705 ab4b ab4b ab4b * 4f6d * 8ea1cfed,cfed,8ea1cfedv,cfedv 4fbf e4bebf 4fbf 00004fbf ab4b ab4b ab4b ab4b ab4b ab4b ab4b -1706 ab4c ab4c ab4c * 4f6e * 8ea1cfee,cfee,8ea1cfeev,cfeev 4fe0 e4bfa0 4fe0 00004fe0 ab4c ab4c ab4c ab4c ab4c ab4c ab4c -1707 ab4d ab4d ab4d * 4f6f * 8ea1cfef,cfef,8ea1cfefv,cfefv 4fd1 e4bf91 4fd1 00004fd1 ab4d ab4d ab4d ab4d ab4d ab4d ab4d -1708 ab4e ab4e ab4e * 4f70 * 8ea1cff0,cff0,8ea1cff0v,cff0v 4fcf e4bf8f 4fcf 00004fcf ab4e ab4e ab4e ab4e ab4e ab4e ab4e -1709 ab4f ab4f ab4f * 4f71 * 8ea1cff1,cff1,8ea1cff1v,cff1v 4fdd e4bf9d 4fdd 00004fdd ab4f ab4f ab4f ab4f ab4f ab4f ab4f -1710 ab50 ab50 ab50 * 4f72 * 8ea1cff2,cff2,8ea1cff2v,cff2v 4fc3 e4bf83 4fc3 00004fc3 ab50 ab50 ab50 ab50 ab50 ab50 ab50 -1711 ab51 ab51 ab51 * 4f73 * 8ea1cff3,cff3,8ea1cff3v,cff3v 4fb6 e4beb6 4fb6 00004fb6 ab51 ab51 ab51 ab51 ab51 ab51 ab51 -1712 ab52 ab52 ab52 * 4f74 * 8ea1cff4,cff4,8ea1cff4v,cff4v 4fd8 e4bf98 4fd8 00004fd8 ab52 ab52 ab52 ab52 ab52 ab52 ab52 -1713 ab53 ab53 ab53 * 4f75 * 8ea1cff5,cff5,8ea1cff5v,cff5v 4fdf e4bf9f 4fdf 00004fdf ab53 ab53 ab53 ab53 ab53 ab53 ab53 -1714 ab54 ab54 ab54 * 4f76 * 8ea1cff6,cff6,8ea1cff6v,cff6v 4fca e4bf8a 4fca 00004fca ab54 ab54 ab54 ab54 ab54 ab54 ab54 -1715 ab55 ab55 ab55 * 4f77 * 8ea1cff7,cff7,8ea1cff7v,cff7v 4fd7 e4bf97 4fd7 00004fd7 ab55 ab55 ab55 ab55 ab55 ab55 ab55 -1716 ab56 ab56 ab56 * 4f78 * 8ea1cff8,cff8,8ea1cff8v,cff8v 4fae e4beae 4fae 00004fae ab56 ab56 ab56 ab56 ab56 ab56 ab56 -1717 ab57 ab57 ab57 * 4f79 * 8ea1cff9,cff9,8ea1cff9v,cff9v 4fd0 e4bf90 4fd0 00004fd0 ab57 ab57 ab57 ab57 ab57 ab57 ab57 -1718 ab58 ab58 ab58 * 4f7a * 8ea1cffa,cffa,8ea1cffav,cffav 4fc4 e4bf84 4fc4 00004fc4 ab58 ab58 ab58 ab58 ab58 ab58 ab58 -1719 ab59 ab59 ab59 * 4f7b * 8ea1cffb,cffb,8ea1cffbv,cffbv 4fc2 e4bf82 4fc2 00004fc2 ab59 ab59 ab59 ab59 ab59 ab59 ab59 -1720 ab5a ab5a ab5a * 4f7c * 8ea1cffc,cffc,8ea1cffcv,cffcv 4fda e4bf9a 4fda 00004fda ab5a ab5a ab5a ab5a ab5a ab5a ab5a -1721 ab5b ab5b ab5b * 4f7d * 8ea1cffd,cffd,8ea1cffdv,cffdv 4fce e4bf8e 4fce 00004fce ab5b ab5b ab5b ab5b ab5b ab5b ab5b -1722 ab5c ab5c ab5c * 4f7e * 8ea1cffe,cffe,8ea1cffev,cffev 4fde e4bf9e 4fde 00004fde ab5c ab5c ab5c ab5c ab5c ab5c ab5c -1723 ab5d ab5d ab5d * 5021 * 8ea1d0a1,d0a1,8ea1d0a1v,d0a1v 4fb7 e4beb7 4fb7 00004fb7 ab5d ab5d ab5d ab5d ab5d ab5d ab5d -1724 ab5e ab5e ab5e * 5022 * 8ea1d0a2,d0a2,8ea1d0a2v,d0a2v 5157 e58597 5157 00005157 ab5e ab5e ab5e ab5e ab5e ab5e ab5e -1725 ab5f ab5f ab5f * 5023 * 8ea1d0a3,d0a3,8ea1d0a3v,d0a3v 5192 e58692 5192 00005192 ab5f ab5f ab5f ab5f ab5f ab5f ab5f -1726 ab60 ab60 ab60 * 5024 * 8ea1d0a4,d0a4,8ea1d0a4v,d0a4v 5191 e58691 5191 00005191 ab60 ab60 ab60 ab60 ab60 ab60 ab60 -1727 ab61 ab61 ab61 * 5025 * 8ea1d0a5,d0a5,8ea1d0a5v,d0a5v 51a0 e586a0 51a0 000051a0 ab61 ab61 ab61 ab61 ab61 ab61 ab61 -1728 ab62 ab62 ab62 * 5026 * 8ea1d0a6,d0a6,8ea1d0a6v,d0a6v 524e e5898e 524e 0000524e ab62 ab62 ab62 ab62 ab62 ab62 ab62 -1729 ab63 ab63 ab63 * 5027 * 8ea1d0a7,d0a7,8ea1d0a7v,d0a7v 5243 e58983 5243 00005243 ab63 ab63 ab63 ab63 ab63 ab63 ab63 -1730 ab64 ab64 ab64 * 5028 * 8ea1d0a8,d0a8,8ea1d0a8v,d0a8v 524a e5898a 524a 0000524a ab64 ab64 ab64 ab64 ab64 ab64 ab64 -1731 ab65 ab65 ab65 * 5029 * 8ea1d0a9,d0a9,8ea1d0a9v,d0a9v 524d e5898d 524d 0000524d ab65 ab65 ab65 ab65 ab65 ab65 ab65 -1732 ab66 ab66 ab66 * 502a * 8ea1d0aa,d0aa,8ea1d0aav,d0aav 524c e5898c 524c 0000524c ab66 ab66 ab66 ab66 ab66 ab66 ab66 -1733 ab67 ab67 ab67 * 502b * 8ea1d0ab,d0ab,8ea1d0abv,d0abv 524b e5898b 524b 0000524b ab67 ab67 ab67 ab67 ab67 ab67 ab67 -1734 ab68 ab68 ab68 * 502c * 8ea1d0ac,d0ac,8ea1d0acv,d0acv 5247 e58987 5247 00005247 ab68 ab68 ab68 ab68 ab68 ab68 ab68 -1735 ab69 ab69 ab69 * 502d * 8ea1d0ad,d0ad,8ea1d0adv,d0adv 52c7 e58b87 52c7 000052c7 ab69 ab69 ab69 ab69 ab69 ab69 ab69 -1736 ab6a ab6a ab6a * 502e * 8ea1d0ae,d0ae,8ea1d0aev,d0aev 52c9 e58b89 52c9 000052c9 ab6a ab6a ab6a ab6a ab6a ab6a ab6a -1737 ab6b ab6b ab6b * 502f * 8ea1d0af,d0af,8ea1d0afv,d0afv 52c3 e58b83 52c3 000052c3 ab6b ab6b ab6b ab6b ab6b ab6b ab6b -1738 ab6c ab6c ab6c * 5030 * 8ea1d0b0,d0b0,8ea1d0b0v,d0b0v 52c1 e58b81 52c1 000052c1 ab6c ab6c ab6c ab6c ab6c ab6c ab6c -1739 ab6d ab6d ab6d * 5031 * 8ea1d0b1,d0b1,8ea1d0b1v,d0b1v 530d e58c8d 530d 0000530d ab6d ab6d ab6d ab6d ab6d ab6d ab6d -1740 ab6e ab6e ab6e * 5032 * 8ea1d0b2,d0b2,8ea1d0b2v,d0b2v 5357 e58d97 5357 00005357 ab6e ab6e ab6e ab6e ab6e ab6e ab6e -1741 ab6f ab6f ab6f * 5033 * 8ea1d0b3,d0b3,8ea1d0b3v,d0b3v 537b e58dbb 537b 0000537b ab6f ab6f ab6f ab6f ab6f ab6f ab6f -1742 ab70 ab70 ab70 * 5034 * 8ea1d0b4,d0b4,8ea1d0b4v,d0b4v 539a e58e9a 539a 0000539a ab70 ab70 ab70 ab70 ab70 ab70 ab70 -1743 ab71 ab71 ab71 * 5035 * 8ea1d0b5,d0b5,8ea1d0b5v,d0b5v 53db e58f9b 53db 000053db ab71 ab71 ab71 ab71 ab71 ab71 ab71 -1744 ab72 ab72 ab72 * 5036 * 8ea1d0b6,d0b6,8ea1d0b6v,d0b6v 54ac e592ac 54ac 000054ac ab72 ab72 ab72 ab72 ab72 ab72 ab72 -1745 ab73 ab73 ab73 * 5037 * 8ea1d0b7,d0b7,8ea1d0b7v,d0b7v 54c0 e59380 54c0 000054c0 ab73 ab73 ab73 ab73 ab73 ab73 ab73 -1746 ab74 ab74 ab74 * 5038 * 8ea1d0b8,d0b8,8ea1d0b8v,d0b8v 54a8 e592a8 54a8 000054a8 ab74 ab74 ab74 ab74 ab74 ab74 ab74 -1747 ab75 ab75 ab75 * 5039 * 8ea1d0b9,d0b9,8ea1d0b9v,d0b9v 54ce e5938e 54ce 000054ce ab75 ab75 ab75 ab75 ab75 ab75 ab75 -1748 ab76 ab76 ab76 * 503a * 8ea1d0ba,d0ba,8ea1d0bav,d0bav 54c9 e59389 54c9 000054c9 ab76 ab76 ab76 ab76 ab76 ab76 ab76 -1749 ab77 ab77 ab77 * 503b * 8ea1d0bb,d0bb,8ea1d0bbv,d0bbv 54b8 e592b8 54b8 000054b8 ab77 ab77 ab77 ab77 ab77 ab77 ab77 -1750 ab78 ab78 ab78 * 503c * 8ea1d0bc,d0bc,8ea1d0bcv,d0bcv 54a6 e592a6 54a6 000054a6 ab78 ab78 ab78 ab78 ab78 ab78 ab78 -1751 ab79 ab79 ab79 * 503d * 8ea1d0bd,d0bd,8ea1d0bdv,d0bdv 54b3 e592b3 54b3 000054b3 ab79 ab79 ab79 ab79 ab79 ab79 ab79 -1752 ab7a ab7a ab7a * 503e * 8ea1d0be,d0be,8ea1d0bev,d0bev 54c7 e59387 54c7 000054c7 ab7a ab7a ab7a ab7a ab7a ab7a ab7a -1753 ab7b ab7b ab7b * 503f * 8ea1d0bf,d0bf,8ea1d0bfv,d0bfv 54c2 e59382 54c2 000054c2 ab7b ab7b ab7b ab7b ab7b ab7b ab7b -1754 ab7c ab7c ab7c * 5040 * 8ea1d0c0,d0c0,8ea1d0c0v,d0c0v 54bd e592bd 54bd 000054bd ab7c ab7c ab7c ab7c ab7c ab7c ab7c -1755 ab7d ab7d ab7d * 5041 * 8ea1d0c1,d0c1,8ea1d0c1v,d0c1v 54aa e592aa 54aa 000054aa ab7d ab7d ab7d ab7d ab7d ab7d ab7d -1756 ab7e ab7e ab7e * 5042 * 8ea1d0c2,d0c2,8ea1d0c2v,d0c2v 54c1 e59381 54c1 000054c1 ab7e ab7e ab7e ab7e ab7e ab7e ab7e -1757 aba1 aba1 aba1 * 5043 * 8ea1d0c3,d0c3,8ea1d0c3v,d0c3v 54c4 e59384 54c4 000054c4 aba1 aba1 aba1 aba1 aba1 aba1 aba1 -1758 aba2 aba2 aba2 * 5044 * 8ea1d0c4,d0c4,8ea1d0c4v,d0c4v 54c8 e59388 54c8 000054c8 aba2 aba2 aba2 aba2 aba2 aba2 aba2 -1759 aba3 aba3 aba3 * 5045 * 8ea1d0c5,d0c5,8ea1d0c5v,d0c5v 54af e592af 54af 000054af aba3 aba3 aba3 aba3 aba3 aba3 aba3 -1760 aba4 aba4 aba4 * 5046 * 8ea1d0c6,d0c6,8ea1d0c6v,d0c6v 54ab e592ab 54ab 000054ab aba4 aba4 aba4 aba4 aba4 aba4 aba4 -1761 aba5 aba5 aba5 * 5047 * 8ea1d0c7,d0c7,8ea1d0c7v,d0c7v 54b1 e592b1 54b1 000054b1 aba5 aba5 aba5 aba5 aba5 aba5 aba5 -1762 aba6 aba6 aba6 * 5048 * 8ea1d0c8,d0c8,8ea1d0c8v,d0c8v 54bb e592bb 54bb 000054bb aba6 aba6 aba6 aba6 aba6 aba6 aba6 -1763 aba7 aba7 aba7 * 5049 * 8ea1d0c9,d0c9,8ea1d0c9v,d0c9v 54a9 e592a9 54a9 000054a9 aba7 aba7 aba7 aba7 aba7 aba7 aba7 -1764 aba8 aba8 aba8 * 504a * 8ea1d0ca,d0ca,8ea1d0cav,d0cav 54a7 e592a7 54a7 000054a7 aba8 aba8 aba8 aba8 aba8 aba8 aba8 -1765 aba9 aba9 aba9 * 504b * 8ea1d0cb,d0cb,8ea1d0cbv,d0cbv 54bf e592bf 54bf 000054bf aba9 aba9 aba9 aba9 aba9 aba9 aba9 -1766 abaa abaa abaa * 504c * 8ea1d0cc,d0cc,8ea1d0ccv,d0ccv 56ff e59bbf 56ff 000056ff abaa abaa abaa abaa abaa abaa abaa -1767 abab abab abab * 504d * 8ea1d0cd,d0cd,8ea1d0cdv,d0cdv 5782 e59e82 5782 00005782 abab abab abab abab abab abab abab -1768 abac abac abac * 504e * 8ea1d0ce,d0ce,8ea1d0cev,d0cev 578b e59e8b 578b 0000578b abac abac abac abac abac abac abac -1769 abad abad abad * 504f * 8ea1d0cf,d0cf,8ea1d0cfv,d0cfv 57a0 e59ea0 57a0 000057a0 abad abad abad abad abad abad abad -1770 abae abae abae * 5050 * 8ea1d0d0,d0d0,8ea1d0d0v,d0d0v 57a3 e59ea3 57a3 000057a3 abae abae abae abae abae abae abae -1771 abaf abaf abaf * 5051 * 8ea1d0d1,d0d1,8ea1d0d1v,d0d1v 57a2 e59ea2 57a2 000057a2 abaf abaf abaf abaf abaf abaf abaf -1772 abb0 abb0 abb0 * 5052 * 8ea1d0d2,d0d2,8ea1d0d2v,d0d2v 57ce e59f8e 57ce 000057ce abb0 abb0 abb0 abb0 abb0 abb0 abb0 -1773 abb1 abb1 abb1 * 5053 * 8ea1d0d3,d0d3,8ea1d0d3v,d0d3v 57ae e59eae 57ae 000057ae abb1 abb1 abb1 abb1 abb1 abb1 abb1 -1774 abb2 abb2 abb2 * 5054 * 8ea1d0d4,d0d4,8ea1d0d4v,d0d4v 5793 e59e93 5793 00005793 abb2 abb2 abb2 abb2 abb2 abb2 abb2 -1775 abb3 abb3 abb3 * 5055 * 8ea1d0d5,d0d5,8ea1d0d5v,d0d5v 5955 e5a595 5955 00005955 abb3 abb3 abb3 abb3 abb3 abb3 abb3 -1776 abb4 abb4 abb4 * 5056 * 8ea1d0d6,d0d6,8ea1d0d6v,d0d6v 5951 e5a591 5951 00005951 abb4 abb4 abb4 abb4 abb4 abb4 abb4 -1777 abb5 abb5 abb5 * 5057 * 8ea1d0d7,d0d7,8ea1d0d7v,d0d7v 594f e5a58f 594f 0000594f abb5 abb5 abb5 abb5 abb5 abb5 abb5 -1778 abb6 abb6 abb6 * 5058 * 8ea1d0d8,d0d8,8ea1d0d8v,d0d8v 594e e5a58e 594e 0000594e abb6 abb6 abb6 abb6 abb6 abb6 abb6 -1779 abb7 abb7 abb7 * 5059 * 8ea1d0d9,d0d9,8ea1d0d9v,d0d9v 5950 e5a590 5950 00005950 abb7 abb7 abb7 abb7 abb7 abb7 abb7 -1780 abb8 abb8 abb8 * 505a * 8ea1d0da,d0da,8ea1d0dav,d0dav 59dc e5a79c 59dc 000059dc abb8 abb8 abb8 abb8 abb8 abb8 abb8 -1781 abb9 abb9 abb9 * 505b * 8ea1d0db,d0db,8ea1d0dbv,d0dbv 59d8 e5a798 59d8 000059d8 abb9 abb9,fbf7 91a6,abb9 abb9 abb9 abb9 abb9 -1782 abba abba abba * 505c * 8ea1d0dc,d0dc,8ea1d0dcv,d0dcv 59ff e5a7bf 59ff 000059ff abba abba abba abba abba abba abba -1783 abbb abbb abbb * 505d * 8ea1d0dd,d0dd,8ea1d0ddv,d0ddv 59e3 e5a7a3 59e3 000059e3 abbb abbb abbb abbb abbb abbb abbb -1784 abbc abbc abbc * 505e * 8ea1d0de,d0de,8ea1d0dev,d0dev 59e8 e5a7a8 59e8 000059e8 abbc abbc abbc abbc abbc abbc abbc -1785 abbd abbd abbd * 505f * 8ea1d0df,d0df,8ea1d0dfv,d0dfv 5a03 e5a883 5a03 00005a03 abbd abbd abbd abbd abbd abbd abbd -1786 abbe abbe abbe * 5060 * 8ea1d0e0,d0e0,8ea1d0e0v,d0e0v 59e5 e5a7a5 59e5 000059e5 abbe abbe abbe abbe abbe abbe abbe -1787 abbf abbf abbf * 5061 * 8ea1d0e1,d0e1,8ea1d0e1v,d0e1v 59ea e5a7aa 59ea 000059ea abbf abbf abbf abbf abbf abbf abbf -1788 abc0 abc0 abc0 * 5062 * 8ea1d0e2,d0e2,8ea1d0e2v,d0e2v 59da e5a79a 59da 000059da abc0 abc0 abc0 abc0 abc0 abc0 abc0 -1789 abc1 abc1 abc1 * 5063 * 8ea1d0e3,d0e3,8ea1d0e3v,d0e3v 59e6 e5a7a6 59e6 000059e6 abc1 abc1 abc1 abc1 abc1 abc1 abc1 -1790 abc2 abc2 abc2 * 5064 * 8ea1d0e4,d0e4,8ea1d0e4v,d0e4v 5a01 e5a881 5a01 00005a01 abc2 abc2 abc2 abc2 abc2 abc2 abc2 -1791 abc3 abc3 abc3 * 5065 * 8ea1d0e5,d0e5,8ea1d0e5v,d0e5v 59fb e5a7bb 59fb 000059fb abc3 abc3 abc3 abc3 abc3 abc3 abc3 -1792 abc4 abc4 abc4 * 5066 * 8ea1d0e6,d0e6,8ea1d0e6v,d0e6v 5b69 e5ada9 5b69 00005b69 abc4 abc4 abc4 abc4 abc4 abc4 abc4 -1793 abc5 abc5 abc5 * 5067 * 8ea1d0e7,d0e7,8ea1d0e7v,d0e7v 5ba3 e5aea3 5ba3 00005ba3 abc5 abc5 abc5 abc5 abc5 abc5 abc5 -1794 abc6 abc6 abc6 * 5068 * 8ea1d0e8,d0e8,8ea1d0e8v,d0e8v 5ba6 e5aea6 5ba6 00005ba6 abc6 abc6 abc6 abc6 abc6 abc6 abc6 -1795 abc7 abc7 abc7 * 5069 * 8ea1d0e9,d0e9,8ea1d0e9v,d0e9v 5ba4 e5aea4 5ba4 00005ba4 abc7 abc7 abc7 abc7 abc7 abc7 abc7 -1796 abc8 abc8 abc8 * 506a * 8ea1d0ea,d0ea,8ea1d0eav,d0eav 5ba2 e5aea2 5ba2 00005ba2 abc8 abc8 abc8 abc8 abc8 abc8 abc8 -1797 abc9 abc9 abc9 * 506b * 8ea1d0eb,d0eb,8ea1d0ebv,d0ebv 5ba5 e5aea5 5ba5 00005ba5 abc9 abc9 abc9 abc9 abc9 abc9 abc9 -1798 abca abca abca * 506c * 8ea1d0ec,d0ec,8ea1d0ecv,d0ecv 5c01 e5b081 5c01 00005c01 abca abca abca abca abca abca abca -1799 abcb abcb abcb * 506d * 8ea1d0ed,d0ed,8ea1d0edv,d0edv 5c4e e5b18e 5c4e 00005c4e abcb abcb abcb abcb abcb abcb abcb -1800 abcc abcc abcc * 506e * 8ea1d0ee,d0ee,8ea1d0eev,d0eev 5c4f e5b18f 5c4f 00005c4f abcc abcc abcc abcc abcc abcc abcc -1801 abcd abcd abcd * 506f * 8ea1d0ef,d0ef,8ea1d0efv,d0efv 5c4d e5b18d 5c4d 00005c4d abcd abcd abcd abcd abcd abcd abcd -1802 abce abce abce * 5070 * 8ea1d0f0,d0f0,8ea1d0f0v,d0f0v 5c4b e5b18b 5c4b 00005c4b abce abce abce abce abce abce abce -1803 abcf abcf abcf * 5071 * 8ea1d0f1,d0f1,8ea1d0f1v,d0f1v 5cd9 e5b399 5cd9 00005cd9 abcf abcf abcf abcf abcf abcf abcf -1804 abd0 abd0 abd0 * 5072 * 8ea1d0f2,d0f2,8ea1d0f2v,d0f2v 5cd2 e5b392 5cd2 00005cd2 abd0 abd0 abd0 abd0 abd0 abd0 abd0 -1805 abd1 abd1 abd1 * 5073 * 8ea1d0f3,d0f3,8ea1d0f3v,d0f3v 5df7 e5b7b7 5df7 00005df7 abd1 abd1 abd1 abd1 abd1 abd1 abd1 -1806 abd2 abd2 abd2 * 5074 * 8ea1d0f4,d0f4,8ea1d0f4v,d0f4v 5e1d e5b89d 5e1d 00005e1d abd2 abd2 abd2 abd2 abd2 abd2 abd2 -1807 abd3 abd3 abd3 * 5075 * 8ea1d0f5,d0f5,8ea1d0f5v,d0f5v 5e25 e5b8a5 5e25 00005e25 abd3 abd3 abd3 abd3 abd3 abd3 abd3 -1808 abd4 abd4 abd4 * 5076 * 8ea1d0f6,d0f6,8ea1d0f6v,d0f6v 5e1f e5b89f 5e1f 00005e1f abd4 abd4 abd4 abd4 abd4 abd4 abd4 -1809 abd5 abd5 abd5 * 5077 * 8ea1d0f7,d0f7,8ea1d0f7v,d0f7v 5e7d e5b9bd 5e7d 00005e7d abd5 abd5 abd5 abd5 abd5 abd5 abd5 -1810 abd6 abd6 abd6 * 5078 * 8ea1d0f8,d0f8,8ea1d0f8v,d0f8v 5ea0 e5baa0 5ea0 00005ea0 abd6 abd6 abd6 abd6 abd6 abd6 abd6 -1811 abd7 abd7 abd7 * 5079 * 8ea1d0f9,d0f9,8ea1d0f9v,d0f9v 5ea6 e5baa6 5ea6 00005ea6 abd7 abd7 abd7 abd7 abd7 abd7 abd7 -1812 abd8 abd8 abd8 * 507a * 8ea1d0fa,d0fa,8ea1d0fav,d0fav 5efa e5bbba 5efa 00005efa abd8 abd8 abd8 abd8 abd8 abd8 abd8 -1813 abd9 abd9 abd9 * 507b * 8ea1d0fb,d0fb,8ea1d0fbv,d0fbv 5f08 e5bc88 5f08 00005f08 abd9 abd9 abd9 abd9 abd9 abd9 abd9 -1814 abda abda abda * 507c * 8ea1d0fc,d0fc,8ea1d0fcv,d0fcv 5f2d e5bcad 5f2d 00005f2d abda abda abda abda abda abda abda -1815 abdb abdb abdb * 507d * 8ea1d0fd,d0fd,8ea1d0fdv,d0fdv 5f65 e5bda5 5f65 00005f65 abdb abdb abdb abdb abdb abdb abdb -1816 abdc abdc abdc * 507e * 8ea1d0fe,d0fe,8ea1d0fev,d0fev 5f88 e5be88 5f88 00005f88 abdc abdc abdc abdc abdc abdc abdc -1817 abdd abdd abdd * 5121 * 8ea1d1a1,d1a1,8ea1d1a1v,d1a1v 5f85 e5be85 5f85 00005f85 abdd abdd abdd abdd abdd abdd abdd -1818 abde abde abde * 5122 * 8ea1d1a2,d1a2,8ea1d1a2v,d1a2v 5f8a e5be8a 5f8a 00005f8a abde abde abde abde abde abde abde -1819 abdf abdf abdf * 5123 * 8ea1d1a3,d1a3,8ea1d1a3v,d1a3v 5f8b e5be8b 5f8b 00005f8b abdf abdf abdf abdf abdf abdf abdf -1820 abe0 abe0 abe0 * 5124 * 8ea1d1a4,d1a4,8ea1d1a4v,d1a4v 5f87 e5be87 5f87 00005f87 abe0 abe0 abe0 abe0 abe0 abe0 abe0 -1821 abe1 abe1 abe1 * 5125 * 8ea1d1a5,d1a5,8ea1d1a5v,d1a5v 5f8c e5be8c 5f8c 00005f8c abe1 abe1 abe1 abe1 abe1 abe1 abe1 -1822 abe2 abe2 abe2 * 5126 * 8ea1d1a6,d1a6,8ea1d1a6v,d1a6v 5f89 e5be89 5f89 00005f89 abe2 abe2 abe2 abe2 abe2 abe2 abe2 -1823 abe3 abe3 abe3 * 5127 * 8ea1d1a7,d1a7,8ea1d1a7v,d1a7v 6012 e68092 6012 00006012 abe3 abe3 abe3 abe3 abe3 abe3 abe3 -1824 abe4 abe4 abe4 * 5128 * 8ea1d1a8,d1a8,8ea1d1a8v,d1a8v 601d e6809d 601d 0000601d abe4 abe4 abe4 abe4 abe4 abe4 abe4 -1825 abe5 abe5 abe5 * 5129 * 8ea1d1a9,d1a9,8ea1d1a9v,d1a9v 6020 e680a0 6020 00006020 abe5 abe5 abe5 abe5 abe5 abe5 abe5 -1826 abe6 abe6 abe6 * 512a * 8ea1d1aa,d1aa,8ea1d1aav,d1aav 6025 e680a5 6025 00006025 abe6 abe6 abe6 abe6 abe6 abe6 abe6 -1827 abe7 abe7 abe7 * 512b * 8ea1d1ab,d1ab,8ea1d1abv,d1abv 600e e6808e 600e 0000600e abe7 abe7 abe7 abe7 abe7 abe7 abe7 -1828 abe8 abe8 abe8 * 512c * 8ea1d1ac,d1ac,8ea1d1acv,d1acv 6028 e680a8 6028 00006028 abe8 abe8 abe8 abe8 abe8 abe8 abe8 -1829 abe9 abe9 abe9 * 512d * 8ea1d1ad,d1ad,8ea1d1adv,d1adv 604d e6818d 604d 0000604d abe9 abe9 abe9 abe9 abe9 abe9 abe9 -1830 abea abea abea * 512e * 8ea1d1ae,d1ae,8ea1d1aev,d1aev 6070 e681b0 6070 00006070 abea abea abea abea abea abea abea -1831 abeb abeb abeb * 512f * 8ea1d1af,d1af,8ea1d1afv,d1afv 6068 e681a8 6068 00006068 abeb abeb abeb abeb abeb abeb abeb -1832 abec abec abec * 5130 * 8ea1d1b0,d1b0,8ea1d1b0v,d1b0v 6062 e681a2,eeb4a8 6062,ed28 00006062,0000ed28 9ea9,abec abec abec abec abec abec 9ea9,abec -1833 abed abed abed * 5131 * 8ea1d1b1,d1b1,8ea1d1b1v,d1b1v 6046 e68186 6046 00006046 abed abed abed abed abed abed abed -1834 abee abee abee * 5132 * 8ea1d1b2,d1b2,8ea1d1b2v,d1b2v 6043 e68183 6043 00006043 abee abee abee abee abee abee abee -1835 abef abef abef * 5133 * 8ea1d1b3,d1b3,8ea1d1b3v,d1b3v 606c e681ac 606c 0000606c abef abef abef abef abef abef abef -1836 abf0 abf0 abf0 * 5134 * 8ea1d1b4,d1b4,8ea1d1b4v,d1b4v 606b e681ab 606b 0000606b abf0 abf0 abf0 abf0 abf0 abf0 abf0 -1837 abf1 abf1 abf1 * 5135 * 8ea1d1b5,d1b5,8ea1d1b5v,d1b5v 606a e681aa 606a 0000606a abf1 abf1 abf1 abf1 abf1 abf1 abf1 -1838 abf2 abf2 abf2 * 5136 * 8ea1d1b6,d1b6,8ea1d1b6v,d1b6v 6064 e681a4 6064 00006064 abf2 abf2 abf2 abf2 abf2 abf2 abf2 -1839 abf3 abf3 abf3 * 5137 * 8ea1d1b7,d1b7,8ea1d1b7v,d1b7v 6241 e68981 6241 00006241 abf3 abf3 abf3 abf3 abf3 abf3 abf3 -1840 abf4 abf4 abf4 * 5138 * 8ea1d1b8,d1b8,8ea1d1b8v,d1b8v 62dc e68b9c 62dc 000062dc abf4 abf4 abf4 abf4 abf4 abf4 abf4 -1841 abf5 abf5 abf5 * 5139 * 8ea1d1b9,d1b9,8ea1d1b9v,d1b9v 6316 e68c96 6316 00006316 abf5 abf5 abf5 abf5 abf5 abf5 abf5 -1842 abf6 abf6 abf6 * 513a * 8ea1d1ba,d1ba,8ea1d1bav,d1bav 6309 e68c89 6309 00006309 abf6 abf6 abf6 abf6 abf6 abf6 abf6 -1843 abf7 abf7 abf7 * 513b * 8ea1d1bb,d1bb,8ea1d1bbv,d1bbv 62fc e68bbc 62fc 000062fc abf7 abf7 abf7 abf7 abf7 abf7 abf7 -1844 abf8 abf8 abf8 * 513c * 8ea1d1bc,d1bc,8ea1d1bcv,d1bcv 62ed e68bad 62ed 000062ed abf8 abf8 abf8 abf8 abf8 abf8 abf8 -1845 abf9 abf9 abf9 * 513d * 8ea1d1bd,d1bd,8ea1d1bdv,d1bdv 6301 e68c81 6301 00006301 abf9 abf9 abf9 abf9 abf9 abf9 abf9 -1846 abfa abfa abfa * 513e * 8ea1d1be,d1be,8ea1d1bev,d1bev 62ee e68bae 62ee 000062ee abfa abfa abfa abfa abfa abfa abfa -1847 abfb abfb abfb * 513f * 8ea1d1bf,d1bf,8ea1d1bfv,d1bfv 62fd e68bbd 62fd 000062fd abfb abfb abfb abfb abfb abfb abfb -1848 abfc abfc abfc * 5140 * 8ea1d1c0,d1c0,8ea1d1c0v,d1c0v 6307 e68c87 6307 00006307 abfc abfc abfc abfc abfc abfc abfc -1849 abfd abfd abfd * 5141 * 8ea1d1c1,d1c1,8ea1d1c1v,d1c1v 62f1 e68bb1 62f1 000062f1 abfd abfd abfd abfd abfd abfd abfd -1850 abfe abfe abfe * 5142 * 8ea1d1c2,d1c2,8ea1d1c2v,d1c2v 62f7 e68bb7 62f7 000062f7 abfe abfe abfe abfe abfe abfe abfe -1851 ac40 ac40 ac40 * 5143 * 8ea1d1c3,d1c3,8ea1d1c3v,d1c3v 62ef e68baf 62ef 000062ef ac40 ac40 ac40 ac40 ac40 ac40 ac40 -1852 ac41 ac41 ac41 * 5144 * 8ea1d1c4,d1c4,8ea1d1c4v,d1c4v 62ec e68bac 62ec 000062ec ac41 ac41 ac41 ac41 ac41 ac41 ac41 -1853 ac42 ac42 ac42 * 5145 * 8ea1d1c5,d1c5,8ea1d1c5v,d1c5v 62fe e68bbe 62fe 000062fe ac42 ac42 ac42 ac42 ac42 ac42 ac42 -1854 ac43 ac43 ac43 * 5146 * 8ea1d1c6,d1c6,8ea1d1c6v,d1c6v 62f4 e68bb4 62f4 000062f4 ac43 ac43 ac43 ac43 ac43 ac43 ac43 -1855 ac44 ac44 ac44 * 5147 * 8ea1d1c7,d1c7,8ea1d1c7v,d1c7v 6311 e68c91 6311 00006311 ac44 ac44 ac44 ac44 ac44 ac44 ac44 -1856 ac45 ac45 ac45 * 5148 * 8ea1d1c8,d1c8,8ea1d1c8v,d1c8v 6302 e68c82 6302 00006302 ac45 ac45 ac45 ac45 ac45 ac45 ac45 -1857 ac46 ac46 ac46 * 5149 * 8ea1d1c9,d1c9,8ea1d1c9v,d1c9v 653f e694bf 653f 0000653f ac46 ac46 ac46 ac46 ac46 ac46 ac46 -1858 ac47 ac47 ac47 * 514a * 8ea1d1ca,d1ca,8ea1d1cav,d1cav 6545 e69585 6545 00006545 ac47 ac47 ac47 ac47 ac47 ac47 ac47 -1859 ac48 ac48 ac48 * 514b * 8ea1d1cb,d1cb,8ea1d1cbv,d1cbv 65ab e696ab 65ab 000065ab ac48 ac48 ac48 ac48 ac48 ac48 ac48 -1860 ac49 ac49 ac49 * 514c * 8ea1d1cc,d1cc,8ea1d1ccv,d1ccv 65bd e696bd 65bd 000065bd ac49 ac49 ac49 ac49 ac49 ac49 ac49 -1861 ac4a ac4a ac4a * 514d * 8ea1d1cd,d1cd,8ea1d1cdv,d1cdv 65e2 e697a2 65e2 000065e2 ac4a ac4a 91f6,ac4a ac4a ac4a ac4a ac4a -1862 ac4b ac4b ac4b * 514e * 8ea1d1ce,d1ce,8ea1d1cev,d1cev 6625 e698a5 6625 00006625 ac4b ac4b ac4b ac4b ac4b ac4b ac4b -1863 ac4c ac4c ac4c * 514f * 8ea1d1cf,d1cf,8ea1d1cfv,d1cfv 662d e698ad 662d 0000662d ac4c ac4c ac4c ac4c ac4c ac4c ac4c -1864 ac4d ac4d ac4d * 5150 * 8ea1d1d0,d1d0,8ea1d1d0v,d1d0v 6620 e698a0 6620 00006620 ac4d ac4d ac4d ac4d ac4d ac4d ac4d -1865 ac4e ac4e ac4e * 5151 * 8ea1d1d1,d1d1,8ea1d1d1v,d1d1v 6627 e698a7 6627 00006627 ac4e ac4e ac4e ac4e ac4e ac4e ac4e -1866 ac4f ac4f ac4f * 5152 * 8ea1d1d2,d1d2,8ea1d1d2v,d1d2v 662f e698af 662f 0000662f ac4f ac4f ac4f ac4f ac4f ac4f ac4f -1867 ac50 ac50 ac50 * 5153 * 8ea1d1d3,d1d3,8ea1d1d3v,d1d3v 661f e6989f 661f 0000661f ac50 ac50 ac50 ac50 ac50 ac50 ac50 -1868 ac51 ac51 ac51 * 5154 * 8ea1d1d4,d1d4,8ea1d1d4v,d1d4v 6628 e698a8 6628 00006628 ac51 ac51 ac51 ac51 ac51 ac51 ac51 -1869 ac52 ac52 ac52 * 5155 * 8ea1d1d5,d1d5,8ea1d1d5v,d1d5v 6631 e698b1 6631 00006631 ac52 ac52 ac52 ac52 ac52 ac52 ac52 -1870 ac53 ac53 ac53 * 5156 * 8ea1d1d6,d1d6,8ea1d1d6v,d1d6v 6624 e698a4 6624 00006624 ac53 ac53 ac53 ac53 ac53 ac53 ac53 -1871 ac54 ac54 ac54 * 5157 * 8ea1d1d7,d1d7,8ea1d1d7v,d1d7v 66f7 e69bb7 66f7 000066f7 ac54 ac54 ac54 ac54 ac54 ac54 ac54 -1872 ac55 ac55 ac55 * 5158 * 8ea1d1d8,d1d8,8ea1d1d8v,d1d8v 67ff e69fbf 67ff 000067ff ac55 ac55 ac55 ac55 ac55 ac55 ac55 -1873 ac56 ac56 ac56 * 5159 * 8ea1d1d9,d1d9,8ea1d1d9v,d1d9v 67d3 e69f93 67d3 000067d3 ac56 ac56 ac56 ac56 ac56 ac56 ac56 -1874 ac57 ac57 ac57 * 515a * 8ea1d1da,d1da,8ea1d1dav,d1dav 67f1 e69fb1 67f1 000067f1 ac57 ac57 ac57 ac57 ac57 ac57 ac57 -1875 ac58 ac58 ac58 * 515b * 8ea1d1db,d1db,8ea1d1dbv,d1dbv 67d4 e69f94 67d4 000067d4 ac58 ac58 ac58 ac58 ac58 ac58 ac58 -1876 ac59 ac59 ac59 * 515c * 8ea1d1dc,d1dc,8ea1d1dcv,d1dcv 67d0 e69f90 67d0 000067d0 ac59 ac59 ac59 ac59 ac59 ac59 ac59 -1877 ac5a ac5a ac5a * 515d * 8ea1d1dd,d1dd,8ea1d1ddv,d1ddv 67ec e69fac 67ec 000067ec ac5a ac5a ac5a ac5a ac5a ac5a ac5a -1878 ac5b ac5b ac5b * 515e * 8ea1d1de,d1de,8ea1d1dev,d1dev 67b6 e69eb6 67b6 000067b6 ac5b ac5b ac5b ac5b ac5b ac5b ac5b -1879 ac5c ac5c ac5c * 515f * 8ea1d1df,d1df,8ea1d1dfv,d1dfv 67af e69eaf 67af 000067af ac5c ac5c ac5c ac5c ac5c ac5c ac5c -1880 ac5d ac5d ac5d * 5160 * 8ea1d1e0,d1e0,8ea1d1e0v,d1e0v 67f5 e69fb5 67f5 000067f5 ac5d ac5d ac5d ac5d ac5d ac5d ac5d -1881 ac5e ac5e ac5e * 5161 * 8ea1d1e1,d1e1,8ea1d1e1v,d1e1v 67e9 e69fa9 67e9 000067e9 ac5e ac5e ac5e ac5e ac5e ac5e ac5e -1882 ac5f ac5f ac5f * 5162 * 8ea1d1e2,d1e2,8ea1d1e2v,d1e2v 67ef e69faf 67ef 000067ef ac5f ac5f ac5f ac5f ac5f ac5f ac5f -1883 ac60 ac60 ac60 * 5163 * 8ea1d1e3,d1e3,8ea1d1e3v,d1e3v 67c4 e69f84 67c4 000067c4 ac60 ac60 ac60 ac60 ac60 ac60 ac60 -1884 ac61 ac61 ac61 * 5164 * 8ea1d1e4,d1e4,8ea1d1e4v,d1e4v 67d1 e69f91 67d1 000067d1 ac61 ac61 ac61 ac61 ac61 ac61 ac61 -1885 ac62 ac62 ac62 * 5165 * 8ea1d1e5,d1e5,8ea1d1e5v,d1e5v 67b4 e69eb4 67b4 000067b4 ac62 ac62 ac62 ac62 ac62 ac62 ac62 -1886 ac63 ac63 ac63 * 5166 * 8ea1d1e6,d1e6,8ea1d1e6v,d1e6v 67da e69f9a 67da 000067da ac63 ac63 ac63 ac63 ac63 ac63 ac63 -1887 ac64 ac64 ac64 * 5167 * 8ea1d1e7,d1e7,8ea1d1e7v,d1e7v 67e5 e69fa5 67e5 000067e5 ac64 ac64 ac64 ac64 ac64 ac64 ac64 -1888 ac65 ac65 ac65 * 5168 * 8ea1d1e8,d1e8,8ea1d1e8v,d1e8v 67b8 e69eb8 67b8 000067b8 ac65 ac65 ac65 ac65 ac65 ac65 ac65 -1889 ac66 ac66 ac66 * 5169 * 8ea1d1e9,d1e9,8ea1d1e9v,d1e9v 67cf e69f8f 67cf 000067cf ac66 ac66 ac66 ac66 ac66 ac66 ac66 -1890 ac67 ac67 ac67 * 516a * 8ea1d1ea,d1ea,8ea1d1eav,d1eav 67de e69f9e 67de 000067de ac67 ac67 ac67 ac67 ac67 ac67 ac67 -1891 ac68 ac68 ac68 * 516b * 8ea1d1eb,d1eb,8ea1d1ebv,d1ebv 67f3 e69fb3 67f3 000067f3 ac68 ac68 ac68 ac68 ac68 ac68 ac68 -1892 ac69 ac69 ac69 * 516c * 8ea1d1ec,d1ec,8ea1d1ecv,d1ecv 67b0 e69eb0 67b0 000067b0 ac69 ac69 ac69 ac69 ac69 ac69 ac69 -1893 ac6a ac6a ac6a * 516d * 8ea1d1ed,d1ed,8ea1d1edv,d1edv 67d9 e69f99 67d9 000067d9 ac6a ac6a ac6a ac6a ac6a ac6a ac6a -1894 ac6b ac6b ac6b * 516e * 8ea1d1ee,d1ee,8ea1d1eev,d1eev 67e2 e69fa2 67e2 000067e2 ac6b ac6b ac6b ac6b ac6b ac6b ac6b -1895 ac6c ac6c ac6c * 516f * 8ea1d1ef,d1ef,8ea1d1efv,d1efv 67dd e69f9d 67dd 000067dd ac6c ac6c ac6c ac6c ac6c ac6c ac6c -1896 ac6d ac6d ac6d * 5170 * 8ea1d1f0,d1f0,8ea1d1f0v,d1f0v 67d2 e69f92 67d2 000067d2 ac6d ac6d ac6d ac6d ac6d ac6d ac6d -1897 ac6e ac6e ac6e * 5171 * 8ea1d1f1,d1f1,8ea1d1f1v,d1f1v 6b6a e6adaa 6b6a 00006b6a ac6e ac6e ac6e ac6e ac6e ac6e ac6e -1898 ac6f ac6f ac6f * 5172 * 8ea1d1f2,d1f2,8ea1d1f2v,d1f2v 6b83 e6ae83 6b83 00006b83 ac6f ac6f ac6f ac6f ac6f ac6f ac6f -1899 ac70 ac70 ac70 * 5173 * 8ea1d1f3,d1f3,8ea1d1f3v,d1f3v 6b86 e6ae86 6b86 00006b86 ac70 ac70 ac70 ac70 ac70 ac70 ac70 -1900 ac71 ac71 ac71 * 5174 * 8ea1d1f4,d1f4,8ea1d1f4v,d1f4v 6bb5 e6aeb5 6bb5 00006bb5 ac71 ac71 ac71 ac71 ac71 ac71 ac71 -1901 ac72 ac72 ac72 * 5175 * 8ea1d1f5,d1f5,8ea1d1f5v,d1f5v 6bd2 e6af92 6bd2 00006bd2 ac72 ac72 ac72 ac72 ac72 ac72 ac72 -1902 ac73 ac73 ac73 * 5176 * 8ea1d1f6,d1f6,8ea1d1f6v,d1f6v 6bd7 e6af97 6bd7 00006bd7 ac73 ac73 ac73 ac73 ac73 ac73 ac73 -1903 ac74 ac74 ac74 * 5177 * 8ea1d1f7,d1f7,8ea1d1f7v,d1f7v 6c1f e6b09f 6c1f 00006c1f ac74 ac74 ac74 ac74 ac74 ac74 ac74 -1904 ac75 ac75 ac75 * 5178 * 8ea1d1f8,d1f8,8ea1d1f8v,d1f8v 6cc9 e6b389 6cc9 00006cc9 ac75 ac75 ac75 ac75 ac75 ac75 ac75 -1905 ac76 ac76 ac76 * 5179 * 8ea1d1f9,d1f9,8ea1d1f9v,d1f9v 6d0b e6b48b 6d0b 00006d0b ac76 ac76 ac76 ac76 ac76 ac76 ac76 -1906 ac77 ac77 ac77 * 517a * 8ea1d1fa,d1fa,8ea1d1fav,d1fav 6d32 e6b4b2 6d32 00006d32 ac77 ac77 ac77 ac77 ac77 ac77 ac77 -1907 ac78 ac78 ac78 * 517b * 8ea1d1fb,d1fb,8ea1d1fbv,d1fbv 6d2a e6b4aa 6d2a 00006d2a ac78 ac78 ac78 ac78 ac78 ac78 ac78 -1908 ac79 ac79 ac79 * 517c * 8ea1d1fc,d1fc,8ea1d1fcv,d1fcv 6d41 e6b581 6d41 00006d41 ac79 ac79 ac79 ac79 ac79 ac79 ac79 -1909 ac7a ac7a ac7a * 517d * 8ea1d1fd,d1fd,8ea1d1fdv,d1fdv 6d25 e6b4a5 6d25 00006d25 ac7a ac7a ac7a ac7a ac7a ac7a ac7a -1910 ac7b ac7b ac7b * 517e * 8ea1d1fe,d1fe,8ea1d1fev,d1fev 6d0c e6b48c 6d0c 00006d0c ac7b ac7b ac7b ac7b ac7b ac7b ac7b -1911 ac7c ac7c ac7c * 5221 * 8ea1d2a1,d2a1,8ea1d2a1v,d2a1v 6d31 e6b4b1 6d31 00006d31 ac7c ac7c ac7c ac7c ac7c ac7c ac7c -1912 ac7d ac7d ac7d * 5222 * 8ea1d2a2,d2a2,8ea1d2a2v,d2a2v 6d1e e6b49e 6d1e 00006d1e ac7d ac7d ac7d ac7d ac7d ac7d ac7d -1913 ac7e ac7e ac7e * 5223 * 8ea1d2a3,d2a3,8ea1d2a3v,d2a3v 6d17 e6b497 6d17 00006d17 ac7e ac7e ac7e ac7e ac7e ac7e ac7e -1914 aca1 aca1 aca1 * 5224 * 8ea1d2a4,d2a4,8ea1d2a4v,d2a4v 6d3b e6b4bb 6d3b 00006d3b aca1 aca1 aca1 aca1 aca1 aca1 aca1 -1915 aca2 aca2 aca2 * 5225 * 8ea1d2a5,d2a5,8ea1d2a5v,d2a5v 6d3d e6b4bd 6d3d 00006d3d aca2 aca2 aca2 aca2 aca2 aca2 aca2 -1916 aca3 aca3 aca3 * 5226 * 8ea1d2a6,d2a6,8ea1d2a6v,d2a6v 6d3e e6b4be 6d3e 00006d3e aca3 aca3 aca3 aca3 aca3 aca3 aca3 -1917 aca4 aca4 aca4 * 5227 * 8ea1d2a7,d2a7,8ea1d2a7v,d2a7v 6d36 e6b4b6 6d36 00006d36 aca4 aca4 aca4 aca4 aca4 aca4 aca4 -1918 aca5 aca5 aca5 * 5228 * 8ea1d2a8,d2a8,8ea1d2a8v,d2a8v 6d1b e6b49b 6d1b 00006d1b aca5 aca5 aca5 aca5 aca5 aca5 aca5 -1919 aca6 aca6 aca6 * 5229 * 8ea1d2a9,d2a9,8ea1d2a9v,d2a9v 6cf5 e6b3b5 6cf5 00006cf5 aca6 aca6 aca6 aca6 aca6 aca6 aca6 -1920 aca7 aca7 aca7 * 522a * 8ea1d2aa,d2aa,8ea1d2aav,d2aav 6d39 e6b4b9 6d39 00006d39 aca7 aca7 aca7 aca7 aca7 aca7 aca7 -1921 aca8 aca8 aca8 * 522b * 8ea1d2ab,d2ab,8ea1d2abv,d2abv 6d27 e6b4a7 6d27 00006d27 aca8 aca8 aca8 aca8 aca8 aca8 aca8 -1922 aca9 aca9 aca9 * 522c * 8ea1d2ac,d2ac,8ea1d2acv,d2acv 6d38 e6b4b8 6d38 00006d38 aca9 aca9 aca9 aca9 aca9 aca9 aca9 -1923 acaa acaa acaa * 522d * 8ea1d2ad,d2ad,8ea1d2adv,d2adv 6d29 e6b4a9 6d29 00006d29 acaa acaa acaa acaa acaa acaa acaa -1924 acab acab acab * 522e * 8ea1d2ae,d2ae,8ea1d2aev,d2aev 6d2e e6b4ae 6d2e 00006d2e acab acab acab acab acab acab acab -1925 acac acac acac * 522f * 8ea1d2af,d2af,8ea1d2afv,d2afv 6d35 e6b4b5 6d35 00006d35 acac acac acac acac acac acac acac -1926 acad acad acad * 5230 * 8ea1d2b0,d2b0,8ea1d2b0v,d2b0v 6d0e e6b48e 6d0e 00006d0e acad acad acad acad acad acad acad -1927 acae acae acae * 5231 * 8ea1d2b1,d2b1,8ea1d2b1v,d2b1v 6d2b e6b4ab 6d2b 00006d2b acae acae acae acae acae acae acae -1928 acaf acaf acaf * 5232 * 8ea1d2b2,d2b2,8ea1d2b2v,d2b2v 70ab e782ab 70ab 000070ab acaf acaf acaf acaf acaf acaf acaf -1929 acb0 acb0 acb0 * 5233 * 8ea1d2b3,d2b3,8ea1d2b3v,d2b3v 70ba e782ba 70ba 000070ba acb0 acb0 acb0 acb0 acb0 acb0 acb0 -1930 acb1 acb1 acb1 * 5234 * 8ea1d2b4,d2b4,8ea1d2b4v,d2b4v 70b3 e782b3 70b3 000070b3 acb1 acb1 acb1 acb1 acb1 acb1 acb1 -1931 acb2 acb2 acb2 * 5235 * 8ea1d2b5,d2b5,8ea1d2b5v,d2b5v 70ac e782ac 70ac 000070ac acb2 acb2 acb2 acb2 acb2 acb2 acb2 -1932 acb3 acb3 acb3 * 5236 * 8ea1d2b6,d2b6,8ea1d2b6v,d2b6v 70af e782af 70af 000070af acb3 acb3 acb3 acb3 acb3 acb3 acb3 -1933 acb4 acb4 acb4 * 5237 * 8ea1d2b7,d2b7,8ea1d2b7v,d2b7v 70ad e782ad 70ad 000070ad acb4 acb4 acb4 acb4 acb4 acb4 acb4 -1934 acb5 acb5 acb5 * 5238 * 8ea1d2b8,d2b8,8ea1d2b8v,d2b8v 70b8 e782b8 70b8 000070b8 acb5 acb5 acb5 acb5 acb5 acb5 acb5 -1935 acb6 acb6 acb6 * 5239 * 8ea1d2b9,d2b9,8ea1d2b9v,d2b9v 70ae e782ae 70ae 000070ae acb6 acb6 acb6 acb6 acb6 acb6 acb6 -1936 acb7 acb7 acb7 * 523a * 8ea1d2ba,d2ba,8ea1d2bav,d2bav 70a4 e782a4 70a4 000070a4 acb7 acb7 acb7 acb7 acb7 acb7 acb7 -1937 acb8 acb8 acb8 * 523b * 8ea1d2bb,d2bb,8ea1d2bbv,d2bbv 7230 e788b0 7230 00007230 acb8 acb8 acb8 acb8 acb8 acb8 acb8 -1938 acb9 acb9 acb9 * 523c * 8ea1d2bc,d2bc,8ea1d2bcv,d2bcv 7272 e789b2 7272 00007272 acb9 acb9 acb9 acb9 acb9 acb9 acb9 -1939 acba acba acba * 523d * 8ea1d2bd,d2bd,8ea1d2bdv,d2bdv 726f e789af 726f 0000726f acba acba acba acba acba acba acba -1940 acbb acbb acbb * 523e * 8ea1d2be,d2be,8ea1d2bev,d2bev 7274 e789b4 7274 00007274 acbb acbb acbb acbb acbb acbb acbb -1941 acbc acbc acbc * 523f * 8ea1d2bf,d2bf,8ea1d2bfv,d2bfv 72e9 e78ba9 72e9 000072e9 acbc acbc acbc acbc acbc acbc acbc -1942 acbd acbd acbd * 5240 * 8ea1d2c0,d2c0,8ea1d2c0v,d2c0v 72e0 e78ba0 72e0 000072e0 acbd acbd acbd acbd acbd acbd acbd -1943 acbe acbe acbe * 5241 * 8ea1d2c1,d2c1,8ea1d2c1v,d2c1v 72e1 e78ba1 72e1 000072e1 acbe acbe acbe acbe acbe acbe acbe -1944 acbf acbf acbf * 5242 * 8ea1d2c2,d2c2,8ea1d2c2v,d2c2v 73b7 e78eb7 73b7 000073b7 acbf acbf acbf acbf acbf acbf acbf -1945 acc0 acc0 acc0 * 5243 * 8ea1d2c3,d2c3,8ea1d2c3v,d2c3v 73ca e78f8a 73ca 000073ca acc0 acc0 acc0 acc0 acc0 acc0 acc0 -1946 acc1 acc1 acc1 * 5244 * 8ea1d2c4,d2c4,8ea1d2c4v,d2c4v 73bb e78ebb 73bb 000073bb acc1 acc1 acc1 acc1 acc1 acc1 acc1 -1947 acc2 acc2 acc2 * 5245 * 8ea1d2c5,d2c5,8ea1d2c5v,d2c5v 73b2 e78eb2 73b2 000073b2 acc2 acc2 acc2 acc2 acc2 acc2 acc2 -1948 acc3 acc3 acc3 * 5246 * 8ea1d2c6,d2c6,8ea1d2c6v,d2c6v 73cd e78f8d 73cd 000073cd acc3 acc3 acc3 acc3 acc3 acc3 acc3 -1949 acc4 acc4 acc4 * 5247 * 8ea1d2c7,d2c7,8ea1d2c7v,d2c7v 73c0 e78f80 73c0 000073c0 acc4 acc4 acc4 acc4 acc4 acc4 acc4 -1950 acc5 acc5 acc5 * 5248 * 8ea1d2c8,d2c8,8ea1d2c8v,d2c8v 73b3 e78eb3 73b3 000073b3 acc5 acc5 acc5 acc5 acc5 acc5 acc5 -1951 acc6 acc6 acc6 * 5249 * 8ea1d2c9,d2c9,8ea1d2c9v,d2c9v 751a e7949a 751a 0000751a acc6 acc6 acc6 acc6 acc6 acc6 acc6 -1952 acc7 acc7 acc7 * 524a * 8ea1d2ca,d2ca,8ea1d2cav,d2cav 752d e794ad 752d 0000752d acc7 acc7 acc7 acc7 acc7 acc7 acc7 -1953 acc8 acc8 acc8 * 524b * 8ea1d2cb,d2cb,8ea1d2cbv,d2cbv 754f e7958f 754f 0000754f acc8 acc8 acc8 acc8 acc8 acc8 acc8 -1954 acc9 acc9 acc9 * 524c * 8ea1d2cc,d2cc,8ea1d2ccv,d2ccv 754c e7958c 754c 0000754c acc9 acc9 acc9 acc9 acc9 acc9 acc9 -1955 acca acca acca * 524d * 8ea1d2cd,d2cd,8ea1d2cdv,d2cdv 754e e7958e 754e 0000754e acca acca acca acca acca acca acca -1956 accb accb accb * 524e * 8ea1d2ce,d2ce,8ea1d2cev,d2cev 754b e7958b 754b 0000754b accb accb accb accb accb accb accb -1957 accc accc accc * 524f * 8ea1d2cf,d2cf,8ea1d2cfv,d2cfv 75ab e796ab 75ab 000075ab accc accc accc accc accc accc accc -1958 accd accd accd * 5250 * 8ea1d2d0,d2d0,8ea1d2d0v,d2d0v 75a4 e796a4 75a4 000075a4 accd accd accd accd accd accd accd -1959 acce acce acce * 5251 * 8ea1d2d1,d2d1,8ea1d2d1v,d2d1v 75a5 e796a5 75a5 000075a5 acce acce acce acce acce acce acce -1960 accf accf accf * 5252 * 8ea1d2d2,d2d2,8ea1d2d2v,d2d2v 75a2 e796a2 75a2 000075a2 accf accf accf accf accf accf accf -1961 acd0 acd0 acd0 * 5253 * 8ea1d2d3,d2d3,8ea1d2d3v,d2d3v 75a3 e796a3 75a3 000075a3 acd0 acd0 acd0 acd0 acd0 acd0 acd0 -1962 acd1 acd1 acd1 * 5254 * 8ea1d2d4,d2d4,8ea1d2d4v,d2d4v 7678 e799b8 7678 00007678 acd1 acd1 acd1 acd1 acd1 acd1 acd1 -1963 acd2 acd2 acd2 * 5255 * 8ea1d2d5,d2d5,8ea1d2d5v,d2d5v 7686 e79a86 7686 00007686 acd2 acd2 acd2 acd2 acd2 acd2 acd2 -1964 acd3 acd3 acd3 * 5256 * 8ea1d2d6,d2d6,8ea1d2d6v,d2d6v 7687 e79a87 7687 00007687 acd3 acd3 acd3 acd3 acd3 acd3 acd3 -1965 acd4 acd4 acd4 * 5257 * 8ea1d2d7,d2d7,8ea1d2d7v,d2d7v 7688 e79a88 7688 00007688 acd4 acd4 acd4 acd4 acd4 acd4 acd4 -1966 acd5 acd5 acd5 * 5258 * 8ea1d2d8,d2d8,8ea1d2d8v,d2d8v 76c8 e79b88 76c8 000076c8 acd5 acd5 acd5 acd5 acd5 acd5 acd5 -1967 acd6 acd6 acd6 * 5259 * 8ea1d2d9,d2d9,8ea1d2d9v,d2d9v 76c6 e79b86 76c6 000076c6 acd6 acd6 acd6 acd6 acd6 acd6 acd6 -1968 acd7 acd7 acd7 * 525a * 8ea1d2da,d2da,8ea1d2dav,d2dav 76c3 e79b83 76c3 000076c3 acd7 acd7 acd7 acd7 acd7 acd7 acd7 -1969 acd8 acd8 acd8 * 525b * 8ea1d2db,d2db,8ea1d2dbv,d2dbv 76c5 e79b85 76c5 000076c5 acd8 acd8 acd8 acd8 acd8 acd8 acd8 -1970 acd9 acd9 acd9 * 525c * 8ea1d2dc,d2dc,8ea1d2dcv,d2dcv 7701 e79c81 7701 00007701 acd9 acd9 acd9 acd9 acd9 acd9 acd9 -1971 acda acda acda * 525d * 8ea1d2dd,d2dd,8ea1d2ddv,d2ddv 76f9 e79bb9 76f9 000076f9 acda acda acda acda acda acda acda -1972 acdb acdb acdb * 525e * 8ea1d2de,d2de,8ea1d2dev,d2dev 76f8 e79bb8 76f8 000076f8 acdb acdb acdb acdb acdb acdb acdb -1973 acdc acdc acdc * 525f * 8ea1d2df,d2df,8ea1d2dfv,d2dfv 7709 e79c89 7709 00007709 acdc acdc acdc acdc acdc acdc acdc -1974 acdd acdd acdd * 5260 * 8ea1d2e0,d2e0,8ea1d2e0v,d2e0v 770b e79c8b 770b 0000770b acdd acdd acdd acdd acdd acdd acdd -1975 acde acde acde * 5261 * 8ea1d2e1,d2e1,8ea1d2e1v,d2e1v 76fe e79bbe 76fe 000076fe acde acde acde acde acde acde acde -1976 acdf acdf acdf * 5262 * 8ea1d2e2,d2e2,8ea1d2e2v,d2e2v 76fc e79bbc 76fc 000076fc acdf acdf acdf acdf acdf acdf acdf -1977 ace0 ace0 ace0 * 5263 * 8ea1d2e3,d2e3,8ea1d2e3v,d2e3v 7707 e79c87 7707 00007707 ace0 ace0 ace0 ace0 ace0 ace0 ace0 -1978 ace1 ace1 ace1 * 5264 * 8ea1d2e4,d2e4,8ea1d2e4v,d2e4v 77dc e79f9c 77dc 000077dc ace1 ace1 ace1 ace1 ace1 ace1 ace1 -1979 ace2 ace2 ace2 * 5265 * 8ea1d2e5,d2e5,8ea1d2e5v,d2e5v 7802 e7a082 7802 00007802 ace2 ace2 ace2 ace2 ace2 ace2 ace2 -1980 ace3 ace3 ace3 * 5266 * 8ea1d2e6,d2e6,8ea1d2e6v,d2e6v 7814 e7a094 7814 00007814 ace3 ace3 ace3 ace3 ace3 ace3 ace3 -1981 ace4 ace4 ace4 * 5267 * 8ea1d2e7,d2e7,8ea1d2e7v,d2e7v 780c e7a08c 780c 0000780c ace4 ace4 ace4 ace4 ace4 ace4 ace4 -1982 ace5 ace5 ace5 * 5268 * 8ea1d2e8,d2e8,8ea1d2e8v,d2e8v 780d e7a08d 780d 0000780d ace5 ace5 ace5 ace5 ace5 ace5 ace5 -1983 ace6 ace6 ace6 * 5269 * 8ea1d2e9,d2e9,8ea1d2e9v,d2e9v 7946 e7a586 7946 00007946 ace6 ace6 ace6 ace6 ace6 ace6 ace6 -1984 ace7 ace7 ace7 * 526a * 8ea1d2ea,d2ea,8ea1d2eav,d2eav 7949 e7a589 7949 00007949 ace7 ace7 ace7 ace7 ace7 ace7 ace7 -1985 ace8 ace8 ace8 * 526b * 8ea1d2eb,d2eb,8ea1d2ebv,d2ebv 7948 e7a588 7948 00007948 ace8 ace8 ace8 ace8 ace8 ace8 ace8 -1986 ace9 ace9 ace9 * 526c * 8ea1d2ec,d2ec,8ea1d2ecv,d2ecv 7947 e7a587 7947 00007947 ace9 ace9,fb53,fd5e 9160,ace9 ace9 ace9 ace9 ace9 -1987 acea acea acea * 526d * 8ea1d2ed,d2ed,8ea1d2edv,d2edv 79b9 e7a6b9 79b9 000079b9 acea acea acea acea acea acea acea -1988 aceb aceb aceb * 526e * 8ea1d2ee,d2ee,8ea1d2eev,d2eev 79ba e7a6ba 79ba 000079ba aceb aceb aceb aceb aceb aceb aceb -1989 acec acec acec * 526f * 8ea1d2ef,d2ef,8ea1d2efv,d2efv 79d1 e7a791 79d1 000079d1 acec acec acec acec acec acec acec -1990 aced aced aced * 5270 * 8ea1d2f0,d2f0,8ea1d2f0v,d2f0v 79d2 e7a792 79d2 000079d2 aced aced aced aced aced aced aced -1991 acee acee acee * 5271 * 8ea1d2f1,d2f1,8ea1d2f1v,d2f1v 79cb e7a78b 79cb 000079cb acee acee acee acee acee acee acee -1992 acef acef acef * 5272 * 8ea1d2f2,d2f2,8ea1d2f2v,d2f2v 7a7f e7a9bf 7a7f 00007a7f acef acef acef acef acef acef acef -1993 acf0 acf0 acf0 * 5273 * 8ea1d2f3,d2f3,8ea1d2f3v,d2f3v 7a81 e7aa81 7a81 00007a81 acf0 acf0 acf0 acf0 acf0 acf0 acf0 -1994 acf1 acf1 acf1 * 5274 * 8ea1d2f4,d2f4,8ea1d2f4v,d2f4v 7aff e7abbf 7aff 00007aff acf1 acf1 acf1 acf1 acf1 acf1 acf1 -1995 acf2 acf2 acf2 * 5275 * 8ea1d2f5,d2f5,8ea1d2f5v,d2f5v 7afd e7abbd 7afd 00007afd acf2 acf2 acf2 acf2 acf2 acf2 acf2 -1996 acf3 acf3 acf3 * 5276 * 8ea1d2f6,d2f6,8ea1d2f6v,d2f6v 7c7d e7b1bd 7c7d 00007c7d acf3 acf3 acf3 acf3 acf3 acf3 acf3 -1997 acf4 acf4 acf4 * 5277 * 8ea1d2f7,d2f7,8ea1d2f7v,d2f7v 7d02 e7b482 7d02 00007d02 acf4 acf4 acf4 acf4 acf4 acf4 acf4 -1998 acf5 acf5 acf5 * 5278 * 8ea1d2f8,d2f8,8ea1d2f8v,d2f8v 7d05 e7b485 7d05 00007d05 acf5 acf5 acf5 acf5 acf5 acf5 acf5 -1999 acf6 acf6 acf6 * 5279 * 8ea1d2f9,d2f9,8ea1d2f9v,d2f9v 7d00 e7b480 7d00 00007d00 acf6 acf6 acf6 acf6 acf6 acf6 acf6 -2000 acf7 acf7 acf7 * 527a * 8ea1d2fa,d2fa,8ea1d2fav,d2fav 7d09 e7b489 7d09 00007d09 acf7 acf7 acf7 acf7 acf7 acf7 acf7 -2001 acf8 acf8 acf8 * 527b * 8ea1d2fb,d2fb,8ea1d2fbv,d2fbv 7d07 e7b487 7d07 00007d07 acf8 acf8 acf8 acf8 acf8 acf8 acf8 -2002 acf9 acf9 acf9 * 527c * 8ea1d2fc,d2fc,8ea1d2fcv,d2fcv 7d04 e7b484 7d04 00007d04 acf9 acf9 acf9 acf9 acf9 acf9 acf9 -2003 acfa acfa acfa * 527d * 8ea1d2fd,d2fd,8ea1d2fdv,d2fdv 7d06 e7b486 7d06 00007d06 acfa acfa acfa acfa acfa acfa acfa -2004 acfb acfb acfb * 527e * 8ea1d2fe,d2fe,8ea1d2fev,d2fev 7f38 e7bcb8 7f38 00007f38 acfb acfb acfb acfb acfb acfb acfb -2005 acfc acfc acfc * 5321 * 8ea1d3a1,d3a1,8ea1d3a1v,d3a1v 7f8e e7be8e 7f8e 00007f8e acfc acfc acfc acfc acfc acfc acfc -2006 acfd acfd acfd * 5322 * 8ea1d3a2,d3a2,8ea1d3a2v,d3a2v 7fbf e7bebf 7fbf 00007fbf acfd acfd acfd acfd acfd acfd acfd -2007 ad40 ad40 ad40 * 5323 * 8ea1d3a3,d3a3,8ea1d3a3v,d3a3v 8010 e88090 8010 00008010 ad40 ad40 ad40 ad40 ad40 ad40 ad40 -2008 ad41 ad41 ad41 * 5324 * 8ea1d3a4,d3a4,8ea1d3a4v,d3a4v 800d e8808d 800d 0000800d ad41 ad41 ad41 ad41 ad41 ad41 ad41 -2009 ad42 ad42 ad42 * 5325 * 8ea1d3a5,d3a5,8ea1d3a5v,d3a5v 8011 e88091 8011 00008011 ad42 ad42 ad42 ad42 ad42 ad42 ad42 -2010 ad43 ad43 ad43 * 5326 * 8ea1d3a6,d3a6,8ea1d3a6v,d3a6v 8036 e880b6 8036 00008036 ad43 ad43 ad43 ad43 ad43 ad43 ad43 -2011 ad44 ad44 ad44 * 5327 * 8ea1d3a7,d3a7,8ea1d3a7v,d3a7v 80d6 e88396 80d6 000080d6 ad44 ad44 ad44 ad44 ad44 ad44 ad44 -2012 ad45 ad45 ad45 * 5328 * 8ea1d3a8,d3a8,8ea1d3a8v,d3a8v 80e5 e883a5 80e5 000080e5 ad45 ad45 ad45 ad45 ad45 ad45 ad45 -2013 ad46 ad46 ad46 * 5329 * 8ea1d3a9,d3a9,8ea1d3a9v,d3a9v 80da e8839a 80da 000080da ad46 ad46 ad46 ad46 ad46 ad46 ad46 -2014 ad47 ad47 ad47 * 532a * 8ea1d3aa,d3aa,8ea1d3aav,d3aav 80c3 e88383 80c3 000080c3 ad47 ad47 ad47 ad47 ad47 ad47 ad47 -2015 ad48 ad48 ad48 * 532b * 8ea1d3ab,d3ab,8ea1d3abv,d3abv 80c4 e88384 80c4 000080c4 ad48 ad48 ad48 ad48 ad48 ad48 ad48 -2016 ad49 ad49 ad49 * 532c * 8ea1d3ac,d3ac,8ea1d3acv,d3acv 80cc e8838c 80cc 000080cc ad49 ad49 ad49 ad49 ad49 ad49 ad49 -2017 ad4a ad4a ad4a * 532d * 8ea1d3ad,d3ad,8ea1d3adv,d3adv 80e1 e883a1 80e1 000080e1 ad4a ad4a ad4a ad4a ad4a ad4a ad4a -2018 ad4b ad4b ad4b * 532e * 8ea1d3ae,d3ae,8ea1d3aev,d3aev 80db e8839b 80db 000080db ad4b ad4b ad4b ad4b ad4b ad4b ad4b -2019 ad4c ad4c ad4c * 532f * 8ea1d3af,d3af,8ea1d3afv,d3afv 80ce e8838e 80ce 000080ce ad4c ad4c ad4c ad4c ad4c ad4c ad4c -2020 ad4d ad4d ad4d * 5330 * 8ea1d3b0,d3b0,8ea1d3b0v,d3b0v 80de e8839e 80de 000080de ad4d ad4d ad4d ad4d ad4d ad4d ad4d -2021 ad4e ad4e ad4e * 5331 * 8ea1d3b1,d3b1,8ea1d3b1v,d3b1v 80e4 e883a4 80e4 000080e4 ad4e ad4e ad4e ad4e ad4e ad4e ad4e -2022 ad4f ad4f ad4f * 5332 * 8ea1d3b2,d3b2,8ea1d3b2v,d3b2v 80dd e8839d 80dd 000080dd ad4f ad4f ad4f ad4f ad4f ad4f ad4f -2023 ad50 ad50 ad50 * 5333 * 8ea1d3b3,d3b3,8ea1d3b3v,d3b3v 81f4 e887b4 81f4 000081f4 ad50 ad50 ad50 ad50 ad50 ad50 ad50 -2024 ad51 ad51 ad51 * 5334 * 8ea1d3b4,d3b4,8ea1d3b4v,d3b4v 8222 e888a2 8222 00008222 ad51 ad51 ad51 ad51 ad51 ad51 ad51 -2025 ad52 ad52 ad52 * 5335 * 8ea1d3b5,d3b5,8ea1d3b5v,d3b5v 82e7 e88ba7 82e7 000082e7 ad52 ad52 ad52 ad52 ad52 ad52 ad52 -2026 ad53 ad53 ad53 * 5336 * 8ea1d3b6,d3b6,8ea1d3b6v,d3b6v 8303 e88c83 8303 00008303 ad53 ad53 ad53 ad53 ad53 ad53 ad53 -2027 ad54 ad54 ad54 * 5337 * 8ea1d3b7,d3b7,8ea1d3b7v,d3b7v 8305 e88c85 8305 00008305 ad54 ad54 ad54 ad54 ad54 ad54 ad54 -2028 ad55 ad55 ad55 * 5338 * 8ea1d3b8,d3b8,8ea1d3b8v,d3b8v 82e3 e88ba3 82e3 000082e3 ad55 ad55 ad55 ad55 ad55 ad55 ad55 -2029 ad56 ad56 ad56 * 5339 * 8ea1d3b9,d3b9,8ea1d3b9v,d3b9v 82db e88b9b 82db 000082db ad56 ad56 ad56 ad56 ad56 ad56 ad56 -2030 ad57 ad57 ad57 * 533a * 8ea1d3ba,d3ba,8ea1d3bav,d3bav 82e6 e88ba6 82e6 000082e6 ad57 ad57 ad57 ad57 ad57 ad57 ad57 -2031 ad58 ad58 ad58 * 533b * 8ea1d3bb,d3bb,8ea1d3bbv,d3bbv 8304 e88c84 8304 00008304 ad58 ad58 ad58 ad58 ad58 ad58 ad58 -2032 ad59 ad59 ad59 * 533c * 8ea1d3bc,d3bc,8ea1d3bcv,d3bcv 82e5 e88ba5 82e5 000082e5 ad59 ad59 ad59 ad59 ad59 ad59 ad59 -2033 ad5a ad5a ad5a * 533d * 8ea1d3bd,d3bd,8ea1d3bdv,d3bdv 8302 e88c82 8302 00008302 ad5a ad5a ad5a ad5a ad5a ad5a ad5a -2034 ad5b ad5b ad5b * 533e * 8ea1d3be,d3be,8ea1d3bev,d3bev 8309 e88c89 8309 00008309 ad5b ad5b ad5b ad5b ad5b ad5b ad5b -2035 ad5c ad5c ad5c * 533f * 8ea1d3bf,d3bf,8ea1d3bfv,d3bfv 82d2 e88b92 82d2 000082d2 ad5c ad5c ad5c ad5c ad5c ad5c ad5c -2036 ad5d ad5d ad5d * 5340 * 8ea1d3c0,d3c0,8ea1d3c0v,d3c0v 82d7 e88b97 82d7 000082d7 ad5d ad5d ad5d ad5d ad5d ad5d ad5d -2037 ad5e ad5e ad5e * 5341 * 8ea1d3c1,d3c1,8ea1d3c1v,d3c1v 82f1 e88bb1 82f1 000082f1 ad5e ad5e ad5e ad5e ad5e ad5e ad5e -2038 ad5f ad5f ad5f * 5342 * 8ea1d3c2,d3c2,8ea1d3c2v,d3c2v 8301 e88c81 8301 00008301 ad5f ad5f ad5f ad5f ad5f ad5f ad5f -2039 ad60 ad60 ad60 * 5343 * 8ea1d3c3,d3c3,8ea1d3c3v,d3c3v 82dc e88b9c 82dc 000082dc ad60 ad60 ad60 ad60 ad60 ad60 ad60 -2040 ad61 ad61 ad61 * 5344 * 8ea1d3c4,d3c4,8ea1d3c4v,d3c4v 82d4 e88b94 82d4 000082d4 ad61 ad61 ad61 ad61 ad61 ad61 ad61 -2041 ad62 ad62 ad62 * 5345 * 8ea1d3c5,d3c5,8ea1d3c5v,d3c5v 82d1 e88b91 82d1 000082d1 ad62 ad62 ad62 ad62 ad62 ad62 ad62 -2042 ad63 ad63 ad63 * 5346 * 8ea1d3c6,d3c6,8ea1d3c6v,d3c6v 82de e88b9e 82de 000082de ad63 ad63 ad63 ad63 ad63 ad63 ad63 -2043 ad64 ad64 ad64 * 5347 * 8ea1d3c7,d3c7,8ea1d3c7v,d3c7v 82d3 e88b93 82d3 000082d3 ad64 ad64 ad64 ad64 ad64 ad64 ad64 -2044 ad65 ad65 ad65 * 5348 * 8ea1d3c8,d3c8,8ea1d3c8v,d3c8v 82df e88b9f 82df 000082df ad65 ad65 ad65 ad65 ad65 ad65 ad65 -2045 ad66 ad66 ad66 * 5349 * 8ea1d3c9,d3c9,8ea1d3c9v,d3c9v 82ef e88baf 82ef 000082ef ad66 ad66 ad66 ad66 ad66 ad66 ad66 -2046 ad67 ad67 ad67 * 534a * 8ea1d3ca,d3ca,8ea1d3cav,d3cav 8306 e88c86 8306 00008306 ad67 ad67 ad67 ad67 ad67 ad67 ad67 -2047 ad68 ad68 ad68 * 534b * 8ea1d3cb,d3cb,8ea1d3cbv,d3cbv 8650 e89990 8650 00008650 ad68 ad68 ad68 ad68 ad68 ad68 ad68 -2048 ad69 ad69 ad69 * 534c * 8ea1d3cc,d3cc,8ea1d3ccv,d3ccv 8679 e899b9 8679 00008679 ad69 ad69 ad69 ad69 ad69 ad69 ad69 -2049 ad6a ad6a ad6a * 534d * 8ea1d3cd,d3cd,8ea1d3cdv,d3cdv 867b e899bb 867b 0000867b ad6a ad6a ad6a ad6a ad6a ad6a ad6a -2050 ad6b ad6b ad6b * 534e * 8ea1d3ce,d3ce,8ea1d3cev,d3cev 867a e899ba 867a 0000867a ad6b ad6b ad6b ad6b ad6b ad6b ad6b -2051 ad6c ad6c ad6c * 534f * 8ea1d3cf,d3cf,8ea1d3cfv,d3cfv 884d e8a18d 884d 0000884d ad6c ad6c ad6c ad6c ad6c ad6c ad6c -2052 ad6d ad6d ad6d * 5350 * 8ea1d3d0,d3d0,8ea1d3d0v,d3d0v 886b e8a1ab 886b 0000886b ad6d ad6d ad6d ad6d ad6d ad6d ad6d -2053 ad6e ad6e ad6e * 5351 * 8ea1d3d1,d3d1,8ea1d3d1v,d3d1v 8981 e8a681 8981 00008981 ad6e ad6e ad6e ad6e ad6e ad6e ad6e -2054 ad6f ad6f ad6f * 5352 * 8ea1d3d2,d3d2,8ea1d3d2v,d3d2v 89d4 e8a794 89d4 000089d4 ad6f ad6f ad6f ad6f ad6f ad6f ad6f -2055 ad70 ad70 ad70 * 5353 * 8ea1d3d3,d3d3,8ea1d3d3v,d3d3v 8a08 e8a888 8a08 00008a08 ad70 ad70 ad70 ad70 ad70 ad70 ad70 -2056 ad71 ad71 ad71 * 5354 * 8ea1d3d4,d3d4,8ea1d3d4v,d3d4v 8a02 e8a882 8a02 00008a02 ad71 ad71 ad71 ad71 ad71 ad71 ad71 -2057 ad72 ad72 ad72 * 5355 * 8ea1d3d5,d3d5,8ea1d3d5v,d3d5v 8a03 e8a883 8a03 00008a03 ad72 ad72 ad72 ad72 ad72 ad72 ad72 -2058 ad73 ad73 ad73 * 5356 * 8ea1d3d6,d3d6,8ea1d3d6v,d3d6v 8c9e e8b29e 8c9e 00008c9e ad73 ad73 ad73 ad73 ad73 ad73 ad73 -2059 ad74 ad74 ad74 * 5357 * 8ea1d3d7,d3d7,8ea1d3d7v,d3d7v 8ca0 e8b2a0 8ca0 00008ca0 ad74 ad74 ad74 ad74 ad74 ad74 ad74 -2060 ad75 ad75 ad75 * 5358 * 8ea1d3d8,d3d8,8ea1d3d8v,d3d8v 8d74 e8b5b4 8d74 00008d74 ad75 ad75 ad75 ad75 ad75 ad75 ad75 -2061 ad76 ad76 ad76 * 5359 * 8ea1d3d9,d3d9,8ea1d3d9v,d3d9v 8d73 e8b5b3 8d73 00008d73 ad76 ad76 ad76 ad76 ad76 ad76 ad76 -2062 ad77 ad77 ad77 * 535a * 8ea1d3da,d3da,8ea1d3dav,d3dav 8db4 e8b6b4 8db4 00008db4 ad77 ad77 ad77 ad77 ad77 ad77 ad77 -2063 ad78 ad78 ad78 * 535b * 8ea1d3db,d3db,8ea1d3dbv,d3dbv 8ecd e8bb8d 8ecd 00008ecd ad78 ad78 ad78 ad78 ad78 ad78 ad78 -2064 ad79 ad79 ad79 * 535c * 8ea1d3dc,d3dc,8ea1d3dcv,d3dcv 8ecc e8bb8c 8ecc 00008ecc ad79 ad79 ad79 ad79 ad79 ad79 ad79 -2065 ad7a ad7a ad7a * 535d * 8ea1d3dd,d3dd,8ea1d3ddv,d3ddv 8ff0 e8bfb0 8ff0 00008ff0 ad7a ad7a ad7a ad7a ad7a ad7a ad7a -2066 ad7b ad7b ad7b * 535e * 8ea1d3de,d3de,8ea1d3dev,d3dev 8fe6 e8bfa6 8fe6 00008fe6 ad7b ad7b ad7b ad7b ad7b ad7b ad7b -2067 ad7c ad7c ad7c * 535f * 8ea1d3df,d3df,8ea1d3dfv,d3dfv 8fe2 e8bfa2 8fe2 00008fe2 ad7c ad7c ad7c ad7c ad7c ad7c ad7c -2068 ad7d ad7d ad7d * 5360 * 8ea1d3e0,d3e0,8ea1d3e0v,d3e0v 8fea e8bfaa 8fea 00008fea ad7d ad7d ad7d ad7d ad7d ad7d ad7d -2069 ad7e ad7e ad7e * 5361 * 8ea1d3e1,d3e1,8ea1d3e1v,d3e1v 8fe5 e8bfa5 8fe5 00008fe5 ad7e ad7e ad7e ad7e ad7e ad7e ad7e -2070 ada1 ada1 ada1 * 5362 * 8ea1d3e2,d3e2,8ea1d3e2v,d3e2v 8fed e8bfad 8fed 00008fed ada1 ada1 ada1 ada1 ada1 ada1 ada1 -2071 ada2 ada2 ada2 * 5363 * 8ea1d3e3,d3e3,8ea1d3e3v,d3e3v 8feb e8bfab 8feb 00008feb ada2 ada2 ada2 ada2 ada2 ada2 ada2 -2072 ada3 ada3 ada3 * 5364 * 8ea1d3e4,d3e4,8ea1d3e4v,d3e4v 8fe4 e8bfa4 8fe4 00008fe4 ada3 ada3 ada3 ada3 ada3 ada3 ada3 -2073 ada4 ada4 ada4 * 5365 * 8ea1d3e5,d3e5,8ea1d3e5v,d3e5v 8fe8 e8bfa8 8fe8 00008fe8 ada4 ada4 ada4 ada4 ada4 ada4 ada4 -2074 ada5 ada5 ada5 * 5366 * 8ea1d3e6,d3e6,8ea1d3e6v,d3e6v 90ca e9838a 90ca 000090ca ada5 ada5 ada5 ada5 ada5 ada5 ada5 -2075 ada6 ada6 ada6 * 5367 * 8ea1d3e7,d3e7,8ea1d3e7v,d3e7v 90ce e9838e 90ce 000090ce ada6 ada6 ada6 ada6 ada6 ada6 ada6 -2076 ada7 ada7 ada7 * 5368 * 8ea1d3e8,d3e8,8ea1d3e8v,d3e8v 90c1 e98381 90c1 000090c1 ada7 ada7 ada7 ada7 ada7 ada7 ada7 -2077 ada8 ada8 ada8 * 5369 * 8ea1d3e9,d3e9,8ea1d3e9v,d3e9v 90c3 e98383 90c3 000090c3 ada8 ada8 ada8 ada8 ada8 ada8 ada8 -2078 ada9 ada9 ada9 * 536a * 8ea1d3ea,d3ea,8ea1d3eav,d3eav 914b e9858b 914b 0000914b ada9 ada9 ada9 ada9 ada9 ada9 ada9 -2079 adaa adaa adaa * 536b * 8ea1d3eb,d3eb,8ea1d3ebv,d3ebv 914a e9858a 914a 0000914a adaa adaa adaa adaa adaa adaa adaa -2080 adab adab adab * 536c * 8ea1d3ec,d3ec,8ea1d3ecv,d3ecv 91cd e9878d 91cd 000091cd adab adab adab adab adab adab adab -2081 adac adac adac * 536d * 8ea1d3ed,d3ed,8ea1d3edv,d3edv 9582 e99682 9582 00009582 adac adac adac adac adac adac adac -2082 adad adad adad * 536e * 8ea1d3ee,d3ee,8ea1d3eev,d3eev 9650 e99990 9650 00009650 adad adad adad adad adad adad adad -2083 adae adae adae * 536f * 8ea1d3ef,d3ef,8ea1d3efv,d3efv 964b e9998b 964b 0000964b adae adae adae adae adae adae adae -2084 adaf adaf adaf * 5370 * 8ea1d3f0,d3f0,8ea1d3f0v,d3f0v 964c e9998c 964c 0000964c adaf adaf adaf adaf adaf adaf adaf -2085 adb0 adb0 adb0 * 5371 * 8ea1d3f1,d3f1,8ea1d3f1v,d3f1v 964d e9998d 964d 0000964d adb0 adb0 adb0 adb0 adb0 adb0 adb0 -2086 adb1 adb1 adb1 * 2871,5372 * 8ea1a8f1,8ea1d3f2,a8f1,d3f2,8ea1a8f1v,8ea1d3f2v,a8f1v,d3f2v 9762 e99da2,e2beaf 9762,2faf 00009762,00002faf adb1 adb1 adb1 adb1 adb1 adb1 adb1 -2087 adb2 adb2 adb2 * 2872,5373 * 8ea1a8f2,8ea1d3f3,a8f2,d3f3,8ea1a8f2v,8ea1d3f3v,a8f2v,d3f3v 9769 e99da9,e2beb0 9769,2fb0 00009769,00002fb0 adb2 adb2 adb2 adb2 adb2 adb2 adb2 -2088 adb3 adb3 adb3 * 2873,5374 * 8ea1a8f3,8ea1d3f4,a8f3,d3f4,8ea1a8f3v,8ea1d3f4v,a8f3v,d3f4v 97cb e99f8b,e2beb1 97cb,2fb1 000097cb,00002fb1 adb3 adb3 adb3 adb3 adb3 adb3 adb3 -2089 adb4 adb4 adb4 * 2874,5375 * 8ea1a8f4,8ea1d3f5,a8f4,d3f5,8ea1a8f4v,8ea1d3f5v,a8f4v,d3f5v 97ed e99fad,e2beb2 97ed,2fb2 000097ed,00002fb2 adb4 adb4 adb4 adb4 adb4 adb4 adb4 -2090 adb5 adb5 adb5 * 2875,5376 * 8ea1a8f5,8ea1d3f6,a8f5,d3f6,8ea1a8f5v,8ea1d3f6v,a8f5v,d3f6v 97f3 e99fb3,e2beb3 97f3,2fb3 000097f3,00002fb3 adb5 adb5 adb5 adb5 adb5 adb5 adb5 -2091 adb6 adb6 adb6 * 2876,5377 * 8ea1a8f6,8ea1d3f7,a8f6,d3f7,8ea1a8f6v,8ea1d3f7v,a8f6v,d3f7v 9801 e9a081,e2beb4 9801,2fb4 00009801,00002fb4 adb6 adb6 adb6 adb6 adb6 adb6 adb6 -2092 adb7 adb7 adb7 * 2877,5378 * 8ea1a8f7,8ea1d3f8,a8f7,d3f8,8ea1a8f7v,8ea1d3f8v,a8f7v,d3f8v 98a8 e9a2a8,e2beb5 98a8,2fb5 000098a8,00002fb5 adb7 adb7 adb7 adb7 adb7 adb7 adb7 -2093 adb8 adb8 adb8 * 2878,5379 * 8ea1a8f8,8ea1d3f9,a8f8,d3f9,8ea1a8f8v,8ea1d3f9v,a8f8v,d3f9v 98db e9a39b,e2beb6 98db,2fb6 000098db,00002fb6 adb8 adb8 adb8 adb8 adb8 adb8 adb8 -2094 adb9 adb9 adb9 * 2879,537a * 8ea1a8f9,8ea1d3fa,a8f9,d3fa,8ea1a8f9v,8ea1d3fav,a8f9v,d3fav 98df e9a39f,e2beb7 98df,2fb7 000098df,00002fb7 adb9 adb9 adb9 adb9 adb9 adb9 adb9 -2095 adba adba adba * 287a,537b * 8ea1a8fa,8ea1d3fb,a8fa,d3fb,8ea1a8fav,8ea1d3fbv,a8fav,d3fbv 9996 e9a696,e2beb8 9996,2fb8 00009996,00002fb8 adba adba adba adba adba adba adba -2096 adbb adbb adbb * 287b,537c * 8ea1a8fb,8ea1d3fc,a8fb,d3fc,8ea1a8fbv,8ea1d3fcv,a8fbv,d3fcv 9999 e9a699,e2beb9 9999,2fb9 00009999,00002fb9 adbb adbb adbb adbb adbb adbb adbb -2097 adbc adbc adbc * 537d * 8ea1d3fd,d3fd,8ea1d3fdv,d3fdv 4e58 e4b998 4e58 00004e58 adbc adbc adbc adbc adbc adbc adbc -2098 adbd adbd adbd * 537e * 8ea1d3fe,d3fe,8ea1d3fev,d3fev 4eb3 e4bab3 4eb3 00004eb3 adbd adbd adbd adbd adbd adbd adbd -2099 adbe adbe adbe * 5421 * 8ea1d4a1,d4a1,8ea1d4a1v,d4a1v 500c e5808c 500c 0000500c adbe adbe adbe adbe adbe adbe adbe -2100 adbf adbf adbf * 5422 * 8ea1d4a2,d4a2,8ea1d4a2v,d4a2v 500d e5808d 500d 0000500d adbf adbf adbf adbf adbf adbf adbf -2101 adc0 adc0 adc0 * 5423 * 8ea1d4a3,d4a3,8ea1d4a3v,d4a3v 5023 e580a3 5023 00005023 adc0 adc0 adc0 adc0 adc0 adc0 adc0 -2102 adc1 adc1 adc1 * 5424 * 8ea1d4a4,d4a4,8ea1d4a4v,d4a4v 4fef e4bfaf 4fef 00004fef adc1 adc1 adc1 adc1 adc1 adc1 adc1 -2103 adc2 adc2 adc2 * 5425 * 8ea1d4a5,d4a5,8ea1d4a5v,d4a5v 5026 e580a6 5026 00005026 adc2 adc2 adc2 adc2 adc2 adc2 adc2 -2104 adc3 adc3 adc3 * 5426 * 8ea1d4a6,d4a6,8ea1d4a6v,d4a6v 5025 e580a5 5025 00005025 adc3 adc3 adc3 adc3 adc3 adc3 adc3 -2105 adc4 adc4 adc4 * 5427 * 8ea1d4a7,d4a7,8ea1d4a7v,d4a7v 4ff8 e4bfb8 4ff8 00004ff8 adc4 adc4 adc4 adc4 adc4 adc4 adc4 -2106 adc5 adc5 adc5 * 5428 * 8ea1d4a8,d4a8,8ea1d4a8v,d4a8v 5029 e580a9,ee809f 5029,e01f 00005029,0000e01f fa5f,adc5 adc5 adc5 adc5 adc5 adc5 fa5f,adc5 -2107 adc6 adc6 adc6 * 5429 * 8ea1d4a9,d4a9,8ea1d4a9v,d4a9v 5016 e58096 5016 00005016 adc6 adc6 adc6 adc6 adc6 adc6 adc6 -2108 adc7 adc7 adc7 * 542a * 8ea1d4aa,d4aa,8ea1d4aav,d4aav 5006 e58086 5006 00005006 adc7 adc7 adc7 adc7 adc7 adc7 adc7 -2109 adc8 adc8 adc8 * 542b * 8ea1d4ab,d4ab,8ea1d4abv,d4abv 503c e580bc 503c 0000503c adc8 adc8 adc8 adc8 adc8 adc8 adc8 -2110 adc9 adc9 adc9 * 542c * 8ea1d4ac,d4ac,8ea1d4acv,d4acv 501f e5809f 501f 0000501f adc9 adc9 adc9 adc9 adc9 adc9 adc9 -2111 adca adca adca * 542d * 8ea1d4ad,d4ad,8ea1d4adv,d4adv 501a e5809a 501a 0000501a adca adca adca adca adca adca adca -2112 adcb adcb adcb * 542e * 8ea1d4ae,d4ae,8ea1d4aev,d4aev 5012 e58092 5012 00005012 adcb adcb adcb adcb adcb adcb adcb -2113 adcc adcc adcc * 542f * 8ea1d4af,d4af,8ea1d4afv,d4afv 5011 e58091 5011 00005011 adcc adcc adcc adcc adcc adcc adcc -2114 adcd adcd adcd * 5430 * 8ea1d4b0,d4b0,8ea1d4b0v,d4b0v 4ffa e4bfba 4ffa 00004ffa adcd adcd adcd adcd adcd adcd adcd -2115 adce adce adce * 5431 * 8ea1d4b1,d4b1,8ea1d4b1v,d4b1v 5000 e58080 5000 00005000 adce adce adce adce adce adce adce -2116 adcf adcf adcf * 5432 * 8ea1d4b2,d4b2,8ea1d4b2v,d4b2v 5014 e58094 5014 00005014 adcf adcf adcf adcf adcf adcf adcf -2117 add0 add0 add0 * 5433 * 8ea1d4b3,d4b3,8ea1d4b3v,d4b3v 5028 e580a8 5028 00005028 add0 add0 add0 add0 add0 add0 add0 -2118 add1 add1 add1 * 5434 * 8ea1d4b4,d4b4,8ea1d4b4v,d4b4v 4ff1 e4bfb1 4ff1 00004ff1 add1 add1 add1 add1 add1 add1 add1 -2119 add2 add2 add2 * 5435 * 8ea1d4b5,d4b5,8ea1d4b5v,d4b5v 5021 e580a1 5021 00005021 add2 add2 add2 add2 add2 add2 add2 -2120 add3 add3 add3 * 5436 * 8ea1d4b6,d4b6,8ea1d4b6v,d4b6v 500b e5808b 500b 0000500b add3 add3 add3 add3 add3 add3 add3 -2121 add4 add4 add4 * 5437 * 8ea1d4b7,d4b7,8ea1d4b7v,d4b7v 5019 e58099 5019 00005019 add4 add4 add4 add4 add4 add4 add4 -2122 add5 add5 add5 * 5438 * 8ea1d4b8,d4b8,8ea1d4b8v,d4b8v 5018 e58098 5018 00005018 add5 add5 add5 add5 add5 add5 add5 -2123 add6 add6 add6 * 5439 * 8ea1d4b9,d4b9,8ea1d4b9v,d4b9v 4ff3 e4bfb3 4ff3 00004ff3 add6 add6 add6 add6 add6 add6 add6 -2124 add7 add7 add7 * 543a * 8ea1d4ba,d4ba,8ea1d4bav,d4bav 4fee e4bfae 4fee 00004fee add7 add7 add7 add7 add7 add7 add7 -2125 add8 add8 add8 * 543b * 8ea1d4bb,d4bb,8ea1d4bbv,d4bbv 502d e580ad 502d 0000502d add8 add8 add8 add8 add8 add8 add8 -2126 add9 add9 add9 * 543c * 8ea1d4bc,d4bc,8ea1d4bcv,d4bcv 502a e580aa 502a 0000502a add9 add9 add9 add9 add9 add9 add9 -2127 adda adda adda * 543d * 8ea1d4bd,d4bd,8ea1d4bdv,d4bdv 4ffe e4bfbe 4ffe 00004ffe adda adda adda adda adda adda adda -2128 addb addb addb * 543e * 8ea1d4be,d4be,8ea1d4bev,d4bev 502b e580ab 502b 0000502b addb addb addb addb addb addb addb -2129 addc addc addc * 543f * 8ea1d4bf,d4bf,8ea1d4bfv,d4bfv 5009 e58089 5009 00005009 addc addc addc addc addc addc addc -2130 addd addd addd * 5440 * 8ea1d4c0,d4c0,8ea1d4c0v,d4c0v 517c e585bc 517c 0000517c addd addd addd addd addd addd addd -2131 adde adde adde * 5441 * 8ea1d4c1,d4c1,8ea1d4c1v,d4c1v 51a4 e586a4 51a4 000051a4 adde adde adde adde adde adde adde -2132 addf addf addf * 5442 * 8ea1d4c2,d4c2,8ea1d4c2v,d4c2v 51a5 e586a5 51a5 000051a5 addf addf addf addf addf addf addf -2133 ade0 ade0 ade0 * 5443 * 8ea1d4c3,d4c3,8ea1d4c3v,d4c3v 51a2 e586a2 51a2 000051a2 ade0 ade0 ade0 ade0 ade0 ade0 ade0 -2134 ade1 ade1 ade1 * 5444 * 8ea1d4c4,d4c4,8ea1d4c4v,d4c4v 51cd e5878d 51cd 000051cd ade1 ade1 ade1 ade1 ade1 ade1 ade1 -2135 ade2 ade2 ade2 * 5445 * 8ea1d4c5,d4c5,8ea1d4c5v,d4c5v 51cc e5878c 51cc 000051cc ade2 ade2 ade2 ade2 ade2 ade2 ade2 -2136 ade3 ade3 ade3 * 5446 * 8ea1d4c6,d4c6,8ea1d4c6v,d4c6v 51c6 e58786 51c6 000051c6 ade3 ade3 ade3 ade3 ade3 ade3 ade3 -2137 ade4 ade4 ade4 * 5447 * 8ea1d4c7,d4c7,8ea1d4c7v,d4c7v 51cb e5878b 51cb 000051cb ade4 ade4 ade4 ade4 ade4 ade4 ade4 -2138 ade5 ade5 ade5 * 5448 * 8ea1d4c8,d4c8,8ea1d4c8v,d4c8v 5256 e58996 5256 00005256 ade5 ade5 ade5 ade5 ade5 ade5 ade5 -2139 ade6 ade6 ade6 * 5449 * 8ea1d4c9,d4c9,8ea1d4c9v,d4c9v 525c e5899c 525c 0000525c ade6 ade6 ade6 ade6 ade6 ade6 ade6 -2140 ade7 ade7 ade7 * 544a * 8ea1d4ca,d4ca,8ea1d4cav,d4cav 5254 e58994 5254 00005254 ade7 ade7 ade7 ade7 ade7 ade7 ade7 -2141 ade8 ade8 ade8 * 544b * 8ea1d4cb,d4cb,8ea1d4cbv,d4cbv 525b e5899b 525b 0000525b ade8 ade8 ade8 ade8 ade8 ade8 ade8 -2142 ade9 ade9 ade9 * 544c * 8ea1d4cc,d4cc,8ea1d4ccv,d4ccv 525d e5899d 525d 0000525d ade9 ade9 ade9 ade9 ade9 ade9 ade9 -2143 adea adea adea * 544d * 8ea1d4cd,d4cd,8ea1d4cdv,d4cdv 532a e58caa 532a 0000532a adea adea adea adea adea adea adea -2144 adeb adeb adeb * 544e * 8ea1d4ce,d4ce,8ea1d4cev,d4cev 537f e58dbf,ee81b3 537f,e073 0000537f,0000e073 fad5,adeb adeb adeb adeb adeb adeb fad5,adeb -2145 adec adec adec * 544f * 8ea1d4cf,d4cf,8ea1d4cfv,d4cfv 539f e58e9f 539f 0000539f adec adec adec adec adec adec adec -2146 aded aded aded * 5450 * 8ea1d4d0,d4d0,8ea1d4d0v,d4d0v 539d e58e9d 539d 0000539d aded aded aded aded aded aded aded -2147 adee adee adee * 5451 * 8ea1d4d1,d4d1,8ea1d4d1v,d4d1v 53df e58f9f 53df 000053df adee adee adee adee adee adee adee -2148 adef adef adef * 5452 * 8ea1d4d2,d4d2,8ea1d4d2v,d4d2v 54e8 e593a8 54e8 000054e8 adef adef adef adef adef adef adef -2149 adf0 adf0 adf0 * 5453 * 8ea1d4d3,d4d3,8ea1d4d3v,d4d3v 5510 e59490 5510 00005510 adf0 adf0 adf0 adf0 adf0 adf0 adf0 -2150 adf1 adf1 adf1 * 5454 * 8ea1d4d4,d4d4,8ea1d4d4v,d4d4v 5501 e59481 5501 00005501 adf1 adf1 adf1 adf1 adf1 adf1 adf1 -2151 adf2 adf2 adf2 * 5455 * 8ea1d4d5,d4d5,8ea1d4d5v,d4d5v 5537 e594b7 5537 00005537 adf2 adf2 adf2 adf2 adf2 adf2 adf2 -2152 adf3 adf3 adf3 * 5456 * 8ea1d4d6,d4d6,8ea1d4d6v,d4d6v 54fc e593bc 54fc 000054fc adf3 adf3 adf3 adf3 adf3 adf3 adf3 -2153 adf4 adf4 adf4 * 5457 * 8ea1d4d7,d4d7,8ea1d4d7v,d4d7v 54e5 e593a5 54e5 000054e5 adf4 adf4 adf4 adf4 adf4 adf4 adf4 -2154 adf5 adf5 adf5 * 5458 * 8ea1d4d8,d4d8,8ea1d4d8v,d4d8v 54f2 e593b2 54f2 000054f2 adf5 adf5 adf5 adf5 adf5 adf5 adf5 -2155 adf6 adf6 adf6 * 5459 * 8ea1d4d9,d4d9,8ea1d4d9v,d4d9v 5506 e59486 5506 00005506 adf6 adf6 adf6 adf6 adf6 adf6 adf6 -2156 adf7 adf7 adf7 * 545a * 8ea1d4da,d4da,8ea1d4dav,d4dav 54fa e593ba 54fa 000054fa adf7 adf7 adf7 adf7 adf7 adf7 adf7 -2157 adf8 adf8 adf8 * 545b * 8ea1d4db,d4db,8ea1d4dbv,d4dbv 5514 e59494 5514 00005514 adf8 adf8 adf8 adf8 adf8 adf8 adf8 -2158 adf9 adf9 adf9 * 545c * 8ea1d4dc,d4dc,8ea1d4dcv,d4dcv 54e9 e593a9 54e9 000054e9 adf9 adf9 adf9 adf9 adf9 adf9 adf9 -2159 adfa adfa adfa * 545d * 8ea1d4dd,d4dd,8ea1d4ddv,d4ddv 54ed e593ad 54ed 000054ed adfa adfa adfa adfa adfa adfa adfa -2160 adfb adfb adfb * 545e * 8ea1d4de,d4de,8ea1d4dev,d4dev 54e1 e593a1 54e1 000054e1 adfb adfb adfb adfb adfb adfb adfb -2161 adfc adfc adfc * 545f * 8ea1d4df,d4df,8ea1d4dfv,d4dfv 5509 e59489 5509 00005509 adfc adfc,fbd3 9062,adfc adfc adfc adfc adfc -2162 adfd adfd adfd * 5460 * 8ea1d4e0,d4e0,8ea1d4e0v,d4e0v 54ee e593ae 54ee 000054ee adfd adfd adfd adfd adfd adfd adfd -2163 adfe adfe adfe * 5461 * 8ea1d4e1,d4e1,8ea1d4e1v,d4e1v 54ea e593aa 54ea 000054ea adfe adfe adfe adfe adfe adfe adfe -2164 ae40 ae40 ae40 * 5462 * 8ea1d4e2,d4e2,8ea1d4e2v,d4e2v 54e6 e593a6 54e6 000054e6 ae40 ae40 ae40 ae40 ae40 ae40 ae40 -2165 ae41 ae41 ae41 * 5463 * 8ea1d4e3,d4e3,8ea1d4e3v,d4e3v 5527 e594a7 5527 00005527 ae41 ae41 ae41 ae41 ae41 ae41 ae41 -2166 ae42 ae42 ae42 * 5464 * 8ea1d4e4,d4e4,8ea1d4e4v,d4e4v 5507 e59487 5507 00005507 ae42 ae42 ae42 ae42 ae42 ae42 ae42 -2167 ae43 ae43 ae43 * 5465 * 8ea1d4e5,d4e5,8ea1d4e5v,d4e5v 54fd e593bd 54fd 000054fd ae43 ae43 ae43 ae43 ae43 ae43 ae43 -2168 ae44 ae44 ae44 * 5466 * 8ea1d4e6,d4e6,8ea1d4e6v,d4e6v 550f e5948f 550f 0000550f ae44 ae44 ae44 ae44 ae44 ae44 ae44 -2169 ae45 ae45 ae45 * 5467 * 8ea1d4e7,d4e7,8ea1d4e7v,d4e7v 5703 e59c83 5703 00005703 ae45 ae45 ae45 ae45 ae45 ae45 ae45 -2170 ae46 ae46 ae46 * 5468 * 8ea1d4e8,d4e8,8ea1d4e8v,d4e8v 5704 e59c84 5704 00005704 ae46 ae46 ae46 ae46 ae46 ae46 ae46 -2171 ae47 ae47 ae47 * 5469 * 8ea1d4e9,d4e9,8ea1d4e9v,d4e9v 57c2 e59f82 57c2 000057c2 ae47 ae47 ae47 ae47 ae47 ae47 ae47 -2172 ae48 ae48 ae48 * 546a * 8ea1d4ea,d4ea,8ea1d4eav,d4eav 57d4 e59f94 57d4 000057d4 ae48 ae48 ae48 ae48 ae48 ae48 ae48 -2173 ae49 ae49 ae49 * 546b * 8ea1d4eb,d4eb,8ea1d4ebv,d4ebv 57cb e59f8b 57cb 000057cb ae49 ae49 ae49 ae49 ae49 ae49 ae49 -2174 ae4a ae4a ae4a * 546c * 8ea1d4ec,d4ec,8ea1d4ecv,d4ecv 57c3 e59f83 57c3 000057c3 ae4a ae4a ae4a ae4a ae4a ae4a ae4a -2175 ae4b ae4b ae4b * 546d * 8ea1d4ed,d4ed,8ea1d4edv,d4edv 5809 e5a089 5809 00005809 ae4b ae4b ae4b ae4b ae4b ae4b ae4b -2176 ae4c ae4c ae4c * 546e * 8ea1d4ee,d4ee,8ea1d4eev,d4eev 590f e5a48f 590f 0000590f ae4c ae4c ae4c ae4c ae4c ae4c ae4c -2177 ae4d ae4d ae4d * 546f * 8ea1d4ef,d4ef,8ea1d4efv,d4efv 5957 e5a597 5957 00005957 ae4d ae4d ae4d ae4d ae4d ae4d ae4d -2178 ae4e ae4e ae4e * 5470 * 8ea1d4f0,d4f0,8ea1d4f0v,d4f0v 5958 e5a598 5958 00005958 ae4e ae4e ae4e ae4e ae4e ae4e ae4e -2179 ae4f ae4f ae4f * 5471 * 8ea1d4f1,d4f1,8ea1d4f1v,d4f1v 595a e5a59a 595a 0000595a ae4f ae4f ae4f ae4f ae4f ae4f ae4f -2180 ae50 ae50 ae50 * 5472 * 8ea1d4f2,d4f2,8ea1d4f2v,d4f2v 5a11 e5a891 5a11 00005a11 ae50 ae50 ae50 ae50 ae50 ae50 ae50 -2181 ae51 ae51 ae51 * 5473 * 8ea1d4f3,d4f3,8ea1d4f3v,d4f3v 5a18 e5a898 5a18 00005a18 ae51 ae51 ae51 ae51 ae51 ae51 ae51 -2182 ae52 ae52 ae52 * 5474 * 8ea1d4f4,d4f4,8ea1d4f4v,d4f4v 5a1c e5a89c 5a1c 00005a1c ae52 ae52 ae52 ae52 ae52 ae52 ae52 -2183 ae53 ae53 ae53 * 5475 * 8ea1d4f5,d4f5,8ea1d4f5v,d4f5v 5a1f e5a89f 5a1f 00005a1f ae53 ae53 ae53 ae53 ae53 ae53 ae53 -2184 ae54 ae54 ae54 * 5476 * 8ea1d4f6,d4f6,8ea1d4f6v,d4f6v 5a1b e5a89b 5a1b 00005a1b ae54 ae54 ae54 ae54 ae54 ae54 ae54 -2185 ae55 ae55 ae55 * 5477 * 8ea1d4f7,d4f7,8ea1d4f7v,d4f7v 5a13 e5a893 5a13 00005a13 ae55 ae55 ae55 ae55 ae55 ae55 ae55 -2186 ae56 ae56 ae56 * 5478 * 8ea1d4f8,d4f8,8ea1d4f8v,d4f8v 59ec e5a7ac 59ec 000059ec ae56 ae56 ae56 ae56 ae56 ae56 ae56 -2187 ae57 ae57 ae57 * 5479 * 8ea1d4f9,d4f9,8ea1d4f9v,d4f9v 5a20 e5a8a0 5a20 00005a20 ae57 ae57 ae57 ae57 ae57 ae57 ae57 -2188 ae58 ae58 ae58 * 547a * 8ea1d4fa,d4fa,8ea1d4fav,d4fav 5a23 e5a8a3 5a23 00005a23 ae58 ae58 ae58 ae58 ae58 ae58 ae58 -2189 ae59 ae59 ae59 * 547b * 8ea1d4fb,d4fb,8ea1d4fbv,d4fbv 5a29 e5a8a9 5a29 00005a29 ae59 ae59 ae59 ae59 ae59 ae59 ae59 -2190 ae5a ae5a ae5a * 547c * 8ea1d4fc,d4fc,8ea1d4fcv,d4fcv 5a25 e5a8a5 5a25 00005a25 ae5a ae5a ae5a ae5a ae5a ae5a ae5a -2191 ae5b ae5b ae5b * 547d * 8ea1d4fd,d4fd,8ea1d4fdv,d4fdv 5a0c e5a88c 5a0c 00005a0c ae5b ae5b ae5b ae5b ae5b ae5b ae5b -2192 ae5c ae5c ae5c * 547e * 8ea1d4fe,d4fe,8ea1d4fev,d4fev 5a09 e5a889 5a09 00005a09 ae5c ae5c ae5c ae5c ae5c ae5c ae5c -2193 ae5d ae5d ae5d * 5521 * 8ea1d5a1,d5a1,8ea1d5a1v,d5a1v 5b6b e5adab 5b6b 00005b6b ae5d ae5d ae5d ae5d ae5d ae5d ae5d -2194 ae5e ae5e ae5e * 5522 * 8ea1d5a2,d5a2,8ea1d5a2v,d5a2v 5c58 e5b198 5c58 00005c58 ae5e ae5e ae5e ae5e ae5e ae5e ae5e -2195 ae5f ae5f ae5f * 5523 * 8ea1d5a3,d5a3,8ea1d5a3v,d5a3v 5bb0 e5aeb0 5bb0 00005bb0 ae5f ae5f ae5f ae5f ae5f ae5f ae5f -2196 ae60 ae60 ae60 * 5524 * 8ea1d5a4,d5a4,8ea1d5a4v,d5a4v 5bb3 e5aeb3 5bb3 00005bb3 ae60 ae60 ae60 ae60 ae60 ae60 ae60 -2197 ae61 ae61 ae61 * 5525 * 8ea1d5a5,d5a5,8ea1d5a5v,d5a5v 5bb6 e5aeb6 5bb6 00005bb6 ae61 ae61 ae61 ae61 ae61 ae61 ae61 -2198 ae62 ae62 ae62 * 5526 * 8ea1d5a6,d5a6,8ea1d5a6v,d5a6v 5bb4 e5aeb4 5bb4 00005bb4 ae62 ae62 ae62 ae62 ae62 ae62 ae62 -2199 ae63 ae63 ae63 * 5527 * 8ea1d5a7,d5a7,8ea1d5a7v,d5a7v 5bae e5aeae 5bae 00005bae ae63 ae63 ae63 ae63 ae63 ae63 ae63 -2200 ae64 ae64 ae64 * 5528 * 8ea1d5a8,d5a8,8ea1d5a8v,d5a8v 5bb5 e5aeb5 5bb5 00005bb5 ae64 ae64 ae64 ae64 ae64 ae64 ae64 -2201 ae65 ae65 ae65 * 5529 * 8ea1d5a9,d5a9,8ea1d5a9v,d5a9v 5bb9 e5aeb9 5bb9 00005bb9 ae65 ae65 ae65 ae65 ae65 ae65 ae65 -2202 ae66 ae66 ae66 * 552a * 8ea1d5aa,d5aa,8ea1d5aav,d5aav 5bb8 e5aeb8 5bb8 00005bb8 ae66 ae66 ae66 ae66 ae66 ae66 ae66 -2203 ae67 ae67 ae67 * 552b * 8ea1d5ab,d5ab,8ea1d5abv,d5abv 5c04 e5b084 5c04 00005c04 ae67 ae67 ae67 ae67 ae67 ae67 ae67 -2204 ae68 ae68 ae68 * 552c * 8ea1d5ac,d5ac,8ea1d5acv,d5acv 5c51 e5b191 5c51 00005c51 ae68 ae68 ae68 ae68 ae68 ae68 ae68 -2205 ae69 ae69 ae69 * 552d * 8ea1d5ad,d5ad,8ea1d5adv,d5adv 5c55 e5b195 5c55 00005c55 ae69 ae69 ae69 ae69 ae69 ae69 ae69 -2206 ae6a ae6a ae6a * 552e * 8ea1d5ae,d5ae,8ea1d5aev,d5aev 5c50 e5b190 5c50 00005c50 ae6a ae6a ae6a ae6a ae6a ae6a ae6a -2207 ae6b ae6b ae6b * 552f * 8ea1d5af,d5af,8ea1d5afv,d5afv 5ced e5b3ad 5ced 00005ced ae6b ae6b ae6b ae6b ae6b ae6b ae6b -2208 ae6c ae6c ae6c * 5530 * 8ea1d5b0,d5b0,8ea1d5b0v,d5b0v 5cfd e5b3bd 5cfd 00005cfd ae6c ae6c ae6c ae6c ae6c ae6c ae6c -2209 ae6d ae6d ae6d * 5531 * 8ea1d5b1,d5b1,8ea1d5b1v,d5b1v 5cfb e5b3bb 5cfb 00005cfb ae6d ae6d ae6d ae6d ae6d ae6d ae6d -2210 ae6e ae6e ae6e * 5532 * 8ea1d5b2,d5b2,8ea1d5b2v,d5b2v 5cea e5b3aa 5cea 00005cea ae6e ae6e ae6e ae6e ae6e ae6e ae6e -2211 ae6f ae6f ae6f * 5533 * 8ea1d5b3,d5b3,8ea1d5b3v,d5b3v 5ce8 e5b3a8 5ce8 00005ce8 ae6f ae6f ae6f ae6f ae6f ae6f ae6f -2212 ae70 ae70 ae70 * 5534 * 8ea1d5b4,d5b4,8ea1d5b4v,d5b4v 5cf0 e5b3b0 5cf0 00005cf0 ae70 ae70 ae70 ae70 ae70 ae70 ae70 -2213 ae71 ae71 ae71 * 5535 * 8ea1d5b5,d5b5,8ea1d5b5v,d5b5v 5cf6 e5b3b6 5cf6 00005cf6 ae71 ae71 ae71 ae71 ae71 ae71 ae71 -2214 ae72 ae72 ae72 * 5536 * 8ea1d5b6,d5b6,8ea1d5b6v,d5b6v 5d01 e5b481 5d01 00005d01 ae72 ae72 ae72 ae72 ae72 ae72 ae72 -2215 ae73 ae73 ae73 * 5537 * 8ea1d5b7,d5b7,8ea1d5b7v,d5b7v 5cf4 e5b3b4 5cf4 00005cf4 ae73 ae73 ae73 ae73 ae73 ae73 ae73 -2216 ae74 ae74 ae74 * 5538 * 8ea1d5b8,d5b8,8ea1d5b8v,d5b8v 5dee e5b7ae 5dee 00005dee ae74 ae74 ae74 ae74 ae74 ae74 ae74 -2217 ae75 ae75 ae75 * 5539 * 8ea1d5b9,d5b9,8ea1d5b9v,d5b9v 5e2d e5b8ad 5e2d 00005e2d ae75 ae75 ae75 ae75 ae75 ae75 ae75 -2218 ae76 ae76 ae76 * 553a * 8ea1d5ba,d5ba,8ea1d5bav,d5bav 5e2b e5b8ab 5e2b 00005e2b ae76 ae76 ae76 ae76 ae76 ae76 ae76 -2219 ae77 ae77 ae77 * 553b * 8ea1d5bb,d5bb,8ea1d5bbv,d5bbv 5eab e5baab 5eab 00005eab ae77 ae77 ae77 ae77 ae77 ae77 ae77 -2220 ae78 ae78 ae78 * 553c * 8ea1d5bc,d5bc,8ea1d5bcv,d5bcv 5ead e5baad 5ead 00005ead ae78 ae78 ae78 ae78 ae78 ae78 ae78 -2221 ae79 ae79 ae79 * 553d * 8ea1d5bd,d5bd,8ea1d5bdv,d5bdv 5ea7 e5baa7 5ea7 00005ea7 ae79 ae79 ae79 ae79 ae79 ae79 ae79 -2222 ae7a ae7a ae7a * 553e * 8ea1d5be,d5be,8ea1d5bev,d5bev 5f31 e5bcb1 5f31 00005f31 ae7a ae7a ae7a ae7a ae7a ae7a ae7a -2223 ae7b ae7b ae7b * 553f * 8ea1d5bf,d5bf,8ea1d5bfv,d5bfv 5f92 e5be92 5f92 00005f92 ae7b ae7b ae7b ae7b ae7b ae7b ae7b -2224 ae7c ae7c ae7c * 5540 * 8ea1d5c0,d5c0,8ea1d5c0v,d5c0v 5f91 e5be91 5f91 00005f91 ae7c ae7c ae7c ae7c ae7c ae7c ae7c -2225 ae7d ae7d ae7d * 5541 * 8ea1d5c1,d5c1,8ea1d5c1v,d5c1v 5f90 e5be90 5f90 00005f90 ae7d ae7d ae7d ae7d ae7d ae7d ae7d -2226 ae7e ae7e ae7e * 5542 * 8ea1d5c2,d5c2,8ea1d5c2v,d5c2v 6059 e68199 6059 00006059 ae7e ae7e ae7e ae7e ae7e ae7e ae7e -2227 aea1 aea1 aea1 * 5543 * 8ea1d5c3,d5c3,8ea1d5c3v,d5c3v 6063 e681a3 6063 00006063 aea1 aea1 aea1 aea1 aea1 aea1 aea1 -2228 aea2 aea2 aea2 * 5544 * 8ea1d5c4,d5c4,8ea1d5c4v,d5c4v 6065 e681a5 6065 00006065 aea2 aea2 aea2 aea2 aea2 aea2 aea2 -2229 aea3 aea3 aea3 * 5545 * 8ea1d5c5,d5c5,8ea1d5c5v,d5c5v 6050 e68190 6050 00006050 aea3 aea3 aea3 aea3 aea3 aea3 aea3 -2230 aea4 aea4 aea4 * 5546 * 8ea1d5c6,d5c6,8ea1d5c6v,d5c6v 6055 e68195 6055 00006055 aea4 aea4 aea4 aea4 aea4 aea4 aea4 -2231 aea5 aea5 aea5 * 5547 * 8ea1d5c7,d5c7,8ea1d5c7v,d5c7v 606d e681ad 606d 0000606d aea5 aea5 aea5 aea5 aea5 aea5 aea5 -2232 aea6 aea6 aea6 * 5548 * 8ea1d5c8,d5c8,8ea1d5c8v,d5c8v 6069 e681a9 6069 00006069 aea6 aea6 aea6 aea6 aea6 aea6 aea6 -2233 aea7 aea7 aea7 * 5549 * 8ea1d5c9,d5c9,8ea1d5c9v,d5c9v 606f e681af 606f 0000606f aea7 aea7 aea7 aea7 aea7 aea7 aea7 -2234 aea8 aea8 aea8 * 554a * 8ea1d5ca,d5ca,8ea1d5cav,d5cav 6084 e68284 6084 00006084 aea8 aea8 aea8 aea8 aea8 aea8 aea8 -2235 aea9 aea9 aea9 * 554b * 8ea1d5cb,d5cb,8ea1d5cbv,d5cbv 609f e6829f 609f 0000609f aea9 aea9 aea9 aea9 aea9 aea9 aea9 -2236 aeaa aeaa aeaa * 554c * 8ea1d5cc,d5cc,8ea1d5ccv,d5ccv 609a e6829a 609a 0000609a aeaa aeaa aeaa aeaa aeaa aeaa aeaa -2237 aeab aeab aeab * 554d * 8ea1d5cd,d5cd,8ea1d5cdv,d5cdv 608d e6828d 608d 0000608d aeab aeab aeab aeab aeab aeab aeab -2238 aeac aeac aeac * 554e * 8ea1d5ce,d5ce,8ea1d5cev,d5cev 6094 e68294 6094 00006094 aeac aeac aeac aeac aeac aeac aeac -2239 aead aead aead * 554f * 8ea1d5cf,d5cf,8ea1d5cfv,d5cfv 608c e6828c 608c 0000608c aead aead aead aead aead aead aead -2240 aeae aeae aeae * 5550 * 8ea1d5d0,d5d0,8ea1d5d0v,d5d0v 6085 e68285 6085 00006085 aeae aeae aeae aeae aeae aeae aeae -2241 aeaf aeaf aeaf * 5551 * 8ea1d5d1,d5d1,8ea1d5d1v,d5d1v 6096 e68296 6096 00006096 aeaf aeaf aeaf aeaf aeaf aeaf aeaf -2242 aeb0 aeb0 aeb0 * 5552 * 8ea1d5d2,d5d2,8ea1d5d2v,d5d2v 6247 e68987 6247 00006247 aeb0 aeb0 aeb0 aeb0 aeb0 aeb0 aeb0 -2243 aeb1 aeb1 aeb1 * 5553 * 8ea1d5d3,d5d3,8ea1d5d3v,d5d3v 62f3 e68bb3 62f3 000062f3 aeb1 aeb1 aeb1 aeb1 aeb1 aeb1 aeb1 -2244 aeb2 aeb2 aeb2 * 5554 * 8ea1d5d4,d5d4,8ea1d5d4v,d5d4v 6308 e68c88 6308 00006308 aeb2 aeb2 aeb2 aeb2 aeb2 aeb2 aeb2 -2245 aeb3 aeb3 aeb3 * 5555 * 8ea1d5d5,d5d5,8ea1d5d5v,d5d5v 62ff e68bbf 62ff 000062ff aeb3 aeb3 aeb3 aeb3 aeb3 aeb3 aeb3 -2246 aeb4 aeb4 aeb4 * 5556 * 8ea1d5d6,d5d6,8ea1d5d6v,d5d6v 634e e68d8e 634e 0000634e aeb4 aeb4 aeb4 aeb4 aeb4 aeb4 aeb4 -2247 aeb5 aeb5 aeb5 * 5557 * 8ea1d5d7,d5d7,8ea1d5d7v,d5d7v 633e e68cbe 633e 0000633e aeb5 aeb5 aeb5 aeb5 aeb5 aeb5 aeb5 -2248 aeb6 aeb6 aeb6 * 5558 * 8ea1d5d8,d5d8,8ea1d5d8v,d5d8v 632f e68caf 632f 0000632f aeb6 aeb6 aeb6 aeb6 aeb6 aeb6 aeb6 -2249 aeb7 aeb7 aeb7 * 5559 * 8ea1d5d9,d5d9,8ea1d5d9v,d5d9v 6355 e68d95 6355 00006355 aeb7 aeb7 aeb7 aeb7 aeb7 aeb7 aeb7 -2250 aeb8 aeb8 aeb8 * 555a * 8ea1d5da,d5da,8ea1d5dav,d5dav 6342 e68d82 6342 00006342 aeb8 aeb8 aeb8 aeb8 aeb8 aeb8 aeb8 -2251 aeb9 aeb9 aeb9 * 555b * 8ea1d5db,d5db,8ea1d5dbv,d5dbv 6346 e68d86 6346 00006346 aeb9 aeb9 aeb9 aeb9 aeb9 aeb9 aeb9 -2252 aeba aeba aeba * 555c * 8ea1d5dc,d5dc,8ea1d5dcv,d5dcv 634f e68d8f 634f 0000634f aeba aeba aeba aeba aeba aeba aeba -2253 aebb aebb aebb * 555d * 8ea1d5dd,d5dd,8ea1d5ddv,d5ddv 6349 e68d89 6349 00006349 aebb aebb aebb aebb aebb aebb aebb -2254 aebc aebc aebc * 555e * 8ea1d5de,d5de,8ea1d5dev,d5dev 633a e68cba 633a 0000633a aebc aebc aebc aebc aebc aebc aebc -2255 aebd aebd aebd * 555f * 8ea1d5df,d5df,8ea1d5dfv,d5dfv 6350 e68d90 6350 00006350 aebd aebd aebd aebd aebd aebd aebd -2256 aebe aebe aebe * 5560 * 8ea1d5e0,d5e0,8ea1d5e0v,d5e0v 633d e68cbd 633d 0000633d aebe aebe aebe aebe aebe aebe aebe -2257 aebf aebf aebf * 5561 * 8ea1d5e1,d5e1,8ea1d5e1v,d5e1v 632a e68caa 632a 0000632a aebf aebf aebf aebf aebf aebf aebf -2258 aec0 aec0 aec0 * 5562 * 8ea1d5e2,d5e2,8ea1d5e2v,d5e2v 632b e68cab 632b 0000632b aec0 aec0 aec0 aec0 aec0 aec0 aec0 -2259 aec1 aec1 aec1 * 5563 * 8ea1d5e3,d5e3,8ea1d5e3v,d5e3v 6328 e68ca8 6328 00006328 aec1 aec1 aec1 aec1 aec1 aec1 aec1 -2260 aec2 aec2 aec2 * 5564 * 8ea1d5e4,d5e4,8ea1d5e4v,d5e4v 634d e68d8d 634d 0000634d aec2 aec2 aec2 aec2 aec2 aec2 aec2 -2261 aec3 aec3 aec3 * 5565 * 8ea1d5e5,d5e5,8ea1d5e5v,d5e5v 634c e68d8c 634c 0000634c aec3 aec3 aec3 aec3 aec3 aec3 aec3 -2262 aec4 aec4 aec4 * 5566 * 8ea1d5e6,d5e6,8ea1d5e6v,d5e6v 6548 e69588 6548 00006548 aec4 aec4 aec4 aec4 aec4 aec4 aec4 -2263 aec5 aec5 aec5 * 5567 * 8ea1d5e7,d5e7,8ea1d5e7v,d5e7v 6549 e69589 6549 00006549 aec5 aec5 aec5 aec5 aec5 aec5 aec5 -2264 aec6 aec6 aec6 * 5568 * 8ea1d5e8,d5e8,8ea1d5e8v,d5e8v 6599 e69699 6599 00006599 aec6 aec6 aec6 aec6 aec6 aec6 aec6 -2265 aec7 aec7 aec7 * 5569 * 8ea1d5e9,d5e9,8ea1d5e9v,d5e9v 65c1 e69781 65c1 000065c1 aec7 aec7 aec7 aec7 aec7 aec7 aec7 -2266 aec8 aec8 aec8 * 556a * 8ea1d5ea,d5ea,8ea1d5eav,d5eav 65c5 e69785 65c5 000065c5 aec8 aec8 aec8 aec8 aec8 aec8 aec8 -2267 aec9 aec9 aec9 * 556b * 8ea1d5eb,d5eb,8ea1d5ebv,d5ebv 6642 e69982 6642 00006642 aec9 aec9 aec9 aec9 aec9 aec9 aec9 -2268 aeca aeca aeca * 556c * 8ea1d5ec,d5ec,8ea1d5ecv,d5ecv 6649 e69989 6649 00006649 aeca aeca aeca aeca aeca aeca aeca -2269 aecb aecb aecb * 556d * 8ea1d5ed,d5ed,8ea1d5edv,d5edv 664f e6998f 664f 0000664f aecb aecb aecb aecb aecb aecb aecb -2270 aecc aecc aecc * 556e * 8ea1d5ee,d5ee,8ea1d5eev,d5eev 6643 e69983 6643 00006643 aecc aecc aecc aecc aecc aecc aecc -2271 aecd aecd aecd * 556f * 8ea1d5ef,d5ef,8ea1d5efv,d5efv 6652 e69992 6652 00006652 aecd aecd aecd aecd aecd aecd aecd -2272 aece aece aece * 5570 * 8ea1d5f0,d5f0,8ea1d5f0v,d5f0v 664c e6998c 664c 0000664c aece aece aece aece aece aece aece -2273 aecf aecf aecf * 5571 * 8ea1d5f1,d5f1,8ea1d5f1v,d5f1v 6645 e69985 6645 00006645 aecf aecf aecf aecf aecf aecf aecf -2274 aed0 aed0 aed0 * 5572 * 8ea1d5f2,d5f2,8ea1d5f2v,d5f2v 6641 e69981 6641 00006641 aed0 aed0 aed0 aed0 aed0 aed0 aed0 -2275 aed1 aed1 aed1 * 5573 * 8ea1d5f3,d5f3,8ea1d5f3v,d5f3v 66f8 e69bb8 66f8 000066f8 aed1 aed1 aed1 aed1 aed1 aed1 aed1 -2276 aed2 aed2 aed2 * 5574 * 8ea1d5f4,d5f4,8ea1d5f4v,d5f4v 6714 e69c94 6714 00006714 aed2 aed2 aed2 aed2 aed2 aed2 aed2 -2277 aed3 aed3 aed3 * 5575 * 8ea1d5f5,d5f5,8ea1d5f5v,d5f5v 6715 e69c95 6715 00006715 aed3 aed3 aed3 aed3 aed3 aed3 aed3 -2278 aed4 aed4 aed4 * 5576 * 8ea1d5f6,d5f6,8ea1d5f6v,d5f6v 6717 e69c97 6717 00006717 aed4 aed4 aed4 aed4 aed4 aed4 aed4 -2279 aed5 aed5 aed5 * 5577 * 8ea1d5f7,d5f7,8ea1d5f7v,d5f7v 6821 e6a0a1 6821 00006821 aed5 aed5 aed5 aed5 aed5 aed5 aed5 -2280 aed6 aed6 aed6 * 5578 * 8ea1d5f8,d5f8,8ea1d5f8v,d5f8v 6838 e6a0b8 6838 00006838 aed6 aed6 aed6 aed6 aed6 aed6 aed6 -2281 aed7 aed7 aed7 * 5579 * 8ea1d5f9,d5f9,8ea1d5f9v,d5f9v 6848 e6a188 6848 00006848 aed7 aed7 aed7 aed7 aed7 aed7 aed7 -2282 aed8 aed8 aed8 * 557a * 8ea1d5fa,d5fa,8ea1d5fav,d5fav 6846 e6a186 6846 00006846 aed8 aed8 aed8 aed8 aed8 aed8 aed8 -2283 aed9 aed9 aed9 * 557b * 8ea1d5fb,d5fb,8ea1d5fbv,d5fbv 6853 e6a193 6853 00006853 aed9 aed9 aed9 aed9 aed9 aed9 aed9 -2284 aeda aeda aeda * 557c * 8ea1d5fc,d5fc,8ea1d5fcv,d5fcv 6839 e6a0b9 6839 00006839 aeda aeda aeda aeda aeda aeda aeda -2285 aedb aedb aedb * 557d * 8ea1d5fd,d5fd,8ea1d5fdv,d5fdv 6842 e6a182 6842 00006842 aedb aedb aedb aedb aedb aedb aedb -2286 aedc aedc aedc * 557e * 8ea1d5fe,d5fe,8ea1d5fev,d5fev 6854 e6a194 6854 00006854 aedc aedc aedc aedc aedc aedc aedc -2287 aedd aedd aedd * 5621 * 8ea1d6a1,d6a1,8ea1d6a1v,d6a1v 6829 e6a0a9 6829 00006829 aedd aedd aedd aedd aedd aedd aedd -2288 aede aede aede * 5622 * 8ea1d6a2,d6a2,8ea1d6a2v,d6a2v 68b3 e6a2b3 68b3 000068b3 aede aede aede aede aede aede aede -2289 aedf aedf aedf * 5623 * 8ea1d6a3,d6a3,8ea1d6a3v,d6a3v 6817 e6a097 6817 00006817 aedf aedf aedf aedf aedf aedf aedf -2290 aee0 aee0 aee0 * 5624 * 8ea1d6a4,d6a4,8ea1d6a4v,d6a4v 684c e6a18c 684c 0000684c aee0 aee0 aee0 aee0 aee0 aee0 aee0 -2291 aee1 aee1 aee1 * 5625 * 8ea1d6a5,d6a5,8ea1d6a5v,d6a5v 6851 e6a191 6851 00006851 aee1 aee1 aee1 aee1 aee1 aee1 aee1 -2292 aee2 aee2 aee2 * 5626 * 8ea1d6a6,d6a6,8ea1d6a6v,d6a6v 683d e6a0bd 683d 0000683d aee2 aee2 aee2 aee2 aee2 aee2 aee2 -2293 aee3 aee3 aee3 * 5627 * 8ea1d6a7,d6a7,8ea1d6a7v,d6a7v 67f4 e69fb4 67f4 000067f4 aee3 aee3 aee3 aee3 aee3 aee3 aee3 -2294 aee4 aee4 aee4 * 5628 * 8ea1d6a8,d6a8,8ea1d6a8v,d6a8v 6850 e6a190 6850 00006850 aee4 aee4 aee4 aee4 aee4 aee4 aee4 -2295 aee5 aee5 aee5 * 5629 * 8ea1d6a9,d6a9,8ea1d6a9v,d6a9v 6840 e6a180 6840 00006840 aee5 aee5 aee5 aee5 aee5 aee5 aee5 -2296 aee6 aee6 aee6 * 562a * 8ea1d6aa,d6aa,8ea1d6aav,d6aav 683c e6a0bc 683c 0000683c aee6 aee6 aee6 aee6 aee6 aee6 aee6 -2297 aee7 aee7 aee7 * 562b * 8ea1d6ab,d6ab,8ea1d6abv,d6abv 6843 e6a183 6843 00006843 aee7 aee7 aee7 aee7 aee7 aee7 aee7 -2298 aee8 aee8 aee8 * 562c * 8ea1d6ac,d6ac,8ea1d6acv,d6acv 682a e6a0aa 682a 0000682a aee8 aee8 aee8 aee8 aee8 aee8 aee8 -2299 aee9 aee9 aee9 * 562d * 8ea1d6ad,d6ad,8ea1d6adv,d6adv 6845 e6a185 6845 00006845 aee9 aee9 aee9 aee9 aee9 aee9 aee9 -2300 aeea aeea aeea * 562e * 8ea1d6ae,d6ae,8ea1d6aev,d6aev 6813 e6a093 6813 00006813 aeea aeea aeea aeea aeea aeea aeea -2301 aeeb aeeb aeeb * 562f * 8ea1d6af,d6af,8ea1d6afv,d6afv 6818 e6a098 6818 00006818 aeeb aeeb aeeb aeeb aeeb aeeb aeeb -2302 aeec aeec aeec * 5630 * 8ea1d6b0,d6b0,8ea1d6b0v,d6b0v 6841 e6a181 6841 00006841 aeec aeec aeec aeec aeec aeec aeec -2303 aeed aeed aeed * 5631 * 8ea1d6b1,d6b1,8ea1d6b1v,d6b1v 6b8a e6ae8a 6b8a 00006b8a aeed aeed aeed aeed aeed aeed aeed -2304 aeee aeee aeee * 5632 * 8ea1d6b2,d6b2,8ea1d6b2v,d6b2v 6b89 e6ae89 6b89 00006b89 aeee aeee aeee aeee aeee aeee aeee -2305 aeef aeef aeef * 5633 * 8ea1d6b3,d6b3,8ea1d6b3v,d6b3v 6bb7 e6aeb7 6bb7 00006bb7 aeef aeef aeef aeef aeef aeef aeef -2306 aef0 aef0 aef0 * 5634 * 8ea1d6b4,d6b4,8ea1d6b4v,d6b4v 6c23 e6b0a3 6c23 00006c23 aef0 aef0 aef0 aef0 aef0 aef0 aef0 -2307 aef1 aef1 aef1 * 5635 * 8ea1d6b5,d6b5,8ea1d6b5v,d6b5v 6c27 e6b0a7 6c27 00006c27 aef1 aef1 aef1 aef1 aef1 aef1 aef1 -2308 aef2 aef2 aef2 * 5636 * 8ea1d6b6,d6b6,8ea1d6b6v,d6b6v 6c28 e6b0a8 6c28 00006c28 aef2 aef2 aef2 aef2 aef2 aef2 aef2 -2309 aef3 aef3 aef3 * 5637 * 8ea1d6b7,d6b7,8ea1d6b7v,d6b7v 6c26 e6b0a6 6c26 00006c26 aef3 aef3 aef3 aef3 aef3 aef3 aef3 -2310 aef4 aef4 aef4 * 5638 * 8ea1d6b8,d6b8,8ea1d6b8v,d6b8v 6c24 e6b0a4 6c24 00006c24 aef4 aef4 aef4 aef4 aef4 aef4 aef4 -2311 aef5 aef5 aef5 * 5639 * 8ea1d6b9,d6b9,8ea1d6b9v,d6b9v 6cf0 e6b3b0 6cf0 00006cf0 aef5 aef5 aef5 aef5 aef5 aef5 aef5 -2312 aef6 aef6 aef6 * 563a * 8ea1d6ba,d6ba,8ea1d6bav,d6bav 6d6a e6b5aa 6d6a 00006d6a aef6 aef6 aef6 aef6 aef6 aef6 aef6 -2313 aef7 aef7 aef7 * 563b * 8ea1d6bb,d6bb,8ea1d6bbv,d6bbv 6d95 e6b695 6d95 00006d95 aef7 aef7 aef7 aef7 aef7 aef7 aef7 -2314 aef8 aef8 aef8 * 563c * 8ea1d6bc,d6bc,8ea1d6bcv,d6bcv 6d88 e6b688 6d88 00006d88 aef8 aef8 aef8 aef8 aef8 aef8 aef8 -2315 aef9 aef9 aef9 * 563d * 8ea1d6bd,d6bd,8ea1d6bdv,d6bdv 6d87 e6b687 6d87 00006d87 aef9 aef9 aef9 aef9 aef9 aef9 aef9 -2316 aefa aefa aefa * 563e * 8ea1d6be,d6be,8ea1d6bev,d6bev 6d66 e6b5a6 6d66 00006d66 aefa aefa aefa aefa aefa aefa aefa -2317 aefb aefb aefb * 563f * 8ea1d6bf,d6bf,8ea1d6bfv,d6bfv 6d78 e6b5b8 6d78 00006d78 aefb aefb aefb aefb aefb aefb aefb -2318 aefc aefc aefc * 5640 * 8ea1d6c0,d6c0,8ea1d6c0v,d6c0v 6d77 e6b5b7 6d77 00006d77 aefc aefc aefc aefc aefc aefc aefc -2319 aefd aefd aefd * 5641 * 8ea1d6c1,d6c1,8ea1d6c1v,d6c1v 6d59 e6b599 6d59 00006d59 aefd aefd aefd aefd aefd aefd aefd -2320 aefe aefe aefe * 5642 * 8ea1d6c2,d6c2,8ea1d6c2v,d6c2v 6d93 e6b693 6d93 00006d93 aefe aefe aefe aefe aefe aefe aefe -2321 af40 af40 af40 * 5643 * 8ea1d6c3,d6c3,8ea1d6c3v,d6c3v 6d6c e6b5ac 6d6c 00006d6c af40 af40 af40 af40 af40 af40 af40 -2322 af41 af41 af41 * 5644 * 8ea1d6c4,d6c4,8ea1d6c4v,d6c4v 6d89 e6b689 6d89 00006d89 af41 af41 af41 af41 af41 af41 af41 -2323 af42 af42 af42 * 5645 * 8ea1d6c5,d6c5,8ea1d6c5v,d6c5v 6d6e e6b5ae 6d6e 00006d6e af42 af42 af42 af42 af42 af42 af42 -2324 af43 af43 af43 * 5646 * 8ea1d6c6,d6c6,8ea1d6c6v,d6c6v 6d5a e6b59a 6d5a 00006d5a af43 af43 af43 af43 af43 af43 af43 -2325 af44 af44 af44 * 5647 * 8ea1d6c7,d6c7,8ea1d6c7v,d6c7v 6d74 e6b5b4 6d74 00006d74 af44 af44 af44 af44 af44 af44 af44 -2326 af45 af45 af45 * 5648 * 8ea1d6c8,d6c8,8ea1d6c8v,d6c8v 6d69 e6b5a9 6d69 00006d69 af45 af45 af45 af45 af45 af45 af45 -2327 af46 af46 af46 * 5649 * 8ea1d6c9,d6c9,8ea1d6c9v,d6c9v 6d8c e6b68c 6d8c 00006d8c af46 af46 af46 af46 af46 af46 af46 -2328 af47 af47 af47 * 564a * 8ea1d6ca,d6ca,8ea1d6cav,d6cav 6d8a e6b68a 6d8a 00006d8a af47 af47 af47 af47 af47 af47 af47 -2329 af48 af48 af48 * 564b * 8ea1d6cb,d6cb,8ea1d6cbv,d6cbv 6d79 e6b5b9 6d79 00006d79 af48 af48 af48 af48 af48 af48 af48 -2330 af49 af49 af49 * 564c * 8ea1d6cc,d6cc,8ea1d6ccv,d6ccv 6d85 e6b685 6d85 00006d85 af49 af49,fcd1 915c,af49 af49 af49 af49 af49 -2331 af4a af4a af4a * 564d * 8ea1d6cd,d6cd,8ea1d6cdv,d6cdv 6d65 e6b5a5 6d65 00006d65 af4a af4a af4a af4a af4a af4a af4a -2332 af4b af4b af4b * 564e * 8ea1d6ce,d6ce,8ea1d6cev,d6cev 6d94 e6b694 6d94 00006d94 af4b af4b af4b af4b af4b af4b af4b -2333 af4c af4c af4c * 564f * 8ea1d6cf,d6cf,8ea1d6cfv,d6cfv 70ca e7838a 70ca 000070ca af4c af4c af4c af4c af4c af4c af4c -2334 af4d af4d af4d * 5650 * 8ea1d6d0,d6d0,8ea1d6d0v,d6d0v 70d8 e78398 70d8 000070d8 af4d af4d af4d af4d af4d af4d af4d -2335 af4e af4e af4e * 5651 * 8ea1d6d1,d6d1,8ea1d6d1v,d6d1v 70e4 e783a4 70e4 000070e4 af4e af4e af4e af4e af4e af4e af4e -2336 af4f af4f af4f * 5652 * 8ea1d6d2,d6d2,8ea1d6d2v,d6d2v 70d9 e78399 70d9 000070d9 af4f af4f af4f af4f af4f af4f af4f -2337 af50 af50 af50 * 5653 * 8ea1d6d3,d6d3,8ea1d6d3v,d6d3v 70c8 e78388 70c8 000070c8 af50 af50 af50 af50 af50 af50 af50 -2338 af51 af51 af51 * 5654 * 8ea1d6d4,d6d4,8ea1d6d4v,d6d4v 70cf e7838f 70cf 000070cf af51 af51 af51 af51 af51 af51 af51 -2339 af52 af52 af52 * 5655 * 8ea1d6d5,d6d5,8ea1d6d5v,d6d5v 7239 e788b9 7239 00007239 af52 af52 af52 af52 af52 af52 af52 -2340 af53 af53 af53 * 5656 * 8ea1d6d6,d6d6,8ea1d6d6v,d6d6v 7279 e789b9 7279 00007279 af53 af53 af53 af53 af53 af53 af53 -2341 af54 af54 af54 * 5657 * 8ea1d6d7,d6d7,8ea1d6d7v,d6d7v 72fc e78bbc 72fc 000072fc af54 af54 af54 af54 af54 af54 af54 -2342 af55 af55 af55 * 5658 * 8ea1d6d8,d6d8,8ea1d6d8v,d6d8v 72f9 e78bb9 72f9 000072f9 af55 af55 af55 af55 af55 af55 af55 -2343 af56 af56 af56 * 5659 * 8ea1d6d9,d6d9,8ea1d6d9v,d6d9v 72fd e78bbd 72fd 000072fd af56 af56 af56 af56 af56 af56 af56 -2344 af57 af57 af57 * 565a * 8ea1d6da,d6da,8ea1d6dav,d6dav 72f8 e78bb8 72f8 000072f8 af57 af57 af57 af57 af57 af57 af57 -2345 af58 af58 af58 * 565b * 8ea1d6db,d6db,8ea1d6dbv,d6dbv 72f7 e78bb7 72f7 000072f7 af58 af58 af58 af58 af58 af58 af58 -2346 af59 af59 af59 * 565c * 8ea1d6dc,d6dc,8ea1d6dcv,d6dcv 7386 e78e86 7386 00007386 af59 af59 af59 af59 af59 af59 af59 -2347 af5a af5a af5a * 565d * 8ea1d6dd,d6dd,8ea1d6ddv,d6ddv 73ed e78fad 73ed 000073ed af5a af5a af5a af5a af5a af5a af5a -2348 af5b af5b af5b * 565e * 8ea1d6de,d6de,8ea1d6dev,d6dev 7409 e79089 7409 00007409 af5b af5b af5b af5b af5b af5b af5b -2349 af5c af5c af5c * 565f * 8ea1d6df,d6df,8ea1d6dfv,d6dfv 73ee e78fae 73ee 000073ee af5c af5c af5c af5c af5c af5c af5c -2350 af5d af5d af5d * 5660 * 8ea1d6e0,d6e0,8ea1d6e0v,d6e0v 73e0 e78fa0 73e0 000073e0 af5d af5d af5d af5d af5d af5d af5d -2351 af5e af5e af5e * 5661 * 8ea1d6e1,d6e1,8ea1d6e1v,d6e1v 73ea e78faa 73ea 000073ea af5e af5e af5e af5e af5e af5e af5e -2352 af5f af5f af5f * 5662 * 8ea1d6e2,d6e2,8ea1d6e2v,d6e2v 73de e78f9e 73de 000073de af5f af5f af5f af5f af5f af5f af5f -2353 af60 af60 af60 * 5663 * 8ea1d6e3,d6e3,8ea1d6e3v,d6e3v 7554 e79594 7554 00007554 af60 af60 af60 af60 af60 af60 af60 -2354 af61 af61 af61 * 5664 * 8ea1d6e4,d6e4,8ea1d6e4v,d6e4v 755d e7959d 755d 0000755d af61 af61 af61 af61 af61 af61 af61 -2355 af62 af62 af62 * 5665 * 8ea1d6e5,d6e5,8ea1d6e5v,d6e5v 755c e7959c 755c 0000755c af62 af62 af62 af62 af62 af62 af62 -2356 af63 af63 af63 * 5666 * 8ea1d6e6,d6e6,8ea1d6e6v,d6e6v 755a e7959a 755a 0000755a af63 af63 af63 af63 af63 af63 af63 -2357 af64 af64 af64 * 5667 * 8ea1d6e7,d6e7,8ea1d6e7v,d6e7v 7559 e79599 7559 00007559 af64 af64 af64 af64 af64 af64 af64 -2358 af65 af65 af65 * 5668 * 8ea1d6e8,d6e8,8ea1d6e8v,d6e8v 75be e796be 75be 000075be af65 af65 af65 af65 af65 af65 af65 -2359 af66 af66 af66 * 5669 * 8ea1d6e9,d6e9,8ea1d6e9v,d6e9v 75c5 e79785 75c5 000075c5 af66 af66 af66 af66 af66 af66 af66 -2360 af67 af67 af67 * 566a * 8ea1d6ea,d6ea,8ea1d6eav,d6eav 75c7 e79787 75c7 000075c7 af67 af67 af67 af67 af67 af67 af67 -2361 af68 af68 af68 * 566b * 8ea1d6eb,d6eb,8ea1d6ebv,d6ebv 75b2 e796b2 75b2 000075b2 af68 af68 af68 af68 af68 af68 af68 -2362 af69 af69 af69 * 566c * 8ea1d6ec,d6ec,8ea1d6ecv,d6ecv 75b3 e796b3 75b3 000075b3 af69 af69 af69 af69 af69 af69 af69 -2363 af6a af6a af6a * 566d * 8ea1d6ed,d6ed,8ea1d6edv,d6edv 75bd e796bd 75bd 000075bd af6a af6a af6a af6a af6a af6a af6a -2364 af6b af6b af6b * 566e * 8ea1d6ee,d6ee,8ea1d6eev,d6eev 75bc e796bc 75bc 000075bc af6b af6b af6b af6b af6b af6b af6b -2365 af6c af6c af6c * 566f * 8ea1d6ef,d6ef,8ea1d6efv,d6efv 75b9 e796b9 75b9 000075b9 af6c af6c af6c af6c af6c af6c af6c -2366 af6d af6d af6d * 5670 * 8ea1d6f0,d6f0,8ea1d6f0v,d6f0v 75c2 e79782 75c2 000075c2 af6d af6d af6d af6d af6d af6d af6d -2367 af6e af6e af6e * 5671 * 8ea1d6f1,d6f1,8ea1d6f1v,d6f1v 75b8 e796b8 75b8 000075b8 af6e af6e af6e af6e af6e af6e af6e -2368 af6f af6f af6f * 5672 * 8ea1d6f2,d6f2,8ea1d6f2v,d6f2v 768b e79a8b 768b 0000768b af6f af6f af6f af6f af6f af6f af6f -2369 af70 af70 af70 * 5673 * 8ea1d6f3,d6f3,8ea1d6f3v,d6f3v 76b0 e79ab0 76b0 000076b0 af70 af70 af70 af70 af70 af70 af70 -2370 af71 af71 af71 * 5674 * 8ea1d6f4,d6f4,8ea1d6f4v,d6f4v 76ca e79b8a 76ca 000076ca af71 af71 af71 af71 af71 af71 af71 -2371 af72 af72 af72 * 5675 * 8ea1d6f5,d6f5,8ea1d6f5v,d6f5v 76cd e79b8d 76cd 000076cd af72 af72 af72 af72 af72 af72 af72 -2372 af73 af73 af73 * 5676 * 8ea1d6f6,d6f6,8ea1d6f6v,d6f6v 76ce e79b8e 76ce 000076ce af73 af73 af73 af73 af73 af73 af73 -2373 af74 af74 af74 * 5677 * 8ea1d6f7,d6f7,8ea1d6f7v,d6f7v 7729 e79ca9 7729 00007729 af74 af74 af74 af74 af74 af74 af74 -2374 af75 af75 af75 * 5678 * 8ea1d6f8,d6f8,8ea1d6f8v,d6f8v 771f e79c9f 771f 0000771f af75 af75 af75 af75 af75 af75 af75 -2375 af76 af76 af76 * 5679 * 8ea1d6f9,d6f9,8ea1d6f9v,d6f9v 7720 e79ca0 7720 00007720 af76 af76 af76 af76 af76 af76 af76 -2376 af77 af77 af77 * 567a * 8ea1d6fa,d6fa,8ea1d6fav,d6fav 7728 e79ca8 7728 00007728 af77 af77 af77 af77 af77 af77 af77 -2377 af78 af78 af78 * 567b * 8ea1d6fb,d6fb,8ea1d6fbv,d6fbv 77e9 e79fa9 77e9 000077e9 af78 af78 af78 af78 af78 af78 af78 -2378 af79 af79 af79 * 567c * 8ea1d6fc,d6fc,8ea1d6fcv,d6fcv 7830 e7a0b0 7830 00007830 af79 af79 af79 af79 af79 af79 af79 -2379 af7a af7a af7a * 567d * 8ea1d6fd,d6fd,8ea1d6fdv,d6fdv 7827 e7a0a7 7827 00007827 af7a af7a af7a af7a af7a af7a af7a -2380 af7b af7b af7b * 567e * 8ea1d6fe,d6fe,8ea1d6fev,d6fev 7838 e7a0b8 7838 00007838 af7b af7b af7b af7b af7b af7b af7b -2381 af7c af7c af7c * 5721 * 8ea1d7a1,d7a1,8ea1d7a1v,d7a1v 781d e7a09d 781d 0000781d af7c af7c af7c af7c af7c af7c af7c -2382 af7d af7d af7d * 5722 * 8ea1d7a2,d7a2,8ea1d7a2v,d7a2v 7834 e7a0b4 7834 00007834 af7d af7d af7d af7d af7d af7d af7d -2383 af7e af7e af7e * 5723 * 8ea1d7a3,d7a3,8ea1d7a3v,d7a3v 7837 e7a0b7 7837 00007837 af7e af7e af7e af7e af7e af7e af7e -2384 afa1 afa1 afa1 * 5724 * 8ea1d7a4,d7a4,8ea1d7a4v,d7a4v 7825 e7a0a5 7825 00007825 afa1 afa1 afa1 afa1 afa1 afa1 afa1 -2385 afa2 afa2 afa2 * 5725 * 8ea1d7a5,d7a5,8ea1d7a5v,d7a5v 782d e7a0ad 782d 0000782d afa2 afa2 afa2 afa2 afa2 afa2 afa2 -2386 afa3 afa3 afa3 * 5726 * 8ea1d7a6,d7a6,8ea1d7a6v,d7a6v 7820 e7a0a0 7820 00007820 afa3 afa3 afa3 afa3 afa3 afa3 afa3 -2387 afa4 afa4 afa4 * 5727 * 8ea1d7a7,d7a7,8ea1d7a7v,d7a7v 781f e7a09f 781f 0000781f afa4 afa4 afa4 afa4 afa4 afa4 afa4 -2388 afa5 afa5 afa5 * 5728 * 8ea1d7a8,d7a8,8ea1d7a8v,d7a8v 7832 e7a0b2 7832 00007832 afa5 afa5 afa5 afa5 afa5 afa5 afa5 -2389 afa6 afa6 afa6 * 5729 * 8ea1d7a9,d7a9,8ea1d7a9v,d7a9v 7955 e7a595 7955 00007955 afa6 afa6,fd5f 9161,afa6 afa6 afa6 afa6 afa6 -2390 afa7 afa7 afa7 * 572a * 8ea1d7aa,d7aa,8ea1d7aav,d7aav 7950 e7a590 7950 00007950 afa7 afa7 afa7 afa7 afa7 afa7 afa7 -2391 afa8 afa8 afa8 * 572b * 8ea1d7ab,d7ab,8ea1d7abv,d7abv 7960 e7a5a0 7960 00007960 afa8 afa8 afa8 afa8 afa8 afa8 afa8 -2392 afa9 afa9 afa9 * 572c * 8ea1d7ac,d7ac,8ea1d7acv,d7acv 795f e7a59f 795f 0000795f afa9 afa9 afa9 afa9 afa9 afa9 afa9 -2393 afaa afaa afaa * 572d * 8ea1d7ad,d7ad,8ea1d7adv,d7adv 7956 e7a596 7956 00007956 afaa afaa afaa afaa afaa afaa afaa -2394 afab afab afab * 572e * 8ea1d7ae,d7ae,8ea1d7aev,d7aev 795e e7a59e 795e 0000795e afab afab afab afab afab afab afab -2395 afac afac afac * 572f * 8ea1d7af,d7af,8ea1d7afv,d7afv 795d e7a59d 795d 0000795d afac afac afac afac afac afac afac -2396 afad afad afad * 5730 * 8ea1d7b0,d7b0,8ea1d7b0v,d7b0v 7957 e7a597 7957 00007957 afad afad afad afad afad afad afad -2397 afae afae afae * 5731 * 8ea1d7b1,d7b1,8ea1d7b1v,d7b1v 795a e7a59a 795a 0000795a afae afae afae afae afae afae afae -2398 afaf afaf afaf * 5732 * 8ea1d7b2,d7b2,8ea1d7b2v,d7b2v 79e4 e7a7a4 79e4 000079e4 afaf afaf afaf afaf afaf afaf afaf -2399 afb0 afb0 afb0 * 5733 * 8ea1d7b3,d7b3,8ea1d7b3v,d7b3v 79e3 e7a7a3,eeb082 79e3,ec02 000079e3,0000ec02 9cbd,afb0 afb0 afb0 afb0 afb0 afb0 9cbd,afb0 -2400 afb1 afb1 afb1 * 5734 * 8ea1d7b4,d7b4,8ea1d7b4v,d7b4v 79e7 e7a7a7 79e7 000079e7 afb1 afb1 afb1 afb1 afb1 afb1 afb1 -2401 afb2 afb2 afb2 * 5735 * 8ea1d7b5,d7b5,8ea1d7b5v,d7b5v 79df e7a79f 79df 000079df afb2 afb2 afb2 afb2 afb2 afb2 afb2 -2402 afb3 afb3 afb3 * 5736 * 8ea1d7b6,d7b6,8ea1d7b6v,d7b6v 79e6 e7a7a6 79e6 000079e6 afb3 afb3 afb3 afb3 afb3 afb3 afb3 -2403 afb4 afb4 afb4 * 5737 * 8ea1d7b7,d7b7,8ea1d7b7v,d7b7v 79e9 e7a7a9 79e9 000079e9 afb4 afb4 afb4 afb4 afb4 afb4 afb4 -2404 afb5 afb5 afb5 * 5738 * 8ea1d7b8,d7b8,8ea1d7b8v,d7b8v 79d8 e7a798 79d8 000079d8 afb5 afb5 afb5 afb5 afb5 afb5 afb5 -2405 afb6 afb6 afb6 * 5739 * 8ea1d7b9,d7b9,8ea1d7b9v,d7b9v 7a84 e7aa84 7a84 00007a84 afb6 afb6 afb6 afb6 afb6 afb6 afb6 -2406 afb7 afb7 afb7 * 573a * 8ea1d7ba,d7ba,8ea1d7bav,d7bav 7a88 e7aa88 7a88 00007a88 afb7 afb7 afb7 afb7 afb7 afb7 afb7 -2407 afb8 afb8 afb8 * 573b * 8ea1d7bb,d7bb,8ea1d7bbv,d7bbv 7ad9 e7ab99 7ad9 00007ad9 afb8 afb8 afb8 afb8 afb8 afb8 afb8 -2408 afb9 afb9 afb9 * 573c * 8ea1d7bc,d7bc,8ea1d7bcv,d7bcv 7b06 e7ac86 7b06 00007b06 afb9 afb9 afb9 afb9 afb9 afb9 afb9 -2409 afba afba afba * 573d * 8ea1d7bd,d7bd,8ea1d7bdv,d7bdv 7b11 e7ac91 7b11 00007b11 afba afba afba afba afba afba afba -2410 afbb afbb afbb * 573e * 8ea1d7be,d7be,8ea1d7bev,d7bev 7c89 e7b289 7c89 00007c89 afbb afbb afbb afbb afbb afbb afbb -2411 afbc afbc afbc * 573f * 8ea1d7bf,d7bf,8ea1d7bfv,d7bfv 7d21 e7b4a1 7d21 00007d21 afbc afbc afbc afbc afbc afbc afbc -2412 afbd afbd afbd * 5740 * 8ea1d7c0,d7c0,8ea1d7c0v,d7c0v 7d17 e7b497 7d17 00007d17 afbd afbd afbd afbd afbd afbd afbd -2413 afbe afbe afbe * 5741 * 8ea1d7c1,d7c1,8ea1d7c1v,d7c1v 7d0b e7b48b 7d0b 00007d0b afbe afbe afbe afbe afbe afbe afbe -2414 afbf afbf afbf * 5742 * 8ea1d7c2,d7c2,8ea1d7c2v,d7c2v 7d0a e7b48a 7d0a 00007d0a afbf afbf afbf afbf afbf afbf afbf -2415 afc0 afc0 afc0 * 5743 * 8ea1d7c3,d7c3,8ea1d7c3v,d7c3v 7d20 e7b4a0 7d20 00007d20 afc0 afc0 afc0 afc0 afc0 afc0 afc0 -2416 afc1 afc1 afc1 * 5744 * 8ea1d7c4,d7c4,8ea1d7c4v,d7c4v 7d22 e7b4a2 7d22 00007d22 afc1 afc1 afc1 afc1 afc1 afc1 afc1 -2417 afc2 afc2 afc2 * 5745 * 8ea1d7c5,d7c5,8ea1d7c5v,d7c5v 7d14 e7b494 7d14 00007d14 afc2 afc2 afc2 afc2 afc2 afc2 afc2 -2418 afc3 afc3 afc3 * 5746 * 8ea1d7c6,d7c6,8ea1d7c6v,d7c6v 7d10 e7b490 7d10 00007d10 afc3 afc3 afc3 afc3 afc3 afc3 afc3 -2419 afc4 afc4 afc4 * 5747 * 8ea1d7c7,d7c7,8ea1d7c7v,d7c7v 7d15 e7b495 7d15 00007d15 afc4 afc4 afc4 afc4 afc4 afc4 afc4 -2420 afc5 afc5 afc5 * 5748 * 8ea1d7c8,d7c8,8ea1d7c8v,d7c8v 7d1a e7b49a 7d1a 00007d1a afc5 afc5 afc5 afc5 afc5 afc5 afc5 -2421 afc6 afc6 afc6 * 5749 * 8ea1d7c9,d7c9,8ea1d7c9v,d7c9v 7d1c e7b49c 7d1c 00007d1c afc6 afc6 afc6 afc6 afc6 afc6 afc6 -2422 afc7 afc7 afc7 * 574a * 8ea1d7ca,d7ca,8ea1d7cav,d7cav 7d0d e7b48d 7d0d 00007d0d afc7 afc7 afc7 afc7 afc7 afc7 afc7 -2423 afc8 afc8 afc8 * 574b * 8ea1d7cb,d7cb,8ea1d7cbv,d7cbv 7d19 e7b499 7d19 00007d19 afc8 afc8 afc8 afc8 afc8 afc8 afc8 -2424 afc9 afc9 afc9 * 574c * 8ea1d7cc,d7cc,8ea1d7ccv,d7ccv 7d1b e7b49b 7d1b 00007d1b afc9 afc9 afc9 afc9 afc9 afc9 afc9 -2425 afca afca afca * 574d * 8ea1d7cd,d7cd,8ea1d7cdv,d7cdv 7f3a e7bcba 7f3a 00007f3a afca afca afca afca afca afca afca -2426 afcb afcb afcb * 574e * 8ea1d7ce,d7ce,8ea1d7cev,d7cev 7f5f e7bd9f 7f5f 00007f5f afcb afcb afcb afcb afcb afcb afcb -2427 afcc afcc afcc * 574f * 8ea1d7cf,d7cf,8ea1d7cfv,d7cfv 7f94 e7be94 7f94 00007f94 afcc afcc afcc afcc afcc afcc afcc -2428 afcd afcd afcd * 5750 * 8ea1d7d0,d7d0,8ea1d7d0v,d7d0v 7fc5 e7bf85 7fc5 00007fc5 afcd afcd afcd afcd afcd afcd afcd -2429 afce afce afce * 5751 * 8ea1d7d1,d7d1,8ea1d7d1v,d7d1v 7fc1 e7bf81 7fc1 00007fc1 afce afce afce afce afce afce afce -2430 afcf afcf afcf * 5752 * 8ea1d7d2,d7d2,8ea1d7d2v,d7d2v 8006 e88086 8006 00008006 afcf afcf afcf afcf afcf afcf afcf -2431 acfe acfe acfe * 5753 * 8ea1d7d3,d7d3,8ea1d7d3v,d7d3v 8004 e88084 8004 00008004 acfe acfe acfe acfe acfe acfe acfe -2432 afd0 afd0 afd0 * 5754 * 8ea1d7d4,d7d4,8ea1d7d4v,d7d4v 8018 e88098 8018 00008018 afd0 afd0 afd0 afd0 afd0 afd0 afd0 -2433 afd1 afd1 afd1 * 5755 * 8ea1d7d5,d7d5,8ea1d7d5v,d7d5v 8015 e88095 8015 00008015 afd1 afd1 afd1 afd1 afd1 afd1 afd1 -2434 afd2 afd2 afd2 * 5756 * 8ea1d7d6,d7d6,8ea1d7d6v,d7d6v 8019 e88099 8019 00008019 afd2 afd2 afd2 afd2 afd2 afd2 afd2 -2435 afd3 afd3 afd3 * 5757 * 8ea1d7d7,d7d7,8ea1d7d7v,d7d7v 8017 e88097 8017 00008017 afd3 afd3 afd3 afd3 afd3 afd3 afd3 -2436 afd4 afd4 afd4 * 5758 * 8ea1d7d8,d7d8,8ea1d7d8v,d7d8v 803d e880bd 803d 0000803d afd4 afd4 afd4 afd4 afd4 afd4 afd4 -2437 afd5 afd5 afd5 * 5759 * 8ea1d7d9,d7d9,8ea1d7d9v,d7d9v 803f e880bf 803f 0000803f afd5 afd5 afd5 afd5 afd5 afd5 afd5 -2438 afd6 afd6 afd6 * 575a * 8ea1d7da,d7da,8ea1d7dav,d7dav 80f1 e883b1 80f1 000080f1 afd6 afd6 afd6 afd6 afd6 afd6 afd6 -2439 afd7 afd7 afd7 * 575b * 8ea1d7db,d7db,8ea1d7dbv,d7dbv 8102 e88482 8102 00008102 afd7 afd7 afd7 afd7 afd7 afd7 afd7 -2440 afd8 afd8 afd8 * 575c * 8ea1d7dc,d7dc,8ea1d7dcv,d7dcv 80f0 e883b0 80f0 000080f0 afd8 afd8 afd8 afd8 afd8 afd8 afd8 -2441 afd9 afd9 afd9 * 575d * 8ea1d7dd,d7dd,8ea1d7ddv,d7ddv 8105 e88485 8105 00008105 afd9 afd9 afd9 afd9 afd9 afd9 afd9 -2442 afda afda afda * 575e * 8ea1d7de,d7de,8ea1d7dev,d7dev 80ed e883ad 80ed 000080ed afda afda afda afda afda afda afda -2443 afdb afdb afdb * 575f * 8ea1d7df,d7df,8ea1d7dfv,d7dfv 80f4 e883b4 80f4 000080f4 afdb afdb afdb afdb afdb afdb afdb -2444 afdc afdc afdc * 5760 * 8ea1d7e0,d7e0,8ea1d7e0v,d7e0v 8106 e88486 8106 00008106 afdc afdc afdc afdc afdc afdc afdc -2445 afdd afdd afdd * 5761 * 8ea1d7e1,d7e1,8ea1d7e1v,d7e1v 80f8 e883b8 80f8 000080f8 afdd afdd afdd afdd afdd afdd afdd -2446 afde afde afde * 5762 * 8ea1d7e2,d7e2,8ea1d7e2v,d7e2v 80f3 e883b3 80f3 000080f3 afde afde afde afde afde afde afde -2447 afdf afdf afdf * 5763 * 8ea1d7e3,d7e3,8ea1d7e3v,d7e3v 8108 e88488 8108 00008108 afdf afdf afdf afdf afdf afdf afdf -2448 afe0 afe0 afe0 * 5764 * 8ea1d7e4,d7e4,8ea1d7e4v,d7e4v 80fd e883bd 80fd 000080fd afe0 afe0 afe0 afe0 afe0 afe0 afe0 -2449 afe1 afe1 afe1 * 5765 * 8ea1d7e5,d7e5,8ea1d7e5v,d7e5v 810a e8848a 810a 0000810a afe1 afe1 afe1 afe1 afe1 afe1 afe1 -2450 afe2 afe2 afe2 * 5766 * 8ea1d7e6,d7e6,8ea1d7e6v,d7e6v 80fc e883bc 80fc 000080fc afe2 afe2 afe2 afe2 afe2 afe2 afe2 -2451 afe3 afe3 afe3 * 5767 * 8ea1d7e7,d7e7,8ea1d7e7v,d7e7v 80ef e883af 80ef 000080ef afe3 afe3 afe3 afe3 afe3 afe3 afe3 -2452 afe4 afe4 afe4 * 5768 * 8ea1d7e8,d7e8,8ea1d7e8v,d7e8v 81ed e887ad 81ed 000081ed afe4 afe4 afe4 afe4 afe4 afe4 afe4 -2453 afe5 afe5 afe5 * 5769 * 8ea1d7e9,d7e9,8ea1d7e9v,d7e9v 81ec e887ac 81ec 000081ec afe5 afe5 afe5 afe5 afe5 afe5 afe5 -2454 afe6 afe6 afe6 * 576a * 8ea1d7ea,d7ea,8ea1d7eav,d7eav 8200 e88880 8200 00008200 afe6 afe6 afe6 afe6 afe6 afe6 afe6 -2455 afe7 afe7 afe7 * 576b * 8ea1d7eb,d7eb,8ea1d7ebv,d7ebv 8210 e88890 8210 00008210 afe7 afe7 afe7 afe7 afe7 afe7 afe7 -2456 afe8 afe8 afe8 * 576c * 8ea1d7ec,d7ec,8ea1d7ecv,d7ecv 822a e888aa 822a 0000822a afe8 afe8 afe8 afe8 afe8 afe8 afe8 -2457 afe9 afe9 afe9 * 576d * 8ea1d7ed,d7ed,8ea1d7edv,d7edv 822b e888ab 822b 0000822b afe9 afe9 afe9 afe9 afe9 afe9 afe9 -2458 afea afea afea * 576e * 8ea1d7ee,d7ee,8ea1d7eev,d7eev 8228 e888a8 8228 00008228 afea afea afea afea afea afea afea -2459 afeb afeb afeb * 576f * 8ea1d7ef,d7ef,8ea1d7efv,d7efv 822c e888ac 822c 0000822c afeb afeb afeb afeb afeb afeb afeb -2460 afec afec afec * 5770 * 8ea1d7f0,d7f0,8ea1d7f0v,d7f0v 82bb e88abb 82bb 000082bb afec afec afec afec afec afec afec -2461 afed afed afed * 5771 * 8ea1d7f1,d7f1,8ea1d7f1v,d7f1v 832b e88cab 832b 0000832b afed afed afed afed afed afed afed -2462 afee afee afee * 5772 * 8ea1d7f2,d7f2,8ea1d7f2v,d7f2v 8352 e88d92 8352 00008352 afee afee afee afee afee afee afee -2463 afef afef afef * 5773 * 8ea1d7f3,d7f3,8ea1d7f3v,d7f3v 8354 e88d94 8354 00008354 afef afef afef afef afef afef afef -2464 aff0 aff0 aff0 * 5774 * 8ea1d7f4,d7f4,8ea1d7f4v,d7f4v 834a e88d8a 834a 0000834a aff0 aff0 aff0 aff0 aff0 aff0 aff0 -2465 aff1 aff1 aff1 * 5775 * 8ea1d7f5,d7f5,8ea1d7f5v,d7f5v 8338 e88cb8 8338 00008338 aff1 aff1 aff1 aff1 aff1 aff1 aff1 -2466 aff2 aff2 aff2 * 5776 * 8ea1d7f6,d7f6,8ea1d7f6v,d7f6v 8350 e88d90 8350 00008350 aff2 aff2 aff2 aff2 aff2 aff2 aff2 -2467 aff3 aff3 aff3 * 5777 * 8ea1d7f7,d7f7,8ea1d7f7v,d7f7v 8349 e88d89 8349 00008349 aff3 aff3 aff3 aff3 aff3 aff3 aff3 -2468 aff4 aff4 aff4 * 5778 * 8ea1d7f8,d7f8,8ea1d7f8v,d7f8v 8335 e88cb5 8335 00008335 aff4 aff4 aff4 aff4 aff4 aff4 aff4 -2469 aff5 aff5 aff5 * 5779 * 8ea1d7f9,d7f9,8ea1d7f9v,d7f9v 8334 e88cb4 8334 00008334 aff5 aff5 aff5 aff5 aff5 aff5 aff5 -2470 aff6 aff6 aff6 * 577a * 8ea1d7fa,d7fa,8ea1d7fav,d7fav 834f e88d8f 834f 0000834f aff6 aff6 aff6 aff6 aff6 aff6 aff6 -2471 aff7 aff7 aff7 * 577b * 8ea1d7fb,d7fb,8ea1d7fbv,d7fbv 8332 e88cb2 8332 00008332 aff7 aff7 aff7 aff7 aff7 aff7 aff7 -2472 aff8 aff8 aff8 * 577c * 8ea1d7fc,d7fc,8ea1d7fcv,d7fcv 8339 e88cb9 8339 00008339 aff8 aff8 aff8 aff8 aff8 aff8 aff8 -2473 aff9 aff9 aff9 * 577d * 8ea1d7fd,d7fd,8ea1d7fdv,d7fdv 8336 e88cb6 8336 00008336 aff9 aff9 aff9 aff9 aff9 aff9 aff9 -2474 affa affa affa * 577e * 8ea1d7fe,d7fe,8ea1d7fev,d7fev 8317 e88c97 8317 00008317 affa affa affa affa affa affa affa -2475 affb affb affb * 5821 * 8ea1d8a1,d8a1,8ea1d8a1v,d8a1v 8340 e88d80 8340 00008340 affb affb affb affb affb affb affb -2476 affc affc affc * 5822 * 8ea1d8a2,d8a2,8ea1d8a2v,d8a2v 8331 e88cb1 8331 00008331 affc affc affc affc affc affc affc -2477 affd affd affd * 5823 * 8ea1d8a3,d8a3,8ea1d8a3v,d8a3v 8328 e88ca8 8328 00008328 affd affd affd affd affd affd affd -2478 affe affe affe * 5824 * 8ea1d8a4,d8a4,8ea1d8a4v,d8a4v 8343 e88d83 8343 00008343 affe affe affe affe affe affe affe -2479 b040 b040 b040 * 5825 * 8ea1d8a5,d8a5,8ea1d8a5v,d8a5v 8654 e89994 8654 00008654 b040 b040 b040 b040 b040 b040 b040 -2480 b041 b041 b041 * 5826 * 8ea1d8a6,d8a6,8ea1d8a6v,d8a6v 868a e89a8a 868a 0000868a b041 b041 b041 b041 b041 b041 b041 -2481 b042 b042 b042 * 5827 * 8ea1d8a7,d8a7,8ea1d8a7v,d8a7v 86aa e89aaa 86aa 000086aa b042 b042 b042 b042 b042 b042 b042 -2482 b043 b043 b043 * 5828 * 8ea1d8a8,d8a8,8ea1d8a8v,d8a8v 8693 e89a93 8693 00008693 b043 b043 b043 b043 b043 b043 b043 -2483 b044 b044 b044 * 5829 * 8ea1d8a9,d8a9,8ea1d8a9v,d8a9v 86a4 e89aa4 86a4 000086a4 b044 b044 b044 b044 b044 b044 b044 -2484 b045 b045 b045 * 582a * 8ea1d8aa,d8aa,8ea1d8aav,d8aav 86a9 e89aa9 86a9 000086a9 b045 b045 b045 b045 b045 b045 b045 -2485 b046 b046 b046 * 582b * 8ea1d8ab,d8ab,8ea1d8abv,d8abv 868c e89a8c 868c 0000868c b046 b046 b046 b046 b046 b046 b046 -2486 b047 b047 b047 * 582c * 8ea1d8ac,d8ac,8ea1d8acv,d8acv 86a3 e89aa3 86a3 000086a3 b047 b047 b047 b047 b047 b047 b047 -2487 b048 b048 b048 * 582d * 8ea1d8ad,d8ad,8ea1d8adv,d8adv 869c e89a9c 869c 0000869c b048 b048 b048 b048 b048 b048 b048 -2488 b049 b049 b049 * 582e * 8ea1d8ae,d8ae,8ea1d8aev,d8aev 8870 e8a1b0 8870 00008870 b049 b049 b049 b049 b049 b049 b049 -2489 b04a b04a b04a * 582f * 8ea1d8af,d8af,8ea1d8afv,d8afv 8877 e8a1b7 8877 00008877 b04a b04a b04a b04a b04a b04a b04a -2490 b04b b04b b04b * 5830 * 8ea1d8b0,d8b0,8ea1d8b0v,d8b0v 8881 e8a281 8881 00008881 b04b b04b b04b b04b b04b b04b b04b -2491 b04c b04c b04c * 5831 * 8ea1d8b1,d8b1,8ea1d8b1v,d8b1v 8882 e8a282 8882 00008882 b04c b04c b04c b04c b04c b04c b04c -2492 b04d b04d b04d * 5832 * 8ea1d8b2,d8b2,8ea1d8b2v,d8b2v 887d e8a1bd 887d 0000887d b04d b04d b04d b04d b04d b04d b04d -2493 b04e b04e b04e * 5833 * 8ea1d8b3,d8b3,8ea1d8b3v,d8b3v 8879 e8a1b9 8879 00008879 b04e b04e b04e b04e b04e b04e b04e -2494 b04f b04f b04f * 5834 * 8ea1d8b4,d8b4,8ea1d8b4v,d8b4v 8a18 e8a898 8a18 00008a18 b04f b04f b04f b04f b04f b04f b04f -2495 b050 b050 b050 * 5835 * 8ea1d8b5,d8b5,8ea1d8b5v,d8b5v 8a10 e8a890 8a10 00008a10 b050 b050 b050 b050 b050 b050 b050 -2496 b051 b051 b051 * 5836 * 8ea1d8b6,d8b6,8ea1d8b6v,d8b6v 8a0e e8a88e 8a0e 00008a0e b051 b051 b051 b051 b051 b051 b051 -2497 b052 b052 b052 * 5837 * 8ea1d8b7,d8b7,8ea1d8b7v,d8b7v 8a0c e8a88c 8a0c 00008a0c b052 b052 b052 b052 b052 b052 b052 -2498 b053 b053 b053 * 5838 * 8ea1d8b8,d8b8,8ea1d8b8v,d8b8v 8a15 e8a895 8a15 00008a15 b053 b053 b053 b053 b053 b053 b053 -2499 b054 b054 b054 * 5839 * 8ea1d8b9,d8b9,8ea1d8b9v,d8b9v 8a0a e8a88a 8a0a 00008a0a b054 b054 b054 b054 b054 b054 b054 -2500 b055 b055 b055 * 583a * 8ea1d8ba,d8ba,8ea1d8bav,d8bav 8a17 e8a897 8a17 00008a17 b055 b055 b055 b055 b055 b055 b055 -2501 b056 b056 b056 * 583b * 8ea1d8bb,d8bb,8ea1d8bbv,d8bbv 8a13 e8a893 8a13 00008a13 b056 b056 b056 b056 b056 b056 b056 -2502 b057 b057 b057 * 583c * 8ea1d8bc,d8bc,8ea1d8bcv,d8bcv 8a16 e8a896 8a16 00008a16 b057 b057 b057 b057 b057 b057 b057 -2503 b058 b058 b058 * 583d * 8ea1d8bd,d8bd,8ea1d8bdv,d8bdv 8a0f e8a88f 8a0f 00008a0f b058 b058 b058 b058 b058 b058 b058 -2504 b059 b059 b059 * 583e * 8ea1d8be,d8be,8ea1d8bev,d8bev 8a11 e8a891 8a11 00008a11 b059 b059 b059 b059 b059 b059 b059 -2505 b05a b05a b05a * 583f * 8ea1d8bf,d8bf,8ea1d8bfv,d8bfv 8c48 e8b188 8c48 00008c48 b05a b05a b05a b05a b05a b05a b05a -2506 b05b b05b b05b * 5840 * 8ea1d8c0,d8c0,8ea1d8c0v,d8c0v 8c7a e8b1ba 8c7a 00008c7a b05b b05b b05b b05b b05b b05b b05b -2507 b05c b05c b05c * 5841 * 8ea1d8c1,d8c1,8ea1d8c1v,d8c1v 8c79 e8b1b9 8c79 00008c79 b05c b05c b05c b05c b05c b05c b05c -2508 b05d b05d b05d * 5842 * 8ea1d8c2,d8c2,8ea1d8c2v,d8c2v 8ca1 e8b2a1 8ca1 00008ca1 b05d b05d b05d b05d b05d b05d b05d -2509 b05e b05e b05e * 5843 * 8ea1d8c3,d8c3,8ea1d8c3v,d8c3v 8ca2 e8b2a2 8ca2 00008ca2 b05e b05e b05e b05e b05e b05e b05e -2510 b05f b05f b05f * 5844 * 8ea1d8c4,d8c4,8ea1d8c4v,d8c4v 8d77 e8b5b7,ee918a 8d77,e44a 00008d77,0000e44a 8ffe,b05f b05f b05f b05f b05f b05f 8ffe,b05f -2511 b060 b060 b060 * 5845 * 8ea1d8c5,d8c5,8ea1d8c5v,d8c5v 8eac e8baac 8eac 00008eac b060 b060 b060 b060 b060 b060 b060 -2512 b061 b061 b061 * 5846 * 8ea1d8c6,d8c6,8ea1d8c6v,d8c6v 8ed2 e8bb92 8ed2 00008ed2 b061 b061 b061 b061 b061 b061 b061 -2513 b062 b062 b062 * 5847 * 8ea1d8c7,d8c7,8ea1d8c7v,d8c7v 8ed4 e8bb94 8ed4 00008ed4 b062 b062 b062 b062 b062 b062 b062 -2514 b063 b063 b063 * 5848 * 8ea1d8c8,d8c8,8ea1d8c8v,d8c8v 8ecf e8bb8f 8ecf 00008ecf b063 b063 b063 b063 b063 b063 b063 -2515 b064 b064 b064 * 5849 * 8ea1d8c9,d8c9,8ea1d8c9v,d8c9v 8fb1 e8beb1 8fb1 00008fb1 b064 b064 b064 b064 b064 b064 b064 -2516 b065 b065 b065 * 584a * 8ea1d8ca,d8ca,8ea1d8cav,d8cav 9001 e98081 9001 00009001 b065 b065 b065 b065 b065 b065 b065 -2517 b066 b066 b066 * 584b * 8ea1d8cb,d8cb,8ea1d8cbv,d8cbv 9006 e98086 9006 00009006 b066 b066 b066 b066 b066 b066 b066 -2518 b067 b067 b067 * 584c * 8ea1d8cc,d8cc,8ea1d8ccv,d8ccv 8ff7 e8bfb7 8ff7 00008ff7 b067 b067 b067 b067 b067 b067 b067 -2519 b068 b068 b068 * 584d * 8ea1d8cd,d8cd,8ea1d8cdv,d8cdv 9000 e98080 9000 00009000 b068 b068 b068 b068 b068 b068 b068 -2520 b069 b069 b069 * 584e * 8ea1d8ce,d8ce,8ea1d8cev,d8cev 8ffa e8bfba 8ffa 00008ffa b069 b069 b069 b069 b069 b069 b069 -2521 b06a b06a b06a * 584f * 8ea1d8cf,d8cf,8ea1d8cfv,d8cfv 8ff4 e8bfb4 8ff4 00008ff4 b06a b06a b06a b06a b06a b06a b06a -2522 b06b b06b b06b * 5850 * 8ea1d8d0,d8d0,8ea1d8d0v,d8d0v 9003 e98083 9003 00009003 b06b b06b b06b b06b b06b b06b b06b -2523 b06c b06c b06c * 5851 * 8ea1d8d1,d8d1,8ea1d8d1v,d8d1v 8ffd e8bfbd 8ffd 00008ffd b06c b06c b06c b06c b06c b06c b06c -2524 b06d b06d b06d * 5852 * 8ea1d8d2,d8d2,8ea1d8d2v,d8d2v 9005 e98085 9005 00009005 b06d b06d b06d b06d b06d b06d b06d -2525 b06e b06e b06e * 5853 * 8ea1d8d3,d8d3,8ea1d8d3v,d8d3v 8ff8 e8bfb8 8ff8 00008ff8 b06e b06e b06e b06e b06e b06e b06e -2526 b06f b06f b06f * 5854 * 8ea1d8d4,d8d4,8ea1d8d4v,d8d4v 9095 e98295 9095 00009095 b06f b06f b06f b06f b06f b06f b06f -2527 b070 b070 b070 * 5855 * 8ea1d8d5,d8d5,8ea1d8d5v,d8d5v 90e1 e983a1 90e1 000090e1 b070 b070 b070 b070 b070 b070 b070 -2528 b071 b071 b071 * 5856 * 8ea1d8d6,d8d6,8ea1d8d6v,d8d6v 90dd e9839d 90dd 000090dd b071 b071 b071 b071 b071 b071 b071 -2529 b072 b072 b072 * 5857 * 8ea1d8d7,d8d7,8ea1d8d7v,d8d7v 90e2 e983a2 90e2 000090e2 b072 b072 b072 b072 b072 b072 b072 -2530 b073 b073 b073 * 5858 * 8ea1d8d8,d8d8,8ea1d8d8v,d8d8v 9152 e98592 9152 00009152 b073 b073 b073 b073 b073 b073 b073 -2531 b074 b074 b074 * 5859 * 8ea1d8d9,d8d9,8ea1d8d9v,d8d9v 914d e9858d 914d 0000914d b074 b074 b074 b074 b074 b074 b074 -2532 b075 b075 b075 * 585a * 8ea1d8da,d8da,8ea1d8dav,d8dav 914c e9858c 914c 0000914c b075 b075 b075 b075 b075 b075 b075 -2533 b076 b076 b076 * 585b * 8ea1d8db,d8db,8ea1d8dbv,d8dbv 91d8 e98798 91d8 000091d8 b076 b076 b076 b076 b076 b076 b076 -2534 b077 b077 b077 * 585c * 8ea1d8dc,d8dc,8ea1d8dcv,d8dcv 91dd e9879d 91dd 000091dd b077 b077 b077 b077 b077 b077 b077 -2535 b078 b078 b078 * 585d * 8ea1d8dd,d8dd,8ea1d8ddv,d8ddv 91d7 e98797 91d7 000091d7 b078 b078 b078 b078 b078 b078 b078 -2536 b079 b079 b079 * 585e * 8ea1d8de,d8de,8ea1d8dev,d8dev 91dc e9879c 91dc 000091dc b079 b079 b079 b079 b079 b079 b079 -2537 b07a b07a b07a * 585f * 8ea1d8df,d8df,8ea1d8dfv,d8dfv 91d9 e98799 91d9 000091d9 b07a b07a b07a b07a b07a b07a b07a -2538 b07b b07b b07b * 5860 * 8ea1d8e0,d8e0,8ea1d8e0v,d8e0v 9583 e99683 9583 00009583 b07b b07b b07b b07b b07b b07b b07b -2539 b07c b07c b07c * 5861 * 8ea1d8e1,d8e1,8ea1d8e1v,d8e1v 9662 e999a2 9662 00009662 b07c b07c b07c b07c b07c b07c b07c -2540 b07d b07d b07d * 5862 * 8ea1d8e2,d8e2,8ea1d8e2v,d8e2v 9663 e999a3 9663 00009663 b07d b07d b07d b07d b07d b07d b07d -2541 b07e b07e b07e * 5863 * 8ea1d8e3,d8e3,8ea1d8e3v,d8e3v 9661 e999a1 9661 00009661 b07e b07e b07e b07e b07e b07e b07e -2542 b0a1 b0a1 b0a1 * 5864 * 8ea1d8e4,d8e4,8ea1d8e4v,d8e4v 965b e9999b 965b 0000965b b0a1 b0a1 b0a1 b0a1 b0a1 b0a1 b0a1 -2543 b0a2 b0a2 b0a2 * 5865 * 8ea1d8e5,d8e5,8ea1d8e5v,d8e5v 965d e9999d 965d 0000965d b0a2 b0a2 b0a2 b0a2 b0a2 b0a2 b0a2 -2544 b0a3 b0a3 b0a3 * 5866 * 8ea1d8e6,d8e6,8ea1d8e6v,d8e6v 9664 e999a4 9664 00009664 b0a3 b0a3 b0a3 b0a3 b0a3 b0a3 b0a3 -2545 b0a4 b0a4 b0a4 * 5867 * 8ea1d8e7,d8e7,8ea1d8e7v,d8e7v 9658 e99998 9658 00009658 b0a4 b0a4 b0a4 b0a4 b0a4 b0a4 b0a4 -2546 b0a5 b0a5 b0a5 * 5868 * 8ea1d8e8,d8e8,8ea1d8e8v,d8e8v 965e e9999e 965e 0000965e b0a5 b0a5 b0a5 b0a5 b0a5 b0a5 b0a5 -2547 b0a6 b0a6 b0a6 * 5869 * 8ea1d8e9,d8e9,8ea1d8e9v,d8e9v 96bb e99abb 96bb 000096bb b0a6 b0a6 b0a6 b0a6 b0a6 b0a6 b0a6 -2548 b0a7 b0a7 b0a7 * 586a * 8ea1d8ea,d8ea,8ea1d8eav,d8eav 98e2 e9a3a2 98e2 000098e2 b0a7 b0a7 b0a7 b0a7 b0a7 b0a7 b0a7 -2549 b0a8 b0a8 b0a8 * 287c,586b * 8ea1a8fc,8ea1d8eb,a8fc,d8eb,8ea1a8fcv,8ea1d8ebv,a8fcv,d8ebv 99ac e9a6ac,e2beba 99ac,2fba 000099ac,00002fba b0a8 b0a8 b0a8 b0a8 b0a8 b0a8 b0a8 -2550 b0a9 b0a9 b0a9 * 287d,586c * 8ea1a8fd,8ea1d8ec,a8fd,d8ec,8ea1a8fdv,8ea1d8ecv,a8fdv,d8ecv 2ee3,9aa8 e9aaa8,e2bebb 9aa8,2fbb 00009aa8,00002fbb b0a9 b0a9 b0a9 b0a9 b0a9 b0a9 b0a9 -2551 b0aa b0aa b0aa * 287e,586d * 8ea1a8fe,8ea1d8ed,a8fe,d8ed,8ea1a8fev,8ea1d8edv,a8fev,d8edv 9ad8 e9ab98,e2bebc 9ad8,2fbc 00009ad8,00002fbc b0aa b0aa b0aa b0aa b0aa b0aa b0aa -2552 b0ab b0ab b0ab * 2922,586e * 8ea1a9a2,8ea1d8ee,a9a2,d8ee,8ea1a9a2v,8ea1d8eev,a9a2v,d8eev 9b25 e2bebe,e9aca5 2fbe,9b25 00002fbe,00009b25 b0ab b0ab b0ab b0ab b0ab b0ab b0ab -2553 b0ac b0ac b0ac * 2924,586f * 8ea1a9a4,8ea1d8ef,a9a4,d8ef,8ea1a9a4v,8ea1d8efv,a9a4v,d8efv 9b32 e9acb2,e2bf80 9b32,2fc0 00009b32,00002fc0 b0ac b0ac b0ac b0ac b0ac b0ac b0ac -2554 b0ad b0ad b0ad * 2925,5870 * 8ea1a9a5,8ea1d8f0,a9a5,d8f0,8ea1a9a5v,8ea1d8f0v,a9a5v,d8f0v 9b3c e9acbc,e2bf81 9b3c,2fc1 00009b3c,00002fc1 b0ad b0ad b0ad b0ad b0ad b0ad b0ad -2555 b0ae b0ae b0ae * 5871 * 8ea1d8f1,d8f1,8ea1d8f1v,d8f1v 4e7e e4b9be 4e7e 00004e7e b0ae b0ae b0ae b0ae b0ae b0ae b0ae -2556 b0af b0af b0af * 5872 * 8ea1d8f2,d8f2,8ea1d8f2v,d8f2v 507a e581ba 507a 0000507a b0af b0af b0af b0af b0af b0af b0af -2557 b0b0 b0b0 b0b0 * 5873 * 8ea1d8f3,d8f3,8ea1d8f3v,d8f3v 507d e581bd,ee80a6 507d,e026 0000507d,0000e026 fa66,b0b0 b0b0 b0b0 b0b0 b0b0 b0b0 fa66,b0b0 -2558 b0b1 b0b1 b0b1 * 5874 * 8ea1d8f4,d8f4,8ea1d8f4v,d8f4v 505c e5819c 505c 0000505c b0b1 b0b1 b0b1 b0b1 b0b1 b0b1 b0b1 -2559 b0b2 b0b2 b0b2 * 5875 * 8ea1d8f5,d8f5,8ea1d8f5v,d8f5v 5047 e58187 5047 00005047 b0b2 b0b2 b0b2 b0b2 b0b2 b0b2 b0b2 -2560 b0b3 b0b3 b0b3 * 5876 * 8ea1d8f6,d8f6,8ea1d8f6v,d8f6v 5043 e58183 5043 00005043 b0b3 b0b3 b0b3 b0b3 b0b3 b0b3 b0b3 -2561 b0b4 b0b4 b0b4 * 5877 * 8ea1d8f7,d8f7,8ea1d8f7v,d8f7v 504c e5818c 504c 0000504c b0b4 b0b4 b0b4 b0b4 b0b4 b0b4 b0b4 -2562 b0b5 b0b5 b0b5 * 5878 * 8ea1d8f8,d8f8,8ea1d8f8v,d8f8v 505a e5819a 505a 0000505a b0b5 b0b5 b0b5 b0b5 b0b5 b0b5 b0b5 -2563 b0b6 b0b6 b0b6 * 5879 * 8ea1d8f9,d8f9,8ea1d8f9v,d8f9v 5049 e58189 5049 00005049 b0b6 b0b6 b0b6 b0b6 b0b6 b0b6 b0b6 -2564 b0b7 b0b7 b0b7 * 587a * 8ea1d8fa,d8fa,8ea1d8fav,d8fav 5065 e581a5 5065 00005065 b0b7 b0b7 b0b7 b0b7 b0b7 b0b7 b0b7 -2565 b0b8 b0b8 b0b8 * 587b * 8ea1d8fb,d8fb,8ea1d8fbv,d8fbv 5076 e581b6 5076 00005076 b0b8 b0b8 b0b8 b0b8 b0b8 b0b8 b0b8 -2566 b0b9 b0b9 b0b9 * 587c * 8ea1d8fc,d8fc,8ea1d8fcv,d8fcv 504e e5818e 504e 0000504e b0b9 b0b9 b0b9 b0b9 b0b9 b0b9 b0b9 -2567 b0ba b0ba b0ba * 587d * 8ea1d8fd,d8fd,8ea1d8fdv,d8fdv 5055 e58195 5055 00005055 b0ba b0ba b0ba b0ba b0ba b0ba b0ba -2568 b0bb b0bb b0bb * 587e * 8ea1d8fe,d8fe,8ea1d8fev,d8fev 5075 e581b5 5075 00005075 b0bb b0bb b0bb b0bb b0bb b0bb b0bb -2569 b0bc b0bc b0bc * 5921 * 8ea1d9a1,d9a1,8ea1d9a1v,d9a1v 5074 e581b4 5074 00005074 b0bc b0bc b0bc b0bc b0bc b0bc b0bc -2570 b0bd b0bd b0bd * 5922 * 8ea1d9a2,d9a2,8ea1d9a2v,d9a2v 5077 e581b7 5077 00005077 b0bd b0bd b0bd b0bd b0bd b0bd b0bd -2571 b0be b0be b0be * 5923 * 8ea1d9a3,d9a3,8ea1d9a3v,d9a3v 504f e5818f 504f 0000504f b0be b0be b0be b0be b0be b0be b0be -2572 b0bf b0bf b0bf * 5924 * 8ea1d9a4,d9a4,8ea1d9a4v,d9a4v 500f e5808f 500f 0000500f b0bf b0bf b0bf b0bf b0bf b0bf b0bf -2573 b0c0 b0c0 b0c0 * 5925 * 8ea1d9a5,d9a5,8ea1d9a5v,d9a5v 506f e581af 506f 0000506f b0c0 b0c0 b0c0 b0c0 b0c0 b0c0 b0c0 -2574 b0c1 b0c1 b0c1 * 5926 * 8ea1d9a6,d9a6,8ea1d9a6v,d9a6v 506d e581ad 506d 0000506d b0c1 b0c1 b0c1 b0c1 b0c1 b0c1 b0c1 -2575 b0c2 b0c2 b0c2 * 5927 * 8ea1d9a7,d9a7,8ea1d9a7v,d9a7v 515c e5859c 515c 0000515c b0c2 b0c2 b0c2 b0c2 b0c2 b0c2 b0c2 -2576 b0c3 b0c3 b0c3 * 5928 * 8ea1d9a8,d9a8,8ea1d9a8v,d9a8v 5195 e58695 5195 00005195 b0c3 b0c3 b0c3 b0c3 b0c3 b0c3 b0c3 -2577 b0c4 b0c4 b0c4 * 5929 * 8ea1d9a9,d9a9,8ea1d9a9v,d9a9v 51f0 e587b0 51f0 000051f0 b0c4 b0c4 b0c4 b0c4 b0c4 b0c4 b0c4 -2578 b0c5 b0c5 b0c5 * 592a * 8ea1d9aa,d9aa,8ea1d9aav,d9aav 526a e589aa 526a 0000526a b0c5 b0c5 b0c5 b0c5 b0c5 b0c5 b0c5 -2579 b0c6 b0c6 b0c6 * 592b * 8ea1d9ab,d9ab,8ea1d9abv,d9abv 526f e589af 526f 0000526f b0c6 b0c6 b0c6 b0c6 b0c6 b0c6 b0c6 -2580 b0c7 b0c7 b0c7 * 592c * 8ea1d9ac,d9ac,8ea1d9acv,d9acv 52d2 e58b92 52d2 000052d2 b0c7 b0c7 b0c7 b0c7 b0c7 b0c7 b0c7 -2581 b0c8 b0c8 b0c8 * 592d * 8ea1d9ad,d9ad,8ea1d9adv,d9adv 52d9 e58b99 52d9 000052d9 b0c8 b0c8 b0c8 b0c8 b0c8 b0c8 b0c8 -2582 b0c9 b0c9 b0c9 * 592e * 8ea1d9ae,d9ae,8ea1d9aev,d9aev 52d8 e58b98 52d8 000052d8 b0c9 b0c9 b0c9 b0c9 b0c9 b0c9 b0c9 -2583 b0ca b0ca b0ca * 592f * 8ea1d9af,d9af,8ea1d9afv,d9afv 52d5 e58b95 52d5 000052d5 b0ca b0ca b0ca b0ca b0ca b0ca b0ca -2584 b0cb b0cb b0cb * 5930 * 8ea1d9b0,d9b0,8ea1d9b0v,d9b0v 5310 e58c90 5310 00005310 b0cb b0cb b0cb b0cb b0cb b0cb b0cb -2585 b0cc b0cc b0cc * 5931 * 8ea1d9b1,d9b1,8ea1d9b1v,d9b1v 530f e58c8f 530f 0000530f b0cc b0cc b0cc b0cc b0cc b0cc b0cc -2586 b0cd b0cd b0cd * 5932 * 8ea1d9b2,d9b2,8ea1d9b2v,d9b2v 5319 e58c99 5319 00005319 b0cd b0cd b0cd b0cd b0cd b0cd b0cd -2587 b0ce b0ce b0ce * 5933 * 8ea1d9b3,d9b3,8ea1d9b3v,d9b3v 533f e58cbf 533f 0000533f b0ce b0ce b0ce b0ce b0ce b0ce b0ce -2588 b0cf b0cf b0cf * 5934 * 8ea1d9b4,d9b4,8ea1d9b4v,d9b4v 5340 e58d80 5340 00005340 b0cf b0cf b0cf b0cf b0cf b0cf b0cf -2589 b0d0 b0d0 b0d0 * 5935 * 8ea1d9b5,d9b5,8ea1d9b5v,d9b5v 533e e58cbe 533e 0000533e b0d0 b0d0 b0d0 b0d0 b0d0 b0d0 b0d0 -2590 b0d1 b0d1 b0d1 * 5936 * 8ea1d9b6,d9b6,8ea1d9b6v,d9b6v 53c3 e58f83 53c3 000053c3 b0d1 b0d1 b0d1 b0d1 b0d1 b0d1 b0d1 -2591 b0d2 b0d2 b0d2 * 5937 * 8ea1d9b7,d9b7,8ea1d9b7v,d9b7v 66fc e69bbc 66fc 000066fc b0d2 b0d2 b0d2 b0d2 b0d2 b0d2 b0d2 -2592 b0d3 b0d3 b0d3 * 5938 * 8ea1d9b8,d9b8,8ea1d9b8v,d9b8v 5546 e59586 5546 00005546 b0d3 b0d3 b0d3 b0d3 b0d3 b0d3 b0d3 -2593 b0d4 b0d4 b0d4 * 5939 * 8ea1d9b9,d9b9,8ea1d9b9v,d9b9v 556a e595aa 556a 0000556a b0d4 b0d4 b0d4 b0d4 b0d4 b0d4 b0d4 -2594 b0d5 b0d5 b0d5 * 593a * 8ea1d9ba,d9ba,8ea1d9bav,d9bav 5566 e595a6 5566 00005566 b0d5 b0d5 b0d5 b0d5 b0d5 b0d5 b0d5 -2595 b0d6 b0d6 b0d6 * 593b * 8ea1d9bb,d9bb,8ea1d9bbv,d9bbv 5544 e59584 5544 00005544 b0d6 b0d6 b0d6 b0d6 b0d6 b0d6 b0d6 -2596 b0d7 b0d7 b0d7 * 593c * 8ea1d9bc,d9bc,8ea1d9bcv,d9bcv 555e e5959e 555e 0000555e b0d7 b0d7 b0d7 b0d7 b0d7 b0d7 b0d7 -2597 b0d8 b0d8 b0d8 * 593d * 8ea1d9bd,d9bd,8ea1d9bdv,d9bdv 5561 e595a1 5561 00005561 b0d8 b0d8 b0d8 b0d8 b0d8 b0d8 b0d8 -2598 b0d9 b0d9 b0d9 * 593e * 8ea1d9be,d9be,8ea1d9bev,d9bev 5543 e59583 5543 00005543 b0d9 b0d9 b0d9 b0d9 b0d9 b0d9 b0d9 -2599 b0da b0da b0da * 593f * 8ea1d9bf,d9bf,8ea1d9bfv,d9bfv 554a e5958a 554a 0000554a b0da b0da b0da b0da b0da b0da b0da -2600 b0db b0db b0db * 5940 * 8ea1d9c0,d9c0,8ea1d9c0v,d9c0v 5531 e594b1 5531 00005531 b0db b0db b0db b0db b0db b0db b0db -2601 b0dc b0dc b0dc * 5941 * 8ea1d9c1,d9c1,8ea1d9c1v,d9c1v 5556 e59596 5556 00005556 b0dc b0dc b0dc b0dc b0dc b0dc b0dc -2602 b0dd b0dd b0dd * 5942 * 8ea1d9c2,d9c2,8ea1d9c2v,d9c2v 554f e5958f 554f 0000554f b0dd b0dd b0dd b0dd b0dd b0dd b0dd -2603 b0de b0de b0de * 5943 * 8ea1d9c3,d9c3,8ea1d9c3v,d9c3v 5555 e59595 5555 00005555 b0de b0de b0de b0de b0de b0de b0de -2604 b0df b0df b0df * 5944 * 8ea1d9c4,d9c4,8ea1d9c4v,d9c4v 552f e594af 552f 0000552f b0df b0df b0df b0df b0df b0df b0df -2605 b0e0 b0e0 b0e0 * 5945 * 8ea1d9c5,d9c5,8ea1d9c5v,d9c5v 5564 e595a4 5564 00005564 b0e0 b0e0 b0e0 b0e0 b0e0 b0e0 b0e0 -2606 b0e1 b0e1 b0e1 * 5946 * 8ea1d9c6,d9c6,8ea1d9c6v,d9c6v 5538 e594b8 5538 00005538 b0e1 b0e1 b0e1 b0e1 b0e1 b0e1 b0e1 -2607 b0e2 b0e2 b0e2 * 5947 * 8ea1d9c7,d9c7,8ea1d9c7v,d9c7v 552e e594ae 552e 0000552e b0e2 b0e2 b0e2 b0e2 b0e2 b0e2 b0e2 -2608 b0e3 b0e3 b0e3 * 5948 * 8ea1d9c8,d9c8,8ea1d9c8v,d9c8v 555c e5959c 555c 0000555c b0e3 b0e3 b0e3 b0e3 b0e3 b0e3 b0e3 -2609 b0e4 b0e4 b0e4 * 5949 * 8ea1d9c9,d9c9,8ea1d9c9v,d9c9v 552c e594ac 552c 0000552c b0e4 b0e4 b0e4 b0e4 b0e4 b0e4 b0e4 -2610 b0e5 b0e5 b0e5 * 594a * 8ea1d9ca,d9ca,8ea1d9cav,d9cav 5563 e595a3 5563 00005563 b0e5 b0e5 b0e5 b0e5 b0e5 b0e5 b0e5 -2611 b0e6 b0e6 b0e6 * 594b * 8ea1d9cb,d9cb,8ea1d9cbv,d9cbv 5533 e594b3 5533 00005533 b0e6 b0e6 b0e6 b0e6 b0e6 b0e6 b0e6 -2612 b0e7 b0e7 b0e7 * 594c * 8ea1d9cc,d9cc,8ea1d9ccv,d9ccv 5541 e59581 5541 00005541 b0e7 b0e7 b0e7 b0e7 b0e7 b0e7 b0e7 -2613 b0e8 b0e8 b0e8 * 594d * 8ea1d9cd,d9cd,8ea1d9cdv,d9cdv 5557 e59597 5557 00005557 b0e8 b0e8 b0e8 b0e8 b0e8 b0e8 b0e8 -2614 b0e9 b0e9 b0e9 * 594e * 8ea1d9ce,d9ce,8ea1d9cev,d9cev 5708 e59c88 5708 00005708 b0e9 b0e9 b0e9 b0e9 b0e9 b0e9 b0e9 -2615 b0ea b0ea b0ea * 594f * 8ea1d9cf,d9cf,8ea1d9cfv,d9cfv 570b e59c8b 570b 0000570b b0ea b0ea b0ea b0ea b0ea b0ea b0ea -2616 b0eb b0eb b0eb * 5950 * 8ea1d9d0,d9d0,8ea1d9d0v,d9d0v 5709 e59c89 5709 00005709 b0eb b0eb b0eb b0eb b0eb b0eb b0eb -2617 b0ec b0ec b0ec * 5951 * 8ea1d9d1,d9d1,8ea1d9d1v,d9d1v 57df e59f9f 57df 000057df b0ec b0ec b0ec b0ec b0ec b0ec b0ec -2618 b0ed b0ed b0ed * 5952 * 8ea1d9d2,d9d2,8ea1d9d2v,d9d2v 5805 e5a085 5805 00005805 b0ed b0ed b0ed b0ed b0ed b0ed b0ed -2619 b0ee b0ee b0ee * 5953 * 8ea1d9d3,d9d3,8ea1d9d3v,d9d3v 580a e5a08a 580a 0000580a b0ee b0ee b0ee b0ee b0ee b0ee b0ee -2620 b0ef b0ef b0ef * 5954 * 8ea1d9d4,d9d4,8ea1d9d4v,d9d4v 5806 e5a086 5806 00005806 b0ef b0ef b0ef b0ef b0ef b0ef b0ef -2621 b0f0 b0f0 b0f0 * 5955 * 8ea1d9d5,d9d5,8ea1d9d5v,d9d5v 57e0 e59fa0 57e0 000057e0 b0f0 b0f0 b0f0 b0f0 b0f0 b0f0 b0f0 -2622 b0f1 b0f1 b0f1 * 5956 * 8ea1d9d6,d9d6,8ea1d9d6v,d9d6v 57e4 e59fa4 57e4 000057e4 b0f1 b0f1 b0f1 b0f1 b0f1 b0f1 b0f1 -2623 b0f2 b0f2 b0f2 * 5957 * 8ea1d9d7,d9d7,8ea1d9d7v,d9d7v 57fa e59fba 57fa 000057fa b0f2 b0f2 b0f2 b0f2 b0f2 b0f2 b0f2 -2624 b0f3 b0f3 b0f3 * 5958 * 8ea1d9d8,d9d8,8ea1d9d8v,d9d8v 5802 e5a082 5802 00005802 b0f3 b0f3 b0f3 b0f3 b0f3 b0f3 b0f3 -2625 b0f4 b0f4 b0f4 * 5959 * 8ea1d9d9,d9d9,8ea1d9d9v,d9d9v 5835 e5a0b5 5835 00005835 b0f4 b0f4 b0f4 b0f4 b0f4 b0f4 b0f4 -2626 b0f5 b0f5 b0f5 * 595a * 8ea1d9da,d9da,8ea1d9dav,d9dav 57f7 e59fb7 57f7 000057f7 b0f5 b0f5 b0f5 b0f5 b0f5 b0f5 b0f5 -2627 b0f6 b0f6 b0f6 * 595b * 8ea1d9db,d9db,8ea1d9dbv,d9dbv 57f9 e59fb9 57f9 000057f9 b0f6 b0f6 b0f6 b0f6 b0f6 b0f6 b0f6 -2628 b0f7 b0f7 b0f7 * 595c * 8ea1d9dc,d9dc,8ea1d9dcv,d9dcv 5920 e5a4a0 5920 00005920 b0f7 b0f7 b0f7 b0f7 b0f7 b0f7 b0f7 -2629 b0f8 b0f8 b0f8 * 595d * 8ea1d9dd,d9dd,8ea1d9ddv,d9ddv 5962 e5a5a2 5962 00005962 b0f8 b0f8 b0f8 b0f8 b0f8 b0f8 b0f8 -2630 b0f9 b0f9 b0f9 * 595e * 8ea1d9de,d9de,8ea1d9dev,d9dev 5a36 e5a8b6 5a36 00005a36 b0f9 b0f9 b0f9 b0f9 b0f9 b0f9 b0f9 -2631 b0fa b0fa b0fa * 595f * 8ea1d9df,d9df,8ea1d9dfv,d9dfv 5a41 e5a981 5a41 00005a41 b0fa b0fa b0fa b0fa b0fa b0fa b0fa -2632 b0fb b0fb b0fb * 5960 * 8ea1d9e0,d9e0,8ea1d9e0v,d9e0v 5a49 e5a989 5a49 00005a49 b0fb b0fb b0fb b0fb b0fb b0fb b0fb -2633 b0fc b0fc b0fc * 5961 * 8ea1d9e1,d9e1,8ea1d9e1v,d9e1v 5a66 e5a9a6 5a66 00005a66 b0fc b0fc b0fc b0fc b0fc b0fc b0fc -2634 b0fd b0fd b0fd * 5962 * 8ea1d9e2,d9e2,8ea1d9e2v,d9e2v 5a6a e5a9aa 5a6a 00005a6a b0fd b0fd b0fd b0fd b0fd b0fd b0fd -2635 b0fe b0fe b0fe * 5963 * 8ea1d9e3,d9e3,8ea1d9e3v,d9e3v 5a40 e5a980 5a40 00005a40 b0fe b0fe b0fe b0fe b0fe b0fe b0fe -2636 b140 b140 b140 * 5964 * 8ea1d9e4,d9e4,8ea1d9e4v,d9e4v 5a3c e5a8bc 5a3c 00005a3c b140 b140 b140 b140 b140 b140 b140 -2637 b141 b141 b141 * 5965 * 8ea1d9e5,d9e5,8ea1d9e5v,d9e5v 5a62 e5a9a2 5a62 00005a62 b141 b141 b141 b141 b141 b141 b141 -2638 b142 b142 b142 * 5966 * 8ea1d9e6,d9e6,8ea1d9e6v,d9e6v 5a5a e5a99a 5a5a 00005a5a b142 b142 b142 b142 b142 b142 b142 -2639 b143 b143 b143 * 5967 * 8ea1d9e7,d9e7,8ea1d9e7v,d9e7v 5a46 e5a986 5a46 00005a46 b143 b143 b143 b143 b143 b143 b143 -2640 b144 b144 b144 * 5968 * 8ea1d9e8,d9e8,8ea1d9e8v,d9e8v 5a4a e5a98a 5a4a 00005a4a b144 b144 b144 b144 b144 b144 b144 -2641 b145 b145 b145 * 5969 * 8ea1d9e9,d9e9,8ea1d9e9v,d9e9v 5b70 e5adb0 5b70 00005b70 b145 b145 b145 b145 b145 b145 b145 -2642 b146 b146 b146 * 596a * 8ea1d9ea,d9ea,8ea1d9eav,d9eav 5bc7 e5af87 5bc7 00005bc7 b146 b146 b146 b146 b146 b146 b146 -2643 b147 b147 b147 * 596b * 8ea1d9eb,d9eb,8ea1d9ebv,d9ebv 5bc5 e5af85 5bc5 00005bc5 b147 b147 b147 b147 b147 b147 b147 -2644 b148 b148 b148 * 596c * 8ea1d9ec,d9ec,8ea1d9ecv,d9ecv 5bc4 e5af84 5bc4 00005bc4 b148 b148 b148 b148 b148 b148 b148 -2645 b149 b149 b149 * 596d * 8ea1d9ed,d9ed,8ea1d9edv,d9edv 5bc2 e5af82 5bc2 00005bc2 b149 b149 b149 b149 b149 b149 b149 -2646 b14a b14a b14a * 596e * 8ea1d9ee,d9ee,8ea1d9eev,d9eev 5bbf e5aebf 5bbf 00005bbf b14a b14a b14a b14a b14a b14a b14a -2647 b14b b14b b14b * 596f * 8ea1d9ef,d9ef,8ea1d9efv,d9efv 5bc6 e5af86 5bc6 00005bc6 b14b b14b b14b b14b b14b b14b b14b -2648 b14c b14c b14c * 5970 * 8ea1d9f0,d9f0,8ea1d9f0v,d9f0v 5c09 e5b089 5c09 00005c09 b14c b14c b14c b14c b14c b14c b14c -2649 b14d b14d b14d * 5971 * 8ea1d9f1,d9f1,8ea1d9f1v,d9f1v 5c08 e5b088 5c08 00005c08 b14d b14d b14d b14d b14d b14d b14d -2650 b14e b14e b14e * 5972 * 8ea1d9f2,d9f2,8ea1d9f2v,d9f2v 5c07 e5b087 5c07 00005c07 b14e b14e b14e b14e b14e b14e b14e -2651 b14f b14f b14f * 5973 * 8ea1d9f3,d9f3,8ea1d9f3v,d9f3v 5c60 e5b1a0 5c60 00005c60 b14f b14f b14f b14f b14f b14f b14f -2652 b150 b150 b150 * 5974 * 8ea1d9f4,d9f4,8ea1d9f4v,d9f4v 5c5c e5b19c 5c5c 00005c5c b150 b150 b150 b150 b150 b150 b150 -2653 b151 b151 b151 * 5975 * 8ea1d9f5,d9f5,8ea1d9f5v,d9f5v 5c5d e5b19d 5c5d 00005c5d b151 b151 b151 b151 b151 b151 b151 -2654 b152 b152 b152 * 5976 * 8ea1d9f6,d9f6,8ea1d9f6v,d9f6v 5d07 e5b487 5d07 00005d07 b152 b152 b152 b152 b152 b152 b152 -2655 b153 b153 b153 * 5977 * 8ea1d9f7,d9f7,8ea1d9f7v,d9f7v 5d06 e5b486 5d06 00005d06 b153 b153 b153 b153 b153 b153 b153 -2656 b154 b154 b154 * 5978 * 8ea1d9f8,d9f8,8ea1d9f8v,d9f8v 5d0e e5b48e 5d0e 00005d0e b154 b154 b154 b154 b154 b154 b154 -2657 b155 b155 b155 * 5979 * 8ea1d9f9,d9f9,8ea1d9f9v,d9f9v 5d1b e5b49b 5d1b 00005d1b b155 b155 b155 b155 b155 b155 b155 -2658 b156 b156 b156 * 597a * 8ea1d9fa,d9fa,8ea1d9fav,d9fav 5d16 e5b496 5d16 00005d16 b156 b156 b156 b156 b156 b156 b156 -2659 b157 b157 b157 * 597b * 8ea1d9fb,d9fb,8ea1d9fbv,d9fbv 5d22 e5b4a2 5d22 00005d22 b157 b157 b157 b157 b157 b157 b157 -2660 b158 b158 b158 * 597c * 8ea1d9fc,d9fc,8ea1d9fcv,d9fcv 5d11 e5b491 5d11 00005d11 b158 b158 b158 b158 b158 b158 b158 -2661 b159 b159 b159 * 597d * 8ea1d9fd,d9fd,8ea1d9fdv,d9fdv 5d29 e5b4a9 5d29 00005d29 b159 b159 b159 b159 b159 b159 b159 -2662 b15a b15a b15a * 597e * 8ea1d9fe,d9fe,8ea1d9fev,d9fev 5d14 e5b494 5d14 00005d14 b15a b15a b15a b15a b15a b15a b15a -2663 b15b b15b b15b * 5a21 * 8ea1daa1,daa1,8ea1daa1v,daa1v 5d19 e5b499 5d19 00005d19 b15b b15b b15b b15b b15b b15b b15b -2664 b15c b15c b15c * 5a22 * 8ea1daa2,daa2,8ea1daa2v,daa2v 5d24 e5b4a4 5d24 00005d24 b15c b15c b15c b15c b15c b15c b15c -2665 b15d b15d b15d * 5a23 * 8ea1daa3,daa3,8ea1daa3v,daa3v 5d27 e5b4a7 5d27 00005d27 b15d b15d b15d b15d b15d b15d b15d -2666 b15e b15e b15e * 5a24 * 8ea1daa4,daa4,8ea1daa4v,daa4v 5d17 e5b497 5d17 00005d17 b15e b15e b15e b15e b15e b15e b15e -2667 b15f b15f b15f * 5a25 * 8ea1daa5,daa5,8ea1daa5v,daa5v 5de2 e5b7a2 5de2 00005de2 b15f b15f b15f b15f b15f b15f b15f -2668 b160 b160 b160 * 5a26 * 8ea1daa6,daa6,8ea1daa6v,daa6v 5e38 e5b8b8 5e38 00005e38 b160 b160 b160 b160 b160 b160 b160 -2669 b161 b161 b161 * 5a27 * 8ea1daa7,daa7,8ea1daa7v,daa7v 5e36 e5b8b6 5e36 00005e36 b161 b161 b161 b161 b161 b161 b161 -2670 b162 b162 b162 * 5a28 * 8ea1daa8,daa8,8ea1daa8v,daa8v 5e33 e5b8b3 5e33 00005e33 b162 b162 b162 b162 b162 b162 b162 -2671 b163 b163 b163 * 5a29 * 8ea1daa9,daa9,8ea1daa9v,daa9v 5e37 e5b8b7 5e37 00005e37 b163 b163 b163 b163 b163 b163 b163 -2672 b164 b164 b164 * 5a2a * 8ea1daaa,daaa,8ea1daaav,daaav 5eb7 e5bab7 5eb7 00005eb7 b164 b164 b164 b164 b164 b164 b164 -2673 b165 b165 b165 * 5a2b * 8ea1daab,daab,8ea1daabv,daabv 5eb8 e5bab8 5eb8 00005eb8 b165 b165 b165 b165 b165 b165 b165 -2674 b166 b166 b166 * 5a2c * 8ea1daac,daac,8ea1daacv,daacv 5eb6 e5bab6 5eb6 00005eb6 b166 b166 b166 b166 b166 b166 b166 -2675 b167 b167 b167 * 5a2d * 8ea1daad,daad,8ea1daadv,daadv 5eb5 e5bab5 5eb5 00005eb5 b167 b167 b167 b167 b167 b167 b167 -2676 b168 b168 b168 * 5a2e * 8ea1daae,daae,8ea1daaev,daaev 5ebe e5babe 5ebe 00005ebe b168 b168 b168 b168 b168 b168 b168 -2677 b169 b169 b169 * 5a2f * 8ea1daaf,daaf,8ea1daafv,daafv 5f35 e5bcb5 5f35 00005f35 b169 b169 b169 b169 b169 b169 b169 -2678 b16a b16a b16a * 5a30 * 8ea1dab0,dab0,8ea1dab0v,dab0v 5f37 e5bcb7 5f37 00005f37 b16a b16a b16a b16a b16a b16a b16a -2679 b16b b16b b16b * 5a31 * 8ea1dab1,dab1,8ea1dab1v,dab1v 5f57 e5bd97 5f57 00005f57 b16b b16b b16b b16b b16b b16b b16b -2680 b16c b16c b16c * 5a32 * 8ea1dab2,dab2,8ea1dab2v,dab2v 5f6c e5bdac 5f6c 00005f6c b16c b16c b16c b16c b16c b16c b16c -2681 b16d b16d b16d * 5a33 * 8ea1dab3,dab3,8ea1dab3v,dab3v 5f69 e5bda9 5f69 00005f69 b16d b16d b16d b16d b16d b16d b16d -2682 b16e b16e b16e * 5a34 * 8ea1dab4,dab4,8ea1dab4v,dab4v 5f6b e5bdab 5f6b 00005f6b b16e b16e b16e b16e b16e b16e b16e -2683 b16f b16f b16f * 5a35 * 8ea1dab5,dab5,8ea1dab5v,dab5v 5f97 e5be97 5f97 00005f97 b16f b16f b16f b16f b16f b16f b16f -2684 b170 b170 b170 * 5a36 * 8ea1dab6,dab6,8ea1dab6v,dab6v 5f99 e5be99 5f99 00005f99 b170 b170 b170 b170 b170 b170 b170 -2685 b171 b171 b171 * 5a37 * 8ea1dab7,dab7,8ea1dab7v,dab7v 5f9e e5be9e 5f9e 00005f9e b171 b171 b171 b171 b171 b171 b171 -2686 b172 b172 b172 * 5a38 * 8ea1dab8,dab8,8ea1dab8v,dab8v 5f98 e5be98 5f98 00005f98 b172 b172 b172 b172 b172 b172 b172 -2687 b173 b173 b173 * 5a39 * 8ea1dab9,dab9,8ea1dab9v,dab9v 5fa1 e5bea1 5fa1 00005fa1 b173 b173 b173 b173 b173 b173 b173 -2688 b174 b174 b174 * 5a3a * 8ea1daba,daba,8ea1dabav,dabav 5fa0 e5bea0 5fa0 00005fa0 b174 b174 b174 b174 b174 b174 b174 -2689 b175 b175 b175 * 5a3b * 8ea1dabb,dabb,8ea1dabbv,dabbv 5f9c e5be9c 5f9c 00005f9c b175 b175 b175 b175 b175 b175 b175 -2690 b176 b176 b176 * 5a3c * 8ea1dabc,dabc,8ea1dabcv,dabcv 607f e681bf 607f 0000607f b176 b176 b176 b176 b176 b176 b176 -2691 b177 b177 b177 * 5a3d * 8ea1dabd,dabd,8ea1dabdv,dabdv 60a3 e682a3 60a3 000060a3 b177 b177 b177 b177 b177 b177 b177 -2692 b178 b178 b178 * 5a3e * 8ea1dabe,dabe,8ea1dabev,dabev 6089 e68289 6089 00006089 b178 b178 b178 b178 b178 b178 b178 -2693 b179 b179 b179 * 5a3f * 8ea1dabf,dabf,8ea1dabfv,dabfv 60a0 e682a0 60a0 000060a0 b179 b179 b179 b179 b179 b179 b179 -2694 b17a b17a b17a * 5a40 * 8ea1dac0,dac0,8ea1dac0v,dac0v 60a8 e682a8 60a8 000060a8 b17a b17a b17a b17a b17a b17a b17a -2695 b17b b17b b17b * 5a41 * 8ea1dac1,dac1,8ea1dac1v,dac1v 60cb e6838b 60cb 000060cb b17b b17b b17b b17b b17b b17b b17b -2696 b17c b17c b17c * 5a42 * 8ea1dac2,dac2,8ea1dac2v,dac2v 60b4 e682b4 60b4 000060b4 b17c b17c b17c b17c b17c b17c b17c -2697 b17d b17d b17d * 5a43 * 8ea1dac3,dac3,8ea1dac3v,dac3v 60e6 e683a6 60e6 000060e6 b17d b17d b17d b17d b17d b17d b17d -2698 b17e b17e b17e * 5a44 * 8ea1dac4,dac4,8ea1dac4v,dac4v 60bd e682bd 60bd 000060bd b17e b17e b17e b17e b17e b17e b17e -2699 b1a1 b1a1 b1a1 * 5a45 * 8ea1dac5,dac5,8ea1dac5v,dac5v 60c5 e68385 60c5 000060c5 b1a1 b1a1 b1a1 b1a1 b1a1 b1a1 b1a1 -2700 b1a2 b1a2 b1a2 * 5a46 * 8ea1dac6,dac6,8ea1dac6v,dac6v 60bb e682bb 60bb 000060bb b1a2 b1a2 b1a2 b1a2 b1a2 b1a2 b1a2 -2701 b1a3 b1a3 b1a3 * 5a47 * 8ea1dac7,dac7,8ea1dac7v,dac7v 60b5 e682b5 60b5 000060b5 b1a3 b1a3 b1a3 b1a3 b1a3 b1a3 b1a3 -2702 b1a4 b1a4 b1a4 * 5a48 * 8ea1dac8,dac8,8ea1dac8v,dac8v 60dc e6839c 60dc 000060dc b1a4 b1a4 b1a4 b1a4 b1a4 b1a4 b1a4 -2703 b1a5 b1a5 b1a5 * 5a49 * 8ea1dac9,dac9,8ea1dac9v,dac9v 60bc e682bc 60bc 000060bc b1a5 b1a5 b1a5 b1a5 b1a5 b1a5 b1a5 -2704 b1a6 b1a6 b1a6 * 5a4a * 8ea1daca,daca,8ea1dacav,dacav 60d8 e68398 60d8 000060d8 b1a6 b1a6 b1a6 b1a6 b1a6 b1a6 b1a6 -2705 b1a7 b1a7 b1a7 * 5a4b * 8ea1dacb,dacb,8ea1dacbv,dacbv 60d5 e68395 60d5 000060d5 b1a7 b1a7 b1a7 b1a7 b1a7 b1a7 b1a7 -2706 b1a8 b1a8 b1a8 * 5a4c * 8ea1dacc,dacc,8ea1daccv,daccv 60c6 e68386 60c6 000060c6 b1a8 b1a8 b1a8 b1a8 b1a8 b1a8 b1a8 -2707 b1a9 b1a9 b1a9 * 5a4d * 8ea1dacd,dacd,8ea1dacdv,dacdv 60df e6839f 60df 000060df b1a9 b1a9 b1a9 b1a9 b1a9 b1a9 b1a9 -2708 b1aa b1aa b1aa * 5a4e * 8ea1dace,dace,8ea1dacev,dacev 60b8 e682b8 60b8 000060b8 b1aa b1aa b1aa b1aa b1aa b1aa b1aa -2709 b1ab b1ab b1ab * 5a4f * 8ea1dacf,dacf,8ea1dacfv,dacfv 60da e6839a 60da 000060da b1ab b1ab,fc63 915a,b1ab b1ab b1ab b1ab b1ab -2710 b1ac b1ac b1ac * 5a50 * 8ea1dad0,dad0,8ea1dad0v,dad0v 60c7 e68387 60c7 000060c7 b1ac b1ac b1ac b1ac b1ac b1ac b1ac -2711 b1ad b1ad b1ad * 5a51 * 8ea1dad1,dad1,8ea1dad1v,dad1v 621a e6889a 621a 0000621a b1ad b1ad b1ad b1ad b1ad b1ad b1ad -2712 b1ae b1ae b1ae * 5a52 * 8ea1dad2,dad2,8ea1dad2v,dad2v 621b e6889b 621b 0000621b b1ae b1ae b1ae b1ae b1ae b1ae b1ae -2713 b1af b1af b1af * 5a53 * 8ea1dad3,dad3,8ea1dad3v,dad3v 6248 e68988 6248 00006248 b1af b1af b1af b1af b1af b1af b1af -2714 b1b0 b1b0 b1b0 * 5a54 * 8ea1dad4,dad4,8ea1dad4v,dad4v 63a0 e68ea0 63a0 000063a0 b1b0 b1b0 b1b0 b1b0 b1b0 b1b0 b1b0 -2715 b1b1 b1b1 b1b1 * 5a55 * 8ea1dad5,dad5,8ea1dad5v,dad5v 63a7 e68ea7 63a7 000063a7 b1b1 b1b1 b1b1 b1b1 b1b1 b1b1 b1b1 -2716 b1b2 b1b2 b1b2 * 5a56 * 8ea1dad6,dad6,8ea1dad6v,dad6v 6372 e68db2 6372 00006372 b1b2 b1b2 b1b2 b1b2 b1b2 b1b2 b1b2 -2717 b1b3 b1b3 b1b3 * 5a57 * 8ea1dad7,dad7,8ea1dad7v,dad7v 6396 e68e96 6396 00006396 b1b3 b1b3 b1b3 b1b3 b1b3 b1b3 b1b3 -2718 b1b4 b1b4 b1b4 * 5a58 * 8ea1dad8,dad8,8ea1dad8v,dad8v 63a2 e68ea2 63a2 000063a2 b1b4 b1b4 b1b4 b1b4 b1b4 b1b4 b1b4 -2719 b1b5 b1b5 b1b5 * 5a59 * 8ea1dad9,dad9,8ea1dad9v,dad9v 63a5 e68ea5 63a5 000063a5 b1b5 b1b5 b1b5 b1b5 b1b5 b1b5 b1b5 -2720 b1b6 b1b6 b1b6 * 5a5a * 8ea1dada,dada,8ea1dadav,dadav 6377 e68db7 6377 00006377 b1b6 b1b6 b1b6 b1b6 b1b6 b1b6 b1b6 -2721 b1b7 b1b7 b1b7 * 5a5b * 8ea1dadb,dadb,8ea1dadbv,dadbv 6367 e68da7 6367 00006367 b1b7 b1b7 b1b7 b1b7 b1b7 b1b7 b1b7 -2722 b1b8 b1b8 b1b8 * 5a5c * 8ea1dadc,dadc,8ea1dadcv,dadcv 6398 e68e98 6398 00006398 b1b8 b1b8 b1b8 b1b8 b1b8 b1b8 b1b8 -2723 b1b9 b1b9 b1b9 * 5a5d * 8ea1dadd,dadd,8ea1daddv,daddv 63aa e68eaa 63aa 000063aa b1b9 b1b9 b1b9 b1b9 b1b9 b1b9 b1b9 -2724 b1ba b1ba b1ba * 5a5e * 8ea1dade,dade,8ea1dadev,dadev 6371 e68db1 6371 00006371 b1ba b1ba b1ba b1ba b1ba b1ba b1ba -2725 b1bb b1bb b1bb * 5a5f * 8ea1dadf,dadf,8ea1dadfv,dadfv 63a9 e68ea9 63a9 000063a9 b1bb b1bb b1bb b1bb b1bb b1bb b1bb -2726 b1bc b1bc b1bc * 5a60 * 8ea1dae0,dae0,8ea1dae0v,dae0v 6389 e68e89 6389 00006389 b1bc b1bc b1bc b1bc b1bc b1bc b1bc -2727 b1bd b1bd b1bd * 5a61 * 8ea1dae1,dae1,8ea1dae1v,dae1v 6383 e68e83 6383 00006383 b1bd b1bd b1bd b1bd b1bd b1bd b1bd -2728 b1be b1be b1be * 5a62 * 8ea1dae2,dae2,8ea1dae2v,dae2v 639b e68e9b 639b 0000639b b1be b1be b1be b1be b1be b1be b1be -2729 b1bf b1bf b1bf * 5a63 * 8ea1dae3,dae3,8ea1dae3v,dae3v 636b e68dab 636b 0000636b b1bf b1bf b1bf b1bf b1bf b1bf b1bf -2730 b1c0 b1c0 b1c0 * 5a64 * 8ea1dae4,dae4,8ea1dae4v,dae4v 63a8 e68ea8 63a8 000063a8 b1c0 b1c0 b1c0 b1c0 b1c0 b1c0 b1c0 -2731 b1c1 b1c1 b1c1 * 5a65 * 8ea1dae5,dae5,8ea1dae5v,dae5v 6384 e68e84 6384 00006384 b1c1 b1c1 b1c1 b1c1 b1c1 b1c1 b1c1 -2732 b1c2 b1c2 b1c2 * 5a66 * 8ea1dae6,dae6,8ea1dae6v,dae6v 6388 e68e88 6388 00006388 b1c2 b1c2 b1c2 b1c2 b1c2 b1c2 b1c2 -2733 b1c3 b1c3 b1c3 * 5a67 * 8ea1dae7,dae7,8ea1dae7v,dae7v 6399 e68e99 6399 00006399 b1c3 b1c3 b1c3 b1c3 b1c3 b1c3 b1c3 -2734 b1c4 b1c4 b1c4 * 5a68 * 8ea1dae8,dae8,8ea1dae8v,dae8v 63a1 e68ea1 63a1 000063a1 b1c4 b1c4 b1c4 b1c4 b1c4 b1c4 b1c4 -2735 b1c5 b1c5 b1c5 * 5a69 * 8ea1dae9,dae9,8ea1dae9v,dae9v 63ac e68eac 63ac 000063ac b1c5 b1c5 b1c5 b1c5 b1c5 b1c5 b1c5 -2736 b1c6 b1c6 b1c6 * 5a6a * 8ea1daea,daea,8ea1daeav,daeav 6392 e68e92 6392 00006392 b1c6 b1c6 b1c6 b1c6 b1c6 b1c6 b1c6 -2737 b1c7 b1c7 b1c7 * 5a6b * 8ea1daeb,daeb,8ea1daebv,daebv 638f e68e8f 638f 0000638f b1c7 b1c7 b1c7 b1c7 b1c7 b1c7 b1c7 -2738 b1c8 b1c8 b1c8 * 5a6c * 8ea1daec,daec,8ea1daecv,daecv 6380 e68e80 6380 00006380 b1c8 b1c8 b1c8 b1c8 b1c8 b1c8 b1c8 -2739 b1c9 b1c9 b1c9 * 5a6d * 8ea1daed,daed,8ea1daedv,daedv 637b e68dbb 637b 0000637b b1c9 b1c9 b1c9 b1c9 b1c9 b1c9 b1c9 -2740 b1ca b1ca b1ca * 5a6e * 8ea1daee,daee,8ea1daeev,daeev 6369 e68da9 6369 00006369 b1ca b1ca b1ca b1ca b1ca b1ca b1ca -2741 b1cb b1cb b1cb * 5a6f * 8ea1daef,daef,8ea1daefv,daefv 6368 e68da8 6368 00006368 b1cb b1cb b1cb b1cb b1cb b1cb b1cb -2742 b1cc b1cc b1cc * 5a70 * 8ea1daf0,daf0,8ea1daf0v,daf0v 637a e68dba 637a 0000637a b1cc b1cc b1cc b1cc b1cc b1cc b1cc -2743 b1cd b1cd b1cd * 5a71 * 8ea1daf1,daf1,8ea1daf1v,daf1v 655d e6959d 655d 0000655d b1cd b1cd b1cd b1cd b1cd b1cd b1cd -2744 b1ce b1ce b1ce * 5a72 * 8ea1daf2,daf2,8ea1daf2v,daf2v 6556 e69596 6556 00006556 b1ce b1ce b1ce b1ce b1ce b1ce b1ce -2745 b1cf b1cf b1cf * 5a73 * 8ea1daf3,daf3,8ea1daf3v,daf3v 6551 e69591 6551 00006551 b1cf b1cf b1cf b1cf b1cf b1cf b1cf -2746 b1d0 b1d0 b1d0 * 5a74 * 8ea1daf4,daf4,8ea1daf4v,daf4v 6559 e69599 6559 00006559 b1d0 b1d0 b1d0 b1d0 b1d0,c8fe b1d0,fcfe b1d0 -2747 b1d1 b1d1 b1d1 * 5a75 * 8ea1daf5,daf5,8ea1daf5v,daf5v 6557 e69597 6557 00006557 b1d1 b1d1 b1d1 b1d1 b1d1 b1d1 b1d1 -2748 b1d2 b1d2 b1d2 * 5a76 * 8ea1daf6,daf6,8ea1daf6v,daf6v 555f e5959f 555f 0000555f b1d2 b1d2 b1d2 b1d2 b1d2 b1d2 b1d2 -2749 b1d3 b1d3 b1d3 * 5a77 * 8ea1daf7,daf7,8ea1daf7v,daf7v 654f e6958f 654f 0000654f b1d3 b1d3 b1d3 b1d3 b1d3 b1d3 b1d3 -2750 b1d4 b1d4 b1d4 * 5a78 * 8ea1daf8,daf8,8ea1daf8v,daf8v 6558 e69598 6558 00006558 b1d4 b1d4 b1d4 b1d4 b1d4 b1d4 b1d4 -2751 b1d5 b1d5 b1d5 * 5a79 * 8ea1daf9,daf9,8ea1daf9v,daf9v 6555 e69595 6555 00006555 b1d5 b1d5 b1d5 b1d5 b1d5 b1d5 b1d5 -2752 b1d6 b1d6 b1d6 * 5a7a * 8ea1dafa,dafa,8ea1dafav,dafav 6554 e69594 6554 00006554 b1d6 b1d6 b1d6 b1d6 b1d6 b1d6 b1d6 -2753 b1d7 b1d7 b1d7 * 5a7b * 8ea1dafb,dafb,8ea1dafbv,dafbv 659c e6969c 659c 0000659c b1d7 b1d7 b1d7 b1d7 b1d7 b1d7 b1d7 -2754 b1d8 b1d8 b1d8 * 5a7c * 8ea1dafc,dafc,8ea1dafcv,dafcv 659b e6969b 659b 0000659b b1d8 b1d8 b1d8 b1d8 b1d8 b1d8 b1d8 -2755 b1d9 b1d9 b1d9 * 5a7d * 8ea1dafd,dafd,8ea1dafdv,dafdv 65ac e696ac 65ac 000065ac b1d9 b1d9 b1d9 b1d9 b1d9 b1d9 b1d9 -2756 b1da b1da b1da * 5a7e * 8ea1dafe,dafe,8ea1dafev,dafev 65cf e6978f 65cf 000065cf b1da b1da b1da b1da b1da b1da b1da -2757 b1db b1db b1db * 5b21 * 8ea1dba1,dba1,8ea1dba1v,dba1v 65cb e6978b 65cb 000065cb b1db b1db b1db b1db b1db b1db b1db -2758 b1dc b1dc b1dc * 5b22 * 8ea1dba2,dba2,8ea1dba2v,dba2v 65cc e6978c 65cc 000065cc b1dc b1dc b1dc b1dc b1dc b1dc b1dc -2759 b1dd b1dd b1dd * 5b23 * 8ea1dba3,dba3,8ea1dba3v,dba3v 65ce e6978e 65ce 000065ce b1dd b1dd b1dd b1dd b1dd b1dd b1dd -2760 b1de b1de b1de * 5b24 * 8ea1dba4,dba4,8ea1dba4v,dba4v 665d e6999d 665d 0000665d b1de b1de b1de b1de b1de b1de b1de -2761 b1df b1df b1df * 5b25 * 8ea1dba5,dba5,8ea1dba5v,dba5v 665a e6999a 665a 0000665a b1df b1df b1df b1df b1df b1df b1df -2762 b1e0 b1e0 b1e0 * 5b26 * 8ea1dba6,dba6,8ea1dba6v,dba6v 6664 e699a4 6664 00006664 b1e0 b1e0 b1e0 b1e0 b1e0 b1e0 b1e0 -2763 b1e1 b1e1 b1e1 * 5b27 * 8ea1dba7,dba7,8ea1dba7v,dba7v 6668 e699a8 6668 00006668 b1e1 b1e1 b1e1 b1e1 b1e1 b1e1 b1e1 -2764 b1e2 b1e2 b1e2 * 5b28 * 8ea1dba8,dba8,8ea1dba8v,dba8v 6666 e699a6 6666 00006666 b1e2 b1e2 b1e2 b1e2 b1e2 b1e2 b1e2 -2765 b1e3 b1e3 b1e3 * 5b29 * 8ea1dba9,dba9,8ea1dba9v,dba9v 665e e6999e 665e 0000665e b1e3 b1e3 b1e3 b1e3 b1e3 b1e3 b1e3 -2766 b1e4 b1e4 b1e4 * 5b2a * 8ea1dbaa,dbaa,8ea1dbaav,dbaav 66f9 e69bb9 66f9 000066f9 b1e4 b1e4 b1e4 b1e4 b1e4 b1e4 b1e4 -2767 b1e5 b1e5 b1e5 * 5b2b * 8ea1dbab,dbab,8ea1dbabv,dbabv 52d7 e58b97 52d7 000052d7 b1e5 b1e5 b1e5 b1e5 b1e5 b1e5 b1e5 -2768 b1e6 b1e6 b1e6 * 5b2c * 8ea1dbac,dbac,8ea1dbacv,dbacv 671b e69c9b 671b 0000671b b1e6 b1e6 b1e6 b1e6 b1e6 b1e6 b1e6 -2769 b1e7 b1e7 b1e7 * 5b2d * 8ea1dbad,dbad,8ea1dbadv,dbadv 6881 e6a281 6881 00006881 b1e7 b1e7 b1e7 b1e7 b1e7 b1e7 b1e7 -2770 b1e8 b1e8 b1e8 * 5b2e * 8ea1dbae,dbae,8ea1dbaev,dbaev 68af e6a2af 68af 000068af b1e8 b1e8 b1e8 b1e8 b1e8 b1e8 b1e8 -2771 b1e9 b1e9 b1e9 * 5b2f * 8ea1dbaf,dbaf,8ea1dbafv,dbafv 68a2 e6a2a2 68a2 000068a2 b1e9 b1e9 b1e9 b1e9 b1e9 b1e9 b1e9 -2772 b1ea b1ea b1ea * 5b30 * 8ea1dbb0,dbb0,8ea1dbb0v,dbb0v 6893 e6a293 6893 00006893 b1ea b1ea b1ea b1ea b1ea b1ea b1ea -2773 b1eb b1eb b1eb * 5b31 * 8ea1dbb1,dbb1,8ea1dbb1v,dbb1v 68b5 e6a2b5 68b5 000068b5 b1eb b1eb b1eb b1eb b1eb b1eb b1eb -2774 b1ec b1ec b1ec * 5b32 * 8ea1dbb2,dbb2,8ea1dbb2v,dbb2v 687f e6a1bf 687f 0000687f b1ec b1ec b1ec b1ec b1ec b1ec b1ec -2775 b1ed b1ed b1ed * 5b33 * 8ea1dbb3,dbb3,8ea1dbb3v,dbb3v 6876 e6a1b6 6876 00006876 b1ed b1ed b1ed b1ed b1ed b1ed b1ed -2776 b1ee b1ee b1ee * 5b34 * 8ea1dbb4,dbb4,8ea1dbb4v,dbb4v 68b1 e6a2b1 68b1 000068b1 b1ee b1ee b1ee b1ee b1ee b1ee b1ee -2777 b1ef b1ef b1ef * 5b35 * 8ea1dbb5,dbb5,8ea1dbb5v,dbb5v 68a7 e6a2a7 68a7 000068a7 b1ef b1ef b1ef b1ef b1ef b1ef b1ef -2778 b1f0 b1f0 b1f0 * 5b36 * 8ea1dbb6,dbb6,8ea1dbb6v,dbb6v 6897 e6a297 6897 00006897 b1f0 b1f0 b1f0 b1f0 b1f0 b1f0 b1f0 -2779 b1f1 b1f1 b1f1 * 5b37 * 8ea1dbb7,dbb7,8ea1dbb7v,dbb7v 68b0 e6a2b0 68b0 000068b0 b1f1 b1f1 b1f1 b1f1 b1f1 b1f1 b1f1 -2780 b1f2 b1f2 b1f2 * 5b38 * 8ea1dbb8,dbb8,8ea1dbb8v,dbb8v 6883 e6a283 6883 00006883 b1f2 b1f2 b1f2 b1f2 b1f2 b1f2 b1f2 -2781 b1f3 b1f3 b1f3 * 5b39 * 8ea1dbb9,dbb9,8ea1dbb9v,dbb9v 68c4 e6a384 68c4 000068c4 b1f3 b1f3 b1f3 b1f3 b1f3 b1f3 b1f3 -2782 b1f4 b1f4 b1f4 * 5b3a * 8ea1dbba,dbba,8ea1dbbav,dbbav 68ad e6a2ad 68ad 000068ad b1f4 b1f4 b1f4 b1f4 b1f4 b1f4 b1f4 -2783 b1f5 b1f5 b1f5 * 5b3b * 8ea1dbbb,dbbb,8ea1dbbbv,dbbbv 6886 e6a286 6886 00006886 b1f5 b1f5 b1f5 b1f5 b1f5 b1f5 b1f5 -2784 b1f6 b1f6 b1f6 * 5b3c * 8ea1dbbc,dbbc,8ea1dbbcv,dbbcv 6885 e6a285 6885 00006885 b1f6 b1f6 b1f6 b1f6 b1f6 b1f6 b1f6 -2785 b1f7 b1f7 b1f7 * 5b3d * 8ea1dbbd,dbbd,8ea1dbbdv,dbbdv 6894 e6a294 6894 00006894 b1f7 b1f7 b1f7 b1f7 b1f7 b1f7 b1f7 -2786 b1f8 b1f8 b1f8 * 5b3e * 8ea1dbbe,dbbe,8ea1dbbev,dbbev 689d e6a29d 689d 0000689d b1f8 b1f8 b1f8 b1f8 b1f8 b1f8 b1f8 -2787 b1f9 b1f9 b1f9 * 5b3f * 8ea1dbbf,dbbf,8ea1dbbfv,dbbfv 68a8 e6a2a8 68a8 000068a8 b1f9 b1f9 b1f9 b1f9 b1f9 b1f9 b1f9 -2788 b1fa b1fa b1fa * 5b40 * 8ea1dbc0,dbc0,8ea1dbc0v,dbc0v 689f e6a29f 689f 0000689f b1fa b1fa b1fa b1fa b1fa b1fa b1fa -2789 b1fb b1fb b1fb * 5b41 * 8ea1dbc1,dbc1,8ea1dbc1v,dbc1v 68a1 e6a2a1 68a1 000068a1 b1fb b1fb b1fb b1fb b1fb b1fb b1fb -2790 b1fc b1fc b1fc * 5b42 * 8ea1dbc2,dbc2,8ea1dbc2v,dbc2v 6882 e6a282 6882 00006882 b1fc b1fc b1fc b1fc b1fc b1fc b1fc -2791 b1fd b1fd b1fd * 5b43 * 8ea1dbc3,dbc3,8ea1dbc3v,dbc3v 6b32 e6acb2 6b32 00006b32 b1fd b1fd b1fd b1fd b1fd b1fd b1fd -2792 b1fe b1fe b1fe * 5b44 * 8ea1dbc4,dbc4,8ea1dbc4v,dbc4v 6bba e6aeba 6bba 00006bba b1fe b1fe b1fe b1fe b1fe b1fe b1fe -2793 b240 b240 b240 * 5b45 * 8ea1dbc5,dbc5,8ea1dbc5v,dbc5v 6beb e6afab 6beb 00006beb b240 b240 b240 b240 b240 b240 b240 -2794 b241 b241 b241 * 5b46 * 8ea1dbc6,dbc6,8ea1dbc6v,dbc6v 6bec e6afac 6bec 00006bec b241 b241 b241 b241 b241 b241 b241 -2795 b242 b242 b242 * 5b47 * 8ea1dbc7,dbc7,8ea1dbc7v,dbc7v 6c2b e6b0ab 6c2b 00006c2b b242 b242 b242 b242 b242 b242 b242 -2796 b243 b243 b243 * 5b48 * 8ea1dbc8,dbc8,8ea1dbc8v,dbc8v 6d8e e6b68e 6d8e 00006d8e b243 b243 b243 b243 b243 b243 b243 -2797 b244 b244 b244 * 5b49 * 8ea1dbc9,dbc9,8ea1dbc9v,dbc9v 6dbc e6b6bc 6dbc 00006dbc b244 b244 b244 b244 b244 b244 b244 -2798 b245 b245 b245 * 5b4a * 8ea1dbca,dbca,8ea1dbcav,dbcav 6df3 e6b7b3 6df3 00006df3 b245 b245 b245 b245 b245 b245 b245 -2799 b246 b246 b246 * 5b4b * 8ea1dbcb,dbcb,8ea1dbcbv,dbcbv 6dd9 e6b799 6dd9 00006dd9 b246 b246 b246 b246 b246 b246 b246 -2800 b247 b247 b247 * 5b4c * 8ea1dbcc,dbcc,8ea1dbccv,dbccv 6db2 e6b6b2 6db2 00006db2 b247 b247 b247 b247 b247 b247 b247 -2801 b248 b248 b248 * 5b4d * 8ea1dbcd,dbcd,8ea1dbcdv,dbcdv 6de1 e6b7a1 6de1 00006de1 b248 b248 b248 b248 b248 b248 b248 -2802 b249 b249 b249 * 5b4e * 8ea1dbce,dbce,8ea1dbcev,dbcev 6dcc e6b78c 6dcc 00006dcc b249 b249 b249 b249 b249 b249 b249 -2803 b24a b24a b24a * 5b4f * 8ea1dbcf,dbcf,8ea1dbcfv,dbcfv 6de4 e6b7a4 6de4 00006de4 b24a b24a b24a b24a b24a b24a b24a -2804 b24b b24b b24b * 5b50 * 8ea1dbd0,dbd0,8ea1dbd0v,dbd0v 6dfb e6b7bb 6dfb 00006dfb b24b b24b b24b b24b b24b b24b b24b -2805 b24c b24c b24c * 5b51 * 8ea1dbd1,dbd1,8ea1dbd1v,dbd1v 6dfa e6b7ba 6dfa 00006dfa b24c b24c b24c b24c b24c b24c b24c -2806 b24d b24d b24d * 5b52 * 8ea1dbd2,dbd2,8ea1dbd2v,dbd2v 6e05 e6b885 6e05 00006e05 b24d b24d b24d b24d b24d b24d b24d -2807 b24e b24e b24e * 5b53 * 8ea1dbd3,dbd3,8ea1dbd3v,dbd3v 6dc7 e6b787 6dc7 00006dc7 b24e b24e b24e b24e b24e b24e b24e -2808 b24f b24f b24f * 5b54 * 8ea1dbd4,dbd4,8ea1dbd4v,dbd4v 6dcb e6b78b 6dcb 00006dcb b24f b24f b24f b24f b24f b24f b24f -2809 b250 b250 b250 * 5b55 * 8ea1dbd5,dbd5,8ea1dbd5v,dbd5v 6daf e6b6af 6daf 00006daf b250 b250 b250 b250 b250 b250 b250 -2810 b251 b251 b251 * 5b56 * 8ea1dbd6,dbd6,8ea1dbd6v,dbd6v 6dd1 e6b791 6dd1 00006dd1 b251 b251 b251 b251 b251 b251 b251 -2811 b252 b252 b252 * 5b57 * 8ea1dbd7,dbd7,8ea1dbd7v,dbd7v 6dae e6b6ae 6dae 00006dae b252 b252 b252 b252 b252 b252 b252 -2812 b253 b253 b253 * 5b58 * 8ea1dbd8,dbd8,8ea1dbd8v,dbd8v 6dde e6b79e 6dde 00006dde b253 b253 b253 b253 b253 b253 b253 -2813 b254 b254 b254 * 5b59 * 8ea1dbd9,dbd9,8ea1dbd9v,dbd9v 6df9 e6b7b9 6df9 00006df9 b254 b254 b254 b254 b254 b254 b254 -2814 b255 b255 b255 * 5b5a * 8ea1dbda,dbda,8ea1dbdav,dbdav 6db8 e6b6b8 6db8 00006db8 b255 b255 b255 b255 b255 b255 b255 -2815 b256 b256 b256 * 5b5b * 8ea1dbdb,dbdb,8ea1dbdbv,dbdbv 6df7 e6b7b7 6df7 00006df7 b256 b256 b256 b256 b256 b256 b256 -2816 b257 b257 b257 * 5b5c * 8ea1dbdc,dbdc,8ea1dbdcv,dbdcv 6df5 e6b7b5 6df5 00006df5 b257 b257 b257 b257 b257 b257 b257 -2817 b258 b258 b258 * 5b5d * 8ea1dbdd,dbdd,8ea1dbddv,dbddv 6dc5 e6b785 6dc5 00006dc5 b258 b258 b258 b258 b258 b258 b258 -2818 b259 b259 b259 * 5b5e * 8ea1dbde,dbde,8ea1dbdev,dbdev 6dd2 e6b792 6dd2 00006dd2 b259 b259 b259 b259 b259 b259 b259 -2819 b25a b25a b25a * 5b5f * 8ea1dbdf,dbdf,8ea1dbdfv,dbdfv 6e1a e6b89a 6e1a 00006e1a b25a b25a b25a b25a b25a b25a b25a -2820 b25b b25b b25b * 5b60 * 8ea1dbe0,dbe0,8ea1dbe0v,dbe0v 6db5 e6b6b5 6db5 00006db5 b25b b25b b25b b25b b25b b25b b25b -2821 b25c b25c b25c * 5b61 * 8ea1dbe1,dbe1,8ea1dbe1v,dbe1v 6dda e6b79a 6dda 00006dda b25c b25c b25c b25c b25c b25c b25c -2822 b25d b25d b25d * 5b62 * 8ea1dbe2,dbe2,8ea1dbe2v,dbe2v 6deb e6b7ab 6deb 00006deb b25d b25d b25d b25d b25d b25d b25d -2823 b25e b25e b25e * 5b63 * 8ea1dbe3,dbe3,8ea1dbe3v,dbe3v 6dd8 e6b798 6dd8 00006dd8 b25e b25e b25e b25e b25e b25e b25e -2824 b25f b25f b25f * 5b64 * 8ea1dbe4,dbe4,8ea1dbe4v,dbe4v 6dea e6b7aa 6dea 00006dea b25f b25f b25f b25f b25f b25f b25f -2825 b260 b260 b260 * 5b65 * 8ea1dbe5,dbe5,8ea1dbe5v,dbe5v 6df1 e6b7b1 6df1 00006df1 b260 b260 b260 b260 b260 b260 b260 -2826 b261 b261 b261 * 5b66 * 8ea1dbe6,dbe6,8ea1dbe6v,dbe6v 6dee e6b7ae 6dee 00006dee b261 b261 b261 b261 b261 b261 b261 -2827 b262 b262 b262 * 5b67 * 8ea1dbe7,dbe7,8ea1dbe7v,dbe7v 6de8 e6b7a8 6de8 00006de8 b262 b262 b262 b262 b262 b262 b262 -2828 b263 b263 b263 * 5b68 * 8ea1dbe8,dbe8,8ea1dbe8v,dbe8v 6dc6 e6b786 6dc6 00006dc6 b263 b263 b263 b263 b263 b263 b263 -2829 b264 b264 b264 * 5b69 * 8ea1dbe9,dbe9,8ea1dbe9v,dbe9v 6dc4 e6b784 6dc4 00006dc4 b264 b264 b264 b264 b264 b264 b264 -2830 b265 b265 b265 * 5b6a * 8ea1dbea,dbea,8ea1dbeav,dbeav 6daa e6b6aa 6daa 00006daa b265 b265 b265 b265 b265 b265 b265 -2831 b266 b266 b266 * 5b6b * 8ea1dbeb,dbeb,8ea1dbebv,dbebv 6dec e6b7ac 6dec 00006dec b266 b266 b266 b266 b266 b266 b266 -2832 b267 b267 b267 * 5b6c * 8ea1dbec,dbec,8ea1dbecv,dbecv 6dbf e6b6bf 6dbf 00006dbf b267 b267 b267 b267 b267 b267 b267 -2833 b268 b268 b268 * 5b6d * 8ea1dbed,dbed,8ea1dbedv,dbedv 6de6 e6b7a6 6de6 00006de6 b268 b268 b268 b268 b268 b268 b268 -2834 b269 b269 b269 * 5b6e * 8ea1dbee,dbee,8ea1dbeev,dbeev 70f9 e783b9 70f9 000070f9 b269 b269 b269 b269 b269 b269 b269 -2835 b26a b26a b26a * 5b6f * 8ea1dbef,dbef,8ea1dbefv,dbefv 7109 e78489 7109 00007109 b26a b26a b26a b26a b26a b26a b26a -2836 b26b b26b b26b * 5b70 * 8ea1dbf0,dbf0,8ea1dbf0v,dbf0v 710a e7848a 710a 0000710a b26b b26b b26b b26b b26b b26b b26b -2837 b26c b26c b26c * 5b71 * 8ea1dbf1,dbf1,8ea1dbf1v,dbf1v 70fd e783bd 70fd 000070fd b26c b26c b26c b26c b26c b26c b26c -2838 b26d b26d b26d * 5b72 * 8ea1dbf2,dbf2,8ea1dbf2v,dbf2v 70ef e783af 70ef 000070ef b26d b26d b26d b26d b26d b26d b26d -2839 b26e b26e b26e * 5b73 * 8ea1dbf3,dbf3,8ea1dbf3v,dbf3v 723d e788bd 723d 0000723d b26e b26e b26e b26e b26e b26e b26e -2840 b26f b26f b26f * 5b74 * 8ea1dbf4,dbf4,8ea1dbf4v,dbf4v 727d e789bd 727d 0000727d b26f b26f b26f b26f b26f b26f b26f -2841 b270 b270 b270 * 5b75 * 8ea1dbf5,dbf5,8ea1dbf5v,dbf5v 7281 e78a81 7281 00007281 b270 b270 b270 b270 b270 b270 b270 -2842 b271 b271 b271 * 5b76 * 8ea1dbf6,dbf6,8ea1dbf6v,dbf6v 731c e78c9c 731c 0000731c b271 b271 b271 b271 b271 b271 b271 -2843 b272 b272 b272 * 5b77 * 8ea1dbf7,dbf7,8ea1dbf7v,dbf7v 731b e78c9b 731b 0000731b b272 b272 b272 b272 b272 b272 b272 -2844 b273 b273 b273 * 5b78 * 8ea1dbf8,dbf8,8ea1dbf8v,dbf8v 7316 e78c96 7316 00007316 b273 b273 b273 b273 b273 b273 b273 -2845 b274 b274 b274 * 5b79 * 8ea1dbf9,dbf9,8ea1dbf9v,dbf9v 7313 e78c93 7313 00007313 b274 b274 b274 b274 b274 b274 b274 -2846 b275 b275 b275 * 5b7a * 8ea1dbfa,dbfa,8ea1dbfav,dbfav 7319 e78c99 7319 00007319 b275 b275 b275 b275 b275 b275 b275 -2847 b276 b276 b276 * 5b7b * 8ea1dbfb,dbfb,8ea1dbfbv,dbfbv 7387 e78e87 7387 00007387 b276 b276 b276 b276 b276 b276 b276 -2848 b277 b277 b277 * 5b7c * 8ea1dbfc,dbfc,8ea1dbfcv,dbfcv 7405 e79085 7405 00007405 b277 b277 b277 b277 b277 b277 b277 -2849 b278 b278 b278 * 5b7d * 8ea1dbfd,dbfd,8ea1dbfdv,dbfdv 740a e7908a 740a 0000740a b278 b278 b278 b278 b278 b278 b278 -2850 b279 b279 b279 * 5b7e * 8ea1dbfe,dbfe,8ea1dbfev,dbfev 7403 e79083 7403 00007403 b279 b279 b279 b279 b279 b279 b279 -2851 b27a b27a b27a * 5c21 * 8ea1dca1,dca1,8ea1dca1v,dca1v 7406 e79086 7406 00007406 b27a b27a b27a b27a b27a b27a b27a -2852 b27b b27b b27b * 5c22 * 8ea1dca2,dca2,8ea1dca2v,dca2v 73fe e78fbe 73fe 000073fe b27b b27b b27b b27b b27b b27b b27b -2853 b27c b27c b27c * 5c23 * 8ea1dca3,dca3,8ea1dca3v,dca3v 740d e7908d 740d 0000740d b27c b27c b27c b27c b27c b27c b27c -2854 b27d b27d b27d * 5c24 * 8ea1dca4,dca4,8ea1dca4v,dca4v 74e0 e793a0 74e0 000074e0 b27d b27d b27d b27d b27d b27d b27d -2855 b27e b27e b27e * 5c25 * 8ea1dca5,dca5,8ea1dca5v,dca5v 74f6 e793b6 74f6 000074f6 b27e b27e b27e b27e b27e b27e b27e -2856 b2a1 b2a1 b2a1 * 5c26 * 8ea1dca6,dca6,8ea1dca6v,dca6v 74f7 e793b7 74f7 000074f7 b2a1 b2a1 b2a1 b2a1 b2a1 b2a1 b2a1 -2857 b2a2 b2a2 b2a2 * 5c27 * 8ea1dca7,dca7,8ea1dca7v,dca7v 751c e7949c 751c 0000751c b2a2 b2a2 b2a2 b2a2 b2a2 b2a2 b2a2 -2858 b2a3 b2a3 b2a3 * 5c28 * 8ea1dca8,dca8,8ea1dca8v,dca8v 7522 e794a2 7522 00007522 b2a3 b2a3 b2a3 b2a3 b2a3 b2a3 b2a3 -2859 b2a4 b2a4 b2a4 * 5c29 * 8ea1dca9,dca9,8ea1dca9v,dca9v 7565 e795a5 7565 00007565 b2a4 b2a4 b2a4 b2a4 b2a4 b2a4 b2a4 -2860 b2a5 b2a5 b2a5 * 5c2a * 8ea1dcaa,dcaa,8ea1dcaav,dcaav 7566 e795a6 7566 00007566 b2a5 b2a5 b2a5 b2a5 b2a5 b2a5 b2a5 -2861 b2a6 b2a6 b2a6 * 5c2b * 8ea1dcab,dcab,8ea1dcabv,dcabv 7562 e795a2 7562 00007562 b2a6 b2a6 b2a6 b2a6 b2a6 b2a6 b2a6 -2862 b2a7 b2a7 b2a7 * 5c2c * 8ea1dcac,dcac,8ea1dcacv,dcacv 7570 e795b0 7570 00007570 b2a7 b2a7 b2a7 b2a7 b2a7 b2a7 b2a7 -2863 b2a8 b2a8 b2a8 * 5c2d * 8ea1dcad,dcad,8ea1dcadv,dcadv 758f e7968f 758f 0000758f b2a8 b2a8 b2a8 b2a8 b2a8 b2a8 b2a8 -2864 b2a9 b2a9 b2a9 * 5c2e * 8ea1dcae,dcae,8ea1dcaev,dcaev 75d4 e79794 75d4 000075d4 b2a9 b2a9 b2a9 b2a9 b2a9 b2a9 b2a9 -2865 b2aa b2aa b2aa * 5c2f * 8ea1dcaf,dcaf,8ea1dcafv,dcafv 75d5 e79795 75d5 000075d5 b2aa b2aa b2aa b2aa b2aa b2aa b2aa -2866 b2ab b2ab b2ab * 5c30 * 8ea1dcb0,dcb0,8ea1dcb0v,dcb0v 75b5 e796b5 75b5 000075b5 b2ab b2ab b2ab b2ab b2ab b2ab b2ab -2867 b2ac b2ac b2ac * 5c31 * 8ea1dcb1,dcb1,8ea1dcb1v,dcb1v 75ca e7978a 75ca 000075ca b2ac b2ac b2ac b2ac b2ac b2ac b2ac -2868 b2ad b2ad b2ad * 5c32 * 8ea1dcb2,dcb2,8ea1dcb2v,dcb2v 75cd e7978d 75cd 000075cd b2ad b2ad b2ad b2ad b2ad b2ad b2ad -2869 b2ae b2ae b2ae * 5c33 * 8ea1dcb3,dcb3,8ea1dcb3v,dcb3v 768e e79a8e 768e 0000768e b2ae b2ae b2ae b2ae b2ae b2ae b2ae -2870 b2af b2af b2af * 5c34 * 8ea1dcb4,dcb4,8ea1dcb4v,dcb4v 76d4 e79b94 76d4 000076d4 b2af b2af b2af b2af b2af b2af b2af -2871 b2b0 b2b0 b2b0 * 5c35 * 8ea1dcb5,dcb5,8ea1dcb5v,dcb5v 76d2 e79b92 76d2 000076d2 b2b0 b2b0 b2b0 b2b0 b2b0 b2b0 b2b0 -2872 b2b1 b2b1 b2b1 * 5c36 * 8ea1dcb6,dcb6,8ea1dcb6v,dcb6v 76db e79b9b 76db 000076db b2b1 b2b1 b2b1 b2b1 b2b1 b2b1 b2b1 -2873 b2b2 b2b2 b2b2 * 5c37 * 8ea1dcb7,dcb7,8ea1dcb7v,dcb7v 7737 e79cb7 7737 00007737 b2b2 b2b2 b2b2 b2b2 b2b2 b2b2 b2b2 -2874 b2b3 b2b3 b2b3 * 5c38 * 8ea1dcb8,dcb8,8ea1dcb8v,dcb8v 773e e79cbe 773e 0000773e b2b3 b2b3 b2b3 b2b3 b2b3 b2b3 b2b3 -2875 b2b4 b2b4 b2b4 * 5c39 * 8ea1dcb9,dcb9,8ea1dcb9v,dcb9v 773c e79cbc 773c 0000773c b2b4 b2b4 b2b4 b2b4 b2b4 b2b4 b2b4 -2876 b2b5 b2b5 b2b5 * 5c3a * 8ea1dcba,dcba,8ea1dcbav,dcbav 7736 e79cb6 7736 00007736 b2b5 b2b5 b2b5 b2b5 b2b5 b2b5 b2b5 -2877 b2b6 b2b6 b2b6 * 5c3b * 8ea1dcbb,dcbb,8ea1dcbbv,dcbbv 7738 e79cb8 7738 00007738 b2b6 b2b6 b2b6 b2b6 b2b6 b2b6 b2b6 -2878 b2b7 b2b7 b2b7 * 5c3c * 8ea1dcbc,dcbc,8ea1dcbcv,dcbcv 773a e79cba 773a 0000773a b2b7 b2b7 b2b7 b2b7 b2b7 b2b7 b2b7 -2879 b2b8 b2b8 b2b8 * 5c3d * 8ea1dcbd,dcbd,8ea1dcbdv,dcbdv 786b e7a1ab 786b 0000786b b2b8 b2b8 b2b8 b2b8 b2b8 b2b8 b2b8 -2880 b2b9 b2b9 b2b9 * 5c3e * 8ea1dcbe,dcbe,8ea1dcbev,dcbev 7843 e7a183 7843 00007843 b2b9 b2b9 b2b9 b2b9 b2b9 b2b9 b2b9 -2881 b2ba b2ba b2ba * 5c3f * 8ea1dcbf,dcbf,8ea1dcbfv,dcbfv 784e e7a18e 784e 0000784e b2ba b2ba b2ba b2ba b2ba b2ba b2ba -2882 b2bb b2bb b2bb * 5c40 * 8ea1dcc0,dcc0,8ea1dcc0v,dcc0v 7965 e7a5a5 7965 00007965 b2bb b2bb b2bb b2bb b2bb b2bb b2bb -2883 b2bc b2bc b2bc * 5c41 * 8ea1dcc1,dcc1,8ea1dcc1v,dcc1v 7968 e7a5a8 7968 00007968 b2bc b2bc b2bc b2bc b2bc b2bc b2bc -2884 b2bd b2bd b2bd * 5c42 * 8ea1dcc2,dcc2,8ea1dcc2v,dcc2v 796d e7a5ad 796d 0000796d b2bd b2bd b2bd b2bd b2bd b2bd b2bd -2885 b2be b2be b2be * 5c43 * 8ea1dcc3,dcc3,8ea1dcc3v,dcc3v 79fb e7a7bb 79fb 000079fb b2be b2be b2be b2be b2be b2be b2be -2886 b2bf b2bf b2bf * 5c44 * 8ea1dcc4,dcc4,8ea1dcc4v,dcc4v 7a92 e7aa92 7a92 00007a92 b2bf b2bf b2bf b2bf b2bf b2bf b2bf -2887 b2c0 b2c0 b2c0 * 5c45 * 8ea1dcc5,dcc5,8ea1dcc5v,dcc5v 7a95 e7aa95 7a95 00007a95 b2c0 b2c0 b2c0 b2c0 b2c0 b2c0 b2c0 -2888 b2c1 b2c1 b2c1 * 5c46 * 8ea1dcc6,dcc6,8ea1dcc6v,dcc6v 7b20 e7aca0 7b20 00007b20 b2c1 b2c1 b2c1 b2c1 b2c1 b2c1 b2c1 -2889 b2c2 b2c2 b2c2 * 5c47 * 8ea1dcc7,dcc7,8ea1dcc7v,dcc7v 7b28 e7aca8 7b28 00007b28 b2c2 b2c2 b2c2 b2c2 b2c2 b2c2 b2c2 -2890 b2c3 b2c3 b2c3 * 5c48 * 8ea1dcc8,dcc8,8ea1dcc8v,dcc8v 7b1b e7ac9b 7b1b 00007b1b b2c3 b2c3 b2c3 b2c3 b2c3 b2c3 b2c3 -2891 b2c4 b2c4 b2c4 * 5c49 * 8ea1dcc9,dcc9,8ea1dcc9v,dcc9v 7b2c e7acac 7b2c 00007b2c b2c4 b2c4 b2c4 b2c4 b2c4 b2c4 b2c4 -2892 b2c5 b2c5 b2c5 * 5c4a * 8ea1dcca,dcca,8ea1dccav,dccav 7b26 e7aca6 7b26 00007b26 b2c5 b2c5 b2c5 b2c5 b2c5 b2c5 b2c5 -2893 b2c6 b2c6 b2c6 * 5c4b * 8ea1dccb,dccb,8ea1dccbv,dccbv 7b19 e7ac99 7b19 00007b19 b2c6 b2c6 b2c6 b2c6 b2c6 b2c6 b2c6 -2894 b2c7 b2c7 b2c7 * 5c4c * 8ea1dccc,dccc,8ea1dcccv,dcccv 7b1e e7ac9e 7b1e 00007b1e b2c7 b2c7 b2c7 b2c7 b2c7 b2c7 b2c7 -2895 b2c8 b2c8 b2c8 * 5c4d * 8ea1dccd,dccd,8ea1dccdv,dccdv 7b2e e7acae 7b2e 00007b2e b2c8 b2c8 b2c8 b2c8 b2c8 b2c8 b2c8 -2896 b2c9 b2c9 b2c9 * 5c4e * 8ea1dcce,dcce,8ea1dccev,dccev 7c92 e7b292 7c92 00007c92 b2c9 b2c9 b2c9 b2c9 b2c9 b2c9 b2c9 -2897 b2ca b2ca b2ca * 5c4f * 8ea1dccf,dccf,8ea1dccfv,dccfv 7c97 e7b297 7c97 00007c97 b2ca b2ca b2ca b2ca b2ca b2ca b2ca -2898 b2cb b2cb b2cb * 5c50 * 8ea1dcd0,dcd0,8ea1dcd0v,dcd0v 7c95 e7b295 7c95 00007c95 b2cb b2cb b2cb b2cb b2cb b2cb b2cb -2899 b2cc b2cc b2cc * 5c51 * 8ea1dcd1,dcd1,8ea1dcd1v,dcd1v 7d46 e7b586 7d46 00007d46 b2cc b2cc b2cc b2cc b2cc b2cc b2cc -2900 b2cd b2cd b2cd * 5c52 * 8ea1dcd2,dcd2,8ea1dcd2v,dcd2v 7d43 e7b583 7d43 00007d43 b2cd b2cd b2cd b2cd b2cd b2cd b2cd -2901 b2ce b2ce b2ce * 5c53 * 8ea1dcd3,dcd3,8ea1dcd3v,dcd3v 7d71 e7b5b1 7d71 00007d71 b2ce b2ce b2ce b2ce b2ce b2ce b2ce -2902 b2cf b2cf b2cf * 5c54 * 8ea1dcd4,dcd4,8ea1dcd4v,dcd4v 7d2e e7b4ae 7d2e 00007d2e b2cf b2cf b2cf b2cf b2cf b2cf b2cf -2903 b2d0 b2d0 b2d0 * 5c55 * 8ea1dcd5,dcd5,8ea1dcd5v,dcd5v 7d39 e7b4b9 7d39 00007d39 b2d0 b2d0 b2d0 b2d0 b2d0 b2d0 b2d0 -2904 b2d1 b2d1 b2d1 * 5c56 * 8ea1dcd6,dcd6,8ea1dcd6v,dcd6v 7d3c e7b4bc 7d3c 00007d3c b2d1 b2d1 b2d1 b2d1 b2d1 b2d1 b2d1 -2905 b2d2 b2d2 b2d2 * 5c57 * 8ea1dcd7,dcd7,8ea1dcd7v,dcd7v 7d40 e7b580 7d40 00007d40 b2d2 b2d2 b2d2 b2d2 b2d2 b2d2 b2d2 -2906 b2d3 b2d3 b2d3 * 5c58 * 8ea1dcd8,dcd8,8ea1dcd8v,dcd8v 7d30 e7b4b0 7d30 00007d30 b2d3 b2d3 b2d3 b2d3 b2d3 b2d3 b2d3 -2907 b2d4 b2d4 b2d4 * 5c59 * 8ea1dcd9,dcd9,8ea1dcd9v,dcd9v 7d33 e7b4b3 7d33 00007d33 b2d4 b2d4 b2d4 b2d4 b2d4 b2d4 b2d4 -2908 b2d5 b2d5 b2d5 * 5c5a * 8ea1dcda,dcda,8ea1dcdav,dcdav 7d44 e7b584 7d44 00007d44 b2d5 b2d5 b2d5 b2d5 b2d5 b2d5 b2d5 -2909 b2d6 b2d6 b2d6 * 5c5b * 8ea1dcdb,dcdb,8ea1dcdbv,dcdbv 7d2f e7b4af 7d2f 00007d2f b2d6 b2d6 b2d6 b2d6 b2d6 b2d6 b2d6 -2910 b2d7 b2d7 b2d7 * 5c5c * 8ea1dcdc,dcdc,8ea1dcdcv,dcdcv 7d42 e7b582 7d42 00007d42 b2d7 b2d7 b2d7 b2d7 b2d7 b2d7 b2d7 -2911 b2d8 b2d8 b2d8 * 5c5d * 8ea1dcdd,dcdd,8ea1dcddv,dcddv 7d32 e7b4b2 7d32 00007d32 b2d8 b2d8 b2d8 b2d8 b2d8 b2d8 b2d8 -2912 b2d9 b2d9 b2d9 * 5c5e * 8ea1dcde,dcde,8ea1dcdev,dcdev 7d31 e7b4b1 7d31 00007d31 b2d9 b2d9 b2d9 b2d9 b2d9 b2d9 b2d9 -2913 b2da b2da b2da * 5c5f * 8ea1dcdf,dcdf,8ea1dcdfv,dcdfv 7f3d e7bcbd 7f3d 00007f3d b2da b2da b2da b2da b2da b2da b2da -2914 b2db b2db b2db * 5c60 * 8ea1dce0,dce0,8ea1dce0v,dce0v 7f9e e7be9e 7f9e 00007f9e b2db b2db b2db b2db b2db b2db b2db -2915 b2dc b2dc b2dc * 5c61 * 8ea1dce1,dce1,8ea1dce1v,dce1v 7f9a e7be9a 7f9a 00007f9a b2dc b2dc b2dc b2dc b2dc b2dc b2dc -2916 b2dd b2dd b2dd * 5c62 * 8ea1dce2,dce2,8ea1dce2v,dce2v 7fcc e7bf8c 7fcc 00007fcc b2dd b2dd b2dd b2dd b2dd b2dd b2dd -2917 b2de b2de b2de * 5c63 * 8ea1dce3,dce3,8ea1dce3v,dce3v 7fce e7bf8e 7fce 00007fce b2de b2de b2de b2de b2de b2de b2de -2918 b2df b2df b2df * 5c64 * 8ea1dce4,dce4,8ea1dce4v,dce4v 7fd2 e7bf92 7fd2 00007fd2 b2df b2df b2df b2df b2df b2df b2df -2919 b2e0 b2e0 b2e0 * 5c65 * 8ea1dce5,dce5,8ea1dce5v,dce5v 801c e8809c 801c 0000801c b2e0 b2e0 b2e0 b2e0 b2e0 b2e0 b2e0 -2920 b2e1 b2e1 b2e1 * 5c66 * 8ea1dce6,dce6,8ea1dce6v,dce6v 804a e8818a 804a 0000804a b2e1 b2e1 b2e1 b2e1 b2e1 b2e1 b2e1 -2921 b2e2 b2e2 b2e2 * 5c67 * 8ea1dce7,dce7,8ea1dce7v,dce7v 8046 e88186 8046 00008046 b2e2 b2e2 b2e2 b2e2 b2e2 b2e2 b2e2 -2922 b2e3 b2e3 b2e3 * 5c68 * 8ea1dce8,dce8,8ea1dce8v,dce8v 812f e884af 812f 0000812f b2e3 b2e3 b2e3 b2e3 b2e3 b2e3 b2e3 -2923 b2e4 b2e4 b2e4 * 5c69 * 8ea1dce9,dce9,8ea1dce9v,dce9v 8116 e88496 8116 00008116 b2e4 b2e4 b2e4 b2e4 b2e4 b2e4 b2e4 -2924 b2e5 b2e5 b2e5 * 5c6a * 8ea1dcea,dcea,8ea1dceav,dceav 8123 e884a3 8123 00008123 b2e5 b2e5 b2e5 b2e5 b2e5 b2e5 b2e5 -2925 b2e6 b2e6 b2e6 * 5c6b * 8ea1dceb,dceb,8ea1dcebv,dcebv 812b e884ab 812b 0000812b b2e6 b2e6 b2e6 b2e6 b2e6 b2e6 b2e6 -2926 b2e7 b2e7 b2e7 * 5c6c * 8ea1dcec,dcec,8ea1dcecv,dcecv 8129 e884a9 8129 00008129 b2e7 b2e7 b2e7 b2e7 b2e7 b2e7 b2e7 -2927 b2e8 b2e8 b2e8 * 5c6d * 8ea1dced,dced,8ea1dcedv,dcedv 8130 e884b0 8130 00008130 b2e8 b2e8 b2e8 b2e8 b2e8 b2e8 b2e8 -2928 b2e9 b2e9 b2e9 * 5c6e * 8ea1dcee,dcee,8ea1dceev,dceev 8124 e884a4 8124 00008124 b2e9 b2e9 b2e9 b2e9 b2e9 b2e9 b2e9 -2929 b2ea b2ea b2ea * 5c6f * 8ea1dcef,dcef,8ea1dcefv,dcefv 8202 e88882 8202 00008202 b2ea b2ea b2ea b2ea b2ea b2ea b2ea -2930 b2eb b2eb b2eb * 5c70 * 8ea1dcf0,dcf0,8ea1dcf0v,dcf0v 8235 e888b5 8235 00008235 b2eb b2eb b2eb b2eb b2eb b2eb b2eb -2931 b2ec b2ec b2ec * 5c71 * 8ea1dcf1,dcf1,8ea1dcf1v,dcf1v 8237 e888b7 8237 00008237 b2ec b2ec b2ec b2ec b2ec b2ec b2ec -2932 b2ed b2ed b2ed * 5c72 * 8ea1dcf2,dcf2,8ea1dcf2v,dcf2v 8236 e888b6 8236 00008236 b2ed b2ed b2ed b2ed b2ed b2ed b2ed -2933 b2ee b2ee b2ee * 5c73 * 8ea1dcf3,dcf3,8ea1dcf3v,dcf3v 8239 e888b9 8239 00008239 b2ee b2ee b2ee b2ee b2ee b2ee b2ee -2934 b2ef b2ef b2ef * 5c74 * 8ea1dcf4,dcf4,8ea1dcf4v,dcf4v 838e e88e8e 838e 0000838e b2ef b2ef b2ef b2ef b2ef b2ef b2ef -2935 b2f0 b2f0 b2f0 * 5c75 * 8ea1dcf5,dcf5,8ea1dcf5v,dcf5v 839e e88e9e 839e 0000839e b2f0 b2f0 b2f0 b2f0 b2f0 b2f0 b2f0 -2936 b2f1 b2f1 b2f1 * 5c76 * 8ea1dcf6,dcf6,8ea1dcf6v,dcf6v 8398 e88e98 8398 00008398 b2f1 b2f1 b2f1 b2f1 b2f1 b2f1 b2f1 -2937 b2f2 b2f2 b2f2 * 5c77 * 8ea1dcf7,dcf7,8ea1dcf7v,dcf7v 8378 e88db8 8378 00008378 b2f2 b2f2 b2f2 b2f2 b2f2 b2f2 b2f2 -2938 b2f3 b2f3 b2f3 * 5c78 * 8ea1dcf8,dcf8,8ea1dcf8v,dcf8v 83a2 e88ea2 83a2 000083a2 b2f3 b2f3 b2f3 b2f3 b2f3 b2f3 b2f3 -2939 b2f4 b2f4 b2f4 * 5c79 * 8ea1dcf9,dcf9,8ea1dcf9v,dcf9v 8396 e88e96 8396 00008396 b2f4 b2f4 b2f4 b2f4 b2f4 b2f4 b2f4 -2940 b2f5 b2f5 b2f5 * 5c7a * 8ea1dcfa,dcfa,8ea1dcfav,dcfav 83bd e88ebd 83bd 000083bd b2f5 b2f5 b2f5 b2f5 b2f5 b2f5 b2f5 -2941 b2f6 b2f6 b2f6 * 5c7b * 8ea1dcfb,dcfb,8ea1dcfbv,dcfbv 83ab e88eab 83ab 000083ab b2f6 b2f6 b2f6 b2f6 b2f6 b2f6 b2f6 -2942 b2f7 b2f7 b2f7 * 5c7c * 8ea1dcfc,dcfc,8ea1dcfcv,dcfcv 8392 e88e92 8392 00008392 b2f7 b2f7 b2f7 b2f7 b2f7 b2f7 b2f7 -2943 b2f8 b2f8 b2f8 * 5c7d * 8ea1dcfd,dcfd,8ea1dcfdv,dcfdv 838a e88e8a 838a 0000838a b2f8 b2f8 b2f8 b2f8 b2f8 b2f8 b2f8 -2944 b2f9 b2f9 b2f9 * 5c7e * 8ea1dcfe,dcfe,8ea1dcfev,dcfev 8393 e88e93 8393 00008393 b2f9 b2f9 b2f9 b2f9 b2f9 b2f9 b2f9 -2945 b2fa b2fa b2fa * 5d21 * 8ea1dda1,dda1,8ea1dda1v,dda1v 8389 e88e89 8389 00008389 b2fa b2fa b2fa b2fa b2fa b2fa b2fa -2946 b2fb b2fb b2fb * 5d22 * 8ea1dda2,dda2,8ea1dda2v,dda2v 83a0 e88ea0 83a0 000083a0 b2fb b2fb b2fb b2fb b2fb b2fb b2fb -2947 b2fc b2fc b2fc * 5d23 * 8ea1dda3,dda3,8ea1dda3v,dda3v 8377 e88db7 8377 00008377 b2fc b2fc b2fc b2fc b2fc b2fc b2fc -2948 b2fd b2fd b2fd * 5d24 * 8ea1dda4,dda4,8ea1dda4v,dda4v 837b e88dbb 837b 0000837b b2fd b2fd b2fd b2fd b2fd b2fd b2fd -2949 b2fe b2fe b2fe * 5d25 * 8ea1dda5,dda5,8ea1dda5v,dda5v 837c e88dbc 837c 0000837c b2fe b2fe b2fe b2fe b2fe b2fe b2fe -2950 b340 b340 b340 * 5d26 * 8ea1dda6,dda6,8ea1dda6v,dda6v 8386 e88e86 8386 00008386 b340 b340 b340 b340 b340 b340 b340 -2951 b341 b341 b341 * 5d27 * 8ea1dda7,dda7,8ea1dda7v,dda7v 83a7 e88ea7 83a7 000083a7 b341 b341 b341 b341 b341 b341 b341 -2952 b342 b342 b342 * 5d28 * 8ea1dda8,dda8,8ea1dda8v,dda8v 8655 e89995 8655 00008655 b342 b342 b342 b342 b342 b342 b342 -2953 b343 b343 b343 * 5d29 * 8ea1dda9,dda9,8ea1dda9v,dda9v 5f6a e5bdaa 5f6a 00005f6a b343 b343 b343 b343 b343 b343 b343 -2954 b344 b344 b344 * 5d2a * 8ea1ddaa,ddaa,8ea1ddaav,ddaav 86c7 e89b87 86c7 000086c7 b344 b344 b344 b344 b344 b344 b344 -2955 b345 b345 b345 * 5d2b * 8ea1ddab,ddab,8ea1ddabv,ddabv 86c0 e89b80 86c0 000086c0 b345 b345 b345 b345 b345 b345 b345 -2956 b346 b346 b346 * 5d2c * 8ea1ddac,ddac,8ea1ddacv,ddacv 86b6 e89ab6 86b6 000086b6 b346 b346 b346 b346 b346 b346 b346 -2957 b347 b347 b347 * 5d2d * 8ea1ddad,ddad,8ea1ddadv,ddadv 86c4 e89b84 86c4 000086c4 b347 b347 b347 b347 b347 b347 b347 -2958 b348 b348 b348 * 5d2e * 8ea1ddae,ddae,8ea1ddaev,ddaev 86b5 e89ab5 86b5 000086b5 b348 b348 b348 b348 b348 b348 b348 -2959 b349 b349 b349 * 5d2f * 8ea1ddaf,ddaf,8ea1ddafv,ddafv 86c6 e89b86 86c6 000086c6 b349 b349 b349 b349 b349 b349 b349 -2960 b34a b34a b34a * 5d30 * 8ea1ddb0,ddb0,8ea1ddb0v,ddb0v 86cb e89b8b 86cb 000086cb b34a b34a b34a b34a b34a b34a b34a -2961 b34b b34b b34b * 5d31 * 8ea1ddb1,ddb1,8ea1ddb1v,ddb1v 86b1 e89ab1 86b1 000086b1 b34b b34b b34b b34b b34b b34b b34b -2962 b34c b34c b34c * 5d32 * 8ea1ddb2,ddb2,8ea1ddb2v,ddb2v 86af e89aaf 86af 000086af b34c b34c b34c b34c b34c b34c b34c -2963 b34d b34d b34d * 5d33 * 8ea1ddb3,ddb3,8ea1ddb3v,ddb3v 86c9 e89b89 86c9 000086c9 b34d b34d b34d b34d b34d b34d b34d -2964 b34e b34e b34e * 5d34 * 8ea1ddb4,ddb4,8ea1ddb4v,ddb4v 8853 e8a193 8853 00008853 b34e b34e b34e b34e b34e b34e b34e -2965 b34f b34f b34f * 5d35 * 8ea1ddb5,ddb5,8ea1ddb5v,ddb5v 889e e8a29e 889e 0000889e b34f b34f b34f b34f b34f b34f b34f -2966 b350 b350 b350 * 5d36 * 8ea1ddb6,ddb6,8ea1ddb6v,ddb6v 8888 e8a288 8888 00008888 b350 b350 b350 b350 b350 b350 b350 -2967 b351 b351 b351 * 5d37 * 8ea1ddb7,ddb7,8ea1ddb7v,ddb7v 88ab e8a2ab 88ab 000088ab b351 b351 b351 b351 b351 b351 b351 -2968 b352 b352 b352 * 5d38 * 8ea1ddb8,ddb8,8ea1ddb8v,ddb8v 8892 e8a292 8892 00008892 b352 b352 b352 b352 b352 b352 b352 -2969 b353 b353 b353 * 5d39 * 8ea1ddb9,ddb9,8ea1ddb9v,ddb9v 8896 e8a296 8896 00008896 b353 b353 b353 b353 b353 b353 b353 -2970 b354 b354 b354 * 5d3a * 8ea1ddba,ddba,8ea1ddbav,ddbav 888d e8a28d 888d 0000888d b354 b354 b354 b354 b354 b354 b354 -2971 b355 b355 b355 * 5d3b * 8ea1ddbb,ddbb,8ea1ddbbv,ddbbv 888b e8a28b 888b 0000888b b355 b355 b355 b355 b355 b355 b355 -2972 b356 b356 b356 * 5d3c * 8ea1ddbc,ddbc,8ea1ddbcv,ddbcv 8993 e8a693 8993 00008993 b356 b356 b356 b356 b356 b356 b356 -2973 b357 b357 b357 * 5d3d * 8ea1ddbd,ddbd,8ea1ddbdv,ddbdv 898f e8a68f 898f 0000898f b357 b357 b357 b357 b357 b357 b357 -2974 b358 b358 b358 * 5d3e * 8ea1ddbe,ddbe,8ea1ddbev,ddbev 8a2a e8a8aa 8a2a 00008a2a b358 b358 b358 b358 b358 b358 b358 -2975 b359 b359 b359 * 5d3f * 8ea1ddbf,ddbf,8ea1ddbfv,ddbfv 8a1d e8a89d 8a1d 00008a1d b359 b359 b359 b359 b359 b359 b359 -2976 b35a b35a b35a * 5d40 * 8ea1ddc0,ddc0,8ea1ddc0v,ddc0v 8a23 e8a8a3 8a23 00008a23 b35a b35a b35a b35a b35a b35a b35a -2977 b35b b35b b35b * 5d41 * 8ea1ddc1,ddc1,8ea1ddc1v,ddc1v 8a25 e8a8a5 8a25 00008a25 b35b b35b b35b b35b b35b b35b b35b -2978 b35c b35c b35c * 5d42 * 8ea1ddc2,ddc2,8ea1ddc2v,ddc2v 8a31 e8a8b1 8a31 00008a31 b35c b35c b35c b35c b35c b35c b35c -2979 b35d b35d b35d * 5d43 * 8ea1ddc3,ddc3,8ea1ddc3v,ddc3v 8a2d e8a8ad 8a2d 00008a2d b35d b35d b35d b35d b35d b35d b35d -2980 b35e b35e b35e * 5d44 * 8ea1ddc4,ddc4,8ea1ddc4v,ddc4v 8a1f e8a89f 8a1f 00008a1f b35e b35e b35e b35e b35e b35e b35e -2981 b35f b35f b35f * 5d45 * 8ea1ddc5,ddc5,8ea1ddc5v,ddc5v 8a1b e8a89b 8a1b 00008a1b b35f b35f b35f b35f b35f b35f b35f -2982 b360 b360 b360 * 5d46 * 8ea1ddc6,ddc6,8ea1ddc6v,ddc6v 8a22 e8a8a2 8a22 00008a22 b360 b360 b360 b360 b360 b360 b360 -2983 b361 b361 b361 * 5d47 * 8ea1ddc7,ddc7,8ea1ddc7v,ddc7v 8c49 e8b189 8c49 00008c49 b361 b361 b361 b361 b361 b361 b361 -2984 b362 b362 b362 * 5d48 * 8ea1ddc8,ddc8,8ea1ddc8v,ddc8v 8c5a e8b19a 8c5a 00008c5a b362 b362 b362 b362 b362 b362 b362 -2985 b363 b363 b363 * 5d49 * 8ea1ddc9,ddc9,8ea1ddc9v,ddc9v 8ca9 e8b2a9 8ca9 00008ca9 b363 b363 b363 b363 b363 b363 b363 -2986 b364 b364 b364 * 5d4a * 8ea1ddca,ddca,8ea1ddcav,ddcav 8cac e8b2ac 8cac 00008cac b364 b364 b364 b364 b364 b364 b364 -2987 b365 b365 b365 * 5d4b * 8ea1ddcb,ddcb,8ea1ddcbv,ddcbv 8cab e8b2ab 8cab 00008cab b365 b365 b365 b365 b365 b365 b365 -2988 b366 b366 b366 * 5d4c * 8ea1ddcc,ddcc,8ea1ddccv,ddccv 8ca8 e8b2a8 8ca8 00008ca8 b366 b366 b366 b366 b366 b366 b366 -2989 b367 b367 b367 * 5d4d * 8ea1ddcd,ddcd,8ea1ddcdv,ddcdv 8caa e8b2aa 8caa 00008caa b367 b367 b367 b367 b367 b367 b367 -2990 b368 b368 b368 * 5d4e * 8ea1ddce,ddce,8ea1ddcev,ddcev 8ca7 e8b2a7 8ca7 00008ca7 b368 b368 b368 b368 b368 b368 b368 -2991 b369 b369 b369 * 5d4f * 8ea1ddcf,ddcf,8ea1ddcfv,ddcfv 8d67 e8b5a7 8d67 00008d67 b369 b369 b369 b369 b369 b369 b369 -2992 b36a b36a b36a * 5d50 * 8ea1ddd0,ddd0,8ea1ddd0v,ddd0v 8d66 e8b5a6 8d66 00008d66 b36a b36a b36a b36a b36a b36a b36a -2993 b36b b36b b36b * 5d51 * 8ea1ddd1,ddd1,8ea1ddd1v,ddd1v 8dbe e8b6be 8dbe 00008dbe b36b b36b b36b b36b b36b b36b b36b -2994 b36c b36c b36c * 5d52 * 8ea1ddd2,ddd2,8ea1ddd2v,ddd2v 8dba e8b6ba 8dba 00008dba b36c b36c b36c b36c b36c b36c b36c -2995 b36d b36d b36d * 5d53 * 8ea1ddd3,ddd3,8ea1ddd3v,ddd3v 8edb e8bb9b 8edb 00008edb b36d b36d b36d b36d b36d b36d b36d -2996 b36e b36e b36e * 5d54 * 8ea1ddd4,ddd4,8ea1ddd4v,ddd4v 8edf e8bb9f 8edf 00008edf b36e b36e b36e b36e b36e b36e b36e -2997 b36f b36f b36f * 5d55 * 8ea1ddd5,ddd5,8ea1ddd5v,ddd5v 9019 e98099 9019 00009019 b36f b36f b36f b36f b36f b36f b36f -2998 b370 b370 b370 * 5d56 * 8ea1ddd6,ddd6,8ea1ddd6v,ddd6v 900d e9808d 900d 0000900d b370 b370 b370 b370 b370 b370 b370 -2999 b371 b371 b371 * 5d57 * 8ea1ddd7,ddd7,8ea1ddd7v,ddd7v 901a e9809a 901a 0000901a b371 b371 b371 b371 b371 b371 b371 -3000 b372 b372 b372 * 5d58 * 8ea1ddd8,ddd8,8ea1ddd8v,ddd8v 9017 e98097 9017 00009017 b372 b372 b372 b372 b372 b372 b372 -3001 b373 b373 b373 * 5d59 * 8ea1ddd9,ddd9,8ea1ddd9v,ddd9v 9023 e980a3 9023 00009023 b373 b373 b373 b373 b373 b373 b373 -3002 b374 b374 b374 * 5d5a * 8ea1ddda,ddda,8ea1dddav,dddav 901f e9809f 901f 0000901f b374 b374 b374 b374 b374 b374 b374 -3003 b375 b375 b375 * 5d5b * 8ea1dddb,dddb,8ea1dddbv,dddbv 901d e9809d 901d 0000901d b375 b375 b375 b375 b375 b375 b375 -3004 b376 b376 b376 * 5d5c * 8ea1dddc,dddc,8ea1dddcv,dddcv 9010 e98090 9010 00009010 b376 b376 b376 b376 b376 b376 b376 -3005 b377 b377 b377 * 5d5d * 8ea1dddd,dddd,8ea1ddddv,ddddv 9015 e98095 9015 00009015 b377 b377 b377 b377 b377 b377 b377 -3006 b378 b378 b378 * 5d5e * 8ea1ddde,ddde,8ea1dddev,dddev 901e e9809e 901e 0000901e b378 b378 b378 b378 b378 b378 b378 -3007 b379 b379 b379 * 5d5f * 8ea1dddf,dddf,8ea1dddfv,dddfv 9020 e980a0 9020 00009020 b379 b379 b379 b379 b379 b379 b379 -3008 b37a b37a b37a * 5d60 * 8ea1dde0,dde0,8ea1dde0v,dde0v 900f e9808f 900f 0000900f b37a b37a b37a b37a b37a b37a b37a -3009 b37b b37b b37b * 5d61 * 8ea1dde1,dde1,8ea1dde1v,dde1v 9022 e980a2 9022 00009022 b37b b37b b37b b37b b37b b37b b37b -3010 b37c b37c b37c * 5d62 * 8ea1dde2,dde2,8ea1dde2v,dde2v 9016 e98096 9016 00009016 b37c b37c b37c b37c b37c b37c b37c -3011 b37d b37d b37d * 5d63 * 8ea1dde3,dde3,8ea1dde3v,dde3v 901b e9809b 901b 0000901b b37d b37d b37d b37d b37d b37d b37d -3012 b37e b37e b37e * 5d64 * 8ea1dde4,dde4,8ea1dde4v,dde4v 9014 e98094 9014 00009014 b37e b37e b37e b37e b37e b37e b37e -3013 b3a1 b3a1 b3a1 * 5d65 * 8ea1dde5,dde5,8ea1dde5v,dde5v 90e8 e983a8 90e8 000090e8 b3a1 b3a1 b3a1 b3a1 b3a1 b3a1 b3a1 -3014 b3a2 b3a2 b3a2 * 5d66 * 8ea1dde6,dde6,8ea1dde6v,dde6v 90ed e983ad 90ed 000090ed b3a2 b3a2 b3a2 b3a2 b3a2 b3a2 b3a2 -3015 b3a3 b3a3 b3a3 * 5d67 * 8ea1dde7,dde7,8ea1dde7v,dde7v 90fd e983bd,ee91b8 90fd,e478 000090fd,0000e478 906d,b3a3 b3a3 b3a3 b3a3 b3a3 b3a3 906d,b3a3 -3016 b3a4 b3a4 b3a4 * 5d68 * 8ea1dde8,dde8,8ea1dde8v,dde8v 9157 e98597 9157 00009157 b3a4 b3a4 b3a4 b3a4 b3a4 b3a4 b3a4 -3017 b3a5 b3a5 b3a5 * 5d69 * 8ea1dde9,dde9,8ea1dde9v,dde9v 91ce e9878e 91ce 000091ce b3a5 b3a5 b3a5 b3a5 b3a5 b3a5 b3a5 -3018 b3a6 b3a6 b3a6 * 5d6a * 8ea1ddea,ddea,8ea1ddeav,ddeav 91f5 e987b5 91f5 000091f5 b3a6 b3a6 b3a6 b3a6 b3a6 b3a6 b3a6 -3019 b3a7 b3a7 b3a7 * 5d6b * 8ea1ddeb,ddeb,8ea1ddebv,ddebv 91e6 e987a6 91e6 000091e6 b3a7 b3a7 b3a7 b3a7 b3a7 b3a7 b3a7 -3020 b3a8 b3a8 b3a8 * 5d6c * 8ea1ddec,ddec,8ea1ddecv,ddecv 91e3 e987a3 91e3 000091e3 b3a8 b3a8 b3a8 b3a8 b3a8 b3a8 b3a8 -3021 b3a9 b3a9 b3a9 * 5d6d * 8ea1dded,dded,8ea1ddedv,ddedv 91e7 e987a7 91e7 000091e7 b3a9 b3a9 b3a9 b3a9 b3a9 b3a9 b3a9 -3022 b3aa b3aa b3aa * 5d6e * 8ea1ddee,ddee,8ea1ddeev,ddeev 91ed e987ad 91ed 000091ed b3aa b3aa b3aa b3aa b3aa b3aa b3aa -3023 b3ab b3ab b3ab * 5d6f * 8ea1ddef,ddef,8ea1ddefv,ddefv 91e9 e987a9 91e9 000091e9 b3ab b3ab b3ab b3ab b3ab b3ab b3ab -3024 b3ac b3ac b3ac * 5d70 * 8ea1ddf0,ddf0,8ea1ddf0v,ddf0v 9589 e99689 9589 00009589 b3ac b3ac b3ac b3ac b3ac b3ac b3ac -3025 b3ad b3ad b3ad * 5d71 * 8ea1ddf1,ddf1,8ea1ddf1v,ddf1v 966a e999aa 966a 0000966a b3ad b3ad b3ad b3ad b3ad b3ad b3ad -3026 b3ae b3ae b3ae * 5d72 * 8ea1ddf2,ddf2,8ea1ddf2v,ddf2v 9675 e999b5 9675 00009675 b3ae b3ae b3ae b3ae b3ae b3ae b3ae -3027 b3af b3af b3af * 5d73 * 8ea1ddf3,ddf3,8ea1ddf3v,ddf3v 9673 e999b3 9673 00009673 b3af b3af b3af b3af b3af b3af b3af -3028 b3b0 b3b0 b3b0 * 5d74 * 8ea1ddf4,ddf4,8ea1ddf4v,ddf4v 9678 e999b8 9678 00009678 b3b0 b3b0 b3b0 b3b0 b3b0 b3b0 b3b0 -3029 b3b1 b3b1 b3b1 * 5d75 * 8ea1ddf5,ddf5,8ea1ddf5v,ddf5v 9670 e999b0 9670 00009670 b3b1 b3b1 b3b1 b3b1 b3b1 b3b1 b3b1 -3030 b3b2 b3b2 b3b2 * 5d76 * 8ea1ddf6,ddf6,8ea1ddf6v,ddf6v 9674 e999b4 9674 00009674 b3b2 b3b2 b3b2 b3b2 b3b2 b3b2 b3b2 -3031 b3b3 b3b3 b3b3 * 5d77 * 8ea1ddf7,ddf7,8ea1ddf7v,ddf7v 9676 e999b6 9676 00009676 b3b3 b3b3 b3b3 b3b3 b3b3 b3b3 b3b3 -3032 b3b4 b3b4 b3b4 * 5d78 * 8ea1ddf8,ddf8,8ea1ddf8v,ddf8v 9677 e999b7 9677 00009677 b3b4 b3b4 b3b4 b3b4 b3b4 b3b4 b3b4 -3033 b3b5 b3b5 b3b5 * 5d79 * 8ea1ddf9,ddf9,8ea1ddf9v,ddf9v 966c e999ac 966c 0000966c b3b5 b3b5 b3b5 b3b5 b3b5 b3b5 b3b5 -3034 b3b6 b3b6 b3b6 * 5d7a * 8ea1ddfa,ddfa,8ea1ddfav,ddfav 96c0 e99b80 96c0 000096c0 b3b6 b3b6 b3b6 b3b6 b3b6 b3b6 b3b6 -3035 b3b7 b3b7 b3b7 * 5d7b * 8ea1ddfb,ddfb,8ea1ddfbv,ddfbv 96ea e99baa 96ea 000096ea b3b7 b3b7 b3b7 b3b7 b3b7 b3b7 b3b7 -3036 b3b8 b3b8 b3b8 * 5d7c * 8ea1ddfc,ddfc,8ea1ddfcv,ddfcv 96e9 e99ba9 96e9 000096e9 b3b8 b3b8 b3b8 b3b8 b3b8 b3b8 b3b8 -3037 b3b9 b3b9 b3b9 * 5d7d * 8ea1ddfd,ddfd,8ea1ddfdv,ddfdv 7ae0 e7aba0 7ae0 00007ae0 b3b9 b3b9 b3b9 b3b9 b3b9 b3b9 b3b9 -3038 b3ba b3ba b3ba * 5d7e * 8ea1ddfe,ddfe,8ea1ddfev,ddfev 7adf e7ab9f 7adf 00007adf b3ba b3ba b3ba b3ba b3ba b3ba b3ba -3039 b3bb b3bb b3bb * 5e21 * 8ea1dea1,dea1,8ea1dea1v,dea1v 9802 e9a082 9802 00009802 b3bb b3bb b3bb b3bb b3bb b3bb b3bb -3040 b3bc b3bc b3bc * 5e22 * 8ea1dea2,dea2,8ea1dea2v,dea2v 9803 e9a083 9803 00009803 b3bc b3bc b3bc b3bc b3bc b3bc b3bc -3041 b3bd b3bd b3bd * 2926,5e23 * 8ea1a9a6,8ea1dea3,a9a6,dea3,8ea1a9a6v,8ea1dea3v,a9a6v,dea3v 9b5a e9ad9a,e2bf82 9b5a,2fc2 00009b5a,00002fc2 b3bd b3bd b3bd b3bd b3bd b3bd b3bd -3042 b3be b3be b3be * 2927,5e24 * 8ea1a9a7,8ea1dea4,a9a7,dea4,8ea1a9a7v,8ea1dea4v,a9a7v,dea4v 9ce5 e9b3a5,e2bf83 9ce5,2fc3 00009ce5,00002fc3 b3be b3be b3be b3be b3be b3be b3be -3043 b3bf b3bf b3bf * 2928,5e25 * 8ea1a9a8,8ea1dea5,a9a8,dea5,8ea1a9a8v,8ea1dea5v,a9a8v,dea5v 9e75 e9b9b5,e2bf84 9e75,2fc4 00009e75,00002fc4 b3bf b3bf 9157,b3bf b3bf b3bf b3bf b3bf -3044 b3c0 b3c0 b3c0 * 2929,5e26 * 8ea1a9a9,8ea1dea6,a9a9,dea6,8ea1a9a9v,8ea1dea6v,a9a9v,dea6v 9e7f e9b9bf,e2bf85 9e7f,2fc5 00009e7f,00002fc5 b3c0 b3c0 b3c0 b3c0 b3c0 b3c0 b3c0 -3045 b3c1 b3c1 b3c1 * 292a,5e27 * 8ea1a9aa,8ea1dea7,a9aa,dea7,8ea1a9aav,8ea1dea7v,a9aav,dea7v 9ea5 e9baa5,e2bf86 9ea5,2fc6 00009ea5,00002fc6 b3c1 b3c1 b3c1 b3c1 b3c1 b3c1 b3c1 -3046 b3c2 b3c2 b3c2 * 292b,5e28 * 8ea1a9ab,8ea1dea8,a9ab,dea8,8ea1a9abv,8ea1dea8v,a9abv,dea8v 9ebb e9babb,e2bf87 9ebb,2fc7 00009ebb,00002fc7 b3c2 b3c2 b3c2 b3c2 b3c2 b3c2 b3c2 -3047 b3c3 b3c3 b3c3 * 5e29 * 8ea1dea9,dea9,8ea1dea9v,dea9v 50a2 e582a2 50a2 000050a2 b3c3 b3c3 b3c3 b3c3 b3c3 b3c3 b3c3 -3048 b3c4 b3c4 b3c4 * 5e2a * 8ea1deaa,deaa,8ea1deaav,deaav 508d e5828d 508d 0000508d b3c4 b3c4 b3c4 b3c4 b3c4 b3c4 b3c4 -3049 b3c5 b3c5 b3c5 * 5e2b * 8ea1deab,deab,8ea1deabv,deabv 5085 e58285 5085 00005085 b3c5 b3c5 b3c5 b3c5 b3c5 b3c5 b3c5 -3050 b3c6 b3c6 b3c6 * 5e2c * 8ea1deac,deac,8ea1deacv,deacv 5099 e58299 5099 00005099 b3c6 b3c6 b3c6 b3c6 b3c6 b3c6 b3c6 -3051 b3c7 b3c7 b3c7 * 5e2d * 8ea1dead,dead,8ea1deadv,deadv 5091 e58291 5091 00005091 b3c7 b3c7 b3c7 b3c7 b3c7 b3c7 b3c7 -3052 b3c8 b3c8 b3c8 * 5e2e * 8ea1deae,deae,8ea1deaev,deaev 5080 e58280 5080 00005080 b3c8 b3c8 b3c8 b3c8 b3c8 b3c8 b3c8 -3053 b3c9 b3c9 b3c9 * 5e2f * 8ea1deaf,deaf,8ea1deafv,deafv 5096 e58296 5096 00005096 b3c9 b3c9 b3c9 b3c9 b3c9 b3c9 b3c9 -3054 b3ca b3ca b3ca * 5e30 * 8ea1deb0,deb0,8ea1deb0v,deb0v 5098 e58298 5098 00005098 b3ca b3ca b3ca b3ca b3ca b3ca b3ca -3055 b3cb b3cb b3cb * 5e31 * 8ea1deb1,deb1,8ea1deb1v,deb1v 509a e5829a 509a 0000509a b3cb b3cb b3cb b3cb b3cb b3cb b3cb -3056 b3cc b3cc b3cc * 5e32 * 8ea1deb2,deb2,8ea1deb2v,deb2v 6700 e69c80 6700 00006700 b3cc b3cc b3cc b3cc b3cc b3cc b3cc -3057 b3cd b3cd b3cd * 5e33 * 8ea1deb3,deb3,8ea1deb3v,deb3v 51f1 e587b1 51f1 000051f1 b3cd b3cd b3cd b3cd b3cd b3cd b3cd -3058 b3ce b3ce b3ce * 5e34 * 8ea1deb4,deb4,8ea1deb4v,deb4v 5272 e589b2 5272 00005272 b3ce b3ce b3ce b3ce b3ce b3ce b3ce -3059 b3cf b3cf b3cf * 5e35 * 8ea1deb5,deb5,8ea1deb5v,deb5v 5274 e589b4 5274 00005274 b3cf b3cf b3cf b3cf b3cf b3cf b3cf -3060 b3d0 b3d0 b3d0 * 5e36 * 8ea1deb6,deb6,8ea1deb6v,deb6v 5275 e589b5 5275 00005275 b3d0 b3d0 b3d0 b3d0 b3d0 b3d0 b3d0 -3061 b3d1 b3d1 b3d1 * 5e37 * 8ea1deb7,deb7,8ea1deb7v,deb7v 5269 e589a9 5269 00005269 b3d1 b3d1 b3d1 b3d1 b3d1 b3d1 b3d1 -3062 b3d2 b3d2 b3d2 * 5e38 * 8ea1deb8,deb8,8ea1deb8v,deb8v 52de e58b9e 52de 000052de b3d2 b3d2 b3d2 b3d2 b3d2 b3d2 b3d2 -3063 b3d3 b3d3 b3d3 * 5e39 * 8ea1deb9,deb9,8ea1deb9v,deb9v 52dd e58b9d 52dd 000052dd b3d3 b3d3 b3d3 b3d3 b3d3 b3d3 b3d3 -3064 b3d4 b3d4 b3d4 * 5e3a * 8ea1deba,deba,8ea1debav,debav 52db e58b9b 52db 000052db b3d4 b3d4 b3d4 b3d4 b3d4 b3d4 b3d4 -3065 b3d5 b3d5 b3d5 * 5e3b * 8ea1debb,debb,8ea1debbv,debbv 535a e58d9a 535a 0000535a b3d5 b3d5 b3d5 b3d5 b3d5 b3d5 b3d5 -3066 b3d6 b3d6 b3d6 * 5e3c * 8ea1debc,debc,8ea1debcv,debcv 53a5 e58ea5 53a5 000053a5 b3d6 b3d6 b3d6 b3d6 b3d6 b3d6 b3d6 -3067 b3d7 b3d7 b3d7 * 5e3d * 8ea1debd,debd,8ea1debdv,debdv 557b e595bb 557b 0000557b b3d7 b3d7 b3d7 b3d7 b3d7 b3d7 b3d7 -3068 b3d8 b3d8 b3d8 * 5e3e * 8ea1debe,debe,8ea1debev,debev 5580 e59680 5580 00005580 b3d8 b3d8 b3d8 b3d8 b3d8 b3d8 b3d8 -3069 b3d9 b3d9 b3d9 * 5e3f * 8ea1debf,debf,8ea1debfv,debfv 55a7 e596a7 55a7 000055a7 b3d9 b3d9 b3d9 b3d9 b3d9 b3d9 b3d9 -3070 b3da b3da b3da * 5e40 * 8ea1dec0,dec0,8ea1dec0v,dec0v 557c e595bc 557c 0000557c b3da b3da b3da b3da b3da b3da b3da -3071 b3db b3db b3db * 5e41 * 8ea1dec1,dec1,8ea1dec1v,dec1v 558a e5968a 558a 0000558a b3db b3db b3db b3db b3db b3db b3db -3072 b3dc b3dc b3dc * 5e42 * 8ea1dec2,dec2,8ea1dec2v,dec2v 559d e5969d 559d 0000559d b3dc b3dc b3dc b3dc b3dc b3dc b3dc -3073 b3dd b3dd b3dd * 5e43 * 8ea1dec3,dec3,8ea1dec3v,dec3v 5598 e59698 5598 00005598 b3dd b3dd b3dd b3dd b3dd b3dd b3dd -3074 b3de b3de b3de * 5e44 * 8ea1dec4,dec4,8ea1dec4v,dec4v 5582 e59682 5582 00005582 b3de b3de b3de b3de b3de b3de b3de -3075 b3df b3df b3df * 5e45 * 8ea1dec5,dec5,8ea1dec5v,dec5v 559c e5969c 559c 0000559c b3df b3df b3df b3df b3df b3df b3df -3076 b3e0 b3e0 b3e0 * 5e46 * 8ea1dec6,dec6,8ea1dec6v,dec6v 55aa e596aa 55aa 000055aa b3e0 b3e0 b3e0 b3e0 b3e0 b3e0 b3e0 -3077 b3e1 b3e1 b3e1 * 5e47 * 8ea1dec7,dec7,8ea1dec7v,dec7v 5594 e59694 5594 00005594 b3e1 b3e1 b3e1 b3e1 b3e1 b3e1 b3e1 -3078 b3e2 b3e2 b3e2 * 5e48 * 8ea1dec8,dec8,8ea1dec8v,dec8v 5587 e59687 5587 00005587 b3e2 b3e2 b3e2 b3e2 b3e2 b3e2 b3e2 -3079 b3e3 b3e3 b3e3 * 5e49 * 8ea1dec9,dec9,8ea1dec9v,dec9v 558b e5968b 558b 0000558b b3e3 b3e3 b3e3 b3e3 b3e3 b3e3 b3e3 -3080 b3e4 b3e4 b3e4 * 5e4a * 8ea1deca,deca,8ea1decav,decav 5583 e59683 5583 00005583 b3e4 b3e4 b3e4 b3e4 b3e4 b3e4 b3e4 -3081 b3e5 b3e5 b3e5 * 5e4b * 8ea1decb,decb,8ea1decbv,decbv 55b3 e596b3 55b3 000055b3 b3e5 b3e5 b3e5 b3e5 b3e5 b3e5 b3e5 -3082 b3e6 b3e6 b3e6 * 5e4c * 8ea1decc,decc,8ea1deccv,deccv 55ae e596ae 55ae 000055ae b3e6 b3e6 b3e6 b3e6 b3e6 b3e6 b3e6 -3083 b3e7 b3e7 b3e7 * 5e4d * 8ea1decd,decd,8ea1decdv,decdv 559f e5969f 559f 0000559f b3e7 b3e7 b3e7 b3e7 b3e7 b3e7 b3e7 -3084 b3e8 b3e8 b3e8 * 5e4e * 8ea1dece,dece,8ea1decev,decev 553e e594be 553e 0000553e b3e8 b3e8 b3e8 b3e8 b3e8 b3e8 b3e8 -3085 b3e9 b3e9 b3e9 * 5e4f * 8ea1decf,decf,8ea1decfv,decfv 55b2 e596b2 55b2 000055b2 b3e9 b3e9 b3e9 b3e9 b3e9 b3e9 b3e9 -3086 b3ea b3ea b3ea * 5e50 * 8ea1ded0,ded0,8ea1ded0v,ded0v 559a e5969a 559a 0000559a b3ea b3ea b3ea b3ea b3ea b3ea b3ea -3087 b3eb b3eb b3eb * 5e51 * 8ea1ded1,ded1,8ea1ded1v,ded1v 55bb e596bb 55bb 000055bb b3eb b3eb b3eb b3eb b3eb b3eb b3eb -3088 b3ec b3ec b3ec * 5e52 * 8ea1ded2,ded2,8ea1ded2v,ded2v 55ac e596ac 55ac 000055ac b3ec b3ec b3ec b3ec b3ec b3ec b3ec -3089 b3ed b3ed b3ed * 5e53 * 8ea1ded3,ded3,8ea1ded3v,ded3v 55b1 e596b1 55b1 000055b1 b3ed b3ed b3ed b3ed b3ed b3ed b3ed -3090 b3ee b3ee b3ee * 5e54 * 8ea1ded4,ded4,8ea1ded4v,ded4v 557e e595be 557e 0000557e b3ee b3ee b3ee b3ee b3ee b3ee b3ee -3091 b3ef b3ef b3ef * 5e55 * 8ea1ded5,ded5,8ea1ded5v,ded5v 5589 e59689 5589 00005589 b3ef b3ef b3ef b3ef b3ef b3ef b3ef -3092 b3f0 b3f0 b3f0 * 5e56 * 8ea1ded6,ded6,8ea1ded6v,ded6v 55ab e596ab 55ab 000055ab b3f0 b3f0 b3f0 b3f0 b3f0 b3f0 b3f0 -3093 b3f1 b3f1 b3f1 * 5e57 * 8ea1ded7,ded7,8ea1ded7v,ded7v 5599 e59699 5599 00005599 b3f1 b3f1 b3f1 b3f1 b3f1 b3f1 b3f1 -3094 b3f2 b3f2 b3f2 * 5e58 * 8ea1ded8,ded8,8ea1ded8v,ded8v 570d e59c8d 570d 0000570d b3f2 b3f2 b3f2 b3f2 b3f2 b3f2 b3f2 -3095 b3f3 b3f3 b3f3 * 5e59 * 8ea1ded9,ded9,8ea1ded9v,ded9v 582f e5a0af 582f 0000582f b3f3 b3f3 b3f3 b3f3 b3f3 b3f3 b3f3 -3096 b3f4 b3f4 b3f4 * 5e5a * 8ea1deda,deda,8ea1dedav,dedav 582a e5a0aa 582a 0000582a b3f4 b3f4 b3f4 b3f4 b3f4 b3f4 b3f4 -3097 b3f5 b3f5 b3f5 * 5e5b * 8ea1dedb,dedb,8ea1dedbv,dedbv 5834 e5a0b4 5834 00005834 b3f5 b3f5 b3f5 b3f5 b3f5 b3f5 b3f5 -3098 b3f6 b3f6 b3f6 * 5e5c * 8ea1dedc,dedc,8ea1dedcv,dedcv 5824 e5a0a4 5824 00005824 b3f6 b3f6 b3f6 b3f6 b3f6 b3f6 b3f6 -3099 b3f7 b3f7 b3f7 * 5e5d * 8ea1dedd,dedd,8ea1deddv,deddv 5830 e5a0b0 5830 00005830 b3f7 b3f7 b3f7 b3f7 b3f7 b3f7 b3f7 -3100 b3f8 b3f8 b3f8 * 5e5e * 8ea1dede,dede,8ea1dedev,dedev 5831 e5a0b1 5831 00005831 b3f8 b3f8 b3f8 b3f8 b3f8 b3f8 b3f8 -3101 b3f9 b3f9 b3f9 * 5e5f * 8ea1dedf,dedf,8ea1dedfv,dedfv 5821 e5a0a1 5821 00005821 b3f9 b3f9 b3f9 b3f9 b3f9 b3f9 b3f9 -3102 b3fa b3fa b3fa * 5e60 * 8ea1dee0,dee0,8ea1dee0v,dee0v 581d e5a09d 581d 0000581d b3fa b3fa b3fa b3fa b3fa b3fa b3fa -3103 b3fb b3fb b3fb * 5e61 * 8ea1dee1,dee1,8ea1dee1v,dee1v 5820 e5a0a0 5820 00005820 b3fb b3fb b3fb b3fb b3fb b3fb b3fb -3104 b3fc b3fc b3fc * 5e62 * 8ea1dee2,dee2,8ea1dee2v,dee2v 58f9 e5a3b9 58f9 000058f9 b3fc b3fc b3fc b3fc b3fc b3fc b3fc -3105 b3fd b3fd b3fd * 5e63 * 8ea1dee3,dee3,8ea1dee3v,dee3v 58fa e5a3ba 58fa 000058fa b3fd b3fd b3fd b3fd b3fd b3fd b3fd -3106 b3fe b3fe b3fe * 5e64 * 8ea1dee4,dee4,8ea1dee4v,dee4v 5960 e5a5a0 5960 00005960 b3fe b3fe b3fe b3fe b3fe b3fe b3fe -3107 b440 b440 b440 * 5e65 * 8ea1dee5,dee5,8ea1dee5v,dee5v 5a77 e5a9b7,ee83b3 5a77,e0f3 00005a77,0000e0f3 fbb8,b440 b440 b440 b440 b440 b440 fbb8,b440 -3108 b441 b441 b441 * 5e66 * 8ea1dee6,dee6,8ea1dee6v,dee6v 5a9a e5aa9a 5a9a 00005a9a b441 b441 b441 b441 b441 b441 b441 -3109 b442 b442 b442 * 5e67 * 8ea1dee7,dee7,8ea1dee7v,dee7v 5a7f e5a9bf 5a7f 00005a7f b442 b442 b442 b442 b442 b442 b442 -3110 b443 b443 b443 * 5e68 * 8ea1dee8,dee8,8ea1dee8v,dee8v 5a92 e5aa92 5a92 00005a92 b443 b443 b443 b443 b443 b443 b443 -3111 b444 b444 b444 * 5e69 * 8ea1dee9,dee9,8ea1dee9v,dee9v 5a9b e5aa9b 5a9b 00005a9b b444 b444 b444 b444 b444 b444 b444 -3112 b445 b445 b445 * 5e6a * 8ea1deea,deea,8ea1deeav,deeav 5aa7 e5aaa7 5aa7 00005aa7 b445 b445 b445 b445 b445 b445 b445 -3113 b446 b446 b446 * 5e6b * 8ea1deeb,deeb,8ea1deebv,deebv 5b73 e5adb3 5b73 00005b73 b446 b446 b446 b446 b446 b446 b446 -3114 b447 b447 b447 * 5e6c * 8ea1deec,deec,8ea1deecv,deecv 5b71 e5adb1 5b71 00005b71 b447 b447 b447 b447 b447 b447 b447 -3115 b448 b448 b448 * 5e6d * 8ea1deed,deed,8ea1deedv,deedv 5bd2 e5af92 5bd2 00005bd2 b448 b448 b448 b448 b448 b448 b448 -3116 b449 b449 b449 * 5e6e * 8ea1deee,deee,8ea1deeev,deeev 5bcc e5af8c 5bcc 00005bcc b449 b449 b449 b449 b449 b449 b449 -3117 b44a b44a b44a * 5e6f * 8ea1deef,deef,8ea1deefv,deefv 5bd3 e5af93 5bd3 00005bd3 b44a b44a b44a b44a b44a b44a b44a -3118 b44b b44b b44b * 5e70 * 8ea1def0,def0,8ea1def0v,def0v 5bd0 e5af90 5bd0 00005bd0 b44b b44b b44b b44b b44b b44b b44b -3119 b44c b44c b44c * 5e71 * 8ea1def1,def1,8ea1def1v,def1v 5c0a e5b08a 5c0a 00005c0a b44c b44c b44c b44c b44c b44c b44c -3120 b44d b44d b44d * 5e72 * 8ea1def2,def2,8ea1def2v,def2v 5c0b e5b08b 5c0b 00005c0b b44d b44d b44d b44d b44d b44d b44d -3121 b44e b44e b44e * 5e73 * 8ea1def3,def3,8ea1def3v,def3v 5c31 e5b0b1 5c31 00005c31 b44e b44e b44e b44e b44e b44e b44e -3122 b44f b44f b44f * 5e74 * 8ea1def4,def4,8ea1def4v,def4v 5d4c e5b58c 5d4c 00005d4c b44f b44f b44f b44f b44f b44f b44f -3123 b450 b450 b450 * 5e75 * 8ea1def5,def5,8ea1def5v,def5v 5d50 e5b590 5d50 00005d50 b450 b450 b450 b450 b450 b450 b450 -3124 b451 b451 b451 * 5e76 * 8ea1def6,def6,8ea1def6v,def6v 5d34 e5b4b4 5d34 00005d34 b451 b451 b451 b451 b451 b451 b451 -3125 b452 b452 b452 * 5e77 * 8ea1def7,def7,8ea1def7v,def7v 5d47 e5b587 5d47 00005d47 b452 b452 b452 b452 b452 b452 b452 -3126 b453 b453 b453 * 5e78 * 8ea1def8,def8,8ea1def8v,def8v 5dfd e5b7bd 5dfd 00005dfd b453 b453 b453 b453 b453 b453 b453 -3127 b454 b454 b454 * 5e79 * 8ea1def9,def9,8ea1def9v,def9v 5e45 e5b985 5e45 00005e45 b454 b454 b454 b454 b454 b454 b454 -3128 b455 b455 b455 * 5e7a * 8ea1defa,defa,8ea1defav,defav 5e3d e5b8bd 5e3d 00005e3d b455 b455 b455 b455 b455 b455 b455 -3129 b456 b456 b456 * 5e7b * 8ea1defb,defb,8ea1defbv,defbv 5e40 e5b980 5e40 00005e40 b456 b456 b456 b456 b456 b456 b456 -3130 b457 b457 b457 * 5e7c * 8ea1defc,defc,8ea1defcv,defcv 5e43 e5b983 5e43 00005e43 b457 b457 b457 b457 b457 b457 b457 -3131 b458 b458 b458 * 5e7d * 8ea1defd,defd,8ea1defdv,defdv 5e7e e5b9be 5e7e 00005e7e b458 b458 b458 b458 b458 b458 b458 -3132 b459 b459 b459 * 5e7e * 8ea1defe,defe,8ea1defev,defev 5eca e5bb8a 5eca 00005eca b459 b459 b459 b459 b459 b459 b459 -3133 b45a b45a b45a * 5f21 * 8ea1dfa1,dfa1,8ea1dfa1v,dfa1v 5ec1 e5bb81 5ec1 00005ec1 b45a b45a b45a b45a b45a b45a b45a -3134 b45b b45b b45b * 5f22 * 8ea1dfa2,dfa2,8ea1dfa2v,dfa2v 5ec2 e5bb82 5ec2 00005ec2 b45b b45b b45b b45b b45b b45b b45b -3135 b45c b45c b45c * 5f23 * 8ea1dfa3,dfa3,8ea1dfa3v,dfa3v 5ec4 e5bb84 5ec4 00005ec4 b45c b45c b45c b45c b45c b45c b45c -3136 b45d b45d b45d * 5f24 * 8ea1dfa4,dfa4,8ea1dfa4v,dfa4v 5f3c e5bcbc 5f3c 00005f3c b45d b45d b45d b45d b45d b45d b45d -3137 b45e b45e b45e * 5f25 * 8ea1dfa5,dfa5,8ea1dfa5v,dfa5v 5f6d e5bdad 5f6d 00005f6d b45e b45e b45e b45e b45e b45e b45e -3138 b45f b45f b45f * 5f26 * 8ea1dfa6,dfa6,8ea1dfa6v,dfa6v 5fa9 e5bea9 5fa9 00005fa9 b45f b45f b45f b45f b45f b45f b45f -3139 b460 b460 b460 * 5f27 * 8ea1dfa7,dfa7,8ea1dfa7v,dfa7v 5faa e5beaa 5faa 00005faa b460 b460 b460 b460 b460 b460 b460 -3140 b461 b461 b461 * 5f28 * 8ea1dfa8,dfa8,8ea1dfa8v,dfa8v 5fa8 e5bea8 5fa8 00005fa8 b461 b461 b461 b461 b461 b461 b461 -3141 b462 b462 b462 * 5f29 * 8ea1dfa9,dfa9,8ea1dfa9v,dfa9v 60d1 e68391 60d1 000060d1 b462 b462 b462 b462 b462 b462 b462 -3142 b463 b463 b463 * 5f2a * 8ea1dfaa,dfaa,8ea1dfaav,dfaav 60e1 e683a1 60e1 000060e1 b463 b463 b463 b463 b463 b463 b463 -3143 b464 b464 b464 * 5f2b * 8ea1dfab,dfab,8ea1dfabv,dfabv 60b2 e682b2 60b2 000060b2 b464 b464 b464 b464 b464 b464 b464 -3144 b465 b465 b465 * 5f2c * 8ea1dfac,dfac,8ea1dfacv,dfacv 60b6 e682b6 60b6 000060b6 b465 b465 b465 b465 b465 b465 b465 -3145 b466 b466 b466 * 5f2d * 8ea1dfad,dfad,8ea1dfadv,dfadv 60e0 e683a0 60e0 000060e0 b466 b466 b466 b466 b466 b466 b466 -3146 b467 b467 b467 * 5f2e * 8ea1dfae,dfae,8ea1dfaev,dfaev 611c e6849c 611c 0000611c b467 b467 b467 b467 b467 b467 b467 -3147 b468 b468 b468 * 5f2f * 8ea1dfaf,dfaf,8ea1dfafv,dfafv 6123 e684a3 6123 00006123 b468 b468 b468 b468 b468 b468 b468 -3148 b469 b469 b469 * 5f30 * 8ea1dfb0,dfb0,8ea1dfb0v,dfb0v 60fa e683ba 60fa 000060fa b469 b469 b469 b469 b469 b469 b469 -3149 b46a b46a b46a * 5f31 * 8ea1dfb1,dfb1,8ea1dfb1v,dfb1v 6115 e68495 6115 00006115 b46a b46a b46a b46a b46a b46a b46a -3150 b46b b46b b46b * 5f32 * 8ea1dfb2,dfb2,8ea1dfb2v,dfb2v 60f0 e683b0 60f0 000060f0 b46b b46b b46b b46b b46b b46b b46b -3151 b46c b46c b46c * 5f33 * 8ea1dfb3,dfb3,8ea1dfb3v,dfb3v 60fb e683bb 60fb 000060fb b46c b46c b46c b46c b46c b46c b46c -3152 b46d b46d b46d * 5f34 * 8ea1dfb4,dfb4,8ea1dfb4v,dfb4v 60f4 e683b4 60f4 000060f4 b46d b46d b46d b46d b46d b46d b46d -3153 b46e b46e b46e * 5f35 * 8ea1dfb5,dfb5,8ea1dfb5v,dfb5v 6168 e685a8 6168 00006168 b46e b46e b46e b46e b46e b46e b46e -3154 b46f b46f b46f * 5f36 * 8ea1dfb6,dfb6,8ea1dfb6v,dfb6v 60f1 e683b1 60f1 000060f1 b46f b46f b46f b46f b46f b46f b46f -3155 b470 b470 b470 * 5f37 * 8ea1dfb7,dfb7,8ea1dfb7v,dfb7v 610e e6848e 610e 0000610e b470 b470 b470 b470 b470 b470 b470 -3156 b471 b471 b471 * 5f38 * 8ea1dfb8,dfb8,8ea1dfb8v,dfb8v 60f6 e683b6 60f6 000060f6 b471 b471 b471 b471 b471 b471 b471 -3157 b472 b472 b472 * 5f39 * 8ea1dfb9,dfb9,8ea1dfb9v,dfb9v 6109 e68489 6109 00006109 b472 b472 b472 b472 b472 b472 b472 -3158 b473 b473 b473 * 5f3a * 8ea1dfba,dfba,8ea1dfbav,dfbav 6100 e68480 6100 00006100 b473 b473 b473 b473 b473 b473 b473 -3159 b474 b474 b474 * 5f3b * 8ea1dfbb,dfbb,8ea1dfbbv,dfbbv 6112 e68492 6112 00006112 b474 b474 b474 b474 b474 b474 b474 -3160 b475 b475 b475 * 5f3c * 8ea1dfbc,dfbc,8ea1dfbcv,dfbcv 621f e6889f 621f 0000621f b475 b475 b475 b475 b475 b475 b475 -3161 b476 b476 b476 * 5f3d * 8ea1dfbd,dfbd,8ea1dfbdv,dfbdv 6249 e68989 6249 00006249 b476 b476 b476 b476 b476 b476 b476 -3162 b477 b477 b477 * 5f3e * 8ea1dfbe,dfbe,8ea1dfbev,dfbev 63a3 e68ea3 63a3 000063a3 b477 b477 b477 b477 b477 b477 b477 -3163 b478 b478 b478 * 5f3f * 8ea1dfbf,dfbf,8ea1dfbfv,dfbfv 638c e68e8c 638c 0000638c b478 b478 b478 b478 b478 b478 b478 -3164 b479 b479 b479 * 5f40 * 8ea1dfc0,dfc0,8ea1dfc0v,dfc0v 63cf e68f8f 63cf 000063cf b479 b479 b479 b479 b479 b479 b479 -3165 b47a b47a b47a * 5f41 * 8ea1dfc1,dfc1,8ea1dfc1v,dfc1v 63c0 e68f80 63c0 000063c0 b47a b47a b47a b47a b47a b47a b47a -3166 b47b b47b b47b * 5f42 * 8ea1dfc2,dfc2,8ea1dfc2v,dfc2v 63e9 e68fa9 63e9 000063e9 b47b b47b b47b b47b b47b b47b b47b -3167 b47c b47c b47c * 5f43 * 8ea1dfc3,dfc3,8ea1dfc3v,dfc3v 63c9 e68f89 63c9 000063c9 b47c b47c b47c b47c b47c b47c b47c -3168 b47d b47d b47d * 5f44 * 8ea1dfc4,dfc4,8ea1dfc4v,dfc4v 63c6 e68f86 63c6 000063c6 b47d b47d b47d b47d b47d b47d b47d -3169 b47e b47e b47e * 5f45 * 8ea1dfc5,dfc5,8ea1dfc5v,dfc5v 63cd e68f8d 63cd 000063cd b47e b47e b47e b47e b47e b47e b47e -3170 b4a1 b4a1 b4a1 * 5f46 * 8ea1dfc6,dfc6,8ea1dfc6v,dfc6v 63d2 e68f92 63d2 000063d2 b4a1 b4a1 b4a1 b4a1 b4a1 b4a1 b4a1 -3171 b4a2 b4a2 b4a2 * 5f47 * 8ea1dfc7,dfc7,8ea1dfc7v,dfc7v 63e3 e68fa3 63e3 000063e3 b4a2 b4a2 b4a2 b4a2 b4a2 b4a2 b4a2 -3172 b4a3 b4a3 b4a3 * 5f48 * 8ea1dfc8,dfc8,8ea1dfc8v,dfc8v 63d0 e68f90 63d0 000063d0 b4a3 b4a3 b4a3 b4a3 b4a3 b4a3 b4a3 -3173 b4a4 b4a4 b4a4 * 5f49 * 8ea1dfc9,dfc9,8ea1dfc9v,dfc9v 63e1 e68fa1 63e1 000063e1 b4a4 b4a4 b4a4 b4a4 b4a4 b4a4 b4a4 -3174 b4a5 b4a5 b4a5 * 5f4a * 8ea1dfca,dfca,8ea1dfcav,dfcav 63d6 e68f96 63d6 000063d6 b4a5 b4a5 b4a5 b4a5 b4a5 b4a5 b4a5 -3175 b4a6 b4a6 b4a6 * 5f4b * 8ea1dfcb,dfcb,8ea1dfcbv,dfcbv 63ed e68fad 63ed 000063ed b4a6 b4a6 b4a6 b4a6 b4a6 b4a6 b4a6 -3176 b4a7 b4a7 b4a7 * 5f4c * 8ea1dfcc,dfcc,8ea1dfccv,dfccv 63ee e68fae 63ee 000063ee b4a7 b4a7 b4a7 b4a7 b4a7 b4a7 b4a7 -3177 b4a8 b4a8 b4a8 * 5f4d * 8ea1dfcd,dfcd,8ea1dfcdv,dfcdv 6376 e68db6 6376 00006376 b4a8 b4a8 b4a8 b4a8 b4a8 b4a8 b4a8 -3178 b4a9 b4a9 b4a9 * 5f4e * 8ea1dfce,dfce,8ea1dfcev,dfcev 63f4 e68fb4 63f4 000063f4 b4a9 b4a9 b4a9 b4a9 b4a9 b4a9 b4a9 -3179 b4aa b4aa b4aa * 5f4f * 8ea1dfcf,dfcf,8ea1dfcfv,dfcfv 63ea e68faa 63ea 000063ea b4aa b4aa b4aa b4aa b4aa b4aa b4aa -3180 b4ab b4ab b4ab * 5f50 * 8ea1dfd0,dfd0,8ea1dfd0v,dfd0v 63db e68f9b 63db 000063db b4ab b4ab b4ab b4ab b4ab b4ab b4ab -3181 b4ac b4ac b4ac * 5f51 * 8ea1dfd1,dfd1,8ea1dfd1v,dfd1v 6452 e69192 6452 00006452 b4ac b4ac b4ac b4ac b4ac b4ac b4ac -3182 b4ad b4ad b4ad * 5f52 * 8ea1dfd2,dfd2,8ea1dfd2v,dfd2v 63da e68f9a 63da 000063da b4ad b4ad b4ad b4ad b4ad b4ad b4ad -3183 b4ae b4ae b4ae * 5f53 * 8ea1dfd3,dfd3,8ea1dfd3v,dfd3v 63f9 e68fb9 63f9 000063f9 b4ae b4ae b4ae b4ae b4ae b4ae b4ae -3184 b4af b4af b4af * 5f54 * 8ea1dfd4,dfd4,8ea1dfd4v,dfd4v 655e e6959e 655e 0000655e b4af b4af b4af b4af b4af b4af b4af -3185 b4b0 b4b0 b4b0 * 5f55 * 8ea1dfd5,dfd5,8ea1dfd5v,dfd5v 6566 e695a6 6566 00006566 b4b0 b4b0 b4b0 b4b0 b4b0 b4b0 b4b0 -3186 b4b1 b4b1 b4b1 * 5f56 * 8ea1dfd6,dfd6,8ea1dfd6v,dfd6v 6562 e695a2 6562 00006562 b4b1 b4b1 b4b1 b4b1 b4b1 b4b1 b4b1 -3187 b4b2 b4b2 b4b2 * 5f57 * 8ea1dfd7,dfd7,8ea1dfd7v,dfd7v 6563 e695a3 6563 00006563 b4b2 b4b2 b4b2 b4b2 b4b2 b4b2 b4b2 -3188 b4b3 b4b3 b4b3 * 5f58 * 8ea1dfd8,dfd8,8ea1dfd8v,dfd8v 6591 e69691 6591 00006591 b4b3 b4b3 b4b3 b4b3 b4b3 b4b3 b4b3 -3189 b4b4 b4b4 b4b4 * 5f59 * 8ea1dfd9,dfd9,8ea1dfd9v,dfd9v 6590 e69690 6590 00006590 b4b4 b4b4 b4b4 b4b4 b4b4 b4b4 b4b4 -3190 b4b5 b4b5 b4b5 * 5f5a * 8ea1dfda,dfda,8ea1dfdav,dfdav 65af e696af 65af 000065af b4b5 b4b5 b4b5 b4b5 b4b5 b4b5 b4b5 -3191 b4b6 b4b6 b4b6 * 5f5b * 8ea1dfdb,dfdb,8ea1dfdbv,dfdbv 666e e699ae 666e 0000666e b4b6 b4b6 b4b6 b4b6 b4b6 b4b6 b4b6 -3192 b4b7 b4b7 b4b7 * 5f5c * 8ea1dfdc,dfdc,8ea1dfdcv,dfdcv 6670 e699b0 6670 00006670 b4b7 b4b7 b4b7 b4b7 b4b7 b4b7 b4b7 -3193 b4b8 b4b8 b4b8 * 5f5d * 8ea1dfdd,dfdd,8ea1dfddv,dfddv 6674 e699b4,ee86ba 6674,e1ba 00006674,0000e1ba fce2,b4b8 b4b8 b4b8 b4b8 b4b8 b4b8 fce2,b4b8 -3194 b4b9 b4b9 b4b9 * 5f5e * 8ea1dfde,dfde,8ea1dfdev,dfdev 6676 e699b6 6676 00006676 b4b9 b4b9 b4b9 b4b9 b4b9 b4b9 b4b9 -3195 b4ba b4ba b4ba * 5f5f * 8ea1dfdf,dfdf,8ea1dfdfv,dfdfv 666f e699af 666f 0000666f b4ba b4ba b4ba b4ba b4ba b4ba b4ba -3196 b4bb b4bb b4bb * 5f60 * 8ea1dfe0,dfe0,8ea1dfe0v,dfe0v 6691 e69a91 6691 00006691 b4bb b4bb b4bb b4bb b4bb b4bb b4bb -3197 b4bc b4bc b4bc * 5f61 * 8ea1dfe1,dfe1,8ea1dfe1v,dfe1v 667a e699ba 667a 0000667a b4bc b4bc b4bc b4bc b4bc b4bc b4bc -3198 b4bd b4bd b4bd * 5f62 * 8ea1dfe2,dfe2,8ea1dfe2v,dfe2v 667e e699be 667e 0000667e b4bd b4bd b4bd b4bd b4bd b4bd b4bd -3199 b4be b4be b4be * 5f63 * 8ea1dfe3,dfe3,8ea1dfe3v,dfe3v 6677 e699b7 6677 00006677 b4be b4be b4be b4be b4be b4be b4be -3200 b4bf b4bf b4bf * 5f64 * 8ea1dfe4,dfe4,8ea1dfe4v,dfe4v 66fe e69bbe 66fe 000066fe b4bf b4bf b4bf b4bf b4bf b4bf b4bf -3201 b4c0 b4c0 b4c0 * 5f65 * 8ea1dfe5,dfe5,8ea1dfe5v,dfe5v 66ff e69bbf 66ff 000066ff b4c0 b4c0 b4c0 b4c0 b4c0 b4c0 b4c0 -3202 b4c1 b4c1 b4c1 * 5f66 * 8ea1dfe6,dfe6,8ea1dfe6v,dfe6v 671f e69c9f 671f 0000671f b4c1 b4c1 b4c1 b4c1 b4c1 b4c1 b4c1 -3203 b4c2 b4c2 b4c2 * 5f67 * 8ea1dfe7,dfe7,8ea1dfe7v,dfe7v 671d e69c9d 671d 0000671d b4c2 b4c2 b4c2 b4c2 b4c2 b4c2 b4c2 -3204 b4c3 b4c3 b4c3 * 5f68 * 8ea1dfe8,dfe8,8ea1dfe8v,dfe8v 68fa e6a3ba 68fa 000068fa b4c3 b4c3 b4c3 b4c3 b4c3 b4c3 b4c3 -3205 b4c4 b4c4 b4c4 * 5f69 * 8ea1dfe9,dfe9,8ea1dfe9v,dfe9v 68d5 e6a395 68d5 000068d5 b4c4 b4c4 b4c4 b4c4 b4c4 b4c4 b4c4 -3206 b4c5 b4c5 b4c5 * 5f6a * 8ea1dfea,dfea,8ea1dfeav,dfeav 68e0 e6a3a0 68e0 000068e0 b4c5 b4c5 b4c5 b4c5 b4c5 b4c5 b4c5 -3207 b4c6 b4c6 b4c6 * 5f6b * 8ea1dfeb,dfeb,8ea1dfebv,dfebv 68d8 e6a398 68d8 000068d8 b4c6 b4c6 b4c6 b4c6 b4c6 b4c6 b4c6 -3208 b4c7 b4c7 b4c7 * 5f6c * 8ea1dfec,dfec,8ea1dfecv,dfecv 68d7 e6a397 68d7 000068d7 b4c7 b4c7 b4c7 b4c7 b4c7 b4c7 b4c7 -3209 b4c8 b4c8 b4c8 * 5f6d * 8ea1dfed,dfed,8ea1dfedv,dfedv 6905 e6a485 6905 00006905 b4c8 b4c8 b4c8 b4c8 b4c8 b4c8 b4c8 -3210 b4c9 b4c9 b4c9 * 5f6e * 8ea1dfee,dfee,8ea1dfeev,dfeev 68df e6a39f 68df 000068df b4c9 b4c9 b4c9 b4c9 b4c9 b4c9 b4c9 -3211 b4ca b4ca b4ca * 5f6f * 8ea1dfef,dfef,8ea1dfefv,dfefv 68f5 e6a3b5 68f5 000068f5 b4ca b4ca b4ca b4ca b4ca b4ca b4ca -3212 b4cb b4cb b4cb * 5f70 * 8ea1dff0,dff0,8ea1dff0v,dff0v 68ee e6a3ae 68ee 000068ee b4cb b4cb b4cb b4cb b4cb b4cb b4cb -3213 b4cc b4cc b4cc * 5f71 * 8ea1dff1,dff1,8ea1dff1v,dff1v 68e7 e6a3a7 68e7 000068e7 b4cc b4cc b4cc b4cc b4cc b4cc b4cc -3214 b4cd b4cd b4cd * 5f72 * 8ea1dff2,dff2,8ea1dff2v,dff2v 68f9 e6a3b9 68f9 000068f9 b4cd b4cd b4cd b4cd b4cd b4cd b4cd -3215 b4ce b4ce b4ce * 5f73 * 8ea1dff3,dff3,8ea1dff3v,dff3v 68d2 e6a392 68d2 000068d2 b4ce b4ce b4ce b4ce b4ce b4ce b4ce -3216 b4cf b4cf b4cf * 5f74 * 8ea1dff4,dff4,8ea1dff4v,dff4v 68f2 e6a3b2 68f2 000068f2 b4cf b4cf b4cf b4cf b4cf b4cf b4cf -3217 b4d0 b4d0 b4d0 * 5f75 * 8ea1dff5,dff5,8ea1dff5v,dff5v 68e3 e6a3a3 68e3 000068e3 b4d0 b4d0 b4d0 b4d0 b4d0 b4d0 b4d0 -3218 b4d1 b4d1 b4d1 * 5f76 * 8ea1dff6,dff6,8ea1dff6v,dff6v 68cb e6a38b 68cb 000068cb b4d1 b4d1 b4d1 b4d1 b4d1 b4d1 b4d1 -3219 b4d2 b4d2 b4d2 * 5f77 * 8ea1dff7,dff7,8ea1dff7v,dff7v 68cd e6a38d 68cd 000068cd b4d2 b4d2 b4d2 b4d2 b4d2 b4d2 b4d2 -3220 b4d3 b4d3 b4d3 * 5f78 * 8ea1dff8,dff8,8ea1dff8v,dff8v 690d e6a48d 690d 0000690d b4d3 b4d3 b4d3 b4d3 b4d3 b4d3 b4d3 -3221 b4d4 b4d4 b4d4 * 5f79 * 8ea1dff9,dff9,8ea1dff9v,dff9v 6912 e6a492 6912 00006912 b4d4 b4d4 b4d4 b4d4 b4d4 b4d4 b4d4 -3222 b4d5 b4d5 b4d5 * 5f7a * 8ea1dffa,dffa,8ea1dffav,dffav 690e e6a48e 690e 0000690e b4d5 b4d5 b4d5 b4d5 b4d5 b4d5 b4d5 -3223 b4d6 b4d6 b4d6 * 5f7b * 8ea1dffb,dffb,8ea1dffbv,dffbv 68c9 e6a389 68c9 000068c9 b4d6 b4d6 b4d6 b4d6 b4d6 b4d6 b4d6 -3224 b4d7 b4d7 b4d7 * 5f7c * 8ea1dffc,dffc,8ea1dffcv,dffcv 68da e6a39a 68da 000068da b4d7 b4d7 b4d7 b4d7 b4d7 b4d7 b4d7 -3225 b4d8 b4d8 b4d8 * 5f7d * 8ea1dffd,dffd,8ea1dffdv,dffdv 696e e6a5ae 696e 0000696e b4d8 b4d8 b4d8 b4d8 b4d8 b4d8 b4d8 -3226 b4d9 b4d9 b4d9 * 5f7e * 8ea1dffe,dffe,8ea1dffev,dffev 68fb e6a3bb 68fb 000068fb b4d9 b4d9 b4d9 b4d9 b4d9 b4d9 b4d9 -3227 b4da b4da b4da * 6021 * 8ea1e0a1,e0a1,8ea1e0a1v,e0a1v 6b3e e6acbe 6b3e 00006b3e b4da b4da b4da b4da b4da b4da b4da -3228 b4db b4db b4db * 6022 * 8ea1e0a2,e0a2,8ea1e0a2v,e0a2v 6b3a e6acba 6b3a 00006b3a b4db b4db b4db b4db b4db b4db b4db -3229 b4dc b4dc b4dc * 6023 * 8ea1e0a3,e0a3,8ea1e0a3v,e0a3v 6b3d e6acbd 6b3d 00006b3d b4dc b4dc b4dc b4dc b4dc b4dc b4dc -3230 b4dd b4dd b4dd * 6024 * 8ea1e0a4,e0a4,8ea1e0a4v,e0a4v 6b98 e6ae98 6b98 00006b98 b4dd b4dd b4dd b4dd b4dd b4dd b4dd -3231 b4de b4de b4de * 6025 * 8ea1e0a5,e0a5,8ea1e0a5v,e0a5v 6b96 e6ae96 6b96 00006b96 b4de b4de b4de b4de b4de b4de b4de -3232 b4df b4df b4df * 6026 * 8ea1e0a6,e0a6,8ea1e0a6v,e0a6v 6bbc e6aebc 6bbc 00006bbc b4df b4df b4df b4df b4df b4df b4df -3233 b4e0 b4e0 b4e0 * 6027 * 8ea1e0a7,e0a7,8ea1e0a7v,e0a7v 6bef e6afaf 6bef 00006bef b4e0 b4e0 b4e0 b4e0 b4e0 b4e0 b4e0 -3234 b4e1 b4e1 b4e1 * 6028 * 8ea1e0a8,e0a8,8ea1e0a8v,e0a8v 6c2e e6b0ae 6c2e 00006c2e b4e1 b4e1 b4e1 b4e1 b4e1 b4e1 b4e1 -3235 b4e2 b4e2 b4e2 * 6029 * 8ea1e0a9,e0a9,8ea1e0a9v,e0a9v 6c2f e6b0af 6c2f 00006c2f b4e2 b4e2 b4e2 b4e2 b4e2 b4e2 b4e2 -3236 b4e3 b4e3 b4e3 * 602a * 8ea1e0aa,e0aa,8ea1e0aav,e0aav 6c2c e6b0ac 6c2c 00006c2c b4e3 b4e3 b4e3 b4e3 b4e3 b4e3 b4e3 -3237 b4e4 b4e4 b4e4 * 602b * 8ea1e0ab,e0ab,8ea1e0abv,e0abv 6e2f e6b8af,ee88b0 6e2f,e230 00006e2f,0000e230 fdbb,b4e4 b4e4 b4e4 b4e4 b4e4 b4e4 fdbb,b4e4 -3238 b4e5 b4e5 b4e5 * 602c * 8ea1e0ac,e0ac,8ea1e0acv,e0acv 6e38 e6b8b8 6e38 00006e38 b4e5 b4e5 b4e5 b4e5 b4e5 b4e5 b4e5 -3239 b4e6 b4e6 b4e6 * 602d * 8ea1e0ad,e0ad,8ea1e0adv,e0adv 6e54 e6b994 6e54 00006e54 b4e6 b4e6 b4e6 b4e6 b4e6 b4e6 b4e6 -3240 b4e7 b4e7 b4e7 * 602e * 8ea1e0ae,e0ae,8ea1e0aev,e0aev 6e21 e6b8a1 6e21 00006e21 b4e7 b4e7 b4e7 b4e7 b4e7 b4e7 b4e7 -3241 b4e8 b4e8 b4e8 * 602f * 8ea1e0af,e0af,8ea1e0afv,e0afv 6e32 e6b8b2 6e32 00006e32 b4e8 b4e8 b4e8 b4e8 b4e8 b4e8 b4e8 -3242 b4e9 b4e9 b4e9 * 6030 * 8ea1e0b0,e0b0,8ea1e0b0v,e0b0v 6e67 e6b9a7 6e67 00006e67 b4e9 b4e9 b4e9 b4e9 b4e9 b4e9 b4e9 -3243 b4ea b4ea b4ea * 6031 * 8ea1e0b1,e0b1,8ea1e0b1v,e0b1v 6e4a e6b98a 6e4a 00006e4a b4ea b4ea b4ea b4ea b4ea b4ea b4ea -3244 b4eb b4eb b4eb * 6032 * 8ea1e0b2,e0b2,8ea1e0b2v,e0b2v 6e20 e6b8a0 6e20 00006e20 b4eb b4eb b4eb b4eb b4eb b4eb b4eb -3245 b4ec b4ec b4ec * 6033 * 8ea1e0b3,e0b3,8ea1e0b3v,e0b3v 6e25 e6b8a5 6e25 00006e25 b4ec b4ec b4ec b4ec b4ec b4ec b4ec -3246 b4ed b4ed b4ed * 6034 * 8ea1e0b4,e0b4,8ea1e0b4v,e0b4v 6e23 e6b8a3 6e23 00006e23 b4ed b4ed b4ed b4ed b4ed b4ed b4ed -3247 b4ee b4ee b4ee * 6035 * 8ea1e0b5,e0b5,8ea1e0b5v,e0b5v 6e1b e6b89b 6e1b 00006e1b b4ee b4ee b4ee b4ee b4ee b4ee b4ee -3248 b4ef b4ef b4ef * 6036 * 8ea1e0b6,e0b6,8ea1e0b6v,e0b6v 6e5b e6b99b 6e5b 00006e5b b4ef b4ef b4ef b4ef b4ef b4ef b4ef -3249 b4f0 b4f0 b4f0 * 6037 * 8ea1e0b7,e0b7,8ea1e0b7v,e0b7v 6e58 e6b998 6e58 00006e58 b4f0 b4f0 b4f0 b4f0 b4f0 b4f0 b4f0 -3250 b4f1 b4f1 b4f1 * 6038 * 8ea1e0b8,e0b8,8ea1e0b8v,e0b8v 6e24 e6b8a4 6e24 00006e24 b4f1 b4f1 b4f1 b4f1 b4f1 b4f1 b4f1 -3251 b4f2 b4f2 b4f2 * 6039 * 8ea1e0b9,e0b9,8ea1e0b9v,e0b9v 6e56 e6b996 6e56 00006e56 b4f2 b4f2 b4f2 b4f2 b4f2 b4f2 b4f2 -3252 b4f3 b4f3 b4f3 * 603a * 8ea1e0ba,e0ba,8ea1e0bav,e0bav 6e6e e6b9ae 6e6e 00006e6e b4f3 b4f3 b4f3 b4f3 b4f3 b4f3 b4f3 -3253 b4f4 b4f4 b4f4 * 603b * 8ea1e0bb,e0bb,8ea1e0bbv,e0bbv 6e2d e6b8ad 6e2d 00006e2d b4f4 b4f4 b4f4 b4f4 b4f4 b4f4 b4f4 -3254 b4f5 b4f5 b4f5 * 603c * 8ea1e0bc,e0bc,8ea1e0bcv,e0bcv 6e26 e6b8a6 6e26 00006e26 b4f5 b4f5 b4f5 b4f5 b4f5 b4f5 b4f5 -3255 b4f6 b4f6 b4f6 * 603d * 8ea1e0bd,e0bd,8ea1e0bdv,e0bdv 6e6f e6b9af 6e6f 00006e6f b4f6 b4f6 b4f6 b4f6 b4f6 b4f6 b4f6 -3256 b4f7 b4f7 b4f7 * 603e * 8ea1e0be,e0be,8ea1e0bev,e0bev 6e34 e6b8b4 6e34 00006e34 b4f7 b4f7 b4f7 b4f7 b4f7 b4f7 b4f7 -3257 b4f8 b4f8 b4f8 * 603f * 8ea1e0bf,e0bf,8ea1e0bfv,e0bfv 6e4d e6b98d 6e4d 00006e4d b4f8 b4f8 b4f8 b4f8 b4f8 b4f8 b4f8 -3258 b4f9 b4f9 b4f9 * 6040 * 8ea1e0c0,e0c0,8ea1e0c0v,e0c0v 6e3a e6b8ba 6e3a 00006e3a b4f9 b4f9 b4f9 b4f9 b4f9 b4f9 b4f9 -3259 b4fa b4fa b4fa * 6041 * 8ea1e0c1,e0c1,8ea1e0c1v,e0c1v 6e2c e6b8ac 6e2c 00006e2c b4fa b4fa b4fa b4fa b4fa b4fa b4fa -3260 b4fb b4fb b4fb * 6042 * 8ea1e0c2,e0c2,8ea1e0c2v,e0c2v 6e43 e6b983 6e43 00006e43 b4fb b4fb b4fb b4fb b4fb b4fb b4fb -3261 b4fc b4fc b4fc * 6043 * 8ea1e0c3,e0c3,8ea1e0c3v,e0c3v 6e1d e6b89d,ee88ad 6e1d,e22d 00006e1d,0000e22d fdb8,b4fc b4fc b4fc b4fc b4fc b4fc fdb8,b4fc -3262 b4fd b4fd b4fd * 6044 * 8ea1e0c4,e0c4,8ea1e0c4v,e0c4v 6e3e e6b8be 6e3e 00006e3e b4fd b4fd b4fd b4fd b4fd b4fd b4fd -3263 b4fe b4fe b4fe * 6045 * 8ea1e0c5,e0c5,8ea1e0c5v,e0c5v 6ecb e6bb8b 6ecb 00006ecb b4fe b4fe b4fe b4fe b4fe b4fe b4fe -3264 b540 b540 b540 * 6046 * 8ea1e0c6,e0c6,8ea1e0c6v,e0c6v 6e89 e6ba89 6e89 00006e89 b540 b540 b540 b540 b540 b540 b540 -3265 b541 b541 b541 * 6047 * 8ea1e0c7,e0c7,8ea1e0c7v,e0c7v 6e19 e6b899 6e19 00006e19 b541 b541 b541 b541 b541 b541 b541 -3266 b542 b542 b542 * 6048 * 8ea1e0c8,e0c8,8ea1e0c8v,e0c8v 6e4e e6b98e 6e4e 00006e4e b542 b542 b542 b542 b542 b542 b542 -3267 b543 b543 b543 * 6049 * 8ea1e0c9,e0c9,8ea1e0c9v,e0c9v 6e63 e6b9a3 6e63 00006e63 b543 b543 b543 b543 b543 b543 b543 -3268 b544 b544 b544 * 604a * 8ea1e0ca,e0ca,8ea1e0cav,e0cav 6e44 e6b984 6e44 00006e44 b544 b544 b544 b544 b544 b544 b544 -3269 b545 b545 b545 * 604b * 8ea1e0cb,e0cb,8ea1e0cbv,e0cbv 6e72 e6b9b2 6e72 00006e72 b545 b545 b545 b545 b545 b545 b545 -3270 b546 b546 b546 * 604c * 8ea1e0cc,e0cc,8ea1e0ccv,e0ccv 6e69 e6b9a9 6e69 00006e69 b546 b546 b546 b546 b546 b546 b546 -3271 b547 b547 b547 * 604d * 8ea1e0cd,e0cd,8ea1e0cdv,e0cdv 6e5f e6b99f 6e5f 00006e5f b547 b547 b547 b547 b547 b547 b547 -3272 b548 b548 b548 * 604e * 8ea1e0ce,e0ce,8ea1e0cev,e0cev 7119 e78499 7119 00007119 b548 b548 b548 b548 b548 b548 b548 -3273 b549 b549 b549 * 604f * 8ea1e0cf,e0cf,8ea1e0cfv,e0cfv 711a e7849a 711a 0000711a b549 b549 b549 b549 b549 b549 b549 -3274 b54a b54a b54a * 6050 * 8ea1e0d0,e0d0,8ea1e0d0v,e0d0v 7126 e784a6 7126 00007126 b54a b54a b54a b54a b54a b54a b54a -3275 b54b b54b b54b * 6051 * 8ea1e0d1,e0d1,8ea1e0d1v,e0d1v 7130 e784b0 7130 00007130 b54b b54b b54b b54b b54b b54b b54b -3276 b54c b54c b54c * 6052 * 8ea1e0d2,e0d2,8ea1e0d2v,e0d2v 7121 e784a1 7121 00007121 b54c b54c b54c b54c b54c b54c b54c -3277 b54d b54d b54d * 6053 * 8ea1e0d3,e0d3,8ea1e0d3v,e0d3v 7136 e784b6 7136 00007136 b54d b54d b54d b54d b54d b54d b54d -3278 b54e b54e b54e * 6054 * 8ea1e0d4,e0d4,8ea1e0d4v,e0d4v 716e e785ae,ee89a6 716e,e266 0000716e,0000e266 fdf1,b54e b54e b54e b54e b54e b54e fdf1,b54e -3279 b54f b54f b54f * 6055 * 8ea1e0d5,e0d5,8ea1e0d5v,e0d5v 711c e7849c 711c 0000711c b54f b54f b54f b54f b54f b54f b54f -3280 b550 b550 b550 * 6056 * 8ea1e0d6,e0d6,8ea1e0d6v,e0d6v 724c e7898c 724c 0000724c b550 b550 b550 b550 b550 b550 b550 -3281 b551 b551 b551 * 6057 * 8ea1e0d7,e0d7,8ea1e0d7v,e0d7v 7284 e78a84 7284 00007284 b551 b551 b551 b551 b551 b551 b551 -3282 b552 b552 b552 * 6058 * 8ea1e0d8,e0d8,8ea1e0d8v,e0d8v 7280 e78a80 7280 00007280 b552 b552 b552 b552 b552 b552 b552 -3283 b553 b553 b553 * 6059 * 8ea1e0d9,e0d9,8ea1e0d9v,e0d9v 7336 e78cb6 7336 00007336 b553 b553 b553 b553 b553 b553 b553 -3284 b554 b554 b554 * 605a * 8ea1e0da,e0da,8ea1e0dav,e0dav 7325 e78ca5 7325 00007325 b554 b554 b554 b554 b554 b554 b554 -3285 b555 b555 b555 * 605b * 8ea1e0db,e0db,8ea1e0dbv,e0dbv 7334 e78cb4 7334 00007334 b555 b555 b555 b555 b555 b555 b555 -3286 b556 b556 b556 * 605c * 8ea1e0dc,e0dc,8ea1e0dcv,e0dcv 7329 e78ca9 7329 00007329 b556 b556 b556 b556 b556 b556 b556 -3287 b557 b557 b557 * 605d * 8ea1e0dd,e0dd,8ea1e0ddv,e0ddv 743a e790ba 743a 0000743a b557 b557 b557 b557 b557 b557 b557 -3288 b558 b558 b558 * 605e * 8ea1e0de,e0de,8ea1e0dev,e0dev 742a e790aa 742a 0000742a b558 b558 b558 b558 b558 b558 b558 -3289 b559 b559 b559 * 605f * 8ea1e0df,e0df,8ea1e0dfv,e0dfv 7433 e790b3 7433 00007433 b559 b559 b559 b559 b559 b559 b559 -3290 b55a b55a b55a * 6060 * 8ea1e0e0,e0e0,8ea1e0e0v,e0e0v 7422 e790a2 7422 00007422 b55a b55a b55a b55a b55a b55a b55a -3291 b55b b55b b55b * 6061 * 8ea1e0e1,e0e1,8ea1e0e1v,e0e1v 7425 e790a5 7425 00007425 b55b b55b b55b b55b b55b b55b b55b -3292 b55c b55c b55c * 6062 * 8ea1e0e2,e0e2,8ea1e0e2v,e0e2v 7435 e790b5 7435 00007435 b55c b55c b55c b55c b55c b55c b55c -3293 b55d b55d b55d * 6063 * 8ea1e0e3,e0e3,8ea1e0e3v,e0e3v 7436 e790b6 7436 00007436 b55d b55d b55d b55d b55d b55d b55d -3294 b55e b55e b55e * 6064 * 8ea1e0e4,e0e4,8ea1e0e4v,e0e4v 7434 e790b4 7434 00007434 b55e b55e b55e b55e b55e b55e b55e -3295 b55f b55f b55f * 6065 * 8ea1e0e5,e0e5,8ea1e0e5v,e0e5v 742f e790af 742f 0000742f b55f b55f b55f b55f b55f b55f b55f -3296 b560 b560 b560 * 6066 * 8ea1e0e6,e0e6,8ea1e0e6v,e0e6v 741b e7909b 741b 0000741b b560 b560 b560 b560 b560 b560 b560 -3297 b561 b561 b561 * 6067 * 8ea1e0e7,e0e7,8ea1e0e7v,e0e7v 7426 e790a6 7426 00007426 b561 b561 b561 b561 b561 b561 b561 -3298 b562 b562 b562 * 6068 * 8ea1e0e8,e0e8,8ea1e0e8v,e0e8v 7428 e790a8 7428 00007428 b562 b562 b562 b562 b562 b562 b562 -3299 b563 b563 b563 * 6069 * 8ea1e0e9,e0e9,8ea1e0e9v,e0e9v 7525 e794a5 7525 00007525 b563 b563 b563 b563 b563 b563 b563 -3300 b564 b564 b564 * 606a * 8ea1e0ea,e0ea,8ea1e0eav,e0eav 7526 e794a6 7526 00007526 b564 b564 b564 b564 b564 b564 b564 -3301 b565 b565 b565 * 606b * 8ea1e0eb,e0eb,8ea1e0ebv,e0ebv 756b e795ab 756b 0000756b b565 b565 b565 b565 b565 b565 b565 -3302 b566 b566 b566 * 606c * 8ea1e0ec,e0ec,8ea1e0ecv,e0ecv 756a e795aa 756a 0000756a b566 b566 b566 b566 b566 b566 b566 -3303 b567 b567 b567 * 606d * 8ea1e0ed,e0ed,8ea1e0edv,e0edv 75e2 e797a2 75e2 000075e2 b567 b567 b567 b567 b567 b567 b567 -3304 b568 b568 b568 * 606e * 8ea1e0ee,e0ee,8ea1e0eev,e0eev 75db e7979b 75db 000075db b568 b568 b568 b568 b568 b568 b568 -3305 b569 b569 b569 * 606f * 8ea1e0ef,e0ef,8ea1e0efv,e0efv 75e3 e797a3 75e3 000075e3 b569 b569 b569 b569 b569 b569 b569 -3306 b56a b56a b56a * 6070 * 8ea1e0f0,e0f0,8ea1e0f0v,e0f0v 75d9 e79799 75d9 000075d9 b56a b56a b56a b56a b56a b56a b56a -3307 b56b b56b b56b * 6071 * 8ea1e0f1,e0f1,8ea1e0f1v,e0f1v 75d8 e79798 75d8 000075d8 b56b b56b b56b b56b b56b b56b b56b -3308 b56c b56c b56c * 6072 * 8ea1e0f2,e0f2,8ea1e0f2v,e0f2v 75de e7979e 75de 000075de b56c b56c b56c b56c b56c b56c b56c -3309 b56d b56d b56d * 6073 * 8ea1e0f3,e0f3,8ea1e0f3v,e0f3v 75e0 e797a0 75e0 000075e0 b56d b56d b56d b56d b56d b56d b56d -3310 b56e b56e b56e * 6074 * 8ea1e0f4,e0f4,8ea1e0f4v,e0f4v 767b e799bb 767b 0000767b b56e b56e b56e b56e b56e b56e b56e -3311 b56f b56f b56f * 6075 * 8ea1e0f5,e0f5,8ea1e0f5v,e0f5v 767c e799bc 767c 0000767c b56f b56f b56f b56f b56f b56f b56f -3312 b570 b570 b570 * 6076 * 8ea1e0f6,e0f6,8ea1e0f6v,e0f6v 7696 e79a96 7696 00007696 b570 b570 b570 b570 b570 b570 b570 -3313 b571 b571 b571 * 6077 * 8ea1e0f7,e0f7,8ea1e0f7v,e0f7v 7693 e79a93 7693 00007693 b571 b571 b571 b571 b571 b571 b571 -3314 b572 b572 b572 * 6078 * 8ea1e0f8,e0f8,8ea1e0f8v,e0f8v 76b4 e79ab4 76b4 000076b4 b572 b572 b572 b572 b572 b572 b572 -3315 b573 b573 b573 * 6079 * 8ea1e0f9,e0f9,8ea1e0f9v,e0f9v 76dc e79b9c 76dc 000076dc b573 b573 b573 b573 b573 b573 b573 -3316 b574 b574 b574 * 607a * 8ea1e0fa,e0fa,8ea1e0fav,e0fav 774f e79d8f 774f 0000774f b574 b574 b574 b574 b574 b574 b574 -3317 b575 b575 b575 * 607b * 8ea1e0fb,e0fb,8ea1e0fbv,e0fbv 77ed e79fad 77ed 000077ed b575 b575 b575 b575 b575 b575 b575 -3318 b576 b576 b576 * 607c * 8ea1e0fc,e0fc,8ea1e0fcv,e0fcv 785d e7a19d 785d 0000785d b576 b576 b576 b576 b576 b576 b576 -3319 b577 b577 b577 * 607d * 8ea1e0fd,e0fd,8ea1e0fdv,e0fdv 786c e7a1ac 786c 0000786c b577 b577 b577 b577 b577 b577 b577 -3320 b578 b578 b578 * 607e * 8ea1e0fe,e0fe,8ea1e0fev,e0fev 786f e7a1af 786f 0000786f b578 b578 b578 b578 b578 b578 b578 -3321 b579 b579 b579 * 6121 * 8ea1e1a1,e1a1,8ea1e1a1v,e1a1v 7a0d e7a88d 7a0d 00007a0d b579 b579 b579 b579 b579 b579 b579 -3322 b57a b57a b57a * 6122 * 8ea1e1a2,e1a2,8ea1e1a2v,e1a2v 7a08 e7a888 7a08 00007a08 b57a b57a b57a b57a b57a b57a b57a -3323 b57b b57b b57b * 6123 * 8ea1e1a3,e1a3,8ea1e1a3v,e1a3v 7a0b e7a88b 7a0b 00007a0b b57b b57b b57b b57b b57b b57b b57b -3324 b57c b57c b57c * 6124 * 8ea1e1a4,e1a4,8ea1e1a4v,e1a4v 7a05 e7a885 7a05 00007a05 b57c b57c b57c b57c b57c b57c b57c -3325 b57d b57d b57d * 6125 * 8ea1e1a5,e1a5,8ea1e1a5v,e1a5v 7a00 e7a880 7a00 00007a00 b57d b57d b57d b57d b57d b57d b57d -3326 b57e b57e b57e * 6126 * 8ea1e1a6,e1a6,8ea1e1a6v,e1a6v 7a98 e7aa98 7a98 00007a98 b57e b57e b57e b57e b57e b57e b57e -3327 b5a1 b5a1 b5a1 * 6127 * 8ea1e1a7,e1a7,8ea1e1a7v,e1a7v 7a97 e7aa97 7a97 00007a97 b5a1 b5a1 b5a1 b5a1 b5a1 b5a1 b5a1 -3328 b5a2 b5a2 b5a2 * 6128 * 8ea1e1a8,e1a8,8ea1e1a8v,e1a8v 7a96 e7aa96 7a96 00007a96 b5a2 b5a2 b5a2 b5a2 b5a2 b5a2 b5a2 -3329 b5a3 b5a3 b5a3 * 6129 * 8ea1e1a9,e1a9,8ea1e1a9v,e1a9v 7ae5 e7aba5 7ae5 00007ae5 b5a3 b5a3 b5a3 b5a3 b5a3 b5a3 b5a3 -3330 b5a4 b5a4 b5a4 * 612a * 8ea1e1aa,e1aa,8ea1e1aav,e1aav 7ae3 e7aba3 7ae3 00007ae3 b5a4 b5a4 b5a4 b5a4 b5a4 b5a4 b5a4 -3331 b5a5 b5a5 b5a5 * 612b * 8ea1e1ab,e1ab,8ea1e1abv,e1abv 7b49 e7ad89 7b49 00007b49 b5a5 b5a5 b5a5 b5a5 b5a5 b5a5 b5a5 -3332 b5a6 b5a6 b5a6 * 612c * 8ea1e1ac,e1ac,8ea1e1acv,e1acv 7b56 e7ad96 7b56 00007b56 b5a6 b5a6 b5a6 b5a6 b5a6 b5a6 b5a6 -3333 b5a7 b5a7 b5a7 * 612d * 8ea1e1ad,e1ad,8ea1e1adv,e1adv 7b46 e7ad86 7b46 00007b46 b5a7 b5a7 b5a7 b5a7 b5a7 b5a7 b5a7 -3334 b5a8 b5a8 b5a8 * 612e * 8ea1e1ae,e1ae,8ea1e1aev,e1aev 7b50 e7ad90 7b50 00007b50 b5a8 b5a8 b5a8 b5a8 b5a8 b5a8 b5a8 -3335 b5a9 b5a9 b5a9 * 612f * 8ea1e1af,e1af,8ea1e1afv,e1afv 7b52 e7ad92 7b52 00007b52 b5a9 b5a9 b5a9 b5a9 b5a9 b5a9 b5a9 -3336 b5aa b5aa b5aa * 6130 * 8ea1e1b0,e1b0,8ea1e1b0v,e1b0v 7b54 e7ad94 7b54 00007b54 b5aa b5aa b5aa b5aa b5aa b5aa b5aa -3337 b5ab b5ab b5ab * 6131 * 8ea1e1b1,e1b1,8ea1e1b1v,e1b1v 7b4d e7ad8d 7b4d 00007b4d b5ab b5ab b5ab b5ab b5ab b5ab b5ab -3338 b5ac b5ac b5ac * 6132 * 8ea1e1b2,e1b2,8ea1e1b2v,e1b2v 7b4b e7ad8b 7b4b 00007b4b b5ac b5ac,fd77 91ea,b5ac b5ac b5ac b5ac b5ac -3339 b5ad b5ad b5ad * 6133 * 8ea1e1b3,e1b3,8ea1e1b3v,e1b3v 7b4f e7ad8f 7b4f 00007b4f b5ad b5ad b5ad b5ad b5ad b5ad b5ad -3340 b5ae b5ae b5ae * 6134 * 8ea1e1b4,e1b4,8ea1e1b4v,e1b4v 7b51 e7ad91,eeb19e 7b51,ec5e 00007b51,0000ec5e 9d5a,b5ae b5ae b5ae b5ae b5ae b5ae 9d5a,b5ae -3341 b5af b5af b5af * 6135 * 8ea1e1b5,e1b5,8ea1e1b5v,e1b5v 7c9f e7b29f 7c9f 00007c9f b5af b5af b5af b5af b5af b5af b5af -3342 b5b0 b5b0 b5b0 * 6136 * 8ea1e1b6,e1b6,8ea1e1b6v,e1b6v 7ca5 e7b2a5 7ca5 00007ca5 b5b0 b5b0 b5b0 b5b0 b5b0 b5b0 b5b0 -3343 b5b1 b5b1 b5b1 * 6137 * 8ea1e1b7,e1b7,8ea1e1b7v,e1b7v 7d5e e7b59e 7d5e 00007d5e b5b1 b5b1 b5b1 b5b1 b5b1 b5b1 b5b1 -3344 b5b2 b5b2 b5b2 * 6138 * 8ea1e1b8,e1b8,8ea1e1b8v,e1b8v 7d50 e7b590 7d50 00007d50 b5b2 b5b2 b5b2 b5b2 b5b2 b5b2 b5b2 -3345 b5b3 b5b3 b5b3 * 6139 * 8ea1e1b9,e1b9,8ea1e1b9v,e1b9v 7d68 e7b5a8 7d68 00007d68 b5b3 b5b3 b5b3 b5b3 b5b3 b5b3 b5b3 -3346 b5b4 b5b4 b5b4 * 613a * 8ea1e1ba,e1ba,8ea1e1bav,e1bav 7d55 e7b595 7d55 00007d55 b5b4 b5b4 b5b4 b5b4 b5b4 b5b4 b5b4 -3347 b5b5 b5b5 b5b5 * 613b * 8ea1e1bb,e1bb,8ea1e1bbv,e1bbv 7d2b e7b4ab 7d2b 00007d2b b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 -3348 b5b6 b5b6 b5b6 * 613c * 8ea1e1bc,e1bc,8ea1e1bcv,e1bcv 7d6e e7b5ae 7d6e 00007d6e b5b6 b5b6 b5b6 b5b6 b5b6 b5b6 b5b6 -3349 b5b7 b5b7 b5b7 * 613d * 8ea1e1bd,e1bd,8ea1e1bdv,e1bdv 7d72 e7b5b2 7d72 00007d72 b5b7 b5b7 b5b7 b5b7 b5b7 b5b7 b5b7 -3350 b5b8 b5b8 b5b8 * 613e * 8ea1e1be,e1be,8ea1e1bev,e1bev 7d61 e7b5a1 7d61 00007d61 b5b8 b5b8 b5b8 b5b8 b5b8 b5b8 b5b8 -3351 b5b9 b5b9 b5b9 * 613f * 8ea1e1bf,e1bf,8ea1e1bfv,e1bfv 7d66 e7b5a6 7d66 00007d66 b5b9 b5b9 b5b9 b5b9 b5b9 b5b9 b5b9 -3352 b5ba b5ba b5ba * 6140 * 8ea1e1c0,e1c0,8ea1e1c0v,e1c0v 7d62 e7b5a2 7d62 00007d62 b5ba b5ba b5ba b5ba b5ba b5ba b5ba -3353 b5bb b5bb b5bb * 6141 * 8ea1e1c1,e1c1,8ea1e1c1v,e1c1v 7d70 e7b5b0 7d70 00007d70 b5bb b5bb b5bb b5bb b5bb b5bb b5bb -3354 b5bc b5bc b5bc * 6142 * 8ea1e1c2,e1c2,8ea1e1c2v,e1c2v 7d73 e7b5b3 7d73 00007d73 b5bc b5bc b5bc b5bc b5bc b5bc b5bc -3355 b5bd b5bd b5bd * 6143 * 8ea1e1c3,e1c3,8ea1e1c3v,e1c3v 5584 e59684 5584 00005584 b5bd b5bd b5bd b5bd b5bd b5bd b5bd -3356 b5be b5be b5be * 6144 * 8ea1e1c4,e1c4,8ea1e1c4v,e1c4v 7fd4 e7bf94 7fd4 00007fd4 b5be b5be b5be b5be b5be b5be b5be -3357 b5bf b5bf b5bf * 6145 * 8ea1e1c5,e1c5,8ea1e1c5v,e1c5v 7fd5 e7bf95 7fd5 00007fd5 b5bf b5bf b5bf b5bf b5bf b5bf b5bf -3358 b5c0 b5c0 b5c0 * 6146 * 8ea1e1c6,e1c6,8ea1e1c6v,e1c6v 800b e8808b 800b 0000800b b5c0 b5c0 b5c0 b5c0 b5c0 b5c0 b5c0 -3359 b5c1 b5c1 b5c1 * 6147 * 8ea1e1c7,e1c7,8ea1e1c7v,e1c7v 8052 e88192 8052 00008052 b5c1 b5c1 b5c1 b5c1 b5c1 b5c1 b5c1 -3360 b5c2 b5c2 b5c2 * 6148 * 8ea1e1c8,e1c8,8ea1e1c8v,e1c8v 8085 e88285 8085 00008085 b5c2 b5c2 b5c2 b5c2 b5c2 b5c2 b5c2 -3361 b5c3 b5c3 b5c3 * 6149 * 8ea1e1c9,e1c9,8ea1e1c9v,e1c9v 8155 e88595 8155 00008155 b5c3 b5c3 b5c3 b5c3 b5c3 b5c3 b5c3 -3362 b5c4 b5c4 b5c4 * 614a * 8ea1e1ca,e1ca,8ea1e1cav,e1cav 8154 e88594 8154 00008154 b5c4 b5c4 b5c4 b5c4 b5c4 b5c4 b5c4 -3363 b5c5 b5c5 b5c5 * 614b * 8ea1e1cb,e1cb,8ea1e1cbv,e1cbv 814b e8858b 814b 0000814b b5c5 b5c5 b5c5 b5c5 b5c5 b5c5 b5c5 -3364 b5c6 b5c6 b5c6 * 614c * 8ea1e1cc,e1cc,8ea1e1ccv,e1ccv 8151 e88591 8151 00008151 b5c6 b5c6 b5c6 b5c6 b5c6 b5c6 b5c6 -3365 b5c7 b5c7 b5c7 * 614d * 8ea1e1cd,e1cd,8ea1e1cdv,e1cdv 814e e8858e 814e 0000814e b5c7 b5c7 b5c7 b5c7 b5c7 b5c7 b5c7 -3366 b5c8 b5c8 b5c8 * 614e * 8ea1e1ce,e1ce,8ea1e1cev,e1cev 8139 e884b9 8139 00008139 b5c8 b5c8 b5c8 b5c8 b5c8 b5c8 b5c8 -3367 b5c9 b5c9 b5c9 * 614f * 8ea1e1cf,e1cf,8ea1e1cfv,e1cfv 8146 e88586 8146 00008146 b5c9 b5c9 b5c9 b5c9 b5c9 b5c9 b5c9 -3368 b5ca b5ca b5ca * 6150 * 8ea1e1d0,e1d0,8ea1e1d0v,e1d0v 813e e884be 813e 0000813e b5ca b5ca b5ca b5ca b5ca b5ca b5ca -3369 b5cb b5cb b5cb * 6151 * 8ea1e1d1,e1d1,8ea1e1d1v,e1d1v 814c e8858c 814c 0000814c b5cb b5cb b5cb b5cb b5cb b5cb b5cb -3370 b5cc b5cc b5cc * 6152 * 8ea1e1d2,e1d2,8ea1e1d2v,e1d2v 8153 e88593 8153 00008153 b5cc b5cc,fdc2 9078,b5cc b5cc b5cc b5cc b5cc -3371 b5cd b5cd b5cd * 6153 * 8ea1e1d3,e1d3,8ea1e1d3v,e1d3v 8174 e885b4 8174 00008174 b5cd b5cd b5cd b5cd b5cd b5cd b5cd -3372 b5ce b5ce b5ce * 6154 * 8ea1e1d4,e1d4,8ea1e1d4v,e1d4v 8212 e88892 8212 00008212 b5ce b5ce b5ce b5ce b5ce b5ce b5ce -3373 b5cf b5cf b5cf * 6155 * 8ea1e1d5,e1d5,8ea1e1d5v,e1d5v 821c e8889c 821c 0000821c b5cf b5cf b5cf b5cf b5cf b5cf b5cf -3374 b5d0 b5d0 b5d0 * 6156 * 8ea1e1d6,e1d6,8ea1e1d6v,e1d6v 83e9 e88fa9 83e9 000083e9 b5d0 b5d0 b5d0 b5d0 b5d0 b5d0 b5d0 -3375 b5d1 b5d1 b5d1 * 6157 * 8ea1e1d7,e1d7,8ea1e1d7v,e1d7v 8403 e89083 8403 00008403 b5d1 b5d1 b5d1 b5d1 b5d1 b5d1 b5d1 -3376 b5d2 b5d2 b5d2 * 6158 * 8ea1e1d8,e1d8,8ea1e1d8v,e1d8v 83f8 e88fb8 83f8 000083f8 b5d2 b5d2 b5d2 b5d2 b5d2 b5d2 b5d2 -3377 b5d3 b5d3 b5d3 * 6159 * 8ea1e1d9,e1d9,8ea1e1d9v,e1d9v 840d e8908d 840d 0000840d b5d3 b5d3 b5d3 b5d3 b5d3 b5d3 b5d3 -3378 b5d4 b5d4 b5d4 * 615a * 8ea1e1da,e1da,8ea1e1dav,e1dav 83e0 e88fa0 83e0 000083e0 b5d4 b5d4 b5d4 b5d4 b5d4 b5d4 b5d4 -3379 b5d5 b5d5 b5d5 * 615b * 8ea1e1db,e1db,8ea1e1dbv,e1dbv 83c5 e88f85 83c5 000083c5 b5d5 b5d5 b5d5 b5d5 b5d5 b5d5 b5d5 -3380 b5d6 b5d6 b5d6 * 615c * 8ea1e1dc,e1dc,8ea1e1dcv,e1dcv 840b e8908b 840b 0000840b b5d6 b5d6 b5d6 b5d6 b5d6 b5d6 b5d6 -3381 b5d7 b5d7 b5d7 * 615d * 8ea1e1dd,e1dd,8ea1e1ddv,e1ddv 83c1 e88f81,ee8f85 83c1,e3c5 000083c1,0000e3c5 8f57,b5d7 b5d7 b5d7 b5d7 b5d7 b5d7 8f57,b5d7 -3382 b5d8 b5d8 b5d8 * 615e * 8ea1e1de,e1de,8ea1e1dev,e1dev 83ef e88faf 83ef 000083ef b5d8 b5d8 b5d8 b5d8 b5d8 b5d8 b5d8 -3383 b5d9 b5d9 b5d9 * 615f * 8ea1e1df,e1df,8ea1e1dfv,e1dfv 83f1 e88fb1 83f1 000083f1 b5d9 b5d9 b5d9 b5d9 b5d9 b5d9 b5d9 -3384 b5da b5da b5da * 6160 * 8ea1e1e0,e1e0,8ea1e1e0v,e1e0v 83f4 e88fb4 83f4 000083f4 b5da b5da b5da b5da b5da b5da b5da -3385 b5db b5db b5db * 6161 * 8ea1e1e1,e1e1,8ea1e1e1v,e1e1v 8457 e89197 8457 00008457 b5db b5db b5db b5db b5db b5db b5db -3386 b5dc b5dc b5dc * 6162 * 8ea1e1e2,e1e2,8ea1e1e2v,e1e2v 840a e8908a 840a 0000840a b5dc b5dc b5dc b5dc b5dc b5dc b5dc -3387 b5dd b5dd b5dd * 6163 * 8ea1e1e3,e1e3,8ea1e1e3v,e1e3v 83f0 e88fb0 83f0 000083f0 b5dd b5dd b5dd b5dd b5dd b5dd b5dd -3388 b5de b5de b5de * 6164 * 8ea1e1e4,e1e4,8ea1e1e4v,e1e4v 840c e8908c 840c 0000840c b5de b5de b5de b5de b5de b5de b5de -3389 b5df b5df b5df * 6165 * 8ea1e1e5,e1e5,8ea1e1e5v,e1e5v 83cc e88f8c 83cc 000083cc b5df b5df b5df b5df b5df b5df b5df -3390 b5e0 b5e0 b5e0 * 6166 * 8ea1e1e6,e1e6,8ea1e1e6v,e1e6v 83fd e88fbd 83fd 000083fd b5e0 b5e0 b5e0 b5e0 b5e0 b5e0 b5e0 -3391 b5e1 b5e1 b5e1 * 6167 * 8ea1e1e7,e1e7,8ea1e1e7v,e1e7v 83f2 e88fb2 83f2 000083f2 b5e1 b5e1 b5e1 b5e1 b5e1 b5e1 b5e1 -3392 b5e2 b5e2 b5e2 * 6168 * 8ea1e1e8,e1e8,8ea1e1e8v,e1e8v 83ca e88f8a 83ca 000083ca b5e2 b5e2 b5e2 b5e2 b5e2 b5e2 b5e2 -3393 b5e3 b5e3 b5e3 * 6169 * 8ea1e1e9,e1e9,8ea1e1e9v,e1e9v 8438 e890b8 8438 00008438 b5e3 b5e3 b5e3 b5e3 b5e3 b5e3 b5e3 -3394 b5e4 b5e4 b5e4 * 616a * 8ea1e1ea,e1ea,8ea1e1eav,e1eav 840e e8908e 840e 0000840e b5e4 b5e4 b5e4 b5e4 b5e4 b5e4 b5e4 -3395 b5e5 b5e5 b5e5 * 616b * 8ea1e1eb,e1eb,8ea1e1ebv,e1ebv 8404 e89084 8404 00008404 b5e5 b5e5 b5e5 b5e5 b5e5 b5e5 b5e5 -3396 b5e6 b5e6 b5e6 * 616c * 8ea1e1ec,e1ec,8ea1e1ecv,e1ecv 83dc e88f9c 83dc 000083dc b5e6 b5e6 b5e6 b5e6 b5e6 b5e6 b5e6 -3397 b5e7 b5e7 b5e7 * 616d * 8ea1e1ed,e1ed,8ea1e1edv,e1edv 8407 e89087 8407 00008407 b5e7 b5e7 b5e7 b5e7 b5e7 b5e7 b5e7 -3398 b5e8 b5e8 b5e8 * 616e * 8ea1e1ee,e1ee,8ea1e1eev,e1eev 83d4 e88f94 83d4 000083d4 b5e8 b5e8 b5e8 b5e8 b5e8 b5e8 b5e8 -3399 b5e9 b5e9 b5e9 * 616f * 8ea1e1ef,e1ef,8ea1e1efv,e1efv 83df e88f9f 83df 000083df b5e9 b5e9 b5e9 b5e9 b5e9 b5e9 b5e9 -3400 b5ea b5ea b5ea * 6170 * 8ea1e1f0,e1f0,8ea1e1f0v,e1f0v 865b e8999b 865b 0000865b b5ea b5ea b5ea b5ea b5ea b5ea b5ea -3401 b5eb b5eb b5eb * 6171 * 8ea1e1f1,e1f1,8ea1e1f1v,e1f1v 86df e89b9f 86df 000086df b5eb b5eb b5eb b5eb b5eb b5eb b5eb -3402 b5ec b5ec b5ec * 6172 * 8ea1e1f2,e1f2,8ea1e1f2v,e1f2v 86d9 e89b99 86d9 000086d9 b5ec b5ec b5ec b5ec b5ec b5ec b5ec -3403 b5ed b5ed b5ed * 6173 * 8ea1e1f3,e1f3,8ea1e1f3v,e1f3v 86ed e89bad 86ed 000086ed b5ed b5ed b5ed b5ed b5ed b5ed b5ed -3404 b5ee b5ee b5ee * 6174 * 8ea1e1f4,e1f4,8ea1e1f4v,e1f4v 86d4 e89b94 86d4 000086d4 b5ee b5ee b5ee b5ee b5ee b5ee b5ee -3405 b5ef b5ef b5ef * 6175 * 8ea1e1f5,e1f5,8ea1e1f5v,e1f5v 86db e89b9b 86db 000086db b5ef b5ef b5ef b5ef b5ef b5ef b5ef -3406 b5f0 b5f0 b5f0 * 6176 * 8ea1e1f6,e1f6,8ea1e1f6v,e1f6v 86e4 e89ba4 86e4 000086e4 b5f0 b5f0 b5f0 b5f0 b5f0 b5f0 b5f0 -3407 b5f1 b5f1 b5f1 * 6177 * 8ea1e1f7,e1f7,8ea1e1f7v,e1f7v 86d0 e89b90 86d0 000086d0 b5f1 b5f1 b5f1 b5f1 b5f1 b5f1 b5f1 -3408 b5f2 b5f2 b5f2 * 6178 * 8ea1e1f8,e1f8,8ea1e1f8v,e1f8v 86de e89b9e 86de 000086de b5f2 b5f2 b5f2 b5f2 b5f2 b5f2 b5f2 -3409 b5f3 b5f3 b5f3 * 6179 * 8ea1e1f9,e1f9,8ea1e1f9v,e1f9v 8857 e8a197 8857 00008857 b5f3 b5f3 b5f3 b5f3 b5f3 b5f3 b5f3 -3410 b5f4 b5f4 b5f4 * 617a * 8ea1e1fa,e1fa,8ea1e1fav,e1fav 88c1 e8a381 88c1 000088c1 b5f4 b5f4 b5f4 b5f4 b5f4 b5f4 b5f4 -3411 b5f5 b5f5 b5f5 * 617b * 8ea1e1fb,e1fb,8ea1e1fbv,e1fbv 88c2 e8a382 88c2 000088c2 b5f5 b5f5 b5f5 b5f5 b5f5 b5f5 b5f5 -3412 b5f6 b5f6 b5f6 * 617c * 8ea1e1fc,e1fc,8ea1e1fcv,e1fcv 88b1 e8a2b1 88b1 000088b1 b5f6 b5f6 b5f6 b5f6 b5f6 b5f6 b5f6 -3413 b5f7 b5f7 b5f7 * 617d * 8ea1e1fd,e1fd,8ea1e1fdv,e1fdv 8983 e8a683 8983 00008983 b5f7 b5f7 b5f7 b5f7 b5f7 b5f7 b5f7 -3414 b5f8 b5f8 b5f8 * 617e * 8ea1e1fe,e1fe,8ea1e1fev,e1fev 8996 e8a696 8996 00008996 b5f8 b5f8 b5f8 b5f8 b5f8 b5f8 b5f8 -3415 b5f9 b5f9 b5f9 * 6221 * 8ea1e2a1,e2a1,8ea1e2a1v,e2a1v 8a3b e8a8bb 8a3b 00008a3b b5f9 b5f9 b5f9 b5f9 b5f9 b5f9 b5f9 -3416 b5fa b5fa b5fa * 6222 * 8ea1e2a2,e2a2,8ea1e2a2v,e2a2v 8a60 e8a9a0 8a60 00008a60 b5fa b5fa b5fa b5fa b5fa b5fa b5fa -3417 b5fb b5fb b5fb * 6223 * 8ea1e2a3,e2a3,8ea1e2a3v,e2a3v 8a55 e8a995 8a55 00008a55 b5fb b5fb b5fb b5fb b5fb b5fb b5fb -3418 b5fc b5fc b5fc * 6224 * 8ea1e2a4,e2a4,8ea1e2a4v,e2a4v 8a5e e8a99e 8a5e 00008a5e b5fc b5fc b5fc b5fc b5fc b5fc b5fc -3419 b5fd b5fd b5fd * 6225 * 8ea1e2a5,e2a5,8ea1e2a5v,e2a5v 8a3c e8a8bc 8a3c 00008a3c b5fd b5fd b5fd b5fd b5fd b5fd b5fd -3420 b5fe b5fe b5fe * 6226 * 8ea1e2a6,e2a6,8ea1e2a6v,e2a6v 8a41 e8a981 8a41 00008a41 b5fe b5fe b5fe b5fe b5fe b5fe b5fe -3421 b640 b640 b640 * 6227 * 8ea1e2a7,e2a7,8ea1e2a7v,e2a7v 8a54 e8a994 8a54 00008a54 b640 b640 b640 b640 b640 b640 b640 -3422 b641 b641 b641 * 6228 * 8ea1e2a8,e2a8,8ea1e2a8v,e2a8v 8a5b e8a99b 8a5b 00008a5b b641 b641 b641 b641 b641 b641 b641 -3423 b642 b642 b642 * 6229 * 8ea1e2a9,e2a9,8ea1e2a9v,e2a9v 8a50 e8a990 8a50 00008a50 b642 b642 b642 b642 b642 b642 b642 -3424 b643 b643 b643 * 622a * 8ea1e2aa,e2aa,8ea1e2aav,e2aav 8a46 e8a986 8a46 00008a46 b643 b643 b643 b643 b643 b643 b643 -3425 b644 b644 b644 * 622b * 8ea1e2ab,e2ab,8ea1e2abv,e2abv 8a34 e8a8b4 8a34 00008a34 b644 b644 b644 b644 b644 b644 b644 -3426 b645 b645 b645 * 622c * 8ea1e2ac,e2ac,8ea1e2acv,e2acv 8a3a e8a8ba 8a3a 00008a3a b645 b645 b645 b645 b645 b645 b645 -3427 b646 b646 b646 * 622d * 8ea1e2ad,e2ad,8ea1e2adv,e2adv 8a36 e8a8b6 8a36 00008a36 b646 b646 b646 b646 b646 b646 b646 -3428 b647 b647 b647 * 622e * 8ea1e2ae,e2ae,8ea1e2aev,e2aev 8a56 e8a996 8a56 00008a56 b647 b647 b647 b647 b647 b647 b647 -3429 b648 b648 b648 * 622f * 8ea1e2af,e2af,8ea1e2afv,e2afv 8c61 e8b1a1 8c61 00008c61 b648 b648 b648 b648 b648 b648 b648 -3430 b649 b649 b649 * 6230 * 8ea1e2b0,e2b0,8ea1e2b0v,e2b0v 8c82 e8b282 8c82 00008c82 b649 b649 b649 b649 b649 b649 b649 -3431 b64a b64a b64a * 6231 * 8ea1e2b1,e2b1,8ea1e2b1v,e2b1v 8caf e8b2af 8caf 00008caf b64a b64a b64a b64a b64a b64a b64a -3432 b64b b64b b64b * 6232 * 8ea1e2b2,e2b2,8ea1e2b2v,e2b2v 8cbc e8b2bc 8cbc 00008cbc b64b b64b b64b b64b b64b b64b b64b -3433 b64c b64c b64c * 6233 * 8ea1e2b3,e2b3,8ea1e2b3v,e2b3v 8cb3 e8b2b3 8cb3 00008cb3 b64c b64c b64c b64c b64c b64c b64c -3434 b64d b64d b64d * 6234 * 8ea1e2b4,e2b4,8ea1e2b4v,e2b4v 8cbd e8b2bd 8cbd 00008cbd b64d b64d b64d b64d b64d b64d b64d -3435 b64e b64e b64e * 6235 * 8ea1e2b5,e2b5,8ea1e2b5v,e2b5v 8cc1 e8b381 8cc1 00008cc1 b64e b64e b64e b64e b64e b64e b64e -3436 b64f b64f b64f * 6236 * 8ea1e2b6,e2b6,8ea1e2b6v,e2b6v 8cbb e8b2bb 8cbb 00008cbb b64f b64f b64f b64f b64f b64f b64f -3437 b650 b650 b650 * 6237 * 8ea1e2b7,e2b7,8ea1e2b7v,e2b7v 8cc0 e8b380 8cc0 00008cc0 b650 b650 b650 b650 b650 b650 b650 -3438 b651 b651 b651 * 6238 * 8ea1e2b8,e2b8,8ea1e2b8v,e2b8v 8cb4 e8b2b4 8cb4 00008cb4 b651 b651 b651 b651 b651 b651 b651 -3439 b652 b652 b652 * 6239 * 8ea1e2b9,e2b9,8ea1e2b9v,e2b9v 8cb7 e8b2b7 8cb7 00008cb7 b652 b652 b652 b652 b652 b652 b652 -3440 b653 b653 b653 * 623a * 8ea1e2ba,e2ba,8ea1e2bav,e2bav 8cb6 e8b2b6 8cb6 00008cb6 b653 b653 b653 b653 b653 b653 b653 -3441 b654 b654 b654 * 623b * 8ea1e2bb,e2bb,8ea1e2bbv,e2bbv 8cbf e8b2bf 8cbf 00008cbf b654 b654 b654 b654 b654 b654 b654 -3442 b655 b655 b655 * 623c * 8ea1e2bc,e2bc,8ea1e2bcv,e2bcv 8cb8 e8b2b8 8cb8 00008cb8 b655 b655 b655 b655 b655 b655 b655 -3443 b656 b656 b656 * 623d * 8ea1e2bd,e2bd,8ea1e2bdv,e2bdv 8d8a e8b68a 8d8a 00008d8a b656 b656 b656 b656 b656 b656 b656 -3444 b657 b657 b657 * 623e * 8ea1e2be,e2be,8ea1e2bev,e2bev 8d85 e8b685 8d85 00008d85 b657 b657 b657 b657 b657 b657 b657 -3445 b658 b658 b658 * 623f * 8ea1e2bf,e2bf,8ea1e2bfv,e2bfv 8d81 e8b681 8d81 00008d81 b658 b658 b658 b658 b658 b658 b658 -3446 b659 b659 b659 * 6240 * 8ea1e2c0,e2c0,8ea1e2c0v,e2c0v 8dce e8b78e 8dce 00008dce b659 b659 b659 b659 b659 b659 b659 -3447 b65a b65a b65a * 6241 * 8ea1e2c1,e2c1,8ea1e2c1v,e2c1v 8ddd e8b79d 8ddd 00008ddd b65a b65a b65a b65a b65a b65a b65a -3448 b65b b65b b65b * 6242 * 8ea1e2c2,e2c2,8ea1e2c2v,e2c2v 8dcb e8b78b 8dcb 00008dcb b65b b65b b65b b65b b65b b65b b65b -3449 b65c b65c b65c * 6243 * 8ea1e2c3,e2c3,8ea1e2c3v,e2c3v 8dda e8b79a 8dda 00008dda b65c b65c b65c b65c b65c b65c b65c -3450 b65d b65d b65d * 6244 * 8ea1e2c4,e2c4,8ea1e2c4v,e2c4v 8dd1 e8b791 8dd1 00008dd1 b65d b65d b65d b65d b65d b65d b65d -3451 b65e b65e b65e * 6245 * 8ea1e2c5,e2c5,8ea1e2c5v,e2c5v 8dcc e8b78c 8dcc 00008dcc b65e b65e b65e b65e b65e b65e b65e -3452 b65f b65f b65f * 6246 * 8ea1e2c6,e2c6,8ea1e2c6v,e2c6v 8ddb e8b79b 8ddb 00008ddb b65f b65f b65f b65f b65f b65f b65f -3453 b660 b660 b660 * 6247 * 8ea1e2c7,e2c7,8ea1e2c7v,e2c7v 8dc6 e8b786 8dc6 00008dc6 b660 b660 b660 b660 b660 b660 b660 -3454 b661 b661 b661 * 6248 * 8ea1e2c8,e2c8,8ea1e2c8v,e2c8v 8efb e8bbbb 8efb 00008efb b661 b661 b661 b661 b661 b661 b661 -3455 b662 b662 b662 * 6249 * 8ea1e2c9,e2c9,8ea1e2c9v,e2c9v 8ef8 e8bbb8 8ef8 00008ef8 b662 b662 b662 b662 b662 b662 b662 -3456 b663 b663 b663 * 624a * 8ea1e2ca,e2ca,8ea1e2cav,e2cav 8efc e8bbbc 8efc 00008efc b663 b663 b663 b663 b663 b663 b663 -3457 b664 b664 b664 * 624b * 8ea1e2cb,e2cb,8ea1e2cbv,e2cbv 8f9c e8be9c 8f9c 00008f9c b664 b664 b664 b664 b664 b664 b664 -3458 b665 b665 b665 * 624c * 8ea1e2cc,e2cc,8ea1e2ccv,e2ccv 902e e980ae 902e 0000902e b665 b665 b665 b665 b665 b665 b665 -3459 b666 b666 b666 * 624d * 8ea1e2cd,e2cd,8ea1e2cdv,e2cdv 9035 e980b5 9035 00009035 b666 b666 b666 b666 b666 b666 b666 -3460 b667 b667 b667 * 624e * 8ea1e2ce,e2ce,8ea1e2cev,e2cev 9031 e980b1 9031 00009031 b667 b667 b667 b667 b667 b667 b667 -3461 b668 b668 b668 * 624f * 8ea1e2cf,e2cf,8ea1e2cfv,e2cfv 9038 e980b8 9038 00009038 b668 b668 b668 b668 b668 b668 b668 -3462 b669 b669 b669 * 6250 * 8ea1e2d0,e2d0,8ea1e2d0v,e2d0v 9032 e980b2 9032 00009032 b669 b669 b669 b669 b669 b669 b669 -3463 b66a b66a b66a * 6251 * 8ea1e2d1,e2d1,8ea1e2d1v,e2d1v 9036 e980b6 9036 00009036 b66a b66a b66a b66a b66a b66a b66a -3464 b66b b66b b66b * 6252 * 8ea1e2d2,e2d2,8ea1e2d2v,e2d2v 9102 e98482 9102 00009102 b66b b66b b66b b66b b66b b66b b66b -3465 b66c b66c b66c * 6253 * 8ea1e2d3,e2d3,8ea1e2d3v,e2d3v 90f5 e983b5 90f5 000090f5 b66c b66c b66c b66c b66c b66c b66c -3466 b66d b66d b66d * 6254 * 8ea1e2d4,e2d4,8ea1e2d4v,e2d4v 9109 e98489 9109 00009109 b66d b66d b66d b66d b66d b66d b66d -3467 b66e b66e b66e * 6255 * 8ea1e2d5,e2d5,8ea1e2d5v,e2d5v 90fe e983be 90fe 000090fe b66e b66e b66e b66e b66e b66e b66e -3468 b66f b66f b66f * 6256 * 8ea1e2d6,e2d6,8ea1e2d6v,e2d6v 9163 e985a3 9163 00009163 b66f b66f b66f b66f b66f b66f b66f -3469 b670 b670 b670 * 6257 * 8ea1e2d7,e2d7,8ea1e2d7v,e2d7v 9165 e985a5 9165 00009165 b670 b670 b670 b670 b670 b670 b670 -3470 b671 b671 b671 * 6258 * 8ea1e2d8,e2d8,8ea1e2d8v,e2d8v 91cf e9878f 91cf 000091cf b671 b671 b671 b671 b671 b671 b671 -3471 b672 b672 b672 * 6259 * 8ea1e2d9,e2d9,8ea1e2d9v,e2d9v 9214 e98894 9214 00009214 b672 b672 b672 b672 b672 b672 b672 -3472 b673 b673 b673 * 625a * 8ea1e2da,e2da,8ea1e2dav,e2dav 9215 e98895 9215 00009215 b673 b673 b673 b673 b673 b673 b673 -3473 b674 b674 b674 * 625b * 8ea1e2db,e2db,8ea1e2dbv,e2dbv 9223 e988a3 9223 00009223 b674 b674 b674 b674 b674 b674 b674 -3474 b675 b675 b675 * 625c * 8ea1e2dc,e2dc,8ea1e2dcv,e2dcv 9209 e98889 9209 00009209 b675 b675 b675 b675 b675 b675 b675 -3475 b676 b676 b676 * 625d * 8ea1e2dd,e2dd,8ea1e2ddv,e2ddv 921e e9889e 921e 0000921e b676 b676 b676 b676 b676 b676 b676 -3476 b677 b677 b677 * 625e * 8ea1e2de,e2de,8ea1e2dev,e2dev 920d e9888d 920d 0000920d b677 b677 b677 b677 b677 b677 b677 -3477 b678 b678 b678 * 625f * 8ea1e2df,e2df,8ea1e2dfv,e2dfv 9210 e98890 9210 00009210 b678 b678 b678 b678 b678 b678 b678 -3478 b679 b679 b679 * 6260 * 8ea1e2e0,e2e0,8ea1e2e0v,e2e0v 9207 e98887 9207 00009207 b679 b679 b679 b679 b679 b679 b679 -3479 b67a b67a b67a * 6261 * 8ea1e2e1,e2e1,8ea1e2e1v,e2e1v 9211 e98891 9211 00009211 b67a b67a b67a b67a b67a b67a b67a -3480 b67b b67b b67b * 6262 * 8ea1e2e2,e2e2,8ea1e2e2v,e2e2v 9594 e99694 9594 00009594 b67b b67b b67b b67b b67b b67b b67b -3481 b67c b67c b67c * 6263 * 8ea1e2e3,e2e3,8ea1e2e3v,e2e3v 958f e9968f 958f 0000958f b67c b67c b67c b67c b67c b67c b67c -3482 b67d b67d b67d * 6264 * 8ea1e2e4,e2e4,8ea1e2e4v,e2e4v 958b e9968b 958b 0000958b b67d b67d b67d b67d b67d b67d b67d -3483 b67e b67e b67e * 6265 * 8ea1e2e5,e2e5,8ea1e2e5v,e2e5v 9591 e99691 9591 00009591 b67e b67e b67e b67e b67e b67e b67e -3484 b6a1 b6a1 b6a1 * 6266 * 8ea1e2e6,e2e6,8ea1e2e6v,e2e6v 9593 e99693 9593 00009593 b6a1 b6a1 b6a1 b6a1 b6a1 b6a1 b6a1 -3485 b6a2 b6a2 b6a2 * 6267 * 8ea1e2e7,e2e7,8ea1e2e7v,e2e7v 9592 e99692 9592 00009592 b6a2 b6a2 b6a2 b6a2 b6a2 b6a2 b6a2 -3486 b6a3 b6a3 b6a3 * 6268 * 8ea1e2e8,e2e8,8ea1e2e8v,e2e8v 958e e9968e 958e 0000958e b6a3 b6a3 b6a3 b6a3 b6a3 b6a3 b6a3 -3487 b6a4 b6a4 b6a4 * 6269 * 8ea1e2e9,e2e9,8ea1e2e9v,e2e9v 968a e99a8a 968a 0000968a b6a4 b6a4 b6a4 b6a4 b6a4 b6a4 b6a4 -3488 b6a5 b6a5 b6a5 * 626a * 8ea1e2ea,e2ea,8ea1e2eav,e2eav 968e e99a8e 968e 0000968e b6a5 b6a5 b6a5 b6a5 b6a5 b6a5 b6a5 -3489 b6a6 b6a6 b6a6 * 626b * 8ea1e2eb,e2eb,8ea1e2ebv,e2ebv 968b e99a8b 968b 0000968b b6a6 b6a6 b6a6 b6a6 b6a6 b6a6 b6a6 -3490 b6a7 b6a7 b6a7 * 626c * 8ea1e2ec,e2ec,8ea1e2ecv,e2ecv 967d e999bd 967d 0000967d b6a7 b6a7 b6a7 b6a7 b6a7 b6a7 b6a7 -3491 b6a8 b6a8 b6a8 * 626d * 8ea1e2ed,e2ed,8ea1e2edv,e2edv 9685 e99a85 9685 00009685 b6a8 b6a8 b6a8 b6a8 b6a8 b6a8 b6a8 -3492 b6a9 b6a9 b6a9 * 626e * 8ea1e2ee,e2ee,8ea1e2eev,e2eev 9686 e99a86 9686 00009686 b6a9 b6a9 b6a9 b6a9 b6a9 b6a9 b6a9 -3493 b6aa b6aa b6aa * 626f * 8ea1e2ef,e2ef,8ea1e2efv,e2efv 968d e99a8d 968d 0000968d b6aa b6aa b6aa b6aa b6aa b6aa b6aa -3494 b6ab b6ab b6ab * 6270 * 8ea1e2f0,e2f0,8ea1e2f0v,e2f0v 9672 e999b2 9672 00009672 b6ab b6ab b6ab b6ab b6ab b6ab b6ab -3495 b6ac b6ac b6ac * 6271 * 8ea1e2f1,e2f1,8ea1e2f1v,e2f1v 9684 e99a84 9684 00009684 b6ac b6ac b6ac b6ac b6ac b6ac b6ac -3496 b6ad b6ad b6ad * 6272 * 8ea1e2f2,e2f2,8ea1e2f2v,e2f2v 96c1 e99b81 96c1 000096c1 b6ad b6ad b6ad b6ad b6ad b6ad b6ad -3497 b6ae b6ae b6ae * 6273 * 8ea1e2f3,e2f3,8ea1e2f3v,e2f3v 96c5 e99b85 96c5 000096c5 b6ae b6ae b6ae b6ae b6ae b6ae b6ae -3498 b6af b6af b6af * 6274 * 8ea1e2f4,e2f4,8ea1e2f4v,e2f4v 96c4 e99b84 96c4 000096c4 b6af b6af b6af b6af b6af b6af b6af -3499 b6b0 b6b0 b6b0 * 6275 * 8ea1e2f5,e2f5,8ea1e2f5v,e2f5v 96c6 e99b86 96c6 000096c6 b6b0 b6b0 b6b0 b6b0 b6b0 b6b0 b6b0 -3500 b6b1 b6b1 b6b1 * 6276 * 8ea1e2f6,e2f6,8ea1e2f6v,e2f6v 96c7 e99b87 96c7 000096c7 b6b1 b6b1 b6b1 b6b1 b6b1 b6b1 b6b1 -3501 b6b2 b6b2 b6b2 * 6277 * 8ea1e2f7,e2f7,8ea1e2f7v,e2f7v 96ef e99baf 96ef 000096ef b6b2 b6b2 b6b2 b6b2 b6b2 b6b2 b6b2 -3502 b6b3 b6b3 b6b3 * 6278 * 8ea1e2f8,e2f8,8ea1e2f8v,e2f8v 96f2 e99bb2 96f2 000096f2 b6b3 b6b3 b6b3 b6b3 b6b3 b6b3 b6b3 -3503 b6b4 b6b4 b6b4 * 6279 * 8ea1e2f9,e2f9,8ea1e2f9v,e2f9v 97cc e99f8c 97cc 000097cc b6b4 b6b4 b6b4 b6b4 b6b4 b6b4 b6b4 -3504 b6b5 b6b5 b6b5 * 627a * 8ea1e2fa,e2fa,8ea1e2fav,e2fav 9805 e9a085 9805 00009805 b6b5 b6b5 b6b5 b6b5 b6b5 b6b5 b6b5 -3505 b6b6 b6b6 b6b6 * 627b * 8ea1e2fb,e2fb,8ea1e2fbv,e2fbv 9806 e9a086 9806 00009806 b6b6 b6b6 b6b6 b6b6 b6b6 b6b6 b6b6 -3506 b6b7 b6b7 b6b7 * 627c * 8ea1e2fc,e2fc,8ea1e2fcv,e2fcv 9808 e9a088 9808 00009808 b6b7 b6b7 b6b7 b6b7 b6b7 b6b7 b6b7 -3507 b6b8 b6b8 b6b8 * 627d * 8ea1e2fd,e2fd,8ea1e2fdv,e2fdv 98e7 e9a3a7 98e7 000098e7 b6b8 b6b8 b6b8 b6b8 b6b8 b6b8 b6b8 -3508 b6b9 b6b9 b6b9 * 627e * 8ea1e2fe,e2fe,8ea1e2fev,e2fev 98ea e9a3aa 98ea 000098ea b6b9 b6b9 b6b9 b6b9 b6b9 b6b9 b6b9 -3509 b6ba b6ba b6ba * 6321 * 8ea1e3a1,e3a1,8ea1e3a1v,e3a1v 98ef e9a3af 98ef 000098ef b6ba b6ba b6ba b6ba b6ba b6ba b6ba -3510 b6bb b6bb b6bb * 6322 * 8ea1e3a2,e3a2,8ea1e3a2v,e3a2v 98e9 e9a3a9 98e9 000098e9 b6bb b6bb b6bb b6bb b6bb b6bb b6bb -3511 b6bc b6bc b6bc * 6323 * 8ea1e3a3,e3a3,8ea1e3a3v,e3a3v 98f2 e9a3b2 98f2 000098f2 b6bc b6bc b6bc b6bc b6bc b6bc b6bc -3512 b6bd b6bd b6bd * 6324 * 8ea1e3a4,e3a4,8ea1e3a4v,e3a4v 98ed e9a3ad 98ed 000098ed b6bd b6bd b6bd b6bd b6bd b6bd b6bd -3513 b6be b6be b6be * 6325 * 8ea1e3a5,e3a5,8ea1e3a5v,e3a5v 99ae e9a6ae 99ae 000099ae b6be b6be b6be b6be b6be b6be b6be -3514 b6bf b6bf b6bf * 6326 * 8ea1e3a6,e3a6,8ea1e3a6v,e3a6v 99ad e9a6ad 99ad 000099ad b6bf b6bf b6bf b6bf b6bf b6bf b6bf -3515 b6c0 b6c0 b6c0 * 292c,6327 * 8ea1a9ac,8ea1e3a7,a9ac,e3a7,8ea1a9acv,8ea1e3a7v,a9acv,e3a7v 9ec3 e9bb83,e2bf88 9ec3,2fc8 00009ec3,00002fc8 b6c0 b6c0 b6c0 b6c0 b6c0 b6c0 b6c0 -3516 b6c1 b6c1 b6c1 * 292d,6328 * 8ea1a9ad,8ea1e3a8,a9ad,e3a8,8ea1a9adv,8ea1e3a8v,a9adv,e3a8v 9ecd e9bb8d,e2bf89 9ecd,2fc9 00009ecd,00002fc9 b6c1 b6c1 b6c1 b6c1 b6c1 b6c1 b6c1 -3517 b6c2 b6c2 b6c2 * 292e,6329 * 8ea1a9ae,8ea1e3a9,a9ae,e3a9,8ea1a9aev,8ea1e3a9v,a9aev,e3a9v 9ed1 e9bb91,e2bf8a 9ed1,2fca 00009ed1,00002fca b6c2 b6c2 b6c2 b6c2 b6c2 b6c2 b6c2 -3518 b6c3 b6c3 b6c3 * 632a * 8ea1e3aa,e3aa,8ea1e3aav,e3aav 4e82 e4ba82 4e82 00004e82 b6c3 b6c3 b6c3 b6c3 b6c3 b6c3 b6c3 -3519 b6c4 b6c4 b6c4 * 632b * 8ea1e3ab,e3ab,8ea1e3abv,e3abv 50ad e582ad 50ad 000050ad b6c4 b6c4 b6c4 b6c4 b6c4 b6c4 b6c4 -3520 b6c5 b6c5 b6c5 * 632c * 8ea1e3ac,e3ac,8ea1e3acv,e3acv 50b5 e582b5 50b5 000050b5 b6c5 b6c5 b6c5 b6c5 b6c5 b6c5 b6c5 -3521 b6c6 b6c6 b6c6 * 632d * 8ea1e3ad,e3ad,8ea1e3adv,e3adv 50b2 e582b2 50b2 000050b2 b6c6 b6c6 b6c6 b6c6 b6c6 b6c6 b6c6 -3522 b6c7 b6c7 b6c7 * 632e * 8ea1e3ae,e3ae,8ea1e3aev,e3aev 50b3 e582b3 50b3 000050b3 b6c7 b6c7 b6c7 b6c7 b6c7 b6c7 b6c7 -3523 b6c8 b6c8 b6c8 * 632f * 8ea1e3af,e3af,8ea1e3afv,e3afv 50c5 e58385 50c5 000050c5 b6c8 b6c8 b6c8 b6c8 b6c8 b6c8 b6c8 -3524 b6c9 b6c9 b6c9 * 6330 * 8ea1e3b0,e3b0,8ea1e3b0v,e3b0v 50be e582be 50be 000050be b6c9 b6c9 b6c9 b6c9 b6c9 b6c9 b6c9 -3525 b6ca b6ca b6ca * 6331 * 8ea1e3b1,e3b1,8ea1e3b1v,e3b1v 50ac e582ac 50ac 000050ac b6ca b6ca b6ca b6ca b6ca b6ca b6ca -3526 b6cb b6cb b6cb * 6332 * 8ea1e3b2,e3b2,8ea1e3b2v,e3b2v 50b7 e582b7 50b7 000050b7 b6cb b6cb b6cb b6cb b6cb b6cb b6cb -3527 b6cc b6cc b6cc * 6333 * 8ea1e3b3,e3b3,8ea1e3b3v,e3b3v 50bb e582bb 50bb 000050bb b6cc b6cc b6cc b6cc b6cc b6cc b6cc -3528 b6cd b6cd b6cd * 6334 * 8ea1e3b4,e3b4,8ea1e3b4v,e3b4v 50af e582af 50af 000050af b6cd b6cd b6cd b6cd b6cd b6cd b6cd -3529 b6ce b6ce b6ce * 6335 * 8ea1e3b5,e3b5,8ea1e3b5v,e3b5v 50c7 e58387 50c7 000050c7 b6ce b6ce b6ce b6ce b6ce b6ce b6ce -3530 b6cf b6cf b6cf * 6336 * 8ea1e3b6,e3b6,8ea1e3b6v,e3b6v 527f e589bf 527f 0000527f b6cf b6cf b6cf b6cf b6cf b6cf b6cf -3531 b6d0 b6d0 b6d0 * 6337 * 8ea1e3b7,e3b7,8ea1e3b7v,e3b7v 5277 e589b7 5277 00005277 b6d0 b6d0 b6d0 b6d0 b6d0 b6d0 b6d0 -3532 b6d1 b6d1 b6d1 * 6338 * 8ea1e3b8,e3b8,8ea1e3b8v,e3b8v 527d e589bd 527d 0000527d b6d1 b6d1 b6d1 b6d1 b6d1 b6d1 b6d1 -3533 b6d2 b6d2 b6d2 * 6339 * 8ea1e3b9,e3b9,8ea1e3b9v,e3b9v 52df e58b9f 52df 000052df b6d2 b6d2 b6d2 b6d2 b6d2 b6d2 b6d2 -3534 b6d3 b6d3 b6d3 * 633a * 8ea1e3ba,e3ba,8ea1e3bav,e3bav 52e6 e58ba6 52e6 000052e6 b6d3 b6d3 b6d3 b6d3 b6d3 b6d3 b6d3 -3535 b6d4 b6d4 b6d4 * 633b * 8ea1e3bb,e3bb,8ea1e3bbv,e3bbv 52e4 e58ba4 52e4 000052e4 b6d4 b6d4 b6d4 b6d4 b6d4 b6d4 b6d4 -3536 b6d5 b6d5 b6d5 * 633c * 8ea1e3bc,e3bc,8ea1e3bcv,e3bcv 52e2 e58ba2 52e2 000052e2 b6d5 b6d5 b6d5 b6d5 b6d5 b6d5 b6d5 -3537 b6d6 b6d6 b6d6 * 633d * 8ea1e3bd,e3bd,8ea1e3bdv,e3bdv 52e3 e58ba3 52e3 000052e3 b6d6 b6d6 b6d6 b6d6 b6d6 b6d6 b6d6 -3538 b6d7 b6d7 b6d7 * 633e * 8ea1e3be,e3be,8ea1e3bev,e3bev 532f e58caf 532f 0000532f b6d7 b6d7 b6d7 b6d7 b6d7 b6d7 b6d7 -3539 b6d8 b6d8 b6d8 * 633f * 8ea1e3bf,e3bf,8ea1e3bfv,e3bfv 55df e5979f 55df 000055df b6d8 b6d8 b6d8 b6d8 b6d8 b6d8 b6d8 -3540 b6d9 b6d9 b6d9 * 6340 * 8ea1e3c0,e3c0,8ea1e3c0v,e3c0v 55e8 e597a8 55e8 000055e8 b6d9 b6d9 b6d9 b6d9 b6d9 b6d9 b6d9 -3541 b6da b6da b6da * 6341 * 8ea1e3c1,e3c1,8ea1e3c1v,e3c1v 55d3 e59793 55d3 000055d3 b6da b6da b6da b6da b6da b6da b6da -3542 b6db b6db b6db * 6342 * 8ea1e3c2,e3c2,8ea1e3c2v,e3c2v 55e6 e597a6 55e6 000055e6 b6db b6db b6db b6db b6db b6db b6db -3543 b6dc b6dc b6dc * 6343 * 8ea1e3c3,e3c3,8ea1e3c3v,e3c3v 55ce e5978e 55ce 000055ce b6dc b6dc b6dc b6dc b6dc b6dc b6dc -3544 b6dd b6dd b6dd * 6344 * 8ea1e3c4,e3c4,8ea1e3c4v,e3c4v 55dc e5979c 55dc 000055dc b6dd b6dd b6dd b6dd b6dd b6dd b6dd -3545 b6de b6de b6de * 6345 * 8ea1e3c5,e3c5,8ea1e3c5v,e3c5v 55c7 e59787 55c7 000055c7 b6de b6de b6de b6de b6de b6de b6de -3546 b6df b6df b6df * 6346 * 8ea1e3c6,e3c6,8ea1e3c6v,e3c6v 55d1 e59791 55d1 000055d1 b6df b6df b6df b6df b6df b6df b6df -3547 b6e0 b6e0 b6e0 * 6347 * 8ea1e3c7,e3c7,8ea1e3c7v,e3c7v 55e3 e597a3 55e3 000055e3 b6e0 b6e0 b6e0 b6e0 b6e0 b6e0 b6e0 -3548 b6e1 b6e1 b6e1 * 6348 * 8ea1e3c8,e3c8,8ea1e3c8v,e3c8v 55e4 e597a4 55e4 000055e4 b6e1 b6e1 b6e1 b6e1 b6e1 b6e1 b6e1 -3549 b6e2 b6e2 b6e2 * 6349 * 8ea1e3c9,e3c9,8ea1e3c9v,e3c9v 55ef e597af 55ef 000055ef b6e2 b6e2 b6e2 b6e2 b6e2 b6e2 b6e2 -3550 b6e3 b6e3 b6e3 * 634a * 8ea1e3ca,e3ca,8ea1e3cav,e3cav 55da e5979a 55da 000055da b6e3 b6e3 b6e3 b6e3 b6e3 b6e3 b6e3 -3551 b6e4 b6e4 b6e4 * 634b * 8ea1e3cb,e3cb,8ea1e3cbv,e3cbv 55e1 e597a1 55e1 000055e1 b6e4 b6e4 b6e4 b6e4 b6e4 b6e4 b6e4 -3552 b6e5 b6e5 b6e5 * 634c * 8ea1e3cc,e3cc,8ea1e3ccv,e3ccv 55c5 e59785 55c5 000055c5 b6e5 b6e5 b6e5 b6e5 b6e5 b6e5 b6e5 -3553 b6e6 b6e6 b6e6 * 634d * 8ea1e3cd,e3cd,8ea1e3cdv,e3cdv 55c6 e59786 55c6 000055c6 b6e6 b6e6 b6e6 b6e6 b6e6 b6e6 b6e6 -3554 b6e7 b6e7 b6e7 * 634e * 8ea1e3ce,e3ce,8ea1e3cev,e3cev 55e5 e597a5 55e5 000055e5 b6e7 b6e7 b6e7 b6e7 b6e7 b6e7 b6e7 -3555 b6e8 b6e8 b6e8 * 634f * 8ea1e3cf,e3cf,8ea1e3cfv,e3cfv 55c9 e59789 55c9 000055c9 b6e8 b6e8 b6e8 b6e8 b6e8 b6e8 b6e8 -3556 b6e9 b6e9 b6e9 * 6350 * 8ea1e3d0,e3d0,8ea1e3d0v,e3d0v 5712 e59c92 5712 00005712 b6e9 b6e9 b6e9 b6e9 b6e9 b6e9 b6e9 -3557 b6ea b6ea b6ea * 6351 * 8ea1e3d1,e3d1,8ea1e3d1v,e3d1v 5713 e59c93 5713 00005713 b6ea b6ea b6ea b6ea b6ea b6ea b6ea -3558 b6eb b6eb b6eb * 6352 * 8ea1e3d2,e3d2,8ea1e3d2v,e3d2v 585e e5a19e 585e 0000585e b6eb b6eb b6eb b6eb b6eb b6eb b6eb -3559 b6ec b6ec b6ec * 6353 * 8ea1e3d3,e3d3,8ea1e3d3v,e3d3v 5851 e5a191 5851 00005851 b6ec b6ec b6ec b6ec b6ec b6ec b6ec -3560 b6ed b6ed b6ed * 6354 * 8ea1e3d4,e3d4,8ea1e3d4v,e3d4v 5858 e5a198 5858 00005858 b6ed b6ed b6ed b6ed b6ed b6ed b6ed -3561 b6ee b6ee b6ee * 6355 * 8ea1e3d5,e3d5,8ea1e3d5v,e3d5v 5857 e5a197 5857 00005857 b6ee b6ee b6ee b6ee b6ee b6ee b6ee -3562 b6ef b6ef b6ef * 6356 * 8ea1e3d6,e3d6,8ea1e3d6v,e3d6v 585a e5a19a 585a 0000585a b6ef b6ef b6ef b6ef b6ef b6ef b6ef -3563 b6f0 b6f0 b6f0 * 6357 * 8ea1e3d7,e3d7,8ea1e3d7v,e3d7v 5854 e5a194 5854 00005854 b6f0 b6f0 b6f0 b6f0 b6f0 b6f0 b6f0 -3564 b6f1 b6f1 b6f1 * 6358 * 8ea1e3d8,e3d8,8ea1e3d8v,e3d8v 586b e5a1ab 586b 0000586b b6f1 b6f1 b6f1 b6f1 b6f1 b6f1 b6f1 -3565 b6f2 b6f2 b6f2 * 6359 * 8ea1e3d9,e3d9,8ea1e3d9v,e3d9v 584c e5a18c 584c 0000584c b6f2 b6f2 b6f2 b6f2 b6f2 b6f2 b6f2 -3566 b6f3 b6f3 b6f3 * 635a * 8ea1e3da,e3da,8ea1e3dav,e3dav 586d e5a1ad 586d 0000586d b6f3 b6f3 b6f3 b6f3 b6f3 b6f3 b6f3 -3567 b6f4 b6f4 b6f4 * 635b * 8ea1e3db,e3db,8ea1e3dbv,e3dbv 584a e5a18a 584a 0000584a b6f4 b6f4 b6f4 b6f4 b6f4 b6f4 b6f4 -3568 b6f5 b6f5 b6f5 * 635c * 8ea1e3dc,e3dc,8ea1e3dcv,e3dcv 5862 e5a1a2 5862 00005862 b6f5 b6f5 b6f5 b6f5 b6f5 b6f5 b6f5 -3569 b6f6 b6f6 b6f6 * 635d * 8ea1e3dd,e3dd,8ea1e3ddv,e3ddv 5852 e5a192 5852 00005852 b6f6 b6f6 b6f6 b6f6 b6f6 b6f6 b6f6 -3570 b6f7 b6f7 b6f7 * 635e * 8ea1e3de,e3de,8ea1e3dev,e3dev 584b e5a18b 584b 0000584b b6f7 b6f7 b6f7 b6f7 b6f7 b6f7 b6f7 -3571 b6f8 b6f8 b6f8 * 635f * 8ea1e3df,e3df,8ea1e3dfv,e3dfv 5967 e5a5a7 5967 00005967 b6f8 b6f8 b6f8 b6f8 b6f8 b6f8 b6f8 -3572 b6f9 b6f9 b6f9 * 6360 * 8ea1e3e0,e3e0,8ea1e3e0v,e3e0v 5ac1 e5ab81 5ac1 00005ac1 b6f9 b6f9 b6f9 b6f9 b6f9 b6f9 b6f9 -3573 b6fa b6fa b6fa * 6361 * 8ea1e3e1,e3e1,8ea1e3e1v,e3e1v 5ac9 e5ab89 5ac9 00005ac9 b6fa b6fa b6fa b6fa b6fa b6fa b6fa -3574 b6fb b6fb b6fb * 6362 * 8ea1e3e2,e3e2,8ea1e3e2v,e3e2v 5acc e5ab8c 5acc 00005acc b6fb b6fb b6fb b6fb b6fb b6fb b6fb -3575 b6fc b6fc b6fc * 6363 * 8ea1e3e3,e3e3,8ea1e3e3v,e3e3v 5abe e5aabe 5abe 00005abe b6fc b6fc b6fc b6fc b6fc b6fc b6fc -3576 b6fd b6fd b6fd * 6364 * 8ea1e3e4,e3e4,8ea1e3e4v,e3e4v 5abd e5aabd 5abd 00005abd b6fd b6fd b6fd b6fd b6fd b6fd b6fd -3577 b6fe b6fe b6fe * 6365 * 8ea1e3e5,e3e5,8ea1e3e5v,e3e5v 5abc e5aabc 5abc 00005abc b6fe b6fe b6fe b6fe b6fe b6fe b6fe -3578 b740 b740 b740 * 6366 * 8ea1e3e6,e3e6,8ea1e3e6v,e3e6v 5ab3 e5aab3 5ab3 00005ab3 b740 b740 b740 b740 b740 b740 b740 -3579 b741 b741 b741 * 6367 * 8ea1e3e7,e3e7,8ea1e3e7v,e3e7v 5ac2 e5ab82 5ac2 00005ac2 b741 b741 b741 b741 b741 b741 b741 -3580 b742 b742 b742 * 6368 * 8ea1e3e8,e3e8,8ea1e3e8v,e3e8v 5ab2 e5aab2 5ab2 00005ab2 b742 b742 b742 b742 b742 b742 b742 -3581 b743 b743 b743 * 6369 * 8ea1e3e9,e3e9,8ea1e3e9v,e3e9v 5d69 e5b5a9 5d69 00005d69 b743 b743 b743 b743 b743 b743 b743 -3582 b744 b744 b744 * 636a * 8ea1e3ea,e3ea,8ea1e3eav,e3eav 5d6f e5b5af 5d6f 00005d6f b744 b744 b744 b744 b744 b744 b744 -3583 b745 b745 b745 * 636b * 8ea1e3eb,e3eb,8ea1e3ebv,e3ebv 5e4c e5b98c 5e4c 00005e4c b745 b745 b745 b745 b745 b745 b745 -3584 b746 b746 b746 * 636c * 8ea1e3ec,e3ec,8ea1e3ecv,e3ecv 5e79 e5b9b9 5e79 00005e79 b746 b746 b746 b746 b746 b746 b746 -3585 b747 b747 b747 * 636d * 8ea1e3ed,e3ed,8ea1e3edv,e3edv 5ec9 e5bb89 5ec9 00005ec9 b747 b747 b747 b747 b747 b747 b747 -3586 b748 b748 b748 * 636e * 8ea1e3ee,e3ee,8ea1e3eev,e3eev 5ec8 e5bb88 5ec8 00005ec8 b748 b748 b748 b748 b748 b748 b748 -3587 b749 b749 b749 * 636f * 8ea1e3ef,e3ef,8ea1e3efv,e3efv 5f12 e5bc92 5f12 00005f12 b749 b749 b749 b749 b749 b749 b749 -3588 b74a b74a b74a * 6370 * 8ea1e3f0,e3f0,8ea1e3f0v,e3f0v 5f59 e5bd99 5f59 00005f59 b74a b74a b74a b74a b74a b74a b74a -3589 b74b b74b b74b * 6371 * 8ea1e3f1,e3f1,8ea1e3f1v,e3f1v 5fac e5beac 5fac 00005fac b74b b74b b74b b74b b74b b74b b74b -3590 b74c b74c b74c * 6372 * 8ea1e3f2,e3f2,8ea1e3f2v,e3f2v 5fae e5beae 5fae 00005fae b74c b74c b74c b74c b74c b74c b74c -3591 b74d b74d b74d * 6373 * 8ea1e3f3,e3f3,8ea1e3f3v,e3f3v 611a e6849a 611a 0000611a b74d b74d b74d b74d b74d b74d b74d -3592 b74e b74e b74e * 6374 * 8ea1e3f4,e3f4,8ea1e3f4v,e3f4v 610f e6848f 610f 0000610f b74e b74e b74e b74e b74e b74e b74e -3593 b74f b74f b74f * 6375 * 8ea1e3f5,e3f5,8ea1e3f5v,e3f5v 6148 e68588 6148 00006148 b74f b74f b74f b74f b74f b74f b74f -3594 b750 b750 b750 * 6376 * 8ea1e3f6,e3f6,8ea1e3f6v,e3f6v 611f e6849f 611f 0000611f b750 b750 b750 b750 b750 b750 b750 -3595 b751 b751 b751 * 6377 * 8ea1e3f7,e3f7,8ea1e3f7v,e3f7v 60f3 e683b3 60f3 000060f3 b751 b751 b751 b751 b751 b751 b751 -3596 b752 b752 b752 * 6378 * 8ea1e3f8,e3f8,8ea1e3f8v,e3f8v 611b e6849b 611b 0000611b b752 b752 b752 b752 b752 b752 b752 -3597 b753 b753 b753 * 6379 * 8ea1e3f9,e3f9,8ea1e3f9v,e3f9v 60f9 e683b9 60f9 000060f9 b753 b753 b753 b753 b753 b753 b753 -3598 b754 b754 b754 * 637a * 8ea1e3fa,e3fa,8ea1e3fav,e3fav 6101 e68481 6101 00006101 b754 b754 b754 b754 b754 b754 b754 -3599 b755 b755 b755 * 637b * 8ea1e3fb,e3fb,8ea1e3fbv,e3fbv 6108 e68488 6108 00006108 b755 b755 b755 b755 b755 b755 b755 -3600 b756 b756 b756 * 637c * 8ea1e3fc,e3fc,8ea1e3fcv,e3fcv 614e e6858e 614e 0000614e b756 b756 b756 b756 b756 b756 b756 -3601 b757 b757 b757 * 637d * 8ea1e3fd,e3fd,8ea1e3fdv,e3fdv 614c e6858c 614c 0000614c b757 b757 b757 b757 b757 b757 b757 -3602 b758 b758 b758 * 637e * 8ea1e3fe,e3fe,8ea1e3fev,e3fev 6144 e68584 6144 00006144 b758 b758 b758 b758 b758 b758 b758 -3603 b759 b759 b759 * 6421 * 8ea1e4a1,e4a1,8ea1e4a1v,e4a1v 614d e6858d 614d 0000614d b759 b759 b759 b759 b759 b759 b759 -3604 b75a b75a b75a * 6422 * 8ea1e4a2,e4a2,8ea1e4a2v,e4a2v 613e e684be 613e 0000613e b75a b75a b75a b75a b75a b75a b75a -3605 b75b b75b b75b * 6423 * 8ea1e4a3,e4a3,8ea1e4a3v,e4a3v 6134 e684b4 6134 00006134 b75b b75b b75b b75b b75b b75b b75b -3606 b75c b75c b75c * 6424 * 8ea1e4a4,e4a4,8ea1e4a4v,e4a4v 6127 e684a7 6127 00006127 b75c b75c b75c b75c b75c b75c b75c -3607 b75d b75d b75d * 6425 * 8ea1e4a5,e4a5,8ea1e4a5v,e4a5v 610d e6848d 610d 0000610d b75d b75d b75d b75d b75d b75d b75d -3608 b75e b75e b75e * 6426 * 8ea1e4a6,e4a6,8ea1e4a6v,e4a6v 6106 e68486 6106 00006106 b75e b75e b75e b75e b75e b75e b75e -3609 b75f b75f b75f * 6427 * 8ea1e4a7,e4a7,8ea1e4a7v,e4a7v 6137 e684b7 6137 00006137 b75f b75f b75f b75f b75f b75f b75f -3610 b760 b760 b760 * 6428 * 8ea1e4a8,e4a8,8ea1e4a8v,e4a8v 6221 e688a1 6221 00006221 b760 b760 b760 b760 b760 b760 b760 -3611 b761 b761 b761 * 6429 * 8ea1e4a9,e4a9,8ea1e4a9v,e4a9v 6222 e688a2 6222 00006222 b761 b761 b761 b761 b761 b761 b761 -3612 b762 b762 b762 * 642a * 8ea1e4aa,e4aa,8ea1e4aav,e4aav 6413 e69093 6413 00006413 b762 b762 b762 b762 b762 b762 b762 -3613 b763 b763 b763 * 642b * 8ea1e4ab,e4ab,8ea1e4abv,e4abv 643e e690be 643e 0000643e b763 b763 b763 b763 b763 b763 b763 -3614 b764 b764 b764 * 642c * 8ea1e4ac,e4ac,8ea1e4acv,e4acv 641e e6909e 641e 0000641e b764 b764 b764 b764 b764 b764 b764 -3615 b765 b765 b765 * 642d * 8ea1e4ad,e4ad,8ea1e4adv,e4adv 642a e690aa 642a 0000642a b765 b765 b765 b765 b765 b765 b765 -3616 b766 b766 b766 * 642e * 8ea1e4ae,e4ae,8ea1e4aev,e4aev 642d e690ad 642d 0000642d b766 b766 b766 b766 b766 b766 b766 -3617 b767 b767 b767 * 642f * 8ea1e4af,e4af,8ea1e4afv,e4afv 643d e690bd 643d 0000643d b767 b767 b767 b767 b767 b767 b767 -3618 b768 b768 b768 * 6430 * 8ea1e4b0,e4b0,8ea1e4b0v,e4b0v 642c e690ac 642c 0000642c b768 b768 b768 b768 b768 b768 b768 -3619 b769 b769 b769 * 6431 * 8ea1e4b1,e4b1,8ea1e4b1v,e4b1v 640f e6908f 640f 0000640f b769 b769 b769 b769 b769 b769 b769 -3620 b76a b76a b76a * 6432 * 8ea1e4b2,e4b2,8ea1e4b2v,e4b2v 641c e6909c 641c 0000641c b76a b76a b76a b76a b76a b76a b76a -3621 b76b b76b b76b * 6433 * 8ea1e4b3,e4b3,8ea1e4b3v,e4b3v 6414 e69094 6414 00006414 b76b b76b b76b b76b b76b b76b b76b -3622 b76c b76c b76c * 6434 * 8ea1e4b4,e4b4,8ea1e4b4v,e4b4v 640d e6908d 640d 0000640d b76c b76c b76c b76c b76c b76c b76c -3623 b76d b76d b76d * 6435 * 8ea1e4b5,e4b5,8ea1e4b5v,e4b5v 6436 e690b6 6436 00006436 b76d b76d b76d b76d b76d b76d b76d -3624 b76e b76e b76e * 6436 * 8ea1e4b6,e4b6,8ea1e4b6v,e4b6v 6416 e69096 6416 00006416 b76e b76e b76e b76e b76e b76e b76e -3625 b76f b76f b76f * 6437 * 8ea1e4b7,e4b7,8ea1e4b7v,e4b7v 6417 e69097 6417 00006417 b76f b76f b76f b76f b76f b76f b76f -3626 b770 b770 b770 * 6438 * 8ea1e4b8,e4b8,8ea1e4b8v,e4b8v 6406 e69086 6406 00006406 b770 b770 b770 b770 b770 b770 b770 -3627 b771 b771 b771 * 6439 * 8ea1e4b9,e4b9,8ea1e4b9v,e4b9v 656c e695ac 656c 0000656c b771 b771 b771 b771 b771 b771 b771 -3628 b772 b772 b772 * 643a * 8ea1e4ba,e4ba,8ea1e4bav,e4bav 659f e6969f 659f 0000659f b772 b772 b772 b772 b772 b772 b772 -3629 b773 b773 b773 * 643b * 8ea1e4bb,e4bb,8ea1e4bbv,e4bbv 65b0 e696b0 65b0 000065b0 b773 b773 b773 b773 b773 b773 b773 -3630 b774 b774 b774 * 643c * 8ea1e4bc,e4bc,8ea1e4bcv,e4bcv 6697 e69a97 6697 00006697 b774 b774 b774 b774 b774 b774 b774 -3631 b775 b775 b775 * 643d * 8ea1e4bd,e4bd,8ea1e4bdv,e4bdv 6689 e69a89 6689 00006689 b775 b775 b775 b775 b775 b775 b775 -3632 b776 b776 b776 * 643e * 8ea1e4be,e4be,8ea1e4bev,e4bev 6687 e69a87 6687 00006687 b776 b776 b776 b776 b776 b776 b776 -3633 b777 b777 b777 * 643f * 8ea1e4bf,e4bf,8ea1e4bfv,e4bfv 6688 e69a88 6688 00006688 b777 b777 b777 b777 b777 b777 b777 -3634 b778 b778 b778 * 6440 * 8ea1e4c0,e4c0,8ea1e4c0v,e4c0v 6696 e69a96 6696 00006696 b778 b778 b778 b778 b778 b778 b778 -3635 b779 b779 b779 * 6441 * 8ea1e4c1,e4c1,8ea1e4c1v,e4c1v 6684 e69a84 6684 00006684 b779 b779 b779 b779 b779 b779 b779 -3636 b77a b77a b77a * 6442 * 8ea1e4c2,e4c2,8ea1e4c2v,e4c2v 6698 e69a98 6698 00006698 b77a b77a b77a b77a b77a b77a b77a -3637 b77b b77b b77b * 6443 * 8ea1e4c3,e4c3,8ea1e4c3v,e4c3v 668d e69a8d 668d 0000668d b77b b77b b77b b77b b77b b77b b77b -3638 b77c b77c b77c * 6444 * 8ea1e4c4,e4c4,8ea1e4c4v,e4c4v 6703 e69c83 6703 00006703 b77c b77c b77c b77c b77c b77c b77c -3639 b77d b77d b77d * 6445 * 8ea1e4c5,e4c5,8ea1e4c5v,e4c5v 6994 e6a694 6994 00006994 b77d b77d b77d b77d b77d b77d b77d -3640 b77e b77e b77e * 6446 * 8ea1e4c6,e4c6,8ea1e4c6v,e4c6v 696d e6a5ad 696d 0000696d b77e b77e b77e b77e b77e b77e b77e -3641 b7a1 b7a1 b7a1 * 6447 * 8ea1e4c7,e4c7,8ea1e4c7v,e4c7v 695a e6a59a 695a 0000695a b7a1 b7a1 b7a1 b7a1 b7a1 b7a1 b7a1 -3642 b7a2 b7a2 b7a2 * 6448 * 8ea1e4c8,e4c8,8ea1e4c8v,e4c8v 6977 e6a5b7 6977 00006977 b7a2 b7a2 b7a2 b7a2 b7a2 b7a2 b7a2 -3643 b7a3 b7a3 b7a3 * 6449 * 8ea1e4c9,e4c9,8ea1e4c9v,e4c9v 6960 e6a5a0 6960 00006960 b7a3 b7a3 b7a3 b7a3 b7a3 b7a3 b7a3 -3644 b7a4 b7a4 b7a4 * 644a * 8ea1e4ca,e4ca,8ea1e4cav,e4cav 6954 e6a594 6954 00006954 b7a4 b7a4 b7a4 b7a4 b7a4 b7a4 b7a4 -3645 b7a5 b7a5 b7a5 * 644b * 8ea1e4cb,e4cb,8ea1e4cbv,e4cbv 6975 e6a5b5 6975 00006975 b7a5 b7a5 b7a5 b7a5 b7a5 b7a5 b7a5 -3646 b7a6 b7a6 b7a6 * 644c * 8ea1e4cc,e4cc,8ea1e4ccv,e4ccv 6930 e6a4b0 6930 00006930 b7a6 b7a6 b7a6 b7a6 b7a6 b7a6 b7a6 -3647 b7a7 b7a7 b7a7 * 644d * 8ea1e4cd,e4cd,8ea1e4cdv,e4cdv 6982 e6a682 6982 00006982 b7a7 b7a7 b7a7 b7a7 b7a7 b7a7 b7a7 -3648 b7a8 b7a8 b7a8 * 644e * 8ea1e4ce,e4ce,8ea1e4cev,e4cev 694a e6a58a 694a 0000694a b7a8 b7a8 b7a8 b7a8 b7a8 b7a8 b7a8 -3649 b7a9 b7a9 b7a9 * 644f * 8ea1e4cf,e4cf,8ea1e4cfv,e4cfv 6968 e6a5a8 6968 00006968 b7a9 b7a9 b7a9 b7a9 b7a9 b7a9 b7a9 -3650 b7aa b7aa b7aa * 6450 * 8ea1e4d0,e4d0,8ea1e4d0v,e4d0v 696b e6a5ab 696b 0000696b b7aa b7aa b7aa b7aa b7aa b7aa b7aa -3651 b7ab b7ab b7ab * 6451 * 8ea1e4d1,e4d1,8ea1e4d1v,e4d1v 695e e6a59e 695e 0000695e b7ab b7ab b7ab b7ab b7ab b7ab b7ab -3652 b7ac b7ac b7ac * 6452 * 8ea1e4d2,e4d2,8ea1e4d2v,e4d2v 6953 e6a593 6953 00006953 b7ac b7ac b7ac b7ac b7ac b7ac b7ac -3653 b7ad b7ad b7ad * 6453 * 8ea1e4d3,e4d3,8ea1e4d3v,e4d3v 6979 e6a5b9 6979 00006979 b7ad b7ad b7ad b7ad b7ad b7ad b7ad -3654 b7ae b7ae b7ae * 6454 * 8ea1e4d4,e4d4,8ea1e4d4v,e4d4v 6986 e6a686 6986 00006986 b7ae b7ae b7ae b7ae b7ae b7ae b7ae -3655 b7af b7af b7af * 6455 * 8ea1e4d5,e4d5,8ea1e4d5v,e4d5v 695d e6a59d 695d 0000695d b7af b7af b7af b7af b7af b7af b7af -3656 b7b0 b7b0 b7b0 * 6456 * 8ea1e4d6,e4d6,8ea1e4d6v,e4d6v 6963 e6a5a3 6963 00006963 b7b0 b7b0 b7b0 b7b0 b7b0 b7b0 b7b0 -3657 b7b1 b7b1 b7b1 * 6457 * 8ea1e4d7,e4d7,8ea1e4d7v,e4d7v 695b e6a59b 695b 0000695b b7b1 b7b1 b7b1 b7b1 b7b1 b7b1 b7b1 -3658 b7b2 b7b2 b7b2 * 6458 * 8ea1e4d8,e4d8,8ea1e4d8v,e4d8v 6b47 e6ad87 6b47 00006b47 b7b2 b7b2 b7b2 b7b2 b7b2 b7b2 b7b2 -3659 b7b3 b7b3 b7b3 * 6459 * 8ea1e4d9,e4d9,8ea1e4d9v,e4d9v 6b72 e6adb2 6b72 00006b72 b7b3 b7b3 b7b3 b7b3 b7b3 b7b3 b7b3 -3660 b7b4 b7b4 b7b4 * 645a * 8ea1e4da,e4da,8ea1e4dav,e4dav 6bc0 e6af80 6bc0 00006bc0 b7b4 b7b4 b7b4 b7b4 b7b4 b7b4 b7b4 -3661 b7b5 b7b5 b7b5 * 645b * 8ea1e4db,e4db,8ea1e4dbv,e4dbv 6bbf e6aebf 6bbf 00006bbf b7b5 b7b5 b7b5 b7b5 b7b5 b7b5 b7b5 -3662 b7b6 b7b6 b7b6 * 645c * 8ea1e4dc,e4dc,8ea1e4dcv,e4dcv 6bd3 e6af93 6bd3 00006bd3 b7b6 b7b6 b7b6 b7b6 b7b6 b7b6 b7b6 -3663 b7b7 b7b7 b7b7 * 645d * 8ea1e4dd,e4dd,8ea1e4ddv,e4ddv 6bfd e6afbd 6bfd 00006bfd b7b7 b7b7 b7b7 b7b7 b7b7 b7b7 b7b7 -3664 b7b8 b7b8 b7b8 * 645e * 8ea1e4de,e4de,8ea1e4dev,e4dev 6ea2 e6baa2 6ea2 00006ea2 b7b8 b7b8 b7b8 b7b8 b7b8 b7b8 b7b8 -3665 b7b9 b7b9 b7b9 * 645f * 8ea1e4df,e4df,8ea1e4dfv,e4dfv 6eaf e6baaf 6eaf 00006eaf b7b9 b7b9 b7b9 b7b9 b7b9 b7b9 b7b9 -3666 b7ba b7ba b7ba * 6460 * 8ea1e4e0,e4e0,8ea1e4e0v,e4e0v 6ed3 e6bb93 6ed3 00006ed3 b7ba b7ba b7ba b7ba b7ba b7ba b7ba -3667 b7bb b7bb b7bb * 6461 * 8ea1e4e1,e4e1,8ea1e4e1v,e4e1v 6eb6 e6bab6 6eb6 00006eb6 b7bb b7bb b7bb b7bb b7bb b7bb b7bb -3668 b7bc b7bc b7bc * 6462 * 8ea1e4e2,e4e2,8ea1e4e2v,e4e2v 6ec2 e6bb82 6ec2 00006ec2 b7bc b7bc b7bc b7bc b7bc b7bc b7bc -3669 b7bd b7bd b7bd * 6463 * 8ea1e4e3,e4e3,8ea1e4e3v,e4e3v 6e90 e6ba90 6e90 00006e90 b7bd b7bd b7bd b7bd b7bd b7bd b7bd -3670 b7be b7be b7be * 6464 * 8ea1e4e4,e4e4,8ea1e4e4v,e4e4v 6e9d e6ba9d 6e9d 00006e9d b7be b7be b7be b7be b7be b7be b7be -3671 b7bf b7bf b7bf * 6465 * 8ea1e4e5,e4e5,8ea1e4e5v,e4e5v 6ec7 e6bb87 6ec7 00006ec7 b7bf b7bf b7bf b7bf b7bf b7bf b7bf -3672 b7c0 b7c0 b7c0 * 6466 * 8ea1e4e6,e4e6,8ea1e4e6v,e4e6v 6ec5 e6bb85 6ec5 00006ec5 b7c0 b7c0 b7c0 b7c0 b7c0 b7c0 b7c0 -3673 b7c1 b7c1 b7c1 * 6467 * 8ea1e4e7,e4e7,8ea1e4e7v,e4e7v 6ea5 e6baa5 6ea5 00006ea5 b7c1 b7c1 b7c1 b7c1 b7c1 b7c1 b7c1 -3674 b7c2 b7c2 b7c2 * 6468 * 8ea1e4e8,e4e8,8ea1e4e8v,e4e8v 6e98 e6ba98 6e98 00006e98 b7c2 b7c2 b7c2 b7c2 b7c2 b7c2 b7c2 -3675 b7c3 b7c3 b7c3 * 6469 * 8ea1e4e9,e4e9,8ea1e4e9v,e4e9v 6ebc e6babc 6ebc 00006ebc b7c3 b7c3 b7c3 b7c3 b7c3 b7c3 b7c3 -3676 b7c4 b7c4 b7c4 * 646a * 8ea1e4ea,e4ea,8ea1e4eav,e4eav 6eba e6baba 6eba 00006eba b7c4 b7c4 b7c4 b7c4 b7c4 b7c4 b7c4 -3677 b7c5 b7c5 b7c5 * 646b * 8ea1e4eb,e4eb,8ea1e4ebv,e4ebv 6eab e6baab 6eab 00006eab b7c5 b7c5 b7c5 b7c5 b7c5 b7c5 b7c5 -3678 b7c6 b7c6 b7c6 * 646c * 8ea1e4ec,e4ec,8ea1e4ecv,e4ecv 6ed1 e6bb91 6ed1 00006ed1 b7c6 b7c6 b7c6 b7c6 b7c6 b7c6 b7c6 -3679 b7c7 b7c7 b7c7 * 646d * 8ea1e4ed,e4ed,8ea1e4edv,e4edv 6e96 e6ba96 6e96 00006e96 b7c7 b7c7 b7c7 b7c7 b7c7 b7c7 b7c7 -3680 b7c8 b7c8 b7c8 * 646e * 8ea1e4ee,e4ee,8ea1e4eev,e4eev 6e9c e6ba9c 6e9c 00006e9c b7c8 b7c8 b7c8 b7c8 b7c8 b7c8 b7c8 -3681 b7c9 b7c9 b7c9 * 646f * 8ea1e4ef,e4ef,8ea1e4efv,e4efv 6ec4 e6bb84 6ec4 00006ec4 b7c9 b7c9 b7c9 b7c9 b7c9 b7c9 b7c9 -3682 b7ca b7ca b7ca * 6470 * 8ea1e4f0,e4f0,8ea1e4f0v,e4f0v 6ed4 e6bb94 6ed4 00006ed4 b7ca b7ca b7ca b7ca b7ca b7ca b7ca -3683 b7cb b7cb b7cb * 6471 * 8ea1e4f1,e4f1,8ea1e4f1v,e4f1v 6eaa e6baaa 6eaa 00006eaa b7cb b7cb b7cb b7cb b7cb b7cb b7cb -3684 b7cc b7cc b7cc * 6472 * 8ea1e4f2,e4f2,8ea1e4f2v,e4f2v 6ea7 e6baa7 6ea7 00006ea7 b7cc b7cc b7cc b7cc b7cc b7cc b7cc -3685 b7cd b7cd b7cd * 6473 * 8ea1e4f3,e4f3,8ea1e4f3v,e4f3v 6eb4 e6bab4 6eb4 00006eb4 b7cd b7cd b7cd b7cd b7cd b7cd b7cd -3686 b7ce b7ce b7ce * 6474 * 8ea1e4f4,e4f4,8ea1e4f4v,e4f4v 714e e7858e 714e 0000714e b7ce b7ce b7ce b7ce b7ce b7ce b7ce -3687 b7cf b7cf b7cf * 6475 * 8ea1e4f5,e4f5,8ea1e4f5v,e4f5v 7159 e78599 7159 00007159 b7cf b7cf b7cf b7cf b7cf b7cf b7cf -3688 b7d0 b7d0 b7d0 * 6476 * 8ea1e4f6,e4f6,8ea1e4f6v,e4f6v 7169 e785a9 7169 00007169 b7d0 b7d0 b7d0 b7d0 b7d0 b7d0 b7d0 -3689 b7d1 b7d1 b7d1 * 6477 * 8ea1e4f7,e4f7,8ea1e4f7v,e4f7v 7164 e785a4 7164 00007164 b7d1 b7d1 b7d1 b7d1 b7d1 b7d1 b7d1 -3690 b7d2 b7d2 b7d2 * 6478 * 8ea1e4f8,e4f8,8ea1e4f8v,e4f8v 7149 e78589 7149 00007149 b7d2 b7d2 b7d2 b7d2 b7d2 b7d2 b7d2 -3691 b7d3 b7d3 b7d3 * 6479 * 8ea1e4f9,e4f9,8ea1e4f9v,e4f9v 7167 e785a7 7167 00007167 b7d3 b7d3 b7d3 b7d3 b7d3 b7d3 b7d3 -3692 b7d4 b7d4 b7d4 * 647a * 8ea1e4fa,e4fa,8ea1e4fav,e4fav 715c e7859c 715c 0000715c b7d4 b7d4 b7d4 b7d4 b7d4 b7d4 b7d4 -3693 b7d5 b7d5 b7d5 * 647b * 8ea1e4fb,e4fb,8ea1e4fbv,e4fbv 716c e785ac 716c 0000716c b7d5 b7d5 b7d5 b7d5 b7d5 b7d5 b7d5 -3694 b7d6 b7d6 b7d6 * 647c * 8ea1e4fc,e4fc,8ea1e4fcv,e4fcv 7166 e785a6 7166 00007166 b7d6 b7d6 b7d6 b7d6 b7d6 b7d6 b7d6 -3695 b7d7 b7d7 b7d7 * 647d * 8ea1e4fd,e4fd,8ea1e4fdv,e4fdv 714c e7858c 714c 0000714c b7d7 b7d7 b7d7 b7d7 b7d7 b7d7 b7d7 -3696 b7d8 b7d8 b7d8 * 647e * 8ea1e4fe,e4fe,8ea1e4fev,e4fev 7165 e785a5 7165 00007165 b7d8 b7d8 b7d8 b7d8 b7d8 b7d8 b7d8 -3697 b7d9 b7d9 b7d9 * 6521 * 8ea1e5a1,e5a1,8ea1e5a1v,e5a1v 715e e7859e 715e 0000715e b7d9 b7d9 b7d9 b7d9 b7d9 b7d9 b7d9 -3698 b7da b7da b7da * 6522 * 8ea1e5a2,e5a2,8ea1e5a2v,e5a2v 7146 e78586 7146 00007146 b7da b7da,fce5 91d0,b7da b7da b7da b7da b7da -3699 b7db b7db b7db * 6523 * 8ea1e5a3,e5a3,8ea1e5a3v,e5a3v 7168 e785a8 7168 00007168 b7db b7db b7db b7db b7db b7db b7db -3700 b7dc b7dc b7dc * 6524 * 8ea1e5a4,e5a4,8ea1e5a4v,e5a4v 7156 e78596 7156 00007156 b7dc b7dc b7dc b7dc b7dc b7dc b7dc -3701 b7dd b7dd b7dd * 6525 * 8ea1e5a5,e5a5,8ea1e5a5v,e5a5v 723a e788ba 723a 0000723a b7dd b7dd b7dd b7dd b7dd b7dd b7dd -3702 b7de b7de b7de * 6526 * 8ea1e5a6,e5a6,8ea1e5a6v,e5a6v 7252 e78992 7252 00007252 b7de b7de b7de b7de b7de b7de b7de -3703 b7df b7df b7df * 6527 * 8ea1e5a7,e5a7,8ea1e5a7v,e5a7v 7337 e78cb7 7337 00007337 b7df b7df b7df b7df b7df b7df b7df -3704 b7e0 b7e0 b7e0 * 6528 * 8ea1e5a8,e5a8,8ea1e5a8v,e5a8v 7345 e78d85 7345 00007345 b7e0 b7e0 b7e0 b7e0 b7e0 b7e0 b7e0 -3705 b7e1 b7e1 b7e1 * 6529 * 8ea1e5a9,e5a9,8ea1e5a9v,e5a9v 733f e78cbf 733f 0000733f b7e1 b7e1 b7e1 b7e1 b7e1 b7e1 b7e1 -3706 b7e2 b7e2 b7e2 * 652a * 8ea1e5aa,e5aa,8ea1e5aav,e5aav 733e e78cbe 733e 0000733e b7e2 b7e2 b7e2 b7e2 b7e2 b7e2 b7e2 -3707 b7e3 b7e3 b7e3 * 652b * 8ea1e5ab,e5ab,8ea1e5abv,e5abv 746f e791af 746f 0000746f b7e3 b7e3 b7e3 b7e3 b7e3 b7e3 b7e3 -3708 b7e4 b7e4 b7e4 * 652c * 8ea1e5ac,e5ac,8ea1e5acv,e5acv 745a e7919a 745a 0000745a b7e4 b7e4 b7e4 b7e4 b7e4 b7e4 b7e4 -3709 b7e5 b7e5 b7e5 * 652d * 8ea1e5ad,e5ad,8ea1e5adv,e5adv 7455 e79195 7455 00007455 b7e5 b7e5 b7e5 b7e5 b7e5 b7e5 b7e5 -3710 b7e6 b7e6 b7e6 * 652e * 8ea1e5ae,e5ae,8ea1e5aev,e5aev 745f e7919f 745f 0000745f b7e6 b7e6 b7e6 b7e6 b7e6 b7e6 b7e6 -3711 b7e7 b7e7 b7e7 * 652f * 8ea1e5af,e5af,8ea1e5afv,e5afv 745e e7919e 745e 0000745e b7e7 b7e7 b7e7 b7e7 b7e7 b7e7 b7e7 -3712 b7e8 b7e8 b7e8 * 6530 * 8ea1e5b0,e5b0,8ea1e5b0v,e5b0v 7441 e79181 7441 00007441 b7e8 b7e8 b7e8 b7e8 b7e8 b7e8 b7e8 -3713 b7e9 b7e9 b7e9 * 6531 * 8ea1e5b1,e5b1,8ea1e5b1v,e5b1v 743f e790bf 743f 0000743f b7e9 b7e9 b7e9 b7e9 b7e9 b7e9 b7e9 -3714 b7ea b7ea b7ea * 6532 * 8ea1e5b2,e5b2,8ea1e5b2v,e5b2v 7459 e79199 7459 00007459 b7ea b7ea b7ea b7ea b7ea b7ea b7ea -3715 b7eb b7eb b7eb * 6533 * 8ea1e5b3,e5b3,8ea1e5b3v,e5b3v 745b e7919b 745b 0000745b b7eb b7eb b7eb b7eb b7eb b7eb b7eb -3716 b7ec b7ec b7ec * 6534 * 8ea1e5b4,e5b4,8ea1e5b4v,e5b4v 745c ee8aa3,e7919c e2a3,745c 0000e2a3,0000745c fe6f,b7ec b7ec b7ec b7ec b7ec b7ec fe6f,b7ec -3717 b7ed b7ed b7ed * 6535 * 8ea1e5b5,e5b5,8ea1e5b5v,e5b5v 7576 e795b6 7576 00007576 b7ed b7ed b7ed b7ed b7ed b7ed b7ed -3718 b7ee b7ee b7ee * 6536 * 8ea1e5b6,e5b6,8ea1e5b6v,e5b6v 7578 e795b8 7578 00007578 b7ee b7ee b7ee b7ee b7ee b7ee b7ee -3719 b7ef b7ef b7ef * 6537 * 8ea1e5b7,e5b7,8ea1e5b7v,e5b7v 7600 e79880 7600 00007600 b7ef b7ef b7ef b7ef b7ef b7ef b7ef -3720 b7f0 b7f0 b7f0 * 6538 * 8ea1e5b8,e5b8,8ea1e5b8v,e5b8v 75f0 e797b0 75f0 000075f0 b7f0 b7f0 b7f0 b7f0 b7f0 b7f0 b7f0 -3721 b7f1 b7f1 b7f1 * 6539 * 8ea1e5b9,e5b9,8ea1e5b9v,e5b9v 7601 e79881 7601 00007601 b7f1 b7f1 b7f1 b7f1 b7f1 b7f1 b7f1 -3722 b7f2 b7f2 b7f2 * 653a * 8ea1e5ba,e5ba,8ea1e5bav,e5bav 75f2 e797b2 75f2 000075f2 b7f2 b7f2 b7f2 b7f2 b7f2 b7f2 b7f2 -3723 b7f3 b7f3 b7f3 * 653b * 8ea1e5bb,e5bb,8ea1e5bbv,e5bbv 75f1 e797b1 75f1 000075f1 b7f3 b7f3 b7f3 b7f3 b7f3 b7f3 b7f3 -3724 b7f4 b7f4 b7f4 * 653c * 8ea1e5bc,e5bc,8ea1e5bcv,e5bcv 75fa e797ba 75fa 000075fa b7f4 b7f4 b7f4 b7f4 b7f4 b7f4 b7f4 -3725 b7f5 b7f5 b7f5 * 653d * 8ea1e5bd,e5bd,8ea1e5bdv,e5bdv 75ff e797bf 75ff 000075ff b7f5 b7f5 b7f5 b7f5 b7f5 b7f5 b7f5 -3726 b7f6 b7f6 b7f6 * 653e * 8ea1e5be,e5be,8ea1e5bev,e5bev 75f4 e797b4 75f4 000075f4 b7f6 b7f6 b7f6 b7f6 b7f6 b7f6 b7f6 -3727 b7f7 b7f7 b7f7 * 653f * 8ea1e5bf,e5bf,8ea1e5bfv,e5bfv 75f3 e797b3 75f3 000075f3 b7f7 b7f7 b7f7 b7f7 b7f7 b7f7 b7f7 -3728 b7f8 b7f8 b7f8 * 6540 * 8ea1e5c0,e5c0,8ea1e5c0v,e5c0v 76de e79b9e 76de 000076de b7f8 b7f8 b7f8 b7f8 b7f8 b7f8 b7f8 -3729 b7f9 b7f9 b7f9 * 6541 * 8ea1e5c1,e5c1,8ea1e5c1v,e5c1v 76df e79b9f 76df 000076df b7f9 b7f9 b7f9 b7f9 b7f9 b7f9 b7f9 -3730 b7fa b7fa b7fa * 6542 * 8ea1e5c2,e5c2,8ea1e5c2v,e5c2v 775b e79d9b 775b 0000775b b7fa b7fa b7fa b7fa b7fa b7fa b7fa -3731 b7fb b7fb b7fb * 6543 * 8ea1e5c3,e5c3,8ea1e5c3v,e5c3v 776b e79dab 776b 0000776b b7fb b7fb b7fb b7fb b7fb b7fb b7fb -3732 b7fc b7fc b7fc * 6544 * 8ea1e5c4,e5c4,8ea1e5c4v,e5c4v 7766 e79da6 7766 00007766 b7fc b7fc b7fc b7fc b7fc b7fc b7fc -3733 b7fd b7fd b7fd * 6545 * 8ea1e5c5,e5c5,8ea1e5c5v,e5c5v 775e e79d9e 775e 0000775e b7fd b7fd b7fd b7fd b7fd b7fd b7fd -3734 b7fe b7fe b7fe * 6546 * 8ea1e5c6,e5c6,8ea1e5c6v,e5c6v 7763 e79da3 7763 00007763 b7fe b7fe b7fe b7fe b7fe b7fe b7fe -3735 b840 b840 b840 * 6547 * 8ea1e5c7,e5c7,8ea1e5c7v,e5c7v 7779 e79db9 7779 00007779 b840 b840 b840 b840 b840 b840 b840 -3736 b841 b841 b841 * 6548 * 8ea1e5c8,e5c8,8ea1e5c8v,e5c8v 776a e79daa 776a 0000776a b841 b841 b841 b841 b841 b841 b841 -3737 b842 b842 b842 * 6549 * 8ea1e5c9,e5c9,8ea1e5c9v,e5c9v 776c e79dac 776c 0000776c b842 b842 b842 b842 b842 b842 b842 -3738 b843 b843 b843 * 654a * 8ea1e5ca,e5ca,8ea1e5cav,e5cav 775c e79d9c 775c 0000775c b843 b843 b843 b843 b843 b843 b843 -3739 b844 b844 b844 * 654b * 8ea1e5cb,e5cb,8ea1e5cbv,e5cbv 7765 e79da5 7765 00007765 b844 b844 b844 b844 b844 b844 b844 -3740 b845 b845 b845 * 654c * 8ea1e5cc,e5cc,8ea1e5ccv,e5ccv 7768 e79da8 7768 00007768 b845 b845 b845 b845 b845 b845 b845 -3741 b846 b846 b846 * 654d * 8ea1e5cd,e5cd,8ea1e5cdv,e5cdv 7762 e79da2 7762 00007762 b846 b846 b846 b846 b846 b846 b846 -3742 b847 b847 b847 * 654e * 8ea1e5ce,e5ce,8ea1e5cev,e5cev 77ee e79fae 77ee 000077ee b847 b847 b847 b847 b847 b847 b847 -3743 b848 b848 b848 * 654f * 8ea1e5cf,e5cf,8ea1e5cfv,e5cfv 788e e7a28e 788e 0000788e b848 b848 b848 b848 b848 b848 b848 -3744 b849 b849 b849 * 6550 * 8ea1e5d0,e5d0,8ea1e5d0v,e5d0v 78b0 e7a2b0 78b0 000078b0 b849 b849 b849 b849 b849 b849 b849 -3745 b84a b84a b84a * 6551 * 8ea1e5d1,e5d1,8ea1e5d1v,e5d1v 7897 e7a297 7897 00007897 b84a b84a b84a b84a b84a b84a b84a -3746 b84b b84b b84b * 6552 * 8ea1e5d2,e5d2,8ea1e5d2v,e5d2v 7898 e7a298 7898 00007898 b84b b84b b84b b84b b84b b84b b84b -3747 b84c b84c b84c * 6553 * 8ea1e5d3,e5d3,8ea1e5d3v,e5d3v 788c e7a28c 788c 0000788c b84c b84c b84c b84c b84c b84c b84c -3748 b84d b84d b84d * 6554 * 8ea1e5d4,e5d4,8ea1e5d4v,e5d4v 7889 e7a289 7889 00007889 b84d b84d b84d b84d b84d b84d b84d -3749 b84e b84e b84e * 6555 * 8ea1e5d5,e5d5,8ea1e5d5v,e5d5v 787c e7a1bc 787c 0000787c b84e b84e b84e b84e b84e b84e b84e -3750 b84f b84f b84f * 6556 * 8ea1e5d6,e5d6,8ea1e5d6v,e5d6v 7891 e7a291 7891 00007891 b84f b84f b84f b84f b84f b84f b84f -3751 b850 b850 b850 * 6557 * 8ea1e5d7,e5d7,8ea1e5d7v,e5d7v 7893 e7a293 7893 00007893 b850 b850 b850 b850 b850 b850 b850 -3752 b851 b851 b851 * 6558 * 8ea1e5d8,e5d8,8ea1e5d8v,e5d8v 787f e7a1bf 787f 0000787f b851 b851 b851 b851 b851 b851 b851 -3753 b852 b852 b852 * 6559 * 8ea1e5d9,e5d9,8ea1e5d9v,e5d9v 797a e7a5ba 797a 0000797a b852 b852 b852 b852 b852 b852 b852 -3754 b853 b853 b853 * 655a * 8ea1e5da,e5da,8ea1e5dav,e5dav 797f e7a5bf 797f 0000797f b853 b853 b853 b853 b853 b853 b853 -3755 b854 b854 b854 * 655b * 8ea1e5db,e5db,8ea1e5dbv,e5dbv 7981 e7a681 7981 00007981 b854 b854 b854 b854 b854 b854 b854 -3756 b855 b855 b855 * 655c * 8ea1e5dc,e5dc,8ea1e5dcv,e5dcv 842c e890ac 842c 0000842c b855 b855 b855 b855 b855 b855 b855 -3757 b856 b856 b856 * 655d * 8ea1e5dd,e5dd,8ea1e5ddv,e5ddv 79bd e7a6bd 79bd 000079bd b856 b856 b856 b856 b856 b856 b856 -3758 b857 b857 b857 * 655e * 8ea1e5de,e5de,8ea1e5dev,e5dev 7a1c e7a89c 7a1c 00007a1c b857 b857 b857 b857 b857 b857 b857 -3759 b858 b858 b858 * 655f * 8ea1e5df,e5df,8ea1e5dfv,e5dfv 7a1a e7a89a 7a1a 00007a1a b858 b858 b858 b858 b858 b858 b858 -3760 b859 b859 b859 * 6560 * 8ea1e5e0,e5e0,8ea1e5e0v,e5e0v 7a20 e7a8a0 7a20 00007a20 b859 b859 b859 b859 b859 b859 b859 -3761 b85a b85a b85a * 6561 * 8ea1e5e1,e5e1,8ea1e5e1v,e5e1v 7a14 e7a894 7a14 00007a14 b85a b85a b85a b85a b85a b85a b85a -3762 b85b b85b b85b * 6562 * 8ea1e5e2,e5e2,8ea1e5e2v,e5e2v 7a1f e7a89f 7a1f 00007a1f b85b b85b b85b b85b b85b b85b b85b -3763 b85c b85c b85c * 6563 * 8ea1e5e3,e5e3,8ea1e5e3v,e5e3v 7a1e e7a89e 7a1e 00007a1e b85c b85c b85c b85c b85c b85c b85c -3764 b85d b85d b85d * 6564 * 8ea1e5e4,e5e4,8ea1e5e4v,e5e4v 7a9f e7aa9f 7a9f 00007a9f b85d b85d b85d b85d b85d b85d b85d -3765 b85e b85e b85e * 6565 * 8ea1e5e5,e5e5,8ea1e5e5v,e5e5v 7aa0 e7aaa0 7aa0 00007aa0 b85e b85e b85e b85e b85e b85e b85e -3766 b85f b85f b85f * 6566 * 8ea1e5e6,e5e6,8ea1e5e6v,e5e6v 7b77 e7adb7 7b77 00007b77 b85f b85f b85f b85f b85f b85f b85f -3767 b860 b860 b860 * 6567 * 8ea1e5e7,e5e7,8ea1e5e7v,e5e7v 7bc0 e7af80 7bc0 00007bc0 b860 b860 b860 b860 b860 b860 b860 -3768 b861 b861 b861 * 6568 * 8ea1e5e8,e5e8,8ea1e5e8v,e5e8v 7b60 e7ada0 7b60 00007b60 b861 b861 b861 b861 b861 b861 b861 -3769 b862 b862 b862 * 6569 * 8ea1e5e9,e5e9,8ea1e5e9v,e5e9v 7b6e e7adae 7b6e 00007b6e b862 b862 b862 b862 b862 b862 b862 -3770 b863 b863 b863 * 656a * 8ea1e5ea,e5ea,8ea1e5eav,e5eav 7b67 e7ada7 7b67 00007b67 b863 b863 b863 b863 b863 b863 b863 -3771 b864 b864 b864 * 656b * 8ea1e5eb,e5eb,8ea1e5ebv,e5ebv 7cb1 e7b2b1 7cb1 00007cb1 b864 b864 b864 b864 b864 b864 b864 -3772 b865 b865 b865 * 656c * 8ea1e5ec,e5ec,8ea1e5ecv,e5ecv 7cb3 e7b2b3 7cb3 00007cb3 b865 b865 b865 b865 b865 b865 b865 -3773 b866 b866 b866 * 656d * 8ea1e5ed,e5ed,8ea1e5edv,e5edv 7cb5 e7b2b5 7cb5 00007cb5 b866 b866 b866 b866 b866 b866 b866 -3774 b867 b867 b867 * 656e * 8ea1e5ee,e5ee,8ea1e5eev,e5eev 7d93 e7b693 7d93 00007d93 b867 b867 b867 b867 b867 b867 b867 -3775 b868 b868 b868 * 656f * 8ea1e5ef,e5ef,8ea1e5efv,e5efv 7d79 e7b5b9 7d79 00007d79 b868 b868 b868 b868 b868 b868 b868 -3776 b869 b869 b869 * 6570 * 8ea1e5f0,e5f0,8ea1e5f0v,e5f0v 7d91 e7b691 7d91 00007d91 b869 b869 b869 b869 b869 b869 b869 -3777 b86a b86a b86a * 6571 * 8ea1e5f1,e5f1,8ea1e5f1v,e5f1v 7d81 e7b681 7d81 00007d81 b86a b86a b86a b86a b86a b86a b86a -3778 b86b b86b b86b * 6572 * 8ea1e5f2,e5f2,8ea1e5f2v,e5f2v 7d8f e7b68f 7d8f 00007d8f b86b b86b b86b b86b b86b b86b b86b -3779 b86c b86c b86c * 6573 * 8ea1e5f3,e5f3,8ea1e5f3v,e5f3v 7d5b e7b59b 7d5b 00007d5b b86c b86c b86c b86c b86c b86c b86c -3780 b86d b86d b86d * 6574 * 8ea1e5f4,e5f4,8ea1e5f4v,e5f4v 7f6e e7bdae 7f6e 00007f6e b86d b86d b86d b86d b86d b86d b86d -3781 b86e b86e b86e * 6575 * 8ea1e5f5,e5f5,8ea1e5f5v,e5f5v 7f69 e7bda9 7f69 00007f69 b86e b86e b86e b86e b86e b86e b86e -3782 b86f b86f b86f * 6576 * 8ea1e5f6,e5f6,8ea1e5f6v,e5f6v 7f6a e7bdaa 7f6a 00007f6a b86f b86f b86f b86f b86f b86f b86f -3783 b870 b870 b870 * 6577 * 8ea1e5f7,e5f7,8ea1e5f7v,e5f7v 7f72 e7bdb2 7f72 00007f72 b870 b870 b870 b870 b870 b870 b870 -3784 b871 b871 b871 * 6578 * 8ea1e5f8,e5f8,8ea1e5f8v,e5f8v 7fa9 e7bea9 7fa9 00007fa9 b871 b871 b871 b871 b871 b871 b871 -3785 b872 b872 b872 * 6579 * 8ea1e5f9,e5f9,8ea1e5f9v,e5f9v 7fa8 e7bea8 7fa8 00007fa8 b872 b872 b872 b872 b872 b872 b872 -3786 b873 b873 b873 * 657a * 8ea1e5fa,e5fa,8ea1e5fav,e5fav 7fa4 e7bea4 7fa4 00007fa4 b873 b873 b873 b873 b873 b873 b873 -3787 b874 b874 b874 * 657b * 8ea1e5fb,e5fb,8ea1e5fbv,e5fbv 8056 e88196 8056 00008056 b874 b874 b874 b874 b874 b874 b874 -3788 b875 b875 b875 * 657c * 8ea1e5fc,e5fc,8ea1e5fcv,e5fcv 8058 e88198 8058 00008058 b875 b875 b875 b875 b875 b875 b875 -3789 b876 b876 b876 * 657d * 8ea1e5fd,e5fd,8ea1e5fdv,e5fdv 8086 e88286 8086 00008086 b876 b876 b876 b876 b876 b876 b876 -3790 b877 b877 b877 * 657e * 8ea1e5fe,e5fe,8ea1e5fev,e5fev 8084 e88284 8084 00008084 b877 b877 b877 b877 b877 b877 b877 -3791 b878 b878 b878 * 6621 * 8ea1e6a1,e6a1,8ea1e6a1v,e6a1v 8171 e885b1 8171 00008171 b878 b878 b878 b878 b878 b878 b878 -3792 b879 b879 b879 * 6622 * 8ea1e6a2,e6a2,8ea1e6a2v,e6a2v 8170 e885b0 8170 00008170 b879 b879 b879 b879 b879 b879 b879 -3793 b87a b87a b87a * 6623 * 8ea1e6a3,e6a3,8ea1e6a3v,e6a3v 8178 e885b8 8178 00008178 b87a b87a b87a b87a b87a b87a b87a -3794 b87b b87b b87b * 6624 * 8ea1e6a4,e6a4,8ea1e6a4v,e6a4v 8165 e885a5 8165 00008165 b87b b87b b87b b87b b87b b87b b87b -3795 b87c b87c b87c * 6625 * 8ea1e6a5,e6a5,8ea1e6a5v,e6a5v 816e e885ae 816e 0000816e b87c b87c b87c b87c b87c b87c b87c -3796 b87d b87d b87d * 6626 * 8ea1e6a6,e6a6,8ea1e6a6v,e6a6v 8173 e885b3 8173 00008173 b87d b87d b87d b87d b87d b87d b87d -3797 b87e b87e b87e * 6627 * 8ea1e6a7,e6a7,8ea1e6a7v,e6a7v 816b e885ab 816b 0000816b b87e b87e b87e b87e b87e b87e b87e -3798 b8a1 b8a1 b8a1 * 6628 * 8ea1e6a8,e6a8,8ea1e6a8v,e6a8v 8179 e885b9 8179 00008179 b8a1 b8a1 b8a1 b8a1 b8a1 b8a1 b8a1 -3799 b8a2 b8a2 b8a2 * 6629 * 8ea1e6a9,e6a9,8ea1e6a9v,e6a9v 817a e885ba 817a 0000817a b8a2 b8a2 b8a2 b8a2 b8a2 b8a2 b8a2 -3800 b8a3 b8a3 b8a3 * 662a * 8ea1e6aa,e6aa,8ea1e6aav,e6aav 8166 e885a6 8166 00008166 b8a3 b8a3 b8a3 b8a3 b8a3 b8a3 b8a3 -3801 b8a4 b8a4 b8a4 * 662b * 8ea1e6ab,e6ab,8ea1e6abv,e6abv 8205 e88885 8205 00008205 b8a4 b8a4 b8a4 b8a4 b8a4 b8a4 b8a4 -3802 b8a5 b8a5 b8a5 * 662c * 8ea1e6ac,e6ac,8ea1e6acv,e6acv 8247 e88987 8247 00008247 b8a5 b8a5 b8a5 b8a5 b8a5 b8a5 b8a5 -3803 b8a6 b8a6 b8a6 * 662d * 8ea1e6ad,e6ad,8ea1e6adv,e6adv 8482 e89282 8482 00008482 b8a6 b8a6 b8a6 b8a6 b8a6 b8a6 b8a6 -3804 b8a7 b8a7 b8a7 * 662e * 8ea1e6ae,e6ae,8ea1e6aev,e6aev 8477 e891b7 8477 00008477 b8a7 b8a7 b8a7 b8a7 b8a7 b8a7 b8a7 -3805 b8a8 b8a8 b8a8 * 662f * 8ea1e6af,e6af,8ea1e6afv,e6afv 843d e890bd 843d 0000843d b8a8 b8a8 b8a8 b8a8 b8a8 b8a8 b8a8 -3806 b8a9 b8a9 b8a9 * 6630 * 8ea1e6b0,e6b0,8ea1e6b0v,e6b0v 8431 e890b1 8431 00008431 b8a9 b8a9 b8a9 b8a9 b8a9 b8a9 b8a9 -3807 b8aa b8aa b8aa * 6631 * 8ea1e6b1,e6b1,8ea1e6b1v,e6b1v 8475 e891b5 8475 00008475 b8aa b8aa b8aa b8aa b8aa b8aa b8aa -3808 b8ab b8ab b8ab * 6632 * 8ea1e6b2,e6b2,8ea1e6b2v,e6b2v 8466 e891a6 8466 00008466 b8ab b8ab b8ab b8ab b8ab b8ab b8ab -3809 b8ac b8ac b8ac * 6633 * 8ea1e6b3,e6b3,8ea1e6b3v,e6b3v 846b e891ab 846b 0000846b b8ac b8ac b8ac b8ac b8ac b8ac b8ac -3810 b8ad b8ad b8ad * 6634 * 8ea1e6b4,e6b4,8ea1e6b4v,e6b4v 8449 e89189 8449 00008449 b8ad b8ad b8ad b8ad b8ad b8ad b8ad -3811 b8ae b8ae b8ae * 6635 * 8ea1e6b5,e6b5,8ea1e6b5v,e6b5v 846c e891ac 846c 0000846c b8ae b8ae b8ae b8ae b8ae b8ae b8ae -3812 b8af b8af b8af * 6636 * 8ea1e6b6,e6b6,8ea1e6b6v,e6b6v 845b e8919b 845b 0000845b b8af b8af b8af b8af b8af b8af b8af -3813 b8b0 b8b0 b8b0 * 6637 * 8ea1e6b7,e6b7,8ea1e6b7v,e6b7v 843c e890bc 843c 0000843c b8b0 b8b0 b8b0 b8b0 b8b0 b8b0 b8b0 -3814 b8b1 b8b1 b8b1 * 6638 * 8ea1e6b8,e6b8,8ea1e6b8v,e6b8v 8435 e890b5 8435 00008435 b8b1 b8b1 b8b1 b8b1 b8b1 b8b1 b8b1 -3815 b8b2 b8b2 b8b2 * 6639 * 8ea1e6b9,e6b9,8ea1e6b9v,e6b9v 8461 e891a1 8461 00008461 b8b2 b8b2 b8b2 b8b2 b8b2 b8b2 b8b2 -3816 b8b3 b8b3 b8b3 * 663a * 8ea1e6ba,e6ba,8ea1e6bav,e6bav 8463 e891a3 8463 00008463 b8b3 b8b3 b8b3 b8b3 b8b3 b8b3 b8b3 -3817 b8b4 b8b4 b8b4 * 663b * 8ea1e6bb,e6bb,8ea1e6bbv,e6bbv 8469 e891a9 8469 00008469 b8b4 b8b4 b8b4 b8b4 b8b4 b8b4 b8b4 -3818 b8b5 b8b5 b8b5 * 663c * 8ea1e6bc,e6bc,8ea1e6bcv,e6bcv 846d e891ad 846d 0000846d b8b5 b8b5 b8b5 b8b5 b8b5 b8b5 b8b5 -3819 b8b6 b8b6 b8b6 * 663d * 8ea1e6bd,e6bd,8ea1e6bdv,e6bdv 8446 e89186 8446 00008446 b8b6 b8b6 b8b6 b8b6 b8b6 b8b6 b8b6 -3820 b8b7 b8b7 b8b7 * 663e * 8ea1e6be,e6be,8ea1e6bev,e6bev 865e e8999e 865e 0000865e b8b7 b8b7 b8b7 b8b7 b8b7 b8b7 b8b7 -3821 b8b8 b8b8 b8b8 * 663f * 8ea1e6bf,e6bf,8ea1e6bfv,e6bfv 865c e8999c 865c 0000865c b8b8 b8b8 b8b8 b8b8 b8b8 b8b8 b8b8 -3822 b8b9 b8b9 b8b9 * 6640 * 8ea1e6c0,e6c0,8ea1e6c0v,e6c0v 865f e8999f 865f 0000865f b8b9 b8b9 b8b9 b8b9 b8b9 b8b9 b8b9 -3823 b8ba b8ba b8ba * 6641 * 8ea1e6c1,e6c1,8ea1e6c1v,e6c1v 86f9 e89bb9 86f9 000086f9 b8ba b8ba b8ba b8ba b8ba b8ba b8ba -3824 b8bb b8bb b8bb * 6642 * 8ea1e6c2,e6c2,8ea1e6c2v,e6c2v 8713 e89c93 8713 00008713 b8bb b8bb b8bb b8bb b8bb b8bb b8bb -3825 b8bc b8bc b8bc * 6643 * 8ea1e6c3,e6c3,8ea1e6c3v,e6c3v 8708 e89c88 8708 00008708 b8bc b8bc b8bc b8bc b8bc b8bc b8bc -3826 b8bd b8bd b8bd * 6644 * 8ea1e6c4,e6c4,8ea1e6c4v,e6c4v 8707 e89c87 8707 00008707 b8bd b8bd b8bd b8bd b8bd b8bd b8bd -3827 b8be b8be b8be * 6645 * 8ea1e6c5,e6c5,8ea1e6c5v,e6c5v 8700 e89c80 8700 00008700 b8be b8be b8be b8be b8be b8be b8be -3828 b8bf b8bf b8bf * 6646 * 8ea1e6c6,e6c6,8ea1e6c6v,e6c6v 86fe e89bbe 86fe 000086fe b8bf b8bf b8bf b8bf b8bf b8bf b8bf -3829 b8c0 b8c0 b8c0 * 6647 * 8ea1e6c7,e6c7,8ea1e6c7v,e6c7v 86fb e89bbb 86fb 000086fb b8c0 b8c0 b8c0 b8c0 b8c0 b8c0 b8c0 -3830 b8c1 b8c1 b8c1 * 6648 * 8ea1e6c8,e6c8,8ea1e6c8v,e6c8v 8702 e89c82 8702 00008702 b8c1 b8c1 b8c1 b8c1 b8c1 b8c1 b8c1 -3831 b8c2 b8c2 b8c2 * 6649 * 8ea1e6c9,e6c9,8ea1e6c9v,e6c9v 8703 e89c83 8703 00008703 b8c2 b8c2 b8c2 b8c2 b8c2 b8c2 b8c2 -3832 b8c3 b8c3 b8c3 * 664a * 8ea1e6ca,e6ca,8ea1e6cav,e6cav 8706 e89c86 8706 00008706 b8c3 b8c3 b8c3 b8c3 b8c3 b8c3 b8c3 -3833 b8c4 b8c4 b8c4 * 664b * 8ea1e6cb,e6cb,8ea1e6cbv,e6cbv 870a e89c8a 870a 0000870a b8c4 b8c4 b8c4 b8c4 b8c4 b8c4 b8c4 -3834 b8c5 b8c5 b8c5 * 664c * 8ea1e6cc,e6cc,8ea1e6ccv,e6ccv 8859 e8a199 8859 00008859 b8c5 b8c5 b8c5 b8c5 b8c5 b8c5 b8c5 -3835 b8c6 b8c6 b8c6 * 664d * 8ea1e6cd,e6cd,8ea1e6cdv,e6cdv 88df e8a39f 88df 000088df b8c6 b8c6 b8c6 b8c6 b8c6 b8c6 b8c6 -3836 b8c7 b8c7 b8c7 * 664e * 8ea1e6ce,e6ce,8ea1e6cev,e6cev 88d4 e8a394 88d4 000088d4 b8c7 b8c7 b8c7 b8c7 b8c7 b8c7 b8c7 -3837 b8c8 b8c8 b8c8 * 664f * 8ea1e6cf,e6cf,8ea1e6cfv,e6cfv 88d9 e8a399 88d9 000088d9 b8c8 b8c8 b8c8 b8c8 b8c8 b8c8 b8c8 -3838 b8c9 b8c9 b8c9 * 6650 * 8ea1e6d0,e6d0,8ea1e6d0v,e6d0v 88dc e8a39c 88dc 000088dc b8c9 b8c9 b8c9 b8c9 b8c9 b8c9 b8c9 -3839 b8ca b8ca b8ca * 6651 * 8ea1e6d1,e6d1,8ea1e6d1v,e6d1v 88d8 e8a398 88d8 000088d8 b8ca b8ca b8ca b8ca b8ca b8ca b8ca -3840 b8cb b8cb b8cb * 6652 * 8ea1e6d2,e6d2,8ea1e6d2v,e6d2v 88dd e8a39d 88dd 000088dd b8cb b8cb b8cb b8cb b8cb b8cb b8cb -3841 b8cc b8cc b8cc * 6653 * 8ea1e6d3,e6d3,8ea1e6d3v,e6d3v 88e1 e8a3a1 88e1 000088e1 b8cc b8cc b8cc b8cc b8cc b8cc b8cc -3842 b8cd b8cd b8cd * 6654 * 8ea1e6d4,e6d4,8ea1e6d4v,e6d4v 88ca e8a38a 88ca 000088ca b8cd b8cd b8cd b8cd b8cd b8cd b8cd -3843 b8ce b8ce b8ce * 6655 * 8ea1e6d5,e6d5,8ea1e6d5v,e6d5v 88d5 e8a395 88d5 000088d5 b8ce b8ce b8ce b8ce b8ce b8ce b8ce -3844 b8cf b8cf b8cf * 6656 * 8ea1e6d6,e6d6,8ea1e6d6v,e6d6v 88d2 e8a392 88d2 000088d2 b8cf b8cf b8cf b8cf b8cf b8cf b8cf -3845 b8d0 b8d0 b8d0 * 6657 * 8ea1e6d7,e6d7,8ea1e6d7v,e6d7v 899c e8a69c 899c 0000899c b8d0 b8d0 b8d0 b8d0 b8d0 b8d0 b8d0 -3846 b8d1 b8d1 b8d1 * 6658 * 8ea1e6d8,e6d8,8ea1e6d8v,e6d8v 89e3 e8a7a3 89e3 000089e3 b8d1 b8d1 b8d1 b8d1 b8d1 b8d1 b8d1 -3847 b8d2 b8d2 b8d2 * 6659 * 8ea1e6d9,e6d9,8ea1e6d9v,e6d9v 8a6b e8a9ab 8a6b 00008a6b b8d2 b8d2 b8d2 b8d2 b8d2 b8d2 b8d2 -3848 b8d3 b8d3 b8d3 * 665a * 8ea1e6da,e6da,8ea1e6dav,e6dav 8a72 e8a9b2 8a72 00008a72 b8d3 b8d3 b8d3 b8d3 b8d3 b8d3 b8d3 -3849 b8d4 b8d4 b8d4 * 665b * 8ea1e6db,e6db,8ea1e6dbv,e6dbv 8a73 e8a9b3 8a73 00008a73 b8d4 b8d4 b8d4 b8d4 b8d4 b8d4 b8d4 -3850 b8d5 b8d5 b8d5 * 665c * 8ea1e6dc,e6dc,8ea1e6dcv,e6dcv 8a66 e8a9a6 8a66 00008a66 b8d5 b8d5 b8d5 b8d5 b8d5 b8d5 b8d5 -3851 b8d6 b8d6 b8d6 * 665d * 8ea1e6dd,e6dd,8ea1e6ddv,e6ddv 8a69 e8a9a9 8a69 00008a69 b8d6 b8d6 b8d6 b8d6 b8d6 b8d6 b8d6 -3852 b8d7 b8d7 b8d7 * 665e * 8ea1e6de,e6de,8ea1e6dev,e6dev 8a70 e8a9b0 8a70 00008a70 b8d7 b8d7 b8d7 b8d7 b8d7 b8d7 b8d7 -3853 b8d8 b8d8 b8d8 * 665f * 8ea1e6df,e6df,8ea1e6dfv,e6dfv 8a87 e8aa87 8a87 00008a87 b8d8 b8d8 b8d8 b8d8 b8d8 b8d8 b8d8 -3854 b8d9 b8d9 b8d9 * 6660 * 8ea1e6e0,e6e0,8ea1e6e0v,e6e0v 8a7c e8a9bc 8a7c 00008a7c b8d9 b8d9 b8d9 b8d9 b8d9 b8d9 b8d9 -3855 b8da b8da b8da * 6661 * 8ea1e6e1,e6e1,8ea1e6e1v,e6e1v 8a63 e8a9a3 8a63 00008a63 b8da b8da b8da b8da b8da b8da b8da -3856 b8db b8db b8db * 6662 * 8ea1e6e2,e6e2,8ea1e6e2v,e6e2v 8aa0 e8aaa0 8aa0 00008aa0 b8db b8db b8db b8db b8db b8db b8db -3857 b8dc b8dc b8dc * 6663 * 8ea1e6e3,e6e3,8ea1e6e3v,e6e3v 8a71 e8a9b1 8a71 00008a71 b8dc b8dc b8dc b8dc b8dc b8dc b8dc -3858 b8dd b8dd b8dd * 6664 * 8ea1e6e4,e6e4,8ea1e6e4v,e6e4v 8a85 e8aa85 8a85 00008a85 b8dd b8dd b8dd b8dd b8dd b8dd b8dd -3859 b8de b8de b8de * 6665 * 8ea1e6e5,e6e5,8ea1e6e5v,e6e5v 8a6d e8a9ad 8a6d 00008a6d b8de b8de b8de b8de b8de b8de b8de -3860 b8df b8df b8df * 6666 * 8ea1e6e6,e6e6,8ea1e6e6v,e6e6v 8a62 e8a9a2 8a62 00008a62 b8df b8df b8df b8df b8df b8df b8df -3861 b8e0 b8e0 b8e0 * 6667 * 8ea1e6e7,e6e7,8ea1e6e7v,e6e7v 8a6e e8a9ae 8a6e 00008a6e b8e0 b8e0 b8e0 b8e0 b8e0 b8e0 b8e0 -3862 b8e1 b8e1 b8e1 * 6668 * 8ea1e6e8,e6e8,8ea1e6e8v,e6e8v 8a6c e8a9ac 8a6c 00008a6c b8e1 b8e1 b8e1 b8e1 b8e1 b8e1 b8e1 -3863 b8e2 b8e2 b8e2 * 6669 * 8ea1e6e9,e6e9,8ea1e6e9v,e6e9v 8a79 e8a9b9 8a79 00008a79 b8e2 b8e2 b8e2 b8e2 b8e2 b8e2 b8e2 -3864 b8e3 b8e3 b8e3 * 666a * 8ea1e6ea,e6ea,8ea1e6eav,e6eav 8a7b e8a9bb 8a7b 00008a7b b8e3 b8e3 b8e3 b8e3 b8e3 b8e3 b8e3 -3865 b8e4 b8e4 b8e4 * 666b * 8ea1e6eb,e6eb,8ea1e6ebv,e6ebv 8a3e e8a8be 8a3e 00008a3e b8e4 b8e4 b8e4 b8e4 b8e4 b8e4 b8e4 -3866 b8e5 b8e5 b8e5 * 666c * 8ea1e6ec,e6ec,8ea1e6ecv,e6ecv 8a68 e8a9a8 8a68 00008a68 b8e5 b8e5 b8e5 b8e5 b8e5 b8e5 b8e5 -3867 b8e6 b8e6 b8e6 * 666d * 8ea1e6ed,e6ed,8ea1e6edv,e6edv 8c62 e8b1a2 8c62 00008c62 b8e6 b8e6 b8e6 b8e6 b8e6 b8e6 b8e6 -3868 b8e7 b8e7 b8e7 * 666e * 8ea1e6ee,e6ee,8ea1e6eev,e6eev 8c8a e8b28a 8c8a 00008c8a b8e7 b8e7 b8e7 b8e7 b8e7 b8e7 b8e7 -3869 b8e8 b8e8 b8e8 * 666f * 8ea1e6ef,e6ef,8ea1e6efv,e6efv 8c89 e8b289 8c89 00008c89 b8e8 b8e8 b8e8 b8e8 b8e8 b8e8 b8e8 -3870 b8e9 b8e9 b8e9 * 6670 * 8ea1e6f0,e6f0,8ea1e6f0v,e6f0v 8cca e8b38a 8cca 00008cca b8e9 b8e9 b8e9 b8e9 b8e9 b8e9 b8e9 -3871 b8ea b8ea b8ea * 6671 * 8ea1e6f1,e6f1,8ea1e6f1v,e6f1v 8cc7 e8b387 8cc7 00008cc7 b8ea b8ea b8ea b8ea b8ea b8ea b8ea -3872 b8eb b8eb b8eb * 6672 * 8ea1e6f2,e6f2,8ea1e6f2v,e6f2v 8cc8 e8b388 8cc8 00008cc8 b8eb b8eb b8eb b8eb b8eb b8eb b8eb -3873 b8ec b8ec b8ec * 6673 * 8ea1e6f3,e6f3,8ea1e6f3v,e6f3v 8cc4 e8b384 8cc4 00008cc4 b8ec b8ec b8ec b8ec b8ec b8ec b8ec -3874 b8ed b8ed b8ed * 6674 * 8ea1e6f4,e6f4,8ea1e6f4v,e6f4v 8cb2 e8b2b2 8cb2 00008cb2 b8ed b8ed b8ed b8ed b8ed b8ed b8ed -3875 b8ee b8ee b8ee * 6675 * 8ea1e6f5,e6f5,8ea1e6f5v,e6f5v 8cc3 e8b383 8cc3 00008cc3 b8ee b8ee b8ee b8ee b8ee b8ee b8ee -3876 b8ef b8ef b8ef * 6676 * 8ea1e6f6,e6f6,8ea1e6f6v,e6f6v 8cc2 e8b382 8cc2 00008cc2 b8ef b8ef b8ef b8ef b8ef b8ef b8ef -3877 b8f0 b8f0 b8f0 * 6677 * 8ea1e6f7,e6f7,8ea1e6f7v,e6f7v 8cc5 e8b385 8cc5 00008cc5 b8f0 b8f0 b8f0 b8f0 b8f0 b8f0 b8f0 -3878 b8f1 b8f1 b8f1 * 6678 * 8ea1e6f8,e6f8,8ea1e6f8v,e6f8v 8de1 e8b7a1 8de1 00008de1 b8f1 b8f1 b8f1 b8f1 b8f1 b8f1 b8f1 -3879 b8f2 b8f2 b8f2 * 6679 * 8ea1e6f9,e6f9,8ea1e6f9v,e6f9v 8ddf e8b79f 8ddf 00008ddf b8f2 b8f2 b8f2 b8f2 b8f2 b8f2 b8f2 -3880 b8f3 b8f3 b8f3 * 667a * 8ea1e6fa,e6fa,8ea1e6fav,e6fav 8de8 e8b7a8 8de8 00008de8 b8f3 b8f3 b8f3 b8f3 b8f3 b8f3 b8f3 -3881 b8f4 b8f4 b8f4 * 667b * 8ea1e6fb,e6fb,8ea1e6fbv,e6fbv 8def e8b7af 8def 00008def b8f4 b8f4 b8f4 b8f4 b8f4 b8f4 b8f4 -3882 b8f5 b8f5 b8f5 * 667c * 8ea1e6fc,e6fc,8ea1e6fcv,e6fcv 8df3 e8b7b3 8df3 00008df3 b8f5 b8f5 b8f5 b8f5 b8f5 b8f5 b8f5 -3883 b8f6 b8f6 b8f6 * 667d * 8ea1e6fd,e6fd,8ea1e6fdv,e6fdv 8dfa e8b7ba 8dfa 00008dfa b8f6 b8f6 b8f6 b8f6 b8f6 b8f6 b8f6 -3884 b8f7 b8f7 b8f7 * 667e * 8ea1e6fe,e6fe,8ea1e6fev,e6fev 8dea e8b7aa 8dea 00008dea b8f7 b8f7 b8f7 b8f7 b8f7 b8f7 b8f7 -3885 b8f8 b8f8 b8f8 * 6721 * 8ea1e7a1,e7a1,8ea1e7a1v,e7a1v 8de4 e8b7a4 8de4 00008de4 b8f8 b8f8 b8f8 b8f8 b8f8 b8f8 b8f8 -3886 b8f9 b8f9 b8f9 * 6722 * 8ea1e7a2,e7a2,8ea1e7a2v,e7a2v 8de6 e8b7a6 8de6 00008de6 b8f9 b8f9 b8f9 b8f9 b8f9 b8f9 b8f9 -3887 b8fa b8fa b8fa * 6723 * 8ea1e7a3,e7a3,8ea1e7a3v,e7a3v 8eb2 e8bab2 8eb2 00008eb2 b8fa b8fa b8fa b8fa b8fa b8fa b8fa -3888 b8fb b8fb b8fb * 6724 * 8ea1e7a4,e7a4,8ea1e7a4v,e7a4v 8f03 e8bc83 8f03 00008f03 b8fb b8fb b8fb b8fb b8fb b8fb b8fb -3889 b8fc b8fc b8fc * 6725 * 8ea1e7a5,e7a5,8ea1e7a5v,e7a5v 8f09 e8bc89 8f09 00008f09 b8fc b8fc b8fc b8fc b8fc b8fc b8fc -3890 b8fd b8fd b8fd * 6726 * 8ea1e7a6,e7a6,8ea1e7a6v,e7a6v 8efe e8bbbe 8efe 00008efe b8fd b8fd b8fd b8fd b8fd b8fd b8fd -3891 b8fe b8fe b8fe * 6727 * 8ea1e7a7,e7a7,8ea1e7a7v,e7a7v 8f0a e8bc8a 8f0a 00008f0a b8fe b8fe b8fe b8fe b8fe b8fe b8fe -3892 b940 b940 b940 * 6728 * 8ea1e7a8,e7a8,8ea1e7a8v,e7a8v 8f9f e8be9f 8f9f 00008f9f b940 b940 b940 b940 b940 b940 b940 -3893 b941 b941 b941 * 6729 * 8ea1e7a9,e7a9,8ea1e7a9v,e7a9v 8fb2 e8beb2 8fb2 00008fb2 b941 b941 b941 b941 b941 b941 b941 -3894 b942 b942 b942 * 672a * 8ea1e7aa,e7aa,8ea1e7aav,e7aav 904b e9818b 904b 0000904b b942 b942 b942 b942 b942 b942 b942 -3895 b943 b943 b943 * 672b * 8ea1e7ab,e7ab,8ea1e7abv,e7abv 904a e9818a 904a 0000904a b943 b943 b943 b943 b943 b943 b943 -3896 b944 b944 b944 * 672c * 8ea1e7ac,e7ac,8ea1e7acv,e7acv 9053 e98193 9053 00009053 b944 b944 b944 b944 b944 b944 b944 -3897 b945 b945 b945 * 672d * 8ea1e7ad,e7ad,8ea1e7adv,e7adv 9042 e98182 9042 00009042 b945 b945 b945 b945 b945 b945 b945 -3898 b946 b946 b946 * 672e * 8ea1e7ae,e7ae,8ea1e7aev,e7aev 9054 e98194 9054 00009054 b946 b946 b946 b946 b946 b946 b946 -3899 b947 b947 b947 * 672f * 8ea1e7af,e7af,8ea1e7afv,e7afv 903c e980bc 903c 0000903c b947 b947 b947 b947 b947 b947 b947 -3900 b948 b948 b948 * 6730 * 8ea1e7b0,e7b0,8ea1e7b0v,e7b0v 9055 e98195 9055 00009055 b948 b948 b948 b948 b948 b948 b948 -3901 b949 b949 b949 * 6731 * 8ea1e7b1,e7b1,8ea1e7b1v,e7b1v 9050 e98190 9050 00009050 b949 b949 b949 b949 b949 b949 b949 -3902 b94a b94a b94a * 6732 * 8ea1e7b2,e7b2,8ea1e7b2v,e7b2v 9047 e98187 9047 00009047 b94a b94a b94a b94a b94a b94a b94a -3903 b94b b94b b94b * 6733 * 8ea1e7b3,e7b3,8ea1e7b3v,e7b3v 904f e9818f 904f 0000904f b94b b94b b94b b94b b94b b94b b94b -3904 b94c b94c b94c * 6734 * 8ea1e7b4,e7b4,8ea1e7b4v,e7b4v 904e e9818e 904e 0000904e b94c b94c b94c b94c b94c b94c b94c -3905 b94d b94d b94d * 6735 * 8ea1e7b5,e7b5,8ea1e7b5v,e7b5v 904d e9818d 904d 0000904d b94d b94d b94d b94d b94d b94d b94d -3906 b94e b94e b94e * 6736 * 8ea1e7b6,e7b6,8ea1e7b6v,e7b6v 9051 e98191 9051 00009051 b94e b94e b94e b94e b94e b94e b94e -3907 b94f b94f b94f * 6737 * 8ea1e7b7,e7b7,8ea1e7b7v,e7b7v 903e e980be 903e 0000903e b94f b94f b94f b94f b94f b94f b94f -3908 b950 b950 b950 * 6738 * 8ea1e7b8,e7b8,8ea1e7b8v,e7b8v 9041 e98181 9041 00009041 b950 b950 b950 b950 b950 b950 b950 -3909 b951 b951 b951 * 6739 * 8ea1e7b9,e7b9,8ea1e7b9v,e7b9v 9112 e98492 9112 00009112 b951 b951 b951 b951 b951 b951 b951 -3910 b952 b952 b952 * 673a * 8ea1e7ba,e7ba,8ea1e7bav,e7bav 9117 e98497 9117 00009117 b952 b952 b952 b952 b952 b952 b952 -3911 b953 b953 b953 * 673b * 8ea1e7bb,e7bb,8ea1e7bbv,e7bbv 916c e985ac 916c 0000916c b953 b953 b953 b953 b953 b953 b953 -3912 b954 b954 b954 * 673c * 8ea1e7bc,e7bc,8ea1e7bcv,e7bcv 916a e985aa 916a 0000916a b954 b954 b954 b954 b954 b954 b954 -3913 b955 b955 b955 * 673d * 8ea1e7bd,e7bd,8ea1e7bdv,e7bdv 9169 e985a9 9169 00009169 b955 b955 b955 b955 b955 b955 b955 -3914 b956 b956 b956 * 673e * 8ea1e7be,e7be,8ea1e7bev,e7bev 91c9 e98789 91c9 000091c9 b956 b956 b956 b956 b956 b956 b956 -3915 b957 b957 b957 * 673f * 8ea1e7bf,e7bf,8ea1e7bfv,e7bfv 9237 e988b7 9237 00009237 b957 b957 b957 b957 b957 b957 b957 -3916 b958 b958 b958 * 6740 * 8ea1e7c0,e7c0,8ea1e7c0v,e7c0v 9257 e98997 9257 00009257 b958 b958 b958 b958 b958 b958 b958 -3917 b959 b959 b959 * 6741 * 8ea1e7c1,e7c1,8ea1e7c1v,e7c1v 9238 e988b8 9238 00009238 b959 b959 b959 b959 b959 b959 b959 -3918 b95a b95a b95a * 6742 * 8ea1e7c2,e7c2,8ea1e7c2v,e7c2v 923d e988bd 923d 0000923d b95a b95a b95a b95a b95a b95a b95a -3919 b95b b95b b95b * 6743 * 8ea1e7c3,e7c3,8ea1e7c3v,e7c3v 9240 e98980 9240 00009240 b95b b95b b95b b95b b95b b95b b95b -3920 b95c b95c b95c * 6744 * 8ea1e7c4,e7c4,8ea1e7c4v,e7c4v 923e e988be 923e 0000923e b95c b95c b95c b95c b95c b95c b95c -3921 b95d b95d b95d * 6745 * 8ea1e7c5,e7c5,8ea1e7c5v,e7c5v 925b e9899b 925b 0000925b b95d b95d b95d b95d b95d b95d b95d -3922 b95e b95e b95e * 6746 * 8ea1e7c6,e7c6,8ea1e7c6v,e7c6v 924b e9898b 924b 0000924b b95e b95e b95e b95e b95e b95e b95e -3923 b95f b95f b95f * 6747 * 8ea1e7c7,e7c7,8ea1e7c7v,e7c7v 9264 e989a4 9264 00009264 b95f b95f b95f b95f b95f b95f b95f -3924 b960 b960 b960 * 6748 * 8ea1e7c8,e7c8,8ea1e7c8v,e7c8v 9251 e98991 9251 00009251 b960 b960 b960 b960 b960 b960 b960 -3925 b961 b961 b961 * 6749 * 8ea1e7c9,e7c9,8ea1e7c9v,e7c9v 9234 e988b4 9234 00009234 b961 b961 b961 b961 b961 b961 b961 -3926 b962 b962 b962 * 674a * 8ea1e7ca,e7ca,8ea1e7cav,e7cav 9249 e98989 9249 00009249 b962 b962 b962 b962 b962 b962 b962 -3927 b963 b963 b963 * 674b * 8ea1e7cb,e7cb,8ea1e7cbv,e7cbv 924d e9898d 924d 0000924d b963 b963 b963 b963 b963 b963 b963 -3928 b964 b964 b964 * 674c * 8ea1e7cc,e7cc,8ea1e7ccv,e7ccv 9245 e98985 9245 00009245 b964 b964 b964 b964 b964 b964 b964 -3929 b965 b965 b965 * 674d * 8ea1e7cd,e7cd,8ea1e7cdv,e7cdv 9239 e988b9 9239 00009239 b965 b965 b965 b965 b965 b965 b965 -3930 b966 b966 b966 * 674e * 8ea1e7ce,e7ce,8ea1e7cev,e7cev 923f e988bf 923f 0000923f b966 b966 b966 b966 b966 b966 b966 -3931 b967 b967 b967 * 674f * 8ea1e7cf,e7cf,8ea1e7cfv,e7cfv 925a e9899a 925a 0000925a b967 b967 b967 b967 b967 b967 b967 -3932 b968 b968 b968 * 6750 * 8ea1e7d0,e7d0,8ea1e7d0v,e7d0v 9598 e99698 9598 00009598 b968 b968 b968 b968 b968 b968 b968 -3933 b969 b969 b969 * 6751 * 8ea1e7d1,e7d1,8ea1e7d1v,e7d1v 9698 e99a98 9698 00009698 b969 b969 b969 b969 b969 b969 b969 -3934 b96a b96a b96a * 6752 * 8ea1e7d2,e7d2,8ea1e7d2v,e7d2v 9694 e99a94 9694 00009694 b96a b96a b96a b96a b96a b96a b96a -3935 b96b b96b b96b * 6753 * 8ea1e7d3,e7d3,8ea1e7d3v,e7d3v 9695 e99a95 9695 00009695 b96b b96b b96b b96b b96b b96b b96b -3936 b96c b96c b96c * 6754 * 8ea1e7d4,e7d4,8ea1e7d4v,e7d4v 96cd e99b8d 96cd 000096cd b96c b96c b96c b96c b96c b96c b96c -3937 b96d b96d b96d * 6755 * 8ea1e7d5,e7d5,8ea1e7d5v,e7d5v 96cb e99b8b 96cb 000096cb b96d b96d b96d b96d b96d b96d b96d -3938 b96e b96e b96e * 6756 * 8ea1e7d6,e7d6,8ea1e7d6v,e7d6v 96c9 e99b89 96c9 000096c9 b96e b96e b96e b96e b96e b96e b96e -3939 b96f b96f b96f * 6757 * 8ea1e7d7,e7d7,8ea1e7d7v,e7d7v 96ca e99b8a 96ca 000096ca b96f b96f b96f b96f b96f b96f b96f -3940 b970 b970 b970 * 6758 * 8ea1e7d8,e7d8,8ea1e7d8v,e7d8v 96f7 e99bb7 96f7 000096f7 b970 b970 b970 b970 b970 b970 b970 -3941 b971 b971 b971 * 6759 * 8ea1e7d9,e7d9,8ea1e7d9v,e7d9v 96fb e99bbb 96fb 000096fb b971 b971 b971 b971 b971 b971 b971 -3942 b972 b972 b972 * 675a * 8ea1e7da,e7da,8ea1e7dav,e7dav 96f9 e99bb9 96f9 000096f9 b972 b972 b972 b972 b972 b972 b972 -3943 b973 b973 b973 * 675b * 8ea1e7db,e7db,8ea1e7dbv,e7dbv 96f6 e99bb6 96f6 000096f6 b973 b973 b973 b973 b973 b973 b973 -3944 b974 b974 b974 * 675c * 8ea1e7dc,e7dc,8ea1e7dcv,e7dcv 9756 e99d96 9756 00009756 b974 b974 b974 b974 b974 b974 b974 -3945 b975 b975 b975 * 675d * 8ea1e7dd,e7dd,8ea1e7ddv,e7ddv 9774 e99db4 9774 00009774 b975 b975 b975 b975 b975 b975 b975 -3946 b976 b976 b976 * 675e * 8ea1e7de,e7de,8ea1e7dev,e7dev 9776 e99db6 9776 00009776 b976 b976 b976 b976 b976 b976 b976 -3947 b977 b977 b977 * 675f * 8ea1e7df,e7df,8ea1e7dfv,e7dfv 9810 e9a090 9810 00009810 b977 b977 b977 b977 b977 b977 b977 -3948 b978 b978 b978 * 6760 * 8ea1e7e0,e7e0,8ea1e7e0v,e7e0v 9811 e9a091 9811 00009811 b978 b978 b978 b978 b978 b978 b978 -3949 b979 b979 b979 * 6761 * 8ea1e7e1,e7e1,8ea1e7e1v,e7e1v 9813 e9a093 9813 00009813 b979 b979 b979 b979 b979 b979 b979 -3950 b97a b97a b97a * 6762 * 8ea1e7e2,e7e2,8ea1e7e2v,e7e2v 980a e9a08a 980a 0000980a b97a b97a b97a b97a b97a b97a b97a -3951 b97b b97b b97b * 6763 * 8ea1e7e3,e7e3,8ea1e7e3v,e7e3v 9812 e9a092 9812 00009812 b97b b97b b97b b97b b97b b97b b97b -3952 b97c b97c b97c * 6764 * 8ea1e7e4,e7e4,8ea1e7e4v,e7e4v 980c e9a08c 980c 0000980c b97c b97c b97c b97c b97c b97c b97c -3953 b97d b97d b97d * 6765 * 8ea1e7e5,e7e5,8ea1e7e5v,e7e5v 98fc e9a3bc 98fc 000098fc b97d b97d b97d b97d b97d b97d b97d -3954 b97e b97e b97e * 6766 * 8ea1e7e6,e7e6,8ea1e7e6v,e7e6v 98f4 e9a3b4 98f4 000098f4 b97e b97e b97e b97e b97e b97e b97e -3955 b9a1 b9a1 b9a1 * 6767 * 8ea1e7e7,e7e7,8ea1e7e7v,e7e7v 98fd e9a3bd 98fd 000098fd b9a1 b9a1 b9a1 b9a1 b9a1 b9a1 b9a1 -3956 b9a2 b9a2 b9a2 * 6768 * 8ea1e7e8,e7e8,8ea1e7e8v,e7e8v 98fe e9a3be 98fe 000098fe b9a2 b9a2 b9a2 b9a2 b9a2 b9a2 b9a2 -3957 b9a3 b9a3 b9a3 * 6769 * 8ea1e7e9,e7e9,8ea1e7e9v,e7e9v 99b3 e9a6b3 99b3 000099b3 b9a3 b9a3 b9a3 b9a3 b9a3 b9a3 b9a3 -3958 b9a4 b9a4 b9a4 * 676a * 8ea1e7ea,e7ea,8ea1e7eav,e7eav 99b1 e9a6b1 99b1 000099b1 b9a4 b9a4 b9a4 b9a4 b9a4 b9a4 b9a4 -3959 b9a5 b9a5 b9a5 * 676b * 8ea1e7eb,e7eb,8ea1e7ebv,e7ebv 99b4 e9a6b4 99b4 000099b4 b9a5 b9a5 b9a5 b9a5 b9a5 b9a5 b9a5 -3960 b9a6 b9a6 b9a6 * 676c * 8ea1e7ec,e7ec,8ea1e7ecv,e7ecv 9ae1 e9aba1 9ae1 00009ae1 b9a6 b9a6 b9a6 b9a6 b9a6 b9a6 b9a6 -3961 b9a7 b9a7 b9a7 * 676d * 8ea1e7ed,e7ed,8ea1e7edv,e7edv 9ce9 e9b3a9 9ce9 00009ce9 b9a7 b9a7 b9a7 b9a7 b9a7 b9a7 b9a7 -3962 b9a8 b9a8 b9a8 * 676e * 8ea1e7ee,e7ee,8ea1e7eev,e7eev 9e82 e9ba82 9e82 00009e82 b9a8 b9a8 b9a8 b9a8 b9a8 b9a8 b9a8 -3963 b9a9 b9a9 b9a9 * 2931,676f * 8ea1a9b1,8ea1e7ef,a9b1,e7ef,8ea1a9b1v,8ea1e7efv,a9b1v,e7efv 9f0e e9bc8e,e2bf8d 9f0e,2fcd 00009f0e,00002fcd b9a9 b9a9 b9a9 b9a9 b9a9 b9a9 b9a9 -3964 b9aa b9aa b9aa * 2932,6770 * 8ea1a9b2,8ea1e7f0,a9b2,e7f0,8ea1a9b2v,8ea1e7f0v,a9b2v,e7f0v 9f13 e9bc93,e2bf8e 9f13,2fce 00009f13,00002fce b9aa b9aa b9aa b9aa b9aa b9aa b9aa -3965 b9ab b9ab b9ab * 2933,6771 * 8ea1a9b3,8ea1e7f1,a9b3,e7f1,8ea1a9b3v,8ea1e7f1v,a9b3v,e7f1v 9f20 e9bca0,e2bf8f 9f20,2fcf 00009f20,00002fcf b9ab b9ab b9ab b9ab b9ab b9ab b9ab -3966 b9ac b9ac b9ac * 6772 * 8ea1e7f2,e7f2,8ea1e7f2v,e7f2v 50e7 e583a7 50e7 000050e7 b9ac b9ac b9ac b9ac b9ac b9ac b9ac -3967 b9ad b9ad b9ad * 6773 * 8ea1e7f3,e7f3,8ea1e7f3v,e7f3v 50ee e583ae 50ee 000050ee b9ad b9ad b9ad b9ad b9ad b9ad b9ad -3968 b9ae b9ae b9ae * 6774 * 8ea1e7f4,e7f4,8ea1e7f4v,e7f4v 50e5 e583a5 50e5 000050e5 b9ae b9ae b9ae b9ae b9ae b9ae b9ae -3969 b9af b9af b9af * 6775 * 8ea1e7f5,e7f5,8ea1e7f5v,e7f5v 50d6 e58396 50d6 000050d6 b9af b9af b9af b9af b9af b9af b9af -3970 b9b0 b9b0 b9b0 * 6776 * 8ea1e7f6,e7f6,8ea1e7f6v,e7f6v 50ed e583ad,eeb7a7 50ed,ede7 000050ed,0000ede7 9fcb,b9b0 b9b0 b9b0 b9b0 b9b0 b9b0 9fcb,b9b0 -3971 b9b1 b9b1 b9b1 * 6777 * 8ea1e7f7,e7f7,8ea1e7f7v,e7f7v 50da e5839a 50da 000050da b9b1 b9b1 b9b1 b9b1 b9b1 b9b1 b9b1 -3972 b9b2 b9b2 b9b2 * 6778 * 8ea1e7f8,e7f8,8ea1e7f8v,e7f8v 50d5 e58395 50d5 000050d5 b9b2 b9b2 b9b2 b9b2 b9b2 b9b2 b9b2 -3973 b9b3 b9b3 b9b3 * 6779 * 8ea1e7f9,e7f9,8ea1e7f9v,e7f9v 50cf e5838f 50cf 000050cf b9b3 b9b3 b9b3 b9b3 b9b3 b9b3 b9b3 -3974 b9b4 b9b4 b9b4 * 677a * 8ea1e7fa,e7fa,8ea1e7fav,e7fav 50d1 e58391 50d1 000050d1 b9b4 b9b4 b9b4 b9b4 b9b4 b9b4 b9b4 -3975 b9b5 b9b5 b9b5 * 677b * 8ea1e7fb,e7fb,8ea1e7fbv,e7fbv 50f1 e583b1 50f1 000050f1 b9b5 b9b5 b9b5 b9b5 b9b5 b9b5 b9b5 -3976 b9b6 b9b6 b9b6 * 677c * 8ea1e7fc,e7fc,8ea1e7fcv,e7fcv 50ce e5838e 50ce 000050ce b9b6 b9b6 b9b6 b9b6 b9b6 b9b6 b9b6 -3977 b9b7 b9b7 b9b7 * 677d * 8ea1e7fd,e7fd,8ea1e7fdv,e7fdv 50e9 e583a9 50e9 000050e9 b9b7 b9b7 b9b7 b9b7 b9b7 b9b7 b9b7 -3978 b9b8 b9b8 b9b8 * 677e * 8ea1e7fe,e7fe,8ea1e7fev,e7fev 5162 e585a2 5162 00005162 b9b8 b9b8 b9b8 b9b8 b9b8 b9b8 b9b8 -3979 b9b9 b9b9 b9b9 * 6821 * 8ea1e8a1,e8a1,8ea1e8a1v,e8a1v 51f3 e587b3 51f3 000051f3 b9b9 b9b9 b9b9 b9b9 b9b9 b9b9 b9b9 -3980 b9ba b9ba b9ba * 6822 * 8ea1e8a2,e8a2,8ea1e8a2v,e8a2v 5283 e58a83 5283 00005283 b9ba b9ba b9ba b9ba b9ba b9ba b9ba -3981 b9bb b9bb b9bb * 6823 * 8ea1e8a3,e8a3,8ea1e8a3v,e8a3v 5282 e58a82 5282 00005282 b9bb b9bb b9bb b9bb b9bb b9bb b9bb -3982 b9bc b9bc b9bc * 6824 * 8ea1e8a4,e8a4,8ea1e8a4v,e8a4v 5331 e58cb1 5331 00005331 b9bc b9bc b9bc b9bc b9bc b9bc b9bc -3983 b9bd b9bd b9bd * 6825 * 8ea1e8a5,e8a5,8ea1e8a5v,e8a5v 53ad e58ead 53ad 000053ad b9bd b9bd b9bd b9bd b9bd b9bd b9bd -3984 b9be b9be b9be * 6826 * 8ea1e8a6,e8a6,8ea1e8a6v,e8a6v 55fe e597be 55fe 000055fe b9be b9be b9be b9be b9be b9be b9be -3985 b9bf b9bf b9bf * 6827 * 8ea1e8a7,e8a7,8ea1e8a7v,e8a7v 5600 e59880 5600 00005600 b9bf b9bf b9bf b9bf b9bf b9bf b9bf -3986 b9c0 b9c0 b9c0 * 6828 * 8ea1e8a8,e8a8,8ea1e8a8v,e8a8v 561b e5989b 561b 0000561b b9c0 b9c0 b9c0 b9c0 b9c0 b9c0 b9c0 -3987 b9c1 b9c1 b9c1 * 6829 * 8ea1e8a9,e8a9,8ea1e8a9v,e8a9v 5617 e59897 5617 00005617 b9c1 b9c1 b9c1 b9c1 b9c1 b9c1 b9c1 -3988 b9c2 b9c2 b9c2 * 682a * 8ea1e8aa,e8aa,8ea1e8aav,e8aav 55fd e597bd 55fd 000055fd b9c2 b9c2 b9c2 b9c2 b9c2 b9c2 b9c2 -3989 b9c3 b9c3 b9c3 * 682b * 8ea1e8ab,e8ab,8ea1e8abv,e8abv 5614 e59894 5614 00005614 b9c3 b9c3 b9c3 b9c3 b9c3 b9c3 b9c3 -3990 b9c4 b9c4 b9c4 * 682c * 8ea1e8ac,e8ac,8ea1e8acv,e8acv 5606 e59886 5606 00005606 b9c4 b9c4 b9c4 b9c4 b9c4 b9c4 b9c4 -3991 b9c5 b9c5 b9c5 * 682d * 8ea1e8ad,e8ad,8ea1e8adv,e8adv 5609 e59889 5609 00005609 b9c5 b9c5 b9c5 b9c5 b9c5 b9c5 b9c5 -3992 b9c6 b9c6 b9c6 * 682e * 8ea1e8ae,e8ae,8ea1e8aev,e8aev 560d e5988d 560d 0000560d b9c6 b9c6 b9c6 b9c6 b9c6 b9c6 b9c6 -3993 b9c7 b9c7 b9c7 * 682f * 8ea1e8af,e8af,8ea1e8afv,e8afv 560e e5988e 560e 0000560e b9c7 b9c7 b9c7 b9c7 b9c7 b9c7 b9c7 -3994 b9c8 b9c8 b9c8 * 6830 * 8ea1e8b0,e8b0,8ea1e8b0v,e8b0v 55f7 e597b7 55f7 000055f7 b9c8 b9c8 b9c8 b9c8 b9c8 b9c8 b9c8 -3995 b9c9 b9c9 b9c9 * 6831 * 8ea1e8b1,e8b1,8ea1e8b1v,e8b1v 5616 e59896 5616 00005616 b9c9 b9c9 b9c9 b9c9 b9c9 b9c9 b9c9 -3996 b9ca b9ca b9ca * 6832 * 8ea1e8b2,e8b2,8ea1e8b2v,e8b2v 561f e5989f 561f 0000561f b9ca b9ca b9ca b9ca b9ca b9ca b9ca -3997 b9cb b9cb b9cb * 6833 * 8ea1e8b3,e8b3,8ea1e8b3v,e8b3v 5608 e59888 5608 00005608 b9cb b9cb b9cb b9cb b9cb b9cb b9cb -3998 b9cc b9cc b9cc * 6834 * 8ea1e8b4,e8b4,8ea1e8b4v,e8b4v 5610 e59890 5610 00005610 b9cc b9cc b9cc b9cc b9cc b9cc b9cc -3999 b9cd b9cd b9cd * 6835 * 8ea1e8b5,e8b5,8ea1e8b5v,e8b5v 55f6 e597b6 55f6 000055f6 b9cd b9cd b9cd b9cd b9cd b9cd b9cd -4000 b9ce b9ce b9ce * 6836 * 8ea1e8b6,e8b6,8ea1e8b6v,e8b6v 5718 e59c98 5718 00005718 b9ce b9ce b9ce b9ce b9ce b9ce b9ce -4001 b9cf b9cf b9cf * 6837 * 8ea1e8b7,e8b7,8ea1e8b7v,e8b7v 5716 e59c96 5716 00005716 b9cf b9cf b9cf b9cf b9cf b9cf b9cf -4002 b9d0 b9d0 b9d0 * 6838 * 8ea1e8b8,e8b8,8ea1e8b8v,e8b8v 5875 e5a1b5 5875 00005875 b9d0 b9d0 b9d0 b9d0 b9d0 b9d0 b9d0 -4003 b9d1 b9d1 b9d1 * 6839 * 8ea1e8b9,e8b9,8ea1e8b9v,e8b9v 587e e5a1be 587e 0000587e b9d1 b9d1 b9d1 b9d1 b9d1 b9d1 b9d1 -4004 b9d2 b9d2 b9d2 * 683a * 8ea1e8ba,e8ba,8ea1e8bav,e8bav 5883 e5a283 5883 00005883 b9d2 b9d2 b9d2 b9d2 b9d2 b9d2 b9d2 -4005 b9d3 b9d3 b9d3 * 683b * 8ea1e8bb,e8bb,8ea1e8bbv,e8bbv 5893 e5a293 5893 00005893 b9d3 b9d3 b9d3 b9d3 b9d3 b9d3 b9d3 -4006 b9d4 b9d4 b9d4 * 683c * 8ea1e8bc,e8bc,8ea1e8bcv,e8bcv 588a e5a28a 588a 0000588a b9d4 b9d4 b9d4 b9d4 b9d4 b9d4 b9d4 -4007 b9d5 b9d5 b9d5 * 683d * 8ea1e8bd,e8bd,8ea1e8bdv,e8bdv 5879 e5a1b9 5879 00005879 b9d5 b9d5 b9d5 b9d5 b9d5 b9d5 b9d5 -4008 b9d6 b9d6 b9d6 * 683e * 8ea1e8be,e8be,8ea1e8bev,e8bev 5885 e5a285 5885 00005885 b9d6 b9d6 b9d6 b9d6 b9d6 b9d6 b9d6 -4009 b9d7 b9d7 b9d7 * 683f * 8ea1e8bf,e8bf,8ea1e8bfv,e8bfv 587d e5a1bd 587d 0000587d b9d7 b9d7 b9d7 b9d7 b9d7 b9d7 b9d7 -4010 b9d8 b9d8 b9d8 * 6840 * 8ea1e8c0,e8c0,8ea1e8c0v,e8c0v 58fd e5a3bd 58fd 000058fd b9d8 b9d8 b9d8 b9d8 b9d8 b9d8 b9d8 -4011 b9d9 b9d9 b9d9 * 6841 * 8ea1e8c1,e8c1,8ea1e8c1v,e8c1v 5925 e5a4a5 5925 00005925 b9d9 b9d9 b9d9 b9d9 b9d9 b9d9 b9d9 -4012 b9da b9da b9da * 6842 * 8ea1e8c2,e8c2,8ea1e8c2v,e8c2v 5922 e5a4a2 5922 00005922 b9da b9da b9da b9da b9da b9da b9da -4013 b9db b9db b9db * 6843 * 8ea1e8c3,e8c3,8ea1e8c3v,e8c3v 5924 e5a4a4 5924 00005924 b9db b9db b9db b9db b9db b9db b9db -4014 b9dc b9dc b9dc * 6844 * 8ea1e8c4,e8c4,8ea1e8c4v,e8c4v 596a e5a5aa 596a 0000596a b9dc b9dc b9dc b9dc b9dc b9dc b9dc -4015 b9dd b9dd b9dd * 6845 * 8ea1e8c5,e8c5,8ea1e8c5v,e8c5v 5969 e5a5a9 5969 00005969 b9dd b9dd b9dd b9dd b9dd b9dd b9dd -4016 b9de b9de b9de * 6846 * 8ea1e8c6,e8c6,8ea1e8c6v,e8c6v 5ae1 e5aba1 5ae1 00005ae1 b9de b9de b9de b9de b9de b9de b9de -4017 b9df b9df b9df * 6847 * 8ea1e8c7,e8c7,8ea1e8c7v,e8c7v 5ae6 e5aba6 5ae6 00005ae6 b9df b9df b9df b9df b9df b9df b9df -4018 b9e0 b9e0 b9e0 * 6848 * 8ea1e8c8,e8c8,8ea1e8c8v,e8c8v 5ae9 e5aba9 5ae9 00005ae9 b9e0 b9e0 b9e0 b9e0 b9e0 b9e0 b9e0 -4019 b9e1 b9e1 b9e1 * 6849 * 8ea1e8c9,e8c9,8ea1e8c9v,e8c9v 5ad7 e5ab97 5ad7 00005ad7 b9e1 b9e1 b9e1 b9e1 b9e1 b9e1 b9e1 -4020 b9e2 b9e2 b9e2 * 684a * 8ea1e8ca,e8ca,8ea1e8cav,e8cav 5ad6 e5ab96 5ad6 00005ad6 b9e2 b9e2 b9e2 b9e2 b9e2 b9e2 b9e2 -4021 b9e3 b9e3 b9e3 * 684b * 8ea1e8cb,e8cb,8ea1e8cbv,e8cbv 5ad8 e5ab98 5ad8 00005ad8 b9e3 b9e3 b9e3 b9e3 b9e3 b9e3 b9e3 -4022 b9e4 b9e4 b9e4 * 684c * 8ea1e8cc,e8cc,8ea1e8ccv,e8ccv 5ae3 e5aba3 5ae3 00005ae3 b9e4 b9e4 b9e4 b9e4 b9e4 b9e4 b9e4 -4023 b9e5 b9e5 b9e5 * 684d * 8ea1e8cd,e8cd,8ea1e8cdv,e8cdv 5b75 e5adb5 5b75 00005b75 b9e5 b9e5 b9e5 b9e5 b9e5 b9e5 b9e5 -4024 b9e6 b9e6 b9e6 * 684e * 8ea1e8ce,e8ce,8ea1e8cev,e8cev 5bde e5af9e 5bde 00005bde b9e6 b9e6 b9e6 b9e6 b9e6 b9e6 b9e6 -4025 b9e7 b9e7 b9e7 * 684f * 8ea1e8cf,e8cf,8ea1e8cfv,e8cfv 5be7 e5afa7 5be7 00005be7 b9e7 b9e7 b9e7 b9e7 b9e7 b9e7 b9e7 -4026 b9e8 b9e8 b9e8 * 6850 * 8ea1e8d0,e8d0,8ea1e8d0v,e8d0v 5be1 e5afa1 5be1 00005be1 b9e8 b9e8 b9e8 b9e8 b9e8 b9e8 b9e8 -4027 b9e9 b9e9 b9e9 * 6851 * 8ea1e8d1,e8d1,8ea1e8d1v,e8d1v 5be5 e5afa5 5be5 00005be5 b9e9 b9e9 b9e9 b9e9 b9e9 b9e9 b9e9 -4028 b9ea b9ea b9ea * 6852 * 8ea1e8d2,e8d2,8ea1e8d2v,e8d2v 5be6 e5afa6 5be6 00005be6 b9ea b9ea b9ea b9ea b9ea b9ea b9ea -4029 b9eb b9eb b9eb * 6853 * 8ea1e8d3,e8d3,8ea1e8d3v,e8d3v 5be8 e5afa8 5be8 00005be8 b9eb b9eb b9eb b9eb b9eb b9eb b9eb -4030 b9ec b9ec b9ec * 6854 * 8ea1e8d4,e8d4,8ea1e8d4v,e8d4v 5be2 e5afa2 5be2 00005be2 b9ec b9ec b9ec b9ec b9ec b9ec b9ec -4031 b9ed b9ed b9ed * 6855 * 8ea1e8d5,e8d5,8ea1e8d5v,e8d5v 5be4 e5afa4 5be4 00005be4 b9ed b9ed b9ed b9ed b9ed b9ed b9ed -4032 b9ee b9ee b9ee * 6856 * 8ea1e8d6,e8d6,8ea1e8d6v,e8d6v 5bdf e5af9f 5bdf 00005bdf b9ee b9ee b9ee b9ee b9ee b9ee b9ee -4033 b9ef b9ef b9ef * 6857 * 8ea1e8d7,e8d7,8ea1e8d7v,e8d7v 5c0d e5b08d 5c0d 00005c0d b9ef b9ef b9ef b9ef b9ef b9ef b9ef -4034 b9f0 b9f0 b9f0 * 6858 * 8ea1e8d8,e8d8,8ea1e8d8v,e8d8v 5c62 e5b1a2 5c62 00005c62 b9f0 b9f0 b9f0 b9f0 b9f0 b9f0 b9f0 -4035 b9f1 b9f1 b9f1 * 6859 * 8ea1e8d9,e8d9,8ea1e8d9v,e8d9v 5d84 e5b684 5d84 00005d84 b9f1 b9f1 b9f1 b9f1 b9f1 b9f1 b9f1 -4036 b9f2 b9f2 b9f2 * 685a * 8ea1e8da,e8da,8ea1e8dav,e8dav 5d87 e5b687 5d87 00005d87 b9f2 b9f2 b9f2 b9f2 b9f2 b9f2 b9f2 -4037 b9f3 b9f3 b9f3 * 685b * 8ea1e8db,e8db,8ea1e8dbv,e8dbv 5e5b e5b99b 5e5b 00005e5b b9f3 b9f3 b9f3 b9f3 b9f3 b9f3 b9f3 -4038 b9f4 b9f4 b9f4 * 685c * 8ea1e8dc,e8dc,8ea1e8dcv,e8dcv 5e63 e5b9a3 5e63 00005e63 b9f4 b9f4 b9f4 b9f4 b9f4 b9f4 b9f4 -4039 b9f5 b9f5 b9f5 * 685d * 8ea1e8dd,e8dd,8ea1e8ddv,e8ddv 5e55 e5b995 5e55 00005e55 b9f5 b9f5 b9f5 b9f5 b9f5 b9f5 b9f5 -4040 b9f6 b9f6 b9f6 * 685e * 8ea1e8de,e8de,8ea1e8dev,e8dev 5e57 e5b997 5e57 00005e57 b9f6 b9f6 b9f6 b9f6 b9f6 b9f6 b9f6 -4041 b9f7 b9f7 b9f7 * 685f * 8ea1e8df,e8df,8ea1e8dfv,e8dfv 5e54 e5b994 5e54 00005e54 b9f7 b9f7 b9f7 b9f7 b9f7 b9f7 b9f7 -4042 b9f8 b9f8 b9f8 * 6860 * 8ea1e8e0,e8e0,8ea1e8e0v,e8e0v 5ed3 e5bb93 5ed3 00005ed3 b9f8 b9f8 b9f8 b9f8 b9f8 b9f8 b9f8 -4043 b9f9 b9f9 b9f9 * 6861 * 8ea1e8e1,e8e1,8ea1e8e1v,e8e1v 5ed6 e5bb96 5ed6 00005ed6 b9f9 b9f9 b9f9 b9f9 b9f9 b9f9 b9f9 -4044 b9fa b9fa b9fa * 6862 * 8ea1e8e2,e8e2,8ea1e8e2v,e8e2v 5f0a e5bc8a 5f0a 00005f0a b9fa b9fa b9fa b9fa b9fa b9fa b9fa -4045 b9fb b9fb b9fb * 6863 * 8ea1e8e3,e8e3,8ea1e8e3v,e8e3v 5f46 e5bd86 5f46 00005f46 b9fb b9fb b9fb b9fb b9fb b9fb b9fb -4046 b9fc b9fc b9fc * 6864 * 8ea1e8e4,e8e4,8ea1e8e4v,e8e4v 5f70 e5bdb0 5f70 00005f70 b9fc b9fc b9fc b9fc b9fc b9fc b9fc -4047 b9fd b9fd b9fd * 6865 * 8ea1e8e5,e8e5,8ea1e8e5v,e8e5v 5fb9 e5beb9 5fb9 00005fb9 b9fd b9fd b9fd b9fd b9fd b9fd b9fd -4048 b9fe b9fe b9fe * 6866 * 8ea1e8e6,e8e6,8ea1e8e6v,e8e6v 6147 e68587 6147 00006147 b9fe b9fe b9fe b9fe b9fe b9fe b9fe -4049 ba40 ba40 ba40 * 6867 * 8ea1e8e7,e8e7,8ea1e8e7v,e8e7v 613f e684bf 613f 0000613f ba40 ba40 ba40 ba40 ba40 ba40 ba40 -4050 ba41 ba41 ba41 * 6868 * 8ea1e8e8,e8e8,8ea1e8e8v,e8e8v 614b e6858b 614b 0000614b ba41 ba41 ba41 ba41 ba41 ba41 ba41 -4051 ba42 ba42 ba42 * 6869 * 8ea1e8e9,e8e9,8ea1e8e9v,e8e9v 6177 e685b7 6177 00006177 ba42 ba42 ba42 ba42 ba42 ba42 ba42 -4052 ba43 ba43 ba43 * 686a * 8ea1e8ea,e8ea,8ea1e8eav,e8eav 6162 e685a2 6162 00006162 ba43 ba43 ba43 ba43 ba43 ba43 ba43 -4053 ba44 ba44 ba44 * 686b * 8ea1e8eb,e8eb,8ea1e8ebv,e8ebv 6163 e685a3 6163 00006163 ba44 ba44 ba44 ba44 ba44 ba44 ba44 -4054 ba45 ba45 ba45 * 686c * 8ea1e8ec,e8ec,8ea1e8ecv,e8ecv 615f e6859f 615f 0000615f ba45 ba45 ba45 ba45 ba45 ba45 ba45 -4055 ba46 ba46 ba46 * 686d * 8ea1e8ed,e8ed,8ea1e8edv,e8edv 615a e6859a 615a 0000615a ba46 ba46 ba46 ba46 ba46 ba46 ba46 -4056 ba47 ba47 ba47 * 686e * 8ea1e8ee,e8ee,8ea1e8eev,e8eev 6158 e68598 6158 00006158 ba47 ba47 ba47 ba47 ba47 ba47 ba47 -4057 ba48 ba48 ba48 * 686f * 8ea1e8ef,e8ef,8ea1e8efv,e8efv 6175 e685b5 6175 00006175 ba48 ba48 ba48 ba48 ba48 ba48 ba48 -4058 ba49 ba49 ba49 * 6870 * 8ea1e8f0,e8f0,8ea1e8f0v,e8f0v 622a e688aa 622a 0000622a ba49 ba49 ba49 ba49 ba49 ba49 ba49 -4059 ba4a ba4a ba4a * 6871 * 8ea1e8f1,e8f1,8ea1e8f1v,e8f1v 6487 e69287 6487 00006487 ba4a ba4a ba4a ba4a ba4a ba4a ba4a -4060 ba4b ba4b ba4b * 6872 * 8ea1e8f2,e8f2,8ea1e8f2v,e8f2v 6458 e69198 6458 00006458 ba4b ba4b ba4b ba4b ba4b ba4b ba4b -4061 ba4c ba4c ba4c * 6873 * 8ea1e8f3,e8f3,8ea1e8f3v,e8f3v 6454 e69194 6454 00006454 ba4c ba4c ba4c ba4c ba4c ba4c ba4c -4062 ba4d ba4d ba4d * 6874 * 8ea1e8f4,e8f4,8ea1e8f4v,e8f4v 64a4 e692a4 64a4 000064a4 ba4d ba4d ba4d ba4d ba4d ba4d ba4d -4063 ba4e ba4e ba4e * 6875 * 8ea1e8f5,e8f5,8ea1e8f5v,e8f5v 6478 e691b8 6478 00006478 ba4e ba4e ba4e ba4e ba4e ba4e ba4e -4064 ba4f ba4f ba4f * 6876 * 8ea1e8f6,e8f6,8ea1e8f6v,e8f6v 645f e6919f 645f 0000645f ba4f ba4f ba4f ba4f ba4f ba4f ba4f -4065 ba50 ba50 ba50 * 6877 * 8ea1e8f7,e8f7,8ea1e8f7v,e8f7v 647a e691ba 647a 0000647a ba50 ba50 ba50 ba50 ba50 ba50 ba50 -4066 ba51 ba51 ba51 * 6878 * 8ea1e8f8,e8f8,8ea1e8f8v,e8f8v 6451 e69191 6451 00006451 ba51 ba51 ba51 ba51 ba51 ba51 ba51 -4067 ba52 ba52 ba52 * 6879 * 8ea1e8f9,e8f9,8ea1e8f9v,e8f9v 6467 e691a7 6467 00006467 ba52 ba52 ba52 ba52 ba52 ba52 ba52 -4068 ba53 ba53 ba53 * 687a * 8ea1e8fa,e8fa,8ea1e8fav,e8fav 6434 e690b4 6434 00006434 ba53 ba53 ba53 ba53 ba53 ba53 ba53 -4069 ba54 ba54 ba54 * 687b * 8ea1e8fb,e8fb,8ea1e8fbv,e8fbv 646d e691ad 646d 0000646d ba54 ba54 ba54 ba54 ba54 ba54 ba54 -4070 ba55 ba55 ba55 * 687c * 8ea1e8fc,e8fc,8ea1e8fcv,e8fcv 647b e691bb 647b 0000647b ba55 ba55 ba55 ba55 ba55 ba55 ba55 -4071 ba56 ba56 ba56 * 687d * 8ea1e8fd,e8fd,8ea1e8fdv,e8fdv 6572 e695b2 6572 00006572 ba56 ba56 ba56 ba56 ba56 ba56 ba56 -4072 ba57 ba57 ba57 * 687e * 8ea1e8fe,e8fe,8ea1e8fev,e8fev 65a1 e696a1 65a1 000065a1 ba57 ba57 ba57 ba57 ba57 ba57 ba57 -4073 ba58 ba58 ba58 * 6921 * 8ea1e9a1,e9a1,8ea1e9a1v,e9a1v 65d7 e69797 65d7 000065d7 ba58 ba58 ba58 ba58 ba58 ba58 ba58 -4074 ba59 ba59 ba59 * 6922 * 8ea1e9a2,e9a2,8ea1e9a2v,e9a2v 65d6 e69796 65d6 000065d6 ba59 ba59 ba59 ba59 ba59 ba59 ba59 -4075 ba5a ba5a ba5a * 6923 * 8ea1e9a3,e9a3,8ea1e9a3v,e9a3v 66a2 e69aa2 66a2 000066a2 ba5a ba5a ba5a ba5a ba5a ba5a ba5a -4076 ba5b ba5b ba5b * 6924 * 8ea1e9a4,e9a4,8ea1e9a4v,e9a4v 66a8 e69aa8 66a8 000066a8 ba5b ba5b ba5b ba5b ba5b ba5b ba5b -4077 ba5c ba5c ba5c * 6925 * 8ea1e9a5,e9a5,8ea1e9a5v,e9a5v 669d e69a9d 669d 0000669d ba5c ba5c ba5c ba5c ba5c ba5c ba5c -4078 ba5d ba5d ba5d * 6926 * 8ea1e9a6,e9a6,8ea1e9a6v,e9a6v 699c e6a69c 699c 0000699c ba5d ba5d ba5d ba5d ba5d ba5d ba5d -4079 ba5e ba5e ba5e * 6927 * 8ea1e9a7,e9a7,8ea1e9a7v,e9a7v 69a8 e6a6a8 69a8 000069a8 ba5e ba5e ba5e ba5e ba5e ba5e ba5e -4080 ba5f ba5f ba5f * 6928 * 8ea1e9a8,e9a8,8ea1e9a8v,e9a8v 6995 e6a695 6995 00006995 ba5f ba5f ba5f ba5f ba5f ba5f ba5f -4081 ba60 ba60 ba60 * 6929 * 8ea1e9a9,e9a9,8ea1e9a9v,e9a9v 69c1 e6a781 69c1 000069c1 ba60 ba60 ba60 ba60 ba60 ba60 ba60 -4082 ba61 ba61 ba61 * 692a * 8ea1e9aa,e9aa,8ea1e9aav,e9aav 69ae e6a6ae 69ae 000069ae ba61 ba61 ba61 ba61 ba61 ba61 ba61 -4083 ba62 ba62 ba62 * 692b * 8ea1e9ab,e9ab,8ea1e9abv,e9abv 69d3 e6a793 69d3 000069d3 ba62 ba62 ba62 ba62 ba62 ba62 ba62 -4084 ba63 ba63 ba63 * 692c * 8ea1e9ac,e9ac,8ea1e9acv,e9acv 69cb e6a78b 69cb 000069cb ba63 ba63 ba63 ba63 ba63 ba63 ba63 -4085 ba64 ba64 ba64 * 692d * 8ea1e9ad,e9ad,8ea1e9adv,e9adv 699b e6a69b 699b 0000699b ba64 ba64 ba64 ba64 ba64 ba64 ba64 -4086 ba65 ba65 ba65 * 692e * 8ea1e9ae,e9ae,8ea1e9aev,e9aev 69b7 e6a6b7 69b7 000069b7 ba65 ba65 ba65 ba65 ba65 ba65 ba65 -4087 ba66 ba66 ba66 * 692f * 8ea1e9af,e9af,8ea1e9afv,e9afv 69bb e6a6bb 69bb 000069bb ba66 ba66 ba66 ba66 ba66 ba66 ba66 -4088 ba67 ba67 ba67 * 6930 * 8ea1e9b0,e9b0,8ea1e9b0v,e9b0v 69ab e6a6ab 69ab 000069ab ba67 ba67 ba67 ba67 ba67 ba67 ba67 -4089 ba68 ba68 ba68 * 6931 * 8ea1e9b1,e9b1,8ea1e9b1v,e9b1v 69b4 e6a6b4 69b4 000069b4 ba68 ba68 ba68 ba68 ba68 ba68 ba68 -4090 ba69 ba69 ba69 * 6932 * 8ea1e9b2,e9b2,8ea1e9b2v,e9b2v 69d0 e6a790 69d0 000069d0 ba69 ba69 ba69 ba69 ba69 ba69 ba69 -4091 ba6a ba6a ba6a * 6933 * 8ea1e9b3,e9b3,8ea1e9b3v,e9b3v 69cd e6a78d 69cd 000069cd ba6a ba6a ba6a ba6a ba6a ba6a ba6a -4092 ba6b ba6b ba6b * 6934 * 8ea1e9b4,e9b4,8ea1e9b4v,e9b4v 69ad e6a6ad 69ad 000069ad ba6b ba6b ba6b ba6b ba6b ba6b ba6b -4093 ba6c ba6c ba6c * 6935 * 8ea1e9b5,e9b5,8ea1e9b5v,e9b5v 69cc e6a78c 69cc 000069cc ba6c ba6c ba6c ba6c ba6c ba6c ba6c -4094 ba6d ba6d ba6d * 6936 * 8ea1e9b6,e9b6,8ea1e9b6v,e9b6v 69a6 e6a6a6 69a6 000069a6 ba6d ba6d ba6d ba6d ba6d ba6d ba6d -4095 ba6e ba6e ba6e * 6937 * 8ea1e9b7,e9b7,8ea1e9b7v,e9b7v 69c3 e6a783 69c3 000069c3 ba6e ba6e ba6e ba6e ba6e ba6e ba6e -4096 ba6f ba6f ba6f * 6938 * 8ea1e9b8,e9b8,8ea1e9b8v,e9b8v 69a3 e6a6a3 69a3 000069a3 ba6f ba6f ba6f ba6f ba6f ba6f ba6f -4097 ba70 ba70 ba70 * 6939 * 8ea1e9b9,e9b9,8ea1e9b9v,e9b9v 6b49 e6ad89 6b49 00006b49 ba70 ba70 ba70 ba70 ba70 ba70 ba70 -4098 ba71 ba71 ba71 * 693a * 8ea1e9ba,e9ba,8ea1e9bav,e9bav 6b4c e6ad8c 6b4c 00006b4c ba71 ba71 ba71 ba71 ba71 ba71 ba71 -4099 ba72 ba72 ba72 * 693b * 8ea1e9bb,e9bb,8ea1e9bbv,e9bbv 6c33 e6b0b3 6c33 00006c33 ba72 ba72 ba72 ba72 ba72 ba72 ba72 -4100 ba73 ba73 ba73 * 693c * 8ea1e9bc,e9bc,8ea1e9bcv,e9bcv 6f33 e6bcb3 6f33 00006f33 ba73 ba73 ba73 ba73 ba73 ba73 ba73 -4101 ba74 ba74 ba74 * 693d * 8ea1e9bd,e9bd,8ea1e9bdv,e9bdv 6f14 e6bc94 6f14 00006f14 ba74 ba74 ba74 ba74 ba74 ba74 ba74 -4102 ba75 ba75 ba75 * 693e * 8ea1e9be,e9be,8ea1e9bev,e9bev 6efe e6bbbe 6efe 00006efe ba75 ba75 ba75 ba75 ba75 ba75 ba75 -4103 ba76 ba76 ba76 * 693f * 8ea1e9bf,e9bf,8ea1e9bfv,e9bfv 6f13 e6bc93 6f13 00006f13 ba76 ba76 ba76 ba76 ba76 ba76 ba76 -4104 ba77 ba77 ba77 * 6940 * 8ea1e9c0,e9c0,8ea1e9c0v,e9c0v 6ef4 e6bbb4 6ef4 00006ef4 ba77 ba77 ba77 ba77 ba77 ba77 ba77 -4105 ba78 ba78 ba78 * 6941 * 8ea1e9c1,e9c1,8ea1e9c1v,e9c1v 6f29 e6bca9 6f29 00006f29 ba78 ba78 ba78 ba78 ba78 ba78 ba78 -4106 ba79 ba79 ba79 * 6942 * 8ea1e9c2,e9c2,8ea1e9c2v,e9c2v 6f3e e6bcbe 6f3e 00006f3e ba79 ba79 ba79 ba79 ba79 ba79 ba79 -4107 ba7a ba7a ba7a * 6943 * 8ea1e9c3,e9c3,8ea1e9c3v,e9c3v 6f20 e6bca0 6f20 00006f20 ba7a ba7a ba7a ba7a ba7a ba7a ba7a -4108 ba7b ba7b ba7b * 6944 * 8ea1e9c4,e9c4,8ea1e9c4v,e9c4v 6f2c e6bcac 6f2c 00006f2c ba7b ba7b ba7b ba7b ba7b ba7b ba7b -4109 ba7c ba7c ba7c * 6945 * 8ea1e9c5,e9c5,8ea1e9c5v,e9c5v 6f0f e6bc8f 6f0f 00006f0f ba7c ba7c ba7c ba7c ba7c ba7c ba7c -4110 ba7d ba7d ba7d * 6946 * 8ea1e9c6,e9c6,8ea1e9c6v,e9c6v 6f02 e6bc82 6f02 00006f02 ba7d ba7d ba7d ba7d ba7d ba7d ba7d -4111 ba7e ba7e ba7e * 6947 * 8ea1e9c7,e9c7,8ea1e9c7v,e9c7v 6f22 e6bca2 6f22 00006f22 ba7e ba7e ba7e ba7e ba7e ba7e ba7e -4112 baa1 baa1 baa1 * 6948 * 8ea1e9c8,e9c8,8ea1e9c8v,e9c8v 6eff e6bbbf 6eff 00006eff baa1 baa1 baa1 baa1 baa1 baa1 baa1 -4113 baa2 baa2 baa2 * 6949 * 8ea1e9c9,e9c9,8ea1e9c9v,e9c9v 6eef e6bbaf 6eef 00006eef baa2 baa2 baa2 baa2 baa2 baa2 baa2 -4114 baa3 baa3 baa3 * 694a * 8ea1e9ca,e9ca,8ea1e9cav,e9cav 6f06 e6bc86 6f06 00006f06 baa3 baa3 baa3 baa3 baa3 baa3 baa3 -4115 baa4 baa4 baa4 * 694b * 8ea1e9cb,e9cb,8ea1e9cbv,e9cbv 6f31 e6bcb1 6f31 00006f31 baa4 baa4 baa4 baa4 baa4 baa4 baa4 -4116 baa5 baa5 baa5 * 694c * 8ea1e9cc,e9cc,8ea1e9ccv,e9ccv 6f38 e6bcb8 6f38 00006f38 baa5 baa5 baa5 baa5 baa5 baa5 baa5 -4117 baa6 baa6 baa6 * 694d * 8ea1e9cd,e9cd,8ea1e9cdv,e9cdv 6f32 e6bcb2 6f32 00006f32 baa6 baa6 baa6 baa6 baa6 baa6 baa6 -4118 baa7 baa7 baa7 * 694e * 8ea1e9ce,e9ce,8ea1e9cev,e9cev 6f23 e6bca3 6f23 00006f23 baa7 baa7 baa7 baa7 baa7 baa7 baa7 -4119 baa8 baa8 baa8 * 694f * 8ea1e9cf,e9cf,8ea1e9cfv,e9cfv 6f15 e6bc95 6f15 00006f15 baa8 baa8 baa8 baa8 baa8 baa8 baa8 -4120 baa9 baa9 baa9 * 6950 * 8ea1e9d0,e9d0,8ea1e9d0v,e9d0v 6f2b e6bcab 6f2b 00006f2b baa9 baa9 baa9 baa9 baa9 baa9 baa9 -4121 baaa baaa baaa * 6951 * 8ea1e9d1,e9d1,8ea1e9d1v,e9d1v 6f2f e6bcaf 6f2f 00006f2f baaa baaa baaa baaa baaa baaa baaa -4122 baab baab baab * 6952 * 8ea1e9d2,e9d2,8ea1e9d2v,e9d2v 6f88 e6be88 6f88 00006f88 baab baab baab baab baab baab baab -4123 baac baac baac * 6953 * 8ea1e9d3,e9d3,8ea1e9d3v,e9d3v 6f2a e6bcaa 6f2a 00006f2a baac baac baac baac baac baac baac -4124 baad baad baad * 6954 * 8ea1e9d4,e9d4,8ea1e9d4v,e9d4v 6eec e6bbac 6eec 00006eec baad baad baad baad baad baad baad -4125 baae baae baae * 6955 * 8ea1e9d5,e9d5,8ea1e9d5v,e9d5v 6f01 e6bc81 6f01 00006f01 baae baae baae baae baae baae baae -4126 baaf baaf baaf * 6956 * 8ea1e9d6,e9d6,8ea1e9d6v,e9d6v 6ef2 e6bbb2 6ef2 00006ef2 baaf baaf baaf baaf baaf baaf baaf -4127 bab0 bab0 bab0 * 6957 * 8ea1e9d7,e9d7,8ea1e9d7v,e9d7v 6ecc e6bb8c 6ecc 00006ecc bab0 bab0 bab0 bab0 bab0 bab0 bab0 -4128 bab1 bab1 bab1 * 6958 * 8ea1e9d8,e9d8,8ea1e9d8v,e9d8v 6ef7 e6bbb7 6ef7 00006ef7 bab1 bab1 bab1 bab1 bab1 bab1 bab1 -4129 bab2 bab2 bab2 * 6959 * 8ea1e9d9,e9d9,8ea1e9d9v,e9d9v 7194 e78694 7194 00007194 bab2 bab2 bab2 bab2 bab2 bab2 bab2 -4130 bab3 bab3 bab3 * 695a * 8ea1e9da,e9da,8ea1e9dav,e9dav 7199 e78699 7199 00007199 bab3 bab3 bab3 bab3 bab3 bab3 bab3 -4131 bab4 bab4 bab4 * 695b * 8ea1e9db,e9db,8ea1e9dbv,e9dbv 717d e785bd 717d 0000717d bab4 bab4 bab4 bab4 bab4 bab4 bab4 -4132 bab5 bab5 bab5 * 695c * 8ea1e9dc,e9dc,8ea1e9dcv,e9dcv 718a e7868a 718a 0000718a bab5 bab5 bab5 bab5 bab5 bab5 bab5 -4133 bab6 bab6 bab6 * 695d * 8ea1e9dd,e9dd,8ea1e9ddv,e9ddv 7184 e78684 7184 00007184 bab6 bab6 bab6 bab6 bab6 bab6 bab6 -4134 bab7 bab7 bab7 * 695e * 8ea1e9de,e9de,8ea1e9dev,e9dev 7192 e78692 7192 00007192 bab7 bab7 bab7 bab7 bab7 bab7 bab7 -4135 bab8 bab8 bab8 * 695f * 8ea1e9df,e9df,8ea1e9dfv,e9dfv 723e e788be 723e 0000723e bab8 bab8 bab8 bab8 bab8 bab8 bab8 -4136 bab9 bab9 bab9 * 6960 * 8ea1e9e0,e9e0,8ea1e9e0v,e9e0v 7292 e78a92 7292 00007292 bab9 bab9 bab9 bab9 bab9 bab9 bab9 -4137 baba baba baba * 6961 * 8ea1e9e1,e9e1,8ea1e9e1v,e9e1v 7296 e78a96 7296 00007296 baba baba baba baba baba baba baba -4138 babb babb babb * 6962 * 8ea1e9e2,e9e2,8ea1e9e2v,e9e2v 7344 e78d84 7344 00007344 babb babb babb babb babb babb babb -4139 babc babc babc * 6963 * 8ea1e9e3,e9e3,8ea1e9e3v,e9e3v 7350 e78d90 7350 00007350 babc babc babc babc babc babc babc -4140 babd babd babd * 6964 * 8ea1e9e4,e9e4,8ea1e9e4v,e9e4v 7464 e791a4 7464 00007464 babd babd babd babd babd babd babd -4141 babe babe babe * 6965 * 8ea1e9e5,e9e5,8ea1e9e5v,e9e5v 7463 e791a3 7463 00007463 babe babe babe babe babe babe babe -4142 babf babf babf * 6966 * 8ea1e9e6,e9e6,8ea1e9e6v,e9e6v 746a e791aa 746a 0000746a babf babf babf babf babf babf babf -4143 bac0 bac0 bac0 * 6967 * 8ea1e9e7,e9e7,8ea1e9e7v,e9e7v 7470 e791b0 7470 00007470 bac0 bac0 bac0 bac0 bac0 bac0 bac0 -4144 bac1 bac1 bac1 * 6968 * 8ea1e9e8,e9e8,8ea1e9e8v,e9e8v 746d e791ad 746d 0000746d bac1 bac1 bac1 bac1 bac1 bac1 bac1 -4145 bac2 bac2 bac2 * 6969 * 8ea1e9e9,e9e9,8ea1e9e9v,e9e9v 7504 e79484 7504 00007504 bac2 bac2 bac2 bac2 bac2 bac2 bac2 -4146 bac3 bac3 bac3 * 696a * 8ea1e9ea,e9ea,8ea1e9eav,e9eav 7591 e79691 7591 00007591 bac3 bac3 bac3 bac3 bac3 bac3 bac3 -4147 bac4 bac4 bac4 * 696b * 8ea1e9eb,e9eb,8ea1e9ebv,e9ebv 7627 e798a7 7627 00007627 bac4 bac4 bac4 bac4 bac4 bac4 bac4 -4148 bac5 bac5 bac5 * 696c * 8ea1e9ec,e9ec,8ea1e9ecv,e9ecv 760d e7988d 760d 0000760d bac5 bac5 bac5 bac5 bac5 bac5 bac5 -4149 bac6 bac6 bac6 * 696d * 8ea1e9ed,e9ed,8ea1e9edv,e9edv 760b e7988b 760b 0000760b bac6 bac6 bac6 bac6 bac6 bac6 bac6 -4150 bac7 bac7 bac7 * 696e * 8ea1e9ee,e9ee,8ea1e9eev,e9eev 7609 e79889 7609 00007609 bac7 bac7 bac7 bac7 bac7 bac7 bac7 -4151 bac8 bac8 bac8 * 696f * 8ea1e9ef,e9ef,8ea1e9efv,e9efv 7613 e79893 7613 00007613 bac8 bac8 bac8 bac8 bac8 bac8 bac8 -4152 bac9 bac9 bac9 * 6970 * 8ea1e9f0,e9f0,8ea1e9f0v,e9f0v 76e1 e79ba1 76e1 000076e1 bac9 bac9 bac9 bac9 bac9 bac9 bac9 -4153 baca baca baca * 6971 * 8ea1e9f1,e9f1,8ea1e9f1v,e9f1v 76e3 e79ba3 76e3 000076e3 baca baca baca baca baca baca baca -4154 bacb bacb bacb * 6972 * 8ea1e9f2,e9f2,8ea1e9f2v,e9f2v 7784 e79e84 7784 00007784 bacb bacb bacb bacb bacb bacb bacb -4155 bacc bacc bacc * 6973 * 8ea1e9f3,e9f3,8ea1e9f3v,e9f3v 777d e79dbd 777d 0000777d bacc bacc bacc bacc bacc bacc bacc -4156 bacd bacd bacd * 6974 * 8ea1e9f4,e9f4,8ea1e9f4v,e9f4v 777f e79dbf 777f 0000777f bacd bacd bacd bacd bacd bacd bacd -4157 bace bace bace * 6975 * 8ea1e9f5,e9f5,8ea1e9f5v,e9f5v 7761 e79da1 7761 00007761 bace bace bace bace bace bace bace -4158 bacf bacf bacf * 6976 * 8ea1e9f6,e9f6,8ea1e9f6v,e9f6v 78c1 e7a381 78c1 000078c1 bacf bacf bacf bacf bacf bacf bacf -4159 bad0 bad0 bad0 * 6977 * 8ea1e9f7,e9f7,8ea1e9f7v,e9f7v 789f e7a29f 789f 0000789f bad0 bad0 bad0 bad0 bad0 bad0 bad0 -4160 bad1 bad1 bad1 * 6978 * 8ea1e9f8,e9f8,8ea1e9f8v,e9f8v 78a7 e7a2a7 78a7 000078a7 bad1 bad1 bad1 bad1 bad1 bad1 bad1 -4161 bad2 bad2 bad2 * 6979 * 8ea1e9f9,e9f9,8ea1e9f9v,e9f9v 78b3 e7a2b3 78b3 000078b3 bad2 bad2 bad2 bad2 bad2 bad2 bad2 -4162 bad3 bad3 bad3 * 697a * 8ea1e9fa,e9fa,8ea1e9fav,e9fav 78a9 e7a2a9 78a9 000078a9 bad3 bad3 bad3 bad3 bad3 bad3 bad3 -4163 bad4 bad4 bad4 * 697b * 8ea1e9fb,e9fb,8ea1e9fbv,e9fbv 78a3 e7a2a3 78a3 000078a3 bad4 bad4 bad4 bad4 bad4 bad4 bad4 -4164 bad5 bad5 bad5 * 697c * 8ea1e9fc,e9fc,8ea1e9fcv,e9fcv 798e e7a68e 798e 0000798e bad5 bad5 bad5 bad5 bad5 bad5 bad5 -4165 bad6 bad6 bad6 * 697d * 8ea1e9fd,e9fd,8ea1e9fdv,e9fdv 798f e7a68f 798f 0000798f bad6 bad6 bad6 bad6 bad6 bad6 bad6 -4166 bad7 bad7 bad7 * 697e * 8ea1e9fe,e9fe,8ea1e9fev,e9fev 798d e7a68d 798d 0000798d bad7 bad7 bad7 bad7 bad7 bad7 bad7 -4167 bad8 bad8 bad8 * 6a21 * 8ea1eaa1,eaa1,8ea1eaa1v,eaa1v 7a2e e7a8ae 7a2e 00007a2e bad8 bad8 bad8 bad8 bad8 bad8 bad8 -4168 bad9 bad9 bad9 * 6a22 * 8ea1eaa2,eaa2,8ea1eaa2v,eaa2v 7a31 e7a8b1 7a31 00007a31 bad9 bad9 bad9 bad9 bad9 bad9 bad9 -4169 bada bada bada * 6a23 * 8ea1eaa3,eaa3,8ea1eaa3v,eaa3v 7aaa e7aaaa 7aaa 00007aaa bada bada bada bada bada bada bada -4170 badb badb badb * 6a24 * 8ea1eaa4,eaa4,8ea1eaa4v,eaa4v 7aa9 e7aaa9 7aa9 00007aa9 badb badb badb badb badb badb badb -4171 badc badc badc * 6a25 * 8ea1eaa5,eaa5,8ea1eaa5v,eaa5v 7aed e7abad 7aed 00007aed badc badc badc badc badc badc badc -4172 badd badd badd * 6a26 * 8ea1eaa6,eaa6,8ea1eaa6v,eaa6v 7aef e7abaf 7aef 00007aef badd badd badd badd badd badd badd -4173 bade bade bade * 6a27 * 8ea1eaa7,eaa7,8ea1eaa7v,eaa7v 7ba1 e7aea1 7ba1 00007ba1 bade bade bade bade bade bade bade -4174 badf badf badf * 6a28 * 8ea1eaa8,eaa8,8ea1eaa8v,eaa8v 7b95 e7ae95 7b95 00007b95 badf badf badf badf badf badf badf -4175 bae0 bae0 bae0 * 6a29 * 8ea1eaa9,eaa9,8ea1eaa9v,eaa9v 7b8b e7ae8b 7b8b 00007b8b bae0 bae0 bae0 bae0 bae0 bae0 bae0 -4176 bae1 bae1 bae1 * 6a2a * 8ea1eaaa,eaaa,8ea1eaaav,eaaav 7b75 e7adb5 7b75 00007b75 bae1 bae1 bae1 bae1 bae1 bae1 bae1 -4177 bae2 bae2 bae2 * 6a2b * 8ea1eaab,eaab,8ea1eaabv,eaabv 7b97 e7ae97 7b97 00007b97 bae2 bae2 bae2 bae2 bae2 bae2 bae2 -4178 bae3 bae3 bae3 * 6a2c * 8ea1eaac,eaac,8ea1eaacv,eaacv 7b9d e7ae9d 7b9d 00007b9d bae3 bae3 bae3 bae3 bae3 bae3 bae3 -4179 bae4 bae4 bae4 * 6a2d * 8ea1eaad,eaad,8ea1eaadv,eaadv 7b94 e7ae94 7b94 00007b94 bae4 bae4 bae4 bae4 bae4 bae4 bae4 -4180 bae5 bae5 bae5 * 6a2e * 8ea1eaae,eaae,8ea1eaaev,eaaev 7b8f e7ae8f 7b8f 00007b8f bae5 bae5 bae5 bae5 bae5 bae5 bae5 -4181 bae6 bae6 bae6 * 6a2f * 8ea1eaaf,eaaf,8ea1eaafv,eaafv 7bb8 e7aeb8,ee8cba 7bb8,e33a 00007bb8,0000e33a 8e69,bae6 bae6 bae6 bae6 bae6 bae6 8e69,bae6 -4182 bae7 bae7 bae7 * 6a30 * 8ea1eab0,eab0,8ea1eab0v,eab0v 7b87 e7ae87 7b87 00007b87 bae7 bae7 bae7 bae7 bae7 bae7 bae7 -4183 bae8 bae8 bae8 * 6a31 * 8ea1eab1,eab1,8ea1eab1v,eab1v 7b84 e7ae84 7b84 00007b84 bae8 bae8 bae8 bae8 bae8 bae8 bae8 -4184 bae9 bae9 bae9 * 6a32 * 8ea1eab2,eab2,8ea1eab2v,eab2v 7cb9 e7b2b9 7cb9 00007cb9 bae9 bae9 bae9 bae9 bae9 bae9 bae9 -4185 baea baea baea * 6a33 * 8ea1eab3,eab3,8ea1eab3v,eab3v 7cbd e7b2bd 7cbd 00007cbd baea baea baea baea baea baea baea -4186 baeb baeb baeb * 6a34 * 8ea1eab4,eab4,8ea1eab4v,eab4v 7cbe e7b2be 7cbe 00007cbe baeb baeb baeb baeb baeb baeb baeb -4187 baec baec baec * 6a35 * 8ea1eab5,eab5,8ea1eab5v,eab5v 7dbb e7b6bb 7dbb 00007dbb baec baec baec baec baec baec baec -4188 baed baed baed * 6a36 * 8ea1eab6,eab6,8ea1eab6v,eab6v 7db0 e7b6b0 7db0 00007db0 baed baed baed baed baed baed baed -4189 baee baee baee * 6a37 * 8ea1eab7,eab7,8ea1eab7v,eab7v 7d9c e7b69c 7d9c 00007d9c baee baee baee baee baee baee baee -4190 baef baef baef * 6a38 * 8ea1eab8,eab8,8ea1eab8v,eab8v 7dbd e7b6bd 7dbd 00007dbd baef baef baef baef baef baef baef -4191 baf0 baf0 baf0 * 6a39 * 8ea1eab9,eab9,8ea1eab9v,eab9v 7dbe e7b6be 7dbe 00007dbe baf0 baf0 baf0 baf0 baf0 baf0 baf0 -4192 baf1 baf1 baf1 * 6a3a * 8ea1eaba,eaba,8ea1eabav,eabav 7da0 e7b6a0 7da0 00007da0 baf1 baf1 baf1 baf1 baf1 baf1 baf1 -4193 baf2 baf2 baf2 * 6a3b * 8ea1eabb,eabb,8ea1eabbv,eabbv 7dca e7b78a 7dca 00007dca baf2 baf2 baf2 baf2 baf2 baf2 baf2 -4194 baf3 baf3 baf3 * 6a3c * 8ea1eabc,eabc,8ea1eabcv,eabcv 7db4 e7b6b4 7db4 00007db4 baf3 baf3 baf3 baf3 baf3 baf3 baf3 -4195 baf4 baf4 baf4 * 6a3d * 8ea1eabd,eabd,8ea1eabdv,eabdv 7db2 e7b6b2 7db2 00007db2 baf4 baf4 baf4 baf4 baf4 baf4 baf4 -4196 baf5 baf5 baf5 * 6a3e * 8ea1eabe,eabe,8ea1eabev,eabev 7db1 e7b6b1 7db1 00007db1 baf5 baf5 baf5 baf5 baf5 baf5 baf5 -4197 baf6 baf6 baf6 * 6a3f * 8ea1eabf,eabf,8ea1eabfv,eabfv 7dba e7b6ba 7dba 00007dba baf6 baf6 baf6 baf6 baf6 baf6 baf6 -4198 baf7 baf7 baf7 * 6a40 * 8ea1eac0,eac0,8ea1eac0v,eac0v 7da2 e7b6a2 7da2 00007da2 baf7 baf7 baf7 baf7 baf7 baf7 baf7 -4199 baf8 baf8 baf8 * 6a41 * 8ea1eac1,eac1,8ea1eac1v,eac1v 7dbf e7b6bf 7dbf 00007dbf baf8 baf8 baf8 baf8 baf8 baf8 baf8 -4200 baf9 baf9 baf9 * 6a42 * 8ea1eac2,eac2,8ea1eac2v,eac2v 7db5 e7b6b5 7db5 00007db5 baf9 baf9 baf9 baf9 baf9 baf9 baf9 -4201 bafa bafa bafa * 6a43 * 8ea1eac3,eac3,8ea1eac3v,eac3v 7db8 e7b6b8 7db8 00007db8 bafa bafa bafa bafa bafa bafa bafa -4202 bafb bafb bafb * 6a44 * 8ea1eac4,eac4,8ea1eac4v,eac4v 7dad e7b6ad 7dad 00007dad bafb bafb bafb bafb bafb bafb bafb -4203 bafc bafc bafc * 6a45 * 8ea1eac5,eac5,8ea1eac5v,eac5v 7dd2 e7b792,ee8d9a 7dd2,e35a 00007dd2,0000e35a 8eab,bafc bafc bafc bafc bafc bafc 8eab,bafc -4204 bafd bafd bafd * 6a46 * 8ea1eac6,eac6,8ea1eac6v,eac6v 7dc7 e7b787 7dc7 00007dc7 bafd bafd bafd bafd bafd bafd bafd -4205 bafe bafe bafe * 6a47 * 8ea1eac7,eac7,8ea1eac7v,eac7v 7dac e7b6ac 7dac 00007dac bafe bafe bafe bafe bafe bafe bafe -4206 bb40 bb40 bb40 * 6a48 * 8ea1eac8,eac8,8ea1eac8v,eac8v 7f70 e7bdb0 7f70 00007f70 bb40 bb40 bb40 bb40 bb40 bb40 bb40 -4207 bb41 bb41 bb41 * 6a49 * 8ea1eac9,eac9,8ea1eac9v,eac9v 7fe0 e7bfa0 7fe0 00007fe0 bb41 bb41 bb41 bb41 bb41 bb41 bb41 -4208 bb42 bb42 bb42 * 6a4a * 8ea1eaca,eaca,8ea1eacav,eacav 7fe1 e7bfa1 7fe1 00007fe1 bb42 bb42 bb42 bb42 bb42 bb42 bb42 -4209 bb43 bb43 bb43 * 6a4b * 8ea1eacb,eacb,8ea1eacbv,eacbv 7fdf e7bf9f 7fdf 00007fdf bb43 bb43 bb43 bb43 bb43 bb43 bb43 -4210 bb44 bb44 bb44 * 6a4c * 8ea1eacc,eacc,8ea1eaccv,eaccv 805e e8819e 805e 0000805e bb44 bb44 bb44 bb44 bb44 bb44 bb44 -4211 bb45 bb45 bb45 * 6a4d * 8ea1eacd,eacd,8ea1eacdv,eacdv 805a e8819a 805a 0000805a bb45 bb45 bb45 bb45 bb45 bb45 bb45 -4212 bb46 bb46 bb46 * 6a4e * 8ea1eace,eace,8ea1eacev,eacev 8087 e88287 8087 00008087 bb46 bb46 bb46 bb46 bb46 bb46 bb46 -4213 bb47 bb47 bb47 * 6a4f * 8ea1eacf,eacf,8ea1eacfv,eacfv 8150 e88590 8150 00008150 bb47 bb47 bb47 bb47 bb47 bb47 bb47 -4214 bb48 bb48 bb48 * 6a50 * 8ea1ead0,ead0,8ea1ead0v,ead0v 8180 e88680 8180 00008180 bb48 bb48 bb48 bb48 bb48 bb48 bb48 -4215 bb49 bb49 bb49 * 6a51 * 8ea1ead1,ead1,8ea1ead1v,ead1v 818f e8868f 818f 0000818f bb49 bb49 bb49 bb49 bb49 bb49 bb49 -4216 bb4a bb4a bb4a * 6a52 * 8ea1ead2,ead2,8ea1ead2v,ead2v 8188 e88688 8188 00008188 bb4a bb4a bb4a bb4a bb4a bb4a bb4a -4217 bb4b bb4b bb4b * 6a53 * 8ea1ead3,ead3,8ea1ead3v,ead3v 818a e8868a 818a 0000818a bb4b bb4b bb4b bb4b bb4b bb4b bb4b -4218 bb4c bb4c bb4c * 6a54 * 8ea1ead4,ead4,8ea1ead4v,ead4v 817f e885bf 817f 0000817f bb4c bb4c bb4c bb4c bb4c bb4c bb4c -4219 bb4d bb4d bb4d * 6a55 * 8ea1ead5,ead5,8ea1ead5v,ead5v 8182 e88682 8182 00008182 bb4d bb4d bb4d bb4d bb4d bb4d bb4d -4220 bb4e bb4e bb4e * 6a56 * 8ea1ead6,ead6,8ea1ead6v,ead6v 81e7 e887a7 81e7 000081e7 bb4e bb4e bb4e bb4e bb4e bb4e bb4e -4221 bb4f bb4f bb4f * 6a57 * 8ea1ead7,ead7,8ea1ead7v,ead7v 81fa e887ba 81fa 000081fa bb4f bb4f bb4f bb4f bb4f bb4f bb4f -4222 bb50 bb50 bb50 * 6a58 * 8ea1ead8,ead8,8ea1ead8v,ead8v 8207 e88887 8207 00008207 bb50 bb50 bb50 bb50 bb50 bb50 bb50 -4223 bb51 bb51 bb51 * 6a59 * 8ea1ead9,ead9,8ea1ead9v,ead9v 8214 e88894 8214 00008214 bb51 bb51 bb51 bb51 bb51 bb51 bb51 -4224 bb52 bb52 bb52 * 6a5a * 8ea1eada,eada,8ea1eadav,eadav 821e e8889e 821e 0000821e bb52 bb52 bb52 bb52 bb52 bb52 bb52 -4225 bb53 bb53 bb53 * 6a5b * 8ea1eadb,eadb,8ea1eadbv,eadbv 824b e8898b 824b 0000824b bb53 bb53 bb53 bb53 bb53 bb53 bb53 -4226 bb54 bb54 bb54 * 6a5c * 8ea1eadc,eadc,8ea1eadcv,eadcv 84c9 e89389 84c9 000084c9 bb54 bb54 bb54 bb54 bb54 bb54 bb54 -4227 bb55 bb55 bb55 * 6a5d * 8ea1eadd,eadd,8ea1eaddv,eaddv 84bf e892bf 84bf 000084bf bb55 bb55 bb55 bb55 bb55 bb55 bb55 -4228 bb56 bb56 bb56 * 6a5e * 8ea1eade,eade,8ea1eadev,eadev 84c6 e89386 84c6 000084c6 bb56 bb56 bb56 bb56 bb56 bb56 bb56 -4229 bb57 bb57 bb57 * 6a5f * 8ea1eadf,eadf,8ea1eadfv,eadfv 84c4 e89384 84c4 000084c4 bb57 bb57 bb57 bb57 bb57 bb57 bb57 -4230 bb58 bb58 bb58 * 6a60 * 8ea1eae0,eae0,8ea1eae0v,eae0v 8499 e89299 8499 00008499 bb58 bb58 bb58 bb58 bb58 bb58 bb58 -4231 bb59 bb59 bb59 * 6a61 * 8ea1eae1,eae1,8ea1eae1v,eae1v 849e e8929e 849e 0000849e bb59 bb59 bb59 bb59 bb59 bb59 bb59 -4232 bb5a bb5a bb5a * 6a62 * 8ea1eae2,eae2,8ea1eae2v,eae2v 84b2 e892b2 84b2 000084b2 bb5a bb5a bb5a bb5a bb5a bb5a bb5a -4233 bb5b bb5b bb5b * 6a63 * 8ea1eae3,eae3,8ea1eae3v,eae3v 849c e8929c 849c 0000849c bb5b bb5b bb5b bb5b bb5b bb5b bb5b -4234 bb5c bb5c bb5c * 6a64 * 8ea1eae4,eae4,8ea1eae4v,eae4v 84cb e8938b 84cb 000084cb bb5c bb5c bb5c bb5c bb5c bb5c bb5c -4235 bb5d bb5d bb5d * 6a65 * 8ea1eae5,eae5,8ea1eae5v,eae5v 84b8 e892b8 84b8 000084b8 bb5d bb5d bb5d bb5d bb5d bb5d bb5d -4236 bb5e bb5e bb5e * 6a66 * 8ea1eae6,eae6,8ea1eae6v,eae6v 84c0 e89380 84c0 000084c0 bb5e bb5e bb5e bb5e bb5e bb5e bb5e -4237 bb5f bb5f bb5f * 6a67 * 8ea1eae7,eae7,8ea1eae7v,eae7v 84d3 e89393 84d3 000084d3 bb5f bb5f bb5f bb5f bb5f bb5f bb5f -4238 bb60 bb60 bb60 * 6a68 * 8ea1eae8,eae8,8ea1eae8v,eae8v 8490 e89290 8490 00008490 bb60 bb60 bb60 bb60 bb60 bb60 bb60 -4239 bb61 bb61 bb61 * 6a69 * 8ea1eae9,eae9,8ea1eae9v,eae9v 84bc e892bc 84bc 000084bc bb61 bb61 bb61 bb61 bb61 bb61 bb61 -4240 bb62 bb62 bb62 * 6a6a * 8ea1eaea,eaea,8ea1eaeav,eaeav 84d1 e89391 84d1 000084d1 bb62 bb62 bb62 bb62 bb62 bb62 bb62 -4241 bb63 bb63 bb63 * 6a6b * 8ea1eaeb,eaeb,8ea1eaebv,eaebv 84ca e8938a 84ca 000084ca bb63 bb63 bb63 bb63 bb63 bb63 bb63 -4242 bb64 bb64 bb64 * 6a6c * 8ea1eaec,eaec,8ea1eaecv,eaecv 873f e89cbf 873f 0000873f bb64 bb64 bb64 bb64 bb64 bb64 bb64 -4243 bb65 bb65 bb65 * 6a6d * 8ea1eaed,eaed,8ea1eaedv,eaedv 871c e89c9c 871c 0000871c bb65 bb65 bb65 bb65 bb65 bb65 bb65 -4244 bb66 bb66 bb66 * 6a6e * 8ea1eaee,eaee,8ea1eaeev,eaeev 873b e89cbb 873b 0000873b bb66 bb66 bb66 bb66 bb66 bb66 bb66 -4245 bb67 bb67 bb67 * 6a6f * 8ea1eaef,eaef,8ea1eaefv,eaefv 8722 e89ca2 8722 00008722 bb67 bb67 bb67 bb67 bb67 bb67 bb67 -4246 bb68 bb68 bb68 * 6a70 * 8ea1eaf0,eaf0,8ea1eaf0v,eaf0v 8725 e89ca5 8725 00008725 bb68 bb68 bb68 bb68 bb68 bb68 bb68 -4247 bb69 bb69 bb69 * 6a71 * 8ea1eaf1,eaf1,8ea1eaf1v,eaf1v 8734 e89cb4 8734 00008734 bb69 bb69 bb69 bb69 bb69 bb69 bb69 -4248 bb6a bb6a bb6a * 6a72 * 8ea1eaf2,eaf2,8ea1eaf2v,eaf2v 8718 e89c98 8718 00008718 bb6a bb6a bb6a bb6a bb6a bb6a bb6a -4249 bb6b bb6b bb6b * 6a73 * 8ea1eaf3,eaf3,8ea1eaf3v,eaf3v 8755 e89d95 8755 00008755 bb6b bb6b bb6b bb6b bb6b bb6b bb6b -4250 bb6c bb6c bb6c * 6a74 * 8ea1eaf4,eaf4,8ea1eaf4v,eaf4v 8737 e89cb7 8737 00008737 bb6c bb6c bb6c bb6c bb6c bb6c bb6c -4251 bb6d bb6d bb6d * 6a75 * 8ea1eaf5,eaf5,8ea1eaf5v,eaf5v 8729 e89ca9 8729 00008729 bb6d bb6d bb6d bb6d bb6d bb6d bb6d -4252 bb6e bb6e bb6e * 6a76 * 8ea1eaf6,eaf6,8ea1eaf6v,eaf6v 88f3 e8a3b3 88f3 000088f3 bb6e bb6e bb6e bb6e bb6e bb6e bb6e -4253 bb6f bb6f bb6f * 6a77 * 8ea1eaf7,eaf7,8ea1eaf7v,eaf7v 8902 e8a482 8902 00008902 bb6f bb6f bb6f bb6f bb6f bb6f bb6f -4254 bb70 bb70 bb70 * 6a78 * 8ea1eaf8,eaf8,8ea1eaf8v,eaf8v 88f4 e8a3b4 88f4 000088f4 bb70 bb70 bb70 bb70 bb70 bb70 bb70 -4255 bb71 bb71 bb71 * 6a79 * 8ea1eaf9,eaf9,8ea1eaf9v,eaf9v 88f9 e8a3b9 88f9 000088f9 bb71 bb71 bb71 bb71 bb71 bb71 bb71 -4256 bb72 bb72 bb72 * 6a7a * 8ea1eafa,eafa,8ea1eafav,eafav 88f8 e8a3b8 88f8 000088f8 bb72 bb72 bb72 bb72 bb72 bb72 bb72 -4257 bb73 bb73 bb73 * 6a7b * 8ea1eafb,eafb,8ea1eafbv,eafbv 88fd e8a3bd 88fd 000088fd bb73 bb73 bb73 bb73 bb73 bb73 bb73 -4258 bb74 bb74 bb74 * 6a7c * 8ea1eafc,eafc,8ea1eafcv,eafcv 88e8 e8a3a8 88e8 000088e8 bb74 bb74 bb74 bb74 bb74 bb74 bb74 -4259 bb75 bb75 bb75 * 6a7d * 8ea1eafd,eafd,8ea1eafdv,eafdv 891a e8a49a 891a 0000891a bb75 bb75 bb75 bb75 bb75 bb75 bb75 -4260 bb76 bb76 bb76 * 6a7e * 8ea1eafe,eafe,8ea1eafev,eafev 88ef e8a3af 88ef 000088ef bb76 bb76 bb76 bb76 bb76 bb76 bb76 -4261 bb77 bb77 bb77 * 6b21 * 8ea1eba1,eba1,8ea1eba1v,eba1v 8aa6 e8aaa6 8aa6 00008aa6 bb77 bb77 bb77 bb77 bb77 bb77 bb77 -4262 bb78 bb78 bb78 * 6b22 * 8ea1eba2,eba2,8ea1eba2v,eba2v 8a8c e8aa8c 8a8c 00008a8c bb78 bb78 bb78 bb78 bb78 bb78 bb78 -4263 bb79 bb79 bb79 * 6b23 * 8ea1eba3,eba3,8ea1eba3v,eba3v 8a9e e8aa9e 8a9e 00008a9e bb79 bb79 bb79 bb79 bb79 bb79 bb79 -4264 bb7a bb7a bb7a * 6b24 * 8ea1eba4,eba4,8ea1eba4v,eba4v 8aa3 e8aaa3 8aa3 00008aa3 bb7a bb7a bb7a bb7a bb7a bb7a bb7a -4265 bb7b bb7b bb7b * 6b25 * 8ea1eba5,eba5,8ea1eba5v,eba5v 8a8d e8aa8d 8a8d 00008a8d bb7b bb7b bb7b bb7b bb7b bb7b bb7b -4266 bb7c bb7c bb7c * 6b26 * 8ea1eba6,eba6,8ea1eba6v,eba6v 8aa1 e8aaa1 8aa1 00008aa1 bb7c bb7c bb7c bb7c bb7c bb7c bb7c -4267 bb7d bb7d bb7d * 6b27 * 8ea1eba7,eba7,8ea1eba7v,eba7v 8a93 e8aa93 8a93 00008a93 bb7d bb7d bb7d bb7d bb7d bb7d bb7d -4268 bb7e bb7e bb7e * 6b28 * 8ea1eba8,eba8,8ea1eba8v,eba8v 8aa4 e8aaa4 8aa4 00008aa4 bb7e bb7e bb7e bb7e bb7e bb7e bb7e -4269 bba1 bba1 bba1 * 6b29 * 8ea1eba9,eba9,8ea1eba9v,eba9v 8aaa e8aaaa 8aaa 00008aaa bba1 bba1 bba1 bba1 bba1 bba1 bba1 -4270 bba2 bba2 bba2 * 6b2a * 8ea1ebaa,ebaa,8ea1ebaav,ebaav 8aa5 e8aaa5 8aa5 00008aa5 bba2 bba2 bba2 bba2 bba2 bba2 bba2 -4271 bba3 bba3 bba3 * 6b2b * 8ea1ebab,ebab,8ea1ebabv,ebabv 8aa8 e8aaa8 8aa8 00008aa8 bba3 bba3 bba3 bba3 bba3 bba3 bba3 -4272 bba4 bba4 bba4 * 6b2c * 8ea1ebac,ebac,8ea1ebacv,ebacv 8a98 e8aa98 8a98 00008a98 bba4 bba4 bba4 bba4 bba4 bba4 bba4 -4273 bba5 bba5 bba5 * 6b2d * 8ea1ebad,ebad,8ea1ebadv,ebadv 8a91 e8aa91 8a91 00008a91 bba5 bba5 bba5 bba5 bba5 bba5 bba5 -4274 bba6 bba6 bba6 * 6b2e * 8ea1ebae,ebae,8ea1ebaev,ebaev 8a9a e8aa9a 8a9a 00008a9a bba6 bba6 bba6 bba6 bba6 bba6 bba6 -4275 bba7 bba7 bba7 * 6b2f * 8ea1ebaf,ebaf,8ea1ebafv,ebafv 8aa7 e8aaa7 8aa7 00008aa7 bba7 bba7 bba7 bba7 bba7 bba7 bba7 -4276 bba8 bba8 bba8 * 6b30 * 8ea1ebb0,ebb0,8ea1ebb0v,ebb0v 8c6a e8b1aa 8c6a 00008c6a bba8 bba8 bba8 bba8 bba8 bba8 bba8 -4277 bba9 bba9 bba9 * 6b31 * 8ea1ebb1,ebb1,8ea1ebb1v,ebb1v 8c8d e8b28d 8c8d 00008c8d bba9 bba9 bba9 bba9 bba9 bba9 bba9 -4278 bbaa bbaa bbaa * 6b32 * 8ea1ebb2,ebb2,8ea1ebb2v,ebb2v 8c8c e8b28c 8c8c 00008c8c bbaa bbaa bbaa bbaa bbaa bbaa bbaa -4279 bbab bbab bbab * 6b33 * 8ea1ebb3,ebb3,8ea1ebb3v,ebb3v 8cd3 e8b393 8cd3 00008cd3 bbab bbab bbab bbab bbab bbab bbab -4280 bbac bbac bbac * 6b34 * 8ea1ebb4,ebb4,8ea1ebb4v,ebb4v 8cd1 e8b391 8cd1 00008cd1 bbac bbac bbac bbac bbac bbac bbac -4281 bbad bbad bbad * 6b35 * 8ea1ebb5,ebb5,8ea1ebb5v,ebb5v 8cd2 e8b392 8cd2 00008cd2 bbad bbad bbad bbad bbad bbad bbad -4282 bbae bbae bbae * 6b36 * 8ea1ebb6,ebb6,8ea1ebb6v,ebb6v 8d6b e8b5ab 8d6b 00008d6b bbae bbae bbae bbae bbae bbae bbae -4283 bbaf bbaf bbaf * 6b37 * 8ea1ebb7,ebb7,8ea1ebb7v,ebb7v 8d99 e8b699 8d99 00008d99 bbaf bbaf bbaf bbaf bbaf bbaf bbaf -4284 bbb0 bbb0 bbb0 * 6b38 * 8ea1ebb8,ebb8,8ea1ebb8v,ebb8v 8d95 e8b695 8d95 00008d95 bbb0 bbb0 bbb0 bbb0 bbb0 bbb0 bbb0 -4285 bbb1 bbb1 bbb1 * 6b39 * 8ea1ebb9,ebb9,8ea1ebb9v,ebb9v 8dfc e8b7bc 8dfc 00008dfc bbb1 bbb1 bbb1 bbb1 bbb1 bbb1 bbb1 -4286 bbb2 bbb2 bbb2 * 6b3a * 8ea1ebba,ebba,8ea1ebbav,ebbav 8f14 e8bc94 8f14 00008f14 bbb2 bbb2 bbb2 bbb2 bbb2 bbb2 bbb2 -4287 bbb3 bbb3 bbb3 * 6b3b * 8ea1ebbb,ebbb,8ea1ebbbv,ebbbv 8f12 e8bc92 8f12 00008f12 bbb3 bbb3 bbb3 bbb3 bbb3 bbb3 bbb3 -4288 bbb4 bbb4 bbb4 * 6b3c * 8ea1ebbc,ebbc,8ea1ebbcv,ebbcv 8f15 e8bc95 8f15 00008f15 bbb4 bbb4 bbb4 bbb4 bbb4 bbb4 bbb4 -4289 bbb5 bbb5 bbb5 * 6b3d * 8ea1ebbd,ebbd,8ea1ebbdv,ebbdv 8f13 e8bc93 8f13 00008f13 bbb5 bbb5 bbb5 bbb5 bbb5 bbb5 bbb5 -4290 bbb6 bbb6 bbb6 * 6b3e * 8ea1ebbe,ebbe,8ea1ebbev,ebbev 8fa3 e8bea3 8fa3 00008fa3 bbb6 bbb6 bbb6 bbb6 bbb6 bbb6 bbb6 -4291 bbb7 bbb7 bbb7 * 6b3f * 8ea1ebbf,ebbf,8ea1ebbfv,ebbfv 9060 e981a0 9060 00009060 bbb7 bbb7 bbb7 bbb7 bbb7 bbb7 bbb7 -4292 bbb8 bbb8 bbb8 * 6b40 * 8ea1ebc0,ebc0,8ea1ebc0v,ebc0v 9058 e98198 9058 00009058 bbb8 bbb8 bbb8 bbb8 bbb8 bbb8 bbb8 -4293 bbb9 bbb9 bbb9 * 6b41 * 8ea1ebc1,ebc1,8ea1ebc1v,ebc1v 905c e9819c 905c 0000905c bbb9 bbb9 bbb9 bbb9 bbb9 bbb9 bbb9 -4294 bbba bbba bbba * 6b42 * 8ea1ebc2,ebc2,8ea1ebc2v,ebc2v 9063 e981a3 9063 00009063 bbba bbba bbba bbba bbba bbba bbba -4295 bbbb bbbb bbbb * 6b43 * 8ea1ebc3,ebc3,8ea1ebc3v,ebc3v 9059 e98199 9059 00009059 bbbb bbbb bbbb bbbb bbbb bbbb bbbb -4296 bbbc bbbc bbbc * 6b44 * 8ea1ebc4,ebc4,8ea1ebc4v,ebc4v 905e e9819e 905e 0000905e bbbc bbbc bbbc bbbc bbbc bbbc bbbc -4297 bbbd bbbd bbbd * 6b45 * 8ea1ebc5,ebc5,8ea1ebc5v,ebc5v 9062 e981a2 9062 00009062 bbbd bbbd bbbd bbbd bbbd bbbd bbbd -4298 bbbe bbbe bbbe * 6b46 * 8ea1ebc6,ebc6,8ea1ebc6v,ebc6v 905d e9819d 905d 0000905d bbbe bbbe bbbe bbbe bbbe bbbe bbbe -4299 bbbf bbbf bbbf * 6b47 * 8ea1ebc7,ebc7,8ea1ebc7v,ebc7v 905b e9819b 905b 0000905b bbbf bbbf bbbf bbbf bbbf bbbf bbbf -4300 bbc0 bbc0 bbc0 * 6b48 * 8ea1ebc8,ebc8,8ea1ebc8v,ebc8v 9119 e98499 9119 00009119 bbc0 bbc0 bbc0 bbc0 bbc0 bbc0 bbc0 -4301 bbc1 bbc1 bbc1 * 6b49 * 8ea1ebc9,ebc9,8ea1ebc9v,ebc9v 9118 e98498 9118 00009118 bbc1 bbc1 bbc1 bbc1 bbc1 bbc1 bbc1 -4302 bbc2 bbc2 bbc2 * 6b4a * 8ea1ebca,ebca,8ea1ebcav,ebcav 911e e9849e 911e 0000911e bbc2 bbc2 bbc2 bbc2 bbc2 bbc2 bbc2 -4303 bbc3 bbc3 bbc3 * 6b4b * 8ea1ebcb,ebcb,8ea1ebcbv,ebcbv 9175 e985b5 9175 00009175 bbc3 bbc3 bbc3 bbc3 bbc3 bbc3 bbc3 -4304 bbc4 bbc4 bbc4 * 6b4c * 8ea1ebcc,ebcc,8ea1ebccv,ebccv 9178 e985b8 9178 00009178 bbc4 bbc4 bbc4 bbc4 bbc4 bbc4 bbc4 -4305 bbc5 bbc5 bbc5 * 6b4d * 8ea1ebcd,ebcd,8ea1ebcdv,ebcdv 9177 e985b7 9177 00009177 bbc5 bbc5 bbc5 bbc5 bbc5 bbc5 bbc5 -4306 bbc6 bbc6 bbc6 * 6b4e * 8ea1ebce,ebce,8ea1ebcev,ebcev 9174 e985b4 9174 00009174 bbc6 bbc6 bbc6 bbc6 bbc6 bbc6 bbc6 -4307 bbc7 bbc7 bbc7 * 6b4f * 8ea1ebcf,ebcf,8ea1ebcfv,ebcfv 9278 e989b8 9278 00009278 bbc7 bbc7 bbc7 bbc7 bbc7 bbc7 bbc7 -4308 be52 be52 be52 * 6b50 * 8ea1ebd0,ebd0,8ea1ebd0v,ebd0v 92ac e98aac 92ac 000092ac be52 be52 be52 be52 be52 be52 be52 -4309 bbc8 bbc8 bbc8 * 6b51 * 8ea1ebd1,ebd1,8ea1ebd1v,ebd1v 9280 e98a80 9280 00009280 bbc8 bbc8 bbc8 bbc8 bbc8 bbc8 bbc8 -4310 bbc9 bbc9 bbc9 * 6b52 * 8ea1ebd2,ebd2,8ea1ebd2v,ebd2v 9285 e98a85 9285 00009285 bbc9 bbc9 bbc9 bbc9 bbc9 bbc9 bbc9 -4311 bbca bbca bbca * 6b53 * 8ea1ebd3,ebd3,8ea1ebd3v,ebd3v 9298 e98a98 9298 00009298 bbca bbca bbca bbca bbca bbca bbca -4312 bbcb bbcb bbcb * 6b54 * 8ea1ebd4,ebd4,8ea1ebd4v,ebd4v 9296 e98a96 9296 00009296 bbcb bbcb bbcb bbcb bbcb bbcb bbcb -4313 bbcc bbcc bbcc * 6b55 * 8ea1ebd5,ebd5,8ea1ebd5v,ebd5v 927b e989bb 927b 0000927b bbcc bbcc bbcc bbcc bbcc bbcc bbcc -4314 bbcd bbcd bbcd * 6b56 * 8ea1ebd6,ebd6,8ea1ebd6v,ebd6v 9293 e98a93 9293 00009293 bbcd bbcd bbcd bbcd bbcd bbcd bbcd -4315 bbce bbce bbce * 6b57 * 8ea1ebd7,ebd7,8ea1ebd7v,ebd7v 929c e98a9c 929c 0000929c bbce bbce bbce bbce bbce bbce bbce -4316 bbcf bbcf bbcf * 6b58 * 8ea1ebd8,ebd8,8ea1ebd8v,ebd8v 92a8 e98aa8 92a8 000092a8 bbcf bbcf bbcf bbcf bbcf bbcf bbcf -4317 bbd0 bbd0 bbd0 * 6b59 * 8ea1ebd9,ebd9,8ea1ebd9v,ebd9v 927c e989bc 927c 0000927c bbd0 bbd0 bbd0 bbd0 bbd0 bbd0 bbd0 -4318 bbd1 bbd1 bbd1 * 6b5a * 8ea1ebda,ebda,8ea1ebdav,ebdav 9291 e98a91 9291 00009291 bbd1 bbd1 bbd1 bbd1 bbd1 bbd1 bbd1 -4319 bbd2 bbd2 bbd2 * 6b5b * 8ea1ebdb,ebdb,8ea1ebdbv,ebdbv 95a1 e996a1 95a1 000095a1 bbd2 bbd2 bbd2 bbd2 bbd2 bbd2 bbd2 -4320 bbd3 bbd3 bbd3 * 6b5c * 8ea1ebdc,ebdc,8ea1ebdcv,ebdcv 95a8 e996a8 95a8 000095a8 bbd3 bbd3 bbd3 bbd3 bbd3 bbd3 bbd3 -4321 bbd4 bbd4 bbd4 * 6b5d * 8ea1ebdd,ebdd,8ea1ebddv,ebddv 95a9 e996a9 95a9 000095a9 bbd4 bbd4 bbd4 bbd4 bbd4 bbd4 bbd4 -4322 bbd5 bbd5 bbd5 * 6b5e * 8ea1ebde,ebde,8ea1ebdev,ebdev 95a3 e996a3 95a3 000095a3 bbd5 bbd5 bbd5 bbd5 bbd5 bbd5 bbd5 -4323 bbd6 bbd6 bbd6 * 6b5f * 8ea1ebdf,ebdf,8ea1ebdfv,ebdfv 95a5 e996a5 95a5 000095a5 bbd6 bbd6 bbd6 bbd6 bbd6 bbd6 bbd6 -4324 bbd7 bbd7 bbd7 * 6b60 * 8ea1ebe0,ebe0,8ea1ebe0v,ebe0v 95a4 e996a4 95a4 000095a4 bbd7 bbd7 bbd7 bbd7 bbd7 bbd7 bbd7 -4325 bbd8 bbd8 bbd8 * 6b61 * 8ea1ebe1,ebe1,8ea1ebe1v,ebe1v 9699 e99a99 9699 00009699 bbd8 bbd8 bbd8 bbd8 bbd8 bbd8 bbd8 -4326 bbd9 bbd9 bbd9 * 6b62 * 8ea1ebe2,ebe2,8ea1ebe2v,ebe2v 969c e99a9c 969c 0000969c bbd9 bbd9 bbd9 bbd9 bbd9 bbd9 bbd9 -4327 bbda bbda bbda * 6b63 * 8ea1ebe3,ebe3,8ea1ebe3v,ebe3v 969b e99a9b 969b 0000969b bbda bbda bbda bbda bbda bbda bbda -4328 bbdb bbdb bbdb * 6b64 * 8ea1ebe4,ebe4,8ea1ebe4v,ebe4v 96cc e99b8c 96cc 000096cc bbdb bbdb bbdb bbdb bbdb bbdb bbdb -4329 bbdc bbdc bbdc * 6b65 * 8ea1ebe5,ebe5,8ea1ebe5v,ebe5v 96d2 e99b92 96d2 000096d2 bbdc bbdc bbdc bbdc bbdc bbdc bbdc -4330 bbdd bbdd bbdd * 6b66 * 8ea1ebe6,ebe6,8ea1ebe6v,ebe6v 9700 e99c80 9700 00009700 bbdd bbdd bbdd bbdd bbdd bbdd bbdd -4331 bbde bbde bbde * 6b67 * 8ea1ebe7,ebe7,8ea1ebe7v,ebe7v 977c e99dbc 977c 0000977c bbde bbde bbde bbde bbde bbde bbde -4332 bbdf bbdf bbdf * 6b68 * 8ea1ebe8,ebe8,8ea1ebe8v,ebe8v 9785 e99e85 9785 00009785 bbdf bbdf bbdf bbdf bbdf bbdf bbdf -4333 bbe0 bbe0 bbe0 * 6b69 * 8ea1ebe9,ebe9,8ea1ebe9v,ebe9v 97f6 e99fb6 97f6 000097f6 bbe0 bbe0 bbe0 bbe0 bbe0 bbe0 bbe0 -4334 bbe1 bbe1 bbe1 * 6b6a * 8ea1ebea,ebea,8ea1ebeav,ebeav 9817 e9a097 9817 00009817 bbe1 bbe1 bbe1 bbe1 bbe1 bbe1 bbe1 -4335 bbe2 bbe2 bbe2 * 6b6b * 8ea1ebeb,ebeb,8ea1ebebv,ebebv 9818 e9a098 9818 00009818 bbe2 bbe2 bbe2 bbe2 bbe2 bbe2 bbe2 -4336 bbe3 bbe3 bbe3 * 6b6c * 8ea1ebec,ebec,8ea1ebecv,ebecv 98af e9a2af 98af 000098af bbe3 bbe3 bbe3 bbe3 bbe3 bbe3 bbe3 -4337 bbe4 bbe4 bbe4 * 6b6d * 8ea1ebed,ebed,8ea1ebedv,ebedv 98b1 e9a2b1 98b1 000098b1 bbe4 bbe4 bbe4 bbe4 bbe4 bbe4 bbe4 -4338 bbe5 bbe5 bbe5 * 6b6e * 8ea1ebee,ebee,8ea1ebeev,ebeev 9903 e9a483 9903 00009903 bbe5 bbe5 bbe5 bbe5 bbe5 bbe5 bbe5 -4339 bbe6 bbe6 bbe6 * 6b6f * 8ea1ebef,ebef,8ea1ebefv,ebefv 9905 e9a485 9905 00009905 bbe6 bbe6 bbe6 bbe6 bbe6 bbe6 bbe6 -4340 bbe7 bbe7 bbe7 * 6b70 * 8ea1ebf0,ebf0,8ea1ebf0v,ebf0v 990c e9a48c 990c 0000990c bbe7 bbe7 bbe7 bbe7 bbe7 bbe7 bbe7 -4341 bbe8 bbe8 bbe8 * 6b71 * 8ea1ebf1,ebf1,8ea1ebf1v,ebf1v 9909 e9a489 9909 00009909 bbe8 bbe8 bbe8 bbe8 bbe8 bbe8 bbe8 -4342 bbe9 bbe9 bbe9 * 6b72 * 8ea1ebf2,ebf2,8ea1ebf2v,ebf2v 99c1 e9a781 99c1 000099c1 bbe9 bbe9 bbe9 bbe9 bbe9 bbe9 bbe9 -4343 bbea bbea bbea * 6b73 * 8ea1ebf3,ebf3,8ea1ebf3v,ebf3v 9aaf e9aaaf 9aaf 00009aaf bbea bbea bbea bbea bbea bbea bbea -4344 bbeb bbeb bbeb * 6b74 * 8ea1ebf4,ebf4,8ea1ebf4v,ebf4v 9ab0 e9aab0 9ab0 00009ab0 bbeb bbeb bbeb bbeb bbeb bbeb bbeb -4345 bbec bbec bbec * 6b75 * 8ea1ebf5,ebf5,8ea1ebf5v,ebf5v 9ae6 e9aba6 9ae6 00009ae6 bbec bbec bbec bbec bbec bbec bbec -4346 bbed bbed bbed * 6b76 * 8ea1ebf6,ebf6,8ea1ebf6v,ebf6v 9b41 e9ad81 9b41 00009b41 bbed bbed bbed bbed bbed bbed bbed -4347 bbee bbee bbee * 6b77 * 8ea1ebf7,ebf7,8ea1ebf7v,ebf7v 9b42 e9ad82 9b42 00009b42 bbee bbee bbee bbee bbee bbee bbee -4348 bbef bbef bbef * 6b78 * 8ea1ebf8,ebf8,8ea1ebf8v,ebf8v 9cf4 e9b3b4 9cf4 00009cf4 bbef bbef bbef bbef bbef bbef bbef -4349 bbf0 bbf0 bbf0 * 6b79 * 8ea1ebf9,ebf9,8ea1ebf9v,ebf9v 9cf6 e9b3b6 9cf6 00009cf6 bbf0 bbf0 bbf0 bbf0 bbf0 bbf0 bbf0 -4350 bbf1 bbf1 bbf1 * 6b7a * 8ea1ebfa,ebfa,8ea1ebfav,ebfav 9cf3 e9b3b3 9cf3 00009cf3 bbf1 bbf1 bbf1 bbf1 bbf1 bbf1 bbf1 -4351 bbf2 bbf2 bbf2 * 6b7b * 8ea1ebfb,ebfb,8ea1ebfbv,ebfbv 9ebc e9babc 9ebc 00009ebc bbf2 bbf2 bbf2 bbf2 bbf2 bbf2 bbf2 -4352 bbf3 bbf3 bbf3 * 2934,6b7c * 8ea1a9b4,8ea1ebfc,a9b4,ebfc,8ea1a9b4v,8ea1ebfcv,a9b4v,ebfcv 9f3b e9bcbb,e2bf90 9f3b,2fd0 00009f3b,00002fd0 bbf3 bbf3 bbf3 bbf3 bbf3 bbf3 bbf3 -4353 bbf4 bbf4 bbf4 * 2935,6b7d * 8ea1a9b5,8ea1ebfd,a9b5,ebfd,8ea1a9b5v,8ea1ebfdv,a9b5v,ebfdv 9f4a e9bd8a,e2bf91 9f4a,2fd1 00009f4a,00002fd1 bbf4 bbf4 bbf4 bbf4 bbf4 bbf4 bbf4 -4354 bbf5 bbf5 bbf5 * 6b7e * 8ea1ebfe,ebfe,8ea1ebfev,ebfev 5104 e58484 5104 00005104 bbf5 bbf5 bbf5 bbf5 bbf5 bbf5 bbf5 -4355 bbf6 bbf6 bbf6 * 6c21 * 8ea1eca1,eca1,8ea1eca1v,eca1v 5100 e58480 5100 00005100 bbf6 bbf6 bbf6 bbf6 bbf6 bbf6 bbf6 -4356 bbf7 bbf7 bbf7 * 6c22 * 8ea1eca2,eca2,8ea1eca2v,eca2v 50fb e583bb 50fb 000050fb bbf7 bbf7 bbf7 bbf7 bbf7 bbf7 bbf7 -4357 bbf8 bbf8 bbf8 * 6c23 * 8ea1eca3,eca3,8ea1eca3v,eca3v 50f5 e583b5 50f5 000050f5 bbf8 bbf8 bbf8 bbf8 bbf8 bbf8 bbf8 -4358 bbf9 bbf9 bbf9 * 6c24 * 8ea1eca4,eca4,8ea1eca4v,eca4v 50f9 e583b9 50f9 000050f9 bbf9 bbf9 bbf9 bbf9 bbf9 bbf9 bbf9 -4359 bbfa bbfa bbfa * 6c25 * 8ea1eca5,eca5,8ea1eca5v,eca5v 5102 e58482 5102 00005102 bbfa bbfa bbfa bbfa bbfa bbfa bbfa -4360 bbfb bbfb bbfb * 6c26 * 8ea1eca6,eca6,8ea1eca6v,eca6v 5108 e58488 5108 00005108 bbfb bbfb bbfb bbfb bbfb bbfb bbfb -4361 bbfc bbfc bbfc * 6c27 * 8ea1eca7,eca7,8ea1eca7v,eca7v 5109 e58489 5109 00005109 bbfc bbfc bbfc bbfc bbfc bbfc bbfc -4362 bbfd bbfd bbfd * 6c28 * 8ea1eca8,eca8,8ea1eca8v,eca8v 5105 e58485 5105 00005105 bbfd bbfd bbfd bbfd bbfd bbfd bbfd -4363 bbfe bbfe bbfe * 6c29 * 8ea1eca9,eca9,8ea1eca9v,eca9v 51dc e5879c 51dc 000051dc bbfe bbfe bbfe bbfe bbfe bbfe bbfe -4364 bc40 bc40 bc40 * 6c2a * 8ea1ecaa,ecaa,8ea1ecaav,ecaav 5287 e58a87 5287 00005287 bc40 bc40 bc40 bc40 bc40 bc40 bc40 -4365 bc41 bc41 bc41 * 6c2b * 8ea1ecab,ecab,8ea1ecabv,ecabv 5288 e58a88 5288 00005288 bc41 bc41 bc41 bc41 bc41 bc41 bc41 -4366 bc42 bc42 bc42 * 6c2c * 8ea1ecac,ecac,8ea1ecacv,ecacv 5289 e58a89 5289 00005289 bc42 bc42 bc42 bc42 bc42 bc42 bc42 -4367 bc43 bc43 bc43 * 6c2d * 8ea1ecad,ecad,8ea1ecadv,ecadv 528d e58a8d 528d 0000528d bc43 bc43 bc43 bc43 bc43 bc43 bc43 -4368 bc44 bc44 bc44 * 6c2e * 8ea1ecae,ecae,8ea1ecaev,ecaev 528a e58a8a 528a 0000528a bc44 bc44 bc44 bc44 bc44 bc44 bc44 -4369 bc45 bc45 bc45 * 6c2f * 8ea1ecaf,ecaf,8ea1ecafv,ecafv 52f0 e58bb0 52f0 000052f0 bc45 bc45 bc45 bc45 bc45 bc45 bc45 -4370 bc46 bc46 bc46 * 6c30 * 8ea1ecb0,ecb0,8ea1ecb0v,ecb0v 53b2 e58eb2 53b2 000053b2 bc46 bc46 bc46 bc46 bc46 bc46 bc46 -4371 bc47 bc47 bc47 * 6c31 * 8ea1ecb1,ecb1,8ea1ecb1v,ecb1v 562e e598ae 562e 0000562e bc47 bc47 bc47 bc47 bc47 bc47 bc47 -4372 bc48 bc48 bc48 * 6c32 * 8ea1ecb2,ecb2,8ea1ecb2v,ecb2v 563b e598bb 563b 0000563b bc48 bc48 bc48 bc48 bc48 bc48 bc48 -4373 bc49 bc49 bc49 * 6c33 * 8ea1ecb3,ecb3,8ea1ecb3v,ecb3v 5639 e598b9 5639 00005639 bc49 bc49 bc49 bc49 bc49 bc49 bc49 -4374 bc4a bc4a bc4a * 6c34 * 8ea1ecb4,ecb4,8ea1ecb4v,ecb4v 5632 e598b2 5632 00005632 bc4a bc4a bc4a bc4a bc4a bc4a bc4a -4375 bc4b bc4b bc4b * 6c35 * 8ea1ecb5,ecb5,8ea1ecb5v,ecb5v 563f e598bf 563f 0000563f bc4b bc4b bc4b bc4b bc4b bc4b bc4b -4376 bc4c bc4c bc4c * 6c36 * 8ea1ecb6,ecb6,8ea1ecb6v,ecb6v 5634 e598b4 5634 00005634 bc4c bc4c bc4c bc4c bc4c bc4c bc4c -4377 bc4d bc4d bc4d * 6c37 * 8ea1ecb7,ecb7,8ea1ecb7v,ecb7v 5629 e598a9 5629 00005629 bc4d bc4d bc4d bc4d bc4d bc4d bc4d -4378 bc4e bc4e bc4e * 6c38 * 8ea1ecb8,ecb8,8ea1ecb8v,ecb8v 5653 e59993 5653 00005653 bc4e bc4e bc4e bc4e bc4e bc4e bc4e -4379 bc4f bc4f bc4f * 6c39 * 8ea1ecb9,ecb9,8ea1ecb9v,ecb9v 564e e5998e 564e 0000564e bc4f bc4f bc4f bc4f bc4f bc4f bc4f -4380 bc50 bc50 bc50 * 6c3a * 8ea1ecba,ecba,8ea1ecbav,ecbav 5657 e59997 5657 00005657 bc50 bc50 bc50 bc50 bc50 bc50 bc50 -4381 bc51 bc51 bc51 * 6c3b * 8ea1ecbb,ecbb,8ea1ecbbv,ecbbv 5674 e599b4 5674 00005674 bc51 bc51 bc51 bc51 bc51 bc51 bc51 -4382 bc52 bc52 bc52 * 6c3c * 8ea1ecbc,ecbc,8ea1ecbcv,ecbcv 5636 e598b6 5636 00005636 bc52 bc52 bc52 bc52 bc52 bc52 bc52 -4383 bc53 bc53 bc53 * 6c3d * 8ea1ecbd,ecbd,8ea1ecbdv,ecbdv 562f e598af 562f 0000562f bc53 bc53 bc53 bc53 bc53 bc53 bc53 -4384 bc54 bc54 bc54 * 6c3e * 8ea1ecbe,ecbe,8ea1ecbev,ecbev 5630 e598b0 5630 00005630 bc54 bc54 bc54 bc54 bc54 bc54 bc54 -4385 bc55 bc55 bc55 * 6c3f * 8ea1ecbf,ecbf,8ea1ecbfv,ecbfv 5880 e5a280 5880 00005880 bc55 bc55 bc55 bc55 bc55 bc55 bc55 -4386 bc56 bc56 bc56 * 6c40 * 8ea1ecc0,ecc0,8ea1ecc0v,ecc0v 589f e5a29f 589f 0000589f bc56 bc56 bc56 bc56 bc56 bc56 bc56 -4387 bc57 bc57 bc57 * 6c41 * 8ea1ecc1,ecc1,8ea1ecc1v,ecc1v 589e e5a29e 589e 0000589e bc57 bc57 bc57 bc57 bc57 bc57 bc57 -4388 bc58 bc58 bc58 * 6c42 * 8ea1ecc2,ecc2,8ea1ecc2v,ecc2v 58b3 e5a2b3 58b3 000058b3 bc58 bc58 bc58 bc58 bc58 bc58 bc58 -4389 bc59 bc59 bc59 * 6c43 * 8ea1ecc3,ecc3,8ea1ecc3v,ecc3v 589c e5a29c 589c 0000589c bc59 bc59 bc59 bc59 bc59 bc59 bc59 -4390 bc5a bc5a bc5a * 6c44 * 8ea1ecc4,ecc4,8ea1ecc4v,ecc4v 58ae e5a2ae 58ae 000058ae bc5a bc5a bc5a bc5a bc5a bc5a bc5a -4391 bc5b bc5b bc5b * 6c45 * 8ea1ecc5,ecc5,8ea1ecc5v,ecc5v 58a9 e5a2a9 58a9 000058a9 bc5b bc5b bc5b bc5b bc5b bc5b bc5b -4392 bc5c bc5c bc5c * 6c46 * 8ea1ecc6,ecc6,8ea1ecc6v,ecc6v 58a6 e5a2a6 58a6 000058a6 bc5c bc5c bc5c bc5c bc5c bc5c bc5c -4393 bc5d bc5d bc5d * 6c47 * 8ea1ecc7,ecc7,8ea1ecc7v,ecc7v 596d e5a5ad 596d 0000596d bc5d bc5d bc5d bc5d bc5d bc5d bc5d -4394 bc5e bc5e bc5e * 6c48 * 8ea1ecc8,ecc8,8ea1ecc8v,ecc8v 5b09 e5ac89 5b09 00005b09 bc5e bc5e bc5e bc5e bc5e bc5e bc5e -4395 bc5f bc5f bc5f * 6c49 * 8ea1ecc9,ecc9,8ea1ecc9v,ecc9v 5afb e5abbb 5afb 00005afb bc5f bc5f bc5f bc5f bc5f bc5f bc5f -4396 bc60 bc60 bc60 * 6c4a * 8ea1ecca,ecca,8ea1eccav,eccav 5b0b e5ac8b 5b0b 00005b0b bc60 bc60 bc60 bc60 bc60 bc60 bc60 -4397 bc61 bc61 bc61 * 6c4b * 8ea1eccb,eccb,8ea1eccbv,eccbv 5af5 e5abb5 5af5 00005af5 bc61 bc61 bc61 bc61 bc61 bc61 bc61 -4398 bc62 bc62 bc62 * 6c4c * 8ea1eccc,eccc,8ea1ecccv,ecccv 5b0c e5ac8c 5b0c 00005b0c bc62 bc62 bc62 bc62 bc62 bc62 bc62 -4399 bc63 bc63 bc63 * 6c4d * 8ea1eccd,eccd,8ea1eccdv,eccdv 5b08 e5ac88 5b08 00005b08 bc63 bc63 bc63 bc63 bc63 bc63 bc63 -4400 bc64 bc64 bc64 * 6c4e * 8ea1ecce,ecce,8ea1eccev,eccev 5bee e5afae 5bee 00005bee bc64 bc64 bc64 bc64 bc64 bc64 bc64 -4401 bc65 bc65 bc65 * 6c4f * 8ea1eccf,eccf,8ea1eccfv,eccfv 5bec e5afac 5bec 00005bec bc65 bc65 bc65 bc65 bc65 bc65 bc65 -4402 bc66 bc66 bc66 * 6c50 * 8ea1ecd0,ecd0,8ea1ecd0v,ecd0v 5be9 e5afa9 5be9 00005be9 bc66 bc66 bc66 bc66 bc66 bc66 bc66 -4403 bc67 bc67 bc67 * 6c51 * 8ea1ecd1,ecd1,8ea1ecd1v,ecd1v 5beb e5afab 5beb 00005beb bc67 bc67 bc67 bc67 bc67 bc67 bc67 -4404 bc68 bc68 bc68 * 6c52 * 8ea1ecd2,ecd2,8ea1ecd2v,ecd2v 5c64 e5b1a4 5c64 00005c64 bc68 bc68 bc68 bc68 bc68 bc68 bc68 -4405 bc69 bc69 bc69 * 6c53 * 8ea1ecd3,ecd3,8ea1ecd3v,ecd3v 5c65 e5b1a5 5c65 00005c65 bc69 bc69 bc69 bc69 bc69 bc69 bc69 -4406 bc6a bc6a bc6a * 6c54 * 8ea1ecd4,ecd4,8ea1ecd4v,ecd4v 5d9d e5b69d 5d9d 00005d9d bc6a bc6a bc6a bc6a bc6a bc6a bc6a -4407 bc6b bc6b bc6b * 6c55 * 8ea1ecd5,ecd5,8ea1ecd5v,ecd5v 5d94 e5b694 5d94 00005d94 bc6b bc6b bc6b bc6b bc6b bc6b bc6b -4408 bc6c bc6c bc6c * 6c56 * 8ea1ecd6,ecd6,8ea1ecd6v,ecd6v 5e62 e5b9a2 5e62 00005e62 bc6c bc6c bc6c bc6c bc6c bc6c bc6c -4409 bc6d bc6d bc6d * 6c57 * 8ea1ecd7,ecd7,8ea1ecd7v,ecd7v 5e5f e5b99f 5e5f 00005e5f bc6d bc6d bc6d bc6d bc6d bc6d bc6d -4410 bc6e bc6e bc6e * 6c58 * 8ea1ecd8,ecd8,8ea1ecd8v,ecd8v 5e61 e5b9a1 5e61 00005e61 bc6e bc6e bc6e bc6e bc6e bc6e bc6e -4411 bc6f bc6f bc6f * 6c59 * 8ea1ecd9,ecd9,8ea1ecd9v,ecd9v 5ee2 e5bba2 5ee2 00005ee2 bc6f bc6f bc6f bc6f bc6f bc6f bc6f -4412 bc70 bc70 bc70 * 6c5a * 8ea1ecda,ecda,8ea1ecdav,ecdav 5eda e5bb9a 5eda 00005eda bc70 bc70 bc70 bc70 bc70 bc70 bc70 -4413 bc71 bc71 bc71 * 6c5b * 8ea1ecdb,ecdb,8ea1ecdbv,ecdbv 5edf e5bb9f 5edf 00005edf bc71 bc71 bc71 bc71 bc71 bc71 bc71 -4414 bc72 bc72 bc72 * 6c5c * 8ea1ecdc,ecdc,8ea1ecdcv,ecdcv 5edd e5bb9d 5edd 00005edd bc72 bc72 bc72 bc72 bc72 bc72 bc72 -4415 bc73 bc73 bc73 * 6c5d * 8ea1ecdd,ecdd,8ea1ecddv,ecddv 5ee3 e5bba3 5ee3 00005ee3 bc73 bc73 bc73 bc73 bc73 bc73 bc73 -4416 bc74 bc74 bc74 * 6c5e * 8ea1ecde,ecde,8ea1ecdev,ecdev 5ee0 e5bba0 5ee0 00005ee0 bc74 bc74 bc74 bc74 bc74 bc74 bc74 -4417 bc75 bc75 bc75 * 6c5f * 8ea1ecdf,ecdf,8ea1ecdfv,ecdfv 5f48 e5bd88 5f48 00005f48 bc75 bc75 bc75 bc75 bc75 bc75 bc75 -4418 bc76 bc76 bc76 * 6c60 * 8ea1ece0,ece0,8ea1ece0v,ece0v 5f71 e5bdb1 5f71 00005f71 bc76 bc76 bc76 bc76 bc76 bc76 bc76 -4419 bc77 bc77 bc77 * 6c61 * 8ea1ece1,ece1,8ea1ece1v,ece1v 5fb7 e5beb7 5fb7 00005fb7 bc77 bc77 bc77 bc77 bc77 bc77 bc77 -4420 bc78 bc78 bc78 * 6c62 * 8ea1ece2,ece2,8ea1ece2v,ece2v 5fb5 e5beb5 5fb5 00005fb5 bc78 bc78 bc78 bc78 bc78 bc78 bc78 -4421 bc79 bc79 bc79 * 6c63 * 8ea1ece3,ece3,8ea1ece3v,ece3v 6176 e685b6 6176 00006176 bc79 bc79 bc79 bc79 bc79 bc79 bc79 -4422 bc7a bc7a bc7a * 6c64 * 8ea1ece4,ece4,8ea1ece4v,ece4v 6167 e685a7 6167 00006167 bc7a bc7a bc7a bc7a bc7a bc7a bc7a -4423 bc7b bc7b bc7b * 6c65 * 8ea1ece5,ece5,8ea1ece5v,ece5v 616e e685ae 616e 0000616e bc7b bc7b bc7b bc7b bc7b bc7b bc7b -4424 bc7c bc7c bc7c * 6c66 * 8ea1ece6,ece6,8ea1ece6v,ece6v 615d e6859d 615d 0000615d bc7c bc7c bc7c bc7c bc7c bc7c bc7c -4425 bc7d bc7d bc7d * 6c67 * 8ea1ece7,ece7,8ea1ece7v,ece7v 6155 e68595 6155 00006155 bc7d bc7d bc7d bc7d bc7d bc7d bc7d -4426 bc7e bc7e bc7e * 6c68 * 8ea1ece8,ece8,8ea1ece8v,ece8v 6182 e68682 6182 00006182 bc7e bc7e bc7e bc7e bc7e bc7e bc7e -4427 bca1 bca1 bca1 * 6c69 * 8ea1ece9,ece9,8ea1ece9v,ece9v 617c e685bc 617c 0000617c bca1 bca1 bca1 bca1 bca1 bca1 bca1 -4428 bca2 bca2 bca2 * 6c6a * 8ea1ecea,ecea,8ea1eceav,eceav 6170 e685b0 6170 00006170 bca2 bca2 bca2 bca2 bca2 bca2 bca2 -4429 bca3 bca3 bca3 * 6c6b * 8ea1eceb,eceb,8ea1ecebv,ecebv 616b e685ab 616b 0000616b bca3 bca3 bca3 bca3 bca3 bca3 bca3 -4430 bca4 bca4 bca4 * 6c6c * 8ea1ecec,ecec,8ea1ececv,ececv 617e e685be 617e 0000617e bca4 bca4 bca4 bca4 bca4 bca4 bca4 -4431 bca5 bca5 bca5 * 6c6d * 8ea1eced,eced,8ea1ecedv,ecedv 61a7 e686a7 61a7 000061a7 bca5 bca5 bca5 bca5 bca5 bca5 bca5 -4432 bca6 bca6 bca6 * 6c6e * 8ea1ecee,ecee,8ea1eceev,eceev 6190 e68690 6190 00006190 bca6 bca6 bca6 bca6 bca6 bca6 bca6 -4433 bca7 bca7 bca7 * 6c6f * 8ea1ecef,ecef,8ea1ecefv,ecefv 61ab e686ab 61ab 000061ab bca7 bca7 bca7 bca7 bca7 bca7 bca7 -4434 bca8 bca8 bca8 * 6c70 * 8ea1ecf0,ecf0,8ea1ecf0v,ecf0v 618e e6868e 618e 0000618e bca8 bca8 bca8 bca8 bca8 bca8 bca8 -4435 bca9 bca9 bca9 * 6c71 * 8ea1ecf1,ecf1,8ea1ecf1v,ecf1v 61ac e686ac 61ac 000061ac bca9 bca9 bca9 bca9 bca9 bca9 bca9 -4436 bcaa bcaa bcaa * 6c72 * 8ea1ecf2,ecf2,8ea1ecf2v,ecf2v 619a e6869a 619a 0000619a bcaa bcaa bcaa bcaa bcaa bcaa bcaa -4437 bcab bcab bcab * 6c73 * 8ea1ecf3,ecf3,8ea1ecf3v,ecf3v 61a4 e686a4 61a4 000061a4 bcab bcab bcab bcab bcab bcab bcab -4438 bcac bcac bcac * 6c74 * 8ea1ecf4,ecf4,8ea1ecf4v,ecf4v 6194 e68694 6194 00006194 bcac bcac bcac bcac bcac bcac bcac -4439 bcad bcad bcad * 6c75 * 8ea1ecf5,ecf5,8ea1ecf5v,ecf5v 61ae e686ae 61ae 000061ae bcad bcad bcad bcad bcad bcad bcad -4440 bcae bcae bcae * 6c76 * 8ea1ecf6,ecf6,8ea1ecf6v,ecf6v 622e e688ae 622e 0000622e bcae bcae bcae bcae bcae bcae bcae -4441 bcaf bcaf bcaf * 6c77 * 8ea1ecf7,ecf7,8ea1ecf7v,ecf7v 6469 e691a9 6469 00006469 bcaf bcaf bcaf bcaf bcaf bcaf bcaf -4442 bcb0 bcb0 bcb0 * 6c78 * 8ea1ecf8,ecf8,8ea1ecf8v,ecf8v 646f e691af 646f 0000646f bcb0 bcb0 bcb0 bcb0 bcb0 bcb0 bcb0 -4443 bcb1 bcb1 bcb1 * 6c79 * 8ea1ecf9,ecf9,8ea1ecf9v,ecf9v 6479 e691b9 6479 00006479 bcb1 bcb1 bcb1 bcb1 bcb1 bcb1 bcb1 -4444 bcb2 bcb2 bcb2 * 6c7a * 8ea1ecfa,ecfa,8ea1ecfav,ecfav 649e e6929e 649e 0000649e bcb2 bcb2 bcb2 bcb2 bcb2 bcb2 bcb2 -4445 bcb3 bcb3 bcb3 * 6c7b * 8ea1ecfb,ecfb,8ea1ecfbv,ecfbv 64b2 e692b2 64b2 000064b2 bcb3 bcb3 bcb3 bcb3 bcb3 bcb3 bcb3 -4446 bcb4 bcb4 bcb4 * 6c7c * 8ea1ecfc,ecfc,8ea1ecfcv,ecfcv 6488 e69288 6488 00006488 bcb4 bcb4 bcb4 bcb4 bcb4 bcb4 bcb4 -4447 bcb5 bcb5 bcb5 * 6c7d * 8ea1ecfd,ecfd,8ea1ecfdv,ecfdv 6490 e69290,ee8691 6490,e191 00006490,0000e191 fcb9,bcb5 bcb5,fca3 9063,bcb5 bcb5,fcb9 bcb5 bcb5 fcb9,bcb5 -4448 bcb6 bcb6 bcb6 * 6c7e * 8ea1ecfe,ecfe,8ea1ecfev,ecfev 64b0 e692b0 64b0 000064b0 bcb6 bcb6 bcb6 bcb6 bcb6 bcb6 bcb6 -4449 bcb7 bcb7 bcb7 * 6d21 * 8ea1eda1,eda1,8ea1eda1v,eda1v 64a5 e692a5 64a5 000064a5 bcb7 bcb7 bcb7 bcb7 bcb7 bcb7 bcb7 -4450 bcb8 bcb8 bcb8 * 6d22 * 8ea1eda2,eda2,8ea1eda2v,eda2v 6493 e69293 6493 00006493 bcb8 bcb8 bcb8 bcb8 bcb8 bcb8 bcb8 -4451 bcb9 bcb9 bcb9 * 6d23 * 8ea1eda3,eda3,8ea1eda3v,eda3v 6495 e69295 6495 00006495 bcb9 bcb9 bcb9 bcb9 bcb9 bcb9 bcb9 -4452 bcba bcba bcba * 6d24 * 8ea1eda4,eda4,8ea1eda4v,eda4v 64a9 e692a9 64a9 000064a9 bcba bcba bcba bcba bcba bcba bcba -4453 bcbb bcbb bcbb * 6d25 * 8ea1eda5,eda5,8ea1eda5v,eda5v 6492 e69292 6492 00006492 bcbb bcbb bcbb bcbb bcbb bcbb bcbb -4454 bcbc bcbc bcbc * 6d26 * 8ea1eda6,eda6,8ea1eda6v,eda6v 64ae e692ae 64ae 000064ae bcbc bcbc bcbc bcbc bcbc bcbc bcbc -4455 bcbd bcbd bcbd * 6d27 * 8ea1eda7,eda7,8ea1eda7v,eda7v 64ad e692ad 64ad 000064ad bcbd bcbd bcbd bcbd bcbd bcbd bcbd -4456 bcbe bcbe bcbe * 6d28 * 8ea1eda8,eda8,8ea1eda8v,eda8v 64ab e692ab 64ab 000064ab bcbe bcbe bcbe bcbe bcbe bcbe bcbe -4457 bcbf bcbf bcbf * 6d29 * 8ea1eda9,eda9,8ea1eda9v,eda9v 649a e6929a 649a 0000649a bcbf bcbf bcbf bcbf bcbf bcbf bcbf -4458 bcc0 bcc0 bcc0 * 6d2a * 8ea1edaa,edaa,8ea1edaav,edaav 64ac e692ac 64ac 000064ac bcc0 bcc0 bcc0 bcc0 bcc0 bcc0 bcc0 -4459 bcc1 bcc1 bcc1 * 6d2b * 8ea1edab,edab,8ea1edabv,edabv 6499 e69299 6499 00006499 bcc1 bcc1 bcc1 bcc1 bcc1 bcc1 bcc1 -4460 bcc2 bcc2 bcc2 * 6d2c * 8ea1edac,edac,8ea1edacv,edacv 64a2 e692a2 64a2 000064a2 bcc2 bcc2 bcc2 bcc2 bcc2 bcc2 bcc2 -4461 bcc3 bcc3 bcc3 * 6d2d * 8ea1edad,edad,8ea1edadv,edadv 64b3 e692b3 64b3 000064b3 bcc3 bcc3 bcc3 bcc3 bcc3 bcc3 bcc3 -4462 bcc4 bcc4 bcc4 * 6d2e * 8ea1edae,edae,8ea1edaev,edaev 6575 e695b5 6575 00006575 bcc4 bcc4 bcc4 bcc4 bcc4 bcc4 bcc4 -4463 bcc5 bcc5 bcc5 * 6d2f * 8ea1edaf,edaf,8ea1edafv,edafv 6577 e695b7 6577 00006577 bcc5 bcc5 bcc5 bcc5 bcc5 bcc5 bcc5 -4464 bcc6 bcc6 bcc6 * 6d30 * 8ea1edb0,edb0,8ea1edb0v,edb0v 6578 e695b8 6578 00006578 bcc6 bcc6 bcc6 bcc6 bcc6 bcc6 bcc6 -4465 bcc7 bcc7 bcc7 * 6d31 * 8ea1edb1,edb1,8ea1edb1v,edb1v 66ae e69aae 66ae 000066ae bcc7 bcc7 bcc7 bcc7 bcc7 bcc7 bcc7 -4466 bcc8 bcc8 bcc8 * 6d32 * 8ea1edb2,edb2,8ea1edb2v,edb2v 66ab e69aab 66ab 000066ab bcc8 bcc8 bcc8 bcc8 bcc8 bcc8 bcc8 -4467 bcc9 bcc9 bcc9 * 6d33 * 8ea1edb3,edb3,8ea1edb3v,edb3v 66b4 e69ab4 66b4 000066b4 bcc9 bcc9 bcc9 bcc9 bcc9 bcc9 bcc9 -4468 bcca bcca bcca * 6d34 * 8ea1edb4,edb4,8ea1edb4v,edb4v 66b1 e69ab1 66b1 000066b1 bcca bcca bcca bcca bcca bcca bcca -4469 bccb bccb bccb * 6d35 * 8ea1edb5,edb5,8ea1edb5v,edb5v 6a23 e6a8a3 6a23 00006a23 bccb bccb bccb bccb bccb bccb bccb -4470 bccc bccc bccc * 6d36 * 8ea1edb6,edb6,8ea1edb6v,edb6v 6a1f e6a89f 6a1f 00006a1f bccc bccc bccc bccc bccc bccc bccc -4471 bccd bccd bccd * 6d37 * 8ea1edb7,edb7,8ea1edb7v,edb7v 69e8 e6a7a8 69e8 000069e8 bccd bccd bccd bccd bccd bccd bccd -4472 bcce bcce bcce * 6d38 * 8ea1edb8,edb8,8ea1edb8v,edb8v 6a01 e6a881 6a01 00006a01 bcce bcce bcce bcce bcce bcce bcce -4473 bccf bccf bccf * 6d39 * 8ea1edb9,edb9,8ea1edb9v,edb9v 6a1e e6a89e 6a1e 00006a1e bccf bccf bccf bccf bccf bccf bccf -4474 bcd0 bcd0 bcd0 * 6d3a * 8ea1edba,edba,8ea1edbav,edbav 6a19 e6a899 6a19 00006a19 bcd0 bcd0 bcd0 bcd0 bcd0 bcd0 bcd0 -4475 bcd1 bcd1 bcd1 * 6d3b * 8ea1edbb,edbb,8ea1edbbv,edbbv 69fd e6a7bd 69fd 000069fd bcd1 bcd1 bcd1 bcd1 bcd1 bcd1 bcd1 -4476 bcd2 bcd2 bcd2 * 6d3c * 8ea1edbc,edbc,8ea1edbcv,edbcv 6a21 e6a8a1 6a21 00006a21 bcd2 bcd2 bcd2 bcd2 bcd2 bcd2 bcd2 -4477 bcd3 bcd3 bcd3 * 6d3d * 8ea1edbd,edbd,8ea1edbdv,edbdv 6a13 e6a893 6a13 00006a13 bcd3 bcd3 bcd3 bcd3 bcd3 bcd3 bcd3 -4478 bcd4 bcd4 bcd4 * 6d3e * 8ea1edbe,edbe,8ea1edbev,edbev 6a0a e6a88a 6a0a 00006a0a bcd4 bcd4 bcd4 bcd4 bcd4 bcd4 bcd4 -4479 bcd5 bcd5 bcd5 * 6d3f * 8ea1edbf,edbf,8ea1edbfv,edbfv 69f3 e6a7b3 69f3 000069f3 bcd5 bcd5 bcd5 bcd5 bcd5 bcd5 bcd5 -4480 bcd6 bcd6 bcd6 * 6d40 * 8ea1edc0,edc0,8ea1edc0v,edc0v 6a02 e6a882 6a02 00006a02 bcd6 bcd6 bcd6 bcd6 bcd6 bcd6 bcd6 -4481 bcd7 bcd7 bcd7 * 6d41 * 8ea1edc1,edc1,8ea1edc1v,edc1v 6a05 e6a885 6a05 00006a05 bcd7 bcd7 bcd7 bcd7 bcd7 bcd7 bcd7 -4482 bcd8 bcd8 bcd8 * 6d42 * 8ea1edc2,edc2,8ea1edc2v,edc2v 69ed e6a7ad 69ed 000069ed bcd8 bcd8 bcd8 bcd8 bcd8 bcd8 bcd8 -4483 bcd9 bcd9 bcd9 * 6d43 * 8ea1edc3,edc3,8ea1edc3v,edc3v 6a11 e6a891 6a11 00006a11 bcd9 bcd9 bcd9 bcd9 bcd9 bcd9 bcd9 -4484 bcda bcda bcda * 6d44 * 8ea1edc4,edc4,8ea1edc4v,edc4v 6b50 e6ad90 6b50 00006b50 bcda bcda bcda bcda bcda bcda bcda -4485 bcdb bcdb bcdb * 6d45 * 8ea1edc5,edc5,8ea1edc5v,edc5v 6b4e e6ad8e 6b4e 00006b4e bcdb bcdb bcdb bcdb bcdb bcdb bcdb -4486 bcdc bcdc bcdc * 6d46 * 8ea1edc6,edc6,8ea1edc6v,edc6v 6ba4 e6aea4 6ba4 00006ba4 bcdc bcdc bcdc bcdc bcdc bcdc bcdc -4487 bcdd bcdd bcdd * 6d47 * 8ea1edc7,edc7,8ea1edc7v,edc7v 6bc5 e6af85 6bc5 00006bc5 bcdd bcdd bcdd bcdd bcdd bcdd bcdd -4488 bcde bcde bcde * 6d48 * 8ea1edc8,edc8,8ea1edc8v,edc8v 6bc6 e6af86 6bc6 00006bc6 bcde bcde bcde bcde bcde bcde bcde -4489 bcdf bcdf bcdf * 6d49 * 8ea1edc9,edc9,8ea1edc9v,edc9v 6f3f e6bcbf 6f3f 00006f3f bcdf bcdf bcdf bcdf bcdf bcdf bcdf -4490 bce0 bce0 bce0 * 6d4a * 8ea1edca,edca,8ea1edcav,edcav 6f7c e6bdbc 6f7c 00006f7c bce0 bce0 bce0 bce0 bce0 bce0 bce0 -4491 bce1 bce1 bce1 * 6d4b * 8ea1edcb,edcb,8ea1edcbv,edcbv 6f84 e6be84 6f84 00006f84 bce1 bce1 bce1 bce1 bce1 bce1 bce1 -4492 bce2 bce2 bce2 * 6d4c * 8ea1edcc,edcc,8ea1edccv,edccv 6f51 e6bd91 6f51 00006f51 bce2 bce2 bce2 bce2 bce2 bce2 bce2 -4493 bce3 bce3 bce3 * 6d4d * 8ea1edcd,edcd,8ea1edcdv,edcdv 6f66 e6bda6 6f66 00006f66 bce3 bce3 bce3 bce3 bce3 bce3 bce3 -4494 bce4 bce4 bce4 * 6d4e * 8ea1edce,edce,8ea1edcev,edcev 6f54 e6bd94 6f54 00006f54 bce4 bce4 bce4 bce4 bce4 bce4 bce4 -4495 bce5 bce5 bce5 * 6d4f * 8ea1edcf,edcf,8ea1edcfv,edcfv 6f86 e6be86 6f86 00006f86 bce5 bce5 bce5 bce5 bce5 bce5 bce5 -4496 bce6 bce6 bce6 * 6d50 * 8ea1edd0,edd0,8ea1edd0v,edd0v 6f6d e6bdad 6f6d 00006f6d bce6 bce6 bce6 bce6 bce6 bce6 bce6 -4497 bce7 bce7 bce7 * 6d51 * 8ea1edd1,edd1,8ea1edd1v,edd1v 6f5b e6bd9b 6f5b 00006f5b bce7 bce7 bce7 bce7 bce7 bce7 bce7 -4498 bce8 bce8 bce8 * 6d52 * 8ea1edd2,edd2,8ea1edd2v,edd2v 6f78 e6bdb8 6f78 00006f78 bce8 bce8 bce8 bce8 bce8 bce8 bce8 -4499 bce9 bce9 bce9 * 6d53 * 8ea1edd3,edd3,8ea1edd3v,edd3v 6f6e e6bdae 6f6e 00006f6e bce9 bce9 bce9 bce9 bce9 bce9 bce9 -4500 bcea bcea bcea * 6d54 * 8ea1edd4,edd4,8ea1edd4v,edd4v 6f8e e6be8e 6f8e 00006f8e bcea bcea bcea bcea bcea bcea bcea -4501 bceb bceb bceb * 6d55 * 8ea1edd5,edd5,8ea1edd5v,edd5v 6f7a e6bdba 6f7a 00006f7a bceb bceb bceb bceb bceb bceb bceb -4502 bcec bcec bcec * 6d56 * 8ea1edd6,edd6,8ea1edd6v,edd6v 6f70 e6bdb0 6f70 00006f70 bcec bcec bcec bcec bcec bcec bcec -4503 bced bced bced * 6d57 * 8ea1edd7,edd7,8ea1edd7v,edd7v 6f64 e6bda4 6f64 00006f64 bced bced bced bced bced bced bced -4504 bcee bcee bcee * 6d58 * 8ea1edd8,edd8,8ea1edd8v,edd8v 6f97 e6be97 6f97 00006f97 bcee bcee bcee bcee bcee bcee bcee -4505 bcef bcef bcef * 6d59 * 8ea1edd9,edd9,8ea1edd9v,edd9v 6f58 e6bd98 6f58 00006f58 bcef bcef bcef bcef bcef bcef bcef -4506 bcf0 bcf0 bcf0 * 6d5a * 8ea1edda,edda,8ea1eddav,eddav 6ed5 e6bb95 6ed5 00006ed5 bcf0 bcf0 bcf0 bcf0 bcf0 bcf0 bcf0 -4507 bcf1 bcf1 bcf1 * 6d5b * 8ea1eddb,eddb,8ea1eddbv,eddbv 6f6f e6bdaf 6f6f 00006f6f bcf1 bcf1 bcf1 bcf1 bcf1 bcf1 bcf1 -4508 bcf2 bcf2 bcf2 * 6d5c * 8ea1eddc,eddc,8ea1eddcv,eddcv 6f60 e6bda0 6f60 00006f60 bcf2 bcf2 bcf2 bcf2 bcf2 bcf2 bcf2 -4509 bcf3 bcf3 bcf3 * 6d5d * 8ea1eddd,eddd,8ea1edddv,edddv 6f5f e6bd9f 6f5f 00006f5f bcf3 bcf3 bcf3 bcf3 bcf3 bcf3 bcf3 -4510 bcf4 bcf4 bcf4 * 6d5e * 8ea1edde,edde,8ea1eddev,eddev 719f e7869f 719f 0000719f bcf4 bcf4 bcf4 bcf4 bcf4 bcf4 bcf4 -4511 bcf5 bcf5 bcf5 * 6d5f * 8ea1eddf,eddf,8ea1eddfv,eddfv 71ac e786ac 71ac 000071ac bcf5 bcf5 bcf5 bcf5 bcf5 bcf5 bcf5 -4512 bcf6 bcf6 bcf6 * 6d60 * 8ea1ede0,ede0,8ea1ede0v,ede0v 71b1 e786b1 71b1 000071b1 bcf6 bcf6 bcf6 bcf6 bcf6 bcf6 bcf6 -4513 bcf7 bcf7 bcf7 * 6d61 * 8ea1ede1,ede1,8ea1ede1v,ede1v 71a8 e786a8 71a8 000071a8 bcf7 bcf7 bcf7 bcf7 bcf7 bcf7 bcf7 -4514 bcf8 bcf8 bcf8 * 6d62 * 8ea1ede2,ede2,8ea1ede2v,ede2v 7256 e78996 7256 00007256 bcf8 bcf8 bcf8 bcf8 bcf8 bcf8 bcf8 -4515 bcf9 bcf9 bcf9 * 6d63 * 8ea1ede3,ede3,8ea1ede3v,ede3v 729b e78a9b 729b 0000729b bcf9 bcf9 bcf9 bcf9 bcf9 bcf9 bcf9 -4516 bcfa bcfa bcfa * 6d64 * 8ea1ede4,ede4,8ea1ede4v,ede4v 734e e78d8e 734e 0000734e bcfa bcfa bcfa bcfa bcfa bcfa bcfa -4517 bcfb bcfb bcfb * 6d65 * 8ea1ede5,ede5,8ea1ede5v,ede5v 7357 e78d97 7357 00007357 bcfb bcfb bcfb bcfb bcfb bcfb bcfb -4518 bcfc bcfc bcfc * 6d66 * 8ea1ede6,ede6,8ea1ede6v,ede6v 7469 e791a9 7469 00007469 bcfc bcfc bcfc bcfc bcfc bcfc bcfc -4519 bcfd bcfd bcfd * 6d67 * 8ea1ede7,ede7,8ea1ede7v,ede7v 748b e7928b 748b 0000748b bcfd bcfd bcfd bcfd bcfd bcfd bcfd -4520 bcfe bcfe bcfe * 6d68 * 8ea1ede8,ede8,8ea1ede8v,ede8v 7483 e79283 7483 00007483 bcfe bcfe bcfe bcfe bcfe bcfe bcfe -4521 bd40 bd40 bd40 * 6d69 * 8ea1ede9,ede9,8ea1ede9v,ede9v 747e e791be 747e 0000747e bd40 bd40 bd40 bd40 bd40 bd40 bd40 -4522 bd41 bd41 bd41 * 6d6a * 8ea1edea,edea,8ea1edeav,edeav 7480 e79280 7480 00007480 bd41 bd41 bd41 bd41 bd41 bd41 bd41 -4523 bd42 bd42 bd42 * 6d6b * 8ea1edeb,edeb,8ea1edebv,edebv 757f e795bf 757f 0000757f bd42 bd42 bd42 bd42 bd42 bd42 bd42 -4524 bd43 bd43 bd43 * 6d6c * 8ea1edec,edec,8ea1edecv,edecv 7620 e798a0 7620 00007620 bd43 bd43 bd43 bd43 bd43 bd43 bd43 -4525 bd44 bd44 bd44 * 6d6d * 8ea1eded,eded,8ea1ededv,ededv 7629 e798a9 7629 00007629 bd44 bd44 bd44 bd44 bd44 bd44 bd44 -4526 bd45 bd45 bd45 * 6d6e * 8ea1edee,edee,8ea1edeev,edeev 761f e7989f 761f 0000761f bd45 bd45 bd45 bd45 bd45 bd45 bd45 -4527 bd46 bd46 bd46 * 6d6f * 8ea1edef,edef,8ea1edefv,edefv 7624 e798a4 7624 00007624 bd46 bd46 bd46 bd46 bd46 bd46 bd46 -4528 bd47 bd47 bd47 * 6d70 * 8ea1edf0,edf0,8ea1edf0v,edf0v 7626 e798a6 7626 00007626 bd47 bd47 bd47 bd47 bd47 bd47 bd47 -4529 bd48 bd48 bd48 * 6d71 * 8ea1edf1,edf1,8ea1edf1v,edf1v 7621 e798a1 7621 00007621 bd48 bd48 bd48 bd48 bd48 bd48 bd48 -4530 bd49 bd49 bd49 * 6d72 * 8ea1edf2,edf2,8ea1edf2v,edf2v 7622 e798a2 7622 00007622 bd49 bd49 bd49 bd49 bd49 bd49 bd49 -4531 bd4a bd4a bd4a * 6d73 * 8ea1edf3,edf3,8ea1edf3v,edf3v 769a e79a9a 769a 0000769a bd4a bd4a bd4a bd4a bd4a bd4a bd4a -4532 bd4b bd4b bd4b * 6d74 * 8ea1edf4,edf4,8ea1edf4v,edf4v 76ba e79aba 76ba 000076ba bd4b bd4b bd4b bd4b bd4b bd4b bd4b -4533 bd4c bd4c bd4c * 6d75 * 8ea1edf5,edf5,8ea1edf5v,edf5v 76e4 e79ba4 76e4 000076e4 bd4c bd4c bd4c bd4c bd4c bd4c bd4c -4534 bd4d bd4d bd4d * 6d76 * 8ea1edf6,edf6,8ea1edf6v,edf6v 778e e79e8e 778e 0000778e bd4d bd4d bd4d bd4d bd4d bd4d bd4d -4535 bd4e bd4e bd4e * 6d77 * 8ea1edf7,edf7,8ea1edf7v,edf7v 7787 e79e87 7787 00007787 bd4e bd4e bd4e bd4e bd4e bd4e bd4e -4536 bd4f bd4f bd4f * 6d78 * 8ea1edf8,edf8,8ea1edf8v,edf8v 778c e79e8c 778c 0000778c bd4f bd4f bd4f bd4f bd4f bd4f bd4f -4537 bd50 bd50 bd50 * 6d79 * 8ea1edf9,edf9,8ea1edf9v,edf9v 7791 e79e91 7791 00007791 bd50 bd50 bd50 bd50 bd50 bd50 bd50 -4538 bd51 bd51 bd51 * 6d7a * 8ea1edfa,edfa,8ea1edfav,edfav 778b e79e8b 778b 0000778b bd51 bd51 bd51 bd51 bd51 bd51 bd51 -4539 bd52 bd52 bd52 * 6d7b * 8ea1edfb,edfb,8ea1edfbv,edfbv 78cb e7a38b 78cb 000078cb bd52 bd52 bd52 bd52 bd52 bd52 bd52 -4540 bd53 bd53 bd53 * 6d7c * 8ea1edfc,edfc,8ea1edfcv,edfcv 78c5 e7a385 78c5 000078c5 bd53 bd53 bd53 bd53 bd53 bd53 bd53 -4541 bd54 bd54 bd54 * 6d7d * 8ea1edfd,edfd,8ea1edfdv,edfdv 78ba e7a2ba 78ba 000078ba bd54 bd54 bd54 bd54 bd54 bd54 bd54 -4542 bd55 bd55 bd55 * 6d7e * 8ea1edfe,edfe,8ea1edfev,edfev 78ca e7a38a 78ca 000078ca bd55 bd55 bd55 bd55 bd55 bd55 bd55 -4543 bd56 bd56 bd56 * 6e21 * 8ea1eea1,eea1,8ea1eea1v,eea1v 78be e7a2be 78be 000078be bd56 bd56 bd56 bd56 bd56 bd56 bd56 -4544 bd57 bd57 bd57 * 6e22 * 8ea1eea2,eea2,8ea1eea2v,eea2v 78d5 e7a395 78d5 000078d5 bd57 bd57 bd57 bd57 bd57 bd57 bd57 -4545 bd58 bd58 bd58 * 6e23 * 8ea1eea3,eea3,8ea1eea3v,eea3v 78bc e7a2bc 78bc 000078bc bd58 bd58 bd58 bd58 bd58 bd58 bd58 -4546 bd59 bd59 bd59 * 6e24 * 8ea1eea4,eea4,8ea1eea4v,eea4v 78d0 e7a390 78d0 000078d0 bd59 bd59 bd59 bd59 bd59 bd59 bd59 -4547 bd5a bd5a bd5a * 6e25 * 8ea1eea5,eea5,8ea1eea5v,eea5v 7a3f e7a8bf 7a3f 00007a3f bd5a bd5a bd5a bd5a bd5a bd5a bd5a -4548 bd5b bd5b bd5b * 6e26 * 8ea1eea6,eea6,8ea1eea6v,eea6v 7a3c e7a8bc 7a3c 00007a3c bd5b bd5b bd5b bd5b bd5b bd5b bd5b -4549 bd5c bd5c bd5c * 6e27 * 8ea1eea7,eea7,8ea1eea7v,eea7v 7a40 e7a980 7a40 00007a40 bd5c bd5c bd5c bd5c bd5c bd5c bd5c -4550 bd5d bd5d bd5d * 6e28 * 8ea1eea8,eea8,8ea1eea8v,eea8v 7a3d e7a8bd 7a3d 00007a3d bd5d bd5d bd5d bd5d bd5d bd5d bd5d -4551 bd5e bd5e bd5e * 6e29 * 8ea1eea9,eea9,8ea1eea9v,eea9v 7a37 e7a8b7 7a37 00007a37 bd5e bd5e bd5e bd5e bd5e bd5e bd5e -4552 bd5f bd5f bd5f * 6e2a * 8ea1eeaa,eeaa,8ea1eeaav,eeaav 7a3b e7a8bb 7a3b 00007a3b bd5f bd5f bd5f bd5f bd5f bd5f bd5f -4553 bd60 bd60 bd60 * 6e2b * 8ea1eeab,eeab,8ea1eeabv,eeabv 7aaf e7aaaf 7aaf 00007aaf bd60 bd60 bd60 bd60 bd60 bd60 bd60 -4554 bd61 bd61 bd61 * 6e2c * 8ea1eeac,eeac,8ea1eeacv,eeacv 7aae e7aaae 7aae 00007aae bd61 bd61 bd61 bd61 bd61 bd61 bd61 -4555 bd62 bd62 bd62 * 6e2d * 8ea1eead,eead,8ea1eeadv,eeadv 7bad e7aead 7bad 00007bad bd62 bd62 bd62 bd62 bd62 bd62 bd62 -4556 bd63 bd63 bd63 * 6e2e * 8ea1eeae,eeae,8ea1eeaev,eeaev 7bb1 e7aeb1 7bb1 00007bb1 bd63 bd63 bd63 bd63 bd63 bd63 bd63 -4557 bd64 bd64 bd64 * 6e2f * 8ea1eeaf,eeaf,8ea1eeafv,eeafv 7bc4 e7af84 7bc4 00007bc4 bd64 bd64 bd64 bd64 bd64 bd64 bd64 -4558 bd65 bd65 bd65 * 6e30 * 8ea1eeb0,eeb0,8ea1eeb0v,eeb0v 7bb4 e7aeb4 7bb4 00007bb4 bd65 bd65 bd65 bd65 bd65 bd65 bd65 -4559 bd66 bd66 bd66 * 6e31 * 8ea1eeb1,eeb1,8ea1eeb1v,eeb1v 7bc6 e7af86 7bc6 00007bc6 bd66 bd66 bd66 bd66 bd66 bd66 bd66 -4560 bd67 bd67 bd67 * 6e32 * 8ea1eeb2,eeb2,8ea1eeb2v,eeb2v 7bc7 e7af87 7bc7 00007bc7 bd67 bd67 bd67 bd67 bd67 bd67 bd67 -4561 bd68 bd68 bd68 * 6e33 * 8ea1eeb3,eeb3,8ea1eeb3v,eeb3v 7bc1 e7af81 7bc1 00007bc1 bd68 bd68 bd68 bd68 bd68 bd68 bd68 -4562 bd69 bd69 bd69 * 6e34 * 8ea1eeb4,eeb4,8ea1eeb4v,eeb4v 7ba0 e7aea0 7ba0 00007ba0 bd69 bd69 bd69 bd69 bd69 bd69 bd69 -4563 bd6a bd6a bd6a * 6e35 * 8ea1eeb5,eeb5,8ea1eeb5v,eeb5v 7bcc e7af8c 7bcc 00007bcc bd6a bd6a bd6a bd6a bd6a bd6a bd6a -4564 bd6b bd6b bd6b * 6e36 * 8ea1eeb6,eeb6,8ea1eeb6v,eeb6v 7cca e7b38a 7cca 00007cca bd6b bd6b bd6b bd6b bd6b bd6b bd6b -4565 bd6c bd6c bd6c * 6e37 * 8ea1eeb7,eeb7,8ea1eeb7v,eeb7v 7de0 e7b7a0 7de0 00007de0 bd6c bd6c bd6c bd6c bd6c bd6c bd6c -4566 bd6d bd6d bd6d * 6e38 * 8ea1eeb8,eeb8,8ea1eeb8v,eeb8v 7df4 e7b7b4 7df4 00007df4 bd6d bd6d bd6d bd6d bd6d bd6d bd6d -4567 bd6e bd6e bd6e * 6e39 * 8ea1eeb9,eeb9,8ea1eeb9v,eeb9v 7def e7b7af 7def 00007def bd6e bd6e bd6e bd6e bd6e bd6e bd6e -4568 bd6f bd6f bd6f * 6e3a * 8ea1eeba,eeba,8ea1eebav,eebav 7dfb e7b7bb 7dfb 00007dfb bd6f bd6f bd6f bd6f bd6f bd6f bd6f -4569 bd70 bd70 bd70 * 6e3b * 8ea1eebb,eebb,8ea1eebbv,eebbv 7dd8 e7b798 7dd8 00007dd8 bd70 bd70 bd70 bd70 bd70 bd70 bd70 -4570 bd71 bd71 bd71 * 6e3c * 8ea1eebc,eebc,8ea1eebcv,eebcv 7dec e7b7ac 7dec 00007dec bd71 bd71 bd71 bd71 bd71 bd71 bd71 -4571 bd72 bd72 bd72 * 6e3d * 8ea1eebd,eebd,8ea1eebdv,eebdv 7ddd e7b79d 7ddd 00007ddd bd72 bd72 bd72 bd72 bd72 bd72 bd72 -4572 bd73 bd73 bd73 * 6e3e * 8ea1eebe,eebe,8ea1eebev,eebev 7de8 e7b7a8 7de8 00007de8 bd73 bd73 bd73 bd73 bd73 bd73 bd73 -4573 bd74 bd74 bd74 * 6e3f * 8ea1eebf,eebf,8ea1eebfv,eebfv 7de3 e7b7a3 7de3 00007de3 bd74 bd74 bd74 bd74 bd74 bd74 bd74 -4574 bd75 bd75 bd75 * 6e40 * 8ea1eec0,eec0,8ea1eec0v,eec0v 7dda e7b79a 7dda 00007dda bd75 bd75 bd75 bd75 bd75 bd75 bd75 -4575 bd76 bd76 bd76 * 6e41 * 8ea1eec1,eec1,8ea1eec1v,eec1v 7dde e7b79e 7dde 00007dde bd76 bd76 bd76 bd76 bd76 bd76 bd76 -4576 bd77 bd77 bd77 * 6e42 * 8ea1eec2,eec2,8ea1eec2v,eec2v 7de9 e7b7a9 7de9 00007de9 bd77 bd77 bd77 bd77 bd77 bd77 bd77 -4577 bd78 bd78 bd78 * 6e43 * 8ea1eec3,eec3,8ea1eec3v,eec3v 7d9e e7b69e 7d9e 00007d9e bd78 bd78 bd78 bd78 bd78 bd78 bd78 -4578 bd79 bd79 bd79 * 6e44 * 8ea1eec4,eec4,8ea1eec4v,eec4v 7dd9 e7b799 7dd9 00007dd9 bd79 bd79 bd79 bd79 bd79 bd79 bd79 -4579 bd7a bd7a bd7a * 6e45 * 8ea1eec5,eec5,8ea1eec5v,eec5v 7df2 e7b7b2 7df2 00007df2 bd7a bd7a bd7a bd7a bd7a bd7a bd7a -4580 bd7b bd7b bd7b * 6e46 * 8ea1eec6,eec6,8ea1eec6v,eec6v 7df9 e7b7b9 7df9 00007df9 bd7b bd7b bd7b bd7b bd7b bd7b bd7b -4581 bd7c bd7c bd7c * 6e47 * 8ea1eec7,eec7,8ea1eec7v,eec7v 7f75 e7bdb5 7f75 00007f75 bd7c bd7c bd7c bd7c bd7c bd7c bd7c -4582 bd7d bd7d bd7d * 6e48 * 8ea1eec8,eec8,8ea1eec8v,eec8v 7f77 e7bdb7 7f77 00007f77 bd7d bd7d bd7d bd7d bd7d bd7d bd7d -4583 bd7e bd7e bd7e * 6e49 * 8ea1eec9,eec9,8ea1eec9v,eec9v 7faf e7beaf 7faf 00007faf bd7e bd7e bd7e bd7e bd7e bd7e bd7e -4584 bda1 bda1 bda1 * 6e4a * 8ea1eeca,eeca,8ea1eecav,eecav 7fe9 e7bfa9 7fe9 00007fe9 bda1 bda1 bda1 bda1 bda1 bda1 bda1 -4585 bda2 bda2 bda2 * 6e4b * 8ea1eecb,eecb,8ea1eecbv,eecbv 8026 e880a6 8026 00008026 bda2 bda2 bda2 bda2 bda2 bda2 bda2 -4586 bda3 bda3 bda3 * 6e4c * 8ea1eecc,eecc,8ea1eeccv,eeccv 819b e8869b 819b 0000819b bda3 bda3 bda3 bda3 bda3 bda3 bda3 -4587 bda4 bda4 bda4 * 6e4d * 8ea1eecd,eecd,8ea1eecdv,eecdv 819c e8869c 819c 0000819c bda4 bda4 bda4 bda4 bda4 bda4 bda4 -4588 bda5 bda5 bda5 * 6e4e * 8ea1eece,eece,8ea1eecev,eecev 819d e8869d 819d 0000819d bda5 bda5 bda5 bda5 bda5 bda5 bda5 -4589 bda6 bda6 bda6 * 6e4f * 8ea1eecf,eecf,8ea1eecfv,eecfv 81a0 e886a0 81a0 000081a0 bda6 bda6 bda6 bda6 bda6 bda6 bda6 -4590 bda7 bda7 bda7 * 6e50 * 8ea1eed0,eed0,8ea1eed0v,eed0v 819a e8869a 819a 0000819a bda7 bda7 bda7 bda7 bda7 bda7 bda7 -4591 bda8 bda8 bda8 * 6e51 * 8ea1eed1,eed1,8ea1eed1v,eed1v 8198 e88698 8198 00008198 bda8 bda8 bda8 bda8 bda8 bda8 bda8 -4592 bda9 bda9 bda9 * 6e52 * 8ea1eed2,eed2,8ea1eed2v,eed2v 8517 e89497 8517 00008517 bda9 bda9 bda9 bda9 bda9 bda9 bda9 -4593 bdaa bdaa bdaa * 6e53 * 8ea1eed3,eed3,8ea1eed3v,eed3v 853d e894bd 853d 0000853d bdaa bdaa bdaa bdaa bdaa bdaa bdaa -4594 bdab bdab bdab * 6e54 * 8ea1eed4,eed4,8ea1eed4v,eed4v 851a e8949a 851a 0000851a bdab bdab bdab bdab bdab bdab bdab -4595 bdac bdac bdac * 6e55 * 8ea1eed5,eed5,8ea1eed5v,eed5v 84ee e893ae 84ee 000084ee bdac bdac bdac bdac bdac bdac bdac -4596 bdad bdad bdad * 6e56 * 8ea1eed6,eed6,8ea1eed6v,eed6v 852c e894ac 852c 0000852c bdad bdad bdad bdad bdad bdad bdad -4597 bdae bdae bdae * 6e57 * 8ea1eed7,eed7,8ea1eed7v,eed7v 852d e894ad 852d 0000852d bdae bdae bdae bdae bdae bdae bdae -4598 bdaf bdaf bdaf * 6e58 * 8ea1eed8,eed8,8ea1eed8v,eed8v 8513 e89493 8513 00008513 bdaf bdaf bdaf bdaf bdaf bdaf bdaf -4599 bdb0 bdb0 bdb0 * 6e59 * 8ea1eed9,eed9,8ea1eed9v,eed9v 8511 e89491 8511 00008511 bdb0 bdb0 bdb0 bdb0 bdb0 bdb0 bdb0 -4600 bdb1 bdb1 bdb1 * 6e5a * 8ea1eeda,eeda,8ea1eedav,eedav 8523 e894a3 8523 00008523 bdb1 bdb1 bdb1 bdb1 bdb1 bdb1 bdb1 -4601 bdb2 bdb2 bdb2 * 6e5b * 8ea1eedb,eedb,8ea1eedbv,eedbv 8521 e894a1 8521 00008521 bdb2 bdb2 bdb2 bdb2 bdb2 bdb2 bdb2 -4602 bdb3 bdb3 bdb3 * 6e5c * 8ea1eedc,eedc,8ea1eedcv,eedcv 8514 e89494 8514 00008514 bdb3 bdb3 bdb3 bdb3 bdb3 bdb3 bdb3 -4603 bdb4 bdb4 bdb4 * 6e5d * 8ea1eedd,eedd,8ea1eeddv,eeddv 84ec e893ac 84ec 000084ec bdb4 bdb4 bdb4 bdb4 bdb4 bdb4 bdb4 -4604 bdb5 bdb5 bdb5 * 6e5e * 8ea1eede,eede,8ea1eedev,eedev 8525 e894a5 8525 00008525 bdb5 bdb5 bdb5 bdb5 bdb5 bdb5 bdb5 -4605 bdb6 bdb6 bdb6 * 6e5f * 8ea1eedf,eedf,8ea1eedfv,eedfv 84ff e893bf 84ff 000084ff bdb6 bdb6 bdb6 bdb6 bdb6 bdb6 bdb6 -4606 bdb7 bdb7 bdb7 * 6e60 * 8ea1eee0,eee0,8ea1eee0v,eee0v 8506 e89486 8506 00008506 bdb7 bdb7 bdb7 bdb7 bdb7 bdb7 bdb7 -4607 bdb8 bdb8 bdb8 * 6e61 * 8ea1eee1,eee1,8ea1eee1v,eee1v 8782 e89e82 8782 00008782 bdb8 bdb8 bdb8 bdb8 bdb8 bdb8 bdb8 -4608 bdb9 bdb9 bdb9 * 6e62 * 8ea1eee2,eee2,8ea1eee2v,eee2v 8774 e89db4 8774 00008774 bdb9 bdb9 bdb9 bdb9 bdb9 bdb9 bdb9 -4609 bdba bdba bdba * 6e63 * 8ea1eee3,eee3,8ea1eee3v,eee3v 8776 e89db6 8776 00008776 bdba bdba bdba bdba bdba bdba bdba -4610 bdbb bdbb bdbb * 6e64 * 8ea1eee4,eee4,8ea1eee4v,eee4v 8760 e89da0 8760 00008760 bdbb bdbb bdbb bdbb bdbb bdbb bdbb -4611 bdbc bdbc bdbc * 6e65 * 8ea1eee5,eee5,8ea1eee5v,eee5v 8766 e89da6 8766 00008766 bdbc bdbc bdbc bdbc bdbc bdbc bdbc -4612 bdbd bdbd bdbd * 6e66 * 8ea1eee6,eee6,8ea1eee6v,eee6v 8778 e89db8 8778 00008778 bdbd bdbd bdbd bdbd bdbd bdbd bdbd -4613 bdbe bdbe bdbe * 6e67 * 8ea1eee7,eee7,8ea1eee7v,eee7v 8768 e89da8 8768 00008768 bdbe bdbe bdbe bdbe bdbe bdbe bdbe -4614 bdbf bdbf bdbf * 6e68 * 8ea1eee8,eee8,8ea1eee8v,eee8v 8759 e89d99 8759 00008759 bdbf bdbf bdbf bdbf bdbf bdbf bdbf -4615 bdc0 bdc0 bdc0 * 6e69 * 8ea1eee9,eee9,8ea1eee9v,eee9v 8757 e89d97 8757 00008757 bdc0 bdc0 bdc0 bdc0 bdc0 bdc0 bdc0 -4616 bdc1 bdc1 bdc1 * 6e6a * 8ea1eeea,eeea,8ea1eeeav,eeeav 874c e89d8c 874c 0000874c bdc1 bdc1 bdc1 bdc1 bdc1 bdc1 bdc1 -4617 bdc2 bdc2 bdc2 * 6e6b * 8ea1eeeb,eeeb,8ea1eeebv,eeebv 8753 e89d93 8753 00008753 bdc2 bdc2 bdc2 bdc2 bdc2 bdc2 bdc2 -4618 bdc3 bdc3 bdc3 * 6e6c * 8ea1eeec,eeec,8ea1eeecv,eeecv 885b e8a19b 885b 0000885b bdc3 bdc3 bdc3 bdc3 bdc3 bdc3 bdc3 -4619 bdc4 bdc4 bdc4 * 6e6d * 8ea1eeed,eeed,8ea1eeedv,eeedv 885d e8a19d 885d 0000885d bdc4 bdc4 bdc4 bdc4 bdc4 bdc4 bdc4 -4620 bdc5 bdc5 bdc5 * 6e6e * 8ea1eeee,eeee,8ea1eeeev,eeeev 8910 e8a490 8910 00008910 bdc5 bdc5 bdc5 bdc5 bdc5 bdc5 bdc5 -4621 bdc6 bdc6 bdc6 * 6e6f * 8ea1eeef,eeef,8ea1eeefv,eeefv 8907 e8a487 8907 00008907 bdc6 bdc6 bdc6 bdc6 bdc6 bdc6 bdc6 -4622 bdc7 bdc7 bdc7 * 6e70 * 8ea1eef0,eef0,8ea1eef0v,eef0v 8912 e8a492 8912 00008912 bdc7 bdc7 bdc7 bdc7 bdc7 bdc7 bdc7 -4623 bdc8 bdc8 bdc8 * 6e71 * 8ea1eef1,eef1,8ea1eef1v,eef1v 8913 e8a493 8913 00008913 bdc8 bdc8 bdc8 bdc8 bdc8 bdc8 bdc8 -4624 bdc9 bdc9 bdc9 * 6e72 * 8ea1eef2,eef2,8ea1eef2v,eef2v 8915 e8a495 8915 00008915 bdc9 bdc9 bdc9 bdc9 bdc9 bdc9 bdc9 -4625 bdca bdca bdca * 6e73 * 8ea1eef3,eef3,8ea1eef3v,eef3v 890a e8a48a 890a 0000890a bdca bdca bdca bdca bdca bdca bdca -4626 bdcb bdcb bdcb * 6e74 * 8ea1eef4,eef4,8ea1eef4v,eef4v 8abc e8aabc 8abc 00008abc bdcb bdcb bdcb bdcb bdcb bdcb bdcb -4627 bdcc bdcc bdcc * 6e75 * 8ea1eef5,eef5,8ea1eef5v,eef5v 8ad2 e8ab92 8ad2 00008ad2 bdcc bdcc bdcc bdcc bdcc bdcc bdcc -4628 bdcd bdcd bdcd * 6e76 * 8ea1eef6,eef6,8ea1eef6v,eef6v 8ac7 e8ab87 8ac7 00008ac7 bdcd bdcd bdcd bdcd bdcd bdcd bdcd -4629 bdce bdce bdce * 6e77 * 8ea1eef7,eef7,8ea1eef7v,eef7v 8ac4 e8ab84 8ac4 00008ac4 bdce bdce bdce bdce bdce bdce bdce -4630 bdcf bdcf bdcf * 6e78 * 8ea1eef8,eef8,8ea1eef8v,eef8v 8a95 e8aa95 8a95 00008a95 bdcf bdcf bdcf bdcf bdcf bdcf bdcf -4631 bdd0 bdd0 bdd0 * 6e79 * 8ea1eef9,eef9,8ea1eef9v,eef9v 8acb e8ab8b 8acb 00008acb bdd0 bdd0 bdd0 bdd0 bdd0 bdd0 bdd0 -4632 bdd1 bdd1 bdd1 * 6e7a * 8ea1eefa,eefa,8ea1eefav,eefav 8af8 e8abb8 8af8 00008af8 bdd1 bdd1 bdd1 bdd1 bdd1 bdd1 bdd1 -4633 bdd2 bdd2 bdd2 * 6e7b * 8ea1eefb,eefb,8ea1eefbv,eefbv 8ab2 e8aab2 8ab2 00008ab2 bdd2 bdd2 bdd2 bdd2 bdd2 bdd2 bdd2 -4634 bdd3 bdd3 bdd3 * 6e7c * 8ea1eefc,eefc,8ea1eefcv,eefcv 8ac9 e8ab89 8ac9 00008ac9 bdd3 bdd3 bdd3 bdd3 bdd3 bdd3 bdd3 -4635 bdd4 bdd4 bdd4 * 6e7d * 8ea1eefd,eefd,8ea1eefdv,eefdv 8ac2 e8ab82 8ac2 00008ac2 bdd4 bdd4 bdd4 bdd4 bdd4 bdd4 bdd4 -4636 bdd5 bdd5 bdd5 * 6e7e * 8ea1eefe,eefe,8ea1eefev,eefev 8abf e8aabf 8abf 00008abf bdd5 bdd5 bdd5 bdd5 bdd5 bdd5 bdd5 -4637 bdd6 bdd6 bdd6 * 6f21 * 8ea1efa1,efa1,8ea1efa1v,efa1v 8ab0 e8aab0 8ab0 00008ab0 bdd6 bdd6 bdd6 bdd6 bdd6 bdd6 bdd6 -4638 bdd7 bdd7 bdd7 * 6f22 * 8ea1efa2,efa2,8ea1efa2v,efa2v 8ad6 e8ab96 8ad6 00008ad6 bdd7 bdd7 bdd7 bdd7 bdd7 bdd7 bdd7 -4639 bdd8 bdd8 bdd8 * 6f23 * 8ea1efa3,efa3,8ea1efa3v,efa3v 8acd e8ab8d 8acd 00008acd bdd8 bdd8 bdd8 bdd8 bdd8 bdd8 bdd8 -4640 bdd9 bdd9 bdd9 * 6f24 * 8ea1efa4,efa4,8ea1efa4v,efa4v 8ab6 e8aab6 8ab6 00008ab6 bdd9 bdd9 bdd9 bdd9 bdd9 bdd9 bdd9 -4641 bdda bdda bdda * 6f25 * 8ea1efa5,efa5,8ea1efa5v,efa5v 8ab9 e8aab9 8ab9 00008ab9 bdda bdda bdda bdda bdda bdda bdda -4642 bddb bddb bddb * 6f26 * 8ea1efa6,efa6,8ea1efa6v,efa6v 8adb e8ab9b 8adb 00008adb bddb bddb bddb bddb bddb bddb bddb -4643 bddc bddc bddc * 6f27 * 8ea1efa7,efa7,8ea1efa7v,efa7v 8c4c e8b18c 8c4c 00008c4c bddc bddc bddc bddc bddc bddc bddc -4644 bddd bddd bddd * 6f28 * 8ea1efa8,efa8,8ea1efa8v,efa8v 8c4e e8b18e 8c4e 00008c4e bddd bddd bddd bddd bddd bddd bddd -4645 bdde bdde bdde * 6f29 * 8ea1efa9,efa9,8ea1efa9v,efa9v 8c6c e8b1ac 8c6c 00008c6c bdde bdde bdde bdde bdde bdde bdde -4646 bddf bddf bddf * 6f2a * 8ea1efaa,efaa,8ea1efaav,efaav 8ce0 e8b3a0 8ce0 00008ce0 bddf bddf bddf bddf bddf bddf bddf -4647 bde0 bde0 bde0 * 6f2b * 8ea1efab,efab,8ea1efabv,efabv 8cde e8b39e 8cde 00008cde bde0 bde0 bde0 bde0 bde0 bde0 bde0 -4648 bde1 bde1 bde1 * 6f2c * 8ea1efac,efac,8ea1efacv,efacv 8ce6 e8b3a6 8ce6 00008ce6 bde1 bde1 bde1 bde1 bde1 bde1 bde1 -4649 bde2 bde2 bde2 * 6f2d * 8ea1efad,efad,8ea1efadv,efadv 8ce4 e8b3a4 8ce4 00008ce4 bde2 bde2 bde2 bde2 bde2 bde2 bde2 -4650 bde3 bde3 bde3 * 6f2e * 8ea1efae,efae,8ea1efaev,efaev 8cec e8b3ac 8cec 00008cec bde3 bde3 bde3 bde3 bde3 bde3 bde3 -4651 bde4 bde4 bde4 * 6f2f * 8ea1efaf,efaf,8ea1efafv,efafv 8ced e8b3ad 8ced 00008ced bde4 bde4 bde4 bde4 bde4 bde4 bde4 -4652 bde5 bde5 bde5 * 6f30 * 8ea1efb0,efb0,8ea1efb0v,efb0v 8ce2 e8b3a2 8ce2 00008ce2 bde5 bde5 bde5 bde5 bde5 bde5 bde5 -4653 bde6 bde6 bde6 * 6f31 * 8ea1efb1,efb1,8ea1efb1v,efb1v 8ce3 e8b3a3 8ce3 00008ce3 bde6 bde6 bde6 bde6 bde6 bde6 bde6 -4654 bde7 bde7 bde7 * 6f32 * 8ea1efb2,efb2,8ea1efb2v,efb2v 8cdc e8b39c 8cdc 00008cdc bde7 bde7 bde7 bde7 bde7 bde7 bde7 -4655 bde8 bde8 bde8 * 6f33 * 8ea1efb3,efb3,8ea1efb3v,efb3v 8cea e8b3aa 8cea 00008cea bde8 bde8 bde8 bde8 bde8 bde8 bde8 -4656 bde9 bde9 bde9 * 6f34 * 8ea1efb4,efb4,8ea1efb4v,efb4v 8ce1 e8b3a1 8ce1 00008ce1 bde9 bde9 bde9 bde9 bde9 bde9 bde9 -4657 bdea bdea bdea * 6f35 * 8ea1efb5,efb5,8ea1efb5v,efb5v 8d6d e8b5ad 8d6d 00008d6d bdea bdea bdea bdea bdea bdea bdea -4658 bdeb bdeb bdeb * 6f36 * 8ea1efb6,efb6,8ea1efb6v,efb6v 8d9f e8b69f 8d9f 00008d9f bdeb bdeb bdeb bdeb bdeb bdeb bdeb -4659 bdec bdec bdec * 6f37 * 8ea1efb7,efb7,8ea1efb7v,efb7v 8da3 e8b6a3 8da3 00008da3 bdec bdec bdec bdec bdec bdec bdec -4660 bded bded bded * 6f38 * 8ea1efb8,efb8,8ea1efb8v,efb8v 8e2b e8b8ab 8e2b 00008e2b bded bded bded bded bded bded bded -4661 bdee bdee bdee * 6f39 * 8ea1efb9,efb9,8ea1efb9v,efb9v 8e10 e8b890 8e10 00008e10 bdee bdee bdee bdee bdee bdee bdee -4662 bdef bdef bdef * 6f3a * 8ea1efba,efba,8ea1efbav,efbav 8e1d e8b89d 8e1d 00008e1d bdef bdef bdef bdef bdef bdef bdef -4663 bdf0 bdf0 bdf0 * 6f3b * 8ea1efbb,efbb,8ea1efbbv,efbbv 8e22 e8b8a2 8e22 00008e22 bdf0 bdf0 bdf0 bdf0 bdf0 bdf0 bdf0 -4664 bdf1 bdf1 bdf1 * 6f3c * 8ea1efbc,efbc,8ea1efbcv,efbcv 8e0f e8b88f 8e0f 00008e0f bdf1 bdf1 bdf1 bdf1 bdf1 bdf1 bdf1 -4665 bdf2 bdf2 bdf2 * 6f3d * 8ea1efbd,efbd,8ea1efbdv,efbdv 8e29 e8b8a9 8e29 00008e29 bdf2 bdf2 bdf2 bdf2 bdf2 bdf2 bdf2 -4666 bdf3 bdf3 bdf3 * 6f3e * 8ea1efbe,efbe,8ea1efbev,efbev 8e1f e8b89f 8e1f 00008e1f bdf3 bdf3 bdf3 bdf3 bdf3 bdf3 bdf3 -4667 bdf4 bdf4 bdf4 * 6f3f * 8ea1efbf,efbf,8ea1efbfv,efbfv 8e21 e8b8a1 8e21 00008e21 bdf4 bdf4 bdf4 bdf4 bdf4 bdf4 bdf4 -4668 bdf5 bdf5 bdf5 * 6f40 * 8ea1efc0,efc0,8ea1efc0v,efc0v 8e1e e8b89e 8e1e 00008e1e bdf5 bdf5 bdf5 bdf5 bdf5 bdf5 bdf5 -4669 bdf6 bdf6 bdf6 * 6f41 * 8ea1efc1,efc1,8ea1efc1v,efc1v 8eba e8baba 8eba 00008eba bdf6 bdf6 bdf6 bdf6 bdf6 bdf6 bdf6 -4670 bdf7 bdf7 bdf7 * 6f42 * 8ea1efc2,efc2,8ea1efc2v,efc2v 8f1d e8bc9d 8f1d 00008f1d bdf7 bdf7 bdf7 bdf7 bdf7 bdf7 bdf7 -4671 bdf8 bdf8 bdf8 * 6f43 * 8ea1efc3,efc3,8ea1efc3v,efc3v 8f1b e8bc9b 8f1b 00008f1b bdf8 bdf8 bdf8 bdf8 bdf8 bdf8 bdf8 -4672 bdf9 bdf9 bdf9 * 6f44 * 8ea1efc4,efc4,8ea1efc4v,efc4v 8f1f e8bc9f 8f1f 00008f1f bdf9 bdf9 bdf9 bdf9 bdf9 bdf9 bdf9 -4673 bdfa bdfa bdfa * 6f45 * 8ea1efc5,efc5,8ea1efc5v,efc5v 8f29 e8bca9 8f29 00008f29 bdfa bdfa bdfa bdfa bdfa bdfa bdfa -4674 bdfb bdfb bdfb * 6f46 * 8ea1efc6,efc6,8ea1efc6v,efc6v 8f26 e8bca6 8f26 00008f26 bdfb bdfb bdfb bdfb bdfb bdfb bdfb -4675 bdfc bdfc bdfc * 6f47 * 8ea1efc7,efc7,8ea1efc7v,efc7v 8f2a e8bcaa 8f2a 00008f2a bdfc bdfc bdfc bdfc bdfc bdfc bdfc -4676 bdfd bdfd bdfd * 6f48 * 8ea1efc8,efc8,8ea1efc8v,efc8v 8f1c e8bc9c 8f1c 00008f1c bdfd bdfd bdfd bdfd bdfd bdfd bdfd -4677 bdfe bdfe bdfe * 6f49 * 8ea1efc9,efc9,8ea1efc9v,efc9v 8f1e e8bc9e 8f1e 00008f1e bdfe bdfe bdfe bdfe bdfe bdfe bdfe -4678 be40 be40 be40 * 6f4a * 8ea1efca,efca,8ea1efcav,efcav 8f25 e8bca5 8f25 00008f25 be40 be40 be40 be40 be40 be40 be40 -4679 be41 be41 be41 * 6f4b * 8ea1efcb,efcb,8ea1efcbv,efcbv 9069 e981a9 9069 00009069 be41 be41 be41 be41 be41 be41 be41 -4680 be42 be42 be42 * 6f4c * 8ea1efcc,efcc,8ea1efccv,efccv 906e e981ae 906e 0000906e be42 be42 be42 be42 be42 be42 be42 -4681 be43 be43 be43 * 6f4d * 8ea1efcd,efcd,8ea1efcdv,efcdv 9068 e981a8 9068 00009068 be43 be43 be43 be43 be43 be43 be43 -4682 be44 be44 be44 * 6f4e * 8ea1efce,efce,8ea1efcev,efcev 906d e981ad 906d 0000906d be44 be44 be44 be44 be44 be44 be44 -4683 be45 be45 be45 * 6f4f * 8ea1efcf,efcf,8ea1efcfv,efcfv 9077 e981b7 9077 00009077 be45 be45 be45 be45 be45 be45 be45 -4684 be46 be46 be46 * 6f50 * 8ea1efd0,efd0,8ea1efd0v,efd0v 9130 e984b0 9130 00009130 be46 be46 be46 be46 be46 be46 be46 -4685 be47 be47 be47 * 6f51 * 8ea1efd1,efd1,8ea1efd1v,efd1v 912d e984ad 912d 0000912d be47 be47 be47 be47 be47 be47 be47 -4686 be48 be48 be48 * 6f52 * 8ea1efd2,efd2,8ea1efd2v,efd2v 9127 e984a7 9127 00009127 be48 be48 be48 be48 be48 be48 be48 -4687 be49 be49 be49 * 6f53 * 8ea1efd3,efd3,8ea1efd3v,efd3v 9131 e984b1 9131 00009131 be49 be49 be49 be49 be49 be49 be49 -4688 be4a be4a be4a * 6f54 * 8ea1efd4,efd4,8ea1efd4v,efd4v 9187 e98687 9187 00009187 be4a be4a be4a be4a be4a be4a be4a -4689 be4b be4b be4b * 6f55 * 8ea1efd5,efd5,8ea1efd5v,efd5v 9189 e98689 9189 00009189 be4b be4b be4b be4b be4b be4b be4b -4690 be4c be4c be4c * 6f56 * 8ea1efd6,efd6,8ea1efd6v,efd6v 918b e9868b 918b 0000918b be4c be4c be4c be4c be4c be4c be4c -4691 be4d be4d be4d * 6f57 * 8ea1efd7,efd7,8ea1efd7v,efd7v 9183 e98683 9183 00009183 be4d be4d be4d be4d be4d be4d be4d -4692 be4e be4e be4e * 6f58 * 8ea1efd8,efd8,8ea1efd8v,efd8v 92c5 e98b85 92c5 000092c5 be4e be4e be4e be4e be4e be4e be4e -4693 be4f be4f be4f * 6f59 * 8ea1efd9,efd9,8ea1efd9v,efd9v 92bb e98abb 92bb 000092bb be4f be4f be4f be4f be4f be4f be4f -4694 be50 be50 be50 * 6f5a * 8ea1efda,efda,8ea1efdav,efdav 92b7 e98ab7 92b7 000092b7 be50 be50 be50 be50 be50 be50 be50 -4695 be51 be51 be51 * 6f5b * 8ea1efdb,efdb,8ea1efdbv,efdbv 92ea e98baa 92ea 000092ea be51 be51 be51 be51 be51 be51 be51 -4696 be53 be53 be53 * 6f5c * 8ea1efdc,efdc,8ea1efdcv,efdcv 92e4 e98ba4 92e4 000092e4 be53 be53 be53 be53 be53 be53 be53 -4697 be54 be54 be54 * 6f5d * 8ea1efdd,efdd,8ea1efddv,efddv 92c1 e98b81 92c1 000092c1 be54 be54 be54 be54 be54 be54 be54 -4698 be55 be55 be55 * 6f5e * 8ea1efde,efde,8ea1efdev,efdev 92b3 e98ab3 92b3 000092b3 be55 be55 be55 be55 be55 be55 be55 -4699 be56 be56 be56 * 6f5f * 8ea1efdf,efdf,8ea1efdfv,efdfv 92bc e98abc 92bc 000092bc be56 be56 be56 be56 be56 be56 be56 -4700 be57 be57 be57 * 6f60 * 8ea1efe0,efe0,8ea1efe0v,efe0v 92d2 e98b92 92d2 000092d2 be57 be57 be57 be57 be57 be57 be57 -4701 be58 be58 be58 * 6f61 * 8ea1efe1,efe1,8ea1efe1v,efe1v 92c7 e98b87 92c7 000092c7 be58 be58 be58 be58 be58 be58 be58 -4702 be59 be59 be59 * 6f62 * 8ea1efe2,efe2,8ea1efe2v,efe2v 92f0 e98bb0 92f0 000092f0 be59 be59 be59 be59 be59 be59 be59 -4703 be5a be5a be5a * 6f63 * 8ea1efe3,efe3,8ea1efe3v,efe3v 92b2 e98ab2 92b2 000092b2 be5a be5a be5a be5a be5a be5a be5a -4704 be5b be5b be5b * 6f64 * 8ea1efe4,efe4,8ea1efe4v,efe4v 95ad e996ad 95ad 000095ad be5b be5b be5b be5b be5b be5b be5b -4705 be5c be5c be5c * 6f65 * 8ea1efe5,efe5,8ea1efe5v,efe5v 95b1 e996b1 95b1 000095b1 be5c be5c be5c be5c be5c be5c be5c -4706 be5d be5d be5d * 6f66 * 8ea1efe6,efe6,8ea1efe6v,efe6v 9704 e99c84 9704 00009704 be5d be5d be5d be5d be5d be5d be5d -4707 be5e be5e be5e * 6f67 * 8ea1efe7,efe7,8ea1efe7v,efe7v 9706 e99c86 9706 00009706 be5e be5e be5e be5e be5e be5e be5e -4708 be5f be5f be5f * 6f68 * 8ea1efe8,efe8,8ea1efe8v,efe8v 9707 e99c87 9707 00009707 be5f be5f be5f be5f be5f be5f be5f -4709 be60 be60 be60 * 6f69 * 8ea1efe9,efe9,8ea1efe9v,efe9v 9709 e99c89 9709 00009709 be60 be60 be60 be60 be60 be60 be60 -4710 be61 be61 be61 * 6f6a * 8ea1efea,efea,8ea1efeav,efeav 9760 e99da0 9760 00009760 be61 be61 be61 be61 be61 be61 be61 -4711 be62 be62 be62 * 6f6b * 8ea1efeb,efeb,8ea1efebv,efebv 978d e99e8d 978d 0000978d be62 be62 be62 be62 be62 be62 be62 -4712 be63 be63 be63 * 6f6c * 8ea1efec,efec,8ea1efecv,efecv 978b e99e8b 978b 0000978b be63 be63 be63 be63 be63 be63 be63 -4713 be64 be64 be64 * 6f6d * 8ea1efed,efed,8ea1efedv,efedv 978f e99e8f 978f 0000978f be64 be64 be64 be64 be64 be64 be64 -4714 be65 be65 be65 * 6f6e * 8ea1efee,efee,8ea1efeev,efeev 9821 e9a0a1 9821 00009821 be65 be65 be65 be65 be65 be65 be65 -4715 be66 be66 be66 * 6f6f * 8ea1efef,efef,8ea1efefv,efefv 982b e9a0ab 982b 0000982b be66 be66 be66 be66 be66 be66 be66 -4716 be67 be67 be67 * 6f70 * 8ea1eff0,eff0,8ea1eff0v,eff0v 981c e9a09c 981c 0000981c be67 be67 be67 be67 be67 be67 be67 -4717 be68 be68 be68 * 6f71 * 8ea1eff1,eff1,8ea1eff1v,eff1v 98b3 e9a2b3 98b3 000098b3 be68 be68 be68 be68 be68 be68 be68 -4718 be69 be69 be69 * 6f72 * 8ea1eff2,eff2,8ea1eff2v,eff2v 990a e9a48a 990a 0000990a be69 be69 be69 be69 be69 be69 be69 -4719 be6a be6a be6a * 6f73 * 8ea1eff3,eff3,8ea1eff3v,eff3v 9913 e9a493 9913 00009913 be6a be6a be6a be6a be6a be6a be6a -4720 be6b be6b be6b * 6f74 * 8ea1eff4,eff4,8ea1eff4v,eff4v 9912 e9a492 9912 00009912 be6b be6b be6b be6b be6b be6b be6b -4721 be6c be6c be6c * 6f75 * 8ea1eff5,eff5,8ea1eff5v,eff5v 9918 e9a498 9918 00009918 be6c be6c be6c be6c be6c be6c be6c -4722 be6d be6d be6d * 6f76 * 8ea1eff6,eff6,8ea1eff6v,eff6v 99dd e9a79d 99dd 000099dd be6d be6d be6d be6d be6d be6d be6d -4723 be6e be6e be6e * 6f77 * 8ea1eff7,eff7,8ea1eff7v,eff7v 99d0 e9a790 99d0 000099d0 be6e be6e be6e be6e be6e be6e be6e -4724 be6f be6f be6f * 6f78 * 8ea1eff8,eff8,8ea1eff8v,eff8v 99df e9a79f 99df 000099df be6f be6f be6f be6f be6f be6f be6f -4725 be70 be70 be70 * 6f79 * 8ea1eff9,eff9,8ea1eff9v,eff9v 99db e9a79b 99db 000099db be70 be70 be70 be70 be70 be70 be70 -4726 be71 be71 be71 * 6f7a * 8ea1effa,effa,8ea1effav,effav 99d1 e9a791 99d1 000099d1 be71 be71 be71 be71 be71 be71 be71 -4727 be72 be72 be72 * 6f7b * 8ea1effb,effb,8ea1effbv,effbv 99d5 e9a795 99d5 000099d5 be72 be72 be72 be72 be72 be72 be72 -4728 be73 be73 be73 * 6f7c * 8ea1effc,effc,8ea1effcv,effcv 99d2 e9a792 99d2 000099d2 be73 be73 be73 be73 be73 be73 be73 -4729 be74 be74 be74 * 6f7d * 8ea1effd,effd,8ea1effdv,effdv 99d9 e9a799 99d9 000099d9 be74 be74 be74 be74 be74 be74 be74 -4730 be75 be75 be75 * 6f7e * 8ea1effe,effe,8ea1effev,effev 9ab7 e9aab7 9ab7 00009ab7 be75 be75 be75 be75 be75 be75 be75 -4731 be76 be76 be76 * 7021 * 8ea1f0a1,f0a1,8ea1f0a1v,f0a1v 9aee e9abae 9aee 00009aee be76 be76 be76 be76 be76 be76 be76 -4732 be77 be77 be77 * 7022 * 8ea1f0a2,f0a2,8ea1f0a2v,f0a2v 9aef e9abaf 9aef 00009aef be77 be77 be77 be77 be77 be77 be77 -4733 be78 be78 be78 * 7023 * 8ea1f0a3,f0a3,8ea1f0a3v,f0a3v 9b27 e9aca7 9b27 00009b27 be78 be78 be78 be78 be78 be78 be78 -4734 be79 be79 be79 * 7024 * 8ea1f0a4,f0a4,8ea1f0a4v,f0a4v 9b45 e9ad85 9b45 00009b45 be79 be79 be79 be79 be79 be79 be79 -4735 be7a be7a be7a * 7025 * 8ea1f0a5,f0a5,8ea1f0a5v,f0a5v 9b44 e9ad84 9b44 00009b44 be7a be7a be7a be7a be7a be7a be7a -4736 be7b be7b be7b * 7026 * 8ea1f0a6,f0a6,8ea1f0a6v,f0a6v 9b77 e9adb7 9b77 00009b77 be7b be7b be7b be7b be7b be7b be7b -4737 be7c be7c be7c * 7027 * 8ea1f0a7,f0a7,8ea1f0a7v,f0a7v 9b6f e9adaf 9b6f 00009b6f be7c be7c be7c be7c be7c be7c be7c -4738 be7d be7d be7d * 7028 * 8ea1f0a8,f0a8,8ea1f0a8v,f0a8v 9d06 e9b486 9d06 00009d06 be7d be7d be7d be7d be7d be7d be7d -4739 be7e be7e be7e * 7029 * 8ea1f0a9,f0a9,8ea1f0a9v,f0a9v 9d09 e9b489 9d09 00009d09 be7e be7e be7e be7e be7e be7e be7e -4740 bea1 bea1 bea1 * 702a * 8ea1f0aa,f0aa,8ea1f0aav,f0aav 9d03 e9b483 9d03 00009d03 bea1 bea1 bea1 bea1 bea1 bea1 bea1 -4741 bea2 bea2 bea2 * 702b * 8ea1f0ab,f0ab,8ea1f0abv,f0abv 9ea9 e9baa9 9ea9 00009ea9 bea2 bea2 bea2 bea2 bea2 bea2 bea2 -4742 bea3 bea3 bea3 * 702c * 8ea1f0ac,f0ac,8ea1f0acv,f0acv 9ebe e9babe 9ebe 00009ebe bea3 bea3 bea3 bea3 bea3 bea3 bea3 -4743 bea4 bea4 bea4 * 702d * 8ea1f0ad,f0ad,8ea1f0adv,f0adv 9ece e9bb8e 9ece 00009ece bea4 bea4 bea4 bea4 bea4 bea4 bea4 -4744 bea5 bea5 bea5 * 702e * 8ea1f0ae,f0ae,8ea1f0aev,f0aev 58a8 e5a2a8 58a8 000058a8 bea5 bea5 bea5 bea5 bea5 bea5 bea5 -4745 bea6 bea6 bea6 * 2936,702f * 8ea1a9b6,8ea1f0af,a9b6,f0af,8ea1a9b6v,8ea1f0afv,a9b6v,f0afv 9f52 e2bf92,e9bd92 2fd2,9f52 00002fd2,00009f52 bea6 bea6 bea6 bea6 bea6 bea6 bea6 -4746 bea7 bea7 bea7 * 7030 * 8ea1f0b0,f0b0,8ea1f0b0v,f0b0v 5112 e58492 5112 00005112 bea7 bea7 bea7 bea7 bea7 bea7 bea7 -4747 bea8 bea8 bea8 * 7031 * 8ea1f0b1,f0b1,8ea1f0b1v,f0b1v 5118 e58498 5118 00005118 bea8 bea8 bea8 bea8 bea8 bea8 bea8 -4748 bea9 bea9 bea9 * 7032 * 8ea1f0b2,f0b2,8ea1f0b2v,f0b2v 5114 e58494 5114 00005114 bea9 bea9 bea9 bea9 bea9 bea9 bea9 -4749 beaa beaa beaa * 7033 * 8ea1f0b3,f0b3,8ea1f0b3v,f0b3v 5110 e58490 5110 00005110 beaa beaa beaa beaa beaa beaa beaa -4750 beab beab beab * 7034 * 8ea1f0b4,f0b4,8ea1f0b4v,f0b4v 5115 e58495 5115 00005115 beab beab beab beab beab beab beab -4751 beac beac beac * 7035 * 8ea1f0b5,f0b5,8ea1f0b5v,f0b5v 5180 e58680 5180 00005180 beac beac beac beac beac beac beac -4752 bead bead bead * 7036 * 8ea1f0b6,f0b6,8ea1f0b6v,f0b6v 51aa e586aa 51aa 000051aa bead bead bead bead bead bead bead -4753 beae beae beae * 7037 * 8ea1f0b7,f0b7,8ea1f0b7v,f0b7v 51dd e5879d 51dd 000051dd beae beae beae beae beae beae beae -4754 beaf beaf beaf * 7038 * 8ea1f0b8,f0b8,8ea1f0b8v,f0b8v 5291 e58a91 5291 00005291 beaf beaf beaf beaf beaf beaf beaf -4755 beb0 beb0 beb0 * 7039 * 8ea1f0b9,f0b9,8ea1f0b9v,f0b9v 5293 e58a93 5293 00005293 beb0 beb0 beb0 beb0 beb0 beb0 beb0 -4756 beb1 beb1 beb1 * 703a * 8ea1f0ba,f0ba,8ea1f0bav,f0bav 52f3 e58bb3 52f3 000052f3 beb1 beb1 beb1 beb1 beb1 beb1 beb1 -4757 beb2 beb2 beb2 * 703b * 8ea1f0bb,f0bb,8ea1f0bbv,f0bbv 5659 e59999 5659 00005659 beb2 beb2 beb2 beb2 beb2 beb2 beb2 -4758 beb3 beb3 beb3 * 703c * 8ea1f0bc,f0bc,8ea1f0bcv,f0bcv 566b e599ab 566b 0000566b beb3 beb3 beb3 beb3 beb3 beb3 beb3 -4759 beb4 beb4 beb4 * 703d * 8ea1f0bd,f0bd,8ea1f0bdv,f0bdv 5679 e599b9 5679 00005679 beb4 beb4 beb4 beb4 beb4 beb4 beb4 -4760 beb5 beb5 beb5 * 703e * 8ea1f0be,f0be,8ea1f0bev,f0bev 5669 e599a9 5669 00005669 beb5 beb5 beb5 beb5 beb5 beb5 beb5 -4761 beb6 beb6 beb6 * 703f * 8ea1f0bf,f0bf,8ea1f0bfv,f0bfv 5664 e599a4 5664 00005664 beb6 beb6 beb6 beb6 beb6 beb6 beb6 -4762 beb7 beb7 beb7 * 7040 * 8ea1f0c0,f0c0,8ea1f0c0v,f0c0v 5678 e599b8 5678 00005678 beb7 beb7 beb7 beb7 beb7 beb7 beb7 -4763 beb8 beb8 beb8 * 7041 * 8ea1f0c1,f0c1,8ea1f0c1v,f0c1v 566a e599aa 566a 0000566a beb8 beb8 beb8 beb8 beb8 beb8 beb8 -4764 beb9 beb9 beb9 * 7042 * 8ea1f0c2,f0c2,8ea1f0c2v,f0c2v 5668 e599a8 5668 00005668 beb9 beb9 beb9 beb9 beb9 beb9 beb9 -4765 beba beba beba * 7043 * 8ea1f0c3,f0c3,8ea1f0c3v,f0c3v 5665 e599a5 5665 00005665 beba beba beba beba beba beba beba -4766 bebb bebb bebb * 7044 * 8ea1f0c4,f0c4,8ea1f0c4v,f0c4v 5671 e599b1 5671 00005671 bebb bebb bebb bebb bebb bebb bebb -4767 bebc bebc bebc * 7045 * 8ea1f0c5,f0c5,8ea1f0c5v,f0c5v 566f e599af 566f 0000566f bebc bebc bebc bebc bebc bebc bebc -4768 bebd bebd bebd * 7046 * 8ea1f0c6,f0c6,8ea1f0c6v,f0c6v 566c e599ac 566c 0000566c bebd bebd bebd bebd bebd bebd bebd -4769 bebe bebe bebe * 7047 * 8ea1f0c7,f0c7,8ea1f0c7v,f0c7v 5662 e599a2 5662 00005662 bebe bebe bebe bebe bebe bebe bebe -4770 bebf bebf bebf * 7048 * 8ea1f0c8,f0c8,8ea1f0c8v,f0c8v 5676 e599b6 5676 00005676 bebf bebf bebf bebf bebf bebf bebf -4771 bec0 bec0 bec0 * 7049 * 8ea1f0c9,f0c9,8ea1f0c9v,f0c9v 58c1 e5a381 58c1 000058c1 bec0 bec0 bec0 bec0 bec0 bec0 bec0 -4772 bec1 bec1 bec1 * 704a * 8ea1f0ca,f0ca,8ea1f0cav,f0cav 58be e5a2be 58be 000058be bec1 bec1 bec1 bec1 bec1 bec1 bec1 -4773 bec2 bec2 bec2 * 704b * 8ea1f0cb,f0cb,8ea1f0cbv,f0cbv 58c7 e5a387 58c7 000058c7 bec2 bec2 bec2 bec2 bec2 bec2 bec2 -4774 bec3 bec3 bec3 * 704c * 8ea1f0cc,f0cc,8ea1f0ccv,f0ccv 58c5 e5a385 58c5 000058c5 bec3 bec3 bec3 bec3 bec3 bec3 bec3 -4775 bec4 bec4 bec4 * 704d * 8ea1f0cd,f0cd,8ea1f0cdv,f0cdv 596e e5a5ae 596e 0000596e bec4 bec4 bec4 bec4 bec4 bec4 bec4 -4776 bec5 bec5 bec5 * 704e * 8ea1f0ce,f0ce,8ea1f0cev,f0cev 5b1d e5ac9d 5b1d 00005b1d bec5 bec5 bec5 bec5 bec5 bec5 bec5 -4777 bec6 bec6 bec6 * 704f * 8ea1f0cf,f0cf,8ea1f0cfv,f0cfv 5b34 e5acb4 5b34 00005b34 bec6 bec6 bec6 bec6 bec6 bec6 bec6 -4778 bec7 bec7 bec7 * 7050 * 8ea1f0d0,f0d0,8ea1f0d0v,f0d0v 5b78 e5adb8 5b78 00005b78 bec7 bec7 bec7 bec7 bec7 bec7 bec7 -4779 bec8 bec8 bec8 * 7051 * 8ea1f0d1,f0d1,8ea1f0d1v,f0d1v 5bf0 e5afb0 5bf0 00005bf0 bec8 bec8 bec8 bec8 bec8 bec8 bec8 -4780 bec9 bec9 bec9 * 7052 * 8ea1f0d2,f0d2,8ea1f0d2v,f0d2v 5c0e e5b08e 5c0e 00005c0e bec9 bec9 bec9 bec9 bec9 bec9 bec9 -4781 beca beca beca * 7053 * 8ea1f0d3,f0d3,8ea1f0d3v,f0d3v 5f4a e5bd8a 5f4a 00005f4a beca beca beca beca beca beca beca -4782 becb becb becb * 7054 * 8ea1f0d4,f0d4,8ea1f0d4v,f0d4v 61b2 e686b2 61b2 000061b2 becb becb becb becb becb becb becb -4783 becc becc becc * 7055 * 8ea1f0d5,f0d5,8ea1f0d5v,f0d5v 6191 e68691 6191 00006191 becc becc becc becc becc becc becc -4784 becd becd becd * 7056 * 8ea1f0d6,f0d6,8ea1f0d6v,f0d6v 61a9 e686a9 61a9 000061a9 becd becd,fc6f 915b,becd becd becd becd becd -4785 bece bece bece * 7057 * 8ea1f0d7,f0d7,8ea1f0d7v,f0d7v 618a e6868a 618a 0000618a bece bece bece bece bece bece bece -4786 becf becf becf * 7058 * 8ea1f0d8,f0d8,8ea1f0d8v,f0d8v 61cd e6878d 61cd 000061cd becf becf becf becf becf becf becf -4787 bed0 bed0 bed0 * 7059 * 8ea1f0d9,f0d9,8ea1f0d9v,f0d9v 61b6 e686b6 61b6 000061b6 bed0 bed0 bed0 bed0 bed0 bed0 bed0 -4788 bed1 bed1 bed1 * 705a * 8ea1f0da,f0da,8ea1f0dav,f0dav 61be e686be 61be 000061be bed1 bed1 bed1 bed1 bed1 bed1 bed1 -4789 bed2 bed2 bed2 * 705b * 8ea1f0db,f0db,8ea1f0dbv,f0dbv 61ca e6878a 61ca 000061ca bed2 bed2 bed2 bed2 bed2 bed2 bed2 -4790 bed3 bed3 bed3 * 705c * 8ea1f0dc,f0dc,8ea1f0dcv,f0dcv 61c8 e68788 61c8 000061c8 bed3 bed3 bed3 bed3 bed3 bed3 bed3 -4791 bed4 bed4 bed4 * 705d * 8ea1f0dd,f0dd,8ea1f0ddv,f0ddv 6230 e688b0 6230 00006230 bed4 bed4 bed4 bed4 bed4 bed4 bed4 -4792 bed5 bed5 bed5 * 705e * 8ea1f0de,f0de,8ea1f0dev,f0dev 64c5 e69385 64c5 000064c5 bed5 bed5 bed5 bed5 bed5 bed5 bed5 -4793 bed6 bed6 bed6 * 705f * 8ea1f0df,f0df,8ea1f0dfv,f0dfv 64c1 e69381 64c1 000064c1 bed6 bed6 bed6 bed6 bed6 bed6 bed6 -4794 bed7 bed7 bed7 * 7060 * 8ea1f0e0,f0e0,8ea1f0e0v,f0e0v 64cb e6938b 64cb 000064cb bed7 bed7 bed7 bed7 bed7 bed7 bed7 -4795 bed8 bed8 bed8 * 7061 * 8ea1f0e1,f0e1,8ea1f0e1v,f0e1v 64bb e692bb 64bb 000064bb bed8 bed8 bed8 bed8 bed8 bed8 bed8 -4796 bed9 bed9 bed9 * 7062 * 8ea1f0e2,f0e2,8ea1f0e2v,f0e2v 64bc e692bc 64bc 000064bc bed9 bed9 bed9 bed9 bed9 bed9 bed9 -4797 beda beda beda * 7063 * 8ea1f0e3,f0e3,8ea1f0e3v,f0e3v 64da e6939a 64da 000064da beda beda beda beda beda beda beda -4798 bedb bedb bedb * 7064 * 8ea1f0e4,f0e4,8ea1f0e4v,f0e4v 64c4 e69384 64c4 000064c4 bedb bedb bedb bedb bedb bedb bedb -4799 bedc bedc bedc * 7065 * 8ea1f0e5,f0e5,8ea1f0e5v,f0e5v 64c7 e69387 64c7 000064c7 bedc bedc bedc bedc bedc bedc bedc -4800 bedd bedd bedd * 7066 * 8ea1f0e6,f0e6,8ea1f0e6v,f0e6v 64c2 e69382 64c2 000064c2 bedd bedd bedd bedd bedd bedd bedd -4801 bede bede bede * 7067 * 8ea1f0e7,f0e7,8ea1f0e7v,f0e7v 64cd e6938d 64cd 000064cd bede bede bede bede bede bede bede -4802 bedf bedf bedf * 7068 * 8ea1f0e8,f0e8,8ea1f0e8v,f0e8v 64bf e692bf 64bf 000064bf bedf bedf bedf bedf bedf bedf bedf -4803 bee0 bee0 bee0 * 7069 * 8ea1f0e9,f0e9,8ea1f0e9v,f0e9v 64d2 e69392 64d2 000064d2 bee0 bee0 bee0 bee0 bee0 bee0 bee0 -4804 bee1 bee1 bee1 * 706a * 8ea1f0ea,f0ea,8ea1f0eav,f0eav 64d4 e69394 64d4 000064d4 bee1 bee1 bee1 bee1 bee1 bee1 bee1 -4805 bee2 bee2 bee2 * 706b * 8ea1f0eb,f0eb,8ea1f0ebv,f0ebv 64be e692be 64be 000064be bee2 bee2 bee2 bee2 bee2 bee2 bee2 -4806 bee3 bee3 bee3 * 706c * 8ea1f0ec,f0ec,8ea1f0ecv,f0ecv 6574 e695b4 6574 00006574 bee3 bee3 bee3 bee3 bee3 bee3 bee3 -4807 bee4 bee4 bee4 * 706d * 8ea1f0ed,f0ed,8ea1f0edv,f0edv 66c6 e69b86 66c6 000066c6 bee4 bee4 bee4 bee4 bee4 bee4 bee4 -4808 bee5 bee5 bee5 * 706e * 8ea1f0ee,f0ee,8ea1f0eev,f0eev 66c9 e69b89 66c9 000066c9 bee5 bee5 bee5 bee5 bee5 bee5 bee5 -4809 bee6 bee6 bee6 * 706f * 8ea1f0ef,f0ef,8ea1f0efv,f0efv 66b9 e69ab9 66b9 000066b9 bee6 bee6 bee6 bee6 bee6 bee6 bee6 -4810 bee7 bee7 bee7 * 7070 * 8ea1f0f0,f0f0,8ea1f0f0v,f0f0v 66c4 e69b84 66c4 000066c4 bee7 bee7 bee7 bee7 bee7 bee7 bee7 -4811 bee8 bee8 bee8 * 7071 * 8ea1f0f1,f0f1,8ea1f0f1v,f0f1v 66c7 e69b87 66c7 000066c7 bee8 bee8 bee8 bee8 bee8 bee8 bee8 -4812 bee9 bee9 bee9 * 7072 * 8ea1f0f2,f0f2,8ea1f0f2v,f0f2v 66b8 e69ab8 66b8 000066b8 bee9 bee9 bee9 bee9 bee9 bee9 bee9 -4813 beea beea beea * 7073 * 8ea1f0f3,f0f3,8ea1f0f3v,f0f3v 6a3d e6a8bd 6a3d 00006a3d beea beea beea beea beea beea beea -4814 beeb beeb beeb * 7074 * 8ea1f0f4,f0f4,8ea1f0f4v,f0f4v 6a38 e6a8b8 6a38 00006a38 beeb beeb beeb beeb beeb beeb beeb -4815 beec beec beec * 7075 * 8ea1f0f5,f0f5,8ea1f0f5v,f0f5v 6a3a e6a8ba 6a3a 00006a3a beec beec beec beec beec beec beec -4816 beed beed beed * 7076 * 8ea1f0f6,f0f6,8ea1f0f6v,f0f6v 6a59 e6a999 6a59 00006a59 beed beed beed beed beed beed beed -4817 beee beee beee * 7077 * 8ea1f0f7,f0f7,8ea1f0f7v,f0f7v 6a6b e6a9ab 6a6b 00006a6b beee beee beee beee beee beee beee -4818 beef beef beef * 7078 * 8ea1f0f8,f0f8,8ea1f0f8v,f0f8v 6a58 e6a998 6a58 00006a58 beef beef beef beef beef beef beef -4819 bef0 bef0 bef0 * 7079 * 8ea1f0f9,f0f9,8ea1f0f9v,f0f9v 6a39 e6a8b9 6a39 00006a39 bef0 bef0 bef0 bef0 bef0 bef0 bef0 -4820 bef1 bef1 bef1 * 707a * 8ea1f0fa,f0fa,8ea1f0fav,f0fav 6a44 e6a984 6a44 00006a44 bef1 bef1 bef1 bef1 bef1 bef1 bef1 -4821 bef2 bef2 bef2 * 707b * 8ea1f0fb,f0fb,8ea1f0fbv,f0fbv 6a62 e6a9a2 6a62 00006a62 bef2 bef2 bef2 bef2 bef2 bef2 bef2 -4822 bef3 bef3 bef3 * 707c * 8ea1f0fc,f0fc,8ea1f0fcv,f0fcv 6a61 e6a9a1 6a61 00006a61 bef3 bef3 bef3 bef3 bef3 bef3 bef3 -4823 bef4 bef4 bef4 * 707d * 8ea1f0fd,f0fd,8ea1f0fdv,f0fdv 6a4b e6a98b 6a4b 00006a4b bef4 bef4 bef4 bef4 bef4 bef4 bef4 -4824 bef5 bef5 bef5 * 707e * 8ea1f0fe,f0fe,8ea1f0fev,f0fev 6a47 e6a987 6a47 00006a47 bef5 bef5 bef5 bef5 bef5 bef5 bef5 -4825 bef6 bef6 bef6 * 7121 * 8ea1f1a1,f1a1,8ea1f1a1v,f1a1v 6a35 e6a8b5 6a35 00006a35 bef6 bef6 bef6 bef6 bef6 bef6 bef6 -4826 bef7 bef7 bef7 * 7122 * 8ea1f1a2,f1a2,8ea1f1a2v,f1a2v 6a5f e6a99f 6a5f 00006a5f bef7 bef7 bef7 bef7 bef7 bef7 bef7 -4827 bef8 bef8 bef8 * 7123 * 8ea1f1a3,f1a3,8ea1f1a3v,f1a3v 6a48 e6a988 6a48 00006a48 bef8 bef8 bef8 bef8 bef8 bef8 bef8 -4828 bef9 bef9 bef9 * 7124 * 8ea1f1a4,f1a4,8ea1f1a4v,f1a4v 6b59 e6ad99 6b59 00006b59 bef9 bef9 bef9 bef9 bef9 bef9 bef9 -4829 befa befa befa * 7125 * 8ea1f1a5,f1a5,8ea1f1a5v,f1a5v 6b77 e6adb7 6b77 00006b77 befa befa befa befa befa befa befa -4830 befb befb befb * 7126 * 8ea1f1a6,f1a6,8ea1f1a6v,f1a6v 6c05 e6b085 6c05 00006c05 befb befb befb befb befb befb befb -4831 befc befc befc * 7127 * 8ea1f1a7,f1a7,8ea1f1a7v,f1a7v 6fc2 e6bf82 6fc2 00006fc2 befc befc befc befc befc befc befc -4832 befd befd befd * 7128 * 8ea1f1a8,f1a8,8ea1f1a8v,f1a8v 6fb1 e6beb1 6fb1 00006fb1 befd befd befd befd befd befd befd -4833 befe befe befe * 7129 * 8ea1f1a9,f1a9,8ea1f1a9v,f1a9v 6fa1 e6bea1 6fa1 00006fa1 befe befe befe befe befe befe befe -4834 bf40 bf40 bf40 * 712a * 8ea1f1aa,f1aa,8ea1f1aav,f1aav 6fc3 e6bf83 6fc3 00006fc3 bf40 bf40 bf40 bf40 bf40 bf40 bf40 -4835 bf41 bf41 bf41 * 712b * 8ea1f1ab,f1ab,8ea1f1abv,f1abv 6fa4 e6bea4 6fa4 00006fa4 bf41 bf41 bf41 bf41 bf41 bf41 bf41 -4836 bf42 bf42 bf42 * 712c * 8ea1f1ac,f1ac,8ea1f1acv,f1acv 6fc1 e6bf81 6fc1 00006fc1 bf42 bf42 bf42 bf42 bf42 bf42 bf42 -4837 bf43 bf43 bf43 * 712d * 8ea1f1ad,f1ad,8ea1f1adv,f1adv 6fa7 e6bea7 6fa7 00006fa7 bf43 bf43 bf43 bf43 bf43 bf43 bf43 -4838 bf44 bf44 bf44 * 712e * 8ea1f1ae,f1ae,8ea1f1aev,f1aev 6fb3 e6beb3 6fb3 00006fb3 bf44 bf44 bf44 bf44 bf44 bf44 bf44 -4839 bf45 bf45 bf45 * 712f * 8ea1f1af,f1af,8ea1f1afv,f1afv 6fc0 e6bf80 6fc0 00006fc0 bf45 bf45 bf45 bf45 bf45 bf45 bf45 -4840 bf46 bf46 bf46 * 7130 * 8ea1f1b0,f1b0,8ea1f1b0v,f1b0v 6fb9 e6beb9 6fb9 00006fb9 bf46 bf46 bf46 bf46 bf46 bf46 bf46 -4841 bf47 bf47 bf47 * 7131 * 8ea1f1b1,f1b1,8ea1f1b1v,f1b1v 6fb6 e6beb6,eeae9e 6fb6,eb9e 00006fb6,0000eb9e 9bf6,bf47 bf47 bf47 bf47 bf47 bf47 9bf6,bf47 -4842 bf48 bf48 bf48 * 7132 * 8ea1f1b2,f1b2,8ea1f1b2v,f1b2v 6fa6 e6bea6 6fa6 00006fa6 bf48 bf48 bf48 bf48 bf48 bf48 bf48 -4843 bf49 bf49 bf49 * 7133 * 8ea1f1b3,f1b3,8ea1f1b3v,f1b3v 6fa0 e6bea0 6fa0 00006fa0 bf49 bf49 bf49 bf49 bf49 bf49 bf49 -4844 bf4a bf4a bf4a * 7134 * 8ea1f1b4,f1b4,8ea1f1b4v,f1b4v 6fb4 e6beb4 6fb4 00006fb4 bf4a bf4a bf4a bf4a bf4a bf4a bf4a -4845 bf4b bf4b bf4b * 7135 * 8ea1f1b5,f1b5,8ea1f1b5v,f1b5v 71be e786be 71be 000071be bf4b bf4b bf4b bf4b bf4b bf4b bf4b -4846 bf4c bf4c bf4c * 7136 * 8ea1f1b6,f1b6,8ea1f1b6v,f1b6v 71c9 e78789 71c9 000071c9 bf4c bf4c bf4c bf4c bf4c bf4c bf4c -4847 bf4d bf4d bf4d * 7137 * 8ea1f1b7,f1b7,8ea1f1b7v,f1b7v 71d0 e78790 71d0 000071d0 bf4d bf4d bf4d bf4d bf4d bf4d bf4d -4848 bf4e bf4e bf4e * 7138 * 8ea1f1b8,f1b8,8ea1f1b8v,f1b8v 71d2 e78792 71d2 000071d2 bf4e bf4e bf4e bf4e bf4e bf4e bf4e -4849 bf4f bf4f bf4f * 7139 * 8ea1f1b9,f1b9,8ea1f1b9v,f1b9v 71c8 e78788 71c8 000071c8 bf4f bf4f bf4f bf4f bf4f bf4f bf4f -4850 bf50 bf50 bf50 * 713a * 8ea1f1ba,f1ba,8ea1f1bav,f1bav 71d5 e78795 71d5 000071d5 bf50 bf50 bf50 bf50 bf50 bf50 bf50 -4851 bf51 bf51 bf51 * 713b * 8ea1f1bb,f1bb,8ea1f1bbv,f1bbv 71b9 e786b9 71b9 000071b9 bf51 bf51 bf51 bf51 bf51 bf51 bf51 -4852 bf52 bf52 bf52 * 713c * 8ea1f1bc,f1bc,8ea1f1bcv,f1bcv 71ce e7878e 71ce 000071ce bf52 bf52 bf52 bf52 bf52 bf52 bf52 -4853 bf53 bf53 bf53 * 713d * 8ea1f1bd,f1bd,8ea1f1bdv,f1bdv 71d9 e78799 71d9 000071d9 bf53 bf53 bf53 bf53 bf53 bf53 bf53 -4854 bf54 bf54 bf54 * 713e * 8ea1f1be,f1be,8ea1f1bev,f1bev 71dc e7879c 71dc 000071dc bf54 bf54 bf54 bf54 bf54 bf54 bf54 -4855 bf55 bf55 bf55 * 713f * 8ea1f1bf,f1bf,8ea1f1bfv,f1bfv 71c3 e78783 71c3 000071c3 bf55 bf55 bf55 bf55 bf55 bf55 bf55 -4856 bf56 bf56 bf56 * 7140 * 8ea1f1c0,f1c0,8ea1f1c0v,f1c0v 71c4 e78784 71c4 000071c4 bf56 bf56 bf56 bf56 bf56 bf56 bf56 -4857 bf57 bf57 bf57 * 7141 * 8ea1f1c1,f1c1,8ea1f1c1v,f1c1v 7368 e78da8 7368 00007368 bf57 bf57 bf57 bf57 bf57 bf57 bf57 -4858 bf58 bf58 bf58 * 7142 * 8ea1f1c2,f1c2,8ea1f1c2v,f1c2v 749c e7929c 749c 0000749c bf58 bf58 bf58 bf58 bf58 bf58 bf58 -4859 bf59 bf59 bf59 * 7143 * 8ea1f1c3,f1c3,8ea1f1c3v,f1c3v 74a3 e792a3 74a3 000074a3 bf59 bf59 bf59 bf59 bf59 bf59 bf59 -4860 bf5a bf5a bf5a * 7144 * 8ea1f1c4,f1c4,8ea1f1c4v,f1c4v 7498 e79298 7498 00007498 bf5a bf5a bf5a bf5a bf5a bf5a bf5a -4861 bf5b bf5b bf5b * 7145 * 8ea1f1c5,f1c5,8ea1f1c5v,f1c5v 749f e7929f 749f 0000749f bf5b bf5b bf5b bf5b bf5b bf5b bf5b -4862 bf5c bf5c bf5c * 7146 * 8ea1f1c6,f1c6,8ea1f1c6v,f1c6v 749e e7929e 749e 0000749e bf5c bf5c bf5c bf5c bf5c bf5c bf5c -4863 bf5d bf5d bf5d * 7147 * 8ea1f1c7,f1c7,8ea1f1c7v,f1c7v 74e2 e793a2 74e2 000074e2 bf5d bf5d bf5d bf5d bf5d bf5d bf5d -4864 bf5e bf5e bf5e * 7148 * 8ea1f1c8,f1c8,8ea1f1c8v,f1c8v 750c e7948c 750c 0000750c bf5e bf5e bf5e bf5e bf5e bf5e bf5e -4865 bf5f bf5f bf5f * 7149 * 8ea1f1c9,f1c9,8ea1f1c9v,f1c9v 750d e7948d 750d 0000750d bf5f bf5f bf5f bf5f bf5f bf5f bf5f -4866 bf60 bf60 bf60 * 714a * 8ea1f1ca,f1ca,8ea1f1cav,f1cav 7634 e798b4 7634 00007634 bf60 bf60 bf60 bf60 bf60 bf60 bf60 -4867 bf61 bf61 bf61 * 714b * 8ea1f1cb,f1cb,8ea1f1cbv,f1cbv 7638 e798b8 7638 00007638 bf61 bf61 bf61 bf61 bf61 bf61 bf61 -4868 bf62 bf62 bf62 * 714c * 8ea1f1cc,f1cc,8ea1f1ccv,f1ccv 763a e798ba 763a 0000763a bf62 bf62 bf62 bf62 bf62 bf62 bf62 -4869 bf63 bf63 bf63 * 714d * 8ea1f1cd,f1cd,8ea1f1cdv,f1cdv 76e7 e79ba7 76e7 000076e7 bf63 bf63 bf63 bf63 bf63 bf63 bf63 -4870 bf64 bf64 bf64 * 714e * 8ea1f1ce,f1ce,8ea1f1cev,f1cev 76e5 e79ba5 76e5 000076e5 bf64 bf64 bf64 bf64 bf64 bf64 bf64 -4871 bf65 bf65 bf65 * 714f * 8ea1f1cf,f1cf,8ea1f1cfv,f1cfv 77a0 e79ea0 77a0 000077a0 bf65 bf65 bf65 bf65 bf65 bf65 bf65 -4872 bf66 bf66 bf66 * 7150 * 8ea1f1d0,f1d0,8ea1f1d0v,f1d0v 779e e79e9e 779e 0000779e bf66 bf66 bf66 bf66 bf66 bf66 bf66 -4873 bf67 bf67 bf67 * 7151 * 8ea1f1d1,f1d1,8ea1f1d1v,f1d1v 779f e79e9f 779f 0000779f bf67 bf67 bf67 bf67 bf67 bf67 bf67 -4874 bf68 bf68 bf68 * 7152 * 8ea1f1d2,f1d2,8ea1f1d2v,f1d2v 77a5 e79ea5 77a5 000077a5 bf68 bf68 bf68 bf68 bf68 bf68 bf68 -4875 bf69 bf69 bf69 * 7153 * 8ea1f1d3,f1d3,8ea1f1d3v,f1d3v 78e8 e7a3a8 78e8 000078e8 bf69 bf69 bf69 bf69 bf69 bf69 bf69 -4876 bf6a bf6a bf6a * 7154 * 8ea1f1d4,f1d4,8ea1f1d4v,f1d4v 78da e7a39a 78da 000078da bf6a bf6a bf6a bf6a bf6a bf6a bf6a -4877 bf6b bf6b bf6b * 7155 * 8ea1f1d5,f1d5,8ea1f1d5v,f1d5v 78ec e7a3ac 78ec 000078ec bf6b bf6b bf6b bf6b bf6b bf6b bf6b -4878 bf6c bf6c bf6c * 7156 * 8ea1f1d6,f1d6,8ea1f1d6v,f1d6v 78e7 e7a3a7 78e7 000078e7 bf6c bf6c bf6c bf6c bf6c bf6c bf6c -4879 bf6d bf6d bf6d * 7157 * 8ea1f1d7,f1d7,8ea1f1d7v,f1d7v 79a6 e7a6a6 79a6 000079a6 bf6d bf6d bf6d bf6d bf6d bf6d bf6d -4880 bf6e bf6e bf6e * 7158 * 8ea1f1d8,f1d8,8ea1f1d8v,f1d8v 7a4d e7a98d 7a4d 00007a4d bf6e bf6e bf6e bf6e bf6e bf6e bf6e -4881 bf6f bf6f bf6f * 7159 * 8ea1f1d9,f1d9,8ea1f1d9v,f1d9v 7a4e e7a98e 7a4e 00007a4e bf6f bf6f bf6f bf6f bf6f bf6f bf6f -4882 bf70 bf70 bf70 * 715a * 8ea1f1da,f1da,8ea1f1dav,f1dav 7a46 e7a986 7a46 00007a46 bf70 bf70 bf70 bf70 bf70 bf70 bf70 -4883 bf71 bf71 bf71 * 715b * 8ea1f1db,f1db,8ea1f1dbv,f1dbv 7a4c e7a98c 7a4c 00007a4c bf71 bf71 bf71 bf71 bf71 bf71 bf71 -4884 bf72 bf72 bf72 * 715c * 8ea1f1dc,f1dc,8ea1f1dcv,f1dcv 7a4b e7a98b 7a4b 00007a4b bf72 bf72 bf72 bf72 bf72 bf72 bf72 -4885 bf73 bf73 bf73 * 715d * 8ea1f1dd,f1dd,8ea1f1ddv,f1ddv 7aba e7aaba 7aba 00007aba bf73 bf73 bf73 bf73 bf73 bf73 bf73 -4886 bf74 bf74 bf74 * 715e * 8ea1f1de,f1de,8ea1f1dev,f1dev 7bd9 e7af99 7bd9 00007bd9 bf74 bf74 bf74 bf74 bf74 bf74 bf74 -4887 bf75 bf75 bf75 * 715f * 8ea1f1df,f1df,8ea1f1dfv,f1dfv 7c11 e7b091 7c11 00007c11 bf75 bf75 bf75 bf75 bf75 bf75 bf75 -4888 bf76 bf76 bf76 * 7160 * 8ea1f1e0,f1e0,8ea1f1e0v,f1e0v 7bc9 e7af89 7bc9 00007bc9 bf76 bf76 bf76 bf76 bf76 bf76 bf76 -4889 bf77 bf77 bf77 * 7161 * 8ea1f1e1,f1e1,8ea1f1e1v,f1e1v 7be4 e7afa4 7be4 00007be4 bf77 bf77 bf77 bf77 bf77 bf77 bf77 -4890 bf78 bf78 bf78 * 7162 * 8ea1f1e2,f1e2,8ea1f1e2v,f1e2v 7bdb e7af9b 7bdb 00007bdb bf78 bf78 bf78 bf78 bf78 bf78 bf78 -4891 bf79 bf79 bf79 * 7163 * 8ea1f1e3,f1e3,8ea1f1e3v,f1e3v 7be1 e7afa1 7be1 00007be1 bf79 bf79 bf79 bf79 bf79 bf79 bf79 -4892 bf7a bf7a bf7a * 7164 * 8ea1f1e4,f1e4,8ea1f1e4v,f1e4v 7be9 e7afa9 7be9 00007be9 bf7a bf7a bf7a bf7a bf7a bf7a bf7a -4893 bf7b bf7b bf7b * 7165 * 8ea1f1e5,f1e5,8ea1f1e5v,f1e5v 7be6 e7afa6 7be6 00007be6 bf7b bf7b bf7b bf7b bf7b bf7b bf7b -4894 bf7c bf7c bf7c * 7166 * 8ea1f1e6,f1e6,8ea1f1e6v,f1e6v 7cd5 e7b395 7cd5 00007cd5 bf7c bf7c bf7c bf7c bf7c bf7c bf7c -4895 bf7d bf7d bf7d * 7167 * 8ea1f1e7,f1e7,8ea1f1e7v,f1e7v 7cd6 e7b396 7cd6 00007cd6 bf7d bf7d bf7d bf7d bf7d bf7d bf7d -4896 bf7e bf7e bf7e * 7168 * 8ea1f1e8,f1e8,8ea1f1e8v,f1e8v 7e0a e7b88a 7e0a 00007e0a bf7e bf7e bf7e bf7e bf7e bf7e bf7e -4897 bfa1 bfa1 bfa1 * 7169 * 8ea1f1e9,f1e9,8ea1f1e9v,f1e9v 7e11 e7b891 7e11 00007e11 bfa1 bfa1 bfa1 bfa1 bfa1 bfa1 bfa1 -4898 bfa2 bfa2 bfa2 * 716a * 8ea1f1ea,f1ea,8ea1f1eav,f1eav 7e08 e7b888 7e08 00007e08 bfa2 bfa2 bfa2 bfa2 bfa2 bfa2 bfa2 -4899 bfa3 bfa3 bfa3 * 716b * 8ea1f1eb,f1eb,8ea1f1ebv,f1ebv 7e1b e7b89b 7e1b 00007e1b bfa3 bfa3 bfa3 bfa3 bfa3 bfa3 bfa3 -4900 bfa4 bfa4 bfa4 * 716c * 8ea1f1ec,f1ec,8ea1f1ecv,f1ecv 7e23 e7b8a3 7e23 00007e23 bfa4 bfa4 bfa4 bfa4 bfa4 bfa4 bfa4 -4901 bfa5 bfa5 bfa5 * 716d * 8ea1f1ed,f1ed,8ea1f1edv,f1edv 7e1e e7b89e 7e1e 00007e1e bfa5 bfa5 bfa5 bfa5 bfa5 bfa5 bfa5 -4902 bfa6 bfa6 bfa6 * 716e * 8ea1f1ee,f1ee,8ea1f1eev,f1eev 7e1d e7b89d,ee8da3 7e1d,e363 00007e1d,0000e363 8eb4,bfa6 bfa6 bfa6 bfa6 bfa6 bfa6 8eb4,bfa6 -4903 bfa7 bfa7 bfa7 * 716f * 8ea1f1ef,f1ef,8ea1f1efv,f1efv 7e09 e7b889 7e09 00007e09 bfa7 bfa7 bfa7 bfa7 bfa7 bfa7 bfa7 -4904 bfa8 bfa8 bfa8 * 7170 * 8ea1f1f0,f1f0,8ea1f1f0v,f1f0v 7e10 e7b890 7e10 00007e10 bfa8 bfa8 bfa8 bfa8 bfa8 bfa8 bfa8 -4905 bfa9 bfa9 bfa9 * 7171 * 8ea1f1f1,f1f1,8ea1f1f1v,f1f1v 7f79 e7bdb9 7f79 00007f79 bfa9 bfa9 bfa9 bfa9 bfa9 bfa9 bfa9 -4906 bfaa bfaa bfaa * 7172 * 8ea1f1f2,f1f2,8ea1f1f2v,f1f2v 7fb2 e7beb2 7fb2 00007fb2 bfaa bfaa bfaa bfaa bfaa bfaa bfaa -4907 bfab bfab bfab * 7173 * 8ea1f1f3,f1f3,8ea1f1f3v,f1f3v 7ff0 e7bfb0 7ff0 00007ff0 bfab bfab bfab bfab bfab bfab bfab -4908 bfac bfac bfac * 7174 * 8ea1f1f4,f1f4,8ea1f1f4v,f1f4v 7ff1 e7bfb1 7ff1 00007ff1 bfac bfac bfac bfac bfac bfac bfac -4909 bfad bfad bfad * 7175 * 8ea1f1f5,f1f5,8ea1f1f5v,f1f5v 7fee e7bfae 7fee 00007fee bfad bfad bfad bfad bfad bfad bfad -4910 bfae bfae bfae * 7176 * 8ea1f1f6,f1f6,8ea1f1f6v,f1f6v 8028 e880a8,ee8dbf 8028,e37f 00008028,0000e37f 8ed0,bfae bfae bfae bfae bfae bfae 8ed0,bfae -4911 bfaf bfaf bfaf * 7177 * 8ea1f1f7,f1f7,8ea1f1f7v,f1f7v 81b3 e886b3 81b3 000081b3 bfaf bfaf bfaf bfaf bfaf bfaf bfaf -4912 bfb0 bfb0 bfb0 * 7178 * 8ea1f1f8,f1f8,8ea1f1f8v,f1f8v 81a9 e886a9 81a9 000081a9 bfb0 bfb0 bfb0 bfb0 bfb0 bfb0 bfb0 -4913 bfb1 bfb1 bfb1 * 7179 * 8ea1f1f9,f1f9,8ea1f1f9v,f1f9v 81a8 e886a8 81a8 000081a8 bfb1 bfb1 bfb1 bfb1 bfb1 bfb1 bfb1 -4914 bfb2 bfb2 bfb2 * 717a * 8ea1f1fa,f1fa,8ea1f1fav,f1fav 81fb e887bb 81fb 000081fb bfb2 bfb2 bfb2 bfb2 bfb2 bfb2 bfb2 -4915 bfb3 bfb3 bfb3 * 717b * 8ea1f1fb,f1fb,8ea1f1fbv,f1fbv 8208 e88888 8208 00008208 bfb3 bfb3 bfb3 bfb3 bfb3 bfb3 bfb3 -4916 bfb4 bfb4 bfb4 * 717c * 8ea1f1fc,f1fc,8ea1f1fcv,f1fcv 8258 e88998 8258 00008258 bfb4 bfb4 bfb4 bfb4 bfb4 bfb4 bfb4 -4917 bfb5 bfb5 bfb5 * 717d * 8ea1f1fd,f1fd,8ea1f1fdv,f1fdv 8259 e88999 8259 00008259 bfb5 bfb5 bfb5 bfb5 bfb5 bfb5 bfb5 -4918 bfb6 bfb6 bfb6 * 717e * 8ea1f1fe,f1fe,8ea1f1fev,f1fev 854a e8958a 854a 0000854a bfb6 bfb6 bfb6 bfb6 bfb6 bfb6 bfb6 -4919 bfb7 bfb7 bfb7 * 7221 * 8ea1f2a1,f2a1,8ea1f2a1v,f2a1v 8559 e89599 8559 00008559 bfb7 bfb7 bfb7 bfb7 bfb7 bfb7 bfb7 -4920 bfb8 bfb8 bfb8 * 7222 * 8ea1f2a2,f2a2,8ea1f2a2v,f2a2v 8548 e89588 8548 00008548 bfb8 bfb8 bfb8 bfb8 bfb8 bfb8 bfb8 -4921 bfb9 bfb9 bfb9 * 7223 * 8ea1f2a3,f2a3,8ea1f2a3v,f2a3v 8568 e895a8 8568 00008568 bfb9 bfb9 bfb9 bfb9 bfb9 bfb9 bfb9 -4922 bfba bfba bfba * 7224 * 8ea1f2a4,f2a4,8ea1f2a4v,f2a4v 8569 e895a9 8569 00008569 bfba bfba bfba bfba bfba bfba bfba -4923 bfbb bfbb bfbb * 7225 * 8ea1f2a5,f2a5,8ea1f2a5v,f2a5v 8543 e89583 8543 00008543 bfbb bfbb bfbb bfbb bfbb bfbb bfbb -4924 bfbc bfbc bfbc * 7226 * 8ea1f2a6,f2a6,8ea1f2a6v,f2a6v 8549 e89589 8549 00008549 bfbc bfbc bfbc bfbc bfbc bfbc bfbc -4925 bfbd bfbd bfbd * 7227 * 8ea1f2a7,f2a7,8ea1f2a7v,f2a7v 856d e895ad 856d 0000856d bfbd bfbd bfbd bfbd bfbd bfbd bfbd -4926 bfbe bfbe bfbe * 7228 * 8ea1f2a8,f2a8,8ea1f2a8v,f2a8v 856a e895aa 856a 0000856a bfbe bfbe bfbe bfbe bfbe bfbe bfbe -4927 bfbf bfbf bfbf * 7229 * 8ea1f2a9,f2a9,8ea1f2a9v,f2a9v 855e e8959e 855e 0000855e bfbf bfbf bfbf bfbf bfbf bfbf bfbf -4928 bfc0 bfc0 bfc0 * 722a * 8ea1f2aa,f2aa,8ea1f2aav,f2aav 8783 e89e83 8783 00008783 bfc0 bfc0 bfc0 bfc0 bfc0 bfc0 bfc0 -4929 bfc1 bfc1 bfc1 * 722b * 8ea1f2ab,f2ab,8ea1f2abv,f2abv 879f e89e9f 879f 0000879f bfc1 bfc1 bfc1 bfc1 bfc1 bfc1 bfc1 -4930 bfc2 bfc2 bfc2 * 722c * 8ea1f2ac,f2ac,8ea1f2acv,f2acv 879e e89e9e 879e 0000879e bfc2 bfc2 bfc2 bfc2 bfc2 bfc2 bfc2 -4931 bfc3 bfc3 bfc3 * 722d * 8ea1f2ad,f2ad,8ea1f2adv,f2adv 87a2 e89ea2 87a2 000087a2 bfc3 bfc3 bfc3 bfc3 bfc3 bfc3 bfc3 -4932 bfc4 bfc4 bfc4 * 722e * 8ea1f2ae,f2ae,8ea1f2aev,f2aev 878d e89e8d 878d 0000878d bfc4 bfc4 bfc4 bfc4 bfc4 bfc4 bfc4 -4933 bfc5 bfc5 bfc5 * 722f * 8ea1f2af,f2af,8ea1f2afv,f2afv 8861 e8a1a1 8861 00008861 bfc5 bfc5 bfc5 bfc5 bfc5 bfc5 bfc5 -4934 bfc6 bfc6 bfc6 * 7230 * 8ea1f2b0,f2b0,8ea1f2b0v,f2b0v 892a e8a4aa 892a 0000892a bfc6 bfc6 bfc6 bfc6 bfc6 bfc6 bfc6 -4935 bfc7 bfc7 bfc7 * 7231 * 8ea1f2b1,f2b1,8ea1f2b1v,f2b1v 8932 e8a4b2 8932 00008932 bfc7 bfc7 bfc7 bfc7 bfc7 bfc7 bfc7 -4936 bfc8 bfc8 bfc8 * 7232 * 8ea1f2b2,f2b2,8ea1f2b2v,f2b2v 8925 e8a4a5 8925 00008925 bfc8 bfc8 bfc8 bfc8 bfc8 bfc8 bfc8 -4937 bfc9 bfc9 bfc9 * 7233 * 8ea1f2b3,f2b3,8ea1f2b3v,f2b3v 892b e8a4ab 892b 0000892b bfc9 bfc9 bfc9 bfc9 bfc9 bfc9 bfc9 -4938 bfca bfca bfca * 7234 * 8ea1f2b4,f2b4,8ea1f2b4v,f2b4v 8921 e8a4a1 8921 00008921 bfca bfca bfca bfca bfca bfca,fca5 bfca -4939 bfcb bfcb bfcb * 7235 * 8ea1f2b5,f2b5,8ea1f2b5v,f2b5v 89aa e8a6aa 89aa 000089aa bfcb bfcb bfcb bfcb bfcb bfcb bfcb -4940 bfcc bfcc bfcc * 7236 * 8ea1f2b6,f2b6,8ea1f2b6v,f2b6v 89a6 e8a6a6,ee9097 89a6,e417 000089a6,0000e417 8fcb,bfcc bfcc bfcc bfcc bfcc bfcc 8fcb,bfcc -4941 bfcd bfcd bfcd * 7237 * 8ea1f2b7,f2b7,8ea1f2b7v,f2b7v 8ae6 e8aba6 8ae6 00008ae6 bfcd bfcd bfcd bfcd bfcd bfcd bfcd -4942 bfce bfce bfce * 7238 * 8ea1f2b8,f2b8,8ea1f2b8v,f2b8v 8afa e8abba 8afa 00008afa bfce bfce bfce bfce bfce bfce bfce -4943 bfcf bfcf bfcf * 7239 * 8ea1f2b9,f2b9,8ea1f2b9v,f2b9v 8aeb e8abab 8aeb 00008aeb bfcf bfcf bfcf bfcf bfcf bfcf bfcf -4944 bfd0 bfd0 bfd0 * 723a * 8ea1f2ba,f2ba,8ea1f2bav,f2bav 8af1 e8abb1 8af1 00008af1 bfd0 bfd0 bfd0 bfd0 bfd0 bfd0 bfd0 -4945 bfd1 bfd1 bfd1 * 723b * 8ea1f2bb,f2bb,8ea1f2bbv,f2bbv 8b00 e8ac80 8b00 00008b00 bfd1 bfd1 bfd1 bfd1 bfd1 bfd1 bfd1 -4946 bfd2 bfd2 bfd2 * 723c * 8ea1f2bc,f2bc,8ea1f2bcv,f2bcv 8adc e8ab9c 8adc 00008adc bfd2 bfd2 bfd2 bfd2 bfd2 bfd2 bfd2 -4947 bfd3 bfd3 bfd3 * 723d * 8ea1f2bd,f2bd,8ea1f2bdv,f2bdv 8ae7 e8aba7 8ae7 00008ae7 bfd3 bfd3 bfd3 bfd3 bfd3 bfd3 bfd3 -4948 bfd4 bfd4 bfd4 * 723e * 8ea1f2be,f2be,8ea1f2bev,f2bev 8aee e8abae 8aee 00008aee bfd4 bfd4 bfd4 bfd4 bfd4 bfd4 bfd4 -4949 bfd5 bfd5 bfd5 * 723f * 8ea1f2bf,f2bf,8ea1f2bfv,f2bfv 8afe e8abbe 8afe 00008afe bfd5 bfd5 bfd5 bfd5 bfd5 bfd5 bfd5 -4950 bfd6 bfd6 bfd6 * 7240 * 8ea1f2c0,f2c0,8ea1f2c0v,f2c0v 8b01 e8ac81 8b01 00008b01 bfd6 bfd6 bfd6 bfd6 bfd6 bfd6 bfd6 -4951 bfd7 bfd7 bfd7 * 7241 * 8ea1f2c1,f2c1,8ea1f2c1v,f2c1v 8b02 e8ac82 8b02 00008b02 bfd7 bfd7 bfd7 bfd7 bfd7 bfd7 bfd7 -4952 bfd8 bfd8 bfd8 * 7242 * 8ea1f2c2,f2c2,8ea1f2c2v,f2c2v 8af7 e8abb7 8af7 00008af7 bfd8 bfd8 bfd8 bfd8 bfd8 bfd8 bfd8 -4953 bfd9 bfd9 bfd9 * 7243 * 8ea1f2c3,f2c3,8ea1f2c3v,f2c3v 8aed e8abad 8aed 00008aed bfd9 bfd9 bfd9 bfd9 bfd9 bfd9 bfd9 -4954 bfda bfda bfda * 7244 * 8ea1f2c4,f2c4,8ea1f2c4v,f2c4v 8af3 e8abb3 8af3 00008af3 bfda bfda bfda bfda bfda bfda bfda -4955 bfdb bfdb bfdb * 7245 * 8ea1f2c5,f2c5,8ea1f2c5v,f2c5v 8af6 e8abb6 8af6 00008af6 bfdb bfdb bfdb bfdb bfdb bfdb bfdb -4956 bfdc bfdc bfdc * 7246 * 8ea1f2c6,f2c6,8ea1f2c6v,f2c6v 8afc e8abbc 8afc 00008afc bfdc bfdc bfdc bfdc bfdc bfdc bfdc -4957 bfdd bfdd bfdd * 7247 * 8ea1f2c7,f2c7,8ea1f2c7v,f2c7v 8c6b e8b1ab 8c6b 00008c6b bfdd bfdd bfdd bfdd bfdd bfdd bfdd -4958 bfde bfde bfde * 7248 * 8ea1f2c8,f2c8,8ea1f2c8v,f2c8v 8c6d e8b1ad 8c6d 00008c6d bfde bfde bfde bfde bfde bfde bfde -4959 bfdf bfdf bfdf * 7249 * 8ea1f2c9,f2c9,8ea1f2c9v,f2c9v 8c93 e8b293 8c93 00008c93 bfdf bfdf bfdf bfdf bfdf bfdf bfdf -4960 bfe0 bfe0 bfe0 * 724a * 8ea1f2ca,f2ca,8ea1f2cav,f2cav 8cf4 e8b3b4 8cf4 00008cf4 bfe0 bfe0 bfe0 bfe0 bfe0 bfe0 bfe0 -4961 bfe1 bfe1 bfe1 * 724b * 8ea1f2cb,f2cb,8ea1f2cbv,f2cbv 8e44 e8b984 8e44 00008e44 bfe1 bfe1 bfe1 bfe1 bfe1 bfe1 bfe1 -4962 bfe2 bfe2 bfe2 * 724c * 8ea1f2cc,f2cc,8ea1f2ccv,f2ccv 8e31 e8b8b1 8e31 00008e31 bfe2 bfe2 bfe2 bfe2 bfe2 bfe2 bfe2 -4963 bfe3 bfe3 bfe3 * 724d * 8ea1f2cd,f2cd,8ea1f2cdv,f2cdv 8e34 e8b8b4 8e34 00008e34 bfe3 bfe3 bfe3 bfe3 bfe3 bfe3 bfe3 -4964 bfe4 bfe4 bfe4 * 724e * 8ea1f2ce,f2ce,8ea1f2cev,f2cev 8e42 e8b982 8e42 00008e42 bfe4 bfe4 bfe4 bfe4 bfe4 bfe4 bfe4 -4965 bfe5 bfe5 bfe5 * 724f * 8ea1f2cf,f2cf,8ea1f2cfv,f2cfv 8e39 e8b8b9 8e39 00008e39 bfe5 bfe5 bfe5 bfe5 bfe5 bfe5 bfe5 -4966 bfe6 bfe6 bfe6 * 7250 * 8ea1f2d0,f2d0,8ea1f2d0v,f2d0v 8e35 e8b8b5 8e35 00008e35 bfe6 bfe6 bfe6 bfe6 bfe6 bfe6 bfe6 -4967 bfe7 bfe7 bfe7 * 7251 * 8ea1f2d1,f2d1,8ea1f2d1v,f2d1v 8f3b e8bcbb 8f3b 00008f3b bfe7 bfe7 bfe7 bfe7 bfe7 bfe7 bfe7 -4968 bfe8 bfe8 bfe8 * 7252 * 8ea1f2d2,f2d2,8ea1f2d2v,f2d2v 8f2f e8bcaf 8f2f 00008f2f bfe8 bfe8 bfe8 bfe8 bfe8 bfe8 bfe8 -4969 bfe9 bfe9 bfe9 * 7253 * 8ea1f2d3,f2d3,8ea1f2d3v,f2d3v 8f38 e8bcb8 8f38 00008f38 bfe9 bfe9 bfe9 bfe9 bfe9 bfe9 bfe9 -4970 bfea bfea bfea * 7254 * 8ea1f2d4,f2d4,8ea1f2d4v,f2d4v 8f33 e8bcb3 8f33 00008f33 bfea bfea bfea bfea bfea bfea bfea -4971 bfeb bfeb bfeb * 7255 * 8ea1f2d5,f2d5,8ea1f2d5v,f2d5v 8fa8 e8bea8 8fa8 00008fa8 bfeb bfeb bfeb bfeb bfeb bfeb bfeb -4972 bfec bfec bfec * 7256 * 8ea1f2d6,f2d6,8ea1f2d6v,f2d6v 8fa6 e8bea6 8fa6 00008fa6 bfec bfec bfec bfec bfec bfec bfec -4973 bfed bfed bfed * 7257 * 8ea1f2d7,f2d7,8ea1f2d7v,f2d7v 9075 e981b5 9075 00009075 bfed bfed bfed bfed bfed bfed bfed -4974 bfee bfee bfee * 7258 * 8ea1f2d8,f2d8,8ea1f2d8v,f2d8v 9074 e981b4 9074 00009074 bfee bfee bfee bfee bfee bfee bfee -4975 bfef bfef bfef * 7259 * 8ea1f2d9,f2d9,8ea1f2d9v,f2d9v 9078 e981b8 9078 00009078 bfef bfef bfef bfef bfef bfef bfef -4976 bff0 bff0 bff0 * 725a * 8ea1f2da,f2da,8ea1f2dav,f2dav 9072 e981b2 9072 00009072 bff0 bff0 bff0 bff0 bff0 bff0 bff0 -4977 bff1 bff1 bff1 * 725b * 8ea1f2db,f2db,8ea1f2dbv,f2dbv 907c e981bc 907c 0000907c bff1 bff1 bff1 bff1 bff1 bff1 bff1 -4978 bff2 bff2 bff2 * 725c * 8ea1f2dc,f2dc,8ea1f2dcv,f2dcv 907a e981ba 907a 0000907a bff2 bff2 bff2 bff2 bff2 bff2 bff2 -4979 bff3 bff3 bff3 * 725d * 8ea1f2dd,f2dd,8ea1f2ddv,f2ddv 9134 e984b4 9134 00009134 bff3 bff3 bff3 bff3 bff3 bff3 bff3 -4980 bff4 bff4 bff4 * 725e * 8ea1f2de,f2de,8ea1f2dev,f2dev 9192 e98692 9192 00009192 bff4 bff4 bff4 bff4 bff4 bff4 bff4 -4981 bff5 bff5 bff5 * 725f * 8ea1f2df,f2df,8ea1f2dfv,f2dfv 9320 e98ca0 9320 00009320 bff5 bff5 bff5 bff5 bff5 bff5 bff5 -4982 bff6 bff6 bff6 * 7260 * 8ea1f2e0,f2e0,8ea1f2e0v,f2e0v 9336 e98cb6 9336 00009336 bff6 bff6 bff6 bff6 bff6 bff6 bff6 -4983 bff7 bff7 bff7 * 7261 * 8ea1f2e1,f2e1,8ea1f2e1v,f2e1v 92f8 e98bb8 92f8 000092f8 bff7 bff7 bff7 bff7 bff7 bff7 bff7 -4984 bff8 bff8 bff8 * 7262 * 8ea1f2e2,f2e2,8ea1f2e2v,f2e2v 9333 e98cb3 9333 00009333 bff8 bff8 bff8 bff8 bff8 bff8 bff8 -4985 bff9 bff9 bff9 * 7263 * 8ea1f2e3,f2e3,8ea1f2e3v,f2e3v 932f e98caf 932f 0000932f bff9 bff9 bff9 bff9 bff9 bff9 bff9 -4986 bffa bffa bffa * 7264 * 8ea1f2e4,f2e4,8ea1f2e4v,f2e4v 9322 e98ca2 9322 00009322 bffa bffa bffa bffa bffa bffa bffa -4987 bffb bffb bffb * 7265 * 8ea1f2e5,f2e5,8ea1f2e5v,f2e5v 92fc e98bbc 92fc 000092fc bffb bffb bffb bffb bffb bffb bffb -4988 bffc bffc bffc * 7266 * 8ea1f2e6,f2e6,8ea1f2e6v,f2e6v 932b e98cab 932b 0000932b bffc bffc bffc bffc bffc bffc bffc -4989 bffd bffd bffd * 7267 * 8ea1f2e7,f2e7,8ea1f2e7v,f2e7v 9304 e98c84 9304 00009304 bffd bffd bffd bffd bffd bffd bffd -4990 bffe bffe bffe * 7268 * 8ea1f2e8,f2e8,8ea1f2e8v,f2e8v 931a e98c9a 931a 0000931a bffe bffe bffe bffe bffe bffe bffe -4991 c040 c040 c040 * 7269 * 8ea1f2e9,f2e9,8ea1f2e9v,f2e9v 9310 e98c90 9310 00009310 c040 c040 c040 c040 c040 c040 c040 -4992 c041 c041 c041 * 726a * 8ea1f2ea,f2ea,8ea1f2eav,f2eav 9326 e98ca6 9326 00009326 c041 c041 c041 c041 c041 c041 c041 -4993 c042 c042 c042 * 726b * 8ea1f2eb,f2eb,8ea1f2ebv,f2ebv 9321 e98ca1 9321 00009321 c042 c042 c042 c042 c042 c042 c042 -4994 c043 c043 c043 * 726c * 8ea1f2ec,f2ec,8ea1f2ecv,f2ecv 9315 e98c95 9315 00009315 c043 c043 c043 c043 c043 c043 c043 -4995 c044 c044 c044 * 726d * 8ea1f2ed,f2ed,8ea1f2edv,f2edv 932e e98cae 932e 0000932e c044 c044 c044 c044 c044 c044 c044 -4996 c045 c045 c045 * 726e * 8ea1f2ee,f2ee,8ea1f2eev,f2eev 9319 e98c99 9319 00009319 c045 c045 c045 c045 c045 c045 c045 -4997 c046 c046 c046 * 726f * 8ea1f2ef,f2ef,8ea1f2efv,f2efv 95bb e996bb 95bb 000095bb c046 c046 c046 c046 c046 c046 c046 -4998 c047 c047 c047 * 7270 * 8ea1f2f0,f2f0,8ea1f2f0v,f2f0v 96a7 e99aa7 96a7 000096a7 c047 c047 c047 c047 c047 c047 c047 -4999 c048 c048 c048 * 7271 * 8ea1f2f1,f2f1,8ea1f2f1v,f2f1v 96a8 e99aa8 96a8 000096a8 c048 c048 c048 c048 c048 c048 c048 -5000 c049 c049 c049 * 7272 * 8ea1f2f2,f2f2,8ea1f2f2v,f2f2v 96aa e99aaa 96aa 000096aa c049 c049 c049 c049 c049 c049 c049 -5001 c04a c04a c04a * 7273 * 8ea1f2f3,f2f3,8ea1f2f3v,f2f3v 96d5 e99b95 96d5 000096d5 c04a c04a c04a c04a c04a c04a c04a -5002 c04b c04b c04b * 7274 * 8ea1f2f4,f2f4,8ea1f2f4v,f2f4v 970e e99c8e 970e 0000970e c04b c04b c04b c04b c04b c04b c04b -5003 c04c c04c c04c * 7275 * 8ea1f2f5,f2f5,8ea1f2f5v,f2f5v 9711 e99c91 9711 00009711 c04c c04c c04c c04c c04c c04c c04c -5004 c04d c04d c04d * 7276 * 8ea1f2f6,f2f6,8ea1f2f6v,f2f6v 9716 e99c96 9716 00009716 c04d c04d c04d c04d c04d c04d c04d -5005 c04e c04e c04e * 7277 * 8ea1f2f7,f2f7,8ea1f2f7v,f2f7v 970d e99c8d 970d 0000970d c04e c04e c04e c04e c04e c04e c04e -5006 c04f c04f c04f * 7278 * 8ea1f2f8,f2f8,8ea1f2f8v,f2f8v 9713 e99c93 9713 00009713 c04f c04f c04f c04f c04f c04f c04f -5007 c050 c050 c050 * 7279 * 8ea1f2f9,f2f9,8ea1f2f9v,f2f9v 970f e99c8f 970f 0000970f c050 c050 c050 c050 c050 c050 c050 -5008 c051 c051 c051 * 727a * 8ea1f2fa,f2fa,8ea1f2fav,f2fav 975b e99d9b 975b 0000975b c051 c051 c051 c051 c051 c051 c051 -5009 c052 c052 c052 * 727b * 8ea1f2fb,f2fb,8ea1f2fbv,f2fbv 975c ee9385,e99d9c e4c5,975c 0000e4c5,0000975c 90dc,c052 c052 c052 c052 c052 c052 90dc,c052 -5010 c053 c053 c053 * 727c * 8ea1f2fc,f2fc,8ea1f2fcv,f2fcv 9766 e99da6 9766 00009766 c053 c053 c053 c053 c053 c053 c053 -5011 c054 c054 c054 * 727d * 8ea1f2fd,f2fd,8ea1f2fdv,f2fdv 9798 e99e98 9798 00009798 c054 c054 c054 c054 c054 c054 c054 -5012 c055 c055 c055 * 727e * 8ea1f2fe,f2fe,8ea1f2fev,f2fev 9830 e9a0b0 9830 00009830 c055 c055 c055 c055 c055 c055 c055 -5013 c056 c056 c056 * 7321 * 8ea1f3a1,f3a1,8ea1f3a1v,f3a1v 9838 e9a0b8 9838 00009838 c056 c056 c056 c056 c056 c056 c056 -5014 c057 c057 c057 * 7322 * 8ea1f3a2,f3a2,8ea1f3a2v,f3a2v 983b e9a0bb 983b 0000983b c057 c057 c057 c057 c057 c057 c057 -5015 c058 c058 c058 * 7323 * 8ea1f3a3,f3a3,8ea1f3a3v,f3a3v 9837 e9a0b7 9837 00009837 c058 c058 c058 c058 c058 c058 c058 -5016 c059 c059 c059 * 7324 * 8ea1f3a4,f3a4,8ea1f3a4v,f3a4v 982d e9a0ad 982d 0000982d c059 c059 c059 c059 c059 c059 c059 -5017 c05a c05a c05a * 7325 * 8ea1f3a5,f3a5,8ea1f3a5v,f3a5v 9839 e9a0b9 9839 00009839 c05a c05a c05a c05a c05a c05a c05a -5018 c05b c05b c05b * 7326 * 8ea1f3a6,f3a6,8ea1f3a6v,f3a6v 9824 e9a0a4 9824 00009824 c05b c05b c05b c05b c05b c05b c05b -5019 c05c c05c c05c * 7327 * 8ea1f3a7,f3a7,8ea1f3a7v,f3a7v 9910 e9a490 9910 00009910 c05c c05c c05c c05c c05c c05c c05c -5020 c05d c05d c05d * 7328 * 8ea1f3a8,f3a8,8ea1f3a8v,f3a8v 9928 e9a4a8 9928 00009928 c05d c05d c05d c05d c05d c05d c05d -5021 c05e c05e c05e * 7329 * 8ea1f3a9,f3a9,8ea1f3a9v,f3a9v 991e e9a49e 991e 0000991e c05e c05e c05e c05e c05e c05e c05e -5022 c05f c05f c05f * 732a * 8ea1f3aa,f3aa,8ea1f3aav,f3aav 991b e9a49b 991b 0000991b c05f c05f c05f c05f c05f c05f c05f -5023 c060 c060 c060 * 732b * 8ea1f3ab,f3ab,8ea1f3abv,f3abv 9921 e9a4a1 9921 00009921 c060 c060 c060 c060 c060 c060 c060 -5024 c061 c061 c061 * 732c * 8ea1f3ac,f3ac,8ea1f3acv,f3acv 991a e9a49a 991a 0000991a c061 c061 c061 c061 c061 c061 c061 -5025 c062 c062 c062 * 732d * 8ea1f3ad,f3ad,8ea1f3adv,f3adv 99ed e9a7ad 99ed 000099ed c062 c062 c062 c062 c062 c062 c062 -5026 c063 c063 c063 * 732e * 8ea1f3ae,f3ae,8ea1f3aev,f3aev 99e2 e9a7a2 99e2 000099e2 c063 c063 c063 c063 c063 c063 c063 -5027 c064 c064 c064 * 732f * 8ea1f3af,f3af,8ea1f3afv,f3afv 99f1 e9a7b1 99f1 000099f1 c064 c064 c064 c064 c064 c064 c064 -5028 c065 c065 c065 * 7330 * 8ea1f3b0,f3b0,8ea1f3b0v,f3b0v 9ab8 e9aab8 9ab8 00009ab8 c065 c065 c065 c065 c065 c065 c065 -5029 c066 c066 c066 * 7331 * 8ea1f3b1,f3b1,8ea1f3b1v,f3b1v 9abc e9aabc 9abc 00009abc c066 c066 c066 c066 c066 c066 c066 -5030 c067 c067 c067 * 7332 * 8ea1f3b2,f3b2,8ea1f3b2v,f3b2v 9afb e9abbb 9afb 00009afb c067 c067 c067 c067 c067 c067 c067 -5031 c068 c068 c068 * 7333 * 8ea1f3b3,f3b3,8ea1f3b3v,f3b3v 9aed e9abad 9aed 00009aed c068 c068 c068 c068 c068 c068 c068 -5032 c069 c069 c069 * 7334 * 8ea1f3b4,f3b4,8ea1f3b4v,f3b4v 9b28 e9aca8 9b28 00009b28 c069 c069 c069 c069 c069 c069 c069 -5033 c06a c06a c06a * 7335 * 8ea1f3b5,f3b5,8ea1f3b5v,f3b5v 9b91 e9ae91 9b91 00009b91 c06a c06a c06a c06a c06a c06a c06a -5034 c06b c06b c06b * 7336 * 8ea1f3b6,f3b6,8ea1f3b6v,f3b6v 9d15 e9b495 9d15 00009d15 c06b c06b c06b c06b c06b c06b c06b -5035 c06c c06c c06c * 7337 * 8ea1f3b7,f3b7,8ea1f3b7v,f3b7v 9d23 e9b4a3 9d23 00009d23 c06c c06c c06c c06c c06c c06c c06c -5036 c06d c06d c06d * 7338 * 8ea1f3b8,f3b8,8ea1f3b8v,f3b8v 9d26 e9b4a6 9d26 00009d26 c06d c06d c06d c06d c06d c06d c06d -5037 c06e c06e c06e * 7339 * 8ea1f3b9,f3b9,8ea1f3b9v,f3b9v 9d28 e9b4a8 9d28 00009d28 c06e c06e c06e c06e c06e c06e c06e -5038 c06f c06f c06f * 733a * 8ea1f3ba,f3ba,8ea1f3bav,f3bav 9d12 e9b492 9d12 00009d12 c06f c06f c06f c06f c06f c06f c06f -5039 c070 c070 c070 * 733b * 8ea1f3bb,f3bb,8ea1f3bbv,f3bbv 9d1b e9b49b 9d1b 00009d1b c070 c070 c070 c070 c070 c070 c070 -5040 c071 c071 c071 * 733c * 8ea1f3bc,f3bc,8ea1f3bcv,f3bcv 9ed8 e9bb98 9ed8 00009ed8 c071 c071 c071 c071 c071 c071 c071 -5041 c072 c072 c072 * 733d * 8ea1f3bd,f3bd,8ea1f3bdv,f3bdv 9ed4 e9bb94 9ed4 00009ed4 c072 c072 c072 c072 c072 c072 c072 -5042 c073 c073 c073 * 2937,733e * 8ea1a9b7,8ea1f3be,a9b7,f3be,8ea1a9b7v,8ea1f3bev,a9b7v,f3bev 9f8d e9be8d,e2bf93 9f8d,2fd3 00009f8d,00002fd3 c073 c073 c073 c073 c073 c073 c073 -5043 c074 c074 c074 * 2938,733f * 8ea1a9b8,8ea1f3bf,a9b8,f3bf,8ea1a9b8v,8ea1f3bfv,a9b8v,f3bfv 9f9c e9be9c,e2bf94 9f9c,2fd4 00009f9c,00002fd4 c074 c074 c074 c074 c074 c074 c074 -5044 c075 c075 c075 * 7340 * 8ea1f3c0,f3c0,8ea1f3c0v,f3c0v 512a e584aa 512a 0000512a c075 c075 c075 c075 c075 c075 c075 -5045 c076 c076 c076 * 7341 * 8ea1f3c1,f3c1,8ea1f3c1v,f3c1v 511f e5849f 511f 0000511f c076 c076 c076 c076 c076 c076 c076 -5046 c077 c077 c077 * 7342 * 8ea1f3c2,f3c2,8ea1f3c2v,f3c2v 5121 e584a1 5121 00005121 c077 c077 c077 c077 c077 c077 c077 -5047 c078 c078 c078 * 7343 * 8ea1f3c3,f3c3,8ea1f3c3v,f3c3v 5132 e584b2 5132 00005132 c078 c078 c078 c078 c078 c078 c078 -5048 c079 c079 c079 * 7344 * 8ea1f3c4,f3c4,8ea1f3c4v,f3c4v 52f5 e58bb5 52f5 000052f5 c079 c079 c079 c079 c079 c079 c079 -5049 c07a c07a c07a * 7345 * 8ea1f3c5,f3c5,8ea1f3c5v,f3c5v 568e e59a8e 568e 0000568e c07a c07a c07a c07a c07a c07a c07a -5050 c07b c07b c07b * 7346 * 8ea1f3c6,f3c6,8ea1f3c6v,f3c6v 5680 e59a80 5680 00005680 c07b c07b c07b c07b c07b c07b c07b -5051 c07c c07c c07c * 7347 * 8ea1f3c7,f3c7,8ea1f3c7v,f3c7v 5690 e59a90 5690 00005690 c07c c07c c07c c07c c07c c07c c07c -5052 c07d c07d c07d * 7348 * 8ea1f3c8,f3c8,8ea1f3c8v,f3c8v 5685 e59a85 5685 00005685 c07d c07d c07d c07d c07d c07d c07d -5053 c07e c07e c07e * 7349 * 8ea1f3c9,f3c9,8ea1f3c9v,f3c9v 5687 e59a87 5687 00005687 c07e c07e c07e c07e c07e c07e c07e -5054 c0a1 c0a1 c0a1 * 734a * 8ea1f3ca,f3ca,8ea1f3cav,f3cav 568f e59a8f 568f 0000568f c0a1 c0a1 c0a1 c0a1 c0a1 c0a1 c0a1 -5055 c0a2 c0a2 c0a2 * 734b * 8ea1f3cb,f3cb,8ea1f3cbv,f3cbv 58d5 e5a395 58d5 000058d5 c0a2 c0a2 c0a2 c0a2 c0a2 c0a2 c0a2 -5056 c0a3 c0a3 c0a3 * 734c * 8ea1f3cc,f3cc,8ea1f3ccv,f3ccv 58d3 e5a393 58d3 000058d3 c0a3 c0a3 c0a3 c0a3 c0a3 c0a3 c0a3 -5057 c0a4 c0a4 c0a4 * 734d * 8ea1f3cd,f3cd,8ea1f3cdv,f3cdv 58d1 e5a391 58d1 000058d1 c0a4 c0a4 c0a4 c0a4 c0a4 c0a4 c0a4 -5058 c0a5 c0a5 c0a5 * 734e * 8ea1f3ce,f3ce,8ea1f3cev,f3cev 58ce e5a38e 58ce 000058ce c0a5 c0a5 c0a5 c0a5 c0a5 c0a5 c0a5 -5059 c0a6 c0a6 c0a6 * 734f * 8ea1f3cf,f3cf,8ea1f3cfv,f3cfv 5b30 e5acb0 5b30 00005b30 c0a6 c0a6 c0a6 c0a6 c0a6 c0a6 c0a6 -5060 c0a7 c0a7 c0a7 * 7350 * 8ea1f3d0,f3d0,8ea1f3d0v,f3d0v 5b2a e5acaa 5b2a 00005b2a c0a7 c0a7 c0a7 c0a7 c0a7 c0a7 c0a7 -5061 c0a8 c0a8 c0a8 * 7351 * 8ea1f3d1,f3d1,8ea1f3d1v,f3d1v 5b24 e5aca4 5b24 00005b24 c0a8 c0a8 c0a8 c0a8 c0a8 c0a8 c0a8 -5062 c0a9 c0a9 c0a9 * 7352 * 8ea1f3d2,f3d2,8ea1f3d2v,f3d2v 5b7a e5adba 5b7a 00005b7a c0a9 c0a9 c0a9 c0a9 c0a9 c0a9 c0a9 -5063 c0aa c0aa c0aa * 7353 * 8ea1f3d3,f3d3,8ea1f3d3v,f3d3v 5c37 e5b0b7 5c37 00005c37 c0aa c0aa c0aa c0aa c0aa c0aa c0aa -5064 c0ab c0ab c0ab * 7354 * 8ea1f3d4,f3d4,8ea1f3d4v,f3d4v 5c68 e5b1a8 5c68 00005c68 c0ab c0ab c0ab c0ab c0ab c0ab c0ab -5065 c0ac c0ac c0ac * 7355 * 8ea1f3d5,f3d5,8ea1f3d5v,f3d5v 5dbc e5b6bc 5dbc 00005dbc c0ac c0ac c0ac c0ac c0ac c0ac c0ac -5066 c0ad c0ad c0ad * 7356 * 8ea1f3d6,f3d6,8ea1f3d6v,f3d6v 5dba e5b6ba 5dba 00005dba c0ad c0ad c0ad c0ad c0ad c0ad c0ad -5067 c0ae c0ae c0ae * 7357 * 8ea1f3d7,f3d7,8ea1f3d7v,f3d7v 5dbd e5b6bd 5dbd 00005dbd c0ae c0ae c0ae c0ae c0ae c0ae c0ae -5068 c0af c0af c0af * 7358 * 8ea1f3d8,f3d8,8ea1f3d8v,f3d8v 5db8 e5b6b8 5db8 00005db8 c0af c0af c0af c0af c0af c0af c0af -5069 c0b0 c0b0 c0b0 * 7359 * 8ea1f3d9,f3d9,8ea1f3d9v,f3d9v 5e6b e5b9ab 5e6b 00005e6b c0b0 c0b0 c0b0 c0b0 c0b0 c0b0 c0b0 -5070 c0b1 c0b1 c0b1 * 735a * 8ea1f3da,f3da,8ea1f3dav,f3dav 5f4c e5bd8c 5f4c 00005f4c c0b1 c0b1 c0b1 c0b1 c0b1 c0b1 c0b1 -5071 c0b2 c0b2 c0b2 * 735b * 8ea1f3db,f3db,8ea1f3dbv,f3dbv 5fbd e5bebd 5fbd 00005fbd c0b2 c0b2 c0b2 c0b2 c0b2 c0b2 c0b2 -5072 c0b3 c0b3 c0b3 * 735c * 8ea1f3dc,f3dc,8ea1f3dcv,f3dcv 61c9 e68789 61c9 000061c9 c0b3 c0b3 c0b3 c0b3 c0b3 c0b3 c0b3 -5073 c0b4 c0b4 c0b4 * 735d * 8ea1f3dd,f3dd,8ea1f3ddv,f3ddv 61c2 e68782 61c2 000061c2 c0b4 c0b4 c0b4 c0b4 c0b4 c0b4 c0b4 -5074 c0b5 c0b5 c0b5 * 735e * 8ea1f3de,f3de,8ea1f3dev,f3dev 61c7 e68787 61c7 000061c7 c0b5 c0b5 c0b5 c0b5 c0b5 c0b5 c0b5 -5075 c0b6 c0b6 c0b6 * 735f * 8ea1f3df,f3df,8ea1f3dfv,f3dfv 61e6 e687a6 61e6 000061e6 c0b6 c0b6 c0b6 c0b6 c0b6 c0b6 c0b6 -5076 c0b7 c0b7 c0b7 * 7360 * 8ea1f3e0,f3e0,8ea1f3e0v,f3e0v 61cb e6878b 61cb 000061cb c0b7 c0b7 c0b7 c0b7 c0b7 c0b7 c0b7 -5077 c0b8 c0b8 c0b8 * 7361 * 8ea1f3e1,f3e1,8ea1f3e1v,f3e1v 6232 e688b2 6232 00006232 c0b8 c0b8 c0b8 c0b8 c0b8 c0b8 c0b8 -5078 c0b9 c0b9 c0b9 * 7362 * 8ea1f3e2,f3e2,8ea1f3e2v,f3e2v 6234 e688b4 6234 00006234 c0b9 c0b9 c0b9 c0b9 c0b9 c0b9 c0b9 -5079 c0ba c0ba c0ba * 7363 * 8ea1f3e3,f3e3,8ea1f3e3v,f3e3v 64ce e6938e 64ce 000064ce c0ba c0ba c0ba c0ba c0ba c0ba c0ba -5080 c0bb c0bb c0bb * 7364 * 8ea1f3e4,f3e4,8ea1f3e4v,f3e4v 64ca e6938a 64ca 000064ca c0bb c0bb c0bb c0bb c0bb c0bb c0bb -5081 c0bc c0bc c0bc * 7365 * 8ea1f3e5,f3e5,8ea1f3e5v,f3e5v 64d8 e69398 64d8 000064d8 c0bc c0bc c0bc c0bc c0bc c0bc c0bc -5082 c0bd c0bd c0bd * 7366 * 8ea1f3e6,f3e6,8ea1f3e6v,f3e6v 64e0 e693a0 64e0 000064e0 c0bd c0bd c0bd c0bd c0bd c0bd c0bd -5083 c0be c0be c0be * 7367 * 8ea1f3e7,f3e7,8ea1f3e7v,f3e7v 64f0 e693b0 64f0 000064f0 c0be c0be c0be c0be c0be c0be c0be -5084 c0bf c0bf c0bf * 7368 * 8ea1f3e8,f3e8,8ea1f3e8v,f3e8v 64e6 e693a6 64e6 000064e6 c0bf c0bf c0bf c0bf c0bf c0bf c0bf -5085 c0c0 c0c0 c0c0 * 7369 * 8ea1f3e9,f3e9,8ea1f3e9v,f3e9v 64ec e693ac 64ec 000064ec c0c0 c0c0 c0c0 c0c0 c0c0 c0c0 c0c0 -5086 c0c1 c0c1 c0c1 * 736a * 8ea1f3ea,f3ea,8ea1f3eav,f3eav 64f1 e693b1 64f1 000064f1 c0c1 c0c1 c0c1 c0c1 c0c1 c0c1 c0c1 -5087 c0c2 c0c2 c0c2 * 736b * 8ea1f3eb,f3eb,8ea1f3ebv,f3ebv 64e2 e693a2 64e2 000064e2 c0c2 c0c2 c0c2 c0c2 c0c2 c0c2 c0c2 -5088 c0c3 c0c3 c0c3 * 736c * 8ea1f3ec,f3ec,8ea1f3ecv,f3ecv 64ed e693ad 64ed 000064ed c0c3 c0c3 c0c3 c0c3 c0c3 c0c3 c0c3 -5089 c0c4 c0c4 c0c4 * 736d * 8ea1f3ed,f3ed,8ea1f3edv,f3edv 6582 e69682 6582 00006582 c0c4 c0c4 c0c4 c0c4 c0c4 c0c4 c0c4 -5090 c0c5 c0c5 c0c5 * 736e * 8ea1f3ee,f3ee,8ea1f3eev,f3eev 6583 e69683 6583 00006583 c0c5 c0c5 c0c5 c0c5 c0c5 c0c5 c0c5 -5091 c0c6 c0c6 c0c6 * 736f * 8ea1f3ef,f3ef,8ea1f3efv,f3efv 66d9 e69b99 66d9 000066d9 c0c6 c0c6 c0c6 c0c6 c0c6 c0c6 c0c6 -5092 c0c7 c0c7 c0c7 * 7370 * 8ea1f3f0,f3f0,8ea1f3f0v,f3f0v 66d6 e69b96 66d6 000066d6 c0c7 c0c7 c0c7 c0c7 c0c7 c0c7 c0c7 -5093 c0c8 c0c8 c0c8 * 7371 * 8ea1f3f1,f3f1,8ea1f3f1v,f3f1v 6a80 e6aa80 6a80 00006a80 c0c8 c0c8 c0c8 c0c8 c0c8 c0c8 c0c8 -5094 c0c9 c0c9 c0c9 * 7372 * 8ea1f3f2,f3f2,8ea1f3f2v,f3f2v 6a94 e6aa94 6a94 00006a94 c0c9 c0c9 c0c9 c0c9 c0c9 c0c9 c0c9 -5095 c0ca c0ca c0ca * 7373 * 8ea1f3f3,f3f3,8ea1f3f3v,f3f3v 6a84 e6aa84 6a84 00006a84 c0ca c0ca c0ca c0ca c0ca c0ca c0ca -5096 c0cb c0cb c0cb * 7374 * 8ea1f3f4,f3f4,8ea1f3f4v,f3f4v 6aa2 e6aaa2 6aa2 00006aa2 c0cb c0cb c0cb c0cb c0cb c0cb c0cb -5097 c0cc c0cc c0cc * 7375 * 8ea1f3f5,f3f5,8ea1f3f5v,f3f5v 6a9c e6aa9c 6a9c 00006a9c c0cc c0cc c0cc c0cc c0cc c0cc c0cc -5098 c0cd c0cd c0cd * 7376 * 8ea1f3f6,f3f6,8ea1f3f6v,f3f6v 6adb e6ab9b 6adb 00006adb c0cd c0cd c0cd c0cd c0cd c0cd c0cd -5099 c0ce c0ce c0ce * 7377 * 8ea1f3f7,f3f7,8ea1f3f7v,f3f7v 6aa3 e6aaa3 6aa3 00006aa3 c0ce c0ce c0ce c0ce c0ce c0ce c0ce -5100 c0cf c0cf c0cf * 7378 * 8ea1f3f8,f3f8,8ea1f3f8v,f3f8v 6a7e e6a9be 6a7e 00006a7e c0cf c0cf c0cf c0cf c0cf c0cf c0cf -5101 c0d0 c0d0 c0d0 * 7379 * 8ea1f3f9,f3f9,8ea1f3f9v,f3f9v 6a97 e6aa97 6a97 00006a97 c0d0 c0d0 c0d0 c0d0 c0d0 c0d0 c0d0 -5102 c0d1 c0d1 c0d1 * 737a * 8ea1f3fa,f3fa,8ea1f3fav,f3fav 6a90 e6aa90 6a90 00006a90 c0d1 c0d1 c0d1 c0d1 c0d1 c0d1 c0d1 -5103 c0d2 c0d2 c0d2 * 737b * 8ea1f3fb,f3fb,8ea1f3fbv,f3fbv 6aa0 e6aaa0 6aa0 00006aa0 c0d2 c0d2 c0d2 c0d2 c0d2 c0d2 c0d2 -5104 c0d3 c0d3 c0d3 * 737c * 8ea1f3fc,f3fc,8ea1f3fcv,f3fcv 6b5c e6ad9c 6b5c 00006b5c c0d3 c0d3 c0d3 c0d3 c0d3 c0d3 c0d3 -5105 c0d4 c0d4 c0d4 * 737d * 8ea1f3fd,f3fd,8ea1f3fdv,f3fdv 6bae e6aeae 6bae 00006bae c0d4 c0d4 c0d4 c0d4 c0d4 c0d4 c0d4 -5106 c0d5 c0d5 c0d5 * 737e * 8ea1f3fe,f3fe,8ea1f3fev,f3fev 6bda e6af9a 6bda 00006bda c0d5 c0d5 c0d5 c0d5 c0d5 c0d5 c0d5 -5107 c0d6 c0d6 c0d6 * 7421 * 8ea1f4a1,f4a1,8ea1f4a1v,f4a1v 6c08 e6b088 6c08 00006c08 c0d6 c0d6 c0d6 c0d6 c0d6 c0d6 c0d6 -5108 c0d7 c0d7 c0d7 * 7422 * 8ea1f4a2,f4a2,8ea1f4a2v,f4a2v 6fd8 e6bf98 6fd8 00006fd8 c0d7 c0d7 c0d7 c0d7 c0d7 c0d7 c0d7 -5109 c0d8 c0d8 c0d8 * 7423 * 8ea1f4a3,f4a3,8ea1f4a3v,f4a3v 6ff1 e6bfb1 6ff1 00006ff1 c0d8 c0d8 c0d8 c0d8 c0d8 c0d8 c0d8 -5110 c0d9 c0d9 c0d9 * 7424 * 8ea1f4a4,f4a4,8ea1f4a4v,f4a4v 6fdf e6bf9f 6fdf 00006fdf c0d9 c0d9 c0d9 c0d9 c0d9 c0d9 c0d9 -5111 c0da c0da c0da * 7425 * 8ea1f4a5,f4a5,8ea1f4a5v,f4a5v 6fe0 e6bfa0 6fe0 00006fe0 c0da c0da c0da c0da c0da c0da c0da -5112 c0db c0db c0db * 7426 * 8ea1f4a6,f4a6,8ea1f4a6v,f4a6v 6fdb e6bf9b 6fdb 00006fdb c0db c0db c0db c0db c0db c0db c0db -5113 c0dc c0dc c0dc * 7427 * 8ea1f4a7,f4a7,8ea1f4a7v,f4a7v 6fe4 e6bfa4 6fe4 00006fe4 c0dc c0dc c0dc c0dc c0dc c0dc c0dc -5114 c0dd c0dd c0dd * 7428 * 8ea1f4a8,f4a8,8ea1f4a8v,f4a8v 6feb e6bfab 6feb 00006feb c0dd c0dd c0dd c0dd c0dd c0dd c0dd -5115 c0de c0de c0de * 7429 * 8ea1f4a9,f4a9,8ea1f4a9v,f4a9v 6fef e6bfaf 6fef 00006fef c0de c0de c0de c0de c0de c0de c0de -5116 c0df c0df c0df * 742a * 8ea1f4aa,f4aa,8ea1f4aav,f4aav 6f80 e6be80 6f80 00006f80 c0df c0df c0df c0df c0df c0df c0df -5117 c0e0 c0e0 c0e0 * 742b * 8ea1f4ab,f4ab,8ea1f4abv,f4abv 6fec e6bfac 6fec 00006fec c0e0 c0e0 c0e0 c0e0 c0e0 c0e0 c0e0 -5118 c0e1 c0e1 c0e1 * 742c * 8ea1f4ac,f4ac,8ea1f4acv,f4acv 6fe1 e6bfa1 6fe1 00006fe1 c0e1 c0e1 c0e1 c0e1 c0e1 c0e1 c0e1 -5119 c0e2 c0e2 c0e2 * 742d * 8ea1f4ad,f4ad,8ea1f4adv,f4adv 6fe9 e6bfa9 6fe9 00006fe9 c0e2 c0e2 c0e2 c0e2 c0e2 c0e2 c0e2 -5120 c0e3 c0e3 c0e3 * 742e * 8ea1f4ae,f4ae,8ea1f4aev,f4aev 6fd5 e6bf95 6fd5 00006fd5 c0e3 c0e3 c0e3 c0e3 c0e3 c0e3 c0e3 -5121 c0e4 c0e4 c0e4 * 742f * 8ea1f4af,f4af,8ea1f4afv,f4afv 6fee e6bfae 6fee 00006fee c0e4 c0e4 c0e4 c0e4 c0e4 c0e4 c0e4 -5122 c0e5 c0e5 c0e5 * 7430 * 8ea1f4b0,f4b0,8ea1f4b0v,f4b0v 6ff0 e6bfb0 6ff0 00006ff0 c0e5 c0e5 c0e5 c0e5 c0e5 c0e5 c0e5 -5123 c0e6 c0e6 c0e6 * 7431 * 8ea1f4b1,f4b1,8ea1f4b1v,f4b1v 71e7 e787a7 71e7 000071e7 c0e6 c0e6 c0e6 c0e6 c0e6 c0e6 c0e6 -5124 c0e7 c0e7 c0e7 * 7432 * 8ea1f4b2,f4b2,8ea1f4b2v,f4b2v 71df e7879f,eeaf89 71df,ebc9 000071df,0000ebc9 9c62,c0e7 c0e7 c0e7 c0e7 c0e7 c0e7 9c62,c0e7 -5125 c0e8 c0e8 c0e8 * 7433 * 8ea1f4b3,f4b3,8ea1f4b3v,f4b3v 71ee e787ae 71ee 000071ee c0e8 c0e8 c0e8 c0e8 c0e8 c0e8 c0e8 -5126 c0e9 c0e9 c0e9 * 7434 * 8ea1f4b4,f4b4,8ea1f4b4v,f4b4v 71e6 e787a6 71e6 000071e6 c0e9 c0e9 c0e9 c0e9 c0e9 c0e9 c0e9 -5127 c0ea c0ea c0ea * 7435 * 8ea1f4b5,f4b5,8ea1f4b5v,f4b5v 71e5 e787a5 71e5 000071e5 c0ea c0ea c0ea c0ea c0ea c0ea c0ea -5128 c0eb c0eb c0eb * 7436 * 8ea1f4b6,f4b6,8ea1f4b6v,f4b6v 71ed e787ad 71ed 000071ed c0eb c0eb c0eb c0eb c0eb c0eb c0eb -5129 c0ec c0ec c0ec * 7437 * 8ea1f4b7,f4b7,8ea1f4b7v,f4b7v 71ec e787ac 71ec 000071ec c0ec c0ec c0ec c0ec c0ec c0ec c0ec -5130 c0ed c0ed c0ed * 7438 * 8ea1f4b8,f4b8,8ea1f4b8v,f4b8v 71f4 e787b4 71f4 000071f4 c0ed c0ed c0ed c0ed c0ed c0ed c0ed -5131 c0ee c0ee c0ee * 7439 * 8ea1f4b9,f4b9,8ea1f4b9v,f4b9v 71e0 e787a0 71e0 000071e0 c0ee c0ee c0ee c0ee c0ee c0ee c0ee -5132 c0ef c0ef c0ef * 743a * 8ea1f4ba,f4ba,8ea1f4bav,f4bav 7235 e788b5 7235 00007235 c0ef c0ef c0ef c0ef c0ef c0ef c0ef -5133 c0f0 c0f0 c0f0 * 743b * 8ea1f4bb,f4bb,8ea1f4bbv,f4bbv 7246 e78986 7246 00007246 c0f0 c0f0 c0f0 c0f0 c0f0 c0f0 c0f0 -5134 c0f1 c0f1 c0f1 * 743c * 8ea1f4bc,f4bc,8ea1f4bcv,f4bcv 7370 e78db0 7370 00007370 c0f1 c0f1 c0f1 c0f1 c0f1 c0f1 c0f1 -5135 c0f2 c0f2 c0f2 * 743d * 8ea1f4bd,f4bd,8ea1f4bdv,f4bdv 7372 e78db2 7372 00007372 c0f2 c0f2 c0f2 c0f2 c0f2 c0f2 c0f2 -5136 c0f3 c0f3 c0f3 * 743e * 8ea1f4be,f4be,8ea1f4bev,f4bev 74a9 e792a9 74a9 000074a9 c0f3 c0f3 c0f3 c0f3 c0f3 c0f3 c0f3 -5137 c0f4 c0f4 c0f4 * 743f * 8ea1f4bf,f4bf,8ea1f4bfv,f4bfv 74b0 e792b0 74b0 000074b0 c0f4 c0f4 c0f4 c0f4 c0f4 c0f4 c0f4 -5138 c0f5 c0f5 c0f5 * 7440 * 8ea1f4c0,f4c0,8ea1f4c0v,f4c0v 74a6 e792a6 74a6 000074a6 c0f5 c0f5 c0f5 c0f5 c0f5 c0f5 c0f5 -5139 c0f6 c0f6 c0f6 * 7441 * 8ea1f4c1,f4c1,8ea1f4c1v,f4c1v 74a8 e792a8 74a8 000074a8 c0f6 c0f6 c0f6 c0f6 c0f6 c0f6 c0f6 -5140 c0f7 c0f7 c0f7 * 7442 * 8ea1f4c2,f4c2,8ea1f4c2v,f4c2v 7646 e79986 7646 00007646 c0f7 c0f7 c0f7 c0f7 c0f7 c0f7 c0f7 -5141 c0f8 c0f8 c0f8 * 7443 * 8ea1f4c3,f4c3,8ea1f4c3v,f4c3v 7642 e79982 7642 00007642 c0f8 c0f8 c0f8 c0f8 c0f8 c0f8 c0f8 -5142 c0f9 c0f9 c0f9 * 7444 * 8ea1f4c4,f4c4,8ea1f4c4v,f4c4v 764c e7998c 764c 0000764c c0f9 c0f9 c0f9 c0f9 c0f9 c0f9 c0f9 -5143 c0fa c0fa c0fa * 7445 * 8ea1f4c5,f4c5,8ea1f4c5v,f4c5v 76ea e79baa 76ea 000076ea c0fa c0fa c0fa c0fa c0fa c0fa c0fa -5144 c0fb c0fb c0fb * 7446 * 8ea1f4c6,f4c6,8ea1f4c6v,f4c6v 77b3 e79eb3 77b3 000077b3 c0fb c0fb c0fb c0fb c0fb c0fb c0fb -5145 c0fc c0fc c0fc * 7447 * 8ea1f4c7,f4c7,8ea1f4c7v,f4c7v 77aa e79eaa 77aa 000077aa c0fc c0fc c0fc c0fc c0fc c0fc c0fc -5146 c0fd c0fd c0fd * 7448 * 8ea1f4c8,f4c8,8ea1f4c8v,f4c8v 77b0 e79eb0 77b0 000077b0 c0fd c0fd c0fd c0fd c0fd c0fd c0fd -5147 c0fe c0fe c0fe * 7449 * 8ea1f4c9,f4c9,8ea1f4c9v,f4c9v 77ac e79eac 77ac 000077ac c0fe c0fe c0fe c0fe c0fe c0fe c0fe -5148 c140 c140 c140 * 744a * 8ea1f4ca,f4ca,8ea1f4cav,f4cav 77a7 e79ea7 77a7 000077a7 c140 c140 c140 c140 c140 c140 c140 -5149 c141 c141 c141 * 744b * 8ea1f4cb,f4cb,8ea1f4cbv,f4cbv 77ad e79ead 77ad 000077ad c141 c141 c141 c141 c141 c141 c141 -5150 c142 c142 c142 * 744c * 8ea1f4cc,f4cc,8ea1f4ccv,f4ccv 77ef e79faf 77ef 000077ef c142 c142 c142 c142 c142 c142 c142 -5151 c143 c143 c143 * 744d * 8ea1f4cd,f4cd,8ea1f4cdv,f4cdv 78f7 e7a3b7 78f7 000078f7 c143 c143 c143 c143 c143 c143 c143 -5152 c144 c144 c144 * 744e * 8ea1f4ce,f4ce,8ea1f4cev,f4cev 78fa e7a3ba 78fa 000078fa c144 c144 c144 c144 c144 c144 c144 -5153 c145 c145 c145 * 744f * 8ea1f4cf,f4cf,8ea1f4cfv,f4cfv 78f4 e7a3b4 78f4 000078f4 c145 c145 c145 c145 c145 c145 c145 -5154 c146 c146 c146 * 7450 * 8ea1f4d0,f4d0,8ea1f4d0v,f4d0v 78ef e7a3af 78ef 000078ef c146 c146 c146 c146 c146 c146 c146 -5155 c147 c147 c147 * 7451 * 8ea1f4d1,f4d1,8ea1f4d1v,f4d1v 7901 e7a481 7901 00007901 c147 c147 c147 c147 c147 c147 c147 -5156 c148 c148 c148 * 7452 * 8ea1f4d2,f4d2,8ea1f4d2v,f4d2v 79a7 e7a6a7 79a7 000079a7 c148 c148 c148 c148 c148 c148 c148 -5157 c149 c149 c149 * 7453 * 8ea1f4d3,f4d3,8ea1f4d3v,f4d3v 79aa e7a6aa 79aa 000079aa c149 c149 c149 c149 c149 c149 c149 -5158 c14a c14a c14a * 7454 * 8ea1f4d4,f4d4,8ea1f4d4v,f4d4v 7a57 e7a997 7a57 00007a57 c14a c14a c14a c14a c14a c14a c14a -5159 c14b c14b c14b * 7455 * 8ea1f4d5,f4d5,8ea1f4d5v,f4d5v 7abf e7aabf 7abf 00007abf c14b c14b c14b c14b c14b c14b c14b -5160 c14c c14c c14c * 7456 * 8ea1f4d6,f4d6,8ea1f4d6v,f4d6v 7c07 e7b087 7c07 00007c07 c14c c14c c14c c14c c14c c14c c14c -5161 c14d c14d c14d * 7457 * 8ea1f4d7,f4d7,8ea1f4d7v,f4d7v 7c0d e7b08d 7c0d 00007c0d c14d c14d c14d c14d c14d c14d c14d -5162 c14e c14e c14e * 7458 * 8ea1f4d8,f4d8,8ea1f4d8v,f4d8v 7bfe e7afbe 7bfe 00007bfe c14e c14e c14e c14e c14e c14e c14e -5163 c14f c14f c14f * 7459 * 8ea1f4d9,f4d9,8ea1f4d9v,f4d9v 7bf7 e7afb7 7bf7 00007bf7 c14f c14f c14f c14f c14f c14f c14f -5164 c150 c150 c150 * 745a * 8ea1f4da,f4da,8ea1f4dav,f4dav 7c0c e7b08c 7c0c 00007c0c c150 c150 c150 c150 c150 c150 c150 -5165 c151 c151 c151 * 745b * 8ea1f4db,f4db,8ea1f4dbv,f4dbv 7be0 e7afa0 7be0 00007be0 c151 c151 c151 c151 c151 c151 c151 -5166 c152 c152 c152 * 745c * 8ea1f4dc,f4dc,8ea1f4dcv,f4dcv 7ce0 e7b3a0 7ce0 00007ce0 c152 c152 c152 c152 c152 c152 c152 -5167 c153 c153 c153 * 745d * 8ea1f4dd,f4dd,8ea1f4ddv,f4ddv 7cdc e7b39c 7cdc 00007cdc c153 c153 c153 c153 c153 c153 c153 -5168 c154 c154 c154 * 745e * 8ea1f4de,f4de,8ea1f4dev,f4dev 7cde e7b39e 7cde 00007cde c154 c154 c154 c154 c154 c154 c154 -5169 c155 c155 c155 * 745f * 8ea1f4df,f4df,8ea1f4dfv,f4dfv 7ce2 e7b3a2 7ce2 00007ce2 c155 c155 c155 c155 c155 c155 c155 -5170 c156 c156 c156 * 7460 * 8ea1f4e0,f4e0,8ea1f4e0v,f4e0v 7cdf e7b39f 7cdf 00007cdf c156 c156 c156 c156 c156 c156 c156 -5171 c157 c157 c157 * 7461 * 8ea1f4e1,f4e1,8ea1f4e1v,f4e1v 7cd9 e7b399 7cd9 00007cd9 c157 c157 c157 c157 c157 c157 c157 -5172 c158 c158 c158 * 7462 * 8ea1f4e2,f4e2,8ea1f4e2v,f4e2v 7cdd e7b39d 7cdd 00007cdd c158 c158 c158 c158 c158 c158 c158 -5173 c159 c159 c159 * 7463 * 8ea1f4e3,f4e3,8ea1f4e3v,f4e3v 7e2e e7b8ae 7e2e 00007e2e c159 c159 c159 c159 c159 c159 c159 -5174 c15a c15a c15a * 7464 * 8ea1f4e4,f4e4,8ea1f4e4v,f4e4v 7e3e e7b8be 7e3e 00007e3e c15a c15a c15a c15a c15a c15a c15a -5175 c15b c15b c15b * 7465 * 8ea1f4e5,f4e5,8ea1f4e5v,f4e5v 7e46 e7b986 7e46 00007e46 c15b c15b c15b c15b c15b c15b c15b -5176 c15c c15c c15c * 7466 * 8ea1f4e6,f4e6,8ea1f4e6v,f4e6v 7e37 e7b8b7 7e37 00007e37 c15c c15c c15c c15c c15c c15c c15c -5177 c15d c15d c15d * 7467 * 8ea1f4e7,f4e7,8ea1f4e7v,f4e7v 7e32 e7b8b2 7e32 00007e32 c15d c15d c15d c15d c15d c15d c15d -5178 c15e c15e c15e * 7468 * 8ea1f4e8,f4e8,8ea1f4e8v,f4e8v 7e43 e7b983 7e43 00007e43 c15e c15e c15e c15e c15e c15e c15e -5179 c15f c15f c15f * 7469 * 8ea1f4e9,f4e9,8ea1f4e9v,f4e9v 7e2b e7b8ab 7e2b 00007e2b c15f c15f c15f c15f c15f c15f c15f -5180 c160 c160 c160 * 746a * 8ea1f4ea,f4ea,8ea1f4eav,f4eav 7e3d e7b8bd 7e3d 00007e3d c160 c160 c160 c160 c160 c160 c160 -5181 c161 c161 c161 * 746b * 8ea1f4eb,f4eb,8ea1f4ebv,f4ebv 7e31 e7b8b1 7e31 00007e31 c161 c161 c161 c161 c161 c161 c161 -5182 c162 c162 c162 * 746c * 8ea1f4ec,f4ec,8ea1f4ecv,f4ecv 7e45 e7b985 7e45 00007e45 c162 c162 c162 c162 c162 c162 c162 -5183 c163 c163 c163 * 746d * 8ea1f4ed,f4ed,8ea1f4edv,f4edv 7e41 e7b981 7e41 00007e41 c163 c163 c163 c163 c163 c163 c163 -5184 c164 c164 c164 * 746e * 8ea1f4ee,f4ee,8ea1f4eev,f4eev 7e34 e7b8b4 7e34 00007e34 c164 c164 c164 c164 c164 c164 c164 -5185 c165 c165 c165 * 746f * 8ea1f4ef,f4ef,8ea1f4efv,f4efv 7e39 e7b8b9 7e39 00007e39 c165 c165 c165 c165 c165 c165 c165 -5186 c166 c166 c166 * 7470 * 8ea1f4f0,f4f0,8ea1f4f0v,f4f0v 7e48 e7b988 7e48 00007e48 c166 c166 c166 c166 c166 c166 c166 -5187 c167 c167 c167 * 7471 * 8ea1f4f1,f4f1,8ea1f4f1v,f4f1v 7e35 e7b8b5 7e35 00007e35 c167 c167 c167 c167 c167 c167 c167 -5188 c168 c168 c168 * 7472 * 8ea1f4f2,f4f2,8ea1f4f2v,f4f2v 7e3f e7b8bf 7e3f 00007e3f c168 c168 c168 c168 c168 c168 c168 -5189 c169 c169 c169 * 7473 * 8ea1f4f3,f4f3,8ea1f4f3v,f4f3v 7e2f e7b8af 7e2f 00007e2f c169 c169 c169 c169 c169 c169 c169 -5190 c16a c16a c16a * 7474 * 8ea1f4f4,f4f4,8ea1f4f4v,f4f4v 7f44 e7bd84 7f44 00007f44 c16a c16a c16a c16a c16a c16a c16a -5191 c16b c16b c16b * 7475 * 8ea1f4f5,f4f5,8ea1f4f5v,f4f5v 7ff3 e7bfb3 7ff3 00007ff3 c16b c16b c16b c16b c16b c16b c16b -5192 c16c c16c c16c * 7476 * 8ea1f4f6,f4f6,8ea1f4f6v,f4f6v 7ffc e7bfbc 7ffc 00007ffc c16c c16c c16c c16c c16c c16c c16c -5193 c16d c16d c16d * 7477 * 8ea1f4f7,f4f7,8ea1f4f7v,f4f7v 8071 e881b1 8071 00008071 c16d c16d c16d c16d c16d c16d c16d -5194 c16e c16e c16e * 7478 * 8ea1f4f8,f4f8,8ea1f4f8v,f4f8v 8072 e881b2 8072 00008072 c16e c16e c16e c16e c16e c16e c16e -5195 c16f c16f c16f * 7479 * 8ea1f4f9,f4f9,8ea1f4f9v,f4f9v 8070 e881b0 8070 00008070 c16f c16f c16f c16f c16f c16f c16f -5196 c170 c170 c170 * 747a * 8ea1f4fa,f4fa,8ea1f4fav,f4fav 806f e881af 806f 0000806f c170 c170 c170 c170 c170 c170 c170 -5197 c171 c171 c171 * 747b * 8ea1f4fb,f4fb,8ea1f4fbv,f4fbv 8073 e881b3 8073 00008073 c171 c171 c171 c171 c171 c171 c171 -5198 c172 c172 c172 * 747c * 8ea1f4fc,f4fc,8ea1f4fcv,f4fcv 81c6 e88786 81c6 000081c6 c172 c172 c172 c172 c172 c172 c172 -5199 c173 c173 c173 * 747d * 8ea1f4fd,f4fd,8ea1f4fdv,f4fdv 81c3 e88783 81c3 000081c3 c173 c173 c173 c173 c173 c173 c173 -5200 c174 c174 c174 * 747e * 8ea1f4fe,f4fe,8ea1f4fev,f4fev 81ba e886ba 81ba 000081ba c174 c174 c174 c174 c174 c174 c174 -5201 c175 c175 c175 * 7521 * 8ea1f5a1,f5a1,8ea1f5a1v,f5a1v 81c2 e88782 81c2 000081c2 c175 c175 c175 c175 c175 c175 c175 -5202 c176 c176 c176 * 7522 * 8ea1f5a2,f5a2,8ea1f5a2v,f5a2v 81c0 e88780 81c0 000081c0 c176 c176 c176 c176 c176 c176 c176 -5203 c177 c177 c177 * 7523 * 8ea1f5a3,f5a3,8ea1f5a3v,f5a3v 81bf e886bf 81bf 000081bf c177 c177 c177 c177 c177 c177 c177 -5204 c178 c178 c178 * 7524 * 8ea1f5a4,f5a4,8ea1f5a4v,f5a4v 81bd e886bd 81bd 000081bd c178 c178 c178 c178 c178 c178 c178 -5205 c179 c179 c179 * 7525 * 8ea1f5a5,f5a5,8ea1f5a5v,f5a5v 81c9 e88789 81c9 000081c9 c179 c179 c179 c179 c179 c179 c179 -5206 c17a c17a c17a * 7526 * 8ea1f5a6,f5a6,8ea1f5a6v,f5a6v 81be e886be 81be 000081be c17a c17a c17a c17a c17a c17a c17a -5207 c17b c17b c17b * 7527 * 8ea1f5a7,f5a7,8ea1f5a7v,f5a7v 81e8 e887a8 81e8 000081e8 c17b c17b c17b c17b c17b c17b c17b -5208 c17c c17c c17c * 7528 * 8ea1f5a8,f5a8,8ea1f5a8v,f5a8v 8209 e88889 8209 00008209 c17c c17c c17c c17c c17c c17c c17c -5209 c17d c17d c17d * 7529 * 8ea1f5a9,f5a9,8ea1f5a9v,f5a9v 8271 e889b1 8271 00008271 c17d c17d c17d c17d c17d c17d c17d -5210 c17e c17e c17e * 752a * 8ea1f5aa,f5aa,8ea1f5aav,f5aav 85aa e896aa 85aa 000085aa c17e c17e c17e c17e c17e c17e c17e -5211 c1a1 c1a1 c1a1 * 752b * 8ea1f5ab,f5ab,8ea1f5abv,f5abv 8584 e89684 8584 00008584 c1a1 c1a1 c1a1 c1a1 c1a1 c1a1 c1a1 -5212 c1a2 c1a2 c1a2 * 752c * 8ea1f5ac,f5ac,8ea1f5acv,f5acv 857e e895be 857e 0000857e c1a2 c1a2 c1a2 c1a2 c1a2 c1a2 c1a2 -5213 c1a3 c1a3 c1a3 * 752d * 8ea1f5ad,f5ad,8ea1f5adv,f5adv 859c e8969c 859c 0000859c c1a3 c1a3 c1a3 c1a3 c1a3 c1a3 c1a3 -5214 c1a4 c1a4 c1a4 * 752e * 8ea1f5ae,f5ae,8ea1f5aev,f5aev 8591 e89691 8591 00008591 c1a4 c1a4 c1a4 c1a4 c1a4 c1a4 c1a4 -5215 c1a5 c1a5 c1a5 * 752f * 8ea1f5af,f5af,8ea1f5afv,f5afv 8594 e89694 8594 00008594 c1a5 c1a5 c1a5 c1a5 c1a5 c1a5 c1a5 -5216 c1a6 c1a6 c1a6 * 7530 * 8ea1f5b0,f5b0,8ea1f5b0v,f5b0v 85af e896af 85af 000085af c1a6 c1a6 c1a6 c1a6 c1a6 c1a6 c1a6 -5217 c1a7 c1a7 c1a7 * 7531 * 8ea1f5b1,f5b1,8ea1f5b1v,f5b1v 859b e8969b 859b 0000859b c1a7 c1a7 c1a7 c1a7 c1a7 c1a7 c1a7 -5218 c1a8 c1a8 c1a8 * 7532 * 8ea1f5b2,f5b2,8ea1f5b2v,f5b2v 8587 e89687 8587 00008587 c1a8 c1a8 c1a8 c1a8 c1a8 c1a8 c1a8 -5219 c1a9 c1a9 c1a9 * 7533 * 8ea1f5b3,f5b3,8ea1f5b3v,f5b3v 85a8 e896a8 85a8 000085a8 c1a9 c1a9 c1a9 c1a9 c1a9 c1a9 c1a9 -5220 c1aa c1aa c1aa * 7534 * 8ea1f5b4,f5b4,8ea1f5b4v,f5b4v 858a e8968a 858a 0000858a c1aa c1aa c1aa c1aa c1aa c1aa c1aa -5221 c2cb c2cb c2cb * 7535 * 8ea1f5b5,f5b5,8ea1f5b5v,f5b5v 85a6 e896a6 85a6 000085a6 c2cb c2cb c2cb c2cb c2cb c2cb c2cb -5222 c1ab c1ab c1ab * 7536 * 8ea1f5b6,f5b6,8ea1f5b6v,f5b6v 8667 e899a7 8667 00008667 c1ab c1ab c1ab c1ab c1ab c1ab c1ab -5223 c1ac c1ac c1ac * 7537 * 8ea1f5b7,f5b7,8ea1f5b7v,f5b7v 87c0 e89f80 87c0 000087c0 c1ac c1ac c1ac c1ac c1ac c1ac c1ac -5224 c1ad c1ad c1ad * 7538 * 8ea1f5b8,f5b8,8ea1f5b8v,f5b8v 87d1 e89f91 87d1 000087d1 c1ad c1ad c1ad c1ad c1ad c1ad c1ad -5225 c1ae c1ae c1ae * 7539 * 8ea1f5b9,f5b9,8ea1f5b9v,f5b9v 87b3 e89eb3 87b3 000087b3 c1ae c1ae c1ae c1ae c1ae c1ae c1ae -5226 c1af c1af c1af * 753a * 8ea1f5ba,f5ba,8ea1f5bav,f5bav 87d2 e89f92 87d2 000087d2 c1af c1af c1af c1af c1af c1af c1af -5227 c1b0 c1b0 c1b0 * 753b * 8ea1f5bb,f5bb,8ea1f5bbv,f5bbv 87c6 e89f86 87c6 000087c6 c1b0 c1b0 c1b0 c1b0 c1b0 c1b0 c1b0 -5228 c1b1 c1b1 c1b1 * 753c * 8ea1f5bc,f5bc,8ea1f5bcv,f5bcv 87ab e89eab 87ab 000087ab c1b1 c1b1 c1b1 c1b1 c1b1 c1b1 c1b1 -5229 c1b2 c1b2 c1b2 * 753d * 8ea1f5bd,f5bd,8ea1f5bdv,f5bdv 87bb e89ebb 87bb 000087bb c1b2 c1b2 c1b2 c1b2 c1b2 c1b2 c1b2 -5230 c1b3 c1b3 c1b3 * 753e * 8ea1f5be,f5be,8ea1f5bev,f5bev 87ba e89eba 87ba 000087ba c1b3 c1b3 c1b3 c1b3 c1b3 c1b3 c1b3 -5231 c1b4 c1b4 c1b4 * 753f * 8ea1f5bf,f5bf,8ea1f5bfv,f5bfv 87c8 e89f88 87c8 000087c8 c1b4 c1b4 c1b4 c1b4 c1b4 c1b4 c1b4 -5232 c1b5 c1b5 c1b5 * 7540 * 8ea1f5c0,f5c0,8ea1f5c0v,f5c0v 87cb e89f8b 87cb 000087cb c1b5 c1b5 c1b5 c1b5 c1b5 c1b5 c1b5 -5233 c1b6 c1b6 c1b6 * 7541 * 8ea1f5c1,f5c1,8ea1f5c1v,f5c1v 893b e8a4bb 893b 0000893b c1b6 c1b6 c1b6 c1b6 c1b6 c1b6 c1b6 -5234 c1b7 c1b7 c1b7 * 7542 * 8ea1f5c2,f5c2,8ea1f5c2v,f5c2v 8936 e8a4b6 8936 00008936 c1b7 c1b7 c1b7 c1b7 c1b7 c1b7 c1b7 -5235 c1b8 c1b8 c1b8 * 7543 * 8ea1f5c3,f5c3,8ea1f5c3v,f5c3v 8944 e8a584 8944 00008944 c1b8 c1b8 c1b8 c1b8 c1b8 c1b8 c1b8 -5236 c1b9 c1b9 c1b9 * 7544 * 8ea1f5c4,f5c4,8ea1f5c4v,f5c4v 8938 e8a4b8 8938 00008938 c1b9 c1b9 c1b9 c1b9 c1b9 c1b9 c1b9 -5237 c1ba c1ba c1ba * 7545 * 8ea1f5c5,f5c5,8ea1f5c5v,f5c5v 893d e8a4bd 893d 0000893d c1ba c1ba c1ba c1ba c1ba c1ba c1ba -5238 c1bb c1bb c1bb * 7546 * 8ea1f5c6,f5c6,8ea1f5c6v,f5c6v 89ac e8a6ac 89ac 000089ac c1bb c1bb c1bb c1bb c1bb c1bb c1bb -5239 c1bc c1bc c1bc * 7547 * 8ea1f5c7,f5c7,8ea1f5c7v,f5c7v 8b0e e8ac8e 8b0e 00008b0e c1bc c1bc c1bc c1bc c1bc c1bc c1bc -5240 c1bd c1bd c1bd * 7548 * 8ea1f5c8,f5c8,8ea1f5c8v,f5c8v 8b17 e8ac97 8b17 00008b17 c1bd c1bd c1bd c1bd c1bd c1bd c1bd -5241 c1be c1be c1be * 7549 * 8ea1f5c9,f5c9,8ea1f5c9v,f5c9v 8b19 e8ac99 8b19 00008b19 c1be c1be c1be c1be c1be c1be c1be -5242 c1bf c1bf c1bf * 754a * 8ea1f5ca,f5ca,8ea1f5cav,f5cav 8b1b e8ac9b 8b1b 00008b1b c1bf c1bf c1bf c1bf c1bf c1bf c1bf -5243 c1c0 c1c0 c1c0 * 754b * 8ea1f5cb,f5cb,8ea1f5cbv,f5cbv 8b0a e8ac8a 8b0a 00008b0a c1c0 c1c0 c1c0 c1c0 c1c0 c1c0 c1c0 -5244 c1c1 c1c1 c1c1 * 754c * 8ea1f5cc,f5cc,8ea1f5ccv,f5ccv 8b20 e8aca0 8b20 00008b20 c1c1 c1c1 c1c1 c1c1 c1c1 c1c1 c1c1 -5245 c1c2 c1c2 c1c2 * 754d * 8ea1f5cd,f5cd,8ea1f5cdv,f5cdv 8b1d e8ac9d 8b1d 00008b1d c1c2 c1c2 c1c2 c1c2 c1c2 c1c2 c1c2 -5246 c1c3 c1c3 c1c3 * 754e * 8ea1f5ce,f5ce,8ea1f5cev,f5cev 8b04 e8ac84 8b04 00008b04 c1c3 c1c3 c1c3 c1c3 c1c3 c1c3 c1c3 -5247 c1c4 c1c4 c1c4 * 754f * 8ea1f5cf,f5cf,8ea1f5cfv,f5cfv 8b10 e8ac90 8b10 00008b10 c1c4 c1c4 c1c4 c1c4 c1c4 c1c4 c1c4 -5248 c1c5 c1c5 c1c5 * 7550 * 8ea1f5d0,f5d0,8ea1f5d0v,f5d0v 8c41 e8b181 8c41 00008c41 c1c5 c1c5 c1c5 c1c5 c1c5 c1c5 c1c5 -5249 c1c6 c1c6 c1c6 * 7551 * 8ea1f5d1,f5d1,8ea1f5d1v,f5d1v 8c3f e8b0bf 8c3f 00008c3f c1c6 c1c6 c1c6 c1c6 c1c6 c1c6 c1c6 -5250 c1c7 c1c7 c1c7 * 7552 * 8ea1f5d2,f5d2,8ea1f5d2v,f5d2v 8c73 e8b1b3 8c73 00008c73 c1c7 c1c7 c1c7 c1c7 c1c7 c1c7 c1c7 -5251 c1c8 c1c8 c1c8 * 7553 * 8ea1f5d3,f5d3,8ea1f5d3v,f5d3v 8cfa e8b3ba 8cfa 00008cfa c1c8 c1c8 c1c8 c1c8 c1c8 c1c8 c1c8 -5252 c1c9 c1c9 c1c9 * 7554 * 8ea1f5d4,f5d4,8ea1f5d4v,f5d4v 8cfd e8b3bd 8cfd 00008cfd c1c9 c1c9 c1c9 c1c9 c1c9 c1c9 c1c9 -5253 c1ca c1ca c1ca * 7555 * 8ea1f5d5,f5d5,8ea1f5d5v,f5d5v 8cfc e8b3bc 8cfc 00008cfc c1ca c1ca c1ca c1ca c1ca c1ca c1ca -5254 c1cb c1cb c1cb * 7556 * 8ea1f5d6,f5d6,8ea1f5d6v,f5d6v 8cf8 e8b3b8 8cf8 00008cf8 c1cb c1cb c1cb c1cb c1cb c1cb c1cb -5255 c1cc c1cc c1cc * 7557 * 8ea1f5d7,f5d7,8ea1f5d7v,f5d7v 8cfb e8b3bb 8cfb 00008cfb c1cc c1cc c1cc c1cc c1cc c1cc c1cc -5256 c1cd c1cd c1cd * 7558 * 8ea1f5d8,f5d8,8ea1f5d8v,f5d8v 8da8 e8b6a8 8da8 00008da8 c1cd c1cd c1cd c1cd c1cd c1cd c1cd -5257 c1ce c1ce c1ce * 7559 * 8ea1f5d9,f5d9,8ea1f5d9v,f5d9v 8e49 e8b989 8e49 00008e49 c1ce c1ce c1ce c1ce c1ce c1ce c1ce -5258 c1cf c1cf c1cf * 755a * 8ea1f5da,f5da,8ea1f5dav,f5dav 8e4b e8b98b 8e4b 00008e4b c1cf c1cf c1cf c1cf c1cf c1cf c1cf -5259 c1d0 c1d0 c1d0 * 755b * 8ea1f5db,f5db,8ea1f5dbv,f5dbv 8e48 e8b988 8e48 00008e48 c1d0 c1d0 c1d0 c1d0 c1d0 c1d0 c1d0 -5260 c1d1 c1d1 c1d1 * 755c * 8ea1f5dc,f5dc,8ea1f5dcv,f5dcv 8e4a e8b98a 8e4a 00008e4a c1d1 c1d1 c1d1 c1d1 c1d1 c1d1 c1d1 -5261 c1d2 c1d2 c1d2 * 755d * 8ea1f5dd,f5dd,8ea1f5ddv,f5ddv 8f44 e8bd84 8f44 00008f44 c1d2 c1d2 c1d2 c1d2 c1d2 c1d2 c1d2 -5262 c1d3 c1d3 c1d3 * 755e * 8ea1f5de,f5de,8ea1f5dev,f5dev 8f3e e8bcbe 8f3e 00008f3e c1d3 c1d3 c1d3 c1d3 c1d3 c1d3 c1d3 -5263 c1d4 c1d4 c1d4 * 755f * 8ea1f5df,f5df,8ea1f5dfv,f5dfv 8f42 e8bd82 8f42 00008f42 c1d4 c1d4 c1d4 c1d4 c1d4 c1d4 c1d4 -5264 c1d5 c1d5 c1d5 * 7560 * 8ea1f5e0,f5e0,8ea1f5e0v,f5e0v 8f45 e8bd85 8f45 00008f45 c1d5 c1d5 c1d5 c1d5 c1d5 c1d5 c1d5 -5265 c1d6 c1d6 c1d6 * 7561 * 8ea1f5e1,f5e1,8ea1f5e1v,f5e1v 8f3f e8bcbf 8f3f 00008f3f c1d6 c1d6 c1d6 c1d6 c1d6 c1d6 c1d6 -5266 c1d7 c1d7 c1d7 * 7562 * 8ea1f5e2,f5e2,8ea1f5e2v,f5e2v 907f e981bf 907f 0000907f c1d7 c1d7 c1d7 c1d7 c1d7 c1d7 c1d7 -5267 c1d8 c1d8 c1d8 * 7563 * 8ea1f5e3,f5e3,8ea1f5e3v,f5e3v 907d e981bd 907d 0000907d c1d8 c1d8 c1d8 c1d8 c1d8 c1d8 c1d8 -5268 c1d9 c1d9 c1d9 * 7564 * 8ea1f5e4,f5e4,8ea1f5e4v,f5e4v 9084 e98284 9084 00009084 c1d9 c1d9 c1d9 c1d9 c1d9 c1d9 c1d9 -5269 c1da c1da c1da * 7565 * 8ea1f5e5,f5e5,8ea1f5e5v,f5e5v 9081 e98281 9081 00009081 c1da c1da c1da c1da c1da c1da c1da -5270 c1db c1db c1db * 7566 * 8ea1f5e6,f5e6,8ea1f5e6v,f5e6v 9082 e98282 9082 00009082 c1db c1db c1db c1db c1db c1db c1db -5271 c1dc c1dc c1dc * 7567 * 8ea1f5e7,f5e7,8ea1f5e7v,f5e7v 9080 e98280 9080 00009080 c1dc c1dc c1dc c1dc c1dc c1dc c1dc -5272 c1dd c1dd c1dd * 7568 * 8ea1f5e8,f5e8,8ea1f5e8v,f5e8v 9139 e984b9 9139 00009139 c1dd c1dd c1dd c1dd c1dd c1dd c1dd -5273 c1de c1de c1de * 7569 * 8ea1f5e9,f5e9,8ea1f5e9v,f5e9v 91a3 e986a3 91a3 000091a3 c1de c1de c1de c1de c1de c1de c1de -5274 c1df c1df c1df * 756a * 8ea1f5ea,f5ea,8ea1f5eav,f5eav 919e e9869e 919e 0000919e c1df c1df c1df c1df c1df c1df c1df -5275 c1e0 c1e0 c1e0 * 756b * 8ea1f5eb,f5eb,8ea1f5ebv,f5ebv 919c e9869c 919c 0000919c c1e0 c1e0 c1e0 c1e0 c1e0 c1e0 c1e0 -5276 c1e1 c1e1 c1e1 * 756c * 8ea1f5ec,f5ec,8ea1f5ecv,f5ecv 934d e98d8d 934d 0000934d c1e1 c1e1 c1e1 c1e1 c1e1 c1e1 c1e1 -5277 c1e2 c1e2 c1e2 * 756d * 8ea1f5ed,f5ed,8ea1f5edv,f5edv 9382 e98e82 9382 00009382 c1e2 c1e2 c1e2 c1e2 c1e2 c1e2 c1e2 -5278 c1e3 c1e3 c1e3 * 756e * 8ea1f5ee,f5ee,8ea1f5eev,f5eev 9328 e98ca8 9328 00009328 c1e3 c1e3 c1e3 c1e3 c1e3 c1e3 c1e3 -5279 c1e4 c1e4 c1e4 * 756f * 8ea1f5ef,f5ef,8ea1f5efv,f5efv 9375 e98db5 9375 00009375 c1e4 c1e4 c1e4 c1e4 c1e4 c1e4 c1e4 -5280 c1e5 c1e5 c1e5 * 7570 * 8ea1f5f0,f5f0,8ea1f5f0v,f5f0v 934a e98d8a 934a 0000934a c1e5 c1e5 c1e5 c1e5 c1e5 c1e5 c1e5 -5281 c1e6 c1e6 c1e6 * 7571 * 8ea1f5f1,f5f1,8ea1f5f1v,f5f1v 9365 e98da5 9365 00009365 c1e6 c1e6 c1e6 c1e6 c1e6 c1e6 c1e6 -5282 c1e7 c1e7 c1e7 * 7572 * 8ea1f5f2,f5f2,8ea1f5f2v,f5f2v 934b e98d8b 934b 0000934b c1e7 c1e7 c1e7 c1e7 c1e7 c1e7 c1e7 -5283 c1e8 c1e8 c1e8 * 7573 * 8ea1f5f3,f5f3,8ea1f5f3v,f5f3v 9318 e98c98 9318 00009318 c1e8 c1e8 c1e8 c1e8 c1e8 c1e8 c1e8 -5284 c1e9 c1e9 c1e9 * 7574 * 8ea1f5f4,f5f4,8ea1f5f4v,f5f4v 937e e98dbe 937e 0000937e c1e9 c1e9 c1e9 c1e9 c1e9 c1e9 c1e9 -5285 c1ea c1ea c1ea * 7575 * 8ea1f5f5,f5f5,8ea1f5f5v,f5f5v 936c e98dac 936c 0000936c c1ea c1ea c1ea c1ea c1ea c1ea c1ea -5286 c1eb c1eb c1eb * 7576 * 8ea1f5f6,f5f6,8ea1f5f6v,f5f6v 935b e98d9b 935b 0000935b c1eb c1eb c1eb c1eb c1eb c1eb c1eb -5287 c1ec c1ec c1ec * 7577 * 8ea1f5f7,f5f7,8ea1f5f7v,f5f7v 9370 e98db0 9370 00009370 c1ec c1ec c1ec c1ec c1ec c1ec c1ec -5288 c1ed c1ed c1ed * 7578 * 8ea1f5f8,f5f8,8ea1f5f8v,f5f8v 935a e98d9a 935a 0000935a c1ed c1ed c1ed c1ed c1ed c1ed c1ed -5289 c1ee c1ee c1ee * 7579 * 8ea1f5f9,f5f9,8ea1f5f9v,f5f9v 9354 e98d94 9354 00009354 c1ee c1ee c1ee c1ee c1ee c1ee c1ee -5290 c1ef c1ef c1ef * 757a * 8ea1f5fa,f5fa,8ea1f5fav,f5fav 95ca e9978a 95ca 000095ca c1ef c1ef c1ef c1ef c1ef c1ef c1ef -5291 c1f0 c1f0 c1f0 * 757b * 8ea1f5fb,f5fb,8ea1f5fbv,f5fbv 95cb e9978b 95cb 000095cb c1f0 c1f0 c1f0 c1f0 c1f0 c1f0 c1f0 -5292 c1f1 c1f1 c1f1 * 757c * 8ea1f5fc,f5fc,8ea1f5fcv,f5fcv 95cc e9978c 95cc 000095cc c1f1 c1f1 c1f1 c1f1 c1f1 c1f1 c1f1 -5293 c1f2 c1f2 c1f2 * 757d * 8ea1f5fd,f5fd,8ea1f5fdv,f5fdv 95c8 e99788 95c8 000095c8 c1f2 c1f2 c1f2 c1f2 c1f2 c1f2 c1f2 -5294 c1f3 c1f3 c1f3 * 757e * 8ea1f5fe,f5fe,8ea1f5fev,f5fev 95c6 e99786 95c6 000095c6 c1f3 c1f3 c1f3 c1f3 c1f3 c1f3 c1f3 -5295 c1f4 c1f4 c1f4 * 7621 * 8ea1f6a1,f6a1,8ea1f6a1v,f6a1v 96b1 e99ab1 96b1 000096b1 c1f4 c1f4 c1f4 c1f4 c1f4 c1f4 c1f4 -5296 c1f5 c1f5 c1f5 * 7622 * 8ea1f6a2,f6a2,8ea1f6a2v,f6a2v 96b8 e99ab8 96b8 000096b8 c1f5 c1f5 c1f5 c1f5 c1f5 c1f5 c1f5 -5297 c1f6 c1f6 c1f6 * 7623 * 8ea1f6a3,f6a3,8ea1f6a3v,f6a3v 96d6 e99b96 96d6 000096d6 c1f6 c1f6 c1f6 c1f6 c1f6 c1f6 c1f6 -5298 c1f7 c1f7 c1f7 * 7624 * 8ea1f6a4,f6a4,8ea1f6a4v,f6a4v 971c e99c9c 971c 0000971c c1f7 c1f7 c1f7 c1f7 c1f7 c1f7 c1f7 -5299 c1f8 c1f8 c1f8 * 7625 * 8ea1f6a5,f6a5,8ea1f6a5v,f6a5v 971e e99c9e 971e 0000971e c1f8 c1f8 c1f8 c1f8 c1f8 c1f8 c1f8 -5300 c1f9 c1f9 c1f9 * 7626 * 8ea1f6a6,f6a6,8ea1f6a6v,f6a6v 97a0 e99ea0 97a0 000097a0 c1f9 c1f9 c1f9 c1f9 c1f9 c1f9 c1f9 -5301 c1fa c1fa c1fa * 7627 * 8ea1f6a7,f6a7,8ea1f6a7v,f6a7v 97d3 e99f93 97d3 000097d3 c1fa c1fa c1fa c1fa c1fa c1fa c1fa -5302 c1fb c1fb c1fb * 7628 * 8ea1f6a8,f6a8,8ea1f6a8v,f6a8v 9846 e9a186 9846 00009846 c1fb c1fb c1fb c1fb c1fb c1fb c1fb -5303 c1fc c1fc c1fc * 7629 * 8ea1f6a9,f6a9,8ea1f6a9v,f6a9v 98b6 e9a2b6 98b6 000098b6 c1fc c1fc c1fc c1fc c1fc c1fc c1fc -5304 c1fd c1fd c1fd * 762a * 8ea1f6aa,f6aa,8ea1f6aav,f6aav 9935 e9a4b5 9935 00009935 c1fd c1fd c1fd c1fd c1fd c1fd c1fd -5305 c1fe c1fe c1fe * 762b * 8ea1f6ab,f6ab,8ea1f6abv,f6abv 9a01 e9a881 9a01 00009a01 c1fe c1fe c1fe c1fe c1fe c1fe c1fe -5306 c240 c240 c240 * 762c * 8ea1f6ac,f6ac,8ea1f6acv,f6acv 99ff e9a7bf 99ff 000099ff c240 c240 c240 c240 c240 c240 c240 -5307 c241 c241 c241 * 762d * 8ea1f6ad,f6ad,8ea1f6adv,f6adv 9bae e9aeae 9bae 00009bae c241 c241 c241 c241 c241 c241 c241 -5308 c242 c242 c242 * 762e * 8ea1f6ae,f6ae,8ea1f6aev,f6aev 9bab e9aeab 9bab 00009bab c242 c242 c242 c242 c242 c242 c242 -5309 c243 c243 c243 * 762f * 8ea1f6af,f6af,8ea1f6afv,f6afv 9baa e9aeaa 9baa 00009baa c243 c243 c243 c243 c243 c243 c243 -5310 c244 c244 c244 * 7630 * 8ea1f6b0,f6b0,8ea1f6b0v,f6b0v 9bad e9aead 9bad 00009bad c244 c244 c244 c244 c244 c244 c244 -5311 c245 c245 c245 * 7631 * 8ea1f6b1,f6b1,8ea1f6b1v,f6b1v 9d3b e9b4bb 9d3b 00009d3b c245 c245 c245 c245 c245 c245 c245 -5312 c246 c246 c246 * 7632 * 8ea1f6b2,f6b2,8ea1f6b2v,f6b2v 9d3f e9b4bf 9d3f 00009d3f c246 c246 c246 c246 c246 c246 c246 -5313 c247 c247 c247 * 7633 * 8ea1f6b3,f6b3,8ea1f6b3v,f6b3v 9e8b e9ba8b 9e8b 00009e8b c247 c247 c247 c247 c247 c247 c247 -5314 c248 c248 c248 * 7634 * 8ea1f6b4,f6b4,8ea1f6b4v,f6b4v 9ecf e9bb8f 9ecf 00009ecf c248 c248 c248 c248 c248 c248 c248 -5315 c249 c249 c249 * 7635 * 8ea1f6b5,f6b5,8ea1f6b5v,f6b5v 9ede e9bb9e 9ede 00009ede c249 c249 c249 c249 c249 c249 c249 -5316 c24a c24a c24a * 7636 * 8ea1f6b6,f6b6,8ea1f6b6v,f6b6v 9edc e9bb9c 9edc 00009edc c24a c24a c24a c24a c24a c24a c24a -5317 c24b c24b c24b * 7637 * 8ea1f6b7,f6b7,8ea1f6b7v,f6b7v 9edd e9bb9d 9edd 00009edd c24b c24b c24b c24b c24b c24b c24b -5318 c24c c24c c24c * 7638 * 8ea1f6b8,f6b8,8ea1f6b8v,f6b8v 9edb e9bb9b 9edb 00009edb c24c c24c c24c c24c c24c c24c c24c -5319 c24d c24d c24d * 7639 * 8ea1f6b9,f6b9,8ea1f6b9v,f6b9v 9f3e e9bcbe 9f3e 00009f3e c24d c24d c24d c24d c24d c24d c24d -5320 c24e c24e c24e * 763a * 8ea1f6ba,f6ba,8ea1f6bav,f6bav 9f4b e9bd8b 9f4b 00009f4b c24e c24e c24e c24e c24e c24e c24e -5321 c24f c24f c24f * 763b * 8ea1f6bb,f6bb,8ea1f6bbv,f6bbv 53e2 e58fa2 53e2 000053e2 c24f c24f c24f c24f c24f c24f c24f -5322 c250 c250 c250 * 763c * 8ea1f6bc,f6bc,8ea1f6bcv,f6bcv 5695 e59a95 5695 00005695 c250 c250 c250 c250 c250 c250 c250 -5323 c251 c251 c251 * 763d * 8ea1f6bd,f6bd,8ea1f6bdv,f6bdv 56ae e59aae 56ae 000056ae c251 c251 c251 c251 c251 c251 c251 -5324 c252 c252 c252 * 763e * 8ea1f6be,f6be,8ea1f6bev,f6bev 58d9 e5a399 58d9 000058d9 c252 c252 c252 c252 c252 c252 c252 -5325 c253 c253 c253 * 763f * 8ea1f6bf,f6bf,8ea1f6bfv,f6bfv 58d8 e5a398 58d8 000058d8 c253 c253 c253 c253 c253 c253 c253 -5326 c254 c254 c254 * 7640 * 8ea1f6c0,f6c0,8ea1f6c0v,f6c0v 5b38 e5acb8 5b38 00005b38 c254 c254 c254 c254 c254 c254 c254 -5327 c255 c255 c255 * 7641 * 8ea1f6c1,f6c1,8ea1f6c1v,f6c1v 5f5d e5bd9d 5f5d 00005f5d c255 c255 c255 c255 c255 c255 c255 -5328 c256 c256 c256 * 7642 * 8ea1f6c2,f6c2,8ea1f6c2v,f6c2v 61e3 e687a3 61e3 000061e3 c256 c256 c256 c256 c256 c256 c256 -5329 c257 c257 c257 * 7643 * 8ea1f6c3,f6c3,8ea1f6c3v,f6c3v 6233 e688b3 6233 00006233 c257 c257 c257 c257 c257 c257 c257 -5330 c258 c258 c258 * 7644 * 8ea1f6c4,f6c4,8ea1f6c4v,f6c4v 64f4 e693b4 64f4 000064f4 c258 c258 c258 c258 c258 c258 c258 -5331 c259 c259 c259 * 7645 * 8ea1f6c5,f6c5,8ea1f6c5v,f6c5v 64f2 e693b2 64f2 000064f2 c259 c259 c259 c259 c259 c259 c259 -5332 c25a c25a c25a * 7646 * 8ea1f6c6,f6c6,8ea1f6c6v,f6c6v 64fe e693be 64fe 000064fe c25a c25a c25a c25a c25a c25a c25a -5333 c25b c25b c25b * 7647 * 8ea1f6c7,f6c7,8ea1f6c7v,f6c7v 6506 e69486 6506 00006506 c25b c25b c25b c25b c25b c25b c25b -5334 c25c c25c c25c * 7648 * 8ea1f6c8,f6c8,8ea1f6c8v,f6c8v 64fa e693ba 64fa 000064fa c25c c25c c25c c25c c25c c25c c25c -5335 c25d c25d c25d * 7649 * 8ea1f6c9,f6c9,8ea1f6c9v,f6c9v 64fb e693bb 64fb 000064fb c25d c25d c25d c25d c25d c25d c25d -5336 c25e c25e c25e * 764a * 8ea1f6ca,f6ca,8ea1f6cav,f6cav 64f7 e693b7 64f7 000064f7 c25e c25e c25e c25e c25e c25e c25e -5337 c25f c25f c25f * 764b * 8ea1f6cb,f6cb,8ea1f6cbv,f6cbv 65b7 e696b7 65b7 000065b7 c25f c25f c25f c25f c25f c25f c25f -5338 c260 c260 c260 * 764c * 8ea1f6cc,f6cc,8ea1f6ccv,f6ccv 66dc e69b9c 66dc 000066dc c260 c260 c260 c260 c260 c260 c260 -5339 c261 c261 c261 * 764d * 8ea1f6cd,f6cd,8ea1f6cdv,f6cdv 6726 e69ca6 6726 00006726 c261 c261 c261 c261 c261 c261 c261 -5340 c262 c262 c262 * 764e * 8ea1f6ce,f6ce,8ea1f6cev,f6cev 6ab3 e6aab3 6ab3 00006ab3 c262 c262 c262 c262 c262 c262 c262 -5341 c263 c263 c263 * 764f * 8ea1f6cf,f6cf,8ea1f6cfv,f6cfv 6aac e6aaac 6aac 00006aac c263 c263 c263 c263 c263 c263 c263 -5342 c264 c264 c264 * 7650 * 8ea1f6d0,f6d0,8ea1f6d0v,f6d0v 6ac3 e6ab83 6ac3 00006ac3 c264 c264 c264 c264 c264 c264 c264 -5343 c265 c265 c265 * 7651 * 8ea1f6d1,f6d1,8ea1f6d1v,f6d1v 6abb e6aabb 6abb 00006abb c265 c265 c265 c265 c265 c265 c265 -5344 c266 c266 c266 * 7652 * 8ea1f6d2,f6d2,8ea1f6d2v,f6d2v 6ab8 e6aab8 6ab8 00006ab8 c266 c266 c266 c266 c266 c266 c266 -5345 c267 c267 c267 * 7653 * 8ea1f6d3,f6d3,8ea1f6d3v,f6d3v 6ac2 e6ab82 6ac2 00006ac2 c267 c267 c267 c267 c267 c267 c267 -5346 c268 c268 c268 * 7654 * 8ea1f6d4,f6d4,8ea1f6d4v,f6d4v 6aae e6aaae 6aae 00006aae c268 c268 c268 c268 c268 c268 c268 -5347 c269 c269 c269 * 7655 * 8ea1f6d5,f6d5,8ea1f6d5v,f6d5v 6aaf e6aaaf 6aaf 00006aaf c269 c269 c269 c269 c269 c269 c269 -5348 c26a c26a c26a * 7656 * 8ea1f6d6,f6d6,8ea1f6d6v,f6d6v 6b5f e6ad9f 6b5f 00006b5f c26a c26a c26a c26a c26a c26a c26a -5349 c26b c26b c26b * 7657 * 8ea1f6d7,f6d7,8ea1f6d7v,f6d7v 6b78 e6adb8 6b78 00006b78 c26b c26b c26b c26b c26b c26b c26b -5350 c26c c26c c26c * 7658 * 8ea1f6d8,f6d8,8ea1f6d8v,f6d8v 6baf e6aeaf 6baf 00006baf c26c c26c c26c c26c c26c c26c c26c -5351 c26d c26d c26d * 7659 * 8ea1f6d9,f6d9,8ea1f6d9v,f6d9v 7009 e78089 7009 00007009 c26d c26d c26d c26d c26d c26d c26d -5352 c26e c26e c26e * 765a * 8ea1f6da,f6da,8ea1f6dav,f6dav 700b e7808b 700b 0000700b c26e c26e c26e c26e c26e c26e c26e -5353 c26f c26f c26f * 765b * 8ea1f6db,f6db,8ea1f6dbv,f6dbv 6ffe e6bfbe 6ffe 00006ffe c26f c26f c26f c26f c26f c26f c26f -5354 c270 c270 c270 * 765c * 8ea1f6dc,f6dc,8ea1f6dcv,f6dcv 7006 e78086 7006 00007006 c270 c270 c270 c270 c270 c270 c270 -5355 c271 c271 c271 * 765d * 8ea1f6dd,f6dd,8ea1f6ddv,f6ddv 6ffa e6bfba 6ffa 00006ffa c271 c271 c271 c271 c271 c271 c271 -5356 c272 c272 c272 * 765e * 8ea1f6de,f6de,8ea1f6dev,f6dev 7011 e78091 7011 00007011 c272 c272 c272 c272 c272 c272 c272 -5357 c273 c273 c273 * 765f * 8ea1f6df,f6df,8ea1f6dfv,f6dfv 700f e7808f 700f 0000700f c273 c273 c273 c273 c273 c273 c273 -5358 c274 c274 c274 * 7660 * 8ea1f6e0,f6e0,8ea1f6e0v,f6e0v 71fb e787bb 71fb 000071fb c274 c274 c274 c274 c274 c274 c274 -5359 c275 c275 c275 * 7661 * 8ea1f6e1,f6e1,8ea1f6e1v,f6e1v 71fc e787bc 71fc 000071fc c275 c275 c275 c275 c275 c275 c275 -5360 c276 c276 c276 * 7662 * 8ea1f6e2,f6e2,8ea1f6e2v,f6e2v 71fe e787be 71fe 000071fe c276 c276 c276 c276 c276 c276 c276 -5361 c277 c277 c277 * 7663 * 8ea1f6e3,f6e3,8ea1f6e3v,f6e3v 71f8 e787b8 71f8 000071f8 c277 c277 c277 c277 c277 c277 c277 -5362 c278 c278 c278 * 7664 * 8ea1f6e4,f6e4,8ea1f6e4v,f6e4v 7377 e78db7 7377 00007377 c278 c278 c278 c278 c278 c278 c278 -5363 c279 c279 c279 * 7665 * 8ea1f6e5,f6e5,8ea1f6e5v,f6e5v 7375 e78db5 7375 00007375 c279 c279 c279 c279 c279 c279 c279 -5364 c27a c27a c27a * 7666 * 8ea1f6e6,f6e6,8ea1f6e6v,f6e6v 74a7 e792a7 74a7 000074a7 c27a c27a c27a c27a c27a c27a c27a -5365 c27b c27b c27b * 7667 * 8ea1f6e7,f6e7,8ea1f6e7v,f6e7v 74bf e792bf 74bf 000074bf c27b c27b c27b c27b c27b c27b c27b -5366 c27c c27c c27c * 7668 * 8ea1f6e8,f6e8,8ea1f6e8v,f6e8v 7515 e79495 7515 00007515 c27c c27c c27c c27c c27c c27c c27c -5367 c27d c27d c27d * 7669 * 8ea1f6e9,f6e9,8ea1f6e9v,f6e9v 7656 e79996 7656 00007656 c27d c27d c27d c27d c27d c27d c27d -5368 c27e c27e c27e * 766a * 8ea1f6ea,f6ea,8ea1f6eav,f6eav 7658 e79998 7658 00007658 c27e c27e c27e c27e c27e c27e c27e -5369 c2a1 c2a1 c2a1 * 766b * 8ea1f6eb,f6eb,8ea1f6ebv,f6ebv 7652 e79992 7652 00007652 c2a1 c2a1 c2a1 c2a1 c2a1 c2a1 c2a1 -5370 c2a2 c2a2 c2a2 * 766c * 8ea1f6ec,f6ec,8ea1f6ecv,f6ecv 77bd e79ebd 77bd 000077bd c2a2 c2a2 c2a2 c2a2 c2a2 c2a2 c2a2 -5371 c2a3 c2a3 c2a3 * 766d * 8ea1f6ed,f6ed,8ea1f6edv,f6edv 77bf e79ebf 77bf 000077bf c2a3 c2a3 c2a3 c2a3 c2a3 c2a3 c2a3 -5372 c2a4 c2a4 c2a4 * 766e * 8ea1f6ee,f6ee,8ea1f6eev,f6eev 77bb e79ebb 77bb 000077bb c2a4 c2a4 c2a4 c2a4 c2a4 c2a4 c2a4 -5373 c2a5 c2a5 c2a5 * 766f * 8ea1f6ef,f6ef,8ea1f6efv,f6efv 77bc e79ebc 77bc 000077bc c2a5 c2a5 c2a5 c2a5 c2a5 c2a5 c2a5 -5374 c2a6 c2a6 c2a6 * 7670 * 8ea1f6f0,f6f0,8ea1f6f0v,f6f0v 790e e7a48e 790e 0000790e c2a6 c2a6 c2a6 c2a6 c2a6 c2a6 c2a6 -5375 c2a7 c2a7 c2a7 * 7671 * 8ea1f6f1,f6f1,8ea1f6f1v,f6f1v 79ae e7a6ae 79ae 000079ae c2a7 c2a7 c2a7 c2a7 c2a7 c2a7 c2a7 -5376 c2a8 c2a8 c2a8 * 7672 * 8ea1f6f2,f6f2,8ea1f6f2v,f6f2v 7a61 e7a9a1 7a61 00007a61 c2a8 c2a8 c2a8 c2a8 c2a8 c2a8 c2a8 -5377 c2a9 c2a9 c2a9 * 7673 * 8ea1f6f3,f6f3,8ea1f6f3v,f6f3v 7a62 e7a9a2 7a62 00007a62 c2a9 c2a9 c2a9 c2a9 c2a9 c2a9 c2a9 -5378 c2aa c2aa c2aa * 7674 * 8ea1f6f4,f6f4,8ea1f6f4v,f6f4v 7a60 e7a9a0 7a60 00007a60 c2aa c2aa c2aa c2aa c2aa c2aa c2aa -5379 c2ab c2ab c2ab * 7675 * 8ea1f6f5,f6f5,8ea1f6f5v,f6f5v 7ac4 e7ab84 7ac4 00007ac4 c2ab c2ab c2ab c2ab c2ab c2ab c2ab -5380 c2ac c2ac c2ac * 7676 * 8ea1f6f6,f6f6,8ea1f6f6v,f6f6v 7ac5 e7ab85 7ac5 00007ac5 c2ac c2ac c2ac c2ac c2ac c2ac c2ac -5381 c2ad c2ad c2ad * 7677 * 8ea1f6f7,f6f7,8ea1f6f7v,f6f7v 7c2b e7b0ab 7c2b 00007c2b c2ad c2ad c2ad c2ad c2ad c2ad c2ad -5382 c2ae c2ae c2ae * 7678 * 8ea1f6f8,f6f8,8ea1f6f8v,f6f8v 7c27 e7b0a7 7c27 00007c27 c2ae c2ae c2ae c2ae c2ae c2ae c2ae -5383 c2af c2af c2af * 7679 * 8ea1f6f9,f6f9,8ea1f6f9v,f6f9v 7c2a e7b0aa 7c2a 00007c2a c2af c2af c2af c2af c2af c2af c2af -5384 c2b0 c2b0 c2b0 * 767a * 8ea1f6fa,f6fa,8ea1f6fav,f6fav 7c1e e7b09e 7c1e 00007c1e c2b0 c2b0 c2b0 c2b0 c2b0 c2b0 c2b0 -5385 c2b1 c2b1 c2b1 * 767b * 8ea1f6fb,f6fb,8ea1f6fbv,f6fbv 7c23 e7b0a3 7c23 00007c23 c2b1 c2b1 c2b1 c2b1 c2b1 c2b1 c2b1 -5386 c2b2 c2b2 c2b2 * 767c * 8ea1f6fc,f6fc,8ea1f6fcv,f6fcv 7c21 e7b0a1 7c21 00007c21 c2b2 c2b2 c2b2 c2b2 c2b2 c2b2 c2b2 -5387 c2b3 c2b3 c2b3 * 767d * 8ea1f6fd,f6fd,8ea1f6fdv,f6fdv 7ce7 e7b3a7 7ce7 00007ce7 c2b3 c2b3 c2b3 c2b3 c2b3 c2b3 c2b3 -5388 c2b4 c2b4 c2b4 * 767e * 8ea1f6fe,f6fe,8ea1f6fev,f6fev 7e54 e7b994 7e54 00007e54 c2b4 c2b4 c2b4 c2b4 c2b4 c2b4 c2b4 -5389 c2b5 c2b5 c2b5 * 7721 * 8ea1f7a1,f7a1,8ea1f7a1v,f7a1v 7e55 e7b995 7e55 00007e55 c2b5 c2b5 c2b5 c2b5 c2b5 c2b5 c2b5 -5390 c2b6 c2b6 c2b6 * 7722 * 8ea1f7a2,f7a2,8ea1f7a2v,f7a2v 7e5e e7b99e 7e5e 00007e5e c2b6 c2b6 c2b6 c2b6 c2b6 c2b6 c2b6 -5391 c2b7 c2b7 c2b7 * 7723 * 8ea1f7a3,f7a3,8ea1f7a3v,f7a3v 7e5a e7b99a 7e5a 00007e5a c2b7 c2b7 c2b7 c2b7 c2b7 c2b7 c2b7 -5392 c2b8 c2b8 c2b8 * 7724 * 8ea1f7a4,f7a4,8ea1f7a4v,f7a4v 7e61 e7b9a1 7e61 00007e61 c2b8 c2b8 c2b8 c2b8 c2b8 c2b8 c2b8 -5393 c2b9 c2b9 c2b9 * 7725 * 8ea1f7a5,f7a5,8ea1f7a5v,f7a5v 7e52 e7b992 7e52 00007e52 c2b9 c2b9 c2b9 c2b9 c2b9 c2b9 c2b9 -5394 c2ba c2ba c2ba * 7726 * 8ea1f7a6,f7a6,8ea1f7a6v,f7a6v 7e59 e7b999 7e59 00007e59 c2ba c2ba c2ba c2ba c2ba c2ba c2ba -5395 c2bb c2bb c2bb * 7727 * 8ea1f7a7,f7a7,8ea1f7a7v,f7a7v 7f48 e7bd88 7f48 00007f48 c2bb c2bb c2bb c2bb c2bb c2bb c2bb -5396 c2bc c2bc c2bc * 7728 * 8ea1f7a8,f7a8,8ea1f7a8v,f7a8v 7ff9 e7bfb9 7ff9 00007ff9 c2bc c2bc c2bc c2bc c2bc c2bc c2bc -5397 c2bd c2bd c2bd * 7729 * 8ea1f7a9,f7a9,8ea1f7a9v,f7a9v 7ffb e7bfbb 7ffb 00007ffb c2bd c2bd c2bd c2bd c2bd c2bd c2bd -5398 c2be c2be c2be * 772a * 8ea1f7aa,f7aa,8ea1f7aav,f7aav 8077 e881b7 8077 00008077 c2be c2be c2be c2be c2be c2be c2be -5399 c2bf c2bf c2bf * 772b * 8ea1f7ab,f7ab,8ea1f7abv,f7abv 8076 e881b6 8076 00008076 c2bf c2bf c2bf c2bf c2bf c2bf c2bf -5400 c2c0 c2c0 c2c0 * 772c * 8ea1f7ac,f7ac,8ea1f7acv,f7acv 81cd e8878d 81cd 000081cd c2c0 c2c0 c2c0 c2c0 c2c0 c2c0 c2c0 -5401 c2c1 c2c1 c2c1 * 772d * 8ea1f7ad,f7ad,8ea1f7adv,f7adv 81cf e8878f 81cf 000081cf c2c1 c2c1 c2c1 c2c1 c2c1 c2c1 c2c1 -5402 c2c2 c2c2 c2c2 * 772e * 8ea1f7ae,f7ae,8ea1f7aev,f7aev 820a e8888a 820a 0000820a c2c2 c2c2 c2c2 c2c2 c2c2 c2c2 c2c2 -5403 c2c3 c2c3 c2c3 * 772f * 8ea1f7af,f7af,8ea1f7afv,f7afv 85cf e8978f 85cf 000085cf c2c3 c2c3 c2c3 c2c3 c2c3 c2c3 c2c3 -5404 c2c4 c2c4 c2c4 * 7730 * 8ea1f7b0,f7b0,8ea1f7b0v,f7b0v 85a9 e896a9 85a9 000085a9 c2c4 c2c4 c2c4 c2c4 c2c4 c2c4 c2c4 -5405 c2c5 c2c5 c2c5 * 7731 * 8ea1f7b1,f7b1,8ea1f7b1v,f7b1v 85cd e8978d 85cd 000085cd c2c5 c2c5 c2c5 c2c5 c2c5 c2c5 c2c5 -5406 c2c6 c2c6 c2c6 * 7732 * 8ea1f7b2,f7b2,8ea1f7b2v,f7b2v 85d0 e89790 85d0 000085d0 c2c6 c2c6 c2c6 c2c6 c2c6 c2c6 c2c6 -5407 c2c7 c2c7 c2c7 * 7733 * 8ea1f7b3,f7b3,8ea1f7b3v,f7b3v 85c9 e89789 85c9 000085c9 c2c7 c2c7 c2c7 c2c7 c2c7 c2c7 c2c7 -5408 c2c8 c2c8 c2c8 * 7734 * 8ea1f7b4,f7b4,8ea1f7b4v,f7b4v 85b0 e896b0 85b0 000085b0 c2c8 c2c8 c2c8 c2c8 c2c8 c2c8 c2c8 -5409 c2c9 c2c9 c2c9 * 7735 * 8ea1f7b5,f7b5,8ea1f7b5v,f7b5v 85ba e896ba 85ba 000085ba c2c9 c2c9 c2c9 c2c9 c2c9 c2c9 c2c9 -5410 c2ca c2ca c2ca * 7736 * 8ea1f7b6,f7b6,8ea1f7b6v,f7b6v 85b9 e896b9 85b9 000085b9 c2ca c2ca c2ca c2ca c2ca c2ca c2ca -5411 c2cc c2cc c2cc * 7737 * 8ea1f7b7,f7b7,8ea1f7b7v,f7b7v 87ef e89faf 87ef 000087ef c2cc c2cc c2cc c2cc c2cc c2cc c2cc -5412 c2cd c2cd c2cd * 7738 * 8ea1f7b8,f7b8,8ea1f7b8v,f7b8v 87ec e89fac 87ec 000087ec c2cd c2cd c2cd c2cd c2cd c2cd c2cd -5413 c2ce c2ce c2ce * 7739 * 8ea1f7b9,f7b9,8ea1f7b9v,f7b9v 87f2 e89fb2 87f2 000087f2 c2ce c2ce c2ce c2ce c2ce c2ce c2ce -5414 c2cf c2cf c2cf * 773a * 8ea1f7ba,f7ba,8ea1f7bav,f7bav 87e0 e89fa0 87e0 000087e0 c2cf c2cf c2cf c2cf c2cf c2cf c2cf -5415 c2d0 c2d0 c2d0 * 773b * 8ea1f7bb,f7bb,8ea1f7bbv,f7bbv 8986 e8a686 8986 00008986 c2d0 c2d0 c2d0 c2d0 c2d0 c2d0 c2d0 -5416 c2d1 c2d1 c2d1 * 773c * 8ea1f7bc,f7bc,8ea1f7bcv,f7bcv 89b2 e8a6b2 89b2 000089b2 c2d1 c2d1 c2d1 c2d1 c2d1 c2d1 c2d1 -5417 c2d2 c2d2 c2d2 * 773d * 8ea1f7bd,f7bd,8ea1f7bdv,f7bdv 89f4 e8a7b4 89f4 000089f4 c2d2 c2d2 c2d2 c2d2 c2d2 c2d2 c2d2 -5418 c2d3 c2d3 c2d3 * 773e * 8ea1f7be,f7be,8ea1f7bev,f7bev 8b28 e8aca8 8b28 00008b28 c2d3 c2d3 c2d3 c2d3 c2d3 c2d3 c2d3 -5419 c2d4 c2d4 c2d4 * 773f * 8ea1f7bf,f7bf,8ea1f7bfv,f7bfv 8b39 e8acb9 8b39 00008b39 c2d4 c2d4 c2d4 c2d4 c2d4 c2d4 c2d4 -5420 c2d5 c2d5 c2d5 * 7740 * 8ea1f7c0,f7c0,8ea1f7c0v,f7c0v 8b2c e8acac 8b2c 00008b2c c2d5 c2d5 c2d5 c2d5 c2d5 c2d5 c2d5 -5421 c2d6 c2d6 c2d6 * 7741 * 8ea1f7c1,f7c1,8ea1f7c1v,f7c1v 8b2b e8acab 8b2b 00008b2b c2d6 c2d6 c2d6 c2d6 c2d6 c2d6 c2d6 -5422 c2d7 c2d7 c2d7 * 7742 * 8ea1f7c2,f7c2,8ea1f7c2v,f7c2v 8c50 e8b190 8c50 00008c50 c2d7 c2d7 c2d7 c2d7 c2d7 c2d7 c2d7 -5423 c2d8 c2d8 c2d8 * 7743 * 8ea1f7c3,f7c3,8ea1f7c3v,f7c3v 8d05 e8b485 8d05 00008d05 c2d8 c2d8 c2d8 c2d8 c2d8 c2d8 c2d8 -5424 c2d9 c2d9 c2d9 * 7744 * 8ea1f7c4,f7c4,8ea1f7c4v,f7c4v 8e59 e8b999 8e59 00008e59 c2d9 c2d9 c2d9 c2d9 c2d9 c2d9 c2d9 -5425 c2da c2da c2da * 7745 * 8ea1f7c5,f7c5,8ea1f7c5v,f7c5v 8e63 e8b9a3 8e63 00008e63 c2da c2da c2da c2da c2da c2da c2da -5426 c2db c2db c2db * 7746 * 8ea1f7c6,f7c6,8ea1f7c6v,f7c6v 8e66 e8b9a6 8e66 00008e66 c2db c2db c2db c2db c2db c2db c2db -5427 c2dc c2dc c2dc * 7747 * 8ea1f7c7,f7c7,8ea1f7c7v,f7c7v 8e64 e8b9a4 8e64 00008e64 c2dc c2dc c2dc c2dc c2dc c2dc c2dc -5428 c2dd c2dd c2dd * 7748 * 8ea1f7c8,f7c8,8ea1f7c8v,f7c8v 8e5f e8b99f 8e5f 00008e5f c2dd c2dd c2dd c2dd c2dd c2dd c2dd -5429 c2de c2de c2de * 7749 * 8ea1f7c9,f7c9,8ea1f7c9v,f7c9v 8e55 e8b995 8e55 00008e55 c2de c2de c2de c2de c2de c2de c2de -5430 c2df c2df c2df * 774a * 8ea1f7ca,f7ca,8ea1f7cav,f7cav 8ec0 e8bb80 8ec0 00008ec0 c2df c2df c2df c2df c2df c2df c2df -5431 c2e0 c2e0 c2e0 * 774b * 8ea1f7cb,f7cb,8ea1f7cbv,f7cbv 8f49 e8bd89 8f49 00008f49 c2e0 c2e0 c2e0 c2e0 c2e0 c2e0 c2e0 -5432 c2e1 c2e1 c2e1 * 774c * 8ea1f7cc,f7cc,8ea1f7ccv,f7ccv 8f4d e8bd8d 8f4d 00008f4d c2e1 c2e1 c2e1 c2e1 c2e1 c2e1 c2e1 -5433 c2e2 c2e2 c2e2 * 774d * 8ea1f7cd,f7cd,8ea1f7cdv,f7cdv 9087 e98287 9087 00009087 c2e2 c2e2 c2e2 c2e2 c2e2 c2e2 c2e2 -5434 c2e3 c2e3 c2e3 * 774e * 8ea1f7ce,f7ce,8ea1f7cev,f7cev 9083 e98283 9083 00009083 c2e3 c2e3 c2e3 c2e3 c2e3 c2e3 c2e3 -5435 c2e4 c2e4 c2e4 * 774f * 8ea1f7cf,f7cf,8ea1f7cfv,f7cfv 9088 e98288 9088 00009088 c2e4 c2e4 c2e4 c2e4 c2e4 c2e4 c2e4 -5436 c2e5 c2e5 c2e5 * 7750 * 8ea1f7d0,f7d0,8ea1f7d0v,f7d0v 91ab e986ab 91ab 000091ab c2e5 c2e5 c2e5 c2e5 c2e5 c2e5 c2e5 -5437 c2e6 c2e6 c2e6 * 7751 * 8ea1f7d1,f7d1,8ea1f7d1v,f7d1v 91ac e986ac 91ac 000091ac c2e6 c2e6 c2e6 c2e6 c2e6 c2e6 c2e6 -5438 c2e7 c2e7 c2e7 * 7752 * 8ea1f7d2,f7d2,8ea1f7d2v,f7d2v 91d0 e98790 91d0 000091d0 c2e7 c2e7 c2e7 c2e7 c2e7 c2e7 c2e7 -5439 c2e8 c2e8 c2e8 * 7753 * 8ea1f7d3,f7d3,8ea1f7d3v,f7d3v 9394 e98e94 9394 00009394 c2e8 c2e8 c2e8 c2e8 c2e8 c2e8 c2e8 -5440 c2e9 c2e9 c2e9 * 7754 * 8ea1f7d4,f7d4,8ea1f7d4v,f7d4v 938a e98e8a 938a 0000938a c2e9 c2e9 c2e9 c2e9 c2e9 c2e9 c2e9 -5441 c2ea c2ea c2ea * 7755 * 8ea1f7d5,f7d5,8ea1f7d5v,f7d5v 9396 e98e96 9396 00009396 c2ea c2ea c2ea c2ea c2ea c2ea c2ea -5442 c2eb c2eb c2eb * 7756 * 8ea1f7d6,f7d6,8ea1f7d6v,f7d6v 93a2 e98ea2 93a2 000093a2 c2eb c2eb c2eb c2eb c2eb c2eb c2eb -5443 c2ec c2ec c2ec * 7757 * 8ea1f7d7,f7d7,8ea1f7d7v,f7d7v 93b3 e98eb3 93b3 000093b3 c2ec c2ec c2ec c2ec c2ec c2ec c2ec -5444 c2ed c2ed c2ed * 7758 * 8ea1f7d8,f7d8,8ea1f7d8v,f7d8v 93ae e98eae 93ae 000093ae c2ed c2ed c2ed c2ed c2ed c2ed c2ed -5445 c2ee c2ee c2ee * 7759 * 8ea1f7d9,f7d9,8ea1f7d9v,f7d9v 93ac e98eac 93ac 000093ac c2ee c2ee c2ee c2ee c2ee c2ee c2ee -5446 c2ef c2ef c2ef * 775a * 8ea1f7da,f7da,8ea1f7dav,f7dav 93b0 e98eb0 93b0 000093b0 c2ef c2ef c2ef c2ef c2ef c2ef c2ef -5447 c2f0 c2f0 c2f0 * 775b * 8ea1f7db,f7db,8ea1f7dbv,f7dbv 9398 e98e98 9398 00009398 c2f0 c2f0 c2f0 c2f0 c2f0 c2f0 c2f0 -5448 c2f1 c2f1 c2f1 * 775c * 8ea1f7dc,f7dc,8ea1f7dcv,f7dcv 939a e98e9a 939a 0000939a c2f1 c2f1 c2f1 c2f1 c2f1 c2f1 c2f1 -5449 c2f2 c2f2 c2f2 * 775d * 8ea1f7dd,f7dd,8ea1f7ddv,f7ddv 9397 e98e97 9397 00009397 c2f2 c2f2 c2f2 c2f2 c2f2 c2f2 c2f2 -5450 c2f3 c2f3 c2f3 * 775e * 8ea1f7de,f7de,8ea1f7dev,f7dev 95d4 e99794 95d4 000095d4 c2f3 c2f3 c2f3 c2f3 c2f3 c2f3 c2f3 -5451 c2f4 c2f4 c2f4 * 775f * 8ea1f7df,f7df,8ea1f7dfv,f7dfv 95d6 e99796 95d6 000095d6 c2f4 c2f4 c2f4 c2f4 c2f4 c2f4 c2f4 -5452 c2f5 c2f5 c2f5 * 7760 * 8ea1f7e0,f7e0,8ea1f7e0v,f7e0v 95d0 e99790 95d0 000095d0 c2f5 c2f5 c2f5 c2f5 c2f5 c2f5 c2f5 -5453 c2f6 c2f6 c2f6 * 7761 * 8ea1f7e1,f7e1,8ea1f7e1v,f7e1v 95d5 e99795 95d5 000095d5 c2f6 c2f6 c2f6 c2f6 c2f6 c2f6 c2f6 -5454 c2f7 c2f7 c2f7 * 7762 * 8ea1f7e2,f7e2,8ea1f7e2v,f7e2v 96e2 e99ba2 96e2 000096e2 c2f7 c2f7 c2f7 c2f7 c2f7 c2f7 c2f7 -5455 c2f8 c2f8 c2f8 * 7763 * 8ea1f7e3,f7e3,8ea1f7e3v,f7e3v 96dc e99b9c 96dc 000096dc c2f8 c2f8 c2f8 c2f8 c2f8 c2f8 c2f8 -5456 c2f9 c2f9 c2f9 * 7764 * 8ea1f7e4,f7e4,8ea1f7e4v,f7e4v 96d9 e99b99 96d9 000096d9 c2f9 c2f9 c2f9 c2f9 c2f9 c2f9 c2f9 -5457 c2fa c2fa c2fa * 7765 * 8ea1f7e5,f7e5,8ea1f7e5v,f7e5v 96db e99b9b 96db 000096db c2fa c2fa c2fa c2fa c2fa c2fa c2fa -5458 c2fb c2fb c2fb * 7766 * 8ea1f7e6,f7e6,8ea1f7e6v,f7e6v 96de e99b9e 96de 000096de c2fb c2fb c2fb c2fb c2fb c2fb c2fb -5459 c2fc c2fc c2fc * 7767 * 8ea1f7e7,f7e7,8ea1f7e7v,f7e7v 9724 e99ca4 9724 00009724 c2fc c2fc c2fc c2fc c2fc c2fc c2fc -5460 c2fd c2fd c2fd * 7768 * 8ea1f7e8,f7e8,8ea1f7e8v,f7e8v 97a3 e99ea3 97a3 000097a3 c2fd c2fd c2fd c2fd c2fd c2fd c2fd -5461 c2fe c2fe c2fe * 7769 * 8ea1f7e9,f7e9,8ea1f7e9v,f7e9v 97a6 e99ea6 97a6 000097a6 c2fe c2fe c2fe c2fe c2fe c2fe c2fe -5462 c340 c340 c340 * 776a * 8ea1f7ea,f7ea,8ea1f7eav,f7eav 97ad e99ead 97ad 000097ad c340 c340 c340 c340 c340 c340 c340 -5463 c341 c341 c341 * 776b * 8ea1f7eb,f7eb,8ea1f7ebv,f7ebv 97f9 e99fb9 97f9 000097f9 c341 c341 c341 c341 c341 c341 c341 -5464 c342 c342 c342 * 776c * 8ea1f7ec,f7ec,8ea1f7ecv,f7ecv 984d e9a18d 984d 0000984d c342 c342 c342 c342 c342 c342 c342 -5465 c343 c343 c343 * 776d * 8ea1f7ed,f7ed,8ea1f7edv,f7edv 984f e9a18f 984f 0000984f c343 c343 c343 c343 c343 c343 c343 -5466 c344 c344 c344 * 776e * 8ea1f7ee,f7ee,8ea1f7eev,f7eev 984c e9a18c 984c 0000984c c344 c344 c344 c344 c344 c344 c344 -5467 c345 c345 c345 * 776f * 8ea1f7ef,f7ef,8ea1f7efv,f7efv 984e e9a18e 984e 0000984e c345 c345 c345 c345 c345 c345 c345 -5468 c346 c346 c346 * 7770 * 8ea1f7f0,f7f0,8ea1f7f0v,f7f0v 9853 e9a193 9853 00009853 c346 c346 c346 c346 c346 c346 c346 -5469 c347 c347 c347 * 7771 * 8ea1f7f1,f7f1,8ea1f7f1v,f7f1v 98ba e9a2ba 98ba 000098ba c347 c347 c347 c347 c347 c347 c347 -5470 c348 c348 c348 * 7772 * 8ea1f7f2,f7f2,8ea1f7f2v,f7f2v 993e e9a4be 993e 0000993e c348 c348 c348 c348 c348 c348 c348 -5471 c349 c349 c349 * 7773 * 8ea1f7f3,f7f3,8ea1f7f3v,f7f3v 993f e9a4bf 993f 0000993f c349 c349 c349 c349 c349 c349 c349 -5472 c34a c34a c34a * 7774 * 8ea1f7f4,f7f4,8ea1f7f4v,f7f4v 993d e9a4bd 993d 0000993d c34a c34a c34a c34a c34a c34a c34a -5473 c34b c34b c34b * 7775 * 8ea1f7f5,f7f5,8ea1f7f5v,f7f5v 992e e9a4ae 992e 0000992e c34b c34b c34b c34b c34b c34b c34b -5474 c34c c34c c34c * 7776 * 8ea1f7f6,f7f6,8ea1f7f6v,f7f6v 99a5 e9a6a5 99a5 000099a5 c34c c34c c34c c34c c34c c34c c34c -5475 c34d c34d c34d * 7777 * 8ea1f7f7,f7f7,8ea1f7f7v,f7f7v 9a0e e9a88e 9a0e 00009a0e c34d c34d c34d c34d c34d c34d c34d -5476 c34e c34e c34e * 7778 * 8ea1f7f8,f7f8,8ea1f7f8v,f7f8v 9ac1 e9ab81 9ac1 00009ac1 c34e c34e c34e c34e c34e c34e c34e -5477 c34f c34f c34f * 7779 * 8ea1f7f9,f7f9,8ea1f7f9v,f7f9v 9b03 e9ac83 9b03 00009b03 c34f c34f c34f c34f c34f c34f c34f -5478 c350 c350 c350 * 777a * 8ea1f7fa,f7fa,8ea1f7fav,f7fav 9b06 e9ac86 9b06 00009b06 c350 c350 c350 c350 c350 c350 c350 -5479 c351 c351 c351 * 777b * 8ea1f7fb,f7fb,8ea1f7fbv,f7fbv 9b4f e9ad8f 9b4f 00009b4f c351 c351 c351 c351 c351 c351 c351 -5480 c352 c352 c352 * 777c * 8ea1f7fc,f7fc,8ea1f7fcv,f7fcv 9b4e e9ad8e 9b4e 00009b4e c352 c352 c352 c352 c352 c352 c352 -5481 c353 c353 c353 * 777d * 8ea1f7fd,f7fd,8ea1f7fdv,f7fdv 9b4d e9ad8d 9b4d 00009b4d c353 c353 c353 c353 c353 c353 c353 -5482 c354 c354 c354 * 777e * 8ea1f7fe,f7fe,8ea1f7fev,f7fev 9bca e9af8a 9bca 00009bca c354 c354 c354 c354 c354 c354 c354 -5483 c355 c355 c355 * 7821 * 8ea1f8a1,f8a1,8ea1f8a1v,f8a1v 9bc9 e9af89 9bc9 00009bc9 c355 c355 c355 c355 c355 c355 c355 -5484 c356 c356 c356 * 7822 * 8ea1f8a2,f8a2,8ea1f8a2v,f8a2v 9bfd e9afbd 9bfd 00009bfd c356 c356 c356 c356 c356 c356 c356 -5485 c357 c357 c357 * 7823 * 8ea1f8a3,f8a3,8ea1f8a3v,f8a3v 9bc8 e9af88 9bc8 00009bc8 c357 c357 c357 c357 c357 c357 c357 -5486 c358 c358 c358 * 7824 * 8ea1f8a4,f8a4,8ea1f8a4v,f8a4v 9bc0 e9af80 9bc0 00009bc0 c358 c358 c358 c358 c358 c358 c358 -5487 c359 c359 c359 * 7825 * 8ea1f8a5,f8a5,8ea1f8a5v,f8a5v 9d51 e9b591 9d51 00009d51 c359 c359 c359 c359 c359 c359 c359 -5488 c35a c35a c35a * 7826 * 8ea1f8a6,f8a6,8ea1f8a6v,f8a6v 9d5d e9b59d 9d5d 00009d5d c35a c35a c35a c35a c35a c35a c35a -5489 c35b c35b c35b * 7827 * 8ea1f8a7,f8a7,8ea1f8a7v,f8a7v 9d60 e9b5a0 9d60 00009d60 c35b c35b c35b c35b c35b c35b c35b -5490 c35c c35c c35c * 7828 * 8ea1f8a8,f8a8,8ea1f8a8v,f8a8v 9ee0 e9bba0 9ee0 00009ee0 c35c c35c c35c c35c c35c c35c c35c -5491 c35d c35d c35d * 7829 * 8ea1f8a9,f8a9,8ea1f8a9v,f8a9v 9f15 e9bc95 9f15 00009f15 c35d c35d c35d c35d c35d c35d c35d -5492 c35e c35e c35e * 782a * 8ea1f8aa,f8aa,8ea1f8aav,f8aav 9f2c e9bcac 9f2c 00009f2c c35e c35e c35e c35e c35e c35e c35e -5493 c35f c35f c35f * 782b * 8ea1f8ab,f8ab,8ea1f8abv,f8abv 5133 e584b3 5133 00005133 c35f c35f c35f c35f c35f c35f c35f -5494 c360 c360 c360 * 782c * 8ea1f8ac,f8ac,8ea1f8acv,f8acv 56a5 e59aa5 56a5 000056a5 c360 c360 c360 c360 c360 c360 c360 -5495 c456 c456 c456 * 782d * 8ea1f8ad,f8ad,8ea1f8adv,f8adv 56a8 e59aa8 56a8 000056a8 c456 c456 c456 c456 c456 c456 c456 -5496 c361 c361 c361 * 782e * 8ea1f8ae,f8ae,8ea1f8aev,f8aev 58de e5a39e 58de 000058de c361 c361 c361 c361 c361 c361 c361 -5497 c362 c362 c362 * 782f * 8ea1f8af,f8af,8ea1f8afv,f8afv 58df e5a39f 58df 000058df c362 c362 c362 c362 c362 c362 c362 -5498 c363 c363 c363 * 7830 * 8ea1f8b0,f8b0,8ea1f8b0v,f8b0v 58e2 e5a3a2 58e2 000058e2 c363 c363 c363 c363 c363 c363 c363 -5499 c364 c364 c364 * 7831 * 8ea1f8b1,f8b1,8ea1f8b1v,f8b1v 5bf5 e5afb5 5bf5 00005bf5 c364 c364 c364 c364 c364 c364 c364 -5500 c365 c365 c365 * 7832 * 8ea1f8b2,f8b2,8ea1f8b2v,f8b2v 9f90 e9be90 9f90 00009f90 c365 c365 c365 c365 c365 c365 c365 -5501 c366 c366 c366 * 7833 * 8ea1f8b3,f8b3,8ea1f8b3v,f8b3v 5eec e5bbac 5eec 00005eec c366 c366 c366 c366 c366 c366 c366 -5502 c367 c367 c367 * 7834 * 8ea1f8b4,f8b4,8ea1f8b4v,f8b4v 61f2 e687b2 61f2 000061f2 c367 c367 c367 c367 c367 c367 c367 -5503 c368 c368 c368 * 7835 * 8ea1f8b5,f8b5,8ea1f8b5v,f8b5v 61f7 e687b7 61f7 000061f7 c368 c368 c368 c368 c368 c368 c368 -5504 c369 c369 c369 * 7836 * 8ea1f8b6,f8b6,8ea1f8b6v,f8b6v 61f6 e687b6 61f6 000061f6 c369 c369 c369 c369 c369 c369 c369 -5505 c36a c36a c36a * 7837 * 8ea1f8b7,f8b7,8ea1f8b7v,f8b7v 61f5 e687b5 61f5 000061f5 c36a c36a c36a c36a c36a c36a c36a -5506 c36b c36b c36b * 7838 * 8ea1f8b8,f8b8,8ea1f8b8v,f8b8v 6500 e69480 6500 00006500 c36b c36b c36b c36b c36b c36b c36b -5507 c36c c36c c36c * 7839 * 8ea1f8b9,f8b9,8ea1f8b9v,f8b9v 650f e6948f 650f 0000650f c36c c36c c36c c36c c36c c36c c36c -5508 c36d c36d c36d * 783a * 8ea1f8ba,f8ba,8ea1f8bav,f8bav 66e0 e69ba0 66e0 000066e0 c36d c36d c36d c36d c36d c36d c36d -5509 c36e c36e c36e * 783b * 8ea1f8bb,f8bb,8ea1f8bbv,f8bbv 66dd e69b9d 66dd 000066dd c36e c36e c36e c36e c36e c36e c36e -5510 c36f c36f c36f * 783c * 8ea1f8bc,f8bc,8ea1f8bcv,f8bcv 6ae5 e6aba5 6ae5 00006ae5 c36f c36f c36f c36f c36f c36f c36f -5511 c370 c370 c370 * 783d * 8ea1f8bd,f8bd,8ea1f8bdv,f8bdv 6add e6ab9d 6add 00006add c370 c370 c370 c370 c370 c370 c370 -5512 c371 c371 c371 * 783e * 8ea1f8be,f8be,8ea1f8bev,f8bev 6ada e6ab9a 6ada 00006ada c371 c371 c371 c371 c371 c371 c371 -5513 c372 c372 c372 * 783f * 8ea1f8bf,f8bf,8ea1f8bfv,f8bfv 6ad3 e6ab93 6ad3 00006ad3 c372 c372 c372 c372 c372 c372 c372 -5514 c373 c373 c373 * 7840 * 8ea1f8c0,f8c0,8ea1f8c0v,f8c0v 701b e7809b 701b 0000701b c373 c373 c373 c373 c373 c373 c373 -5515 c374 c374 c374 * 7841 * 8ea1f8c1,f8c1,8ea1f8c1v,f8c1v 701f e7809f 701f 0000701f c374 c374 c374 c374 c374 c374 c374 -5516 c375 c375 c375 * 7842 * 8ea1f8c2,f8c2,8ea1f8c2v,f8c2v 7028 e780a8 7028 00007028 c375 c375 c375 c375 c375 c375 c375 -5517 c376 c376 c376 * 7843 * 8ea1f8c3,f8c3,8ea1f8c3v,f8c3v 701a e7809a 701a 0000701a c376 c376 c376 c376 c376 c376 c376 -5518 c377 c377 c377 * 7844 * 8ea1f8c4,f8c4,8ea1f8c4v,f8c4v 701d e7809d 701d 0000701d c377 c377 c377 c377 c377 c377 c377 -5519 c378 c378 c378 * 7845 * 8ea1f8c5,f8c5,8ea1f8c5v,f8c5v 7015 e78095 7015 00007015 c378 c378 c378 c378 c378 c378 c378 -5520 c379 c379 c379 * 7846 * 8ea1f8c6,f8c6,8ea1f8c6v,f8c6v 7018 e78098 7018 00007018 c379 c379 c379 c379 c379 c379 c379 -5521 c37a c37a c37a * 7847 * 8ea1f8c7,f8c7,8ea1f8c7v,f8c7v 7206 e78886 7206 00007206 c37a c37a c37a c37a c37a c37a c37a -5522 c37b c37b c37b * 7848 * 8ea1f8c8,f8c8,8ea1f8c8v,f8c8v 720d e7888d 720d 0000720d c37b c37b c37b c37b c37b c37b c37b -5523 c37c c37c c37c * 7849 * 8ea1f8c9,f8c9,8ea1f8c9v,f8c9v 7258 e78998 7258 00007258 c37c c37c c37c c37c c37c c37c c37c -5524 c37d c37d c37d * 784a * 8ea1f8ca,f8ca,8ea1f8cav,f8cav 72a2 e78aa2 72a2 000072a2 c37d c37d c37d c37d c37d c37d c37d -5525 c37e c37e c37e * 784b * 8ea1f8cb,f8cb,8ea1f8cbv,f8cbv 7378 e78db8 7378 00007378 c37e c37e c37e c37e c37e c37e c37e -5526 c3a1 c3a1 c3a1 * 784c * 8ea1f8cc,f8cc,8ea1f8ccv,f8ccv 737a e78dba 737a 0000737a c3a1 c3a1 c3a1 c3a1 c3a1 c3a1 c3a1 -5527 c3a2 c3a2 c3a2 * 784d * 8ea1f8cd,f8cd,8ea1f8cdv,f8cdv 74bd e792bd 74bd 000074bd c3a2 c3a2 c3a2 c3a2 c3a2 c3a2 c3a2 -5528 c3a3 c3a3 c3a3 * 784e * 8ea1f8ce,f8ce,8ea1f8cev,f8cev 74ca e7938a 74ca 000074ca c3a3 c3a3 c3a3 c3a3 c3a3 c3a3 c3a3 -5529 c3a4 c3a4 c3a4 * 784f * 8ea1f8cf,f8cf,8ea1f8cfv,f8cfv 74e3 e793a3 74e3 000074e3 c3a4 c3a4 c3a4 c3a4 c3a4 c3a4 c3a4 -5530 c3a5 c3a5 c3a5 * 7850 * 8ea1f8d0,f8d0,8ea1f8d0v,f8d0v 7587 e79687 7587 00007587 c3a5 c3a5 c3a5 c3a5 c3a5 c3a5 c3a5 -5531 c3a6 c3a6 c3a6 * 7851 * 8ea1f8d1,f8d1,8ea1f8d1v,f8d1v 7586 e79686 7586 00007586 c3a6 c3a6 c3a6 c3a6 c3a6 c3a6 c3a6 -5532 c3a7 c3a7 c3a7 * 7852 * 8ea1f8d2,f8d2,8ea1f8d2v,f8d2v 765f e7999f 765f 0000765f c3a7 c3a7 c3a7 c3a7 c3a7 c3a7 c3a7 -5533 c3a8 c3a8 c3a8 * 7853 * 8ea1f8d3,f8d3,8ea1f8d3v,f8d3v 7661 e799a1 7661 00007661 c3a8 c3a8 c3a8 c3a8 c3a8 c3a8 c3a8 -5534 c3a9 c3a9 c3a9 * 7854 * 8ea1f8d4,f8d4,8ea1f8d4v,f8d4v 77c7 e79f87 77c7 000077c7 c3a9 c3a9 c3a9 c3a9 c3a9 c3a9 c3a9 -5535 c3aa c3aa c3aa * 7855 * 8ea1f8d5,f8d5,8ea1f8d5v,f8d5v 7919 e7a499 7919 00007919 c3aa c3aa c3aa c3aa c3aa c3aa c3aa -5536 c3ab c3ab c3ab * 7856 * 8ea1f8d6,f8d6,8ea1f8d6v,f8d6v 79b1 e7a6b1 79b1 000079b1 c3ab c3ab c3ab c3ab c3ab c3ab c3ab -5537 c3ac c3ac c3ac * 7857 * 8ea1f8d7,f8d7,8ea1f8d7v,f8d7v 7a6b e7a9ab 7a6b 00007a6b c3ac c3ac c3ac c3ac c3ac c3ac c3ac -5538 c3ad c3ad c3ad * 7858 * 8ea1f8d8,f8d8,8ea1f8d8v,f8d8v 7a69 e7a9a9 7a69 00007a69 c3ad c3ad c3ad c3ad c3ad c3ad c3ad -5539 c3ae c3ae c3ae * 7859 * 8ea1f8d9,f8d9,8ea1f8d9v,f8d9v 7c3e e7b0be 7c3e 00007c3e c3ae c3ae c3ae c3ae c3ae c3ae c3ae -5540 c3af c3af c3af * 785a * 8ea1f8da,f8da,8ea1f8dav,f8dav 7c3f e7b0bf 7c3f 00007c3f c3af c3af c3af c3af c3af c3af c3af -5541 c3b0 c3b0 c3b0 * 785b * 8ea1f8db,f8db,8ea1f8dbv,f8dbv 7c38 e7b0b8 7c38 00007c38 c3b0 c3b0 c3b0 c3b0 c3b0 c3b0 c3b0 -5542 c3b1 c3b1 c3b1 * 785c * 8ea1f8dc,f8dc,8ea1f8dcv,f8dcv 7c3d e7b0bd 7c3d 00007c3d c3b1 c3b1 c3b1 c3b1 c3b1 c3b1 c3b1 -5543 c3b2 c3b2 c3b2 * 785d * 8ea1f8dd,f8dd,8ea1f8ddv,f8ddv 7c37 e7b0b7 7c37 00007c37 c3b2 c3b2 c3b2 c3b2 c3b2 c3b2 c3b2 -5544 c3b3 c3b3 c3b3 * 785e * 8ea1f8de,f8de,8ea1f8dev,f8dev 7c40 e7b180 7c40 00007c40 c3b3 c3b3 c3b3 c3b3 c3b3 c3b3 c3b3 -5545 c3b4 c3b4 c3b4 * 785f * 8ea1f8df,f8df,8ea1f8dfv,f8dfv 7e6b e7b9ab 7e6b 00007e6b c3b4 c3b4 c3b4 c3b4 c3b4 c3b4 c3b4 -5546 c3b5 c3b5 c3b5 * 7860 * 8ea1f8e0,f8e0,8ea1f8e0v,f8e0v 7e6d e7b9ad 7e6d 00007e6d c3b5 c3b5 c3b5 c3b5 c3b5 c3b5 c3b5 -5547 c3b6 c3b6 c3b6 * 7861 * 8ea1f8e1,f8e1,8ea1f8e1v,f8e1v 7e79 e7b9b9 7e79 00007e79 c3b6 c3b6 c3b6 c3b6 c3b6 c3b6 c3b6 -5548 c3b7 c3b7 c3b7 * 7862 * 8ea1f8e2,f8e2,8ea1f8e2v,f8e2v 7e69 e7b9a9 7e69 00007e69 c3b7 c3b7 c3b7 c3b7 c3b7 c3b7 c3b7 -5549 c3b8 c3b8 c3b8 * 7863 * 8ea1f8e3,f8e3,8ea1f8e3v,f8e3v 7e6a e7b9aa 7e6a 00007e6a c3b8 c3b8 c3b8 c3b8 c3b8 c3b8 c3b8 -5550 c3ba c3ba c3ba * 7864 * 8ea1f8e4,f8e4,8ea1f8e4v,f8e4v 7e73 e7b9b3 7e73 00007e73 c3ba c3ba c3ba c3ba c3ba c3ba c3ba -5551 c3b9 c3b9 c3b9 * 7865 * 8ea1f8e5,f8e5,8ea1f8e5v,f8e5v 7f85 e7be85 7f85 00007f85 c3b9 c3b9 c3b9 c3b9 c3b9 c3b9 c3b9 -5552 c3bb c3bb c3bb * 7866 * 8ea1f8e6,f8e6,8ea1f8e6v,f8e6v 7fb6 e7beb6 7fb6 00007fb6 c3bb c3bb c3bb c3bb c3bb c3bb c3bb -5553 c3bc c3bc c3bc * 7867 * 8ea1f8e7,f8e7,8ea1f8e7v,f8e7v 7fb9 e7beb9 7fb9 00007fb9 c3bc c3bc c3bc c3bc c3bc c3bc c3bc -5554 c3bd c3bd c3bd * 7868 * 8ea1f8e8,f8e8,8ea1f8e8v,f8e8v 7fb8 e7beb8 7fb8 00007fb8 c3bd c3bd c3bd c3bd c3bd c3bd c3bd -5555 c3be c3be c3be * 7869 * 8ea1f8e9,f8e9,8ea1f8e9v,f8e9v 81d8 e88798 81d8 000081d8 c3be c3be c3be c3be c3be c3be c3be -5556 c3bf c3bf c3bf * 786a * 8ea1f8ea,f8ea,8ea1f8eav,f8eav 85e9 e897a9 85e9 000085e9 c3bf c3bf c3bf c3bf c3bf c3bf c3bf -5557 c3c0 c3c0 c3c0 * 786b * 8ea1f8eb,f8eb,8ea1f8ebv,f8ebv 85dd e8979d 85dd 000085dd c3c0 c3c0 c3c0 c3c0 c3c0 c3c0 c3c0 -5558 c3c1 c3c1 c3c1 * 786c * 8ea1f8ec,f8ec,8ea1f8ecv,f8ecv 85ea e897aa 85ea 000085ea c3c1 c3c1 c3c1 c3c1 c3c1 c3c1 c3c1 -5559 c3c2 c3c2 c3c2 * 786d * 8ea1f8ed,f8ed,8ea1f8edv,f8edv 85d5 e89795 85d5 000085d5 c3c2 c3c2 c3c2 c3c2 c3c2 c3c2 c3c2 -5560 c3c3 c3c3 c3c3 * 786e * 8ea1f8ee,f8ee,8ea1f8eev,f8eev 85e4 e897a4 85e4 000085e4 c3c3 c3c3 c3c3 c3c3 c3c3 c3c3 c3c3 -5561 c3c4 c3c4 c3c4 * 786f * 8ea1f8ef,f8ef,8ea1f8efv,f8efv 85e5 e897a5 85e5 000085e5 c3c4 c3c4 c3c4 c3c4 c3c4 c3c4 c3c4 -5562 c3c5 c3c5 c3c5 * 7870 * 8ea1f8f0,f8f0,8ea1f8f0v,f8f0v 85f7 e897b7 85f7 000085f7 c3c5 c3c5 c3c5 c3c5 c3c5 c3c5 c3c5 -5563 c3c6 c3c6 c3c6 * 7871 * 8ea1f8f1,f8f1,8ea1f8f1v,f8f1v 87fb e89fbb 87fb 000087fb c3c6 c3c6 c3c6 c3c6 c3c6 c3c6 c3c6 -5564 c3c7 c3c7 c3c7 * 7872 * 8ea1f8f2,f8f2,8ea1f8f2v,f8f2v 8805 e8a085 8805 00008805 c3c7 c3c7 c3c7 c3c7 c3c7 c3c7 c3c7 -5565 c3c8 c3c8 c3c8 * 7873 * 8ea1f8f3,f8f3,8ea1f8f3v,f8f3v 880d e8a08d 880d 0000880d c3c8 c3c8 c3c8 c3c8 c3c8 c3c8 c3c8 -5566 c3c9 c3c9 c3c9 * 7874 * 8ea1f8f4,f8f4,8ea1f8f4v,f8f4v 87f9 e89fb9 87f9 000087f9 c3c9 c3c9 c3c9 c3c9 c3c9 c3c9 c3c9 -5567 c3ca c3ca c3ca * 7875 * 8ea1f8f5,f8f5,8ea1f8f5v,f8f5v 87fe e89fbe 87fe 000087fe c3ca c3ca c3ca c3ca c3ca c3ca c3ca -5568 c3cb c3cb c3cb * 7876 * 8ea1f8f6,f8f6,8ea1f8f6v,f8f6v 8960 e8a5a0 8960 00008960 c3cb c3cb c3cb c3cb c3cb c3cb c3cb -5569 c3cc c3cc c3cc * 7877 * 8ea1f8f7,f8f7,8ea1f8f7v,f8f7v 895f e8a59f 895f 0000895f c3cc c3cc c3cc c3cc c3cc c3cc c3cc -5570 c3cd c3cd c3cd * 7878 * 8ea1f8f8,f8f8,8ea1f8f8v,f8f8v 8956 e8a596 8956 00008956 c3cd c3cd c3cd c3cd c3cd c3cd c3cd -5571 c3ce c3ce c3ce * 7879 * 8ea1f8f9,f8f9,8ea1f8f9v,f8f9v 895e e8a59e 895e 0000895e c3ce c3ce c3ce c3ce c3ce c3ce c3ce -5572 c3cf c3cf c3cf * 787a * 8ea1f8fa,f8fa,8ea1f8fav,f8fav 8b41 e8ad81 8b41 00008b41 c3cf c3cf c3cf c3cf c3cf c3cf c3cf -5573 c3d0 c3d0 c3d0 * 787b * 8ea1f8fb,f8fb,8ea1f8fbv,f8fbv 8b5c e8ad9c 8b5c 00008b5c c3d0 c3d0 c3d0 c3d0 c3d0 c3d0 c3d0 -5574 c3d1 c3d1 c3d1 * 787c * 8ea1f8fc,f8fc,8ea1f8fcv,f8fcv 8b58 e8ad98 8b58 00008b58 c3d1 c3d1 c3d1 c3d1 c3d1 c3d1 c3d1 -5575 c3d2 c3d2 c3d2 * 787d * 8ea1f8fd,f8fd,8ea1f8fdv,f8fdv 8b49 e8ad89 8b49 00008b49 c3d2 c3d2 c3d2 c3d2 c3d2 c3d2 c3d2 -5576 c3d3 c3d3 c3d3 * 787e * 8ea1f8fe,f8fe,8ea1f8fev,f8fev 8b5a e8ad9a 8b5a 00008b5a c3d3 c3d3 c3d3 c3d3 c3d3 c3d3 c3d3 -5577 c3d4 c3d4 c3d4 * 7921 * 8ea1f9a1,f9a1,8ea1f9a1v,f9a1v 8b4e e8ad8e 8b4e 00008b4e c3d4 c3d4 c3d4 c3d4 c3d4 c3d4 c3d4 -5578 c3d5 c3d5 c3d5 * 7922 * 8ea1f9a2,f9a2,8ea1f9a2v,f9a2v 8b4f e8ad8f 8b4f 00008b4f c3d5 c3d5 c3d5 c3d5 c3d5 c3d5 c3d5 -5579 c3d6 c3d6 c3d6 * 7923 * 8ea1f9a3,f9a3,8ea1f9a3v,f9a3v 8b46 e8ad86 8b46 00008b46 c3d6 c3d6 c3d6 c3d6 c3d6 c3d6 c3d6 -5580 c3d7 c3d7 c3d7 * 7924 * 8ea1f9a4,f9a4,8ea1f9a4v,f9a4v 8b59 e8ad99 8b59 00008b59 c3d7 c3d7 c3d7 c3d7 c3d7 c3d7 c3d7 -5581 c3d8 c3d8 c3d8 * 7925 * 8ea1f9a5,f9a5,8ea1f9a5v,f9a5v 8d08 e8b488 8d08 00008d08 c3d8 c3d8 c3d8 c3d8 c3d8 c3d8 c3d8 -5582 c3d9 c3d9 c3d9 * 7926 * 8ea1f9a6,f9a6,8ea1f9a6v,f9a6v 8d0a e8b48a 8d0a 00008d0a c3d9 c3d9 c3d9 c3d9 c3d9 c3d9 c3d9 -5583 c3da c3da c3da * 7927 * 8ea1f9a7,f9a7,8ea1f9a7v,f9a7v 8e7c e8b9bc 8e7c 00008e7c c3da c3da c3da c3da c3da c3da c3da -5584 c3db c3db c3db * 7928 * 8ea1f9a8,f9a8,8ea1f9a8v,f9a8v 8e72 e8b9b2 8e72 00008e72 c3db c3db c3db c3db c3db c3db c3db -5585 c3dc c3dc c3dc * 7929 * 8ea1f9a9,f9a9,8ea1f9a9v,f9a9v 8e87 e8ba87 8e87 00008e87 c3dc c3dc c3dc c3dc c3dc c3dc c3dc -5586 c3dd c3dd c3dd * 792a * 8ea1f9aa,f9aa,8ea1f9aav,f9aav 8e76 e8b9b6 8e76 00008e76 c3dd c3dd c3dd c3dd c3dd c3dd c3dd -5587 c3de c3de c3de * 792b * 8ea1f9ab,f9ab,8ea1f9abv,f9abv 8e6c e8b9ac 8e6c 00008e6c c3de c3de c3de c3de c3de c3de c3de -5588 c3df c3df c3df * 792c * 8ea1f9ac,f9ac,8ea1f9acv,f9acv 8e7a e8b9ba 8e7a 00008e7a c3df c3df c3df c3df c3df c3df c3df -5589 c3e0 c3e0 c3e0 * 792d * 8ea1f9ad,f9ad,8ea1f9adv,f9adv 8e74 e8b9b4 8e74 00008e74 c3e0 c3e0 c3e0 c3e0 c3e0 c3e0 c3e0 -5590 c3e1 c3e1 c3e1 * 792e * 8ea1f9ae,f9ae,8ea1f9aev,f9aev 8f54 e8bd94 8f54 00008f54 c3e1 c3e1 c3e1 c3e1 c3e1 c3e1 c3e1 -5591 c3e2 c3e2 c3e2 * 792f * 8ea1f9af,f9af,8ea1f9afv,f9afv 8f4e e8bd8e 8f4e 00008f4e c3e2 c3e2 c3e2 c3e2 c3e2 c3e2 c3e2 -5592 c3e3 c3e3 c3e3 * 7930 * 8ea1f9b0,f9b0,8ea1f9b0v,f9b0v 8fad e8bead 8fad 00008fad c3e3 c3e3 c3e3 c3e3 c3e3 c3e3 c3e3 -5593 c3e4 c3e4 c3e4 * 7931 * 8ea1f9b1,f9b1,8ea1f9b1v,f9b1v 908a e9828a 908a 0000908a c3e4 c3e4 c3e4 c3e4 c3e4 c3e4 c3e4 -5594 c3e5 c3e5 c3e5 * 7932 * 8ea1f9b2,f9b2,8ea1f9b2v,f9b2v 908b e9828b 908b 0000908b c3e5 c3e5 c3e5 c3e5 c3e5 c3e5 c3e5 -5595 c3e6 c3e6 c3e6 * 7933 * 8ea1f9b3,f9b3,8ea1f9b3v,f9b3v 91b1 e986b1 91b1 000091b1 c3e6 c3e6 c3e6 c3e6 c3e6 c3e6 c3e6 -5596 c3e7 c3e7 c3e7 * 7934 * 8ea1f9b4,f9b4,8ea1f9b4v,f9b4v 91ae e986ae 91ae 000091ae c3e7 c3e7 c3e7 c3e7 c3e7 c3e7 c3e7 -5597 c3e8 c3e8 c3e8 * 7935 * 8ea1f9b5,f9b5,8ea1f9b5v,f9b5v 93e1 e98fa1 93e1 000093e1 c3e8 c3e8 c3e8 c3e8 c3e8 c3e8 c3e8 -5598 c3e9 c3e9 c3e9 * 7936 * 8ea1f9b6,f9b6,8ea1f9b6v,f9b6v 93d1 e98f91 93d1 000093d1 c3e9 c3e9 c3e9 c3e9 c3e9 c3e9 c3e9 -5599 c3ea c3ea c3ea * 7937 * 8ea1f9b7,f9b7,8ea1f9b7v,f9b7v 93df e98f9f 93df 000093df c3ea c3ea c3ea c3ea c3ea c3ea c3ea -5600 c3eb c3eb c3eb * 7938 * 8ea1f9b8,f9b8,8ea1f9b8v,f9b8v 93c3 e98f83 93c3 000093c3 c3eb c3eb c3eb c3eb c3eb c3eb c3eb -5601 c3ec c3ec c3ec * 7939 * 8ea1f9b9,f9b9,8ea1f9b9v,f9b9v 93c8 e98f88 93c8 000093c8 c3ec c3ec c3ec c3ec c3ec c3ec c3ec -5602 c3ed c3ed c3ed * 793a * 8ea1f9ba,f9ba,8ea1f9bav,f9bav 93dc e98f9c 93dc 000093dc c3ed c3ed c3ed c3ed c3ed c3ed c3ed -5603 c3ee c3ee c3ee * 793b * 8ea1f9bb,f9bb,8ea1f9bbv,f9bbv 93dd e98f9d 93dd 000093dd c3ee c3ee c3ee c3ee c3ee c3ee c3ee -5604 c3ef c3ef c3ef * 793c * 8ea1f9bc,f9bc,8ea1f9bcv,f9bcv 93d6 e98f96 93d6 000093d6 c3ef c3ef c3ef c3ef c3ef c3ef c3ef -5605 c3f0 c3f0 c3f0 * 793d * 8ea1f9bd,f9bd,8ea1f9bdv,f9bdv 93e2 e98fa2 93e2 000093e2 c3f0 c3f0 c3f0 c3f0 c3f0 c3f0 c3f0 -5606 c3f1 c3f1 c3f1 * 793e * 8ea1f9be,f9be,8ea1f9bev,f9bev 93cd e98f8d 93cd 000093cd c3f1 c3f1 c3f1 c3f1 c3f1 c3f1 c3f1 -5607 c3f2 c3f2 c3f2 * 793f * 8ea1f9bf,f9bf,8ea1f9bfv,f9bfv 93d8 e98f98 93d8 000093d8 c3f2 c3f2 c3f2 c3f2 c3f2 c3f2 c3f2 -5608 c3f3 c3f3 c3f3 * 7940 * 8ea1f9c0,f9c0,8ea1f9c0v,f9c0v 93e4 e98fa4 93e4 000093e4 c3f3 c3f3 c3f3 c3f3 c3f3 c3f3 c3f3 -5609 c3f4 c3f4 c3f4 * 7941 * 8ea1f9c1,f9c1,8ea1f9c1v,f9c1v 93d7 e98f97 93d7 000093d7 c3f4 c3f4 c3f4 c3f4 c3f4 c3f4 c3f4 -5610 c3f5 c3f5 c3f5 * 7942 * 8ea1f9c2,f9c2,8ea1f9c2v,f9c2v 93e8 e98fa8 93e8 000093e8 c3f5 c3f5 c3f5 c3f5 c3f5 c3f5 c3f5 -5611 c3f6 c3f6 c3f6 * 7943 * 8ea1f9c3,f9c3,8ea1f9c3v,f9c3v 95dc e9979c 95dc 000095dc c3f6 c3f6 c3f6 c3f6 c3f6 c3f6 c3f6 -5612 c3f7 c3f7 c3f7 * 7944 * 8ea1f9c4,f9c4,8ea1f9c4v,f9c4v 96b4 e99ab4 96b4 000096b4 c3f7 c3f7 c3f7 c3f7 c3f7 c3f7 c3f7 -5613 c3f8 c3f8 c3f8 * 7945 * 8ea1f9c5,f9c5,8ea1f9c5v,f9c5v 96e3 e99ba3 96e3 000096e3 c3f8 c3f8 c3f8 c3f8 c3f8 c3f8 c3f8 -5614 c3f9 c3f9 c3f9 * 7946 * 8ea1f9c6,f9c6,8ea1f9c6v,f9c6v 972a e99caa 972a 0000972a c3f9 c3f9 c3f9 c3f9 c3f9 c3f9 c3f9 -5615 c3fa c3fa c3fa * 7947 * 8ea1f9c7,f9c7,8ea1f9c7v,f9c7v 9727 e99ca7 9727 00009727 c3fa c3fa c3fa c3fa c3fa c3fa c3fa -5616 c3fb c3fb c3fb * 7948 * 8ea1f9c8,f9c8,8ea1f9c8v,f9c8v 9761 e99da1 9761 00009761 c3fb c3fb c3fb c3fb c3fb c3fb c3fb -5617 c3fc c3fc c3fc * 7949 * 8ea1f9c9,f9c9,8ea1f9c9v,f9c9v 97dc e99f9c 97dc 000097dc c3fc c3fc c3fc c3fc c3fc c3fc c3fc -5618 c3fd c3fd c3fd * 794a * 8ea1f9ca,f9ca,8ea1f9cav,f9cav 97fb e99fbb 97fb 000097fb c3fd c3fd c3fd c3fd c3fd c3fd c3fd -5619 c3fe c3fe c3fe * 794b * 8ea1f9cb,f9cb,8ea1f9cbv,f9cbv 985e e9a19e 985e 0000985e c3fe c3fe c3fe c3fe c3fe c3fe c3fe -5620 c440 c440 c440 * 794c * 8ea1f9cc,f9cc,8ea1f9ccv,f9ccv 9858 e9a198 9858 00009858 c440 c440 c440 c440 c440 c440 c440 -5621 c441 c441 c441 * 794d * 8ea1f9cd,f9cd,8ea1f9cdv,f9cdv 985b e9a19b 985b 0000985b c441 c441 c441 c441 c441 c441 c441 -5622 c442 c442 c442 * 794e * 8ea1f9ce,f9ce,8ea1f9cev,f9cev 98bc e9a2bc 98bc 000098bc c442 c442 c442 c442 c442 c442 c442 -5623 c443 c443 c443 * 794f * 8ea1f9cf,f9cf,8ea1f9cfv,f9cfv 9945 e9a585 9945 00009945 c443 c443 c443 c443 c443 c443 c443 -5624 c444 c444 c444 * 7950 * 8ea1f9d0,f9d0,8ea1f9d0v,f9d0v 9949 e9a589 9949 00009949 c444 c444 c444 c444 c444 c444 c444 -5625 c445 c445 c445 * 7951 * 8ea1f9d1,f9d1,8ea1f9d1v,f9d1v 9a16 e9a896 9a16 00009a16 c445 c445 c445 c445 c445 c445 c445 -5626 c446 c446 c446 * 7952 * 8ea1f9d2,f9d2,8ea1f9d2v,f9d2v 9a19 e9a899 9a19 00009a19 c446 c446 c446 c446 c446 c446 c446 -5627 c447 c447 c447 * 7953 * 8ea1f9d3,f9d3,8ea1f9d3v,f9d3v 9b0d e9ac8d 9b0d 00009b0d c447 c447 c447 c447 c447 c447 c447 -5628 c448 c448 c448 * 7954 * 8ea1f9d4,f9d4,8ea1f9d4v,f9d4v 9be8 e9afa8 9be8 00009be8 c448 c448 c448 c448 c448 c448 c448 -5629 c449 c449 c449 * 7955 * 8ea1f9d5,f9d5,8ea1f9d5v,f9d5v 9be7 e9afa7 9be7 00009be7 c449 c449 c449 c449 c449 c449 c449 -5630 c44a c44a c44a * 7956 * 8ea1f9d6,f9d6,8ea1f9d6v,f9d6v 9bd6 e9af96 9bd6 00009bd6 c44a c44a c44a c44a c44a c44a c44a -5631 c44b c44b c44b * 7957 * 8ea1f9d7,f9d7,8ea1f9d7v,f9d7v 9bdb e9af9b 9bdb 00009bdb c44b c44b c44b c44b c44b c44b c44b -5632 c44c c44c c44c * 7958 * 8ea1f9d8,f9d8,8ea1f9d8v,f9d8v 9d89 e9b689 9d89 00009d89 c44c c44c c44c c44c c44c c44c c44c -5633 c44d c44d c44d * 7959 * 8ea1f9d9,f9d9,8ea1f9d9v,f9d9v 9d61 e9b5a1 9d61 00009d61 c44d c44d c44d c44d c44d c44d c44d -5634 c44e c44e c44e * 795a * 8ea1f9da,f9da,8ea1f9dav,f9dav 9d72 e9b5b2 9d72 00009d72 c44e c44e c44e c44e c44e c44e c44e -5635 c44f c44f c44f * 795b * 8ea1f9db,f9db,8ea1f9dbv,f9dbv 9d6a e9b5aa 9d6a 00009d6a c44f c44f c44f c44f c44f c44f c44f -5636 c450 c450 c450 * 795c * 8ea1f9dc,f9dc,8ea1f9dcv,f9dcv 9d6c e9b5ac 9d6c 00009d6c c450 c450 c450 c450 c450 c450 c450 -5637 c451 c451 c451 * 795d * 8ea1f9dd,f9dd,8ea1f9ddv,f9ddv 9e92 e9ba92 9e92 00009e92 c451 c451 c451 c451 c451 c451 c451 -5638 c452 c452 c452 * 795e * 8ea1f9de,f9de,8ea1f9dev,f9dev 9e97 e9ba97 9e97 00009e97 c452 c452 c452 c452 c452 c452 c452 -5639 c453 c453 c453 * 795f * 8ea1f9df,f9df,8ea1f9dfv,f9dfv 9e93 e9ba93 9e93 00009e93 c453 c453 c453 c453 c453 c453 c453 -5640 c454 c454 c454 * 7960 * 8ea1f9e0,f9e0,8ea1f9e0v,f9e0v 9eb4 e9bab4 9eb4 00009eb4 c454 c454 c454 c454 c454 c454 c454 -5641 c455 c455 c455 * 7961 * 8ea1f9e1,f9e1,8ea1f9e1v,f9e1v 52f8 e58bb8 52f8 000052f8 c455 c455 c455 c455 c455 c455 c455 -5642 c457 c457 c457 * 7962 * 8ea1f9e2,f9e2,8ea1f9e2v,f9e2v 56b7 e59ab7 56b7 000056b7 c457 c457 c457 c457 c457 c457 c457 -5643 c458 c458 c458 * 7963 * 8ea1f9e3,f9e3,8ea1f9e3v,f9e3v 56b6 e59ab6 56b6 000056b6 c458 c458 c458 c458 c458 c458 c458 -5644 c459 c459 c459 * 7964 * 8ea1f9e4,f9e4,8ea1f9e4v,f9e4v 56b4 e59ab4 56b4 000056b4 c459 c459 c459 c459 c459 c459 c459 -5645 c45a c45a c45a * 7965 * 8ea1f9e5,f9e5,8ea1f9e5v,f9e5v 56bc e59abc 56bc 000056bc c45a c45a c45a c45a c45a c45a c45a -5646 c45b c45b c45b * 7966 * 8ea1f9e6,f9e6,8ea1f9e6v,f9e6v 58e4 e5a3a4 58e4 000058e4 c45b c45b c45b c45b c45b c45b c45b -5647 c45c c45c c45c * 7967 * 8ea1f9e7,f9e7,8ea1f9e7v,f9e7v 5b40 e5ad80 5b40 00005b40 c45c c45c c45c c45c c45c c45c c45c -5648 c45d c45d c45d * 7968 * 8ea1f9e8,f9e8,8ea1f9e8v,f9e8v 5b43 e5ad83 5b43 00005b43 c45d c45d c45d c45d c45d c45d c45d -5649 c45e c45e c45e * 7969 * 8ea1f9e9,f9e9,8ea1f9e9v,f9e9v 5b7d e5adbd 5b7d 00005b7d c45e c45e c45e c45e c45e c45e c45e -5650 c45f c45f c45f * 796a * 8ea1f9ea,f9ea,8ea1f9eav,f9eav 5bf6 e5afb6 5bf6 00005bf6 c45f c45f c45f c45f c45f c45f c45f -5651 c460 c460 c460 * 796b * 8ea1f9eb,f9eb,8ea1f9ebv,f9ebv 5dc9 e5b789 5dc9 00005dc9 c460 c460 c460 c460 c460 c460 c460 -5652 c461 c461 c461 * 796c * 8ea1f9ec,f9ec,8ea1f9ecv,f9ecv 61f8 e687b8 61f8 000061f8 c461 c461 c461 c461 c461 c461 c461 -5653 c462 c462 c462 * 796d * 8ea1f9ed,f9ed,8ea1f9edv,f9edv 61fa e687ba 61fa 000061fa c462 c462 c462 c462 c462 c462 c462 -5654 c463 c463 c463 * 796e * 8ea1f9ee,f9ee,8ea1f9eev,f9eev 6518 e69498 6518 00006518 c463 c463 c463 c463 c463 c463 c463 -5655 c464 c464 c464 * 796f * 8ea1f9ef,f9ef,8ea1f9efv,f9efv 6514 e69494 6514 00006514 c464 c464 c464 c464 c464 c464 c464 -5656 c465 c465 c465 * 7970 * 8ea1f9f0,f9f0,8ea1f9f0v,f9f0v 6519 e69499 6519 00006519 c465 c465 c465 c465 c465 c465 c465 -5657 c466 c466 c466 * 7971 * 8ea1f9f1,f9f1,8ea1f9f1v,f9f1v 66e6 e69ba6 66e6 000066e6 c466 c466 c466 c466 c466 c466 c466 -5658 c467 c467 c467 * 7972 * 8ea1f9f2,f9f2,8ea1f9f2v,f9f2v 6727 e69ca7 6727 00006727 c467 c467 c467 c467 c467 c467 c467 -5659 c468 c468 c468 * 7973 * 8ea1f9f3,f9f3,8ea1f9f3v,f9f3v 6aec e6abac 6aec 00006aec c468 c468 c468 c468 c468 c468 c468 -5660 c469 c469 c469 * 7974 * 8ea1f9f4,f9f4,8ea1f9f4v,f9f4v 703e e780be 703e 0000703e c469 c469 c469 c469 c469 c469 c469 -5661 c46a c46a c46a * 7975 * 8ea1f9f5,f9f5,8ea1f9f5v,f9f5v 7030 e780b0 7030 00007030 c46a c46a c46a c46a c46a c46a c46a -5662 c46b c46b c46b * 7976 * 8ea1f9f6,f9f6,8ea1f9f6v,f9f6v 7032 e780b2 7032 00007032 c46b c46b c46b c46b c46b c46b c46b -5663 c46c c46c c46c * 7977 * 8ea1f9f7,f9f7,8ea1f9f7v,f9f7v 7210 e78890 7210 00007210 c46c c46c c46c c46c c46c c46c c46c -5664 c46d c46d c46d * 7978 * 8ea1f9f8,f9f8,8ea1f9f8v,f9f8v 737b e78dbb 737b 0000737b c46d c46d c46d c46d c46d c46d c46d -5665 c46e c46e c46e * 7979 * 8ea1f9f9,f9f9,8ea1f9f9v,f9f9v 74cf e7938f 74cf 000074cf c46e c46e c46e c46e c46e c46e c46e -5666 c46f c46f c46f * 797a * 8ea1f9fa,f9fa,8ea1f9fav,f9fav 7662 e799a2 7662 00007662 c46f c46f c46f c46f c46f c46f c46f -5667 c470 c470 c470 * 797b * 8ea1f9fb,f9fb,8ea1f9fbv,f9fbv 7665 e799a5 7665 00007665 c470 c470 c470 c470 c470 c470 c470 -5668 c471 c471 c471 * 797c * 8ea1f9fc,f9fc,8ea1f9fcv,f9fcv 7926 e7a4a6 7926 00007926 c471 c471 c471 c471 c471 c471 c471 -5669 c472 c472 c472 * 797d * 8ea1f9fd,f9fd,8ea1f9fdv,f9fdv 792a e7a4aa 792a 0000792a c472 c472 c472 c472 c472 c472 c472 -5670 c473 c473 c473 * 797e * 8ea1f9fe,f9fe,8ea1f9fev,f9fev 792c e7a4ac 792c 0000792c c473 c473 c473 c473 c473 c473 c473 -5671 c474 c474 c474 * 7a21 * 8ea1faa1,faa1,8ea1faa1v,faa1v 792b e7a4ab 792b 0000792b c474 c474 c474 c474 c474 c474 c474 -5672 c475 c475 c475 * 7a22 * 8ea1faa2,faa2,8ea1faa2v,faa2v 7ac7 e7ab87 7ac7 00007ac7 c475 c475 c475 c475 c475 c475 c475 -5673 c476 c476 c476 * 7a23 * 8ea1faa3,faa3,8ea1faa3v,faa3v 7af6 e7abb6 7af6 00007af6 c476 c476 c476 c476 c476 c476 c476 -5674 c477 c477 c477 * 7a24 * 8ea1faa4,faa4,8ea1faa4v,faa4v 7c4c e7b18c 7c4c 00007c4c c477 c477 c477 c477 c477 c477 c477 -5675 c478 c478 c478 * 7a25 * 8ea1faa5,faa5,8ea1faa5v,faa5v 7c43 e7b183 7c43 00007c43 c478 c478 c478 c478 c478 c478 c478 -5676 c479 c479 c479 * 7a26 * 8ea1faa6,faa6,8ea1faa6v,faa6v 7c4d e7b18d 7c4d 00007c4d c479 c479 c479 c479 c479 c479 c479 -5677 c47a c47a c47a * 7a27 * 8ea1faa7,faa7,8ea1faa7v,faa7v 7cef e7b3af 7cef 00007cef c47a c47a c47a c47a c47a c47a c47a -5678 c47b c47b c47b * 7a28 * 8ea1faa8,faa8,8ea1faa8v,faa8v 7cf0 e7b3b0 7cf0 00007cf0 c47b c47b c47b c47b c47b c47b c47b -5679 c47c c47c c47c * 7a29 * 8ea1faa9,faa9,8ea1faa9v,faa9v 8fae e8beae 8fae 00008fae c47c c47c c47c c47c c47c c47c c47c -5680 c47d c47d c47d * 7a2a * 8ea1faaa,faaa,8ea1faaav,faaav 7e7d e7b9bd 7e7d 00007e7d c47d c47d c47d c47d c47d c47d c47d -5681 c47e c47e c47e * 7a2b * 8ea1faab,faab,8ea1faabv,faabv 7e7c e7b9bc 7e7c 00007e7c c47e c47e c47e c47e c47e c47e c47e -5682 c4a1 c4a1 c4a1 * 7a2c * 8ea1faac,faac,8ea1faacv,faacv 7e82 e7ba82 7e82 00007e82 c4a1 c4a1 c4a1 c4a1 c4a1 c4a1 c4a1 -5683 c4a2 c4a2 c4a2 * 7a2d * 8ea1faad,faad,8ea1faadv,faadv 7f4c e7bd8c 7f4c 00007f4c c4a2 c4a2 c4a2 c4a2 c4a2 c4a2 c4a2 -5684 c4a3 c4a3 c4a3 * 7a2e * 8ea1faae,faae,8ea1faaev,faaev 8000 e88080 8000 00008000 c4a3 c4a3 c4a3 c4a3 c4a3 c4a3 c4a3 -5685 c4a4 c4a4 c4a4 * 7a2f * 8ea1faaf,faaf,8ea1faafv,faafv 81da e8879a 81da 000081da c4a4 c4a4 c4a4 c4a4 c4a4 c4a4 c4a4 -5686 c4a5 c4a5 c4a5 * 7a30 * 8ea1fab0,fab0,8ea1fab0v,fab0v 8266 e889a6 8266 00008266 c4a5 c4a5 c4a5 c4a5 c4a5 c4a5 c4a5 -5687 c4a6 c4a6 c4a6 * 7a31 * 8ea1fab1,fab1,8ea1fab1v,fab1v 85fb e897bb 85fb 000085fb c4a6 c4a6 c4a6 c4a6 c4a6 c4a6 c4a6 -5688 c4a7 c4a7 c4a7 * 7a32 * 8ea1fab2,fab2,8ea1fab2v,fab2v 85f9 e897b9 85f9 000085f9 c4a7 c4a7 c4a7 c4a7 c4a7 c4a7 c4a7 -5689 c4a8 c4a8 c4a8 * 7a33 * 8ea1fab3,fab3,8ea1fab3v,fab3v 8611 e89891 8611 00008611 c4a8 c4a8 c4a8 c4a8 c4a8 c4a8 c4a8 -5690 c4a9 c4a9 c4a9 * 7a34 * 8ea1fab4,fab4,8ea1fab4v,fab4v 85fa e897ba 85fa 000085fa c4a9 c4a9 c4a9 c4a9 c4a9 c4a9 c4a9 -5691 c4aa c4aa c4aa * 7a35 * 8ea1fab5,fab5,8ea1fab5v,fab5v 8606 e89886 8606 00008606 c4aa c4aa c4aa c4aa c4aa c4aa c4aa -5692 c4ab c4ab c4ab * 7a36 * 8ea1fab6,fab6,8ea1fab6v,fab6v 860b e8988b 860b 0000860b c4ab c4ab c4ab c4ab c4ab c4ab c4ab -5693 c4ac c4ac c4ac * 7a37 * 8ea1fab7,fab7,8ea1fab7v,fab7v 8607 e89887 8607 00008607 c4ac c4ac c4ac c4ac c4ac c4ac c4ac -5694 c4ad c4ad c4ad * 7a38 * 8ea1fab8,fab8,8ea1fab8v,fab8v 860a e8988a 860a 0000860a c4ad c4ad c4ad c4ad c4ad c4ad c4ad -5695 c4ae c4ae c4ae * 7a39 * 8ea1fab9,fab9,8ea1fab9v,fab9v 8814 e8a094 8814 00008814 c4ae c4ae c4ae c4ae c4ae c4ae c4ae -5696 c4af c4af c4af * 7a3a * 8ea1faba,faba,8ea1fabav,fabav 8815 e8a095 8815 00008815 c4af c4af c4af c4af c4af c4af c4af -5697 c4b0 c4b0 c4b0 * 7a3b * 8ea1fabb,fabb,8ea1fabbv,fabbv 8964 e8a5a4 8964 00008964 c4b0 c4b0 c4b0 c4b0 c4b0 c4b0 c4b0 -5698 c4b1 c4b1 c4b1 * 7a3c * 8ea1fabc,fabc,8ea1fabcv,fabcv 89ba e8a6ba 89ba 000089ba c4b1 c4b1 c4b1 c4b1 c4b1 c4b1 c4b1 -5699 c4b2 c4b2 c4b2 * 7a3d * 8ea1fabd,fabd,8ea1fabdv,fabdv 89f8 e8a7b8 89f8 000089f8 c4b2 c4b2 c4b2 c4b2 c4b2 c4b2 c4b2 -5700 c4b3 c4b3 c4b3 * 7a3e * 8ea1fabe,fabe,8ea1fabev,fabev 8b70 e8adb0 8b70 00008b70 c4b3 c4b3 c4b3 c4b3 c4b3 c4b3 c4b3 -5701 c4b4 c4b4 c4b4 * 7a3f * 8ea1fabf,fabf,8ea1fabfv,fabfv 8b6c e8adac 8b6c 00008b6c c4b4 c4b4 c4b4 c4b4 c4b4 c4b4 c4b4 -5702 c4b5 c4b5 c4b5 * 7a40 * 8ea1fac0,fac0,8ea1fac0v,fac0v 8b66 e8ada6 8b66 00008b66 c4b5 c4b5 c4b5 c4b5 c4b5 c4b5 c4b5 -5703 c4b6 c4b6 c4b6 * 7a41 * 8ea1fac1,fac1,8ea1fac1v,fac1v 8b6f e8adaf 8b6f 00008b6f c4b6 c4b6 c4b6 c4b6 c4b6 c4b6 c4b6 -5704 c4b7 c4b7 c4b7 * 7a42 * 8ea1fac2,fac2,8ea1fac2v,fac2v 8b5f e8ad9f 8b5f 00008b5f c4b7 c4b7 c4b7 c4b7 c4b7 c4b7 c4b7 -5705 c4b8 c4b8 c4b8 * 7a43 * 8ea1fac3,fac3,8ea1fac3v,fac3v 8b6b e8adab 8b6b 00008b6b c4b8 c4b8 c4b8 c4b8 c4b8 c4b8 c4b8 -5706 c4b9 c4b9 c4b9 * 7a44 * 8ea1fac4,fac4,8ea1fac4v,fac4v 8d0f e8b48f 8d0f 00008d0f c4b9 c4b9 c4b9 c4b9 c4b9 c4b9 c4b9 -5707 c4ba c4ba c4ba * 7a45 * 8ea1fac5,fac5,8ea1fac5v,fac5v 8d0d e8b48d 8d0d 00008d0d c4ba c4ba c4ba c4ba c4ba c4ba c4ba -5708 c4bb c4bb c4bb * 7a46 * 8ea1fac6,fac6,8ea1fac6v,fac6v 8e89 e8ba89 8e89 00008e89 c4bb c4bb c4bb c4bb c4bb c4bb c4bb -5709 c4bc c4bc c4bc * 7a47 * 8ea1fac7,fac7,8ea1fac7v,fac7v 8e81 e8ba81 8e81 00008e81 c4bc c4bc c4bc c4bc c4bc c4bc c4bc -5710 c4bd c4bd c4bd * 7a48 * 8ea1fac8,fac8,8ea1fac8v,fac8v 8e85 e8ba85 8e85 00008e85 c4bd c4bd c4bd c4bd c4bd c4bd c4bd -5711 c4be c4be c4be * 7a49 * 8ea1fac9,fac9,8ea1fac9v,fac9v 8e82 e8ba82 8e82 00008e82 c4be c4be c4be c4be c4be c4be c4be -5712 c4bf c4bf c4bf * 7a4a * 8ea1faca,faca,8ea1facav,facav 91b4 e986b4 91b4 000091b4 c4bf c4bf c4bf c4bf c4bf c4bf c4bf -5713 c4c0 c4c0 c4c0 * 7a4b * 8ea1facb,facb,8ea1facbv,facbv 91cb e9878b 91cb 000091cb c4c0 c4c0 c4c0 c4c0 c4c0 c4c0 c4c0 -5714 c4c1 c4c1 c4c1 * 7a4c * 8ea1facc,facc,8ea1faccv,faccv 9418 e99098 9418 00009418 c4c1 c4c1 c4c1 c4c1 c4c1 c4c1 c4c1 -5715 c4c2 c4c2 c4c2 * 7a4d * 8ea1facd,facd,8ea1facdv,facdv 9403 e99083 9403 00009403 c4c2 c4c2 c4c2 c4c2 c4c2 c4c2 c4c2 -5716 c4c3 c4c3 c4c3 * 7a4e * 8ea1face,face,8ea1facev,facev 93fd e98fbd 93fd 000093fd c4c3 c4c3 c4c3 c4c3 c4c3 c4c3 c4c3 -5717 c4c4 c4c4 c4c4 * 7a4f * 8ea1facf,facf,8ea1facfv,facfv 95e1 e997a1 95e1 000095e1 c4c4 c4c4 c4c4 c4c4 c4c4 c4c4 c4c4 -5718 c4c5 c4c5 c4c5 * 7a50 * 8ea1fad0,fad0,8ea1fad0v,fad0v 9730 e99cb0 9730 00009730 c4c5 c4c5 c4c5 c4c5 c4c5 c4c5 c4c5 -5719 c4c6 c4c6 c4c6 * 7a51 * 8ea1fad1,fad1,8ea1fad1v,fad1v 98c4 e9a384 98c4 000098c4 c4c6 c4c6 c4c6 c4c6 c4c6 c4c6 c4c6 -5720 c4c7 c4c7 c4c7 * 7a52 * 8ea1fad2,fad2,8ea1fad2v,fad2v 9952 e9a592 9952 00009952 c4c7 c4c7 c4c7 c4c7 c4c7 c4c7 c4c7 -5721 c4c8 c4c8 c4c8 * 7a53 * 8ea1fad3,fad3,8ea1fad3v,fad3v 9951 e9a591 9951 00009951 c4c8 c4c8 c4c8 c4c8 c4c8 c4c8 c4c8 -5722 c4c9 c4c9 c4c9 * 7a54 * 8ea1fad4,fad4,8ea1fad4v,fad4v 99a8 e9a6a8 99a8 000099a8 c4c9 c4c9 c4c9 c4c9 c4c9 c4c9 c4c9 -5723 c4ca c4ca c4ca * 7a55 * 8ea1fad5,fad5,8ea1fad5v,fad5v 9a2b e9a8ab 9a2b 00009a2b c4ca c4ca c4ca c4ca c4ca c4ca c4ca -5724 c4cb c4cb c4cb * 7a56 * 8ea1fad6,fad6,8ea1fad6v,fad6v 9a30 e9a8b0 9a30 00009a30 c4cb c4cb c4cb c4cb c4cb c4cb c4cb -5725 c4cc c4cc c4cc * 7a57 * 8ea1fad7,fad7,8ea1fad7v,fad7v 9a37 e9a8b7 9a37 00009a37 c4cc c4cc c4cc c4cc c4cc c4cc c4cc -5726 c4cd c4cd c4cd * 7a58 * 8ea1fad8,fad8,8ea1fad8v,fad8v 9a35 e9a8b5 9a35 00009a35 c4cd c4cd c4cd c4cd c4cd c4cd c4cd -5727 c4ce c4ce c4ce * 7a59 * 8ea1fad9,fad9,8ea1fad9v,fad9v 9c13 e9b093 9c13 00009c13 c4ce c4ce c4ce c4ce c4ce c4ce c4ce -5728 c4cf c4cf c4cf * 7a5a * 8ea1fada,fada,8ea1fadav,fadav 9c0d e9b08d 9c0d 00009c0d c4cf c4cf c4cf c4cf c4cf c4cf c4cf -5729 c4d0 c4d0 c4d0 * 7a5b * 8ea1fadb,fadb,8ea1fadbv,fadbv 9e79 e9b9b9 9e79 00009e79 c4d0 c4d0 c4d0 c4d0 c4d0 c4d0 c4d0 -5730 c4d1 c4d1 c4d1 * 7a5c * 8ea1fadc,fadc,8ea1fadcv,fadcv 9eb5 e9bab5 9eb5 00009eb5 c4d1 c4d1 c4d1 c4d1 c4d1 c4d1 c4d1 -5731 c4d2 c4d2 c4d2 * 7a5d * 8ea1fadd,fadd,8ea1faddv,faddv 9ee8 e9bba8 9ee8 00009ee8 c4d2 c4d2 c4d2 c4d2 c4d2 c4d2 c4d2 -5732 c4d3 c4d3 c4d3 * 7a5e * 8ea1fade,fade,8ea1fadev,fadev 9f2f e9bcaf 9f2f 00009f2f c4d3 c4d3 c4d3 c4d3 c4d3 c4d3 c4d3 -5733 c4d4 c4d4 c4d4 * 7a5f * 8ea1fadf,fadf,8ea1fadfv,fadfv 9f5f e9bd9f 9f5f 00009f5f c4d4 c4d4 c4d4 c4d4 c4d4 c4d4 c4d4 -5734 c4d5 c4d5 c4d5 * 7a60 * 8ea1fae0,fae0,8ea1fae0v,fae0v 9f63 e9bda3 9f63 00009f63 c4d5 c4d5 c4d5 c4d5 c4d5 c4d5 c4d5 -5735 c4d6 c4d6 c4d6 * 7a61 * 8ea1fae1,fae1,8ea1fae1v,fae1v 9f61 e9bda1 9f61 00009f61 c4d6 c4d6 c4d6 c4d6 c4d6 c4d6 c4d6 -5736 c4d7 c4d7 c4d7 * 7a62 * 8ea1fae2,fae2,8ea1fae2v,fae2v 5137 e584b7 5137 00005137 c4d7 c4d7 c4d7 c4d7 c4d7 c4d7 c4d7 -5737 c4d8 c4d8 c4d8 * 7a63 * 8ea1fae3,fae3,8ea1fae3v,fae3v 5138 e584b8 5138 00005138 c4d8 c4d8 c4d8 c4d8 c4d8 c4d8 c4d8 -5738 c4d9 c4d9 c4d9 * 7a64 * 8ea1fae4,fae4,8ea1fae4v,fae4v 56c1 e59b81 56c1 000056c1 c4d9 c4d9 c4d9 c4d9 c4d9 c4d9 c4d9 -5739 c4da c4da c4da * 7a65 * 8ea1fae5,fae5,8ea1fae5v,fae5v 56c0 e59b80 56c0 000056c0 c4da c4da c4da c4da c4da c4da c4da -5740 c4db c4db c4db * 7a66 * 8ea1fae6,fae6,8ea1fae6v,fae6v 56c2 e59b82 56c2 000056c2 c4db c4db c4db c4db c4db c4db c4db -5741 c4dc c4dc c4dc * 7a67 * 8ea1fae7,fae7,8ea1fae7v,fae7v 5914 e5a494 5914 00005914 c4dc c4dc c4dc c4dc c4dc c4dc c4dc -5742 c4dd c4dd c4dd * 7a68 * 8ea1fae8,fae8,8ea1fae8v,fae8v 5c6c e5b1ac 5c6c 00005c6c c4dd c4dd c4dd c4dd c4dd c4dd c4dd -5743 c4de c4de c4de * 7a69 * 8ea1fae9,fae9,8ea1fae9v,fae9v 5dcd e5b78d 5dcd 00005dcd c4de c4de c4de c4de c4de c4de c4de -5744 c4df c4df c4df * 7a6a * 8ea1faea,faea,8ea1faeav,faeav 61fc e687bc 61fc 000061fc c4df c4df c4df c4df c4df c4df c4df -5745 c4e0 c4e0 c4e0 * 7a6b * 8ea1faeb,faeb,8ea1faebv,faebv 61fe e687be 61fe 000061fe c4e0 c4e0 c4e0 c4e0 c4e0 c4e0 c4e0 -5746 c4e1 c4e1 c4e1 * 7a6c * 8ea1faec,faec,8ea1faecv,faecv 651d e6949d 651d 0000651d c4e1 c4e1 c4e1 c4e1 c4e1 c4e1 c4e1 -5747 c4e2 c4e2 c4e2 * 7a6d * 8ea1faed,faed,8ea1faedv,faedv 651c e6949c 651c 0000651c c4e2 c4e2 c4e2 c4e2 c4e2 c4e2 c4e2 -5748 c4e3 c4e3 c4e3 * 7a6e * 8ea1faee,faee,8ea1faeev,faeev 6595 e69695 6595 00006595 c4e3 c4e3 c4e3 c4e3 c4e3 c4e3 c4e3 -5749 c4e4 c4e4 c4e4 * 7a6f * 8ea1faef,faef,8ea1faefv,faefv 66e9 e69ba9 66e9 000066e9 c4e4 c4e4 c4e4 c4e4 c4e4 c4e4 c4e4 -5750 c4e5 c4e5 c4e5 * 7a70 * 8ea1faf0,faf0,8ea1faf0v,faf0v 6afb e6abbb 6afb 00006afb c4e5 c4e5 c4e5 c4e5 c4e5 c4e5 c4e5 -5751 c4e6 c4e6 c4e6 * 7a71 * 8ea1faf1,faf1,8ea1faf1v,faf1v 6b04 e6ac84 6b04 00006b04 c4e6 c4e6 c4e6 c4e6 c4e6 c4e6 c4e6 -5752 c4e7 c4e7 c4e7 * 7a72 * 8ea1faf2,faf2,8ea1faf2v,faf2v 6afa e6abba 6afa 00006afa c4e7 c4e7 c4e7 c4e7 c4e7 c4e7 c4e7 -5753 c4e8 c4e8 c4e8 * 7a73 * 8ea1faf3,faf3,8ea1faf3v,faf3v 6bb2 e6aeb2 6bb2 00006bb2 c4e8 c4e8 c4e8 c4e8 c4e8 c4e8 c4e8 -5754 c4e9 c4e9 c4e9 * 7a74 * 8ea1faf4,faf4,8ea1faf4v,faf4v 704c e7818c 704c 0000704c c4e9 c4e9 c4e9 c4e9 c4e9 c4e9 c4e9 -5755 c4ea c4ea c4ea * 7a75 * 8ea1faf5,faf5,8ea1faf5v,faf5v 721b e7889b 721b 0000721b c4ea c4ea c4ea c4ea c4ea c4ea c4ea -5756 c4eb c4eb c4eb * 7a76 * 8ea1faf6,faf6,8ea1faf6v,faf6v 72a7 e78aa7 72a7 000072a7 c4eb c4eb c4eb c4eb c4eb c4eb c4eb -5757 c4ec c4ec c4ec * 7a77 * 8ea1faf7,faf7,8ea1faf7v,faf7v 74d6 e79396 74d6 000074d6 c4ec c4ec c4ec c4ec c4ec c4ec c4ec -5758 c4ed c4ed c4ed * 7a78 * 8ea1faf8,faf8,8ea1faf8v,faf8v 74d4 e79394 74d4 000074d4 c4ed c4ed c4ed c4ed c4ed c4ed c4ed -5759 c4ee c4ee c4ee * 7a79 * 8ea1faf9,faf9,8ea1faf9v,faf9v 7669 e799a9 7669 00007669 c4ee c4ee c4ee c4ee c4ee c4ee c4ee -5760 c4ef c4ef c4ef * 7a7a * 8ea1fafa,fafa,8ea1fafav,fafav 77d3 e79f93 77d3 000077d3 c4ef c4ef c4ef c4ef c4ef c4ef c4ef -5761 c4f0 c4f0 c4f0 * 7a7b * 8ea1fafb,fafb,8ea1fafbv,fafbv 7c50 e7b190 7c50 00007c50 c4f0 c4f0 c4f0 c4f0 c4f0 c4f0 c4f0 -5762 c4f1 c4f1 c4f1 * 7a7c * 8ea1fafc,fafc,8ea1fafcv,fafcv 7e8f e7ba8f 7e8f 00007e8f c4f1 c4f1 c4f1 c4f1 c4f1 c4f1 c4f1 -5763 c4f2 c4f2 c4f2 * 7a7d * 8ea1fafd,fafd,8ea1fafdv,fafdv 7e8c e7ba8c 7e8c 00007e8c c4f2 c4f2 c4f2 c4f2 c4f2 c4f2 c4f2 -5764 c4f3 c4f3 c4f3 * 7a7e * 8ea1fafe,fafe,8ea1fafev,fafev 7fbc e7bebc 7fbc 00007fbc c4f3 c4f3 c4f3 c4f3 c4f3 c4f3 c4f3 -5765 c4f4 c4f4 c4f4 * 7b21 * 8ea1fba1,fba1,8ea1fba1v,fba1v 8617 e89897 8617 00008617 c4f4 c4f4 c4f4 c4f4 c4f4 c4f4 c4f4 -5766 c4f5 c4f5 c4f5 * 7b22 * 8ea1fba2,fba2,8ea1fba2v,fba2v 862d e898ad 862d 0000862d c4f5 c4f5 c4f5 c4f5 c4f5 c4f5 c4f5 -5767 c4f6 c4f6 c4f6 * 7b23 * 8ea1fba3,fba3,8ea1fba3v,fba3v 861a e8989a 861a 0000861a c4f6 c4f6 c4f6 c4f6 c4f6 c4f6 c4f6 -5768 c4f7 c4f7 c4f7 * 7b24 * 8ea1fba4,fba4,8ea1fba4v,fba4v 8823 e8a0a3 8823 00008823 c4f7 c4f7 c4f7 c4f7 c4f7 c4f7 c4f7 -5769 c4f8 c4f8 c4f8 * 7b25 * 8ea1fba5,fba5,8ea1fba5v,fba5v 8822 e8a0a2 8822 00008822 c4f8 c4f8 c4f8 c4f8 c4f8 c4f8 c4f8 -5770 c4f9 c4f9 c4f9 * 7b26 * 8ea1fba6,fba6,8ea1fba6v,fba6v 8821 e8a0a1 8821 00008821 c4f9 c4f9 c4f9 c4f9 c4f9 c4f9 c4f9 -5771 c4fa c4fa c4fa * 7b27 * 8ea1fba7,fba7,8ea1fba7v,fba7v 881f e8a09f 881f 0000881f c4fa c4fa c4fa c4fa c4fa c4fa c4fa -5772 c4fb c4fb c4fb * 7b28 * 8ea1fba8,fba8,8ea1fba8v,fba8v 896a e8a5aa 896a 0000896a c4fb c4fb c4fb c4fb c4fb c4fb c4fb -5773 c4fc c4fc c4fc * 7b29 * 8ea1fba9,fba9,8ea1fba9v,fba9v 896c e8a5ac 896c 0000896c c4fc c4fc c4fc c4fc c4fc c4fc c4fc -5774 c4fd c4fd c4fd * 7b2a * 8ea1fbaa,fbaa,8ea1fbaav,fbaav 89bd e8a6bd 89bd 000089bd c4fd c4fd c4fd c4fd c4fd c4fd c4fd -5775 c4fe c4fe c4fe * 7b2b * 8ea1fbab,fbab,8ea1fbabv,fbabv 8b74 e8adb4 8b74 00008b74 c4fe c4fe c4fe c4fe c4fe c4fe c4fe -5776 c540 c540 c540 * 7b2c * 8ea1fbac,fbac,8ea1fbacv,fbacv 8b77 e8adb7 8b77 00008b77 c540 c540 c540 c540 c540 c540 c540 -5777 c541 c541 c541 * 7b2d * 8ea1fbad,fbad,8ea1fbadv,fbadv 8b7d e8adbd 8b7d 00008b7d c541 c541 c541 c541 c541 c541 c541 -5778 c542 c542 c542 * 7b2e * 8ea1fbae,fbae,8ea1fbaev,fbaev 8d13 e8b493 8d13 00008d13 c542 c542 c542 c542 c542 c542 c542 -5779 c543 c543 c543 * 7b2f * 8ea1fbaf,fbaf,8ea1fbafv,fbafv 8e8a e8ba8a 8e8a 00008e8a c543 c543 c543 c543 c543 c543 c543 -5780 c544 c544 c544 * 7b30 * 8ea1fbb0,fbb0,8ea1fbb0v,fbb0v 8e8d e8ba8d 8e8d 00008e8d c544 c544 c544 c544 c544 c544 c544 -5781 c545 c545 c545 * 7b31 * 8ea1fbb1,fbb1,8ea1fbb1v,fbb1v 8e8b e8ba8b 8e8b 00008e8b c545 c545 c545 c545 c545 c545 c545 -5782 c546 c546 c546 * 7b32 * 8ea1fbb2,fbb2,8ea1fbb2v,fbb2v 8f5f e8bd9f 8f5f 00008f5f c546 c546 c546 c546 c546 c546 c546 -5783 c547 c547 c547 * 7b33 * 8ea1fbb3,fbb3,8ea1fbb3v,fbb3v 8faf e8beaf 8faf 00008faf c547 c547 c547 c547 c547 c547 c547 -5784 c548 c548 c548 * 7b34 * 8ea1fbb4,fbb4,8ea1fbb4v,fbb4v 91ba e986ba 91ba 000091ba c548 c548 c548 c548 c548 c548 c548 -5785 c549 c549 c549 * 7b35 * 8ea1fbb5,fbb5,8ea1fbb5v,fbb5v 942e e990ae 942e 0000942e c549 c549 c549 c549 c549 c549 c549 -5786 c54a c54a c54a * 7b36 * 8ea1fbb6,fbb6,8ea1fbb6v,fbb6v 9433 e990b3 9433 00009433 c54a c54a c54a c54a c54a c54a c54a -5787 c54b c54b c54b * 7b37 * 8ea1fbb7,fbb7,8ea1fbb7v,fbb7v 9435 e990b5 9435 00009435 c54b c54b c54b c54b c54b c54b c54b -5788 c54c c54c c54c * 7b38 * 8ea1fbb8,fbb8,8ea1fbb8v,fbb8v 943a e990ba 943a 0000943a c54c c54c c54c c54c c54c c54c c54c -5789 c54d c54d c54d * 7b39 * 8ea1fbb9,fbb9,8ea1fbb9v,fbb9v 9438 e990b8 9438 00009438 c54d c54d c54d c54d c54d c54d c54d -5790 c54e c54e c54e * 7b3a * 8ea1fbba,fbba,8ea1fbbav,fbbav 9432 e990b2 9432 00009432 c54e c54e c54e c54e c54e c54e c54e -5791 c54f c54f c54f * 7b3b * 8ea1fbbb,fbbb,8ea1fbbbv,fbbbv 942b e990ab 942b 0000942b c54f c54f c54f c54f c54f c54f c54f -5792 c550 c550 c550 * 7b3c * 8ea1fbbc,fbbc,8ea1fbbcv,fbbcv 95e2 e997a2 95e2 000095e2 c550 c550 c550 c550 c550 c550 c550 -5793 c551 c551 c551 * 7b3d * 8ea1fbbd,fbbd,8ea1fbbdv,fbbdv 9738 e99cb8 9738 00009738 c551 c551 c551 c551 c551 c551 c551 -5794 c552 c552 c552 * 7b3e * 8ea1fbbe,fbbe,8ea1fbbev,fbbev 9739 e99cb9 9739 00009739 c552 c552 c552 c552 c552 c552 c552 -5795 c553 c553 c553 * 7b3f * 8ea1fbbf,fbbf,8ea1fbbfv,fbbfv 9732 e99cb2 9732 00009732 c553 c553 c553 c553 c553 c553 c553 -5796 c554 c554 c554 * 7b40 * 8ea1fbc0,fbc0,8ea1fbc0v,fbc0v 97ff e99fbf,ee939a 97ff,e4da 000097ff,0000e4da 90f1,c554 c554 c554 c554 c554 c554 90f1,c554 -5797 c555 c555 c555 * 7b41 * 8ea1fbc1,fbc1,8ea1fbc1v,fbc1v 9867 e9a1a7 9867 00009867 c555 c555 c555 c555 c555 c555 c555 -5798 c556 c556 c556 * 7b42 * 8ea1fbc2,fbc2,8ea1fbc2v,fbc2v 9865 e9a1a5 9865 00009865 c556 c556 c556 c556 c556 c556 c556 -5799 c557 c557 c557 * 7b43 * 8ea1fbc3,fbc3,8ea1fbc3v,fbc3v 9957 e9a597 9957 00009957 c557 c557 c557 c557 c557 c557 c557 -5800 c558 c558 c558 * 7b44 * 8ea1fbc4,fbc4,8ea1fbc4v,fbc4v 9a45 e9a985 9a45 00009a45 c558 c558 c558 c558 c558 c558 c558 -5801 c559 c559 c559 * 7b45 * 8ea1fbc5,fbc5,8ea1fbc5v,fbc5v 9a43 e9a983 9a43 00009a43 c559 c559 c559 c559 c559 c559 c559 -5802 c55a c55a c55a * 7b46 * 8ea1fbc6,fbc6,8ea1fbc6v,fbc6v 9a40 e9a980 9a40 00009a40 c55a c55a c55a c55a c55a c55a c55a -5803 c55b c55b c55b * 7b47 * 8ea1fbc7,fbc7,8ea1fbc7v,fbc7v 9a3e e9a8be 9a3e 00009a3e c55b c55b c55b c55b c55b c55b c55b -5804 c55c c55c c55c * 7b48 * 8ea1fbc8,fbc8,8ea1fbc8v,fbc8v 9acf e9ab8f 9acf 00009acf c55c c55c c55c c55c c55c c55c c55c -5805 c55d c55d c55d * 7b49 * 8ea1fbc9,fbc9,8ea1fbc9v,fbc9v 9b54 e9ad94 9b54 00009b54 c55d c55d c55d c55d c55d c55d c55d -5806 c55e c55e c55e * 7b4a * 8ea1fbca,fbca,8ea1fbcav,fbcav 9b51 e9ad91 9b51 00009b51 c55e c55e c55e c55e c55e c55e c55e -5807 c55f c55f c55f * 7b4b * 8ea1fbcb,fbcb,8ea1fbcbv,fbcbv 9c2d e9b0ad 9c2d 00009c2d c55f c55f c55f c55f c55f c55f c55f -5808 c560 c560 c560 * 7b4c * 8ea1fbcc,fbcc,8ea1fbccv,fbccv 9c25 e9b0a5 9c25 00009c25 c560 c560 c560 c560 c560 c560 c560 -5809 c561 c561 c561 * 7b4d * 8ea1fbcd,fbcd,8ea1fbcdv,fbcdv 9daf e9b6af 9daf 00009daf c561 c561 c561 c561 c561 c561 c561 -5810 c562 c562 c562 * 7b4e * 8ea1fbce,fbce,8ea1fbcev,fbcev 9db4 e9b6b4 9db4 00009db4 c562 c562 c562 c562 c562 c562 c562 -5811 c563 c563 c563 * 7b4f * 8ea1fbcf,fbcf,8ea1fbcfv,fbcfv 9dc2 e9b782 9dc2 00009dc2 c563 c563 c563 c563 c563 c563 c563 -5812 c564 c564 c564 * 7b50 * 8ea1fbd0,fbd0,8ea1fbd0v,fbd0v 9db8 e9b6b8 9db8 00009db8 c564 c564 c564 c564 c564 c564 c564 -5813 c565 c565 c565 * 7b51 * 8ea1fbd1,fbd1,8ea1fbd1v,fbd1v 9e9d e9ba9d 9e9d 00009e9d c565 c565 c565 c565 c565 c565 c565 -5814 c566 c566 c566 * 7b52 * 8ea1fbd2,fbd2,8ea1fbd2v,fbd2v 9eef e9bbaf 9eef 00009eef c566 c566 c566 c566 c566 c566 c566 -5815 c567 c567 c567 * 7b53 * 8ea1fbd3,fbd3,8ea1fbd3v,fbd3v 9f19 e9bc99 9f19 00009f19 c567 c567 c567 c567 c567 c567 c567 -5816 c568 c568 c568 * 7b54 * 8ea1fbd4,fbd4,8ea1fbd4v,fbd4v 9f5c e9bd9c 9f5c 00009f5c c568 c568 c568 c568 c568 c568 c568 -5817 c569 c569 c569 * 7b55 * 8ea1fbd5,fbd5,8ea1fbd5v,fbd5v 9f66 e9bda6 9f66 00009f66 c569 c569 c569 c569 c569 c569 c569 -5818 c56a c56a c56a * 7b56 * 8ea1fbd6,fbd6,8ea1fbd6v,fbd6v 9f67 e9bda7 9f67 00009f67 c56a c56a c56a c56a c56a c56a c56a -5819 c56b c56b c56b * 7b57 * 8ea1fbd7,fbd7,8ea1fbd7v,fbd7v 513c e584bc 513c 0000513c c56b c56b c56b c56b c56b c56b c56b -5820 c56c c56c c56c * 7b58 * 8ea1fbd8,fbd8,8ea1fbd8v,fbd8v 513b e584bb 513b 0000513b c56c c56c c56c c56c c56c c56c c56c -5821 c56d c56d c56d * 7b59 * 8ea1fbd9,fbd9,8ea1fbd9v,fbd9v 56c8 e59b88 56c8 000056c8 c56d c56d c56d c56d c56d c56d c56d -5822 c56e c56e c56e * 7b5a * 8ea1fbda,fbda,8ea1fbdav,fbdav 56ca e59b8a 56ca 000056ca c56e c56e c56e c56e c56e c56e c56e -5823 c56f c56f c56f * 7b5b * 8ea1fbdb,fbdb,8ea1fbdbv,fbdbv 56c9 e59b89 56c9 000056c9 c56f c56f c56f c56f c56f c56f c56f -5824 c570 c570 c570 * 7b5c * 8ea1fbdc,fbdc,8ea1fbdcv,fbdcv 5b7f e5adbf 5b7f 00005b7f c570 c570 c570 c570 c570 c570 c570 -5825 c571 c571 c571 * 7b5d * 8ea1fbdd,fbdd,8ea1fbddv,fbddv 5dd4 e5b794 5dd4 00005dd4 c571 c571 c571 c571 c571 c571 c571 -5826 c572 c572 c572 * 7b5e * 8ea1fbde,fbde,8ea1fbdev,fbdev 5dd2 e5b792 5dd2 00005dd2 c572 c572 c572 c572 c572 c572 c572 -5827 c573 c573 c573 * 7b5f * 8ea1fbdf,fbdf,8ea1fbdfv,fbdfv 5f4e e5bd8e 5f4e 00005f4e c573 c573 c573 c573 c573 c573 c573 -5828 c574 c574 c574 * 7b60 * 8ea1fbe0,fbe0,8ea1fbe0v,fbe0v 61ff e687bf 61ff 000061ff c574 c574 c574 c574 c574 c574 c574 -5829 c575 c575 c575 * 7b61 * 8ea1fbe1,fbe1,8ea1fbe1v,fbe1v 6524 e694a4 6524 00006524 c575 c575 c575 c575 c575 c575 c575 -5830 c576 c576 c576 * 7b62 * 8ea1fbe2,fbe2,8ea1fbe2v,fbe2v 6b0a e6ac8a 6b0a 00006b0a c576 c576 c576 c576 c576 c576 c576 -5831 c577 c577 c577 * 7b63 * 8ea1fbe3,fbe3,8ea1fbe3v,fbe3v 6b61 e6ada1 6b61 00006b61 c577 c577 c577 c577 c577 c577 c577 -5832 c578 c578 c578 * 7b64 * 8ea1fbe4,fbe4,8ea1fbe4v,fbe4v 7051 e78191 7051 00007051 c578 c578 c578 c578 c578 c578 c578 -5833 c579 c579 c579 * 7b65 * 8ea1fbe5,fbe5,8ea1fbe5v,fbe5v 7058 e78198 7058 00007058 c579 c579 c579 c579 c579 c579 c579 -5834 c57a c57a c57a * 7b66 * 8ea1fbe6,fbe6,8ea1fbe6v,fbe6v 7380 e78e80 7380 00007380 c57a c57a c57a c57a c57a c57a c57a -5835 c57b c57b c57b * 7b67 * 8ea1fbe7,fbe7,8ea1fbe7v,fbe7v 74e4 e793a4 74e4 000074e4 c57b c57b c57b c57b c57b c57b c57b -5836 c57c c57c c57c * 7b68 * 8ea1fbe8,fbe8,8ea1fbe8v,fbe8v 758a e7968a 758a 0000758a c57c c57c c57c c57c c57c c57c c57c -5837 c57d c57d c57d * 7b69 * 8ea1fbe9,fbe9,8ea1fbe9v,fbe9v 766e e799ae 766e 0000766e c57d c57d c57d c57d c57d c57d c57d -5838 c57e c57e c57e * 7b6a * 8ea1fbea,fbea,8ea1fbeav,fbeav 766c e799ac 766c 0000766c c57e c57e c57e c57e c57e c57e c57e -5839 c5a1 c5a1 c5a1 * 7b6b * 8ea1fbeb,fbeb,8ea1fbebv,fbebv 79b3 e7a6b3 79b3 000079b3 c5a1 c5a1 c5a1 c5a1 c5a1 c5a1 c5a1 -5840 c5a2 c5a2 c5a2 * 7b6c * 8ea1fbec,fbec,8ea1fbecv,fbecv 7c60 e7b1a0 7c60 00007c60 c5a2 c5a2 c5a2 c5a2 c5a2 c5a2 c5a2 -5841 c5a3 c5a3 c5a3 * 7b6d * 8ea1fbed,fbed,8ea1fbedv,fbedv 7c5f e7b19f 7c5f 00007c5f c5a3 c5a3 c5a3 c5a3 c5a3 c5a3 c5a3 -5842 c5a4 c5a4 c5a4 * 7b6e * 8ea1fbee,fbee,8ea1fbeev,fbeev 807e e881be 807e 0000807e c5a4 c5a4 c5a4 c5a4 c5a4 c5a4 c5a4 -5843 c5a5 c5a5 c5a5 * 7b6f * 8ea1fbef,fbef,8ea1fbefv,fbefv 807d e881bd 807d 0000807d c5a5 c5a5 c5a5 c5a5 c5a5 c5a5 c5a5 -5844 c5a6 c5a6 c5a6 * 7b70 * 8ea1fbf0,fbf0,8ea1fbf0v,fbf0v 81df e8879f 81df 000081df c5a6 c5a6 c5a6 c5a6 c5a6 c5a6 c5a6 -5845 c5a7 c5a7 c5a7 * 7b71 * 8ea1fbf1,fbf1,8ea1fbf1v,fbf1v 8972 e8a5b2 8972 00008972 c5a7 c5a7 c5a7 c5a7 c5a7 c5a7 c5a7 -5846 c5a8 c5a8 c5a8 * 7b72 * 8ea1fbf2,fbf2,8ea1fbf2v,fbf2v 896f e8a5af 896f 0000896f c5a8 c5a8 c5a8 c5a8 c5a8 c5a8 c5a8 -5847 c5a9 c5a9 c5a9 * 7b73 * 8ea1fbf3,fbf3,8ea1fbf3v,fbf3v 89fc e8a7bc 89fc 000089fc c5a9 c5a9 c5a9 c5a9 c5a9 c5a9 c5a9 -5848 c5aa c5aa c5aa * 7b74 * 8ea1fbf4,fbf4,8ea1fbf4v,fbf4v 8b80 e8ae80 8b80 00008b80 c5aa c5aa c5aa c5aa c5aa c5aa c5aa -5849 c5ab c5ab c5ab * 7b75 * 8ea1fbf5,fbf5,8ea1fbf5v,fbf5v 8d16 e8b496 8d16 00008d16 c5ab c5ab c5ab c5ab c5ab c5ab c5ab -5850 c5ac c5ac c5ac * 7b76 * 8ea1fbf6,fbf6,8ea1fbf6v,fbf6v 8d17 e8b497 8d17 00008d17 c5ac c5ac c5ac c5ac c5ac c5ac c5ac -5851 c5ad c5ad c5ad * 7b77 * 8ea1fbf7,fbf7,8ea1fbf7v,fbf7v 8e91 e8ba91 8e91 00008e91 c5ad c5ad c5ad c5ad c5ad c5ad c5ad -5852 c5ae c5ae c5ae * 7b78 * 8ea1fbf8,fbf8,8ea1fbf8v,fbf8v 8e93 e8ba93 8e93 00008e93 c5ae c5ae c5ae c5ae c5ae c5ae c5ae -5853 c5af c5af c5af * 7b79 * 8ea1fbf9,fbf9,8ea1fbf9v,fbf9v 8f61 e8bda1 8f61 00008f61 c5af c5af c5af c5af c5af c5af c5af -5854 c5b0 c5b0 c5b0 * 7b7a * 8ea1fbfa,fbfa,8ea1fbfav,fbfav 9148 e98588 9148 00009148 c5b0 c5b0 c5b0 c5b0 c5b0 c5b0 c5b0 -5855 c5b1 c5b1 c5b1 * 7b7b * 8ea1fbfb,fbfb,8ea1fbfbv,fbfbv 9444 e99184 9444 00009444 c5b1 c5b1 c5b1 c5b1 c5b1 c5b1 c5b1 -5856 c5b2 c5b2 c5b2 * 7b7c * 8ea1fbfc,fbfc,8ea1fbfcv,fbfcv 9451 e99191 9451 00009451 c5b2 c5b2 c5b2 c5b2 c5b2 c5b2 c5b2 -5857 c5b3 c5b3 c5b3 * 7b7d * 8ea1fbfd,fbfd,8ea1fbfdv,fbfdv 9452 e99192 9452 00009452 c5b3 c5b3 c5b3 c5b3 c5b3 c5b3 c5b3 -5858 c5b4 c5b4 c5b4 * 7b7e * 8ea1fbfe,fbfe,8ea1fbfev,fbfev 973d e99cbd 973d 0000973d c5b4 c5b4 c5b4 c5b4 c5b4 c5b4 c5b4 -5859 c5b5 c5b5 c5b5 * 7c21 * 8ea1fca1,fca1,8ea1fca1v,fca1v 973e e99cbe 973e 0000973e c5b5 c5b5 c5b5 c5b5 c5b5 c5b5 c5b5 -5860 c5b6 c5b6 c5b6 * 7c22 * 8ea1fca2,fca2,8ea1fca2v,fca2v 97c3 e99f83 97c3 000097c3 c5b6 c5b6 c5b6 c5b6 c5b6 c5b6 c5b6 -5861 c5b7 c5b7 c5b7 * 7c23 * 8ea1fca3,fca3,8ea1fca3v,fca3v 97c1 e99f81 97c1 000097c1 c5b7 c5b7 c5b7 c5b7 c5b7 c5b7 c5b7 -5862 c5b8 c5b8 c5b8 * 7c24 * 8ea1fca4,fca4,8ea1fca4v,fca4v 986b e9a1ab 986b 0000986b c5b8 c5b8 c5b8 c5b8 c5b8 c5b8 c5b8 -5863 c5b9 c5b9 c5b9 * 7c25 * 8ea1fca5,fca5,8ea1fca5v,fca5v 9955 e9a595 9955 00009955 c5b9 c5b9 c5b9 c5b9 c5b9 c5b9 c5b9 -5864 c5ba c5ba c5ba * 7c26 * 8ea1fca6,fca6,8ea1fca6v,fca6v 9a55 e9a995 9a55 00009a55 c5ba c5ba c5ba c5ba c5ba c5ba c5ba -5865 c5bb c5bb c5bb * 7c27 * 8ea1fca7,fca7,8ea1fca7v,fca7v 9a4d e9a98d 9a4d 00009a4d c5bb c5bb c5bb c5bb c5bb c5bb c5bb -5866 c5bc c5bc c5bc * 7c28 * 8ea1fca8,fca8,8ea1fca8v,fca8v 9ad2 e9ab92 9ad2 00009ad2 c5bc c5bc c5bc c5bc c5bc c5bc c5bc -5867 c5bd c5bd c5bd * 7c29 * 8ea1fca9,fca9,8ea1fca9v,fca9v 9b1a e9ac9a 9b1a 00009b1a c5bd c5bd c5bd c5bd c5bd c5bd c5bd -5868 c5be c5be c5be * 7c2a * 8ea1fcaa,fcaa,8ea1fcaav,fcaav 9c49 e9b189 9c49 00009c49 c5be c5be c5be c5be c5be c5be c5be -5869 c5bf c5bf c5bf * 7c2b * 8ea1fcab,fcab,8ea1fcabv,fcabv 9c31 e9b0b1 9c31 00009c31 c5bf c5bf c5bf c5bf c5bf c5bf c5bf -5870 c5c0 c5c0 c5c0 * 7c2c * 8ea1fcac,fcac,8ea1fcacv,fcacv 9c3e e9b0be 9c3e 00009c3e c5c0 c5c0 c5c0 c5c0 c5c0 c5c0 c5c0 -5871 c5c1 c5c1 c5c1 * 7c2d * 8ea1fcad,fcad,8ea1fcadv,fcadv 9c3b e9b0bb 9c3b 00009c3b c5c1 c5c1 c5c1 c5c1 c5c1 c5c1 c5c1 -5872 c5c2 c5c2 c5c2 * 7c2e * 8ea1fcae,fcae,8ea1fcaev,fcaev 9dd3 e9b793 9dd3 00009dd3 c5c2 c5c2 c5c2 c5c2 c5c2 c5c2 c5c2 -5873 c5c3 c5c3 c5c3 * 7c2f * 8ea1fcaf,fcaf,8ea1fcafv,fcafv 9dd7 e9b797 9dd7 00009dd7 c5c3 c5c3 c5c3 c5c3 c5c3 c5c3 c5c3 -5874 c5c4 c5c4 c5c4 * 7c30 * 8ea1fcb0,fcb0,8ea1fcb0v,fcb0v 9f34 e9bcb4 9f34 00009f34 c5c4 c5c4 c5c4 c5c4 c5c4 c5c4 c5c4 -5875 c5c5 c5c5 c5c5 * 7c31 * 8ea1fcb1,fcb1,8ea1fcb1v,fcb1v 9f6c e9bdac 9f6c 00009f6c c5c5 c5c5 c5c5 c5c5 c5c5 c5c5 c5c5 -5876 c5c6 c5c6 c5c6 * 7c32 * 8ea1fcb2,fcb2,8ea1fcb2v,fcb2v 9f6a e9bdaa 9f6a 00009f6a c5c6 c5c6 c5c6 c5c6 c5c6 c5c6 c5c6 -5877 c5c7 c5c7 c5c7 * 7c33 * 8ea1fcb3,fcb3,8ea1fcb3v,fcb3v 9f94 e9be94 9f94 00009f94 c5c7 c5c7 c5c7 c5c7 c5c7 c5c7 c5c7 -5878 c5c8 c5c8 c5c8 * 7c34 * 8ea1fcb4,fcb4,8ea1fcb4v,fcb4v 56cc e59b8c 56cc 000056cc c5c8 c5c8 c5c8 c5c8 c5c8 c5c8 c5c8 -5879 c5c9 c5c9 c5c9 * 7c35 * 8ea1fcb5,fcb5,8ea1fcb5v,fcb5v 5dd6 e5b796 5dd6 00005dd6 c5c9 c5c9 c5c9 c5c9 c5c9 c5c9 c5c9 -5880 c5ca c5ca c5ca * 7c36 * 8ea1fcb6,fcb6,8ea1fcb6v,fcb6v 6200 e68880 6200 00006200 c5ca c5ca c5ca c5ca c5ca c5ca c5ca -5881 c5cb c5cb c5cb * 7c37 * 8ea1fcb7,fcb7,8ea1fcb7v,fcb7v 6523 e694a3 6523 00006523 c5cb c5cb c5cb c5cb c5cb c5cb c5cb -5882 c5cc c5cc c5cc * 7c38 * 8ea1fcb8,fcb8,8ea1fcb8v,fcb8v 652b e694ab 652b 0000652b c5cc c5cc c5cc c5cc c5cc c5cc c5cc -5883 c5cd c5cd c5cd * 7c39 * 8ea1fcb9,fcb9,8ea1fcb9v,fcb9v 652a e694aa 652a 0000652a c5cd c5cd c5cd c5cd c5cd c5cd c5cd -5884 c5ce c5ce c5ce * 7c3a * 8ea1fcba,fcba,8ea1fcbav,fcbav 66ec e69bac 66ec 000066ec c5ce c5ce c5ce c5ce c5ce c5ce c5ce -5885 c5cf c5cf c5cf * 7c3b * 8ea1fcbb,fcbb,8ea1fcbbv,fcbbv 6b10 e6ac90 6b10 00006b10 c5cf c5cf c5cf c5cf c5cf c5cf c5cf -5886 c5d0 c5d0 c5d0 * 7c3c * 8ea1fcbc,fcbc,8ea1fcbcv,fcbcv 74da e7939a 74da 000074da c5d0 c5d0 c5d0 c5d0 c5d0 c5d0 c5d0 -5887 c5d1 c5d1 c5d1 * 7c3d * 8ea1fcbd,fcbd,8ea1fcbdv,fcbdv 7aca e7ab8a 7aca 00007aca c5d1 c5d1 c5d1 c5d1 c5d1 c5d1 c5d1 -5888 c5d2 c5d2 c5d2 * 7c3e * 8ea1fcbe,fcbe,8ea1fcbev,fcbev 7c64 e7b1a4 7c64 00007c64 c5d2 c5d2 c5d2 c5d2 c5d2 c5d2 c5d2 -5889 c5d3 c5d3 c5d3 * 7c3f * 8ea1fcbf,fcbf,8ea1fcbfv,fcbfv 7c63 e7b1a3 7c63 00007c63 c5d3 c5d3 c5d3 c5d3 c5d3 c5d3 c5d3 -5890 c5d4 c5d4 c5d4 * 7c40 * 8ea1fcc0,fcc0,8ea1fcc0v,fcc0v 7c65 e7b1a5 7c65 00007c65 c5d4 c5d4 c5d4 c5d4 c5d4 c5d4 c5d4 -5891 c5d5 c5d5 c5d5 * 7c41 * 8ea1fcc1,fcc1,8ea1fcc1v,fcc1v 7e93 e7ba93 7e93 00007e93 c5d5 c5d5 c5d5 c5d5 c5d5 c5d5 c5d5 -5892 c5d6 c5d6 c5d6 * 7c42 * 8ea1fcc2,fcc2,8ea1fcc2v,fcc2v 7e96 e7ba96 7e96 00007e96 c5d6 c5d6 c5d6 c5d6 c5d6 c5d6 c5d6 -5893 c5d7 c5d7 c5d7 * 7c43 * 8ea1fcc3,fcc3,8ea1fcc3v,fcc3v 7e94 e7ba94 7e94 00007e94 c5d7 c5d7 c5d7 c5d7 c5d7 c5d7 c5d7 -5894 c5d8 c5d8 c5d8 * 7c44 * 8ea1fcc4,fcc4,8ea1fcc4v,fcc4v 81e2 e887a2 81e2 000081e2 c5d8 c5d8 c5d8 c5d8 c5d8 c5d8 c5d8 -5895 c5d9 c5d9 c5d9 * 7c45 * 8ea1fcc5,fcc5,8ea1fcc5v,fcc5v 8638 e898b8 8638 00008638 c5d9 c5d9 c5d9 c5d9 c5d9 c5d9 c5d9 -5896 c5da c5da c5da * 7c46 * 8ea1fcc6,fcc6,8ea1fcc6v,fcc6v 863f e898bf 863f 0000863f c5da c5da c5da c5da c5da c5da c5da -5897 c5db c5db c5db * 7c47 * 8ea1fcc7,fcc7,8ea1fcc7v,fcc7v 8831 e8a0b1 8831 00008831 c5db c5db c5db c5db c5db c5db c5db -5898 c5dc c5dc c5dc * 7c48 * 8ea1fcc8,fcc8,8ea1fcc8v,fcc8v 8b8a e8ae8a 8b8a 00008b8a c5dc c5dc c5dc c5dc c5dc c5dc c5dc -5899 c5dd c5dd c5dd * 7c49 * 8ea1fcc9,fcc9,8ea1fcc9v,fcc9v 9090 e98290 9090 00009090 c5dd c5dd c5dd c5dd c5dd c5dd c5dd -5900 c5de c5de c5de * 7c4a * 8ea1fcca,fcca,8ea1fccav,fccav 908f e9828f 908f 0000908f c5de c5de c5de c5de c5de c5de c5de -5901 c5df c5df c5df * 7c4b * 8ea1fccb,fccb,8ea1fccbv,fccbv 9463 e991a3 9463 00009463 c5df c5df c5df c5df c5df c5df c5df -5902 c5e0 c5e0 c5e0 * 7c4c * 8ea1fccc,fccc,8ea1fcccv,fcccv 9460 e991a0 9460 00009460 c5e0 c5e0 c5e0 c5e0 c5e0 c5e0 c5e0 -5903 c5e1 c5e1 c5e1 * 7c4d * 8ea1fccd,fccd,8ea1fccdv,fccdv 9464 e991a4 9464 00009464 c5e1 c5e1 c5e1 c5e1 c5e1 c5e1 c5e1 -5904 c5e2 c5e2 c5e2 * 7c4e * 8ea1fcce,fcce,8ea1fccev,fccev 9768 e99da8 9768 00009768 c5e2 c5e2 c5e2 c5e2 c5e2 c5e2 c5e2 -5905 c5e3 c5e3 c5e3 * 7c4f * 8ea1fccf,fccf,8ea1fccfv,fccfv 986f e9a1af 986f 0000986f c5e3 c5e3 c5e3 c5e3 c5e3 c5e3 c5e3 -5906 c5e4 c5e4 c5e4 * 7c50 * 8ea1fcd0,fcd0,8ea1fcd0v,fcd0v 995c e9a59c 995c 0000995c c5e4 c5e4 c5e4 c5e4 c5e4 c5e4 c5e4 -5907 c5e5 c5e5 c5e5 * 7c51 * 8ea1fcd1,fcd1,8ea1fcd1v,fcd1v 9a5a e9a99a 9a5a 00009a5a c5e5 c5e5 c5e5 c5e5 c5e5 c5e5 c5e5 -5908 c5e6 c5e6 c5e6 * 7c52 * 8ea1fcd2,fcd2,8ea1fcd2v,fcd2v 9a5b e9a99b 9a5b 00009a5b c5e6 c5e6 c5e6 c5e6 c5e6 c5e6 c5e6 -5909 c5e7 c5e7 c5e7 * 7c53 * 8ea1fcd3,fcd3,8ea1fcd3v,fcd3v 9a57 e9a997 9a57 00009a57 c5e7 c5e7 c5e7 c5e7 c5e7 c5e7 c5e7 -5910 c5e8 c5e8 c5e8 * 7c54 * 8ea1fcd4,fcd4,8ea1fcd4v,fcd4v 9ad3 e9ab93 9ad3 00009ad3 c5e8 c5e8 c5e8 c5e8 c5e8 c5e8 c5e8 -5911 c5e9 c5e9 c5e9 * 7c55 * 8ea1fcd5,fcd5,8ea1fcd5v,fcd5v 9ad4 e9ab94 9ad4 00009ad4 c5e9 c5e9 c5e9 c5e9 c5e9 c5e9 c5e9 -5912 c5ea c5ea c5ea * 7c56 * 8ea1fcd6,fcd6,8ea1fcd6v,fcd6v 9ad1 e9ab91 9ad1 00009ad1 c5ea c5ea c5ea c5ea c5ea c5ea c5ea -5913 c5eb c5eb c5eb * 7c57 * 8ea1fcd7,fcd7,8ea1fcd7v,fcd7v 9c54 e9b194 9c54 00009c54 c5eb c5eb c5eb c5eb c5eb c5eb c5eb -5914 c5ec c5ec c5ec * 7c58 * 8ea1fcd8,fcd8,8ea1fcd8v,fcd8v 9c57 e9b197 9c57 00009c57 c5ec c5ec c5ec c5ec c5ec c5ec c5ec -5915 c5ed c5ed c5ed * 7c59 * 8ea1fcd9,fcd9,8ea1fcd9v,fcd9v 9c56 e9b196 9c56 00009c56 c5ed c5ed c5ed c5ed c5ed c5ed c5ed -5916 c5ee c5ee c5ee * 7c5a * 8ea1fcda,fcda,8ea1fcdav,fcdav 9de5 e9b7a5 9de5 00009de5 c5ee c5ee c5ee c5ee c5ee c5ee c5ee -5917 c5ef c5ef c5ef * 7c5b * 8ea1fcdb,fcdb,8ea1fcdbv,fcdbv 9e9f e9ba9f 9e9f 00009e9f c5ef c5ef c5ef c5ef c5ef c5ef c5ef -5918 c5f0 c5f0 c5f0 * 7c5c * 8ea1fcdc,fcdc,8ea1fcdcv,fcdcv 9ef4 e9bbb4 9ef4 00009ef4 c5f0 c5f0 c5f0 c5f0 c5f0 c5f0 c5f0 -5919 c5f1 c5f1 c5f1 * 7c5d * 8ea1fcdd,fcdd,8ea1fcddv,fcddv 56d1 e59b91 56d1 000056d1 c5f1 c5f1 c5f1 c5f1 c5f1 c5f1 c5f1 -5920 c5f2 c5f2 c5f2 * 7c5e * 8ea1fcde,fcde,8ea1fcdev,fcdev 58e9 e5a3a9 58e9 000058e9 c5f2 c5f2 c5f2 c5f2 c5f2 c5f2 c5f2 -5921 c5f3 c5f3 c5f3 * 7c5f * 8ea1fcdf,fcdf,8ea1fcdfv,fcdfv 652c e694ac 652c 0000652c c5f3 c5f3 c5f3 c5f3 c5f3 c5f3 c5f3 -5922 c5f4 c5f4 c5f4 * 7c60 * 8ea1fce0,fce0,8ea1fce0v,fce0v 705e e7819e 705e 0000705e c5f4 c5f4 c5f4 c5f4 c5f4 c5f4 c5f4 -5923 c5f5 c5f5 c5f5 * 7c61 * 8ea1fce1,fce1,8ea1fce1v,fce1v 7671 e799b1 7671 00007671 c5f5 c5f5 c5f5 c5f5 c5f5 c5f5 c5f5 -5924 c5f6 c5f6 c5f6 * 7c62 * 8ea1fce2,fce2,8ea1fce2v,fce2v 7672 e799b2 7672 00007672 c5f6 c5f6 c5f6 c5f6 c5f6 c5f6 c5f6 -5925 c5f7 c5f7 c5f7 * 7c63 * 8ea1fce3,fce3,8ea1fce3v,fce3v 77d7 e79f97,eead82 77d7,eb42 000077d7,0000eb42 9b78,c5f7 c5f7 c5f7 c5f7 c5f7 c5f7 9b78,c5f7 -5926 c5f8 c5f8 c5f8 * 7c64 * 8ea1fce4,fce4,8ea1fce4v,fce4v 7f50 e7bd90 7f50 00007f50 c5f8 c5f8 c5f8 c5f8 c5f8 c5f8 c5f8 -5927 c5f9 c5f9 c5f9 * 7c65 * 8ea1fce5,fce5,8ea1fce5v,fce5v 7f88 e7be88 7f88 00007f88 c5f9 c5f9 c5f9 c5f9 c5f9 c5f9 c5f9 -5928 c5fa c5fa c5fa * 7c66 * 8ea1fce6,fce6,8ea1fce6v,fce6v 8836 e8a0b6 8836 00008836 c5fa c5fa c5fa c5fa c5fa c5fa c5fa -5929 c5fb c5fb c5fb * 7c67 * 8ea1fce7,fce7,8ea1fce7v,fce7v 8839 e8a0b9 8839 00008839 c5fb c5fb c5fb c5fb c5fb c5fb c5fb -5930 c5fc c5fc c5fc * 7c68 * 8ea1fce8,fce8,8ea1fce8v,fce8v 8862 e8a1a2 8862 00008862 c5fc c5fc c5fc c5fc c5fc c5fc c5fc -5931 c5fd c5fd c5fd * 7c69 * 8ea1fce9,fce9,8ea1fce9v,fce9v 8b93 e8ae93 8b93 00008b93 c5fd c5fd c5fd c5fd c5fd c5fd c5fd -5932 c5fe c5fe c5fe * 7c6a * 8ea1fcea,fcea,8ea1fceav,fceav 8b92 e8ae92 8b92 00008b92 c5fe c5fe c5fe c5fe c5fe c5fe c5fe -5933 c640 c640 c640 * 7c6b * 8ea1fceb,fceb,8ea1fcebv,fcebv 8b96 e8ae96 8b96 00008b96 c640 c640 c640 c640 c640 c640 c640 -5934 c641 c641 c641 * 7c6c * 8ea1fcec,fcec,8ea1fcecv,fcecv 8277 e889b7 8277 00008277 c641 c641 c641 c641 c641 c641 c641 -5935 c642 c642 c642 * 7c6d * 8ea1fced,fced,8ea1fcedv,fcedv 8d1b e8b49b 8d1b 00008d1b c642 c642 c642 c642 c642 c642 c642 -5936 c643 c643 c643 * 7c6e * 8ea1fcee,fcee,8ea1fceev,fceev 91c0 e98780 91c0 000091c0 c643 c643 c643 c643 c643 c643 c643 -5937 c644 c644 c644 * 7c6f * 8ea1fcef,fcef,8ea1fcefv,fcefv 946a e991aa 946a 0000946a c644 c644 c644 c644 c644 c644 c644 -5938 c645 c645 c645 * 7c70 * 8ea1fcf0,fcf0,8ea1fcf0v,fcf0v 9742 e99d82 9742 00009742 c645 c645 c645 c645 c645 c645 c645 -5939 c646 c646 c646 * 7c71 * 8ea1fcf1,fcf1,8ea1fcf1v,fcf1v 9748 e99d88 9748 00009748 c646 c646 c646 c646 c646 c646 c646 -5940 c647 c647 c647 * 7c72 * 8ea1fcf2,fcf2,8ea1fcf2v,fcf2v 9744 e99d84 9744 00009744 c647 c647 c647 c647 c647 c647 c647 -5941 c648 c648 c648 * 7c73 * 8ea1fcf3,fcf3,8ea1fcf3v,fcf3v 97c6 e99f86 97c6 000097c6 c648 c648 c648 c648 c648 c648 c648 -5942 c649 c649 c649 * 7c74 * 8ea1fcf4,fcf4,8ea1fcf4v,fcf4v 9870 e9a1b0 9870 00009870 c649 c649 c649 c649 c649 c649 c649 -5943 c64a c64a c64a * 7c75 * 8ea1fcf5,fcf5,8ea1fcf5v,fcf5v 9a5f e9a99f 9a5f 00009a5f c64a c64a c64a c64a c64a c64a c64a -5944 c64b c64b c64b * 7c76 * 8ea1fcf6,fcf6,8ea1fcf6v,fcf6v 9b22 e9aca2 9b22 00009b22 c64b c64b c64b c64b c64b c64b c64b -5945 c64c c64c c64c * 7c77 * 8ea1fcf7,fcf7,8ea1fcf7v,fcf7v 9b58 e9ad98 9b58 00009b58 c64c c64c c64c c64c c64c c64c c64c -5946 c64d c64d c64d * 7c78 * 8ea1fcf8,fcf8,8ea1fcf8v,fcf8v 9c5f e9b19f 9c5f 00009c5f c64d c64d c64d c64d c64d c64d c64d -5947 c64e c64e c64e * 7c79 * 8ea1fcf9,fcf9,8ea1fcf9v,fcf9v 9df9 e9b7b9 9df9 00009df9 c64e c64e c64e c64e c64e c64e c64e -5948 c64f c64f c64f * 7c7a * 8ea1fcfa,fcfa,8ea1fcfav,fcfav 9dfa e9b7ba 9dfa 00009dfa c64f c64f c64f c64f c64f c64f c64f -5949 c650 c650 c650 * 7c7b * 8ea1fcfb,fcfb,8ea1fcfbv,fcfbv 9e7c e9b9bc 9e7c 00009e7c c650 c650 c650 c650 c650 c650 c650 -5950 c651 c651 c651 * 7c7c * 8ea1fcfc,fcfc,8ea1fcfcv,fcfcv 9e7d e9b9bd 9e7d 00009e7d c651 c651 c651 c651 c651 c651 c651 -5951 c652 c652 c652 * 7c7d * 8ea1fcfd,fcfd,8ea1fcfdv,fcfdv 9f07 e9bc87 9f07 00009f07 c652 c652 c652 c652 c652 c652 c652 -5952 c653 c653 c653 * 7c7e * 8ea1fcfe,fcfe,8ea1fcfev,fcfev 9f77 e9bdb7 9f77 00009f77 c653 c653 c653 c653 c653 c653 c653 -5953 c654 c654 c654 * 7d21 * 8ea1fda1,fda1,8ea1fda1v,fda1v 9f72 e9bdb2 9f72 00009f72 c654 c654 c654 c654 c654 c654 c654 -5954 c655 c655 c655 * 7d22 * 8ea1fda2,fda2,8ea1fda2v,fda2v 5ef3 e5bbb3 5ef3 00005ef3 c655 c655 c655 c655 c655 c655 c655 -5955 c656 c656 c656 * 7d23 * 8ea1fda3,fda3,8ea1fda3v,fda3v 6b16 e6ac96 6b16 00006b16 c656 c656 c656 c656 c656 c656 c656 -5956 c657 c657 c657 * 7d24 * 8ea1fda4,fda4,8ea1fda4v,fda4v 7063 e781a3 7063 00007063 c657 c657 c657 c657 c657 c657 c657 -5957 c658 c658 c658 * 7d25 * 8ea1fda5,fda5,8ea1fda5v,fda5v 7c6c e7b1ac 7c6c 00007c6c c658 c658 c658 c658 c658 c658 c658 -5958 c659 c659 c659 * 7d26 * 8ea1fda6,fda6,8ea1fda6v,fda6v 7c6e e7b1ae 7c6e 00007c6e c659 c659 c659 c659 c659 c659 c659 -5959 c65a c65a c65a * 7d27 * 8ea1fda7,fda7,8ea1fda7v,fda7v 883b e8a0bb 883b 0000883b c65a c65a c65a c65a c65a c65a c65a -5960 c65b c65b c65b * 7d28 * 8ea1fda8,fda8,8ea1fda8v,fda8v 89c0 e8a780 89c0 000089c0 c65b c65b c65b c65b c65b c65b c65b -5961 c65c c65c c65c * 7d29 * 8ea1fda9,fda9,8ea1fda9v,fda9v 8ea1 e8baa1 8ea1 00008ea1 c65c c65c c65c c65c c65c c65c c65c -5962 c65d c65d c65d * 7d2a * 8ea1fdaa,fdaa,8ea1fdaav,fdaav 91c1 e98781 91c1 000091c1 c65d c65d c65d c65d c65d c65d c65d -5963 c65e c65e c65e * 7d2b * 8ea1fdab,fdab,8ea1fdabv,fdabv 9472 e991b2 9472 00009472 c65e c65e c65e c65e c65e c65e c65e -5964 c65f c65f c65f * 7d2c * 8ea1fdac,fdac,8ea1fdacv,fdacv 9470 e991b0 9470 00009470 c65f c65f c65f c65f c65f c65f c65f -5965 c660 c660 c660 * 7d2d * 8ea1fdad,fdad,8ea1fdadv,fdadv 9871 e9a1b1 9871 00009871 c660 c660 c660 c660 c660 c660 c660 -5966 c661 c661 c661 * 7d2e * 8ea1fdae,fdae,8ea1fdaev,fdaev 995e e9a59e 995e 0000995e c661 c661 c661 c661 c661 c661 c661 -5967 c662 c662 c662 * 7d2f * 8ea1fdaf,fdaf,8ea1fdafv,fdafv 9ad6 e9ab96 9ad6 00009ad6 c662 c662 c662 c662 c662 c662 c662 -5968 c663 c663 c663 * 7d30 * 8ea1fdb0,fdb0,8ea1fdb0v,fdb0v 9b23 e9aca3 9b23 00009b23 c663 c663 c663 c663 c663 c663 c663 -5969 c664 c664 c664 * 7d31 * 8ea1fdb1,fdb1,8ea1fdb1v,fdb1v 9ecc e9bb8c 9ecc 00009ecc c664 c664 c664 c664 c664 c664 c664 -5970 c665 c665 c665 * 7d32 * 8ea1fdb2,fdb2,8ea1fdb2v,fdb2v 7064 e781a4 7064 00007064 c665 c665 c665 c665 c665 c665 c665 -5971 c666 c666 c666 * 7d33 * 8ea1fdb3,fdb3,8ea1fdb3v,fdb3v 77da e79f9a 77da 000077da c666 c666 c666 c666 c666 c666 c666 -5972 c667 c667 c667 * 7d34 * 8ea1fdb4,fdb4,8ea1fdb4v,fdb4v 8b9a e8ae9a 8b9a 00008b9a c667 c667 c667 c667 c667 c667 c667 -5973 c668 c668 c668 * 7d35 * 8ea1fdb5,fdb5,8ea1fdb5v,fdb5v 9477 e991b7 9477 00009477 c668 c668 c668 c668 c668 c668 c668 -5974 c669 c669 c669 * 7d36 * 8ea1fdb6,fdb6,8ea1fdb6v,fdb6v 97c9 e99f89 97c9 000097c9 c669 c669 c669 c669 c669 c669 c669 -5975 c66a c66a c66a * 7d37 * 8ea1fdb7,fdb7,8ea1fdb7v,fdb7v 9a62 e9a9a2 9a62 00009a62 c66a c66a c66a c66a c66a c66a c66a -5976 c66b c66b c66b * 7d38 * 8ea1fdb8,fdb8,8ea1fdb8v,fdb8v 9a65 e9a9a5 9a65 00009a65 c66b c66b c66b c66b c66b c66b c66b -5977 c66c c66c c66c * 7d39 * 8ea1fdb9,fdb9,8ea1fdb9v,fdb9v 7e9c e7ba9c 7e9c 00007e9c c66c c66c c66c c66c c66c c66c c66c -5978 c66d c66d c66d * 7d3a * 8ea1fdba,fdba,8ea1fdbav,fdbav 8b9c e8ae9c 8b9c 00008b9c c66d c66d c66d c66d c66d c66d c66d -5979 c66e c66e c66e * 7d3b * 8ea1fdbb,fdbb,8ea1fdbbv,fdbbv 8eaa e8baaa 8eaa 00008eaa c66e c66e c66e c66e c66e c66e c66e -5980 c66f c66f c66f * 7d3c * 8ea1fdbc,fdbc,8ea1fdbcv,fdbcv 91c5 e98785 91c5 000091c5 c66f c66f c66f c66f c66f c66f c66f -5981 c670 c670 c670 * 7d3d * 8ea1fdbd,fdbd,8ea1fdbdv,fdbdv 947d e991bd 947d 0000947d c670 c670 c670 c670 c670 c670 c670 -5982 c671 c671 c671 * 7d3e * 8ea1fdbe,fdbe,8ea1fdbev,fdbev 947e e991be 947e 0000947e c671 c671 c671 c671 c671 c671 c671 -5983 c672 c672 c672 * 7d3f * 8ea1fdbf,fdbf,8ea1fdbfv,fdbfv 947c e991bc 947c 0000947c c672 c672 c672 c672 c672 c672 c672 -5984 c673 c673 c673 * 7d40 * 8ea1fdc0,fdc0,8ea1fdc0v,fdc0v 9c77 e9b1b7 9c77 00009c77 c673 c673 c673 c673 c673 c673 c673 -5985 c674 c674 c674 * 7d41 * 8ea1fdc1,fdc1,8ea1fdc1v,fdc1v 9c78 e9b1b8 9c78 00009c78 c674 c674 c674 c674 c674 c674 c674 -5986 c675 c675 c675 * 7d42 * 8ea1fdc2,fdc2,8ea1fdc2v,fdc2v 9ef7 e9bbb7 9ef7 00009ef7 c675 c675 c675 c675 c675 c675 c675 -5987 c676 c676 c676 * 7d43 * 8ea1fdc3,fdc3,8ea1fdc3v,fdc3v 8c54 e8b194 8c54 00008c54 c676 c676 c676 c676 c676 c676 c676 -5988 c677 c677 c677 * 7d44 * 8ea1fdc4,fdc4,8ea1fdc4v,fdc4v 947f e991bf 947f 0000947f c677 c677 c677 c677 c677 c677 c677 -5989 c678 c678 c678 * 7d45 * 8ea1fdc5,fdc5,8ea1fdc5v,fdc5v 9e1a e9b89a 9e1a 00009e1a c678 c678 c678 c678 c678 c678 c678 -5990 c679 c679 c679 * 7d46 * 8ea1fdc6,fdc6,8ea1fdc6v,fdc6v 7228 e788a8 7228 00007228 c679 c679 c679 c679 c679 c679 c679 -5991 c67a c67a c67a * 7d47 * 8ea1fdc7,fdc7,8ea1fdc7v,fdc7v 9a6a e9a9aa 9a6a 00009a6a c67a c67a c67a c67a c67a c67a c67a -5992 c67b c67b c67b * 7d48 * 8ea1fdc8,fdc8,8ea1fdc8v,fdc8v 9b31 e9acb1 9b31 00009b31 c67b c67b c67b c67b c67b c67b c67b -5993 c67c c67c c67c * 7d49 * 8ea1fdc9,fdc9,8ea1fdc9v,fdc9v 9e1b e9b89b 9e1b 00009e1b c67c c67c c67c c67c c67c c67c c67c -5994 c67d c67d c67d * 7d4a * 8ea1fdca,fdca,8ea1fdcav,fdcav 9e1e e9b89e 9e1e 00009e1e c67d c67d c67d c67d c67d c67d c67d -5995 c67e c67e c67e * 7d4b * 8ea1fdcb,fdcb,8ea1fdcbv,fdcbv 7c72 e7b1b2 7c72 00007c72 c67e c67e c67e c67e c67e c67e c67e -5996 c940 c940 c940 * * 2121 8ea2a1a1,8ea2a1a1v 4e42 e4b982 4e42 00004e42 c940 c940 c940 c940 c940 c940 c940 -5997 c941 c941 c941 * * 2122 8ea2a1a2,8ea2a1a2v 4e5c e4b99c 4e5c 00004e5c c941 c941 c941 c941 c941 c941 c941 -5998 c942 c942 c942 * 2731 2123 8ea1a7b1,8ea2a1a3,a7b1,8ea1a7b1v,8ea2a1a3v,a7b1v 51f5 e2bc90,e587b5 2f10,51f5 00002f10,000051f5 c942 c942 c942 c942 c942 c942 c942 -5999 c943 c943 c943 * 2736 2124 8ea1a7b6,8ea2a1a4,a7b6,8ea1a7b6v,8ea2a1a4v,a7b6v 531a e2bc95,e58c9a 2f15,531a 00002f15,0000531a c943 c943 c943 c943 c943 c943 c943 -6000 c944 c944 c944 * 273b 2125 8ea1a7bb,8ea2a1a5,a7bb,8ea1a7bbv,8ea2a1a5v,a7bbv 5382 e2bc9a,e58e82 2f1a,5382 00002f1a,00005382 c944 c944 c944 c944 c944 c944 c944 -6001 c945 c945 c945 * * 2126 8ea2a1a6,8ea2a1a6v 4e07 e4b887 4e07 00004e07 c945 c945 c945 c945 c945 c945 c945 -6002 c946 c946 c946 * * 2127 8ea2a1a7,8ea2a1a7v 4e0c e4b88c 4e0c 00004e0c c946 c946 c946 c946 c946 c946 c946 -6003 c947 c947 c947 * * 2128 8ea2a1a8,8ea2a1a8v 4e47 e4b987 4e47 00004e47 c947 c947 c947 c947 c947 c947 c947 -6004 c948 c948 c948 * * 2129 8ea2a1a9,8ea2a1a9v 4e8d e4ba8d 4e8d 00004e8d c948 c948 c948 c948 c948 c948 c948 -6005 c949 c949 c949 * 273f 212a 8ea1a7bf,8ea2a1aa,a7bf,8ea1a7bfv,8ea2a1aav,a7bfv 56d7 e2bc9e,e59b97 2f1e,56d7 00002f1e,000056d7 c949 c949 c949 c949 c949 c949 c949 -6006 c94b c94b c94b * 274c 212b 8ea1a7cc,8ea2a1ab,a7cc,8ea1a7ccv,8ea2a1abv,a7ccv 5c6e e2bcac,e5b1ae 2f2c,5c6e 00002f2c,00005c6e c94b c94b c94b c94b c94b c94b c94b -6007 c94c c94c c94c * 275b 212c 8ea1a7db,8ea2a1ac,a7db,8ea1a7dbv,8ea2a1acv,a7dbv 5f73 e2bcbb,e5bdb3 2f3b,5f73 00002f3b,00005f73 c94c c94c c94c c94c c94c c94c c94c -6008 c94d c94d c94d * * 212d 8ea2a1ad,8ea2a1adv 4e0f e4b88f 4e0f 00004e0f c94d c94d c94d c94d c94d c94d c94d -6009 c94e c94e c94e * * 212e 8ea2a1ae,8ea2a1aev 5187 e58687 5187 00005187 c94e c94e c94e c94e c94e c94e c94e -6010 c94f c94f c94f * * 212f 8ea2a1af,8ea2a1afv 4e0e e4b88e 4e0e 00004e0e c94f c94f c94f c94f c94f c94f c94f -6011 c950 c950 c950 * * 2130 8ea2a1b0,8ea2a1b0v 4e2e e4b8ae 4e2e 00004e2e c950 c950 c950 c950 c950 c950 c950 -6012 c951 c951 c951 * * 2131 8ea2a1b1,8ea2a1b1v 4e93 e4ba93 4e93 00004e93 c951 c951 c951 c951 c951 c951 c951 -6013 c952 c952 c952 * * 2132 8ea2a1b2,8ea2a1b2v 4ec2 e4bb82 4ec2 00004ec2 c952 c952 c952 c952 c952 c952 c952 -6014 c953 c953 c953 * * 2133 8ea2a1b3,8ea2a1b3v 4ec9 e4bb89 4ec9 00004ec9 c953 c953 c953 c953 c953 c953 c953 -6015 c954 c954 c954 * * 2134 8ea2a1b4,8ea2a1b4v 4ec8 e4bb88 4ec8 00004ec8 c954 c954 c954 c954 c954 c954 c954 -6016 c955 c955 c955 * * 2135 8ea2a1b5,8ea2a1b5v 5198 e58698 5198 00005198 c955 c955 c955 c955 c955 c955 c955 -6017 c956 c956 c956 * * 2136 8ea2a1b6,8ea2a1b6v 52fc e58bbc 52fc 000052fc c956 c956 c956 c956 c956 c956 c956 -6018 c957 c957 c957 * * 2137 8ea2a1b7,8ea2a1b7v 536c e58dac 536c 0000536c c957 c957 c957 c957 c957 c957 c957 -6019 c958 c958 c958 * * 2138 8ea2a1b8,8ea2a1b8v 53b9 e58eb9 53b9 000053b9 c958 c958 c958 c958 c958 c958 c958 -6020 c959 c959 c959 * * 2139 8ea2a1b9,8ea2a1b9v 5720 e59ca0 5720 00005720 c959 c959 c959 c959 c959 c959 c959 -6021 c95a c95a c95a * * 213a 8ea2a1ba,8ea2a1bav 5903 e5a483 5903 00005903 c95a c95a c95a c95a c95a c95a c95a -6022 c95b c95b c95b * * 213b 8ea2a1bb,8ea2a1bbv 592c e5a4ac 592c 0000592c c95b c95b c95b c95b c95b c95b c95b -6023 c95c c95c c95c * * 213c 8ea2a1bc,8ea2a1bcv 5c10 e5b090,eeb081 5c10,ec01 00005c10,0000ec01 9cbc,c95c c95c c95c c95c c95c c95c 9cbc,c95c -6024 c95d c95d c95d * * 213d 8ea2a1bd,8ea2a1bdv 5dff e5b7bf 5dff 00005dff c95d c95d c95d c95d c95d c95d c95d -6025 c95e c95e c95e * * 213e 8ea2a1be,8ea2a1bev 65e1 e697a1 65e1 000065e1 c95e c95e c95e c95e c95e c95e c95e -6026 c95f c95f c95f * 276e 213f 8ea1a7ee,8ea2a1bf,a7ee,8ea1a7eev,8ea2a1bfv,a7eev 6bb3 e2bd8e,e6aeb3 2f4e,6bb3 00002f4e,00006bb3 c95f c95f c95f c95f c95f c95f c95f -6027 c960 c960 c960 * * 2140 8ea2a1c0,8ea2a1c0v 6bcc e6af8c 6bcc 00006bcc c960 c960 c960 c960 c960 c960 c960 -6028 c961 c961 c961 * 2773 2141 8ea1a7f3,8ea2a1c1,a7f3,8ea1a7f3v,8ea2a1c1v,a7f3v 6c14 e2bd93,e6b094 2f53,6c14 00002f53,00006c14 c961 c961 c961 c961 c961 c961 c961 -6029 c962 c962 c962 * 2779 2142 8ea1a7f9,8ea2a1c2,a7f9,8ea1a7f9v,8ea2a1c2v,a7f9v 723f e2bd99,e788bf 2f59,723f 00002f59,0000723f c962 c962 c962 c962 c962 c962 c962 -6030 c963 c963 c963 * * 2143 8ea2a1c3,8ea2a1c3v 4e31 e4b8b1 4e31 00004e31 c963 c963 c963 c963 c963 c963 c963 -6031 c964 c964 c964 * * 2144 8ea2a1c4,8ea2a1c4v 4e3c e4b8bc 4e3c 00004e3c c964 c964 c964 c964 c964 c964 c964 -6032 c965 c965 c965 * * 2145 8ea2a1c5,8ea2a1c5v 4ee8 e4bba8 4ee8 00004ee8 c965 c965 c965 c965 c965 c965 c965 -6033 c966 c966 c966 * * 2146 8ea2a1c6,8ea2a1c6v 4edc e4bb9c 4edc 00004edc c966 c966 c966 c966 c966 c966 c966 -6034 c967 c967 c967 * * 2147 8ea2a1c7,8ea2a1c7v 4ee9 e4bba9 4ee9 00004ee9 c967 c967 c967 c967 c967 c967 c967 -6035 c968 c968 c968 * * 2148 8ea2a1c8,8ea2a1c8v 4ee1 e4bba1 4ee1 00004ee1 c968 c968 c968 c968 c968 c968 c968 -6036 c969 c969 c6df,c969 * * 2149 8ea2a1c9,8ea2a1c9v 4edd e4bb9d 4edd 00004edd c6df,c969 c969 c969 c969 c969 c969 c969 -6037 c96a c96a c96a * * 214a 8ea2a1ca,8ea2a1cav 4eda e4bb9a 4eda 00004eda c96a c96a c96a c96a c96a c96a c96a -6038 c96b c96b c96b * * 214b 8ea2a1cb,8ea2a1cbv 520c e5888c 520c 0000520c c96b c96b c96b c96b c96b c96b c96b -6039 c9be c9be c9be * * 214c 8ea2a1cc,8ea2a1ccv 5209 e58889 5209 00005209 c9be c9be c9be c9be c9be c9be c9be -6040 c96c c96c c96c * * 214d 8ea2a1cd,8ea2a1cdv 531c e58c9c 531c 0000531c c96c c96c c96c c96c c96c c96c c96c -6041 c96d c96d c96d * * 214e 8ea2a1ce,8ea2a1cev 534c e58d8c 534c 0000534c c96d c96d c96d c96d c96d c96d c96d -6042 c96e c96e c96e * * 214f 8ea2a1cf,8ea2a1cfv 5722 e59ca2 5722 00005722 c96e c96e c96e c96e c96e c96e c96e -6043 c96f c96f c96f * * 2150 8ea2a1d0,8ea2a1d0v 5723 e59ca3 5723 00005723 c96f c96f c96f c96f c96f c96f c96f -6044 c970 c970 c970 * * 2151 8ea2a1d1,8ea2a1d1v 5917 e5a497 5917 00005917 c970 c970 c970 c970 c970 c970 c970 -6045 c971 c971 c971 * * 2152 8ea2a1d2,8ea2a1d2v 592f e5a4af 592f 0000592f c971 c971 c971 c971 c971 c971 c971 -6046 c972 c972 c972 * * 2153 8ea2a1d3,8ea2a1d3v 5b81 e5ae81 5b81 00005b81 c972 c972 c972 c972 c972 c972 c972 -6047 c973 c973 c973 * * 2154 8ea2a1d4,8ea2a1d4v 5b84 e5ae84 5b84 00005b84 c973 c973 c973 c973 c973 c973 c973 -6048 c974 c974 c974 * * 2155 8ea2a1d5,8ea2a1d5v 5c12 e5b092 5c12 00005c12 c974 c974 c974 c974 c974 c974 c974 -6049 c975 c975 c975 * * 2156 8ea2a1d6,8ea2a1d6v 5c3b e5b0bb 5c3b 00005c3b c975 c975 c975 c975 c975 c975 c975 -6050 c976 c976 c976 * * 2157 8ea2a1d7,8ea2a1d7v 5c74 e5b1b4 5c74 00005c74 c976 c976 c976 c976 c976 c976 c976 -6051 c977 c977 c977 * * 2158 8ea2a1d8,8ea2a1d8v 5c73 e5b1b3 5c73 00005c73 c977 c977 c977 c977 c977 c977 c977 -6052 c978 c978 c978 * * 2159 8ea2a1d9,8ea2a1d9v 5e04 e5b884 5e04 00005e04 c978 c978 c978 c978 c978 c978 c978 -6053 c979 c979 c979 * * 215a 8ea2a1da,8ea2a1dav 5e80 e5ba80 5e80 00005e80 c979 c979 c979 c979 c979 c979 c979 -6054 c97a c97a c97a * * 215b 8ea2a1db,8ea2a1dbv 5e82 e5ba82 5e82 00005e82 c97a c97a c97a c97a c97a c97a c97a -6055 c97b c97b c97b * * 215c 8ea2a1dc,8ea2a1dcv 5fc9 e5bf89 5fc9 00005fc9 c97b c97b c97b c97b c97b c97b c97b -6056 c97c c97c c97c * * 215d 8ea2a1dd,8ea2a1ddv 6209 e68889 6209 00006209 c97c c97c c97c c97c c97c c97c c97c -6057 c97d c97d c97d * * 215e 8ea2a1de,8ea2a1dev 6250 e68990 6250 00006250 c97d c97d c97d c97d c97d c97d c97d -6058 c97e c97e c97e * * 215f 8ea2a1df,8ea2a1dfv 6c15 e6b095 6c15 00006c15 c97e c97e c97e c97e c97e c97e c97e -6059 c9a1 c9a1 c9a1 * * 2160 8ea2a1e0,8ea2a1e0v 6c36 e6b0b6 6c36 00006c36 c9a1 c9a1 c9a1 c9a1 c9a1 c9a1 c9a1 -6060 c9a2 c9a2 c9a2 * * 2161 8ea2a1e1,8ea2a1e1v 6c43 e6b183 6c43 00006c43 c9a2 c9a2 c9a2 c9a2 c9a2 c9a2 c9a2 -6061 c9a3 c9a3 c9a3 * * 2162 8ea2a1e2,8ea2a1e2v 6c3f e6b0bf 6c3f 00006c3f c9a3 c9a3 c9a3 c9a3 c9a3 c9a3 c9a3 -6062 c9a4 c9a4 c9a4 * * 2163 8ea2a1e3,8ea2a1e3v 6c3b e6b0bb 6c3b 00006c3b c9a4 c9a4 c9a4 c9a4 c9a4 c9a4 c9a4 -6063 c9a5 c9a5 c9a5 * * 2164 8ea2a1e4,8ea2a1e4v 72ae e78aae 72ae 000072ae c9a5 c9a5 c9a5 c9a5 c9a5 c9a5 c9a5 -6064 c9a6 c9a6 c9a6 * * 2165 8ea2a1e5,8ea2a1e5v 72b0 e78ab0 72b0 000072b0 c9a6 c9a6 c9a6 c9a6 c9a6 c9a6 c9a6 -6065 c9a7 c9a7 c9a7 * * 2166 8ea2a1e6,8ea2a1e6v 738a e78e8a 738a 0000738a c9a7 c9a7 c9a7 c9a7 c9a7 c9a7 c9a7 -6066 c9a8 c9a8 c9a8 * 2833 2167 8ea1a8b3,8ea2a1e7,a8b3,8ea1a8b3v,8ea2a1e7v,a8b3v 79b8 e2bdb1,e7a6b8 2f71,79b8 00002f71,000079b8 c9a8 c9a8 c9a8 c9a8 c9a8 c9a8 c9a8 -6067 c9a9 c9a9 c9a9 * * 2168 8ea2a1e8,8ea2a1e8v 808a e8828a 808a 0000808a c9a9 c9a9 c9a9 c9a9 c9a9 c9a9 c9a9 -6068 c9aa c9aa c9aa * * 2169 8ea2a1e9,8ea2a1e9v 961e e9989e 961e 0000961e c9aa c9aa c9aa c9aa c9aa c9aa c9aa -6069 c9ab c9ab c9ab * * 216a 8ea2a1ea,8ea2a1eav 4f0e e4bc8e 4f0e 00004f0e c9ab c9ab c9ab c9ab c9ab c9ab c9ab -6070 c9ac c9ac c9ac * * 216b 8ea2a1eb,8ea2a1ebv 4f18 e4bc98 4f18 00004f18 c9ac c9ac c9ac c9ac c9ac c9ac c9ac -6071 c9ad c9ad c9ad * * 216c 8ea2a1ec,8ea2a1ecv 4f2c e4bcac 4f2c 00004f2c c9ad c9ad c9ad c9ad c9ad c9ad c9ad -6072 c9ae c9ae c9ae * * 216d 8ea2a1ed,8ea2a1edv 4ef5 e4bbb5 4ef5 00004ef5 c9ae c9ae c9ae c9ae c9ae c9ae c9ae -6073 c9af c9af c9af * * 216e 8ea2a1ee,8ea2a1eev 4f14 e4bc94 4f14 00004f14 c9af c9af c9af c9af c9af c9af c9af -6074 c9b0 c9b0 c9b0 * * 216f 8ea2a1ef,8ea2a1efv 4ef1 e4bbb1 4ef1 00004ef1 c9b0 c9b0 c9b0 c9b0 c9b0 c9b0 c9b0 -6075 c9b1 c9b1 c9b1 * * 2170 8ea2a1f0,8ea2a1f0v 4f00 e4bc80 4f00 00004f00 c9b1 c9b1 c9b1 c9b1 c9b1 c9b1 c9b1 -6076 c9b2 c9b2 c9b2 * * 2171 8ea2a1f1,8ea2a1f1v 4ef7 e4bbb7 4ef7 00004ef7 c9b2 c9b2 c9b2 c9b2 c9b2 c9b2 c9b2 -6077 c9b3 c9b3 c9b3 * * 2172 8ea2a1f2,8ea2a1f2v 4f08 e4bc88 4f08 00004f08 c9b3 c9b3 c9b3 c9b3 c9b3 c9b3 c9b3 -6078 c9b4 c9b4 c9b4 * * 2173 8ea2a1f3,8ea2a1f3v 4f1d e4bc9d 4f1d 00004f1d c9b4 c9b4 c9b4 c9b4 c9b4 c9b4 c9b4 -6079 c9b5 c9b5 c9b5 * * 2174 8ea2a1f4,8ea2a1f4v 4f02 e4bc82 4f02 00004f02 c9b5 c9b5 c9b5 c9b5 c9b5 c9b5 c9b5 -6080 c9b6 c9b6 c9b6 * * 2175 8ea2a1f5,8ea2a1f5v 4f05 e4bc85 4f05 00004f05 c9b6 c9b6 c9b6 c9b6 c9b6 c9b6 c9b6 -6081 c9b7 c9b7 c9b7 * * 2176 8ea2a1f6,8ea2a1f6v 4f22 e4bca2 4f22 00004f22 c9b7 c9b7 c9b7 c9b7 c9b7 c9b7 c9b7 -6082 c9b8 c9b8 c9b8 * * 2177 8ea2a1f7,8ea2a1f7v 4f13 e4bc93 4f13 00004f13 c9b8 c9b8 c9b8 c9b8 c9b8 c9b8 c9b8 -6083 c9b9 c9b9 c9b9 * * 2178 8ea2a1f8,8ea2a1f8v 4f04 e4bc84 4f04 00004f04 c9b9 c9b9 c9b9 c9b9 c9b9 c9b9 c9b9 -6084 c9ba c9ba c9ba * * 2179 8ea2a1f9,8ea2a1f9v 4ef4 e4bbb4 4ef4 00004ef4 c9ba c9ba c9ba c9ba c9ba c9ba c9ba -6085 c9bb c9bb c9bb * * 217a 8ea2a1fa,8ea2a1fav 4f12 e4bc92 4f12 00004f12 c9bb c9bb c9bb c9bb c9bb c9bb c9bb -6086 c9bc c9bc c9bc * * 217b 8ea2a1fb,8ea2a1fbv 51b1 e586b1 51b1 000051b1 c9bc c9bc c9bc c9bc c9bc c9bc c9bc -6087 c9bd c9bd c9bd * * 217c 8ea2a1fc,8ea2a1fcv 5213 e58893 5213 00005213 c9bd c9bd c9bd c9bd c9bd c9bd c9bd -6088 c9bf c9bf c9bf * * 217d 8ea2a1fd,8ea2a1fdv 5210 e58890 5210 00005210 c9bf c9bf c9bf c9bf c9bf c9bf c9bf -6089 c9c0 c9c0 c9c0 * * 217e 8ea2a1fe,8ea2a1fev 52a6 e58aa6 52a6 000052a6 c9c0 c9c0 c9c0 c9c0 c9c0 c9c0 c9c0 -6090 c9c1 c9c1 c9c1 * * 2221 8ea2a2a1,8ea2a2a1v 5322 e58ca2 5322 00005322 c9c1 c9c1 c9c1 c9c1 c9c1 c9c1 c9c1 -6091 c9c2 c9c2 c9c2 * * 2222 8ea2a2a2,8ea2a2a2v 531f e58c9f 531f 0000531f c9c2 c9c2 c9c2 c9c2 c9c2 c9c2 c9c2 -6092 c9c3 c9c3 c9c3 * * 2223 8ea2a2a3,8ea2a2a3v 534d e58d8d 534d 0000534d c9c3 c9c3 c9c3 c9c3 c9c3 c9c3 c9c3 -6093 c9c4 c9c4 c9c4 * * 2224 8ea2a2a4,8ea2a2a4v 538a e58e8a 538a 0000538a c9c4 c9c4 c9c4 c9c4 c9c4 c9c4 c9c4 -6094 c9c5 c9c5 c9c5 * * 2225 8ea2a2a5,8ea2a2a5v 5407 e59087 5407 00005407 c9c5 c9c5 c9c5 c9c5 c9c5 c9c5 c9c5 -6095 c9c6 c9c6 c9c6 * * 2226 8ea2a2a6,8ea2a2a6v 56e1 e59ba1 56e1 000056e1 c9c6 c9c6 c9c6 c9c6 c9c6 c9c6 c9c6 -6096 c9c7 c9c7 c9c7 * * 2227 8ea2a2a7,8ea2a2a7v 56df e59b9f 56df 000056df c9c7 c9c7 c9c7 c9c7 c9c7 c9c7 c9c7 -6097 c9c8 c9c8 c9c8 * * 2228 8ea2a2a8,8ea2a2a8v 572e e59cae 572e 0000572e c9c8 c9c8 c9c8 c9c8 c9c8 c9c8 c9c8 -6098 c9c9 c9c9 c9c9 * * 2229 8ea2a2a9,8ea2a2a9v 572a e59caa 572a 0000572a c9c9 c9c9 c9c9 c9c9 c9c9 c9c9 c9c9 -6099 c9ca c9ca c9ca * * 222a 8ea2a2aa,8ea2a2aav 5734 e59cb4 5734 00005734 c9ca c9ca c9ca c9ca c9ca c9ca c9ca -6100 c9cb c9cb c9cb * * 222b 8ea2a2ab,8ea2a2abv 593c e5a4bc 593c 0000593c c9cb c9cb c9cb c9cb c9cb c9cb c9cb -6101 c9cc c9cc c9cc * * 222c 8ea2a2ac,8ea2a2acv 5980 e5a680 5980 00005980 c9cc c9cc c9cc c9cc c9cc c9cc c9cc -6102 c9cd c9cd c9cd * * 222d 8ea2a2ad,8ea2a2adv 597c e5a5bc 597c 0000597c c9cd c9cd c9cd c9cd c9cd c9cd c9cd -6103 c9ce c9ce c9ce * * 222e 8ea2a2ae,8ea2a2aev 5985 e5a685 5985 00005985 c9ce c9ce c9ce c9ce c9ce c9ce c9ce -6104 c9cf c9cf c9cf * * 222f 8ea2a2af,8ea2a2afv 597b e5a5bb 597b 0000597b c9cf c9cf c9cf c9cf c9cf c9cf c9cf -6105 c9d0 c9d0 c9d0 * * 2230 8ea2a2b0,8ea2a2b0v 597e e5a5be 597e 0000597e c9d0 c9d0 c9d0 c9d0 c9d0 c9d0 c9d0 -6106 c9d1 c9d1 c9d1 * * 2231 8ea2a2b1,8ea2a2b1v 5977 e5a5b7 5977 00005977 c9d1 c9d1 c9d1 c9d1 c9d1 c9d1 c9d1 -6107 c9d2 c9d2 c9d2 * * 2232 8ea2a2b2,8ea2a2b2v 597f e5a5bf 597f 0000597f c9d2 c9d2 c9d2 c9d2 c9d2 c9d2 c9d2 -6108 c9d3 c9d3 c9d3 * * 2233 8ea2a2b3,8ea2a2b3v 5b56 e5ad96 5b56 00005b56 c9d3 c9d3 c9d3 c9d3 c9d3 c9d3 c9d3 -6109 c9d4 c9d4 c9d4 * * 2234 8ea2a2b4,8ea2a2b4v 5c15 e5b095 5c15 00005c15 c9d4 c9d4 c9d4 c9d4 c9d4 c9d4 c9d4 -6110 c9d5 c9d5 c9d5 * * 2235 8ea2a2b5,8ea2a2b5v 5c25 e5b0a5 5c25 00005c25 c9d5 c9d5 c9d5 c9d5 c9d5 c9d5 c9d5 -6111 c9d6 c9d6 c9d6 * * 2236 8ea2a2b6,8ea2a2b6v 5c7c e5b1bc 5c7c 00005c7c c9d6 c9d6 c9d6 c9d6 c9d6 c9d6 c9d6 -6112 c9d7 c9d7 c9d7 * * 2237 8ea2a2b7,8ea2a2b7v 5c7a e5b1ba 5c7a 00005c7a c9d7 c9d7 c9d7 c9d7 c9d7 c9d7 c9d7 -6113 c9d8 c9d8 c9d8 * * 2238 8ea2a2b8,8ea2a2b8v 5c7b e5b1bb 5c7b 00005c7b c9d8 c9d8 c9d8 c9d8 c9d8 c9d8 c9d8 -6114 c9d9 c9d9 c9d9 * * 2239 8ea2a2b9,8ea2a2b9v 5c7e e5b1be 5c7e 00005c7e c9d9 c9d9 c9d9 c9d9 c9d9 c9d9 c9d9 -6115 c9da c9da c9da * * 223a 8ea2a2ba,8ea2a2bav 5ddf e5b79f 5ddf 00005ddf c9da c9da c9da c9da c9da c9da c9da -6116 c9db c9db c9db * * 223b 8ea2a2bb,8ea2a2bbv 5e75 e5b9b5,ee84ae 5e75,e12e 00005e75,0000e12e fbf3,c9db c9db c9db c9db c9db c9db fbf3,c9db -6117 c9dc c9dc c9dc * * 223c 8ea2a2bc,8ea2a2bcv 5e84 e5ba84 5e84 00005e84 c9dc c9dc c9dc c9dc c9dc c9dc c9dc -6118 c9dd c9dd c9dd * * 223d 8ea2a2bd,8ea2a2bdv 5f02 e5bc82 5f02 00005f02 c9dd c9dd c9dd c9dd c9dd c9dd c9dd -6119 c9de c9de c9de * * 223e 8ea2a2be,8ea2a2bev 5f1a e5bc9a 5f1a 00005f1a c9de c9de c9de c9de c9de c9de c9de -6120 c9df c9df c9df * * 223f 8ea2a2bf,8ea2a2bfv 5f74 e5bdb4 5f74 00005f74 c9df c9df c9df c9df c9df c9df c9df -6121 c9e0 c9e0 c9e0 * * 2240 8ea2a2c0,8ea2a2c0v 5fd5 e5bf95 5fd5 00005fd5 c9e0 c9e0 c9e0 c9e0 c9e0 c9e0 c9e0 -6122 c9e1 c9e1 c9e1 * * 2241 8ea2a2c1,8ea2a2c1v 5fd4 e5bf94 5fd4 00005fd4 c9e1 c9e1 c9e1 c9e1 c9e1 c9e1 c9e1 -6123 c9e2 c9e2 c9e2 * * 2242 8ea2a2c2,8ea2a2c2v 5fcf e5bf8f 5fcf 00005fcf c9e2 c9e2 c9e2 c9e2 c9e2 c9e2 c9e2 -6124 c9e3 c9e3 c9e3 * * 2243 8ea2a2c3,8ea2a2c3v 625c e6899c 625c 0000625c c9e3 c9e3 c9e3 c9e3 c9e3 c9e3 c9e3 -6125 c9e4 c9e4 c9e4 * * 2244 8ea2a2c4,8ea2a2c4v 625e e6899e 625e 0000625e c9e4 c9e4 c9e4 c9e4 c9e4 c9e4 c9e4 -6126 c9e5 c9e5 c9e5 * * 2245 8ea2a2c5,8ea2a2c5v 6264 e689a4 6264 00006264 c9e5 c9e5 c9e5 c9e5 c9e5 c9e5 c9e5 -6127 c9e6 c9e6 c9e6 * * 2246 8ea2a2c6,8ea2a2c6v 6261 e689a1 6261 00006261 c9e6 c9e6 c9e6 c9e6 c9e6 c9e6 c9e6 -6128 c9e7 c9e7 c9e7 * * 2247 8ea2a2c7,8ea2a2c7v 6266 e689a6 6266 00006266 c9e7 c9e7 c9e7 c9e7 c9e7 c9e7 c9e7 -6129 c9e8 c9e8 c9e8 * * 2248 8ea2a2c8,8ea2a2c8v 6262 e689a2 6262 00006262 c9e8 c9e8 c9e8 c9e8 c9e8 c9e8 c9e8 -6130 c9e9 c9e9 c9e9 * * 2249 8ea2a2c9,8ea2a2c9v 6259 e68999 6259 00006259 c9e9 c9e9 c9e9 c9e9 c9e9 c9e9 c9e9 -6131 c9ea c9ea c9ea * * 224a 8ea2a2ca,8ea2a2cav 6260 e689a0 6260 00006260 c9ea c9ea c9ea c9ea c9ea c9ea c9ea -6132 c9eb c9eb c9eb * * 224b 8ea2a2cb,8ea2a2cbv 625a e6899a 625a 0000625a c9eb c9eb c9eb c9eb c9eb c9eb c9eb -6133 c9ec c9ec c9ec * * 224c 8ea2a2cc,8ea2a2ccv 6265 e689a5 6265 00006265 c9ec c9ec c9ec c9ec c9ec c9ec c9ec -6134 caf7 caf7 caf7 * * 224d 8ea2a2cd,8ea2a2cdv 6537 e694b7 6537 00006537 caf7 caf7 caf7 caf7 caf7 caf7 caf7 -6135 c9ed c9ed c9ed * * 224e 8ea2a2ce,8ea2a2cev 65ef e697af 65ef 000065ef c9ed c9ed c9ed c9ed c9ed c9ed c9ed -6136 c9ee c9ee c9ee * * 224f 8ea2a2cf,8ea2a2cfv 65ee e697ae 65ee 000065ee c9ee c9ee c9ee c9ee c9ee c9ee c9ee -6137 c9ef c9ef c9ef * * 2250 8ea2a2d0,8ea2a2d0v 673e e69cbe 673e 0000673e c9ef c9ef c9ef c9ef c9ef c9ef c9ef -6138 c9f0 c9f0 c9f0 * * 2251 8ea2a2d1,8ea2a2d1v 6739 e69cb9 6739 00006739 c9f0 c9f0 c9f0 c9f0 c9f0 c9f0 c9f0 -6139 c9f1 c9f1 c9f1 * * 2252 8ea2a2d2,8ea2a2d2v 6738 e69cb8 6738 00006738 c9f1 c9f1 c9f1 c9f1 c9f1 c9f1 c9f1 -6140 c9f2 c9f2 c9f2 * * 2253 8ea2a2d3,8ea2a2d3v 673b e69cbb 673b 0000673b c9f2 c9f2 c9f2 c9f2 c9f2 c9f2 c9f2 -6141 c9f3 c9f3 c9f3 * * 2254 8ea2a2d4,8ea2a2d4v 673a e69cba 673a 0000673a c9f3 c9f3 c9f3 c9f3 c9f3 c9f3 c9f3 -6142 c9f4 c9f4 c9f4 * * 2255 8ea2a2d5,8ea2a2d5v 673f e69cbf 673f 0000673f c9f4 c9f4 c9f4 c9f4 c9f4 c9f4 c9f4 -6143 c9f5 c9f5 c9f5 * * 2256 8ea2a2d6,8ea2a2d6v 673c e69cbc 673c 0000673c c9f5 c9f5 c9f5 c9f5 c9f5 c9f5 c9f5 -6144 c9f6 c9f6 c9f6 * * 2257 8ea2a2d7,8ea2a2d7v 6733 e69cb3 6733 00006733 c9f6 c9f6 c9f6 c9f6 c9f6 c9f6 c9f6 -6145 c9f7 c9f7 c9f7 * * 2258 8ea2a2d8,8ea2a2d8v 6c18 e6b098 6c18 00006c18 c9f7 c9f7 c9f7 c9f7 c9f7 c9f7 c9f7 -6146 c9f8 c9f8 c9f8 * * 2259 8ea2a2d9,8ea2a2d9v 6c46 e6b186 6c46 00006c46 c9f8 c9f8 c9f8 c9f8 c9f8 c9f8 c9f8 -6147 c9f9 c9f9 c9f9 * * 225a 8ea2a2da,8ea2a2dav 6c52 e6b192 6c52 00006c52 c9f9 c9f9 c9f9 c9f9 c9f9 c9f9 c9f9 -6148 c9fa c9fa c9fa * * 225b 8ea2a2db,8ea2a2dbv 6c5c e6b19c 6c5c 00006c5c c9fa c9fa c9fa c9fa c9fa c9fa c9fa -6149 c9fb c9fb c9fb * * 225c 8ea2a2dc,8ea2a2dcv 6c4f e6b18f 6c4f 00006c4f c9fb c9fb c9fb c9fb c9fb c9fb c9fb -6150 c9fc c9fc c9fc * * 225d 8ea2a2dd,8ea2a2ddv 6c4a e6b18a,eeb5bc 6c4a,ed7c 00006c4a,0000ed7c 9efd,c9fc c9fc c9fc c9fc c9fc c9fc 9efd,c9fc -6151 c9fd c9fd c9fd * * 225e 8ea2a2de,8ea2a2dev 6c54 e6b194 6c54 00006c54 c9fd c9fd c9fd c9fd c9fd c9fd c9fd -6152 c9fe c9fe c9fe * * 225f 8ea2a2df,8ea2a2dfv 6c4b e6b18b 6c4b 00006c4b c9fe c9fe c9fe c9fe c9fe c9fe c9fe -6153 ca40 ca40 ca40 * * 2260 8ea2a2e0,8ea2a2e0v 6c4c e6b18c 6c4c 00006c4c ca40 ca40 ca40 ca40 ca40 ca40 ca40 -6154 ca41 ca41 ca41 * * 2261 8ea2a2e1,8ea2a2e1v 7071 e781b1 7071 00007071 ca41 ca41 ca41 ca41 ca41 ca41 ca41 -6155 ca42 ca42 ca42 * * 2262 8ea2a2e2,8ea2a2e2v 725e e7899e 725e 0000725e ca42 ca42 ca42 ca42 ca42 ca42 ca42 -6156 ca43 ca43 ca43 * * 2263 8ea2a2e3,8ea2a2e3v 72b4 e78ab4 72b4 000072b4 ca43 ca43 ca43 ca43 ca43 ca43 ca43 -6157 ca44 ca44 ca44 * * 2264 8ea2a2e4,8ea2a2e4v 72b5 e78ab5 72b5 000072b5 ca44 ca44 ca44 ca44 ca44 ca44 ca44 -6158 ca45 ca45 ca45 * * 2265 8ea2a2e5,8ea2a2e5v 738e e78e8e 738e 0000738e ca45 ca45 ca45 ca45 ca45 ca45 ca45 -6159 ca46 ca46 ca46 * * 2266 8ea2a2e6,8ea2a2e6v 752a e794aa 752a 0000752a ca46 ca46 ca46 ca46 ca46 ca46 ca46 -6160 ca47 ca47 ca47 * * 2267 8ea2a2e7,8ea2a2e7v 767f e799bf 767f 0000767f ca47 ca47 ca47 ca47 ca47 ca47 ca47 -6161 ca48 ca48 ca48 * * 2268 8ea2a2e8,8ea2a2e8v 7a75 e7a9b5 7a75 00007a75 ca48 ca48 ca48 ca48 ca48 ca48 ca48 -6162 ca49 ca49 ca49 * 283b 2269 8ea1a8bb,8ea2a2e9,a8bb,8ea1a8bbv,8ea2a2e9v,a8bbv 7f51 e2bdb9,e7bd91 2f79,7f51 00002f79,00007f51 ca49 ca49 ca49 ca49 ca49 ca49 ca49 -6163 ca4a ca4a ca4a * 284d 226a 8ea1a8cd,8ea2a2ea,a8cd,8ea1a8cdv,8ea2a2eav,a8cdv 8278 e2be8b,e889b8 2f8b,8278 00002f8b,00008278 ca4a ca4a ca4a ca4a ca4a ca4a ca4a -6164 ca4b ca4b ca4b * * 226b 8ea2a2eb,8ea2a2ebv 827c e889bc 827c 0000827c ca4b ca4b ca4b ca4b ca4b ca4b ca4b -6165 ca4c ca4c ca4c * * 226c 8ea2a2ec,8ea2a2ecv 8280 e88a80 8280 00008280 ca4c ca4c ca4c ca4c ca4c ca4c ca4c -6166 ca4d ca4d ca4d * * 226d 8ea2a2ed,8ea2a2edv 827d e889bd 827d 0000827d ca4d ca4d ca4d ca4d ca4d ca4d ca4d -6167 ca4e ca4e ca4e * * 226e 8ea2a2ee,8ea2a2eev 827f e889bf 827f 0000827f ca4e ca4e ca4e ca4e ca4e ca4e ca4e -6168 ca4f ca4f ca4f * 284e 226f 8ea1a8ce,8ea2a2ef,a8ce,8ea1a8cev,8ea2a2efv,a8cev 864d e2be8c,e8998d 2f8c,864d 00002f8c,0000864d ca4f ca4f ca4f ca4f ca4f ca4f ca4f -6169 ca50 ca50 ca50 * 2853 2270 8ea1a8d3,8ea2a2f0,a8d3,8ea1a8d3v,8ea2a2f0v,a8d3v 897e e2be91,e8a5be 2f91,897e 00002f91,0000897e ca50 ca50 ca50 ca50 ca50 ca50 ca50 -6170 ca51 ca51 ca51 * * 2271 8ea2a2f1,8ea2a2f1v 9099 e98299 9099 00009099 ca51 ca51 ca51 ca51 ca51 ca51 ca51 -6171 ca52 ca52 ca52 * * 2272 8ea2a2f2,8ea2a2f2v 9097 ee9f93,e98297 e7d3,9097 0000e7d3,00009097 95d9,ca52 ca52 ca52 ca52 ca52 ca52 95d9,ca52 -6172 ca53 ca53 ca53 * * 2273 8ea2a2f3,8ea2a2f3v 9098 e98298 9098 00009098 ca53 ca53 ca53 ca53 ca53 ca53 ca53 -6173 ca54 ca54 ca54 * * 2274 8ea2a2f4,8ea2a2f4v 909b e9829b 909b 0000909b ca54 ca54 ca54 ca54 ca54 ca54 ca54 -6174 ca55 ca55 ca55 * * 2275 8ea2a2f5,8ea2a2f5v 9094 e98294 9094 00009094 ca55 ca55 ca55 ca55 ca55 ca55 ca55 -6175 ca56 ca56 ca56 * * 2276 8ea2a2f6,8ea2a2f6v 9622 e998a2 9622 00009622 ca56 ca56 ca56 ca56 ca56 ca56 ca56 -6176 ca57 ca57 ca57 * * 2277 8ea2a2f7,8ea2a2f7v 9624 e998a4 9624 00009624 ca57 ca57 ca57 ca57 ca57 ca57 ca57 -6177 ca58 ca58 ca58 * * 2278 8ea2a2f8,8ea2a2f8v 9620 e998a0 9620 00009620 ca58 ca58 ca58 ca58 ca58 ca58 ca58 -6178 ca59 ca59 ca59 * * 2279 8ea2a2f9,8ea2a2f9v 9623 e998a3 9623 00009623 ca59 ca59 ca59 ca59 ca59 ca59 ca59 -6179 ca5a ca5a ca5a * * 227a 8ea2a2fa,8ea2a2fav 4f56 e4bd96 4f56 00004f56 ca5a ca5a ca5a ca5a ca5a ca5a ca5a -6180 ca5b ca5b ca5b * * 227b 8ea2a2fb,8ea2a2fbv 4f3b e4bcbb 4f3b 00004f3b ca5b ca5b ca5b ca5b ca5b ca5b ca5b -6181 ca5c ca5c ca5c * * 227c 8ea2a2fc,8ea2a2fcv 4f62 e4bda2 4f62 00004f62 ca5c ca5c ca5c ca5c ca5c ca5c ca5c -6182 ca5d ca5d ca5d * * 227d 8ea2a2fd,8ea2a2fdv 4f49 e4bd89 4f49 00004f49 ca5d ca5d ca5d ca5d ca5d ca5d ca5d -6183 ca5e ca5e ca5e * * 227e 8ea2a2fe,8ea2a2fev 4f53 e4bd93 4f53 00004f53 ca5e ca5e ca5e ca5e ca5e ca5e ca5e -6184 ca5f ca5f ca5f * * 2321 8ea2a3a1,8ea2a3a1v 4f64 e4bda4 4f64 00004f64 ca5f ca5f ca5f ca5f ca5f ca5f ca5f -6185 ca60 ca60 ca60 * * 2322 8ea2a3a2,8ea2a3a2v 4f3e e4bcbe 4f3e 00004f3e ca60 ca60 ca60 ca60 ca60 ca60 ca60 -6186 ca61 ca61 ca61 * * 2323 8ea2a3a3,8ea2a3a3v 4f67 e4bda7 4f67 00004f67 ca61 ca61 ca61 ca61 ca61 ca61 ca61 -6187 ca62 ca62 ca62 * * 2324 8ea2a3a4,8ea2a3a4v 4f52 e4bd92 4f52 00004f52 ca62 ca62 ca62 ca62 ca62 ca62 ca62 -6188 ca63 ca63 ca63 * * 2325 8ea2a3a5,8ea2a3a5v 4f5f e4bd9f 4f5f 00004f5f ca63 ca63 ca63 ca63 ca63 ca63 ca63 -6189 ca64 ca64 ca64 * * 2326 8ea2a3a6,8ea2a3a6v 4f41 e4bd81 4f41 00004f41 ca64 ca64 ca64 ca64 ca64 ca64 ca64 -6190 ca65 ca65 ca65 * * 2327 8ea2a3a7,8ea2a3a7v 4f58 e4bd98 4f58 00004f58 ca65 ca65 ca65 ca65 ca65 ca65 ca65 -6191 ca66 ca66 ca66 * * 2328 8ea2a3a8,8ea2a3a8v 4f2d e4bcad 4f2d 00004f2d ca66 ca66 ca66 ca66 ca66 ca66 ca66 -6192 ca67 ca67 ca67 * * 2329 8ea2a3a9,8ea2a3a9v 4f33 e4bcb3 4f33 00004f33 ca67 ca67 ca67 ca67 ca67 ca67 ca67 -6193 ca68 ca68 ca68 * * 232a 8ea2a3aa,8ea2a3aav 4f3f e4bcbf 4f3f 00004f3f ca68 ca68 ca68 ca68 ca68 ca68 ca68 -6194 ca69 ca69 ca69 * * 232b 8ea2a3ab,8ea2a3abv 4f61 e4bda1 4f61 00004f61 ca69 ca69 ca69 ca69 ca69 ca69 ca69 -6195 ca6a ca6a ca6a * * 232c 8ea2a3ac,8ea2a3acv 518f e5868f 518f 0000518f ca6a ca6a ca6a ca6a ca6a ca6a ca6a -6196 ca6b ca6b ca6b * * 232d 8ea2a3ad,8ea2a3adv 51b9 e586b9 51b9 000051b9 ca6b ca6b ca6b ca6b ca6b ca6b ca6b -6197 ca6c ca6c ca6c * * 232e 8ea2a3ae,8ea2a3aev 521c e5889c 521c 0000521c ca6c ca6c ca6c ca6c ca6c ca6c ca6c -6198 ca6d ca6d ca6d * * 232f 8ea2a3af,8ea2a3afv 521e e5889e 521e 0000521e ca6d ca6d ca6d ca6d ca6d ca6d ca6d -6199 ca6e ca6e ca6e * * 2330 8ea2a3b0,8ea2a3b0v 5221 e588a1 5221 00005221 ca6e ca6e ca6e ca6e ca6e ca6e ca6e -6200 ca6f ca6f ca6f * * 2331 8ea2a3b1,8ea2a3b1v 52ad e58aad 52ad 000052ad ca6f ca6f ca6f ca6f ca6f ca6f ca6f -6201 ca70 ca70 ca70 * * 2332 8ea2a3b2,8ea2a3b2v 52ae e58aae 52ae 000052ae ca70 ca70 ca70 ca70 ca70 ca70 ca70 -6202 ca71 ca71 ca71 * * 2333 8ea2a3b3,8ea2a3b3v 5309 e58c89 5309 00005309 ca71 ca71 ca71 ca71 ca71 ca71 ca71 -6203 ca72 ca72 ca72 * * 2334 8ea2a3b4,8ea2a3b4v 5363 e58da3 5363 00005363 ca72 ca72 ca72 ca72 ca72 ca72 ca72 -6204 ca73 ca73 ca73 * * 2335 8ea2a3b5,8ea2a3b5v 5372 e58db2 5372 00005372 ca73 ca73 ca73 ca73 ca73 ca73 ca73 -6205 ca74 ca74 ca74 * * 2336 8ea2a3b6,8ea2a3b6v 538e e58e8e 538e 0000538e ca74 ca74 ca74 ca74 ca74 ca74 ca74 -6206 ca75 ca75 ca75 * * 2337 8ea2a3b7,8ea2a3b7v 538f e58e8f 538f 0000538f ca75 ca75 ca75 ca75 ca75 ca75 ca75 -6207 ca76 ca76 ca76 * * 2338 8ea2a3b8,8ea2a3b8v 5430 e590b0 5430 00005430 ca76 ca76 ca76 ca76 ca76 ca76 ca76 -6208 ca77 ca77 ca77 * * 2339 8ea2a3b9,8ea2a3b9v 5437 e590b7 5437 00005437 ca77 ca77 ca77 ca77 ca77 ca77 ca77 -6209 ca78 ca78 ca78 * * 233a 8ea2a3ba,8ea2a3bav 542a e590aa 542a 0000542a ca78 ca78 ca78 ca78 ca78 ca78 ca78 -6210 ca79 ca79 ca79 * * 233b 8ea2a3bb,8ea2a3bbv 5454 e59194 5454 00005454 ca79 ca79 ca79 ca79 ca79 ca79 ca79 -6211 ca7a ca7a ca7a * * 233c 8ea2a3bc,8ea2a3bcv 5445 e59185 5445 00005445 ca7a ca7a ca7a ca7a ca7a ca7a ca7a -6212 ca7b ca7b ca7b * * 233d 8ea2a3bd,8ea2a3bdv 5419 e59099 5419 00005419 ca7b ca7b ca7b ca7b ca7b ca7b ca7b -6213 ca7c ca7c ca7c * * 233e 8ea2a3be,8ea2a3bev 541c e5909c 541c 0000541c ca7c ca7c ca7c ca7c ca7c ca7c ca7c -6214 ca7d ca7d ca7d * * 233f 8ea2a3bf,8ea2a3bfv 5425 e590a5 5425 00005425 ca7d ca7d ca7d ca7d ca7d ca7d ca7d -6215 ca7e ca7e ca7e * * 2340 8ea2a3c0,8ea2a3c0v 5418 e59098 5418 00005418 ca7e ca7e ca7e ca7e ca7e ca7e ca7e -6216 caa1 caa1 caa1 * * 2341 8ea2a3c1,8ea2a3c1v 543d e590bd 543d 0000543d caa1 caa1 caa1 caa1 caa1 caa1 caa1 -6217 caa2 caa2 caa2 * * 2342 8ea2a3c2,8ea2a3c2v 544f e5918f 544f 0000544f caa2 caa2 caa2 caa2 caa2 caa2 caa2 -6218 caa3 caa3 caa3 * * 2343 8ea2a3c3,8ea2a3c3v 5441 e59181 5441 00005441 caa3 caa3 caa3 caa3 caa3 caa3 caa3 -6219 caa4 caa4 caa4 * * 2344 8ea2a3c4,8ea2a3c4v 5428 e590a8 5428 00005428 caa4 caa4 caa4 caa4 caa4 caa4 caa4 -6220 caa5 caa5 caa5 * * 2345 8ea2a3c5,8ea2a3c5v 5424 e590a4 5424 00005424 caa5 caa5 caa5 caa5 caa5 caa5 caa5 -6221 caa6 caa6 caa6 * * 2346 8ea2a3c6,8ea2a3c6v 5447 e59187 5447 00005447 caa6 caa6 caa6 caa6 caa6 caa6 caa6 -6222 caa7 caa7 caa7 * * 2347 8ea2a3c7,8ea2a3c7v 56ee e59bae 56ee 000056ee caa7 caa7 caa7 caa7 caa7 caa7 caa7 -6223 caa8 caa8 caa8 * * 2348 8ea2a3c8,8ea2a3c8v 56e7 e59ba7 56e7 000056e7 caa8 caa8 caa8 caa8 caa8 caa8 caa8 -6224 caa9 caa9 caa9 * * 2349 8ea2a3c9,8ea2a3c9v 56e5 e59ba5 56e5 000056e5 caa9 caa9 caa9 caa9 caa9 caa9 caa9 -6225 caaa caaa caaa * * 234a 8ea2a3ca,8ea2a3cav 5741 e59d81 5741 00005741 caaa caaa caaa caaa caaa caaa caaa -6226 caab caab caab * * 234b 8ea2a3cb,8ea2a3cbv 5745 e59d85 5745 00005745 caab caab caab caab caab caab caab -6227 caac caac caac * * 234c 8ea2a3cc,8ea2a3ccv 574c e59d8c 574c 0000574c caac caac caac caac caac caac caac -6228 caad caad caad * * 234d 8ea2a3cd,8ea2a3cdv 5749 e59d89 5749 00005749 caad caad caad caad caad caad caad -6229 caae caae caae * * 234e 8ea2a3ce,8ea2a3cev 574b e59d8b 574b 0000574b caae caae caae caae caae caae caae -6230 caaf caaf caaf * * 234f 8ea2a3cf,8ea2a3cfv 5752 e59d92 5752 00005752 caaf caaf caaf caaf caaf caaf caaf -6231 cab0 cab0 cab0 * * 2350 8ea2a3d0,8ea2a3d0v 5906 e5a486 5906 00005906 cab0 cab0 cab0 cab0 cab0 cab0 cab0 -6232 cab1 cab1 cab1 * * 2351 8ea2a3d1,8ea2a3d1v 5940 e5a580 5940 00005940 cab1 cab1 cab1 cab1 cab1 cab1 cab1 -6233 cab2 cab2 cab2 * * 2352 8ea2a3d2,8ea2a3d2v 59a6 e5a6a6 59a6 000059a6 cab2 cab2 cab2 cab2 cab2 cab2 cab2 -6234 cab3 cab3 cab3 * * 2353 8ea2a3d3,8ea2a3d3v 5998 e5a698 5998 00005998 cab3 cab3 cab3 cab3 cab3 cab3 cab3 -6235 cab4 cab4 cab4 * * 2354 8ea2a3d4,8ea2a3d4v 59a0 e5a6a0 59a0 000059a0 cab4 cab4 cab4 cab4 cab4 cab4 cab4 -6236 cab5 cab5 cab5 * * 2355 8ea2a3d5,8ea2a3d5v 5997 e5a697 5997 00005997 cab5 cab5 cab5 cab5 cab5 cab5 cab5 -6237 cab6 cab6 cab6 * * 2356 8ea2a3d6,8ea2a3d6v 598e e5a68e 598e 0000598e cab6 cab6 cab6 cab6 cab6 cab6 cab6 -6238 cab7 cab7 cab7 * * 2357 8ea2a3d7,8ea2a3d7v 59a2 e5a6a2 59a2 000059a2 cab7 cab7 cab7 cab7 cab7 cab7 cab7 -6239 cab8 cab8 cab8 * * 2358 8ea2a3d8,8ea2a3d8v 5990 e5a690 5990 00005990 cab8 cab8 cab8 cab8 cab8 cab8 cab8 -6240 cab9 cab9 cab9 * * 2359 8ea2a3d9,8ea2a3d9v 598f e5a68f 598f 0000598f cab9 cab9 cab9 cab9 cab9 cab9 cab9 -6241 caba caba caba * * 235a 8ea2a3da,8ea2a3dav 59a7 e5a6a7 59a7 000059a7 caba caba caba caba caba caba caba -6242 cabb cabb cabb * * 235b 8ea2a3db,8ea2a3dbv 59a1 e5a6a1 59a1 000059a1 cabb cabb cabb cabb cabb cabb cabb -6243 cabc cabc cabc * * 235c 8ea2a3dc,8ea2a3dcv 5b8e e5ae8e 5b8e 00005b8e cabc cabc cabc cabc cabc cabc cabc -6244 cabd cabd cabd * * 235d 8ea2a3dd,8ea2a3ddv 5b92 e5ae92 5b92 00005b92 cabd cabd cabd cabd cabd cabd cabd -6245 cabe cabe cabe * * 235e 8ea2a3de,8ea2a3dev 5c28 e5b0a8 5c28 00005c28 cabe cabe cabe cabe cabe cabe cabe -6246 cabf cabf cabf * * 235f 8ea2a3df,8ea2a3dfv 5c2a e5b0aa 5c2a 00005c2a cabf cabf cabf cabf cabf cabf cabf -6247 cac0 cac0 cac0 * * 2360 8ea2a3e0,8ea2a3e0v 5c8d e5b28d 5c8d 00005c8d cac0 cac0 cac0 cac0 cac0 cac0 cac0 -6248 cac1 cac1 cac1 * * 2361 8ea2a3e1,8ea2a3e1v 5c8f e5b28f 5c8f 00005c8f cac1 cac1 cac1 cac1 cac1 cac1 cac1 -6249 cac2 cac2 cac2 * * 2362 8ea2a3e2,8ea2a3e2v 5c88 e5b288 5c88 00005c88 cac2 cac2 cac2 cac2 cac2 cac2 cac2 -6250 cac3 cac3 cac3 * * 2363 8ea2a3e3,8ea2a3e3v 5c8b e5b28b 5c8b 00005c8b cac3 cac3 cac3 cac3 cac3 cac3 cac3 -6251 cac4 cac4 cac4 * * 2364 8ea2a3e4,8ea2a3e4v 5c89 e5b289 5c89 00005c89 cac4 cac4 cac4 cac4 cac4 cac4 cac4 -6252 cac5 cac5 cac5 * * 2365 8ea2a3e5,8ea2a3e5v 5c92 e5b292 5c92 00005c92 cac5 cac5 cac5 cac5 cac5 cac5 cac5 -6253 cac6 cac6 cac6 * * 2366 8ea2a3e6,8ea2a3e6v 5c8a e5b28a 5c8a 00005c8a cac6 cac6 cac6 cac6 cac6 cac6 cac6 -6254 cac7 cac7 cac7 * * 2367 8ea2a3e7,8ea2a3e7v 5c86 e5b286 5c86 00005c86 cac7 cac7 cac7 cac7 cac7 cac7 cac7 -6255 cac8 cac8 cac8 * * 2368 8ea2a3e8,8ea2a3e8v 5c93 e5b293 5c93 00005c93 cac8 cac8 cac8 cac8 cac8 cac8 cac8 -6256 cac9 cac9 cac9 * * 2369 8ea2a3e9,8ea2a3e9v 5c95 e5b295 5c95 00005c95 cac9 cac9 cac9 cac9 cac9 cac9 cac9 -6257 caca caca caca * * 236a 8ea2a3ea,8ea2a3eav 5de0 e5b7a0 5de0 00005de0 caca caca caca caca caca caca caca -6258 cacb cacb cacb * * 236b 8ea2a3eb,8ea2a3ebv 5e0a e5b88a 5e0a 00005e0a cacb cacb cacb cacb cacb cacb cacb -6259 cacc cacc cacc * * 236c 8ea2a3ec,8ea2a3ecv 5e0e e5b88e 5e0e 00005e0e cacc cacc cacc cacc cacc cacc cacc -6260 cacd cacd cacd * * 236d 8ea2a3ed,8ea2a3edv 5e8b e5ba8b 5e8b 00005e8b cacd cacd cacd cacd cacd cacd cacd -6261 cace cace cace * * 236e 8ea2a3ee,8ea2a3eev 5e89 e5ba89 5e89 00005e89 cace cace cace cace cace cace cace -6262 cacf cacf cacf * * 236f 8ea2a3ef,8ea2a3efv 5e8c e5ba8c 5e8c 00005e8c cacf cacf cacf cacf cacf cacf cacf -6263 cad0 cad0 cad0 * * 2370 8ea2a3f0,8ea2a3f0v 5e88 e5ba88 5e88 00005e88 cad0 cad0 cad0 cad0 cad0 cad0 cad0 -6264 cad1 cad1 cad1 * * 2371 8ea2a3f1,8ea2a3f1v 5e8d e5ba8d 5e8d 00005e8d cad1 cad1 cad1 cad1 cad1 cad1 cad1 -6265 cad2 cad2 cad2 * * 2372 8ea2a3f2,8ea2a3f2v 5f05 e5bc85 5f05 00005f05 cad2 cad2 cad2 cad2 cad2 cad2 cad2 -6266 cad3 cad3 cad3 * * 2373 8ea2a3f3,8ea2a3f3v 5f1d e5bc9d 5f1d 00005f1d cad3 cad3 cad3 cad3 cad3 cad3 cad3 -6267 cad4 cad4 cad4 * * 2374 8ea2a3f4,8ea2a3f4v 5f78 e5bdb8 5f78 00005f78 cad4 cad4 cad4 cad4 cad4 cad4 cad4 -6268 cad5 cad5 cad5 * * 2375 8ea2a3f5,8ea2a3f5v 5f76 e5bdb6 5f76 00005f76 cad5 cad5 cad5 cad5 cad5 cad5 cad5 -6269 cad6 cad6 cad6 * * 2376 8ea2a3f6,8ea2a3f6v 5fd2 e5bf92 5fd2 00005fd2 cad6 cad6 cad6 cad6 cad6 cad6 cad6 -6270 cad7 cad7 cad7 * * 2377 8ea2a3f7,8ea2a3f7v 5fd1 e5bf91 5fd1 00005fd1 cad7 cad7 cad7 cad7 cad7 cad7 cad7 -6271 cad8 cad8 cad8 * * 2378 8ea2a3f8,8ea2a3f8v 5fd0 e5bf90 5fd0 00005fd0 cad8 cad8 cad8 cad8 cad8 cad8 cad8 -6272 cad9 cad9 cad9 * * 2379 8ea2a3f9,8ea2a3f9v 5fed e5bfad 5fed 00005fed cad9 cad9 cad9 cad9 cad9 cad9 cad9 -6273 cada cada cada * * 237a 8ea2a3fa,8ea2a3fav 5fe8 e5bfa8 5fe8 00005fe8 cada cada cada cada cada cada cada -6274 cadb cadb cadb * * 237b 8ea2a3fb,8ea2a3fbv 5fee e5bfae 5fee 00005fee cadb cadb cadb cadb cadb cadb cadb -6275 cadc cadc cadc * * 237c 8ea2a3fc,8ea2a3fcv 5ff3 e5bfb3 5ff3 00005ff3 cadc cadc cadc cadc cadc cadc cadc -6276 cadd cadd cadd * * 237d 8ea2a3fd,8ea2a3fdv 5fe1 e5bfa1 5fe1 00005fe1 cadd cadd cadd cadd cadd cadd cadd -6277 cade cade cade * * 237e 8ea2a3fe,8ea2a3fev 5fe4 e5bfa4 5fe4 00005fe4 cade cade cade cade cade cade cade -6278 cadf cadf cadf * * 2421 8ea2a4a1,8ea2a4a1v 5fe3 e5bfa3 5fe3 00005fe3 cadf cadf cadf cadf cadf cadf cadf -6279 cae0 cae0 cae0 * * 2422 8ea2a4a2,8ea2a4a2v 5ffa e5bfba 5ffa 00005ffa cae0 cae0 cae0 cae0 cae0 cae0 cae0 -6280 cae1 cae1 cae1 * * 2423 8ea2a4a3,8ea2a4a3v 5fef e5bfaf 5fef 00005fef cae1 cae1 cae1 cae1 cae1 cae1 cae1 -6281 cae2 cae2 cae2 * * 2424 8ea2a4a4,8ea2a4a4v 5ff7 e5bfb7 5ff7 00005ff7 cae2 cae2 cae2 cae2 cae2 cae2 cae2 -6282 cae3 cae3 cae3 * * 2425 8ea2a4a5,8ea2a4a5v 5ffb e5bfbb 5ffb 00005ffb cae3 cae3 cae3 cae3 cae3 cae3 cae3 -6283 cae4 cae4 cae4 * * 2426 8ea2a4a6,8ea2a4a6v 6000 e68080 6000 00006000 cae4 cae4 cae4 cae4 cae4 cae4 cae4 -6284 cae5 cae5 cae5 * * 2427 8ea2a4a7,8ea2a4a7v 5ff4 e5bfb4 5ff4 00005ff4 cae5 cae5 cae5 cae5 cae5 cae5 cae5 -6285 cae6 cae6 cae6 * * 2428 8ea2a4a8,8ea2a4a8v 623a e688ba 623a 0000623a cae6 cae6 cae6 cae6 cae6 cae6 cae6 -6286 cae7 cae7 cae7 * * 2429 8ea2a4a9,8ea2a4a9v 6283 e68a83 6283 00006283 cae7 cae7 cae7 cae7 cae7 cae7 cae7 -6287 cae8 cae8 cae8 * * 242a 8ea2a4aa,8ea2a4aav 628c e68a8c 628c 0000628c cae8 cae8 cae8 cae8 cae8 cae8 cae8 -6288 cae9 cae9 cae9 * * 242b 8ea2a4ab,8ea2a4abv 628e e68a8e 628e 0000628e cae9 cae9 cae9 cae9 cae9 cae9 cae9 -6289 caea caea caea * * 242c 8ea2a4ac,8ea2a4acv 628f e68a8f 628f 0000628f caea caea caea caea caea caea caea -6290 caeb caeb caeb * * 242d 8ea2a4ad,8ea2a4adv 6294 e68a94 6294 00006294 caeb caeb caeb caeb caeb caeb caeb -6291 caec caec caec * * 242e 8ea2a4ae,8ea2a4aev 6287 e68a87 6287 00006287 caec caec caec caec caec caec caec -6292 caed caed caed * * 242f 8ea2a4af,8ea2a4afv 6271 e689b1 6271 00006271 caed caed caed caed caed caed caed -6293 caee caee caee * * 2430 8ea2a4b0,8ea2a4b0v 627b e689bb 627b 0000627b caee caee caee caee caee caee caee -6294 caef caef caef * * 2431 8ea2a4b1,8ea2a4b1v 627a e689ba 627a 0000627a caef caef caef caef caef caef caef -6295 caf0 caf0 caf0 * * 2432 8ea2a4b2,8ea2a4b2v 6270 e689b0 6270 00006270 caf0 caf0 caf0 caf0 caf0 caf0 caf0 -6296 caf1 caf1 caf1 * * 2433 8ea2a4b3,8ea2a4b3v 6281 e68a81 6281 00006281 caf1 caf1 caf1 caf1 caf1 caf1 caf1 -6297 caf2 caf2 caf2 * * 2434 8ea2a4b4,8ea2a4b4v 6288 e68a88 6288 00006288 caf2 caf2 caf2 caf2 caf2 caf2 caf2 -6298 caf3 caf3 caf3 * * 2435 8ea2a4b5,8ea2a4b5v 6277 e689b7 6277 00006277 caf3 caf3 caf3 caf3 caf3 caf3 caf3 -6299 caf4 caf4 caf4 * * 2436 8ea2a4b6,8ea2a4b6v 627d e689bd 627d 0000627d caf4 caf4 caf4 caf4 caf4 caf4 caf4 -6300 caf5 caf5 caf5 * * 2437 8ea2a4b7,8ea2a4b7v 6272 e689b2 6272 00006272 caf5 caf5 caf5 caf5 caf5 caf5 caf5 -6301 caf6 caf6 caf6 * * 2438 8ea2a4b8,8ea2a4b8v 6274 e689b4 6274 00006274 caf6 caf6 caf6 caf6 caf6 caf6 caf6 -6302 caf8 caf8 caf8 * * 2439 8ea2a4b9,8ea2a4b9v 65f0 e697b0 65f0 000065f0 caf8 caf8 caf8 caf8 caf8 caf8 caf8 -6303 caf9 caf9 caf9 * * 243a 8ea2a4ba,8ea2a4bav 65f4 e697b4 65f4 000065f4 caf9 caf9 caf9 caf9 caf9 caf9 caf9 -6304 cafa cafa cafa * * 243b 8ea2a4bb,8ea2a4bbv 65f3 e697b3 65f3 000065f3 cafa cafa cafa cafa cafa cafa cafa -6305 cafb cafb cafb * * 243c 8ea2a4bc,8ea2a4bcv 65f2 e697b2 65f2 000065f2 cafb cafb cafb cafb cafb cafb cafb -6306 cafc cafc cafc * * 243d 8ea2a4bd,8ea2a4bdv 65f5 e697b5 65f5 000065f5 cafc cafc cafc cafc cafc cafc cafc -6307 cafd cafd cafd * * 243e 8ea2a4be,8ea2a4bev 6745 e69d85 6745 00006745 cafd cafd cafd cafd cafd cafd cafd -6308 cafe cafe cafe * * 243f 8ea2a4bf,8ea2a4bfv 6747 e69d87 6747 00006747 cafe cafe cafe cafe cafe cafe cafe -6309 cb40 cb40 cb40 * * 2440 8ea2a4c0,8ea2a4c0v 6759 e69d99 6759 00006759 cb40 cb40 cb40 cb40 cb40 cb40 cb40 -6310 cb41 cb41 cb41 * * 2441 8ea2a4c1,8ea2a4c1v 6755 e69d95 6755 00006755 cb41 cb41 cb41 cb41 cb41 cb41 cb41 -6311 cb42 cb42 cb42 * * 2442 8ea2a4c2,8ea2a4c2v 674c e69d8c 674c 0000674c cb42 cb42 cb42 cb42 cb42 cb42 cb42 -6312 cb43 cb43 cb43 * * 2443 8ea2a4c3,8ea2a4c3v 6748 e69d88 6748 00006748 cb43 cb43 cb43 cb43 cb43 cb43 cb43 -6313 cb44 cb44 cb44 * * 2444 8ea2a4c4,8ea2a4c4v 675d e69d9d 675d 0000675d cb44 cb44 cb44 cb44 cb44 cb44 cb44 -6314 cb45 cb45 cb45 * * 2445 8ea2a4c5,8ea2a4c5v 674d e69d8d 674d 0000674d cb45 cb45 cb45 cb45 cb45 cb45 cb45 -6315 cb46 cb46 cb46 * * 2446 8ea2a4c6,8ea2a4c6v 675a e69d9a 675a 0000675a cb46 cb46 cb46 cb46 cb46 cb46 cb46 -6316 cb47 cb47 cb47 * * 2447 8ea2a4c7,8ea2a4c7v 674b e69d8b 674b 0000674b cb47 cb47 cb47 cb47 cb47 cb47 cb47 -6317 cb48 cb48 cb48 * * 2448 8ea2a4c8,8ea2a4c8v 6bd0 e6af90 6bd0 00006bd0 cb48 cb48 cb48 cb48 cb48 cb48 cb48 -6318 cb49 cb49 cb49 * * 2449 8ea2a4c9,8ea2a4c9v 6c19 e6b099 6c19 00006c19 cb49 cb49 cb49 cb49 cb49 cb49 cb49 -6319 cb4a cb4a cb4a * * 244a 8ea2a4ca,8ea2a4cav 6c1a e6b09a 6c1a 00006c1a cb4a cb4a cb4a cb4a cb4a cb4a cb4a -6320 cb4b cb4b cb4b * * 244b 8ea2a4cb,8ea2a4cbv 6c78 e6b1b8 6c78 00006c78 cb4b cb4b cb4b cb4b cb4b cb4b cb4b -6321 cb4c cb4c cb4c * * 244c 8ea2a4cc,8ea2a4ccv 6c67 e6b1a7 6c67 00006c67 cb4c cb4c cb4c cb4c cb4c cb4c cb4c -6322 cb4d cb4d cb4d * * 244d 8ea2a4cd,8ea2a4cdv 6c6b e6b1ab 6c6b 00006c6b cb4d cb4d cb4d cb4d cb4d cb4d cb4d -6323 cb4e cb4e cb4e * * 244e 8ea2a4ce,8ea2a4cev 6c84 e6b284 6c84 00006c84 cb4e cb4e cb4e cb4e cb4e cb4e cb4e -6324 cb4f cb4f cb4f * * 244f 8ea2a4cf,8ea2a4cfv 6c8b e6b28b 6c8b 00006c8b cb4f cb4f cb4f cb4f cb4f cb4f cb4f -6325 cb50 cb50 cb50 * * 2450 8ea2a4d0,8ea2a4d0v 6c8f e6b28f 6c8f 00006c8f cb50 cb50 cb50 cb50 cb50 cb50 cb50 -6326 cb51 cb51 cb51 * * 2451 8ea2a4d1,8ea2a4d1v 6c71 e6b1b1 6c71 00006c71 cb51 cb51 cb51 cb51 cb51 cb51 cb51 -6327 cb52 cb52 cb52 * * 2452 8ea2a4d2,8ea2a4d2v 6c6f e6b1af 6c6f 00006c6f cb52 cb52 cb52 cb52 cb52 cb52 cb52 -6328 cb53 cb53 cb53 * * 2453 8ea2a4d3,8ea2a4d3v 6c69 e6b1a9 6c69 00006c69 cb53 cb53 cb53 cb53 cb53 cb53 cb53 -6329 cb54 cb54 cb54 * * 2454 8ea2a4d4,8ea2a4d4v 6c9a e6b29a 6c9a 00006c9a cb54 cb54 cb54 cb54 cb54 cb54 cb54 -6330 cb55 cb55 cb55 * * 2455 8ea2a4d5,8ea2a4d5v 6c6d e6b1ad 6c6d 00006c6d cb55 cb55 cb55 cb55 cb55 cb55 cb55 -6331 cb56 cb56 cb56 * * 2456 8ea2a4d6,8ea2a4d6v 6c87 e6b287 6c87 00006c87 cb56 cb56 cb56 cb56 cb56 cb56 cb56 -6332 cb57 cb57 cb57 * * 2457 8ea2a4d7,8ea2a4d7v 6c95 e6b295 6c95 00006c95 cb57 cb57 cb57 cb57 cb57 cb57 cb57 -6333 cb58 cb58 cb58 * * 2458 8ea2a4d8,8ea2a4d8v 6c9c e6b29c,ee88ac 6c9c,e22c 00006c9c,0000e22c fdb7,cb58 cb58 cb58 cb58 cb58 cb58 fdb7,cb58 -6334 cb59 cb59 cb59 * * 2459 8ea2a4d9,8ea2a4d9v 6c66 e6b1a6 6c66 00006c66 cb59 cb59 cb59 cb59 cb59 cb59 cb59 -6335 cb5a cb5a cb5a * * 245a 8ea2a4da,8ea2a4dav 6c73 e6b1b3 6c73 00006c73 cb5a cb5a cb5a cb5a cb5a cb5a cb5a -6336 cb5b cb5b cb5b * * 245b 8ea2a4db,8ea2a4dbv 6c65 e6b1a5 6c65 00006c65 cb5b cb5b cb5b cb5b cb5b cb5b cb5b -6337 cb5c cb5c cb5c * * 245c 8ea2a4dc,8ea2a4dcv 6c7b e6b1bb 6c7b 00006c7b cb5c cb5c cb5c cb5c cb5c cb5c cb5c -6338 cb5d cb5d cb5d * * 245d 8ea2a4dd,8ea2a4ddv 6c8e e6b28e 6c8e 00006c8e cb5d cb5d cb5d cb5d cb5d cb5d cb5d -6339 cb5e cb5e cb5e * * 245e 8ea2a4de,8ea2a4dev 7074 e781b4 7074 00007074 cb5e cb5e cb5e cb5e cb5e cb5e cb5e -6340 cb5f cb5f cb5f * * 245f 8ea2a4df,8ea2a4dfv 707a e781ba 707a 0000707a cb5f cb5f cb5f cb5f cb5f cb5f cb5f -6341 cb60 cb60 cb60 * * 2460 8ea2a4e0,8ea2a4e0v 7263 e789a3 7263 00007263 cb60 cb60 cb60 cb60 cb60 cb60 cb60 -6342 cb61 cb61 cb61 * * 2461 8ea2a4e1,8ea2a4e1v 72bf e78abf 72bf 000072bf cb61 cb61 cb61 cb61 cb61 cb61 cb61 -6343 cb62 cb62 cb62 * * 2462 8ea2a4e2,8ea2a4e2v 72bd e78abd 72bd 000072bd cb62 cb62 cb62 cb62 cb62 cb62 cb62 -6344 cb63 cb63 cb63 * * 2463 8ea2a4e3,8ea2a4e3v 72c3 e78b83 72c3 000072c3 cb63 cb63 cb63 cb63 cb63 cb63 cb63 -6345 cb64 cb64 cb64 * * 2464 8ea2a4e4,8ea2a4e4v 72c6 e78b86 72c6 000072c6 cb64 cb64 cb64 cb64 cb64 cb64 cb64 -6346 cb65 cb65 cb65 * * 2465 8ea2a4e5,8ea2a4e5v 72c1 e78b81 72c1 000072c1 cb65 cb65 cb65 cb65 cb65 cb65 cb65 -6347 cb66 cb66 cb66 * * 2466 8ea2a4e6,8ea2a4e6v 72ba e78aba 72ba 000072ba cb66 cb66 cb66 cb66 cb66 cb66 cb66 -6348 cb67 cb67 cb67 * * 2467 8ea2a4e7,8ea2a4e7v 72c5 e78b85 72c5 000072c5 cb67 cb67 cb67 cb67 cb67 cb67 cb67 -6349 cb68 cb68 cb68 * * 2468 8ea2a4e8,8ea2a4e8v 7395 e78e95 7395 00007395 cb68 cb68 cb68 cb68 cb68 cb68 cb68 -6350 cb69 cb69 cb69 * * 2469 8ea2a4e9,8ea2a4e9v 7397 e78e97 7397 00007397 cb69 cb69 cb69 cb69 cb69 cb69 cb69 -6351 cb6a cb6a cb6a * * 246a 8ea2a4ea,8ea2a4eav 7393 e78e93 7393 00007393 cb6a cb6a cb6a cb6a cb6a cb6a cb6a -6352 cb6b cb6b cb6b * * 246b 8ea2a4eb,8ea2a4ebv 7394 e78e94 7394 00007394 cb6b cb6b cb6b cb6b cb6b cb6b cb6b -6353 cb6c cb6c cb6c * * 246c 8ea2a4ec,8ea2a4ecv 7392 e78e92 7392 00007392 cb6c cb6c cb6c cb6c cb6c cb6c cb6c -6354 cb6d cb6d cb6d * * 246d 8ea2a4ed,8ea2a4edv 753a e794ba 753a 0000753a cb6d cb6d cb6d cb6d cb6d cb6d cb6d -6355 cb6e cb6e cb6e * * 246e 8ea2a4ee,8ea2a4eev 7539 e794b9 7539 00007539 cb6e cb6e cb6e cb6e cb6e cb6e cb6e -6356 cb6f cb6f cb6f * * 246f 8ea2a4ef,8ea2a4efv 7594 e79694 7594 00007594 cb6f cb6f cb6f cb6f cb6f cb6f cb6f -6357 cb70 cb70 cb70 * * 2470 8ea2a4f0,8ea2a4f0v 7595 e79695 7595 00007595 cb70 cb70 cb70 cb70 cb70 cb70 cb70 -6358 cb71 cb71 cb71 * * 2471 8ea2a4f1,8ea2a4f1v 7681 e79a81 7681 00007681 cb71 cb71 cb71 cb71 cb71 cb71 cb71 -6359 cb72 cb72 cb72 * * 2472 8ea2a4f2,8ea2a4f2v 793d e7a4bd 793d 0000793d cb72 cb72 cb72 cb72 cb72 cb72 cb72 -6360 cb73 cb73 cb73 * * 2473 8ea2a4f3,8ea2a4f3v 8034 e880b4 8034 00008034 cb73 cb73 cb73 cb73 cb73 cb73 cb73 -6361 cb74 cb74 cb74 * * 2474 8ea2a4f4,8ea2a4f4v 8095 e88295 8095 00008095 cb74 cb74 cb74 cb74 cb74 cb74 cb74 -6362 cb75 cb75 cb75 * * 2475 8ea2a4f5,8ea2a4f5v 8099 e88299 8099 00008099 cb75 cb75 cb75 cb75 cb75 cb75 cb75 -6363 cb76 cb76 cb76 * * 2476 8ea2a4f6,8ea2a4f6v 8090 e88290 8090 00008090 cb76 cb76 cb76 cb76 cb76 cb76 cb76 -6364 cb77 cb77 cb77 * * 2477 8ea2a4f7,8ea2a4f7v 8092 e88292 8092 00008092 cb77 cb77 cb77 cb77 cb77 cb77 cb77 -6365 cb78 cb78 cb78 * * 2478 8ea2a4f8,8ea2a4f8v 809c e8829c 809c 0000809c cb78 cb78 cb78 cb78 cb78 cb78 cb78 -6366 cb79 cb79 cb79 * * 2479 8ea2a4f9,8ea2a4f9v 8290 e88a90 8290 00008290 cb79 cb79 cb79 cb79 cb79 cb79 cb79 -6367 cb7a cb7a cb7a * * 247a 8ea2a4fa,8ea2a4fav 828f e88a8f 828f 0000828f cb7a cb7a cb7a cb7a cb7a cb7a cb7a -6368 cb7b cb7b cb7b * * 247b 8ea2a4fb,8ea2a4fbv 8285 e88a85 8285 00008285 cb7b cb7b cb7b cb7b cb7b cb7b cb7b -6369 cb7c cb7c cb7c * * 247c 8ea2a4fc,8ea2a4fcv 828e e88a8e 828e 0000828e cb7c cb7c cb7c cb7c cb7c cb7c cb7c -6370 cb7d cb7d cb7d * * 247d 8ea2a4fd,8ea2a4fdv 8291 e88a91 8291 00008291 cb7d cb7d cb7d cb7d cb7d cb7d cb7d -6371 cb7e cb7e cb7e * * 247e 8ea2a4fe,8ea2a4fev 8293 e88a93 8293 00008293 cb7e cb7e cb7e cb7e cb7e cb7e cb7e -6372 cba1 cba1 cba1 * * 2521 8ea2a5a1,8ea2a5a1v 828a e88a8a 828a 0000828a cba1 cba1 cba1 cba1 cba1 cba1 cba1 -6373 cba2 cba2 cba2 * * 2522 8ea2a5a2,8ea2a5a2v 8283 e88a83 8283 00008283 cba2 cba2 cba2 cba2 cba2 cba2 cba2 -6374 cba3 cba3 cba3 * * 2523 8ea2a5a3,8ea2a5a3v 8284 e88a84 8284 00008284 cba3 cba3 cba3 cba3 cba3 cba3 cba3 -6375 cba4 cba4 cba4 * 285a 2524 8ea1a8da,8ea2a5a4,a8da,8ea1a8dav,8ea2a5a4v,a8dav 8c78 e2be98,e8b1b8 2f98,8c78 00002f98,00008c78 cba4 cba4 cba4 cba4 cba4 cba4 cba4 -6376 cba5 cba5 cba5 * * 2525 8ea2a5a5,8ea2a5a5v 8fc9 e8bf89 8fc9 00008fc9 cba5 cba5 cba5 cba5 cba5 cba5 cba5 -6377 cba6 cba6 cba6 * * 2526 8ea2a5a6,8ea2a5a6v 8fbf e8bebf 8fbf 00008fbf cba6 cba6 cba6 cba6 cba6 cba6 cba6 -6378 cba7 cba7 cba7 * * 2527 8ea2a5a7,8ea2a5a7v 909f e9829f 909f 0000909f cba7 cba7 cba7 cba7 cba7 cba7 cba7 -6379 cba8 cba8 cba8 * * 2528 8ea2a5a8,8ea2a5a8v 90a1 e982a1 90a1 000090a1 cba8 cba8 cba8 cba8 cba8 cba8 cba8 -6380 cba9 cba9 cba9 * * 2529 8ea2a5a9,8ea2a5a9v 90a5 e982a5 90a5 000090a5 cba9 cba9 cba9 cba9 cba9 cba9 cba9 -6381 cbaa cbaa cbaa * * 252a 8ea2a5aa,8ea2a5aav 909e e9829e 909e 0000909e cbaa cbaa cbaa cbaa cbaa cbaa cbaa -6382 cbab cbab cbab * * 252b 8ea2a5ab,8ea2a5abv 90a7 e982a7 90a7 000090a7 cbab cbab cbab cbab cbab cbab cbab -6383 cbac cbac cbac * * 252c 8ea2a5ac,8ea2a5acv 90a0 e982a0 90a0 000090a0 cbac cbac cbac cbac cbac cbac cbac -6384 cbad cbad cbad * * 252d 8ea2a5ad,8ea2a5adv 9630 e998b0 9630 00009630 cbad cbad cbad cbad cbad cbad cbad -6385 cbae cbae cbae * * 252e 8ea2a5ae,8ea2a5aev 9628 e998a8 9628 00009628 cbae cbae cbae cbae cbae cbae cbae -6386 cbaf cbaf cbaf * * 252f 8ea2a5af,8ea2a5afv 962f e998af 962f 0000962f cbaf cbaf cbaf cbaf cbaf cbaf cbaf -6387 cbb0 cbb0 cbb0 * * 2530 8ea2a5b0,8ea2a5b0v 962d e998ad 962d 0000962d cbb0 cbb0 cbb0 cbb0 cbb0 cbb0 cbb0 -6388 cbb1 cbb1 cbb1 * * 2531 8ea2a5b1,8ea2a5b1v 4e33 e4b8b3 4e33 00004e33 cbb1 cbb1 cbb1 cbb1 cbb1 cbb1 cbb1 -6389 cbb2 cbb2 cbb2 * * 2532 8ea2a5b2,8ea2a5b2v 4f98 e4be98 4f98 00004f98 cbb2 cbb2 cbb2 cbb2 cbb2 cbb2 cbb2 -6390 cbb3 cbb3 cbb3 * * 2533 8ea2a5b3,8ea2a5b3v 4f7c e4bdbc 4f7c 00004f7c cbb3 cbb3 cbb3 cbb3 cbb3 cbb3 cbb3 -6391 cbb4 cbb4 cbb4 * * 2534 8ea2a5b4,8ea2a5b4v 4f85 e4be85 4f85 00004f85 cbb4 cbb4 cbb4 cbb4 cbb4 cbb4 cbb4 -6392 cbb5 cbb5 cbb5 * * 2535 8ea2a5b5,8ea2a5b5v 4f7d e4bdbd 4f7d 00004f7d cbb5 cbb5 cbb5 cbb5 cbb5 cbb5 cbb5 -6393 cbb6 cbb6 cbb6 * * 2536 8ea2a5b6,8ea2a5b6v 4f80 e4be80 4f80 00004f80 cbb6 cbb6 cbb6 cbb6 cbb6 cbb6 cbb6 -6394 cbb7 cbb7 cbb7 * * 2537 8ea2a5b7,8ea2a5b7v 4f87 e4be87 4f87 00004f87 cbb7 cbb7 cbb7 cbb7 cbb7 cbb7 cbb7 -6395 cbb8 cbb8 cbb8 * * 2538 8ea2a5b8,8ea2a5b8v 4f76 e4bdb6 4f76 00004f76 cbb8 cbb8 cbb8 cbb8 cbb8 cbb8 cbb8 -6396 cbb9 cbb9 cbb9 * * 2539 8ea2a5b9,8ea2a5b9v 4f74 e4bdb4 4f74 00004f74 cbb9 cbb9 cbb9 cbb9 cbb9 cbb9 cbb9 -6397 cbba cbba cbba * * 253a 8ea2a5ba,8ea2a5bav 4f89 e4be89 4f89 00004f89 cbba cbba cbba cbba cbba cbba cbba -6398 cbbb cbbb cbbb * * 253b 8ea2a5bb,8ea2a5bbv 4f84 e4be84 4f84 00004f84 cbbb cbbb cbbb cbbb cbbb cbbb cbbb -6399 cbbc cbbc cbbc * * 253c 8ea2a5bc,8ea2a5bcv 4f77 e4bdb7 4f77 00004f77 cbbc cbbc cbbc cbbc cbbc cbbc cbbc -6400 cbbd cbbd cbbd * * 253d 8ea2a5bd,8ea2a5bdv 4f4c e4bd8c 4f4c 00004f4c cbbd cbbd cbbd cbbd cbbd cbbd cbbd -6401 cbbe cbbe cbbe * * 253e 8ea2a5be,8ea2a5bev 4f97 e4be97 4f97 00004f97 cbbe cbbe cbbe cbbe cbbe cbbe cbbe -6402 cbbf cbbf cbbf * * 253f 8ea2a5bf,8ea2a5bfv 4f6a e4bdaa 4f6a 00004f6a cbbf cbbf cbbf cbbf cbbf cbbf cbbf -6403 cbc0 cbc0 cbc0 * * 2540 8ea2a5c0,8ea2a5c0v 4f9a e4be9a 4f9a 00004f9a cbc0 cbc0 cbc0 cbc0 cbc0 cbc0 cbc0 -6404 cbc1 cbc1 cbc1 * * 2541 8ea2a5c1,8ea2a5c1v 4f79 e4bdb9 4f79 00004f79 cbc1 cbc1 cbc1 cbc1 cbc1 cbc1 cbc1 -6405 cbc2 cbc2 cbc2 * * 2542 8ea2a5c2,8ea2a5c2v 4f81 e4be81 4f81 00004f81 cbc2 cbc2 cbc2 cbc2 cbc2 cbc2 cbc2 -6406 cbc3 cbc3 cbc3 * * 2543 8ea2a5c3,8ea2a5c3v 4f78 e4bdb8 4f78 00004f78 cbc3 cbc3 cbc3 cbc3 cbc3 cbc3 cbc3 -6407 cbc4 cbc4 cbc4 * * 2544 8ea2a5c4,8ea2a5c4v 4f90 e4be90 4f90 00004f90 cbc4 cbc4 cbc4 cbc4 cbc4 cbc4 cbc4 -6408 cbc5 cbc5 cbc5 * * 2545 8ea2a5c5,8ea2a5c5v 4f9c e4be9c 4f9c 00004f9c cbc5 cbc5 cbc5 cbc5 cbc5 cbc5 cbc5 -6409 cbc6 cbc6 cbc6 * * 2546 8ea2a5c6,8ea2a5c6v 4f94 e4be94 4f94 00004f94 cbc6 cbc6 cbc6 cbc6 cbc6 cbc6 cbc6 -6410 cbc7 cbc7 cbc7 * * 2547 8ea2a5c7,8ea2a5c7v 4f9e e4be9e 4f9e 00004f9e cbc7 cbc7 cbc7 cbc7 cbc7 cbc7 cbc7 -6411 cbc8 cbc8 cbc8 * * 2548 8ea2a5c8,8ea2a5c8v 4f92 e4be92 4f92 00004f92 cbc8 cbc8 cbc8 cbc8 cbc8 cbc8 cbc8 -6412 cbc9 cbc9 cbc9 * * 2549 8ea2a5c9,8ea2a5c9v 4f82 e4be82 4f82 00004f82 cbc9 cbc9 cbc9 cbc9 cbc9 cbc9 cbc9 -6413 cbca cbca cbca * * 254a 8ea2a5ca,8ea2a5cav 4f95 e4be95 4f95 00004f95 cbca cbca cbca cbca cbca cbca cbca -6414 cbcb cbcb cbcb * * 254b 8ea2a5cb,8ea2a5cbv 4f6b e4bdab 4f6b 00004f6b cbcb cbcb cbcb cbcb cbcb cbcb cbcb -6415 cbcc cbcc cbcc * * 254c 8ea2a5cc,8ea2a5ccv 4f6e e4bdae 4f6e 00004f6e cbcc cbcc cbcc cbcc cbcc cbcc cbcc -6416 cbcd cbcd cbcd * * 254d 8ea2a5cd,8ea2a5cdv 519e e5869e 519e 0000519e cbcd cbcd cbcd cbcd cbcd cbcd cbcd -6417 cbce cbce cbce * * 254e 8ea2a5ce,8ea2a5cev 51bc e586bc 51bc 000051bc cbce cbce cbce cbce cbce cbce cbce -6418 cbcf cbcf cbcf * * 254f 8ea2a5cf,8ea2a5cfv 51be e586be 51be 000051be cbcf cbcf cbcf cbcf cbcf cbcf cbcf -6419 cbd0 cbd0 cbd0 * * 2550 8ea2a5d0,8ea2a5d0v 5235 e588b5 5235 00005235 cbd0 cbd0 cbd0 cbd0 cbd0 cbd0 cbd0 -6420 cbd1 cbd1 cbd1 * * 2551 8ea2a5d1,8ea2a5d1v 5232 e588b2 5232 00005232 cbd1 cbd1 cbd1 cbd1 cbd1 cbd1 cbd1 -6421 cbd2 cbd2 cbd2 * * 2552 8ea2a5d2,8ea2a5d2v 5233 e588b3 5233 00005233 cbd2 cbd2 cbd2 cbd2 cbd2 cbd2 cbd2 -6422 cbd3 cbd3 cbd3 * * 2553 8ea2a5d3,8ea2a5d3v 5246 e58986 5246 00005246 cbd3 cbd3 cbd3 cbd3 cbd3 cbd3 cbd3 -6423 cbd4 cbd4 cbd4 * * 2554 8ea2a5d4,8ea2a5d4v 5231 e588b1 5231 00005231 cbd4 cbd4 cbd4 cbd4 cbd4 cbd4 cbd4 -6424 cbd5 cbd5 cbd5 * * 2555 8ea2a5d5,8ea2a5d5v 52bc e58abc 52bc 000052bc cbd5 cbd5 cbd5 cbd5 cbd5 cbd5 cbd5 -6425 cbd6 cbd6 cbd6 * * 2556 8ea2a5d6,8ea2a5d6v 530a e58c8a 530a 0000530a cbd6 cbd6 cbd6 cbd6 cbd6 cbd6 cbd6 -6426 cbd7 cbd7 cbd7 * * 2557 8ea2a5d7,8ea2a5d7v 530b e58c8b 530b 0000530b cbd7 cbd7 cbd7 cbd7 cbd7 cbd7 cbd7 -6427 cbd8 cbd8 cbd8 * * 2558 8ea2a5d8,8ea2a5d8v 533c e58cbc 533c 0000533c cbd8 cbd8 cbd8 cbd8 cbd8 cbd8 cbd8 -6428 cbd9 cbd9 cbd9 * * 2559 8ea2a5d9,8ea2a5d9v 5392 e58e92 5392 00005392 cbd9 cbd9 cbd9 cbd9 cbd9 cbd9 cbd9 -6429 cbda cbda cbda * * 255a 8ea2a5da,8ea2a5dav 5394 e58e94 5394 00005394 cbda cbda cbda cbda cbda cbda cbda -6430 cbdb cbdb cbdb * * 255b 8ea2a5db,8ea2a5dbv 5487 e59287 5487 00005487 cbdb cbdb cbdb cbdb cbdb cbdb cbdb -6431 cbdc cbdc cbdc * * 255c 8ea2a5dc,8ea2a5dcv 547f e591bf 547f 0000547f cbdc cbdc cbdc cbdc cbdc cbdc cbdc -6432 cbdd cbdd cbdd * * 255d 8ea2a5dd,8ea2a5ddv 5481 e59281 5481 00005481 cbdd cbdd cbdd cbdd cbdd cbdd cbdd -6433 cbde cbde cbde * * 255e 8ea2a5de,8ea2a5dev 5491 e59291 5491 00005491 cbde cbde cbde cbde cbde cbde cbde -6434 cbdf cbdf cbdf * * 255f 8ea2a5df,8ea2a5dfv 5482 e59282 5482 00005482 cbdf cbdf cbdf cbdf cbdf cbdf cbdf -6435 cbe0 cbe0 cbe0 * * 2560 8ea2a5e0,8ea2a5e0v 5488 e59288 5488 00005488 cbe0 cbe0 cbe0 cbe0 cbe0 cbe0 cbe0 -6436 cbe1 cbe1 cbe1 * * 2561 8ea2a5e1,8ea2a5e1v 546b e591ab 546b 0000546b cbe1 cbe1 cbe1 cbe1 cbe1 cbe1 cbe1 -6437 cbe2 cbe2 cbe2 * * 2562 8ea2a5e2,8ea2a5e2v 547a e591ba 547a 0000547a cbe2 cbe2 cbe2 cbe2 cbe2 cbe2 cbe2 -6438 cbe3 cbe3 cbe3 * * 2563 8ea2a5e3,8ea2a5e3v 547e e591be 547e 0000547e cbe3 cbe3 cbe3 cbe3 cbe3 cbe3 cbe3 -6439 cbe4 cbe4 cbe4 * * 2564 8ea2a5e4,8ea2a5e4v 5465 e591a5 5465 00005465 cbe4 cbe4 cbe4 cbe4 cbe4 cbe4 cbe4 -6440 cbe5 cbe5 cbe5 * * 2565 8ea2a5e5,8ea2a5e5v 546c e591ac 546c 0000546c cbe5 cbe5 cbe5 cbe5 cbe5 cbe5 cbe5 -6441 cbe6 cbe6 cbe6 * * 2566 8ea2a5e6,8ea2a5e6v 5474 e591b4 5474 00005474 cbe6 cbe6 cbe6 cbe6 cbe6 cbe6 cbe6 -6442 cbe7 cbe7 cbe7 * * 2567 8ea2a5e7,8ea2a5e7v 5466 e591a6 5466 00005466 cbe7 cbe7 cbe7 cbe7 cbe7 cbe7 cbe7 -6443 cbe8 cbe8 cbe8 * * 2568 8ea2a5e8,8ea2a5e8v 548d e5928d 548d 0000548d cbe8 cbe8 cbe8 cbe8 cbe8 cbe8 cbe8 -6444 cbe9 cbe9 cbe9 * * 2569 8ea2a5e9,8ea2a5e9v 546f e591af 546f 0000546f cbe9 cbe9 cbe9 cbe9 cbe9 cbe9 cbe9 -6445 cbea cbea cbea * * 256a 8ea2a5ea,8ea2a5eav 5461 e591a1 5461 00005461 cbea cbea cbea cbea cbea cbea cbea -6446 cbeb cbeb cbeb * * 256b 8ea2a5eb,8ea2a5ebv 5460 e591a0 5460 00005460 cbeb cbeb cbeb cbeb cbeb cbeb cbeb -6447 cbec cbec cbec * * 256c 8ea2a5ec,8ea2a5ecv 5498 e59298 5498 00005498 cbec cbec cbec cbec cbec cbec cbec -6448 cbed cbed cbed * * 256d 8ea2a5ed,8ea2a5edv 5463 e591a3 5463 00005463 cbed cbed cbed cbed cbed cbed cbed -6449 cbee cbee cbee * * 256e 8ea2a5ee,8ea2a5eev 5467 e591a7 5467 00005467 cbee cbee cbee cbee cbee cbee cbee -6450 cbef cbef cbef * * 256f 8ea2a5ef,8ea2a5efv 5464 e591a4 5464 00005464 cbef cbef cbef cbef cbef cbef cbef -6451 cbf0 cbf0 cbf0 * * 2570 8ea2a5f0,8ea2a5f0v 56f7 e59bb7 56f7 000056f7 cbf0 cbf0 cbf0 cbf0 cbf0 cbf0 cbf0 -6452 cbf1 cbf1 cbf1 * * 2571 8ea2a5f1,8ea2a5f1v 56f9 e59bb9 56f9 000056f9 cbf1 cbf1 cbf1 cbf1 cbf1 cbf1 cbf1 -6453 cbf2 cbf2 cbf2 * * 2572 8ea2a5f2,8ea2a5f2v 576f e59daf 576f 0000576f cbf2 cbf2 cbf2 cbf2 cbf2 cbf2 cbf2 -6454 cbf3 cbf3 cbf3 * * 2573 8ea2a5f3,8ea2a5f3v 5772 e59db2 5772 00005772 cbf3 cbf3 cbf3 cbf3 cbf3 cbf3 cbf3 -6455 cbf4 cbf4 cbf4 * * 2574 8ea2a5f4,8ea2a5f4v 576d e59dad 576d 0000576d cbf4 cbf4 cbf4 cbf4 cbf4 cbf4 cbf4 -6456 cbf5 cbf5 cbf5 * * 2575 8ea2a5f5,8ea2a5f5v 576b e59dab 576b 0000576b cbf5 cbf5 cbf5 cbf5 cbf5 cbf5 cbf5 -6457 cbf6 cbf6 cbf6 * * 2576 8ea2a5f6,8ea2a5f6v 5771 e59db1 5771 00005771 cbf6 cbf6 cbf6 cbf6 cbf6 cbf6 cbf6 -6458 cbf7 cbf7 cbf7 * * 2577 8ea2a5f7,8ea2a5f7v 5770 e59db0 5770 00005770 cbf7 cbf7 cbf7 cbf7 cbf7 cbf7 cbf7 -6459 cbf8 cbf8 cbf8 * * 2578 8ea2a5f8,8ea2a5f8v 5776 e59db6 5776 00005776 cbf8 cbf8 cbf8 cbf8 cbf8 cbf8 cbf8 -6460 cbf9 cbf9 cbf9 * * 2579 8ea2a5f9,8ea2a5f9v 5780 e59e80 5780 00005780 cbf9 cbf9 cbf9 cbf9 cbf9 cbf9 cbf9 -6461 cbfa cbfa cbfa * * 257a 8ea2a5fa,8ea2a5fav 5775 e59db5 5775 00005775 cbfa cbfa cbfa cbfa cbfa cbfa cbfa -6462 cbfb cbfb cbfb * * 257b 8ea2a5fb,8ea2a5fbv 577b e59dbb 577b 0000577b cbfb cbfb cbfb cbfb cbfb cbfb cbfb -6463 cbfc cbfc cbfc * * 257c 8ea2a5fc,8ea2a5fcv 5773 e59db3 5773 00005773 cbfc cbfc 9060,cbfc cbfc cbfc cbfc cbfc -6464 cbfd cbfd cbfd * * 257d 8ea2a5fd,8ea2a5fdv 5774 e59db4 5774 00005774 cbfd cbfd cbfd cbfd cbfd cbfd cbfd -6465 cbfe cbfe cbfe * * 257e 8ea2a5fe,8ea2a5fev 5762 e59da2 5762 00005762 cbfe cbfe cbfe cbfe cbfe cbfe cbfe -6466 cc40 cc40 cc40 * * 2621 8ea2a6a1,8ea2a6a1v 5768 e59da8 5768 00005768 cc40 cc40 cc40 cc40 cc40 cc40 cc40 -6467 cc41 cc41 cc41 * * 2622 8ea2a6a2,8ea2a6a2v 577d e59dbd 577d 0000577d cc41 cc41 cc41 cc41 cc41 cc41 cc41 -6468 cc42 cc42 cc42 * * 2623 8ea2a6a3,8ea2a6a3v 590c e5a48c 590c 0000590c cc42 cc42 cc42 cc42 cc42 cc42 cc42 -6469 cc43 cc43 cc43 * * 2624 8ea2a6a4,8ea2a6a4v 5945 e5a585 5945 00005945 cc43 cc43 cc43 cc43 cc43 cc43 cc43 -6470 cc44 cc44 cc44 * * 2625 8ea2a6a5,8ea2a6a5v 59b5 e5a6b5 59b5 000059b5 cc44 cc44 cc44 cc44 cc44 cc44 cc44 -6471 cc45 cc45 cc45 * * 2626 8ea2a6a6,8ea2a6a6v 59ba e5a6ba 59ba 000059ba cc45 cc45 cc45 cc45 cc45 cc45 cc45 -6472 cc46 cc46 cc46 * * 2627 8ea2a6a7,8ea2a6a7v 59cf e5a78f 59cf 000059cf cc46 cc46 cc46 cc46 cc46 cc46 cc46 -6473 cc47 cc47 cc47 * * 2628 8ea2a6a8,8ea2a6a8v 59ce e5a78e 59ce 000059ce cc47 cc47 cc47 cc47 cc47 cc47 cc47 -6474 cc48 cc48 cc48 * * 2629 8ea2a6a9,8ea2a6a9v 59b2 e5a6b2 59b2 000059b2 cc48 cc48 cc48 cc48 cc48 cc48 cc48 -6475 cc49 cc49 cc49 * * 262a 8ea2a6aa,8ea2a6aav 59cc e5a78c 59cc 000059cc cc49 cc49 cc49 cc49 cc49 cc49 cc49 -6476 cc4a cc4a cc4a * * 262b 8ea2a6ab,8ea2a6abv 59c1 e5a781 59c1 000059c1 cc4a cc4a cc4a cc4a cc4a cc4a cc4a -6477 cc4b cc4b cc4b * * 262c 8ea2a6ac,8ea2a6acv 59b6 e5a6b6 59b6 000059b6 cc4b cc4b cc4b cc4b cc4b cc4b cc4b -6478 cc4c cc4c cc4c * * 262d 8ea2a6ad,8ea2a6adv 59bc e5a6bc 59bc 000059bc cc4c cc4c cc4c cc4c cc4c cc4c cc4c -6479 cc4d cc4d cc4d * * 262e 8ea2a6ae,8ea2a6aev 59c3 e5a783 59c3 000059c3 cc4d cc4d cc4d cc4d cc4d cc4d cc4d -6480 cc4e cc4e cc4e * * 262f 8ea2a6af,8ea2a6afv 59d6 e5a796 59d6 000059d6 cc4e cc4e cc4e cc4e cc4e cc4e cc4e -6481 cc4f cc4f cc4f * * 2630 8ea2a6b0,8ea2a6b0v 59b1 e5a6b1 59b1 000059b1 cc4f cc4f cc4f cc4f cc4f cc4f cc4f -6482 cc50 cc50 cc50 * * 2631 8ea2a6b1,8ea2a6b1v 59bd e5a6bd 59bd 000059bd cc50 cc50 cc50 cc50 cc50 cc50 cc50 -6483 cc51 cc51 cc51 * * 2632 8ea2a6b2,8ea2a6b2v 59c0 e5a780 59c0 000059c0 cc51 cc51 cc51 cc51 cc51 cc51 cc51 -6484 cc52 cc52 cc52 * * 2633 8ea2a6b3,8ea2a6b3v 59c8 e5a788 59c8 000059c8 cc52 cc52 cc52 cc52 cc52 cc52 cc52 -6485 cc53 cc53 cc53 * * 2634 8ea2a6b4,8ea2a6b4v 59b4 e5a6b4 59b4 000059b4 cc53 cc53 cc53 cc53 cc53 cc53 cc53 -6486 cc54 cc54 cc54 * * 2635 8ea2a6b5,8ea2a6b5v 59c7 e5a787 59c7 000059c7 cc54 cc54 cc54 cc54 cc54 cc54 cc54 -6487 cc55 cc55 cc55 * * 2636 8ea2a6b6,8ea2a6b6v 5b62 e5ada2 5b62 00005b62 cc55 cc55 cc55 cc55 cc55 cc55 cc55 -6488 cc56 cc56 cc56 * * 2637 8ea2a6b7,8ea2a6b7v 5b65 e5ada5 5b65 00005b65 cc56 cc56 cc56 cc56 cc56 cc56 cc56 -6489 cc57 cc57 cc57 * * 2638 8ea2a6b8,8ea2a6b8v 5b93 e5ae93 5b93 00005b93 cc57 cc57 cc57 cc57 cc57 cc57 cc57 -6490 cc58 cc58 cc58 * * 2639 8ea2a6b9,8ea2a6b9v 5b95 e5ae95 5b95 00005b95 cc58 cc58 cc58 cc58 cc58 cc58 cc58 -6491 cc59 cc59 cc59 * * 263a 8ea2a6ba,8ea2a6bav 5c44 e5b184 5c44 00005c44 cc59 cc59 cc59 cc59 cc59 cc59 cc59 -6492 cc5a cc5a cc5a * * 263b 8ea2a6bb,8ea2a6bbv 5c47 e5b187 5c47 00005c47 cc5a cc5a cc5a cc5a cc5a cc5a cc5a -6493 cc5b cc5b cc5b * * 263c 8ea2a6bc,8ea2a6bcv 5cae e5b2ae 5cae 00005cae cc5b cc5b cc5b cc5b cc5b cc5b cc5b -6494 cc5c cc5c cc5c * * 263d 8ea2a6bd,8ea2a6bdv 5ca4 e5b2a4 5ca4 00005ca4 cc5c cc5c cc5c cc5c cc5c cc5c cc5c -6495 cc5d cc5d cc5d * * 263e 8ea2a6be,8ea2a6bev 5ca0 e5b2a0 5ca0 00005ca0 cc5d cc5d cc5d cc5d cc5d cc5d cc5d -6496 cc5e cc5e cc5e * * 263f 8ea2a6bf,8ea2a6bfv 5cb5 e5b2b5 5cb5 00005cb5 cc5e cc5e cc5e cc5e cc5e cc5e cc5e -6497 cc5f cc5f cc5f * * 2640 8ea2a6c0,8ea2a6c0v 5caf e5b2af 5caf 00005caf cc5f cc5f cc5f cc5f cc5f cc5f cc5f -6498 cc60 cc60 cc60 * * 2641 8ea2a6c1,8ea2a6c1v 5ca8 e5b2a8 5ca8 00005ca8 cc60 cc60 cc60 cc60 cc60 cc60 cc60 -6499 cc61 cc61 cc61 * * 2642 8ea2a6c2,8ea2a6c2v 5cac e5b2ac 5cac 00005cac cc61 cc61 cc61 cc61 cc61 cc61 cc61 -6500 cc62 cc62 cc62 * * 2643 8ea2a6c3,8ea2a6c3v 5c9f e5b29f 5c9f 00005c9f cc62 cc62 cc62 cc62 cc62 cc62 cc62 -6501 cc63 cc63 cc63 * * 2644 8ea2a6c4,8ea2a6c4v 5ca3 e5b2a3 5ca3 00005ca3 cc63 cc63 cc63 cc63 cc63 cc63 cc63 -6502 cc64 cc64 cc64 * * 2645 8ea2a6c5,8ea2a6c5v 5cad e5b2ad 5cad 00005cad cc64 cc64 cc64 cc64 cc64 cc64 cc64 -6503 cc65 cc65 cc65 * * 2646 8ea2a6c6,8ea2a6c6v 5ca2 e5b2a2 5ca2 00005ca2 cc65 cc65 cc65 cc65 cc65 cc65 cc65 -6504 cc66 cc66 cc66 * * 2647 8ea2a6c7,8ea2a6c7v 5caa e5b2aa 5caa 00005caa cc66 cc66 cc66 cc66 cc66 cc66 cc66 -6505 cc67 cc67 cc67 * * 2648 8ea2a6c8,8ea2a6c8v 5ca7 e5b2a7 5ca7 00005ca7 cc67 cc67 cc67 cc67 cc67 cc67 cc67 -6506 cc68 cc68 cc68 * * 2649 8ea2a6c9,8ea2a6c9v 5c9d e5b29d 5c9d 00005c9d cc68 cc68 cc68 cc68 cc68 cc68 cc68 -6507 cc69 cc69 cc69 * * 264a 8ea2a6ca,8ea2a6cav 5ca5 e5b2a5 5ca5 00005ca5 cc69 cc69 cc69 cc69 cc69 cc69 cc69 -6508 cc6a cc6a cc6a * * 264b 8ea2a6cb,8ea2a6cbv 5cb6 e5b2b6 5cb6 00005cb6 cc6a cc6a cc6a cc6a cc6a cc6a cc6a -6509 cc6b cc6b cc6b * * 264c 8ea2a6cc,8ea2a6ccv 5cb0 e5b2b0 5cb0 00005cb0 cc6b cc6b cc6b cc6b cc6b cc6b cc6b -6510 cc6c cc6c cc6c * * 264d 8ea2a6cd,8ea2a6cdv 5ca6 e5b2a6 5ca6 00005ca6 cc6c cc6c cc6c cc6c cc6c cc6c cc6c -6511 cc6d cc6d cc6d * * 264e 8ea2a6ce,8ea2a6cev 5e17 e5b897 5e17 00005e17 cc6d cc6d cc6d cc6d cc6d cc6d cc6d -6512 cc6e cc6e cc6e * * 264f 8ea2a6cf,8ea2a6cfv 5e14 e5b894 5e14 00005e14 cc6e cc6e cc6e cc6e cc6e cc6e cc6e -6513 cc6f cc6f cc6f * * 2650 8ea2a6d0,8ea2a6d0v 5e19 e5b899 5e19 00005e19 cc6f cc6f,fc4a 91f4,cc6f cc6f cc6f cc6f cc6f -6514 cc70 cc70 cc70 * * 2651 8ea2a6d1,8ea2a6d1v 5f28 e5bca8 5f28 00005f28 cc70 cc70 cc70 cc70 cc70 cc70 cc70 -6515 cc71 cc71 cc71 * * 2652 8ea2a6d2,8ea2a6d2v 5f22 e5bca2 5f22 00005f22 cc71 cc71 cc71 cc71 cc71 cc71 cc71 -6516 cc72 cc72 cc72 * * 2653 8ea2a6d3,8ea2a6d3v 5f23 e5bca3 5f23 00005f23 cc72 cc72 cc72 cc72 cc72 cc72 cc72 -6517 cc73 cc73 cc73 * * 2654 8ea2a6d4,8ea2a6d4v 5f24 e5bca4 5f24 00005f24 cc73 cc73 cc73 cc73 cc73 cc73 cc73 -6518 cc74 cc74 cc74 * * 2655 8ea2a6d5,8ea2a6d5v 5f54 e5bd94 5f54 00005f54 cc74 cc74 cc74 cc74 cc74 cc74 cc74 -6519 cc75 cc75 cc75 * * 2656 8ea2a6d6,8ea2a6d6v 5f82 e5be82 5f82 00005f82 cc75 cc75 cc75 cc75 cc75 cc75 cc75 -6520 cc76 cc76 cc76 * * 2657 8ea2a6d7,8ea2a6d7v 5f7e e5bdbe 5f7e 00005f7e cc76 cc76 cc76 cc76 cc76 cc76 cc76 -6521 cc77 cc77 cc77 * * 2658 8ea2a6d8,8ea2a6d8v 5f7d e5bdbd 5f7d 00005f7d cc77 cc77 cc77 cc77 cc77 cc77 cc77 -6522 cc78 cc78 cc78 * * 2659 8ea2a6d9,8ea2a6d9v 5fde e5bf9e 5fde 00005fde cc78 cc78 cc78 cc78 cc78 cc78 cc78 -6523 cc79 cc79 cc79 * * 265a 8ea2a6da,8ea2a6dav 5fe5 e5bfa5 5fe5 00005fe5 cc79 cc79 cc79 cc79 cc79 cc79 cc79 -6524 cc7a cc7a cc7a * * 265b 8ea2a6db,8ea2a6dbv 602d e680ad 602d 0000602d cc7a cc7a cc7a cc7a cc7a cc7a cc7a -6525 cc7b cc7b cc7b * * 265c 8ea2a6dc,8ea2a6dcv 6026 e680a6 6026 00006026 cc7b cc7b cc7b cc7b cc7b cc7b cc7b -6526 cc7c cc7c cc7c * * 265d 8ea2a6dd,8ea2a6ddv 6019 e68099 6019 00006019 cc7c cc7c cc7c cc7c cc7c cc7c cc7c -6527 cc7d cc7d cc7d * * 265e 8ea2a6de,8ea2a6dev 6032 e680b2 6032 00006032 cc7d cc7d cc7d cc7d cc7d cc7d cc7d -6528 cc7e cc7e cc7e * * 265f 8ea2a6df,8ea2a6dfv 600b e6808b 600b 0000600b cc7e cc7e cc7e cc7e cc7e cc7e cc7e -6529 cca1 cca1 cca1 * * 2660 8ea2a6e0,8ea2a6e0v 6034 e680b4 6034 00006034 cca1 cca1 cca1 cca1 cca1 cca1 cca1 -6530 cca2 cca2 cca2 * * 2661 8ea2a6e1,8ea2a6e1v 600a e6808a 600a 0000600a cca2 cca2 cca2 cca2 cca2 cca2 cca2 -6531 cca3 cca3 cca3 * * 2662 8ea2a6e2,8ea2a6e2v 6017 e68097 6017 00006017 cca3 cca3 cca3 cca3 cca3 cca3 cca3 -6532 cca4 cca4 cca4 * * 2663 8ea2a6e3,8ea2a6e3v 6033 e680b3 6033 00006033 cca4 cca4 cca4 cca4 cca4 cca4 cca4 -6533 cca5 cca5 cca5 * * 2664 8ea2a6e4,8ea2a6e4v 601a e6809a 601a 0000601a cca5 cca5 cca5 cca5 cca5 cca5 cca5 -6534 cca6 cca6 cca6 * * 2665 8ea2a6e5,8ea2a6e5v 601e e6809e 601e 0000601e cca6 cca6 cca6 cca6 cca6 cca6 cca6 -6535 cca7 cca7 cca7 * * 2666 8ea2a6e6,8ea2a6e6v 602c e680ac 602c 0000602c cca7 cca7 cca7 cca7 cca7 cca7 cca7 -6536 cca8 cca8 cca8 * * 2667 8ea2a6e7,8ea2a6e7v 6022 e680a2 6022 00006022 cca8 cca8 cca8 cca8 cca8 cca8 cca8 -6537 cca9 cca9 cca9 * * 2668 8ea2a6e8,8ea2a6e8v 600d e6808d 600d 0000600d cca9 cca9 cca9 cca9 cca9 cca9 cca9 -6538 ccaa ccaa ccaa * * 2669 8ea2a6e9,8ea2a6e9v 6010 e68090 6010 00006010 ccaa ccaa ccaa ccaa ccaa ccaa ccaa -6539 ccab ccab ccab * * 266a 8ea2a6ea,8ea2a6eav 602e e680ae 602e 0000602e ccab ccab ccab ccab ccab ccab ccab -6540 ccac ccac ccac * * 266b 8ea2a6eb,8ea2a6ebv 6013 e68093 6013 00006013 ccac ccac ccac ccac ccac ccac ccac -6541 ccad ccad ccad * * 266c 8ea2a6ec,8ea2a6ecv 6011 e68091 6011 00006011 ccad ccad ccad ccad ccad ccad ccad -6542 ccae ccae ccae * * 266d 8ea2a6ed,8ea2a6edv 600c e6808c 600c 0000600c ccae ccae ccae ccae ccae ccae ccae -6543 ccaf ccaf ccaf * * 266e 8ea2a6ee,8ea2a6eev 6009 e68089 6009 00006009 ccaf ccaf ccaf ccaf ccaf ccaf ccaf -6544 ccb0 ccb0 ccb0 * * 266f 8ea2a6ef,8ea2a6efv 601c e6809c 601c 0000601c ccb0 ccb0 ccb0 ccb0 ccb0 ccb0 ccb0 -6545 ccb1 ccb1 ccb1 * * 2670 8ea2a6f0,8ea2a6f0v 6214 e68894 6214 00006214 ccb1 ccb1 ccb1 ccb1 ccb1 ccb1 ccb1 -6546 ccb2 ccb2 ccb2 * * 2671 8ea2a6f1,8ea2a6f1v 623d e688bd 623d 0000623d ccb2 ccb2 ccb2 ccb2 ccb2 ccb2 ccb2 -6547 ccb3 ccb3 ccb3 * * 2672 8ea2a6f2,8ea2a6f2v 62ad e68aad 62ad 000062ad ccb3 ccb3 ccb3 ccb3 ccb3 ccb3 ccb3 -6548 ccb4 ccb4 ccb4 * * 2673 8ea2a6f3,8ea2a6f3v 62b4 e68ab4 62b4 000062b4 ccb4 ccb4 ccb4 ccb4 ccb4 ccb4 ccb4 -6549 ccb5 ccb5 ccb5 * * 2674 8ea2a6f4,8ea2a6f4v 62d1 e68b91 62d1 000062d1 ccb5 ccb5 ccb5 ccb5 ccb5 ccb5 ccb5 -6550 ccb6 ccb6 ccb6 * * 2675 8ea2a6f5,8ea2a6f5v 62be e68abe 62be 000062be ccb6 ccb6 ccb6 ccb6 ccb6 ccb6 ccb6 -6551 ccb7 ccb7 ccb7 * * 2676 8ea2a6f6,8ea2a6f6v 62aa e68aaa 62aa 000062aa ccb7 ccb7 ccb7 ccb7 ccb7 ccb7 ccb7 -6552 ccb8 ccb8 ccb8 * * 2677 8ea2a6f7,8ea2a6f7v 62b6 e68ab6 62b6 000062b6 ccb8 ccb8 ccb8 ccb8 ccb8 ccb8 ccb8 -6553 ccb9 ccb9 ccb9 * * 2678 8ea2a6f8,8ea2a6f8v 62ca e68b8a 62ca 000062ca ccb9 ccb9 ccb9 ccb9 ccb9 ccb9 ccb9 -6554 ccba ccba ccba * * 2679 8ea2a6f9,8ea2a6f9v 62ae e68aae 62ae 000062ae ccba ccba ccba ccba ccba ccba ccba -6555 ccbb ccbb ccbb * * 267a 8ea2a6fa,8ea2a6fav 62b3 e68ab3 62b3 000062b3 ccbb ccbb ccbb ccbb ccbb ccbb ccbb -6556 ccbc ccbc ccbc * * 267b 8ea2a6fb,8ea2a6fbv 62af e68aaf 62af 000062af ccbc ccbc ccbc ccbc ccbc ccbc ccbc -6557 ccbd ccbd ccbd * * 267c 8ea2a6fc,8ea2a6fcv 62bb e68abb 62bb 000062bb ccbd ccbd ccbd ccbd ccbd ccbd ccbd -6558 ccbe ccbe ccbe * * 267d 8ea2a6fd,8ea2a6fdv 62a9 e68aa9 62a9 000062a9 ccbe ccbe ccbe ccbe ccbe ccbe ccbe -6559 ccbf ccbf ccbf * * 267e 8ea2a6fe,8ea2a6fev 62b0 e68ab0 62b0 000062b0 ccbf ccbf ccbf ccbf ccbf ccbf ccbf -6560 ccc0 ccc0 ccc0 * * 2721 8ea2a7a1,8ea2a7a1v 62b8 e68ab8 62b8 000062b8 ccc0 ccc0 ccc0 ccc0 ccc0 ccc0 ccc0 -6561 ccc1 ccc1 ccc1 * * 2722 8ea2a7a2,8ea2a7a2v 653d e694bd 653d 0000653d ccc1 ccc1 ccc1 ccc1 ccc1 ccc1 ccc1 -6562 ccc2 ccc2 ccc2 * * 2723 8ea2a7a3,8ea2a7a3v 65a8 e696a8 65a8 000065a8 ccc2 ccc2 ccc2 ccc2 ccc2 ccc2 ccc2 -6563 ccc3 ccc3 ccc3 * * 2724 8ea2a7a4,8ea2a7a4v 65bb e696bb 65bb 000065bb ccc3 ccc3 ccc3 ccc3 ccc3 ccc3 ccc3 -6564 ccc4 ccc4 ccc4 * * 2725 8ea2a7a5,8ea2a7a5v 6609 e69889 6609 00006609 ccc4 ccc4 ccc4 ccc4 ccc4 ccc4 ccc4 -6565 ccc5 ccc5 ccc5 * * 2726 8ea2a7a6,8ea2a7a6v 65fc e697bc 65fc 000065fc ccc5 ccc5 ccc5 ccc5 ccc5 ccc5 ccc5 -6566 ccc6 ccc6 ccc6 * * 2727 8ea2a7a7,8ea2a7a7v 6604 e69884 6604 00006604 ccc6 ccc6 ccc6 ccc6 ccc6 ccc6 ccc6 -6567 ccc7 ccc7 ccc7 * * 2728 8ea2a7a8,8ea2a7a8v 6612 e69892 6612 00006612 ccc7 ccc7 ccc7 ccc7 ccc7 ccc7 ccc7 -6568 ccc8 ccc8 ccc8 * * 2729 8ea2a7a9,8ea2a7a9v 6608 e69888 6608 00006608 ccc8 ccc8 ccc8 ccc8 ccc8 ccc8 ccc8 -6569 ccc9 ccc9 ccc9 * * 272a 8ea2a7aa,8ea2a7aav 65fb e697bb 65fb 000065fb ccc9 ccc9 ccc9 ccc9 ccc9 ccc9 ccc9 -6570 ccca ccca ccca * * 272b 8ea2a7ab,8ea2a7abv 6603 e69883 6603 00006603 ccca ccca ccca ccca ccca ccca ccca -6571 cccb cccb cccb * * 272c 8ea2a7ac,8ea2a7acv 660b e6988b 660b 0000660b cccb cccb cccb cccb cccb cccb cccb -6572 cccc cccc cccc * * 272d 8ea2a7ad,8ea2a7adv 660d e6988d 660d 0000660d cccc cccc cccc cccc cccc cccc cccc -6573 cccd cccd cccd * * 272e 8ea2a7ae,8ea2a7aev 6605 e69885 6605 00006605 cccd cccd cccd cccd cccd cccd cccd -6574 ccce ccce ccce * * 272f 8ea2a7af,8ea2a7afv 65fd e697bd 65fd 000065fd ccce ccce ccce ccce ccce ccce ccce -6575 cccf cccf cccf * * 2730 8ea2a7b0,8ea2a7b0v 6611 e69891 6611 00006611 cccf cccf cccf cccf cccf cccf cccf -6576 ccd0 ccd0 ccd0 * * 2731 8ea2a7b1,8ea2a7b1v 6610 e69890 6610 00006610 ccd0 ccd0 ccd0 ccd0 ccd0 ccd0 ccd0 -6577 ccd1 ccd1 ccd1 * * 2732 8ea2a7b2,8ea2a7b2v 66f6 e69bb6 66f6 000066f6 ccd1 ccd1 ccd1 ccd1 ccd1 ccd1 ccd1 -6578 ccd2 ccd2 ccd2 * * 2733 8ea2a7b3,8ea2a7b3v 670a e69c8a 670a 0000670a ccd2 ccd2 ccd2 ccd2 ccd2 ccd2 ccd2 -6579 ccd3 ccd3 ccd3 * * 2734 8ea2a7b4,8ea2a7b4v 6785 e69e85 6785 00006785 ccd3 ccd3 ccd3 ccd3 ccd3 ccd3 ccd3 -6580 ccd4 ccd4 ccd4 * * 2735 8ea2a7b5,8ea2a7b5v 676c e69dac 676c 0000676c ccd4 ccd4 ccd4 ccd4 ccd4 ccd4 ccd4 -6581 ccd5 ccd5 ccd5 * * 2736 8ea2a7b6,8ea2a7b6v 678e e69e8e 678e 0000678e ccd5 ccd5 ccd5 ccd5 ccd5 ccd5 ccd5 -6582 ccd6 ccd6 ccd6 * * 2737 8ea2a7b7,8ea2a7b7v 6792 e69e92 6792 00006792 ccd6 ccd6 ccd6 ccd6 ccd6 ccd6 ccd6 -6583 ccd7 ccd7 ccd7 * * 2738 8ea2a7b8,8ea2a7b8v 6776 e69db6 6776 00006776 ccd7 ccd7 ccd7 ccd7 ccd7 ccd7 ccd7 -6584 ccd8 ccd8 ccd8 * * 2739 8ea2a7b9,8ea2a7b9v 677b e69dbb 677b 0000677b ccd8 ccd8 ccd8 ccd8 ccd8 ccd8 ccd8 -6585 ccd9 ccd9 ccd9 * * 273a 8ea2a7ba,8ea2a7bav 6798 e69e98 6798 00006798 ccd9 ccd9 ccd9 ccd9 ccd9 ccd9 ccd9 -6586 ccda ccda ccda * * 273b 8ea2a7bb,8ea2a7bbv 6786 e69e86 6786 00006786 ccda ccda ccda ccda ccda ccda ccda -6587 ccdb ccdb ccdb * * 273c 8ea2a7bc,8ea2a7bcv 6784 e69e84 6784 00006784 ccdb ccdb ccdb ccdb ccdb ccdb ccdb -6588 ccdc ccdc ccdc * * 273d 8ea2a7bd,8ea2a7bdv 6774 e69db4 6774 00006774 ccdc ccdc ccdc ccdc ccdc ccdc ccdc -6589 ccdd ccdd ccdd * * 273e 8ea2a7be,8ea2a7bev 678d e69e8d 678d 0000678d ccdd ccdd ccdd ccdd ccdd ccdd ccdd -6590 ccde ccde ccde * * 273f 8ea2a7bf,8ea2a7bfv 678c e69e8c 678c 0000678c ccde ccde ccde ccde ccde ccde ccde -6591 ccdf ccdf ccdf * * 2740 8ea2a7c0,8ea2a7c0v 677a e69dba 677a 0000677a ccdf ccdf ccdf ccdf ccdf ccdf ccdf -6592 cce0 cce0 cce0 * * 2741 8ea2a7c1,8ea2a7c1v 679f e69e9f 679f 0000679f cce0 cce0 cce0 cce0 cce0 cce0 cce0 -6593 cce1 cce1 cce1 * * 2742 8ea2a7c2,8ea2a7c2v 6791 e69e91 6791 00006791 cce1 cce1 cce1 cce1 cce1 cce1 cce1 -6594 cce2 cce2 cce2 * * 2743 8ea2a7c3,8ea2a7c3v 6799 e69e99 6799 00006799 cce2 cce2 cce2 cce2 cce2 cce2 cce2 -6595 cce3 cce3 cce3 * * 2744 8ea2a7c4,8ea2a7c4v 6783 e69e83 6783 00006783 cce3 cce3 cce3 cce3 cce3 cce3 cce3 -6596 cce4 cce4 cce4 * * 2745 8ea2a7c5,8ea2a7c5v 677d e69dbd 677d 0000677d cce4 cce4 cce4 cce4 cce4 cce4 cce4 -6597 cce5 cce5 cce5 * * 2746 8ea2a7c6,8ea2a7c6v 6781 e69e81 6781 00006781 cce5 cce5 cce5 cce5 cce5 cce5 cce5 -6598 cce6 cce6 cce6 * * 2747 8ea2a7c7,8ea2a7c7v 6778 e69db8 6778 00006778 cce6 cce6 cce6 cce6 cce6 cce6 cce6 -6599 cce7 cce7 cce7 * * 2748 8ea2a7c8,8ea2a7c8v 6779 e69db9 6779 00006779 cce7 cce7 cce7 cce7 cce7 cce7 cce7 -6600 cce8 cce8 cce8 * * 2749 8ea2a7c9,8ea2a7c9v 6794 e69e94 6794 00006794 cce8 cce8 cce8 cce8 cce8 cce8 cce8 -6601 cce9 cce9 cce9 * * 274a 8ea2a7ca,8ea2a7cav 6b25 e6aca5 6b25 00006b25 cce9 cce9 cce9 cce9 cce9 cce9 cce9 -6602 ccea ccea ccea * * 274b 8ea2a7cb,8ea2a7cbv 6b80 e6ae80 6b80 00006b80 ccea ccea ccea ccea ccea ccea ccea -6603 cceb cceb cceb * * 274c 8ea2a7cc,8ea2a7ccv 6b7e e6adbe 6b7e 00006b7e cceb cceb cceb cceb cceb cceb cceb -6604 ccec ccec ccec * * 274d 8ea2a7cd,8ea2a7cdv 6bde e6af9e 6bde 00006bde ccec ccec ccec ccec ccec ccec ccec -6605 cced cced cced * * 274e 8ea2a7ce,8ea2a7cev 6c1d e6b09d 6c1d 00006c1d cced cced cced cced cced cced cced -6606 ccee ccee ccee * * 274f 8ea2a7cf,8ea2a7cfv 6c93 e6b293 6c93 00006c93 ccee ccee ccee ccee ccee ccee ccee -6607 ccef ccef ccef * * 2750 8ea2a7d0,8ea2a7d0v 6cec e6b3ac 6cec 00006cec ccef ccef ccef ccef ccef ccef ccef -6608 ccf0 ccf0 ccf0 * * 2751 8ea2a7d1,8ea2a7d1v 6ceb e6b3ab 6ceb 00006ceb ccf0 ccf0 ccf0 ccf0 ccf0 ccf0 ccf0 -6609 ccf1 ccf1 ccf1 * * 2752 8ea2a7d2,8ea2a7d2v 6cee e6b3ae 6cee 00006cee ccf1 ccf1 ccf1 ccf1 ccf1 ccf1 ccf1 -6610 ccf2 ccf2 ccf2 * * 2753 8ea2a7d3,8ea2a7d3v 6cd9 e6b399 6cd9 00006cd9 ccf2 ccf2 ccf2 ccf2 ccf2 ccf2 ccf2 -6611 ccf3 ccf3 ccf3 * * 2754 8ea2a7d4,8ea2a7d4v 6cb6 e6b2b6 6cb6 00006cb6 ccf3 ccf3 ccf3 ccf3 ccf3 ccf3 ccf3 -6612 ccf4 ccf4 ccf4 * * 2755 8ea2a7d5,8ea2a7d5v 6cd4 e6b394 6cd4 00006cd4 ccf4 ccf4 ccf4 ccf4 ccf4 ccf4 ccf4 -6613 ccf5 ccf5 ccf5 * * 2756 8ea2a7d6,8ea2a7d6v 6cad e6b2ad 6cad 00006cad ccf5 ccf5 ccf5 ccf5 ccf5 ccf5 ccf5 -6614 ccf6 ccf6 ccf6 * * 2757 8ea2a7d7,8ea2a7d7v 6ce7 e6b3a7 6ce7 00006ce7 ccf6 ccf6 ccf6 ccf6 ccf6 ccf6 ccf6 -6615 ccf7 ccf7 ccf7 * * 2758 8ea2a7d8,8ea2a7d8v 6cb7 e6b2b7 6cb7 00006cb7 ccf7 ccf7 ccf7 ccf7 ccf7 ccf7 ccf7 -6616 ccf8 ccf8 ccf8 * * 2759 8ea2a7d9,8ea2a7d9v 6cd0 e6b390 6cd0 00006cd0 ccf8 ccf8 ccf8 ccf8 ccf8 ccf8 ccf8 -6617 ccf9 ccf9 ccf9 * * 275a 8ea2a7da,8ea2a7dav 6cc2 e6b382 6cc2 00006cc2 ccf9 ccf9 ccf9 ccf9 ccf9 ccf9 ccf9 -6618 ccfa ccfa ccfa * * 275b 8ea2a7db,8ea2a7dbv 6cba e6b2ba 6cba 00006cba ccfa ccfa ccfa ccfa ccfa ccfa ccfa -6619 ccfb ccfb ccfb * * 275c 8ea2a7dc,8ea2a7dcv 6cc3 e6b383 6cc3 00006cc3 ccfb ccfb ccfb ccfb ccfb ccfb ccfb -6620 ccfc ccfc ccfc * * 275d 8ea2a7dd,8ea2a7ddv 6cc6 e6b386 6cc6 00006cc6 ccfc ccfc ccfc ccfc ccfc ccfc ccfc -6621 ccfd ccfd ccfd * * 275e 8ea2a7de,8ea2a7dev 6ced e6b3ad 6ced 00006ced ccfd ccfd ccfd ccfd ccfd ccfd ccfd -6622 ccfe ccfe ccfe * * 275f 8ea2a7df,8ea2a7dfv 6cf2 e6b3b2 6cf2 00006cf2 ccfe ccfe ccfe ccfe ccfe ccfe ccfe -6623 cd40 cd40 cd40 * * 2760 8ea2a7e0,8ea2a7e0v 6cd2 e6b392 6cd2 00006cd2 cd40 cd40 cd40 cd40 cd40 cd40 cd40 -6624 cd41 cd41 cd41 * * 2761 8ea2a7e1,8ea2a7e1v 6cdd e6b39d 6cdd 00006cdd cd41 cd41 cd41 cd41 cd41 cd41 cd41 -6625 cd42 cd42 cd42 * * 2762 8ea2a7e2,8ea2a7e2v 6cb4 e6b2b4 6cb4 00006cb4 cd42 cd42 cd42 cd42 cd42 cd42 cd42 -6626 cd43 cd43 cd43 * * 2763 8ea2a7e3,8ea2a7e3v 6c8a e6b28a 6c8a 00006c8a cd43 cd43 cd43 cd43 cd43 cd43 cd43 -6627 cd44 cd44 cd44 * * 2764 8ea2a7e4,8ea2a7e4v 6c9d e6b29d 6c9d 00006c9d cd44 cd44 cd44 cd44 cd44 cd44 cd44 -6628 cd45 cd45 cd45 * * 2765 8ea2a7e5,8ea2a7e5v 6c80 e6b280 6c80 00006c80 cd45 cd45 cd45 cd45 cd45 cd45 cd45 -6629 cd46 cd46 cd46 * * 2766 8ea2a7e6,8ea2a7e6v 6cde e6b39e 6cde 00006cde cd46 cd46 cd46 cd46 cd46 cd46 cd46 -6630 cd47 cd47 cd47 * * 2767 8ea2a7e7,8ea2a7e7v 6cc0 e6b380 6cc0 00006cc0 cd47 cd47 cd47 cd47 cd47 cd47 cd47 -6631 cd48 cd48 cd48 * * 2768 8ea2a7e8,8ea2a7e8v 6d30 e6b4b0 6d30 00006d30 cd48 cd48 cd48 cd48 cd48 cd48 cd48 -6632 cd49 cd49 cd49 * * 2769 8ea2a7e9,8ea2a7e9v 6ccd e6b38d 6ccd 00006ccd cd49 cd49 cd49 cd49 cd49 cd49 cd49 -6633 cd4a cd4a cd4a * * 276a 8ea2a7ea,8ea2a7eav 6cc7 e6b387 6cc7 00006cc7 cd4a cd4a cd4a cd4a cd4a cd4a cd4a -6634 cd4b cd4b cd4b * * 276b 8ea2a7eb,8ea2a7ebv 6cb0 e6b2b0 6cb0 00006cb0 cd4b cd4b cd4b cd4b cd4b cd4b cd4b -6635 cd4c cd4c cd4c * * 276c 8ea2a7ec,8ea2a7ecv 6cf9 e6b3b9 6cf9 00006cf9 cd4c cd4c cd4c cd4c cd4c cd4c cd4c -6636 cd4d cd4d cd4d * * 276d 8ea2a7ed,8ea2a7edv 6ccf e6b38f 6ccf 00006ccf cd4d cd4d cd4d cd4d cd4d cd4d cd4d -6637 cd4e cd4e cd4e * * 276e 8ea2a7ee,8ea2a7eev 6ce9 e6b3a9 6ce9 00006ce9 cd4e cd4e cd4e cd4e cd4e cd4e cd4e -6638 cd4f cd4f cd4f * * 276f 8ea2a7ef,8ea2a7efv 6cd1 e6b391 6cd1 00006cd1 cd4f cd4f cd4f cd4f cd4f cd4f cd4f -6639 cd50 cd50 cd50 * * 2770 8ea2a7f0,8ea2a7f0v 7094 e78294 7094 00007094 cd50 cd50 cd50 cd50 cd50 cd50 cd50 -6640 cd51 cd51 cd51 * * 2771 8ea2a7f1,8ea2a7f1v 7098 e78298 7098 00007098 cd51 cd51 cd51 cd51 cd51 cd51 cd51 -6641 cd52 cd52 cd52 * * 2772 8ea2a7f2,8ea2a7f2v 7085 e78285 7085 00007085 cd52 cd52 cd52 cd52 cd52 cd52 cd52 -6642 cd53 cd53 cd53 * * 2773 8ea2a7f3,8ea2a7f3v 7093 e78293 7093 00007093 cd53 cd53 cd53 cd53 cd53 cd53 cd53 -6643 cd54 cd54 cd54 * * 2774 8ea2a7f4,8ea2a7f4v 7086 e78286 7086 00007086 cd54 cd54 cd54 cd54 cd54 cd54 cd54 -6644 cd55 cd55 cd55 * * 2775 8ea2a7f5,8ea2a7f5v 7084 e78284 7084 00007084 cd55 cd55 cd55 cd55 cd55 cd55 cd55 -6645 cd56 cd56 cd56 * * 2776 8ea2a7f6,8ea2a7f6v 7091 e78291 7091 00007091 cd56 cd56 cd56 cd56 cd56 cd56 cd56 -6646 cd57 cd57 cd57 * * 2777 8ea2a7f7,8ea2a7f7v 7096 e78296 7096 00007096 cd57 cd57 cd57 cd57 cd57 cd57 cd57 -6647 cd58 cd58 cd58 * * 2778 8ea2a7f8,8ea2a7f8v 7082 e78282 7082 00007082 cd58 cd58 cd58 cd58 cd58 cd58 cd58 -6648 cd59 cd59 cd59 * * 2779 8ea2a7f9,8ea2a7f9v 709a e7829a 709a 0000709a cd59 cd59 cd59 cd59 cd59 cd59 cd59 -6649 cd5a cd5a cd5a * * 277a 8ea2a7fa,8ea2a7fav 7083 e78283 7083 00007083 cd5a cd5a cd5a cd5a cd5a cd5a cd5a -6650 cd5b cd5b cd5b * * 277b 8ea2a7fb,8ea2a7fbv 726a e789aa 726a 0000726a cd5b cd5b cd5b cd5b cd5b cd5b cd5b -6651 cd5c cd5c cd5c * * 277c 8ea2a7fc,8ea2a7fcv 72d6 e78b96 72d6 000072d6 cd5c cd5c cd5c cd5c cd5c cd5c cd5c -6652 cd5d cd5d cd5d * * 277d 8ea2a7fd,8ea2a7fdv 72cb e78b8b 72cb 000072cb cd5d cd5d cd5d cd5d cd5d cd5d cd5d -6653 cd5e cd5e cd5e * * 277e 8ea2a7fe,8ea2a7fev 72d8 e78b98 72d8 000072d8 cd5e cd5e cd5e cd5e cd5e cd5e cd5e -6654 cd5f cd5f cd5f * * 2821 8ea2a8a1,8ea2a8a1v 72c9 e78b89 72c9 000072c9 cd5f cd5f cd5f cd5f cd5f cd5f cd5f -6655 cd60 cd60 cd60 * * 2822 8ea2a8a2,8ea2a8a2v 72dc e78b9c 72dc 000072dc cd60 cd60 cd60 cd60 cd60 cd60 cd60 -6656 cd61 cd61 cd61 * * 2823 8ea2a8a3,8ea2a8a3v 72d2 e78b92 72d2 000072d2 cd61 cd61 cd61 cd61 cd61 cd61 cd61 -6657 cd62 cd62 cd62 * * 2824 8ea2a8a4,8ea2a8a4v 72d4 e78b94 72d4 000072d4 cd62 cd62 cd62 cd62 cd62 cd62 cd62 -6658 cd63 cd63 cd63 * * 2825 8ea2a8a5,8ea2a8a5v 72da e78b9a 72da 000072da cd63 cd63 cd63 cd63 cd63 cd63 cd63 -6659 cd64 cd64 cd64 * * 2826 8ea2a8a6,8ea2a8a6v 72cc e78b8c 72cc 000072cc cd64 cd64 cd64 cd64 cd64 cd64 cd64 -6660 cd65 cd65 cd65 * * 2827 8ea2a8a7,8ea2a8a7v 72d1 e78b91 72d1 000072d1 cd65 cd65 cd65 cd65 cd65 cd65 cd65 -6661 cd66 cd66 cd66 * * 2828 8ea2a8a8,8ea2a8a8v 73a4 e78ea4 73a4 000073a4 cd66 cd66 cd66 cd66 cd66 cd66 cd66 -6662 cd67 cd67 cd67 * * 2829 8ea2a8a9,8ea2a8a9v 73a1 e78ea1 73a1 000073a1 cd67 cd67 cd67 cd67 cd67 cd67 cd67 -6663 cd68 cd68 cd68 * * 282a 8ea2a8aa,8ea2a8aav 73ad e78ead 73ad 000073ad cd68 cd68 cd68 cd68 cd68 cd68 cd68 -6664 cd69 cd69 cd69 * * 282b 8ea2a8ab,8ea2a8abv 73a6 e78ea6 73a6 000073a6 cd69 cd69 cd69 cd69 cd69 cd69 cd69 -6665 cd6a cd6a cd6a * * 282c 8ea2a8ac,8ea2a8acv 73a2 e78ea2 73a2 000073a2 cd6a cd6a cd6a cd6a cd6a cd6a cd6a -6666 cd6b cd6b cd6b * * 282d 8ea2a8ad,8ea2a8adv 73a0 e78ea0 73a0 000073a0 cd6b cd6b cd6b cd6b cd6b cd6b cd6b -6667 cd6c cd6c cd6c * * 282e 8ea2a8ae,8ea2a8aev 73ac e78eac 73ac 000073ac cd6c cd6c cd6c cd6c cd6c cd6c cd6c -6668 cd6d cd6d cd6d * * 282f 8ea2a8af,8ea2a8afv 739d e78e9d 739d 0000739d cd6d cd6d cd6d cd6d cd6d cd6d cd6d -6669 cd6e cd6e cd6e * * 2830 8ea2a8b0,8ea2a8b0v 74dd e7939d 74dd 000074dd cd6e cd6e cd6e cd6e cd6e cd6e cd6e -6670 cd6f cd6f cd6f * * 2831 8ea2a8b1,8ea2a8b1v 74e8 e793a8 74e8 000074e8 cd6f cd6f cd6f cd6f cd6f cd6f cd6f -6671 cd70 cd70 cd70 * * 2832 8ea2a8b2,8ea2a8b2v 753f e794bf 753f 0000753f cd70 cd70 cd70 cd70 cd70 cd70 cd70 -6672 cd71 cd71 cd71 * * 2833 8ea2a8b3,8ea2a8b3v 7540 e79580 7540 00007540 cd71 cd71 cd71 cd71 cd71 cd71 cd71 -6673 cd72 cd72 cd72 * * 2834 8ea2a8b4,8ea2a8b4v 753e e794be 753e 0000753e cd72 cd72 cd72 cd72 cd72 cd72 cd72 -6674 cd73 cd73 cd73 * * 2835 8ea2a8b5,8ea2a8b5v 758c e7968c 758c 0000758c cd73 cd73 cd73 cd73 cd73 cd73 cd73 -6675 cd74 cd74 cd74 * * 2836 8ea2a8b6,8ea2a8b6v 7598 e79698 7598 00007598 cd74 cd74 cd74 cd74 cd74 cd74 cd74 -6676 cd75 cd75 cd75 * * 2837 8ea2a8b7,8ea2a8b7v 76af e79aaf 76af 000076af cd75 cd75 cd75 cd75 cd75 cd75 cd75 -6677 cd76 cd76 cd76 * * 2838 8ea2a8b8,8ea2a8b8v 76f3 e79bb3 76f3 000076f3 cd76 cd76 cd76 cd76 cd76 cd76 cd76 -6678 cd77 cd77 cd77 * * 2839 8ea2a8b9,8ea2a8b9v 76f1 e79bb1 76f1 000076f1 cd77 cd77 cd77 cd77 cd77 cd77 cd77 -6679 cd78 cd78 cd78 * * 283a 8ea2a8ba,8ea2a8bav 76f0 e79bb0 76f0 000076f0 cd78 cd78 cd78 cd78 cd78 cd78 cd78 -6680 cd79 cd79 cd79 * * 283b 8ea2a8bb,8ea2a8bbv 76f5 e79bb5 76f5 000076f5 cd79 cd79 cd79 cd79 cd79 cd79 cd79 -6681 cd7a cd7a cd7a * * 283c 8ea2a8bc,8ea2a8bcv 77f8 e79fb8 77f8 000077f8 cd7a cd7a cd7a cd7a cd7a cd7a cd7a -6682 cd7b cd7b cd7b * * 283d 8ea2a8bd,8ea2a8bdv 77fc e79fbc 77fc 000077fc cd7b cd7b cd7b cd7b cd7b cd7b cd7b -6683 cd7c cd7c cd7c * * 283e 8ea2a8be,8ea2a8bev 77f9 e79fb9 77f9 000077f9 cd7c cd7c cd7c cd7c cd7c cd7c cd7c -6684 cd7d cd7d cd7d * * 283f 8ea2a8bf,8ea2a8bfv 77fb e79fbb 77fb 000077fb cd7d cd7d cd7d cd7d cd7d cd7d cd7d -6685 cd7e cd7e cd7e * * 2840 8ea2a8c0,8ea2a8c0v 77fa e79fba 77fa 000077fa cd7e cd7e cd7e cd7e cd7e cd7e cd7e -6686 cda1 cda1 cda1 * * 2841 8ea2a8c1,8ea2a8c1v 77f7 e79fb7 77f7 000077f7 cda1 cda1 cda1 cda1 cda1 cda1 cda1 -6687 cda2 cda2 cda2 * * 2842 8ea2a8c2,8ea2a8c2v 7942 e7a582 7942 00007942 cda2 cda2 cda2 cda2 cda2 cda2 cda2 -6688 cda3 cda3 cda3 * * 2843 8ea2a8c3,8ea2a8c3v 793f e7a4bf 793f 0000793f cda3 cda3 cda3 cda3 cda3 cda3 cda3 -6689 cda4 cda4 cda4 * * 2844 8ea2a8c4,8ea2a8c4v 79c5 e7a785 79c5 000079c5 cda4 cda4 cda4 cda4 cda4 cda4 cda4 -6690 cda5 cda5 cda5 * * 2845 8ea2a8c5,8ea2a8c5v 7a78 e7a9b8 7a78 00007a78 cda5 cda5 cda5 cda5 cda5 cda5 cda5 -6691 cda6 cda6 cda6 * * 2846 8ea2a8c6,8ea2a8c6v 7a7b e7a9bb 7a7b 00007a7b cda6 cda6 cda6 cda6 cda6 cda6 cda6 -6692 cda7 cda7 cda7 * * 2847 8ea2a8c7,8ea2a8c7v 7afb e7abbb 7afb 00007afb cda7 cda7 cda7 cda7 cda7 cda7 cda7 -6693 cda8 cda8 cda8 * * 2848 8ea2a8c8,8ea2a8c8v 7c75 e7b1b5 7c75 00007c75 cda8 cda8 cda8 cda8 cda8 cda8 cda8 -6694 cda9 cda9 cda9 * * 2849 8ea2a8c9,8ea2a8c9v 7cfd e7b3bd 7cfd 00007cfd cda9 cda9 cda9 cda9 cda9 cda9 cda9 -6695 cdaa cdaa cdaa * * 284a 8ea2a8ca,8ea2a8cav 8035 e880b5 8035 00008035 cdaa cdaa cdaa cdaa cdaa cdaa cdaa -6696 cdab cdab cdab * * 284b 8ea2a8cb,8ea2a8cbv 808f e8828f 808f 0000808f cdab cdab cdab cdab cdab cdab cdab -6697 cdac cdac cdac * * 284c 8ea2a8cc,8ea2a8ccv 80ae e882ae 80ae 000080ae cdac cdac cdac cdac cdac cdac cdac -6698 cdad cdad cdad * * 284d 8ea2a8cd,8ea2a8cdv 80a3 e882a3 80a3 000080a3 cdad cdad cdad cdad cdad cdad cdad -6699 cdae cdae cdae * * 284e 8ea2a8ce,8ea2a8cev 80b8 e882b8 80b8 000080b8 cdae cdae cdae cdae cdae cdae cdae -6700 cdaf cdaf cdaf * * 284f 8ea2a8cf,8ea2a8cfv 80b5 e882b5 80b5 000080b5 cdaf cdaf cdaf cdaf cdaf cdaf cdaf -6701 cdb0 cdb0 cdb0 * * 2850 8ea2a8d0,8ea2a8d0v 80ad e882ad 80ad 000080ad cdb0 cdb0 cdb0 cdb0 cdb0 cdb0 cdb0 -6702 cdb1 cdb1 cdb1 * * 2851 8ea2a8d1,8ea2a8d1v 8220 e888a0 8220 00008220 cdb1 cdb1 cdb1 cdb1 cdb1 cdb1 cdb1 -6703 cdb2 cdb2 cdb2 * * 2852 8ea2a8d2,8ea2a8d2v 82a0 e88aa0 82a0 000082a0 cdb2 cdb2 cdb2 cdb2 cdb2 cdb2 cdb2 -6704 cdb3 cdb3 cdb3 * * 2853 8ea2a8d3,8ea2a8d3v 82c0 e88b80 82c0 000082c0 cdb3 cdb3 cdb3 cdb3 cdb3 cdb3 cdb3 -6705 cdb4 cdb4 cdb4 * * 2854 8ea2a8d4,8ea2a8d4v 82ab e88aab 82ab 000082ab cdb4 cdb4 cdb4 cdb4 cdb4 cdb4 cdb4 -6706 cdb5 cdb5 cdb5 * * 2855 8ea2a8d5,8ea2a8d5v 829a e88a9a 829a 0000829a cdb5 cdb5 cdb5 cdb5 cdb5 cdb5 cdb5 -6707 cdb6 cdb6 cdb6 * * 2856 8ea2a8d6,8ea2a8d6v 8298 e88a98 8298 00008298 cdb6 cdb6 cdb6 cdb6 cdb6 cdb6 cdb6 -6708 cdb7 cdb7 cdb7 * * 2857 8ea2a8d7,8ea2a8d7v 829b e88a9b 829b 0000829b cdb7 cdb7 cdb7 cdb7 cdb7 cdb7 cdb7 -6709 cdb8 cdb8 cdb8 * * 2858 8ea2a8d8,8ea2a8d8v 82b5 e88ab5 82b5 000082b5 cdb8 cdb8 cdb8 cdb8 cdb8 cdb8 cdb8 -6710 cdb9 cdb9 cdb9 * * 2859 8ea2a8d9,8ea2a8d9v 82a7 e88aa7 82a7 000082a7 cdb9 cdb9 cdb9 cdb9 cdb9 cdb9 cdb9 -6711 cdba cdba cdba * * 285a 8ea2a8da,8ea2a8dav 82ae e88aae 82ae 000082ae cdba cdba cdba cdba cdba cdba cdba -6712 cdbb cdbb cdbb * * 285b 8ea2a8db,8ea2a8dbv 82bc e88abc 82bc 000082bc cdbb cdbb cdbb cdbb cdbb cdbb cdbb -6713 cdbc cdbc cdbc * * 285c 8ea2a8dc,8ea2a8dcv 829e e88a9e 829e 0000829e cdbc cdbc cdbc cdbc cdbc cdbc cdbc -6714 cdbd cdbd cdbd * * 285d 8ea2a8dd,8ea2a8ddv 82ba e88aba 82ba 000082ba cdbd cdbd cdbd cdbd cdbd cdbd cdbd -6715 cdbe cdbe cdbe * * 285e 8ea2a8de,8ea2a8dev 82b4 e88ab4 82b4 000082b4 cdbe cdbe cdbe cdbe cdbe cdbe cdbe -6716 cdbf cdbf cdbf * * 285f 8ea2a8df,8ea2a8dfv 82a8 e88aa8 82a8 000082a8 cdbf cdbf cdbf cdbf cdbf cdbf cdbf -6717 cdc0 cdc0 cdc0 * * 2860 8ea2a8e0,8ea2a8e0v 82a1 e88aa1 82a1 000082a1 cdc0 cdc0 cdc0 cdc0 cdc0 cdc0 cdc0 -6718 cdc1 cdc1 cdc1 * * 2861 8ea2a8e1,8ea2a8e1v 82a9 e88aa9 82a9 000082a9 cdc1 cdc1 cdc1 cdc1 cdc1 cdc1 cdc1 -6719 cdc2 cdc2 cdc2 * * 2862 8ea2a8e2,8ea2a8e2v 82c2 e88b82 82c2 000082c2 cdc2 cdc2 cdc2 cdc2 cdc2 cdc2 cdc2 -6720 cdc3 cdc3 cdc3 * * 2863 8ea2a8e3,8ea2a8e3v 82a4 e88aa4 82a4 000082a4 cdc3 cdc3 cdc3 cdc3 cdc3 cdc3 cdc3 -6721 cdc4 cdc4 cdc4 * * 2864 8ea2a8e4,8ea2a8e4v 82c3 e88b83 82c3 000082c3 cdc4 cdc4 cdc4 cdc4 cdc4 cdc4 cdc4 -6722 cdc5 cdc5 cdc5 * * 2865 8ea2a8e5,8ea2a8e5v 82b6 e88ab6 82b6 000082b6 cdc5 cdc5 cdc5 cdc5 cdc5 cdc5 cdc5 -6723 cdc6 cdc6 cdc6 * * 2866 8ea2a8e6,8ea2a8e6v 82a2 e88aa2 82a2 000082a2 cdc6 cdc6 cdc6 cdc6 cdc6 cdc6 cdc6 -6724 cdc7 cdc7 cdc7 * * 2867 8ea2a8e7,8ea2a8e7v 8670 e899b0 8670 00008670 cdc7 cdc7 cdc7 cdc7 cdc7 cdc7 cdc7 -6725 cdc8 cdc8 cdc8 * * 2868 8ea2a8e8,8ea2a8e8v 866f e899af 866f 0000866f cdc8 cdc8 cdc8 cdc8 cdc8 cdc8 cdc8 -6726 cdc9 cdc9 cdc9 * * 2869 8ea2a8e9,8ea2a8e9v 866d e899ad 866d 0000866d cdc9 cdc9 cdc9 cdc9 cdc9 cdc9 cdc9 -6727 cdca cdca cdca * * 286a 8ea2a8ea,8ea2a8eav 866e e899ae 866e 0000866e cdca cdca cdca cdca cdca cdca cdca -6728 cdcb cdcb cdcb * * 286b 8ea2a8eb,8ea2a8ebv 8c56 e8b196 8c56 00008c56 cdcb cdcb cdcb cdcb cdcb cdcb cdcb -6729 cdcc cdcc cdcc * * 286c 8ea2a8ec,8ea2a8ecv 8fd2 e8bf92 8fd2 00008fd2 cdcc cdcc cdcc cdcc cdcc cdcc cdcc -6730 cdcd cdcd cdcd * * 286d 8ea2a8ed,8ea2a8edv 8fcb e8bf8b 8fcb 00008fcb cdcd cdcd cdcd cdcd cdcd cdcd cdcd -6731 cdce cdce cdce * * 286e 8ea2a8ee,8ea2a8eev 8fd3 e8bf93 8fd3 00008fd3 cdce cdce cdce cdce cdce cdce cdce -6732 cdcf cdcf cdcf * * 286f 8ea2a8ef,8ea2a8efv 8fcd e8bf8d 8fcd 00008fcd cdcf cdcf cdcf cdcf cdcf cdcf cdcf -6733 cdd0 cdd0 cdd0 * * 2870 8ea2a8f0,8ea2a8f0v 8fd6 e8bf96 8fd6 00008fd6 cdd0 cdd0 cdd0 cdd0 cdd0 cdd0 cdd0 -6734 cdd1 cdd1 cdd1 * * 2871 8ea2a8f1,8ea2a8f1v 8fd5 e8bf95 8fd5 00008fd5 cdd1 cdd1 cdd1 cdd1 cdd1 cdd1 cdd1 -6735 cdd2 cdd2 cdd2 * * 2872 8ea2a8f2,8ea2a8f2v 8fd7 e8bf97 8fd7 00008fd7 cdd2 cdd2 cdd2 cdd2 cdd2 cdd2 cdd2 -6736 cdd3 cdd3 cdd3 * * 2873 8ea2a8f3,8ea2a8f3v 90b2 e982b2 90b2 000090b2 cdd3 cdd3 cdd3 cdd3 cdd3 cdd3 cdd3 -6737 cdd4 cdd4 cdd4 * * 2874 8ea2a8f4,8ea2a8f4v 90b4 e982b4 90b4 000090b4 cdd4 cdd4 cdd4 cdd4 cdd4 cdd4 cdd4 -6738 cdd5 cdd5 cdd5 * * 2875 8ea2a8f5,8ea2a8f5v 90af e982af 90af 000090af cdd5 cdd5 cdd5 cdd5 cdd5 cdd5 cdd5 -6739 cdd6 cdd6 cdd6 * * 2876 8ea2a8f6,8ea2a8f6v 90b3 e982b3 90b3 000090b3 cdd6 cdd6 cdd6 cdd6 cdd6 cdd6 cdd6 -6740 cdd7 cdd7 cdd7 * * 2877 8ea2a8f7,8ea2a8f7v 90b0 e982b0 90b0 000090b0 cdd7 cdd7 cdd7 cdd7 cdd7 cdd7 cdd7 -6741 cdd8 cdd8 cdd8 * * 2878 8ea2a8f8,8ea2a8f8v 9639 e998b9 9639 00009639 cdd8 cdd8 cdd8 cdd8 cdd8 cdd8 cdd8 -6742 cdd9 cdd9 cdd9 * * 2879 8ea2a8f9,8ea2a8f9v 963d e998bd 963d 0000963d cdd9 cdd9 cdd9 cdd9 cdd9 cdd9 cdd9 -6743 cdda cdda cdda * * 287a 8ea2a8fa,8ea2a8fav 963c e998bc 963c 0000963c cdda cdda cdda cdda cdda cdda cdda -6744 cddb cddb cddb * * 287b 8ea2a8fb,8ea2a8fbv 963a e998ba 963a 0000963a cddb cddb cddb cddb cddb cddb cddb -6745 cddc cddc cddc * * 287c 8ea2a8fc,8ea2a8fcv 9643 e99983 9643 00009643 cddc cddc cddc cddc cddc cddc cddc -6746 cddd cddd cddd * * 287d 8ea2a8fd,8ea2a8fdv 4fcd e4bf8d 4fcd 00004fcd cddd cddd cddd cddd cddd cddd cddd -6747 cdde cdde cdde * * 287e 8ea2a8fe,8ea2a8fev 4fc5 e4bf85 4fc5 00004fc5 cdde cdde cdde cdde cdde cdde cdde -6748 cddf cddf cddf * * 2921 8ea2a9a1,8ea2a9a1v 4fd3 e4bf93 4fd3 00004fd3 cddf cddf cddf cddf cddf cddf cddf -6749 cde0 cde0 cde0 * * 2922 8ea2a9a2,8ea2a9a2v 4fb2 e4beb2 4fb2 00004fb2 cde0 cde0 cde0 cde0 cde0 cde0 cde0 -6750 cde1 cde1 cde1 * * 2923 8ea2a9a3,8ea2a9a3v 4fc9 e4bf89 4fc9 00004fc9 cde1 cde1 cde1 cde1 cde1 cde1 cde1 -6751 cde2 cde2 cde2 * * 2924 8ea2a9a4,8ea2a9a4v 4fcb e4bf8b 4fcb 00004fcb cde2 cde2 cde2 cde2 cde2 cde2 cde2 -6752 cde3 cde3 cde3 * * 2925 8ea2a9a5,8ea2a9a5v 4fc1 e4bf81 4fc1 00004fc1 cde3 cde3 cde3 cde3 cde3 cde3 cde3 -6753 cde4 cde4 cde4 * * 2926 8ea2a9a6,8ea2a9a6v 4fd4 e4bf94 4fd4 00004fd4 cde4 cde4 cde4 cde4 cde4 cde4 cde4 -6754 cde5 cde5 cde5 * * 2927 8ea2a9a7,8ea2a9a7v 4fdc e4bf9c 4fdc 00004fdc cde5 cde5 cde5 cde5 cde5 cde5 cde5 -6755 cde6 cde6 cde6 * * 2928 8ea2a9a8,8ea2a9a8v 4fd9 e4bf99 4fd9 00004fd9 cde6 cde6 cde6 cde6 cde6 cde6 cde6 -6756 cde7 cde7 cde7 * * 2929 8ea2a9a9,8ea2a9a9v 4fbb e4bebb,eeaeba 4fbb,ebba 00004fbb,0000ebba 9c53,cde7 cde7 cde7 cde7 cde7 cde7 9c53,cde7 -6757 cde8 cde8 cde8 * * 292a 8ea2a9aa,8ea2a9aav 4fb3 e4beb3 4fb3 00004fb3 cde8 cde8 cde8 cde8 cde8 cde8 cde8 -6758 cde9 cde9 cde9 * * 292b 8ea2a9ab,8ea2a9abv 4fdb e4bf9b 4fdb 00004fdb cde9 cde9 cde9 cde9 cde9 cde9 cde9 -6759 cdea cdea cdea * * 292c 8ea2a9ac,8ea2a9acv 4fc7 e4bf87 4fc7 00004fc7 cdea cdea cdea cdea cdea cdea cdea -6760 cdeb cdeb cdeb * * 292d 8ea2a9ad,8ea2a9adv 4fd6 e4bf96 4fd6 00004fd6 cdeb cdeb cdeb cdeb cdeb cdeb cdeb -6761 cdec cdec cdec * * 292e 8ea2a9ae,8ea2a9aev 4fba e4beba 4fba 00004fba cdec cdec cdec cdec cdec cdec cdec -6762 cded cded cded * * 292f 8ea2a9af,8ea2a9afv 4fc0 e4bf80 4fc0 00004fc0 cded cded cded cded cded cded cded -6763 cdee cdee cdee * * 2930 8ea2a9b0,8ea2a9b0v 4fb9 e4beb9 4fb9 00004fb9 cdee cdee cdee cdee cdee cdee cdee -6764 cdef cdef cdef * * 2931 8ea2a9b1,8ea2a9b1v 4fec e4bfac 4fec 00004fec cdef cdef cdef cdef cdef cdef cdef -6765 cdf0 cdf0 cdf0 * * 2932 8ea2a9b2,8ea2a9b2v 5244 e58984 5244 00005244 cdf0 cdf0 cdf0 cdf0 cdf0 cdf0 cdf0 -6766 cdf1 cdf1 cdf1 * * 2933 8ea2a9b3,8ea2a9b3v 5249 e58989 5249 00005249 cdf1 cdf1 cdf1 cdf1 cdf1 cdf1 cdf1 -6767 cdf2 cdf2 cdf2 * * 2934 8ea2a9b4,8ea2a9b4v 52c0 e58b80 52c0 000052c0 cdf2 cdf2 cdf2 cdf2 cdf2 cdf2 cdf2 -6768 cdf3 cdf3 cdf3 * * 2935 8ea2a9b5,8ea2a9b5v 52c2 e58b82 52c2 000052c2 cdf3 cdf3 cdf3 cdf3 cdf3 cdf3 cdf3 -6769 cdf4 cdf4 cdf4 * * 2936 8ea2a9b6,8ea2a9b6v 533d e58cbd 533d 0000533d cdf4 cdf4 cdf4 cdf4 cdf4 cdf4 cdf4 -6770 cdf5 cdf5 cdf5 * * 2937 8ea2a9b7,8ea2a9b7v 537c e58dbc 537c 0000537c cdf5 cdf5 cdf5 cdf5 cdf5 cdf5 cdf5 -6771 cdf6 cdf6 cdf6 * * 2938 8ea2a9b8,8ea2a9b8v 5397 e58e97 5397 00005397 cdf6 cdf6 cdf6 cdf6 cdf6 cdf6 cdf6 -6772 cdf7 cdf7 cdf7 * * 2939 8ea2a9b9,8ea2a9b9v 5396 e58e96 5396 00005396 cdf7 cdf7 cdf7 cdf7 cdf7 cdf7 cdf7 -6773 cdf8 cdf8 cdf8 * * 293a 8ea2a9ba,8ea2a9bav 5399 e58e99 5399 00005399 cdf8 cdf8 cdf8 cdf8 cdf8 cdf8 cdf8 -6774 cdf9 cdf9 cdf9 * * 293b 8ea2a9bb,8ea2a9bbv 5398 e58e98 5398 00005398 cdf9 cdf9 cdf9 cdf9 cdf9 cdf9 cdf9 -6775 cdfa cdfa cdfa * * 293c 8ea2a9bc,8ea2a9bcv 54ba e592ba 54ba 000054ba cdfa cdfa cdfa cdfa cdfa cdfa cdfa -6776 cdfb cdfb cdfb * * 293d 8ea2a9bd,8ea2a9bdv 54a1 e592a1 54a1 000054a1 cdfb cdfb cdfb cdfb cdfb cdfb cdfb -6777 cdfc cdfc cdfc * * 293e 8ea2a9be,8ea2a9bev 54ad e592ad 54ad 000054ad cdfc cdfc cdfc cdfc cdfc cdfc cdfc -6778 cdfd cdfd cdfd * * 293f 8ea2a9bf,8ea2a9bfv 54a5 e592a5 54a5 000054a5 cdfd cdfd cdfd cdfd cdfd cdfd cdfd -6779 cdfe cdfe cdfe * * 2940 8ea2a9c0,8ea2a9c0v 54cf e5938f 54cf 000054cf cdfe cdfe cdfe cdfe cdfe cdfe cdfe -6780 ce40 ce40 ce40 * * 2941 8ea2a9c1,8ea2a9c1v 54c3 e59383 54c3 000054c3 ce40 ce40 ce40 ce40 ce40 ce40 ce40 -6781 ce41 ce41 ce41 * * 2942 8ea2a9c2,8ea2a9c2v 830d e88c8d 830d 0000830d ce41 ce41 ce41 ce41 ce41 ce41 ce41 -6782 ce42 ce42 ce42 * * 2943 8ea2a9c3,8ea2a9c3v 54b7 e592b7 54b7 000054b7 ce42 ce42 ce42 ce42 ce42 ce42 ce42 -6783 ce43 ce43 ce43 * * 2944 8ea2a9c4,8ea2a9c4v 54ae e592ae 54ae 000054ae ce43 ce43 ce43 ce43 ce43 ce43 ce43 -6784 ce44 ce44 ce44 * * 2945 8ea2a9c5,8ea2a9c5v 54d6 e59396 54d6 000054d6 ce44 ce44 ce44 ce44 ce44 ce44 ce44 -6785 ce45 ce45 ce45 * * 2946 8ea2a9c6,8ea2a9c6v 54b6 e592b6 54b6 000054b6 ce45 ce45 ce45 ce45 ce45 ce45 ce45 -6786 ce46 ce46 ce46 * * 2947 8ea2a9c7,8ea2a9c7v 54c5 e59385 54c5 000054c5 ce46 ce46 ce46 ce46 ce46 ce46 ce46 -6787 ce47 ce47 ce47 * * 2948 8ea2a9c8,8ea2a9c8v 54c6 e59386 54c6 000054c6 ce47 ce47 ce47 ce47 ce47 ce47 ce47 -6788 ce48 ce48 ce48 * * 2949 8ea2a9c9,8ea2a9c9v 54a0 e592a0 54a0 000054a0 ce48 ce48 ce48 ce48 ce48 ce48 ce48 -6789 ce49 ce49 ce49 * * 294a 8ea2a9ca,8ea2a9cav 5470 e591b0 5470 00005470 ce49 ce49 ce49 ce49 ce49 ce49 ce49 -6790 ce4a ce4a ce4a * * 294b 8ea2a9cb,8ea2a9cbv 54bc e592bc 54bc 000054bc ce4a ce4a ce4a ce4a ce4a ce4a ce4a -6791 ce4b ce4b ce4b * * 294c 8ea2a9cc,8ea2a9ccv 54a2 e592a2 54a2 000054a2 ce4b ce4b ce4b ce4b ce4b ce4b ce4b -6792 ce4c ce4c ce4c * * 294d 8ea2a9cd,8ea2a9cdv 54be e592be 54be 000054be ce4c ce4c ce4c ce4c ce4c ce4c ce4c -6793 ce4d ce4d ce4d * * 294e 8ea2a9ce,8ea2a9cev 5472 e591b2 5472 00005472 ce4d ce4d ce4d ce4d ce4d ce4d ce4d -6794 ce4e ce4e ce4e * * 294f 8ea2a9cf,8ea2a9cfv 54de e5939e 54de 000054de ce4e ce4e ce4e ce4e ce4e ce4e ce4e -6795 ce4f ce4f ce4f * * 2950 8ea2a9d0,8ea2a9d0v 54b0 e592b0 54b0 000054b0 ce4f ce4f ce4f ce4f ce4f ce4f ce4f -6796 ce50 ce50 ce50 * * 2951 8ea2a9d1,8ea2a9d1v 57b5 e59eb5 57b5 000057b5 ce50 ce50 ce50 ce50 ce50 ce50 ce50 -6797 ce51 ce51 ce51 * * 2952 8ea2a9d2,8ea2a9d2v 579e e59e9e 579e 0000579e ce51 ce51 ce51 ce51 ce51 ce51 ce51 -6798 ce52 ce52 ce52 * * 2953 8ea2a9d3,8ea2a9d3v 579f e59e9f 579f 0000579f ce52 ce52 ce52 ce52 ce52 ce52 ce52 -6799 ce53 ce53 ce53 * * 2954 8ea2a9d4,8ea2a9d4v 57a4 e59ea4 57a4 000057a4 ce53 ce53 ce53 ce53 ce53 ce53 ce53 -6800 ce54 ce54 ce54 * * 2955 8ea2a9d5,8ea2a9d5v 578c e59e8c 578c 0000578c ce54 ce54 ce54 ce54 ce54 ce54 ce54 -6801 ce55 ce55 ce55 * * 2956 8ea2a9d6,8ea2a9d6v 5797 e59e97 5797 00005797 ce55 ce55 ce55 ce55 ce55 ce55 ce55 -6802 ce56 ce56 ce56 * * 2957 8ea2a9d7,8ea2a9d7v 579d e59e9d 579d 0000579d ce56 ce56 ce56 ce56 ce56 ce56 ce56 -6803 ce57 ce57 ce57 * * 2958 8ea2a9d8,8ea2a9d8v 579b e59e9b 579b 0000579b ce57 ce57 ce57 ce57 ce57 ce57 ce57 -6804 ce58 ce58 ce58 * * 2959 8ea2a9d9,8ea2a9d9v 5794 e59e94 5794 00005794 ce58 ce58 ce58 ce58 ce58 ce58 ce58 -6805 ce59 ce59 ce59 * * 295a 8ea2a9da,8ea2a9dav 5798 e59e98 5798 00005798 ce59 ce59 ce59 ce59 ce59 ce59 ce59 -6806 ce5a ce5a ce5a * * 295b 8ea2a9db,8ea2a9dbv 578f e59e8f 578f 0000578f ce5a ce5a ce5a ce5a ce5a ce5a ce5a -6807 ce5b ce5b ce5b * * 295c 8ea2a9dc,8ea2a9dcv 5799 e59e99 5799 00005799 ce5b ce5b ce5b ce5b ce5b ce5b ce5b -6808 ce5c ce5c ce5c * * 295d 8ea2a9dd,8ea2a9ddv 57a5 e59ea5 57a5 000057a5 ce5c ce5c ce5c ce5c ce5c ce5c ce5c -6809 ce5d ce5d ce5d * * 295e 8ea2a9de,8ea2a9dev 579a e59e9a 579a 0000579a ce5d ce5d ce5d ce5d ce5d ce5d ce5d -6810 ce5e ce5e ce5e * * 295f 8ea2a9df,8ea2a9dfv 5795 e59e95 5795 00005795 ce5e ce5e ce5e ce5e ce5e ce5e ce5e -6811 ce5f ce5f ce5f * * 2960 8ea2a9e0,8ea2a9e0v 58f4 e5a3b4 58f4 000058f4 ce5f ce5f ce5f ce5f ce5f ce5f ce5f -6812 ce60 ce60 ce60 * * 2961 8ea2a9e1,8ea2a9e1v 590d e5a48d 590d 0000590d ce60 ce60 ce60 ce60 ce60 ce60 ce60 -6813 ce61 ce61 ce61 * * 2962 8ea2a9e2,8ea2a9e2v 5953 e5a593 5953 00005953 ce61 ce61 ce61 ce61 ce61 ce61 ce61 -6814 ce62 ce62 ce62 * * 2963 8ea2a9e3,8ea2a9e3v 59e1 e5a7a1 59e1 000059e1 ce62 ce62 ce62 ce62 ce62 ce62 ce62 -6815 ce63 ce63 ce63 * * 2964 8ea2a9e4,8ea2a9e4v 59de e5a79e 59de 000059de ce63 ce63 ce63 ce63 ce63 ce63 ce63 -6816 ce64 ce64 ce64 * * 2965 8ea2a9e5,8ea2a9e5v 59ee e5a7ae 59ee 000059ee ce64 ce64 ce64 ce64 ce64 ce64 ce64 -6817 ce65 ce65 ce65 * * 2966 8ea2a9e6,8ea2a9e6v 5a00 e5a880 5a00 00005a00 ce65 ce65 ce65 ce65 ce65 ce65 ce65 -6818 ce66 ce66 ce66 * * 2967 8ea2a9e7,8ea2a9e7v 59f1 e5a7b1 59f1 000059f1 ce66 ce66 ce66 ce66 ce66 ce66 ce66 -6819 ce67 ce67 ce67 * * 2968 8ea2a9e8,8ea2a9e8v 59dd e5a79d 59dd 000059dd ce67 ce67 ce67 ce67 ce67 ce67 ce67 -6820 ce68 ce68 ce68 * * 2969 8ea2a9e9,8ea2a9e9v 59fa e5a7ba 59fa 000059fa ce68 ce68 ce68 ce68 ce68 ce68 ce68 -6821 ce69 ce69 ce69 * * 296a 8ea2a9ea,8ea2a9eav 59fd e5a7bd 59fd 000059fd ce69 ce69 ce69 ce69 ce69 ce69 ce69 -6822 ce6a ce6a ce6a * * 296b 8ea2a9eb,8ea2a9ebv 59fc e5a7bc 59fc 000059fc ce6a ce6a ce6a ce6a ce6a ce6a ce6a -6823 ce6b ce6b ce6b * * 296c 8ea2a9ec,8ea2a9ecv 59f6 e5a7b6 59f6 000059f6 ce6b ce6b ce6b ce6b ce6b ce6b ce6b -6824 ce6c ce6c ce6c * * 296d 8ea2a9ed,8ea2a9edv 59e4 e5a7a4 59e4 000059e4 ce6c ce6c ce6c ce6c ce6c ce6c ce6c -6825 ce6d ce6d ce6d * * 296e 8ea2a9ee,8ea2a9eev 59f2 e5a7b2 59f2 000059f2 ce6d ce6d ce6d ce6d ce6d ce6d ce6d -6826 ce6e ce6e ce6e * * 296f 8ea2a9ef,8ea2a9efv 59f7 e5a7b7 59f7 000059f7 ce6e ce6e ce6e ce6e ce6e ce6e ce6e -6827 ce6f ce6f ce6f * * 2970 8ea2a9f0,8ea2a9f0v 59db e5a79b 59db 000059db ce6f ce6f ce6f ce6f ce6f ce6f ce6f -6828 ce70 ce70 ce70 * * 2971 8ea2a9f1,8ea2a9f1v 59e9 e5a7a9 59e9 000059e9 ce70 ce70 ce70 ce70 ce70 ce70 ce70 -6829 ce71 ce71 ce71 * * 2972 8ea2a9f2,8ea2a9f2v 59f3 e5a7b3 59f3 000059f3 ce71 ce71 ce71 ce71 ce71 ce71 ce71 -6830 ce72 ce72 ce72 * * 2973 8ea2a9f3,8ea2a9f3v 59f5 e5a7b5 59f5 000059f5 ce72 ce72 ce72 ce72 ce72 ce72 ce72 -6831 ce73 ce73 ce73 * * 2974 8ea2a9f4,8ea2a9f4v 59e0 e5a7a0 59e0 000059e0 ce73 ce73 ce73 ce73 ce73 ce73 ce73 -6832 ce74 ce74 ce74 * * 2975 8ea2a9f5,8ea2a9f5v 59fe e5a7be 59fe 000059fe ce74 ce74 ce74 ce74 ce74 ce74 ce74 -6833 ce75 ce75 ce75 * * 2976 8ea2a9f6,8ea2a9f6v 59f4 e5a7b4 59f4 000059f4 ce75 ce75 ce75 ce75 ce75 ce75 ce75 -6834 ce76 ce76 ce76 * * 2977 8ea2a9f7,8ea2a9f7v 59ed e5a7ad 59ed 000059ed ce76 ce76 ce76 ce76 ce76 ce76 ce76 -6835 ce77 ce77 ce77 * * 2978 8ea2a9f8,8ea2a9f8v 5ba8 e5aea8 5ba8 00005ba8 ce77 ce77 ce77 ce77 ce77 ce77 ce77 -6836 ce78 ce78 ce78 * * 2979 8ea2a9f9,8ea2a9f9v 5c4c e5b18c 5c4c 00005c4c ce78 ce78 ce78 ce78 ce78 ce78 ce78 -6837 ce79 ce79 ce79 * * 297a 8ea2a9fa,8ea2a9fav 5cd0 e5b390 5cd0 00005cd0 ce79 ce79 ce79 ce79 ce79 ce79 ce79 -6838 ce7a ce7a ce7a * * 297b 8ea2a9fb,8ea2a9fbv 5cd8 e5b398 5cd8 00005cd8 ce7a ce7a ce7a ce7a ce7a ce7a ce7a -6839 ce7b ce7b ce7b * * 297c 8ea2a9fc,8ea2a9fcv 5ccc e5b38c 5ccc 00005ccc ce7b ce7b ce7b ce7b ce7b ce7b ce7b -6840 ce7c ce7c ce7c * * 297d 8ea2a9fd,8ea2a9fdv 5cd7 e5b397 5cd7 00005cd7 ce7c ce7c ce7c ce7c ce7c ce7c ce7c -6841 ce7d ce7d ce7d * * 297e 8ea2a9fe,8ea2a9fev 5ccb e5b38b 5ccb 00005ccb ce7d ce7d ce7d ce7d ce7d ce7d ce7d -6842 ce7e ce7e ce7e * * 2a21 8ea2aaa1,8ea2aaa1v 5cdb e5b39b 5cdb 00005cdb ce7e ce7e ce7e ce7e ce7e ce7e ce7e -6843 cea1 cea1 cea1 * * 2a22 8ea2aaa2,8ea2aaa2v 5cde e5b39e 5cde 00005cde cea1 cea1 cea1 cea1 cea1 cea1 cea1 -6844 cea2 cea2 cea2 * * 2a23 8ea2aaa3,8ea2aaa3v 5cda e5b39a 5cda 00005cda cea2 cea2 cea2 cea2 cea2 cea2 cea2 -6845 cea3 cea3 cea3 * * 2a24 8ea2aaa4,8ea2aaa4v 5cc9 e5b389 5cc9 00005cc9 cea3 cea3 cea3 cea3 cea3 cea3 cea3 -6846 cea4 cea4 cea4 * * 2a25 8ea2aaa5,8ea2aaa5v 5cc7 e5b387 5cc7 00005cc7 cea4 cea4 cea4 cea4 cea4 cea4 cea4 -6847 cea5 cea5 cea5 * * 2a26 8ea2aaa6,8ea2aaa6v 5cca e5b38a 5cca 00005cca cea5 cea5 cea5 cea5 cea5 cea5 cea5 -6848 cea6 cea6 cea6 * * 2a27 8ea2aaa7,8ea2aaa7v 5cd6 e5b396 5cd6 00005cd6 cea6 cea6 cea6 cea6 cea6 cea6 cea6 -6849 cea7 cea7 cea7 * * 2a28 8ea2aaa8,8ea2aaa8v 5cd3 e5b393 5cd3 00005cd3 cea7 cea7 cea7 cea7 cea7 cea7 cea7 -6850 cea8 cea8 cea8 * * 2a29 8ea2aaa9,8ea2aaa9v 5cd4 e5b394 5cd4 00005cd4 cea8 cea8 cea8 cea8 cea8 cea8 cea8 -6851 cea9 cea9 cea9 * * 2a2a 8ea2aaaa,8ea2aaaav 5ccf e5b38f 5ccf 00005ccf cea9 cea9 cea9 cea9 cea9 cea9 cea9 -6852 ceaa ceaa ceaa * * 2a2b 8ea2aaab,8ea2aaabv 5cc8 e5b388 5cc8 00005cc8 ceaa ceaa ceaa ceaa ceaa ceaa ceaa -6853 ceab ceab ceab * * 2a2c 8ea2aaac,8ea2aaacv 5cc6 e5b386 5cc6 00005cc6 ceab ceab ceab ceab ceab ceab ceab -6854 ceac ceac ceac * * 2a2d 8ea2aaad,8ea2aaadv 5cce e5b38e 5cce 00005cce ceac ceac ceac ceac ceac ceac ceac -6855 cead cead cead * * 2a2e 8ea2aaae,8ea2aaaev 5cdf e5b39f 5cdf 00005cdf cead cead cead cead cead cead cead -6856 ceae ceae ceae * * 2a2f 8ea2aaaf,8ea2aaafv 5cf8 e5b3b8 5cf8 00005cf8 ceae ceae ceae ceae ceae ceae ceae -6857 ceaf ceaf ceaf * * 2a30 8ea2aab0,8ea2aab0v 5df9 e5b7b9 5df9 00005df9 ceaf ceaf ceaf ceaf ceaf ceaf ceaf -6858 ceb0 ceb0 ceb0 * * 2a31 8ea2aab1,8ea2aab1v 5e21 e5b8a1 5e21 00005e21 ceb0 ceb0 ceb0 ceb0 ceb0 ceb0 ceb0 -6859 ceb1 ceb1 ceb1 * * 2a32 8ea2aab2,8ea2aab2v 5e22 e5b8a2 5e22 00005e22 ceb1 ceb1 ceb1 ceb1 ceb1 ceb1 ceb1 -6860 ceb2 ceb2 ceb2 * * 2a33 8ea2aab3,8ea2aab3v 5e23 e5b8a3 5e23 00005e23 ceb2 ceb2 ceb2 ceb2 ceb2 ceb2 ceb2 -6861 ceb3 ceb3 ceb3 * * 2a34 8ea2aab4,8ea2aab4v 5e20 e5b8a0 5e20 00005e20 ceb3 ceb3 ceb3 ceb3 ceb3 ceb3 ceb3 -6862 ceb4 ceb4 ceb4 * * 2a35 8ea2aab5,8ea2aab5v 5e24 e5b8a4 5e24 00005e24 ceb4 ceb4 ceb4 ceb4 ceb4 ceb4 ceb4 -6863 ceb5 ceb5 ceb5 * * 2a36 8ea2aab6,8ea2aab6v 5eb0 e5bab0 5eb0 00005eb0 ceb5 ceb5 ceb5 ceb5 ceb5 ceb5 ceb5 -6864 ceb6 ceb6 ceb6 * * 2a37 8ea2aab7,8ea2aab7v 5ea4 e5baa4 5ea4 00005ea4 ceb6 ceb6 ceb6 ceb6 ceb6 ceb6 ceb6 -6865 ceb7 ceb7 ceb7 * * 2a38 8ea2aab8,8ea2aab8v 5ea2 e5baa2 5ea2 00005ea2 ceb7 ceb7 ceb7 ceb7 ceb7 ceb7 ceb7 -6866 ceb8 ceb8 ceb8 * * 2a39 8ea2aab9,8ea2aab9v 5e9b e5ba9b 5e9b 00005e9b ceb8 ceb8 ceb8 ceb8 ceb8 ceb8 ceb8 -6867 ceb9 ceb9 ceb9 * * 2a3a 8ea2aaba,8ea2aabav 5ea3 e5baa3 5ea3 00005ea3 ceb9 ceb9 ceb9 ceb9 ceb9 ceb9 ceb9 -6868 ceba ceba ceba * * 2a3b 8ea2aabb,8ea2aabbv 5ea5 e5baa5 5ea5 00005ea5 ceba ceba ceba ceba ceba ceba ceba -6869 cebb cebb cebb * * 2a3c 8ea2aabc,8ea2aabcv 5f07 e5bc87 5f07 00005f07 cebb cebb cebb cebb cebb cebb cebb -6870 cebc cebc cebc * * 2a3d 8ea2aabd,8ea2aabdv 5f2e e5bcae 5f2e 00005f2e cebc cebc cebc cebc cebc cebc cebc -6871 cebd cebd cebd * * 2a3e 8ea2aabe,8ea2aabev 5f56 e5bd96 5f56 00005f56 cebd cebd cebd cebd cebd cebd cebd -6872 cebe cebe cebe * * 2a3f 8ea2aabf,8ea2aabfv 5f86 e5be86 5f86 00005f86 cebe cebe cebe cebe cebe cebe cebe -6873 cebf cebf cebf * * 2a40 8ea2aac0,8ea2aac0v 6037 e680b7 6037 00006037 cebf cebf cebf cebf cebf cebf cebf -6874 cec0 cec0 cec0 * * 2a41 8ea2aac1,8ea2aac1v 6039 e680b9 6039 00006039 cec0 cec0 cec0 cec0 cec0 cec0 cec0 -6875 cec1 cec1 cec1 * * 2a42 8ea2aac2,8ea2aac2v 6054 e68194 6054 00006054 cec1 cec1 cec1 cec1 cec1 cec1 cec1 -6876 cec2 cec2 cec2 * * 2a43 8ea2aac3,8ea2aac3v 6072 e681b2 6072 00006072 cec2 cec2 cec2 cec2 cec2 cec2 cec2 -6877 cec3 cec3 cec3 * * 2a44 8ea2aac4,8ea2aac4v 605e e6819e 605e 0000605e cec3 cec3 cec3 cec3 cec3 cec3 cec3 -6878 cec4 cec4 cec4 * * 2a45 8ea2aac5,8ea2aac5v 6045 e68185 6045 00006045 cec4 cec4 cec4 cec4 cec4 cec4 cec4 -6879 cec5 cec5 cec5 * * 2a46 8ea2aac6,8ea2aac6v 6053 e68193 6053 00006053 cec5 cec5 cec5 cec5 cec5 cec5 cec5 -6880 cec6 cec6 cec6 * * 2a47 8ea2aac7,8ea2aac7v 6047 e68187 6047 00006047 cec6 cec6 cec6 cec6 cec6 cec6 cec6 -6881 cec7 cec7 cec7 * * 2a48 8ea2aac8,8ea2aac8v 6049 e68189 6049 00006049 cec7 cec7 cec7 cec7 cec7 cec7 cec7 -6882 cec8 cec8 cec8 * * 2a49 8ea2aac9,8ea2aac9v 605b e6819b 605b 0000605b cec8 cec8 cec8 cec8 cec8 cec8 cec8 -6883 cec9 cec9 cec9 * * 2a4a 8ea2aaca,8ea2aacav 604c e6818c 604c 0000604c cec9 cec9 cec9 cec9 cec9 cec9 cec9 -6884 ceca ceca ceca * * 2a4b 8ea2aacb,8ea2aacbv 6040 e68180 6040 00006040 ceca ceca ceca ceca ceca ceca ceca -6885 cecb cecb cecb * * 2a4c 8ea2aacc,8ea2aaccv 6042 e68182 6042 00006042 cecb cecb cecb cecb cecb cecb cecb -6886 cecc cecc cecc * * 2a4d 8ea2aacd,8ea2aacdv 605f e6819f 605f 0000605f cecc cecc cecc cecc cecc cecc cecc -6887 cecd cecd cecd * * 2a4e 8ea2aace,8ea2aacev 6024 e680a4 6024 00006024 cecd cecd cecd cecd cecd cecd cecd -6888 cece cece cece * * 2a4f 8ea2aacf,8ea2aacfv 6044 e68184 6044 00006044 cece cece cece cece cece cece cece -6889 cecf cecf cecf * * 2a50 8ea2aad0,8ea2aad0v 6058 e68198 6058 00006058 cecf cecf cecf cecf cecf cecf cecf -6890 ced0 ced0 ced0 * * 2a51 8ea2aad1,8ea2aad1v 6066 e681a6 6066 00006066 ced0 ced0 ced0 ced0 ced0 ced0 ced0 -6891 ced1 ced1 ced1 * * 2a52 8ea2aad2,8ea2aad2v 606e e681ae 606e 0000606e ced1 ced1 ced1 ced1 ced1 ced1 ced1 -6892 ced2 ced2 ced2 * * 2a53 8ea2aad3,8ea2aad3v 6242 e68982 6242 00006242 ced2 ced2 ced2 ced2 ced2 ced2 ced2 -6893 ced3 ced3 ced3 * * 2a54 8ea2aad4,8ea2aad4v 6243 e68983 6243 00006243 ced3 ced3 ced3 ced3 ced3 ced3 ced3 -6894 ced4 ced4 ced4 * * 2a55 8ea2aad5,8ea2aad5v 62cf e68b8f 62cf 000062cf ced4 ced4 ced4 ced4 ced4 ced4 ced4 -6895 ced5 ced5 ced5 * * 2a56 8ea2aad6,8ea2aad6v 630d e68c8d 630d 0000630d ced5 ced5 ced5 ced5 ced5 ced5 ced5 -6896 ced6 ced6 ced6 * * 2a57 8ea2aad7,8ea2aad7v 630b e68c8b 630b 0000630b ced6 ced6 ced6 ced6 ced6 ced6 ced6 -6897 ced7 ced7 ced7 * * 2a58 8ea2aad8,8ea2aad8v 62f5 e68bb5 62f5 000062f5 ced7 ced7 ced7 ced7 ced7 ced7 ced7 -6898 ced8 ced8 ced8 * * 2a59 8ea2aad9,8ea2aad9v 630e e68c8e 630e 0000630e ced8 ced8 ced8 ced8 ced8 ced8 ced8 -6899 ced9 ced9 ced9 * * 2a5a 8ea2aada,8ea2aadav 6303 e68c83 6303 00006303 ced9 ced9 ced9 ced9 ced9 ced9 ced9 -6900 ceda ceda ceda * * 2a5b 8ea2aadb,8ea2aadbv 62eb e68bab 62eb 000062eb ceda ceda ceda ceda ceda ceda ceda -6901 cedb cedb cedb * * 2a5c 8ea2aadc,8ea2aadcv 62f9 e68bb9 62f9 000062f9 cedb cedb cedb cedb cedb cedb cedb -6902 cedc cedc cedc * * 2a5d 8ea2aadd,8ea2aaddv 630f e68c8f 630f 0000630f cedc cedc cedc cedc cedc cedc cedc -6903 cedd cedd cedd * * 2a5e 8ea2aade,8ea2aadev 630c e68c8c 630c 0000630c cedd cedd cedd cedd cedd cedd cedd -6904 cede cede cede * * 2a5f 8ea2aadf,8ea2aadfv 62f8 e68bb8 62f8 000062f8 cede cede cede cede cede cede cede -6905 cedf cedf cedf * * 2a60 8ea2aae0,8ea2aae0v 62f6 e68bb6 62f6 000062f6 cedf cedf cedf cedf cedf cedf cedf -6906 cee0 cee0 cee0 * * 2a61 8ea2aae1,8ea2aae1v 6300 e68c80 6300 00006300 cee0 cee0 cee0 cee0 cee0 cee0 cee0 -6907 cee1 cee1 cee1 * * 2a62 8ea2aae2,8ea2aae2v 6313 e68c93 6313 00006313 cee1 cee1 cee1 cee1 cee1 cee1 cee1 -6908 cee2 cee2 cee2 * * 2a63 8ea2aae3,8ea2aae3v 6314 e68c94 6314 00006314 cee2 cee2 cee2 cee2 cee2 cee2 cee2 -6909 cee3 cee3 cee3 * * 2a64 8ea2aae4,8ea2aae4v 62fa e68bba 62fa 000062fa cee3 cee3 cee3 cee3 cee3 cee3 cee3 -6910 cee4 cee4 cee4 * * 2a65 8ea2aae5,8ea2aae5v 6315 e68c95 6315 00006315 cee4 cee4 cee4 cee4 cee4 cee4 cee4 -6911 cee5 cee5 cee5 * * 2a66 8ea2aae6,8ea2aae6v 62fb e68bbb 62fb 000062fb cee5 cee5 cee5 cee5 cee5 cee5 cee5 -6912 cee6 cee6 cee6 * * 2a67 8ea2aae7,8ea2aae7v 62f0 e68bb0 62f0 000062f0 cee6 cee6 cee6 cee6 cee6 cee6 cee6 -6913 cee7 cee7 cee7 * * 2a68 8ea2aae8,8ea2aae8v 6541 e69581 6541 00006541 cee7 cee7 cee7 cee7 cee7 cee7 cee7 -6914 cee8 cee8 cee8 * * 2a69 8ea2aae9,8ea2aae9v 6543 e69583 6543 00006543 cee8 cee8 cee8 cee8 cee8 cee8 cee8 -6915 cee9 cee9 cee9 * * 2a6a 8ea2aaea,8ea2aaeav 65aa e696aa 65aa 000065aa cee9 cee9 cee9 cee9 cee9 cee9 cee9 -6916 ceea ceea ceea * * 2a6b 8ea2aaeb,8ea2aaebv 65bf e696bf 65bf 000065bf ceea ceea ceea ceea ceea ceea ceea -6917 ceeb ceeb ceeb * * 2a6c 8ea2aaec,8ea2aaecv 6636 e698b6 6636 00006636 ceeb ceeb ceeb ceeb ceeb ceeb ceeb -6918 ceec ceec ceec * * 2a6d 8ea2aaed,8ea2aaedv 6621 e698a1 6621 00006621 ceec ceec ceec ceec ceec ceec ceec -6919 ceed ceed ceed * * 2a6e 8ea2aaee,8ea2aaeev 6632 e698b2 6632 00006632 ceed ceed ceed ceed ceed ceed ceed -6920 ceee ceee ceee * * 2a6f 8ea2aaef,8ea2aaefv 6635 e698b5 6635 00006635 ceee ceee ceee ceee ceee ceee ceee -6921 ceef ceef ceef * * 2a70 8ea2aaf0,8ea2aaf0v 661c e6989c 661c 0000661c ceef ceef ceef ceef ceef ceef ceef -6922 cef0 cef0 cef0 * * 2a71 8ea2aaf1,8ea2aaf1v 6626 e698a6 6626 00006626 cef0 cef0 cef0 cef0 cef0 cef0 cef0 -6923 cef1 cef1 cef1 * * 2a72 8ea2aaf2,8ea2aaf2v 6622 e698a2 6622 00006622 cef1 cef1 cef1 cef1 cef1 cef1 cef1 -6924 cef2 cef2 cef2 * * 2a73 8ea2aaf3,8ea2aaf3v 6633 e698b3 6633 00006633 cef2 cef2 cef2 cef2 cef2 cef2 cef2 -6925 cef3 cef3 cef3 * * 2a74 8ea2aaf4,8ea2aaf4v 662b e698ab 662b 0000662b cef3 cef3 cef3 cef3 cef3 cef3 cef3 -6926 cef4 cef4 cef4 * * 2a75 8ea2aaf5,8ea2aaf5v 663a e698ba 663a 0000663a cef4 cef4 cef4 cef4 cef4 cef4 cef4 -6927 cef5 cef5 cef5 * * 2a76 8ea2aaf6,8ea2aaf6v 661d e6989d 661d 0000661d cef5 cef5 cef5 cef5 cef5 cef5 cef5 -6928 cef6 cef6 cef6 * * 2a77 8ea2aaf7,8ea2aaf7v 6634 e698b4 6634 00006634 cef6 cef6 cef6 cef6 cef6 cef6 cef6 -6929 cef7 cef7 cef7 * * 2a78 8ea2aaf8,8ea2aaf8v 6639 e698b9 6639 00006639 cef7 cef7 cef7 cef7 cef7 cef7 cef7 -6930 cef8 cef8 cef8 * * 2a79 8ea2aaf9,8ea2aaf9v 662e e698ae 662e 0000662e cef8 cef8 cef8 cef8 cef8 cef8 cef8 -6931 cef9 cef9 cef9 * * 2a7a 8ea2aafa,8ea2aafav 670f e69c8f 670f 0000670f cef9 cef9 cef9 cef9 cef9 cef9 cef9 -6932 cefa cefa cefa * * 2a7b 8ea2aafb,8ea2aafbv 6710 e69c90 6710 00006710 cefa cefa cefa cefa cefa cefa cefa -6933 cefb cefb cefb * * 2a7c 8ea2aafc,8ea2aafcv 67c1 e69f81 67c1 000067c1 cefb cefb cefb cefb cefb cefb cefb -6934 cefc cefc cefc * * 2a7d 8ea2aafd,8ea2aafdv 67f2 e69fb2 67f2 000067f2 cefc cefc cefc cefc cefc cefc cefc -6935 cefd cefd cefd * * 2a7e 8ea2aafe,8ea2aafev 67c8 e69f88 67c8 000067c8 cefd cefd cefd cefd cefd cefd cefd -6936 cefe cefe cefe * * 2b21 8ea2aba1,8ea2aba1v 67ba e69eba 67ba 000067ba cefe cefe cefe cefe cefe cefe cefe -6937 cf40 cf40 cf40 * * 2b22 8ea2aba2,8ea2aba2v 67dc e69f9c 67dc 000067dc cf40 cf40 cf40 cf40 cf40 cf40 cf40 -6938 cf41 cf41 cf41 * * 2b23 8ea2aba3,8ea2aba3v 67bb e69ebb 67bb 000067bb cf41 cf41 cf41 cf41 cf41 cf41 cf41 -6939 cf42 cf42 cf42 * * 2b24 8ea2aba4,8ea2aba4v 67f8 e69fb8 67f8 000067f8 cf42 cf42 cf42 cf42 cf42 cf42 cf42 -6940 cf43 cf43 cf43 * * 2b25 8ea2aba5,8ea2aba5v 67d8 e69f98 67d8 000067d8 cf43 cf43 cf43 cf43 cf43 cf43 cf43 -6941 cf44 cf44 cf44 * * 2b26 8ea2aba6,8ea2aba6v 67c0 e69f80 67c0 000067c0 cf44 cf44 cf44 cf44 cf44 cf44 cf44 -6942 cf45 cf45 cf45 * * 2b27 8ea2aba7,8ea2aba7v 67b7 e69eb7 67b7 000067b7 cf45 cf45 cf45 cf45 cf45 cf45 cf45 -6943 cf46 cf46 cf46 * * 2b28 8ea2aba8,8ea2aba8v 67c5 e69f85 67c5 000067c5 cf46 cf46 cf46 cf46 cf46 cf46 cf46 -6944 cf47 cf47 cf47 * * 2b29 8ea2aba9,8ea2aba9v 67eb e69fab 67eb 000067eb cf47 cf47 cf47 cf47 cf47 cf47 cf47 -6945 cf48 cf48 cf48 * * 2b2a 8ea2abaa,8ea2abaav 67e4 e69fa4 67e4 000067e4 cf48 cf48 cf48 cf48 cf48 cf48 cf48 -6946 cf49 cf49 cf49 * * 2b2b 8ea2abab,8ea2ababv 67df e69f9f 67df 000067df cf49 cf49 cf49 cf49 cf49 cf49 cf49 -6947 cf4a cf4a cf4a * * 2b2c 8ea2abac,8ea2abacv 67b5 e69eb5 67b5 000067b5 cf4a cf4a cf4a cf4a cf4a cf4a cf4a -6948 cf4b cf4b cf4b * * 2b2d 8ea2abad,8ea2abadv 67cd e69f8d 67cd 000067cd cf4b cf4b cf4b cf4b cf4b cf4b cf4b -6949 cf4c cf4c cf4c * * 2b2e 8ea2abae,8ea2abaev 67b3 e69eb3 67b3 000067b3 cf4c cf4c cf4c cf4c cf4c cf4c cf4c -6950 cf4d cf4d cf4d * * 2b2f 8ea2abaf,8ea2abafv 67f7 e69fb7 67f7 000067f7 cf4d cf4d cf4d cf4d cf4d cf4d cf4d -6951 cf4e cf4e cf4e * * 2b30 8ea2abb0,8ea2abb0v 67f6 e69fb6 67f6 000067f6 cf4e cf4e cf4e cf4e cf4e cf4e cf4e -6952 cf4f cf4f cf4f * * 2b31 8ea2abb1,8ea2abb1v 67ee e69fae 67ee 000067ee cf4f cf4f cf4f cf4f cf4f cf4f cf4f -6953 cf50 cf50 cf50 * * 2b32 8ea2abb2,8ea2abb2v 67e3 e69fa3 67e3 000067e3 cf50 cf50 cf50 cf50 cf50 cf50 cf50 -6954 cf51 cf51 cf51 * * 2b33 8ea2abb3,8ea2abb3v 67c2 e69f82 67c2 000067c2 cf51 cf51 cf51 cf51 cf51 cf51 cf51 -6955 cf52 cf52 cf52 * * 2b34 8ea2abb4,8ea2abb4v 67b9 e69eb9 67b9 000067b9 cf52 cf52 cf52 cf52 cf52 cf52 cf52 -6956 cf53 cf53 cf53 * * 2b35 8ea2abb5,8ea2abb5v 67ce e69f8e 67ce 000067ce cf53 cf53 cf53 cf53 cf53 cf53 cf53 -6957 cf54 cf54 cf54 * * 2b36 8ea2abb6,8ea2abb6v 67e7 e69fa7 67e7 000067e7 cf54 cf54 cf54 cf54 cf54 cf54 cf54 -6958 cf55 cf55 cf55 * * 2b37 8ea2abb7,8ea2abb7v 67f0 e69fb0 67f0 000067f0 cf55 cf55 cf55 cf55 cf55 cf55 cf55 -6959 cf56 cf56 cf56 * * 2b38 8ea2abb8,8ea2abb8v 67b2 e69eb2 67b2 000067b2 cf56 cf56 cf56 cf56 cf56 cf56 cf56 -6960 cf57 cf57 cf57 * * 2b39 8ea2abb9,8ea2abb9v 67fc e69fbc 67fc 000067fc cf57 cf57 cf57 cf57 cf57 cf57 cf57 -6961 cf58 cf58 cf58 * * 2b3a 8ea2abba,8ea2abbav 67c6 e69f86 67c6 000067c6 cf58 cf58 cf58 cf58 cf58 cf58 cf58 -6962 cf59 cf59 cf59 * * 2b3b 8ea2abbb,8ea2abbbv 67ed e69fad 67ed 000067ed cf59 cf59 cf59 cf59 cf59 cf59 cf59 -6963 cf5a cf5a cf5a * * 2b3c 8ea2abbc,8ea2abbcv 67cc e69f8c 67cc 000067cc cf5a cf5a cf5a cf5a cf5a cf5a cf5a -6964 cf5b cf5b cf5b * * 2b3d 8ea2abbd,8ea2abbdv 67ae e69eae 67ae 000067ae cf5b cf5b cf5b cf5b cf5b cf5b cf5b -6965 cf5c cf5c cf5c * * 2b3e 8ea2abbe,8ea2abbev 67e6 e69fa6 67e6 000067e6 cf5c cf5c cf5c cf5c cf5c cf5c cf5c -6966 cf5d cf5d cf5d * * 2b3f 8ea2abbf,8ea2abbfv 67db e69f9b 67db 000067db cf5d cf5d cf5d cf5d cf5d cf5d cf5d -6967 cf5e cf5e cf5e * * 2b40 8ea2abc0,8ea2abc0v 67fa e69fba 67fa 000067fa cf5e cf5e cf5e cf5e cf5e cf5e cf5e -6968 cf5f cf5f cf5f * * 2b41 8ea2abc1,8ea2abc1v 67c9 e69f89 67c9 000067c9 cf5f cf5f cf5f cf5f cf5f cf5f cf5f -6969 cf60 cf60 cf60 * * 2b42 8ea2abc2,8ea2abc2v 67ca e69f8a 67ca 000067ca cf60 cf60 cf60 cf60 cf60 cf60 cf60 -6970 cf61 cf61 cf61 * * 2b43 8ea2abc3,8ea2abc3v 67c3 e69f83 67c3 000067c3 cf61 cf61 cf61 cf61 cf61 cf61 cf61 -6971 cf62 cf62 cf62 * * 2b44 8ea2abc4,8ea2abc4v 67ea e69faa 67ea 000067ea cf62 cf62 cf62 cf62 cf62 cf62 cf62 -6972 cf63 cf63 cf63 * * 2b45 8ea2abc5,8ea2abc5v 67cb e69f8b 67cb 000067cb cf63 cf63 cf63 cf63 cf63 cf63 cf63 -6973 cf64 cf64 cf64 * * 2b46 8ea2abc6,8ea2abc6v 6b28 e6aca8 6b28 00006b28 cf64 cf64 cf64 cf64 cf64 cf64 cf64 -6974 cf65 cf65 cf65 * * 2b47 8ea2abc7,8ea2abc7v 6b82 e6ae82 6b82 00006b82 cf65 cf65 cf65 cf65 cf65 cf65 cf65 -6975 cf66 cf66 cf66 * * 2b48 8ea2abc8,8ea2abc8v 6b84 e6ae84 6b84 00006b84 cf66 cf66 cf66 cf66 cf66 cf66 cf66 -6976 cf67 cf67 cf67 * * 2b49 8ea2abc9,8ea2abc9v 6bb6 e6aeb6 6bb6 00006bb6 cf67 cf67 cf67 cf67 cf67 cf67 cf67 -6977 cf68 cf68 cf68 * * 2b4a 8ea2abca,8ea2abcav 6bd6 e6af96 6bd6 00006bd6 cf68 cf68 cf68 cf68 cf68 cf68 cf68 -6978 cf69 cf69 cf69 * * 2b4b 8ea2abcb,8ea2abcbv 6bd8 e6af98 6bd8 00006bd8 cf69 cf69 cf69 cf69 cf69 cf69 cf69 -6979 cf6a cf6a cf6a * * 2b4c 8ea2abcc,8ea2abccv 6be0 e6afa0 6be0 00006be0 cf6a cf6a cf6a cf6a cf6a cf6a cf6a -6980 cf6b cf6b cf6b * * 2b4d 8ea2abcd,8ea2abcdv 6c20 e6b0a0 6c20 00006c20 cf6b cf6b cf6b cf6b cf6b cf6b cf6b -6981 cf6c cf6c cf6c * * 2b4e 8ea2abce,8ea2abcev 6c21 e6b0a1 6c21 00006c21 cf6c cf6c cf6c cf6c cf6c cf6c cf6c -6982 cf6d cf6d cf6d * * 2b4f 8ea2abcf,8ea2abcfv 6d28 e6b4a8 6d28 00006d28 cf6d cf6d cf6d cf6d cf6d cf6d cf6d -6983 cf6e cf6e cf6e * * 2b50 8ea2abd0,8ea2abd0v 6d34 e6b4b4 6d34 00006d34 cf6e cf6e cf6e cf6e cf6e cf6e cf6e -6984 cf6f cf6f cf6f * * 2b51 8ea2abd1,8ea2abd1v 6d2d e6b4ad 6d2d 00006d2d cf6f cf6f cf6f cf6f cf6f cf6f cf6f -6985 cf70 cf70 cf70 * * 2b52 8ea2abd2,8ea2abd2v 6d1f e6b49f 6d1f 00006d1f cf70 cf70 cf70 cf70 cf70 cf70 cf70 -6986 cf71 cf71 cf71 * * 2b53 8ea2abd3,8ea2abd3v 6d3c e6b4bc 6d3c 00006d3c cf71 cf71 cf71 cf71 cf71 cf71 cf71 -6987 cf72 cf72 cf72 * * 2b54 8ea2abd4,8ea2abd4v 6d3f e6b4bf 6d3f 00006d3f cf72 cf72 cf72 cf72 cf72 cf72 cf72 -6988 cf73 cf73 cf73 * * 2b55 8ea2abd5,8ea2abd5v 6d12 e6b492 6d12 00006d12 cf73 cf73 cf73 cf73 cf73 cf73 cf73 -6989 cf74 cf74 cf74 * * 2b56 8ea2abd6,8ea2abd6v 6d0a e6b48a 6d0a 00006d0a cf74 cf74 cf74 cf74 cf74 cf74 cf74 -6990 cf75 cf75 cf75 * * 2b57 8ea2abd7,8ea2abd7v 6cda e6b39a 6cda 00006cda cf75 cf75 cf75 cf75 cf75 cf75 cf75 -6991 cf76 cf76 cf76 * * 2b58 8ea2abd8,8ea2abd8v 6d33 e6b4b3 6d33 00006d33 cf76 cf76 cf76 cf76 cf76 cf76 cf76 -6992 cf77 cf77 cf77 * * 2b59 8ea2abd9,8ea2abd9v 6d04 e6b484 6d04 00006d04 cf77 cf77 cf77 cf77 cf77 cf77 cf77 -6993 cf78 cf78 cf78 * * 2b5a 8ea2abda,8ea2abdav 6d19 e6b499 6d19 00006d19 cf78 cf78 cf78 cf78 cf78 cf78 cf78 -6994 cf79 cf79 cf79 * * 2b5b 8ea2abdb,8ea2abdbv 6d3a e6b4ba 6d3a 00006d3a cf79 cf79 cf79 cf79 cf79 cf79 cf79 -6995 cf7a cf7a cf7a * * 2b5c 8ea2abdc,8ea2abdcv 6d1a e6b49a 6d1a 00006d1a cf7a cf7a cf7a cf7a cf7a cf7a cf7a -6996 cf7b cf7b cf7b * * 2b5d 8ea2abdd,8ea2abddv 6d11 e6b491 6d11 00006d11 cf7b cf7b cf7b cf7b cf7b cf7b cf7b -6997 cf7c cf7c cf7c * * 2b5e 8ea2abde,8ea2abdev 6d00 e6b480 6d00 00006d00 cf7c cf7c cf7c cf7c cf7c cf7c cf7c -6998 cf7d cf7d cf7d * * 2b5f 8ea2abdf,8ea2abdfv 6d1d e6b49d 6d1d 00006d1d cf7d cf7d cf7d cf7d cf7d cf7d cf7d -6999 cf7e cf7e cf7e * * 2b60 8ea2abe0,8ea2abe0v 6d42 e6b582 6d42 00006d42 cf7e cf7e cf7e cf7e cf7e cf7e cf7e -7000 cfa1 cfa1 cfa1 * * 2b61 8ea2abe1,8ea2abe1v 6d01 e6b481 6d01 00006d01 cfa1 cfa1 cfa1 cfa1 cfa1 cfa1 cfa1 -7001 cfa2 cfa2 cfa2 * * 2b62 8ea2abe2,8ea2abe2v 6d18 e6b498 6d18 00006d18 cfa2 cfa2 cfa2 cfa2 cfa2 cfa2 cfa2 -7002 cfa3 cfa3 cfa3 * * 2b63 8ea2abe3,8ea2abe3v 6d37 e6b4b7 6d37 00006d37 cfa3 cfa3 cfa3 cfa3 cfa3 cfa3 cfa3 -7003 cfa4 cfa4 cfa4 * * 2b64 8ea2abe4,8ea2abe4v 6d03 e6b483 6d03 00006d03 cfa4 cfa4 cfa4 cfa4 cfa4 cfa4 cfa4 -7004 cfa5 cfa5 cfa5 * * 2b65 8ea2abe5,8ea2abe5v 6d0f e6b48f 6d0f 00006d0f cfa5 cfa5 cfa5 cfa5 cfa5 cfa5 cfa5 -7005 cfa6 cfa6 cfa6 * * 2b66 8ea2abe6,8ea2abe6v 6d40 e6b580 6d40 00006d40 cfa6 cfa6 cfa6 cfa6 cfa6 cfa6 cfa6 -7006 cfa7 cfa7 cfa7 * * 2b67 8ea2abe7,8ea2abe7v 6d07 e6b487 6d07 00006d07 cfa7 cfa7 cfa7 cfa7 cfa7 cfa7 cfa7 -7007 cfa8 cfa8 cfa8 * * 2b68 8ea2abe8,8ea2abe8v 6d20 e6b4a0 6d20 00006d20 cfa8 cfa8 cfa8 cfa8 cfa8 cfa8 cfa8 -7008 cfa9 cfa9 cfa9 * * 2b69 8ea2abe9,8ea2abe9v 6d2c e6b4ac 6d2c 00006d2c cfa9 cfa9 cfa9 cfa9 cfa9 cfa9 cfa9 -7009 cfaa cfaa cfaa * * 2b6a 8ea2abea,8ea2abeav 6d08 e6b488 6d08 00006d08 cfaa cfaa cfaa cfaa cfaa cfaa cfaa -7010 cfab cfab cfab * * 2b6b 8ea2abeb,8ea2abebv 6d22 e6b4a2 6d22 00006d22 cfab cfab cfab cfab cfab cfab cfab -7011 cfac cfac cfac * * 2b6c 8ea2abec,8ea2abecv 6d09 e6b489 6d09 00006d09 cfac cfac cfac cfac cfac cfac cfac -7012 cfad cfad cfad * * 2b6d 8ea2abed,8ea2abedv 6d10 e6b490 6d10 00006d10 cfad cfad cfad cfad cfad cfad cfad -7013 cfae cfae cfae * * 2b6e 8ea2abee,8ea2abeev 70b7 e782b7 70b7 000070b7 cfae cfae cfae cfae cfae cfae cfae -7014 cfaf cfaf cfaf * * 2b6f 8ea2abef,8ea2abefv 709f e7829f 709f 0000709f cfaf cfaf cfaf cfaf cfaf cfaf cfaf -7015 cfb0 cfb0 cfb0 * * 2b70 8ea2abf0,8ea2abf0v 70be e782be 70be 000070be cfb0 cfb0 cfb0 cfb0 cfb0 cfb0 cfb0 -7016 cfb1 cfb1 cfb1 * * 2b71 8ea2abf1,8ea2abf1v 70b1 e782b1 70b1 000070b1 cfb1 cfb1 cfb1 cfb1 cfb1 cfb1 cfb1 -7017 cfb2 cfb2 cfb2 * * 2b72 8ea2abf2,8ea2abf2v 70b0 e782b0 70b0 000070b0 cfb2 cfb2 cfb2 cfb2 cfb2 cfb2 cfb2 -7018 cfb3 cfb3 cfb3 * * 2b73 8ea2abf3,8ea2abf3v 70a1 e782a1 70a1 000070a1 cfb3 cfb3 cfb3 cfb3 cfb3 cfb3 cfb3 -7019 cfb4 cfb4 cfb4 * * 2b74 8ea2abf4,8ea2abf4v 70b4 e782b4 70b4 000070b4 cfb4 cfb4 cfb4 cfb4 cfb4 cfb4 cfb4 -7020 cfb5 cfb5 cfb5 * * 2b75 8ea2abf5,8ea2abf5v 70b5 e782b5 70b5 000070b5 cfb5 cfb5 cfb5 cfb5 cfb5 cfb5 cfb5 -7021 cfb6 cfb6 cfb6 * * 2b76 8ea2abf6,8ea2abf6v 70a9 e782a9 70a9 000070a9 cfb6 cfb6 cfb6 cfb6 cfb6 cfb6 cfb6 -7022 cfb7 cfb7 cfb7 * * 2b77 8ea2abf7,8ea2abf7v 7241 e78981 7241 00007241 cfb7 cfb7 cfb7 cfb7 cfb7 cfb7 cfb7 -7023 cfb8 cfb8 cfb8 * * 2b78 8ea2abf8,8ea2abf8v 7249 e78989 7249 00007249 cfb8 cfb8 cfb8 cfb8 cfb8 cfb8 cfb8 -7024 cfb9 cfb9 cfb9 * * 2b79 8ea2abf9,8ea2abf9v 724a e7898a 724a 0000724a cfb9 cfb9 cfb9 cfb9 cfb9 cfb9 cfb9 -7025 cfba cfba cfba * * 2b7a 8ea2abfa,8ea2abfav 726c e789ac 726c 0000726c cfba cfba cfba cfba cfba cfba cfba -7026 cfbb cfbb cfbb * * 2b7b 8ea2abfb,8ea2abfbv 7270 e789b0 7270 00007270 cfbb cfbb cfbb cfbb cfbb cfbb cfbb -7027 cfbc cfbc cfbc * * 2b7c 8ea2abfc,8ea2abfcv 7273 e789b3 7273 00007273 cfbc cfbc cfbc cfbc cfbc cfbc cfbc -7028 cfbd cfbd cfbd * * 2b7d 8ea2abfd,8ea2abfdv 726e e789ae 726e 0000726e cfbd cfbd cfbd cfbd cfbd cfbd cfbd -7029 cfbe cfbe cfbe * * 2b7e 8ea2abfe,8ea2abfev 72ca e78b8a 72ca 000072ca cfbe cfbe cfbe cfbe cfbe cfbe cfbe -7030 cfbf cfbf cfbf * * 2c21 8ea2aca1,8ea2aca1v 72e4 e78ba4 72e4 000072e4 cfbf cfbf cfbf cfbf cfbf cfbf cfbf -7031 cfc0 cfc0 cfc0 * * 2c22 8ea2aca2,8ea2aca2v 72e8 e78ba8 72e8 000072e8 cfc0 cfc0 cfc0 cfc0 cfc0 cfc0 cfc0 -7032 cfc1 cfc1 cfc1 * * 2c23 8ea2aca3,8ea2aca3v 72eb e78bab 72eb 000072eb cfc1 cfc1 cfc1 cfc1 cfc1 cfc1 cfc1 -7033 cfc2 cfc2 cfc2 * * 2c24 8ea2aca4,8ea2aca4v 72df e78b9f 72df 000072df cfc2 cfc2 cfc2 cfc2 cfc2 cfc2 cfc2 -7034 cfc3 cfc3 cfc3 * * 2c25 8ea2aca5,8ea2aca5v 72ea e78baa 72ea 000072ea cfc3 cfc3 cfc3 cfc3 cfc3 cfc3 cfc3 -7035 cfc4 cfc4 cfc4 * * 2c26 8ea2aca6,8ea2aca6v 72e6 e78ba6 72e6 000072e6 cfc4 cfc4 cfc4 cfc4 cfc4 cfc4 cfc4 -7036 cfc5 cfc5 cfc5 * * 2c27 8ea2aca7,8ea2aca7v 72e3 e78ba3 72e3 000072e3 cfc5 cfc5 cfc5 cfc5 cfc5 cfc5 cfc5 -7037 cfc6 cfc6 cfc6 * * 2c28 8ea2aca8,8ea2aca8v 7385 e78e85 7385 00007385 cfc6 cfc6 cfc6 cfc6 cfc6 cfc6 cfc6 -7038 cfc7 cfc7 cfc7 * * 2c29 8ea2aca9,8ea2aca9v 73cc e78f8c 73cc 000073cc cfc7 cfc7 cfc7 cfc7 cfc7 cfc7 cfc7 -7039 cfc8 cfc8 cfc8 * * 2c2a 8ea2acaa,8ea2acaav 73c2 e78f82 73c2 000073c2 cfc8 cfc8 cfc8 cfc8 cfc8 cfc8 cfc8 -7040 cfc9 cfc9 cfc9 * * 2c2b 8ea2acab,8ea2acabv 73c8 e78f88 73c8 000073c8 cfc9 cfc9 cfc9 cfc9 cfc9 cfc9 cfc9 -7041 cfca cfca cfca * * 2c2c 8ea2acac,8ea2acacv 73c5 e78f85 73c5 000073c5 cfca cfca cfca cfca cfca cfca cfca -7042 cfcb cfcb cfcb * * 2c2d 8ea2acad,8ea2acadv 73b9 e78eb9 73b9 000073b9 cfcb cfcb cfcb cfcb cfcb cfcb cfcb -7043 cfcc cfcc cfcc * * 2c2e 8ea2acae,8ea2acaev 73b6 e78eb6 73b6 000073b6 cfcc cfcc cfcc cfcc cfcc cfcc cfcc -7044 cfcd cfcd cfcd * * 2c2f 8ea2acaf,8ea2acafv 73b5 e78eb5 73b5 000073b5 cfcd cfcd cfcd cfcd cfcd cfcd cfcd -7045 cfce cfce cfce * * 2c30 8ea2acb0,8ea2acb0v 73b4 e78eb4 73b4 000073b4 cfce cfce cfce cfce cfce cfce cfce -7046 cfcf cfcf cfcf * * 2c31 8ea2acb1,8ea2acb1v 73eb e78fab 73eb 000073eb cfcf cfcf cfcf cfcf cfcf cfcf cfcf -7047 cfd0 cfd0 cfd0 * * 2c32 8ea2acb2,8ea2acb2v 73bf e78ebf 73bf 000073bf cfd0 cfd0 cfd0 cfd0 cfd0 cfd0 cfd0 -7048 cfd1 cfd1 cfd1 * * 2c33 8ea2acb3,8ea2acb3v 73c7 e78f87 73c7 000073c7 cfd1 cfd1 cfd1 cfd1 cfd1 cfd1 cfd1 -7049 cfd2 cfd2 cfd2 * * 2c34 8ea2acb4,8ea2acb4v 73be e78ebe 73be 000073be cfd2 cfd2 cfd2 cfd2 cfd2 cfd2 cfd2 -7050 cfd3 cfd3 cfd3 * * 2c35 8ea2acb5,8ea2acb5v 73c3 e78f83 73c3 000073c3 cfd3 cfd3 cfd3 cfd3 cfd3 cfd3 cfd3 -7051 cfd4 cfd4 cfd4 * * 2c36 8ea2acb6,8ea2acb6v 73c6 e78f86 73c6 000073c6 cfd4 cfd4 cfd4 cfd4 cfd4 cfd4 cfd4 -7052 cfd5 cfd5 cfd5 * * 2c37 8ea2acb7,8ea2acb7v 73b8 e78eb8 73b8 000073b8 cfd5 cfd5 cfd5 cfd5 cfd5 cfd5 cfd5 -7053 cfd6 cfd6 cfd6 * * 2c38 8ea2acb8,8ea2acb8v 73cb e78f8b 73cb 000073cb cfd6 cfd6 cfd6 cfd6 cfd6 cfd6 cfd6 -7054 cfd7 cfd7 cfd7 * * 2c39 8ea2acb9,8ea2acb9v 74ec e793ac 74ec 000074ec cfd7 cfd7 cfd7 cfd7 cfd7 cfd7 cfd7 -7055 cfd8 cfd8 cfd8 * * 2c3a 8ea2acba,8ea2acbav 74ee e793ae 74ee 000074ee cfd8 cfd8 cfd8 cfd8 cfd8 cfd8 cfd8 -7056 cfd9 cfd9 cfd9 * * 2c3b 8ea2acbb,8ea2acbbv 752e e794ae 752e 0000752e cfd9 cfd9 cfd9 cfd9 cfd9 cfd9 cfd9 -7057 cfda cfda cfda * * 2c3c 8ea2acbc,8ea2acbcv 7547 e79587 7547 00007547 cfda cfda cfda cfda cfda cfda cfda -7058 cfdb cfdb cfdb * * 2c3d 8ea2acbd,8ea2acbdv 7548 e79588 7548 00007548 cfdb cfdb cfdb cfdb cfdb cfdb cfdb -7059 cfdc cfdc cfdc * * 2c3e 8ea2acbe,8ea2acbev 75a7 e796a7 75a7 000075a7 cfdc cfdc cfdc cfdc cfdc cfdc cfdc -7060 cfdd cfdd cfdd * * 2c3f 8ea2acbf,8ea2acbfv 75aa e796aa 75aa 000075aa cfdd cfdd cfdd cfdd cfdd cfdd cfdd -7061 cfde cfde cfde * * 2c40 8ea2acc0,8ea2acc0v 7679 e799b9 7679 00007679 cfde cfde cfde cfde cfde cfde cfde -7062 cfdf cfdf cfdf * * 2c41 8ea2acc1,8ea2acc1v 76c4 e79b84 76c4 000076c4 cfdf cfdf cfdf cfdf cfdf cfdf cfdf -7063 cfe0 cfe0 cfe0 * * 2c42 8ea2acc2,8ea2acc2v 7708 e79c88 7708 00007708 cfe0 cfe0 cfe0 cfe0 cfe0 cfe0 cfe0 -7064 cfe1 cfe1 cfe1 * * 2c43 8ea2acc3,8ea2acc3v 7703 e79c83 7703 00007703 cfe1 cfe1 cfe1 cfe1 cfe1 cfe1 cfe1 -7065 cfe2 cfe2 cfe2 * * 2c44 8ea2acc4,8ea2acc4v 7704 e79c84 7704 00007704 cfe2 cfe2 cfe2 cfe2 cfe2 cfe2 cfe2 -7066 cfe3 cfe3 cfe3 * * 2c45 8ea2acc5,8ea2acc5v 7705 e79c85 7705 00007705 cfe3 cfe3 cfe3 cfe3 cfe3 cfe3 cfe3 -7067 cfe4 cfe4 cfe4 * * 2c46 8ea2acc6,8ea2acc6v 770a e79c8a 770a 0000770a cfe4 cfe4 cfe4 cfe4 cfe4 cfe4 cfe4 -7068 cfe5 cfe5 cfe5 * * 2c47 8ea2acc7,8ea2acc7v 76f7 e79bb7 76f7 000076f7 cfe5 cfe5 cfe5 cfe5 cfe5 cfe5 cfe5 -7069 cfe6 cfe6 cfe6 * * 2c48 8ea2acc8,8ea2acc8v 76fb e79bbb 76fb 000076fb cfe6 cfe6 cfe6 cfe6 cfe6 cfe6 cfe6 -7070 cfe7 cfe7 cfe7 * * 2c49 8ea2acc9,8ea2acc9v 76fa e79bba 76fa 000076fa cfe7 cfe7 cfe7 cfe7 cfe7 cfe7 cfe7 -7071 cfe8 cfe8 cfe8 * * 2c4a 8ea2acca,8ea2accav 77e7 e79fa7 77e7 000077e7 cfe8 cfe8 cfe8 cfe8 cfe8 cfe8 cfe8 -7072 cfe9 cfe9 cfe9 * * 2c4b 8ea2accb,8ea2accbv 77e8 e79fa8 77e8 000077e8 cfe9 cfe9 cfe9 cfe9 cfe9 cfe9 cfe9 -7073 cfea cfea cfea * * 2c4c 8ea2accc,8ea2acccv 7806 e7a086 7806 00007806 cfea cfea cfea cfea cfea cfea cfea -7074 cfeb cfeb cfeb * * 2c4d 8ea2accd,8ea2accdv 7811 e7a091 7811 00007811 cfeb cfeb cfeb cfeb cfeb cfeb cfeb -7075 cfec cfec cfec * * 2c4e 8ea2acce,8ea2accev 7812 e7a092 7812 00007812 cfec cfec cfec cfec cfec cfec cfec -7076 cfed cfed cfed * * 2c4f 8ea2accf,8ea2accfv 7805 e7a085 7805 00007805 cfed cfed cfed cfed cfed cfed cfed -7077 cfee cfee cfee * * 2c50 8ea2acd0,8ea2acd0v 7810 e7a090 7810 00007810 cfee cfee cfee cfee cfee cfee cfee -7078 cfef cfef cfef * * 2c51 8ea2acd1,8ea2acd1v 780f e7a08f 780f 0000780f cfef cfef cfef cfef cfef cfef cfef -7079 cff0 cff0 cff0 * * 2c52 8ea2acd2,8ea2acd2v 780e e7a08e 780e 0000780e cff0 cff0 cff0 cff0 cff0 cff0 cff0 -7080 cff1 cff1 cff1 * * 2c53 8ea2acd3,8ea2acd3v 7809 e7a089,ee8baf 7809,e2ef 00007809,0000e2ef fedd,cff1 cff1 cff1 cff1 cff1 cff1 fedd,cff1 -7081 cff2 cff2 cff2 * * 2c54 8ea2acd4,8ea2acd4v 7803 e7a083 7803 00007803 cff2 cff2 cff2 cff2 cff2 cff2 cff2 -7082 cff3 cff3 cff3 * * 2c55 8ea2acd5,8ea2acd5v 7813 e7a093 7813 00007813 cff3 cff3 cff3 cff3 cff3 cff3 cff3 -7083 cff4 cff4 cff4 * * 2c56 8ea2acd6,8ea2acd6v 794a e7a58a 794a 0000794a cff4 cff4 cff4 cff4 cff4 cff4 cff4 -7084 cff5 cff5 cff5 * * 2c57 8ea2acd7,8ea2acd7v 794c e7a58c 794c 0000794c cff5 cff5 cff5 cff5 cff5 cff5 cff5 -7085 cff6 cff6 cff6 * * 2c58 8ea2acd8,8ea2acd8v 794b e7a58b 794b 0000794b cff6 cff6 cff6 cff6 cff6 cff6 cff6 -7086 cff7 cff7 cff7 * * 2c59 8ea2acd9,8ea2acd9v 7945 e7a585 7945 00007945 cff7 cff7 cff7 cff7 cff7 cff7 cff7 -7087 cff8 cff8 cff8 * * 2c5a 8ea2acda,8ea2acdav 7944 e7a584 7944 00007944 cff8 cff8 cff8 cff8 cff8 cff8 cff8 -7088 cff9 cff9 cff9 * * 2c5b 8ea2acdb,8ea2acdbv 79d5 e7a795 79d5 000079d5 cff9 cff9 cff9 cff9 cff9 cff9 cff9 -7089 cffa cffa cffa * * 2c5c 8ea2acdc,8ea2acdcv 79cd e7a78d 79cd 000079cd cffa cffa cffa cffa cffa cffa cffa -7090 cffb cffb cffb * * 2c5d 8ea2acdd,8ea2acddv 79cf e7a78f 79cf 000079cf cffb cffb cffb cffb cffb cffb cffb -7091 cffc cffc cffc * * 2c5e 8ea2acde,8ea2acdev 79d6 e7a796 79d6 000079d6 cffc cffc cffc cffc cffc cffc cffc -7092 cffd cffd cffd * * 2c5f 8ea2acdf,8ea2acdfv 79ce e7a78e 79ce 000079ce cffd cffd cffd cffd cffd cffd cffd -7093 cffe cffe cffe * * 2c60 8ea2ace0,8ea2ace0v 7a80 e7aa80 7a80 00007a80 cffe cffe cffe cffe cffe cffe cffe -7094 d040 d040 d040 * * 2c61 8ea2ace1,8ea2ace1v 7a7e e7a9be 7a7e 00007a7e d040 d040 d040 d040 d040 d040 d040 -7095 d041 d041 d041 * * 2c62 8ea2ace2,8ea2ace2v 7ad1 e7ab91 7ad1 00007ad1 d041 d041 d041 d041 d041 d041 d041 -7096 d042 d042 d042 * * 2c63 8ea2ace3,8ea2ace3v 7b00 e7ac80 7b00 00007b00 d042 d042 d042 d042 d042 d042 d042 -7097 d043 d043 d043 * * 2c64 8ea2ace4,8ea2ace4v 7b01 e7ac81 7b01 00007b01 d043 d043 d043 d043 d043 d043 d043 -7098 d044 d044 d044 * * 2c65 8ea2ace5,8ea2ace5v 7c7a e7b1ba 7c7a 00007c7a d044 d044 d044 d044 d044 d044 d044 -7099 d045 d045 d045 * * 2c66 8ea2ace6,8ea2ace6v 7c78 e7b1b8 7c78 00007c78 d045 d045 d045 d045 d045 d045 d045 -7100 d046 d046 d046 * * 2c67 8ea2ace7,8ea2ace7v 7c79 e7b1b9 7c79 00007c79 d046 d046 d046 d046 d046 d046 d046 -7101 d047 d047 d047 * * 2c68 8ea2ace8,8ea2ace8v 7c7f e7b1bf 7c7f 00007c7f d047 d047 d047 d047 d047 d047 d047 -7102 d048 d048 d048 * * 2c69 8ea2ace9,8ea2ace9v 7c80 e7b280 7c80 00007c80 d048 d048 d048 d048 d048 d048 d048 -7103 d049 d049 d049 * * 2c6a 8ea2acea,8ea2aceav 7c81 e7b281 7c81 00007c81 d049 d049 d049 d049 d049 d049 d049 -7104 d04a d04a d04a * * 2c6b 8ea2aceb,8ea2acebv 7d03 e7b483 7d03 00007d03 d04a d04a d04a d04a d04a d04a d04a -7105 d04b d04b d04b * * 2c6c 8ea2acec,8ea2acecv 7d08 e7b488 7d08 00007d08 d04b d04b d04b d04b d04b d04b d04b -7106 d04c d04c d04c * * 2c6d 8ea2aced,8ea2acedv 7d01 e7b481 7d01 00007d01 d04c d04c d04c d04c d04c d04c d04c -7107 d04d d04d d04d * * 2c6e 8ea2acee,8ea2aceev 7f58 e7bd98 7f58 00007f58 d04d d04d d04d d04d d04d d04d d04d -7108 d04e d04e d04e * * 2c6f 8ea2acef,8ea2acefv 7f91 e7be91 7f91 00007f91 d04e d04e d04e d04e d04e d04e d04e -7109 d04f d04f d04f * * 2c70 8ea2acf0,8ea2acf0v 7f8d e7be8d 7f8d 00007f8d d04f d04f d04f d04f d04f d04f d04f -7110 d050 d050 d050 * * 2c71 8ea2acf1,8ea2acf1v 7fbe e7bebe 7fbe 00007fbe d050 d050 d050 d050 d050 d050 d050 -7111 d051 d051 d051 * * 2c72 8ea2acf2,8ea2acf2v 8007 e88087 8007 00008007 d051 d051 d051 d051 d051 d051 d051 -7112 d052 d052 d052 * * 2c73 8ea2acf3,8ea2acf3v 800e e8808e 800e 0000800e d052 d052 d052 d052 d052 d052 d052 -7113 d053 d053 d053 * * 2c74 8ea2acf4,8ea2acf4v 800f e8808f 800f 0000800f d053 d053 d053 d053 d053 d053 d053 -7114 d054 d054 d054 * * 2c75 8ea2acf5,8ea2acf5v 8014 e88094 8014 00008014 d054 d054 d054 d054 d054 d054 d054 -7115 d055 d055 d055 * * 2c76 8ea2acf6,8ea2acf6v 8037 e880b7 8037 00008037 d055 d055 d055 d055 d055 d055 d055 -7116 d056 d056 d056 * * 2c77 8ea2acf7,8ea2acf7v 80d8 e88398 80d8 000080d8 d056 d056 d056 d056 d056 d056 d056 -7117 d057 d057 d057 * * 2c78 8ea2acf8,8ea2acf8v 80c7 e88387 80c7 000080c7 d057 d057 d057 d057 d057 d057 d057 -7118 d058 d058 d058 * * 2c79 8ea2acf9,8ea2acf9v 80e0 e883a0 80e0 000080e0 d058 d058 d058 d058 d058 d058 d058 -7119 d059 d059 d059 * * 2c7a 8ea2acfa,8ea2acfav 80d1 e88391 80d1 000080d1 d059 d059 d059 d059 d059 d059 d059 -7120 d05a d05a d05a * * 2c7b 8ea2acfb,8ea2acfbv 80c8 e88388 80c8 000080c8 d05a d05a d05a d05a d05a d05a d05a -7121 d05b d05b d05b * * 2c7c 8ea2acfc,8ea2acfcv 80c2 e88382 80c2 000080c2 d05b d05b d05b d05b d05b d05b d05b -7122 d05c d05c d05c * * 2c7d 8ea2acfd,8ea2acfdv 80d0 e88390 80d0 000080d0 d05c d05c d05c d05c d05c d05c d05c -7123 d05d d05d d05d * * 2c7e 8ea2acfe,8ea2acfev 80c5 e88385 80c5 000080c5 d05d d05d d05d d05d d05d d05d d05d -7124 d05e d05e d05e * * 2d21 8ea2ada1,8ea2ada1v 80e3 e883a3 80e3 000080e3 d05e d05e d05e d05e d05e d05e d05e -7125 d05f d05f d05f * * 2d22 8ea2ada2,8ea2ada2v 80d9 e88399 80d9 000080d9 d05f d05f d05f d05f d05f d05f d05f -7126 d060 d060 d060 * * 2d23 8ea2ada3,8ea2ada3v 80dc e8839c 80dc 000080dc d060 d060 d060 d060 d060 d060 d060 -7127 d061 d061 d061 * * 2d24 8ea2ada4,8ea2ada4v 80ca e8838a 80ca 000080ca d061 d061 d061 d061 d061 d061 d061 -7128 d062 d062 d062 * * 2d25 8ea2ada5,8ea2ada5v 80d5 e88395 80d5 000080d5 d062 d062 d062 d062 d062 d062 d062 -7129 d063 d063 d063 * * 2d26 8ea2ada6,8ea2ada6v 80c9 e88389 80c9 000080c9 d063 d063 d063 d063 d063 d063 d063 -7130 d064 d064 d064 * * 2d27 8ea2ada7,8ea2ada7v 80cf e8838f 80cf 000080cf d064 d064 d064 d064 d064 d064 d064 -7131 d065 d065 d065 * * 2d28 8ea2ada8,8ea2ada8v 80d7 e88397 80d7 000080d7 d065 d065 d065 d065 d065 d065 d065 -7132 d066 d066 d066 * * 2d29 8ea2ada9,8ea2ada9v 80e6 e883a6 80e6 000080e6 d066 d066 d066 d066 d066 d066 d066 -7133 d067 d067 d067 * * 2d2a 8ea2adaa,8ea2adaav 80cd e8838d 80cd 000080cd d067 d067 d067 d067 d067 d067 d067 -7134 d068 d068 d068 * * 2d2b 8ea2adab,8ea2adabv 81ff e887bf 81ff 000081ff d068 d068 d068 d068 d068 d068 d068 -7135 d069 d069 d069 * * 2d2c 8ea2adac,8ea2adacv 8221 e888a1 8221 00008221 d069 d069 d069 d069 d069 d069 d069 -7136 d06a d06a d06a * * 2d2d 8ea2adad,8ea2adadv 8294 e88a94 8294 00008294 d06a d06a d06a d06a d06a d06a d06a -7137 d06b d06b d06b * * 2d2e 8ea2adae,8ea2adaev 82d9 e88b99 82d9 000082d9 d06b d06b d06b d06b d06b d06b d06b -7138 d06c d06c d06c * * 2d2f 8ea2adaf,8ea2adafv 82fe e88bbe 82fe 000082fe d06c d06c d06c d06c d06c d06c d06c -7139 d06d d06d d06d * * 2d30 8ea2adb0,8ea2adb0v 82f9 e88bb9 82f9 000082f9 d06d d06d d06d d06d d06d d06d d06d -7140 d06e d06e d06e * * 2d31 8ea2adb1,8ea2adb1v 8307 e88c87 8307 00008307 d06e d06e d06e d06e d06e d06e d06e -7141 d06f d06f d06f * * 2d32 8ea2adb2,8ea2adb2v 82e8 e88ba8 82e8 000082e8 d06f d06f d06f d06f d06f d06f d06f -7142 d070 d070 d070 * * 2d33 8ea2adb3,8ea2adb3v 8300 e88c80 8300 00008300 d070 d070 d070 d070 d070 d070 d070 -7143 d071 d071 d071 * * 2d34 8ea2adb4,8ea2adb4v 82d5 e88b95 82d5 000082d5 d071 d071 d071 d071 d071 d071 d071 -7144 d072 d072 d072 * * 2d35 8ea2adb5,8ea2adb5v 833a e88cba 833a 0000833a d072 d072 d072 d072 d072 d072 d072 -7145 d073 d073 d073 * * 2d36 8ea2adb6,8ea2adb6v 82eb e88bab 82eb 000082eb d073 d073 d073 d073 d073 d073 d073 -7146 d074 d074 d074 * * 2d37 8ea2adb7,8ea2adb7v 82d6 e88b96 82d6 000082d6 d074 d074 d074 d074 d074 d074 d074 -7147 d075 d075 d075 * * 2d38 8ea2adb8,8ea2adb8v 82f4 e88bb4 82f4 000082f4 d075 d075 d075 d075 d075 d075 d075 -7148 d076 d076 d076 * * 2d39 8ea2adb9,8ea2adb9v 82ec e88bac 82ec 000082ec d076 d076 d076 d076 d076 d076 d076 -7149 d077 d077 d077 * * 2d3a 8ea2adba,8ea2adbav 82e1 e88ba1 82e1 000082e1 d077 d077 d077 d077 d077 d077 d077 -7150 d078 d078 d078 * * 2d3b 8ea2adbb,8ea2adbbv 82f2 e88bb2 82f2 000082f2 d078 d078 d078 d078 d078 d078 d078 -7151 d079 d079 d079 * * 2d3c 8ea2adbc,8ea2adbcv 82f5 e88bb5 82f5 000082f5 d079 d079 d079 d079 d079 d079 d079 -7152 d07a d07a d07a * * 2d3d 8ea2adbd,8ea2adbdv 830c e88c8c 830c 0000830c d07a d07a d07a d07a d07a d07a d07a -7153 d07b d07b d07b * * 2d3e 8ea2adbe,8ea2adbev 82fb e88bbb 82fb 000082fb d07b d07b d07b d07b d07b d07b d07b -7154 d07c d07c d07c * * 2d3f 8ea2adbf,8ea2adbfv 82f6 e88bb6 82f6 000082f6 d07c d07c d07c d07c d07c d07c d07c -7155 d07d d07d d07d * * 2d40 8ea2adc0,8ea2adc0v 82f0 e88bb0 82f0 000082f0 d07d d07d d07d d07d d07d d07d d07d -7156 d07e d07e d07e * * 2d41 8ea2adc1,8ea2adc1v 82ea e88baa 82ea 000082ea d07e d07e d07e d07e d07e d07e d07e -7157 d0a1 d0a1 d0a1 * * 2d42 8ea2adc2,8ea2adc2v 82e4 e88ba4 82e4 000082e4 d0a1 d0a1 d0a1 d0a1 d0a1 d0a1 d0a1 -7158 d0a2 d0a2 d0a2 * * 2d43 8ea2adc3,8ea2adc3v 82e0 e88ba0 82e0 000082e0 d0a2 d0a2 d0a2 d0a2 d0a2 d0a2 d0a2 -7159 d0a3 d0a3 d0a3 * * 2d44 8ea2adc4,8ea2adc4v 82fa e88bba 82fa 000082fa d0a3 d0a3 d0a3 d0a3 d0a3 d0a3 d0a3 -7160 d0a4 d0a4 d0a4 * * 2d45 8ea2adc5,8ea2adc5v 82f3 e88bb3 82f3 000082f3 d0a4 d0a4 d0a4 d0a4 d0a4 d0a4 d0a4 -7161 d0a5 d0a5 d0a5 * * 2d46 8ea2adc6,8ea2adc6v 82ed e88bad 82ed 000082ed d0a5 d0a5 d0a5 d0a5 d0a5 d0a5 d0a5 -7162 d0a6 d0a6 d0a6 * * 2d47 8ea2adc7,8ea2adc7v 8677 e899b7 8677 00008677 d0a6 d0a6 d0a6 d0a6 d0a6 d0a6 d0a6 -7163 d0a7 d0a7 d0a7 * * 2d48 8ea2adc8,8ea2adc8v 8674 e899b4 8674 00008674 d0a7 d0a7 d0a7 d0a7 d0a7 d0a7 d0a7 -7164 d0a8 d0a8 d0a8 * * 2d49 8ea2adc9,8ea2adc9v 867c e899bc 867c 0000867c d0a8 d0a8 d0a8 d0a8 d0a8 d0a8 d0a8 -7165 d0a9 d0a9 d0a9 * * 2d4a 8ea2adca,8ea2adcav 8673 e899b3 8673 00008673 d0a9 d0a9 d0a9 d0a9 d0a9 d0a9 d0a9 -7166 d0aa d0aa d0aa * * 2d4b 8ea2adcb,8ea2adcbv 8841 e8a181 8841 00008841 d0aa d0aa d0aa d0aa d0aa d0aa d0aa -7167 d0ab d0ab d0ab * * 2d4c 8ea2adcc,8ea2adccv 884e e8a18e 884e 0000884e d0ab d0ab d0ab d0ab d0ab d0ab d0ab -7168 d0ac d0ac d0ac * * 2d4d 8ea2adcd,8ea2adcdv 8867 e8a1a7 8867 00008867 d0ac d0ac d0ac d0ac d0ac d0ac d0ac -7169 d0ad d0ad d0ad * * 2d4e 8ea2adce,8ea2adcev 886a e8a1aa 886a 0000886a d0ad d0ad d0ad d0ad d0ad d0ad d0ad -7170 d0ae d0ae d0ae * * 2d4f 8ea2adcf,8ea2adcfv 8869 e8a1a9 8869 00008869 d0ae d0ae d0ae d0ae d0ae d0ae d0ae -7171 d0af d0af d0af * * 2d50 8ea2add0,8ea2add0v 89d3 e8a793 89d3 000089d3 d0af d0af d0af d0af d0af d0af d0af -7172 d0b0 d0b0 d0b0 * * 2d51 8ea2add1,8ea2add1v 8a04 e8a884 8a04 00008a04 d0b0 d0b0 d0b0 d0b0 d0b0 d0b0 d0b0 -7173 d0b1 d0b1 d0b1 * * 2d52 8ea2add2,8ea2add2v 8a07 e8a887 8a07 00008a07 d0b1 d0b1 d0b1 d0b1 d0b1 d0b1 d0b1 -7174 d0b2 d0b2 d0b2 * * 2d53 8ea2add3,8ea2add3v 8d72 e8b5b2 8d72 00008d72 d0b2 d0b2 d0b2 d0b2 d0b2 d0b2 d0b2 -7175 d0b3 d0b3 d0b3 * * 2d54 8ea2add4,8ea2add4v 8fe3 e8bfa3 8fe3 00008fe3 d0b3 d0b3 d0b3 d0b3 d0b3 d0b3 d0b3 -7176 d0b4 d0b4 d0b4 * * 2d55 8ea2add5,8ea2add5v 8fe1 e8bfa1 8fe1 00008fe1 d0b4 d0b4 d0b4 d0b4 d0b4 d0b4 d0b4 -7177 d0b5 d0b5 d0b5 * * 2d56 8ea2add6,8ea2add6v 8fee e8bfae 8fee 00008fee d0b5 d0b5 d0b5 d0b5 d0b5 d0b5 d0b5 -7178 d0b6 d0b6 d0b6 * * 2d57 8ea2add7,8ea2add7v 8fe0 e8bfa0 8fe0 00008fe0 d0b6 d0b6 d0b6 d0b6 d0b6 d0b6 d0b6 -7179 d0b7 d0b7 d0b7 * * 2d58 8ea2add8,8ea2add8v 90f1 e983b1 90f1 000090f1 d0b7 d0b7 d0b7 d0b7 d0b7 d0b7 d0b7 -7180 d0b8 d0b8 d0b8 * * 2d59 8ea2add9,8ea2add9v 90bd e982bd 90bd 000090bd d0b8 d0b8 d0b8 d0b8 d0b8 d0b8 d0b8 -7181 d0b9 d0b9 d0b9 * * 2d5a 8ea2adda,8ea2addav 90bf e982bf 90bf 000090bf d0b9 d0b9 d0b9 d0b9 d0b9 d0b9 d0b9 -7182 d0ba d0ba d0ba * * 2d5b 8ea2addb,8ea2addbv 90d5 e98395 90d5 000090d5 d0ba d0ba d0ba d0ba d0ba d0ba d0ba -7183 d0bb d0bb d0bb * * 2d5c 8ea2addc,8ea2addcv 90c5 e98385 90c5 000090c5 d0bb d0bb d0bb d0bb d0bb d0bb d0bb -7184 d0bc d0bc d0bc * * 2d5d 8ea2addd,8ea2adddv 90be e982be 90be 000090be d0bc d0bc d0bc d0bc d0bc d0bc d0bc -7185 d0bd d0bd d0bd * * 2d5e 8ea2adde,8ea2addev 90c7 e98387 90c7 000090c7 d0bd d0bd d0bd d0bd d0bd d0bd d0bd -7186 d0be d0be d0be * * 2d5f 8ea2addf,8ea2addfv 90cb e9838b 90cb 000090cb d0be d0be d0be d0be d0be d0be d0be -7187 d0bf d0bf d0bf * * 2d60 8ea2ade0,8ea2ade0v 90c8 e98388 90c8 000090c8 d0bf d0bf d0bf d0bf d0bf d0bf d0bf -7188 d0c0 d0c0 d0c0 * * 2d61 8ea2ade1,8ea2ade1v 91d4 e98794,eeae86 91d4,eb86 000091d4,0000eb86 9bde,d0c0 d0c0 d0c0 9bde,d0c0 d0c0 d0c0 9bde,d0c0 -7189 d0c1 d0c1 d0c1 * * 2d62 8ea2ade2,8ea2ade2v 91d3 e98793 91d3 000091d3 d0c1 d0c1 d0c1 d0c1 d0c1 d0c1 d0c1 -7190 d0c2 d0c2 d0c2 * * 2d63 8ea2ade3,8ea2ade3v 9654 e99994 9654 00009654 d0c2 d0c2 d0c2 d0c2 d0c2 d0c2 d0c2 -7191 d0c3 d0c3 d0c3 * * 2d64 8ea2ade4,8ea2ade4v 964f e9998f 964f 0000964f d0c3 d0c3 d0c3 d0c3 d0c3 d0c3 d0c3 -7192 d0c4 d0c4 d0c4 * * 2d65 8ea2ade5,8ea2ade5v 9651 e99991 9651 00009651 d0c4 d0c4 d0c4 d0c4 d0c4 d0c4 d0c4 -7193 d0c5 d0c5 d0c5 * * 2d66 8ea2ade6,8ea2ade6v 9653 e99993 9653 00009653 d0c5 d0c5 d0c5 d0c5 d0c5 d0c5 d0c5 -7194 d0c6 d0c6 d0c6 * * 2d67 8ea2ade7,8ea2ade7v 964a e9998a 964a 0000964a d0c6 d0c6 d0c6 d0c6 d0c6 d0c6 d0c6 -7195 d0c7 d0c7 d0c7 * * 2d68 8ea2ade8,8ea2ade8v 964e e9998e 964e 0000964e d0c7 d0c7 d0c7 d0c7 d0c7 d0c7 d0c7 -7196 d0c8 d0c8 d0c8 * * 2d69 8ea2ade9,8ea2ade9v 501e e5809e 501e 0000501e d0c8 d0c8 d0c8 d0c8 d0c8 d0c8 d0c8 -7197 d0c9 d0c9 d0c9 * * 2d6a 8ea2adea,8ea2adeav 5005 e58085 5005 00005005 d0c9 d0c9 d0c9 d0c9 d0c9 d0c9 d0c9 -7198 d0ca d0ca d0ca * * 2d6b 8ea2adeb,8ea2adebv 5007 e58087 5007 00005007 d0ca d0ca d0ca d0ca d0ca d0ca d0ca -7199 d0cb d0cb d0cb * * 2d6c 8ea2adec,8ea2adecv 5013 e58093 5013 00005013 d0cb d0cb d0cb d0cb d0cb d0cb d0cb -7200 d0cc d0cc d0cc * * 2d6d 8ea2aded,8ea2adedv 5022 e580a2 5022 00005022 d0cc d0cc d0cc d0cc d0cc d0cc d0cc -7201 d0cd d0cd d0cd * * 2d6e 8ea2adee,8ea2adeev 5030 e580b0 5030 00005030 d0cd d0cd d0cd d0cd d0cd d0cd d0cd -7202 d0ce d0ce d0ce * * 2d6f 8ea2adef,8ea2adefv 501b e5809b 501b 0000501b d0ce d0ce d0ce d0ce d0ce d0ce d0ce -7203 d0cf d0cf d0cf * * 2d70 8ea2adf0,8ea2adf0v 4ff5 e4bfb5 4ff5 00004ff5 d0cf d0cf d0cf d0cf d0cf d0cf d0cf -7204 d0d0 d0d0 d0d0 * * 2d71 8ea2adf1,8ea2adf1v 4ff4 e4bfb4 4ff4 00004ff4 d0d0 d0d0 d0d0 d0d0 d0d0 d0d0 d0d0 -7205 d0d1 d0d1 d0d1 * * 2d72 8ea2adf2,8ea2adf2v 5033 e580b3 5033 00005033 d0d1 d0d1 d0d1 d0d1 d0d1 d0d1 d0d1 -7206 d0d2 d0d2 d0d2 * * 2d73 8ea2adf3,8ea2adf3v 5037 e580b7 5037 00005037 d0d2 d0d2 d0d2 d0d2 d0d2 d0d2 d0d2 -7207 d0d3 d0d3 d0d3 * * 2d74 8ea2adf4,8ea2adf4v 502c e580ac 502c 0000502c d0d3 d0d3 d0d3 d0d3 d0d3 d0d3 d0d3 -7208 d0d4 d0d4 d0d4 * * 2d75 8ea2adf5,8ea2adf5v 4ff6 e4bfb6 4ff6 00004ff6 d0d4 d0d4 d0d4 d0d4 d0d4 d0d4 d0d4 -7209 d0d5 d0d5 d0d5 * * 2d76 8ea2adf6,8ea2adf6v 4ff7 e4bfb7 4ff7 00004ff7 d0d5 d0d5 d0d5 d0d5 d0d5 d0d5 d0d5 -7210 d0d6 d0d6 d0d6 * * 2d77 8ea2adf7,8ea2adf7v 5017 e58097 5017 00005017 d0d6 d0d6 d0d6 d0d6 d0d6 d0d6 d0d6 -7211 d0d7 d0d7 d0d7 * * 2d78 8ea2adf8,8ea2adf8v 501c e5809c 501c 0000501c d0d7 d0d7 d0d7 d0d7 d0d7 d0d7 d0d7 -7212 d0d8 d0d8 d0d8 * * 2d79 8ea2adf9,8ea2adf9v 5020 e580a0 5020 00005020 d0d8 d0d8 d0d8 d0d8 d0d8 d0d8 d0d8 -7213 d0d9 d0d9 d0d9 * * 2d7a 8ea2adfa,8ea2adfav 5027 e580a7 5027 00005027 d0d9 d0d9 d0d9 d0d9 d0d9 d0d9 d0d9 -7214 d0da d0da d0da * * 2d7b 8ea2adfb,8ea2adfbv 5035 e580b5 5035 00005035 d0da d0da d0da d0da d0da d0da d0da -7215 d0db d0db d0db * * 2d7c 8ea2adfc,8ea2adfcv 502f e580af 502f 0000502f d0db d0db d0db d0db d0db d0db d0db -7216 d0dc d0dc d0dc * * 2d7d 8ea2adfd,8ea2adfdv 5031 e580b1 5031 00005031 d0dc d0dc d0dc d0dc d0dc d0dc d0dc -7217 d0dd d0dd d0dd * * 2d7e 8ea2adfe,8ea2adfev 500e e5808e 500e 0000500e d0dd d0dd d0dd d0dd d0dd d0dd d0dd -7218 d0de d0de d0de * * 2e21 8ea2aea1,8ea2aea1v 515a e5859a 515a 0000515a d0de d0de d0de d0de d0de d0de d0de -7219 d0df d0df d0df * * 2e22 8ea2aea2,8ea2aea2v 5194 e58694 5194 00005194 d0df d0df d0df d0df d0df d0df d0df -7220 d0e0 d0e0 d0e0 * * 2e23 8ea2aea3,8ea2aea3v 5193 e58693 5193 00005193 d0e0 d0e0 d0e0 d0e0 d0e0 d0e0 d0e0 -7221 d0e1 d0e1 d0e1 * * 2e24 8ea2aea4,8ea2aea4v 51ca e5878a 51ca 000051ca d0e1 d0e1 d0e1 d0e1 d0e1 d0e1 d0e1 -7222 d0e2 d0e2 d0e2 * * 2e25 8ea2aea5,8ea2aea5v 51c4 e58784 51c4 000051c4 d0e2 d0e2 d0e2 d0e2 d0e2 d0e2 d0e2 -7223 d0e3 d0e3 d0e3 * * 2e26 8ea2aea6,8ea2aea6v 51c5 e58785 51c5 000051c5 d0e3 d0e3 d0e3 d0e3 d0e3 d0e3 d0e3 -7224 d0e4 d0e4 d0e4 * * 2e27 8ea2aea7,8ea2aea7v 51c8 e58788 51c8 000051c8 d0e4 d0e4 d0e4 d0e4 d0e4 d0e4 d0e4 -7225 d0e5 d0e5 d0e5 * * 2e28 8ea2aea8,8ea2aea8v 51ce e5878e 51ce 000051ce d0e5 d0e5 d0e5 d0e5 d0e5 d0e5 d0e5 -7226 d0e6 d0e6 d0e6 * * 2e29 8ea2aea9,8ea2aea9v 5261 e589a1 5261 00005261 d0e6 d0e6 d0e6 d0e6 d0e6 d0e6 d0e6 -7227 d0e7 d0e7 d0e7 * * 2e2a 8ea2aeaa,8ea2aeaav 525a e5899a 525a 0000525a d0e7 d0e7 d0e7 d0e7 d0e7 d0e7 d0e7 -7228 d0e8 d0e8 d0e8 * * 2e2b 8ea2aeab,8ea2aeabv 5252 e58992 5252 00005252 d0e8 d0e8 d0e8 d0e8 d0e8 d0e8 d0e8 -7229 d0e9 d0e9 d0e9 * * 2e2c 8ea2aeac,8ea2aeacv 525e e5899e 525e 0000525e d0e9 d0e9 d0e9 d0e9 d0e9 d0e9 d0e9 -7230 d0ea d0ea d0ea * * 2e2d 8ea2aead,8ea2aeadv 525f e5899f 525f 0000525f d0ea d0ea d0ea d0ea d0ea d0ea d0ea -7231 d0eb d0eb d0eb * * 2e2e 8ea2aeae,8ea2aeaev 5255 e58995 5255 00005255 d0eb d0eb d0eb d0eb d0eb d0eb d0eb -7232 d0ec d0ec d0ec * * 2e2f 8ea2aeaf,8ea2aeafv 5262 e589a2 5262 00005262 d0ec d0ec d0ec d0ec d0ec d0ec d0ec -7233 d0ed d0ed d0ed * * 2e30 8ea2aeb0,8ea2aeb0v 52cd e58b8d 52cd 000052cd d0ed d0ed d0ed d0ed d0ed d0ed d0ed -7234 d0ee d0ee d0ee * * 2e31 8ea2aeb1,8ea2aeb1v 530e e58c8e 530e 0000530e d0ee d0ee d0ee d0ee d0ee d0ee d0ee -7235 d0ef d0ef d0ef * * 2e32 8ea2aeb2,8ea2aeb2v 539e e58e9e 539e 0000539e d0ef d0ef d0ef d0ef d0ef d0ef d0ef -7236 d0f0 d0f0 d0f0 * * 2e33 8ea2aeb3,8ea2aeb3v 5526 e594a6 5526 00005526 d0f0 d0f0 d0f0 d0f0 d0f0 d0f0 d0f0 -7237 d0f1 d0f1 d0f1 * * 2e34 8ea2aeb4,8ea2aeb4v 54e2 e593a2 54e2 000054e2 d0f1 d0f1 d0f1 d0f1 d0f1 d0f1 d0f1 -7238 d0f2 d0f2 d0f2 * * 2e35 8ea2aeb5,8ea2aeb5v 5517 e59497 5517 00005517 d0f2 d0f2 d0f2 d0f2 d0f2 d0f2 d0f2 -7239 d0f3 d0f3 d0f3 * * 2e36 8ea2aeb6,8ea2aeb6v 5512 e59492 5512 00005512 d0f3 d0f3 d0f3 d0f3 d0f3 d0f3 d0f3 -7240 d0f4 d0f4 d0f4 * * 2e37 8ea2aeb7,8ea2aeb7v 54e7 e593a7 54e7 000054e7 d0f4 d0f4 d0f4 d0f4 d0f4 d0f4 d0f4 -7241 d0f5 d0f5 d0f5 * * 2e38 8ea2aeb8,8ea2aeb8v 54f3 e593b3 54f3 000054f3 d0f5 d0f5 d0f5 d0f5 d0f5 d0f5 d0f5 -7242 d0f6 d0f6 d0f6 * * 2e39 8ea2aeb9,8ea2aeb9v 54e4 e593a4 54e4 000054e4 d0f6 d0f6 d0f6 d0f6 d0f6 d0f6 d0f6 -7243 d0f7 d0f7 d0f7 * * 2e3a 8ea2aeba,8ea2aebav 551a e5949a 551a 0000551a d0f7 d0f7 d0f7 d0f7 d0f7 d0f7 d0f7 -7244 d0f8 d0f8 d0f8 * * 2e3b 8ea2aebb,8ea2aebbv 54ff e593bf 54ff 000054ff d0f8 d0f8 d0f8 d0f8 d0f8 d0f8 d0f8 -7245 d0f9 d0f9 d0f9 * * 2e3c 8ea2aebc,8ea2aebcv 5504 e59484 5504 00005504 d0f9 d0f9 d0f9 d0f9 d0f9 d0f9 d0f9 -7246 d0fa d0fa d0fa * * 2e3d 8ea2aebd,8ea2aebdv 5508 e59488 5508 00005508 d0fa d0fa d0fa d0fa d0fa d0fa d0fa -7247 d0fb d0fb d0fb * * 2e3e 8ea2aebe,8ea2aebev 54eb e593ab 54eb 000054eb d0fb d0fb d0fb d0fb d0fb d0fb d0fb -7248 d0fc d0fc d0fc * * 2e3f 8ea2aebf,8ea2aebfv 5511 e59491 5511 00005511 d0fc d0fc d0fc d0fc d0fc d0fc d0fc -7249 d0fd d0fd d0fd * * 2e40 8ea2aec0,8ea2aec0v 5505 e59485 5505 00005505 d0fd d0fd d0fd d0fd d0fd d0fd d0fd -7250 d0fe d0fe d0fe * * 2e41 8ea2aec1,8ea2aec1v 54f1 e593b1 54f1 000054f1 d0fe d0fe d0fe d0fe d0fe d0fe d0fe -7251 d140 d140 d140 * * 2e42 8ea2aec2,8ea2aec2v 550a e5948a 550a 0000550a d140 d140 d140 d140 d140 d140 d140 -7252 d141 d141 d141 * * 2e43 8ea2aec3,8ea2aec3v 54fb e593bb 54fb 000054fb d141 d141 d141 d141 d141 d141 d141 -7253 d142 d142 d142 * * 2e44 8ea2aec4,8ea2aec4v 54f7 e593b7 54f7 000054f7 d142 d142 d142 d142 d142 d142 d142 -7254 d143 d143 d143 * * 2e45 8ea2aec5,8ea2aec5v 54f8 e593b8 54f8 000054f8 d143 d143 d143 d143 d143 d143 d143 -7255 d144 d144 d144 * * 2e46 8ea2aec6,8ea2aec6v 54e0 e593a0 54e0 000054e0 d144 d144 d144 d144 d144 d144 d144 -7256 d145 d145 d145 * * 2e47 8ea2aec7,8ea2aec7v 550e e5948e 550e 0000550e d145 d145 d145 d145 d145 d145 d145 -7257 d146 d146 d146 * * 2e48 8ea2aec8,8ea2aec8v 5503 e59483 5503 00005503 d146 d146 d146 d146 d146 d146 d146 -7258 d147 d147 d147 * * 2e49 8ea2aec9,8ea2aec9v 550b e5948b 550b 0000550b d147 d147 d147 d147 d147 d147 d147 -7259 d148 d148 d148 * * 2e4a 8ea2aeca,8ea2aecav 5701 e59c81 5701 00005701 d148 d148 d148 d148 d148 d148 d148 -7260 d149 d149 d149 * * 2e4b 8ea2aecb,8ea2aecbv 5702 e59c82 5702 00005702 d149 d149 d149 d149 d149 d149 d149 -7261 d14a d14a d14a * * 2e4c 8ea2aecc,8ea2aeccv 57cc e59f8c 57cc 000057cc d14a d14a d14a d14a d14a d14a d14a -7262 d14b d14b d14b * * 2e4d 8ea2aecd,8ea2aecdv 5832 e5a0b2 5832 00005832 d14b d14b d14b d14b d14b d14b d14b -7263 d14c d14c d14c * * 2e4e 8ea2aece,8ea2aecev 57d5 e59f95 57d5 000057d5 d14c d14c d14c d14c d14c d14c d14c -7264 d14d d14d d14d * * 2e4f 8ea2aecf,8ea2aecfv 57d2 e59f92 57d2 000057d2 d14d d14d d14d d14d d14d d14d d14d -7265 d14e d14e d14e * * 2e50 8ea2aed0,8ea2aed0v 57ba e59eba 57ba 000057ba d14e d14e d14e d14e d14e d14e d14e -7266 d14f d14f d14f * * 2e51 8ea2aed1,8ea2aed1v 57c6 e59f86 57c6 000057c6 d14f d14f d14f d14f d14f d14f d14f -7267 d150 d150 d150 * * 2e52 8ea2aed2,8ea2aed2v 57bd e59ebd 57bd 000057bd d150 d150 d150 d150 d150 d150 d150 -7268 d151 d151 d151 * * 2e53 8ea2aed3,8ea2aed3v 57bc e59ebc 57bc 000057bc d151 d151 d151 d151 d151 d151 d151 -7269 d152 d152 d152 * * 2e54 8ea2aed4,8ea2aed4v 57b8 e59eb8 57b8 000057b8 d152 d152 d152 d152 d152 d152 d152 -7270 d153 d153 d153 * * 2e55 8ea2aed5,8ea2aed5v 57b6 e59eb6 57b6 000057b6 d153 d153 d153 d153 d153 d153 d153 -7271 d154 d154 d154 * * 2e56 8ea2aed6,8ea2aed6v 57bf e59ebf 57bf 000057bf d154 d154 d154 d154 d154 d154 d154 -7272 d155 d155 d155 * * 2e57 8ea2aed7,8ea2aed7v 57c7 e59f87 57c7 000057c7 d155 d155 d155 d155 d155 d155 d155 -7273 d156 d156 d156 * * 2e58 8ea2aed8,8ea2aed8v 57d0 e59f90 57d0 000057d0 d156 d156 d156 d156 d156 d156 d156 -7274 d157 d157 d157 * * 2e59 8ea2aed9,8ea2aed9v 57b9 e59eb9 57b9 000057b9 d157 d157 d157 d157 d157 d157 d157 -7275 d158 d158 d158 * * 2e5a 8ea2aeda,8ea2aedav 57c1 e59f81 57c1 000057c1 d158 d158 d158 d158 d158 d158 d158 -7276 d159 d159 d159 * * 2e5b 8ea2aedb,8ea2aedbv 590e e5a48e 590e 0000590e d159 d159 d159 d159 d159 d159 d159 -7277 d15a d15a d15a * * 2e5c 8ea2aedc,8ea2aedcv 594a e5a58a 594a 0000594a d15a d15a d15a d15a d15a d15a d15a -7278 d15b d15b d15b * * 2e5d 8ea2aedd,8ea2aeddv 5a19 e5a899 5a19 00005a19 d15b d15b d15b d15b d15b d15b d15b -7279 d15c d15c d15c * * 2e5e 8ea2aede,8ea2aedev 5a16 e5a896 5a16 00005a16 d15c d15c d15c d15c d15c d15c d15c -7280 d15d d15d d15d * * 2e5f 8ea2aedf,8ea2aedfv 5a2d e5a8ad 5a2d 00005a2d d15d d15d d15d d15d d15d d15d d15d -7281 d15e d15e d15e * * 2e60 8ea2aee0,8ea2aee0v 5a2e e5a8ae 5a2e 00005a2e d15e d15e d15e d15e d15e d15e d15e -7282 d15f d15f d15f * * 2e61 8ea2aee1,8ea2aee1v 5a15 e5a895 5a15 00005a15 d15f d15f d15f d15f d15f d15f d15f -7283 d160 d160 d160 * * 2e62 8ea2aee2,8ea2aee2v 5a0f e5a88f 5a0f 00005a0f d160 d160 d160 d160 d160 d160 d160 -7284 d161 d161 d161 * * 2e63 8ea2aee3,8ea2aee3v 5a17 e5a897 5a17 00005a17 d161 d161 d161 d161 d161 d161 d161 -7285 d162 d162 d162 * * 2e64 8ea2aee4,8ea2aee4v 5a0a e5a88a 5a0a 00005a0a d162 d162 d162 d162 d162 d162 d162 -7286 d163 d163 d163 * * 2e65 8ea2aee5,8ea2aee5v 5a1e e5a89e 5a1e 00005a1e d163 d163 d163 d163 d163 d163 d163 -7287 d164 d164 d164 * * 2e66 8ea2aee6,8ea2aee6v 5a33 e5a8b3 5a33 00005a33 d164 d164 d164 d164 d164 d164 d164 -7288 d165 d165 d165 * * 2e67 8ea2aee7,8ea2aee7v 5b6c e5adac 5b6c 00005b6c d165 d165 d165 d165 d165 d165 d165 -7289 d166 d166 d166 * * 2e68 8ea2aee8,8ea2aee8v 5ba7 e5aea7 5ba7 00005ba7 d166 d166 d166 d166 d166 d166 d166 -7290 d167 d167 d167 * * 2e69 8ea2aee9,8ea2aee9v 5bad e5aead 5bad 00005bad d167 d167 d167 d167 d167 d167 d167 -7291 d168 d168 d168 * * 2e6a 8ea2aeea,8ea2aeeav 5bac e5aeac 5bac 00005bac d168 d168 d168 d168 d168 d168 d168 -7292 d169 d169 d169 * * 2e6b 8ea2aeeb,8ea2aeebv 5c03 e5b083 5c03 00005c03 d169 d169 d169 d169 d169 d169 d169 -7293 d16a d16a d16a * * 2e6c 8ea2aeec,8ea2aeecv 5c56 e5b196 5c56 00005c56 d16a d16a d16a d16a d16a d16a d16a -7294 d16b d16b d16b * * 2e6d 8ea2aeed,8ea2aeedv 5c54 e5b194 5c54 00005c54 d16b d16b d16b d16b d16b d16b d16b -7295 d16c d16c d16c * * 2e6e 8ea2aeee,8ea2aeeev 5cec e5b3ac 5cec 00005cec d16c d16c d16c d16c d16c d16c d16c -7296 d16d d16d d16d * * 2e6f 8ea2aeef,8ea2aeefv 5cff e5b3bf 5cff 00005cff d16d d16d d16d d16d d16d d16d d16d -7297 d16e d16e d16e * * 2e70 8ea2aef0,8ea2aef0v 5cee e5b3ae 5cee 00005cee d16e d16e d16e d16e d16e d16e d16e -7298 d16f d16f d16f * * 2e71 8ea2aef1,8ea2aef1v 5cf1 e5b3b1 5cf1 00005cf1 d16f d16f d16f d16f d16f d16f d16f -7299 d170 d170 d170 * * 2e72 8ea2aef2,8ea2aef2v 5cf7 e5b3b7 5cf7 00005cf7 d170 d170 d170 d170 d170 d170 d170 -7300 d171 d171 d171 * * 2e73 8ea2aef3,8ea2aef3v 5d00 e5b480 5d00 00005d00 d171 d171 d171 d171 d171 d171 d171 -7301 d172 d172 d172 * * 2e74 8ea2aef4,8ea2aef4v 5cf9 e5b3b9 5cf9 00005cf9 d172 d172 d172 d172 d172 d172 d172 -7302 d173 d173 d173 * * 2e75 8ea2aef5,8ea2aef5v 5e29 e5b8a9 5e29 00005e29 d173 d173 d173 d173 d173 d173 d173 -7303 d174 d174 d174 * * 2e76 8ea2aef6,8ea2aef6v 5e28 e5b8a8 5e28 00005e28 d174 d174 d174 d174 d174 d174 d174 -7304 d175 d175 d175 * * 2e77 8ea2aef7,8ea2aef7v 5ea8 e5baa8 5ea8 00005ea8 d175 d175 d175 d175 d175 d175 d175 -7305 d176 d176 d176 * * 2e78 8ea2aef8,8ea2aef8v 5eae e5baae 5eae 00005eae d176 d176 d176 d176 d176 d176 d176 -7306 d177 d177 d177 * * 2e79 8ea2aef9,8ea2aef9v 5eaa e5baaa 5eaa 00005eaa d177 d177 d177 d177 d177 d177 d177 -7307 d178 d178 d178 * * 2e7a 8ea2aefa,8ea2aefav 5eac e5baac 5eac 00005eac d178 d178 d178 d178 d178 d178 d178 -7308 d179 d179 d179 * * 2e7b 8ea2aefb,8ea2aefbv 5f33 e5bcb3 5f33 00005f33 d179 d179 d179 d179 d179 d179 d179 -7309 d17a d17a d17a * * 2e7c 8ea2aefc,8ea2aefcv 5f30 e5bcb0 5f30 00005f30 d17a d17a d17a d17a d17a d17a d17a -7310 d17b d17b d17b * * 2e7d 8ea2aefd,8ea2aefdv 5f67 e5bda7 5f67 00005f67 d17b d17b d17b d17b d17b d17b d17b -7311 d17c d17c d17c * * 2e7e 8ea2aefe,8ea2aefev 605d e6819d 605d 0000605d d17c d17c d17c d17c d17c d17c d17c -7312 d17d d17d d17d * * 2f21 8ea2afa1,8ea2afa1v 605a e6819a 605a 0000605a d17d d17d d17d d17d d17d d17d d17d -7313 d17e d17e d17e * * 2f22 8ea2afa2,8ea2afa2v 6067 e681a7 6067 00006067 d17e d17e d17e d17e d17e d17e d17e -7314 d1a1 d1a1 d1a1 * * 2f23 8ea2afa3,8ea2afa3v 6041 e68181 6041 00006041 d1a1 d1a1 d1a1 d1a1 d1a1 d1a1 d1a1 -7315 d1a2 d1a2 d1a2 * * 2f24 8ea2afa4,8ea2afa4v 60a2 e682a2 60a2 000060a2 d1a2 d1a2 d1a2 d1a2 d1a2 d1a2 d1a2 -7316 d1a3 d1a3 d1a3 * * 2f25 8ea2afa5,8ea2afa5v 6088 e68288 6088 00006088 d1a3 d1a3 d1a3 d1a3 d1a3 d1a3 d1a3 -7317 d1a4 d1a4 d1a4 * * 2f26 8ea2afa6,8ea2afa6v 6080 e68280 6080 00006080 d1a4 d1a4 d1a4 d1a4 d1a4 d1a4 d1a4 -7318 d1a5 d1a5 d1a5 * * 2f27 8ea2afa7,8ea2afa7v 6092 e68292 6092 00006092 d1a5 d1a5 d1a5 d1a5 d1a5 d1a5 d1a5 -7319 d1a6 d1a6 d1a6 * * 2f28 8ea2afa8,8ea2afa8v 6081 e68281 6081 00006081 d1a6 d1a6 d1a6 d1a6 d1a6 d1a6 d1a6 -7320 d1a7 d1a7 d1a7 * * 2f29 8ea2afa9,8ea2afa9v 609d e6829d 609d 0000609d d1a7 d1a7 d1a7 d1a7 d1a7 d1a7 d1a7 -7321 d1a8 d1a8 d1a8 * * 2f2a 8ea2afaa,8ea2afaav 6083 e68283 6083 00006083 d1a8 d1a8 d1a8 d1a8 d1a8 d1a8 d1a8 -7322 d1a9 d1a9 d1a9 * * 2f2b 8ea2afab,8ea2afabv 6095 e68295 6095 00006095 d1a9 d1a9 d1a9 d1a9 d1a9 d1a9 d1a9 -7323 d1aa d1aa d1aa * * 2f2c 8ea2afac,8ea2afacv 609b e6829b 609b 0000609b d1aa d1aa,fc61 91f5,d1aa d1aa d1aa d1aa d1aa -7324 d1ab d1ab d1ab * * 2f2d 8ea2afad,8ea2afadv 6097 e68297 6097 00006097 d1ab d1ab d1ab d1ab d1ab d1ab d1ab -7325 d1ac d1ac d1ac * * 2f2e 8ea2afae,8ea2afaev 6087 e68287 6087 00006087 d1ac d1ac d1ac d1ac d1ac d1ac d1ac -7326 d1ad d1ad d1ad * * 2f2f 8ea2afaf,8ea2afafv 609c e6829c 609c 0000609c d1ad d1ad d1ad d1ad d1ad d1ad d1ad -7327 d1ae d1ae d1ae * * 2f30 8ea2afb0,8ea2afb0v 608e e6828e 608e 0000608e d1ae d1ae d1ae d1ae d1ae d1ae d1ae -7328 d1af d1af d1af * * 2f31 8ea2afb1,8ea2afb1v 6219 e68899 6219 00006219 d1af d1af d1af d1af d1af d1af d1af -7329 d1b0 d1b0 d1b0 * * 2f32 8ea2afb2,8ea2afb2v 6246 e68986 6246 00006246 d1b0 d1b0 d1b0 d1b0 d1b0 d1b0 d1b0 -7330 d1b1 d1b1 d1b1 * * 2f33 8ea2afb3,8ea2afb3v 62f2 e68bb2 62f2 000062f2 d1b1 d1b1 d1b1 d1b1 d1b1 d1b1 d1b1 -7331 d1b2 d1b2 d1b2 * * 2f34 8ea2afb4,8ea2afb4v 6310 e68c90 6310 00006310 d1b2 d1b2 d1b2 d1b2 d1b2 d1b2 d1b2 -7332 d1b3 d1b3 d1b3 * * 2f35 8ea2afb5,8ea2afb5v 6356 e68d96 6356 00006356 d1b3 d1b3 d1b3 d1b3 d1b3 d1b3 d1b3 -7333 d1b4 d1b4 d1b4 * * 2f36 8ea2afb6,8ea2afb6v 632c e68cac 632c 0000632c d1b4 d1b4 d1b4 d1b4 d1b4 d1b4 d1b4 -7334 d1b5 d1b5 d1b5 * * 2f37 8ea2afb7,8ea2afb7v 6344 e68d84 6344 00006344 d1b5 d1b5 d1b5 d1b5 d1b5 d1b5 d1b5 -7335 d1b6 d1b6 d1b6 * * 2f38 8ea2afb8,8ea2afb8v 6345 e68d85 6345 00006345 d1b6 d1b6 d1b6 d1b6 d1b6 d1b6 d1b6 -7336 d1b7 d1b7 d1b7 * * 2f39 8ea2afb9,8ea2afb9v 6336 e68cb6 6336 00006336 d1b7 d1b7 d1b7 d1b7 d1b7 d1b7 d1b7 -7337 d1b8 d1b8 d1b8 * * 2f3a 8ea2afba,8ea2afbav 6343 e68d83 6343 00006343 d1b8 d1b8 d1b8 d1b8 d1b8 d1b8 d1b8 -7338 d1b9 d1b9 d1b9 * * 2f3b 8ea2afbb,8ea2afbbv 63e4 e68fa4 63e4 000063e4 d1b9 d1b9 d1b9 d1b9 d1b9 d1b9 d1b9 -7339 d1ba d1ba d1ba * * 2f3c 8ea2afbc,8ea2afbcv 6339 e68cb9 6339 00006339 d1ba d1ba d1ba d1ba d1ba d1ba d1ba -7340 d1bb d1bb d1bb * * 2f3d 8ea2afbd,8ea2afbdv 634b e68d8b 634b 0000634b d1bb d1bb d1bb d1bb d1bb d1bb d1bb -7341 d1bc d1bc d1bc * * 2f3e 8ea2afbe,8ea2afbev 634a e68d8a 634a 0000634a d1bc d1bc d1bc d1bc d1bc d1bc d1bc -7342 d1bd d1bd d1bd * * 2f3f 8ea2afbf,8ea2afbfv 633c e68cbc 633c 0000633c d1bd d1bd d1bd d1bd d1bd d1bd d1bd -7343 d1be d1be d1be * * 2f40 8ea2afc0,8ea2afc0v 6329 e68ca9 6329 00006329 d1be d1be d1be d1be d1be d1be d1be -7344 d1bf d1bf d1bf * * 2f41 8ea2afc1,8ea2afc1v 6341 e68d81 6341 00006341 d1bf d1bf d1bf d1bf d1bf d1bf d1bf -7345 d1c0 d1c0 d1c0 * * 2f42 8ea2afc2,8ea2afc2v 6334 e68cb4 6334 00006334 d1c0 d1c0 d1c0 d1c0 d1c0 d1c0 d1c0 -7346 d1c1 d1c1 d1c1 * * 2f43 8ea2afc3,8ea2afc3v 6358 e68d98 6358 00006358 d1c1 d1c1 d1c1 d1c1 d1c1 d1c1 d1c1 -7347 d1c2 d1c2 d1c2 * * 2f44 8ea2afc4,8ea2afc4v 6354 e68d94 6354 00006354 d1c2 d1c2 d1c2 d1c2 d1c2 d1c2 d1c2 -7348 d1c3 d1c3 d1c3 * * 2f45 8ea2afc5,8ea2afc5v 6359 e68d99 6359 00006359 d1c3 d1c3 d1c3 d1c3 d1c3 d1c3 d1c3 -7349 d1c4 d1c4 d1c4 * * 2f46 8ea2afc6,8ea2afc6v 632d e68cad 632d 0000632d d1c4 d1c4 d1c4 d1c4 d1c4 d1c4 d1c4 -7350 d1c5 d1c5 d1c5 * * 2f47 8ea2afc7,8ea2afc7v 6347 e68d87 6347 00006347 d1c5 d1c5 d1c5 d1c5 d1c5 d1c5 d1c5 -7351 d1c6 d1c6 d1c6 * * 2f48 8ea2afc8,8ea2afc8v 6333 e68cb3 6333 00006333 d1c6 d1c6 d1c6 d1c6 d1c6 d1c6 d1c6 -7352 d1c7 d1c7 d1c7 * * 2f49 8ea2afc9,8ea2afc9v 635a e68d9a 635a 0000635a d1c7 d1c7 d1c7 d1c7 d1c7 d1c7 d1c7 -7353 d1c8 d1c8 d1c8 * * 2f4a 8ea2afca,8ea2afcav 6351 e68d91 6351 00006351 d1c8 d1c8 d1c8 d1c8 d1c8 d1c8 d1c8 -7354 d1c9 d1c9 d1c9 * * 2f4b 8ea2afcb,8ea2afcbv 6338 e68cb8 6338 00006338 d1c9 d1c9 d1c9 d1c9 d1c9 d1c9 d1c9 -7355 d1ca d1ca d1ca * * 2f4c 8ea2afcc,8ea2afccv 6357 e68d97 6357 00006357 d1ca d1ca d1ca d1ca d1ca d1ca d1ca -7356 d1cb d1cb d1cb * * 2f4d 8ea2afcd,8ea2afcdv 6340 e68d80 6340 00006340 d1cb d1cb d1cb d1cb d1cb d1cb d1cb -7357 d1cc d1cc d1cc * * 2f4e 8ea2afce,8ea2afcev 6348 e68d88 6348 00006348 d1cc d1cc d1cc d1cc d1cc d1cc d1cc -7358 d1cd d1cd d1cd * * 2f4f 8ea2afcf,8ea2afcfv 654a e6958a 654a 0000654a d1cd d1cd d1cd d1cd d1cd d1cd d1cd -7359 d1ce d1ce d1ce * * 2f50 8ea2afd0,8ea2afd0v 6546 e69586 6546 00006546 d1ce d1ce d1ce d1ce d1ce d1ce d1ce -7360 d1cf d1cf d1cf * * 2f51 8ea2afd1,8ea2afd1v 65c6 e69786 65c6 000065c6 d1cf d1cf d1cf d1cf d1cf d1cf d1cf -7361 d1d0 d1d0 d1d0 * * 2f52 8ea2afd2,8ea2afd2v 65c3 e69783 65c3 000065c3 d1d0 d1d0 d1d0 d1d0 d1d0 d1d0 d1d0 -7362 d1d1 d1d1 d1d1 * * 2f53 8ea2afd3,8ea2afd3v 65c4 e69784 65c4 000065c4 d1d1 d1d1 d1d1 d1d1 d1d1 d1d1 d1d1 -7363 d1d2 d1d2 d1d2 * * 2f54 8ea2afd4,8ea2afd4v 65c2 e69782 65c2 000065c2 d1d2 d1d2 d1d2 d1d2 d1d2 d1d2 d1d2 -7364 d1d3 d1d3 d1d3 * * 2f55 8ea2afd5,8ea2afd5v 664a e6998a 664a 0000664a d1d3 d1d3 d1d3 d1d3 d1d3 d1d3 d1d3 -7365 d1d4 d1d4 d1d4 * * 2f56 8ea2afd6,8ea2afd6v 665f e6999f 665f 0000665f d1d4 d1d4 d1d4 d1d4 d1d4 d1d4 d1d4 -7366 d1d5 d1d5 d1d5 * * 2f57 8ea2afd7,8ea2afd7v 6647 e69987 6647 00006647 d1d5 d1d5 d1d5 d1d5 d1d5 d1d5 d1d5 -7367 d1d6 d1d6 d1d6 * * 2f58 8ea2afd8,8ea2afd8v 6651 e69991 6651 00006651 d1d6 d1d6 d1d6 d1d6 d1d6 d1d6 d1d6 -7368 d1d7 d1d7 d1d7 * * 2f59 8ea2afd9,8ea2afd9v 6712 e69c92 6712 00006712 d1d7 d1d7 d1d7 d1d7 d1d7 d1d7 d1d7 -7369 d1d8 d1d8 d1d8 * * 2f5a 8ea2afda,8ea2afdav 6713 e69c93 6713 00006713 d1d8 d1d8 d1d8 d1d8 d1d8 d1d8 d1d8 -7370 d1d9 d1d9 d1d9 * * 2f5b 8ea2afdb,8ea2afdbv 681f e6a09f 681f 0000681f d1d9 d1d9 d1d9 d1d9 d1d9 d1d9 d1d9 -7371 d1da d1da d1da * * 2f5c 8ea2afdc,8ea2afdcv 681a e6a09a 681a 0000681a d1da d1da d1da d1da d1da d1da d1da -7372 d1db d1db d1db * * 2f5d 8ea2afdd,8ea2afddv 6849 e6a189 6849 00006849 d1db d1db d1db d1db d1db d1db d1db -7373 d1dc d1dc d1dc * * 2f5e 8ea2afde,8ea2afdev 6832 e6a0b2 6832 00006832 d1dc d1dc d1dc d1dc d1dc d1dc d1dc -7374 d1dd d1dd d1dd * * 2f5f 8ea2afdf,8ea2afdfv 6833 e6a0b3 6833 00006833 d1dd d1dd d1dd d1dd d1dd d1dd d1dd -7375 d1de d1de d1de * * 2f60 8ea2afe0,8ea2afe0v 683b e6a0bb 683b 0000683b d1de d1de d1de d1de d1de d1de d1de -7376 d1df d1df d1df * * 2f61 8ea2afe1,8ea2afe1v 684b e6a18b 684b 0000684b d1df d1df d1df d1df d1df d1df d1df -7377 d1e0 d1e0 d1e0 * * 2f62 8ea2afe2,8ea2afe2v 684f e6a18f 684f 0000684f d1e0 d1e0 d1e0 d1e0 d1e0 d1e0 d1e0 -7378 d1e1 d1e1 d1e1 * * 2f63 8ea2afe3,8ea2afe3v 6816 e6a096 6816 00006816 d1e1 d1e1 d1e1 d1e1 d1e1 d1e1 d1e1 -7379 d1e2 d1e2 d1e2 * * 2f64 8ea2afe4,8ea2afe4v 6831 e6a0b1 6831 00006831 d1e2 d1e2 d1e2 d1e2 d1e2 d1e2 d1e2 -7380 d1e3 d1e3 d1e3 * * 2f65 8ea2afe5,8ea2afe5v 681c e6a09c 681c 0000681c d1e3 d1e3 d1e3 d1e3 d1e3 d1e3 d1e3 -7381 d1e4 d1e4 d1e4 * * 2f66 8ea2afe6,8ea2afe6v 6835 e6a0b5 6835 00006835 d1e4 d1e4 d1e4 d1e4 d1e4 d1e4 d1e4 -7382 d1e5 d1e5 d1e5 * * 2f67 8ea2afe7,8ea2afe7v 682b e6a0ab 682b 0000682b d1e5 d1e5 d1e5 d1e5 d1e5 d1e5 d1e5 -7383 d1e6 d1e6 d1e6 * * 2f68 8ea2afe8,8ea2afe8v 682d e6a0ad 682d 0000682d d1e6 d1e6 d1e6 d1e6 d1e6 d1e6 d1e6 -7384 d1e7 d1e7 d1e7 * * 2f69 8ea2afe9,8ea2afe9v 682f e6a0af 682f 0000682f d1e7 d1e7 d1e7 d1e7 d1e7 d1e7 d1e7 -7385 d1e8 d1e8 d1e8 * * 2f6a 8ea2afea,8ea2afeav 684e e6a18e 684e 0000684e d1e8 d1e8 d1e8 d1e8 d1e8 d1e8 d1e8 -7386 d1e9 d1e9 d1e9 * * 2f6b 8ea2afeb,8ea2afebv 6844 e6a184 6844 00006844 d1e9 d1e9 d1e9 d1e9 d1e9 d1e9 d1e9 -7387 d1ea d1ea d1ea * * 2f6c 8ea2afec,8ea2afecv 6834 e6a0b4 6834 00006834 d1ea d1ea d1ea d1ea d1ea d1ea d1ea -7388 d1eb d1eb d1eb * * 2f6d 8ea2afed,8ea2afedv 681d e6a09d 681d 0000681d d1eb d1eb d1eb d1eb d1eb d1eb d1eb -7389 d1ec d1ec d1ec * * 2f6e 8ea2afee,8ea2afeev 6812 e6a092 6812 00006812 d1ec d1ec d1ec d1ec d1ec d1ec d1ec -7390 d1ed d1ed d1ed * * 2f6f 8ea2afef,8ea2afefv 6814 e6a094 6814 00006814 d1ed d1ed d1ed d1ed d1ed d1ed d1ed -7391 d1ee d1ee d1ee * * 2f70 8ea2aff0,8ea2aff0v 6826 e6a0a6 6826 00006826 d1ee d1ee d1ee d1ee d1ee d1ee d1ee -7392 d1ef d1ef d1ef * * 2f71 8ea2aff1,8ea2aff1v 6828 e6a0a8 6828 00006828 d1ef d1ef d1ef d1ef d1ef d1ef d1ef -7393 d1f0 d1f0 d1f0 * * 2f72 8ea2aff2,8ea2aff2v 682e e6a0ae 682e 0000682e d1f0 d1f0 d1f0 d1f0 d1f0 d1f0 d1f0 -7394 d1f1 d1f1 d1f1 * * 2f73 8ea2aff3,8ea2aff3v 684d e6a18d 684d 0000684d d1f1 d1f1 d1f1 d1f1 d1f1 d1f1 d1f1 -7395 d1f2 d1f2 d1f2 * * 2f74 8ea2aff4,8ea2aff4v 683a e6a0ba 683a 0000683a d1f2 d1f2 d1f2 d1f2 d1f2 d1f2 d1f2 -7396 d1f3 d1f3 d1f3 * * 2f75 8ea2aff5,8ea2aff5v 6825 e6a0a5 6825 00006825 d1f3 d1f3 d1f3 d1f3 d1f3 d1f3 d1f3 -7397 d1f4 d1f4 d1f4 * * 2f76 8ea2aff6,8ea2aff6v 6820 e6a0a0 6820 00006820 d1f4 d1f4 d1f4 d1f4 d1f4 d1f4 d1f4 -7398 d1f5 d1f5 d1f5 * * 2f77 8ea2aff7,8ea2aff7v 6b2c e6acac 6b2c 00006b2c d1f5 d1f5 d1f5 d1f5 d1f5 d1f5 d1f5 -7399 d1f6 d1f6 d1f6 * * 2f78 8ea2aff8,8ea2aff8v 6b2f e6acaf 6b2f 00006b2f d1f6 d1f6 d1f6 d1f6 d1f6 d1f6 d1f6 -7400 d1f7 d1f7 d1f7 * * 2f79 8ea2aff9,8ea2aff9v 6b2d e6acad 6b2d 00006b2d d1f7 d1f7 d1f7 d1f7 d1f7 d1f7 d1f7 -7401 d1f8 d1f8 d1f8 * * 2f7a 8ea2affa,8ea2affav 6b31 e6acb1 6b31 00006b31 d1f8 d1f8 d1f8 d1f8 d1f8 d1f8 d1f8 -7402 d1f9 d1f9 d1f9 * * 2f7b 8ea2affb,8ea2affbv 6b34 e6acb4 6b34 00006b34 d1f9 d1f9 d1f9 d1f9 d1f9 d1f9 d1f9 -7403 d1fa d1fa d1fa * * 2f7c 8ea2affc,8ea2affcv 6b6d e6adad 6b6d 00006b6d d1fa d1fa d1fa d1fa d1fa d1fa d1fa -7404 d1fb d1fb d1fb * * 2f7d 8ea2affd,8ea2affdv 8082 e88282 8082 00008082 d1fb d1fb d1fb d1fb d1fb d1fb d1fb -7405 d1fc d1fc d1fc * * 2f7e 8ea2affe,8ea2affev 6b88 e6ae88 6b88 00006b88 d1fc d1fc d1fc d1fc d1fc d1fc d1fc -7406 d1fd d1fd d1fd * * 3021 8ea2b0a1,8ea2b0a1v 6be6 e6afa6 6be6 00006be6 d1fd d1fd d1fd d1fd d1fd d1fd d1fd -7407 d1fe d1fe d1fe * * 3022 8ea2b0a2,8ea2b0a2v 6be4 e6afa4 6be4 00006be4 d1fe d1fe d1fe d1fe d1fe d1fe d1fe -7408 d240 d240 d240 * * 3023 8ea2b0a3,8ea2b0a3v 6be8 e6afa8 6be8 00006be8 d240 d240 d240 d240 d240 d240 d240 -7409 d241 d241 d241 * * 3024 8ea2b0a4,8ea2b0a4v 6be3 e6afa3 6be3 00006be3 d241 d241 d241 d241 d241 d241 d241 -7410 d242 d242 d242 * * 3025 8ea2b0a5,8ea2b0a5v 6be2 e6afa2 6be2 00006be2 d242 d242 d242 d242 d242 d242 d242 -7411 d243 d243 d243 * * 3026 8ea2b0a6,8ea2b0a6v 6be7 e6afa7 6be7 00006be7 d243 d243 d243 d243 d243 d243 d243 -7412 d244 d244 d244 * * 3027 8ea2b0a7,8ea2b0a7v 6c25 e6b0a5 6c25 00006c25 d244 d244 d244 d244 d244 d244 d244 -7413 d245 d245 d245 * * 3028 8ea2b0a8,8ea2b0a8v 6d7a e6b5ba 6d7a 00006d7a d245 d245 d245 d245 d245 d245 d245 -7414 d246 d246 d246 * * 3029 8ea2b0a9,8ea2b0a9v 6d63 e6b5a3 6d63 00006d63 d246 d246 d246 d246 d246 d246 d246 -7415 d247 d247 d247 * * 302a 8ea2b0aa,8ea2b0aav 6d64 e6b5a4 6d64 00006d64 d247 d247 d247 d247 d247 d247 d247 -7416 d248 d248 d248 * * 302b 8ea2b0ab,8ea2b0abv 6d76 e6b5b6 6d76 00006d76 d248 d248 d248 d248 d248 d248 d248 -7417 d249 d249 d249 * * 302c 8ea2b0ac,8ea2b0acv 6d0d e6b48d 6d0d 00006d0d d249 d249 d249 d249 d249 d249 d249 -7418 d24a d24a d24a * * 302d 8ea2b0ad,8ea2b0adv 6d61 e6b5a1 6d61 00006d61 d24a d24a d24a d24a d24a d24a d24a -7419 d24b d24b d24b * * 302e 8ea2b0ae,8ea2b0aev 6d92 e6b692 6d92 00006d92 d24b d24b d24b d24b d24b d24b d24b -7420 d24c d24c d24c * * 302f 8ea2b0af,8ea2b0afv 6d58 e6b598 6d58 00006d58 d24c d24c d24c d24c d24c d24c d24c -7421 d24d d24d d24d * * 3030 8ea2b0b0,8ea2b0b0v 6d62 e6b5a2 6d62 00006d62 d24d d24d d24d d24d d24d d24d d24d -7422 d24e d24e d24e * * 3031 8ea2b0b1,8ea2b0b1v 6d6d e6b5ad 6d6d 00006d6d d24e d24e d24e d24e d24e d24e d24e -7423 d24f d24f d24f * * 3032 8ea2b0b2,8ea2b0b2v 6d6f e6b5af 6d6f 00006d6f d24f d24f d24f d24f d24f d24f d24f -7424 d250 d250 d250 * * 3033 8ea2b0b3,8ea2b0b3v 6d91 e6b691 6d91 00006d91 d250 d250 d250 d250 d250 d250 d250 -7425 d251 d251 d251 * * 3034 8ea2b0b4,8ea2b0b4v 6d8d e6b68d 6d8d 00006d8d d251 d251 d251 d251 d251 d251 d251 -7426 d252 d252 d252 * * 3035 8ea2b0b5,8ea2b0b5v 6def e6b7af 6def 00006def d252 d252 d252 d252 d252 d252 d252 -7427 d253 d253 d253 * * 3036 8ea2b0b6,8ea2b0b6v 6d7f e6b5bf 6d7f 00006d7f d253 d253 d253 d253 d253 d253 d253 -7428 d254 d254 d254 * * 3037 8ea2b0b7,8ea2b0b7v 6d86 e6b686 6d86 00006d86 d254 d254 d254 d254 d254 d254 d254 -7429 d255 d255 d255 * * 3038 8ea2b0b8,8ea2b0b8v 6d5e e6b59e 6d5e 00006d5e d255 d255 d255 d255 d255 d255 d255 -7430 d256 d256 d256 * * 3039 8ea2b0b9,8ea2b0b9v 6d67 e6b5a7,ee9b86 6d67,e6c6 00006d67,0000e6c6 9447,d256 d256 d256 d256 d256 d256 9447,d256 -7431 d257 d257 d257 * * 303a 8ea2b0ba,8ea2b0bav 6d60 e6b5a0 6d60 00006d60 d257 d257 d257 d257 d257 d257 d257 -7432 d258 d258 d258 * * 303b 8ea2b0bb,8ea2b0bbv 6d97 e6b697 6d97 00006d97 d258 d258 d258 d258 d258 d258 d258 -7433 d259 d259 d259 * * 303c 8ea2b0bc,8ea2b0bcv 6d70 e6b5b0 6d70 00006d70 d259 d259 d259 d259 d259 d259 d259 -7434 d25a d25a d25a * * 303d 8ea2b0bd,8ea2b0bdv 6d7c e6b5bc 6d7c 00006d7c d25a d25a d25a d25a d25a d25a d25a -7435 d25b d25b d25b * * 303e 8ea2b0be,8ea2b0bev 6d5f e6b59f 6d5f 00006d5f d25b d25b d25b d25b d25b d25b d25b -7436 d25c d25c d25c * * 303f 8ea2b0bf,8ea2b0bfv 6d82 e6b682 6d82 00006d82 d25c d25c d25c d25c d25c d25c d25c -7437 d25d d25d d25d * * 3040 8ea2b0c0,8ea2b0c0v 6d98 e6b698 6d98 00006d98 d25d d25d d25d d25d d25d d25d d25d -7438 d25e d25e d25e * * 3041 8ea2b0c1,8ea2b0c1v 6d2f e6b4af 6d2f 00006d2f d25e d25e d25e d25e d25e d25e d25e -7439 d25f d25f d25f * * 3042 8ea2b0c2,8ea2b0c2v 6d68 e6b5a8 6d68 00006d68 d25f d25f d25f d25f d25f d25f d25f -7440 d260 d260 d260 * * 3043 8ea2b0c3,8ea2b0c3v 6d8b e6b68b 6d8b 00006d8b d260 d260 d260 d260 d260 d260 d260 -7441 d261 d261 d261 * * 3044 8ea2b0c4,8ea2b0c4v 6d7e e6b5be 6d7e 00006d7e d261 d261 d261 d261 d261 d261 d261 -7442 d262 d262 d262 * * 3045 8ea2b0c5,8ea2b0c5v 6d80 e6b680 6d80 00006d80 d262 d262 d262 d262 d262 d262 d262 -7443 d263 d263 d263 * * 3046 8ea2b0c6,8ea2b0c6v 6d84 e6b684 6d84 00006d84 d263 d263 d263 d263 d263 d263 d263 -7444 d264 d264 d264 * * 3047 8ea2b0c7,8ea2b0c7v 6d16 e6b496 6d16 00006d16 d264 d264 d264 d264 d264 d264 d264 -7445 d265 d265 d265 * * 3048 8ea2b0c8,8ea2b0c8v 6d83 e6b683 6d83 00006d83 d265 d265 d265 d265 d265 d265 d265 -7446 d266 d266 d266 * * 3049 8ea2b0c9,8ea2b0c9v 6d7b e6b5bb 6d7b 00006d7b d266 d266 d266 d266 d266 d266 d266 -7447 d267 d267 d267 * * 304a 8ea2b0ca,8ea2b0cav 6d7d e6b5bd 6d7d 00006d7d d267 d267 d267 d267 d267 d267 d267 -7448 d268 d268 d268 * * 304b 8ea2b0cb,8ea2b0cbv 6d75 e6b5b5 6d75 00006d75 d268 d268 d268 d268 d268 d268 d268 -7449 d269 d269 d269 * * 304c 8ea2b0cc,8ea2b0ccv 6d90 e6b690 6d90 00006d90 d269 d269 d269 d269 d269 d269 d269 -7450 d26a d26a d26a * * 304d 8ea2b0cd,8ea2b0cdv 70dc e7839c 70dc 000070dc d26a d26a d26a d26a d26a d26a d26a -7451 d26b d26b d26b * * 304e 8ea2b0ce,8ea2b0cev 70d3 e78393 70d3 000070d3 d26b d26b d26b d26b d26b d26b d26b -7452 d26c d26c d26c * * 304f 8ea2b0cf,8ea2b0cfv 70d1 e78391 70d1 000070d1 d26c d26c d26c d26c d26c d26c d26c -7453 d26d d26d d26d * * 3050 8ea2b0d0,8ea2b0d0v 70dd e7839d 70dd 000070dd d26d d26d d26d d26d d26d d26d d26d -7454 d26e d26e d26e * * 3051 8ea2b0d1,8ea2b0d1v 70cb e7838b 70cb 000070cb d26e d26e d26e d26e d26e d26e d26e -7455 d26f d26f d26f * * 3052 8ea2b0d2,8ea2b0d2v 7f39 e7bcb9 7f39 00007f39 d26f d26f d26f d26f d26f d26f d26f -7456 d270 d270 d270 * * 3053 8ea2b0d3,8ea2b0d3v 70e2 e783a2 70e2 000070e2 d270 d270 d270 d270 d270 d270 d270 -7457 d271 d271 d271 * * 3054 8ea2b0d4,8ea2b0d4v 70d7 e78397 70d7 000070d7 d271 d271 d271 d271 d271 d271 d271 -7458 d272 d272 d272 * * 3055 8ea2b0d5,8ea2b0d5v 70d2 e78392 70d2 000070d2 d272 d272 d272 d272 d272 d272 d272 -7459 d273 d273 d273 * * 3056 8ea2b0d6,8ea2b0d6v 70de e7839e 70de 000070de d273 d273 d273 d273 d273 d273 d273 -7460 d274 d274 d274 * * 3057 8ea2b0d7,8ea2b0d7v 70e0 e783a0 70e0 000070e0 d274 d274 d274 d274 d274 d274 d274 -7461 d275 d275 d275 * * 3058 8ea2b0d8,8ea2b0d8v 70d4 e78394 70d4 000070d4 d275 d275 d275 d275 d275 d275 d275 -7462 d276 d276 d276 * * 3059 8ea2b0d9,8ea2b0d9v 70cd e7838d 70cd 000070cd d276 d276 d276 d276 d276 d276 d276 -7463 d277 d277 d277 * * 305a 8ea2b0da,8ea2b0dav 70c5 e78385 70c5 000070c5 d277 d277 d277 d277 d277 d277 d277 -7464 d278 d278 d278 * * 305b 8ea2b0db,8ea2b0dbv 70c6 e78386 70c6 000070c6 d278 d278 d278 d278 d278 d278 d278 -7465 d279 d279 d279 * * 305c 8ea2b0dc,8ea2b0dcv 70c7 e78387 70c7 000070c7 d279 d279 d279 d279 d279 d279 d279 -7466 d27a d27a d27a * * 305d 8ea2b0dd,8ea2b0ddv 70da e7839a 70da 000070da d27a d27a d27a d27a d27a d27a d27a -7467 d27b d27b d27b * * 305e 8ea2b0de,8ea2b0dev 70ce e7838e 70ce 000070ce d27b d27b d27b d27b d27b d27b d27b -7468 d27c d27c d27c * * 305f 8ea2b0df,8ea2b0dfv 70e1 e783a1 70e1 000070e1 d27c d27c d27c d27c d27c d27c d27c -7469 d27d d27d d27d * * 3060 8ea2b0e0,8ea2b0e0v 7242 e78982 7242 00007242 d27d d27d d27d d27d d27d d27d d27d -7470 d27e d27e d27e * * 3061 8ea2b0e1,8ea2b0e1v 7278 e789b8 7278 00007278 d27e d27e d27e d27e d27e d27e d27e -7471 d2a1 d2a1 d2a1 * * 3062 8ea2b0e2,8ea2b0e2v 7277 e789b7 7277 00007277 d2a1 d2a1 d2a1 d2a1 d2a1 d2a1 d2a1 -7472 d2a2 d2a2 d2a2 * * 3063 8ea2b0e3,8ea2b0e3v 7276 e789b6 7276 00007276 d2a2 d2a2 d2a2 d2a2 d2a2 d2a2 d2a2 -7473 d2a3 d2a3 d2a3 * * 3064 8ea2b0e4,8ea2b0e4v 7300 e78c80 7300 00007300 d2a3 d2a3 d2a3 d2a3 d2a3 d2a3 d2a3 -7474 d2a4 d2a4 d2a4 * * 3065 8ea2b0e5,8ea2b0e5v 72fa e78bba 72fa 000072fa d2a4 d2a4 d2a4 d2a4 d2a4 d2a4 d2a4 -7475 d2a5 d2a5 d2a5 * * 3066 8ea2b0e6,8ea2b0e6v 72f4 e78bb4 72f4 000072f4 d2a5 d2a5 d2a5 d2a5 d2a5 d2a5 d2a5 -7476 d2a6 d2a6 d2a6 * * 3067 8ea2b0e7,8ea2b0e7v 72fe e78bbe 72fe 000072fe d2a6 d2a6 d2a6 d2a6 d2a6 d2a6 d2a6 -7477 d2a7 d2a7 d2a7 * * 3068 8ea2b0e8,8ea2b0e8v 72f6 e78bb6 72f6 000072f6 d2a7 d2a7 d2a7 d2a7 d2a7 d2a7 d2a7 -7478 d2a8 d2a8 d2a8 * * 3069 8ea2b0e9,8ea2b0e9v 72f3 e78bb3 72f3 000072f3 d2a8 d2a8 d2a8 d2a8 d2a8 d2a8 d2a8 -7479 d2a9 d2a9 d2a9 * * 306a 8ea2b0ea,8ea2b0eav 72fb e78bbb 72fb 000072fb d2a9 d2a9 d2a9 d2a9 d2a9 d2a9 d2a9 -7480 d2aa d2aa d2aa * * 306b 8ea2b0eb,8ea2b0ebv 7301 e78c81 7301 00007301 d2aa d2aa d2aa d2aa d2aa d2aa d2aa -7481 d2ab d2ab d2ab * * 306c 8ea2b0ec,8ea2b0ecv 73d3 e78f93 73d3 000073d3 d2ab d2ab d2ab d2ab d2ab d2ab d2ab -7482 d2ac d2ac d2ac * * 306d 8ea2b0ed,8ea2b0edv 73d9 e78f99 73d9 000073d9 d2ac d2ac d2ac d2ac d2ac d2ac d2ac -7483 d2ad d2ad d2ad * * 306e 8ea2b0ee,8ea2b0eev 73e5 e78fa5 73e5 000073e5 d2ad d2ad d2ad d2ad d2ad d2ad d2ad -7484 d2ae d2ae d2ae * * 306f 8ea2b0ef,8ea2b0efv 73d6 e78f96 73d6 000073d6 d2ae d2ae d2ae d2ae d2ae d2ae d2ae -7485 d2af d2af d2af * * 3070 8ea2b0f0,8ea2b0f0v 73bc e78ebc 73bc 000073bc d2af d2af d2af d2af d2af d2af d2af -7486 d2b0 d2b0 d2b0 * * 3071 8ea2b0f1,8ea2b0f1v 73e7 e78fa7 73e7 000073e7 d2b0 d2b0 d2b0 d2b0 d2b0 d2b0 d2b0 -7487 d2b1 d2b1 d2b1 * * 3072 8ea2b0f2,8ea2b0f2v 73e3 e78fa3 73e3 000073e3 d2b1 d2b1 d2b1 d2b1 d2b1 d2b1 d2b1 -7488 d2b2 d2b2 d2b2 * * 3073 8ea2b0f3,8ea2b0f3v 73e9 e78fa9 73e9 000073e9 d2b2 d2b2 d2b2 d2b2 d2b2 d2b2 d2b2 -7489 d2b3 d2b3 d2b3 * * 3074 8ea2b0f4,8ea2b0f4v 73dc e78f9c 73dc 000073dc d2b3 d2b3 d2b3 d2b3 d2b3 d2b3 d2b3 -7490 d2b4 d2b4 d2b4 * * 3075 8ea2b0f5,8ea2b0f5v 73d2 e78f92 73d2 000073d2 d2b4 d2b4 d2b4 d2b4 d2b4 d2b4 d2b4 -7491 d2b5 d2b5 d2b5 * * 3076 8ea2b0f6,8ea2b0f6v 73db e78f9b 73db 000073db d2b5 d2b5 d2b5 d2b5 d2b5 d2b5 d2b5 -7492 d2b6 d2b6 d2b6 * * 3077 8ea2b0f7,8ea2b0f7v 73d4 e78f94 73d4 000073d4 d2b6 d2b6 d2b6 d2b6 d2b6 d2b6 d2b6 -7493 d2b7 d2b7 d2b7 * * 3078 8ea2b0f8,8ea2b0f8v 73dd e78f9d 73dd 000073dd d2b7 d2b7 d2b7 d2b7 d2b7 d2b7 d2b7 -7494 d2b8 d2b8 d2b8 * * 3079 8ea2b0f9,8ea2b0f9v 73da e78f9a 73da 000073da d2b8 d2b8 d2b8 d2b8 d2b8 d2b8 d2b8 -7495 d2b9 d2b9 d2b9 * * 307a 8ea2b0fa,8ea2b0fav 73d7 e78f97 73d7 000073d7 d2b9 d2b9 d2b9 d2b9 d2b9 d2b9 d2b9 -7496 d2ba d2ba d2ba * * 307b 8ea2b0fb,8ea2b0fbv 73d8 e78f98 73d8 000073d8 d2ba d2ba d2ba d2ba d2ba d2ba d2ba -7497 d2bb d2bb d2bb * * 307c 8ea2b0fc,8ea2b0fcv 73e8 e78fa8 73e8 000073e8 d2bb d2bb d2bb d2bb d2bb d2bb d2bb -7498 d2bc d2bc d2bc * * 307d 8ea2b0fd,8ea2b0fdv 74de e7939e 74de 000074de d2bc d2bc d2bc d2bc d2bc d2bc d2bc -7499 d2bd d2bd d2bd * * 307e 8ea2b0fe,8ea2b0fev 74df e7939f 74df 000074df d2bd d2bd d2bd d2bd d2bd d2bd d2bd -7500 d2be d2be d2be * * 3121 8ea2b1a1,8ea2b1a1v 74f4 e793b4 74f4 000074f4 d2be d2be d2be d2be d2be d2be d2be -7501 d2bf d2bf d2bf * * 3122 8ea2b1a2,8ea2b1a2v 74f5 e793b5 74f5 000074f5 d2bf d2bf d2bf d2bf d2bf d2bf d2bf -7502 d2c0 d2c0 d2c0 * * 3123 8ea2b1a3,8ea2b1a3v 7521 e794a1 7521 00007521 d2c0 d2c0 d2c0 d2c0 d2c0 d2c0 d2c0 -7503 d2c1 d2c1 d2c1 * * 3124 8ea2b1a4,8ea2b1a4v 755b e7959b 755b 0000755b d2c1 d2c1 d2c1 d2c1 d2c1 d2c1 d2c1 -7504 d2c2 d2c2 d2c2 * * 3125 8ea2b1a5,8ea2b1a5v 755f e7959f 755f 0000755f d2c2 d2c2 d2c2 d2c2 d2c2 d2c2 d2c2 -7505 d2c3 d2c3 d2c3 * * 3126 8ea2b1a6,8ea2b1a6v 75b0 e796b0 75b0 000075b0 d2c3 d2c3 d2c3 d2c3 d2c3 d2c3 d2c3 -7506 d2c4 d2c4 d2c4 * * 3127 8ea2b1a7,8ea2b1a7v 75c1 e79781 75c1 000075c1 d2c4 d2c4 d2c4 d2c4 d2c4 d2c4 d2c4 -7507 d2c5 d2c5 d2c5 * * 3128 8ea2b1a8,8ea2b1a8v 75bb e796bb 75bb 000075bb d2c5 d2c5 d2c5 d2c5 d2c5 d2c5 d2c5 -7508 d2c6 d2c6 d2c6 * * 3129 8ea2b1a9,8ea2b1a9v 75c4 e79784 75c4 000075c4 d2c6 d2c6 d2c6 d2c6 d2c6 d2c6 d2c6 -7509 d2c7 d2c7 d2c7 * * 312a 8ea2b1aa,8ea2b1aav 75c0 e79780 75c0 000075c0 d2c7 d2c7 d2c7 d2c7 d2c7 d2c7 d2c7 -7510 d2c8 d2c8 d2c8 * * 312b 8ea2b1ab,8ea2b1abv 75bf e796bf 75bf 000075bf d2c8 d2c8 d2c8 d2c8 d2c8 d2c8 d2c8 -7511 d2c9 d2c9 d2c9 * * 312c 8ea2b1ac,8ea2b1acv 75b6 e796b6 75b6 000075b6 d2c9 d2c9 d2c9 d2c9 d2c9 d2c9 d2c9 -7512 d2ca d2ca d2ca * * 312d 8ea2b1ad,8ea2b1adv 75ba e796ba 75ba 000075ba d2ca d2ca d2ca d2ca d2ca d2ca d2ca -7513 d2cb d2cb d2cb * * 312e 8ea2b1ae,8ea2b1aev 768a e79a8a 768a 0000768a d2cb d2cb d2cb d2cb d2cb d2cb d2cb -7514 d2cc d2cc d2cc * * 312f 8ea2b1af,8ea2b1afv 76c9 e79b89 76c9 000076c9 d2cc d2cc d2cc d2cc d2cc d2cc d2cc -7515 d2cd d2cd d2cd * * 3130 8ea2b1b0,8ea2b1b0v 771d e79c9d 771d 0000771d d2cd d2cd d2cd d2cd d2cd d2cd d2cd -7516 d2ce d2ce d2ce * * 3131 8ea2b1b1,8ea2b1b1v 771b e79c9b 771b 0000771b d2ce d2ce d2ce d2ce d2ce d2ce d2ce -7517 d2cf d2cf d2cf * * 3132 8ea2b1b2,8ea2b1b2v 7710 e79c90 7710 00007710 d2cf d2cf d2cf d2cf d2cf d2cf d2cf -7518 d2d0 d2d0 d2d0 * * 3133 8ea2b1b3,8ea2b1b3v 7713 e79c93 7713 00007713 d2d0 d2d0 d2d0 d2d0 d2d0 d2d0 d2d0 -7519 d2d1 d2d1 d2d1 * * 3134 8ea2b1b4,8ea2b1b4v 7712 e79c92 7712 00007712 d2d1 d2d1 d2d1 d2d1 d2d1 d2d1 d2d1 -7520 d2d2 d2d2 d2d2 * * 3135 8ea2b1b5,8ea2b1b5v 7723 e79ca3 7723 00007723 d2d2 d2d2 d2d2 d2d2 d2d2 d2d2 d2d2 -7521 d2d3 d2d3 d2d3 * * 3136 8ea2b1b6,8ea2b1b6v 7711 e79c91 7711 00007711 d2d3 d2d3 d2d3 d2d3 d2d3 d2d3 d2d3 -7522 d2d4 d2d4 d2d4 * * 3137 8ea2b1b7,8ea2b1b7v 7715 e79c95 7715 00007715 d2d4 d2d4 d2d4 d2d4 d2d4 d2d4 d2d4 -7523 d2d5 d2d5 d2d5 * * 3138 8ea2b1b8,8ea2b1b8v 7719 e79c99 7719 00007719 d2d5 d2d5 d2d5 d2d5 d2d5 d2d5 d2d5 -7524 d2d6 d2d6 d2d6 * * 3139 8ea2b1b9,8ea2b1b9v 771a e79c9a 771a 0000771a d2d6 d2d6 d2d6 d2d6 d2d6 d2d6 d2d6 -7525 d2d7 d2d7 d2d7 * * 313a 8ea2b1ba,8ea2b1bav 7722 e79ca2 7722 00007722 d2d7 d2d7 d2d7 d2d7 d2d7 d2d7 d2d7 -7526 d2d8 d2d8 d2d8 * * 313b 8ea2b1bb,8ea2b1bbv 7727 e79ca7 7727 00007727 d2d8 d2d8 d2d8 d2d8 d2d8 d2d8 d2d8 -7527 d2d9 d2d9 d2d9 * * 313c 8ea2b1bc,8ea2b1bcv 7823 e7a0a3 7823 00007823 d2d9 d2d9 d2d9 d2d9 d2d9 d2d9 d2d9 -7528 d2da d2da d2da * * 313d 8ea2b1bd,8ea2b1bdv 782c e7a0ac 782c 0000782c d2da d2da d2da d2da d2da d2da d2da -7529 d2db d2db d2db * * 313e 8ea2b1be,8ea2b1bev 7822 e7a0a2 7822 00007822 d2db d2db d2db d2db d2db d2db d2db -7530 d2dc d2dc d2dc * * 313f 8ea2b1bf,8ea2b1bfv 7835 e7a0b5 7835 00007835 d2dc d2dc d2dc d2dc d2dc d2dc d2dc -7531 d2dd d2dd d2dd * * 3140 8ea2b1c0,8ea2b1c0v 782f e7a0af 782f 0000782f d2dd d2dd d2dd d2dd d2dd d2dd d2dd -7532 d2de d2de d2de * * 3141 8ea2b1c1,8ea2b1c1v 7828 e7a0a8 7828 00007828 d2de d2de d2de d2de d2de d2de d2de -7533 d2df d2df d2df * * 3142 8ea2b1c2,8ea2b1c2v 782e e7a0ae 782e 0000782e d2df d2df d2df d2df d2df d2df d2df -7534 d2e0 d2e0 d2e0 * * 3143 8ea2b1c3,8ea2b1c3v 782b e7a0ab 782b 0000782b d2e0 d2e0 d2e0 d2e0 d2e0 d2e0 d2e0 -7535 d2e1 d2e1 d2e1 * * 3144 8ea2b1c4,8ea2b1c4v 7821 e7a0a1 7821 00007821 d2e1 d2e1 d2e1 d2e1 d2e1 d2e1 d2e1 -7536 d2e2 d2e2 d2e2 * * 3145 8ea2b1c5,8ea2b1c5v 7829 e7a0a9 7829 00007829 d2e2 d2e2 d2e2 d2e2 d2e2 d2e2 d2e2 -7537 d2e3 d2e3 d2e3 * * 3146 8ea2b1c6,8ea2b1c6v 7833 e7a0b3 7833 00007833 d2e3 d2e3 d2e3 d2e3 d2e3 d2e3 d2e3 -7538 d2e4 d2e4 d2e4 * * 3147 8ea2b1c7,8ea2b1c7v 782a e7a0aa 782a 0000782a d2e4 d2e4 d2e4 d2e4 d2e4 d2e4 d2e4 -7539 d2e5 d2e5 d2e5 * * 3148 8ea2b1c8,8ea2b1c8v 7831 e7a0b1 7831 00007831 d2e5 d2e5 d2e5 d2e5 d2e5 d2e5 d2e5 -7540 d2e6 d2e6 d2e6 * * 3149 8ea2b1c9,8ea2b1c9v 7954 e7a594 7954 00007954 d2e6 d2e6 d2e6 d2e6 d2e6 d2e6 d2e6 -7541 d2e7 d2e7 d2e7 * * 314a 8ea2b1ca,8ea2b1cav 795b e7a59b 795b 0000795b d2e7 d2e7 91f7,d2e7 d2e7 d2e7 d2e7 d2e7 -7542 d2e8 d2e8 d2e8 * * 314b 8ea2b1cb,8ea2b1cbv 794f e7a58f 794f 0000794f d2e8 d2e8 d2e8 d2e8 d2e8 d2e8 d2e8 -7543 d2e9 d2e9 d2e9 * * 314c 8ea2b1cc,8ea2b1ccv 795c e7a59c 795c 0000795c d2e9 d2e9 d2e9 d2e9 d2e9 d2e9 d2e9 -7544 d2ea d2ea d2ea * * 314d 8ea2b1cd,8ea2b1cdv 7953 e7a593 7953 00007953 d2ea d2ea d2ea d2ea d2ea d2ea d2ea -7545 d2eb d2eb d2eb * * 314e 8ea2b1ce,8ea2b1cev 7952 e7a592 7952 00007952 d2eb d2eb d2eb d2eb d2eb d2eb d2eb -7546 d2ec d2ec d2ec * * 314f 8ea2b1cf,8ea2b1cfv 7951 e7a591 7951 00007951 d2ec d2ec d2ec d2ec d2ec d2ec d2ec -7547 d2ed d2ed d2ed * * 3150 8ea2b1d0,8ea2b1d0v 79eb e7a7ab 79eb 000079eb d2ed d2ed d2ed d2ed d2ed d2ed d2ed -7548 d2ee d2ee d2ee * * 3151 8ea2b1d1,8ea2b1d1v 79ec e7a7ac 79ec 000079ec d2ee d2ee d2ee d2ee d2ee d2ee d2ee -7549 d2ef d2ef d2ef * * 3152 8ea2b1d2,8ea2b1d2v 79e0 e7a7a0 79e0 000079e0 d2ef d2ef d2ef d2ef d2ef d2ef d2ef -7550 d2f0 d2f0 d2f0 * * 3153 8ea2b1d3,8ea2b1d3v 79ee e7a7ae 79ee 000079ee d2f0 d2f0 d2f0 d2f0 d2f0 d2f0 d2f0 -7551 d2f1 d2f1 d2f1 * * 3154 8ea2b1d4,8ea2b1d4v 79ed e7a7ad 79ed 000079ed d2f1 d2f1 d2f1 d2f1 d2f1 d2f1 d2f1 -7552 d2f2 d2f2 d2f2 * * 3155 8ea2b1d5,8ea2b1d5v 79ea e7a7aa 79ea 000079ea d2f2 d2f2 d2f2 d2f2 d2f2 d2f2 d2f2 -7553 d2f3 d2f3 d2f3 * * 3156 8ea2b1d6,8ea2b1d6v 79dc e7a79c 79dc 000079dc d2f3 d2f3 d2f3 d2f3 d2f3 d2f3 d2f3 -7554 d2f4 d2f4 d2f4 * * 3157 8ea2b1d7,8ea2b1d7v 79de e7a79e 79de 000079de d2f4 d2f4 d2f4 d2f4 d2f4 d2f4 d2f4 -7555 d2f5 d2f5 d2f5 * * 3158 8ea2b1d8,8ea2b1d8v 79dd e7a79d 79dd 000079dd d2f5 d2f5 d2f5 d2f5 d2f5 d2f5 d2f5 -7556 d2f6 d2f6 d2f6 * * 3159 8ea2b1d9,8ea2b1d9v 7a86 e7aa86 7a86 00007a86 d2f6 d2f6 d2f6 d2f6 d2f6 d2f6 d2f6 -7557 d2f7 d2f7 d2f7 * * 315a 8ea2b1da,8ea2b1dav 7a89 e7aa89 7a89 00007a89 d2f7 d2f7 d2f7 d2f7 d2f7 d2f7 d2f7 -7558 d2f8 d2f8 d2f8 * * 315b 8ea2b1db,8ea2b1dbv 7a85 e7aa85 7a85 00007a85 d2f8 d2f8 d2f8 d2f8 d2f8 d2f8 d2f8 -7559 d2f9 d2f9 d2f9 * * 315c 8ea2b1dc,8ea2b1dcv 7a8b e7aa8b 7a8b 00007a8b d2f9 d2f9 d2f9 d2f9 d2f9 d2f9 d2f9 -7560 d2fa d2fa d2fa * * 315d 8ea2b1dd,8ea2b1ddv 7a8c e7aa8c 7a8c 00007a8c d2fa d2fa d2fa d2fa d2fa d2fa d2fa -7561 d2fb d2fb d2fb * * 315e 8ea2b1de,8ea2b1dev 7a8a e7aa8a 7a8a 00007a8a d2fb d2fb d2fb d2fb d2fb d2fb d2fb -7562 d2fc d2fc d2fc * * 315f 8ea2b1df,8ea2b1dfv 7a87 e7aa87 7a87 00007a87 d2fc d2fc d2fc d2fc d2fc d2fc d2fc -7563 d2fd d2fd d2fd * * 3160 8ea2b1e0,8ea2b1e0v 7ad8 e7ab98 7ad8 00007ad8 d2fd d2fd d2fd d2fd d2fd d2fd d2fd -7564 d2fe d2fe d2fe * * 3161 8ea2b1e1,8ea2b1e1v 7b10 e7ac90 7b10 00007b10 d2fe d2fe d2fe d2fe d2fe d2fe d2fe -7565 d340 d340 d340 * * 3162 8ea2b1e2,8ea2b1e2v 7b04 e7ac84 7b04 00007b04 d340 d340 d340 d340 d340 d340 d340 -7566 d341 d341 d341 * * 3163 8ea2b1e3,8ea2b1e3v 7b13 e7ac93 7b13 00007b13 d341 d341 d341 d341 d341 d341 d341 -7567 d342 d342 d342 * * 3164 8ea2b1e4,8ea2b1e4v 7b05 e7ac85 7b05 00007b05 d342 d342 d342 d342 d342 d342 d342 -7568 d343 d343 d343 * * 3165 8ea2b1e5,8ea2b1e5v 7b0f e7ac8f 7b0f 00007b0f d343 d343 d343 d343 d343 d343 d343 -7569 d344 d344 d344 * * 3166 8ea2b1e6,8ea2b1e6v 7b08 e7ac88 7b08 00007b08 d344 d344 d344 d344 d344 d344 d344 -7570 d345 d345 d345 * * 3167 8ea2b1e7,8ea2b1e7v 7b0a e7ac8a 7b0a 00007b0a d345 d345 d345 d345 d345 d345 d345 -7571 d346 d346 d346 * * 3168 8ea2b1e8,8ea2b1e8v 7b0e e7ac8e 7b0e 00007b0e d346 d346 d346 d346 d346 d346 d346 -7572 d347 d347 d347 * * 3169 8ea2b1e9,8ea2b1e9v 7b09 e7ac89 7b09 00007b09 d347 d347 d347 d347 d347 d347 d347 -7573 d348 d348 d348 * * 316a 8ea2b1ea,8ea2b1eav 7b12 e7ac92 7b12 00007b12 d348 d348 d348 d348 d348 d348 d348 -7574 d349 d349 d349 * * 316b 8ea2b1eb,8ea2b1ebv 7c84 e7b284 7c84 00007c84 d349 d349 d349 d349 d349 d349 d349 -7575 d34a d34a d34a * * 316c 8ea2b1ec,8ea2b1ecv 7c91 e7b291 7c91 00007c91 d34a d34a d34a d34a d34a d34a d34a -7576 d34b d34b d34b * * 316d 8ea2b1ed,8ea2b1edv 7c8a e7b28a 7c8a 00007c8a d34b d34b d34b d34b d34b d34b d34b -7577 d34c d34c d34c * * 316e 8ea2b1ee,8ea2b1eev 7c8c e7b28c 7c8c 00007c8c d34c d34c d34c d34c d34c d34c d34c -7578 d34d d34d d34d * * 316f 8ea2b1ef,8ea2b1efv 7c88 e7b288 7c88 00007c88 d34d d34d d34d d34d d34d d34d d34d -7579 d34e d34e d34e * * 3170 8ea2b1f0,8ea2b1f0v 7c8d e7b28d 7c8d 00007c8d d34e d34e d34e d34e d34e d34e d34e -7580 d34f d34f d34f * * 3171 8ea2b1f1,8ea2b1f1v 7c85 e7b285 7c85 00007c85 d34f d34f d34f d34f d34f d34f d34f -7581 d350 d350 d350 * * 3172 8ea2b1f2,8ea2b1f2v 7d1e e7b49e 7d1e 00007d1e d350 d350 d350 d350 d350 d350 d350 -7582 d351 d351 d351 * * 3173 8ea2b1f3,8ea2b1f3v 7d1d e7b49d 7d1d 00007d1d d351 d351 d351 d351 d351 d351 d351 -7583 d352 d352 d352 * * 3174 8ea2b1f4,8ea2b1f4v 7d11 e7b491 7d11 00007d11 d352 d352 d352 d352 d352 d352 d352 -7584 d353 d353 d353 * * 3175 8ea2b1f5,8ea2b1f5v 7d0e e7b48e 7d0e 00007d0e d353 d353 d353 d353 d353 d353 d353 -7585 d354 d354 d354 * * 3176 8ea2b1f6,8ea2b1f6v 7d18 e7b498 7d18 00007d18 d354 d354 d354 d354 d354 d354 d354 -7586 d355 d355 d355 * * 3177 8ea2b1f7,8ea2b1f7v 7d16 e7b496 7d16 00007d16 d355 d355 d355 d355 d355 d355 d355 -7587 d356 d356 d356 * * 3178 8ea2b1f8,8ea2b1f8v 7d13 e7b493 7d13 00007d13 d356 d356 d356 d356 d356 d356 d356 -7588 d357 d357 d357 * * 3179 8ea2b1f9,8ea2b1f9v 7d1f e7b49f 7d1f 00007d1f d357 d357 d357 d357 d357 d357 d357 -7589 d358 d358 d358 * * 317a 8ea2b1fa,8ea2b1fav 7d12 e7b492 7d12 00007d12 d358 d358 d358 d358 d358 d358 d358 -7590 d359 d359 d359 * * 317b 8ea2b1fb,8ea2b1fbv 7d0f e7b48f 7d0f 00007d0f d359 d359 d359 d359 d359 d359 d359 -7591 d35a d35a d35a * * 317c 8ea2b1fc,8ea2b1fcv 7d0c e7b48c 7d0c 00007d0c d35a d35a d35a d35a d35a d35a d35a -7592 d35b d35b d35b * * 317d 8ea2b1fd,8ea2b1fdv 7f5c e7bd9c 7f5c 00007f5c d35b d35b d35b d35b d35b d35b d35b -7593 d35c d35c d35c * * 317e 8ea2b1fe,8ea2b1fev 7f61 e7bda1 7f61 00007f61 d35c d35c d35c d35c d35c d35c d35c -7594 d35d d35d d35d * * 3221 8ea2b2a1,8ea2b2a1v 7f5e e7bd9e 7f5e 00007f5e d35d d35d d35d d35d d35d d35d d35d -7595 d35e d35e d35e * * 3222 8ea2b2a2,8ea2b2a2v 7f60 e7bda0 7f60 00007f60 d35e d35e d35e d35e d35e d35e d35e -7596 d35f d35f d35f * * 3223 8ea2b2a3,8ea2b2a3v 7f5d e7bd9d 7f5d 00007f5d d35f d35f d35f d35f d35f d35f d35f -7597 d360 d360 d360 * * 3224 8ea2b2a4,8ea2b2a4v 7f5b e7bd9b 7f5b 00007f5b d360 d360 d360 d360 d360 d360 d360 -7598 d361 d361 d361 * * 3225 8ea2b2a5,8ea2b2a5v 7f96 e7be96 7f96 00007f96 d361 d361 d361 d361 d361 d361 d361 -7599 d362 d362 d362 * * 3226 8ea2b2a6,8ea2b2a6v 7f92 e7be92 7f92 00007f92 d362 d362 d362 d362 d362 d362 d362 -7600 d363 d363 d363 * * 3227 8ea2b2a7,8ea2b2a7v 7fc3 e7bf83 7fc3 00007fc3 d363 d363 d363 d363 d363 d363 d363 -7601 d364 d364 d364 * * 3228 8ea2b2a8,8ea2b2a8v 7fc2 e7bf82 7fc2 00007fc2 d364 d364 d364 d364 d364 d364 d364 -7602 d365 d365 d365 * * 3229 8ea2b2a9,8ea2b2a9v 7fc0 e7bf80 7fc0 00007fc0 d365 d365 d365 d365 d365 d365 d365 -7603 d366 d366 d366 * * 322a 8ea2b2aa,8ea2b2aav 8016 e88096 8016 00008016 d366 d366 d366 d366 d366 d366 d366 -7604 d367 d367 d367 * * 322b 8ea2b2ab,8ea2b2abv 803e e880be 803e 0000803e d367 d367 d367 d367 d367 d367 d367 -7605 d368 d368 d368 * * 322c 8ea2b2ac,8ea2b2acv 8039 e880b9 8039 00008039 d368 d368 d368 d368 d368 d368 d368 -7606 d369 d369 d369 * * 322d 8ea2b2ad,8ea2b2adv 80fa e883ba 80fa 000080fa d369 d369 d369 d369 d369 d369 d369 -7607 d36a d36a d36a * * 322e 8ea2b2ae,8ea2b2aev 80f2 e883b2 80f2 000080f2 d36a d36a d36a d36a d36a d36a d36a -7608 d36b d36b d36b * * 322f 8ea2b2af,8ea2b2afv 80f9 e883b9 80f9 000080f9 d36b d36b d36b d36b d36b d36b d36b -7609 d36c d36c d36c * * 3230 8ea2b2b0,8ea2b2b0v 80f5 e883b5 80f5 000080f5 d36c d36c d36c d36c d36c d36c d36c -7610 d36d d36d d36d * * 3231 8ea2b2b1,8ea2b2b1v 8101 e88481 8101 00008101 d36d d36d d36d d36d d36d d36d d36d -7611 d36e d36e d36e * * 3232 8ea2b2b2,8ea2b2b2v 80fb e883bb 80fb 000080fb d36e d36e d36e d36e d36e d36e d36e -7612 d36f d36f d36f * * 3233 8ea2b2b3,8ea2b2b3v 8100 e88480 8100 00008100 d36f d36f d36f d36f d36f d36f d36f -7613 d370 d370 d370 * * 3234 8ea2b2b4,8ea2b2b4v 8201 e88881 8201 00008201 d370 d370 d370 d370 d370 d370 d370 -7614 d371 d371 d371 * * 3235 8ea2b2b5,8ea2b2b5v 822f e888af 822f 0000822f d371 d371 d371 d371 d371 d371 d371 -7615 d372 d372 d372 * * 3236 8ea2b2b6,8ea2b2b6v 8225 e888a5 8225 00008225 d372 d372 d372 d372 d372 d372 d372 -7616 d373 d373 d373 * * 3237 8ea2b2b7,8ea2b2b7v 8333 e88cb3 8333 00008333 d373 d373 d373 d373 d373 d373 d373 -7617 d374 d374 d374 * * 3238 8ea2b2b8,8ea2b2b8v 832d e88cad 832d 0000832d d374 d374 d374 d374 d374 d374 d374 -7618 d375 d375 d375 * * 3239 8ea2b2b9,8ea2b2b9v 8344 e88d84 8344 00008344 d375 d375 d375 d375 d375 d375 d375 -7619 d376 d376 d376 * * 323a 8ea2b2ba,8ea2b2bav 8319 e88c99 8319 00008319 d376 d376 d376 d376 d376 d376 d376 -7620 d377 d377 d377 * * 323b 8ea2b2bb,8ea2b2bbv 8351 e88d91 8351 00008351 d377 d377 d377 d377 d377 d377 d377 -7621 d378 d378 d378 * * 323c 8ea2b2bc,8ea2b2bcv 8325 e88ca5 8325 00008325 d378 d378 d378 d378 d378 d378 d378 -7622 d379 d379 d379 * * 323d 8ea2b2bd,8ea2b2bdv 8356 e88d96 8356 00008356 d379 d379 d379 d379 d379 d379 d379 -7623 d37a d37a d37a * * 323e 8ea2b2be,8ea2b2bev 833f e88cbf 833f 0000833f d37a d37a d37a d37a d37a d37a d37a -7624 d37b d37b d37b * * 323f 8ea2b2bf,8ea2b2bfv 8341 e88d81 8341 00008341 d37b d37b d37b d37b d37b d37b d37b -7625 d37c d37c d37c * * 3240 8ea2b2c0,8ea2b2c0v 8326 e88ca6 8326 00008326 d37c d37c d37c d37c d37c d37c d37c -7626 d37d d37d d37d * * 3241 8ea2b2c1,8ea2b2c1v 831c e88c9c 831c 0000831c d37d d37d d37d d37d d37d d37d d37d -7627 d37e d37e d37e * * 3242 8ea2b2c2,8ea2b2c2v 8322 e88ca2 8322 00008322 d37e d37e d37e d37e d37e d37e d37e -7628 d3a1 d3a1 d3a1 * * 3243 8ea2b2c3,8ea2b2c3v 8342 e88d82 8342 00008342 d3a1 d3a1 d3a1 d3a1 d3a1 d3a1 d3a1 -7629 d3a2 d3a2 d3a2 * * 3244 8ea2b2c4,8ea2b2c4v 834e e88d8e 834e 0000834e d3a2 d3a2 d3a2 d3a2 d3a2 d3a2 d3a2 -7630 d3a3 d3a3 d3a3 * * 3245 8ea2b2c5,8ea2b2c5v 831b e88c9b 831b 0000831b d3a3 d3a3 d3a3 d3a3 d3a3 d3a3 d3a3 -7631 d3a4 d3a4 d3a4 * * 3246 8ea2b2c6,8ea2b2c6v 832a e88caa 832a 0000832a d3a4 d3a4 d3a4 d3a4 d3a4 d3a4 d3a4 -7632 d3a5 d3a5 d3a5 * * 3247 8ea2b2c7,8ea2b2c7v 8308 e88c88 8308 00008308 d3a5 d3a5 d3a5 d3a5 d3a5 d3a5 d3a5 -7633 d3a6 d3a6 d3a6 * * 3248 8ea2b2c8,8ea2b2c8v 833c e88cbc 833c 0000833c d3a6 d3a6 d3a6 d3a6 d3a6 d3a6 d3a6 -7634 d3a7 d3a7 d3a7 * * 3249 8ea2b2c9,8ea2b2c9v 834d e88d8d 834d 0000834d d3a7 d3a7 d3a7 d3a7 d3a7 d3a7 d3a7 -7635 d3a8 d3a8 d3a8 * * 324a 8ea2b2ca,8ea2b2cav 8316 e88c96 8316 00008316 d3a8 d3a8 d3a8 d3a8 d3a8 d3a8 d3a8 -7636 d3a9 d3a9 d3a9 * * 324b 8ea2b2cb,8ea2b2cbv 8324 e88ca4 8324 00008324 d3a9 d3a9 d3a9 d3a9 d3a9 d3a9 d3a9 -7637 d3aa d3aa d3aa * * 324c 8ea2b2cc,8ea2b2ccv 8320 e88ca0 8320 00008320 d3aa d3aa d3aa d3aa d3aa d3aa d3aa -7638 d3ab d3ab d3ab * * 324d 8ea2b2cd,8ea2b2cdv 8337 e88cb7 8337 00008337 d3ab d3ab d3ab d3ab d3ab d3ab d3ab -7639 d3ac d3ac d3ac * * 324e 8ea2b2ce,8ea2b2cev 832f e88caf 832f 0000832f d3ac d3ac d3ac d3ac d3ac d3ac d3ac -7640 d3ad d3ad d3ad * * 324f 8ea2b2cf,8ea2b2cfv 8329 e88ca9 8329 00008329 d3ad d3ad d3ad d3ad d3ad d3ad d3ad -7641 d3ae d3ae d3ae * * 3250 8ea2b2d0,8ea2b2d0v 8347 e88d87 8347 00008347 d3ae d3ae d3ae d3ae d3ae d3ae d3ae -7642 d3af d3af d3af * * 3251 8ea2b2d1,8ea2b2d1v 8345 e88d85 8345 00008345 d3af d3af d3af d3af d3af d3af d3af -7643 d3b0 d3b0 d3b0 * * 3252 8ea2b2d2,8ea2b2d2v 834c e88d8c 834c 0000834c d3b0 d3b0 d3b0 d3b0 d3b0 d3b0 d3b0 -7644 d3b1 d3b1 d3b1 * * 3253 8ea2b2d3,8ea2b2d3v 8353 e88d93 8353 00008353 d3b1 d3b1 d3b1 d3b1 d3b1 d3b1 d3b1 -7645 d3b2 d3b2 d3b2 * * 3254 8ea2b2d4,8ea2b2d4v 831e e88c9e 831e 0000831e d3b2 d3b2 d3b2 d3b2 d3b2 d3b2 d3b2 -7646 d3b3 d3b3 d3b3 * * 3255 8ea2b2d5,8ea2b2d5v 832c e88cac 832c 0000832c d3b3 d3b3 d3b3 d3b3 d3b3 d3b3 d3b3 -7647 d3b4 d3b4 d3b4 * * 3256 8ea2b2d6,8ea2b2d6v 834b e88d8b 834b 0000834b d3b4 d3b4 d3b4 d3b4 d3b4 d3b4 d3b4 -7648 d3b5 d3b5 d3b5 * * 3257 8ea2b2d7,8ea2b2d7v 8327 e88ca7 8327 00008327 d3b5 d3b5 d3b5 d3b5 d3b5 d3b5 d3b5 -7649 d3b6 d3b6 d3b6 * * 3258 8ea2b2d8,8ea2b2d8v 8348 e88d88 8348 00008348 d3b6 d3b6 d3b6 d3b6 d3b6 d3b6 d3b6 -7650 d3b7 d3b7 d3b7 * * 3259 8ea2b2d9,8ea2b2d9v 8653 e89993 8653 00008653 d3b7 d3b7 d3b7 d3b7 d3b7 d3b7 d3b7 -7651 d3b8 d3b8 d3b8 * * 325a 8ea2b2da,8ea2b2dav 8652 e89992 8652 00008652 d3b8 d3b8 d3b8 d3b8 d3b8 d3b8 d3b8 -7652 d3b9 d3b9 d3b9 * * 325b 8ea2b2db,8ea2b2dbv 86a2 e89aa2 86a2 000086a2 d3b9 d3b9 d3b9 d3b9 d3b9 d3b9 d3b9 -7653 d3ba d3ba d3ba * * 325c 8ea2b2dc,8ea2b2dcv 86a8 e89aa8 86a8 000086a8 d3ba d3ba d3ba d3ba d3ba d3ba d3ba -7654 d3bb d3bb d3bb * * 325d 8ea2b2dd,8ea2b2ddv 8696 e89a96 8696 00008696 d3bb d3bb d3bb d3bb d3bb d3bb d3bb -7655 d3bc d3bc d3bc * * 325e 8ea2b2de,8ea2b2dev 868d e89a8d 868d 0000868d d3bc d3bc d3bc d3bc d3bc d3bc d3bc -7656 d3bd d3bd d3bd * * 325f 8ea2b2df,8ea2b2dfv 8691 e89a91 8691 00008691 d3bd d3bd d3bd d3bd d3bd d3bd d3bd -7657 d3be d3be d3be * * 3260 8ea2b2e0,8ea2b2e0v 869e e89a9e 869e 0000869e d3be d3be d3be d3be d3be d3be d3be -7658 d3bf d3bf d3bf * * 3261 8ea2b2e1,8ea2b2e1v 8687 e89a87 8687 00008687 d3bf d3bf d3bf d3bf d3bf d3bf d3bf -7659 d3c0 d3c0 d3c0 * * 3262 8ea2b2e2,8ea2b2e2v 8697 e89a97 8697 00008697 d3c0 d3c0 d3c0 d3c0 d3c0 d3c0 d3c0 -7660 d3c1 d3c1 d3c1 * * 3263 8ea2b2e3,8ea2b2e3v 8686 e89a86 8686 00008686 d3c1 d3c1 d3c1 d3c1 d3c1 d3c1 d3c1 -7661 d3c2 d3c2 d3c2 * * 3264 8ea2b2e4,8ea2b2e4v 868b e89a8b 868b 0000868b d3c2 d3c2 d3c2 d3c2 d3c2 d3c2 d3c2 -7662 d3c3 d3c3 d3c3 * * 3265 8ea2b2e5,8ea2b2e5v 869a e89a9a 869a 0000869a d3c3 d3c3 d3c3 d3c3 d3c3 d3c3 d3c3 -7663 d3c4 d3c4 d3c4 * * 3266 8ea2b2e6,8ea2b2e6v 8685 e89a85 8685 00008685 d3c4 d3c4 d3c4 d3c4 d3c4 d3c4 d3c4 -7664 d3c5 d3c5 d3c5 * * 3267 8ea2b2e7,8ea2b2e7v 86a5 e89aa5 86a5 000086a5 d3c5 d3c5 d3c5 d3c5 d3c5 d3c5 d3c5 -7665 d3c6 d3c6 d3c6 * * 3268 8ea2b2e8,8ea2b2e8v 8699 e89a99 8699 00008699 d3c6 d3c6 d3c6 d3c6 d3c6 d3c6 d3c6 -7666 d3c7 d3c7 d3c7 * * 3269 8ea2b2e9,8ea2b2e9v 86a1 e89aa1 86a1 000086a1 d3c7 d3c7 d3c7 d3c7 d3c7 d3c7 d3c7 -7667 d3c8 d3c8 d3c8 * * 326a 8ea2b2ea,8ea2b2eav 86a7 e89aa7 86a7 000086a7 d3c8 d3c8 d3c8 d3c8 d3c8 d3c8 d3c8 -7668 d3c9 d3c9 d3c9 * * 326b 8ea2b2eb,8ea2b2ebv 8695 e89a95 8695 00008695 d3c9 d3c9 d3c9 d3c9 d3c9 d3c9 d3c9 -7669 d3ca d3ca d3ca * * 326c 8ea2b2ec,8ea2b2ecv 8698 e89a98 8698 00008698 d3ca d3ca d3ca d3ca d3ca d3ca d3ca -7670 d3cb d3cb d3cb * * 326d 8ea2b2ed,8ea2b2edv 868e e89a8e 868e 0000868e d3cb d3cb d3cb d3cb d3cb d3cb d3cb -7671 d3cc d3cc d3cc * * 326e 8ea2b2ee,8ea2b2eev 869d e89a9d 869d 0000869d d3cc d3cc d3cc d3cc d3cc d3cc d3cc -7672 d3cd d3cd d3cd * * 326f 8ea2b2ef,8ea2b2efv 8690 e89a90 8690 00008690 d3cd d3cd d3cd d3cd d3cd d3cd d3cd -7673 d3ce d3ce d3ce * * 3270 8ea2b2f0,8ea2b2f0v 8694 e89a94 8694 00008694 d3ce d3ce d3ce d3ce d3ce d3ce d3ce -7674 d3cf d3cf d3cf * * 3271 8ea2b2f1,8ea2b2f1v 8843 e8a183 8843 00008843 d3cf d3cf d3cf d3cf d3cf d3cf d3cf -7675 d3d0 d3d0 d3d0 * * 3272 8ea2b2f2,8ea2b2f2v 8844 e8a184 8844 00008844 d3d0 d3d0 d3d0 d3d0 d3d0 d3d0 d3d0 -7676 d3d1 d3d1 d3d1 * * 3273 8ea2b2f3,8ea2b2f3v 886d e8a1ad 886d 0000886d d3d1 d3d1 d3d1 d3d1 d3d1 d3d1 d3d1 -7677 d3d2 d3d2 d3d2 * * 3274 8ea2b2f4,8ea2b2f4v 8875 e8a1b5 8875 00008875 d3d2 d3d2 d3d2 d3d2 d3d2 d3d2 d3d2 -7678 d3d3 d3d3 d3d3 * * 3275 8ea2b2f5,8ea2b2f5v 8876 e8a1b6 8876 00008876 d3d3 d3d3 d3d3 d3d3 d3d3 d3d3 d3d3 -7679 d3d4 d3d4 d3d4 * * 3276 8ea2b2f6,8ea2b2f6v 8872 e8a1b2 8872 00008872 d3d4 d3d4 d3d4 d3d4 d3d4 d3d4 d3d4 -7680 d3d5 d3d5 d3d5 * * 3277 8ea2b2f7,8ea2b2f7v 8880 e8a280 8880 00008880 d3d5 d3d5 d3d5 d3d5 d3d5 d3d5 d3d5 -7681 d3d6 d3d6 d3d6 * * 3278 8ea2b2f8,8ea2b2f8v 8871 e8a1b1 8871 00008871 d3d6 d3d6 d3d6 d3d6 d3d6 d3d6 d3d6 -7682 d3d7 d3d7 d3d7 * * 3279 8ea2b2f9,8ea2b2f9v 887f e8a1bf 887f 0000887f d3d7 d3d7 d3d7 d3d7 d3d7 d3d7 d3d7 -7683 d3d8 d3d8 d3d8 * * 327a 8ea2b2fa,8ea2b2fav 886f e8a1af 886f 0000886f d3d8 d3d8 d3d8 d3d8 d3d8 d3d8 d3d8 -7684 d3d9 d3d9 d3d9 * * 327b 8ea2b2fb,8ea2b2fbv 8883 e8a283 8883 00008883 d3d9 d3d9 d3d9 d3d9 d3d9 d3d9 d3d9 -7685 d3da d3da d3da * * 327c 8ea2b2fc,8ea2b2fcv 887e e8a1be 887e 0000887e d3da d3da d3da d3da d3da d3da d3da -7686 d3db d3db d3db * * 327d 8ea2b2fd,8ea2b2fdv 8874 e8a1b4 8874 00008874 d3db d3db d3db d3db d3db d3db d3db -7687 d3dc d3dc d3dc * * 327e 8ea2b2fe,8ea2b2fev 887c e8a1bc 887c 0000887c d3dc d3dc d3dc d3dc d3dc d3dc d3dc -7688 d3dd d3dd d3dd * * 3321 8ea2b3a1,8ea2b3a1v 8a12 e8a892 8a12 00008a12 d3dd d3dd d3dd d3dd d3dd d3dd d3dd -7689 d3de d3de d3de * * 3322 8ea2b3a2,8ea2b3a2v 8c47 e8b187 8c47 00008c47 d3de d3de d3de d3de d3de d3de d3de -7690 d3df d3df d3df * * 3323 8ea2b3a3,8ea2b3a3v 8c57 e8b197 8c57 00008c57 d3df d3df d3df d3df d3df d3df d3df -7691 d3e0 d3e0 d3e0 * * 3324 8ea2b3a4,8ea2b3a4v 8c7b e8b1bb 8c7b 00008c7b d3e0 d3e0 d3e0 d3e0 d3e0 d3e0 d3e0 -7692 d3e1 d3e1 d3e1 * * 3325 8ea2b3a5,8ea2b3a5v 8ca4 e8b2a4 8ca4 00008ca4 d3e1 d3e1 d3e1 d3e1 d3e1 d3e1 d3e1 -7693 d3e2 d3e2 d3e2 * * 3326 8ea2b3a6,8ea2b3a6v 8ca3 e8b2a3 8ca3 00008ca3 d3e2 d3e2 d3e2 d3e2 d3e2 d3e2 d3e2 -7694 d3e3 d3e3 d3e3 * * 3327 8ea2b3a7,8ea2b3a7v 8d76 e8b5b6 8d76 00008d76 d3e3 d3e3 d3e3 d3e3 d3e3 d3e3 d3e3 -7695 d3e4 d3e4 d3e4 * * 3328 8ea2b3a8,8ea2b3a8v 8d78 e8b5b8 8d78 00008d78 d3e4 d3e4 d3e4 d3e4 d3e4 d3e4 d3e4 -7696 d3e5 d3e5 d3e5 * * 3329 8ea2b3a9,8ea2b3a9v 8db5 e8b6b5 8db5 00008db5 d3e5 d3e5 d3e5 d3e5 d3e5 d3e5 d3e5 -7697 d3e6 d3e6 d3e6 * * 332a 8ea2b3aa,8ea2b3aav 8db7 e8b6b7 8db7 00008db7 d3e6 d3e6 d3e6 d3e6 d3e6 d3e6 d3e6 -7698 d3e7 d3e7 d3e7 * * 332b 8ea2b3ab,8ea2b3abv 8db6 e8b6b6 8db6 00008db6 d3e7 d3e7 d3e7 d3e7 d3e7 d3e7 d3e7 -7699 d3e8 d3e8 d3e8 * * 332c 8ea2b3ac,8ea2b3acv 8ed1 e8bb91 8ed1 00008ed1 d3e8 d3e8 d3e8 d3e8 d3e8 d3e8 d3e8 -7700 d3e9 d3e9 d3e9 * * 332d 8ea2b3ad,8ea2b3adv 8ed3 e8bb93 8ed3 00008ed3 d3e9 d3e9 d3e9 d3e9 d3e9 d3e9 d3e9 -7701 d3ea d3ea d3ea * * 332e 8ea2b3ae,8ea2b3aev 8ffe e8bfbe 8ffe 00008ffe d3ea d3ea d3ea d3ea d3ea d3ea d3ea -7702 d3eb d3eb d3eb * * 332f 8ea2b3af,8ea2b3afv 8ff5 e8bfb5 8ff5 00008ff5 d3eb d3eb d3eb d3eb d3eb d3eb d3eb -7703 d3ec d3ec d3ec * * 3330 8ea2b3b0,8ea2b3b0v 9002 e98082 9002 00009002 d3ec d3ec d3ec d3ec d3ec d3ec d3ec -7704 d3ed d3ed d3ed * * 3331 8ea2b3b1,8ea2b3b1v 8fff e8bfbf 8fff 00008fff d3ed d3ed d3ed d3ed d3ed d3ed d3ed -7705 d3ee d3ee d3ee * * 3332 8ea2b3b2,8ea2b3b2v 8ffb e8bfbb 8ffb 00008ffb d3ee d3ee d3ee d3ee d3ee d3ee d3ee -7706 d3ef d3ef d3ef * * 3333 8ea2b3b3,8ea2b3b3v 9004 e98084 9004 00009004 d3ef d3ef d3ef d3ef d3ef d3ef d3ef -7707 d3f0 d3f0 d3f0 * * 3334 8ea2b3b4,8ea2b3b4v 8ffc e8bfbc 8ffc 00008ffc d3f0 d3f0 d3f0 d3f0 d3f0 d3f0 d3f0 -7708 d3f1 d3f1 d3f1 * * 3335 8ea2b3b5,8ea2b3b5v 8ff6 e8bfb6 8ff6 00008ff6 d3f1 d3f1 d3f1 d3f1 d3f1 d3f1 d3f1 -7709 d3f2 d3f2 d3f2 * * 3336 8ea2b3b6,8ea2b3b6v 90d6 e98396 90d6 000090d6 d3f2 d3f2 d3f2 d3f2 d3f2 d3f2 d3f2 -7710 d3f3 d3f3 d3f3 * * 3337 8ea2b3b7,8ea2b3b7v 90e0 e983a0 90e0 000090e0 d3f3 d3f3 d3f3 d3f3 d3f3 d3f3 d3f3 -7711 d3f4 d3f4 d3f4 * * 3338 8ea2b3b8,8ea2b3b8v 90d9 e98399 90d9 000090d9 d3f4 d3f4 d3f4 d3f4 d3f4 d3f4 d3f4 -7712 d3f5 d3f5 d3f5 * * 3339 8ea2b3b9,8ea2b3b9v 90da e9839a 90da 000090da d3f5 d3f5 d3f5 d3f5 d3f5 d3f5 d3f5 -7713 d3f6 d3f6 d3f6 * * 333a 8ea2b3ba,8ea2b3bav 90e3 e983a3 90e3 000090e3 d3f6 d3f6 d3f6 d3f6 d3f6 d3f6 d3f6 -7714 d3f7 d3f7 d3f7 * * 333b 8ea2b3bb,8ea2b3bbv 90df e9839f 90df 000090df d3f7 d3f7 d3f7 d3f7 d3f7 d3f7 d3f7 -7715 d3f8 d3f8 d3f8 * * 333c 8ea2b3bc,8ea2b3bcv 90e5 e983a5 90e5 000090e5 d3f8 d3f8 d3f8 d3f8 d3f8 d3f8 d3f8 -7716 d3f9 d3f9 d3f9 * * 333d 8ea2b3bd,8ea2b3bdv 90d8 e98398 90d8 000090d8 d3f9 d3f9 d3f9 d3f9 d3f9 d3f9 d3f9 -7717 d3fa d3fa d3fa * * 333e 8ea2b3be,8ea2b3bev 90db e9839b 90db 000090db d3fa d3fa d3fa d3fa d3fa d3fa d3fa -7718 d3fb d3fb d3fb * * 333f 8ea2b3bf,8ea2b3bfv 90d7 e98397 90d7 000090d7 d3fb d3fb d3fb d3fb d3fb d3fb d3fb -7719 d3fc d3fc d3fc * * 3340 8ea2b3c0,8ea2b3c0v 90dc e9839c 90dc 000090dc d3fc d3fc d3fc d3fc d3fc d3fc d3fc -7720 d3fd d3fd d3fd * * 3341 8ea2b3c1,8ea2b3c1v 90e4 e983a4 90e4 000090e4 d3fd d3fd d3fd d3fd d3fd d3fd d3fd -7721 d3fe d3fe d3fe * * 3342 8ea2b3c2,8ea2b3c2v 9150 e98590 9150 00009150 d3fe d3fe 90cd,d3fe d3fe d3fe d3fe d3fe -7722 d440 d440 d440 * * 3343 8ea2b3c3,8ea2b3c3v 914e e9858e 914e 0000914e d440 d440 d440 d440 d440 d440 d440 -7723 d441 d441 d441 * * 3344 8ea2b3c4,8ea2b3c4v 914f e9858f 914f 0000914f d441 d441 d441 d441 d441 d441 d441 -7724 d442 d442 d442 * * 3345 8ea2b3c5,8ea2b3c5v 91d5 e98795 91d5 000091d5 d442 d442 d442 d442 d442 d442 d442 -7725 d443 d443 d443 * * 3346 8ea2b3c6,8ea2b3c6v 91e2 e987a2 91e2 000091e2 d443 d443 d443 d443 d443 d443 d443 -7726 d444 d444 d444 * * 3347 8ea2b3c7,8ea2b3c7v 91da e9879a 91da 000091da d444 d444 d444 d444 d444 d444 d444 -7727 d445 d445 d445 * * 3348 8ea2b3c8,8ea2b3c8v 965c e9999c 965c 0000965c d445 d445 d445 d445 d445 d445 d445 -7728 d446 d446 d446 * * 3349 8ea2b3c9,8ea2b3c9v 965f e9999f 965f 0000965f d446 d446 d446 d446 d446 d446 d446 -7729 d447 d447 d447 * * 334a 8ea2b3ca,8ea2b3cav 96bc e99abc 96bc 000096bc d447 d447 d447 d447 d447 d447 d447 -7730 d448 d448 d448 * * 334b 8ea2b3cb,8ea2b3cbv 98e3 e9a3a3 98e3 000098e3 d448 d448 d448 d448 d448 d448 d448 -7731 d449 d449 d449 * 2921 334c 8ea1a9a1,8ea2b3cc,a9a1,8ea1a9a1v,8ea2b3ccv,a9a1v 9adf e2bebd,e9ab9f 2fbd,9adf 00002fbd,00009adf d449 d449 d449 d449 d449 d449 d449 -7732 d44a d44a d44a * 2923 334d 8ea1a9a3,8ea2b3cd,a9a3,8ea1a9a3v,8ea2b3cdv,a9a3v 9b2f e2bebf,e9acaf 2fbf,9b2f 00002fbf,00009b2f d44a d44a d44a d44a d44a d44a d44a -7733 d44b d44b d44b * * 334e 8ea2b3ce,8ea2b3cev 4e7f e4b9bf 4e7f 00004e7f d44b d44b d44b d44b d44b d44b d44b -7734 d44c d44c d44c * * 334f 8ea2b3cf,8ea2b3cfv 5070 e581b0 5070 00005070 d44c d44c d44c d44c d44c d44c d44c -7735 d44d d44d d44d * * 3350 8ea2b3d0,8ea2b3d0v 506a e581aa 506a 0000506a d44d d44d d44d d44d d44d d44d d44d -7736 d44e d44e d44e * * 3351 8ea2b3d1,8ea2b3d1v 5061 e581a1 5061 00005061 d44e d44e d44e d44e d44e d44e d44e -7737 d44f d44f d44f * * 3352 8ea2b3d2,8ea2b3d2v 505e e5819e 505e 0000505e d44f d44f d44f d44f d44f d44f d44f -7738 d450 d450 d450 * * 3353 8ea2b3d3,8ea2b3d3v 5060 e581a0 5060 00005060 d450 d450 d450 d450 d450 d450 d450 -7739 d451 d451 d451 * * 3354 8ea2b3d4,8ea2b3d4v 5053 e58193 5053 00005053 d451 d451 d451 d451 d451 d451 d451 -7740 d452 d452 d452 * * 3355 8ea2b3d5,8ea2b3d5v 504b e5818b 504b 0000504b d452 d452 d452 d452 d452 d452 d452 -7741 d453 d453 d453 * * 3356 8ea2b3d6,8ea2b3d6v 505d e5819d 505d 0000505d d453 d453 d453 d453 d453 d453 d453 -7742 d454 d454 d454 * * 3357 8ea2b3d7,8ea2b3d7v 5072 e581b2 5072 00005072 d454 d454 d454 d454 d454 d454 d454 -7743 d455 d455 d455 * * 3358 8ea2b3d8,8ea2b3d8v 5048 e58188 5048 00005048 d455 d455 d455 d455 d455 d455 d455 -7744 d456 d456 d456 * * 3359 8ea2b3d9,8ea2b3d9v 504d e5818d 504d 0000504d d456 d456 d456 d456 d456 d456 d456 -7745 d457 d457 d457 * * 335a 8ea2b3da,8ea2b3dav 5041 e58181 5041 00005041 d457 d457 d457 d457 d457 d457 d457 -7746 d458 d458 d458 * * 335b 8ea2b3db,8ea2b3dbv 505b e5819b 505b 0000505b d458 d458 d458 d458 d458 d458 d458 -7747 d459 d459 d459 * * 335c 8ea2b3dc,8ea2b3dcv 504a e5818a 504a 0000504a d459 d459 d459 d459 d459 d459 d459 -7748 d45a d45a d45a * * 335d 8ea2b3dd,8ea2b3ddv 5062 e581a2 5062 00005062 d45a d45a d45a d45a d45a d45a d45a -7749 d45b d45b d45b * * 335e 8ea2b3de,8ea2b3dev 5015 e58095 5015 00005015 d45b d45b d45b d45b d45b d45b d45b -7750 d45c d45c d45c * * 335f 8ea2b3df,8ea2b3dfv 5045 e58185 5045 00005045 d45c d45c d45c d45c d45c d45c d45c -7751 d45d d45d d45d * * 3360 8ea2b3e0,8ea2b3e0v 505f e5819f 505f 0000505f d45d d45d d45d d45d d45d d45d d45d -7752 d45e d45e d45e * * 3361 8ea2b3e1,8ea2b3e1v 5069 e581a9 5069 00005069 d45e d45e d45e d45e d45e d45e d45e -7753 d45f d45f d45f * * 3362 8ea2b3e2,8ea2b3e2v 506b e581ab 506b 0000506b d45f d45f d45f d45f d45f d45f d45f -7754 d460 d460 d460 * * 3363 8ea2b3e3,8ea2b3e3v 5063 e581a3 5063 00005063 d460 d460 d460 d460 d460 d460 d460 -7755 d461 d461 d461 * * 3364 8ea2b3e4,8ea2b3e4v 5064 e581a4 5064 00005064 d461 d461 d461 d461 d461 d461 d461 -7756 d462 d462 d462 * * 3365 8ea2b3e5,8ea2b3e5v 5046 e58186 5046 00005046 d462 d462 d462 d462 d462 d462 d462 -7757 d463 d463 d463 * * 3366 8ea2b3e6,8ea2b3e6v 5040 e58180 5040 00005040 d463 d463 d463 d463 d463 d463 d463 -7758 d464 d464 d464 * * 3367 8ea2b3e7,8ea2b3e7v 506e e581ae 506e 0000506e d464 d464 d464 d464 d464 d464 d464 -7759 d465 d465 d465 * * 3368 8ea2b3e8,8ea2b3e8v 5073 e581b3 5073 00005073 d465 d465 d465 d465 d465 d465 d465 -7760 d466 d466 d466 * * 3369 8ea2b3e9,8ea2b3e9v 5057 e58197 5057 00005057 d466 d466 d466 d466 d466 d466 d466 -7761 d467 d467 d467 * * 336a 8ea2b3ea,8ea2b3eav 5051 e58191 5051 00005051 d467 d467 d467 d467 d467 d467 d467 -7762 d468 d468 d468 * * 336b 8ea2b3eb,8ea2b3ebv 51d0 e58790 51d0 000051d0 d468 d468 d468 d468 d468 d468 d468 -7763 d469 d469 d469 * * 336c 8ea2b3ec,8ea2b3ecv 526b e589ab 526b 0000526b d469 d469 d469 d469 d469 d469 d469 -7764 d46a d46a d46a * * 336d 8ea2b3ed,8ea2b3edv 526d e589ad 526d 0000526d d46a d46a d46a d46a d46a d46a d46a -7765 d46b d46b d46b * * 336e 8ea2b3ee,8ea2b3eev 526c e589ac 526c 0000526c d46b d46b d46b d46b d46b d46b d46b -7766 d46c d46c d46c * * 336f 8ea2b3ef,8ea2b3efv 526e e589ae 526e 0000526e d46c d46c d46c d46c d46c d46c d46c -7767 d46d d46d d46d * * 3370 8ea2b3f0,8ea2b3f0v 52d6 e58b96 52d6 000052d6 d46d d46d d46d d46d d46d d46d d46d -7768 d46e d46e d46e * * 3371 8ea2b3f1,8ea2b3f1v 52d3 e58b93 52d3 000052d3 d46e d46e d46e d46e d46e d46e d46e -7769 d46f d46f d46f * * 3372 8ea2b3f2,8ea2b3f2v 532d e58cad 532d 0000532d d46f d46f d46f d46f d46f d46f d46f -7770 d470 d470 d470 * * 3373 8ea2b3f3,8ea2b3f3v 539c e58e9c 539c 0000539c d470 d470 d470 d470 d470 d470 d470 -7771 d471 d471 d471 * * 3374 8ea2b3f4,8ea2b3f4v 5575 e595b5 5575 00005575 d471 d471 d471 d471 d471 d471 d471 -7772 d472 d472 d472 * * 3375 8ea2b3f5,8ea2b3f5v 5576 e595b6 5576 00005576 d472 d472 d472 d472 d472 d472 d472 -7773 d473 d473 d473 * * 3376 8ea2b3f6,8ea2b3f6v 553c e594bc 553c 0000553c d473 d473 d473 d473 d473 d473 d473 -7774 d474 d474 d474 * * 3377 8ea2b3f7,8ea2b3f7v 554d e5958d 554d 0000554d d474 d474 d474 d474 d474 d474 d474 -7775 d475 d475 d475 * * 3378 8ea2b3f8,8ea2b3f8v 5550 e59590 5550 00005550 d475 d475 d475 d475 d475 d475 d475 -7776 d476 d476 d476 * * 3379 8ea2b3f9,8ea2b3f9v 5534 e594b4 5534 00005534 d476 d476 d476 d476 d476 d476 d476 -7777 d477 d477 d477 * * 337a 8ea2b3fa,8ea2b3fav 552a e594aa 552a 0000552a d477 d477 d477 d477 d477 d477 d477 -7778 d478 d478 d478 * * 337b 8ea2b3fb,8ea2b3fbv 5551 e59591 5551 00005551 d478 d478 d478 d478 d478 d478 d478 -7779 d479 d479 d479 * * 337c 8ea2b3fc,8ea2b3fcv 5562 e595a2 5562 00005562 d479 d479 d479 d479 d479 d479 d479 -7780 d47a d47a d47a * * 337d 8ea2b3fd,8ea2b3fdv 5536 e594b6 5536 00005536 d47a d47a d47a d47a d47a d47a d47a -7781 d47b d47b d47b * * 337e 8ea2b3fe,8ea2b3fev 5535 e594b5 5535 00005535 d47b d47b d47b d47b d47b d47b d47b -7782 d47c d47c d47c * * 3421 8ea2b4a1,8ea2b4a1v 5530 e594b0 5530 00005530 d47c d47c d47c d47c d47c d47c d47c -7783 d47d d47d d47d * * 3422 8ea2b4a2,8ea2b4a2v 5552 e59592 5552 00005552 d47d d47d d47d d47d d47d d47d d47d -7784 d47e d47e d47e * * 3423 8ea2b4a3,8ea2b4a3v 5545 e59585 5545 00005545 d47e d47e d47e d47e d47e d47e d47e -7785 d4a1 d4a1 d4a1 * * 3424 8ea2b4a4,8ea2b4a4v 550c e5948c 550c 0000550c d4a1 d4a1 d4a1 d4a1 d4a1 d4a1 d4a1 -7786 d4a2 d4a2 d4a2 * * 3425 8ea2b4a5,8ea2b4a5v 5532 e594b2 5532 00005532 d4a2 d4a2 d4a2 d4a2 d4a2 d4a2 d4a2 -7787 d4a3 d4a3 d4a3 * * 3426 8ea2b4a6,8ea2b4a6v 5565 e595a5 5565 00005565 d4a3 d4a3 d4a3 d4a3 d4a3 d4a3 d4a3 -7788 d4a4 d4a4 d4a4 * * 3427 8ea2b4a7,8ea2b4a7v 554e e5958e 554e 0000554e d4a4 d4a4 d4a4 d4a4 d4a4 d4a4 d4a4 -7789 d4a5 d4a5 d4a5 * * 3428 8ea2b4a8,8ea2b4a8v 5539 e594b9 5539 00005539 d4a5 d4a5 d4a5 d4a5 d4a5 d4a5 d4a5 -7790 d4a6 d4a6 d4a6 * * 3429 8ea2b4a9,8ea2b4a9v 5548 e59588 5548 00005548 d4a6 d4a6 d4a6 d4a6 d4a6 d4a6 d4a6 -7791 d4a7 d4a7 d4a7 * * 342a 8ea2b4aa,8ea2b4aav 552d e594ad 552d 0000552d d4a7 d4a7 d4a7 d4a7 d4a7 d4a7 d4a7 -7792 d4a8 d4a8 d4a8 * * 342b 8ea2b4ab,8ea2b4abv 553b e594bb 553b 0000553b d4a8 d4a8 d4a8 d4a8 d4a8 d4a8 d4a8 -7793 d4a9 d4a9 d4a9 * * 342c 8ea2b4ac,8ea2b4acv 5540 e59580 5540 00005540 d4a9 d4a9 d4a9 d4a9 d4a9 d4a9 d4a9 -7794 d4aa d4aa d4aa * * 342d 8ea2b4ad,8ea2b4adv 554b e5958b 554b 0000554b d4aa d4aa d4aa d4aa d4aa d4aa d4aa -7795 d4ab d4ab d4ab * * 342e 8ea2b4ae,8ea2b4aev 570a e59c8a 570a 0000570a d4ab d4ab d4ab d4ab d4ab d4ab d4ab -7796 d4ac d4ac d4ac * * 342f 8ea2b4af,8ea2b4afv 5707 e59c87 5707 00005707 d4ac d4ac d4ac d4ac d4ac d4ac d4ac -7797 d4ad d4ad d4ad * * 3430 8ea2b4b0,8ea2b4b0v 57fb e59fbb 57fb 000057fb d4ad d4ad d4ad d4ad d4ad d4ad d4ad -7798 d4ae d4ae d4ae * * 3431 8ea2b4b1,8ea2b4b1v 5814 e5a094 5814 00005814 d4ae d4ae d4ae d4ae d4ae d4ae d4ae -7799 d4af d4af d4af * * 3432 8ea2b4b2,8ea2b4b2v 57e2 e59fa2 57e2 000057e2 d4af d4af d4af d4af d4af d4af d4af -7800 d4b0 d4b0 d4b0 * * 3433 8ea2b4b3,8ea2b4b3v 57f6 e59fb6 57f6 000057f6 d4b0 d4b0 d4b0 d4b0 d4b0 d4b0 d4b0 -7801 d4b1 d4b1 d4b1 * * 3434 8ea2b4b4,8ea2b4b4v 57dc e59f9c 57dc 000057dc d4b1 d4b1 d4b1 d4b1 d4b1 d4b1 d4b1 -7802 d4b2 d4b2 d4b2 * * 3435 8ea2b4b5,8ea2b4b5v 57f4 e59fb4 57f4 000057f4 d4b2 d4b2 d4b2 d4b2 d4b2 d4b2 d4b2 -7803 d4b3 d4b3 d4b3 * * 3436 8ea2b4b6,8ea2b4b6v 5800 e5a080 5800 00005800 d4b3 d4b3 d4b3 d4b3 d4b3 d4b3 d4b3 -7804 d4b4 d4b4 d4b4 * * 3437 8ea2b4b7,8ea2b4b7v 57ed e59fad 57ed 000057ed d4b4 d4b4 d4b4 d4b4 d4b4 d4b4 d4b4 -7805 d4b5 d4b5 d4b5 * * 3438 8ea2b4b8,8ea2b4b8v 57fd e59fbd 57fd 000057fd d4b5 d4b5 d4b5 d4b5 d4b5 d4b5 d4b5 -7806 d4b6 d4b6 d4b6 * * 3439 8ea2b4b9,8ea2b4b9v 5808 e5a088 5808 00005808 d4b6 d4b6 d4b6 d4b6 d4b6 d4b6 d4b6 -7807 d4b7 d4b7 d4b7 * * 343a 8ea2b4ba,8ea2b4bav 57f8 e59fb8 57f8 000057f8 d4b7 d4b7 d4b7 d4b7 d4b7 d4b7 d4b7 -7808 d4b8 d4b8 d4b8 * * 343b 8ea2b4bb,8ea2b4bbv 580b e5a08b 580b 0000580b d4b8 d4b8 d4b8 d4b8 d4b8 d4b8 d4b8 -7809 d4b9 d4b9 d4b9 * * 343c 8ea2b4bc,8ea2b4bcv 57f3 e59fb3 57f3 000057f3 d4b9 d4b9 d4b9 d4b9 d4b9 d4b9 d4b9 -7810 d4ba d4ba d4ba * * 343d 8ea2b4bd,8ea2b4bdv 57cf e59f8f 57cf 000057cf d4ba d4ba d4ba d4ba d4ba d4ba d4ba -7811 d4bb d4bb d4bb * * 343e 8ea2b4be,8ea2b4bev 5807 e5a087 5807 00005807 d4bb d4bb d4bb d4bb d4bb d4bb d4bb -7812 d4bc d4bc d4bc * * 343f 8ea2b4bf,8ea2b4bfv 57ee e59fae 57ee 000057ee d4bc d4bc d4bc d4bc d4bc d4bc d4bc -7813 d4bd d4bd d4bd * * 3440 8ea2b4c0,8ea2b4c0v 57e3 e59fa3 57e3 000057e3 d4bd d4bd d4bd d4bd d4bd d4bd d4bd -7814 d4be d4be d4be * * 3441 8ea2b4c1,8ea2b4c1v 57f2 e59fb2 57f2 000057f2 d4be d4be d4be d4be d4be d4be d4be -7815 d4bf d4bf d4bf * * 3442 8ea2b4c2,8ea2b4c2v 57e5 e59fa5 57e5 000057e5 d4bf d4bf d4bf d4bf d4bf d4bf d4bf -7816 d4c0 d4c0 d4c0 * * 3443 8ea2b4c3,8ea2b4c3v 57ec e59fac 57ec 000057ec d4c0 d4c0 d4c0 d4c0 d4c0 d4c0 d4c0 -7817 d4c1 d4c1 d4c1 * * 3444 8ea2b4c4,8ea2b4c4v 57e1 e59fa1 57e1 000057e1 d4c1 d4c1 d4c1 d4c1 d4c1 d4c1 d4c1 -7818 d4c2 d4c2 d4c2 * * 3445 8ea2b4c5,8ea2b4c5v 580e e5a08e 580e 0000580e d4c2 d4c2 d4c2 d4c2 d4c2 d4c2 d4c2 -7819 d4c3 d4c3 d4c3 * * 3446 8ea2b4c6,8ea2b4c6v 57fc e59fbc 57fc 000057fc d4c3 d4c3 d4c3 d4c3 d4c3 d4c3 d4c3 -7820 d4c4 d4c4 d4c4 * * 3447 8ea2b4c7,8ea2b4c7v 5810 e5a090 5810 00005810 d4c4 d4c4 d4c4 d4c4 d4c4 d4c4 d4c4 -7821 d4c5 d4c5 d4c5 * * 3448 8ea2b4c8,8ea2b4c8v 57e7 e59fa7 57e7 000057e7 d4c5 d4c5 d4c5 d4c5 d4c5 d4c5 d4c5 -7822 d4c6 d4c6 d4c6 * * 3449 8ea2b4c9,8ea2b4c9v 5801 e5a081 5801 00005801 d4c6 d4c6 d4c6 d4c6 d4c6 d4c6 d4c6 -7823 d4c7 d4c7 d4c7 * * 344a 8ea2b4ca,8ea2b4cav 580c e5a08c 580c 0000580c d4c7 d4c7 d4c7 d4c7 d4c7 d4c7 d4c7 -7824 d4c8 d4c8 d4c8 * * 344b 8ea2b4cb,8ea2b4cbv 57f1 e59fb1 57f1 000057f1 d4c8 d4c8 d4c8 d4c8 d4c8 d4c8 d4c8 -7825 d4c9 d4c9 d4c9 * * 344c 8ea2b4cc,8ea2b4ccv 57e9 e59fa9 57e9 000057e9 d4c9 d4c9 d4c9 d4c9 d4c9 d4c9 d4c9 -7826 d4ca d4ca d4ca * * 344d 8ea2b4cd,8ea2b4cdv 57f0 e59fb0 57f0 000057f0 d4ca d4ca d4ca d4ca d4ca d4ca d4ca -7827 d4cb d4cb d4cb * * 344e 8ea2b4ce,8ea2b4cev 580d e5a08d 580d 0000580d d4cb d4cb d4cb d4cb d4cb d4cb d4cb -7828 d4cc d4cc d4cc * * 344f 8ea2b4cf,8ea2b4cfv 5804 e5a084 5804 00005804 d4cc d4cc d4cc d4cc d4cc d4cc d4cc -7829 d4cd d4cd d4cd * * 3450 8ea2b4d0,8ea2b4d0v 595c e5a59c 595c 0000595c d4cd d4cd d4cd d4cd d4cd d4cd d4cd -7830 d4ce d4ce d4ce * * 3451 8ea2b4d1,8ea2b4d1v 5a60 e5a9a0 5a60 00005a60 d4ce d4ce d4ce d4ce d4ce d4ce d4ce -7831 d4cf d4cf d4cf * * 3452 8ea2b4d2,8ea2b4d2v 5a58 e5a998 5a58 00005a58 d4cf d4cf d4cf d4cf d4cf d4cf d4cf -7832 d4d0 d4d0 d4d0 * * 3453 8ea2b4d3,8ea2b4d3v 5a55 e5a995 5a55 00005a55 d4d0 d4d0 d4d0 d4d0 d4d0 d4d0 d4d0 -7833 d4d1 d4d1 d4d1 * * 3454 8ea2b4d4,8ea2b4d4v 5a67 e5a9a7,eeb095 5a67,ec15 00005a67,0000ec15 9cd0,d4d1 d4d1 d4d1 d4d1 d4d1 d4d1 9cd0,d4d1 -7834 d4d2 d4d2 d4d2 * * 3455 8ea2b4d5,8ea2b4d5v 5a5e e5a99e 5a5e 00005a5e d4d2 d4d2 d4d2 d4d2 d4d2 d4d2 d4d2 -7835 d4d3 d4d3 d4d3 * * 3456 8ea2b4d6,8ea2b4d6v 5a38 e5a8b8 5a38 00005a38 d4d3 d4d3 d4d3 d4d3 d4d3 d4d3 d4d3 -7836 d4d4 d4d4 d4d4 * * 3457 8ea2b4d7,8ea2b4d7v 5a35 e5a8b5 5a35 00005a35 d4d4 d4d4 d4d4 d4d4 d4d4 d4d4 d4d4 -7837 d4d5 d4d5 d4d5 * * 3458 8ea2b4d8,8ea2b4d8v 5a6d e5a9ad 5a6d 00005a6d d4d5 d4d5 d4d5 d4d5 d4d5 d4d5 d4d5 -7838 d4d6 d4d6 d4d6 * * 3459 8ea2b4d9,8ea2b4d9v 5a50 e5a990 5a50 00005a50 d4d6 d4d6 d4d6 d4d6 d4d6 d4d6 d4d6 -7839 d4d7 d4d7 d4d7 * * 345a 8ea2b4da,8ea2b4dav 5a5f e5a99f 5a5f 00005a5f d4d7 d4d7 d4d7 d4d7 d4d7 d4d7 d4d7 -7840 d4d8 d4d8 d4d8 * * 345b 8ea2b4db,8ea2b4dbv 5a65 e5a9a5 5a65 00005a65 d4d8 d4d8 d4d8 d4d8 d4d8 d4d8 d4d8 -7841 d4d9 d4d9 d4d9 * * 345c 8ea2b4dc,8ea2b4dcv 5a6c e5a9ac 5a6c 00005a6c d4d9 d4d9 d4d9 d4d9 d4d9 d4d9 d4d9 -7842 d4da d4da d4da * * 345d 8ea2b4dd,8ea2b4ddv 5a53 e5a993 5a53 00005a53 d4da d4da d4da d4da d4da d4da d4da -7843 d4db d4db d4db * * 345e 8ea2b4de,8ea2b4dev 5a64 e5a9a4 5a64 00005a64 d4db d4db d4db d4db d4db d4db d4db -7844 d4dc d4dc d4dc * * 345f 8ea2b4df,8ea2b4dfv 5a57 e5a997 5a57 00005a57 d4dc d4dc d4dc d4dc d4dc d4dc d4dc -7845 d4dd d4dd d4dd * * 3460 8ea2b4e0,8ea2b4e0v 5a43 e5a983 5a43 00005a43 d4dd d4dd d4dd d4dd d4dd d4dd d4dd -7846 d4de d4de d4de * * 3461 8ea2b4e1,8ea2b4e1v 5a5d e5a99d 5a5d 00005a5d d4de d4de d4de d4de d4de d4de d4de -7847 d4df d4df d4df * * 3462 8ea2b4e2,8ea2b4e2v 5a52 e5a992 5a52 00005a52 d4df d4df d4df d4df d4df d4df d4df -7848 d4e0 d4e0 d4e0 * * 3463 8ea2b4e3,8ea2b4e3v 5a44 e5a984 5a44 00005a44 d4e0 d4e0 d4e0 d4e0 d4e0 d4e0 d4e0 -7849 d4e1 d4e1 d4e1 * * 3464 8ea2b4e4,8ea2b4e4v 5a5b e5a99b 5a5b 00005a5b d4e1 d4e1 d4e1 d4e1 d4e1 d4e1 d4e1 -7850 d4e2 d4e2 d4e2 * * 3465 8ea2b4e5,8ea2b4e5v 5a48 e5a988 5a48 00005a48 d4e2 d4e2 d4e2 d4e2 d4e2 d4e2 d4e2 -7851 d4e3 d4e3 d4e3 * * 3466 8ea2b4e6,8ea2b4e6v 5a8e e5aa8e 5a8e 00005a8e d4e3 d4e3 d4e3 d4e3 d4e3 d4e3 d4e3 -7852 d4e4 d4e4 d4e4 * * 3467 8ea2b4e7,8ea2b4e7v 5a3e e5a8be 5a3e 00005a3e d4e4 d4e4 d4e4 d4e4 d4e4 d4e4 d4e4 -7853 d4e5 d4e5 d4e5 * * 3468 8ea2b4e8,8ea2b4e8v 5a4d e5a98d 5a4d 00005a4d d4e5 d4e5 d4e5 d4e5 d4e5 d4e5 d4e5 -7854 d4e6 d4e6 d4e6 * * 3469 8ea2b4e9,8ea2b4e9v 5a39 e5a8b9 5a39 00005a39 d4e6 d4e6 d4e6 d4e6 d4e6 d4e6 d4e6 -7855 d4e7 d4e7 d4e7 * * 346a 8ea2b4ea,8ea2b4eav 5a4c e5a98c 5a4c 00005a4c d4e7 d4e7 d4e7 d4e7 d4e7 d4e7 d4e7 -7856 d4e8 d4e8 d4e8 * * 346b 8ea2b4eb,8ea2b4ebv 5a70 e5a9b0 5a70 00005a70 d4e8 d4e8 d4e8 d4e8 d4e8 d4e8 d4e8 -7857 d4e9 d4e9 d4e9 * * 346c 8ea2b4ec,8ea2b4ecv 5a69 e5a9a9 5a69 00005a69 d4e9 d4e9 d4e9 d4e9 d4e9 d4e9 d4e9 -7858 d4ea d4ea d4ea * * 346d 8ea2b4ed,8ea2b4edv 5a47 e5a987 5a47 00005a47 d4ea d4ea d4ea d4ea d4ea d4ea d4ea -7859 d4eb d4eb d4eb * * 346e 8ea2b4ee,8ea2b4eev 5a51 e5a991 5a51 00005a51 d4eb d4eb d4eb d4eb d4eb d4eb d4eb -7860 d4ec d4ec d4ec * * 346f 8ea2b4ef,8ea2b4efv 5a56 e5a996 5a56 00005a56 d4ec d4ec d4ec d4ec d4ec d4ec d4ec -7861 d4ed d4ed d4ed * * 3470 8ea2b4f0,8ea2b4f0v 5a42 e5a982 5a42 00005a42 d4ed d4ed d4ed d4ed d4ed d4ed d4ed -7862 d4ee d4ee d4ee * * 3471 8ea2b4f1,8ea2b4f1v 5a5c e5a99c 5a5c 00005a5c d4ee d4ee d4ee d4ee d4ee d4ee d4ee -7863 d4ef d4ef d4ef * * 3472 8ea2b4f2,8ea2b4f2v 5b72 e5adb2 5b72 00005b72 d4ef d4ef d4ef d4ef d4ef d4ef d4ef -7864 d4f0 d4f0 d4f0 * * 3473 8ea2b4f3,8ea2b4f3v 5b6e e5adae 5b6e 00005b6e d4f0 d4f0 d4f0 d4f0 d4f0 d4f0 d4f0 -7865 d4f1 d4f1 d4f1 * * 3474 8ea2b4f4,8ea2b4f4v 5bc1 e5af81 5bc1 00005bc1 d4f1 d4f1 d4f1 d4f1 d4f1 d4f1 d4f1 -7866 d4f2 d4f2 d4f2 * * 3475 8ea2b4f5,8ea2b4f5v 5bc0 e5af80 5bc0 00005bc0 d4f2 d4f2 d4f2 d4f2 d4f2 d4f2 d4f2 -7867 d4f3 d4f3 d4f3 * * 3476 8ea2b4f6,8ea2b4f6v 5c59 e5b199 5c59 00005c59 d4f3 d4f3 d4f3 d4f3 d4f3 d4f3 d4f3 -7868 d4f4 d4f4 d4f4 * * 3477 8ea2b4f7,8ea2b4f7v 5d1e e5b49e 5d1e 00005d1e d4f4 d4f4 d4f4 d4f4 d4f4 d4f4 d4f4 -7869 d4f5 d4f5 d4f5 * * 3478 8ea2b4f8,8ea2b4f8v 5d0b e5b48b 5d0b 00005d0b d4f5 d4f5 d4f5 d4f5 d4f5 d4f5 d4f5 -7870 d4f6 d4f6 d4f6 * * 3479 8ea2b4f9,8ea2b4f9v 5d1d e5b49d 5d1d 00005d1d d4f6 d4f6 d4f6 d4f6 d4f6 d4f6 d4f6 -7871 d4f7 d4f7 d4f7 * * 347a 8ea2b4fa,8ea2b4fav 5d1a e5b49a 5d1a 00005d1a d4f7 d4f7 d4f7 d4f7 d4f7 d4f7 d4f7 -7872 d4f8 d4f8 d4f8 * * 347b 8ea2b4fb,8ea2b4fbv 5d20 e5b4a0 5d20 00005d20 d4f8 d4f8 d4f8 d4f8 d4f8 d4f8 d4f8 -7873 d4f9 d4f9 d4f9 * * 347c 8ea2b4fc,8ea2b4fcv 5d0c e5b48c 5d0c 00005d0c d4f9 d4f9 d4f9 d4f9 d4f9 d4f9 d4f9 -7874 d4fa d4fa d4fa * * 347d 8ea2b4fd,8ea2b4fdv 5d28 e5b4a8 5d28 00005d28 d4fa d4fa d4fa d4fa d4fa d4fa d4fa -7875 d4fb d4fb d4fb * * 347e 8ea2b4fe,8ea2b4fev 5d0d e5b48d 5d0d 00005d0d d4fb d4fb d4fb d4fb d4fb d4fb d4fb -7876 d4fc d4fc d4fc * * 3521 8ea2b5a1,8ea2b5a1v 5d26 e5b4a6 5d26 00005d26 d4fc d4fc d4fc d4fc d4fc d4fc d4fc -7877 d4fd d4fd d4fd * * 3522 8ea2b5a2,8ea2b5a2v 5d25 e5b4a5 5d25 00005d25 d4fd d4fd d4fd d4fd d4fd d4fd d4fd -7878 d4fe d4fe d4fe * * 3523 8ea2b5a3,8ea2b5a3v 5d0f e5b48f 5d0f 00005d0f d4fe d4fe d4fe d4fe d4fe d4fe d4fe -7879 d540 d540 d540 * * 3524 8ea2b5a4,8ea2b5a4v 5d30 e5b4b0 5d30 00005d30 d540 d540 d540 d540 d540 d540 d540 -7880 d541 d541 d541 * * 3525 8ea2b5a5,8ea2b5a5v 5d12 e5b492 5d12 00005d12 d541 d541 d541 d541 d541 d541 d541 -7881 d542 d542 d542 * * 3526 8ea2b5a6,8ea2b5a6v 5d23 e5b4a3 5d23 00005d23 d542 d542 d542 d542 d542 d542 d542 -7882 d543 d543 d543 * * 3527 8ea2b5a7,8ea2b5a7v 5d1f e5b49f 5d1f 00005d1f d543 d543 d543 d543 d543 d543 d543 -7883 d544 d544 d544 * * 3528 8ea2b5a8,8ea2b5a8v 5d2e e5b4ae 5d2e 00005d2e d544 d544 d544 d544 d544 d544 d544 -7884 d545 d545 d545 * * 3529 8ea2b5a9,8ea2b5a9v 5e3e e5b8be 5e3e 00005e3e d545 d545 d545 d545 d545 d545 d545 -7885 d546 d546 d546 * * 352a 8ea2b5aa,8ea2b5aav 5e34 e5b8b4 5e34 00005e34 d546 d546 d546 d546 d546 d546 d546 -7886 d547 d547 d547 * * 352b 8ea2b5ab,8ea2b5abv 5eb1 e5bab1 5eb1 00005eb1 d547 d547 d547 d547 d547 d547 d547 -7887 d548 d548 d548 * * 352c 8ea2b5ac,8ea2b5acv 5eb4 e5bab4 5eb4 00005eb4 d548 d548 d548 d548 d548 d548 d548 -7888 d549 d549 d549 * * 352d 8ea2b5ad,8ea2b5adv 5eb9 e5bab9 5eb9 00005eb9 d549 d549 d549 d549 d549 d549 d549 -7889 d54a d54a d54a * * 352e 8ea2b5ae,8ea2b5aev 5eb2 e5bab2 5eb2 00005eb2 d54a d54a d54a d54a d54a d54a d54a -7890 d54b d54b d54b * * 352f 8ea2b5af,8ea2b5afv 5eb3 e5bab3 5eb3 00005eb3 d54b d54b d54b d54b d54b d54b d54b -7891 d54c d54c d54c * * 3530 8ea2b5b0,8ea2b5b0v 5f36 e5bcb6 5f36 00005f36 d54c d54c d54c d54c d54c d54c d54c -7892 d54d d54d d54d * * 3531 8ea2b5b1,8ea2b5b1v 5f38 e5bcb8 5f38 00005f38 d54d d54d d54d d54d d54d d54d d54d -7893 d54e d54e d54e * * 3532 8ea2b5b2,8ea2b5b2v 5f9b e5be9b 5f9b 00005f9b d54e d54e d54e d54e d54e d54e d54e -7894 d54f d54f d54f * * 3533 8ea2b5b3,8ea2b5b3v 5f96 e5be96 5f96 00005f96 d54f d54f d54f d54f d54f d54f d54f -7895 d550 d550 d550 * * 3534 8ea2b5b4,8ea2b5b4v 5f9f e5be9f 5f9f 00005f9f d550 d550 d550 d550 d550 d550 d550 -7896 d551 d551 d551 * * 3535 8ea2b5b5,8ea2b5b5v 608a e6828a 608a 0000608a d551 d551 d551 d551 d551 d551 d551 -7897 d552 d552 d552 * * 3536 8ea2b5b6,8ea2b5b6v 6090 e68290 6090 00006090 d552 d552 d552 d552 d552 d552 d552 -7898 d553 d553 d553 * * 3537 8ea2b5b7,8ea2b5b7v 6086 e68286 6086 00006086 d553 d553 d553 d553 d553 d553 d553 -7899 d554 d554 d554 * * 3538 8ea2b5b8,8ea2b5b8v 60be e682be 60be 000060be d554 d554 d554 d554 d554 d554 d554 -7900 d555 d555 d555 * * 3539 8ea2b5b9,8ea2b5b9v 60b0 e682b0 60b0 000060b0 d555 d555 d555 d555 d555 d555 d555 -7901 d556 d556 d556 * * 353a 8ea2b5ba,8ea2b5bav 60ba e682ba 60ba 000060ba d556 d556 d556 d556 d556 d556 d556 -7902 d557 d557 d557 * * 353b 8ea2b5bb,8ea2b5bbv 60d3 e68393 60d3 000060d3 d557 d557 d557 d557 d557 d557 d557 -7903 d558 d558 d558 * * 353c 8ea2b5bc,8ea2b5bcv 60d4 e68394 60d4 000060d4 d558 d558 d558 d558 d558 d558 d558 -7904 d559 d559 d559 * * 353d 8ea2b5bd,8ea2b5bdv 60cf e6838f 60cf 000060cf d559 d559 d559 d559 d559 d559 d559 -7905 d55a d55a d55a * * 353e 8ea2b5be,8ea2b5bev 60e4 e683a4 60e4 000060e4 d55a d55a d55a d55a d55a d55a d55a -7906 d55b d55b d55b * * 353f 8ea2b5bf,8ea2b5bfv 60d9 e68399 60d9 000060d9 d55b d55b d55b d55b d55b d55b d55b -7907 d55c d55c d55c * * 3540 8ea2b5c0,8ea2b5c0v 60dd e6839d 60dd 000060dd d55c d55c d55c d55c d55c d55c d55c -7908 d55d d55d d55d * * 3541 8ea2b5c1,8ea2b5c1v 60c8 e68388 60c8 000060c8 d55d d55d d55d d55d d55d d55d d55d -7909 d55e d55e d55e * * 3542 8ea2b5c2,8ea2b5c2v 60b1 e682b1 60b1 000060b1 d55e d55e d55e d55e d55e d55e d55e -7910 d55f d55f d55f * * 3543 8ea2b5c3,8ea2b5c3v 60db e6839b 60db 000060db d55f d55f d55f d55f d55f d55f d55f -7911 d560 d560 d560 * * 3544 8ea2b5c4,8ea2b5c4v 60b7 e682b7 60b7 000060b7 d560 d560 d560 d560 d560 d560 d560 -7912 d561 d561 d561 * * 3545 8ea2b5c5,8ea2b5c5v 60ca e6838a 60ca 000060ca d561 d561 d561 d561 d561 d561 d561 -7913 d562 d562 d562 * * 3546 8ea2b5c6,8ea2b5c6v 60bf e682bf 60bf 000060bf d562 d562 d562 d562 d562 d562 d562 -7914 d563 d563 d563 * * 3547 8ea2b5c7,8ea2b5c7v 60c3 e68383 60c3 000060c3 d563 d563 d563 d563 d563 d563 d563 -7915 d564 d564 d564 * * 3548 8ea2b5c8,8ea2b5c8v 60cd e6838d 60cd 000060cd d564 d564 d564 d564 d564 d564 d564 -7916 d565 d565 d565 * * 3549 8ea2b5c9,8ea2b5c9v 60c0 e68380 60c0 000060c0 d565 d565 d565 d565 d565 d565 d565 -7917 d566 d566 d566 * * 354a 8ea2b5ca,8ea2b5cav 6332 e68cb2 6332 00006332 d566 d566 d566 d566 d566 d566 d566 -7918 d567 d567 d567 * * 354b 8ea2b5cb,8ea2b5cbv 6365 e68da5 6365 00006365 d567 d567 d567 d567 d567 d567 d567 -7919 d568 d568 d568 * * 354c 8ea2b5cc,8ea2b5ccv 638a e68e8a 638a 0000638a d568 d568 d568 d568 d568 d568 d568 -7920 d569 d569 d569 * * 354d 8ea2b5cd,8ea2b5cdv 6382 e68e82 6382 00006382 d569 d569 d569 d569 d569 d569 d569 -7921 d56a d56a d56a * * 354e 8ea2b5ce,8ea2b5cev 637d e68dbd 637d 0000637d d56a d56a d56a d56a d56a d56a d56a -7922 d56b d56b d56b * * 354f 8ea2b5cf,8ea2b5cfv 63bd e68ebd 63bd 000063bd d56b d56b d56b d56b d56b d56b d56b -7923 d56c d56c d56c * * 3550 8ea2b5d0,8ea2b5d0v 639e e68e9e 639e 0000639e d56c d56c d56c d56c d56c d56c d56c -7924 d56d d56d d56d * * 3551 8ea2b5d1,8ea2b5d1v 63ad e68ead 63ad 000063ad d56d d56d d56d d56d d56d d56d d56d -7925 d56e d56e d56e * * 3552 8ea2b5d2,8ea2b5d2v 639d e68e9d 639d 0000639d d56e d56e d56e d56e d56e d56e d56e -7926 d56f d56f d56f * * 3553 8ea2b5d3,8ea2b5d3v 6397 e68e97 6397 00006397 d56f d56f d56f d56f d56f d56f d56f -7927 d570 d570 d570 * * 3554 8ea2b5d4,8ea2b5d4v 63ab e68eab 63ab 000063ab d570 d570 d570 d570 d570 d570 d570 -7928 d571 d571 d571 * * 3555 8ea2b5d5,8ea2b5d5v 638e e68e8e 638e 0000638e d571 d571 d571 d571 d571 d571 d571 -7929 d572 d572 d572 * * 3556 8ea2b5d6,8ea2b5d6v 636f e68daf 636f 0000636f d572 d572 d572 d572 d572 d572 d572 -7930 d573 d573 d573 * * 3557 8ea2b5d7,8ea2b5d7v 6387 e68e87 6387 00006387 d573 d573 d573 d573 d573 d573 d573 -7931 d574 d574 d574 * * 3558 8ea2b5d8,8ea2b5d8v 6390 e68e90 6390 00006390 d574 d574 d574 d574 d574 d574 d574 -7932 d575 d575 d575 * * 3559 8ea2b5d9,8ea2b5d9v 636e e68dae 636e 0000636e d575 d575 d575 d575 d575 d575 d575 -7933 d576 d576 d576 * * 355a 8ea2b5da,8ea2b5dav 63af e68eaf 63af 000063af d576 d576 d576 d576 d576 d576 d576 -7934 d577 d577 d577 * * 355b 8ea2b5db,8ea2b5dbv 6375 e68db5 6375 00006375 d577 d577 d577 d577 d577 d577 d577 -7935 d578 d578 d578 * * 355c 8ea2b5dc,8ea2b5dcv 639c e68e9c 639c 0000639c d578 d578 d578 d578 d578 d578 d578 -7936 d579 d579 d579 * * 355d 8ea2b5dd,8ea2b5ddv 636d e68dad 636d 0000636d d579 d579 d579 d579 d579 d579 d579 -7937 d57a d57a d57a * * 355e 8ea2b5de,8ea2b5dev 63ae e68eae 63ae 000063ae d57a d57a d57a d57a d57a d57a d57a -7938 d57b d57b d57b * * 355f 8ea2b5df,8ea2b5dfv 637c e68dbc 637c 0000637c d57b d57b d57b d57b d57b d57b d57b -7939 d57c d57c d57c * * 3560 8ea2b5e0,8ea2b5e0v 63a4 e68ea4 63a4 000063a4 d57c d57c d57c d57c d57c d57c d57c -7940 d57d d57d d57d * * 3561 8ea2b5e1,8ea2b5e1v 633b e68cbb 633b 0000633b d57d d57d d57d d57d d57d d57d d57d -7941 d57e d57e d57e * * 3562 8ea2b5e2,8ea2b5e2v 639f e68e9f 639f 0000639f d57e d57e d57e d57e d57e d57e d57e -7942 d5a1 d5a1 d5a1 * * 3563 8ea2b5e3,8ea2b5e3v 6378 e68db8 6378 00006378 d5a1 d5a1 d5a1 d5a1 d5a1 d5a1 d5a1 -7943 d5a2 d5a2 d5a2 * * 3564 8ea2b5e4,8ea2b5e4v 6385 e68e85 6385 00006385 d5a2 d5a2 d5a2 d5a2 d5a2 d5a2 d5a2 -7944 d5a3 d5a3 d5a3 * * 3565 8ea2b5e5,8ea2b5e5v 6381 e68e81 6381 00006381 d5a3 d5a3 d5a3 d5a3 d5a3 d5a3 d5a3 -7945 d5a4 d5a4 d5a4 * * 3566 8ea2b5e6,8ea2b5e6v 6391 e68e91 6391 00006391 d5a4 d5a4 d5a4 d5a4 d5a4 d5a4 d5a4 -7946 d5a5 d5a5 d5a5 * * 3567 8ea2b5e7,8ea2b5e7v 638d e68e8d 638d 0000638d d5a5 d5a5 d5a5 d5a5 d5a5 d5a5 d5a5 -7947 d5a6 d5a6 d5a6 * * 3568 8ea2b5e8,8ea2b5e8v 6370 e68db0 6370 00006370 d5a6 d5a6 d5a6 d5a6 d5a6 d5a6 d5a6 -7948 d5a7 d5a7 d5a7 * * 3569 8ea2b5e9,8ea2b5e9v 6553 e69593 6553 00006553 d5a7 d5a7 d5a7 d5a7 d5a7 d5a7 d5a7 -7949 d5a8 d5a8 d5a8 * * 356a 8ea2b5ea,8ea2b5eav 65cd e6978d 65cd 000065cd d5a8 d5a8 d5a8 d5a8 d5a8 d5a8 d5a8 -7950 d5a9 d5a9 d5a9 * * 356b 8ea2b5eb,8ea2b5ebv 6665 e699a5 6665 00006665 d5a9 d5a9 d5a9 d5a9 d5a9 d5a9 d5a9 -7951 d5aa d5aa d5aa * * 356c 8ea2b5ec,8ea2b5ecv 6661 e699a1 6661 00006661 d5aa d5aa d5aa d5aa d5aa d5aa d5aa -7952 d5ab d5ab d5ab * * 356d 8ea2b5ed,8ea2b5edv 665b e6999b 665b 0000665b d5ab d5ab d5ab d5ab d5ab d5ab d5ab -7953 d5ac d5ac d5ac * * 356e 8ea2b5ee,8ea2b5eev 6659 e69999 6659 00006659 d5ac d5ac d5ac d5ac d5ac d5ac d5ac -7954 d5ad d5ad d5ad * * 356f 8ea2b5ef,8ea2b5efv 665c e6999c 665c 0000665c d5ad d5ad d5ad d5ad d5ad d5ad d5ad -7955 d5ae d5ae d5ae * * 3570 8ea2b5f0,8ea2b5f0v 6662 e699a2 6662 00006662 d5ae d5ae d5ae d5ae d5ae d5ae d5ae -7956 d5af d5af d5af * * 3571 8ea2b5f1,8ea2b5f1v 6718 e69c98 6718 00006718 d5af d5af d5af d5af d5af d5af d5af -7957 d5b0 d5b0 d5b0 * * 3572 8ea2b5f2,8ea2b5f2v 6879 e6a1b9 6879 00006879 d5b0 d5b0 d5b0 d5b0 d5b0 d5b0 d5b0 -7958 d5b1 d5b1 d5b1 * * 3573 8ea2b5f3,8ea2b5f3v 6887 e6a287 6887 00006887 d5b1 d5b1 d5b1 d5b1 d5b1 d5b1 d5b1 -7959 d5b2 d5b2 d5b2 * * 3574 8ea2b5f4,8ea2b5f4v 6890 e6a290 6890 00006890 d5b2 d5b2 d5b2 d5b2 d5b2 d5b2 d5b2 -7960 d5b3 d5b3 d5b3 * * 3575 8ea2b5f5,8ea2b5f5v 689c e6a29c 689c 0000689c d5b3 d5b3 d5b3 d5b3 d5b3 d5b3 d5b3 -7961 d5b4 d5b4 d5b4 * * 3576 8ea2b5f6,8ea2b5f6v 686d e6a1ad 686d 0000686d d5b4 d5b4 d5b4 d5b4 d5b4 d5b4 d5b4 -7962 d5b5 d5b5 d5b5 * * 3577 8ea2b5f7,8ea2b5f7v 686e e6a1ae 686e 0000686e d5b5 d5b5 d5b5 d5b5 d5b5 d5b5 d5b5 -7963 d5b6 d5b6 d5b6 * * 3578 8ea2b5f8,8ea2b5f8v 68ae e6a2ae 68ae 000068ae d5b6 d5b6 d5b6 d5b6 d5b6 d5b6 d5b6 -7964 d5b7 d5b7 d5b7 * * 3579 8ea2b5f9,8ea2b5f9v 68ab e6a2ab 68ab 000068ab d5b7 d5b7 d5b7 d5b7 d5b7 d5b7 d5b7 -7965 d5b8 d5b8 d5b8 * * 357a 8ea2b5fa,8ea2b5fav 6956 e6a596 6956 00006956 d5b8 d5b8 d5b8 d5b8 d5b8 d5b8 d5b8 -7966 d5b9 d5b9 d5b9 * * 357b 8ea2b5fb,8ea2b5fbv 686f e6a1af 686f 0000686f d5b9 d5b9 d5b9 d5b9 d5b9 d5b9 d5b9 -7967 d5ba d5ba d5ba * * 357c 8ea2b5fc,8ea2b5fcv 68a3 e6a2a3 68a3 000068a3 d5ba d5ba d5ba d5ba d5ba d5ba d5ba -7968 d5bb d5bb d5bb * * 357d 8ea2b5fd,8ea2b5fdv 68ac e6a2ac 68ac 000068ac d5bb d5bb d5bb d5bb d5bb d5bb d5bb -7969 d5bc d5bc d5bc * * 357e 8ea2b5fe,8ea2b5fev 68a9 e6a2a9 68a9 000068a9 d5bc d5bc d5bc d5bc d5bc d5bc d5bc -7970 d5bd d5bd d5bd * * 3621 8ea2b6a1,8ea2b6a1v 6875 e6a1b5 6875 00006875 d5bd d5bd d5bd d5bd d5bd d5bd d5bd -7971 d5be d5be d5be * * 3622 8ea2b6a2,8ea2b6a2v 6874 e6a1b4 6874 00006874 d5be d5be d5be d5be d5be d5be d5be -7972 d5bf d5bf d5bf * * 3623 8ea2b6a3,8ea2b6a3v 68b2 e6a2b2 68b2 000068b2 d5bf d5bf d5bf d5bf d5bf d5bf d5bf -7973 d5c0 d5c0 d5c0 * * 3624 8ea2b6a4,8ea2b6a4v 688f e6a28f 688f 0000688f d5c0 d5c0 d5c0 d5c0 d5c0 d5c0 d5c0 -7974 d5c1 d5c1 d5c1 * * 3625 8ea2b6a5,8ea2b6a5v 6877 e6a1b7 6877 00006877 d5c1 d5c1 d5c1 d5c1 d5c1 d5c1 d5c1 -7975 d5c2 d5c2 d5c2 * * 3626 8ea2b6a6,8ea2b6a6v 6892 e6a292 6892 00006892 d5c2 d5c2 d5c2 d5c2 d5c2 d5c2 d5c2 -7976 d5c3 d5c3 d5c3 * * 3627 8ea2b6a7,8ea2b6a7v 687c e6a1bc 687c 0000687c d5c3 d5c3 d5c3 d5c3 d5c3 d5c3 d5c3 -7977 d5c4 d5c4 d5c4 * * 3628 8ea2b6a8,8ea2b6a8v 686b e6a1ab 686b 0000686b d5c4 d5c4 d5c4 d5c4 d5c4 d5c4 d5c4 -7978 d5c5 d5c5 d5c5 * * 3629 8ea2b6a9,8ea2b6a9v 6872 e6a1b2 6872 00006872 d5c5 d5c5 d5c5 d5c5 d5c5 d5c5 d5c5 -7979 d5c6 d5c6 d5c6 * * 362a 8ea2b6aa,8ea2b6aav 68aa e6a2aa 68aa 000068aa d5c6 d5c6 d5c6 d5c6 d5c6 d5c6 d5c6 -7980 d5c7 d5c7 d5c7 * * 362b 8ea2b6ab,8ea2b6abv 6880 e6a280 6880 00006880 d5c7 d5c7 d5c7 d5c7 d5c7 d5c7 d5c7 -7981 d5c8 d5c8 d5c8 * * 362c 8ea2b6ac,8ea2b6acv 6871 e6a1b1 6871 00006871 d5c8 d5c8 d5c8 d5c8 d5c8 d5c8 d5c8 -7982 d5c9 d5c9 d5c9 * * 362d 8ea2b6ad,8ea2b6adv 687e e6a1be 687e 0000687e d5c9 d5c9 d5c9 d5c9 d5c9 d5c9 d5c9 -7983 d5ca d5ca d5ca * * 362e 8ea2b6ae,8ea2b6aev 689b e6a29b 689b 0000689b d5ca d5ca d5ca d5ca d5ca d5ca d5ca -7984 d5cb d5cb d5cb * * 362f 8ea2b6af,8ea2b6afv 6896 e6a296 6896 00006896 d5cb d5cb d5cb d5cb d5cb d5cb d5cb -7985 d5cc d5cc d5cc * * 3630 8ea2b6b0,8ea2b6b0v 688b e6a28b 688b 0000688b d5cc d5cc d5cc d5cc d5cc d5cc d5cc -7986 d5cd d5cd d5cd * * 3631 8ea2b6b1,8ea2b6b1v 68a0 e6a2a0 68a0 000068a0 d5cd d5cd d5cd d5cd d5cd d5cd d5cd -7987 d5ce d5ce d5ce * * 3632 8ea2b6b2,8ea2b6b2v 6889 e6a289 6889 00006889 d5ce d5ce d5ce d5ce d5ce d5ce d5ce -7988 d5cf d5cf d5cf * * 3633 8ea2b6b3,8ea2b6b3v 68a4 e6a2a4 68a4 000068a4 d5cf d5cf d5cf d5cf d5cf d5cf d5cf -7989 d5d0 d5d0 d5d0 * * 3634 8ea2b6b4,8ea2b6b4v 6878 e6a1b8 6878 00006878 d5d0 d5d0 d5d0 d5d0 d5d0 d5d0 d5d0 -7990 d5d1 d5d1 d5d1 * * 3635 8ea2b6b5,8ea2b6b5v 687b e6a1bb 687b 0000687b d5d1 d5d1 d5d1 d5d1 d5d1 d5d1 d5d1 -7991 d5d2 d5d2 d5d2 * * 3636 8ea2b6b6,8ea2b6b6v 6891 e6a291 6891 00006891 d5d2 d5d2 d5d2 d5d2 d5d2 d5d2 d5d2 -7992 d5d3 d5d3 d5d3 * * 3637 8ea2b6b7,8ea2b6b7v 688c e6a28c 688c 0000688c d5d3 d5d3 d5d3 d5d3 d5d3 d5d3 d5d3 -7993 d5d4 d5d4 d5d4 * * 3638 8ea2b6b8,8ea2b6b8v 688a e6a28a 688a 0000688a d5d4 d5d4 d5d4 d5d4 d5d4 d5d4 d5d4 -7994 d5d5 d5d5 d5d5 * * 3639 8ea2b6b9,8ea2b6b9v 687d e6a1bd 687d 0000687d d5d5 d5d5 d5d5 d5d5 d5d5 d5d5 d5d5 -7995 d5d6 d5d6 d5d6 * * 363a 8ea2b6ba,8ea2b6bav 6b36 e6acb6 6b36 00006b36 d5d6 d5d6 d5d6 d5d6 d5d6 d5d6 d5d6 -7996 d5d7 d5d7 d5d7 * * 363b 8ea2b6bb,8ea2b6bbv 6b33 e6acb3 6b33 00006b33 d5d7 d5d7 d5d7 d5d7 d5d7 d5d7 d5d7 -7997 d5d8 d5d8 d5d8 * * 363c 8ea2b6bc,8ea2b6bcv 6b37 e6acb7 6b37 00006b37 d5d8 d5d8 d5d8 d5d8 d5d8 d5d8 d5d8 -7998 d5d9 d5d9 d5d9 * * 363d 8ea2b6bd,8ea2b6bdv 6b38 e6acb8 6b38 00006b38 d5d9 d5d9 d5d9 d5d9 d5d9 d5d9 d5d9 -7999 d5da d5da d5da * * 363e 8ea2b6be,8ea2b6bev 6b91 e6ae91 6b91 00006b91 d5da d5da d5da d5da d5da d5da d5da -8000 d5db d5db d5db * * 363f 8ea2b6bf,8ea2b6bfv 6b8f e6ae8f 6b8f 00006b8f d5db d5db d5db d5db d5db d5db d5db -8001 d5dc d5dc d5dc * * 3640 8ea2b6c0,8ea2b6c0v 6b8d e6ae8d 6b8d 00006b8d d5dc d5dc d5dc d5dc d5dc d5dc d5dc -8002 d5dd d5dd d5dd * * 3641 8ea2b6c1,8ea2b6c1v 6b8e e6ae8e 6b8e 00006b8e d5dd d5dd d5dd d5dd d5dd d5dd d5dd -8003 d5de d5de d5de * * 3642 8ea2b6c2,8ea2b6c2v 6b8c e6ae8c 6b8c 00006b8c d5de d5de d5de d5de d5de d5de d5de -8004 d5df d5df d5df * * 3643 8ea2b6c3,8ea2b6c3v 6c2a e6b0aa 6c2a 00006c2a d5df d5df d5df d5df d5df d5df d5df -8005 d5e0 d5e0 d5e0 * * 3644 8ea2b6c4,8ea2b6c4v 6dc0 e6b780 6dc0 00006dc0 d5e0 d5e0 d5e0 d5e0 d5e0 d5e0 d5e0 -8006 d5e1 d5e1 d5e1 * * 3645 8ea2b6c5,8ea2b6c5v 6dab e6b6ab 6dab 00006dab d5e1 d5e1 d5e1 d5e1 d5e1 d5e1 d5e1 -8007 d5e2 d5e2 d5e2 * * 3646 8ea2b6c6,8ea2b6c6v 6db4 e6b6b4 6db4 00006db4 d5e2 d5e2 d5e2 d5e2 d5e2 d5e2 d5e2 -8008 d5e3 d5e3 d5e3 * * 3647 8ea2b6c7,8ea2b6c7v 6db3 e6b6b3 6db3 00006db3 d5e3 d5e3 d5e3 d5e3 d5e3 d5e3 d5e3 -8009 d5e4 d5e4 d5e4 * * 3648 8ea2b6c8,8ea2b6c8v 6e74 e6b9b4 6e74 00006e74 d5e4 d5e4 d5e4 d5e4 d5e4 d5e4 d5e4 -8010 d5e5 d5e5 d5e5 * * 3649 8ea2b6c9,8ea2b6c9v 6dac e6b6ac 6dac 00006dac d5e5 d5e5 d5e5 d5e5 d5e5 d5e5 d5e5 -8011 d5e6 d5e6 d5e6 * * 364a 8ea2b6ca,8ea2b6cav 6de9 e6b7a9 6de9 00006de9 d5e6 d5e6 d5e6 d5e6 d5e6 d5e6 d5e6 -8012 d5e7 d5e7 d5e7 * * 364b 8ea2b6cb,8ea2b6cbv 6de2 e6b7a2 6de2 00006de2 d5e7 d5e7 d5e7 d5e7 d5e7 d5e7 d5e7 -8013 d5e8 d5e8 d5e8 * * 364c 8ea2b6cc,8ea2b6ccv 6db7 e6b6b7 6db7 00006db7 d5e8 d5e8 d5e8 d5e8 d5e8 d5e8 d5e8 -8014 d5e9 d5e9 d5e9 * * 364d 8ea2b6cd,8ea2b6cdv 6df6 e6b7b6 6df6 00006df6 d5e9 d5e9 d5e9 d5e9 d5e9 d5e9 d5e9 -8015 d5ea d5ea d5ea * * 364e 8ea2b6ce,8ea2b6cev 6dd4 e6b794 6dd4 00006dd4 d5ea d5ea d5ea d5ea d5ea d5ea d5ea -8016 d5eb d5eb d5eb * * 364f 8ea2b6cf,8ea2b6cfv 6e00 e6b880 6e00 00006e00 d5eb d5eb d5eb d5eb d5eb d5eb d5eb -8017 d5ec d5ec d5ec * * 3650 8ea2b6d0,8ea2b6d0v 6dc8 e6b788 6dc8 00006dc8 d5ec d5ec d5ec d5ec d5ec d5ec d5ec -8018 d5ed d5ed d5ed * * 3651 8ea2b6d1,8ea2b6d1v 6de0 e6b7a0 6de0 00006de0 d5ed d5ed d5ed d5ed d5ed d5ed d5ed -8019 d5ee d5ee d5ee * * 3652 8ea2b6d2,8ea2b6d2v 6ddf e6b79f 6ddf 00006ddf d5ee d5ee d5ee d5ee d5ee d5ee d5ee -8020 d5ef d5ef d5ef * * 3653 8ea2b6d3,8ea2b6d3v 6dd6 e6b796 6dd6 00006dd6 d5ef d5ef d5ef d5ef d5ef d5ef d5ef -8021 d5f0 d5f0 d5f0 * * 3654 8ea2b6d4,8ea2b6d4v 6dbe e6b6be 6dbe 00006dbe d5f0 d5f0 d5f0 d5f0 d5f0 d5f0 d5f0 -8022 d5f1 d5f1 d5f1 * * 3655 8ea2b6d5,8ea2b6d5v 6de5 e6b7a5 6de5 00006de5 d5f1 d5f1 d5f1 d5f1 d5f1 d5f1 d5f1 -8023 d5f2 d5f2 d5f2 * * 3656 8ea2b6d6,8ea2b6d6v 6ddc e6b79c 6ddc 00006ddc d5f2 d5f2 d5f2 d5f2 d5f2 d5f2 d5f2 -8024 d5f3 d5f3 d5f3 * * 3657 8ea2b6d7,8ea2b6d7v 6ddd e6b79d 6ddd 00006ddd d5f3 d5f3 d5f3 d5f3 d5f3 d5f3 d5f3 -8025 d5f4 d5f4 d5f4 * * 3658 8ea2b6d8,8ea2b6d8v 6ddb e6b79b 6ddb 00006ddb d5f4 d5f4 d5f4 d5f4 d5f4 d5f4 d5f4 -8026 d5f5 d5f5 d5f5 * * 3659 8ea2b6d9,8ea2b6d9v 6df4 e6b7b4 6df4 00006df4 d5f5 d5f5 d5f5 d5f5 d5f5 d5f5 d5f5 -8027 d5f6 d5f6 d5f6 * * 365a 8ea2b6da,8ea2b6dav 6dca e6b78a 6dca 00006dca d5f6 d5f6 d5f6 d5f6 d5f6 d5f6 d5f6 -8028 d5f7 d5f7 d5f7 * * 365b 8ea2b6db,8ea2b6dbv 6dbd e6b6bd 6dbd 00006dbd d5f7 d5f7 d5f7 d5f7 d5f7 d5f7 d5f7 -8029 d5f8 d5f8 d5f8 * * 365c 8ea2b6dc,8ea2b6dcv 6ded e6b7ad 6ded 00006ded d5f8 d5f8 d5f8 d5f8 d5f8 d5f8 d5f8 -8030 d5f9 d5f9 d5f9 * * 365d 8ea2b6dd,8ea2b6ddv 6df0 e6b7b0 6df0 00006df0 d5f9 d5f9 d5f9 d5f9 d5f9 d5f9 d5f9 -8031 d5fa d5fa d5fa * * 365e 8ea2b6de,8ea2b6dev 6dba e6b6ba 6dba 00006dba d5fa d5fa d5fa d5fa d5fa d5fa d5fa -8032 d5fb d5fb d5fb * * 365f 8ea2b6df,8ea2b6dfv 6dd5 e6b795 6dd5 00006dd5 d5fb d5fb d5fb d5fb d5fb d5fb d5fb -8033 d5fc d5fc d5fc * * 3660 8ea2b6e0,8ea2b6e0v 6dc2 e6b782 6dc2 00006dc2 d5fc d5fc d5fc d5fc d5fc d5fc d5fc -8034 d5fd d5fd d5fd * * 3661 8ea2b6e1,8ea2b6e1v 6dcf e6b78f 6dcf 00006dcf d5fd d5fd d5fd d5fd d5fd d5fd d5fd -8035 d5fe d5fe d5fe * * 3662 8ea2b6e2,8ea2b6e2v 6dc9 e6b789 6dc9 00006dc9 d5fe d5fe d5fe d5fe d5fe d5fe d5fe -8036 d640 d640 d640 * * 3663 8ea2b6e3,8ea2b6e3v 6dd0 e6b790 6dd0 00006dd0 d640 d640 d640 d640 d640 d640 d640 -8037 d641 d641 d641 * * 3664 8ea2b6e4,8ea2b6e4v 6df2 e6b7b2 6df2 00006df2 d641 d641 d641 d641 d641 d641 d641 -8038 d642 d642 d642 * * 3665 8ea2b6e5,8ea2b6e5v 6dd3 e6b793 6dd3 00006dd3 d642 d642 d642 d642 d642 d642 d642 -8039 d643 d643 d643 * * 3666 8ea2b6e6,8ea2b6e6v 6dfd e6b7bd 6dfd 00006dfd d643 d643 d643 d643 d643 d643 d643 -8040 d644 d644 d644 * * 3667 8ea2b6e7,8ea2b6e7v 6dd7 e6b797 6dd7 00006dd7 d644 d644 d644 d644 d644 d644 d644 -8041 d645 d645 d645 * * 3668 8ea2b6e8,8ea2b6e8v 6dcd e6b78d 6dcd 00006dcd d645 d645 d645 d645 d645 d645 d645 -8042 d646 d646 d646 * * 3669 8ea2b6e9,8ea2b6e9v 6de3 e6b7a3 6de3 00006de3 d646 d646 d646 d646 d646 d646 d646 -8043 d647 d647 d647 * * 366a 8ea2b6ea,8ea2b6eav 6dbb e6b6bb 6dbb 00006dbb d647 d647 d647 d647 d647 d647 d647 -8044 d648 d648 d648 * * 366b 8ea2b6eb,8ea2b6ebv 70fa e783ba 70fa 000070fa d648 d648 d648 d648 d648 d648 d648 -8045 d649 d649 d649 * * 366c 8ea2b6ec,8ea2b6ecv 710d e7848d 710d 0000710d d649 d649 d649 d649 d649 d649 d649 -8046 d64a d64a d64a * * 366d 8ea2b6ed,8ea2b6edv 70f7 e783b7 70f7 000070f7 d64a d64a d64a d64a d64a d64a d64a -8047 d64b d64b d64b * * 366e 8ea2b6ee,8ea2b6eev 7117 e78497 7117 00007117 d64b d64b d64b d64b d64b d64b d64b -8048 d64c d64c d64c * * 366f 8ea2b6ef,8ea2b6efv 70f4 e783b4 70f4 000070f4 d64c d64c d64c d64c d64c d64c d64c -8049 d64d d64d d64d * * 3670 8ea2b6f0,8ea2b6f0v 710c e7848c 710c 0000710c d64d d64d d64d d64d d64d d64d d64d -8050 d64e d64e d64e * * 3671 8ea2b6f1,8ea2b6f1v 70f0 e783b0 70f0 000070f0 d64e d64e d64e d64e d64e d64e d64e -8051 d64f d64f d64f * * 3672 8ea2b6f2,8ea2b6f2v 7104 e78484 7104 00007104 d64f d64f d64f d64f d64f d64f d64f -8052 d650 d650 d650 * * 3673 8ea2b6f3,8ea2b6f3v 70f3 e783b3 70f3 000070f3 d650 d650 d650 d650 d650 d650 d650 -8053 d651 d651 d651 * * 3674 8ea2b6f4,8ea2b6f4v 7110 e78490 7110 00007110 d651 d651 d651 d651 d651 d651 d651 -8054 d652 d652 d652 * * 3675 8ea2b6f5,8ea2b6f5v 70fc e783bc 70fc 000070fc d652 d652 d652 d652 d652 d652 d652 -8055 d653 d653 d653 * * 3676 8ea2b6f6,8ea2b6f6v 70ff e783bf 70ff 000070ff d653 d653 d653 d653 d653 d653 d653 -8056 d654 d654 d654 * * 3677 8ea2b6f7,8ea2b6f7v 7106 e78486 7106 00007106 d654 d654 d654 d654 d654 d654 d654 -8057 d655 d655 d655 * * 3678 8ea2b6f8,8ea2b6f8v 7113 e78493 7113 00007113 d655 d655 d655 d655 d655 d655 d655 -8058 d656 d656 d656 * * 3679 8ea2b6f9,8ea2b6f9v 7100 e78480 7100 00007100 d656 d656 d656 d656 d656 d656 d656 -8059 d657 d657 d657 * * 367a 8ea2b6fa,8ea2b6fav 70f8 e783b8 70f8 000070f8 d657 d657 d657 d657 d657 d657 d657 -8060 d658 d658 d658 * * 367b 8ea2b6fb,8ea2b6fbv 70f6 e783b6 70f6 000070f6 d658 d658 d658 d658 d658 d658 d658 -8061 d659 d659 d659 * * 367c 8ea2b6fc,8ea2b6fcv 710b e7848b 710b 0000710b d659 d659 d659 d659 d659 d659 d659 -8062 d65a d65a d65a * * 367d 8ea2b6fd,8ea2b6fdv 7102 e78482 7102 00007102 d65a d65a d65a d65a d65a d65a d65a -8063 d65b d65b d65b * * 367e 8ea2b6fe,8ea2b6fev 710e e7848e 710e 0000710e d65b d65b d65b d65b d65b d65b d65b -8064 d65c d65c d65c * * 3721 8ea2b7a1,8ea2b7a1v 727e e789be 727e 0000727e d65c d65c d65c d65c d65c d65c d65c -8065 d65d d65d d65d * * 3722 8ea2b7a2,8ea2b7a2v 727b e789bb 727b 0000727b d65d d65d d65d d65d d65d d65d d65d -8066 d65e d65e d65e * * 3723 8ea2b7a3,8ea2b7a3v 727c e789bc 727c 0000727c d65e d65e d65e d65e d65e d65e d65e -8067 d65f d65f d65f * * 3724 8ea2b7a4,8ea2b7a4v 727f e789bf 727f 0000727f d65f d65f d65f d65f d65f d65f d65f -8068 d660 d660 d660 * * 3725 8ea2b7a5,8ea2b7a5v 731d e78c9d 731d 0000731d d660 d660 d660 d660 d660 d660 d660 -8069 d661 d661 d661 * * 3726 8ea2b7a6,8ea2b7a6v 7317 e78c97 7317 00007317 d661 d661 d661 d661 d661 d661 d661 -8070 d662 d662 d662 * * 3727 8ea2b7a7,8ea2b7a7v 7307 e78c87 7307 00007307 d662 d662 d662 d662 d662 d662 d662 -8071 d663 d663 d663 * * 3728 8ea2b7a8,8ea2b7a8v 7311 e78c91 7311 00007311 d663 d663 d663 d663 d663 d663 d663 -8072 d664 d664 d664 * * 3729 8ea2b7a9,8ea2b7a9v 7318 e78c98 7318 00007318 d664 d664 d664 d664 d664 d664 d664 -8073 d665 d665 d665 * * 372a 8ea2b7aa,8ea2b7aav 730a e78c8a 730a 0000730a d665 d665 d665 d665 d665 d665 d665 -8074 d666 d666 d666 * * 372b 8ea2b7ab,8ea2b7abv 7308 e78c88 7308 00007308 d666 d666 d666 d666 d666 d666 d666 -8075 d667 d667 d667 * * 372c 8ea2b7ac,8ea2b7acv 72ff e78bbf 72ff 000072ff d667 d667 d667 d667 d667 d667 d667 -8076 d668 d668 d668 * * 372d 8ea2b7ad,8ea2b7adv 730f e78c8f 730f 0000730f d668 d668 d668 d668 d668 d668 d668 -8077 d669 d669 d669 * * 372e 8ea2b7ae,8ea2b7aev 731e e78c9e 731e 0000731e d669 d669 d669 d669 d669 d669 d669 -8078 d66a d66a d66a * * 372f 8ea2b7af,8ea2b7afv 7388 e78e88 7388 00007388 d66a d66a d66a d66a d66a d66a d66a -8079 d66b d66b d66b * * 3730 8ea2b7b0,8ea2b7b0v 73f6 e78fb6 73f6 000073f6 d66b d66b d66b d66b d66b d66b d66b -8080 d66c d66c d66c * * 3731 8ea2b7b1,8ea2b7b1v 73f8 e78fb8 73f8 000073f8 d66c d66c d66c d66c d66c d66c d66c -8081 d66d d66d d66d * * 3732 8ea2b7b2,8ea2b7b2v 73f5 e78fb5 73f5 000073f5 d66d d66d d66d d66d d66d d66d d66d -8082 d66e d66e d66e * * 3733 8ea2b7b3,8ea2b7b3v 7404 e79084 7404 00007404 d66e d66e d66e d66e d66e d66e d66e -8083 d66f d66f d66f * * 3734 8ea2b7b4,8ea2b7b4v 7401 e79081 7401 00007401 d66f d66f d66f d66f d66f d66f d66f -8084 d670 d670 d670 * * 3735 8ea2b7b5,8ea2b7b5v 73fd e78fbd 73fd 000073fd d670 d670,fcfa 91db,d670 d670 d670 d670 d670 -8085 d671 d671 d671 * * 3736 8ea2b7b6,8ea2b7b6v 7407 e79087 7407 00007407 d671 d671 d671 d671 d671 d671 d671 -8086 d672 d672 d672 * * 3737 8ea2b7b7,8ea2b7b7v 7400 e79080 7400 00007400 d672 d672 d672 d672 d672 d672 d672 -8087 d673 d673 d673 * * 3738 8ea2b7b8,8ea2b7b8v 73fa e78fba 73fa 000073fa d673 d673 d673 d673 d673 d673 d673 -8088 d674 d674 d674 * * 3739 8ea2b7b9,8ea2b7b9v 73fc e78fbc 73fc 000073fc d674 d674 d674 d674 d674 d674 d674 -8089 d675 d675 d675 * * 373a 8ea2b7ba,8ea2b7bav 73ff e78fbf 73ff 000073ff d675 d675 d675 d675 d675 d675 d675 -8090 d676 d676 d676 * * 373b 8ea2b7bb,8ea2b7bbv 740c e7908c 740c 0000740c d676 d676 d676 d676 d676 d676 d676 -8091 d677 d677 d677 * * 373c 8ea2b7bc,8ea2b7bcv 740b e7908b 740b 0000740b d677 d677 d677 d677 d677 d677 d677 -8092 d678 d678 d678 * * 373d 8ea2b7bd,8ea2b7bdv 73f4 e78fb4 73f4 000073f4 d678 d678 d678 d678 d678 d678 d678 -8093 d679 d679 d679 * * 373e 8ea2b7be,8ea2b7bev 7408 e79088 7408 00007408 d679 d679 d679 d679 d679 d679 d679 -8094 d67a d67a d67a * * 373f 8ea2b7bf,8ea2b7bfv 7564 e795a4 7564 00007564 d67a d67a d67a d67a d67a d67a d67a -8095 d67b d67b d67b * * 3740 8ea2b7c0,8ea2b7c0v 7563 e795a3 7563 00007563 d67b d67b d67b d67b d67b d67b d67b -8096 d67c d67c d67c * * 3741 8ea2b7c1,8ea2b7c1v 75ce e7978e 75ce 000075ce d67c d67c d67c d67c d67c d67c d67c -8097 d67d d67d d67d * * 3742 8ea2b7c2,8ea2b7c2v 75d2 e79792 75d2 000075d2 d67d d67d d67d d67d d67d d67d d67d -8098 d67e d67e d67e * * 3743 8ea2b7c3,8ea2b7c3v 75cf e7978f 75cf 000075cf d67e d67e d67e d67e d67e d67e d67e -8099 d6a1 d6a1 d6a1 * * 3744 8ea2b7c4,8ea2b7c4v 75cb e7978b 75cb 000075cb d6a1 d6a1 d6a1 d6a1 d6a1 d6a1 d6a1 -8100 d6a2 d6a2 d6a2 * * 3745 8ea2b7c5,8ea2b7c5v 75cc e7978c 75cc 000075cc d6a2 d6a2 d6a2 d6a2 d6a2 d6a2 d6a2 -8101 d6a3 d6a3 d6a3 * * 3746 8ea2b7c6,8ea2b7c6v 75d1 e79791 75d1 000075d1 d6a3 d6a3 d6a3 d6a3 d6a3 d6a3 d6a3 -8102 d6a4 d6a4 d6a4 * * 3747 8ea2b7c7,8ea2b7c7v 75d0 e79790 75d0 000075d0 d6a4 d6a4 d6a4 d6a4 d6a4 d6a4 d6a4 -8103 d6a5 d6a5 d6a5 * * 3748 8ea2b7c8,8ea2b7c8v 768f e79a8f 768f 0000768f d6a5 d6a5 d6a5 d6a5 d6a5 d6a5 d6a5 -8104 d6a6 d6a6 d6a6 * * 3749 8ea2b7c9,8ea2b7c9v 7689 e79a89 7689 00007689 d6a6 d6a6 d6a6 d6a6 d6a6 d6a6 d6a6 -8105 d6a7 d6a7 d6a7 * * 374a 8ea2b7ca,8ea2b7cav 76d3 e79b93 76d3 000076d3 d6a7 d6a7 d6a7 d6a7 d6a7 d6a7 d6a7 -8106 d6a8 d6a8 d6a8 * * 374b 8ea2b7cb,8ea2b7cbv 7739 e79cb9 7739 00007739 d6a8 d6a8 d6a8 d6a8 d6a8 d6a8 d6a8 -8107 d6a9 d6a9 d6a9 * * 374c 8ea2b7cc,8ea2b7ccv 772f e79caf 772f 0000772f d6a9 d6a9 d6a9 d6a9 d6a9 d6a9 d6a9 -8108 d6aa d6aa d6aa * * 374d 8ea2b7cd,8ea2b7cdv 772d e79cad 772d 0000772d d6aa d6aa d6aa d6aa d6aa d6aa d6aa -8109 d6ab d6ab d6ab * * 374e 8ea2b7ce,8ea2b7cev 7731 e79cb1 7731 00007731 d6ab d6ab d6ab d6ab d6ab d6ab d6ab -8110 d6ac d6ac d6ac * * 374f 8ea2b7cf,8ea2b7cfv 7732 e79cb2 7732 00007732 d6ac d6ac d6ac d6ac d6ac d6ac d6ac -8111 d6ad d6ad d6ad * * 3750 8ea2b7d0,8ea2b7d0v 7734 e79cb4 7734 00007734 d6ad d6ad d6ad d6ad d6ad d6ad d6ad -8112 d6ae d6ae d6ae * * 3751 8ea2b7d1,8ea2b7d1v 7733 e79cb3 7733 00007733 d6ae d6ae d6ae d6ae d6ae d6ae d6ae -8113 d6af d6af d6af * * 3752 8ea2b7d2,8ea2b7d2v 773d e79cbd 773d 0000773d d6af d6af d6af d6af d6af d6af d6af -8114 d6b0 d6b0 d6b0 * * 3753 8ea2b7d3,8ea2b7d3v 7725 e79ca5 7725 00007725 d6b0 d6b0 d6b0 d6b0 d6b0 d6b0 d6b0 -8115 d6b1 d6b1 d6b1 * * 3754 8ea2b7d4,8ea2b7d4v 773b e79cbb 773b 0000773b d6b1 d6b1 d6b1 d6b1 d6b1 d6b1 d6b1 -8116 d6b2 d6b2 d6b2 * * 3755 8ea2b7d5,8ea2b7d5v 7735 e79cb5 7735 00007735 d6b2 d6b2 d6b2 d6b2 d6b2 d6b2 d6b2 -8117 d6b3 d6b3 d6b3 * * 3756 8ea2b7d6,8ea2b7d6v 7848 e7a188 7848 00007848 d6b3 d6b3 d6b3 d6b3 d6b3 d6b3 d6b3 -8118 d6b4 d6b4 d6b4 * * 3757 8ea2b7d7,8ea2b7d7v 7852 e7a192 7852 00007852 d6b4 d6b4 d6b4 d6b4 d6b4 d6b4 d6b4 -8119 d6b5 d6b5 d6b5 * * 3758 8ea2b7d8,8ea2b7d8v 7849 e7a189 7849 00007849 d6b5 d6b5 d6b5 d6b5 d6b5 d6b5 d6b5 -8120 d6b6 d6b6 d6b6 * * 3759 8ea2b7d9,8ea2b7d9v 784d e7a18d 784d 0000784d d6b6 d6b6 d6b6 d6b6 d6b6 d6b6 d6b6 -8121 d6b7 d6b7 d6b7 * * 375a 8ea2b7da,8ea2b7dav 784a e7a18a 784a 0000784a d6b7 d6b7 d6b7 d6b7 d6b7 d6b7 d6b7 -8122 d6b8 d6b8 d6b8 * * 375b 8ea2b7db,8ea2b7dbv 784c e7a18c 784c 0000784c d6b8 d6b8 d6b8 d6b8 d6b8 d6b8 d6b8 -8123 d6b9 d6b9 d6b9 * * 375c 8ea2b7dc,8ea2b7dcv 7826 e7a0a6 7826 00007826 d6b9 d6b9 d6b9 d6b9 d6b9 d6b9 d6b9 -8124 d6ba d6ba d6ba * * 375d 8ea2b7dd,8ea2b7ddv 7845 e7a185 7845 00007845 d6ba d6ba d6ba d6ba d6ba d6ba d6ba -8125 d6bb d6bb d6bb * * 375e 8ea2b7de,8ea2b7dev 7850 e7a190 7850 00007850 d6bb d6bb d6bb d6bb d6bb d6bb d6bb -8126 d6bc d6bc d6bc * * 375f 8ea2b7df,8ea2b7dfv 7964 e7a5a4 7964 00007964 d6bc d6bc d6bc d6bc d6bc d6bc d6bc -8127 d6bd d6bd d6bd * * 3760 8ea2b7e0,8ea2b7e0v 7967 e7a5a7 7967 00007967 d6bd d6bd d6bd d6bd d6bd d6bd d6bd -8128 d6be d6be d6be * * 3761 8ea2b7e1,8ea2b7e1v 7969 e7a5a9 7969 00007969 d6be d6be d6be d6be d6be d6be d6be -8129 d6bf d6bf d6bf * * 3762 8ea2b7e2,8ea2b7e2v 796a e7a5aa 796a 0000796a d6bf d6bf d6bf d6bf d6bf d6bf d6bf -8130 d6c0 d6c0 d6c0 * * 3763 8ea2b7e3,8ea2b7e3v 7963 e7a5a3 7963 00007963 d6c0 d6c0 d6c0 d6c0 d6c0 d6c0 d6c0 -8131 d6c1 d6c1 d6c1 * * 3764 8ea2b7e4,8ea2b7e4v 796b e7a5ab 796b 0000796b d6c1 d6c1 d6c1 d6c1 d6c1 d6c1 d6c1 -8132 d6c2 d6c2 d6c2 * * 3765 8ea2b7e5,8ea2b7e5v 7961 e7a5a1 7961 00007961 d6c2 d6c2 d6c2 d6c2 d6c2 d6c2 d6c2 -8133 d6c3 d6c3 d6c3 * * 3766 8ea2b7e6,8ea2b7e6v 79bb e7a6bb 79bb 000079bb d6c3 d6c3 d6c3 d6c3 d6c3 d6c3 d6c3 -8134 d6c4 d6c4 d6c4 * * 3767 8ea2b7e7,8ea2b7e7v 79fa e7a7ba 79fa 000079fa d6c4 d6c4 d6c4 d6c4 d6c4 d6c4 d6c4 -8135 d6c5 d6c5 d6c5 * * 3768 8ea2b7e8,8ea2b7e8v 79f8 e7a7b8 79f8 000079f8 d6c5 d6c5 d6c5 d6c5 d6c5 d6c5 d6c5 -8136 d6c6 d6c6 d6c6 * * 3769 8ea2b7e9,8ea2b7e9v 79f6 e7a7b6 79f6 000079f6 d6c6 d6c6 d6c6 d6c6 d6c6 d6c6 d6c6 -8137 d6c7 d6c7 d6c7 * * 376a 8ea2b7ea,8ea2b7eav 79f7 e7a7b7 79f7 000079f7 d6c7 d6c7 d6c7 d6c7 d6c7 d6c7 d6c7 -8138 d6c8 d6c8 d6c8 * * 376b 8ea2b7eb,8ea2b7ebv 7a8f e7aa8f 7a8f 00007a8f d6c8 d6c8 d6c8 d6c8 d6c8 d6c8 d6c8 -8139 d6c9 d6c9 d6c9 * * 376c 8ea2b7ec,8ea2b7ecv 7a94 e7aa94 7a94 00007a94 d6c9 d6c9 d6c9 d6c9 d6c9 d6c9 d6c9 -8140 d6ca d6ca d6ca * * 376d 8ea2b7ed,8ea2b7edv 7a90 e7aa90 7a90 00007a90 d6ca d6ca d6ca d6ca d6ca d6ca d6ca -8141 d6cb d6cb d6cb * * 376e 8ea2b7ee,8ea2b7eev 7b35 e7acb5 7b35 00007b35 d6cb d6cb d6cb d6cb d6cb d6cb d6cb -8142 dadf dadf dadf * * 376f 8ea2b7ef,8ea2b7efv 7b3b e7acbb 7b3b 00007b3b dadf dadf dadf dadf dadf dadf dadf -8143 d6cd d6cd d6cd * * 3770 8ea2b7f0,8ea2b7f0v 7b34 e7acb4 7b34 00007b34 d6cd d6cd d6cd d6cd d6cd d6cd d6cd -8144 d6ce d6ce d6ce * * 3771 8ea2b7f1,8ea2b7f1v 7b25 e7aca5 7b25 00007b25 d6ce d6ce d6ce d6ce d6ce d6ce d6ce -8145 d6cf d6cf d6cf * * 3772 8ea2b7f2,8ea2b7f2v 7b30 e7acb0 7b30 00007b30 d6cf d6cf d6cf d6cf d6cf d6cf d6cf -8146 d6d0 d6d0 d6d0 * * 3773 8ea2b7f3,8ea2b7f3v 7b22 e7aca2 7b22 00007b22 d6d0 d6d0 d6d0 d6d0 d6d0 d6d0 d6d0 -8147 d6d1 d6d1 d6d1 * * 3774 8ea2b7f4,8ea2b7f4v 7b24 e7aca4 7b24 00007b24 d6d1 d6d1 d6d1 d6d1 d6d1 d6d1 d6d1 -8148 d6d2 d6d2 d6d2 * * 3775 8ea2b7f5,8ea2b7f5v 7b33 e7acb3 7b33 00007b33 d6d2 d6d2 d6d2 d6d2 d6d2 d6d2 d6d2 -8149 d6d3 d6d3 d6d3 * * 3776 8ea2b7f6,8ea2b7f6v 7b18 e7ac98 7b18 00007b18 d6d3 d6d3 d6d3 d6d3 d6d3 d6d3 d6d3 -8150 d6d4 d6d4 d6d4 * * 3777 8ea2b7f7,8ea2b7f7v 7b2a e7acaa 7b2a 00007b2a d6d4 d6d4 d6d4 d6d4 d6d4 d6d4 d6d4 -8151 d6d5 d6d5 d6d5 * * 3778 8ea2b7f8,8ea2b7f8v 7b1d e7ac9d 7b1d 00007b1d d6d5 d6d5 d6d5 d6d5 d6d5 d6d5 d6d5 -8152 d6d6 d6d6 d6d6 * * 3779 8ea2b7f9,8ea2b7f9v 7b31 e7acb1 7b31 00007b31 d6d6 d6d6 d6d6 d6d6 d6d6 d6d6 d6d6 -8153 d6d7 d6d7 d6d7 * * 377a 8ea2b7fa,8ea2b7fav 7b2b e7acab 7b2b 00007b2b d6d7 d6d7 d6d7 d6d7 d6d7 d6d7 d6d7 -8154 d6d8 d6d8 d6d8 * * 377b 8ea2b7fb,8ea2b7fbv 7b2d e7acad 7b2d 00007b2d d6d8 d6d8 d6d8 d6d8 d6d8 d6d8 d6d8 -8155 d6d9 d6d9 d6d9 * * 377c 8ea2b7fc,8ea2b7fcv 7b2f e7acaf 7b2f 00007b2f d6d9 d6d9 d6d9 d6d9 d6d9 d6d9 d6d9 -8156 d6da d6da d6da * * 377d 8ea2b7fd,8ea2b7fdv 7b32 e7acb2 7b32 00007b32 d6da d6da d6da d6da d6da d6da d6da -8157 d6db d6db d6db * * 377e 8ea2b7fe,8ea2b7fev 7b38 e7acb8 7b38 00007b38 d6db d6db d6db d6db d6db d6db d6db -8158 d6dc d6dc d6dc * * 3821 8ea2b8a1,8ea2b8a1v 7b1a e7ac9a 7b1a 00007b1a d6dc d6dc d6dc d6dc d6dc d6dc d6dc -8159 d6dd d6dd d6dd * * 3822 8ea2b8a2,8ea2b8a2v 7b23 e7aca3 7b23 00007b23 d6dd d6dd d6dd d6dd d6dd d6dd d6dd -8160 d6de d6de d6de * * 3823 8ea2b8a3,8ea2b8a3v 7c94 e7b294 7c94 00007c94 d6de d6de d6de d6de d6de d6de d6de -8161 d6df d6df d6df * * 3824 8ea2b8a4,8ea2b8a4v 7c98 e7b298 7c98 00007c98 d6df d6df d6df d6df d6df d6df d6df -8162 d6e0 d6e0 d6e0 * * 3825 8ea2b8a5,8ea2b8a5v 7c96 e7b296 7c96 00007c96 d6e0 d6e0 d6e0 d6e0 d6e0 d6e0 d6e0 -8163 d6e1 d6e1 d6e1 * * 3826 8ea2b8a6,8ea2b8a6v 7ca3 e7b2a3 7ca3 00007ca3 d6e1 d6e1 d6e1 d6e1 d6e1 d6e1 d6e1 -8164 d6e2 d6e2 d6e2 * * 3827 8ea2b8a7,8ea2b8a7v 7d35 e7b4b5 7d35 00007d35 d6e2 d6e2 d6e2 d6e2 d6e2 d6e2 d6e2 -8165 d6e3 d6e3 d6e3 * * 3828 8ea2b8a8,8ea2b8a8v 7d3d e7b4bd 7d3d 00007d3d d6e3 d6e3 d6e3 d6e3 d6e3 d6e3 d6e3 -8166 d6e4 d6e4 d6e4 * * 3829 8ea2b8a9,8ea2b8a9v 7d38 e7b4b8 7d38 00007d38 d6e4 d6e4 d6e4 d6e4 d6e4 d6e4 d6e4 -8167 d6e5 d6e5 d6e5 * * 382a 8ea2b8aa,8ea2b8aav 7d36 e7b4b6 7d36 00007d36 d6e5 d6e5 d6e5 d6e5 d6e5 d6e5 d6e5 -8168 d6e6 d6e6 d6e6 * * 382b 8ea2b8ab,8ea2b8abv 7d3a e7b4ba 7d3a 00007d3a d6e6 d6e6 d6e6 d6e6 d6e6 d6e6 d6e6 -8169 d6e7 d6e7 d6e7 * * 382c 8ea2b8ac,8ea2b8acv 7d45 e7b585 7d45 00007d45 d6e7 d6e7 d6e7 d6e7 d6e7 d6e7 d6e7 -8170 d6e8 d6e8 d6e8 * * 382d 8ea2b8ad,8ea2b8adv 7d2c e7b4ac 7d2c 00007d2c d6e8 d6e8 d6e8 d6e8 d6e8 d6e8 d6e8 -8171 d6e9 d6e9 d6e9 * * 382e 8ea2b8ae,8ea2b8aev 7d29 e7b4a9 7d29 00007d29 d6e9 d6e9 d6e9 d6e9 d6e9 d6e9 d6e9 -8172 d6ea d6ea d6ea * * 382f 8ea2b8af,8ea2b8afv 7d41 e7b581 7d41 00007d41 d6ea d6ea d6ea d6ea d6ea d6ea d6ea -8173 d6eb d6eb d6eb * * 3830 8ea2b8b0,8ea2b8b0v 7d47 e7b587 7d47 00007d47 d6eb d6eb d6eb d6eb d6eb d6eb d6eb -8174 d6ec d6ec d6ec * * 3831 8ea2b8b1,8ea2b8b1v 7d3e e7b4be 7d3e 00007d3e d6ec d6ec d6ec d6ec d6ec d6ec d6ec -8175 d6ed d6ed d6ed * * 3832 8ea2b8b2,8ea2b8b2v 7d3f e7b4bf 7d3f 00007d3f d6ed d6ed d6ed d6ed d6ed d6ed d6ed -8176 d6ee d6ee d6ee * * 3833 8ea2b8b3,8ea2b8b3v 7d4a e7b58a 7d4a 00007d4a d6ee d6ee d6ee d6ee d6ee d6ee d6ee -8177 d6ef d6ef d6ef * * 3834 8ea2b8b4,8ea2b8b4v 7d3b e7b4bb 7d3b 00007d3b d6ef d6ef d6ef d6ef d6ef d6ef d6ef -8178 d6f0 d6f0 d6f0 * * 3835 8ea2b8b5,8ea2b8b5v 7d28 e7b4a8 7d28 00007d28 d6f0 d6f0 d6f0 d6f0 d6f0 d6f0 d6f0 -8179 d6f1 d6f1 d6f1 * * 3836 8ea2b8b6,8ea2b8b6v 7f63 e7bda3 7f63 00007f63 d6f1 d6f1 d6f1 d6f1 d6f1 d6f1 d6f1 -8180 d6f2 d6f2 d6f2 * * 3837 8ea2b8b7,8ea2b8b7v 7f95 e7be95 7f95 00007f95 d6f2 d6f2 d6f2 d6f2 d6f2 d6f2 d6f2 -8181 d6f3 d6f3 d6f3 * * 3838 8ea2b8b8,8ea2b8b8v 7f9c e7be9c 7f9c 00007f9c d6f3 d6f3 d6f3 d6f3 d6f3 d6f3 d6f3 -8182 d6f4 d6f4 d6f4 * * 3839 8ea2b8b9,8ea2b8b9v 7f9d e7be9d 7f9d 00007f9d d6f4 d6f4 d6f4 d6f4 d6f4 d6f4 d6f4 -8183 d6f5 d6f5 d6f5 * * 383a 8ea2b8ba,8ea2b8bav 7f9b e7be9b 7f9b 00007f9b d6f5 d6f5 d6f5 d6f5 d6f5 d6f5 d6f5 -8184 d6f6 d6f6 d6f6 * * 383b 8ea2b8bb,8ea2b8bbv 7fca e7bf8a 7fca 00007fca d6f6 d6f6 d6f6 d6f6 d6f6 d6f6 d6f6 -8185 d6f7 d6f7 d6f7 * * 383c 8ea2b8bc,8ea2b8bcv 7fcb e7bf8b 7fcb 00007fcb d6f7 d6f7 d6f7 d6f7 d6f7 d6f7 d6f7 -8186 d6f8 d6f8 d6f8 * * 383d 8ea2b8bd,8ea2b8bdv 7fcd e7bf8d 7fcd 00007fcd d6f8 d6f8 d6f8 d6f8 d6f8 d6f8 d6f8 -8187 d6f9 d6f9 d6f9 * * 383e 8ea2b8be,8ea2b8bev 7fd0 e7bf90 7fd0 00007fd0 d6f9 d6f9 d6f9 d6f9 d6f9 d6f9 d6f9 -8188 d6fa d6fa d6fa * * 383f 8ea2b8bf,8ea2b8bfv 7fd1 e7bf91 7fd1 00007fd1 d6fa d6fa d6fa d6fa d6fa d6fa d6fa -8189 d6fb d6fb d6fb * * 3840 8ea2b8c0,8ea2b8c0v 7fc7 e7bf87 7fc7 00007fc7 d6fb d6fb d6fb d6fb d6fb d6fb d6fb -8190 d6fc d6fc d6fc * * 3841 8ea2b8c1,8ea2b8c1v 7fcf e7bf8f 7fcf 00007fcf d6fc d6fc d6fc d6fc d6fc d6fc d6fc -8191 d6fd d6fd d6fd * * 3842 8ea2b8c2,8ea2b8c2v 7fc9 e7bf89 7fc9 00007fc9 d6fd d6fd d6fd d6fd d6fd d6fd d6fd -8192 d6fe d6fe d6fe * * 3843 8ea2b8c3,8ea2b8c3v 801f e8809f 801f 0000801f d6fe d6fe d6fe d6fe d6fe d6fe d6fe -8193 d740 d740 d740 * * 3844 8ea2b8c4,8ea2b8c4v 801e e8809e 801e 0000801e d740 d740 d740 d740 d740 d740 d740 -8194 d741 d741 d741 * * 3845 8ea2b8c5,8ea2b8c5v 801b e8809b 801b 0000801b d741 d741 d741 d741 d741 d741 d741 -8195 d742 d742 d742 * * 3846 8ea2b8c6,8ea2b8c6v 8047 e88187 8047 00008047 d742 d742 d742 d742 d742 d742 d742 -8196 d743 d743 d743 * * 3847 8ea2b8c7,8ea2b8c7v 8043 e88183 8043 00008043 d743 d743 d743 d743 d743 d743 d743 -8197 d744 d744 d744 * * 3848 8ea2b8c8,8ea2b8c8v 8048 e88188 8048 00008048 d744 d744 d744 d744 d744 d744 d744 -8198 d745 d745 d745 * * 3849 8ea2b8c9,8ea2b8c9v 8118 e88498 8118 00008118 d745 d745 d745 d745 d745 d745 d745 -8199 d746 d746 d746 * * 384a 8ea2b8ca,8ea2b8cav 8125 e884a5 8125 00008125 d746 d746 d746 d746 d746 d746 d746 -8200 d747 d747 d747 * * 384b 8ea2b8cb,8ea2b8cbv 8119 e88499 8119 00008119 d747 d747 d747 d747 d747 d747 d747 -8201 d748 d748 d748 * * 384c 8ea2b8cc,8ea2b8ccv 811b e8849b 811b 0000811b d748 d748 d748 d748 d748 d748 d748 -8202 d749 d749 d749 * * 384d 8ea2b8cd,8ea2b8cdv 812d e884ad 812d 0000812d d749 d749 d749 d749 d749 d749 d749 -8203 d74a d74a d74a * * 384e 8ea2b8ce,8ea2b8cev 811f e8849f 811f 0000811f d74a d74a d74a d74a d74a d74a d74a -8204 d74b d74b d74b * * 384f 8ea2b8cf,8ea2b8cfv 812c e884ac 812c 0000812c d74b d74b d74b d74b d74b d74b d74b -8205 d74c d74c d74c * * 3850 8ea2b8d0,8ea2b8d0v 811e e8849e 811e 0000811e d74c d74c d74c d74c d74c d74c d74c -8206 d74d d74d d74d * * 3851 8ea2b8d1,8ea2b8d1v 8121 e884a1 8121 00008121 d74d d74d d74d d74d d74d d74d d74d -8207 d74e d74e d74e * * 3852 8ea2b8d2,8ea2b8d2v 8115 e88495 8115 00008115 d74e d74e d74e d74e d74e d74e d74e -8208 d74f d74f d74f * * 3853 8ea2b8d3,8ea2b8d3v 8127 e884a7 8127 00008127 d74f d74f d74f d74f d74f d74f d74f -8209 d750 d750 d750 * * 3854 8ea2b8d4,8ea2b8d4v 811d e8849d 811d 0000811d d750 d750 d750 d750 d750 d750 d750 -8210 d751 d751 d751 * * 3855 8ea2b8d5,8ea2b8d5v 8122 e884a2 8122 00008122 d751 d751 d751 d751 d751 d751 d751 -8211 d752 d752 d752 * * 3856 8ea2b8d6,8ea2b8d6v 8211 e88891 8211 00008211 d752 d752 d752 d752 d752 d752 d752 -8212 d753 d753 d753 * * 3857 8ea2b8d7,8ea2b8d7v 8238 e888b8 8238 00008238 d753 d753 d753 d753 d753 d753 d753 -8213 d754 d754 d754 * * 3858 8ea2b8d8,8ea2b8d8v 8233 e888b3 8233 00008233 d754 d754 d754 d754 d754 d754 d754 -8214 d755 d755 d755 * * 3859 8ea2b8d9,8ea2b8d9v 823a e888ba 823a 0000823a d755 d755 d755 d755 d755 d755 d755 -8215 d756 d756 d756 * * 385a 8ea2b8da,8ea2b8dav 8234 e888b4 8234 00008234 d756 d756 d756 d756 d756 d756 d756 -8216 d757 d757 d757 * * 385b 8ea2b8db,8ea2b8dbv 8232 e888b2 8232 00008232 d757 d757 d757 d757 d757 d757 d757 -8217 d758 d758 d758 * * 385c 8ea2b8dc,8ea2b8dcv 8274 e889b4 8274 00008274 d758 d758 d758 d758 d758 d758 d758 -8218 d759 d759 d759 * * 385d 8ea2b8dd,8ea2b8ddv 8390 e88e90 8390 00008390 d759 d759 d759 d759 d759 d759 d759 -8219 d75a d75a d75a * * 385e 8ea2b8de,8ea2b8dev 83a3 e88ea3 83a3 000083a3 d75a d75a d75a d75a d75a d75a d75a -8220 d75b d75b d75b * * 385f 8ea2b8df,8ea2b8dfv 83a8 e88ea8 83a8 000083a8 d75b d75b d75b d75b d75b d75b d75b -8221 d75c d75c d75c * * 3860 8ea2b8e0,8ea2b8e0v 838d e88e8d 838d 0000838d d75c d75c d75c d75c d75c d75c d75c -8222 d75d d75d d75d * * 3861 8ea2b8e1,8ea2b8e1v 837a e88dba 837a 0000837a d75d d75d d75d d75d d75d d75d d75d -8223 d75e d75e d75e * * 3862 8ea2b8e2,8ea2b8e2v 8373 e88db3 8373 00008373 d75e d75e d75e d75e d75e d75e d75e -8224 d75f d75f d75f * * 3863 8ea2b8e3,8ea2b8e3v 83a4 e88ea4 83a4 000083a4 d75f d75f d75f d75f d75f d75f d75f -8225 d760 d760 d760 * * 3864 8ea2b8e4,8ea2b8e4v 8374 e88db4 8374 00008374 d760 d760 d760 d760 d760 d760 d760 -8226 d761 d761 d761 * * 3865 8ea2b8e5,8ea2b8e5v 838f e88e8f 838f 0000838f d761 d761 d761 d761 d761 d761 d761 -8227 d762 d762 d762 * * 3866 8ea2b8e6,8ea2b8e6v 8381 e88e81 8381 00008381 d762 d762 d762 d762 d762 d762 d762 -8228 d763 d763 d763 * * 3867 8ea2b8e7,8ea2b8e7v 8395 e88e95 8395 00008395 d763 d763 d763 d763 d763 d763 d763 -8229 d764 d764 d764 * * 3868 8ea2b8e8,8ea2b8e8v 8399 e88e99 8399 00008399 d764 d764 d764 d764 d764 d764 d764 -8230 d765 d765 d765 * * 3869 8ea2b8e9,8ea2b8e9v 8375 e88db5 8375 00008375 d765 d765 d765 d765 d765 d765 d765 -8231 d766 d766 d766 * * 386a 8ea2b8ea,8ea2b8eav 8394 e88e94 8394 00008394 d766 d766 d766 d766 d766 d766 d766 -8232 d767 d767 d767 * * 386b 8ea2b8eb,8ea2b8ebv 83a9 e88ea9 83a9 000083a9 d767 d767 d767 d767 d767 d767 d767 -8233 d768 d768 d768 * * 386c 8ea2b8ec,8ea2b8ecv 837d e88dbd 837d 0000837d d768 d768 d768 d768 d768 d768 d768 -8234 d769 d769 d769 * * 386d 8ea2b8ed,8ea2b8edv 8383 e88e83 8383 00008383 d769 d769 d769 d769 d769 d769 d769 -8235 d76a d76a d76a * * 386e 8ea2b8ee,8ea2b8eev 838c e88e8c 838c 0000838c d76a d76a d76a d76a d76a d76a d76a -8236 d76b d76b d76b * * 386f 8ea2b8ef,8ea2b8efv 839d e88e9d 839d 0000839d d76b d76b d76b d76b d76b d76b d76b -8237 d76c d76c d76c * * 3870 8ea2b8f0,8ea2b8f0v 839b e88e9b 839b 0000839b d76c d76c d76c d76c d76c d76c d76c -8238 d76d d76d d76d * * 3871 8ea2b8f1,8ea2b8f1v 83aa e88eaa 83aa 000083aa d76d d76d d76d d76d d76d d76d d76d -8239 d76e d76e d76e * * 3872 8ea2b8f2,8ea2b8f2v 838b e88e8b 838b 0000838b d76e d76e d76e d76e d76e d76e d76e -8240 d76f d76f d76f * * 3873 8ea2b8f3,8ea2b8f3v 837e e88dbe 837e 0000837e d76f d76f d76f d76f d76f d76f d76f -8241 d770 d770 d770 * * 3874 8ea2b8f4,8ea2b8f4v 83a5 e88ea5 83a5 000083a5 d770 d770 d770 d770 d770 d770 d770 -8242 d771 d771 d771 * * 3875 8ea2b8f5,8ea2b8f5v 83af e88eaf 83af 000083af d771 d771 d771 d771 d771 d771 d771 -8243 d772 d772 d772 * * 3876 8ea2b8f6,8ea2b8f6v 8388 e88e88 8388 00008388 d772 d772 d772 d772 d772 d772 d772 -8244 d773 d773 d773 * * 3877 8ea2b8f7,8ea2b8f7v 8397 e88e97 8397 00008397 d773 d773 d773 d773 d773 d773 d773 -8245 d774 d774 d774 * * 3878 8ea2b8f8,8ea2b8f8v 83b0 e88eb0 83b0 000083b0 d774 d774 d774 d774 d774 d774 d774 -8246 d775 d775 d775 * * 3879 8ea2b8f9,8ea2b8f9v 837f e88dbf 837f 0000837f d775 d775 d775 d775 d775 d775 d775 -8247 d776 d776 d776 * * 387a 8ea2b8fa,8ea2b8fav 83a6 e88ea6 83a6 000083a6 d776 d776 d776 d776 d776 d776 d776 -8248 d777 d777 d777 * * 387b 8ea2b8fb,8ea2b8fbv 8387 e88e87 8387 00008387 d777 d777 d777 d777 d777 d777 d777 -8249 d778 d778 d778 * * 387c 8ea2b8fc,8ea2b8fcv 83ae e88eae 83ae 000083ae d778 d778 d778 d778 d778 d778 d778 -8250 d779 d779 d779 * * 387d 8ea2b8fd,8ea2b8fdv 8376 e88db6 8376 00008376 d779 d779 d779 d779 d779 d779 d779 -8251 d77b d77b d77b * * 387e 8ea2b8fe,8ea2b8fev 8659 e89999 8659 00008659 d77b d77b d77b d77b d77b d77b d77b -8252 d77c d77c d77c * * 3921 8ea2b9a1,8ea2b9a1v 8656 e89996 8656 00008656 d77c d77c d77c d77c d77c d77c d77c -8253 d77d d77d d77d * * 3922 8ea2b9a2,8ea2b9a2v 86bf e89abf 86bf 000086bf d77d d77d d77d d77d d77d d77d d77d -8254 d77e d77e d77e * * 3923 8ea2b9a3,8ea2b9a3v 86b7 e89ab7 86b7 000086b7 d77e d77e d77e d77e d77e d77e d77e -8255 d7a1 d7a1 d7a1 * * 3924 8ea2b9a4,8ea2b9a4v 86c2 e89b82 86c2 000086c2 d7a1 d7a1 d7a1 d7a1 d7a1 d7a1 d7a1 -8256 d7a2 d7a2 d7a2 * * 3925 8ea2b9a5,8ea2b9a5v 86c1 e89b81 86c1 000086c1 d7a2 d7a2 d7a2 d7a2 d7a2 d7a2 d7a2 -8257 d7a3 d7a3 d7a3 * * 3926 8ea2b9a6,8ea2b9a6v 86c5 e89b85 86c5 000086c5 d7a3 d7a3 d7a3 d7a3 d7a3 d7a3 d7a3 -8258 d7a4 d7a4 d7a4 * * 3927 8ea2b9a7,8ea2b9a7v 86ba e89aba 86ba 000086ba d7a4 d7a4 d7a4 d7a4 d7a4 d7a4 d7a4 -8259 d7a5 d7a5 d7a5 * * 3928 8ea2b9a8,8ea2b9a8v 86b0 e89ab0 86b0 000086b0 d7a5 d7a5 d7a5 d7a5 d7a5 d7a5 d7a5 -8260 d7a6 d7a6 d7a6 * * 3929 8ea2b9a9,8ea2b9a9v 86c8 e89b88 86c8 000086c8 d7a6 d7a6 d7a6 d7a6 d7a6 d7a6 d7a6 -8261 d7a7 d7a7 d7a7 * * 392a 8ea2b9aa,8ea2b9aav 86b9 e89ab9 86b9 000086b9 d7a7 d7a7 d7a7 d7a7 d7a7 d7a7 d7a7 -8262 d7a8 d7a8 d7a8 * * 392b 8ea2b9ab,8ea2b9abv 86b3 e89ab3 86b3 000086b3 d7a8 d7a8 d7a8 d7a8 d7a8 d7a8 d7a8 -8263 d7a9 d7a9 d7a9 * * 392c 8ea2b9ac,8ea2b9acv 86b8 e89ab8 86b8 000086b8 d7a9 d7a9 d7a9 d7a9 d7a9 d7a9 d7a9 -8264 d7aa d7aa d7aa * * 392d 8ea2b9ad,8ea2b9adv 86cc e89b8c 86cc 000086cc d7aa d7aa d7aa d7aa d7aa d7aa d7aa -8265 d7ab d7ab d7ab * * 392e 8ea2b9ae,8ea2b9aev 86b4 e89ab4 86b4 000086b4 d7ab d7ab d7ab d7ab d7ab d7ab d7ab -8266 d7ac d7ac d7ac * * 392f 8ea2b9af,8ea2b9afv 86bb e89abb 86bb 000086bb d7ac d7ac d7ac d7ac d7ac d7ac d7ac -8267 d7ad d7ad d7ad * * 3930 8ea2b9b0,8ea2b9b0v 86bc e89abc 86bc 000086bc d7ad d7ad d7ad d7ad d7ad d7ad d7ad -8268 d7ae d7ae d7ae * * 3931 8ea2b9b1,8ea2b9b1v 86c3 e89b83 86c3 000086c3 d7ae d7ae d7ae d7ae d7ae d7ae d7ae -8269 d7af d7af d7af * * 3932 8ea2b9b2,8ea2b9b2v 86bd e89abd 86bd 000086bd d7af d7af d7af d7af d7af d7af d7af -8270 d7b0 d7b0 d7b0 * * 3933 8ea2b9b3,8ea2b9b3v 86be e89abe 86be 000086be d7b0 d7b0 d7b0 d7b0 d7b0 d7b0 d7b0 -8271 d7b1 d7b1 d7b1 * * 3934 8ea2b9b4,8ea2b9b4v 8852 e8a192 8852 00008852 d7b1 d7b1 d7b1 d7b1 d7b1 d7b1 d7b1 -8272 d7b2 d7b2 d7b2 * * 3935 8ea2b9b5,8ea2b9b5v 8889 e8a289 8889 00008889 d7b2 d7b2 d7b2 d7b2 d7b2 d7b2 d7b2 -8273 d7b3 d7b3 d7b3 * * 3936 8ea2b9b6,8ea2b9b6v 8895 e8a295 8895 00008895 d7b3 d7b3 d7b3 d7b3 d7b3 d7b3 d7b3 -8274 d7b4 d7b4 d7b4 * * 3937 8ea2b9b7,8ea2b9b7v 88a8 e8a2a8 88a8 000088a8 d7b4 d7b4 d7b4 d7b4 d7b4 d7b4 d7b4 -8275 d7b5 d7b5 d7b5 * * 3938 8ea2b9b8,8ea2b9b8v 88a2 e8a2a2 88a2 000088a2 d7b5 d7b5 d7b5 d7b5 d7b5 d7b5 d7b5 -8276 d7b6 d7b6 d7b6 * * 3939 8ea2b9b9,8ea2b9b9v 88aa e8a2aa 88aa 000088aa d7b6 d7b6,fddf d7b6 d7b6 d7b6 d7b6 d7b6 -8277 d7b7 d7b7 d7b7 * * 393a 8ea2b9ba,8ea2b9bav 889a e8a29a 889a 0000889a d7b7 d7b7 d7b7 d7b7 d7b7 d7b7 d7b7 -8278 d7b8 d7b8 d7b8 * * 393b 8ea2b9bb,8ea2b9bbv 8891 e8a291 8891 00008891 d7b8 d7b8 d7b8 d7b8 d7b8 d7b8 d7b8 -8279 d7b9 d7b9 d7b9 * * 393c 8ea2b9bc,8ea2b9bcv 88a1 e8a2a1 88a1 000088a1 d7b9 d7b9 d7b9 d7b9 d7b9 d7b9 d7b9 -8280 d7ba d7ba d7ba * * 393d 8ea2b9bd,8ea2b9bdv 889f e8a29f 889f 0000889f d7ba d7ba d7ba d7ba d7ba d7ba d7ba -8281 d7bb d7bb d7bb * * 393e 8ea2b9be,8ea2b9bev 8898 e8a298 8898 00008898 d7bb d7bb d7bb d7bb d7bb d7bb d7bb -8282 d7bc d7bc d7bc * * 393f 8ea2b9bf,8ea2b9bfv 88a7 e8a2a7 88a7 000088a7 d7bc d7bc d7bc d7bc d7bc d7bc d7bc -8283 d7bd d7bd d7bd * * 3940 8ea2b9c0,8ea2b9c0v 8899 e8a299 8899 00008899 d7bd d7bd d7bd d7bd d7bd d7bd d7bd -8284 d7be d7be d7be * * 3941 8ea2b9c1,8ea2b9c1v 889b e8a29b 889b 0000889b d7be d7be d7be d7be d7be d7be d7be -8285 d7bf d7bf d7bf * * 3942 8ea2b9c2,8ea2b9c2v 8897 e8a297 8897 00008897 d7bf d7bf d7bf d7bf d7bf d7bf d7bf -8286 d7c0 d7c0 d7c0 * * 3943 8ea2b9c3,8ea2b9c3v 88a4 e8a2a4 88a4 000088a4 d7c0 d7c0 d7c0 d7c0 d7c0 d7c0 d7c0 -8287 d7c1 d7c1 d7c1 * * 3944 8ea2b9c4,8ea2b9c4v 88ac e8a2ac 88ac 000088ac d7c1 d7c1 d7c1 d7c1 d7c1 d7c1 d7c1 -8288 d7c2 d7c2 d7c2 * * 3945 8ea2b9c5,8ea2b9c5v 888c e8a28c 888c 0000888c d7c2 d7c2 d7c2 d7c2 d7c2 d7c2 d7c2 -8289 d7c3 d7c3 d7c3 * * 3946 8ea2b9c6,8ea2b9c6v 8893 e8a293 8893 00008893 d7c3 d7c3 d7c3 d7c3 d7c3 d7c3 d7c3 -8290 d7c4 d7c4 d7c4 * * 3947 8ea2b9c7,8ea2b9c7v 888e e8a28e 888e 0000888e d7c4 d7c4 d7c4 d7c4 d7c4 d7c4 d7c4 -8291 d7c5 d7c5 d7c5 * * 3948 8ea2b9c8,8ea2b9c8v 8982 e8a682 8982 00008982 d7c5 d7c5 d7c5 d7c5 d7c5 d7c5 d7c5 -8292 d7c6 d7c6 d7c6 * * 3949 8ea2b9c9,8ea2b9c9v 89d6 e8a796 89d6 000089d6 d7c6 d7c6 d7c6 d7c6 d7c6 d7c6 d7c6 -8293 d7c7 d7c7 d7c7 * * 394a 8ea2b9ca,8ea2b9cav 89d9 e8a799 89d9 000089d9 d7c7 d7c7 d7c7 d7c7 d7c7 d7c7 d7c7 -8294 d7c8 d7c8 d7c8 * * 394b 8ea2b9cb,8ea2b9cbv 89d5 e8a795 89d5 000089d5 d7c8 d7c8 d7c8 d7c8 d7c8 d7c8 d7c8 -8295 d7c9 d7c9 d7c9 * * 394c 8ea2b9cc,8ea2b9ccv 8a30 e8a8b0 8a30 00008a30 d7c9 d7c9 d7c9 d7c9 d7c9 d7c9 d7c9 -8296 d7ca d7ca d7ca * * 394d 8ea2b9cd,8ea2b9cdv 8a27 e8a8a7 8a27 00008a27 d7ca d7ca d7ca d7ca d7ca d7ca d7ca -8297 d7cb d7cb d7cb * * 394e 8ea2b9ce,8ea2b9cev 8a2c e8a8ac 8a2c 00008a2c d7cb d7cb d7cb d7cb d7cb d7cb d7cb -8298 d7cc d7cc d7cc * * 394f 8ea2b9cf,8ea2b9cfv 8a1e e8a89e 8a1e 00008a1e d7cc d7cc d7cc d7cc d7cc d7cc d7cc -8299 d7cd d7cd d7cd * * 3950 8ea2b9d0,8ea2b9d0v 8c39 e8b0b9 8c39 00008c39 d7cd d7cd d7cd d7cd d7cd d7cd d7cd -8300 d7ce d7ce d7ce * * 3951 8ea2b9d1,8ea2b9d1v 8c3b e8b0bb 8c3b 00008c3b d7ce d7ce d7ce d7ce d7ce d7ce d7ce -8301 d7cf d7cf d7cf * * 3952 8ea2b9d2,8ea2b9d2v 8c5c e8b19c 8c5c 00008c5c d7cf d7cf d7cf d7cf d7cf d7cf d7cf -8302 d7d0 d7d0 d7d0 * * 3953 8ea2b9d3,8ea2b9d3v 8c5d e8b19d 8c5d 00008c5d d7d0 d7d0 d7d0 d7d0 d7d0 d7d0 d7d0 -8303 d7d1 d7d1 d7d1 * * 3954 8ea2b9d4,8ea2b9d4v 8c7d e8b1bd 8c7d 00008c7d d7d1 d7d1 d7d1 d7d1 d7d1 d7d1 d7d1 -8304 d7d2 d7d2 d7d2 * * 3955 8ea2b9d5,8ea2b9d5v 8ca5 e8b2a5 8ca5 00008ca5 d7d2 d7d2 d7d2 d7d2 d7d2 d7d2 d7d2 -8305 d7d3 d7d3 d7d3 * * 3956 8ea2b9d6,8ea2b9d6v 8d7d e8b5bd 8d7d 00008d7d d7d3 d7d3 d7d3 d7d3 d7d3 d7d3 d7d3 -8306 d7d4 d7d4 d7d4 * * 3957 8ea2b9d7,8ea2b9d7v 8d7b e8b5bb 8d7b 00008d7b d7d4 d7d4 d7d4 d7d4 d7d4 d7d4 d7d4 -8307 d7d5 d7d5 d7d5 * * 3958 8ea2b9d8,8ea2b9d8v 8d79 e8b5b9 8d79 00008d79 d7d5 d7d5 d7d5 d7d5 d7d5 d7d5 d7d5 -8308 d7d6 d7d6 d7d6 * * 3959 8ea2b9d9,8ea2b9d9v 8dbc e8b6bc 8dbc 00008dbc d7d6 d7d6 d7d6 d7d6 d7d6 d7d6 d7d6 -8309 d7d7 d7d7 d7d7 * * 395a 8ea2b9da,8ea2b9dav 8dc2 e8b782 8dc2 00008dc2 d7d7 d7d7 d7d7 d7d7 d7d7 d7d7 d7d7 -8310 d7d8 d7d8 d7d8 * * 395b 8ea2b9db,8ea2b9dbv 8db9 e8b6b9 8db9 00008db9 d7d8 d7d8 d7d8 d7d8 d7d8 d7d8 d7d8 -8311 d7d9 d7d9 d7d9 * * 395c 8ea2b9dc,8ea2b9dcv 8dbf e8b6bf 8dbf 00008dbf d7d9 d7d9 d7d9 d7d9 d7d9 d7d9 d7d9 -8312 d7da d7da d7da * * 395d 8ea2b9dd,8ea2b9ddv 8dc1 e8b781 8dc1 00008dc1 d7da d7da d7da d7da d7da d7da d7da -8313 d7db d7db d7db * * 395e 8ea2b9de,8ea2b9dev 8ed8 e8bb98 8ed8 00008ed8 d7db d7db d7db d7db d7db d7db d7db -8314 d7dc d7dc d7dc * * 395f 8ea2b9df,8ea2b9dfv 8ede e8bb9e 8ede 00008ede d7dc d7dc d7dc d7dc d7dc d7dc d7dc -8315 d7dd d7dd d7dd * * 3960 8ea2b9e0,8ea2b9e0v 8edd e8bb9d 8edd 00008edd d7dd d7dd d7dd d7dd d7dd d7dd d7dd -8316 d7de d7de d7de * * 3961 8ea2b9e1,8ea2b9e1v 8edc e8bb9c 8edc 00008edc d7de d7de d7de d7de d7de d7de d7de -8317 d7df d7df d7df * * 3962 8ea2b9e2,8ea2b9e2v 8ed7 e8bb97 8ed7 00008ed7 d7df d7df d7df d7df d7df d7df d7df -8318 d7e0 d7e0 d7e0 * * 3963 8ea2b9e3,8ea2b9e3v 8ee0 e8bba0 8ee0 00008ee0 d7e0 d7e0 d7e0 d7e0 d7e0 d7e0 d7e0 -8319 d7e1 d7e1 d7e1 * * 3964 8ea2b9e4,8ea2b9e4v 8ee1 e8bba1 8ee1 00008ee1 d7e1 d7e1 d7e1 d7e1 d7e1 d7e1 d7e1 -8320 d7e2 d7e2 d7e2 * * 3965 8ea2b9e5,8ea2b9e5v 9024 e980a4 9024 00009024 d7e2 d7e2 d7e2 d7e2 d7e2 d7e2 d7e2 -8321 d7e3 d7e3 d7e3 * * 3966 8ea2b9e6,8ea2b9e6v 900b e9808b 900b 0000900b d7e3 d7e3 d7e3 d7e3 d7e3 d7e3 d7e3 -8322 d7e4 d7e4 d7e4 * * 3967 8ea2b9e7,8ea2b9e7v 9011 e98091 9011 00009011 d7e4 d7e4 d7e4 d7e4 d7e4 d7e4 d7e4 -8323 d7e5 d7e5 d7e5 * * 3968 8ea2b9e8,8ea2b9e8v 901c e9809c 901c 0000901c d7e5 d7e5 d7e5 d7e5 d7e5 d7e5 d7e5 -8324 d7e6 d7e6 d7e6 * * 3969 8ea2b9e9,8ea2b9e9v 900c e9808c 900c 0000900c d7e6 d7e6 d7e6 d7e6 d7e6 d7e6 d7e6 -8325 d7e7 d7e7 d7e7 * * 396a 8ea2b9ea,8ea2b9eav 9021 e980a1 9021 00009021 d7e7 d7e7 d7e7 d7e7 d7e7 d7e7 d7e7 -8326 d7e8 d7e8 d7e8 * * 396b 8ea2b9eb,8ea2b9ebv 90ef e983af 90ef 000090ef d7e8 d7e8 d7e8 d7e8 d7e8 d7e8 d7e8 -8327 d7e9 d7e9 d7e9 * * 396c 8ea2b9ec,8ea2b9ecv 90ea e983aa 90ea 000090ea d7e9 d7e9 d7e9 d7e9 d7e9 d7e9 d7e9 -8328 d7ea d7ea d7ea * * 396d 8ea2b9ed,8ea2b9edv 90f0 e983b0 90f0 000090f0 d7ea d7ea d7ea d7ea d7ea d7ea d7ea -8329 d7eb d7eb d7eb * * 396e 8ea2b9ee,8ea2b9eev 90f4 e983b4 90f4 000090f4 d7eb d7eb d7eb d7eb d7eb d7eb d7eb -8330 d7ec d7ec d7ec * * 396f 8ea2b9ef,8ea2b9efv 90f2 e983b2 90f2 000090f2 d7ec d7ec d7ec d7ec d7ec d7ec d7ec -8331 d7ed d7ed d7ed * * 3970 8ea2b9f0,8ea2b9f0v 90f3 e983b3 90f3 000090f3 d7ed d7ed d7ed d7ed d7ed d7ed d7ed -8332 d7ee d7ee d7ee * * 3971 8ea2b9f1,8ea2b9f1v 90d4 e98394 90d4 000090d4 d7ee d7ee d7ee d7ee d7ee d7ee d7ee -8333 d7ef d7ef d7ef * * 3972 8ea2b9f2,8ea2b9f2v 90eb e983ab 90eb 000090eb d7ef d7ef d7ef d7ef d7ef d7ef d7ef -8334 d7f0 d7f0 d7f0 * * 3973 8ea2b9f3,8ea2b9f3v 90ec e983ac 90ec 000090ec d7f0 d7f0 d7f0 d7f0 d7f0 d7f0 d7f0 -8335 d7f1 d7f1 d7f1 * * 3974 8ea2b9f4,8ea2b9f4v 90e9 e983a9 90e9 000090e9 d7f1 d7f1 d7f1 d7f1 d7f1 d7f1 d7f1 -8336 d7f2 d7f2 d7f2 * * 3975 8ea2b9f5,8ea2b9f5v 9156 e98596 9156 00009156 d7f2 d7f2 d7f2 d7f2 d7f2 d7f2 d7f2 -8337 d7f3 d7f3 d7f3 * * 3976 8ea2b9f6,8ea2b9f6v 9158 e98598 9158 00009158 d7f3 d7f3 d7f3 d7f3 d7f3 d7f3 d7f3 -8338 d7f4 d7f4 d7f4 * * 3977 8ea2b9f7,8ea2b9f7v 915a e9859a 915a 0000915a d7f4 d7f4 d7f4 d7f4 d7f4 d7f4 d7f4 -8339 d7f5 d7f5 d7f5 * * 3978 8ea2b9f8,8ea2b9f8v 9153 e98593 9153 00009153 d7f5 d7f5 d7f5 d7f5 d7f5 d7f5 d7f5 -8340 d7f6 d7f6 d7f6 * * 3979 8ea2b9f9,8ea2b9f9v 9155 e98595 9155 00009155 d7f6 d7f6 d7f6 d7f6 d7f6 d7f6 d7f6 -8341 d7f7 d7f7 d7f7 * * 397a 8ea2b9fa,8ea2b9fav 91ec e987ac 91ec 000091ec d7f7 d7f7 d7f7 d7f7 d7f7 d7f7 d7f7 -8342 d7f8 d7f8 d7f8 * * 397b 8ea2b9fb,8ea2b9fbv 91f4 e987b4 91f4 000091f4 d7f8 d7f8 d7f8 d7f8 d7f8 d7f8 d7f8 -8343 d7f9 d7f9 d7f9 * * 397c 8ea2b9fc,8ea2b9fcv 91f1 e987b1 91f1 000091f1 d7f9 d7f9 d7f9 d7f9 d7f9 d7f9 d7f9 -8344 d7fa d7fa d7fa * * 397d 8ea2b9fd,8ea2b9fdv 91f3 e987b3 91f3 000091f3 d7fa d7fa d7fa d7fa d7fa d7fa d7fa -8345 d7fb d7fb d7fb * * 397e 8ea2b9fe,8ea2b9fev 91f8 e987b8 91f8 000091f8 d7fb d7fb d7fb d7fb d7fb d7fb d7fb -8346 d7fc d7fc d7fc * * 3a21 8ea2baa1,8ea2baa1v 91e4 e987a4 91e4 000091e4 d7fc d7fc d7fc d7fc d7fc d7fc d7fc -8347 d7fd d7fd d7fd * * 3a22 8ea2baa2,8ea2baa2v 91f9 e987b9 91f9 000091f9 d7fd d7fd d7fd d7fd d7fd d7fd d7fd -8348 d7fe d7fe d7fe * * 3a23 8ea2baa3,8ea2baa3v 91ea e987aa 91ea 000091ea d7fe d7fe d7fe d7fe d7fe d7fe d7fe -8349 d840 d840 d840 * * 3a24 8ea2baa4,8ea2baa4v 91eb e987ab 91eb 000091eb d840 d840 d840 d840 d840 d840 d840 -8350 d841 d841 d841 * * 3a25 8ea2baa5,8ea2baa5v 91f7 e987b7 91f7 000091f7 d841 d841 d841 d841 d841 d841 d841 -8351 d842 d842 d842 * * 3a26 8ea2baa6,8ea2baa6v 91e8 e987a8 91e8 000091e8 d842 d842 d842 d842 d842 d842 d842 -8352 d843 d843 d843 * * 3a27 8ea2baa7,8ea2baa7v 91ee e987ae 91ee 000091ee d843 d843 d843 d843 d843 d843 d843 -8353 d844 d844 d844 * * 3a28 8ea2baa8,8ea2baa8v 957a e995ba 957a 0000957a d844 d844 d844 d844 d844 d844 d844 -8354 d845 d845 d845 * * 3a29 8ea2baa9,8ea2baa9v 9586 e99686 9586 00009586 d845 d845 d845 d845 d845 d845 d845 -8355 d846 d846 d846 * * 3a2a 8ea2baaa,8ea2baaav 9588 e99688 9588 00009588 d846 d846 d846 d846 d846 d846 d846 -8356 d847 d847 d847 * * 3a2b 8ea2baab,8ea2baabv 967c e999bc 967c 0000967c d847 d847 d847 d847 d847 d847 d847 -8357 d848 d848 d848 * * 3a2c 8ea2baac,8ea2baacv 966d e999ad 966d 0000966d d848 d848 d848 d848 d848 d848 d848 -8358 d849 d849 d849 * * 3a2d 8ea2baad,8ea2baadv 966b e999ab 966b 0000966b d849 d849 d849 d849 d849 d849 d849 -8359 d84a d84a d84a * * 3a2e 8ea2baae,8ea2baaev 9671 e999b1 9671 00009671 d84a d84a d84a d84a d84a d84a d84a -8360 d84b d84b d84b * * 3a2f 8ea2baaf,8ea2baafv 966f e999af 966f 0000966f d84b d84b d84b d84b d84b d84b d84b -8361 d84c d84c d84c * * 3a30 8ea2bab0,8ea2bab0v 96bf e99abf 96bf 000096bf d84c d84c d84c d84c d84c d84c d84c -8362 d84d d84d d84d * * 3a31 8ea2bab1,8ea2bab1v 976a e99daa 976a 0000976a d84d d84d d84d d84d d84d d84d d84d -8363 d84e d84e d84e * * 3a32 8ea2bab2,8ea2bab2v 9804 e9a084 9804 00009804 d84e d84e d84e d84e d84e d84e d84e -8364 d84f d84f d84f * * 3a33 8ea2bab3,8ea2bab3v 98e5 e9a3a5 98e5 000098e5 d84f d84f d84f d84f d84f d84f d84f -8365 d850 d850 d850 * * 3a34 8ea2bab4,8ea2bab4v 9997 e9a697 9997 00009997 d850 d850 d850 d850 d850 d850 d850 -8366 d851 d851 d851 * * 3a35 8ea2bab5,8ea2bab5v 509b e5829b 509b 0000509b d851 d851 d851 d851 d851 d851 d851 -8367 d852 d852 d852 * * 3a36 8ea2bab6,8ea2bab6v 5095 e58295 5095 00005095 d852 d852 d852 d852 d852 d852 d852 -8368 d853 d853 d853 * * 3a37 8ea2bab7,8ea2bab7v 5094 e58294 5094 00005094 d853 d853 d853 d853 d853 d853 d853 -8369 d854 d854 d854 * * 3a38 8ea2bab8,8ea2bab8v 509e e5829e 509e 0000509e d854 d854 d854 d854 d854 d854 d854 -8370 d855 d855 d855 * * 3a39 8ea2bab9,8ea2bab9v 508b e5828b 508b 0000508b d855 d855 d855 d855 d855 d855 d855 -8371 d856 d856 d856 * * 3a3a 8ea2baba,8ea2babav 50a3 e582a3 50a3 000050a3 d856 d856 d856 d856 d856 d856 d856 -8372 d857 d857 d857 * * 3a3b 8ea2babb,8ea2babbv 5083 e58283 5083 00005083 d857 d857 d857 d857 d857 d857 d857 -8373 d858 d858 d858 * * 3a3c 8ea2babc,8ea2babcv 508c e5828c 508c 0000508c d858 d858 d858 d858 d858 d858 d858 -8374 d859 d859 d859 * * 3a3d 8ea2babd,8ea2babdv 508e e5828e 508e 0000508e d859 d859 d859 d859 d859 d859 d859 -8375 d85a d85a d85a * * 3a3e 8ea2babe,8ea2babev 509d e5829d 509d 0000509d d85a d85a d85a d85a d85a d85a d85a -8376 d85b d85b d85b * * 3a3f 8ea2babf,8ea2babfv 5068 e581a8 5068 00005068 d85b d85b d85b d85b d85b d85b d85b -8377 d85c d85c d85c * * 3a40 8ea2bac0,8ea2bac0v 509c e5829c 509c 0000509c d85c d85c d85c d85c d85c d85c d85c -8378 d85d d85d d85d * * 3a41 8ea2bac1,8ea2bac1v 5092 e58292 5092 00005092 d85d d85d d85d d85d d85d d85d d85d -8379 d85e d85e d85e * * 3a42 8ea2bac2,8ea2bac2v 5082 e58282 5082 00005082 d85e d85e d85e d85e d85e d85e d85e -8380 d85f d85f d85f * * 3a43 8ea2bac3,8ea2bac3v 5087 e58287 5087 00005087 d85f d85f d85f d85f d85f d85f d85f -8381 d860 d860 d860 * * 3a44 8ea2bac4,8ea2bac4v 515f e5859f 515f 0000515f d860 d860 d860 d860 d860 d860 d860 -8382 d861 d861 d861 * * 3a45 8ea2bac5,8ea2bac5v 51d4 e58794 51d4 000051d4 d861 d861 d861 d861 d861 d861 d861 -8383 d862 d862 d862 * * 3a46 8ea2bac6,8ea2bac6v 5312 e58c92 5312 00005312 d862 d862 d862 d862 d862 d862 d862 -8384 d863 d863 d863 * * 3a47 8ea2bac7,8ea2bac7v 5311 e58c91 5311 00005311 d863 d863 d863 d863 d863 d863 d863 -8385 d864 d864 d864 * * 3a48 8ea2bac8,8ea2bac8v 53a4 e58ea4 53a4 000053a4 d864 d864 d864 d864 d864 d864 d864 -8386 d865 d865 d865 * * 3a49 8ea2bac9,8ea2bac9v 53a7 e58ea7 53a7 000053a7 d865 d865 d865 d865 d865 d865 d865 -8387 d866 d866 d866 * * 3a4a 8ea2baca,8ea2bacav 5591 e59691 5591 00005591 d866 d866 d866 d866 d866 d866 d866 -8388 d867 d867 d867 * * 3a4b 8ea2bacb,8ea2bacbv 55a8 e596a8 55a8 000055a8 d867 d867 d867 d867 d867 d867 d867 -8389 d868 d868 d868 * * 3a4c 8ea2bacc,8ea2baccv 55a5 e596a5 55a5 000055a5 d868 d868 d868 d868 d868 d868 d868 -8390 d869 d869 d869 * * 3a4d 8ea2bacd,8ea2bacdv 55ad e596ad 55ad 000055ad d869 d869 d869 d869 d869 d869 d869 -8391 d86a d86a d86a * * 3a4e 8ea2bace,8ea2bacev 5577 e595b7 5577 00005577 d86a d86a d86a d86a d86a d86a d86a -8392 d86b d86b d86b * * 3a4f 8ea2bacf,8ea2bacfv 5645 e59985 5645 00005645 d86b d86b d86b d86b d86b d86b d86b -8393 d86c d86c d86c * * 3a50 8ea2bad0,8ea2bad0v 55a2 e596a2 55a2 000055a2 d86c d86c d86c d86c d86c d86c d86c -8394 d86d d86d d86d * * 3a51 8ea2bad1,8ea2bad1v 5593 e59693 5593 00005593 d86d d86d d86d d86d d86d d86d d86d -8395 d86e d86e d86e * * 3a52 8ea2bad2,8ea2bad2v 5588 e59688 5588 00005588 d86e d86e d86e d86e d86e d86e d86e -8396 d86f d86f d86f * * 3a53 8ea2bad3,8ea2bad3v 558f e5968f 558f 0000558f d86f d86f d86f d86f d86f d86f d86f -8397 d870 d870 d870 * * 3a54 8ea2bad4,8ea2bad4v 55b5 e596b5 55b5 000055b5 d870 d870 d870 d870 d870 d870 d870 -8398 d871 d871 d871 * * 3a55 8ea2bad5,8ea2bad5v 5581 e59681 5581 00005581 d871 d871 d871 d871 d871 d871 d871 -8399 d872 d872 d872 * * 3a56 8ea2bad6,8ea2bad6v 55a3 e596a3 55a3 000055a3 d872 d872 d872 d872 d872 d872 d872 -8400 d873 d873 d873 * * 3a57 8ea2bad7,8ea2bad7v 5592 e59692 5592 00005592 d873 d873 d873 d873 d873 d873 d873 -8401 d874 d874 d874 * * 3a58 8ea2bad8,8ea2bad8v 55a4 e596a4 55a4 000055a4 d874 d874 d874 d874 d874 d874 d874 -8402 d875 d875 d875 * * 3a59 8ea2bad9,8ea2bad9v 557d e595bd 557d 0000557d d875 d875 d875 d875 d875 d875 d875 -8403 d876 d876 d876 * * 3a5a 8ea2bada,8ea2badav 558c e5968c 558c 0000558c d876 d876 d876 d876 d876 d876 d876 -8404 d877 d877 d877 * * 3a5b 8ea2badb,8ea2badbv 55a6 e596a6 55a6 000055a6 d877 d877 d877 d877 d877 d877 d877 -8405 d878 d878 d878 * * 3a5c 8ea2badc,8ea2badcv 557f e595bf 557f 0000557f d878 d878 d878 d878 d878 d878 d878 -8406 d879 d879 d879 * * 3a5d 8ea2badd,8ea2baddv 5595 e59695 5595 00005595 d879 d879 d879 d879 d879 d879 d879 -8407 d87a d87a d87a * * 3a5e 8ea2bade,8ea2badev 55a1 e596a1 55a1 000055a1 d87a d87a d87a d87a d87a d87a d87a -8408 d87b d87b d87b * * 3a5f 8ea2badf,8ea2badfv 558e e5968e 558e 0000558e d87b d87b d87b d87b d87b d87b d87b -8409 d87c d87c d87c * * 3a60 8ea2bae0,8ea2bae0v 570c e59c8c 570c 0000570c d87c d87c d87c d87c d87c d87c d87c -8410 d87d d87d d87d * * 3a61 8ea2bae1,8ea2bae1v 5829 e5a0a9 5829 00005829 d87d d87d d87d d87d d87d d87d d87d -8411 d87e d87e d87e * * 3a62 8ea2bae2,8ea2bae2v 5837 e5a0b7 5837 00005837 d87e d87e d87e d87e d87e d87e d87e -8412 d8a1 d8a1 d8a1 * * 3a63 8ea2bae3,8ea2bae3v 5819 e5a099 5819 00005819 d8a1 d8a1 d8a1 d8a1 d8a1 d8a1 d8a1 -8413 d8a2 d8a2 d8a2 * * 3a64 8ea2bae4,8ea2bae4v 581e e5a09e 581e 0000581e d8a2 d8a2 d8a2 d8a2 d8a2 d8a2 d8a2 -8414 d8a3 d8a3 d8a3 * * 3a65 8ea2bae5,8ea2bae5v 5827 e5a0a7 5827 00005827 d8a3 d8a3 d8a3 d8a3 d8a3 d8a3 d8a3 -8415 d8a4 d8a4 d8a4 * * 3a66 8ea2bae6,8ea2bae6v 5823 e5a0a3 5823 00005823 d8a4 d8a4 d8a4 d8a4 d8a4 d8a4 d8a4 -8416 d8a5 d8a5 d8a5 * * 3a67 8ea2bae7,8ea2bae7v 5828 e5a0a8 5828 00005828 d8a5 d8a5 d8a5 d8a5 d8a5 d8a5 d8a5 -8417 d8a6 d8a6 d8a6 * * 3a68 8ea2bae8,8ea2bae8v 57f5 e59fb5 57f5 000057f5 d8a6 d8a6 d8a6 d8a6 d8a6 d8a6 d8a6 -8418 d8a7 d8a7 d8a7 * * 3a69 8ea2bae9,8ea2bae9v 5848 e5a188 5848 00005848 d8a7 d8a7 d8a7 d8a7 d8a7 d8a7 d8a7 -8419 d8a8 d8a8 d8a8 * * 3a6a 8ea2baea,8ea2baeav 5825 e5a0a5 5825 00005825 d8a8 d8a8 d8a8 d8a8 d8a8 d8a8 d8a8 -8420 d8a9 d8a9 d8a9 * * 3a6b 8ea2baeb,8ea2baebv 581c e5a09c 581c 0000581c d8a9 d8a9 d8a9 d8a9 d8a9 d8a9 d8a9 -8421 d8aa d8aa d8aa * * 3a6c 8ea2baec,8ea2baecv 581b e5a09b 581b 0000581b d8aa d8aa d8aa d8aa d8aa d8aa d8aa -8422 d8ab d8ab d8ab * * 3a6d 8ea2baed,8ea2baedv 5833 e5a0b3 5833 00005833 d8ab d8ab d8ab d8ab d8ab d8ab d8ab -8423 d8ac d8ac d8ac * * 3a6e 8ea2baee,8ea2baeev 583f e5a0bf 583f 0000583f d8ac d8ac d8ac d8ac d8ac d8ac d8ac -8424 d8ad d8ad d8ad * * 3a6f 8ea2baef,8ea2baefv 5836 e5a0b6 5836 00005836 d8ad d8ad d8ad d8ad d8ad d8ad d8ad -8425 d8ae d8ae d8ae * * 3a70 8ea2baf0,8ea2baf0v 582e e5a0ae 582e 0000582e d8ae d8ae d8ae d8ae d8ae d8ae d8ae -8426 d8af d8af d8af * * 3a71 8ea2baf1,8ea2baf1v 5839 e5a0b9 5839 00005839 d8af d8af d8af d8af d8af d8af d8af -8427 d8b0 d8b0 d8b0 * * 3a72 8ea2baf2,8ea2baf2v 5838 e5a0b8 5838 00005838 d8b0 d8b0 d8b0 d8b0 d8b0 d8b0 d8b0 -8428 d8b1 d8b1 d8b1 * * 3a73 8ea2baf3,8ea2baf3v 582d e5a0ad 582d 0000582d d8b1 d8b1 d8b1 d8b1 d8b1 d8b1 d8b1 -8429 d8b2 d8b2 d8b2 * * 3a74 8ea2baf4,8ea2baf4v 582c e5a0ac 582c 0000582c d8b2 d8b2 d8b2 d8b2 d8b2 d8b2 d8b2 -8430 d8b3 d8b3 d8b3 * * 3a75 8ea2baf5,8ea2baf5v 583b e5a0bb 583b 0000583b d8b3 d8b3 d8b3 d8b3 d8b3 d8b3 d8b3 -8431 d8b4 d8b4 d8b4 * * 3a76 8ea2baf6,8ea2baf6v 5961 e5a5a1 5961 00005961 d8b4 d8b4 d8b4 d8b4 d8b4 d8b4 d8b4 -8432 d8b5 d8b5 d8b5 * * 3a77 8ea2baf7,8ea2baf7v 5aaf e5aaaf 5aaf 00005aaf d8b5 d8b5 d8b5 d8b5 d8b5 d8b5 d8b5 -8433 d8b6 d8b6 d8b6 * * 3a78 8ea2baf8,8ea2baf8v 5a94 e5aa94 5a94 00005a94 d8b6 d8b6 d8b6 d8b6 d8b6 d8b6 d8b6 -8434 d8b7 d8b7 d8b7 * * 3a79 8ea2baf9,8ea2baf9v 5a9f e5aa9f 5a9f 00005a9f d8b7 d8b7 d8b7 d8b7 d8b7 d8b7 d8b7 -8435 d8b8 d8b8 d8b8 * * 3a7a 8ea2bafa,8ea2bafav 5a7a e5a9ba 5a7a 00005a7a d8b8 d8b8 d8b8 d8b8 d8b8 d8b8 d8b8 -8436 d8b9 d8b9 d8b9 * * 3a7b 8ea2bafb,8ea2bafbv 5aa2 e5aaa2 5aa2 00005aa2 d8b9 d8b9 d8b9 d8b9 d8b9 d8b9 d8b9 -8437 d8ba d8ba d8ba * * 3a7c 8ea2bafc,8ea2bafcv 5a9e e5aa9e 5a9e 00005a9e d8ba d8ba d8ba d8ba d8ba d8ba d8ba -8438 d8bb d8bb d8bb * * 3a7d 8ea2bafd,8ea2bafdv 5a78 e5a9b8 5a78 00005a78 d8bb d8bb d8bb d8bb d8bb d8bb d8bb -8439 d8bc d8bc d8bc * * 3a7e 8ea2bafe,8ea2bafev 5aa6 e5aaa6 5aa6 00005aa6 d8bc d8bc d8bc d8bc d8bc d8bc d8bc -8440 d8bd d8bd d8bd * * 3b21 8ea2bba1,8ea2bba1v 5a7c e5a9bc 5a7c 00005a7c d8bd d8bd d8bd d8bd d8bd d8bd d8bd -8441 d8be d8be d8be * * 3b22 8ea2bba2,8ea2bba2v 5aa5 e5aaa5 5aa5 00005aa5 d8be d8be d8be d8be d8be d8be d8be -8442 d8bf d8bf d8bf * * 3b23 8ea2bba3,8ea2bba3v 5aac e5aaac 5aac 00005aac d8bf d8bf d8bf d8bf d8bf d8bf d8bf -8443 d8c0 d8c0 d8c0 * * 3b24 8ea2bba4,8ea2bba4v 5a95 e5aa95 5a95 00005a95 d8c0 d8c0 d8c0 d8c0 d8c0 d8c0 d8c0 -8444 d8c1 d8c1 d8c1 * * 3b25 8ea2bba5,8ea2bba5v 5aae e5aaae 5aae 00005aae d8c1 d8c1 d8c1 d8c1 d8c1 d8c1 d8c1 -8445 d8c2 d8c2 d8c2 * * 3b26 8ea2bba6,8ea2bba6v 5a37 e5a8b7 5a37 00005a37 d8c2 d8c2 d8c2 d8c2 d8c2 d8c2 d8c2 -8446 d8c3 d8c3 d8c3 * * 3b27 8ea2bba7,8ea2bba7v 5a84 e5aa84 5a84 00005a84 d8c3 d8c3 d8c3 d8c3 d8c3 d8c3 d8c3 -8447 d8c4 d8c4 d8c4 * * 3b28 8ea2bba8,8ea2bba8v 5a8a e5aa8a 5a8a 00005a8a d8c4 d8c4 d8c4 d8c4 d8c4 d8c4 d8c4 -8448 d8c5 d8c5 d8c5 * * 3b29 8ea2bba9,8ea2bba9v 5a97 e5aa97 5a97 00005a97 d8c5 d8c5 d8c5 d8c5 d8c5 d8c5 d8c5 -8449 d8c6 d8c6 d8c6 * * 3b2a 8ea2bbaa,8ea2bbaav 5a83 e5aa83 5a83 00005a83 d8c6 d8c6 d8c6 d8c6 d8c6 d8c6 d8c6 -8450 d8c7 d8c7 d8c7 * * 3b2b 8ea2bbab,8ea2bbabv 5a8b e5aa8b 5a8b 00005a8b d8c7 d8c7 d8c7 d8c7 d8c7 d8c7 d8c7 -8451 d8c8 d8c8 d8c8 * * 3b2c 8ea2bbac,8ea2bbacv 5aa9 e5aaa9 5aa9 00005aa9 d8c8 d8c8 d8c8 d8c8 d8c8 d8c8 d8c8 -8452 d8c9 d8c9 d8c9 * * 3b2d 8ea2bbad,8ea2bbadv 5a7b e5a9bb 5a7b 00005a7b d8c9 d8c9 d8c9 d8c9 d8c9 d8c9 d8c9 -8453 d8ca d8ca d8ca * * 3b2e 8ea2bbae,8ea2bbaev 5a7d e5a9bd 5a7d 00005a7d d8ca d8ca d8ca d8ca d8ca d8ca d8ca -8454 d8cb d8cb d8cb * * 3b2f 8ea2bbaf,8ea2bbafv 5a8c e5aa8c 5a8c 00005a8c d8cb d8cb d8cb d8cb d8cb d8cb d8cb -8455 d8cc d8cc d8cc * * 3b30 8ea2bbb0,8ea2bbb0v 5a9c e5aa9c 5a9c 00005a9c d8cc d8cc d8cc d8cc d8cc d8cc d8cc -8456 d8cd d8cd d8cd * * 3b31 8ea2bbb1,8ea2bbb1v 5a8f e5aa8f 5a8f 00005a8f d8cd d8cd d8cd d8cd d8cd d8cd d8cd -8457 d8ce d8ce d8ce * * 3b32 8ea2bbb2,8ea2bbb2v 5a93 e5aa93 5a93 00005a93 d8ce d8ce d8ce d8ce d8ce d8ce d8ce -8458 d8cf d8cf d8cf * * 3b33 8ea2bbb3,8ea2bbb3v 5a9d e5aa9d 5a9d 00005a9d d8cf d8cf d8cf d8cf d8cf d8cf d8cf -8459 d8d0 d8d0 d8d0 * * 3b34 8ea2bbb4,8ea2bbb4v 5bea e5afaa 5bea 00005bea d8d0 d8d0 d8d0 d8d0 d8d0 d8d0 d8d0 -8460 d8d1 d8d1 d8d1 * * 3b35 8ea2bbb5,8ea2bbb5v 5bcd e5af8d 5bcd 00005bcd d8d1 d8d1 d8d1 d8d1 d8d1 d8d1 d8d1 -8461 d8d2 d8d2 d8d2 * * 3b36 8ea2bbb6,8ea2bbb6v 5bcb e5af8b 5bcb 00005bcb d8d2 d8d2 d8d2 d8d2 d8d2 d8d2 d8d2 -8462 d8d3 d8d3 d8d3 * * 3b37 8ea2bbb7,8ea2bbb7v 5bd4 e5af94 5bd4 00005bd4 d8d3 d8d3 d8d3 d8d3 d8d3 d8d3 d8d3 -8463 d8d4 d8d4 d8d4 * * 3b38 8ea2bbb8,8ea2bbb8v 5bd1 e5af91 5bd1 00005bd1 d8d4 d8d4 d8d4 d8d4 d8d4 d8d4 d8d4 -8464 d8d5 d8d5 d8d5 * * 3b39 8ea2bbb9,8ea2bbb9v 5bca e5af8a 5bca 00005bca d8d5 d8d5 d8d5 d8d5 d8d5 d8d5 d8d5 -8465 d8d6 d8d6 d8d6 * * 3b3a 8ea2bbba,8ea2bbbav 5bce e5af8e 5bce 00005bce d8d6 d8d6 d8d6 d8d6 d8d6 d8d6 d8d6 -8466 d8d7 d8d7 d8d7 * * 3b3b 8ea2bbbb,8ea2bbbbv 5c0c e5b08c 5c0c 00005c0c d8d7 d8d7 d8d7 d8d7 d8d7 d8d7 d8d7 -8467 d8d8 d8d8 d8d8 * * 3b3c 8ea2bbbc,8ea2bbbcv 5c30 e5b0b0 5c30 00005c30 d8d8 d8d8 d8d8 d8d8 d8d8 d8d8 d8d8 -8468 d8d9 d8d9 d8d9 * * 3b3d 8ea2bbbd,8ea2bbbdv 5d37 e5b4b7 5d37 00005d37 d8d9 d8d9 d8d9 d8d9 d8d9 d8d9 d8d9 -8469 d8da d8da d8da * * 3b3e 8ea2bbbe,8ea2bbbev 5d43 e5b583 5d43 00005d43 d8da d8da d8da d8da d8da d8da d8da -8470 d8db d8db d8db * * 3b3f 8ea2bbbf,8ea2bbbfv 5d6b e5b5ab 5d6b 00005d6b d8db d8db d8db d8db d8db d8db d8db -8471 d8dc d8dc d8dc * * 3b40 8ea2bbc0,8ea2bbc0v 5d41 e5b581 5d41 00005d41 d8dc d8dc d8dc d8dc d8dc d8dc d8dc -8472 d8dd d8dd d8dd * * 3b41 8ea2bbc1,8ea2bbc1v 5d4b e5b58b 5d4b 00005d4b d8dd d8dd d8dd d8dd d8dd d8dd d8dd -8473 d8de d8de d8de * * 3b42 8ea2bbc2,8ea2bbc2v 5d3f e5b4bf 5d3f 00005d3f d8de d8de d8de d8de d8de d8de d8de -8474 d8df d8df d8df * * 3b43 8ea2bbc3,8ea2bbc3v 5d35 e5b4b5 5d35 00005d35 d8df d8df d8df d8df d8df d8df d8df -8475 d8e0 d8e0 d8e0 * * 3b44 8ea2bbc4,8ea2bbc4v 5d51 e5b591 5d51 00005d51 d8e0 d8e0 d8e0 d8e0 d8e0 d8e0 d8e0 -8476 d8e1 d8e1 d8e1 * * 3b45 8ea2bbc5,8ea2bbc5v 5d4e e5b58e 5d4e 00005d4e d8e1 d8e1 d8e1 d8e1 d8e1 d8e1 d8e1 -8477 d8e2 d8e2 d8e2 * * 3b46 8ea2bbc6,8ea2bbc6v 5d55 e5b595 5d55 00005d55 d8e2 d8e2 d8e2 d8e2 d8e2 d8e2 d8e2 -8478 d8e3 d8e3 d8e3 * * 3b47 8ea2bbc7,8ea2bbc7v 5d33 e5b4b3 5d33 00005d33 d8e3 d8e3 d8e3 d8e3 d8e3 d8e3 d8e3 -8479 d8e4 d8e4 d8e4 * * 3b48 8ea2bbc8,8ea2bbc8v 5d3a e5b4ba 5d3a 00005d3a d8e4 d8e4 d8e4 d8e4 d8e4 d8e4 d8e4 -8480 d8e5 d8e5 d8e5 * * 3b49 8ea2bbc9,8ea2bbc9v 5d52 e5b592 5d52 00005d52 d8e5 d8e5 d8e5 d8e5 d8e5 d8e5 d8e5 -8481 d8e6 d8e6 d8e6 * * 3b4a 8ea2bbca,8ea2bbcav 5d3d e5b4bd 5d3d 00005d3d d8e6 d8e6 d8e6 d8e6 d8e6 d8e6 d8e6 -8482 d8e7 d8e7 d8e7 * * 3b4b 8ea2bbcb,8ea2bbcbv 5d31 e5b4b1 5d31 00005d31 d8e7 d8e7 d8e7 d8e7 d8e7 d8e7 d8e7 -8483 d8e8 d8e8 d8e8 * * 3b4c 8ea2bbcc,8ea2bbccv 5d59 e5b599 5d59 00005d59 d8e8 d8e8 d8e8 d8e8 d8e8 d8e8 d8e8 -8484 d8e9 d8e9 d8e9 * * 3b4d 8ea2bbcd,8ea2bbcdv 5d42 e5b582 5d42 00005d42 d8e9 d8e9 d8e9 d8e9 d8e9 d8e9 d8e9 -8485 d8ea d8ea d8ea * * 3b4e 8ea2bbce,8ea2bbcev 5d39 e5b4b9 5d39 00005d39 d8ea d8ea d8ea d8ea d8ea d8ea d8ea -8486 d8eb d8eb d8eb * * 3b4f 8ea2bbcf,8ea2bbcfv 5d49 e5b589 5d49 00005d49 d8eb d8eb d8eb d8eb d8eb d8eb d8eb -8487 d8ec d8ec d8ec * * 3b50 8ea2bbd0,8ea2bbd0v 5d38 e5b4b8 5d38 00005d38 d8ec d8ec d8ec d8ec d8ec d8ec d8ec -8488 d8ed d8ed d8ed * * 3b51 8ea2bbd1,8ea2bbd1v 5d3c e5b4bc 5d3c 00005d3c d8ed d8ed d8ed d8ed d8ed d8ed d8ed -8489 d8ee d8ee d8ee * * 3b52 8ea2bbd2,8ea2bbd2v 5d32 e5b4b2 5d32 00005d32 d8ee d8ee d8ee d8ee d8ee d8ee d8ee -8490 d8ef d8ef d8ef * * 3b53 8ea2bbd3,8ea2bbd3v 5d36 e5b4b6 5d36 00005d36 d8ef d8ef d8ef d8ef d8ef d8ef d8ef -8491 d8f0 d8f0 d8f0 * * 3b54 8ea2bbd4,8ea2bbd4v 5d40 e5b580 5d40 00005d40 d8f0 d8f0 d8f0 d8f0 d8f0 d8f0 d8f0 -8492 d8f1 d8f1 d8f1 * * 3b55 8ea2bbd5,8ea2bbd5v 5d45 e5b585 5d45 00005d45 d8f1 d8f1 d8f1 d8f1 d8f1 d8f1 d8f1 -8493 d8f2 d8f2 d8f2 * * 3b56 8ea2bbd6,8ea2bbd6v 5e44 e5b984 5e44 00005e44 d8f2 d8f2 d8f2 d8f2 d8f2 d8f2 d8f2 -8494 d8f3 d8f3 d8f3 * * 3b57 8ea2bbd7,8ea2bbd7v 5e41 e5b981 5e41 00005e41 d8f3 d8f3 d8f3 d8f3 d8f3 d8f3 d8f3 -8495 d8f4 d8f4 d8f4 * * 3b58 8ea2bbd8,8ea2bbd8v 5f58 e5bd98,ee8589 5f58,e149 00005f58,0000e149 fc4f,d8f4 d8f4 d8f4 d8f4,fc4f d8f4 d8f4 fc4f,d8f4 -8496 d8f5 d8f5 d8f5 * * 3b59 8ea2bbd9,8ea2bbd9v 5fa6 e5bea6 5fa6 00005fa6 d8f5 d8f5 d8f5 d8f5 d8f5 d8f5 d8f5 -8497 d8f6 d8f6 d8f6 * * 3b5a 8ea2bbda,8ea2bbdav 5fa5 e5bea5 5fa5 00005fa5 d8f6 d8f6 d8f6 d8f6 d8f6 d8f6 d8f6 -8498 d8f7 d8f7 d8f7 * * 3b5b 8ea2bbdb,8ea2bbdbv 5fab e5beab 5fab 00005fab d8f7 d8f7 d8f7 d8f7 d8f7 d8f7 d8f7 -8499 d8f8 d8f8 d8f8 * * 3b5c 8ea2bbdc,8ea2bbdcv 60c9 e68389 60c9 000060c9 d8f8 d8f8 d8f8 d8f8 d8f8 d8f8 d8f8 -8500 d8f9 d8f9 d8f9 * * 3b5d 8ea2bbdd,8ea2bbddv 60b9 e682b9 60b9 000060b9 d8f9 d8f9 d8f9 d8f9 d8f9 d8f9 d8f9 -8501 d8fa d8fa d8fa * * 3b5e 8ea2bbde,8ea2bbdev 60cc e6838c 60cc 000060cc d8fa d8fa d8fa d8fa d8fa d8fa d8fa -8502 d8fb d8fb d8fb * * 3b5f 8ea2bbdf,8ea2bbdfv 60e2 e683a2 60e2 000060e2 d8fb d8fb d8fb d8fb d8fb d8fb d8fb -8503 d8fc d8fc d8fc * * 3b60 8ea2bbe0,8ea2bbe0v 60ce e6838e 60ce 000060ce d8fc d8fc d8fc d8fc d8fc d8fc d8fc -8504 d8fd d8fd d8fd * * 3b61 8ea2bbe1,8ea2bbe1v 60c4 e68384 60c4 000060c4 d8fd d8fd d8fd d8fd d8fd d8fd d8fd -8505 d8fe d8fe d8fe * * 3b62 8ea2bbe2,8ea2bbe2v 6114 e68494 6114 00006114 d8fe d8fe d8fe d8fe d8fe d8fe d8fe -8506 d940 d940 d940 * * 3b63 8ea2bbe3,8ea2bbe3v 60f2 e683b2 60f2 000060f2 d940 d940 d940 d940 d940 d940 d940 -8507 d941 d941 d941 * * 3b64 8ea2bbe4,8ea2bbe4v 610a e6848a 610a 0000610a d941 d941 d941 d941 d941 d941 d941 -8508 d942 d942 d942 * * 3b65 8ea2bbe5,8ea2bbe5v 6116 e68496 6116 00006116 d942 d942 d942 d942 d942 d942 d942 -8509 d943 d943 d943 * * 3b66 8ea2bbe6,8ea2bbe6v 6105 e68485 6105 00006105 d943 d943 d943 d943 d943 d943 d943 -8510 d944 d944 d944 * * 3b67 8ea2bbe7,8ea2bbe7v 60f5 e683b5 60f5 000060f5 d944 d944 d944 d944 d944 d944 d944 -8511 d945 d945 d945 * * 3b68 8ea2bbe8,8ea2bbe8v 6113 e68493 6113 00006113 d945 d945 d945 d945 d945 d945 d945 -8512 d946 d946 d946 * * 3b69 8ea2bbe9,8ea2bbe9v 60f8 e683b8 60f8 000060f8 d946 d946 d946 d946 d946 d946 d946 -8513 d947 d947 d947 * * 3b6a 8ea2bbea,8ea2bbeav 60fc e683bc 60fc 000060fc d947 d947 d947 d947 d947 d947 d947 -8514 d948 d948 d948 * * 3b6b 8ea2bbeb,8ea2bbebv 60fe e683be 60fe 000060fe d948 d948 d948 d948 d948 d948 d948 -8515 d949 d949 d949 * * 3b6c 8ea2bbec,8ea2bbecv 60c1 e68381 60c1 000060c1 d949 d949 d949 d949 d949 d949 d949 -8516 d94a d94a d94a * * 3b6d 8ea2bbed,8ea2bbedv 6103 e68483 6103 00006103 d94a d94a d94a d94a d94a d94a d94a -8517 d94b d94b d94b * * 3b6e 8ea2bbee,8ea2bbeev 6118 e68498 6118 00006118 d94b d94b d94b d94b d94b d94b d94b -8518 d94c d94c d94c * * 3b6f 8ea2bbef,8ea2bbefv 611d e6849d 611d 0000611d d94c d94c d94c d94c d94c d94c d94c -8519 d94d d94d d94d * * 3b70 8ea2bbf0,8ea2bbf0v 6110 e68490 6110 00006110 d94d d94d d94d d94d d94d d94d d94d -8520 d94e d94e d94e * * 3b71 8ea2bbf1,8ea2bbf1v 60ff e683bf 60ff 000060ff d94e d94e d94e d94e d94e d94e d94e -8521 d94f d94f d94f * * 3b72 8ea2bbf2,8ea2bbf2v 6104 e68484 6104 00006104 d94f d94f d94f d94f d94f d94f d94f -8522 d950 d950 d950 * * 3b73 8ea2bbf3,8ea2bbf3v 610b e6848b 610b 0000610b d950 d950 d950 d950 d950 d950 d950 -8523 d951 d951 d951 * * 3b74 8ea2bbf4,8ea2bbf4v 624a e6898a 624a 0000624a d951 d951 d951 d951 d951 d951 d951 -8524 d952 d952 d952 * * 3b75 8ea2bbf5,8ea2bbf5v 6394 e68e94 6394 00006394 d952 d952 d952 d952 d952 d952 d952 -8525 d953 d953 d953 * * 3b76 8ea2bbf6,8ea2bbf6v 63b1 e68eb1 63b1 000063b1 d953 d953 d953 d953 d953 d953 d953 -8526 d954 d954 d954 * * 3b77 8ea2bbf7,8ea2bbf7v 63b0 e68eb0 63b0 000063b0 d954 d954 d954 d954 d954 d954 d954 -8527 d955 d955 d955 * * 3b78 8ea2bbf8,8ea2bbf8v 63ce e68f8e 63ce 000063ce d955 d955 d955 d955 d955 d955 d955 -8528 d956 d956 d956 * * 3b79 8ea2bbf9,8ea2bbf9v 63e5 e68fa5 63e5 000063e5 d956 d956 d956 d956 d956 d956 d956 -8529 d957 d957 d957 * * 3b7a 8ea2bbfa,8ea2bbfav 63e8 e68fa8 63e8 000063e8 d957 d957 d957 d957 d957 d957 d957 -8530 d958 d958 d958 * * 3b7b 8ea2bbfb,8ea2bbfbv 63ef e68faf 63ef 000063ef d958 d958 d958 d958 d958 d958 d958 -8531 d959 d959 d959 * * 3b7c 8ea2bbfc,8ea2bbfcv 63c3 e68f83 63c3 000063c3 d959 d959 d959 d959 d959 d959 d959 -8532 d95a d95a d95a * * 3b7d 8ea2bbfd,8ea2bbfdv 649d e6929d 649d 0000649d d95a d95a d95a d95a d95a d95a d95a -8533 d95b d95b d95b * * 3b7e 8ea2bbfe,8ea2bbfev 63f3 e68fb3 63f3 000063f3 d95b d95b d95b d95b d95b d95b d95b -8534 d95c d95c d95c * * 3c21 8ea2bca1,8ea2bca1v 63ca e68f8a 63ca 000063ca d95c d95c d95c d95c d95c d95c d95c -8535 d95d d95d d95d * * 3c22 8ea2bca2,8ea2bca2v 63e0 e68fa0 63e0 000063e0 d95d d95d d95d d95d d95d d95d d95d -8536 d95e d95e d95e * * 3c23 8ea2bca3,8ea2bca3v 63f6 e68fb6 63f6 000063f6 d95e d95e d95e d95e d95e d95e d95e -8537 d95f d95f d95f * * 3c24 8ea2bca4,8ea2bca4v 63d5 e68f95 63d5 000063d5 d95f d95f d95f d95f d95f d95f d95f -8538 d960 d960 d960 * * 3c25 8ea2bca5,8ea2bca5v 63f2 e68fb2 63f2 000063f2 d960 d960 d960 d960 d960 d960 d960 -8539 d961 d961 d961 * * 3c26 8ea2bca6,8ea2bca6v 63f5 e68fb5 63f5 000063f5 d961 d961 d961 d961 d961 d961 d961 -8540 d962 d962 d962 * * 3c27 8ea2bca7,8ea2bca7v 6461 e691a1 6461 00006461 d962 d962 d962 d962 d962 d962 d962 -8541 d963 d963 d963 * * 3c28 8ea2bca8,8ea2bca8v 63df e68f9f 63df 000063df d963 d963 d963 d963 d963 d963 d963 -8542 d964 d964 d964 * * 3c29 8ea2bca9,8ea2bca9v 63be e68ebe 63be 000063be d964 d964 d964 d964 d964 d964 d964 -8543 d965 d965 d965 * * 3c2a 8ea2bcaa,8ea2bcaav 63dd e68f9d 63dd 000063dd d965 d965 d965 d965 d965 d965 d965 -8544 d966 d966 d966 * * 3c2b 8ea2bcab,8ea2bcabv 63dc e68f9c 63dc 000063dc d966 d966 d966 d966 d966 d966 d966 -8545 d967 d967 d967 * * 3c2c 8ea2bcac,8ea2bcacv 63c4 e68f84 63c4 000063c4 d967 d967 d967 d967 d967 d967 d967 -8546 d968 d968 d968 * * 3c2d 8ea2bcad,8ea2bcadv 63d8 e68f98 63d8 000063d8 d968 d968 d968 d968 d968 d968 d968 -8547 d969 d969 d969 * * 3c2e 8ea2bcae,8ea2bcaev 63d3 e68f93 63d3 000063d3 d969 d969 d969 d969 d969 d969 d969 -8548 d96a d96a d96a * * 3c2f 8ea2bcaf,8ea2bcafv 63c2 e68f82 63c2 000063c2 d96a d96a d96a d96a d96a d96a d96a -8549 d96b d96b d96b * * 3c30 8ea2bcb0,8ea2bcb0v 63c7 e68f87 63c7 000063c7 d96b d96b d96b d96b d96b d96b d96b -8550 d96c d96c d96c * * 3c31 8ea2bcb1,8ea2bcb1v 63cc e68f8c 63cc 000063cc d96c d96c d96c d96c d96c d96c d96c -8551 d96d d96d d96d * * 3c32 8ea2bcb2,8ea2bcb2v 63cb e68f8b 63cb 000063cb d96d d96d d96d d96d d96d d96d d96d -8552 d96e d96e d96e * * 3c33 8ea2bcb3,8ea2bcb3v 63c8 e68f88 63c8 000063c8 d96e d96e d96e d96e d96e d96e d96e -8553 d96f d96f d96f * * 3c34 8ea2bcb4,8ea2bcb4v 63f0 e68fb0 63f0 000063f0 d96f d96f d96f d96f d96f d96f d96f -8554 d970 d970 d970 * * 3c35 8ea2bcb5,8ea2bcb5v 63d7 e68f97 63d7 000063d7 d970 d970 d970 d970 d970 d970 d970 -8555 d971 d971 d971 * * 3c36 8ea2bcb6,8ea2bcb6v 63d9 e68f99 63d9 000063d9 d971 d971 d971 d971 d971 d971 d971 -8556 d972 d972 d972 * * 3c37 8ea2bcb7,8ea2bcb7v 6532 e694b2 6532 00006532 d972 d972 d972 d972 d972 d972 d972 -8557 d973 d973 d973 * * 3c38 8ea2bcb8,8ea2bcb8v 6567 e695a7 6567 00006567 d973 d973 d973 d973 d973 d973 d973 -8558 d974 d974 d974 * * 3c39 8ea2bcb9,8ea2bcb9v 656a e695aa 656a 0000656a d974 d974 d974 d974 d974 d974 d974 -8559 d975 d975 d975 * * 3c3a 8ea2bcba,8ea2bcbav 6564 e695a4 6564 00006564 d975 d975 d975 d975 d975 d975 d975 -8560 d976 d976 d976 * * 3c3b 8ea2bcbb,8ea2bcbbv 655c e6959c 655c 0000655c d976 d976 d976 d976 d976 d976 d976 -8561 d977 d977 d977 * * 3c3c 8ea2bcbc,8ea2bcbcv 6568 e695a8 6568 00006568 d977 d977 d977 d977 d977 d977 d977 -8562 d978 d978 d978 * * 3c3d 8ea2bcbd,8ea2bcbdv 6565 e695a5 6565 00006565 d978 d978 d978 d978 d978 d978 d978 -8563 d979 d979 d979 * * 3c3e 8ea2bcbe,8ea2bcbev 658c e6968c 658c 0000658c d979 d979 d979 d979 d979 d979 d979 -8564 d97a d97a d97a * * 3c3f 8ea2bcbf,8ea2bcbfv 659d e6969d 659d 0000659d d97a d97a d97a d97a d97a d97a d97a -8565 d97b d97b d97b * * 3c40 8ea2bcc0,8ea2bcc0v 659e e6969e 659e 0000659e d97b d97b d97b d97b d97b d97b d97b -8566 d97c d97c d97c * * 3c41 8ea2bcc1,8ea2bcc1v 65ae e696ae 65ae 000065ae d97c d97c d97c d97c d97c d97c d97c -8567 d97d d97d d97d * * 3c42 8ea2bcc2,8ea2bcc2v 65d0 e69790 65d0 000065d0 d97d d97d d97d d97d d97d d97d d97d -8568 d97e d97e d97e * * 3c43 8ea2bcc3,8ea2bcc3v 65d2 e69792 65d2 000065d2 d97e d97e d97e d97e d97e d97e d97e -8569 d9a1 d9a1 d9a1 * * 3c44 8ea2bcc4,8ea2bcc4v 667c e699bc 667c 0000667c d9a1 d9a1 d9a1 d9a1 d9a1 d9a1 d9a1 -8570 d9a2 d9a2 d9a2 * * 3c45 8ea2bcc5,8ea2bcc5v 666c e699ac 666c 0000666c d9a2 d9a2 d9a2 d9a2 d9a2 d9a2 d9a2 -8571 d9a3 d9a3 d9a3 * * 3c46 8ea2bcc6,8ea2bcc6v 667b e699bb 667b 0000667b d9a3 d9a3 d9a3 d9a3 d9a3 d9a3 d9a3 -8572 d9a4 d9a4 d9a4 * * 3c47 8ea2bcc7,8ea2bcc7v 6680 e69a80 6680 00006680 d9a4 d9a4 d9a4 d9a4 d9a4 d9a4 d9a4 -8573 d9a5 d9a5 d9a5 * * 3c48 8ea2bcc8,8ea2bcc8v 6671 e699b1 6671 00006671 d9a5 d9a5 d9a5 d9a5 d9a5 d9a5 d9a5 -8574 d9a6 d9a6 d9a6 * * 3c49 8ea2bcc9,8ea2bcc9v 6679 e699b9 6679 00006679 d9a6 d9a6 d9a6 d9a6 d9a6 d9a6 d9a6 -8575 d9a7 d9a7 d9a7 * * 3c4a 8ea2bcca,8ea2bccav 666a e699aa 666a 0000666a d9a7 d9a7 d9a7 d9a7 d9a7 d9a7 d9a7 -8576 d9a8 d9a8 d9a8 * * 3c4b 8ea2bccb,8ea2bccbv 6672 e699b2 6672 00006672 d9a8 d9a8 d9a8 d9a8 d9a8 d9a8 d9a8 -8577 d9a9 d9a9 d9a9 * * 3c4c 8ea2bccc,8ea2bcccv 6701 e69c81 6701 00006701 d9a9 d9a9 d9a9 d9a9 d9a9 d9a9 d9a9 -8578 d9aa d9aa d9aa * * 3c4d 8ea2bccd,8ea2bccdv 690c e6a48c 690c 0000690c d9aa d9aa d9aa d9aa d9aa d9aa d9aa -8579 d9ab d9ab d9ab * * 3c4e 8ea2bcce,8ea2bccev 68d3 e6a393 68d3 000068d3 d9ab d9ab d9ab d9ab d9ab d9ab d9ab -8580 d9ac d9ac d9ac * * 3c4f 8ea2bccf,8ea2bccfv 6904 e6a484 6904 00006904 d9ac d9ac d9ac d9ac d9ac d9ac d9ac -8581 d9ad d9ad d9ad * * 3c50 8ea2bcd0,8ea2bcd0v 68dc e6a39c 68dc 000068dc d9ad d9ad d9ad d9ad d9ad d9ad d9ad -8582 d9ae d9ae d9ae * * 3c51 8ea2bcd1,8ea2bcd1v 692a e6a4aa 692a 0000692a d9ae d9ae d9ae d9ae d9ae d9ae d9ae -8583 d9af d9af d9af * * 3c52 8ea2bcd2,8ea2bcd2v 68ec e6a3ac 68ec 000068ec d9af d9af d9af d9af d9af d9af d9af -8584 d9b0 d9b0 d9b0 * * 3c53 8ea2bcd3,8ea2bcd3v 68ea e6a3aa 68ea 000068ea d9b0 d9b0 d9b0 d9b0 d9b0 d9b0 d9b0 -8585 d9b1 d9b1 d9b1 * * 3c54 8ea2bcd4,8ea2bcd4v 68f1 e6a3b1 68f1 000068f1 d9b1 d9b1 d9b1 d9b1 d9b1 d9b1 d9b1 -8586 d9b2 d9b2 d9b2 * * 3c55 8ea2bcd5,8ea2bcd5v 690f e6a48f 690f 0000690f d9b2 d9b2 d9b2 d9b2 d9b2 d9b2 d9b2 -8587 d9b3 d9b3 d9b3 * * 3c56 8ea2bcd6,8ea2bcd6v 68d6 e6a396 68d6 000068d6 d9b3 d9b3 d9b3 d9b3 d9b3 d9b3 d9b3 -8588 d9b4 d9b4 d9b4 * * 3c57 8ea2bcd7,8ea2bcd7v 68f7 e6a3b7 68f7 000068f7 d9b4 d9b4 d9b4 d9b4 d9b4 d9b4 d9b4 -8589 d9b5 d9b5 d9b5 * * 3c58 8ea2bcd8,8ea2bcd8v 68eb e6a3ab 68eb 000068eb d9b5 d9b5 d9b5 d9b5 d9b5 d9b5 d9b5 -8590 d9b6 d9b6 d9b6 * * 3c59 8ea2bcd9,8ea2bcd9v 68e4 e6a3a4 68e4 000068e4 d9b6 d9b6 d9b6 d9b6 d9b6 d9b6 d9b6 -8591 d9b7 d9b7 d9b7 * * 3c5a 8ea2bcda,8ea2bcdav 68f6 e6a3b6 68f6 000068f6 d9b7 d9b7 d9b7 d9b7 d9b7 d9b7 d9b7 -8592 d9b8 d9b8 d9b8 * * 3c5b 8ea2bcdb,8ea2bcdbv 6913 e6a493 6913 00006913 d9b8 d9b8 d9b8 d9b8 d9b8 d9b8 d9b8 -8593 d9b9 d9b9 d9b9 * * 3c5c 8ea2bcdc,8ea2bcdcv 6910 e6a490 6910 00006910 d9b9 d9b9 d9b9 d9b9 d9b9 d9b9 d9b9 -8594 d9ba d9ba d9ba * * 3c5d 8ea2bcdd,8ea2bcddv 68f3 e6a3b3 68f3 000068f3 d9ba d9ba d9ba d9ba d9ba d9ba d9ba -8595 d9bb d9bb d9bb * * 3c5e 8ea2bcde,8ea2bcdev 68e1 e6a3a1 68e1 000068e1 d9bb d9bb d9bb d9bb d9bb d9bb d9bb -8596 d9bc d9bc d9bc * * 3c5f 8ea2bcdf,8ea2bcdfv 6907 e6a487 6907 00006907 d9bc d9bc d9bc d9bc d9bc d9bc d9bc -8597 d9bd d9bd d9bd * * 3c60 8ea2bce0,8ea2bce0v 68cc e6a38c 68cc 000068cc d9bd d9bd d9bd d9bd d9bd d9bd d9bd -8598 d9be d9be d9be * * 3c61 8ea2bce1,8ea2bce1v 6908 e6a488 6908 00006908 d9be d9be d9be d9be d9be d9be d9be -8599 d9bf d9bf d9bf * * 3c62 8ea2bce2,8ea2bce2v 6970 e6a5b0 6970 00006970 d9bf d9bf d9bf d9bf d9bf d9bf d9bf -8600 d9c0 d9c0 d9c0 * * 3c63 8ea2bce3,8ea2bce3v 68b4 e6a2b4 68b4 000068b4 d9c0 d9c0 d9c0 d9c0 d9c0 d9c0 d9c0 -8601 d9c1 d9c1 d9c1 * * 3c64 8ea2bce4,8ea2bce4v 6911 e6a491 6911 00006911 d9c1 d9c1 d9c1 d9c1 d9c1 d9c1 d9c1 -8602 d9c2 d9c2 d9c2 * * 3c65 8ea2bce5,8ea2bce5v 68ef e6a3af 68ef 000068ef d9c2 d9c2 d9c2 d9c2 d9c2 d9c2 d9c2 -8603 d9c3 d9c3 d9c3 * * 3c66 8ea2bce6,8ea2bce6v 68c6 e6a386 68c6 000068c6 d9c3 d9c3 d9c3 d9c3 d9c3 d9c3 d9c3 -8604 d9c4 d9c4 d9c4 * * 3c67 8ea2bce7,8ea2bce7v 6914 e6a494 6914 00006914 d9c4 d9c4 d9c4 d9c4 d9c4 d9c4 d9c4 -8605 d9c5 d9c5 d9c5 * * 3c68 8ea2bce8,8ea2bce8v 68f8 e6a3b8 68f8 000068f8 d9c5 d9c5 d9c5 d9c5 d9c5 d9c5 d9c5 -8606 d9c6 d9c6 d9c6 * * 3c69 8ea2bce9,8ea2bce9v 68d0 e6a390 68d0 000068d0 d9c6 d9c6 d9c6 d9c6 d9c6 d9c6 d9c6 -8607 d9c7 d9c7 d9c7 * * 3c6a 8ea2bcea,8ea2bceav 68fd e6a3bd 68fd 000068fd d9c7 d9c7 d9c7 d9c7 d9c7 d9c7 d9c7 -8608 d9c8 d9c8 d9c8 * * 3c6b 8ea2bceb,8ea2bcebv 68fc e6a3bc 68fc 000068fc d9c8 d9c8 d9c8 d9c8 d9c8 d9c8 d9c8 -8609 d9c9 d9c9 d9c9 * * 3c6c 8ea2bcec,8ea2bcecv 68e8 e6a3a8 68e8 000068e8 d9c9 d9c9 d9c9 d9c9 d9c9 d9c9 d9c9 -8610 d9ca d9ca d9ca * * 3c6d 8ea2bced,8ea2bcedv 690b e6a48b 690b 0000690b d9ca d9ca d9ca d9ca d9ca d9ca d9ca -8611 d9cb d9cb d9cb * * 3c6e 8ea2bcee,8ea2bceev 690a e6a48a 690a 0000690a d9cb d9cb d9cb d9cb d9cb d9cb d9cb -8612 d9cc d9cc d9cc * * 3c6f 8ea2bcef,8ea2bcefv 6917 e6a497 6917 00006917 d9cc d9cc d9cc d9cc d9cc d9cc d9cc -8613 d9cd d9cd d9cd * * 3c70 8ea2bcf0,8ea2bcf0v 68ce e6a38e 68ce 000068ce d9cd d9cd d9cd d9cd d9cd d9cd d9cd -8614 d9ce d9ce d9ce * * 3c71 8ea2bcf1,8ea2bcf1v 68c8 e6a388 68c8 000068c8 d9ce d9ce d9ce d9ce d9ce d9ce d9ce -8615 d9cf d9cf d9cf * * 3c72 8ea2bcf2,8ea2bcf2v 68dd e6a39d 68dd 000068dd d9cf d9cf d9cf d9cf d9cf d9cf d9cf -8616 d9d0 d9d0 d9d0 * * 3c73 8ea2bcf3,8ea2bcf3v 68de e6a39e 68de 000068de d9d0 d9d0 d9d0 d9d0 d9d0 d9d0 d9d0 -8617 d9d1 d9d1 d9d1 * * 3c74 8ea2bcf4,8ea2bcf4v 68e6 e6a3a6 68e6 000068e6 d9d1 d9d1 d9d1 d9d1 d9d1 d9d1 d9d1 -8618 d9d2 d9d2 d9d2 * * 3c75 8ea2bcf5,8ea2bcf5v 68f4 e6a3b4 68f4 000068f4 d9d2 d9d2 d9d2 d9d2 d9d2 d9d2 d9d2 -8619 d9d3 d9d3 d9d3 * * 3c76 8ea2bcf6,8ea2bcf6v 68d1 e6a391 68d1 000068d1 d9d3 d9d3 d9d3 d9d3 d9d3 d9d3 d9d3 -8620 d9d4 d9d4 d9d4 * * 3c77 8ea2bcf7,8ea2bcf7v 6906 e6a486 6906 00006906 d9d4 d9d4 d9d4 d9d4 d9d4 d9d4 d9d4 -8621 d9d5 d9d5 d9d5 * * 3c78 8ea2bcf8,8ea2bcf8v 68d4 e6a394 68d4 000068d4 d9d5 d9d5 d9d5 d9d5 d9d5 d9d5 d9d5 -8622 d9d6 d9d6 d9d6 * * 3c79 8ea2bcf9,8ea2bcf9v 68e9 e6a3a9 68e9 000068e9 d9d6 d9d6 d9d6 d9d6 d9d6 d9d6 d9d6 -8623 d9d7 d9d7 d9d7 * * 3c7a 8ea2bcfa,8ea2bcfav 6915 e6a495 6915 00006915 d9d7 d9d7 d9d7 d9d7 d9d7 d9d7 d9d7 -8624 d9d8 d9d8 d9d8 * * 3c7b 8ea2bcfb,8ea2bcfbv 6925 e6a4a5 6925 00006925 d9d8 d9d8 d9d8 d9d8 d9d8 d9d8 d9d8 -8625 d9d9 d9d9 d9d9 * * 3c7c 8ea2bcfc,8ea2bcfcv 68c7 e6a387 68c7 000068c7 d9d9 d9d9 d9d9 d9d9 d9d9 d9d9 d9d9 -8626 d9da d9da d9da * * 3c7d 8ea2bcfd,8ea2bcfdv 6b39 e6acb9 6b39 00006b39 d9da d9da d9da d9da d9da d9da d9da -8627 d9db d9db d9db * * 3c7e 8ea2bcfe,8ea2bcfev 6b3b e6acbb 6b3b 00006b3b d9db d9db d9db d9db d9db d9db d9db -8628 d9dc d9dc d9dc * * 3d21 8ea2bda1,8ea2bda1v 6b3f e6acbf 6b3f 00006b3f d9dc d9dc d9dc d9dc d9dc d9dc d9dc -8629 d9dd d9dd d9dd * * 3d22 8ea2bda2,8ea2bda2v 6b3c e6acbc 6b3c 00006b3c d9dd d9dd d9dd d9dd d9dd d9dd d9dd -8630 d9de d9de d9de * * 3d23 8ea2bda3,8ea2bda3v 6b94 e6ae94 6b94 00006b94 d9de d9de d9de d9de d9de d9de d9de -8631 d9df d9df d9df * * 3d24 8ea2bda4,8ea2bda4v 6b97 e6ae97 6b97 00006b97 d9df d9df d9df d9df d9df d9df d9df -8632 d9e0 d9e0 d9e0 * * 3d25 8ea2bda5,8ea2bda5v 6b99 e6ae99 6b99 00006b99 d9e0 d9e0 d9e0 d9e0 d9e0 d9e0 d9e0 -8633 d9e1 d9e1 d9e1 * * 3d26 8ea2bda6,8ea2bda6v 6b95 e6ae95 6b95 00006b95 d9e1 d9e1 d9e1 d9e1 d9e1 d9e1 d9e1 -8634 d9e2 d9e2 d9e2 * * 3d27 8ea2bda7,8ea2bda7v 6bbd e6aebd 6bbd 00006bbd d9e2 d9e2 d9e2 d9e2 d9e2 d9e2 d9e2 -8635 d9e3 d9e3 d9e3 * * 3d28 8ea2bda8,8ea2bda8v 6bf0 e6afb0 6bf0 00006bf0 d9e3 d9e3 d9e3 d9e3 d9e3 d9e3 d9e3 -8636 d9e4 d9e4 d9e4 * * 3d29 8ea2bda9,8ea2bda9v 6bf2 e6afb2 6bf2 00006bf2 d9e4 d9e4 d9e4 d9e4 d9e4 d9e4 d9e4 -8637 d9e5 d9e5 d9e5 * * 3d2a 8ea2bdaa,8ea2bdaav 6bf3 e6afb3 6bf3 00006bf3 d9e5 d9e5 d9e5 d9e5 d9e5 d9e5 d9e5 -8638 d9e6 d9e6 d9e6 * * 3d2b 8ea2bdab,8ea2bdabv 6c30 e6b0b0 6c30 00006c30 d9e6 d9e6 d9e6 d9e6 d9e6 d9e6 d9e6 -8639 d9e7 d9e7 d9e7 * * 3d2c 8ea2bdac,8ea2bdacv 6dfc e6b7bc 6dfc 00006dfc d9e7 d9e7 d9e7 d9e7 d9e7 d9e7 d9e7 -8640 d9e8 d9e8 d9e8 * * 3d2d 8ea2bdad,8ea2bdadv 6e46 e6b986 6e46 00006e46 d9e8 d9e8 d9e8 d9e8 d9e8 d9e8 d9e8 -8641 d9e9 d9e9 d9e9 * * 3d2e 8ea2bdae,8ea2bdaev 6e47 e6b987 6e47 00006e47 d9e9 d9e9 d9e9 d9e9 d9e9 d9e9 d9e9 -8642 d9ea d9ea d9ea * * 3d2f 8ea2bdaf,8ea2bdafv 6e1f e6b89f 6e1f 00006e1f d9ea d9ea d9ea d9ea d9ea d9ea d9ea -8643 d9eb d9eb d9eb * * 3d30 8ea2bdb0,8ea2bdb0v 6e49 e6b989 6e49 00006e49 d9eb d9eb d9eb d9eb d9eb d9eb d9eb -8644 d9ec d9ec d9ec * * 3d31 8ea2bdb1,8ea2bdb1v 6e88 e6ba88 6e88 00006e88 d9ec d9ec d9ec d9ec d9ec d9ec d9ec -8645 d9ed d9ed d9ed * * 3d32 8ea2bdb2,8ea2bdb2v 6e3c e6b8bc 6e3c 00006e3c d9ed d9ed d9ed d9ed d9ed d9ed d9ed -8646 d9ee d9ee d9ee * * 3d33 8ea2bdb3,8ea2bdb3v 6e3d e6b8bd 6e3d 00006e3d d9ee d9ee d9ee d9ee d9ee d9ee d9ee -8647 d9ef d9ef d9ef * * 3d34 8ea2bdb4,8ea2bdb4v 6e45 e6b985 6e45 00006e45 d9ef d9ef d9ef d9ef d9ef d9ef d9ef -8648 d9f0 d9f0 d9f0 * * 3d35 8ea2bdb5,8ea2bdb5v 6e62 e6b9a2 6e62 00006e62 d9f0 d9f0 d9f0 d9f0 d9f0 d9f0 d9f0 -8649 d9f1 d9f1 d9f1 * * 3d36 8ea2bdb6,8ea2bdb6v 6e2b e6b8ab 6e2b 00006e2b d9f1 d9f1 d9f1 d9f1 d9f1 d9f1 d9f1 -8650 d9f2 d9f2 d9f2 * * 3d37 8ea2bdb7,8ea2bdb7v 6e3f e6b8bf 6e3f 00006e3f d9f2 d9f2 d9f2 d9f2 d9f2 d9f2 d9f2 -8651 d9f3 d9f3 d9f3 * * 3d38 8ea2bdb8,8ea2bdb8v 6e41 e6b981 6e41 00006e41 d9f3 d9f3 d9f3 d9f3 d9f3 d9f3 d9f3 -8652 d9f4 d9f4 d9f4 * * 3d39 8ea2bdb9,8ea2bdb9v 6e5d e6b99d 6e5d 00006e5d d9f4 d9f4 d9f4 d9f4 d9f4 d9f4 d9f4 -8653 d9f5 d9f5 d9f5 * * 3d3a 8ea2bdba,8ea2bdbav 6e73 e6b9b3 6e73 00006e73 d9f5 d9f5 d9f5 d9f5 d9f5 d9f5 d9f5 -8654 d9f6 d9f6 d9f6 * * 3d3b 8ea2bdbb,8ea2bdbbv 6e1c e6b89c 6e1c 00006e1c d9f6 d9f6 d9f6 d9f6 d9f6 d9f6 d9f6 -8655 d9f7 d9f7 d9f7 * * 3d3c 8ea2bdbc,8ea2bdbcv 6e33 e6b8b3 6e33 00006e33 d9f7 d9f7 d9f7 d9f7 d9f7 d9f7 d9f7 -8656 d9f8 d9f8 d9f8 * * 3d3d 8ea2bdbd,8ea2bdbdv 6e4b e6b98b 6e4b 00006e4b d9f8 d9f8 d9f8 d9f8 d9f8 d9f8 d9f8 -8657 d9f9 d9f9 d9f9 * * 3d3e 8ea2bdbe,8ea2bdbev 6e40 e6b980 6e40 00006e40 d9f9 d9f9 d9f9 d9f9 d9f9 d9f9 d9f9 -8658 d9fa d9fa d9fa * * 3d3f 8ea2bdbf,8ea2bdbfv 6e51 e6b991 6e51 00006e51 d9fa d9fa d9fa d9fa d9fa d9fa d9fa -8659 d9fb d9fb d9fb * * 3d40 8ea2bdc0,8ea2bdc0v 6e3b e6b8bb 6e3b 00006e3b d9fb d9fb d9fb d9fb d9fb d9fb d9fb -8660 d9fc d9fc d9fc * * 3d41 8ea2bdc1,8ea2bdc1v 6e03 e6b883 6e03 00006e03 d9fc d9fc d9fc d9fc d9fc d9fc d9fc -8661 d9fd d9fd d9fd * * 3d42 8ea2bdc2,8ea2bdc2v 6e2e e6b8ae 6e2e 00006e2e d9fd d9fd d9fd d9fd d9fd d9fd d9fd -8662 d9fe d9fe d9fe * * 3d43 8ea2bdc3,8ea2bdc3v 6e5e e6b99e 6e5e 00006e5e d9fe d9fe d9fe d9fe d9fe d9fe d9fe -8663 da40 da40 da40 * * 3d44 8ea2bdc4,8ea2bdc4v 6e68 e6b9a8 6e68 00006e68 da40 da40 da40 da40 da40 da40 da40 -8664 da41 da41 da41 * * 3d45 8ea2bdc5,8ea2bdc5v 6e5c e6b99c 6e5c 00006e5c da41 da41 da41 da41 da41 da41 da41 -8665 da42 da42 da42 * * 3d46 8ea2bdc6,8ea2bdc6v 6e61 e6b9a1 6e61 00006e61 da42 da42 da42 da42 da42 da42 da42 -8666 da43 da43 da43 * * 3d47 8ea2bdc7,8ea2bdc7v 6e31 e6b8b1 6e31 00006e31 da43 da43 da43 da43 da43 da43 da43 -8667 da44 da44 da44 * * 3d48 8ea2bdc8,8ea2bdc8v 6e28 e6b8a8 6e28 00006e28 da44 da44 da44 da44 da44 da44 da44 -8668 da45 da45 da45 * * 3d49 8ea2bdc9,8ea2bdc9v 6e60 e6b9a0 6e60 00006e60 da45 da45 da45 da45 da45 da45 da45 -8669 da46 da46 da46 * * 3d4a 8ea2bdca,8ea2bdcav 6e71 e6b9b1 6e71 00006e71 da46 da46 da46 da46 da46 da46 da46 -8670 da47 da47 da47 * * 3d4b 8ea2bdcb,8ea2bdcbv 6e6b e6b9ab 6e6b 00006e6b da47 da47 da47 da47 da47 da47 da47 -8671 da48 da48 da48 * * 3d4c 8ea2bdcc,8ea2bdccv 6e39 e6b8b9 6e39 00006e39 da48 da48 da48 da48 da48 da48 da48 -8672 da49 da49 da49 * * 3d4d 8ea2bdcd,8ea2bdcdv 6e22 e6b8a2 6e22 00006e22 da49 da49 da49 da49 da49 da49 da49 -8673 da4a da4a da4a * * 3d4e 8ea2bdce,8ea2bdcev 6e30 e6b8b0 6e30 00006e30 da4a da4a da4a da4a da4a da4a da4a -8674 da4b da4b da4b * * 3d4f 8ea2bdcf,8ea2bdcfv 6e53 e6b993 6e53 00006e53 da4b da4b da4b da4b da4b da4b da4b -8675 da4c da4c da4c * * 3d50 8ea2bdd0,8ea2bdd0v 6e65 e6b9a5 6e65 00006e65 da4c da4c da4c da4c da4c da4c da4c -8676 da4d da4d da4d * * 3d51 8ea2bdd1,8ea2bdd1v 6e27 e6b8a7 6e27 00006e27 da4d da4d da4d da4d da4d da4d da4d -8677 da4e da4e da4e * * 3d52 8ea2bdd2,8ea2bdd2v 6e78 e6b9b8 6e78 00006e78 da4e da4e da4e da4e da4e da4e da4e -8678 da4f da4f da4f * * 3d53 8ea2bdd3,8ea2bdd3v 6e64 e6b9a4 6e64 00006e64 da4f da4f da4f da4f da4f da4f da4f -8679 da50 da50 da50 * * 3d54 8ea2bdd4,8ea2bdd4v 6e77 e6b9b7 6e77 00006e77 da50 da50 da50 da50 da50 da50 da50 -8680 da51 da51 da51 * * 3d55 8ea2bdd5,8ea2bdd5v 6e55 e6b995 6e55 00006e55 da51 da51 da51 da51 da51 da51 da51 -8681 da52 da52 da52 * * 3d56 8ea2bdd6,8ea2bdd6v 6e79 e6b9b9 6e79 00006e79 da52 da52 da52 da52 da52 da52 da52 -8682 da53 da53 da53 * * 3d57 8ea2bdd7,8ea2bdd7v 6e52 e6b992 6e52 00006e52 da53 da53 da53 da53 da53 da53 da53 -8683 da54 da54 da54 * * 3d58 8ea2bdd8,8ea2bdd8v 6e66 e6b9a6 6e66 00006e66 da54 da54 da54 da54 da54 da54 da54 -8684 da55 da55 da55 * * 3d59 8ea2bdd9,8ea2bdd9v 6e35 e6b8b5 6e35 00006e35 da55 da55 da55 da55 da55 da55 da55 -8685 da56 da56 da56 * * 3d5a 8ea2bdda,8ea2bddav 6e36 e6b8b6 6e36 00006e36 da56 da56 da56 da56 da56 da56 da56 -8686 da57 da57 da57 * * 3d5b 8ea2bddb,8ea2bddbv 6e5a e6b99a 6e5a 00006e5a da57 da57 da57 da57 da57 da57 da57 -8687 da58 da58 da58 * * 3d5c 8ea2bddc,8ea2bddcv 7120 e784a0 7120 00007120 da58 da58 da58 da58 da58 da58 da58 -8688 da59 da59 da59 * * 3d5d 8ea2bddd,8ea2bdddv 711e e7849e 711e 0000711e da59 da59 da59 da59 da59 da59 da59 -8689 da5a da5a da5a * * 3d5e 8ea2bdde,8ea2bddev 712f e784af 712f 0000712f da5a da5a da5a da5a da5a da5a da5a -8690 da5b da5b da5b * * 3d5f 8ea2bddf,8ea2bddfv 70fb e783bb 70fb 000070fb da5b da5b da5b da5b da5b da5b da5b -8691 da5c da5c da5c * * 3d60 8ea2bde0,8ea2bde0v 712e e784ae 712e 0000712e da5c da5c da5c da5c da5c da5c da5c -8692 da5d da5d da5d * * 3d61 8ea2bde1,8ea2bde1v 7131 e784b1 7131 00007131 da5d da5d da5d da5d da5d da5d da5d -8693 da5e da5e da5e * * 3d62 8ea2bde2,8ea2bde2v 7123 e784a3 7123 00007123 da5e da5e da5e da5e da5e da5e da5e -8694 da5f da5f da5f * * 3d63 8ea2bde3,8ea2bde3v 7125 e784a5 7125 00007125 da5f da5f da5f da5f da5f da5f da5f -8695 da60 da60 da60 * * 3d64 8ea2bde4,8ea2bde4v 7122 e784a2 7122 00007122 da60 da60 da60 da60 da60 da60 da60 -8696 da61 da61 da61 * * 3d65 8ea2bde5,8ea2bde5v 7132 e784b2 7132 00007132 da61 da61 da61 da61 da61 da61 da61 -8697 da62 da62 da62 * * 3d66 8ea2bde6,8ea2bde6v 711f e7849f 711f 0000711f da62 da62 da62 da62 da62 da62 da62 -8698 da63 da63 da63 * * 3d67 8ea2bde7,8ea2bde7v 7128 e784a8 7128 00007128 da63 da63 da63 da63 da63 da63 da63 -8699 da64 da64 da64 * * 3d68 8ea2bde8,8ea2bde8v 713a e784ba 713a 0000713a da64 da64 da64 da64 da64 da64 da64 -8700 da65 da65 da65 * * 3d69 8ea2bde9,8ea2bde9v 711b e7849b 711b 0000711b da65 da65 da65 da65 da65 da65 da65 -8701 da66 da66 da66 * * 3d6a 8ea2bdea,8ea2bdeav 724b e7898b 724b 0000724b da66 da66 da66 da66 da66 da66 da66 -8702 da67 da67 da67 * * 3d6b 8ea2bdeb,8ea2bdebv 725a e7899a 725a 0000725a da67 da67 da67 da67 da67 da67 da67 -8703 da68 da68 da68 * * 3d6c 8ea2bdec,8ea2bdecv 7288 e78a88 7288 00007288 da68 da68 da68 da68 da68 da68 da68 -8704 da69 da69 da69 * * 3d6d 8ea2bded,8ea2bdedv 7289 e78a89 7289 00007289 da69 da69 da69 da69 da69 da69 da69 -8705 da6a da6a da6a * * 3d6e 8ea2bdee,8ea2bdeev 7286 e78a86 7286 00007286 da6a da6a da6a da6a da6a da6a da6a -8706 da6b da6b da6b * * 3d6f 8ea2bdef,8ea2bdefv 7285 e78a85 7285 00007285 da6b da6b da6b da6b da6b da6b da6b -8707 da6c da6c da6c * * 3d70 8ea2bdf0,8ea2bdf0v 728b e78a8b 728b 0000728b da6c da6c da6c da6c da6c da6c da6c -8708 da6d da6d da6d * * 3d71 8ea2bdf1,8ea2bdf1v 7312 e78c92 7312 00007312 da6d da6d da6d da6d da6d da6d da6d -8709 da6e da6e da6e * * 3d72 8ea2bdf2,8ea2bdf2v 730b e78c8b 730b 0000730b da6e da6e da6e da6e da6e da6e da6e -8710 da6f da6f da6f * * 3d73 8ea2bdf3,8ea2bdf3v 7330 e78cb0 7330 00007330 da6f da6f da6f da6f da6f da6f da6f -8711 da70 da70 da70 * * 3d74 8ea2bdf4,8ea2bdf4v 7322 e78ca2 7322 00007322 da70 da70 da70 da70 da70 da70 da70 -8712 da71 da71 da71 * * 3d75 8ea2bdf5,8ea2bdf5v 7331 e78cb1 7331 00007331 da71 da71 da71 da71 da71 da71 da71 -8713 da72 da72 da72 * * 3d76 8ea2bdf6,8ea2bdf6v 7333 e78cb3 7333 00007333 da72 da72 da72 da72 da72 da72 da72 -8714 da73 da73 da73 * * 3d77 8ea2bdf7,8ea2bdf7v 7327 e78ca7 7327 00007327 da73 da73 da73 da73 da73 da73 da73 -8715 da74 da74 da74 * * 3d78 8ea2bdf8,8ea2bdf8v 7332 e78cb2 7332 00007332 da74 da74 da74 da74 da74 da74 da74 -8716 da75 da75 da75 * * 3d79 8ea2bdf9,8ea2bdf9v 732d e78cad 732d 0000732d da75 da75 da75 da75 da75 da75 da75 -8717 da76 da76 da76 * * 3d7a 8ea2bdfa,8ea2bdfav 7326 e78ca6 7326 00007326 da76 da76 da76 da76 da76 da76 da76 -8718 da77 da77 da77 * * 3d7b 8ea2bdfb,8ea2bdfbv 7323 e78ca3 7323 00007323 da77 da77 da77 da77 da77 da77 da77 -8719 da78 da78 da78 * * 3d7c 8ea2bdfc,8ea2bdfcv 7335 e78cb5 7335 00007335 da78 da78 da78 da78 da78 da78 da78 -8720 da79 da79 da79 * * 3d7d 8ea2bdfd,8ea2bdfdv 730c e78c8c 730c 0000730c da79 da79 da79 da79 da79 da79 da79 -8721 da7a da7a da7a * * 3d7e 8ea2bdfe,8ea2bdfev 742e e790ae 742e 0000742e da7a da7a da7a da7a da7a da7a da7a -8722 da7b da7b da7b * * 3e21 8ea2bea1,8ea2bea1v 742c e790ac 742c 0000742c da7b da7b da7b da7b da7b da7b da7b -8723 da7c da7c da7c * * 3e22 8ea2bea2,8ea2bea2v 7430 e790b0 7430 00007430 da7c da7c da7c da7c da7c da7c da7c -8724 da7d da7d da7d * * 3e23 8ea2bea3,8ea2bea3v 742b e790ab 742b 0000742b da7d da7d da7d da7d da7d da7d da7d -8725 da7e da7e da7e * * 3e24 8ea2bea4,8ea2bea4v 7416 e79096 7416 00007416 da7e da7e da7e da7e da7e da7e da7e -8726 daa1 daa1 daa1 * * 3e25 8ea2bea5,8ea2bea5v 741a e7909a 741a 0000741a daa1 daa1 daa1 daa1 daa1 daa1 daa1 -8727 daa2 daa2 daa2 * * 3e26 8ea2bea6,8ea2bea6v 7421 e790a1 7421 00007421 daa2 daa2 daa2 daa2 daa2 daa2 daa2 -8728 daa3 daa3 daa3 * * 3e27 8ea2bea7,8ea2bea7v 742d e790ad 742d 0000742d daa3 daa3 daa3 daa3 daa3 daa3 daa3 -8729 daa4 daa4 daa4 * * 3e28 8ea2bea8,8ea2bea8v 7431 e790b1 7431 00007431 daa4 daa4 daa4 daa4 daa4 daa4 daa4 -8730 daa5 daa5 daa5 * * 3e29 8ea2bea9,8ea2bea9v 7424 e790a4 7424 00007424 daa5 daa5 daa5 daa5 daa5 daa5 daa5 -8731 daa6 daa6 daa6 * * 3e2a 8ea2beaa,8ea2beaav 7423 e790a3 7423 00007423 daa6 daa6 daa6 daa6 daa6 daa6 daa6 -8732 daa7 daa7 daa7 * * 3e2b 8ea2beab,8ea2beabv 741d e7909d 741d 0000741d daa7 daa7 daa7 daa7 daa7 daa7 daa7 -8733 daa8 daa8 daa8 * * 3e2c 8ea2beac,8ea2beacv 7429 e790a9 7429 00007429 daa8 daa8 daa8 daa8 daa8 daa8 daa8 -8734 daa9 daa9 daa9 * * 3e2d 8ea2bead,8ea2beadv 7420 e790a0 7420 00007420 daa9 daa9 daa9 daa9 daa9 daa9 daa9 -8735 daaa daaa daaa * * 3e2e 8ea2beae,8ea2beaev 7432 e790b2 7432 00007432 daaa daaa daaa daaa daaa daaa daaa -8736 daab daab daab * * 3e2f 8ea2beaf,8ea2beafv 74fb e793bb 74fb 000074fb daab daab daab daab daab daab daab -8737 daac daac daac * * 3e30 8ea2beb0,8ea2beb0v 752f e794af 752f 0000752f daac daac daac daac daac daac daac -8738 daad daad daad * * 3e31 8ea2beb1,8ea2beb1v 756f e795af 756f 0000756f daad daad daad daad daad daad daad -8739 daae daae daae * * 3e32 8ea2beb2,8ea2beb2v 756c e795ac 756c 0000756c daae daae daae daae daae daae daae -8740 daaf daaf daaf * * 3e33 8ea2beb3,8ea2beb3v 75e7 e797a7 75e7 000075e7 daaf daaf daaf daaf daaf daaf daaf -8741 dab0 dab0 dab0 * * 3e34 8ea2beb4,8ea2beb4v 75da e7979a 75da 000075da dab0 dab0 dab0 dab0 dab0 dab0 dab0 -8742 dab1 dab1 dab1 * * 3e35 8ea2beb5,8ea2beb5v 75e1 e797a1 75e1 000075e1 dab1 dab1 dab1 dab1 dab1 dab1 dab1 -8743 dab2 dab2 dab2 * * 3e36 8ea2beb6,8ea2beb6v 75e6 e797a6 75e6 000075e6 dab2 dab2 dab2 dab2 dab2 dab2 dab2 -8744 dab3 dab3 dab3 * * 3e37 8ea2beb7,8ea2beb7v 75dd e7979d 75dd 000075dd dab3 dab3 dab3 dab3 dab3 dab3 dab3 -8745 dab4 dab4 dab4 * * 3e38 8ea2beb8,8ea2beb8v 75df e7979f 75df 000075df dab4 dab4 dab4 dab4 dab4 dab4 dab4 -8746 dab5 dab5 dab5 * * 3e39 8ea2beb9,8ea2beb9v 75e4 e797a4 75e4 000075e4 dab5 dab5 dab5 dab5 dab5 dab5 dab5 -8747 dab6 dab6 dab6 * * 3e3a 8ea2beba,8ea2bebav 75d7 e79797 75d7 000075d7 dab6 dab6 dab6 dab6 dab6 dab6 dab6 -8748 dab7 dab7 dab7 * * 3e3b 8ea2bebb,8ea2bebbv 7695 e79a95 7695 00007695 dab7 dab7 dab7 dab7 dab7 dab7 dab7 -8749 dab8 dab8 dab8 * * 3e3c 8ea2bebc,8ea2bebcv 7692 e79a92 7692 00007692 dab8 dab8 dab8 dab8 dab8 dab8 dab8 -8750 dab9 dab9 dab9 * * 3e3d 8ea2bebd,8ea2bebdv 76da e79b9a 76da 000076da dab9 dab9 dab9 dab9 dab9 dab9 dab9 -8751 daba daba daba * * 3e3e 8ea2bebe,8ea2bebev 7746 e79d86 7746 00007746 daba daba daba daba daba daba daba -8752 dabb dabb dabb * * 3e3f 8ea2bebf,8ea2bebfv 7747 e79d87 7747 00007747 dabb dabb dabb dabb dabb dabb dabb -8753 dabc dabc dabc * * 3e40 8ea2bec0,8ea2bec0v 7744 e79d84 7744 00007744 dabc dabc dabc dabc dabc dabc dabc -8754 dabd dabd dabd * * 3e41 8ea2bec1,8ea2bec1v 774d e79d8d 774d 0000774d dabd dabd dabd dabd dabd dabd dabd -8755 dabe dabe dabe * * 3e42 8ea2bec2,8ea2bec2v 7745 e79d85 7745 00007745 dabe dabe dabe dabe dabe dabe dabe -8756 dabf dabf dabf * * 3e43 8ea2bec3,8ea2bec3v 774a e79d8a 774a 0000774a dabf dabf dabf dabf dabf dabf dabf -8757 dac0 dac0 dac0 * * 3e44 8ea2bec4,8ea2bec4v 774e e79d8e 774e 0000774e dac0 dac0 dac0 dac0 dac0 dac0 dac0 -8758 dac1 dac1 dac1 * * 3e45 8ea2bec5,8ea2bec5v 774b e79d8b 774b 0000774b dac1 dac1 dac1 dac1 dac1 dac1 dac1 -8759 dac2 dac2 dac2 * * 3e46 8ea2bec6,8ea2bec6v 774c e79d8c 774c 0000774c dac2 dac2 dac2 dac2 dac2 dac2 dac2 -8760 dac3 dac3 dac3 * * 3e47 8ea2bec7,8ea2bec7v 77de e79f9e 77de 000077de dac3 dac3 dac3 dac3 dac3 dac3 dac3 -8761 dac4 dac4 dac4 * * 3e48 8ea2bec8,8ea2bec8v 77ec e79fac 77ec 000077ec dac4 dac4 dac4 dac4 dac4 dac4 dac4 -8762 dac5 dac5 dac5 * * 3e49 8ea2bec9,8ea2bec9v 7860 e7a1a0 7860 00007860 dac5 dac5 dac5 dac5 dac5 dac5 dac5 -8763 dac6 dac6 dac6 * * 3e4a 8ea2beca,8ea2becav 7864 e7a1a4 7864 00007864 dac6 dac6 dac6 dac6 dac6 dac6 dac6 -8764 dac7 dac7 dac7 * * 3e4b 8ea2becb,8ea2becbv 7865 e7a1a5 7865 00007865 dac7 dac7 dac7 dac7 dac7 dac7 dac7 -8765 dac8 dac8 dac8 * * 3e4c 8ea2becc,8ea2beccv 785c e7a19c 785c 0000785c dac8 dac8 dac8 dac8 dac8 dac8 dac8 -8766 dac9 dac9 dac9 * * 3e4d 8ea2becd,8ea2becdv 786d e7a1ad 786d 0000786d dac9 dac9 dac9 dac9 dac9 dac9 dac9 -8767 daca daca daca * * 3e4e 8ea2bece,8ea2becev 7871 e7a1b1 7871 00007871 daca daca daca daca daca daca daca -8768 dacb dacb dacb * * 3e4f 8ea2becf,8ea2becfv 786a e7a1aa 786a 0000786a dacb dacb dacb dacb dacb dacb dacb -8769 dacc dacc dacc * * 3e50 8ea2bed0,8ea2bed0v 786e e7a1ae 786e 0000786e dacc dacc dacc dacc dacc dacc dacc -8770 dacd dacd dacd * * 3e51 8ea2bed1,8ea2bed1v 7870 e7a1b0 7870 00007870 dacd dacd dacd dacd dacd dacd dacd -8771 dace dace dace * * 3e52 8ea2bed2,8ea2bed2v 7869 e7a1a9 7869 00007869 dace dace dace dace dace dace dace -8772 dacf dacf dacf * * 3e53 8ea2bed3,8ea2bed3v 7868 e7a1a8 7868 00007868 dacf dacf dacf dacf dacf dacf dacf -8773 dad0 dad0 dad0 * * 3e54 8ea2bed4,8ea2bed4v 785e e7a19e 785e 0000785e dad0 dad0 dad0 dad0 dad0 dad0 dad0 -8774 dad1 dad1 dad1 * * 3e55 8ea2bed5,8ea2bed5v 7862 e7a1a2 7862 00007862 dad1 dad1 dad1 dad1 dad1 dad1 dad1 -8775 dad2 dad2 dad2 * * 3e56 8ea2bed6,8ea2bed6v 7974 e7a5b4 7974 00007974 dad2 dad2 dad2 dad2 dad2 dad2 dad2 -8776 dad3 dad3 dad3 * * 3e57 8ea2bed7,8ea2bed7v 7973 e7a5b3 7973 00007973 dad3 dad3 dad3 dad3 dad3 dad3 dad3 -8777 dad4 dad4 dad4 * * 3e58 8ea2bed8,8ea2bed8v 7972 e7a5b2 7972 00007972 dad4 dad4 dad4 dad4 dad4 dad4 dad4 -8778 dad5 dad5 dad5 * * 3e59 8ea2bed9,8ea2bed9v 7970 e7a5b0 7970 00007970 dad5 dad5 dad5 dad5 dad5 dad5 dad5 -8779 dad6 dad6 dad6 * * 3e5a 8ea2beda,8ea2bedav 7a02 e7a882 7a02 00007a02 dad6 dad6 dad6 dad6 dad6 dad6 dad6 -8780 dad7 dad7 dad7 * * 3e5b 8ea2bedb,8ea2bedbv 7a0a e7a88a 7a0a 00007a0a dad7 dad7 dad7 dad7 dad7 dad7 dad7 -8781 dad8 dad8 dad8 * * 3e5c 8ea2bedc,8ea2bedcv 7a03 e7a883 7a03 00007a03 dad8 dad8 dad8 dad8 dad8 dad8 dad8 -8782 dad9 dad9 dad9 * * 3e5d 8ea2bedd,8ea2beddv 7a0c e7a88c 7a0c 00007a0c dad9 dad9 dad9 dad9 dad9 dad9 dad9 -8783 dada dada dada * * 3e5e 8ea2bede,8ea2bedev 7a04 e7a884 7a04 00007a04 dada dada dada dada dada dada dada -8784 dadb dadb dadb * * 3e5f 8ea2bedf,8ea2bedfv 7a99 e7aa99 7a99 00007a99 dadb dadb dadb dadb dadb dadb dadb -8785 dadc dadc dadc * * 3e60 8ea2bee0,8ea2bee0v 7ae6 e7aba6 7ae6 00007ae6 dadc dadc dadc dadc dadc dadc dadc -8786 dadd dadd dadd * * 3e61 8ea2bee1,8ea2bee1v 7ae4 e7aba4 7ae4 00007ae4 dadd dadd dadd dadd dadd dadd dadd -8787 dade dade dade * * 3e62 8ea2bee2,8ea2bee2v 7b4a e7ad8a 7b4a 00007b4a dade dade dade dade dade dade dade -8788 d6cc d6cc d6cc * * 3e63 8ea2bee3,8ea2bee3v 7b47 e7ad87 7b47 00007b47 d6cc d6cc d6cc d6cc d6cc d6cc d6cc -8789 dae0 dae0 dae0 * * 3e64 8ea2bee4,8ea2bee4v 7b44 e7ad84 7b44 00007b44 dae0 dae0 dae0 dae0 dae0 dae0 dae0 -8790 dae1 dae1 dae1 * * 3e65 8ea2bee5,8ea2bee5v 7b48 e7ad88 7b48 00007b48 dae1 dae1 dae1 dae1 dae1 dae1 dae1 -8791 dae2 dae2 dae2 * * 3e66 8ea2bee6,8ea2bee6v 7b4c e7ad8c 7b4c 00007b4c dae2 dae2 dae2 dae2 dae2 dae2 dae2 -8792 dae3 dae3 dae3 * * 3e67 8ea2bee7,8ea2bee7v 7b4e e7ad8e 7b4e 00007b4e dae3 dae3 dae3 dae3 dae3 dae3 dae3 -8793 dae4 dae4 dae4 * * 3e68 8ea2bee8,8ea2bee8v 7b40 e7ad80 7b40 00007b40 dae4 dae4 dae4 dae4 dae4 dae4 dae4 -8794 dae5 dae5 dae5 * * 3e69 8ea2bee9,8ea2bee9v 7b58 e7ad98 7b58 00007b58 dae5 dae5 dae5 dae5 dae5 dae5 dae5 -8795 dae6 dae6 dae6 * * 3e6a 8ea2beea,8ea2beeav 7b45 e7ad85 7b45 00007b45 dae6 dae6 dae6 dae6 dae6 dae6 dae6 -8796 dae7 dae7 dae7 * * 3e6b 8ea2beeb,8ea2beebv 7ca2 e7b2a2 7ca2 00007ca2 dae7 dae7 dae7 dae7 dae7 dae7 dae7 -8797 dae8 dae8 dae8 * * 3e6c 8ea2beec,8ea2beecv 7c9e e7b29e 7c9e 00007c9e dae8 dae8 dae8 dae8 dae8 dae8 dae8 -8798 dae9 dae9 dae9 * * 3e6d 8ea2beed,8ea2beedv 7ca8 e7b2a8 7ca8 00007ca8 dae9 dae9 dae9 dae9 dae9 dae9 dae9 -8799 daea daea daea * * 3e6e 8ea2beee,8ea2beeev 7ca1 e7b2a1 7ca1 00007ca1 daea daea daea daea daea daea daea -8800 daeb daeb daeb * * 3e6f 8ea2beef,8ea2beefv 7d58 e7b598 7d58 00007d58 daeb daeb daeb daeb daeb daeb daeb -8801 daec daec daec * * 3e70 8ea2bef0,8ea2bef0v 7d6f e7b5af 7d6f 00007d6f daec daec daec daec daec daec daec -8802 daed daed daed * * 3e71 8ea2bef1,8ea2bef1v 7d63 e7b5a3 7d63 00007d63 daed daed daed daed daed daed daed -8803 daee daee daee * * 3e72 8ea2bef2,8ea2bef2v 7d53 e7b593 7d53 00007d53 daee daee daee daee daee daee daee -8804 daef daef daef * * 3e73 8ea2bef3,8ea2bef3v 7d56 e7b596 7d56 00007d56 daef daef daef daef daef daef daef -8805 daf0 daf0 daf0 * * 3e74 8ea2bef4,8ea2bef4v 7d67 e7b5a7 7d67 00007d67 daf0 daf0 daf0 daf0 daf0 daf0 daf0 -8806 daf1 daf1 daf1 * * 3e75 8ea2bef5,8ea2bef5v 7d6a e7b5aa 7d6a 00007d6a daf1 daf1 daf1 daf1 daf1 daf1 daf1 -8807 daf2 daf2 daf2 * * 3e76 8ea2bef6,8ea2bef6v 7d4f e7b58f 7d4f 00007d4f daf2 daf2 daf2 daf2 daf2 daf2 daf2 -8808 daf3 daf3 daf3 * * 3e77 8ea2bef7,8ea2bef7v 7d6d e7b5ad 7d6d 00007d6d daf3 daf3 daf3 daf3 daf3 daf3 daf3 -8809 daf4 daf4 daf4 * * 3e78 8ea2bef8,8ea2bef8v 7d5c e7b59c 7d5c 00007d5c daf4 daf4 daf4 daf4 daf4 daf4 daf4 -8810 daf5 daf5 daf5 * * 3e79 8ea2bef9,8ea2bef9v 7d6b e7b5ab 7d6b 00007d6b daf5 daf5 daf5 daf5 daf5 daf5 daf5 -8811 daf6 daf6 daf6 * * 3e7a 8ea2befa,8ea2befav 7d52 e7b592 7d52 00007d52 daf6 daf6 daf6 daf6 daf6 daf6 daf6 -8812 daf7 daf7 daf7 * * 3e7b 8ea2befb,8ea2befbv 7d54 e7b594 7d54 00007d54 daf7 daf7 daf7 daf7 daf7 daf7 daf7 -8813 daf8 daf8 daf8 * * 3e7c 8ea2befc,8ea2befcv 7d69 e7b5a9 7d69 00007d69 daf8 daf8 daf8 daf8 daf8 daf8 daf8 -8814 daf9 daf9 daf9 * * 3e7d 8ea2befd,8ea2befdv 7d51 e7b591 7d51 00007d51 daf9 daf9 daf9 daf9 daf9 daf9 daf9 -8815 dafa dafa dafa * * 3e7e 8ea2befe,8ea2befev 7d5f e7b59f 7d5f 00007d5f dafa dafa dafa dafa dafa dafa dafa -8816 dafb dafb dafb * * 3f21 8ea2bfa1,8ea2bfa1v 7d4e e7b58e 7d4e 00007d4e dafb dafb dafb dafb dafb dafb dafb -8817 dafc dafc dafc * * 3f22 8ea2bfa2,8ea2bfa2v 7f3e e7bcbe 7f3e 00007f3e dafc dafc dafc dafc dafc dafc dafc -8818 dafd dafd dafd * * 3f23 8ea2bfa3,8ea2bfa3v 7f3f e7bcbf 7f3f 00007f3f dafd dafd dafd dafd dafd dafd dafd -8819 dafe dafe dafe * * 3f24 8ea2bfa4,8ea2bfa4v 7f65 e7bda5 7f65 00007f65 dafe dafe dafe dafe dafe dafe dafe -8820 db40 db40 db40 * * 3f25 8ea2bfa5,8ea2bfa5v 7f66 e7bda6 7f66 00007f66 db40 db40 db40 db40 db40 db40 db40 -8821 db41 db41 db41 * * 3f26 8ea2bfa6,8ea2bfa6v 7fa2 e7bea2 7fa2 00007fa2 db41 db41 db41 db41 db41 db41 db41 -8822 db42 db42 db42 * * 3f27 8ea2bfa7,8ea2bfa7v 7fa0 e7bea0 7fa0 00007fa0 db42 db42 db42 db42 db42 db42 db42 -8823 db43 db43 db43 * * 3f28 8ea2bfa8,8ea2bfa8v 7fa1 e7bea1 7fa1 00007fa1 db43 db43 db43 db43 db43 db43 db43 -8824 db44 db44 db44 * * 3f29 8ea2bfa9,8ea2bfa9v 7fd7 e7bf97 7fd7 00007fd7 db44 db44 db44 db44 db44 db44 db44 -8825 db45 db45 db45 * * 3f2a 8ea2bfaa,8ea2bfaav 8051 e88191 8051 00008051 db45 db45 db45 db45 db45 db45 db45 -8826 db46 db46 db46 * * 3f2b 8ea2bfab,8ea2bfabv 804f e8818f 804f 0000804f db46 db46 db46 db46 db46 db46 db46 -8827 db47 db47 db47 * * 3f2c 8ea2bfac,8ea2bfacv 8050 e88190 8050 00008050 db47 db47 db47 db47 db47 db47 db47 -8828 db48 db48 db48 * * 3f2d 8ea2bfad,8ea2bfadv 80fe e883be 80fe 000080fe db48 db48 db48 db48 db48 db48 db48 -8829 db49 db49 db49 * * 3f2e 8ea2bfae,8ea2bfaev 80d4 e88394 80d4 000080d4 db49 db49 db49 db49 db49 db49 db49 -8830 db4a db4a db4a * * 3f2f 8ea2bfaf,8ea2bfafv 8143 e88583 8143 00008143 db4a db4a db4a db4a db4a db4a db4a -8831 db4b db4b db4b * * 3f30 8ea2bfb0,8ea2bfb0v 814a e8858a 814a 0000814a db4b db4b db4b db4b db4b db4b db4b -8832 db4c db4c db4c * * 3f31 8ea2bfb1,8ea2bfb1v 8152 e88592 8152 00008152 db4c db4c db4c db4c db4c db4c db4c -8833 db4d db4d db4d * * 3f32 8ea2bfb2,8ea2bfb2v 814f e8858f 814f 0000814f db4d db4d db4d db4d db4d db4d db4d -8834 db4e db4e db4e * * 3f33 8ea2bfb3,8ea2bfb3v 8147 e88587 8147 00008147 db4e db4e db4e db4e db4e db4e db4e -8835 db4f db4f db4f * * 3f34 8ea2bfb4,8ea2bfb4v 813d e884bd 813d 0000813d db4f db4f db4f db4f db4f db4f db4f -8836 db50 db50 db50 * * 3f35 8ea2bfb5,8ea2bfb5v 814d e8858d 814d 0000814d db50 db50 db50 db50 db50 db50 db50 -8837 db51 db51 db51 * * 3f36 8ea2bfb6,8ea2bfb6v 813a e884ba 813a 0000813a db51 db51 db51 db51 db51 db51 db51 -8838 db52 db52 db52 * * 3f37 8ea2bfb7,8ea2bfb7v 81e6 e887a6 81e6 000081e6 db52 db52 db52 db52 db52 db52 db52 -8839 db53 db53 db53 * * 3f38 8ea2bfb8,8ea2bfb8v 81ee e887ae 81ee 000081ee db53 db53 db53 db53 db53 db53 db53 -8840 db54 db54 db54 * * 3f39 8ea2bfb9,8ea2bfb9v 81f7 e887b7 81f7 000081f7 db54 db54 db54 db54 db54 db54 db54 -8841 db55 db55 db55 * * 3f3a 8ea2bfba,8ea2bfbav 81f8 e887b8 81f8 000081f8 db55 db55 db55 db55 db55 db55 db55 -8842 db56 db56 db56 * * 3f3b 8ea2bfbb,8ea2bfbbv 81f9 e887b9 81f9 000081f9 db56 db56 db56 db56 db56 db56 db56 -8843 db57 db57 db57 * * 3f3c 8ea2bfbc,8ea2bfbcv 8204 e88884 8204 00008204 db57 db57 db57 db57 db57 db57 db57 -8844 db58 db58 db58 * * 3f3d 8ea2bfbd,8ea2bfbdv 823c e888bc 823c 0000823c db58 db58 db58 db58 db58 db58 db58 -8845 db59 db59 db59 * * 3f3e 8ea2bfbe,8ea2bfbev 823d e888bd 823d 0000823d db59 db59 db59 db59 db59 db59 db59 -8846 db5a db5a db5a * * 3f3f 8ea2bfbf,8ea2bfbfv 823f e888bf 823f 0000823f db5a db5a db5a db5a db5a db5a db5a -8847 db5b db5b db5b * * 3f40 8ea2bfc0,8ea2bfc0v 8275 e889b5 8275 00008275 db5b db5b db5b db5b db5b db5b db5b -8848 db5c db5c db5c * * 3f41 8ea2bfc1,8ea2bfc1v 833b e88cbb 833b 0000833b db5c db5c db5c db5c db5c db5c db5c -8849 db5d db5d db5d * * 3f42 8ea2bfc2,8ea2bfc2v 83cf e88f8f,eeaf9e 83cf,ebde 000083cf,0000ebde 9c77,db5d db5d db5d db5d db5d db5d 9c77,db5d -8850 db5e db5e db5e * * 3f43 8ea2bfc3,8ea2bfc3v 83f9 e88fb9 83f9 000083f9 db5e db5e db5e db5e db5e db5e db5e -8851 db5f db5f db5f * * 3f44 8ea2bfc4,8ea2bfc4v 8423 e890a3 8423 00008423 db5f db5f db5f db5f db5f db5f db5f -8852 db60 db60 db60 * * 3f45 8ea2bfc5,8ea2bfc5v 83c0 e88f80 83c0 000083c0 db60 db60 db60 db60 db60 db60 db60 -8853 db61 db61 db61 * * 3f46 8ea2bfc6,8ea2bfc6v 83e8 e88fa8 83e8 000083e8 db61 db61 db61 db61 db61 db61 db61 -8854 db62 db62 db62 * * 3f47 8ea2bfc7,8ea2bfc7v 8412 e89092 8412 00008412 db62 db62 db62 db62 db62 db62 db62 -8855 db63 db63 db63 * * 3f48 8ea2bfc8,8ea2bfc8v 83e7 e88fa7 83e7 000083e7 db63 db63 db63 db63 db63 db63 db63 -8856 db64 db64 db64 * * 3f49 8ea2bfc9,8ea2bfc9v 83e4 e88fa4 83e4 000083e4 db64 db64 db64 db64 db64 db64 db64 -8857 db65 db65 db65 * * 3f4a 8ea2bfca,8ea2bfcav 83fc e88fbc 83fc 000083fc db65 db65 db65 db65 db65 db65 db65 -8858 db66 db66 db66 * * 3f4b 8ea2bfcb,8ea2bfcbv 83f6 e88fb6 83f6 000083f6 db66 db66 db66 db66 db66 db66 db66 -8859 db67 db67 db67 * * 3f4c 8ea2bfcc,8ea2bfccv 8410 e89090 8410 00008410 db67 db67 db67 db67 db67 db67 db67 -8860 db68 db68 db68 * * 3f4d 8ea2bfcd,8ea2bfcdv 83c6 e88f86 83c6 000083c6 db68 db68 db68 db68 db68 db68 db68 -8861 db69 db69 db69 * * 3f4e 8ea2bfce,8ea2bfcev 83c8 e88f88 83c8 000083c8 db69 db69 db69 db69 db69 db69 db69 -8862 db6a db6a db6a * * 3f4f 8ea2bfcf,8ea2bfcfv 83eb e88fab 83eb 000083eb db6a db6a db6a db6a db6a db6a db6a -8863 db6b db6b db6b * * 3f50 8ea2bfd0,8ea2bfd0v 83e3 e88fa3 83e3 000083e3 db6b db6b db6b db6b db6b db6b db6b -8864 db6c db6c db6c * * 3f51 8ea2bfd1,8ea2bfd1v 83bf e88ebf 83bf 000083bf db6c db6c db6c db6c db6c db6c db6c -8865 db6d db6d db6d * * 3f52 8ea2bfd2,8ea2bfd2v 8401 e89081 8401 00008401 db6d db6d db6d db6d db6d db6d db6d -8866 db6e db6e db6e * * 3f53 8ea2bfd3,8ea2bfd3v 83dd e88f9d 83dd 000083dd db6e db6e db6e db6e db6e db6e db6e -8867 db6f db6f db6f * * 3f54 8ea2bfd4,8ea2bfd4v 83e5 e88fa5 83e5 000083e5 db6f db6f db6f db6f db6f db6f db6f -8868 db70 db70 db70 * * 3f55 8ea2bfd5,8ea2bfd5v 83d8 e88f98 83d8 000083d8 db70 db70 db70 db70 db70 db70 db70 -8869 db71 db71 db71 * * 3f56 8ea2bfd6,8ea2bfd6v 83ff e88fbf 83ff 000083ff db71 db71 db71 db71 db71 db71 db71 -8870 db72 db72 db72 * * 3f57 8ea2bfd7,8ea2bfd7v 83e1 e88fa1 83e1 000083e1 db72 db72 db72 db72 db72 db72 db72 -8871 db73 db73 db73 * * 3f58 8ea2bfd8,8ea2bfd8v 83cb e88f8b 83cb 000083cb db73 db73 db73 db73 db73 db73 db73 -8872 db74 db74 db74 * * 3f59 8ea2bfd9,8ea2bfd9v 83ce e88f8e 83ce 000083ce db74 db74 db74 db74 db74 db74 db74 -8873 db75 db75 db75 * * 3f5a 8ea2bfda,8ea2bfdav 83d6 e88f96 83d6 000083d6 db75 db75 db75 db75 db75 db75 db75 -8874 db76 db76 db76 * * 3f5b 8ea2bfdb,8ea2bfdbv 83f5 e88fb5 83f5 000083f5 db76 db76 db76 db76 db76 db76 db76 -8875 db77 db77 db77 * * 3f5c 8ea2bfdc,8ea2bfdcv 83c9 e88f89 83c9 000083c9 db77 db77 db77 db77 db77 db77 db77 -8876 db78 db78 db78 * * 3f5d 8ea2bfdd,8ea2bfddv 8409 e89089 8409 00008409 db78 db78 db78 db78 db78 db78 db78 -8877 db79 db79 db79 * * 3f5e 8ea2bfde,8ea2bfdev 840f e8908f,ee8f9c 840f,e3dc 0000840f,0000e3dc 8f6e,db79 db79 db79 db79 db79 db79 8f6e,db79 -8878 db7a db7a db7a * * 3f5f 8ea2bfdf,8ea2bfdfv 83de e88f9e 83de 000083de db7a db7a db7a db7a db7a db7a db7a -8879 db7b db7b db7b * * 3f60 8ea2bfe0,8ea2bfe0v 8411 e89091 8411 00008411 db7b db7b db7b db7b db7b db7b db7b -8880 db7c db7c db7c * * 3f61 8ea2bfe1,8ea2bfe1v 8406 e89086 8406 00008406 db7c db7c db7c db7c db7c db7c db7c -8881 db7d db7d db7d * * 3f62 8ea2bfe2,8ea2bfe2v 83c2 e88f82 83c2 000083c2 db7d db7d db7d db7d db7d db7d db7d -8882 db7e db7e db7e * * 3f63 8ea2bfe3,8ea2bfe3v 83f3 e88fb3 83f3 000083f3 db7e db7e db7e db7e db7e db7e db7e -8883 dba1 dba1 dba1 * * 3f64 8ea2bfe4,8ea2bfe4v 83d5 e88f95 83d5 000083d5 dba1 dba1 dba1 dba1 dba1 dba1 dba1 -8884 dba2 dba2 dba2 * * 3f65 8ea2bfe5,8ea2bfe5v 83fa e88fba 83fa 000083fa dba2 dba2 dba2 dba2 dba2 dba2 dba2 -8885 dba3 dba3 dba3 * * 3f66 8ea2bfe6,8ea2bfe6v 83c7 e88f87 83c7 000083c7 dba3 dba3 dba3 dba3 dba3 dba3 dba3 -8886 dba4 dba4 dba4 * * 3f67 8ea2bfe7,8ea2bfe7v 83d1 e88f91 83d1 000083d1 dba4 dba4 dba4 dba4 dba4 dba4 dba4 -8887 dba5 dba5 dba5 * * 3f68 8ea2bfe8,8ea2bfe8v 83ea e88faa 83ea 000083ea dba5 dba5 dba5 dba5 dba5 dba5 dba5 -8888 dba6 dba6 dba6 * * 3f69 8ea2bfe9,8ea2bfe9v 8413 e89093 8413 00008413 dba6 dba6 dba6 dba6 dba6 dba6 dba6 -8889 d77a d77a d77a * * 3f6a 8ea2bfea,8ea2bfeav 839a e88e9a 839a 0000839a d77a d77a d77a d77a d77a d77a d77a -8890 dba7 dba7 dba7 * * 3f6b 8ea2bfeb,8ea2bfebv 83c3 e88f83 83c3 000083c3 dba7 dba7 dba7 dba7 dba7 dba7 dba7 -8891 dba8 dba8 dba8 * * 3f6c 8ea2bfec,8ea2bfecv 83ec e88fac 83ec 000083ec dba8 dba8 dba8 dba8 dba8 dba8 dba8 -8892 dba9 dba9 dba9 * * 3f6d 8ea2bfed,8ea2bfedv 83ee e88fae 83ee 000083ee dba9 dba9 dba9 dba9 dba9 dba9 dba9 -8893 dbaa dbaa dbaa * * 3f6e 8ea2bfee,8ea2bfeev 83c4 e88f84 83c4 000083c4 dbaa dbaa dbaa dbaa dbaa dbaa dbaa -8894 dbab dbab dbab * * 3f6f 8ea2bfef,8ea2bfefv 83fb e88fbb 83fb 000083fb dbab dbab dbab dbab dbab dbab dbab -8895 dbac dbac dbac * * 3f70 8ea2bff0,8ea2bff0v 83d7 e88f97 83d7 000083d7 dbac dbac dbac dbac dbac dbac dbac -8896 dbad dbad dbad * * 3f71 8ea2bff1,8ea2bff1v 83e2 e88fa2 83e2 000083e2 dbad dbad dbad dbad dbad dbad dbad -8897 dbae dbae dbae * * 3f72 8ea2bff2,8ea2bff2v 841b e8909b 841b 0000841b dbae dbae dbae dbae dbae dbae dbae -8898 dbaf dbaf dbaf * * 3f73 8ea2bff3,8ea2bff3v 83db e88f9b 83db 000083db dbaf dbaf dbaf dbaf dbaf dbaf dbaf -8899 dbb0 dbb0 dbb0 * * 3f74 8ea2bff4,8ea2bff4v 83fe e88fbe 83fe 000083fe dbb0 dbb0 dbb0 dbb0 dbb0 dbb0 dbb0 -8900 dbb1 dbb1 dbb1 * * 3f75 8ea2bff5,8ea2bff5v 86d8 e89b98 86d8 000086d8 dbb1 dbb1 dbb1 dbb1 dbb1 dbb1 dbb1 -8901 dbb2 dbb2 dbb2 * * 3f76 8ea2bff6,8ea2bff6v 86e2 e89ba2 86e2 000086e2 dbb2 dbb2 dbb2 dbb2 dbb2 dbb2 dbb2 -8902 dbb3 dbb3 dbb3 * * 3f77 8ea2bff7,8ea2bff7v 86e6 e89ba6 86e6 000086e6 dbb3 dbb3 dbb3 dbb3 dbb3 dbb3 dbb3 -8903 dbb4 dbb4 dbb4 * * 3f78 8ea2bff8,8ea2bff8v 86d3 e89b93 86d3 000086d3 dbb4 dbb4 dbb4 dbb4 dbb4 dbb4 dbb4 -8904 dbb5 dbb5 dbb5 * * 3f79 8ea2bff9,8ea2bff9v 86e3 e89ba3 86e3 000086e3 dbb5 dbb5 dbb5 dbb5 dbb5 dbb5 dbb5 -8905 dbb6 dbb6 dbb6 * * 3f7a 8ea2bffa,8ea2bffav 86da e89b9a 86da 000086da dbb6 dbb6 dbb6 dbb6 dbb6 dbb6 dbb6 -8906 dbb7 dbb7 dbb7 * * 3f7b 8ea2bffb,8ea2bffbv 86ea e89baa 86ea 000086ea dbb7 dbb7 dbb7 dbb7 dbb7 dbb7 dbb7 -8907 dbb8 dbb8 dbb8 * * 3f7c 8ea2bffc,8ea2bffcv 86dd e89b9d 86dd 000086dd dbb8 dbb8 dbb8 dbb8 dbb8 dbb8 dbb8 -8908 dbb9 dbb9 dbb9 * * 3f7d 8ea2bffd,8ea2bffdv 86eb e89bab 86eb 000086eb dbb9 dbb9 dbb9 dbb9 dbb9 dbb9 dbb9 -8909 dbba dbba dbba * * 3f7e 8ea2bffe,8ea2bffev 86dc e89b9c 86dc 000086dc dbba dbba dbba dbba dbba dbba dbba -8910 dbbb dbbb dbbb * * 4021 8ea2c0a1,8ea2c0a1v 86ec e89bac 86ec 000086ec dbbb dbbb dbbb dbbb dbbb dbbb dbbb -8911 dbbc dbbc dbbc * * 4022 8ea2c0a2,8ea2c0a2v 86e9 e89ba9 86e9 000086e9 dbbc dbbc dbbc dbbc dbbc dbbc dbbc -8912 dbbd dbbd dbbd * * 4023 8ea2c0a3,8ea2c0a3v 86d7 e89b97 86d7 000086d7 dbbd dbbd dbbd dbbd dbbd dbbd dbbd -8913 dbbe dbbe dbbe * * 4024 8ea2c0a4,8ea2c0a4v 86e8 e89ba8 86e8 000086e8 dbbe dbbe dbbe dbbe dbbe dbbe dbbe -8914 dbbf dbbf dbbf * * 4025 8ea2c0a5,8ea2c0a5v 86d1 e89b91 86d1 000086d1 dbbf dbbf dbbf dbbf dbbf dbbf dbbf -8915 dbc0 dbc0 dbc0 * * 4026 8ea2c0a6,8ea2c0a6v 8848 e8a188 8848 00008848 dbc0 dbc0 dbc0 dbc0 dbc0 dbc0 dbc0 -8916 dbc1 dbc1 dbc1 * * 4027 8ea2c0a7,8ea2c0a7v 8856 e8a196 8856 00008856 dbc1 dbc1 dbc1 dbc1 dbc1 dbc1 dbc1 -8917 dbc2 dbc2 dbc2 * * 4028 8ea2c0a8,8ea2c0a8v 8855 e8a195 8855 00008855 dbc2 dbc2 dbc2 dbc2 dbc2 dbc2 dbc2 -8918 dbc3 dbc3 dbc3 * * 4029 8ea2c0a9,8ea2c0a9v 88ba e8a2ba 88ba 000088ba dbc3 dbc3 dbc3 dbc3 dbc3 dbc3 dbc3 -8919 dbc4 dbc4 dbc4 * * 402a 8ea2c0aa,8ea2c0aav 88d7 e8a397 88d7 000088d7 dbc4 dbc4 dbc4 dbc4 dbc4 dbc4 dbc4 -8920 dbc5 dbc5 dbc5 * * 402b 8ea2c0ab,8ea2c0abv 88b9 e8a2b9 88b9 000088b9 dbc5 dbc5 dbc5 dbc5 dbc5 dbc5 dbc5 -8921 dbc6 dbc6 dbc6 * * 402c 8ea2c0ac,8ea2c0acv 88b8 e8a2b8 88b8 000088b8 dbc6 dbc6 dbc6 dbc6 dbc6 dbc6 dbc6 -8922 dbc7 dbc7 dbc7 * * 402d 8ea2c0ad,8ea2c0adv 88c0 e8a380 88c0 000088c0 dbc7 dbc7 dbc7 dbc7 dbc7 dbc7 dbc7 -8923 dbc8 dbc8 dbc8 * * 402e 8ea2c0ae,8ea2c0aev 88be e8a2be 88be 000088be dbc8 dbc8 dbc8 dbc8 dbc8 dbc8 dbc8 -8924 dbc9 dbc9 dbc9 * * 402f 8ea2c0af,8ea2c0afv 88b6 e8a2b6 88b6 000088b6 dbc9 dbc9 dbc9 dbc9 dbc9 dbc9 dbc9 -8925 dbca dbca dbca * * 4030 8ea2c0b0,8ea2c0b0v 88bc e8a2bc 88bc 000088bc dbca dbca dbca dbca dbca dbca dbca -8926 dbcb dbcb dbcb * * 4031 8ea2c0b1,8ea2c0b1v 88b7 e8a2b7 88b7 000088b7 dbcb dbcb dbcb dbcb dbcb dbcb dbcb -8927 dbcc dbcc dbcc * * 4032 8ea2c0b2,8ea2c0b2v 88bd e8a2bd 88bd 000088bd dbcc dbcc dbcc dbcc dbcc dbcc dbcc -8928 dbcd dbcd dbcd * * 4033 8ea2c0b3,8ea2c0b3v 88b2 e8a2b2 88b2 000088b2 dbcd dbcd dbcd dbcd dbcd dbcd dbcd -8929 dbce dbce dbce * * 4034 8ea2c0b4,8ea2c0b4v 8901 e8a481 8901 00008901 dbce dbce dbce dbce dbce dbce dbce -8930 dbcf dbcf dbcf * * 4035 8ea2c0b5,8ea2c0b5v 88c9 e8a389 88c9 000088c9 dbcf dbcf dbcf dbcf dbcf dbcf dbcf -8931 dbd0 dbd0 dbd0 * * 4036 8ea2c0b6,8ea2c0b6v 8995 e8a695 8995 00008995 dbd0 dbd0 dbd0 dbd0 dbd0 dbd0 dbd0 -8932 dbd1 dbd1 dbd1 * * 4037 8ea2c0b7,8ea2c0b7v 8998 e8a698 8998 00008998 dbd1 dbd1 dbd1 dbd1 dbd1 dbd1 dbd1 -8933 dbd2 dbd2 dbd2 * * 4038 8ea2c0b8,8ea2c0b8v 8997 e8a697 8997 00008997 dbd2 dbd2 dbd2 dbd2 dbd2 dbd2 dbd2 -8934 dbd3 dbd3 dbd3 * * 4039 8ea2c0b9,8ea2c0b9v 89dd e8a79d 89dd 000089dd dbd3 dbd3 dbd3 dbd3 dbd3 dbd3 dbd3 -8935 dbd4 dbd4 dbd4 * * 403a 8ea2c0ba,8ea2c0bav 89da e8a79a 89da 000089da dbd4 dbd4 dbd4 dbd4 dbd4 dbd4 dbd4 -8936 dbd5 dbd5 dbd5 * * 403b 8ea2c0bb,8ea2c0bbv 89db e8a79b 89db 000089db dbd5 dbd5 dbd5 dbd5 dbd5 dbd5 dbd5 -8937 dbd6 dbd6 dbd6 * * 403c 8ea2c0bc,8ea2c0bcv 8a4e e8a98e 8a4e 00008a4e dbd6 dbd6 dbd6 dbd6 dbd6 dbd6 dbd6 -8938 dbd7 dbd7 dbd7 * * 403d 8ea2c0bd,8ea2c0bdv 8a4d e8a98d 8a4d 00008a4d dbd7 dbd7 dbd7 dbd7 dbd7 dbd7 dbd7 -8939 dbd8 dbd8 dbd8 * * 403e 8ea2c0be,8ea2c0bev 8a39 e8a8b9 8a39 00008a39 dbd8 dbd8 dbd8 dbd8 dbd8 dbd8 dbd8 -8940 dbd9 dbd9 dbd9 * * 403f 8ea2c0bf,8ea2c0bfv 8a59 e8a999 8a59 00008a59 dbd9 dbd9 dbd9 dbd9 dbd9 dbd9 dbd9 -8941 dbda dbda dbda * * 4040 8ea2c0c0,8ea2c0c0v 8a40 e8a980 8a40 00008a40 dbda dbda dbda dbda dbda dbda dbda -8942 dbdb dbdb dbdb * * 4041 8ea2c0c1,8ea2c0c1v 8a57 e8a997 8a57 00008a57 dbdb dbdb dbdb dbdb dbdb dbdb dbdb -8943 dbdc dbdc dbdc * * 4042 8ea2c0c2,8ea2c0c2v 8a58 e8a998 8a58 00008a58 dbdc dbdc dbdc dbdc dbdc dbdc dbdc -8944 dbdd dbdd dbdd * * 4043 8ea2c0c3,8ea2c0c3v 8a44 e8a984 8a44 00008a44 dbdd dbdd dbdd dbdd dbdd dbdd dbdd -8945 dbde dbde dbde * * 4044 8ea2c0c4,8ea2c0c4v 8a45 e8a985 8a45 00008a45 dbde dbde dbde dbde dbde dbde dbde -8946 dbdf dbdf dbdf * * 4045 8ea2c0c5,8ea2c0c5v 8a52 e8a992 8a52 00008a52 dbdf dbdf dbdf dbdf dbdf dbdf dbdf -8947 dbe0 dbe0 dbe0 * * 4046 8ea2c0c6,8ea2c0c6v 8a48 e8a988 8a48 00008a48 dbe0 dbe0 dbe0 dbe0 dbe0 dbe0 dbe0 -8948 dbe1 dbe1 dbe1 * * 4047 8ea2c0c7,8ea2c0c7v 8a51 e8a991 8a51 00008a51 dbe1 dbe1 dbe1 dbe1 dbe1 dbe1 dbe1 -8949 dbe2 dbe2 dbe2 * * 4048 8ea2c0c8,8ea2c0c8v 8a4a e8a98a 8a4a 00008a4a dbe2 dbe2 dbe2 dbe2 dbe2 dbe2 dbe2 -8950 dbe3 dbe3 dbe3 * * 4049 8ea2c0c9,8ea2c0c9v 8a4c e8a98c 8a4c 00008a4c dbe3 dbe3 dbe3 dbe3 dbe3 dbe3 dbe3 -8951 dbe4 dbe4 dbe4 * * 404a 8ea2c0ca,8ea2c0cav 8a4f e8a98f 8a4f 00008a4f dbe4 dbe4 dbe4 dbe4 dbe4 dbe4 dbe4 -8952 dbe5 dbe5 dbe5 * * 404b 8ea2c0cb,8ea2c0cbv 8c5f e8b19f 8c5f 00008c5f dbe5 dbe5 dbe5 dbe5 dbe5 dbe5 dbe5 -8953 dbe6 dbe6 dbe6 * * 404c 8ea2c0cc,8ea2c0ccv 8c81 e8b281 8c81 00008c81 dbe6 dbe6 dbe6 dbe6 dbe6 dbe6 dbe6 -8954 dbe7 dbe7 dbe7 * * 404d 8ea2c0cd,8ea2c0cdv 8c80 e8b280 8c80 00008c80 dbe7 dbe7 dbe7 dbe7 dbe7 dbe7 dbe7 -8955 dbe8 dbe8 dbe8 * * 404e 8ea2c0ce,8ea2c0cev 8cba e8b2ba 8cba 00008cba dbe8 dbe8 dbe8 dbe8 dbe8 dbe8 dbe8 -8956 dbe9 dbe9 dbe9 * * 404f 8ea2c0cf,8ea2c0cfv 8cbe e8b2be 8cbe 00008cbe dbe9 dbe9 dbe9 dbe9 dbe9 dbe9 dbe9 -8957 dbea dbea dbea * * 4050 8ea2c0d0,8ea2c0d0v 8cb0 e8b2b0 8cb0 00008cb0 dbea dbea dbea dbea dbea dbea dbea -8958 dbeb dbeb dbeb * * 4051 8ea2c0d1,8ea2c0d1v 8cb9 e8b2b9 8cb9 00008cb9 dbeb dbeb dbeb dbeb dbeb dbeb dbeb -8959 dbec dbec dbec * * 4052 8ea2c0d2,8ea2c0d2v 8cb5 e8b2b5 8cb5 00008cb5 dbec dbec dbec dbec dbec dbec dbec -8960 dbed dbed dbed * * 4053 8ea2c0d3,8ea2c0d3v 8d84 e8b684 8d84 00008d84 dbed dbed dbed dbed dbed dbed dbed -8961 dbee dbee dbee * * 4054 8ea2c0d4,8ea2c0d4v 8d80 e8b680 8d80 00008d80 dbee dbee dbee dbee dbee dbee dbee -8962 dbef dbef dbef * * 4055 8ea2c0d5,8ea2c0d5v 8d89 e8b689 8d89 00008d89 dbef dbef dbef dbef dbef dbef dbef -8963 dbf0 dbf0 dbf0 * * 4056 8ea2c0d6,8ea2c0d6v 8dd8 e8b798 8dd8 00008dd8 dbf0 dbf0 dbf0 dbf0 dbf0 dbf0 dbf0 -8964 dbf1 dbf1 dbf1 * * 4057 8ea2c0d7,8ea2c0d7v 8dd3 e8b793 8dd3 00008dd3 dbf1 dbf1 dbf1 dbf1 dbf1 dbf1 dbf1 -8965 dbf2 dbf2 dbf2 * * 4058 8ea2c0d8,8ea2c0d8v 8dcd e8b78d 8dcd 00008dcd dbf2 dbf2 dbf2 dbf2 dbf2 dbf2 dbf2 -8966 dbf3 dbf3 dbf3 * * 4059 8ea2c0d9,8ea2c0d9v 8dc7 e8b787 8dc7 00008dc7 dbf3 dbf3 dbf3 dbf3 dbf3 dbf3 dbf3 -8967 dbf4 dbf4 dbf4 * * 405a 8ea2c0da,8ea2c0dav 8dd6 e8b796 8dd6 00008dd6 dbf4 dbf4 dbf4 dbf4 dbf4 dbf4 dbf4 -8968 dbf5 dbf5 dbf5 * * 405b 8ea2c0db,8ea2c0dbv 8ddc e8b79c 8ddc 00008ddc dbf5 dbf5 dbf5 dbf5 dbf5 dbf5 dbf5 -8969 dbf6 dbf6 dbf6 * * 405c 8ea2c0dc,8ea2c0dcv 8dcf e8b78f 8dcf 00008dcf dbf6 dbf6 dbf6 dbf6 dbf6 dbf6 dbf6 -8970 dbf7 dbf7 dbf7 * * 405d 8ea2c0dd,8ea2c0ddv 8dd5 e8b795 8dd5 00008dd5 dbf7 dbf7 dbf7 dbf7 dbf7 dbf7 dbf7 -8971 dbf8 dbf8 dbf8 * * 405e 8ea2c0de,8ea2c0dev 8dd9 e8b799 8dd9 00008dd9 dbf8 dbf8 dbf8 dbf8 dbf8 dbf8 dbf8 -8972 dbf9 dbf9 dbf9 * * 405f 8ea2c0df,8ea2c0dfv 8dc8 e8b788 8dc8 00008dc8 dbf9 dbf9 dbf9 dbf9 dbf9 dbf9 dbf9 -8973 dbfa dbfa dbfa * * 4060 8ea2c0e0,8ea2c0e0v 8dd7 e8b797 8dd7 00008dd7 dbfa dbfa dbfa dbfa dbfa dbfa dbfa -8974 dbfb dbfb dbfb * * 4061 8ea2c0e1,8ea2c0e1v 8dc5 e8b785 8dc5 00008dc5 dbfb dbfb dbfb dbfb dbfb dbfb dbfb -8975 dbfc dbfc dbfc * * 4062 8ea2c0e2,8ea2c0e2v 8eef e8bbaf 8eef 00008eef dbfc dbfc dbfc dbfc dbfc dbfc dbfc -8976 dbfd dbfd dbfd * * 4063 8ea2c0e3,8ea2c0e3v 8ef7 e8bbb7 8ef7 00008ef7 dbfd dbfd dbfd dbfd dbfd dbfd dbfd -8977 dbfe dbfe dbfe * * 4064 8ea2c0e4,8ea2c0e4v 8efa e8bbba 8efa 00008efa dbfe dbfe dbfe dbfe dbfe dbfe dbfe -8978 dc40 dc40 dc40 * * 4065 8ea2c0e5,8ea2c0e5v 8ef9 e8bbb9 8ef9 00008ef9 dc40 dc40 dc40 dc40 dc40 dc40 dc40 -8979 dc41 dc41 dc41 * * 4066 8ea2c0e6,8ea2c0e6v 8ee6 e8bba6 8ee6 00008ee6 dc41 dc41 dc41 dc41 dc41 dc41 dc41 -8980 dc42 dc42 dc42 * * 4067 8ea2c0e7,8ea2c0e7v 8eee e8bbae 8eee 00008eee dc42 dc42 dc42 dc42 dc42 dc42 dc42 -8981 dc43 dc43 dc43 * * 4068 8ea2c0e8,8ea2c0e8v 8ee5 e8bba5 8ee5 00008ee5 dc43 dc43 dc43 dc43 dc43 dc43 dc43 -8982 dc44 dc44 dc44 * * 4069 8ea2c0e9,8ea2c0e9v 8ef5 e8bbb5 8ef5 00008ef5 dc44 dc44 dc44 dc44 dc44 dc44 dc44 -8983 dc45 dc45 dc45 * * 406a 8ea2c0ea,8ea2c0eav 8ee7 e8bba7 8ee7 00008ee7 dc45 dc45 dc45 dc45 dc45 dc45 dc45 -8984 dc46 dc46 dc46 * * 406b 8ea2c0eb,8ea2c0ebv 8ee8 e8bba8 8ee8 00008ee8 dc46 dc46 dc46 dc46 dc46 dc46 dc46 -8985 dc47 dc47 dc47 * * 406c 8ea2c0ec,8ea2c0ecv 8ef6 e8bbb6 8ef6 00008ef6 dc47 dc47 dc47 dc47 dc47 dc47 dc47 -8986 dc48 dc48 dc48 * * 406d 8ea2c0ed,8ea2c0edv 8eeb e8bbab 8eeb 00008eeb dc48 dc48 dc48 dc48 dc48 dc48 dc48 -8987 dc49 dc49 dc49 * * 406e 8ea2c0ee,8ea2c0eev 8ef1 e8bbb1 8ef1 00008ef1 dc49 dc49 dc49 dc49 dc49 dc49 dc49 -8988 dc4a dc4a dc4a * * 406f 8ea2c0ef,8ea2c0efv 8eec e8bbac 8eec 00008eec dc4a dc4a dc4a dc4a dc4a dc4a dc4a -8989 dc4b dc4b dc4b * * 4070 8ea2c0f0,8ea2c0f0v 8ef4 e8bbb4 8ef4 00008ef4 dc4b dc4b dc4b dc4b dc4b dc4b dc4b -8990 dc4c dc4c dc4c * * 4071 8ea2c0f1,8ea2c0f1v 8ee9 e8bba9 8ee9 00008ee9 dc4c dc4c dc4c dc4c dc4c dc4c dc4c -8991 dc4d dc4d dc4d * * 4072 8ea2c0f2,8ea2c0f2v 902d e980ad 902d 0000902d dc4d dc4d dc4d dc4d dc4d dc4d dc4d -8992 dc4e dc4e dc4e * * 4073 8ea2c0f3,8ea2c0f3v 9034 e980b4 9034 00009034 dc4e dc4e dc4e dc4e dc4e dc4e dc4e -8993 dc4f dc4f dc4f * * 4074 8ea2c0f4,8ea2c0f4v 902f e980af 902f 0000902f dc4f dc4f dc4f dc4f dc4f dc4f dc4f -8994 dc50 dc50 dc50 * * 4075 8ea2c0f5,8ea2c0f5v 9106 e98486 9106 00009106 dc50 dc50 dc50 dc50 dc50 dc50 dc50 -8995 dc51 dc51 dc51 * * 4076 8ea2c0f6,8ea2c0f6v 912c e984ac 912c 0000912c dc51 dc51 dc51 dc51 dc51 dc51 dc51 -8996 dc52 dc52 dc52 * * 4077 8ea2c0f7,8ea2c0f7v 9104 e98484,eeaf8f 9104,ebcf 00009104,0000ebcf 9c68,dc52 dc52 dc52 dc52 dc52 dc52 9c68,dc52 -8997 dc53 dc53 dc53 * * 4078 8ea2c0f8,8ea2c0f8v 90ff e983bf 90ff 000090ff dc53 dc53 dc53 dc53 dc53 dc53 dc53 -8998 dc54 dc54 dc54 * * 4079 8ea2c0f9,8ea2c0f9v 90fc e983bc 90fc 000090fc dc54 dc54 dc54 dc54 dc54 dc54 dc54 -8999 dc55 dc55 dc55 * * 407a 8ea2c0fa,8ea2c0fav 9108 e98488 9108 00009108 dc55 dc55 dc55 dc55 dc55 dc55 dc55 -9000 dc56 dc56 dc56 * * 407b 8ea2c0fb,8ea2c0fbv 90f9 e983b9 90f9 000090f9 dc56 dc56 dc56 dc56 dc56 dc56 dc56 -9001 dc57 dc57 dc57 * * 407c 8ea2c0fc,8ea2c0fcv 90fb e983bb 90fb 000090fb dc57 dc57 dc57 dc57 dc57 dc57 dc57 -9002 dc58 dc58 dc58 * * 407d 8ea2c0fd,8ea2c0fdv 9101 e98481 9101 00009101 dc58 dc58 dc58 dc58 dc58 dc58 dc58 -9003 dc59 dc59 dc59 * * 407e 8ea2c0fe,8ea2c0fev 9100 e98480 9100 00009100 dc59 dc59 dc59 dc59 dc59 dc59 dc59 -9004 dc5a dc5a dc5a * * 4121 8ea2c1a1,8ea2c1a1v 9107 e98487 9107 00009107 dc5a dc5a dc5a dc5a dc5a dc5a dc5a -9005 dc5b dc5b dc5b * * 4122 8ea2c1a2,8ea2c1a2v 9105 e98485 9105 00009105 dc5b dc5b dc5b dc5b dc5b dc5b dc5b -9006 dc5c dc5c dc5c * * 4123 8ea2c1a3,8ea2c1a3v 9103 e98483 9103 00009103 dc5c dc5c dc5c dc5c dc5c dc5c dc5c -9007 dc5d dc5d dc5d * * 4124 8ea2c1a4,8ea2c1a4v 9161 e985a1 9161 00009161 dc5d dc5d dc5d dc5d dc5d dc5d dc5d -9008 dc5e dc5e dc5e * * 4125 8ea2c1a5,8ea2c1a5v 9164 e985a4 9164 00009164 dc5e dc5e dc5e dc5e dc5e dc5e dc5e -9009 dc5f dc5f dc5f * * 4126 8ea2c1a6,8ea2c1a6v 915f e9859f 915f 0000915f dc5f dc5f dc5f dc5f dc5f dc5f dc5f -9010 dc60 dc60 dc60 * * 4127 8ea2c1a7,8ea2c1a7v 9162 e985a2 9162 00009162 dc60 dc60 dc60 dc60 dc60 dc60 dc60 -9011 dc61 dc61 dc61 * * 4128 8ea2c1a8,8ea2c1a8v 9160 e985a0 9160 00009160 dc61 dc61 dc61 dc61 dc61 dc61 dc61 -9012 dc62 dc62 dc62 * * 4129 8ea2c1a9,8ea2c1a9v 9201 e98881 9201 00009201 dc62 dc62 dc62 dc62 dc62 dc62 dc62 -9013 dc63 dc63 dc63 * * 412a 8ea2c1aa,8ea2c1aav 920a e9888a 920a 0000920a dc63 dc63 dc63 dc63 dc63 dc63 dc63 -9014 dc64 dc64 dc64 * * 412b 8ea2c1ab,8ea2c1abv 9225 e988a5 9225 00009225 dc64 dc64 dc64 dc64 dc64 dc64 dc64 -9015 dc65 dc65 dc65 * * 412c 8ea2c1ac,8ea2c1acv 9203 e98883 9203 00009203 dc65 dc65 dc65 dc65 dc65 dc65 dc65 -9016 dc66 dc66 dc66 * * 412d 8ea2c1ad,8ea2c1adv 921a e9889a 921a 0000921a dc66 dc66 dc66 dc66 dc66 dc66 dc66 -9017 dc67 dc67 dc67 * * 412e 8ea2c1ae,8ea2c1aev 9226 e988a6 9226 00009226 dc67 dc67 dc67 dc67 dc67 dc67 dc67 -9018 dc68 dc68 dc68 * * 412f 8ea2c1af,8ea2c1afv 920f e9888f 920f 0000920f dc68 dc68 dc68 dc68 dc68 dc68 dc68 -9019 dc69 dc69 dc69 * * 4130 8ea2c1b0,8ea2c1b0v 920c e9888c 920c 0000920c dc69 dc69 dc69 dc69 dc69 dc69 dc69 -9020 dc6a dc6a dc6a * * 4131 8ea2c1b1,8ea2c1b1v 9200 e98880 9200 00009200 dc6a dc6a dc6a dc6a dc6a dc6a dc6a -9021 dc6b dc6b dc6b * * 4132 8ea2c1b2,8ea2c1b2v 9212 e98892 9212 00009212 dc6b dc6b dc6b dc6b dc6b dc6b dc6b -9022 dc6c dc6c dc6c * * 4133 8ea2c1b3,8ea2c1b3v 91ff e987bf 91ff 000091ff dc6c dc6c dc6c dc6c dc6c dc6c dc6c -9023 dc6d dc6d dc6d * * 4134 8ea2c1b4,8ea2c1b4v 91fd e987bd 91fd 000091fd dc6d dc6d dc6d dc6d dc6d dc6d dc6d -9024 dc6e dc6e dc6e * * 4135 8ea2c1b5,8ea2c1b5v 9206 e98886 9206 00009206 dc6e dc6e dc6e dc6e dc6e dc6e dc6e -9025 dc6f dc6f dc6f * * 4136 8ea2c1b6,8ea2c1b6v 9204 e98884 9204 00009204 dc6f dc6f dc6f dc6f dc6f dc6f dc6f -9026 dc70 dc70 dc70 * * 4137 8ea2c1b7,8ea2c1b7v 9227 e988a7 9227 00009227 dc70 dc70 dc70 dc70 dc70 dc70 dc70 -9027 dc71 dc71 dc71 * * 4138 8ea2c1b8,8ea2c1b8v 9202 e98882 9202 00009202 dc71 dc71 dc71 dc71 dc71 dc71 dc71 -9028 dc72 dc72 dc72 * * 4139 8ea2c1b9,8ea2c1b9v 921c e9889c 921c 0000921c dc72 dc72 dc72 dc72 dc72 dc72 dc72 -9029 dc73 dc73 dc73 * * 413a 8ea2c1ba,8ea2c1bav 9224 e988a4 9224 00009224 dc73 dc73 dc73 dc73 dc73 dc73 dc73 -9030 dc74 dc74 dc74 * * 413b 8ea2c1bb,8ea2c1bbv 9219 e98899 9219 00009219 dc74 dc74 dc74 dc74 dc74 dc74 dc74 -9031 dc75 dc75 dc75 * * 413c 8ea2c1bc,8ea2c1bcv 9217 e98897 9217 00009217 dc75 dc75 dc75 dc75 dc75 dc75 dc75 -9032 dc76 dc76 dc76 * * 413d 8ea2c1bd,8ea2c1bdv 9205 e98885 9205 00009205 dc76 dc76 dc76 dc76 dc76 dc76 dc76 -9033 dc77 dc77 dc77 * * 413e 8ea2c1be,8ea2c1bev 9216 e98896 9216 00009216 dc77 dc77 dc77 dc77 dc77 dc77 dc77 -9034 dc78 dc78 dc78 * * 413f 8ea2c1bf,8ea2c1bfv 957b e995bb 957b 0000957b dc78 dc78 dc78 dc78 dc78 dc78 dc78 -9035 dc79 dc79 dc79 * * 4140 8ea2c1c0,8ea2c1c0v 958d e9968d 958d 0000958d dc79 dc79 dc79 dc79 dc79 dc79 dc79 -9036 dc7a dc7a dc7a * * 4141 8ea2c1c1,8ea2c1c1v 958c e9968c 958c 0000958c dc7a dc7a dc7a dc7a dc7a dc7a dc7a -9037 dc7b dc7b dc7b * * 4142 8ea2c1c2,8ea2c1c2v 9590 e99690 9590 00009590 dc7b dc7b dc7b dc7b dc7b dc7b dc7b -9038 dc7c dc7c dc7c * * 4143 8ea2c1c3,8ea2c1c3v 9687 e99a87 9687 00009687 dc7c dc7c dc7c dc7c dc7c dc7c dc7c -9039 dc7d dc7d dc7d * * 4144 8ea2c1c4,8ea2c1c4v 967e e999be 967e 0000967e dc7d dc7d dc7d dc7d dc7d dc7d dc7d -9040 dc7e dc7e dc7e * * 4145 8ea2c1c5,8ea2c1c5v 9688 e99a88 9688 00009688 dc7e dc7e dc7e dc7e dc7e dc7e dc7e -9041 dca1 dca1 dca1 * * 4146 8ea2c1c6,8ea2c1c6v 9689 e99a89 9689 00009689 dca1 dca1 dca1 dca1 dca1 dca1 dca1 -9042 dca2 dca2 dca2 * * 4147 8ea2c1c7,8ea2c1c7v 9683 e99a83 9683 00009683 dca2 dca2,fea1 90dc,dca2 dca2 dca2 dca2 dca2 -9043 dca3 dca3 dca3 * * 4148 8ea2c1c8,8ea2c1c8v 9680 e99a80 9680 00009680 dca3 dca3 dca3 dca3 dca3 dca3 dca3 -9044 dca4 dca4 dca4 * * 4149 8ea2c1c9,8ea2c1c9v 96c2 e99b82 96c2 000096c2 dca4 dca4 dca4 dca4 dca4 dca4 dca4 -9045 dca5 dca5 dca5 * * 414a 8ea2c1ca,8ea2c1cav 96c8 e99b88 96c8 000096c8 dca5 dca5 dca5 dca5 dca5 dca5 dca5 -9046 dca6 dca6 dca6 * * 414b 8ea2c1cb,8ea2c1cbv 96c3 e99b83 96c3 000096c3 dca6 dca6 dca6 dca6 dca6 dca6 dca6 -9047 dca7 dca7 dca7 * * 414c 8ea2c1cc,8ea2c1ccv 96f1 e99bb1 96f1 000096f1 dca7 dca7 dca7 dca7 dca7 dca7 dca7 -9048 dca8 dca8 dca8 * * 414d 8ea2c1cd,8ea2c1cdv 96f0 e99bb0 96f0 000096f0 dca8 dca8 dca8 dca8 dca8 dca8 dca8 -9049 dca9 dca9 dca9 * * 414e 8ea2c1ce,8ea2c1cev 976c e99dac 976c 0000976c dca9 dca9 dca9 dca9 dca9 dca9 dca9 -9050 dcaa dcaa dcaa * * 414f 8ea2c1cf,8ea2c1cfv 9770 e99db0 9770 00009770 dcaa dcaa dcaa dcaa dcaa dcaa dcaa -9051 dcab dcab dcab * * 4150 8ea2c1d0,8ea2c1d0v 976e e99dae 976e 0000976e dcab dcab dcab dcab dcab dcab dcab -9052 dcac dcac dcac * * 4151 8ea2c1d1,8ea2c1d1v 9807 e9a087 9807 00009807 dcac dcac dcac dcac dcac dcac dcac -9053 dcad dcad dcad * * 4152 8ea2c1d2,8ea2c1d2v 98a9 e9a2a9 98a9 000098a9 dcad dcad dcad dcad dcad dcad dcad -9054 dcae dcae dcae * * 4153 8ea2c1d3,8ea2c1d3v 98eb e9a3ab 98eb 000098eb dcae dcae dcae dcae dcae dcae dcae -9055 dcaf dcaf dcaf * * 4154 8ea2c1d4,8ea2c1d4v 9ce6 e9b3a6 9ce6 00009ce6 dcaf dcaf dcaf dcaf dcaf dcaf dcaf -9056 dcb0 dcb0 dcb0 * 292f 4155 8ea1a9af,8ea2c1d5,a9af,8ea1a9afv,8ea2c1d5v,a9afv 9ef9 e2bf8b,e9bbb9 2fcb,9ef9 00002fcb,00009ef9 dcb0 dcb0 dcb0 dcb0 dcb0 dcb0 dcb0 -9057 dcb1 dcb1 dcb1 * * 4156 8ea2c1d6,8ea2c1d6v 4e83 e4ba83 4e83 00004e83 dcb1 dcb1 dcb1 dcb1 dcb1 dcb1 dcb1 -9058 dcb2 dcb2 dcb2 * * 4157 8ea2c1d7,8ea2c1d7v 4e84 e4ba84 4e84 00004e84 dcb2 dcb2 dcb2 dcb2 dcb2 dcb2 dcb2 -9059 dcb3 dcb3 dcb3 * * 4158 8ea2c1d8,8ea2c1d8v 4eb6 e4bab6 4eb6 00004eb6 dcb3 dcb3 dcb3 dcb3 dcb3 dcb3 dcb3 -9060 dcb4 dcb4 dcb4 * * 4159 8ea2c1d9,8ea2c1d9v 50bd e582bd 50bd 000050bd dcb4 dcb4 dcb4 dcb4 dcb4 dcb4 dcb4 -9061 dcb5 dcb5 dcb5 * * 415a 8ea2c1da,8ea2c1dav 50bf e582bf 50bf 000050bf dcb5 dcb5 dcb5 dcb5 dcb5 dcb5 dcb5 -9062 dcb6 dcb6 dcb6 * * 415b 8ea2c1db,8ea2c1dbv 50c6 e58386 50c6 000050c6 dcb6 dcb6 dcb6 dcb6 dcb6 dcb6 dcb6 -9063 dcb7 dcb7 dcb7 * * 415c 8ea2c1dc,8ea2c1dcv 50ae e582ae 50ae 000050ae dcb7 dcb7 dcb7 dcb7 dcb7 dcb7 dcb7 -9064 dcb8 dcb8 dcb8 * * 415d 8ea2c1dd,8ea2c1ddv 50c4 e58384 50c4 000050c4 dcb8 dcb8 dcb8 dcb8 dcb8 dcb8 dcb8 -9065 dcb9 dcb9 dcb9 * * 415e 8ea2c1de,8ea2c1dev 50ca e5838a 50ca 000050ca dcb9 dcb9 dcb9 dcb9 dcb9 dcb9 dcb9 -9066 dcba dcba dcba * * 415f 8ea2c1df,8ea2c1dfv 50b4 e582b4 50b4 000050b4 dcba dcba dcba dcba dcba dcba dcba -9067 dcbb dcbb dcbb * * 4160 8ea2c1e0,8ea2c1e0v 50c8 e58388 50c8 000050c8 dcbb dcbb dcbb dcbb dcbb dcbb dcbb -9068 dcbc dcbc dcbc * * 4161 8ea2c1e1,8ea2c1e1v 50c2 e58382 50c2 000050c2 dcbc dcbc dcbc dcbc dcbc dcbc dcbc -9069 dcbd dcbd dcbd * * 4162 8ea2c1e2,8ea2c1e2v 50b0 e582b0 50b0 000050b0 dcbd dcbd dcbd dcbd dcbd dcbd dcbd -9070 dcbe dcbe dcbe * * 4163 8ea2c1e3,8ea2c1e3v 50c1 e58381 50c1 000050c1 dcbe dcbe dcbe dcbe dcbe dcbe dcbe -9071 dcbf dcbf dcbf * * 4164 8ea2c1e4,8ea2c1e4v 50ba e582ba 50ba 000050ba dcbf dcbf dcbf dcbf dcbf dcbf dcbf -9072 dcc0 dcc0 dcc0 * * 4165 8ea2c1e5,8ea2c1e5v 50b1 e582b1 50b1 000050b1 dcc0 dcc0 dcc0 dcc0 dcc0 dcc0 dcc0 -9073 dcc1 dcc1 dcc1 * * 4166 8ea2c1e6,8ea2c1e6v 50cb e5838b 50cb 000050cb dcc1 dcc1 dcc1 dcc1 dcc1 dcc1 dcc1 -9074 dcc2 dcc2 dcc2 * * 4167 8ea2c1e7,8ea2c1e7v 50c9 e58389 50c9 000050c9 dcc2 dcc2 dcc2 dcc2 dcc2 dcc2 dcc2 -9075 dcc3 dcc3 dcc3 * * 4168 8ea2c1e8,8ea2c1e8v 50b6 e582b6 50b6 000050b6 dcc3 dcc3 dcc3 dcc3 dcc3 dcc3 dcc3 -9076 dcc4 dcc4 dcc4 * * 4169 8ea2c1e9,8ea2c1e9v 50b8 e582b8 50b8 000050b8 dcc4 dcc4 dcc4 dcc4 dcc4 dcc4 dcc4 -9077 dcc5 dcc5 dcc5 * * 416a 8ea2c1ea,8ea2c1eav 51d7 e58797 51d7 000051d7 dcc5 dcc5 dcc5 dcc5 dcc5 dcc5 dcc5 -9078 dcc6 dcc6 dcc6 * * 416b 8ea2c1eb,8ea2c1ebv 527a e589ba 527a 0000527a dcc6 dcc6 dcc6 dcc6 dcc6 dcc6 dcc6 -9079 dcc7 dcc7 dcc7 * * 416c 8ea2c1ec,8ea2c1ecv 5278 e589b8 5278 00005278 dcc7 dcc7 dcc7 dcc7 dcc7 dcc7 dcc7 -9080 dcc8 dcc8 dcc8 * * 416d 8ea2c1ed,8ea2c1edv 527b e589bb 527b 0000527b dcc8 dcc8 dcc8 dcc8 dcc8 dcc8 dcc8 -9081 dcc9 dcc9 dcc9 * * 416e 8ea2c1ee,8ea2c1eev 527c e589bc 527c 0000527c dcc9 dcc9 dcc9 dcc9 dcc9 dcc9 dcc9 -9082 dcca dcca dcca * * 416f 8ea2c1ef,8ea2c1efv 55c3 e59783 55c3 000055c3 dcca dcca dcca dcca dcca dcca dcca -9083 dccb dccb dccb * * 4170 8ea2c1f0,8ea2c1f0v 55db e5979b 55db 000055db dccb dccb dccb dccb dccb dccb dccb -9084 dccc dccc dccc * * 4171 8ea2c1f1,8ea2c1f1v 55cc e5978c 55cc 000055cc dccc dccc dccc dccc dccc dccc dccc -9085 dccd dccd dccd * * 4172 8ea2c1f2,8ea2c1f2v 55d0 e59790 55d0 000055d0 dccd dccd dccd dccd dccd dccd dccd -9086 dcce dcce dcce * * 4173 8ea2c1f3,8ea2c1f3v 55cb e5978b 55cb 000055cb dcce dcce dcce dcce dcce dcce dcce -9087 dccf dccf dccf * * 4174 8ea2c1f4,8ea2c1f4v 55ca e5978a 55ca 000055ca dccf dccf dccf dccf dccf dccf dccf -9088 dcd0 dcd0 dcd0 * * 4175 8ea2c1f5,8ea2c1f5v 55dd e5979d 55dd 000055dd dcd0 dcd0 dcd0 dcd0 dcd0 dcd0 dcd0 -9089 dcd1,ddfc dcd1,ddfc dcd1,ddfc * * 4176 8ea2c1f6,8ea2c1f6v 55c0,fa0d e59780,efa88d 55c0,fa0d 000055c0,0000fa0d ddfc,dcd1 dcd1,ddfc dcd1,ddfc dcd1,ddfc dcd1,ddfc dcd1,ddfc ddfc,dcd1 -9090 dcd2 dcd2 dcd2 * * 4177 8ea2c1f7,8ea2c1f7v 55d4 e59794 55d4 000055d4 dcd2 dcd2 dcd2 dcd2 dcd2 dcd2 dcd2 -9091 dcd3 dcd3 dcd3 * * 4178 8ea2c1f8,8ea2c1f8v 55c4 e59784 55c4 000055c4 dcd3 dcd3 dcd3 dcd3 dcd3 dcd3 dcd3 -9092 dcd4 dcd4 dcd4 * * 4179 8ea2c1f9,8ea2c1f9v 55e9 e597a9 55e9 000055e9 dcd4 dcd4 dcd4 dcd4 dcd4 dcd4 dcd4 -9093 dcd5 dcd5 dcd5 * * 417a 8ea2c1fa,8ea2c1fav 55bf e596bf 55bf 000055bf dcd5 dcd5 dcd5 dcd5 dcd5 dcd5 dcd5 -9094 dcd6 dcd6 dcd6 * * 417b 8ea2c1fb,8ea2c1fbv 55d2 e59792 55d2 000055d2 dcd6 dcd6 dcd6 dcd6 dcd6 dcd6 dcd6 -9095 dcd7 dcd7 dcd7 * * 417c 8ea2c1fc,8ea2c1fcv 558d e5968d 558d 0000558d dcd7 dcd7 dcd7 dcd7 dcd7 dcd7 dcd7 -9096 dcd8 dcd8 dcd8 * * 417d 8ea2c1fd,8ea2c1fdv 55cf e5978f 55cf 000055cf dcd8 dcd8 dcd8 dcd8 dcd8 dcd8 dcd8 -9097 dcd9 dcd9 dcd9 * * 417e 8ea2c1fe,8ea2c1fev 55d5 e59795 55d5 000055d5 dcd9 dcd9 dcd9 dcd9 dcd9 dcd9 dcd9 -9098 dcda dcda dcda * * 4221 8ea2c2a1,8ea2c2a1v 55e2 e597a2 55e2 000055e2 dcda dcda dcda dcda dcda dcda dcda -9099 dcdb dcdb dcdb * * 4222 8ea2c2a2,8ea2c2a2v 55d6 e59796 55d6 000055d6 dcdb dcdb dcdb dcdb dcdb dcdb dcdb -9100 dcdc dcdc dcdc * * 4223 8ea2c2a3,8ea2c2a3v 55c8 e59788 55c8 000055c8 dcdc dcdc dcdc dcdc dcdc dcdc dcdc -9101 dcdd dcdd dcdd * * 4224 8ea2c2a4,8ea2c2a4v 55f2 e597b2 55f2 000055f2 dcdd dcdd dcdd dcdd dcdd dcdd dcdd -9102 dcde dcde dcde * * 4225 8ea2c2a5,8ea2c2a5v 55cd e5978d 55cd 000055cd dcde dcde dcde dcde dcde dcde dcde -9103 dcdf dcdf dcdf * * 4226 8ea2c2a6,8ea2c2a6v 55d9 e59799 55d9 000055d9 dcdf dcdf dcdf dcdf dcdf dcdf dcdf -9104 dce0 dce0 dce0 * * 4227 8ea2c2a7,8ea2c2a7v 55c2 e59782 55c2 000055c2 dce0 dce0 dce0 dce0 dce0 dce0 dce0 -9105 dce1 dce1 dce1 * * 4228 8ea2c2a8,8ea2c2a8v 5714 e59c94 5714 00005714 dce1 dce1 dce1 dce1 dce1 dce1 dce1 -9106 dce2 dce2 dce2 * * 4229 8ea2c2a9,8ea2c2a9v 5853 e5a193 5853 00005853 dce2 dce2 dce2 dce2 dce2 dce2 dce2 -9107 dce3 dce3 dce3 * * 422a 8ea2c2aa,8ea2c2aav 5868 e5a1a8 5868 00005868 dce3 dce3 dce3 dce3 dce3 dce3 dce3 -9108 dce4 dce4 dce4 * * 422b 8ea2c2ab,8ea2c2abv 5864 e5a1a4 5864 00005864 dce4 dce4 dce4 dce4 dce4 dce4 dce4 -9109 dce5 dce5 dce5 * * 422c 8ea2c2ac,8ea2c2acv 584f e5a18f 584f 0000584f dce5 dce5 dce5 dce5 dce5 dce5 dce5 -9110 dce6 dce6 dce6 * * 422d 8ea2c2ad,8ea2c2adv 584d e5a18d 584d 0000584d dce6 dce6 dce6 dce6 dce6 dce6 dce6 -9111 dce7 dce7 dce7 * * 422e 8ea2c2ae,8ea2c2aev 5849 e5a189 5849 00005849 dce7 dce7 dce7 dce7 dce7 dce7 dce7 -9112 dce8 dce8 dce8 * * 422f 8ea2c2af,8ea2c2afv 586f e5a1af 586f 0000586f dce8 dce8 dce8 dce8 dce8 dce8 dce8 -9113 dce9 dce9 dce9 * * 4230 8ea2c2b0,8ea2c2b0v 5855 e5a195 5855 00005855 dce9 dce9 dce9 dce9 dce9 dce9 dce9 -9114 dcea dcea dcea * * 4231 8ea2c2b1,8ea2c2b1v 584e e5a18e 584e 0000584e dcea dcea dcea dcea dcea dcea dcea -9115 dceb dceb dceb * * 4232 8ea2c2b2,8ea2c2b2v 585d e5a19d 585d 0000585d dceb dceb dceb dceb dceb dceb dceb -9116 dcec dcec dcec * * 4233 8ea2c2b3,8ea2c2b3v 5859 e5a199 5859 00005859 dcec dcec dcec dcec dcec dcec dcec -9117 dced dced dced * * 4234 8ea2c2b4,8ea2c2b4v 5865 e5a1a5 5865 00005865 dced dced dced dced dced dced dced -9118 dcee dcee dcee * * 4235 8ea2c2b5,8ea2c2b5v 585b e5a19b 585b 0000585b dcee dcee dcee dcee dcee dcee dcee -9119 dcef dcef dcef * * 4236 8ea2c2b6,8ea2c2b6v 583d e5a0bd 583d 0000583d dcef dcef dcef dcef dcef dcef dcef -9120 dcf0 dcf0 dcf0 * * 4237 8ea2c2b7,8ea2c2b7v 5863 e5a1a3 5863 00005863 dcf0 dcf0 dcf0 dcf0 dcf0 dcf0 dcf0 -9121 dcf1 dcf1 dcf1 * * 4238 8ea2c2b8,8ea2c2b8v 5871 e5a1b1 5871 00005871 dcf1 dcf1 dcf1 dcf1 dcf1 dcf1 dcf1 -9122 dcf2 dcf2 dcf2 * * 4239 8ea2c2b9,8ea2c2b9v 58fc e5a3bc 58fc 000058fc dcf2 dcf2 dcf2 dcf2 dcf2 dcf2 dcf2 -9123 dcf3 dcf3 dcf3 * * 423a 8ea2c2ba,8ea2c2bav 5ac7 e5ab87 5ac7 00005ac7 dcf3 dcf3 dcf3 dcf3 dcf3 dcf3 dcf3 -9124 dcf4 dcf4 dcf4 * * 423b 8ea2c2bb,8ea2c2bbv 5ac4 e5ab84 5ac4 00005ac4 dcf4 dcf4 dcf4 dcf4 dcf4 dcf4 dcf4 -9125 dcf5 dcf5 dcf5 * * 423c 8ea2c2bc,8ea2c2bcv 5acb e5ab8b 5acb 00005acb dcf5 dcf5 dcf5 dcf5 dcf5 dcf5 dcf5 -9126 dcf6 dcf6 dcf6 * * 423d 8ea2c2bd,8ea2c2bdv 5aba e5aaba 5aba 00005aba dcf6 dcf6 dcf6 dcf6 dcf6 dcf6 dcf6 -9127 dcf7 dcf7 dcf7 * * 423e 8ea2c2be,8ea2c2bev 5ab8 e5aab8 5ab8 00005ab8 dcf7 dcf7 dcf7 dcf7 dcf7 dcf7 dcf7 -9128 dcf8 dcf8 dcf8 * * 423f 8ea2c2bf,8ea2c2bfv 5ab1 e5aab1 5ab1 00005ab1 dcf8 dcf8 dcf8 dcf8 dcf8 dcf8 dcf8 -9129 dcf9 dcf9 dcf9 * * 4240 8ea2c2c0,8ea2c2c0v 5ab5 e5aab5 5ab5 00005ab5 dcf9 dcf9 dcf9 dcf9 dcf9 dcf9 dcf9 -9130 dcfa dcfa dcfa * * 4241 8ea2c2c1,8ea2c2c1v 5ab0 e5aab0 5ab0 00005ab0 dcfa dcfa dcfa dcfa dcfa dcfa dcfa -9131 dcfb dcfb dcfb * * 4242 8ea2c2c2,8ea2c2c2v 5abf e5aabf 5abf 00005abf dcfb dcfb dcfb dcfb dcfb dcfb dcfb -9132 dcfc dcfc dcfc * * 4243 8ea2c2c3,8ea2c2c3v 5ac8 e5ab88 5ac8 00005ac8 dcfc dcfc dcfc dcfc dcfc dcfc dcfc -9133 dcfd dcfd dcfd * * 4244 8ea2c2c4,8ea2c2c4v 5abb e5aabb 5abb 00005abb dcfd dcfd dcfd dcfd dcfd dcfd dcfd -9134 dcfe dcfe dcfe * * 4245 8ea2c2c5,8ea2c2c5v 5ac6 e5ab86 5ac6 00005ac6 dcfe dcfe dcfe dcfe dcfe dcfe dcfe -9135 dd40 dd40 dd40 * * 4246 8ea2c2c6,8ea2c2c6v 5ab7 e5aab7 5ab7 00005ab7 dd40 dd40 dd40 dd40 dd40 dd40 dd40 -9136 dd41 dd41 dd41 * * 4247 8ea2c2c7,8ea2c2c7v 5ac0 e5ab80 5ac0 00005ac0 dd41 dd41 dd41 dd41 dd41 dd41 dd41 -9137 dd42 dd42 dd42 * * 4248 8ea2c2c8,8ea2c2c8v 5aca e5ab8a 5aca 00005aca dd42 dd42 dd42 dd42 dd42 dd42 dd42 -9138 dd43 dd43 dd43 * * 4249 8ea2c2c9,8ea2c2c9v 5ab4 e5aab4 5ab4 00005ab4 dd43 dd43 dd43 dd43 dd43 dd43 dd43 -9139 dd44 dd44 dd44 * * 424a 8ea2c2ca,8ea2c2cav 5ab6 e5aab6 5ab6 00005ab6 dd44 dd44 dd44 dd44 dd44 dd44 dd44 -9140 dd45 dd45 dd45 * * 424b 8ea2c2cb,8ea2c2cbv 5acd e5ab8d 5acd 00005acd dd45 dd45 dd45 dd45 dd45 dd45 dd45 -9141 dd46 dd46 dd46 * * 424c 8ea2c2cc,8ea2c2ccv 5ab9 e5aab9 5ab9 00005ab9 dd46 dd46 dd46 dd46 dd46 dd46 dd46 -9142 dd47 dd47 dd47 * * 424d 8ea2c2cd,8ea2c2cdv 5a90 e5aa90 5a90 00005a90 dd47 dd47 dd47 dd47 dd47 dd47 dd47 -9143 dd48 dd48 dd48 * * 424e 8ea2c2ce,8ea2c2cev 5bd6 e5af96 5bd6 00005bd6 dd48 dd48 dd48 dd48 dd48 dd48 dd48 -9144 dd49 dd49 dd49 * * 424f 8ea2c2cf,8ea2c2cfv 5bd8 e5af98 5bd8 00005bd8 dd49 dd49 dd49 dd49 dd49 dd49 dd49 -9145 dd4a dd4a dd4a * * 4250 8ea2c2d0,8ea2c2d0v 5bd9 e5af99 5bd9 00005bd9 dd4a dd4a dd4a dd4a dd4a dd4a dd4a -9146 dd4b dd4b dd4b * * 4251 8ea2c2d1,8ea2c2d1v 5c1f e5b09f 5c1f 00005c1f dd4b dd4b dd4b dd4b dd4b dd4b dd4b -9147 dd4c dd4c dd4c * * 4252 8ea2c2d2,8ea2c2d2v 5c33 e5b0b3 5c33 00005c33 dd4c dd4c dd4c dd4c dd4c dd4c dd4c -9148 dd4d dd4d dd4d * * 4253 8ea2c2d3,8ea2c2d3v 5d71 e5b5b1 5d71 00005d71 dd4d dd4d dd4d dd4d dd4d dd4d dd4d -9149 dd4e dd4e dd4e * * 4254 8ea2c2d4,8ea2c2d4v 5d63 e5b5a3 5d63 00005d63 dd4e dd4e dd4e dd4e dd4e dd4e dd4e -9150 dd4f dd4f dd4f * * 4255 8ea2c2d5,8ea2c2d5v 5d4a e5b58a 5d4a 00005d4a dd4f dd4f dd4f dd4f dd4f dd4f dd4f -9151 dd50 dd50 dd50 * * 4256 8ea2c2d6,8ea2c2d6v 5d65 e5b5a5 5d65 00005d65 dd50 dd50 dd50 dd50 dd50 dd50 dd50 -9152 dd51 dd51 dd51 * * 4257 8ea2c2d7,8ea2c2d7v 5d72 e5b5b2 5d72 00005d72 dd51 dd51 dd51 dd51 dd51 dd51 dd51 -9153 dd52 dd52 dd52 * * 4258 8ea2c2d8,8ea2c2d8v 5d6c e5b5ac 5d6c 00005d6c dd52 dd52 dd52 dd52 dd52 dd52 dd52 -9154 dd53 dd53 dd53 * * 4259 8ea2c2d9,8ea2c2d9v 5d5e e5b59e 5d5e 00005d5e dd53 dd53 dd53 dd53 dd53 dd53 dd53 -9155 dd54 dd54 dd54 * * 425a 8ea2c2da,8ea2c2dav 5d68 e5b5a8 5d68 00005d68 dd54 dd54 dd54 dd54 dd54 dd54 dd54 -9156 dd55 dd55 dd55 * * 425b 8ea2c2db,8ea2c2dbv 5d67 e5b5a7 5d67 00005d67 dd55 dd55 dd55 dd55 dd55 dd55 dd55 -9157 dd56 dd56 dd56 * * 425c 8ea2c2dc,8ea2c2dcv 5d62 e5b5a2 5d62 00005d62 dd56 dd56 dd56 dd56 dd56 dd56 dd56 -9158 dd57 dd57 dd57 * * 425d 8ea2c2dd,8ea2c2ddv 5df0 e5b7b0 5df0 00005df0 dd57 dd57 dd57 dd57 dd57 dd57 dd57 -9159 dd58 dd58 dd58 * * 425e 8ea2c2de,8ea2c2dev 5e4f e5b98f 5e4f 00005e4f dd58 dd58 dd58 dd58 dd58 dd58 dd58 -9160 dd59 dd59 dd59 * * 425f 8ea2c2df,8ea2c2dfv 5e4e e5b98e 5e4e 00005e4e dd59 dd59 dd59 dd59 dd59 dd59 dd59 -9161 dd5a dd5a dd5a * * 4260 8ea2c2e0,8ea2c2e0v 5e4a e5b98a 5e4a 00005e4a dd5a dd5a dd5a dd5a dd5a dd5a dd5a -9162 dd5b dd5b dd5b * * 4261 8ea2c2e1,8ea2c2e1v 5e4d e5b98d 5e4d 00005e4d dd5b dd5b dd5b dd5b dd5b dd5b dd5b -9163 dd5c dd5c dd5c * * 4262 8ea2c2e2,8ea2c2e2v 5e4b e5b98b 5e4b 00005e4b dd5c dd5c dd5c dd5c dd5c dd5c dd5c -9164 dd5d dd5d dd5d * * 4263 8ea2c2e3,8ea2c2e3v 5ec5 e5bb85 5ec5 00005ec5 dd5d dd5d dd5d dd5d dd5d dd5d dd5d -9165 dd5e dd5e dd5e * * 4264 8ea2c2e4,8ea2c2e4v 5ecc e5bb8c 5ecc 00005ecc dd5e dd5e dd5e dd5e dd5e dd5e dd5e -9166 dd5f dd5f dd5f * * 4265 8ea2c2e5,8ea2c2e5v 5ec6 e5bb86 5ec6 00005ec6 dd5f dd5f dd5f dd5f dd5f dd5f dd5f -9167 dd60 dd60 dd60 * * 4266 8ea2c2e6,8ea2c2e6v 5ecb e5bb8b 5ecb 00005ecb dd60 dd60 dd60 dd60 dd60 dd60 dd60 -9168 dd61 dd61 dd61 * * 4267 8ea2c2e7,8ea2c2e7v 5ec7 e5bb87 5ec7 00005ec7 dd61 dd61 dd61 dd61 dd61 dd61 dd61 -9169 dd62 dd62 dd62 * * 4268 8ea2c2e8,8ea2c2e8v 5f40 e5bd80 5f40 00005f40 dd62 dd62 dd62 dd62 dd62 dd62 dd62 -9170 dd63 dd63 dd63 * * 4269 8ea2c2e9,8ea2c2e9v 5faf e5beaf 5faf 00005faf dd63 dd63 dd63 dd63 dd63 dd63 dd63 -9171 dd64 dd64 dd64 * * 426a 8ea2c2ea,8ea2c2eav 5fad e5bead 5fad 00005fad dd64 dd64 dd64 dd64 dd64 dd64 dd64 -9172 dd65 dd65 dd65 * * 426b 8ea2c2eb,8ea2c2ebv 60f7 e683b7 60f7 000060f7 dd65 dd65 dd65 dd65 dd65 dd65 dd65 -9173 dd66 dd66 dd66 * * 426c 8ea2c2ec,8ea2c2ecv 6149 e68589 6149 00006149 dd66 dd66 dd66 dd66 dd66 dd66 dd66 -9174 dd67 dd67 dd67 * * 426d 8ea2c2ed,8ea2c2edv 614a e6858a 614a 0000614a dd67 dd67 dd67 dd67 dd67 dd67 dd67 -9175 dd68 dd68 dd68 * * 426e 8ea2c2ee,8ea2c2eev 612b e684ab 612b 0000612b dd68 dd68 dd68 dd68 dd68 dd68 dd68 -9176 dd69 dd69 dd69 * * 426f 8ea2c2ef,8ea2c2efv 6145 e68585 6145 00006145 dd69 dd69 dd69 dd69 dd69 dd69 dd69 -9177 dd6a dd6a dd6a * * 4270 8ea2c2f0,8ea2c2f0v 6136 e684b6 6136 00006136 dd6a dd6a dd6a dd6a dd6a dd6a dd6a -9178 dd6b dd6b dd6b * * 4271 8ea2c2f1,8ea2c2f1v 6132 e684b2 6132 00006132 dd6b dd6b dd6b dd6b dd6b dd6b dd6b -9179 dd6c dd6c dd6c * * 4272 8ea2c2f2,8ea2c2f2v 612e e684ae 612e 0000612e dd6c dd6c dd6c dd6c dd6c dd6c dd6c -9180 dd6d dd6d dd6d * * 4273 8ea2c2f3,8ea2c2f3v 6146 e68586 6146 00006146 dd6d dd6d dd6d dd6d dd6d dd6d dd6d -9181 dd6e dd6e dd6e * * 4274 8ea2c2f4,8ea2c2f4v 612f e684af 612f 0000612f dd6e dd6e dd6e dd6e dd6e dd6e dd6e -9182 dd6f dd6f dd6f * * 4275 8ea2c2f5,8ea2c2f5v 614f e6858f 614f 0000614f dd6f dd6f dd6f dd6f dd6f dd6f dd6f -9183 dd70 dd70 dd70 * * 4276 8ea2c2f6,8ea2c2f6v 6129 e684a9 6129 00006129 dd70 dd70 dd70 dd70 dd70 dd70 dd70 -9184 dd71 dd71 dd71 * * 4277 8ea2c2f7,8ea2c2f7v 6140 e68580 6140 00006140 dd71 dd71 dd71 dd71 dd71 dd71 dd71 -9185 dd72 dd72 dd72 * * 4278 8ea2c2f8,8ea2c2f8v 6220 e688a0 6220 00006220 dd72 dd72 dd72 dd72 dd72 dd72 dd72 -9186 dd73 dd73 dd73 * * 4279 8ea2c2f9,8ea2c2f9v 9168 e985a8 9168 00009168 dd73 dd73 dd73 dd73 dd73 dd73 dd73 -9187 dd74 dd74 dd74 * * 427a 8ea2c2fa,8ea2c2fav 6223 e688a3 6223 00006223 dd74 dd74 dd74 dd74 dd74 dd74 dd74 -9188 dd75 dd75 dd75 * * 427b 8ea2c2fb,8ea2c2fbv 6225 e688a5 6225 00006225 dd75 dd75 dd75 dd75 dd75 dd75 dd75 -9189 dd76 dd76 dd76 * * 427c 8ea2c2fc,8ea2c2fcv 6224 e688a4 6224 00006224 dd76 dd76 dd76 dd76 dd76 dd76 dd76 -9190 dd77 dd77 dd77 * * 427d 8ea2c2fd,8ea2c2fdv 63c5 e68f85 63c5 000063c5 dd77 dd77 dd77 dd77 dd77 dd77 dd77 -9191 dd78 dd78 dd78 * * 427e 8ea2c2fe,8ea2c2fev 63f1 e68fb1 63f1 000063f1 dd78 dd78 dd78 dd78 dd78 dd78 dd78 -9192 dd79 dd79 dd79 * * 4321 8ea2c3a1,8ea2c3a1v 63eb e68fab 63eb 000063eb dd79 dd79 dd79 dd79 dd79 dd79 dd79 -9193 dd7a dd7a dd7a * * 4322 8ea2c3a2,8ea2c3a2v 6410 e69090 6410 00006410 dd7a dd7a dd7a dd7a dd7a dd7a dd7a -9194 dd7b dd7b dd7b * * 4323 8ea2c3a3,8ea2c3a3v 6412 e69092 6412 00006412 dd7b dd7b dd7b dd7b dd7b dd7b dd7b -9195 dd7c dd7c dd7c * * 4324 8ea2c3a4,8ea2c3a4v 6409 e69089 6409 00006409 dd7c dd7c dd7c dd7c dd7c dd7c dd7c -9196 dd7d dd7d dd7d * * 4325 8ea2c3a5,8ea2c3a5v 6420 e690a0 6420 00006420 dd7d dd7d dd7d dd7d dd7d dd7d dd7d -9197 dd7e dd7e dd7e * * 4326 8ea2c3a6,8ea2c3a6v 6424 e690a4 6424 00006424 dd7e dd7e dd7e dd7e dd7e dd7e dd7e -9198 dda1 dda1 dda1 * * 4327 8ea2c3a7,8ea2c3a7v 6433 e690b3 6433 00006433 dda1 dda1 dda1 dda1 dda1 dda1 dda1 -9199 dda2 dda2 dda2 * * 4328 8ea2c3a8,8ea2c3a8v 6443 e69183 6443 00006443 dda2 dda2 dda2 dda2 dda2 dda2 dda2 -9200 dda3 dda3 dda3 * * 4329 8ea2c3a9,8ea2c3a9v 641f e6909f 641f 0000641f dda3 dda3 dda3 dda3 dda3 dda3 dda3 -9201 dda4 dda4 dda4 * * 432a 8ea2c3aa,8ea2c3aav 6415 e69095 6415 00006415 dda4 dda4 dda4 dda4 dda4 dda4 dda4 -9202 dda5 dda5 dda5 * * 432b 8ea2c3ab,8ea2c3abv 6418 e69098 6418 00006418 dda5 dda5 dda5 dda5 dda5 dda5 dda5 -9203 dda6 dda6 dda6 * * 432c 8ea2c3ac,8ea2c3acv 6439 e690b9 6439 00006439 dda6 dda6 dda6 dda6 dda6 dda6 dda6 -9204 dda7 dda7 dda7 * * 432d 8ea2c3ad,8ea2c3adv 6437 e690b7 6437 00006437 dda7 dda7 dda7 dda7 dda7 dda7 dda7 -9205 dda8 dda8 dda8 * * 432e 8ea2c3ae,8ea2c3aev 6422 e690a2 6422 00006422 dda8 dda8 dda8 dda8 dda8 dda8 dda8 -9206 dda9 dda9 dda9 * * 432f 8ea2c3af,8ea2c3afv 6423 e690a3 6423 00006423 dda9 dda9 dda9 dda9 dda9 dda9 dda9 -9207 ddaa ddaa ddaa * * 4330 8ea2c3b0,8ea2c3b0v 640c e6908c 640c 0000640c ddaa ddaa ddaa ddaa ddaa ddaa ddaa -9208 ddab ddab ddab * * 4331 8ea2c3b1,8ea2c3b1v 6426 e690a6 6426 00006426 ddab ddab ddab ddab ddab ddab ddab -9209 ddac ddac ddac * * 4332 8ea2c3b2,8ea2c3b2v 6430 e690b0 6430 00006430 ddac ddac ddac ddac ddac ddac ddac -9210 ddad ddad ddad * * 4333 8ea2c3b3,8ea2c3b3v 6428 e690a8 6428 00006428 ddad ddad ddad ddad ddad ddad ddad -9211 ddae ddae ddae * * 4334 8ea2c3b4,8ea2c3b4v 6441 e69181 6441 00006441 ddae ddae ddae ddae ddae ddae ddae -9212 ddaf ddaf ddaf * * 4335 8ea2c3b5,8ea2c3b5v 6435 e690b5 6435 00006435 ddaf ddaf ddaf ddaf ddaf ddaf ddaf -9213 ddb0 ddb0 ddb0 * * 4336 8ea2c3b6,8ea2c3b6v 642f e690af 642f 0000642f ddb0 ddb0 ddb0 ddb0 ddb0 ddb0 ddb0 -9214 ddb1 ddb1 ddb1 * * 4337 8ea2c3b7,8ea2c3b7v 640a e6908a 640a 0000640a ddb1 ddb1 ddb1 ddb1 ddb1 ddb1 ddb1 -9215 ddb2 ddb2 ddb2 * * 4338 8ea2c3b8,8ea2c3b8v 641a e6909a 641a 0000641a ddb2 ddb2 ddb2 ddb2 ddb2 ddb2 ddb2 -9216 ddb3 ddb3 ddb3 * * 4339 8ea2c3b9,8ea2c3b9v 6440 e69180 6440 00006440 ddb3 ddb3 ddb3 ddb3 ddb3 ddb3 ddb3 -9217 ddb4 ddb4 ddb4 * * 433a 8ea2c3ba,8ea2c3bav 6425 e690a5 6425 00006425 ddb4 ddb4 ddb4 ddb4 ddb4 ddb4 ddb4 -9218 ddb5 ddb5 ddb5 * * 433b 8ea2c3bb,8ea2c3bbv 6427 e690a7 6427 00006427 ddb5 ddb5 ddb5 ddb5 ddb5 ddb5 ddb5 -9219 ddb6 ddb6 ddb6 * * 433c 8ea2c3bc,8ea2c3bcv 640b e6908b 640b 0000640b ddb6 ddb6 ddb6 ddb6 ddb6 ddb6 ddb6 -9220 ddb7 ddb7 ddb7 * * 433d 8ea2c3bd,8ea2c3bdv 63e7 e68fa7 63e7 000063e7 ddb7 ddb7 ddb7 ddb7 ddb7 ddb7 ddb7 -9221 ddb8 ddb8 ddb8 * * 433e 8ea2c3be,8ea2c3bev 641b e6909b 641b 0000641b ddb8 ddb8 ddb8 ddb8 ddb8 ddb8 ddb8 -9222 ddb9 ddb9 ddb9 * * 433f 8ea2c3bf,8ea2c3bfv 642e e690ae 642e 0000642e ddb9 ddb9 ddb9 ddb9 ddb9 ddb9 ddb9 -9223 ddba ddba ddba * * 4340 8ea2c3c0,8ea2c3c0v 6421 e690a1 6421 00006421 ddba ddba ddba ddba ddba ddba ddba -9224 ddbb ddbb ddbb * * 4341 8ea2c3c1,8ea2c3c1v 640e e6908e 640e 0000640e ddbb ddbb ddbb ddbb ddbb ddbb ddbb -9225 ddbc ddbc ddbc * * 4342 8ea2c3c2,8ea2c3c2v 656f e695af 656f 0000656f ddbc ddbc ddbc ddbc ddbc ddbc ddbc -9226 ddbd ddbd ddbd * * 4343 8ea2c3c3,8ea2c3c3v 6592 e69692 6592 00006592 ddbd ddbd ddbd ddbd ddbd ddbd ddbd -9227 ddbe ddbe ddbe * * 4344 8ea2c3c4,8ea2c3c4v 65d3 e69793 65d3 000065d3 ddbe ddbe ddbe ddbe ddbe ddbe ddbe -9228 ddbf ddbf ddbf * * 4345 8ea2c3c5,8ea2c3c5v 6686 e69a86 6686 00006686 ddbf ddbf ddbf ddbf ddbf ddbf ddbf -9229 ddc0 ddc0 ddc0 * * 4346 8ea2c3c6,8ea2c3c6v 668c e69a8c 668c 0000668c ddc0 ddc0 ddc0 ddc0 ddc0 ddc0 ddc0 -9230 ddc1 ddc1 ddc1 * * 4347 8ea2c3c7,8ea2c3c7v 6695 e69a95 6695 00006695 ddc1 ddc1 ddc1 ddc1 ddc1 ddc1 ddc1 -9231 ddc2 ddc2 ddc2 * * 4348 8ea2c3c8,8ea2c3c8v 6690 e69a90 6690 00006690 ddc2 ddc2 ddc2 ddc2 ddc2 ddc2 ddc2 -9232 ddc3 ddc3 ddc3 * * 4349 8ea2c3c9,8ea2c3c9v 668b e69a8b 668b 0000668b ddc3 ddc3 ddc3 ddc3 ddc3 ddc3 ddc3 -9233 ddc4 ddc4 ddc4 * * 434a 8ea2c3ca,8ea2c3cav 668a e69a8a 668a 0000668a ddc4 ddc4 ddc4 ddc4 ddc4 ddc4 ddc4 -9234 ddc5 ddc5 ddc5 * * 434b 8ea2c3cb,8ea2c3cbv 6699 e69a99 6699 00006699 ddc5 ddc5 ddc5 ddc5 ddc5 ddc5 ddc5 -9235 ddc6 ddc6 ddc6 * * 434c 8ea2c3cc,8ea2c3ccv 6694 e69a94 6694 00006694 ddc6 ddc6 ddc6 ddc6 ddc6 ddc6 ddc6 -9236 ddc7 ddc7 ddc7 * * 434d 8ea2c3cd,8ea2c3cdv 6678 e699b8 6678 00006678 ddc7 ddc7 ddc7 ddc7 ddc7 ddc7 ddc7 -9237 ddc8 ddc8 ddc8 * * 434e 8ea2c3ce,8ea2c3cev 6720 e69ca0 6720 00006720 ddc8 ddc8 ddc8 ddc8 ddc8 ddc8 ddc8 -9238 ddc9 ddc9 ddc9 * * 434f 8ea2c3cf,8ea2c3cfv 6966 e6a5a6 6966 00006966 ddc9 ddc9 ddc9 ddc9 ddc9 ddc9 ddc9 -9239 ddca ddca ddca * * 4350 8ea2c3d0,8ea2c3d0v 695f e6a59f 695f 0000695f ddca ddca ddca ddca ddca ddca ddca -9240 ddcb ddcb ddcb * * 4351 8ea2c3d1,8ea2c3d1v 6938 e6a4b8 6938 00006938 ddcb ddcb ddcb ddcb ddcb ddcb ddcb -9241 ddcc ddcc ddcc * * 4352 8ea2c3d2,8ea2c3d2v 694e e6a58e 694e 0000694e ddcc ddcc ddcc ddcc ddcc ddcc ddcc -9242 ddcd ddcd ddcd * * 4353 8ea2c3d3,8ea2c3d3v 6962 e6a5a2 6962 00006962 ddcd ddcd ddcd ddcd ddcd ddcd ddcd -9243 ddce ddce ddce * * 4354 8ea2c3d4,8ea2c3d4v 6971 e6a5b1 6971 00006971 ddce ddce ddce ddce ddce ddce ddce -9244 ddcf ddcf ddcf * * 4355 8ea2c3d5,8ea2c3d5v 693f e6a4bf 693f 0000693f ddcf ddcf ddcf ddcf ddcf ddcf ddcf -9245 ddd0 ddd0 ddd0 * * 4356 8ea2c3d6,8ea2c3d6v 6945 e6a585 6945 00006945 ddd0 ddd0 ddd0 ddd0 ddd0 ddd0 ddd0 -9246 ddd1 ddd1 ddd1 * * 4357 8ea2c3d7,8ea2c3d7v 696a e6a5aa 696a 0000696a ddd1 ddd1 ddd1 ddd1 ddd1 ddd1 ddd1 -9247 ddd2 ddd2 ddd2 * * 4358 8ea2c3d8,8ea2c3d8v 6939 e6a4b9 6939 00006939 ddd2 ddd2 ddd2 ddd2 ddd2 ddd2 ddd2 -9248 ddd3 ddd3 ddd3 * * 4359 8ea2c3d9,8ea2c3d9v 6942 e6a582 6942 00006942 ddd3 ddd3 ddd3 ddd3 ddd3 ddd3 ddd3 -9249 ddd4 ddd4 ddd4 * * 435a 8ea2c3da,8ea2c3dav 6957 e6a597 6957 00006957 ddd4 ddd4 ddd4 ddd4 ddd4 ddd4 ddd4 -9250 ddd5 ddd5 ddd5 * * 435b 8ea2c3db,8ea2c3dbv 6959 e6a599 6959 00006959 ddd5 ddd5 ddd5 ddd5 ddd5 ddd5 ddd5 -9251 ddd6 ddd6 ddd6 * * 435c 8ea2c3dc,8ea2c3dcv 697a e6a5ba 697a 0000697a ddd6 ddd6 ddd6 ddd6 ddd6 ddd6 ddd6 -9252 ddd7 ddd7 ddd7 * * 435d 8ea2c3dd,8ea2c3ddv 6948 e6a588 6948 00006948 ddd7 ddd7 ddd7 ddd7 ddd7 ddd7 ddd7 -9253 ddd8 ddd8 ddd8 * * 435e 8ea2c3de,8ea2c3dev 6949 e6a589 6949 00006949 ddd8 ddd8 ddd8 ddd8 ddd8 ddd8 ddd8 -9254 ddd9 ddd9 ddd9 * * 435f 8ea2c3df,8ea2c3dfv 6935 e6a4b5 6935 00006935 ddd9 ddd9 ddd9 ddd9 ddd9 ddd9 ddd9 -9255 ddda ddda ddda * * 4360 8ea2c3e0,8ea2c3e0v 696c e6a5ac 696c 0000696c ddda ddda ddda ddda ddda ddda ddda -9256 dddb dddb dddb * * 4361 8ea2c3e1,8ea2c3e1v 6933 e6a4b3 6933 00006933 dddb dddb dddb dddb dddb dddb dddb -9257 dddc dddc dddc * * 4362 8ea2c3e2,8ea2c3e2v 693d e6a4bd 693d 0000693d dddc dddc dddc dddc dddc dddc dddc -9258 dddd dddd dddd * * 4363 8ea2c3e3,8ea2c3e3v 6965 e6a5a5 6965 00006965 dddd dddd dddd dddd dddd dddd dddd -9259 ddde ddde ddde * * 4364 8ea2c3e4,8ea2c3e4v 68f0 e6a3b0 68f0 000068f0 ddde ddde ddde ddde ddde ddde ddde -9260 dddf dddf dddf * * 4365 8ea2c3e5,8ea2c3e5v 6978 e6a5b8 6978 00006978 dddf dddf dddf dddf dddf dddf dddf -9261 dde0 dde0 dde0 * * 4366 8ea2c3e6,8ea2c3e6v 6934 e6a4b4 6934 00006934 dde0 dde0 dde0 dde0 dde0 dde0 dde0 -9262 dde1 dde1 dde1 * * 4367 8ea2c3e7,8ea2c3e7v 6969 e6a5a9 6969 00006969 dde1 dde1 dde1 dde1 dde1 dde1 dde1 -9263 dde2 dde2 dde2 * * 4368 8ea2c3e8,8ea2c3e8v 6940 e6a580 6940 00006940 dde2 dde2 dde2 dde2 dde2 dde2 dde2 -9264 dde3 dde3 dde3 * * 4369 8ea2c3e9,8ea2c3e9v 696f e6a5af 696f 0000696f dde3 dde3 dde3 dde3 dde3 dde3 dde3 -9265 dde4 dde4 dde4 * * 436a 8ea2c3ea,8ea2c3eav 6944 e6a584 6944 00006944 dde4 dde4 dde4 dde4 dde4 dde4 dde4 -9266 dde5 dde5 dde5 * * 436b 8ea2c3eb,8ea2c3ebv 6976 e6a5b6 6976 00006976 dde5 dde5 dde5 dde5 dde5 dde5 dde5 -9267 dde6 dde6 dde6 * * 436c 8ea2c3ec,8ea2c3ecv 6958 e6a598 6958 00006958 dde6 dde6 dde6 dde6 dde6 dde6 dde6 -9268 dde7 dde7 dde7 * * 436d 8ea2c3ed,8ea2c3edv 6941 e6a581 6941 00006941 dde7 dde7 dde7 dde7 dde7 dde7 dde7 -9269 dde8 dde8 dde8 * * 436e 8ea2c3ee,8ea2c3eev 6974 e6a5b4 6974 00006974 dde8 dde8 dde8 dde8 dde8 dde8 dde8 -9270 dde9 dde9 dde9 * * 436f 8ea2c3ef,8ea2c3efv 694c e6a58c 694c 0000694c dde9 dde9 dde9 dde9 dde9 dde9 dde9 -9271 ddea ddea ddea * * 4370 8ea2c3f0,8ea2c3f0v 693b e6a4bb 693b 0000693b ddea ddea ddea ddea ddea ddea ddea -9272 ddeb ddeb ddeb * * 4371 8ea2c3f1,8ea2c3f1v 694b e6a58b 694b 0000694b ddeb ddeb ddeb ddeb ddeb ddeb ddeb -9273 ddec ddec ddec * * 4372 8ea2c3f2,8ea2c3f2v 6937 e6a4b7 6937 00006937 ddec ddec ddec ddec ddec ddec ddec -9274 dded dded dded * * 4373 8ea2c3f3,8ea2c3f3v 695c e6a59c 695c 0000695c dded dded dded dded dded dded dded -9275 ddee ddee ddee * * 4374 8ea2c3f4,8ea2c3f4v 694f e6a58f 694f 0000694f ddee ddee ddee ddee ddee ddee ddee -9276 ddef ddef ddef * * 4375 8ea2c3f5,8ea2c3f5v 6951 e6a591 6951 00006951 ddef ddef ddef ddef ddef ddef ddef -9277 ddf0 ddf0 ddf0 * * 4376 8ea2c3f6,8ea2c3f6v 6932 e6a4b2 6932 00006932 ddf0 ddf0 ddf0 ddf0 ddf0 ddf0 ddf0 -9278 ddf1 ddf1 ddf1 * * 4377 8ea2c3f7,8ea2c3f7v 6952 e6a592 6952 00006952 ddf1 ddf1 ddf1 ddf1 ddf1 ddf1 ddf1 -9279 ddf2 ddf2 ddf2 * * 4378 8ea2c3f8,8ea2c3f8v 692f e6a4af 692f 0000692f ddf2 ddf2 ddf2 ddf2 ddf2 ddf2 ddf2 -9280 ddf3 ddf3 ddf3 * * 4379 8ea2c3f9,8ea2c3f9v 697b e6a5bb 697b 0000697b ddf3 ddf3 ddf3 ddf3 ddf3 ddf3 ddf3 -9281 ddf4 ddf4 ddf4 * * 437a 8ea2c3fa,8ea2c3fav 693c e6a4bc 693c 0000693c ddf4 ddf4 ddf4 ddf4 ddf4 ddf4 ddf4 -9282 ddf5 ddf5 ddf5 * * 437b 8ea2c3fb,8ea2c3fbv 6b46 e6ad86 6b46 00006b46 ddf5 ddf5 ddf5 ddf5 ddf5 ddf5 ddf5 -9283 ddf6 ddf6 ddf6 * * 437c 8ea2c3fc,8ea2c3fcv 6b45 e6ad85 6b45 00006b45 ddf6 ddf6 ddf6 ddf6 ddf6 ddf6 ddf6 -9284 ddf7 ddf7 ddf7 * * 437d 8ea2c3fd,8ea2c3fdv 6b43 e6ad83 6b43 00006b43 ddf7 ddf7 ddf7 ddf7 ddf7 ddf7 ddf7 -9285 ddf8 ddf8 ddf8 * * 437e 8ea2c3fe,8ea2c3fev 6b42 e6ad82 6b42 00006b42 ddf8 ddf8 ddf8 ddf8 ddf8 ddf8 ddf8 -9286 ddf9 ddf9 ddf9 * * 4421 8ea2c4a1,8ea2c4a1v 6b48 e6ad88 6b48 00006b48 ddf9 ddf9 ddf9 ddf9 ddf9 ddf9 ddf9 -9287 ddfa ddfa ddfa * * 4422 8ea2c4a2,8ea2c4a2v 6b41 e6ad81 6b41 00006b41 ddfa ddfa ddfa ddfa ddfa ddfa ddfa -9288 ddfb ddfb ddfb * * 4423 8ea2c4a3,8ea2c4a3v 6b9b e6ae9b 6b9b 00006b9b ddfb ddfb ddfb ddfb ddfb ddfb ddfb -9289 ddfd ddfd ddfd * * 4424 8ea2c4a4,8ea2c4a4v 6bfb e6afbb 6bfb 00006bfb ddfd ddfd ddfd ddfd ddfd ddfd ddfd -9290 ddfe ddfe ddfe * * 4425 8ea2c4a5,8ea2c4a5v 6bfc e6afbc 6bfc 00006bfc ddfe ddfe ddfe ddfe ddfe ddfe ddfe -9291 de40 de40 de40 * * 4426 8ea2c4a6,8ea2c4a6v 6bf9 e6afb9 6bf9 00006bf9 de40 de40 de40 de40 de40 de40 de40 -9292 de41 de41 de41 * * 4427 8ea2c4a7,8ea2c4a7v 6bf7 e6afb7 6bf7 00006bf7 de41 de41 de41 de41 de41 de41 de41 -9293 de42 de42 de42 * * 4428 8ea2c4a8,8ea2c4a8v 6bf8 e6afb8 6bf8 00006bf8 de42 de42 de42 de42 de42 de42 de42 -9294 de43 de43 de43 * * 4429 8ea2c4a9,8ea2c4a9v 6e9b e6ba9b 6e9b 00006e9b de43 de43 de43 de43 de43 de43 de43 -9295 de44 de44 de44 * * 442a 8ea2c4aa,8ea2c4aav 6ed6 e6bb96 6ed6 00006ed6 de44 de44 de44 de44 de44 de44 de44 -9296 de45 de45 de45 * * 442b 8ea2c4ab,8ea2c4abv 6ec8 e6bb88 6ec8 00006ec8 de45 de45 de45 de45 de45 de45 de45 -9297 de46 de46 de46 * * 442c 8ea2c4ac,8ea2c4acv 6e8f e6ba8f 6e8f 00006e8f de46 de46 de46 de46 de46 de46 de46 -9298 de47 de47 de47 * * 442d 8ea2c4ad,8ea2c4adv 6ec0 e6bb80 6ec0 00006ec0 de47 de47 de47 de47 de47 de47 de47 -9299 de48 de48 de48 * * 442e 8ea2c4ae,8ea2c4aev 6e9f e6ba9f 6e9f 00006e9f de48 de48 de48 de48 de48 de48 de48 -9300 de49 de49 de49 * * 442f 8ea2c4af,8ea2c4afv 6e93 e6ba93 6e93 00006e93 de49 de49 de49 de49 de49 de49 de49 -9301 de4a de4a de4a * * 4430 8ea2c4b0,8ea2c4b0v 6e94 e6ba94 6e94 00006e94 de4a de4a de4a de4a de4a de4a de4a -9302 de4b de4b de4b * * 4431 8ea2c4b1,8ea2c4b1v 6ea0 e6baa0 6ea0 00006ea0 de4b de4b de4b de4b de4b de4b de4b -9303 de4c de4c de4c * * 4432 8ea2c4b2,8ea2c4b2v 6eb1 e6bab1 6eb1 00006eb1 de4c de4c de4c de4c de4c de4c de4c -9304 de4d de4d de4d * * 4433 8ea2c4b3,8ea2c4b3v 6eb9 e6bab9 6eb9 00006eb9 de4d de4d de4d de4d de4d de4d de4d -9305 de4e de4e de4e * * 4434 8ea2c4b4,8ea2c4b4v 6ec6 e6bb86 6ec6 00006ec6 de4e de4e de4e de4e de4e de4e de4e -9306 de4f de4f de4f * * 4435 8ea2c4b5,8ea2c4b5v 6ed2 e6bb92 6ed2 00006ed2 de4f de4f de4f de4f de4f de4f de4f -9307 de50 de50 de50 * * 4436 8ea2c4b6,8ea2c4b6v 6ebd e6babd 6ebd 00006ebd de50 de50 de50 de50 de50 de50 de50 -9308 de51 de51 de51 * * 4437 8ea2c4b7,8ea2c4b7v 6ec1 e6bb81 6ec1 00006ec1 de51 de51 de51 de51 de51 de51 de51 -9309 de52 de52 de52 * * 4438 8ea2c4b8,8ea2c4b8v 6e9e e6ba9e 6e9e 00006e9e de52 de52 de52 de52 de52 de52 de52 -9310 de53 de53 de53 * * 4439 8ea2c4b9,8ea2c4b9v 6ec9 e6bb89 6ec9 00006ec9 de53 de53 de53 de53 de53 de53 de53 -9311 de54 de54 de54 * * 443a 8ea2c4ba,8ea2c4bav 6eb7 e6bab7 6eb7 00006eb7 de54 de54 de54 de54 de54 de54 de54 -9312 de55 de55 de55 * * 443b 8ea2c4bb,8ea2c4bbv 6eb0 e6bab0 6eb0 00006eb0 de55 de55 de55 de55 de55 de55 de55 -9313 de56 de56 de56 * * 443c 8ea2c4bc,8ea2c4bcv 6ecd e6bb8d 6ecd 00006ecd de56 de56 de56 de56 de56 de56 de56 -9314 de57 de57 de57 * * 443d 8ea2c4bd,8ea2c4bdv 6ea6 e6baa6 6ea6 00006ea6 de57 de57 de57 de57 de57 de57 de57 -9315 de58 de58 de58 * * 443e 8ea2c4be,8ea2c4bev 6ecf e6bb8f 6ecf 00006ecf de58 de58 de58 de58 de58 de58 de58 -9316 de59 de59 de59 * * 443f 8ea2c4bf,8ea2c4bfv 6eb2 e6bab2 6eb2 00006eb2 de59 de59 de59 de59 de59 de59 de59 -9317 de5a de5a de5a * * 4440 8ea2c4c0,8ea2c4c0v 6ebe e6babe 6ebe 00006ebe de5a de5a de5a de5a de5a de5a de5a -9318 de5b de5b de5b * * 4441 8ea2c4c1,8ea2c4c1v 6ec3 e6bb83 6ec3 00006ec3 de5b de5b de5b de5b de5b de5b de5b -9319 de5c de5c de5c * * 4442 8ea2c4c2,8ea2c4c2v 6edc e6bb9c 6edc 00006edc de5c de5c de5c de5c de5c de5c de5c -9320 de5d de5d de5d * * 4443 8ea2c4c3,8ea2c4c3v 6ed8 e6bb98 6ed8 00006ed8 de5d de5d de5d de5d de5d de5d de5d -9321 de5e de5e de5e * * 4444 8ea2c4c4,8ea2c4c4v 6e99 e6ba99 6e99 00006e99 de5e de5e de5e de5e de5e de5e de5e -9322 de5f de5f de5f * * 4445 8ea2c4c5,8ea2c4c5v 6e92 e6ba92 6e92 00006e92 de5f de5f de5f de5f de5f de5f de5f -9323 de60 de60 de60 * * 4446 8ea2c4c6,8ea2c4c6v 6e8e e6ba8e 6e8e 00006e8e de60 de60 de60 de60 de60 de60 de60 -9324 de61 de61 de61 * * 4447 8ea2c4c7,8ea2c4c7v 6e8d e6ba8d 6e8d 00006e8d de61 de61 de61 de61 de61 de61 de61 -9325 de62 de62 de62 * * 4448 8ea2c4c8,8ea2c4c8v 6ea4 e6baa4 6ea4 00006ea4 de62 de62 de62 de62 de62 de62 de62 -9326 de63 de63 de63 * * 4449 8ea2c4c9,8ea2c4c9v 6ea1 e6baa1 6ea1 00006ea1 de63 de63 de63 de63 de63 de63 de63 -9327 de64 de64 de64 * * 444a 8ea2c4ca,8ea2c4cav 6ebf e6babf 6ebf 00006ebf de64 de64 de64 de64 de64 de64 de64 -9328 de65 de65 de65 * * 444b 8ea2c4cb,8ea2c4cbv 6eb3 e6bab3 6eb3 00006eb3 de65 de65 de65 de65 de65 de65 de65 -9329 de66 de66 de66 * * 444c 8ea2c4cc,8ea2c4ccv 6ed0 e6bb90 6ed0 00006ed0 de66 de66 de66 de66 de66 de66 de66 -9330 de67 de67 de67 * * 444d 8ea2c4cd,8ea2c4cdv 6eca e6bb8a 6eca 00006eca de67 de67 de67 de67 de67 de67 de67 -9331 de68 de68 de68 * * 444e 8ea2c4ce,8ea2c4cev 6e97 e6ba97 6e97 00006e97 de68 de68 de68 de68 de68 de68 de68 -9332 de69 de69 de69 * * 444f 8ea2c4cf,8ea2c4cfv 6eae e6baae 6eae 00006eae de69 de69 de69 de69 de69 de69 de69 -9333 de6a de6a de6a * * 4450 8ea2c4d0,8ea2c4d0v 6ea3 e6baa3 6ea3 00006ea3 de6a de6a de6a de6a de6a de6a de6a -9334 de6b de6b de6b * * 4451 8ea2c4d1,8ea2c4d1v 7147 e78587 7147 00007147 de6b de6b de6b de6b de6b de6b de6b -9335 de6c de6c de6c * * 4452 8ea2c4d2,8ea2c4d2v 7154 e78594 7154 00007154 de6c de6c de6c de6c de6c de6c de6c -9336 de6d de6d de6d * * 4453 8ea2c4d3,8ea2c4d3v 7152 e78592 7152 00007152 de6d de6d de6d de6d de6d de6d de6d -9337 de6e de6e de6e * * 4454 8ea2c4d4,8ea2c4d4v 7163 e785a3 7163 00007163 de6e de6e de6e de6e de6e de6e de6e -9338 de6f de6f de6f * * 4455 8ea2c4d5,8ea2c4d5v 7160 e785a0 7160 00007160 de6f de6f de6f de6f de6f de6f de6f -9339 de70 de70 de70 * * 4456 8ea2c4d6,8ea2c4d6v 7141 e78581 7141 00007141 de70 de70 de70 de70 de70 de70 de70 -9340 de71 de71 de71 * * 4457 8ea2c4d7,8ea2c4d7v 715d e7859d 715d 0000715d de71 de71 de71 de71 de71 de71 de71 -9341 de72 de72 de72 * * 4458 8ea2c4d8,8ea2c4d8v 7162 e785a2,eeba98 7162,ee98 00007162,0000ee98 a0df,de72 de72 de72 de72 de72 de72 a0df,de72 -9342 de73 de73 de73 * * 4459 8ea2c4d9,8ea2c4d9v 7172 e785b2 7172 00007172 de73 de73 de73 de73 de73 de73 de73 -9343 de74 de74 de74 * * 445a 8ea2c4da,8ea2c4dav 7178 e785b8 7178 00007178 de74 de74 de74 de74 de74 de74 de74 -9344 de75 de75 de75 * * 445b 8ea2c4db,8ea2c4dbv 716a e785aa 716a 0000716a de75 de75 de75 de75 de75 de75 de75 -9345 de76 de76 de76 * * 445c 8ea2c4dc,8ea2c4dcv 7161 e785a1 7161 00007161 de76 de76 de76 de76 de76 de76 de76 -9346 de77 de77 de77 * * 445d 8ea2c4dd,8ea2c4ddv 7142 e78582 7142 00007142 de77 de77 de77 de77 de77 de77 de77 -9347 de78 de78 de78 * * 445e 8ea2c4de,8ea2c4dev 7158 e78598 7158 00007158 de78 de78 de78 de78 de78 de78 de78 -9348 de79 de79 de79 * * 445f 8ea2c4df,8ea2c4dfv 7143 e78583 7143 00007143 de79 de79 de79 de79 de79 de79 de79 -9349 de7a de7a de7a * * 4460 8ea2c4e0,8ea2c4e0v 714b e7858b 714b 0000714b de7a de7a de7a de7a de7a de7a de7a -9350 de7b de7b de7b * * 4461 8ea2c4e1,8ea2c4e1v 7170 e785b0 7170 00007170 de7b de7b de7b de7b de7b de7b de7b -9351 de7c de7c de7c * * 4462 8ea2c4e2,8ea2c4e2v 715f e7859f 715f 0000715f de7c de7c de7c de7c de7c de7c de7c -9352 de7d de7d de7d * * 4463 8ea2c4e3,8ea2c4e3v 7150 e78590 7150 00007150 de7d de7d de7d de7d de7d de7d de7d -9353 de7e de7e de7e * * 4464 8ea2c4e4,8ea2c4e4v 7153 e78593 7153 00007153 de7e de7e de7e de7e de7e de7e de7e -9354 dea1 dea1 dea1 * * 4465 8ea2c4e5,8ea2c4e5v 7144 e78584 7144 00007144 dea1 dea1 dea1 dea1 dea1 dea1 dea1 -9355 dea2 dea2 dea2 * * 4466 8ea2c4e6,8ea2c4e6v 714d e7858d 714d 0000714d dea2 dea2 dea2 dea2 dea2 dea2 dea2 -9356 dea3 dea3 dea3 * * 4467 8ea2c4e7,8ea2c4e7v 715a e7859a 715a 0000715a dea3 dea3 dea3 dea3 dea3 dea3 dea3 -9357 dea4 dea4 dea4 * * 4468 8ea2c4e8,8ea2c4e8v 724f e7898f 724f 0000724f dea4 dea4 dea4 dea4 dea4 dea4 dea4 -9358 dea5 dea5 dea5 * * 4469 8ea2c4e9,8ea2c4e9v 728d e78a8d 728d 0000728d dea5 dea5 dea5 dea5 dea5 dea5 dea5 -9359 dea6 dea6 dea6 * * 446a 8ea2c4ea,8ea2c4eav 728c e78a8c 728c 0000728c dea6 dea6 dea6 dea6 dea6 dea6 dea6 -9360 dea7 dea7 dea7 * * 446b 8ea2c4eb,8ea2c4ebv 7291 e78a91 7291 00007291 dea7 dea7 dea7 dea7 dea7 dea7 dea7 -9361 dea8 dea8 dea8 * * 446c 8ea2c4ec,8ea2c4ecv 7290 e78a90 7290 00007290 dea8 dea8 dea8 dea8 dea8 dea8 dea8 -9362 dea9 dea9 dea9 * * 446d 8ea2c4ed,8ea2c4edv 728e e78a8e 728e 0000728e dea9 dea9 dea9 dea9 dea9 dea9 dea9 -9363 deaa deaa deaa * * 446e 8ea2c4ee,8ea2c4eev 733c e78cbc 733c 0000733c deaa deaa deaa deaa deaa deaa deaa -9364 deab deab deab * * 446f 8ea2c4ef,8ea2c4efv 7342 e78d82 7342 00007342 deab deab deab deab deab deab deab -9365 deac deac deac * * 4470 8ea2c4f0,8ea2c4f0v 733b e78cbb 733b 0000733b deac deac deac deac deac deac deac -9366 dead dead dead * * 4471 8ea2c4f1,8ea2c4f1v 733a e78cba 733a 0000733a dead dead dead dead dead dead dead -9367 deae deae deae * * 4472 8ea2c4f2,8ea2c4f2v 7340 e78d80 7340 00007340 deae deae deae deae deae deae deae -9368 deaf deaf deaf * * 4473 8ea2c4f3,8ea2c4f3v 734a e78d8a 734a 0000734a deaf deaf deaf deaf deaf deaf deaf -9369 deb0 deb0 deb0 * * 4474 8ea2c4f4,8ea2c4f4v 7349 e78d89 7349 00007349 deb0 deb0 deb0 deb0 deb0 deb0 deb0 -9370 deb1 deb1 deb1 * * 4475 8ea2c4f5,8ea2c4f5v 7444 e79184 7444 00007444 deb1 deb1 deb1 deb1 deb1 deb1 deb1 -9371 deb2 deb2 deb2 * * 4476 8ea2c4f6,8ea2c4f6v 744a e7918a 744a 0000744a deb2 deb2 deb2 deb2 deb2 deb2 deb2 -9372 deb3 deb3 deb3 * * 4477 8ea2c4f7,8ea2c4f7v 744b e7918b 744b 0000744b deb3 deb3 deb3 deb3 deb3 deb3 deb3 -9373 deb4 deb4 deb4 * * 4478 8ea2c4f8,8ea2c4f8v 7452 e79192 7452 00007452 deb4 deb4 deb4 deb4 deb4 deb4 deb4 -9374 deb5 deb5 deb5 * * 4479 8ea2c4f9,8ea2c4f9v 7451 e79191 7451 00007451 deb5 deb5 deb5 deb5 deb5 deb5 deb5 -9375 deb6 deb6 deb6 * * 447a 8ea2c4fa,8ea2c4fav 7457 e79197 7457 00007457 deb6 deb6 deb6 deb6 deb6 deb6 deb6 -9376 deb7 deb7 deb7 * * 447b 8ea2c4fb,8ea2c4fbv 7440 e79180 7440 00007440 deb7 deb7 deb7 deb7 deb7 deb7 deb7 -9377 deb8 deb8 deb8 * * 447c 8ea2c4fc,8ea2c4fcv 744f e7918f 744f 0000744f deb8 deb8 deb8 deb8 deb8 deb8 deb8 -9378 deb9 deb9 deb9 * * 447d 8ea2c4fd,8ea2c4fdv 7450 e79190 7450 00007450 deb9 deb9 deb9 deb9 deb9 deb9 deb9 -9379 deba deba deba * * 447e 8ea2c4fe,8ea2c4fev 744e e7918e 744e 0000744e deba deba deba deba deba deba deba -9380 debb debb debb * * 4521 8ea2c5a1,8ea2c5a1v 7442 e79182 7442 00007442 debb debb debb debb debb debb debb -9381 debc debc debc * * 4522 8ea2c5a2,8ea2c5a2v 7446 e79186 7446 00007446 debc debc debc debc debc debc debc -9382 debd debd debd * * 4523 8ea2c5a3,8ea2c5a3v 744d e7918d 744d 0000744d debd debd debd debd debd debd debd -9383 debe debe debe * * 4524 8ea2c5a4,8ea2c5a4v 7454 e79194 7454 00007454 debe debe debe debe debe debe debe -9384 debf debf debf * * 4525 8ea2c5a5,8ea2c5a5v 74e1 e793a1 74e1 000074e1 debf debf debf debf debf debf debf -9385 dec0 dec0 dec0 * * 4526 8ea2c5a6,8ea2c5a6v 74ff e793bf 74ff 000074ff dec0 dec0 dec0 dec0 dec0 dec0 dec0 -9386 dec1 dec1 dec1 * * 4527 8ea2c5a7,8ea2c5a7v 74fe e793be 74fe 000074fe dec1 dec1 dec1 dec1 dec1 dec1 dec1 -9387 dec2 dec2 dec2 * * 4528 8ea2c5a8,8ea2c5a8v 74fd e793bd 74fd 000074fd dec2 dec2 dec2 dec2 dec2 dec2 dec2 -9388 dec3 dec3 dec3 * * 4529 8ea2c5a9,8ea2c5a9v 751d e7949d 751d 0000751d dec3 dec3 dec3 dec3 dec3 dec3 dec3 -9389 dec4 dec4 dec4 * * 452a 8ea2c5aa,8ea2c5aav 7579 e795b9 7579 00007579 dec4 dec4 dec4 dec4 dec4 dec4 dec4 -9390 dec5 dec5 dec5 * * 452b 8ea2c5ab,8ea2c5abv 7577 e795b7 7577 00007577 dec5 dec5 dec5 dec5 dec5 dec5 dec5 -9391 dec6 dec6 dec6 * * 452c 8ea2c5ac,8ea2c5acv 6983 e6a683 6983 00006983 dec6 dec6 dec6 dec6 dec6 dec6 dec6 -9392 dec7 dec7 dec7 * * 452d 8ea2c5ad,8ea2c5adv 75ef e797af 75ef 000075ef dec7 dec7 dec7 dec7 dec7 dec7 dec7 -9393 dec8 dec8 dec8 * * 452e 8ea2c5ae,8ea2c5aev 760f e7988f 760f 0000760f dec8 dec8 dec8 dec8 dec8 dec8 dec8 -9394 dec9 dec9 dec9 * * 452f 8ea2c5af,8ea2c5afv 7603 e79883 7603 00007603 dec9 dec9 dec9 dec9 dec9 dec9 dec9 -9395 deca deca deca * * 4530 8ea2c5b0,8ea2c5b0v 75f7 e797b7 75f7 000075f7 deca deca deca deca deca deca deca -9396 decb decb decb * * 4531 8ea2c5b1,8ea2c5b1v 75fe e797be 75fe 000075fe decb decb decb decb decb decb decb -9397 decc decc decc * * 4532 8ea2c5b2,8ea2c5b2v 75fc e797bc 75fc 000075fc decc decc decc decc decc decc decc -9398 decd decd decd * * 4533 8ea2c5b3,8ea2c5b3v 75f9 e797b9,eeb5ae 75f9,ed6e 000075f9,0000ed6e 9eef,decd decd decd decd decd decd 9eef,decd -9399 dece dece dece * * 4534 8ea2c5b4,8ea2c5b4v 75f8 e797b8 75f8 000075f8 dece dece dece dece dece dece dece -9400 decf decf decf * * 4535 8ea2c5b5,8ea2c5b5v 7610 e79890 7610 00007610 decf decf decf decf decf decf decf -9401 ded0 ded0 ded0 * * 4536 8ea2c5b6,8ea2c5b6v 75fb e797bb 75fb 000075fb ded0 ded0 ded0 ded0 ded0 ded0 ded0 -9402 ded1 ded1 ded1 * * 4537 8ea2c5b7,8ea2c5b7v 75f6 e797b6 75f6 000075f6 ded1 ded1 ded1 ded1 ded1 ded1 ded1 -9403 ded2 ded2 ded2 * * 4538 8ea2c5b8,8ea2c5b8v 75ed e797ad 75ed 000075ed ded2 ded2 ded2 ded2 ded2 ded2 ded2 -9404 ded3 ded3 ded3 * * 4539 8ea2c5b9,8ea2c5b9v 75f5 e797b5 75f5 000075f5 ded3 ded3 ded3 ded3 ded3 ded3 ded3 -9405 ded4 ded4 ded4 * * 453a 8ea2c5ba,8ea2c5bav 75fd e797bd 75fd 000075fd ded4 ded4 ded4 ded4 ded4 ded4 ded4 -9406 ded5 ded5 ded5 * * 453b 8ea2c5bb,8ea2c5bbv 7699 e79a99 7699 00007699 ded5 ded5 ded5 ded5 ded5 ded5 ded5 -9407 ded6 ded6 ded6 * * 453c 8ea2c5bc,8ea2c5bcv 76b5 e79ab5 76b5 000076b5 ded6 ded6 ded6 ded6 ded6 ded6 ded6 -9408 ded7 ded7 ded7 * * 453d 8ea2c5bd,8ea2c5bdv 76dd e79b9d 76dd 000076dd ded7 ded7 ded7 ded7 ded7 ded7 ded7 -9409 ded8 ded8 ded8 * * 453e 8ea2c5be,8ea2c5bev 7755 e79d95 7755 00007755 ded8 ded8 ded8 ded8 ded8 ded8 ded8 -9410 ded9 ded9 ded9 * * 453f 8ea2c5bf,8ea2c5bfv 775f e79d9f 775f 0000775f ded9 ded9 ded9 ded9 ded9 ded9 ded9 -9411 deda deda deda * * 4540 8ea2c5c0,8ea2c5c0v 7760 e79da0 7760 00007760 deda deda deda deda deda deda deda -9412 dedb dedb dedb * * 4541 8ea2c5c1,8ea2c5c1v 7752 e79d92 7752 00007752 dedb dedb dedb dedb dedb dedb dedb -9413 dedc dedc dedc * * 4542 8ea2c5c2,8ea2c5c2v 7756 e79d96 7756 00007756 dedc dedc dedc dedc dedc dedc dedc -9414 dedd dedd dedd * * 4543 8ea2c5c3,8ea2c5c3v 775a e79d9a 775a 0000775a dedd dedd dedd dedd dedd dedd dedd -9415 dede dede dede * * 4544 8ea2c5c4,8ea2c5c4v 7769 e79da9 7769 00007769 dede dede dede dede dede dede dede -9416 dedf dedf dedf * * 4545 8ea2c5c5,8ea2c5c5v 7767 e79da7 7767 00007767 dedf dedf dedf dedf dedf dedf dedf -9417 dee0 dee0 dee0 * * 4546 8ea2c5c6,8ea2c5c6v 7754 e79d94 7754 00007754 dee0 dee0 dee0 dee0 dee0 dee0 dee0 -9418 dee1 dee1 dee1 * * 4547 8ea2c5c7,8ea2c5c7v 7759 e79d99 7759 00007759 dee1 dee1 dee1 dee1 dee1 dee1 dee1 -9419 dee2 dee2 dee2 * * 4548 8ea2c5c8,8ea2c5c8v 776d e79dad 776d 0000776d dee2 dee2 dee2 dee2 dee2 dee2 dee2 -9420 dee3 dee3 dee3 * * 4549 8ea2c5c9,8ea2c5c9v 77e0 e79fa0 77e0 000077e0 dee3 dee3 dee3 dee3 dee3 dee3 dee3 -9421 dee4 dee4 dee4 * * 454a 8ea2c5ca,8ea2c5cav 7887 e7a287 7887 00007887 dee4 dee4 dee4 dee4 dee4 dee4 dee4 -9422 dee5 dee5 dee5 * * 454b 8ea2c5cb,8ea2c5cbv 789a e7a29a 789a 0000789a dee5 dee5 dee5 dee5 dee5 dee5 dee5 -9423 dee6 dee6 dee6 * * 454c 8ea2c5cc,8ea2c5ccv 7894 e7a294 7894 00007894 dee6 dee6 dee6 dee6 dee6 dee6 dee6 -9424 dee7 dee7 dee7 * * 454d 8ea2c5cd,8ea2c5cdv 788f e7a28f 788f 0000788f dee7 dee7 dee7 dee7 dee7 dee7 dee7 -9425 dee8 dee8 dee8 * * 454e 8ea2c5ce,8ea2c5cev 7884 e7a284 7884 00007884 dee8 dee8 dee8 dee8 dee8 dee8 dee8 -9426 dee9 dee9 dee9 * * 454f 8ea2c5cf,8ea2c5cfv 7895 e7a295 7895 00007895 dee9 dee9 dee9 dee9 dee9 dee9 dee9 -9427 deea deea deea * * 4550 8ea2c5d0,8ea2c5d0v 7885 e7a285 7885 00007885 deea deea deea deea deea deea deea -9428 deeb deeb deeb * * 4551 8ea2c5d1,8ea2c5d1v 7886 e7a286 7886 00007886 deeb deeb deeb deeb deeb deeb deeb -9429 deec deec deec * * 4552 8ea2c5d2,8ea2c5d2v 78a1 e7a2a1 78a1 000078a1 deec deec deec deec deec deec deec -9430 deed deed deed * * 4553 8ea2c5d3,8ea2c5d3v 7883 e7a283 7883 00007883 deed deed deed deed deed deed deed -9431 deee deee deee * * 4554 8ea2c5d4,8ea2c5d4v 7879 e7a1b9 7879 00007879 deee deee deee deee deee deee deee -9432 deef deef deef * * 4555 8ea2c5d5,8ea2c5d5v 7899 e7a299 7899 00007899 deef deef deef deef deef deef deef -9433 def0 def0 def0 * * 4556 8ea2c5d6,8ea2c5d6v 7880 e7a280 7880 00007880 def0 def0 def0 def0 def0 def0 def0 -9434 def1 def1 def1 * * 4557 8ea2c5d7,8ea2c5d7v 7896 e7a296 7896 00007896 def1 def1 def1 def1 def1 def1 def1 -9435 def2 def2 def2 * * 4558 8ea2c5d8,8ea2c5d8v 787b e7a1bb 787b 0000787b def2 def2 def2 def2 def2 def2 def2 -9436 def3 def3 def3 * * 4559 8ea2c5d9,8ea2c5d9v 797c e7a5bc 797c 0000797c def3 def3 def3 def3 def3 def3 def3 -9437 def4 def4 def4 * * 455a 8ea2c5da,8ea2c5dav 7982 e7a682 7982 00007982 def4 def4 def4 def4 def4 def4 def4 -9438 def5 def5 def5 * * 455b 8ea2c5db,8ea2c5dbv 797d e7a5bd 797d 0000797d def5 def5 def5 def5 def5 def5 def5 -9439 def6 def6 def6 * * 455c 8ea2c5dc,8ea2c5dcv 7979 e7a5b9 7979 00007979 def6 def6 def6 def6 def6 def6 def6 -9440 def7 def7 def7 * * 455d 8ea2c5dd,8ea2c5ddv 7a11 e7a891 7a11 00007a11 def7 def7 def7 def7 def7 def7 def7 -9441 def8 def8 def8 * * 455e 8ea2c5de,8ea2c5dev 7a18 e7a898 7a18 00007a18 def8 def8 def8 def8 def8 def8 def8 -9442 def9 def9 def9 * * 455f 8ea2c5df,8ea2c5dfv 7a19 e7a899 7a19 00007a19 def9 def9 def9 def9 def9 def9 def9 -9443 defa defa defa * * 4560 8ea2c5e0,8ea2c5e0v 7a12 e7a892 7a12 00007a12 defa defa defa defa defa defa defa -9444 defb defb defb * * 4561 8ea2c5e1,8ea2c5e1v 7a17 e7a897 7a17 00007a17 defb defb defb defb defb defb defb -9445 defc defc defc * * 4562 8ea2c5e2,8ea2c5e2v 7a15 e7a895 7a15 00007a15 defc defc defc defc defc defc defc -9446 defd defd defd * * 4563 8ea2c5e3,8ea2c5e3v 7a22 e7a8a2 7a22 00007a22 defd defd defd defd defd defd defd -9447 defe defe defe * * 4564 8ea2c5e4,8ea2c5e4v 7a13 e7a893 7a13 00007a13 defe defe defe defe defe defe defe -9448 df40 df40 df40 * * 4565 8ea2c5e5,8ea2c5e5v 7a1b e7a89b 7a1b 00007a1b df40 df40 df40 df40 df40 df40 df40 -9449 df41 df41 df41 * * 4566 8ea2c5e6,8ea2c5e6v 7a10 e7a890 7a10 00007a10 df41 df41 df41 df41 df41 df41 df41 -9450 df42 df42 df42 * * 4567 8ea2c5e7,8ea2c5e7v 7aa3 e7aaa3 7aa3 00007aa3 df42 df42 df42 df42 df42 df42 df42 -9451 df43 df43 df43 * * 4568 8ea2c5e8,8ea2c5e8v 7aa2 e7aaa2 7aa2 00007aa2 df43 df43 df43 df43 df43 df43 df43 -9452 df44 df44 df44 * * 4569 8ea2c5e9,8ea2c5e9v 7a9e e7aa9e 7a9e 00007a9e df44 df44 df44 df44 df44 df44 df44 -9453 df45 df45 df45 * * 456a 8ea2c5ea,8ea2c5eav 7aeb e7abab 7aeb 00007aeb df45 df45 df45 df45 df45 df45 df45 -9454 df46 df46 df46 * * 456b 8ea2c5eb,8ea2c5ebv 7b66 e7ada6 7b66 00007b66 df46 df46 df46 df46 df46 df46 df46 -9455 df47 df47 df47 * * 456c 8ea2c5ec,8ea2c5ecv 7b64 e7ada4 7b64 00007b64 df47 df47 df47 df47 df47 df47 df47 -9456 df48 df48 df48 * * 456d 8ea2c5ed,8ea2c5edv 7b6d e7adad 7b6d 00007b6d df48 df48 df48 df48 df48 df48 df48 -9457 df49 df49 df49 * * 456e 8ea2c5ee,8ea2c5eev 7b74 e7adb4 7b74 00007b74 df49 df49 df49 df49 df49 df49 df49 -9458 df4a df4a df4a * * 456f 8ea2c5ef,8ea2c5efv 7b69 e7ada9 7b69 00007b69 df4a df4a df4a df4a df4a df4a df4a -9459 df4b df4b df4b * * 4570 8ea2c5f0,8ea2c5f0v 7b72 e7adb2 7b72 00007b72 df4b df4b df4b df4b df4b df4b df4b -9460 df4c df4c df4c * * 4571 8ea2c5f1,8ea2c5f1v 7b65 e7ada5 7b65 00007b65 df4c df4c df4c df4c df4c df4c df4c -9461 df4d df4d df4d * * 4572 8ea2c5f2,8ea2c5f2v 7b73 e7adb3 7b73 00007b73 df4d df4d df4d df4d df4d df4d df4d -9462 df4e df4e df4e * * 4573 8ea2c5f3,8ea2c5f3v 7b71 e7adb1 7b71 00007b71 df4e df4e df4e df4e df4e df4e df4e -9463 df4f df4f df4f * * 4574 8ea2c5f4,8ea2c5f4v 7b70 e7adb0 7b70 00007b70 df4f df4f df4f df4f df4f df4f df4f -9464 df50 df50 df50 * * 4575 8ea2c5f5,8ea2c5f5v 7b61 e7ada1 7b61 00007b61 df50 df50 df50 df50 df50 df50 df50 -9465 df51 df51 df51 * * 4576 8ea2c5f6,8ea2c5f6v 7b78 e7adb8 7b78 00007b78 df51 df51 df51 df51 df51 df51 df51 -9466 df52 df52 df52 * * 4577 8ea2c5f7,8ea2c5f7v 7b76 e7adb6 7b76 00007b76 df52 df52 df52 df52 df52 df52 df52 -9467 df53 df53 df53 * * 4578 8ea2c5f8,8ea2c5f8v 7b63 e7ada3 7b63 00007b63 df53 df53 df53 df53 df53 df53 df53 -9468 df54 df54 df54 * * 4579 8ea2c5f9,8ea2c5f9v 7cb2 e7b2b2 7cb2 00007cb2 df54 df54 df54 df54 df54 df54 df54 -9469 df55 df55 df55 * * 457a 8ea2c5fa,8ea2c5fav 7cb4 e7b2b4 7cb4 00007cb4 df55 df55 df55 df55 df55 df55 df55 -9470 df56 df56 df56 * * 457b 8ea2c5fb,8ea2c5fbv 7caf e7b2af 7caf 00007caf df56 df56 df56 df56 df56 df56 df56 -9471 df57 df57 df57 * * 457c 8ea2c5fc,8ea2c5fcv 7d88 e7b688 7d88 00007d88 df57 df57 df57 df57 df57 df57 df57 -9472 df58 df58 df58 * * 457d 8ea2c5fd,8ea2c5fdv 7d86 e7b686 7d86 00007d86 df58 df58 df58 df58 df58 df58 df58 -9473 df59 df59 df59 * * 457e 8ea2c5fe,8ea2c5fev 7d80 e7b680 7d80 00007d80 df59 df59 df59 df59 df59 df59 df59 -9474 df5a df5a df5a * * 4621 8ea2c6a1,8ea2c6a1v 7d8d e7b68d 7d8d 00007d8d df5a df5a df5a df5a df5a df5a df5a -9475 df5b df5b df5b * * 4622 8ea2c6a2,8ea2c6a2v 7d7f e7b5bf 7d7f 00007d7f df5b df5b df5b df5b df5b df5b df5b -9476 df5c df5c df5c * * 4623 8ea2c6a3,8ea2c6a3v 7d85 e7b685 7d85 00007d85 df5c df5c df5c df5c df5c df5c df5c -9477 df5d df5d df5d * * 4624 8ea2c6a4,8ea2c6a4v 7d7a e7b5ba 7d7a 00007d7a df5d df5d df5d df5d df5d df5d df5d -9478 df5e df5e df5e * * 4625 8ea2c6a5,8ea2c6a5v 7d8e e7b68e 7d8e 00007d8e df5e df5e df5e df5e df5e df5e df5e -9479 df5f df5f df5f * * 4626 8ea2c6a6,8ea2c6a6v 7d7b e7b5bb 7d7b 00007d7b df5f df5f df5f df5f df5f df5f df5f -9480 df60 df60 df60 * * 4627 8ea2c6a7,8ea2c6a7v 7d83 e7b683 7d83 00007d83 df60 df60 df60 df60 df60 df60 df60 -9481 df61 df61 df61 * * 4628 8ea2c6a8,8ea2c6a8v 7d7c e7b5bc 7d7c 00007d7c df61 df61 df61 df61 df61 df61 df61 -9482 df62 df62 df62 * * 4629 8ea2c6a9,8ea2c6a9v 7d8c e7b68c 7d8c 00007d8c df62 df62 df62 df62 df62 df62 df62 -9483 df63 df63 df63 * * 462a 8ea2c6aa,8ea2c6aav 7d94 e7b694 7d94 00007d94 df63 df63 df63 df63 df63 df63 df63 -9484 df64 df64 df64 * * 462b 8ea2c6ab,8ea2c6abv 7d84 e7b684 7d84 00007d84 df64 df64 df64 df64 df64 df64 df64 -9485 df65 df65 df65 * * 462c 8ea2c6ac,8ea2c6acv 7d7d e7b5bd 7d7d 00007d7d df65 df65 df65 df65 df65 df65 df65 -9486 df66 df66 df66 * * 462d 8ea2c6ad,8ea2c6adv 7d92 e7b692 7d92 00007d92 df66 df66 df66 df66 df66 df66 df66 -9487 df67 df67 df67 * * 462e 8ea2c6ae,8ea2c6aev 7f6d e7bdad 7f6d 00007f6d df67 df67 df67 df67 df67 df67 df67 -9488 df68 df68 df68 * * 462f 8ea2c6af,8ea2c6afv 7f6b e7bdab 7f6b 00007f6b df68 df68 df68 df68 df68 df68 df68 -9489 df69 df69 df69 * * 4630 8ea2c6b0,8ea2c6b0v 7f67 e7bda7 7f67 00007f67 df69 df69 df69 df69 df69 df69 df69 -9490 df6a df6a df6a * * 4631 8ea2c6b1,8ea2c6b1v 7f68 e7bda8 7f68 00007f68 df6a df6a df6a df6a df6a df6a df6a -9491 df6b df6b df6b * * 4632 8ea2c6b2,8ea2c6b2v 7f6c e7bdac 7f6c 00007f6c df6b df6b df6b df6b df6b df6b df6b -9492 df6c df6c df6c * * 4633 8ea2c6b3,8ea2c6b3v 7fa6 e7bea6 7fa6 00007fa6 df6c df6c df6c df6c df6c df6c df6c -9493 df6d df6d df6d * * 4634 8ea2c6b4,8ea2c6b4v 7fa5 e7bea5 7fa5 00007fa5 df6d df6d df6d df6d df6d df6d df6d -9494 df6e df6e df6e * * 4635 8ea2c6b5,8ea2c6b5v 7fa7 e7bea7 7fa7 00007fa7 df6e df6e df6e df6e df6e df6e df6e -9495 df6f df6f df6f * * 4636 8ea2c6b6,8ea2c6b6v 7fdb e7bf9b 7fdb 00007fdb df6f df6f df6f df6f df6f df6f df6f -9496 df70 df70 df70 * * 4637 8ea2c6b7,8ea2c6b7v 7fdc e7bf9c 7fdc 00007fdc df70 df70 df70 df70 df70 df70 df70 -9497 df71 df71 df71 * * 4638 8ea2c6b8,8ea2c6b8v 8021 e880a1 8021 00008021 df71 df71 df71 df71 df71 df71 df71 -9498 df72 df72 df72 * * 4639 8ea2c6b9,8ea2c6b9v 8164 e885a4 8164 00008164 df72 df72 df72 df72 df72 df72 df72 -9499 df73 df73 df73 * * 463a 8ea2c6ba,8ea2c6bav 8160 e885a0 8160 00008160 df73 df73 df73 df73 df73 df73 df73 -9500 df74 df74 df74 * * 463b 8ea2c6bb,8ea2c6bbv 8177 e885b7 8177 00008177 df74 df74 df74 df74 df74 df74 df74 -9501 df75 df75 df75 * * 463c 8ea2c6bc,8ea2c6bcv 815c e8859c 815c 0000815c df75 df75 df75 df75 df75 df75 df75 -9502 df76 df76 df76 * * 463d 8ea2c6bd,8ea2c6bdv 8169 e885a9 8169 00008169 df76 df76 df76 df76 df76 df76 df76 -9503 df77 df77 df77 * * 463e 8ea2c6be,8ea2c6bev 815b e8859b 815b 0000815b df77 df77 df77 df77 df77 df77 df77 -9504 df78 df78 df78 * * 463f 8ea2c6bf,8ea2c6bfv 8162 e885a2 8162 00008162 df78 df78 df78 df78 df78 df78 df78 -9505 df79 df79 df79 * * 4640 8ea2c6c0,8ea2c6c0v 8172 e885b2 8172 00008172 df79 df79 df79 df79 df79 df79 df79 -9506 df7a df7a df7a * * 4641 8ea2c6c1,8ea2c6c1v 6721 e69ca1 6721 00006721 df7a df7a df7a df7a df7a df7a df7a -9507 df7b df7b df7b * * 4642 8ea2c6c2,8ea2c6c2v 815e e8859e 815e 0000815e df7b df7b df7b df7b df7b df7b df7b -9508 df7c df7c df7c * * 4643 8ea2c6c3,8ea2c6c3v 8176 e885b6 8176 00008176 df7c df7c df7c df7c df7c df7c df7c -9509 df7d df7d df7d * * 4644 8ea2c6c4,8ea2c6c4v 8167 e885a7 8167 00008167 df7d df7d df7d df7d df7d df7d df7d -9510 df7e df7e df7e * * 4645 8ea2c6c5,8ea2c6c5v 816f e885af 816f 0000816f df7e df7e df7e df7e df7e df7e df7e -9511 dfa1 dfa1 dfa1 * * 4646 8ea2c6c6,8ea2c6c6v 8144 e88584 8144 00008144 dfa1 dfa1 dfa1 dfa1 dfa1 dfa1 dfa1 -9512 dfa2 dfa2 dfa2 * * 4647 8ea2c6c7,8ea2c6c7v 8161 e885a1 8161 00008161 dfa2 dfa2 dfa2 dfa2 dfa2 dfa2 dfa2 -9513 dfa3 dfa3 dfa3 * * 4648 8ea2c6c8,8ea2c6c8v 821d e8889d 821d 0000821d dfa3 dfa3 dfa3 dfa3 dfa3 dfa3 dfa3 -9514 dfa4 dfa4 dfa4 * * 4649 8ea2c6c9,8ea2c6c9v 8249 e88989 8249 00008249 dfa4 dfa4 dfa4 dfa4 dfa4 dfa4 dfa4 -9515 dfa5 dfa5 dfa5 * * 464a 8ea2c6ca,8ea2c6cav 8244 e88984 8244 00008244 dfa5 dfa5 dfa5 dfa5 dfa5 dfa5 dfa5 -9516 dfa6 dfa6 dfa6 * * 464b 8ea2c6cb,8ea2c6cbv 8240 e88980 8240 00008240 dfa6 dfa6 dfa6 dfa6 dfa6 dfa6 dfa6 -9517 dfa7 dfa7 dfa7 * * 464c 8ea2c6cc,8ea2c6ccv 8242 e88982 8242 00008242 dfa7 dfa7 dfa7 dfa7 dfa7 dfa7 dfa7 -9518 dfa8 dfa8 dfa8 * * 464d 8ea2c6cd,8ea2c6cdv 8245 e88985 8245 00008245 dfa8 dfa8 dfa8 dfa8 dfa8 dfa8 dfa8 -9519 dfa9 dfa9 dfa9 * * 464e 8ea2c6ce,8ea2c6cev 84f1 e893b1 84f1 000084f1 dfa9 dfa9 dfa9 dfa9 dfa9 dfa9 dfa9 -9520 dfaa dfaa dfaa * * 464f 8ea2c6cf,8ea2c6cfv 843f e890bf 843f 0000843f dfaa dfaa dfaa dfaa dfaa dfaa dfaa -9521 dfab dfab dfab * * 4650 8ea2c6d0,8ea2c6d0v 8456 e89196 8456 00008456 dfab dfab dfab dfab dfab dfab dfab -9522 dfac dfac dfac * * 4651 8ea2c6d1,8ea2c6d1v 8476 e891b6 8476 00008476 dfac dfac dfac dfac dfac dfac dfac -9523 dfad dfad dfad * * 4652 8ea2c6d2,8ea2c6d2v 8479 e891b9 8479 00008479 dfad dfad dfad dfad dfad dfad dfad -9524 dfae dfae dfae * * 4653 8ea2c6d3,8ea2c6d3v 848f e8928f 848f 0000848f dfae dfae dfae dfae dfae dfae dfae -9525 dfaf dfaf dfaf * * 4654 8ea2c6d4,8ea2c6d4v 848d e8928d 848d 0000848d dfaf dfaf dfaf dfaf dfaf dfaf dfaf -9526 dfb0 dfb0 dfb0 * * 4655 8ea2c6d5,8ea2c6d5v 8465 e891a5 8465 00008465 dfb0 dfb0 dfb0 dfb0 dfb0 dfb0 dfb0 -9527 dfb1 dfb1 dfb1 * * 4656 8ea2c6d6,8ea2c6d6v 8451 e89191 8451 00008451 dfb1 dfb1 dfb1 dfb1 dfb1 dfb1 dfb1 -9528 dfb2 dfb2 dfb2 * * 4657 8ea2c6d7,8ea2c6d7v 8440 e89180 8440 00008440 dfb2 dfb2 dfb2 dfb2 dfb2 dfb2 dfb2 -9529 dfb3 dfb3 dfb3 * * 4658 8ea2c6d8,8ea2c6d8v 8486 e89286 8486 00008486 dfb3 dfb3 dfb3 dfb3 dfb3 dfb3 dfb3 -9530 dfb4 dfb4 dfb4 * * 4659 8ea2c6d9,8ea2c6d9v 8467 e891a7 8467 00008467 dfb4 dfb4 dfb4 dfb4 dfb4 dfb4 dfb4 -9531 dfb5 dfb5 dfb5 * * 465a 8ea2c6da,8ea2c6dav 8430 e890b0 8430 00008430 dfb5 dfb5 dfb5 dfb5 dfb5 dfb5 dfb5 -9532 dfb6 dfb6 dfb6 * * 465b 8ea2c6db,8ea2c6dbv 844d e8918d 844d 0000844d dfb6 dfb6 dfb6 dfb6 dfb6 dfb6 dfb6 -9533 dfb7 dfb7 dfb7 * * 465c 8ea2c6dc,8ea2c6dcv 847d e891bd 847d 0000847d dfb7 dfb7 dfb7 dfb7 dfb7 dfb7 dfb7 -9534 dfb8 dfb8 dfb8 * * 465d 8ea2c6dd,8ea2c6ddv 845a e8919a 845a 0000845a dfb8 dfb8 dfb8 dfb8 dfb8 dfb8 dfb8 -9535 dfb9 dfb9 dfb9 * * 465e 8ea2c6de,8ea2c6dev 8459 e89199 8459 00008459 dfb9 dfb9 dfb9 dfb9 dfb9 dfb9 dfb9 -9536 dfba dfba dfba * * 465f 8ea2c6df,8ea2c6dfv 8474 e891b4 8474 00008474 dfba dfba dfba dfba dfba dfba dfba -9537 dfbb dfbb dfbb * * 4660 8ea2c6e0,8ea2c6e0v 8473 e891b3 8473 00008473 dfbb dfbb dfbb dfbb dfbb dfbb dfbb -9538 dfbc dfbc dfbc * * 4661 8ea2c6e1,8ea2c6e1v 845d e8919d 845d 0000845d dfbc dfbc dfbc dfbc dfbc dfbc dfbc -9539 dfbd dfbd dfbd * * 4662 8ea2c6e2,8ea2c6e2v 8507 e89487 8507 00008507 dfbd dfbd dfbd dfbd dfbd dfbd dfbd -9540 dfbe dfbe dfbe * * 4663 8ea2c6e3,8ea2c6e3v 845e e8919e 845e 0000845e dfbe dfbe dfbe dfbe dfbe dfbe dfbe -9541 dfbf dfbf dfbf * * 4664 8ea2c6e4,8ea2c6e4v 8437 e890b7 8437 00008437 dfbf dfbf dfbf dfbf dfbf dfbf dfbf -9542 dfc0 dfc0 dfc0 * * 4665 8ea2c6e5,8ea2c6e5v 843a e890ba 843a 0000843a dfc0 dfc0 dfc0 dfc0 dfc0 dfc0 dfc0 -9543 dfc1 dfc1 dfc1 * * 4666 8ea2c6e6,8ea2c6e6v 8434 e890b4 8434 00008434 dfc1 dfc1 dfc1 dfc1 dfc1 dfc1 dfc1 -9544 dfc2 dfc2 dfc2 * * 4667 8ea2c6e7,8ea2c6e7v 847a e891ba 847a 0000847a dfc2 dfc2 dfc2 dfc2 dfc2 dfc2 dfc2 -9545 dfc3 dfc3 dfc3 * * 4668 8ea2c6e8,8ea2c6e8v 8443 e89183 8443 00008443 dfc3 dfc3 dfc3 dfc3 dfc3 dfc3 dfc3 -9546 dfc4 dfc4 dfc4 * * 4669 8ea2c6e9,8ea2c6e9v 8478 e891b8 8478 00008478 dfc4 dfc4 dfc4 dfc4 dfc4 dfc4 dfc4 -9547 dfc5 dfc5 dfc5 * * 466a 8ea2c6ea,8ea2c6eav 8432 e890b2 8432 00008432 dfc5 dfc5 dfc5 dfc5 dfc5 dfc5 dfc5 -9548 dfc6 dfc6 dfc6 * * 466b 8ea2c6eb,8ea2c6ebv 8445 e89185 8445 00008445 dfc6 dfc6 dfc6 dfc6 dfc6 dfc6 dfc6 -9549 dfc7 dfc7 dfc7 * * 466c 8ea2c6ec,8ea2c6ecv 8429 e890a9 8429 00008429 dfc7 dfc7 dfc7 dfc7 dfc7 dfc7 dfc7 -9550 dfc8 dfc8 dfc8 * * 466d 8ea2c6ed,8ea2c6edv 83d9 e88f99 83d9 000083d9 dfc8 dfc8 dfc8 dfc8 dfc8 dfc8 dfc8 -9551 dfc9 dfc9 dfc9 * * 466e 8ea2c6ee,8ea2c6eev 844b e8918b 844b 0000844b dfc9 dfc9 dfc9 dfc9 dfc9 dfc9 dfc9 -9552 dfca dfca dfca * * 466f 8ea2c6ef,8ea2c6efv 842f e890af 842f 0000842f dfca dfca dfca dfca dfca dfca dfca -9553 dfcb dfcb dfcb * * 4670 8ea2c6f0,8ea2c6f0v 8442 e89182 8442 00008442 dfcb dfcb dfcb dfcb dfcb dfcb dfcb -9554 dfcc dfcc dfcc * * 4671 8ea2c6f1,8ea2c6f1v 842d e890ad 842d 0000842d dfcc dfcc dfcc dfcc dfcc dfcc dfcc -9555 dfcd dfcd dfcd * * 4672 8ea2c6f2,8ea2c6f2v 845f e8919f 845f 0000845f dfcd dfcd dfcd dfcd dfcd dfcd dfcd -9556 dfce dfce dfce * * 4673 8ea2c6f3,8ea2c6f3v 8470 e891b0 8470 00008470 dfce dfce dfce dfce dfce dfce dfce -9557 dfcf dfcf dfcf * * 4674 8ea2c6f4,8ea2c6f4v 8439 e890b9 8439 00008439 dfcf dfcf dfcf dfcf dfcf dfcf dfcf -9558 dfd0 dfd0 dfd0 * * 4675 8ea2c6f5,8ea2c6f5v 844e e8918e 844e 0000844e dfd0 dfd0 dfd0 dfd0 dfd0 dfd0 dfd0 -9559 dfd1 dfd1 dfd1 * * 4676 8ea2c6f6,8ea2c6f6v 844c e8918c 844c 0000844c dfd1 dfd1 dfd1 dfd1 dfd1 dfd1 dfd1 -9560 dfd2 dfd2 dfd2 * * 4677 8ea2c6f7,8ea2c6f7v 8452 e89192 8452 00008452 dfd2 dfd2 dfd2 dfd2 dfd2 dfd2 dfd2 -9561 dfd3 dfd3 dfd3 * * 4678 8ea2c6f8,8ea2c6f8v 846f e891af 846f 0000846f dfd3 dfd3 dfd3 dfd3 dfd3 dfd3 dfd3 -9562 dfd4 dfd4 dfd4 * * 4679 8ea2c6f9,8ea2c6f9v 84c5 e89385 84c5 000084c5 dfd4 dfd4 dfd4 dfd4 dfd4 dfd4 dfd4 -9563 dfd5 dfd5 dfd5 * * 467a 8ea2c6fa,8ea2c6fav 848e e8928e 848e 0000848e dfd5 dfd5 dfd5 dfd5 dfd5 dfd5 dfd5 -9564 dfd6 dfd6 dfd6 * * 467b 8ea2c6fb,8ea2c6fbv 843b e890bb 843b 0000843b dfd6 dfd6 dfd6 dfd6 dfd6 dfd6 dfd6 -9565 dfd7 dfd7 dfd7 * * 467c 8ea2c6fc,8ea2c6fcv 8447 e89187 8447 00008447 dfd7 dfd7 dfd7 dfd7 dfd7 dfd7 dfd7 -9566 dfd8 dfd8 dfd8 * * 467d 8ea2c6fd,8ea2c6fdv 8436 e890b6 8436 00008436 dfd8 dfd8 dfd8 dfd8 dfd8 dfd8 dfd8 -9567 dfd9 dfd9 dfd9 * * 467e 8ea2c6fe,8ea2c6fev 8433 e890b3 8433 00008433 dfd9 dfd9 dfd9 dfd9 dfd9 dfd9 dfd9 -9568 dfda dfda dfda * * 4721 8ea2c7a1,8ea2c7a1v 8468 e891a8 8468 00008468 dfda dfda dfda dfda dfda dfda dfda -9569 dfdb dfdb dfdb * * 4722 8ea2c7a2,8ea2c7a2v 847e e891be 847e 0000847e dfdb dfdb dfdb dfdb dfdb dfdb dfdb -9570 dfdc dfdc dfdc * * 4723 8ea2c7a3,8ea2c7a3v 8444 e89184 8444 00008444 dfdc dfdc dfdc dfdc dfdc dfdc dfdc -9571 dfdd dfdd dfdd * * 4724 8ea2c7a4,8ea2c7a4v 842b e890ab 842b 0000842b dfdd dfdd dfdd dfdd dfdd dfdd dfdd -9572 dfde dfde dfde * * 4725 8ea2c7a5,8ea2c7a5v 8460 e891a0 8460 00008460 dfde dfde dfde dfde dfde dfde dfde -9573 dfdf dfdf dfdf * * 4726 8ea2c7a6,8ea2c7a6v 8454 e89194 8454 00008454 dfdf dfdf dfdf dfdf dfdf dfdf dfdf -9574 dfe0 dfe0 dfe0 * * 4727 8ea2c7a7,8ea2c7a7v 846e e891ae 846e 0000846e dfe0 dfe0 dfe0 dfe0 dfe0 dfe0 dfe0 -9575 dfe1 dfe1 dfe1 * * 4728 8ea2c7a8,8ea2c7a8v 8450 e89190 8450 00008450 dfe1 dfe1 dfe1 dfe1 dfe1 dfe1 dfe1 -9576 dfe2 dfe2 dfe2 * * 4729 8ea2c7a9,8ea2c7a9v 870b e89c8b 870b 0000870b dfe2 dfe2 dfe2 dfe2 dfe2 dfe2 dfe2 -9577 dfe3 dfe3 dfe3 * * 472a 8ea2c7aa,8ea2c7aav 8704 e89c84 8704 00008704 dfe3 dfe3 dfe3 dfe3 dfe3 dfe3 dfe3 -9578 dfe4 dfe4 dfe4 * * 472b 8ea2c7ab,8ea2c7abv 86f7 e89bb7 86f7 000086f7 dfe4 dfe4 dfe4 dfe4 dfe4 dfe4 dfe4 -9579 dfe5 dfe5 dfe5 * * 472c 8ea2c7ac,8ea2c7acv 870c e89c8c 870c 0000870c dfe5 dfe5 dfe5 dfe5 dfe5 dfe5 dfe5 -9580 dfe6 dfe6 dfe6 * * 472d 8ea2c7ad,8ea2c7adv 86fa e89bba 86fa 000086fa dfe6 dfe6 dfe6 dfe6 dfe6 dfe6 dfe6 -9581 dfe7 dfe7 dfe7 * * 472e 8ea2c7ae,8ea2c7aev 86d6 e89b96 86d6 000086d6 dfe7 dfe7 dfe7 dfe7 dfe7 dfe7 dfe7 -9582 dfe8 dfe8 dfe8 * * 472f 8ea2c7af,8ea2c7afv 86f5 e89bb5 86f5 000086f5 dfe8 dfe8 dfe8 dfe8 dfe8 dfe8 dfe8 -9583 dfe9 dfe9 dfe9 * * 4730 8ea2c7b0,8ea2c7b0v 874d e89d8d 874d 0000874d dfe9 dfe9 dfe9 dfe9 dfe9 dfe9 dfe9 -9584 dfea dfea dfea * * 4731 8ea2c7b1,8ea2c7b1v 86f8 e89bb8 86f8 000086f8 dfea dfea dfea dfea dfea dfea dfea -9585 dfeb dfeb dfeb * * 4732 8ea2c7b2,8ea2c7b2v 870e e89c8e 870e 0000870e dfeb dfeb dfeb dfeb dfeb dfeb dfeb -9586 dfec dfec dfec * * 4733 8ea2c7b3,8ea2c7b3v 8709 e89c89 8709 00008709 dfec dfec dfec dfec dfec dfec dfec -9587 dfed dfed dfed * * 4734 8ea2c7b4,8ea2c7b4v 8701 e89c81 8701 00008701 dfed dfed dfed dfed dfed dfed dfed -9588 dfee dfee dfee * * 4735 8ea2c7b5,8ea2c7b5v 86f6 e89bb6 86f6 000086f6 dfee dfee dfee dfee dfee dfee dfee -9589 dfef dfef dfef * * 4736 8ea2c7b6,8ea2c7b6v 870d e89c8d 870d 0000870d dfef dfef dfef dfef dfef dfef dfef -9590 dff0 dff0 dff0 * * 4737 8ea2c7b7,8ea2c7b7v 8705 e89c85 8705 00008705 dff0 dff0 dff0 dff0 dff0 dff0 dff0 -9591 dff1 dff1 dff1 * * 4738 8ea2c7b8,8ea2c7b8v 88d6 e8a396 88d6 000088d6 dff1 dff1 dff1 dff1 dff1 dff1 dff1 -9592 dff2 dff2 dff2 * * 4739 8ea2c7b9,8ea2c7b9v 88cb e8a38b 88cb 000088cb dff2 dff2 dff2 dff2 dff2 dff2 dff2 -9593 dff3 dff3 dff3 * * 473a 8ea2c7ba,8ea2c7bav 88cd e8a38d 88cd 000088cd dff3 dff3 dff3 dff3 dff3 dff3 dff3 -9594 dff4 dff4 dff4 * * 473b 8ea2c7bb,8ea2c7bbv 88ce e8a38e 88ce 000088ce dff4 dff4 dff4 dff4 dff4 dff4 dff4 -9595 dff5 dff5 dff5 * * 473c 8ea2c7bc,8ea2c7bcv 88de e8a39e 88de 000088de dff5 dff5 dff5 dff5 dff5 dff5 dff5 -9596 dff6 dff6 dff6 * * 473d 8ea2c7bd,8ea2c7bdv 88db e8a39b 88db 000088db dff6 dff6 dff6 dff6 dff6 dff6 dff6 -9597 dff7 dff7 dff7 * * 473e 8ea2c7be,8ea2c7bev 88da e8a39a 88da 000088da dff7 dff7 dff7 dff7 dff7 dff7 dff7 -9598 dff8 dff8 dff8 * * 473f 8ea2c7bf,8ea2c7bfv 88cc e8a38c 88cc 000088cc dff8 dff8 dff8 dff8 dff8 dff8 dff8 -9599 dff9 dff9 dff9 * * 4740 8ea2c7c0,8ea2c7c0v 88d0 e8a390 88d0 000088d0 dff9 dff9 dff9 dff9 dff9 dff9 dff9 -9600 dffa dffa dffa * * 4741 8ea2c7c1,8ea2c7c1v 8985 e8a685 8985 00008985 dffa dffa dffa dffa dffa dffa dffa -9601 dffb dffb dffb * * 4742 8ea2c7c2,8ea2c7c2v 899b e8a69b 899b 0000899b dffb dffb dffb dffb dffb dffb dffb -9602 dffc dffc dffc * * 4743 8ea2c7c3,8ea2c7c3v 89df e8a79f 89df 000089df dffc dffc dffc dffc dffc dffc dffc -9603 dffd dffd dffd * * 4744 8ea2c7c4,8ea2c7c4v 89e5 e8a7a5 89e5 000089e5 dffd dffd dffd dffd dffd dffd dffd -9604 dffe dffe dffe * * 4745 8ea2c7c5,8ea2c7c5v 89e4 e8a7a4 89e4 000089e4 dffe dffe dffe dffe dffe dffe dffe -9605 e040 e040 e040 * * 4746 8ea2c7c6,8ea2c7c6v 89e1 e8a7a1 89e1 000089e1 e040 e040 e040 e040 e040 e040 e040 -9606 e041 e041 e041 * * 4747 8ea2c7c7,8ea2c7c7v 89e0 e8a7a0 89e0 000089e0 e041 e041 e041 e041 e041 e041 e041 -9607 e042 e042 e042 * * 4748 8ea2c7c8,8ea2c7c8v 89e2 e8a7a2 89e2 000089e2 e042 e042 e042 e042 e042 e042 e042 -9608 e043 e043 e043 * * 4749 8ea2c7c9,8ea2c7c9v 89dc e8a79c 89dc 000089dc e043 e043 e043 e043 e043 e043 e043 -9609 e044 e044 e044 * * 474a 8ea2c7ca,8ea2c7cav 89e6 e8a7a6 89e6 000089e6 e044 e044 e044 e044 e044 e044 e044 -9610 e045 e045 e045 * * 474b 8ea2c7cb,8ea2c7cbv 8a76 e8a9b6 8a76 00008a76 e045 e045 e045 e045 e045 e045 e045 -9611 e046 e046 e046 * * 474c 8ea2c7cc,8ea2c7ccv 8a86 e8aa86 8a86 00008a86 e046 e046 e046 e046 e046 e046 e046 -9612 e047 e047 e047 * * 474d 8ea2c7cd,8ea2c7cdv 8a7f e8a9bf 8a7f 00008a7f e047 e047 e047 e047 e047 e047 e047 -9613 e048 e048 e048 * * 474e 8ea2c7ce,8ea2c7cev 8a61 e8a9a1 8a61 00008a61 e048 e048 e048 e048 e048 e048 e048 -9614 e049 e049 e049 * * 474f 8ea2c7cf,8ea2c7cfv 8a3f e8a8bf 8a3f 00008a3f e049 e049 e049 e049 e049 e049 e049 -9615 e04a e04a e04a * * 4750 8ea2c7d0,8ea2c7d0v 8a77 e8a9b7 8a77 00008a77 e04a e04a e04a e04a e04a e04a e04a -9616 e04b e04b e04b * * 4751 8ea2c7d1,8ea2c7d1v 8a82 e8aa82 8a82 00008a82 e04b e04b e04b e04b e04b e04b e04b -9617 e04c e04c e04c * * 4752 8ea2c7d2,8ea2c7d2v 8a84 e8aa84 8a84 00008a84 e04c e04c e04c e04c e04c e04c e04c -9618 e04d e04d e04d * * 4753 8ea2c7d3,8ea2c7d3v 8a75 e8a9b5 8a75 00008a75 e04d e04d e04d e04d e04d e04d e04d -9619 e04e e04e e04e * * 4754 8ea2c7d4,8ea2c7d4v 8a83 e8aa83 8a83 00008a83 e04e e04e e04e e04e e04e e04e e04e -9620 e04f e04f e04f * * 4755 8ea2c7d5,8ea2c7d5v 8a81 e8aa81 8a81 00008a81 e04f e04f e04f e04f e04f e04f e04f -9621 e050 e050 e050 * * 4756 8ea2c7d6,8ea2c7d6v 8a74 e8a9b4 8a74 00008a74 e050 e050 e050 e050 e050 e050 e050 -9622 e051 e051 e051 * * 4757 8ea2c7d7,8ea2c7d7v 8a7a e8a9ba 8a7a 00008a7a e051 e051 e051 e051 e051 e051 e051 -9623 e052 e052 e052 * * 4758 8ea2c7d8,8ea2c7d8v 8c3c e8b0bc 8c3c 00008c3c e052 e052 e052 e052 e052 e052 e052 -9624 e053 e053 e053 * * 4759 8ea2c7d9,8ea2c7d9v 8c4b e8b18b 8c4b 00008c4b e053 e053 e053 e053 e053 e053 e053 -9625 e054 e054 e054 * * 475a 8ea2c7da,8ea2c7dav 8c4a e8b18a 8c4a 00008c4a e054 e054 e054 e054 e054 e054 e054 -9626 e055 e055 e055 * * 475b 8ea2c7db,8ea2c7dbv 8c65 e8b1a5 8c65 00008c65 e055 e055 e055 e055 e055 e055 e055 -9627 e056 e056 e056 * * 475c 8ea2c7dc,8ea2c7dcv 8c64 e8b1a4 8c64 00008c64 e056 e056 e056 e056 e056 e056 e056 -9628 e057 e057 e057 * * 475d 8ea2c7dd,8ea2c7ddv 8c66 e8b1a6 8c66 00008c66 e057 e057 e057 e057 e057 e057 e057 -9629 e058 e058 e058 * * 475e 8ea2c7de,8ea2c7dev 8c86 e8b286 8c86 00008c86 e058 e058 e058 e058 e058 e058 e058 -9630 e059 e059 e059 * * 475f 8ea2c7df,8ea2c7dfv 8c84 e8b284 8c84 00008c84 e059 e059 e059 e059 e059 e059 e059 -9631 e05a e05a e05a * * 4760 8ea2c7e0,8ea2c7e0v 8c85 e8b285 8c85 00008c85 e05a e05a e05a e05a e05a e05a e05a -9632 e05b e05b e05b * * 4761 8ea2c7e1,8ea2c7e1v 8ccc e8b38c 8ccc 00008ccc e05b e05b e05b e05b e05b e05b e05b -9633 e05c e05c e05c * * 4762 8ea2c7e2,8ea2c7e2v 8d68 e8b5a8 8d68 00008d68 e05c e05c e05c e05c e05c e05c e05c -9634 e05d e05d e05d * * 4763 8ea2c7e3,8ea2c7e3v 8d69 e8b5a9 8d69 00008d69 e05d e05d e05d e05d e05d e05d e05d -9635 e05e e05e e05e * * 4764 8ea2c7e4,8ea2c7e4v 8d91 e8b691 8d91 00008d91 e05e e05e e05e e05e e05e e05e e05e -9636 e05f e05f e05f * * 4765 8ea2c7e5,8ea2c7e5v 8d8c e8b68c 8d8c 00008d8c e05f e05f e05f e05f e05f e05f e05f -9637 e060 e060 e060 * * 4766 8ea2c7e6,8ea2c7e6v 8d8e e8b68e 8d8e 00008d8e e060 e060 e060 e060 e060 e060 e060 -9638 e061 e061 e061 * * 4767 8ea2c7e7,8ea2c7e7v 8d8f e8b68f 8d8f 00008d8f e061 e061 e061 e061 e061 e061 e061 -9639 e062 e062 e062 * * 4768 8ea2c7e8,8ea2c7e8v 8d8d e8b68d 8d8d 00008d8d e062 e062 e062 e062 e062 e062 e062 -9640 e063 e063 e063 * * 4769 8ea2c7e9,8ea2c7e9v 8d93 e8b693 8d93 00008d93 e063 e063 e063 e063 e063 e063 e063 -9641 e064 e064 e064 * * 476a 8ea2c7ea,8ea2c7eav 8d94 e8b694 8d94 00008d94 e064 e064 e064 e064 e064 e064 e064 -9642 e065 e065 e065 * * 476b 8ea2c7eb,8ea2c7ebv 8d90 e8b690 8d90 00008d90 e065 e065 e065 e065 e065 e065 e065 -9643 e066 e066 e066 * * 476c 8ea2c7ec,8ea2c7ecv 8d92 e8b692 8d92 00008d92 e066 e066 e066 e066 e066 e066 e066 -9644 e067 e067 e067 * * 476d 8ea2c7ed,8ea2c7edv 8df0 e8b7b0 8df0 00008df0 e067 e067 e067 e067 e067 e067 e067 -9645 e068 e068 e068 * * 476e 8ea2c7ee,8ea2c7eev 8de0 e8b7a0 8de0 00008de0 e068 e068 e068 e068 e068 e068 e068 -9646 e069 e069 e069 * * 476f 8ea2c7ef,8ea2c7efv 8dec e8b7ac 8dec 00008dec e069 e069 e069 e069 e069 e069 e069 -9647 e06a e06a e06a * * 4770 8ea2c7f0,8ea2c7f0v 8df1 e8b7b1 8df1 00008df1 e06a e06a e06a e06a e06a e06a e06a -9648 e06b e06b e06b * * 4771 8ea2c7f1,8ea2c7f1v 8dee e8b7ae 8dee 00008dee e06b e06b e06b e06b e06b e06b e06b -9649 e06c e06c e06c * * 4772 8ea2c7f2,8ea2c7f2v 8dd0 e8b790 8dd0 00008dd0 e06c e06c e06c e06c e06c e06c e06c -9650 e06d e06d e06d * * 4773 8ea2c7f3,8ea2c7f3v 8de9 e8b7a9 8de9 00008de9 e06d e06d e06d e06d e06d e06d e06d -9651 e06e e06e e06e * * 4774 8ea2c7f4,8ea2c7f4v 8de3 e8b7a3 8de3 00008de3 e06e e06e e06e e06e e06e e06e e06e -9652 e06f e06f e06f * * 4775 8ea2c7f5,8ea2c7f5v 8de2 e8b7a2 8de2 00008de2 e06f e06f e06f e06f e06f e06f e06f -9653 e070 e070 e070 * * 4776 8ea2c7f6,8ea2c7f6v 8de7 e8b7a7 8de7 00008de7 e070 e070 e070 e070 e070 e070 e070 -9654 e071 e071 e071 * * 4777 8ea2c7f7,8ea2c7f7v 8df2 e8b7b2 8df2 00008df2 e071 e071 e071 e071 e071 e071 e071 -9655 e072 e072 e072 * * 4778 8ea2c7f8,8ea2c7f8v 8deb e8b7ab 8deb 00008deb e072 e072 e072 e072 e072 e072 e072 -9656 e073 e073 e073 * * 4779 8ea2c7f9,8ea2c7f9v 8df4 e8b7b4 8df4 00008df4 e073 e073 e073 e073 e073 e073 e073 -9657 e074 e074 e074 * * 477a 8ea2c7fa,8ea2c7fav 8f06 e8bc86 8f06 00008f06 e074 e074 e074 e074 e074 e074 e074 -9658 e075 e075 e075 * * 477b 8ea2c7fb,8ea2c7fbv 8eff e8bbbf 8eff 00008eff e075 e075 e075 e075 e075 e075 e075 -9659 e076 e076 e076 * * 477c 8ea2c7fc,8ea2c7fcv 8f01 e8bc81 8f01 00008f01 e076 e076 e076 e076 e076 e076 e076 -9660 e077 e077 e077 * * 477d 8ea2c7fd,8ea2c7fdv 8f00 e8bc80 8f00 00008f00 e077 e077 e077 e077 e077 e077 e077 -9661 e078 e078 e078 * * 477e 8ea2c7fe,8ea2c7fev 8f05 e8bc85 8f05 00008f05 e078 e078 e078 e078 e078 e078 e078 -9662 e079 e079 e079 * * 4821 8ea2c8a1,8ea2c8a1v 8f07 e8bc87 8f07 00008f07 e079 e079 e079 e079 e079 e079 e079 -9663 e07a e07a e07a * * 4822 8ea2c8a2,8ea2c8a2v 8f08 e8bc88 8f08 00008f08 e07a e07a e07a e07a e07a e07a e07a -9664 e07b e07b e07b * * 4823 8ea2c8a3,8ea2c8a3v 8f02 e8bc82 8f02 00008f02 e07b e07b e07b e07b e07b e07b e07b -9665 e07c e07c e07c * * 4824 8ea2c8a4,8ea2c8a4v 8f0b e8bc8b,eeb19b 8f0b,ec5b 00008f0b,0000ec5b 9d57,e07c e07c e07c 9d57,e07c e07c e07c 9d57,e07c -9666 e07d e07d e07d * * 4825 8ea2c8a5,8ea2c8a5v 9052 e98192 9052 00009052 e07d e07d e07d e07d e07d e07d e07d -9667 e07e e07e e07e * * 4826 8ea2c8a6,8ea2c8a6v 903f e980bf 903f 0000903f e07e e07e e07e e07e e07e e07e e07e -9668 e0a1 e0a1 e0a1 * * 4827 8ea2c8a7,8ea2c8a7v 9044 e98184 9044 00009044 e0a1 e0a1 e0a1 e0a1 e0a1 e0a1 e0a1 -9669 e0a2 e0a2 e0a2 * * 4828 8ea2c8a8,8ea2c8a8v 9049 e98189 9049 00009049 e0a2 e0a2 e0a2 e0a2 e0a2 e0a2 e0a2 -9670 e0a3 e0a3 e0a3 * * 4829 8ea2c8a9,8ea2c8a9v 903d e980bd 903d 0000903d e0a3 e0a3 e0a3 e0a3 e0a3 e0a3 e0a3 -9671 e0a4 e0a4 e0a4 * * 482a 8ea2c8aa,8ea2c8aav 9110 e98490 9110 00009110 e0a4 e0a4 e0a4 e0a4 e0a4 e0a4 e0a4 -9672 e0a5 e0a5 e0a5 * * 482b 8ea2c8ab,8ea2c8abv 910d e9848d 910d 0000910d e0a5 e0a5 e0a5 e0a5 e0a5 e0a5 e0a5 -9673 e0a6 e0a6 e0a6 * * 482c 8ea2c8ac,8ea2c8acv 910f e9848f 910f 0000910f e0a6 e0a6 e0a6 e0a6 e0a6 e0a6 e0a6 -9674 e0a7 e0a7 e0a7 * * 482d 8ea2c8ad,8ea2c8adv 9111 e98491 9111 00009111 e0a7 e0a7 e0a7 e0a7 e0a7 e0a7 e0a7 -9675 e0a8 e0a8 e0a8 * * 482e 8ea2c8ae,8ea2c8aev 9116 e98496 9116 00009116 e0a8 e0a8 e0a8 e0a8 e0a8 e0a8 e0a8 -9676 e0a9 e0a9 e0a9 * * 482f 8ea2c8af,8ea2c8afv 9114 e98494 9114 00009114 e0a9 e0a9 e0a9 e0a9 e0a9 e0a9 e0a9 -9677 e0aa e0aa e0aa * * 4830 8ea2c8b0,8ea2c8b0v 910b e9848b 910b 0000910b e0aa e0aa e0aa e0aa e0aa e0aa e0aa -9678 e0ab e0ab e0ab * * 4831 8ea2c8b1,8ea2c8b1v 910e e9848e 910e 0000910e e0ab e0ab e0ab e0ab e0ab e0ab e0ab -9679 e0ac e0ac e0ac * * 4832 8ea2c8b2,8ea2c8b2v 916e e985ae 916e 0000916e e0ac e0ac e0ac e0ac e0ac e0ac e0ac -9680 e0ad e0ad e0ad * * 4833 8ea2c8b3,8ea2c8b3v 916f e985af 916f 0000916f e0ad e0ad e0ad e0ad e0ad e0ad e0ad -9681 e0ae e0ae e0ae * * 4834 8ea2c8b4,8ea2c8b4v 9248 e98988 9248 00009248 e0ae e0ae e0ae e0ae e0ae e0ae e0ae -9682 e0af e0af e0af * * 4835 8ea2c8b5,8ea2c8b5v 9252 e98992 9252 00009252 e0af e0af e0af e0af e0af e0af e0af -9683 e0b0 e0b0 e0b0 * * 4836 8ea2c8b6,8ea2c8b6v 9230 e988b0 9230 00009230 e0b0 e0b0 e0b0 e0b0 e0b0 e0b0 e0b0 -9684 e0b1 e0b1 e0b1 * * 4837 8ea2c8b7,8ea2c8b7v 923a e988ba 923a 0000923a e0b1 e0b1 e0b1 e0b1 e0b1 e0b1 e0b1 -9685 e0b2 e0b2 e0b2 * * 4838 8ea2c8b8,8ea2c8b8v 9266 e989a6 9266 00009266 e0b2 e0b2 e0b2 e0b2 e0b2 e0b2 e0b2 -9686 e0b3 e0b3 e0b3 * * 4839 8ea2c8b9,8ea2c8b9v 9233 e988b3 9233 00009233 e0b3 e0b3 e0b3 e0b3 e0b3 e0b3 e0b3 -9687 e0b4 e0b4 e0b4 * * 483a 8ea2c8ba,8ea2c8bav 9265 e989a5 9265 00009265 e0b4 e0b4 e0b4 e0b4 e0b4 e0b4 e0b4 -9688 e0b5 e0b5 e0b5 * * 483b 8ea2c8bb,8ea2c8bbv 925e e9899e 925e 0000925e e0b5 e0b5 e0b5 e0b5 e0b5 e0b5 e0b5 -9689 e0b6 e0b6 e0b6 * * 483c 8ea2c8bc,8ea2c8bcv 9283 e98a83 9283 00009283 e0b6 e0b6 e0b6 e0b6 e0b6 e0b6 e0b6 -9690 e0b7 e0b7 e0b7 * * 483d 8ea2c8bd,8ea2c8bdv 922e e988ae 922e 0000922e e0b7 e0b7 e0b7 e0b7 e0b7 e0b7 e0b7 -9691 e0b8 e0b8 e0b8 * * 483e 8ea2c8be,8ea2c8bev 924a e9898a 924a 0000924a e0b8 e0b8 e0b8 e0b8 e0b8 e0b8 e0b8 -9692 e0b9 e0b9 e0b9 * * 483f 8ea2c8bf,8ea2c8bfv 9246 e98986 9246 00009246 e0b9 e0b9 e0b9 e0b9 e0b9 e0b9 e0b9 -9693 e0ba e0ba e0ba * * 4840 8ea2c8c0,8ea2c8c0v 926d e989ad 926d 0000926d e0ba e0ba e0ba e0ba e0ba e0ba e0ba -9694 e0bb e0bb e0bb * * 4841 8ea2c8c1,8ea2c8c1v 926c e989ac 926c 0000926c e0bb e0bb e0bb e0bb e0bb e0bb e0bb -9695 e0bc e0bc e0bc * * 4842 8ea2c8c2,8ea2c8c2v 924f e9898f 924f 0000924f e0bc e0bc e0bc e0bc e0bc e0bc e0bc -9696 e0bd e0bd e0bd * * 4843 8ea2c8c3,8ea2c8c3v 9260 e989a0 9260 00009260 e0bd e0bd e0bd e0bd e0bd e0bd e0bd -9697 e0be e0be e0be * * 4844 8ea2c8c4,8ea2c8c4v 9267 e989a7 9267 00009267 e0be e0be e0be e0be e0be e0be e0be -9698 e0bf e0bf e0bf * * 4845 8ea2c8c5,8ea2c8c5v 926f e989af 926f 0000926f e0bf e0bf e0bf e0bf e0bf e0bf e0bf -9699 e0c0 e0c0 e0c0 * * 4846 8ea2c8c6,8ea2c8c6v 9236 e988b6 9236 00009236 e0c0 e0c0 e0c0 e0c0 e0c0 e0c0 e0c0 -9700 e0c1 e0c1 e0c1 * * 4847 8ea2c8c7,8ea2c8c7v 9261 e989a1 9261 00009261 e0c1 e0c1 e0c1 e0c1 e0c1 e0c1 e0c1 -9701 e0c2 e0c2 e0c2 * * 4848 8ea2c8c8,8ea2c8c8v 9270 e989b0 9270 00009270 e0c2 e0c2 e0c2 e0c2 e0c2 e0c2 e0c2 -9702 e0c3 e0c3 e0c3 * * 4849 8ea2c8c9,8ea2c8c9v 9231 e988b1 9231 00009231 e0c3 e0c3 e0c3 e0c3 e0c3 e0c3 e0c3 -9703 e0c4 e0c4 e0c4 * * 484a 8ea2c8ca,8ea2c8cav 9254 e98994 9254 00009254 e0c4 e0c4 e0c4 e0c4 e0c4 e0c4 e0c4 -9704 e0c5 e0c5 e0c5 * * 484b 8ea2c8cb,8ea2c8cbv 9263 e989a3 9263 00009263 e0c5 e0c5 e0c5 e0c5 e0c5 e0c5 e0c5 -9705 e0c6 e0c6 e0c6 * * 484c 8ea2c8cc,8ea2c8ccv 9250 e98990 9250 00009250 e0c6 e0c6 e0c6 e0c6 e0c6 e0c6 e0c6 -9706 e0c7 e0c7 e0c7 * * 484d 8ea2c8cd,8ea2c8cdv 9272 e989b2 9272 00009272 e0c7 e0c7 e0c7 e0c7 e0c7 e0c7 e0c7 -9707 e0c8 e0c8 e0c8 * * 484e 8ea2c8ce,8ea2c8cev 924e e9898e 924e 0000924e e0c8 e0c8 e0c8 e0c8 e0c8 e0c8 e0c8 -9708 e0c9 e0c9 e0c9 * * 484f 8ea2c8cf,8ea2c8cfv 9253 e98993 9253 00009253 e0c9 e0c9 e0c9 e0c9 e0c9 e0c9 e0c9 -9709 e0ca e0ca e0ca * * 4850 8ea2c8d0,8ea2c8d0v 924c e9898c 924c 0000924c e0ca e0ca e0ca e0ca e0ca e0ca e0ca -9710 e0cb e0cb e0cb * * 4851 8ea2c8d1,8ea2c8d1v 9256 e98996 9256 00009256 e0cb e0cb e0cb e0cb e0cb e0cb e0cb -9711 e0cc e0cc e0cc * * 4852 8ea2c8d2,8ea2c8d2v 9232 e988b2 9232 00009232 e0cc e0cc e0cc e0cc e0cc e0cc e0cc -9712 e0cd e0cd e0cd * * 4853 8ea2c8d3,8ea2c8d3v 959f e9969f 959f 0000959f e0cd e0cd e0cd e0cd e0cd e0cd e0cd -9713 e0ce e0ce e0ce * * 4854 8ea2c8d4,8ea2c8d4v 959c e9969c 959c 0000959c e0ce e0ce e0ce e0ce e0ce e0ce e0ce -9714 e0cf e0cf e0cf * * 4855 8ea2c8d5,8ea2c8d5v 959e e9969e 959e 0000959e e0cf e0cf e0cf e0cf e0cf e0cf e0cf -9715 e0d0 e0d0 e0d0 * * 4856 8ea2c8d6,8ea2c8d6v 959b e9969b 959b 0000959b e0d0 e0d0 e0d0 e0d0 e0d0 e0d0 e0d0 -9716 e0d1 e0d1 e0d1 * * 4857 8ea2c8d7,8ea2c8d7v 9692 e99a92 9692 00009692 e0d1 e0d1 e0d1 e0d1 e0d1 e0d1 e0d1 -9717 e0d2 e0d2 e0d2 * * 4858 8ea2c8d8,8ea2c8d8v 9693 e99a93 9693 00009693 e0d2 e0d2 e0d2 e0d2 e0d2 e0d2 e0d2 -9718 e0d3 e0d3 e0d3 * * 4859 8ea2c8d9,8ea2c8d9v 9691 e99a91 9691 00009691 e0d3 e0d3 e0d3 e0d3 e0d3 e0d3 e0d3 -9719 e0d4 e0d4 e0d4 * * 485a 8ea2c8da,8ea2c8dav 9697 e99a97 9697 00009697 e0d4 e0d4 e0d4 e0d4 e0d4 e0d4 e0d4 -9720 e0d5 e0d5 e0d5 * * 485b 8ea2c8db,8ea2c8dbv 96ce e99b8e 96ce 000096ce e0d5 e0d5 e0d5 e0d5 e0d5 e0d5 e0d5 -9721 e0d6 e0d6 e0d6 * * 485c 8ea2c8dc,8ea2c8dcv 96fa e99bba 96fa 000096fa e0d6 e0d6 e0d6 e0d6 e0d6 e0d6 e0d6 -9722 e0d7 e0d7 e0d7 * * 485d 8ea2c8dd,8ea2c8ddv 96fd e99bbd 96fd 000096fd e0d7 e0d7 e0d7 e0d7 e0d7 e0d7 e0d7 -9723 e0d8 e0d8 e0d8 * * 485e 8ea2c8de,8ea2c8dev 96f8 e99bb8 96f8 000096f8 e0d8 e0d8 e0d8 e0d8 e0d8 e0d8 e0d8 -9724 e0d9 e0d9 e0d9 * * 485f 8ea2c8df,8ea2c8dfv 96f5 e99bb5 96f5 000096f5 e0d9 e0d9 e0d9 e0d9 e0d9 e0d9 e0d9 -9725 e0da e0da e0da * * 4860 8ea2c8e0,8ea2c8e0v 9773 e99db3 9773 00009773 e0da e0da e0da e0da e0da e0da e0da -9726 e0db e0db e0db * * 4861 8ea2c8e1,8ea2c8e1v 9777 e99db7 9777 00009777 e0db e0db e0db e0db e0db e0db e0db -9727 e0dc e0dc e0dc * * 4862 8ea2c8e2,8ea2c8e2v 9778 e99db8 9778 00009778 e0dc e0dc e0dc e0dc e0dc e0dc e0dc -9728 e0dd e0dd e0dd * * 4863 8ea2c8e3,8ea2c8e3v 9772 e99db2 9772 00009772 e0dd e0dd e0dd e0dd e0dd e0dd e0dd -9729 e0de e0de e0de * * 4864 8ea2c8e4,8ea2c8e4v 980f e9a08f 980f 0000980f e0de e0de e0de e0de e0de e0de e0de -9730 e0df e0df e0df * * 4865 8ea2c8e5,8ea2c8e5v 980d e9a08d 980d 0000980d e0df e0df e0df e0df e0df e0df e0df -9731 e0e0 e0e0 e0e0 * * 4866 8ea2c8e6,8ea2c8e6v 980e e9a08e 980e 0000980e e0e0 e0e0 e0e0 e0e0 e0e0 e0e0 e0e0 -9732 e0e1 e0e1 e0e1 * * 4867 8ea2c8e7,8ea2c8e7v 98ac e9a2ac 98ac 000098ac e0e1 e0e1 e0e1 e0e1 e0e1 e0e1 e0e1 -9733 e0e2 e0e2 e0e2 * * 4868 8ea2c8e8,8ea2c8e8v 98f6 e9a3b6 98f6 000098f6 e0e2 e0e2 e0e2 e0e2 e0e2 e0e2 e0e2 -9734 e0e3 e0e3 e0e3 * * 4869 8ea2c8e9,8ea2c8e9v 98f9 e9a3b9 98f9 000098f9 e0e3 e0e3 e0e3 e0e3 e0e3 e0e3 e0e3 -9735 e0e4 e0e4 e0e4 * * 486a 8ea2c8ea,8ea2c8eav 99af e9a6af 99af 000099af e0e4 e0e4 e0e4 e0e4 e0e4 e0e4 e0e4 -9736 e0e5 e0e5 e0e5 * * 486b 8ea2c8eb,8ea2c8ebv 99b2 e9a6b2 99b2 000099b2 e0e5 e0e5 e0e5 e0e5 e0e5 e0e5 e0e5 -9737 e0e6 e0e6 e0e6 * * 486c 8ea2c8ec,8ea2c8ecv 99b0 e9a6b0 99b0 000099b0 e0e6 e0e6 e0e6 e0e6 e0e6 e0e6 e0e6 -9738 e0e7 e0e7 e0e7 * * 486d 8ea2c8ed,8ea2c8edv 99b5 e9a6b5 99b5 000099b5 e0e7 e0e7 e0e7 e0e7 e0e7 e0e7 e0e7 -9739 e0e8 e0e8 e0e8 * * 486e 8ea2c8ee,8ea2c8eev 9aad e9aaad 9aad 00009aad e0e8 e0e8 e0e8 e0e8 e0e8 e0e8 e0e8 -9740 e0e9 e0e9 e0e9 * * 486f 8ea2c8ef,8ea2c8efv 9aab e9aaab 9aab 00009aab e0e9 e0e9 e0e9 e0e9 e0e9 e0e9 e0e9 -9741 e0ea e0ea e0ea * * 4870 8ea2c8f0,8ea2c8f0v 9b5b e9ad9b 9b5b 00009b5b e0ea e0ea e0ea e0ea e0ea e0ea e0ea -9742 e0eb e0eb e0eb * * 4871 8ea2c8f1,8ea2c8f1v 9cea e9b3aa 9cea 00009cea e0eb e0eb e0eb e0eb e0eb e0eb e0eb -9743 e0ec e0ec e0ec * * 4872 8ea2c8f2,8ea2c8f2v 9ced e9b3ad 9ced 00009ced e0ec e0ec e0ec e0ec e0ec e0ec e0ec -9744 e0ed e0ed e0ed * * 4873 8ea2c8f3,8ea2c8f3v 9ce7 e9b3a7 9ce7 00009ce7 e0ed e0ed e0ed e0ed e0ed e0ed e0ed -9745 e0ee e0ee e0ee * * 4874 8ea2c8f4,8ea2c8f4v 9e80 e9ba80 9e80 00009e80 e0ee e0ee e0ee e0ee e0ee e0ee e0ee -9746 e0ef e0ef e0ef * 2930 4875 8ea1a9b0,8ea2c8f5,a9b0,8ea1a9b0v,8ea2c8f5v,a9b0v 9efd e2bf8c,e9bbbd 2fcc,9efd 00002fcc,00009efd e0ef e0ef e0ef e0ef e0ef e0ef e0ef -9747 e0f0 e0f0 e0f0 * * 4876 8ea2c8f6,8ea2c8f6v 50e6 e583a6 50e6 000050e6 e0f0 e0f0 e0f0 e0f0 e0f0 e0f0 e0f0 -9748 e0f1 e0f1 e0f1 * * 4877 8ea2c8f7,8ea2c8f7v 50d4 e58394 50d4 000050d4 e0f1 e0f1 e0f1 e0f1 e0f1 e0f1 e0f1 -9749 e0f2 e0f2 e0f2 * * 4878 8ea2c8f8,8ea2c8f8v 50d7 e58397 50d7 000050d7 e0f2 e0f2 e0f2 e0f2 e0f2 e0f2 e0f2 -9750 e0f3 e0f3 e0f3 * * 4879 8ea2c8f9,8ea2c8f9v 50e8 e583a8 50e8 000050e8 e0f3 e0f3 e0f3 e0f3 e0f3 e0f3 e0f3 -9751 e0f4 e0f4 e0f4 * * 487a 8ea2c8fa,8ea2c8fav 50f3 e583b3 50f3 000050f3 e0f4 e0f4 e0f4 e0f4 e0f4 e0f4 e0f4 -9752 e0f5 e0f5 e0f5 * * 487b 8ea2c8fb,8ea2c8fbv 50db e5839b 50db 000050db e0f5 e0f5 e0f5 e0f5 e0f5 e0f5 e0f5 -9753 e0f6 e0f6 e0f6 * * 487c 8ea2c8fc,8ea2c8fcv 50ea e583aa 50ea 000050ea e0f6 e0f6 e0f6 e0f6 e0f6 e0f6 e0f6 -9754 e0f7 e0f7 e0f7 * * 487d 8ea2c8fd,8ea2c8fdv 50dd e5839d 50dd 000050dd e0f7 e0f7 e0f7 e0f7 e0f7 e0f7 e0f7 -9755 e0f8 e0f8 e0f8 * * 487e 8ea2c8fe,8ea2c8fev 50e4 e583a4 50e4 000050e4 e0f8 e0f8 e0f8 e0f8 e0f8 e0f8 e0f8 -9756 e0f9 e0f9 e0f9 * * 4921 8ea2c9a1,8ea2c9a1v 50d3 e58393 50d3 000050d3 e0f9 e0f9 e0f9 e0f9 e0f9 e0f9 e0f9 -9757 e0fa e0fa e0fa * * 4922 8ea2c9a2,8ea2c9a2v 50ec e583ac 50ec 000050ec e0fa e0fa e0fa e0fa e0fa e0fa e0fa -9758 e0fb e0fb e0fb * * 4923 8ea2c9a3,8ea2c9a3v 50f0 e583b0 50f0 000050f0 e0fb e0fb e0fb e0fb e0fb e0fb e0fb -9759 e0fc e0fc e0fc * * 4924 8ea2c9a4,8ea2c9a4v 50ef e583af 50ef 000050ef e0fc e0fc e0fc e0fc e0fc e0fc e0fc -9760 e0fd e0fd e0fd * * 4925 8ea2c9a5,8ea2c9a5v 50e3 e583a3 50e3 000050e3 e0fd e0fd e0fd e0fd e0fd e0fd e0fd -9761 e0fe e0fe e0fe * * 4926 8ea2c9a6,8ea2c9a6v 50e0 e583a0 50e0 000050e0 e0fe e0fe e0fe e0fe e0fe e0fe e0fe -9762 e140 e140 e140 * * 4927 8ea2c9a7,8ea2c9a7v 51d8 e58798 51d8 000051d8 e140 e140 e140 e140 e140 e140 e140 -9763 e141 e141 e141 * * 4928 8ea2c9a8,8ea2c9a8v 5280 e58a80 5280 00005280 e141 e141 e141 e141 e141 e141 e141 -9764 e142 e142 e142 * * 4929 8ea2c9a9,8ea2c9a9v 5281 e58a81 5281 00005281 e142 e142 e142 e142 e142 e142 e142 -9765 e143 e143 e143 * * 492a 8ea2c9aa,8ea2c9aav 52e9 e58ba9 52e9 000052e9 e143 e143 e143 e143 e143 e143 e143 -9766 e144 e144 e144 * * 492b 8ea2c9ab,8ea2c9abv 52eb e58bab 52eb 000052eb e144 e144 e144 e144 e144 e144 e144 -9767 e145 e145 e145 * * 492c 8ea2c9ac,8ea2c9acv 5330 e58cb0 5330 00005330 e145 e145 e145 e145 e145 e145 e145 -9768 e146 e146 e146 * * 492d 8ea2c9ad,8ea2c9adv 53ac e58eac 53ac 000053ac e146 e146 e146 e146 e146 e146 e146 -9769 e147 e147 e147 * * 492e 8ea2c9ae,8ea2c9aev 5627 e598a7 5627 00005627 e147 e147 e147 e147 e147 e147 e147 -9770 e148 e148 e148 * * 492f 8ea2c9af,8ea2c9afv 5615 e59895 5615 00005615 e148 e148 e148 e148 e148 e148 e148 -9771 e149 e149 e149 * * 4930 8ea2c9b0,8ea2c9b0v 560c e5988c 560c 0000560c e149 e149 e149 e149 e149 e149 e149 -9772 e14a e14a e14a * * 4931 8ea2c9b1,8ea2c9b1v 5612 e59892 5612 00005612 e14a e14a e14a e14a e14a e14a e14a -9773 e14b e14b e14b * * 4932 8ea2c9b2,8ea2c9b2v 55fc e597bc 55fc 000055fc e14b e14b e14b e14b e14b e14b e14b -9774 e14c e14c e14c * * 4933 8ea2c9b3,8ea2c9b3v 560f e5988f 560f 0000560f e14c e14c e14c e14c e14c e14c e14c -9775 e14d e14d e14d * * 4934 8ea2c9b4,8ea2c9b4v 561c e5989c 561c 0000561c e14d e14d e14d e14d e14d e14d e14d -9776 e14e e14e e14e * * 4935 8ea2c9b5,8ea2c9b5v 5601 e59881 5601 00005601 e14e e14e e14e e14e e14e e14e e14e -9777 e14f e14f e14f * * 4936 8ea2c9b6,8ea2c9b6v 5613 e59893 5613 00005613 e14f e14f e14f e14f e14f e14f e14f -9778 e150 e150 e150 * * 4937 8ea2c9b7,8ea2c9b7v 5602 e59882 5602 00005602 e150 e150 e150 e150 e150 e150 e150 -9779 e151 e151 e151 * * 4938 8ea2c9b8,8ea2c9b8v 55fa e597ba 55fa 000055fa e151 e151 e151 e151 e151 e151 e151 -9780 e152 e152 e152 * * 4939 8ea2c9b9,8ea2c9b9v 561d e5989d 561d 0000561d e152 e152 e152 e152 e152 e152 e152 -9781 e153 e153 e153 * * 493a 8ea2c9ba,8ea2c9bav 5604 e59884 5604 00005604 e153 e153 e153 e153 e153 e153 e153 -9782 e154 e154 e154 * * 493b 8ea2c9bb,8ea2c9bbv 55ff e597bf 55ff 000055ff e154 e154 e154 e154 e154 e154 e154 -9783 e155 e155 e155 * * 493c 8ea2c9bc,8ea2c9bcv 55f9 e597b9 55f9 000055f9 e155 e155 e155 e155 e155 e155 e155 -9784 e156 e156 e156 * * 493d 8ea2c9bd,8ea2c9bdv 5889 e5a289 5889 00005889 e156 e156 e156 e156 e156 e156 e156 -9785 e157 e157 e157 * * 493e 8ea2c9be,8ea2c9bev 587c e5a1bc 587c 0000587c e157 e157 e157 e157 e157 e157 e157 -9786 e158 e158 e158 * * 493f 8ea2c9bf,8ea2c9bfv 5890 e5a290 5890 00005890 e158 e158 e158 e158 e158 e158 e158 -9787 e159 e159 e159 * * 4940 8ea2c9c0,8ea2c9c0v 5898 e5a298 5898 00005898 e159 e159 e159 e159 e159 e159 e159 -9788 e15a e15a e15a * * 4941 8ea2c9c1,8ea2c9c1v 5886 e5a286 5886 00005886 e15a e15a e15a e15a e15a e15a e15a -9789 e15b e15b e15b * * 4942 8ea2c9c2,8ea2c9c2v 5881 e5a281 5881 00005881 e15b e15b e15b e15b e15b e15b e15b -9790 e15c e15c e15c * * 4943 8ea2c9c3,8ea2c9c3v 587f e5a1bf 587f 0000587f e15c e15c e15c e15c e15c e15c e15c -9791 e15d e15d e15d * * 4944 8ea2c9c4,8ea2c9c4v 5874 e5a1b4 5874 00005874 e15d e15d e15d e15d e15d e15d e15d -9792 e15e e15e e15e * * 4945 8ea2c9c5,8ea2c9c5v 588b e5a28b 588b 0000588b e15e e15e e15e e15e e15e e15e e15e -9793 e15f e15f e15f * * 4946 8ea2c9c6,8ea2c9c6v 587a e5a1ba 587a 0000587a e15f e15f e15f e15f e15f e15f e15f -9794 e160 e160 e160 * * 4947 8ea2c9c7,8ea2c9c7v 5887 e5a287 5887 00005887 e160 e160 e160 e160 e160 e160 e160 -9795 e161 e161 e161 * * 4948 8ea2c9c8,8ea2c9c8v 5891 e5a291 5891 00005891 e161 e161 e161 e161 e161 e161 e161 -9796 e162 e162 e162 * * 4949 8ea2c9c9,8ea2c9c9v 588e e5a28e 588e 0000588e e162 e162 e162 e162 e162 e162 e162 -9797 e163 e163 e163 * * 494a 8ea2c9ca,8ea2c9cav 5876 e5a1b6 5876 00005876 e163 e163 e163 e163 e163 e163 e163 -9798 e164 e164 e164 * * 494b 8ea2c9cb,8ea2c9cbv 5882 e5a282 5882 00005882 e164 e164 e164 e164 e164 e164 e164 -9799 e165 e165 e165 * * 494c 8ea2c9cc,8ea2c9ccv 5888 e5a288 5888 00005888 e165 e165 e165 e165 e165 e165 e165 -9800 e166 e166 e166 * * 494d 8ea2c9cd,8ea2c9cdv 587b e5a1bb 587b 0000587b e166 e166 e166 e166 e166 e166 e166 -9801 e167 e167 e167 * * 494e 8ea2c9ce,8ea2c9cev 5894 e5a294 5894 00005894 e167 e167 e167 e167 e167 e167 e167 -9802 e168 e168 e168 * * 494f 8ea2c9cf,8ea2c9cfv 588f e5a28f 588f 0000588f e168 e168 e168 e168 e168 e168 e168 -9803 e169 e169 e169 * * 4950 8ea2c9d0,8ea2c9d0v 58fe e5a3be 58fe 000058fe e169 e169 e169 e169 e169 e169 e169 -9804 e16a e16a e16a * * 4951 8ea2c9d1,8ea2c9d1v 596b e5a5ab 596b 0000596b e16a e16a e16a e16a e16a e16a e16a -9805 e16b e16b e16b * * 4952 8ea2c9d2,8ea2c9d2v 5adc e5ab9c 5adc 00005adc e16b e16b e16b e16b e16b e16b e16b -9806 e16c e16c e16c * * 4953 8ea2c9d3,8ea2c9d3v 5aee e5abae 5aee 00005aee e16c e16c e16c e16c e16c e16c e16c -9807 e16d e16d e16d * * 4954 8ea2c9d4,8ea2c9d4v 5ae5 e5aba5 5ae5 00005ae5 e16d e16d e16d e16d e16d e16d e16d -9808 e16e e16e e16e * * 4955 8ea2c9d5,8ea2c9d5v 5ad5 e5ab95 5ad5 00005ad5 e16e e16e e16e e16e e16e e16e e16e -9809 e16f e16f e16f * * 4956 8ea2c9d6,8ea2c9d6v 5aea e5abaa 5aea 00005aea e16f e16f e16f e16f e16f e16f e16f -9810 e170 e170 e170 * * 4957 8ea2c9d7,8ea2c9d7v 5ada e5ab9a 5ada 00005ada e170 e170 e170 e170 e170 e170 e170 -9811 e171 e171 e171 * * 4958 8ea2c9d8,8ea2c9d8v 5aed e5abad 5aed 00005aed e171 e171 e171 e171 e171 e171 e171 -9812 e172 e172 e172 * * 4959 8ea2c9d9,8ea2c9d9v 5aeb e5abab 5aeb 00005aeb e172 e172 e172 e172 e172 e172 e172 -9813 e173 e173 e173 * * 495a 8ea2c9da,8ea2c9dav 5af3 e5abb3 5af3 00005af3 e173 e173 e173 e173 e173 e173 e173 -9814 e174 e174 e174 * * 495b 8ea2c9db,8ea2c9dbv 5ae2 e5aba2 5ae2 00005ae2 e174 e174 e174 e174 e174 e174 e174 -9815 e175 e175 e175 * * 495c 8ea2c9dc,8ea2c9dcv 5ae0 e5aba0 5ae0 00005ae0 e175 e175 e175 e175 e175 e175 e175 -9816 e176 e176 e176 * * 495d 8ea2c9dd,8ea2c9ddv 5adb e5ab9b 5adb 00005adb e176 e176 e176 e176 e176 e176 e176 -9817 e177 e177 e177 * * 495e 8ea2c9de,8ea2c9dev 5aec e5abac 5aec 00005aec e177 e177 e177 e177 e177 e177 e177 -9818 e178 e178 e178 * * 495f 8ea2c9df,8ea2c9dfv 5ade e5ab9e 5ade 00005ade e178 e178 e178 e178 e178 e178 e178 -9819 e179 e179 e179 * * 4960 8ea2c9e0,8ea2c9e0v 5add e5ab9d 5add 00005add e179 e179 e179 e179 e179 e179 e179 -9820 e17a e17a e17a * * 4961 8ea2c9e1,8ea2c9e1v 5ad9 e5ab99 5ad9 00005ad9 e17a e17a e17a e17a e17a e17a e17a -9821 e17b e17b e17b * * 4962 8ea2c9e2,8ea2c9e2v 5ae8 e5aba8 5ae8 00005ae8 e17b e17b e17b e17b e17b e17b e17b -9822 e17c e17c e17c * * 4963 8ea2c9e3,8ea2c9e3v 5adf e5ab9f 5adf 00005adf e17c e17c e17c e17c e17c e17c e17c -9823 e17d e17d e17d * * 4964 8ea2c9e4,8ea2c9e4v 5b77 e5adb7 5b77 00005b77 e17d e17d e17d e17d e17d e17d e17d -9824 e17e e17e e17e * * 4965 8ea2c9e5,8ea2c9e5v 5be0 e5afa0 5be0 00005be0 e17e e17e e17e e17e e17e e17e e17e -9825 e1a1 e1a1 e1a1 * * 4966 8ea2c9e6,8ea2c9e6v 5be3 e5afa3 5be3 00005be3 e1a1 e1a1 e1a1 e1a1 e1a1 e1a1 e1a1 -9826 e1a2 e1a2 e1a2 * * 4967 8ea2c9e7,8ea2c9e7v 5c63 e5b1a3 5c63 00005c63 e1a2 e1a2 e1a2 e1a2 e1a2 e1a2 e1a2 -9827 e1a3 e1a3 e1a3 * * 4968 8ea2c9e8,8ea2c9e8v 5d82 e5b682 5d82 00005d82 e1a3 e1a3 e1a3 e1a3 e1a3 e1a3 e1a3 -9828 e1a4 e1a4 e1a4 * * 4969 8ea2c9e9,8ea2c9e9v 5d80 e5b680 5d80 00005d80 e1a4 e1a4 e1a4 e1a4 e1a4 e1a4 e1a4 -9829 e1a5 e1a5 e1a5 * * 496a 8ea2c9ea,8ea2c9eav 5d7d e5b5bd 5d7d 00005d7d e1a5 e1a5 e1a5 e1a5 e1a5 e1a5 e1a5 -9830 e1a6 e1a6 e1a6 * * 496b 8ea2c9eb,8ea2c9ebv 5d86 e5b686 5d86 00005d86 e1a6 e1a6 e1a6 e1a6 e1a6 e1a6 e1a6 -9831 e1a7 e1a7 e1a7 * * 496c 8ea2c9ec,8ea2c9ecv 5d7a e5b5ba 5d7a 00005d7a e1a7 e1a7 e1a7 e1a7 e1a7 e1a7 e1a7 -9832 e1a8 e1a8 e1a8 * * 496d 8ea2c9ed,8ea2c9edv 5d81 e5b681 5d81 00005d81 e1a8 e1a8 e1a8 e1a8 e1a8 e1a8 e1a8 -9833 e1a9 e1a9 e1a9 * * 496e 8ea2c9ee,8ea2c9eev 5d77 e5b5b7 5d77 00005d77 e1a9 e1a9 e1a9 e1a9 e1a9 e1a9 e1a9 -9834 e1aa e1aa e1aa * * 496f 8ea2c9ef,8ea2c9efv 5d8a e5b68a 5d8a 00005d8a e1aa e1aa e1aa e1aa e1aa e1aa e1aa -9835 e1ab e1ab e1ab * * 4970 8ea2c9f0,8ea2c9f0v 5d89 e5b689 5d89 00005d89 e1ab e1ab e1ab e1ab e1ab e1ab e1ab -9836 e1ac e1ac e1ac * * 4971 8ea2c9f1,8ea2c9f1v 5d88 e5b688 5d88 00005d88 e1ac e1ac e1ac e1ac e1ac e1ac e1ac -9837 e1ad e1ad e1ad * * 4972 8ea2c9f2,8ea2c9f2v 5d7e e5b5be 5d7e 00005d7e e1ad e1ad e1ad e1ad e1ad e1ad e1ad -9838 e1ae e1ae e1ae * * 4973 8ea2c9f3,8ea2c9f3v 5d7c e5b5bc 5d7c 00005d7c e1ae e1ae e1ae e1ae e1ae e1ae e1ae -9839 e1af e1af e1af * * 4974 8ea2c9f4,8ea2c9f4v 5d8d e5b68d 5d8d 00005d8d e1af e1af e1af e1af e1af e1af e1af -9840 e1b0 e1b0 e1b0 * * 4975 8ea2c9f5,8ea2c9f5v 5d79 e5b5b9 5d79 00005d79 e1b0 e1b0 e1b0 e1b0 e1b0 e1b0 e1b0 -9841 e1b1 e1b1 e1b1 * * 4976 8ea2c9f6,8ea2c9f6v 5d7f e5b5bf 5d7f 00005d7f e1b1 e1b1 e1b1 e1b1 e1b1 e1b1 e1b1 -9842 e1b2 e1b2 e1b2 * * 4977 8ea2c9f7,8ea2c9f7v 5e58 e5b998 5e58 00005e58 e1b2 e1b2 e1b2 e1b2 e1b2 e1b2 e1b2 -9843 e1b3 e1b3 e1b3 * * 4978 8ea2c9f8,8ea2c9f8v 5e59 e5b999 5e59 00005e59 e1b3 e1b3 e1b3 e1b3 e1b3 e1b3 e1b3 -9844 e1b4 e1b4 e1b4 * * 4979 8ea2c9f9,8ea2c9f9v 5e53 e5b993 5e53 00005e53 e1b4 e1b4 e1b4 e1b4 e1b4 e1b4 e1b4 -9845 e1b5 e1b5 e1b5 * * 497a 8ea2c9fa,8ea2c9fav 5ed8 e5bb98 5ed8 00005ed8 e1b5 e1b5 e1b5 e1b5 e1b5 e1b5 e1b5 -9846 e1b6 e1b6 e1b6 * * 497b 8ea2c9fb,8ea2c9fbv 5ed1 e5bb91 5ed1 00005ed1 e1b6 e1b6 e1b6 e1b6 e1b6 e1b6 e1b6 -9847 e1b7 e1b7 e1b7 * * 497c 8ea2c9fc,8ea2c9fcv 5ed7 e5bb97 5ed7 00005ed7 e1b7 e1b7 e1b7 e1b7 e1b7 e1b7 e1b7 -9848 e1b8 e1b8 e1b8 * * 497d 8ea2c9fd,8ea2c9fdv 5ece e5bb8e 5ece 00005ece e1b8 e1b8 e1b8 e1b8 e1b8 e1b8 e1b8 -9849 e1b9 e1b9 e1b9 * * 497e 8ea2c9fe,8ea2c9fev 5edc e5bb9c 5edc 00005edc e1b9 e1b9 e1b9 e1b9 e1b9 e1b9 e1b9 -9850 e1ba e1ba e1ba * * 4a21 8ea2caa1,8ea2caa1v 5ed5 e5bb95 5ed5 00005ed5 e1ba e1ba e1ba e1ba e1ba e1ba e1ba -9851 e1bb e1bb e1bb * * 4a22 8ea2caa2,8ea2caa2v 5ed9 e5bb99 5ed9 00005ed9 e1bb e1bb e1bb e1bb e1bb e1bb e1bb -9852 e1bc e1bc e1bc * * 4a23 8ea2caa3,8ea2caa3v 5ed2 e5bb92 5ed2 00005ed2 e1bc e1bc e1bc e1bc e1bc e1bc e1bc -9853 e1bd e1bd e1bd * * 4a24 8ea2caa4,8ea2caa4v 5ed4 e5bb94 5ed4 00005ed4 e1bd e1bd e1bd e1bd e1bd e1bd e1bd -9854 e1be e1be e1be * * 4a25 8ea2caa5,8ea2caa5v 5f44 e5bd84 5f44 00005f44 e1be e1be e1be e1be e1be e1be e1be -9855 e1bf e1bf e1bf * * 4a26 8ea2caa6,8ea2caa6v 5f43 e5bd83 5f43 00005f43 e1bf e1bf e1bf e1bf e1bf e1bf e1bf -9856 e1c0 e1c0 e1c0 * * 4a27 8ea2caa7,8ea2caa7v 5f6f e5bdaf 5f6f 00005f6f e1c0 e1c0 e1c0 e1c0 e1c0 e1c0 e1c0 -9857 e1c1 e1c1 e1c1 * * 4a28 8ea2caa8,8ea2caa8v 5fb6 e5beb6 5fb6 00005fb6 e1c1 e1c1 e1c1 e1c1 e1c1 e1c1 e1c1 -9858 e1c2 e1c2 e1c2 * * 4a29 8ea2caa9,8ea2caa9v 612c e684ac 612c 0000612c e1c2 e1c2 e1c2 e1c2 e1c2 e1c2 e1c2 -9859 e1c3 e1c3 e1c3 * * 4a2a 8ea2caaa,8ea2caaav 6128 e684a8 6128 00006128 e1c3 e1c3 e1c3 e1c3 e1c3 e1c3 e1c3 -9860 e1c4 e1c4 e1c4 * * 4a2b 8ea2caab,8ea2caabv 6141 e68581 6141 00006141 e1c4 e1c4 e1c4 e1c4 e1c4 e1c4 e1c4 -9861 e1c5 e1c5 e1c5 * * 4a2c 8ea2caac,8ea2caacv 615e e6859e 615e 0000615e e1c5 e1c5 e1c5 e1c5 e1c5 e1c5 e1c5 -9862 e1c6 e1c6 e1c6 * * 4a2d 8ea2caad,8ea2caadv 6171 e685b1 6171 00006171 e1c6 e1c6 e1c6 e1c6 e1c6 e1c6 e1c6 -9863 e1c7 e1c7 e1c7 * * 4a2e 8ea2caae,8ea2caaev 6173 e685b3 6173 00006173 e1c7 e1c7 e1c7 e1c7 e1c7 e1c7 e1c7 -9864 e1c8 e1c8 e1c8 * * 4a2f 8ea2caaf,8ea2caafv 6152 e68592 6152 00006152 e1c8 e1c8 e1c8 e1c8 e1c8 e1c8 e1c8 -9865 e1c9 e1c9 e1c9 * * 4a30 8ea2cab0,8ea2cab0v 6153 e68593 6153 00006153 e1c9 e1c9 e1c9 e1c9 e1c9 e1c9 e1c9 -9866 e1ca e1ca e1ca * * 4a31 8ea2cab1,8ea2cab1v 6172 e685b2 6172 00006172 e1ca e1ca e1ca e1ca e1ca e1ca e1ca -9867 e1cb e1cb e1cb * * 4a32 8ea2cab2,8ea2cab2v 616c e685ac 616c 0000616c e1cb e1cb e1cb e1cb e1cb e1cb e1cb -9868 e1cc e1cc e1cc * * 4a33 8ea2cab3,8ea2cab3v 6180 e68680 6180 00006180 e1cc e1cc e1cc e1cc e1cc e1cc e1cc -9869 e1cd e1cd e1cd * * 4a34 8ea2cab4,8ea2cab4v 6174 e685b4 6174 00006174 e1cd e1cd e1cd e1cd e1cd e1cd e1cd -9870 e1ce e1ce e1ce * * 4a35 8ea2cab5,8ea2cab5v 6154 e68594 6154 00006154 e1ce e1ce e1ce e1ce e1ce e1ce e1ce -9871 e1cf e1cf e1cf * * 4a36 8ea2cab6,8ea2cab6v 617a e685ba 617a 0000617a e1cf e1cf e1cf e1cf e1cf e1cf e1cf -9872 e1d0 e1d0 e1d0 * * 4a37 8ea2cab7,8ea2cab7v 615b e6859b 615b 0000615b e1d0 e1d0 e1d0 e1d0 e1d0 e1d0 e1d0 -9873 e1d1 e1d1 e1d1 * * 4a38 8ea2cab8,8ea2cab8v 6165 e685a5 6165 00006165 e1d1 e1d1 e1d1 e1d1 e1d1 e1d1 e1d1 -9874 e1d2 e1d2 e1d2 * * 4a39 8ea2cab9,8ea2cab9v 613b e684bb 613b 0000613b e1d2 e1d2 e1d2 e1d2 e1d2 e1d2 e1d2 -9875 e1d3 e1d3 e1d3 * * 4a3a 8ea2caba,8ea2cabav 616a e685aa 616a 0000616a e1d3 e1d3 e1d3 e1d3 e1d3 e1d3 e1d3 -9876 e1d4 e1d4 e1d4 * * 4a3b 8ea2cabb,8ea2cabbv 6161 e685a1 6161 00006161 e1d4 e1d4 e1d4 e1d4 e1d4 e1d4 e1d4 -9877 e1d5 e1d5 e1d5 * * 4a3c 8ea2cabc,8ea2cabcv 6156 e68596 6156 00006156 e1d5 e1d5 e1d5 e1d5 e1d5 e1d5 e1d5 -9878 e1d6 e1d6 e1d6 * * 4a3d 8ea2cabd,8ea2cabdv 6229 e688a9 6229 00006229 e1d6 e1d6 e1d6 e1d6 e1d6 e1d6 e1d6 -9879 e1d7 e1d7 e1d7 * * 4a3e 8ea2cabe,8ea2cabev 6227 e688a7 6227 00006227 e1d7 e1d7 e1d7 e1d7 e1d7 e1d7 e1d7 -9880 e1d8 e1d8 e1d8 * * 4a3f 8ea2cabf,8ea2cabfv 622b e688ab 622b 0000622b e1d8 e1d8 e1d8 e1d8 e1d8 e1d8 e1d8 -9881 e1d9 e1d9 e1d9 * * 4a40 8ea2cac0,8ea2cac0v 642b e690ab 642b 0000642b e1d9 e1d9 e1d9 e1d9 e1d9 e1d9 e1d9 -9882 e1da e1da e1da * * 4a41 8ea2cac1,8ea2cac1v 644d e6918d 644d 0000644d e1da e1da e1da e1da e1da e1da e1da -9883 e1db e1db e1db * * 4a42 8ea2cac2,8ea2cac2v 645b e6919b 645b 0000645b e1db e1db e1db e1db e1db e1db e1db -9884 e1dc e1dc e1dc * * 4a43 8ea2cac3,8ea2cac3v 645d e6919d 645d 0000645d e1dc e1dc e1dc e1dc e1dc e1dc e1dc -9885 e1dd e1dd e1dd * * 4a44 8ea2cac4,8ea2cac4v 6474 e691b4 6474 00006474 e1dd e1dd e1dd e1dd e1dd e1dd e1dd -9886 e1de e1de e1de * * 4a45 8ea2cac5,8ea2cac5v 6476 e691b6 6476 00006476 e1de e1de e1de e1de e1de e1de e1de -9887 e1df e1df e1df * * 4a46 8ea2cac6,8ea2cac6v 6472 e691b2 6472 00006472 e1df e1df e1df e1df e1df e1df e1df -9888 e1e0 e1e0 e1e0 * * 4a47 8ea2cac7,8ea2cac7v 6473 e691b3 6473 00006473 e1e0 e1e0 e1e0 e1e0 e1e0 e1e0 e1e0 -9889 e1e1 e1e1 e1e1 * * 4a48 8ea2cac8,8ea2cac8v 647d e691bd 647d 0000647d e1e1 e1e1 e1e1 e1e1 e1e1 e1e1 e1e1 -9890 e1e2 e1e2 e1e2 * * 4a49 8ea2cac9,8ea2cac9v 6475 e691b5 6475 00006475 e1e2 e1e2 e1e2 e1e2 e1e2 e1e2 e1e2 -9891 e1e3 e1e3 e1e3 * * 4a4a 8ea2caca,8ea2cacav 6466 e691a6 6466 00006466 e1e3 e1e3 e1e3 e1e3 e1e3 e1e3 e1e3 -9892 e1e4 e1e4 e1e4 * * 4a4b 8ea2cacb,8ea2cacbv 64a6 e692a6 64a6 000064a6 e1e4 e1e4 e1e4 e1e4 e1e4 e1e4 e1e4 -9893 e1e5 e1e5 e1e5 * * 4a4c 8ea2cacc,8ea2caccv 644e e6918e 644e 0000644e e1e5 e1e5 e1e5 e1e5 e1e5 e1e5 e1e5 -9894 e1e6 e1e6 e1e6 * * 4a4d 8ea2cacd,8ea2cacdv 6482 e69282 6482 00006482 e1e6 e1e6 e1e6 e1e6 e1e6 e1e6 e1e6 -9895 e1e7 e1e7 e1e7 * * 4a4e 8ea2cace,8ea2cacev 645e e6919e 645e 0000645e e1e7 e1e7 e1e7 e1e7 e1e7 e1e7 e1e7 -9896 e1e8 e1e8 e1e8 * * 4a4f 8ea2cacf,8ea2cacfv 645c e6919c 645c 0000645c e1e8 e1e8 e1e8 e1e8 e1e8 e1e8 e1e8 -9897 e1e9 e1e9 e1e9 * * 4a50 8ea2cad0,8ea2cad0v 644b e6918b 644b 0000644b e1e9 e1e9 e1e9 e1e9 e1e9 e1e9 e1e9 -9898 e1ea e1ea e1ea * * 4a51 8ea2cad1,8ea2cad1v 6453 e69193 6453 00006453 e1ea e1ea e1ea e1ea e1ea e1ea e1ea -9899 e1eb e1eb e1eb * * 4a52 8ea2cad2,8ea2cad2v 6460 e691a0 6460 00006460 e1eb e1eb e1eb e1eb e1eb e1eb e1eb -9900 e1ec e1ec e1ec * * 4a53 8ea2cad3,8ea2cad3v 6450 e69190 6450 00006450 e1ec e1ec e1ec e1ec e1ec e1ec e1ec -9901 e1ed e1ed e1ed * * 4a54 8ea2cad4,8ea2cad4v 647f e691bf 647f 0000647f e1ed e1ed e1ed e1ed e1ed e1ed e1ed -9902 e1ee e1ee e1ee * * 4a55 8ea2cad5,8ea2cad5v 643f e690bf 643f 0000643f e1ee e1ee e1ee e1ee e1ee e1ee e1ee -9903 e1ef e1ef e1ef * * 4a56 8ea2cad6,8ea2cad6v 646c e691ac 646c 0000646c e1ef e1ef e1ef e1ef e1ef e1ef e1ef -9904 e1f0 e1f0 e1f0 * * 4a57 8ea2cad7,8ea2cad7v 646b e691ab 646b 0000646b e1f0 e1f0 e1f0 e1f0 e1f0 e1f0 e1f0 -9905 e1f1 e1f1 e1f1 * * 4a58 8ea2cad8,8ea2cad8v 6459 e69199 6459 00006459 e1f1 e1f1 e1f1 e1f1 e1f1 e1f1 e1f1 -9906 e1f2 e1f2 e1f2 * * 4a59 8ea2cad9,8ea2cad9v 6465 e691a5 6465 00006465 e1f2 e1f2 e1f2 e1f2 e1f2 e1f2 e1f2 -9907 e1f3 e1f3 e1f3 * * 4a5a 8ea2cada,8ea2cadav 6477 e691b7 6477 00006477 e1f3 e1f3 e1f3 e1f3 e1f3 e1f3 e1f3 -9908 e1f4 e1f4 e1f4 * * 4a5b 8ea2cadb,8ea2cadbv 6573 e695b3 6573 00006573 e1f4 e1f4 e1f4 e1f4 e1f4 e1f4 e1f4 -9909 e1f5 e1f5 e1f5 * * 4a5c 8ea2cadc,8ea2cadcv 65a0 e696a0 65a0 000065a0 e1f5 e1f5 e1f5 e1f5 e1f5 e1f5 e1f5 -9910 e1f6 e1f6 e1f6 * * 4a5d 8ea2cadd,8ea2caddv 66a1 e69aa1 66a1 000066a1 e1f6 e1f6 e1f6 e1f6 e1f6 e1f6 e1f6 -9911 e1f7 e1f7 e1f7 * * 4a5e 8ea2cade,8ea2cadev 66a0 e69aa0 66a0 000066a0 e1f7 e1f7 e1f7 e1f7 e1f7 e1f7 e1f7 -9912 e1f8 e1f8 e1f8 * * 4a5f 8ea2cadf,8ea2cadfv 669f e69a9f 669f 0000669f e1f8 e1f8 e1f8 e1f8 e1f8 e1f8 e1f8 -9913 e1f9 e1f9 e1f9 * * 4a60 8ea2cae0,8ea2cae0v 6705 e69c85 6705 00006705 e1f9 e1f9 e1f9 e1f9 e1f9 e1f9 e1f9 -9914 e1fa e1fa e1fa * * 4a61 8ea2cae1,8ea2cae1v 6704 e69c84 6704 00006704 e1fa e1fa e1fa e1fa e1fa e1fa e1fa -9915 e1fb e1fb e1fb * * 4a62 8ea2cae2,8ea2cae2v 6722 e69ca2 6722 00006722 e1fb e1fb e1fb e1fb e1fb e1fb e1fb -9916 e1fc e1fc e1fc * * 4a63 8ea2cae3,8ea2cae3v 69b1 e6a6b1 69b1 000069b1 e1fc e1fc e1fc e1fc e1fc e1fc e1fc -9917 e1fd e1fd e1fd * * 4a64 8ea2cae4,8ea2cae4v 69b6 e6a6b6 69b6 000069b6 e1fd e1fd e1fd e1fd e1fd e1fd e1fd -9918 e1fe e1fe e1fe * * 4a65 8ea2cae5,8ea2cae5v 69c9 e6a789 69c9 000069c9 e1fe e1fe e1fe e1fe e1fe e1fe e1fe -9919 e240 e240 e240 * * 4a66 8ea2cae6,8ea2cae6v 69a0 e6a6a0 69a0 000069a0 e240 e240 e240 e240 e240 e240 e240 -9920 e241 e241 e241 * * 4a67 8ea2cae7,8ea2cae7v 69ce e6a78e 69ce 000069ce e241 e241 e241 e241 e241 e241 e241 -9921 e242 e242 e242 * * 4a68 8ea2cae8,8ea2cae8v 6996 e6a696 6996 00006996 e242 e242 e242 e242 e242 e242 e242 -9922 e243 e243 e243 * * 4a69 8ea2cae9,8ea2cae9v 69b0 e6a6b0 69b0 000069b0 e243 e243 e243 e243 e243 e243 e243 -9923 e244 e244 e244 * * 4a6a 8ea2caea,8ea2caeav 69ac e6a6ac 69ac 000069ac e244 e244 e244 e244 e244 e244 e244 -9924 e245 e245 e245 * * 4a6b 8ea2caeb,8ea2caebv 69bc e6a6bc 69bc 000069bc e245 e245 e245 e245 e245 e245 e245 -9925 e246 e246 e246 * * 4a6c 8ea2caec,8ea2caecv 6991 e6a691 6991 00006991 e246 e246 e246 e246 e246 e246 e246 -9926 e247 e247 e247 * * 4a6d 8ea2caed,8ea2caedv 6999 e6a699 6999 00006999 e247 e247 e247 e247 e247 e247 e247 -9927 e248 e248 e248 * * 4a6e 8ea2caee,8ea2caeev 698e e6a68e 698e 0000698e e248 e248 e248 e248 e248 e248 e248 -9928 e249 e249 e249 * * 4a6f 8ea2caef,8ea2caefv 69a7 e6a6a7 69a7 000069a7 e249 e249 e249 e249 e249 e249 e249 -9929 e24a e24a e24a * * 4a70 8ea2caf0,8ea2caf0v 698d e6a68d 698d 0000698d e24a e24a e24a e24a e24a e24a e24a -9930 e24b e24b e24b * * 4a71 8ea2caf1,8ea2caf1v 69a9 e6a6a9 69a9 000069a9 e24b e24b e24b e24b e24b e24b e24b -9931 e24c e24c e24c * * 4a72 8ea2caf2,8ea2caf2v 69be e6a6be 69be 000069be e24c e24c e24c e24c e24c e24c e24c -9932 e24d e24d e24d * * 4a73 8ea2caf3,8ea2caf3v 69af e6a6af 69af 000069af e24d e24d e24d e24d e24d e24d e24d -9933 e24e e24e e24e * * 4a74 8ea2caf4,8ea2caf4v 69bf e6a6bf 69bf 000069bf e24e e24e e24e e24e e24e e24e e24e -9934 e24f e24f e24f * * 4a75 8ea2caf5,8ea2caf5v 69c4 e6a784 69c4 000069c4 e24f e24f e24f e24f e24f e24f e24f -9935 e250 e250 e250 * * 4a76 8ea2caf6,8ea2caf6v 69bd e6a6bd 69bd 000069bd e250 e250 e250 e250 e250 e250 e250 -9936 e251 e251 e251 * * 4a77 8ea2caf7,8ea2caf7v 69a4 e6a6a4 69a4 000069a4 e251 e251 e251 e251 e251 e251 e251 -9937 e252 e252 e252 * * 4a78 8ea2caf8,8ea2caf8v 69d4 e6a794 69d4 000069d4 e252 e252 e252 e252 e252 e252 e252 -9938 e253 e253 e253 * * 4a79 8ea2caf9,8ea2caf9v 69b9 e6a6b9 69b9 000069b9 e253 e253 e253 e253 e253 e253 e253 -9939 e254 e254 e254 * * 4a7a 8ea2cafa,8ea2cafav 69ca e6a78a 69ca 000069ca e254 e254 e254 e254 e254 e254 e254 -9940 e255 e255 e255 * * 4a7b 8ea2cafb,8ea2cafbv 699a e6a69a 699a 0000699a e255 e255 e255 e255 e255 e255 e255 -9941 e256 e256 e256 * * 4a7c 8ea2cafc,8ea2cafcv 69cf e6a78f 69cf 000069cf e256 e256 e256 e256 e256 e256 e256 -9942 e257 e257 e257 * * 4a7d 8ea2cafd,8ea2cafdv 69b3 e6a6b3 69b3 000069b3 e257 e257 e257 e257 e257 e257 e257 -9943 e258 e258 e258 * * 4a7e 8ea2cafe,8ea2cafev 6993 e6a693 6993 00006993 e258 e258 e258 e258 e258 e258 e258 -9944 e259 e259 e259 * * 4b21 8ea2cba1,8ea2cba1v 69aa e6a6aa 69aa 000069aa e259 e259 e259 e259 e259 e259 e259 -9945 e25a e25a e25a * * 4b22 8ea2cba2,8ea2cba2v 69a1 e6a6a1 69a1 000069a1 e25a e25a e25a e25a e25a e25a e25a -9946 e25b e25b e25b * * 4b23 8ea2cba3,8ea2cba3v 699e e6a69e 699e 0000699e e25b e25b e25b e25b e25b e25b e25b -9947 e25c e25c e25c * * 4b24 8ea2cba4,8ea2cba4v 69d9 e6a799 69d9 000069d9 e25c e25c e25c e25c e25c e25c e25c -9948 e25d e25d e25d * * 4b25 8ea2cba5,8ea2cba5v 6997 e6a697 6997 00006997 e25d e25d e25d e25d e25d e25d e25d -9949 e25e e25e e25e * * 4b26 8ea2cba6,8ea2cba6v 6990 e6a690 6990 00006990 e25e e25e e25e e25e e25e e25e e25e -9950 e25f e25f e25f * * 4b27 8ea2cba7,8ea2cba7v 69c2 e6a782 69c2 000069c2 e25f e25f e25f e25f e25f e25f e25f -9951 e260 e260 e260 * * 4b28 8ea2cba8,8ea2cba8v 69b5 e6a6b5 69b5 000069b5 e260 e260 e260 e260 e260 e260 e260 -9952 e261 e261 e261 * * 4b29 8ea2cba9,8ea2cba9v 69a5 e6a6a5 69a5 000069a5 e261 e261 e261 e261 e261 e261 e261 -9953 e262 e262 e262 * * 4b2a 8ea2cbaa,8ea2cbaav 69c6 e6a786 69c6 000069c6 e262 e262 e262 e262 e262 e262 e262 -9954 e263 e263 e263 * * 4b2b 8ea2cbab,8ea2cbabv 6b4a e6ad8a 6b4a 00006b4a e263 e263 e263 e263 e263 e263 e263 -9955 e264 e264 e264 * * 4b2c 8ea2cbac,8ea2cbacv 6b4d e6ad8d 6b4d 00006b4d e264 e264 e264 e264 e264 e264 e264 -9956 e265 e265 e265 * * 4b2d 8ea2cbad,8ea2cbadv 6b4b e6ad8b 6b4b 00006b4b e265 e265 e265 e265 e265 e265 e265 -9957 e266 e266 e266 * * 4b2e 8ea2cbae,8ea2cbaev 6b9e e6ae9e 6b9e 00006b9e e266 e266 e266 e266 e266 e266 e266 -9958 e267 e267 e267 * * 4b2f 8ea2cbaf,8ea2cbafv 6b9f e6ae9f 6b9f 00006b9f e267 e267 e267 e267 e267 e267 e267 -9959 e268 e268 e268 * * 4b30 8ea2cbb0,8ea2cbb0v 6ba0 e6aea0 6ba0 00006ba0 e268 e268 e268 e268 e268 e268 e268 -9960 e269 e269 e269 * * 4b31 8ea2cbb1,8ea2cbb1v 6bc3 e6af83 6bc3 00006bc3 e269 e269 e269 e269 e269 e269 e269 -9961 e26a e26a e26a * * 4b32 8ea2cbb2,8ea2cbb2v 6bc4 e6af84 6bc4 00006bc4 e26a e26a e26a e26a e26a e26a e26a -9962 e26b e26b e26b * * 4b33 8ea2cbb3,8ea2cbb3v 6bfe e6afbe 6bfe 00006bfe e26b e26b e26b e26b e26b e26b e26b -9963 e26c e26c e26c * * 4b34 8ea2cbb4,8ea2cbb4v 6ece e6bb8e 6ece 00006ece e26c e26c e26c e26c e26c e26c e26c -9964 e26d e26d e26d * * 4b35 8ea2cbb5,8ea2cbb5v 6ef5 e6bbb5 6ef5 00006ef5 e26d e26d e26d e26d e26d e26d e26d -9965 e26e e26e e26e * * 4b36 8ea2cbb6,8ea2cbb6v 6ef1 e6bbb1 6ef1 00006ef1 e26e e26e e26e e26e e26e e26e e26e -9966 e26f e26f e26f * * 4b37 8ea2cbb7,8ea2cbb7v 6f03 e6bc83 6f03 00006f03 e26f e26f e26f e26f e26f e26f e26f -9967 e270 e270 e270 * * 4b38 8ea2cbb8,8ea2cbb8v 6f25 e6bca5 6f25 00006f25 e270 e270 e270 e270 e270 e270 e270 -9968 e271 e271 e271 * * 4b39 8ea2cbb9,8ea2cbb9v 6ef8 e6bbb8 6ef8 00006ef8 e271 e271 e271 e271 e271 e271 e271 -9969 e272 e272 e272 * * 4b3a 8ea2cbba,8ea2cbbav 6f37 e6bcb7 6f37 00006f37 e272 e272 e272 e272 e272 e272 e272 -9970 e273 e273 e273 * * 4b3b 8ea2cbbb,8ea2cbbbv 6efb e6bbbb 6efb 00006efb e273 e273 e273 e273 e273 e273 e273 -9971 e274 e274 e274 * * 4b3c 8ea2cbbc,8ea2cbbcv 6f2e e6bcae 6f2e 00006f2e e274 e274 e274 e274 e274 e274 e274 -9972 e275 e275 e275 * * 4b3d 8ea2cbbd,8ea2cbbdv 6f09 e6bc89 6f09 00006f09 e275 e275 e275 e275 e275 e275 e275 -9973 e276 e276 e276 * * 4b3e 8ea2cbbe,8ea2cbbev 6f4e e6bd8e 6f4e 00006f4e e276 e276 e276 e276 e276 e276 e276 -9974 e277 e277 e277 * * 4b3f 8ea2cbbf,8ea2cbbfv 6f19 e6bc99 6f19 00006f19 e277 e277 e277 e277 e277 e277 e277 -9975 e278 e278 e278 * * 4b40 8ea2cbc0,8ea2cbc0v 6f1a e6bc9a 6f1a 00006f1a e278 e278 e278 e278 e278 e278 e278 -9976 e279 e279 e279 * * 4b41 8ea2cbc1,8ea2cbc1v 6f27 e6bca7 6f27 00006f27 e279 e279 e279 e279 e279 e279 e279 -9977 e27a e27a e27a * * 4b42 8ea2cbc2,8ea2cbc2v 6f18 e6bc98 6f18 00006f18 e27a e27a e27a e27a e27a e27a e27a -9978 e27b e27b e27b * * 4b43 8ea2cbc3,8ea2cbc3v 6f3b e6bcbb 6f3b 00006f3b e27b e27b e27b e27b e27b e27b e27b -9979 e27c e27c e27c * * 4b44 8ea2cbc4,8ea2cbc4v 6f12 e6bc92 6f12 00006f12 e27c e27c e27c e27c e27c e27c e27c -9980 e27d e27d e27d * * 4b45 8ea2cbc5,8ea2cbc5v 6eed e6bbad 6eed 00006eed e27d e27d e27d e27d e27d e27d e27d -9981 e27e e27e e27e * * 4b46 8ea2cbc6,8ea2cbc6v 6f0a e6bc8a 6f0a 00006f0a e27e e27e e27e e27e e27e e27e e27e -9982 e2a1 e2a1 e2a1 * * 4b47 8ea2cbc7,8ea2cbc7v 6f36 e6bcb6 6f36 00006f36 e2a1 e2a1 e2a1 e2a1 e2a1 e2a1 e2a1 -9983 e2a2 e2a2 e2a2 * * 4b48 8ea2cbc8,8ea2cbc8v 6f73 e6bdb3 6f73 00006f73 e2a2 e2a2 e2a2 e2a2 e2a2 e2a2 e2a2 -9984 e2a3 e2a3 e2a3 * * 4b49 8ea2cbc9,8ea2cbc9v 6ef9 e6bbb9 6ef9 00006ef9 e2a3 e2a3 e2a3 e2a3 e2a3 e2a3 e2a3 -9985 e2a4 e2a4 e2a4 * * 4b4a 8ea2cbca,8ea2cbcav 6eee e6bbae 6eee 00006eee e2a4 e2a4 e2a4 e2a4 e2a4 e2a4 e2a4 -9986 e2a5 e2a5 e2a5 * * 4b4b 8ea2cbcb,8ea2cbcbv 6f2d e6bcad 6f2d 00006f2d e2a5 e2a5 e2a5 e2a5 e2a5 e2a5 e2a5 -9987 e2a6 e2a6 e2a6 * * 4b4c 8ea2cbcc,8ea2cbccv 6f40 e6bd80 6f40 00006f40 e2a6 e2a6 e2a6 e2a6 e2a6 e2a6 e2a6 -9988 e2a7 e2a7 e2a7 * * 4b4d 8ea2cbcd,8ea2cbcdv 6f30 e6bcb0 6f30 00006f30 e2a7 e2a7 e2a7 e2a7 e2a7 e2a7 e2a7 -9989 e2a8 e2a8 e2a8 * * 4b4e 8ea2cbce,8ea2cbcev 6f3c e6bcbc 6f3c 00006f3c e2a8 e2a8 e2a8 e2a8 e2a8 e2a8 e2a8 -9990 e2a9 e2a9 e2a9 * * 4b4f 8ea2cbcf,8ea2cbcfv 6f35 e6bcb5 6f35 00006f35 e2a9 e2a9 e2a9 e2a9 e2a9 e2a9 e2a9 -9991 e2aa e2aa e2aa * * 4b50 8ea2cbd0,8ea2cbd0v 6eeb e6bbab 6eeb 00006eeb e2aa e2aa e2aa e2aa e2aa e2aa e2aa -9992 e2ab e2ab e2ab * * 4b51 8ea2cbd1,8ea2cbd1v 6f07 e6bc87 6f07 00006f07 e2ab e2ab e2ab e2ab e2ab e2ab e2ab -9993 e2ac e2ac e2ac * * 4b52 8ea2cbd2,8ea2cbd2v 6f0e e6bc8e 6f0e 00006f0e e2ac e2ac e2ac e2ac e2ac e2ac e2ac -9994 e2ad e2ad e2ad * * 4b53 8ea2cbd3,8ea2cbd3v 6f43 e6bd83 6f43 00006f43 e2ad e2ad e2ad e2ad e2ad e2ad e2ad -9995 e2ae e2ae e2ae * * 4b54 8ea2cbd4,8ea2cbd4v 6f05 e6bc85 6f05 00006f05 e2ae e2ae e2ae e2ae e2ae e2ae e2ae -9996 e2af e2af e2af * * 4b55 8ea2cbd5,8ea2cbd5v 6efd e6bbbd 6efd 00006efd e2af e2af e2af e2af e2af e2af e2af -9997 e2b0 e2b0 e2b0 * * 4b56 8ea2cbd6,8ea2cbd6v 6ef6 e6bbb6 6ef6 00006ef6 e2b0 e2b0 e2b0 e2b0 e2b0 e2b0 e2b0 -9998 e2b1 e2b1 e2b1 * * 4b57 8ea2cbd7,8ea2cbd7v 6f39 e6bcb9 6f39 00006f39 e2b1 e2b1 e2b1 e2b1 e2b1 e2b1 e2b1 -9999 e2b2 e2b2 e2b2 * * 4b58 8ea2cbd8,8ea2cbd8v 6f1c e6bc9c 6f1c 00006f1c e2b2 e2b2 e2b2 e2b2 e2b2 e2b2 e2b2 -10000 e2b3 e2b3 e2b3 * * 4b59 8ea2cbd9,8ea2cbd9v 6efc e6bbbc 6efc 00006efc e2b3 e2b3 e2b3 e2b3 e2b3 e2b3 e2b3 -10001 e2b4 e2b4 e2b4 * * 4b5a 8ea2cbda,8ea2cbdav 6f3a e6bcba 6f3a 00006f3a e2b4 e2b4 e2b4 e2b4 e2b4 e2b4 e2b4 -10002 e2b5 e2b5 e2b5 * * 4b5b 8ea2cbdb,8ea2cbdbv 6f1f e6bc9f 6f1f 00006f1f e2b5 e2b5 e2b5 e2b5 e2b5 e2b5 e2b5 -10003 e2b6 e2b6 e2b6 * * 4b5c 8ea2cbdc,8ea2cbdcv 6f0d e6bc8d 6f0d 00006f0d e2b6 e2b6 e2b6 e2b6 e2b6 e2b6 e2b6 -10004 e2b7 e2b7 e2b7 * * 4b5d 8ea2cbdd,8ea2cbddv 6f1e e6bc9e 6f1e 00006f1e e2b7 e2b7 e2b7 e2b7 e2b7 e2b7 e2b7 -10005 e2b8 e2b8 e2b8 * * 4b5e 8ea2cbde,8ea2cbdev 6f08 e6bc88 6f08 00006f08 e2b8 e2b8 e2b8 e2b8 e2b8 e2b8 e2b8 -10006 e2b9 e2b9 e2b9 * * 4b5f 8ea2cbdf,8ea2cbdfv 6f21 e6bca1 6f21 00006f21 e2b9 e2b9 e2b9 e2b9 e2b9 e2b9 e2b9 -10007 e2ba e2ba e2ba * * 4b60 8ea2cbe0,8ea2cbe0v 7187 e78687 7187 00007187 e2ba e2ba e2ba e2ba e2ba e2ba e2ba -10008 e2bb e2bb e2bb * * 4b61 8ea2cbe1,8ea2cbe1v 7190 e78690 7190 00007190 e2bb e2bb e2bb e2bb e2bb e2bb e2bb -10009 e2bc e2bc e2bc * * 4b62 8ea2cbe2,8ea2cbe2v 7189 e78689 7189 00007189 e2bc e2bc e2bc e2bc e2bc e2bc e2bc -10010 e2bd e2bd e2bd * * 4b63 8ea2cbe3,8ea2cbe3v 7180 e78680 7180 00007180 e2bd e2bd e2bd e2bd e2bd e2bd e2bd -10011 e2be e2be e2be * * 4b64 8ea2cbe4,8ea2cbe4v 7185 e78685 7185 00007185 e2be e2be e2be e2be e2be e2be e2be -10012 e2bf e2bf e2bf * * 4b65 8ea2cbe5,8ea2cbe5v 7182 e78682 7182 00007182 e2bf e2bf e2bf e2bf e2bf e2bf e2bf -10013 e2c0 e2c0 e2c0 * * 4b66 8ea2cbe6,8ea2cbe6v 718f e7868f 718f 0000718f e2c0 e2c0 e2c0 e2c0 e2c0 e2c0 e2c0 -10014 e2c1 e2c1 e2c1 * * 4b67 8ea2cbe7,8ea2cbe7v 717b e785bb 717b 0000717b e2c1 e2c1 e2c1 e2c1 e2c1 e2c1 e2c1 -10015 e2c2 e2c2 e2c2 * * 4b68 8ea2cbe8,8ea2cbe8v 7186 e78686 7186 00007186 e2c2 e2c2 e2c2 e2c2 e2c2 e2c2 e2c2 -10016 e2c3 e2c3 e2c3 * * 4b69 8ea2cbe9,8ea2cbe9v 7181 e78681 7181 00007181 e2c3 e2c3 e2c3 e2c3 e2c3 e2c3 e2c3 -10017 e2c4 e2c4 e2c4 * * 4b6a 8ea2cbea,8ea2cbeav 7197 e78697 7197 00007197 e2c4 e2c4 e2c4 e2c4 e2c4 e2c4 e2c4 -10018 e2c5 e2c5 e2c5 * * 4b6b 8ea2cbeb,8ea2cbebv 7244 e78984 7244 00007244 e2c5 e2c5 e2c5 e2c5 e2c5 e2c5 e2c5 -10019 e2c6 e2c6 e2c6 * * 4b6c 8ea2cbec,8ea2cbecv 7253 e78993 7253 00007253 e2c6 e2c6 e2c6 e2c6 e2c6 e2c6 e2c6 -10020 e2c7 e2c7 e2c7 * * 4b6d 8ea2cbed,8ea2cbedv 7297 e78a97 7297 00007297 e2c7 e2c7 e2c7 e2c7 e2c7 e2c7 e2c7 -10021 e2c8 e2c8 e2c8 * * 4b6e 8ea2cbee,8ea2cbeev 7295 e78a95 7295 00007295 e2c8 e2c8 e2c8 e2c8 e2c8 e2c8 e2c8 -10022 e2c9 e2c9 e2c9 * * 4b6f 8ea2cbef,8ea2cbefv 7293 e78a93 7293 00007293 e2c9 e2c9 e2c9 e2c9 e2c9 e2c9 e2c9 -10023 e2ca e2ca e2ca * * 4b70 8ea2cbf0,8ea2cbf0v 7343 e78d83 7343 00007343 e2ca e2ca e2ca e2ca e2ca e2ca e2ca -10024 e2cb e2cb e2cb * * 4b71 8ea2cbf1,8ea2cbf1v 734d e78d8d 734d 0000734d e2cb e2cb e2cb e2cb e2cb e2cb e2cb -10025 e2cc e2cc e2cc * * 4b72 8ea2cbf2,8ea2cbf2v 7351 e78d91 7351 00007351 e2cc e2cc e2cc e2cc e2cc e2cc e2cc -10026 e2cd e2cd e2cd * * 4b73 8ea2cbf3,8ea2cbf3v 734c e78d8c 734c 0000734c e2cd e2cd e2cd e2cd e2cd e2cd e2cd -10027 e2ce e2ce e2ce * * 4b74 8ea2cbf4,8ea2cbf4v 7462 e791a2 7462 00007462 e2ce e2ce e2ce e2ce e2ce e2ce e2ce -10028 e2cf e2cf e2cf * * 4b75 8ea2cbf5,8ea2cbf5v 7473 e791b3 7473 00007473 e2cf e2cf e2cf e2cf e2cf e2cf e2cf -10029 e2d0 e2d0 e2d0 * * 4b76 8ea2cbf6,8ea2cbf6v 7471 e791b1 7471 00007471 e2d0 e2d0 e2d0 e2d0 e2d0 e2d0 e2d0 -10030 e2d1 e2d1 e2d1 * * 4b77 8ea2cbf7,8ea2cbf7v 7475 e791b5 7475 00007475 e2d1 e2d1 e2d1 e2d1 e2d1 e2d1 e2d1 -10031 e2d2 e2d2 e2d2 * * 4b78 8ea2cbf8,8ea2cbf8v 7472 e791b2 7472 00007472 e2d2 e2d2 e2d2 e2d2 e2d2 e2d2 e2d2 -10032 e2d3 e2d3 e2d3 * * 4b79 8ea2cbf9,8ea2cbf9v 7467 e791a7 7467 00007467 e2d3 e2d3 e2d3 e2d3 e2d3 e2d3 e2d3 -10033 e2d4 e2d4 e2d4 * * 4b7a 8ea2cbfa,8ea2cbfav 746e e791ae 746e 0000746e e2d4 e2d4 e2d4 e2d4 e2d4 e2d4 e2d4 -10034 e2d5 e2d5 e2d5 * * 4b7b 8ea2cbfb,8ea2cbfbv 7500 e79480 7500 00007500 e2d5 e2d5 e2d5 e2d5 e2d5 e2d5 e2d5 -10035 e2d6 e2d6 e2d6 * * 4b7c 8ea2cbfc,8ea2cbfcv 7502 e79482 7502 00007502 e2d6 e2d6 e2d6 e2d6 e2d6 e2d6 e2d6 -10036 e2d7 e2d7 e2d7 * * 4b7d 8ea2cbfd,8ea2cbfdv 7503 e79483 7503 00007503 e2d7 e2d7 e2d7 e2d7 e2d7 e2d7 e2d7 -10037 e2d8 e2d8 e2d8 * * 4b7e 8ea2cbfe,8ea2cbfev 757d e795bd 757d 0000757d e2d8 e2d8 e2d8 e2d8 e2d8 e2d8 e2d8 -10038 e2d9 e2d9 e2d9 * * 4c21 8ea2cca1,8ea2cca1v 7590 e79690 7590 00007590 e2d9 e2d9 e2d9 e2d9 e2d9 e2d9 e2d9 -10039 e2da e2da e2da * * 4c22 8ea2cca2,8ea2cca2v 7616 e79896 7616 00007616 e2da e2da e2da e2da e2da e2da e2da -10040 e2db e2db e2db * * 4c23 8ea2cca3,8ea2cca3v 7608 e79888 7608 00007608 e2db e2db e2db e2db e2db e2db e2db -10041 e2dc e2dc e2dc * * 4c24 8ea2cca4,8ea2cca4v 760c e7988c 760c 0000760c e2dc e2dc e2dc e2dc e2dc e2dc e2dc -10042 e2dd e2dd e2dd * * 4c25 8ea2cca5,8ea2cca5v 7615 e79895 7615 00007615 e2dd e2dd e2dd e2dd e2dd e2dd e2dd -10043 e2de e2de e2de * * 4c26 8ea2cca6,8ea2cca6v 7611 e79891 7611 00007611 e2de e2de e2de e2de e2de e2de e2de -10044 e2df e2df e2df * * 4c27 8ea2cca7,8ea2cca7v 760a e7988a 760a 0000760a e2df e2df e2df e2df e2df e2df e2df -10045 e2e0 e2e0 e2e0 * * 4c28 8ea2cca8,8ea2cca8v 7614 e79894 7614 00007614 e2e0 e2e0 e2e0 e2e0 e2e0 e2e0 e2e0 -10046 e2e1 e2e1 e2e1 * * 4c29 8ea2cca9,8ea2cca9v 76b8 e79ab8 76b8 000076b8 e2e1 e2e1 e2e1 e2e1 e2e1 e2e1 e2e1 -10047 e2e2 e2e2 e2e2 * * 4c2a 8ea2ccaa,8ea2ccaav 7781 e79e81 7781 00007781 e2e2 e2e2 e2e2 e2e2 e2e2 e2e2 e2e2 -10048 e2e3 e2e3 e2e3 * * 4c2b 8ea2ccab,8ea2ccabv 777c e79dbc 777c 0000777c e2e3 e2e3 e2e3 e2e3 e2e3 e2e3 e2e3 -10049 e2e4 e2e4 e2e4 * * 4c2c 8ea2ccac,8ea2ccacv 7785 e79e85 7785 00007785 e2e4 e2e4 e2e4 e2e4 e2e4 e2e4 e2e4 -10050 e2e5 e2e5 e2e5 * * 4c2d 8ea2ccad,8ea2ccadv 7782 e79e82 7782 00007782 e2e5 e2e5 e2e5 e2e5 e2e5 e2e5 e2e5 -10051 e2e6 e2e6 e2e6 * * 4c2e 8ea2ccae,8ea2ccaev 776e e79dae 776e 0000776e e2e6 e2e6 e2e6 e2e6 e2e6 e2e6 e2e6 -10052 e2e7 e2e7 e2e7 * * 4c2f 8ea2ccaf,8ea2ccafv 7780 e79e80 7780 00007780 e2e7 e2e7 e2e7 e2e7 e2e7 e2e7 e2e7 -10053 e2e8 e2e8 e2e8 * * 4c30 8ea2ccb0,8ea2ccb0v 776f e79daf 776f 0000776f e2e8 e2e8 e2e8 e2e8 e2e8 e2e8 e2e8 -10054 e2e9 e2e9 e2e9 * * 4c31 8ea2ccb1,8ea2ccb1v 777e e79dbe 777e 0000777e e2e9 e2e9 e2e9 e2e9 e2e9 e2e9 e2e9 -10055 e2ea e2ea e2ea * * 4c32 8ea2ccb2,8ea2ccb2v 7783 e79e83 7783 00007783 e2ea e2ea e2ea e2ea e2ea e2ea e2ea -10056 e2eb e2eb e2eb * * 4c33 8ea2ccb3,8ea2ccb3v 78b2 e7a2b2 78b2 000078b2 e2eb e2eb e2eb e2eb e2eb e2eb e2eb -10057 e2ec e2ec e2ec * * 4c34 8ea2ccb4,8ea2ccb4v 78aa e7a2aa 78aa 000078aa e2ec e2ec e2ec e2ec e2ec e2ec e2ec -10058 e2ed e2ed e2ed * * 4c35 8ea2ccb5,8ea2ccb5v 78b4 e7a2b4 78b4 000078b4 e2ed e2ed e2ed e2ed e2ed e2ed e2ed -10059 e2ee e2ee e2ee * * 4c36 8ea2ccb6,8ea2ccb6v 78ad e7a2ad 78ad 000078ad e2ee e2ee e2ee e2ee e2ee e2ee e2ee -10060 e2ef e2ef e2ef * * 4c37 8ea2ccb7,8ea2ccb7v 78a8 e7a2a8 78a8 000078a8 e2ef e2ef e2ef e2ef e2ef e2ef e2ef -10061 e2f0 e2f0 e2f0 * * 4c38 8ea2ccb8,8ea2ccb8v 787e e7a1be 787e 0000787e e2f0 e2f0 e2f0 e2f0 e2f0 e2f0 e2f0 -10062 e2f1 e2f1 e2f1 * * 4c39 8ea2ccb9,8ea2ccb9v 78ab e7a2ab 78ab 000078ab e2f1 e2f1 e2f1 e2f1 e2f1 e2f1 e2f1 -10063 e2f2 e2f2 e2f2 * * 4c3a 8ea2ccba,8ea2ccbav 789e e7a29e 789e 0000789e e2f2 e2f2 e2f2 e2f2 e2f2 e2f2 e2f2 -10064 e2f3 e2f3 e2f3 * * 4c3b 8ea2ccbb,8ea2ccbbv 78a5 e7a2a5 78a5 000078a5 e2f3 e2f3 e2f3 e2f3 e2f3 e2f3 e2f3 -10065 e2f4 e2f4 e2f4 * * 4c3c 8ea2ccbc,8ea2ccbcv 78a0 e7a2a0 78a0 000078a0 e2f4 e2f4 e2f4 e2f4 e2f4 e2f4 e2f4 -10066 e2f5 e2f5 e2f5 * * 4c3d 8ea2ccbd,8ea2ccbdv 78ac e7a2ac 78ac 000078ac e2f5 e2f5 e2f5 e2f5 e2f5 e2f5 e2f5 -10067 e2f6 e2f6 e2f6 * * 4c3e 8ea2ccbe,8ea2ccbev 78a2 e7a2a2 78a2 000078a2 e2f6 e2f6 e2f6 e2f6 e2f6 e2f6 e2f6 -10068 e2f7 e2f7 e2f7 * * 4c3f 8ea2ccbf,8ea2ccbfv 78a4 e7a2a4 78a4 000078a4 e2f7 e2f7 e2f7 e2f7 e2f7 e2f7 e2f7 -10069 e2f8 e2f8 e2f8 * * 4c40 8ea2ccc0,8ea2ccc0v 7998 e7a698 7998 00007998 e2f8 e2f8 e2f8 e2f8 e2f8 e2f8 e2f8 -10070 e2f9 e2f9 e2f9 * * 4c41 8ea2ccc1,8ea2ccc1v 798a e7a68a 798a 0000798a e2f9 e2f9 e2f9 e2f9 e2f9 e2f9 e2f9 -10071 e2fa e2fa e2fa * * 4c42 8ea2ccc2,8ea2ccc2v 798b e7a68b 798b 0000798b e2fa e2fa e2fa e2fa e2fa e2fa e2fa -10072 e2fb e2fb e2fb * * 4c43 8ea2ccc3,8ea2ccc3v 7996 e7a696 7996 00007996 e2fb e2fb e2fb e2fb e2fb e2fb e2fb -10073 e2fc e2fc e2fc * * 4c44 8ea2ccc4,8ea2ccc4v 7995 e7a695 7995 00007995 e2fc e2fc e2fc e2fc e2fc e2fc e2fc -10074 e2fd e2fd e2fd * * 4c45 8ea2ccc5,8ea2ccc5v 7994 e7a694 7994 00007994 e2fd e2fd e2fd e2fd e2fd e2fd e2fd -10075 e2fe e2fe e2fe * * 4c46 8ea2ccc6,8ea2ccc6v 7993 e7a693 7993 00007993 e2fe e2fe e2fe e2fe e2fe e2fe e2fe -10076 e340 e340 e340 * * 4c47 8ea2ccc7,8ea2ccc7v 7997 e7a697 7997 00007997 e340 e340 e340 e340 e340 e340 e340 -10077 e341 e341 e341 * * 4c48 8ea2ccc8,8ea2ccc8v 7988 e7a688 7988 00007988 e341 e341 e341 e341 e341 e341 e341 -10078 e342 e342 e342 * * 4c49 8ea2ccc9,8ea2ccc9v 7992 e7a692 7992 00007992 e342 e342 e342 e342 e342 e342 e342 -10079 e343 e343 e343 * * 4c4a 8ea2ccca,8ea2cccav 7990 e7a690 7990 00007990 e343 e343 e343 e343 e343 e343 e343 -10080 e344 e344 e344 * * 4c4b 8ea2cccb,8ea2cccbv 7a2b e7a8ab 7a2b 00007a2b e344 e344 e344 e344 e344 e344 e344 -10081 e345 e345 e345 * * 4c4c 8ea2cccc,8ea2ccccv 7a4a e7a98a 7a4a 00007a4a e345 e345 e345 e345 e345 e345 e345 -10082 e346 e346 e346 * * 4c4d 8ea2cccd,8ea2cccdv 7a30 e7a8b0 7a30 00007a30 e346 e346 e346 e346 e346 e346 e346 -10083 e347 e347 e347 * * 4c4e 8ea2ccce,8ea2cccev 7a2f e7a8af 7a2f 00007a2f e347 e347 e347 e347 e347 e347 e347 -10084 e348 e348 e348 * * 4c4f 8ea2cccf,8ea2cccfv 7a28 e7a8a8 7a28 00007a28 e348 e348 e348 e348 e348 e348 e348 -10085 e349 e349 e349 * * 4c50 8ea2ccd0,8ea2ccd0v 7a26 e7a8a6 7a26 00007a26 e349 e349 e349 e349 e349 e349 e349 -10086 e34a e34a e34a * * 4c51 8ea2ccd1,8ea2ccd1v 7aa8 e7aaa8 7aa8 00007aa8 e34a e34a e34a e34a e34a e34a e34a -10087 e34b e34b e34b * * 4c52 8ea2ccd2,8ea2ccd2v 7aab e7aaab 7aab 00007aab e34b e34b e34b e34b e34b e34b e34b -10088 e34c e34c e34c * * 4c53 8ea2ccd3,8ea2ccd3v 7aac e7aaac 7aac 00007aac e34c e34c e34c e34c e34c e34c e34c -10089 e34d e34d e34d * * 4c54 8ea2ccd4,8ea2ccd4v 7aee e7abae 7aee 00007aee e34d e34d e34d e34d e34d e34d e34d -10090 e34e e34e e34e * * 4c55 8ea2ccd5,8ea2ccd5v 7b88 e7ae88 7b88 00007b88 e34e e34e e34e e34e e34e e34e e34e -10091 e34f e34f e34f * * 4c56 8ea2ccd6,8ea2ccd6v 7b9c e7ae9c 7b9c 00007b9c e34f e34f e34f e34f e34f e34f e34f -10092 e350 e350 e350 * * 4c57 8ea2ccd7,8ea2ccd7v 7b8a e7ae8a 7b8a 00007b8a e350 e350 e350 e350 e350 e350 e350 -10093 e351 e351 e351 * * 4c58 8ea2ccd8,8ea2ccd8v 7b91 e7ae91 7b91 00007b91 e351 e351 e351 e351 e351 e351 e351 -10094 e352 e352 e352 * * 4c59 8ea2ccd9,8ea2ccd9v 7b90 e7ae90 7b90 00007b90 e352 e352 e352 e352 e352 e352 e352 -10095 e353 e353 e353 * * 4c5a 8ea2ccda,8ea2ccdav 7b96 e7ae96 7b96 00007b96 e353 e353 e353 e353 e353 e353 e353 -10096 e354 e354 e354 * * 4c5b 8ea2ccdb,8ea2ccdbv 7b8d e7ae8d 7b8d 00007b8d e354 e354 e354 e354 e354 e354 e354 -10097 e355 e355 e355 * * 4c5c 8ea2ccdc,8ea2ccdcv 7b8c e7ae8c 7b8c 00007b8c e355 e355 e355 e355 e355 e355 e355 -10098 e356 e356 e356 * * 4c5d 8ea2ccdd,8ea2ccddv 7b9b e7ae9b 7b9b 00007b9b e356 e356 e356 e356 e356 e356 e356 -10099 e357 e357 e357 * * 4c5e 8ea2ccde,8ea2ccdev 7b8e e7ae8e 7b8e 00007b8e e357 e357 e357 e357 e357 e357 e357 -10100 e358 e358 e358 * * 4c5f 8ea2ccdf,8ea2ccdfv 7b85 e7ae85 7b85 00007b85 e358 e358 e358 e358 e358 e358 e358 -10101 e359 e359 e359 * * 4c60 8ea2cce0,8ea2cce0v 7b98 e7ae98 7b98 00007b98 e359 e359 e359 e359 e359 e359 e359 -10102 e35a e35a e35a * * 4c61 8ea2cce1,8ea2cce1v 5284 e58a84 5284 00005284 e35a e35a e35a e35a e35a e35a e35a -10103 e35b e35b e35b * * 4c62 8ea2cce2,8ea2cce2v 7b99 e7ae99 7b99 00007b99 e35b e35b e35b e35b e35b e35b e35b -10104 e35c e35c e35c * * 4c63 8ea2cce3,8ea2cce3v 7ba4 e7aea4 7ba4 00007ba4 e35c e35c e35c e35c e35c e35c e35c -10105 e35d e35d e35d * * 4c64 8ea2cce4,8ea2cce4v 7b82 e7ae82 7b82 00007b82 e35d e35d e35d e35d e35d e35d e35d -10106 e35e e35e e35e * * 4c65 8ea2cce5,8ea2cce5v 7cbb e7b2bb 7cbb 00007cbb e35e e35e e35e e35e e35e e35e e35e -10107 e35f e35f e35f * * 4c66 8ea2cce6,8ea2cce6v 7cbf e7b2bf 7cbf 00007cbf e35f e35f e35f e35f e35f e35f e35f -10108 e360 e360 e360 * * 4c67 8ea2cce7,8ea2cce7v 7cbc e7b2bc 7cbc 00007cbc e360 e360 e360 e360 e360 e360 e360 -10109 e361 e361 e361 * * 4c68 8ea2cce8,8ea2cce8v 7cba e7b2ba 7cba 00007cba e361 e361 e361 e361 e361 e361 e361 -10110 e362 e362 e362 * * 4c69 8ea2cce9,8ea2cce9v 7da7 e7b6a7 7da7 00007da7 e362 e362 e362 e362 e362 e362 e362 -10111 e363 e363 e363 * * 4c6a 8ea2ccea,8ea2cceav 7db7 e7b6b7 7db7 00007db7 e363 e363 e363 e363 e363 e363 e363 -10112 e364 e364 e364 * * 4c6b 8ea2cceb,8ea2ccebv 7dc2 e7b782 7dc2 00007dc2 e364 e364 e364 e364 e364 e364 e364 -10113 e365 e365 e365 * * 4c6c 8ea2ccec,8ea2ccecv 7da3 e7b6a3 7da3 00007da3 e365 e365 e365 e365 e365 e365 e365 -10114 e366 e366 e366 * * 4c6d 8ea2cced,8ea2ccedv 7daa e7b6aa 7daa 00007daa e366 e366 e366 e366 e366 e366 e366 -10115 e367 e367 e367 * * 4c6e 8ea2ccee,8ea2cceev 7dc1 e7b781 7dc1 00007dc1 e367 e367 e367 e367 e367 e367 e367 -10116 e368 e368 e368 * * 4c6f 8ea2ccef,8ea2ccefv 7dc0 e7b780 7dc0 00007dc0 e368 e368 e368 e368 e368 e368 e368 -10117 e369 e369 e369 * * 4c70 8ea2ccf0,8ea2ccf0v 7dc5 e7b785 7dc5 00007dc5 e369 e369 e369 e369 e369 e369 e369 -10118 e36a e36a e36a * * 4c71 8ea2ccf1,8ea2ccf1v 7d9d e7b69d 7d9d 00007d9d e36a e36a e36a e36a e36a e36a e36a -10119 e36b e36b e36b * * 4c72 8ea2ccf2,8ea2ccf2v 7dce e7b78e 7dce 00007dce e36b e36b e36b e36b e36b e36b e36b -10120 e36c e36c e36c * * 4c73 8ea2ccf3,8ea2ccf3v 7dc4 e7b784 7dc4 00007dc4 e36c e36c e36c e36c e36c e36c e36c -10121 e36d e36d e36d * * 4c74 8ea2ccf4,8ea2ccf4v 7dc6 e7b786 7dc6 00007dc6 e36d e36d e36d e36d e36d e36d e36d -10122 e36e e36e e36e * * 4c75 8ea2ccf5,8ea2ccf5v 7dcb e7b78b 7dcb 00007dcb e36e e36e e36e e36e e36e e36e e36e -10123 e36f e36f e36f * * 4c76 8ea2ccf6,8ea2ccf6v 7dcc e7b78c 7dcc 00007dcc e36f e36f e36f e36f e36f e36f e36f -10124 e370 e370 e370 * * 4c77 8ea2ccf7,8ea2ccf7v 7daf e7b6af 7daf 00007daf e370 e370 e370 e370 e370 e370 e370 -10125 e371 e371 e371 * * 4c78 8ea2ccf8,8ea2ccf8v 7db9 e7b6b9 7db9 00007db9 e371 e371 e371 e371 e371 e371 e371 -10126 e372 e372 e372 * * 4c79 8ea2ccf9,8ea2ccf9v 7d96 e7b696 7d96 00007d96 e372 e372 e372 e372 e372 e372 e372 -10127 e373 e373 e373 * * 4c7a 8ea2ccfa,8ea2ccfav 7dbc e7b6bc 7dbc 00007dbc e373 e373 e373 e373 e373 e373 e373 -10128 e374 e374 e374 * * 4c7b 8ea2ccfb,8ea2ccfbv 7d9f e7b69f 7d9f 00007d9f e374 e374 e374 e374 e374 e374 e374 -10129 e375 e375 e375 * * 4c7c 8ea2ccfc,8ea2ccfcv 7da6 e7b6a6 7da6 00007da6 e375 e375 e375 e375 e375 e375 e375 -10130 e376 e376 e376 * * 4c7d 8ea2ccfd,8ea2ccfdv 7dae e7b6ae 7dae 00007dae e376 e376 e376 e376 e376 e376 e376 -10131 e377 e377 e377 * * 4c7e 8ea2ccfe,8ea2ccfev 7da9 e7b6a9 7da9 00007da9 e377 e377 e377 e377 e377 e377 e377 -10132 e378 e378 e378 * * 4d21 8ea2cda1,8ea2cda1v 7da1 e7b6a1 7da1 00007da1 e378 e378 e378 e378 e378 e378 e378 -10133 e379 e379 e379 * * 4d22 8ea2cda2,8ea2cda2v 7dc9 e7b789 7dc9 00007dc9 e379 e379 e379 e379 e379 e379 e379 -10134 e37a e37a e37a * * 4d23 8ea2cda3,8ea2cda3v 7f73 e7bdb3 7f73 00007f73 e37a e37a e37a e37a e37a e37a e37a -10135 e37b e37b e37b * * 4d24 8ea2cda4,8ea2cda4v 7fe2 e7bfa2 7fe2 00007fe2 e37b e37b e37b e37b e37b e37b e37b -10136 e37c e37c e37c * * 4d25 8ea2cda5,8ea2cda5v 7fe3 e7bfa3 7fe3 00007fe3 e37c e37c e37c e37c e37c e37c e37c -10137 e37d e37d e37d * * 4d26 8ea2cda6,8ea2cda6v 7fe5 e7bfa5 7fe5 00007fe5 e37d e37d e37d e37d e37d e37d e37d -10138 e37e e37e e37e * * 4d27 8ea2cda7,8ea2cda7v 7fde e7bf9e 7fde 00007fde e37e e37e e37e e37e e37e e37e e37e -10139 e3a1 e3a1 e3a1 * * 4d28 8ea2cda8,8ea2cda8v 8024 e880a4 8024 00008024 e3a1 e3a1 e3a1 e3a1 e3a1 e3a1 e3a1 -10140 e3a2 e3a2 e3a2 * * 4d29 8ea2cda9,8ea2cda9v 805d e8819d 805d 0000805d e3a2 e3a2 e3a2 e3a2 e3a2 e3a2 e3a2 -10141 e3a3 e3a3 e3a3 * * 4d2a 8ea2cdaa,8ea2cdaav 805c e8819c 805c 0000805c e3a3 e3a3 e3a3 e3a3 e3a3 e3a3 e3a3 -10142 e3a4 e3a4 e3a4 * * 4d2b 8ea2cdab,8ea2cdabv 8189 e88689 8189 00008189 e3a4 e3a4 e3a4 e3a4 e3a4 e3a4 e3a4 -10143 e3a5 e3a5 e3a5 * * 4d2c 8ea2cdac,8ea2cdacv 8186 e88686 8186 00008186 e3a5 e3a5 e3a5 e3a5 e3a5 e3a5 e3a5 -10144 e3a6 e3a6 e3a6 * * 4d2d 8ea2cdad,8ea2cdadv 8183 e88683 8183 00008183 e3a6 e3a6 e3a6 e3a6 e3a6 e3a6 e3a6 -10145 e3a7 e3a7 e3a7 * * 4d2e 8ea2cdae,8ea2cdaev 8187 e88687 8187 00008187 e3a7 e3a7 e3a7 e3a7 e3a7 e3a7 e3a7 -10146 e3a8 e3a8 e3a8 * * 4d2f 8ea2cdaf,8ea2cdafv 818d e8868d 818d 0000818d e3a8 e3a8 e3a8 e3a8 e3a8 e3a8 e3a8 -10147 e3a9 e3a9 e3a9 * * 4d30 8ea2cdb0,8ea2cdb0v 818c e8868c 818c 0000818c e3a9 e3a9 e3a9 e3a9 e3a9 e3a9 e3a9 -10148 e3aa e3aa e3aa * * 4d31 8ea2cdb1,8ea2cdb1v 818b e8868b 818b 0000818b e3aa e3aa e3aa e3aa e3aa e3aa e3aa -10149 e3ab e3ab e3ab * * 4d32 8ea2cdb2,8ea2cdb2v 8215 e88895 8215 00008215 e3ab e3ab e3ab e3ab e3ab e3ab e3ab -10150 e3ac e3ac e3ac * * 4d33 8ea2cdb3,8ea2cdb3v 8497 e89297 8497 00008497 e3ac e3ac e3ac e3ac e3ac e3ac e3ac -10151 e3ad e3ad e3ad * * 4d34 8ea2cdb4,8ea2cdb4v 84a4 e892a4 84a4 000084a4 e3ad e3ad e3ad e3ad e3ad e3ad e3ad -10152 e3ae e3ae e3ae * * 4d35 8ea2cdb5,8ea2cdb5v 84a1 e892a1 84a1 000084a1 e3ae e3ae e3ae e3ae e3ae e3ae e3ae -10153 e3af e3af e3af * * 4d36 8ea2cdb6,8ea2cdb6v 849f e8929f 849f 0000849f e3af e3af e3af e3af e3af e3af e3af -10154 e3b0 e3b0 e3b0 * * 4d37 8ea2cdb7,8ea2cdb7v 84ba e892ba 84ba 000084ba e3b0 e3b0 e3b0 e3b0 e3b0 e3b0 e3b0 -10155 e3b1 e3b1 e3b1 * * 4d38 8ea2cdb8,8ea2cdb8v 84ce e8938e 84ce 000084ce e3b1 e3b1 e3b1 e3b1 e3b1 e3b1 e3b1 -10156 e3b2 e3b2 e3b2 * * 4d39 8ea2cdb9,8ea2cdb9v 84c2 e89382 84c2 000084c2 e3b2 e3b2 e3b2 e3b2 e3b2 e3b2 e3b2 -10157 e3b3 e3b3 e3b3 * * 4d3a 8ea2cdba,8ea2cdbav 84ac e892ac 84ac 000084ac e3b3 e3b3 e3b3 e3b3 e3b3 e3b3 e3b3 -10158 e3b4 e3b4 e3b4 * * 4d3b 8ea2cdbb,8ea2cdbbv 84ae e892ae 84ae 000084ae e3b4 e3b4 e3b4 e3b4 e3b4 e3b4 e3b4 -10159 e3b5 e3b5 e3b5 * * 4d3c 8ea2cdbc,8ea2cdbcv 84ab e892ab 84ab 000084ab e3b5 e3b5 e3b5 e3b5 e3b5 e3b5 e3b5 -10160 e3b6 e3b6 e3b6 * * 4d3d 8ea2cdbd,8ea2cdbdv 84b9 e892b9 84b9 000084b9 e3b6 e3b6 e3b6 e3b6 e3b6 e3b6 e3b6 -10161 e3b7 e3b7 e3b7 * * 4d3e 8ea2cdbe,8ea2cdbev 84b4 e892b4 84b4 000084b4 e3b7 e3b7 e3b7 e3b7 e3b7 e3b7 e3b7 -10162 e3b8 e3b8 e3b8 * * 4d3f 8ea2cdbf,8ea2cdbfv 84c1 e89381 84c1 000084c1 e3b8 e3b8 e3b8 e3b8 e3b8 e3b8 e3b8 -10163 e3b9 e3b9 e3b9 * * 4d40 8ea2cdc0,8ea2cdc0v 84cd e8938d 84cd 000084cd e3b9 e3b9 e3b9 e3b9 e3b9 e3b9 e3b9 -10164 e3ba e3ba e3ba * * 4d41 8ea2cdc1,8ea2cdc1v 84aa e892aa 84aa 000084aa e3ba e3ba e3ba e3ba e3ba e3ba e3ba -10165 e3bb e3bb e3bb * * 4d42 8ea2cdc2,8ea2cdc2v 849a e8929a 849a 0000849a e3bb e3bb e3bb e3bb e3bb e3bb e3bb -10166 e3bc e3bc e3bc * * 4d43 8ea2cdc3,8ea2cdc3v 84b1 e892b1 84b1 000084b1 e3bc e3bc e3bc e3bc e3bc e3bc e3bc -10167 e3bd e3bd e3bd * * 4d44 8ea2cdc4,8ea2cdc4v 84d0 e89390 84d0 000084d0 e3bd e3bd e3bd e3bd e3bd e3bd e3bd -10168 e3be e3be e3be * * 4d45 8ea2cdc5,8ea2cdc5v 849d e8929d 849d 0000849d e3be e3be e3be e3be e3be e3be e3be -10169 e3bf e3bf e3bf * * 4d46 8ea2cdc6,8ea2cdc6v 84a7 e892a7 84a7 000084a7 e3bf e3bf e3bf e3bf e3bf e3bf e3bf -10170 e3c0 e3c0 e3c0 * * 4d47 8ea2cdc7,8ea2cdc7v 84bb e892bb 84bb 000084bb e3c0 e3c0 e3c0 e3c0 e3c0 e3c0 e3c0 -10171 e3c1 e3c1 e3c1 * * 4d48 8ea2cdc8,8ea2cdc8v 84a2 e892a2 84a2 000084a2 e3c1 e3c1 e3c1 e3c1 e3c1 e3c1 e3c1 -10172 e3c2 e3c2 e3c2 * * 4d49 8ea2cdc9,8ea2cdc9v 8494 e89294 8494 00008494 e3c2 e3c2 e3c2 e3c2 e3c2 e3c2 e3c2 -10173 e3c3 e3c3 e3c3 * * 4d4a 8ea2cdca,8ea2cdcav 84c7 e89387 84c7 000084c7 e3c3 e3c3 e3c3 e3c3 e3c3 e3c3 e3c3 -10174 e3c4 e3c4 e3c4 * * 4d4b 8ea2cdcb,8ea2cdcbv 84cc e8938c 84cc 000084cc e3c4 e3c4 e3c4 e3c4 e3c4 e3c4 e3c4 -10175 e3c5 e3c5 e3c5 * * 4d4c 8ea2cdcc,8ea2cdccv 849b e8929b 849b 0000849b e3c5 e3c5 e3c5 e3c5 e3c5 e3c5 e3c5 -10176 e3c6 e3c6 e3c6 * * 4d4d 8ea2cdcd,8ea2cdcdv 84a9 e892a9 84a9 000084a9 e3c6 e3c6 e3c6 e3c6 e3c6 e3c6 e3c6 -10177 e3c7 e3c7 e3c7 * * 4d4e 8ea2cdce,8ea2cdcev 84af e892af 84af 000084af e3c7 e3c7 e3c7 e3c7 e3c7 e3c7 e3c7 -10178 e3c8 e3c8 e3c8 * * 4d4f 8ea2cdcf,8ea2cdcfv 84a8 e892a8,ee8f97 84a8,e3d7 000084a8,0000e3d7 8f69,e3c8 e3c8 e3c8 e3c8 e3c8 e3c8 8f69,e3c8 -10179 e3c9 e3c9 e3c9 * * 4d50 8ea2cdd0,8ea2cdd0v 84d6 e89396 84d6 000084d6 e3c9 e3c9 e3c9 e3c9 e3c9 e3c9 e3c9 -10180 e3ca e3ca e3ca * * 4d51 8ea2cdd1,8ea2cdd1v 8498 e89298 8498 00008498 e3ca e3ca e3ca e3ca e3ca e3ca e3ca -10181 e3cb e3cb e3cb * * 4d52 8ea2cdd2,8ea2cdd2v 84b6 e892b6 84b6 000084b6 e3cb e3cb e3cb e3cb e3cb e3cb e3cb -10182 e3cc e3cc e3cc * * 4d53 8ea2cdd3,8ea2cdd3v 84cf e8938f 84cf 000084cf e3cc e3cc e3cc e3cc e3cc e3cc e3cc -10183 e3cd e3cd e3cd * * 4d54 8ea2cdd4,8ea2cdd4v 84a0 e892a0 84a0 000084a0 e3cd e3cd e3cd e3cd e3cd e3cd e3cd -10184 e3ce e3ce e3ce * * 4d55 8ea2cdd5,8ea2cdd5v 84d7 e89397 84d7 000084d7 e3ce e3ce e3ce e3ce e3ce e3ce e3ce -10185 e3cf e3cf e3cf * * 4d56 8ea2cdd6,8ea2cdd6v 84d4 e89394 84d4 000084d4 e3cf e3cf e3cf e3cf e3cf e3cf e3cf -10186 e3d0 e3d0 e3d0 * * 4d57 8ea2cdd7,8ea2cdd7v 84d2 e89392 84d2 000084d2 e3d0 e3d0 e3d0 e3d0 e3d0 e3d0 e3d0 -10187 e3d1 e3d1 e3d1 * * 4d58 8ea2cdd8,8ea2cdd8v 84db e8939b 84db 000084db e3d1 e3d1 e3d1 e3d1 e3d1 e3d1 e3d1 -10188 e3d2 e3d2 e3d2 * * 4d59 8ea2cdd9,8ea2cdd9v 84b0 e892b0 84b0 000084b0 e3d2 e3d2 e3d2 e3d2 e3d2 e3d2 e3d2 -10189 e3d3 e3d3 e3d3 * * 4d5a 8ea2cdda,8ea2cddav 8491 e89291 8491 00008491 e3d3 e3d3 e3d3 e3d3 e3d3 e3d3 e3d3 -10190 e3d4 e3d4 e3d4 * * 4d5b 8ea2cddb,8ea2cddbv 8661 e899a1 8661 00008661 e3d4 e3d4 e3d4 e3d4 e3d4 e3d4 e3d4 -10191 e3d5 e3d5 e3d5 * * 4d5c 8ea2cddc,8ea2cddcv 8733 e89cb3 8733 00008733 e3d5 e3d5 e3d5 e3d5 e3d5 e3d5 e3d5 -10192 e3d6 e3d6 e3d6 * * 4d5d 8ea2cddd,8ea2cdddv 8723 e89ca3 8723 00008723 e3d6 e3d6 e3d6 e3d6 e3d6 e3d6 e3d6 -10193 e3d7 e3d7 e3d7 * * 4d5e 8ea2cdde,8ea2cddev 8728 e89ca8 8728 00008728 e3d7 e3d7 e3d7 e3d7 e3d7 e3d7 e3d7 -10194 e3d8 e3d8 e3d8 * * 4d5f 8ea2cddf,8ea2cddfv 876b e89dab 876b 0000876b e3d8 e3d8 e3d8 e3d8 e3d8 e3d8 e3d8 -10195 e3d9 e3d9 e3d9 * * 4d60 8ea2cde0,8ea2cde0v 8740 e89d80 8740 00008740 e3d9 e3d9 e3d9 e3d9 e3d9 e3d9 e3d9 -10196 e3da e3da e3da * * 4d61 8ea2cde1,8ea2cde1v 872e e89cae 872e 0000872e e3da e3da e3da e3da e3da e3da e3da -10197 e3db e3db e3db * * 4d62 8ea2cde2,8ea2cde2v 871e e89c9e 871e 0000871e e3db e3db e3db e3db e3db e3db e3db -10198 e3dc e3dc e3dc * * 4d63 8ea2cde3,8ea2cde3v 8721 e89ca1 8721 00008721 e3dc e3dc e3dc e3dc e3dc e3dc e3dc -10199 e3dd e3dd e3dd * * 4d64 8ea2cde4,8ea2cde4v 8719 e89c99 8719 00008719 e3dd e3dd e3dd e3dd e3dd e3dd e3dd -10200 e3de e3de e3de * * 4d65 8ea2cde5,8ea2cde5v 871b e89c9b 871b 0000871b e3de e3de e3de e3de e3de e3de e3de -10201 e3df e3df e3df * * 4d66 8ea2cde6,8ea2cde6v 8743 e89d83 8743 00008743 e3df e3df e3df e3df e3df e3df e3df -10202 e3e0 e3e0 e3e0 * * 4d67 8ea2cde7,8ea2cde7v 872c e89cac 872c 0000872c e3e0 e3e0 e3e0 e3e0 e3e0 e3e0 e3e0 -10203 e3e1 e3e1 e3e1 * * 4d68 8ea2cde8,8ea2cde8v 8741 e89d81 8741 00008741 e3e1 e3e1 e3e1 e3e1 e3e1 e3e1 e3e1 -10204 e3e2 e3e2 e3e2 * * 4d69 8ea2cde9,8ea2cde9v 873e e89cbe 873e 0000873e e3e2 e3e2 e3e2 e3e2 e3e2 e3e2 e3e2 -10205 e3e3 e3e3 e3e3 * * 4d6a 8ea2cdea,8ea2cdeav 8746 e89d86 8746 00008746 e3e3 e3e3 e3e3 e3e3 e3e3 e3e3 e3e3 -10206 e3e4 e3e4 e3e4 * * 4d6b 8ea2cdeb,8ea2cdebv 8720 e89ca0 8720 00008720 e3e4 e3e4 e3e4 e3e4 e3e4 e3e4 e3e4 -10207 e3e5 e3e5 e3e5 * * 4d6c 8ea2cdec,8ea2cdecv 8732 e89cb2 8732 00008732 e3e5 e3e5 e3e5 e3e5 e3e5 e3e5 e3e5 -10208 e3e6 e3e6 e3e6 * * 4d6d 8ea2cded,8ea2cdedv 872a e89caa 872a 0000872a e3e6 e3e6 e3e6 e3e6 e3e6 e3e6 e3e6 -10209 e3e7 e3e7 e3e7 * * 4d6e 8ea2cdee,8ea2cdeev 872d e89cad 872d 0000872d e3e7 e3e7 e3e7 e3e7 e3e7 e3e7 e3e7 -10210 e3e8 e3e8 e3e8 * * 4d6f 8ea2cdef,8ea2cdefv 873c e89cbc 873c 0000873c e3e8 e3e8 e3e8 e3e8 e3e8 e3e8 e3e8 -10211 e3e9 e3e9 e3e9 * * 4d70 8ea2cdf0,8ea2cdf0v 8712 e89c92 8712 00008712 e3e9 e3e9 e3e9 e3e9 e3e9 e3e9 e3e9 -10212 e3ea e3ea e3ea * * 4d71 8ea2cdf1,8ea2cdf1v 873a e89cba 873a 0000873a e3ea e3ea e3ea e3ea e3ea e3ea e3ea -10213 e3eb e3eb e3eb * * 4d72 8ea2cdf2,8ea2cdf2v 8731 e89cb1 8731 00008731 e3eb e3eb e3eb e3eb e3eb e3eb e3eb -10214 e3ec e3ec e3ec * * 4d73 8ea2cdf3,8ea2cdf3v 8735 e89cb5 8735 00008735 e3ec e3ec e3ec e3ec e3ec e3ec e3ec -10215 e3ed e3ed e3ed * * 4d74 8ea2cdf4,8ea2cdf4v 8742 e89d82 8742 00008742 e3ed e3ed e3ed e3ed e3ed e3ed e3ed -10216 e3ee e3ee e3ee * * 4d75 8ea2cdf5,8ea2cdf5v 8726 e89ca6 8726 00008726 e3ee e3ee e3ee e3ee e3ee e3ee e3ee -10217 e3ef e3ef e3ef * * 4d76 8ea2cdf6,8ea2cdf6v 8727 e89ca7 8727 00008727 e3ef e3ef e3ef e3ef e3ef e3ef e3ef -10218 e3f0 e3f0 e3f0 * * 4d77 8ea2cdf7,8ea2cdf7v 8738 e89cb8 8738 00008738 e3f0 e3f0 e3f0 e3f0 e3f0 e3f0 e3f0 -10219 e3f1 e3f1 e3f1 * * 4d78 8ea2cdf8,8ea2cdf8v 8724 e89ca4 8724 00008724 e3f1 e3f1 e3f1 e3f1 e3f1 e3f1 e3f1 -10220 e3f2 e3f2 e3f2 * * 4d79 8ea2cdf9,8ea2cdf9v 871a e89c9a 871a 0000871a e3f2 e3f2 e3f2 e3f2 e3f2 e3f2 e3f2 -10221 e3f3 e3f3 e3f3 * * 4d7a 8ea2cdfa,8ea2cdfav 8730 e89cb0 8730 00008730 e3f3 e3f3 e3f3 e3f3 e3f3 e3f3 e3f3 -10222 e3f4 e3f4 e3f4 * * 4d7b 8ea2cdfb,8ea2cdfbv 8711 e89c91 8711 00008711 e3f4 e3f4 e3f4 e3f4 e3f4 e3f4 e3f4 -10223 e3f5 e3f5 e3f5 * * 4d7c 8ea2cdfc,8ea2cdfcv 88f7 e8a3b7 88f7 000088f7 e3f5 e3f5 e3f5 e3f5 e3f5 e3f5 e3f5 -10224 e3f6 e3f6 e3f6 * * 4d7d 8ea2cdfd,8ea2cdfdv 88e7 e8a3a7 88e7 000088e7 e3f6 e3f6 e3f6 e3f6 e3f6 e3f6 e3f6 -10225 e3f7 e3f7 e3f7 * * 4d7e 8ea2cdfe,8ea2cdfev 88f1 e8a3b1 88f1 000088f1 e3f7 e3f7 e3f7 e3f7 e3f7 e3f7 e3f7 -10226 e3f8 e3f8 e3f8 * * 4e21 8ea2cea1,8ea2cea1v 88f2 e8a3b2 88f2 000088f2 e3f8 e3f8 e3f8 e3f8 e3f8 e3f8 e3f8 -10227 e3f9 e3f9 e3f9 * * 4e22 8ea2cea2,8ea2cea2v 88fa e8a3ba 88fa 000088fa e3f9 e3f9 e3f9 e3f9 e3f9 e3f9 e3f9 -10228 e3fa e3fa e3fa * * 4e23 8ea2cea3,8ea2cea3v 88fe e8a3be 88fe 000088fe e3fa e3fa e3fa e3fa e3fa e3fa e3fa -10229 e3fb e3fb e3fb * * 4e24 8ea2cea4,8ea2cea4v 88ee e8a3ae 88ee 000088ee e3fb e3fb e3fb e3fb e3fb e3fb e3fb -10230 e3fc e3fc e3fc * * 4e25 8ea2cea5,8ea2cea5v 88fc e8a3bc 88fc 000088fc e3fc e3fc e3fc e3fc e3fc e3fc e3fc -10231 e3fd e3fd e3fd * * 4e26 8ea2cea6,8ea2cea6v 88f6 e8a3b6 88f6 000088f6 e3fd e3fd e3fd e3fd e3fd e3fd e3fd -10232 e3fe e3fe e3fe * * 4e27 8ea2cea7,8ea2cea7v 88fb e8a3bb 88fb 000088fb e3fe e3fe e3fe e3fe e3fe e3fe e3fe -10233 e440 e440 e440 * * 4e28 8ea2cea8,8ea2cea8v 88f0 e8a3b0 88f0 000088f0 e440 e440 e440 e440 e440 e440 e440 -10234 e441 e441 e441 * * 4e29 8ea2cea9,8ea2cea9v 88ec e8a3ac 88ec 000088ec e441 e441 e441 e441 e441 e441 e441 -10235 e442 e442 e442 * * 4e2a 8ea2ceaa,8ea2ceaav 88eb e8a3ab 88eb 000088eb e442 e442 e442 e442 e442 e442 e442 -10236 e443 e443 e443 * * 4e2b 8ea2ceab,8ea2ceabv 899d e8a69d 899d 0000899d e443 e443 e443 e443 e443 e443 e443 -10237 e444 e444 e444 * * 4e2c 8ea2ceac,8ea2ceacv 89a1 e8a6a1 89a1 000089a1 e444 e444 e444 e444 e444 e444 e444 -10238 e445 e445 e445 * * 4e2d 8ea2cead,8ea2ceadv 899f e8a69f 899f 0000899f e445 e445 e445 e445 e445 e445 e445 -10239 e446 e446 e446 * * 4e2e 8ea2ceae,8ea2ceaev 899e e8a69e 899e 0000899e e446 e446 e446 e446 e446 e446 e446 -10240 e447 e447 e447 * * 4e2f 8ea2ceaf,8ea2ceafv 89e9 e8a7a9 89e9 000089e9 e447 e447 e447 e447 e447 e447 e447 -10241 e448 e448 e448 * * 4e30 8ea2ceb0,8ea2ceb0v 89eb e8a7ab 89eb 000089eb e448 e448 e448 e448 e448 e448 e448 -10242 e449 e449 e449 * * 4e31 8ea2ceb1,8ea2ceb1v 89e8 e8a7a8 89e8 000089e8 e449 e449 e449 e449 e449 e449 e449 -10243 e44a e44a e44a * * 4e32 8ea2ceb2,8ea2ceb2v 8aab e8aaab 8aab 00008aab e44a e44a e44a e44a e44a e44a e44a -10244 e44b e44b e44b * * 4e33 8ea2ceb3,8ea2ceb3v 8a99 e8aa99 8a99 00008a99 e44b e44b e44b e44b e44b e44b e44b -10245 e44c e44c e44c * * 4e34 8ea2ceb4,8ea2ceb4v 8a8b e8aa8b 8a8b 00008a8b e44c e44c e44c e44c e44c e44c e44c -10246 e44d e44d e44d * * 4e35 8ea2ceb5,8ea2ceb5v 8a92 e8aa92 8a92 00008a92 e44d e44d e44d e44d e44d e44d e44d -10247 e44e e44e e44e * * 4e36 8ea2ceb6,8ea2ceb6v 8a8f e8aa8f 8a8f 00008a8f e44e e44e e44e e44e e44e e44e e44e -10248 e44f e44f e44f * * 4e37 8ea2ceb7,8ea2ceb7v 8a96 e8aa96 8a96 00008a96 e44f e44f e44f e44f e44f e44f e44f -10249 e450 e450 e450 * * 4e38 8ea2ceb8,8ea2ceb8v 8c3d e8b0bd 8c3d 00008c3d e450 e450 e450 e450 e450 e450 e450 -10250 e451 e451 e451 * * 4e39 8ea2ceb9,8ea2ceb9v 8c68 e8b1a8 8c68 00008c68 e451 e451 e451 e451 e451 e451 e451 -10251 e452 e452 e452 * * 4e3a 8ea2ceba,8ea2cebav 8c69 e8b1a9 8c69 00008c69 e452 e452 e452 e452 e452 e452 e452 -10252 e453 e453 e453 * * 4e3b 8ea2cebb,8ea2cebbv 8cd5 e8b395 8cd5 00008cd5 e453 e453 e453 e453 e453 e453 e453 -10253 e454 e454 e454 * * 4e3c 8ea2cebc,8ea2cebcv 8ccf e8b38f 8ccf 00008ccf e454 e454 e454 e454 e454 e454 e454 -10254 e455 e455 e455 * * 4e3d 8ea2cebd,8ea2cebdv 8cd7 e8b397 8cd7 00008cd7 e455 e455 e455 e455 e455 e455 e455 -10255 e456 e456 e456 * * 4e3e 8ea2cebe,8ea2cebev 8d96 e8b696 8d96 00008d96 e456 e456 e456 e456 e456 e456 e456 -10256 e457 e457 e457 * * 4e3f 8ea2cebf,8ea2cebfv 8e09 e8b889 8e09 00008e09 e457 e457 e457 e457 e457 e457 e457 -10257 e458 e458 e458 * * 4e40 8ea2cec0,8ea2cec0v 8e02 e8b882 8e02 00008e02 e458 e458 e458 e458 e458 e458 e458 -10258 e459 e459 e459 * * 4e41 8ea2cec1,8ea2cec1v 8dff e8b7bf 8dff 00008dff e459 e459 e459 e459 e459 e459 e459 -10259 e45a e45a e45a * * 4e42 8ea2cec2,8ea2cec2v 8e0d e8b88d 8e0d 00008e0d e45a e45a e45a e45a e45a e45a e45a -10260 e45b e45b e45b * * 4e43 8ea2cec3,8ea2cec3v 8dfd e8b7bd 8dfd 00008dfd e45b e45b e45b e45b e45b e45b e45b -10261 e45c e45c e45c * * 4e44 8ea2cec4,8ea2cec4v 8e0a e8b88a 8e0a 00008e0a e45c e45c e45c e45c e45c e45c e45c -10262 e45d e45d e45d * * 4e45 8ea2cec5,8ea2cec5v 8e03 e8b883 8e03 00008e03 e45d e45d e45d e45d e45d e45d e45d -10263 e45e e45e e45e * * 4e46 8ea2cec6,8ea2cec6v 8e07 e8b887 8e07 00008e07 e45e e45e e45e e45e e45e e45e e45e -10264 e45f e45f e45f * * 4e47 8ea2cec7,8ea2cec7v 8e06 e8b886 8e06 00008e06 e45f e45f e45f e45f e45f e45f e45f -10265 e460 e460 e460 * * 4e48 8ea2cec8,8ea2cec8v 8e05 e8b885 8e05 00008e05 e460 e460 e460 e460 e460 e460 e460 -10266 e461 e461 e461 * * 4e49 8ea2cec9,8ea2cec9v 8dfe e8b7be 8dfe 00008dfe e461 e461 e461 e461 e461 e461 e461 -10267 e462 e462 e462 * * 4e4a 8ea2ceca,8ea2cecav 8e00 e8b880 8e00 00008e00 e462 e462 e462 e462 e462 e462 e462 -10268 e463 e463 e463 * * 4e4b 8ea2cecb,8ea2cecbv 8e04 e8b884 8e04 00008e04 e463 e463 e463 e463 e463 e463 e463 -10269 e464 e464 e464 * * 4e4c 8ea2cecc,8ea2ceccv 8f10 e8bc90 8f10 00008f10 e464 e464 e464 e464 e464 e464 e464 -10270 e465 e465 e465 * * 4e4d 8ea2cecd,8ea2cecdv 8f11 e8bc91 8f11 00008f11 e465 e465 e465 e465 e465 e465 e465 -10271 e466 e466 e466 * * 4e4e 8ea2cece,8ea2cecev 8f0e e8bc8e 8f0e 00008f0e e466 e466 e466 e466 e466 e466 e466 -10272 e467 e467 e467 * * 4e4f 8ea2cecf,8ea2cecfv 8f0d e8bc8d 8f0d 00008f0d e467 e467 e467 e467 e467 e467 e467 -10273 e468 e468 e468 * * 4e50 8ea2ced0,8ea2ced0v 9123 e984a3 9123 00009123 e468 e468 e468 e468 e468 e468 e468 -10274 e469 e469 e469 * * 4e51 8ea2ced1,8ea2ced1v 911c e9849c 911c 0000911c e469 e469 e469 e469 e469 e469 e469 -10275 e46a e46a e46a * * 4e52 8ea2ced2,8ea2ced2v 9120 e984a0 9120 00009120 e46a e46a e46a e46a e46a e46a e46a -10276 e46b e46b e46b * * 4e53 8ea2ced3,8ea2ced3v 9122 e984a2 9122 00009122 e46b e46b e46b e46b e46b e46b e46b -10277 e46c e46c e46c * * 4e54 8ea2ced4,8ea2ced4v 911f e9849f 911f 0000911f e46c e46c e46c e46c e46c e46c e46c -10278 e46d e46d e46d * * 4e55 8ea2ced5,8ea2ced5v 911d e9849d 911d 0000911d e46d e46d e46d e46d e46d e46d e46d -10279 e46e e46e e46e * * 4e56 8ea2ced6,8ea2ced6v 911a e9849a 911a 0000911a e46e e46e e46e e46e e46e e46e e46e -10280 e46f e46f e46f * * 4e57 8ea2ced7,8ea2ced7v 9124 e984a4 9124 00009124 e46f e46f e46f e46f e46f e46f e46f -10281 e470 e470 e470 * * 4e58 8ea2ced8,8ea2ced8v 9121 e984a1 9121 00009121 e470 e470 e470 e470 e470 e470 e470 -10282 e471 e471 e471 * * 4e59 8ea2ced9,8ea2ced9v 911b e9849b 911b 0000911b e471 e471 e471 e471 e471 e471 e471 -10283 e472 e472 e472 * * 4e5a 8ea2ceda,8ea2cedav 917a e985ba 917a 0000917a e472 e472 e472 e472 e472 e472 e472 -10284 e473 e473 e473 * * 4e5b 8ea2cedb,8ea2cedbv 9172 e985b2 9172 00009172 e473 e473 e473 e473 e473 e473 e473 -10285 e474 e474 e474 * * 4e5c 8ea2cedc,8ea2cedcv 9179 e985b9 9179 00009179 e474 e474 e474 e474 e474 e474 e474 -10286 e475 e475 e475 * * 4e5d 8ea2cedd,8ea2ceddv 9173 e985b3 9173 00009173 e475 e475 e475 e475 e475 e475 e475 -10287 e476 e476 e476 * * 4e5e 8ea2cede,8ea2cedev 92a5 e98aa5 92a5 000092a5 e476 e476 e476 e476 e476 e476 e476 -10288 e477 e477 e477 * * 4e5f 8ea2cedf,8ea2cedfv 92a4 e98aa4 92a4 000092a4 e477 e477 e477 e477 e477 e477 e477 -10289 e478 e478 e478 * * 4e60 8ea2cee0,8ea2cee0v 9276 e989b6 9276 00009276 e478 e478 e478 e478 e478 e478 e478 -10290 e479 e479 e479 * * 4e61 8ea2cee1,8ea2cee1v 929b e98a9b 929b 0000929b e479 e479 e479 e479 e479 e479 e479 -10291 e47a e47a e47a * * 4e62 8ea2cee2,8ea2cee2v 927a e989ba 927a 0000927a e47a e47a e47a e47a e47a e47a e47a -10292 e47b e47b e47b * * 4e63 8ea2cee3,8ea2cee3v 92a0 e98aa0 92a0 000092a0 e47b e47b e47b e47b e47b e47b e47b -10293 e47c e47c e47c * * 4e64 8ea2cee4,8ea2cee4v 9294 e98a94 9294 00009294 e47c e47c e47c e47c e47c e47c e47c -10294 e47d e47d e47d * * 4e65 8ea2cee5,8ea2cee5v 92aa e98aaa 92aa 000092aa e47d e47d e47d e47d e47d e47d e47d -10295 e47e e47e e47e * * 4e66 8ea2cee6,8ea2cee6v 928d e98a8d 928d 0000928d e47e e47e e47e e47e e47e e47e e47e -10296 e4a1 e4a1 e4a1 * * 4e67 8ea2cee7,8ea2cee7v 92a6 e98aa6 92a6 000092a6 e4a1 e4a1 e4a1 e4a1 e4a1 e4a1 e4a1 -10297 e4a2 e4a2 e4a2 * * 4e68 8ea2cee8,8ea2cee8v 929a e98a9a 929a 0000929a e4a2 e4a2 e4a2 e4a2 e4a2 e4a2 e4a2 -10298 e4a3 e4a3 e4a3 * * 4e69 8ea2cee9,8ea2cee9v 92ab e98aab 92ab 000092ab e4a3 e4a3 e4a3 e4a3 e4a3 e4a3 e4a3 -10299 e4a4 e4a4 e4a4 * * 4e6a 8ea2ceea,8ea2ceeav 9279 e989b9 9279 00009279 e4a4 e4a4 e4a4 e4a4 e4a4 e4a4 e4a4 -10300 e4a5 e4a5 e4a5 * * 4e6b 8ea2ceeb,8ea2ceebv 9297 e98a97 9297 00009297 e4a5 e4a5 e4a5 e4a5 e4a5 e4a5 e4a5 -10301 e4a6 e4a6 e4a6 * * 4e6c 8ea2ceec,8ea2ceecv 927f e989bf 927f 0000927f e4a6 e4a6 e4a6 e4a6 e4a6 e4a6 e4a6 -10302 e4a7 e4a7 e4a7 * * 4e6d 8ea2ceed,8ea2ceedv 92a3 e98aa3 92a3 000092a3 e4a7 e4a7 e4a7 e4a7 e4a7 e4a7 e4a7 -10303 e4a8 e4a8 e4a8 * * 4e6e 8ea2ceee,8ea2ceeev 92ee e98bae 92ee 000092ee e4a8 e4a8 e4a8 e4a8 e4a8 e4a8 e4a8 -10304 e4a9 e4a9 e4a9 * * 4e6f 8ea2ceef,8ea2ceefv 928e e98a8e 928e 0000928e e4a9 e4a9 e4a9 e4a9 e4a9 e4a9 e4a9 -10305 e4aa e4aa e4aa * * 4e70 8ea2cef0,8ea2cef0v 9282 e98a82 9282 00009282 e4aa e4aa e4aa e4aa e4aa e4aa e4aa -10306 e4ab e4ab e4ab * * 4e71 8ea2cef1,8ea2cef1v 9295 e98a95 9295 00009295 e4ab e4ab e4ab e4ab e4ab e4ab e4ab -10307 e4ac e4ac e4ac * * 4e72 8ea2cef2,8ea2cef2v 92a2 e98aa2 92a2 000092a2 e4ac e4ac e4ac e4ac e4ac e4ac e4ac -10308 e4ad e4ad e4ad * * 4e73 8ea2cef3,8ea2cef3v 927d e989bd 927d 0000927d e4ad e4ad e4ad e4ad e4ad e4ad e4ad -10309 e4ae e4ae e4ae * * 4e74 8ea2cef4,8ea2cef4v 9288 e98a88 9288 00009288 e4ae e4ae e4ae e4ae e4ae e4ae e4ae -10310 e4af e4af e4af * * 4e75 8ea2cef5,8ea2cef5v 92a1 e98aa1 92a1 000092a1 e4af e4af e4af e4af e4af e4af e4af -10311 e4b0 e4b0 e4b0 * * 4e76 8ea2cef6,8ea2cef6v 928a e98a8a 928a 0000928a e4b0 e4b0 e4b0 e4b0 e4b0 e4b0 e4b0 -10312 e4b1 e4b1 e4b1 * * 4e77 8ea2cef7,8ea2cef7v 9286 e98a86 9286 00009286 e4b1 e4b1 e4b1 e4b1 e4b1 e4b1 e4b1 -10313 e4b2 e4b2 e4b2 * * 4e78 8ea2cef8,8ea2cef8v 928c e98a8c 928c 0000928c e4b2 e4b2 e4b2 e4b2 e4b2 e4b2 e4b2 -10314 e4b3 e4b3 e4b3 * * 4e79 8ea2cef9,8ea2cef9v 9299 e98a99 9299 00009299 e4b3 e4b3 e4b3 e4b3 e4b3 e4b3 e4b3 -10315 e4b4 e4b4 e4b4 * * 4e7a 8ea2cefa,8ea2cefav 92a7 e98aa7 92a7 000092a7 e4b4 e4b4 e4b4 e4b4 e4b4 e4b4 e4b4 -10316 e4b5 e4b5 e4b5 * * 4e7b 8ea2cefb,8ea2cefbv 927e e989be 927e 0000927e e4b5 e4b5 e4b5 e4b5 e4b5 e4b5 e4b5 -10317 e4b6 e4b6 e4b6 * * 4e7c 8ea2cefc,8ea2cefcv 9287 e98a87 9287 00009287 e4b6 e4b6 e4b6 e4b6 e4b6 e4b6 e4b6 -10318 e4b7 e4b7 e4b7 * * 4e7d 8ea2cefd,8ea2cefdv 92a9 e98aa9 92a9 000092a9 e4b7 e4b7 e4b7 e4b7 e4b7 e4b7 e4b7 -10319 e4b8 e4b8 e4b8 * * 4e7e 8ea2cefe,8ea2cefev 929d e98a9d 929d 0000929d e4b8 e4b8 e4b8 e4b8 e4b8 e4b8 e4b8 -10320 e4b9 e4b9 e4b9 * * 4f21 8ea2cfa1,8ea2cfa1v 928b e98a8b 928b 0000928b e4b9 e4b9 e4b9 e4b9 e4b9 e4b9 e4b9 -10321 e4ba e4ba e4ba * * 4f22 8ea2cfa2,8ea2cfa2v 922d e988ad 922d 0000922d e4ba e4ba e4ba e4ba e4ba e4ba e4ba -10322 e4bb e4bb e4bb * * 4f23 8ea2cfa3,8ea2cfa3v 969e e99a9e 969e 0000969e e4bb e4bb e4bb e4bb e4bb e4bb e4bb -10323 e4bc e4bc e4bc * * 4f24 8ea2cfa4,8ea2cfa4v 96a1 e99aa1 96a1 000096a1 e4bc e4bc e4bc e4bc e4bc e4bc e4bc -10324 e4bd e4bd e4bd * * 4f25 8ea2cfa5,8ea2cfa5v 96ff e99bbf 96ff 000096ff e4bd e4bd e4bd e4bd e4bd e4bd e4bd -10325 e4be e4be e4be * * 4f26 8ea2cfa6,8ea2cfa6v 9758 e99d98 9758 00009758 e4be e4be e4be e4be e4be e4be e4be -10326 e4bf e4bf e4bf * * 4f27 8ea2cfa7,8ea2cfa7v 977d e99dbd 977d 0000977d e4bf e4bf e4bf e4bf e4bf e4bf e4bf -10327 e4c0 e4c0 e4c0 * * 4f28 8ea2cfa8,8ea2cfa8v 977a e99dba 977a 0000977a e4c0 e4c0 e4c0 e4c0 e4c0 e4c0 e4c0 -10328 e4c1 e4c1 e4c1 * * 4f29 8ea2cfa9,8ea2cfa9v 977e e99dbe 977e 0000977e e4c1 e4c1 e4c1 e4c1 e4c1 e4c1 e4c1 -10329 e4c2 e4c2 e4c2 * * 4f2a 8ea2cfaa,8ea2cfaav 9783 e99e83 9783 00009783 e4c2 e4c2 e4c2 e4c2 e4c2 e4c2 e4c2 -10330 e4c3 e4c3 e4c3 * * 4f2b 8ea2cfab,8ea2cfabv 9780 e99e80 9780 00009780 e4c3 e4c3 e4c3 e4c3 e4c3 e4c3 e4c3 -10331 e4c4 e4c4 e4c4 * * 4f2c 8ea2cfac,8ea2cfacv 9782 e99e82 9782 00009782 e4c4 e4c4 e4c4 e4c4 e4c4 e4c4 e4c4 -10332 e4c5 e4c5 e4c5 * * 4f2d 8ea2cfad,8ea2cfadv 977b e99dbb 977b 0000977b e4c5 e4c5 e4c5 e4c5 e4c5 e4c5 e4c5 -10333 e4c6 e4c6 e4c6 * * 4f2e 8ea2cfae,8ea2cfaev 9784 e99e84 9784 00009784 e4c6 e4c6 e4c6 e4c6 e4c6 e4c6 e4c6 -10334 e4c7 e4c7 e4c7 * * 4f2f 8ea2cfaf,8ea2cfafv 9781 e99e81 9781 00009781 e4c7 e4c7 e4c7 e4c7 e4c7 e4c7 e4c7 -10335 e4c8 e4c8 e4c8 * * 4f30 8ea2cfb0,8ea2cfb0v 977f e99dbf 977f 0000977f e4c8 e4c8 e4c8 e4c8 e4c8 e4c8 e4c8 -10336 e4c9 e4c9 e4c9 * * 4f31 8ea2cfb1,8ea2cfb1v 97ce e99f8e 97ce 000097ce e4c9 e4c9 e4c9 e4c9 e4c9 e4c9 e4c9 -10337 e4ca e4ca e4ca * * 4f32 8ea2cfb2,8ea2cfb2v 97cd e99f8d 97cd 000097cd e4ca e4ca e4ca e4ca e4ca e4ca e4ca -10338 e4cb e4cb e4cb * * 4f33 8ea2cfb3,8ea2cfb3v 9816 e9a096 9816 00009816 e4cb e4cb e4cb e4cb e4cb e4cb e4cb -10339 e4cc e4cc e4cc * * 4f34 8ea2cfb4,8ea2cfb4v 98ad e9a2ad 98ad 000098ad e4cc e4cc e4cc e4cc e4cc e4cc e4cc -10340 e4cd e4cd e4cd * * 4f35 8ea2cfb5,8ea2cfb5v 98ae e9a2ae 98ae 000098ae e4cd e4cd e4cd e4cd e4cd e4cd e4cd -10341 e4ce e4ce e4ce * * 4f36 8ea2cfb6,8ea2cfb6v 9902 e9a482 9902 00009902 e4ce e4ce e4ce e4ce e4ce e4ce e4ce -10342 e4cf e4cf e4cf * * 4f37 8ea2cfb7,8ea2cfb7v 9900 e9a480 9900 00009900 e4cf e4cf e4cf e4cf e4cf e4cf e4cf -10343 e4d0 e4d0 e4d0 * * 4f38 8ea2cfb8,8ea2cfb8v 9907 e9a487 9907 00009907 e4d0 e4d0 e4d0 e4d0 e4d0 e4d0 e4d0 -10344 e4d1 e4d1 e4d1 * * 4f39 8ea2cfb9,8ea2cfb9v 999d e9a69d 999d 0000999d e4d1 e4d1 e4d1 e4d1 e4d1 e4d1 e4d1 -10345 e4d2 e4d2 e4d2 * * 4f3a 8ea2cfba,8ea2cfbav 999c e9a69c 999c 0000999c e4d2 e4d2 e4d2 e4d2 e4d2 e4d2 e4d2 -10346 e4d3 e4d3 e4d3 * * 4f3b 8ea2cfbb,8ea2cfbbv 99c3 e9a783 99c3 000099c3 e4d3 e4d3 e4d3 e4d3 e4d3 e4d3 e4d3 -10347 e4d4 e4d4 e4d4 * * 4f3c 8ea2cfbc,8ea2cfbcv 99b9 e9a6b9 99b9 000099b9 e4d4 e4d4 e4d4 e4d4 e4d4 e4d4 e4d4 -10348 e4d5 e4d5 e4d5 * * 4f3d 8ea2cfbd,8ea2cfbdv 99bb e9a6bb 99bb 000099bb e4d5 e4d5 e4d5 e4d5 e4d5 e4d5 e4d5 -10349 e4d6 e4d6 e4d6 * * 4f3e 8ea2cfbe,8ea2cfbev 99ba e9a6ba 99ba 000099ba e4d6 e4d6 e4d6 e4d6 e4d6 e4d6 e4d6 -10350 e4d7 e4d7 e4d7 * * 4f3f 8ea2cfbf,8ea2cfbfv 99c2 e9a782 99c2 000099c2 e4d7 e4d7 e4d7 e4d7 e4d7 e4d7 e4d7 -10351 e4d8 e4d8 e4d8 * * 4f40 8ea2cfc0,8ea2cfc0v 99bd e9a6bd 99bd 000099bd e4d8 e4d8 e4d8 e4d8 e4d8 e4d8 e4d8 -10352 e4d9 e4d9 e4d9 * * 4f41 8ea2cfc1,8ea2cfc1v 99c7 e9a787 99c7 000099c7 e4d9 e4d9 e4d9 e4d9 e4d9 e4d9 e4d9 -10353 e4da e4da e4da * * 4f42 8ea2cfc2,8ea2cfc2v 9ab1 e9aab1 9ab1 00009ab1 e4da e4da e4da e4da e4da e4da e4da -10354 e4db e4db e4db * * 4f43 8ea2cfc3,8ea2cfc3v 9ae3 e9aba3 9ae3 00009ae3 e4db e4db e4db e4db e4db e4db e4db -10355 e4dc e4dc e4dc * * 4f44 8ea2cfc4,8ea2cfc4v 9ae7 e9aba7 9ae7 00009ae7 e4dc e4dc e4dc e4dc e4dc e4dc e4dc -10356 e4dd e4dd e4dd * * 4f45 8ea2cfc5,8ea2cfc5v 9b3e e9acbe 9b3e 00009b3e e4dd e4dd e4dd e4dd e4dd e4dd e4dd -10357 e4de e4de e4de * * 4f46 8ea2cfc6,8ea2cfc6v 9b3f e9acbf 9b3f 00009b3f e4de e4de e4de e4de e4de e4de e4de -10358 e4df e4df e4df * * 4f47 8ea2cfc7,8ea2cfc7v 9b60 e9ada0 9b60 00009b60 e4df e4df e4df e4df e4df e4df e4df -10359 e4e0 e4e0 e4e0 * * 4f48 8ea2cfc8,8ea2cfc8v 9b61 e9ada1 9b61 00009b61 e4e0 e4e0 e4e0 e4e0 e4e0 e4e0 e4e0 -10360 e4e1 e4e1 e4e1 * * 4f49 8ea2cfc9,8ea2cfc9v 9b5f e9ad9f 9b5f 00009b5f e4e1 e4e1 e4e1 e4e1 e4e1 e4e1 e4e1 -10361 e4e2 e4e2 e4e2 * * 4f4a 8ea2cfca,8ea2cfcav 9cf1 e9b3b1 9cf1 00009cf1 e4e2 e4e2 e4e2 e4e2 e4e2 e4e2 e4e2 -10362 e4e3 e4e3 e4e3 * * 4f4b 8ea2cfcb,8ea2cfcbv 9cf2 e9b3b2 9cf2 00009cf2 e4e3 e4e3 e4e3 e4e3 e4e3 e4e3 e4e3 -10363 e4e4 e4e4 e4e4 * * 4f4c 8ea2cfcc,8ea2cfccv 9cf5 e9b3b5 9cf5 00009cf5 e4e4 e4e4 e4e4 e4e4 e4e4 e4e4 e4e4 -10364 e4e5 e4e5 e4e5 * * 4f4d 8ea2cfcd,8ea2cfcdv 9ea7 e9baa7 9ea7 00009ea7 e4e5 e4e5 e4e5 e4e5 e4e5 e4e5 e4e5 -10365 e4e6 e4e6 e4e6 * * 4f4e 8ea2cfce,8ea2cfcev 50ff e583bf 50ff 000050ff e4e6 e4e6 e4e6 e4e6 e4e6 e4e6 e4e6 -10366 e4e7 e4e7 e4e7 * * 4f4f 8ea2cfcf,8ea2cfcfv 5103 e58483 5103 00005103 e4e7 e4e7 e4e7 e4e7 e4e7 e4e7 e4e7 -10367 e4e8 e4e8 e4e8 * * 4f50 8ea2cfd0,8ea2cfd0v 5130 e584b0 5130 00005130 e4e8 e4e8 e4e8 e4e8 e4e8 e4e8 e4e8 -10368 e4e9 e4e9 e4e9 * * 4f51 8ea2cfd1,8ea2cfd1v 50f8 e583b8 50f8 000050f8 e4e9 e4e9 e4e9 e4e9 e4e9 e4e9 e4e9 -10369 e4ea e4ea e4ea * * 4f52 8ea2cfd2,8ea2cfd2v 5106 e58486 5106 00005106 e4ea e4ea e4ea e4ea e4ea e4ea e4ea -10370 e4eb e4eb e4eb * * 4f53 8ea2cfd3,8ea2cfd3v 5107 e58487 5107 00005107 e4eb e4eb e4eb e4eb e4eb e4eb e4eb -10371 e4ec e4ec e4ec * * 4f54 8ea2cfd4,8ea2cfd4v 50f6 e583b6 50f6 000050f6 e4ec e4ec e4ec e4ec e4ec e4ec e4ec -10372 e4ed e4ed e4ed * * 4f55 8ea2cfd5,8ea2cfd5v 50fe e583be 50fe 000050fe e4ed e4ed e4ed e4ed e4ed e4ed e4ed -10373 e4ee e4ee e4ee * * 4f56 8ea2cfd6,8ea2cfd6v 510b e5848b 510b 0000510b e4ee e4ee e4ee e4ee e4ee e4ee e4ee -10374 e4ef e4ef e4ef * * 4f57 8ea2cfd7,8ea2cfd7v 510c e5848c 510c 0000510c e4ef e4ef e4ef e4ef e4ef e4ef e4ef -10375 e4f0 e4f0 e4f0 * * 4f58 8ea2cfd8,8ea2cfd8v 50fd e583bd 50fd 000050fd e4f0 e4f0 e4f0 e4f0 e4f0 e4f0 e4f0 -10376 e4f1 e4f1 e4f1 * * 4f59 8ea2cfd9,8ea2cfd9v 510a e5848a 510a 0000510a e4f1 e4f1 e4f1 e4f1 e4f1 e4f1 e4f1 -10377 e4f2 e4f2 e4f2 * * 4f5a 8ea2cfda,8ea2cfdav 528b e58a8b 528b 0000528b e4f2 e4f2 e4f2 e4f2 e4f2 e4f2 e4f2 -10378 e4f3 e4f3 e4f3 * * 4f5b 8ea2cfdb,8ea2cfdbv 528c e58a8c 528c 0000528c e4f3 e4f3 e4f3 e4f3 e4f3 e4f3 e4f3 -10379 e4f4 e4f4 e4f4 * * 4f5c 8ea2cfdc,8ea2cfdcv 52f1 e58bb1 52f1 000052f1 e4f4 e4f4 e4f4 e4f4 e4f4 e4f4 e4f4 -10380 e4f5 e4f5 e4f5 * * 4f5d 8ea2cfdd,8ea2cfddv 52ef e58baf 52ef 000052ef e4f5 e4f5 e4f5 e4f5 e4f5 e4f5 e4f5 -10381 e4f6 e4f6 e4f6 * * 4f5e 8ea2cfde,8ea2cfdev 5648 e59988 5648 00005648 e4f6 e4f6 e4f6 e4f6 e4f6 e4f6 e4f6 -10382 e4f7 e4f7 e4f7 * * 4f5f 8ea2cfdf,8ea2cfdfv 5642 e59982 5642 00005642 e4f7 e4f7 e4f7 e4f7 e4f7 e4f7 e4f7 -10383 e4f8 e4f8 e4f8 * * 4f60 8ea2cfe0,8ea2cfe0v 564c e5998c 564c 0000564c e4f8 e4f8 e4f8 e4f8 e4f8 e4f8 e4f8 -10384 e4f9 e4f9 e4f9 * * 4f61 8ea2cfe1,8ea2cfe1v 5635 e598b5 5635 00005635 e4f9 e4f9 e4f9 e4f9 e4f9 e4f9 e4f9 -10385 e4fa e4fa e4fa * * 4f62 8ea2cfe2,8ea2cfe2v 5641 e59981 5641 00005641 e4fa e4fa e4fa e4fa e4fa e4fa e4fa -10386 e4fb e4fb e4fb * * 4f63 8ea2cfe3,8ea2cfe3v 564a e5998a 564a 0000564a e4fb e4fb e4fb e4fb e4fb e4fb e4fb -10387 e4fc e4fc e4fc * * 4f64 8ea2cfe4,8ea2cfe4v 5649 e59989 5649 00005649 e4fc e4fc e4fc e4fc e4fc e4fc e4fc -10388 e4fd e4fd e4fd * * 4f65 8ea2cfe5,8ea2cfe5v 5646 e59986 5646 00005646 e4fd e4fd e4fd e4fd e4fd e4fd e4fd -10389 e4fe e4fe e4fe * * 4f66 8ea2cfe6,8ea2cfe6v 5658 e59998 5658 00005658 e4fe e4fe e4fe e4fe e4fe e4fe e4fe -10390 e540 e540 e540 * * 4f67 8ea2cfe7,8ea2cfe7v 565a e5999a 565a 0000565a e540 e540 e540 e540 e540 e540 e540 -10391 e541 e541 e541 * * 4f68 8ea2cfe8,8ea2cfe8v 5640 e59980 5640 00005640 e541 e541 e541 e541 e541 e541 e541 -10392 e542 e542 e542 * * 4f69 8ea2cfe9,8ea2cfe9v 5633 e598b3 5633 00005633 e542 e542 e542 e542 e542 e542 e542 -10393 e543 e543 e543 * * 4f6a 8ea2cfea,8ea2cfeav 563d e598bd 563d 0000563d e543 e543 e543 e543 e543 e543 e543 -10394 e544 e544 e544 * * 4f6b 8ea2cfeb,8ea2cfebv 562c e598ac 562c 0000562c e544 e544 e544 e544 e544 e544 e544 -10395 e545 e545 e545 * * 4f6c 8ea2cfec,8ea2cfecv 563e e598be 563e 0000563e e545 e545 e545 e545 e545 e545 e545 -10396 e546 e546 e546 * * 4f6d 8ea2cfed,8ea2cfedv 5638 e598b8 5638 00005638 e546 e546 e546 e546 e546 e546 e546 -10397 e547 e547 e547 * * 4f6e 8ea2cfee,8ea2cfeev 562a e598aa 562a 0000562a e547 e547 e547 e547 e547 e547 e547 -10398 e548 e548 e548 * * 4f6f 8ea2cfef,8ea2cfefv 563a e598ba 563a 0000563a e548 e548 e548 e548 e548 e548 e548 -10399 e549 e549 e549 * * 4f70 8ea2cff0,8ea2cff0v 571a e59c9a 571a 0000571a e549 e549 e549 e549 e549 e549 e549 -10400 e54a e54a e54a * * 4f71 8ea2cff1,8ea2cff1v 58ab e5a2ab 58ab 000058ab e54a e54a e54a e54a e54a e54a e54a -10401 e54b e54b e54b * * 4f72 8ea2cff2,8ea2cff2v 589d e5a29d 589d 0000589d e54b e54b e54b e54b e54b e54b e54b -10402 e54c e54c e54c * * 4f73 8ea2cff3,8ea2cff3v 58b1 e5a2b1 58b1 000058b1 e54c e54c e54c e54c e54c e54c e54c -10403 e54d e54d e54d * * 4f74 8ea2cff4,8ea2cff4v 58a0 e5a2a0 58a0 000058a0 e54d e54d e54d e54d e54d e54d e54d -10404 e54e e54e e54e * * 4f75 8ea2cff5,8ea2cff5v 58a3 e5a2a3 58a3 000058a3 e54e e54e e54e e54e e54e e54e e54e -10405 e54f e54f e54f * * 4f76 8ea2cff6,8ea2cff6v 58af e5a2af 58af 000058af e54f e54f e54f e54f e54f e54f e54f -10406 e550 e550 e550 * * 4f77 8ea2cff7,8ea2cff7v 58ac e5a2ac 58ac 000058ac e550 e550 e550 e550 e550 e550 e550 -10407 e551 e551 e551 * * 4f78 8ea2cff8,8ea2cff8v 58a5 e5a2a5 58a5 000058a5 e551 e551 e551 e551 e551 e551 e551 -10408 e552 e552 e552 * * 4f79 8ea2cff9,8ea2cff9v 58a1 e5a2a1 58a1 000058a1 e552 e552 e552 e552 e552 e552 e552 -10409 e553 e553 e553 * * 4f7a 8ea2cffa,8ea2cffav 58ff e5a3bf 58ff 000058ff e553 e553 e553 e553 e553 e553 e553 -10410 e554 e554 e554 * * 4f7b 8ea2cffb,8ea2cffbv 5aff e5abbf 5aff 00005aff e554 e554 e554 e554 e554 e554 e554 -10411 e555 e555 e555 * * 4f7c 8ea2cffc,8ea2cffcv 5af4 e5abb4 5af4 00005af4 e555 e555 e555 e555 e555 e555 e555 -10412 e556 e556 e556 * * 4f7d 8ea2cffd,8ea2cffdv 5afd e5abbd 5afd 00005afd e556 e556 e556 e556 e556 e556 e556 -10413 e557 e557 e557 * * 4f7e 8ea2cffe,8ea2cffev 5af7 e5abb7 5af7 00005af7 e557 e557 e557 e557 e557 e557 e557 -10414 e558 e558 e558 * * 5021 8ea2d0a1,8ea2d0a1v 5af6 e5abb6 5af6 00005af6 e558 e558 e558 e558 e558 e558 e558 -10415 e559 e559 e559 * * 5022 8ea2d0a2,8ea2d0a2v 5b03 e5ac83 5b03 00005b03 e559 e559 e559 e559 e559 e559 e559 -10416 e55a e55a e55a * * 5023 8ea2d0a3,8ea2d0a3v 5af8 e5abb8 5af8 00005af8 e55a e55a e55a e55a e55a e55a e55a -10417 e55b e55b e55b * * 5024 8ea2d0a4,8ea2d0a4v 5b02 e5ac82 5b02 00005b02 e55b e55b e55b e55b e55b e55b e55b -10418 e55c e55c e55c * * 5025 8ea2d0a5,8ea2d0a5v 5af9 e5abb9 5af9 00005af9 e55c e55c e55c e55c e55c e55c e55c -10419 e55d e55d e55d * * 5026 8ea2d0a6,8ea2d0a6v 5b01 e5ac81 5b01 00005b01 e55d e55d e55d e55d e55d e55d e55d -10420 e55e e55e e55e * * 5027 8ea2d0a7,8ea2d0a7v 5b07 e5ac87 5b07 00005b07 e55e e55e e55e e55e e55e e55e e55e -10421 e55f e55f e55f * * 5028 8ea2d0a8,8ea2d0a8v 5b05 e5ac85 5b05 00005b05 e55f e55f e55f e55f e55f e55f e55f -10422 e560 e560 e560 * * 5029 8ea2d0a9,8ea2d0a9v 5b0f e5ac8f 5b0f 00005b0f e560 e560 e560 e560 e560 e560 e560 -10423 e561 e561 e561 * * 502a 8ea2d0aa,8ea2d0aav 5c67 e5b1a7 5c67 00005c67 e561 e561 e561 e561 e561 e561 e561 -10424 e562 e562 e562 * * 502b 8ea2d0ab,8ea2d0abv 5d99 e5b699 5d99 00005d99 e562 e562 e562 e562 e562 e562 e562 -10425 e563 e563 e563 * * 502c 8ea2d0ac,8ea2d0acv 5d97 e5b697 5d97 00005d97 e563 e563 e563 e563 e563 e563 e563 -10426 e564 e564 e564 * * 502d 8ea2d0ad,8ea2d0adv 5d9f e5b69f 5d9f 00005d9f e564 e564 e564 e564 e564 e564 e564 -10427 e565 e565 e565 * * 502e 8ea2d0ae,8ea2d0aev 5d92 e5b692 5d92 00005d92 e565 e565 e565 e565 e565 e565 e565 -10428 e566 e566 e566 * * 502f 8ea2d0af,8ea2d0afv 5da2 e5b6a2 5da2 00005da2 e566 e566 e566 e566 e566 e566 e566 -10429 e567 e567 e567 * * 5030 8ea2d0b0,8ea2d0b0v 5d93 e5b693 5d93 00005d93 e567 e567 e567 e567 e567 e567 e567 -10430 e568 e568 e568 * * 5031 8ea2d0b1,8ea2d0b1v 5d95 e5b695 5d95 00005d95 e568 e568 e568 e568 e568 e568 e568 -10431 e569 e569 e569 * * 5032 8ea2d0b2,8ea2d0b2v 5da0 e5b6a0 5da0 00005da0 e569 e569 e569 e569 e569 e569 e569 -10432 e56a e56a e56a * * 5033 8ea2d0b3,8ea2d0b3v 5d9c e5b69c 5d9c 00005d9c e56a e56a e56a e56a e56a e56a e56a -10433 e56b e56b e56b * * 5034 8ea2d0b4,8ea2d0b4v 5da1 e5b6a1 5da1 00005da1 e56b e56b e56b e56b e56b e56b e56b -10434 e56c e56c e56c * * 5035 8ea2d0b5,8ea2d0b5v 5d9a e5b69a 5d9a 00005d9a e56c e56c e56c e56c e56c e56c e56c -10435 e56d e56d e56d * * 5036 8ea2d0b6,8ea2d0b6v 5d9e e5b69e 5d9e 00005d9e e56d e56d e56d e56d e56d e56d e56d -10436 e56e e56e e56e * * 5037 8ea2d0b7,8ea2d0b7v 5e69 e5b9a9 5e69 00005e69 e56e e56e e56e e56e e56e e56e e56e -10437 e56f e56f e56f * * 5038 8ea2d0b8,8ea2d0b8v 5e5d e5b99d 5e5d 00005e5d e56f e56f e56f e56f e56f e56f e56f -10438 e570 e570 e570 * * 5039 8ea2d0b9,8ea2d0b9v 5e60 e5b9a0 5e60 00005e60 e570 e570 e570 e570 e570 e570 e570 -10439 e571 e571 e571 * * 503a 8ea2d0ba,8ea2d0bav 5e5c e5b99c 5e5c 00005e5c e571 e571 e571 e571 e571 e571 e571 -10440 e572 e572 e572 * * 503b 8ea2d0bb,8ea2d0bbv 7df3 e7b7b3 7df3 00007df3 e572 e572 e572 e572 e572 e572 e572 -10441 e573 e573 e573 * * 503c 8ea2d0bc,8ea2d0bcv 5edb e5bb9b 5edb 00005edb e573 e573 e573 e573 e573 e573 e573 -10442 e574 e574 e574 * * 503d 8ea2d0bd,8ea2d0bdv 5ede e5bb9e 5ede 00005ede e574 e574 e574 e574 e574 e574 e574 -10443 e575 e575 e575 * * 503e 8ea2d0be,8ea2d0bev 5ee1 e5bba1 5ee1 00005ee1 e575 e575 e575 e575 e575 e575 e575 -10444 e576 e576 e576 * * 503f 8ea2d0bf,8ea2d0bfv 5f49 e5bd89 5f49 00005f49 e576 e576 e576 e576 e576 e576 e576 -10445 e577 e577 e577 * * 5040 8ea2d0c0,8ea2d0c0v 5fb2 e5beb2 5fb2 00005fb2 e577 e577 e577 e577 e577 e577 e577 -10446 e578 e578 e578 * * 5041 8ea2d0c1,8ea2d0c1v 618b e6868b 618b 0000618b e578 e578 e578 e578 e578 e578 e578 -10447 e579 e579 e579 * * 5042 8ea2d0c2,8ea2d0c2v 6183 e68683 6183 00006183 e579 e579 e579 e579 e579 e579 e579 -10448 e57a e57a e57a * * 5043 8ea2d0c3,8ea2d0c3v 6179 e685b9 6179 00006179 e57a e57a e57a e57a e57a e57a e57a -10449 e57b e57b e57b * * 5044 8ea2d0c4,8ea2d0c4v 61b1 e686b1 61b1 000061b1 e57b e57b e57b e57b e57b e57b e57b -10450 e57c e57c e57c * * 5045 8ea2d0c5,8ea2d0c5v 61b0 e686b0 61b0 000061b0 e57c e57c e57c e57c e57c e57c e57c -10451 e57d e57d e57d * * 5046 8ea2d0c6,8ea2d0c6v 61a2 e686a2 61a2 000061a2 e57d e57d e57d e57d e57d e57d e57d -10452 e57e e57e e57e * * 5047 8ea2d0c7,8ea2d0c7v 6189 e68689 6189 00006189 e57e e57e e57e e57e e57e e57e e57e -10453 e5a1 e5a1 e5a1 * * 5048 8ea2d0c8,8ea2d0c8v 619b e6869b 619b 0000619b e5a1 e5a1 e5a1 e5a1 e5a1 e5a1 e5a1 -10454 e5a2 e5a2 e5a2 * * 5049 8ea2d0c9,8ea2d0c9v 6193 e68693 6193 00006193 e5a2 e5a2 e5a2 e5a2 e5a2 e5a2 e5a2 -10455 e5a3 e5a3 e5a3 * * 504a 8ea2d0ca,8ea2d0cav 61af e686af 61af 000061af e5a3 e5a3 e5a3 e5a3 e5a3 e5a3 e5a3 -10456 e5a4 e5a4 e5a4 * * 504b 8ea2d0cb,8ea2d0cbv 61ad e686ad 61ad 000061ad e5a4 e5a4 e5a4 e5a4 e5a4 e5a4 e5a4 -10457 e5a5 e5a5 e5a5 * * 504c 8ea2d0cc,8ea2d0ccv 619f e6869f 619f 0000619f e5a5 e5a5 e5a5 e5a5 e5a5 e5a5 e5a5 -10458 e5a6 e5a6 e5a6 * * 504d 8ea2d0cd,8ea2d0cdv 6192 e68692 6192 00006192 e5a6 e5a6 e5a6 e5a6 e5a6 e5a6 e5a6 -10459 e5a7 e5a7 e5a7 * * 504e 8ea2d0ce,8ea2d0cev 61aa e686aa 61aa 000061aa e5a7 e5a7 e5a7 e5a7 e5a7 e5a7 e5a7 -10460 e5a8 e5a8 e5a8 * * 504f 8ea2d0cf,8ea2d0cfv 61a1 e686a1 61a1 000061a1 e5a8 e5a8 e5a8 e5a8 e5a8 e5a8 e5a8 -10461 e5a9 e5a9 e5a9 * * 5050 8ea2d0d0,8ea2d0d0v 618d e6868d 618d 0000618d e5a9 e5a9 e5a9 e5a9 e5a9 e5a9 e5a9 -10462 e5aa e5aa e5aa * * 5051 8ea2d0d1,8ea2d0d1v 6166 e685a6 6166 00006166 e5aa e5aa e5aa e5aa e5aa e5aa e5aa -10463 e5ab e5ab e5ab * * 5052 8ea2d0d2,8ea2d0d2v 61b3 e686b3 61b3 000061b3 e5ab e5ab e5ab e5ab e5ab e5ab e5ab -10464 e5ac e5ac e5ac * * 5053 8ea2d0d3,8ea2d0d3v 622d e688ad 622d 0000622d e5ac e5ac e5ac e5ac e5ac e5ac e5ac -10465 e5ad e5ad e5ad * * 5054 8ea2d0d4,8ea2d0d4v 646e e691ae 646e 0000646e e5ad e5ad e5ad e5ad e5ad e5ad e5ad -10466 e5ae e5ae e5ae * * 5055 8ea2d0d5,8ea2d0d5v 6470 e691b0 6470 00006470 e5ae e5ae e5ae e5ae e5ae e5ae e5ae -10467 e5af e5af e5af * * 5056 8ea2d0d6,8ea2d0d6v 6496 e69296 6496 00006496 e5af e5af e5af e5af e5af e5af e5af -10468 e5b0 e5b0 e5b0 * * 5057 8ea2d0d7,8ea2d0d7v 64a0 e692a0 64a0 000064a0 e5b0 e5b0 e5b0 e5b0 e5b0 e5b0 e5b0 -10469 e5b1 e5b1 e5b1 * * 5058 8ea2d0d8,8ea2d0d8v 6485 e69285 6485 00006485 e5b1 e5b1 e5b1 e5b1 e5b1 e5b1 e5b1 -10470 e5b2 e5b2 e5b2 * * 5059 8ea2d0d9,8ea2d0d9v 6497 e69297 6497 00006497 e5b2 e5b2 e5b2 e5b2 e5b2 e5b2 e5b2 -10471 e5b3 e5b3 e5b3 * * 505a 8ea2d0da,8ea2d0dav 649c e6929c 649c 0000649c e5b3 e5b3 e5b3 e5b3 e5b3 e5b3 e5b3 -10472 e5b4 e5b4 e5b4 * * 505b 8ea2d0db,8ea2d0dbv 648f e6928f 648f 0000648f e5b4 e5b4 e5b4 e5b4 e5b4 e5b4 e5b4 -10473 e5b5 e5b5 e5b5 * * 505c 8ea2d0dc,8ea2d0dcv 648b e6928b 648b 0000648b e5b5 e5b5 e5b5 e5b5 e5b5 e5b5 e5b5 -10474 e5b6 e5b6 e5b6 * * 505d 8ea2d0dd,8ea2d0ddv 648a e6928a 648a 0000648a e5b6 e5b6 e5b6 e5b6 e5b6 e5b6 e5b6 -10475 e5b7 e5b7 e5b7 * * 505e 8ea2d0de,8ea2d0dev 648c e6928c 648c 0000648c e5b7 e5b7 e5b7 e5b7 e5b7 e5b7 e5b7 -10476 e5b8 e5b8 e5b8 * * 505f 8ea2d0df,8ea2d0dfv 64a3 e692a3 64a3 000064a3 e5b8 e5b8 e5b8 e5b8 e5b8 e5b8 e5b8 -10477 e5b9 e5b9 e5b9 * * 5060 8ea2d0e0,8ea2d0e0v 649f e6929f 649f 0000649f e5b9 e5b9 e5b9 e5b9 e5b9 e5b9 e5b9 -10478 e5ba e5ba e5ba * * 5061 8ea2d0e1,8ea2d0e1v 6468 e691a8 6468 00006468 e5ba e5ba e5ba e5ba e5ba e5ba e5ba -10479 e5bb e5bb e5bb * * 5062 8ea2d0e2,8ea2d0e2v 64b1 e692b1 64b1 000064b1 e5bb e5bb e5bb e5bb e5bb e5bb e5bb -10480 e5bc e5bc e5bc * * 5063 8ea2d0e3,8ea2d0e3v 6498 e69298 6498 00006498 e5bc e5bc e5bc e5bc e5bc e5bc e5bc -10481 e5bd e5bd e5bd * * 5064 8ea2d0e4,8ea2d0e4v 6576 e695b6 6576 00006576 e5bd e5bd e5bd e5bd e5bd e5bd e5bd -10482 e5be e5be e5be * * 5065 8ea2d0e5,8ea2d0e5v 657a e695ba 657a 0000657a e5be e5be e5be e5be e5be e5be e5be -10483 e5bf e5bf e5bf * * 5066 8ea2d0e6,8ea2d0e6v 6579 e695b9 6579 00006579 e5bf e5bf e5bf e5bf e5bf e5bf e5bf -10484 e5c0 e5c0 e5c0 * * 5067 8ea2d0e7,8ea2d0e7v 657b e695bb 657b 0000657b e5c0 e5c0 e5c0 e5c0 e5c0 e5c0 e5c0 -10485 e5c1 e5c1 e5c1 * * 5068 8ea2d0e8,8ea2d0e8v 65b2 e696b2 65b2 000065b2 e5c1 e5c1 e5c1 e5c1 e5c1 e5c1 e5c1 -10486 e5c2 e5c2 e5c2 * * 5069 8ea2d0e9,8ea2d0e9v 65b3 e696b3 65b3 000065b3 e5c2 e5c2 e5c2 e5c2 e5c2 e5c2 e5c2 -10487 e5c3 e5c3 e5c3 * * 506a 8ea2d0ea,8ea2d0eav 66b5 e69ab5 66b5 000066b5 e5c3 e5c3 e5c3 e5c3 e5c3 e5c3 e5c3 -10488 e5c4 e5c4 e5c4 * * 506b 8ea2d0eb,8ea2d0ebv 66b0 e69ab0 66b0 000066b0 e5c4 e5c4 e5c4 e5c4 e5c4 e5c4 e5c4 -10489 e5c5 e5c5 e5c5 * * 506c 8ea2d0ec,8ea2d0ecv 66a9 e69aa9 66a9 000066a9 e5c5 e5c5 e5c5 e5c5 e5c5 e5c5 e5c5 -10490 e5c6 e5c6 e5c6 * * 506d 8ea2d0ed,8ea2d0edv 66b2 e69ab2 66b2 000066b2 e5c6 e5c6 e5c6 e5c6 e5c6 e5c6 e5c6 -10491 e5c7 e5c7 e5c7 * * 506e 8ea2d0ee,8ea2d0eev 66b7 e69ab7 66b7 000066b7 e5c7 e5c7 e5c7 e5c7 e5c7 e5c7 e5c7 -10492 e5c8 e5c8 e5c8 * * 506f 8ea2d0ef,8ea2d0efv 66aa e69aaa 66aa 000066aa e5c8 e5c8 e5c8 e5c8 e5c8 e5c8 e5c8 -10493 e5c9 e5c9 e5c9 * * 5070 8ea2d0f0,8ea2d0f0v 66af e69aaf 66af 000066af e5c9 e5c9 e5c9 e5c9 e5c9 e5c9 e5c9 -10494 e5ca e5ca e5ca * * 5071 8ea2d0f1,8ea2d0f1v 6a00 e6a880 6a00 00006a00 e5ca e5ca e5ca e5ca e5ca e5ca e5ca -10495 e5cb e5cb e5cb * * 5072 8ea2d0f2,8ea2d0f2v 6a06 e6a886 6a06 00006a06 e5cb e5cb e5cb e5cb e5cb e5cb e5cb -10496 e5cc e5cc e5cc * * 5073 8ea2d0f3,8ea2d0f3v 6a17 e6a897 6a17 00006a17 e5cc e5cc e5cc e5cc e5cc e5cc e5cc -10497 e5cd e5cd e5cd * * 5074 8ea2d0f4,8ea2d0f4v 69e5 e6a7a5 69e5 000069e5 e5cd e5cd e5cd e5cd e5cd e5cd e5cd -10498 e5ce e5ce e5ce * * 5075 8ea2d0f5,8ea2d0f5v 69f8 e6a7b8 69f8 000069f8 e5ce e5ce e5ce e5ce e5ce e5ce e5ce -10499 e5cf e5cf e5cf * * 5076 8ea2d0f6,8ea2d0f6v 6a15 e6a895 6a15 00006a15 e5cf e5cf e5cf e5cf e5cf e5cf e5cf -10500 e5d0 e5d0 e5d0 * * 5077 8ea2d0f7,8ea2d0f7v 69f1 e6a7b1 69f1 000069f1 e5d0 e5d0 e5d0 e5d0 e5d0 e5d0 e5d0 -10501 e5d1 e5d1 e5d1 * * 5078 8ea2d0f8,8ea2d0f8v 69e4 e6a7a4 69e4 000069e4 e5d1 e5d1 e5d1 e5d1 e5d1 e5d1 e5d1 -10502 e5d2 e5d2 e5d2 * * 5079 8ea2d0f9,8ea2d0f9v 6a20 e6a8a0 6a20 00006a20 e5d2 e5d2 e5d2 e5d2 e5d2 e5d2 e5d2 -10503 e5d3 e5d3 e5d3 * * 507a 8ea2d0fa,8ea2d0fav 69ff e6a7bf 69ff 000069ff e5d3 e5d3 e5d3 e5d3 e5d3 e5d3 e5d3 -10504 e5d4 e5d4 e5d4 * * 507b 8ea2d0fb,8ea2d0fbv 69ec e6a7ac 69ec 000069ec e5d4 e5d4 e5d4 e5d4 e5d4 e5d4 e5d4 -10505 e5d5 e5d5 e5d5 * * 507c 8ea2d0fc,8ea2d0fcv 69e2 e6a7a2 69e2 000069e2 e5d5 e5d5 e5d5 e5d5 e5d5 e5d5 e5d5 -10506 e5d6 e5d6 e5d6 * * 507d 8ea2d0fd,8ea2d0fdv 6a1b e6a89b 6a1b 00006a1b e5d6 e5d6 e5d6 e5d6 e5d6 e5d6 e5d6 -10507 e5d7 e5d7 e5d7 * * 507e 8ea2d0fe,8ea2d0fev 6a1d e6a89d 6a1d 00006a1d e5d7 e5d7 e5d7 e5d7 e5d7 e5d7 e5d7 -10508 e5d8 e5d8 e5d8 * * 5121 8ea2d1a1,8ea2d1a1v 69fe e6a7be 69fe 000069fe e5d8 e5d8 e5d8 e5d8 e5d8 e5d8 e5d8 -10509 e5d9 e5d9 e5d9 * * 5122 8ea2d1a2,8ea2d1a2v 6a27 e6a8a7 6a27 00006a27 e5d9 e5d9 e5d9 e5d9 e5d9 e5d9 e5d9 -10510 e5da e5da e5da * * 5123 8ea2d1a3,8ea2d1a3v 69f2 e6a7b2 69f2 000069f2 e5da e5da e5da e5da e5da e5da e5da -10511 e5db e5db e5db * * 5124 8ea2d1a4,8ea2d1a4v 69ee e6a7ae 69ee 000069ee e5db e5db e5db e5db e5db e5db e5db -10512 e5dc e5dc e5dc * * 5125 8ea2d1a5,8ea2d1a5v 6a14 e6a894 6a14 00006a14 e5dc e5dc e5dc e5dc e5dc e5dc e5dc -10513 e5dd e5dd e5dd * * 5126 8ea2d1a6,8ea2d1a6v 69f7 e6a7b7 69f7 000069f7 e5dd e5dd e5dd e5dd e5dd e5dd e5dd -10514 e5de e5de e5de * * 5127 8ea2d1a7,8ea2d1a7v 69e7 e6a7a7 69e7 000069e7 e5de e5de e5de e5de e5de e5de e5de -10515 e5df e5df e5df * * 5128 8ea2d1a8,8ea2d1a8v 6a40 e6a980 6a40 00006a40 e5df e5df e5df e5df e5df e5df e5df -10516 e5e0 e5e0 e5e0 * * 5129 8ea2d1a9,8ea2d1a9v 6a08 e6a888 6a08 00006a08 e5e0 e5e0 e5e0 e5e0 e5e0 e5e0 e5e0 -10517 e5e1 e5e1 e5e1 * * 512a 8ea2d1aa,8ea2d1aav 69e6 e6a7a6 69e6 000069e6 e5e1 e5e1 e5e1 e5e1 e5e1 e5e1 e5e1 -10518 e5e2 e5e2 e5e2 * * 512b 8ea2d1ab,8ea2d1abv 69fb e6a7bb 69fb 000069fb e5e2 e5e2 e5e2 e5e2 e5e2 e5e2 e5e2 -10519 e5e3 e5e3 e5e3 * * 512c 8ea2d1ac,8ea2d1acv 6a0d e6a88d 6a0d 00006a0d e5e3 e5e3 e5e3 e5e3 e5e3 e5e3 e5e3 -10520 e5e4 e5e4 e5e4 * * 512d 8ea2d1ad,8ea2d1adv 69fc e6a7bc 69fc 000069fc e5e4 e5e4 e5e4 e5e4 e5e4 e5e4 e5e4 -10521 e5e5 e5e5 e5e5 * * 512e 8ea2d1ae,8ea2d1aev 69eb e6a7ab 69eb 000069eb e5e5 e5e5 e5e5 e5e5 e5e5 e5e5 e5e5 -10522 e5e6 e5e6 e5e6 * * 512f 8ea2d1af,8ea2d1afv 6a09 e6a889 6a09 00006a09 e5e6 e5e6 e5e6 e5e6 e5e6 e5e6 e5e6 -10523 e5e7 e5e7 e5e7 * * 5130 8ea2d1b0,8ea2d1b0v 6a04 e6a884 6a04 00006a04 e5e7 e5e7 e5e7 e5e7 e5e7 e5e7 e5e7 -10524 e5e8 e5e8 e5e8 * * 5131 8ea2d1b1,8ea2d1b1v 6a18 e6a898 6a18 00006a18 e5e8 e5e8 e5e8 e5e8 e5e8 e5e8 e5e8 -10525 e5e9 e5e9 e5e9 * * 5132 8ea2d1b2,8ea2d1b2v 6a25 e6a8a5 6a25 00006a25 e5e9 e5e9 e5e9 e5e9 e5e9 e5e9 e5e9 -10526 e5ea e5ea e5ea * * 5133 8ea2d1b3,8ea2d1b3v 6a0f e6a88f 6a0f 00006a0f e5ea e5ea e5ea e5ea e5ea e5ea e5ea -10527 e5eb e5eb e5eb * * 5134 8ea2d1b4,8ea2d1b4v 69f6 e6a7b6 69f6 000069f6 e5eb e5eb e5eb e5eb e5eb e5eb e5eb -10528 e5ec e5ec e5ec * * 5135 8ea2d1b5,8ea2d1b5v 6a26 e6a8a6 6a26 00006a26 e5ec e5ec e5ec e5ec e5ec e5ec e5ec -10529 e5ed e5ed e5ed * * 5136 8ea2d1b6,8ea2d1b6v 6a07 e6a887 6a07 00006a07 e5ed e5ed e5ed e5ed e5ed e5ed e5ed -10530 e5ee e5ee e5ee * * 5137 8ea2d1b7,8ea2d1b7v 69f4 e6a7b4 69f4 000069f4 e5ee e5ee e5ee e5ee e5ee e5ee e5ee -10531 e5ef e5ef e5ef * * 5138 8ea2d1b8,8ea2d1b8v 6a16 e6a896 6a16 00006a16 e5ef e5ef e5ef e5ef e5ef e5ef e5ef -10532 e5f0 e5f0 e5f0 * * 5139 8ea2d1b9,8ea2d1b9v 6b51 e6ad91 6b51 00006b51 e5f0 e5f0 e5f0 e5f0 e5f0 e5f0 e5f0 -10533 e5f1 e5f1 e5f1 * * 513a 8ea2d1ba,8ea2d1bav 6ba5 e6aea5 6ba5 00006ba5 e5f1 e5f1 e5f1 e5f1 e5f1 e5f1 e5f1 -10534 e5f2 e5f2 e5f2 * * 513b 8ea2d1bb,8ea2d1bbv 6ba3 e6aea3 6ba3 00006ba3 e5f2 e5f2 e5f2 e5f2 e5f2 e5f2 e5f2 -10535 e5f3 e5f3 e5f3 * * 513c 8ea2d1bc,8ea2d1bcv 6ba2 e6aea2 6ba2 00006ba2 e5f3 e5f3 e5f3 e5f3 e5f3 e5f3 e5f3 -10536 e5f4 e5f4 e5f4 * * 513d 8ea2d1bd,8ea2d1bdv 6ba6 e6aea6 6ba6 00006ba6 e5f4 e5f4 e5f4 e5f4 e5f4 e5f4 e5f4 -10537 e5f5 e5f5 e5f5 * * 513e 8ea2d1be,8ea2d1bev 6c01 e6b081 6c01 00006c01 e5f5 e5f5 e5f5 e5f5 e5f5 e5f5 e5f5 -10538 e5f6 e5f6 e5f6 * * 513f 8ea2d1bf,8ea2d1bfv 6c00 e6b080 6c00 00006c00 e5f6 e5f6 e5f6 e5f6 e5f6 e5f6 e5f6 -10539 e5f7 e5f7 e5f7 * * 5140 8ea2d1c0,8ea2d1c0v 6bff e6afbf 6bff 00006bff e5f7 e5f7 e5f7 e5f7 e5f7 e5f7 e5f7 -10540 e5f8 e5f8 e5f8 * * 5141 8ea2d1c1,8ea2d1c1v 6c02 e6b082 6c02 00006c02 e5f8 e5f8 e5f8 e5f8 e5f8 e5f8 e5f8 -10541 e5f9 e5f9 e5f9 * * 5142 8ea2d1c2,8ea2d1c2v 6f41 e6bd81 6f41 00006f41 e5f9 e5f9 e5f9 e5f9 e5f9 e5f9 e5f9 -10542 e5fa e5fa e5fa * * 5143 8ea2d1c3,8ea2d1c3v 6f26 e6bca6 6f26 00006f26 e5fa e5fa e5fa e5fa e5fa e5fa e5fa -10543 e5fb e5fb e5fb * * 5144 8ea2d1c4,8ea2d1c4v 6f7e e6bdbe 6f7e 00006f7e e5fb e5fb e5fb e5fb e5fb e5fb e5fb -10544 e5fc e5fc e5fc * * 5145 8ea2d1c5,8ea2d1c5v 6f87 e6be87 6f87 00006f87 e5fc e5fc e5fc e5fc e5fc e5fc e5fc -10545 e5fd e5fd e5fd * * 5146 8ea2d1c6,8ea2d1c6v 6fc6 e6bf86 6fc6 00006fc6 e5fd e5fd e5fd e5fd e5fd e5fd e5fd -10546 e5fe e5fe e5fe * * 5147 8ea2d1c7,8ea2d1c7v 6f92 e6be92 6f92 00006f92 e5fe e5fe e5fe e5fe e5fe e5fe e5fe -10547 e640 e640 e640 * * 5148 8ea2d1c8,8ea2d1c8v 6f8d e6be8d 6f8d 00006f8d e640 e640 e640 e640 e640 e640 e640 -10548 e641 e641 e641 * * 5149 8ea2d1c9,8ea2d1c9v 6f89 e6be89 6f89 00006f89 e641 e641 e641 e641 e641 e641 e641 -10549 e642 e642 e642 * * 514a 8ea2d1ca,8ea2d1cav 6f8c e6be8c 6f8c 00006f8c e642 e642 e642 e642 e642 e642 e642 -10550 e643 e643 e643 * * 514b 8ea2d1cb,8ea2d1cbv 6f62 e6bda2 6f62 00006f62 e643 e643 e643 e643 e643 e643 e643 -10551 e644 e644 e644 * * 514c 8ea2d1cc,8ea2d1ccv 6f4f e6bd8f 6f4f 00006f4f e644 e644 e644 e644 e644 e644 e644 -10552 e645 e645 e645 * * 514d 8ea2d1cd,8ea2d1cdv 6f85 e6be85 6f85 00006f85 e645 e645 e645 e645 e645 e645 e645 -10553 e646 e646 e646 * * 514e 8ea2d1ce,8ea2d1cev 6f5a e6bd9a 6f5a 00006f5a e646 e646 e646 e646 e646 e646 e646 -10554 e647 e647 e647 * * 514f 8ea2d1cf,8ea2d1cfv 6f96 e6be96 6f96 00006f96 e647 e647 e647 e647 e647 e647 e647 -10555 e648 e648 e648 * * 5150 8ea2d1d0,8ea2d1d0v 6f76 e6bdb6 6f76 00006f76 e648 e648 e648 e648 e648 e648 e648 -10556 e649 e649 e649 * * 5151 8ea2d1d1,8ea2d1d1v 6f6c e6bdac 6f6c 00006f6c e649 e649 e649 e649 e649 e649 e649 -10557 e64a e64a e64a * * 5152 8ea2d1d2,8ea2d1d2v 6f82 e6be82 6f82 00006f82 e64a e64a e64a e64a e64a e64a e64a -10558 e64b e64b e64b * * 5153 8ea2d1d3,8ea2d1d3v 6f55 e6bd95 6f55 00006f55 e64b e64b e64b e64b e64b e64b e64b -10559 e64c e64c e64c * * 5154 8ea2d1d4,8ea2d1d4v 6f72 e6bdb2 6f72 00006f72 e64c e64c e64c e64c e64c e64c e64c -10560 e64d e64d e64d * * 5155 8ea2d1d5,8ea2d1d5v 6f52 e6bd92 6f52 00006f52 e64d e64d e64d e64d e64d e64d e64d -10561 e64e e64e e64e * * 5156 8ea2d1d6,8ea2d1d6v 6f50 e6bd90 6f50 00006f50 e64e e64e e64e e64e e64e e64e e64e -10562 e64f e64f e64f * * 5157 8ea2d1d7,8ea2d1d7v 6f57 e6bd97 6f57 00006f57 e64f e64f e64f e64f e64f e64f e64f -10563 e650 e650 e650 * * 5158 8ea2d1d8,8ea2d1d8v 6f94 e6be94 6f94 00006f94 e650 e650 e650 e650 e650 e650 e650 -10564 e651 e651 e651 * * 5159 8ea2d1d9,8ea2d1d9v 6f93 e6be93 6f93 00006f93 e651 e651 e651 e651 e651 e651 e651 -10565 e652 e652 e652 * * 515a 8ea2d1da,8ea2d1dav 6f5d e6bd9d 6f5d 00006f5d e652 e652 e652 e652 e652 e652 e652 -10566 e653 e653 e653 * * 515b 8ea2d1db,8ea2d1dbv 6f00 e6bc80 6f00 00006f00 e653 e653 e653 e653 e653 e653 e653 -10567 e654 e654 e654 * * 515c 8ea2d1dc,8ea2d1dcv 6f61 e6bda1 6f61 00006f61 e654 e654 e654 e654 e654 e654 e654 -10568 e655 e655 e655 * * 515d 8ea2d1dd,8ea2d1ddv 6f6b e6bdab 6f6b 00006f6b e655 e655 e655 e655 e655 e655 e655 -10569 e656 e656 e656 * * 515e 8ea2d1de,8ea2d1dev 6f7d e6bdbd 6f7d 00006f7d e656 e656 e656 e656 e656 e656 e656 -10570 e657 e657 e657 * * 515f 8ea2d1df,8ea2d1dfv 6f67 e6bda7 6f67 00006f67 e657 e657 e657 e657 e657 e657 e657 -10571 e658 e658 e658 * * 5160 8ea2d1e0,8ea2d1e0v 6f90 e6be90 6f90 00006f90 e658 e658 e658 e658 e658 e658 e658 -10572 e659 e659 e659 * * 5161 8ea2d1e1,8ea2d1e1v 6f53 e6bd93 6f53 00006f53 e659 e659 e659 e659 e659 e659 e659 -10573 e65a e65a e65a * * 5162 8ea2d1e2,8ea2d1e2v 6f8b e6be8b 6f8b 00006f8b e65a e65a e65a e65a e65a e65a e65a -10574 e65b e65b e65b * * 5163 8ea2d1e3,8ea2d1e3v 6f69 e6bda9 6f69 00006f69 e65b e65b e65b e65b e65b e65b e65b -10575 e65c e65c e65c * * 5164 8ea2d1e4,8ea2d1e4v 6f7f e6bdbf 6f7f 00006f7f e65c e65c e65c e65c e65c e65c e65c -10576 e65d e65d e65d * * 5165 8ea2d1e5,8ea2d1e5v 6f95 e6be95 6f95 00006f95 e65d e65d e65d e65d e65d e65d e65d -10577 e65e e65e e65e * * 5166 8ea2d1e6,8ea2d1e6v 6f63 e6bda3 6f63 00006f63 e65e e65e e65e e65e e65e e65e e65e -10578 e65f e65f e65f * * 5167 8ea2d1e7,8ea2d1e7v 6f77 e6bdb7 6f77 00006f77 e65f e65f e65f e65f e65f e65f e65f -10579 e660 e660 e660 * * 5168 8ea2d1e8,8ea2d1e8v 6f6a e6bdaa 6f6a 00006f6a e660 e660 e660 e660 e660 e660 e660 -10580 e661 e661 e661 * * 5169 8ea2d1e9,8ea2d1e9v 6f7b e6bdbb 6f7b 00006f7b e661 e661 e661 e661 e661 e661 e661 -10581 e662 e662 e662 * * 516a 8ea2d1ea,8ea2d1eav 71b2 e786b2 71b2 000071b2 e662 e662 e662 e662 e662 e662 e662 -10582 e663 e663 e663 * * 516b 8ea2d1eb,8ea2d1ebv 71af e786af 71af 000071af e663 e663 e663 e663 e663 e663 e663 -10583 e664 e664 e664 * * 516c 8ea2d1ec,8ea2d1ecv 719b e7869b 719b 0000719b e664 e664 e664 e664 e664 e664 e664 -10584 e665 e665 e665 * * 516d 8ea2d1ed,8ea2d1edv 71b0 e786b0 71b0 000071b0 e665 e665 e665 e665 e665 e665 e665 -10585 e666 e666 e666 * * 516e 8ea2d1ee,8ea2d1eev 71a0 e786a0 71a0 000071a0 e666 e666 e666 e666 e666 e666 e666 -10586 e667 e667 e667 * * 516f 8ea2d1ef,8ea2d1efv 719a e7869a 719a 0000719a e667 e667,fce8 91d5,e667 e667 e667 e667 e667 -10587 e668 e668 e668 * * 5170 8ea2d1f0,8ea2d1f0v 71a9 e786a9 71a9 000071a9 e668 e668 e668 e668 e668 e668 e668 -10588 e669 e669 e669 * * 5171 8ea2d1f1,8ea2d1f1v 71b5 e786b5 71b5 000071b5 e669 e669 e669 e669 e669 e669 e669 -10589 e66a e66a e66a * * 5172 8ea2d1f2,8ea2d1f2v 719d e7869d 719d 0000719d e66a e66a e66a e66a e66a e66a e66a -10590 e66b e66b e66b * * 5173 8ea2d1f3,8ea2d1f3v 71a5 e786a5 71a5 000071a5 e66b e66b e66b e66b e66b e66b e66b -10591 e66c e66c e66c * * 5174 8ea2d1f4,8ea2d1f4v 719e e7869e 719e 0000719e e66c e66c e66c e66c e66c e66c e66c -10592 e66d e66d e66d * * 5175 8ea2d1f5,8ea2d1f5v 71a4 e786a4 71a4 000071a4 e66d e66d e66d e66d e66d e66d e66d -10593 e66e e66e e66e * * 5176 8ea2d1f6,8ea2d1f6v 71a1 e786a1 71a1 000071a1 e66e e66e e66e e66e e66e e66e e66e -10594 e66f e66f e66f * * 5177 8ea2d1f7,8ea2d1f7v 71aa e786aa 71aa 000071aa e66f e66f e66f e66f e66f e66f e66f -10595 e670 e670 e670 * * 5178 8ea2d1f8,8ea2d1f8v 719c e7869c 719c 0000719c e670 e670 e670 e670 e670 e670 e670 -10596 e671 e671 e671 * * 5179 8ea2d1f9,8ea2d1f9v 71a7 e786a7 71a7 000071a7 e671 e671 e671 e671 e671 e671 e671 -10597 e672 e672 e672 * * 517a 8ea2d1fa,8ea2d1fav 71b3 e786b3 71b3 000071b3 e672 e672 e672 e672 e672 e672 e672 -10598 e673 e673 e673 * * 517b 8ea2d1fb,8ea2d1fbv 7298 e78a98 7298 00007298 e673 e673 e673 e673 e673 e673 e673 -10599 e674 e674 e674 * * 517c 8ea2d1fc,8ea2d1fcv 729a e78a9a 729a 0000729a e674 e674 e674 e674 e674 e674 e674 -10600 e675 e675 e675 * * 517d 8ea2d1fd,8ea2d1fdv 7358 e78d98 7358 00007358 e675 e675 e675 e675 e675 e675 e675 -10601 e676 e676 e676 * * 517e 8ea2d1fe,8ea2d1fev 7352 e78d92 7352 00007352 e676 e676 e676 e676 e676 e676 e676 -10602 e677 e677 e677 * * 5221 8ea2d2a1,8ea2d2a1v 735e e78d9e 735e 0000735e e677 e677 e677 e677 e677 e677 e677 -10603 e678 e678 e678 * * 5222 8ea2d2a2,8ea2d2a2v 735f e78d9f 735f 0000735f e678 e678 e678 e678 e678 e678 e678 -10604 e679 e679 e679 * * 5223 8ea2d2a3,8ea2d2a3v 7360 e78da0 7360 00007360 e679 e679 e679 e679 e679 e679 e679 -10605 e67a e67a e67a * * 5224 8ea2d2a4,8ea2d2a4v 735d e78d9d 735d 0000735d e67a e67a e67a e67a e67a e67a e67a -10606 e67b e67b e67b * * 5225 8ea2d2a5,8ea2d2a5v 735b e78d9b 735b 0000735b e67b e67b e67b e67b e67b e67b e67b -10607 e67c e67c e67c * * 5226 8ea2d2a6,8ea2d2a6v 7361 e78da1 7361 00007361 e67c e67c e67c e67c e67c e67c e67c -10608 e67d e67d e67d * * 5227 8ea2d2a7,8ea2d2a7v 735a e78d9a 735a 0000735a e67d e67d e67d e67d e67d e67d e67d -10609 e67e e67e e67e * * 5228 8ea2d2a8,8ea2d2a8v 7359 e78d99 7359 00007359 e67e e67e e67e e67e e67e e67e e67e -10610 e6a1 e6a1 e6a1 * * 5229 8ea2d2a9,8ea2d2a9v 7362 e78da2 7362 00007362 e6a1 e6a1 e6a1 e6a1 e6a1 e6a1 e6a1 -10611 e6a2 e6a2 e6a2 * * 522a 8ea2d2aa,8ea2d2aav 7487 e79287 7487 00007487 e6a2 e6a2 e6a2 e6a2 e6a2 e6a2 e6a2 -10612 e6a3 e6a3 e6a3 * * 522b 8ea2d2ab,8ea2d2abv 7489 e79289 7489 00007489 e6a3 e6a3 e6a3 e6a3 e6a3 e6a3 e6a3 -10613 e6a4 e6a4 e6a4 * * 522c 8ea2d2ac,8ea2d2acv 748a e7928a 748a 0000748a e6a4 e6a4 e6a4 e6a4 e6a4 e6a4 e6a4 -10614 e6a5 e6a5 e6a5 * * 522d 8ea2d2ad,8ea2d2adv 7486 e79286 7486 00007486 e6a5 e6a5 e6a5 e6a5 e6a5 e6a5 e6a5 -10615 e6a6 e6a6 e6a6 * * 522e 8ea2d2ae,8ea2d2aev 7481 e79281 7481 00007481 e6a6 e6a6 e6a6 e6a6 e6a6 e6a6 e6a6 -10616 e6a7 e6a7 e6a7 * * 522f 8ea2d2af,8ea2d2afv 747d e791bd 747d 0000747d e6a7 e6a7 e6a7 e6a7 e6a7 e6a7 e6a7 -10617 e6a8 e6a8 e6a8 * * 5230 8ea2d2b0,8ea2d2b0v 7485 e79285 7485 00007485 e6a8 e6a8 e6a8 e6a8 e6a8 e6a8 e6a8 -10618 e6a9 e6a9 e6a9 * * 5231 8ea2d2b1,8ea2d2b1v 7488 e79288 7488 00007488 e6a9 e6a9 e6a9 e6a9 e6a9 e6a9 e6a9 -10619 e6aa e6aa e6aa * * 5232 8ea2d2b2,8ea2d2b2v 747c e791bc 747c 0000747c e6aa e6aa e6aa e6aa e6aa e6aa e6aa -10620 e6ab e6ab e6ab * * 5233 8ea2d2b3,8ea2d2b3v 7479 e791b9,ee97b4 7479,e5f4 00007479,0000e5f4 92d1,e6ab e6ab e6ab e6ab e6ab e6ab 92d1,e6ab -10621 e6ac e6ac e6ac * * 5234 8ea2d2b4,8ea2d2b4v 7508 e79488 7508 00007508 e6ac e6ac e6ac e6ac e6ac e6ac e6ac -10622 e6ad e6ad e6ad * * 5235 8ea2d2b5,8ea2d2b5v 7507 e79487 7507 00007507 e6ad e6ad e6ad e6ad e6ad e6ad e6ad -10623 e6ae e6ae e6ae * * 5236 8ea2d2b6,8ea2d2b6v 757e e795be 757e 0000757e e6ae e6ae e6ae e6ae e6ae e6ae e6ae -10624 e6af e6af e6af * * 5237 8ea2d2b7,8ea2d2b7v 7625 e798a5 7625 00007625 e6af e6af e6af e6af e6af e6af e6af -10625 e6b0 e6b0 e6b0 * * 5238 8ea2d2b8,8ea2d2b8v 761e e7989e 761e 0000761e e6b0 e6b0 e6b0 e6b0 e6b0 e6b0 e6b0 -10626 e6b1 e6b1 e6b1 * * 5239 8ea2d2b9,8ea2d2b9v 7619 e79899 7619 00007619 e6b1 e6b1 e6b1 e6b1 e6b1 e6b1 e6b1 -10627 e6b2 e6b2 e6b2 * * 523a 8ea2d2ba,8ea2d2bav 761d e7989d 761d 0000761d e6b2 e6b2 e6b2 e6b2 e6b2 e6b2 e6b2 -10628 e6b3 e6b3 e6b3 * * 523b 8ea2d2bb,8ea2d2bbv 761c e7989c 761c 0000761c e6b3 e6b3 e6b3 e6b3 e6b3 e6b3 e6b3 -10629 e6b4 e6b4 e6b4 * * 523c 8ea2d2bc,8ea2d2bcv 7623 e798a3 7623 00007623 e6b4 e6b4 e6b4 e6b4 e6b4 e6b4 e6b4 -10630 e6b5 e6b5 e6b5 * * 523d 8ea2d2bd,8ea2d2bdv 761a e7989a 761a 0000761a e6b5 e6b5 e6b5 e6b5 e6b5 e6b5 e6b5 -10631 e6b6 e6b6 e6b6 * * 523e 8ea2d2be,8ea2d2bev 7628 e798a8 7628 00007628 e6b6 e6b6 e6b6 e6b6 e6b6 e6b6 e6b6 -10632 e6b7 e6b7 e6b7 * * 523f 8ea2d2bf,8ea2d2bfv 761b e7989b 761b 0000761b e6b7 e6b7 e6b7 e6b7 e6b7 e6b7 e6b7 -10633 e6b8 e6b8 e6b8 * * 5240 8ea2d2c0,8ea2d2c0v 769c e79a9c 769c 0000769c e6b8 e6b8 e6b8 e6b8 e6b8 e6b8 e6b8 -10634 e6b9 e6b9 e6b9 * * 5241 8ea2d2c1,8ea2d2c1v 769d e79a9d 769d 0000769d e6b9 e6b9 e6b9 e6b9 e6b9 e6b9 e6b9 -10635 e6ba e6ba e6ba * * 5242 8ea2d2c2,8ea2d2c2v 769e e79a9e 769e 0000769e e6ba e6ba e6ba e6ba e6ba e6ba e6ba -10636 e6bb e6bb e6bb * * 5243 8ea2d2c3,8ea2d2c3v 769b e79a9b 769b 0000769b e6bb e6bb e6bb e6bb e6bb e6bb e6bb -10637 e6bc e6bc e6bc * * 5244 8ea2d2c4,8ea2d2c4v 778d e79e8d 778d 0000778d e6bc e6bc e6bc e6bc e6bc e6bc e6bc -10638 e6bd e6bd e6bd * * 5245 8ea2d2c5,8ea2d2c5v 778f e79e8f 778f 0000778f e6bd e6bd e6bd e6bd e6bd e6bd e6bd -10639 e6be e6be e6be * * 5246 8ea2d2c6,8ea2d2c6v 7789 e79e89 7789 00007789 e6be e6be e6be e6be e6be e6be e6be -10640 e6bf e6bf e6bf * * 5247 8ea2d2c7,8ea2d2c7v 7788 e79e88 7788 00007788 e6bf e6bf e6bf e6bf e6bf e6bf e6bf -10641 e6c0 e6c0 e6c0 * * 5248 8ea2d2c8,8ea2d2c8v 78cd e7a38d 78cd 000078cd e6c0 e6c0 e6c0 e6c0 e6c0 e6c0 e6c0 -10642 e6c1 e6c1 e6c1 * * 5249 8ea2d2c9,8ea2d2c9v 78bb e7a2bb 78bb 000078bb e6c1 e6c1 e6c1 e6c1 e6c1 e6c1 e6c1 -10643 e6c2 e6c2 e6c2 * * 524a 8ea2d2ca,8ea2d2cav 78cf e7a38f 78cf 000078cf e6c2 e6c2 e6c2 e6c2 e6c2 e6c2 e6c2 -10644 e6c3 e6c3 e6c3 * * 524b 8ea2d2cb,8ea2d2cbv 78cc e7a38c 78cc 000078cc e6c3 e6c3 e6c3 e6c3 e6c3 e6c3 e6c3 -10645 e6c4 e6c4 e6c4 * * 524c 8ea2d2cc,8ea2d2ccv 78d1 e7a391 78d1 000078d1 e6c4 e6c4 e6c4 e6c4 e6c4 e6c4 e6c4 -10646 e6c5 e6c5 e6c5 * * 524d 8ea2d2cd,8ea2d2cdv 78ce e7a38e 78ce 000078ce e6c5 e6c5 e6c5 e6c5 e6c5 e6c5 e6c5 -10647 e6c6 e6c6 e6c6 * * 524e 8ea2d2ce,8ea2d2cev 78d4 e7a394 78d4 000078d4 e6c6 e6c6 e6c6 e6c6 e6c6 e6c6 e6c6 -10648 e6c7 e6c7 e6c7 * * 524f 8ea2d2cf,8ea2d2cfv 78c8 e7a388 78c8 000078c8 e6c7 e6c7 e6c7 e6c7 e6c7 e6c7 e6c7 -10649 e6c8 e6c8 e6c8 * * 5250 8ea2d2d0,8ea2d2d0v 78c3 e7a383 78c3 000078c3 e6c8 e6c8 e6c8 e6c8 e6c8 e6c8 e6c8 -10650 e6c9 e6c9 e6c9 * * 5251 8ea2d2d1,8ea2d2d1v 78c4 e7a384 78c4 000078c4 e6c9 e6c9 e6c9 e6c9 e6c9 e6c9 e6c9 -10651 e6ca e6ca e6ca * * 5252 8ea2d2d2,8ea2d2d2v 78c9 e7a389 78c9 000078c9 e6ca e6ca e6ca e6ca e6ca e6ca e6ca -10652 e6cb e6cb e6cb * * 5253 8ea2d2d3,8ea2d2d3v 799a e7a69a 799a 0000799a e6cb e6cb e6cb e6cb e6cb e6cb e6cb -10653 e6cc e6cc e6cc * * 5254 8ea2d2d4,8ea2d2d4v 79a1 e7a6a1 79a1 000079a1 e6cc e6cc e6cc e6cc e6cc e6cc e6cc -10654 e6cd e6cd e6cd * * 5255 8ea2d2d5,8ea2d2d5v 79a0 e7a6a0 79a0 000079a0 e6cd e6cd e6cd e6cd e6cd e6cd e6cd -10655 e6ce e6ce e6ce * * 5256 8ea2d2d6,8ea2d2d6v 799c e7a69c 799c 0000799c e6ce e6ce e6ce e6ce e6ce e6ce e6ce -10656 e6cf e6cf e6cf * * 5257 8ea2d2d7,8ea2d2d7v 79a2 e7a6a2 79a2 000079a2 e6cf e6cf e6cf e6cf e6cf e6cf e6cf -10657 e6d0 e6d0 e6d0 * * 5258 8ea2d2d8,8ea2d2d8v 799b e7a69b,ee9ca7 799b,e727 0000799b,0000e727 94ca,e6d0 e6d0 e6d0 e6d0 e6d0 e6d0 94ca,e6d0 -10658 e6d1 e6d1 e6d1 * * 5259 8ea2d2d9,8ea2d2d9v 6b76 e6adb6 6b76 00006b76 e6d1 e6d1 e6d1 e6d1 e6d1 e6d1 e6d1 -10659 e6d2 e6d2 e6d2 * * 525a 8ea2d2da,8ea2d2dav 7a39 e7a8b9 7a39 00007a39 e6d2 e6d2 e6d2 e6d2 e6d2 e6d2 e6d2 -10660 e6d3 e6d3 e6d3 * * 525b 8ea2d2db,8ea2d2dbv 7ab2 e7aab2 7ab2 00007ab2 e6d3 e6d3 e6d3 e6d3 e6d3 e6d3 e6d3 -10661 e6d4 e6d4 e6d4 * * 525c 8ea2d2dc,8ea2d2dcv 7ab4 e7aab4 7ab4 00007ab4 e6d4 e6d4 e6d4 e6d4 e6d4 e6d4 e6d4 -10662 e6d5 e6d5 e6d5 * * 525d 8ea2d2dd,8ea2d2ddv 7ab3 e7aab3 7ab3 00007ab3 e6d5 e6d5 e6d5 e6d5 e6d5 e6d5 e6d5 -10663 e6d6 e6d6 e6d6 * * 525e 8ea2d2de,8ea2d2dev 7bb7 e7aeb7 7bb7 00007bb7 e6d6 e6d6 e6d6 e6d6 e6d6 e6d6 e6d6 -10664 e6d7 e6d7 e6d7 * * 525f 8ea2d2df,8ea2d2dfv 7bcb e7af8b 7bcb 00007bcb e6d7 e6d7 e6d7 e6d7 e6d7 e6d7 e6d7 -10665 e6d8 e6d8 e6d8 * * 5260 8ea2d2e0,8ea2d2e0v 7bbe e7aebe 7bbe 00007bbe e6d8 e6d8 e6d8 e6d8 e6d8 e6d8 e6d8 -10666 e6d9 e6d9 e6d9 * * 5261 8ea2d2e1,8ea2d2e1v 7bac e7aeac 7bac 00007bac e6d9 e6d9 e6d9 e6d9 e6d9 e6d9 e6d9 -10667 e6da e6da e6da * * 5262 8ea2d2e2,8ea2d2e2v 7bce e7af8e 7bce 00007bce e6da e6da e6da e6da e6da e6da e6da -10668 e6db e6db e6db * * 5263 8ea2d2e3,8ea2d2e3v 7baf e7aeaf 7baf 00007baf e6db e6db e6db e6db e6db e6db e6db -10669 e6dc e6dc e6dc * * 5264 8ea2d2e4,8ea2d2e4v 7bb9 e7aeb9 7bb9 00007bb9 e6dc e6dc e6dc e6dc e6dc e6dc e6dc -10670 e6dd e6dd e6dd * * 5265 8ea2d2e5,8ea2d2e5v 7bca e7af8a 7bca 00007bca e6dd e6dd e6dd e6dd e6dd e6dd e6dd -10671 e6de e6de e6de * * 5266 8ea2d2e6,8ea2d2e6v 7bb5 e7aeb5 7bb5 00007bb5 e6de e6de e6de e6de e6de e6de e6de -10672 e6df e6df e6df * * 5267 8ea2d2e7,8ea2d2e7v 7cc5 e7b385 7cc5 00007cc5 e6df e6df e6df e6df e6df e6df e6df -10673 e6e0 e6e0 e6e0 * * 5268 8ea2d2e8,8ea2d2e8v 7cc8 e7b388 7cc8 00007cc8 e6e0 e6e0 e6e0 e6e0 e6e0 e6e0 e6e0 -10674 e6e1 e6e1 e6e1 * * 5269 8ea2d2e9,8ea2d2e9v 7ccc e7b38c 7ccc 00007ccc e6e1 e6e1 e6e1 e6e1 e6e1 e6e1 e6e1 -10675 e6e2 e6e2 e6e2 * * 526a 8ea2d2ea,8ea2d2eav 7ccb e7b38b 7ccb 00007ccb e6e2 e6e2 e6e2 e6e2 e6e2 e6e2 e6e2 -10676 e6e3 e6e3 e6e3 * * 526b 8ea2d2eb,8ea2d2ebv 7df7 e7b7b7 7df7 00007df7 e6e3 e6e3 e6e3 e6e3 e6e3 e6e3 e6e3 -10677 e6e4 e6e4 e6e4 * * 526c 8ea2d2ec,8ea2d2ecv 7ddb e7b79b 7ddb 00007ddb e6e4 e6e4 e6e4 e6e4 e6e4 e6e4 e6e4 -10678 e6e5 e6e5 e6e5 * * 526d 8ea2d2ed,8ea2d2edv 7dea e7b7aa 7dea 00007dea e6e5 e6e5 e6e5 e6e5 e6e5 e6e5 e6e5 -10679 e6e6 e6e6 e6e6 * * 526e 8ea2d2ee,8ea2d2eev 7de7 e7b7a7 7de7 00007de7 e6e6 e6e6 e6e6 e6e6 e6e6 e6e6 e6e6 -10680 e6e7 e6e7 e6e7 * * 526f 8ea2d2ef,8ea2d2efv 7dd7 e7b797 7dd7 00007dd7 e6e7 e6e7 e6e7 e6e7 e6e7 e6e7 e6e7 -10681 e6e8 e6e8 e6e8 * * 5270 8ea2d2f0,8ea2d2f0v 7de1 e7b7a1 7de1 00007de1 e6e8 e6e8 e6e8 e6e8 e6e8 e6e8 e6e8 -10682 e6e9 e6e9 e6e9 * * 5271 8ea2d2f1,8ea2d2f1v 7e03 e7b883 7e03 00007e03 e6e9 e6e9 e6e9 e6e9 e6e9 e6e9 e6e9 -10683 e6ea e6ea e6ea * * 5272 8ea2d2f2,8ea2d2f2v 7dfa e7b7ba 7dfa 00007dfa e6ea e6ea e6ea e6ea e6ea e6ea e6ea -10684 e6eb e6eb e6eb * * 5273 8ea2d2f3,8ea2d2f3v 7de6 e7b7a6 7de6 00007de6 e6eb e6eb e6eb e6eb e6eb e6eb e6eb -10685 e6ec e6ec e6ec * * 5274 8ea2d2f4,8ea2d2f4v 7df6 e7b7b6 7df6 00007df6 e6ec e6ec e6ec e6ec e6ec e6ec e6ec -10686 e6ed e6ed e6ed * * 5275 8ea2d2f5,8ea2d2f5v 7df1 e7b7b1 7df1 00007df1 e6ed e6ed e6ed e6ed e6ed e6ed e6ed -10687 e6ee e6ee e6ee * * 5276 8ea2d2f6,8ea2d2f6v 7df0 e7b7b0 7df0 00007df0 e6ee e6ee e6ee e6ee e6ee e6ee e6ee -10688 e6ef e6ef e6ef * * 5277 8ea2d2f7,8ea2d2f7v 7dee e7b7ae 7dee 00007dee e6ef e6ef e6ef e6ef e6ef e6ef e6ef -10689 e6f0 e6f0 e6f0 * * 5278 8ea2d2f8,8ea2d2f8v 7ddf e7b79f 7ddf 00007ddf e6f0 e6f0 e6f0 e6f0 e6f0 e6f0 e6f0 -10690 e6f1 e6f1 e6f1 * * 5279 8ea2d2f9,8ea2d2f9v 7f76 e7bdb6 7f76 00007f76 e6f1 e6f1 e6f1 e6f1 e6f1 e6f1 e6f1 -10691 e6f2 e6f2 e6f2 * * 527a 8ea2d2fa,8ea2d2fav 7fac e7beac 7fac 00007fac e6f2 e6f2 e6f2 e6f2 e6f2 e6f2 e6f2 -10692 e6f3 e6f3 e6f3 * * 527b 8ea2d2fb,8ea2d2fbv 7fb0 e7beb0 7fb0 00007fb0 e6f3 e6f3 e6f3 e6f3 e6f3 e6f3 e6f3 -10693 e6f4 e6f4 e6f4 * * 527c 8ea2d2fc,8ea2d2fcv 7fad e7bead 7fad 00007fad e6f4 e6f4 e6f4 e6f4 e6f4 e6f4 e6f4 -10694 e6f5 e6f5 e6f5 * * 527d 8ea2d2fd,8ea2d2fdv 7fed e7bfad 7fed 00007fed e6f5 e6f5 e6f5 e6f5 e6f5 e6f5 e6f5 -10695 e6f6 e6f6 e6f6 * * 527e 8ea2d2fe,8ea2d2fev 7feb e7bfab 7feb 00007feb e6f6 e6f6 e6f6 e6f6 e6f6 e6f6 e6f6 -10696 e6f7 e6f7 e6f7 * * 5321 8ea2d3a1,8ea2d3a1v 7fea e7bfaa 7fea 00007fea e6f7 e6f7 e6f7 e6f7 e6f7 e6f7 e6f7 -10697 e6f8 e6f8 e6f8 * * 5322 8ea2d3a2,8ea2d3a2v 7fec e7bfac 7fec 00007fec e6f8 e6f8 e6f8 e6f8 e6f8 e6f8 e6f8 -10698 e6f9 e6f9 e6f9 * * 5323 8ea2d3a3,8ea2d3a3v 7fe6 e7bfa6 7fe6 00007fe6 e6f9 e6f9 e6f9 e6f9 e6f9 e6f9 e6f9 -10699 e6fa e6fa e6fa * * 5324 8ea2d3a4,8ea2d3a4v 7fe8 e7bfa8 7fe8 00007fe8 e6fa e6fa e6fa e6fa e6fa e6fa e6fa -10700 e6fb e6fb e6fb * * 5325 8ea2d3a5,8ea2d3a5v 8064 e881a4 8064 00008064 e6fb e6fb e6fb e6fb e6fb e6fb e6fb -10701 e6fc e6fc e6fc * * 5326 8ea2d3a6,8ea2d3a6v 8067 e881a7 8067 00008067 e6fc e6fc e6fc e6fc e6fc e6fc e6fc -10702 e6fd e6fd e6fd * * 5327 8ea2d3a7,8ea2d3a7v 81a3 e886a3 81a3 000081a3 e6fd e6fd e6fd e6fd e6fd e6fd e6fd -10703 e6fe e6fe e6fe * * 5328 8ea2d3a8,8ea2d3a8v 819f e8869f 819f 0000819f e6fe e6fe e6fe e6fe e6fe e6fe e6fe -10704 e740 e740 e740 * * 5329 8ea2d3a9,8ea2d3a9v 819e e8869e 819e 0000819e e740 e740 e740 e740 e740 e740 e740 -10705 e741 e741 e741 * * 532a 8ea2d3aa,8ea2d3aav 8195 e88695 8195 00008195 e741 e741 e741 e741 e741 e741 e741 -10706 e742 e742 e742 * * 532b 8ea2d3ab,8ea2d3abv 81a2 e886a2 81a2 000081a2 e742 e742 e742 e742 e742 e742 e742 -10707 e743 e743 e743 * * 532c 8ea2d3ac,8ea2d3acv 8199 e88699 8199 00008199 e743 e743 e743 e743 e743 e743 e743 -10708 e744 e744 e744 * * 532d 8ea2d3ad,8ea2d3adv 8197 e88697 8197 00008197 e744 e744 e744 e744 e744 e744 e744 -10709 e745 e745 e745 * * 532e 8ea2d3ae,8ea2d3aev 8216 e88896 8216 00008216 e745 e745 e745 e745 e745 e745 e745 -10710 e746 e746 e746 * * 532f 8ea2d3af,8ea2d3afv 824f e8898f 824f 0000824f e746 e746 e746 e746 e746 e746 e746 -10711 e747 e747 e747 * * 5330 8ea2d3b0,8ea2d3b0v 8253 e88993 8253 00008253 e747 e747 e747 e747 e747 e747 e747 -10712 e748 e748 e748 * * 5331 8ea2d3b1,8ea2d3b1v 8252 e88992 8252 00008252 e748 e748 e748 e748 e748 e748 e748 -10713 e749 e749 e749 * * 5332 8ea2d3b2,8ea2d3b2v 8250 e88990 8250 00008250 e749 e749 e749 e749 e749 e749 e749 -10714 e74a e74a e74a * * 5333 8ea2d3b3,8ea2d3b3v 824e e8898e 824e 0000824e e74a e74a e74a e74a e74a e74a e74a -10715 e74b e74b e74b * * 5334 8ea2d3b4,8ea2d3b4v 8251 e88991 8251 00008251 e74b e74b e74b e74b e74b e74b e74b -10716 e74c e74c e74c * * 5335 8ea2d3b5,8ea2d3b5v 8524 e894a4 8524 00008524 e74c e74c e74c e74c e74c e74c e74c -10717 e74d e74d e74d * * 5336 8ea2d3b6,8ea2d3b6v 853b e894bb 853b 0000853b e74d e74d e74d e74d e74d e74d e74d -10718 e74e e74e e74e * * 5337 8ea2d3b7,8ea2d3b7v 850f e8948f 850f 0000850f e74e e74e e74e e74e e74e e74e e74e -10719 e74f e74f e74f * * 5338 8ea2d3b8,8ea2d3b8v 8500 e89480 8500 00008500 e74f e74f e74f e74f e74f e74f e74f -10720 e750 e750 e750 * * 5339 8ea2d3b9,8ea2d3b9v 8529 e894a9 8529 00008529 e750 e750 e750 e750 e750 e750 e750 -10721 e751 e751 e751 * * 533a 8ea2d3ba,8ea2d3bav 850e e8948e 850e 0000850e e751 e751 e751 e751 e751 e751 e751 -10722 e752 e752 e752 * * 533b 8ea2d3bb,8ea2d3bbv 8509 e89489 8509 00008509 e752 e752 e752 e752 e752 e752 e752 -10723 e753 e753 e753 * * 533c 8ea2d3bc,8ea2d3bcv 850d e8948d 850d 0000850d e753 e753 e753 e753 e753 e753 e753 -10724 e754 e754 e754 * * 533d 8ea2d3bd,8ea2d3bdv 851f e8949f 851f 0000851f e754 e754 e754 e754 e754 e754 e754 -10725 e755 e755 e755 * * 533e 8ea2d3be,8ea2d3bev 850a e8948a 850a 0000850a e755 e755 e755 e755 e755 e755 e755 -10726 e756 e756 e756 * * 533f 8ea2d3bf,8ea2d3bfv 8527 e894a7 8527 00008527 e756 e756 e756 e756 e756 e756 e756 -10727 e757 e757 e757 * * 5340 8ea2d3c0,8ea2d3c0v 851c e8949c 851c 0000851c e757 e757 e757 e757 e757 e757 e757 -10728 e758 e758 e758 * * 5341 8ea2d3c1,8ea2d3c1v 84fb e893bb 84fb 000084fb e758 e758 e758 e758 e758 e758 e758 -10729 e759 e759 e759 * * 5342 8ea2d3c2,8ea2d3c2v 852b e894ab 852b 0000852b e759 e759 e759 e759 e759 e759 e759 -10730 e75a e75a e75a * * 5343 8ea2d3c3,8ea2d3c3v 84fa e893ba 84fa 000084fa e75a e75a e75a e75a e75a e75a e75a -10731 e75b e75b e75b * * 5344 8ea2d3c4,8ea2d3c4v 8508 e89488 8508 00008508 e75b e75b e75b e75b e75b e75b e75b -10732 e75c e75c e75c * * 5345 8ea2d3c5,8ea2d3c5v 850c e8948c 850c 0000850c e75c e75c e75c e75c e75c e75c e75c -10733 e75d e75d e75d * * 5346 8ea2d3c6,8ea2d3c6v 84f4 e893b4 84f4 000084f4 e75d e75d e75d e75d e75d e75d e75d -10734 e75e e75e e75e * * 5347 8ea2d3c7,8ea2d3c7v 852a e894aa 852a 0000852a e75e e75e e75e e75e e75e e75e e75e -10735 e75f e75f e75f * * 5348 8ea2d3c8,8ea2d3c8v 84f2 e893b2 84f2 000084f2 e75f e75f e75f e75f e75f e75f e75f -10736 e760 e760 e760 * * 5349 8ea2d3c9,8ea2d3c9v 8515 e89495 8515 00008515 e760 e760 e760 e760 e760 e760 e760 -10737 e761 e761 e761 * * 534a 8ea2d3ca,8ea2d3cav 84f7 e893b7 84f7 000084f7 e761 e761 e761 e761 e761 e761 e761 -10738 e762 e762 e762 * * 534b 8ea2d3cb,8ea2d3cbv 84eb e893ab 84eb 000084eb e762 e762 e762 e762 e762 e762 e762 -10739 e763 e763 e763 * * 534c 8ea2d3cc,8ea2d3ccv 84f3 e893b3 84f3 000084f3 e763 e763 e763 e763 e763 e763 e763 -10740 e764 e764 e764 * * 534d 8ea2d3cd,8ea2d3cdv 84fc e893bc 84fc 000084fc e764 e764 e764 e764 e764 e764 e764 -10741 e765 e765 e765 * * 534e 8ea2d3ce,8ea2d3cev 8512 e89492 8512 00008512 e765 e765 e765 e765 e765 e765 e765 -10742 e766 e766 e766 * * 534f 8ea2d3cf,8ea2d3cfv 84ea e893aa 84ea 000084ea e766 e766 e766 e766 e766 e766 e766 -10743 e767 e767 e767 * * 5350 8ea2d3d0,8ea2d3d0v 84e9 e893a9 84e9 000084e9 e767 e767 e767 e767 e767 e767 e767 -10744 e768 e768 e768 * * 5351 8ea2d3d1,8ea2d3d1v 8516 e89496 8516 00008516 e768 e768 e768 e768 e768 e768 e768 -10745 e769 e769 e769 * * 5352 8ea2d3d2,8ea2d3d2v 84fe e893be 84fe 000084fe e769 e769 e769 e769 e769 e769 e769 -10746 e76a e76a e76a * * 5353 8ea2d3d3,8ea2d3d3v 8528 e894a8 8528 00008528 e76a e76a e76a e76a e76a e76a e76a -10747 e76b e76b e76b * * 5354 8ea2d3d4,8ea2d3d4v 851d e8949d 851d 0000851d e76b e76b e76b e76b e76b e76b e76b -10748 e76c e76c e76c * * 5355 8ea2d3d5,8ea2d3d5v 852e e894ae 852e 0000852e e76c e76c e76c e76c e76c e76c e76c -10749 e76d e76d e76d * * 5356 8ea2d3d6,8ea2d3d6v 8502 e89482 8502 00008502 e76d e76d e76d e76d e76d e76d e76d -10750 e76e e76e e76e * * 5357 8ea2d3d7,8ea2d3d7v 84fd e893bd 84fd 000084fd e76e e76e e76e e76e e76e e76e e76e -10751 e76f e76f e76f * * 5358 8ea2d3d8,8ea2d3d8v 851e e8949e 851e 0000851e e76f e76f e76f e76f e76f e76f e76f -10752 e770 e770 e770 * * 5359 8ea2d3d9,8ea2d3d9v 84f6 e893b6 84f6 000084f6 e770 e770 e770 e770 e770 e770 e770 -10753 e771 e771 e771 * * 535a 8ea2d3da,8ea2d3dav 8531 e894b1 8531 00008531 e771 e771 e771 e771 e771 e771 e771 -10754 e772 e772 e772 * * 535b 8ea2d3db,8ea2d3dbv 8526 e894a6 8526 00008526 e772 e772 e772 e772 e772 e772 e772 -10755 e773 e773 e773 * * 535c 8ea2d3dc,8ea2d3dcv 84e7 e893a7 84e7 000084e7 e773 e773 e773 e773 e773 e773 e773 -10756 e774 e774 e774 * * 535d 8ea2d3dd,8ea2d3ddv 84e8 e893a8 84e8 000084e8 e774 e774 e774 e774 e774 e774 e774 -10757 e775 e775 e775 * * 535e 8ea2d3de,8ea2d3dev 84f0 e893b0 84f0 000084f0 e775 e775 e775 e775 e775 e775 e775 -10758 e776 e776 e776 * * 535f 8ea2d3df,8ea2d3dfv 84ef e893af 84ef 000084ef e776 e776 e776 e776 e776 e776 e776 -10759 e777 e777 e777 * * 5360 8ea2d3e0,8ea2d3e0v 84f9 e893b9 84f9 000084f9 e777 e777 e777 e777 e777 e777 e777 -10760 e778 e778 e778 * * 5361 8ea2d3e1,8ea2d3e1v 8518 e89498 8518 00008518 e778 e778 e778 e778 e778 e778 e778 -10761 e779 e779 e779 * * 5362 8ea2d3e2,8ea2d3e2v 8520 e894a0 8520 00008520 e779 e779 e779 e779 e779 e779 e779 -10762 e77a e77a e77a * * 5363 8ea2d3e3,8ea2d3e3v 8530 e894b0 8530 00008530 e77a e77a e77a e77a e77a e77a e77a -10763 e77b e77b e77b * * 5364 8ea2d3e4,8ea2d3e4v 850b e8948b 850b 0000850b e77b e77b e77b e77b e77b e77b e77b -10764 e77c e77c e77c * * 5365 8ea2d3e5,8ea2d3e5v 8519 e89499 8519 00008519 e77c e77c e77c e77c e77c e77c e77c -10765 e77d e77d e77d * * 5366 8ea2d3e6,8ea2d3e6v 852f e894af 852f 0000852f e77d e77d e77d e77d e77d e77d e77d -10766 e77e e77e e77e * * 5367 8ea2d3e7,8ea2d3e7v 8662 e899a2 8662 00008662 e77e e77e e77e e77e e77e e77e e77e -10767 e7a1 e7a1 e7a1 * * 5368 8ea2d3e8,8ea2d3e8v 8756 e89d96 8756 00008756 e7a1 e7a1 e7a1 e7a1 e7a1 e7a1 e7a1 -10768 e7a2 e7a2 e7a2 * * 5369 8ea2d3e9,8ea2d3e9v 8763 e89da3 8763 00008763 e7a2 e7a2 e7a2 e7a2 e7a2 e7a2 e7a2 -10769 e7a3 e7a3 e7a3 * * 536a 8ea2d3ea,8ea2d3eav 8764 e89da4 8764 00008764 e7a3 e7a3 e7a3 e7a3 e7a3 e7a3 e7a3 -10770 e7a4 e7a4 e7a4 * * 536b 8ea2d3eb,8ea2d3ebv 8777 e89db7 8777 00008777 e7a4 e7a4 e7a4 e7a4 e7a4 e7a4 e7a4 -10771 e7a5 e7a5 e7a5 * * 536c 8ea2d3ec,8ea2d3ecv 87e1 e89fa1 87e1 000087e1 e7a5 e7a5 e7a5 e7a5 e7a5 e7a5 e7a5 -10772 e7a6 e7a6 e7a6 * * 536d 8ea2d3ed,8ea2d3edv 8773 e89db3 8773 00008773 e7a6 e7a6 e7a6 e7a6 e7a6 e7a6 e7a6 -10773 e7a7 e7a7 e7a7 * * 536e 8ea2d3ee,8ea2d3eev 8758 e89d98 8758 00008758 e7a7 e7a7 e7a7 e7a7 e7a7 e7a7 e7a7 -10774 e7a8 e7a8 e7a8 * * 536f 8ea2d3ef,8ea2d3efv 8754 e89d94 8754 00008754 e7a8 e7a8 e7a8 e7a8 e7a8 e7a8 e7a8 -10775 e7a9 e7a9 e7a9 * * 5370 8ea2d3f0,8ea2d3f0v 875b e89d9b 875b 0000875b e7a9 e7a9 e7a9 e7a9 e7a9 e7a9 e7a9 -10776 e7aa e7aa e7aa * * 5371 8ea2d3f1,8ea2d3f1v 8752 e89d92 8752 00008752 e7aa e7aa e7aa e7aa e7aa e7aa e7aa -10777 e7ab e7ab e7ab * * 5372 8ea2d3f2,8ea2d3f2v 8761 e89da1 8761 00008761 e7ab e7ab e7ab e7ab e7ab e7ab e7ab -10778 e7ac e7ac e7ac * * 5373 8ea2d3f3,8ea2d3f3v 875a e89d9a 875a 0000875a e7ac e7ac e7ac e7ac e7ac e7ac e7ac -10779 e7ad e7ad e7ad * * 5374 8ea2d3f4,8ea2d3f4v 8751 e89d91 8751 00008751 e7ad e7ad e7ad e7ad e7ad e7ad e7ad -10780 e7ae e7ae e7ae * * 5375 8ea2d3f5,8ea2d3f5v 875e e89d9e 875e 0000875e e7ae e7ae e7ae e7ae e7ae e7ae e7ae -10781 e7af e7af e7af * * 5376 8ea2d3f6,8ea2d3f6v 876d e89dad 876d 0000876d e7af e7af e7af e7af e7af e7af e7af -10782 e7b0 e7b0 e7b0 * * 5377 8ea2d3f7,8ea2d3f7v 876a e89daa 876a 0000876a e7b0 e7b0 e7b0 e7b0 e7b0 e7b0 e7b0 -10783 e7b1 e7b1 e7b1 * * 5378 8ea2d3f8,8ea2d3f8v 8750 e89d90 8750 00008750 e7b1 e7b1 e7b1 e7b1 e7b1 e7b1 e7b1 -10784 e7b2 e7b2 e7b2 * * 5379 8ea2d3f9,8ea2d3f9v 874e e89d8e 874e 0000874e e7b2 e7b2 e7b2 e7b2 e7b2 e7b2 e7b2 -10785 e7b3 e7b3 e7b3 * * 537a 8ea2d3fa,8ea2d3fav 875f e89d9f 875f 0000875f e7b3 e7b3 e7b3 e7b3 e7b3 e7b3 e7b3 -10786 e7b4 e7b4 e7b4 * * 537b 8ea2d3fb,8ea2d3fbv 875d e89d9d 875d 0000875d e7b4 e7b4 e7b4 e7b4 e7b4 e7b4 e7b4 -10787 e7b5 e7b5 e7b5 * * 537c 8ea2d3fc,8ea2d3fcv 876f e89daf 876f 0000876f e7b5 e7b5 e7b5 e7b5 e7b5 e7b5 e7b5 -10788 e7b6 e7b6 e7b6 * * 537d 8ea2d3fd,8ea2d3fdv 876c e89dac 876c 0000876c e7b6 e7b6 e7b6 e7b6 e7b6 e7b6 e7b6 -10789 e7b7 e7b7 e7b7 * * 537e 8ea2d3fe,8ea2d3fev 877a e89dba 877a 0000877a e7b7 e7b7 e7b7 e7b7 e7b7 e7b7 e7b7 -10790 e7b8 e7b8 e7b8 * * 5421 8ea2d4a1,8ea2d4a1v 876e e89dae 876e 0000876e e7b8 e7b8 e7b8 e7b8 e7b8 e7b8 e7b8 -10791 e7b9 e7b9 e7b9 * * 5422 8ea2d4a2,8ea2d4a2v 875c e89d9c 875c 0000875c e7b9 e7b9 e7b9 e7b9 e7b9 e7b9 e7b9 -10792 e7ba e7ba e7ba * * 5423 8ea2d4a3,8ea2d4a3v 8765 e89da5 8765 00008765 e7ba e7ba e7ba e7ba e7ba e7ba e7ba -10793 e7bb e7bb e7bb * * 5424 8ea2d4a4,8ea2d4a4v 874f e89d8f 874f 0000874f e7bb e7bb e7bb e7bb e7bb e7bb e7bb -10794 e7bc e7bc e7bc * * 5425 8ea2d4a5,8ea2d4a5v 877b e89dbb 877b 0000877b e7bc e7bc e7bc e7bc e7bc e7bc e7bc -10795 e7bd e7bd e7bd * * 5426 8ea2d4a6,8ea2d4a6v 8775 e89db5 8775 00008775 e7bd e7bd e7bd e7bd e7bd e7bd e7bd -10796 e7be e7be e7be * * 5427 8ea2d4a7,8ea2d4a7v 8762 e89da2 8762 00008762 e7be e7be e7be e7be e7be e7be e7be -10797 e7bf e7bf e7bf * * 5428 8ea2d4a8,8ea2d4a8v 8767 e89da7 8767 00008767 e7bf e7bf e7bf e7bf e7bf e7bf e7bf -10798 e7c0 e7c0 e7c0 * * 5429 8ea2d4a9,8ea2d4a9v 8769 e89da9 8769 00008769 e7c0 e7c0 e7c0 e7c0 e7c0 e7c0 e7c0 -10799 e7c1 e7c1 e7c1 * * 542a 8ea2d4aa,8ea2d4aav 885a e8a19a 885a 0000885a e7c1 e7c1 e7c1 e7c1 e7c1 e7c1 e7c1 -10800 e7c2 e7c2 e7c2 * * 542b 8ea2d4ab,8ea2d4abv 8905 e8a485 8905 00008905 e7c2 e7c2 e7c2 e7c2 e7c2 e7c2 e7c2 -10801 e7c3 e7c3 e7c3 * * 542c 8ea2d4ac,8ea2d4acv 890c e8a48c 890c 0000890c e7c3 e7c3 e7c3 e7c3 e7c3 e7c3 e7c3 -10802 e7c4 e7c4 e7c4 * * 542d 8ea2d4ad,8ea2d4adv 8914 e8a494 8914 00008914 e7c4 e7c4 e7c4 e7c4 e7c4 e7c4 e7c4 -10803 e7c5 e7c5 e7c5 * * 542e 8ea2d4ae,8ea2d4aev 890b e8a48b 890b 0000890b e7c5 e7c5 e7c5 e7c5 e7c5 e7c5 e7c5 -10804 e7c6 e7c6 e7c6 * * 542f 8ea2d4af,8ea2d4afv 8917 e8a497 8917 00008917 e7c6 e7c6 e7c6 e7c6 e7c6 e7c6 e7c6 -10805 e7c7 e7c7 e7c7 * * 5430 8ea2d4b0,8ea2d4b0v 8918 e8a498 8918 00008918 e7c7 e7c7 e7c7 e7c7 e7c7 e7c7 e7c7 -10806 e7c8 e7c8 e7c8 * * 5431 8ea2d4b1,8ea2d4b1v 8919 e8a499 8919 00008919 e7c8 e7c8 e7c8 e7c8 e7c8 e7c8 e7c8 -10807 e7c9 e7c9 e7c9 * * 5432 8ea2d4b2,8ea2d4b2v 8906 e8a486 8906 00008906 e7c9 e7c9 e7c9 e7c9 e7c9 e7c9 e7c9 -10808 e7ca e7ca e7ca * * 5433 8ea2d4b3,8ea2d4b3v 8916 e8a496 8916 00008916 e7ca e7ca e7ca e7ca e7ca e7ca e7ca -10809 e7cb e7cb e7cb * * 5434 8ea2d4b4,8ea2d4b4v 8911 e8a491 8911 00008911 e7cb e7cb e7cb e7cb e7cb e7cb e7cb -10810 e7cc e7cc e7cc * * 5435 8ea2d4b5,8ea2d4b5v 890e e8a48e 890e 0000890e e7cc e7cc e7cc e7cc e7cc e7cc e7cc -10811 e7cd e7cd e7cd * * 5436 8ea2d4b6,8ea2d4b6v 8909 e8a489 8909 00008909 e7cd e7cd e7cd e7cd e7cd e7cd e7cd -10812 e7ce e7ce e7ce * * 5437 8ea2d4b7,8ea2d4b7v 89a2 e8a6a2 89a2 000089a2 e7ce e7ce e7ce e7ce e7ce e7ce e7ce -10813 e7cf e7cf e7cf * * 5438 8ea2d4b8,8ea2d4b8v 89a4 e8a6a4 89a4 000089a4 e7cf e7cf e7cf e7cf e7cf e7cf e7cf -10814 e7d0 e7d0 e7d0 * * 5439 8ea2d4b9,8ea2d4b9v 89a3 e8a6a3 89a3 000089a3 e7d0 e7d0 e7d0 e7d0 e7d0 e7d0 e7d0 -10815 e7d1 e7d1 e7d1 * * 543a 8ea2d4ba,8ea2d4bav 89ed e8a7ad 89ed 000089ed e7d1 e7d1 e7d1 e7d1 e7d1 e7d1 e7d1 -10816 e7d2 e7d2 e7d2 * * 543b 8ea2d4bb,8ea2d4bbv 89f0 e8a7b0 89f0 000089f0 e7d2 e7d2 e7d2 e7d2 e7d2 e7d2 e7d2 -10817 e7d3 e7d3 e7d3 * * 543c 8ea2d4bc,8ea2d4bcv 89ec e8a7ac 89ec 000089ec e7d3 e7d3 e7d3 e7d3 e7d3 e7d3 e7d3 -10818 e7d4 e7d4 e7d4 * * 543d 8ea2d4bd,8ea2d4bdv 8acf e8ab8f 8acf 00008acf e7d4 e7d4 e7d4 e7d4 e7d4 e7d4 e7d4 -10819 e7d5 e7d5 e7d5 * * 543e 8ea2d4be,8ea2d4bev 8ac6 e8ab86 8ac6 00008ac6 e7d5 e7d5 e7d5 e7d5 e7d5 e7d5 e7d5 -10820 e7d6 e7d6 e7d6 * * 543f 8ea2d4bf,8ea2d4bfv 8ab8 e8aab8 8ab8 00008ab8 e7d6 e7d6 e7d6 e7d6 e7d6 e7d6 e7d6 -10821 e7d7 e7d7 e7d7 * * 5440 8ea2d4c0,8ea2d4c0v 8ad3 e8ab93 8ad3 00008ad3 e7d7 e7d7 e7d7 e7d7 e7d7 e7d7 e7d7 -10822 e7d8 e7d8 e7d8 * * 5441 8ea2d4c1,8ea2d4c1v 8ad1 e8ab91 8ad1 00008ad1 e7d8 e7d8 e7d8 e7d8 e7d8 e7d8 e7d8 -10823 e7d9 e7d9 e7d9 * * 5442 8ea2d4c2,8ea2d4c2v 8ad4 e8ab94 8ad4 00008ad4 e7d9 e7d9 e7d9 e7d9 e7d9 e7d9 e7d9 -10824 e7da e7da e7da * * 5443 8ea2d4c3,8ea2d4c3v 8ad5 e8ab95 8ad5 00008ad5 e7da e7da e7da e7da e7da e7da e7da -10825 e7db e7db e7db * * 5444 8ea2d4c4,8ea2d4c4v 8abb e8aabb 8abb 00008abb e7db e7db e7db e7db e7db e7db e7db -10826 e7dc e7dc e7dc * * 5445 8ea2d4c5,8ea2d4c5v 8ad7 e8ab97 8ad7 00008ad7 e7dc e7dc e7dc e7dc e7dc e7dc e7dc -10827 e7dd e7dd e7dd * * 5446 8ea2d4c6,8ea2d4c6v 8abe e8aabe 8abe 00008abe e7dd e7dd e7dd e7dd e7dd e7dd e7dd -10828 e7de e7de e7de * * 5447 8ea2d4c7,8ea2d4c7v 8ac0 e8ab80 8ac0 00008ac0 e7de e7de e7de e7de e7de e7de e7de -10829 e7df e7df e7df * * 5448 8ea2d4c8,8ea2d4c8v 8ac5 e8ab85 8ac5 00008ac5 e7df e7df e7df e7df e7df e7df e7df -10830 e7e0 e7e0 e7e0 * * 5449 8ea2d4c9,8ea2d4c9v 8ad8 e8ab98 8ad8 00008ad8 e7e0 e7e0 e7e0 e7e0 e7e0 e7e0 e7e0 -10831 e7e1 e7e1 e7e1 * * 544a 8ea2d4ca,8ea2d4cav 8ac3 e8ab83 8ac3 00008ac3 e7e1 e7e1 e7e1 e7e1 e7e1 e7e1 e7e1 -10832 e7e2 e7e2 e7e2 * * 544b 8ea2d4cb,8ea2d4cbv 8aba e8aaba 8aba 00008aba e7e2 e7e2 e7e2 e7e2 e7e2 e7e2 e7e2 -10833 e7e3 e7e3 e7e3 * * 544c 8ea2d4cc,8ea2d4ccv 8abd e8aabd 8abd 00008abd e7e3 e7e3 e7e3 e7e3 e7e3 e7e3 e7e3 -10834 e7e4 e7e4 e7e4 * * 544d 8ea2d4cd,8ea2d4cdv 8ad9 e8ab99 8ad9 00008ad9 e7e4 e7e4 e7e4 e7e4 e7e4 e7e4 e7e4 -10835 e7e5 e7e5 e7e5 * * 544e 8ea2d4ce,8ea2d4cev 8c3e e8b0be 8c3e 00008c3e e7e5 e7e5 e7e5 e7e5 e7e5 e7e5 e7e5 -10836 e7e6 e7e6 e7e6 * * 544f 8ea2d4cf,8ea2d4cfv 8c4d e8b18d 8c4d 00008c4d e7e6 e7e6 e7e6 e7e6 e7e6 e7e6 e7e6 -10837 e7e7 e7e7 e7e7 * * 5450 8ea2d4d0,8ea2d4d0v 8c8f e8b28f 8c8f 00008c8f e7e7 e7e7 e7e7 e7e7 e7e7 e7e7 e7e7 -10838 e7e8 e7e8 e7e8 * * 5451 8ea2d4d1,8ea2d4d1v 8ce5 e8b3a5 8ce5 00008ce5 e7e8 e7e8 e7e8 e7e8 e7e8 e7e8 e7e8 -10839 e7e9 e7e9 e7e9 * * 5452 8ea2d4d2,8ea2d4d2v 8cdf e8b39f 8cdf 00008cdf e7e9 e7e9 e7e9 e7e9 e7e9 e7e9 e7e9 -10840 e7ea e7ea e7ea * * 5453 8ea2d4d3,8ea2d4d3v 8cd9 e8b399 8cd9 00008cd9 e7ea e7ea e7ea e7ea e7ea e7ea e7ea -10841 e7eb e7eb e7eb * * 5454 8ea2d4d4,8ea2d4d4v 8ce8 e8b3a8 8ce8 00008ce8 e7eb e7eb e7eb e7eb e7eb e7eb e7eb -10842 e7ec e7ec e7ec * * 5455 8ea2d4d5,8ea2d4d5v 8cda e8b39a 8cda 00008cda e7ec e7ec e7ec e7ec e7ec e7ec e7ec -10843 e7ed e7ed e7ed * * 5456 8ea2d4d6,8ea2d4d6v 8cdd e8b39d 8cdd 00008cdd e7ed e7ed e7ed e7ed e7ed e7ed e7ed -10844 e7ee e7ee e7ee * * 5457 8ea2d4d7,8ea2d4d7v 8ce7 e8b3a7 8ce7 00008ce7 e7ee e7ee e7ee e7ee e7ee e7ee e7ee -10845 e7ef e7ef e7ef * * 5458 8ea2d4d8,8ea2d4d8v 8da0 e8b6a0 8da0 00008da0 e7ef e7ef e7ef e7ef e7ef e7ef e7ef -10846 e7f0 e7f0 e7f0 * * 5459 8ea2d4d9,8ea2d4d9v 8d9c e8b69c 8d9c 00008d9c e7f0 e7f0 e7f0 e7f0 e7f0 e7f0 e7f0 -10847 e7f1 e7f1 e7f1 * * 545a 8ea2d4da,8ea2d4dav 8da1 e8b6a1 8da1 00008da1 e7f1 e7f1 e7f1 e7f1 e7f1 e7f1 e7f1 -10848 e7f2 e7f2 e7f2 * * 545b 8ea2d4db,8ea2d4dbv 8d9b e8b69b 8d9b 00008d9b e7f2 e7f2 e7f2 e7f2 e7f2 e7f2 e7f2 -10849 e7f3 e7f3 e7f3 * * 545c 8ea2d4dc,8ea2d4dcv 8e20 e8b8a0 8e20 00008e20 e7f3 e7f3 e7f3 e7f3 e7f3 e7f3 e7f3 -10850 e7f4 e7f4 e7f4 * * 545d 8ea2d4dd,8ea2d4ddv 8e23 e8b8a3 8e23 00008e23 e7f4 e7f4 e7f4 e7f4 e7f4 e7f4 e7f4 -10851 e7f5 e7f5 e7f5 * * 545e 8ea2d4de,8ea2d4dev 8e25 e8b8a5 8e25 00008e25 e7f5 e7f5 e7f5 e7f5 e7f5 e7f5 e7f5 -10852 e7f6 e7f6 e7f6 * * 545f 8ea2d4df,8ea2d4dfv 8e24 e8b8a4 8e24 00008e24 e7f6 e7f6 e7f6 e7f6 e7f6 e7f6 e7f6 -10853 e7f7 e7f7 e7f7 * * 5460 8ea2d4e0,8ea2d4e0v 8e2e e8b8ae 8e2e 00008e2e e7f7 e7f7 e7f7 e7f7 e7f7 e7f7 e7f7 -10854 e7f8 e7f8 e7f8 * * 5461 8ea2d4e1,8ea2d4e1v 8e15 e8b895 8e15 00008e15 e7f8 e7f8 e7f8 e7f8 e7f8 e7f8 e7f8 -10855 e7f9 e7f9 e7f9 * * 5462 8ea2d4e2,8ea2d4e2v 8e1b e8b89b 8e1b 00008e1b e7f9 e7f9 e7f9 e7f9 e7f9 e7f9 e7f9 -10856 e7fa e7fa e7fa * * 5463 8ea2d4e3,8ea2d4e3v 8e16 e8b896 8e16 00008e16 e7fa e7fa e7fa e7fa e7fa e7fa e7fa -10857 e7fb e7fb e7fb * * 5464 8ea2d4e4,8ea2d4e4v 8e11 e8b891 8e11 00008e11 e7fb e7fb e7fb e7fb e7fb e7fb e7fb -10858 e7fc e7fc e7fc * * 5465 8ea2d4e5,8ea2d4e5v 8e19 e8b899 8e19 00008e19 e7fc e7fc e7fc e7fc e7fc e7fc e7fc -10859 e7fd e7fd e7fd * * 5466 8ea2d4e6,8ea2d4e6v 8e26 e8b8a6 8e26 00008e26 e7fd e7fd e7fd e7fd e7fd e7fd e7fd -10860 e7fe e7fe e7fe * * 5467 8ea2d4e7,8ea2d4e7v 8e27 e8b8a7 8e27 00008e27 e7fe e7fe e7fe e7fe e7fe e7fe e7fe -10861 e840 e840 e840 * * 5468 8ea2d4e8,8ea2d4e8v 8e14 e8b894 8e14 00008e14 e840 e840 e840 e840 e840 e840 e840 -10862 e841 e841 e841 * * 5469 8ea2d4e9,8ea2d4e9v 8e12 e8b892 8e12 00008e12 e841 e841 e841 e841 e841 e841 e841 -10863 e842 e842 e842 * * 546a 8ea2d4ea,8ea2d4eav 8e18 e8b898 8e18 00008e18 e842 e842 e842 e842 e842 e842 e842 -10864 e843 e843 e843 * * 546b 8ea2d4eb,8ea2d4ebv 8e13 e8b893 8e13 00008e13 e843 e843 e843 e843 e843 e843 e843 -10865 e844 e844 e844 * * 546c 8ea2d4ec,8ea2d4ecv 8e1c e8b89c 8e1c 00008e1c e844 e844 e844 e844 e844 e844 e844 -10866 e845 e845 e845 * * 546d 8ea2d4ed,8ea2d4edv 8e17 e8b897 8e17 00008e17 e845 e845 e845 e845 e845 e845 e845 -10867 e846 e846 e846 * * 546e 8ea2d4ee,8ea2d4eev 8e1a e8b89a 8e1a 00008e1a e846 e846 e846 e846 e846 e846 e846 -10868 e847 e847 e847 * * 546f 8ea2d4ef,8ea2d4efv 8f2c e8bcac 8f2c 00008f2c e847 e847 e847 e847 e847 e847 e847 -10869 e848 e848 e848 * * 5470 8ea2d4f0,8ea2d4f0v 8f24 e8bca4 8f24 00008f24 e848 e848 e848 e848 e848 e848 e848 -10870 e849 e849 e849 * * 5471 8ea2d4f1,8ea2d4f1v 8f18 e8bc98 8f18 00008f18 e849 e849 e849 e849 e849 e849 e849 -10871 e84a e84a e84a * * 5472 8ea2d4f2,8ea2d4f2v 8f1a e8bc9a 8f1a 00008f1a e84a e84a e84a e84a e84a e84a e84a -10872 e84b e84b e84b * * 5473 8ea2d4f3,8ea2d4f3v 8f20 e8bca0 8f20 00008f20 e84b e84b e84b e84b e84b e84b e84b -10873 e84c e84c e84c * * 5474 8ea2d4f4,8ea2d4f4v 8f23 e8bca3 8f23 00008f23 e84c e84c e84c e84c e84c e84c e84c -10874 e84d e84d e84d * * 5475 8ea2d4f5,8ea2d4f5v 8f16 e8bc96 8f16 00008f16 e84d e84d e84d e84d e84d e84d e84d -10875 e84e e84e e84e * * 5476 8ea2d4f6,8ea2d4f6v 8f17 e8bc97 8f17 00008f17 e84e e84e e84e e84e e84e e84e e84e -10876 e84f e84f e84f * * 5477 8ea2d4f7,8ea2d4f7v 9073 e981b3 9073 00009073 e84f e84f e84f e84f e84f e84f e84f -10877 e850 e850 e850 * * 5478 8ea2d4f8,8ea2d4f8v 9070 e981b0 9070 00009070 e850 e850 e850 e850 e850 e850 e850 -10878 e851 e851 e851 * * 5479 8ea2d4f9,8ea2d4f9v 906f e981af 906f 0000906f e851 e851 e851 e851 e851 e851 e851 -10879 e852 e852 e852 * * 547a 8ea2d4fa,8ea2d4fav 9067 e981a7 9067 00009067 e852 e852 e852 e852 e852 e852 e852 -10880 e853 e853 e853 * * 547b 8ea2d4fb,8ea2d4fbv 906b e981ab 906b 0000906b e853 e853 e853 e853 e853 e853 e853 -10881 e854 e854 e854 * * 547c 8ea2d4fc,8ea2d4fcv 912f e984af 912f 0000912f e854 e854 e854 e854 e854 e854 e854 -10882 e855 e855 e855 * * 547d 8ea2d4fd,8ea2d4fdv 912b e984ab 912b 0000912b e855 e855 e855 e855 e855 e855 e855 -10883 e856 e856 e856 * * 547e 8ea2d4fe,8ea2d4fev 9129 e984a9 9129 00009129 e856 e856 e856 e856 e856 e856 e856 -10884 e857 e857 e857 * * 5521 8ea2d5a1,8ea2d5a1v 912a e984aa 912a 0000912a e857 e857 e857 e857 e857 e857 e857 -10885 e858 e858 e858 * * 5522 8ea2d5a2,8ea2d5a2v 9132 e984b2 9132 00009132 e858 e858 e858 e858 e858 e858 e858 -10886 e859 e859 e859 * * 5523 8ea2d5a3,8ea2d5a3v 9126 e984a6 9126 00009126 e859 e859 e859 e859 e859 e859 e859 -10887 e85a e85a e85a * * 5524 8ea2d5a4,8ea2d5a4v 912e e984ae 912e 0000912e e85a e85a e85a e85a e85a e85a e85a -10888 e85b e85b e85b * * 5525 8ea2d5a5,8ea2d5a5v 9185 e98685 9185 00009185 e85b e85b e85b e85b e85b e85b e85b -10889 e85c e85c e85c * * 5526 8ea2d5a6,8ea2d5a6v 9186 e98686 9186 00009186 e85c e85c e85c e85c e85c e85c e85c -10890 e85d e85d e85d * * 5527 8ea2d5a7,8ea2d5a7v 918a e9868a 918a 0000918a e85d e85d e85d e85d e85d e85d e85d -10891 e85e e85e e85e * * 5528 8ea2d5a8,8ea2d5a8v 9181 e98681 9181 00009181 e85e e85e e85e e85e e85e e85e e85e -10892 e85f e85f e85f * * 5529 8ea2d5a9,8ea2d5a9v 9182 e98682 9182 00009182 e85f e85f e85f e85f e85f e85f e85f -10893 e860 e860 e860 * * 552a 8ea2d5aa,8ea2d5aav 9184 e98684 9184 00009184 e860 e860 e860 e860 e860 e860 e860 -10894 e861 e861 e861 * * 552b 8ea2d5ab,8ea2d5abv 9180 e98680 9180 00009180 e861 e861 e861 e861 e861 e861 e861 -10895 e862 e862 e862 * * 552c 8ea2d5ac,8ea2d5acv 92d0 e98b90 92d0 000092d0 e862 e862 e862 e862 e862 e862 e862 -10896 e863 e863 e863 * * 552d 8ea2d5ad,8ea2d5adv 92c3 e98b83 92c3 000092c3 e863 e863 e863 e863 e863 e863 e863 -10897 e864 e864 e864 * * 552e 8ea2d5ae,8ea2d5aev 92c4 e98b84 92c4 000092c4 e864 e864 e864 e864 e864 e864 e864 -10898 e865 e865 e865 * * 552f 8ea2d5af,8ea2d5afv 92c0 e98b80 92c0 000092c0 e865 e865 e865 e865 e865 e865 e865 -10899 e866 e866 e866 * * 5530 8ea2d5b0,8ea2d5b0v 92d9 e98b99 92d9 000092d9 e866 e866 e866 e866 e866 e866 e866 -10900 e867 e867 e867 * * 5531 8ea2d5b1,8ea2d5b1v 92b6 e98ab6 92b6 000092b6 e867 e867 e867 e867 e867 e867 e867 -10901 e868 e868 e868 * * 5532 8ea2d5b2,8ea2d5b2v 92cf e98b8f 92cf 000092cf e868 e868 e868 e868 e868 e868 e868 -10902 e869 e869 e869 * * 5533 8ea2d5b3,8ea2d5b3v 92f1 e98bb1 92f1 000092f1 e869 e869 e869 e869 e869 e869 e869 -10903 e86a e86a e86a * * 5534 8ea2d5b4,8ea2d5b4v 92df e98b9f 92df 000092df e86a e86a e86a e86a e86a e86a e86a -10904 e86b e86b e86b * * 5535 8ea2d5b5,8ea2d5b5v 92d8 e98b98 92d8 000092d8 e86b e86b e86b e86b e86b e86b e86b -10905 e86c e86c e86c * * 5536 8ea2d5b6,8ea2d5b6v 92e9 e98ba9 92e9 000092e9 e86c e86c e86c e86c e86c e86c e86c -10906 e86d e86d e86d * * 5537 8ea2d5b7,8ea2d5b7v 92d7 e98b97 92d7 000092d7 e86d e86d e86d e86d e86d e86d e86d -10907 e86e e86e e86e * * 5538 8ea2d5b8,8ea2d5b8v 92dd e98b9d 92dd 000092dd e86e e86e e86e e86e e86e e86e e86e -10908 e86f e86f e86f * * 5539 8ea2d5b9,8ea2d5b9v 92cc e98b8c 92cc 000092cc e86f e86f e86f e86f e86f e86f e86f -10909 e870 e870 e870 * * 553a 8ea2d5ba,8ea2d5bav 92ef e98baf 92ef 000092ef e870 e870 e870 e870 e870 e870 e870 -10910 e871 e871 e871 * * 553b 8ea2d5bb,8ea2d5bbv 92c2 e98b82 92c2 000092c2 e871 e871 e871 e871 e871 e871 e871 -10911 e872 e872 e872 * * 553c 8ea2d5bc,8ea2d5bcv 92e8 e98ba8 92e8 000092e8 e872 e872,fe72 90d1,e872 e872 e872 e872 e872 -10912 e873 e873 e873 * * 553d 8ea2d5bd,8ea2d5bdv 92ca e98b8a 92ca 000092ca e873 e873 e873 e873 e873 e873 e873 -10913 e874 e874 e874 * * 553e 8ea2d5be,8ea2d5bev 92c8 e98b88 92c8 000092c8 e874 e874 e874 e874 e874 e874 e874 -10914 e875 e875 e875 * * 553f 8ea2d5bf,8ea2d5bfv 92ce e98b8e 92ce 000092ce e875 e875 e875 e875 e875 e875 e875 -10915 e876 e876 e876 * * 5540 8ea2d5c0,8ea2d5c0v 92e6 e98ba6 92e6 000092e6 e876 e876 e876 e876 e876 e876 e876 -10916 e877 e877 e877 * * 5541 8ea2d5c1,8ea2d5c1v 92cd e98b8d 92cd 000092cd e877 e877 e877 e877 e877 e877 e877 -10917 e878 e878 e878 * * 5542 8ea2d5c2,8ea2d5c2v 92d5 e98b95 92d5 000092d5 e878 e878 e878 e878 e878 e878 e878 -10918 e879 e879 e879 * * 5543 8ea2d5c3,8ea2d5c3v 92c9 e98b89 92c9 000092c9 e879 e879 e879 e879 e879 e879 e879 -10919 e87a e87a e87a * * 5544 8ea2d5c4,8ea2d5c4v 92e0 e98ba0 92e0 000092e0 e87a e87a e87a e87a e87a e87a e87a -10920 e87b e87b e87b * * 5545 8ea2d5c5,8ea2d5c5v 92de e98b9e 92de 000092de e87b e87b e87b e87b e87b e87b e87b -10921 e87c e87c e87c * * 5546 8ea2d5c6,8ea2d5c6v 92e7 e98ba7 92e7 000092e7 e87c e87c e87c e87c e87c e87c e87c -10922 e87d e87d e87d * * 5547 8ea2d5c7,8ea2d5c7v 92d1 e98b91 92d1 000092d1 e87d e87d e87d e87d e87d e87d e87d -10923 e87e e87e e87e * * 5548 8ea2d5c8,8ea2d5c8v 92d3 e98b93 92d3 000092d3 e87e e87e e87e e87e e87e e87e e87e -10924 e8a1 e8a1 e8a1 * * 5549 8ea2d5c9,8ea2d5c9v 92b5 e98ab5 92b5 000092b5 e8a1 e8a1 e8a1 e8a1 e8a1 e8a1 e8a1 -10925 e8a2 e8a2 e8a2 * * 554a 8ea2d5ca,8ea2d5cav 92e1 e98ba1 92e1 000092e1 e8a2 e8a2 e8a2 e8a2 e8a2 e8a2 e8a2 -10926 ebf1 ebf1 ebf1 * * 554b 8ea2d5cb,8ea2d5cbv 9325 e98ca5 9325 00009325 ebf1 ebf1 ebf1 ebf1 ebf1 ebf1 ebf1 -10927 e8a3 e8a3 e8a3 * * 554c 8ea2d5cc,8ea2d5ccv 92c6 e98b86 92c6 000092c6 e8a3 e8a3 e8a3 e8a3 e8a3 e8a3 e8a3 -10928 e8a4 e8a4 e8a4 * * 554d 8ea2d5cd,8ea2d5cdv 92b4 e98ab4 92b4 000092b4 e8a4 e8a4 e8a4 e8a4 e8a4 e8a4 e8a4 -10929 e8a5 e8a5 e8a5 * * 554e 8ea2d5ce,8ea2d5cev 957c e995bc 957c 0000957c e8a5 e8a5 e8a5 e8a5 e8a5 e8a5 e8a5 -10930 e8a6 e8a6 e8a6 * * 554f 8ea2d5cf,8ea2d5cfv 95ac e996ac 95ac 000095ac e8a6 e8a6 e8a6 e8a6 e8a6 e8a6 e8a6 -10931 e8a7 e8a7 e8a7 * * 5550 8ea2d5d0,8ea2d5d0v 95ab e996ab 95ab 000095ab e8a7 e8a7 e8a7 e8a7 e8a7 e8a7 e8a7 -10932 e8a8 e8a8 e8a8 * * 5551 8ea2d5d1,8ea2d5d1v 95ae e996ae 95ae 000095ae e8a8 e8a8 e8a8 e8a8 e8a8 e8a8 e8a8 -10933 e8a9 e8a9 e8a9 * * 5552 8ea2d5d2,8ea2d5d2v 95b0 e996b0 95b0 000095b0 e8a9 e8a9 e8a9 e8a9 e8a9 e8a9 e8a9 -10934 e8aa e8aa e8aa * * 5553 8ea2d5d3,8ea2d5d3v 96a4 e99aa4 96a4 000096a4 e8aa e8aa e8aa e8aa e8aa e8aa e8aa -10935 e8ab e8ab e8ab * * 5554 8ea2d5d4,8ea2d5d4v 96a2 e99aa2 96a2 000096a2 e8ab e8ab e8ab e8ab e8ab e8ab e8ab -10936 e8ac e8ac e8ac * * 5555 8ea2d5d5,8ea2d5d5v 96d3 e99b93 96d3 000096d3 e8ac e8ac e8ac e8ac e8ac e8ac e8ac -10937 e8ad e8ad e8ad * * 5556 8ea2d5d6,8ea2d5d6v 9705 e99c85 9705 00009705 e8ad e8ad e8ad e8ad e8ad e8ad e8ad -10938 e8ae e8ae e8ae * * 5557 8ea2d5d7,8ea2d5d7v 9708 e99c88 9708 00009708 e8ae e8ae e8ae e8ae e8ae e8ae e8ae -10939 e8af e8af e8af * * 5558 8ea2d5d8,8ea2d5d8v 9702 e99c82 9702 00009702 e8af e8af e8af e8af e8af e8af e8af -10940 e8b0 e8b0 e8b0 * * 5559 8ea2d5d9,8ea2d5d9v 975a e99d9a 975a 0000975a e8b0 e8b0,fac8 e8b0 e8b0 e8b0 e8b0 e8b0 -10941 e8b1 e8b1 e8b1 * * 555a 8ea2d5da,8ea2d5dav 978a e99e8a 978a 0000978a e8b1 e8b1 e8b1 e8b1 e8b1 e8b1 e8b1 -10942 e8b2 e8b2 e8b2 * * 555b 8ea2d5db,8ea2d5dbv 978e e99e8e 978e 0000978e e8b2 e8b2 e8b2 e8b2 e8b2 e8b2 e8b2 -10943 e8b3 e8b3 e8b3 * * 555c 8ea2d5dc,8ea2d5dcv 9788 e99e88 9788 00009788 e8b3 e8b3 e8b3 e8b3 e8b3 e8b3 e8b3 -10944 e8b4 e8b4 e8b4 * * 555d 8ea2d5dd,8ea2d5ddv 97d0 e99f90 97d0 000097d0 e8b4 e8b4 e8b4 e8b4 e8b4 e8b4 e8b4 -10945 e8b5 e8b5 e8b5 * * 555e 8ea2d5de,8ea2d5dev 97cf e99f8f 97cf 000097cf e8b5 e8b5 e8b5 e8b5 e8b5 e8b5 e8b5 -10946 e8b6 e8b6 e8b6 * * 555f 8ea2d5df,8ea2d5dfv 981e e9a09e 981e 0000981e e8b6 e8b6 e8b6 e8b6 e8b6 e8b6 e8b6 -10947 e8b7 e8b7 e8b7 * * 5560 8ea2d5e0,8ea2d5e0v 981d e9a09d 981d 0000981d e8b7 e8b7 e8b7 e8b7 e8b7 e8b7 e8b7 -10948 e8b8 e8b8 e8b8 * * 5561 8ea2d5e1,8ea2d5e1v 9826 e9a0a6 9826 00009826 e8b8 e8b8 e8b8 e8b8 e8b8 e8b8 e8b8 -10949 e8b9 e8b9 e8b9 * * 5562 8ea2d5e2,8ea2d5e2v 9829 e9a0a9 9829 00009829 e8b9 e8b9 e8b9 e8b9 e8b9 e8b9 e8b9 -10950 e8ba e8ba e8ba * * 5563 8ea2d5e3,8ea2d5e3v 9828 e9a0a8 9828 00009828 e8ba e8ba e8ba e8ba e8ba e8ba e8ba -10951 e8bb e8bb e8bb * * 5564 8ea2d5e4,8ea2d5e4v 9820 e9a0a0 9820 00009820 e8bb e8bb e8bb e8bb e8bb e8bb e8bb -10952 e8bc e8bc e8bc * * 5565 8ea2d5e5,8ea2d5e5v 981b e9a09b 981b 0000981b e8bc e8bc e8bc e8bc e8bc e8bc e8bc -10953 e8bd e8bd e8bd * * 5566 8ea2d5e6,8ea2d5e6v 9827 e9a0a7 9827 00009827 e8bd e8bd e8bd e8bd e8bd e8bd e8bd -10954 e8be e8be e8be * * 5567 8ea2d5e7,8ea2d5e7v 98b2 e9a2b2 98b2 000098b2 e8be e8be e8be e8be e8be e8be e8be -10955 e8bf e8bf e8bf * * 5568 8ea2d5e8,8ea2d5e8v 9908 e9a488 9908 00009908 e8bf e8bf e8bf e8bf e8bf e8bf e8bf -10956 e8c0 e8c0 e8c0 * * 5569 8ea2d5e9,8ea2d5e9v 98fa e9a3ba 98fa 000098fa e8c0 e8c0 e8c0 e8c0 e8c0 e8c0 e8c0 -10957 e8c1 e8c1 e8c1 * * 556a 8ea2d5ea,8ea2d5eav 9911 e9a491 9911 00009911 e8c1 e8c1 e8c1 e8c1 e8c1 e8c1 e8c1 -10958 e8c2 e8c2 e8c2 * * 556b 8ea2d5eb,8ea2d5ebv 9914 e9a494 9914 00009914 e8c2 e8c2 e8c2 e8c2 e8c2 e8c2 e8c2 -10959 e8c3 e8c3 e8c3 * * 556c 8ea2d5ec,8ea2d5ecv 9916 e9a496 9916 00009916 e8c3 e8c3 e8c3 e8c3 e8c3 e8c3 e8c3 -10960 e8c4 e8c4 e8c4 * * 556d 8ea2d5ed,8ea2d5edv 9917 e9a497 9917 00009917 e8c4 e8c4 e8c4 e8c4 e8c4 e8c4 e8c4 -10961 e8c5 e8c5 e8c5 * * 556e 8ea2d5ee,8ea2d5eev 9915 e9a495 9915 00009915 e8c5 e8c5 e8c5 e8c5 e8c5 e8c5 e8c5 -10962 e8c6 e8c6 e8c6 * * 556f 8ea2d5ef,8ea2d5efv 99dc e9a79c 99dc 000099dc e8c6 e8c6 e8c6 e8c6 e8c6 e8c6 e8c6 -10963 e8c7 e8c7 e8c7 * * 5570 8ea2d5f0,8ea2d5f0v 99cd e9a78d 99cd 000099cd e8c7 e8c7 e8c7 e8c7 e8c7 e8c7 e8c7 -10964 e8c8 e8c8 e8c8 * * 5571 8ea2d5f1,8ea2d5f1v 99cf e9a78f 99cf 000099cf e8c8 e8c8 e8c8 e8c8 e8c8 e8c8 e8c8 -10965 e8c9 e8c9 e8c9 * * 5572 8ea2d5f2,8ea2d5f2v 99d3 e9a793 99d3 000099d3 e8c9 e8c9 e8c9 e8c9 e8c9 e8c9 e8c9 -10966 e8ca e8ca e8ca * * 5573 8ea2d5f3,8ea2d5f3v 99d4 e9a794 99d4 000099d4 e8ca e8ca e8ca e8ca e8ca e8ca e8ca -10967 e8cb e8cb e8cb * * 5574 8ea2d5f4,8ea2d5f4v 99ce e9a78e 99ce 000099ce e8cb e8cb e8cb e8cb e8cb e8cb e8cb -10968 e8cc e8cc e8cc * * 5575 8ea2d5f5,8ea2d5f5v 99c9 e9a789 99c9 000099c9 e8cc e8cc e8cc e8cc e8cc e8cc e8cc -10969 e8cd e8cd e8cd * * 5576 8ea2d5f6,8ea2d5f6v 99d6 e9a796,eeadae 99d6,eb6e 000099d6,0000eb6e 9bc6,e8cd e8cd e8cd e8cd e8cd e8cd 9bc6,e8cd -10970 e8ce e8ce e8ce * * 5577 8ea2d5f7,8ea2d5f7v 99d8 e9a798 99d8 000099d8 e8ce e8ce e8ce e8ce e8ce e8ce e8ce -10971 e8cf e8cf e8cf * * 5578 8ea2d5f8,8ea2d5f8v 99cb e9a78b 99cb 000099cb e8cf e8cf e8cf e8cf e8cf e8cf e8cf -10972 e8d0 e8d0 e8d0 * * 5579 8ea2d5f9,8ea2d5f9v 99d7 e9a797 99d7 000099d7 e8d0 e8d0 e8d0 e8d0 e8d0 e8d0 e8d0 -10973 e8d1 e8d1 e8d1 * * 557a 8ea2d5fa,8ea2d5fav 99cc e9a78c 99cc 000099cc e8d1 e8d1 e8d1 e8d1 e8d1 e8d1 e8d1 -10974 e8d2 e8d2 e8d2 * * 557b 8ea2d5fb,8ea2d5fbv 9ab3 e9aab3 9ab3 00009ab3 e8d2 e8d2 e8d2 e8d2 e8d2 e8d2 e8d2 -10975 e8d3 e8d3 e8d3 * * 557c 8ea2d5fc,8ea2d5fcv 9aec e9abac 9aec 00009aec e8d3 e8d3 e8d3 e8d3 e8d3 e8d3 e8d3 -10976 e8d4 e8d4 e8d4 * * 557d 8ea2d5fd,8ea2d5fdv 9aeb e9abab 9aeb 00009aeb e8d4 e8d4 e8d4 e8d4 e8d4 e8d4 e8d4 -10977 e8d5 e8d5 e8d5 * * 557e 8ea2d5fe,8ea2d5fev 9af3 e9abb3 9af3 00009af3 e8d5 e8d5 e8d5 e8d5 e8d5 e8d5 e8d5 -10978 e8d6 e8d6 e8d6 * * 5621 8ea2d6a1,8ea2d6a1v 9af2 e9abb2 9af2 00009af2 e8d6 e8d6 e8d6 e8d6 e8d6 e8d6 e8d6 -10979 e8d7 e8d7 e8d7 * * 5622 8ea2d6a2,8ea2d6a2v 9af1 e9abb1 9af1 00009af1 e8d7 e8d7 e8d7 e8d7 e8d7 e8d7 e8d7 -10980 e8d8 e8d8 e8d8 * * 5623 8ea2d6a3,8ea2d6a3v 9b46 e9ad86 9b46 00009b46 e8d8 e8d8 e8d8 e8d8 e8d8 e8d8 e8d8 -10981 e8d9 e8d9 e8d9 * * 5624 8ea2d6a4,8ea2d6a4v 9b43 e9ad83 9b43 00009b43 e8d9 e8d9 e8d9 e8d9 e8d9 e8d9 e8d9 -10982 e8da e8da e8da * * 5625 8ea2d6a5,8ea2d6a5v 9b67 e9ada7 9b67 00009b67 e8da e8da e8da e8da e8da e8da e8da -10983 e8db e8db e8db * * 5626 8ea2d6a6,8ea2d6a6v 9b74 e9adb4 9b74 00009b74 e8db e8db e8db e8db e8db e8db e8db -10984 e8dc e8dc e8dc * * 5627 8ea2d6a7,8ea2d6a7v 9b71 e9adb1 9b71 00009b71 e8dc e8dc e8dc e8dc e8dc e8dc e8dc -10985 e8dd e8dd e8dd * * 5628 8ea2d6a8,8ea2d6a8v 9b66 e9ada6 9b66 00009b66 e8dd e8dd e8dd e8dd e8dd e8dd e8dd -10986 e8de e8de e8de * * 5629 8ea2d6a9,8ea2d6a9v 9b76 e9adb6 9b76 00009b76 e8de e8de e8de e8de e8de e8de e8de -10987 e8df e8df e8df * * 562a 8ea2d6aa,8ea2d6aav 9b75 e9adb5 9b75 00009b75 e8df e8df e8df e8df e8df e8df e8df -10988 e8e0 e8e0 e8e0 * * 562b 8ea2d6ab,8ea2d6abv 9b70 e9adb0 9b70 00009b70 e8e0 e8e0 e8e0 e8e0 e8e0 e8e0 e8e0 -10989 e8e1 e8e1 e8e1 * * 562c 8ea2d6ac,8ea2d6acv 9b68 e9ada8 9b68 00009b68 e8e1 e8e1 e8e1 e8e1 e8e1 e8e1 e8e1 -10990 e8e2 e8e2 e8e2 * * 562d 8ea2d6ad,8ea2d6adv 9b64 e9ada4 9b64 00009b64 e8e2 e8e2 e8e2 e8e2 e8e2 e8e2 e8e2 -10991 e8e3 e8e3 e8e3 * * 562e 8ea2d6ae,8ea2d6aev 9b6c e9adac 9b6c 00009b6c e8e3 e8e3 e8e3 e8e3 e8e3 e8e3 e8e3 -10992 e8e4 e8e4 e8e4 * * 562f 8ea2d6af,8ea2d6afv 9cfc e9b3bc 9cfc 00009cfc e8e4 e8e4 e8e4 e8e4 e8e4 e8e4 e8e4 -10993 e8e5 e8e5 e8e5 * * 5630 8ea2d6b0,8ea2d6b0v 9cfa e9b3ba 9cfa 00009cfa e8e5 e8e5 e8e5 e8e5 e8e5 e8e5 e8e5 -10994 e8e6 e8e6 e8e6 * * 5631 8ea2d6b1,8ea2d6b1v 9cfd e9b3bd 9cfd 00009cfd e8e6 e8e6 e8e6 e8e6 e8e6 e8e6 e8e6 -10995 e8e7 e8e7 e8e7 * * 5632 8ea2d6b2,8ea2d6b2v 9cff e9b3bf 9cff 00009cff e8e7 e8e7 e8e7 e8e7 e8e7 e8e7 e8e7 -10996 e8e8 e8e8 e8e8 * * 5633 8ea2d6b3,8ea2d6b3v 9cf7 e9b3b7 9cf7 00009cf7 e8e8 e8e8 e8e8 e8e8 e8e8 e8e8 e8e8 -10997 e8e9 e8e9 e8e9 * * 5634 8ea2d6b4,8ea2d6b4v 9d07 e9b487 9d07 00009d07 e8e9 e8e9 e8e9 e8e9 e8e9 e8e9 e8e9 -10998 e8ea e8ea e8ea * * 5635 8ea2d6b5,8ea2d6b5v 9d00 e9b480 9d00 00009d00 e8ea e8ea e8ea e8ea e8ea e8ea e8ea -10999 e8eb e8eb e8eb * * 5636 8ea2d6b6,8ea2d6b6v 9cf9 e9b3b9 9cf9 00009cf9 e8eb e8eb e8eb e8eb e8eb e8eb e8eb -11000 e8ec e8ec e8ec * * 5637 8ea2d6b7,8ea2d6b7v 9cfb e9b3bb 9cfb 00009cfb e8ec e8ec e8ec e8ec e8ec e8ec e8ec -11001 e8ed e8ed e8ed * * 5638 8ea2d6b8,8ea2d6b8v 9d08 e9b488 9d08 00009d08 e8ed e8ed e8ed e8ed e8ed e8ed e8ed -11002 e8ee e8ee e8ee * * 5639 8ea2d6b9,8ea2d6b9v 9d05 e9b485 9d05 00009d05 e8ee e8ee e8ee e8ee e8ee e8ee e8ee -11003 e8ef e8ef e8ef * * 563a 8ea2d6ba,8ea2d6bav 9d04 e9b484 9d04 00009d04 e8ef e8ef e8ef e8ef e8ef e8ef e8ef -11004 e8f0 e8f0 e8f0 * * 563b 8ea2d6bb,8ea2d6bbv 9e83 e9ba83 9e83 00009e83 e8f0 e8f0 e8f0 e8f0 e8f0 e8f0 e8f0 -11005 e8f1 e8f1 e8f1 * * 563c 8ea2d6bc,8ea2d6bcv 9ed3 e9bb93 9ed3 00009ed3 e8f1 e8f1 e8f1 e8f1 e8f1 e8f1 e8f1 -11006 e8f2 e8f2 e8f2 * * 563d 8ea2d6bd,8ea2d6bdv 9f0f e9bc8f 9f0f 00009f0f e8f2 e8f2 e8f2 e8f2 e8f2 e8f2 e8f2 -11007 e8f3 e8f3 e8f3 * * 563e 8ea2d6be,8ea2d6bev 9f10 e9bc90 9f10 00009f10 e8f3 e8f3 e8f3 e8f3 e8f3 e8f3 e8f3 -11008 e8f4 e8f4 e8f4 * * 563f 8ea2d6bf,8ea2d6bfv 511c e5849c 511c 0000511c e8f4 e8f4 e8f4 e8f4 e8f4 e8f4 e8f4 -11009 e8f5 e8f5 e8f5 * * 5640 8ea2d6c0,8ea2d6c0v 5113 e58493 5113 00005113 e8f5 e8f5 e8f5 e8f5 e8f5 e8f5 e8f5 -11010 e8f6 e8f6 e8f6 * * 5641 8ea2d6c1,8ea2d6c1v 5117 e58497 5117 00005117 e8f6 e8f6 e8f6 e8f6 e8f6 e8f6 e8f6 -11011 e8f7 e8f7 e8f7 * * 5642 8ea2d6c2,8ea2d6c2v 511a e5849a 511a 0000511a e8f7 e8f7 e8f7 e8f7 e8f7 e8f7 e8f7 -11012 e8f8 e8f8 e8f8 * * 5643 8ea2d6c3,8ea2d6c3v 5111 e58491 5111 00005111 e8f8 e8f8 e8f8 e8f8 e8f8 e8f8 e8f8 -11013 e8f9 e8f9 e8f9 * * 5644 8ea2d6c4,8ea2d6c4v 51de e5879e 51de 000051de e8f9 e8f9 e8f9 e8f9 e8f9 e8f9 e8f9 -11014 e8fa e8fa e8fa * * 5645 8ea2d6c5,8ea2d6c5v 5334 e58cb4 5334 00005334 e8fa e8fa e8fa e8fa e8fa e8fa e8fa -11015 e8fb e8fb e8fb * * 5646 8ea2d6c6,8ea2d6c6v 53e1 e58fa1 53e1 000053e1 e8fb e8fb e8fb e8fb e8fb e8fb e8fb -11016 e8fc e8fc e8fc * * 5647 8ea2d6c7,8ea2d6c7v 5670 e599b0 5670 00005670 e8fc e8fc e8fc e8fc e8fc e8fc e8fc -11017 e8fd e8fd e8fd * * 5648 8ea2d6c8,8ea2d6c8v 5660 e599a0 5660 00005660 e8fd e8fd e8fd e8fd e8fd e8fd e8fd -11018 e8fe e8fe e8fe * * 5649 8ea2d6c9,8ea2d6c9v 566e e599ae 566e 0000566e e8fe e8fe e8fe e8fe e8fe e8fe e8fe -11019 e940 e940 e940 * * 564a 8ea2d6ca,8ea2d6cav 5673 e599b3 5673 00005673 e940 e940 e940 e940 e940 e940 e940 -11020 e941 e941 e941 * * 564b 8ea2d6cb,8ea2d6cbv 5666 e599a6 5666 00005666 e941 e941 e941 e941 e941 e941 e941 -11021 e942 e942 e942 * * 564c 8ea2d6cc,8ea2d6ccv 5663 e599a3 5663 00005663 e942 e942 e942 e942 e942 e942 e942 -11022 e943 e943 e943 * * 564d 8ea2d6cd,8ea2d6cdv 566d e599ad 566d 0000566d e943 e943 e943 e943 e943 e943 e943 -11023 e944 e944 e944 * * 564e 8ea2d6ce,8ea2d6cev 5672 e599b2 5672 00005672 e944 e944 e944 e944 e944 e944 e944 -11024 e945 e945 e945 * * 564f 8ea2d6cf,8ea2d6cfv 565e e5999e 565e 0000565e e945 e945 e945 e945 e945 e945 e945 -11025 e946 e946 e946 * * 5650 8ea2d6d0,8ea2d6d0v 5677 e599b7 5677 00005677 e946 e946 e946 e946 e946 e946 e946 -11026 e947 e947 e947 * * 5651 8ea2d6d1,8ea2d6d1v 571c e59c9c 571c 0000571c e947 e947 e947 e947 e947 e947 e947 -11027 e948 e948 e948 * * 5652 8ea2d6d2,8ea2d6d2v 571b e59c9b 571b 0000571b e948 e948 e948 e948 e948 e948 e948 -11028 e949 e949 e949 * * 5653 8ea2d6d3,8ea2d6d3v 58c8 e5a388 58c8 000058c8 e949 e949 e949 e949 e949 e949 e949 -11029 e94a e94a e94a * * 5654 8ea2d6d4,8ea2d6d4v 58bd e5a2bd 58bd 000058bd e94a e94a e94a e94a e94a e94a e94a -11030 e94b e94b e94b * * 5655 8ea2d6d5,8ea2d6d5v 58c9 e5a389 58c9 000058c9 e94b e94b e94b e94b e94b e94b e94b -11031 e94c e94c e94c * * 5656 8ea2d6d6,8ea2d6d6v 58bf e5a2bf 58bf 000058bf e94c e94c e94c e94c e94c e94c e94c -11032 e94d e94d e94d * * 5657 8ea2d6d7,8ea2d6d7v 58ba e5a2ba 58ba 000058ba e94d e94d e94d e94d e94d e94d e94d -11033 e94e e94e e94e * * 5658 8ea2d6d8,8ea2d6d8v 58c2 e5a382 58c2 000058c2 e94e e94e e94e e94e e94e e94e e94e -11034 e94f e94f e94f * * 5659 8ea2d6d9,8ea2d6d9v 58bc e5a2bc 58bc 000058bc e94f e94f e94f e94f e94f e94f e94f -11035 e950 e950 e950 * * 565a 8ea2d6da,8ea2d6dav 58c6 e5a386 58c6 000058c6 e950 e950 e950 e950 e950 e950 e950 -11036 e951 e951 e951 * * 565b 8ea2d6db,8ea2d6dbv 5b17 e5ac97 5b17 00005b17 e951 e951 e951 e951 e951 e951 e951 -11037 e952 e952 e952 * * 565c 8ea2d6dc,8ea2d6dcv 5b19 e5ac99 5b19 00005b19 e952 e952 e952 e952 e952 e952 e952 -11038 e953 e953 e953 * * 565d 8ea2d6dd,8ea2d6ddv 5b1b e5ac9b 5b1b 00005b1b e953 e953 e953 e953 e953 e953 e953 -11039 e954 e954 e954 * * 565e 8ea2d6de,8ea2d6dev 5b21 e5aca1 5b21 00005b21 e954 e954 e954 e954 e954 e954 e954 -11040 e955 e955 e955 * * 565f 8ea2d6df,8ea2d6dfv 5b14 e5ac94 5b14 00005b14 e955 e955 e955 e955 e955 e955 e955 -11041 e956 e956 e956 * * 5660 8ea2d6e0,8ea2d6e0v 5b13 e5ac93 5b13 00005b13 e956 e956 e956 e956 e956 e956 e956 -11042 e957 e957 e957 * * 5661 8ea2d6e1,8ea2d6e1v 5b10 e5ac90 5b10 00005b10 e957 e957 e957 e957 e957 e957 e957 -11043 e958 e958 e958 * * 5662 8ea2d6e2,8ea2d6e2v 5b16 e5ac96 5b16 00005b16 e958 e958 e958 e958 e958 e958 e958 -11044 e959 e959 e959 * * 5663 8ea2d6e3,8ea2d6e3v 5b28 e5aca8,eea293 5b28,e893 00005b28,0000e893 96fc,e959 e959 e959 e959 e959 e959 96fc,e959 -11045 e95a e95a e95a * * 5664 8ea2d6e4,8ea2d6e4v 5b1a e5ac9a 5b1a 00005b1a e95a e95a e95a e95a e95a e95a e95a -11046 e95b e95b e95b * * 5665 8ea2d6e5,8ea2d6e5v 5b20 e5aca0 5b20 00005b20 e95b e95b e95b e95b e95b e95b e95b -11047 e95c e95c e95c * * 5666 8ea2d6e6,8ea2d6e6v 5b1e e5ac9e 5b1e 00005b1e e95c e95c e95c e95c e95c e95c e95c -11048 e95d e95d e95d * * 5667 8ea2d6e7,8ea2d6e7v 5bef e5afaf 5bef 00005bef e95d e95d e95d e95d e95d e95d e95d -11049 e95e e95e e95e * * 5668 8ea2d6e8,8ea2d6e8v 5dac e5b6ac 5dac 00005dac e95e e95e e95e e95e e95e e95e e95e -11050 e95f e95f e95f * * 5669 8ea2d6e9,8ea2d6e9v 5db1 e5b6b1 5db1 00005db1 e95f e95f e95f e95f e95f e95f e95f -11051 e960 e960 e960 * * 566a 8ea2d6ea,8ea2d6eav 5da9 e5b6a9 5da9 00005da9 e960 e960 e960 e960 e960 e960 e960 -11052 e961 e961 e961 * * 566b 8ea2d6eb,8ea2d6ebv 5da7 e5b6a7 5da7 00005da7 e961 e961 e961 e961 e961 e961 e961 -11053 e962 e962 e962 * * 566c 8ea2d6ec,8ea2d6ecv 5db5 e5b6b5 5db5 00005db5 e962 e962 e962 e962 e962 e962 e962 -11054 e963 e963 e963 * * 566d 8ea2d6ed,8ea2d6edv 5db0 e5b6b0 5db0 00005db0 e963 e963 e963 e963 e963 e963 e963 -11055 e964 e964 e964 * * 566e 8ea2d6ee,8ea2d6eev 5dae e5b6ae 5dae 00005dae e964 e964 e964 e964 e964 e964 e964 -11056 e965 e965 e965 * * 566f 8ea2d6ef,8ea2d6efv 5daa e5b6aa 5daa 00005daa e965 e965 e965 e965 e965 e965 e965 -11057 e966 e966 e966 * * 5670 8ea2d6f0,8ea2d6f0v 5da8 e5b6a8 5da8 00005da8 e966 e966 e966 e966 e966 e966 e966 -11058 e967 e967 e967 * * 5671 8ea2d6f1,8ea2d6f1v 5db2 e5b6b2 5db2 00005db2 e967 e967 e967 e967 e967 e967 e967 -11059 e968 e968 e968 * * 5672 8ea2d6f2,8ea2d6f2v 5dad e5b6ad 5dad 00005dad e968 e968 e968 e968 e968 e968 e968 -11060 e969 e969 e969 * * 5673 8ea2d6f3,8ea2d6f3v 5daf e5b6af 5daf 00005daf e969 e969 e969 e969 e969 e969 e969 -11061 e96a e96a e96a * * 5674 8ea2d6f4,8ea2d6f4v 5db4 e5b6b4 5db4 00005db4 e96a e96a e96a e96a e96a e96a e96a -11062 e96b e96b e96b * * 5675 8ea2d6f5,8ea2d6f5v 5e67 e5b9a7 5e67 00005e67 e96b e96b e96b e96b e96b e96b e96b -11063 e96c e96c e96c * * 5676 8ea2d6f6,8ea2d6f6v 5e68 e5b9a8 5e68 00005e68 e96c e96c e96c e96c e96c e96c e96c -11064 e96d e96d e96d * * 5677 8ea2d6f7,8ea2d6f7v 5e66 e5b9a6 5e66 00005e66 e96d e96d e96d e96d e96d e96d e96d -11065 e96e e96e e96e * * 5678 8ea2d6f8,8ea2d6f8v 5e6f e5b9af 5e6f 00005e6f e96e e96e e96e e96e e96e e96e e96e -11066 e96f e96f e96f * * 5679 8ea2d6f9,8ea2d6f9v 5ee9 e5bba9 5ee9 00005ee9 e96f e96f e96f e96f e96f e96f e96f -11067 e970 e970 e970 * * 567a 8ea2d6fa,8ea2d6fav 5ee7 e5bba7 5ee7 00005ee7 e970 e970 e970 e970 e970 e970 e970 -11068 e971 e971 e971 * * 567b 8ea2d6fb,8ea2d6fbv 5ee6 e5bba6 5ee6 00005ee6 e971 e971 e971 e971 e971 e971 e971 -11069 e972 e972 e972 * * 567c 8ea2d6fc,8ea2d6fcv 5ee8 e5bba8 5ee8 00005ee8 e972 e972 e972 e972 e972 e972 e972 -11070 e973 e973 e973 * * 567d 8ea2d6fd,8ea2d6fdv 5ee5 e5bba5 5ee5 00005ee5 e973 e973 e973 e973 e973 e973 e973 -11071 e974 e974 e974 * * 567e 8ea2d6fe,8ea2d6fev 5f4b e5bd8b 5f4b 00005f4b e974 e974 e974 e974 e974 e974 e974 -11072 e975 e975 e975 * * 5721 8ea2d7a1,8ea2d7a1v 5fbc e5bebc 5fbc 00005fbc e975 e975,fc5d 91fa,e975 e975 e975 e975 e975 -11073 ecde ecde ecde * * 5722 8ea2d7a2,8ea2d7a2v 5fbb e5bebb 5fbb 00005fbb ecde ecde ecde ecde ecde ecde ecde -11074 e976 e976 e976 * * 5723 8ea2d7a3,8ea2d7a3v 619d e6869d 619d 0000619d e976 e976 e976 e976 e976 e976 e976 -11075 e977 e977 e977 * * 5724 8ea2d7a4,8ea2d7a4v 61a8 e686a8 61a8 000061a8 e977 e977 e977 e977 e977 e977 e977 -11076 e978 e978 e978 * * 5725 8ea2d7a5,8ea2d7a5v 6196 e68696 6196 00006196 e978 e978 e978 e978 e978 e978 e978 -11077 e979 e979 e979 * * 5726 8ea2d7a6,8ea2d7a6v 61c5 e68785 61c5 000061c5 e979 e979 e979 e979 e979 e979 e979 -11078 e97a e97a e97a * * 5727 8ea2d7a7,8ea2d7a7v 61b4 e686b4 61b4 000061b4 e97a e97a e97a e97a e97a e97a e97a -11079 e97b e97b e97b * * 5728 8ea2d7a8,8ea2d7a8v 61c6 e68786 61c6 000061c6 e97b e97b e97b e97b e97b e97b e97b -11080 e97c e97c e97c * * 5729 8ea2d7a9,8ea2d7a9v 61c1 e68781 61c1 000061c1 e97c e97c e97c e97c e97c e97c e97c -11081 e97d e97d e97d * * 572a 8ea2d7aa,8ea2d7aav 61cc e6878c 61cc 000061cc e97d e97d e97d e97d e97d e97d e97d -11082 e97e e97e e97e * * 572b 8ea2d7ab,8ea2d7abv 61ba e686ba 61ba 000061ba e97e e97e e97e e97e e97e e97e e97e -11083 e9a1 e9a1 e9a1 * * 572c 8ea2d7ac,8ea2d7acv 61bf e686bf 61bf 000061bf e9a1 e9a1 e9a1 e9a1 e9a1 e9a1 e9a1 -11084 e9a2 e9a2 e9a2 * * 572d 8ea2d7ad,8ea2d7adv 61b8 e686b8 61b8 000061b8 e9a2 e9a2 e9a2 e9a2 e9a2 e9a2 e9a2 -11085 e9a3 e9a3 e9a3 * * 572e 8ea2d7ae,8ea2d7aev 618c e6868c 618c 0000618c e9a3 e9a3 e9a3 e9a3 e9a3 e9a3 e9a3 -11086 e9a4 e9a4 e9a4 * * 572f 8ea2d7af,8ea2d7afv 64d7 e69397 64d7 000064d7 e9a4 e9a4 e9a4 e9a4 e9a4 e9a4 e9a4 -11087 e9a5 e9a5 e9a5 * * 5730 8ea2d7b0,8ea2d7b0v 64d6 e69396 64d6 000064d6 e9a5 e9a5 e9a5 e9a5 e9a5 e9a5 e9a5 -11088 e9a6 e9a6 e9a6 * * 5731 8ea2d7b1,8ea2d7b1v 64d0 e69390 64d0 000064d0 e9a6 e9a6 e9a6 e9a6 e9a6 e9a6 e9a6 -11089 e9a7 e9a7 e9a7 * * 5732 8ea2d7b2,8ea2d7b2v 64cf e6938f 64cf 000064cf e9a7 e9a7 e9a7 e9a7 e9a7 e9a7 e9a7 -11090 e9a8 e9a8 e9a8 * * 5733 8ea2d7b3,8ea2d7b3v 64c9 e69389 64c9 000064c9 e9a8 e9a8 e9a8 e9a8 e9a8 e9a8 e9a8 -11091 e9a9 e9a9 e9a9 * * 5734 8ea2d7b4,8ea2d7b4v 64bd e692bd 64bd 000064bd e9a9 e9a9 e9a9 e9a9 e9a9 e9a9 e9a9 -11092 e9aa e9aa e9aa * * 5735 8ea2d7b5,8ea2d7b5v 6489 e69289 6489 00006489 e9aa e9aa e9aa e9aa e9aa e9aa e9aa -11093 e9ab e9ab e9ab * * 5736 8ea2d7b6,8ea2d7b6v 64c3 e69383 64c3 000064c3 e9ab e9ab e9ab e9ab e9ab e9ab e9ab -11094 e9ac e9ac e9ac * * 5737 8ea2d7b7,8ea2d7b7v 64db e6939b 64db 000064db e9ac e9ac e9ac e9ac e9ac e9ac e9ac -11095 e9ad e9ad e9ad * * 5738 8ea2d7b8,8ea2d7b8v 64f3 e693b3 64f3 000064f3 e9ad e9ad e9ad e9ad e9ad e9ad e9ad -11096 e9ae e9ae e9ae * * 5739 8ea2d7b9,8ea2d7b9v 64d9 e69399 64d9 000064d9 e9ae e9ae e9ae e9ae e9ae e9ae e9ae -11097 e9af e9af e9af * * 573a 8ea2d7ba,8ea2d7bav 6533 e694b3 6533 00006533 e9af e9af e9af e9af e9af e9af e9af -11098 e9b0 e9b0 e9b0 * * 573b 8ea2d7bb,8ea2d7bbv 657f e695bf 657f 0000657f e9b0 e9b0 e9b0 e9b0 e9b0 e9b0 e9b0 -11099 e9b1 e9b1 e9b1 * * 573c 8ea2d7bc,8ea2d7bcv 657c e695bc 657c 0000657c e9b1 e9b1 e9b1 e9b1 e9b1 e9b1 e9b1 -11100 e9b2 e9b2 e9b2 * * 573d 8ea2d7bd,8ea2d7bdv 65a2 e696a2 65a2 000065a2 e9b2 e9b2 e9b2 e9b2 e9b2 e9b2 e9b2 -11101 e9b3 e9b3 e9b3 * * 573e 8ea2d7be,8ea2d7bev 66c8 e69b88 66c8 000066c8 e9b3 e9b3 e9b3 e9b3 e9b3 e9b3 e9b3 -11102 e9b4 e9b4 e9b4 * * 573f 8ea2d7bf,8ea2d7bfv 66be e69abe 66be 000066be e9b4 e9b4 e9b4 e9b4 e9b4 e9b4 e9b4 -11103 e9b5 e9b5 e9b5 * * 5740 8ea2d7c0,8ea2d7c0v 66c0 e69b80 66c0 000066c0 e9b5 e9b5 e9b5 e9b5 e9b5 e9b5 e9b5 -11104 e9b6 e9b6 e9b6 * * 5741 8ea2d7c1,8ea2d7c1v 66ca e69b8a 66ca 000066ca e9b6 e9b6 e9b6 e9b6 e9b6 e9b6 e9b6 -11105 e9b7 e9b7 e9b7 * * 5742 8ea2d7c2,8ea2d7c2v 66cb e69b8b 66cb 000066cb e9b7 e9b7 e9b7 e9b7 e9b7 e9b7 e9b7 -11106 e9b8 e9b8 e9b8 * * 5743 8ea2d7c3,8ea2d7c3v 66cf e69b8f 66cf 000066cf e9b8 e9b8 e9b8 e9b8 e9b8 e9b8 e9b8 -11107 e9b9 e9b9 e9b9 * * 5744 8ea2d7c4,8ea2d7c4v 66bd e69abd 66bd 000066bd e9b9 e9b9 e9b9 e9b9 e9b9 e9b9 e9b9 -11108 e9ba e9ba e9ba * * 5745 8ea2d7c5,8ea2d7c5v 66bb e69abb 66bb 000066bb e9ba e9ba e9ba e9ba e9ba e9ba e9ba -11109 e9bb e9bb e9bb * * 5746 8ea2d7c6,8ea2d7c6v 66ba e69aba 66ba 000066ba e9bb e9bb e9bb e9bb e9bb e9bb e9bb -11110 e9bc e9bc e9bc * * 5747 8ea2d7c7,8ea2d7c7v 66cc e69b8c 66cc 000066cc e9bc e9bc e9bc e9bc e9bc e9bc e9bc -11111 e9bd e9bd e9bd * * 5748 8ea2d7c8,8ea2d7c8v 6723 e69ca3 6723 00006723 e9bd e9bd e9bd e9bd e9bd e9bd e9bd -11112 e9be e9be e9be * * 5749 8ea2d7c9,8ea2d7c9v 6a34 e6a8b4 6a34 00006a34 e9be e9be e9be e9be e9be e9be e9be -11113 e9bf e9bf e9bf * * 574a 8ea2d7ca,8ea2d7cav 6a66 e6a9a6 6a66 00006a66 e9bf e9bf e9bf e9bf e9bf e9bf e9bf -11114 e9c0 e9c0 e9c0 * * 574b 8ea2d7cb,8ea2d7cbv 6a49 e6a989 6a49 00006a49 e9c0 e9c0 e9c0 e9c0 e9c0 e9c0 e9c0 -11115 e9c1 e9c1 e9c1 * * 574c 8ea2d7cc,8ea2d7ccv 6a67 e6a9a7 6a67 00006a67 e9c1 e9c1 e9c1 e9c1 e9c1 e9c1 e9c1 -11116 e9c2 e9c2 e9c2 * * 574d 8ea2d7cd,8ea2d7cdv 6a32 e6a8b2 6a32 00006a32 e9c2 e9c2 e9c2 e9c2 e9c2 e9c2 e9c2 -11117 e9c3 e9c3 e9c3 * * 574e 8ea2d7ce,8ea2d7cev 6a68 e6a9a8 6a68 00006a68 e9c3 e9c3 e9c3 e9c3 e9c3 e9c3 e9c3 -11118 e9c4 e9c4 e9c4 * * 574f 8ea2d7cf,8ea2d7cfv 6a3e e6a8be 6a3e 00006a3e e9c4 e9c4 e9c4 e9c4 e9c4 e9c4 e9c4 -11119 e9c5 e9c5 e9c5 * * 5750 8ea2d7d0,8ea2d7d0v 6a5d e6a99d 6a5d 00006a5d e9c5 e9c5 e9c5 e9c5 e9c5 e9c5 e9c5 -11120 e9c6 e9c6 e9c6 * * 5751 8ea2d7d1,8ea2d7d1v 6a6d e6a9ad 6a6d 00006a6d e9c6 e9c6 e9c6 e9c6 e9c6 e9c6 e9c6 -11121 e9c7 e9c7 e9c7 * * 5752 8ea2d7d2,8ea2d7d2v 6a76 e6a9b6 6a76 00006a76 e9c7 e9c7 e9c7 e9c7 e9c7 e9c7 e9c7 -11122 e9c8 e9c8 e9c8 * * 5753 8ea2d7d3,8ea2d7d3v 6a5b e6a99b 6a5b 00006a5b e9c8 e9c8 e9c8 e9c8 e9c8 e9c8 e9c8 -11123 e9c9 e9c9 e9c9 * * 5754 8ea2d7d4,8ea2d7d4v 6a51 e6a991 6a51 00006a51 e9c9 e9c9 e9c9 e9c9 e9c9 e9c9 e9c9 -11124 e9ca e9ca e9ca * * 5755 8ea2d7d5,8ea2d7d5v 6a28 e6a8a8 6a28 00006a28 e9ca e9ca e9ca e9ca e9ca e9ca e9ca -11125 e9cb e9cb e9cb * * 5756 8ea2d7d6,8ea2d7d6v 6a5a e6a99a 6a5a 00006a5a e9cb e9cb e9cb e9cb e9cb e9cb e9cb -11126 e9cc e9cc e9cc * * 5757 8ea2d7d7,8ea2d7d7v 6a3b e6a8bb 6a3b 00006a3b e9cc e9cc e9cc e9cc e9cc e9cc e9cc -11127 e9cd e9cd e9cd * * 5758 8ea2d7d8,8ea2d7d8v 6a3f e6a8bf 6a3f 00006a3f e9cd e9cd e9cd e9cd e9cd e9cd e9cd -11128 e9ce e9ce e9ce * * 5759 8ea2d7d9,8ea2d7d9v 6a41 e6a981 6a41 00006a41 e9ce e9ce e9ce e9ce e9ce e9ce e9ce -11129 e9cf e9cf e9cf * * 575a 8ea2d7da,8ea2d7dav 6a6a e6a9aa 6a6a 00006a6a e9cf e9cf e9cf e9cf e9cf e9cf e9cf -11130 e9d0 e9d0 e9d0 * * 575b 8ea2d7db,8ea2d7dbv 6a64 e6a9a4 6a64 00006a64 e9d0 e9d0 e9d0 e9d0 e9d0 e9d0 e9d0 -11131 e9d1 e9d1 e9d1 * * 575c 8ea2d7dc,8ea2d7dcv 6a50 e6a990 6a50 00006a50 e9d1 e9d1 e9d1 e9d1 e9d1 e9d1 e9d1 -11132 e9d2 e9d2 e9d2 * * 575d 8ea2d7dd,8ea2d7ddv 6a4f e6a98f 6a4f 00006a4f e9d2 e9d2 e9d2 e9d2 e9d2 e9d2 e9d2 -11133 e9d3 e9d3 e9d3 * * 575e 8ea2d7de,8ea2d7dev 6a54 e6a994 6a54 00006a54 e9d3 e9d3 e9d3 e9d3 e9d3 e9d3 e9d3 -11134 e9d4 e9d4 e9d4 * * 575f 8ea2d7df,8ea2d7dfv 6a6f e6a9af 6a6f 00006a6f e9d4 e9d4 e9d4 e9d4 e9d4 e9d4 e9d4 -11135 e9d5 e9d5 e9d5 * * 5760 8ea2d7e0,8ea2d7e0v 6a69 e6a9a9 6a69 00006a69 e9d5 e9d5 e9d5 e9d5 e9d5 e9d5 e9d5 -11136 e9d6 e9d6 e9d6 * * 5761 8ea2d7e1,8ea2d7e1v 6a60 e6a9a0 6a60 00006a60 e9d6 e9d6 e9d6 e9d6 e9d6 e9d6 e9d6 -11137 e9d7 e9d7 e9d7 * * 5762 8ea2d7e2,8ea2d7e2v 6a3c e6a8bc 6a3c 00006a3c e9d7 e9d7 e9d7 e9d7 e9d7 e9d7 e9d7 -11138 e9d8 e9d8 e9d8 * * 5763 8ea2d7e3,8ea2d7e3v 6a5e e6a99e 6a5e 00006a5e e9d8 e9d8 e9d8 e9d8 e9d8 e9d8 e9d8 -11139 e9d9 e9d9 e9d9 * * 5764 8ea2d7e4,8ea2d7e4v 6a56 e6a996 6a56 00006a56 e9d9 e9d9 e9d9 e9d9 e9d9 e9d9 e9d9 -11140 e9da e9da e9da * * 5765 8ea2d7e5,8ea2d7e5v 6a55 e6a995 6a55 00006a55 e9da e9da e9da e9da e9da e9da e9da -11141 e9db e9db e9db * * 5766 8ea2d7e6,8ea2d7e6v 6a4d e6a98d 6a4d 00006a4d e9db e9db e9db e9db e9db e9db e9db -11142 e9dc e9dc e9dc * * 5767 8ea2d7e7,8ea2d7e7v 6a4e e6a98e 6a4e 00006a4e e9dc e9dc e9dc e9dc e9dc e9dc e9dc -11143 e9dd e9dd e9dd * * 5768 8ea2d7e8,8ea2d7e8v 6a46 e6a986 6a46 00006a46 e9dd e9dd e9dd e9dd e9dd e9dd e9dd -11144 e9de e9de e9de * * 5769 8ea2d7e9,8ea2d7e9v 6b55 e6ad95 6b55 00006b55 e9de e9de e9de e9de e9de e9de e9de -11145 e9df e9df e9df * * 576a 8ea2d7ea,8ea2d7eav 6b54 e6ad94 6b54 00006b54 e9df e9df e9df e9df e9df e9df e9df -11146 e9e0 e9e0 e9e0 * * 576b 8ea2d7eb,8ea2d7ebv 6b56 e6ad96 6b56 00006b56 e9e0 e9e0 e9e0 e9e0 e9e0 e9e0 e9e0 -11147 e9e1 e9e1 e9e1 * * 576c 8ea2d7ec,8ea2d7ecv 6ba7 e6aea7 6ba7 00006ba7 e9e1 e9e1 e9e1 e9e1 e9e1 e9e1 e9e1 -11148 e9e2 e9e2 e9e2 * * 576d 8ea2d7ed,8ea2d7edv 6baa e6aeaa 6baa 00006baa e9e2 e9e2 e9e2 e9e2 e9e2 e9e2 e9e2 -11149 e9e3 e9e3 e9e3 * * 576e 8ea2d7ee,8ea2d7eev 6bab e6aeab 6bab 00006bab e9e3 e9e3 e9e3 e9e3 e9e3 e9e3 e9e3 -11150 e9e4 e9e4 e9e4 * * 576f 8ea2d7ef,8ea2d7efv 6bc8 e6af88 6bc8 00006bc8 e9e4 e9e4 e9e4 e9e4 e9e4 e9e4 e9e4 -11151 e9e5 e9e5 e9e5 * * 5770 8ea2d7f0,8ea2d7f0v 6bc7 e6af87 6bc7 00006bc7 e9e5 e9e5 e9e5 e9e5 e9e5 e9e5 e9e5 -11152 e9e6 e9e6 e9e6 * * 5771 8ea2d7f1,8ea2d7f1v 6c04 e6b084 6c04 00006c04 e9e6 e9e6 e9e6 e9e6 e9e6 e9e6 e9e6 -11153 e9e7 e9e7 e9e7 * * 5772 8ea2d7f2,8ea2d7f2v 6c03 e6b083 6c03 00006c03 e9e7 e9e7 e9e7 e9e7 e9e7 e9e7 e9e7 -11154 e9e8 e9e8 e9e8 * * 5773 8ea2d7f3,8ea2d7f3v 6c06 e6b086 6c06 00006c06 e9e8 e9e8 e9e8 e9e8 e9e8 e9e8 e9e8 -11155 e9e9 e9e9 e9e9 * * 5774 8ea2d7f4,8ea2d7f4v 6fad e6bead 6fad 00006fad e9e9 e9e9 e9e9 e9e9 e9e9 e9e9 e9e9 -11156 e9ea e9ea e9ea * * 5775 8ea2d7f5,8ea2d7f5v 6fcb e6bf8b 6fcb 00006fcb e9ea e9ea e9ea e9ea e9ea e9ea e9ea -11157 e9eb e9eb e9eb * * 5776 8ea2d7f6,8ea2d7f6v 6fa3 e6bea3 6fa3 00006fa3 e9eb e9eb e9eb e9eb e9eb e9eb e9eb -11158 e9ec e9ec e9ec * * 5777 8ea2d7f7,8ea2d7f7v 6fc7 e6bf87 6fc7 00006fc7 e9ec e9ec e9ec e9ec e9ec e9ec e9ec -11159 e9ed e9ed e9ed * * 5778 8ea2d7f8,8ea2d7f8v 6fbc e6bebc 6fbc 00006fbc e9ed e9ed e9ed e9ed e9ed e9ed e9ed -11160 e9ee e9ee e9ee * * 5779 8ea2d7f9,8ea2d7f9v 6fce e6bf8e 6fce 00006fce e9ee e9ee e9ee e9ee e9ee e9ee e9ee -11161 e9ef e9ef e9ef * * 577a 8ea2d7fa,8ea2d7fav 6fc8 e6bf88 6fc8 00006fc8 e9ef e9ef e9ef e9ef e9ef e9ef e9ef -11162 e9f0 e9f0 e9f0 * * 577b 8ea2d7fb,8ea2d7fbv 6f5e e6bd9e 6f5e 00006f5e e9f0 e9f0 e9f0 e9f0 e9f0 e9f0 e9f0 -11163 e9f1 e9f1 e9f1 * * 577c 8ea2d7fc,8ea2d7fcv 6fc4 e6bf84 6fc4 00006fc4 e9f1 e9f1 e9f1 e9f1 e9f1 e9f1 e9f1 -11164 e9f2 e9f2 e9f2 * * 577d 8ea2d7fd,8ea2d7fdv 6fbd e6bebd 6fbd 00006fbd e9f2 e9f2 e9f2 e9f2 e9f2 e9f2 e9f2 -11165 e9f3 e9f3 e9f3 * * 577e 8ea2d7fe,8ea2d7fev 6f9e e6be9e 6f9e 00006f9e e9f3 e9f3 e9f3 e9f3 e9f3 e9f3 e9f3 -11166 e9f4 e9f4 e9f4 * * 5821 8ea2d8a1,8ea2d8a1v 6fca e6bf8a 6fca 00006fca e9f4 e9f4 e9f4 e9f4 e9f4 e9f4 e9f4 -11167 e9f5 e9f5 e9f5 * * 5822 8ea2d8a2,8ea2d8a2v 6fa8 e6bea8 6fa8 00006fa8 e9f5 e9f5 e9f5 e9f5 e9f5 e9f5 e9f5 -11168 e9f6 e9f6 e9f6 * * 5823 8ea2d8a3,8ea2d8a3v 7004 e78084 7004 00007004 e9f6 e9f6 e9f6 e9f6 e9f6 e9f6 e9f6 -11169 e9f7 e9f7 e9f7 * * 5824 8ea2d8a4,8ea2d8a4v 6fa5 e6bea5 6fa5 00006fa5 e9f7 e9f7 e9f7 e9f7 e9f7 e9f7 e9f7 -11170 e9f8 e9f8 e9f8 * * 5825 8ea2d8a5,8ea2d8a5v 6fae e6beae 6fae 00006fae e9f8 e9f8 e9f8 e9f8 e9f8 e9f8 e9f8 -11171 e9f9 e9f9 e9f9 * * 5826 8ea2d8a6,8ea2d8a6v 6fba e6beba 6fba 00006fba e9f9 e9f9 e9f9 e9f9 e9f9 e9f9 e9f9 -11172 e9fa e9fa e9fa * * 5827 8ea2d8a7,8ea2d8a7v 6fac e6beac 6fac 00006fac e9fa e9fa e9fa e9fa e9fa e9fa e9fa -11173 e9fb e9fb e9fb * * 5828 8ea2d8a8,8ea2d8a8v 6faa e6beaa 6faa 00006faa e9fb e9fb e9fb e9fb e9fb e9fb e9fb -11174 e9fc e9fc e9fc * * 5829 8ea2d8a9,8ea2d8a9v 6fcf e6bf8f 6fcf 00006fcf e9fc e9fc e9fc e9fc e9fc e9fc e9fc -11175 e9fd e9fd e9fd * * 582a 8ea2d8aa,8ea2d8aav 6fbf e6bebf 6fbf 00006fbf e9fd e9fd e9fd e9fd e9fd e9fd e9fd -11176 e9fe e9fe e9fe * * 582b 8ea2d8ab,8ea2d8abv 6fb8 e6beb8 6fb8 00006fb8 e9fe e9fe e9fe e9fe e9fe e9fe e9fe -11177 ea40 ea40 ea40 * * 582c 8ea2d8ac,8ea2d8acv 6fa2 e6bea2 6fa2 00006fa2 ea40 ea40 ea40 ea40 ea40 ea40 ea40 -11178 ea41 ea41 ea41 * * 582d 8ea2d8ad,8ea2d8adv 6fc9 e6bf89 6fc9 00006fc9 ea41 ea41 ea41 ea41 ea41 ea41 ea41 -11179 ea42 ea42 ea42 * * 582e 8ea2d8ae,8ea2d8aev 6fab e6beab 6fab 00006fab ea42 ea42 ea42 ea42 ea42 ea42 ea42 -11180 ea43 ea43 ea43 * * 582f 8ea2d8af,8ea2d8afv 6fcd e6bf8d 6fcd 00006fcd ea43 ea43 ea43 ea43 ea43 ea43 ea43 -11181 ea44 ea44 ea44 * * 5830 8ea2d8b0,8ea2d8b0v 6faf e6beaf 6faf 00006faf ea44 ea44 ea44 ea44 ea44 ea44 ea44 -11182 ea45 ea45 ea45 * * 5831 8ea2d8b1,8ea2d8b1v 6fb2 e6beb2 6fb2 00006fb2 ea45 ea45 ea45 ea45 ea45 ea45 ea45 -11183 ea46 ea46 ea46 * * 5832 8ea2d8b2,8ea2d8b2v 6fb0 e6beb0 6fb0 00006fb0 ea46 ea46 ea46 ea46 ea46 ea46 ea46 -11184 ea47 ea47 ea47 * * 5833 8ea2d8b3,8ea2d8b3v 71c5 e78785 71c5 000071c5 ea47 ea47 ea47 ea47 ea47 ea47 ea47 -11185 ea48 ea48 ea48 * * 5834 8ea2d8b4,8ea2d8b4v 71c2 e78782 71c2 000071c2 ea48 ea48 ea48 ea48 ea48 ea48 ea48 -11186 ea49 ea49 ea49 * * 5835 8ea2d8b5,8ea2d8b5v 71bf e786bf 71bf 000071bf ea49 ea49 ea49 ea49 ea49 ea49 ea49 -11187 ea4a ea4a ea4a * * 5836 8ea2d8b6,8ea2d8b6v 71b8 e786b8 71b8 000071b8 ea4a ea4a ea4a ea4a ea4a ea4a ea4a -11188 ea4b ea4b ea4b * * 5837 8ea2d8b7,8ea2d8b7v 71d6 e78796 71d6 000071d6 ea4b ea4b ea4b ea4b ea4b ea4b ea4b -11189 ea4c ea4c ea4c * * 5838 8ea2d8b8,8ea2d8b8v 71c0 e78780 71c0 000071c0 ea4c ea4c ea4c ea4c ea4c ea4c ea4c -11190 ea4d ea4d ea4d * * 5839 8ea2d8b9,8ea2d8b9v 71c1 e78781 71c1 000071c1 ea4d ea4d ea4d ea4d ea4d ea4d ea4d -11191 ea4e ea4e ea4e * * 583a 8ea2d8ba,8ea2d8bav 71cb e7878b 71cb 000071cb ea4e ea4e ea4e ea4e ea4e ea4e ea4e -11192 ea4f ea4f ea4f * * 583b 8ea2d8bb,8ea2d8bbv 71d4 e78794 71d4 000071d4 ea4f ea4f ea4f ea4f ea4f ea4f ea4f -11193 ea50 ea50 ea50 * * 583c 8ea2d8bc,8ea2d8bcv 71ca e7878a 71ca 000071ca ea50 ea50 ea50 ea50 ea50 ea50 ea50 -11194 ea51 ea51 ea51 * * 583d 8ea2d8bd,8ea2d8bdv 71c7 e78787 71c7 000071c7 ea51 ea51 ea51 ea51 ea51 ea51 ea51 -11195 ea52 ea52 ea52 * * 583e 8ea2d8be,8ea2d8bev 71cf e7878f 71cf 000071cf ea52 ea52 ea52 ea52 ea52 ea52 ea52 -11196 ea53 ea53 ea53 * * 583f 8ea2d8bf,8ea2d8bfv 71bd e786bd 71bd 000071bd ea53 ea53 ea53 ea53 ea53 ea53 ea53 -11197 ea54 ea54 ea54 * * 5840 8ea2d8c0,8ea2d8c0v 71d8 e78798 71d8 000071d8 ea54 ea54 ea54 ea54 ea54 ea54 ea54 -11198 ea55 ea55 ea55 * * 5841 8ea2d8c1,8ea2d8c1v 71bc e786bc 71bc 000071bc ea55 ea55 ea55 ea55 ea55 ea55 ea55 -11199 ea56 ea56 ea56 * * 5842 8ea2d8c2,8ea2d8c2v 71c6 e78786 71c6 000071c6 ea56 ea56 ea56 ea56 ea56 ea56 ea56 -11200 ea57 ea57 ea57 * * 5843 8ea2d8c3,8ea2d8c3v 71da e7879a 71da 000071da ea57 ea57 ea57 ea57 ea57 ea57 ea57 -11201 ea58 ea58 ea58 * * 5844 8ea2d8c4,8ea2d8c4v 71db e7879b 71db 000071db ea58 ea58 ea58 ea58 ea58 ea58 ea58 -11202 ea59 ea59 ea59 * * 5845 8ea2d8c5,8ea2d8c5v 729d e78a9d 729d 0000729d ea59 ea59 ea59 ea59 ea59 ea59 ea59 -11203 ea5a ea5a ea5a * * 5846 8ea2d8c6,8ea2d8c6v 729e e78a9e 729e 0000729e ea5a ea5a ea5a ea5a ea5a ea5a ea5a -11204 ea5b ea5b ea5b * * 5847 8ea2d8c7,8ea2d8c7v 7369 e78da9 7369 00007369 ea5b ea5b ea5b ea5b ea5b ea5b ea5b -11205 ea5c ea5c ea5c * * 5848 8ea2d8c8,8ea2d8c8v 7366 e78da6 7366 00007366 ea5c ea5c ea5c ea5c ea5c ea5c ea5c -11206 ea5d ea5d ea5d * * 5849 8ea2d8c9,8ea2d8c9v 7367 e78da7 7367 00007367 ea5d ea5d ea5d ea5d ea5d ea5d ea5d -11207 ea5e ea5e ea5e * * 584a 8ea2d8ca,8ea2d8cav 736c e78dac 736c 0000736c ea5e ea5e ea5e ea5e ea5e ea5e ea5e -11208 ea5f ea5f ea5f * * 584b 8ea2d8cb,8ea2d8cbv 7365 e78da5 7365 00007365 ea5f ea5f ea5f ea5f ea5f ea5f ea5f -11209 ea60 ea60 ea60 * * 584c 8ea2d8cc,8ea2d8ccv 736b e78dab 736b 0000736b ea60 ea60 ea60 ea60 ea60 ea60 ea60 -11210 ea61 ea61 ea61 * * 584d 8ea2d8cd,8ea2d8cdv 736a e78daa 736a 0000736a ea61 ea61 ea61 ea61 ea61 ea61 ea61 -11211 ea62 ea62 ea62 * * 584e 8ea2d8ce,8ea2d8cev 747f e791bf 747f 0000747f ea62 ea62 ea62 ea62 ea62 ea62 ea62 -11212 ea63 ea63 ea63 * * 584f 8ea2d8cf,8ea2d8cfv 749a e7929a 749a 0000749a ea63 ea63 ea63 ea63 ea63 ea63 ea63 -11213 ea64 ea64 ea64 * * 5850 8ea2d8d0,8ea2d8d0v 74a0 e792a0 74a0 000074a0 ea64 ea64 ea64 ea64 ea64 ea64 ea64 -11214 ea65 ea65 ea65 * * 5851 8ea2d8d1,8ea2d8d1v 7494 e79294 7494 00007494 ea65 ea65 ea65 ea65 ea65 ea65 ea65 -11215 ea66 ea66 ea66 * * 5852 8ea2d8d2,8ea2d8d2v 7492 e79292 7492 00007492 ea66 ea66 ea66 ea66 ea66 ea66 ea66 -11216 ea67 ea67 ea67 * * 5853 8ea2d8d3,8ea2d8d3v 7495 e79295 7495 00007495 ea67 ea67 ea67 ea67 ea67 ea67 ea67 -11217 ea68 ea68 ea68 * * 5854 8ea2d8d4,8ea2d8d4v 74a1 e792a1 74a1 000074a1 ea68 ea68 ea68 ea68 ea68 ea68 ea68 -11218 ea69 ea69 ea69 * * 5855 8ea2d8d5,8ea2d8d5v 750b e7948b 750b 0000750b ea69 ea69 ea69 ea69 ea69 ea69 ea69 -11219 ea6a ea6a ea6a * * 5856 8ea2d8d6,8ea2d8d6v 7580 e79680 7580 00007580 ea6a ea6a ea6a ea6a ea6a ea6a ea6a -11220 ea6b ea6b ea6b * * 5857 8ea2d8d7,8ea2d8d7v 762f e798af 762f 0000762f ea6b ea6b ea6b ea6b ea6b ea6b ea6b -11221 ea6c ea6c ea6c * * 5858 8ea2d8d8,8ea2d8d8v 762d e798ad 762d 0000762d ea6c ea6c ea6c ea6c ea6c ea6c ea6c -11222 ea6d ea6d ea6d * * 5859 8ea2d8d9,8ea2d8d9v 7631 e798b1 7631 00007631 ea6d ea6d ea6d ea6d ea6d ea6d ea6d -11223 ea6e ea6e ea6e * * 585a 8ea2d8da,8ea2d8dav 763d e798bd 763d 0000763d ea6e ea6e ea6e ea6e ea6e ea6e ea6e -11224 ea6f ea6f ea6f * * 585b 8ea2d8db,8ea2d8dbv 7633 e798b3 7633 00007633 ea6f ea6f ea6f ea6f ea6f ea6f ea6f -11225 ea70 ea70 ea70 * * 585c 8ea2d8dc,8ea2d8dcv 763c e798bc 763c 0000763c ea70 ea70 ea70 ea70 ea70 ea70 ea70 -11226 ea71 ea71 ea71 * * 585d 8ea2d8dd,8ea2d8ddv 7635 e798b5 7635 00007635 ea71 ea71 ea71 ea71 ea71 ea71 ea71 -11227 ea72 ea72 ea72 * * 585e 8ea2d8de,8ea2d8dev 7632 e798b2 7632 00007632 ea72 ea72 ea72 ea72 ea72 ea72 ea72 -11228 ea73 ea73 ea73 * * 585f 8ea2d8df,8ea2d8dfv 7630 e798b0 7630 00007630 ea73 ea73 ea73 ea73 ea73 ea73 ea73 -11229 ea74 ea74 ea74 * * 5860 8ea2d8e0,8ea2d8e0v 76bb e79abb 76bb 000076bb ea74 ea74 ea74 ea74 ea74 ea74 ea74 -11230 ea75 ea75 ea75 * * 5861 8ea2d8e1,8ea2d8e1v 76e6 e79ba6 76e6 000076e6 ea75 ea75 ea75 ea75 ea75 ea75 ea75 -11231 ea76 ea76 ea76 * * 5862 8ea2d8e2,8ea2d8e2v 779a e79e9a 779a 0000779a ea76 ea76 ea76 ea76 ea76 ea76 ea76 -11232 ea77 ea77 ea77 * * 5863 8ea2d8e3,8ea2d8e3v 779d e79e9d 779d 0000779d ea77 ea77 ea77 ea77 ea77 ea77 ea77 -11233 ea78 ea78 ea78 * * 5864 8ea2d8e4,8ea2d8e4v 77a1 e79ea1 77a1 000077a1 ea78 ea78 ea78 ea78 ea78 ea78 ea78 -11234 ea79 ea79 ea79 * * 5865 8ea2d8e5,8ea2d8e5v 779c e79e9c 779c 0000779c ea79 ea79 ea79 ea79 ea79 ea79 ea79 -11235 ea7a ea7a ea7a * * 5866 8ea2d8e6,8ea2d8e6v 779b e79e9b 779b 0000779b ea7a ea7a ea7a ea7a ea7a ea7a ea7a -11236 ea7b ea7b ea7b * * 5867 8ea2d8e7,8ea2d8e7v 77a2 e79ea2 77a2 000077a2 ea7b ea7b ea7b ea7b ea7b ea7b ea7b -11237 ea7c ea7c ea7c * * 5868 8ea2d8e8,8ea2d8e8v 77a3 e79ea3 77a3 000077a3 ea7c ea7c ea7c ea7c ea7c ea7c ea7c -11238 ea7d ea7d ea7d * * 5869 8ea2d8e9,8ea2d8e9v 7795 e79e95 7795 00007795 ea7d ea7d ea7d ea7d ea7d ea7d ea7d -11239 ea7e ea7e ea7e * * 586a 8ea2d8ea,8ea2d8eav 7799 e79e99 7799 00007799 ea7e ea7e ea7e ea7e ea7e ea7e ea7e -11240 eaa1 eaa1 eaa1 * * 586b 8ea2d8eb,8ea2d8ebv 7797 e79e97 7797 00007797 eaa1 eaa1 eaa1 eaa1 eaa1 eaa1 eaa1 -11241 eaa2 eaa2 eaa2 * * 586c 8ea2d8ec,8ea2d8ecv 78dd e7a39d 78dd 000078dd eaa2 eaa2 eaa2 eaa2 eaa2 eaa2 eaa2 -11242 eaa3 eaa3 eaa3 * * 586d 8ea2d8ed,8ea2d8edv 78e9 e7a3a9 78e9 000078e9 eaa3 eaa3 eaa3 eaa3 eaa3 eaa3 eaa3 -11243 eaa4 eaa4 eaa4 * * 586e 8ea2d8ee,8ea2d8eev 78e5 e7a3a5 78e5 000078e5 eaa4 eaa4 eaa4 eaa4 eaa4 eaa4 eaa4 -11244 eaa5 eaa5 eaa5 * * 586f 8ea2d8ef,8ea2d8efv 78ea e7a3aa 78ea 000078ea eaa5 eaa5 eaa5 eaa5 eaa5 eaa5 eaa5 -11245 eaa6 eaa6 eaa6 * * 5870 8ea2d8f0,8ea2d8f0v 78de e7a39e 78de 000078de eaa6 eaa6 eaa6 eaa6 eaa6 eaa6 eaa6 -11246 eaa7 eaa7 eaa7 * * 5871 8ea2d8f1,8ea2d8f1v 78e3 e7a3a3 78e3 000078e3 eaa7 eaa7 eaa7 eaa7 eaa7 eaa7 eaa7 -11247 eaa8 eaa8 eaa8 * * 5872 8ea2d8f2,8ea2d8f2v 78db e7a39b 78db 000078db eaa8 eaa8 eaa8 eaa8 eaa8 eaa8 eaa8 -11248 eaa9 eaa9 eaa9 * * 5873 8ea2d8f3,8ea2d8f3v 78e1 e7a3a1 78e1 000078e1 eaa9 eaa9 eaa9 eaa9 eaa9 eaa9 eaa9 -11249 eaaa eaaa eaaa * * 5874 8ea2d8f4,8ea2d8f4v 78e2 e7a3a2 78e2 000078e2 eaaa eaaa eaaa eaaa eaaa eaaa eaaa -11250 eaab eaab eaab * * 5875 8ea2d8f5,8ea2d8f5v 78ed e7a3ad 78ed 000078ed eaab eaab eaab eaab eaab eaab eaab -11251 eaac eaac eaac * * 5876 8ea2d8f6,8ea2d8f6v 78df e7a39f 78df 000078df eaac eaac eaac eaac eaac eaac eaac -11252 eaad eaad eaad * * 5877 8ea2d8f7,8ea2d8f7v 78e0 e7a3a0 78e0 000078e0 eaad eaad eaad eaad eaad eaad eaad -11253 eaae eaae eaae * * 5878 8ea2d8f8,8ea2d8f8v 79a4 e7a6a4 79a4 000079a4 eaae eaae eaae eaae eaae eaae eaae -11254 eaaf eaaf eaaf * * 5879 8ea2d8f9,8ea2d8f9v 7a44 e7a984 7a44 00007a44 eaaf eaaf eaaf eaaf eaaf eaaf eaaf -11255 eab0 eab0 eab0 * * 587a 8ea2d8fa,8ea2d8fav 7a48 e7a988 7a48 00007a48 eab0 eab0 eab0 eab0 eab0 eab0 eab0 -11256 eab1 eab1 eab1 * * 587b 8ea2d8fb,8ea2d8fbv 7a47 e7a987 7a47 00007a47 eab1 eab1 eab1 eab1 eab1 eab1 eab1 -11257 eab2 eab2 eab2 * * 587c 8ea2d8fc,8ea2d8fcv 7ab6 e7aab6 7ab6 00007ab6 eab2 eab2 eab2 eab2 eab2 eab2 eab2 -11258 eab3 eab3 eab3 * * 587d 8ea2d8fd,8ea2d8fdv 7ab8 e7aab8 7ab8 00007ab8 eab3 eab3 eab3 eab3 eab3 eab3 eab3 -11259 eab4 eab4 eab4 * * 587e 8ea2d8fe,8ea2d8fev 7ab5 e7aab5 7ab5 00007ab5 eab4 eab4 eab4 eab4 eab4 eab4 eab4 -11260 eab5 eab5 eab5 * * 5921 8ea2d9a1,8ea2d9a1v 7ab1 e7aab1 7ab1 00007ab1 eab5 eab5 eab5 eab5 eab5 eab5 eab5 -11261 eab6 eab6 eab6 * * 5922 8ea2d9a2,8ea2d9a2v 7ab7 e7aab7 7ab7 00007ab7 eab6 eab6 eab6 eab6 eab6 eab6 eab6 -11262 eab7 eab7 eab7 * * 5923 8ea2d9a3,8ea2d9a3v 7bde e7af9e 7bde 00007bde eab7 eab7 eab7 eab7 eab7 eab7 eab7 -11263 eab8 eab8 eab8 * * 5924 8ea2d9a4,8ea2d9a4v 7be3 e7afa3 7be3 00007be3 eab8 eab8 eab8 eab8 eab8 eab8 eab8 -11264 eab9 eab9 eab9 * * 5925 8ea2d9a5,8ea2d9a5v 7be7 e7afa7 7be7 00007be7 eab9 eab9 eab9 eab9 eab9 eab9 eab9 -11265 eaba eaba eaba * * 5926 8ea2d9a6,8ea2d9a6v 7bdd e7af9d 7bdd 00007bdd eaba eaba eaba eaba eaba eaba eaba -11266 eabb eabb eabb * * 5927 8ea2d9a7,8ea2d9a7v 7bd5 e7af95 7bd5 00007bd5 eabb eabb eabb eabb eabb eabb eabb -11267 eabc eabc eabc * * 5928 8ea2d9a8,8ea2d9a8v 7be5 e7afa5 7be5 00007be5 eabc eabc eabc eabc eabc eabc eabc -11268 eabd eabd eabd * * 5929 8ea2d9a9,8ea2d9a9v 7bda e7af9a 7bda 00007bda eabd eabd eabd eabd eabd eabd eabd -11269 eabe eabe eabe * * 592a 8ea2d9aa,8ea2d9aav 7be8 e7afa8 7be8 00007be8 eabe eabe eabe eabe eabe eabe eabe -11270 eabf eabf eabf * * 592b 8ea2d9ab,8ea2d9abv 7bf9 e7afb9 7bf9 00007bf9 eabf eabf eabf eabf eabf eabf eabf -11271 eac0 eac0 eac0 * * 592c 8ea2d9ac,8ea2d9acv 7bd4 e7af94 7bd4 00007bd4 eac0 eac0 eac0 eac0 eac0 eac0 eac0 -11272 eac1 eac1 eac1 * * 592d 8ea2d9ad,8ea2d9adv 7bea e7afaa 7bea 00007bea eac1 eac1 eac1 eac1 eac1 eac1 eac1 -11273 eac2 eac2 eac2 * * 592e 8ea2d9ae,8ea2d9aev 7be2 e7afa2 7be2 00007be2 eac2 eac2 eac2 eac2 eac2 eac2 eac2 -11274 eac3 eac3 eac3 * * 592f 8ea2d9af,8ea2d9afv 7bdc e7af9c 7bdc 00007bdc eac3 eac3 eac3 eac3 eac3 eac3 eac3 -11275 eac4 eac4 eac4 * * 5930 8ea2d9b0,8ea2d9b0v 7beb e7afab 7beb 00007beb eac4 eac4 eac4 eac4 eac4 eac4 eac4 -11276 eac5 eac5 eac5 * * 5931 8ea2d9b1,8ea2d9b1v 7bd8 e7af98 7bd8 00007bd8 eac5 eac5 eac5 eac5 eac5 eac5 eac5 -11277 eac6 eac6 eac6 * * 5932 8ea2d9b2,8ea2d9b2v 7bdf e7af9f 7bdf 00007bdf eac6 eac6 eac6 eac6 eac6 eac6 eac6 -11278 eac7 eac7 eac7 * * 5933 8ea2d9b3,8ea2d9b3v 7cd2 e7b392 7cd2 00007cd2 eac7 eac7 eac7 eac7 eac7 eac7 eac7 -11279 eac8 eac8 eac8 * * 5934 8ea2d9b4,8ea2d9b4v 7cd4 e7b394 7cd4 00007cd4 eac8 eac8 eac8 eac8 eac8 eac8 eac8 -11280 eac9 eac9 eac9 * * 5935 8ea2d9b5,8ea2d9b5v 7cd7 e7b397 7cd7 00007cd7 eac9 eac9 eac9 eac9 eac9 eac9 eac9 -11281 eaca eaca eaca * * 5936 8ea2d9b6,8ea2d9b6v 7cd0 e7b390 7cd0 00007cd0 eaca eaca eaca eaca eaca eaca eaca -11282 eacb eacb eacb * * 5937 8ea2d9b7,8ea2d9b7v 7cd1 e7b391 7cd1 00007cd1 eacb eacb eacb eacb eacb eacb eacb -11283 eacc eacc eacc * * 5938 8ea2d9b8,8ea2d9b8v 7e12 e7b892 7e12 00007e12 eacc eacc eacc eacc eacc eacc eacc -11284 eacd eacd eacd * * 5939 8ea2d9b9,8ea2d9b9v 7e21 e7b8a1 7e21 00007e21 eacd eacd eacd eacd eacd eacd eacd -11285 eace eace eace * * 593a 8ea2d9ba,8ea2d9bav 7e17 e7b897 7e17 00007e17 eace eace eace eace eace eace eace -11286 eacf eacf eacf * * 593b 8ea2d9bb,8ea2d9bbv 7e0c e7b88c 7e0c 00007e0c eacf eacf eacf eacf eacf eacf eacf -11287 ead0 ead0 ead0 * * 593c 8ea2d9bc,8ea2d9bcv 7e1f e7b89f 7e1f 00007e1f ead0 ead0 ead0 ead0 ead0 ead0 ead0 -11288 ead1 ead1 ead1 * * 593d 8ea2d9bd,8ea2d9bdv 7e20 e7b8a0 7e20 00007e20 ead1 ead1 ead1 ead1 ead1 ead1 ead1 -11289 ead2 ead2 ead2 * * 593e 8ea2d9be,8ea2d9bev 7e13 e7b893 7e13 00007e13 ead2 ead2 ead2 ead2 ead2 ead2 ead2 -11290 ead3 ead3 ead3 * * 593f 8ea2d9bf,8ea2d9bfv 7e0e e7b88e 7e0e 00007e0e ead3 ead3 ead3 ead3 ead3 ead3 ead3 -11291 ead4 ead4 ead4 * * 5940 8ea2d9c0,8ea2d9c0v 7e1c e7b89c 7e1c 00007e1c ead4 ead4 ead4 ead4 ead4 ead4 ead4 -11292 ead5 ead5 ead5 * * 5941 8ea2d9c1,8ea2d9c1v 7e15 e7b895 7e15 00007e15 ead5 ead5 ead5 ead5 ead5 ead5 ead5 -11293 ead6 ead6 ead6 * * 5942 8ea2d9c2,8ea2d9c2v 7e1a e7b89a 7e1a 00007e1a ead6 ead6 ead6 ead6 ead6 ead6 ead6 -11294 ead7 ead7 ead7 * * 5943 8ea2d9c3,8ea2d9c3v 7e22 e7b8a2 7e22 00007e22 ead7 ead7 ead7 ead7 ead7 ead7 ead7 -11295 ead8 ead8 ead8 * * 5944 8ea2d9c4,8ea2d9c4v 7e0b e7b88b 7e0b 00007e0b ead8 ead8 ead8 ead8 ead8 ead8 ead8 -11296 ead9 ead9 ead9 * * 5945 8ea2d9c5,8ea2d9c5v 7e0f e7b88f 7e0f 00007e0f ead9 ead9 ead9 ead9 ead9 ead9 ead9 -11297 eada eada eada * * 5946 8ea2d9c6,8ea2d9c6v 7e16 e7b896 7e16 00007e16 eada eada eada eada eada eada eada -11298 eadb eadb eadb * * 5947 8ea2d9c7,8ea2d9c7v 7e0d e7b88d 7e0d 00007e0d eadb eadb eadb eadb eadb eadb eadb -11299 eadc eadc eadc * * 5948 8ea2d9c8,8ea2d9c8v 7e14 e7b894 7e14 00007e14 eadc eadc eadc eadc eadc eadc eadc -11300 eadd eadd eadd * * 5949 8ea2d9c9,8ea2d9c9v 7e25 e7b8a5 7e25 00007e25 eadd eadd eadd eadd eadd eadd eadd -11301 eade eade eade * * 594a 8ea2d9ca,8ea2d9cav 7e24 e7b8a4 7e24 00007e24 eade eade eade eade eade eade eade -11302 eadf eadf eadf * * 594b 8ea2d9cb,8ea2d9cbv 7f43 e7bd83 7f43 00007f43 eadf eadf eadf eadf eadf eadf eadf -11303 eae0 eae0 eae0 * * 594c 8ea2d9cc,8ea2d9ccv 7f7b e7bdbb 7f7b 00007f7b eae0 eae0 eae0 eae0 eae0 eae0 eae0 -11304 eae1 eae1 eae1 * * 594d 8ea2d9cd,8ea2d9cdv 7f7c e7bdbc 7f7c 00007f7c eae1 eae1 eae1 eae1 eae1 eae1 eae1 -11305 eae2 eae2 eae2 * * 594e 8ea2d9ce,8ea2d9cev 7f7a e7bdba 7f7a 00007f7a eae2 eae2 eae2 eae2 eae2 eae2 eae2 -11306 eae3 eae3 eae3 * * 594f 8ea2d9cf,8ea2d9cfv 7fb1 e7beb1 7fb1 00007fb1 eae3 eae3 eae3 eae3 eae3 eae3 eae3 -11307 eae4 eae4 eae4 * * 5950 8ea2d9d0,8ea2d9d0v 7fef e7bfaf 7fef 00007fef eae4 eae4 eae4 eae4 eae4 eae4 eae4 -11308 eae5 eae5 eae5 * * 5951 8ea2d9d1,8ea2d9d1v 802a e880aa 802a 0000802a eae5 eae5 eae5 eae5 eae5 eae5 eae5 -11309 eae6 eae6 eae6 * * 5952 8ea2d9d2,8ea2d9d2v 8029 e880a9 8029 00008029 eae6 eae6 eae6 eae6 eae6 eae6 eae6 -11310 eae7 eae7 eae7 * * 5953 8ea2d9d3,8ea2d9d3v 806c e881ac 806c 0000806c eae7 eae7 eae7 eae7 eae7 eae7 eae7 -11311 eae8 eae8 eae8 * * 5954 8ea2d9d4,8ea2d9d4v 81b1 e886b1 81b1 000081b1 eae8 eae8 eae8 eae8 eae8 eae8 eae8 -11312 eae9 eae9 eae9 * * 5955 8ea2d9d5,8ea2d9d5v 81a6 e886a6 81a6 000081a6 eae9 eae9 eae9 eae9 eae9 eae9 eae9 -11313 eaea eaea eaea * * 5956 8ea2d9d6,8ea2d9d6v 81ae e886ae 81ae 000081ae eaea eaea eaea eaea eaea eaea eaea -11314 eaeb eaeb eaeb * * 5957 8ea2d9d7,8ea2d9d7v 81b9 e886b9 81b9 000081b9 eaeb eaeb eaeb eaeb eaeb eaeb eaeb -11315 eaec eaec eaec * * 5958 8ea2d9d8,8ea2d9d8v 81b5 e886b5 81b5 000081b5 eaec eaec eaec eaec eaec eaec eaec -11316 eaed eaed eaed * * 5959 8ea2d9d9,8ea2d9d9v 81ab e886ab 81ab 000081ab eaed eaed eaed eaed eaed eaed eaed -11317 eaee eaee eaee * * 595a 8ea2d9da,8ea2d9dav 81b0 e886b0 81b0 000081b0 eaee eaee eaee eaee eaee eaee eaee -11318 eaef eaef eaef * * 595b 8ea2d9db,8ea2d9dbv 81ac e886ac 81ac 000081ac eaef eaef eaef eaef eaef eaef eaef -11319 eaf0 eaf0 eaf0 * * 595c 8ea2d9dc,8ea2d9dcv 81b4 e886b4 81b4 000081b4 eaf0 eaf0 eaf0 eaf0 eaf0 eaf0 eaf0 -11320 eaf1 eaf1 eaf1 * * 595d 8ea2d9dd,8ea2d9ddv 81b2 e886b2 81b2 000081b2 eaf1 eaf1 eaf1 eaf1 eaf1 eaf1 eaf1 -11321 eaf2 eaf2 eaf2 * * 595e 8ea2d9de,8ea2d9dev 81b7 e886b7 81b7 000081b7 eaf2 eaf2 eaf2 eaf2 eaf2 eaf2 eaf2 -11322 eaf3 eaf3 eaf3 * * 595f 8ea2d9df,8ea2d9dfv 81a7 e886a7 81a7 000081a7 eaf3 eaf3 eaf3 eaf3 eaf3 eaf3 eaf3 -11323 eaf4 eaf4 eaf4 * * 5960 8ea2d9e0,8ea2d9e0v 81f2 e887b2 81f2 000081f2 eaf4 eaf4 eaf4 eaf4 eaf4 eaf4 eaf4 -11324 eaf5 eaf5 eaf5 * * 5961 8ea2d9e1,8ea2d9e1v 8255 e88995 8255 00008255 eaf5 eaf5 eaf5 eaf5 eaf5 eaf5 eaf5 -11325 eaf6 eaf6 eaf6 * * 5962 8ea2d9e2,8ea2d9e2v 8256 e88996 8256 00008256 eaf6 eaf6 eaf6 eaf6 eaf6 eaf6 eaf6 -11326 eaf7 eaf7 eaf7 * * 5963 8ea2d9e3,8ea2d9e3v 8257 e88997 8257 00008257 eaf7 eaf7 eaf7 eaf7 eaf7 eaf7 eaf7 -11327 eaf8 eaf8 eaf8 * * 5964 8ea2d9e4,8ea2d9e4v 8556 e89596 8556 00008556 eaf8 eaf8 eaf8 eaf8 eaf8 eaf8 eaf8 -11328 eaf9 eaf9 eaf9 * * 5965 8ea2d9e5,8ea2d9e5v 8545 e89585 8545 00008545 eaf9 eaf9 eaf9 eaf9 eaf9 eaf9 eaf9 -11329 eafa eafa eafa * * 5966 8ea2d9e6,8ea2d9e6v 856b e895ab 856b 0000856b eafa eafa eafa eafa eafa eafa eafa -11330 eafb eafb eafb * * 5967 8ea2d9e7,8ea2d9e7v 854d e8958d 854d 0000854d eafb eafb eafb eafb eafb eafb eafb -11331 eafc eafc eafc * * 5968 8ea2d9e8,8ea2d9e8v 8553 e89593 8553 00008553 eafc eafc eafc eafc eafc eafc eafc -11332 eafd eafd eafd * * 5969 8ea2d9e9,8ea2d9e9v 8561 e895a1 8561 00008561 eafd eafd eafd eafd eafd eafd eafd -11333 eafe eafe eafe * * 596a 8ea2d9ea,8ea2d9eav 8558 e89598 8558 00008558 eafe eafe eafe eafe eafe eafe eafe -11334 eb40 eb40 eb40 * * 596b 8ea2d9eb,8ea2d9ebv 8540 e89580 8540 00008540 eb40 eb40 eb40 eb40 eb40 eb40 eb40 -11335 eb41 eb41 eb41 * * 596c 8ea2d9ec,8ea2d9ecv 8546 e89586 8546 00008546 eb41 eb41 eb41 eb41 eb41 eb41 eb41 -11336 eb42 eb42 eb42 * * 596d 8ea2d9ed,8ea2d9edv 8564 e895a4 8564 00008564 eb42 eb42 eb42 eb42 eb42 eb42 eb42 -11337 eb43 eb43 eb43 * * 596e 8ea2d9ee,8ea2d9eev 8541 e89581 8541 00008541 eb43 eb43 eb43 eb43 eb43 eb43 eb43 -11338 eb44 eb44 eb44 * * 596f 8ea2d9ef,8ea2d9efv 8562 e895a2 8562 00008562 eb44 eb44 eb44 eb44 eb44 eb44 eb44 -11339 eb45 eb45 eb45 * * 5970 8ea2d9f0,8ea2d9f0v 8544 e89584 8544 00008544 eb45 eb45 eb45 eb45 eb45 eb45 eb45 -11340 eb46 eb46 eb46 * * 5971 8ea2d9f1,8ea2d9f1v 8551 e89591 8551 00008551 eb46 eb46 eb46 eb46 eb46 eb46 eb46 -11341 eb47 eb47 eb47 * * 5972 8ea2d9f2,8ea2d9f2v 8547 e89587 8547 00008547 eb47 eb47 eb47 eb47 eb47 eb47 eb47 -11342 eb48 eb48 eb48 * * 5973 8ea2d9f3,8ea2d9f3v 8563 e895a3 8563 00008563 eb48 eb48 eb48 eb48 eb48 eb48 eb48 -11343 eb49 eb49 eb49 * * 5974 8ea2d9f4,8ea2d9f4v 853e e894be 853e 0000853e eb49 eb49 eb49 eb49 eb49 eb49 eb49 -11344 eb4a eb4a eb4a * * 5975 8ea2d9f5,8ea2d9f5v 855b e8959b 855b 0000855b eb4a eb4a eb4a eb4a eb4a eb4a eb4a -11345 eb4b eb4b eb4b * * 5976 8ea2d9f6,8ea2d9f6v 8571 e895b1 8571 00008571 eb4b eb4b eb4b eb4b eb4b eb4b eb4b -11346 eb4c eb4c eb4c * * 5977 8ea2d9f7,8ea2d9f7v 854e e8958e 854e 0000854e eb4c eb4c eb4c eb4c eb4c eb4c eb4c -11347 eb4d eb4d eb4d * * 5978 8ea2d9f8,8ea2d9f8v 856e e895ae 856e 0000856e eb4d eb4d eb4d eb4d eb4d eb4d eb4d -11348 eb4e eb4e eb4e * * 5979 8ea2d9f9,8ea2d9f9v 8575 e895b5 8575 00008575 eb4e eb4e eb4e eb4e eb4e eb4e eb4e -11349 eb4f eb4f eb4f * * 597a 8ea2d9fa,8ea2d9fav 8555 e89595 8555 00008555 eb4f eb4f eb4f eb4f eb4f eb4f eb4f -11350 eb50 eb50 eb50 * * 597b 8ea2d9fb,8ea2d9fbv 8567 e895a7 8567 00008567 eb50 eb50 eb50 eb50 eb50 eb50 eb50 -11351 eb51 eb51 eb51 * * 597c 8ea2d9fc,8ea2d9fcv 8560 e895a0 8560 00008560 eb51 eb51 eb51 eb51 eb51 eb51 eb51 -11352 eb52 eb52 eb52 * * 597d 8ea2d9fd,8ea2d9fdv 858c e8968c 858c 0000858c eb52 eb52 eb52 eb52 eb52 eb52 eb52 -11353 eb53 eb53 eb53 * * 597e 8ea2d9fe,8ea2d9fev 8566 e895a6 8566 00008566 eb53 eb53 eb53 eb53 eb53 eb53 eb53 -11354 eb54 eb54 eb54 * * 5a21 8ea2daa1,8ea2daa1v 855d e8959d 855d 0000855d eb54 eb54 eb54 eb54 eb54 eb54 eb54 -11355 eb55 eb55 eb55 * * 5a22 8ea2daa2,8ea2daa2v 8554 e89594 8554 00008554 eb55 eb55 eb55 eb55 eb55 eb55 eb55 -11356 eb56 eb56 eb56 * * 5a23 8ea2daa3,8ea2daa3v 8565 e895a5 8565 00008565 eb56 eb56 eb56 eb56 eb56 eb56 eb56 -11357 eb57 eb57 eb57 * * 5a24 8ea2daa4,8ea2daa4v 856c e895ac 856c 0000856c eb57 eb57 eb57 eb57 eb57 eb57 eb57 -11358 eb58 eb58 eb58 * * 5a25 8ea2daa5,8ea2daa5v 8663 e899a3 8663 00008663 eb58 eb58 eb58 eb58 eb58 eb58 eb58 -11359 eb59 eb59 eb59 * * 5a26 8ea2daa6,8ea2daa6v 8665 e899a5 8665 00008665 eb59 eb59 eb59 eb59 eb59 eb59 eb59 -11360 eb5a eb5a eb5a * * 5a27 8ea2daa7,8ea2daa7v 8664 e899a4 8664 00008664 eb5a eb5a eb5a eb5a eb5a eb5a eb5a -11361 f0cb f0cb f0cb * * 5a28 8ea2daa8,8ea2daa8v 87a4 e89ea4 87a4 000087a4 f0cb f0cb f0cb f0cb f0cb f0cb f0cb -11362 eb5b eb5b eb5b * * 5a29 8ea2daa9,8ea2daa9v 879b e89e9b 879b 0000879b eb5b eb5b eb5b eb5b eb5b eb5b eb5b -11363 eb5c eb5c eb5c * * 5a2a 8ea2daaa,8ea2daaav 878f e89e8f 878f 0000878f eb5c eb5c eb5c eb5c eb5c eb5c eb5c -11364 eb5d eb5d eb5d * * 5a2b 8ea2daab,8ea2daabv 8797 e89e97 8797 00008797 eb5d eb5d eb5d eb5d eb5d eb5d eb5d -11365 eb5e eb5e eb5e * * 5a2c 8ea2daac,8ea2daacv 8793 e89e93 8793 00008793 eb5e eb5e eb5e eb5e eb5e eb5e eb5e -11366 eb5f eb5f eb5f * * 5a2d 8ea2daad,8ea2daadv 8792 e89e92 8792 00008792 eb5f eb5f eb5f eb5f eb5f eb5f eb5f -11367 eb60 eb60 eb60 * * 5a2e 8ea2daae,8ea2daaev 8788 e89e88 8788 00008788 eb60 eb60 eb60 eb60 eb60 eb60 eb60 -11368 eb61 eb61 eb61 * * 5a2f 8ea2daaf,8ea2daafv 8781 e89e81 8781 00008781 eb61 eb61 eb61 eb61 eb61 eb61 eb61 -11369 eb62 eb62 eb62 * * 5a30 8ea2dab0,8ea2dab0v 8796 e89e96 8796 00008796 eb62 eb62 eb62 eb62 eb62 eb62 eb62 -11370 eb63 eb63 eb63 * * 5a31 8ea2dab1,8ea2dab1v 8798 e89e98 8798 00008798 eb63 eb63 eb63 eb63 eb63 eb63 eb63 -11371 eb64 eb64 eb64 * * 5a32 8ea2dab2,8ea2dab2v 8779 e89db9 8779 00008779 eb64 eb64 eb64 eb64 eb64 eb64 eb64 -11372 eb65 eb65 eb65 * * 5a33 8ea2dab3,8ea2dab3v 8787 e89e87 8787 00008787 eb65 eb65 eb65 eb65 eb65 eb65 eb65 -11373 eb66 eb66 eb66 * * 5a34 8ea2dab4,8ea2dab4v 87a3 e89ea3 87a3 000087a3 eb66 eb66 eb66 eb66 eb66 eb66 eb66 -11374 eb67 eb67 eb67 * * 5a35 8ea2dab5,8ea2dab5v 8785 e89e85 8785 00008785 eb67 eb67 eb67 eb67 eb67 eb67 eb67 -11375 eb68 eb68 eb68 * * 5a36 8ea2dab6,8ea2dab6v 8790 e89e90 8790 00008790 eb68 eb68 eb68 eb68 eb68 eb68 eb68 -11376 eb69 eb69 eb69 * * 5a37 8ea2dab7,8ea2dab7v 8791 e89e91 8791 00008791 eb69 eb69 eb69 eb69 eb69 eb69 eb69 -11377 eb6a eb6a eb6a * * 5a38 8ea2dab8,8ea2dab8v 879d e89e9d 879d 0000879d eb6a eb6a eb6a eb6a eb6a eb6a eb6a -11378 eb6b eb6b eb6b * * 5a39 8ea2dab9,8ea2dab9v 8784 e89e84 8784 00008784 eb6b eb6b eb6b eb6b eb6b eb6b eb6b -11379 eb6c eb6c eb6c * * 5a3a 8ea2daba,8ea2dabav 8794 e89e94 8794 00008794 eb6c eb6c eb6c eb6c eb6c eb6c eb6c -11380 eb6d eb6d eb6d * * 5a3b 8ea2dabb,8ea2dabbv 879c e89e9c 879c 0000879c eb6d eb6d eb6d eb6d eb6d eb6d eb6d -11381 eb6e eb6e eb6e * * 5a3c 8ea2dabc,8ea2dabcv 879a e89e9a 879a 0000879a eb6e eb6e eb6e eb6e eb6e eb6e eb6e -11382 eb6f eb6f eb6f * * 5a3d 8ea2dabd,8ea2dabdv 8789 e89e89 8789 00008789 eb6f eb6f eb6f eb6f eb6f eb6f eb6f -11383 eb70 eb70 eb70 * * 5a3e 8ea2dabe,8ea2dabev 891e e8a49e 891e 0000891e eb70 eb70 eb70 eb70 eb70 eb70 eb70 -11384 eb71 eb71 eb71 * * 5a3f 8ea2dabf,8ea2dabfv 8926 e8a4a6 8926 00008926 eb71 eb71 eb71 eb71 eb71 eb71 eb71 -11385 eb72 eb72 eb72 * * 5a40 8ea2dac0,8ea2dac0v 8930 e8a4b0 8930 00008930 eb72 eb72 eb72 eb72 eb72 eb72 eb72 -11386 eb73 eb73 eb73 * * 5a41 8ea2dac1,8ea2dac1v 892d e8a4ad 892d 0000892d eb73 eb73 eb73 eb73 eb73 eb73 eb73 -11387 eb74 eb74 eb74 * * 5a42 8ea2dac2,8ea2dac2v 892e e8a4ae 892e 0000892e eb74 eb74 eb74 eb74 eb74 eb74 eb74 -11388 eb75 eb75 eb75 * * 5a43 8ea2dac3,8ea2dac3v 8927 e8a4a7 8927 00008927 eb75 eb75 eb75 eb75 eb75 eb75 eb75 -11389 eb76 eb76 eb76 * * 5a44 8ea2dac4,8ea2dac4v 8931 e8a4b1 8931 00008931 eb76 eb76 eb76 eb76 eb76 eb76 eb76 -11390 eb77 eb77 eb77 * * 5a45 8ea2dac5,8ea2dac5v 8922 e8a4a2 8922 00008922 eb77 eb77 eb77 eb77 eb77 eb77 eb77 -11391 eb78 eb78 eb78 * * 5a46 8ea2dac6,8ea2dac6v 8929 e8a4a9 8929 00008929 eb78 eb78 eb78 eb78 eb78 eb78 eb78 -11392 eb79 eb79 eb79 * * 5a47 8ea2dac7,8ea2dac7v 8923 e8a4a3 8923 00008923 eb79 eb79 eb79 eb79 eb79 eb79 eb79 -11393 eb7a eb7a eb7a * * 5a48 8ea2dac8,8ea2dac8v 892f e8a4af 892f 0000892f eb7a eb7a eb7a eb7a eb7a eb7a eb7a -11394 eb7b eb7b eb7b * * 5a49 8ea2dac9,8ea2dac9v 892c e8a4ac 892c 0000892c eb7b eb7b eb7b eb7b eb7b eb7b eb7b -11395 eb7c eb7c eb7c * * 5a4a 8ea2daca,8ea2dacav 891f e8a49f 891f 0000891f eb7c eb7c eb7c eb7c eb7c eb7c eb7c -11396 eb7d eb7d eb7d * * 5a4b 8ea2dacb,8ea2dacbv 89f1 e8a7b1 89f1 000089f1 eb7d eb7d eb7d eb7d eb7d eb7d eb7d -11397 eb7e eb7e eb7e * * 5a4c 8ea2dacc,8ea2daccv 8ae0 e8aba0 8ae0 00008ae0 eb7e eb7e eb7e eb7e eb7e eb7e eb7e -11398 eba1 eba1 eba1 * * 5a4d 8ea2dacd,8ea2dacdv 8ae2 e8aba2 8ae2 00008ae2 eba1 eba1 eba1 eba1 eba1 eba1 eba1 -11399 eba2 eba2 eba2 * * 5a4e 8ea2dace,8ea2dacev 8af2 e8abb2 8af2 00008af2 eba2 eba2 eba2 eba2 eba2 eba2 eba2 -11400 eba3 eba3 eba3 * * 5a4f 8ea2dacf,8ea2dacfv 8af4 e8abb4 8af4 00008af4 eba3 eba3 eba3 eba3 eba3 eba3 eba3 -11401 eba4 eba4 eba4 * * 5a50 8ea2dad0,8ea2dad0v 8af5 e8abb5 8af5 00008af5 eba4 eba4 eba4 eba4 eba4 eba4 eba4 -11402 eba5 eba5 eba5 * * 5a51 8ea2dad1,8ea2dad1v 8add e8ab9d 8add 00008add eba5 eba5 eba5 eba5 eba5 eba5 eba5 -11403 eba6 eba6 eba6 * * 5a52 8ea2dad2,8ea2dad2v 8b14 e8ac94 8b14 00008b14 eba6 eba6 eba6 eba6 eba6 eba6 eba6 -11404 eba7 eba7 eba7 * * 5a53 8ea2dad3,8ea2dad3v 8ae4 e8aba4 8ae4 00008ae4 eba7 eba7 eba7 eba7 eba7 eba7 eba7 -11405 eba8 eba8 eba8 * * 5a54 8ea2dad4,8ea2dad4v 8adf e8ab9f 8adf 00008adf eba8 eba8 eba8 eba8 eba8 eba8 eba8 -11406 eba9 eba9 eba9 * * 5a55 8ea2dad5,8ea2dad5v 8af0 e8abb0 8af0 00008af0 eba9 eba9 eba9 eba9 eba9 eba9 eba9 -11407 ebaa ebaa ebaa * * 5a56 8ea2dad6,8ea2dad6v 8ac8 e8ab88 8ac8 00008ac8 ebaa ebaa ebaa ebaa ebaa ebaa ebaa -11408 ebab ebab ebab * * 5a57 8ea2dad7,8ea2dad7v 8ade e8ab9e 8ade 00008ade ebab ebab ebab ebab ebab ebab ebab -11409 ebac ebac ebac * * 5a58 8ea2dad8,8ea2dad8v 8ae1 e8aba1 8ae1 00008ae1 ebac ebac ebac ebac ebac ebac ebac -11410 ebad ebad ebad * * 5a59 8ea2dad9,8ea2dad9v 8ae8 e8aba8 8ae8 00008ae8 ebad ebad ebad ebad ebad ebad ebad -11411 ebae ebae ebae * * 5a5a 8ea2dada,8ea2dadav 8aff e8abbf 8aff 00008aff ebae ebae ebae ebae ebae ebae ebae -11412 ebaf ebaf ebaf * * 5a5b 8ea2dadb,8ea2dadbv 8aef e8abaf 8aef 00008aef ebaf ebaf ebaf ebaf ebaf ebaf ebaf -11413 ebb0 ebb0 ebb0 * * 5a5c 8ea2dadc,8ea2dadcv 8afb e8abbb 8afb 00008afb ebb0 ebb0 ebb0 ebb0 ebb0 ebb0 ebb0 -11414 ebb1 ebb1 ebb1 * * 5a5d 8ea2dadd,8ea2daddv 8c91 e8b291 8c91 00008c91 ebb1 ebb1 ebb1 ebb1 ebb1 ebb1 ebb1 -11415 ebb2 ebb2 ebb2 * * 5a5e 8ea2dade,8ea2dadev 8c92 e8b292 8c92 00008c92 ebb2 ebb2 ebb2 ebb2 ebb2 ebb2 ebb2 -11416 ebb3 ebb3 ebb3 * * 5a5f 8ea2dadf,8ea2dadfv 8c90 e8b290 8c90 00008c90 ebb3 ebb3 ebb3 ebb3 ebb3 ebb3 ebb3 -11417 ebb4 ebb4 ebb4 * * 5a60 8ea2dae0,8ea2dae0v 8cf5 e8b3b5 8cf5 00008cf5 ebb4 ebb4 ebb4 ebb4 ebb4 ebb4 ebb4 -11418 ebb5 ebb5 ebb5 * * 5a61 8ea2dae1,8ea2dae1v 8cee e8b3ae 8cee 00008cee ebb5 ebb5 ebb5 ebb5 ebb5 ebb5 ebb5 -11419 ebb6 ebb6 ebb6 * * 5a62 8ea2dae2,8ea2dae2v 8cf1 e8b3b1 8cf1 00008cf1 ebb6 ebb6 ebb6 ebb6 ebb6 ebb6 ebb6 -11420 ebb7 ebb7 ebb7 * * 5a63 8ea2dae3,8ea2dae3v 8cf0 e8b3b0 8cf0 00008cf0 ebb7 ebb7 ebb7 ebb7 ebb7 ebb7 ebb7 -11421 ebb8 ebb8 ebb8 * * 5a64 8ea2dae4,8ea2dae4v 8cf3 e8b3b3 8cf3 00008cf3 ebb8 ebb8 ebb8 ebb8 ebb8 ebb8 ebb8 -11422 ebb9 ebb9 ebb9 * * 5a65 8ea2dae5,8ea2dae5v 8d6c e8b5ac 8d6c 00008d6c ebb9 ebb9 ebb9 ebb9 ebb9 ebb9 ebb9 -11423 ebba ebba ebba * * 5a66 8ea2dae6,8ea2dae6v 8d6e e8b5ae 8d6e 00008d6e ebba ebba ebba ebba ebba ebba ebba -11424 ebbb ebbb ebbb * * 5a67 8ea2dae7,8ea2dae7v 8da5 e8b6a5 8da5 00008da5 ebbb ebbb ebbb ebbb ebbb ebbb ebbb -11425 ebbc ebbc ebbc * * 5a68 8ea2dae8,8ea2dae8v 8da7 e8b6a7 8da7 00008da7 ebbc ebbc ebbc ebbc ebbc ebbc ebbc -11426 ebbd ebbd ebbd * * 5a69 8ea2dae9,8ea2dae9v 8e33 e8b8b3 8e33 00008e33 ebbd ebbd ebbd ebbd ebbd ebbd ebbd -11427 ebbe ebbe ebbe * * 5a6a 8ea2daea,8ea2daeav 8e3e e8b8be 8e3e 00008e3e ebbe ebbe ebbe ebbe ebbe ebbe ebbe -11428 ebbf ebbf ebbf * * 5a6b 8ea2daeb,8ea2daebv 8e38 e8b8b8 8e38 00008e38 ebbf ebbf ebbf ebbf ebbf ebbf ebbf -11429 ebc0 ebc0 ebc0 * * 5a6c 8ea2daec,8ea2daecv 8e40 e8b980 8e40 00008e40 ebc0 ebc0 ebc0 ebc0 ebc0 ebc0 ebc0 -11430 ebc1 ebc1 ebc1 * * 5a6d 8ea2daed,8ea2daedv 8e45 e8b985 8e45 00008e45 ebc1 ebc1 ebc1 ebc1 ebc1 ebc1 ebc1 -11431 ebc2 ebc2 ebc2 * * 5a6e 8ea2daee,8ea2daeev 8e36 e8b8b6 8e36 00008e36 ebc2 ebc2 ebc2 ebc2 ebc2 ebc2 ebc2 -11432 ebc3 ebc3 ebc3 * * 5a6f 8ea2daef,8ea2daefv 8e3c e8b8bc 8e3c 00008e3c ebc3 ebc3 ebc3 ebc3 ebc3 ebc3 ebc3 -11433 ebc4 ebc4 ebc4 * * 5a70 8ea2daf0,8ea2daf0v 8e3d e8b8bd 8e3d 00008e3d ebc4 ebc4 ebc4 ebc4 ebc4 ebc4 ebc4 -11434 ebc5 ebc5 ebc5 * * 5a71 8ea2daf1,8ea2daf1v 8e41 e8b981 8e41 00008e41 ebc5 ebc5 ebc5 ebc5 ebc5 ebc5 ebc5 -11435 ebc6 ebc6 ebc6 * * 5a72 8ea2daf2,8ea2daf2v 8e30 e8b8b0 8e30 00008e30 ebc6 ebc6 ebc6 ebc6 ebc6 ebc6 ebc6 -11436 ebc7 ebc7 ebc7 * * 5a73 8ea2daf3,8ea2daf3v 8e3f e8b8bf 8e3f 00008e3f ebc7 ebc7 ebc7 ebc7 ebc7 ebc7 ebc7 -11437 ebc8 ebc8 ebc8 * * 5a74 8ea2daf4,8ea2daf4v 8ebd e8babd 8ebd 00008ebd ebc8 ebc8 ebc8 ebc8 ebc8 ebc8 ebc8 -11438 ebc9 ebc9 ebc9 * * 5a75 8ea2daf5,8ea2daf5v 8f36 e8bcb6,eeaea9 8f36,eba9 00008f36,0000eba9 9c42,ebc9 ebc9 ebc9 ebc9 ebc9 ebc9 9c42,ebc9 -11439 ebca ebca ebca * * 5a76 8ea2daf6,8ea2daf6v 8f2e e8bcae 8f2e 00008f2e ebca ebca ebca ebca ebca ebca ebca -11440 ebcb ebcb ebcb * * 5a77 8ea2daf7,8ea2daf7v 8f35 e8bcb5 8f35 00008f35 ebcb ebcb ebcb ebcb ebcb ebcb ebcb -11441 ebcc ebcc ebcc * * 5a78 8ea2daf8,8ea2daf8v 8f32 e8bcb2 8f32 00008f32 ebcc ebcc ebcc ebcc ebcc ebcc ebcc -11442 ebcd ebcd ebcd * * 5a79 8ea2daf9,8ea2daf9v 8f39 e8bcb9 8f39 00008f39 ebcd ebcd ebcd ebcd ebcd ebcd ebcd -11443 ebce ebce ebce * * 5a7a 8ea2dafa,8ea2dafav 8f37 e8bcb7 8f37 00008f37 ebce ebce ebce ebce ebce ebce ebce -11444 ebcf ebcf ebcf * * 5a7b 8ea2dafb,8ea2dafbv 8f34 e8bcb4 8f34 00008f34 ebcf ebcf ebcf ebcf ebcf ebcf ebcf -11445 ebd0 ebd0 ebd0 * * 5a7c 8ea2dafc,8ea2dafcv 9076 e981b6 9076 00009076 ebd0 ebd0 ebd0 ebd0 ebd0 ebd0 ebd0 -11446 ebd1 ebd1 ebd1 * * 5a7d 8ea2dafd,8ea2dafdv 9079 e981b9 9079 00009079 ebd1 ebd1 ebd1 ebd1 ebd1 ebd1 ebd1 -11447 ebd2 ebd2 ebd2 * * 5a7e 8ea2dafe,8ea2dafev 907b e981bb 907b 0000907b ebd2 ebd2 ebd2 ebd2 ebd2 ebd2 ebd2 -11448 ebd3 ebd3 ebd3 * * 5b21 8ea2dba1,8ea2dba1v 9086 e98286 9086 00009086 ebd3 ebd3 ebd3 ebd3 ebd3 ebd3 ebd3 -11449 ebd4 ebd4 ebd4 * * 5b22 8ea2dba2,8ea2dba2v 90fa e983ba 90fa 000090fa ebd4 ebd4 ebd4 ebd4 ebd4 ebd4 ebd4 -11450 ebd5 ebd5 ebd5 * * 5b23 8ea2dba3,8ea2dba3v 9133 e984b3 9133 00009133 ebd5 ebd5 ebd5 ebd5 ebd5 ebd5 ebd5 -11451 ebd6 ebd6 ebd6 * * 5b24 8ea2dba4,8ea2dba4v 9135 e984b5 9135 00009135 ebd6 ebd6 ebd6 ebd6 ebd6 ebd6 ebd6 -11452 ebd7 ebd7 ebd7 * * 5b25 8ea2dba5,8ea2dba5v 9136 e984b6 9136 00009136 ebd7 ebd7 ebd7 ebd7 ebd7 ebd7 ebd7 -11453 ebd8 ebd8 ebd8 * * 5b26 8ea2dba6,8ea2dba6v 9193 e98693 9193 00009193 ebd8 ebd8 ebd8 ebd8 ebd8 ebd8 ebd8 -11454 ebd9 ebd9 ebd9 * * 5b27 8ea2dba7,8ea2dba7v 9190 e98690 9190 00009190 ebd9 ebd9 ebd9 ebd9 ebd9 ebd9 ebd9 -11455 ebda ebda ebda * * 5b28 8ea2dba8,8ea2dba8v 9191 e98691 9191 00009191 ebda ebda ebda ebda ebda ebda ebda -11456 ebdb ebdb ebdb * * 5b29 8ea2dba9,8ea2dba9v 918d e9868d 918d 0000918d ebdb ebdb ebdb ebdb ebdb ebdb ebdb -11457 ebdc ebdc ebdc * * 5b2a 8ea2dbaa,8ea2dbaav 918f e9868f 918f 0000918f ebdc ebdc ebdc ebdc ebdc ebdc ebdc -11458 ebdd ebdd ebdd * * 5b2b 8ea2dbab,8ea2dbabv 9327 e98ca7 9327 00009327 ebdd ebdd ebdd ebdd ebdd ebdd ebdd -11459 ebde ebde ebde * * 5b2c 8ea2dbac,8ea2dbacv 931e e98c9e 931e 0000931e ebde ebde ebde ebde ebde ebde ebde -11460 ebdf ebdf ebdf * * 5b2d 8ea2dbad,8ea2dbadv 9308 e98c88 9308 00009308 ebdf ebdf ebdf ebdf ebdf ebdf ebdf -11461 ebe0 ebe0 ebe0 * * 5b2e 8ea2dbae,8ea2dbaev 931f e98c9f 931f 0000931f ebe0 ebe0 ebe0 ebe0 ebe0 ebe0 ebe0 -11462 ebe1 ebe1 ebe1 * * 5b2f 8ea2dbaf,8ea2dbafv 9306 e98c86 9306 00009306 ebe1 ebe1 ebe1 ebe1 ebe1 ebe1 ebe1 -11463 ebe2 ebe2 ebe2 * * 5b30 8ea2dbb0,8ea2dbb0v 930f e98c8f 930f 0000930f ebe2 ebe2 ebe2 ebe2 ebe2 ebe2 ebe2 -11464 ebe3 ebe3 ebe3 * * 5b31 8ea2dbb1,8ea2dbb1v 937a e98dba 937a 0000937a ebe3 ebe3 ebe3 ebe3 ebe3 ebe3 ebe3 -11465 ebe4 ebe4 ebe4 * * 5b32 8ea2dbb2,8ea2dbb2v 9338 e98cb8 9338 00009338 ebe4 ebe4 ebe4 ebe4 ebe4 ebe4 ebe4 -11466 ebe5 ebe5 ebe5 * * 5b33 8ea2dbb3,8ea2dbb3v 933c e98cbc 933c 0000933c ebe5 ebe5 ebe5 ebe5 ebe5 ebe5 ebe5 -11467 ebe6 ebe6 ebe6 * * 5b34 8ea2dbb4,8ea2dbb4v 931b e98c9b 931b 0000931b ebe6 ebe6 ebe6 ebe6 ebe6 ebe6 ebe6 -11468 ebe7 ebe7 ebe7 * * 5b35 8ea2dbb5,8ea2dbb5v 9323 e98ca3 9323 00009323 ebe7 ebe7 ebe7 ebe7 ebe7 ebe7 ebe7 -11469 ebe8 ebe8 ebe8 * * 5b36 8ea2dbb6,8ea2dbb6v 9312 e98c92 9312 00009312 ebe8 ebe8 ebe8 ebe8 ebe8 ebe8 ebe8 -11470 ebe9 ebe9 ebe9 * * 5b37 8ea2dbb7,8ea2dbb7v 9301 e98c81 9301 00009301 ebe9 ebe9 ebe9 ebe9 ebe9 ebe9 ebe9 -11471 ebea ebea ebea * * 5b38 8ea2dbb8,8ea2dbb8v 9346 e98d86 9346 00009346 ebea ebea ebea ebea ebea ebea ebea -11472 ebeb ebeb ebeb * * 5b39 8ea2dbb9,8ea2dbb9v 932d e98cad 932d 0000932d ebeb ebeb ebeb ebeb ebeb ebeb ebeb -11473 ebec ebec ebec * * 5b3a 8ea2dbba,8ea2dbbav 930e e98c8e 930e 0000930e ebec ebec ebec ebec ebec ebec ebec -11474 ebed ebed ebed * * 5b3b 8ea2dbbb,8ea2dbbbv 930d e98c8d 930d 0000930d ebed ebed ebed ebed ebed ebed ebed -11475 ebee ebee ebee * * 5b3c 8ea2dbbc,8ea2dbbcv 92cb e98b8b 92cb 000092cb ebee ebee ebee ebee ebee ebee ebee -11476 ebef ebef ebef * * 5b3d 8ea2dbbd,8ea2dbbdv 931d e98c9d 931d 0000931d ebef ebef ebef ebef ebef ebef ebef -11477 ebf0 ebf0 ebf0 * * 5b3e 8ea2dbbe,8ea2dbbev 92fa e98bba 92fa 000092fa ebf0 ebf0 ebf0 ebf0 ebf0 ebf0 ebf0 -11478 ebf2 ebf2 ebf2 * * 5b3f 8ea2dbbf,8ea2dbbfv 9313 e98c93 9313 00009313 ebf2 ebf2 ebf2 ebf2 ebf2 ebf2 ebf2 -11479 ebf3 ebf3 ebf3 * * 5b40 8ea2dbc0,8ea2dbc0v 92f9 e98bb9 92f9 000092f9 ebf3 ebf3 ebf3 ebf3 ebf3 ebf3 ebf3 -11480 ebf4 ebf4 ebf4 * * 5b41 8ea2dbc1,8ea2dbc1v 92f7 e98bb7 92f7 000092f7 ebf4 ebf4 ebf4 ebf4 ebf4 ebf4 ebf4 -11481 ebf5 ebf5 ebf5 * * 5b42 8ea2dbc2,8ea2dbc2v 9334 e98cb4 9334 00009334 ebf5 ebf5 ebf5 ebf5 ebf5 ebf5 ebf5 -11482 ebf6 ebf6 ebf6 * * 5b43 8ea2dbc3,8ea2dbc3v 9302 e98c82 9302 00009302 ebf6 ebf6 ebf6 ebf6 ebf6 ebf6 ebf6 -11483 ebf7 ebf7 ebf7 * * 5b44 8ea2dbc4,8ea2dbc4v 9324 e98ca4 9324 00009324 ebf7 ebf7 ebf7 ebf7 ebf7 ebf7 ebf7 -11484 ebf8 ebf8 ebf8 * * 5b45 8ea2dbc5,8ea2dbc5v 92ff e98bbf 92ff 000092ff ebf8 ebf8 ebf8 ebf8 ebf8 ebf8 ebf8 -11485 ebf9 ebf9 ebf9 * * 5b46 8ea2dbc6,8ea2dbc6v 9329 e98ca9 9329 00009329 ebf9 ebf9 ebf9 ebf9 ebf9 ebf9 ebf9 -11486 ebfa ebfa ebfa * * 5b47 8ea2dbc7,8ea2dbc7v 9339 e98cb9 9339 00009339 ebfa ebfa ebfa ebfa ebfa ebfa ebfa -11487 ebfb ebfb ebfb * * 5b48 8ea2dbc8,8ea2dbc8v 9335 e98cb5 9335 00009335 ebfb ebfb ebfb ebfb ebfb ebfb ebfb -11488 ebfc ebfc ebfc * * 5b49 8ea2dbc9,8ea2dbc9v 932a e98caa 932a 0000932a ebfc ebfc ebfc ebfc ebfc ebfc ebfc -11489 ebfd ebfd ebfd * * 5b4a 8ea2dbca,8ea2dbcav 9314 e98c94 9314 00009314 ebfd ebfd ebfd ebfd ebfd ebfd ebfd -11490 ebfe ebfe ebfe * * 5b4b 8ea2dbcb,8ea2dbcbv 930c e98c8c 930c 0000930c ebfe ebfe ebfe ebfe ebfe ebfe ebfe -11491 ec40 ec40 ec40 * * 5b4c 8ea2dbcc,8ea2dbccv 930b e98c8b 930b 0000930b ec40 ec40 ec40 ec40 ec40 ec40 ec40 -11492 ec41 ec41 ec41 * * 5b4d 8ea2dbcd,8ea2dbcdv 92fe e98bbe 92fe 000092fe ec41 ec41 ec41 ec41 ec41 ec41 ec41 -11493 ec42 ec42 ec42 * * 5b4e 8ea2dbce,8ea2dbcev 9309 e98c89 9309 00009309 ec42 ec42 ec42 ec42 ec42 ec42 ec42 -11494 ec43 ec43 ec43 * * 5b4f 8ea2dbcf,8ea2dbcfv 9300 e98c80 9300 00009300 ec43 ec43 ec43 ec43 ec43 ec43 ec43 -11495 ec44 ec44 ec44 * * 5b50 8ea2dbd0,8ea2dbd0v 92fb e98bbb 92fb 000092fb ec44 ec44 ec44 ec44 ec44 ec44 ec44 -11496 ec45 ec45 ec45 * * 5b51 8ea2dbd1,8ea2dbd1v 9316 e98c96 9316 00009316 ec45 ec45 ec45 ec45 ec45 ec45 ec45 -11497 ec46 ec46 ec46 * * 5b52 8ea2dbd2,8ea2dbd2v 95bc e996bc 95bc 000095bc ec46 ec46 ec46 ec46 ec46 ec46 ec46 -11498 ec47 ec47 ec47 * * 5b53 8ea2dbd3,8ea2dbd3v 95cd e9978d 95cd 000095cd ec47 ec47 ec47 ec47 ec47 ec47 ec47 -11499 ec48 ec48 ec48 * * 5b54 8ea2dbd4,8ea2dbd4v 95be e996be 95be 000095be ec48 ec48 ec48 ec48 ec48 ec48 ec48 -11500 ec49 ec49 ec49 * * 5b55 8ea2dbd5,8ea2dbd5v 95b9 e996b9 95b9 000095b9 ec49 ec49 ec49 ec49 ec49 ec49 ec49 -11501 ec4a ec4a ec4a * * 5b56 8ea2dbd6,8ea2dbd6v 95ba e996ba 95ba 000095ba ec4a ec4a ec4a ec4a ec4a ec4a ec4a -11502 ec4b ec4b ec4b * * 5b57 8ea2dbd7,8ea2dbd7v 95b6 e996b6 95b6 000095b6 ec4b ec4b ec4b ec4b ec4b ec4b ec4b -11503 ec4c ec4c ec4c * * 5b58 8ea2dbd8,8ea2dbd8v 95bf e996bf 95bf 000095bf ec4c ec4c ec4c ec4c ec4c ec4c ec4c -11504 ec4d ec4d ec4d * * 5b59 8ea2dbd9,8ea2dbd9v 95b5 e996b5 95b5 000095b5 ec4d ec4d ec4d ec4d ec4d ec4d ec4d -11505 ec4e ec4e ec4e * * 5b5a 8ea2dbda,8ea2dbdav 95bd e996bd 95bd 000095bd ec4e ec4e ec4e ec4e ec4e ec4e ec4e -11506 ec4f ec4f ec4f * * 5b5b 8ea2dbdb,8ea2dbdbv 96a9 e99aa9 96a9 000096a9 ec4f ec4f ec4f ec4f ec4f ec4f ec4f -11507 ec50 ec50 ec50 * * 5b5c 8ea2dbdc,8ea2dbdcv 96d4 e99b94 96d4 000096d4 ec50 ec50 ec50 ec50 ec50 ec50 ec50 -11508 ec51 ec51 ec51 * * 5b5d 8ea2dbdd,8ea2dbddv 970b e99c8b 970b 0000970b ec51 ec51 ec51 ec51 ec51 ec51 ec51 -11509 ec52 ec52 ec52 * * 5b5e 8ea2dbde,8ea2dbdev 9712 e99c92 9712 00009712 ec52 ec52 ec52 ec52 ec52 ec52 ec52 -11510 ec53 ec53 ec53 * * 5b5f 8ea2dbdf,8ea2dbdfv 9710 e99c90 9710 00009710 ec53 ec53 ec53 ec53 ec53 ec53 ec53 -11511 ec54 ec54 ec54 * * 5b60 8ea2dbe0,8ea2dbe0v 9799 e99e99 9799 00009799 ec54 ec54 ec54 ec54 ec54 ec54 ec54 -11512 ec55 ec55 ec55 * * 5b61 8ea2dbe1,8ea2dbe1v 9797 e99e97 9797 00009797 ec55 ec55 ec55 ec55 ec55 ec55 ec55 -11513 ec56 ec56 ec56 * * 5b62 8ea2dbe2,8ea2dbe2v 9794 e99e94 9794 00009794 ec56 ec56 ec56 ec56 ec56 ec56 ec56 -11514 ec57 ec57 ec57 * * 5b63 8ea2dbe3,8ea2dbe3v 97f0 e99fb0 97f0 000097f0 ec57 ec57 ec57 ec57 ec57 ec57 ec57 -11515 ec58 ec58 ec58 * * 5b64 8ea2dbe4,8ea2dbe4v 97f8 e99fb8 97f8 000097f8 ec58 ec58 ec58 ec58 ec58 ec58 ec58 -11516 ec59 ec59 ec59 * * 5b65 8ea2dbe5,8ea2dbe5v 9835 e9a0b5 9835 00009835 ec59 ec59 ec59 ec59 ec59 ec59 ec59 -11517 ec5a ec5a ec5a * * 5b66 8ea2dbe6,8ea2dbe6v 982f e9a0af 982f 0000982f ec5a ec5a ec5a ec5a ec5a ec5a ec5a -11518 ec5b ec5b ec5b * * 5b67 8ea2dbe7,8ea2dbe7v 9832 e9a0b2 9832 00009832 ec5b ec5b ec5b ec5b ec5b ec5b ec5b -11519 ec5c ec5c ec5c * * 5b68 8ea2dbe8,8ea2dbe8v 9924 e9a4a4 9924 00009924 ec5c ec5c ec5c ec5c ec5c ec5c ec5c -11520 ec5d ec5d ec5d * * 5b69 8ea2dbe9,8ea2dbe9v 991f e9a49f 991f 0000991f ec5d ec5d ec5d ec5d ec5d ec5d ec5d -11521 ec5e ec5e ec5e * * 5b6a 8ea2dbea,8ea2dbeav 9927 e9a4a7 9927 00009927 ec5e ec5e ec5e ec5e ec5e ec5e ec5e -11522 ec5f ec5f ec5f * * 5b6b 8ea2dbeb,8ea2dbebv 9929 e9a4a9 9929 00009929 ec5f ec5f ec5f ec5f ec5f ec5f ec5f -11523 ec60 ec60 ec60 * * 5b6c 8ea2dbec,8ea2dbecv 999e e9a69e 999e 0000999e ec60 ec60 ec60 ec60 ec60 ec60 ec60 -11524 ec61 ec61 ec61 * * 5b6d 8ea2dbed,8ea2dbedv 99ee e9a7ae 99ee 000099ee ec61 ec61 ec61 ec61 ec61 ec61 ec61 -11525 ec62 ec62 ec62 * * 5b6e 8ea2dbee,8ea2dbeev 99ec e9a7ac 99ec 000099ec ec62 ec62 ec62 ec62 ec62 ec62 ec62 -11526 ec63 ec63 ec63 * * 5b6f 8ea2dbef,8ea2dbefv 99e5 e9a7a5 99e5 000099e5 ec63 ec63 ec63 ec63 ec63 ec63 ec63 -11527 ec64 ec64 ec64 * * 5b70 8ea2dbf0,8ea2dbf0v 99e4 e9a7a4 99e4 000099e4 ec64 ec64 ec64 ec64 ec64 ec64 ec64 -11528 ec65 ec65 ec65 * * 5b71 8ea2dbf1,8ea2dbf1v 99f0 e9a7b0 99f0 000099f0 ec65 ec65 ec65 ec65 ec65 ec65 ec65 -11529 ec66 ec66 ec66 * * 5b72 8ea2dbf2,8ea2dbf2v 99e3 e9a7a3 99e3 000099e3 ec66 ec66 ec66 ec66 ec66 ec66 ec66 -11530 ec67 ec67 ec67 * * 5b73 8ea2dbf3,8ea2dbf3v 99ea e9a7aa 99ea 000099ea ec67 ec67 ec67 ec67 ec67 ec67 ec67 -11531 ec68 ec68 ec68 * * 5b74 8ea2dbf4,8ea2dbf4v 99e9 e9a7a9 99e9 000099e9 ec68 ec68 ec68 ec68 ec68 ec68 ec68 -11532 ec69 ec69 ec69 * * 5b75 8ea2dbf5,8ea2dbf5v 99e7 e9a7a7 99e7 000099e7 ec69 ec69 ec69 ec69 ec69 ec69 ec69 -11533 ec6a ec6a ec6a * * 5b76 8ea2dbf6,8ea2dbf6v 9ab9 e9aab9 9ab9 00009ab9 ec6a ec6a ec6a ec6a ec6a ec6a ec6a -11534 ec6b ec6b ec6b * * 5b77 8ea2dbf7,8ea2dbf7v 9abf e9aabf 9abf 00009abf ec6b ec6b ec6b ec6b ec6b ec6b ec6b -11535 ec6c ec6c ec6c * * 5b78 8ea2dbf8,8ea2dbf8v 9ab4 e9aab4 9ab4 00009ab4 ec6c ec6c ec6c ec6c ec6c ec6c ec6c -11536 ec6d ec6d ec6d * * 5b79 8ea2dbf9,8ea2dbf9v 9abb e9aabb 9abb 00009abb ec6d ec6d ec6d ec6d ec6d ec6d ec6d -11537 ec6e ec6e ec6e * * 5b7a 8ea2dbfa,8ea2dbfav 9af6 e9abb6 9af6 00009af6 ec6e ec6e ec6e ec6e ec6e ec6e ec6e -11538 ec6f ec6f ec6f * * 5b7b 8ea2dbfb,8ea2dbfbv 9afa e9abba 9afa 00009afa ec6f ec6f ec6f ec6f ec6f ec6f ec6f -11539 ec70 ec70 ec70 * * 5b7c 8ea2dbfc,8ea2dbfcv 9af9 e9abb9 9af9 00009af9 ec70 ec70 ec70 ec70 ec70 ec70 ec70 -11540 ec71 ec71 ec71 * * 5b7d 8ea2dbfd,8ea2dbfdv 9af7 e9abb7 9af7 00009af7 ec71 ec71 ec71 ec71 ec71 ec71 ec71 -11541 ec72 ec72 ec72 * * 5b7e 8ea2dbfe,8ea2dbfev 9b33 e9acb3 9b33 00009b33 ec72 ec72 ec72 ec72 ec72 ec72 ec72 -11542 ec73 ec73 ec73 * * 5c21 8ea2dca1,8ea2dca1v 9b80 e9ae80 9b80 00009b80 ec73 ec73 ec73 ec73 ec73 ec73 ec73 -11543 ec74 ec74 ec74 * * 5c22 8ea2dca2,8ea2dca2v 9b85 e9ae85 9b85 00009b85 ec74 ec74 ec74 ec74 ec74 ec74 ec74 -11544 ec75 ec75 ec75 * * 5c23 8ea2dca3,8ea2dca3v 9b87 e9ae87 9b87 00009b87 ec75 ec75 ec75 ec75 ec75 ec75 ec75 -11545 ec76 ec76 ec76 * * 5c24 8ea2dca4,8ea2dca4v 9b7c e9adbc 9b7c 00009b7c ec76 ec76 ec76 ec76 ec76 ec76 ec76 -11546 ec77 ec77 ec77 * * 5c25 8ea2dca5,8ea2dca5v 9b7e e9adbe 9b7e 00009b7e ec77 ec77 ec77 ec77 ec77 ec77 ec77 -11547 ec78 ec78 ec78 * * 5c26 8ea2dca6,8ea2dca6v 9b7b e9adbb 9b7b 00009b7b ec78 ec78 ec78 ec78 ec78 ec78 ec78 -11548 ec79 ec79 ec79 * * 5c27 8ea2dca7,8ea2dca7v 9b82 e9ae82 9b82 00009b82 ec79 ec79 ec79 ec79 ec79 ec79 ec79 -11549 ec7a ec7a ec7a * * 5c28 8ea2dca8,8ea2dca8v 9b93 e9ae93 9b93 00009b93 ec7a ec7a ec7a ec7a ec7a ec7a ec7a -11550 ec7b ec7b ec7b * * 5c29 8ea2dca9,8ea2dca9v 9b92 e9ae92 9b92 00009b92 ec7b ec7b ec7b ec7b ec7b ec7b ec7b -11551 ec7c ec7c ec7c * * 5c2a 8ea2dcaa,8ea2dcaav 9b90 e9ae90 9b90 00009b90 ec7c ec7c ec7c ec7c ec7c ec7c ec7c -11552 ec7d ec7d ec7d * * 5c2b 8ea2dcab,8ea2dcabv 9b7a e9adba 9b7a 00009b7a ec7d ec7d ec7d ec7d ec7d ec7d ec7d -11553 ec7e ec7e ec7e * * 5c2c 8ea2dcac,8ea2dcacv 9b95 e9ae95 9b95 00009b95 ec7e ec7e ec7e ec7e ec7e ec7e ec7e -11554 eca1 eca1 eca1 * * 5c2d 8ea2dcad,8ea2dcadv 9b7d e9adbd 9b7d 00009b7d eca1 eca1 eca1 eca1 eca1 eca1 eca1 -11555 eca2 eca2 eca2 * * 5c2e 8ea2dcae,8ea2dcaev 9b88 e9ae88 9b88 00009b88 eca2 eca2 eca2 eca2 eca2 eca2 eca2 -11556 eca3 eca3 eca3 * * 5c2f 8ea2dcaf,8ea2dcafv 9d25 e9b4a5 9d25 00009d25 eca3 eca3 eca3 eca3 eca3 eca3 eca3 -11557 eca4 eca4 eca4 * * 5c30 8ea2dcb0,8ea2dcb0v 9d17 e9b497 9d17 00009d17 eca4 eca4 eca4 eca4 eca4 eca4 eca4 -11558 eca5 eca5 eca5 * * 5c31 8ea2dcb1,8ea2dcb1v 9d20 e9b4a0 9d20 00009d20 eca5 eca5 eca5 eca5 eca5 eca5 eca5 -11559 eca6 eca6 eca6 * * 5c32 8ea2dcb2,8ea2dcb2v 9d1e e9b49e 9d1e 00009d1e eca6 eca6 eca6 eca6 eca6 eca6 eca6 -11560 eca7 eca7 eca7 * * 5c33 8ea2dcb3,8ea2dcb3v 9d14 e9b494 9d14 00009d14 eca7 eca7 eca7 eca7 eca7 eca7 eca7 -11561 eca8 eca8 eca8 * * 5c34 8ea2dcb4,8ea2dcb4v 9d29 e9b4a9 9d29 00009d29 eca8 eca8 eca8 eca8 eca8 eca8 eca8 -11562 eca9 eca9 eca9 * * 5c35 8ea2dcb5,8ea2dcb5v 9d1d e9b49d 9d1d 00009d1d eca9 eca9 eca9 eca9 eca9 eca9 eca9 -11563 ecaa ecaa ecaa * * 5c36 8ea2dcb6,8ea2dcb6v 9d18 e9b498 9d18 00009d18 ecaa ecaa ecaa ecaa ecaa ecaa ecaa -11564 ecab ecab ecab * * 5c37 8ea2dcb7,8ea2dcb7v 9d22 e9b4a2 9d22 00009d22 ecab ecab ecab ecab ecab ecab ecab -11565 ecac ecac ecac * * 5c38 8ea2dcb8,8ea2dcb8v 9d10 e9b490 9d10 00009d10 ecac ecac ecac ecac ecac ecac ecac -11566 ecad ecad ecad * * 5c39 8ea2dcb9,8ea2dcb9v 9d19 e9b499 9d19 00009d19 ecad ecad ecad ecad ecad ecad ecad -11567 ecae ecae ecae * * 5c3a 8ea2dcba,8ea2dcbav 9d1f e9b49f 9d1f 00009d1f ecae ecae ecae ecae ecae ecae ecae -11568 ecaf ecaf ecaf * * 5c3b 8ea2dcbb,8ea2dcbbv 9e88 e9ba88 9e88 00009e88 ecaf ecaf ecaf ecaf ecaf ecaf ecaf -11569 ecb0 ecb0 ecb0 * * 5c3c 8ea2dcbc,8ea2dcbcv 9e86 e9ba86 9e86 00009e86 ecb0 ecb0 ecb0 ecb0 ecb0 ecb0 ecb0 -11570 ecb1 ecb1 ecb1 * * 5c3d 8ea2dcbd,8ea2dcbdv 9e87 e9ba87 9e87 00009e87 ecb1 ecb1 ecb1 ecb1 ecb1 ecb1 ecb1 -11571 ecb2 ecb2 ecb2 * * 5c3e 8ea2dcbe,8ea2dcbev 9eae e9baae 9eae 00009eae ecb2 ecb2 ecb2 ecb2 ecb2 ecb2 ecb2 -11572 ecb3 ecb3 ecb3 * * 5c3f 8ea2dcbf,8ea2dcbfv 9ead e9baad 9ead 00009ead ecb3 ecb3 ecb3 ecb3 ecb3 ecb3 ecb3 -11573 ecb4 ecb4 ecb4 * * 5c40 8ea2dcc0,8ea2dcc0v 9ed5 e9bb95 9ed5 00009ed5 ecb4 ecb4 ecb4 ecb4 ecb4 ecb4 ecb4 -11574 ecb5 ecb5 ecb5 * * 5c41 8ea2dcc1,8ea2dcc1v 9ed6 e9bb96 9ed6 00009ed6 ecb5 ecb5 ecb5 ecb5 ecb5 ecb5 ecb5 -11575 ecb6 ecb6 ecb6 * * 5c42 8ea2dcc2,8ea2dcc2v 9efa e9bbba 9efa 00009efa ecb6 ecb6 ecb6 ecb6 ecb6 ecb6 ecb6 -11576 ecb7 ecb7 ecb7 * * 5c43 8ea2dcc3,8ea2dcc3v 9f12 e9bc92 9f12 00009f12 ecb7 ecb7 ecb7 ecb7 ecb7 ecb7 ecb7 -11577 ecb8 ecb8 ecb8 * * 5c44 8ea2dcc4,8ea2dcc4v 9f3d e9bcbd 9f3d 00009f3d ecb8 ecb8 ecb8 ecb8 ecb8 ecb8 ecb8 -11578 ecb9 ecb9 ecb9 * * 5c45 8ea2dcc5,8ea2dcc5v 5126 e584a6 5126 00005126 ecb9 ecb9 ecb9 ecb9 ecb9 ecb9 ecb9 -11579 ecba ecba ecba * * 5c46 8ea2dcc6,8ea2dcc6v 5125 e584a5 5125 00005125 ecba ecba ecba ecba ecba ecba ecba -11580 ecbb ecbb ecbb * * 5c47 8ea2dcc7,8ea2dcc7v 5122 e584a2 5122 00005122 ecbb ecbb ecbb ecbb ecbb ecbb ecbb -11581 ecbc ecbc ecbc * * 5c48 8ea2dcc8,8ea2dcc8v 5124 e584a4 5124 00005124 ecbc ecbc ecbc ecbc ecbc ecbc ecbc -11582 ecbd ecbd ecbd * * 5c49 8ea2dcc9,8ea2dcc9v 5120 e584a0 5120 00005120 ecbd ecbd ecbd ecbd ecbd ecbd ecbd -11583 ecbe ecbe ecbe * * 5c4a 8ea2dcca,8ea2dccav 5129 e584a9 5129 00005129 ecbe ecbe ecbe ecbe ecbe ecbe ecbe -11584 ecbf ecbf ecbf * * 5c4b 8ea2dccb,8ea2dccbv 52f4 e58bb4 52f4 000052f4 ecbf ecbf ecbf ecbf ecbf ecbf ecbf -11585 ecc0 ecc0 ecc0 * * 5c4c 8ea2dccc,8ea2dcccv 5693 e59a93 5693 00005693 ecc0 ecc0 ecc0 ecc0 ecc0 ecc0 ecc0 -11586 ecc1 ecc1 ecc1 * * 5c4d 8ea2dccd,8ea2dccdv 568c e59a8c 568c 0000568c ecc1 ecc1 ecc1 ecc1 ecc1 ecc1 ecc1 -11587 ecc2 ecc2 ecc2 * * 5c4e 8ea2dcce,8ea2dccev 568d e59a8d 568d 0000568d ecc2 ecc2 ecc2 ecc2 ecc2 ecc2 ecc2 -11588 ecc3 ecc3 ecc3 * * 5c4f 8ea2dccf,8ea2dccfv 5686 e59a86 5686 00005686 ecc3 ecc3 ecc3 ecc3 ecc3 ecc3 ecc3 -11589 ecc4 ecc4 ecc4 * * 5c50 8ea2dcd0,8ea2dcd0v 5684 e59a84 5684 00005684 ecc4 ecc4 ecc4 ecc4 ecc4 ecc4 ecc4 -11590 ecc5 ecc5 ecc5 * * 5c51 8ea2dcd1,8ea2dcd1v 5683 e59a83 5683 00005683 ecc5 ecc5 ecc5 ecc5 ecc5 ecc5 ecc5 -11591 ecc6 ecc6 ecc6 * * 5c52 8ea2dcd2,8ea2dcd2v 567e e599be 567e 0000567e ecc6 ecc6 ecc6 ecc6 ecc6 ecc6 ecc6 -11592 ecc7 ecc7 ecc7 * * 5c53 8ea2dcd3,8ea2dcd3v 5682 e59a82 5682 00005682 ecc7 ecc7 ecc7 ecc7 ecc7 ecc7 ecc7 -11593 ecc8 ecc8 ecc8 * * 5c54 8ea2dcd4,8ea2dcd4v 567f e599bf 567f 0000567f ecc8 ecc8 ecc8 ecc8 ecc8 ecc8 ecc8 -11594 ecc9 ecc9 ecc9 * * 5c55 8ea2dcd5,8ea2dcd5v 5681 e59a81 5681 00005681 ecc9 ecc9 ecc9 ecc9 ecc9 ecc9 ecc9 -11595 ecca ecca ecca * * 5c56 8ea2dcd6,8ea2dcd6v 58d6 e5a396 58d6 000058d6 ecca ecca ecca ecca ecca ecca ecca -11596 eccb eccb eccb * * 5c57 8ea2dcd7,8ea2dcd7v 58d4 e5a394 58d4 000058d4 eccb eccb eccb eccb eccb eccb eccb -11597 eccc eccc eccc * * 5c58 8ea2dcd8,8ea2dcd8v 58cf e5a38f 58cf 000058cf eccc eccc eccc eccc eccc eccc eccc -11598 eccd eccd eccd * * 5c59 8ea2dcd9,8ea2dcd9v 58d2 e5a392 58d2 000058d2 eccd eccd eccd eccd eccd eccd eccd -11599 ecce ecce ecce * * 5c5a 8ea2dcda,8ea2dcdav 5b2d e5acad 5b2d 00005b2d ecce ecce ecce ecce ecce ecce ecce -11600 eccf eccf eccf * * 5c5b 8ea2dcdb,8ea2dcdbv 5b25 e5aca5 5b25 00005b25 eccf eccf eccf eccf eccf eccf eccf -11601 ecd0 ecd0 ecd0 * * 5c5c 8ea2dcdc,8ea2dcdcv 5b32 e5acb2 5b32 00005b32 ecd0 ecd0 ecd0 ecd0 ecd0 ecd0 ecd0 -11602 ecd1 ecd1 ecd1 * * 5c5d 8ea2dcdd,8ea2dcddv 5b23 e5aca3 5b23 00005b23 ecd1 ecd1 ecd1 ecd1 ecd1 ecd1 ecd1 -11603 ecd2 ecd2 ecd2 * * 5c5e 8ea2dcde,8ea2dcdev 5b2c e5acac 5b2c 00005b2c ecd2 ecd2 ecd2 ecd2 ecd2 ecd2 ecd2 -11604 ecd3 ecd3 ecd3 * * 5c5f 8ea2dcdf,8ea2dcdfv 5b27 e5aca7 5b27 00005b27 ecd3 ecd3 ecd3 ecd3 ecd3 ecd3 ecd3 -11605 ecd4 ecd4 ecd4 * * 5c60 8ea2dce0,8ea2dce0v 5b26 e5aca6 5b26 00005b26 ecd4 ecd4 ecd4 ecd4 ecd4 ecd4 ecd4 -11606 ecd5 ecd5 ecd5 * * 5c61 8ea2dce1,8ea2dce1v 5b2f e5acaf 5b2f 00005b2f ecd5 ecd5 ecd5 ecd5 ecd5 ecd5 ecd5 -11607 ecd6 ecd6 ecd6 * * 5c62 8ea2dce2,8ea2dce2v 5b2e e5acae 5b2e 00005b2e ecd6 ecd6 ecd6 ecd6 ecd6 ecd6 ecd6 -11608 ecd7 ecd7 ecd7 * * 5c63 8ea2dce3,8ea2dce3v 5b7b e5adbb 5b7b 00005b7b ecd7 ecd7 ecd7 ecd7 ecd7 ecd7 ecd7 -11609 ecd8 ecd8 ecd8 * * 5c64 8ea2dce4,8ea2dce4v 5bf1 e5afb1 5bf1 00005bf1 ecd8 ecd8 ecd8 ecd8 ecd8 ecd8 ecd8 -11610 ecd9 ecd9 ecd9 * * 5c65 8ea2dce5,8ea2dce5v 5bf2 e5afb2 5bf2 00005bf2 ecd9 ecd9 ecd9 ecd9 ecd9 ecd9 ecd9 -11611 ecda ecda ecda * * 5c66 8ea2dce6,8ea2dce6v 5db7 e5b6b7 5db7 00005db7 ecda ecda ecda ecda ecda ecda ecda -11612 ecdb ecdb ecdb * * 5c67 8ea2dce7,8ea2dce7v 5e6c e5b9ac 5e6c 00005e6c ecdb ecdb ecdb ecdb ecdb ecdb ecdb -11613 ecdc ecdc ecdc * * 5c68 8ea2dce8,8ea2dce8v 5e6a e5b9aa 5e6a 00005e6a ecdc ecdc ecdc ecdc ecdc ecdc ecdc -11614 ecdd ecdd ecdd * * 5c69 8ea2dce9,8ea2dce9v 5fbe e5bebe 5fbe 00005fbe ecdd ecdd ecdd ecdd ecdd ecdd ecdd -11615 ecdf ecdf ecdf * * 5c6a 8ea2dcea,8ea2dceav 61c3 e68783 61c3 000061c3 ecdf ecdf ecdf ecdf ecdf ecdf ecdf -11616 ece0 ece0 ece0 * * 5c6b 8ea2dceb,8ea2dcebv 61b5 e686b5 61b5 000061b5 ece0 ece0 ece0 ece0 ece0 ece0 ece0 -11617 ece1 ece1 ece1 * * 5c6c 8ea2dcec,8ea2dcecv 61bc e686bc 61bc 000061bc ece1 ece1 ece1 ece1 ece1 ece1 ece1 -11618 ece2 ece2 ece2 * * 5c6d 8ea2dced,8ea2dcedv 61e7 e687a7 61e7 000061e7 ece2 ece2 ece2 ece2 ece2 ece2 ece2 -11619 ece3 ece3 ece3 * * 5c6e 8ea2dcee,8ea2dceev 61e0 e687a0 61e0 000061e0 ece3 ece3 ece3 ece3 ece3 ece3 ece3 -11620 ece4 ece4 ece4 * * 5c6f 8ea2dcef,8ea2dcefv 61e5 e687a5 61e5 000061e5 ece4 ece4 ece4 ece4 ece4 ece4 ece4 -11621 ece5 ece5 ece5 * * 5c70 8ea2dcf0,8ea2dcf0v 61e4 e687a4 61e4 000061e4 ece5 ece5 ece5 ece5 ece5 ece5 ece5 -11622 ece6 ece6 ece6 * * 5c71 8ea2dcf1,8ea2dcf1v 61e8 e687a8 61e8 000061e8 ece6 ece6 ece6 ece6 ece6 ece6 ece6 -11623 ece7 ece7 ece7 * * 5c72 8ea2dcf2,8ea2dcf2v 61de e6879e 61de 000061de ece7 ece7 ece7 ece7 ece7 ece7 ece7 -11624 ece8 ece8 ece8 * * 5c73 8ea2dcf3,8ea2dcf3v 64ef e693af 64ef 000064ef ece8 ece8 ece8 ece8 ece8 ece8 ece8 -11625 ece9 ece9 ece9 * * 5c74 8ea2dcf4,8ea2dcf4v 64e9 e693a9 64e9 000064e9 ece9 ece9 ece9 ece9 ece9 ece9 ece9 -11626 ecea ecea ecea * * 5c75 8ea2dcf5,8ea2dcf5v 64e3 e693a3 64e3 000064e3 ecea ecea ecea ecea ecea ecea ecea -11627 eceb eceb eceb * * 5c76 8ea2dcf6,8ea2dcf6v 64eb e693ab 64eb 000064eb eceb eceb eceb eceb eceb eceb eceb -11628 ecec ecec ecec * * 5c77 8ea2dcf7,8ea2dcf7v 64e4 e693a4 64e4 000064e4 ecec ecec ecec ecec ecec ecec ecec -11629 eced eced eced * * 5c78 8ea2dcf8,8ea2dcf8v 64e8 e693a8 64e8 000064e8 eced eced eced eced eced eced eced -11630 ecee ecee ecee * * 5c79 8ea2dcf9,8ea2dcf9v 6581 e69681 6581 00006581 ecee ecee ecee ecee ecee ecee ecee -11631 ecef ecef ecef * * 5c7a 8ea2dcfa,8ea2dcfav 6580 e69680 6580 00006580 ecef ecef ecef ecef ecef ecef ecef -11632 ecf0 ecf0 ecf0 * * 5c7b 8ea2dcfb,8ea2dcfbv 65b6 e696b6 65b6 000065b6 ecf0 ecf0 ecf0 ecf0 ecf0 ecf0 ecf0 -11633 ecf1 ecf1 ecf1 * * 5c7c 8ea2dcfc,8ea2dcfcv 65da e6979a 65da 000065da ecf1 ecf1 ecf1 ecf1 ecf1 ecf1 ecf1 -11634 ecf2 ecf2 ecf2 * * 5c7d 8ea2dcfd,8ea2dcfdv 66d2 e69b92 66d2 000066d2 ecf2 ecf2 ecf2 ecf2 ecf2 ecf2 ecf2 -11635 ecf3 ecf3 ecf3 * * 5c7e 8ea2dcfe,8ea2dcfev 6a8d e6aa8d 6a8d 00006a8d ecf3 ecf3 ecf3 ecf3 ecf3 ecf3 ecf3 -11636 ecf4 ecf4 ecf4 * * 5d21 8ea2dda1,8ea2dda1v 6a96 e6aa96 6a96 00006a96 ecf4 ecf4 ecf4 ecf4 ecf4 ecf4 ecf4 -11637 ecf5 ecf5 ecf5 * * 5d22 8ea2dda2,8ea2dda2v 6a81 e6aa81 6a81 00006a81 ecf5 ecf5 ecf5 ecf5 ecf5 ecf5 ecf5 -11638 ecf6 ecf6 ecf6 * * 5d23 8ea2dda3,8ea2dda3v 6aa5 e6aaa5 6aa5 00006aa5 ecf6 ecf6 ecf6 ecf6 ecf6 ecf6 ecf6 -11639 ecf7 ecf7 ecf7 * * 5d24 8ea2dda4,8ea2dda4v 6a89 e6aa89 6a89 00006a89 ecf7 ecf7 ecf7 ecf7 ecf7 ecf7 ecf7 -11640 ecf8 ecf8 ecf8 * * 5d25 8ea2dda5,8ea2dda5v 6a9f e6aa9f 6a9f 00006a9f ecf8 ecf8 ecf8 ecf8 ecf8 ecf8 ecf8 -11641 ecf9 ecf9 ecf9 * * 5d26 8ea2dda6,8ea2dda6v 6a9b e6aa9b 6a9b 00006a9b ecf9 ecf9 ecf9 ecf9 ecf9 ecf9 ecf9 -11642 ecfa ecfa ecfa * * 5d27 8ea2dda7,8ea2dda7v 6aa1 e6aaa1 6aa1 00006aa1 ecfa ecfa ecfa ecfa ecfa ecfa ecfa -11643 ecfb ecfb ecfb * * 5d28 8ea2dda8,8ea2dda8v 6a9e e6aa9e 6a9e 00006a9e ecfb ecfb ecfb ecfb ecfb ecfb ecfb -11644 ecfc ecfc ecfc * * 5d29 8ea2dda9,8ea2dda9v 6a87 e6aa87 6a87 00006a87 ecfc ecfc ecfc ecfc ecfc ecfc ecfc -11645 ecfd ecfd ecfd * * 5d2a 8ea2ddaa,8ea2ddaav 6a93 e6aa93 6a93 00006a93 ecfd ecfd ecfd ecfd ecfd ecfd ecfd -11646 ecfe ecfe ecfe * * 5d2b 8ea2ddab,8ea2ddabv 6a8e e6aa8e 6a8e 00006a8e ecfe ecfe ecfe ecfe ecfe ecfe ecfe -11647 ed40 ed40 ed40 * * 5d2c 8ea2ddac,8ea2ddacv 6a95 e6aa95 6a95 00006a95 ed40 ed40 ed40 ed40 ed40 ed40 ed40 -11648 ed41 ed41 ed41 * * 5d2d 8ea2ddad,8ea2ddadv 6a83 e6aa83 6a83 00006a83 ed41 ed41 ed41 ed41 ed41 ed41 ed41 -11649 ed42 ed42 ed42 * * 5d2e 8ea2ddae,8ea2ddaev 6aa8 e6aaa8 6aa8 00006aa8 ed42 ed42 ed42 ed42 ed42 ed42 ed42 -11650 ed43 ed43 ed43 * * 5d2f 8ea2ddaf,8ea2ddafv 6aa4 e6aaa4 6aa4 00006aa4 ed43 ed43 ed43 ed43 ed43 ed43 ed43 -11651 ed44 ed44 ed44 * * 5d30 8ea2ddb0,8ea2ddb0v 6a91 e6aa91 6a91 00006a91 ed44 ed44 ed44 ed44 ed44 ed44 ed44 -11652 ed45 ed45 ed45 * * 5d31 8ea2ddb1,8ea2ddb1v 6a7f e6a9bf 6a7f 00006a7f ed45 ed45 ed45 ed45 ed45 ed45 ed45 -11653 ed46 ed46 ed46 * * 5d32 8ea2ddb2,8ea2ddb2v 6aa6 e6aaa6 6aa6 00006aa6 ed46 ed46 ed46 ed46 ed46 ed46 ed46 -11654 ed47 ed47 ed47 * * 5d33 8ea2ddb3,8ea2ddb3v 6a9a e6aa9a 6a9a 00006a9a ed47 ed47 ed47 ed47 ed47 ed47 ed47 -11655 ed48 ed48 ed48 * * 5d34 8ea2ddb4,8ea2ddb4v 6a85 e6aa85 6a85 00006a85 ed48 ed48 ed48 ed48 ed48 ed48 ed48 -11656 ed49 ed49 ed49 * * 5d35 8ea2ddb5,8ea2ddb5v 6a8c e6aa8c 6a8c 00006a8c ed49 ed49 ed49 ed49 ed49 ed49 ed49 -11657 ed4a ed4a ed4a * * 5d36 8ea2ddb6,8ea2ddb6v 6a92 e6aa92 6a92 00006a92 ed4a ed4a ed4a ed4a ed4a ed4a ed4a -11658 ed4b ed4b ed4b * * 5d37 8ea2ddb7,8ea2ddb7v 6b5b e6ad9b 6b5b 00006b5b ed4b ed4b ed4b ed4b ed4b ed4b ed4b -11659 ed4c ed4c ed4c * * 5d38 8ea2ddb8,8ea2ddb8v 6bad e6aead 6bad 00006bad ed4c ed4c ed4c ed4c ed4c ed4c ed4c -11660 ed4d ed4d ed4d * * 5d39 8ea2ddb9,8ea2ddb9v 6c09 e6b089 6c09 00006c09 ed4d ed4d ed4d ed4d ed4d ed4d ed4d -11661 ed4e ed4e ed4e * * 5d3a 8ea2ddba,8ea2ddbav 6fcc e6bf8c 6fcc 00006fcc ed4e ed4e ed4e ed4e ed4e ed4e ed4e -11662 ed4f ed4f ed4f * * 5d3b 8ea2ddbb,8ea2ddbbv 6fa9 e6bea9 6fa9 00006fa9 ed4f ed4f ed4f ed4f ed4f ed4f ed4f -11663 ed50 ed50 ed50 * * 5d3c 8ea2ddbc,8ea2ddbcv 6ff4 e6bfb4 6ff4 00006ff4 ed50 ed50 ed50 ed50 ed50 ed50 ed50 -11664 ed51 ed51 ed51 * * 5d3d 8ea2ddbd,8ea2ddbdv 6fd4 e6bf94 6fd4 00006fd4 ed51 ed51 ed51 ed51 ed51 ed51 ed51 -11665 ed52 ed52 ed52 * * 5d3e 8ea2ddbe,8ea2ddbev 6fe3 e6bfa3 6fe3 00006fe3 ed52 ed52 ed52 ed52 ed52 ed52 ed52 -11666 ed53 ed53 ed53 * * 5d3f 8ea2ddbf,8ea2ddbfv 6fdc e6bf9c 6fdc 00006fdc ed53 ed53 ed53 ed53 ed53 ed53 ed53 -11667 ed54 ed54 ed54 * * 5d40 8ea2ddc0,8ea2ddc0v 6fed e6bfad 6fed 00006fed ed54 ed54 ed54 ed54 ed54 ed54 ed54 -11668 ed55 ed55 ed55 * * 5d41 8ea2ddc1,8ea2ddc1v 6fe7 e6bfa7 6fe7 00006fe7 ed55 ed55 ed55 ed55 ed55 ed55 ed55 -11669 ed56 ed56 ed56 * * 5d42 8ea2ddc2,8ea2ddc2v 6fe6 e6bfa6 6fe6 00006fe6 ed56 ed56 ed56 ed56 ed56 ed56 ed56 -11670 ed57 ed57 ed57 * * 5d43 8ea2ddc3,8ea2ddc3v 6fde e6bf9e 6fde 00006fde ed57 ed57 ed57 ed57 ed57 ed57 ed57 -11671 ed58 ed58 ed58 * * 5d44 8ea2ddc4,8ea2ddc4v 6ff2 e6bfb2 6ff2 00006ff2 ed58 ed58 ed58 ed58 ed58 ed58 ed58 -11672 ed59 ed59 ed59 * * 5d45 8ea2ddc5,8ea2ddc5v 6fdd e6bf9d 6fdd 00006fdd ed59 ed59 ed59 ed59 ed59 ed59 ed59 -11673 ed5a ed5a ed5a * * 5d46 8ea2ddc6,8ea2ddc6v 6fe2 e6bfa2 6fe2 00006fe2 ed5a ed5a ed5a ed5a ed5a ed5a ed5a -11674 ed5b ed5b ed5b * * 5d47 8ea2ddc7,8ea2ddc7v 6fe8 e6bfa8 6fe8 00006fe8 ed5b ed5b ed5b ed5b ed5b ed5b ed5b -11675 ed5c ed5c ed5c * * 5d48 8ea2ddc8,8ea2ddc8v 71e1 e787a1 71e1 000071e1 ed5c ed5c ed5c ed5c ed5c ed5c ed5c -11676 ed5d ed5d ed5d * * 5d49 8ea2ddc9,8ea2ddc9v 71f1 e787b1 71f1 000071f1 ed5d ed5d ed5d ed5d ed5d ed5d ed5d -11677 ed5e ed5e ed5e * * 5d4a 8ea2ddca,8ea2ddcav 71e8 e787a8 71e8 000071e8 ed5e ed5e ed5e ed5e ed5e ed5e ed5e -11678 ed5f ed5f ed5f * * 5d4b 8ea2ddcb,8ea2ddcbv 71f2 e787b2 71f2 000071f2 ed5f ed5f ed5f ed5f ed5f ed5f ed5f -11679 ed60 ed60 ed60 * * 5d4c 8ea2ddcc,8ea2ddccv 71e4 e787a4 71e4 000071e4 ed60 ed60 ed60 ed60 ed60 ed60 ed60 -11680 ed61 ed61 ed61 * * 5d4d 8ea2ddcd,8ea2ddcdv 71f0 e787b0 71f0 000071f0 ed61 ed61 ed61 ed61 ed61 ed61 ed61 -11681 ed62 ed62 ed62 * * 5d4e 8ea2ddce,8ea2ddcev 71e2 e787a2 71e2 000071e2 ed62 ed62 ed62 ed62 ed62 ed62 ed62 -11682 ed63 ed63 ed63 * * 5d4f 8ea2ddcf,8ea2ddcfv 7373 e78db3 7373 00007373 ed63 ed63 ed63 ed63 ed63 ed63 ed63 -11683 ed64 ed64 ed64 * * 5d50 8ea2ddd0,8ea2ddd0v 736e e78dae 736e 0000736e ed64 ed64 ed64 ed64 ed64 ed64 ed64 -11684 ed65 ed65 ed65 * * 5d51 8ea2ddd1,8ea2ddd1v 736f e78daf 736f 0000736f ed65 ed65 ed65 ed65 ed65 ed65 ed65 -11685 ed66 ed66 ed66 * * 5d52 8ea2ddd2,8ea2ddd2v 7497 e79297 7497 00007497 ed66 ed66 ed66 ed66 ed66 ed66 ed66 -11686 ed67 ed67 ed67 * * 5d53 8ea2ddd3,8ea2ddd3v 74b2 e792b2 74b2 000074b2 ed67 ed67 ed67 ed67 ed67 ed67 ed67 -11687 ed68 ed68 ed68 * * 5d54 8ea2ddd4,8ea2ddd4v 74ab e792ab 74ab 000074ab ed68 ed68 ed68 ed68 ed68 ed68 ed68 -11688 ed69 ed69 ed69 * * 5d55 8ea2ddd5,8ea2ddd5v 7490 e79290 7490 00007490 ed69 ed69 ed69 ed69 ed69 ed69 ed69 -11689 ed6a ed6a ed6a * * 5d56 8ea2ddd6,8ea2ddd6v 74aa e792aa 74aa 000074aa ed6a ed6a ed6a ed6a ed6a ed6a ed6a -11690 ed6b ed6b ed6b * * 5d57 8ea2ddd7,8ea2ddd7v 74ad e792ad 74ad 000074ad ed6b ed6b ed6b ed6b ed6b ed6b ed6b -11691 ed6c ed6c ed6c * * 5d58 8ea2ddd8,8ea2ddd8v 74b1 e792b1 74b1 000074b1 ed6c ed6c ed6c ed6c ed6c ed6c ed6c -11692 ed6d ed6d ed6d * * 5d59 8ea2ddd9,8ea2ddd9v 74a5 e792a5 74a5 000074a5 ed6d ed6d ed6d ed6d ed6d ed6d ed6d -11693 ed6e ed6e ed6e * * 5d5a 8ea2ddda,8ea2dddav 74af e792af 74af 000074af ed6e ed6e ed6e ed6e ed6e ed6e ed6e -11694 ed6f ed6f ed6f * * 5d5b 8ea2dddb,8ea2dddbv 7510 e79490 7510 00007510 ed6f ed6f ed6f ed6f ed6f ed6f ed6f -11695 ed70 ed70 ed70 * * 5d5c 8ea2dddc,8ea2dddcv 7511 e79491 7511 00007511 ed70 ed70 ed70 ed70 ed70 ed70 ed70 -11696 ed71 ed71 ed71 * * 5d5d 8ea2dddd,8ea2ddddv 7512 e79492 7512 00007512 ed71 ed71 ed71 ed71 ed71 ed71 ed71 -11697 ed72 ed72 ed72 * * 5d5e 8ea2ddde,8ea2dddev 750f e7948f 750f 0000750f ed72 ed72 ed72 ed72 ed72 ed72 ed72 -11698 ed73 ed73 ed73 * * 5d5f 8ea2dddf,8ea2dddfv 7584 e79684 7584 00007584 ed73 ed73 ed73 ed73 ed73 ed73 ed73 -11699 ed74 ed74 ed74 * * 5d60 8ea2dde0,8ea2dde0v 7643 e79983 7643 00007643 ed74 ed74 ed74 ed74 ed74 ed74 ed74 -11700 ed75 ed75 ed75 * * 5d61 8ea2dde1,8ea2dde1v 7648 e79988 7648 00007648 ed75 ed75 ed75 ed75 ed75 ed75 ed75 -11701 ed76 ed76 ed76 * * 5d62 8ea2dde2,8ea2dde2v 7649 e79989 7649 00007649 ed76 ed76 ed76 ed76 ed76 ed76 ed76 -11702 ed77 ed77 ed77 * * 5d63 8ea2dde3,8ea2dde3v 7647 e79987 7647 00007647 ed77 ed77 ed77 ed77 ed77 ed77 ed77 -11703 ed78 ed78 ed78 * * 5d64 8ea2dde4,8ea2dde4v 76a4 e79aa4 76a4 000076a4 ed78 ed78 ed78 ed78 ed78 ed78 ed78 -11704 ed79 ed79 ed79 * * 5d65 8ea2dde5,8ea2dde5v 76e9 e79ba9 76e9 000076e9 ed79 ed79 ed79 ed79 ed79 ed79 ed79 -11705 ed7a ed7a ed7a * * 5d66 8ea2dde6,8ea2dde6v 77b5 e79eb5 77b5 000077b5 ed7a ed7a ed7a ed7a ed7a ed7a ed7a -11706 ed7b ed7b ed7b * * 5d67 8ea2dde7,8ea2dde7v 77ab e79eab 77ab 000077ab ed7b ed7b ed7b ed7b ed7b ed7b ed7b -11707 ed7c ed7c ed7c * * 5d68 8ea2dde8,8ea2dde8v 77b2 e79eb2 77b2 000077b2 ed7c ed7c ed7c ed7c ed7c ed7c ed7c -11708 ed7d ed7d ed7d * * 5d69 8ea2dde9,8ea2dde9v 77b7 e79eb7 77b7 000077b7 ed7d ed7d ed7d ed7d ed7d ed7d ed7d -11709 ed7e ed7e ed7e * * 5d6a 8ea2ddea,8ea2ddeav 77b6 e79eb6 77b6 000077b6 ed7e ed7e ed7e ed7e ed7e ed7e ed7e -11710 eda1 eda1 eda1 * * 5d6b 8ea2ddeb,8ea2ddebv 77b4 e79eb4 77b4 000077b4 eda1 eda1 eda1 eda1 eda1 eda1 eda1 -11711 eda2 eda2 eda2 * * 5d6c 8ea2ddec,8ea2ddecv 77b1 e79eb1 77b1 000077b1 eda2 eda2 eda2 eda2 eda2 eda2 eda2 -11712 eda3 eda3 eda3 * * 5d6d 8ea2dded,8ea2ddedv 77a8 e79ea8 77a8 000077a8 eda3 eda3 eda3 eda3 eda3 eda3 eda3 -11713 eda4 eda4 eda4 * * 5d6e 8ea2ddee,8ea2ddeev 77f0 e79fb0 77f0 000077f0 eda4 eda4 eda4 eda4 eda4 eda4 eda4 -11714 eda5 eda5 eda5 * * 5d6f 8ea2ddef,8ea2ddefv 78f3 e7a3b3 78f3 000078f3 eda5 eda5 eda5 eda5 eda5 eda5 eda5 -11715 eda6 eda6 eda6 * * 5d70 8ea2ddf0,8ea2ddf0v 78fd e7a3bd 78fd 000078fd eda6 eda6 eda6 eda6 eda6 eda6 eda6 -11716 eda7 eda7 eda7 * * 5d71 8ea2ddf1,8ea2ddf1v 7902 e7a482 7902 00007902 eda7 eda7 eda7 eda7 eda7 eda7 eda7 -11717 eda8 eda8 eda8 * * 5d72 8ea2ddf2,8ea2ddf2v 78fb e7a3bb 78fb 000078fb eda8 eda8 eda8 eda8 eda8 eda8 eda8 -11718 eda9 eda9 eda9 * * 5d73 8ea2ddf3,8ea2ddf3v 78fc e7a3bc 78fc 000078fc eda9 eda9 eda9 eda9 eda9 eda9 eda9 -11719 f056 f056 f056 * * 5d74 8ea2ddf4,8ea2ddf4v 78ff e7a3bf 78ff 000078ff f056 f056 f056 f056 f056 f056 f056 -11720 edaa edaa edaa * * 5d75 8ea2ddf5,8ea2ddf5v 78f2 e7a3b2 78f2 000078f2 edaa edaa edaa edaa edaa edaa edaa -11721 edab edab edab * * 5d76 8ea2ddf6,8ea2ddf6v 7905 e7a485 7905 00007905 edab edab edab edab edab edab edab -11722 edac edac edac * * 5d77 8ea2ddf7,8ea2ddf7v 78f9 e7a3b9 78f9 000078f9 edac edac edac edac edac edac edac -11723 edad edad edad * * 5d78 8ea2ddf8,8ea2ddf8v 78fe e7a3be 78fe 000078fe edad edad edad edad edad edad edad -11724 edae edae edae * * 5d79 8ea2ddf9,8ea2ddf9v 7904 e7a484 7904 00007904 edae edae edae edae edae edae edae -11725 edaf edaf edaf * * 5d7a 8ea2ddfa,8ea2ddfav 79ab e7a6ab 79ab 000079ab edaf edaf edaf edaf edaf edaf edaf -11726 edb0 edb0 edb0 * * 5d7b 8ea2ddfb,8ea2ddfbv 79a8 e7a6a8 79a8 000079a8 edb0 edb0 edb0 edb0 edb0 edb0 edb0 -11727 edb1 edb1 edb1 * * 5d7c 8ea2ddfc,8ea2ddfcv 7a5c e7a99c 7a5c 00007a5c edb1 edb1 edb1 edb1 edb1 edb1 edb1 -11728 edb2 edb2 edb2 * * 5d7d 8ea2ddfd,8ea2ddfdv 7a5b e7a99b 7a5b 00007a5b edb2 edb2 edb2 edb2 edb2 edb2 edb2 -11729 edb3 edb3 edb3 * * 5d7e 8ea2ddfe,8ea2ddfev 7a56 e7a996 7a56 00007a56 edb3 edb3 edb3 edb3 edb3 edb3 edb3 -11730 edb4 edb4 edb4 * * 5e21 8ea2dea1,8ea2dea1v 7a58 e7a998 7a58 00007a58 edb4 edb4 edb4 edb4 edb4 edb4 edb4 -11731 edb5 edb5 edb5 * * 5e22 8ea2dea2,8ea2dea2v 7a54 e7a994 7a54 00007a54 edb5 edb5 edb5 edb5 edb5 edb5 edb5 -11732 edb6 edb6 edb6 * * 5e23 8ea2dea3,8ea2dea3v 7a5a e7a99a 7a5a 00007a5a edb6 edb6 edb6 edb6 edb6 edb6 edb6 -11733 edb7 edb7 edb7 * * 5e24 8ea2dea4,8ea2dea4v 7abe e7aabe 7abe 00007abe edb7 edb7 edb7 edb7 edb7 edb7 edb7 -11734 edb8 edb8 edb8 * * 5e25 8ea2dea5,8ea2dea5v 7ac0 e7ab80 7ac0 00007ac0 edb8 edb8 edb8 edb8 edb8 edb8 edb8 -11735 edb9 edb9 edb9 * * 5e26 8ea2dea6,8ea2dea6v 7ac1 e7ab81 7ac1 00007ac1 edb9 edb9 edb9 edb9 edb9 edb9 edb9 -11736 edba edba edba * * 5e27 8ea2dea7,8ea2dea7v 7c05 e7b085 7c05 00007c05 edba edba edba edba edba edba edba -11737 edbb edbb edbb * * 5e28 8ea2dea8,8ea2dea8v 7c0f e7b08f 7c0f 00007c0f edbb edbb edbb edbb edbb edbb edbb -11738 edbc edbc edbc * * 5e29 8ea2dea9,8ea2dea9v 7bf2 e7afb2 7bf2 00007bf2 edbc edbc edbc edbc edbc edbc edbc -11739 edbd edbd edbd * * 5e2a 8ea2deaa,8ea2deaav 7c00 e7b080 7c00 00007c00 edbd edbd edbd edbd edbd edbd edbd -11740 edbe edbe edbe * * 5e2b 8ea2deab,8ea2deabv 7bff e7afbf 7bff 00007bff edbe edbe edbe edbe edbe edbe edbe -11741 edbf edbf edbf * * 5e2c 8ea2deac,8ea2deacv 7bfb e7afbb 7bfb 00007bfb edbf edbf edbf edbf edbf edbf edbf -11742 edc0 edc0 edc0 * * 5e2d 8ea2dead,8ea2deadv 7c0e e7b08e 7c0e 00007c0e edc0 edc0 edc0 edc0 edc0 edc0 edc0 -11743 edc1 edc1 edc1 * * 5e2e 8ea2deae,8ea2deaev 7bf4 e7afb4 7bf4 00007bf4 edc1 edc1 edc1 edc1 edc1 edc1 edc1 -11744 edc2 edc2 edc2 * * 5e2f 8ea2deaf,8ea2deafv 7c0b e7b08b 7c0b 00007c0b edc2 edc2 edc2 edc2 edc2 edc2 edc2 -11745 edc3 edc3 edc3 * * 5e30 8ea2deb0,8ea2deb0v 7bf3 e7afb3 7bf3 00007bf3 edc3 edc3 edc3 edc3 edc3 edc3 edc3 -11746 edc4 edc4 edc4 * * 5e31 8ea2deb1,8ea2deb1v 7c02 e7b082 7c02 00007c02 edc4 edc4 edc4 edc4 edc4 edc4 edc4 -11747 edc5 edc5 edc5 * * 5e32 8ea2deb2,8ea2deb2v 7c09 e7b089 7c09 00007c09 edc5 edc5 edc5 edc5 edc5 edc5 edc5 -11748 edc6 edc6 edc6 * * 5e33 8ea2deb3,8ea2deb3v 7c03 e7b083 7c03 00007c03 edc6 edc6 edc6 edc6 edc6 edc6 edc6 -11749 edc7 edc7 edc7 * * 5e34 8ea2deb4,8ea2deb4v 7c01 e7b081 7c01 00007c01 edc7 edc7 edc7 edc7 edc7 edc7 edc7 -11750 edc8 edc8 edc8 * * 5e35 8ea2deb5,8ea2deb5v 7bf8 e7afb8 7bf8 00007bf8 edc8 edc8 edc8 edc8 edc8 edc8 edc8 -11751 edc9 edc9 edc9 * * 5e36 8ea2deb6,8ea2deb6v 7bfd e7afbd 7bfd 00007bfd edc9 edc9 edc9 edc9 edc9 edc9 edc9 -11752 edca edca edca * * 5e37 8ea2deb7,8ea2deb7v 7c06 e7b086,ee8d80 7c06,e340 00007c06,0000e340 8e6f,edca edca edca edca edca edca 8e6f,edca -11753 edcb edcb edcb * * 5e38 8ea2deb8,8ea2deb8v 7bf0 e7afb0 7bf0 00007bf0 edcb edcb edcb edcb edcb edcb edcb -11754 edcc edcc edcc * * 5e39 8ea2deb9,8ea2deb9v 7bf1 e7afb1 7bf1 00007bf1 edcc edcc edcc edcc edcc edcc edcc -11755 edcd edcd edcd * * 5e3a 8ea2deba,8ea2debav 7c10 e7b090 7c10 00007c10 edcd edcd edcd edcd edcd edcd edcd -11756 edce edce edce * * 5e3b 8ea2debb,8ea2debbv 7c0a e7b08a 7c0a 00007c0a edce edce edce edce edce edce edce -11757 edcf edcf edcf * * 5e3c 8ea2debc,8ea2debcv 7ce8 e7b3a8 7ce8 00007ce8 edcf edcf edcf edcf edcf edcf edcf -11758 edd0 edd0 edd0 * * 5e3d 8ea2debd,8ea2debdv 7e2d e7b8ad 7e2d 00007e2d edd0 edd0 edd0 edd0 edd0 edd0 edd0 -11759 edd1 edd1 edd1 * * 5e3e 8ea2debe,8ea2debev 7e3c e7b8bc 7e3c 00007e3c edd1 edd1 edd1 edd1 edd1 edd1 edd1 -11760 edd2 edd2 edd2 * * 5e3f 8ea2debf,8ea2debfv 7e42 e7b982 7e42 00007e42 edd2 edd2 edd2 edd2 edd2 edd2 edd2 -11761 edd3 edd3 edd3 * * 5e40 8ea2dec0,8ea2dec0v 7e33 e7b8b3 7e33 00007e33 edd3 edd3 edd3 edd3 edd3 edd3 edd3 -11762 edd4 edd4 edd4 * * 5e41 8ea2dec1,8ea2dec1v 9848 e9a188 9848 00009848 edd4 edd4 edd4 edd4 edd4 edd4 edd4 -11763 edd5 edd5 edd5 * * 5e42 8ea2dec2,8ea2dec2v 7e38 e7b8b8 7e38 00007e38 edd5 edd5 edd5 edd5 edd5 edd5 edd5 -11764 edd6 edd6 edd6 * * 5e43 8ea2dec3,8ea2dec3v 7e2a e7b8aa 7e2a 00007e2a edd6 edd6 edd6 edd6 edd6 edd6 edd6 -11765 edd7 edd7 edd7 * * 5e44 8ea2dec4,8ea2dec4v 7e49 e7b989 7e49 00007e49 edd7 edd7 edd7 edd7 edd7 edd7 edd7 -11766 edd8 edd8 edd8 * * 5e45 8ea2dec5,8ea2dec5v 7e40 e7b980 7e40 00007e40 edd8 edd8 edd8 edd8 edd8 edd8 edd8 -11767 edd9 edd9 edd9 * * 5e46 8ea2dec6,8ea2dec6v 7e47 e7b987 7e47 00007e47 edd9 edd9 edd9 edd9 edd9 edd9 edd9 -11768 edda edda edda * * 5e47 8ea2dec7,8ea2dec7v 7e29 e7b8a9 7e29 00007e29 edda edda edda edda edda edda edda -11769 eddb eddb eddb * * 5e48 8ea2dec8,8ea2dec8v 7e4c e7b98c 7e4c 00007e4c eddb eddb eddb eddb eddb eddb eddb -11770 eddc eddc eddc * * 5e49 8ea2dec9,8ea2dec9v 7e30 e7b8b0 7e30 00007e30 eddc eddc eddc eddc eddc eddc eddc -11771 eddd eddd eddd * * 5e4a 8ea2deca,8ea2decav 7e3b e7b8bb 7e3b 00007e3b eddd eddd eddd eddd eddd eddd eddd -11772 edde edde edde * * 5e4b 8ea2decb,8ea2decbv 7e36 e7b8b6 7e36 00007e36 edde edde edde edde edde edde edde -11773 eddf eddf eddf * * 5e4c 8ea2decc,8ea2deccv 7e44 e7b984 7e44 00007e44 eddf eddf eddf eddf eddf eddf eddf -11774 ede0 ede0 ede0 * * 5e4d 8ea2decd,8ea2decdv 7e3a e7b8ba 7e3a 00007e3a ede0 ede0 ede0 ede0 ede0 ede0 ede0 -11775 ede1 ede1 ede1 * * 5e4e 8ea2dece,8ea2decev 7f45 e7bd85 7f45 00007f45 ede1 ede1 ede1 ede1 ede1 ede1 ede1 -11776 ede2 ede2 ede2 * * 5e4f 8ea2decf,8ea2decfv 7f7f e7bdbf 7f7f 00007f7f ede2 ede2 ede2 ede2 ede2 ede2 ede2 -11777 ede3 ede3 ede3 * * 5e50 8ea2ded0,8ea2ded0v 7f7e e7bdbe 7f7e 00007f7e ede3 ede3 ede3 ede3 ede3 ede3 ede3 -11778 ede4 ede4 ede4 * * 5e51 8ea2ded1,8ea2ded1v 7f7d e7bdbd 7f7d 00007f7d ede4 ede4 ede4 ede4 ede4 ede4 ede4 -11779 ede5 ede5 ede5 * * 5e52 8ea2ded2,8ea2ded2v 7ff4 e7bfb4 7ff4 00007ff4 ede5 ede5 ede5 ede5 ede5 ede5 ede5 -11780 ede6 ede6 ede6 * * 5e53 8ea2ded3,8ea2ded3v 7ff2 e7bfb2 7ff2 00007ff2 ede6 ede6 ede6 ede6 ede6 ede6 ede6 -11781 ede7 ede7 ede7 * * 5e54 8ea2ded4,8ea2ded4v 802c e880ac 802c 0000802c ede7 ede7 ede7 ede7 ede7 ede7 ede7 -11782 ede8 ede8 ede8 * * 5e55 8ea2ded5,8ea2ded5v 81bb e886bb 81bb 000081bb ede8 ede8 ede8 ede8 ede8 ede8 ede8 -11783 ede9 ede9 ede9 * * 5e56 8ea2ded6,8ea2ded6v 81c4 e88784 81c4 000081c4 ede9 ede9 ede9 ede9 ede9 ede9 ede9 -11784 edea edea edea * * 5e57 8ea2ded7,8ea2ded7v 81cc e8878c 81cc 000081cc edea edea edea edea edea edea edea -11785 edeb edeb edeb * * 5e58 8ea2ded8,8ea2ded8v 81ca e8878a 81ca 000081ca edeb edeb edeb edeb edeb edeb edeb -11786 edec edec edec * * 5e59 8ea2ded9,8ea2ded9v 81c5 e88785 81c5 000081c5 edec edec edec edec edec edec edec -11787 eded eded eded * * 5e5a 8ea2deda,8ea2dedav 81c7 e88787 81c7 000081c7 eded eded eded eded eded eded eded -11788 edee edee edee * * 5e5b 8ea2dedb,8ea2dedbv 81bc e886bc 81bc 000081bc edee edee edee edee edee edee edee -11789 edef edef edef * * 5e5c 8ea2dedc,8ea2dedcv 81e9 e887a9 81e9 000081e9 edef edef edef edef edef edef edef -11790 edf0 edf0 edf0 * * 5e5d 8ea2dedd,8ea2deddv 825b e8899b 825b 0000825b edf0 edf0 edf0 edf0 edf0 edf0 edf0 -11791 edf1 edf1 edf1 * * 5e5e 8ea2dede,8ea2dedev 825a e8899a 825a 0000825a edf1 edf1 edf1 edf1 edf1 edf1 edf1 -11792 edf2 edf2 edf2 * * 5e5f 8ea2dedf,8ea2dedfv 825c e8899c 825c 0000825c edf2 edf2 edf2 edf2 edf2 edf2 edf2 -11793 edf3 edf3 edf3 * * 5e60 8ea2dee0,8ea2dee0v 8583 e89683 8583 00008583 edf3 edf3 edf3 edf3 edf3 edf3 edf3 -11794 edf4 edf4 edf4 * * 5e61 8ea2dee1,8ea2dee1v 8580 e89680 8580 00008580 edf4 edf4 edf4 edf4 edf4 edf4 edf4 -11795 edf5 edf5 edf5 * * 5e62 8ea2dee2,8ea2dee2v 858f e8968f 858f 0000858f edf5 edf5 edf5 edf5 edf5 edf5 edf5 -11796 edf6 edf6 edf6 * * 5e63 8ea2dee3,8ea2dee3v 85a7 e896a7 85a7 000085a7 edf6 edf6 edf6 edf6 edf6 edf6 edf6 -11797 edf7 edf7 edf7 * * 5e64 8ea2dee4,8ea2dee4v 8595 e89695 8595 00008595 edf7 edf7 edf7 edf7 edf7 edf7 edf7 -11798 edf8 edf8 edf8 * * 5e65 8ea2dee5,8ea2dee5v 85a0 e896a0 85a0 000085a0 edf8 edf8 edf8 edf8 edf8 edf8 edf8 -11799 edf9 edf9 edf9 * * 5e66 8ea2dee6,8ea2dee6v 858b e8968b 858b 0000858b edf9 edf9 edf9 edf9 edf9 edf9 edf9 -11800 edfa edfa edfa * * 5e67 8ea2dee7,8ea2dee7v 85a3 e896a3 85a3 000085a3 edfa edfa edfa edfa edfa edfa edfa -11801 edfb edfb edfb * * 5e68 8ea2dee8,8ea2dee8v 857b e895bb 857b 0000857b edfb edfb edfb edfb edfb edfb edfb -11802 edfc edfc edfc * * 5e69 8ea2dee9,8ea2dee9v 85a4 e896a4 85a4 000085a4 edfc edfc edfc edfc edfc edfc edfc -11803 edfd edfd edfd * * 5e6a 8ea2deea,8ea2deeav 859a e8969a 859a 0000859a edfd edfd edfd edfd edfd edfd edfd -11804 edfe edfe edfe * * 5e6b 8ea2deeb,8ea2deebv 859e e8969e 859e 0000859e edfe edfe edfe edfe edfe edfe edfe -11805 ee40 ee40 ee40 * * 5e6c 8ea2deec,8ea2deecv 8577 e895b7 8577 00008577 ee40 ee40 ee40 ee40 ee40 ee40 ee40 -11806 ee41 ee41 ee41 * * 5e6d 8ea2deed,8ea2deedv 857c e895bc 857c 0000857c ee41 ee41 ee41 ee41 ee41 ee41 ee41 -11807 ee42 ee42 ee42 * * 5e6e 8ea2deee,8ea2deeev 8589 e89689 8589 00008589 ee42 ee42 ee42 ee42 ee42 ee42 ee42 -11808 ee43 ee43 ee43 * * 5e6f 8ea2deef,8ea2deefv 85a1 e896a1 85a1 000085a1 ee43 ee43 ee43 ee43 ee43 ee43 ee43 -11809 ee44 ee44 ee44 * * 5e70 8ea2def0,8ea2def0v 857a e895ba 857a 0000857a ee44 ee44 ee44 ee44 ee44 ee44 ee44 -11810 ee45 ee45 ee45 * * 5e71 8ea2def1,8ea2def1v 8578 e895b8 8578 00008578 ee45 ee45 ee45 ee45 ee45 ee45 ee45 -11811 ee46 ee46 ee46 * * 5e72 8ea2def2,8ea2def2v 8557 e89597 8557 00008557 ee46 ee46 ee46 ee46 ee46 ee46 ee46 -11812 ee47 ee47 ee47 * * 5e73 8ea2def3,8ea2def3v 858e e8968e 858e 0000858e ee47 ee47 ee47 ee47 ee47 ee47 ee47 -11813 ee48 ee48 ee48 * * 5e74 8ea2def4,8ea2def4v 8596 e89696 8596 00008596 ee48 ee48 ee48 ee48 ee48 ee48 ee48 -11814 ee49 ee49 ee49 * * 5e75 8ea2def5,8ea2def5v 8586 e89686 8586 00008586 ee49 ee49 ee49 ee49 ee49 ee49 ee49 -11815 ee4a ee4a ee4a * * 5e76 8ea2def6,8ea2def6v 858d e8968d 858d 0000858d ee4a ee4a ee4a ee4a ee4a ee4a ee4a -11816 ee4b ee4b ee4b * * 5e77 8ea2def7,8ea2def7v 8599 e89699 8599 00008599 ee4b ee4b ee4b ee4b ee4b ee4b ee4b -11817 ee4c ee4c ee4c * * 5e78 8ea2def8,8ea2def8v 859d e8969d 859d 0000859d ee4c ee4c ee4c ee4c ee4c ee4c ee4c -11818 ee4d ee4d ee4d * * 5e79 8ea2def9,8ea2def9v 8581 e89681 8581 00008581 ee4d ee4d ee4d ee4d ee4d ee4d ee4d -11819 ee4e ee4e ee4e * * 5e7a 8ea2defa,8ea2defav 85a2 e896a2 85a2 000085a2 ee4e ee4e ee4e ee4e ee4e ee4e ee4e -11820 ee4f ee4f ee4f * * 5e7b 8ea2defb,8ea2defbv 8582 e89682 8582 00008582 ee4f ee4f ee4f ee4f ee4f ee4f ee4f -11821 ee50 ee50 ee50 * * 5e7c 8ea2defc,8ea2defcv 8588 e89688 8588 00008588 ee50 ee50 ee50 ee50 ee50 ee50 ee50 -11822 ee51 ee51 ee51 * * 5e7d 8ea2defd,8ea2defdv 8585 e89685 8585 00008585 ee51 ee51 ee51 ee51 ee51 ee51 ee51 -11823 ee52 ee52 ee52 * * 5e7e 8ea2defe,8ea2defev 8579 e895b9 8579 00008579 ee52 ee52 ee52 ee52 ee52 ee52 ee52 -11824 ee53 ee53 ee53 * * 5f21 8ea2dfa1,8ea2dfa1v 8576 e895b6 8576 00008576 ee53 ee53 ee53 ee53 ee53 ee53 ee53 -11825 ee54 ee54 ee54 * * 5f22 8ea2dfa2,8ea2dfa2v 8598 e89698 8598 00008598 ee54 ee54 ee54 ee54 ee54 ee54 ee54 -11826 ee55 ee55 ee55 * * 5f23 8ea2dfa3,8ea2dfa3v 8590 e89690 8590 00008590 ee55 ee55 ee55 ee55 ee55 ee55 ee55 -11827 ee56 ee56 ee56 * * 5f24 8ea2dfa4,8ea2dfa4v 859f e8969f 859f 0000859f ee56 ee56 ee56 ee56 ee56 ee56 ee56 -11828 ee57 ee57 ee57 * * 5f25 8ea2dfa5,8ea2dfa5v 8668 e899a8 8668 00008668 ee57 ee57 ee57 ee57 ee57 ee57 ee57 -11829 ee58 ee58 ee58 * * 5f26 8ea2dfa6,8ea2dfa6v 87be e89ebe 87be 000087be ee58 ee58 ee58 ee58 ee58 ee58 ee58 -11830 ee59 ee59 ee59 * * 5f27 8ea2dfa7,8ea2dfa7v 87aa e89eaa 87aa 000087aa ee59 ee59 ee59 ee59 ee59 ee59 ee59 -11831 ee5a ee5a ee5a * * 5f28 8ea2dfa8,8ea2dfa8v 87ad e89ead 87ad 000087ad ee5a ee5a ee5a ee5a ee5a ee5a ee5a -11832 ee5b ee5b ee5b * * 5f29 8ea2dfa9,8ea2dfa9v 87c5 e89f85 87c5 000087c5 ee5b ee5b ee5b ee5b ee5b ee5b ee5b -11833 ee5c ee5c ee5c * * 5f2a 8ea2dfaa,8ea2dfaav 87b0 e89eb0 87b0 000087b0 ee5c ee5c ee5c ee5c ee5c ee5c ee5c -11834 ee5d ee5d ee5d * * 5f2b 8ea2dfab,8ea2dfabv 87ac e89eac 87ac 000087ac ee5d ee5d ee5d ee5d ee5d ee5d ee5d -11835 ee5e ee5e ee5e * * 5f2c 8ea2dfac,8ea2dfacv 87b9 e89eb9 87b9 000087b9 ee5e ee5e ee5e ee5e ee5e ee5e ee5e -11836 ee5f ee5f ee5f * * 5f2d 8ea2dfad,8ea2dfadv 87b5 e89eb5 87b5 000087b5 ee5f ee5f ee5f ee5f ee5f ee5f ee5f -11837 ee60 ee60 ee60 * * 5f2e 8ea2dfae,8ea2dfaev 87bc e89ebc 87bc 000087bc ee60 ee60 ee60 ee60 ee60 ee60 ee60 -11838 ee61 ee61 ee61 * * 5f2f 8ea2dfaf,8ea2dfafv 87ae e89eae 87ae 000087ae ee61 ee61 ee61 ee61 ee61 ee61 ee61 -11839 ee62 ee62 ee62 * * 5f30 8ea2dfb0,8ea2dfb0v 87c9 e89f89 87c9 000087c9 ee62 ee62 ee62 ee62 ee62 ee62 ee62 -11840 ee63 ee63 ee63 * * 5f31 8ea2dfb1,8ea2dfb1v 87c3 e89f83 87c3 000087c3 ee63 ee63 ee63 ee63 ee63 ee63 ee63 -11841 ee64 ee64 ee64 * * 5f32 8ea2dfb2,8ea2dfb2v 87c2 e89f82 87c2 000087c2 ee64 ee64 ee64 ee64 ee64 ee64 ee64 -11842 ee65 ee65 ee65 * * 5f33 8ea2dfb3,8ea2dfb3v 87cc e89f8c 87cc 000087cc ee65 ee65 ee65 ee65 ee65 ee65 ee65 -11843 ee66 ee66 ee66 * * 5f34 8ea2dfb4,8ea2dfb4v 87b7 e89eb7 87b7 000087b7 ee66 ee66 ee66 ee66 ee66 ee66 ee66 -11844 ee67 ee67 ee67 * * 5f35 8ea2dfb5,8ea2dfb5v 87af e89eaf 87af 000087af ee67 ee67 ee67 ee67 ee67 ee67 ee67 -11845 ee68 ee68 ee68 * * 5f36 8ea2dfb6,8ea2dfb6v 87c4 e89f84 87c4 000087c4 ee68 ee68,fb5c,fdd0 9153,ee68 ee68 ee68 ee68 ee68 -11846 ee69 ee69 ee69 * * 5f37 8ea2dfb7,8ea2dfb7v 87ca e89f8a 87ca 000087ca ee69 ee69 ee69 ee69 ee69 ee69 ee69 -11847 ee6a ee6a ee6a * * 5f38 8ea2dfb8,8ea2dfb8v 87b4 e89eb4 87b4 000087b4 ee6a ee6a ee6a ee6a ee6a ee6a ee6a -11848 ee6b ee6b ee6b * * 5f39 8ea2dfb9,8ea2dfb9v 87b6 e89eb6 87b6 000087b6 ee6b ee6b ee6b ee6b ee6b ee6b ee6b -11849 ee6c ee6c ee6c * * 5f3a 8ea2dfba,8ea2dfbav 87bf e89ebf 87bf 000087bf ee6c ee6c ee6c ee6c ee6c ee6c ee6c -11850 ee6d ee6d ee6d * * 5f3b 8ea2dfbb,8ea2dfbbv 87b8 e89eb8 87b8 000087b8 ee6d ee6d ee6d ee6d ee6d ee6d ee6d -11851 ee6e ee6e ee6e * * 5f3c 8ea2dfbc,8ea2dfbcv 87bd e89ebd 87bd 000087bd ee6e ee6e ee6e ee6e ee6e ee6e ee6e -11852 ee6f ee6f ee6f * * 5f3d 8ea2dfbd,8ea2dfbdv 87de e89f9e 87de 000087de ee6f ee6f ee6f ee6f ee6f ee6f ee6f -11853 ee70 ee70 ee70 * * 5f3e 8ea2dfbe,8ea2dfbev 87b2 e89eb2 87b2 000087b2 ee70 ee70 ee70 ee70 ee70 ee70 ee70 -11854 ee71 ee71 ee71 * * 5f3f 8ea2dfbf,8ea2dfbfv 8935 e8a4b5 8935 00008935 ee71 ee71 ee71 ee71 ee71 ee71 ee71 -11855 ee72 ee72 ee72 * * 5f40 8ea2dfc0,8ea2dfc0v 8933 e8a4b3 8933 00008933 ee72 ee72 ee72 ee72 ee72 ee72 ee72 -11856 ee73 ee73 ee73 * * 5f41 8ea2dfc1,8ea2dfc1v 893c e8a4bc 893c 0000893c ee73 ee73 ee73 ee73 ee73 ee73 ee73 -11857 ee74 ee74 ee74 * * 5f42 8ea2dfc2,8ea2dfc2v 893e e8a4be 893e 0000893e ee74 ee74 ee74 ee74 ee74 ee74 ee74 -11858 ee75 ee75 ee75 * * 5f43 8ea2dfc3,8ea2dfc3v 8941 e8a581 8941 00008941 ee75 ee75 ee75 ee75 ee75 ee75 ee75 -11859 ee76 ee76 ee76 * * 5f44 8ea2dfc4,8ea2dfc4v 8952 e8a592 8952 00008952 ee76 ee76 ee76 ee76 ee76 ee76 ee76 -11860 ee77 ee77 ee77 * * 5f45 8ea2dfc5,8ea2dfc5v 8937 e8a4b7 8937 00008937 ee77 ee77 ee77 ee77 ee77 ee77 ee77 -11861 ee78 ee78 ee78 * * 5f46 8ea2dfc6,8ea2dfc6v 8942 e8a582 8942 00008942 ee78 ee78 ee78 ee78 ee78 ee78 ee78 -11862 ee79 ee79 ee79 * * 5f47 8ea2dfc7,8ea2dfc7v 89ad e8a6ad 89ad 000089ad ee79 ee79 ee79 ee79 ee79 ee79 ee79 -11863 ee7a ee7a ee7a * * 5f48 8ea2dfc8,8ea2dfc8v 89af e8a6af 89af 000089af ee7a ee7a ee7a ee7a ee7a ee7a ee7a -11864 ee7b ee7b ee7b * * 5f49 8ea2dfc9,8ea2dfc9v 89ae e8a6ae 89ae 000089ae ee7b ee7b ee7b ee7b ee7b ee7b ee7b -11865 ee7c ee7c ee7c * * 5f4a 8ea2dfca,8ea2dfcav 89f2 e8a7b2 89f2 000089f2 ee7c ee7c ee7c ee7c ee7c ee7c ee7c -11866 ee7d ee7d ee7d * * 5f4b 8ea2dfcb,8ea2dfcbv 89f3 e8a7b3 89f3 000089f3 ee7d ee7d ee7d ee7d ee7d ee7d ee7d -11867 ee7e ee7e ee7e * * 5f4c 8ea2dfcc,8ea2dfccv 8b1e e8ac9e 8b1e 00008b1e ee7e ee7e ee7e ee7e ee7e ee7e ee7e -11868 eea1 eea1 eea1 * * 5f4d 8ea2dfcd,8ea2dfcdv 8b18 e8ac98 8b18 00008b18 eea1 eea1 eea1 eea1 eea1 eea1 eea1 -11869 eea2 eea2 eea2 * * 5f4e 8ea2dfce,8ea2dfcev 8b16 e8ac96 8b16 00008b16 eea2 eea2 eea2 eea2 eea2 eea2 eea2 -11870 eea3 eea3 eea3 * * 5f4f 8ea2dfcf,8ea2dfcfv 8b11 e8ac91 8b11 00008b11 eea3 eea3 eea3 eea3 eea3 eea3 eea3 -11871 eea4 eea4 eea4 * * 5f50 8ea2dfd0,8ea2dfd0v 8b05 e8ac85 8b05 00008b05 eea4 eea4 eea4 eea4 eea4 eea4 eea4 -11872 eea5 eea5 eea5 * * 5f51 8ea2dfd1,8ea2dfd1v 8b0b e8ac8b 8b0b 00008b0b eea5 eea5 eea5 eea5 eea5 eea5 eea5 -11873 eea6 eea6 eea6 * * 5f52 8ea2dfd2,8ea2dfd2v 8b22 e8aca2 8b22 00008b22 eea6 eea6 eea6 eea6 eea6 eea6 eea6 -11874 eea7 eea7 eea7 * * 5f53 8ea2dfd3,8ea2dfd3v 8b0f e8ac8f 8b0f 00008b0f eea7 eea7 eea7 eea7 eea7 eea7 eea7 -11875 eea8 eea8 eea8 * * 5f54 8ea2dfd4,8ea2dfd4v 8b12 e8ac92 8b12 00008b12 eea8 eea8 eea8 eea8 eea8 eea8 eea8 -11876 eea9 eea9 eea9 * * 5f55 8ea2dfd5,8ea2dfd5v 8b15 e8ac95 8b15 00008b15 eea9 eea9 eea9 eea9 eea9 eea9 eea9 -11877 eeaa eeaa eeaa * * 5f56 8ea2dfd6,8ea2dfd6v 8b07 e8ac87 8b07 00008b07 eeaa eeaa eeaa eeaa eeaa eeaa eeaa -11878 eeab eeab eeab * * 5f57 8ea2dfd7,8ea2dfd7v 8b0d e8ac8d 8b0d 00008b0d eeab eeab eeab eeab eeab eeab eeab -11879 eeac eeac eeac * * 5f58 8ea2dfd8,8ea2dfd8v 8b08 e8ac88 8b08 00008b08 eeac eeac eeac eeac eeac eeac eeac -11880 eead eead eead * * 5f59 8ea2dfd9,8ea2dfd9v 8b06 e8ac86 8b06 00008b06 eead eead eead eead eead eead eead -11881 eeae eeae eeae * * 5f5a 8ea2dfda,8ea2dfdav 8b1c e8ac9c 8b1c 00008b1c eeae eeae eeae eeae eeae eeae eeae -11882 eeaf eeaf eeaf * * 5f5b 8ea2dfdb,8ea2dfdbv 8b13 e8ac93 8b13 00008b13 eeaf eeaf eeaf eeaf eeaf eeaf eeaf -11883 eeb0 eeb0 eeb0 * * 5f5c 8ea2dfdc,8ea2dfdcv 8b1a e8ac9a 8b1a 00008b1a eeb0 eeb0 eeb0 eeb0 eeb0 eeb0 eeb0 -11884 eeb1 eeb1 eeb1 * * 5f5d 8ea2dfdd,8ea2dfddv 8c4f e8b18f 8c4f 00008c4f eeb1 eeb1 eeb1 eeb1 eeb1 eeb1 eeb1 -11885 eeb2 eeb2 eeb2 * * 5f5e 8ea2dfde,8ea2dfdev 8c70 e8b1b0 8c70 00008c70 eeb2 eeb2 eeb2 eeb2 eeb2 eeb2 eeb2 -11886 eeb3 eeb3 eeb3 * * 5f5f 8ea2dfdf,8ea2dfdfv 8c72 e8b1b2 8c72 00008c72 eeb3 eeb3 eeb3 eeb3 eeb3 eeb3 eeb3 -11887 eeb4 eeb4 eeb4 * * 5f60 8ea2dfe0,8ea2dfe0v 8c71 e8b1b1 8c71 00008c71 eeb4 eeb4 eeb4 eeb4 eeb4 eeb4 eeb4 -11888 eeb5 eeb5 eeb5 * * 5f61 8ea2dfe1,8ea2dfe1v 8c6f e8b1af 8c6f 00008c6f eeb5 eeb5 eeb5 eeb5 eeb5 eeb5 eeb5 -11889 eeb6 eeb6 eeb6 * * 5f62 8ea2dfe2,8ea2dfe2v 8c95 e8b295 8c95 00008c95 eeb6 eeb6 eeb6 eeb6 eeb6 eeb6 eeb6 -11890 eeb7 eeb7 eeb7 * * 5f63 8ea2dfe3,8ea2dfe3v 8c94 e8b294 8c94 00008c94 eeb7 eeb7 eeb7 eeb7 eeb7 eeb7 eeb7 -11891 eeb8 eeb8 eeb8 * * 5f64 8ea2dfe4,8ea2dfe4v 8cf9 e8b3b9 8cf9 00008cf9 eeb8 eeb8 eeb8 eeb8 eeb8 eeb8 eeb8 -11892 eeb9 eeb9 eeb9 * * 5f65 8ea2dfe5,8ea2dfe5v 8d6f e8b5af 8d6f 00008d6f eeb9 eeb9 eeb9 eeb9 eeb9 eeb9 eeb9 -11893 eeba eeba eeba * * 5f66 8ea2dfe6,8ea2dfe6v 8e4e e8b98e 8e4e 00008e4e eeba eeba eeba eeba eeba eeba eeba -11894 eebb eebb eebb * * 5f67 8ea2dfe7,8ea2dfe7v 8e4d e8b98d 8e4d 00008e4d eebb eebb eebb eebb eebb eebb eebb -11895 eebc eebc eebc * * 5f68 8ea2dfe8,8ea2dfe8v 8e53 e8b993 8e53 00008e53 eebc eebc eebc eebc eebc eebc eebc -11896 eebd eebd eebd * * 5f69 8ea2dfe9,8ea2dfe9v 8e50 e8b990 8e50 00008e50 eebd eebd eebd eebd eebd eebd eebd -11897 eebe eebe eebe * * 5f6a 8ea2dfea,8ea2dfeav 8e4c e8b98c 8e4c 00008e4c eebe eebe eebe eebe eebe eebe eebe -11898 eebf eebf eebf * * 5f6b 8ea2dfeb,8ea2dfebv 8e47 e8b987 8e47 00008e47 eebf eebf eebf eebf eebf eebf eebf -11899 eec0 eec0 eec0 * * 5f6c 8ea2dfec,8ea2dfecv 8f43 e8bd83 8f43 00008f43 eec0 eec0 eec0 eec0 eec0 eec0 eec0 -11900 eec1 eec1 eec1 * * 5f6d 8ea2dfed,8ea2dfedv 8f40 e8bd80 8f40 00008f40 eec1 eec1 eec1 eec1 eec1 eec1 eec1 -11901 eec2 eec2 eec2 * * 5f6e 8ea2dfee,8ea2dfeev 9085 e98285 9085 00009085 eec2 eec2 eec2 eec2 eec2 eec2 eec2 -11902 eec3 eec3 eec3 * * 5f6f 8ea2dfef,8ea2dfefv 907e e981be 907e 0000907e eec3 eec3 eec3 eec3 eec3 eec3 eec3 -11903 eec4 eec4 eec4 * * 5f70 8ea2dff0,8ea2dff0v 9138 e984b8 9138 00009138 eec4 eec4 eec4 eec4 eec4 eec4 eec4 -11904 eec5 eec5 eec5 * * 5f71 8ea2dff1,8ea2dff1v 919a e9869a 919a 0000919a eec5 eec5 eec5 eec5 eec5 eec5 eec5 -11905 eec6 eec6 eec6 * * 5f72 8ea2dff2,8ea2dff2v 91a2 e986a2 91a2 000091a2 eec6 eec6 eec6 eec6 eec6 eec6 eec6 -11906 eec7 eec7 eec7 * * 5f73 8ea2dff3,8ea2dff3v 919b e9869b 919b 0000919b eec7 eec7 eec7 eec7 eec7 eec7 eec7 -11907 eec8 eec8 eec8 * * 5f74 8ea2dff4,8ea2dff4v 9199 e98699 9199 00009199 eec8 eec8 eec8 eec8 eec8 eec8 eec8 -11908 eec9 eec9 eec9 * * 5f75 8ea2dff5,8ea2dff5v 919f e9869f 919f 0000919f eec9 eec9 eec9 eec9 eec9 eec9 eec9 -11909 eeca eeca eeca * * 5f76 8ea2dff6,8ea2dff6v 91a1 e986a1 91a1 000091a1 eeca eeca eeca eeca eeca eeca eeca -11910 eecb eecb eecb * * 5f77 8ea2dff7,8ea2dff7v 919d e9869d 919d 0000919d eecb eecb eecb eecb eecb eecb eecb -11911 eecc eecc eecc * * 5f78 8ea2dff8,8ea2dff8v 91a0 e986a0 91a0 000091a0 eecc eecc eecc eecc eecc eecc eecc -11912 eecd eecd eecd * * 5f79 8ea2dff9,8ea2dff9v 93a1 e98ea1 93a1 000093a1 eecd eecd eecd eecd eecd eecd eecd -11913 eece eece eece * * 5f7a 8ea2dffa,8ea2dffav 9383 e98e83 9383 00009383 eece eece eece eece eece eece eece -11914 eecf eecf eecf * * 5f7b 8ea2dffb,8ea2dffbv 93af e98eaf 93af 000093af eecf eecf eecf eecf eecf eecf eecf -11915 eed0 eed0 eed0 * * 5f7c 8ea2dffc,8ea2dffcv 9364 e98da4 9364 00009364 eed0 eed0 eed0 eed0 eed0 eed0 eed0 -11916 eed1 eed1 eed1 * * 5f7d 8ea2dffd,8ea2dffdv 9356 e98d96 9356 00009356 eed1 eed1 eed1 eed1 eed1 eed1 eed1 -11917 eed2 eed2 eed2 * * 5f7e 8ea2dffe,8ea2dffev 9347 e98d87 9347 00009347 eed2 eed2 eed2 eed2 eed2 eed2 eed2 -11918 eed3 eed3 eed3 * * 6021 8ea2e0a1,8ea2e0a1v 937c e98dbc 937c 0000937c eed3 eed3 eed3 eed3 eed3 eed3 eed3 -11919 eed4 eed4 eed4 * * 6022 8ea2e0a2,8ea2e0a2v 9358 e98d98 9358 00009358 eed4 eed4 eed4 eed4 eed4 eed4 eed4 -11920 eed5 eed5 eed5 * * 6023 8ea2e0a3,8ea2e0a3v 935c e98d9c 935c 0000935c eed5 eed5 eed5 eed5 eed5 eed5 eed5 -11921 eed6 eed6 eed6 * * 6024 8ea2e0a4,8ea2e0a4v 9376 e98db6 9376 00009376 eed6 eed6 eed6 eed6 eed6 eed6 eed6 -11922 eed7 eed7 eed7 * * 6025 8ea2e0a5,8ea2e0a5v 9349 e98d89 9349 00009349 eed7 eed7 eed7 eed7 eed7 eed7 eed7 -11923 eed8 eed8 eed8 * * 6026 8ea2e0a6,8ea2e0a6v 9350 e98d90 9350 00009350 eed8 eed8 eed8 eed8 eed8 eed8 eed8 -11924 eed9 eed9 eed9 * * 6027 8ea2e0a7,8ea2e0a7v 9351 e98d91 9351 00009351 eed9 eed9 eed9 eed9 eed9 eed9 eed9 -11925 eeda eeda eeda * * 6028 8ea2e0a8,8ea2e0a8v 9360 e98da0 9360 00009360 eeda eeda eeda eeda eeda eeda eeda -11926 eedb eedb eedb * * 6029 8ea2e0a9,8ea2e0a9v 936d e98dad 936d 0000936d eedb eedb eedb eedb eedb eedb eedb -11927 eedc eedc eedc * * 602a 8ea2e0aa,8ea2e0aav 938f e98e8f 938f 0000938f eedc eedc eedc eedc eedc eedc eedc -11928 eedd eedd eedd * * 602b 8ea2e0ab,8ea2e0abv 934c e98d8c 934c 0000934c eedd eedd eedd eedd eedd eedd eedd -11929 eede eede eede * * 602c 8ea2e0ac,8ea2e0acv 936a e98daa 936a 0000936a eede eede eede eede eede eede eede -11930 eedf eedf eedf * * 602d 8ea2e0ad,8ea2e0adv 9379 e98db9 9379 00009379 eedf eedf eedf eedf eedf eedf eedf -11931 eee0 eee0 eee0 * * 602e 8ea2e0ae,8ea2e0aev 9357 e98d97 9357 00009357 eee0 eee0 eee0 eee0 eee0 eee0 eee0 -11932 eee1 eee1 eee1 * * 602f 8ea2e0af,8ea2e0afv 9355 e98d95 9355 00009355 eee1 eee1 eee1 eee1 eee1 eee1 eee1 -11933 eee2 eee2 eee2 * * 6030 8ea2e0b0,8ea2e0b0v 9352 e98d92 9352 00009352 eee2 eee2 eee2 eee2 eee2 eee2 eee2 -11934 eee3 eee3 eee3 * * 6031 8ea2e0b1,8ea2e0b1v 934f e98d8f 934f 0000934f eee3 eee3 eee3 eee3 eee3 eee3 eee3 -11935 eee4 eee4 eee4 * * 6032 8ea2e0b2,8ea2e0b2v 9371 e98db1 9371 00009371 eee4 eee4 eee4 eee4 eee4 eee4 eee4 -11936 eee5 eee5 eee5 * * 6033 8ea2e0b3,8ea2e0b3v 9377 e98db7 9377 00009377 eee5 eee5 eee5 eee5 eee5 eee5 eee5 -11937 eee6 eee6 eee6 * * 6034 8ea2e0b4,8ea2e0b4v 937b e98dbb 937b 0000937b eee6 eee6 eee6 eee6 eee6 eee6 eee6 -11938 eee7 eee7 eee7 * * 6035 8ea2e0b5,8ea2e0b5v 9361 e98da1 9361 00009361 eee7 eee7 eee7 eee7 eee7 eee7 eee7 -11939 eee8 eee8 eee8 * * 6036 8ea2e0b6,8ea2e0b6v 935e e98d9e 935e 0000935e eee8 eee8 eee8 eee8 eee8 eee8 eee8 -11940 eee9 eee9 eee9 * * 6037 8ea2e0b7,8ea2e0b7v 9363 e98da3 9363 00009363 eee9 eee9 eee9 eee9 eee9 eee9 eee9 -11941 eeea eeea eeea * * 6038 8ea2e0b8,8ea2e0b8v 9367 e98da7 9367 00009367 eeea eeea eeea eeea eeea eeea eeea -11942 eeec eeec eeec * * 6039 8ea2e0b9,8ea2e0b9v 934e e98d8e 934e 0000934e eeec eeec eeec eeec eeec eeec eeec -11943 eeed eeed eeed * * 603a 8ea2e0ba,8ea2e0bav 9359 e98d99 9359 00009359 eeed eeed eeed eeed eeed eeed eeed -11944 eeee eeee eeee * * 603b 8ea2e0bb,8ea2e0bbv 95c7 e99787 95c7 000095c7 eeee eeee eeee eeee eeee eeee eeee -11945 eeef eeef eeef * * 603c 8ea2e0bc,8ea2e0bcv 95c0 e99780 95c0 000095c0 eeef eeef eeef eeef eeef eeef eeef -11946 eef0 eef0 eef0 * * 603d 8ea2e0bd,8ea2e0bdv 95c9 e99789 95c9 000095c9 eef0 eef0 eef0 eef0 eef0 eef0 eef0 -11947 eef1 eef1 eef1 * * 603e 8ea2e0be,8ea2e0bev 95c3 e99783 95c3 000095c3 eef1 eef1 eef1 eef1 eef1 eef1 eef1 -11948 eef2 eef2 eef2 * * 603f 8ea2e0bf,8ea2e0bfv 95c5 e99785 95c5 000095c5 eef2 eef2 eef2 eef2 eef2 eef2 eef2 -11949 eef3 eef3 eef3 * * 6040 8ea2e0c0,8ea2e0c0v 95b7 e996b7 95b7 000095b7 eef3 eef3 eef3 eef3 eef3 eef3 eef3 -11950 eef4 eef4 eef4 * * 6041 8ea2e0c1,8ea2e0c1v 96ae e99aae 96ae 000096ae eef4 eef4 eef4 eef4 eef4 eef4 eef4 -11951 eef5 eef5 eef5 * * 6042 8ea2e0c2,8ea2e0c2v 96b0 e99ab0 96b0 000096b0 eef5 eef5 eef5 eef5 eef5 eef5 eef5 -11952 eef6 eef6 eef6 * * 6043 8ea2e0c3,8ea2e0c3v 96ac e99aac 96ac 000096ac eef6 eef6 eef6 eef6 eef6 eef6 eef6 -11953 eef7 eef7 eef7 * * 6044 8ea2e0c4,8ea2e0c4v 9720 e99ca0 9720 00009720 eef7 eef7 eef7 eef7 eef7 eef7 eef7 -11954 eef8 eef8 eef8 * * 6045 8ea2e0c5,8ea2e0c5v 971f e99c9f 971f 0000971f eef8 eef8 eef8 eef8 eef8 eef8 eef8 -11955 eef9 eef9 eef9 * * 6046 8ea2e0c6,8ea2e0c6v 9718 e99c98 9718 00009718 eef9 eef9 eef9 eef9 eef9 eef9 eef9 -11956 eefa eefa eefa * * 6047 8ea2e0c7,8ea2e0c7v 971d e99c9d 971d 0000971d eefa eefa eefa eefa eefa eefa eefa -11957 eefb eefb eefb * * 6048 8ea2e0c8,8ea2e0c8v 9719 e99c99 9719 00009719 eefb eefb eefb eefb eefb eefb eefb -11958 eefc eefc eefc * * 6049 8ea2e0c9,8ea2e0c9v 979a e99e9a 979a 0000979a eefc eefc eefc eefc eefc eefc eefc -11959 eefd eefd eefd * * 604a 8ea2e0ca,8ea2e0cav 97a1 e99ea1 97a1 000097a1 eefd eefd eefd eefd eefd eefd eefd -11960 eefe eefe eefe * * 604b 8ea2e0cb,8ea2e0cbv 979c e99e9c 979c 0000979c eefe eefe eefe eefe eefe eefe eefe -11961 ef40 ef40 ef40 * * 604c 8ea2e0cc,8ea2e0ccv 979e e99e9e 979e 0000979e ef40 ef40 ef40 ef40 ef40 ef40 ef40 -11962 ef41 ef41 ef41 * * 604d 8ea2e0cd,8ea2e0cdv 979d e99e9d 979d 0000979d ef41 ef41 ef41 ef41 ef41 ef41 ef41 -11963 ef42 ef42 ef42 * * 604e 8ea2e0ce,8ea2e0cev 97d5 e99f95 97d5 000097d5 ef42 ef42 ef42 ef42 ef42 ef42 ef42 -11964 ef43 ef43 ef43 * * 604f 8ea2e0cf,8ea2e0cfv 97d4 e99f94 97d4 000097d4 ef43 ef43 ef43 ef43 ef43 ef43 ef43 -11965 ef44 ef44 ef44 * * 6050 8ea2e0d0,8ea2e0d0v 97f1 e99fb1 97f1 000097f1 ef44 ef44 ef44 ef44 ef44 ef44 ef44 -11966 ef45 ef45 ef45 * * 6051 8ea2e0d1,8ea2e0d1v 9841 e9a181 9841 00009841 ef45 ef45 ef45 ef45 ef45 ef45 ef45 -11967 ef46 ef46 ef46 * * 6052 8ea2e0d2,8ea2e0d2v 9844 e9a184 9844 00009844 ef46 ef46 ef46 ef46 ef46 ef46 ef46 -11968 ef47 ef47 ef47 * * 6053 8ea2e0d3,8ea2e0d3v 984a e9a18a 984a 0000984a ef47 ef47 ef47 ef47 ef47 ef47 ef47 -11969 ef48 ef48 ef48 * * 6054 8ea2e0d4,8ea2e0d4v 9849 e9a189 9849 00009849 ef48 ef48 ef48 ef48 ef48 ef48 ef48 -11970 ef49 ef49 ef49 * * 6055 8ea2e0d5,8ea2e0d5v 9845 e9a185 9845 00009845 ef49 ef49 ef49 ef49 ef49 ef49 ef49 -11971 ef4a ef4a ef4a * * 6056 8ea2e0d6,8ea2e0d6v 9843 e9a183 9843 00009843 ef4a ef4a ef4a ef4a ef4a ef4a ef4a -11972 ef4b ef4b ef4b * * 6057 8ea2e0d7,8ea2e0d7v 9925 e9a4a5 9925 00009925 ef4b ef4b ef4b ef4b ef4b ef4b ef4b -11973 ef4c ef4c ef4c * * 6058 8ea2e0d8,8ea2e0d8v 992b e9a4ab 992b 0000992b ef4c ef4c ef4c ef4c ef4c ef4c ef4c -11974 ef4d ef4d ef4d * * 6059 8ea2e0d9,8ea2e0d9v 992c e9a4ac 992c 0000992c ef4d ef4d ef4d ef4d ef4d ef4d ef4d -11975 ef4e ef4e ef4e * * 605a 8ea2e0da,8ea2e0dav 992a e9a4aa 992a 0000992a ef4e ef4e ef4e ef4e ef4e ef4e ef4e -11976 ef4f ef4f ef4f * * 605b 8ea2e0db,8ea2e0dbv 9933 e9a4b3 9933 00009933 ef4f ef4f ef4f ef4f ef4f ef4f ef4f -11977 ef50 ef50 ef50 * * 605c 8ea2e0dc,8ea2e0dcv 9932 e9a4b2 9932 00009932 ef50 ef50 ef50 ef50 ef50 ef50 ef50 -11978 ef51 ef51 ef51 * * 605d 8ea2e0dd,8ea2e0ddv 992f e9a4af 992f 0000992f ef51 ef51 ef51 ef51 ef51 ef51 ef51 -11979 ef52 ef52 ef52 * * 605e 8ea2e0de,8ea2e0dev 992d e9a4ad 992d 0000992d ef52 ef52 ef52 ef52 ef52 ef52 ef52 -11980 ef53 ef53 ef53 * * 605f 8ea2e0df,8ea2e0dfv 9931 e9a4b1 9931 00009931 ef53 ef53 ef53 ef53 ef53 ef53 ef53 -11981 ef54 ef54 ef54 * * 6060 8ea2e0e0,8ea2e0e0v 9930 e9a4b0 9930 00009930 ef54 ef54 ef54 ef54 ef54 ef54 ef54 -11982 ef55 ef55 ef55 * * 6061 8ea2e0e1,8ea2e0e1v 9998 e9a698 9998 00009998 ef55 ef55 ef55 ef55 ef55 ef55 ef55 -11983 ef56 ef56 ef56 * * 6062 8ea2e0e2,8ea2e0e2v 99a3 e9a6a3 99a3 000099a3 ef56 ef56 ef56 ef56 ef56 ef56 ef56 -11984 ef57 ef57 ef57 * * 6063 8ea2e0e3,8ea2e0e3v 99a1 e9a6a1 99a1 000099a1 ef57 ef57 ef57 ef57 ef57 ef57 ef57 -11985 ef58 ef58 ef58 * * 6064 8ea2e0e4,8ea2e0e4v 9a02 e9a882 9a02 00009a02 ef58 ef58 ef58 ef58 ef58 ef58 ef58 -11986 ef59 ef59 ef59 * * 6065 8ea2e0e5,8ea2e0e5v 99fa e9a7ba 99fa 000099fa ef59 ef59 ef59 ef59 ef59 ef59 ef59 -11987 ef5a ef5a ef5a * * 6066 8ea2e0e6,8ea2e0e6v 99f4 e9a7b4 99f4 000099f4 ef5a ef5a ef5a ef5a ef5a ef5a ef5a -11988 ef5b ef5b ef5b * * 6067 8ea2e0e7,8ea2e0e7v 99f7 e9a7b7 99f7 000099f7 ef5b ef5b ef5b ef5b ef5b ef5b ef5b -11989 ef5c ef5c ef5c * * 6068 8ea2e0e8,8ea2e0e8v 99f9 e9a7b9 99f9 000099f9 ef5c ef5c ef5c ef5c ef5c ef5c ef5c -11990 ef5d ef5d ef5d * * 6069 8ea2e0e9,8ea2e0e9v 99f8 e9a7b8 99f8 000099f8 ef5d ef5d ef5d ef5d ef5d ef5d ef5d -11991 ef5e ef5e ef5e * * 606a 8ea2e0ea,8ea2e0eav 99f6 e9a7b6 99f6 000099f6 ef5e ef5e ef5e ef5e ef5e ef5e ef5e -11992 ef5f ef5f ef5f * * 606b 8ea2e0eb,8ea2e0ebv 99fb e9a7bb 99fb 000099fb ef5f ef5f ef5f ef5f ef5f ef5f ef5f -11993 ef60 ef60 ef60 * * 606c 8ea2e0ec,8ea2e0ecv 99fd e9a7bd 99fd 000099fd ef60 ef60 ef60 ef60 ef60 ef60 ef60 -11994 ef61 ef61 ef61 * * 606d 8ea2e0ed,8ea2e0edv 99fe e9a7be 99fe 000099fe ef61 ef61 ef61 ef61 ef61 ef61 ef61 -11995 ef62 ef62 ef62 * * 606e 8ea2e0ee,8ea2e0eev 99fc e9a7bc 99fc 000099fc ef62 ef62 ef62 ef62 ef62 ef62 ef62 -11996 ef63 ef63 ef63 * * 606f 8ea2e0ef,8ea2e0efv 9a03 e9a883 9a03 00009a03 ef63 ef63 ef63 ef63 ef63 ef63 ef63 -11997 ef64 ef64 ef64 * * 6070 8ea2e0f0,8ea2e0f0v 9abe e9aabe 9abe 00009abe ef64 ef64 ef64 ef64 ef64 ef64 ef64 -11998 ef65 ef65 ef65 * * 6071 8ea2e0f1,8ea2e0f1v 9afe e9abbe 9afe 00009afe ef65 ef65 ef65 ef65 ef65 ef65 ef65 -11999 ef66 ef66 ef66 * * 6072 8ea2e0f2,8ea2e0f2v 9afd e9abbd 9afd 00009afd ef66 ef66 ef66 ef66 ef66 ef66 ef66 -12000 ef67 ef67 ef67 * * 6073 8ea2e0f3,8ea2e0f3v 9b01 e9ac81 9b01 00009b01 ef67 ef67 ef67 ef67 ef67 ef67 ef67 -12001 ef68 ef68 ef68 * * 6074 8ea2e0f4,8ea2e0f4v 9afc e9abbc 9afc 00009afc ef68 ef68 ef68 ef68 ef68 ef68 ef68 -12002 ef69 ef69 ef69 * * 6075 8ea2e0f5,8ea2e0f5v 9b48 e9ad88 9b48 00009b48 ef69 ef69 ef69 ef69 ef69 ef69 ef69 -12003 ef6a ef6a ef6a * * 6076 8ea2e0f6,8ea2e0f6v 9b9a e9ae9a 9b9a 00009b9a ef6a ef6a ef6a ef6a ef6a ef6a ef6a -12004 ef6b ef6b ef6b * * 6077 8ea2e0f7,8ea2e0f7v 9ba8 e9aea8 9ba8 00009ba8 ef6b ef6b ef6b ef6b ef6b ef6b ef6b -12005 ef6c ef6c ef6c * * 6078 8ea2e0f8,8ea2e0f8v 9b9e e9ae9e 9b9e 00009b9e ef6c ef6c ef6c ef6c ef6c ef6c ef6c -12006 ef6d ef6d ef6d * * 6079 8ea2e0f9,8ea2e0f9v 9b9b e9ae9b 9b9b 00009b9b ef6d ef6d ef6d ef6d ef6d ef6d ef6d -12007 ef6e ef6e ef6e * * 607a 8ea2e0fa,8ea2e0fav 9ba6 e9aea6 9ba6 00009ba6 ef6e ef6e ef6e ef6e ef6e ef6e ef6e -12008 ef6f ef6f ef6f * * 607b 8ea2e0fb,8ea2e0fbv 9ba1 e9aea1 9ba1 00009ba1 ef6f ef6f ef6f ef6f ef6f ef6f ef6f -12009 ef70 ef70 ef70 * * 607c 8ea2e0fc,8ea2e0fcv 9ba5 e9aea5 9ba5 00009ba5 ef70 ef70 ef70 ef70 ef70 ef70 ef70 -12010 ef71 ef71 ef71 * * 607d 8ea2e0fd,8ea2e0fdv 9ba4 e9aea4 9ba4 00009ba4 ef71 ef71 ef71 ef71 ef71 ef71 ef71 -12011 ef72 ef72 ef72 * * 607e 8ea2e0fe,8ea2e0fev 9b86 e9ae86 9b86 00009b86 ef72 ef72 ef72 ef72 ef72 ef72 ef72 -12012 ef73 ef73 ef73 * * 6121 8ea2e1a1,8ea2e1a1v 9ba2 e9aea2 9ba2 00009ba2 ef73 ef73 ef73 ef73 ef73 ef73 ef73 -12013 ef74 ef74 ef74 * * 6122 8ea2e1a2,8ea2e1a2v 9ba0 e9aea0 9ba0 00009ba0 ef74 ef74 ef74 ef74 ef74 ef74 ef74 -12014 ef75 ef75 ef75 * * 6123 8ea2e1a3,8ea2e1a3v 9baf e9aeaf 9baf 00009baf ef75 ef75 ef75 ef75 ef75 ef75 ef75 -12015 ef76 ef76 ef76 * * 6124 8ea2e1a4,8ea2e1a4v 9d33 e9b4b3 9d33 00009d33 ef76 ef76 ef76 ef76 ef76 ef76 ef76 -12016 ef77 ef77 ef77 * * 6125 8ea2e1a5,8ea2e1a5v 9d41 e9b581 9d41 00009d41 ef77 ef77 ef77 ef77 ef77 ef77 ef77 -12017 ef78 ef78 ef78 * * 6126 8ea2e1a6,8ea2e1a6v 9d67 e9b5a7 9d67 00009d67 ef78 ef78 ef78 ef78 ef78 ef78 ef78 -12018 ef79 ef79 ef79 * * 6127 8ea2e1a7,8ea2e1a7v 9d36 e9b4b6 9d36 00009d36 ef79 ef79 ef79 ef79 ef79 ef79 ef79 -12019 ef7a ef7a ef7a * * 6128 8ea2e1a8,8ea2e1a8v 9d2e e9b4ae 9d2e 00009d2e ef7a ef7a ef7a ef7a ef7a ef7a ef7a -12020 ef7b ef7b ef7b * * 6129 8ea2e1a9,8ea2e1a9v 9d2f e9b4af 9d2f 00009d2f ef7b ef7b ef7b ef7b ef7b ef7b ef7b -12021 ef7c ef7c ef7c * * 612a 8ea2e1aa,8ea2e1aav 9d31 e9b4b1 9d31 00009d31 ef7c ef7c ef7c ef7c ef7c ef7c ef7c -12022 ef7d ef7d ef7d * * 612b 8ea2e1ab,8ea2e1abv 9d38 e9b4b8 9d38 00009d38 ef7d ef7d ef7d ef7d ef7d ef7d ef7d -12023 ef7e ef7e ef7e * * 612c 8ea2e1ac,8ea2e1acv 9d30 e9b4b0 9d30 00009d30 ef7e ef7e ef7e ef7e ef7e ef7e ef7e -12024 efa1 efa1 efa1 * * 612d 8ea2e1ad,8ea2e1adv 9d45 e9b585 9d45 00009d45 efa1 efa1 efa1 efa1 efa1 efa1 efa1 -12025 efa2 efa2 efa2 * * 612e 8ea2e1ae,8ea2e1aev 9d42 e9b582 9d42 00009d42 efa2 efa2 efa2 efa2 efa2 efa2 efa2 -12026 efa3 efa3 efa3 * * 612f 8ea2e1af,8ea2e1afv 9d43 e9b583 9d43 00009d43 efa3 efa3 efa3 efa3 efa3 efa3 efa3 -12027 efa4 efa4 efa4 * * 6130 8ea2e1b0,8ea2e1b0v 9d3e e9b4be 9d3e 00009d3e efa4 efa4 efa4 efa4 efa4 efa4 efa4 -12028 efa5 efa5 efa5 * * 6131 8ea2e1b1,8ea2e1b1v 9d37 e9b4b7 9d37 00009d37 efa5 efa5 efa5 efa5 efa5 efa5 efa5 -12029 efa6 efa6 efa6 * * 6132 8ea2e1b2,8ea2e1b2v 9d40 e9b580 9d40 00009d40 efa6 efa6 efa6 efa6 efa6 efa6 efa6 -12030 efa7 efa7 efa7 * * 6133 8ea2e1b3,8ea2e1b3v 9d3d e9b4bd 9d3d 00009d3d efa7 efa7 efa7 efa7 efa7 efa7 efa7 -12031 efa8 efa8 efa8 * * 6134 8ea2e1b4,8ea2e1b4v 7ff5 e7bfb5 7ff5 00007ff5 efa8 efa8 efa8 efa8 efa8 efa8 efa8 -12032 efa9 efa9 efa9 * * 6135 8ea2e1b5,8ea2e1b5v 9d2d e9b4ad 9d2d 00009d2d efa9 efa9 efa9 efa9 efa9 efa9 efa9 -12033 efaa efaa efaa * * 6136 8ea2e1b6,8ea2e1b6v 9e8a e9ba8a 9e8a 00009e8a efaa efaa efaa efaa efaa efaa efaa -12034 efab efab efab * * 6137 8ea2e1b7,8ea2e1b7v 9e89 e9ba89 9e89 00009e89 efab efab efab efab efab efab efab -12035 efac efac efac * * 6138 8ea2e1b8,8ea2e1b8v 9e8d e9ba8d 9e8d 00009e8d efac efac efac efac efac efac efac -12036 efad efad efad * * 6139 8ea2e1b9,8ea2e1b9v 9eb0 e9bab0 9eb0 00009eb0 efad efad efad efad efad efad efad -12037 efae efae efae * * 613a 8ea2e1ba,8ea2e1bav 9ec8 e9bb88 9ec8 00009ec8 efae efae efae efae efae efae efae -12038 efaf efaf efaf * * 613b 8ea2e1bb,8ea2e1bbv 9eda e9bb9a 9eda 00009eda efaf efaf efaf efaf efaf efaf efaf -12039 efb0 efb0 efb0 * * 613c 8ea2e1bc,8ea2e1bcv 9efb e9bbbb 9efb 00009efb efb0 efb0 efb0 efb0 efb0 efb0 efb0 -12040 efb1 efb1 efb1 * * 613d 8ea2e1bd,8ea2e1bdv 9eff e9bbbf 9eff 00009eff efb1 efb1 efb1 efb1 efb1 efb1 efb1 -12041 efb2 efb2 efb2 * * 613e 8ea2e1be,8ea2e1bev 9f24 e9bca4 9f24 00009f24 efb2 efb2 efb2 efb2 efb2 efb2 efb2 -12042 efb3 efb3 efb3 * * 613f 8ea2e1bf,8ea2e1bfv 9f23 e9bca3 9f23 00009f23 efb3 efb3 efb3 efb3 efb3 efb3 efb3 -12043 efb4 efb4 efb4 * * 6140 8ea2e1c0,8ea2e1c0v 9f22 e9bca2 9f22 00009f22 efb4 efb4 efb4 efb4 efb4 efb4 efb4 -12044 efb5 efb5 efb5 * * 6141 8ea2e1c1,8ea2e1c1v 9f54 e9bd94 9f54 00009f54 efb5 efb5 efb5 efb5 efb5 efb5 efb5 -12045 efb6 efb6 efb6 * 2939 6142 8ea1a9b9,8ea2e1c2,a9b9,8ea1a9b9v,8ea2e1c2v,a9b9v 9fa0 e2bf95,e9bea0 2fd5,9fa0 00002fd5,00009fa0 efb6 efb6 efb6 efb6 efb6 efb6 efb6 -12046 efb7 efb7 efb7 * * 6143 8ea2e1c3,8ea2e1c3v 5131 e584b1 5131 00005131 efb7 efb7 efb7 efb7 efb7 efb7 efb7 -12047 efb8 efb8 efb8 * * 6144 8ea2e1c4,8ea2e1c4v 512d e584ad 512d 0000512d efb8 efb8 efb8 efb8 efb8 efb8 efb8 -12048 efb9 efb9 efb9 * * 6145 8ea2e1c5,8ea2e1c5v 512e e584ae 512e 0000512e efb9 efb9 efb9 efb9 efb9 efb9 efb9 -12049 efba efba efba * * 6146 8ea2e1c6,8ea2e1c6v 5698 e59a98 5698 00005698 efba efba efba efba efba efba efba -12050 efbb efbb efbb * * 6147 8ea2e1c7,8ea2e1c7v 569c e59a9c 569c 0000569c efbb efbb efbb efbb efbb efbb efbb -12051 efbc efbc efbc * * 6148 8ea2e1c8,8ea2e1c8v 5697 e59a97 5697 00005697 efbc efbc efbc efbc efbc efbc efbc -12052 efbd efbd efbd * * 6149 8ea2e1c9,8ea2e1c9v 569a e59a9a 569a 0000569a efbd efbd efbd efbd efbd efbd efbd -12053 efbe efbe efbe * * 614a 8ea2e1ca,8ea2e1cav 569d e59a9d 569d 0000569d efbe efbe efbe efbe efbe efbe efbe -12054 efbf efbf efbf * * 614b 8ea2e1cb,8ea2e1cbv 5699 e59a99 5699 00005699 efbf efbf efbf efbf efbf efbf efbf -12055 efc0 efc0 efc0 * * 614c 8ea2e1cc,8ea2e1ccv 5970 e5a5b0 5970 00005970 efc0 efc0 efc0 efc0 efc0 efc0 efc0 -12056 efc1 efc1 efc1 * * 614d 8ea2e1cd,8ea2e1cdv 5b3c e5acbc 5b3c 00005b3c efc1 efc1 efc1 efc1 efc1 efc1 efc1 -12057 efc2 efc2 efc2 * * 614e 8ea2e1ce,8ea2e1cev 5c69 e5b1a9 5c69 00005c69 efc2 efc2 efc2 efc2 efc2 efc2 efc2 -12058 efc3 efc3 efc3 * * 614f 8ea2e1cf,8ea2e1cfv 5c6a e5b1aa 5c6a 00005c6a efc3 efc3 efc3 efc3 efc3 efc3 efc3 -12059 efc4 efc4 efc4 * * 6150 8ea2e1d0,8ea2e1d0v 5dc0 e5b780 5dc0 00005dc0 efc4 efc4 efc4 efc4 efc4 efc4 efc4 -12060 efc5 efc5 efc5 * * 6151 8ea2e1d1,8ea2e1d1v 5e6d e5b9ad 5e6d 00005e6d efc5 efc5 efc5 efc5 efc5 efc5 efc5 -12061 efc6 efc6 efc6 * * 6152 8ea2e1d2,8ea2e1d2v 5e6e e5b9ae 5e6e 00005e6e efc6 efc6 efc6 efc6 efc6 efc6 efc6 -12062 efc7 efc7 efc7 * * 6153 8ea2e1d3,8ea2e1d3v 61d8 e68798 61d8 000061d8 efc7 efc7 efc7 efc7 efc7 efc7 efc7 -12063 efc8 efc8 efc8 * * 6154 8ea2e1d4,8ea2e1d4v 61df e6879f 61df 000061df efc8 efc8 efc8 efc8 efc8 efc8 efc8 -12064 efc9 efc9 efc9 * * 6155 8ea2e1d5,8ea2e1d5v 61ed e687ad 61ed 000061ed efc9 efc9 efc9 efc9 efc9 efc9 efc9 -12065 efca efca efca * * 6156 8ea2e1d6,8ea2e1d6v 61ee e687ae 61ee 000061ee efca efca efca efca efca efca efca -12066 efcb efcb efcb * * 6157 8ea2e1d7,8ea2e1d7v 61f1 e687b1 61f1 000061f1 efcb efcb efcb efcb efcb efcb efcb -12067 efcc efcc efcc * * 6158 8ea2e1d8,8ea2e1d8v 61ea e687aa 61ea 000061ea efcc efcc efcc efcc efcc efcc efcc -12068 efcd efcd efcd * * 6159 8ea2e1d9,8ea2e1d9v 61f0 e687b0 61f0 000061f0 efcd efcd efcd efcd efcd efcd efcd -12069 efce efce efce * * 615a 8ea2e1da,8ea2e1dav 61eb e687ab 61eb 000061eb efce efce efce efce efce efce efce -12070 efcf efcf efcf * * 615b 8ea2e1db,8ea2e1dbv 61d6 e68796 61d6 000061d6 efcf efcf efcf efcf efcf efcf efcf -12071 efd0 efd0 efd0 * * 615c 8ea2e1dc,8ea2e1dcv 61e9 e687a9 61e9 000061e9 efd0 efd0 efd0 efd0 efd0 efd0 efd0 -12072 efd1 efd1 efd1 * * 615d 8ea2e1dd,8ea2e1ddv 64ff e693bf 64ff 000064ff efd1 efd1 efd1 efd1 efd1 efd1 efd1 -12073 efd2 efd2 efd2 * * 615e 8ea2e1de,8ea2e1dev 6504 e69484 6504 00006504 efd2 efd2 efd2 efd2 efd2 efd2 efd2 -12074 efd3 efd3 efd3 * * 615f 8ea2e1df,8ea2e1dfv 64fd e693bd 64fd 000064fd efd3 efd3 efd3 efd3 efd3 efd3 efd3 -12075 efd4 efd4 efd4 * * 6160 8ea2e1e0,8ea2e1e0v 64f8 e693b8 64f8 000064f8 efd4 efd4 efd4 efd4 efd4 efd4 efd4 -12076 efd5 efd5 efd5 * * 6161 8ea2e1e1,8ea2e1e1v 6501 e69481 6501 00006501 efd5 efd5 efd5 efd5 efd5 efd5 efd5 -12077 efd6 efd6 efd6 * * 6162 8ea2e1e2,8ea2e1e2v 6503 e69483 6503 00006503 efd6 efd6 efd6 efd6 efd6 efd6 efd6 -12078 efd7 efd7 efd7 * * 6163 8ea2e1e3,8ea2e1e3v 64fc e693bc 64fc 000064fc efd7 efd7 efd7 efd7 efd7 efd7 efd7 -12079 efd8 efd8 efd8 * * 6164 8ea2e1e4,8ea2e1e4v 6594 e69694 6594 00006594 efd8 efd8 efd8 efd8 efd8 efd8 efd8 -12080 efd9 efd9 efd9 * * 6165 8ea2e1e5,8ea2e1e5v 65db e6979b 65db 000065db efd9 efd9 efd9 efd9 efd9 efd9 efd9 -12081 efda efda efda * * 6166 8ea2e1e6,8ea2e1e6v 66da e69b9a 66da 000066da efda efda efda efda efda efda efda -12082 efdb efdb efdb * * 6167 8ea2e1e7,8ea2e1e7v 66db e69b9b 66db 000066db efdb efdb efdb efdb efdb efdb efdb -12083 efdc efdc efdc * * 6168 8ea2e1e8,8ea2e1e8v 66d8 e69b98 66d8 000066d8 efdc efdc efdc efdc efdc efdc efdc -12084 efdd efdd efdd * * 6169 8ea2e1e9,8ea2e1e9v 6ac5 e6ab85 6ac5 00006ac5 efdd efdd efdd efdd efdd efdd efdd -12085 efde efde efde * * 616a 8ea2e1ea,8ea2e1eav 6ab9 e6aab9 6ab9 00006ab9 efde efde efde efde efde efde efde -12086 efdf efdf efdf * * 616b 8ea2e1eb,8ea2e1ebv 6abd e6aabd 6abd 00006abd efdf efdf efdf efdf efdf efdf efdf -12087 efe0 efe0 efe0 * * 616c 8ea2e1ec,8ea2e1ecv 6ae1 e6aba1 6ae1 00006ae1 efe0 efe0 efe0 efe0 efe0 efe0 efe0 -12088 efe1 efe1 efe1 * * 616d 8ea2e1ed,8ea2e1edv 6ac6 e6ab86 6ac6 00006ac6 efe1 efe1 efe1 efe1 efe1 efe1 efe1 -12089 efe2 efe2 efe2 * * 616e 8ea2e1ee,8ea2e1eev 6aba e6aaba 6aba 00006aba efe2 efe2 efe2 efe2 efe2 efe2 efe2 -12090 efe3 efe3 efe3 * * 616f 8ea2e1ef,8ea2e1efv 6ab6 e6aab6 6ab6 00006ab6 efe3 efe3 efe3 efe3 efe3 efe3 efe3 -12091 efe4 efe4 efe4 * * 6170 8ea2e1f0,8ea2e1f0v 6ab7 e6aab7 6ab7 00006ab7 efe4 efe4 efe4 efe4 efe4 efe4 efe4 -12092 efe5 efe5 efe5 * * 6171 8ea2e1f1,8ea2e1f1v 6ac7 e6ab87 6ac7 00006ac7 efe5 efe5 efe5 efe5 efe5 efe5 efe5 -12093 efe6 efe6 efe6 * * 6172 8ea2e1f2,8ea2e1f2v 6ab4 e6aab4 6ab4 00006ab4 efe6 efe6 efe6 efe6 efe6 efe6 efe6 -12094 efe7 efe7 efe7 * * 6173 8ea2e1f3,8ea2e1f3v 6aad e6aaad 6aad 00006aad efe7 efe7 efe7 efe7 efe7 efe7 efe7 -12095 efe8 efe8 efe8 * * 6174 8ea2e1f4,8ea2e1f4v 6b5e e6ad9e 6b5e 00006b5e efe8 efe8 efe8 efe8 efe8 efe8 efe8 -12096 efe9 efe9 efe9 * * 6175 8ea2e1f5,8ea2e1f5v 6bc9 e6af89 6bc9 00006bc9 efe9 efe9 efe9 efe9 efe9 efe9 efe9 -12097 efea efea efea * * 6176 8ea2e1f6,8ea2e1f6v 6c0b e6b08b 6c0b 00006c0b efea efea efea efea efea efea efea -12098 efeb efeb efeb * * 6177 8ea2e1f7,8ea2e1f7v 7007 e78087 7007 00007007 efeb efeb efeb efeb efeb efeb efeb -12099 efec efec efec * * 6178 8ea2e1f8,8ea2e1f8v 700c e7808c 700c 0000700c efec efec efec efec efec efec efec -12100 efed efed efed * * 6179 8ea2e1f9,8ea2e1f9v 700d e7808d 700d 0000700d efed efed efed efed efed efed efed -12101 efee efee efee * * 617a 8ea2e1fa,8ea2e1fav 7001 e78081 7001 00007001 efee efee efee efee efee efee efee -12102 efef efef efef * * 617b 8ea2e1fb,8ea2e1fbv 7005 e78085 7005 00007005 efef efef efef efef efef efef efef -12103 eff0 eff0 eff0 * * 617c 8ea2e1fc,8ea2e1fcv 7014 e78094 7014 00007014 eff0 eff0 eff0 eff0 eff0 eff0 eff0 -12104 eff1 eff1 eff1 * * 617d 8ea2e1fd,8ea2e1fdv 700e e7808e 700e 0000700e eff1 eff1 eff1 eff1 eff1 eff1 eff1 -12105 eff2 eff2 eff2 * * 617e 8ea2e1fe,8ea2e1fev 6fff e6bfbf 6fff 00006fff eff2 eff2 eff2 eff2 eff2 eff2 eff2 -12106 eff3 eff3 eff3 * * 6221 8ea2e2a1,8ea2e2a1v 7000 e78080 7000 00007000 eff3 eff3 eff3 eff3 eff3 eff3 eff3 -12107 eff4 eff4 eff4 * * 6222 8ea2e2a2,8ea2e2a2v 6ffb e6bfbb 6ffb 00006ffb eff4 eff4 eff4 eff4 eff4 eff4 eff4 -12108 eff5 eff5 eff5 * * 6223 8ea2e2a3,8ea2e2a3v 7026 e780a6 7026 00007026 eff5 eff5 eff5 eff5 eff5 eff5 eff5 -12109 eff6 eff6 eff6 * * 6224 8ea2e2a4,8ea2e2a4v 6ffc e6bfbc 6ffc 00006ffc eff6 eff6 eff6 eff6 eff6 eff6 eff6 -12110 eff7 eff7 eff7 * * 6225 8ea2e2a5,8ea2e2a5v 6ff7 e6bfb7 6ff7 00006ff7 eff7 eff7 eff7 eff7 eff7 eff7 eff7 -12111 eff8 eff8 eff8 * * 6226 8ea2e2a6,8ea2e2a6v 700a e7808a 700a 0000700a eff8 eff8 eff8 eff8 eff8 eff8 eff8 -12112 eff9 eff9 eff9 * * 6227 8ea2e2a7,8ea2e2a7v 7201 e78881,eead80 7201,eb40 00007201,0000eb40 9b76,eff9 eff9 eff9 eff9 eff9 eff9 9b76,eff9 -12113 effa effa effa * * 6228 8ea2e2a8,8ea2e2a8v 71ff e787bf 71ff 000071ff effa effa effa effa effa effa effa -12114 effb effb effb * * 6229 8ea2e2a9,8ea2e2a9v 71f9 e787b9 71f9 000071f9 effb effb effb effb effb effb effb -12115 effc effc effc * * 622a 8ea2e2aa,8ea2e2aav 7203 e78883 7203 00007203 effc effc effc effc effc effc effc -12116 effd effd effd * * 622b 8ea2e2ab,8ea2e2abv 71fd e787bd 71fd 000071fd effd effd effd effd effd effd effd -12117 effe effe effe * * 622c 8ea2e2ac,8ea2e2acv 7376 e78db6 7376 00007376 effe effe effe effe effe effe effe -12118 f040 f040 f040 * * 622d 8ea2e2ad,8ea2e2adv 74b8 e792b8 74b8 000074b8 f040 f040 f040 f040 f040 f040 f040 -12119 f041 f041 f041 * * 622e 8ea2e2ae,8ea2e2aev 74c0 e79380 74c0 000074c0 f041 f041 f041 f041 f041 f041 f041 -12120 f042 f042 f042 * * 622f 8ea2e2af,8ea2e2afv 74b5 e792b5 74b5 000074b5 f042 f042 f042 f042 f042 f042 f042 -12121 f043 f043 f043 * * 6230 8ea2e2b0,8ea2e2b0v 74c1 e79381 74c1 000074c1 f043 f043 f043 f043 f043 f043 f043 -12122 f044 f044 f044 * * 6231 8ea2e2b1,8ea2e2b1v 74be e792be 74be 000074be f044 f044 f044 f044 f044 f044 f044 -12123 f045 f045 f045 * * 6232 8ea2e2b2,8ea2e2b2v 74b6 e792b6 74b6 000074b6 f045 f045 f045 f045 f045 f045 f045 -12124 f046 f046 f046 * * 6233 8ea2e2b3,8ea2e2b3v 74bb e792bb 74bb 000074bb f046 f046 f046 f046 f046 f046 f046 -12125 f047 f047 f047 * * 6234 8ea2e2b4,8ea2e2b4v 74c2 e79382 74c2 000074c2 f047 f047 f047 f047 f047 f047 f047 -12126 f048 f048 f048 * * 6235 8ea2e2b5,8ea2e2b5v 7514 e79494 7514 00007514 f048 f048 f048 f048 f048 f048 f048 -12127 f049 f049 f049 * * 6236 8ea2e2b6,8ea2e2b6v 7513 e79493 7513 00007513 f049 f049 f049 f049 f049 f049 f049 -12128 f04a f04a f04a * * 6237 8ea2e2b7,8ea2e2b7v 765c e7999c 765c 0000765c f04a f04a f04a f04a f04a f04a f04a -12129 f04b f04b f04b * * 6238 8ea2e2b8,8ea2e2b8v 7664 e799a4 7664 00007664 f04b f04b f04b f04b f04b f04b f04b -12130 f04c f04c f04c * * 6239 8ea2e2b9,8ea2e2b9v 7659 e79999 7659 00007659 f04c f04c f04c f04c f04c f04c f04c -12131 f04d f04d f04d * * 623a 8ea2e2ba,8ea2e2bav 7650 e79990 7650 00007650 f04d f04d f04d f04d f04d f04d f04d -12132 f04e f04e f04e * * 623b 8ea2e2bb,8ea2e2bbv 7653 e79993 7653 00007653 f04e f04e f04e f04e f04e f04e f04e -12133 f04f f04f f04f * * 623c 8ea2e2bc,8ea2e2bcv 7657 e79997 7657 00007657 f04f f04f f04f f04f f04f f04f f04f -12134 f050 f050 f050 * * 623d 8ea2e2bd,8ea2e2bdv 765a e7999a 765a 0000765a f050 f050 f050 f050 f050 f050 f050 -12135 f051 f051 f051 * * 623e 8ea2e2be,8ea2e2bev 76a6 e79aa6 76a6 000076a6 f051 f051 f051 f051 f051 f051 f051 -12136 f052 f052 f052 * * 623f 8ea2e2bf,8ea2e2bfv 76bd e79abd 76bd 000076bd f052 f052 f052 f052 f052 f052 f052 -12137 f053 f053 f053 * * 6240 8ea2e2c0,8ea2e2c0v 76ec e79bac 76ec 000076ec f053 f053 f053 f053 f053 f053 f053 -12138 f054 f054 f054 * * 6241 8ea2e2c1,8ea2e2c1v 77c2 e79f82 77c2 000077c2 f054 f054 f054 f054 f054 f054 f054 -12139 f055 f055 f055 * * 6242 8ea2e2c2,8ea2e2c2v 77ba e79eba 77ba 000077ba f055 f055 f055 f055 f055 f055 f055 -12140 f057 f057 f057 * * 6243 8ea2e2c3,8ea2e2c3v 790c e7a48c 790c 0000790c f057 f057 f057 f057 f057 f057 f057 -12141 f058 f058 f058 * * 6244 8ea2e2c4,8ea2e2c4v 7913 e7a493 7913 00007913 f058 f058 f058 f058 f058 f058 f058 -12142 f059 f059 f059 * * 6245 8ea2e2c5,8ea2e2c5v 7914 e7a494 7914 00007914 f059 f059 f059 f059 f059 f059 f059 -12143 f05a f05a f05a * * 6246 8ea2e2c6,8ea2e2c6v 7909 e7a489 7909 00007909 f05a f05a f05a f05a f05a f05a f05a -12144 f05b f05b f05b * * 6247 8ea2e2c7,8ea2e2c7v 7910 e7a490 7910 00007910 f05b f05b f05b f05b f05b f05b f05b -12145 f05c f05c f05c * * 6248 8ea2e2c8,8ea2e2c8v 7912 e7a492 7912 00007912 f05c f05c f05c f05c f05c f05c f05c -12146 f05d f05d f05d * * 6249 8ea2e2c9,8ea2e2c9v 7911 e7a491 7911 00007911 f05d f05d f05d f05d f05d f05d f05d -12147 f05e f05e f05e * * 624a 8ea2e2ca,8ea2e2cav 79ad e7a6ad 79ad 000079ad f05e f05e f05e f05e f05e f05e f05e -12148 f05f f05f f05f * * 624b 8ea2e2cb,8ea2e2cbv 79ac e7a6ac 79ac 000079ac f05f f05f f05f f05f f05f f05f f05f -12149 f060 f060 f060 * * 624c 8ea2e2cc,8ea2e2ccv 7a5f e7a99f 7a5f 00007a5f f060 f060 f060 f060 f060 f060 f060 -12150 f061 f061 f061 * * 624d 8ea2e2cd,8ea2e2cdv 7c1c e7b09c 7c1c 00007c1c f061 f061 f061 f061 f061 f061 f061 -12151 f062 f062 f062 * * 624e 8ea2e2ce,8ea2e2cev 7c29 e7b0a9 7c29 00007c29 f062 f062 f062 f062 f062 f062 f062 -12152 f063 f063 f063 * * 624f 8ea2e2cf,8ea2e2cfv 7c19 e7b099 7c19 00007c19 f063 f063 f063 f063 f063 f063 f063 -12153 f064 f064 f064 * * 6250 8ea2e2d0,8ea2e2d0v 7c20 e7b0a0 7c20 00007c20 f064 f064 f064 f064 f064 f064 f064 -12154 f065 f065 f065 * * 6251 8ea2e2d1,8ea2e2d1v 7c1f e7b09f 7c1f 00007c1f f065 f065 f065 f065 f065 f065 f065 -12155 f066 f066 f066 * * 6252 8ea2e2d2,8ea2e2d2v 7c2d e7b0ad 7c2d 00007c2d f066 f066 f066 f066 f066 f066 f066 -12156 f067 f067 f067 * * 6253 8ea2e2d3,8ea2e2d3v 7c1d e7b09d 7c1d 00007c1d f067 f067 f067 f067 f067 f067 f067 -12157 f068 f068 f068 * * 6254 8ea2e2d4,8ea2e2d4v 7c26 e7b0a6 7c26 00007c26 f068 f068 f068 f068 f068 f068 f068 -12158 f069 f069 f069 * * 6255 8ea2e2d5,8ea2e2d5v 7c28 e7b0a8 7c28 00007c28 f069 f069 f069 f069 f069 f069 f069 -12159 f06a f06a f06a * * 6256 8ea2e2d6,8ea2e2d6v 7c22 e7b0a2 7c22 00007c22 f06a f06a f06a f06a f06a f06a f06a -12160 f06b f06b f06b * * 6257 8ea2e2d7,8ea2e2d7v 7c25 e7b0a5 7c25 00007c25 f06b f06b f06b f06b f06b f06b f06b -12161 f06c f06c f06c * * 6258 8ea2e2d8,8ea2e2d8v 7c30 e7b0b0 7c30 00007c30 f06c f06c f06c f06c f06c f06c f06c -12162 f06d f06d f06d * * 6259 8ea2e2d9,8ea2e2d9v 7e5c e7b99c 7e5c 00007e5c f06d f06d f06d f06d f06d f06d f06d -12163 f06e f06e f06e * * 625a 8ea2e2da,8ea2e2dav 7e50 e7b990 7e50 00007e50 f06e f06e f06e f06e f06e f06e f06e -12164 f06f f06f f06f * * 625b 8ea2e2db,8ea2e2dbv 7e56 e7b996 7e56 00007e56 f06f f06f f06f f06f f06f f06f f06f -12165 f070 f070 f070 * * 625c 8ea2e2dc,8ea2e2dcv 7e63 e7b9a3 7e63 00007e63 f070 f070 f070 f070 f070 f070 f070 -12166 f071 f071 f071 * * 625d 8ea2e2dd,8ea2e2ddv 7e58 e7b998 7e58 00007e58 f071 f071 f071 f071 f071 f071 f071 -12167 f072 f072 f072 * * 625e 8ea2e2de,8ea2e2dev 7e62 e7b9a2 7e62 00007e62 f072 f072 f072 f072 f072 f072 f072 -12168 f073 f073 f073 * * 625f 8ea2e2df,8ea2e2dfv 7e5f e7b99f 7e5f 00007e5f f073 f073 f073 f073 f073 f073 f073 -12169 f074 f074 f074 * * 6260 8ea2e2e0,8ea2e2e0v 7e51 e7b991 7e51 00007e51 f074 f074 f074 f074 f074 f074 f074 -12170 f075 f075 f075 * * 6261 8ea2e2e1,8ea2e2e1v 7e60 e7b9a0 7e60 00007e60 f075 f075 f075 f075 f075 f075 f075 -12171 f076 f076 f076 * * 6262 8ea2e2e2,8ea2e2e2v 7e57 e7b997 7e57 00007e57 f076 f076 f076 f076 f076 f076 f076 -12172 f077 f077 f077 * * 6263 8ea2e2e3,8ea2e2e3v 7e53 e7b993 7e53 00007e53 f077 f077 f077 f077 f077 f077 f077 -12173 f078 f078 f078 * * 6264 8ea2e2e4,8ea2e2e4v 7fb5 e7beb5 7fb5 00007fb5 f078 f078 f078 f078 f078 f078 f078 -12174 f079 f079 f079 * * 6265 8ea2e2e5,8ea2e2e5v 7fb3 e7beb3 7fb3 00007fb3 f079 f079 f079 f079 f079 f079 f079 -12175 f07a f07a f07a * * 6266 8ea2e2e6,8ea2e2e6v 7ff7 e7bfb7 7ff7 00007ff7 f07a f07a f07a f07a f07a f07a f07a -12176 f07b f07b f07b * * 6267 8ea2e2e7,8ea2e2e7v 7ff8 e7bfb8 7ff8 00007ff8 f07b f07b f07b f07b f07b f07b f07b -12177 f07c f07c f07c * * 6268 8ea2e2e8,8ea2e2e8v 8075 e881b5 8075 00008075 f07c f07c f07c f07c f07c f07c f07c -12178 f07d f07d f07d * * 6269 8ea2e2e9,8ea2e2e9v 81d1 e88791 81d1 000081d1 f07d f07d f07d f07d f07d f07d f07d -12179 f07e f07e f07e * * 626a 8ea2e2ea,8ea2e2eav 81d2 e88792 81d2 000081d2 f07e f07e f07e f07e f07e f07e f07e -12180 f0a1 f0a1 f0a1 * * 626b 8ea2e2eb,8ea2e2ebv 81d0 e88790 81d0 000081d0 f0a1 f0a1 f0a1 f0a1 f0a1 f0a1 f0a1 -12181 f0a2 f0a2 f0a2 * * 626c 8ea2e2ec,8ea2e2ecv 825f e8899f 825f 0000825f f0a2 f0a2 f0a2 f0a2 f0a2 f0a2 f0a2 -12182 f0a3 f0a3 f0a3 * * 626d 8ea2e2ed,8ea2e2edv 825e e8899e 825e 0000825e f0a3 f0a3 f0a3 f0a3 f0a3 f0a3 f0a3 -12183 f0a4 f0a4 f0a4 * * 626e 8ea2e2ee,8ea2e2eev 85b4 e896b4 85b4 000085b4 f0a4 f0a4 f0a4 f0a4 f0a4 f0a4 f0a4 -12184 f0a5 f0a5 f0a5 * * 626f 8ea2e2ef,8ea2e2efv 85c6 e89786 85c6 000085c6 f0a5 f0a5 f0a5 f0a5 f0a5 f0a5 f0a5 -12185 f0a6 f0a6 f0a6 * * 6270 8ea2e2f0,8ea2e2f0v 85c0 e89780 85c0 000085c0 f0a6 f0a6 f0a6 f0a6 f0a6 f0a6 f0a6 -12186 f0a7 f0a7 f0a7 * * 6271 8ea2e2f1,8ea2e2f1v 85c3 e89783 85c3 000085c3 f0a7 f0a7 f0a7 f0a7 f0a7 f0a7 f0a7 -12187 f0a8 f0a8 f0a8 * * 6272 8ea2e2f2,8ea2e2f2v 85c2 e89782 85c2 000085c2 f0a8 f0a8 f0a8 f0a8 f0a8 f0a8 f0a8 -12188 f0a9 f0a9 f0a9 * * 6273 8ea2e2f3,8ea2e2f3v 85b3 e896b3 85b3 000085b3 f0a9 f0a9 f0a9 f0a9 f0a9 f0a9 f0a9 -12189 f0aa f0aa f0aa * * 6274 8ea2e2f4,8ea2e2f4v 85b5 e896b5 85b5 000085b5 f0aa f0aa f0aa f0aa f0aa f0aa f0aa -12190 f0ab f0ab f0ab * * 6275 8ea2e2f5,8ea2e2f5v 85bd e896bd 85bd 000085bd f0ab f0ab f0ab f0ab f0ab f0ab f0ab -12191 f0ac f0ac f0ac * * 6276 8ea2e2f6,8ea2e2f6v 85c7 e89787 85c7 000085c7 f0ac f0ac f0ac f0ac f0ac f0ac f0ac -12192 f0ad f0ad f0ad * * 6277 8ea2e2f7,8ea2e2f7v 85c4 e89784 85c4 000085c4 f0ad f0ad f0ad f0ad f0ad f0ad f0ad -12193 f0ae f0ae f0ae * * 6278 8ea2e2f8,8ea2e2f8v 85bf e896bf 85bf 000085bf f0ae f0ae f0ae f0ae f0ae f0ae f0ae -12194 f0af f0af f0af * * 6279 8ea2e2f9,8ea2e2f9v 85cb e8978b 85cb 000085cb f0af f0af f0af f0af f0af f0af f0af -12195 f0b0 f0b0 f0b0 * * 627a 8ea2e2fa,8ea2e2fav 85ce e8978e 85ce 000085ce f0b0 f0b0 f0b0 f0b0 f0b0 f0b0 f0b0 -12196 f0b1 f0b1 f0b1 * * 627b 8ea2e2fb,8ea2e2fbv 85c8 e89788 85c8 000085c8 f0b1 f0b1 f0b1 f0b1 f0b1 f0b1 f0b1 -12197 f0b2 f0b2 f0b2 * * 627c 8ea2e2fc,8ea2e2fcv 85c5 e89785 85c5 000085c5 f0b2 f0b2 f0b2 f0b2 f0b2 f0b2 f0b2 -12198 f0b3 f0b3 f0b3 * * 627d 8ea2e2fd,8ea2e2fdv 85b1 e896b1 85b1 000085b1 f0b3 f0b3 f0b3 f0b3 f0b3 f0b3 f0b3 -12199 f0b4 f0b4 f0b4 * * 627e 8ea2e2fe,8ea2e2fev 85b6 e896b6 85b6 000085b6 f0b4 f0b4 f0b4 f0b4 f0b4 f0b4 f0b4 -12200 f0b5 f0b5 f0b5 * * 6321 8ea2e3a1,8ea2e3a1v 85d2 e89792 85d2 000085d2 f0b5 f0b5 f0b5 f0b5 f0b5 f0b5 f0b5 -12201 f0b6 f0b6 f0b6 * * 6322 8ea2e3a2,8ea2e3a2v 8624 e898a4 8624 00008624 f0b6 f0b6 f0b6 f0b6 f0b6 f0b6 f0b6 -12202 f0b7 f0b7 f0b7 * * 6323 8ea2e3a3,8ea2e3a3v 85b8 e896b8 85b8 000085b8 f0b7 f0b7 f0b7 f0b7 f0b7 f0b7 f0b7 -12203 f0b8 f0b8 f0b8 * * 6324 8ea2e3a4,8ea2e3a4v 85b7 e896b7 85b7 000085b7 f0b8 f0b8 f0b8 f0b8 f0b8 f0b8 f0b8 -12204 f0b9 f0b9 f0b9 * * 6325 8ea2e3a5,8ea2e3a5v 85be e896be 85be 000085be f0b9 f0b9 f0b9 f0b9 f0b9 f0b9 f0b9 -12205 f0ba f0ba f0ba * * 6326 8ea2e3a6,8ea2e3a6v 8669 e899a9 8669 00008669 f0ba f0ba f0ba f0ba f0ba f0ba f0ba -12206 f0bb f0bb f0bb * * 6327 8ea2e3a7,8ea2e3a7v 87e7 e89fa7 87e7 000087e7 f0bb f0bb f0bb f0bb f0bb f0bb f0bb -12207 f0bc f0bc f0bc * * 6328 8ea2e3a8,8ea2e3a8v 87e6 e89fa6 87e6 000087e6 f0bc f0bc f0bc f0bc f0bc f0bc f0bc -12208 f0bd f0bd f0bd * * 6329 8ea2e3a9,8ea2e3a9v 87e2 e89fa2 87e2 000087e2 f0bd f0bd f0bd f0bd f0bd f0bd f0bd -12209 f0be f0be f0be * * 632a 8ea2e3aa,8ea2e3aav 87db e89f9b 87db 000087db f0be f0be f0be f0be f0be f0be f0be -12210 f0bf f0bf f0bf * * 632b 8ea2e3ab,8ea2e3abv 87eb e89fab 87eb 000087eb f0bf f0bf f0bf f0bf f0bf f0bf f0bf -12211 f0c0 f0c0 f0c0 * * 632c 8ea2e3ac,8ea2e3acv 87ea e89faa 87ea 000087ea f0c0 f0c0 f0c0 f0c0 f0c0 f0c0 f0c0 -12212 f0c1 f0c1 f0c1 * * 632d 8ea2e3ad,8ea2e3adv 87e5 e89fa5 87e5 000087e5 f0c1 f0c1 f0c1 f0c1 f0c1 f0c1 f0c1 -12213 f0c2 f0c2 f0c2 * * 632e 8ea2e3ae,8ea2e3aev 87df e89f9f 87df 000087df f0c2 f0c2 f0c2 f0c2 f0c2 f0c2 f0c2 -12214 f0c3 f0c3 f0c3 * * 632f 8ea2e3af,8ea2e3afv 87f3 e89fb3 87f3 000087f3 f0c3 f0c3 f0c3 f0c3 f0c3 f0c3 f0c3 -12215 f0c4 f0c4 f0c4 * * 6330 8ea2e3b0,8ea2e3b0v 87e4 e89fa4 87e4 000087e4 f0c4 f0c4 f0c4 f0c4 f0c4 f0c4 f0c4 -12216 f0c5 f0c5 f0c5 * * 6331 8ea2e3b1,8ea2e3b1v 87d4 e89f94 87d4 000087d4 f0c5 f0c5 f0c5 f0c5 f0c5 f0c5 f0c5 -12217 f0c6 f0c6 f0c6 * * 6332 8ea2e3b2,8ea2e3b2v 87dc e89f9c 87dc 000087dc f0c6 f0c6 f0c6 f0c6 f0c6 f0c6 f0c6 -12218 f0c7 f0c7 f0c7 * * 6333 8ea2e3b3,8ea2e3b3v 87d3 e89f93 87d3 000087d3 f0c7 f0c7 f0c7 f0c7 f0c7 f0c7 f0c7 -12219 f0c8 f0c8 f0c8 * * 6334 8ea2e3b4,8ea2e3b4v 87ed e89fad 87ed 000087ed f0c8 f0c8 f0c8 f0c8 f0c8 f0c8 f0c8 -12220 f0c9 f0c9 f0c9 * * 6335 8ea2e3b5,8ea2e3b5v 87d8 e89f98 87d8 000087d8 f0c9 f0c9 f0c9 f0c9 f0c9 f0c9 f0c9 -12221 f0ca f0ca f0ca * * 6336 8ea2e3b6,8ea2e3b6v 87e3 e89fa3 87e3 000087e3 f0ca f0ca f0ca f0ca f0ca f0ca f0ca -12222 f0cc f0cc f0cc * * 6337 8ea2e3b7,8ea2e3b7v 87d7 e89f97 87d7 000087d7 f0cc f0cc f0cc f0cc f0cc f0cc f0cc -12223 f0cd f0cd f0cd * * 6338 8ea2e3b8,8ea2e3b8v 87d9 e89f99 87d9 000087d9 f0cd f0cd f0cd f0cd f0cd f0cd f0cd -12224 f0ce f0ce f0ce * * 6339 8ea2e3b9,8ea2e3b9v 8801 e8a081 8801 00008801 f0ce f0ce f0ce f0ce f0ce f0ce f0ce -12225 f0cf f0cf f0cf * * 633a 8ea2e3ba,8ea2e3bav 87f4 e89fb4 87f4 000087f4 f0cf f0cf f0cf f0cf f0cf f0cf f0cf -12226 f0d0 f0d0 f0d0 * * 633b 8ea2e3bb,8ea2e3bbv 87e8 e89fa8 87e8 000087e8 f0d0 f0d0 f0d0 f0d0 f0d0 f0d0 f0d0 -12227 f0d1 f0d1 f0d1 * * 633c 8ea2e3bc,8ea2e3bcv 87dd e89f9d 87dd 000087dd f0d1 f0d1 f0d1 f0d1 f0d1 f0d1 f0d1 -12228 f0d2 f0d2 f0d2 * * 633d 8ea2e3bd,8ea2e3bdv 8953 e8a593 8953 00008953 f0d2 f0d2 f0d2 f0d2 f0d2 f0d2 f0d2 -12229 f0d3 f0d3 f0d3 * * 633e 8ea2e3be,8ea2e3bev 894b e8a58b 894b 0000894b f0d3 f0d3 f0d3 f0d3 f0d3 f0d3 f0d3 -12230 f0d4 f0d4 f0d4 * * 633f 8ea2e3bf,8ea2e3bfv 894f e8a58f 894f 0000894f f0d4 f0d4 f0d4 f0d4 f0d4 f0d4 f0d4 -12231 f0d5 f0d5 f0d5 * * 6340 8ea2e3c0,8ea2e3c0v 894c e8a58c 894c 0000894c f0d5 f0d5 f0d5 f0d5 f0d5 f0d5 f0d5 -12232 f0d6 f0d6 f0d6 * * 6341 8ea2e3c1,8ea2e3c1v 8946 e8a586 8946 00008946 f0d6 f0d6 f0d6 f0d6 f0d6 f0d6 f0d6 -12233 f0d7 f0d7 f0d7 * * 6342 8ea2e3c2,8ea2e3c2v 8950 e8a590 8950 00008950 f0d7 f0d7 f0d7 f0d7 f0d7 f0d7 f0d7 -12234 f0d8 f0d8 f0d8 * * 6343 8ea2e3c3,8ea2e3c3v 8951 e8a591 8951 00008951 f0d8 f0d8 f0d8 f0d8 f0d8 f0d8 f0d8 -12235 f0d9 f0d9 f0d9 * * 6344 8ea2e3c4,8ea2e3c4v 8949 e8a589 8949 00008949 f0d9 f0d9 f0d9 f0d9 f0d9 f0d9 f0d9 -12236 f0da f0da f0da * * 6345 8ea2e3c5,8ea2e3c5v 8b2a e8acaa 8b2a 00008b2a f0da f0da f0da f0da f0da f0da f0da -12237 f0db f0db f0db * * 6346 8ea2e3c6,8ea2e3c6v 8b27 e8aca7 8b27 00008b27 f0db f0db f0db f0db f0db f0db f0db -12238 f0dc f0dc f0dc * * 6347 8ea2e3c7,8ea2e3c7v 8b23 e8aca3 8b23 00008b23 f0dc f0dc f0dc f0dc f0dc f0dc f0dc -12239 f0dd f0dd f0dd * * 6348 8ea2e3c8,8ea2e3c8v 8b33 e8acb3 8b33 00008b33 f0dd f0dd f0dd f0dd f0dd f0dd f0dd -12240 f0de f0de f0de * * 6349 8ea2e3c9,8ea2e3c9v 8b30 e8acb0 8b30 00008b30 f0de f0de f0de f0de f0de f0de f0de -12241 f0df f0df f0df * * 634a 8ea2e3ca,8ea2e3cav 8b35 e8acb5 8b35 00008b35 f0df f0df f0df f0df f0df f0df f0df -12242 f0e0 f0e0 f0e0 * * 634b 8ea2e3cb,8ea2e3cbv 8b47 e8ad87 8b47 00008b47 f0e0 f0e0 f0e0 f0e0 f0e0 f0e0 f0e0 -12243 f0e1 f0e1 f0e1 * * 634c 8ea2e3cc,8ea2e3ccv 8b2f e8acaf 8b2f 00008b2f f0e1 f0e1 f0e1 f0e1 f0e1 f0e1 f0e1 -12244 f0e2 f0e2 f0e2 * * 634d 8ea2e3cd,8ea2e3cdv 8b3c e8acbc 8b3c 00008b3c f0e2 f0e2 f0e2 f0e2 f0e2 f0e2 f0e2 -12245 f0e3 f0e3 f0e3 * * 634e 8ea2e3ce,8ea2e3cev 8b3e e8acbe 8b3e 00008b3e f0e3 f0e3 f0e3 f0e3 f0e3 f0e3 f0e3 -12246 f0e4 f0e4 f0e4 * * 634f 8ea2e3cf,8ea2e3cfv 8b31 e8acb1 8b31 00008b31 f0e4 f0e4 f0e4 f0e4 f0e4 f0e4 f0e4 -12247 f0e5 f0e5 f0e5 * * 6350 8ea2e3d0,8ea2e3d0v 8b25 e8aca5 8b25 00008b25 f0e5 f0e5 f0e5 f0e5 f0e5 f0e5 f0e5 -12248 f0e6 f0e6 f0e6 * * 6351 8ea2e3d1,8ea2e3d1v 8b37 e8acb7 8b37 00008b37 f0e6 f0e6 f0e6 f0e6 f0e6 f0e6 f0e6 -12249 f0e7 f0e7 f0e7 * * 6352 8ea2e3d2,8ea2e3d2v 8b26 e8aca6 8b26 00008b26 f0e7 f0e7 f0e7 f0e7 f0e7 f0e7 f0e7 -12250 f0e8 f0e8 f0e8 * * 6353 8ea2e3d3,8ea2e3d3v 8b36 e8acb6 8b36 00008b36 f0e8 f0e8 f0e8 f0e8 f0e8 f0e8 f0e8 -12251 f0e9 f0e9 f0e9 * * 6354 8ea2e3d4,8ea2e3d4v 8b2e e8acae 8b2e 00008b2e f0e9 f0e9 f0e9 f0e9 f0e9 f0e9 f0e9 -12252 f0ea f0ea f0ea * * 6355 8ea2e3d5,8ea2e3d5v 8b24 e8aca4 8b24 00008b24 f0ea f0ea f0ea f0ea f0ea f0ea f0ea -12253 f0eb f0eb f0eb * * 6356 8ea2e3d6,8ea2e3d6v 8b3b e8acbb 8b3b 00008b3b f0eb f0eb f0eb f0eb f0eb f0eb f0eb -12254 f0ec f0ec f0ec * * 6357 8ea2e3d7,8ea2e3d7v 8b3d e8acbd 8b3d 00008b3d f0ec f0ec f0ec f0ec f0ec f0ec f0ec -12255 f0ed f0ed f0ed * * 6358 8ea2e3d8,8ea2e3d8v 8b3a e8acba 8b3a 00008b3a f0ed f0ed f0ed f0ed f0ed f0ed f0ed -12256 f0ee f0ee f0ee * * 6359 8ea2e3d9,8ea2e3d9v 8c42 e8b182 8c42 00008c42 f0ee f0ee f0ee f0ee f0ee f0ee f0ee -12257 f0ef f0ef f0ef * * 635a 8ea2e3da,8ea2e3dav 8c75 e8b1b5 8c75 00008c75 f0ef f0ef f0ef f0ef f0ef f0ef f0ef -12258 f0f0 f0f0 f0f0 * * 635b 8ea2e3db,8ea2e3dbv 8c99 e8b299 8c99 00008c99 f0f0 f0f0 f0f0 f0f0 f0f0 f0f0 f0f0 -12259 f0f1 f0f1 f0f1 * * 635c 8ea2e3dc,8ea2e3dcv 8c98 e8b298 8c98 00008c98 f0f1 f0f1 f0f1 f0f1 f0f1 f0f1 f0f1 -12260 f0f2 f0f2 f0f2 * * 635d 8ea2e3dd,8ea2e3ddv 8c97 e8b297 8c97 00008c97 f0f2 f0f2 f0f2 f0f2 f0f2 f0f2 f0f2 -12261 f0f3 f0f3 f0f3 * * 635e 8ea2e3de,8ea2e3dev 8cfe e8b3be 8cfe 00008cfe f0f3 f0f3 f0f3 f0f3 f0f3 f0f3 f0f3 -12262 f0f4 f0f4 f0f4 * * 635f 8ea2e3df,8ea2e3dfv 8d04 e8b484 8d04 00008d04 f0f4 f0f4 f0f4 f0f4 f0f4 f0f4 f0f4 -12263 f0f5 f0f5 f0f5 * * 6360 8ea2e3e0,8ea2e3e0v 8d02 e8b482 8d02 00008d02 f0f5 f0f5 f0f5 f0f5 f0f5 f0f5 f0f5 -12264 f0f6 f0f6 f0f6 * * 6361 8ea2e3e1,8ea2e3e1v 8d00 e8b480 8d00 00008d00 f0f6 f0f6 f0f6 f0f6 f0f6 f0f6 f0f6 -12265 f0f7 f0f7 f0f7 * * 6362 8ea2e3e2,8ea2e3e2v 8e5c e8b99c 8e5c 00008e5c f0f7 f0f7 f0f7 f0f7 f0f7 f0f7 f0f7 -12266 f0f8 f0f8 f0f8 * * 6363 8ea2e3e3,8ea2e3e3v 8e62 e8b9a2 8e62 00008e62 f0f8 f0f8 f0f8 f0f8 f0f8 f0f8 f0f8 -12267 f0f9 f0f9 f0f9 * * 6364 8ea2e3e4,8ea2e3e4v 8e60 e8b9a0 8e60 00008e60 f0f9 f0f9 f0f9 f0f9 f0f9 f0f9 f0f9 -12268 f0fa f0fa f0fa * * 6365 8ea2e3e5,8ea2e3e5v 8e57 e8b997 8e57 00008e57 f0fa f0fa f0fa f0fa f0fa f0fa f0fa -12269 f0fb f0fb f0fb * * 6366 8ea2e3e6,8ea2e3e6v 8e56 e8b996 8e56 00008e56 f0fb f0fb f0fb f0fb f0fb f0fb f0fb -12270 f0fc f0fc f0fc * * 6367 8ea2e3e7,8ea2e3e7v 8e5e e8b99e 8e5e 00008e5e f0fc f0fc f0fc f0fc f0fc f0fc f0fc -12271 f0fd f0fd f0fd * * 6368 8ea2e3e8,8ea2e3e8v 8e65 e8b9a5 8e65 00008e65 f0fd f0fd f0fd f0fd f0fd f0fd f0fd -12272 f0fe f0fe f0fe * * 6369 8ea2e3e9,8ea2e3e9v 8e67 e8b9a7 8e67 00008e67 f0fe f0fe f0fe f0fe f0fe f0fe f0fe -12273 f140 f140 f140 * * 636a 8ea2e3ea,8ea2e3eav 8e5b e8b99b 8e5b 00008e5b f140 f140 f140 f140 f140 f140 f140 -12274 f141 f141 f141 * * 636b 8ea2e3eb,8ea2e3ebv 8e5a e8b99a 8e5a 00008e5a f141 f141 f141 f141 f141 f141 f141 -12275 f142 f142 f142 * * 636c 8ea2e3ec,8ea2e3ecv 8e61 e8b9a1 8e61 00008e61 f142 f142 f142 f142 f142 f142 f142 -12276 f143 f143 f143 * * 636d 8ea2e3ed,8ea2e3edv 8e5d e8b99d 8e5d 00008e5d f143 f143 f143 f143 f143 f143 f143 -12277 f144 f144 f144 * * 636e 8ea2e3ee,8ea2e3eev 8e69 e8b9a9 8e69 00008e69 f144 f144 f144 f144 f144 f144 f144 -12278 f145 f145 f145 * * 636f 8ea2e3ef,8ea2e3efv 8e54 e8b994 8e54 00008e54 f145 f145 f145 f145 f145 f145 f145 -12279 f146 f146 f146 * * 6370 8ea2e3f0,8ea2e3f0v 8f46 e8bd86 8f46 00008f46 f146 f146 f146 f146 f146 f146 f146 -12280 f147 f147 f147 * * 6371 8ea2e3f1,8ea2e3f1v 8f47 e8bd87 8f47 00008f47 f147 f147 f147 f147 f147 f147 f147 -12281 f148 f148 f148 * * 6372 8ea2e3f2,8ea2e3f2v 8f48 e8bd88 8f48 00008f48 f148 f148 f148 f148 f148 f148 f148 -12282 f149 f149 f149 * * 6373 8ea2e3f3,8ea2e3f3v 8f4b e8bd8b 8f4b 00008f4b f149 f149 f149 f149 f149 f149 f149 -12283 f14a f14a f14a * * 6374 8ea2e3f4,8ea2e3f4v 9128 e984a8 9128 00009128 f14a f14a f14a f14a f14a f14a f14a -12284 f14b f14b f14b * * 6375 8ea2e3f5,8ea2e3f5v 913a e984ba 913a 0000913a f14b f14b f14b f14b f14b f14b f14b -12285 f14c f14c f14c * * 6376 8ea2e3f6,8ea2e3f6v 913b e984bb 913b 0000913b f14c f14c f14c f14c f14c f14c f14c -12286 f14d f14d f14d * * 6377 8ea2e3f7,8ea2e3f7v 913e e984be 913e 0000913e f14d f14d f14d f14d f14d f14d f14d -12287 f14e f14e f14e * * 6378 8ea2e3f8,8ea2e3f8v 91a8 e986a8 91a8 000091a8 f14e f14e f14e f14e f14e f14e f14e -12288 f14f f14f f14f * * 6379 8ea2e3f9,8ea2e3f9v 91a5 e986a5 91a5 000091a5 f14f f14f f14f f14f f14f f14f f14f -12289 f150 f150 f150 * * 637a 8ea2e3fa,8ea2e3fav 91a7 e986a7 91a7 000091a7 f150 f150 f150 f150 f150 f150 f150 -12290 f151 f151 f151 * * 637b 8ea2e3fb,8ea2e3fbv 91af e986af 91af 000091af f151 f151 f151 f151 f151 f151 f151 -12291 f152 f152 f152 * * 637c 8ea2e3fc,8ea2e3fcv 91aa e986aa 91aa 000091aa f152 f152 f152 f152 f152 f152 f152 -12292 f153 f153 f153 * * 637d 8ea2e3fd,8ea2e3fdv 93b5 e98eb5 93b5 000093b5 f153 f153 f153 f153 f153 f153 f153 -12293 f154 f154 f154 * * 637e 8ea2e3fe,8ea2e3fev 938c e98e8c 938c 0000938c f154 f154 f154 f154 f154 f154 f154 -12294 f155 f155 f155 * * 6421 8ea2e4a1,8ea2e4a1v 9392 e98e92 9392 00009392 f155 f155 f155 f155 f155 f155 f155 -12295 f156 f156 f156 * * 6422 8ea2e4a2,8ea2e4a2v 93b7 e98eb7 93b7 000093b7 f156 f156 f156 f156 f156 f156 f156 -12296 f157 f157 f157 * * 6423 8ea2e4a3,8ea2e4a3v 939b e98e9b 939b 0000939b f157 f157 f157 f157 f157 f157 f157 -12297 f158 f158 f158 * * 6424 8ea2e4a4,8ea2e4a4v 939d e98e9d 939d 0000939d f158 f158 f158 f158 f158 f158 f158 -12298 f159 f159 f159 * * 6425 8ea2e4a5,8ea2e4a5v 9389 e98e89 9389 00009389 f159 f159 f159 f159 f159 f159 f159 -12299 f15a f15a f15a * * 6426 8ea2e4a6,8ea2e4a6v 93a7 e98ea7 93a7 000093a7 f15a f15a f15a f15a f15a f15a f15a -12300 f15b f15b f15b * * 6427 8ea2e4a7,8ea2e4a7v 938e e98e8e 938e 0000938e f15b f15b f15b f15b f15b f15b f15b -12301 f15c f15c f15c * * 6428 8ea2e4a8,8ea2e4a8v 93aa e98eaa 93aa 000093aa f15c f15c f15c f15c f15c f15c f15c -12302 f15d f15d f15d * * 6429 8ea2e4a9,8ea2e4a9v 939e e98e9e 939e 0000939e f15d f15d f15d f15d f15d f15d f15d -12303 f15e f15e f15e * * 642a 8ea2e4aa,8ea2e4aav 93a6 e98ea6 93a6 000093a6 f15e f15e f15e f15e f15e f15e f15e -12304 f15f f15f f15f * * 642b 8ea2e4ab,8ea2e4abv 9395 e98e95 9395 00009395 f15f f15f f15f f15f f15f f15f f15f -12305 f160 f160 f160 * * 642c 8ea2e4ac,8ea2e4acv 9388 e98e88 9388 00009388 f160 f160 f160 f160 f160 f160 f160 -12306 f161 f161 f161 * * 642d 8ea2e4ad,8ea2e4adv 9399 e98e99 9399 00009399 f161 f161 f161 f161 f161 f161 f161 -12307 f162 f162 f162 * * 642e 8ea2e4ae,8ea2e4aev 939f e98e9f 939f 0000939f f162 f162 f162 f162 f162 f162 f162 -12308 eeeb eeeb eeeb * * 642f 8ea2e4af,8ea2e4afv 9380 e98e80 9380 00009380 eeeb eeeb eeeb eeeb eeeb eeeb eeeb -12309 f163 f163 f163 * * 6430 8ea2e4b0,8ea2e4b0v 938d e98e8d 938d 0000938d f163 f163 f163 f163 f163 f163 f163 -12310 f164 f164 f164 * * 6431 8ea2e4b1,8ea2e4b1v 93b1 e98eb1 93b1 000093b1 f164 f164 f164 f164 f164 f164 f164 -12311 f165 f165 f165 * * 6432 8ea2e4b2,8ea2e4b2v 9391 e98e91 9391 00009391 f165 f165 f165 f165 f165 f165 f165 -12312 f166 f166 f166 * * 6433 8ea2e4b3,8ea2e4b3v 93b2 e98eb2 93b2 000093b2 f166 f166 f166 f166 f166 f166 f166 -12313 f167 f167 f167 * * 6434 8ea2e4b4,8ea2e4b4v 93a4 e98ea4 93a4 000093a4 f167 f167 f167 f167 f167 f167 f167 -12314 f168 f168 f168 * * 6435 8ea2e4b5,8ea2e4b5v 93a8 e98ea8 93a8 000093a8 f168 f168 f168 f168 f168 f168 f168 -12315 f169 f169 f169 * * 6436 8ea2e4b6,8ea2e4b6v 93b4 e98eb4 93b4 000093b4 f169 f169 f169 f169 f169 f169 f169 -12316 f16a f16a f16a * * 6437 8ea2e4b7,8ea2e4b7v 93a3 e98ea3 93a3 000093a3 f16a f16a f16a f16a f16a f16a f16a -12317 f16c f16c f16c * * 6438 8ea2e4b8,8ea2e4b8v 95d2 e99792 95d2 000095d2 f16c f16c f16c f16c f16c f16c f16c -12318 f16d f16d f16d * * 6439 8ea2e4b9,8ea2e4b9v 95d3 e99793 95d3 000095d3 f16d f16d f16d f16d f16d f16d f16d -12319 f16e f16e f16e * * 643a 8ea2e4ba,8ea2e4bav 95d1 e99791 95d1 000095d1 f16e f16e f16e f16e f16e f16e f16e -12320 f16f f16f f16f * * 643b 8ea2e4bb,8ea2e4bbv 96b3 e99ab3 96b3 000096b3 f16f f16f f16f f16f f16f f16f f16f -12321 f170 f170 f170 * * 643c 8ea2e4bc,8ea2e4bcv 96d7 e99b97 96d7 000096d7 f170 f170 f170 f170 f170 f170 f170 -12322 f171 f171 f171 * * 643d 8ea2e4bd,8ea2e4bdv 96da e99b9a 96da 000096da f171 f171 f171 f171 f171 f171 f171 -12323 f172 f172 f172 * * 643e 8ea2e4be,8ea2e4bev 5dc2 e5b782 5dc2 00005dc2 f172 f172 f172 f172 f172 f172 f172 -12324 f173 f173 f173 * * 643f 8ea2e4bf,8ea2e4bfv 96df e99b9f 96df 000096df f173 f173 f173 f173 f173 f173 f173 -12325 f174 f174 f174 * * 6440 8ea2e4c0,8ea2e4c0v 96d8 e99b98 96d8 000096d8 f174 f174 f174 f174 f174 f174 f174 -12326 f175 f175 f175 * * 6441 8ea2e4c1,8ea2e4c1v 96dd e99b9d 96dd 000096dd f175 f175 f175 f175 f175 f175 f175 -12327 f176 f176 f176 * * 6442 8ea2e4c2,8ea2e4c2v 9723 e99ca3 9723 00009723 f176 f176 f176 f176 f176 f176 f176 -12328 f177 f177 f177 * * 6443 8ea2e4c3,8ea2e4c3v 9722 e99ca2 9722 00009722 f177 f177 f177 f177 f177 f177 f177 -12329 f178 f178 f178 * * 6444 8ea2e4c4,8ea2e4c4v 9725 e99ca5 9725 00009725 f178 f178 f178 f178 f178 f178 f178 -12330 f179 f179 f179 * * 6445 8ea2e4c5,8ea2e4c5v 97ac e99eac 97ac 000097ac f179 f179 f179 f179 f179 f179 f179 -12331 f17a f17a f17a * * 6446 8ea2e4c6,8ea2e4c6v 97ae e99eae 97ae 000097ae f17a f17a f17a f17a f17a f17a f17a -12332 f17b f17b f17b * * 6447 8ea2e4c7,8ea2e4c7v 97a8 e99ea8 97a8 000097a8 f17b f17b f17b f17b f17b f17b f17b -12333 f17c f17c f17c * * 6448 8ea2e4c8,8ea2e4c8v 97ab e99eab 97ab 000097ab f17c f17c f17c f17c f17c f17c f17c -12334 f17d f17d f17d * * 6449 8ea2e4c9,8ea2e4c9v 97a4 e99ea4 97a4 000097a4 f17d f17d f17d f17d f17d f17d f17d -12335 f17e f17e f17e * * 644a 8ea2e4ca,8ea2e4cav 97aa e99eaa 97aa 000097aa f17e f17e f17e f17e f17e f17e f17e -12336 f1a1 f1a1 f1a1 * * 644b 8ea2e4cb,8ea2e4cbv 97a2 e99ea2 97a2 000097a2 f1a1 f1a1 f1a1 f1a1 f1a1 f1a1 f1a1 -12337 f1a2 f1a2 f1a2 * * 644c 8ea2e4cc,8ea2e4ccv 97a5 e99ea5 97a5 000097a5 f1a2 f1a2 f1a2 f1a2 f1a2 f1a2 f1a2 -12338 f1a3 f1a3 f1a3 * * 644d 8ea2e4cd,8ea2e4cdv 97d7 e99f97 97d7 000097d7 f1a3 f1a3 f1a3 f1a3 f1a3 f1a3 f1a3 -12339 f1a4 f1a4 f1a4 * * 644e 8ea2e4ce,8ea2e4cev 97d9 e99f99 97d9 000097d9 f1a4 f1a4 f1a4 f1a4 f1a4 f1a4 f1a4 -12340 f1a5 f1a5 f1a5 * * 644f 8ea2e4cf,8ea2e4cfv 97d6 e99f96 97d6 000097d6 f1a5 f1a5 f1a5 f1a5 f1a5 f1a5 f1a5 -12341 f1a6 f1a6 f1a6 * * 6450 8ea2e4d0,8ea2e4d0v 97d8 e99f98 97d8 000097d8 f1a6 f1a6 f1a6 f1a6 f1a6 f1a6 f1a6 -12342 f1a7 f1a7 f1a7 * * 6451 8ea2e4d1,8ea2e4d1v 97fa e99fba 97fa 000097fa f1a7 f1a7 f1a7 f1a7 f1a7 f1a7 f1a7 -12343 f1a8 f1a8 f1a8 * * 6452 8ea2e4d2,8ea2e4d2v 9850 e9a190 9850 00009850 f1a8 f1a8 f1a8 f1a8 f1a8 f1a8 f1a8 -12344 f1a9 f1a9 f1a9 * * 6453 8ea2e4d3,8ea2e4d3v 9851 e9a191 9851 00009851 f1a9 f1a9 f1a9 f1a9 f1a9 f1a9 f1a9 -12345 f1aa f1aa f1aa * * 6454 8ea2e4d4,8ea2e4d4v 9852 e9a192 9852 00009852 f1aa f1aa f1aa f1aa f1aa f1aa f1aa -12346 f1ab f1ab f1ab * * 6455 8ea2e4d5,8ea2e4d5v 98b8 e9a2b8 98b8 000098b8 f1ab f1ab f1ab f1ab f1ab f1ab f1ab -12347 f1ac f1ac f1ac * * 6456 8ea2e4d6,8ea2e4d6v 9941 e9a581 9941 00009941 f1ac f1ac f1ac f1ac f1ac f1ac f1ac -12348 f1ad f1ad f1ad * * 6457 8ea2e4d7,8ea2e4d7v 993c e9a4bc 993c 0000993c f1ad f1ad f1ad f1ad f1ad f1ad f1ad -12349 f1ae f1ae f1ae * * 6458 8ea2e4d8,8ea2e4d8v 993a e9a4ba 993a 0000993a f1ae f1ae f1ae f1ae f1ae f1ae f1ae -12350 f1af f1af f1af * * 6459 8ea2e4d9,8ea2e4d9v 9a0f e9a88f 9a0f 00009a0f f1af f1af f1af f1af f1af f1af f1af -12351 f1b0 f1b0 f1b0 * * 645a 8ea2e4da,8ea2e4dav 9a0b e9a88b 9a0b 00009a0b f1b0 f1b0 f1b0 f1b0 f1b0 f1b0 f1b0 -12352 f1b1 f1b1 f1b1 * * 645b 8ea2e4db,8ea2e4dbv 9a09 e9a889 9a09 00009a09 f1b1 f1b1 f1b1 f1b1 f1b1 f1b1 f1b1 -12353 f1b2 f1b2 f1b2 * * 645c 8ea2e4dc,8ea2e4dcv 9a0d e9a88d 9a0d 00009a0d f1b2 f1b2 f1b2 f1b2 f1b2 f1b2 f1b2 -12354 f1b3 f1b3 f1b3 * * 645d 8ea2e4dd,8ea2e4ddv 9a04 e9a884 9a04 00009a04 f1b3 f1b3 f1b3 f1b3 f1b3 f1b3 f1b3 -12355 f1b4 f1b4 f1b4 * * 645e 8ea2e4de,8ea2e4dev 9a11 e9a891 9a11 00009a11 f1b4 f1b4 f1b4 f1b4 f1b4 f1b4 f1b4 -12356 f1b5 f1b5 f1b5 * * 645f 8ea2e4df,8ea2e4dfv 9a0a e9a88a 9a0a 00009a0a f1b5 f1b5 f1b5 f1b5 f1b5 f1b5 f1b5 -12357 f1b6 f1b6 f1b6 * * 6460 8ea2e4e0,8ea2e4e0v 9a05 e9a885 9a05 00009a05 f1b6 f1b6 f1b6 f1b6 f1b6 f1b6 f1b6 -12358 f1b7 f1b7 f1b7 * * 6461 8ea2e4e1,8ea2e4e1v 9a07 e9a887 9a07 00009a07 f1b7 f1b7 f1b7 f1b7 f1b7 f1b7 f1b7 -12359 f1b8 f1b8 f1b8 * * 6462 8ea2e4e2,8ea2e4e2v 9a06 e9a886 9a06 00009a06 f1b8 f1b8 f1b8 f1b8 f1b8 f1b8 f1b8 -12360 f1b9 f1b9 f1b9 * * 6463 8ea2e4e3,8ea2e4e3v 9ac0 e9ab80 9ac0 00009ac0 f1b9 f1b9 f1b9 f1b9 f1b9 f1b9 f1b9 -12361 f1ba f1ba f1ba * * 6464 8ea2e4e4,8ea2e4e4v 9adc e9ab9c 9adc 00009adc f1ba f1ba f1ba f1ba f1ba f1ba f1ba -12362 f1bb f1bb f1bb * * 6465 8ea2e4e5,8ea2e4e5v 9b08 e9ac88 9b08 00009b08 f1bb f1bb f1bb f1bb f1bb f1bb f1bb -12363 f1bc f1bc f1bc * * 6466 8ea2e4e6,8ea2e4e6v 9b04 e9ac84 9b04 00009b04 f1bc f1bc f1bc f1bc f1bc f1bc f1bc -12364 f1bd f1bd f1bd * * 6467 8ea2e4e7,8ea2e4e7v 9b05 e9ac85 9b05 00009b05 f1bd f1bd f1bd f1bd f1bd f1bd f1bd -12365 f1be f1be f1be * * 6468 8ea2e4e8,8ea2e4e8v 9b29 e9aca9 9b29 00009b29 f1be f1be f1be f1be f1be f1be f1be -12366 f1bf f1bf f1bf * * 6469 8ea2e4e9,8ea2e4e9v 9b35 e9acb5 9b35 00009b35 f1bf f1bf f1bf f1bf f1bf f1bf f1bf -12367 f1c0 f1c0 f1c0 * * 646a 8ea2e4ea,8ea2e4eav 9b4a e9ad8a 9b4a 00009b4a f1c0 f1c0 f1c0 f1c0 f1c0 f1c0 f1c0 -12368 f1c1 f1c1 f1c1 * * 646b 8ea2e4eb,8ea2e4ebv 9b4c e9ad8c 9b4c 00009b4c f1c1 f1c1 f1c1 f1c1 f1c1 f1c1 f1c1 -12369 f1c2 f1c2 f1c2 * * 646c 8ea2e4ec,8ea2e4ecv 9b4b e9ad8b 9b4b 00009b4b f1c2 f1c2 f1c2 f1c2 f1c2 f1c2 f1c2 -12370 f1c3 f1c3 f1c3 * * 646d 8ea2e4ed,8ea2e4edv 9bc7 e9af87 9bc7 00009bc7 f1c3 f1c3 f1c3 f1c3 f1c3 f1c3 f1c3 -12371 f1c4 f1c4 f1c4 * * 646e 8ea2e4ee,8ea2e4eev 9bc6 e9af86 9bc6 00009bc6 f1c4 f1c4 f1c4 f1c4 f1c4 f1c4 f1c4 -12372 f1c5 f1c5 f1c5 * * 646f 8ea2e4ef,8ea2e4efv 9bc3 e9af83 9bc3 00009bc3 f1c5 f1c5 f1c5 f1c5 f1c5 f1c5 f1c5 -12373 f1c6 f1c6 f1c6 * * 6470 8ea2e4f0,8ea2e4f0v 9bbf e9aebf 9bbf 00009bbf f1c6 f1c6 f1c6 f1c6 f1c6 f1c6 f1c6 -12374 f1c7 f1c7 f1c7 * * 6471 8ea2e4f1,8ea2e4f1v 9bc1 e9af81 9bc1 00009bc1 f1c7 f1c7 f1c7 f1c7 f1c7 f1c7 f1c7 -12375 f1c8 f1c8 f1c8 * * 6472 8ea2e4f2,8ea2e4f2v 9bb5 e9aeb5 9bb5 00009bb5 f1c8 f1c8 f1c8 f1c8 f1c8 f1c8 f1c8 -12376 f1c9 f1c9 f1c9 * * 6473 8ea2e4f3,8ea2e4f3v 9bb8 e9aeb8 9bb8 00009bb8 f1c9 f1c9 f1c9 f1c9 f1c9 f1c9 f1c9 -12377 f1ca f1ca f1ca * * 6474 8ea2e4f4,8ea2e4f4v 9bd3 e9af93 9bd3 00009bd3 f1ca f1ca f1ca f1ca f1ca f1ca f1ca -12378 f1cb f1cb f1cb * * 6475 8ea2e4f5,8ea2e4f5v 9bb6 e9aeb6 9bb6 00009bb6 f1cb f1cb f1cb f1cb f1cb f1cb f1cb -12379 f1cc f1cc f1cc * * 6476 8ea2e4f6,8ea2e4f6v 9bc4 e9af84 9bc4 00009bc4 f1cc f1cc f1cc f1cc f1cc f1cc f1cc -12380 f1cd f1cd f1cd * * 6477 8ea2e4f7,8ea2e4f7v 9bb9 e9aeb9 9bb9 00009bb9 f1cd f1cd f1cd f1cd f1cd f1cd f1cd -12381 f1ce f1ce f1ce * * 6478 8ea2e4f8,8ea2e4f8v 9bbd e9aebd 9bbd 00009bbd f1ce f1ce f1ce f1ce f1ce f1ce f1ce -12382 f1cf f1cf f1cf * * 6479 8ea2e4f9,8ea2e4f9v 9d5c e9b59c 9d5c 00009d5c f1cf f1cf f1cf f1cf f1cf f1cf f1cf -12383 f1d0 f1d0 f1d0 * * 647a 8ea2e4fa,8ea2e4fav 9d53 e9b593 9d53 00009d53 f1d0 f1d0 f1d0 f1d0 f1d0 f1d0 f1d0 -12384 f1d1 f1d1 f1d1 * * 647b 8ea2e4fb,8ea2e4fbv 9d4f e9b58f 9d4f 00009d4f f1d1 f1d1 f1d1 f1d1 f1d1 f1d1 f1d1 -12385 f1d2 f1d2 f1d2 * * 647c 8ea2e4fc,8ea2e4fcv 9d4a e9b58a 9d4a 00009d4a f1d2 f1d2 f1d2 f1d2 f1d2 f1d2 f1d2 -12386 f1d3 f1d3 f1d3 * * 647d 8ea2e4fd,8ea2e4fdv 9d5b e9b59b 9d5b 00009d5b f1d3 f1d3 f1d3 f1d3 f1d3 f1d3 f1d3 -12387 f1d4 f1d4 f1d4 * * 647e 8ea2e4fe,8ea2e4fev 9d4b e9b58b 9d4b 00009d4b f1d4 f1d4 f1d4 f1d4 f1d4 f1d4 f1d4 -12388 f1d5 f1d5 f1d5 * * 6521 8ea2e5a1,8ea2e5a1v 9d59 e9b599 9d59 00009d59 f1d5 f1d5 f1d5 f1d5 f1d5 f1d5 f1d5 -12389 f1d6 f1d6 f1d6 * * 6522 8ea2e5a2,8ea2e5a2v 9d56 e9b596 9d56 00009d56 f1d6 f1d6 f1d6 f1d6 f1d6 f1d6 f1d6 -12390 f1d7 f1d7 f1d7 * * 6523 8ea2e5a3,8ea2e5a3v 9d4c e9b58c 9d4c 00009d4c f1d7 f1d7 f1d7 f1d7 f1d7 f1d7 f1d7 -12391 f1d8 f1d8 f1d8 * * 6524 8ea2e5a4,8ea2e5a4v 9d57 e9b597 9d57 00009d57 f1d8 f1d8 f1d8 f1d8 f1d8 f1d8 f1d8 -12392 f1d9 f1d9 f1d9 * * 6525 8ea2e5a5,8ea2e5a5v 9d52 e9b592 9d52 00009d52 f1d9 f1d9 f1d9 f1d9 f1d9 f1d9 f1d9 -12393 f1da f1da f1da * * 6526 8ea2e5a6,8ea2e5a6v 9d54 e9b594 9d54 00009d54 f1da f1da f1da f1da f1da f1da f1da -12394 f1db f1db f1db * * 6527 8ea2e5a7,8ea2e5a7v 9d5f e9b59f 9d5f 00009d5f f1db f1db f1db f1db f1db f1db f1db -12395 f1dc f1dc f1dc * * 6528 8ea2e5a8,8ea2e5a8v 9d58 e9b598 9d58 00009d58 f1dc f1dc f1dc f1dc f1dc f1dc f1dc -12396 f1dd f1dd f1dd * * 6529 8ea2e5a9,8ea2e5a9v 9d5a e9b59a 9d5a 00009d5a f1dd f1dd f1dd f1dd f1dd f1dd f1dd -12397 f1de f1de f1de * * 652a 8ea2e5aa,8ea2e5aav 9e8e e9ba8e 9e8e 00009e8e f1de f1de f1de f1de f1de f1de f1de -12398 f1df f1df f1df * * 652b 8ea2e5ab,8ea2e5abv 9e8c e9ba8c 9e8c 00009e8c f1df f1df f1df f1df f1df f1df f1df -12399 f1e0 f1e0 f1e0 * * 652c 8ea2e5ac,8ea2e5acv 9edf e9bb9f 9edf 00009edf f1e0 f1e0 f1e0 f1e0 f1e0 f1e0 f1e0 -12400 f1e1 f1e1 f1e1 * * 652d 8ea2e5ad,8ea2e5adv 9f01 e9bc81 9f01 00009f01 f1e1 f1e1 f1e1 f1e1 f1e1 f1e1 f1e1 -12401 f1e2 f1e2 f1e2 * * 652e 8ea2e5ae,8ea2e5aev 9f00 e9bc80 9f00 00009f00 f1e2 f1e2 f1e2 f1e2 f1e2 f1e2 f1e2 -12402 f1e3 f1e3 f1e3 * * 652f 8ea2e5af,8ea2e5afv 9f16 e9bc96,ee9585 9f16,e545 00009f16,0000e545 91bf,f1e3 f1e3 f1e3 f1e3 f1e3 f1e3 91bf,f1e3 -12403 f1e4 f1e4 f1e4 * * 6530 8ea2e5b0,8ea2e5b0v 9f25 e9bca5 9f25 00009f25 f1e4 f1e4 f1e4 f1e4 f1e4 f1e4 f1e4 -12404 f1e5 f1e5 f1e5 * * 6531 8ea2e5b1,8ea2e5b1v 9f2b e9bcab 9f2b 00009f2b f1e5 f1e5 f1e5 f1e5 f1e5 f1e5 f1e5 -12405 f1e6 f1e6 f1e6 * * 6532 8ea2e5b2,8ea2e5b2v 9f2a e9bcaa 9f2a 00009f2a f1e6 f1e6 f1e6 f1e6 f1e6 f1e6 f1e6 -12406 f1e7 f1e7 f1e7 * * 6533 8ea2e5b3,8ea2e5b3v 9f29 e9bca9 9f29 00009f29 f1e7 f1e7 f1e7 f1e7 f1e7 f1e7 f1e7 -12407 f1e8 f1e8 f1e8 * * 6534 8ea2e5b4,8ea2e5b4v 9f28 e9bca8 9f28 00009f28 f1e8 f1e8 f1e8 f1e8 f1e8 f1e8 f1e8 -12408 f1e9 f1e9 f1e9 * * 6535 8ea2e5b5,8ea2e5b5v 9f4c e9bd8c 9f4c 00009f4c f1e9 f1e9 f1e9 f1e9 f1e9 f1e9 f1e9 -12409 f1ea f1ea f1ea * * 6536 8ea2e5b6,8ea2e5b6v 9f55 e9bd95 9f55 00009f55 f1ea f1ea f1ea f1ea f1ea f1ea f1ea -12410 f1eb f1eb f1eb * * 6537 8ea2e5b7,8ea2e5b7v 5134 e584b4 5134 00005134 f1eb f1eb f1eb f1eb f1eb f1eb f1eb -12411 f1ec f1ec f1ec * * 6538 8ea2e5b8,8ea2e5b8v 5135 e584b5 5135 00005135 f1ec f1ec f1ec f1ec f1ec f1ec f1ec -12412 f1ed f1ed f1ed * * 6539 8ea2e5b9,8ea2e5b9v 5296 e58a96 5296 00005296 f1ed f1ed f1ed f1ed f1ed f1ed f1ed -12413 f1ee f1ee f1ee * * 653a 8ea2e5ba,8ea2e5bav 52f7 e58bb7 52f7 000052f7 f1ee f1ee f1ee f1ee f1ee f1ee f1ee -12414 f1ef f1ef f1ef * * 653b 8ea2e5bb,8ea2e5bbv 53b4 e58eb4 53b4 000053b4 f1ef f1ef f1ef f1ef f1ef f1ef f1ef -12415 f1f0 f1f0 f1f0 * * 653c 8ea2e5bc,8ea2e5bcv 56ab e59aab 56ab 000056ab f1f0 f1f0 f1f0 f1f0 f1f0 f1f0 f1f0 -12416 f1f1 f1f1 f1f1 * * 653d 8ea2e5bd,8ea2e5bdv 56ad e59aad 56ad 000056ad f1f1 f1f1 f1f1 f1f1 f1f1 f1f1 f1f1 -12417 f1f2 f1f2 f1f2 * * 653e 8ea2e5be,8ea2e5bev 56a6 e59aa6 56a6 000056a6 f1f2 f1f2 f1f2 f1f2 f1f2 f1f2 f1f2 -12418 f1f3 f1f3 f1f3 * * 653f 8ea2e5bf,8ea2e5bfv 56a7 e59aa7 56a7 000056a7 f1f3 f1f3 f1f3 f1f3 f1f3 f1f3 f1f3 -12419 f1f4 f1f4 f1f4 * * 6540 8ea2e5c0,8ea2e5c0v 56aa e59aaa 56aa 000056aa f1f4 f1f4 f1f4 f1f4 f1f4 f1f4 f1f4 -12420 f1f5 f1f5 f1f5 * * 6541 8ea2e5c1,8ea2e5c1v 56ac e59aac 56ac 000056ac f1f5 f1f5 f1f5 f1f5 f1f5 f1f5 f1f5 -12421 f1f6 f1f6 f1f6 * * 6542 8ea2e5c2,8ea2e5c2v 58da e5a39a 58da 000058da f1f6 f1f6 f1f6 f1f6 f1f6 f1f6 f1f6 -12422 f1f7 f1f7 f1f7 * * 6543 8ea2e5c3,8ea2e5c3v 58dd e5a39d 58dd 000058dd f1f7 f1f7 f1f7 f1f7 f1f7 f1f7 f1f7 -12423 f1f8 f1f8 f1f8 * * 6544 8ea2e5c4,8ea2e5c4v 58db e5a39b 58db 000058db f1f8 f1f8 f1f8 f1f8 f1f8 f1f8 f1f8 -12424 f1f9 f1f9 f1f9 * * 6545 8ea2e5c5,8ea2e5c5v 5912 e5a492 5912 00005912 f1f9 f1f9 f1f9 f1f9 f1f9 f1f9 f1f9 -12425 f1fa f1fa f1fa * * 6546 8ea2e5c6,8ea2e5c6v 5b3d e5acbd 5b3d 00005b3d f1fa f1fa f1fa f1fa f1fa f1fa f1fa -12426 f1fb f1fb f1fb * * 6547 8ea2e5c7,8ea2e5c7v 5b3e e5acbe 5b3e 00005b3e f1fb f1fb f1fb f1fb f1fb f1fb f1fb -12427 f1fc f1fc f1fc * * 6548 8ea2e5c8,8ea2e5c8v 5b3f e5acbf 5b3f 00005b3f f1fc f1fc f1fc f1fc f1fc f1fc f1fc -12428 f1fd f1fd f1fd * * 6549 8ea2e5c9,8ea2e5c9v 5dc3 e5b783 5dc3 00005dc3 f1fd f1fd f1fd f1fd f1fd f1fd f1fd -12429 f1fe f1fe f1fe * * 654a 8ea2e5ca,8ea2e5cav 5e70 e5b9b0 5e70 00005e70 f1fe f1fe f1fe f1fe f1fe f1fe f1fe -12430 f240 f240 f240 * * 654b 8ea2e5cb,8ea2e5cbv 5fbf e5bebf 5fbf 00005fbf f240 f240 f240 f240 f240 f240 f240 -12431 f241 f241 f241 * * 654c 8ea2e5cc,8ea2e5ccv 61fb e687bb 61fb 000061fb f241 f241 f241 f241 f241 f241 f241 -12432 f242 f242 f242 * * 654d 8ea2e5cd,8ea2e5cdv 6507 e69487 6507 00006507 f242 f242 f242 f242 f242 f242 f242 -12433 f243 f243 f243 * * 654e 8ea2e5ce,8ea2e5cev 6510 e69490 6510 00006510 f243 f243 f243 f243 f243 f243 f243 -12434 f244 f244 f244 * * 654f 8ea2e5cf,8ea2e5cfv 650d e6948d 650d 0000650d f244 f244 f244 f244 f244 f244 f244 -12435 f245 f245 f245 * * 6550 8ea2e5d0,8ea2e5d0v 6509 e69489 6509 00006509 f245 f245 f245 f245 f245 f245 f245 -12436 f246 f246 f246 * * 6551 8ea2e5d1,8ea2e5d1v 650c e6948c 650c 0000650c f246 f246 f246 f246 f246 f246 f246 -12437 f247 f247 f247 * * 6552 8ea2e5d2,8ea2e5d2v 650e e6948e 650e 0000650e f247 f247 f247 f247 f247 f247 f247 -12438 f248 f248 f248 * * 6553 8ea2e5d3,8ea2e5d3v 6584 e69684 6584 00006584 f248 f248 f248 f248 f248 f248 f248 -12439 f249 f249 f249 * * 6554 8ea2e5d4,8ea2e5d4v 65de e6979e 65de 000065de f249 f249 f249 f249 f249 f249 f249 -12440 f24a f24a f24a * * 6555 8ea2e5d5,8ea2e5d5v 65dd e6979d 65dd 000065dd f24a f24a f24a f24a f24a f24a f24a -12441 f24b f24b f24b * * 6556 8ea2e5d6,8ea2e5d6v 66de e69b9e 66de 000066de f24b f24b f24b f24b f24b f24b f24b -12442 f24c f24c f24c * * 6557 8ea2e5d7,8ea2e5d7v 6ae7 e6aba7 6ae7 00006ae7 f24c f24c f24c f24c f24c f24c f24c -12443 f24d f24d f24d * * 6558 8ea2e5d8,8ea2e5d8v 6ae0 e6aba0 6ae0 00006ae0 f24d f24d f24d f24d f24d f24d f24d -12444 f24e f24e f24e * * 6559 8ea2e5d9,8ea2e5d9v 6acc e6ab8c 6acc 00006acc f24e f24e f24e f24e f24e f24e f24e -12445 f24f f24f f24f * * 655a 8ea2e5da,8ea2e5dav 6ad1 e6ab91 6ad1 00006ad1 f24f f24f f24f f24f f24f f24f f24f -12446 f250 f250 f250 * * 655b 8ea2e5db,8ea2e5dbv 6ad9 e6ab99 6ad9 00006ad9 f250 f250 f250 f250 f250 f250 f250 -12447 f251 f251 f251 * * 655c 8ea2e5dc,8ea2e5dcv 6acb e6ab8b 6acb 00006acb f251 f251 f251 f251 f251 f251 f251 -12448 f252 f252 f252 * * 655d 8ea2e5dd,8ea2e5ddv 6adf e6ab9f 6adf 00006adf f252 f252 f252 f252 f252 f252 f252 -12449 f253 f253 f253 * * 655e 8ea2e5de,8ea2e5dev 6adc e6ab9c 6adc 00006adc f253 f253 f253 f253 f253 f253 f253 -12450 f254 f254 f254 * * 655f 8ea2e5df,8ea2e5dfv 6ad0 e6ab90 6ad0 00006ad0 f254 f254 f254 f254 f254 f254 f254 -12451 f255 f255 f255 * * 6560 8ea2e5e0,8ea2e5e0v 6aeb e6abab 6aeb 00006aeb f255 f255 f255 f255 f255 f255 f255 -12452 f256 f256 f256 * * 6561 8ea2e5e1,8ea2e5e1v 6acf e6ab8f 6acf 00006acf f256 f256 f256 f256 f256 f256 f256 -12453 f257 f257 f257 * * 6562 8ea2e5e2,8ea2e5e2v 6acd e6ab8d 6acd 00006acd f257 f257 f257 f257 f257 f257 f257 -12454 f258 f258 f258 * * 6563 8ea2e5e3,8ea2e5e3v 6ade e6ab9e 6ade 00006ade f258 f258 f258 f258 f258 f258 f258 -12455 f259 f259 f259 * * 6564 8ea2e5e4,8ea2e5e4v 6b60 e6ada0 6b60 00006b60 f259 f259 f259 f259 f259 f259 f259 -12456 f25a f25a f25a * * 6565 8ea2e5e5,8ea2e5e5v 6bb0 e6aeb0 6bb0 00006bb0 f25a f25a f25a f25a f25a f25a f25a -12457 f25b f25b f25b * * 6566 8ea2e5e6,8ea2e5e6v 6c0c e6b08c 6c0c 00006c0c f25b f25b f25b f25b f25b f25b f25b -12458 f25c f25c f25c * * 6567 8ea2e5e7,8ea2e5e7v 7019 e78099 7019 00007019 f25c f25c f25c f25c f25c f25c f25c -12459 f25d f25d f25d * * 6568 8ea2e5e8,8ea2e5e8v 7027 e780a7 7027 00007027 f25d f25d f25d f25d f25d f25d f25d -12460 f25e f25e f25e * * 6569 8ea2e5e9,8ea2e5e9v 7020 e780a0 7020 00007020 f25e f25e f25e f25e f25e f25e f25e -12461 f25f f25f f25f * * 656a 8ea2e5ea,8ea2e5eav 7016 e78096 7016 00007016 f25f f25f f25f f25f f25f f25f f25f -12462 f260 f260 f260 * * 656b 8ea2e5eb,8ea2e5ebv 702b e780ab 702b 0000702b f260 f260 f260 f260 f260 f260 f260 -12463 f261 f261 f261 * * 656c 8ea2e5ec,8ea2e5ecv 7021 e780a1 7021 00007021 f261 f261 f261 f261 f261 f261 f261 -12464 f262 f262 f262 * * 656d 8ea2e5ed,8ea2e5edv 7022 e780a2 7022 00007022 f262 f262 f262 f262 f262 f262 f262 -12465 f263 f263 f263 * * 656e 8ea2e5ee,8ea2e5eev 7023 e780a3 7023 00007023 f263 f263 f263 f263 f263 f263 f263 -12466 f264 f264 f264 * * 656f 8ea2e5ef,8ea2e5efv 7029 e780a9 7029 00007029 f264 f264 f264 f264 f264 f264 f264 -12467 f265 f265 f265 * * 6570 8ea2e5f0,8ea2e5f0v 7017 e78097 7017 00007017 f265 f265 f265 f265 f265 f265 f265 -12468 f266 f266 f266 * * 6571 8ea2e5f1,8ea2e5f1v 7024 e780a4 7024 00007024 f266 f266 f266 f266 f266 f266 f266 -12469 f267 f267 f267 * * 6572 8ea2e5f2,8ea2e5f2v 701c e7809c 701c 0000701c f267 f267 f267 f267 f267 f267 f267 -12470 f269 f269 f269 * * 6573 8ea2e5f3,8ea2e5f3v 720c e7888c 720c 0000720c f269 f269 f269 f269 f269 f269 f269 -12471 f26a f26a f26a * * 6574 8ea2e5f4,8ea2e5f4v 720a e7888a 720a 0000720a f26a f26a f26a f26a f26a f26a f26a -12472 f26b f26b f26b * * 6575 8ea2e5f5,8ea2e5f5v 7207 e78887 7207 00007207 f26b f26b f26b f26b f26b f26b f26b -12473 f26c f26c f26c * * 6576 8ea2e5f6,8ea2e5f6v 7202 e78882 7202 00007202 f26c f26c f26c f26c f26c f26c f26c -12474 f26d f26d f26d * * 6577 8ea2e5f7,8ea2e5f7v 7205 e78885 7205 00007205 f26d f26d f26d f26d f26d f26d f26d -12475 f26e f26e f26e * * 6578 8ea2e5f8,8ea2e5f8v 72a5 e78aa5 72a5 000072a5 f26e f26e f26e f26e f26e f26e f26e -12476 f26f f26f f26f * * 6579 8ea2e5f9,8ea2e5f9v 72a6 e78aa6 72a6 000072a6 f26f f26f f26f f26f f26f f26f f26f -12477 f270 f270 f270 * * 657a 8ea2e5fa,8ea2e5fav 72a4 e78aa4 72a4 000072a4 f270 f270 f270 f270 f270 f270 f270 -12478 f271 f271 f271 * * 657b 8ea2e5fb,8ea2e5fbv 72a3 e78aa3 72a3 000072a3 f271 f271 f271 f271 f271 f271 f271 -12479 f272 f272 f272 * * 657c 8ea2e5fc,8ea2e5fcv 72a1 e78aa1 72a1 000072a1 f272 f272 f272 f272 f272 f272 f272 -12480 f273 f273 f273 * * 657d 8ea2e5fd,8ea2e5fdv 74cb e7938b 74cb 000074cb f273 f273 f273 f273 f273 f273 f273 -12481 f274 f274 f274 * * 657e 8ea2e5fe,8ea2e5fev 74c5 e79385 74c5 000074c5 f274 f274 f274 f274 f274 f274 f274 -12482 f275 f275 f275 * * 6621 8ea2e6a1,8ea2e6a1v 74b7 e792b7 74b7 000074b7 f275 f275 f275 f275 f275 f275 f275 -12483 f276 f276 f276 * * 6622 8ea2e6a2,8ea2e6a2v 74c3 e79383 74c3 000074c3 f276 f276 f276 f276 f276 f276 f276 -12484 f277 f277 f277 * * 6623 8ea2e6a3,8ea2e6a3v 7516 e79496 7516 00007516 f277 f277 f277 f277 f277 f277 f277 -12485 f278 f278 f278 * * 6624 8ea2e6a4,8ea2e6a4v 7660 e799a0 7660 00007660 f278 f278 f278 f278 f278 f278 f278 -12486 f279 f279 f279 * * 6625 8ea2e6a5,8ea2e6a5v 77c9 e79f89 77c9 000077c9 f279 f279 f279 f279 f279 f279 f279 -12487 f27a f27a f27a * * 6626 8ea2e6a6,8ea2e6a6v 77ca e79f8a 77ca 000077ca f27a f27a f27a f27a f27a f27a f27a -12488 f27b f27b f27b * * 6627 8ea2e6a7,8ea2e6a7v 77c4 e79f84 77c4 000077c4 f27b f27b f27b f27b f27b f27b f27b -12489 f27c f27c f27c * * 6628 8ea2e6a8,8ea2e6a8v 77f1 e79fb1 77f1 000077f1 f27c f27c f27c f27c f27c f27c f27c -12490 f27d f27d f27d * * 6629 8ea2e6a9,8ea2e6a9v 791d e7a49d 791d 0000791d f27d f27d f27d f27d f27d f27d f27d -12491 f27e f27e f27e * * 662a 8ea2e6aa,8ea2e6aav 791b e7a49b 791b 0000791b f27e f27e f27e f27e f27e f27e f27e -12492 f2a1 f2a1 f2a1 * * 662b 8ea2e6ab,8ea2e6abv 7921 e7a4a1 7921 00007921 f2a1 f2a1 f2a1 f2a1 f2a1 f2a1 f2a1 -12493 f2a2 f2a2 f2a2 * * 662c 8ea2e6ac,8ea2e6acv 791c e7a49c 791c 0000791c f2a2 f2a2 f2a2 f2a2 f2a2 f2a2 f2a2 -12494 f2a3 f2a3 f2a3 * * 662d 8ea2e6ad,8ea2e6adv 7917 e7a497 7917 00007917 f2a3 f2a3 f2a3 f2a3 f2a3 f2a3 f2a3 -12495 f2a4 f2a4 f2a4 * * 662e 8ea2e6ae,8ea2e6aev 791e e7a49e 791e 0000791e f2a4 f2a4 f2a4 f2a4 f2a4 f2a4 f2a4 -12496 f2a5 f2a5 f2a5 * * 662f 8ea2e6af,8ea2e6afv 79b0 e7a6b0 79b0 000079b0 f2a5 f2a5 f2a5 f2a5 f2a5 f2a5 f2a5 -12497 f2a6 f2a6 f2a6 * * 6630 8ea2e6b0,8ea2e6b0v 7a67 e7a9a7 7a67 00007a67 f2a6 f2a6 f2a6 f2a6 f2a6 f2a6 f2a6 -12498 f2a7 f2a7 f2a7 * * 6631 8ea2e6b1,8ea2e6b1v 7a68 e7a9a8 7a68 00007a68 f2a7 f2a7 f2a7 f2a7 f2a7 f2a7 f2a7 -12499 f2a8 f2a8 f2a8 * * 6632 8ea2e6b2,8ea2e6b2v 7c33 e7b0b3 7c33 00007c33 f2a8 f2a8 f2a8 f2a8 f2a8 f2a8 f2a8 -12500 f2a9 f2a9 f2a9 * * 6633 8ea2e6b3,8ea2e6b3v 7c3c e7b0bc 7c3c 00007c3c f2a9 f2a9 f2a9 f2a9 f2a9 f2a9 f2a9 -12501 f2aa f2aa f2aa * * 6634 8ea2e6b4,8ea2e6b4v 7c39 e7b0b9 7c39 00007c39 f2aa f2aa f2aa f2aa f2aa f2aa f2aa -12502 f2ab f2ab f2ab * * 6635 8ea2e6b5,8ea2e6b5v 7c2c e7b0ac 7c2c 00007c2c f2ab f2ab f2ab f2ab f2ab f2ab f2ab -12503 f2ac f2ac f2ac * * 6636 8ea2e6b6,8ea2e6b6v 7c3b e7b0bb 7c3b 00007c3b f2ac f2ac f2ac f2ac f2ac f2ac f2ac -12504 f2ad f2ad f2ad * * 6637 8ea2e6b7,8ea2e6b7v 7cec e7b3ac 7cec 00007cec f2ad f2ad f2ad f2ad f2ad f2ad f2ad -12505 f2ae f2ae f2ae * * 6638 8ea2e6b8,8ea2e6b8v 7cea e7b3aa 7cea 00007cea f2ae f2ae f2ae f2ae f2ae f2ae f2ae -12506 f2af f2af f2af * * 6639 8ea2e6b9,8ea2e6b9v 7e76 e7b9b6 7e76 00007e76 f2af f2af f2af f2af f2af f2af f2af -12507 f2b0 f2b0 f2b0 * * 663a 8ea2e6ba,8ea2e6bav 7e75 e7b9b5 7e75 00007e75 f2b0 f2b0 f2b0 f2b0 f2b0 f2b0 f2b0 -12508 f2b1 f2b1 f2b1 * * 663b 8ea2e6bb,8ea2e6bbv 7e78 e7b9b8 7e78 00007e78 f2b1 f2b1 f2b1 f2b1 f2b1 f2b1 f2b1 -12509 f2b2 f2b2 f2b2 * * 663c 8ea2e6bc,8ea2e6bcv 7e70 e7b9b0 7e70 00007e70 f2b2 f2b2 f2b2 f2b2 f2b2 f2b2 f2b2 -12510 f2b3 f2b3 f2b3 * * 663d 8ea2e6bd,8ea2e6bdv 7e77 e7b9b7 7e77 00007e77 f2b3 f2b3 f2b3 f2b3 f2b3 f2b3 f2b3 -12511 f2b4 f2b4 f2b4 * * 663e 8ea2e6be,8ea2e6bev 7e6f e7b9af 7e6f 00007e6f f2b4 f2b4 f2b4 f2b4 f2b4 f2b4 f2b4 -12512 f2b5 f2b5 f2b5 * * 663f 8ea2e6bf,8ea2e6bfv 7e7a e7b9ba 7e7a 00007e7a f2b5 f2b5 f2b5 f2b5 f2b5 f2b5 f2b5 -12513 f2b6 f2b6 f2b6 * * 6640 8ea2e6c0,8ea2e6c0v 7e72 e7b9b2 7e72 00007e72 f2b6 f2b6 f2b6 f2b6 f2b6 f2b6 f2b6 -12514 f2b7 f2b7 f2b7 * * 6641 8ea2e6c1,8ea2e6c1v 7e74 e7b9b4 7e74 00007e74 f2b7 f2b7 f2b7 f2b7 f2b7 f2b7 f2b7 -12515 f2b8 f2b8 f2b8 * * 6642 8ea2e6c2,8ea2e6c2v 7e68 e7b9a8 7e68 00007e68 f2b8 f2b8 f2b8 f2b8 f2b8 f2b8 f2b8 -12516 f2b9 f2b9 f2b9 * * 6643 8ea2e6c3,8ea2e6c3v 7f4b e7bd8b 7f4b 00007f4b f2b9 f2b9 f2b9 f2b9 f2b9 f2b9 f2b9 -12517 f2ba f2ba f2ba * * 6644 8ea2e6c4,8ea2e6c4v 7f4a e7bd8a 7f4a 00007f4a f2ba f2ba f2ba f2ba f2ba f2ba f2ba -12518 f2bb f2bb f2bb * * 6645 8ea2e6c5,8ea2e6c5v 7f83 e7be83 7f83 00007f83 f2bb f2bb f2bb f2bb f2bb f2bb f2bb -12519 f2bc f2bc f2bc * * 6646 8ea2e6c6,8ea2e6c6v 7f86 e7be86 7f86 00007f86 f2bc f2bc f2bc f2bc f2bc f2bc f2bc -12520 f2bd f2bd f2bd * * 6647 8ea2e6c7,8ea2e6c7v 7fb7 e7beb7 7fb7 00007fb7 f2bd f2bd f2bd f2bd f2bd f2bd f2bd -12521 f2be f2be f2be * * 6648 8ea2e6c8,8ea2e6c8v 7ffd e7bfbd 7ffd 00007ffd f2be f2be f2be f2be f2be f2be f2be -12522 f2bf f2bf f2bf * * 6649 8ea2e6c9,8ea2e6c9v 7ffe e7bfbe 7ffe 00007ffe f2bf f2bf f2bf f2bf f2bf f2bf f2bf -12523 f2c0 f2c0 f2c0 * * 664a 8ea2e6ca,8ea2e6cav 8078 e881b8 8078 00008078 f2c0 f2c0 f2c0 f2c0 f2c0 f2c0 f2c0 -12524 f2c1 f2c1 f2c1 * * 664b 8ea2e6cb,8ea2e6cbv 81d7 e88797 81d7 000081d7 f2c1 f2c1 f2c1 f2c1 f2c1 f2c1 f2c1 -12525 f2c2 f2c2 f2c2 * * 664c 8ea2e6cc,8ea2e6ccv 81d5 e88795 81d5 000081d5 f2c2 f2c2 f2c2 f2c2 f2c2 f2c2 f2c2 -12526 f4b5 f4b5 f4b5 * * 664d 8ea2e6cd,8ea2e6cdv 820b e8888b 820b 0000820b f4b5 f4b5 f4b5 f4b5 f4b5 f4b5 f4b5 -12527 f2c3 f2c3 f2c3 * * 664e 8ea2e6ce,8ea2e6cev 8264 e889a4 8264 00008264 f2c3 f2c3 f2c3 f2c3 f2c3 f2c3 f2c3 -12528 f2c4 f2c4 f2c4 * * 664f 8ea2e6cf,8ea2e6cfv 8261 e889a1 8261 00008261 f2c4 f2c4 f2c4 f2c4 f2c4 f2c4 f2c4 -12529 f2c5 f2c5 f2c5 * * 6650 8ea2e6d0,8ea2e6d0v 8263 e889a3 8263 00008263 f2c5 f2c5 f2c5 f2c5 f2c5 f2c5 f2c5 -12530 f2c6 f2c6 f2c6 * * 6651 8ea2e6d1,8ea2e6d1v 85eb e897ab 85eb 000085eb f2c6 f2c6 f2c6 f2c6 f2c6 f2c6 f2c6 -12531 f2c7 f2c7 f2c7 * * 6652 8ea2e6d2,8ea2e6d2v 85f1 e897b1 85f1 000085f1 f2c7 f2c7 f2c7 f2c7 f2c7 f2c7 f2c7 -12532 f2c8 f2c8 f2c8 * * 6653 8ea2e6d3,8ea2e6d3v 85ed e897ad 85ed 000085ed f2c8 f2c8 f2c8 f2c8 f2c8 f2c8 f2c8 -12533 f2c9 f2c9 f2c9 * * 6654 8ea2e6d4,8ea2e6d4v 85d9 e89799 85d9 000085d9 f2c9 f2c9 f2c9 f2c9 f2c9 f2c9 f2c9 -12534 f2ca f2ca f2ca * * 6655 8ea2e6d5,8ea2e6d5v 85e1 e897a1 85e1 000085e1 f2ca f2ca f2ca f2ca f2ca f2ca f2ca -12535 f2cb f2cb f2cb * * 6656 8ea2e6d6,8ea2e6d6v 85e8 e897a8 85e8 000085e8 f2cb f2cb f2cb f2cb f2cb f2cb f2cb -12536 f2cc f2cc f2cc * * 6657 8ea2e6d7,8ea2e6d7v 85da e8979a 85da 000085da f2cc f2cc f2cc f2cc f2cc f2cc f2cc -12537 f2cd f2cd f2cd * * 6658 8ea2e6d8,8ea2e6d8v 85d7 e89797 85d7 000085d7 f2cd f2cd f2cd f2cd f2cd f2cd f2cd -12538 f2ce f2ce f2ce * * 6659 8ea2e6d9,8ea2e6d9v 85ec e897ac 85ec 000085ec f2ce f2ce f2ce f2ce f2ce f2ce f2ce -12539 f2cf f2cf f2cf * * 665a 8ea2e6da,8ea2e6dav 85f2 e897b2 85f2 000085f2 f2cf f2cf f2cf f2cf f2cf f2cf f2cf -12540 f2d0 f2d0 f2d0 * * 665b 8ea2e6db,8ea2e6dbv 85f8 e897b8 85f8 000085f8 f2d0 f2d0 f2d0 f2d0 f2d0 f2d0 f2d0 -12541 f2d1 f2d1 f2d1 * * 665c 8ea2e6dc,8ea2e6dcv 85d8 e89798 85d8 000085d8 f2d1 f2d1 f2d1 f2d1 f2d1 f2d1 f2d1 -12542 f2d2 f2d2 f2d2 * * 665d 8ea2e6dd,8ea2e6ddv 85df e8979f 85df 000085df f2d2 f2d2 f2d2 f2d2 f2d2 f2d2 f2d2 -12543 f2d3 f2d3 f2d3 * * 665e 8ea2e6de,8ea2e6dev 85e3 e897a3 85e3 000085e3 f2d3 f2d3 f2d3 f2d3 f2d3 f2d3 f2d3 -12544 f2d4 f2d4 f2d4 * * 665f 8ea2e6df,8ea2e6dfv 85dc e8979c 85dc 000085dc f2d4 f2d4 f2d4 f2d4 f2d4 f2d4 f2d4 -12545 f2d5 f2d5 f2d5 * * 6660 8ea2e6e0,8ea2e6e0v 85d1 e89791 85d1 000085d1 f2d5 f2d5 f2d5 f2d5 f2d5 f2d5 f2d5 -12546 f2d6 f2d6 f2d6 * * 6661 8ea2e6e1,8ea2e6e1v 85f0 e897b0 85f0 000085f0 f2d6 f2d6 f2d6 f2d6 f2d6 f2d6 f2d6 -12547 f2d7 f2d7 f2d7 * * 6662 8ea2e6e2,8ea2e6e2v 85e6 e897a6 85e6 000085e6 f2d7 f2d7 f2d7 f2d7 f2d7 f2d7 f2d7 -12548 f2d8 f2d8 f2d8 * * 6663 8ea2e6e3,8ea2e6e3v 85ef e897af 85ef 000085ef f2d8 f2d8 f2d8 f2d8 f2d8 f2d8 f2d8 -12549 f2d9 f2d9 f2d9 * * 6664 8ea2e6e4,8ea2e6e4v 85de e8979e 85de 000085de f2d9 f2d9 f2d9 f2d9 f2d9 f2d9 f2d9 -12550 f2da f2da f2da * * 6665 8ea2e6e5,8ea2e6e5v 85e2 e897a2 85e2 000085e2 f2da f2da f2da f2da f2da f2da f2da -12551 f2db f2db f2db * * 6666 8ea2e6e6,8ea2e6e6v 8800 e8a080 8800 00008800 f2db f2db f2db f2db f2db f2db f2db -12552 f2dc f2dc f2dc * * 6667 8ea2e6e7,8ea2e6e7v 87fa e89fba 87fa 000087fa f2dc f2dc f2dc f2dc f2dc f2dc f2dc -12553 f2dd f2dd f2dd * * 6668 8ea2e6e8,8ea2e6e8v 8803 e8a083 8803 00008803 f2dd f2dd f2dd f2dd f2dd f2dd f2dd -12554 f2de f2de f2de * * 6669 8ea2e6e9,8ea2e6e9v 87f6 e89fb6 87f6 000087f6 f2de f2de f2de f2de f2de f2de f2de -12555 f2df f2df f2df * * 666a 8ea2e6ea,8ea2e6eav 87f7 e89fb7 87f7 000087f7 f2df f2df f2df f2df f2df f2df f2df -12556 f2e0 f2e0 f2e0 * * 666b 8ea2e6eb,8ea2e6ebv 8809 e8a089 8809 00008809 f2e0 f2e0 f2e0 f2e0 f2e0 f2e0 f2e0 -12557 f2e1 f2e1 f2e1 * * 666c 8ea2e6ec,8ea2e6ecv 880c e8a08c 880c 0000880c f2e1 f2e1 f2e1 f2e1 f2e1 f2e1 f2e1 -12558 f2e2 f2e2 f2e2 * * 666d 8ea2e6ed,8ea2e6edv 880b e8a08b 880b 0000880b f2e2 f2e2 f2e2 f2e2 f2e2 f2e2 f2e2 -12559 f2e3 f2e3 f2e3 * * 666e 8ea2e6ee,8ea2e6eev 8806 e8a086 8806 00008806 f2e3 f2e3 f2e3 f2e3 f2e3 f2e3 f2e3 -12560 f2e4 f2e4 f2e4 * * 666f 8ea2e6ef,8ea2e6efv 87fc e89fbc 87fc 000087fc f2e4 f2e4 f2e4 f2e4 f2e4 f2e4 f2e4 -12561 f2e5 f2e5 f2e5 * * 6670 8ea2e6f0,8ea2e6f0v 8808 e8a088 8808 00008808 f2e5 f2e5 f2e5 f2e5 f2e5 f2e5 f2e5 -12562 f2e6 f2e6 f2e6 * * 6671 8ea2e6f1,8ea2e6f1v 87ff e89fbf 87ff 000087ff f2e6 f2e6 f2e6 f2e6 f2e6 f2e6 f2e6 -12563 f2e7 f2e7 f2e7 * * 6672 8ea2e6f2,8ea2e6f2v 880a e8a08a 880a 0000880a f2e7 f2e7 f2e7 f2e7 f2e7 f2e7 f2e7 -12564 f2e8 f2e8 f2e8 * * 6673 8ea2e6f3,8ea2e6f3v 8802 e8a082 8802 00008802 f2e8 f2e8 f2e8 f2e8 f2e8 f2e8 f2e8 -12565 f2e9 f2e9 f2e9 * * 6674 8ea2e6f4,8ea2e6f4v 8962 e8a5a2 8962 00008962 f2e9 f2e9 f2e9 f2e9 f2e9 f2e9 f2e9 -12566 f2ea f2ea f2ea * * 6675 8ea2e6f5,8ea2e6f5v 895a e8a59a 895a 0000895a f2ea f2ea f2ea f2ea f2ea f2ea f2ea -12567 f2eb f2eb f2eb * * 6676 8ea2e6f6,8ea2e6f6v 895b e8a59b 895b 0000895b f2eb f2eb f2eb f2eb f2eb f2eb f2eb -12568 f2ec f2ec f2ec * * 6677 8ea2e6f7,8ea2e6f7v 8957 e8a597 8957 00008957 f2ec f2ec f2ec f2ec f2ec f2ec f2ec -12569 f2ed f2ed f2ed * * 6678 8ea2e6f8,8ea2e6f8v 8961 e8a5a1 8961 00008961 f2ed f2ed f2ed f2ed f2ed f2ed f2ed -12570 f2ee f2ee f2ee * * 6679 8ea2e6f9,8ea2e6f9v 895c e8a59c 895c 0000895c f2ee f2ee f2ee f2ee f2ee f2ee f2ee -12571 f2ef f2ef f2ef * * 667a 8ea2e6fa,8ea2e6fav 8958 e8a598 8958 00008958 f2ef f2ef f2ef f2ef f2ef f2ef f2ef -12572 f2f0 f2f0 f2f0 * * 667b 8ea2e6fb,8ea2e6fbv 895d e8a59d 895d 0000895d f2f0 f2f0 f2f0 f2f0 f2f0 f2f0 f2f0 -12573 f2f1 f2f1 f2f1 * * 667c 8ea2e6fc,8ea2e6fcv 8959 e8a599 8959 00008959 f2f1 f2f1 f2f1 f2f1 f2f1 f2f1 f2f1 -12574 f2f2 f2f2 f2f2 * * 667d 8ea2e6fd,8ea2e6fdv 8988 e8a688 8988 00008988 f2f2 f2f2 f2f2 f2f2 f2f2 f2f2 f2f2 -12575 f2f3 f2f3 f2f3 * * 667e 8ea2e6fe,8ea2e6fev 89b7 e8a6b7 89b7 000089b7 f2f3 f2f3 f2f3 f2f3 f2f3 f2f3 f2f3 -12576 f2f4 f2f4 f2f4 * * 6721 8ea2e7a1,8ea2e7a1v 89b6 e8a6b6 89b6 000089b6 f2f4 f2f4 f2f4 f2f4 f2f4 f2f4 f2f4 -12577 f2f5 f2f5 f2f5 * * 6722 8ea2e7a2,8ea2e7a2v 89f6 e8a7b6 89f6 000089f6 f2f5 f2f5 f2f5 f2f5 f2f5 f2f5 f2f5 -12578 f2f6 f2f6 f2f6 * * 6723 8ea2e7a3,8ea2e7a3v 8b50 e8ad90 8b50 00008b50 f2f6 f2f6 f2f6 f2f6 f2f6 f2f6 f2f6 -12579 f2f7 f2f7 f2f7 * * 6724 8ea2e7a4,8ea2e7a4v 8b48 e8ad88 8b48 00008b48 f2f7 f2f7 f2f7 f2f7 f2f7 f2f7 f2f7 -12580 f2f8 f2f8 f2f8 * * 6725 8ea2e7a5,8ea2e7a5v 8b4a e8ad8a 8b4a 00008b4a f2f8 f2f8 f2f8 f2f8 f2f8 f2f8 f2f8 -12581 f2f9 f2f9 f2f9 * * 6726 8ea2e7a6,8ea2e7a6v 8b40 e8ad80 8b40 00008b40 f2f9 f2f9 f2f9 f2f9 f2f9 f2f9 f2f9 -12582 f2fa f2fa f2fa * * 6727 8ea2e7a7,8ea2e7a7v 8b53 e8ad93 8b53 00008b53 f2fa f2fa f2fa f2fa f2fa f2fa f2fa -12583 f2fb f2fb f2fb * * 6728 8ea2e7a8,8ea2e7a8v 8b56 e8ad96 8b56 00008b56 f2fb f2fb f2fb f2fb f2fb f2fb f2fb -12584 f2fc f2fc f2fc * * 6729 8ea2e7a9,8ea2e7a9v 8b54 e8ad94 8b54 00008b54 f2fc f2fc f2fc f2fc f2fc f2fc f2fc -12585 f2fd f2fd f2fd * * 672a 8ea2e7aa,8ea2e7aav 8b4b e8ad8b 8b4b 00008b4b f2fd f2fd f2fd f2fd f2fd f2fd f2fd -12586 f2fe f2fe f2fe * * 672b 8ea2e7ab,8ea2e7abv 8b55 e8ad95 8b55 00008b55 f2fe f2fe f2fe f2fe f2fe f2fe f2fe -12587 f340 f340 f340 * * 672c 8ea2e7ac,8ea2e7acv 8b51 e8ad91 8b51 00008b51 f340 f340 f340 f340 f340 f340 f340 -12588 f341 f341 f341 * * 672d 8ea2e7ad,8ea2e7adv 8b42 e8ad82 8b42 00008b42 f341 f341 f341 f341 f341 f341 f341 -12589 f342 f342 f342 * * 672e 8ea2e7ae,8ea2e7aev 8b52 e8ad92 8b52 00008b52 f342 f342 f342 f342 f342 f342 f342 -12590 f343 f343 f343 * * 672f 8ea2e7af,8ea2e7afv 8b57 e8ad97 8b57 00008b57 f343 f343 f343 f343 f343 f343 f343 -12591 f344 f344 f344 * * 6730 8ea2e7b0,8ea2e7b0v 8c43 e8b183 8c43 00008c43 f344 f344 f344 f344 f344 f344 f344 -12592 f345 f345 f345 * * 6731 8ea2e7b1,8ea2e7b1v 8c77 e8b1b7 8c77 00008c77 f345 f345 f345 f345 f345 f345 f345 -12593 f346 f346 f346 * * 6732 8ea2e7b2,8ea2e7b2v 8c76 e8b1b6 8c76 00008c76 f346 f346 f346 f346 f346 f346 f346 -12594 f347 f347 f347 * * 6733 8ea2e7b3,8ea2e7b3v 8c9a e8b29a 8c9a 00008c9a f347 f347 f347 f347 f347 f347 f347 -12595 f348 f348 f348 * * 6734 8ea2e7b4,8ea2e7b4v 8d06 e8b486 8d06 00008d06 f348 f348 f348 f348 f348 f348 f348 -12596 f349 f349 f349 * * 6735 8ea2e7b5,8ea2e7b5v 8d07 e8b487 8d07 00008d07 f349 f349 f349 f349 f349 f349 f349 -12597 f34a f34a f34a * * 6736 8ea2e7b6,8ea2e7b6v 8d09 e8b489 8d09 00008d09 f34a f34a f34a f34a f34a f34a f34a -12598 f34b f34b f34b * * 6737 8ea2e7b7,8ea2e7b7v 8dac e8b6ac 8dac 00008dac f34b f34b f34b f34b f34b f34b f34b -12599 f34c f34c f34c * * 6738 8ea2e7b8,8ea2e7b8v 8daa e8b6aa 8daa 00008daa f34c f34c f34c f34c f34c f34c f34c -12600 f34d f34d f34d * * 6739 8ea2e7b9,8ea2e7b9v 8dad e8b6ad 8dad 00008dad f34d f34d f34d f34d f34d f34d f34d -12601 f34e f34e f34e * * 673a 8ea2e7ba,8ea2e7bav 8dab e8b6ab 8dab 00008dab f34e f34e f34e f34e f34e f34e f34e -12602 f34f f34f f34f * * 673b 8ea2e7bb,8ea2e7bbv 8e6d e8b9ad 8e6d 00008e6d f34f f34f f34f f34f f34f f34f f34f -12603 f350 f350 f350 * * 673c 8ea2e7bc,8ea2e7bcv 8e78 e8b9b8 8e78 00008e78 f350 f350 f350 f350 f350 f350 f350 -12604 f351 f351 f351 * * 673d 8ea2e7bd,8ea2e7bdv 8e73 e8b9b3 8e73 00008e73 f351 f351 f351 f351 f351 f351 f351 -12605 f352 f352 f352 * * 673e 8ea2e7be,8ea2e7bev 8e6a e8b9aa 8e6a 00008e6a f352 f352 f352 f352 f352 f352 f352 -12606 f353 f353 f353 * * 673f 8ea2e7bf,8ea2e7bfv 8e6f e8b9af 8e6f 00008e6f f353 f353 f353 f353 f353 f353 f353 -12607 f354 f354 f354 * * 6740 8ea2e7c0,8ea2e7c0v 8e7b e8b9bb 8e7b 00008e7b f354 f354 f354 f354 f354 f354 f354 -12608 f355 f355 f355 * * 6741 8ea2e7c1,8ea2e7c1v 8ec2 e8bb82 8ec2 00008ec2 f355 f355 f355 f355 f355 f355 f355 -12609 f356 f356 f356 * * 6742 8ea2e7c2,8ea2e7c2v 8f52 e8bd92 8f52 00008f52 f356 f356 f356 f356 f356 f356 f356 -12610 f357 f357 f357 * * 6743 8ea2e7c3,8ea2e7c3v 8f51 e8bd91 8f51 00008f51 f357 f357 f357 f357 f357 f357 f357 -12611 f358 f358 f358 * * 6744 8ea2e7c4,8ea2e7c4v 8f4f e8bd8f 8f4f 00008f4f f358 f358 f358 f358 f358 f358 f358 -12612 f359 f359 f359 * * 6745 8ea2e7c5,8ea2e7c5v 8f50 e8bd90 8f50 00008f50 f359 f359 f359 f359 f359 f359 f359 -12613 f35a f35a f35a * * 6746 8ea2e7c6,8ea2e7c6v 8f53 e8bd93 8f53 00008f53 f35a f35a f35a f35a f35a f35a f35a -12614 f35b f35b f35b * * 6747 8ea2e7c7,8ea2e7c7v 8fb4 e8beb4 8fb4 00008fb4 f35b f35b f35b f35b f35b f35b f35b -12615 f35c f35c f35c * * 6748 8ea2e7c8,8ea2e7c8v 9140 e98580 9140 00009140 f35c f35c f35c f35c f35c f35c f35c -12616 f35d f35d f35d * * 6749 8ea2e7c9,8ea2e7c9v 913f e984bf 913f 0000913f f35d f35d f35d f35d f35d f35d f35d -12617 f35e f35e f35e * * 674a 8ea2e7ca,8ea2e7cav 91b0 e986b0 91b0 000091b0 f35e f35e f35e f35e f35e f35e f35e -12618 f35f f35f f35f * * 674b 8ea2e7cb,8ea2e7cbv 91ad e986ad 91ad 000091ad f35f f35f f35f f35f f35f f35f f35f -12619 f360 f360 f360 * * 674c 8ea2e7cc,8ea2e7ccv 93de e98f9e 93de 000093de f360 f360 f360 f360 f360 f360 f360 -12620 f361 f361 f361 * * 674d 8ea2e7cd,8ea2e7cdv 93c7 e98f87 93c7 000093c7 f361 f361 f361 f361 f361 f361 f361 -12621 f362 f362 f362 * * 674e 8ea2e7ce,8ea2e7cev 93cf e98f8f 93cf 000093cf f362 f362 f362 f362 f362 f362 f362 -12622 f363 f363 f363 * * 674f 8ea2e7cf,8ea2e7cfv 93c2 e98f82 93c2 000093c2 f363 f363 f363 f363 f363 f363 f363 -12623 f364 f364 f364 * * 6750 8ea2e7d0,8ea2e7d0v 93da e98f9a 93da 000093da f364 f364 f364 f364 f364 f364 f364 -12624 f365 f365 f365 * * 6751 8ea2e7d1,8ea2e7d1v 93d0 e98f90 93d0 000093d0 f365 f365 f365 f365 f365 f365 f365 -12625 f366 f366 f366 * * 6752 8ea2e7d2,8ea2e7d2v 93f9 e98fb9 93f9 000093f9 f366 f366 f366 f366 f366 f366 f366 -12626 f367 f367 f367 * * 6753 8ea2e7d3,8ea2e7d3v 93ec e98fac 93ec 000093ec f367 f367 f367 f367 f367 f367 f367 -12627 f368 f368 f368 * * 6754 8ea2e7d4,8ea2e7d4v 93cc e98f8c 93cc 000093cc f368 f368 f368 f368 f368 f368 f368 -12628 f369 f369 f369 * * 6755 8ea2e7d5,8ea2e7d5v 93d9 e98f99 93d9 000093d9 f369 f369 f369 f369 f369 f369 f369 -12629 f36a f36a f36a * * 6756 8ea2e7d6,8ea2e7d6v 93a9 e98ea9 93a9 000093a9 f36a f36a f36a f36a f36a f36a f36a -12630 f36b f36b f36b * * 6757 8ea2e7d7,8ea2e7d7v 93e6 e98fa6 93e6 000093e6 f36b f36b f36b f36b f36b f36b f36b -12631 f36c f36c f36c * * 6758 8ea2e7d8,8ea2e7d8v 93ca e98f8a 93ca 000093ca f36c f36c f36c f36c f36c f36c f36c -12632 f36d f36d f36d * * 6759 8ea2e7d9,8ea2e7d9v 93d4 e98f94 93d4 000093d4 f36d f36d f36d f36d f36d f36d f36d -12633 f36e f36e f36e * * 675a 8ea2e7da,8ea2e7dav 93ee e98fae 93ee 000093ee f36e f36e f36e f36e f36e f36e f36e -12634 f36f f36f f36f * * 675b 8ea2e7db,8ea2e7dbv 93e3 e98fa3 93e3 000093e3 f36f f36f f36f f36f f36f f36f f36f -12635 f370 f370 f370 * * 675c 8ea2e7dc,8ea2e7dcv 93d5 e98f95 93d5 000093d5 f370 f370 f370 f370 f370 f370 f370 -12636 f371 f371 f371 * * 675d 8ea2e7dd,8ea2e7ddv 93c4 e98f84 93c4 000093c4 f371 f371 f371 f371 f371 f371 f371 -12637 f372 f372 f372 * * 675e 8ea2e7de,8ea2e7dev 93ce e98f8e 93ce 000093ce f372 f372 f372 f372 f372 f372 f372 -12638 f373 f373 f373 * * 675f 8ea2e7df,8ea2e7dfv 93c0 e98f80 93c0 000093c0 f373 f373 f373 f373 f373 f373 f373 -12639 f374 f374 f374 * * 6760 8ea2e7e0,8ea2e7e0v 93d2 e98f92 93d2 000093d2 f374 f374 f374 f374 f374 f374 f374 -12640 f16b f16b f16b * * 6761 8ea2e7e1,8ea2e7e1v 93a5 e98ea5 93a5 000093a5 f16b f16b f16b f16b f16b f16b f16b -12641 f375 f375 f375 * * 6762 8ea2e7e2,8ea2e7e2v 93e7 e98fa7 93e7 000093e7 f375 f375 f375 f375 f375 f375 f375 -12642 f376 f376 f376 * * 6763 8ea2e7e3,8ea2e7e3v 957d e995bd 957d 0000957d f376 f376 f376 f376 f376 f376 f376 -12643 f377 f377 f377 * * 6764 8ea2e7e4,8ea2e7e4v 95da e9979a 95da 000095da f377 f377 f377 f377 f377 f377 f377 -12644 f378 f378 f378 * * 6765 8ea2e7e5,8ea2e7e5v 95db e9979b 95db 000095db f378 f378 f378 f378 f378 f378 f378 -12645 f379 f379 f379 * * 6766 8ea2e7e6,8ea2e7e6v 96e1 e99ba1 96e1 000096e1 f379 f379 f379 f379 f379 f379 f379 -12646 f37a f37a f37a * * 6767 8ea2e7e7,8ea2e7e7v 9729 e99ca9 9729 00009729 f37a f37a f37a f37a f37a f37a f37a -12647 f37b f37b f37b * * 6768 8ea2e7e8,8ea2e7e8v 972b e99cab 972b 0000972b f37b f37b f37b f37b f37b f37b f37b -12648 f37c f37c f37c * * 6769 8ea2e7e9,8ea2e7e9v 972c e99cac 972c 0000972c f37c f37c f37c f37c f37c f37c f37c -12649 f37d f37d f37d * * 676a 8ea2e7ea,8ea2e7eav 9728 e99ca8 9728 00009728 f37d f37d f37d f37d f37d f37d f37d -12650 f37e f37e f37e * * 676b 8ea2e7eb,8ea2e7ebv 9726 e99ca6 9726 00009726 f37e f37e f37e f37e f37e f37e f37e -12651 f3a1 f3a1 f3a1 * * 676c 8ea2e7ec,8ea2e7ecv 97b3 e99eb3 97b3 000097b3 f3a1 f3a1 f3a1 f3a1 f3a1 f3a1 f3a1 -12652 f3a2 f3a2 f3a2 * * 676d 8ea2e7ed,8ea2e7edv 97b7 e99eb7 97b7 000097b7 f3a2 f3a2 f3a2 f3a2 f3a2 f3a2 f3a2 -12653 f3a3 f3a3 f3a3 * * 676e 8ea2e7ee,8ea2e7eev 97b6 e99eb6 97b6 000097b6 f3a3 f3a3 f3a3 f3a3 f3a3 f3a3 f3a3 -12654 f3a4 f3a4 f3a4 * * 676f 8ea2e7ef,8ea2e7efv 97dd e99f9d 97dd 000097dd f3a4 f3a4 f3a4 f3a4 f3a4 f3a4 f3a4 -12655 f3a5 f3a5 f3a5 * * 6770 8ea2e7f0,8ea2e7f0v 97de e99f9e 97de 000097de f3a5 f3a5 f3a5 f3a5 f3a5 f3a5 f3a5 -12656 f3a6 f3a6 f3a6 * * 6771 8ea2e7f1,8ea2e7f1v 97df e99f9f 97df 000097df f3a6 f3a6 f3a6 f3a6 f3a6 f3a6 f3a6 -12657 f3a7 f3a7 f3a7 * * 6772 8ea2e7f2,8ea2e7f2v 985c e9a19c 985c 0000985c f3a7 f3a7 f3a7 f3a7 f3a7 f3a7 f3a7 -12658 f3a8 f3a8 f3a8 * * 6773 8ea2e7f3,8ea2e7f3v 9859 e9a199 9859 00009859 f3a8 f3a8 f3a8 f3a8 f3a8 f3a8 f3a8 -12659 f3a9 f3a9 f3a9 * * 6774 8ea2e7f4,8ea2e7f4v 985d e9a19d 985d 0000985d f3a9 f3a9 f3a9 f3a9 f3a9 f3a9 f3a9 -12660 f3aa f3aa f3aa * * 6775 8ea2e7f5,8ea2e7f5v 9857 e9a197 9857 00009857 f3aa f3aa f3aa f3aa f3aa f3aa f3aa -12661 f3ab f3ab f3ab * * 6776 8ea2e7f6,8ea2e7f6v 98bf e9a2bf 98bf 000098bf f3ab f3ab f3ab f3ab f3ab f3ab f3ab -12662 f3ac f3ac f3ac * * 6777 8ea2e7f7,8ea2e7f7v 98bd e9a2bd 98bd 000098bd f3ac f3ac f3ac f3ac f3ac f3ac f3ac -12663 f3ad f3ad f3ad * * 6778 8ea2e7f8,8ea2e7f8v 98bb e9a2bb 98bb 000098bb f3ad f3ad f3ad f3ad f3ad f3ad f3ad -12664 f3ae f3ae f3ae * * 6779 8ea2e7f9,8ea2e7f9v 98be e9a2be 98be 000098be f3ae f3ae f3ae f3ae f3ae f3ae f3ae -12665 f3af f3af f3af * * 677a 8ea2e7fa,8ea2e7fav 9948 e9a588 9948 00009948 f3af f3af f3af f3af f3af f3af f3af -12666 f3b0 f3b0 f3b0 * * 677b 8ea2e7fb,8ea2e7fbv 9947 e9a587 9947 00009947 f3b0 f3b0 f3b0 f3b0 f3b0 f3b0 f3b0 -12667 f3b1 f3b1 f3b1 * * 677c 8ea2e7fc,8ea2e7fcv 9943 e9a583 9943 00009943 f3b1 f3b1 f3b1 f3b1 f3b1 f3b1 f3b1 -12668 f3b2 f3b2 f3b2 * * 677d 8ea2e7fd,8ea2e7fdv 99a6 e9a6a6 99a6 000099a6 f3b2 f3b2 f3b2 f3b2 f3b2 f3b2 f3b2 -12669 f3b3 f3b3 f3b3 * * 677e 8ea2e7fe,8ea2e7fev 99a7 e9a6a7 99a7 000099a7 f3b3 f3b3 f3b3 f3b3 f3b3 f3b3 f3b3 -12670 f3b4 f3b4 f3b4 * * 6821 8ea2e8a1,8ea2e8a1v 9a1a e9a89a 9a1a 00009a1a f3b4 f3b4 f3b4 f3b4 f3b4 f3b4 f3b4 -12671 f3b5 f3b5 f3b5 * * 6822 8ea2e8a2,8ea2e8a2v 9a15 e9a895 9a15 00009a15 f3b5 f3b5 f3b5 f3b5 f3b5 f3b5 f3b5 -12672 f3b6 f3b6 f3b6 * * 6823 8ea2e8a3,8ea2e8a3v 9a25 e9a8a5 9a25 00009a25 f3b6 f3b6 f3b6 f3b6 f3b6 f3b6 f3b6 -12673 f3b7 f3b7 f3b7 * * 6824 8ea2e8a4,8ea2e8a4v 9a1d e9a89d 9a1d 00009a1d f3b7 f3b7 f3b7 f3b7 f3b7 f3b7 f3b7 -12674 f3b8 f3b8 f3b8 * * 6825 8ea2e8a5,8ea2e8a5v 9a24 e9a8a4 9a24 00009a24 f3b8 f3b8 f3b8 f3b8 f3b8 f3b8 f3b8 -12675 f3b9 f3b9 f3b9 * * 6826 8ea2e8a6,8ea2e8a6v 9a1b e9a89b 9a1b 00009a1b f3b9 f3b9 f3b9 f3b9 f3b9 f3b9 f3b9 -12676 f3ba f3ba f3ba * * 6827 8ea2e8a7,8ea2e8a7v 9a22 e9a8a2 9a22 00009a22 f3ba f3ba f3ba f3ba f3ba f3ba f3ba -12677 f3bb f3bb f3bb * * 6828 8ea2e8a8,8ea2e8a8v 9a20 e9a8a0 9a20 00009a20 f3bb f3bb f3bb f3bb f3bb f3bb f3bb -12678 f3bc f3bc f3bc * * 6829 8ea2e8a9,8ea2e8a9v 9a27 e9a8a7 9a27 00009a27 f3bc f3bc f3bc f3bc f3bc f3bc f3bc -12679 f3bd f3bd f3bd * * 682a 8ea2e8aa,8ea2e8aav 9a23 e9a8a3 9a23 00009a23 f3bd f3bd f3bd f3bd f3bd f3bd f3bd -12680 f3be f3be f3be * * 682b 8ea2e8ab,8ea2e8abv 9a1e e9a89e 9a1e 00009a1e f3be f3be f3be f3be f3be f3be f3be -12681 f3bf f3bf f3bf * * 682c 8ea2e8ac,8ea2e8acv 9a1c e9a89c 9a1c 00009a1c f3bf f3bf f3bf f3bf f3bf f3bf f3bf -12682 f3c0 f3c0 f3c0 * * 682d 8ea2e8ad,8ea2e8adv 9a14 e9a894 9a14 00009a14 f3c0 f3c0 f3c0 f3c0 f3c0 f3c0 f3c0 -12683 f3c1 f3c1 f3c1 * * 682e 8ea2e8ae,8ea2e8aev 9ac2 e9ab82 9ac2 00009ac2 f3c1 f3c1 f3c1 f3c1 f3c1 f3c1 f3c1 -12684 f3c2 f3c2 f3c2 * * 682f 8ea2e8af,8ea2e8afv 9b0b e9ac8b 9b0b 00009b0b f3c2 f3c2 f3c2 f3c2 f3c2 f3c2 f3c2 -12685 f3c3 f3c3 f3c3 * * 6830 8ea2e8b0,8ea2e8b0v 9b0a e9ac8a 9b0a 00009b0a f3c3 f3c3 f3c3 f3c3 f3c3 f3c3 f3c3 -12686 f3c4 f3c4 f3c4 * * 6831 8ea2e8b1,8ea2e8b1v 9b0e e9ac8e 9b0e 00009b0e f3c4 f3c4 f3c4 f3c4 f3c4 f3c4 f3c4 -12687 f3c5 f3c5 f3c5 * * 6832 8ea2e8b2,8ea2e8b2v 9b0c e9ac8c 9b0c 00009b0c f3c5 f3c5 f3c5 f3c5 f3c5 f3c5 f3c5 -12688 f3c6 f3c6 f3c6 * * 6833 8ea2e8b3,8ea2e8b3v 9b37 e9acb7 9b37 00009b37 f3c6 f3c6 f3c6 f3c6 f3c6 f3c6 f3c6 -12689 f3c7 f3c7 f3c7 * * 6834 8ea2e8b4,8ea2e8b4v 9bea e9afaa 9bea 00009bea f3c7 f3c7 f3c7 f3c7 f3c7 f3c7 f3c7 -12690 f3c8 f3c8 f3c8 * * 6835 8ea2e8b5,8ea2e8b5v 9beb e9afab 9beb 00009beb f3c8 f3c8 f3c8 f3c8 f3c8 f3c8 f3c8 -12691 f3c9 f3c9 f3c9 * * 6836 8ea2e8b6,8ea2e8b6v 9be0 e9afa0 9be0 00009be0 f3c9 f3c9 f3c9 f3c9 f3c9 f3c9 f3c9 -12692 f3ca f3ca f3ca * * 6837 8ea2e8b7,8ea2e8b7v 9bde e9af9e 9bde 00009bde f3ca f3ca f3ca f3ca f3ca f3ca f3ca -12693 f3cb f3cb f3cb * * 6838 8ea2e8b8,8ea2e8b8v 9be4 e9afa4 9be4 00009be4 f3cb f3cb f3cb f3cb f3cb f3cb f3cb -12694 f3cc f3cc f3cc * * 6839 8ea2e8b9,8ea2e8b9v 9be6 e9afa6 9be6 00009be6 f3cc f3cc f3cc f3cc f3cc f3cc f3cc -12695 f3cd f3cd f3cd * * 683a 8ea2e8ba,8ea2e8bav 9be2 e9afa2 9be2 00009be2 f3cd f3cd f3cd f3cd f3cd f3cd f3cd -12696 f3ce f3ce f3ce * * 683b 8ea2e8bb,8ea2e8bbv 9bf0 e9afb0 9bf0 00009bf0 f3ce f3ce f3ce f3ce f3ce f3ce f3ce -12697 f3cf f3cf f3cf * * 683c 8ea2e8bc,8ea2e8bcv 9bd4 e9af94 9bd4 00009bd4 f3cf f3cf f3cf f3cf f3cf f3cf f3cf -12698 f3d0 f3d0 f3d0 * * 683d 8ea2e8bd,8ea2e8bdv 9bd7 e9af97 9bd7 00009bd7 f3d0 f3d0 f3d0 f3d0 f3d0 f3d0 f3d0 -12699 f3d1 f3d1 f3d1 * * 683e 8ea2e8be,8ea2e8bev 9bec e9afac 9bec 00009bec f3d1 f3d1 f3d1 f3d1 f3d1 f3d1 f3d1 -12700 f3d2 f3d2 f3d2 * * 683f 8ea2e8bf,8ea2e8bfv 9bdc e9af9c 9bdc 00009bdc f3d2 f3d2 f3d2 f3d2 f3d2 f3d2 f3d2 -12701 f3d3 f3d3 f3d3 * * 6840 8ea2e8c0,8ea2e8c0v 9bd9 e9af99 9bd9 00009bd9 f3d3 f3d3 f3d3 f3d3 f3d3 f3d3 f3d3 -12702 f3d4 f3d4 f3d4 * * 6841 8ea2e8c1,8ea2e8c1v 9be5 e9afa5 9be5 00009be5 f3d4 f3d4 f3d4 f3d4 f3d4 f3d4 f3d4 -12703 f3d5 f3d5 f3d5 * * 6842 8ea2e8c2,8ea2e8c2v 9bd5 e9af95 9bd5 00009bd5 f3d5 f3d5 f3d5 f3d5 f3d5 f3d5 f3d5 -12704 f3d6 f3d6 f3d6 * * 6843 8ea2e8c3,8ea2e8c3v 9be1 e9afa1 9be1 00009be1 f3d6 f3d6 f3d6 f3d6 f3d6 f3d6 f3d6 -12705 f3d7 f3d7 f3d7 * * 6844 8ea2e8c4,8ea2e8c4v 9bda e9af9a 9bda 00009bda f3d7 f3d7 f3d7 f3d7 f3d7 f3d7 f3d7 -12706 f3d8 f3d8 f3d8 * * 6845 8ea2e8c5,8ea2e8c5v 9d77 e9b5b7 9d77 00009d77 f3d8 f3d8 f3d8 f3d8 f3d8 f3d8 f3d8 -12707 f3d9 f3d9 f3d9 * * 6846 8ea2e8c6,8ea2e8c6v 9d81 e9b681 9d81 00009d81 f3d9 f3d9 f3d9 f3d9 f3d9 f3d9 f3d9 -12708 f3da f3da f3da * * 6847 8ea2e8c7,8ea2e8c7v 9d8a e9b68a 9d8a 00009d8a f3da f3da f3da f3da f3da f3da f3da -12709 f3db f3db f3db * * 6848 8ea2e8c8,8ea2e8c8v 9d84 e9b684 9d84 00009d84 f3db f3db f3db f3db f3db f3db f3db -12710 f3dc f3dc f3dc * * 6849 8ea2e8c9,8ea2e8c9v 9d88 e9b688 9d88 00009d88 f3dc f3dc f3dc f3dc f3dc f3dc f3dc -12711 f3dd f3dd f3dd * * 684a 8ea2e8ca,8ea2e8cav 9d71 e9b5b1 9d71 00009d71 f3dd f3dd f3dd f3dd f3dd f3dd f3dd -12712 f3de f3de f3de * * 684b 8ea2e8cb,8ea2e8cbv 9d80 e9b680 9d80 00009d80 f3de f3de f3de f3de f3de f3de f3de -12713 f3df f3df f3df * * 684c 8ea2e8cc,8ea2e8ccv 9d78 e9b5b8 9d78 00009d78 f3df f3df f3df f3df f3df f3df f3df -12714 f3e0 f3e0 f3e0 * * 684d 8ea2e8cd,8ea2e8cdv 9d86 e9b686 9d86 00009d86 f3e0 f3e0 f3e0 f3e0 f3e0 f3e0 f3e0 -12715 f3e1 f3e1 f3e1 * * 684e 8ea2e8ce,8ea2e8cev 9d8b e9b68b 9d8b 00009d8b f3e1 f3e1 f3e1 f3e1 f3e1 f3e1 f3e1 -12716 f3e2 f3e2 f3e2 * * 684f 8ea2e8cf,8ea2e8cfv 9d8c e9b68c 9d8c 00009d8c f3e2 f3e2 f3e2 f3e2 f3e2 f3e2 f3e2 -12717 f3e3 f3e3 f3e3 * * 6850 8ea2e8d0,8ea2e8d0v 9d7d e9b5bd 9d7d 00009d7d f3e3 f3e3 f3e3 f3e3 f3e3 f3e3 f3e3 -12718 f3e4 f3e4 f3e4 * * 6851 8ea2e8d1,8ea2e8d1v 9d6b e9b5ab 9d6b 00009d6b f3e4 f3e4 f3e4 f3e4 f3e4 f3e4 f3e4 -12719 f3e5 f3e5 f3e5 * * 6852 8ea2e8d2,8ea2e8d2v 9d74 e9b5b4 9d74 00009d74 f3e5 f3e5 f3e5 f3e5 f3e5 f3e5 f3e5 -12720 f3e6 f3e6 f3e6 * * 6853 8ea2e8d3,8ea2e8d3v 9d75 e9b5b5 9d75 00009d75 f3e6 f3e6 f3e6 f3e6 f3e6 f3e6 f3e6 -12721 f3e7 f3e7 f3e7 * * 6854 8ea2e8d4,8ea2e8d4v 9d70 e9b5b0 9d70 00009d70 f3e7 f3e7 f3e7 f3e7 f3e7 f3e7 f3e7 -12722 f3e8 f3e8 f3e8 * * 6855 8ea2e8d5,8ea2e8d5v 9d69 e9b5a9 9d69 00009d69 f3e8 f3e8 f3e8 f3e8 f3e8 f3e8 f3e8 -12723 f3e9 f3e9 f3e9 * * 6856 8ea2e8d6,8ea2e8d6v 9d85 e9b685 9d85 00009d85 f3e9 f3e9 f3e9 f3e9 f3e9 f3e9 f3e9 -12724 f3ea f3ea f3ea * * 6857 8ea2e8d7,8ea2e8d7v 9d73 e9b5b3 9d73 00009d73 f3ea f3ea f3ea f3ea f3ea f3ea f3ea -12725 f3eb f3eb f3eb * * 6858 8ea2e8d8,8ea2e8d8v 9d7b e9b5bb 9d7b 00009d7b f3eb f3eb f3eb f3eb f3eb f3eb f3eb -12726 f3ec f3ec f3ec * * 6859 8ea2e8d9,8ea2e8d9v 9d82 e9b682 9d82 00009d82 f3ec f3ec f3ec f3ec f3ec f3ec f3ec -12727 f3ed f3ed f3ed * * 685a 8ea2e8da,8ea2e8dav 9d6f e9b5af 9d6f 00009d6f f3ed f3ed f3ed f3ed f3ed f3ed f3ed -12728 f3ee f3ee f3ee * * 685b 8ea2e8db,8ea2e8dbv 9d79 e9b5b9 9d79 00009d79 f3ee f3ee f3ee f3ee f3ee f3ee f3ee -12729 f3ef f3ef f3ef * * 685c 8ea2e8dc,8ea2e8dcv 9d7f e9b5bf 9d7f 00009d7f f3ef f3ef f3ef f3ef f3ef f3ef f3ef -12730 f3f0 f3f0 f3f0 * * 685d 8ea2e8dd,8ea2e8ddv 9d87 e9b687 9d87 00009d87 f3f0 f3f0 f3f0 f3f0 f3f0 f3f0 f3f0 -12731 f3f1 f3f1 f3f1 * * 685e 8ea2e8de,8ea2e8dev 9d68 e9b5a8 9d68 00009d68 f3f1 f3f1 f3f1 f3f1 f3f1 f3f1 f3f1 -12732 f3f2 f3f2 f3f2 * * 685f 8ea2e8df,8ea2e8dfv 9e94 e9ba94 9e94 00009e94 f3f2 f3f2 f3f2 f3f2 f3f2 f3f2 f3f2 -12733 f3f3 f3f3 f3f3 * * 6860 8ea2e8e0,8ea2e8e0v 9e91 e9ba91 9e91 00009e91 f3f3 f3f3 f3f3 f3f3 f3f3 f3f3 f3f3 -12734 f3f4 f3f4 f3f4 * * 6861 8ea2e8e1,8ea2e8e1v 9ec0 e9bb80 9ec0 00009ec0 f3f4 f3f4 f3f4 f3f4 f3f4 f3f4 f3f4 -12735 f3f5 f3f5 f3f5 * * 6862 8ea2e8e2,8ea2e8e2v 9efc e9bbbc 9efc 00009efc f3f5 f3f5 f3f5 f3f5 f3f5 f3f5 f3f5 -12736 f3f6 f3f6 f3f6 * * 6863 8ea2e8e3,8ea2e8e3v 9f2d e9bcad 9f2d 00009f2d f3f6 f3f6 f3f6 f3f6 f3f6 f3f6 f3f6 -12737 f3f7 f3f7 f3f7 * * 6864 8ea2e8e4,8ea2e8e4v 9f40 e9bd80 9f40 00009f40 f3f7 f3f7 f3f7 f3f7 f3f7 f3f7 f3f7 -12738 f3f8 f3f8 f3f8 * * 6865 8ea2e8e5,8ea2e8e5v 9f41 e9bd81 9f41 00009f41 f3f8 f3f8 f3f8 f3f8 f3f8 f3f8 f3f8 -12739 f3f9 f3f9 f3f9 * * 6866 8ea2e8e6,8ea2e8e6v 9f4d e9bd8d 9f4d 00009f4d f3f9 f3f9 f3f9 f3f9 f3f9 f3f9 f3f9 -12740 f3fa f3fa f3fa * * 6867 8ea2e8e7,8ea2e8e7v 9f56 e9bd96 9f56 00009f56 f3fa f3fa f3fa f3fa f3fa f3fa f3fa -12741 f3fb f3fb f3fb * * 6868 8ea2e8e8,8ea2e8e8v 9f57 e9bd97 9f57 00009f57 f3fb f3fb f3fb f3fb f3fb f3fb f3fb -12742 f3fc f3fc f3fc * * 6869 8ea2e8e9,8ea2e8e9v 9f58 e9bd98 9f58 00009f58 f3fc f3fc f3fc f3fc f3fc f3fc f3fc -12743 f3fd f3fd f3fd * * 686a 8ea2e8ea,8ea2e8eav 5337 e58cb7 5337 00005337 f3fd f3fd f3fd f3fd f3fd f3fd f3fd -12744 f3fe f3fe f3fe * * 686b 8ea2e8eb,8ea2e8ebv 56b2 e59ab2 56b2 000056b2 f3fe f3fe f3fe f3fe f3fe f3fe f3fe -12745 f440 f440 f440 * * 686c 8ea2e8ec,8ea2e8ecv 56b5 e59ab5 56b5 000056b5 f440 f440 f440 f440 f440 f440 f440 -12746 f441 f441 f441 * * 686d 8ea2e8ed,8ea2e8edv 56b3 e59ab3 56b3 000056b3 f441 f441 f441 f441 f441 f441 f441 -12747 f442 f442 f442 * * 686e 8ea2e8ee,8ea2e8eev 58e3 e5a3a3 58e3 000058e3 f442 f442 f442 f442 f442 f442 f442 -12748 f443 f443 f443 * * 686f 8ea2e8ef,8ea2e8efv 5b45 e5ad85 5b45 00005b45 f443 f443 f443 f443 f443 f443 f443 -12749 f444 f444 f444 * * 6870 8ea2e8f0,8ea2e8f0v 5dc6 e5b786 5dc6 00005dc6 f444 f444 f444 f444 f444 f444 f444 -12750 f445 f445 f445 * * 6871 8ea2e8f1,8ea2e8f1v 5dc7 e5b787 5dc7 00005dc7 f445 f445 f445 f445 f445 f445 f445 -12751 f446 f446 f446 * * 6872 8ea2e8f2,8ea2e8f2v 5eee e5bbae 5eee 00005eee f446 f446 f446 f446 f446 f446 f446 -12752 f447 f447 f447 * * 6873 8ea2e8f3,8ea2e8f3v 5eef e5bbaf 5eef 00005eef f447 f447 f447 f447 f447 f447 f447 -12753 f448 f448 f448 * * 6874 8ea2e8f4,8ea2e8f4v 5fc0 e5bf80 5fc0 00005fc0 f448 f448 f448 f448 f448 f448 f448 -12754 f449 f449 f449 * * 6875 8ea2e8f5,8ea2e8f5v 5fc1 e5bf81 5fc1 00005fc1 f449 f449 f449 f449 f449 f449 f449 -12755 f44a f44a f44a * * 6876 8ea2e8f6,8ea2e8f6v 61f9 e687b9 61f9 000061f9 f44a f44a f44a f44a f44a f44a f44a -12756 f44b f44b f44b * * 6877 8ea2e8f7,8ea2e8f7v 6517 e69497 6517 00006517 f44b f44b f44b f44b f44b f44b f44b -12757 f44c f44c f44c * * 6878 8ea2e8f8,8ea2e8f8v 6516 e69496 6516 00006516 f44c f44c f44c f44c f44c f44c f44c -12758 f44d f44d f44d * * 6879 8ea2e8f9,8ea2e8f9v 6515 e69495 6515 00006515 f44d f44d f44d f44d f44d f44d f44d -12759 f44e f44e f44e * * 687a 8ea2e8fa,8ea2e8fav 6513 e69493 6513 00006513 f44e f44e f44e f44e f44e f44e f44e -12760 f44f f44f f44f * * 687b 8ea2e8fb,8ea2e8fbv 65df e6979f 65df 000065df f44f f44f f44f f44f f44f f44f f44f -12761 f450 f450 f450 * * 687c 8ea2e8fc,8ea2e8fcv 66e8 e69ba8 66e8 000066e8 f450 f450 f450 f450 f450 f450 f450 -12762 f451 f451 f451 * * 687d 8ea2e8fd,8ea2e8fdv 66e3 e69ba3 66e3 000066e3 f451 f451 f451 f451 f451 f451 f451 -12763 f452 f452 f452 * * 687e 8ea2e8fe,8ea2e8fev 66e4 e69ba4 66e4 000066e4 f452 f452 f452 f452 f452 f452 f452 -12764 f453 f453 f453 * * 6921 8ea2e9a1,8ea2e9a1v 6af3 e6abb3 6af3 00006af3 f453 f453 f453 f453 f453 f453 f453 -12765 f454 f454 f454 * * 6922 8ea2e9a2,8ea2e9a2v 6af0 e6abb0 6af0 00006af0 f454 f454 f454 f454 f454 f454 f454 -12766 f455 f455 f455 * * 6923 8ea2e9a3,8ea2e9a3v 6aea e6abaa 6aea 00006aea f455 f455 f455 f455 f455 f455 f455 -12767 f456 f456 f456 * * 6924 8ea2e9a4,8ea2e9a4v 6ae8 e6aba8 6ae8 00006ae8 f456 f456 f456 f456 f456 f456 f456 -12768 f457 f457 f457 * * 6925 8ea2e9a5,8ea2e9a5v 6af9 e6abb9 6af9 00006af9 f457 f457 f457 f457 f457 f457 f457 -12769 f458 f458 f458 * * 6926 8ea2e9a6,8ea2e9a6v 6af1 e6abb1 6af1 00006af1 f458 f458 f458 f458 f458 f458 f458 -12770 f459 f459 f459 * * 6927 8ea2e9a7,8ea2e9a7v 6aee e6abae 6aee 00006aee f459 f459 f459 f459 f459 f459 f459 -12771 f45a f45a f45a * * 6928 8ea2e9a8,8ea2e9a8v 6aef e6abaf 6aef 00006aef f45a f45a f45a f45a f45a f45a f45a -12772 f45b f45b f45b * * 6929 8ea2e9a9,8ea2e9a9v 703c e780bc 703c 0000703c f45b f45b f45b f45b f45b f45b f45b -12773 f45c f45c f45c * * 692a 8ea2e9aa,8ea2e9aav 7035 e780b5 7035 00007035 f45c f45c f45c f45c f45c f45c f45c -12774 f45d f45d f45d * * 692b 8ea2e9ab,8ea2e9abv 702f e780af 702f 0000702f f45d f45d f45d f45d f45d f45d f45d -12775 f45e f45e f45e * * 692c 8ea2e9ac,8ea2e9acv 7037 e780b7 7037 00007037 f45e f45e f45e f45e f45e f45e f45e -12776 f45f f45f f45f * * 692d 8ea2e9ad,8ea2e9adv 7034 e780b4 7034 00007034 f45f f45f f45f f45f f45f f45f f45f -12777 f460 f460 f460 * * 692e 8ea2e9ae,8ea2e9aev 7031 e780b1 7031 00007031 f460 f460 f460 f460 f460 f460 f460 -12778 f461 f461 f461 * * 692f 8ea2e9af,8ea2e9afv 7042 e78182 7042 00007042 f461 f461 f461 f461 f461 f461 f461 -12779 f462 f462 f462 * * 6930 8ea2e9b0,8ea2e9b0v 7038 e780b8 7038 00007038 f462 f462 f462 f462 f462 f462 f462 -12780 f463 f463 f463 * * 6931 8ea2e9b1,8ea2e9b1v 703f e780bf 703f 0000703f f463 f463 f463 f463 f463 f463 f463 -12781 f464 f464 f464 * * 6932 8ea2e9b2,8ea2e9b2v 703a e780ba 703a 0000703a f464 f464 f464 f464 f464 f464 f464 -12782 f465 f465 f465 * * 6933 8ea2e9b3,8ea2e9b3v 7039 e780b9 7039 00007039 f465 f465 f465 f465 f465 f465 f465 -12783 f268 f268 f268 * * 6934 8ea2e9b4,8ea2e9b4v 702a e780aa 702a 0000702a f268 f268 f268 f268 f268 f268 f268 -12784 f466 f466 f466 * * 6935 8ea2e9b5,8ea2e9b5v 7040 e78180 7040 00007040 f466 f466 f466 f466 f466 f466 f466 -12785 f467 f467 f467 * * 6936 8ea2e9b6,8ea2e9b6v 703b e780bb 703b 0000703b f467 f467 f467 f467 f467 f467 f467 -12786 f468 f468 f468 * * 6937 8ea2e9b7,8ea2e9b7v 7033 e780b3 7033 00007033 f468 f468 f468 f468 f468 f468 f468 -12787 f469 f469 f469 * * 6938 8ea2e9b8,8ea2e9b8v 7041 e78181 7041 00007041 f469 f469 f469 f469 f469 f469 f469 -12788 f46a f46a f46a * * 6939 8ea2e9b9,8ea2e9b9v 7213 e78893 7213 00007213 f46a f46a f46a f46a f46a f46a f46a -12789 f46b f46b f46b * * 693a 8ea2e9ba,8ea2e9bav 7214 e78894 7214 00007214 f46b f46b f46b f46b f46b f46b f46b -12790 f46c f46c f46c * * 693b 8ea2e9bb,8ea2e9bbv 72a8 e78aa8 72a8 000072a8 f46c f46c f46c f46c f46c f46c f46c -12791 f46d f46d f46d * * 693c 8ea2e9bc,8ea2e9bcv 737d e78dbd 737d 0000737d f46d f46d f46d f46d f46d f46d f46d -12792 f46e f46e f46e * * 693d 8ea2e9bd,8ea2e9bdv 737c e78dbc 737c 0000737c f46e f46e f46e f46e f46e f46e f46e -12793 f46f f46f f46f * * 693e 8ea2e9be,8ea2e9bev 74ba e792ba 74ba 000074ba f46f f46f f46f f46f f46f f46f f46f -12794 f470 f470 f470 * * 693f 8ea2e9bf,8ea2e9bfv 76ab e79aab 76ab 000076ab f470 f470 f470 f470 f470 f470 f470 -12795 f471 f471 f471 * * 6940 8ea2e9c0,8ea2e9c0v 76aa e79aaa 76aa 000076aa f471 f471 f471 f471 f471 f471 f471 -12796 f472 f472 f472 * * 6941 8ea2e9c1,8ea2e9c1v 76be e79abe 76be 000076be f472 f472 f472 f472 f472 f472 f472 -12797 f473 f473 f473 * * 6942 8ea2e9c2,8ea2e9c2v 76ed e79bad 76ed 000076ed f473 f473 f473 f473 f473 f473 f473 -12798 f474 f474 f474 * * 6943 8ea2e9c3,8ea2e9c3v 77cc e79f8c 77cc 000077cc f474 f474 f474 f474 f474 f474 f474 -12799 f475 f475 f475 * * 6944 8ea2e9c4,8ea2e9c4v 77ce e79f8e 77ce 000077ce f475 f475 f475 f475 f475 f475 f475 -12800 f476 f476 f476 * * 6945 8ea2e9c5,8ea2e9c5v 77cf e79f8f 77cf 000077cf f476 f476 f476 f476 f476 f476 f476 -12801 f477 f477 f477 * * 6946 8ea2e9c6,8ea2e9c6v 77cd e79f8d 77cd 000077cd f477 f477 f477 f477 f477 f477 f477 -12802 f478 f478 f478 * * 6947 8ea2e9c7,8ea2e9c7v 77f2 e79fb2 77f2 000077f2 f478 f478 f478 f478 f478 f478 f478 -12803 f479 f479 f479 * * 6948 8ea2e9c8,8ea2e9c8v 7925 e7a4a5 7925 00007925 f479 f479 f479 f479 f479 f479 f479 -12804 f47a f47a f47a * * 6949 8ea2e9c9,8ea2e9c9v 7923 e7a4a3 7923 00007923 f47a f47a f47a f47a f47a f47a f47a -12805 f47b f47b f47b * * 694a 8ea2e9ca,8ea2e9cav 7927 e7a4a7 7927 00007927 f47b f47b f47b f47b f47b f47b f47b -12806 f47c f47c f47c * * 694b 8ea2e9cb,8ea2e9cbv 7928 e7a4a8 7928 00007928 f47c f47c f47c f47c f47c f47c f47c -12807 f47d f47d f47d * * 694c 8ea2e9cc,8ea2e9ccv 7924 e7a4a4 7924 00007924 f47d f47d f47d f47d f47d f47d f47d -12808 f47e f47e f47e * * 694d 8ea2e9cd,8ea2e9cdv 7929 e7a4a9 7929 00007929 f47e f47e f47e f47e f47e f47e f47e -12809 f4a1 f4a1 f4a1 * * 694e 8ea2e9ce,8ea2e9cev 79b2 e7a6b2 79b2 000079b2 f4a1 f4a1 f4a1 f4a1 f4a1 f4a1 f4a1 -12810 f4a2 f4a2 f4a2 * * 694f 8ea2e9cf,8ea2e9cfv 7a6e e7a9ae 7a6e 00007a6e f4a2 f4a2 f4a2 f4a2 f4a2 f4a2 f4a2 -12811 f4a3 f4a3 f4a3 * * 6950 8ea2e9d0,8ea2e9d0v 7a6c e7a9ac 7a6c 00007a6c f4a3 f4a3 f4a3 f4a3 f4a3 f4a3 f4a3 -12812 f4a4 f4a4 f4a4 * * 6951 8ea2e9d1,8ea2e9d1v 7a6d e7a9ad 7a6d 00007a6d f4a4 f4a4 f4a4 f4a4 f4a4 f4a4 f4a4 -12813 f4a5 f4a5 f4a5 * * 6952 8ea2e9d2,8ea2e9d2v 7af7 e7abb7 7af7 00007af7 f4a5 f4a5 f4a5 f4a5 f4a5 f4a5 f4a5 -12814 f4a6 f4a6 f4a6 * * 6953 8ea2e9d3,8ea2e9d3v 7c49 e7b189 7c49 00007c49 f4a6 f4a6 f4a6 f4a6 f4a6 f4a6 f4a6 -12815 f4a7 f4a7 f4a7 * * 6954 8ea2e9d4,8ea2e9d4v 7c48 e7b188 7c48 00007c48 f4a7 f4a7 f4a7 f4a7 f4a7 f4a7 f4a7 -12816 f4a8 f4a8 f4a8 * * 6955 8ea2e9d5,8ea2e9d5v 7c4a e7b18a 7c4a 00007c4a f4a8 f4a8 f4a8 f4a8 f4a8 f4a8 f4a8 -12817 f4a9 f4a9 f4a9 * * 6956 8ea2e9d6,8ea2e9d6v 7c47 e7b187 7c47 00007c47 f4a9 f4a9 f4a9 f4a9 f4a9 f4a9 f4a9 -12818 f4aa f4aa f4aa * * 6957 8ea2e9d7,8ea2e9d7v 7c45 e7b185 7c45 00007c45 f4aa f4aa f4aa f4aa f4aa f4aa f4aa -12819 f4ab f4ab f4ab * * 6958 8ea2e9d8,8ea2e9d8v 7cee e7b3ae 7cee 00007cee f4ab f4ab f4ab f4ab f4ab f4ab f4ab -12820 f4ac f4ac f4ac * * 6959 8ea2e9d9,8ea2e9d9v 7e7b e7b9bb 7e7b 00007e7b f4ac f4ac f4ac f4ac f4ac f4ac f4ac -12821 f4ad f4ad f4ad * * 695a 8ea2e9da,8ea2e9dav 7e7e e7b9be 7e7e 00007e7e f4ad f4ad f4ad f4ad f4ad f4ad f4ad -12822 f4ae f4ae f4ae * * 695b 8ea2e9db,8ea2e9dbv 7e81 e7ba81 7e81 00007e81 f4ae f4ae f4ae f4ae f4ae f4ae f4ae -12823 f4af f4af f4af * * 695c 8ea2e9dc,8ea2e9dcv 7e80 e7ba80 7e80 00007e80 f4af f4af f4af f4af f4af f4af f4af -12824 f4b0 f4b0 f4b0 * * 695d 8ea2e9dd,8ea2e9ddv 7fba e7beba 7fba 00007fba f4b0 f4b0 f4b0 f4b0 f4b0 f4b0 f4b0 -12825 f4b1 f4b1 f4b1 * * 695e 8ea2e9de,8ea2e9dev 7fff e7bfbf 7fff 00007fff f4b1 f4b1 f4b1 f4b1 f4b1 f4b1 f4b1 -12826 f4b2 f4b2 f4b2 * * 695f 8ea2e9df,8ea2e9dfv 8079 e881b9 8079 00008079 f4b2 f4b2 f4b2 f4b2 f4b2 f4b2 f4b2 -12827 f4b3 f4b3 f4b3 * * 6960 8ea2e9e0,8ea2e9e0v 81db e8879b 81db 000081db f4b3 f4b3 f4b3 f4b3 f4b3 f4b3 f4b3 -12828 f4b4 f4b4 f4b4 * * 6961 8ea2e9e1,8ea2e9e1v 81d9 e88799 81d9 000081d9 f4b4 f4b4 f4b4 f4b4 f4b4 f4b4 f4b4 -12829 f4b6 f4b6 f4b6 * * 6962 8ea2e9e2,8ea2e9e2v 8268 e889a8 8268 00008268 f4b6 f4b6 f4b6 f4b6 f4b6 f4b6 f4b6 -12830 f4b7 f4b7 f4b7 * * 6963 8ea2e9e3,8ea2e9e3v 8269 e889a9 8269 00008269 f4b7 f4b7 f4b7 f4b7 f4b7 f4b7 f4b7 -12831 f4b8 f4b8 f4b8 * * 6964 8ea2e9e4,8ea2e9e4v 8622 e898a2 8622 00008622 f4b8 f4b8 f4b8 f4b8 f4b8 f4b8 f4b8 -12832 f4b9 f4b9 f4b9 * * 6965 8ea2e9e5,8ea2e9e5v 85ff e897bf 85ff 000085ff f4b9 f4b9 f4b9 f4b9 f4b9 f4b9 f4b9 -12833 f4ba f4ba f4ba * * 6966 8ea2e9e6,8ea2e9e6v 8601 e89881 8601 00008601 f4ba f4ba f4ba f4ba f4ba f4ba f4ba -12834 f4bb f4bb f4bb * * 6967 8ea2e9e7,8ea2e9e7v 85fe e897be 85fe 000085fe f4bb f4bb f4bb f4bb f4bb f4bb f4bb -12835 f4bc f4bc f4bc * * 6968 8ea2e9e8,8ea2e9e8v 861b e8989b 861b 0000861b f4bc f4bc f4bc f4bc f4bc f4bc f4bc -12836 f4bd f4bd f4bd * * 6969 8ea2e9e9,8ea2e9e9v 8600 e89880 8600 00008600 f4bd f4bd f4bd f4bd f4bd f4bd f4bd -12837 f4be f4be f4be * * 696a 8ea2e9ea,8ea2e9eav 85f6 e897b6 85f6 000085f6 f4be f4be f4be f4be f4be f4be f4be -12838 f4bf f4bf f4bf * * 696b 8ea2e9eb,8ea2e9ebv 8604 e89884 8604 00008604 f4bf f4bf f4bf f4bf f4bf f4bf f4bf -12839 f4c0 f4c0 f4c0 * * 696c 8ea2e9ec,8ea2e9ecv 8609 e89889 8609 00008609 f4c0 f4c0 f4c0 f4c0 f4c0 f4c0 f4c0 -12840 f4c1 f4c1 f4c1 * * 696d 8ea2e9ed,8ea2e9edv 8605 e89885 8605 00008605 f4c1 f4c1 f4c1 f4c1 f4c1 f4c1 f4c1 -12841 f4c2 f4c2 f4c2 * * 696e 8ea2e9ee,8ea2e9eev 860c e8988c 860c 0000860c f4c2 f4c2 f4c2 f4c2 f4c2 f4c2 f4c2 -12842 f4c3 f4c3 f4c3 * * 696f 8ea2e9ef,8ea2e9efv 85fd e897bd 85fd 000085fd f4c3 f4c3 f4c3 f4c3 f4c3 f4c3 f4c3 -12843 f4c4 f4c4 f4c4 * * 6970 8ea2e9f0,8ea2e9f0v 8819 e8a099 8819 00008819 f4c4 f4c4 f4c4 f4c4 f4c4 f4c4 f4c4 -12844 f4c5 f4c5 f4c5 * * 6971 8ea2e9f1,8ea2e9f1v 8810 e8a090 8810 00008810 f4c5 f4c5 f4c5 f4c5 f4c5 f4c5 f4c5 -12845 f4c6 f4c6 f4c6 * * 6972 8ea2e9f2,8ea2e9f2v 8811 e8a091 8811 00008811 f4c6 f4c6 f4c6 f4c6 f4c6 f4c6 f4c6 -12846 f4c7 f4c7 f4c7 * * 6973 8ea2e9f3,8ea2e9f3v 8817 e8a097 8817 00008817 f4c7 f4c7 f4c7 f4c7 f4c7 f4c7 f4c7 -12847 f4c8 f4c8 f4c8 * * 6974 8ea2e9f4,8ea2e9f4v 8813 e8a093 8813 00008813 f4c8 f4c8 f4c8 f4c8 f4c8 f4c8 f4c8 -12848 f4c9 f4c9 f4c9 * * 6975 8ea2e9f5,8ea2e9f5v 8816 e8a096 8816 00008816 f4c9 f4c9 f4c9 f4c9 f4c9 f4c9 f4c9 -12849 f4ca f4ca f4ca * * 6976 8ea2e9f6,8ea2e9f6v 8963 e8a5a3 8963 00008963 f4ca f4ca f4ca f4ca f4ca f4ca f4ca -12850 f4cb f4cb f4cb * * 6977 8ea2e9f7,8ea2e9f7v 8966 e8a5a6 8966 00008966 f4cb f4cb f4cb f4cb f4cb f4cb f4cb -12851 f4cc f4cc f4cc * * 6978 8ea2e9f8,8ea2e9f8v 89b9 e8a6b9 89b9 000089b9 f4cc f4cc f4cc f4cc f4cc f4cc f4cc -12852 f4cd f4cd f4cd * * 6979 8ea2e9f9,8ea2e9f9v 89f7 e8a7b7 89f7 000089f7 f4cd f4cd f4cd f4cd f4cd f4cd f4cd -12853 f4ce f4ce f4ce * * 697a 8ea2e9fa,8ea2e9fav 8b60 e8ada0 8b60 00008b60 f4ce f4ce f4ce f4ce f4ce f4ce f4ce -12854 f4cf f4cf f4cf * * 697b 8ea2e9fb,8ea2e9fbv 8b6a e8adaa 8b6a 00008b6a f4cf f4cf f4cf f4cf f4cf f4cf f4cf -12855 f4d0 f4d0 f4d0 * * 697c 8ea2e9fc,8ea2e9fcv 8b5d e8ad9d 8b5d 00008b5d f4d0 f4d0 f4d0 f4d0 f4d0 f4d0 f4d0 -12856 f4d1 f4d1 f4d1 * * 697d 8ea2e9fd,8ea2e9fdv 8b68 e8ada8 8b68 00008b68 f4d1 f4d1 f4d1 f4d1 f4d1 f4d1 f4d1 -12857 f4d2 f4d2 f4d2 * * 697e 8ea2e9fe,8ea2e9fev 8b63 e8ada3 8b63 00008b63 f4d2 f4d2 f4d2 f4d2 f4d2 f4d2 f4d2 -12858 f4d3 f4d3 f4d3 * * 6a21 8ea2eaa1,8ea2eaa1v 8b65 e8ada5 8b65 00008b65 f4d3 f4d3 f4d3 f4d3 f4d3 f4d3 f4d3 -12859 f4d4 f4d4 f4d4 * * 6a22 8ea2eaa2,8ea2eaa2v 8b67 e8ada7 8b67 00008b67 f4d4 f4d4 f4d4 f4d4 f4d4 f4d4 f4d4 -12860 f4d5 f4d5 f4d5 * * 6a23 8ea2eaa3,8ea2eaa3v 8b6d e8adad 8b6d 00008b6d f4d5 f4d5 f4d5 f4d5 f4d5 f4d5 f4d5 -12861 f4d6 f4d6 f4d6 * * 6a24 8ea2eaa4,8ea2eaa4v 8dae e8b6ae 8dae 00008dae f4d6 f4d6 f4d6 f4d6 f4d6 f4d6 f4d6 -12862 f4d7 f4d7 f4d7 * * 6a25 8ea2eaa5,8ea2eaa5v 8e86 e8ba86 8e86 00008e86 f4d7 f4d7 f4d7 f4d7 f4d7 f4d7 f4d7 -12863 f4d8 f4d8 f4d8 * * 6a26 8ea2eaa6,8ea2eaa6v 8e88 e8ba88 8e88 00008e88 f4d8 f4d8 f4d8 f4d8 f4d8 f4d8 f4d8 -12864 f4d9 f4d9 f4d9 * * 6a27 8ea2eaa7,8ea2eaa7v 8e84 e8ba84 8e84 00008e84 f4d9 f4d9 f4d9 f4d9 f4d9 f4d9 f4d9 -12865 f4da f4da f4da * * 6a28 8ea2eaa8,8ea2eaa8v 8f59 e8bd99 8f59 00008f59 f4da f4da f4da f4da f4da f4da f4da -12866 f4db f4db f4db * * 6a29 8ea2eaa9,8ea2eaa9v 8f56 e8bd96 8f56 00008f56 f4db f4db f4db f4db f4db f4db f4db -12867 f4dc f4dc f4dc * * 6a2a 8ea2eaaa,8ea2eaaav 8f57 e8bd97 8f57 00008f57 f4dc f4dc f4dc f4dc f4dc f4dc f4dc -12868 f4dd f4dd f4dd * * 6a2b 8ea2eaab,8ea2eaabv 8f55 e8bd95 8f55 00008f55 f4dd f4dd f4dd f4dd f4dd f4dd f4dd -12869 f4de f4de f4de * * 6a2c 8ea2eaac,8ea2eaacv 8f58 e8bd98 8f58 00008f58 f4de f4de f4de f4de f4de f4de f4de -12870 f4df f4df f4df * * 6a2d 8ea2eaad,8ea2eaadv 8f5a e8bd9a 8f5a 00008f5a f4df f4df f4df f4df f4df f4df f4df -12871 f4e0 f4e0 f4e0 * * 6a2e 8ea2eaae,8ea2eaaev 908d e9828d 908d 0000908d f4e0 f4e0 f4e0 f4e0 f4e0 f4e0 f4e0 -12872 f4e1 f4e1 f4e1 * * 6a2f 8ea2eaaf,8ea2eaafv 9143 e98583 9143 00009143 f4e1 f4e1 f4e1 f4e1 f4e1 f4e1 f4e1 -12873 f4e2 f4e2 f4e2 * * 6a30 8ea2eab0,8ea2eab0v 9141 e98581 9141 00009141 f4e2 f4e2 f4e2 f4e2 f4e2 f4e2 f4e2 -12874 f4e3 f4e3 f4e3 * * 6a31 8ea2eab1,8ea2eab1v 91b7 e986b7 91b7 000091b7 f4e3 f4e3 f4e3 f4e3 f4e3 f4e3 f4e3 -12875 f4e4 f4e4 f4e4 * * 6a32 8ea2eab2,8ea2eab2v 91b5 e986b5 91b5 000091b5 f4e4 f4e4 f4e4 f4e4 f4e4 f4e4 f4e4 -12876 f4e5 f4e5 f4e5 * * 6a33 8ea2eab3,8ea2eab3v 91b2 e986b2 91b2 000091b2 f4e5 f4e5 f4e5 f4e5 f4e5 f4e5 f4e5 -12877 f4e6 f4e6 f4e6 * * 6a34 8ea2eab4,8ea2eab4v 91b3 e986b3 91b3 000091b3 f4e6 f4e6 f4e6 f4e6 f4e6 f4e6 f4e6 -12878 f4e7 f4e7 f4e7 * * 6a35 8ea2eab5,8ea2eab5v 940b e9908b 940b 0000940b f4e7 f4e7 f4e7 f4e7 f4e7 f4e7 f4e7 -12879 f4e8 f4e8 f4e8 * * 6a36 8ea2eab6,8ea2eab6v 9413 e99093 9413 00009413 f4e8 f4e8 f4e8 f4e8 f4e8 f4e8 f4e8 -12880 f4e9 f4e9 f4e9 * * 6a37 8ea2eab7,8ea2eab7v 93fb e98fbb 93fb 000093fb f4e9 f4e9 f4e9 f4e9 f4e9 f4e9 f4e9 -12881 f4ea f4ea f4ea * * 6a38 8ea2eab8,8ea2eab8v 9420 e990a0 9420 00009420 f4ea f4ea f4ea f4ea f4ea f4ea f4ea -12882 f4eb f4eb f4eb * * 6a39 8ea2eab9,8ea2eab9v 940f e9908f 940f 0000940f f4eb f4eb f4eb f4eb f4eb f4eb f4eb -12883 f4ec f4ec f4ec * * 6a3a 8ea2eaba,8ea2eabav 9414 e99094 9414 00009414 f4ec f4ec f4ec f4ec f4ec f4ec f4ec -12884 f4ed f4ed f4ed * * 6a3b 8ea2eabb,8ea2eabbv 93fe e98fbe 93fe 000093fe f4ed f4ed f4ed f4ed f4ed f4ed f4ed -12885 f4ee f4ee f4ee * * 6a3c 8ea2eabc,8ea2eabcv 9415 e99095 9415 00009415 f4ee f4ee f4ee f4ee f4ee f4ee f4ee -12886 f4ef f4ef f4ef * * 6a3d 8ea2eabd,8ea2eabdv 9410 e99090 9410 00009410 f4ef f4ef f4ef f4ef f4ef f4ef f4ef -12887 f4f0 f4f0 f4f0 * * 6a3e 8ea2eabe,8ea2eabev 9428 e990a8 9428 00009428 f4f0 f4f0 f4f0 f4f0 f4f0 f4f0 f4f0 -12888 f4f1 f4f1 f4f1 * * 6a3f 8ea2eabf,8ea2eabfv 9419 e99099 9419 00009419 f4f1 f4f1 f4f1 f4f1 f4f1 f4f1 f4f1 -12889 f4f2 f4f2 f4f2 * * 6a40 8ea2eac0,8ea2eac0v 940d e9908d 940d 0000940d f4f2 f4f2 f4f2 f4f2 f4f2 f4f2 f4f2 -12890 f4f3 f4f3 f4f3 * * 6a41 8ea2eac1,8ea2eac1v 93f5 e98fb5 93f5 000093f5 f4f3 f4f3 f4f3 f4f3 f4f3 f4f3 f4f3 -12891 f4f4 f4f4 f4f4 * * 6a42 8ea2eac2,8ea2eac2v 9400 e99080 9400 00009400 f4f4 f4f4 f4f4 f4f4 f4f4 f4f4 f4f4 -12892 f4f5 f4f5 f4f5 * * 6a43 8ea2eac3,8ea2eac3v 93f7 e98fb7 93f7 000093f7 f4f5 f4f5 f4f5 f4f5 f4f5 f4f5 f4f5 -12893 f4f6 f4f6 f4f6 * * 6a44 8ea2eac4,8ea2eac4v 9407 e99087 9407 00009407 f4f6 f4f6 f4f6 f4f6 f4f6 f4f6 f4f6 -12894 f4f7 f4f7 f4f7 * * 6a45 8ea2eac5,8ea2eac5v 940e e9908e 940e 0000940e f4f7 f4f7 f4f7 f4f7 f4f7 f4f7 f4f7 -12895 f4f8 f4f8 f4f8 * * 6a46 8ea2eac6,8ea2eac6v 9416 e99096 9416 00009416 f4f8 f4f8 f4f8 f4f8 f4f8 f4f8 f4f8 -12896 f4f9 f4f9 f4f9 * * 6a47 8ea2eac7,8ea2eac7v 9412 e99092 9412 00009412 f4f9 f4f9 f4f9 f4f9 f4f9 f4f9 f4f9 -12897 f4fa f4fa f4fa * * 6a48 8ea2eac8,8ea2eac8v 93fa e98fba 93fa 000093fa f4fa f4fa f4fa f4fa f4fa f4fa f4fa -12898 f4fb f4fb f4fb * * 6a49 8ea2eac9,8ea2eac9v 9409 e99089 9409 00009409 f4fb f4fb f4fb f4fb f4fb f4fb f4fb -12899 f4fc f4fc f4fc * * 6a4a 8ea2eaca,8ea2eacav 93f8 e98fb8 93f8 000093f8 f4fc f4fc f4fc f4fc f4fc f4fc f4fc -12900 f663 f663 f663 * * 6a4b 8ea2eacb,8ea2eacbv 943c e990bc 943c 0000943c f663 f663 f663 f663 f663 f663 f663 -12901 f4fd f4fd f4fd * * 6a4c 8ea2eacc,8ea2eaccv 940a e9908a 940a 0000940a f4fd f4fd f4fd f4fd f4fd f4fd f4fd -12902 f4fe f4fe f4fe * * 6a4d 8ea2eacd,8ea2eacdv 93ff e98fbf 93ff 000093ff f4fe f4fe f4fe f4fe f4fe f4fe f4fe -12903 f540 f540 f540 * * 6a4e 8ea2eace,8ea2eacev 93fc e98fbc 93fc 000093fc f540 f540 f540 f540 f540 f540 f540 -12904 f541 f541 f541 * * 6a4f 8ea2eacf,8ea2eacfv 940c e9908c 940c 0000940c f541 f541 f541 f541 f541 f541 f541 -12905 f542 f542 f542 * * 6a50 8ea2ead0,8ea2ead0v 93f6 e98fb6 93f6 000093f6 f542 f542 f542 f542 f542 f542 f542 -12906 f543 f543 f543 * * 6a51 8ea2ead1,8ea2ead1v 9411 e99091 9411 00009411 f543 f543 f543 f543 f543 f543 f543 -12907 f544 f544 f544 * * 6a52 8ea2ead2,8ea2ead2v 9406 e99086 9406 00009406 f544 f544 f544 f544 f544 f544 f544 -12908 f545 f545 f545 * * 6a53 8ea2ead3,8ea2ead3v 95de e9979e 95de 000095de f545 f545 f545 f545 f545 f545 f545 -12909 f546 f546 f546 * * 6a54 8ea2ead4,8ea2ead4v 95e0 e997a0 95e0 000095e0 f546 f546 f546 f546 f546 f546 f546 -12910 f547 f547 f547 * * 6a55 8ea2ead5,8ea2ead5v 95df e9979f 95df 000095df f547 f547 f547 f547 f547 f547 f547 -12911 f548 f548 f548 * * 6a56 8ea2ead6,8ea2ead6v 972e e99cae 972e 0000972e f548 f548 f548 f548 f548 f548 f548 -12912 f549 f549 f549 * * 6a57 8ea2ead7,8ea2ead7v 972f e99caf 972f 0000972f f549 f549 f549 f549 f549 f549 f549 -12913 f54a f54a f54a * * 6a58 8ea2ead8,8ea2ead8v 97b9 e99eb9 97b9 000097b9 f54a f54a f54a f54a f54a f54a f54a -12914 f54b f54b f54b * * 6a59 8ea2ead9,8ea2ead9v 97bb e99ebb 97bb 000097bb f54b f54b f54b f54b f54b f54b f54b -12915 f54c f54c f54c * * 6a5a 8ea2eada,8ea2eadav 97fd e99fbd 97fd 000097fd f54c f54c f54c f54c f54c f54c f54c -12916 f54d f54d f54d * * 6a5b 8ea2eadb,8ea2eadbv 97fe e99fbe 97fe 000097fe f54d f54d f54d f54d f54d f54d f54d -12917 f54e f54e f54e * * 6a5c 8ea2eadc,8ea2eadcv 9860 e9a1a0 9860 00009860 f54e f54e f54e f54e f54e f54e f54e -12918 f54f f54f f54f * * 6a5d 8ea2eadd,8ea2eaddv 9862 e9a1a2 9862 00009862 f54f f54f f54f f54f f54f f54f f54f -12919 f550 f550 f550 * * 6a5e 8ea2eade,8ea2eadev 9863 e9a1a3 9863 00009863 f550 f550 f550 f550 f550 f550 f550 -12920 f551 f551 f551 * * 6a5f 8ea2eadf,8ea2eadfv 985f e9a19f 985f 0000985f f551 f551 f551 f551 f551 f551 f551 -12921 f552 f552 f552 * * 6a60 8ea2eae0,8ea2eae0v 98c1 e9a381 98c1 000098c1 f552 f552 f552 f552 f552 f552 f552 -12922 f553 f553 f553 * * 6a61 8ea2eae1,8ea2eae1v 98c2 e9a382 98c2 000098c2 f553 f553 f553 f553 f553 f553 f553 -12923 f554 f554 f554 * * 6a62 8ea2eae2,8ea2eae2v 9950 e9a590 9950 00009950 f554 f554 f554 f554 f554 f554 f554 -12924 f555 f555 f555 * * 6a63 8ea2eae3,8ea2eae3v 994e e9a58e 994e 0000994e f555 f555 f555 f555 f555 f555 f555 -12925 f556 f556 f556 * * 6a64 8ea2eae4,8ea2eae4v 9959 e9a599 9959 00009959 f556 f556 f556 f556 f556 f556 f556 -12926 f557 f557 f557 * * 6a65 8ea2eae5,8ea2eae5v 994c e9a58c 994c 0000994c f557 f557 f557 f557 f557 f557 f557 -12927 f558 f558 f558 * * 6a66 8ea2eae6,8ea2eae6v 994b e9a58b 994b 0000994b f558 f558 f558 f558 f558 f558 f558 -12928 f559 f559 f559 * * 6a67 8ea2eae7,8ea2eae7v 9953 e9a593 9953 00009953 f559 f559 f559 f559 f559 f559 f559 -12929 f55a f55a f55a * * 6a68 8ea2eae8,8ea2eae8v 9a32 e9a8b2 9a32 00009a32 f55a f55a f55a f55a f55a f55a f55a -12930 f55b f55b f55b * * 6a69 8ea2eae9,8ea2eae9v 9a34 e9a8b4 9a34 00009a34 f55b f55b f55b f55b f55b f55b f55b -12931 f55c f55c f55c * * 6a6a 8ea2eaea,8ea2eaeav 9a31 e9a8b1 9a31 00009a31 f55c f55c f55c f55c f55c f55c f55c -12932 f55d f55d f55d * * 6a6b 8ea2eaeb,8ea2eaebv 9a2c e9a8ac 9a2c 00009a2c f55d f55d f55d f55d f55d f55d f55d -12933 f55e f55e f55e * * 6a6c 8ea2eaec,8ea2eaecv 9a2a e9a8aa 9a2a 00009a2a f55e f55e f55e f55e f55e f55e f55e -12934 f55f f55f f55f * * 6a6d 8ea2eaed,8ea2eaedv 9a36 e9a8b6 9a36 00009a36 f55f f55f f55f f55f f55f f55f f55f -12935 f560 f560 f560 * * 6a6e 8ea2eaee,8ea2eaeev 9a29 e9a8a9 9a29 00009a29 f560 f560 f560 f560 f560 f560 f560 -12936 f561 f561 f561 * * 6a6f 8ea2eaef,8ea2eaefv 9a2e e9a8ae 9a2e 00009a2e f561 f561 f561 f561 f561 f561 f561 -12937 f562 f562 f562 * * 6a70 8ea2eaf0,8ea2eaf0v 9a38 e9a8b8 9a38 00009a38 f562 f562 f562 f562 f562 f562 f562 -12938 f563 f563 f563 * * 6a71 8ea2eaf1,8ea2eaf1v 9a2d e9a8ad 9a2d 00009a2d f563 f563 f563 f563 f563 f563 f563 -12939 f564 f564 f564 * * 6a72 8ea2eaf2,8ea2eaf2v 9ac7 e9ab87 9ac7 00009ac7 f564 f564 f564 f564 f564 f564 f564 -12940 f565 f565 f565 * * 6a73 8ea2eaf3,8ea2eaf3v 9aca e9ab8a 9aca 00009aca f565 f565 f565 f565 f565 f565 f565 -12941 f566 f566 f566 * * 6a74 8ea2eaf4,8ea2eaf4v 9ac6 e9ab86 9ac6 00009ac6 f566 f566 f566 f566 f566 f566 f566 -12942 f567 f567 f567 * * 6a75 8ea2eaf5,8ea2eaf5v 9b10 e9ac90 9b10 00009b10 f567 f567 f567 f567 f567 f567 f567 -12943 f568 f568 f568 * * 6a76 8ea2eaf6,8ea2eaf6v 9b12 e9ac92 9b12 00009b12 f568 f568 f568 f568 f568 f568 f568 -12944 f569 f569 f569 * * 6a77 8ea2eaf7,8ea2eaf7v 9b11 e9ac91 9b11 00009b11 f569 f569 f569 f569 f569 f569 f569 -12945 f56a f56a f56a * * 6a78 8ea2eaf8,8ea2eaf8v 9c0b e9b08b 9c0b 00009c0b f56a f56a f56a f56a f56a f56a f56a -12946 f56b f56b f56b * * 6a79 8ea2eaf9,8ea2eaf9v 9c08 e9b088 9c08 00009c08 f56b f56b f56b f56b f56b f56b f56b -12947 f56c f56c f56c * * 6a7a 8ea2eafa,8ea2eafav 9bf7 e9afb7 9bf7 00009bf7 f56c f56c f56c f56c f56c f56c f56c -12948 f56d f56d f56d * * 6a7b 8ea2eafb,8ea2eafbv 9c05 e9b085 9c05 00009c05 f56d f56d f56d f56d f56d f56d f56d -12949 f56e f56e f56e * * 6a7c 8ea2eafc,8ea2eafcv 9c12 e9b092 9c12 00009c12 f56e f56e f56e f56e f56e f56e f56e -12950 f56f f56f f56f * * 6a7d 8ea2eafd,8ea2eafdv 9bf8 e9afb8 9bf8 00009bf8 f56f f56f f56f f56f f56f f56f f56f -12951 f570 f570 f570 * * 6a7e 8ea2eafe,8ea2eafev 9c40 e9b180 9c40 00009c40 f570 f570 f570 f570 f570 f570 f570 -12952 f571 f571 f571 * * 6b21 8ea2eba1,8ea2eba1v 9c07 e9b087 9c07 00009c07 f571 f571 f571 f571 f571 f571 f571 -12953 f572 f572 f572 * * 6b22 8ea2eba2,8ea2eba2v 9c0e e9b08e 9c0e 00009c0e f572 f572 f572 f572 f572 f572 f572 -12954 f573 f573 f573 * * 6b23 8ea2eba3,8ea2eba3v 9c06 e9b086 9c06 00009c06 f573 f573 f573 f573 f573 f573 f573 -12955 f574 f574 f574 * * 6b24 8ea2eba4,8ea2eba4v 9c17 e9b097 9c17 00009c17 f574 f574 f574 f574 f574 f574 f574 -12956 f575 f575 f575 * * 6b25 8ea2eba5,8ea2eba5v 9c14 e9b094 9c14 00009c14 f575 f575 f575 f575 f575 f575 f575 -12957 f576 f576 f576 * * 6b26 8ea2eba6,8ea2eba6v 9c09 e9b089 9c09 00009c09 f576 f576 f576 f576 f576 f576 f576 -12958 f577 f577 f577 * * 6b27 8ea2eba7,8ea2eba7v 9d9f e9b69f 9d9f 00009d9f f577 f577 f577 f577 f577 f577 f577 -12959 f578 f578 f578 * * 6b28 8ea2eba8,8ea2eba8v 9d99 e9b699 9d99 00009d99 f578 f578 f578 f578 f578 f578 f578 -12960 f579 f579 f579 * * 6b29 8ea2eba9,8ea2eba9v 9da4 e9b6a4 9da4 00009da4 f579 f579 f579 f579 f579 f579 f579 -12961 f57a f57a f57a * * 6b2a 8ea2ebaa,8ea2ebaav 9d9d e9b69d 9d9d 00009d9d f57a f57a f57a f57a f57a f57a f57a -12962 f57b f57b f57b * * 6b2b 8ea2ebab,8ea2ebabv 9d92 e9b692 9d92 00009d92 f57b f57b f57b f57b f57b f57b f57b -12963 f57c f57c f57c * * 6b2c 8ea2ebac,8ea2ebacv 9d98 e9b698 9d98 00009d98 f57c f57c f57c f57c f57c f57c f57c -12964 f57d f57d f57d * * 6b2d 8ea2ebad,8ea2ebadv 9d90 e9b690 9d90 00009d90 f57d f57d f57d f57d f57d f57d f57d -12965 f57e f57e f57e * * 6b2e 8ea2ebae,8ea2ebaev 9d9b e9b69b 9d9b 00009d9b f57e f57e f57e f57e f57e f57e f57e -12966 f5a1 f5a1 f5a1 * * 6b2f 8ea2ebaf,8ea2ebafv 9da0 e9b6a0 9da0 00009da0 f5a1 f5a1 f5a1 f5a1 f5a1 f5a1 f5a1 -12967 f5a2 f5a2 f5a2 * * 6b30 8ea2ebb0,8ea2ebb0v 9d94 e9b694 9d94 00009d94 f5a2 f5a2 f5a2 f5a2 f5a2 f5a2 f5a2 -12968 f5a3 f5a3 f5a3 * * 6b31 8ea2ebb1,8ea2ebb1v 9d9c e9b69c 9d9c 00009d9c f5a3 f5a3 f5a3 f5a3 f5a3 f5a3 f5a3 -12969 f5a4 f5a4 f5a4 * * 6b32 8ea2ebb2,8ea2ebb2v 9daa e9b6aa 9daa 00009daa f5a4 f5a4 f5a4 f5a4 f5a4 f5a4 f5a4 -12970 f5a5 f5a5 f5a5 * * 6b33 8ea2ebb3,8ea2ebb3v 9d97 e9b697 9d97 00009d97 f5a5 f5a5 f5a5 f5a5 f5a5 f5a5 f5a5 -12971 f5a6 f5a6 f5a6 * * 6b34 8ea2ebb4,8ea2ebb4v 9da1 e9b6a1 9da1 00009da1 f5a6 f5a6 f5a6 f5a6 f5a6 f5a6 f5a6 -12972 f5a7 f5a7 f5a7 * * 6b35 8ea2ebb5,8ea2ebb5v 9d9a e9b69a 9d9a 00009d9a f5a7 f5a7 f5a7 f5a7 f5a7 f5a7 f5a7 -12973 f5a8 f5a8 f5a8 * * 6b36 8ea2ebb6,8ea2ebb6v 9da2 e9b6a2 9da2 00009da2 f5a8 f5a8 f5a8 f5a8 f5a8 f5a8 f5a8 -12974 f5a9 f5a9 f5a9 * * 6b37 8ea2ebb7,8ea2ebb7v 9da8 e9b6a8 9da8 00009da8 f5a9 f5a9 f5a9 f5a9 f5a9 f5a9 f5a9 -12975 f5aa f5aa f5aa * * 6b38 8ea2ebb8,8ea2ebb8v 9d9e e9b69e 9d9e 00009d9e f5aa f5aa f5aa f5aa f5aa f5aa f5aa -12976 f5ab f5ab f5ab * * 6b39 8ea2ebb9,8ea2ebb9v 9da3 e9b6a3 9da3 00009da3 f5ab f5ab f5ab f5ab f5ab f5ab f5ab -12977 f5ac f5ac f5ac * * 6b3a 8ea2ebba,8ea2ebbav 9dbf e9b6bf 9dbf 00009dbf f5ac f5ac f5ac f5ac f5ac f5ac f5ac -12978 f5ad f5ad f5ad * * 6b3b 8ea2ebbb,8ea2ebbbv 9da9 e9b6a9 9da9 00009da9 f5ad f5ad f5ad f5ad f5ad f5ad f5ad -12979 f5ae f5ae f5ae * * 6b3c 8ea2ebbc,8ea2ebbcv 9d96 e9b696 9d96 00009d96 f5ae f5ae f5ae f5ae f5ae f5ae f5ae -12980 f5af f5af f5af * * 6b3d 8ea2ebbd,8ea2ebbdv 9da6 e9b6a6 9da6 00009da6 f5af f5af f5af f5af f5af f5af f5af -12981 f5b0 f5b0 f5b0 * * 6b3e 8ea2ebbe,8ea2ebbev 9da7 e9b6a7 9da7 00009da7 f5b0 f5b0 f5b0 f5b0 f5b0 f5b0 f5b0 -12982 f5b1 f5b1 f5b1 * * 6b3f 8ea2ebbf,8ea2ebbfv 9e99 e9ba99 9e99 00009e99 f5b1 f5b1 f5b1 f5b1 f5b1 f5b1 f5b1 -12983 f5b2 f5b2 f5b2 * * 6b40 8ea2ebc0,8ea2ebc0v 9e9b e9ba9b 9e9b 00009e9b f5b2 f5b2 f5b2 f5b2 f5b2 f5b2 f5b2 -12984 f5b3 f5b3 f5b3 * * 6b41 8ea2ebc1,8ea2ebc1v 9e9a e9ba9a 9e9a 00009e9a f5b3 f5b3 f5b3 f5b3 f5b3 f5b3 f5b3 -12985 f5b4 f5b4 f5b4 * * 6b42 8ea2ebc2,8ea2ebc2v 9ee5 e9bba5 9ee5 00009ee5 f5b4 f5b4 f5b4 f5b4 f5b4 f5b4 f5b4 -12986 f5b5 f5b5 f5b5 * * 6b43 8ea2ebc3,8ea2ebc3v 9ee4 e9bba4 9ee4 00009ee4 f5b5 f5b5 f5b5 f5b5 f5b5 f5b5 f5b5 -12987 f5b6 f5b6 f5b6 * * 6b44 8ea2ebc4,8ea2ebc4v 9ee7 e9bba7 9ee7 00009ee7 f5b6 f5b6 f5b6 f5b6 f5b6 f5b6 f5b6 -12988 f5b7 f5b7 f5b7 * * 6b45 8ea2ebc5,8ea2ebc5v 9ee6 e9bba6 9ee6 00009ee6 f5b7 f5b7 f5b7 f5b7 f5b7 f5b7 f5b7 -12989 f5b8 f5b8 f5b8 * * 6b46 8ea2ebc6,8ea2ebc6v 9f30 e9bcb0 9f30 00009f30 f5b8 f5b8 f5b8 f5b8 f5b8 f5b8 f5b8 -12990 f5b9 f5b9 f5b9 * * 6b47 8ea2ebc7,8ea2ebc7v 9f2e e9bcae 9f2e 00009f2e f5b9 f5b9 f5b9 f5b9 f5b9 f5b9 f5b9 -12991 f5ba f5ba f5ba * * 6b48 8ea2ebc8,8ea2ebc8v 9f5b e9bd9b 9f5b 00009f5b f5ba f5ba f5ba f5ba f5ba f5ba f5ba -12992 f5bb f5bb f5bb * * 6b49 8ea2ebc9,8ea2ebc9v 9f60 e9bda0 9f60 00009f60 f5bb f5bb f5bb f5bb f5bb f5bb f5bb -12993 f5bc f5bc f5bc * * 6b4a 8ea2ebca,8ea2ebcav 9f5e e9bd9e 9f5e 00009f5e f5bc f5bc f5bc f5bc f5bc f5bc f5bc -12994 f5bd f5bd f5bd * * 6b4b 8ea2ebcb,8ea2ebcbv 9f5d e9bd9d 9f5d 00009f5d f5bd f5bd f5bd f5bd f5bd f5bd f5bd -12995 f5be f5be f5be * * 6b4c 8ea2ebcc,8ea2ebccv 9f59 e9bd99 9f59 00009f59 f5be f5be f5be f5be f5be f5be f5be -12996 f5bf f5bf f5bf * * 6b4d 8ea2ebcd,8ea2ebcdv 9f91 e9be91 9f91 00009f91 f5bf f5bf f5bf f5bf f5bf f5bf f5bf -12997 f5c0 f5c0 f5c0 * * 6b4e 8ea2ebce,8ea2ebcev 513a e584ba 513a 0000513a f5c0 f5c0 f5c0 f5c0 f5c0 f5c0 f5c0 -12998 f5c1 f5c1 f5c1 * * 6b4f 8ea2ebcf,8ea2ebcfv 5139 e584b9 5139 00005139 f5c1 f5c1 f5c1 f5c1 f5c1 f5c1 f5c1 -12999 f5c2 f5c2 f5c2 * * 6b50 8ea2ebd0,8ea2ebd0v 5298 e58a98 5298 00005298 f5c2 f5c2 f5c2 f5c2 f5c2 f5c2 f5c2 -13000 f5c3 f5c3 f5c3 * * 6b51 8ea2ebd1,8ea2ebd1v 5297 e58a97 5297 00005297 f5c3 f5c3 f5c3 f5c3 f5c3 f5c3 f5c3 -13001 f5c4 f5c4 f5c4 * * 6b52 8ea2ebd2,8ea2ebd2v 56c3 e59b83 56c3 000056c3 f5c4 f5c4 f5c4 f5c4 f5c4 f5c4 f5c4 -13002 f5c5 f5c5 f5c5 * * 6b53 8ea2ebd3,8ea2ebd3v 56bd e59abd 56bd 000056bd f5c5 f5c5 f5c5 f5c5 f5c5 f5c5 f5c5 -13003 f5c6 f5c6 f5c6 * * 6b54 8ea2ebd4,8ea2ebd4v 56be e59abe 56be 000056be f5c6 f5c6 f5c6 f5c6 f5c6 f5c6 f5c6 -13004 f5c7 f5c7 f5c7 * * 6b55 8ea2ebd5,8ea2ebd5v 5b48 e5ad88 5b48 00005b48 f5c7 f5c7 f5c7 f5c7 f5c7 f5c7 f5c7 -13005 f5c8 f5c8 f5c8 * * 6b56 8ea2ebd6,8ea2ebd6v 5b47 e5ad87 5b47 00005b47 f5c8 f5c8 f5c8 f5c8 f5c8 f5c8 f5c8 -13006 f5c9 f5c9 f5c9 * * 6b57 8ea2ebd7,8ea2ebd7v 5dcb e5b78b 5dcb 00005dcb f5c9 f5c9 f5c9 f5c9 f5c9 f5c9 f5c9 -13007 f5ca f5ca f5ca * * 6b58 8ea2ebd8,8ea2ebd8v 5dcf e5b78f 5dcf 00005dcf f5ca f5ca f5ca f5ca f5ca f5ca f5ca -13008 f5cb f5cb f5cb * * 6b59 8ea2ebd9,8ea2ebd9v 5ef1 e5bbb1 5ef1 00005ef1 f5cb f5cb f5cb f5cb f5cb f5cb f5cb -13009 f5cc f5cc f5cc * * 6b5a 8ea2ebda,8ea2ebdav 61fd e687bd 61fd 000061fd f5cc f5cc f5cc f5cc f5cc f5cc f5cc -13010 f5cd f5cd f5cd * * 6b5b 8ea2ebdb,8ea2ebdbv 651b e6949b 651b 0000651b f5cd f5cd f5cd f5cd f5cd f5cd f5cd -13011 f5ce f5ce f5ce * * 6b5c 8ea2ebdc,8ea2ebdcv 6b02 e6ac82 6b02 00006b02 f5ce f5ce f5ce f5ce f5ce f5ce f5ce -13012 f5cf f5cf f5cf * * 6b5d 8ea2ebdd,8ea2ebddv 6afc e6abbc 6afc 00006afc f5cf f5cf f5cf f5cf f5cf f5cf f5cf -13013 f5d0 f5d0 f5d0 * * 6b5e 8ea2ebde,8ea2ebdev 6b03 e6ac83 6b03 00006b03 f5d0 f5d0 f5d0 f5d0 f5d0 f5d0 f5d0 -13014 f5d1 f5d1 f5d1 * * 6b5f 8ea2ebdf,8ea2ebdfv 6af8 e6abb8 6af8 00006af8 f5d1 f5d1 f5d1 f5d1 f5d1 f5d1 f5d1 -13015 f5d2 f5d2 f5d2 * * 6b60 8ea2ebe0,8ea2ebe0v 6b00 e6ac80 6b00 00006b00 f5d2 f5d2 f5d2 f5d2 f5d2 f5d2 f5d2 -13016 f5d3 f5d3 f5d3 * * 6b61 8ea2ebe1,8ea2ebe1v 7043 e78183 7043 00007043 f5d3 f5d3 f5d3 f5d3 f5d3 f5d3 f5d3 -13017 f5d4 f5d4 f5d4 * * 6b62 8ea2ebe2,8ea2ebe2v 7044 e78184 7044 00007044 f5d4 f5d4 f5d4 f5d4 f5d4 f5d4 f5d4 -13018 f5d5 f5d5 f5d5 * * 6b63 8ea2ebe3,8ea2ebe3v 704a e7818a 704a 0000704a f5d5 f5d5 f5d5 f5d5 f5d5 f5d5 f5d5 -13019 f5d6 f5d6 f5d6 * * 6b64 8ea2ebe4,8ea2ebe4v 7048 e78188 7048 00007048 f5d6 f5d6 f5d6 f5d6 f5d6 f5d6 f5d6 -13020 f5d7 f5d7 f5d7 * * 6b65 8ea2ebe5,8ea2ebe5v 7049 e78189 7049 00007049 f5d7 f5d7 f5d7 f5d7 f5d7 f5d7 f5d7 -13021 f5d8 f5d8 f5d8 * * 6b66 8ea2ebe6,8ea2ebe6v 7045 e78185 7045 00007045 f5d8 f5d8 f5d8 f5d8 f5d8 f5d8 f5d8 -13022 f5d9 f5d9 f5d9 * * 6b67 8ea2ebe7,8ea2ebe7v 7046 e78186 7046 00007046 f5d9 f5d9 f5d9 f5d9 f5d9 f5d9 f5d9 -13023 f5da f5da f5da * * 6b68 8ea2ebe8,8ea2ebe8v 721d e7889d 721d 0000721d f5da f5da f5da f5da f5da f5da f5da -13024 f5db f5db f5db * * 6b69 8ea2ebe9,8ea2ebe9v 721a e7889a 721a 0000721a f5db f5db f5db f5db f5db f5db f5db -13025 f5dc f5dc f5dc * * 6b6a 8ea2ebea,8ea2ebeav 7219 e78899 7219 00007219 f5dc f5dc f5dc f5dc f5dc f5dc f5dc -13026 f5dd f5dd f5dd * * 6b6b 8ea2ebeb,8ea2ebebv 737e e78dbe 737e 0000737e f5dd f5dd f5dd f5dd f5dd f5dd f5dd -13027 f5de f5de f5de * * 6b6c 8ea2ebec,8ea2ebecv 7517 e79497 7517 00007517 f5de f5de f5de f5de f5de f5de f5de -13028 f5df f5df f5df * * 6b6d 8ea2ebed,8ea2ebedv 766a e799aa 766a 0000766a f5df f5df f5df f5df f5df f5df f5df -13029 f5e0 f5e0 f5e0 * * 6b6e 8ea2ebee,8ea2ebeev 77d0 e79f90 77d0 000077d0 f5e0 f5e0 f5e0 f5e0 f5e0 f5e0 f5e0 -13030 f5e1 f5e1 f5e1 * * 6b6f 8ea2ebef,8ea2ebefv 792d e7a4ad 792d 0000792d f5e1 f5e1 f5e1 f5e1 f5e1 f5e1 f5e1 -13031 f5e2 f5e2 f5e2 * * 6b70 8ea2ebf0,8ea2ebf0v 7931 e7a4b1 7931 00007931 f5e2 f5e2 f5e2 f5e2 f5e2 f5e2 f5e2 -13032 f5e3 f5e3 f5e3 * * 6b71 8ea2ebf1,8ea2ebf1v 792f e7a4af 792f 0000792f f5e3 f5e3 f5e3 f5e3 f5e3 f5e3 f5e3 -13033 f5e4 f5e4 f5e4 * * 6b72 8ea2ebf2,8ea2ebf2v 7c54 e7b194 7c54 00007c54 f5e4 f5e4 f5e4 f5e4 f5e4 f5e4 f5e4 -13034 f5e5 f5e5 f5e5 * * 6b73 8ea2ebf3,8ea2ebf3v 7c53 e7b193 7c53 00007c53 f5e5 f5e5 f5e5 f5e5 f5e5 f5e5 f5e5 -13035 f5e6 f5e6 f5e6 * * 6b74 8ea2ebf4,8ea2ebf4v 7cf2 e7b3b2 7cf2 00007cf2 f5e6 f5e6 f5e6 f5e6 f5e6 f5e6 f5e6 -13036 f5e7 f5e7 f5e7 * * 6b75 8ea2ebf5,8ea2ebf5v 7e8a e7ba8a 7e8a 00007e8a f5e7 f5e7 f5e7 f5e7 f5e7 f5e7 f5e7 -13037 f5e8 f5e8 f5e8 * * 6b76 8ea2ebf6,8ea2ebf6v 7e87 eead85,e7ba87 eb45,7e87 0000eb45,00007e87 9b7b,f5e8 f5e8 f5e8 f5e8 f5e8 f5e8 9b7b,f5e8 -13038 f5e9 f5e9 f5e9 * * 6b77 8ea2ebf7,8ea2ebf7v 7e88 e7ba88 7e88 00007e88 f5e9 f5e9 f5e9 f5e9 f5e9 f5e9 f5e9 -13039 f5ea f5ea f5ea * * 6b78 8ea2ebf8,8ea2ebf8v 7e8b e7ba8b 7e8b 00007e8b f5ea f5ea f5ea f5ea f5ea f5ea f5ea -13040 f5eb f5eb f5eb * * 6b79 8ea2ebf9,8ea2ebf9v 7e86 e7ba86 7e86 00007e86 f5eb f5eb f5eb f5eb f5eb f5eb f5eb -13041 f5ec f5ec f5ec * * 6b7a 8ea2ebfa,8ea2ebfav 7e8d e7ba8d 7e8d 00007e8d f5ec f5ec f5ec f5ec f5ec f5ec f5ec -13042 f5ed f5ed f5ed * * 6b7b 8ea2ebfb,8ea2ebfbv 7f4d e7bd8d 7f4d 00007f4d f5ed f5ed f5ed f5ed f5ed f5ed f5ed -13043 f5ee f5ee f5ee * * 6b7c 8ea2ebfc,8ea2ebfcv 7fbb e7bebb 7fbb 00007fbb f5ee f5ee f5ee f5ee f5ee f5ee f5ee -13044 f5ef f5ef f5ef * * 6b7d 8ea2ebfd,8ea2ebfdv 8030 e880b0 8030 00008030 f5ef f5ef f5ef f5ef f5ef f5ef f5ef -13045 f5f0 f5f0 f5f0 * * 6b7e 8ea2ebfe,8ea2ebfev 81dd e8879d 81dd 000081dd f5f0 f5f0 f5f0 f5f0 f5f0 f5f0 f5f0 -13046 f5f1 f5f1 f5f1 * * 6c21 8ea2eca1,8ea2eca1v 8618 e89898 8618 00008618 f5f1 f5f1 f5f1 f5f1 f5f1 f5f1 f5f1 -13047 f5f2 f5f2 f5f2 * * 6c22 8ea2eca2,8ea2eca2v 862a e898aa 862a 0000862a f5f2 f5f2 f5f2 f5f2 f5f2 f5f2 f5f2 -13048 f5f3 f5f3 f5f3 * * 6c23 8ea2eca3,8ea2eca3v 8626 e898a6 8626 00008626 f5f3 f5f3 f5f3 f5f3 f5f3 f5f3 f5f3 -13049 f5f4 f5f4 f5f4 * * 6c24 8ea2eca4,8ea2eca4v 861f e8989f 861f 0000861f f5f4 f5f4 f5f4 f5f4 f5f4 f5f4 f5f4 -13050 f5f5 f5f5 f5f5 * * 6c25 8ea2eca5,8ea2eca5v 8623 e898a3 8623 00008623 f5f5 f5f5 f5f5 f5f5 f5f5 f5f5 f5f5 -13051 f5f6 f5f6 f5f6 * * 6c26 8ea2eca6,8ea2eca6v 861c e8989c 861c 0000861c f5f6 f5f6 f5f6 f5f6 f5f6 f5f6 f5f6 -13052 f5f7 f5f7 f5f7 * * 6c27 8ea2eca7,8ea2eca7v 8619 e89899 8619 00008619 f5f7 f5f7 f5f7 f5f7 f5f7 f5f7 f5f7 -13053 f5f8 f5f8 f5f8 * * 6c28 8ea2eca8,8ea2eca8v 8627 e898a7 8627 00008627 f5f8 f5f8 f5f8 f5f8 f5f8 f5f8 f5f8 -13054 f5f9 f5f9 f5f9 * * 6c29 8ea2eca9,8ea2eca9v 862e e898ae 862e 0000862e f5f9 f5f9 f5f9 f5f9 f5f9 f5f9 f5f9 -13055 f5fa f5fa f5fa * * 6c2a 8ea2ecaa,8ea2ecaav 8621 e898a1 8621 00008621 f5fa f5fa f5fa f5fa f5fa f5fa f5fa -13056 f5fb f5fb f5fb * * 6c2b 8ea2ecab,8ea2ecabv 8620 e898a0 8620 00008620 f5fb f5fb f5fb f5fb f5fb f5fb f5fb -13057 f5fc f5fc f5fc * * 6c2c 8ea2ecac,8ea2ecacv 8629 e898a9 8629 00008629 f5fc f5fc f5fc f5fc f5fc f5fc f5fc -13058 f5fd f5fd f5fd * * 6c2d 8ea2ecad,8ea2ecadv 861e e8989e 861e 0000861e f5fd f5fd f5fd f5fd f5fd f5fd f5fd -13059 f5fe f5fe f5fe * * 6c2e 8ea2ecae,8ea2ecaev 8625 e898a5 8625 00008625 f5fe f5fe f5fe f5fe f5fe f5fe f5fe -13060 f640 f640 f640 * * 6c2f 8ea2ecaf,8ea2ecafv 8829 e8a0a9 8829 00008829 f640 f640 f640 f640 f640 f640 f640 -13061 f641 f641 f641 * * 6c30 8ea2ecb0,8ea2ecb0v 881d e8a09d 881d 0000881d f641 f641 f641 f641 f641 f641 f641 -13062 f642 f642 f642 * * 6c31 8ea2ecb1,8ea2ecb1v 881b e8a09b 881b 0000881b f642 f642 f642 f642 f642 f642 f642 -13063 f643 f643 f643 * * 6c32 8ea2ecb2,8ea2ecb2v 8820 e8a0a0 8820 00008820 f643 f643 f643 f643 f643 f643 f643 -13064 f644 f644 f644 * * 6c33 8ea2ecb3,8ea2ecb3v 8824 e8a0a4 8824 00008824 f644 f644 f644 f644 f644 f644 f644 -13065 f645 f645 f645 * * 6c34 8ea2ecb4,8ea2ecb4v 881c e8a09c 881c 0000881c f645 f645 f645 f645 f645 f645 f645 -13066 f646 f646 f646 * * 6c35 8ea2ecb5,8ea2ecb5v 882b e8a0ab 882b 0000882b f646 f646 f646 f646 f646 f646 f646 -13067 f647 f647 f647 * * 6c36 8ea2ecb6,8ea2ecb6v 884a e8a18a 884a 0000884a f647 f647 f647 f647 f647 f647 f647 -13068 f648 f648 f648 * * 6c37 8ea2ecb7,8ea2ecb7v 896d e8a5ad 896d 0000896d f648 f648 f648 f648 f648 f648 f648 -13069 f649 f649 f649 * * 6c38 8ea2ecb8,8ea2ecb8v 8969 e8a5a9 8969 00008969 f649 f649 f649 f649 f649 f649 f649 -13070 f64a f64a f64a * * 6c39 8ea2ecb9,8ea2ecb9v 896e e8a5ae 896e 0000896e f64a f64a f64a f64a f64a f64a f64a -13071 f64b f64b f64b * * 6c3a 8ea2ecba,8ea2ecbav 896b e8a5ab 896b 0000896b f64b f64b f64b f64b f64b f64b f64b -13072 f64c f64c f64c * * 6c3b 8ea2ecbb,8ea2ecbbv 89fa e8a7ba 89fa 000089fa f64c f64c f64c f64c f64c f64c f64c -13073 f64d f64d f64d * * 6c3c 8ea2ecbc,8ea2ecbcv 8b79 e8adb9 8b79 00008b79 f64d f64d f64d f64d f64d f64d f64d -13074 f64e f64e f64e * * 6c3d 8ea2ecbd,8ea2ecbdv 8b78 e8adb8 8b78 00008b78 f64e f64e f64e f64e f64e f64e f64e -13075 f64f f64f f64f * * 6c3e 8ea2ecbe,8ea2ecbev 8b45 e8ad85 8b45 00008b45 f64f f64f f64f f64f f64f f64f f64f -13076 f650 f650 f650 * * 6c3f 8ea2ecbf,8ea2ecbfv 8b7a e8adba 8b7a 00008b7a f650 f650 f650 f650 f650 f650 f650 -13077 f651 f651 f651 * * 6c40 8ea2ecc0,8ea2ecc0v 8b7b e8adbb 8b7b 00008b7b f651 f651 f651 f651 f651 f651 f651 -13078 f652 f652 f652 * * 6c41 8ea2ecc1,8ea2ecc1v 8d10 e8b490 8d10 00008d10 f652 f652 f652 f652 f652 f652 f652 -13079 f653 f653 f653 * * 6c42 8ea2ecc2,8ea2ecc2v 8d14 e8b494 8d14 00008d14 f653 f653 f653 f653 f653 f653 f653 -13080 f654 f654 f654 * * 6c43 8ea2ecc3,8ea2ecc3v 8daf e8b6af 8daf 00008daf f654 f654 f654 f654 f654 f654 f654 -13081 f655 f655 f655 * * 6c44 8ea2ecc4,8ea2ecc4v 8e8e e8ba8e 8e8e 00008e8e f655 f655 f655 f655 f655 f655 f655 -13082 f656 f656 f656 * * 6c45 8ea2ecc5,8ea2ecc5v 8e8c e8ba8c 8e8c 00008e8c f656 f656 f656 f656 f656 f656 f656 -13083 f657 f657 f657 * * 6c46 8ea2ecc6,8ea2ecc6v 8f5e e8bd9e 8f5e 00008f5e f657 f657 f657 f657 f657 f657 f657 -13084 f658 f658 f658 * * 6c47 8ea2ecc7,8ea2ecc7v 8f5b e8bd9b 8f5b 00008f5b f658 f658 f658 f658 f658 f658 f658 -13085 f659 f659 f659 * * 6c48 8ea2ecc8,8ea2ecc8v 8f5d e8bd9d 8f5d 00008f5d f659 f659 f659 f659 f659 f659 f659 -13086 f65a f65a f65a * * 6c49 8ea2ecc9,8ea2ecc9v 9146 e98586 9146 00009146 f65a f65a f65a f65a f65a f65a f65a -13087 f65b f65b f65b * * 6c4a 8ea2ecca,8ea2eccav 9144 e98584 9144 00009144 f65b f65b f65b f65b f65b f65b f65b -13088 f65c f65c f65c * * 6c4b 8ea2eccb,8ea2eccbv 9145 e98585 9145 00009145 f65c f65c f65c f65c f65c f65c f65c -13089 f65d f65d f65d * * 6c4c 8ea2eccc,8ea2ecccv 91b9 e986b9 91b9 000091b9 f65d f65d f65d f65d f65d f65d f65d -13090 f65e f65e f65e * * 6c4d 8ea2eccd,8ea2eccdv 943f e990bf 943f 0000943f f65e f65e f65e f65e f65e f65e f65e -13091 f65f f65f f65f * * 6c4e 8ea2ecce,8ea2eccev 943b e990bb 943b 0000943b f65f f65f f65f f65f f65f f65f f65f -13092 f660 f660 f660 * * 6c4f 8ea2eccf,8ea2eccfv 9436 e990b6 9436 00009436 f660 f660 f660 f660 f660 f660 f660 -13093 f661 f661 f661 * * 6c50 8ea2ecd0,8ea2ecd0v 9429 e990a9 9429 00009429 f661 f661 f661 f661 f661 f661 f661 -13094 f662 f662 f662 * * 6c51 8ea2ecd1,8ea2ecd1v 943d e990bd 943d 0000943d f662 f662 f662 f662 f662 f662 f662 -13095 f664 f664 f664 * * 6c52 8ea2ecd2,8ea2ecd2v 9430 e990b0 9430 00009430 f664 f664 f664 f664 f664 f664 f664 -13096 f665 f665 f665 * * 6c53 8ea2ecd3,8ea2ecd3v 9439 e990b9 9439 00009439 f665 f665 f665 f665 f665 f665 f665 -13097 f666 f666 f666 * * 6c54 8ea2ecd4,8ea2ecd4v 942a e990aa 942a 0000942a f666 f666 f666 f666 f666 f666 f666 -13098 f667 f667 f667 * * 6c55 8ea2ecd5,8ea2ecd5v 9437 e990b7 9437 00009437 f667 f667 f667 f667 f667 f667 f667 -13099 f668 f668 f668 * * 6c56 8ea2ecd6,8ea2ecd6v 942c e990ac 942c 0000942c f668 f668 f668 f668 f668 f668 f668 -13100 f669 f669 f669 * * 6c57 8ea2ecd7,8ea2ecd7v 9440 e99180 9440 00009440 f669 f669 f669 f669 f669 f669 f669 -13101 f66a f66a f66a * * 6c58 8ea2ecd8,8ea2ecd8v 9431 e990b1 9431 00009431 f66a f66a f66a f66a f66a f66a f66a -13102 f66b f66b f66b * * 6c59 8ea2ecd9,8ea2ecd9v 95e5 e997a5 95e5 000095e5 f66b f66b f66b f66b f66b f66b f66b -13103 f66c f66c f66c * * 6c5a 8ea2ecda,8ea2ecdav 95e4 e997a4 95e4 000095e4 f66c f66c f66c f66c f66c f66c f66c -13104 f66d f66d f66d * * 6c5b 8ea2ecdb,8ea2ecdbv 95e3 e997a3 95e3 000095e3 f66d f66d f66d f66d f66d f66d f66d -13105 f66e f66e f66e * * 6c5c 8ea2ecdc,8ea2ecdcv 9735 e99cb5 9735 00009735 f66e f66e f66e f66e f66e f66e f66e -13106 f66f f66f f66f * * 6c5d 8ea2ecdd,8ea2ecddv 973a e99cba 973a 0000973a f66f f66f f66f f66f f66f f66f f66f -13107 f670 f670 f670 * * 6c5e 8ea2ecde,8ea2ecdev 97bf e99ebf 97bf 000097bf f670 f670 f670 f670 f670 f670 f670 -13108 f671 f671 f671 * * 6c5f 8ea2ecdf,8ea2ecdfv 97e1 e99fa1 97e1 000097e1 f671 f671 f671 f671 f671 f671 f671 -13109 f672 f672 f672 * * 6c60 8ea2ece0,8ea2ece0v 9864 e9a1a4 9864 00009864 f672 f672 f672 f672 f672 f672 f672 -13110 f673 f673 f673 * * 6c61 8ea2ece1,8ea2ece1v 98c9 e9a389 98c9 000098c9 f673 f673 f673 f673 f673 f673 f673 -13111 f674 f674 f674 * * 6c62 8ea2ece2,8ea2ece2v 98c6 e9a386 98c6 000098c6 f674 f674 f674 f674 f674 f674 f674 -13112 f675 f675 f675 * * 6c63 8ea2ece3,8ea2ece3v 98c0 e9a380 98c0 000098c0 f675 f675 f675 f675 f675 f675 f675 -13113 f676 f676 f676 * * 6c64 8ea2ece4,8ea2ece4v 9958 e9a598 9958 00009958 f676 f676 f676 f676 f676 f676 f676 -13114 f677 f677 f677 * * 6c65 8ea2ece5,8ea2ece5v 9956 e9a596 9956 00009956 f677 f677 f677 f677 f677 f677 f677 -13115 f678 f678 f678 * * 6c66 8ea2ece6,8ea2ece6v 9a39 e9a8b9 9a39 00009a39 f678 f678 f678 f678 f678 f678 f678 -13116 f679 f679 f679 * * 6c67 8ea2ece7,8ea2ece7v 9a3d e9a8bd 9a3d 00009a3d f679 f679 f679 f679 f679 f679 f679 -13117 f67a f67a f67a * * 6c68 8ea2ece8,8ea2ece8v 9a46 e9a986 9a46 00009a46 f67a f67a f67a f67a f67a f67a f67a -13118 f67b f67b f67b * * 6c69 8ea2ece9,8ea2ece9v 9a44 e9a984 9a44 00009a44 f67b f67b f67b f67b f67b f67b f67b -13119 f67c f67c f67c * * 6c6a 8ea2ecea,8ea2eceav 9a42 e9a982 9a42 00009a42 f67c f67c f67c f67c f67c f67c f67c -13120 f67d f67d f67d * * 6c6b 8ea2eceb,8ea2ecebv 9a41 e9a981 9a41 00009a41 f67d f67d f67d f67d f67d f67d f67d -13121 f67e f67e f67e * * 6c6c 8ea2ecec,8ea2ececv 9a3a e9a8ba 9a3a 00009a3a f67e f67e f67e f67e f67e f67e f67e -13122 f6a1 f6a1 f6a1 * * 6c6d 8ea2eced,8ea2ecedv 9a3f e9a8bf 9a3f 00009a3f f6a1 f6a1 f6a1 f6a1 f6a1 f6a1 f6a1 -13123 f6a2 f6a2 f6a2 * * 6c6e 8ea2ecee,8ea2eceev 9acd e9ab8d 9acd 00009acd f6a2 f6a2 f6a2 f6a2 f6a2 f6a2 f6a2 -13124 f6a3 f6a3 f6a3 * * 6c6f 8ea2ecef,8ea2ecefv 9b15 e9ac95 9b15 00009b15 f6a3 f6a3 f6a3 f6a3 f6a3 f6a3 f6a3 -13125 f6a4 f6a4 f6a4 * * 6c70 8ea2ecf0,8ea2ecf0v 9b17 e9ac97 9b17 00009b17 f6a4 f6a4 f6a4 f6a4 f6a4 f6a4 f6a4 -13126 f6a5 f6a5 f6a5 * * 6c71 8ea2ecf1,8ea2ecf1v 9b18 e9ac98 9b18 00009b18 f6a5 f6a5 f6a5 f6a5 f6a5 f6a5 f6a5 -13127 f6a6 f6a6 f6a6 * * 6c72 8ea2ecf2,8ea2ecf2v 9b16 e9ac96 9b16 00009b16 f6a6 f6a6 f6a6 f6a6 f6a6 f6a6 f6a6 -13128 f6a7 f6a7 f6a7 * * 6c73 8ea2ecf3,8ea2ecf3v 9b3a e9acba 9b3a 00009b3a f6a7 f6a7 f6a7 f6a7 f6a7 f6a7 f6a7 -13129 f6a8 f6a8 f6a8 * * 6c74 8ea2ecf4,8ea2ecf4v 9b52 e9ad92 9b52 00009b52 f6a8 f6a8 f6a8 f6a8 f6a8 f6a8 f6a8 -13130 f6a9 f6a9 f6a9 * * 6c75 8ea2ecf5,8ea2ecf5v 9c2b e9b0ab 9c2b 00009c2b f6a9 f6a9 f6a9 f6a9 f6a9 f6a9 f6a9 -13131 f6aa f6aa f6aa * * 6c76 8ea2ecf6,8ea2ecf6v 9c1d e9b09d 9c1d 00009c1d f6aa f6aa f6aa f6aa f6aa f6aa f6aa -13132 f6ab f6ab f6ab * * 6c77 8ea2ecf7,8ea2ecf7v 9c1c e9b09c 9c1c 00009c1c f6ab f6ab f6ab f6ab f6ab f6ab f6ab -13133 f6ac f6ac f6ac * * 6c78 8ea2ecf8,8ea2ecf8v 9c2c e9b0ac 9c2c 00009c2c f6ac f6ac f6ac f6ac f6ac f6ac f6ac -13134 f6ad f6ad f6ad * * 6c79 8ea2ecf9,8ea2ecf9v 9c23 e9b0a3 9c23 00009c23 f6ad f6ad f6ad f6ad f6ad f6ad f6ad -13135 f6ae f6ae f6ae * * 6c7a 8ea2ecfa,8ea2ecfav 9c28 e9b0a8 9c28 00009c28 f6ae f6ae f6ae f6ae f6ae f6ae f6ae -13136 f6af f6af f6af * * 6c7b 8ea2ecfb,8ea2ecfbv 9c29 e9b0a9 9c29 00009c29 f6af f6af f6af f6af f6af f6af f6af -13137 f6b0 f6b0 f6b0 * * 6c7c 8ea2ecfc,8ea2ecfcv 9c24 e9b0a4 9c24 00009c24 f6b0 f6b0 f6b0 f6b0 f6b0 f6b0 f6b0 -13138 f6b1 f6b1 f6b1 * * 6c7d 8ea2ecfd,8ea2ecfdv 9c21 e9b0a1 9c21 00009c21 f6b1 f6b1 f6b1 f6b1 f6b1 f6b1 f6b1 -13139 f6b2 f6b2 f6b2 * * 6c7e 8ea2ecfe,8ea2ecfev 9db7 e9b6b7 9db7 00009db7 f6b2 f6b2 f6b2 f6b2 f6b2 f6b2 f6b2 -13140 f6b3 f6b3 f6b3 * * 6d21 8ea2eda1,8ea2eda1v 9db6 e9b6b6 9db6 00009db6 f6b3 f6b3 f6b3 f6b3 f6b3 f6b3 f6b3 -13141 f6b4 f6b4 f6b4 * * 6d22 8ea2eda2,8ea2eda2v 9dbc e9b6bc 9dbc 00009dbc f6b4 f6b4 f6b4 f6b4 f6b4 f6b4 f6b4 -13142 f6b5 f6b5 f6b5 * * 6d23 8ea2eda3,8ea2eda3v 9dc1 e9b781 9dc1 00009dc1 f6b5 f6b5 f6b5 f6b5 f6b5 f6b5 f6b5 -13143 f6b6 f6b6 f6b6 * * 6d24 8ea2eda4,8ea2eda4v 9dc7 e9b787 9dc7 00009dc7 f6b6 f6b6 f6b6 f6b6 f6b6 f6b6 f6b6 -13144 f6b7 f6b7 f6b7 * * 6d25 8ea2eda5,8ea2eda5v 9dca e9b78a 9dca 00009dca f6b7 f6b7 f6b7 f6b7 f6b7 f6b7 f6b7 -13145 f6b8 f6b8 f6b8 * * 6d26 8ea2eda6,8ea2eda6v 9dcf e9b78f 9dcf 00009dcf f6b8 f6b8 f6b8 f6b8 f6b8 f6b8 f6b8 -13146 f6b9 f6b9 f6b9 * * 6d27 8ea2eda7,8ea2eda7v 9dbe e9b6be 9dbe 00009dbe f6b9 f6b9 f6b9 f6b9 f6b9 f6b9 f6b9 -13147 f6ba f6ba f6ba * * 6d28 8ea2eda8,8ea2eda8v 9dc5 e9b785 9dc5 00009dc5 f6ba f6ba f6ba f6ba f6ba f6ba f6ba -13148 f6bb f6bb f6bb * * 6d29 8ea2eda9,8ea2eda9v 9dc3 e9b783 9dc3 00009dc3 f6bb f6bb f6bb f6bb f6bb f6bb f6bb -13149 f6bc f6bc f6bc * * 6d2a 8ea2edaa,8ea2edaav 9dbb e9b6bb 9dbb 00009dbb f6bc f6bc f6bc f6bc f6bc f6bc f6bc -13150 f6bd f6bd f6bd * * 6d2b 8ea2edab,8ea2edabv 9db5 e9b6b5 9db5 00009db5 f6bd f6bd f6bd f6bd f6bd f6bd f6bd -13151 f6be f6be f6be * * 6d2c 8ea2edac,8ea2edacv 9dce e9b78e 9dce 00009dce f6be f6be f6be f6be f6be f6be f6be -13152 f6bf f6bf f6bf * * 6d2d 8ea2edad,8ea2edadv 9db9 e9b6b9 9db9 00009db9 f6bf f6bf f6bf f6bf f6bf f6bf f6bf -13153 f6c0 f6c0 f6c0 * * 6d2e 8ea2edae,8ea2edaev 9dba e9b6ba 9dba 00009dba f6c0 f6c0 f6c0 f6c0 f6c0 f6c0 f6c0 -13154 f6c1 f6c1 f6c1 * * 6d2f 8ea2edaf,8ea2edafv 9dac e9b6ac 9dac 00009dac f6c1 f6c1 f6c1 f6c1 f6c1 f6c1 f6c1 -13155 f6c2 f6c2 f6c2 * * 6d30 8ea2edb0,8ea2edb0v 9dc8 e9b788 9dc8 00009dc8 f6c2 f6c2 f6c2 f6c2 f6c2 f6c2 f6c2 -13156 f6c3 f6c3 f6c3 * * 6d31 8ea2edb1,8ea2edb1v 9db1 e9b6b1 9db1 00009db1 f6c3 f6c3 f6c3 f6c3 f6c3 f6c3 f6c3 -13157 f6c4 f6c4 f6c4 * * 6d32 8ea2edb2,8ea2edb2v 9dad e9b6ad 9dad 00009dad f6c4 f6c4 f6c4 f6c4 f6c4 f6c4 f6c4 -13158 f6c5 f6c5 f6c5 * * 6d33 8ea2edb3,8ea2edb3v 9dcc e9b78c 9dcc 00009dcc f6c5 f6c5 f6c5 f6c5 f6c5 f6c5 f6c5 -13159 f6c6 f6c6 f6c6 * * 6d34 8ea2edb4,8ea2edb4v 9db3 e9b6b3 9db3 00009db3 f6c6 f6c6 f6c6 f6c6 f6c6 f6c6 f6c6 -13160 f6c7 f6c7 f6c7 * * 6d35 8ea2edb5,8ea2edb5v 9dcd e9b78d 9dcd 00009dcd f6c7 f6c7 f6c7 f6c7 f6c7 f6c7 f6c7 -13161 f6c8 f6c8 f6c8 * * 6d36 8ea2edb6,8ea2edb6v 9db2 e9b6b2 9db2 00009db2 f6c8 f6c8 f6c8 f6c8 f6c8 f6c8 f6c8 -13162 f6c9 f6c9 f6c9 * * 6d37 8ea2edb7,8ea2edb7v 9e7a e9b9ba 9e7a 00009e7a f6c9 f6c9 f6c9 f6c9 f6c9 f6c9 f6c9 -13163 f6ca f6ca f6ca * * 6d38 8ea2edb8,8ea2edb8v 9e9c e9ba9c 9e9c 00009e9c f6ca f6ca f6ca f6ca f6ca f6ca f6ca -13164 f6cb f6cb f6cb * * 6d39 8ea2edb9,8ea2edb9v 9eeb e9bbab 9eeb 00009eeb f6cb f6cb f6cb f6cb f6cb f6cb f6cb -13165 f6cc f6cc f6cc * * 6d3a 8ea2edba,8ea2edbav 9eee e9bbae 9eee 00009eee f6cc f6cc f6cc f6cc f6cc f6cc f6cc -13166 f6cd f6cd f6cd * * 6d3b 8ea2edbb,8ea2edbbv 9eed e9bbad 9eed 00009eed f6cd f6cd f6cd f6cd f6cd f6cd f6cd -13167 f6ce f6ce f6ce * * 6d3c 8ea2edbc,8ea2edbcv 9f1b e9bc9b 9f1b 00009f1b f6ce f6ce f6ce f6ce f6ce f6ce f6ce -13168 f6cf f6cf f6cf * * 6d3d 8ea2edbd,8ea2edbdv 9f18 e9bc98 9f18 00009f18 f6cf f6cf f6cf f6cf f6cf f6cf f6cf -13169 f6d0 f6d0 f6d0 * * 6d3e 8ea2edbe,8ea2edbev 9f1a e9bc9a 9f1a 00009f1a f6d0 f6d0 f6d0 f6d0 f6d0 f6d0 f6d0 -13170 f6d1 f6d1 f6d1 * * 6d3f 8ea2edbf,8ea2edbfv 9f31 e9bcb1 9f31 00009f31 f6d1 f6d1 f6d1 f6d1 f6d1 f6d1 f6d1 -13171 f6d2 f6d2 f6d2 * * 6d40 8ea2edc0,8ea2edc0v 9f4e e9bd8e 9f4e 00009f4e f6d2 f6d2 f6d2 f6d2 f6d2 f6d2 f6d2 -13172 f6d3 f6d3 f6d3 * * 6d41 8ea2edc1,8ea2edc1v 9f65 e9bda5 9f65 00009f65 f6d3 f6d3 f6d3 f6d3 f6d3 f6d3 f6d3 -13173 f6d4 f6d4 f6d4 * * 6d42 8ea2edc2,8ea2edc2v 9f64 e9bda4 9f64 00009f64 f6d4 f6d4 f6d4 f6d4 f6d4 f6d4 f6d4 -13174 f6d5 f6d5 f6d5 * * 6d43 8ea2edc3,8ea2edc3v 9f92 e9be92 9f92 00009f92 f6d5 f6d5 f6d5 f6d5 f6d5 f6d5 f6d5 -13175 f6d6 f6d6 f6d6 * * 6d44 8ea2edc4,8ea2edc4v 4eb9 e4bab9 4eb9 00004eb9 f6d6 f6d6 f6d6 f6d6 f6d6 f6d6 f6d6 -13176 f6d7 f6d7 f6d7 * * 6d45 8ea2edc5,8ea2edc5v 56c6 e59b86 56c6 000056c6 f6d7 f6d7 f6d7 f6d7 f6d7 f6d7 f6d7 -13177 f6d8 f6d8 f6d8 * * 6d46 8ea2edc6,8ea2edc6v 56c5 e59b85 56c5 000056c5 f6d8 f6d8 f6d8 f6d8 f6d8 f6d8 f6d8 -13178 f6d9 f6d9 f6d9 * * 6d47 8ea2edc7,8ea2edc7v 56cb e59b8b 56cb 000056cb f6d9 f6d9 f6d9 f6d9 f6d9 f6d9 f6d9 -13179 f6da f6da f6da * * 6d48 8ea2edc8,8ea2edc8v 5971 e5a5b1 5971 00005971 f6da f6da f6da f6da f6da f6da f6da -13180 f6db f6db f6db * * 6d49 8ea2edc9,8ea2edc9v 5b4b e5ad8b 5b4b 00005b4b f6db f6db f6db f6db f6db f6db f6db -13181 f6dc f6dc f6dc * * 6d4a 8ea2edca,8ea2edcav 5b4c e5ad8c 5b4c 00005b4c f6dc f6dc f6dc f6dc f6dc f6dc f6dc -13182 f6dd f6dd f6dd * * 6d4b 8ea2edcb,8ea2edcbv 5dd5 e5b795 5dd5 00005dd5 f6dd f6dd f6dd f6dd f6dd f6dd f6dd -13183 f6de f6de f6de * * 6d4c 8ea2edcc,8ea2edccv 5dd1 e5b791 5dd1 00005dd1 f6de f6de f6de f6de f6de f6de f6de -13184 f6df f6df f6df * * 6d4d 8ea2edcd,8ea2edcdv 5ef2 e5bbb2 5ef2 00005ef2 f6df f6df f6df f6df f6df f6df f6df -13185 f6e0 f6e0 f6e0 * * 6d4e 8ea2edce,8ea2edcev 6521 e694a1 6521 00006521 f6e0 f6e0 f6e0 f6e0 f6e0 f6e0 f6e0 -13186 f6e1 f6e1 f6e1 * * 6d4f 8ea2edcf,8ea2edcfv 6520 e694a0 6520 00006520 f6e1 f6e1 f6e1 f6e1 f6e1 f6e1 f6e1 -13187 f6e2 f6e2 f6e2 * * 6d50 8ea2edd0,8ea2edd0v 6526 e694a6 6526 00006526 f6e2 f6e2 f6e2 f6e2 f6e2 f6e2 f6e2 -13188 f6e3 f6e3 f6e3 * * 6d51 8ea2edd1,8ea2edd1v 6522 e694a2 6522 00006522 f6e3 f6e3,fca5 91bb,f6e3 f6e3 f6e3 f6e3 f6e3 -13189 f6e4 f6e4 f6e4 * * 6d52 8ea2edd2,8ea2edd2v 6b0b e6ac8b 6b0b 00006b0b f6e4 f6e4 f6e4 f6e4 f6e4 f6e4 f6e4 -13190 f6e5 f6e5 f6e5 * * 6d53 8ea2edd3,8ea2edd3v 6b08 e6ac88 6b08 00006b08 f6e5 f6e5 f6e5 f6e5 f6e5 f6e5 f6e5 -13191 f6e6 f6e6 f6e6 * * 6d54 8ea2edd4,8ea2edd4v 6b09 e6ac89 6b09 00006b09 f6e6 f6e6 f6e6 f6e6 f6e6 f6e6 f6e6 -13192 f6e7 f6e7 f6e7 * * 6d55 8ea2edd5,8ea2edd5v 6c0d e6b08d 6c0d 00006c0d f6e7 f6e7 f6e7 f6e7 f6e7 f6e7 f6e7 -13193 f6e8 f6e8 f6e8 * * 6d56 8ea2edd6,8ea2edd6v 7055 e78195 7055 00007055 f6e8 f6e8 f6e8 f6e8 f6e8 f6e8 f6e8 -13194 f6e9 f6e9 f6e9 * * 6d57 8ea2edd7,8ea2edd7v 7056 e78196 7056 00007056 f6e9 f6e9 f6e9 f6e9 f6e9 f6e9 f6e9 -13195 f6ea f6ea f6ea * * 6d58 8ea2edd8,8ea2edd8v 7057 e78197 7057 00007057 f6ea f6ea f6ea f6ea f6ea f6ea f6ea -13196 f6eb f6eb f6eb * * 6d59 8ea2edd9,8ea2edd9v 7052 e78192 7052 00007052 f6eb f6eb f6eb f6eb f6eb f6eb f6eb -13197 f6ec f6ec f6ec * * 6d5a 8ea2edda,8ea2eddav 721e e7889e 721e 0000721e f6ec f6ec f6ec f6ec f6ec f6ec f6ec -13198 f6ed f6ed f6ed * * 6d5b 8ea2eddb,8ea2eddbv 721f e7889f 721f 0000721f f6ed f6ed f6ed f6ed f6ed f6ed f6ed -13199 f6ee f6ee f6ee * * 6d5c 8ea2eddc,8ea2eddcv 72a9 e78aa9 72a9 000072a9 f6ee f6ee f6ee f6ee f6ee f6ee f6ee -13200 f6ef f6ef f6ef * * 6d5d 8ea2eddd,8ea2edddv 737f e78dbf 737f 0000737f f6ef f6ef f6ef f6ef f6ef f6ef f6ef -13201 f6f0 f6f0 f6f0 * * 6d5e 8ea2edde,8ea2eddev 74d8 e79398 74d8 000074d8 f6f0 f6f0 f6f0 f6f0 f6f0 f6f0 f6f0 -13202 f6f1 f6f1 f6f1 * * 6d5f 8ea2eddf,8ea2eddfv 74d5 e79395 74d5 000074d5 f6f1 f6f1 f6f1 f6f1 f6f1 f6f1 f6f1 -13203 f6f2 f6f2 f6f2 * * 6d60 8ea2ede0,8ea2ede0v 74d9 e79399 74d9 000074d9 f6f2 f6f2 f6f2 f6f2 f6f2 f6f2 f6f2 -13204 f6f3 f6f3 f6f3 * * 6d61 8ea2ede1,8ea2ede1v 74d7 e79397 74d7 000074d7 f6f3 f6f3 f6f3 f6f3 f6f3 f6f3 f6f3 -13205 f6f4 f6f4 f6f4 * * 6d62 8ea2ede2,8ea2ede2v 766d e799ad 766d 0000766d f6f4 f6f4 f6f4 f6f4 f6f4 f6f4 f6f4 -13206 f6f5 f6f5 f6f5 * * 6d63 8ea2ede3,8ea2ede3v 76ad e79aad 76ad 000076ad f6f5 f6f5 f6f5 f6f5 f6f5 f6f5 f6f5 -13207 f6f6 f6f6 f6f6 * * 6d64 8ea2ede4,8ea2ede4v 7935 e7a4b5 7935 00007935 f6f6 f6f6 f6f6 f6f6 f6f6 f6f6 f6f6 -13208 f6f7 f6f7 f6f7 * * 6d65 8ea2ede5,8ea2ede5v 79b4 e7a6b4 79b4 000079b4 f6f7 f6f7 f6f7 f6f7 f6f7 f6f7 f6f7 -13209 f6f8 f6f8 f6f8 * * 6d66 8ea2ede6,8ea2ede6v 7a70 e7a9b0 7a70 00007a70 f6f8 f6f8 f6f8 f6f8 f6f8 f6f8 f6f8 -13210 f6f9 f6f9 f6f9 * * 6d67 8ea2ede7,8ea2ede7v 7a71 e7a9b1 7a71 00007a71 f6f9 f6f9 f6f9 f6f9 f6f9 f6f9 f6f9 -13211 f6fa f6fa f6fa * * 6d68 8ea2ede8,8ea2ede8v 7c57 e7b197 7c57 00007c57 f6fa f6fa f6fa f6fa f6fa f6fa f6fa -13212 f6fb f6fb f6fb * * 6d69 8ea2ede9,8ea2ede9v 7c5c e7b19c 7c5c 00007c5c f6fb f6fb f6fb f6fb f6fb f6fb f6fb -13213 f6fc f6fc f6fc * * 6d6a 8ea2edea,8ea2edeav 7c59 e7b199 7c59 00007c59 f6fc f6fc,fda2 9066,f6fc f6fc f6fc f6fc f6fc -13214 f6fd f6fd f6fd * * 6d6b 8ea2edeb,8ea2edebv 7c5b e7b19b 7c5b 00007c5b f6fd f6fd f6fd f6fd f6fd f6fd f6fd -13215 f6fe f6fe f6fe * * 6d6c 8ea2edec,8ea2edecv 7c5a e7b19a 7c5a 00007c5a f6fe f6fe f6fe f6fe f6fe f6fe f6fe -13216 f740 f740 f740 * * 6d6d 8ea2eded,8ea2ededv 7cf4 e7b3b4 7cf4 00007cf4 f740 f740 f740 f740 f740 f740 f740 -13217 f741 f741 f741 * * 6d6e 8ea2edee,8ea2edeev 7cf1 e7b3b1 7cf1 00007cf1 f741 f741 f741 f741 f741 f741 f741 -13218 f742 f742 f742 * * 6d6f 8ea2edef,8ea2edefv 7e91 e7ba91 7e91 00007e91 f742 f742 f742 f742 f742 f742 f742 -13219 f743 f743 f743 * * 6d70 8ea2edf0,8ea2edf0v 7f4f e7bd8f 7f4f 00007f4f f743 f743 f743 f743 f743 f743 f743 -13220 f744 f744 f744 * * 6d71 8ea2edf1,8ea2edf1v 7f87 e7be87 7f87 00007f87 f744 f744 f744 f744 f744 f744 f744 -13221 f745 f745 f745 * * 6d72 8ea2edf2,8ea2edf2v 81de e8879e 81de 000081de f745 f745 f745 f745 f745 f745 f745 -13222 f746 f746 f746 * * 6d73 8ea2edf3,8ea2edf3v 826b e889ab 826b 0000826b f746 f746 f746 f746 f746 f746 f746 -13223 f747 f747 f747 * * 6d74 8ea2edf4,8ea2edf4v 8634 e898b4 8634 00008634 f747 f747 f747 f747 f747 f747 f747 -13224 f748 f748 f748 * * 6d75 8ea2edf5,8ea2edf5v 8635 e898b5 8635 00008635 f748 f748 f748 f748 f748 f748 f748 -13225 f749 f749 f749 * * 6d76 8ea2edf6,8ea2edf6v 8633 e898b3 8633 00008633 f749 f749 f749 f749 f749 f749 f749 -13226 f74a f74a f74a * * 6d77 8ea2edf7,8ea2edf7v 862c e898ac 862c 0000862c f74a f74a f74a f74a f74a f74a f74a -13227 f74b f74b f74b * * 6d78 8ea2edf8,8ea2edf8v 8632 e898b2 8632 00008632 f74b f74b f74b f74b f74b f74b f74b -13228 f74c f74c f74c * * 6d79 8ea2edf9,8ea2edf9v 8636 e898b6 8636 00008636 f74c f74c f74c f74c f74c f74c f74c -13229 f74d f74d f74d * * 6d7a 8ea2edfa,8ea2edfav 882c e8a0ac 882c 0000882c f74d f74d f74d f74d f74d f74d f74d -13230 f74e f74e f74e * * 6d7b 8ea2edfb,8ea2edfbv 8828 e8a0a8 8828 00008828 f74e f74e f74e f74e f74e f74e f74e -13231 f74f f74f f74f * * 6d7c 8ea2edfc,8ea2edfcv 8826 e8a0a6 8826 00008826 f74f f74f f74f f74f f74f f74f f74f -13232 f750 f750 f750 * * 6d7d 8ea2edfd,8ea2edfdv 882a e8a0aa 882a 0000882a f750 f750 f750 f750 f750 f750 f750 -13233 f751 f751 f751 * * 6d7e 8ea2edfe,8ea2edfev 8825 e8a0a5 8825 00008825 f751 f751 f751 f751 f751 f751 f751 -13234 f752 f752 f752 * * 6e21 8ea2eea1,8ea2eea1v 8971 e8a5b1 8971 00008971 f752 f752 f752 f752 f752 f752 f752 -13235 f753 f753 f753 * * 6e22 8ea2eea2,8ea2eea2v 89bf e8a6bf 89bf 000089bf f753 f753 f753 f753 f753 f753 f753 -13236 f754 f754 f754 * * 6e23 8ea2eea3,8ea2eea3v 89be e8a6be 89be 000089be f754 f754 f754 f754 f754 f754 f754 -13237 f755 f755 f755 * * 6e24 8ea2eea4,8ea2eea4v 89fb e8a7bb 89fb 000089fb f755 f755 f755 f755 f755 f755 f755 -13238 f756 f756 f756 * * 6e25 8ea2eea5,8ea2eea5v 8b7e e8adbe 8b7e 00008b7e f756 f756 f756 f756 f756 f756 f756 -13239 f757 f757 f757 * * 6e26 8ea2eea6,8ea2eea6v 8b84 e8ae84 8b84 00008b84 f757 f757 f757 f757 f757 f757 f757 -13240 f758 f758 f758 * * 6e27 8ea2eea7,8ea2eea7v 8b82 e8ae82 8b82 00008b82 f758 f758 f758 f758 f758 f758 f758 -13241 f759 f759 f759 * * 6e28 8ea2eea8,8ea2eea8v 8b86 e8ae86 8b86 00008b86 f759 f759 f759 f759 f759 f759 f759 -13242 f75a f75a f75a * * 6e29 8ea2eea9,8ea2eea9v 8b85 e8ae85 8b85 00008b85 f75a f75a f75a f75a f75a f75a f75a -13243 f75b f75b f75b * * 6e2a 8ea2eeaa,8ea2eeaav 8b7f e8adbf 8b7f 00008b7f f75b f75b f75b f75b f75b f75b f75b -13244 f75c f75c f75c * * 6e2b 8ea2eeab,8ea2eeabv 8d15 e8b495 8d15 00008d15 f75c f75c f75c f75c f75c f75c f75c -13245 f75d f75d f75d * * 6e2c 8ea2eeac,8ea2eeacv 8e95 e8ba95 8e95 00008e95 f75d f75d f75d f75d f75d f75d f75d -13246 f75e f75e f75e * * 6e2d 8ea2eead,8ea2eeadv 8e94 e8ba94 8e94 00008e94 f75e f75e f75e f75e f75e f75e f75e -13247 f75f f75f f75f * * 6e2e 8ea2eeae,8ea2eeaev 8e9a e8ba9a 8e9a 00008e9a f75f f75f f75f f75f f75f f75f f75f -13248 f760 f760 f760 * * 6e2f 8ea2eeaf,8ea2eeafv 8e92 e8ba92 8e92 00008e92 f760 f760 f760 f760 f760 f760 f760 -13249 f761 f761 f761 * * 6e30 8ea2eeb0,8ea2eeb0v 8e90 e8ba90 8e90 00008e90 f761 f761 f761 f761 f761 f761 f761 -13250 f762 f762 f762 * * 6e31 8ea2eeb1,8ea2eeb1v 8e96 e8ba96 8e96 00008e96 f762 f762 f762 f762 f762 f762 f762 -13251 f763 f763 f763 * * 6e32 8ea2eeb2,8ea2eeb2v 8e97 e8ba97 8e97 00008e97 f763 f763 f763 f763 f763 f763 f763 -13252 f764 f764 f764 * * 6e33 8ea2eeb3,8ea2eeb3v 8f60 e8bda0 8f60 00008f60 f764 f764 f764 f764 f764 f764 f764 -13253 f765 f765 f765 * * 6e34 8ea2eeb4,8ea2eeb4v 8f62 e8bda2 8f62 00008f62 f765 f765 f765 f765 f765 f765 f765 -13254 f766 f766 f766 * * 6e35 8ea2eeb5,8ea2eeb5v 9147 e98587 9147 00009147 f766 f766 f766 f766 f766 f766 f766 -13255 f767 f767 f767 * * 6e36 8ea2eeb6,8ea2eeb6v 944c e9918c 944c 0000944c f767 f767 f767 f767 f767 f767 f767 -13256 f768 f768 f768 * * 6e37 8ea2eeb7,8ea2eeb7v 9450 e99190 9450 00009450 f768 f768 f768 f768 f768 f768 f768 -13257 f769 f769 f769 * * 6e38 8ea2eeb8,8ea2eeb8v 944a e9918a 944a 0000944a f769 f769 f769 f769 f769 f769 f769 -13258 f76a f76a f76a * * 6e39 8ea2eeb9,8ea2eeb9v 944b e9918b 944b 0000944b f76a f76a f76a f76a f76a f76a f76a -13259 f76b f76b f76b * * 6e3a 8ea2eeba,8ea2eebav 944f e9918f 944f 0000944f f76b f76b f76b f76b f76b f76b f76b -13260 f76c f76c f76c * * 6e3b 8ea2eebb,8ea2eebbv 9447 e99187 9447 00009447 f76c f76c f76c f76c f76c f76c f76c -13261 f76d f76d f76d * * 6e3c 8ea2eebc,8ea2eebcv 9445 e99185 9445 00009445 f76d f76d f76d f76d f76d f76d f76d -13262 f76e f76e f76e * * 6e3d 8ea2eebd,8ea2eebdv 9448 e99188 9448 00009448 f76e f76e f76e f76e f76e f76e f76e -13263 f76f f76f f76f * * 6e3e 8ea2eebe,8ea2eebev 9449 e99189 9449 00009449 f76f f76f f76f f76f f76f f76f f76f -13264 f770 f770 f770 * * 6e3f 8ea2eebf,8ea2eebfv 9446 e99186 9446 00009446 f770 f770 f770 f770 f770 f770 f770 -13265 f771 f771 f771 * * 6e40 8ea2eec0,8ea2eec0v 973f e99cbf 973f 0000973f f771 f771 f771 f771 f771 f771 f771 -13266 f772 f772 f772 * * 6e41 8ea2eec1,8ea2eec1v 97e3 e99fa3 97e3 000097e3 f772 f772 f772 f772 f772 f772 f772 -13267 f773 f773 f773 * * 6e42 8ea2eec2,8ea2eec2v 986a e9a1aa 986a 0000986a f773 f773 f773 f773 f773 f773 f773 -13268 f774 f774 f774 * * 6e43 8ea2eec3,8ea2eec3v 9869 e9a1a9 9869 00009869 f774 f774 f774 f774 f774 f774 f774 -13269 f775 f775 f775 * * 6e44 8ea2eec4,8ea2eec4v 98cb e9a38b 98cb 000098cb f775 f775 f775 f775 f775 f775 f775 -13270 f776 f776 f776 * * 6e45 8ea2eec5,8ea2eec5v 9954 e9a594 9954 00009954 f776 f776 f776 f776 f776 f776 f776 -13271 f777 f777 f777 * * 6e46 8ea2eec6,8ea2eec6v 995b e9a59b 995b 0000995b f777 f777 f777 f777 f777 f777 f777 -13272 f778 f778 f778 * * 6e47 8ea2eec7,8ea2eec7v 9a4e e9a98e 9a4e 00009a4e f778 f778 f778 f778 f778 f778 f778 -13273 f779 f779 f779 * * 6e48 8ea2eec8,8ea2eec8v 9a53 e9a993 9a53 00009a53 f779 f779 f779 f779 f779 f779 f779 -13274 f77a f77a f77a * * 6e49 8ea2eec9,8ea2eec9v 9a54 e9a994 9a54 00009a54 f77a f77a f77a f77a f77a f77a f77a -13275 f77b f77b f77b * * 6e4a 8ea2eeca,8ea2eecav 9a4c e9a98c 9a4c 00009a4c f77b f77b f77b f77b f77b f77b f77b -13276 f77c f77c f77c * * 6e4b 8ea2eecb,8ea2eecbv 9a4f e9a98f 9a4f 00009a4f f77c f77c f77c f77c f77c f77c f77c -13277 f77d f77d f77d * * 6e4c 8ea2eecc,8ea2eeccv 9a48 e9a988 9a48 00009a48 f77d f77d f77d f77d f77d f77d f77d -13278 f77e f77e f77e * * 6e4d 8ea2eecd,8ea2eecdv 9a4a e9a98a 9a4a 00009a4a f77e f77e f77e f77e f77e f77e f77e -13279 f7a1 f7a1 f7a1 * * 6e4e 8ea2eece,8ea2eecev 9a49 e9a989 9a49 00009a49 f7a1 f7a1 f7a1 f7a1 f7a1 f7a1 f7a1 -13280 f7a2 f7a2 f7a2 * * 6e4f 8ea2eecf,8ea2eecfv 9a52 e9a992 9a52 00009a52 f7a2 f7a2 f7a2 f7a2 f7a2 f7a2 f7a2 -13281 f7a3 f7a3 f7a3 * * 6e50 8ea2eed0,8ea2eed0v 9a50 e9a990 9a50 00009a50 f7a3 f7a3 f7a3 f7a3 f7a3 f7a3 f7a3 -13282 f7a4 f7a4 f7a4 * * 6e51 8ea2eed1,8ea2eed1v 9ad0 e9ab90 9ad0 00009ad0 f7a4 f7a4 f7a4 f7a4 f7a4 f7a4 f7a4 -13283 f7a5 f7a5 f7a5 * * 6e52 8ea2eed2,8ea2eed2v 9b19 e9ac99 9b19 00009b19 f7a5 f7a5 f7a5 f7a5 f7a5 f7a5 f7a5 -13284 f7a6 f7a6 f7a6 * * 6e53 8ea2eed3,8ea2eed3v 9b2b e9acab 9b2b 00009b2b f7a6 f7a6 f7a6 f7a6 f7a6 f7a6 f7a6 -13285 f7a7 f7a7 f7a7 * * 6e54 8ea2eed4,8ea2eed4v 9b3b e9acbb 9b3b 00009b3b f7a7 f7a7 f7a7 f7a7 f7a7 f7a7 f7a7 -13286 f7a8 f7a8 f7a8 * * 6e55 8ea2eed5,8ea2eed5v 9b56 e9ad96 9b56 00009b56 f7a8 f7a8 f7a8 f7a8 f7a8 f7a8 f7a8 -13287 f7a9 f7a9 f7a9 * * 6e56 8ea2eed6,8ea2eed6v 9b55 e9ad95 9b55 00009b55 f7a9 f7a9 f7a9 f7a9 f7a9 f7a9 f7a9 -13288 f7aa f7aa f7aa * * 6e57 8ea2eed7,8ea2eed7v 9c46 e9b186 9c46 00009c46 f7aa f7aa f7aa f7aa f7aa f7aa f7aa -13289 f7ab f7ab f7ab * * 6e58 8ea2eed8,8ea2eed8v 9c48 e9b188 9c48 00009c48 f7ab f7ab f7ab f7ab f7ab f7ab f7ab -13290 f7ac f7ac f7ac * * 6e59 8ea2eed9,8ea2eed9v 9c3f e9b0bf 9c3f 00009c3f f7ac f7ac f7ac f7ac f7ac f7ac f7ac -13291 f7ad f7ad f7ad * * 6e5a 8ea2eeda,8ea2eedav 9c44 e9b184 9c44 00009c44 f7ad f7ad f7ad f7ad f7ad f7ad f7ad -13292 f7ae f7ae f7ae * * 6e5b 8ea2eedb,8ea2eedbv 9c39 e9b0b9 9c39 00009c39 f7ae f7ae f7ae f7ae f7ae f7ae f7ae -13293 f7af f7af f7af * * 6e5c 8ea2eedc,8ea2eedcv 9c33 e9b0b3 9c33 00009c33 f7af f7af f7af f7af f7af f7af f7af -13294 f7b0 f7b0 f7b0 * * 6e5d 8ea2eedd,8ea2eeddv 9c41 e9b181 9c41 00009c41 f7b0 f7b0 f7b0 f7b0 f7b0 f7b0 f7b0 -13295 f7b1 f7b1 f7b1 * * 6e5e 8ea2eede,8ea2eedev 9c3c e9b0bc 9c3c 00009c3c f7b1 f7b1 f7b1 f7b1 f7b1 f7b1 f7b1 -13296 f7b2 f7b2 f7b2 * * 6e5f 8ea2eedf,8ea2eedfv 9c37 e9b0b7 9c37 00009c37 f7b2 f7b2 f7b2 f7b2 f7b2 f7b2 f7b2 -13297 f7b3 f7b3 f7b3 * * 6e60 8ea2eee0,8ea2eee0v 9c34 e9b0b4 9c34 00009c34 f7b3 f7b3 f7b3 f7b3 f7b3 f7b3 f7b3 -13298 f7b4 f7b4 f7b4 * * 6e61 8ea2eee1,8ea2eee1v 9c32 e9b0b2 9c32 00009c32 f7b4 f7b4 f7b4 f7b4 f7b4 f7b4 f7b4 -13299 f7b5 f7b5 f7b5 * * 6e62 8ea2eee2,8ea2eee2v 9c3d e9b0bd 9c3d 00009c3d f7b5 f7b5 f7b5 f7b5 f7b5 f7b5 f7b5 -13300 f7b6 f7b6 f7b6 * * 6e63 8ea2eee3,8ea2eee3v 9c36 e9b0b6 9c36 00009c36 f7b6 f7b6 f7b6 f7b6 f7b6 f7b6 f7b6 -13301 f7b7 f7b7 f7b7 * * 6e64 8ea2eee4,8ea2eee4v 9ddb e9b79b 9ddb 00009ddb f7b7 f7b7 f7b7 f7b7 f7b7 f7b7 f7b7 -13302 f7b8 f7b8 f7b8 * * 6e65 8ea2eee5,8ea2eee5v 9dd2 e9b792 9dd2 00009dd2 f7b8 f7b8 f7b8 f7b8 f7b8 f7b8 f7b8 -13303 f7b9 f7b9 f7b9 * * 6e66 8ea2eee6,8ea2eee6v 9dde e9b79e 9dde 00009dde f7b9 f7b9 f7b9 f7b9 f7b9 f7b9 f7b9 -13304 f7ba f7ba f7ba * * 6e67 8ea2eee7,8ea2eee7v 9dda e9b79a 9dda 00009dda f7ba f7ba f7ba f7ba f7ba f7ba f7ba -13305 f7bb f7bb f7bb * * 6e68 8ea2eee8,8ea2eee8v 9dcb e9b78b 9dcb 00009dcb f7bb f7bb f7bb f7bb f7bb f7bb f7bb -13306 f7bc f7bc f7bc * * 6e69 8ea2eee9,8ea2eee9v 9dd0 e9b790 9dd0 00009dd0 f7bc f7bc f7bc f7bc f7bc f7bc f7bc -13307 f7bd f7bd f7bd * * 6e6a 8ea2eeea,8ea2eeeav 9ddc e9b79c 9ddc 00009ddc f7bd f7bd f7bd f7bd f7bd f7bd f7bd -13308 f7be f7be f7be * * 6e6b 8ea2eeeb,8ea2eeebv 9dd1 e9b791 9dd1 00009dd1 f7be f7be f7be f7be f7be f7be f7be -13309 f7bf f7bf f7bf * * 6e6c 8ea2eeec,8ea2eeecv 9ddf e9b79f 9ddf 00009ddf f7bf f7bf f7bf f7bf f7bf f7bf f7bf -13310 f7c0 f7c0 f7c0 * * 6e6d 8ea2eeed,8ea2eeedv 9de9 e9b7a9 9de9 00009de9 f7c0 f7c0 f7c0 f7c0 f7c0 f7c0 f7c0 -13311 f7c1 f7c1 f7c1 * * 6e6e 8ea2eeee,8ea2eeeev 9dd9 e9b799 9dd9 00009dd9 f7c1 f7c1 f7c1 f7c1 f7c1 f7c1 f7c1 -13312 f7c2 f7c2 f7c2 * * 6e6f 8ea2eeef,8ea2eeefv 9dd8 e9b798 9dd8 00009dd8 f7c2 f7c2 f7c2 f7c2 f7c2 f7c2 f7c2 -13313 f7c3 f7c3 f7c3 * * 6e70 8ea2eef0,8ea2eef0v 9dd6 e9b796 9dd6 00009dd6 f7c3 f7c3 f7c3 f7c3 f7c3 f7c3 f7c3 -13314 f7c4 f7c4 f7c4 * * 6e71 8ea2eef1,8ea2eef1v 9df5 e9b7b5 9df5 00009df5 f7c4 f7c4 f7c4 f7c4 f7c4 f7c4 f7c4 -13315 f7c5 f7c5 f7c5 * * 6e72 8ea2eef2,8ea2eef2v 9dd5 e9b795 9dd5 00009dd5 f7c5 f7c5 f7c5 f7c5 f7c5 f7c5 f7c5 -13316 f7c6 f7c6 f7c6 * * 6e73 8ea2eef3,8ea2eef3v 9ddd e9b79d 9ddd 00009ddd f7c6 f7c6 f7c6 f7c6 f7c6 f7c6 f7c6 -13317 f7c7 f7c7 f7c7 * * 6e74 8ea2eef4,8ea2eef4v 9eb6 e9bab6 9eb6 00009eb6 f7c7 f7c7 f7c7 f7c7 f7c7 f7c7 f7c7 -13318 f7c8 f7c8 f7c8 * * 6e75 8ea2eef5,8ea2eef5v 9ef0 e9bbb0 9ef0 00009ef0 f7c8 f7c8 f7c8 f7c8 f7c8 f7c8 f7c8 -13319 f7c9 f7c9 f7c9 * * 6e76 8ea2eef6,8ea2eef6v 9f35 e9bcb5 9f35 00009f35 f7c9 f7c9 f7c9 f7c9 f7c9 f7c9 f7c9 -13320 f7ca f7ca f7ca * * 6e77 8ea2eef7,8ea2eef7v 9f33 e9bcb3 9f33 00009f33 f7ca f7ca f7ca f7ca f7ca f7ca f7ca -13321 f7cb f7cb f7cb * * 6e78 8ea2eef8,8ea2eef8v 9f32 e9bcb2 9f32 00009f32 f7cb f7cb f7cb f7cb f7cb f7cb f7cb -13322 f7cc f7cc f7cc * * 6e79 8ea2eef9,8ea2eef9v 9f42 e9bd82 9f42 00009f42 f7cc f7cc f7cc f7cc f7cc f7cc f7cc -13323 f7cd f7cd f7cd * * 6e7a 8ea2eefa,8ea2eefav 9f6b e9bdab 9f6b 00009f6b f7cd f7cd f7cd f7cd f7cd f7cd f7cd -13324 f7ce f7ce f7ce * * 6e7b 8ea2eefb,8ea2eefbv 9f95 e9be95 9f95 00009f95 f7ce f7ce f7ce f7ce f7ce f7ce f7ce -13325 f7cf f7cf f7cf * * 6e7c 8ea2eefc,8ea2eefcv 9fa2 e9bea2 9fa2 00009fa2 f7cf f7cf f7cf f7cf f7cf f7cf f7cf -13326 f7d0 f7d0 f7d0 * * 6e7d 8ea2eefd,8ea2eefdv 513d e584bd 513d 0000513d f7d0 f7d0 f7d0 f7d0 f7d0 f7d0 f7d0 -13327 f7d1 f7d1 f7d1 * * 6e7e 8ea2eefe,8ea2eefev 5299 e58a99 5299 00005299 f7d1 f7d1 f7d1 f7d1 f7d1 f7d1 f7d1 -13328 f7d2 f7d2 f7d2 * * 6f21 8ea2efa1,8ea2efa1v 58e8 e5a3a8 58e8 000058e8 f7d2 f7d2 f7d2 f7d2 f7d2 f7d2 f7d2 -13329 f7d3 f7d3 f7d3 * * 6f22 8ea2efa2,8ea2efa2v 58e7 e5a3a7 58e7 000058e7 f7d3 f7d3 f7d3 f7d3 f7d3 f7d3 f7d3 -13330 f7d4 f7d4 f7d4 * * 6f23 8ea2efa3,8ea2efa3v 5972 e5a5b2 5972 00005972 f7d4 f7d4 f7d4 f7d4 f7d4 f7d4 f7d4 -13331 f7d5 f7d5 f7d5 * * 6f24 8ea2efa4,8ea2efa4v 5b4d e5ad8d 5b4d 00005b4d f7d5 f7d5 f7d5 f7d5 f7d5 f7d5 f7d5 -13332 f7d6 f7d6 f7d6 * * 6f25 8ea2efa5,8ea2efa5v 5dd8 e5b798 5dd8 00005dd8 f7d6 f7d6 f7d6 f7d6 f7d6 f7d6 f7d6 -13333 f7d7 f7d7 f7d7 * * 6f26 8ea2efa6,8ea2efa6v 882f e8a0af 882f 0000882f f7d7 f7d7 f7d7 f7d7 f7d7 f7d7 f7d7 -13334 f7d8 f7d8 f7d8 * * 6f27 8ea2efa7,8ea2efa7v 5f4f e5bd8f 5f4f 00005f4f f7d8 f7d8 f7d8 f7d8 f7d8 f7d8 f7d8 -13335 f7d9 f7d9 f7d9 * * 6f28 8ea2efa8,8ea2efa8v 6201 e68881 6201 00006201 f7d9 f7d9 f7d9 f7d9 f7d9 f7d9 f7d9 -13336 f7da f7da f7da * * 6f29 8ea2efa9,8ea2efa9v 6203 e68883 6203 00006203 f7da f7da f7da f7da f7da f7da f7da -13337 f7db f7db f7db * * 6f2a 8ea2efaa,8ea2efaav 6204 e68884 6204 00006204 f7db f7db f7db f7db f7db f7db f7db -13338 f7dc f7dc f7dc * * 6f2b 8ea2efab,8ea2efabv 6529 e694a9 6529 00006529 f7dc f7dc f7dc f7dc f7dc f7dc f7dc -13339 f7dd f7dd f7dd * * 6f2c 8ea2efac,8ea2efacv 6525 e694a5 6525 00006525 f7dd f7dd f7dd f7dd f7dd f7dd f7dd -13340 f7de f7de f7de * * 6f2d 8ea2efad,8ea2efadv 6596 e69696 6596 00006596 f7de f7de f7de f7de f7de f7de f7de -13341 f7df f7df f7df * * 6f2e 8ea2efae,8ea2efaev 66eb e69bab 66eb 000066eb f7df f7df f7df f7df f7df f7df f7df -13342 f7e0 f7e0 f7e0 * * 6f2f 8ea2efaf,8ea2efafv 6b11 e6ac91 6b11 00006b11 f7e0 f7e0 f7e0 f7e0 f7e0 f7e0 f7e0 -13343 f7e1 f7e1 f7e1 * * 6f30 8ea2efb0,8ea2efb0v 6b12 e6ac92 6b12 00006b12 f7e1 f7e1 f7e1 f7e1 f7e1 f7e1 f7e1 -13344 f7e2 f7e2 f7e2 * * 6f31 8ea2efb1,8ea2efb1v 6b0f e6ac8f 6b0f 00006b0f f7e2 f7e2 f7e2 f7e2 f7e2 f7e2 f7e2 -13345 f7e3 f7e3 f7e3 * * 6f32 8ea2efb2,8ea2efb2v 6bca e6af8a 6bca 00006bca f7e3 f7e3 f7e3 f7e3 f7e3 f7e3 f7e3 -13346 f7e4 f7e4 f7e4 * * 6f33 8ea2efb3,8ea2efb3v 705b e7819b 705b 0000705b f7e4 f7e4 f7e4 f7e4 f7e4 f7e4 f7e4 -13347 f7e5 f7e5 f7e5 * * 6f34 8ea2efb4,8ea2efb4v 705a e7819a 705a 0000705a f7e5 f7e5 f7e5 f7e5 f7e5 f7e5 f7e5 -13348 f7e6 f7e6 f7e6 * * 6f35 8ea2efb5,8ea2efb5v 7222 e788a2 7222 00007222 f7e6 f7e6 f7e6 f7e6 f7e6 f7e6 f7e6 -13349 f7e7 f7e7 f7e7 * * 6f36 8ea2efb6,8ea2efb6v 7382 e78e82 7382 00007382 f7e7 f7e7 f7e7 f7e7 f7e7 f7e7 f7e7 -13350 f7e8 f7e8 f7e8 * * 6f37 8ea2efb7,8ea2efb7v 7381 e78e81 7381 00007381 f7e8 f7e8 f7e8 f7e8 f7e8 f7e8 f7e8 -13351 f7e9 f7e9 f7e9 * * 6f38 8ea2efb8,8ea2efb8v 7383 e78e83 7383 00007383 f7e9 f7e9 f7e9 f7e9 f7e9 f7e9 f7e9 -13352 f7ea f7ea f7ea * * 6f39 8ea2efb9,8ea2efb9v 7670 e799b0 7670 00007670 f7ea f7ea f7ea f7ea f7ea f7ea f7ea -13353 f7eb f7eb f7eb * * 6f3a 8ea2efba,8ea2efbav 77d4 e79f94 77d4 000077d4 f7eb f7eb f7eb f7eb f7eb f7eb f7eb -13354 f7ec f7ec f7ec * * 6f3b 8ea2efbb,8ea2efbbv 7c67 e7b1a7 7c67 00007c67 f7ec f7ec f7ec f7ec f7ec f7ec f7ec -13355 f7ed f7ed f7ed * * 6f3c 8ea2efbc,8ea2efbcv 7c66 e7b1a6 7c66 00007c66 f7ed f7ed f7ed f7ed f7ed f7ed f7ed -13356 f7ee f7ee f7ee * * 6f3d 8ea2efbd,8ea2efbdv 7e95 e7ba95 7e95 00007e95 f7ee f7ee f7ee f7ee f7ee f7ee f7ee -13357 f7ef f7ef f7ef * * 6f3e 8ea2efbe,8ea2efbev 826c e889ac 826c 0000826c f7ef f7ef f7ef f7ef f7ef f7ef f7ef -13358 f7f0 f7f0 f7f0 * * 6f3f 8ea2efbf,8ea2efbfv 863a e898ba 863a 0000863a f7f0 f7f0 f7f0 f7f0 f7f0 f7f0 f7f0 -13359 f7f1 f7f1 f7f1 * * 6f40 8ea2efc0,8ea2efc0v 8640 e89980 8640 00008640 f7f1 f7f1 f7f1 f7f1 f7f1 f7f1 f7f1 -13360 f7f2 f7f2 f7f2 * * 6f41 8ea2efc1,8ea2efc1v 8639 e898b9 8639 00008639 f7f2 f7f2 f7f2 f7f2 f7f2 f7f2 f7f2 -13361 f7f3 f7f3 f7f3 * * 6f42 8ea2efc2,8ea2efc2v 863c e898bc 863c 0000863c f7f3 f7f3 f7f3 f7f3 f7f3 f7f3 f7f3 -13362 f7f4 f7f4 f7f4 * * 6f43 8ea2efc3,8ea2efc3v 8631 e898b1 8631 00008631 f7f4 f7f4 f7f4 f7f4 f7f4 f7f4 f7f4 -13363 f7f5 f7f5 f7f5 * * 6f44 8ea2efc4,8ea2efc4v 863b e898bb 863b 0000863b f7f5 f7f5 f7f5 f7f5 f7f5 f7f5 f7f5 -13364 f7f6 f7f6 f7f6 * * 6f45 8ea2efc5,8ea2efc5v 863e e898be 863e 0000863e f7f6 f7f6 f7f6 f7f6 f7f6 f7f6 f7f6 -13365 f7f7 f7f7 f7f7 * * 6f46 8ea2efc6,8ea2efc6v 8830 e8a0b0 8830 00008830 f7f7 f7f7 f7f7 f7f7 f7f7 f7f7 f7f7 -13366 f7f8 f7f8 f7f8 * * 6f47 8ea2efc7,8ea2efc7v 8832 e8a0b2 8832 00008832 f7f8 f7f8 f7f8 f7f8 f7f8 f7f8 f7f8 -13367 f7f9 f7f9 f7f9 * * 6f48 8ea2efc8,8ea2efc8v 882e e8a0ae 882e 0000882e f7f9 f7f9 f7f9 f7f9 f7f9 f7f9 f7f9 -13368 f7fa f7fa f7fa * * 6f49 8ea2efc9,8ea2efc9v 8833 e8a0b3 8833 00008833 f7fa f7fa f7fa f7fa f7fa f7fa f7fa -13369 f7fb f7fb f7fb * * 6f4a 8ea2efca,8ea2efcav 8976 e8a5b6 8976 00008976 f7fb f7fb f7fb f7fb f7fb f7fb f7fb -13370 f7fc f7fc f7fc * * 6f4b 8ea2efcb,8ea2efcbv 8974 e8a5b4 8974 00008974 f7fc f7fc f7fc f7fc f7fc f7fc f7fc -13371 f7fd f7fd f7fd * * 6f4c 8ea2efcc,8ea2efccv 8973 e8a5b3 8973 00008973 f7fd f7fd f7fd f7fd f7fd f7fd f7fd -13372 f7fe f7fe f7fe * * 6f4d 8ea2efcd,8ea2efcdv 89fe e8a7be 89fe 000089fe f7fe f7fe f7fe f7fe f7fe f7fe f7fe -13373 f840 f840 f840 * * 6f4e 8ea2efce,8ea2efcev 8b8c e8ae8c 8b8c 00008b8c f840 f840 f840 f840 f840 f840 f840 -13374 f841 f841 f841 * * 6f4f 8ea2efcf,8ea2efcfv 8b8e e8ae8e 8b8e 00008b8e f841 f841 f841 f841 f841 f841 f841 -13375 f842 f842 f842 * * 6f50 8ea2efd0,8ea2efd0v 8b8b e8ae8b 8b8b 00008b8b f842 f842 f842 f842 f842 f842 f842 -13376 f843 f843 f843 * * 6f51 8ea2efd1,8ea2efd1v 8b88 e8ae88 8b88 00008b88 f843 f843 f843 f843 f843 f843 f843 -13377 f844 f844 f844 * * 6f52 8ea2efd2,8ea2efd2v 8c45 e8b185 8c45 00008c45 f844 f844 f844 f844 f844 f844 f844 -13378 f845 f845 f845 * * 6f53 8ea2efd3,8ea2efd3v 8d19 e8b499 8d19 00008d19 f845 f845 f845 f845 f845 f845 f845 -13379 f846 f846 f846 * * 6f54 8ea2efd4,8ea2efd4v 8e98 e8ba98 8e98 00008e98 f846 f846 f846 f846 f846 f846 f846 -13380 f847 f847 f847 * * 6f55 8ea2efd5,8ea2efd5v 8f64 e8bda4 8f64 00008f64 f847 f847 f847 f847 f847 f847 f847 -13381 f848 f848 f848 * * 6f56 8ea2efd6,8ea2efd6v 8f63 e8bda3 8f63 00008f63 f848 f848 f848 f848 f848 f848 f848 -13382 f849 f849 f849 * * 6f57 8ea2efd7,8ea2efd7v 91bc e986bc 91bc 000091bc f849 f849 f849 f849 f849 f849 f849 -13383 f84a f84a f84a * * 6f58 8ea2efd8,8ea2efd8v 9462 e991a2 9462 00009462 f84a f84a f84a f84a f84a f84a f84a -13384 f84b f84b f84b * * 6f59 8ea2efd9,8ea2efd9v 9455 e99195 9455 00009455 f84b f84b f84b f84b f84b f84b f84b -13385 f84c f84c f84c * * 6f5a 8ea2efda,8ea2efdav 945d e9919d 945d 0000945d f84c f84c f84c f84c f84c f84c f84c -13386 f84d f84d f84d * * 6f5b 8ea2efdb,8ea2efdbv 9457 e99197 9457 00009457 f84d f84d f84d f84d f84d f84d f84d -13387 f84e f84e f84e * * 6f5c 8ea2efdc,8ea2efdcv 945e e9919e 945e 0000945e f84e f84e f84e f84e f84e f84e f84e -13388 f84f f84f f84f * * 6f5d 8ea2efdd,8ea2efddv 97c4 e99f84 97c4 000097c4 f84f f84f f84f f84f f84f f84f f84f -13389 f850 f850 f850 * * 6f5e 8ea2efde,8ea2efdev 97c5 e99f85 97c5 000097c5 f850 f850 f850 f850 f850 f850 f850 -13390 f851 f851 f851 * * 6f5f 8ea2efdf,8ea2efdfv 9800 e9a080 9800 00009800 f851 f851 f851 f851 f851 f851 f851 -13391 f852 f852 f852 * * 6f60 8ea2efe0,8ea2efe0v 9a56 e9a996 9a56 00009a56 f852 f852 f852 f852 f852 f852 f852 -13392 f853 f853 f853 * * 6f61 8ea2efe1,8ea2efe1v 9a59 e9a999 9a59 00009a59 f853 f853 f853 f853 f853 f853 f853 -13393 f854 f854 f854 * * 6f62 8ea2efe2,8ea2efe2v 9b1e e9ac9e 9b1e 00009b1e f854 f854 f854 f854 f854 f854 f854 -13394 f855 f855 f855 * * 6f63 8ea2efe3,8ea2efe3v 9b1f e9ac9f 9b1f 00009b1f f855 f855 f855 f855 f855 f855 f855 -13395 f856 f856 f856 * * 6f64 8ea2efe4,8ea2efe4v 9b20 e9aca0 9b20 00009b20 f856 f856 f856 f856 f856 f856 f856 -13396 f857 f857 f857 * * 6f65 8ea2efe5,8ea2efe5v 9c52 e9b192 9c52 00009c52 f857 f857 f857 f857 f857 f857 f857 -13397 f858 f858 f858 * * 6f66 8ea2efe6,8ea2efe6v 9c58 e9b198 9c58 00009c58 f858 f858 f858 f858 f858 f858 f858 -13398 f859 f859 f859 * * 6f67 8ea2efe7,8ea2efe7v 9c50 e9b190 9c50 00009c50 f859 f859 f859 f859 f859 f859 f859 -13399 f85a f85a f85a * * 6f68 8ea2efe8,8ea2efe8v 9c4a e9b18a 9c4a 00009c4a f85a f85a f85a f85a f85a f85a f85a -13400 f85b f85b f85b * * 6f69 8ea2efe9,8ea2efe9v 9c4d e9b18d 9c4d 00009c4d f85b f85b f85b f85b f85b f85b f85b -13401 f85c f85c f85c * * 6f6a 8ea2efea,8ea2efeav 9c4b e9b18b 9c4b 00009c4b f85c f85c f85c f85c f85c f85c f85c -13402 f85d f85d f85d * * 6f6b 8ea2efeb,8ea2efebv 9c55 e9b195 9c55 00009c55 f85d f85d f85d f85d f85d f85d f85d -13403 f85e f85e f85e * * 6f6c 8ea2efec,8ea2efecv 9c59 e9b199 9c59 00009c59 f85e f85e f85e f85e f85e f85e f85e -13404 f85f f85f f85f * * 6f6d 8ea2efed,8ea2efedv 9c4c e9b18c 9c4c 00009c4c f85f f85f f85f f85f f85f f85f f85f -13405 f860 f860 f860 * * 6f6e 8ea2efee,8ea2efeev 9c4e e9b18e 9c4e 00009c4e f860 f860 f860 f860 f860 f860 f860 -13406 f861 f861 f861 * * 6f6f 8ea2efef,8ea2efefv 9dfb e9b7bb 9dfb 00009dfb f861 f861 f861 f861 f861 f861 f861 -13407 f862 f862 f862 * * 6f70 8ea2eff0,8ea2eff0v 9df7 e9b7b7 9df7 00009df7 f862 f862 f862 f862 f862 f862 f862 -13408 f863 f863 f863 * * 6f71 8ea2eff1,8ea2eff1v 9def e9b7af 9def 00009def f863 f863 f863 f863 f863 f863 f863 -13409 f864 f864 f864 * * 6f72 8ea2eff2,8ea2eff2v 9de3 e9b7a3 9de3 00009de3 f864 f864 f864 f864 f864 f864 f864 -13410 f865 f865 f865 * * 6f73 8ea2eff3,8ea2eff3v 9deb e9b7ab 9deb 00009deb f865 f865 f865 f865 f865 f865 f865 -13411 f866 f866 f866 * * 6f74 8ea2eff4,8ea2eff4v 9df8 e9b7b8 9df8 00009df8 f866 f866 f866 f866 f866 f866 f866 -13412 f867 f867 f867 * * 6f75 8ea2eff5,8ea2eff5v 9de4 e9b7a4 9de4 00009de4 f867 f867 f867 f867 f867 f867 f867 -13413 f868 f868 f868 * * 6f76 8ea2eff6,8ea2eff6v 9df6 e9b7b6 9df6 00009df6 f868 f868 f868 f868 f868 f868 f868 -13414 f869 f869 f869 * * 6f77 8ea2eff7,8ea2eff7v 9de1 e9b7a1 9de1 00009de1 f869 f869 f869 f869 f869 f869 f869 -13415 f86a f86a f86a * * 6f78 8ea2eff8,8ea2eff8v 9dee e9b7ae 9dee 00009dee f86a f86a f86a f86a f86a f86a f86a -13416 f86b f86b f86b * * 6f79 8ea2eff9,8ea2eff9v 9de6 e9b7a6 9de6 00009de6 f86b f86b f86b f86b f86b f86b f86b -13417 f86c f86c f86c * * 6f7a 8ea2effa,8ea2effav 9df2 e9b7b2 9df2 00009df2 f86c f86c f86c f86c f86c f86c f86c -13418 f86d f86d f86d * * 6f7b 8ea2effb,8ea2effbv 9df0 e9b7b0,eeaf92 9df0,ebd2 00009df0,0000ebd2 9c6b,f86d f86d f86d 9c6b,f86d f86d f86d 9c6b,f86d -13419 f86e f86e f86e * * 6f7c 8ea2effc,8ea2effcv 9de2 e9b7a2 9de2 00009de2 f86e f86e f86e f86e f86e f86e f86e -13420 f86f f86f f86f * * 6f7d 8ea2effd,8ea2effdv 9dec e9b7ac 9dec 00009dec f86f f86f f86f f86f f86f f86f f86f -13421 f870 f870 f870 * * 6f7e 8ea2effe,8ea2effev 9df4 e9b7b4 9df4 00009df4 f870 f870 f870 f870 f870 f870 f870 -13422 f871 f871 f871 * * 7021 8ea2f0a1,8ea2f0a1v 9df3 e9b7b3 9df3 00009df3 f871 f871 f871 f871 f871 f871 f871 -13423 f872 f872 f872 * * 7022 8ea2f0a2,8ea2f0a2v 9de8 e9b7a8 9de8 00009de8 f872 f872 f872 f872 f872 f872 f872 -13424 f873 f873 f873 * * 7023 8ea2f0a3,8ea2f0a3v 9ded e9b7ad 9ded 00009ded f873 f873 f873 f873 f873 f873 f873 -13425 f874 f874 f874 * * 7024 8ea2f0a4,8ea2f0a4v 9ec2 e9bb82 9ec2 00009ec2 f874 f874 f874 f874 f874 f874 f874 -13426 f875 f875 f875 * * 7025 8ea2f0a5,8ea2f0a5v 9ed0 e9bb90 9ed0 00009ed0 f875 f875 f875 f875 f875 f875 f875 -13427 f876 f876 f876 * * 7026 8ea2f0a6,8ea2f0a6v 9ef2 e9bbb2 9ef2 00009ef2 f876 f876 f876 f876 f876 f876 f876 -13428 f877 f877 f877 * * 7027 8ea2f0a7,8ea2f0a7v 9ef3 e9bbb3 9ef3 00009ef3 f877 f877 f877 f877 f877 f877 f877 -13429 f878 f878 f878 * * 7028 8ea2f0a8,8ea2f0a8v 9f06 e9bc86 9f06 00009f06 f878 f878 f878 f878 f878 f878 f878 -13430 f879 f879 f879 * * 7029 8ea2f0a9,8ea2f0a9v 9f1c e9bc9c 9f1c 00009f1c f879 f879 f879 f879 f879 f879 f879 -13431 f87a f87a f87a * * 702a 8ea2f0aa,8ea2f0aav 9f38 e9bcb8 9f38 00009f38 f87a f87a f87a f87a f87a f87a f87a -13432 f87b f87b f87b * * 702b 8ea2f0ab,8ea2f0abv 9f37 e9bcb7 9f37 00009f37 f87b f87b f87b f87b f87b f87b f87b -13433 f87c f87c f87c * * 702c 8ea2f0ac,8ea2f0acv 9f36 e9bcb6 9f36 00009f36 f87c f87c f87c f87c f87c f87c f87c -13434 f87d f87d f87d * * 702d 8ea2f0ad,8ea2f0adv 9f43 e9bd83 9f43 00009f43 f87d f87d f87d f87d f87d f87d f87d -13435 f87e f87e f87e * * 702e 8ea2f0ae,8ea2f0aev 9f4f e9bd8f 9f4f 00009f4f f87e f87e f87e f87e f87e f87e f87e -13436 f8a1 f8a1 f8a1 * * 702f 8ea2f0af,8ea2f0afv 9f71 e9bdb1 9f71 00009f71 f8a1 f8a1 f8a1 f8a1 f8a1 f8a1 f8a1 -13437 f8a2 f8a2 f8a2 * * 7030 8ea2f0b0,8ea2f0b0v 9f70 e9bdb0 9f70 00009f70 f8a2 f8a2 f8a2 f8a2 f8a2 f8a2 f8a2 -13438 f8a3 f8a3 f8a3 * * 7031 8ea2f0b1,8ea2f0b1v 9f6e e9bdae 9f6e 00009f6e f8a3 f8a3 f8a3 f8a3 f8a3 f8a3 f8a3 -13439 f8a4 f8a4 f8a4 * * 7032 8ea2f0b2,8ea2f0b2v 9f6f e9bdaf 9f6f 00009f6f f8a4 f8a4 f8a4 f8a4 f8a4 f8a4 f8a4 -13440 f8a5 f8a5 f8a5 * * 7033 8ea2f0b3,8ea2f0b3v 56d3 e59b93 56d3 000056d3 f8a5 f8a5 f8a5 f8a5 f8a5 f8a5 f8a5 -13441 f8a6 f8a6 f8a6 * * 7034 8ea2f0b4,8ea2f0b4v 56cd e59b8d 56cd 000056cd f8a6 f8a6 f8a6 f8a6 f8a6 f8a6 f8a6 -13442 f8a7 f8a7 f8a7 * * 7035 8ea2f0b5,8ea2f0b5v 5b4e e5ad8e 5b4e 00005b4e f8a7 f8a7 f8a7 f8a7 f8a7 f8a7 f8a7 -13443 f8a8 f8a8 f8a8 * * 7036 8ea2f0b6,8ea2f0b6v 5c6d e5b1ad 5c6d 00005c6d f8a8 f8a8 f8a8 f8a8 f8a8 f8a8 f8a8 -13444 f8a9 f8a9 f8a9 * * 7037 8ea2f0b7,8ea2f0b7v 652d e694ad 652d 0000652d f8a9 f8a9 f8a9 f8a9 f8a9 f8a9 f8a9 -13445 f8aa f8aa f8aa * * 7038 8ea2f0b8,8ea2f0b8v 66ed e69bad 66ed 000066ed f8aa f8aa f8aa f8aa f8aa f8aa f8aa -13446 f8ab f8ab f8ab * * 7039 8ea2f0b9,8ea2f0b9v 66ee e69bae 66ee 000066ee f8ab f8ab f8ab f8ab f8ab f8ab f8ab -13447 f8ac f8ac f8ac * * 703a 8ea2f0ba,8ea2f0bav 6b13 e6ac93 6b13 00006b13 f8ac f8ac f8ac f8ac f8ac f8ac f8ac -13448 f8ad f8ad f8ad * * 703b 8ea2f0bb,8ea2f0bbv 705f e7819f 705f 0000705f f8ad f8ad f8ad f8ad f8ad f8ad f8ad -13449 f8ae f8ae f8ae * * 703c 8ea2f0bc,8ea2f0bcv 7061 e781a1 7061 00007061 f8ae f8ae f8ae f8ae f8ae f8ae f8ae -13450 f8af f8af f8af * * 703d 8ea2f0bd,8ea2f0bdv 705d e7819d 705d 0000705d f8af f8af f8af f8af f8af f8af f8af -13451 f8b0 f8b0 f8b0 * * 703e 8ea2f0be,8ea2f0bev 7060 e781a0 7060 00007060 f8b0 f8b0 f8b0 f8b0 f8b0 f8b0 f8b0 -13452 f8b1 f8b1 f8b1 * * 703f 8ea2f0bf,8ea2f0bfv 7223 e788a3 7223 00007223 f8b1 f8b1 f8b1 f8b1 f8b1 f8b1 f8b1 -13453 f8b2 f8b2 f8b2 * * 7040 8ea2f0c0,8ea2f0c0v 74db e7939b 74db 000074db f8b2 f8b2 f8b2 f8b2 f8b2 f8b2 f8b2 -13454 f8b3 f8b3 f8b3 * * 7041 8ea2f0c1,8ea2f0c1v 74e5 e793a5 74e5 000074e5 f8b3 f8b3 f8b3 f8b3 f8b3 f8b3 f8b3 -13455 f8b4 f8b4 f8b4 * * 7042 8ea2f0c2,8ea2f0c2v 77d5 e79f95 77d5 000077d5 f8b4 f8b4 f8b4 f8b4 f8b4 f8b4 f8b4 -13456 f8b5 f8b5 f8b5 * * 7043 8ea2f0c3,8ea2f0c3v 7938 e7a4b8 7938 00007938 f8b5 f8b5 f8b5 f8b5 f8b5 f8b5 f8b5 -13457 f8b6 f8b6 f8b6 * * 7044 8ea2f0c4,8ea2f0c4v 79b7 e7a6b7 79b7 000079b7 f8b6 f8b6 f8b6 f8b6 f8b6 f8b6 f8b6 -13458 f8b7 f8b7 f8b7 * * 7045 8ea2f0c5,8ea2f0c5v 79b6 e7a6b6 79b6 000079b6 f8b7 f8b7 f8b7 f8b7 f8b7 f8b7 f8b7 -13459 f8b8 f8b8 f8b8 * * 7046 8ea2f0c6,8ea2f0c6v 7c6a e7b1aa 7c6a 00007c6a f8b8 f8b8 f8b8 f8b8 f8b8 f8b8 f8b8 -13460 f8b9 f8b9 f8b9 * * 7047 8ea2f0c7,8ea2f0c7v 7e97 e7ba97 7e97 00007e97 f8b9 f8b9 f8b9 f8b9 f8b9 f8b9 f8b9 -13461 f8ba f8ba f8ba * * 7048 8ea2f0c8,8ea2f0c8v 7f89 e7be89 7f89 00007f89 f8ba f8ba f8ba f8ba f8ba f8ba f8ba -13462 f8bb f8bb f8bb * * 7049 8ea2f0c9,8ea2f0c9v 826d e889ad 826d 0000826d f8bb f8bb f8bb f8bb f8bb f8bb f8bb -13463 f8bc f8bc f8bc * * 704a 8ea2f0ca,8ea2f0cav 8643 e89983 8643 00008643 f8bc f8bc f8bc f8bc f8bc f8bc f8bc -13464 f8bd f8bd f8bd * * 704b 8ea2f0cb,8ea2f0cbv 8838 e8a0b8 8838 00008838 f8bd f8bd f8bd f8bd f8bd f8bd f8bd -13465 f8be f8be f8be * * 704c 8ea2f0cc,8ea2f0ccv 8837 e8a0b7 8837 00008837 f8be f8be f8be f8be f8be f8be f8be -13466 f8bf f8bf f8bf * * 704d 8ea2f0cd,8ea2f0cdv 8835 e8a0b5 8835 00008835 f8bf f8bf f8bf f8bf f8bf f8bf f8bf -13467 f8c0 f8c0 f8c0 * * 704e 8ea2f0ce,8ea2f0cev 884b e8a18b 884b 0000884b f8c0 f8c0 f8c0 f8c0 f8c0 f8c0 f8c0 -13468 f8c1 f8c1 f8c1 * * 704f 8ea2f0cf,8ea2f0cfv 8b94 e8ae94 8b94 00008b94 f8c1 f8c1 f8c1 f8c1 f8c1 f8c1 f8c1 -13469 f8c2 f8c2 f8c2 * * 7050 8ea2f0d0,8ea2f0d0v 8b95 e8ae95 8b95 00008b95 f8c2 f8c2 f8c2 f8c2 f8c2 f8c2 f8c2 -13470 f8c3 f8c3 f8c3 * * 7051 8ea2f0d1,8ea2f0d1v 8e9e e8ba9e 8e9e 00008e9e f8c3 f8c3 f8c3 f8c3 f8c3 f8c3 f8c3 -13471 f8c4 f8c4 f8c4 * * 7052 8ea2f0d2,8ea2f0d2v 8e9f e8ba9f 8e9f 00008e9f f8c4 f8c4 f8c4 f8c4 f8c4 f8c4 f8c4 -13472 f8c5 f8c5 f8c5 * * 7053 8ea2f0d3,8ea2f0d3v 8ea0 e8baa0 8ea0 00008ea0 f8c5 f8c5 f8c5 f8c5 f8c5 f8c5 f8c5 -13473 f8c6 f8c6 f8c6 * * 7054 8ea2f0d4,8ea2f0d4v 8e9d e8ba9d 8e9d 00008e9d f8c6 f8c6 f8c6 f8c6 f8c6 f8c6 f8c6 -13474 f8c7 f8c7 f8c7 * * 7055 8ea2f0d5,8ea2f0d5v 91be e986be 91be 000091be f8c7 f8c7 f8c7 f8c7 f8c7 f8c7 f8c7 -13475 f8c8 f8c8 f8c8 * * 7056 8ea2f0d6,8ea2f0d6v 91bd e986bd 91bd 000091bd f8c8 f8c8 f8c8 f8c8 f8c8 f8c8 f8c8 -13476 f8c9 f8c9 f8c9 * * 7057 8ea2f0d7,8ea2f0d7v 91c2 e98782 91c2 000091c2 f8c9 f8c9 f8c9 f8c9 f8c9 f8c9 f8c9 -13477 f8ca f8ca f8ca * * 7058 8ea2f0d8,8ea2f0d8v 946b e991ab 946b 0000946b f8ca f8ca f8ca f8ca f8ca f8ca f8ca -13478 f8cb f8cb f8cb * * 7059 8ea2f0d9,8ea2f0d9v 9468 e991a8 9468 00009468 f8cb f8cb f8cb f8cb f8cb f8cb f8cb -13479 f8cc f8cc f8cc * * 705a 8ea2f0da,8ea2f0dav 9469 e991a9 9469 00009469 f8cc f8cc f8cc f8cc f8cc f8cc f8cc -13480 f8cd f8cd f8cd * * 705b 8ea2f0db,8ea2f0dbv 96e5 e99ba5 96e5 000096e5 f8cd f8cd f8cd f8cd f8cd f8cd f8cd -13481 f8ce f8ce f8ce * * 705c 8ea2f0dc,8ea2f0dcv 9746 e99d86 9746 00009746 f8ce f8ce f8ce f8ce f8ce f8ce f8ce -13482 f8cf f8cf f8cf * * 705d 8ea2f0dd,8ea2f0ddv 9743 e99d83 9743 00009743 f8cf f8cf f8cf f8cf f8cf f8cf f8cf -13483 f8d0 f8d0 f8d0 * * 705e 8ea2f0de,8ea2f0dev 9747 e99d87 9747 00009747 f8d0 f8d0 f8d0 f8d0 f8d0 f8d0 f8d0 -13484 f8d1 f8d1 f8d1 * * 705f 8ea2f0df,8ea2f0dfv 97c7 e99f87 97c7 000097c7 f8d1 f8d1 f8d1 f8d1 f8d1 f8d1 f8d1 -13485 f8d2 f8d2 f8d2 * * 7060 8ea2f0e0,8ea2f0e0v 97e5 e99fa5 97e5 000097e5 f8d2 f8d2 f8d2 f8d2 f8d2 f8d2 f8d2 -13486 f8d3 f8d3 f8d3 * * 7061 8ea2f0e1,8ea2f0e1v 9a5e e9a99e 9a5e 00009a5e f8d3 f8d3 f8d3 f8d3 f8d3 f8d3 f8d3 -13487 f8d4 f8d4 f8d4 * * 7062 8ea2f0e2,8ea2f0e2v 9ad5 e9ab95 9ad5 00009ad5 f8d4 f8d4 f8d4 f8d4 f8d4 f8d4 f8d4 -13488 f8d5 f8d5 f8d5 * * 7063 8ea2f0e3,8ea2f0e3v 9b59 e9ad99 9b59 00009b59 f8d5 f8d5 f8d5 f8d5 f8d5 f8d5 f8d5 -13489 f8d6 f8d6 f8d6 * * 7064 8ea2f0e4,8ea2f0e4v 9c63 e9b1a3 9c63 00009c63 f8d6 f8d6 f8d6 f8d6 f8d6 f8d6 f8d6 -13490 f8d7 f8d7 f8d7 * * 7065 8ea2f0e5,8ea2f0e5v 9c67 e9b1a7 9c67 00009c67 f8d7 f8d7 f8d7 f8d7 f8d7 f8d7 f8d7 -13491 f8d8 f8d8 f8d8 * * 7066 8ea2f0e6,8ea2f0e6v 9c66 e9b1a6 9c66 00009c66 f8d8 f8d8 f8d8 f8d8 f8d8 f8d8 f8d8 -13492 f8d9 f8d9 f8d9 * * 7067 8ea2f0e7,8ea2f0e7v 9c62 e9b1a2 9c62 00009c62 f8d9 f8d9 f8d9 f8d9 f8d9 f8d9 f8d9 -13493 f8da f8da f8da * * 7068 8ea2f0e8,8ea2f0e8v 9c5e e9b19e 9c5e 00009c5e f8da f8da f8da f8da f8da f8da f8da -13494 f8db f8db f8db * * 7069 8ea2f0e9,8ea2f0e9v 9c60 e9b1a0 9c60 00009c60 f8db f8db f8db f8db f8db f8db f8db -13495 f8dc f8dc f8dc * * 706a 8ea2f0ea,8ea2f0eav 9e02 e9b882 9e02 00009e02 f8dc f8dc f8dc f8dc f8dc f8dc f8dc -13496 f8dd f8dd f8dd * * 706b 8ea2f0eb,8ea2f0ebv 9dfe e9b7be 9dfe 00009dfe f8dd f8dd f8dd f8dd f8dd f8dd f8dd -13497 f8de f8de f8de * * 706c 8ea2f0ec,8ea2f0ecv 9e07 e9b887 9e07 00009e07 f8de f8de f8de f8de f8de f8de f8de -13498 f8df f8df f8df * * 706d 8ea2f0ed,8ea2f0edv 9e03 e9b883 9e03 00009e03 f8df f8df f8df f8df f8df f8df f8df -13499 f8e0 f8e0 f8e0 * * 706e 8ea2f0ee,8ea2f0eev 9e06 e9b886 9e06 00009e06 f8e0 f8e0 f8e0 f8e0 f8e0 f8e0 f8e0 -13500 f8e1 f8e1 f8e1 * * 706f 8ea2f0ef,8ea2f0efv 9e05 e9b885 9e05 00009e05 f8e1 f8e1 f8e1 f8e1 f8e1 f8e1 f8e1 -13501 f8e2 f8e2 f8e2 * * 7070 8ea2f0f0,8ea2f0f0v 9e00 e9b880 9e00 00009e00 f8e2 f8e2 f8e2 f8e2 f8e2 f8e2 f8e2 -13502 f8e3 f8e3 f8e3 * * 7071 8ea2f0f1,8ea2f0f1v 9e01 e9b881 9e01 00009e01 f8e3 f8e3 f8e3 f8e3 f8e3 f8e3 f8e3 -13503 f8e4 f8e4 f8e4 * * 7072 8ea2f0f2,8ea2f0f2v 9e09 e9b889 9e09 00009e09 f8e4 f8e4 f8e4 f8e4 f8e4 f8e4 f8e4 -13504 f8e5 f8e5 f8e5 * * 7073 8ea2f0f3,8ea2f0f3v 9dff e9b7bf 9dff 00009dff f8e5 f8e5 f8e5 f8e5 f8e5 f8e5 f8e5 -13505 f8e6 f8e6 f8e6 * * 7074 8ea2f0f4,8ea2f0f4v 9dfd e9b7bd 9dfd 00009dfd f8e6 f8e6 f8e6 f8e6 f8e6 f8e6 f8e6 -13506 f8e7 f8e7 f8e7 * * 7075 8ea2f0f5,8ea2f0f5v 9e04 e9b884 9e04 00009e04 f8e7 f8e7 f8e7 f8e7 f8e7 f8e7 f8e7 -13507 f8e8 f8e8 f8e8 * * 7076 8ea2f0f6,8ea2f0f6v 9ea0 e9baa0 9ea0 00009ea0 f8e8 f8e8 f8e8 f8e8 f8e8 f8e8 f8e8 -13508 f8e9 f8e9 f8e9 * * 7077 8ea2f0f7,8ea2f0f7v 9f1e e9bc9e 9f1e 00009f1e f8e9 f8e9 f8e9 f8e9 f8e9 f8e9 f8e9 -13509 f8ea f8ea f8ea * * 7078 8ea2f0f8,8ea2f0f8v 9f46 e9bd86 9f46 00009f46 f8ea f8ea f8ea f8ea f8ea f8ea f8ea -13510 f8eb f8eb f8eb * * 7079 8ea2f0f9,8ea2f0f9v 9f74 e9bdb4 9f74 00009f74 f8eb f8eb f8eb f8eb f8eb f8eb f8eb -13511 f8ec f8ec f8ec * * 707a 8ea2f0fa,8ea2f0fav 9f75 e9bdb5 9f75 00009f75 f8ec f8ec f8ec f8ec f8ec f8ec f8ec -13512 f8ed f8ed f8ed * * 707b 8ea2f0fb,8ea2f0fbv 9f76 e9bdb6 9f76 00009f76 f8ed f8ed f8ed f8ed f8ed f8ed f8ed -13513 f8ee f8ee f8ee * * 707c 8ea2f0fc,8ea2f0fcv 56d4 e59b94 56d4 000056d4 f8ee f8ee f8ee f8ee f8ee f8ee f8ee -13514 f8ef f8ef f8ef * * 707d 8ea2f0fd,8ea2f0fdv 652e e694ae 652e 0000652e f8ef f8ef f8ef f8ef f8ef f8ef f8ef -13515 f8f0 f8f0 f8f0 * * 707e 8ea2f0fe,8ea2f0fev 65b8 e696b8 65b8 000065b8 f8f0 f8f0 f8f0 f8f0 f8f0 f8f0 f8f0 -13516 f8f1 f8f1 f8f1 * * 7121 8ea2f1a1,8ea2f1a1v 6b18 e6ac98 6b18 00006b18 f8f1 f8f1 f8f1 f8f1 f8f1 f8f1 f8f1 -13517 f8f2 f8f2 f8f2 * * 7122 8ea2f1a2,8ea2f1a2v 6b19 e6ac99 6b19 00006b19 f8f2 f8f2 f8f2 f8f2 f8f2 f8f2 f8f2 -13518 f8f3 f8f3 f8f3 * * 7123 8ea2f1a3,8ea2f1a3v 6b17 e6ac97 6b17 00006b17 f8f3 f8f3 f8f3 f8f3 f8f3 f8f3 f8f3 -13519 f8f4 f8f4 f8f4 * * 7124 8ea2f1a4,8ea2f1a4v 6b1a e6ac9a 6b1a 00006b1a f8f4 f8f4 f8f4 f8f4 f8f4 f8f4 f8f4 -13520 f8f5 f8f5 f8f5 * * 7125 8ea2f1a5,8ea2f1a5v 7062 e781a2 7062 00007062 f8f5 f8f5 f8f5 f8f5 f8f5 f8f5 f8f5 -13521 f8f6 f8f6 f8f6 * * 7126 8ea2f1a6,8ea2f1a6v 7226 e788a6 7226 00007226 f8f6 f8f6 f8f6 f8f6 f8f6 f8f6 f8f6 -13522 f8f7 f8f7 f8f7 * * 7127 8ea2f1a7,8ea2f1a7v 72aa e78aaa 72aa 000072aa f8f7 f8f7 f8f7 f8f7 f8f7 f8f7 f8f7 -13523 f8f8 f8f8 f8f8 * * 7128 8ea2f1a8,8ea2f1a8v 77d8 e79f98 77d8 000077d8 f8f8 f8f8 f8f8 f8f8 f8f8 f8f8 f8f8 -13524 f8f9 f8f9 f8f9 * * 7129 8ea2f1a9,8ea2f1a9v 77d9 e79f99 77d9 000077d9 f8f9 f8f9 f8f9 f8f9 f8f9 f8f9 f8f9 -13525 f8fa f8fa f8fa * * 712a 8ea2f1aa,8ea2f1aav 7939 e7a4b9 7939 00007939 f8fa f8fa f8fa f8fa f8fa f8fa f8fa -13526 f8fb f8fb f8fb * * 712b 8ea2f1ab,8ea2f1abv 7c69 e7b1a9 7c69 00007c69 f8fb f8fb f8fb f8fb f8fb f8fb f8fb -13527 f8fc f8fc f8fc * * 712c 8ea2f1ac,8ea2f1acv 7c6b e7b1ab 7c6b 00007c6b f8fc f8fc f8fc f8fc f8fc f8fc f8fc -13528 f8fd f8fd f8fd * * 712d 8ea2f1ad,8ea2f1adv 7cf6 e7b3b6 7cf6 00007cf6 f8fd f8fd f8fd f8fd f8fd f8fd f8fd -13529 f8fe f8fe f8fe * * 712e 8ea2f1ae,8ea2f1aev 7e9a e7ba9a 7e9a 00007e9a f8fe f8fe f8fe f8fe f8fe f8fe f8fe -13530 f940 f940 f940 * * 712f 8ea2f1af,8ea2f1afv 7e98 e7ba98 7e98 00007e98 f940 f940 f940 f940 f940 f940 f940 -13531 f941 f941 f941 * * 7130 8ea2f1b0,8ea2f1b0v 7e9b e7ba9b 7e9b 00007e9b f941 f941 f941 f941 f941 f941 f941 -13532 f942 f942 f942 * * 7131 8ea2f1b1,8ea2f1b1v 7e99 e7ba99 7e99 00007e99 f942 f942 f942 f942 f942 f942 f942 -13533 f943 f943 f943 * * 7132 8ea2f1b2,8ea2f1b2v 81e0 e887a0 81e0 000081e0 f943 f943 f943 f943 f943 f943 f943 -13534 f944 f944 f944 * * 7133 8ea2f1b3,8ea2f1b3v 81e1 e887a1 81e1 000081e1 f944 f944 f944 f944 f944 f944 f944 -13535 f945 f945 f945 * * 7134 8ea2f1b4,8ea2f1b4v 8646 e89986 8646 00008646 f945 f945 f945 f945 f945 f945 f945 -13536 f946 f946 f946 * * 7135 8ea2f1b5,8ea2f1b5v 8647 e89987 8647 00008647 f946 f946 f946 f946 f946 f946 f946 -13537 f947 f947 f947 * * 7136 8ea2f1b6,8ea2f1b6v 8648 e89988 8648 00008648 f947 f947 f947 f947 f947 f947 f947 -13538 f948 f948 f948 * * 7137 8ea2f1b7,8ea2f1b7v 8979 e8a5b9 8979 00008979 f948 f948 f948 f948 f948 f948 f948 -13539 f949 f949 f949 * * 7138 8ea2f1b8,8ea2f1b8v 897a e8a5ba 897a 0000897a f949 f949 f949 f949 f949 f949 f949 -13540 f94a f94a f94a * * 7139 8ea2f1b9,8ea2f1b9v 897c e8a5bc 897c 0000897c f94a f94a f94a f94a f94a f94a f94a -13541 f94b f94b f94b * * 713a 8ea2f1ba,8ea2f1bav 897b e8a5bb 897b 0000897b f94b f94b f94b f94b f94b f94b f94b -13542 f94c f94c f94c * * 713b 8ea2f1bb,8ea2f1bbv 89ff e8a7bf 89ff 000089ff f94c f94c f94c f94c f94c f94c f94c -13543 f94d f94d f94d * * 713c 8ea2f1bc,8ea2f1bcv 8b98 e8ae98 8b98 00008b98 f94d f94d f94d f94d f94d f94d f94d -13544 f94e f94e f94e * * 713d 8ea2f1bd,8ea2f1bdv 8b99 e8ae99 8b99 00008b99 f94e f94e f94e f94e f94e f94e f94e -13545 f94f f94f f94f * * 713e 8ea2f1be,8ea2f1bev 8ea5 e8baa5 8ea5 00008ea5 f94f f94f f94f f94f f94f f94f f94f -13546 f950 f950 f950 * * 713f 8ea2f1bf,8ea2f1bfv 8ea4 e8baa4 8ea4 00008ea4 f950 f950 f950 f950 f950 f950 f950 -13547 f951 f951 f951 * * 7140 8ea2f1c0,8ea2f1c0v 8ea3 e8baa3 8ea3 00008ea3 f951 f951 f951 f951 f951 f951 f951 -13548 f952 f952 f952 * * 7141 8ea2f1c1,8ea2f1c1v 946e e991ae 946e 0000946e f952 f952 f952 f952 f952 f952 f952 -13549 f953 f953 f953 * * 7142 8ea2f1c2,8ea2f1c2v 946d e991ad 946d 0000946d f953 f953 f953 f953 f953 f953 f953 -13550 f954 f954 f954 * * 7143 8ea2f1c3,8ea2f1c3v 946f e991af 946f 0000946f f954 f954 f954 f954 f954 f954 f954 -13551 f955 f955 f955 * * 7144 8ea2f1c4,8ea2f1c4v 9471 e991b1 9471 00009471 f955 f955 f955 f955 f955 f955 f955 -13552 f956 f956 f956 * * 7145 8ea2f1c5,8ea2f1c5v 9473 e991b3 9473 00009473 f956 f956 f956 f956 f956 f956 f956 -13553 f957 f957 f957 * * 7146 8ea2f1c6,8ea2f1c6v 9749 e99d89 9749 00009749 f957 f957 f957 f957 f957 f957 f957 -13554 f958 f958 f958 * * 7147 8ea2f1c7,8ea2f1c7v 9872 e9a1b2 9872 00009872 f958 f958 f958 f958 f958 f958 f958 -13555 f959 f959 f959 * * 7148 8ea2f1c8,8ea2f1c8v 995f e9a59f 995f 0000995f f959 f959 f959 f959 f959 f959 f959 -13556 f95a f95a f95a * * 7149 8ea2f1c9,8ea2f1c9v 9c68 e9b1a8 9c68 00009c68 f95a f95a f95a f95a f95a f95a f95a -13557 f95b f95b f95b * * 714a 8ea2f1ca,8ea2f1cav 9c6e e9b1ae 9c6e 00009c6e f95b f95b f95b f95b f95b f95b f95b -13558 f95c f95c f95c * * 714b 8ea2f1cb,8ea2f1cbv 9c6d e9b1ad 9c6d 00009c6d f95c f95c f95c f95c f95c f95c f95c -13559 f95d f95d f95d * * 714c 8ea2f1cc,8ea2f1ccv 9e0b e9b88b 9e0b 00009e0b f95d f95d f95d f95d f95d f95d f95d -13560 f95e f95e f95e * * 714d 8ea2f1cd,8ea2f1cdv 9e0d e9b88d 9e0d 00009e0d f95e f95e f95e f95e f95e f95e f95e -13561 f95f f95f f95f * * 714e 8ea2f1ce,8ea2f1cev 9e10 e9b890 9e10 00009e10 f95f f95f f95f f95f f95f f95f f95f -13562 f960 f960 f960 * * 714f 8ea2f1cf,8ea2f1cfv 9e0f e9b88f 9e0f 00009e0f f960 f960 f960 f960 f960 f960 f960 -13563 f961 f961 f961 * * 7150 8ea2f1d0,8ea2f1d0v 9e12 e9b892 9e12 00009e12 f961 f961 f961 f961 f961 f961 f961 -13564 f962 f962 f962 * * 7151 8ea2f1d1,8ea2f1d1v 9e11 e9b891 9e11 00009e11 f962 f962 f962 f962 f962 f962 f962 -13565 f963 f963 f963 * * 7152 8ea2f1d2,8ea2f1d2v 9ea1 e9baa1 9ea1 00009ea1 f963 f963 f963 f963 f963 f963 f963 -13566 f964 f964 f964 * * 7153 8ea2f1d3,8ea2f1d3v 9ef5 e9bbb5 9ef5 00009ef5 f964 f964 f964 f964 f964 f964 f964 -13567 f965 f965 f965 * * 7154 8ea2f1d4,8ea2f1d4v 9f09 e9bc89 9f09 00009f09 f965 f965 f965 f965 f965 f965 f965 -13568 f966 f966 f966 * * 7155 8ea2f1d5,8ea2f1d5v 9f47 e9bd87 9f47 00009f47 f966 f966 f966 f966 f966 f966 f966 -13569 f967 f967 f967 * * 7156 8ea2f1d6,8ea2f1d6v 9f78 e9bdb8 9f78 00009f78 f967 f967 f967 f967 f967 f967 f967 -13570 f968 f968 f968 * * 7157 8ea2f1d7,8ea2f1d7v 9f7b e9bdbb 9f7b 00009f7b f968 f968 f968 f968 f968 f968 f968 -13571 f969 f969 f969 * * 7158 8ea2f1d8,8ea2f1d8v 9f7a e9bdba 9f7a 00009f7a f969 f969 f969 f969 f969 f969 f969 -13572 f96a f96a f96a * * 7159 8ea2f1d9,8ea2f1d9v 9f79 e9bdb9 9f79 00009f79 f96a f96a f96a f96a f96a f96a f96a -13573 f96b f96b f96b * * 715a 8ea2f1da,8ea2f1dav 571e e59c9e 571e 0000571e f96b f96b f96b f96b f96b f96b f96b -13574 f96c f96c f96c * * 715b 8ea2f1db,8ea2f1dbv 7066 e781a6 7066 00007066 f96c f96c f96c f96c f96c f96c f96c -13575 f96d f96d f96d * * 715c 8ea2f1dc,8ea2f1dcv 7c6f e7b1af 7c6f 00007c6f f96d f96d f96d f96d f96d f96d f96d -13576 f96e f96e f96e * * 715d 8ea2f1dd,8ea2f1ddv 883c e8a0bc 883c 0000883c f96e f96e f96e f96e f96e f96e f96e -13577 f96f f96f f96f * * 715e 8ea2f1de,8ea2f1dev 8db2 e8b6b2 8db2 00008db2 f96f f96f f96f f96f f96f f96f f96f -13578 f970 f970 f970 * * 715f 8ea2f1df,8ea2f1dfv 8ea6 e8baa6 8ea6 00008ea6 f970 f970 f970 f970 f970 f970 f970 -13579 f971 f971 f971 * * 7160 8ea2f1e0,8ea2f1e0v 91c3 e98783 91c3 000091c3 f971 f971 f971 f971 f971 f971 f971 -13580 f972 f972 f972 * * 7161 8ea2f1e1,8ea2f1e1v 9474 e991b4 9474 00009474 f972 f972 f972 f972 f972 f972 f972 -13581 f973 f973 f973 * * 7162 8ea2f1e2,8ea2f1e2v 9478 e991b8 9478 00009478 f973 f973 f973 f973 f973 f973 f973 -13582 f974 f974 f974 * * 7163 8ea2f1e3,8ea2f1e3v 9476 e991b6 9476 00009476 f974 f974 f974 f974 f974 f974 f974 -13583 f975 f975 f975 * * 7164 8ea2f1e4,8ea2f1e4v 9475 e991b5 9475 00009475 f975 f975 f975 f975 f975 f975 f975 -13584 f976 f976 f976 * * 7165 8ea2f1e5,8ea2f1e5v 9a60 e9a9a0 9a60 00009a60 f976 f976 f976 f976 f976 f976 f976 -13585 f9c4 f9c4 f9c4 * * 7166 8ea2f1e6,8ea2f1e6v 9b2e e9acae,eeb69e 9b2e,ed9e 00009b2e,0000ed9e 9f60,f9c4 f9c4 f9c4 f9c4 f9c4 f9c4 9f60,f9c4 -13586 f977 f977 f977 * * 7167 8ea2f1e7,8ea2f1e7v 9c74 e9b1b4 9c74 00009c74 f977 f977 f977 f977 f977 f977 f977 -13587 f978 f978 f978 * * 7168 8ea2f1e8,8ea2f1e8v 9c73 e9b1b3 9c73 00009c73 f978 f978 f978 f978 f978 f978 f978 -13588 f979 f979 f979 * * 7169 8ea2f1e9,8ea2f1e9v 9c71 e9b1b1 9c71 00009c71 f979 f979 f979 f979 f979 f979 f979 -13589 f97a f97a f97a * * 716a 8ea2f1ea,8ea2f1eav 9c75 e9b1b5 9c75 00009c75 f97a f97a f97a f97a f97a f97a f97a -13590 f97b f97b f97b * * 716b 8ea2f1eb,8ea2f1ebv 9e14 e9b894 9e14 00009e14 f97b f97b f97b f97b f97b f97b f97b -13591 f97c f97c f97c * * 716c 8ea2f1ec,8ea2f1ecv 9e13 e9b893 9e13 00009e13 f97c f97c f97c f97c f97c f97c f97c -13592 f97d f97d f97d * * 716d 8ea2f1ed,8ea2f1edv 9ef6 e9bbb6 9ef6 00009ef6 f97d f97d f97d f97d f97d f97d f97d -13593 f97e f97e f97e * * 716e 8ea2f1ee,8ea2f1eev 9f0a e9bc8a 9f0a 00009f0a f97e f97e f97e f97e f97e f97e f97e -13594 f9a1 f9a1 f9a1 * * 716f 8ea2f1ef,8ea2f1efv 9fa4 e9bea4 9fa4 00009fa4 f9a1 f9a1 f9a1 f9a1 f9a1 f9a1 f9a1 -13595 f9a2 f9a2 f9a2 * * 7170 8ea2f1f0,8ea2f1f0v 7068 e781a8 7068 00007068 f9a2 f9a2 f9a2 f9a2 f9a2 f9a2 f9a2 -13596 f9a3 f9a3 f9a3 * * 7171 8ea2f1f1,8ea2f1f1v 7065 e781a5 7065 00007065 f9a3 f9a3 f9a3 f9a3 f9a3 f9a3 f9a3 -13597 f9a4 f9a4 f9a4 * * 7172 8ea2f1f2,8ea2f1f2v 7cf7 e7b3b7 7cf7 00007cf7 f9a4 f9a4 f9a4 f9a4 f9a4 f9a4 f9a4 -13598 f9a5 f9a5 f9a5 * * 7173 8ea2f1f3,8ea2f1f3v 866a e899aa 866a 0000866a f9a5 f9a5 f9a5 f9a5 f9a5 f9a5 f9a5 -13599 f9a6 f9a6 f9a6 * * 7174 8ea2f1f4,8ea2f1f4v 883e e8a0be 883e 0000883e f9a6 f9a6 f9a6 f9a6 f9a6 f9a6 f9a6 -13600 f9a7 f9a7 f9a7 * * 7175 8ea2f1f5,8ea2f1f5v 883d e8a0bd 883d 0000883d f9a7 f9a7 f9a7 f9a7 f9a7 f9a7 f9a7 -13601 f9a8 f9a8 f9a8 * * 7176 8ea2f1f6,8ea2f1f6v 883f e8a0bf 883f 0000883f f9a8 f9a8 f9a8 f9a8 f9a8 f9a8 f9a8 -13602 f9a9 f9a9 f9a9 * * 7177 8ea2f1f7,8ea2f1f7v 8b9e e8ae9e 8b9e 00008b9e f9a9 f9a9,fe4a 9156,f9a9 f9a9 f9a9 f9a9 f9a9 -13603 f9aa f9aa f9aa * * 7178 8ea2f1f8,8ea2f1f8v 8c9c e8b29c 8c9c 00008c9c f9aa f9aa f9aa f9aa f9aa f9aa f9aa -13604 f9ab f9ab f9ab * * 7179 8ea2f1f9,8ea2f1f9v 8ea9 e8baa9 8ea9 00008ea9 f9ab f9ab f9ab f9ab f9ab f9ab f9ab -13605 f9ac f9ac f9ac * * 717a 8ea2f1fa,8ea2f1fav 8ec9 e8bb89 8ec9 00008ec9 f9ac f9ac f9ac f9ac f9ac f9ac f9ac -13606 f9ad f9ad f9ad * * 717b 8ea2f1fb,8ea2f1fbv 974b e99d8b 974b 0000974b f9ad f9ad f9ad f9ad f9ad f9ad f9ad -13607 f9ae f9ae f9ae * * 717c 8ea2f1fc,8ea2f1fcv 9873 e9a1b3 9873 00009873 f9ae f9ae f9ae f9ae f9ae f9ae f9ae -13608 f9af f9af f9af * * 717d 8ea2f1fd,8ea2f1fdv 9874 e9a1b4 9874 00009874 f9af f9af f9af f9af f9af f9af f9af -13609 f9b0 f9b0 f9b0 * * 717e 8ea2f1fe,8ea2f1fev 98cc e9a38c 98cc 000098cc f9b0 f9b0 f9b0 f9b0 f9b0 f9b0 f9b0 -13610 f9b1 f9b1 f9b1 * * 7221 8ea2f2a1,8ea2f2a1v 9961 e9a5a1 9961 00009961 f9b1 f9b1 f9b1 f9b1 f9b1 f9b1 f9b1 -13611 f9b2 f9b2 f9b2 * * 7222 8ea2f2a2,8ea2f2a2v 99ab e9a6ab 99ab 000099ab f9b2 f9b2 f9b2 f9b2 f9b2 f9b2 f9b2 -13612 f9b3 f9b3 f9b3 * * 7223 8ea2f2a3,8ea2f2a3v 9a64 e9a9a4 9a64 00009a64 f9b3 f9b3 f9b3 f9b3 f9b3 f9b3 f9b3 -13613 f9b4 f9b4 f9b4 * * 7224 8ea2f2a4,8ea2f2a4v 9a66 e9a9a6 9a66 00009a66 f9b4 f9b4 f9b4 f9b4 f9b4 f9b4 f9b4 -13614 f9b5 f9b5 f9b5 * * 7225 8ea2f2a5,8ea2f2a5v 9a67 e9a9a7 9a67 00009a67 f9b5 f9b5 f9b5 f9b5 f9b5 f9b5 f9b5 -13615 f9b6 f9b6 f9b6 * * 7226 8ea2f2a6,8ea2f2a6v 9b24 e9aca4 9b24 00009b24 f9b6 f9b6 f9b6 f9b6 f9b6 f9b6 f9b6 -13616 f9b7 f9b7 f9b7 * * 7227 8ea2f2a7,8ea2f2a7v 9e15 e9b895 9e15 00009e15 f9b7 f9b7 f9b7 f9b7 f9b7 f9b7 f9b7 -13617 f9b8 f9b8 f9b8 * * 7228 8ea2f2a8,8ea2f2a8v 9e17 e9b897 9e17 00009e17 f9b8 f9b8 f9b8 f9b8 f9b8 f9b8 f9b8 -13618 f9b9 f9b9 f9b9 * * 7229 8ea2f2a9,8ea2f2a9v 9f48 e9bd88 9f48 00009f48 f9b9 f9b9 f9b9 f9b9 f9b9 f9b9 f9b9 -13619 f9ba f9ba f9ba * * 722a 8ea2f2aa,8ea2f2aav 6207 e68887 6207 00006207 f9ba f9ba f9ba f9ba f9ba f9ba f9ba -13620 f9bb f9bb f9bb * * 722b 8ea2f2ab,8ea2f2abv 6b1e e6ac9e 6b1e 00006b1e f9bb f9bb f9bb f9bb f9bb f9bb f9bb -13621 f9bc f9bc f9bc * * 722c 8ea2f2ac,8ea2f2acv 7227 e788a7 7227 00007227 f9bc f9bc f9bc f9bc f9bc f9bc f9bc -13622 f9bd f9bd f9bd * * 722d 8ea2f2ad,8ea2f2adv 864c e8998c 864c 0000864c f9bd f9bd f9bd f9bd f9bd f9bd f9bd -13623 f9be f9be f9be * * 722e 8ea2f2ae,8ea2f2aev 8ea8 e8baa8 8ea8 00008ea8 f9be f9be f9be f9be f9be f9be f9be -13624 f9bf f9bf f9bf * * 722f 8ea2f2af,8ea2f2afv 9482 e99282 9482 00009482 f9bf f9bf f9bf f9bf f9bf f9bf f9bf -13625 f9c0 f9c0 f9c0 * * 7230 8ea2f2b0,8ea2f2b0v 9480 e99280 9480 00009480 f9c0 f9c0 f9c0 f9c0 f9c0 f9c0 f9c0 -13626 f9c1 f9c1 f9c1 * * 7231 8ea2f2b1,8ea2f2b1v 9481 e99281 9481 00009481 f9c1 f9c1 f9c1 f9c1 f9c1 f9c1 f9c1 -13627 f9c2 f9c2 f9c2 * * 7232 8ea2f2b2,8ea2f2b2v 9a69 e9a9a9 9a69 00009a69 f9c2 f9c2 f9c2 f9c2 f9c2 f9c2 f9c2 -13628 f9c3 f9c3 f9c3 * * 7233 8ea2f2b3,8ea2f2b3v 9a68 e9a9a8 9a68 00009a68 f9c3 f9c3 f9c3 f9c3 f9c3 f9c3 f9c3 -13629 f9c5 f9c5 f9c5 * * 7234 8ea2f2b4,8ea2f2b4v 9e19 e9b899 9e19 00009e19 f9c5 f9c5 f9c5 f9c5 f9c5 f9c5 f9c5 -13630 f9c7 f9c7 f9c7 * * 7235 8ea2f2b5,8ea2f2b5v 864b e8998b 864b 0000864b f9c7 f9c7 f9c7 f9c7 f9c7 f9c7 f9c7 -13631 f9c8 f9c8 f9c8 * * 7236 8ea2f2b6,8ea2f2b6v 8b9f e8ae9f 8b9f 00008b9f f9c8 f9c8 f9c8 f9c8 f9c8 f9c8 f9c8 -13632 f9c9 f9c9 f9c9 * * 7237 8ea2f2b7,8ea2f2b7v 9483 e99283 9483 00009483 f9c9 f9c9 f9c9 f9c9 f9c9 f9c9 f9c9 -13633 f9ca f9ca f9ca * * 7238 8ea2f2b8,8ea2f2b8v 9c79 e9b1b9 9c79 00009c79 f9ca f9ca f9ca f9ca f9ca f9ca f9ca -13634 f9cb f9cb f9cb * * 7239 8ea2f2b9,8ea2f2b9v 9eb7 e9bab7 9eb7 00009eb7 f9cb f9cb f9cb f9cb f9cb f9cb f9cb -13635 f9cc f9cc f9cc * * 723a 8ea2f2ba,8ea2f2bav 7675 e799b5 7675 00007675 f9cc f9cc f9cc f9cc f9cc f9cc f9cc -13636 f9cd f9cd f9cd * * 723b 8ea2f2bb,8ea2f2bbv 9a6b e9a9ab 9a6b 00009a6b f9cd f9cd f9cd f9cd f9cd f9cd f9cd -13637 f9ce f9ce f9ce * * 723c 8ea2f2bc,8ea2f2bcv 9c7a e9b1ba 9c7a 00009c7a f9ce f9ce f9ce f9ce f9ce f9ce f9ce -13638 f9cf f9cf f9cf * * 723d 8ea2f2bd,8ea2f2bdv 9e1d e9b89d 9e1d 00009e1d f9cf f9cf f9cf f9cf f9cf f9cf f9cf -13639 f9d0 f9d0 f9d0 * * 723e 8ea2f2be,8ea2f2bev 7069 e781a9 7069 00007069 f9d0 f9d0 f9d0 f9d0 f9d0 f9d0 f9d0 -13640 f9d1 f9d1 f9d1 * * 723f 8ea2f2bf,8ea2f2bfv 706a e781aa 706a 0000706a f9d1 f9d1 f9d1 f9d1 f9d1 f9d1 f9d1 -13641 f9c6 f9c6 f9c6 * * 7240 8ea2f2c0,8ea2f2c0v 7229 e788a9 7229 00007229 f9c6 f9c6 f9c6 f9c6 f9c6 f9c6 f9c6 -13642 f9d2 f9d2 f9d2 * * 7241 8ea2f2c1,8ea2f2c1v 9ea4 e9baa4 9ea4 00009ea4 f9d2 f9d2 f9d2 f9d2 f9d2 f9d2 f9d2 -13643 f9d3 f9d3 f9d3 * * 7242 8ea2f2c2,8ea2f2c2v 9f7e e9bdbe 9f7e 00009f7e f9d3 f9d3 f9d3 f9d3 f9d3 f9d3 f9d3 -13644 f9d4 f9d4 f9d4 * * 7243 8ea2f2c3,8ea2f2c3v 9f49 e9bd89 9f49 00009f49 f9d4 f9d4 f9d4 f9d4 f9d4 f9d4 f9d4 -13645 f9d5 f9d5 f9d5 * * 7244 8ea2f2c4,8ea2f2c4v 9f98 e9be98 9f98 00009f98 f9d5 f9d5 f9d5 f9d5 f9d5 f9d5 f9d5 -13646 a14bv a14bv a14bv a14bv 212cv * 8ea1a1acv,a1acv * efb899 fe19 0000fe19 a14bv a14bv a14bv a14bv a14bv a14bv a14bv -13647 a1e3v a1e3v a1e3v * 2244v * 8ea1a2c4v,a2c4v * * * * a1e3v a1e3v a1e3v a1e3v a1e3v a1e3v a1e3v -13648 20 * 20 * * * 20,20v * e28082 2002 00002002 * * * * * * * -13649 21 * 21 * * * 21,21v * * * * * * * * * * * -13650 22 * 22 * * * 22,22v * * * * * * * * * * * -13651 23 * 23 * * * 23,23v * * * * * * * * * * * -13652 24 * 24 * * * 24,24v * * * * * * * * * * * -13653 25 * 25 * * * 25,25v * * * * * * * * * * * -13654 26 * 26 * * * 26,26v * * * * * * * * * * * -13655 27 * 27 * * * 27,27v * * * * * * * * * * * -13656 28 * 28 * * * 28,28v * * * * * * * * * * * -13657 29 * 29 * * * 29,29v * * * * * * * * * * * -13658 2a * 2a * * * 2a,2av * * * * * * * * * * * -13659 2b * 2b * * * 2b,2bv * * * * * * * * * * * -13660 2c * 2c * * * 2c,2cv * * * * * * * * * * * -13661 2d * 2d * * * 2d,2dv * * * * * * * * * * * -13662 2e * 2e * * * 2e,2ev * * * * * * * * * * * -13663 2f * 2f * * * 2f,2fv * * * * * * * * * * * -13664 30 * 30 * * * 30,30v * * * * * * * * * * * -13665 31 * 31 * * * 31,31v * * * * * * * * * * * -13666 32 * 32 * * * 32,32v * * * * * * * * * * * -13667 33 * 33 * * * 33,33v * * * * * * * * * * * -13668 34 * 34 * * * 34,34v * * * * * * * * * * * -13669 35 * 35 * * * 35,35v * * * * * * * * * * * -13670 36 * 36 * * * 36,36v * * * * * * * * * * * -13671 37 * 37 * * * 37,37v * * * * * * * * * * * -13672 38 * 38 * * * 38,38v * * * * * * * * * * * -13673 39 * 39 * * * 39,39v * * * * * * * * * * * -13674 3a * 3a * * * 3a,3av * * * * * * * * * * * -13675 3b * 3b * * * 3b,3bv * * * * * * * * * * * -13676 3c * 3c * * * 3c,3cv * * * * * * * * * * * -13677 3d * 3d * * * 3d,3dv * * * * * * * * * * * -13678 3e * 3e * * * 3e,3ev * * * * * * * * * * * -13679 3f * 3f * * * 3f,3fv * * * * * * * * * * * -13680 40 * 40 * * * 40,40v * * * * * * * * * * * -13681 41 * 41 * * * 41,41v * * * * * * * * * * * -13682 42 * 42 * * * 42,42v * * * * * * * * * * * -13683 43 * 43 * * * 43,43v * * * * * * * * * * * -13684 44 * 44 * * * 44,44v * * * * * * * * * * * -13685 45 * 45 * * * 45,45v * * * * * * * * * * * -13686 46 * 46 * * * 46,46v * * * * * * * * * * * -13687 47 * 47 * * * 47,47v * * * * * * * * * * * -13688 48 * 48 * * * 48,48v * * * * * * * * * * * -13689 49 * 49 * * * 49,49v * * * * * * * * * * * -13690 4a * 4a * * * 4a,4av * * * * * * * * * * * -13691 4b * 4b * * * 4b,4bv * * * * * * * * * * * -13692 4c * 4c * * * 4c,4cv * * * * * * * * * * * -13693 4d * 4d * * * 4d,4dv * * * * * * * * * * * -13694 4e * 4e * * * 4e,4ev * * * * * * * * * * * -13695 4f * 4f * * * 4f,4fv * * * * * * * * * * * -13696 50 * 50 * * * 50,50v * * * * * * * * * * * -13697 51 * 51 * * * 51,51v * * * * * * * * * * * -13698 52 * 52 * * * 52,52v * * * * * * * * * * * -13699 53 * 53 * * * 53,53v * * * * * * * * * * * -13700 54 * 54 * * * 54,54v * * * * * * * * * * * -13701 55 * 55 * * * 55,55v * * * * * * * * * * * -13702 56 * 56 * * * 56,56v * * * * * * * * * * * -13703 57 * 57 * * * 57,57v * * * * * * * * * * * -13704 58 * 58 * * * 58,58v * * * * * * * * * * * -13705 59 * 59 * * * 59,59v * * * * * * * * * * * -13706 5a * 5a * * * 5a,5av * * * * * * * * * * * -13707 5b * 5b * * * 5b,5bv * * * * * * * * * * * -13708 5c * 5c * * * 5c,5cv * * * * * * * * * * * -13709 5d * 5d * * * 5d,5dv * * * * * * * * * * * -13710 5e * 5e * * * 5e,5ev * * * * * * * * * * * -13711 5f * 5f * * * 5f,5fv * * * * * * * * * * * -13712 60 * 60 * * * 60,60v * * * * * * * * * * * -13713 61 * 61 * * * 61,61v * * * * * * * * * * * -13714 62 * 62 * * * 62,62v * * * * * * * * * * * -13715 63 * 63 * * * 63,63v * * * * * * * * * * * -13716 64 * 64 * * * 64,64v * * * * * * * * * * * -13717 65 * 65 * * * 65,65v * * * * * * * * * * * -13718 66 * 66 * * * 66,66v * * * * * * * * * * * -13719 67 * 67 * * * 67,67v * * * * * * * * * * * -13720 68 * 68 * * * 68,68v * * * * * * * * * * * -13721 69 * 69 * * * 69,69v * * * * * * * * * * * -13722 6a * 6a * * * 6a,6av * * * * * * * * * * * -13723 6b * 6b * * * 6b,6bv * * * * * * * * * * * -13724 6c * 6c * * * 6c,6cv * * * * * * * * * * * -13725 6d * 6d * * * 6d,6dv * * * * * * * * * * * -13726 6e * 6e * * * 6e,6ev * * * * * * * * * * * -13727 6f * 6f * * * 6f,6fv * * * * * * * * * * * -13728 70 * 70 * * * 70,70v * * * * * * * * * * * -13729 71 * 71 * * * 71,71v * * * * * * * * * * * -13730 72 * 72 * * * 72,72v * * * * * * * * * * * -13731 73 * 73 * * * 73,73v * * * * * * * * * * * -13732 74 * 74 * * * 74,74v * * * * * * * * * * * -13733 75 * 75 * * * 75,75v * * * * * * * * * * * -13734 76 * 76 * * * 76,76v * * * * * * * * * * * -13735 77 * 77 * * * 77,77v * * * * * * * * * * * -13736 78 * 78 * * * 78,78v * * * * * * * * * * * -13737 79 * 79 * * * 79,79v * * * * * * * * * * * -13738 7a * 7a * * * 7a,7av * * * * * * * * * * * -13739 7b * 7b * * * 7b,7bv * * * * * * * * * * * -13740 7c * 7c * * * 7c,7cv * * * * * * * * * * * -13741 7d * 7d * * * 7d,7dv * * * * * * * * * * * -13742 7e * 7e * * * 7e,7ev * * * * * * * * * * * -13743 a159,a15av a159,a15av a159,a15av a15av * * * fe33 efb8b3 fe33 0000fe33 a159,a15av a159,a15av a159,a15av a159,a15av a159,a15av a159,a15av a159,a15av -13744 a15a a15a a15a * * * * * e295b4 2574 00002574 a15a a15a a15a a15a a15a a15a a15a -13745 a15b,a15cv a15b,a15cv a15b,a15cv a15cv * * * fe34,fe4fv efb8b4,efb98fv fe34,fe4fv 0000fe34,0000fe4fv a15b,a15cv a15b,a15cv a15b,a15cv a15b,a15cv a15b,a15cv a15b,a15cv a15b,a15cv -13746 a15c a15c a15c * * * * fe4f efb98f fe4f 0000fe4f a15c a15c a15c a15c a15c a15c a15c -13747 * * c6d8 * * * * 00a8,0308 c2a8,cc88,ef9ba8 00a8,0308,f6e8 000000a8,00000308,0000f6e8 c6d8 * * * * * c6d8 -13748 * * c6d9 * * * * 02c6,ff3e cb86,efbcbe,ef9ba9 02c6,ff3e,f6e9 000002c6,0000ff3e,0000f6e9 c6d9 * * * * * c6d9 -13749 * * c6da * * * * 30fd e383bd,ef9baa 30fd,f6ea 000030fd,0000f6ea c6da * * * * * c6da -13750 * * c6db * * * * 30fe e383be,ef9bab 30fe,f6eb 000030fe,0000f6eb c6db * * * * * c6db -13751 * * c6dc * * * * 309d e3829d,ef9bac 309d,f6ec 0000309d,0000f6ec c6dc * * * * * c6dc -13752 * * c6dd * * * * 309e e3829e,ef9bad 309e,f6ed 0000309e,0000f6ed c6dd * * * * * c6dd -13753 * * c6de * * * * * * * * c6de * * * * * * -13754 * * c6e0 * * * * 3005 e38085,ef9bb0 3005,f6f0 00003005,0000f6f0 c6e0 * * * * * c6e0 -13755 * * c6e1 * * * * 3006 e38086,ef9bb1 3006,f6f1 00003006,0000f6f1 c6e1 * * * * * c6e1 -13756 * * c6e2 * * * * 3007 e38087,ef9bb2 3007,f6f2 00003007,0000f6f2 c6e2 * * * * * c6e2 -13757 * * c6e3 * * * * 30fc e383bc,ef9bb3 30fc,f6f3 000030fc,0000f6f3 c6e3 * * * * * c6e3 -13758 * * c6e4 * * * * ff3b efbcbb,ef9bb4 ff3b,f6f4 0000ff3b,0000f6f4 c6e4 * * * * * c6e4 -13759 * * c6e5 * * * * ff3d efbcbd,ef9bb5 ff3d,f6f5 0000ff3d,0000f6f5 c6e5 * * * * * c6e5 -13760 * * c6e6 * * * * 273d e29cbd,ef9bb6 273d,f6f6 0000273d,0000f6f6 c6e6 * * * * * c6e6 -13761 * * c6e7 * * * * 3041 e38181,ef9bb7 3041,f6f7 00003041,0000f6f7 c6e7 * * * * * c6e7 -13762 * * c6e8 * * * * 3042 e38182,ef9bb8 3042,f6f8 00003042,0000f6f8 c6e8 * * * * * c6e8 -13763 * * c6e9 * * * * 3043 e38183,ef9bb9 3043,f6f9 00003043,0000f6f9 c6e9 * * * * * c6e9 -13764 * * c6ea * * * * 3044 e38184,ef9bba 3044,f6fa 00003044,0000f6fa c6ea * * * * * c6ea -13765 * * c6eb * * * * 3045 e38185,ef9bbb 3045,f6fb 00003045,0000f6fb c6eb * * * * * c6eb -13766 * * c6ec * * * * 3046 e38186,ef9bbc 3046,f6fc 00003046,0000f6fc c6ec * * * * * c6ec -13767 * * c6ed * * * * 3047 e38187,ef9bbd 3047,f6fd 00003047,0000f6fd c6ed * * * * * c6ed -13768 * * c6ee * * * * 3048 e38188,ef9bbe 3048,f6fe 00003048,0000f6fe c6ee * * * * * c6ee -13769 * * c6ef * * * * 3049 e38189,ef9bbf 3049,f6ff 00003049,0000f6ff c6ef * * * * * c6ef -13770 * * c6f0 * * * * 304a e3818a,ef9c80 304a,f700 0000304a,0000f700 c6f0 * * * * * c6f0 -13771 * * c6f1 * * * * 304b e3818b,ef9c81 304b,f701 0000304b,0000f701 c6f1 * * * * * c6f1 -13772 * * c6f2 * * * * 304c e3818c,ef9c82 304c,f702 0000304c,0000f702 c6f2 * * * * * c6f2 -13773 * * c6f3 * * * * 304d e3818d,ef9c83 304d,f703 0000304d,0000f703 c6f3 * * * * * c6f3 -13774 * * c6f4 * * * * 304e e3818e,ef9c84 304e,f704 0000304e,0000f704 c6f4 * * * * * c6f4 -13775 * * c6f5 * * * * 304f e3818f,ef9c85 304f,f705 0000304f,0000f705 c6f5 * * * * * c6f5 -13776 * * c6f6 * * * * 3050 e38190,ef9c86 3050,f706 00003050,0000f706 c6f6 * * * * * c6f6 -13777 * * c6f7 * * * * 3051 e38191,ef9c87 3051,f707 00003051,0000f707 c6f7 * * * * * c6f7 -13778 * * c6f8 * * * * 3052 e38192,ef9c88 3052,f708 00003052,0000f708 c6f8 * * * * * c6f8 -13779 * * c6f9 * * * * 3053 e38193,ef9c89 3053,f709 00003053,0000f709 c6f9 * * * * * c6f9 -13780 * * c6fa * * * * 3054 e38194,ef9c8a 3054,f70a 00003054,0000f70a c6fa * * * * * c6fa -13781 * * c6fb * * * * 3055 e38195,ef9c8b 3055,f70b 00003055,0000f70b c6fb * * * * * c6fb -13782 * * c6fc * * * * 3056 e38196,ef9c8c 3056,f70c 00003056,0000f70c c6fc * * * * * c6fc -13783 * * c6fd * * * * 3057 e38197,ef9c8d 3057,f70d 00003057,0000f70d c6fd * * * * * c6fd -13784 * * c6fe * * * * 3058 e38198,ef9c8e 3058,f70e 00003058,0000f70e c6fe * * * * * c6fe -13785 * * c740 * * * * 3059 e38199,ef9c8f 3059,f70f 00003059,0000f70f c740 * * * * * c740 -13786 * * c741 * * * * 305a e3819a,ef9c90 305a,f710 0000305a,0000f710 c741 * * * * * c741 -13787 * * c742 * * * * 305b e3819b,ef9c91 305b,f711 0000305b,0000f711 c742 * * * * * c742 -13788 * * c743 * * * * 305c e3819c,ef9c92 305c,f712 0000305c,0000f712 c743 * * * * * c743 -13789 * * c744 * * * * 305d e3819d,ef9c93 305d,f713 0000305d,0000f713 c744 * * * * * c744 -13790 * * c745 * * * * 305e e3819e,ef9c94 305e,f714 0000305e,0000f714 c745 * * * * * c745 -13791 * * c746 * * * * 305f e3819f,ef9c95 305f,f715 0000305f,0000f715 c746 * * * * * c746 -13792 * * c747 * * * * 3060 e381a0,ef9c96 3060,f716 00003060,0000f716 c747 * * * * * c747 -13793 * * c748 * * * * 3061 e381a1,ef9c97 3061,f717 00003061,0000f717 c748 * * * * * c748 -13794 * * c749 * * * * 3062 e381a2,ef9c98 3062,f718 00003062,0000f718 c749 * * * * * c749 -13795 * * c74a * * * * 3063 e381a3,ef9c99 3063,f719 00003063,0000f719 c74a * * * * * c74a -13796 * * c74b * * * * 3064 e381a4,ef9c9a 3064,f71a 00003064,0000f71a c74b * * * * * c74b -13797 * * c74c * * * * 3065 e381a5,ef9c9b 3065,f71b 00003065,0000f71b c74c * * * * * c74c -13798 * * c74d * * * * 3066 e381a6,ef9c9c 3066,f71c 00003066,0000f71c c74d * * * * * c74d -13799 * * c74e * * * * 3067 e381a7,ef9c9d 3067,f71d 00003067,0000f71d c74e * * * * * c74e -13800 * * c74f * * * * 3068 e381a8,ef9c9e 3068,f71e 00003068,0000f71e c74f * * * * * c74f -13801 * * c750 * * * * 3069 e381a9,ef9c9f 3069,f71f 00003069,0000f71f c750 * * * * * c750 -13802 * * c751 * * * * 306a e381aa,ef9ca0 306a,f720 0000306a,0000f720 c751 * * * * * c751 -13803 * * c752 * * * * 306b e381ab,ef9ca1 306b,f721 0000306b,0000f721 c752 * * * * * c752 -13804 * * c753 * * * * 306c e381ac,ef9ca2 306c,f722 0000306c,0000f722 c753 * * * * * c753 -13805 * * c754 * * * * 306d e381ad,ef9ca3 306d,f723 0000306d,0000f723 c754 * * * * * c754 -13806 * * c755 * * * * 306e e381ae,ef9ca4 306e,f724 0000306e,0000f724 c755 * * * * * c755 -13807 * * c756 * * * * 306f e381af,ef9ca5 306f,f725 0000306f,0000f725 c756 * * * * * c756 -13808 * * c757 * * * * 3070 e381b0,ef9ca6 3070,f726 00003070,0000f726 c757 * * * * * c757 -13809 * * c758 * * * * 3071 e381b1,ef9ca7 3071,f727 00003071,0000f727 c758 * * * * * c758 -13810 * * c759 * * * * 3072 e381b2,ef9ca8 3072,f728 00003072,0000f728 c759 * * * * * c759 -13811 * * c75a * * * * 3073 e381b3,ef9ca9 3073,f729 00003073,0000f729 c75a * * * * * c75a -13812 * * c75b * * * * 3074 e381b4,ef9caa 3074,f72a 00003074,0000f72a c75b * * * * * c75b -13813 * * c75c * * * * 3075 e381b5,ef9cab 3075,f72b 00003075,0000f72b c75c * * * * * c75c -13814 * * c75d * * * * 3076 e381b6,ef9cac 3076,f72c 00003076,0000f72c c75d * * * * * c75d -13815 * * c75e * * * * 3077 e381b7,ef9cad 3077,f72d 00003077,0000f72d c75e * * * * * c75e -13816 * * c75f * * * * 3078 e381b8,ef9cae 3078,f72e 00003078,0000f72e c75f * * * * * c75f -13817 * * c760 * * * * 3079 e381b9,ef9caf 3079,f72f 00003079,0000f72f c760 * * * * * c760 -13818 * * c761 * * * * 307a e381ba,ef9cb0 307a,f730 0000307a,0000f730 c761 * * * * * c761 -13819 * * c762 * * * * 307b e381bb,ef9cb1 307b,f731 0000307b,0000f731 c762 * * * * * c762 -13820 * * c763 * * * * 307c e381bc,ef9cb2 307c,f732 0000307c,0000f732 c763 * * * * * c763 -13821 * * c764 * * * * 307d e381bd,ef9cb3 307d,f733 0000307d,0000f733 c764 * * * * * c764 -13822 * * c765 * * * * 307e e381be,ef9cb4 307e,f734 0000307e,0000f734 c765 * * * * * c765 -13823 * * c766 * * * * 307f e381bf,ef9cb5 307f,f735 0000307f,0000f735 c766 * * * * * c766 -13824 * * c767 * * * * 3080 e38280,ef9cb6 3080,f736 00003080,0000f736 c767 * * * * * c767 -13825 * * c768 * * * * 3081 e38281,ef9cb7 3081,f737 00003081,0000f737 c768 * * * * * c768 -13826 * * c769 * * * * 3082 e38282,ef9cb8 3082,f738 00003082,0000f738 c769 * * * * * c769 -13827 * * c76a * * * * 3083 e38283,ef9cb9 3083,f739 00003083,0000f739 c76a * * * * * c76a -13828 * * c76b * * * * 3084 e38284,ef9cba 3084,f73a 00003084,0000f73a c76b * * * * * c76b -13829 * * c76c * * * * 3085 e38285,ef9cbb 3085,f73b 00003085,0000f73b c76c * * * * * c76c -13830 * * c76d * * * * 3086 e38286,ef9cbc 3086,f73c 00003086,0000f73c c76d * * * * * c76d -13831 * * c76e * * * * 3087 e38287,ef9cbd 3087,f73d 00003087,0000f73d c76e * * * * * c76e -13832 * * c76f * * * * 3088 e38288,ef9cbe 3088,f73e 00003088,0000f73e c76f * * * * * c76f -13833 * * c770 * * * * 3089 e38289,ef9cbf 3089,f73f 00003089,0000f73f c770 * * * * * c770 -13834 * * c771 * * * * 308a e3828a,ef9d80 308a,f740 0000308a,0000f740 c771 * * * * * c771 -13835 * * c772 * * * * 308b e3828b,ef9d81 308b,f741 0000308b,0000f741 c772 * * * * * c772 -13836 * * c773 * * * * 308c e3828c,ef9d82 308c,f742 0000308c,0000f742 c773 * * * * * c773 -13837 * * c774 * * * * 308d e3828d,ef9d83 308d,f743 0000308d,0000f743 c774 * * * * * c774 -13838 * * c775 * * * * 308e e3828e,ef9d84 308e,f744 0000308e,0000f744 c775 * * * * * c775 -13839 * * c776 * * * * 308f e3828f,ef9d85 308f,f745 0000308f,0000f745 c776 * * * * * c776 -13840 * * c777 * * * * 3090 e38290,ef9d86 3090,f746 00003090,0000f746 c777 * * * * * c777 -13841 * * c778 * * * * 3091 e38291,ef9d87 3091,f747 00003091,0000f747 c778 * * * * * c778 -13842 * * c779 * * * * 3092 e38292,ef9d88 3092,f748 00003092,0000f748 c779 * * * * * c779 -13843 * * c77a * * * * 3093 e38293,ef9d89 3093,f749 00003093,0000f749 c77a * * * * * c77a -13844 * * c77b * * * * 30a1 e382a1,ef9d8a 30a1,f74a 000030a1,0000f74a c77b * * * * * c77b -13845 * * c77c * * * * 30a2 e382a2,ef9d8b 30a2,f74b 000030a2,0000f74b c77c * * * * * c77c -13846 * * c77d * * * * 30a3 e382a3,ef9d8c 30a3,f74c 000030a3,0000f74c c77d * * * * * c77d -13847 * * c77e * * * * 30a4 e382a4,ef9d8d 30a4,f74d 000030a4,0000f74d c77e * * * * * c77e -13848 * * c7a1 * * * * 30a5 e382a5,ef9d8e 30a5,f74e 000030a5,0000f74e c7a1 * * * * * c7a1 -13849 * * c7a2 * * * * 30a6 e382a6,ef9d8f 30a6,f74f 000030a6,0000f74f c7a2 * * * * * c7a2 -13850 * * c7a3 * * * * 30a7 e382a7,ef9d90 30a7,f750 000030a7,0000f750 c7a3 * * * * * c7a3 -13851 * * c7a4 * * * * 30a8 e382a8,ef9d91 30a8,f751 000030a8,0000f751 c7a4 * * * * * c7a4 -13852 * * c7a5 * * * * 30a9 e382a9,ef9d92 30a9,f752 000030a9,0000f752 c7a5 * * * * * c7a5 -13853 * * c7a6 * * * * 30aa e382aa,ef9d93 30aa,f753 000030aa,0000f753 c7a6 * * * * * c7a6 -13854 * * c7a7 * * * * 30ab e382ab,ef9d94 30ab,f754 000030ab,0000f754 c7a7 * * * * * c7a7 -13855 * * c7a8 * * * * 30ac e382ac,ef9d95 30ac,f755 000030ac,0000f755 c7a8 * * * * * c7a8 -13856 * * c7a9 * * * * 30ad e382ad,ef9d96 30ad,f756 000030ad,0000f756 c7a9 * * * * * c7a9 -13857 * * c7aa * * * * 30ae e382ae,ef9d97 30ae,f757 000030ae,0000f757 c7aa * * * * * c7aa -13858 * * c7ab * * * * 30af e382af,ef9d98 30af,f758 000030af,0000f758 c7ab * * * * * c7ab -13859 * * c7ac * * * * 30b0 e382b0,ef9d99 30b0,f759 000030b0,0000f759 c7ac * * * * * c7ac -13860 * * c7ad * * * * 30b1 e382b1,ef9d9a 30b1,f75a 000030b1,0000f75a c7ad * * * * * c7ad -13861 * * c7ae * * * * 30b2 e382b2,ef9d9b 30b2,f75b 000030b2,0000f75b c7ae * * * * * c7ae -13862 * * c7af * * * * 30b3 e382b3,ef9d9c 30b3,f75c 000030b3,0000f75c c7af * * * * * c7af -13863 * * c7b0 * * * * 30b4 e382b4,ef9d9d 30b4,f75d 000030b4,0000f75d c7b0 * * * * * c7b0 -13864 * * c7b1 * * * * 30b5 e382b5,ef9d9e 30b5,f75e 000030b5,0000f75e c7b1 * * * * * c7b1 -13865 * * c7b2 * * * * 30b6 e382b6,ef9d9f 30b6,f75f 000030b6,0000f75f c7b2 * * * * * c7b2 -13866 * * c7b3 * * * * 30b7 e382b7,ef9da0 30b7,f760 000030b7,0000f760 c7b3 * * * * * c7b3 -13867 * * c7b4 * * * * 30b8 e382b8,ef9da1 30b8,f761 000030b8,0000f761 c7b4 * * * * * c7b4 -13868 * * c7b5 * * * * 30b9 e382b9,ef9da2 30b9,f762 000030b9,0000f762 c7b5 * * * * * c7b5 -13869 * * c7b6 * * * * 30ba e382ba,ef9da3 30ba,f763 000030ba,0000f763 c7b6 * * * * * c7b6 -13870 * * c7b7 * * * * 30bb e382bb,ef9da4 30bb,f764 000030bb,0000f764 c7b7 * * * * * c7b7 -13871 * * c7b8 * * * * 30bc e382bc,ef9da5 30bc,f765 000030bc,0000f765 c7b8 * * * * * c7b8 -13872 * * c7b9 * * * * 30bd e382bd,ef9da6 30bd,f766 000030bd,0000f766 c7b9 * * * * * c7b9 -13873 * * c7ba * * * * 30be e382be,ef9da7 30be,f767 000030be,0000f767 c7ba * * * * * c7ba -13874 * * c7bb * * * * 30bf e382bf,ef9da8 30bf,f768 000030bf,0000f768 c7bb * * * * * c7bb -13875 * * c7bc * * * * 30c0 e38380,ef9da9 30c0,f769 000030c0,0000f769 c7bc * * * * * c7bc -13876 * * c7bd * * * * 30c1 e38381,ef9daa 30c1,f76a 000030c1,0000f76a c7bd * * * * * c7bd -13877 * * c7be * * * * 30c2 e38382,ef9dab 30c2,f76b 000030c2,0000f76b c7be * * * * * c7be -13878 * * c7bf * * * * 30c3 e38383,ef9dac 30c3,f76c 000030c3,0000f76c c7bf * * * * * c7bf -13879 * * c7c0 * * * * 30c4 e38384,ef9dad 30c4,f76d 000030c4,0000f76d c7c0 * * * * * c7c0 -13880 * * c7c1 * * * * 30c5 e38385,ef9dae 30c5,f76e 000030c5,0000f76e c7c1 * * * * * c7c1 -13881 * * c7c2 * * * * 30c6 e38386,ef9daf 30c6,f76f 000030c6,0000f76f c7c2 * * * * * c7c2 -13882 * * c7c3 * * * * 30c7 e38387,ef9db0 30c7,f770 000030c7,0000f770 c7c3 * * * * * c7c3 -13883 * * c7c4 * * * * 30c8 e38388,ef9db1 30c8,f771 000030c8,0000f771 c7c4 * * * * * c7c4 -13884 * * c7c5 * * * * 30c9 e38389,ef9db2 30c9,f772 000030c9,0000f772 c7c5 * * * * * c7c5 -13885 * * c7c6 * * * * 30ca e3838a,ef9db3 30ca,f773 000030ca,0000f773 c7c6 * * * * * c7c6 -13886 * * c7c7 * * * * 30cb e3838b,ef9db4 30cb,f774 000030cb,0000f774 c7c7 * * * * * c7c7 -13887 * * c7c8 * * * * 30cc e3838c,ef9db5 30cc,f775 000030cc,0000f775 c7c8 * * * * * c7c8 -13888 * * c7c9 * * * * 30cd e3838d,ef9db6 30cd,f776 000030cd,0000f776 c7c9 * * * * * c7c9 -13889 * * c7ca * * * * 30ce e3838e,ef9db7 30ce,f777 000030ce,0000f777 c7ca * * * * * c7ca -13890 * * c7cb * * * * 30cf e3838f,ef9db8 30cf,f778 000030cf,0000f778 c7cb * * * * * c7cb -13891 * * c7cc * * * * 30d0 e38390,ef9db9 30d0,f779 000030d0,0000f779 c7cc * * * * * c7cc -13892 * * c7cd * * * * 30d1 e38391,ef9dba 30d1,f77a 000030d1,0000f77a c7cd * * * * * c7cd -13893 * * c7ce * * * * 30d2 e38392,ef9dbb 30d2,f77b 000030d2,0000f77b c7ce * * * * * c7ce -13894 * * c7cf * * * * 30d3 e38393,ef9dbc 30d3,f77c 000030d3,0000f77c c7cf * * * * * c7cf -13895 * * c7d0 * * * * 30d4 e38394,ef9dbd 30d4,f77d 000030d4,0000f77d c7d0 * * * * * c7d0 -13896 * * c7d1 * * * * 30d5 e38395,ef9dbe 30d5,f77e 000030d5,0000f77e c7d1 * * * * * c7d1 -13897 * * c7d2 * * * * 30d6 e38396,ef9dbf 30d6,f77f 000030d6,0000f77f c7d2 * * * * * c7d2 -13898 * * c7d3 * * * * 30d7 e38397,ef9e80 30d7,f780 000030d7,0000f780 c7d3 * * * * * c7d3 -13899 * * c7d4 * * * * 30d8 e38398,ef9e81 30d8,f781 000030d8,0000f781 c7d4 * * * * * c7d4 -13900 * * c7d5 * * * * 30d9 e38399,ef9e82 30d9,f782 000030d9,0000f782 c7d5 * * * * * c7d5 -13901 * * c7d6 * * * * 30da e3839a,ef9e83 30da,f783 000030da,0000f783 c7d6 * * * * * c7d6 -13902 * * c7d7 * * * * 30db e3839b,ef9e84 30db,f784 000030db,0000f784 c7d7 * * * * * c7d7 -13903 * * c7d8 * * * * 30dc e3839c,ef9e85 30dc,f785 000030dc,0000f785 c7d8 * * * * * c7d8 -13904 * * c7d9 * * * * 30dd e3839d,ef9e86 30dd,f786 000030dd,0000f786 c7d9 * * * * * c7d9 -13905 * * c7da * * * * 30de e3839e,ef9e87 30de,f787 000030de,0000f787 c7da * * * * * c7da -13906 * * c7db * * * * 30df e3839f,ef9e88 30df,f788 000030df,0000f788 c7db * * * * * c7db -13907 * * c7dc * * * * 30e0 e383a0,ef9e89 30e0,f789 000030e0,0000f789 c7dc * * * * * c7dc -13908 * * c7dd * * * * 30e1 e383a1,ef9e8a 30e1,f78a 000030e1,0000f78a c7dd * * * * * c7dd -13909 * * c7de * * * * 30e2 e383a2,ef9e8b 30e2,f78b 000030e2,0000f78b c7de * * * * * c7de -13910 * * c7df * * * * 30e3 e383a3,ef9e8c 30e3,f78c 000030e3,0000f78c c7df * * * * * c7df -13911 * * c7e0 * * * * 30e4 e383a4,ef9e8d 30e4,f78d 000030e4,0000f78d c7e0 * * * * * c7e0 -13912 * * c7e1 * * * * 30e5 e383a5,ef9e8e 30e5,f78e 000030e5,0000f78e c7e1 * * * * * c7e1 -13913 * * c7e2 * * * * 30e6 e383a6,ef9e8f 30e6,f78f 000030e6,0000f78f c7e2 * * * * * c7e2 -13914 * * c7e3 * * * * 30e7 e383a7,ef9e90 30e7,f790 000030e7,0000f790 c7e3 * * * * * c7e3 -13915 * * c7e4 * * * * 30e8 e383a8,ef9e91 30e8,f791 000030e8,0000f791 c7e4 * * * * * c7e4 -13916 * * c7e5 * * * * 30e9 e383a9,ef9e92 30e9,f792 000030e9,0000f792 c7e5 * * * * * c7e5 -13917 * * c7e6 * * * * 30ea e383aa,ef9e93 30ea,f793 000030ea,0000f793 c7e6 * * * * * c7e6 -13918 * * c7e7 * * * * 30eb e383ab,ef9e94 30eb,f794 000030eb,0000f794 c7e7 * * * * * c7e7 -13919 * * c7e8 * * * * 30ec e383ac,ef9e95 30ec,f795 000030ec,0000f795 c7e8 * * * * * c7e8 -13920 * * c7e9 * * * * 30ed e383ad,ef9e96 30ed,f796 000030ed,0000f796 c7e9 * * * * * c7e9 -13921 * * c7ea * * * * 30ee e383ae,ef9e97 30ee,f797 000030ee,0000f797 c7ea * * * * * c7ea -13922 * * c7eb * * * * 30ef e383af,ef9e98 30ef,f798 000030ef,0000f798 c7eb * * * * * c7eb -13923 * * c7ec * * * * 30f0 e383b0,ef9e99 30f0,f799 000030f0,0000f799 c7ec * * * * * c7ec -13924 * * c7ed * * * * 30f1 e383b1,ef9e9a 30f1,f79a 000030f1,0000f79a c7ed * * * * * c7ed -13925 * * c7ee * * * * 30f2 e383b2,ef9e9b 30f2,f79b 000030f2,0000f79b c7ee * * * * * c7ee -13926 * * c7ef * * * * 30f3 e383b3,ef9e9c 30f3,f79c 000030f3,0000f79c c7ef * * * * * c7ef -13927 * * c7f0 * * * * 30f4 e383b4,ef9e9d 30f4,f79d 000030f4,0000f79d c7f0 * * * * * c7f0 -13928 * * c7f1 * * * * 30f5 e383b5,ef9e9e 30f5,f79e 000030f5,0000f79e c7f1 * * * * * c7f1 -13929 * * c7f2 * * * * 30f6 e383b6,ef9e9f 30f6,f79f 000030f6,0000f79f c7f2 * * * * * c7f2 -13930 * * c7f3 * * * * 0410 d090,ef9ea0 0410,f7a0 00000410,0000f7a0 c7f3 * * * * * c7f3 -13931 * * c7f4 * * * * 0411 d091,ef9ea1 0411,f7a1 00000411,0000f7a1 c7f4 * * * * * c7f4 -13932 * * c7f5 * * * * 0412 d092,ef9ea2 0412,f7a2 00000412,0000f7a2 c7f5 * * * * * c7f5 -13933 * * c7f6 * * * * 0413 d093,ef9ea3 0413,f7a3 00000413,0000f7a3 c7f6 * * * * * c7f6 -13934 * * c7f7 * * * * 0414 d094,ef9ea4 0414,f7a4 00000414,0000f7a4 c7f7 * * * * * c7f7 -13935 * * c7f8 * * * * 0415 d095,ef9ea5 0415,f7a5 00000415,0000f7a5 c7f8 * * * * * c7f8 -13936 * * c7f9 * * * * 0401 d081,ef9ea6 0401,f7a6 00000401,0000f7a6 c7f9 * * * * * c7f9 -13937 * * c7fa * * * * 0416 d096,ef9ea7 0416,f7a7 00000416,0000f7a7 c7fa * * * * * c7fa -13938 * * c7fb * * * * 0417 d097,ef9ea8 0417,f7a8 00000417,0000f7a8 c7fb * * * * * c7fb -13939 * * c7fc * * * * 0418 d098,ef9ea9 0418,f7a9 00000418,0000f7a9 c7fc * * * * * c7fc -13940 * * c7fd * * * * 0419 d099,ef9eaa 0419,f7aa 00000419,0000f7aa c7fd * * * * * c7fd -13941 * * c7fe * * * * 041a d09a,ef9eab 041a,f7ab 0000041a,0000f7ab c7fe * * * * * c7fe -13942 * * c840 * * * * 041b d09b,ef9eac 041b,f7ac 0000041b,0000f7ac c840 * * * * * c840 -13943 * * c841 * * * * 041c d09c,ef9ead 041c,f7ad 0000041c,0000f7ad c841 * * * * * c841 -13944 * * c842 * * * * 041d d09d,ef9eae 041d,f7ae 0000041d,0000f7ae c842 * * * * * c842 -13945 * * c843 * * * * 041e d09e,ef9eaf 041e,f7af 0000041e,0000f7af c843 * * * * * c843 -13946 * * c844 * * * * 041f d09f,ef9eb0 041f,f7b0 0000041f,0000f7b0 c844 * * * * * c844 -13947 * * c845 * * * * 0420 d0a0,ef9eb1 0420,f7b1 00000420,0000f7b1 c845 * * * * * c845 -13948 * * c846 * * * * 0421 d0a1,ef9eb2 0421,f7b2 00000421,0000f7b2 c846 * * * * * c846 -13949 * * c847 * * * * 0422 d0a2,ef9eb3 0422,f7b3 00000422,0000f7b3 c847 * * * * * c847 -13950 * * c848 * * * * 0423 d0a3,ef9eb4 0423,f7b4 00000423,0000f7b4 c848 * * * * * c848 -13951 * * c849 * * * * 0424 d0a4,ef9eb5 0424,f7b5 00000424,0000f7b5 c849 * * * * * c849 -13952 * * c84a * * * * 0425 d0a5,ef9eb6 0425,f7b6 00000425,0000f7b6 c84a * * * * * c84a -13953 * * c84b * * * * 0426 d0a6,ef9eb7 0426,f7b7 00000426,0000f7b7 c84b * * * * * c84b -13954 * * c84c * * * * 0427 d0a7,ef9eb8 0427,f7b8 00000427,0000f7b8 c84c * * * * * c84c -13955 * * c84d * * * * 0428 d0a8,ef9eb9 0428,f7b9 00000428,0000f7b9 c84d * * * * * c84d -13956 * * c84e * * * * 0429 d0a9,ef9eba 0429,f7ba 00000429,0000f7ba c84e * * * * * c84e -13957 * * c84f * * * * 042a d0aa,ef9ebb 042a,f7bb 0000042a,0000f7bb c84f * * * * * c84f -13958 * * c850 * * * * 042b d0ab,ef9ebc 042b,f7bc 0000042b,0000f7bc c850 * * * * * c850 -13959 * * c851 * * * * 042c d0ac,ef9ebd 042c,f7bd 0000042c,0000f7bd c851 * * * * * c851 -13960 * * c852 * * * * 042d d0ad,ef9ebe 042d,f7be 0000042d,0000f7be c852 * * * * * c852 -13961 * * c853 * * * * 042e d0ae,ef9ebf 042e,f7bf 0000042e,0000f7bf c853 * * * * * c853 -13962 * * c854 * * * * 042f d0af,ef9f80 042f,f7c0 0000042f,0000f7c0 c854 * * * * * c854 -13963 * * c855 * * * * 0430 d0b0,ef9f81 0430,f7c1 00000430,0000f7c1 c855 * * * * * c855 -13964 * * c856 * * * * 0431 d0b1,ef9f82 0431,f7c2 00000431,0000f7c2 c856 * * * * * c856 -13965 * * c857 * * * * 0432 d0b2,ef9f83 0432,f7c3 00000432,0000f7c3 c857 * * * * * c857 -13966 * * c858 * * * * 0433 d0b3,ef9f84 0433,f7c4 00000433,0000f7c4 c858 * * * * * c858 -13967 * * c859 * * * * 0434 d0b4,ef9f85 0434,f7c5 00000434,0000f7c5 c859 * * * * * c859 -13968 * * c85a * * * * 0435 d0b5,ef9f86 0435,f7c6 00000435,0000f7c6 c85a * * * * * c85a -13969 * * c85b * * * * 0451 d191,ef9f87 0451,f7c7 00000451,0000f7c7 c85b * * * * * c85b -13970 * * c85c * * * * 0436 d0b6,ef9f88 0436,f7c8 00000436,0000f7c8 c85c * * * * * c85c -13971 * * c85d * * * * 0437 d0b7,ef9f89 0437,f7c9 00000437,0000f7c9 c85d * * * * * c85d -13972 * * c85e * * * * 0438 d0b8,ef9f8a 0438,f7ca 00000438,0000f7ca c85e * * * * * c85e -13973 * * c85f * * * * 0439 d0b9,ef9f8b 0439,f7cb 00000439,0000f7cb c85f * * * * * c85f -13974 * * c860 * * * * 043a d0ba,ef9f8c 043a,f7cc 0000043a,0000f7cc c860 * * * * * c860 -13975 * * c861 * * * * 043b d0bb,ef9f8d 043b,f7cd 0000043b,0000f7cd c861 * * * * * c861 -13976 * * c862 * * * * 043c d0bc,ef9f8e 043c,f7ce 0000043c,0000f7ce c862 * * * * * c862 -13977 * * c863 * * * * 043d d0bd,ef9f8f 043d,f7cf 0000043d,0000f7cf c863 * * * * * c863 -13978 * * c864 * * * * 043e d0be,ef9f90 043e,f7d0 0000043e,0000f7d0 c864 * * * * * c864 -13979 * * c865 * * * * 043f d0bf,ef9f91 043f,f7d1 0000043f,0000f7d1 c865 * * * * * c865 -13980 * * c866 * * * * 0440 d180,ef9f92 0440,f7d2 00000440,0000f7d2 c866 * * * * * c866 -13981 * * c867 * * * * 0441 d181,ef9f93 0441,f7d3 00000441,0000f7d3 c867 * * * * * c867 -13982 * * c868 * * * * 0442 d182,ef9f94 0442,f7d4 00000442,0000f7d4 c868 * * * * * c868 -13983 * * c869 * * * * 0443 d183,ef9f95 0443,f7d5 00000443,0000f7d5 c869 * * * * * c869 -13984 * * c86a * * * * 0444 d184,ef9f96 0444,f7d6 00000444,0000f7d6 c86a * * * * * c86a -13985 * * c86b * * * * 0445 d185,ef9f97 0445,f7d7 00000445,0000f7d7 c86b * * * * * c86b -13986 * * c86c * * * * 0446 d186,ef9f98 0446,f7d8 00000446,0000f7d8 c86c * * * * * c86c -13987 * * c86d * * * * 0447 d187,ef9f99 0447,f7d9 00000447,0000f7d9 c86d * * * * * c86d -13988 * * c86e * * * * 0448 d188,ef9f9a 0448,f7da 00000448,0000f7da c86e * * * * * c86e -13989 * * c86f * * * * 0449 d189,ef9f9b 0449,f7db 00000449,0000f7db c86f * * * * * c86f -13990 * * c870 * * * * 044a d18a,ef9f9c 044a,f7dc 0000044a,0000f7dc c870 * * * * * c870 -13991 * * c871 * * * * 044b d18b,ef9f9d 044b,f7dd 0000044b,0000f7dd c871 * * * * * c871 -13992 * * c872 * * * * 044c d18c,ef9f9e 044c,f7de 0000044c,0000f7de c872 * * * * * c872 -13993 * * c873 * * * * 044d d18d,ef9f9f 044d,f7df 0000044d,0000f7df c873 * * * * * c873 -13994 * * c874 * * * * 044e d18e,ef9fa0 044e,f7e0 0000044e,0000f7e0 c874 * * * * * c874 -13995 * * c875 * * * * 044f d18f,ef9fa1 044f,f7e1 0000044f,0000f7e1 c875 * * * * * c875 -13996 * * c876 * * * * 21e7 e287a7,ef9fa2 21e7,f7e2 000021e7,0000f7e2 c876 * * * * * c876 -13997 * * c877 * * * * 21b8 e286b8,ef9fa3 21b8,f7e3 000021b8,0000f7e3 c877 * * * * * c877 -13998 * * c878 * * * * 21b9 e286b9,ef9fa4 21b9,f7e4 000021b9,0000f7e4 c878 * * * * * c878 -13999 * * c879 * * * * 4e41,f7e5 e3878f,e4b981,ef9fa5 31cf,4e41,f7e5 000031cf,00004e41,0000f7e5 c879 * * * * * c879 -14000 * * c87a * * * * f7e6 f0a0838c,ef9fa6 d840dccc,f7e6 000200cc,0000f7e6 c87a * * * * * c87a -14001 * * c87b * * * * 4e5a e4b99a,ef9fa7 4e5a,f7e7 00004e5a,0000f7e7 c87b * * * * * c87b -14002 * * c87c * * * * f7e8 f0a0828a,ef9fa8 d840dc8a,f7e8 0002008a,0000f7e8 c87c * * * * * c87c -14003 * * c87d * * * * 5202 e58882,ef9fa9 5202,f7e9 00005202,0000f7e9 c87d * * * * * c87d -14004 * * c87e * * * * f7ea e49291,ef9faa 4491,f7ea 00004491,0000f7ea c87e * * * * * c87e -14005 * * c8a1 * * * * f7eb e9beb0,ef9fab 9fb0,f7eb 00009fb0,0000f7eb c8a1 * * * * * c8a1 -14006 * * c8a2 * * * * 5188 e58688,ef9fac 5188,f7ec 00005188,0000f7ec c8a2 * * * * * c8a2 -14007 * * c8a3 * * * * f7ed e3989d,e9beb1,ef9fad 361d,9fb1,f7ed 0000361d,00009fb1,0000f7ed c8a3 * * * * * c8a3 -14008 * * c8a4 * * * * f7ee f0a79887,ef9fae d85dde07,f7ee 00027607,0000f7ee c8a4 * * * * * c8a4 -14009 * * c8a5 * * * * * * * * c8a5 * * * * * * -14010 * * c8a6 * * * * * * * * c8a6 * * * * * * -14011 * * c8a7 * * * * * * * * c8a7 * * * * * * -14012 * * c8a8 * * * * * * * * c8a8 * * * * * * -14013 * * c8a9 * * * * * * * * c8a9 * * * * * * -14014 * * c8aa * * * * * * * * c8aa * * * * * * -14015 * * c8ab * * * * * * * * c8ab * * * * * * -14016 * * c8ac * * * * * * * * c8ac * * * * * * -14017 * * c8ad * * * * * * * * c8ad * * * * * * -14018 * * c8ae * * * * * * * * c8ae * * * * * * -14019 * * c8af * * * * * * * * c8af * * * * * * -14020 * * c8b0 * * * * * * * * c8b0 * * * * * * -14021 * * c8b1 * * * * * * * * c8b1 * * * * * * -14022 * * c8b2 * * * * * * * * c8b2 * * * * * * -14023 * * c8b3 * * * * * * * * c8b3 * * * * * * -14024 * * c8b4 * * * * * * * * c8b4 * * * * * * -14025 * * c8b5 * * * * * * * * c8b5 * * * * * * -14026 * * c8b6 * * * * * * * * c8b6 * * * * * * -14027 * * c8b7 * * * * * * * * c8b7 * * * * * * -14028 * * c8b8 * * * * * * * * c8b8 * * * * * * -14029 * * c8b9 * * * * * * * * c8b9 * * * * * * -14030 * * c8ba * * * * * * * * c8ba * * * * * * -14031 * * c8bb * * * * * * * * c8bb * * * * * * -14032 * * c8bc * * * * * * * * c8bc * * * * * * -14033 * * c8bd * * * * * * * * c8bd * * * * * * -14034 * * c8be * * * * * * * * c8be * * * * * * -14035 * * c8bf * * * * * * * * c8bf * * * * * * -14036 * * c8c0 * * * * * * * * c8c0 * * * * * * -14037 * * c8c1 * * * * * * * * c8c1 * * * * * * -14038 * * c8c2 * * * * * * * * c8c2 * * * * * * -14039 * * c8c3 * * * * * * * * c8c3 * * * * * * -14040 * * c8c4 * * * * * * * * c8c4 * * * * * * -14041 * * c8c5 * * * * * * * * c8c5 * * * * * * -14042 * * c8c6 * * * * * * * * c8c6 * * * * * * -14043 * * c8c7 * * * * * * * * c8c7 * * * * * * -14044 * * c8c8 * * * * * * * * c8c8 * * * * * * -14045 * * c8c9 * * * * * * * * c8c9 * * * * * * -14046 * * c8ca * * * * * * * * c8ca * * * * * * -14047 * * c8cb * * * * * * * * c8cb * * * * * * -14048 * * c8cc * * * * * * * * c8cc * * * * * * -14049 * * c8cd * * * * 00ac,ffe2 c2ac,efbfa2,efa097 00ac,ffe2,f817 000000ac,0000ffe2,0000f817 c8cd * * * * * c8cd -14050 * * c8ce * * * * ffe4 efbfa4,efa098 ffe4,f818 0000ffe4,0000f818 c8ce * * * * * c8ce -14051 * * c8cf * * * * ff07 efbc87,efa099 ff07,f819 0000ff07,0000f819 c8cf * * * * * c8cf -14052 * * c8d0 * * * * ff02 efbc82,efa09a ff02,f81a 0000ff02,0000f81a c8d0 * * * * * c8d0 -14053 * * c8d1 * * * * 3231 e388b1,efa09b 3231,f81b 00003231,0000f81b c8d1 * * * * * c8d1 -14054 * * c8d2 * * * * 2116 e28496,efa09c 2116,f81c 00002116,0000f81c c8d2 * * * * * c8d2 -14055 * * c8d3 * * * * 2121 e284a1,efa09d 2121,f81d 00002121,0000f81d c8d3 * * * * * c8d3 -14056 * * f9d6 * * * * 7881 e7a281 7881 00007881 f9d6 * 8e5a * c879 fbfc f9d6 -14057 * * f9d7 * * * * 92b9 e98ab9,ee9285 92b9,e485 000092b9,0000e485 907a,f9d7 * 91fb 907a c8dd fccc 907a,f9d7 -14058 * * f9d8 * * * * 88cf e8a38f 88cf 000088cf f9d8 * 9254 * c744 fa47 f9d8 -14059 * * f9d9 * * * * 58bb e5a2bb 58bb 000058bb f9d9 * 905c * c7c8 fae9 f9d9 -14060 * * f9da * * * * 6052 e68192 6052 00006052 f9da * * * c7e2 fb57 f9da -14061 * * f9db * * * * 7ca7 e7b2a7 7ca7 00007ca7 f9db * 925a * c8a3 fc52 f9db -14062 * * f9dc * * * * 5afa e5abba 5afa 00005afa f9dc * * * c7cf faf4 f9dc -14063 * * f9dd * * * * 2554 e29594 2554 00002554 f9dd * * * * * f9dd -14064 * * f9de * * * * 2566 e295a6 2566 00002566 f9de * * * * * f9de -14065 * * f9df * * * * 2557 e29597 2557 00002557 f9df * * * * * f9df -14066 * * f9e0 * * * * 2560 e295a0 2560 00002560 f9e0 * * * * * f9e0 -14067 * * f9e1 * * * * 256c e295ac 256c 0000256c f9e1 * * * * * f9e1 -14068 * * f9e2 * * * * 2563 e295a3 2563 00002563 f9e2 * * * * * f9e2 -14069 * * f9e3 * * * * 255a e2959a 255a 0000255a f9e3 * * * * * f9e3 -14070 * * f9e4 * * * * 2569 e295a9 2569 00002569 f9e4 * * * * * f9e4 -14071 * * f9e5 * * * * 255d e2959d 255d 0000255d f9e5 * * * * * f9e5 -14072 * * f9e6 * * * * 2552 e29592 2552 00002552 f9e6 * * * * * f9e6 -14073 * * f9e7 * * * * 2564 e295a4 2564 00002564 f9e7 * * * * * f9e7 -14074 * * f9e8 * * * * 2555 e29595 2555 00002555 f9e8 * * * * * f9e8 -14075 * * f9e9 * * * * * e2959e 255e 0000255e f9e9 * * * * * f9e9 -14076 * * f9ea * * * * * e295aa 256a 0000256a f9ea * * * * * f9ea -14077 * * f9eb * * * * * e295a1 2561 00002561 f9eb * * * * * f9eb -14078 * * f9ec * * * * 2558 e29598 2558 00002558 f9ec * * * * * f9ec -14079 * * f9ed * * * * 2567 e295a7 2567 00002567 f9ed * * * * * f9ed -14080 * * f9ee * * * * 255b e2959b 255b 0000255b f9ee * * * * * f9ee -14081 * * f9ef * * * * 2553 e29593 2553 00002553 f9ef * * * * * f9ef -14082 * * f9f0 * * * * 2565 e295a5 2565 00002565 f9f0 * * * * * f9f0 -14083 * * f9f1 * * * * 2556 e29596 2556 00002556 f9f1 * * * * * f9f1 -14084 * * f9f2 * * * * 255f e2959f 255f 0000255f f9f2 * * * * * f9f2 -14085 * * f9f3 * * * * 256b e295ab 256b 0000256b f9f3 * * * * * f9f3 -14086 * * f9f4 * * * * 2562 e295a2 2562 00002562 f9f4 * * * * * f9f4 -14087 * * f9f5 * * * * 2559 e29599 2559 00002559 f9f5 * * * * * f9f5 -14088 * * f9f6 * * * * 2568 e295a8 2568 00002568 f9f6 * * * * * f9f6 -14089 * * f9f7 * * * * 255c e2959c 255c 0000255c f9f7 * * * * * f9f7 -14090 * * f9f8 * * * * 2551 e29591 2551 00002551 f9f8 * * * * * f9f8 -14091 * * f9f9 * * * * * e29590 2550 00002550 f9f9 * * * * * f9f9 -14092 * * f9fa * * * * * * * * f9fa * * * * * f9fa -14093 * * f9fb * * * * * * * * f9fb * * * * * f9fb -14094 * * f9fc * * * * * * * * f9fc * * * * * f9fc -14095 * * f9fd * * * * * * * * f9fd * * * * * f9fd -14096 * * f9fe * * * * 2593 e29693,efbfad 2593,ffed 00002593,0000ffed f9fe * * * * * f9fe -14097 * * c6e4v c6e4v * * * * * * * c6e4v * * * * * c6e4v -14098 * * c6e5v c6e5v * * * * * * * c6e5v * * * * * c6e5v -14099 * * * * * * * * efb890 fe10 0000fe10 * * * * * * * -14100 * * * * * * * * efb891 fe11 0000fe11 * * * * * * * -14101 * * * * * * * * efb892 fe12 0000fe12 * * * * * * * -14102 * * * * * * * * * * * * * * * * * * -14103 * * * * * * * * efb894 fe14 0000fe14 * * * * * * * -14104 * * * * * * * * efb893 fe13 0000fe13 * * * * * * * -14105 * * * * * * * * efb896 fe16 0000fe16 * * * * * * * -14106 * * * * * * * * efb895 fe15 0000fe15 * * * * * * * -14107 * * * * * * * * * * * * * * * * * * -14108 * * * * * * * * * * * * * * * * * * -14109 * * * * * * * * * * * * * * * * * * -14110 * * * * * * * * * * * * * * * * * * -14111 * * * * * * * * * * * * * * * * * * -14112 * * * * * * * * * * * * * * * * * * -14113 * * * * * * * * * * * * * * * * * * -14114 * * * * * * * * * * * * * * * * * * -14115 * * * * * * * * * * * * * * * * * * -14116 * * * * * * * * * * * * * * * * * * -14117 * * * * * * * * * * * * * * * * * * -14118 * * * * * * * * * * * * * * * * * * -14119 * * * * * * * * * * * * * * * * * * -14120 * * * * * * * * * * * * * * * * * * -14121 * * * * * * * * * * * * * * * * * * -14122 * * * * * * * * * * * * * * * * * * -14123 * * * * * * * e311 f0a3bb97,ee8c91 d84fded7,e311 00023ed7,0000e311 8e40 * * 8e40 * * 8e40 -14124 * * * * * * * 57be e59ebe,ee8c92 57be,e312 000057be,0000e312 8e41 * * 8e41 * * 8e41 -14125 * * * * * * * e313 f0a6bb93,ee8c93 d85bded3,e313 00026ed3,0000e313 8e42 * * 8e42 * * 8e42 -14126 * * * * * * * 713e e784be,ee8c94 713e,e314 0000713e,0000e314 8e43 * * 8e43 * * 8e43 -14127 * * * * * * * e315 f0a59fa0,ee8c95 d855dfe0,e315 000257e0,0000e315 8e44 * * 8e44 * * 8e44 -14128 * * * * * * * 69a2 e6a6a2,ee8c97 69a2,e317 000069a2,0000e317 8e46 * * 8e46 * * 8e46 -14129 * * * * * * * e318 f0a8afa9,ee8c98 d862dfe9,e318 00028be9,0000e318 8e47 * * 8e47 * * 8e47 -14130 * * * * * * * 5b74 e5adb4,ee8c99 5b74,e319 00005b74,0000e319 8e48 * * 8e48 * * 8e48 -14131 * * * * * * * 7a49 e7a989,ee8c9a 7a49,e31a 00007a49,0000e31a 8e49 fd67 8e62 8e49 * fc48 8e49 -14132 * * * * * * * e31b f0a5a3a1,ee8c9b d856dce1,e31b 000258e1,0000e31b 8e4a * * 8e4a * * 8e4a -14133 * * * * * * * e31c f0a99399,ee8c9c d865dcd9,e31c 000294d9,0000e31c 8e4b * * 8e4b * * 8e4b -14134 * * * * * * * 7a65 e7a9a5,ee8c9d 7a65,e31d 00007a65,0000e31d 8e4c * * 8e4c * * 8e4c -14135 * * * * * * * 7a7d e7a9bd,ee8c9e 7a7d,e31e 00007a7d,0000e31e 8e4d fc51 8ecb 8e4d * * 8e4d -14136 * * * * * * * e31f f0a5a6ac,ee8c9f d856ddac,e31f 000259ac,0000e31f 8e4e * * 8e4e * * 8e4e -14137 * * * * * * * 7abb e7aabb,ee8ca0 7abb,e320 00007abb,0000e320 8e4f fc53 8e5b 8e4f * * 8e4f -14138 * * * * * * * 7ab0 e7aab0,ee8ca1 7ab0,e321 00007ab0,0000e321 8e50 fb40 8e56 8e50 c87e fc4b 8e50 -14139 * * * * * * * 7ac2 e7ab82,ee8ca2 7ac2,e322 00007ac2,0000e322 8e51 * * 8e51 * * 8e51 -14140 * * * * * * * 7ac3 e7ab83,ee8ca3 7ac3,e323 00007ac3,0000e323 8e52 * * 8e52 * * 8e52 -14141 * * * * * * * 71d1 e78791,ee8ca4 71d1,e324 000071d1,0000e324 8e53 * * 8e53 * * 8e53 -14142 * * * * * * * e325 f0a6928d,ee8ca5 d859dc8d,e325 0002648d,0000e325 8e54 * * 8e54 * * 8e54 -14143 * * * * * * * 41ca e4878a,ee8ca6 41ca,e326 000041ca,0000e326 8e55 * * 8e55 * * 8e55 -14144 * * * * * * * 7ada e7ab9a,ee8ca7 7ada,e327 00007ada,0000e327 8e56 fd6a 9256 8e56 * fc4c 8e56 -14145 * * * * * * * 7add e7ab9d,ee8ca8 7add,e328 00007add,0000e328 8e57 fd69 8e50 8e57 * * 8e57 -14146 * * * * * * * 7aea e7abaa,ee8ca9 7aea,e329 00007aea,0000e329 8e58 fd6b 91f9 8e58 * fc4d 8e58 -14147 * * * * * * * 41ef e487af,ee8caa 41ef,e32a 000041ef,0000e32a 8e59 * * 8e59 * * 8e59 -14148 * * * * * * * 54b2 e592b2,ee8cab 54b2,e32b 000054b2,0000e32b 8e5a * * 8e5a * * 8e5a -14149 * * * * * * * e32c f0a5b081,ee8cac d857dc01,e32c 00025c01,0000e32c 8e5b * * 8e5b * * 8e5b -14150 * * * * * * * 7b0b e7ac8b,ee8cad 7b0b,e32d 00007b0b,0000e32d 8e5c fa65 8ebf 8e5c c8a1 fc4e 8e5c -14151 * * * * * * * 7b55 e7ad95,ee8cae 7b55,e32e 00007b55,0000e32e 8e5d * * 8e5d * * 8e5d -14152 * * * * * * * 7b29 e7aca9,ee8caf 7b29,e32f 00007b29,0000e32f 8e5e * * 8e5e * * 8e5e -14153 * * * * * * * e330 f0a58c8e,ee8cb0 d854df0e,e330 0002530e,0000e330 8e5f * * 8e5f * * 8e5f -14154 * * * * * * * e331 f0a5b3be,ee8cb1 d857dcfe,e331 00025cfe,0000e331 8e60 * * 8e60 * * 8e60 -14155 * * * * * * * 7ba2 e7aea2,ee8cb2 7ba2,e332 00007ba2,0000e332 8e61 * * 8e61 * * 8e61 -14156 * * * * * * * 7b6f e7adaf,ee8cb3 7b6f,e333 00007b6f,0000e333 8e62 fb58 * 8e62 * * 8e62 -14157 * * * * * * * 839c e88e9c,ee8cb4 839c,e334 0000839c,0000e334 8e63 * * 8e63 * * 8e63 -14158 * * * * * * * e335 f0a5aeb4,ee8cb5 d856dfb4,e335 00025bb4,0000e335 8e64 * * 8e64 * * 8e64 -14159 * * * * * * * e336 f0a6b1bf,ee8cb6 d85bdc7f,e336 00026c7f,0000e336 8e65 * * 8e65 * * 8e65 -14160 * * * * * * * 7bd0 e7af90,ee8cb7 7bd0,e337 00007bd0,0000e337 8e66 * * 8e66 * * 8e66 -14161 * * * * * * * 8421 e890a1,ee8cb8 8421,e338 00008421,0000e338 8e67 * * 8e67 * * 8e67 -14162 * * * * * * * 7b92 e7ae92,ee8cb9 7b92,e339 00007b92,0000e339 8e68 fd79 8e45 8e68 c8a2 fc4f 8e68 -14163 * * * * * * * * * * * * * * 8e69 * * * -14164 * * * * * * * e33b ee8cbb,f0a5b4a0 d857dd20,e33b 0000e33b,00025d20 8e6a * * 8e6a * * 8e6a -14165 * * * * * * * * * * * * * * 8e6c * * * -14166 * * * * * * * 8492 e89292,ee8cbe 8492,e33e 00008492,0000e33e 8e6d * * 8e6d * * 8e6d -14167 * * * * * * * 7bfa e7afba,ee8cbf 7bfa,e33f 00007bfa,0000e33f 8e6e * * 8e6e * * 8e6e -14168 * * * * * * * * * * * * * * 8e6f * * * -14169 * * * * * * * 7c35 e7b0b5,ee8d81 7c35,e341 00007c35,0000e341 8e70 * * 8e70 * * 8e70 -14170 * * * * * * * e342 f0a5b381,ee8d82 d857dcc1,e342 00025cc1,0000e342 8e71 * * 8e71 * * 8e71 -14171 * * * * * * * 7c44 e7b184,ee8d83 7c44,e343 00007c44,0000e343 8e72 * * 8e72 * * 8e72 -14172 * * * * * * * 7c83 e7b283,ee8d84 7c83,e344 00007c83,0000e344 8e73 fda7 906b 8e73 * * 8e73 -14173 * * * * * * * e345 f0a4a282,ee8d85 d852dc82,e345 00024882,0000e345 8e74 * * 8e74 * * 8e74 -14174 * * * * * * * 7ca6 e7b2a6,ee8d86 7ca6,e346 00007ca6,0000e346 8e75 fdcb 8ed0 8e75 * fc54 8e75 -14175 * * * * * * * e348 f0a495b8,ee8d88 d851dd78,e348 00024578,0000e348 8e77 * * 8e77 * * 8e77 -14176 * * * * * * * 7cc9 e7b389,ee8d89 7cc9,e349 00007cc9,0000e349 8e78 * * 8e78 * * 8e78 -14177 * * * * * * * 7cc7 e7b387,ee8d8a 7cc7,e34a 00007cc7,0000e34a 8e79 fda9 906a 8e79 * * 8e79 -14178 * * * * * * * 7ce6 e7b3a6,ee8d8b 7ce6,e34b 00007ce6,0000e34b 8e7a * * 8e7a * * 8e7a -14179 * * * * * * * * * * * * * * 8e7b * * * -14180 * * * * * * * 7cf3 e7b3b3,ee8d8d 7cf3,e34d 00007cf3,0000e34d 8e7c * * 8e7c * * 8e7c -14181 * * * * * * * 7cf5 e7b3b5,ee8d8e 7cf5,e34e 00007cf5,0000e34e 8e7d * * 8e7d * * 8e7d -14182 * * * * * * * 7e67 e7b9a7,ee8d90 7e67,e350 00007e67,0000e350 8ea1 * * 8ea1 * * 8ea1 -14183 * * * * * * * 451d e4949d,ee8d91 451d,e351 0000451d,0000e351 8ea2 * * 8ea2 * * 8ea2 -14184 * * * * * * * e352 f0a6b984,ee8d92 d85bde44,e352 00026e44,0000e352 8ea3 * * 8ea3 * * 8ea3 -14185 * * * * * * * 7d5d e7b59d,ee8d93 7d5d,e353 00007d5d,0000e353 8ea4 fb59,fdb0 8f43 8ea4 * fc58 8ea4 -14186 * * * * * * * e354 f0a6bb96,ee8d94 d85bded6,e354 00026ed6,0000e354 8ea5 * * 8ea5 * * 8ea5 -14187 * * * * * * * 7d89 e7b689,ee8d96 7d89,e356 00007d89,0000e356 8ea7 fac0 8efe 8ea7 c8a9 fc5a 8ea7 -14188 * * * * * * * 7dab e7b6ab,ee8d97 7dab,e357 00007dab,0000e357 8ea8 faf8 9255 8ea8 c8a8 fc59 8ea8 -14189 * * * * * * * 7135 e784b5,ee8d98 7135,e358 00007135,0000e358 8ea9 * * 8ea9 * * 8ea9 -14190 * * * * * * * 7db3 e7b6b3,ee8d99 7db3,e359 00007db3,0000e359 8eaa fdb1 8ef5 8eaa * fc5b 8eaa -14191 * * * * * * * 7dd6 e7b796 7dd6 00007dd6 * * * 8eab * * * -14192 * * * * * * * e35b f0a48197,ee8d9b d850dc57,e35b 00024057,0000e35b 8eac * * 8eac * * 8eac -14193 * * * * * * * e35c f0a680a9,ee8d9c d858dc29,e35c 00026029,0000e35c 8ead * * 8ead * * 8ead -14194 * * * * * * * 7de4 e7b7a4,ee8d9d 7de4,e35d 00007de4,0000e35d 8eae * * 8eae * * 8eae -14195 * * * * * * * 3d13 e3b493,ee8d9e 3d13,e35e 00003d13,0000e35e 8eaf * * 8eaf * * 8eaf -14196 * * * * * * * 7df5 e7b7b5,ee8d9f 7df5,e35f 00007df5,0000e35f 8eb0 fdb3 9070 8eb0 * * 8eb0 -14197 * * * * * * * e360 f0a19fb9,ee8da0 d845dff9,e360 000217f9,0000e360 8eb1 * * 8eb1 * * 8eb1 -14198 * * * * * * * 7de5 e7b7a5,ee8da1 7de5,e361 00007de5,0000e361 8eb2 * * 8eb2 * * 8eb2 -14199 * * * * * * * e362 f0a88dad,ee8da2 d860df6d,e362 0002836d,0000e362 8eb3 * * 8eb3 * * 8eb3 -14200 * * * * * * * * * * * * * * 8eb4 * * * -14201 * * * * * * * e364 f0a684a1,ee8da4 d858dd21,e364 00026121,0000e364 8eb5 * * 8eb5 * * 8eb5 -14202 * * * * * * * e365 f0a6859a,ee8da5 d858dd5a,e365 0002615a,0000e365 8eb6 * * 8eb6 * * 8eb6 -14203 * * * * * * * 7e6e e7b9ae,ee8da6 7e6e,e366 00007e6e,0000e366 8eb7 fdb5 9071 8eb7 * fc5d 8eb7 -14204 * * * * * * * * * * * * * * 8eb8 * * * -14205 * * * * * * * 432b e48cab,ee8da8 432b,e368 0000432b,0000e368 8eb9 * * 8eb9 * * 8eb9 -14206 * * * * * * * 946c e991ac,ee8da9 946c,e369 0000946c,0000e369 8eba * * 8eba * * 8eba -14207 * * * * * * * 7e27 e7b8a7,ee8daa 7e27,e36a 00007e27,0000e36a 8ebb fdb4 8ed7,8ef3 8ebb * fc5c 8ebb -14208 * * * * * * * 7f40 e7bd80,ee8dab 7f40,e36b 00007f40,0000e36b 8ebc * * 8ebc * * 8ebc -14209 * * * * * * * 7f41 e7bd81,ee8dac 7f41,e36c 00007f41,0000e36c 8ebd * * 8ebd * * 8ebd -14210 * * * * * * * 7f47 e7bd87,ee8dad 7f47,e36d 00007f47,0000e36d 8ebe fdb6 8f58 8ebe c8aa fc5e 8ebe -14211 * * * * * * * 7936 e7a4b6,ee8dae 7936,e36e 00007936,0000e36e 8ebf * * 8ebf * * 8ebf -14212 * * * * * * * e36f f0a68b90,ee8daf d858ded0,e36f 000262d0,0000e36f 8ec0 * * 8ec0 * * 8ec0 -14213 * * * * * * * 99e1 e9a7a1,ee8db0 99e1,e370 000099e1,0000e370 8ec1 * 9162 8ec1 c8e9 fce0 8ec1 -14214 * * * * * * * 7f97 e7be97,ee8db1 7f97,e371 00007f97,0000e371 8ec2 fafd 8e47 8ec2 c8ad fc61 8ec2 -14215 * * * * * * * e372 f0a68d91,ee8db2 d858df51,e372 00026351,0000e372 8ec3 * * 8ec3 * * 8ec3 -14216 * * * * * * * 7fa3 e7bea3,ee8db3 7fa3,e373 00007fa3,0000e373 8ec4 faf3 * 8ec4 c8af fc63 8ec4 -14217 * * * * * * * e374 f0a199a1,ee8db4 d845de61,e374 00021661,0000e374 8ec5 * * 8ec5 * * 8ec5 -14218 * * * * * * * e375 f0a081a8,ee8db5 d840dc68,e375 00020068,0000e375 8ec6 * * 8ec6 * * 8ec6 -14219 * * * * * * * 455c e4959c,ee8db6 455c,e376 0000455c,0000e376 8ec7 * * 8ec7 * * 8ec7 -14220 * * * * * * * e377 f0a39da6,ee8db7 d84ddf66,e377 00023766,0000e377 8ec8 * * 8ec8 * * 8ec8 -14221 * * * * * * * e379 f0a88cba,ee8db9 d860df3a,e379 0002833a,0000e379 8eca * * 8eca * * 8eca -14222 * * * * * * * 7ffa e7bfba,ee8dba 7ffa,e37a 00007ffa,0000e37a 8ecb * * 8ecb * * 8ecb -14223 * * * * * * * e37b f0a69289,ee8dbb d859dc89,e37b 00026489,0000e37b 8ecc * * 8ecc * * 8ecc -14224 * * * * * * * * efa99b fa5b 0000fa5b * * * 8ecd * * * -14225 * * * * * * * 8008 e88088,ee8dbd 8008,e37d 00008008,0000e37d 8ece * * 8ece * * 8ece -14226 * * * * * * * 801d e8809d,ee8dbe 801d,e37e 0000801d,0000e37e 8ecf fdb8 8ee9 8ecf * * 8ecf -14227 * * * * * * * * * * * * * * 8ed0 * * * -14228 * * * * * * * 802f e880af,ee8e80 802f,e380 0000802f,0000e380 8ed1 * * 8ed1 * * 8ed1 -14229 * * * * * * * e381 f0aa8287,ee8e81 d868dc87,e381 0002a087,0000e381 8ed2 * * 8ed2 * * 8ed2 -14230 * * * * * * * e382 f0a6b383,ee8e82 d85bdcc3,e382 00026cc3,0000e382 8ed3 * * 8ed3 * * 8ed3 -14231 * * * * * * * 803b e880bb,ee8e83 803b,e383 0000803b,0000e383 8ed4 * * 8ed4 c8b2 fc66 8ed4 -14232 * * * * * * * 803c e880bc,ee8e84 803c,e384 0000803c,0000e384 8ed5 * * 8ed5 * * 8ed5 -14233 * * * * * * * 8061 e881a1,ee8e85 8061,e385 00008061,0000e385 8ed6 * * 8ed6 * * 8ed6 -14234 * * * * * * * e386 f0a29c94,ee8e86 d849df14,e386 00022714,0000e386 8ed7 * * 8ed7 * * 8ed7 -14235 * * * * * * * 4989 e4a689,ee8e87 4989,e387 00004989,0000e387 8ed8 faf1 * 8ed8 c8e1 fcd1 8ed8 -14236 * * * * * * * e388 f0a698a6,ee8e88 d859de26,e388 00026626,0000e388 8ed9 * * 8ed9 * * 8ed9 -14237 * * * * * * * e389 f0a3b7a3,ee8e89 d84fdde3,e389 00023de3,0000e389 8eda * * 8eda * * 8eda -14238 * * * * * * * e38a f0a69ba8,ee8e8a d859dee8,e38a 000266e8,0000e38a 8edb * * 8edb * * 8edb -14239 * * * * * * * 6725 e69ca5,ee8e8b 6725,e38b 00006725,0000e38b 8edc fb5b,fdc5 8efd 8edc * * 8edc -14240 * * * * * * * 80a7 e882a7,ee8e8c 80a7,e38c 000080a7,0000e38c 8edd * * 8edd * * 8edd -14241 * * * * * * * e38d f0a8a988,ee8e8d d862de48,e38d 00028a48,0000e38d 8ede * * 8ede * * 8ede -14242 * * * * * * * 8107 e88487,ee8e8e 8107,e38e 00008107,0000e38e 8edf fdbe 9045 8edf * fb7e 8edf -14243 * * * * * * * 811a e8849a,ee8e8f 811a,e38f 0000811a,0000e38f 8ee0 * * 8ee0 * * 8ee0 -14244 * * * * * * * 58b0 e5a2b0,ee8e90 58b0,e390 000058b0,0000e390 8ee1 * * 8ee1 * * 8ee1 -14245 * * * * * * * e391 f0a29bb6,ee8e91 d849def6,e391 000226f6,0000e391 8ee2 * * 8ee2 * * 8ee2 -14246 * * * * * * * 6c7f e6b1bf,ee8e92 6c7f,e392 00006c7f,0000e392 8ee3 * * 8ee3 * * 8ee3 -14247 * * * * * * * e393 f0a69298,ee8e93 d859dc98,e393 00026498,0000e393 8ee4 * * 8ee4 * * 8ee4 -14248 * * * * * * * 64e7 e693a7,ee8e95 64e7,e395 000064e7,0000e395 8ee6 fb47 * 8ee6 c7f7 fb73 8ee6 -14249 * * * * * * * e396 f0a1928a,ee8e96 d845dc8a,e396 0002148a,0000e396 8ee7 * * 8ee7 * * 8ee7 -14250 * * * * * * * 8218 e88898,ee8e97 8218,e397 00008218,0000e397 8ee8 fb68,febc 9240 8ee8 * * 8ee8 -14251 * * * * * * * e398 f0a1a19e,ee8e98 d846dc5e,e398 0002185e,0000e398 8ee9 * * 8ee9 * * 8ee9 -14252 * * * * * * * 6a53 e6a993,ee8e99 6a53,e399 00006a53,0000e399 8eea * * 8eea * * 8eea -14253 * * * * * * * e39a f0a4a9a5,ee8e9a d852de65,e39a 00024a65,0000e39a 8eeb * * 8eeb * * 8eeb -14254 * * * * * * * e39b f0a4aa95,ee8e9b d852de95,e39b 00024a95,0000e39b 8eec * * 8eec * * 8eec -14255 * * * * * * * 447a e491ba,ee8e9c 447a,e39c 0000447a,0000e39c 8eed * * 8eed * * 8eed -14256 * * * * * * * 8229 e888a9,ee8e9d 8229,e39d 00008229,0000e39d 8eee * * 8eee * * 8eee -14257 * * * * * * * e39f f0a6a992,ee8e9f d85ade52,e39f 00026a52,0000e39f 8ef0 * * 8ef0 * * 8ef0 -14258 * * * * * * * e3a0 f0a3b5be,ee8ea0 d84fdd7e,e3a0 00023d7e,0000e3a0 8ef1 * * 8ef1 * * 8ef1 -14259 * * * * * * * 4ff9 e4bfb9,ee8ea1 4ff9,e3a1 00004ff9,0000e3a1 8ef2 * * 8ef2 * * 8ef2 -14260 * * * * * * * e3a2 f0a193bd,ee8ea2 d845dcfd,e3a2 000214fd,0000e3a2 8ef3 * * 8ef3 * * 8ef3 -14261 * * * * * * * 84e2 e893a2,ee8ea3 84e2,e3a3 000084e2,0000e3a3 8ef4 * * 8ef4 * * 8ef4 -14262 * * * * * * * 8362 e88da2,ee8ea4 8362,e3a4 00008362,0000e3a4 8ef5 * * 8ef5 * * 8ef5 -14263 * * * * * * * * f0afa68f d87edd8f 0002f98f * * * 8ef6 * * * -14264 * * * * * * * e3a6 f0a4a6a7,ee8ea6 d852dda7,e3a6 000249a7,0000e3a6 8ef7 * * 8ef7 * * 8ef7 -14265 * * * * * * * e3a7 f0a394b0,ee8ea7 d84ddd30,e3a7 00023530,0000e3a7 8ef8 * * 8ef8 * * 8ef8 -14266 * * * * * * * e3a8 f0a19db3,ee8ea8 d845df73,e3a8 00021773,0000e3a8 8ef9 * * 8ef9 * * 8ef9 -14267 * * * * * * * e3a9 f0a3b7b8,ee8ea9 d84fddf8,e3a9 00023df8,0000e3a9 8efa * * 8efa * * 8efa -14268 * * * * * * * 82aa e88aaa,ee8eaa 82aa,e3aa 000082aa,0000e3aa 8efb fb4b 907e 8efb * fc69 8efb -14269 * * * * * * * 691b e6a49b,ee8eab 691b,e3ab 0000691b,0000e3ab 8efc * * 8efc * * 8efc -14270 * * * * * * * e3ac f0afa694,ee8eac d87edd94,e3ac 0002f994,0000e3ac 8efd * * 8efd * * 8efd -14271 * * * * * * * 41db e4879b,ee8ead 41db,e3ad 000041db,0000e3ad 8efe * * 8efe * * 8efe -14272 * * * * * * * 854b e8958b,ee8eae 854b,e3ae 0000854b,0000e3ae 8f40 fdf6 8f5b 8f40 * * 8f40 -14273 * * * * * * * 82d0 e88b90,ee8eaf 82d0,e3af 000082d0,0000e3af 8f41 fdec 90a3 8f41 * * 8f41 -14274 * * * * * * * 831a e88c9a,ee8eb0 831a,e3b0 0000831a,0000e3b0 8f42 * * 8f42 * * 8f42 -14275 * * * * * * * e3b1 f0a0b896,ee8eb1 d843de16,e3b1 00020e16,0000e3b1 8f43 * * 8f43 * * 8f43 -14276 * * * * * * * e3b2 f0a19eb4,ee8eb2 d845dfb4,e3b2 000217b4,0000e3b2 8f44 * * 8f44 * * 8f44 -14277 * * * * * * * 36c1 e39b81,ee8eb3 36c1,e3b3 000036c1,0000e3b3 8f45 * * 8f45 * * 8f45 -14278 * * * * * * * e3b4 f0a385bd,ee8eb4 d84cdd7d,e3b4 0002317d,0000e3b4 8f46 * * 8f46 * * 8f46 -14279 * * * * * * * e3b5 f0a3959a,ee8eb5 d84ddd5a,e3b5 0002355a,0000e3b5 8f47 * * 8f47 * * 8f47 -14280 * * * * * * * 827b e889bb,ee8eb6 827b,e3b6 0000827b,0000e3b6 8f48 * * 8f48 * * 8f48 -14281 * * * * * * * 82e2 e88ba2,ee8eb7 82e2,e3b7 000082e2,0000e3b7 8f49 * * 8f49 * * 8f49 -14282 * * * * * * * 8318 e88c98,ee8eb8 8318,e3b8 00008318,0000e3b8 8f4a * * 8f4a * * 8f4a -14283 * * * * * * * e3b9 f0a3ba8b,ee8eb9 d84fde8b,e3b9 00023e8b,0000e3b9 8f4b * * 8f4b * * 8f4b -14284 * * * * * * * e3ba f0a6b6a3,ee8eba d85bdda3,e3ba 00026da3,0000e3ba 8f4c * * 8f4c * * 8f4c -14285 * * * * * * * e3bb f0a6ac85,ee8ebb d85adf05,e3bb 00026b05,0000e3bb 8f4d * * 8f4d * * 8f4d -14286 * * * * * * * e3bc f0a6ae97,ee8ebc d85adf97,e3bc 00026b97,0000e3bc 8f4e * * 8f4e * * 8f4e -14287 * * * * * * * e3bd f0a3978e,ee8ebd d84dddce,e3bd 000235ce,0000e3bd 8f4f * * 8f4f * * 8f4f -14288 * * * * * * * 3dbf e3b6bf,ee8ebe 3dbf,e3be 00003dbf,0000e3be 8f50 * * 8f50 * * 8f50 -14289 * * * * * * * 831d e88c9d,ee8ebf 831d,e3bf 0000831d,0000e3bf 8f51 * * 8f51 * * 8f51 -14290 * * * * * * * 55ec e597ac,ee8f80 55ec,e3c0 000055ec,0000e3c0 8f52 * * 8f52 c7af fac9 8f52 -14291 * * * * * * * 8385 e88e85,ee8f81 8385,e3c1 00008385,0000e3c1 8f53 fded 8ec4 8f53 * * 8f53 -14292 * * * * * * * 450b e4948b,ee8f82 450b,e3c2 0000450b,0000e3c2 8f54 * * 8f54 * * 8f54 -14293 * * * * * * * e3c3 f0a6b6a5,ee8f83 d85bdda5,e3c3 00026da5,0000e3c3 8f55 * * 8f55 * * 8f55 -14294 * * * * * * * 83ac e88eac,ee8f84 83ac,e3c4 000083ac,0000e3c4 8f56 * * 8f56 * * 8f56 -14295 * * * * * * * * * * * * * * 8f57 * * * -14296 * * * * * * * 83d3 e88f93,ee8f86 83d3,e3c6 000083d3,0000e3c6 8f58 fab9 9044 8f58 c8b4 fc6b 8f58 -14297 * * * * * * * e3c8 f0a6bb94,ee8f88 d85bded4,e3c8 00026ed4,0000e3c8 8f5a * * 8f5a * * 8f5a -14298 * * * * * * * 6a57 e6a997,ee8f89 6a57,e3c9 00006a57,0000e3c9 8f5b * * 8f5b * * 8f5b -14299 * * * * * * * 855a e8959a,ee8f8a 855a,e3ca 0000855a,0000e3ca 8f5c * * 8f5c * * 8f5c -14300 * * * * * * * 3496 e39296,ee8f8b 3496,e3cb 00003496,0000e3cb 8f5d * * 8f5d * * 8f5d -14301 * * * * * * * e3cc f0a6b982,ee8f8c d85bde42,e3cc 00026e42,0000e3cc 8f5e * * 8f5e * * 8f5e -14302 * * * * * * * 8458 e89198,ee8f8e 8458,e3ce 00008458,0000e3ce 8f60 * * 8f60 * * 8f60 -14303 * * * * * * * e3cf f0a5afa4,ee8f8f d856dfe4,e3cf 00025be4,0000e3cf 8f61 * * 8f61 * * 8f61 -14304 * * * * * * * 8471 e891b1,ee8f90 8471,e3d0 00008471,0000e3d0 8f62 faa4 91fc 8f62 c8b7 fc70 8f62 -14305 * * * * * * * 3dd3 e3b793,ee8f91 3dd3,e3d1 00003dd3,0000e3d1 8f63 * * 8f63 * * 8f63 -14306 * * * * * * * 44e4 e493a4,ee8f92 44e4,e3d2 000044e4,0000e3d2 8f64 * * 8f64 * * 8f64 -14307 * * * * * * * 6aa7 e6aaa7,ee8f93 6aa7,e3d3 00006aa7,0000e3d3 8f65 * * 8f65 * * 8f65 -14308 * * * * * * * 844a e8918a,ee8f94 844a,e3d4 0000844a,0000e3d4 8f66 * * 8f66 * * 8f66 -14309 * * * * * * * 7958 e7a598,ee8f96 7958,e3d6 00007958,0000e3d6 8f68 * * 8f68 * * 8f68 -14310 * * * * * * * * * * * * * * 8f69 * * * -14311 * * * * * * * e3d8 f0a6ae96,ee8f98 d85adf96,e3d8 00026b96,0000e3d8 8f6a * * 8f6a * * 8f6a -14312 * * * * * * * e3d9 f0a6b9b7,ee8f99 d85bde77,e3d9 00026e77,0000e3d9 8f6b * * 8f6b * * 8f6b -14313 * * * * * * * e3da f0a6b983,ee8f9a d85bde43,e3da 00026e43,0000e3da 8f6c * * 8f6c * * 8f6c -14314 * * * * * * * 84de e8939e,ee8f9b 84de,e3db 000084de,0000e3db 8f6d * * 8f6d * * 8f6d -14315 * * * * * * * * * * * * * * 8f6e * * * -14316 * * * * * * * 8391 e88e91,ee8f9d 8391,e3dd 00008391,0000e3dd 8f6f * * 8f6f * * 8f6f -14317 * * * * * * * 44a0 e492a0,ee8f9e 44a0,e3de 000044a0,0000e3de 8f70 * * 8f70 * * 8f70 -14318 * * * * * * * 8493 e89293,ee8f9f 8493,e3df 00008493,0000e3df 8f71 * * 8f71 * fc71 8f71 -14319 * * * * * * * 84e4 e893a4,ee8fa0 84e4,e3e0 000084e4,0000e3e0 8f72 * * 8f72 * * 8f72 -14320 * * * * * * * e3e1 f0a5b291,ee8fa1 d857dc91,e3e1 00025c91,0000e3e1 8f73 * * 8f73 * * 8f73 -14321 * * * * * * * 4240 e48980,ee8fa2 4240,e3e2 00004240,0000e3e2 8f74 * * 8f74 * * 8f74 -14322 * * * * * * * e3e3 f0a5b380,ee8fa3 d857dcc0,e3e3 00025cc0,0000e3e3 8f75 * * 8f75 * * 8f75 -14323 * * * * * * * 4543 e49583,ee8fa4 4543,e3e4 00004543,0000e3e4 8f76 * * 8f76 * * 8f76 -14324 * * * * * * * 8534 e894b4,ee8fa5 8534,e3e5 00008534,0000e3e5 8f77 fac5 9257 8f77 c8b8 fc72 8f77 -14325 * * * * * * * 5af2 e5abb2,ee8fa6 5af2,e3e6 00005af2,0000e3e6 8f78 fac4 * 8f78 c7ce faf3 8f78 -14326 * * * * * * * * e494a3 4523 00004523 * * * 8f79 * * * -14327 * * * * * * * 4527 e494a7,ee8fa8 4527,e3e8 00004527,0000e3e8 8f7a * * 8f7a * * 8f7a -14328 * * * * * * * 8573 e895b3,ee8fa9 8573,e3e9 00008573,0000e3e9 8f7b * * 8f7b * * 8f7b -14329 * * * * * * * 4516 e49496,ee8faa 4516,e3ea 00004516,0000e3ea 8f7c * * 8f7c * * 8f7c -14330 * * * * * * * 67bf e69ebf,ee8fab 67bf,e3eb 000067bf,0000e3eb 8f7d * * 8f7d * * 8f7d -14331 * * * * * * * 8616 e89896,ee8fac 8616,e3ec 00008616,0000e3ec 8f7e * * 8f7e * * 8f7e -14332 * * * * * * * e3ed f0a898a5,ee8fad d861de25,e3ed 00028625,0000e3ed 8fa1 * * 8fa1 * * 8fa1 -14333 * * * * * * * e3ee f0a898bb,ee8fae d861de3b,e3ee 0002863b,0000e3ee 8fa2 * * 8fa2 * * 8fa2 -14334 * * * * * * * 85c1 e89781,ee8faf 85c1,e3ef 000085c1,0000e3ef 8fa3 * * 8fa3 * * 8fa3 -14335 * * * * * * * e3f0 f0a78288,ee8fb0 d85cdc88,e3f0 00027088,0000e3f0 8fa4 * * 8fa4 * * 8fa4 -14336 * * * * * * * 8602 e89882,ee8fb1 8602,e3f1 00008602,0000e3f1 8fa5 fdf8 8ee3 8fa5 * * 8fa5 -14337 * * * * * * * e3f2 f0a19682,ee8fb2 d845dd82,e3f2 00021582,0000e3f2 8fa6 * * 8fa6 * * 8fa6 -14338 * * * * * * * e3f3 f0a7838d,ee8fb3 d85cdccd,e3f3 000270cd,0000e3f3 8fa7 * * 8fa7 * * 8fa7 -14339 * * * * * * * e3f4 f0a783b0,f0afa6b2,ee8fb4 d85cdcf0,d87eddb2,e3f4 000270f0,0002f9b2,0000e3f4 8fa8 * * 8fa8 * * 8fa8 -14340 * * * * * * * 456a e495aa,ee8fb5 456a,e3f5 0000456a,0000e3f5 8fa9 * * 8fa9 * * 8fa9 -14341 * * * * * * * 8628 e898a8,ee8fb6 8628,e3f6 00008628,0000e3f6 8faa * * 8faa * * 8faa -14342 * * * * * * * 3648 e39988,ee8fb7 3648,e3f7 00003648,0000e3f7 8fab * * 8fab * * 8fab -14343 * * * * * * * e3f8 f0a1a2a2,ee8fb8 d846dca2,e3f8 000218a2,0000e3f8 8fac * * 8fac * * 8fac -14344 * * * * * * * 53f7 e58fb7,ee8fb9 53f7,e3f9 000053f7,0000e3f9 8fad * * 8fad * * 8fad -14345 * * * * * * * e3fa f0a78e9a,ee8fba d85cdf9a,e3fa 0002739a,0000e3fa 8fae * * 8fae * * 8fae -14346 * * * * * * * 867e e899be,ee8fbb 867e,e3fb 0000867e,0000e3fb 8faf * * 8faf * * 8faf -14347 * * * * * * * 8771 * * * * fdcd 90a7 8fb0 * * * -14348 * * * * * * * e3fd f0aa83b8,ee8fbd d868dcf8,e3fd 0002a0f8,0000e3fd 8fb1 * * 8fb1 * * 8fb1 -14349 * * * * * * * 87ee e89fae,ee8fbe 87ee,e3fe 000087ee,0000e3fe 8fb2 fb5d,fdd3 90aa 8fb2 c8bb fc79 8fb2 -14350 * * * * * * * e3ff f0a2b0a7,ee8fbf d84bdc27,e3ff 00022c27,0000e3ff 8fb3 * * 8fb3 * * 8fb3 -14351 * * * * * * * 87b1 e89eb1,ee9080 87b1,e400 000087b1,0000e400 8fb4 * * 8fb4 * * 8fb4 -14352 * * * * * * * 87da e89f9a,ee9081 87da,e401 000087da,0000e401 8fb5 * * 8fb5 * * 8fb5 -14353 * * * * * * * 880f e8a08f,eeb8be,ee9082 880f,ee3e,e402 0000880f,0000ee3e,0000e402 a063,8fb6 fdd7 90ad 8fb6 * * a063,8fb6 -14354 * * * * * * * 5661 e599a1,ee9083 5661,e403 00005661,0000e403 8fb7 * * 8fb7 * * 8fb7 -14355 * * * * * * * 866c e899ac,ee9084 866c,e404 0000866c,0000e404 8fb8 fafa 8ed2 8fb8 c8b9 fc73 8fb8 -14356 * * * * * * * 6856 e6a196,ee9085 6856,e405 00006856,0000e405 8fb9 * * 8fb9 * * 8fb9 -14357 * * * * * * * 460f e4988f,ee9086 460f,e406 0000460f,0000e406 8fba fb64,fe5c 8f5c 8fba * * 8fba -14358 * * * * * * * 8845 e8a185,ee9087 8845,e407 00008845,0000e407 8fbb fddb 8f56 8fbb * fc7c 8fbb -14359 * * * * * * * 8846 e8a186,ee9088 8846,e408 00008846,0000e408 8fbc * * 8fbc * * 8fbc -14360 * * * * * * * e409 f0a797a0,ee9089 d85ddde0,e409 000275e0,0000e409 8fbd * * 8fbd * * 8fbd -14361 * * * * * * * e40a f0a3b6b9,ee908a d84fddb9,e40a 00023db9,0000e40a 8fbe * * 8fbe * * 8fbe -14362 * * * * * * * e40b f0a797a4,ee908b d85ddde4,e40b 000275e4,0000e40b 8fbf * * 8fbf * * 8fbf -14363 * * * * * * * 885e e8a19e,ee908c 885e,e40c 0000885e,0000e40c 8fc0 fad2 * 8fc0 c8bd fc7d 8fc0 -14364 * * * * * * * 889c e8a29c,ee908d 889c,e40d 0000889c,0000e40d 8fc1 fb5f,fdde 90b1 8fc1 c8be fca1 8fc1 -14365 * * * * * * * 465b e4999b,ee908e 465b,e40e 0000465b,0000e40e 8fc2 * * 8fc2 * * 8fc2 -14366 * * * * * * * 88b4 e8a2b4,ee908f 88b4,e40f 000088b4,0000e40f 8fc3 * * 8fc3 c8bf fca2 8fc3 -14367 * * * * * * * 88b5 e8a2b5,ee9090 88b5,e410 000088b5,0000e410 8fc4 fde0 8f46 8fc4 c8c0 fca3 8fc4 -14368 * * * * * * * 88c5 e8a385,ee9092 88c5,e412 000088c5,0000e412 8fc6 * * 8fc6 * * 8fc6 -14369 * * * * * * * e414 f0a79c8f,ee9094 d85ddf0f,e414 0002770f,0000e414 8fc8 * * 8fc8 * * 8fc8 -14370 * * * * * * * 8987 e8a687,ee9095 8987,e415 00008987,0000e415 8fc9 fdfb 9043 8fc9 * * 8fc9 -14371 * * * * * * * 898a * * * * fdfd 9252 8fca * * * -14372 * * * * * * * * * * * * * * 8fcb * * * -14373 * * * * * * * 89a9 * * * * * * 8fcc * * * -14374 * * * * * * * 89a7 e8a6a7,ee9099 89a7,e419 000089a7,0000e419 8fcd * * 8fcd * * 8fcd -14375 * * * * * * * 89bc e8a6bc,ee909a 89bc,e41a 000089bc,0000e41a 8fce fe42 90b5 8fce * * 8fce -14376 * * * * * * * e41b f0a8a8a5,ee909b d862de25,e41b 00028a25,0000e41b 8fcf * * 8fcf * * 8fcf -14377 * * * * * * * 89e7 e8a7a7,ee909c 89e7,e41c 000089e7,0000e41c 8fd0 * * 8fd0 * * 8fd0 -14378 * * * * * * * e41d f0a7a4a4,ee909d d85edd24,e41d 00027924,0000e41d 8fd1 * * 8fd1 * * 8fd1 -14379 * * * * * * * e41e f0a7aabd,ee909e d85edebd,e41e 00027abd,0000e41e 8fd2 * * 8fd2 * * 8fd2 -14380 * * * * * * * 8a9c e8aa9c,ee909f 8a9c,e41f 00008a9c,0000e41f 8fd3 * * 8fd3 * * 8fd3 -14381 * * * * * * * 7793 e79e93,ee90a0 7793,e420 00007793,0000e420 8fd4 facc * 8fd4 c876 fbf6 8fd4 -14382 * * * * * * * 91fe e987be,ee90a1 91fe,e421 000091fe,0000e421 8fd5 fe6f 90cf 8fd5 c8d9 fcc8 8fd5 -14383 * * * * * * * 8a90 e8aa90,ee90a2 8a90,e422 00008a90,0000e422 8fd6 * * 8fd6 * * 8fd6 -14384 * * * * * * * e423 f0a7a999,ee90a3 d85ede59,e423 00027a59,0000e423 8fd7 * * 8fd7 * * 8fd7 -14385 * * * * * * * 7ae9 e7aba9,ee90a4 7ae9,e424 00007ae9,0000e424 8fd8 * * 8fd8 * * 8fd8 -14386 * * * * * * * e425 f0a7acba,ee90a5 d85edf3a,e425 00027b3a,0000e425 8fd9 * * 8fd9 * * 8fd9 -14387 * * * * * * * 4713 e49c93,ee90a7 4713,e427 00004713,0000e427 8fdb * * 8fdb * * 8fdb -14388 * * * * * * * e428 f0a7acb8,ee90a8 d85edf38,e428 00027b38,0000e428 8fdc * * 8fdc * * 8fdc -14389 * * * * * * * 717c e785bc,ee90a9 717c,e429 0000717c,0000e429 8fdd * * 8fdd * * 8fdd -14390 * * * * * * * 8b0c e8ac8c,ee90aa 8b0c,e42a 00008b0c,0000e42a 8fde fe45 90b8 8fde * * 8fde -14391 * * * * * * * 8b1f e8ac9f,ee90ab 8b1f,e42b 00008b1f,0000e42b 8fdf * * 8fdf * fcae 8fdf -14392 * * * * * * * e42c f0a590b0,ee90ac d855dc30,e42c 00025430,0000e42c 8fe0 * * 8fe0 * * 8fe0 -14393 * * * * * * * e42d f0a595a5,ee90ad d855dd65,e42d 00025565,0000e42d 8fe1 * * 8fe1 * * 8fe1 -14394 * * * * * * * 8b3f e8acbf,ee90ae 8b3f,e42e 00008b3f,0000e42e 8fe2 * * 8fe2 * * 8fe2 -14395 * * * * * * * 8b4c * * * * * 8f5d 8fe3 * * * -14396 * * * * * * * 8b4d e8ad8d,ee90b0 8b4d,e430 00008b4d,0000e430 8fe4 * * 8fe4 * * 8fe4 -14397 * * * * * * * 8aa9 e8aaa9,ee90b1 8aa9,e431 00008aa9,0000e431 8fe5 * * 8fe5 * * 8fe5 -14398 * * * * * * * e432 f0a4a9ba,ee90b2 d852de7a,e432 00024a7a,0000e432 8fe6 * * 8fe6 * * 8fe6 -14399 * * * * * * * 8b90 e8ae90,ee90b3 8b90,e433 00008b90,0000e433 8fe7 * * 8fe7 * * 8fe7 -14400 * * * * * * * 8b9b e8ae9b,ee90b4 8b9b,e434 00008b9b,0000e434 8fe8 * * 8fe8 * * 8fe8 -14401 * * * * * * * 8aaf e8aaaf,ee90b5 8aaf,e435 00008aaf,0000e435 8fe9 * * 8fe9 * * 8fe9 -14402 * * * * * * * e436 f0a19b9f,ee90b6 d845dedf,e436 000216df,0000e436 8fea * * 8fea * * 8fea -14403 * * * * * * * 4615 e49895,ee90b7 4615,e437 00004615,0000e437 8feb * * 8feb * * 8feb -14404 * * * * * * * 884f e8a18f,ee90b8 884f,e438 0000884f,0000e438 8fec * * 8fec * * 8fec -14405 * * * * * * * 8c9b e8b29b,ee90b9 8c9b,e439 00008c9b,0000e439 8fed * * 8fed * * 8fed -14406 * * * * * * * e43a f0a7b594,ee90ba d85fdd54,e43a 00027d54,0000e43a 8fee * * 8fee * * 8fee -14407 * * * * * * * e43b f0a7b68f,ee90bb d85fdd8f,e43b 00027d8f,0000e43b 8fef * * 8fef * * 8fef -14408 * * * * * * * e43c f0afa794,ee90bc d87eddd4,e43c 0002f9d4,0000e43c 8ff0 * * 8ff0 * * 8ff0 -14409 * * * * * * * 3725 e39ca5,ee90bd 3725,e43d 00003725,0000e43d 8ff1 * * 8ff1 * * 8ff1 -14410 * * * * * * * e43e f0a7b593,ee90be d85fdd53,e43e 00027d53,0000e43e 8ff2 * * 8ff2 * * 8ff2 -14411 * * * * * * * 8cd6 e8b396,ee90bf 8cd6,e43f 00008cd6,0000e43f 8ff3 * * 8ff3 * * 8ff3 -14412 * * * * * * * e440 f0a7b698,ee9180 d85fdd98,e440 00027d98,0000e440 8ff4 * * 8ff4 * * 8ff4 -14413 * * * * * * * e441 f0a7b6bd,ee9181 d85fddbd,e441 00027dbd,0000e441 8ff5 * * 8ff5 * * 8ff5 -14414 * * * * * * * 8d12 e8b492,ee9182 8d12,e442 00008d12,0000e442 8ff6 * * 8ff6 * * 8ff6 -14415 * * * * * * * 8d03 e8b483,ee9183 8d03,e443 00008d03,0000e443 8ff7 * * 8ff7 * * 8ff7 -14416 * * * * * * * e444 f0a1a490,ee9184 d846dd10,e444 00021910,0000e444 8ff8 * * 8ff8 * * 8ff8 -14417 * * * * * * * 8cdb e8b39b,ee9185 8cdb,e445 00008cdb,0000e445 8ff9 * * 8ff9 * * 8ff9 -14418 * * * * * * * 705c e7819c,ee9186 705c,e446 0000705c,0000e446 8ffa * * 8ffa * * 8ffa -14419 * * * * * * * 8d11 e8b491,ee9187 8d11,e447 00008d11,0000e447 8ffb * * 8ffb * * 8ffb -14420 * * * * * * * 3ed0 e3bb90,ee9189 3ed0,e449 00003ed0,0000e449 8ffd * * 8ffd * * 8ffd -14421 * * * * * * * * f0afa797 d87eddd7 0002f9d7 * * * 8ffe * * * -14422 * * * * * * * 8da9 e8b6a9,ee918b 8da9,e44b 00008da9,0000e44b 9040 * * 9040 * * 9040 -14423 * * * * * * * e44c f0a88082,ee918c d860dc02,e44c 00028002,0000e44c 9041 * * 9041 * * 9041 -14424 * * * * * * * e44d f0a18094,ee918d d844dc14,e44d 00021014,0000e44d 9042 fbe0 9170 9042 * * 9042 -14425 * * * * * * * e44e f0a4a68a,ee918e d852dd8a,e44e 0002498a,0000e44e 9043 * * 9043 * * 9043 -14426 * * * * * * * 3b7c e3adbc,ee918f 3b7c,e44f 00003b7c,0000e44f 9044 * * 9044 * * 9044 -14427 * * * * * * * e450 f0a886bc,ee9190 d860ddbc,e450 000281bc,0000e450 9045 * * 9045 * * 9045 -14428 * * * * * * * e451 f0a7848c,ee9191 d85cdd0c,e451 0002710c,0000e451 9046 * * 9046 * * 9046 -14429 * * * * * * * 7ae7 e7aba7,ee9192 7ae7,e452 00007ae7,0000e452 9047 * * 9047 * * 9047 -14430 * * * * * * * 8ead e8baad,ee9193 8ead,e453 00008ead,0000e453 9048 faf7 9247 9048 c8cc fcb6 9048 -14431 * * * * * * * 8eb6 e8bab6,ee9194 8eb6,e454 00008eb6,0000e454 9049 * * 9049 * * 9049 -14432 * * * * * * * 8ec3 e8bb83,ee9195 8ec3,e455 00008ec3,0000e455 904a * * 904a * * 904a -14433 * * * * * * * 92d4 e98b94,ee9196 92d4,e456 000092d4,0000e456 904b * * 904b * * 904b -14434 * * * * * * * 8f19 e8bc99,ee9197 8f19,e457 00008f19,0000e457 904c fe59 8f42 904c * * 904c -14435 * * * * * * * 8f2d e8bcad,ee9198 8f2d,e458 00008f2d,0000e458 904d * 8ef8 904d c8d0 fcba 904d -14436 * * * * * * * e459 f0a88da5,ee9199 d860df65,e459 00028365,0000e459 904e fa70 * 904e c8d1 fcbb 904e -14437 * * * * * * * e45a f0a89092,ee919a d861dc12,e45a 00028412,0000e45a 904f * * 904f * * 904f -14438 * * * * * * * 8fa5 e8bea5,ee919b 8fa5,e45b 00008fa5,0000e45b 9050 * * 9050 * * 9050 -14439 * * * * * * * 9303 e98c83,ee919c 9303,e45c 00009303,0000e45c 9051 * * 9051 * * 9051 -14440 * * * * * * * e45d f0aa8a9f,ee919d d868de9f,e45d 0002a29f,0000e45d 9052 * * 9052 * * 9052 -14441 * * * * * * * e45e f0a0a990,ee919e d842de50,e45e 00020a50,0000e45e 9053 * * 9053 * * 9053 -14442 * * * * * * * 8fb3 e8beb3,ee919f 8fb3,e45f 00008fb3,0000e45f 9054 * * 9054 * * 9054 -14443 * * * * * * * * * * * * * * 9055 * * * -14444 * * * * * * * e461 f0a8a79e,ee91a1 d862ddde,e461 000289de,0000e461 9056 * * 9056 * * 9056 -14445 * * * * * * * e462 f0a894bd,ee91a2 d861dd3d,e462 0002853d,0000e462 9057 * * 9057 * * 9057 -14446 * * * * * * * e463 f0a3b6bb,ee91a3 d84fddbb,e463 00023dbb,0000e463 9058 * * 9058 * * 9058 -14447 * * * * * * * 5ef8 e5bbb8,ee91a4 5ef8,e464 00005ef8,0000e464 9059 faac 91f3 9059 c7da fb4e 9059 -14448 * * * * * * * e465 f0a389a2,ee91a5 d84cde62,e465 00023262,0000e465 905a * * 905a * * 905a -14449 * * * * * * * 8ff9 e8bfb9,ee91a6 8ff9,e466 00008ff9,0000e466 905b fa66 9253 905b c8d3 fcbd 905b -14450 * * * * * * * * * * * * * * 905e * * * -14451 * * * * * * * e46a f0a28ca5,ee91aa d848df25,e46a 00022325,0000e46a 905f * * 905f * * 905f -14452 * * * * * * * 3980 e3a680,ee91ab 3980,e46b 00003980,0000e46b 9060 * * 9060 * * 9060 -14453 * * * * * * * e46c f0a6bb97,ee91ac d85bded7,e46c 00026ed7,0000e46c 9061 * * 9061 * * 9061 -14454 * * * * * * * 9037 e980b7,ee91ad 9037,e46d 00009037,0000e46d 9062 * * 9062 * * 9062 -14455 * * * * * * * e46e f0a894bc,ee91ae d861dd3c,e46e 0002853c,0000e46e 9063 * * 9063 * * 9063 -14456 * * * * * * * e46f f0a7aabe,ee91af d85edebe,e46f 00027abe,0000e46f 9064 * * 9064 * * 9064 -14457 * * * * * * * 9061 e981a1,ee91b0 9061,e470 00009061,0000e470 9065 fe6d 8e55 9065 * * 9065 -14458 * * * * * * * e471 f0a895ac,ee91b1 d861dd6c,e471 0002856c,0000e471 9066 * * 9066 * * 9066 -14459 * * * * * * * e472 f0a8988b,ee91b2 d861de0b,e472 0002860b,0000e472 9067 * * 9067 * * 9067 -14460 * * * * * * * 90a8 e982a8,ee91b3 90a8,e473 000090a8,0000e473 9068 fa4c 91fe 9068 c8d4 fcc0 9068 -14461 * * * * * * * e474 f0a89c93,ee91b4 d861df13,e474 00028713,0000e474 9069 * * 9069 * * 9069 -14462 * * * * * * * 90c4 e98384,ee91b5 90c4,e475 000090c4,0000e475 906a fe5d 90c7 906a * * 906a -14463 * * * * * * * e476 f0a89ba6,ee91b6 d861dee6,e476 000286e6,0000e476 906b * * 906b * * 906b -14464 * * * * * * * 90ae e982ae,ee91b7 90ae,e477 000090ae,0000e477 906c * * 906c * * 906c -14465 * * * * * * * * efa8a6 fa26 0000fa26 * * * 906d * * * -14466 * * * * * * * 9167 e985a7,ee91b9 9167,e479 00009167,0000e479 906e fe63 8eed 906e c8d5 fcc3 906e -14467 * * * * * * * 91a9 e986a9,ee91bb 91a9,e47b 000091a9,0000e47b 9070 * * 9070 * * 9070 -14468 * * * * * * * 91c4 e98784,ee91bc 91c4,e47c 000091c4,0000e47c 9071 * * 9071 * * 9071 -14469 * * * * * * * 7cac e7b2ac,ee91bd 7cac,e47d 00007cac,0000e47d 9072 fda8 8eca 9072 * * 9072 -14470 * * * * * * * e47e f0a8a4b3,ee91be d862dd33,e47e 00028933,0000e47e 9073 * * 9073 * * 9073 -14471 * * * * * * * e47f f0a1ba89,ee91bf d847de89,e47f 00021e89,0000e47f 9074 * * 9074 * * 9074 -14472 * * * * * * * 920e e9888e,ee9280 920e,e480 0000920e,0000e480 9075 faa9 91f8 9075 c8d7 fcc6 9075 -14473 * * * * * * * 6c9f e6b29f,ee9281 6c9f,e481 00006c9f,0000e481 9076 * * 9076 * * 9076 -14474 * * * * * * * 9241 e98981,ee9282 9241,e482 00009241,0000e482 9077 * * 9077 * * 9077 -14475 * * * * * * * 9262 e989a2,ee9283 9262,e483 00009262,0000e483 9078 fb65,fe70 8e4c 9078 c8db fcca 9078 -14476 * * * * * * * e484 f0a596b9,ee9284 d855ddb9,e484 000255b9,0000e484 9079 * * 9079 * * 9079 -14477 * * * * * * * e486 f0a8ab86,ee9286 d862dec6,e486 00028ac6,0000e486 907b * * 907b * * 907b -14478 * * * * * * * e487 f0a3b29b,ee9287 d84fdc9b,e487 00023c9b,0000e487 907c * * 907c * * 907c -14479 * * * * * * * e488 f0a8ac8c,ee9288 d862df0c,e488 00028b0c,0000e488 907d * * 907d * * 907d -14480 * * * * * * * e489 f0a5979b,ee9289 d855dddb,e489 000255db,0000e489 907e * * 907e * * 907e -14481 * * * * * * * e48a f0a0b4b1,ee928a d843dd31,e48a 00020d31,0000e48a 90a1 * * 90a1 * * 90a1 -14482 * * * * * * * 932c e98cac,ee928b 932c,e48b 0000932c,0000e48b 90a2 * * 90a2 * * 90a2 -14483 * * * * * * * 936b e98dab,ee928c 936b,e48c 0000936b,0000e48c 90a3 fe74 90d2 90a3 * * 90a3 -14484 * * * * * * * e48d f0a8aba1,ee928d d862dee1,e48d 00028ae1,0000e48d 90a4 * * 90a4 * * 90a4 -14485 * * * * * * * e48e f0a8afab,ee928e d862dfeb,e48e 00028beb,0000e48e 90a5 * * 90a5 * * 90a5 -14486 * * * * * * * 5ac3 e5ab83,ee9290 5ac3,e490 00005ac3,0000e490 90a7 * * 90a7 * * 90a7 -14487 * * * * * * * e491 f0a8aba2,ee9291 d862dee2,e491 00028ae2,0000e491 90a8 * * 90a8 * * 90a8 -14488 * * * * * * * e492 f0a8aba5,ee9292 d862dee5,e492 00028ae5,0000e492 90a9 * * 90a9 * * 90a9 -14489 * * * * * * * 4965 e4a5a5,ee9293 4965,e493 00004965,0000e493 90aa * * 90aa * * 90aa -14490 * * * * * * * 9244 e98984,ee9294 9244,e494 00009244,0000e494 90ab fae2 8e54 90ab c8da fcc9 90ab -14491 * * * * * * * e495 f0a8afac,ee9295 d862dfec,e495 00028bec,0000e495 90ac * * 90ac * * 90ac -14492 * * * * * * * e496 f0a8b0b9,ee9296 d863dc39,e496 00028c39,0000e496 90ad * * 90ad * * 90ad -14493 * * * * * * * e497 f0a8afbf,ee9297 d862dfff,e497 00028bff,0000e497 90ae * * 90ae * * 90ae -14494 * * * * * * * 9373 e98db3,ee9298 9373,e498 00009373,0000e498 90af * * 90af * * 90af -14495 * * * * * * * 945b e9919b,ee9299 945b,e499 0000945b,0000e499 90b0 fae4 9250 90b0 c8e0 fccf 90b0 -14496 * * * * * * * 8ebc e8babc,ee929a 8ebc,e49a 00008ebc,0000e49a 90b1 * * 90b1 * * 90b1 -14497 * * * * * * * 9585 e99685,ee929b 9585,e49b 00009585,0000e49b 90b2 * * 90b2 * * 90b2 -14498 * * * * * * * 95a6 e996a6,ee929c 95a6,e49c 000095a6,0000e49c 90b3 * * 90b3 * * 90b3 -14499 * * * * * * * 9426 e990a6,ee929d 9426,e49d 00009426,0000e49d 90b4 * * 90b4 * * 90b4 -14500 * * * * * * * 95a0 e996a0,ee929e 95a0,e49e 000095a0,0000e49e 90b5 * * 90b5 * * 90b5 -14501 * * * * * * * 6ff6 e6bfb6,ee929f 6ff6,e49f 00006ff6,0000e49f 90b6 fcda 925e 90b6 c854 fbc2 90b6 -14502 * * * * * * * 42b9 e48ab9,ee92a0 42b9,e4a0 000042b9,0000e4a0 90b7 * * 90b7 * * 90b7 -14503 * * * * * * * e4a2 f0a89b98,ee92a2 d861ded8,e4a2 000286d8,0000e4a2 90b9 * * 90b9 * * 90b9 -14504 * * * * * * * e4a3 f0a189bc,ee92a3 d844de7c,e4a3 0002127c,0000e4a3 90ba * * 90ba * * 90ba -14505 * * * * * * * e4a4 f0a3b8ae,ee92a4 d84fde2e,e4a4 00023e2e,0000e4a4 90bb * * 90bb * * 90bb -14506 * * * * * * * 49df e4a79f,ee92a5 49df,e4a5 000049df,0000e4a5 90bc * * 90bc * * 90bc -14507 * * * * * * * 6c1c e6b09c,ee92a6 6c1c,e4a6 00006c1c,0000e4a6 90bd * * 90bd * * 90bd -14508 * * * * * * * 967b e999bb,ee92a7 967b,e4a7 0000967b,0000e4a7 90be * * 90be * * 90be -14509 * * * * * * * 9696 e99a96,ee92a8 9696,e4a8 00009696,0000e4a8 90bf fea2 90db 90bf * * 90bf -14510 * * * * * * * 416c e485ac,ee92a9 416c,e4a9 0000416c,0000e4a9 90c0 * * 90c0 * * 90c0 -14511 * * * * * * * 96a3 e99aa3,ee92aa 96a3,e4aa 000096a3,0000e4aa 90c1 fb45 8e46 90c1 c8e2 fcd3 90c1 -14512 * * * * * * * e4ab f0a6bb95,ee92ab d85bded5,e4ab 00026ed5,0000e4ab 90c2 * * 90c2 * * 90c2 -14513 * * * * * * * 61da e6879a,ee92ac 61da,e4ac 000061da,0000e4ac 90c3 * * 90c3 * * 90c3 -14514 * * * * * * * * ee92ad e4ad 0000e4ad 90c4 * 90de 90c4 * * 90c4 -14515 * * * * * * * 78f5 e7a3b5,ee92ae 78f5,e4ae 000078f5,0000e4ae 90c5 * * 90c5 * * 90c5 -14516 * * * * * * * e4af f0a8aba0,ee92af d862dee0,e4af 00028ae0,0000e4af 90c6 * * 90c6 * * 90c6 -14517 * * * * * * * 96bd e99abd,ee92b0 96bd,e4b0 000096bd,0000e4b0 90c7 fea4 8f54 90c7 * * 90c7 -14518 * * * * * * * 53cc e58f8c,ee92b1 53cc,e4b1 000053cc,0000e4b1 90c8 fbb4 8fd2 90c8 * * 90c8 -14519 * * * * * * * 49a1 e4a6a1,ee92b2 49a1,e4b2 000049a1,0000e4b2 90c9 * * 90c9 * * 90c9 -14520 * * * * * * * e4b3 f0a6b2b8,ee92b3 d85bdcb8,e4b3 00026cb8,0000e4b3 90ca * * 90ca * * 90ca -14521 * * * * * * * e4b4 f0a089b4,ee92b4 d840de74,e4b4 00020274,0000e4b4 90cb * * 90cb * * 90cb -14522 * * * * * * * e4b5 f0a69090,ee92b5 d859dc10,e4b5 00026410,0000e4b5 90cc * * 90cc * * 90cc -14523 * * * * * * * e4b6 f0a982af,ee92b6 d864dcaf,e4b6 000290af,0000e4b6 90cd * * 90cd * * 90cd -14524 * * * * * * * e4b7 f0a983a5,ee92b7 d864dce5,e4b7 000290e5,0000e4b7 90ce * * 90ce * * 90ce -14525 * * * * * * * e4b8 f0a4ab91,ee92b8 d852ded1,e4b8 00024ad1,0000e4b8 90cf * * 90cf * * 90cf -14526 * * * * * * * e4b9 f0a1a495,ee92b9 d846dd15,e4b9 00021915,0000e4b9 90d0 * * 90d0 * * 90d0 -14527 * * * * * * * e4ba f0a38c8a,ee92ba d84cdf0a,e4ba 0002330a,0000e4ba 90d1 * * 90d1 * * 90d1 -14528 * * * * * * * 9731 e99cb1,ee92bb 9731,e4bb 00009731,0000e4bb 90d2 fea7 90e1 90d2 * * 90d2 -14529 * * * * * * * 8642 e89982,ee92bc 8642,e4bc 00008642,0000e4bc 90d3 * * 90d3 * * 90d3 -14530 * * * * * * * 9736 e99cb6,ee92bd 9736,e4bd 00009736,0000e4bd 90d4 * * 90d4 * * 90d4 -14531 * * * * * * * 4a0f e4a88f,ee92be 4a0f,e4be 00004a0f,0000e4be 90d5 * * 90d5 * * 90d5 -14532 * * * * * * * 453d e494bd,ee92bf 453d,e4bf 0000453d,0000e4bf 90d6 * * 90d6 * * 90d6 -14533 * * * * * * * 4585 e49685,ee9380 4585,e4c0 00004585,0000e4c0 90d7 * * 90d7 * * 90d7 -14534 * * * * * * * e4c1 f0a4aba9,ee9381 d852dee9,e4c1 00024ae9,0000e4c1 90d8 * * 90d8 * * 90d8 -14535 * * * * * * * 7075 e781b5,ee9382 7075,e4c2 00007075,0000e4c2 90d9 * * 90d9 * * 90d9 -14536 * * * * * * * 5b41 e5ad81,ee9383 5b41,e4c3 00005b41,0000e4c3 90da * * 90da * * 90da -14537 * * * * * * * 971b e99c9b,ee9384 971b,e4c4 0000971b,0000e4c4 90db * * 90db * * 90db -14538 * * * * * * * * * * * * * * 90dc * * * -14539 * * * * * * * e4c6 f0a98795,ee9386 d864ddd5,e4c6 000291d5,0000e4c6 90dd * * 90dd * * 90dd -14540 * * * * * * * 9757 e99d97,ee9387 9757,e4c7 00009757,0000e4c7 90de * * 90de * * 90de -14541 * * * * * * * 5b4a e5ad8a,ee9388 5b4a,e4c8 00005b4a,0000e4c8 90df * * 90df * * 90df -14542 * * * * * * * e4c9 f0a987ab,ee9389 d864ddeb,e4c9 000291eb,0000e4c9 90e0 * * 90e0 * * 90e0 -14543 * * * * * * * 975f e99d9f,ee938a 975f,e4ca 0000975f,0000e4ca 90e1 fea9 8ffa 90e1 * * 90e1 -14544 * * * * * * * 9425 e990a5,ee938b 9425,e4cb 00009425,0000e4cb 90e2 * * 90e2 * * 90e2 -14545 * * * * * * * 50d0 e58390,ee938c 50d0,e4cc 000050d0,0000e4cc 90e3 * * 90e3 * * 90e3 -14546 * * * * * * * e4cd f0a382b7,ee938d d84cdcb7,e4cd 000230b7,0000e4cd 90e4 * * 90e4 * * 90e4 -14547 * * * * * * * e4ce f0a382bc,ee938e d84cdcbc,e4ce 000230bc,0000e4ce 90e5 * * 90e5 * * 90e5 -14548 * * * * * * * 9789 e99e89,ee938f 9789,e4cf 00009789,0000e4cf 90e6 * * 90e6 * * 90e6 -14549 * * * * * * * 979f e99e9f,ee9390 979f,e4d0 0000979f,0000e4d0 90e7 feaa 90e3 90e7 * * 90e7 -14550 * * * * * * * 97b1 e99eb1,ee9391 97b1,e4d1 000097b1,0000e4d1 90e8 * * 90e8 * fcd5 90e8 -14551 * * * * * * * 97be e99ebe,ee9392 97be,e4d2 000097be,0000e4d2 90e9 feae 90e5 90e9 * * 90e9 -14552 * * * * * * * 97c0 e99f80,ee9393 97c0,e4d3 000097c0,0000e4d3 90ea * * 90ea * * 90ea -14553 * * * * * * * 97d2 e99f92,ee9394 97d2,e4d4 000097d2,0000e4d4 90eb * * 90eb * * 90eb -14554 * * * * * * * 97e0 e99fa0,ee9395 97e0,e4d5 000097e0,0000e4d5 90ec * * 90ec * * 90ec -14555 * * * * * * * e4d6 f0a591ac,ee9396 d855dc6c,e4d6 0002546c,0000e4d6 90ed * * 90ed * * 90ed -14556 * * * * * * * 97ee e99fae,ee9397 97ee,e4d7 000097ee,0000e4d7 90ee fab7 8e4d 90ee c8b6 fc6f 90ee -14557 * * * * * * * 741c e7909c,ee9398 741c,e4d8 0000741c,0000e4d8 90ef * * 90ef * * 90ef -14558 * * * * * * * e4d9 f0a990b3,ee9399 d865dc33,e4d9 00029433,0000e4d9 90f0 * * 90f0 * * 90f0 -14559 * * * * * * * * * * * * * * 90f1 * * * -14560 * * * * * * * 97f5 e99fb5,ee939b 97f5,e4db 000097f5,0000e4db 90f2 feb0 8ffe 90f2 * fcd7 90f2 -14561 * * * * * * * e4dc f0a9909d,ee939c d865dc1d,e4dc 0002941d,0000e4dc 90f3 * * 90f3 * * 90f3 -14562 * * * * * * * e4dd f0a7a5ba,ee939d d85edd7a,e4dd 0002797a,0000e4dd 90f4 * * 90f4 * * 90f4 -14563 * * * * * * * 4ad1 e4ab91,ee939e 4ad1,e4de 00004ad1,0000e4de 90f5 * * 90f5 * * 90f5 -14564 * * * * * * * 9834 e9a0b4,ee939f 9834,e4df 00009834,0000e4df 90f6 * * 90f6 * * 90f6 -14565 * * * * * * * 9833 e9a0b3,ee93a0 9833,e4e0 00009833,0000e4e0 90f7 * * 90f7 * * 90f7 -14566 * * * * * * * 984b e9a18b,ee93a1 984b,e4e1 0000984b,0000e4e1 90f8 feb5 8ed5 90f8 * * 90f8 -14567 * * * * * * * 9866 e9a1a6,ee93a2 9866,e4e2 00009866,0000e4e2 90f9 feb6 90ec 90f9 * * 90f9 -14568 * * * * * * * 3b0e e3ac8e,ee93a3 3b0e,e4e3 00003b0e,0000e4e3 90fa * * 90fa * * 90fa -14569 * * * * * * * e4e4 f0a785b5,ee93a4 d85cdd75,e4e4 00027175,0000e4e4 90fb * * 90fb * * 90fb -14570 * * * * * * * 3d51 e3b591,ee93a5 3d51,e4e5 00003d51,0000e4e5 90fc * * 90fc * * 90fc -14571 * * * * * * * e4e6 f0a098b0,ee93a6 d841de30,e4e6 00020630,0000e4e6 90fd * * 90fd * * 90fd -14572 * * * * * * * e4e7 f0a4859c,ee93a7 d850dd5c,e4e7 0002415c,0000e4e7 90fe * * 90fe * * 90fe -14573 * * * * * * * e4e8 f0a59c86,ee93a8 d855df06,e4e8 00025706,0000e4e8 9140 * * 9140 * * 9140 -14574 * * * * * * * 98ca e9a38a,ee93a9 98ca,e4e9 000098ca,0000e4e9 9141 * * 9141 * * 9141 -14575 * * * * * * * 98b7 e9a2b7,ee93aa 98b7,e4ea 000098b7,0000e4ea 9142 * * 9142 * * 9142 -14576 * * * * * * * 98c8 e9a388,ee93ab 98c8,e4eb 000098c8,0000e4eb 9143 fb67,feb9 90ef 9143 c8e4 fcd9 9143 -14577 * * * * * * * 98c7 e9a387,ee93ac 98c7,e4ec 000098c7,0000e4ec 9144 * * 9144 * * 9144 -14578 * * * * * * * 4aff e4abbf,ee93ad 4aff,e4ed 00004aff,0000e4ed 9145 * * 9145 * * 9145 -14579 * * * * * * * e4ee f0a6b4a7,ee93ae d85bdd27,e4ee 00026d27,0000e4ee 9146 * * 9146 * * 9146 -14580 * * * * * * * e4ef f0a19b93,ee93af d845ded3,e4ef 000216d3,0000e4ef 9147 * * 9147 * * 9147 -14581 * * * * * * * 55b0 e596b0,ee93b0 55b0,e4f0 000055b0,0000e4f0 9148 fbd7 904d 9148 * * 9148 -14582 * * * * * * * 98e1 e9a3a1,ee93b1 98e1,e4f1 000098e1,0000e4f1 9149 * * 9149 * * 9149 -14583 * * * * * * * 98e6 e9a3a6,ee93b2 98e6,e4f2 000098e6,0000e4f2 914a febb 90f0 914a * * 914a -14584 * * * * * * * 98ec e9a3ac,ee93b3 98ec,e4f3 000098ec,0000e4f3 914b * * 914b * * 914b -14585 * * * * * * * 9378 e98db8,ee93b4 9378,e4f4 00009378,0000e4f4 914c * * 914c * * 914c -14586 * * * * * * * 9939 e9a4b9,ee93b5 9939,e4f5 00009939,0000e4f5 914d febe 8f4b 914d * * 914d -14587 * * * * * * * e4f6 f0a4a8a9,ee93b6 d852de29,e4f6 00024a29,0000e4f6 914e * * 914e * * 914e -14588 * * * * * * * 4b72 e4adb2,ee93b7 4b72,e4f7 00004b72,0000e4f7 914f * * 914f * * 914f -14589 * * * * * * * e4f8 f0a9a197,ee93b8 d866dc57,e4f8 00029857,0000e4f8 9150 * * 9150 * * 9150 -14590 * * * * * * * e4f9 f0a9a485,ee93b9 d866dd05,e4f9 00029905,0000e4f9 9151 * * 9151 * * 9151 -14591 * * * * * * * 99f5 e9a7b5,ee93ba 99f5,e4fa 000099f5,0000e4fa 9152 * * 9152 * * 9152 -14592 * * * * * * * 9a0c e9a88c,ee93bb 9a0c,e4fb 00009a0c,0000e4fb 9153 fb6b,fec6 90f2 9153 * * 9153 -14593 * * * * * * * 9a3b e9a8bb,ee93bc 9a3b,e4fc 00009a3b,0000e4fc 9154 * * 9154 * * 9154 -14594 * * * * * * * 9a10 e9a890,ee93bd 9a10,e4fd 00009a10,0000e4fd 9155 fec7 924f 9155 c8ea fce1 9155 -14595 * * * * * * * 9a58 e9a998,ee93be 9a58,e4fe 00009a58,0000e4fe 9156 * * 9156 * * 9156 -14596 * * * * * * * e4ff f0a59ca5,ee93bf d855df25,e4ff 00025725,0000e4ff 9157 * * 9157 * * 9157 -14597 * * * * * * * 36c4 e39b84,ee9480 36c4,e500 000036c4,0000e500 9158 * * 9158 * * 9158 -14598 * * * * * * * e501 f0a982b1,ee9481 d864dcb1,e501 000290b1,0000e501 9159 * * 9159 * * 9159 -14599 * * * * * * * e502 f0a9af95,ee9482 d866dfd5,e502 00029bd5,0000e502 915a * * 915a * * 915a -14600 * * * * * * * 9ae0 e9aba0,ee9483 9ae0,e503 00009ae0,0000e503 915b * * 915b * * 915b -14601 * * * * * * * 9ae2 e9aba2,ee9484 9ae2,e504 00009ae2,0000e504 915c fece 90f4 915c * * 915c -14602 * * * * * * * e505 f0a9ac85,ee9485 d866df05,e505 00029b05,0000e505 915d * * 915d * * 915d -14603 * * * * * * * 9af4 e9abb4,ee9486 9af4,e506 00009af4,0000e506 915e fb6d,fecf 8ffd 915e * fce5 915e -14604 * * * * * * * 4c0e e4b08e,ee9487 4c0e,e507 00004c0e,0000e507 915f * * 915f * * 915f -14605 * * * * * * * 9b14 e9ac94,ee9488 9b14,e508 00009b14,0000e508 9160 * * 9160 * * 9160 -14606 * * * * * * * 9b2d e9acad,ee9489 9b2d,e509 00009b2d,0000e509 9161 fecd 924b 9161 * fce7 9161 -14607 * * * * * * * e50a f0a89880,ee948a d861de00,e50a 00028600,0000e50a 9162 * * 9162 * * 9162 -14608 * * * * * * * 5034 e580b4,ee948b 5034,e50b 00005034,0000e50b 9163 * * 9163 * * 9163 -14609 * * * * * * * 9b34 e9acb4,ee948c 9b34,e50c 00009b34,0000e50c 9164 * * 9164 * * 9164 -14610 * * * * * * * 38c3 e3a383,ee948e 38c3,e50e 000038c3,0000e50e 9166 * * 9166 * * 9166 -14611 * * * * * * * e50f f0a381bd,ee948f d84cdc7d,e50f 0002307d,0000e50f 9167 * * 9167 * * 9167 -14612 * * * * * * * 9b50 e9ad90,ee9490 9b50,e510 00009b50,0000e510 9168 * * 9168 * * 9168 -14613 * * * * * * * 9b40 e9ad80,ee9491 9b40,e511 00009b40,0000e511 9169 * * 9169 * * 9169 -14614 * * * * * * * e512 f0a9b4be,ee9492 d867dd3e,e512 00029d3e,0000e512 916a * * 916a * * 916a -14615 * * * * * * * 5a45 e5a985,ee9493 5a45,e513 00005a45,0000e513 916b * * 916b * * 916b -14616 * * * * * * * e514 f0a1a1a3,ee9494 d846dc63,e514 00021863,0000e514 916c * * 916c * * 916c -14617 * * * * * * * 9b8e e9ae8e,ee9495 9b8e,e515 00009b8e,0000e515 916d fed7 8e43 916d c8ed fce8 916d -14618 * * * * * * * 9c02 e9b082,ee9497 9c02,e517 00009c02,0000e517 916f fadf 90fc 916f c8ef fceb 916f -14619 * * * * * * * 9bff e9afbf,ee9498 9bff,e518 00009bff,0000e518 9170 fede 90fe 9170 c8f0 fced 9170 -14620 * * * * * * * 9c0c e9b08c,ee9499 9c0c,e519 00009c0c,0000e519 9171 fedb 90fd 9171 * * 9171 -14621 * * * * * * * e51a f0a9b9a8,ee949a d867de68,e51a 00029e68,0000e51a 9172 * * 9172 * * 9172 -14622 * * * * * * * 9dd4 e9b794,ee949b 9dd4,e51b 00009dd4,0000e51b 9173 * * 9173 * * 9173 -14623 * * * * * * * e51c f0a9beb7,ee949c d867dfb7,e51c 00029fb7,0000e51c 9174 * * 9174 * * 9174 -14624 * * * * * * * e51d f0aa8692,ee949d d868dd92,e51d 0002a192,0000e51d 9175 * * 9175 * * 9175 -14625 * * * * * * * e51e f0aa86ab,ee949e d868ddab,e51e 0002a1ab,0000e51e 9176 * * 9176 * * 9176 -14626 * * * * * * * e51f f0aa83a1,ee949f d868dce1,e51f 0002a0e1,0000e51f 9177 * * 9177 * * 9177 -14627 * * * * * * * e520 f0aa84a3,ee94a0 d868dd23,e520 0002a123,0000e520 9178 * * 9178 * * 9178 -14628 * * * * * * * e521 f0aa879f,ee94a1 d868dddf,e521 0002a1df,0000e521 9179 * * 9179 * * 9179 -14629 * * * * * * * 9d7e e9b5be,ee94a2 9d7e,e522 00009d7e,0000e522 917a fee9 8f52 917a * * 917a -14630 * * * * * * * 9d83 e9b683,ee94a3 9d83,e523 00009d83,0000e523 917b * * 917b * * 917b -14631 * * * * * * * e524 f0aa84b4,ee94a4 d868dd34,e524 0002a134,0000e524 917c * * 917c * * 917c -14632 * * * * * * * 9e0e e9b88e,ee94a5 9e0e,e525 00009e0e,0000e525 917d * * 917d * * 917d -14633 * * * * * * * 9dc4 e9b784,ee94a7 9dc4,e527 00009dc4,0000e527 91a1 fb6e,feeb 8f47 91a1 c8f9 fcf7 91a1 -14634 * * * * * * * e529 f0aa8693,ee94a9 d868dd93,e529 0002a193,0000e529 91a3 * * 91a3 * * 91a3 -14635 * * * * * * * e52a f0aa88a0,ee94aa d868de20,e52a 0002a220,0000e52a 91a4 * * 91a4 * * 91a4 -14636 * * * * * * * e52b f0a1a4bb,ee94ab d846dd3b,e52b 0002193b,0000e52b 91a5 * * 91a5 * * 91a5 -14637 * * * * * * * e52c f0aa88b3,ee94ac d868de33,e52c 0002a233,0000e52c 91a6 * * 91a6 * * 91a6 -14638 * * * * * * * 9d39 e9b4b9,ee94ad 9d39,e52d 00009d39,0000e52d 91a7 * * 91a7 * * 91a7 -14639 * * * * * * * e52e f0aa82b9,ee94ae d868dcb9,e52e 0002a0b9,0000e52e 91a8 * * 91a8 * * 91a8 -14640 * * * * * * * e52f f0aa8ab4,ee94af d868deb4,e52f 0002a2b4,0000e52f 91a9 * * 91a9 * * 91a9 -14641 * * * * * * * 9e90 e9ba90,ee94b0 9e90,e530 00009e90,0000e530 91aa * * 91aa * * 91aa -14642 * * * * * * * 9e95 e9ba95,ee94b1 9e95,e531 00009e95,0000e531 91ab fef0 8ee1 91ab * * 91ab -14643 * * * * * * * 9e9e e9ba9e,ee94b2 9e9e,e532 00009e9e,0000e532 91ac fef2 9149 91ac * * 91ac -14644 * * * * * * * 9ea2 e9baa2,ee94b3 9ea2,e533 00009ea2,0000e533 91ad * * 91ad * * 91ad -14645 * * * * * * * 4d34 e4b4b4,ee94b4 4d34,e534 00004d34,0000e534 91ae * * 91ae * * 91ae -14646 * * * * * * * 9eaa e9baaa,ee94b5 9eaa,e535 00009eaa,0000e535 91af fb46 * 91af c8fb fcf9 91af -14647 * * * * * * * 9eaf e9baaf,ee94b6 9eaf,e536 00009eaf,0000e536 91b0 fef4 8edf 91b0 c8fc fcfb 91b0 -14648 * * * * * * * e537 f0a48da4,ee94b7 d850df64,e537 00024364,0000e537 91b1 fce6 91d3 91b1 * * 91b1 -14649 * * * * * * * 9ec1 e9bb81,ee94b8 9ec1,e538 00009ec1,0000e538 91b2 * * 91b2 * * 91b2 -14650 * * * * * * * 3b60 e3ada0,ee94b9 3b60,e539 00003b60,0000e539 91b3 * * 91b3 * * 91b3 -14651 * * * * * * * 39e5 e3a7a5,ee94ba 39e5,e53a 000039e5,0000e53a 91b4 * * 91b4 * * 91b4 -14652 * * * * * * * 3d1d e3b49d,f0aa8fad,ee94bb 3d1d,d868dfed,e53b 00003d1d,0002a3ed,0000e53b 91b5 * * 91b5 * * 91b5 -14653 * * * * * * * 4f32 e4bcb2,ee94bc 4f32,e53c 00004f32,0000e53c 91b6 fb78 9168 91b6 c746 fa49 91b6 -14654 * * * * * * * 37be e39ebe,ee94bd 37be,e53d 000037be,0000e53d 91b7 * * 91b7 * * 91b7 -14655 * * * * * * * e53e f0a8b0ab,ee94be d863dc2b,e53e 00028c2b,0000e53e 91b8 * * 91b8 * * 91b8 -14656 * * * * * * * 9f02 e9bc82,ee94bf 9f02,e53f 00009f02,0000e53f 91b9 fef8 914b 91b9 * * 91b9 -14657 * * * * * * * 9f08 e9bc88,ee9580 9f08,e540 00009f08,0000e540 91ba * * 91ba * * 91ba -14658 * * * * * * * 4b96 e4ae96,ee9581 4b96,e541 00004b96,0000e541 91bb * * 91bb * * 91bb -14659 * * * * * * * 9424 e990a4,ee9582 9424,e542 00009424,0000e542 91bc * * 91bc * * 91bc -14660 * * * * * * * e543 f0a6b6a2,ee9583 d85bdda2,e543 00026da2,0000e543 91bd * * 91bd * * 91bd -14661 * * * * * * * 9f17 e9bc97,eeb6a4,ee9584 9f17,eda4,e544 00009f17,0000eda4,0000e544 9f66,91be * * 91be * * 9f66,91be -14662 * * * * * * * * f0afa89b d87ede1b 0002fa1b * * * 91bf * * * -14663 * * * * * * * 9f39 e9bcb9,ee9586 9f39,e546 00009f39,0000e546 91c0 * * 91c0 * * 91c0 -14664 * * * * * * * 569f e59a9f,ee9587 569f,e547 0000569f,0000e547 91c1 fada 91a2 91c1 c7bc fada 91c1 -14665 * * * * * * * 568a e59a8a,ee9588 568a,e548 0000568a,0000e548 91c2 * * 91c2 * * 91c2 -14666 * * * * * * * 9f45 e9bd85,ee9589 9f45,e549 00009f45,0000e549 91c3 fefa 914e 91c3 * * 91c3 -14667 * * * * * * * 99b8 e9a6b8,ee958a 99b8,e54a 000099b8,0000e54a 91c4 * * 91c4 * * 91c4 -14668 * * * * * * * e54b f0a9828b,ee958b d864dc8b,e54b 0002908b,0000e54b 91c5 * * 91c5 * * 91c5 -14669 * * * * * * * 97f2 e99fb2,ee958c 97f2,e54c 000097f2,0000e54c 91c6 * * 91c6 * * 91c6 -14670 * * * * * * * 847f e891bf,ee958d 847f,e54d 0000847f,0000e54d 91c7 * * 91c7 * * 91c7 -14671 * * * * * * * 9f62 * * * * * * 91c8 * * * -14672 * * * * * * * 9f69 e9bda9,ee958f 9f69,e54f 00009f69,0000e54f 91c9 fefd 9151 91c9 * * 91c9 -14673 * * * * * * * 7adc e7ab9c,ee9590 7adc,e550 00007adc,0000e550 91ca * * 91ca * * 91ca -14674 * * * * * * * 9f8e e9be8e,ee9591 9f8e,e551 00009f8e,0000e551 91cb fbc9 916e 91cb * * 91cb -14675 * * * * * * * 7216 e78896,ee9592 7216,e552 00007216,0000e552 91cc * * 91cc * * 91cc -14676 * * * * * * * 4bbe e4aebe,ee9593 4bbe,e553 00004bbe,0000e553 91cd * * 91cd * * 91cd -14677 * * * * * * * e554 f0a4a5b5,ee9594 d852dd75,e554 00024975,0000e554 91ce * * 91ce * * 91ce -14678 * * * * * * * e555 f0a4a6bb,ee9595 d852ddbb,e555 000249bb,0000e555 91cf * * 91cf * * 91cf -14679 * * * * * * * 7177 e785b7,ee9596 7177,e556 00007177,0000e556 91d0 * * 91d0 * * 91d0 -14680 * * * * * * * e557 f0a4a7b8,ee9597 d852ddf8,e557 000249f8,0000e557 91d1 * * 91d1 * * 91d1 -14681 * * * * * * * e558 f0a48d88,ee9598 d850df48,e558 00024348,0000e558 91d2 * * 91d2 * * 91d2 -14682 * * * * * * * e559 f0a4a991,ee9599 d852de51,e559 00024a51,0000e559 91d3 * * 91d3 * * 91d3 -14683 * * * * * * * 739e e78e9e,ee959a 739e,e55a 0000739e,0000e55a 91d4 * * 91d4 * * 91d4 -14684 * * * * * * * e55b f0a8af9a,ee959b d862dfda,e55b 00028bda,0000e55b 91d5 * * 91d5 * * 91d5 -14685 * * * * * * * e55c f0a1a3ba,ee959c d846dcfa,e55c 000218fa,0000e55c 91d6 * * 91d6 * * 91d6 -14686 * * * * * * * 799f e7a69f,ee959d 799f,e55d 0000799f,0000e55d 91d7 * * 91d7 * * 91d7 -14687 * * * * * * * e55e f0a8a5be,ee959e d862dd7e,e55e 0002897e,0000e55e 91d8 * * 91d8 * * 91d8 -14688 * * * * * * * e55f f0a8b8b6,ee959f d863de36,e55f 00028e36,0000e55f 91d9 * * 91d9 * * 91d9 -14689 * * * * * * * 9369 e98da9,ee95a0 9369,e560 00009369,0000e560 91da * * 91da * * 91da -14690 * * * * * * * 93f3 e98fb3,ee95a1 93f3,e561 000093f3,0000e561 91db * * 91db * * 91db -14691 * * * * * * * e562 f0a8a984,ee95a2 d862de44,e562 00028a44,0000e562 91dc * * 91dc * * 91dc -14692 * * * * * * * 92ec e98bac,ee95a3 92ec,e563 000092ec,0000e563 91dd * * 91dd * * 91dd -14693 * * * * * * * 9381 e98e81,ee95a4 9381,e564 00009381,0000e564 91de * * 91de * * 91de -14694 * * * * * * * 93cb e98f8b,ee95a5 93cb,e565 000093cb,0000e565 91df * * 91df * * 91df -14695 * * * * * * * e566 f0a8a5ac,ee95a6 d862dd6c,e566 0002896c,0000e566 91e0 * * 91e0 * * 91e0 -14696 * * * * * * * e567 f0a492b9,ee95a7 d851dcb9,e567 000244b9,0000e567 91e1 * * 91e1 * * 91e1 -14697 * * * * * * * 7217 e78897,ee95a8 7217,e568 00007217,0000e568 91e2 * * 91e2 c861 fbd1 91e2 -14698 * * * * * * * 3eeb e3bbab,ee95a9 3eeb,e569 00003eeb,0000e569 91e3 * * 91e3 * * 91e3 -14699 * * * * * * * 7772 e79db2,ee95aa 7772,e56a 00007772,0000e56a 91e4 * * 91e4 * * 91e4 -14700 * * * * * * * 7a43 e7a983,ee95ab 7a43,e56b 00007a43,0000e56b 91e5 * * 91e5 * * 91e5 -14701 * * * * * * * 70d0 e78390,ee95ac 70d0,e56c 000070d0,0000e56c 91e6 * * 91e6 * * 91e6 -14702 * * * * * * * e56d f0a491b3,ee95ad d851dc73,e56d 00024473,0000e56d 91e7 * * 91e7 * * 91e7 -14703 * * * * * * * e56e f0a48fb8,ee95ae d850dff8,e56e 000243f8,0000e56e 91e8 * * 91e8 * * 91e8 -14704 * * * * * * * 717e e785be,ee95af 717e,e56f 0000717e,0000e56f 91e9 * * 91e9 * * 91e9 -14705 * * * * * * * e570 f0a19faf,ee95b0 d845dfef,e570 000217ef,0000e570 91ea * * 91ea * * 91ea -14706 * * * * * * * 70a3 e782a3,ee95b1 70a3,e571 000070a3,0000e571 91eb * * 91eb * * 91eb -14707 * * * * * * * e572 f0a1a2be,ee95b2 d846dcbe,e572 000218be,0000e572 91ec * * 91ec * * 91ec -14708 * * * * * * * e573 f0a39699,ee95b3 d84ddd99,e573 00023599,0000e573 91ed * * 91ed * * 91ed -14709 * * * * * * * 3ec7 e3bb87,ee95b4 3ec7,e574 00003ec7,0000e574 91ee * * 91ee * * 91ee -14710 * * * * * * * e575 f0a1a285,ee95b5 d846dc85,e575 00021885,0000e575 91ef * * 91ef * * 91ef -14711 * * * * * * * e576 f0a590af,ee95b6 d855dc2f,e576 0002542f,0000e576 91f0 * * 91f0 * * 91f0 -14712 * * * * * * * e577 f0a19fb8,ee95b7 d845dff8,e577 000217f8,0000e577 91f1 * * 91f1 * * 91f1 -14713 * * * * * * * 3722 e39ca2,ee95b8 3722,e578 00003722,0000e578 91f2 * * 91f2 * * 91f2 -14714 * * * * * * * e579 f0a19bbb,ee95b9 d845defb,e579 000216fb,0000e579 91f3 * * 91f3 * * 91f3 -14715 * * * * * * * e57a f0a1a0b9,ee95ba d846dc39,e57a 00021839,0000e57a 91f4 * * 91f4 * * 91f4 -14716 * * * * * * * 36e1 e39ba1,ee95bb 36e1,e57b 000036e1,0000e57b 91f5 * * 91f5 * * 91f5 -14717 * * * * * * * e57c f0a19db4,ee95bc d845df74,e57c 00021774,0000e57c 91f6 * * 91f6 * * 91f6 -14718 * * * * * * * e57d f0a1a391,ee95bd d846dcd1,e57d 000218d1,0000e57d 91f7 * * 91f7 * * 91f7 -14719 * * * * * * * e57e f0a5bd8b,ee95be d857df4b,e57e 00025f4b,0000e57e 91f8 * * 91f8 * * 91f8 -14720 * * * * * * * 3723 e39ca3,ee95bf 3723,e57f 00003723,0000e57f 91f9 * * 91f9 * * 91f9 -14721 * * * * * * * e580 f0a19b80,ee9680 d845dec0,e580 000216c0,0000e580 91fa * * 91fa * * 91fa -14722 * * * * * * * 575b e59d9b,ee9681 575b,e581 0000575b,0000e581 91fb * * 91fb * * 91fb -14723 * * * * * * * e582 f0a4a8a5,ee9682 d852de25,e582 00024a25,0000e582 91fc * * 91fc * * 91fc -14724 * * * * * * * e583 f0a18fbe,ee9683 d844dffe,e583 000213fe,0000e583 91fd * * 91fd * * 91fd -14725 * * * * * * * e584 f0a18aa8,ee9684 d844dea8,e584 000212a8,0000e584 91fe * * 91fe * * 91fe -14726 * * * * * * * e585 f0a18f86,ee9685 d844dfc6,e585 000213c6,0000e585 9240 * * 9240 * * 9240 -14727 * * * * * * * e586 f0a192b6,ee9686 d845dcb6,e586 000214b6,0000e586 9241 * * 9241 * * 9241 -14728 * * * * * * * * e89483,ee9689,ee9687 8503,e589,e587 00008503,0000e589,0000e587 9244,9242 * * 9242 * * 9244,9242 -14729 * * * * * * * e588 f0a39aa6,ee9688 d84ddea6,e588 000236a6,0000e588 9243 * * 9243 * * 9243 -14730 * * * * * * * 8503 * * * * * * 9244 * * * -14731 * * * * * * * 8455 e89195,ee968a 8455,e58a 00008455,0000e58a 9245 * * 9245 * * 9245 -14732 * * * * * * * e58b f0a4a694,ee968b d852dd94,e58b 00024994,0000e58b 9246 * * 9246 * * 9246 -14733 * * * * * * * e58c f0a785a5,ee968c d85cdd65,e58c 00027165,0000e58c 9247 * * 9247 * * 9247 -14734 * * * * * * * e58d f0a3b8b1,ee968d d84fde31,e58d 00023e31,0000e58d 9248 * * 9248 * * 9248 -14735 * * * * * * * e58e f0a5959c,ee968e d855dd5c,e58e 0002555c,0000e58e 9249 * * 9249 * * 9249 -14736 * * * * * * * e58f f0a3bbbb,ee968f d84fdefb,e58f 00023efb,0000e58f 924a * * 924a * * 924a -14737 * * * * * * * e590 f0a78192,ee9690 d85cdc52,e590 00027052,0000e590 924b * * 924b * * 924b -14738 * * * * * * * 44f4 e493b4,ee9691 44f4,e591 000044f4,0000e591 924c * * 924c * * 924c -14739 * * * * * * * e592 f0a39bae,ee9692 d84ddeee,e592 000236ee,0000e592 924d * * 924d * * 924d -14740 * * * * * * * e593 f0a9a69d,ee9693 d866dd9d,e593 0002999d,0000e593 924e * * 924e * * 924e -14741 * * * * * * * e594 f0a6bca6,ee9694 d85bdf26,e594 00026f26,0000e594 924f * * 924f * * 924f -14742 * * * * * * * 67f9 e69fb9,ee9695 67f9,e595 000067f9,0000e595 9250 fcb1 8fe7 9250 * * 9250 -14743 * * * * * * * 3733 e39cb3,ee9696 3733,e596 00003733,0000e596 9251 * * 9251 * * 9251 -14744 * * * * * * * 3c15 e3b095,ee9697 3c15,e597 00003c15,0000e597 9252 * * 9252 * * 9252 -14745 * * * * * * * 3de7 e3b7a7,ee9698 3de7,e598 00003de7,0000e598 9253 * * 9253 * * 9253 -14746 * * * * * * * 586c e5a1ac,ee9699 586c,e599 0000586c,0000e599 9254 * * 9254 * * 9254 -14747 * * * * * * * e59a f0a1a4a2,ee969a d846dd22,e59a 00021922,0000e59a 9255 * * 9255 * * 9255 -14748 * * * * * * * 6810 e6a090,ee969b 6810,e59b 00006810,0000e59b 9256 * * 9256 * * 9256 -14749 * * * * * * * 4057 e48197,ee969c 4057,e59c 00004057,0000e59c 9257 * * 9257 * * 9257 -14750 * * * * * * * e59d f0a39cbf,ee969d d84ddf3f,e59d 0002373f,0000e59d 9258 * * 9258 * * 9258 -14751 * * * * * * * e59e f0a483a1,ee969e d850dce1,e59e 000240e1,0000e59e 9259 * * 9259 * * 9259 -14752 * * * * * * * e59f f0a4828b,ee969f d850dc8b,e59f 0002408b,0000e59f 925a * * 925a * * 925a -14753 * * * * * * * e5a0 f0a4848f,ee96a0 d850dd0f,e5a0 0002410f,0000e5a0 925b * * 925b * * 925b -14754 * * * * * * * e5a1 f0a6b0a1,ee96a1 d85bdc21,e5a1 00026c21,0000e5a1 925c * * 925c * * 925c -14755 * * * * * * * 54cb e5938b,ee96a2 54cb,e5a2 000054cb,0000e5a2 925d fa5f * 925d c76c faa5 925d -14756 * * * * * * * 569e e59a9e,ee96a3 569e,e5a3 0000569e,0000e5a3 925e * * 925e * * 925e -14757 * * * * * * * e5a4 f0a69ab1,ee96a4 d859deb1,e5a4 000266b1,0000e5a4 925f * * 925f * * 925f -14758 * * * * * * * 5692 e59a92,ee96a5 5692,e5a5 00005692,0000e5a5 9260 fbe5 91a1 9260 * fad7 9260 -14759 * * * * * * * e5a6 f0a0bf9f,ee96a6 d843dfdf,e5a6 00020fdf,0000e5a6 9261 * * 9261 * * 9261 -14760 * * * * * * * e5a7 f0a0aea8,ee96a7 d842dfa8,e5a7 00020ba8,0000e5a7 9262 * * 9262 * * 9262 -14761 * * * * * * * e5a8 f0a0b88d,ee96a8 d843de0d,e5a8 00020e0d,0000e5a8 9263 * * 9263 * * 9263 -14762 * * * * * * * 93c6 * * * * * * 9264 * * * -14763 * * * * * * * e5aa f0a8ac93,ee96aa d862df13,e5aa 00028b13,0000e5aa 9265 * * 9265 * * 9265 -14764 * * * * * * * 939c e98e9c,ee96ab 939c,e5ab 0000939c,0000e5ab 9266 * * 9266 * * 9266 -14765 * * * * * * * 4ef8 e4bbb8,ee96ac 4ef8,e5ac 00004ef8,0000e5ac 9267 * * 9267 * * 9267 -14766 * * * * * * * 512b e584ab,ee96ad 512b,e5ad 0000512b,0000e5ad 9268 * * 9268 * * 9268 -14767 * * * * * * * 3819 e3a099,ee96ae 3819,e5ae 00003819,0000e5ae 9269 * * 9269 * * 9269 -14768 * * * * * * * e5af f0a490b6,ee96af d851dc36,e5af 00024436,0000e5af 926a * * 926a * * 926a -14769 * * * * * * * 4ebc e4babc,ee96b0 4ebc,e5b0 00004ebc,0000e5b0 926b * * 926b * * 926b -14770 * * * * * * * e5b1 f0a091a5,ee96b1 d841dc65,e5b1 00020465,0000e5b1 926c * * 926c * * 926c -14771 * * * * * * * * * * * * * * 926d * * * -14772 * * * * * * * 4f4b e4bd8b,ee96b3 4f4b,e5b3 00004f4b,0000e5b3 926e * * 926e * * 926e -14773 * * * * * * * 4f8a e4be8a,ee96b4 4f8a,e5b4 00004f8a,0000e5b4 926f * * 926f * * 926f -14774 * * * * * * * e5b5 f0a59991,ee96b5 d855de51,e5b5 00025651,0000e5b5 9270 * * 9270 * * 9270 -14775 * * * * * * * 5a68 e5a9a8,ee96b6 5a68,e5b6 00005a68,0000e5b6 9271 * * 9271 * * 9271 -14776 * * * * * * * e5b7 f0a086ab,ee96b7 d840ddab,e5b7 000201ab,0000e5b7 9272 * * 9272 * * 9272 -14777 * * * * * * * e5b8 f0a08f8b,ee96b8 d840dfcb,e5b8 000203cb,0000e5b8 9273 * * 9273 * * 9273 -14778 * * * * * * * 3999 e3a699,ee96b9 3999,e5b9 00003999,0000e5b9 9274 * * 9274 * * 9274 -14779 * * * * * * * e5ba f0a08c8a,ee96ba d840df0a,e5ba 0002030a,0000e5ba 9275 * * 9275 * * 9275 -14780 * * * * * * * e5bb f0a09094,ee96bb d841dc14,e5bb 00020414,0000e5bb 9276 * * 9276 * * 9276 -14781 * * * * * * * 3435 e390b5,ee96bc 3435,e5bc 00003435,0000e5bc 9277 * * 9277 * * 9277 -14782 * * * * * * * 4f29 e4bca9,ee96bd 4f29,e5bd 00004f29,0000e5bd 9278 * * 9278 * * 9278 -14783 * * * * * * * e5be f0a08b80,ee96be d840dec0,e5be 000202c0,0000e5be 9279 * * 9279 * * 9279 -14784 * * * * * * * e5bf f0a8bab3,ee96bf d863deb3,e5bf 00028eb3,0000e5bf 927a * * 927a * * 927a -14785 * * * * * * * e5c0 f0a089b5,ee9780 d840de75,e5c0 00020275,0000e5c0 927b * * 927b * * 927b -14786 * * * * * * * 8ada e8ab9a,ee9781 8ada,e5c1 00008ada,0000e5c1 927c * * 927c * * 927c -14787 * * * * * * * e5c2 f0a0888c,ee9782 d840de0c,e5c2 0002020c,0000e5c2 927d * * 927d * * 927d -14788 * * * * * * * 4e98 e4ba98,ee9783 4e98,e5c3 00004e98,0000e5c3 927e fa47 9059 927e c741 fa41 927e -14789 * * * * * * * 50cd e5838d,ee9784 50cd,e5c4 000050cd,0000e5c4 92a1 fba4 905d 92a1 * fa4f 92a1 -14790 * * * * * * * 510d e5848d,ee9785 510d,e5c5 0000510d,0000e5c5 92a2 * * 92a2 * * 92a2 -14791 * * * * * * * 4fa2 e4bea2,ee9786 4fa2,e5c6 00004fa2,0000e5c6 92a3 * * 92a3 * * 92a3 -14792 * * * * * * * 4f03 e4bc83,ee9787 4f03,e5c7 00004f03,0000e5c7 92a4 fb75 9166 92a4 c745 fa48 92a4 -14793 * * * * * * * e5c8 f0a4a88e,ee9788 d852de0e,e5c8 00024a0e,0000e5c8 92a5 * * 92a5 * * 92a5 -14794 * * * * * * * e5c9 f0a3ba8a,ee9789 d84fde8a,e5c9 00023e8a,0000e5c9 92a6 * * 92a6 * * 92a6 -14795 * * * * * * * 4f42 e4bd82,ee978a 4f42,e5ca 00004f42,0000e5ca 92a7 * * 92a7 * * 92a7 -14796 * * * * * * * 502e e580ae,ee978b 502e,e5cb 0000502e,0000e5cb 92a8 fb7e 8fb4 92a8 * fa4c 92a8 -14797 * * * * * * * 506c e581ac,ee978c 506c,e5cc 0000506c,0000e5cc 92a9 fba2 8fb0 92a9 * fa4d 92a9 -14798 * * * * * * * 5081 e58281,ee978d 5081,e5cd 00005081,0000e5cd 92aa * * 92aa * * 92aa -14799 * * * * * * * 4fcc e4bf8c,ee978e 4fcc,e5ce 00004fcc,0000e5ce 92ab * * 92ab * * 92ab -14800 * * * * * * * 4fe5 e4bfa5,ee978f 4fe5,e5cf 00004fe5,0000e5cf 92ac fb7a 8e6b 92ac * * 92ac -14801 * * * * * * * 5058 e58198,ee9790 5058,e5d0 00005058,0000e5d0 92ad * * 92ad * * 92ad -14802 * * * * * * * 50fc e583bc,ee9791 50fc,e5d1 000050fc,0000e5d1 92ae * * 92ae * * 92ae -14803 * * * * * * * 6e76 e6b9b6,ee9796 6e76,e5d6 00006e76,0000e5d6 92b3 * * 92b3 * * 92b3 -14804 * * * * * * * e5d7 f0a39695,ee9797 d84ddd95,e5d7 00023595,0000e5d7 92b4 * * 92b4 * * 92b4 -14805 * * * * * * * e5d8 f0a3b8b9,ee9798 d84fde39,e5d8 00023e39,0000e5d8 92b5 * * 92b5 * * 92b5 -14806 * * * * * * * e5d9 f0a3babf,ee9799 d84fdebf,e5d9 00023ebf,0000e5d9 92b6 * * 92b6 * * 92b6 -14807 * * * * * * * 6d72 e6b5b2,ee979a 6d72,e5da 00006d72,0000e5da 92b7 fb4f * 92b7 * * 92b7 -14808 * * * * * * * e5db f0a1a284,ee979b d846dc84,e5db 00021884,0000e5db 92b8 * * 92b8 * * 92b8 -14809 * * * * * * * e5dc f0a3ba89,ee979c d84fde89,e5dc 00023e89,0000e5dc 92b9 * * 92b9 * * 92b9 -14810 * * * * * * * 51a8 e586a8,ee979d 51a8,e5dd 000051a8,0000e5dd 92ba * * 92ba * * 92ba -14811 * * * * * * * 51c3 e58783,ee979e 51c3,e5de 000051c3,0000e5de 92bb * * 92bb * * 92bb -14812 * * * * * * * e5df f0a097a0,ee979f d841dde0,e5df 000205e0,0000e5df 92bc * * 92bc * * 92bc -14813 * * * * * * * 44dd e4939d,ee97a0 44dd,e5e0 000044dd,0000e5e0 92bd * * 92bd * * 92bd -14814 * * * * * * * e5e1 f0a092a3,ee97a1 d841dca3,e5e1 000204a3,0000e5e1 92be * * 92be * * 92be -14815 * * * * * * * e5e2 f0a09292,ee97a2 d841dc92,e5e2 00020492,0000e5e2 92bf * * 92bf * * 92bf -14816 * * * * * * * e5e3 f0a09291,ee97a3 d841dc91,e5e3 00020491,0000e5e3 92c0 * * 92c0 * * 92c0 -14817 * * * * * * * 8d7a e8b5ba,ee97a4 8d7a,e5e4 00008d7a,0000e5e4 92c1 * * 92c1 * * 92c1 -14818 * * * * * * * e5e5 f0a8aa9c,ee97a5 d862de9c,e5e5 00028a9c,0000e5e5 92c2 * * 92c2 * * 92c2 -14819 * * * * * * * e5e6 f0a09c8e,ee97a6 d841df0e,e5e6 0002070e,0000e5e6 92c3 * * 92c3 * * 92c3 -14820 * * * * * * * 5259 e58999,ee97a7 5259,e5e7 00005259,0000e5e7 92c4 * * 92c4 * * 92c4 -14821 * * * * * * * 52a4 e58aa4,ee97a8 52a4,e5e8 000052a4,0000e5e8 92c5 * * 92c5 * * 92c5 -14822 * * * * * * * e5e9 f0a0a1b3,ee97a9 d842dc73,e5e9 00020873,0000e5e9 92c6 * * 92c6 * * 92c6 -14823 * * * * * * * 52e1 e58ba1,ee97aa 52e1,e5ea 000052e1,0000e5ea 92c7 fbb3 8eb4 92c7 * * 92c7 -14824 * * * * * * * 936e * * * * * * 92c8 * * * -14825 * * * * * * * 467a e499ba,ee97ac 467a,e5ec 0000467a,0000e5ec 92c9 * * 92c9 * * 92c9 -14826 * * * * * * * 718c e7868c,ee97ad 718c,e5ed 0000718c,0000e5ed 92ca * * 92ca c85a fbca 92ca -14827 * * * * * * * e5ee f0a48e8c,ee97ae d850df8c,e5ee 0002438c,0000e5ee 92cb * * 92cb * * 92cb -14828 * * * * * * * e5ef f0a0b0a0,ee97af d843dc20,e5ef 00020c20,0000e5ef 92cc * * 92cc * * 92cc -14829 * * * * * * * e5f0 f0a4a6ac,ee97b0 d852ddac,e5f0 000249ac,0000e5f0 92cd * * 92cd * * 92cd -14830 * * * * * * * e5f1 f0a183a4,ee97b1 d844dce4,e5f1 000210e4,0000e5f1 92ce * * 92ce * * 92ce -14831 * * * * * * * 69d1 e6a791,ee97b2 69d1,e5f2 000069d1,0000e5f2 92cf * * 92cf * * 92cf -14832 * * * * * * * e5f3 f0a0b89d,ee97b3 d843de1d,e5f3 00020e1d,0000e5f3 92d0 * * 92d0 * * 92d0 -14833 * * * * * * * * * * * * * * 92d1 * * * -14834 * * * * * * * 3ede e3bb9e,ee97b5 3ede,e5f5 00003ede,0000e5f5 92d2 * * 92d2 * * 92d2 -14835 * * * * * * * 7499 e79299,ee97b6 7499,e5f6 00007499,0000e5f6 92d3 * * 92d3 * * 92d3 -14836 * * * * * * * 7414 e79094,ee97b7 7414,e5f7 00007414,0000e5f7 92d4 * * 92d4 * * 92d4 -14837 * * * * * * * 7456 e79196,ee97b8 7456,e5f8 00007456,0000e5f8 92d5 * * 92d5 * * 92d5 -14838 * * * * * * * 7398 e78e98,ee97b9 7398,e5f9 00007398,0000e5f9 92d6 * * 92d6 * * 92d6 -14839 * * * * * * * 4b8e e4ae8e,ee97ba 4b8e,e5fa 00004b8e,0000e5fa 92d7 * * 92d7 * * 92d7 -14840 * * * * * * * e5fb f0a4aabc,ee97bb d852debc,e5fb 00024abc,0000e5fb 92d8 * * 92d8 * * 92d8 -14841 * * * * * * * e5fc f0a4828d,ee97bc d850dc8d,e5fc 0002408d,0000e5fc 92d9 * * 92d9 * * 92d9 -14842 * * * * * * * 53d0 e58f90,ee97bd 53d0,e5fd 000053d0,0000e5fd 92da * * 92da * * 92da -14843 * * * * * * * 3584 e39684,ee97be 3584,e5fe 00003584,0000e5fe 92db * * 92db * * 92db -14844 * * * * * * * 720f e7888f,ee97bf 720f,e5ff 0000720f,0000e5ff 92dc * * 92dc * * 92dc -14845 * * * * * * * e600 f0a48389,ee9880 d850dcc9,e600 000240c9,0000e600 92dd * * 92dd * * 92dd -14846 * * * * * * * 55b4 e596b4,ee9881 55b4,e601 000055b4,0000e601 92de * * 92de * * 92de -14847 * * * * * * * e602 f0a08d85,ee9882 d840df45,e602 00020345,0000e602 92df * * 92df * * 92df -14848 * * * * * * * 54cd e5938d,ee9883 54cd,e603 000054cd,0000e603 92e0 fa67 * 92e0 c76b faa4 92e0 -14849 * * * * * * * e604 f0a0af86,ee9884 d842dfc6,e604 00020bc6,0000e604 92e1 * * 92e1 * * 92e1 -14850 * * * * * * * 571d e59c9d,ee9885 571d,e605 0000571d,0000e605 92e2 * * 92e2 * * 92e2 -14851 * * * * * * * 925d e9899d,ee9886 925d,e606 0000925d,0000e606 92e3 * * 92e3 * * 92e3 -14852 * * * * * * * 96f4 e99bb4,ee9887 96f4,e607 000096f4,0000e607 92e4 * * 92e4 * * 92e4 -14853 * * * * * * * 57dd e59f9d,ee9889 57dd,e609 000057dd,0000e609 92e6 fbed 91a5 92e6 * * 92e6 -14854 * * * * * * * 578d e59e8d,ee988a 578d,e60a 0000578d,0000e60a 92e7 * * 92e7 * * 92e7 -14855 * * * * * * * 577f e59dbf,ee988b 577f,e60b 0000577f,0000e60b 92e8 * * 92e8 * * 92e8 -14856 * * * * * * * 363e e398be,ee988c 363e,e60c 0000363e,0000e60c 92e9 * * 92e9 * * 92e9 -14857 * * * * * * * 58cb e5a38b,ee988d 58cb,e60d 000058cb,0000e60d 92ea * * 92ea * * 92ea -14858 * * * * * * * 5a99 e5aa99,ee988e 5a99,e60e 00005a99,0000e60e 92eb * * 92eb * * 92eb -14859 * * * * * * * e60f f0a8a986,ee988f d862de46,e60f 00028a46,0000e60f 92ec * * 92ec * * 92ec -14860 * * * * * * * e610 f0a19bba,ee9890 d845defa,e610 000216fa,0000e610 92ed * * 92ed * * 92ed -14861 * * * * * * * e611 f0a19daf,ee9891 d845df6f,e611 0002176f,0000e611 92ee * * 92ee * * 92ee -14862 * * * * * * * e612 f0a19c90,ee9892 d845df10,e612 00021710,0000e612 92ef * * 92ef * * 92ef -14863 * * * * * * * 5a2c e5a8ac,ee9893 5a2c,e613 00005a2c,0000e613 92f0 * * 92f0 * * 92f0 -14864 * * * * * * * 59b8 e5a6b8,ee9894 59b8,e614 000059b8,0000e614 92f1 * * 92f1 * * 92f1 -14865 * * * * * * * 5a7e e5a9be,ee9896 5a7e,e616 00005a7e,0000e616 92f3 * * 92f3 * * 92f3 -14866 * * * * * * * * e5ab8f,ee9897 5acf,e617 00005acf,0000e617 92f4 * * 92f4 * * 92f4 -14867 * * * * * * * 5a12 e5a892,ee9898 5a12,e618 00005a12,0000e618 92f5 * * 92f5 * * 92f5 -14868 * * * * * * * e619 f0a5a586,ee9899 d856dd46,e619 00025946,0000e619 92f6 * * 92f6 * * 92f6 -14869 * * * * * * * e61a f0a1a7b3,ee989a d846ddf3,e61a 000219f3,0000e61a 92f7 * * 92f7 * * 92f7 -14870 * * * * * * * e61b f0a1a1a1,ee989b d846dc61,e61b 00021861,0000e61b 92f8 * * 92f8 * * 92f8 -14871 * * * * * * * e61c f0a48a95,ee989c d850de95,e61c 00024295,0000e61c 92f9 * * 92f9 * * 92f9 -14872 * * * * * * * 36f5 e39bb5,ee989d 36f5,e61d 000036f5,0000e61d 92fa * * 92fa * * 92fa -14873 * * * * * * * 6d05 e6b485,ee989e 6d05,e61e 00006d05,0000e61e 92fb * * 92fb * * 92fb -14874 * * * * * * * 7443 e79183,ee989f 7443,e61f 00007443,0000e61f 92fc * * 92fc * * 92fc -14875 * * * * * * * 5a21 e5a8a1,ee98a0 5a21,e620 00005a21,0000e620 92fd * * 92fd * * 92fd -14876 * * * * * * * e621 f0a5ba83,ee98a1 d857de83,e621 00025e83,0000e621 92fe * * 92fe * * 92fe -14877 * * * * * * * 5a81 e5aa81,ee98a2 5a81,e622 00005a81,0000e622 9340 * * 9340 c7cd faf2 9340 -14878 * * * * * * * e623 f0a8af97,ee98a3 d862dfd7,e623 00028bd7,0000e623 9341 * * 9341 * * 9341 -14879 * * * * * * * e624 f0a09093,ee98a4 d841dc13,e624 00020413,0000e624 9342 * * 9342 * * 9342 -14880 * * * * * * * 93e0 e98fa0,ee98a5 93e0,e625 000093e0,0000e625 9343 * * 9343 * * 9343 -14881 * * * * * * * 748c e7928c,ee98a6 748c,e626 0000748c,0000e626 9344 * * 9344 * * 9344 -14882 * * * * * * * e627 f0a18c83,ee98a7 d844df03,e627 00021303,0000e627 9345 * * 9345 * * 9345 -14883 * * * * * * * 7105 e78485,ee98a8 7105,e628 00007105,0000e628 9346 * * 9346 * * 9346 -14884 * * * * * * * 4972 e4a5b2,ee98a9 4972,e629 00004972,0000e629 9347 * * 9347 * * 9347 -14885 * * * * * * * 9408 e99088,ee98aa 9408,e62a 00009408,0000e62a 9348 * * 9348 * * 9348 -14886 * * * * * * * e62b f0a8a7bb,ee98ab d862ddfb,e62b 000289fb,0000e62b 9349 * * 9349 * * 9349 -14887 * * * * * * * 93bd e98ebd,ee98ac 93bd,e62c 000093bd,0000e62c 934a * * 934a * * 934a -14888 * * * * * * * 37a0 e39ea0,ee98ad 37a0,e62d 000037a0,0000e62d 934b * * 934b * * 934b -14889 * * * * * * * 5c1e e5b09e,ee98ae 5c1e,e62e 00005c1e,0000e62e 934c * * 934c * * 934c -14890 * * * * * * * 5c9e e5b29e,ee98af 5c9e,e62f 00005c9e,0000e62f 934d * * 934d * * 934d -14891 * * * * * * * 5e5e e5b99e,ee98b0 5e5e,e630 00005e5e,0000e630 934e fc4c 91ae 934e * fb48 934e -14892 * * * * * * * 5e48 e5b988,ee98b1 5e48,e631 00005e48,0000e631 934f * * 934f * * 934f -14893 * * * * * * * e632 f0a1a696,ee98b2 d846dd96,e632 00021996,0000e632 9350 * * 9350 * * 9350 -14894 * * * * * * * e633 f0a1a5bc,ee98b3 d846dd7c,e633 0002197c,0000e633 9351 * * 9351 * * 9351 -14895 * * * * * * * e634 f0a3abae,ee98b4 d84edeee,e634 00023aee,0000e634 9352 * * 9352 * * 9352 -14896 * * * * * * * 5ecd e5bb8d,ee98b5 5ecd,e635 00005ecd,0000e635 9353 fc54 8faf 9353 * fb4d 9353 -14897 * * * * * * * 5b4f e5ad8f,ee98b6 5b4f,e636 00005b4f,0000e636 9354 * * 9354 * * 9354 -14898 * * * * * * * e637 ee98b7,f0a1a483 d846dd03,e637 0000e637,00021903 9355 * * 9355 * * 9355 -14899 * * * * * * * e638 ee98b8,f0a1a484 d846dd04,e638 0000e638,00021904 9356 * * 9356 * * 9356 -14900 * * * * * * * 3701 e39c81,ee98b9 3701,e639 00003701,0000e639 9357 * * 9357 * * 9357 -14901 * * * * * * * e63a f0a1a2a0,ee98ba d846dca0,e63a 000218a0,0000e63a 9358 * * 9358 * * 9358 -14902 * * * * * * * 36dd e39b9d,ee98bb 36dd,e63b 000036dd,0000e63b 9359 * * 9359 * * 9359 -14903 * * * * * * * e63c f0a19bbe,ee98bc d845defe,e63c 000216fe,0000e63c 935a * * 935a * * 935a -14904 * * * * * * * 36d3 e39b93,ee98bd 36d3,e63d 000036d3,0000e63d 935b * * 935b * * 935b -14905 * * * * * * * 812a e884aa,ee98be 812a,e63e 0000812a,0000e63e 935c * * 935c * * 935c -14906 * * * * * * * e63f f0a8a987,ee98bf d862de47,e63f 00028a47,0000e63f 935d * * 935d * * 935d -14907 * * * * * * * e640 f0a1b6ba,ee9980 d847ddba,e640 00021dba,0000e640 935e * * 935e * * 935e -14908 * * * * * * * e641 f0a391b2,ee9981 d84ddc72,e641 00023472,0000e641 935f * * 935f * * 935f -14909 * * * * * * * e642 f0a8a6a8,ee9982 d862dda8,e642 000289a8,0000e642 9360 * * 9360 * * 9360 -14910 * * * * * * * 5f0c e5bc8c,eeb7b4,ee9983 5f0c,edf4,e643 00005f0c,0000edf4,0000e643 9fd8,9361 * * 9361 * * 9fd8,9361 -14911 * * * * * * * 5f0e e5bc8e,ee9984 5f0e,e644 00005f0e,0000e644 9362 * * 9362 * * 9362 -14912 * * * * * * * e645 f0a1a4a7,ee9985 d846dd27,e645 00021927,0000e645 9363 * * 9363 * * 9363 -14913 * * * * * * * e646 f0a19eab,ee9986 d845dfab,e646 000217ab,0000e646 9364 * * 9364 * * 9364 -14914 * * * * * * * 5a6b e5a9ab,ee9987 5a6b,e647 00005a6b,0000e647 9365 * * 9365 * * 9365 -14915 * * * * * * * e648 f0a19cbb,ee9988 d845df3b,e648 0002173b,0000e648 9366 * * 9366 * * 9366 -14916 * * * * * * * 5b44 e5ad84,ee9989 5b44,e649 00005b44,0000e649 9367 * * 9367 * * 9367 -14917 * * * * * * * e64b f0a797bd,ee998b d85dddfd,e64b 000275fd,0000e64b 9369 * * 9369 * * 9369 -14918 * * * * * * * 8860 e8a1a0,ee998c 8860,e64c 00008860,0000e64c 936a * * 936a * * 936a -14919 * * * * * * * 607e e681be,ee998d 607e,e64d 0000607e,0000e64d 936b * * 936b * * 936b -14920 * * * * * * * e64e f0a2a1a0,ee998e d84adc60,e64e 00022860,0000e64e 936c * * 936c * * 936c -14921 * * * * * * * e64f f0a298ab,ee998f d849de2b,e64f 0002262b,0000e64f 936d * * 936d * * 936d -14922 * * * * * * * 5fdb e5bf9b,ee9990 5fdb,e650 00005fdb,0000e650 936e * * 936e * * 936e -14923 * * * * * * * 3eb8 e3bab8,ee9991 3eb8,e651 00003eb8,0000e651 936f * * 936f * * 936f -14924 * * * * * * * e652 f0a296af,ee9992 d849ddaf,e652 000225af,0000e652 9370 * * 9370 * * 9370 -14925 * * * * * * * e653 f0a296be,ee9993 d849ddbe,e653 000225be,0000e653 9371 * * 9371 * * 9371 -14926 * * * * * * * e654 f0a98288,ee9994 d864dc88,e654 00029088,0000e654 9372 * * 9372 * * 9372 -14927 * * * * * * * e655 f0a6bdb3,ee9995 d85bdf73,e655 00026f73,0000e655 9373 * * 9373 * * 9373 -14928 * * * * * * * 61c0 e68780,ee9996 61c0,e656 000061c0,0000e656 9374 * * 9374 * * 9374 -14929 * * * * * * * e657 f0a080be,ee9997 d840dc3e,e657 0002003e,0000e657 9375 * * 9375 * * 9375 -14930 * * * * * * * e658 f0a08186,ee9998 d840dc46,e658 00020046,0000e658 9376 * * 9376 * * 9376 -14931 * * * * * * * e659 f0a2989b,ee9999 d849de1b,e659 0002261b,0000e659 9377 * * 9377 * * 9377 -14932 * * * * * * * 6199 e68699,ee999a 6199,e65a 00006199,0000e65a 9378 fc73 91b7 9378 * * 9378 -14933 * * * * * * * 6198 e68698,ee999b 6198,e65b 00006198,0000e65b 9379 * * 9379 * * 9379 -14934 * * * * * * * 6075 e681b5,ee999c 6075,e65c 00006075,0000e65c 937a * * 937a * * 937a -14935 * * * * * * * e65d f0a2b29b,ee999d d84bdc9b,e65d 00022c9b,0000e65d 937b * * 937b * * 937b -14936 * * * * * * * e65e f0a2b487,ee999e d84bdd07,e65e 00022d07,0000e65e 937c * * 937c * * 937c -14937 * * * * * * * e65f f0a49b94,ee999f d851ded4,e65f 000246d4,0000e65f 937d * * 937d * * 937d -14938 * * * * * * * e660 f0a9858d,ee99a0 d864dd4d,e660 0002914d,0000e660 937e * * 937e * * 937e -14939 * * * * * * * 6471 e691b1,ee99a1 6471,e661 00006471,0000e661 93a1 * * 93a1 * * 93a1 -14940 * * * * * * * e662 f0a499a5,ee99a2 d851de65,e662 00024665,0000e662 93a2 * * 93a2 * * 93a2 -14941 * * * * * * * e663 f0a2adaa,ee99a3 d84adf6a,e663 00022b6a,0000e663 93a3 * * 93a3 * * 93a3 -14942 * * * * * * * 3a29 e3a8a9,ee99a4 3a29,e664 00003a29,0000e664 93a4 * * 93a4 * * 93a4 -14943 * * * * * * * e665 f0a2aca2,ee99a5 d84adf22,e665 00022b22,0000e665 93a5 * * 93a5 * * 93a5 -14944 * * * * * * * e666 f0a39190,ee99a6 d84ddc50,e666 00023450,0000e666 93a6 * * 93a6 * * 93a6 -14945 * * * * * * * e667 f0a9a3aa,ee99a7 d866dcea,e667 000298ea,0000e667 93a7 * * 93a7 * * 93a7 -14946 * * * * * * * e668 f0a2b9b8,ee99a8 d84bde78,e668 00022e78,0000e668 93a8 * * 93a8 * * 93a8 -14947 * * * * * * * 6337 e68cb7,ee99a9 6337,e669 00006337,0000e669 93a9 * * 93a9 * * 93a9 -14948 * * * * * * * 64b6 e692b6,ee99ab 64b6,e66b 000064b6,0000e66b 93ab * * 93ab * * 93ab -14949 * * * * * * * 6331 e68cb1,ee99ac 6331,e66c 00006331,0000e66c 93ac * * 93ac * * 93ac -14950 * * * * * * * 63d1 e68f91,ee99ad 63d1,e66d 000063d1,0000e66d 93ad fa58 * 93ad c7f1 fb6b 93ad -14951 * * * * * * * e66e f0a4a7a3,ee99ae d852dde3,e66e 000249e3,0000e66e 93ae * * 93ae * * 93ae -14952 * * * * * * * e66f f0a2b5a7,ee99af d84bdd67,e66f 00022d67,0000e66f 93af * * 93af * * 93af -14953 * * * * * * * 62a4 e68aa4,ee99b0 62a4,e670 000062a4,0000e670 93b0 * * 93b0 * * 93b0 -14954 * * * * * * * e671 f0a2b2a1,ee99b1 d84bdca1,e671 00022ca1,0000e671 93b1 * * 93b1 * * 93b1 -14955 * * * * * * * 643b e690bb,ee99b2 643b,e672 0000643b,0000e672 93b2 * * 93b2 * * 93b2 -14956 * * * * * * * 656b e695ab,ee99b3 656b,e673 0000656b,0000e673 93b3 * * 93b3 * * 93b3 -14957 * * * * * * * 6972 e6a5b2,ee99b4 6972,e674 00006972,0000e674 93b4 * * 93b4 * * 93b4 -14958 * * * * * * * 3bf4 e3afb4,ee99b5 3bf4,e675 00003bf4,0000e675 93b5 * * 93b5 * * 93b5 -14959 * * * * * * * e676 f0a3828e,ee99b6 d84cdc8e,e676 0002308e,0000e676 93b6 * * 93b6 * * 93b6 -14960 * * * * * * * e677 f0a38aad,ee99b7 d84cdead,e677 000232ad,0000e677 93b7 * * 93b7 * * 93b7 -14961 * * * * * * * e678 f0a4a689,ee99b8 d852dd89,e678 00024989,0000e678 93b8 * * 93b8 * * 93b8 -14962 * * * * * * * e679 f0a38aab,ee99b9 d84cdeab,e679 000232ab,0000e679 93b9 * * 93b9 * * 93b9 -14963 * * * * * * * 550d e5948d,ee99ba 550d,e67a 0000550d,0000e67a 93ba * * 93ba * * 93ba -14964 * * * * * * * e67b f0a38ba0,ee99bb d84cdee0,e67b 000232e0,0000e67b 93bb * * 93bb * * 93bb -14965 * * * * * * * e67c f0a1a399,ee99bc d846dcd9,e67c 000218d9,0000e67c 93bc * * 93bc * * 93bc -14966 * * * * * * * e67d f0a990bf,ee99bd d865dc3f,e67d 0002943f,0000e67d 93bd * * 93bd * * 93bd -14967 * * * * * * * 66ce e69b8e,ee99be 66ce,e67e 000066ce,0000e67e 93be * * 93be * * 93be -14968 * * * * * * * e67f f0a38a89,ee99bf d84cde89,e67f 00023289,0000e67f 93bf * * 93bf * * 93bf -14969 * * * * * * * e680 f0a386b3,ee9a80 d84cddb3,e680 000231b3,0000e680 93c0 * * 93c0 * * 93c0 -14970 * * * * * * * 3ae0 e3aba0,ee9a81 3ae0,e681 00003ae0,0000e681 93c1 * * 93c1 * * 93c1 -14971 * * * * * * * e683 f0a59684,ee9a83 d855dd84,e683 00025584,0000e683 93c3 * * 93c3 * * 93c3 -14972 * * * * * * * e684 f0a8aca2,ee9a84 d862df22,e684 00028b22,0000e684 93c4 * * 93c4 * * 93c4 -14973 * * * * * * * e685 f0a5968f,ee9a85 d855dd8f,e685 0002558f,0000e685 93c5 * * 93c5 * * 93c5 -14974 * * * * * * * e686 f0a19bbc,ee9a86 d845defc,e686 000216fc,0000e686 93c6 * * 93c6 * * 93c6 -14975 * * * * * * * e687 f0a5959b,ee9a87 d855dd5b,e687 0002555b,0000e687 93c7 * * 93c7 * * 93c7 -14976 * * * * * * * e688 f0a590a5,ee9a88 d855dc25,e688 00025425,0000e688 93c8 * * 93c8 * * 93c8 -14977 * * * * * * * 78ee e7a3ae,ee9a89 78ee,e689 000078ee,0000e689 93c9 * * 93c9 * * 93c9 -14978 * * * * * * * e68a f0a38483,ee9a8a d84cdd03,e68a 00023103,0000e68a 93ca * * 93ca * * 93ca -14979 * * * * * * * e68b f0a1a0aa,ee9a8b d846dc2a,e68b 0002182a,0000e68b 93cb * * 93cb * * 93cb -14980 * * * * * * * e68c f0a388b4,ee9a8c d84cde34,e68c 00023234,0000e68c 93cc * * 93cc * * 93cc -14981 * * * * * * * 3464 e391a4,ee9a8d 3464,e68d 00003464,0000e68d 93cd * * 93cd * * 93cd -14982 * * * * * * * e68e f0a3888f,ee9a8e d84cde0f,e68e 0002320f,0000e68e 93ce * * 93ce * * 93ce -14983 * * * * * * * e68f f0a38682,ee9a8f d84cdd82,e68f 00023182,0000e68f 93cf * * 93cf * * 93cf -14984 * * * * * * * e690 f0a48b89,ee9a90 d850dec9,e690 000242c9,0000e690 93d0 * * 93d0 * * 93d0 -14985 * * * * * * * 668e e69a8e,ee9a91 668e,e691 0000668e,0000e691 93d1 fca8 8fbe 93d1 * * 93d1 -14986 * * * * * * * e692 f0a6b4a4,ee9a92 d85bdd24,e692 00026d24,0000e692 93d2 * * 93d2 * * 93d2 -14987 * * * * * * * 666b e699ab,ee9a93 666b,e693 0000666b,0000e693 93d3 * * 93d3 * * 93d3 -14988 * * * * * * * 4b93 e4ae93,ee9a94 4b93,e694 00004b93,0000e694 93d4 * * 93d4 * * 93d4 -14989 * * * * * * * 6630 e698b0,ee9a95 6630,e695 00006630,0000e695 93d5 * * 93d5 * * 93d5 -14990 * * * * * * * e696 f0a7a1b0,ee9a96 d85edc70,e696 00027870,0000e696 93d6 * * 93d6 * * 93d6 -14991 * * * * * * * e697 f0a1b7ab,ee9a97 d847ddeb,e697 00021deb,0000e697 93d7 * * 93d7 * * 93d7 -14992 * * * * * * * 6663 e699a3,ee9a98 6663,e698 00006663,0000e698 93d8 * * 93d8 * * 93d8 -14993 * * * * * * * e699 f0a38b92,ee9a99 d84cded2,e699 000232d2,0000e699 93d9 * * 93d9 * * 93d9 -14994 * * * * * * * e69a f0a38ba1,ee9a9a d84cdee1,e69a 000232e1,0000e69a 93da * * 93da * * 93da -14995 * * * * * * * 661e e6989e,ee9a9b 661e,e69b 0000661e,0000e69b 93db * * 93db * * 93db -14996 * * * * * * * e69c f0a5a1b2,ee9a9c d856dc72,e69c 00025872,0000e69c 93dc * * 93dc * * 93dc -14997 * * * * * * * 38d1 e3a391,ee9a9d 38d1,e69d 000038d1,0000e69d 93dd * * 93dd * * 93dd -14998 * * * * * * * e69e f0a3a0ba,ee9a9e d84edc3a,e69e 0002383a,0000e69e 93de * * 93de * * 93de -14999 * * * * * * * e69f f0a39ebc,ee9a9f d84ddfbc,e69f 000237bc,0000e69f 93df * * 93df * * 93df -15000 * * * * * * * 3b99 e3ae99,ee9aa0 3b99,e6a0 00003b99,0000e6a0 93e0 * * 93e0 * * 93e0 -15001 * * * * * * * e6a1 f0a39ea2,ee9aa1 d84ddfa2,e6a1 000237a2,0000e6a1 93e1 * * 93e1 * * 93e1 -15002 * * * * * * * e6a2 f0a38fbe,ee9aa2 d84cdffe,e6a2 000233fe,0000e6a2 93e2 * * 93e2 * * 93e2 -15003 * * * * * * * 74d0 e79390,ee9aa3 74d0,e6a3 000074d0,0000e6a3 93e3 * * 93e3 * * 93e3 -15004 * * * * * * * 3b96 e3ae96,ee9aa4 3b96,e6a4 00003b96,0000e6a4 93e4 * * 93e4 * * 93e4 -15005 * * * * * * * e6a6 f0a498aa,ee9aa6 d851de2a,e6a6 0002462a,0000e6a6 93e6 * * 93e6 * * 93e6 -15006 * * * * * * * 68b6 e6a2b6,ee9aa7 68b6,e6a7 000068b6,0000e6a7 93e7 fcb3 8fd6 93e7 * * 93e7 -15007 * * * * * * * * * * * * * * 93e8 * * * -15008 * * * * * * * 3bc4 e3af84,ee9aa9 3bc4,e6a9 00003bc4,0000e6a9 93e9 * * 93e9 * * 93e9 -15009 * * * * * * * 6abe e6aabe,ee9aaa 6abe,e6aa 00006abe,0000e6aa 93ea * * 93ea * * 93ea -15010 * * * * * * * e6ac f0a39f95,ee9aac d84ddfd5,e6ac 000237d5,0000e6ac 93ec * * 93ec * * 93ec -15011 * * * * * * * e6ad f0a49287,ee9aad d851dc87,e6ad 00024487,0000e6ad 93ed * * 93ed * * 93ed -15012 * * * * * * * 6a33 e6a8b3,ee9aae 6a33,e6ae 00006a33,0000e6ae 93ee * * 93ee * * 93ee -15013 * * * * * * * 6a52 e6a992,ee9aaf 6a52,e6af 00006a52,0000e6af 93ef fcc7 91c8 93ef * * 93ef -15014 * * * * * * * 6ac9 e6ab89,ee9ab0 6ac9,e6b0 00006ac9,0000e6b0 93f0 * * 93f0 * * 93f0 -15015 * * * * * * * 6b05 e6ac85,ee9ab1 6b05,e6b1 00006b05,0000e6b1 93f1 * * 93f1 * * 93f1 -15016 * * * * * * * e6b2 f0a1a492,ee9ab2 d846dd12,e6b2 00021912,0000e6b2 93f2 * * 93f2 * * 93f2 -15017 * * * * * * * 6511 e69491,ee9ab3 6511,e6b3 00006511,0000e6b3 93f3 * * 93f3 * * 93f3 -15018 * * * * * * * 6898 e6a298,ee9ab4 6898,e6b4 00006898,0000e6b4 93f4 fa7a 91be 93f4 c847 fbad 93f4 -15019 * * * * * * * 6a4c e6a98c,ee9ab5 6a4c,e6b5 00006a4c,0000e6b5 93f5 * * 93f5 * * 93f5 -15020 * * * * * * * 3bd7 e3af97,ee9ab6 3bd7,e6b6 00003bd7,0000e6b6 93f6 * * 93f6 * * 93f6 -15021 * * * * * * * 6a7a e6a9ba,ee9ab7 6a7a,e6b7 00006a7a,0000e6b7 93f7 fcc6 8fc8 93f7 * * 93f7 -15022 * * * * * * * 6b57 e6ad97,ee9ab8 6b57,e6b8 00006b57,0000e6b8 93f8 * * 93f8 * * 93f8 -15023 * * * * * * * e6b9 f0a3bf80,ee9ab9 d84fdfc0,e6b9 00023fc0,0000e6b9 93f9 * * 93f9 * * 93f9 -15024 * * * * * * * e6ba f0a3b29a,ee9aba d84fdc9a,e6ba 00023c9a,0000e6ba 93fa * * 93fa * * 93fa -15025 * * * * * * * 93a0 e98ea0,ee9abb 93a0,e6bb 000093a0,0000e6bb 93fb * * 93fb * * 93fb -15026 * * * * * * * 92f2 e98bb2,ee9abc 92f2,e6bc 000092f2,0000e6bc 93fc * * 93fc * * 93fc -15027 * * * * * * * e6bd f0a8afaa,ee9abd d862dfea,e6bd 00028bea,0000e6bd 93fd * * 93fd * * 93fd -15028 * * * * * * * e6be f0a8ab8b,ee9abe d862decb,e6be 00028acb,0000e6be 93fe * * 93fe * * 93fe -15029 * * * * * * * 9289 e98a89,ee9abf 9289,e6bf 00009289,0000e6bf 9440 * * 9440 * * 9440 -15030 * * * * * * * e6c0 f0a8809e,ee9b80 d860dc1e,e6c0 0002801e,0000e6c0 9441 * * 9441 * * 9441 -15031 * * * * * * * e6c1 f0a8a79c,ee9b81 d862dddc,e6c1 000289dc,0000e6c1 9442 * * 9442 * * 9442 -15032 * * * * * * * 9467 e991a7,ee9b82 9467,e6c2 00009467,0000e6c2 9443 * * 9443 * * 9443 -15033 * * * * * * * 6da5 e6b6a5,ee9b83 6da5,e6c3 00006da5,0000e6c3 9444 * * 9444 * * 9444 -15034 * * * * * * * 6f0b e6bc8b,ee9b84 6f0b,e6c4 00006f0b,0000e6c4 9445 * * 9445 * * 9445 -15035 * * * * * * * * * * * * * * 9447 * * * -15036 * * * * * * * e6c7 f0a3bdbf,ee9b87 d84fdf7f,e6c7 00023f7f,0000e6c7 9448 * * 9448 * * 9448 -15037 * * * * * * * 3d8f e3b68f,ee9b88 3d8f,e6c8 00003d8f,0000e6c8 9449 * * 9449 * * 9449 -15038 * * * * * * * 6e04 e6b884,ee9b89 6e04,e6c9 00006e04,0000e6c9 944a * * 944a * * 944a -15039 * * * * * * * e6ca f0a480bc,ee9b8a d850dc3c,e6ca 0002403c,0000e6ca 944b * * 944b * * 944b -15040 * * * * * * * 5a3d e5a8bd,ee9b8b 5a3d,e6cb 00005a3d,0000e6cb 944c * * 944c * * 944c -15041 * * * * * * * 6e0a e6b88a,ee9b8c 6e0a,e6cc 00006e0a,0000e6cc 944d * * 944d * * 944d -15042 * * * * * * * 5847 e5a187,ee9b8d 5847,e6cd 00005847,0000e6cd 944e * * 944e * * 944e -15043 * * * * * * * 6d24 e6b4a4,ee9b8e 6d24,e6ce 00006d24,0000e6ce 944f fcd0 8ff0 944f * * 944f -15044 * * * * * * * 7842 e7a182,ee9b8f 7842,e6cf 00007842,0000e6cf 9450 * * 9450 * * 9450 -15045 * * * * * * * 713b e784bb,ee9b90 713b,e6d0 0000713b,0000e6d0 9451 * * 9451 * * 9451 -15046 * * * * * * * e6d1 f0a48c9a,ee9b91 d850df1a,e6d1 0002431a,0000e6d1 9452 * * 9452 * * 9452 -15047 * * * * * * * e6d2 f0a489b6,ee9b92 d850de76,e6d2 00024276,0000e6d2 9453 * * 9453 * * 9453 -15048 * * * * * * * 70f1 e783b1,ee9b93 70f1,e6d3 000070f1,0000e6d3 9454 * * 9454 c858 fbc8 9454 -15049 * * * * * * * 7250 e78990,eeba9d,ee9b94 7250,ee9d,e6d4 00007250,0000ee9d,0000e6d4 a0e4,9455 fcea 90d6 9455 * * a0e4,9455 -15050 * * * * * * * 7287 e78a87,ee9b95 7287,e6d5 00007287,0000e6d5 9456 fcec 8eb0 9456 * * 9456 -15051 * * * * * * * 7294 e78a94,ee9b96 7294,e6d6 00007294,0000e6d6 9457 * * 9457 * * 9457 -15052 * * * * * * * e6d7 f0a49e8f,ee9b97 d851df8f,e6d7 0002478f,0000e6d7 9458 * * 9458 * * 9458 -15053 * * * * * * * e6d8 f0a49ca5,ee9b98 d851df25,e6d8 00024725,0000e6d8 9459 * * 9459 * * 9459 -15054 * * * * * * * 5179 e585b9,ee9b99 5179,e6d9 00005179,0000e6d9 945a * * 945a * * 945a -15055 * * * * * * * e6da f0a4aaa4,ee9b9a d852dea4,e6da 00024aa4,0000e6da 945b * * 945b * * 945b -15056 * * * * * * * e6db f0a097ab,ee9b9b d841ddeb,e6db 000205eb,0000e6db 945c * * 945c * * 945c -15057 * * * * * * * 747a e791ba,ee9b9c 747a,e6dc 0000747a,0000e6dc 945d * * 945d * * 945d -15058 * * * * * * * e6dd f0a3bbb8,ee9b9d d84fdef8,e6dd 00023ef8,0000e6dd 945e * * 945e * * 945e -15059 * * * * * * * e6de f0a3999f,ee9b9e d84dde5f,e6de 0002365f,0000e6de 945f * * 945f * * 945f -15060 * * * * * * * e6df f0a4a98a,ee9b9f d852de4a,e6df 00024a4a,0000e6df 9460 * * 9460 * * 9460 -15061 * * * * * * * e6e0 f0a4a497,ee9ba0 d852dd17,e6e0 00024917,0000e6e0 9461 * * 9461 * * 9461 -15062 * * * * * * * e6e1 f0a5bfa1,ee9ba1 d857dfe1,e6e1 00025fe1,0000e6e1 9462 * * 9462 * * 9462 -15063 * * * * * * * 3f06 e3bc86,ee9ba2 3f06,e6e2 00003f06,0000e6e2 9463 * * 9463 * * 9463 -15064 * * * * * * * 3eb1 e3bab1,ee9ba3 3eb1,e6e3 00003eb1,0000e6e3 9464 * * 9464 * * 9464 -15065 * * * * * * * e6e4 f0a4ab9f,ee9ba4 d852dedf,e6e4 00024adf,0000e6e4 9465 * * 9465 * * 9465 -15066 * * * * * * * e6e5 f0a8b0a3,ee9ba5 d863dc23,e6e5 00028c23,0000e6e5 9466 * * 9466 * * 9466 -15067 * * * * * * * e6e6 f0a3bcb5,ee9ba6 d84fdf35,e6e6 00023f35,0000e6e6 9467 * * 9467 * * 9467 -15068 * * * * * * * 60a7 e682a7,ee9ba7 60a7,e6e7 000060a7,0000e6e7 9468 fc67 8fd7 9468 * * 9468 -15069 * * * * * * * 3ef3 e3bbb3,ee9ba8 3ef3,e6e8 00003ef3,0000e6e8 9469 * * 9469 * * 9469 -15070 * * * * * * * 74cc e7938c,ee9ba9 74cc,e6e9 000074cc,0000e6e9 946a * * 946a * * 946a -15071 * * * * * * * 743c e790bc,ee9baa 743c,e6ea 0000743c,0000e6ea 946b faa5 8f76 946b c86c fbe0 946b -15072 * * * * * * * 9387 e98e87,ee9bab 9387,e6eb 00009387,0000e6eb 946c * * 946c * * 946c -15073 * * * * * * * 7437 e790b7,ee9bac 7437,e6ec 00007437,0000e6ec 946d * * 946d * * 946d -15074 * * * * * * * 449f e4929f,ee9bad 449f,e6ed 0000449f,0000e6ed 946e * * 946e * * 946e -15075 * * * * * * * e6ee f0a6b7aa,ee9bae d85bddea,e6ee 00026dea,0000e6ee 946f * * 946f * * 946f -15076 * * * * * * * 4551 e49591,ee9baf 4551,e6ef 00004551,0000e6ef 9470 * * 9470 * * 9470 -15077 * * * * * * * 7583 e79683,ee9bb0 7583,e6f0 00007583,0000e6f0 9471 * * 9471 * * 9471 -15078 * * * * * * * 3f63 e3bda3,ee9bb1 3f63,e6f1 00003f63,0000e6f1 9472 * * 9472 * * 9472 -15079 * * * * * * * e6f2 f0a4b399,ee9bb2 d853dcd9,e6f2 00024cd9,0000e6f2 9473 * * 9473 * * 9473 -15080 * * * * * * * e6f3 f0a4b486,ee9bb3 d853dd06,e6f3 00024d06,0000e6f3 9474 * * 9474 * * 9474 -15081 * * * * * * * 3f58 e3bd98,ee9bb4 3f58,e6f4 00003f58,0000e6f4 9475 * * 9475 * * 9475 -15082 * * * * * * * 7555 e79595,ee9bb5 7555,e6f5 00007555,0000e6f5 9476 * * 9476 * * 9476 -15083 * * * * * * * 7673 e799b3,ee9bb6 7673,e6f6 00007673,0000e6f6 9477 * * 9477 * * 9477 -15084 * * * * * * * e6f7 f0aa9786,ee9bb7 d869ddc6,e6f7 0002a5c6,0000e6f7 9478 * * 9478 * * 9478 -15085 * * * * * * * * * * * * * * 9479 * * * -15086 * * * * * * * 7468 e791a8,eeba8e,ee9bb9 7468,ee8e,e6f9 00007468,0000ee8e,0000e6f9 a0d5,947a * * 947a * * a0d5,947a -15087 * * * * * * * e6fa f0a8ab8c,ee9bba d862decc,e6fa 00028acc,0000e6fa 947b * * 947b * * 947b -15088 * * * * * * * e6fb f0a4a6ab,ee9bbb d852ddab,e6fb 000249ab,0000e6fb 947c * * 947c * * 947c -15089 * * * * * * * e6fc f0a4a68e,ee9bbc d852dd8e,e6fc 0002498e,0000e6fc 947d * * 947d * * 947d -15090 * * * * * * * 3afb e3abbb,ee9bbd 3afb,e6fd 00003afb,0000e6fd 947e * * 947e * * 947e -15091 * * * * * * * 3dcd e3b78d,ee9bbe 3dcd,e6fe 00003dcd,0000e6fe 94a1 * * 94a1 * * 94a1 -15092 * * * * * * * e6ff f0a4a98e,ee9bbf d852de4e,e6ff 00024a4e,0000e6ff 94a2 * * 94a2 * * 94a2 -15093 * * * * * * * 3eff e3bbbf,ee9c80 3eff,e700 00003eff,0000e700 94a3 * * 94a3 * * 94a3 -15094 * * * * * * * e701 f0a4a785,ee9c81 d852ddc5,e701 000249c5,0000e701 94a4 * * 94a4 * * 94a4 -15095 * * * * * * * e702 f0a4a3b3,ee9c82 d852dcf3,e702 000248f3,0000e702 94a5 * * 94a5 * * 94a5 -15096 * * * * * * * 91fa e987ba,ee9c83 91fa,e703 000091fa,0000e703 94a6 * * 94a6 * * 94a6 -15097 * * * * * * * 5732 e59cb2,ee9c84 5732,e704 00005732,0000e704 94a7 * * 94a7 * * 94a7 -15098 * * * * * * * 9342 e98d82,ee9c85 9342,e705 00009342,0000e705 94a8 * * 94a8 * * 94a8 -15099 * * * * * * * e706 f0a8aba3,ee9c86 d862dee3,e706 00028ae3,0000e706 94a9 * * 94a9 * * 94a9 -15100 * * * * * * * e707 f0a1a1a4,ee9c87 d846dc64,e707 00021864,0000e707 94aa * * 94aa * * 94aa -15101 * * * * * * * 50df e5839f,ee9c88 50df,e708 000050df,0000e708 94ab * * 94ab * * 94ab -15102 * * * * * * * e709 f0a588a1,ee9c89 d854de21,e709 00025221,0000e709 94ac * * 94ac * * 94ac -15103 * * * * * * * e70a f0a587a7,ee9c8a d854dde7,e70a 000251e7,0000e70a 94ad * * 94ad * * 94ad -15104 * * * * * * * 7778 e79db8,ee9c8b 7778,e70b 00007778,0000e70b 94ae * * 94ae * fbf4 94ae -15105 * * * * * * * e70c f0a388b2,ee9c8c d84cde32,e70c 00023232,0000e70c 94af * * 94af * * 94af -15106 * * * * * * * 770e e79c8e,ee9c8d 770e,e70d 0000770e,0000e70d 94b0 * * 94b0 * * 94b0 -15107 * * * * * * * 770f e79c8f,ee9c8e 770f,e70e 0000770f,0000e70e 94b1 * * 94b1 * * 94b1 -15108 * * * * * * * 777b e79dbb,ee9c8f 777b,e70f 0000777b,0000e70f 94b2 * * 94b2 * * 94b2 -15109 * * * * * * * e710 f0a49a97,ee9c90 d851de97,e710 00024697,0000e710 94b3 * * 94b3 * * 94b3 -15110 * * * * * * * e711 f0a39e81,ee9c91 d84ddf81,e711 00023781,0000e711 94b4 * * 94b4 * * 94b4 -15111 * * * * * * * 3a5e e3a99e,ee9c92 3a5e,e712 00003a5e,0000e712 94b5 * * 94b5 * * 94b5 -15112 * * * * * * * e713 f0a4a3b0,ee9c93 d852dcf0,e713 000248f0,0000e713 94b6 * * 94b6 * * 94b6 -15113 * * * * * * * 7438 e790b8,ee9c94 7438,e714 00007438,0000e714 94b7 * * 94b7 * * 94b7 -15114 * * * * * * * 749b e7929b,ee9c95 749b,e715 0000749b,0000e715 94b8 * * 94b8 * * 94b8 -15115 * * * * * * * 3ebf e3babf,ee9c96 3ebf,e716 00003ebf,0000e716 94b9 * * 94b9 * * 94b9 -15116 * * * * * * * e717 f0a4aaba,ee9c97 d852deba,e717 00024aba,0000e717 94ba * * 94ba * * 94ba -15117 * * * * * * * e718 f0a4ab87,ee9c98 d852dec7,e718 00024ac7,0000e718 94bb * * 94bb * * 94bb -15118 * * * * * * * 40c8 e48388,ee9c99 40c8,e719 000040c8,0000e719 94bc * * 94bc * fbfe 94bc -15119 * * * * * * * e71a f0a4aa96,ee9c9a d852de96,e71a 00024a96,0000e71a 94bd * * 94bd * * 94bd -15120 * * * * * * * e71b f0a686ae,ee9c9b d858ddae,e71b 000261ae,0000e71b 94be * * 94be * * 94be -15121 * * * * * * * 9307 e98c87,ee9c9c 9307,e71c 00009307,0000e71c 94bf * * 94bf * * 94bf -15122 * * * * * * * e71d f0a59681,ee9c9d d855dd81,e71d 00025581,0000e71d 94c0 * * 94c0 * * 94c0 -15123 * * * * * * * 781e e7a09e,ee9c9e 781e,e71e 0000781e,0000e71e 94c1 * * 94c1 * * 94c1 -15124 * * * * * * * 788d e7a28d,ee9c9f 788d,e71f 0000788d,0000e71f 94c2 faef 925b 94c2 c878 fbfb 94c2 -15125 * * * * * * * 7888 e7a288,ee9ca0 7888,e720 00007888,0000e720 94c3 * * 94c3 * * 94c3 -15126 * * * * * * * 78d2 e7a392,ee9ca1 78d2,e721 000078d2,0000e721 94c4 * * 94c4 * * 94c4 -15127 * * * * * * * 73d0 e78f90,ee9ca2 73d0,e722 000073d0,0000e722 94c5 * * 94c5 * fbdd 94c5 -15128 * * * * * * * 7959 e7a599,ee9ca3 7959,e723 00007959,0000e723 94c6 * * 94c6 * * 94c6 -15129 * * * * * * * e724 f0a79d81,ee9ca4 d85ddf41,e724 00027741,0000e724 94c7 * * 94c7 * * 94c7 -15130 * * * * * * * e725 f0a59ba3,ee9ca5 d855dee3,e725 000256e3,0000e725 94c8 * * 94c8 * * 94c8 -15131 * * * * * * * 410e e4848e,ee9ca6 410e,e726 0000410e,0000e726 94c9 * * 94c9 * * 94c9 -15132 * * * * * * * * * * * * * * 94ca * * * -15133 * * * * * * * 8496 * * * * * * 94cb * * * -15134 * * * * * * * 79a5 e7a6a5,ee9ca9 79a5,e729 000079a5,0000e729 94cc * * 94cc * * 94cc -15135 * * * * * * * 6a2d e6a8ad,ee9caa 6a2d,e72a 00006a2d,0000e72a 94cd * * 94cd * * 94cd -15136 * * * * * * * e72b f0a3bbba,ee9cab d84fdefa,e72b 00023efa,0000e72b 94ce * * 94ce * * 94ce -15137 * * * * * * * 7a3a e7a8ba,ee9cac 7a3a,e72c 00007a3a,0000e72c 94cf * * 94cf * * 94cf -15138 * * * * * * * 79f4 e7a7b4,ee9cad 79f4,e72d 000079f4,0000e72d 94d0 * * 94d0 * * 94d0 -15139 * * * * * * * 416e e485ae,ee9cae 416e,e72e 0000416e,0000e72e 94d1 * * 94d1 * * 94d1 -15140 * * * * * * * e72f f0a19ba6,ee9caf d845dee6,e72f 000216e6,0000e72f 94d2 * * 94d2 * * 94d2 -15141 * * * * * * * 4132 e484b2,ee9cb0 4132,e730 00004132,0000e730 94d3 * * 94d3 * * 94d3 -15142 * * * * * * * 9235 e988b5,ee9cb1 9235,e731 00009235,0000e731 94d4 * * 94d4 * * 94d4 -15143 * * * * * * * 79f1 e7a7b1,ee9cb2 79f1,e732 000079f1,0000e732 94d5 * * 94d5 * * 94d5 -15144 * * * * * * * e733 f0a0b58c,ee9cb3 d843dd4c,e733 00020d4c,0000e733 94d6 * * 94d6 * * 94d6 -15145 * * * * * * * e734 f0a4a68c,ee9cb4 d852dd8c,e734 0002498c,0000e734 94d7 * * 94d7 * * 94d7 -15146 * * * * * * * e735 f0a08a99,ee9cb5 d840de99,e735 00020299,0000e735 94d8 * * 94d8 * * 94d8 -15147 * * * * * * * e736 f0a3b6ba,ee9cb6 d84fddba,e736 00023dba,0000e736 94d9 * * 94d9 * * 94d9 -15148 * * * * * * * e737 f0a19dae,ee9cb7 d845df6e,e737 0002176e,0000e737 94da * * 94da * * 94da -15149 * * * * * * * 3597 e39697,ee9cb8 3597,e738 00003597,0000e738 94db * * 94db * * 94db -15150 * * * * * * * 556b e595ab,ee9cb9 556b,e739 0000556b,0000e739 94dc fa6e 9179 94dc c774 faae 94dc -15151 * * * * * * * 3570 e395b0,ee9cba 3570,e73a 00003570,0000e73a 94dd * * 94dd * * 94dd -15152 * * * * * * * 36aa e39aaa,ee9cbb 36aa,e73b 000036aa,0000e73b 94de * * 94de * * 94de -15153 * * * * * * * e73c f0a08794,ee9cbc d840ddd4,e73c 000201d4,0000e73c 94df * * 94df * * 94df -15154 * * * * * * * e73d f0a0b08d,ee9cbd d843dc0d,e73d 00020c0d,0000e73d 94e0 * * 94e0 * * 94e0 -15155 * * * * * * * 7ae2 e7aba2,ee9cbe 7ae2,e73e 00007ae2,0000e73e 94e1 * * 94e1 * * 94e1 -15156 * * * * * * * 5a59 e5a999,ee9cbf 5a59,e73f 00005a59,0000e73f 94e2 * * 94e2 * * 94e2 -15157 * * * * * * * e740 f0a29bb5,ee9d80 d849def5,e740 000226f5,0000e740 94e3 * * 94e3 * * 94e3 -15158 * * * * * * * e741 f0a5aaaf,ee9d81 d856deaf,e741 00025aaf,0000e741 94e4 * * 94e4 * * 94e4 -15159 * * * * * * * e742 f0a5aa9c,ee9d82 d856de9c,e742 00025a9c,0000e742 94e5 * * 94e5 * * 94e5 -15160 * * * * * * * 5a0d e5a88d,ee9d83 5a0d,e743 00005a0d,0000e743 94e6 * * 94e6 * * 94e6 -15161 * * * * * * * e744 f0a0899b,ee9d84 d840de5b,e744 0002025b,0000e744 94e7 * * 94e7 * * 94e7 -15162 * * * * * * * 78f0 e7a3b0,ee9d85 78f0,e745 000078f0,0000e745 94e8 * * 94e8 * * 94e8 -15163 * * * * * * * 5a2a e5a8aa,ee9d86 5a2a,e746 00005a2a,0000e746 94e9 * * 94e9 * * 94e9 -15164 * * * * * * * e747 f0a5af86,ee9d87 d856dfc6,e747 00025bc6,0000e747 94ea * * 94ea * * 94ea -15165 * * * * * * * 7afe e7abbe,ee9d88 7afe,e748 00007afe,0000e748 94eb * * 94eb * * 94eb -15166 * * * * * * * 41f9 e487b9,ee9d89 41f9,e749 000041f9,0000e749 94ec * * 94ec * * 94ec -15167 * * * * * * * 7c5d e7b19d,ee9d8a 7c5d,e74a 00007c5d,0000e74a 94ed fda3 9068 94ed * * 94ed -15168 * * * * * * * 7c6d e7b1ad,ee9d8b 7c6d,e74b 00007c6d,0000e74b 94ee * * 94ee * * 94ee -15169 * * * * * * * 4211 e48891,ee9d8c 4211,e74c 00004211,0000e74c 94ef * * 94ef * * 94ef -15170 * * * * * * * e74d f0a5aeb3,ee9d8d d856dfb3,e74d 00025bb3,0000e74d 94f0 * * 94f0 * * 94f0 -15171 * * * * * * * e74e f0a5babc,ee9d8e d857debc,e74e 00025ebc,0000e74e 94f1 * * 94f1 * * 94f1 -15172 * * * * * * * e74f f0a5baa6,ee9d8f d857dea6,e74f 00025ea6,0000e74f 94f2 * * 94f2 * * 94f2 -15173 * * * * * * * 7ccd e7b38d,ee9d90 7ccd,e750 00007ccd,0000e750 94f3 fac6 * 94f3 c8a5 fc55 94f3 -15174 * * * * * * * e751 f0a4a7b9,ee9d91 d852ddf9,e751 000249f9,0000e751 94f4 * * 94f4 * * 94f4 -15175 * * * * * * * e752 f0a19eb0,ee9d92 d845dfb0,e752 000217b0,0000e752 94f5 * * 94f5 * * 94f5 -15176 * * * * * * * 7c8e e7b28e,ee9d93 7c8e,e753 00007c8e,0000e753 94f6 * * 94f6 * * 94f6 -15177 * * * * * * * 7c7c e7b1bc,ee9d94 7c7c,e754 00007c7c,0000e754 94f7 * * 94f7 * * 94f7 -15178 * * * * * * * 7cae e7b2ae,ee9d95 7cae,e755 00007cae,0000e755 94f8 fafe * 94f8 c8a4 fc53 94f8 -15179 * * * * * * * 6ab2 e6aab2,ee9d96 6ab2,e756 00006ab2,0000e756 94f9 fcc4 91c9 94f9 * * 94f9 -15180 * * * * * * * 7ddc e7b79c,ee9d97 7ddc,e757 00007ddc,0000e757 94fa fdb2 8e5d 94fa * * 94fa -15181 * * * * * * * 7e07 e7b887,ee9d98 7e07,e758 00007e07,0000e758 94fb * * 94fb * * 94fb -15182 * * * * * * * 7dd3 e7b793,ee9d99 7dd3,e759 00007dd3,0000e759 94fc * * 94fc * * 94fc -15183 * * * * * * * 7f4e e7bd8e,ee9d9a 7f4e,e75a 00007f4e,0000e75a 94fd fb5a,fdb7 9072 94fd c8ac fc60 94fd -15184 * * * * * * * e75b f0a689a1,ee9d9b d858de61,e75b 00026261,0000e75b 94fe * * 94fe * * 94fe -15185 * * * * * * * e75c f0a6859c,ee9d9c d858dd5c,e75c 0002615c,0000e75c 9540 * * 9540 * * 9540 -15186 * * * * * * * e75d f0a7ad88,ee9d9d d85edf48,e75d 00027b48,0000e75d 9541 * * 9541 * * 9541 -15187 * * * * * * * 7d97 e7b697,ee9d9e 7d97,e75e 00007d97,0000e75e 9542 * * 9542 * * 9542 -15188 * * * * * * * e75f f0a5ba82,ee9d9f d857de82,e75f 00025e82,0000e75f 9543 * * 9543 * * 9543 -15189 * * * * * * * 426a e489aa,ee9da0 426a,e760 0000426a,0000e760 9544 * * 9544 * * 9544 -15190 * * * * * * * e761 f0a6adb5,ee9da1 d85adf75,e761 00026b75,0000e761 9545 * * 9545 * * 9545 -15191 * * * * * * * e762 f0a0a496,ee9da2 d842dd16,e762 00020916,0000e762 9546 * * 9546 * * 9546 -15192 * * * * * * * 67d6 e69f96,ee9da3 67d6,e763 000067d6,0000e763 9547 * * 9547 * * 9547 -15193 * * * * * * * e764 f0a0818e,ee9da4 d840dc4e,e764 0002004e,0000e764 9548 * * 9548 * * 9548 -15194 * * * * * * * e765 f0a3978f,ee9da5 d84dddcf,e765 000235cf,0000e765 9549 * * 9549 * * 9549 -15195 * * * * * * * 57c4 e59f84,ee9da6 57c4,e766 000057c4,0000e766 954a * * 954a * * 954a -15196 * * * * * * * e767 f0a69092,ee9da7 d859dc12,e767 00026412,0000e767 954b * * 954b * * 954b -15197 * * * * * * * e768 f0a68fb8,ee9da8 d858dff8,e768 000263f8,0000e768 954c * * 954c * * 954c -15198 * * * * * * * 7fdd e7bf9d,ee9daa 7fdd,e76a 00007fdd,0000e76a 954e * * 954e * * 954e -15199 * * * * * * * 7b27 e7aca7,ee9dab 7b27,e76b 00007b27,0000e76b 954f * * 954f * * 954f -15200 * * * * * * * e76c f0a0a0ac,ee9dac d842dc2c,e76c 0002082c,0000e76c 9550 * * 9550 * * 9550 -15201 * * * * * * * e76d f0a5aba9,ee9dad d856dee9,e76d 00025ae9,0000e76d 9551 * * 9551 * * 9551 -15202 * * * * * * * e76e f0a5b583,ee9dae d857dd43,e76e 00025d43,0000e76e 9552 * * 9552 * * 9552 -15203 * * * * * * * 7b0c e7ac8c,ee9daf 7b0c,e76f 00007b0c,0000e76f 9553 * * 9553 * * 9553 -15204 * * * * * * * e770 f0a5b88e,ee9db0 d857de0e,e770 00025e0e,0000e770 9554 * * 9554 * * 9554 -15205 * * * * * * * 99e6 e9a7a6,ee9db1 99e6,e771 000099e6,0000e771 9555 * * 9555 * * 9555 -15206 * * * * * * * 8645 e89985,ee9db2 8645,e772 00008645,0000e772 9556 * * 9556 * * 9556 -15207 * * * * * * * 9a63 e9a9a3,ee9db3 9a63,e773 00009a63,0000e773 9557 * * 9557 * * 9557 -15208 * * * * * * * 6a1c e6a89c,ee9db4 6a1c,e774 00006a1c,0000e774 9558 * * 9558 * * 9558 -15209 * * * * * * * e775 f0a390bf,ee9db5 d84ddc3f,e775 0002343f,0000e775 9559 * * 9559 * * 9559 -15210 * * * * * * * e777 f0a4a7b7,ee9db7 d852ddf7,e777 000249f7,0000e777 955b * * 955b * * 955b -15211 * * * * * * * e778 f0a696ad,ee9db8 d859ddad,e778 000265ad,0000e778 955c * * 955c * * 955c -15212 * * * * * * * 9a1f e9a89f,ee9db9 9a1f,e779 00009a1f,0000e779 955d * * 955d * * 955d -15213 * * * * * * * e77a f0a696a0,ee9dba d859dda0,e77a 000265a0,0000e77a 955e * * 955e * * 955e -15214 * * * * * * * 8480 e89295 8495 00008495 * * * 955f * * * -15215 * * * * * * * e77c f0a784a7,ee9dbc d85cdd27,e77c 00027127,0000e77c 9560 * * 9560 * * 9560 -15216 * * * * * * * e77d f0a6b391,ee9dbd d85bdcd1,e77d 00026cd1,0000e77d 9561 * * 9561 * * 9561 -15217 * * * * * * * 44ea e493aa,ee9dbe 44ea,e77e 000044ea,0000e77e 9562 fb51 * 9562 c8b5 fc6c 9562 -15218 * * * * * * * 8137 e884b7,ee9dbf 8137,e77f 00008137,0000e77f 9563 faa3 * 9563 c841 fba1 9563 -15219 * * * * * * * 4402 e49082,ee9e80 4402,e780 00004402,0000e780 9564 * * 9564 * * 9564 -15220 * * * * * * * 80c6 e88386,ee9e81 80c6,e781 000080c6,0000e781 9565 fb48 8ec5 9565 c7fe fb7c 9565 -15221 * * * * * * * 8109 e88489,ee9e82 8109,e782 00008109,0000e782 9566 fdbd 8ec6 9566 c840 fb7d 9566 -15222 * * * * * * * 8142 e88582,ee9e83 8142,e783 00008142,0000e783 9567 * * 9567 * * 9567 -15223 * * * * * * * e784 f0a69eb4,ee9e84 d859dfb4,e784 000267b4,0000e784 9568 * * 9568 * * 9568 -15224 * * * * * * * 98c3 e9a383,ee9e85 98c3,e785 000098c3,0000e785 9569 * * 9569 * * 9569 -15225 * * * * * * * e786 f0a6a982,ee9e86 d85ade42,e786 00026a42,0000e786 956a * * 956a * * 956a -15226 * * * * * * * 8262 e889a2,ee9e87 8262,e787 00008262,0000e787 956b fdcc 8ec9 956b * * 956b -15227 * * * * * * * 8265 e889a5,ee9e88 8265,e788 00008265,0000e788 956c * * 956c * * 956c -15228 * * * * * * * e789 f0a6a991,ee9e89 d85ade51,e789 00026a51,0000e789 956d * * 956d * * 956d -15229 * * * * * * * 8453 e89193,ee9e8a 8453,e78a 00008453,0000e78a 956e * * 956e * * 956e -15230 * * * * * * * e78b f0a6b6a7,ee9e8b d85bdda7,e78b 00026da7,0000e78b 956f * * 956f * * 956f -15231 * * * * * * * 8610 e89890,ee9e8c 8610,e78c 00008610,0000e78c 9570 fdf9 90a6 9570 * * 9570 -15232 * * * * * * * e78d f0a7889b,ee9e8d d85cde1b,e78d 0002721b,0000e78d 9571 * * 9571 * * 9571 -15233 * * * * * * * 5a86 e5aa86,ee9e8e 5a86,e78e 00005a86,0000e78e 9572 * * 9572 * * 9572 -15234 * * * * * * * 417f e485bf,ee9e8f 417f,e78f 0000417f,0000e78f 9573 * * 9573 * * 9573 -15235 * * * * * * * e790 f0a1a180,ee9e90 d846dc40,e790 00021840,0000e790 9574 * * 9574 * * 9574 -15236 * * * * * * * 5b2b e5acab,ee9e91 5b2b,e791 00005b2b,0000e791 9575 * * 9575 * * 9575 -15237 * * * * * * * e792 f0a1a2a1,ee9e92 d846dca1,e792 000218a1,0000e792 9576 * * 9576 * * 9576 -15238 * * * * * * * 5ae4 e5aba4,ee9e93 5ae4,e793 00005ae4,0000e793 9577 * * 9577 * * 9577 -15239 * * * * * * * e794 f0a1a398,ee9e94 d846dcd8,e794 000218d8,0000e794 9578 * * 9578 * * 9578 -15240 * * * * * * * 86a0 e89aa0,ee9e95 86a0,e795 000086a0,0000e795 9579 * * 9579 * * 9579 -15241 * * * * * * * e796 f0afa6bc,ee9e96 d87eddbc,e796 0002f9bc,0000e796 957a * * 957a * * 957a -15242 * * * * * * * e797 f0a3b68f,ee9e97 d84fdd8f,e797 00023d8f,0000e797 957b * * 957b * * 957b -15243 * * * * * * * 882d e8a0ad,ee9e98 882d,e798 0000882d,0000e798 957c fdd9 8f5a 957c * * 957c -15244 * * * * * * * e799 f0a790a2,ee9e99 d85ddc22,e799 00027422,0000e799 957d * * 957d * * 957d -15245 * * * * * * * 5a02 e5a882,ee9e9a 5a02,e79a 00005a02,0000e79a 957e * * 957e * * 957e -15246 * * * * * * * 886e e8a1ae,ee9e9b 886e,e79b 0000886e,0000e79b 95a1 fddd 90b0 95a1 * fa46 95a1 -15247 * * * * * * * 4f45 e4bd85,ee9e9c 4f45,e79c 00004f45,0000e79c 95a2 * * 95a2 * * 95a2 -15248 * * * * * * * 8887 e8a287,ee9e9d 8887,e79d 00008887,0000e79d 95a3 * * 95a3 * * 95a3 -15249 * * * * * * * 88bf e8a2bf,ee9e9e 88bf,e79e 000088bf,0000e79e 95a4 * * 95a4 * * 95a4 -15250 * * * * * * * 88e6 e8a3a6,ee9e9f 88e6,e79f 000088e6,0000e79f 95a5 * * 95a5 * * 95a5 -15251 * * * * * * * 8965 e8a5a5,ee9ea0 8965,e7a0 00008965,0000e7a0 95a6 * * 95a6 * * 95a6 -15252 * * * * * * * 894d e8a58d,ee9ea1 894d,e7a1 0000894d,0000e7a1 95a7 fde4 8ef4 95a7 * * 95a7 -15253 * * * * * * * e7a2 f0a59a83,ee9ea2 d855de83,e7a2 00025683,0000e7a2 95a8 * * 95a8 * * 95a8 -15254 * * * * * * * 8954 e8a594,ee9ea3 8954,e7a3 00008954,0000e7a3 95a9 * * 95a9 * * 95a9 -15255 * * * * * * * e7a4 f0a79e85,ee9ea4 d85ddf85,e7a4 00027785,0000e7a4 95aa * * 95aa * * 95aa -15256 * * * * * * * e7a5 f0a79e84,ee9ea5 d85ddf84,e7a5 00027784,0000e7a5 95ab * * 95ab * * 95ab -15257 * * * * * * * e7a6 f0a8afb5,ee9ea6 d862dff5,e7a6 00028bf5,0000e7a6 95ac * * 95ac * * 95ac -15258 * * * * * * * e7a7 f0a8af99,ee9ea7 d862dfd9,e7a7 00028bd9,0000e7a7 95ad * * 95ad * * 95ad -15259 * * * * * * * e7a8 f0a8ae9c,ee9ea8 d862df9c,e7a8 00028b9c,0000e7a8 95ae * * 95ae * * 95ae -15260 * * * * * * * e7a9 f0a8a7b9,ee9ea9 d862ddf9,e7a9 000289f9,0000e7a9 95af * * 95af * * 95af -15261 * * * * * * * 3ead e3baad,ee9eaa 3ead,e7aa 00003ead,0000e7aa 95b0 * * 95b0 * * 95b0 -15262 * * * * * * * 84a3 e892a3,ee9eab 84a3,e7ab 000084a3,0000e7ab 95b1 * * 95b1 * * 95b1 -15263 * * * * * * * 46f5 e49bb5,ee9eac 46f5,e7ac 000046f5,0000e7ac 95b2 * * 95b2 * * 95b2 -15264 * * * * * * * 46cf e49b8f,ee9ead 46cf,e7ad 000046cf,0000e7ad 95b3 * * 95b3 * * 95b3 -15265 * * * * * * * 37f2 e39fb2,ee9eae 37f2,e7ae 000037f2,0000e7ae 95b4 * * 95b4 * * 95b4 -15266 * * * * * * * 8a3d e8a8bd,ee9eaf 8a3d,e7af 00008a3d,0000e7af 95b5 * * 95b5 * * 95b5 -15267 * * * * * * * 8a1c e8a89c,ee9eb0 8a1c,e7b0 00008a1c,0000e7b0 95b6 * * 95b6 * * 95b6 -15268 * * * * * * * e7b1 f0a99188,ee9eb1 d865dc48,e7b1 00029448,0000e7b1 95b7 * * 95b7 * * 95b7 -15269 * * * * * * * 5f4d e5bd8d,ee9eb2 5f4d,e7b2 00005f4d,0000e7b2 95b8 fc4e 91b2 95b8 c7df fb53 95b8 -15270 * * * * * * * 922b e988ab,ee9eb3 922b,e7b3 0000922b,0000e7b3 95b9 * * 95b9 * * 95b9 -15271 * * * * * * * e7b4 f0a48a84,ee9eb4 d850de84,e7b4 00024284,0000e7b4 95ba * * 95ba * * 95ba -15272 * * * * * * * 65d4 e69794,ee9eb5 65d4,e7b5 000065d4,0000e7b5 95bb * * 95bb * * 95bb -15273 * * * * * * * 7129 e784a9,ee9eb6 7129,e7b6 00007129,0000e7b6 95bc * * 95bc * * 95bc -15274 * * * * * * * 70c4 e78384,ee9eb7 70c4,e7b7 000070c4,0000e7b7 95bd * * 95bd * * 95bd -15275 * * * * * * * e7b8 f0a1a185,ee9eb8 d846dc45,e7b8 00021845,0000e7b8 95be * * 95be * * 95be -15276 * * * * * * * 9d6d e9b5ad,ee9eb9 9d6d,e7b9 00009d6d,0000e7b9 95bf * * 95bf * * 95bf -15277 * * * * * * * 8c9f e8b29f,ee9eba 8c9f,e7ba 00008c9f,0000e7ba 95c0 * * 95c0 * * 95c0 -15278 * * * * * * * 8ce9 e8b3a9,ee9ebb 8ce9,e7bb 00008ce9,0000e7bb 95c1 * * 95c1 * * 95c1 -15279 * * * * * * * e7bc f0a7b79c,ee9ebc d85fdddc,e7bc 00027ddc,0000e7bc 95c2 * * 95c2 * * 95c2 -15280 * * * * * * * 599a e5a69a,ee9ebd 599a,e7bd 0000599a,0000e7bd 95c3 * * 95c3 * * 95c3 -15281 * * * * * * * 77c3 e79f83,ee9ebe 77c3,e7be 000077c3,0000e7be 95c4 * * 95c4 * * 95c4 -15282 * * * * * * * 59f0 e5a7b0,ee9ebf 59f0,e7bf 000059f0,0000e7bf 95c5 * * 95c5 * * 95c5 -15283 * * * * * * * 36d4 e39b94,ee9f81 36d4,e7c1 000036d4,0000e7c1 95c7 * * 95c7 * * 95c7 -15284 * * * * * * * 8e2a e8b8aa,ee9f82 8e2a,e7c2 00008e2a,0000e7c2 95c8 faf4 * 95c8 c8c8 fcb2 95c8 -15285 * * * * * * * 8ea7 e8baa7,ee9f83 8ea7,e7c3 00008ea7,0000e7c3 95c9 fe58 90c0 95c9 * * 95c9 -15286 * * * * * * * e7c4 f0a4b089,ee9f84 d853dc09,e7c4 00024c09,0000e7c4 95ca * * 95ca * * 95ca -15287 * * * * * * * 8f30 e8bcb0,ee9f85 8f30,e7c5 00008f30,0000e7c5 95cb * * 95cb * * 95cb -15288 * * * * * * * 8f4a e8bd8a,ee9f86 8f4a,e7c6 00008f4a,0000e7c6 95cc * * 95cc * * 95cc -15289 * * * * * * * 42f4 e48bb4,ee9f87 42f4,e7c7 000042f4,0000e7c7 95cd * * 95cd * * 95cd -15290 * * * * * * * 6c58 e6b198,ee9f88 6c58,e7c8 00006c58,0000e7c8 95ce * * 95ce * * 95ce -15291 * * * * * * * 6fbb e6bebb,ee9f89 6fbb,e7c9 00006fbb,0000e7c9 95cf * * 95cf * * 95cf -15292 * * * * * * * e7ca f0a28ca1,ee9f8a d848df21,e7ca 00022321,0000e7ca 95d0 * * 95d0 * * 95d0 -15293 * * * * * * * 489b e4a29b,ee9f8b 489b,e7cb 0000489b,0000e7cb 95d1 * * 95d1 * * 95d1 -15294 * * * * * * * 6f79 e6bdb9,ee9f8c 6f79,e7cc 00006f79,0000e7cc 95d2 * * 95d2 * * 95d2 -15295 * * * * * * * 6e8b e6ba8b,ee9f8d 6e8b,e7cd 00006e8b,0000e7cd 95d3 * * 95d3 * * 95d3 -15296 * * * * * * * e7ce f0a19f9a,ee9f8e d845dfda,e7ce 000217da,0000e7ce 95d4 * * 95d4 * * 95d4 -15297 * * * * * * * 9be9 e9afa9,ee9f8f 9be9,e7cf 00009be9,0000e7cf 95d5 * * 95d5 * * 95d5 -15298 * * * * * * * 36b5 e39ab5,ee9f90 36b5,e7d0 000036b5,0000e7d0 95d6 * * 95d6 * * 95d6 -15299 * * * * * * * e7d1 f0a4a4af,ee9f91 d852dd2f,e7d1 0002492f,0000e7d1 95d7 * * 95d7 * * 95d7 -15300 * * * * * * * 90bb e982bb,ee9f92 90bb,e7d2 000090bb,0000e7d2 95d8 * * 95d8 * * 95d8 -15301 * * * * * * * * e4a2b4 48b4 000048b4 * * * 95d9 * * * -15302 * * * * * * * 5571 e595b1,ee9f94 5571,e7d4 00005571,0000e7d4 95da fa62 * 95da c775 faaf 95da -15303 * * * * * * * 4906 e4a486,ee9f95 4906,e7d5 00004906,0000e7d5 95db * * 95db * * 95db -15304 * * * * * * * 91bb e986bb,ee9f96 91bb,e7d6 000091bb,0000e7d6 95dc fe66 90cc 95dc * * 95dc -15305 * * * * * * * 9404 e99084,ee9f97 9404,e7d7 00009404,0000e7d7 95dd * * 95dd * * 95dd -15306 * * * * * * * e7d8 f0a8a98b,ee9f98 d862de4b,e7d8 00028a4b,0000e7d8 95de * * 95de * * 95de -15307 * * * * * * * 4062 e481a2,ee9f99 4062,e7d9 00004062,0000e7d9 95df * * 95df * * 95df -15308 * * * * * * * e7da f0a8abbc,ee9f9a d862defc,e7da 00028afc,0000e7da 95e0 * * 95e0 * * 95e0 -15309 * * * * * * * 9427 e990a7,ee9f9b 9427,e7db 00009427,0000e7db 95e1 fe78 90d5 95e1 c8df fcce 95e1 -15310 * * * * * * * e7dc f0a8b09d,ee9f9c d863dc1d,e7dc 00028c1d,0000e7dc 95e2 * * 95e2 * * 95e2 -15311 * * * * * * * e7dd f0a8b0bb,ee9f9d d863dc3b,e7dd 00028c3b,0000e7dd 95e3 * * 95e3 * * 95e3 -15312 * * * * * * * 84e5 e893a5,ee9f9e 84e5,e7de 000084e5,0000e7de 95e4 * * 95e4 * * 95e4 -15313 * * * * * * * 8a2b e8a8ab,ee9f9f 8a2b,e7df 00008a2b,0000e7df 95e5 * * 95e5 * * 95e5 -15314 * * * * * * * 9599 e99699,ee9fa0 9599,e7e0 00009599,0000e7e0 95e6 * * 95e6 * * 95e6 -15315 * * * * * * * 95a7 e996a7,ee9fa1 95a7,e7e1 000095a7,0000e7e1 95e7 fe7a 8ed9 95e7 * fcd2 95e7 -15316 * * * * * * * 9597 e99697,ee9fa2 9597,e7e2 00009597,0000e7e2 95e8 fe79 8edb 95e8 * * 95e8 -15317 * * * * * * * 9596 e99696,ee9fa3 9596,e7e3 00009596,0000e7e3 95e9 * * 95e9 * * 95e9 -15318 * * * * * * * e7e4 f0a8b4b4,ee9fa4 d863dd34,e7e4 00028d34,0000e7e4 95ea * * 95ea * * 95ea -15319 * * * * * * * 7445 e79185,ee9fa5 7445,e7e5 00007445,0000e7e5 95eb * * 95eb * * 95eb -15320 * * * * * * * 3ec2 e3bb82,ee9fa6 3ec2,e7e6 00003ec2,0000e7e6 95ec * * 95ec * * 95ec -15321 * * * * * * * e7e7 f0a4a3bf,ee9fa7 d852dcff,e7e7 000248ff,0000e7e7 95ed * * 95ed * * 95ed -15322 * * * * * * * e7e8 f0a4a982,ee9fa8 d852de42,e7e8 00024a42,0000e7e8 95ee * * 95ee * * 95ee -15323 * * * * * * * e7e9 f0a48faa,ee9fa9 d850dfea,e7e9 000243ea,0000e7e9 95ef * * 95ef * * 95ef -15324 * * * * * * * 3ee7 e3bba7,ee9faa 3ee7,e7ea 00003ee7,0000e7ea 95f0 * * 95f0 * * 95f0 -15325 * * * * * * * e7eb f0a388a5,ee9fab d84cde25,e7eb 00023225,0000e7eb 95f1 * * 95f1 * * 95f1 -15326 * * * * * * * 968f e99a8f,ee9fac 968f,e7ec 0000968f,0000e7ec 95f2 * * 95f2 * * 95f2 -15327 * * * * * * * e7ed f0a8bba7,ee9fad d863dee7,e7ed 00028ee7,0000e7ed 95f3 * * 95f3 * * 95f3 -15328 * * * * * * * e7ee f0a8b9a6,ee9fae d863de66,e7ee 00028e66,0000e7ee 95f4 * * 95f4 * * 95f4 -15329 * * * * * * * e7ef f0a8b9a5,ee9faf d863de65,e7ef 00028e65,0000e7ef 95f5 * * 95f5 * * 95f5 -15330 * * * * * * * 3ecc e3bb8c,ee9fb0 3ecc,e7f0 00003ecc,0000e7f0 95f6 * * 95f6 * * 95f6 -15331 * * * * * * * e7f1 f0a4a7ad,ee9fb1 d852dded,e7f1 000249ed,0000e7f1 95f7 * * 95f7 * * 95f7 -15332 * * * * * * * e7f2 f0a4a9b8,ee9fb2 d852de78,e7f2 00024a78,0000e7f2 95f8 * * 95f8 * * 95f8 -15333 * * * * * * * e7f3 f0a3bfae,ee9fb3 d84fdfee,e7f3 00023fee,0000e7f3 95f9 * * 95f9 * * 95f9 -15334 * * * * * * * 7412 e79092,ee9fb4 7412,e7f4 00007412,0000e7f4 95fa * * 95fa * * 95fa -15335 * * * * * * * 746b e791ab,ee9fb5 746b,e7f5 0000746b,0000e7f5 95fb * * 95fb * * 95fb -15336 * * * * * * * 3efc e3bbbc,ee9fb6 3efc,e7f6 00003efc,0000e7f6 95fc * * 95fc * * 95fc -15337 * * * * * * * 9741 e99d81,ee9fb7 9741,e7f7 00009741,0000e7f7 95fd * * 95fd * * 95fd -15338 * * * * * * * e7f8 f0a982b0,ee9fb8 d864dcb0,e7f8 000290b0,0000e7f8 95fe * * 95fe * * 95fe -15339 * * * * * * * 6847 e6a187,ee9fb9 6847,e7f9 00006847,0000e7f9 9640 * * 9640 * * 9640 -15340 * * * * * * * 4a1d e4a89d,ee9fba 4a1d,e7fa 00004a1d,0000e7fa 9641 * * 9641 * * 9641 -15341 * * * * * * * e7fb f0a98293,ee9fbb d864dc93,e7fb 00029093,0000e7fb 9642 * * 9642 * * 9642 -15342 * * * * * * * e7fc f0a59f9f,ee9fbc d855dfdf,e7fc 000257df,0000e7fc 9643 * * 9643 * * 9643 -15343 * * * * * * * 975d * * * * * * 9644 * * * -15344 * * * * * * * 9368 e98da8,ee9fbe 9368,e7fe 00009368,0000e7fe 9645 * * 9645 * * 9645 -15345 * * * * * * * e7ff f0a8a689,ee9fbf d862dd89,e7ff 00028989,0000e7ff 9646 * * 9646 * * 9646 -15346 * * * * * * * e800 f0a8b0a6,eea080 d863dc26,e800 00028c26,0000e800 9647 * * 9647 * * 9647 -15347 * * * * * * * e801 f0a8acaf,eea081 d862df2f,e801 00028b2f,0000e801 9648 * * 9648 * * 9648 -15348 * * * * * * * e802 f0a68ebe,eea082 d858dfbe,e802 000263be,0000e802 9649 * * 9649 * * 9649 -15349 * * * * * * * 92ba e98aba,eea083 92ba,e803 000092ba,0000e803 964a * * 964a * * 964a -15350 * * * * * * * 5b11 e5ac91,eea084 5b11,e804 00005b11,0000e804 964b * * 964b * * 964b -15351 * * * * * * * 8b69 e8ada9,eea085 8b69,e805 00008b69,0000e805 964c * * 964c * * 964c -15352 * * * * * * * 493c e4a4bc,eea086 493c,e806 0000493c,0000e806 964d * * 964d * * 964d -15353 * * * * * * * 73f9 e78fb9,eea087 73f9,e807 000073f9,0000e807 964e * * 964e * * 964e -15354 * * * * * * * e808 f0a4889b,eea088 d850de1b,e808 0002421b,0000e808 964f * * 964f * * 964f -15355 * * * * * * * 979b e99e9b,eea089 979b,e809 0000979b,0000e809 9650 * * 9650 * * 9650 -15356 * * * * * * * 9771 * * * * * 8efb 9651 * * * -15357 * * * * * * * 9938 e9a4b8,eea08b 9938,e80b 00009938,0000e80b 9652 fad6 * 9652 c8e5 fcdc 9652 -15358 * * * * * * * e80c f0a0bca6,eea08c d843df26,e80c 00020f26,0000e80c 9653 * * 9653 * * 9653 -15359 * * * * * * * 5dc1 e5b781,eea08d 5dc1,e80d 00005dc1,0000e80d 9654 * * 9654 * * 9654 -15360 * * * * * * * e80e f0a8af85,eea08e d862dfc5,e80e 00028bc5,0000e80e 9655 * * 9655 * * 9655 -15361 * * * * * * * e80f f0a4aab2,eea08f d852deb2,e80f 00024ab2,0000e80f 9656 * * 9656 * * 9656 -15362 * * * * * * * 981f e9a09f,eea090 981f,e810 0000981f,0000e810 9657 feb1 90e9 9657 * * 9657 -15363 * * * * * * * e811 f0a9939a,eea091 d865dcda,e811 000294da,0000e811 9658 * * 9658 * * 9658 -15364 * * * * * * * 92f6 e98bb6,eea092 92f6,e812 000092f6,0000e812 9659 * * 9659 c8dc fccb 9659 -15365 * * * * * * * e813 f0a99797,eea093 d865ddd7,e813 000295d7,0000e813 965a * * 965a * * 965a -15366 * * * * * * * 91e5 e987a5,eea094 91e5,e814 000091e5,0000e814 965b * * 965b * * 965b -15367 * * * * * * * 44c0 e49380,eea095 44c0,e815 000044c0,0000e815 965c * * 965c * * 965c -15368 * * * * * * * e816 f0a8ad90,eea096 d862df50,e816 00028b50,0000e816 965d * * 965d * * 965d -15369 * * * * * * * e817 f0a4a9a7,eea097 d852de67,e817 00024a67,0000e817 965e * * 965e * * 965e -15370 * * * * * * * e818 f0a8ada4,eea098 d862df64,e818 00028b64,0000e818 965f * * 965f * * 965f -15371 * * * * * * * 98dc e9a39c,eea099 98dc,e819 000098dc,0000e819 9660 feba 90ee 9660 * * 9660 -15372 * * * * * * * e81a f0a8a985,eea09a d862de45,e81a 00028a45,0000e81a 9661 * * 9661 * * 9661 -15373 * * * * * * * 3f00 e3bc80,eea09b 3f00,e81b 00003f00,0000e81b 9662 * * 9662 * * 9662 -15374 * * * * * * * 922a e988aa,eea09c 922a,e81c 0000922a,0000e81c 9663 fab5 * 9663 c8d8 fcc7 9663 -15375 * * * * * * * 4925 e4a4a5,eea09d 4925,e81d 00004925,0000e81d 9664 * * 9664 * * 9664 -15376 * * * * * * * 8414 e89094,eea09e 8414,e81e 00008414,0000e81e 9665 * * 9665 * * 9665 -15377 * * * * * * * 993b e9a4bb,eea09f 993b,e81f 0000993b,0000e81f 9666 febf 8f4d 9666 c8e6 fcdd 9666 -15378 * * * * * * * 994d e9a58d,eea0a0 994d,e820 0000994d,0000e820 9667 fb6a,fec2 8f44 9667 c8e7 fcde 9667 -15379 * * * * * * * e821 f0a7ac86,eea0a1 d85edf06,e821 00027b06,0000e821 9668 * * 9668 * * 9668 -15380 * * * * * * * 3dfd e3b7bd,eea0a2 3dfd,e822 00003dfd,0000e822 9669 * * 9669 * * 9669 -15381 * * * * * * * 999b * * * * * * 966a * * * -15382 * * * * * * * 4b6f e4adaf,eea0a4 4b6f,e824 00004b6f,0000e824 966b * * 966b * * 966b -15383 * * * * * * * 99aa e9a6aa,eea0a5 99aa,e825 000099aa,0000e825 966c * * 966c * * 966c -15384 * * * * * * * 9a5c e9a99c,eea0a6 9a5c,e826 00009a5c,0000e826 966d * * 966d * * 966d -15385 * * * * * * * e827 f0a8ada5,eea0a7 d862df65,e827 00028b65,0000e827 966e * * 966e * * 966e -15386 * * * * * * * e828 f0a5a388,eea0a8 d856dcc8,e828 000258c8,0000e828 966f * * 966f * * 966f -15387 * * * * * * * 6a8f e6aa8f,eea0a9 6a8f,e829 00006a8f,0000e829 9670 * * 9670 * * 9670 -15388 * * * * * * * 9a21 e9a8a1,eea0aa 9a21,e82a 00009a21,0000e82a 9671 * * 9671 * * 9671 -15389 * * * * * * * 5afe e5abbe,eea0ab 5afe,e82b 00005afe,0000e82b 9672 * * 9672 * * 9672 -15390 * * * * * * * 9a2f e9a8af,eea0ac 9a2f,e82c 00009a2f,0000e82c 9673 * * 9673 * * 9673 -15391 * * * * * * * e82d f0a9a3b1,eea0ad d866dcf1,e82d 000298f1,0000e82d 9674 * * 9674 * * 9674 -15392 * * * * * * * 4b90 e4ae90,eea0ae 4b90,e82e 00004b90,0000e82e 9675 * * 9675 * * 9675 -15393 * * * * * * * e82f f0a9a588,eea0af d866dd48,e82f 00029948,0000e82f 9676 * * 9676 * * 9676 -15394 * * * * * * * 99bc e9a6bc,eea0b0 99bc,e830 000099bc,0000e830 9677 * * 9677 * * 9677 -15395 * * * * * * * 4bbd e4aebd,eea0b1 4bbd,e831 00004bbd,0000e831 9678 * * 9678 * * 9678 -15396 * * * * * * * 4b97 e4ae97,eea0b2 4b97,e832 00004b97,0000e832 9679 * * 9679 * * 9679 -15397 * * * * * * * 937d e98dbd,eea0b3 937d,e833 0000937d,0000e833 967a * * 967a * * 967a -15398 * * * * * * * 5872 e5a1b2,eea0b4 5872,e834 00005872,0000e834 967b fb44 9246 967b c7c7 fae8 967b -15399 * * * * * * * e835 f0a18c82,eea0b5 d844df02,e835 00021302,0000e835 967c * * 967c * * 967c -15400 * * * * * * * 5822 e5a0a2,eea0b6 5822,e836 00005822,0000e836 967d * * 967d * * 967d -15401 * * * * * * * e837 f0a4a6b8,eea0b7 d852ddb8,e837 000249b8,0000e837 967e * * 967e * * 967e -15402 * * * * * * * e838 f0a193a8,eea0b8 d845dce8,e838 000214e8,0000e838 96a1 * * 96a1 * * 96a1 -15403 * * * * * * * 7844 e7a184,eea0b9 7844,e839 00007844,0000e839 96a2 * * 96a2 * * 96a2 -15404 * * * * * * * e83a f0a29c9f,eea0ba d849df1f,e83a 0002271f,0000e83a 96a3 * * 96a3 * * 96a3 -15405 * * * * * * * e83b f0a3b6b8,eea0bb d84fddb8,e83b 00023db8,0000e83b 96a4 * * 96a4 * * 96a4 -15406 * * * * * * * 68c5 e6a385,eea0bc 68c5,e83c 000068c5,0000e83c 96a5 * * 96a5 * * 96a5 -15407 * * * * * * * 3d7d e3b5bd,eea0bd 3d7d,e83d 00003d7d,0000e83d 96a6 * * 96a6 * * 96a6 -15408 * * * * * * * 9458 e99198,eea0be 9458,e83e 00009458,0000e83e 96a7 * * 96a7 * * 96a7 -15409 * * * * * * * 3927 e3a4a7,eea0bf 3927,e83f 00003927,0000e83f 96a8 * * 96a8 * * 96a8 -15410 * * * * * * * 6150 e68590,eea180 6150,e840 00006150,0000e840 96a9 * * 96a9 * * 96a9 -15411 * * * * * * * e841 f0a29e81,eea181 d849df81,e841 00022781,0000e841 96aa * * 96aa * * 96aa -15412 * * * * * * * e842 f0a2a5ab,eea182 d84add6b,e842 0002296b,0000e842 96ab * * 96ab * * 96ab -15413 * * * * * * * 6107 e68487,eea183 6107,e843 00006107,0000e843 96ac * * 96ac * * 96ac -15414 * * * * * * * 9c4f e9b18f,eea184 9c4f,e844 00009c4f,0000e844 96ad * * 96ad * * 96ad -15415 * * * * * * * 9c53 e9b193,eea185 9c53,e845 00009c53,0000e845 96ae * * 96ae * * 96ae -15416 * * * * * * * 9c7b e9b1bb,eea186 9c7b,e846 00009c7b,0000e846 96af * * 96af * * 96af -15417 * * * * * * * 9c35 e9b0b5,eea187 9c35,e847 00009c35,0000e847 96b0 fee3 9140 96b0 c8f4 fcf2 96b0 -15418 * * * * * * * 9c10 e9b090,eea188 9c10,e848 00009c10,0000e848 96b1 fee0 8ee5 96b1 * fcec 96b1 -15419 * * * * * * * 9b7f e9adbf,eea189 9b7f,e849 00009b7f,0000e849 96b2 * * 96b2 * * 96b2 -15420 * * * * * * * 9bcf e9af8f,eea18a 9bcf,e84a 00009bcf,0000e84a 96b3 * * 96b3 * fcea 96b3 -15421 * * * * * * * e84b f0a9b8ad,eea18b d867de2d,e84b 00029e2d,0000e84b 96b4 * * 96b4 * * 96b4 -15422 * * * * * * * 9b9f e9ae9f,eea18c 9b9f,e84c 00009b9f,0000e84c 96b5 * * 96b5 * * 96b5 -15423 * * * * * * * e84d f0aa87b5,eea18d d868ddf5,e84d 0002a1f5,0000e84d 96b6 * * 96b6 * * 96b6 -15424 * * * * * * * e84e f0aa83be,eea18e d868dcfe,e84e 0002a0fe,0000e84e 96b7 * * 96b7 * * 96b7 -15425 * * * * * * * 9d21 e9b4a1,eea18f 9d21,e84f 00009d21,0000e84f 96b8 * * 96b8 * * 96b8 -15426 * * * * * * * 4cae e4b2ae,eea190 4cae,e850 00004cae,0000e850 96b9 * * 96b9 * * 96b9 -15427 * * * * * * * e851 f0a48484,eea191 d850dd04,e851 00024104,0000e851 96ba * * 96ba * * 96ba -15428 * * * * * * * 9e18 e9b898,eea192 9e18,e852 00009e18,0000e852 96bb * * 96bb * * 96bb -15429 * * * * * * * 4cb0 e4b2b0,eea193 4cb0,e853 00004cb0,0000e853 96bc * * 96bc * * 96bc -15430 * * * * * * * 9d0c e9b48c,eea194 9d0c,e854 00009d0c,0000e854 96bd * * 96bd * * 96bd -15431 * * * * * * * e855 f0aa86b4,eea195 d868ddb4,e855 0002a1b4,0000e855 96be * * 96be * * 96be -15432 * * * * * * * e856 f0aa83ad,eea196 d868dced,e856 0002a0ed,0000e856 96bf * * 96bf * * 96bf -15433 * * * * * * * e857 f0aa83b3,eea197 d868dcf3,e857 0002a0f3,0000e857 96c0 * * 96c0 * * 96c0 -15434 * * * * * * * e858 f0a9a4af,eea198 d866dd2f,e858 0002992f,0000e858 96c1 * * 96c1 * * 96c1 -15435 * * * * * * * 9da5 e9b6a5,eea199 9da5,e859 00009da5,0000e859 96c2 * * 96c2 * * 96c2 -15436 * * * * * * * 84bd e892bd,eea19a 84bd,e85a 000084bd,0000e85a 96c3 fdf3 8ec8 96c3 * * 96c3 -15437 * * * * * * * e85b f0a6b892,eea19b d85bde12,e85b 00026e12,0000e85b 96c4 * * 96c4 * * 96c4 -15438 * * * * * * * e85c f0a6bf9f,eea19c d85bdfdf,e85c 00026fdf,0000e85c 96c5 * * 96c5 * * 96c5 -15439 * * * * * * * e85d f0a6ae82,eea19d d85adf82,e85d 00026b82,0000e85d 96c6 * * 96c6 * * 96c6 -15440 * * * * * * * 85fc e897bc,eea19e 85fc,e85e 000085fc,0000e85e 96c7 * * 96c7 * * 96c7 -15441 * * * * * * * 4533 e494b3,eea19f 4533,e85f 00004533,0000e85f 96c8 * * 96c8 * * 96c8 -15442 * * * * * * * e860 f0a6b6a4,eea1a0 d85bdda4,e860 00026da4,0000e860 96c9 * * 96c9 * * 96c9 -15443 * * * * * * * e861 f0a6ba84,eea1a1 d85bde84,e861 00026e84,0000e861 96ca * * 96ca * * 96ca -15444 * * * * * * * e862 f0a6b7b0,eea1a2 d85bddf0,e862 00026df0,0000e862 96cb * * 96cb * * 96cb -15445 * * * * * * * 8420 e890a0,eea1a3 8420,e863 00008420,0000e863 96cc fdf0 8f53 96cc * * 96cc -15446 * * * * * * * 85ee e897ae,eea1a4 85ee,e864 000085ee,0000e864 96cd * * 96cd * * 96cd -15447 * * * * * * * e865 f0a6b880,eea1a5 d85bde00,e865 00026e00,0000e865 96ce * * 96ce * * 96ce -15448 * * * * * * * e866 f0a39f97,eea1a6 d84ddfd7,e866 000237d7,0000e866 96cf * * 96cf * * 96cf -15449 * * * * * * * e867 f0a681a4,eea1a7 d858dc64,e867 00026064,0000e867 96d0 * * 96d0 * * 96d0 -15450 * * * * * * * 79e2 e7a7a2,eea1a8 79e2,e868 000079e2,0000e868 96d1 * * 96d1 * * 96d1 -15451 * * * * * * * e869 f0a3969c,eea1a9 d84ddd9c,e869 0002359c,0000e869 96d2 * * 96d2 * * 96d2 -15452 * * * * * * * e86a f0a39980,eea1aa d84dde40,e86a 00023640,0000e86a 96d3 * * 96d3 * * 96d3 -15453 * * * * * * * e86c f0a4a79e,eea1ac d852ddde,e86c 000249de,0000e86c 96d5 * * 96d5 * * 96d5 -15454 * * * * * * * 3d62 e3b5a2,eea1ad 3d62,e86d 00003d62,0000e86d 96d6 * * 96d6 * * 96d6 -15455 * * * * * * * 93db e98f9b,eea1ae 93db,e86e 000093db,0000e86e 96d7 * * 96d7 * * 96d7 -15456 * * * * * * * 92be e98abe,eea1af 92be,e86f 000092be,0000e86f 96d8 fb66,fe71 90d0 96d8 * * 96d8 -15457 * * * * * * * 9348 e98d88,eea1b0 9348,e870 00009348,0000e870 96d9 fe73 * 96d9 * * 96d9 -15458 * * * * * * * e871 f0a08abf,eea1b1 d840debf,e871 000202bf,0000e871 96da * * 96da * * 96da -15459 * * * * * * * 78b9 e7a2b9,eea1b2 78b9,e872 000078b9,0000e872 96db * * 96db * * 96db -15460 * * * * * * * 9277 e989b7,eea1b3 9277,e873 00009277,0000e873 96dc * * 96dc * * 96dc -15461 * * * * * * * 944d e9918d,eea1b4 944d,e874 0000944d,0000e874 96dd * * 96dd * * 96dd -15462 * * * * * * * 4fe4 e4bfa4,eea1b5 4fe4,e875 00004fe4,0000e875 96de fb79 8e66 96de * * 96de -15463 * * * * * * * 3440 e39180,eea1b6 3440,e876 00003440,0000e876 96df * * 96df * * 96df -15464 * * * * * * * 9064 e981a4,eea1b7 9064,e877 00009064,0000e877 96e0 * * 96e0 * * 96e0 -15465 * * * * * * * e878 f0a5959d,eea1b8 d855dd5d,e878 0002555d,0000e878 96e1 * * 96e1 * * 96e1 -15466 * * * * * * * 783d e7a0bd,eea1b9 783d,e879 0000783d,0000e879 96e2 * * 96e2 * * 96e2 -15467 * * * * * * * 7854 e7a194,eea1ba 7854,e87a 00007854,0000e87a 96e3 * * 96e3 * * 96e3 -15468 * * * * * * * 78b6 e7a2b6,eea1bb 78b6,e87b 000078b6,0000e87b 96e4 * * 96e4 * * 96e4 -15469 * * * * * * * 784b e7a18b,eea1bc 784b,e87c 0000784b,0000e87c 96e5 * * 96e5 * * 96e5 -15470 * * * * * * * e87d f0a19d97,eea1bd d845df57,e87d 00021757,0000e87d 96e6 * * 96e6 * * 96e6 -15471 * * * * * * * e87e f0a38789,eea1be d84cddc9,e87e 000231c9,0000e87e 96e7 * * 96e7 * * 96e7 -15472 * * * * * * * e87f f0a4a581,eea1bf d852dd41,e87f 00024941,0000e87f 96e8 * * 96e8 * * 96e8 -15473 * * * * * * * 369a e39a9a,eea280 369a,e880 0000369a,0000e880 96e9 * * 96e9 * * 96e9 -15474 * * * * * * * 4f72 e4bdb2,eea281 4f72,e881 00004f72,0000e881 96ea * * 96ea * * 96ea -15475 * * * * * * * 6fda e6bf9a,eea282 6fda,e882 00006fda,0000e882 96eb fcd9 8f6d 96eb * * 96eb -15476 * * * * * * * 6fd9 e6bf99,eea283 6fd9,e883 00006fd9,0000e883 96ec * * 96ec * * 96ec -15477 * * * * * * * * * * * * fcd8 8ff7 96ed * * * -15478 * * * * * * * 701e e7809e,eea284,eea285 701e,e884,e885 0000701e,0000e884,0000e885 96ed,96ee * * 96ee * * 96ed,96ee -15479 * * * * * * * 5414 e59094,eea286 5414,e886 00005414,0000e886 96ef fa4a 9178 96ef c765 fa79 96ef -15480 * * * * * * * e887 f0a486b5,eea287 d850ddb5,e887 000241b5,0000e887 96f0 * * 96f0 * * 96f0 -15481 * * * * * * * 57bb e59ebb,eea288 57bb,e888 000057bb,0000e888 96f1 * * 96f1 * * 96f1 -15482 * * * * * * * 58f3 e5a3b3,eea289 58f3,e889 000058f3,0000e889 96f2 fb42 9243 96f2 c7c2 fae2 96f2 -15483 * * * * * * * 578a e59e8a,eea28a 578a,e88a 0000578a,0000e88a 96f3 * * 96f3 * * 96f3 -15484 * * * * * * * 9d16 e9b496,eea28b 9d16,e88b 00009d16,0000e88b 96f4 * * 96f4 * * 96f4 -15485 * * * * * * * 57d7 e59f97,eea28c 57d7,e88c 000057d7,0000e88c 96f5 fa71 * 96f5 c7c3 fae3 96f5 -15486 * * * * * * * 7134 e784b4,eea28d 7134,e88d 00007134,0000e88d 96f6 fce0 91d2 96f6 * * 96f6 -15487 * * * * * * * 34af e392af,eea28e 34af,e88e 000034af,0000e88e 96f7 * * 96f7 * * 96f7 -15488 * * * * * * * e88f f0a486ac,eea28f d850ddac,e88f 000241ac,0000e88f 96f8 * * 96f8 * * 96f8 -15489 * * * * * * * 71eb e787ab,eea290 71eb,e890 000071eb,0000e890 96f9 * * 96f9 * * 96f9 -15490 * * * * * * * e891 f0a6b180,eea291 d85bdc40,e891 00026c40,0000e891 96fa * * 96fa * * 96fa -15491 * * * * * * * e892 f0a4be97,eea292 d853df97,e892 00024f97,0000e892 96fb * * 96fb * * 96fb -15492 * * * * * * * * * * * * * * 96fc * * * -15493 * * * * * * * e894 f0a19eb5,eea294 d845dfb5,e894 000217b5,0000e894 96fd * * 96fd c7cb faf0 96fd -15494 * * * * * * * e895 f0a8a989,eea295 d862de49,e895 00028a49,0000e895 96fe * * 96fe * * 96fe -15495 * * * * * * * 610c e6848c,eea296 610c,e896 0000610c,0000e896 9740 * * 9740 * * 9740 -15496 * * * * * * * 5ace e5ab8e,eea297 5ace,e897 00005ace,0000e897 9741 * * 9741 * * 9741 -15497 * * * * * * * 5a0b e5a88b,eea298 5a0b,e898 00005a0b,0000e898 9742 * * 9742 * * 9742 -15498 * * * * * * * 42bc e48abc,eea299 42bc,e899 000042bc,0000e899 9743 * * 9743 * * 9743 -15499 * * * * * * * e89a f0a49288,eea29a d851dc88,e89a 00024488,0000e89a 9744 * * 9744 * * 9744 -15500 * * * * * * * 372c e39cac,eea29b 372c,e89b 0000372c,0000e89b 9745 * * 9745 * * 9745 -15501 * * * * * * * 4b7b e4adbb,eea29c 4b7b,e89c 00004b7b,0000e89c 9746 * * 9746 * * 9746 -15502 * * * * * * * e89d f0a8a7bc,eea29d d862ddfc,e89d 000289fc,0000e89d 9747 * * 9747 * * 9747 -15503 * * * * * * * 93bb e98ebb,eea29e 93bb,e89e 000093bb,0000e89e 9748 * * 9748 * * 9748 -15504 * * * * * * * 93b8 e98eb8,eea29f 93b8,e89f 000093b8,0000e89f 9749 * * 9749 * * 9749 -15505 * * * * * * * e8a0 f0a1a396,eea2a0 d846dcd6,e8a0 000218d6,0000e8a0 974a * * 974a * * 974a -15506 * * * * * * * e8a1 f0a0bc9d,eea2a1 d843df1d,e8a1 00020f1d,0000e8a1 974b * * 974b * * 974b -15507 * * * * * * * 8472 e891b2,eea2a2 8472,e8a2 00008472,0000e8a2 974c * * 974c * * 974c -15508 * * * * * * * e8a3 f0a6b380,eea2a3 d85bdcc0,e8a3 00026cc0,0000e8a3 974d * * 974d * * 974d -15509 * * * * * * * e8a4 f0a19093,eea2a4 d845dc13,e8a4 00021413,0000e8a4 974e * * 974e * * 974e -15510 * * * * * * * e8a5 f0a48bba,eea2a5 d850defa,e8a5 000242fa,0000e8a5 974f * * 974f * * 974f -15511 * * * * * * * e8a6 f0a2b0a6,eea2a6 d84bdc26,e8a6 00022c26,0000e8a6 9750 * * 9750 * * 9750 -15512 * * * * * * * e8a7 f0a48f81,eea2a7 d850dfc1,e8a7 000243c1,0000e8a7 9751 * * 9751 * * 9751 -15513 * * * * * * * 5994 e5a694,eea2a8 5994,e8a8 00005994,0000e8a8 9752 * * 9752 * * 9752 -15514 * * * * * * * e8a9 f0a3b6b7,eea2a9 d84fddb7,e8a9 00023db7,0000e8a9 9753 * * 9753 * * 9753 -15515 * * * * * * * e8aa f0a69d81,eea2aa d859df41,e8aa 00026741,0000e8aa 9754 * * 9754 * * 9754 -15516 * * * * * * * 7da8 e7b6a8,eea2ab 7da8,e8ab 00007da8,0000e8ab 9755 * * 9755 * * 9755 -15517 * * * * * * * e8ac f0a6859b,eea2ac d858dd5b,e8ac 0002615b,0000e8ac 9756 * * 9756 * * 9756 -15518 * * * * * * * e8ad f0a682a4,eea2ad d858dca4,e8ad 000260a4,0000e8ad 9757 * * 9757 * * 9757 -15519 * * * * * * * e8ae f0a4a6b9,eea2ae d852ddb9,e8ae 000249b9,0000e8ae 9758 * * 9758 * * 9758 -15520 * * * * * * * e8af f0a4a68b,eea2af d852dd8b,e8af 0002498b,0000e8af 9759 * * 9759 * * 9759 -15521 * * * * * * * e8b0 f0a8a7ba,eea2b0 d862ddfa,e8b0 000289fa,0000e8b0 975a * * 975a * * 975a -15522 * * * * * * * 92e5 e98ba5,eea2b1 92e5,e8b1 000092e5,0000e8b1 975b * * 975b * * 975b -15523 * * * * * * * 73e2 e78fa2,eea2b2 73e2,e8b2 000073e2,0000e8b2 975c * * 975c * * 975c -15524 * * * * * * * 3ee9 e3bba9,eea2b3 3ee9,e8b3 00003ee9,0000e8b3 975d * * 975d * * 975d -15525 * * * * * * * 74b4 e792b4,eea2b4 74b4,e8b4 000074b4,0000e8b4 975e * * 975e * * 975e -15526 * * * * * * * e8b5 f0a8ada3,eea2b5 d862df63,e8b5 00028b63,0000e8b5 975f * * 975f * * 975f -15527 * * * * * * * e8b6 f0a1a29f,eea2b6 d846dc9f,e8b6 0002189f,0000e8b6 9760 * * 9760 * * 9760 -15528 * * * * * * * 3ee1 e3bba1,eea2b7 3ee1,e8b7 00003ee1,0000e8b7 9761 * * 9761 * * 9761 -15529 * * * * * * * e8b8 f0a4aab3,eea2b8 d852deb3,e8b8 00024ab3,0000e8b8 9762 * * 9762 * * 9762 -15530 * * * * * * * 6ad8 e6ab98,eea2b9 6ad8,e8b9 00006ad8,0000e8b9 9763 * * 9763 * * 9763 -15531 * * * * * * * 73f3 e78fb3,eea2ba 73f3,e8ba 000073f3,0000e8ba 9764 * * 9764 * * 9764 -15532 * * * * * * * 73fb e78fbb,eea2bb 73fb,e8bb 000073fb,0000e8bb 9765 * * 9765 * * 9765 -15533 * * * * * * * 3ed6 e3bb96,eea2bc 3ed6,e8bc 00003ed6,0000e8bc 9766 * * 9766 * * 9766 -15534 * * * * * * * e8bd f0a4a8be,eea2bd d852de3e,e8bd 00024a3e,0000e8bd 9767 * * 9767 * * 9767 -15535 * * * * * * * e8be f0a4aa94,eea2be d852de94,e8be 00024a94,0000e8be 9768 * * 9768 * * 9768 -15536 * * * * * * * e8bf f0a19f99,eea2bf d845dfd9,e8bf 000217d9,0000e8bf 9769 * * 9769 * * 9769 -15537 * * * * * * * e8c0 f0a4a9a6,eea380 d852de66,e8c0 00024a66,0000e8c0 976a * * 976a * * 976a -15538 * * * * * * * e8c1 f0a08ea7,eea381 d840dfa7,e8c1 000203a7,0000e8c1 976b * * 976b * * 976b -15539 * * * * * * * e8c2 f0a190a4,eea382 d845dc24,e8c2 00021424,0000e8c2 976c * * 976c * * 976c -15540 * * * * * * * e8c3 f0a4a7a5,eea383 d852dde5,e8c3 000249e5,0000e8c3 976d * * 976d * * 976d -15541 * * * * * * * 7448 e79188,eea384 7448,e8c4 00007448,0000e8c4 976e * * 976e * * 976e -15542 * * * * * * * e8c5 f0a4a496,eea385 d852dd16,e8c5 00024916,0000e8c5 976f * * 976f * * 976f -15543 * * * * * * * 70a5 e782a5,eea386 70a5,e8c6 000070a5,0000e8c6 9770 * * 9770 * * 9770 -15544 * * * * * * * e8c7 f0a4a5b6,eea387 d852dd76,e8c7 00024976,0000e8c7 9771 * * 9771 * * 9771 -15545 * * * * * * * 9284 e98a84,eea388 9284,e8c8 00009284,0000e8c8 9772 * * 9772 * * 9772 -15546 * * * * * * * 73e6 e78fa6,eea389 73e6,e8c9 000073e6,0000e8c9 9773 * * 9773 * * 9773 -15547 * * * * * * * 935f e98d9f,eea38a 935f,e8ca 0000935f,0000e8ca 9774 * * 9774 * * 9774 -15548 * * * * * * * e8cb f0a093be,eea38b d841dcfe,e8cb 000204fe,0000e8cb 9775 * * 9775 * * 9775 -15549 * * * * * * * 9331 e98cb1,eea38c 9331,e8cc 00009331,0000e8cc 9776 * * 9776 * * 9776 -15550 * * * * * * * e8cd f0a8ab8e,eea38d d862dece,e8cd 00028ace,0000e8cd 9777 * * 9777 * * 9777 -15551 * * * * * * * e8ce f0a8a896,eea38e d862de16,e8ce 00028a16,0000e8ce 9778 * * 9778 * * 9778 -15552 * * * * * * * 9386 e98e86,eea38f 9386,e8cf 00009386,0000e8cf 9779 * * 9779 * * 9779 -15553 * * * * * * * e8d0 f0a8afa7,eea390 d862dfe7,e8d0 00028be7,0000e8d0 977a * * 977a * * 977a -15554 * * * * * * * e8d1 f0a59795,eea391 d855ddd5,e8d1 000255d5,0000e8d1 977b * * 977b * * 977b -15555 * * * * * * * 4935 e4a4b5,eea392 4935,e8d2 00004935,0000e8d2 977c * * 977c * * 977c -15556 * * * * * * * e8d3 f0a8aa82,eea393 d862de82,e8d3 00028a82,0000e8d3 977d * * 977d * * 977d -15557 * * * * * * * 716b e785ab,eea394 716b,e8d4 0000716b,0000e8d4 977e * * 977e * * 977e -15558 * * * * * * * e8d5 f0a4a583,eea395 d852dd43,e8d5 00024943,0000e8d5 97a1 * * 97a1 * * 97a1 -15559 * * * * * * * e8d6 f0a0b3bf,eea396 d843dcff,e8d6 00020cff,0000e8d6 97a2 * * 97a2 * * 97a2 -15560 * * * * * * * 56a4 e59aa4,eea397 56a4,e8d7 000056a4,0000e8d7 97a3 fad9 * 97a3 c7bd fadb 97a3 -15561 * * * * * * * e8d8 f0a0989a,eea398 d841de1a,e8d8 0002061a,0000e8d8 97a4 * * 97a4 * * 97a4 -15562 * * * * * * * e8d9 f0a0afab,eea399 d842dfeb,e8d9 00020beb,0000e8d9 97a5 * * 97a5 * * 97a5 -15563 * * * * * * * e8da f0a0b2b8,eea39a d843dcb8,e8da 00020cb8,0000e8da 97a6 * * 97a6 * * 97a6 -15564 * * * * * * * 5502 e59482,eea39b 5502,e8db 00005502,0000e8db 97a7 fa7c * 97a7 c771 faab 97a7 -15565 * * * * * * * 79c4 e7a784,eea39c 79c4,e8dc 000079c4,0000e8dc 97a8 fb55,fd62 91f0 97a8 * * 97a8 -15566 * * * * * * * e8dd f0a19fba,eea39d d845dffa,e8dd 000217fa,0000e8dd 97a9 * * 97a9 * * 97a9 -15567 * * * * * * * 7dfe e7b7be,eea39e 7dfe,e8de 00007dfe,0000e8de 97aa * * 97aa * * 97aa -15568 * * * * * * * e8df f0a19b82,eea39f d845dec2,e8df 000216c2,0000e8df 97ab * * 97ab * * 97ab -15569 * * * * * * * e8e0 f0a4a990,eea3a0 d852de50,e8e0 00024a50,0000e8e0 97ac * * 97ac * * 97ac -15570 * * * * * * * e8e1 f0a1a192,eea3a1 d846dc52,e8e1 00021852,0000e8e1 97ad * * 97ad * * 97ad -15571 * * * * * * * 452e e494ae,eea3a2 452e,e8e2 0000452e,0000e8e2 97ae * * 97ae * * 97ae -15572 * * * * * * * 9401 e99081,eea3a3 9401,e8e3 00009401,0000e8e3 97af * * 97af * * 97af -15573 * * * * * * * 370a e39c8a,eea3a4 370a,e8e4 0000370a,0000e8e4 97b0 * * 97b0 * * 97b0 -15574 * * * * * * * e8e5 f0a8ab80,eea3a5 d862dec0,e8e5 00028ac0,0000e8e5 97b1 * * 97b1 * * 97b1 -15575 * * * * * * * e8e6 f0a4a6ad,eea3a6 d852ddad,e8e6 000249ad,0000e8e6 97b2 * * 97b2 * * 97b2 -15576 * * * * * * * 59b0 e5a6b0,eea3a7 59b0,e8e7 000059b0,0000e8e7 97b3 * * 97b3 * * 97b3 -15577 * * * * * * * e8e8 f0a1a2bf,eea3a8 d846dcbf,e8e8 000218bf,0000e8e8 97b4 * * 97b4 * * 97b4 -15578 * * * * * * * e8e9 f0a1a283,eea3a9 d846dc83,e8e9 00021883,0000e8e9 97b5 * * 97b5 * * 97b5 -15579 * * * * * * * e8ea f0a79284,eea3aa d85ddc84,e8ea 00027484,0000e8ea 97b6 * * 97b6 * * 97b6 -15580 * * * * * * * 5aa1 e5aaa1,eea3ab 5aa1,e8eb 00005aa1,0000e8eb 97b7 * * 97b7 * * 97b7 -15581 * * * * * * * 36e2 e39ba2,eea3ac 36e2,e8ec 000036e2,0000e8ec 97b8 * * 97b8 * * 97b8 -15582 * * * * * * * e8ed f0a3b59b,eea3ad d84fdd5b,e8ed 00023d5b,0000e8ed 97b9 * * 97b9 * * 97b9 -15583 * * * * * * * 36b0 e39ab0,eea3ae 36b0,e8ee 000036b0,0000e8ee 97ba * * 97ba * * 97ba -15584 * * * * * * * 925f e9899f,eea3af 925f,e8ef 0000925f,0000e8ef 97bb * * 97bb * * 97bb -15585 * * * * * * * 5a79 e5a9b9,eea3b0 5a79,e8f0 00005a79,0000e8f0 97bc * * 97bc * * 97bc -15586 * * * * * * * e8f1 f0a8aa81,eea3b1 d862de81,e8f1 00028a81,0000e8f1 97bd * * 97bd * * 97bd -15587 * * * * * * * e8f2 f0a1a1a2,eea3b2 d846dc62,e8f2 00021862,0000e8f2 97be * * 97be * * 97be -15588 * * * * * * * 9374 e98db4,eea3b3 9374,e8f3 00009374,0000e8f3 97bf * * 97bf * * 97bf -15589 * * * * * * * 3ccd e3b38d,eea3b4 3ccd,e8f4 00003ccd,0000e8f4 97c0 * * 97c0 * * 97c0 -15590 * * * * * * * e8f5 f0a0aab4,eea3b5 d842deb4,e8f5 00020ab4,0000e8f5 97c1 * * 97c1 * * 97c1 -15591 * * * * * * * 4a96 e4aa96,eea3b6 4a96,e8f6 00004a96,0000e8f6 97c2 * * 97c2 * * 97c2 -15592 * * * * * * * 398a e3a68a,eea3b7 398a,e8f7 0000398a,0000e8f7 97c3 * * 97c3 * * 97c3 -15593 * * * * * * * 50f4 e583b4,eea3b8 50f4,e8f8 000050f4,0000e8f8 97c4 * * 97c4 * * 97c4 -15594 * * * * * * * 3d69 e3b5a9,eea3b9 3d69,e8f9 00003d69,0000e8f9 97c5 * * 97c5 * * 97c5 -15595 * * * * * * * 3d4c e3b58c,eea3ba 3d4c,e8fa 00003d4c,0000e8fa 97c6 * * 97c6 * * 97c6 -15596 * * * * * * * e8fb f0a18e9c,eea3bb d844df9c,e8fb 0002139c,0000e8fb 97c7 * * 97c7 * * 97c7 -15597 * * * * * * * 7175 e785b5,eea3bc 7175,e8fc 00007175,0000e8fc 97c8 * * 97c8 * * 97c8 -15598 * * * * * * * 42fb e48bbb,eea3bd 42fb,e8fd 000042fb,0000e8fd 97c9 * * 97c9 * * 97c9 -15599 * * * * * * * e8fe f0a88898,eea3be d860de18,e8fe 00028218,0000e8fe 97ca * * 97ca * * 97ca -15600 * * * * * * * 6e0f e6b88f,eea3bf 6e0f,e8ff 00006e0f,0000e8ff 97cb * * 97cb * * 97cb -15601 * * * * * * * e900 f0a983a4,eea480 d864dce4,e900 000290e4,0000e900 97cc * * 97cc * * 97cc -15602 * * * * * * * 44eb e493ab,eea481 44eb,e901 000044eb,0000e901 97cd * * 97cd * * 97cd -15603 * * * * * * * 6d57 e6b597,eea482 6d57,e902 00006d57,0000e902 97ce * * 97ce * * 97ce -15604 * * * * * * * e903 f0a7b98f,eea483 d85fde4f,e903 00027e4f,0000e903 97cf * * 97cf * * 97cf -15605 * * * * * * * 7067 e781a7,eea484 7067,e904 00007067,0000e904 97d0 * * 97d0 c855 fbc4 97d0 -15606 * * * * * * * 6caf e6b2af,eea485 6caf,e905 00006caf,0000e905 97d1 * * 97d1 * * 97d1 -15607 * * * * * * * 3cd6 e3b396,eea486 3cd6,e906 00003cd6,0000e906 97d2 * * 97d2 * * 97d2 -15608 * * * * * * * e907 f0a3bfad,eea487 d84fdfed,e907 00023fed,0000e907 97d3 * * 97d3 * * 97d3 -15609 * * * * * * * e908 f0a3b8ad,eea488 d84fde2d,e908 00023e2d,0000e908 97d4 * * 97d4 * * 97d4 -15610 * * * * * * * 6e02 e6b882,eea489 6e02,e909 00006e02,0000e909 97d5 * * 97d5 * * 97d5 -15611 * * * * * * * 6f0c e6bc8c,eea48a 6f0c,e90a 00006f0c,0000e90a 97d6 * * 97d6 * * 97d6 -15612 * * * * * * * 3d6f e3b5af,eea48b 3d6f,e90b 00003d6f,0000e90b 97d7 * * 97d7 * * 97d7 -15613 * * * * * * * e90c f0a08fb5,eea48c d840dff5,e90c 000203f5,0000e90c 97d8 * * 97d8 * * 97d8 -15614 * * * * * * * 7551 e79591,eea48d 7551,e90d 00007551,0000e90d 97d9 fcdc 8ea4 97d9 * fbc6 97d9 -15615 * * * * * * * 36bc e39abc,eea48e 36bc,e90e 000036bc,0000e90e 97da * * 97da * * 97da -15616 * * * * * * * 34c8 e39388,eea48f 34c8,e90f 000034c8,0000e90f 97db * * 97db * * 97db -15617 * * * * * * * 4680 e49a80,eea490 4680,e910 00004680,0000e910 97dc * * 97dc * * 97dc -15618 * * * * * * * 3eda e3bb9a,eea491 3eda,e911 00003eda,0000e911 97dd * * 97dd * * 97dd -15619 * * * * * * * 4871 e4a1b1,eea492 4871,e912 00004871,0000e912 97de * * 97de * * 97de -15620 * * * * * * * 59c4 e5a784,eea493 59c4,e913 000059c4,0000e913 97df * * 97df * * 97df -15621 * * * * * * * 926e e989ae,eea494 926e,e914 0000926e,0000e914 97e0 * * 97e0 * * 97e0 -15622 * * * * * * * 493e e4a4be,eea495 493e,e915 0000493e,0000e915 97e1 * * 97e1 * * 97e1 -15623 * * * * * * * 8f41 e8bd81,eea496 8f41,e916 00008f41,0000e916 97e2 * * 97e2 * * 97e2 -15624 * * * * * * * e917 f0a8b09c,eea497 d863dc1c,e917 00028c1c,0000e917 97e3 * * 97e3 * * 97e3 -15625 * * * * * * * e918 f0a6af80,eea498 d85adfc0,e918 00026bc0,0000e918 97e4 * * 97e4 * * 97e4 -15626 * * * * * * * 5812 e5a092,eea499 5812,e919 00005812,0000e919 97e5 * * 97e5 * * 97e5 -15627 * * * * * * * 57c8 e59f88,eea49a 57c8,e91a 000057c8,0000e91a 97e6 * * 97e6 * * 97e6 -15628 * * * * * * * 36d6 e39b96,eea49b 36d6,e91b 000036d6,0000e91b 97e7 * * 97e7 * * 97e7 -15629 * * * * * * * e91c f0a19192,eea49c d845dc52,e91c 00021452,0000e91c 97e8 * * 97e8 * * 97e8 -15630 * * * * * * * 70fe e783be,eea49d 70fe,e91d 000070fe,0000e91d 97e9 * * 97e9 * * 97e9 -15631 * * * * * * * e91e f0a48da2,eea49e d850df62,e91e 00024362,0000e91e 97ea * * 97ea * * 97ea -15632 * * * * * * * e91f f0a4a9b1,eea49f d852de71,e91f 00024a71,0000e91f 97eb * * 97eb * * 97eb -15633 * * * * * * * e920 f0a2bfa3,eea4a0 d84bdfe3,e920 00022fe3,0000e920 97ec * * 97ec * * 97ec -15634 * * * * * * * e921 f0a18ab0,eea4a1 d844deb0,e921 000212b0,0000e921 97ed * * 97ed * * 97ed -15635 * * * * * * * e922 f0a28ebd,eea4a2 d848dfbd,e922 000223bd,0000e922 97ee * * 97ee * * 97ee -15636 * * * * * * * 68b9 e6a2b9,eea4a3 68b9,e923 000068b9,0000e923 97ef * * 97ef * * 97ef -15637 * * * * * * * 6967 e6a5a7,eea4a4 6967,e924 00006967,0000e924 97f0 * * 97f0 * * 97f0 -15638 * * * * * * * e925 f0a18e98,eea4a5 d844df98,e925 00021398,0000e925 97f1 * * 97f1 * * 97f1 -15639 * * * * * * * e926 f0a393a5,eea4a6 d84ddce5,e926 000234e5,0000e926 97f2 * * 97f2 * * 97f2 -15640 * * * * * * * e927 f0a7afb4,eea4a7 d85edff4,e927 00027bf4,0000e927 97f3 * * 97f3 * * 97f3 -15641 * * * * * * * e928 f0a39b9f,eea4a8 d84ddedf,e928 000236df,0000e928 97f4 * * 97f4 * * 97f4 -15642 * * * * * * * e929 f0a8aa83,eea4a9 d862de83,e929 00028a83,0000e929 97f5 * * 97f5 * * 97f5 -15643 * * * * * * * e92a f0a39f96,eea4aa d84ddfd6,e92a 000237d6,0000e92a 97f6 * * 97f6 * * 97f6 -15644 * * * * * * * e92b f0a38fba,eea4ab d84cdffa,e92b 000233fa,0000e92b 97f7 * * 97f7 * * 97f7 -15645 * * * * * * * e92c f0a4b29f,eea4ac d853dc9f,e92c 00024c9f,0000e92c 97f8 * * 97f8 * * 97f8 -15646 * * * * * * * 6a1a e6a89a,eea4ad 6a1a,e92d 00006a1a,0000e92d 97f9 * * 97f9 * * 97f9 -15647 * * * * * * * e92e f0a39aad,eea4ae d84ddead,e92e 000236ad,0000e92e 97fa * * 97fa * * 97fa -15648 * * * * * * * e92f f0a6b2b7,eea4af d85bdcb7,e92f 00026cb7,0000e92f 97fb * * 97fb * * 97fb -15649 * * * * * * * 843e e890be,eea4b0 843e,e930 0000843e,0000e930 97fc * * 97fc * * 97fc -15650 * * * * * * * 44df e4939f,eea4b1 44df,e931 000044df,0000e931 97fd * * 97fd * * 97fd -15651 * * * * * * * 44ce e4938e,eea4b2 44ce,e932 000044ce,0000e932 97fe * * 97fe * * 97fe -15652 * * * * * * * e933 f0a6b4a6,eea4b3 d85bdd26,e933 00026d26,0000e933 9840 * * 9840 * * 9840 -15653 * * * * * * * e934 f0a6b591,eea4b4 d85bdd51,e934 00026d51,0000e934 9841 * * 9841 * * 9841 -15654 * * * * * * * e935 f0a6b282,eea4b5 d85bdc82,e935 00026c82,0000e935 9842 * * 9842 * * 9842 -15655 * * * * * * * e936 f0a6bf9e,eea4b6 d85bdfde,e936 00026fde,0000e936 9843 * * 9843 * * 9843 -15656 * * * * * * * * * * * * * * 9844 * * * -15657 * * * * * * * * * * * * * * 9845 * * * -15658 * * * * * * * 833d e88cbd,eea4b9 833d,e939 0000833d,0000e939 9846 * * 9846 * * 9846 -15659 * * * * * * * e93a f0a19cba,eea4ba d845df3a,e93a 0002173a,0000e93a 9847 * * 9847 * * 9847 -15660 * * * * * * * 83ed e88fad,eea4bb 83ed,e93b 000083ed,0000e93b 9848 * * 9848 * * 9848 -15661 * * * * * * * e93c f0a6b280,eea4bc d85bdc80,e93c 00026c80,0000e93c 9849 * * 9849 * * 9849 -15662 * * * * * * * e93d f0a78193,eea4bd d85cdc53,e93d 00027053,0000e93d 984a * * 984a * * 984a -15663 * * * * * * * e93e f0a19f9b,eea4be d845dfdb,e93e 000217db,0000e93e 984b * * 984b * * 984b -15664 * * * * * * * 5989 e5a689,eea4bf 5989,e93f 00005989,0000e93f 984c * * 984c * * 984c -15665 * * * * * * * 5a82 e5aa82,eea580 5a82,e940 00005a82,0000e940 984d * * 984d * * 984d -15666 * * * * * * * e941 f0a19eb3,eea581 d845dfb3,e941 000217b3,0000e941 984e * * 984e * * 984e -15667 * * * * * * * 5a61 e5a9a1,eea582 5a61,e942 00005a61,0000e942 984f * * 984f * * 984f -15668 * * * * * * * 5a71 e5a9b1,eea583 5a71,e943 00005a71,0000e943 9850 * * 9850 * * 9850 -15669 * * * * * * * e944 f0a1a485,eea584 d846dd05,e944 00021905,0000e944 9851 * * 9851 * * 9851 -15670 * * * * * * * e945 f0a487bc,eea585 d850ddfc,e945 000241fc,0000e945 9852 * * 9852 * * 9852 -15671 * * * * * * * 372d e39cad,eea586 372d,e946 0000372d,0000e946 9853 * * 9853 * * 9853 -15672 * * * * * * * 59ef e5a7af,eea587 59ef,e947 000059ef,0000e947 9854 * * 9854 * * 9854 -15673 * * * * * * * e948 f0a19cbc,eea588 d845df3c,e948 0002173c,0000e948 9855 * * 9855 * * 9855 -15674 * * * * * * * 36c7 e39b87,eea589 36c7,e949 000036c7,0000e949 9856 * * 9856 * * 9856 -15675 * * * * * * * 718e e7868e,eea58a 718e,e94a 0000718e,0000e94a 9857 * * 9857 * * 9857 -15676 * * * * * * * 9390 e98e90,eea58b 9390,e94b 00009390,0000e94b 9858 * * 9858 * * 9858 -15677 * * * * * * * 669a e69a9a,eea58c 669a,e94c 0000669a,0000e94c 9859 * * 9859 * * 9859 -15678 * * * * * * * e94d f0a48aa5,eea58d d850dea5,e94d 000242a5,0000e94d 985a * * 985a * * 985a -15679 * * * * * * * 5a6e e5a9ae,eea58e 5a6e,e94e 00005a6e,0000e94e 985b * * 985b * * 985b -15680 * * * * * * * 5a2b e5a8ab,eea58f 5a2b,e94f 00005a2b,0000e94f 985c * * 985c * * 985c -15681 * * * * * * * e950 f0a48a93,eea590 d850de93,e950 00024293,0000e950 985d * * 985d * * 985d -15682 * * * * * * * 6a2b e6a8ab,eea591 6a2b,e951 00006a2b,0000e951 985e fcc5 8ea6 985e * fbb4 985e -15683 * * * * * * * e952 f0a3bbb9,eea592 d84fdef9,e952 00023ef9,0000e952 985f * * 985f * * 985f -15684 * * * * * * * e953 f0a79cb6,eea593 d85ddf36,e953 00027736,0000e953 9860 * * 9860 * * 9860 -15685 * * * * * * * e954 f0a4919b,eea594 d851dc5b,e954 0002445b,0000e954 9861 * * 9861 * * 9861 -15686 * * * * * * * e955 f0a48b8a,eea595 d850deca,e955 000242ca,0000e955 9862 * * 9862 * * 9862 -15687 * * * * * * * 711d e7849d,eea596 711d,e956 0000711d,0000e956 9863 * * 9863 * * 9863 -15688 * * * * * * * e957 f0a48999,eea597 d850de59,e957 00024259,0000e957 9864 * * 9864 * * 9864 -15689 * * * * * * * e958 f0a8a7a1,eea598 d862dde1,e958 000289e1,0000e958 9865 * * 9865 * * 9865 -15690 * * * * * * * 4fb0 e4beb0,eea599 4fb0,e959 00004fb0,0000e959 9866 * * 9866 * * 9866 -15691 * * * * * * * e95a f0a6b4a8,eea59a d85bdd28,e95a 00026d28,0000e95a 9867 * * 9867 * * 9867 -15692 * * * * * * * 5cc2 e5b382,eea59b 5cc2,e95b 00005cc2,0000e95b 9868 * * 9868 * * 9868 -15693 * * * * * * * e95c f0a4938e,eea59c d851dcce,e95c 000244ce,0000e95c 9869 * * 9869 * * 9869 -15694 * * * * * * * e95d f0a7b98d,eea59d d85fde4d,e95d 00027e4d,0000e95d 986a * * 986a * * 986a -15695 * * * * * * * e95e f0a48ebd,eea59e d850dfbd,e95e 000243bd,0000e95e 986b * * 986b * * 986b -15696 * * * * * * * 6a0c e6a88c,eea59f 6a0c,e95f 00006a0c,0000e95f 986c * * 986c * * 986c -15697 * * * * * * * e960 f0a48996,eea5a0 d850de56,e960 00024256,0000e960 986d * * 986d * * 986d -15698 * * * * * * * e961 f0a18c84,eea5a1 d844df04,e961 00021304,0000e961 986e * * 986e * * 986e -15699 * * * * * * * 70a6 * * * * * * 986f * * * -15700 * * * * * * * 7133 e784b3,eea5a3 7133,e963 00007133,0000e963 9870 * * 9870 * * 9870 -15701 * * * * * * * e964 f0a48fa9,eea5a4 d850dfe9,e964 000243e9,0000e964 9871 * * 9871 * * 9871 -15702 * * * * * * * 3da5 e3b6a5,eea5a5 3da5,e965 00003da5,0000e965 9872 * * 9872 * * 9872 -15703 * * * * * * * 6cdf e6b39f,eea5a6 6cdf,e966 00006cdf,0000e966 9873 * * 9873 * * 9873 -15704 * * * * * * * e967 f0afa0a5,eea5a7 d87edc25,e967 0002f825,0000e967 9874 * * 9874 * * 9874 -15705 * * * * * * * 59eb e5a7ab,eea5aa 59eb,e96a 000059eb,0000e96a 9877 * * 9877 * * 9877 -15706 * * * * * * * 5f5c e5bd9c,eea5ad 5f5c,e96d 00005f5c,0000e96d 987a * * 987a * * 987a -15707 * * * * * * * e974 eea5b4,f0a38c80 d84cdf00,e974 0000e974,00023300 98a3 * * 98a3 * * 98a3 -15708 * * * * * * * 7cd3 e7b393,eea680 7cd3,e980 00007cd3,0000e980 98af fcf7 8e49 98af * * 98af -15709 * * * * * * * e987 eea687,f0a7abb4 d85edef4,e987 0000e987,00027af4 98b6 * * 98b6 * * 98b6 -15710 * * * * * * * e98a eea68a,f0a59bb6 d855def6,e98a 0000e98a,000256f6 98b9 * * 98b9 * * 98b9 -15711 * * * * * * * e98e f0a7ac98,eea68e d85edf18,e98e 00027b18,0000e98e 98bd * * 98bd * * 98bd -15712 * * * * * * * 906c e981ac,eea68f 906c,e98f 0000906c,0000e98f 98be * * 98be * * 98be -15713 * * * * * * * 81f6 e887b6,eea693 81f6,e993 000081f6,0000e993 98c2 fdc9 8eef 98c2 * * 98c2 -15714 * * * * * * * 770c e79c8c,eea695 770c,e995 0000770c,0000e995 98c4 * * 98c4 * * 98c4 -15715 * * * * * * * 6ca2 e6b2a2,eea697 6ca2,e997 00006ca2,0000e997 98c6 fafc 8fa3 98c6 c84e fbbb 98c6 -15716 * * * * * * * 56fd e59bbd,eea698 56fd,e998 000056fd,0000e998 98c7 fc57 8fb8 98c7 * * 98c7 -15717 * * * * * * * 5869 e5a1a9,eea6b4 5869,e9b4 00005869,0000e9b4 98e3 fbf0 8fd8 98e3 * * 98e3 -15718 * * * * * * * 6761 e69da1,eea6b8 6761,e9b8 00006761,0000e9b8 98e7 fcab 8e75 98e7 * * 98e7 -15719 * * * * * * * 5c5e e5b19e,eea6be 5c5e,e9be 00005c5e,0000e9be 98ed fbfe 8f78 98ed * * 98ed -15720 * * * * * * * 58f2 e5a3b2,eea781 58f2,e9c1 000058f2,0000e9c1 98f0 * * 98f0 * * 98f0 -15721 * * * * * * * 70b9 e782b9,eea783 70b9,e9c3 000070b9,0000e9c3 98f2 fcdf 8e7e 98f2 c856 fbc5 98f2 -15722 * * * * * * * 6803 e6a083,eea78d 6803,e9cd 00006803,0000e9cd 98fc fcad 8eb1 98fc * * 98fc -15723 * * * * * * * 8fbb eea793,e8bebb e9d3,8fbb 0000e9d3,00008fbb 9943 fe68 8ee2 9943 * * 9943 -15724 * * * * * * * 8fbc eea795,e8bebc e9d5,8fbc 0000e9d5,00008fbc 9945 fe69 8e41 9945 c8d2 fcbc 9945 -15725 * * * * * * * 4e21 e4b8a1,eea79f 4e21,e9df 00004e21,0000e9df 994f fa48 9164 994f c740 fa40 994f -15726 * * * * * * * 7b39 e7acb9,eea7ba 7b39,e9fa 00007b39,0000e9fa 996a fd76 8f5f 996a * * 996a -15727 * * * * * * * 3dcc e3b78c,eea7be 3dcc,e9fe 00003dcc,0000e9fe 996e fce1 91df,91ef 996e * * 996e -15728 * * * * * * * 732a e78caa,ee8a86,eea885 732a,e286,ea05 0000732a,0000e286,0000ea05 9975,fe52 fa76 * 9975 * * 9975,fe52 -15729 * * * * * * * 7560 e795a0,eea888 7560,ea08 00007560,0000ea08 9978 fd4a 8faa 9978 * * 9978 -15730 * * * * * * * 583a e5a0ba,eea890 583a,ea10 0000583a,0000ea10 99a2 fbeb 8ea2 99a2 c7c6 fae6 99a2 -15731 * * * * * * * 82a6 e88aa6,eea89c 82a6,ea1c 000082a6,0000ea1c 99ae fde8 8f5e 99ae * * 99ae -15732 * * * * * * * 698a e6a68a,eea8a4 698a,ea24 0000698a,0000ea24 99b6 fcc0 91c5 99b6 * * 99b6 -15733 * * * * * * * 60e3 e683a3,eea8a8 60e3,ea28 000060e3,0000ea28 99ba fc66 8fca 99ba * * 99ba -15734 * * * * * * * 4eee e4bbae,eea990 4eee,ea50 00004eee,0000ea50 99e2 fb74 8fe2 99e2 * * 99e2 -15735 * * * * * * * 99c4 e9a784,eea9a2 99c4,ea62 000099c4,0000ea62 99f4 fec4 8e40 99f4 * * 99f4 -15736 * * * * * * * 9ebf e9babf,eea9b7 9ebf,ea77 00009ebf,0000ea77 9a4a fef5 8eda 9a4a * * 9a4a -15737 * * * * * * * 5301 e58c81,eea9b9 5301,ea79 00005301,0000ea79 9a4c fbbd 8fa6 9a4c * * 9a4c -15738 * * * * * * * 67a0 e69ea0,eeaa86 67a0,ea86 000067a0,0000ea86 9a59 fcae 8e69 9a59 * * 9a59 -15739 * * * * * * * 60e8 e683a8,eeaa8e 60e8,ea8e 000060e8,0000ea8e 9a61 * * 9a61 * * 9a61 -15740 * * * * * * * 51b4 e586b4,eeaa95 51b4,ea95 000051b4,0000ea95 9a68 fbb8 8e7d 9a68 * * 9a68 -15741 * * * * * * * 7a83 e7aa83,eeaaa0 7a83,eaa0 00007a83,0000eaa0 9a73 * * 9a73 * fc49 9a73 -15742 * * * * * * * 9c3a e9b0ba,eeaaab 9c3a,eaab 00009c3a,0000eaab 9a7e fee4 9142 9a7e c8f3 fcf0 9a7e -15743 * * * * * * * 7ac8 e7ab88,eeaabd 7ac8,eabd 00007ac8,0000eabd 9ab2 fef9 8e51 9ab2 * * 9ab2 -15744 * * * * * * * 691a e6a49a,eeab82 691a,eac2 0000691a,0000eac2 9ab7 fcb5 8fd0 9ab7 * * 9ab7 -15745 * * * * * * * 59ac e5a6ac,eeab84 59ac,eac4 000059ac,0000eac4 9ab9 fbf5 924a 9ab9 * faed 9ab9 -15746 * * * * * * * 5840 e5a180,eeab86 5840,eac6 00005840,0000eac6 9abb fbee 8e6d 9abb * * 9abb -15747 * * * * * * * 546a e591aa,eeab92 546a,ead2 0000546a,0000ead2 9ac7 fbce 8f7c 9ac7 * faa3 9ac7 -15748 * * * * * * * 60e7 e683a7,eeab9b 60e7,eadb 000060e7,0000eadb 9ad0 fc62 905e 9ad0 * fb59 9ad0 -15749 * * * * * * * 567a e599ba,eeab9d 567a,eadd 0000567a,0000eadd 9ad2 fbe3 8fed 9ad2 * * 9ad2 -15750 * * * * * * * 6955 e6a595,eeaba4 6955,eae4 00006955,0000eae4 9ad9 fcb9 91ca 9ad9 * * 9ad9 -15751 * * * * * * * 9c2f e9b0af,eeaba5 9c2f,eae5 00009c2f,0000eae5 9ada fedf 8ed8 9ada * * 9ada -15752 * * * * * * * 87a5 e89ea5,eeaba6 87a5,eae6 000087a5,0000eae6 9adb * * 9adb * * 9adb -15753 * * * * * * * 5c20 e5b0a0,eeabad 5c20,eaed 00005c20,0000eaed 9ae2 fbfc 905a 9ae2 * * 9ae2 -15754 * * * * * * * 5e0b e5b88b,eeabaf 5e0b,eaef 00005e0b,0000eaef 9ae4 fc48 8fd4 9ae4 * fb46 9ae4 -15755 * * * * * * * 671e e69c9e,eeabb3 671e,eaf3 0000671e,0000eaf3 9ae8 fcaa 904a 9ae8 * * 9ae8 -15756 * * * * * * * 84ad e892ad,eeabbd 84ad,eafd 000084ad,0000eafd 9af2 fdf4 8ede 9af2 * * 9af2 -15757 * * * * * * * 8b81 e8ae81,eeac81 8b81,eb01 00008b81,0000eb01 9af6 fe48 90b9 9af6 * * 9af6 -15758 * * * * * * * 4e78 e4b9b8,eeac86 4e78,eb06 00004e78,0000eb06 9afb fa5b * 9afb c84c fbb9 9afb -15759 * * * * * * * 62c3 e68b83,eeac90 62c3,eb10 000062c3,0000eb10 9b46 fa56 * 9b46 c7eb fb64 9b46 -15760 * * * * * * * 6855 e6a195,eeac94 6855,eb14 00006855,0000eb14 9b4a * * 9b4a * * 9b4a -15761 * * * * * * * 69e9 * * * * fcc3 91c4 9b4c * * * -15762 * * * * * * * 82fd e88bbd,eeac9e 82fd,eb1e 000082fd,0000eb1e 9b54 fdea 8ef2 9b54 * * 9b54 -15763 * * * * * * * 89a5 e8a6a5,eeaca2 89a5,eb22 000089a5,0000eb22 9b58 fb63,fe40 90b4 9b58 * fcaa 9b58 -15764 * * * * * * * 8fa0 e8bea0,eeaca4 8fa0,eb24 00008fa0,0000eb24 9b5a fdc8 90c3 9b5a * * 9b5a -15765 * * * * * * * 97b8 e99eb8,eeaca6 97b8,eb26 000097b8,0000eb26 9b5c feac 90e8 9b5c * * 9b5c -15766 * * * * * * * 9847 e9a187,eeaca8 9847,eb28 00009847,0000eb28 9b5e feb4 90eb 9b5e * * 9b5e -15767 * * * * * * * 9abd e9aabd,eeaca9 9abd,eb29 00009abd,0000eb29 9b5f fec9 9152 9b5f * * 9b5f -15768 * * * * * * * 5fb1 e5beb1,eeacba 5fb1,eb3a 00005fb1,0000eb3a 9b70 * * 9b70 * * 9b70 -15769 * * * * * * * 6648 e69988,eeacbb 6648,eb3b 00006648,0000eb3b 9b71 fca6 91bd 9b71 * * 9b71 -15770 * * * * * * * 66bf e69abf,eeacbc 66bf,eb3c 000066bf,0000eb3c 9b72 * * 9b72 * * 9b72 -15771 * * * * * * * eb3d f0a7a9b9,eeacbd d85ede79,eb3d 00027a79,0000eb3d 9b73 * * 9b73 * * 9b73 -15772 * * * * * * * * * * * * * * 9b76 * * * -15773 * * * * * * * eb41 eead81,f0a4a6ba d852ddba,eb41 0000eb41,000249ba 9b77 * * 9b77 * * 9b77 -15774 * * * * * * * * * * * * * * 9b78 * * * -15775 * * * * * * * * * * * * * * 9b7b * * * -15776 * * * * * * * eb46 eead86,f0a08d86 d840df46,eb46 0000eb46,00020346 9b7c * * 9b7c * * 9b7c -15777 * * * * * * * 670e e69c8e,eead88 670e,eb48 0000670e,0000eb48 9b7e * * 9b7e * * 9b7e -15778 * * * * * * * 6918 e6a498,eead89 6918,eb49 00006918,0000eb49 9ba1 * * 9ba1 * * 9ba1 -15779 * * * * * * * eb4b f0a79997,eead8b d85dde57,eb4b 00027657,0000eb4b 9ba3 * * 9ba3 * * 9ba3 -15780 * * * * * * * eb4c f0a5bfa2,eead8c d857dfe2,eb4c 00025fe2,0000eb4c 9ba4 * * 9ba4 * * 9ba4 -15781 * * * * * * * eb4f f0a797be,eead8f d85dddfe,eb4f 000275fe,0000eb4f 9ba7 * * 9ba7 * * 9ba7 -15782 * * * * * * * eb50 f0a2829a,eead90 d848dc9a,eb50 0002209a,0000eb50 9ba8 * * 9ba8 * * 9ba8 -15783 * * * * * * * 48d0 e4a390,eead91 48d0,eb51 000048d0,0000eb51 9ba9 * * 9ba9 * * 9ba9 -15784 * * * * * * * 4ab8 e4aab8,eead92 4ab8,eb52 00004ab8,0000eb52 9baa * * 9baa * * 9baa -15785 * * * * * * * eb54 eead94,f0a8aa9a d862de9a,eb54 0000eb54,00028a9a 9bac * * 9bac * * 9bac -15786 * * * * * * * eb57 eead97,f0a480bb d850dc3b,eb57 0000eb57,0002403b 9baf * * 9baf * * 9baf -15787 * * * * * * * eb5a f0a4a985,eead9a d852de45,eb5a 00024a45,0000eb5a 9bb2 * * 9bb2 * * 9bb2 -15788 * * * * * * * eb5b f0a0978a,eead9b d841ddca,eb5b 000205ca,0000eb5b 9bb3 * * 9bb3 * * 9bb3 -15789 * * * * * * * 51d2 e58792,eead9c 51d2,eb5c 000051d2,0000eb5c 9bb4 * * 9bb4 * * 9bb4 -15790 * * * * * * * eb5d f0a09891,eead9d d841de11,eb5d 00020611,0000eb5d 9bb5 * * 9bb5 * * 9bb5 -15791 * * * * * * * 599f e5a69f,eead9e 599f,eb5e 0000599f,0000eb5e 9bb6 * * 9bb6 * * 9bb6 -15792 * * * * * * * eb5f f0a1baa8,eead9f d847dea8,eb5f 00021ea8,0000eb5f 9bb7 * * 9bb7 * * 9bb7 -15793 * * * * * * * 3bbe e3aebe,eeada0 3bbe,eb60 00003bbe,0000eb60 9bb8 * * 9bb8 * * 9bb8 -15794 * * * * * * * eb61 f0a3b3bf,eeada1 d84fdcff,eb61 00023cff,0000eb61 9bb9 * * 9bb9 * * 9bb9 -15795 * * * * * * * 399b e3a69b,eeada6 399b,eb66 0000399b,0000eb66 9bbe * * 9bbe * * 9bbe -15796 * * * * * * * eb68 f0a897a8,eeada8 d861dde8,eb68 000285e8,0000eb68 9bc0 * * 9bc0 * * 9bc0 -15797 * * * * * * * eb69 f0a9a789,eeada9 d866ddc9,eb69 000299c9,0000eb69 9bc1 * * 9bc1 * * 9bc1 -15798 * * * * * * * 3762 e39da2,eeadaa 3762,eb6a 00003762,0000eb6a 9bc2 * * 9bc2 * * 9bc2 -15799 * * * * * * * eb6b f0a28783,eeadab d848ddc3,eb6b 000221c3,0000eb6b 9bc3 * * 9bc3 * * 9bc3 -15800 * * * * * * * 8b5e e8ad9e,eeadac 8b5e,eb6c 00008b5e,0000eb6c 9bc4 * * 9bc4 * * 9bc4 -15801 * * * * * * * eb6d f0a8ad8e,eeadad d862df4e,eb6d 00028b4e,0000eb6d 9bc5 * * 9bc5 * * 9bc5 -15802 * * * * * * * * * * * * * * 9bc6 * * * -15803 * * * * * * * 7209 e78889,eeadb2 7209,eb72 00007209,0000eb72 9bca * * 9bca * * 9bca -15804 * * * * * * * eb74 eeadb4,f0a0b1b8 d843dc78,eb74 0000eb74,00020c78 9bcc fa5d * 9bcc c770 faa9 9bcc -15805 * * * * * * * eb78 f0a09db9,eeadb8 d841df79,eb78 00020779,0000eb78 9bd0 fa6f * 9bd0 c756 fa63 9bd0 -15806 * * * * * * * 8eda e8bb9a,eeadb9 8eda,eb79 00008eda,0000eb79 9bd1 faf9 * 9bd1 c8ce fcb8 9bd1 -15807 * * * * * * * 528f e58a8f,eeadbb 528f,eb7b 0000528f,0000eb7b 9bd3 fac9 91ec 9bd3 c757 fa65 9bd3 -15808 * * * * * * * 7171 e785b1,eeadbd 7171,eb7d 00007171,0000eb7d 9bd5 fce3 8fc2 9bd5 c859 fbc9 9bd5 -15809 * * * * * * * eb80 f0a3bd8a,eeae80 d84fdf4a,eb80 00023f4a,0000eb80 9bd8 * * 9bd8 * * 9bd8 -15810 * * * * * * * eb81 f0a4aaa7,eeae81 d852dea7,eb81 00024aa7,0000eb81 9bd9 * * 9bd9 * * 9bd9 -15811 * * * * * * * 55bc e596bc,eeae82 55bc,eb82 000055bc,0000eb82 9bda fa63 * 9bda c77d fab7 9bda -15812 * * * * * * * eb85 eeae85,f0a6ad92 d85adf52,eb85 0000eb85,00026b52 9bdd * * 9bdd * * 9bdd -15813 * * * * * * * 3473 e391b3,eeae87 3473,eb87 00003473,0000eb87 9bdf * * 9bdf * * 9bdf -15814 * * * * * * * eb89 eeae89,f0a798b2 d85dde32,eb89 0000eb89,00027632 9be1 * * 9be1 * * 9be1 -15815 * * * * * * * 4718 e49c98,eeae8b 4718,eb8b 00004718,0000eb8b 9be3 * * 9be3 * * 9be3 -15816 * * * * * * * eb8f eeae8f,f0a4a4bf d852dd3f,eb8f 0000eb8f,0002493f 9be7 * * 9be7 * * 9be7 -15817 * * * * * * * 5066 e581a6,eeae91 5066,eb91 00005066,0000eb91 9be9 * * 9be9 * * 9be9 -15818 * * * * * * * 34fb e393bb,eeae92 34fb,eb92 000034fb,0000eb92 9bea * * 9bea * * 9bea -15819 * * * * * * * eb93 f0a38f8c,eeae93 d84cdfcc,eb93 000233cc,0000eb93 9beb * * 9beb * * 9beb -15820 * * * * * * * 60de * * * * * * 9bec * * * -15821 * * * * * * * 477c e49dbc,eeae96 477c,eb96 0000477c,0000eb96 9bee * * 9bee * * 9bee -15822 * * * * * * * eb97 f0a8a588,eeae97 d862dd48,eb97 00028948,0000eb97 9bef * * 9bef * * 9bef -15823 * * * * * * * eb9b eeae9b,f0a1b690 d847dd90,eb9b 0000eb9b,00021d90 9bf3 * * 9bf3 * * 9bf3 -15824 * * * * * * * * * * * * * * 9bf6 * * * -15825 * * * * * * * eba0 f0a7b092,eeaea0 d85fdc12,eba0 00027c12,0000eba0 9bf8 * * 9bf8 * * 9bf8 -15826 * * * * * * * 9056 e98196,eeaea1 9056,eba1 00009056,0000eba1 9bf9 fe6c 8e5e 9bf9 * * 9bf9 -15827 * * * * * * * eba3 f0a4be9a,eeaea3 d853df9a,eba3 00024f9a,0000eba3 9bfb * * 9bfb * * 9bfb -15828 * * * * * * * 8b62 e8ada2,eeaea4 8b62,eba4 00008b62,0000eba4 9bfc * * 9bfc * * 9bfc -15829 * * * * * * * 5d5b e5b59b,eeaea7 5d5b,eba7 00005d5b,0000eba7 9c40 * * 9c40 * fb44 9c40 -15830 * * * * * * * eba8 f0a6afb7,eeaea8 d85adff7,eba8 00026bf7,0000eba8 9c41 * * 9c41 * * 9c41 -15831 * * * * * * * * * * * * * * 9c42 * * * -15832 * * * * * * * ebab f0a1a49c,eeaeab d846dd1c,ebab 0002191c,0000ebab 9c44 * * 9c44 * * 9c44 -15833 * * * * * * * 8aea e8abaa,eeaeac 8aea,ebac 00008aea,0000ebac 9c45 * * 9c45 * * 9c45 -15834 * * * * * * * ebad f0a4a7b6,eeaead d852ddf6,ebad 000249f6,0000ebad 9c46 * * 9c46 * * 9c46 -15835 * * * * * * * ebaf eeaeaf,f0a3bfaf d84fdfef,ebaf 0000ebaf,00023fef 9c48 * * 9c48 * * 9c48 -15836 * * * * * * * 4bc0 e4af80,eeaeb1 4bc0,ebb1 00004bc0,0000ebb1 9c4a * * 9c4a * fce2 9c4a -15837 * * * * * * * ebb4 f0a29c9b,eeaeb4 d849df1b,ebb4 0002271b,0000ebb4 9c4d * * 9c4d * * 9c4d -15838 * * * * * * * 9465 e991a5,eeaeb5 9465,ebb5 00009465,0000ebb5 9c4e * * 9c4e * fcd0 9c4e -15839 * * * * * * * ebb6 f0a59fa1,eeaeb6 d855dfe1,ebb6 000257e1,0000ebb6 9c4f * * 9c4f * * 9c4f -15840 * * * * * * * 6195 e68695,eeaeb7 6195,ebb7 00006195,0000ebb7 9c50 * * 9c50 * * 9c50 -15841 * * * * * * * 5a27 e5a8a7,eeaeb8 5a27,ebb8 00005a27,0000ebb8 9c51 * * 9c51 * * 9c51 -15842 * * * * * * * ebb9 f0afa38d,eeaeb9 d87edccd,ebb9 0002f8cd,0000ebb9 9c52 * * 9c52 * * 9c52 -15843 * * * * * * * * f0afa086 d87edc06 0002f806 * * * 9c53 * * * -15844 * * * * * * * ebbc eeaebc,f0a494a1 d851dd21,ebbc 0000ebbc,00024521 9c55 * * 9c55 * * 9c55 -15845 * * * * * * * 4e6a e4b9aa,eeaebe 4e6a,ebbe 00004e6a,0000ebbe 9c57 * * 9c57 * * 9c57 -15846 * * * * * * * ebbf f0a4a4b4,eeaebf d852dd34,ebbf 00024934,0000ebbf 9c58 * * 9c58 * * 9c58 -15847 * * * * * * * 9656 e99996,eeaf80 9656,ebc0 00009656,0000ebc0 9c59 * * 9c59 * * 9c59 -15848 * * * * * * * 6d8f e6b68f,eeaf81 6d8f,ebc1 00006d8f,0000ebc1 9c5a * * 9c5a * * 9c5a -15849 * * * * * * * ebc2 f0a6b2bd,eeaf82 d85bdcbd,ebc2 00026cbd,0000ebc2 9c5b * * 9c5b * * 9c5b -15850 * * * * * * * 8977 e8a5b7,eeaf84 8977,ebc4 00008977,0000ebc4 9c5d * * 9c5d * * 9c5d -15851 * * * * * * * ebc7 eeaf87,f0a69091 d859dc11,ebc7 0000ebc7,00026411 9c60 * * 9c60 * * 9c60 -15852 * * * * * * * * * * * * * * 9c62 * * * -15853 * * * * * * * 7b42 e7ad82,eeaf8b 7b42,ebcb 00007b42,0000ebcb 9c64 * * 9c64 * * 9c64 -15854 * * * * * * * ebcc f0a98380,eeaf8c d864dcc0,ebcc 000290c0,0000ebcc 9c65 * * 9c65 * * 9c65 -15855 * * * * * * * ebcd f0a0a891,eeaf8d d842de11,ebcd 00020a11,0000ebcd 9c66 * * 9c66 * * 9c66 -15856 * * * * * * * * * * * * * * 9c68 * * * -15857 * * * * * * * 7a45 e7a985,eeaf91 7a45,ebd1 00007a45,0000ebd1 9c6a * * 9c6a * fc47 9c6a -15858 * * * * * * * 9a26 e9a8a6,eeaf94 9a26,ebd4 00009a26,0000ebd4 9c6d * * 9c6d * * 9c6d -15859 * * * * * * * 365f e3999f,eeaf96 365f,ebd6 0000365f,0000ebd6 9c6f * * 9c6f * * 9c6f -15860 * * * * * * * ebd7 f0a691a9,eeaf97 d859dc69,ebd7 00026469,0000ebd7 9c70 * * 9c70 * * 9c70 -15861 * * * * * * * ebd8 f0a080a1,eeaf98 d840dc21,ebd8 00020021,0000ebd8 9c71 * * 9c71 * * 9c71 -15862 * * * * * * * 7983 e7a683,eeaf99 7983,ebd9 00007983,0000ebd9 9c72 * * 9c72 * * 9c72 -15863 * * * * * * * 5d2c e5b4ac,eeaf9c 5d2c,ebdc 00005d2c,0000ebdc 9c75 * * 9c75 * * 9c75 -15864 * * * * * * * ebdd f0a39499,eeaf9d d84ddd19,ebdd 00023519,0000ebdd 9c76 * * 9c76 * * 9c76 -15865 * * * * * * * * * * * * * * 9c77 * * * -15866 * * * * * * * 46d0 e49b90,eeafa0 46d0,ebe0 000046d0,0000ebe0 9c79 * * 9c79 * * 9c79 -15867 * * * * * * * 753b e794bb,eeafa2 753b,ebe2 0000753b,0000ebe2 9c7b * * 9c7b * * 9c7b -15868 * * * * * * * 8865 e8a1a5,eeafa3 8865,ebe3 00008865,0000ebe3 9c7c * * 9c7c * * 9c7c -15869 * * * * * * * 58b6 e5a2b6,eeafa5 58b6,ebe5 000058b6,0000ebe5 9c7e * * 9c7e * * 9c7e -15870 * * * * * * * 371c e39c9c,eeafa6 371c,ebe6 0000371c,0000ebe6 9ca1 * * 9ca1 * * 9ca1 -15871 * * * * * * * ebe7 f0a2968d,eeafa7 d849dd8d,ebe7 0002258d,0000ebe7 9ca2 * * 9ca2 * * 9ca2 -15872 * * * * * * * 3c54 e3b194,eeafaa 3c54,ebea 00003c54,0000ebea 9ca5 * * 9ca5 * * 9ca5 -15873 * * * * * * * 9281 e98a81,eeafad 9281,ebed 00009281,0000ebed 9ca8 * * 9ca8 * * 9ca8 -15874 * * * * * * * ebee f0a285ba,eeafae d848dd7a,ebee 0002217a,0000ebee 9ca9 * * 9ca9 * * 9ca9 -15875 * * * * * * * 9330 e98cb0,eeafb0 9330,ebf0 00009330,0000ebf0 9cab * * 9cab * * 9cab -15876 * * * * * * * ebf2 f0a4a790,eeafb2 d852ddd0,ebf2 000249d0,0000ebf2 9cad * * 9cad * * 9cad -15877 * * * * * * * 6c39 e6b0b9,eeafb3 6c39,ebf3 00006c39,0000ebf3 9cae fa45 * 9cae c743 fa44 9cae -15878 * * * * * * * ebf6 f0a0bbb8,eeafb6 d843def8,ebf6 00020ef8,0000ebf6 9cb1 * * 9cb1 * * 9cb1 -15879 * * * * * * * 8827 e8a0a7,eeafb7 8827,ebf7 00008827,0000ebf7 9cb2 * * 9cb2 * * 9cb2 -15880 * * * * * * * 88f5 e8a3b5,eeafb8 88f5,ebf8 000088f5,0000ebf8 9cb3 * * 9cb3 * * 9cb3 -15881 * * * * * * * ebf9 f0a2a4a6,eeafb9 d84add26,ebf9 00022926,0000ebf9 9cb4 * * 9cb4 * * 9cb4 -15882 * * * * * * * ebfa f0a891b3,eeafba d861dc73,ebfa 00028473,0000ebfa 9cb5 * * 9cb5 * * 9cb5 -15883 * * * * * * * ebfb f0a19eb1,eeafbb d845dfb1,ebfb 000217b1,0000ebfb 9cb6 * * 9cb6 * * 9cb6 -15884 * * * * * * * 6eb8 e6bab8,eeafbc 6eb8,ebfc 00006eb8,0000ebfc 9cb7 * * 9cb7 * * 9cb7 -15885 * * * * * * * ebfd f0a4a8aa,eeafbd d852de2a,ebfd 00024a2a,0000ebfd 9cb8 * * 9cb8 * * 9cb8 -15886 * * * * * * * ebfe f0a1a0a0,eeafbe d846dc20,ebfe 00021820,0000ebfe 9cb9 * * 9cb9 * * 9cb9 -15887 * * * * * * * 39a4 e3a6a4,eeafbf 39a4,ebff 000039a4,0000ebff 9cba * * 9cba * * 9cba -15888 * * * * * * * * * * * * * * 9cbc * * * -15889 * * * * * * * * * * * * * * 9cbd * * * -15890 * * * * * * * 453f e494bf,eeb083 453f,ec03 0000453f,0000ec03 9cbe * * 9cbe * * 9cbe -15891 * * * * * * * 66b6 e69ab6,eeb084 66b6,ec04 000066b6,0000ec04 9cbf * * 9cbf * * 9cbf -15892 * * * * * * * ec05 f0a9b2ad,eeb085 d867dcad,ec05 00029cad,0000ec05 9cc0 * * 9cc0 * * 9cc0 -15893 * * * * * * * ec06 f0a9a2a4,eeb086 d866dca4,ec06 000298a4,0000ec06 9cc1 * * 9cc1 * * 9cc1 -15894 * * * * * * * 8943 e8a583,eeb087 8943,ec07 00008943,0000ec07 9cc2 fde3 91fd 9cc2 * * 9cc2 -15895 * * * * * * * 40df e4839f,eeb08b 40df,ec0b 000040df,0000ec0b 9cc6 * * 9cc6 * * 9cc6 -15896 * * * * * * * ec0c f0a1988a,eeb08c d845de0a,ec0c 0002160a,0000ec0c 9cc7 * * 9cc7 * * 9cc7 -15897 * * * * * * * 39a1 e3a6a1,eeb08d 39a1,ec0d 000039a1,0000ec0d 9cc8 * * 9cc8 * * 9cc8 -15898 * * * * * * * ec0e f0a39caf,eeb08e d84ddf2f,ec0e 0002372f,0000ec0e 9cc9 * * 9cc9 * * 9cc9 -15899 * * * * * * * ec0f f0a883a8,eeb08f d860dce8,ec0f 000280e8,0000ec0f 9cca * * 9cca * * 9cca -15900 * * * * * * * ec10 f0a18f85,eeb090 d844dfc5,ec10 000213c5,0000ec10 9ccb * * 9ccb * * 9ccb -15901 * * * * * * * 71ad e786ad,eeb091 71ad,ec11 000071ad,0000ec11 9ccc * * 9ccc * * 9ccc -15902 * * * * * * * 8366 e88da6,eeb092 8366,ec12 00008366,0000ec12 9ccd * * 9ccd * * 9ccd -15903 * * * * * * * ec14 eeb094,f0a986a8 d864dda8,ec14 0000ec14,000291a8 9ccf * * 9ccf * * 9ccf -15904 * * * * * * * * * * * * * * 9cd0 * * * -15905 * * * * * * * 4cb7 e4b2b7,eeb096 4cb7,ec16 00004cb7,0000ec16 9cd1 * * 9cd1 * * 9cd1 -15906 * * * * * * * ec17 f0a782af,eeb097 d85cdcaf,ec17 000270af,0000ec17 9cd2 * * 9cd2 * * 9cd2 -15907 * * * * * * * ec18 f0a8a6ab,eeb098 d862ddab,ec18 000289ab,0000ec18 9cd3 * * 9cd3 * * 9cd3 -15908 * * * * * * * ec1d f0a485ba,eeb09d d850dd7a,ec1d 0002417a,0000ec1d 9cd8 * * 9cd8 * * 9cd8 -15909 * * * * * * * 7b43 e7ad83,eeb09e 7b43,ec1e 00007b43,0000ec1e 9cd9 * * 9cd9 * * 9cd9 -15910 * * * * * * * 797e e7a5be,eeb09f 797e,ec1f 0000797e,0000ec1f 9cda * * 9cda * * 9cda -15911 * * * * * * * 6fb5 e6beb5,eeb0a1 6fb5,ec21 00006fb5,0000ec21 9cdc * * 9cdc * * 9cdc -15912 * * * * * * * ec22 f0aa8b9f,eeb0a2 d868dedf,ec22 0002a2df,0000ec22 9cdd * * 9cdd * * 9cdd -15913 * * * * * * * 6a03 e6a883,eeb0a3 6a03,ec23 00006a03,0000ec23 9cde * * 9cde * * 9cde -15914 * * * * * * * ec24 f0a88c98,eeb0a4 d860df18,ec24 00028318,0000ec24 9cdf * * 9cdf * * 9cdf -15915 * * * * * * * 53a2 e58ea2,eeb0a5 53a2,ec25 000053a2,0000ec25 9ce0 * * 9ce0 * * 9ce0 -15916 * * * * * * * ec26 f0a6b887,eeb0a6 d85bde07,ec26 00026e07,0000ec26 9ce1 * * 9ce1 * * 9ce1 -15917 * * * * * * * 93bf e98ebf,eeb0a7 93bf,ec27 000093bf,0000ec27 9ce2 * * 9ce2 * * 9ce2 -15918 * * * * * * * 6836 e6a0b6,eeb0a8 6836,ec28 00006836,0000ec28 9ce3 * * 9ce3 * * 9ce3 -15919 * * * * * * * * e99d9d,ee9fbd,eeb0a9 975d,e7fd,ec29 0000975d,0000e7fd,0000ec29 9644,9ce4 fea8 90e2 9ce4 * * 9644,9ce4 -15920 * * * * * * * ec2a f0a885af,eeb0aa d860dd6f,ec2a 0002816f,0000ec2a 9ce5 * * 9ce5 * * 9ce5 -15921 * * * * * * * ec2c f0a6a6b5,eeb0ac d85addb5,ec2c 000269b5,0000ec2c 9ce7 * * 9ce7 * * 9ce7 -15922 * * * * * * * ec2d f0a18fad,eeb0ad d844dfed,ec2d 000213ed,0000ec2d 9ce8 * * 9ce8 * * 9ce8 -15923 * * * * * * * ec2e f0a388af,eeb0ae d84cde2f,ec2e 0002322f,0000ec2e 9ce9 * * 9ce9 * * 9ce9 -15924 * * * * * * * 5d85 e5b685,eeb0b0 5d85,ec30 00005d85,0000ec30 9ceb * * 9ceb * * 9ceb -15925 * * * * * * * ec31 f0a8b0b0,eeb0b1 d863dc30,ec31 00028c30,0000ec31 9cec * * 9cec * * 9cec -15926 * * * * * * * 5715 e59c95,eeb0b3 5715,ec33 00005715,0000ec33 9cee * * 9cee * * 9cee -15927 * * * * * * * 9823 e9a0a3,eeb0b4 9823,ec34 00009823,0000ec34 9cef * * 9cef * * 9cef -15928 * * * * * * * ec35 f0a8a589,eeb0b5 d862dd49,ec35 00028949,0000ec35 9cf0 * * 9cf0 * * 9cf0 -15929 * * * * * * * 5dab e5b6ab,eeb0b6 5dab,ec36 00005dab,0000ec36 9cf1 * * 9cf1 * * 9cf1 -15930 * * * * * * * ec37 f0a4a688,eeb0b7 d852dd88,ec37 00024988,0000ec37 9cf2 * * 9cf2 * * 9cf2 -15931 * * * * * * * 65be e696be,eeb0b8 65be,ec38 000065be,0000ec38 9cf3 * * 9cf3 * * 9cf3 -15932 * * * * * * * 69d5 e6a795,eeb0b9 69d5,ec39 000069d5,0000ec39 9cf4 * * 9cf4 * * 9cf4 -15933 * * * * * * * 53d2 e58f92,eeb0ba 53d2,ec3a 000053d2,0000ec3a 9cf5 * * 9cf5 * * 9cf5 -15934 * * * * * * * ec3b f0a4aaa5,eeb0bb d852dea5,ec3b 00024aa5,0000ec3b 9cf6 * * 9cf6 * * 9cf6 -15935 * * * * * * * ec3c f0a3be81,eeb0bc d84fdf81,ec3c 00023f81,0000ec3c 9cf7 * * 9cf7 * * 9cf7 -15936 * * * * * * * 3c11 e3b091,eeb0bd 3c11,ec3d 00003c11,0000ec3d 9cf8 * * 9cf8 * * 9cf8 -15937 * * * * * * * 6736 e69cb6,eeb0be 6736,ec3e 00006736,0000ec3e 9cf9 * 8f77 9cf9 * * 9cf9 -15938 * * * * * * * ec42 eeb182,f0a1bea1 d847dfa1,ec42 0000ec42,00021fa1 9cfd * * 9cfd * * 9cfd -15939 * * * * * * * 35ca e3978a,eeb18a 35ca,ec4a 000035ca,0000ec4a 9d46 * * 9d46 * * 9d46 -15940 * * * * * * * 48fa e4a3ba,eeb18d 48fa,ec4d 000048fa,0000ec4d 9d49 * * 9d49 * * 9d49 -15941 * * * * * * * * * * * * * * 9d4a * * * -15942 * * * * * * * 7808 e7a088,eeb190 7808,ec50 00007808,0000ec50 9d4c * * 9d4c * * 9d4c -15943 * * * * * * * 9255 e98995,eeb191 9255,ec51 00009255,0000ec51 9d4d * * 9d4d * * 9d4d -15944 * * * * * * * 43f2 e48fb2,eeb193 43f2,ec53 000043f2,0000ec53 9d4f * * 9d4f * * 9d4f -15945 * * * * * * * 43df e48f9f,eeb195 43df,ec55 000043df,0000ec55 9d51 * * 9d51 * * 9d51 -15946 * * * * * * * 59f8 e5a7b8,eeb199 59f8,ec59 000059f8,0000ec59 9d55 * * 9d55 * * 9d55 -15947 * * * * * * * * * * * * * * 9d5a * * * -15948 * * * * * * * 568b e59a8b,eeb1a6 568b,ec66 0000568b,0000ec66 9d62 * * 9d62 * * 9d62 -15949 * * * * * * * ec68 eeb1a8,f0a997a9 d865dde9,ec68 0000ec68,000295e9 9d64 * * 9d64 * * 9d64 -15950 * * * * * * * 9012 e98092,eeb1bd 9012,ec7d 00009012,0000ec7d 9d79 * * 9d79 * * 9d79 -15951 * * * * * * * 55c1 e59781,eeb282 55c1,ec82 000055c1,0000ec82 9d7e * * 9d7e * * 9d7e -15952 * * * * * * * 4509 e49489,eeb287 4509,ec87 00004509,0000ec87 9da5 * * 9da5 * * 9da5 -15953 * * * * * * * 7e7f e7b9bf,eeb288 7e7f,ec88 00007e7f,0000ec88 9da6 * * 9da6 * * 9da6 -15954 * * * * * * * 6f56 e6bd96,eeb289 6f56,ec89 00006f56,0000ec89 9da7 * * 9da7 * * 9da7 -15955 * * * * * * * 6ab1 e6aab1,eeb28a 6ab1,ec8a 00006ab1,0000ec8a 9da8 * * 9da8 * * 9da8 -15956 * * * * * * * 34e4 e393a4,eeb28c 34e4,ec8c 000034e4,0000ec8c 9daa * * 9daa * * 9daa -15957 * * * * * * * ec8e f0a7a29d,eeb28e d85edc9d,ec8e 0002789d,0000ec8e 9dac * * 9dac * * 9dac -15958 * * * * * * * 373a e39cba,eeb28f 373a,ec8f 0000373a,0000ec8f 9dad * * 9dad * * 9dad -15959 * * * * * * * 8e80 * * * * * * 9dae * * * -15960 * * * * * * * ec92 eeb292,f0a880a4 d860dc24,ec92 0000ec92,00028024 9db0 * * 9db0 * * 9db0 -15961 * * * * * * * ec95 eeb295,f0a7a8be d85ede3e,ec95 0000ec95,00027a3e 9db3 fac7 * 9db3 c8c5 fcac 9db3 -15962 * * * * * * * 3deb e3b7ab,eeb297 3deb,ec97 00003deb,0000ec97 9db5 * * 9db5 * * 9db5 -15963 * * * * * * * ec99 eeb299,f0a3b2b7 d84fdcb7,ec99 0000ec99,00023cb7 9db7 * * 9db7 * * 9db7 -15964 * * * * * * * ec9e f0a68998,eeb29e d858de58,ec9e 00026258,0000ec9e 9dbc fadd * 9dbc * * 9dbc -15965 * * * * * * * 56bf e59abf,eeb29f 56bf,ec9f 000056bf,0000ec9f 9dbd * * 9dbd * * 9dbd -15966 * * * * * * * 8e0e e8b88e,eeb2a1 8e0e,eca1 00008e0e,0000eca1 9dbf * * 9dbf c8c7 fcb1 9dbf -15967 * * * * * * * 5b6d e5adad,eeb2a2 5b6d,eca2 00005b6d,0000eca2 9dc0 * * 9dc0 c7d0 faf5 9dc0 -15968 * * * * * * * 63de e68f9e,eeb2a5 63de,eca5 000063de,0000eca5 9dc3 * * 9dc3 * * 9dc3 -15969 * * * * * * * * * * * * * * 9dc4 * * * -15970 * * * * * * * 6530 e694b0,eeb2a9 6530,eca9 00006530,0000eca9 9dc7 * * 9dc7 * * 9dc7 -15971 * * * * * * * 562d e598ad,eeb2aa 562d,ecaa 0000562d,0000ecaa 9dc8 * * 9dc8 c7b4 face 9dc8 -15972 * * * * * * * 541a e5909a,eeb2ac 541a,ecac 0000541a,0000ecac 9dca * * 9dca * * 9dca -15973 * * * * * * * ecaf f0a9b698,eeb2af d867dd98,ecaf 00029d98,0000ecaf 9dcd fa55 * 9dcd * * 9dcd -15974 * * * * * * * 4c7d e4b1bd,eeb2b0 4c7d,ecb0 00004c7d,0000ecb0 9dce fa54 * 9dce c8f1 fcee 9dce -15975 * * * * * * * 5622 e598a2,eeb2b1 5622,ecb1 00005622,0000ecb1 9dcf fac1 917c 9dcf c7ab fac5 9dcf -15976 * * * * * * * 561e e5989e,eeb2b2 561e,ecb2 0000561e,0000ecb2 9dd0 * * 9dd0 c7ad fac7 9dd0 -15977 * * * * * * * 7f49 e7bd89,eeb2b3 7f49,ecb3 00007f49,0000ecb3 9dd1 * * 9dd1 c8ab fc5f 9dd1 -15978 * * * * * * * 5975 e5a5b5,eeb2b5 5975,ecb5 00005975,0000ecb5 9dd3 * * 9dd3 * * 9dd3 -15979 * * * * * * * ecb6 f0a3b580,eeb2b6 d84fdd40,ecb6 00023d40,0000ecb6 9dd4 * * 9dd4 * * 9dd4 -15980 * * * * * * * 8770 e89db0,eeb2b7 8770,ecb7 00008770,0000ecb7 9dd5 * * 9dd5 * * 9dd5 -15981 * * * * * * * 8117 e88497,eeb2bc 8117,ecbc 00008117,0000ecbc 9dda fdc1 8f57 9dda * fba3 9dda -15982 * * * * * * * 9d5e e9b59e,eeb2bd 9d5e,ecbd 00009d5e,0000ecbd 9ddb fee7 9163 9ddb * * 9ddb -15983 * * * * * * * 8d18 e8b498,eeb2be 8d18,ecbe 00008d18,0000ecbe 9ddc fe4f 8e58 9ddc * * 9ddc -15984 * * * * * * * 763b e798bb,eeb2bf 763b,ecbf 0000763b,0000ecbf 9ddd fb56,fd6e 8e44 9ddd * fbe9 9ddd -15985 * * * * * * * 9c45 e9b185,eeb380 9c45,ecc0 00009c45,0000ecc0 9dde fee2 9141 9dde * fcf1 9dde -15986 * * * * * * * 764e e7998e,eeb381 764e,ecc1 0000764e,0000ecc1 9ddf fb57,fd70 8fdf 9ddf c872 fbe8 9ddf -15987 * * * * * * * 77b9 e79eb9,eeb382 77b9,ecc2 000077b9,0000ecc2 9de0 fd55 8f50 9de0 * fbf7 9de0 -15988 * * * * * * * 9345 e98d85,eeb383 9345,ecc3 00009345,0000ecc3 9de1 fe75 90d4 9de1 * * 9de1 -15989 * * * * * * * 5432 e590b2,eeb384 5432,ecc4 00005432,0000ecc4 9de2 fbcf 9177 9de2 * * 9de2 -15990 * * * * * * * 8148 e88588,eeb385 8148,ecc5 00008148,0000ecc5 9de3 fdc4 9076 9de3 * * 9de3 -15991 * * * * * * * 82f7 e88bb7,eeb386 82f7,ecc6 000082f7,0000ecc6 9de4 fde9 907b 9de4 * * 9de4 -15992 * * * * * * * 5625 e598a5,eeb387 5625,ecc7 00005625,0000ecc7 9de5 fac2 * 9de5 c7ac fac6 9de5 -15993 * * * * * * * 8132 e884b2,eeb388 8132,ecc8 00008132,0000ecc8 9de6 fdc3 9075 9de6 * fba2 9de6 -15994 * * * * * * * 8418 e89098,eeb389 8418,ecc9 00008418,0000ecc9 9de7 fdee 90a1 9de7 * fc6d 9de7 -15995 * * * * * * * 80bd e882bd,eeb38a 80bd,ecca 000080bd,0000ecca 9de8 fb4c * 9de8 * * 9de8 -15996 * * * * * * * 55ea e597aa,eeb38b 55ea,eccb 000055ea,0000eccb 9de9 fbdb 9176 9de9 c7a8 fac1 9de9 -15997 * * * * * * * 7962 e7a5a2,eeb38c 7962,eccc 00007962,0000eccc 9dea faeb 91e6 9dea c87b fc42 9dea -15998 * * * * * * * 5643 e59983,eeb38d 5643,eccd 00005643,0000eccd 9deb facb * 9deb c7b2 facc 9deb -15999 * * * * * * * 5416 e59096,eeb38e 5416,ecce 00005416,0000ecce 9dec fa49 * 9dec c764 fa78 9dec -16000 * * * * * * * eccf f0a0ba9d,eeb38f d843de9d,eccf 00020e9d,0000eccf 9ded fabd * 9ded c7a9 fac2 9ded -16001 * * * * * * * 35ce e3978e,eeb390 35ce,ecd0 000035ce,0000ecd0 9dee fab3 9173 9dee c7a1 fab9 9dee -16002 * * * * * * * 5605 e59885,ee82a5,eeb391 5605,e0a5,ecd1 00005605,0000e0a5,0000ecd1 fb48,9def fab4 * 9def c77e fab8 fb48,9def -16003 * * * * * * * 55f1 e597b1,eeb392 55f1,ecd2 000055f1,0000ecd2 9df0 fabb * 9df0 c7a3 fabc 9df0 -16004 * * * * * * * 66f1 e69bb1,eeb393 66f1,ecd3 000066f1,0000ecd3 9df1 fa43 * 9df1 c7fc fb7a 9df1 -16005 * * * * * * * ecd4 f0a88ba2,eeb394 d860dee2,ecd4 000282e2,0000ecd4 9df2 fab6 * 9df2 c8cf fcb9 9df2 -16006 * * * * * * * 362d e398ad,eeb395 362d,ecd5 0000362d,0000ecd5 9df3 fa4b * 9df3 c7c1 fae0 9df3 -16007 * * * * * * * 7534 e794b4,eeb396 7534,ecd6 00007534,0000ecd6 9df4 fa44 * 9df4 c7fb fb79 9df4 -16008 * * * * * * * 55f0 e597b0,eeb397 55f0,ecd7 000055f0,0000ecd7 9df5 fabc * 9df5 c7a4 fabd 9df5 -16009 * * * * * * * 55ba e596ba,eeb398 55ba,ecd8 000055ba,0000ecd8 9df6 fab1 * 9df6 c77c fab6 9df6 -16010 * * * * * * * 5497 e59297,eeb399 5497,ecd9 00005497,0000ecd9 9df7 fa5a * 9df7 c767 fa7d 9df7 -16011 * * * * * * * 5572 e595b2,eeb39a 5572,ecda 00005572,0000ecda 9df8 faa2 * 9df8 c776 fab0 9df8 -16012 * * * * * * * ecdb f0a0b181,eeb39b d843dc41,ecdb 00020c41,0000ecdb 9df9 fae3 * 9df9 c769 faa1 9df9 -16013 * * * * * * * ecdc f0a0b296,eeb39c d843dc96,ecdc 00020c96,0000ecdc 9dfa fa5c * 9dfa c76d faa6 9dfa -16014 * * * * * * * * e5bb90,ee84b4,eeb39d 5ed0,e134,ecdd 00005ed0,0000e134,0000ecdd fbf9,9dfb fad5 * 9dfb c7d9 fb4c fbf9,9dfb -16015 * * * * * * * ecdf f0a0b9b6,eeb39f d843de76,ecdf 00020e76,0000ecdf 9dfd fae7 * 9dfd c7aa fac3 9dfd -16016 * * * * * * * ece0 f0a2b1a2,eeb3a0 d84bdc62,ece0 00022c62,0000ece0 9dfe faab * 9dfe c7f3 fb6e 9dfe -16017 * * * * * * * ece1 f0a0baa2,eeb3a1 d843dea2,ece1 00020ea2,0000ece1 9e40 fa61 * 9e40 c7a6 fabf 9e40 -16018 * * * * * * * 9eab e9baab,eeb3a2 9eab,ece2 00009eab,0000ece2 9e41 * * 9e41 * * 9e41 -16019 * * * * * * * 7d5a e7b59a,eeb3a3 7d5a,ece3 00007d5a,0000ece3 9e42 fdaf 906f 9e42 * * 9e42 -16020 * * * * * * * 55de * * * * fa78 * 9e43 c7a2 faba * -16021 * * * * * * * ece5 f0a181b5,eeb3a5 d844dc75,ece5 00021075,0000ece5 9e44 fa5e * 9e44 c7bb fad9 9e44 -16022 * * * * * * * 629d e68a9d,eeb3a6 629d,ece6 0000629d,0000ece6 9e45 fb4a * 9e45 c7e8 fb60 9e45 -16023 * * * * * * * 976d e99dad,eeb3a7 976d,ece7 0000976d,0000ece7 9e46 faa7 * 9e46 c8e3 fcd4 9e46 -16024 * * * * * * * 5494 e59294,eeb3a8 5494,ece8 00005494,0000ece8 9e47 fa75 * 9e47 c768 fa7e 9e47 -16025 * * * * * * * 8ccd e8b38d,eeb3a9 8ccd,ece9 00008ccd,0000ece9 9e48 faba 8e5c 9e48 c8c6 fcb0 9e48 -16026 * * * * * * * 71f6 e787b6,eeb3aa 71f6,ecea 000071f6,0000ecea 9e49 fad3 * 9e49 c85f fbcf 9e49 -16027 * * * * * * * 9176 e985b6,eeb3ab 9176,eceb 00009176,0000eceb 9e4a faea 90ca 9e4a c8d6 fcc4 9e4a -16028 * * * * * * * 63fc e68fbc,eeb3ac 63fc,ecec 000063fc,0000ecec 9e4b faad * 9e4b c7f2 fb6c 9e4b -16029 * * * * * * * 63b9 e68eb9,eeb3ad 63b9,eced 000063b9,0000eced 9e4c fa79 * 9e4c c7ef fb68 9e4c -16030 * * * * * * * 63fe e68fbe,eeb3ae 63fe,ecee 000063fe,0000ecee 9e4d fab0 * 9e4d * * 9e4d -16031 * * * * * * * 5569 e595a9,eeb3af 5569,ecef 00005569,0000ecef 9e4e fa7e * 9e4e c777 fab1 9e4e -16032 * * * * * * * ecf0 f0a2ad83,eeb3b0 d84adf43,ecf0 00022b43,0000ecf0 9e4f fa6d * 9e4f c7ed fb66 9e4f -16033 * * * * * * * 9c72 e9b1b2,eeb3b1 9c72,ecf1 00009c72,0000ecf1 9e50 fae5 * 9e50 c8f5 fcf3 9e50 -16034 * * * * * * * ecf2 f0a2bab3,eeb3b2 d84bdeb3,ecf2 00022eb3,0000ecf2 9e51 fae9 * 9e51 c7fa fb77 9e51 -16035 * * * * * * * 519a e5869a,eeb3b3 519a,ecf3 0000519a,0000ecf3 9e52 fa42 * 9e52 c74c fa54 9e52 -16036 * * * * * * * 34df e3939f,eeb3b4 34df,ecf4 000034df,0000ecf4 9e53 fa4f * 9e53 c755 fa62 9e53 -16037 * * * * * * * ecf5 f0a0b6a7,eeb3b5 d843dda7,ecf5 00020da7,0000ecf5 9e54 fa7b * 9e54 c77b fab5 9e54 -16038 * * * * * * * 51a7 e586a7,eeb3b6 51a7,ecf6 000051a7,0000ecf6 9e55 fa6c * 9e55 c74d fa55 9e55 -16039 * * * * * * * 544d e5918d,eeb3b7 544d,ecf7 0000544d,0000ecf7 9e56 fa4d * 9e56 c766 fa7a 9e56 -16040 * * * * * * * 551e e5949e,eeb3b8 551e,ecf8 0000551e,0000ecf8 9e57 fa77 * 9e57 c772 faac 9e57 -16041 * * * * * * * 5513 e59493,eeb3b9 5513,ecf9 00005513,0000ecf9 9e58 fa72 * 9e58 c773 faad 9e58 -16042 * * * * * * * 7666 e799a6,eeb3ba 7666,ecfa 00007666,0000ecfa 9e59 fae0 * 9e59 c873 fbeb 9e59 -16043 * * * * * * * 8e2d e8b8ad,eeb3bb 8e2d,ecfb 00008e2d,0000ecfb 9e5a face * 9e5a c8c9 fcb3 9e5a -16044 * * * * * * * ecfc f0a6a28a,eeb3bc d85adc8a,ecfc 0002688a,0000ecfc 9e5b fade * 9e5b c843 fba8 9e5b -16045 * * * * * * * 75b1 e796b1,eeb3bd 75b1,ecfd 000075b1,0000ecfd 9e5c fa6a 9155 9e5c c86e fbe4 9e5c -16046 * * * * * * * 80b6 e882b6,eeb3be 80b6,ecfe 000080b6,0000ecfe 9e5d fa64 * 9e5d c7fd fb7b 9e5d -16047 * * * * * * * 8804 e8a084,eeb3bf 8804,ecff 00008804,0000ecff 9e5e fad8 * 9e5e c8bc fc7a 9e5e -16048 * * * * * * * 8786 * * * * facd * 9e5f c8ba fc76 * -16049 * * * * * * * 88c7 e8a387,eeb481 88c7,ed01 000088c7,0000ed01 9e60 fabe * 9e60 c8c1 fca4 9e60 -16050 * * * * * * * 81b6 e886b6,eeb482 81b6,ed02 000081b6,0000ed02 9e61 facf * 9e61 c842 fba6 9e61 -16051 * * * * * * * 841c e8909c,eeb483 841c,ed03 0000841c,0000ed03 9e62 * * 9e62 * * 9e62 -16052 * * * * * * * 44ec e493ac,eeb485 44ec,ed05 000044ec,0000ed05 9e64 * * 9e64 * * 9e64 -16053 * * * * * * * 7304 e78c84,eeb486 7304,ed06 00007304,0000ed06 9e65 * * 9e65 c865 fbd7 9e65 -16054 * * * * * * * 830b e88c8b,eeb489 830b,ed09 0000830b,0000ed09 9e68 * * 9e68 * * 9e68 -16055 * * * * * * * 567b e599bb,eeb48b 567b,ed0b 0000567b,0000ed0b 9e6a * * 9e6a c7b8 fad4 9e6a -16056 * * * * * * * 9170 e985b0,eeb492 9170,ed12 00009170,0000ed12 9e71 * * 9e71 * fcc2 9e71 -16057 * * * * * * * 9208 e98888,eeb494 9208,ed14 00009208,0000ed14 9e73 * * 9e73 * * 9e73 -16058 * * * * * * * ed18 f0a0bbb9,eeb498 d843def9,ed18 00020ef9,0000ed18 9e77 * * 9e77 * * 9e77 -16059 * * * * * * * 7266 e789a6,eeb499 7266,ed19 00007266,0000ed19 9e78 * * 9e78 * * 9e78 -16060 * * * * * * * 474e e49d8e,eeb49b 474e,ed1b 0000474e,0000ed1b 9e7a * * 9e7a * * 9e7a -16061 * * * * * * * ed1d eeb49d,f0a7bfb9 d85fdff9,ed1d 0000ed1d,00027ff9 9e7c * * 9e7c * * 9e7c -16062 * * * * * * * 40fa e483ba,eeb49f 40fa,ed1f 000040fa,0000ed1f 9e7e * * 9e7e * * 9e7e -16063 * * * * * * * 9c5d e9b19d,eeb4a0 9c5d,ed20 00009c5d,0000ed20 9ea1 * * 9ea1 * * 9ea1 -16064 * * * * * * * 651f e6949f,eeb4a1 651f,ed21 0000651f,0000ed21 9ea2 * * 9ea2 * * 9ea2 -16065 * * * * * * * 48f3 e4a3b3,eeb4a3 48f3,ed23 000048f3,0000ed23 9ea4 * * 9ea4 * * 9ea4 -16066 * * * * * * * ed24 f0a49fa0,eeb4a4 d851dfe0,ed24 000247e0,0000ed24 9ea5 * * 9ea5 * * 9ea5 -16067 * * * * * * * ed25 f0a9b5bc,eeb4a5 d867dd7c,ed25 00029d7c,0000ed25 9ea6 * * 9ea6 * * 9ea6 -16068 * * * * * * * * * * * * * * 9ea9 * * * -16069 * * * * * * * ed29 eeb4a9,f0a796a3 d85ddda3,ed29 0000ed29,000275a3 9eaa * * 9eaa * * 9eaa -16070 * * * * * * * * eeb4ab ed2b 0000ed2b 9eac * * 9eac * * 9eac -16071 * * * * * * * ed2c f0a68188,eeb4ac d858dc48,ed2c 00026048,0000ed2c 9ead * * 9ead * * 9ead -16072 * * * * * * * 71a3 e786a3,eeb4ae 71a3,ed2e 000071a3,0000ed2e 9eaf * * 9eaf * * 9eaf -16073 * * * * * * * 7e8e e7ba8e,eeb4af 7e8e,ed2f 00007e8e,0000ed2f 9eb0 * * 9eb0 * * 9eb0 -16074 * * * * * * * 9d50 e9b590,eeb4b0 9d50,ed30 00009d50,0000ed30 9eb1 * * 9eb1 * * 9eb1 -16075 * * * * * * * 3577 e395b7,eeb4b3 3577,ed33 00003577,0000ed33 9eb4 * * 9eb4 * * 9eb4 -16076 * * * * * * * 6cb2 e6b2b2,eeb4b5 6cb2,ed35 00006cb2,0000ed35 9eb6 * * 9eb6 * * 9eb6 -16077 * * * * * * * 5367 e58da7,eeb4b6 5367,ed36 00005367,0000ed36 9eb7 * * 9eb7 c8b1 fc65 9eb7 -16078 * * * * * * * 39dc e3a79c,eeb4b8 39dc,ed38 000039dc,0000ed38 9eb9 * * 9eb9 * * 9eb9 -16079 * * * * * * * ed3b eeb4bb,f0a49898 d851de18,ed3b 0000ed3b,00024618 9ebc * * 9ebc * * 9ebc -16080 * * * * * * * 822d e888ad,eeb4be 822d,ed3e 0000822d,0000ed3e 9ebf * * 9ebf * * 9ebf -16081 * * * * * * * 544b e5918b,eeb4bf 544b,ed3f 0000544b,0000ed3f 9ec0 * * 9ec0 * fa7c 9ec0 -16082 * * * * * * * * eeb583 ed43 0000ed43 9ec4 * * 9ec4 * * 9ec4 -16083 * * * * * * * 3a52 e3a992,eeb584 3a52,ed44 00003a52,0000ed44 9ec5 * * 9ec5 * * 9ec5 -16084 * * * * * * * 7374 e78db4,eeb586 7374,ed46 00007374,0000ed46 9ec7 * * 9ec7 * * 9ec7 -16085 * * * * * * * ed47 f0a9baac,eeb587 d867deac,ed47 00029eac,0000ed47 9ec8 * * 9ec8 * * 9ec8 -16086 * * * * * * * 4d09 e4b489,eeb588 4d09,ed48 00004d09,0000ed48 9ec9 * * 9ec9 * * 9ec9 -16087 * * * * * * * 9bed e9afad,eeb589 9bed,ed49 00009bed,0000ed49 9eca * * 9eca * * 9eca -16088 * * * * * * * * * * * * * * 9ecc * * * -16089 * * * * * * * 4c5b e4b19b,eeb58c 4c5b,ed4c 00004c5b,0000ed4c 9ecd * * 9ecd * * 9ecd -16090 * * * * * * * ed4f f0a9bf9e,eeb58f d867dfde,ed4f 00029fde,0000ed4f 9ed0 * * 9ed0 * * 9ed0 -16091 * * * * * * * 845c e8919c,eeb590 845c,ed50 0000845c,0000ed50 9ed1 * * 9ed1 * * 9ed1 -16092 * * * * * * * ed52 eeb592,f0a78ab2 d85cdeb2,ed52 0000ed52,000272b2 9ed3 * * 9ed3 * * 9ed3 -16093 * * * * * * * 632e e68cae,eeb595 632e,ed55 0000632e,0000ed55 9ed6 * * 9ed6 * * 9ed6 -16094 * * * * * * * 7d25 e7b4a5,eeb596 7d25,ed56 00007d25,0000ed56 9ed7 * * 9ed7 c8a7 fc57 9ed7 -16095 * * * * * * * 3a2a e3a8aa,eeb599 3a2a,ed59 00003a2a,0000ed59 9eda * * 9eda * * 9eda -16096 * * * * * * * 9008 e98088,eeb59a 9008,ed5a 00009008,0000ed5a 9edb * * 9edb * fcbe 9edb -16097 * * * * * * * 52cc e58b8c,eeb59b 52cc,ed5b 000052cc,0000ed5b 9edc * * 9edc * * 9edc -16098 * * * * * * * 3e74 e3b9b4,eeb59c 3e74,ed5c 00003e74,0000ed5c 9edd * * 9edd * * 9edd -16099 * * * * * * * 367a e399ba,eeb59d 367a,ed5d 0000367a,0000ed5d 9ede * * 9ede * * 9ede -16100 * * * * * * * 45e9 e497a9,eeb59e 45e9,ed5e 000045e9,0000ed5e 9edf * * 9edf * * 9edf -16101 * * * * * * * ed5f f0a0928e,eeb59f d841dc8e,ed5f 0002048e,0000ed5f 9ee0 * * 9ee0 * * 9ee0 -16102 * * * * * * * 7640 e79980,eeb5a0 7640,ed60 00007640,0000ed60 9ee1 * * 9ee1 * * 9ee1 -16103 * * * * * * * 5af0 e5abb0,eeb5a1 5af0,ed61 00005af0,0000ed61 9ee2 * * 9ee2 * * 9ee2 -16104 * * * * * * * ed62 f0a0bab6,eeb5a2 d843deb6,ed62 00020eb6,0000ed62 9ee3 * * 9ee3 * * 9ee3 -16105 * * * * * * * 787a e7a1ba,eeb5a3 787a,ed63 0000787a,0000ed63 9ee4 * * 9ee4 * * 9ee4 -16106 * * * * * * * 47b6 e49eb6,f0a7bcae,eeb5a4 47b6,d85fdf2e,ed64 000047b6,00027f2e,0000ed64 9ee5 * * 9ee5 * * 9ee5 -16107 * * * * * * * 58a7 e5a2a7,eeb5a5 58a7,ed65 000058a7,0000ed65 9ee6 * * 9ee6 * * 9ee6 -16108 * * * * * * * 40bf e482bf,eeb5a6 40bf,ed66 000040bf,0000ed66 9ee7 * * 9ee7 * * 9ee7 -16109 * * * * * * * 567c e599bc,eeb5a7 567c,ed67 0000567c,0000ed67 9ee8 * * 9ee8 c7b9 fad5 9ee8 -16110 * * * * * * * 9b8b e9ae8b,eeb5a8 9b8b,ed68 00009b8b,0000ed68 9ee9 * * 9ee9 * * 9ee9 -16111 * * * * * * * 5d74 e5b5b4,eeb5a9 5d74,ed69 00005d74,0000ed69 9eea * * 9eea * fb45 9eea -16112 * * * * * * * 7654 e79994,eeb5aa 7654,ed6a 00007654,0000ed6a 9eeb * * 9eeb * * 9eeb -16113 * * * * * * * ed6b f0aa90b4,eeb5ab d869dc34,ed6b 0002a434,0000ed6b 9eec * * 9eec * * 9eec -16114 * * * * * * * 9e85 e9ba85,eeb5ac 9e85,ed6c 00009e85,0000ed6c 9eed * * 9eed * * 9eed -16115 * * * * * * * 4ce1 e4b3a1,eeb5ad 4ce1,ed6d 00004ce1,0000ed6d 9eee * * 9eee * * 9eee -16116 * * * * * * * * * * * * * * 9eef * * * -16117 * * * * * * * 37fb e39fbb,eeb5af 37fb,ed6f 000037fb,0000ed6f 9ef0 * * 9ef0 * * 9ef0 -16118 * * * * * * * 6119 e68499,eeb5b0 6119,ed70 00006119,0000ed70 9ef1 * * 9ef1 * * 9ef1 -16119 * * * * * * * ed72 f0a48fb2,eeb5b2 d850dff2,ed72 000243f2,0000ed72 9ef3 * * 9ef3 * * 9ef3 -16120 * * * * * * * * eeb5b3 ed73 0000ed73 9ef4 * * 9ef4 * * 9ef4 -16121 * * * * * * * 565d e5999d,eeb5b4 565d,ed74 0000565d,0000ed74 9ef5 * * 9ef5 * fad2 9ef5 -16122 * * * * * * * ed78 f0a9b886,eeb5b8 d867de06,ed78 00029e06,0000ed78 9ef9 * * 9ef9 * * 9ef9 -16123 * * * * * * * 5234 e588b4,eeb5b9 5234,ed79 00005234,0000ed79 9efa * * 9efa * * 9efa -16124 * * * * * * * 35ad e396ad,eeb5bb 35ad,ed7b 000035ad,0000ed7b 9efc * * 9efc * * 9efc -16125 * * * * * * * * * * * * * * 9efd * * * -16126 * * * * * * * 9d7c e9b5bc,eeb5bd 9d7c,ed7d 00009d7c,0000ed7d 9efe * * 9efe * * 9efe -16127 * * * * * * * 7c56 e7b196,eeb5be 7c56,ed7e 00007c56,0000ed7e 9f40 * * 9f40 * * 9f40 -16128 * * * * * * * 9b39 e9acb9,eeb5bf 9b39,ed7f 00009b39,0000ed7f 9f41 * * 9f41 * * 9f41 -16129 * * * * * * * 57de e59f9e,eeb680 57de,ed80 000057de,0000ed80 9f42 * * 9f42 * * 9f42 -16130 * * * * * * * 5c53 e5b193,eeb682 5c53,ed82 00005c53,0000ed82 9f44 * * 9f44 * * 9f44 -16131 * * * * * * * 64d3 e69393,eeb683 64d3,ed83 000064d3,0000ed83 9f45 * * 9f45 * * 9f45 -16132 * * * * * * * ed84 f0a99390,eeb684 d865dcd0,ed84 000294d0,0000ed84 9f46 * * 9f46 * * 9f46 -16133 * * * * * * * ed85 f0a68cb5,eeb685 d858df35,ed85 00026335,0000ed85 9f47 * * 9f47 * * 9f47 -16134 * * * * * * * 86ad e89aad,eeb687 86ad,ed87 000086ad,0000ed87 9f49 * * 9f49 * * 9f49 -16135 * * * * * * * ed88 f0a0b4a8,eeb688 d843dd28,ed88 00020d28,0000ed88 9f4a * * 9f4a * * 9f4a -16136 * * * * * * * ed8b f0a0b5b1,eeb68b d843dd71,ed8b 00020d71,0000ed8b 9f4d * * 9f4d c77a fab4 9f4d -16137 * * * * * * * * eeb68c ed8c 0000ed8c 9f4e * * 9f4e * * 9f4e -16138 * * * * * * * 51fe e587be,eeb68d 51fe,ed8d 000051fe,0000ed8d 9f4f fbbf 8fb3 9f4f * fa5e 9f4f -16139 * * * * * * * ed8e f0a1bc8f,eeb68e d847df0f,ed8e 00021f0f,0000ed8e 9f50 fc46 91ac 9f50 * * 9f50 -16140 * * * * * * * 5d8e e5b68e,eeb68f 5d8e,ed8f 00005d8e,0000ed8f 9f51 fc45 8fe6 9f51 * * 9f51 -16141 * * * * * * * 9703 e99c83,eeb690 9703,ed90 00009703,0000ed90 9f52 fea5 90e0 9f52 * * 9f52 -16142 * * * * * * * ed91 f0a1b791,eeb691 d847ddd1,ed91 00021dd1,0000ed91 9f53 fc40 91a9 9f53 * * 9f53 -16143 * * * * * * * 9e81 e9ba81,eeb692 9e81,ed92 00009e81,0000ed92 9f54 feed 9147 9f54 * * 9f54 -16144 * * * * * * * 904c e9818c,eeb693 904c,ed93 0000904c,0000ed93 9f55 fe6e 90c6 9f55 * * 9f55 -16145 * * * * * * * 7b1f e7ac9f,eeb694 7b1f,ed94 00007b1f,0000ed94 9f56 fd78 8f59 9f56 * * 9f56 -16146 * * * * * * * 9b02 e9ac82,eeb695 9b02,ed95 00009b02,0000ed95 9f57 fed0 90f5 9f57 * * 9f57 -16147 * * * * * * * 5cd1 e5b391,eeb696 5cd1,ed96 00005cd1,0000ed96 9f58 fc41 91ab 9f58 * * 9f58 -16148 * * * * * * * 7ba3 e7aea3,eeb697 7ba3,ed97 00007ba3,0000ed97 9f59 fd7a 8f40 9f59 * * 9f59 -16149 * * * * * * * 6268 e689a8,eeb698 6268,ed98 00006268,0000ed98 9f5a fc77 8ea7 9f5a * * 9f5a -16150 * * * * * * * 6335 e68cb5,eeb699 6335,ed99 00006335,0000ed99 9f5b fc7d 8f6e 9f5b c7ee fb67 9f5b -16151 * * * * * * * 9aff e9abbf,eeb69a 9aff,ed9a 00009aff,0000ed9a 9f5c fed1 90f6 9f5c * * 9f5c -16152 * * * * * * * 7bcf e7af8f,eeb69b 7bcf,ed9b 00007bcf,0000ed9b 9f5d fd7b 8e59 9f5d * * 9f5d -16153 * * * * * * * 9b2a e9acaa,eeb69c 9b2a,ed9c 00009b2a,0000ed9c 9f5e fecb 9048 9f5e c8ec fce6 9f5e -16154 * * * * * * * 7c7e e7b1be,eeb69d 7c7e,ed9d 00007c7e,0000ed9d 9f5f fda5 8ed4 9f5f * * 9f5f -16155 * * * * * * * * * * * * fecc 8e48 9f60 * * * -16156 * * * * * * * 7c42 e7b182,eeb69f 7c42,ed9f 00007c42,0000ed9f 9f61 fd7e 8ee0 9f61 * * 9f61 -16157 * * * * * * * 7c86 e7b286,eeb6a0 7c86,eda0 00007c86,0000eda0 9f62 fda6 8ecd 9f62 * * 9f62 -16158 * * * * * * * 9c15 e9b095,eeb6a1 9c15,eda1 00009c15,0000eda1 9f63 fedc 8eeb 9f63 * * 9f63 -16159 * * * * * * * 7bfc e7afbc,eeb6a2 7bfc,eda2 00007bfc,0000eda2 9f64 fd7d 9065 9f64 * fc50 9f64 -16160 * * * * * * * 9b09 e9ac89,eeb6a3 9b09,eda3 00009b09,0000eda3 9f65 fed3 90f7 9f65 * * 9f65 -16161 * * * * * * * * * * * * fef6 914c 9f66 * * * -16162 * * * * * * * 9c2e e9b0ae 9c2e 00009c2e * fee1 8ef0 9f67 c8f2 fcef * -16163 * * * * * * * 9f5a e9bd9a,eeb6a7 9f5a,eda7 00009f5a,0000eda7 9f69 fefc 9150 9f69 * * 9f69 -16164 * * * * * * * 5573 e595b3,eeb6a8 5573,eda8 00005573,0000eda8 9f6a fbd4 8fd5 9f6a * * 9f6a -16165 * * * * * * * 5bc3 e5af83,eeb6a9 5bc3,eda9 00005bc3,0000eda9 9f6b fc52 9248 9f6b * * 9f6b -16166 * * * * * * * 4ffd e4bfbd,eeb6aa 4ffd,edaa 00004ffd,0000edaa 9f6c fba1 9169 9f6c * * 9f6c -16167 * * * * * * * 9e98 e9ba98,eeb6ab 9e98,edab 00009e98,0000edab 9f6d fb6f,fef1 9042 9f6d * * 9f6d -16168 * * * * * * * 4ff2 e4bfb2,eeb6ac 4ff2,edac 00004ff2,0000edac 9f6e fb7d 8fa7 9f6e * * 9f6e -16169 * * * * * * * 5260 e589a0,eeb6ad 5260,edad 00005260,0000edad 9f6f fbac 8e65 9f6f * * 9f6f -16170 * * * * * * * 52d1 e58b91,eeb6af 52d1,edaf 000052d1,0000edaf 9f71 fbb1 8eb5 9f71 * * 9f71 -16171 * * * * * * * 5767 e59da7,eeb6b0 5767,edb0 00005767,0000edb0 9f72 fbea 8f6b 9f72 * * 9f72 -16172 * * * * * * * 5056 e58196,eeb6b1 5056,edb1 00005056,0000edb1 9f73 fb7c 8eaf 9f73 * * 9f73 -16173 * * * * * * * 59b7 e5a6b7,eeb6b2 59b7,edb2 000059b7,0000edb2 9f74 fbf3 8ead 9f74 * * 9f74 -16174 * * * * * * * 5e12 e5b892,eeb6b3 5e12,edb3 00005e12,0000edb3 9f75 fc49 8fd1 9f75 * * 9f75 -16175 * * * * * * * 97c8 e99f88,eeb6b4 97c8,edb4 000097c8,0000edb4 9f76 feaf 90e6 9f76 * * 9f76 -16176 * * * * * * * 9dab e9b6ab,eeb6b5 9dab,edb5 00009dab,0000edb5 9f77 feea 9144 9f77 c8f8 fcf6 9f77 -16177 * * * * * * * 8f5c e8bd9c,eeb6b6 8f5c,edb6 00008f5c,0000edb6 9f78 fe5b 90c2 9f78 * * 9f78 -16178 * * * * * * * 5469 e591a9,eeb6b7 5469,edb7 00005469,0000edb7 9f79 fbcb 8fa1 9f79 * * 9f79 -16179 * * * * * * * 97b4 e99eb4,eeb6b8 97b4,edb8 000097b4,0000edb8 9f7a feab 90e7 9f7a * * 9f7a -16180 * * * * * * * 9940 e9a580,eeb6b9 9940,edb9 00009940,0000edb9 9f7b fb69,fec0 8f49 9f7b * * 9f7b -16181 * * * * * * * 97ba e99eba,eeb6ba 97ba,edba 000097ba,0000edba 9f7c fead 90e4 9f7c * fcd6 9f7c -16182 * * * * * * * 532c e58cac,eeb6bb 532c,edbb 0000532c,0000edbb 9f7d fbc1 916c 9f7d * * 9f7d -16183 * * * * * * * 6130 e684b0,eeb6bc 6130,edbc 00006130,0000edbc 9f7e fc69 8fab 9f7e * * 9f7e -16184 * * * * * * * 692c e6a4ac,eeb6bd 692c,edbd 0000692c,0000edbd 9fa1 fcb4 8fc9 9fa1 * * 9fa1 -16185 * * * * * * * 53da e58f9a,eeb6be 53da,edbe 000053da,0000edbe 9fa2 fbd2 8fcb 9fa2 * fa73 9fa2 -16186 * * * * * * * 9c0a e9b08a,eeb6bf 9c0a,edbf 00009c0a,0000edbf 9fa3 fedd 8ef7 9fa3 * * 9fa3 -16187 * * * * * * * 9d02 e9b482,eeb780 9d02,edc0 00009d02,0000edc0 9fa4 fee6 9143 9fa4 * * 9fa4 -16188 * * * * * * * 4c3b e4b0bb,eeb781 4c3b,edc1 00004c3b,0000edc1 9fa5 fed5 90f9 9fa5 * * 9fa5 -16189 * * * * * * * 9641 e99981,eeb782 9641,edc2 00009641,0000edc2 9fa6 fe7d 90d9 9fa6 * * 9fa6 -16190 * * * * * * * 6980 e6a680,eeb783 6980,edc3 00006980,0000edc3 9fa7 fcbb 8f61 9fa7 * * 9fa7 -16191 * * * * * * * 50a6 e582a6,eeb784 50a6,edc4 000050a6,0000edc4 9fa8 fba3 8fa2 9fa8 * * 9fa8 -16192 * * * * * * * 7546 e79586,eeb785 7546,edc5 00007546,0000edc5 9fa9 fbbe 91dc 9fa9 * * 9fa9 -16193 * * * * * * * edc6 f0a19dad,eeb786 d845df6d,edc6 0002176d,0000edc6 9faa fbfa 8ffc 9faa * * 9faa -16194 * * * * * * * 99da e9a79a,eeb787 99da,edc7 000099da,0000edc7 9fab fec5 8ee6 9fab * * 9fab -16195 * * * * * * * 5273 e589b3,eeb788 5273,edc8 00005273,0000edc8 9fac fbae 9052 9fac * * 9fac -16196 * * * * * * * * eeb789 edc9 0000edc9 9fad fbd6 8fb9 9fad * * 9fad -16197 * * * * * * * 9159 e98599,eeb78a 9159,edca 00009159,0000edca 9fae fe61 8efc 9fae * * 9fae -16198 * * * * * * * 9681 e99a81,eeb78b 9681,edcb 00009681,0000edcb 9faf fea3 90dd 9faf * * 9faf -16199 * * * * * * * 915c e9859c,eeb78c 915c,edcc 0000915c,0000edcc 9fb0 fe60 8f41 9fb0 * * 9fb0 -16200 * * * * * * * * f0ab91b3,eeb78d d86ddc73,edcd 0002b473,0000edcd 9fb1 fe5f 90ce 9fb1 * * 9fb1 -16201 * * * * * * * 9151 e98591,eeb78e 9151,edce 00009151,0000edce 9fb2 fe5e 8f45 9fb2 * * 9fb2 -16202 * * * * * * * edcf f0a8ba97,eeb78f d863de97,edcf 00028e97,0000edcf 9fb3 fe7e 90da 9fb3 * * 9fb3 -16203 * * * * * * * 637f e68dbf,eeb790 637f,edd0 0000637f,0000edd0 9fb4 fca1 8ff2 9fb4 * * 9fb4 -16204 * * * * * * * 6aca e6ab8a,eeb792 6aca,edd2 00006aca,0000edd2 9fb6 fcc9 91c6 9fb6 * * 9fb6 -16205 * * * * * * * 5611 e59891,eeb793 5611,edd3 00005611,0000edd3 9fb7 fbdd 917a 9fb7 c7b0 faca 9fb7 -16206 * * * * * * * 918e e9868e,eeb794 918e,edd4 0000918e,0000edd4 9fb8 fe65 90cb 9fb8 * * 9fb8 -16207 * * * * * * * 757a e795ba,eeb795 757a,edd5 0000757a,0000edd5 9fb9 fd4b 91dd 9fb9 * fa43 9fb9 -16208 * * * * * * * 6285 e68a85,eeb796 6285,edd6 00006285,0000edd6 9fba fc78 8fc3 9fba c7e7 fb5f 9fba -16209 * * * * * * * 734f e78d8f,eeb798 734f,edd8 0000734f,0000edd8 9fbc fcf4 8fda 9fbc * * 9fbc -16210 * * * * * * * 7c70 e7b1b0,eeb799 7c70,edd9 00007c70,0000edd9 9fbd fda4 9069 9fbd * * 9fbd -16211 * * * * * * * edda f0a5b0a1,eeb79a d857dc21,edda 00025c21,0000edda 9fbe fd7c 9064 9fbe * * 9fbe -16212 * * * * * * * * eeb79c eddc 0000eddc 9fc0 fdf7 907d 9fc0 * * 9fc0 -16213 * * * * * * * 76d6 e79b96,eeb79e 76d6,edde 000076d6,0000edde 9fc2 fd50 91e1 9fc2 * * 9fc2 -16214 * * * * * * * 9b9d e9ae9d,eeb79f 9b9d,eddf 00009b9d,0000eddf 9fc3 fed8 8f48 9fc3 * * 9fc3 -16215 * * * * * * * 4e2a e4b8aa,eeb7a0 4e2a,ede0 00004e2a,0000ede0 9fc4 fb71 8ebc 9fc4 * * 9fc4 -16216 * * * * * * * ede1 f0a0b394,eeb7a1 d843dcd4,ede1 00020cd4,0000ede1 9fc5 fa74 * 9fc5 c76f faa8 9fc5 -16217 * * * * * * * 83be e88ebe,eeb7a2 83be,ede2 000083be,0000ede2 9fc6 fb61,fdef 8e42 9fc6 * * 9fc6 -16218 * * * * * * * 8842 e8a182,eeb7a3 8842,ede3 00008842,0000ede3 9fc7 fdda 8f55 9fc7 * * 9fc7 -16219 * * * * * * * * eeb7a4 ede4 0000ede4 9fc8 fb72 8ff5 9fc8 * * 9fc8 -16220 * * * * * * * 5c4a e5b18a,eeb7a5 5c4a,ede5 00005c4a,0000ede5 9fc9 fbfd 8f7e 9fc9 * * 9fc9 -16221 * * * * * * * 69c0 e6a780,eeb7a6 69c0,ede6 000069c0,0000ede6 9fca fcbf 91c2 9fca * * 9fca -16222 * * * * * * * * * * * * fba7 8fec 9fcb * * * -16223 * * * * * * * 577a * * * * fbe9 91a4 9fcc * * * -16224 * * * * * * * 521f e5889f,eeb7a9 521f,ede9 0000521f,0000ede9 9fcd fbab 8f79 9fcd * * 9fcd -16225 * * * * * * * 5df5 e5b7b5,eeb7aa 5df5,edea 00005df5,0000edea 9fce fc47 9263 9fce * * 9fce -16226 * * * * * * * 4ece e4bb8e,eeb7ab 4ece,edeb 00004ece,0000edeb 9fcf fb73 9165 9fcf * * 9fcf -16227 * * * * * * * 6c31 e6b0b1,eeb7ac 6c31,edec 00006c31,0000edec 9fd0 fcf8 8fdc 9fd0 * * 9fd0 -16228 * * * * * * * eded f0a087b2,eeb7ad d840ddf2,eded 000201f2,0000eded 9fd1 fb76 91f1 9fd1 * * 9fd1 -16229 * * * * * * * 4f39 e4bcb9,eeb7ae 4f39,edee 00004f39,0000edee 9fd2 fb77 9167 9fd2 * * 9fd2 -16230 * * * * * * * 549c e5929c,eeb7af 549c,edef 0000549c,0000edef 9fd3 fbcd 8e73 9fd3 * * 9fd3 -16231 * * * * * * * * * * * * * 9172 9fd4 * * * -16232 * * * * * * * 529a e58a9a,eeb7b1 529a,edf1 0000529a,0000edf1 9fd5 fbaf 8eba 9fd5 * * 9fd5 -16233 * * * * * * * 8d82 e8b682,eeb7b2 8d82,edf2 00008d82,0000edf2 9fd6 fe50 90ba 9fd6 * * 9fd6 -16234 * * * * * * * 35fe e397be,eeb7b3 35fe,edf3 000035fe,0000edf3 9fd7 fad1 * 9fd7 c7ba fad6 9fd7 -16235 * * * * * * * * * * * * fc4d 8f72 9fd8 * * * -16236 * * * * * * * 35f3 e397b3,eeb7b5 35f3,edf5 000035f3,0000edf5 9fd9 fbe2 917e 9fd9 * fad1 9fd9 -16237 * * * * * * * * eeb7b6 edf6 0000edf6 9fda fb49 * 9fda c75d fa6f 9fda -16238 * * * * * * * 6b52 e6ad92,eeb7b7 6b52,edf7 00006b52,0000edf7 9fdb fccb 8f68 9fdb * * 9fdb -16239 * * * * * * * 917c e985bc,eeb7b8 917c,edf8 0000917c,0000edf8 9fdc fe64 90c9 9fdc * * 9fdc -16240 * * * * * * * 9fa5 e9bea5,eeb7b9 9fa5,edf9 00009fa5,0000edf9 9fdd feb3 8ebd 9fdd * * 9fdd -16241 * * * * * * * 9b97 e9ae97,eeb7ba 9b97,edfa 00009b97,0000edfa 9fde fed9 8f51 9fde * * 9fde -16242 * * * * * * * 982e e9a0ae,eeb7bb 982e,edfb 0000982e,0000edfb 9fdf feb2 90ea 9fdf * * 9fdf -16243 * * * * * * * 98b4 e9a2b4,eeb7bc 98b4,edfc 000098b4,0000edfc 9fe0 feb8 9046 9fe0 * * 9fe0 -16244 * * * * * * * 9aba e9aaba,eeb7bd 9aba,edfd 00009aba,0000edfd 9fe1 fec8 90f3 9fe1 * * 9fe1 -16245 * * * * * * * 9ea8 e9baa8,eeb7be 9ea8,edfe 00009ea8,0000edfe 9fe2 fef3 914a 9fe2 * * 9fe2 -16246 * * * * * * * 9e84 e9ba84,eeb7bf 9e84,edff 00009e84,0000edff 9fe3 feee 9148 9fe3 * * 9fe3 -16247 * * * * * * * 7b14 e7ac94,eeb881 7b14,ee01 00007b14,0000ee01 9fe5 fd75 91eb 9fe5 * * 9fe5 -16248 * * * * * * * * eeb882 ee02 0000ee02 9fe6 fcd7 8fcd 9fe6 * * 9fe6 -16249 * * * * * * * 6bfa e6afba,eeb883 6bfa,ee03 00006bfa,0000ee03 9fe7 fccc 8ff8 9fe7 * * 9fe7 -16250 * * * * * * * 8818 e8a098,eeb884 8818,ee04 00008818,0000ee04 9fe8 fdd8 90ae 9fe8 * * 9fe8 -16251 * * * * * * * 7f78 e7bdb8,eeb885 7f78,ee05 00007f78,0000ee05 9fe9 fde7 8f4c 9fe9 * * 9fe9 -16252 * * * * * * * * eeb886 ee06 0000ee06 9fea fb60,fde5 8f4e 9fea * * 9fea -16253 * * * * * * * 5620 e598a0,eeb887 5620,ee07 00005620,0000ee07 9feb fbe6 8f6c 9feb * * 9feb -16254 * * * * * * * ee08 f0aa998a,eeb888 d869de4a,ee08 0002a64a,0000ee08 9fec fefe * 9fec * * 9fec -16255 * * * * * * * 8e77 e8b9b7,eeb889 8e77,ee09 00008e77,0000ee09 9fed fe56 90bf 9fed * * 9fed -16256 * * * * * * * 9f53 e9bd93,eeb88a 9f53,ee0a 00009f53,0000ee0a 9fee fefb 914f 9fee * * 9fee -16257 * * * * * * * * eeb88b ee0b 0000ee0b 9fef fe77 * 9fef * * 9fef -16258 * * * * * * * 8dd4 e8b794,eeb88c 8dd4,ee0c 00008dd4,0000ee0c 9ff0 fe52 90bb 9ff0 * * 9ff0 -16259 * * * * * * * 8e4f e8b98f,eeb88d 8e4f,ee0d 00008e4f,0000ee0d 9ff1 fe55 90bd 9ff1 * * 9ff1 -16260 * * * * * * * 9e1c e9b89c,eeb88e 9e1c,ee0e 00009e1c,0000ee0e 9ff2 feec 9145 9ff2 * * 9ff2 -16261 * * * * * * * 8e01 e8b881,eeb88f 8e01,ee0f 00008e01,0000ee0f 9ff3 fe54 90bc 9ff3 * * 9ff3 -16262 * * * * * * * 6282 e68a82,eeb890 6282,ee10 00006282,0000ee10 9ff4 fc79 8fc6 9ff4 * * 9ff4 -16263 * * * * * * * ee11 f0a88dbd,eeb891 d860df7d,ee11 0002837d,0000ee11 9ff5 fe5a 90c1 9ff5 * * 9ff5 -16264 * * * * * * * 8e28 e8b8a8,eeb892 8e28,ee12 00008e28,0000ee12 9ff6 fe53 8ec3 9ff6 * * 9ff6 -16265 * * * * * * * 8e75 e8b9b5,eeb893 8e75,ee13 00008e75,0000ee13 9ff7 fe57 90be 9ff7 * * 9ff7 -16266 * * * * * * * 7ad3 e7ab93,eeb894 7ad3,ee14 00007ad3,0000ee14 9ff8 fd68 8f60 9ff8 * * 9ff8 -16267 * * * * * * * 7a3e e7a8be,eeb896 7a3e,ee16 00007a3e,0000ee16 9ffa fd66 91f2 9ffa * * 9ffa -16268 * * * * * * * 78d8 e7a398,eeb897 78d8,ee17 000078d8,0000ee17 9ffb fd59 8ec2 9ffb * * 9ffb -16269 * * * * * * * 6cea e6b3aa,eeb898 6cea,ee18 00006cea,0000ee18 9ffc fccd 8e6a 9ffc * * 9ffc -16270 * * * * * * * 8a67 e8a9a7,eeb899 8a67,ee19 00008a67,0000ee19 9ffd fd74 9241 9ffd * * 9ffd -16271 * * * * * * * 7607 e79887,eeb89a 7607,ee1a 00007607,0000ee1a 9ffe fd6d 91de 9ffe c870 fbe6 9ffe -16272 * * * * * * * 9f26 e9bca6,eeb89c 9f26,ee1c 00009f26,0000ee1c a041 fb70,fef7 914d a041 c8fd fcfc a041 -16273 * * * * * * * 6cce e6b38e,eeb89d 6cce,ee1d 00006cce,0000ee1d a042 fccf 8f73 a042 * * a042 -16274 * * * * * * * 87d6 e89f96,eeb89e 87d6,ee1e 000087d6,0000ee1e a043 fdd5 915e a043 * fc7b a043 -16275 * * * * * * * 75c3 e79783,eeb89f 75c3,ee1f 000075c3,0000ee1f a044 fd6c 8e53 a044 * * a044 -16276 * * * * * * * ee20 f0aa8ab2,eeb8a0 d868deb2,ee20 0002a2b2,0000ee20 a045 feef 8eea a045 * * a045 -16277 * * * * * * * 7853 e7a193,eeb8a1 7853,ee21 00007853,0000ee21 a046 fd56 8edd a046 * * a046 -16278 * * * * * * * 8d0c e8b48c,eeb8a3 8d0c,ee23 00008d0c,0000ee23 a048 fe4e 8edc a048 * * a048 -16279 * * * * * * * 72e2 e78ba2,eeb8a4 72e2,ee24 000072e2,0000ee24 a049 fcef 91d7 a049 * * a049 -16280 * * * * * * * 7371 e78db1,eeb8a5 7371,ee25 00007371,0000ee25 a04a fcf5 91da a04a * * a04a -16281 * * * * * * * 8b2d e8acad,eeb8a6 8b2d,ee26 00008b2d,0000ee26 a04b fe46 8e4a a04b * fcaf a04b -16282 * * * * * * * 7302 e78c82,eeb8a7 7302,ee27 00007302,0000ee27 a04c fcf0 8fea a04c c864 fbd6 a04c -16283 * * * * * * * 74f1 e793b1,eeb8a8 74f1,ee28 000074f1,0000ee28 a04d fd41 8e74 a04d * * a04d -16284 * * * * * * * 8ceb e8b3ab,eeb8a9 8ceb,ee29 00008ceb,0000ee29 a04e fe4c 8eee a04e * * a04e -16285 * * * * * * * ee2a f0a4aabb,eeb8aa d852debb,ee2a 00024abb,0000ee2a a04f fcfe 8fce a04f * * a04f -16286 * * * * * * * 862f e898af,eeb8ab 862f,ee2b 0000862f,0000ee2b a050 fb62,fdfa 90a5 a050 * * a050 -16287 * * * * * * * 5fba e5beba,eeb8ac 5fba,ee2c 00005fba,0000ee2c a051 fc5c 8e63 a051 * * a051 -16288 * * * * * * * 88a0 e8a2a0,eeb8ad 88a0,ee2d 000088a0,0000ee2d a052 fde1 90b2 a052 * * a052 -16289 * * * * * * * 44b7 e492b7,eeb8ae 44b7,ee2e 000044b7,0000ee2e a053 fdeb 90a2 a053 * * a053 -16290 * * * * * * * * eeb8af ee2f 0000ee2f a054 fb5e,fddc 90af a054 * fc7e a054 -16291 * * * * * * * ee31 f0a6b885,eeb8b1 d85bde05,ee31 00026e05,0000ee31 a056 fdf5 907c a056 * * a056 -16292 * * * * * * * * f0aab9a7,eeb8b2 d86bde67,ee32 0002ae67,0000ee32 a057 fce7 91ee a057 * * a057 -16293 * * * * * * * 8a7e e8a9be,eeb8b3 8a7e,ee33 00008a7e,0000ee33 a058 fe43 90b7 a058 * * a058 -16294 * * * * * * * ee34 f0a2949b,eeb8b4 d849dd1b,ee34 0002251b,0000ee34 a059 fc59 9244 a059 * * a059 -16295 * * * * * * * * eeb8b5 ee35 0000ee35 a05a fc5e 91ce a05a * * a05a -16296 * * * * * * * 60fd e683bd,eeb8b6 60fd,ee36 000060fd,0000ee36 a05b fc68 91b5 a05b * * a05b -16297 * * * * * * * 7667 e799a7,eeb8b7 7667,ee37 00007667,0000ee37 a05c fd71 8e5f a05c * fbed a05c -16298 * * * * * * * 9ad7 e9ab97,eeb8b8 9ad7,ee38 00009ad7,0000ee38 a05d fb6c,feca 8e4e a05d c8eb fce4 a05d -16299 * * * * * * * 9d44 e9b584,eeb8b9 9d44,ee39 00009d44,0000ee39 a05e fee8 8ec0 a05e * * a05e -16300 * * * * * * * * e98dae,ee97ab,eeb8ba 936e,e5eb,ee3a 0000936e,0000e5eb,0000ee3a 92c8,a05f fe76 8e60 a05f * * 92c8,a05f -16301 * * * * * * * 9b8f e9ae8f,eeb8bb 9b8f,ee3b 00009b8f,0000ee3b a060 fed6 90fb a060 * * a060 -16302 * * * * * * * 87f5 e89fb5,eeb8bc 87f5,ee3c 000087f5,0000ee3c a061 fdd6 915f a061 * * a061 -16303 * * * * * * * * f0adbcbc,eeb8bd d877df3c,ee3d 0002df3c,0000ee3d a062 * 8fc5 a062 * * a062 -16304 * * * * * * * * * * * * * * a063 * * * -16305 * * * * * * * 8cf7 e8b3b7,eeb8bf 8cf7,ee3f 00008cf7,0000ee3f a064 fe4d 8ee8 a064 * * a064 -16306 * * * * * * * 732c e78cac,eeb980 732c,ee40 0000732c,0000ee40 a065 fced 91d8 a065 c868 fbda a065 -16307 * * * * * * * 9721 e99ca1,eeb981 9721,ee41 00009721,0000ee41 a066 fea6 90df a066 * * a066 -16308 * * * * * * * 9bb0 e9aeb0,eeb982 9bb0,ee42 00009bb0,0000ee42 a067 feda 90fa a067 * * a067 -16309 * * * * * * * 35d6 e39796,eeb983 35d6,ee43 000035d6,0000ee43 a068 fbda 9175 a068 * * a068 -16310 * * * * * * * 72b2 e78ab2,eeb984 72b2,ee44 000072b2,0000ee44 a069 fcee 8fef a069 * * a069 -16311 * * * * * * * 4c07 e4b087,eeb985 4c07,ee45 00004c07,0000ee45 a06a fed2 8ebe a06a * * a06a -16312 * * * * * * * 7c51 e7b191,eeb986 7c51,ee46 00007c51,0000ee46 a06b fda1 9067 a06b * * a06b -16313 * * * * * * * 994a e9a58a,eeb987 994a,ee47 0000994a,0000ee47 a06c fec1 90f1 a06c * * a06c -16314 * * * * * * * 6159 e68599,eeb989 6159,ee49 00006159,0000ee49 a06e fc6d 8f71 a06e c7e6 fb5c a06e -16315 * * * * * * * 4c04 e4b084,eeb98a 4c04,ee4a 00004c04,0000ee4a a06f fed4 90f8 a06f * * a06f -16316 * * * * * * * 9e96 e9ba96,eeb98b 9e96,ee4b 00009e96,0000ee4b a070 faed * a070 c8fa fcf8 a070 -16317 * * * * * * * 617d e685bd,eeb98c 617d,ee4c 0000617d,0000ee4c a071 fc70 91b4 a071 * * a071 -16318 * * * * * * * * eeb98d ee4d 0000ee4d a072 fc58 8f74 a072 * * a072 -16319 * * * * * * * 575f e59d9f,eeb98e 575f,ee4e 0000575f,0000ee4e a073 fbe7 91a3 a073 * * a073 -16320 * * * * * * * 616f e685af,eeb98f 616f,ee4f 0000616f,0000ee4f a074 fc6e 8f7b a074 * * a074 -16321 * * * * * * * 62a6 e68aa6,eeb990 62a6,ee50 000062a6,0000ee50 a075 fc7a 8fa8 a075 c7ea fb63 a075 -16322 * * * * * * * 6239 e688b9,eeb991 6239,ee51 00006239,0000ee51 a076 fc76 91b8 a076 * * a076 -16323 * * * * * * * * * * * * fae8 * a077 * * * -16324 * * * * * * * 3a5c e3a99c,eeb993 3a5c,ee53 00003a5c,0000ee53 a078 fca4 91bc a078 * * a078 -16325 * * * * * * * 61e2 e687a2,eeb994 61e2,ee54 000061e2,0000ee54 a079 fc74 8eb3 a079 * fb5e a079 -16326 * * * * * * * 53aa e58eaa,eeb995 53aa,ee55 000053aa,0000ee55 a07a fbc7 8ea3 a07a * * a07a -16327 * * * * * * * 6364 e68da4,eeb997 6364,ee57 00006364,0000ee57 a07c fc7c 8f64 a07c * * a07c -16328 * * * * * * * 6802 e6a082,eeb998 6802,ee58 00006802,0000ee58 a07d fcb2 8ff1 a07d * * a07d -16329 * * * * * * * 35d2 e39792,eeb999 35d2,ee59 000035d2,0000ee59 a07e fbd8 9174 a07e * * a07e -16330 * * * * * * * 5d57 e5b597,eeb99a 5d57,ee5a 00005d57,0000ee5a a0a1 fc43 8feb a0a1 * * a0a1 -16331 * * * * * * * 8fda e8bf9a,eeb99c 8fda,ee5c 00008fda,0000ee5c a0a3 fe6b 8e61 a0a3 * * a0a3 -16332 * * * * * * * ee5d f0a8b8b9,eeb99d d863de39,ee5d 00028e39,0000ee5d a0a4 fe7b 90d7 a0a4 * * a0a4 -16333 * * * * * * * * eeb99e ee5e 0000ee5e a0a5 fbd9 8fa5 a0a5 * * a0a5 -16334 * * * * * * * 50d9 e58399,eeb99f 50d9,ee5f 000050d9,0000ee5f a0a6 fba5 8ea8 a0a6 * * a0a6 -16335 * * * * * * * 7906 e7a486,eeb9a1 7906,ee61 00007906,0000ee61 a0a8 fb52,fd5a 91e4 a0a8 * * a0a8 -16336 * * * * * * * 5332 e58cb2,eeb9a2 5332,ee62 00005332,0000ee62 a0a9 fbc0 916b a0a9 * * a0a9 -16337 * * * * * * * 9638 e998b8,eeb9a3 9638,ee63 00009638,0000ee63 a0aa fe7c 90d8 a0aa * * a0aa -16338 * * * * * * * ee64 f0a0bcbb,eeb9a4 d843df3b,ee64 00020f3b,0000ee64 a0ab fbdc 916f a0ab * * a0ab -16339 * * * * * * * 4065 e481a5,eeb9a5 4065,ee65 00004065,0000ee65 a0ac fd54 91e2 a0ac * * a0ac -16340 * * * * * * * * eeb9a6 ee66 0000ee66 a0ad fd5c 91e5 a0ad * * a0ad -16341 * * * * * * * 77fe e79fbe,eeb9a7 77fe,ee67 000077fe,0000ee67 a0ae faee * a0ae c877 fbf8 a0ae -16342 * * * * * * * * eeb9a8 ee68 0000ee68 a0af fdab 906e a0af * * a0af -16343 * * * * * * * 7cc2 e7b382,eeb9a9 7cc2,ee69 00007cc2,0000ee69 a0b0 fdaa 906d a0b0 * * a0b0 -16344 * * * * * * * ee6a f0a5bc9a,eeb9aa d857df1a,ee6a 00025f1a,0000ee6a a0b1 fdad 9264 a0b1 * * a0b1 -16345 * * * * * * * 7cda e7b39a,eeb9ab 7cda,ee6b 00007cda,0000ee6b a0b2 fdac 906c a0b2 * * a0b2 -16346 * * * * * * * 7a2d e7a8ad,eeb9ac 7a2d,ee6c 00007a2d,0000ee6c a0b3 fd65 91e9 a0b3 * fc46 a0b3 -16347 * * * * * * * 8066 e881a6,eeb9ad 8066,ee6d 00008066,0000ee6d a0b4 fdbb 8ecc a0b4 * * a0b4 -16348 * * * * * * * 8063 e881a3,eeb9ae 8063,ee6e 00008063,0000ee6e a0b5 fdba 8ed6 a0b5 * * a0b5 -16349 * * * * * * * 7d4d e7b58d,eeb9af 7d4d,ee6f 00007d4d,0000ee6f a0b6 fdae 8f4a a0b6 * * a0b6 -16350 * * * * * * * 7505 e79485,eeb9b0 7505,ee70 00007505,0000ee70 a0b7 fd44 8e70 a0b7 * * a0b7 -16351 * * * * * * * 74f2 e793b2,eeb9b1 74f2,ee71 000074f2,0000ee71 a0b8 fd42 8e77 a0b8 * * a0b8 -16352 * * * * * * * 8994 e8a694,eeb9b2 8994,ee72 00008994,0000ee72 a0b9 fdfe 90b3 a0b9 * * a0b9 -16353 * * * * * * * 821a e8889a,eeb9b3 821a,ee73 0000821a,0000ee73 a0ba fdca 907a a0ba * * a0ba -16354 * * * * * * * 670c e69c8c,eeb9b4 670c,ee74 0000670c,0000ee74 a0bb fdbf 9074 a0bb * * a0bb -16355 * * * * * * * 8062 e881a2,eeb9b5 8062,ee75 00008062,0000ee75 a0bc fdb9 8ed3 a0bc * * a0bc -16356 * * * * * * * ee76 f0a79286,eeb9b6 d85ddc86,ee76 00027486,0000ee76 a0bd fdd4 90ac a0bd * * a0bd -16357 * * * * * * * 805b e8819b,eeb9b7 805b,ee77 0000805b,0000ee77 a0be fdbc 8ecf a0be * * a0be -16358 * * * * * * * 74f0 e793b0,eeb9b8 74f0,ee78 000074f0,0000ee78 a0bf fd43 8e7a a0bf * * a0bf -16359 * * * * * * * 8103 e88483,eeb9b9 8103,ee79 00008103,0000ee79 a0c0 fdc0 9077 a0c0 * * a0c0 -16360 * * * * * * * 7724 e79ca4,eeb9ba 7724,ee7a 00007724,0000ee7a a0c1 fd51 8e4b a0c1 * * a0c1 -16361 * * * * * * * 8989 e8a689,eeb9bb 8989,ee7b 00008989,0000ee7b a0c2 fdfc 8ef1 a0c2 c8c2 fca7 a0c2 -16362 * * * * * * * ee7c f0a69f8c,eeb9bc d859dfcc,ee7c 000267cc,0000ee7c a0c3 fb4d * a0c3 * * a0c3 -16363 * * * * * * * 7553 e79593,eeb9bd 7553,ee7d 00007553,0000ee7d a0c4 fd48 8fad a0c4 * * a0c4 -16364 * * * * * * * 87a9 e89ea9,eeb9bf 87a9,ee7f 000087a9,0000ee7f a0c6 fdce 8ece a0c6 * * a0c6 -16365 * * * * * * * 87ce e89f8e,eeba80 87ce,ee80 000087ce,0000ee80 a0c7 fdd2 90ab a0c7 * fc78 a0c7 -16366 * * * * * * * 81c8 e88788,eeba81 81c8,ee81 000081c8,0000ee81 a0c8 fdc6 9079 a0c8 * * a0c8 -16367 * * * * * * * 878c e89e8c,eeba82 878c,ee82 0000878c,0000ee82 a0c9 fdcf 90a8 a0c9 * * a0c9 -16368 * * * * * * * 8a49 e8a989,eeba83 8a49,ee83 00008a49,0000ee83 a0ca fe44 90b6 a0ca * * a0ca -16369 * * * * * * * 8cad e8b2ad,eeba84 8cad,ee84 00008cad,0000ee84 a0cb fe4b 8ef9 a0cb * * a0cb -16370 * * * * * * * 8b43 e8ad83,eeba85 8b43,ee85 00008b43,0000ee85 a0cc fe47 8ec1 a0cc * * a0cc -16371 * * * * * * * 772b e79cab,eeba86 772b,ee86 0000772b,0000ee86 a0cd fd52 8f65 a0cd * fbf2 a0cd -16372 * * * * * * * 74f8 e793b8,eeba87 74f8,ee87 000074f8,0000ee87 a0ce fd46 8e71 a0ce * * a0ce -16373 * * * * * * * 84da e8939a,eeba88 84da,ee88 000084da,0000ee88 a0cf fdf2 90a4 a0cf * * a0cf -16374 * * * * * * * 69b2 e6a6b2,eeba8a 69b2,ee8a 000069b2,0000ee8a a0d1 fcbe 91c1 a0d1 * fbb2 a0d1 -16375 * * * * * * * 8da6 e8b6a6,eeba8b 8da6,ee8b 00008da6,0000ee8b a0d2 fe51 8ed1 a0d2 * * a0d2 -16376 * * * * * * * * eeba8c ee8c 0000ee8c a0d3 fdf1 8ee4 a0d3 * * a0d3 -16377 * * * * * * * * e8a6a9,ee9098,eeba8d 89a9,e418,ee8d 000089a9,0000e418,0000ee8d 8fcc,a0d4 fe41 9251 a0d4 c8c4 fca9 8fcc,a0d4 -16378 * * * * * * * * * * * * fcfd 8fee a0d5 * * * -16379 * * * * * * * 6db9 e6b6b9,eeba8f 6db9,ee8f 00006db9,0000ee8f a0d6 fcd3 9171 a0d6 * * a0d6 -16380 * * * * * * * 87c1 e89f81,eeba90 87c1,ee90 000087c1,0000ee90 a0d7 fdd1 90a9 a0d7 * * a0d7 -16381 * * * * * * * ee91 f0a48091,eeba91 d850dc11,ee91 00024011,0000ee91 a0d8 fcd6 91cd a0d8 * * a0d8 -16382 * * * * * * * 74e7 e793a7,eeba92 74e7,ee92 000074e7,0000ee92 a0d9 fd40 8ea1 a0d9 * * a0d9 -16383 * * * * * * * 3ddb e3b79b,eeba93 3ddb,ee93 00003ddb,0000ee93 a0da fafb * a0da c85e fbce a0da -16384 * * * * * * * 7176 e785b6,eeba94 7176,ee94 00007176,0000ee94 a0db fce2 8fbd a0db c85b fbcb a0db -16385 * * * * * * * 60a4 e682a4,ee85a6,eeba95 60a4,e166,ee95 000060a4,0000e166,0000ee95 fc6c,a0dc fc60 91b3 a0dc * * fc6c,a0dc -16386 * * * * * * * 619c e6869c,eeba96 619c,ee96 0000619c,0000ee96 a0dd fc6c 8f6f a0dd c7e4 fb5a a0dd -16387 * * * * * * * 3cd1 e3b391,eeba97 3cd1,ee97 00003cd1,0000ee97 a0de fcce 8f66 a0de * * a0de -16388 * * * * * * * * * * * * fce4 8e72 a0df * * * -16389 * * * * * * * 6077 e681b7,eeba99 6077,ee99 00006077,0000ee99 a0e0 fc5f 8eac a0e0 * * a0e0 -16390 * * * * * * * * eeba9a ee9a 0000ee9a a0e1 fc6b 8f6a a0e1 * * a0e1 -16391 * * * * * * * 7f71 e7bdb1,eeba9b 7f71,ee9b 00007f71,0000ee9b a0e2 fde6 9073 a0e2 * * a0e2 -16392 * * * * * * * * f0afa4a2 d87edd22 0002f922 * * * a0e4 * * * -16393 * * * * * * * 60e9 e683a9,eeba9e 60e9,ee9e 000060e9,0000ee9e a0e5 fc65 8fc4 a0e5 * * a0e5 -16394 * * * * * * * 4b7e e4adbe,eeba9f 4b7e,ee9f 00004b7e,0000ee9f a0e6 fec3 8eec a0e6 * * a0e6 -16395 * * * * * * * e000 f0a09587,ee8080 d841dd47,e000 00020547,0000e000 fa40 * * fa40 * * fa40 -16396 * * * * * * * 92db e98b9b,ee8081 92db,e001 000092db,0000e001 fa41 * * fa41 * * fa41 -16397 * * * * * * * e002 f0a0979f,ee8082 d841dddf,e002 000205df,0000e002 fa42 * * fa42 * * fa42 -16398 * * * * * * * e003 f0a3bf85,ee8083 d84fdfc5,e003 00023fc5,0000e003 fa43 * * fa43 * * fa43 -16399 * * * * * * * 854c e8958c,ee8084 854c,e004 0000854c,0000e004 fa44 * * fa44 * * fa44 -16400 * * * * * * * 42b5 e48ab5,ee8085 42b5,e005 000042b5,0000e005 fa45 * * fa45 * * fa45 -16401 * * * * * * * 73ef e78faf,ee8086 73ef,e006 000073ef,0000e006 fa46 * * fa46 * * fa46 -16402 * * * * * * * 51b5 e586b5,ee8087 51b5,e007 000051b5,0000e007 fa47 fbb7 8e79 fa47 * * fa47 -16403 * * * * * * * 3649 e39989,ee8088 3649,e008 00003649,0000e008 fa48 * * fa48 * * fa48 -16404 * * * * * * * e009 f0a4a582,ee8089 d852dd42,e009 00024942,0000e009 fa49 * * fa49 * * fa49 -16405 * * * * * * * e00a f0a8a7a4,ee808a d862dde4,e00a 000289e4,0000e00a fa4a * * fa4a * * fa4a -16406 * * * * * * * 9344 e98d84,ee808b 9344,e00b 00009344,0000e00b fa4b * * fa4b * * fa4b -16407 * * * * * * * e00c f0a1a79b,ee808c d846dddb,e00c 000219db,0000e00c fa4c * * fa4c * * fa4c -16408 * * * * * * * 82ee e88bae,ee808d 82ee,e00d 000082ee,0000e00d fa4d * * fa4d * * fa4d -16409 * * * * * * * e00e f0a3b388,ee808e d84fdcc8,e00e 00023cc8,0000e00e fa4e * * fa4e * * fa4e -16410 * * * * * * * 783c e7a0bc,ee808f 783c,e00f 0000783c,0000e00f fa4f * * fa4f * * fa4f -16411 * * * * * * * 6744 e69d84,ee8090 6744,e010 00006744,0000e010 fa50 * * fa50 * * fa50 -16412 * * * * * * * 62df e68b9f,ee8091 62df,e011 000062df,0000e011 fa51 * * fa51 * * fa51 -16413 * * * * * * * e012 f0a4a4b3,ee8092 d852dd33,e012 00024933,0000e012 fa52 * * fa52 * * fa52 -16414 * * * * * * * e013 f0a8a6aa,ee8093 d862ddaa,e013 000289aa,0000e013 fa53 * * fa53 * * fa53 -16415 * * * * * * * e014 f0a08aa0,ee8094 d840dea0,e014 000202a0,0000e014 fa54 * * fa54 * * fa54 -16416 * * * * * * * e015 f0a6aeb3,ee8095 d85adfb3,e015 00026bb3,0000e015 fa55 * * fa55 * * fa55 -16417 * * * * * * * e016 f0a18c85,ee8096 d844df05,e016 00021305,0000e016 fa56 * * fa56 * * fa56 -16418 * * * * * * * 4fab e4beab,ee8097 4fab,e017 00004fab,0000e017 fa57 fb7b 904f fa57 c748 fa4b fa57 -16419 * * * * * * * e018 f0a293ad,ee8098 d849dced,e018 000224ed,0000e018 fa58 * * fa58 * * fa58 -16420 * * * * * * * 5008 e58088,ee8099 5008,e019 00005008,0000e019 fa59 * * fa59 * * fa59 -16421 * * * * * * * e01a f0a6b4a9,ee809a d85bdd29,e01a 00026d29,0000e01a fa5a * * fa5a * * fa5a -16422 * * * * * * * e01b f0a7aa84,ee809b d85ede84,e01b 00027a84,0000e01b fa5b * * fa5b * * fa5b -16423 * * * * * * * e01c f0a39880,ee809c d84dde00,e01c 00023600,0000e01c fa5c * * fa5c * * fa5c -16424 * * * * * * * e01d f0a4aab1,ee809d d852deb1,e01d 00024ab1,0000e01d fa5d * * fa5d * * fa5d -16425 * * * * * * * e01e f0a29493,ee809e d849dd13,e01e 00022513,0000e01e fa5e * * fa5e * * fa5e -16426 * * * * * * * * * * * * * * fa5f * * * -16427 * * * * * * * e020 f0a08dbe,ee80a0 d840df7e,e020 0002037e,0000e020 fa60 * * fa60 * * fa60 -16428 * * * * * * * 5fa4 e5bea4,ee80a1 5fa4,e021 00005fa4,0000e021 fa61 fc5a 91ed fa61 * * fa61 -16429 * * * * * * * e022 f0a08e80,ee80a2 d840df80,e022 00020380,0000e022 fa62 * * fa62 * * fa62 -16430 * * * * * * * e023 f0a08d87,ee80a3 d840df47,e023 00020347,0000e023 fa63 * * fa63 * * fa63 -16431 * * * * * * * 6edb e6bb9b,ee80a4 6edb,e024 00006edb,0000e024 fa64 * * fa64 c853 fbc0 fa64 -16432 * * * * * * * e025 f0a0909f,ee80a5 d841dc1f,e025 0002041f,0000e025 fa65 * * fa65 * * fa65 -16433 * * * * * * * 50de e5839e 50de 000050de * * * fa66 * * * -16434 * * * * * * * 5101 e58481,ee80a7 5101,e027 00005101,0000e027 fa67 fba8 8f67 fa67 * * fa67 -16435 * * * * * * * 347a e391ba,ee80a8 347a,e028 0000347a,0000e028 fa68 * * fa68 * * fa68 -16436 * * * * * * * 510e e5848e,ee80a9 510e,e029 0000510e,0000e029 fa69 fba6 8ff4 fa69 c74a fa51 fa69 -16437 * * * * * * * 986c e9a1ac,ee80aa 986c,e02a 0000986c,0000e02a fa6a feb7 90ed fa6a * fcd8 fa6a -16438 * * * * * * * 3743 e39d83,ee80ab 3743,e02b 00003743,0000e02b fa6b * * fa6b * * fa6b -16439 * * * * * * * 8416 e89096,ee80ac 8416,e02c 00008416,0000e02c fa6c * * fa6c * * fa6c -16440 * * * * * * * e02d f0a4a6a4,ee80ad d852dda4,e02d 000249a4,0000e02d fa6d * * fa6d * * fa6d -16441 * * * * * * * e02e f0a09287,ee80ae d841dc87,e02e 00020487,0000e02e fa6e * * fa6e * * fa6e -16442 * * * * * * * 5160 e585a0,ee80af 5160,e02f 00005160,0000e02f fa6f * * fa6f * * fa6f -16443 * * * * * * * e030 f0a38eb4,ee80b0 d84cdfb4,e030 000233b4,0000e030 fa70 * * fa70 * * fa70 -16444 * * * * * * * 516a e585aa,ee80b1 516a,e031 0000516a,0000e031 fa71 * * fa71 * * fa71 -16445 * * * * * * * e032 f0a0afbf,ee80b2 d842dfff,e032 00020bff,0000e032 fa72 * * fa72 * * fa72 -16446 * * * * * * * e033 f0a283bc,ee80b3 d848dcfc,e033 000220fc,0000e033 fa73 * * fa73 * * fa73 -16447 * * * * * * * e034 f0a08ba5,ee80b4 d840dee5,e034 000202e5,0000e034 fa74 * * fa74 * * fa74 -16448 * * * * * * * e035 f0a294b0,ee80b5 d849dd30,e035 00022530,0000e035 fa75 * * fa75 * * fa75 -16449 * * * * * * * e036 f0a0968e,ee80b6 d841dd8e,e036 0002058e,0000e036 fa76 * * fa76 * * fa76 -16450 * * * * * * * e037 f0a388b3,ee80b7 d84cde33,e037 00023233,0000e037 fa77 * * fa77 * * fa77 -16451 * * * * * * * e038 f0a1a683,ee80b8 d846dd83,e038 00021983,0000e038 fa78 * * fa78 * * fa78 -16452 * * * * * * * 5b82 e5ae82,ee80b9 5b82,e039 00005b82,0000e039 fa79 fc4f 8fb5 fa79 * * fa79 -16453 * * * * * * * 877d e89dbd,ee80ba 877d,e03a 0000877d,0000e03a fa7a * * fa7a * * fa7a -16454 * * * * * * * e03b f0a096b3,ee80bb d841ddb3,e03b 000205b3,0000e03b fa7b * * fa7b * * fa7b -16455 * * * * * * * e03c f0a3b299,ee80bc d84fdc99,e03c 00023c99,0000e03c fa7c * * fa7c * * fa7c -16456 * * * * * * * 51b2 e586b2,ee80bd 51b2,e03d 000051b2,0000e03d fa7d fbb6 9249 fa7d c74f fa58 fa7d -16457 * * * * * * * 51b8 e586b8,ee80be 51b8,e03e 000051b8,0000e03e fa7e * * fa7e c750 fa59 fa7e -16458 * * * * * * * 9d34 e9b4b4,ee80bf 9d34,e03f 00009d34,0000e03f faa1 * * faa1 * * faa1 -16459 * * * * * * * 51c9 e58789,ee8180 51c9,e040 000051c9,0000e040 faa2 fbb9 8e76 faa2 c751 fa5a faa2 -16460 * * * * * * * 51cf e5878f,ee8181 51cf,e041 000051cf,0000e041 faa3 * * faa3 * * faa3 -16461 * * * * * * * 51d1 e58791,ee8182 51d1,e042 000051d1,0000e042 faa4 fbba 8fc1 faa4 * * faa4 -16462 * * * * * * * 3cdc e3b39c,ee8183 3cdc,e043 00003cdc,0000e043 faa5 * * faa5 * * faa5 -16463 * * * * * * * 51d3 e58793,ee8184 51d3,e044 000051d3,0000e044 faa6 fbbb 8fba faa6 c752 fa5b faa6 -16464 * * * * * * * e045 f0a4aaa6,ee8185 d852dea6,e045 00024aa6,0000e045 faa7 * * faa7 * * faa7 -16465 * * * * * * * 51b3 e586b3,ee8186 51b3,e046 000051b3,0000e046 faa8 faec * faa8 c74e fa57 faa8 -16466 * * * * * * * 51e2 * * * * * * faa9 * * * -16467 * * * * * * * * * * * * * * faaa * * * -16468 * * * * * * * 51ed e587ad,ee8189 51ed,e049 000051ed,0000e049 faab fba9 905f faab * fa5c faab -16469 * * * * * * * 83cd e88f8d,ee818a 83cd,e04a 000083cd,0000e04a faac * * faac * * faac -16470 * * * * * * * 693e e6a4be,ee818b 693e,e04b 0000693e,0000e04b faad fcbc 8f70 faad * * faad -16471 * * * * * * * e04c f0a39cad,ee818c d84ddf2d,e04c 0002372d,0000e04c faae * * faae * * faae -16472 * * * * * * * 5f7b e5bdbb,ee818d 5f7b,e04d 00005f7b,0000e04d faaf * * faaf * * faaf -16473 * * * * * * * 520b e5888b,ee818e 520b,e04e 0000520b,0000e04e fab0 * * fab0 * * fab0 -16474 * * * * * * * 5226 e588a6,ee818f 5226,e04f 00005226,0000e04f fab1 fad7 8f75 fab1 c754 fa61 fab1 -16475 * * * * * * * 523c e588bc,ee8190 523c,e050 0000523c,0000e050 fab2 * * fab2 * * fab2 -16476 * * * * * * * 52b5 e58ab5,ee8191 52b5,e051 000052b5,0000e051 fab3 * * fab3 c758 fa66 fab3 -16477 * * * * * * * 5257 e58997,ee8192 5257,e052 00005257,0000e052 fab4 fbad 9055 fab4 * * fab4 -16478 * * * * * * * 5294 e58a94,ee8193 5294,e053 00005294,0000e053 fab5 * * fab5 * * fab5 -16479 * * * * * * * 52b9 e58ab9,ee8194 52b9,e054 000052b9,0000e054 fab6 fa51 9245 fab6 c759 fa67 fab6 -16480 * * * * * * * 52c5 e58b85,ee8195 52c5,e055 000052c5,0000e055 fab7 fbb0 8eb6 fab7 * fa68 fab7 -16481 * * * * * * * 7c15 e7b095,ee8196 7c15,e056 00007c15,0000e056 fab8 * * fab8 * * fab8 -16482 * * * * * * * 8542 e89582,ee8197 8542,e057 00008542,0000e057 fab9 * * fab9 * * fab9 -16483 * * * * * * * 52e0 e58ba0,ee8198 52e0,e058 000052e0,0000e058 faba fbb2 8eb2 faba * fa69 faba -16484 * * * * * * * 860d e8988d,ee8199 860d,e059 0000860d,0000e059 fabb * * fabb * * fabb -16485 * * * * * * * e05a f0a6ac93,ee819a d85adf13,e05a 00026b13,0000e05a fabc * * fabc * * fabc -16486 * * * * * * * * f0afa0a9 d87edc29 0002f829 * * * fabd * * * -16487 * * * * * * * e05c f0a8ab9e,ee819c d862dede,e05c 00028ade,0000e05c fabe * * fabe * * fabe -16488 * * * * * * * 5549 e59589,ee819d 5549,e05d 00005549,0000e05d fabf * * fabf * * fabf -16489 * * * * * * * 6ed9 e6bb99,ee819e 6ed9,e05e 00006ed9,0000e05e fac0 fab8 * fac0 c852 fbbf fac0 -16490 * * * * * * * e05f f0a3be80,ee819f d84fdf80,e05f 00023f80,0000e05f fac1 * * fac1 * * fac1 -16491 * * * * * * * e060 f0a0a594,ee81a0 d842dd54,e060 00020954,0000e060 fac2 * * fac2 * * fac2 -16492 * * * * * * * e061 f0a3bfac,ee81a1 d84fdfec,e061 00023fec,0000e061 fac3 * * fac3 * * fac3 -16493 * * * * * * * 5333 e58cb3,ee81a2 5333,e062 00005333,0000e062 fac4 fbc2 916a fac4 * * fac4 -16494 * * * * * * * * * * * * * * fac5 * * * -16495 * * * * * * * e064 f0a0afa2,ee81a4 d842dfe2,e064 00020be2,0000e064 fac6 * * fac6 * * fac6 -16496 * * * * * * * 6ccb e6b38b,ee81a5 6ccb,e065 00006ccb,0000e065 fac7 * * fac7 * * fac7 -16497 * * * * * * * e066 f0a19ca6,ee81a6 d845df26,e066 00021726,0000e066 fac8 * * fac8 * * fac8 -16498 * * * * * * * 681b e6a09b,ee81a7 681b,e067 0000681b,0000e067 fac9 * * fac9 * * fac9 -16499 * * * * * * * 73d5 e78f95,ee81a8 73d5,e068 000073d5,0000e068 faca * * faca * * faca -16500 * * * * * * * 604a e6818a,ee81a9 604a,e069 0000604a,0000e069 facb * * facb * * facb -16501 * * * * * * * 3eaa e3baaa,ee81aa 3eaa,e06a 00003eaa,0000e06a facc * * facc * * facc -16502 * * * * * * * 38cc e3a38c,ee81ab 38cc,e06b 000038cc,0000e06b facd * * facd * * facd -16503 * * * * * * * e06c f0a19ba8,ee81ac d845dee8,e06c 000216e8,0000e06c face * * face * * face -16504 * * * * * * * 71dd e7879d,ee81ad 71dd,e06d 000071dd,0000e06d facf * * facf * * facf -16505 * * * * * * * 44a2 e492a2,ee81ae 44a2,e06e 000044a2,0000e06e fad0 * * fad0 * * fad0 -16506 * * * * * * * 536d e58dad,ee81af 536d,e06f 0000536d,0000e06f fad1 * * fad1 * fa6b fad1 -16507 * * * * * * * 5374 e58db4,ee81b0 5374,e070 00005374,0000e070 fad2 faf2 * fad2 c75b fa6c fad2 -16508 * * * * * * * e071 f0a89aab,ee81b1 d861deab,e071 000286ab,0000e071 fad3 * * fad3 * * fad3 -16509 * * * * * * * 537e e58dbe,ee81b2 537e,e072 0000537e,0000e072 fad4 * * fad4 * fa6d fad4 -16510 * * * * * * * * f0afa0b2 d87edc32 0002f832 * * * fad5 * * * -16511 * * * * * * * e074 f0a19696,ee81b4 d845dd96,e074 00021596,0000e074 fad6 * * fad6 * * fad6 -16512 * * * * * * * e075 f0a19893,ee81b5 d845de13,e075 00021613,0000e075 fad7 * * fad7 * * fad7 -16513 * * * * * * * 77e6 e79fa6,ee81b6 77e6,e076 000077e6,0000e076 fad8 * * fad8 * * fad8 -16514 * * * * * * * 5393 e58e93,ee81b7 5393,e077 00005393,0000e077 fad9 * * fad9 c75c fa6e fad9 -16515 * * * * * * * e078 f0a8aa9b,ee81b8 d862de9b,e078 00028a9b,0000e078 fada * * fada * * fada -16516 * * * * * * * 53a0 e58ea0,ee81b9 53a0,e079 000053a0,0000e079 fadb fbc4 924c fadb * * fadb -16517 * * * * * * * 53ab e58eab,ee81ba 53ab,e07a 000053ab,0000e07a fadc fbc3 8fd9 fadc * * fadc -16518 * * * * * * * 53ae e58eae,ee81bb 53ae,e07b 000053ae,0000e07b fadd fbc8 916d fadd * * fadd -16519 * * * * * * * 73a7 e78ea7,ee81bc 73a7,e07c 000073a7,0000e07c fade * * fade * * fade -16520 * * * * * * * e07d f0a59db2,ee81bd d855df72,e07d 00025772,0000e07d fadf * * fadf * * fadf -16521 * * * * * * * 3f59 e3bd99,ee81be 3f59,e07e 00003f59,0000e07e fae0 * * fae0 * * fae0 -16522 * * * * * * * 739c e78e9c,ee81bf 739c,e07f 0000739c,0000e07f fae1 * * fae1 * * fae1 -16523 * * * * * * * 53c1 e58f81,ee8280 53c1,e080 000053c1,0000e080 fae2 fa53 925d fae2 c75e fa71 fae2 -16524 * * * * * * * 53c5 e58f85,ee8281 53c5,e081 000053c5,0000e081 fae3 * * fae3 * * fae3 -16525 * * * * * * * 6c49 e6b189,ee8282 6c49,e082 00006c49,0000e082 fae4 * * fae4 * * fae4 -16526 * * * * * * * 4e49 e4b989,ee8283 4e49,e083 00004e49,0000e083 fae5 * * fae5 * * fae5 -16527 * * * * * * * 57fe e59fbe,ee8284 57fe,e084 000057fe,0000e084 fae6 * * fae6 * * fae6 -16528 * * * * * * * 53d9 e58f99,ee8285 53d9,e085 000053d9,0000e085 fae7 fbb5 8fcf fae7 * * fae7 -16529 * * * * * * * 3aab e3aaab,ee8286 3aab,e086 00003aab,0000e086 fae8 * * fae8 * * fae8 -16530 * * * * * * * e087 f0a0ae8f,ee8287 d842df8f,e087 00020b8f,0000e087 fae9 * * fae9 * * fae9 -16531 * * * * * * * 53e0 e58fa0,ee8288 53e0,e088 000053e0,0000e088 faea fab2 8fc7 faea c760 fa74 faea -16532 * * * * * * * e089 f0a3bfab,ee8289 d84fdfeb,e089 00023feb,0000e089 faeb * * faeb * * faeb -16533 * * * * * * * e08a f0a2b6a3,ee828a d84bdda3,e08a 00022da3,0000e08a faec * * faec * * faec -16534 * * * * * * * 53f6 e58fb6,ee828b 53f6,e08b 000053f6,0000e08b faed fa46 9054 faed c761 fa75 faed -16535 * * * * * * * e08c f0a0b1b7,ee828c d843dc77,e08c 00020c77,0000e08c faee * * faee * * faee -16536 * * * * * * * 5413 e59093,ee828d 5413,e08d 00005413,0000e08d faef fa7d 8fb6 faef c763 fa77 faef -16537 * * * * * * * 7079 e781b9,ee828e 7079,e08e 00007079,0000e08e faf0 * * faf0 * * faf0 -16538 * * * * * * * 552b e594ab,ee828f 552b,e08f 0000552b,0000e08f faf1 * * faf1 * * faf1 -16539 * * * * * * * 6657 e69997,ee8290 6657,e090 00006657,0000e090 faf2 * * faf2 * * faf2 -16540 * * * * * * * 6d5b e6b59b,ee8291 6d5b,e091 00006d5b,0000e091 faf3 * * faf3 * * faf3 -16541 * * * * * * * 546d e591ad,ee8292 546d,e092 0000546d,0000e092 faf4 * * faf4 * * faf4 -16542 * * * * * * * e093 f0a6ad93,ee8293 d85adf53,e093 00026b53,0000e093 faf5 * * faf5 * * faf5 -16543 * * * * * * * e094 f0a0b5b4,ee8294 d843dd74,e094 00020d74,0000e094 faf6 * * faf6 * * faf6 -16544 * * * * * * * 555d e5959d,ee8295 555d,e095 0000555d,0000e095 faf7 * * faf7 * * faf7 -16545 * * * * * * * 548f e5928f,ee8296 548f,e096 0000548f,0000e096 faf8 fbca 8ebb faf8 c76a faa2 faf8 -16546 * * * * * * * 54a4 e592a4,ee8297 54a4,e097 000054a4,0000e097 faf9 fbd0 8eb9 faf9 * faaa faf9 -16547 * * * * * * * 47a6 e49ea6,ee8298 47a6,e098 000047a6,0000e098 fafa * * fafa * * fafa -16548 * * * * * * * e099 f0a19c8d,ee8299 d845df0d,e099 0002170d,0000e099 fafb * * fafb * * fafb -16549 * * * * * * * e09a f0a0bb9d,ee829a d843dedd,e09a 00020edd,0000e09a fafc * * fafc * * fafc -16550 * * * * * * * 3db4 e3b6b4,ee829b 3db4,e09b 00003db4,0000e09b fafd * * fafd * * fafd -16551 * * * * * * * e09c f0a0b58d,ee829c d843dd4d,e09c 00020d4d,0000e09c fafe * * fafe * * fafe -16552 * * * * * * * e09d f0a8a6bc,ee829d d862ddbc,e09d 000289bc,0000e09d fb40 * * fb40 * * fb40 -16553 * * * * * * * e09e f0a29a98,ee829e d849de98,e09e 00022698,0000e09e fb41 * * fb41 * * fb41 -16554 * * * * * * * 5547 e59587,ee829f 5547,e09f 00005547,0000e09f fb42 * * fb42 * * fb42 -16555 * * * * * * * 4ced e4b3ad,ee82a0 4ced,e0a0 00004ced,0000e0a0 fb43 * * fb43 * * fb43 -16556 * * * * * * * 542f e590af,ee82a1 542f,e0a1 0000542f,0000e0a1 fb44 * * fb44 * * fb44 -16557 * * * * * * * 7417 e79097,ee82a2 7417,e0a2 00007417,0000e0a2 fb45 * * fb45 * * fb45 -16558 * * * * * * * 5586 e59686,ee82a3 5586,e0a3 00005586,0000e0a3 fb46 fbd5 8e68 fb46 * * fb46 -16559 * * * * * * * 55a9 e596a9,ee82a4 55a9,e0a4 000055a9,0000e0a4 fb47 * * fb47 * * fb47 -16560 * * * * * * * * * * * * * * fb48 * * * -16561 * * * * * * * e0a6 f0a1a397,ee82a6 d846dcd7,e0a6 000218d7,0000e0a6 fb49 * * fb49 * * fb49 -16562 * * * * * * * e0a7 f0a480ba,ee82a7 d850dc3a,e0a7 0002403a,0000e0a7 fb4a * * fb4a * * fb4a -16563 * * * * * * * 4552 e49592,ee82a8 4552,e0a8 00004552,0000e0a8 fb4b * * fb4b * * fb4b -16564 * * * * * * * e0a9 f0a490b5,ee82a9 d851dc35,e0a9 00024435,0000e0a9 fb4c * * fb4c * * fb4c -16565 * * * * * * * 66b3 e69ab3,ee82aa 66b3,e0aa 000066b3,0000e0aa fb4d * * fb4d * * fb4d -16566 * * * * * * * e0ab f0a182b4,ee82ab d844dcb4,e0ab 000210b4,0000e0ab fb4e * * fb4e * * fb4e -16567 * * * * * * * 5637 e598b7,ee82ac 5637,e0ac 00005637,0000e0ac fb4f fbdf 8fe9 fb4f c7b7 fad3 fb4f -16568 * * * * * * * 66cd e69b8d,ee82ad 66cd,e0ad 000066cd,0000e0ad fb50 * * fb50 * * fb50 -16569 * * * * * * * e0ae f0a38a8a,ee82ae d84cde8a,e0ae 0002328a,0000e0ae fb51 * * fb51 * * fb51 -16570 * * * * * * * 66a4 e69aa4,ee82af 66a4,e0af 000066a4,0000e0af fb52 * * fb52 * * fb52 -16571 * * * * * * * * * * * * * * fb53 * * * -16572 * * * * * * * 564d e5998d,ee82b1 564d,e0b1 0000564d,0000e0b1 fb54 fbde 8fa9 fb54 c7b3 facd fb54 -16573 * * * * * * * 564f e5998f,ee82b2 564f,e0b2 0000564f,0000e0b2 fb55 faca 917d fb55 c7b5 facf fb55 -16574 * * * * * * * 78f1 e7a3b1,ee82b3 78f1,e0b3 000078f1,0000e0b3 fb56 * * fb56 * * fb56 -16575 * * * * * * * 56f1 e59bb1,ee82b4 56f1,e0b4 000056f1,0000e0b4 fb57 * * fb57 c7c9 faec fb57 -16576 * * * * * * * 9787 e99e87,ee82b5 9787,e0b5 00009787,0000e0b5 fb58 * * fb58 * * fb58 -16577 * * * * * * * 53fe e58fbe,ee82b6 53fe,e0b6 000053fe,0000e0b6 fb59 * * fb59 * * fb59 -16578 * * * * * * * 5700 e59c80,ee82b7 5700,e0b7 00005700,0000e0b7 fb5a * * fb5a * * fb5a -16579 * * * * * * * 56ef e59baf,ee82b8 56ef,e0b8 000056ef,0000e0b8 fb5b * * fb5b * * fb5b -16580 * * * * * * * 56ed e59bad,ee82b9 56ed,e0b9 000056ed,0000e0b9 fb5c fc56 8fc0 fb5c * * fb5c -16581 * * * * * * * e0ba f0a8ada6,ee82ba d862df66,e0ba 00028b66,0000e0ba fb5d * * fb5d * * fb5d -16582 * * * * * * * 3623 e398a3,ee82bb 3623,e0bb 00003623,0000e0bb fb5e * * fb5e * * fb5e -16583 * * * * * * * e0bc f0a1898f,ee82bc d844de4f,e0bc 0002124f,0000e0bc fb5f * * fb5f * * fb5f -16584 * * * * * * * 5746 e59d86,ee82bd 5746,e0bd 00005746,0000e0bd fb60 fbe8 9053 fb60 * fae1 fb60 -16585 * * * * * * * e0be f0a486a5,ee82be d850dda5,e0be 000241a5,0000e0be fb61 * * fb61 * * fb61 -16586 * * * * * * * 6c6e e6b1ae,ee82bf 6c6e,e0bf 00006c6e,0000e0bf fb62 * * fb62 * * fb62 -16587 * * * * * * * 708b e7828b,ee8380 708b,e0c0 0000708b,0000e0c0 fb63 * * fb63 * * fb63 -16588 * * * * * * * 5742 e59d82,ee8381 5742,e0c1 00005742,0000e0c1 fb64 fadc * fb64 c7c0 fadf fb64 -16589 * * * * * * * 36b1 e39ab1,ee8382 36b1,e0c2 000036b1,0000e0c2 fb65 * * fb65 * * fb65 -16590 * * * * * * * e0c3 f0a6b1be,ee8383 d85bdc7e,e0c3 00026c7e,0000e0c3 fb66 * * fb66 * * fb66 -16591 * * * * * * * 57e6 e59fa6,ee8384 57e6,e0c4 000057e6,0000e0c4 fb67 fbec 8eaa fb67 * * fb67 -16592 * * * * * * * e0c5 f0a19096,ee8385 d845dc16,e0c5 00021416,0000e0c5 fb68 * * fb68 * * fb68 -16593 * * * * * * * 5803 e5a083,ee8386 5803,e0c6 00005803,0000e0c6 fb69 fb50 * fb69 c7c5 fae5 fb69 -16594 * * * * * * * e0c7 f0a19194,ee8387 d845dc54,e0c7 00021454,0000e0c7 fb6a * * fb6a * * fb6a -16595 * * * * * * * e0c8 f0a48da3,ee8388 d850df63,e0c8 00024363,0000e0c8 fb6b * * fb6b * * fb6b -16596 * * * * * * * 5826 e5a0a6,ee8389 5826,e0c9 00005826,0000e0c9 fb6c fbf1 904c fb6c * fae7 fb6c -16597 * * * * * * * e0ca f0a4afb5,ee838a d852dff5,e0ca 00024bf5,0000e0ca fb6d * * fb6d * * fb6d -16598 * * * * * * * * e5a09f 581f 0000581f * * * fb6e * * * -16599 * * * * * * * 58aa e5a2aa,ee838c 58aa,e0cc 000058aa,0000e0cc fb6f * * fb6f * * fb6f -16600 * * * * * * * 3561 e395a1,ee838d 3561,e0cd 00003561,0000e0cd fb70 * * fb70 * * fb70 -16601 * * * * * * * 58e0 e5a3a0,ee838e 58e0,e0ce 000058e0,0000e0ce fb71 * * fb71 * faeb fb71 -16602 * * * * * * * 58dc e5a39c,ee838f 58dc,e0cf 000058dc,0000e0cf fb72 fbf2 8e64 fb72 * faea fb72 -16603 * * * * * * * e0d0 f0a188bc,ee8390 d844de3c,e0d0 0002123c,0000e0d0 fb73 * * fb73 * * fb73 -16604 * * * * * * * 58fb e5a3bb,ee8391 58fb,e0d1 000058fb,0000e0d1 fb74 fbef 9242 fb74 * * fb74 -16605 * * * * * * * 5bff e5afbf,ee8392 5bff,e0d2 00005bff,0000e0d2 fb75 * * fb75 * * fb75 -16606 * * * * * * * 5743 e59d83,ee8393 5743,e0d3 00005743,0000e0d3 fb76 * * fb76 * * fb76 -16607 * * * * * * * e0d4 f0aa8590,ee8394 d868dd50,e0d4 0002a150,0000e0d4 fb77 * * fb77 * * fb77 -16608 * * * * * * * e0d5 f0a489b8,ee8395 d850de78,e0d5 00024278,0000e0d5 fb78 * * fb78 * * fb78 -16609 * * * * * * * 93d3 e98f93,ee8396 93d3,e0d6 000093d3,0000e0d6 fb79 * * fb79 * * fb79 -16610 * * * * * * * 35a1 e396a1,ee8397 35a1,e0d7 000035a1,0000e0d7 fb7a * * fb7a * * fb7a -16611 * * * * * * * 591f e5a49f,ee8398 591f,e0d8 0000591f,0000e0d8 fb7b * * fb7b * * fb7b -16612 * * * * * * * 68a6 e6a2a6,ee8399 68a6,e0d9 000068a6,0000e0d9 fb7c * * fb7c * * fb7c -16613 * * * * * * * 36c3 e39b83,ee839a 36c3,e0da 000036c3,0000e0da fb7d * * fb7d * * fb7d -16614 * * * * * * * 6e59 e6b999,ee839b 6e59,e0db 00006e59,0000e0db fb7e * * fb7e * * fb7e -16615 * * * * * * * e0dc f0a198be,ee839c d845de3e,e0dc 0002163e,0000e0dc fba1 * * fba1 * * fba1 -16616 * * * * * * * 5a24 e5a8a4,ee839d 5a24,e0dd 00005a24,0000e0dd fba2 * * fba2 * * fba2 -16617 * * * * * * * * * * * * * * fba3 * * * -16618 * * * * * * * e0df f0a19a92,ee839f d845de92,e0df 00021692,0000e0df fba4 * * fba4 * * fba4 -16619 * * * * * * * 8505 e89485,ee83a0 8505,e0e0 00008505,0000e0e0 fba5 * * fba5 * * fba5 -16620 * * * * * * * 59c9 e5a789,ee83a1 59c9,e0e1 000059c9,0000e0e1 fba6 * * fba6 * * fba6 -16621 * * * * * * * e0e2 f0a0b58e,ee83a2 d843dd4e,e0e2 00020d4e,0000e0e2 fba7 * * fba7 * * fba7 -16622 * * * * * * * e0e3 f0a6b281,ee83a3 d85bdc81,e0e3 00026c81,0000e0e3 fba8 * * fba8 * * fba8 -16623 * * * * * * * e0e4 f0a6b4aa,ee83a4 d85bdd2a,e0e4 00026d2a,0000e0e4 fba9 * * fba9 * * fba9 -16624 * * * * * * * e0e5 f0a19f9c,ee83a5 d845dfdc,e0e5 000217dc,0000e0e5 fbaa * * fbaa * * fbaa -16625 * * * * * * * 59d9 e5a799,ee83a6 59d9,e0e6 000059d9,0000e0e6 fbab fbf6 8ff3 fbab * faee fbab -16626 * * * * * * * e0e7 f0a19fbb,ee83a7 d845dffb,e0e7 000217fb,0000e0e7 fbac * * fbac * * fbac -16627 * * * * * * * e0e8 f0a19eb2,ee83a8 d845dfb2,e0e8 000217b2,0000e0e8 fbad * * fbad * * fbad -16628 * * * * * * * e0e9 f0a6b6a6,ee83a9 d85bdda6,e0e9 00026da6,0000e0e9 fbae * * fbae * * fbae -16629 * * * * * * * 6d71 e6b5b1,ee83aa 6d71,e0ea 00006d71,0000e0ea fbaf * * fbaf * * fbaf -16630 * * * * * * * e0eb f0a1a0a8,ee83ab d846dc28,e0eb 00021828,0000e0eb fbb0 * * fbb0 * * fbb0 -16631 * * * * * * * e0ec f0a19b95,ee83ac d845ded5,e0ec 000216d5,0000e0ec fbb1 * * fbb1 * * fbb1 -16632 * * * * * * * 59f9 e5a7b9,ee83ad 59f9,e0ed 000059f9,0000e0ed fbb2 fbf8 91a7 fbb2 * * fbb2 -16633 * * * * * * * e0ee f0a6b985,ee83ae d85bde45,e0ee 00026e45,0000e0ee fbb3 * * fbb3 * * fbb3 -16634 * * * * * * * 5aab e5aaab,ee83af 5aab,e0ef 00005aab,0000e0ef fbb4 * * fbb4 * * fbb4 -16635 * * * * * * * 5a63 e5a9a3,ee83b0 5a63,e0f0 00005a63,0000e0f0 fbb5 fbf9 8e78 fbb5 * * fbb5 -16636 * * * * * * * 36e6 e39ba6,ee83b1 36e6,e0f1 000036e6,0000e0f1 fbb6 * * fbb6 * * fbb6 -16637 * * * * * * * e0f2 f0a4a6a9,ee83b2 d852dda9,e0f2 000249a9,0000e0f2 fbb7 * * fbb7 * * fbb7 -16638 * * * * * * * * * * * * * * fbb8 * * * -16639 * * * * * * * 3708 e39c88,ee83b4 3708,e0f4 00003708,0000e0f4 fbb9 * * fbb9 * * fbb9 -16640 * * * * * * * 5a96 e5aa96,ee83b5 5a96,e0f5 00005a96,0000e0f5 fbba * * fbba c7ca faef fbba -16641 * * * * * * * 7465 e791a5,ee83b6 7465,e0f6 00007465,0000e0f6 fbbb * * fbbb * * fbbb -16642 * * * * * * * 5ad3 e5ab93,ee83b7 5ad3,e0f7 00005ad3,0000e0f7 fbbc * * fbbc * * fbbc -16643 * * * * * * * e0f8 f0a6bea1,ee83b8 d85bdfa1,e0f8 00026fa1,0000e0f8 fbbd * * fbbd * * fbbd -16644 * * * * * * * e0f9 f0a29594,ee83b9 d849dd54,e0f9 00022554,0000e0f9 fbbe * * fbbe * * fbbe -16645 * * * * * * * e0fb f0a1a491,ee83bb d846dd11,e0fb 00021911,0000e0fb fbc0 * * fbc0 * * fbc0 -16646 * * * * * * * 3732 e39cb2,ee83bc 3732,e0fc 00003732,0000e0fc fbc1 * * fbc1 * * fbc1 -16647 * * * * * * * e0fd f0a19ab8,ee83bd d845deb8,e0fd 000216b8,0000e0fd fbc2 * * fbc2 * * fbc2 -16648 * * * * * * * 5e83 e5ba83,ee83be 5e83,e0fe 00005e83,0000e0fe fbc3 * * fbc3 * * fbc3 -16649 * * * * * * * 52d0 e58b90,ee83bf 52d0,e0ff 000052d0,0000e0ff fbc4 * * fbc4 * * fbc4 -16650 * * * * * * * 5b76 e5adb6,ee8480 5b76,e100 00005b76,0000e100 fbc5 * * fbc5 * * fbc5 -16651 * * * * * * * 6588 e69688,ee8481 6588,e101 00006588,0000e101 fbc6 * * fbc6 * * fbc6 -16652 * * * * * * * 5b7c e5adbc,ee8482 5b7c,e102 00005b7c,0000e102 fbc7 * * fbc7 * * fbc7 -16653 * * * * * * * e103 f0a7a88e,ee8483 d85ede0e,e103 00027a0e,0000e103 fbc8 * * fbc8 * * fbc8 -16654 * * * * * * * 4004 e48084,ee8484 4004,e104 00004004,0000e104 fbc9 * * fbc9 * * fbc9 -16655 * * * * * * * 485d e4a19d,ee8485 485d,e105 0000485d,0000e105 fbca * * fbca * * fbca -16656 * * * * * * * e106 f0a08884,ee8486 d840de04,e106 00020204,0000e106 fbcb * * fbcb * * fbcb -16657 * * * * * * * 5bd5 e5af95,ee8487 5bd5,e107 00005bd5,0000e107 fbcc * * fbcc * * fbcc -16658 * * * * * * * e109 f0a1a8b4,ee8489 d846de34,e109 00021a34,0000e109 fbce * * fbce * * fbce -16659 * * * * * * * e10a f0a5a78c,ee848a d856ddcc,e10a 000259cc,0000e10a fbcf * * fbcf * * fbcf -16660 * * * * * * * e10b f0a096a5,ee848b d841dda5,e10b 000205a5,0000e10b fbd0 * * fbd0 * * fbd0 -16661 * * * * * * * 5bf3 e5afb3,ee848c 5bf3,e10c 00005bf3,0000e10c fbd1 * * fbd1 * * fbd1 -16662 * * * * * * * 5b9d e5ae9d,ee848d 5b9d,e10d 00005b9d,0000e10d fbd2 fa52 * fbd2 c7d1 faf6 fbd2 -16663 * * * * * * * 4d10 e4b490,ee848e 4d10,e10e 00004d10,0000e10e fbd3 * * fbd3 * * fbd3 -16664 * * * * * * * 5c05 e5b085,ee848f 5c05,e10f 00005c05,0000e10f fbd4 fbfb 924d fbd4 c7d3 fafa fbd4 -16665 * * * * * * * e110 f0a1ad84,ee8490 d846df44,e110 00021b44,0000e110 fbd5 * * fbd5 * * fbd5 -16666 * * * * * * * 5c13 e5b093,ee8491 5c13,e111 00005c13,0000e111 fbd6 * * fbd6 * * fbd6 -16667 * * * * * * * 73ce e78f8e,ee8492 73ce,e112 000073ce,0000e112 fbd7 * * fbd7 * * fbd7 -16668 * * * * * * * 5c14 e5b094,ee8493 5c14,e113 00005c14,0000e113 fbd8 * * fbd8 * * fbd8 -16669 * * * * * * * e114 f0a1b2a5,ee8494 d847dca5,e114 00021ca5,0000e114 fbd9 * * fbd9 * * fbd9 -16670 * * * * * * * e115 f0a6aca8,ee8495 d85adf28,e115 00026b28,0000e115 fbda * * fbda * * fbda -16671 * * * * * * * 5c49 e5b189,ee8496 5c49,e116 00005c49,0000e116 fbdb * * fbdb c7d2 faf8 fbdb -16672 * * * * * * * 48dd e4a39d,ee8497 48dd,e117 000048dd,0000e117 fbdc * * fbdc * * fbdc -16673 * * * * * * * 5c85 e5b285,ee8498 5c85,e118 00005c85,0000e118 fbdd * * fbdd * * fbdd -16674 * * * * * * * 5ce9 e5b3a9,ee8499 5ce9,e119 00005ce9,0000e119 fbde fc42 91aa fbde * fafe fbde -16675 * * * * * * * 5cef e5b3af,ee849a 5cef,e11a 00005cef,0000e11a fbdf fa6b * fbdf c7d4 fafd fbdf -16676 * * * * * * * 5d8b e5b68b,ee849b 5d8b,e11b 00005d8b,0000e11b fbe0 fee5 8e7c fbe0 * * fbe0 -16677 * * * * * * * e11c f0a1b7b9,ee849c d847ddf9,e11c 00021df9,0000e11c fbe1 * * fbe1 * * fbe1 -16678 * * * * * * * e11d f0a1b8b7,ee849d d847de37,e11d 00021e37,0000e11d fbe2 * * fbe2 * * fbe2 -16679 * * * * * * * 5d10 e5b490,ee849e 5d10,e11e 00005d10,0000e11e fbe3 * * fbe3 c7d5 fb40 fbe3 -16680 * * * * * * * 5d18 e5b498,ee849f 5d18,e11f 00005d18,0000e11f fbe4 * * fbe4 * * fbe4 -16681 * * * * * * * 5d46 e5b586,ee84a0 5d46,e120 00005d46,0000e120 fbe5 fc44 904b fbe5 c7d6 fb42 fbe5 -16682 * * * * * * * e121 f0a1baa4,ee84a1 d847dea4,e121 00021ea4,0000e121 fbe6 * * fbe6 * * fbe6 -16683 * * * * * * * 5cba e5b2ba,ee84a2 5cba,e122 00005cba,0000e122 fbe7 * * fbe7 * * fbe7 -16684 * * * * * * * 5dd7 e5b797,ee84a3 5dd7,e123 00005dd7,0000e123 fbe8 * * fbe8 * * fbe8 -16685 * * * * * * * 82fc e88bbc,ee84a4 82fc,e124 000082fc,0000e124 fbe9 * * fbe9 * * fbe9 -16686 * * * * * * * 382d e3a0ad,ee84a5 382d,e125 0000382d,0000e125 fbea * * fbea * * fbea -16687 * * * * * * * e126 f0a4a481,ee84a6 d852dd01,e126 00024901,0000e126 fbeb * * fbeb * * fbeb -16688 * * * * * * * e127 f0a28189,ee84a7 d848dc49,e127 00022049,0000e127 fbec * * fbec * * fbec -16689 * * * * * * * e128 f0a285b3,ee84a8 d848dd73,e128 00022173,0000e128 fbed * * fbed * * fbed -16690 * * * * * * * 8287 e88a87,ee84a9 8287,e129 00008287,0000e129 fbee * * fbee * * fbee -16691 * * * * * * * 3836 e3a0b6,ee84aa 3836,e12a 00003836,0000e12a fbef * * fbef * * fbef -16692 * * * * * * * 3bc2 e3af82,ee84ab 3bc2,e12b 00003bc2,0000e12b fbf0 * * fbf0 * * fbf0 -16693 * * * * * * * 5e2e e5b8ae,ee84ac 5e2e,e12c 00005e2e,0000e12c fbf1 fc4b 91ad fbf1 * * fbf1 -16694 * * * * * * * 6a8a e6aa8a,ee84ad 6a8a,e12d 00006a8a,0000e12d fbf2 * * fbf2 * * fbf2 -16695 * * * * * * * * * * * * * * fbf3 * * * -16696 * * * * * * * * ee84af e12f 0000e12f fbf4 * 91af fbf4 * fb4a fbf4 -16697 * * * * * * * e130 f0a492bc,ee84b0 d851dcbc,e130 000244bc,0000e130 fbf5 * * fbf5 * * fbf5 -16698 * * * * * * * e131 f0a0b393,ee84b1 d843dcd3,e131 00020cd3,0000e131 fbf6 * * fbf6 * * fbf6 -16699 * * * * * * * 53a6 e58ea6,ee84b2 53a6,e132 000053a6,0000e132 fbf7 fbc6 9058 fbf7 * * fbf7 -16700 * * * * * * * 4eb7 e4bab7,ee84b3 4eb7,e133 00004eb7,0000e133 fbf8 * * fbf8 * * fbf8 -16701 * * * * * * * 5ed0 * * * * * * fbf9 * * * -16702 * * * * * * * 53a8 e58ea8,ee84b5 53a8,e135 000053a8,0000e135 fbfa fbc5 9057 fbfa * * fbfa -16703 * * * * * * * e136 f0a19db1,ee84b6 d845df71,e136 00021771,0000e136 fbfb * * fbfb * * fbfb -16704 * * * * * * * 5e09 e5b889,ee84b7 5e09,e137 00005e09,0000e137 fbfc * * fbfc * * fbfc -16705 * * * * * * * * ee84b8 e138 0000e138 fbfd * * fbfd * * fbfd -16706 * * * * * * * e139 f0a89282,ee84b9 d861dc82,e139 00028482,0000e139 fbfe * * fbfe * * fbfe -16707 * * * * * * * 5ef9 e5bbb9,ee84ba 5ef9,e13a 00005ef9,0000e13a fc40 fc55 904e fc40 c7db fb4f fc40 -16708 * * * * * * * 5efb e5bbbb,ee84bb 5efb,e13b 00005efb,0000e13b fc41 faae 9261 fc41 c7dd fb51 fc41 -16709 * * * * * * * 38a0 e3a2a0,ee84bc 38a0,e13c 000038a0,0000e13c fc42 * * fc42 * * fc42 -16710 * * * * * * * 5efc e5bbbc,ee84bd 5efc,e13d 00005efc,0000e13d fc43 faaf 8fa4 fc43 c7dc fb50 fc43 -16711 * * * * * * * 683e e6a0be,ee84be 683e,e13e 0000683e,0000e13e fc44 * * fc44 * * fc44 -16712 * * * * * * * 941b e9909b,ee84bf 941b,e13f 0000941b,0000e13f fc45 * * fc45 * * fc45 -16713 * * * * * * * 5f0d e5bc8d,ee8580 5f0d,e140 00005f0d,0000e140 fc46 fa41 91b1 fc46 c7de fb52 fc46 -16714 * * * * * * * e141 f0a08781,ee8581 d840ddc1,e141 000201c1,0000e141 fc47 * * fc47 * * fc47 -16715 * * * * * * * e142 f0afa294,ee8582 d87edc94,e142 0002f894,0000e142 fc48 * * fc48 * * fc48 -16716 * * * * * * * 3ade e3ab9e,ee8583 3ade,e143 00003ade,0000e143 fc49 * * fc49 * * fc49 -16717 * * * * * * * e145 f0a18cba,ee8585 d844df3a,e145 0002133a,0000e145 fc4b * * fc4b * * fc4b -16718 * * * * * * * 5f3a e5bcba,ee8586 5f3a,e146 00005f3a,0000e146 fc4c * * fc4c * * fc4c -16719 * * * * * * * e147 f0a6a288,ee8587 d85adc88,e147 00026888,0000e147 fc4d * * fc4d * * fc4d -16720 * * * * * * * e148 f0a28f90,ee8588 d848dfd0,e148 000223d0,0000e148 fc4e * * fc4e * * fc4e -16721 * * * * * * * e14a f0a291b1,ee858a d849dc71,e14a 00022471,0000e14a fc50 * * fc50 * * fc50 -16722 * * * * * * * 5f63 e5bda3,ee858b 5f63,e14b 00005f63,0000e14b fc51 * * fc51 * * fc51 -16723 * * * * * * * e14d f0a6b9ae,ee858d d85bde6e,e14d 00026e6e,0000e14d fc53 * * fc53 * * fc53 -16724 * * * * * * * 5f72 e5bdb2,ee858e 5f72,e14e 00005f72,0000e14e fc54 * * fc54 * * fc54 -16725 * * * * * * * 9340 e98d80,ee858f 9340,e14f 00009340,0000e14f fc55 * * fc55 * * fc55 -16726 * * * * * * * e150 f0a8a8b6,ee8590 d862de36,e150 00028a36,0000e150 fc56 * * fc56 * * fc56 -16727 * * * * * * * 5fa7 e5bea7,ee8591 5fa7,e151 00005fa7,0000e151 fc57 fc5b 924e fc57 c7e0 fb54 fc57 -16728 * * * * * * * 5db6 e5b6b6,ee8592 5db6,e152 00005db6,0000e152 fc58 * * fc58 * * fc58 -16729 * * * * * * * 3d5f e3b59f,ee8593 3d5f,e153 00003d5f,0000e153 fc59 * * fc59 * * fc59 -16730 * * * * * * * e154 f0a58990,ee8594 d854de50,e154 00025250,0000e154 fc5a * * fc5a * * fc5a -16731 * * * * * * * e155 f0a1bdaa,ee8595 d847df6a,e155 00021f6a,0000e155 fc5b * * fc5b * * fc5b -16732 * * * * * * * e156 f0a783b8,ee8596 d85cdcf8,e156 000270f8,0000e156 fc5c * * fc5c * * fc5c -16733 * * * * * * * e157 f0a299a8,ee8597 d849de68,e157 00022668,0000e157 fc5d * * fc5d * * fc5d -16734 * * * * * * * 91d6 e98796,ee8598 91d6,e158 000091d6,0000e158 fc5e * * fc5e * * fc5e -16735 * * * * * * * e159 f0a08a9e,ee8599 d840de9e,e159 0002029e,0000e159 fc5f * * fc5f * * fc5f -16736 * * * * * * * e15a f0a8a8a9,ee859a d862de29,e15a 00028a29,0000e15a fc60 * * fc60 * * fc60 -16737 * * * * * * * 6031 e680b1,ee859b 6031,e15b 00006031,0000e15b fc61 fa59 8eae fc61 c7e1 fb56 fc61 -16738 * * * * * * * 6685 e69a85,ee859c 6685,e15c 00006685,0000e15c fc62 * * fc62 * * fc62 -16739 * * * * * * * 3963 e3a5a3,ee859e 3963,e15e 00003963,0000e15e fc64 * * fc64 * * fc64 -16740 * * * * * * * 3dc7 e3b787,ee859f 3dc7,e15f 00003dc7,0000e15f fc65 * * fc65 * * fc65 -16741 * * * * * * * 3639 e398b9,ee85a0 3639,e160 00003639,0000e160 fc66 * * fc66 * * fc66 -16742 * * * * * * * 5790 e59e90,ee85a1 5790,e161 00005790,0000e161 fc67 * * fc67 * * fc67 -16743 * * * * * * * e162 f0a29eb4,ee85a2 d849dfb4,e162 000227b4,0000e162 fc68 * * fc68 * * fc68 -16744 * * * * * * * 7971 e7a5b1,ee85a3 7971,e163 00007971,0000e163 fc69 * * fc69 * * fc69 -16745 * * * * * * * 3e40 e3b980,ee85a4 3e40,e164 00003e40,0000e164 fc6a * * fc6a * * fc6a -16746 * * * * * * * 609e e6829e,ee85a5 609e,e165 0000609e,0000e165 fc6b fabf 925f fc6b c7e3 fb58 fc6b -16747 * * * * * * * * * * * * * * fc6c * * * -16748 * * * * * * * 60b3 e683aa 60ea 000060ea * fc64 8fbf fc6d * * * -16749 * * * * * * * e168 f0a4a682,ee85a8 d852dd82,e168 00024982,0000e168 fc6e * * fc6e * * fc6e -16750 * * * * * * * e169 f0a4a68f,ee85a9 d852dd8f,e169 0002498f,0000e169 fc6f * * fc6f * * fc6f -16751 * * * * * * * e16a f0a7a993,ee85aa d85ede53,e16a 00027a53,0000e16a fc70 * * fc70 * * fc70 -16752 * * * * * * * 74a4 e792a4,ee85ab 74a4,e16b 000074a4,0000e16b fc71 * * fc71 * * fc71 -16753 * * * * * * * 50e1 e583a1,ee85ac 50e1,e16c 000050e1,0000e16c fc72 * * fc72 * * fc72 -16754 * * * * * * * 5aa0 e5aaa0,ee85ad 5aa0,e16d 00005aa0,0000e16d fc73 * * fc73 * * fc73 -16755 * * * * * * * 6164 e685a4,ee85ae 6164,e16e 00006164,0000e16e fc74 fc71 8f7d fc74 * * fc74 -16756 * * * * * * * 6142 e68582,ee85b0 6142,e170 00006142,0000e170 fc76 fc6a 9056 fc76 * * fc76 -16757 * * * * * * * e171 f0afa2a6,ee85b1 d87edca6,e171 0002f8a6,0000e171 fc77 * * fc77 * * fc77 -16758 * * * * * * * e172 f0a6bb92,ee85b2 d85bded2,e172 00026ed2,0000e172 fc78 * * fc78 * * fc78 -16759 * * * * * * * 6181 e68681,ee85b3 6181,e173 00006181,0000e173 fc79 * * fc79 * * fc79 -16760 * * * * * * * 51f4 e587b4,ee85b4 51f4,e174 000051f4,0000e174 fc7a fbaa 8fdd fc7a * fa5d fc7a -16761 * * * * * * * e175 f0a09996,ee85b5 d841de56,e175 00020656,0000e175 fc7b * * fc7b * * fc7b -16762 * * * * * * * 6187 e68687,ee85b6 6187,e176 00006187,0000e176 fc7c * * fc7c * * fc7c -16763 * * * * * * * 5baa e5aeaa,ee85b7 5baa,e177 00005baa,0000e177 fc7d * * fc7d * * fc7d -16764 * * * * * * * e178 f0a3beb7,ee85b8 d84fdfb7,e178 00023fb7,0000e178 fc7e * * fc7e * * fc7e -16765 * * * * * * * e179 f0a2a19f,ee85b9 d84adc5f,e179 0002285f,0000e179 fca1 * * fca1 * * fca1 -16766 * * * * * * * 61d3 e68793,ee85ba 61d3,e17a 000061d3,0000e17a fca2 * * fca2 * * fca2 -16767 * * * * * * * e17b f0a8ae9d,ee85bb d862df9d,e17b 00028b9d,0000e17b fca3 * * fca3 * * fca3 -16768 * * * * * * * e17c f0a9a59d,ee85bc d866dd5d,e17c 0002995d,0000e17c fca4 * * fca4 * * fca4 -16769 * * * * * * * 61d0 e68790,ee85bd 61d0,e17d 000061d0,0000e17d fca5 * * fca5 * * fca5 -16770 * * * * * * * 3932 e3a4b2,ee85be 3932,e17e 00003932,0000e17e fca6 * * fca6 * * fca6 -16771 * * * * * * * e17f f0a2a680,ee85bf d84add80,e17f 00022980,0000e17f fca7 * * fca7 * * fca7 -16772 * * * * * * * e180 f0a2a381,ee8680 d84adcc1,e180 000228c1,0000e180 fca8 * * fca8 * * fca8 -16773 * * * * * * * 6023 e680a3,ee8681 6023,e181 00006023,0000e181 fca9 * * fca9 * * fca9 -16774 * * * * * * * 615c e6859c,ee8682 615c,e182 0000615c,0000e182 fcaa fc72 91b6 fcaa c7e5 fb5b fcaa -16775 * * * * * * * 651e e6949e,ee8683 651e,e183 0000651e,0000e183 fcab fae6 91ba fcab c7f9 fb76 fcab -16776 * * * * * * * 638b e68e8b,ee8684 638b,e184 0000638b,0000e184 fcac * * fcac * * fcac -16777 * * * * * * * e185 f0a08498,ee8685 d840dd18,e185 00020118,0000e185 fcad * * fcad * * fcad -16778 * * * * * * * 62c5 e68b85,ee8686 62c5,e186 000062c5,0000e186 fcae fa50 * fcae c7e9 fb62 fcae -16779 * * * * * * * e187 f0a19db0,ee8687 d845df70,e187 00021770,0000e187 fcaf * * fcaf * * fcaf -16780 * * * * * * * 62d5 e68b95,ee8688 62d5,e188 000062d5,0000e188 fcb0 fc7b 8fb7 fcb0 * * fcb0 -16781 * * * * * * * e189 f0a2b88d,ee8689 d84bde0d,e189 00022e0d,0000e189 fcb1 * * fcb1 * * fcb1 -16782 * * * * * * * 636c e68dac,ee868a 636c,e18a 0000636c,0000e18a fcb2 fc7e 8fe1 fcb2 * fb69 fcb2 -16783 * * * * * * * e18b f0a4a79f,ee868b d852dddf,e18b 000249df,0000e18b fcb3 * * fcb3 * * fcb3 -16784 * * * * * * * 3a17 e3a897,ee868c 3a17,e18c 00003a17,0000e18c fcb4 * * fcb4 * * fcb4 -16785 * * * * * * * 6438 e690b8,ee868d 6438,e18d 00006438,0000e18d fcb5 * * fcb5 * * fcb5 -16786 * * * * * * * 63f8 e68fb8,ee868e 63f8,e18e 000063f8,0000e18e fcb6 faa8 91b9 fcb6 c7f0 fb6a fcb6 -16787 * * * * * * * e18f f0a18e8e,ee868f d844df8e,e18f 0002138e,0000e18f fcb7 * * fcb7 * * fcb7 -16788 * * * * * * * e190 f0a19fbc,ee8690 d845dffc,e190 000217fc,0000e190 fcb8 * * fcb8 * * fcb8 -16789 * * * * * * * 6f8a e6be8a,ee8692 6f8a,e192 00006f8a,0000e192 fcba * * fcba * * fcba -16790 * * * * * * * e193 f0a2b8b6,ee8693 d84bde36,e193 00022e36,0000e193 fcbb * * fcbb * * fcbb -16791 * * * * * * * * * * * * * * fcbd * * * -16792 * * * * * * * e196 f0a59c9d,ee8696 d855df1d,e196 0002571d,0000e196 fcbe * * fcbe * * fcbe -16793 * * * * * * * 64e1 e693a1,ee8697 64e1,e197 000064e1,0000e197 fcbf * * fcbf * fb75 fcbf -16794 * * * * * * * 64e5 e693a5,ee8698 64e5,e198 000064e5,0000e198 fcc0 * * fcc0 * * fcc0 -16795 * * * * * * * 947b e991bb,ee8699 947b,e199 0000947b,0000e199 fcc1 * * fcc1 * * fcc1 -16796 * * * * * * * 3a66 e3a9a6,ee869a 3a66,e19a 00003a66,0000e19a fcc2 * * fcc2 * * fcc2 -16797 * * * * * * * 643a e690ba,ee869b 643a,e19b 0000643a,0000e19b fcc3 fca2 9260 fcc3 c7f4 fb6f fcc3 -16798 * * * * * * * 3a57 e3a997,ee869c 3a57,e19c 00003a57,0000e19c fcc4 fa57 * fcc4 c7f8 fb74 fcc4 -16799 * * * * * * * 654d e6958d,ee869d 654d,e19d 0000654d,0000e19d fcc5 * * fcc5 * fb78 fcc5 -16800 * * * * * * * 6f16 e6bc96,ee869e 6f16,e19e 00006f16,0000e19e fcc6 * * fcc6 * * fcc6 -16801 * * * * * * * e19f f0a4a8a8,ee869f d852de28,e19f 00024a28,0000e19f fcc7 * * fcc7 * * fcc7 -16802 * * * * * * * e1a0 f0a4a8a3,ee86a0 d852de23,e1a0 00024a23,0000e1a0 fcc8 * * fcc8 * * fcc8 -16803 * * * * * * * 6585 e69685,ee86a1 6585,e1a1 00006585,0000e1a1 fcc9 fcf6 8f69 fcc9 * * fcc9 -16804 * * * * * * * 656d e695ad,ee86a2 656d,e1a2 0000656d,0000e1a2 fcca * * fcca * * fcca -16805 * * * * * * * 655f e6959f,ee86a3 655f,e1a3 0000655f,0000e1a3 fccb * * fccb * * fccb -16806 * * * * * * * * * * * * * * fccc * * * -16807 * * * * * * * 65b5 e696b5,ee86a5 65b5,e1a5 000065b5,0000e1a5 fccd * * fccd * * fccd -16808 * * * * * * * e1a6 f0a4a580,ee86a6 d852dd40,e1a6 00024940,0000e1a6 fcce * * fcce * * fcce -16809 * * * * * * * 4b37 e4acb7,ee86a7 4b37,e1a7 00004b37,0000e1a7 fccf * * fccf * * fccf -16810 * * * * * * * 65d1 e69791,ee86a8 65d1,e1a8 000065d1,0000e1a8 fcd0 * * fcd0 * * fcd0 -16811 * * * * * * * 40d8 e48398,ee86a9 40d8,e1a9 000040d8,0000e1a9 fcd1 * * fcd1 * * fcd1 -16812 * * * * * * * e1aa f0a1a0a9,ee86aa d846dc29,e1aa 00021829,0000e1aa fcd2 * * fcd2 * * fcd2 -16813 * * * * * * * * ee86ab e1ab 0000e1ab fcd3 * 91a8 fcd3 * * fcd3 -16814 * * * * * * * 65e3 e697a3,ee86ac 65e3,e1ac 000065e3,0000e1ac fcd4 * * fcd4 * * fcd4 -16815 * * * * * * * 5fdf e5bf9f,ee86ad 5fdf,e1ad 00005fdf,0000e1ad fcd5 * * fcd5 * * fcd5 -16816 * * * * * * * e1ae f0a39080,ee86ae d84ddc00,e1ae 00023400,0000e1ae fcd6 * * fcd6 * * fcd6 -16817 * * * * * * * 6618 e69898,ee86af 6618,e1af 00006618,0000e1af fcd7 * * fcd7 * * fcd7 -16818 * * * * * * * e1b0 ee86b0,f0a387b7 d84cddf7,e1b0 0000e1b0,000231f7 fcd8 * * fcd8 * * fcd8 -16819 * * * * * * * e1b1 ee86b1,f0a387b8 d84cddf8,e1b1 0000e1b1,000231f8 fcd9 * * fcd9 * * fcd9 -16820 * * * * * * * 6644 e69984,ee86b2 6644,e1b2 00006644,0000e1b2 fcda * * fcda * * fcda -16821 * * * * * * * e1b3 ee86b3,f0a386a4 d84cdda4,e1b3 0000e1b3,000231a4 fcdb * * fcdb * * fcdb -16822 * * * * * * * e1b4 ee86b4,f0a386a5 d84cdda5,e1b4 0000e1b4,000231a5 fcdc * * fcdc * * fcdc -16823 * * * * * * * 664b e6998b,ee86b5 664b,e1b5 0000664b,0000e1b5 fcdd fca9 8fde fcdd * * fcdd -16824 * * * * * * * e1b6 f0a0b9b5,ee86b6 d843de75,e1b6 00020e75,0000e1b6 fcde * * fcde * * fcde -16825 * * * * * * * 6667 e699a7,ee86b7 6667,e1b7 00006667,0000e1b7 fcdf fca7 8fd3 fcdf * * fcdf -16826 * * * * * * * e1b8 f0a587a6,ee86b8 d854dde6,e1b8 000251e6,0000e1b8 fce0 * * fce0 * * fce0 -16827 * * * * * * * 6673 e699b3,ee86b9 6673,e1b9 00006673,0000e1b9 fce1 * * fce1 * * fce1 -16828 * * * * * * * * efa892 fa12 0000fa12 * * * fce2 * * * -16829 * * * * * * * e1bc f0a388b1,ee86bc d84cde31,e1bc 00023231,0000e1bc fce4 * * fce4 * * fce4 -16830 * * * * * * * e1bd f0a897b4,ee86bd d861ddf4,e1bd 000285f4,0000e1bd fce5 * * fce5 * * fce5 -16831 * * * * * * * e1be f0a38788,ee86be d84cddc8,e1be 000231c8,0000e1be fce6 * * fce6 * * fce6 -16832 * * * * * * * e1bf f0a58c93,ee86bf d854df13,e1bf 00025313,0000e1bf fce7 * * fce7 * * fce7 -16833 * * * * * * * 77c5 e79f85,ee8780 77c5,e1c0 000077c5,0000e1c0 fce8 * * fce8 * * fce8 -16834 * * * * * * * e1c1 f0a2a3b7,ee8781 d84adcf7,e1c1 000228f7,0000e1c1 fce9 * * fce9 * * fce9 -16835 * * * * * * * 99a4 e9a6a4,ee8782 99a4,e1c2 000099a4,0000e1c2 fcea * * fcea * * fcea -16836 * * * * * * * 6702 e69c82,ee8783 6702,e1c3 00006702,0000e1c3 fceb * * fceb * * fceb -16837 * * * * * * * e1c4 f0a48e9c,ee8784 d850df9c,e1c4 0002439c,0000e1c4 fcec * * fcec * * fcec -16838 * * * * * * * e1c5 f0a4a8a1,ee8785 d852de21,e1c5 00024a21,0000e1c5 fced * * fced * * fced -16839 * * * * * * * 69fa e6a7ba,ee8787 69fa,e1c7 000069fa,0000e1c7 fcef fcc2 91c3 fcef * * fcef -16840 * * * * * * * e1c8 f0a39f82,ee8788 d84ddfc2,e1c8 000237c2,0000e1c8 fcf0 * * fcf0 * * fcf0 -16841 * * * * * * * * f0afa39b d87edcdb 0002f8db * * * fcf1 * * * -16842 * * * * * * * 6767 e69da7,ee878a 6767,e1ca 00006767,0000e1ca fcf2 fb4e * fcf2 c844 fba9 fcf2 -16843 * * * * * * * 6762 e69da2,ee878b 6762,e1cb 00006762,0000e1cb fcf3 * * fcf3 * * fcf3 -16844 * * * * * * * e1cc f0a4878d,ee878c d850ddcd,e1cc 000241cd,0000e1cc fcf4 * * fcf4 * * fcf4 -16845 * * * * * * * e1cd f0a983ad,ee878d d864dced,e1cd 000290ed,0000e1cd fcf5 * * fcf5 * * fcf5 -16846 * * * * * * * 67d7 e69f97,ee878e 67d7,e1ce 000067d7,0000e1ce fcf6 * * fcf6 * * fcf6 -16847 * * * * * * * 44e9 e493a9,ee878f 44e9,e1cf 000044e9,0000e1cf fcf7 * * fcf7 * * fcf7 -16848 * * * * * * * 6822 e6a0a2,ee8790 6822,e1d0 00006822,0000e1d0 fcf8 faf5 9050 fcf8 c846 fbac fcf8 -16849 * * * * * * * 6e50 e6b990,ee8791 6e50,e1d1 00006e50,0000e1d1 fcf9 * * fcf9 * * fcf9 -16850 * * * * * * * 923c e988bc,ee8792 923c,e1d2 0000923c,0000e1d2 fcfa * * fcfa * * fcfa -16851 * * * * * * * 6801 e6a081,ee8793 6801,e1d3 00006801,0000e1d3 fcfb * * fcfb * * fcfb -16852 * * * * * * * e1d4 f0a38fa6,ee8794 d84cdfe6,e1d4 000233e6,0000e1d4 fcfc * * fcfc * * fcfc -16853 * * * * * * * e1d5 f0a6b6a0,ee8795 d85bdda0,e1d5 00026da0,0000e1d5 fcfd * * fcfd * * fcfd -16854 * * * * * * * 685d e6a19d,ee8796 685d,e1d6 0000685d,0000e1d6 fcfe * * fcfe * * fcfe -16855 * * * * * * * e1d7 f0a391af,ee8797 d84ddc6f,e1d7 0002346f,0000e1d7 fd40 * * fd40 * * fd40 -16856 * * * * * * * 69e1 e6a7a1,ee8798 69e1,e1d8 000069e1,0000e1d8 fd41 * * fd41 * * fd41 -16857 * * * * * * * 6a0b e6a88b,ee8799 6a0b,e1d9 00006a0b,0000e1d9 fd42 fcbd 8fe0 fd42 * fbb3 fd42 -16858 * * * * * * * e1da f0a8ab9f,ee879a d862dedf,e1da 00028adf,0000e1da fd43 * * fd43 * * fd43 -16859 * * * * * * * 6973 e6a5b3,ee879b 6973,e1db 00006973,0000e1db fd44 fcba 8e6f fd44 * fbaf fd44 -16860 * * * * * * * 68c3 e6a383,ee879c 68c3,e1dc 000068c3,0000e1dc fd45 * * fd45 * * fd45 -16861 * * * * * * * e1dd f0a3978d,ee879d d84dddcd,e1dd 000235cd,0000e1dd fd46 * * fd46 * * fd46 -16862 * * * * * * * 6901 e6a481,ee879e 6901,e1de 00006901,0000e1de fd47 fcb6 91bf fd47 * fbae fd47 -16863 * * * * * * * 6900 e6a480,ee879f 6900,e1df 00006900,0000e1df fd48 fcb7 91c0 fd48 * * fd48 -16864 * * * * * * * 3a01 e3a881,ee87a1 3a01,e1e1 00003a01,0000e1e1 fd4a * * fd4a * * fd4a -16865 * * * * * * * e1e2 f0a398bc,ee87a2 d84dde3c,e1e2 0002363c,0000e1e2 fd4b * * fd4b * * fd4b -16866 * * * * * * * 3b80 e3ae80,ee87a3 3b80,e1e3 00003b80,0000e1e3 fd4c * * fd4c * * fd4c -16867 * * * * * * * 67ac e69eac,ee87a4 67ac,e1e4 000067ac,0000e1e4 fd4d fcaf 8f63 fd4d * * fd4d -16868 * * * * * * * 6961 e6a5a1,ee87a5 6961,e1e5 00006961,0000e1e5 fd4e * * fd4e * * fd4e -16869 * * * * * * * e1e6 f0a8a98a,ee87a6 d862de4a,e1e6 00028a4a,0000e1e6 fd4f * * fd4f * * fd4f -16870 * * * * * * * 42fc e48bbc,ee87a7 42fc,e1e7 000042fc,0000e1e7 fd50 * * fd50 * * fd50 -16871 * * * * * * * 6936 e6a4b6,ee87a8 6936,e1e8 00006936,0000e1e8 fd51 * * fd51 * * fd51 -16872 * * * * * * * 6998 e6a698,ee87a9 6998,e1e9 00006998,0000e1e9 fd52 fcc1 8f7a fd52 * fbb0 fd52 -16873 * * * * * * * 3ba1 e3aea1,ee87aa 3ba1,e1ea 00003ba1,0000e1ea fd53 * * fd53 * * fd53 -16874 * * * * * * * e1eb f0a08f89,ee87ab d840dfc9,e1eb 000203c9,0000e1eb fd54 * * fd54 * * fd54 -16875 * * * * * * * 8363 e88da3,ee87ac 8363,e1ec 00008363,0000e1ec fd55 * * fd55 * * fd55 -16876 * * * * * * * 5090 e58290,ee87ad 5090,e1ed 00005090,0000e1ed fd56 * * fd56 * * fd56 -16877 * * * * * * * 69f9 e6a7b9,ee87ae 69f9,e1ee 000069f9,0000e1ee fd57 * * fd57 * * fd57 -16878 * * * * * * * e1ef f0a39999,ee87af d84dde59,e1ef 00023659,0000e1ef fd58 * * fd58 * * fd58 -16879 * * * * * * * e1f0 f0a284aa,ee87b0 d848dd2a,e1f0 0002212a,0000e1f0 fd59 * * fd59 * * fd59 -16880 * * * * * * * 6a45 e6a985,ee87b1 6a45,e1f1 00006a45,0000e1f1 fd5a * * fd5a * * fd5a -16881 * * * * * * * e1f2 f0a39c83,ee87b2 d84ddf03,e1f2 00023703,0000e1f2 fd5b * * fd5b * * fd5b -16882 * * * * * * * 6a9d e6aa9d,ee87b3 6a9d,e1f3 00006a9d,0000e1f3 fd5c fcc8 91c7 fd5c * * fd5c -16883 * * * * * * * 3bf3 e3afb3,ee87b4 3bf3,e1f4 00003bf3,0000e1f4 fd5d * * fd5d * * fd5d -16884 * * * * * * * 67b1 e69eb1,ee87b5 67b1,e1f5 000067b1,0000e1f5 fd5e fa60 8ffb fd5e c845 fbaa fd5e -16885 * * * * * * * 6ac8 e6ab88,ee87b6 6ac8,e1f6 00006ac8,0000e1f6 fd5f faa1 9051 fd5f c848 fbb5 fd5f -16886 * * * * * * * e1f7 f0a9869c,ee87b7 d864dd9c,e1f7 0002919c,0000e1f7 fd60 * * fd60 * * fd60 -16887 * * * * * * * 3c0d e3b08d,ee87b8 3c0d,e1f8 00003c0d,0000e1f8 fd61 * * fd61 * * fd61 -16888 * * * * * * * 6b1d e6ac9d,ee87b9 6b1d,e1f9 00006b1d,0000e1f9 fd62 fcca 91cb fd62 c849 fbb6 fd62 -16889 * * * * * * * e1fa f0a0a4a3,ee87ba d842dd23,e1fa 00020923,0000e1fa fd63 * * fd63 * * fd63 -16890 * * * * * * * * e6839e,eeae94,ee87bb 60de,eb94,e1fb 000060de,0000eb94,0000e1fb 9bec,fd64 * * fd64 * * 9bec,fd64 -16891 * * * * * * * 6b35 e6acb5,ee87bc 6b35,e1fc 00006b35,0000e1fc fd65 * * fd65 c84a fbb7 fd65 -16892 * * * * * * * 6b74 e6adb4,ee87bd 6b74,e1fd 00006b74,0000e1fd fd66 * * fd66 * * fd66 -16893 * * * * * * * e1fe f0a29f8d,ee87be d849dfcd,e1fe 000227cd,0000e1fe fd67 * * fd67 * * fd67 -16894 * * * * * * * 6eb5 e6bab5,ee87bf 6eb5,e1ff 00006eb5,0000e1ff fd68 * * fd68 * * fd68 -16895 * * * * * * * e200 ee8880,f0a3ab9b d84ededb,e200 0000e200,00023adb fd69 * * fd69 * * fd69 -16896 * * * * * * * * * * * * * * fd6a * * * -16897 * * * * * * * e202 f0a1a598,ee8882 d846dd58,e202 00021958,0000e202 fd6b * * fd6b * * fd6b -16898 * * * * * * * 3740 e39d80,ee8883 3740,e203 00003740,0000e203 fd6c * * fd6c * * fd6c -16899 * * * * * * * 5421 e590a1,ee8884 5421,e204 00005421,0000e204 fd6d fbcc 8e6e fd6d * fa7b fd6d -16900 * * * * * * * e205 f0a3ad9a,ee8885 d84edf5a,e205 00023b5a,0000e205 fd6e * * fd6e * * fd6e -16901 * * * * * * * 6be1 e6afa1,ee8886 6be1,e206 00006be1,0000e206 fd6f fb43 905b fd6f c84b fbb8 fd6f -16902 * * * * * * * e207 f0a3bbbc,ee8887 d84fdefc,e207 00023efc,0000e207 fd70 * * fd70 * * fd70 -16903 * * * * * * * 6bdc e6af9c,ee8888 6bdc,e208 00006bdc,0000e208 fd71 * * fd71 * * fd71 -16904 * * * * * * * 6c37 e6b0b7,ee8889 6c37,e209 00006c37,0000e209 fd72 * * fd72 * * fd72 -16905 * * * * * * * e20a f0a2928b,ee888a d849dc8b,e20a 0002248b,0000e20a fd73 * * fd73 * * fd73 -16906 * * * * * * * e20b f0a4a3b1,ee888b d852dcf1,e20b 000248f1,0000e20b fd74 * * fd74 * * fd74 -16907 * * * * * * * e20c f0a6ad91,ee888c d85adf51,e20c 00026b51,0000e20c fd75 * * fd75 * * fd75 -16908 * * * * * * * 6c5a e6b19a,ee888d 6c5a,e20d 00006c5a,0000e20d fd76 * * fd76 * * fd76 -16909 * * * * * * * 8226 e888a6,ee888e 8226,e20e 00008226,0000e20e fd77 fa73 * fd77 c8b3 fc67 fd77 -16910 * * * * * * * 6c79 e6b1b9,ee888f 6c79,e20f 00006c79,0000e20f fd78 fa4e 8fb2 fd78 c84d fbba fd78 -16911 * * * * * * * e210 f0a3b6bc,ee8890 d84fddbc,e210 00023dbc,0000e210 fd79 * * fd79 * * fd79 -16912 * * * * * * * 44c5 e49385,ee8891 44c5,e211 000044c5,0000e211 fd7a * * fd7a * * fd7a -16913 * * * * * * * e212 f0a3b6bd,ee8892 d84fddbd,e212 00023dbd,0000e212 fd7b * * fd7b * * fd7b -16914 * * * * * * * e213 f0a486a4,ee8893 d850dda4,e213 000241a4,0000e213 fd7c * * fd7c * * fd7c -16915 * * * * * * * e214 f0a4a48c,ee8894 d852dd0c,e214 0002490c,0000e214 fd7d * * fd7d * * fd7d -16916 * * * * * * * e215 f0a4a480,ee8895 d852dd00,e215 00024900,0000e215 fd7e * * fd7e * * fd7e -16917 * * * * * * * e216 f0a3b389,ee8896 d84fdcc9,e216 00023cc9,0000e216 fda1 * * fda1 * * fda1 -16918 * * * * * * * 36e5 e39ba5,ee8897 36e5,e217 000036e5,0000e217 fda2 * * fda2 * * fda2 -16919 * * * * * * * 3ceb e3b3ab,ee8898 3ceb,e218 00003ceb,0000e218 fda3 * * fda3 * * fda3 -16920 * * * * * * * e219 f0a0b4b2,ee8899 d843dd32,e219 00020d32,0000e219 fda4 * * fda4 * * fda4 -16921 * * * * * * * 9b83 e9ae83,ee889a 9b83,e21a 00009b83,0000e21a fda5 * * fda5 * * fda5 -16922 * * * * * * * e21b f0a387b9,ee889b d84cddf9,e21b 000231f9,0000e21b fda6 * * fda6 * * fda6 -16923 * * * * * * * e21c f0a29291,ee889c d849dc91,e21c 00022491,0000e21c fda7 * * fda7 * * fda7 -16924 * * * * * * * 7f8f e7be8f,ee889d 7f8f,e21d 00007f8f,0000e21d fda8 * * fda8 * * fda8 -16925 * * * * * * * 6837 e6a0b7,ee889e 6837,e21e 00006837,0000e21e fda9 * * fda9 * * fda9 -16926 * * * * * * * e21f f0a6b4a5,ee889f d85bdd25,e21f 00026d25,0000e21f fdaa * * fdaa * * fdaa -16927 * * * * * * * e220 f0a6b6a1,ee88a0 d85bdda1,e220 00026da1,0000e220 fdab * * fdab * * fdab -16928 * * * * * * * e221 f0a6b7ab,ee88a1 d85bddeb,e221 00026deb,0000e221 fdac * * fdac * * fdac -16929 * * * * * * * 6d96 e6b696,ee88a2 6d96,e222 00006d96,0000e222 fdad fad0 8eb8 fdad c850 fbbd fdad -16930 * * * * * * * 6d5c e6b59c,ee88a3 6d5c,e223 00006d5c,0000e223 fdae faf0 8e67 fdae c84f fbbc fdae -16931 * * * * * * * 6e7c e6b9bc,ee88a4 6e7c,e224 00006e7c,0000e224 fdaf fad4 * fdaf c851 fbbe fdaf -16932 * * * * * * * 6f04 e6bc84,ee88a5 6f04,e225 00006f04,0000e225 fdb0 * * fdb0 * * fdb0 -16933 * * * * * * * e226 f0a4a5bf,ee88a6 d852dd7f,e226 0002497f,0000e226 fdb1 * * fdb1 * * fdb1 -16934 * * * * * * * e227 f0a48285,ee88a7 d850dc85,e227 00024085,0000e227 fdb2 * * fdb2 * * fdb2 -16935 * * * * * * * e228 f0a6b9b2,ee88a8 d85bde72,e228 00026e72,0000e228 fdb3 * * fdb3 * * fdb3 -16936 * * * * * * * 8533 e894b3,ee88a9 8533,e229 00008533,0000e229 fdb4 * * fdb4 * * fdb4 -16937 * * * * * * * e22a f0a6bdb4,ee88aa d85bdf74,e22a 00026f74,0000e22a fdb5 * * fdb5 * * fdb5 -16938 * * * * * * * 51c7 e58787,ee88ab 51c7,e22b 000051c7,0000e22b fdb6 * * fdb6 * * fdb6 -16939 * * * * * * * * * * * * * * fdb7 * * * -16940 * * * * * * * * * * * * * * fdb8 * * * -16941 * * * * * * * 842e e890ae,ee88ae 842e,e22e 0000842e,0000e22e fdb9 * * fdb9 * * fdb9 -16942 * * * * * * * e22f f0a8aca1,ee88af d862df21,e22f 00028b21,0000e22f fdba * * fdba * * fdba -16943 * * * * * * * * f0afa488 d87edd08 0002f908 * * * fdbb * * * -16944 * * * * * * * e231 f0a3b8af,ee88b1 d84fde2f,e231 00023e2f,0000e231 fdbc * * fdbc * * fdbc -16945 * * * * * * * 7453 e79193,ee88b2 7453,e232 00007453,0000e232 fdbd * * fdbd * * fdbd -16946 * * * * * * * e233 f0a3be82,ee88b3 d84fdf82,e233 00023f82,0000e233 fdbe * * fdbe * * fdbe -16947 * * * * * * * 79cc e7a78c,ee88b4 79cc,e234 000079cc,0000e234 fdbf fcde 91d4 fdbf * * fdbf -16948 * * * * * * * 6e4f e6b98f,ee88b5 6e4f,e235 00006e4f,0000e235 fdc0 fcd2 8f62 fdc0 * * fdc0 -16949 * * * * * * * 5a91 e5aa91,ee88b6 5a91,e236 00005a91,0000e236 fdc1 * * fdc1 * * fdc1 -16950 * * * * * * * e237 f0a3818b,ee88b7 d84cdc4b,e237 0002304b,0000e237 fdc2 * * fdc2 * * fdc2 -16951 * * * * * * * 6ff8 e6bfb8,ee88b8 6ff8,e238 00006ff8,0000e238 fdc3 * * fdc3 * * fdc3 -16952 * * * * * * * 370d e39c8d,ee88b9 370d,e239 0000370d,0000e239 fdc4 * * fdc4 * * fdc4 -16953 * * * * * * * 6f9d e6be9d,ee88ba 6f9d,e23a 00006f9d,0000e23a fdc5 * * fdc5 * * fdc5 -16954 * * * * * * * e23b f0a3b8b0,ee88bb d84fde30,e23b 00023e30,0000e23b fdc6 * * fdc6 * * fdc6 -16955 * * * * * * * 6efa e6bbba,ee88bc 6efa,e23c 00006efa,0000e23c fdc7 * * fdc7 * * fdc7 -16956 * * * * * * * e23d f0a19297,ee88bd d845dc97,e23d 00021497,0000e23d fdc8 * * fdc8 * * fdc8 -16957 * * * * * * * e23e f0a480bd,ee88be d850dc3d,e23e 0002403d,0000e23e fdc9 * * fdc9 * * fdc9 -16958 * * * * * * * 4555 e49595,ee88bf 4555,e23f 00004555,0000e23f fdca * * fdca * * fdca -16959 * * * * * * * 93f0 e98fb0,ee8980 93f0,e240 000093f0,0000e240 fdcb * * fdcb * * fdcb -16960 * * * * * * * 6f44 e6bd84,ee8981 6f44,e241 00006f44,0000e241 fdcc fcd4 91cc fdcc * * fdcc -16961 * * * * * * * 6f5c e6bd9c,ee8982 6f5c,e242 00006f5c,0000e242 fdcd fcd5 8fae fdcd * * fdcd -16962 * * * * * * * 3d4e e3b58e,ee8983 3d4e,e243 00003d4e,0000e243 fdce * * fdce * fbc1 fdce -16963 * * * * * * * 6f74 e6bdb4,ee8984 6f74,e244 00006f74,0000e244 fdcf * * fdcf * * fdcf -16964 * * * * * * * e245 f0a985b0,ee8985 d864dd70,e245 00029170,0000e245 fdd0 * * fdd0 * * fdd0 -16965 * * * * * * * 3d3b e3b4bb,ee8986 3d3b,e246 00003d3b,0000e246 fdd1 * * fdd1 * * fdd1 -16966 * * * * * * * 6f9f e6be9f,ee8987 6f9f,e247 00006f9f,0000e247 fdd2 * * fdd2 * fbc3 fdd2 -16967 * * * * * * * e248 f0a48584,ee8988 d850dd44,e248 00024144,0000e248 fdd3 * * fdd3 * * fdd3 -16968 * * * * * * * 6fd3 e6bf93,ee8989 6fd3,e249 00006fd3,0000e249 fdd4 * * fdd4 * * fdd4 -16969 * * * * * * * e24a f0a48291,ee898a d850dc91,e24a 00024091,0000e24a fdd5 * * fdd5 * * fdd5 -16970 * * * * * * * e24b f0a48595,ee898b d850dd55,e24b 00024155,0000e24b fdd6 * * fdd6 * * fdd6 -16971 * * * * * * * e24c f0a480b9,ee898c d850dc39,e24c 00024039,0000e24c fdd7 * * fdd7 * * fdd7 -16972 * * * * * * * e24d f0a3bfb0,ee898d d84fdff0,e24d 00023ff0,0000e24d fdd8 * * fdd8 * * fdd8 -16973 * * * * * * * e24e f0a3beb4,ee898e d84fdfb4,e24e 00023fb4,0000e24e fdd9 * * fdd9 * * fdd9 -16974 * * * * * * * e24f f0a484bf,ee898f d850dd3f,e24f 0002413f,0000e24f fdda * * fdda * * fdda -16975 * * * * * * * 51df e5879f,ee8990 51df,e250 000051df,0000e250 fddb fbbc 9262 fddb * * fddb -16976 * * * * * * * e251 ee8991,f0a48596 d850dd56,e251 0000e251,00024156 fddc * * fddc * * fddc -16977 * * * * * * * e252 ee8992,f0a48597 d850dd57,e252 0000e252,00024157 fddd * * fddd * * fddd -16978 * * * * * * * e253 f0a48580,ee8993 d850dd40,e253 00024140,0000e253 fdde * * fdde * * fdde -16979 * * * * * * * e254 f0a6879d,ee8994 d858dddd,e254 000261dd,0000e254 fddf * * fddf * * fddf -16980 * * * * * * * 704b e7818b,ee8995 704b,e255 0000704b,0000e255 fde0 * * fde0 * * fde0 -16981 * * * * * * * 707e e781be,ee8996 707e,e256 0000707e,0000e256 fde1 fc50 8fe8 fde1 * * fde1 -16982 * * * * * * * 70a7 e782a7,ee8997 70a7,e257 000070a7,0000e257 fde2 * * fde2 * * fde2 -16983 * * * * * * * * * * * * fcdd 8fe5 fde3 * * * -16984 * * * * * * * 70cc e7838c,ee8999 70cc,e259 000070cc,0000e259 fde4 * * fde4 * * fde4 -16985 * * * * * * * 70d5 e78395,ee899a 70d5,e25a 000070d5,0000e25a fde5 fc75 91cf fde5 * * fde5 -16986 * * * * * * * 70d6 e78396,ee899b 70d6,e25b 000070d6,0000e25b fde6 * * fde6 * * fde6 -16987 * * * * * * * 70df e7839f,ee899c 70df,e25c 000070df,0000e25c fde7 fa69 9259 fde7 c857 fbc7 fde7 -16988 * * * * * * * 4104 e48484,ee899d 4104,e25d 00004104,0000e25d fde8 * * fde8 * * fde8 -16989 * * * * * * * 3de8 e3b7a8,ee899e 3de8,e25e 00003de8,0000e25e fde9 * * fde9 * * fde9 -16990 * * * * * * * 71b4 e786b4,ee899f 71b4,e25f 000071b4,0000e25f fdea * * fdea * * fdea -16991 * * * * * * * 7196 e78696,ee89a0 7196,e260 00007196,0000e260 fdeb * * fdeb * * fdeb -16992 * * * * * * * e261 f0a489b7,ee89a1 d850de77,e261 00024277,0000e261 fdec * * fdec * * fdec -16993 * * * * * * * 712b e784ab,ee89a2 712b,e262 0000712b,0000e262 fded * * fded * * fded -16994 * * * * * * * 7145 e78585,ee89a3 7145,e263 00007145,0000e263 fdee fac3 91d1 fdee c85d fbcd fdee -16995 * * * * * * * 5a88 e5aa88,ee89a4 5a88,e264 00005a88,0000e264 fdef * * fdef * * fdef -16996 * * * * * * * 714a e7858a,ee89a5 714a,e265 0000714a,0000e265 fdf0 faf6 8e6c fdf0 c85c fbcc fdf0 -16997 * * * * * * * * efa988 fa48 0000fa48 * * * fdf1 * * * -16998 * * * * * * * e268 f0a48da5,ee89a8 d850df65,e268 00024365,0000e268 fdf3 * * fdf3 * * fdf3 -16999 * * * * * * * 714f e7858f,ee89a9 714f,e269 0000714f,0000e269 fdf4 * * fdf4 * * fdf4 -17000 * * * * * * * 9362 e98da2,ee89aa 9362,e26a 00009362,0000e26a fdf5 * * fdf5 * * fdf5 -17001 * * * * * * * e26b f0a48b81,ee89ab d850dec1,e26b 000242c1,0000e26b fdf6 * * fdf6 * * fdf6 -17002 * * * * * * * 712c e784ac,ee89ac 712c,e26c 0000712c,0000e26c fdf7 * * fdf7 * * fdf7 -17003 * * * * * * * e26d f0a4919a,ee89ad d851dc5a,e26d 0002445a,0000e26d fdf8 * * fdf8 * * fdf8 -17004 * * * * * * * e26e f0a4a8a7,ee89ae d852de27,e26e 00024a27,0000e26e fdf9 * * fdf9 * * fdf9 -17005 * * * * * * * e26f f0a4a8a2,ee89af d852de22,e26f 00024a22,0000e26f fdfa * * fdfa * * fdfa -17006 * * * * * * * 71ba e786ba,ee89b0 71ba,e270 000071ba,0000e270 fdfb * * fdfb * * fdfb -17007 * * * * * * * e271 f0a8afa8,ee89b1 d862dfe8,e271 00028be8,0000e271 fdfc * * fdfc * * fdfc -17008 * * * * * * * 70bd e782bd,ee89b2 70bd,e272 000070bd,0000e272 fdfd * * fdfd * * fdfd -17009 * * * * * * * 720e e7888e,ee89b3 720e,e273 0000720e,0000e273 fdfe * * fdfe * * fdfe -17010 * * * * * * * 9442 e99182,ee89b4 9442,e274 00009442,0000e274 fe40 * * fe40 * * fe40 -17011 * * * * * * * 7215 e78895,ee89b5 7215,e275 00007215,0000e275 fe41 fce9 8eb7 fe41 c860 fbd0 fe41 -17012 * * * * * * * 5911 e5a491,ee89b6 5911,e276 00005911,0000e276 fe42 * * fe42 * * fe42 -17013 * * * * * * * 9443 e99183,ee89b7 9443,e277 00009443,0000e277 fe43 * * fe43 * * fe43 -17014 * * * * * * * 7224 e788a4,ee89b8 7224,e278 00007224,0000e278 fe44 * * fe44 * * fe44 -17015 * * * * * * * 9341 e98d81,ee89b9 9341,e279 00009341,0000e279 fe45 * * fe45 * * fe45 -17016 * * * * * * * e27a f0a59885,ee89ba d855de05,e27a 00025605,0000e27a fe46 * * fe46 * * fe46 -17017 * * * * * * * 722e e788ae,ee89bb 722e,e27b 0000722e,0000e27b fe47 * * fe47 * * fe47 -17018 * * * * * * * 7240 e78980,ee89bc 7240,e27c 00007240,0000e27c fe48 fb41 * fe48 c862 fbd2 fe48 -17019 * * * * * * * e27d f0a4a5b4,ee89bd d852dd74,e27d 00024974,0000e27d fe49 * * fe49 * * fe49 -17020 * * * * * * * 68bd e6a2bd,ee89be 68bd,e27e 000068bd,0000e27e fe4a * * fe4a * * fe4a -17021 * * * * * * * 7255 e78995,ee89bf 7255,e27f 00007255,0000e27f fe4b fceb 9040 fe4b * * fe4b -17022 * * * * * * * 7257 e78997,ee8a80 7257,e280 00007257,0000e280 fe4c * * fe4c * * fe4c -17023 * * * * * * * 3e55 e3b995,ee8a81 3e55,e281 00003e55,0000e281 fe4d * * fe4d * * fe4d -17024 * * * * * * * e282 f0a38184,ee8a82 d84cdc44,e282 00023044,0000e282 fe4e * * fe4e * * fe4e -17025 * * * * * * * 680d e6a08d,ee8a83 680d,e283 0000680d,0000e283 fe4f * * fe4f * * fe4f -17026 * * * * * * * 6f3d e6bcbd,ee8a84 6f3d,e284 00006f3d,0000e284 fe50 * * fe50 * * fe50 -17027 * * * * * * * 7282 e78a82,ee8a85 7282,e285 00007282,0000e285 fe51 * * fe51 * fbd3 fe51 -17028 * * * * * * * * * * * * * * fe52 * * * -17029 * * * * * * * 732b e78cab,ee8a87 732b,e287 0000732b,0000e287 fe53 * * fe53 * * fe53 -17030 * * * * * * * e288 f0a4a0a3,ee8a88 d852dc23,e288 00024823,0000e288 fe54 * * fe54 * * fe54 -17031 * * * * * * * e289 f0a8a0ab,ee8a89 d862dc2b,e289 0002882b,0000e289 fe55 * * fe55 * * fe55 -17032 * * * * * * * 48ed e4a3ad,ee8a8a 48ed,e28a 000048ed,0000e28a fe56 * * fe56 * * fe56 -17033 * * * * * * * e28b f0a8a084,ee8a8b d862dc04,e28b 00028804,0000e28b fe57 * * fe57 * * fe57 -17034 * * * * * * * 7328 e78ca8,ee8a8c 7328,e28c 00007328,0000e28c fe58 fcf3 91d9 fe58 c869 fbdb fe58 -17035 * * * * * * * 732e e78cae,ee8a8d 732e,e28d 0000732e,0000e28d fe59 fcf1 8ea9 fe59 c86a fbdc fe59 -17036 * * * * * * * 73cf e78f8f,ee8a8e 73cf,e28e 000073cf,0000e28e fe5a fa68 * fe5a c86b fbde fe5a -17037 * * * * * * * 73aa e78eaa,ee8a8f 73aa,e28f 000073aa,0000e28f fe5b * * fe5b * * fe5b -17038 * * * * * * * e290 f0a0b0ba,ee8a90 d843dc3a,e290 00020c3a,0000e290 fe5c * * fe5c * * fe5c -17039 * * * * * * * e291 f0a6a8ae,ee8a91 d85ade2e,e291 00026a2e,0000e291 fe5d * * fe5d * * fe5d -17040 * * * * * * * 73c9 e78f89,ee8a92 73c9,e292 000073c9,0000e292 fe5e fcf9 8fbc fe5e * fbdf fe5e -17041 * * * * * * * 7449 e79189,ee8a93 7449,e293 00007449,0000e293 fe5f * * fe5f * * fe5f -17042 * * * * * * * e294 f0a487a2,ee8a94 d850dde2,e294 000241e2,0000e294 fe60 * * fe60 * * fe60 -17043 * * * * * * * e295 f0a19ba7,ee8a95 d845dee7,e295 000216e7,0000e295 fe61 * * fe61 * * fe61 -17044 * * * * * * * e296 f0a4a8a4,ee8a96 d852de24,e296 00024a24,0000e296 fe62 * * fe62 * * fe62 -17045 * * * * * * * 6623 e698a3,ee8a97 6623,e297 00006623,0000e297 fe63 * * fe63 * * fe63 -17046 * * * * * * * 36c5 e39b85,ee8a98 36c5,e298 000036c5,0000e298 fe64 * * fe64 * * fe64 -17047 * * * * * * * e299 f0a4a6b7,ee8a99 d852ddb7,e299 000249b7,0000e299 fe65 * * fe65 * * fe65 -17048 * * * * * * * e29a f0a4a68d,ee8a9a d852dd8d,e29a 0002498d,0000e29a fe66 * * fe66 * * fe66 -17049 * * * * * * * e29b f0a4a7bb,ee8a9b d852ddfb,e29b 000249fb,0000e29b fe67 * * fe67 * * fe67 -17050 * * * * * * * 73f7 e78fb7,ee8a9c 73f7,e29c 000073f7,0000e29c fe68 * * fe68 * * fe68 -17051 * * * * * * * 7415 e79095,ee8a9d 7415,e29d 00007415,0000e29d fe69 * * fe69 * * fe69 -17052 * * * * * * * 6903 e6a483,ee8a9e 6903,e29e 00006903,0000e29e fe6a * * fe6a * * fe6a -17053 * * * * * * * e29f f0a4a8a6,ee8a9f d852de26,e29f 00024a26,0000e29f fe6b * * fe6b * * fe6b -17054 * * * * * * * 7439 e790b9,ee8aa0 7439,e2a0 00007439,0000e2a0 fe6c * * fe6c * * fe6c -17055 * * * * * * * 3ed7 e3bb97,ee8aa2 3ed7,e2a2 00003ed7,0000e2a2 fe6e * * fe6e * * fe6e -17056 * * * * * * * * f0afa4af d87edd2f 0002f92f * * * fe6f * * * -17057 * * * * * * * e2a4 f0a2a2ad,ee8aa4 d84adcad,e2a4 000228ad,0000e2a4 fe70 * * fe70 * * fe70 -17058 * * * * * * * 7460 e791a0,ee8aa5 7460,e2a5 00007460,0000e2a5 fe71 fcfc 8fe4 fe71 * * fe71 -17059 * * * * * * * e2a6 f0a8bab2,ee8aa6 d863deb2,e2a6 00028eb2,0000e2a6 fe72 * * fe72 * * fe72 -17060 * * * * * * * 7447 e79187,ee8aa7 7447,e2a7 00007447,0000e2a7 fe73 * * fe73 * * fe73 -17061 * * * * * * * 73e4 e78fa4,ee8aa8 73e4,e2a8 000073e4,0000e2a8 fe74 * * fe74 * * fe74 -17062 * * * * * * * 7476 e791b6,ee8aa9 7476,e2a9 00007476,0000e2a9 fe75 * * fe75 * * fe75 -17063 * * * * * * * 83b9 e88eb9,ee8aaa 83b9,e2aa 000083b9,0000e2aa fe76 * * fe76 * * fe76 -17064 * * * * * * * 746c e791ac,ee8aab 746c,e2ab 0000746c,0000e2ab fe77 * * fe77 * * fe77 -17065 * * * * * * * 7474 e791b4,ee8aad 7474,e2ad 00007474,0000e2ad fe79 * * fe79 * * fe79 -17066 * * * * * * * 93f1 e98fb1,ee8aae 93f1,e2ae 000093f1,0000e2ae fe7a * * fe7a * * fe7a -17067 * * * * * * * 6a2c e6a8ac,ee8aaf 6a2c,e2af 00006a2c,0000e2af fe7b * * fe7b * * fe7b -17068 * * * * * * * 7482 e79282,ee8ab0 7482,e2b0 00007482,0000e2b0 fe7c * * fe7c * * fe7c -17069 * * * * * * * 4953 e4a593,ee8ab1 4953,e2b1 00004953,0000e2b1 fe7d * * fe7d * * fe7d -17070 * * * * * * * e2b2 f0a4aa8c,ee8ab2 d852de8c,e2b2 00024a8c,0000e2b2 fe7e * * fe7e * * fe7e -17071 * * * * * * * e2b3 f0a4859f,ee8ab3 d850dd5f,e2b3 0002415f,0000e2b3 fea1 * * fea1 * * fea1 -17072 * * * * * * * e2b4 f0a4a9b9,ee8ab4 d852de79,e2b4 00024a79,0000e2b4 fea2 * * fea2 * * fea2 -17073 * * * * * * * e2b5 f0a8ae8f,ee8ab5 d862df8f,e2b5 00028b8f,0000e2b5 fea3 * * fea3 * * fea3 -17074 * * * * * * * 5b46 e5ad86,ee8ab6 5b46,e2b6 00005b46,0000e2b6 fea4 * * fea4 * * fea4 -17075 * * * * * * * e2b7 f0a8b083,ee8ab7 d863dc03,e2b7 00028c03,0000e2b7 fea5 * * fea5 * * fea5 -17076 * * * * * * * e2b8 f0a1a29e,ee8ab8 d846dc9e,e2b8 0002189e,0000e2b8 fea6 * * fea6 * * fea6 -17077 * * * * * * * 74c8 e79388,ee8ab9 74c8,e2b9 000074c8,0000e2b9 fea7 * * fea7 * * fea7 -17078 * * * * * * * e2ba f0a1a688,ee8aba d846dd88,e2ba 00021988,0000e2ba fea8 * * fea8 * * fea8 -17079 * * * * * * * 750e e7948e,ee8abb 750e,e2bb 0000750e,0000e2bb fea9 fd45 9049 fea9 * * fea9 -17080 * * * * * * * 751e e7949e,ee8abd 751e,e2bd 0000751e,0000e2bd feab fd47 9047 feab * * feab -17081 * * * * * * * e2be f0a8bb99,ee8abe d863ded9,e2be 00028ed9,0000e2be feac * * feac * * feac -17082 * * * * * * * e2bf f0a1a98b,ee8abf d846de4b,e2bf 00021a4b,0000e2bf fead * * fead * * fead -17083 * * * * * * * 5bd7 e5af97,ee8b80 5bd7,e2c0 00005bd7,0000e2c0 feae * * feae * faf7 feae -17084 * * * * * * * e2c1 f0a8baac,ee8b81 d863deac,e2c1 00028eac,0000e2c1 feaf * * feaf * * feaf -17085 * * * * * * * 9385 e98e85,ee8b82 9385,e2c2 00009385,0000e2c2 feb0 fadb * feb0 c8de fccd feb0 -17086 * * * * * * * 754d e7958d,ee8b83 754d,e2c3 0000754d,0000e2c3 feb1 * * feb1 * * feb1 -17087 * * * * * * * 754a e7958a,ee8b84 754a,e2c4 0000754a,0000e2c4 feb2 fd49 8fb1 feb2 * * feb2 -17088 * * * * * * * 7567 e795a7,ee8b85 7567,e2c5 00007567,0000e2c5 feb3 * * feb3 * * feb3 -17089 * * * * * * * 756e e795ae,ee8b86 756e,e2c6 0000756e,0000e2c6 feb4 * * feb4 * * feb4 -17090 * * * * * * * e2c7 f0a4be82,ee8b87 d853df82,e2c7 00024f82,0000e2c7 feb5 * * feb5 * * feb5 -17091 * * * * * * * 3f04 e3bc84,ee8b88 3f04,e2c8 00003f04,0000e2c8 feb6 * * feb6 * * feb6 -17092 * * * * * * * e2c9 f0a4b493,ee8b89 d853dd13,e2c9 00024d13,0000e2c9 feb7 * * feb7 * * feb7 -17093 * * * * * * * 758e e7968e,ee8b8a 758e,e2ca 0000758e,0000e2ca feb8 fd4c 925c feb8 * fbe2 feb8 -17094 * * * * * * * 745d e7919d,ee8b8b 745d,e2cb 0000745d,0000e2cb feb9 fcfb 8ff9 feb9 * * feb9 -17095 * * * * * * * 759e e7969e,ee8b8c 759e,e2cc 0000759e,0000e2cc feba * * feba * * feba -17096 * * * * * * * 75b4 e796b4,ee8b8d 75b4,e2cd 000075b4,0000e2cd febb faaa 8e4f febb c86d fbe3 febb -17097 * * * * * * * 7602 e79882,ee8b8e 7602,e2ce 00007602,0000e2ce febc fd6f 8ff6 febc * * febc -17098 * * * * * * * 762c e798ac,ee8b8f 762c,e2cf 0000762c,0000e2cf febd * * febd * * febd -17099 * * * * * * * 7651 e79991,ee8b90 7651,e2d0 00007651,0000e2d0 febe * * febe * * febe -17100 * * * * * * * 764f e7998f,ee8b91 764f,e2d1 0000764f,0000e2d1 febf * * febf * * febf -17101 * * * * * * * 766f e799af,ee8b92 766f,e2d2 0000766f,0000e2d2 fec0 fd72 8fcc fec0 * * fec0 -17102 * * * * * * * * ee8b93 e2d3 0000e2d3 fec1 * * fec1 * * fec1 -17103 * * * * * * * e2d4 f0a68fb5,ee8b94 d858dff5,e2d4 000263f5,0000e2d4 fec2 * * fec2 * * fec2 -17104 * * * * * * * 7690 e79a90,ee8b95 7690,e2d5 00007690,0000e2d5 fec3 fd4e 8e57 fec3 * * fec3 -17105 * * * * * * * 81ef e887af,ee8b96 81ef,e2d6 000081ef,0000e2d6 fec4 * * fec4 * * fec4 -17106 * * * * * * * 37f8 e39fb8,ee8b97 37f8,e2d7 000037f8,0000e2d7 fec5 * * fec5 * * fec5 -17107 * * * * * * * e2d8 f0a6a491,ee8b98 d85add11,e2d8 00026911,0000e2d8 fec6 * * fec6 * * fec6 -17108 * * * * * * * e2d9 f0a6a48e,ee8b99 d85add0e,e2d9 0002690e,0000e2d9 fec7 fdc7 8fe3 fec7 * * fec7 -17109 * * * * * * * 76a1 e79aa1,ee8b9a 76a1,e2da 000076a1,0000e2da fec8 fd4d 8fbb fec8 * * fec8 -17110 * * * * * * * 76a5 e79aa5,ee8b9b 76a5,e2db 000076a5,0000e2db fec9 * * fec9 * * fec9 -17111 * * * * * * * 76b7 e79ab7,ee8b9c 76b7,e2dc 000076b7,0000e2dc feca * * feca * * feca -17112 * * * * * * * 76cc e79b8c,ee8b9d 76cc,e2dd 000076cc,0000e2dd fecb fd4f 8fac fecb * fbf1 fecb -17113 * * * * * * * e2de f0a6be9f,ee8b9e d85bdf9f,e2de 00026f9f,0000e2de fecc * * fecc * * fecc -17114 * * * * * * * 8462 e891a2,ee8b9f 8462,e2df 00008462,0000e2df fecd * * fecd * * fecd -17115 * * * * * * * e2e0 f0a5829d,ee8ba0 d854dc9d,e2e0 0002509d,0000e2e0 fece * * fece * * fece -17116 * * * * * * * e2e1 f0a585bd,ee8ba1 d854dd7d,e2e1 0002517d,0000e2e1 fecf * * fecf * * fecf -17117 * * * * * * * e2e2 f0a1b89c,ee8ba2 d847de1c,e2e2 00021e1c,0000e2e2 fed0 * * fed0 * * fed0 -17118 * * * * * * * 771e e79c9e,ee8ba3 771e,e2e3 0000771e,0000e2e3 fed1 * * fed1 * * fed1 -17119 * * * * * * * 7726 e79ca6,ee8ba4 7726,e2e4 00007726,0000e2e4 fed2 fd53 91e0 fed2 * * fed2 -17120 * * * * * * * 7740 e79d80,ee8ba5 7740,e2e5 00007740,0000e2e5 fed3 faa6 9258 fed3 c875 fbf3 fed3 -17121 * * * * * * * 64af e692af,ee8ba6 64af,e2e6 000064af,0000e2e6 fed4 * * fed4 * * fed4 -17122 * * * * * * * e2e7 f0a588a0,ee8ba7 d854de20,e2e7 00025220,0000e2e7 fed5 * * fed5 * * fed5 -17123 * * * * * * * 7758 e79d98,ee8ba8 7758,e2e8 00007758,0000e2e8 fed6 * * fed6 * * fed6 -17124 * * * * * * * e2e9 f0a38aac,ee8ba9 d84cdeac,e2e9 000232ac,0000e2e9 fed7 * * fed7 * * fed7 -17125 * * * * * * * 77af e79eaf,ee8baa 77af,e2ea 000077af,0000e2ea fed8 * * fed8 * * fed8 -17126 * * * * * * * e2eb f0a8a5a4,ee8bab d862dd64,e2eb 00028964,0000e2eb fed9 * * fed9 * * fed9 -17127 * * * * * * * e2ec f0a8a5a8,ee8bac d862dd68,e2ec 00028968,0000e2ec feda * * feda * * feda -17128 * * * * * * * e2ed f0a19b81,ee8bad d845dec1,e2ed 000216c1,0000e2ed fedb * * fedb * * fedb -17129 * * * * * * * 77f4 e79fb4,ee8bae 77f4,e2ee 000077f4,0000e2ee fedc * * fedc * * fedc -17130 * * * * * * * * * * * * * * fedd * * * -17131 * * * * * * * 68ca e6a38a,ee8bb2 68ca,e2f2 000068ca,0000e2f2 fee0 fcb8 8e7b fee0 * * fee0 -17132 * * * * * * * 78af e7a2af,ee8bb3 78af,e2f3 000078af,0000e2f3 fee1 fd5b 8e52 fee1 * fc40 fee1 -17133 * * * * * * * 78c7 e7a387,ee8bb4 78c7,e2f4 000078c7,0000e2f4 fee2 * * fee2 * * fee2 -17134 * * * * * * * 78d3 e7a393,ee8bb5 78d3,e2f5 000078d3,0000e2f5 fee3 fd57 91e3 fee3 * * fee3 -17135 * * * * * * * 96a5 e99aa5,ee8bb6 96a5,e2f6 000096a5,0000e2f6 fee4 * * fee4 * * fee4 -17136 * * * * * * * 792e e7a4ae,ee8bb7 792e,e2f7 0000792e,0000e2f7 fee5 fd5d 9041 fee5 c87a fc41 fee5 -17137 * * * * * * * e2f8 f0a597a0,ee8bb8 d855dde0,e2f8 000255e0,0000e2f8 fee6 * * fee6 * * fee6 -17138 * * * * * * * 78d7 e7a397,ee8bb9 78d7,e2f9 000078d7,0000e2f9 fee7 * * fee7 * * fee7 -17139 * * * * * * * 7934 e7a4b4,ee8bba 7934,e2fa 00007934,0000e2fa fee8 * * fee8 * * fee8 -17140 * * * * * * * 78b1 e7a2b1,ee8bbb 78b1,e2fb 000078b1,0000e2fb fee9 fd58 8ec7 fee9 * fbfd fee9 -17141 * * * * * * * e2fc f0a7988c,ee8bbc d85dde0c,e2fc 0002760c,0000e2fc feea * * feea * * feea -17142 * * * * * * * 8fb8 e8beb8,ee8bbd 8fb8,e2fd 00008fb8,0000e2fd feeb * * feeb * * feeb -17143 * * * * * * * 8884 e8a284,ee8bbe 8884,e2fe 00008884,0000e2fe feec * * feec * * feec -17144 * * * * * * * e301 f0a2989c,ee8c81 d849de1c,e301 0002261c,0000e301 feef * * feef * * feef -17145 * * * * * * * 7986 e7a686,ee8c82 7986,e302 00007986,0000e302 fef0 * * fef0 * * fef0 -17146 * * * * * * * 8900 e8a480,ee8c83 8900,e303 00008900,0000e303 fef1 * * fef1 * * fef1 -17147 * * * * * * * 6902 e6a482,ee8c84 6902,e304 00006902,0000e304 fef2 * * fef2 * * fef2 -17148 * * * * * * * 7980 e7a680,ee8c85 7980,e305 00007980,0000e305 fef3 * * fef3 * * fef3 -17149 * * * * * * * e306 f0a5a197,ee8c86 d856dc57,e306 00025857,0000e306 fef4 * * fef4 * * fef4 -17150 * * * * * * * 799d e7a69d,ee8c87 799d,e307 0000799d,0000e307 fef5 fb54,fd60 8efa fef5 c87c fc44 fef5 -17151 * * * * * * * e308 f0a7acb9,ee8c88 d85edf39,e308 00027b39,0000e308 fef6 * * fef6 * * fef6 -17152 * * * * * * * 793c e7a4bc,ee8c89 793c,e309 0000793c,0000e309 fef7 * * fef7 * * fef7 -17153 * * * * * * * 79a9 e7a6a9,ee8c8a 79a9,e30a 000079a9,0000e30a fef8 fd61 8ef6 fef8 * * fef8 -17154 * * * * * * * 6e2a e6b8aa,ee8c8b 6e2a,e30b 00006e2a,0000e30b fef9 * * fef9 * * fef9 -17155 * * * * * * * e30c f0a784a6,ee8c8c d85cdd26,e30c 00027126,0000e30c fefa * * fefa * * fefa -17156 * * * * * * * 3ea8 e3baa8,ee8c8d 3ea8,e30d 00003ea8,0000e30d fefb * * fefb * * fefb -17157 * * * * * * * 79c6 e7a786,ee8c8e 79c6,e30e 000079c6,0000e30e fefc * * fefc c87d fc45 fefc -17158 * * * * * * * e30f f0a9848d,ee8c8f d864dd0d,e30f 0002910d,0000e30f fefd * * fefd * * fefd -17159 * * * * * * * 79d4 e7a794,ee8c90 79d4,e310 000079d4,0000e310 fefe fd63 91e7 fefe * * fefe -17160 * * * * * * * * * * * * * * 8a40 * * * -17161 * * * * * * * 5525 e594a5,ef90be 5525,f43e 00005525,0000f43e 8a41 * * 8a41 * * 8a41 -17162 * * * * * * * * * * * * * * 8a42 * * * -17163 * * * * * * * f440 f0a0b182,ef9180 d843dc42,f440 00020c42,0000f440 8a43 * * 8a43 * * 8a43 -17164 * * * * * * * f441 f0a0b495,ef9181 d843dd15,f441 00020d15,0000f441 8a44 * * 8a44 * * 8a44 -17165 * * * * * * * f442 f0a584ab,ef9182 d854dd2b,f442 0002512b,0000f442 8a45 * * 8a45 * * 8a45 -17166 * * * * * * * 5590 e59690,ef9183 5590,f443 00005590,0000f443 8a46 * * 8a46 * * 8a46 -17167 * * * * * * * f444 f0a2b386,ef9184 d84bdcc6,f444 00022cc6,0000f444 8a47 * * 8a47 * * 8a47 -17168 * * * * * * * 39ec e3a7ac,ef9185 39ec,f445 000039ec,0000f445 8a48 * * 8a48 * * 8a48 -17169 * * * * * * * f446 f0a08d81,ef9186 d840df41,f446 00020341,0000f446 8a49 * * 8a49 * * 8a49 -17170 * * * * * * * 8e46 e8b986,ef9187 8e46,f447 00008e46,0000f447 8a4a * * 8a4a * * 8a4a -17171 * * * * * * * f448 f0a4b6b8,ef9188 d853ddb8,f448 00024db8,0000f448 8a4b * * 8a4b * * 8a4b -17172 * * * * * * * f449 f0a993a5,ef9189 d865dce5,f449 000294e5,0000f449 8a4c * * 8a4c * * 8a4c -17173 * * * * * * * * * * * * * * 8a4d * * * -17174 * * * * * * * f44b f0a882be,ef918b d860dcbe,f44b 000280be,0000f44b 8a4e * * 8a4e * * 8a4e -17175 * * * * * * * 777a e79dba,ef918c 777a,f44c 0000777a,0000f44c 8a4f * * 8a4f * fbf5 8a4f -17176 * * * * * * * f44d f0a2b0b8,ef918d d84bdc38,f44d 00022c38,0000f44d 8a50 * * 8a50 * * 8a50 -17177 * * * * * * * 3a34 e3a8b4,ef918e 3a34,f44e 00003a34,0000f44e 8a51 * * 8a51 * * 8a51 -17178 * * * * * * * 47d5 e49f95,ef918f 47d5,f44f 000047d5,0000f44f 8a52 * * 8a52 * * 8a52 -17179 * * * * * * * f450 f0a8859d,ef9190 d860dd5d,f450 0002815d,0000f450 8a53 * * 8a53 * * 8a53 -17180 * * * * * * * f451 f0a6a7b2,ef9191 d85addf2,f451 000269f2,0000f451 8a54 * * 8a54 * * 8a54 -17181 * * * * * * * f452 f0a4b7aa,ef9192 d853ddea,f452 00024dea,0000f452 8a55 * * 8a55 * * 8a55 -17182 * * * * * * * 64dd e6939d,ef9193 64dd,f453 000064dd,0000f453 8a56 * * 8a56 * * 8a56 -17183 * * * * * * * f454 f0a0b5bc,ef9194 d843dd7c,f454 00020d7c,0000f454 8a57 * * 8a57 * * 8a57 -17184 * * * * * * * f455 f0a0beb4,ef9195 d843dfb4,f455 00020fb4,0000f455 8a58 * * 8a58 * * 8a58 -17185 * * * * * * * f456 f0a0b395,ef9196 d843dcd5,f456 00020cd5,0000f456 8a59 * * 8a59 * * 8a59 -17186 * * * * * * * * f0abaab3 d86edeb3 0002bab3 * * * 8a5a * * * -17187 * * * * * * * 648d e6928d,ef9198 648d,f458 0000648d,0000f458 8a5b * * 8a5b * * 8a5b -17188 * * * * * * * 8e7e e8b9be,ef9199 8e7e,f459 00008e7e,0000f459 8a5c * * 8a5c * * 8a5c -17189 * * * * * * * f45a f0a0ba96,ef919a d843de96,f45a 00020e96,0000f45a 8a5d * * 8a5d * fac4 8a5d -17190 * * * * * * * * * * * * * * 8a5e * * * -17191 * * * * * * * f45c f0a0bda4,ef919c d843df64,f45c 00020f64,0000f45c 8a5f * * 8a5f * * 8a5f -17192 * * * * * * * f45d f0a2b2a9,ef919d d84bdca9,f45d 00022ca9,0000f45d 8a60 * * 8a60 * * 8a60 -17193 * * * * * * * f45e f0a88996,ef919e d860de56,f45e 00028256,0000f45e 8a61 * * 8a61 * * 8a61 -17194 * * * * * * * f45f f0a49393,ef919f d851dcd3,f45f 000244d3,0000f45f 8a62 * * 8a62 * * 8a62 -17195 * * * * * * * * * * * * * * 8a63 * * * -17196 * * * * * * * f461 f0a0b586,ef91a1 d843dd46,f461 00020d46,0000f461 8a64 * * 8a64 c778 fab2 8a64 -17197 * * * * * * * f462 f0a9a98d,ef91a2 d866de4d,f462 00029a4d,0000f462 8a65 * * 8a65 * * 8a65 -17198 * * * * * * * f463 f0a883a9,ef91a3 d860dce9,f463 000280e9,0000f463 8a66 * * 8a66 * * 8a66 -17199 * * * * * * * 47f4 e49fb4,ef91a4 47f4,f464 000047f4,0000f464 8a67 * * 8a67 * * 8a67 -17200 * * * * * * * f465 f0a4baa7,ef91a5 d853dea7,f465 00024ea7,0000f465 8a68 * * 8a68 * * 8a68 -17201 * * * * * * * f466 f0a2b382,ef91a6 d84bdcc2,f466 00022cc2,0000f466 8a69 * * 8a69 * * 8a69 -17202 * * * * * * * 9ab2 e9aab2,ef91a7 9ab2,f467 00009ab2,0000f467 8a6a * * 8a6a * * 8a6a -17203 * * * * * * * 3a67 e3a9a7,ef91a8 3a67,f468 00003a67,0000f468 8a6b * * 8a6b * * 8a6b -17204 * * * * * * * f469 f0a997b4,ef91a9 d865ddf4,f469 000295f4,0000f469 8a6c * * 8a6c * * 8a6c -17205 * * * * * * * 3fed e3bfad,ef91aa 3fed,f46a 00003fed,0000f46a 8a6d * * 8a6d * * 8a6d -17206 * * * * * * * 3506 e39486,ef91ab 3506,f46b 00003506,0000f46b 8a6e * * 8a6e * * 8a6e -17207 * * * * * * * f46c f0a58b87,ef91ac d854dec7,f46c 000252c7,0000f46c 8a6f * * 8a6f * * 8a6f -17208 * * * * * * * f46d f0a99f94,ef91ad d865dfd4,f46d 000297d4,0000f46d 8a70 * * 8a70 * * 8a70 -17209 * * * * * * * * * * * * * * 8a71 * * * -17210 * * * * * * * f46f f0a2b584,ef91af d84bdd44,f46f 00022d44,0000f46f 8a72 * * 8a72 * * 8a72 -17211 * * * * * * * 9d6e e9b5ae,ef91b0 9d6e,f470 00009d6e,0000f470 8a73 * * 8a73 * * 8a73 -17212 * * * * * * * 9815 e9a095,ef91b1 9815,f471 00009815,0000f471 8a74 * * 8a74 * * 8a74 -17213 * * * * * * * * f0abb397 d86fdcd7 0002bcd7 * * * 8a75 * * * -17214 * * * * * * * 43d9 e48f99,ef91b3 43d9,f473 000043d9,0000f473 8a76 * * 8a76 * * 8a76 -17215 * * * * * * * * * * * * * * 8a77 * * * -17216 * * * * * * * 64b4 e692b4,ef91b5 64b4,f475 000064b4,0000f475 8a78 * * 8a78 * * 8a78 -17217 * * * * * * * 54e3 e593a3,ef91b6 54e3,f476 000054e3,0000f476 8a79 * * 8a79 * * 8a79 -17218 * * * * * * * * * * * * * * 8a7a * * * -17219 * * * * * * * f478 ef91b8,f0a2af8a d84adfca,f478 0000f478,00022bca 8a7b * * 8a7b * * 8a7b -17220 * * * * * * * * * * * * * * 8a7c * * * -17221 * * * * * * * 39fb e3a7bb,ef91ba 39fb,f47a 000039fb,0000f47a 8a7d * * 8a7d * * 8a7d -17222 * * * * * * * * f0aba5b7 d86edd77 0002b977 * * * 8a7e * * * -17223 * * * * * * * f47c f0a69b9a,ef91bc d859deda,f47c 000266da,0000f47c 8aa1 * * 8aa1 * * 8aa1 -17224 * * * * * * * f47d f0a69c96,ef91bd d859df16,f47d 00026716,0000f47d 8aa2 * * 8aa2 * * 8aa2 -17225 * * * * * * * f47e f0a7a6a0,ef91be d85edda0,f47e 000279a0,0000f47e 8aa3 * * 8aa3 * * 8aa3 -17226 * * * * * * * 64ea e693aa,ef91bf 64ea,f47f 000064ea,0000f47f 8aa4 * * 8aa4 * * 8aa4 -17227 * * * * * * * f480 f0a58192,ef9280 d854dc52,f480 00025052,0000f480 8aa5 * * 8aa5 * * 8aa5 -17228 * * * * * * * f481 f0a0b183,ef9281 d843dc43,f481 00020c43,0000f481 8aa6 * * 8aa6 * * 8aa6 -17229 * * * * * * * 8e68 e8b9a8,ef9282 8e68,f482 00008e68,0000f482 8aa7 * * 8aa7 * * 8aa7 -17230 * * * * * * * * * * * * * * 8aa8 * * * -17231 * * * * * * * f484 f0a8ad8c,ef9284 d862df4c,f484 00028b4c,0000f484 8aa9 * * 8aa9 * * 8aa9 -17232 * * * * * * * f485 f0a09cb1,ef9285 d841df31,f485 00020731,0000f485 8aaa * * 8aaa * * 8aaa -17233 * * * * * * * * * * * * * * 8aab * * * -17234 * * * * * * * 480b e4a08b,ef9287 480b,f487 0000480b,0000f487 8aac * * 8aac * * 8aac -17235 * * * * * * * f488 f0a086a9,ef9288 d840dda9,f488 000201a9,0000f488 8aad * * 8aad * * 8aad -17236 * * * * * * * 3ffa e3bfba,ef9289 3ffa,f489 00003ffa,0000f489 8aae * * 8aae * * 8aae -17237 * * * * * * * 5873 e5a1b3,ef928a 5873,f48a 00005873,0000f48a 8aaf * * 8aaf * * 8aaf -17238 * * * * * * * f48b f0a2b68d,ef928b d84bdd8d,f48b 00022d8d,0000f48b 8ab0 * * 8ab0 * fb72 8ab0 -17239 * * * * * * * * * * * * * * 8ab1 * * * -17240 * * * * * * * f48d f0a49788,ef928d d851ddc8,f48d 000245c8,0000f48d 8ab2 * * 8ab2 * * 8ab2 -17241 * * * * * * * f48e f0a093bc,ef928e d841dcfc,f48e 000204fc,0000f48e 8ab3 * * 8ab3 * * 8ab3 -17242 * * * * * * * f48f f0a68297,ef928f d858dc97,f48f 00026097,0000f48f 8ab4 * * 8ab4 * * 8ab4 -17243 * * * * * * * f490 f0a0bd8c,ef9290 d843df4c,f490 00020f4c,0000f490 8ab5 * * 8ab5 * * 8ab5 -17244 * * * * * * * * * * * * * * 8ab6 * * * -17245 * * * * * * * 5579 e595b9,ef9292 5579,f492 00005579,0000f492 8ab7 * * 8ab7 * * 8ab7 -17246 * * * * * * * * * * * * * * 8ab8 * * * -17247 * * * * * * * 43ba e48eba,ef9294 43ba,f494 000043ba,0000f494 8ab9 * * 8ab9 * * 8ab9 -17248 * * * * * * * * * * * * * * 8aba * * * -17249 * * * * * * * 4ab4 e4aab4,ef9296 4ab4,f496 00004ab4,0000f496 8abb * * 8abb * * 8abb -17250 * * * * * * * f497 f0a2a9a6,ef9297 d84ade66,f497 00022a66,0000f497 8abc * * 8abc * * 8abc -17251 * * * * * * * f498 f0a1829d,ef9298 d844dc9d,f498 0002109d,0000f498 8abd * * 8abd * * 8abd -17252 * * * * * * * 81aa e886aa,ef9299 81aa,f499 000081aa,0000f499 8abe * * 8abe * * 8abe -17253 * * * * * * * 98f5 e9a3b5,ef929a 98f5,f49a 000098f5,0000f49a 8abf * * 8abf * * 8abf -17254 * * * * * * * f49b f0a0b69c,ef929b d843dd9c,f49b 00020d9c,0000f49b 8ac0 * * 8ac0 * * 8ac0 -17255 * * * * * * * 6379 e68db9,ef929c 6379,f49c 00006379,0000f49c 8ac1 * * 8ac1 * * 8ac1 -17256 * * * * * * * 39fe e3a7be,ef929d 39fe,f49d 000039fe,0000f49d 8ac2 * * 8ac2 * * 8ac2 -17257 * * * * * * * f49e f0a29db5,ef929e d849df75,f49e 00022775,0000f49e 8ac3 * * 8ac3 * * 8ac3 -17258 * * * * * * * 8dc0 e8b780,ef929f 8dc0,f49f 00008dc0,0000f49f 8ac4 * * 8ac4 * * 8ac4 -17259 * * * * * * * 56a1 e59aa1,ef92a0 56a1,f4a0 000056a1,0000f4a0 8ac5 * * 8ac5 * * 8ac5 -17260 * * * * * * * 647c e691bc,ef92a1 647c,f4a1 0000647c,0000f4a1 8ac6 * * 8ac6 * * 8ac6 -17261 * * * * * * * 3e43 e3b983,ef92a2 3e43,f4a2 00003e43,0000f4a2 8ac7 * * 8ac7 * * 8ac7 -17262 * * * * * * * * * * * * * * 8ac8 * * * -17263 * * * * * * * f4a4 f0aa9881,ef92a4 d869de01,f4a4 0002a601,0000f4a4 8ac9 * * 8ac9 * * 8ac9 -17264 * * * * * * * f4a5 f0a0b889,ef92a5 d843de09,f4a5 00020e09,0000f4a5 8aca * * 8aca * * 8aca -17265 * * * * * * * f4a6 f0a2ab8f,ef92a6 d84adecf,f4a6 00022acf,0000f4a6 8acb * * 8acb * * 8acb -17266 * * * * * * * * f0ac97b8 d871ddf8 0002c5f8 * * * 8acc * * * -17267 * * * * * * * * * * * * * * 8acd * * * -17268 * * * * * * * f4a9 f0a18388,ef92a9 d844dcc8,f4a9 000210c8,0000f4a9 8ace * * 8ace * * 8ace -17269 * * * * * * * f4aa f0a3a782,ef92aa d84eddc2,f4aa 000239c2,0000f4aa 8acf * * 8acf * * 8acf -17270 * * * * * * * 3992 e3a692,ef92ab 3992,f4ab 00003992,0000f4ab 8ad0 * * 8ad0 * * 8ad0 -17271 * * * * * * * 3a06 e3a886,ef92ac 3a06,f4ac 00003a06,0000f4ac 8ad1 * * 8ad1 * * 8ad1 -17272 * * * * * * * f4ad f0a88a9b,ef92ad d860de9b,f4ad 0002829b,0000f4ad 8ad2 * * 8ad2 * * 8ad2 -17273 * * * * * * * 3578 e395b8,ef92ae 3578,f4ae 00003578,0000f4ae 8ad3 * * 8ad3 * * 8ad3 -17274 * * * * * * * f4af f0a5b989,ef92af d857de49,f4af 00025e49,0000f4af 8ad4 * * 8ad4 * * 8ad4 -17275 * * * * * * * f4b0 f0a28387,ef92b0 d848dcc7,f4b0 000220c7,0000f4b0 8ad5 * * 8ad5 * * 8ad5 -17276 * * * * * * * * * * * * * * 8ad6 * * * -17277 * * * * * * * * * * * * * * 8ad7 * * * -17278 * * * * * * * f4b3 f0a2b2b2,ef92b3 d84bdcb2,f4b3 00022cb2,0000f4b3 8ad8 * * 8ad8 * * 8ad8 -17279 * * * * * * * f4b4 f0a99ca0,ef92b4 d865df20,f4b4 00029720,0000f4b4 8ad9 * * 8ad9 * * 8ad9 -17280 * * * * * * * 34bc e392bc,ef92b5 34bc,f4b5 000034bc,0000f4b5 8ada * * 8ada * * 8ada -17281 * * * * * * * 6c3d e6b0bd,ef92b6 6c3d,f4b6 00006c3d,0000f4b6 8adb * * 8adb * * 8adb -17282 * * * * * * * f4b7 f0a4b8bb,ef92b7 d853de3b,f4b7 00024e3b,0000f4b7 8adc * * 8adc * * 8adc -17283 * * * * * * * * f0aca6a0 d872dda0 0002c9a0 * * * 8add * * * -17284 * * * * * * * * * * * * * * 8ade * * * -17285 * * * * * * * f4ba f0a795b4,ef92ba d85ddd74,f4ba 00027574,0000f4ba 8adf * * 8adf * * 8adf -17286 * * * * * * * f4bb f0a2ba8b,ef92bb d84bde8b,f4bb 00022e8b,0000f4bb 8ae0 * * 8ae0 * * 8ae0 -17287 * * * * * * * f4bc f0a28888,ef92bc d848de08,f4bc 00022208,0000f4bc 8ae1 * * 8ae1 * * 8ae1 -17288 * * * * * * * f4bd f0aa999b,ef92bd d869de5b,f4bd 0002a65b,0000f4bd 8ae2 * * 8ae2 * * 8ae2 -17289 * * * * * * * f4be f0a8b38d,ef92be d863dccd,f4be 00028ccd,0000f4be 8ae3 * * 8ae3 * * 8ae3 -17290 * * * * * * * f4bf f0a0b9ba,ef92bf d843de7a,f4bf 00020e7a,0000f4bf 8ae4 * * 8ae4 * * 8ae4 -17291 * * * * * * * f4c0 ef9380,f0a0b0b4 d843dc34,f4c0 00020c34,0000f4c0 8ae5 * * 8ae5 * * 8ae5 -17292 * * * * * * * f4db f0a798b9,ef939b d85dde39,f4db 00027639,0000f4db 8b41 * * 8b41 * * 8b41 -17293 * * * * * * * f4dc f0a2af8e,ef939c d84adfce,f4dc 00022bce,0000f4dc 8b42 * * 8b42 * * 8b42 -17294 * * * * * * * f4df ef939f,f0a2b191 d84bdc51,f4df 0000f4df,00022c51 8b45 * * 8b45 * * 8b45 -17295 * * * * * * * 3a18 e3a898,ef93a1 3a18,f4e1 00003a18,0000f4e1 8b47 * * 8b47 * fb6d 8b47 -17296 * * * * * * * f4e3 ef93a3,f0a18387 d844dcc7,f4e3 0000f4e3,000210c7 8b49 * * 8b49 * * 8b49 -17297 * * * * * * * f4e5 ef93a5,f0aa98b2 d869de32,f4e5 0000f4e5,0002a632 8b4b * * 8b4b * * 8b4b -17298 * * * * * * * f4e7 f0a8b392,ef93a7 d863dcd2,f4e7 00028cd2,0000f4e7 8b4d * * 8b4d * * 8b4d -17299 * * * * * * * f4e8 f0a8b699,ef93a8 d863dd99,f4e8 00028d99,0000f4e8 8b4e * * 8b4e * * 8b4e -17300 * * * * * * * f4e9 f0a8b38a,ef93a9 d863dcca,f4e9 00028cca,0000f4e9 8b4f * * 8b4f * * 8b4f -17301 * * * * * * * 95aa e996aa,ef93aa 95aa,f4ea 000095aa,0000f4ea 8b50 * * 8b50 * * 8b50 -17302 * * * * * * * * * * * * fbe4 * 8b54 * * * -17303 * * * * * * * f4f2 ef93b2,f0a79d9e d85ddf5e,f4f2 0000f4f2,0002775e 8b58 * * 8b58 * * 8b58 -17304 * * * * * * * 7140 e78580,ef93b4 7140,f4f4 00007140,0000f4f4 8b5a * * 8b5a * * 8b5a -17305 * * * * * * * * * * * * fae1 * * c742 fa42 * -17306 * * * * * * * 5156 e58596,ef8eb1 5156,f3b1 00005156,0000f3b1 8951 * * * * fa45 8951 -17307 * * * * * * * * e4bbbe 4efe 00004efe * * * * c747 fa4a * -17308 * * * * * * * 5088 e58288,ef9097 5088,f417 00005088,0000f417 89d9 * * * * fa4e 89d9 -17309 * * * * * * * * * * * * * * * c749 fa50 * -17310 * * * * * * * 3493 e39293,ef9099 3493,f419 00003493,0000f419 89db * * * * fa52 89db -17311 * * * * * * * 5186 e58686,ef909b 5186,f41b 00005186,0000f41b 89dd * * * c74b fa53 89dd -17312 * * * * * * * 5e42 e5b982,ef98bd 5e42,f63d 00005e42,0000f63d 8d69 * * * * fa56 8d69 -17313 * * * * * * * 5205 e58885,ef909f 5205,f41f 00005205,0000f41f 89e1 * * * * fa5f 89e1 -17314 * * * * * * * 5227 e588a7,ef8fa4 5227,f3e4 00005227,0000f3e4 89a6 * * * c753 fa60 89a6 -17315 * * * * * * * 5279 e589b9,ef90a1 5279,f421 00005279,0000f421 89e3 * * * * fa64 89e3 -17316 * * * * * * * * f0afa0a8 d87edc28 0002f828 * * * * c75a fa6a * -17317 * * * * * * * 3553 e39593,ef90a8 3553,f428 00003553,0000f428 89ea * * * * fa70 89ea -17318 * * * * * * * 53c2 e58f82,ef90a9 53c2,f429 000053c2,0000f429 89eb * * * c75f fa72 89eb -17319 * * * * * * * 535f e58d9f,ef93bb 535f,f4fb 0000535f,0000f4fb 8b61 * * * c762 fa76 8b61 -17320 * * * * * * * 54cc * * * * * * * c76e faa7 * -17321 * * * * * * * 553f e594bf,ef90b8 553f,f438 0000553f,0000f438 89fa * * * c779 fab3 89fa -17322 * * * * * * * 55b9 * * * * * * * * fabb * -17323 * * * * * * * 55d8 e59798,eea992 55d8,ea52 000055d8,0000ea52 99e4 * * * c7a5 fabe 99e4 -17324 * * * * * * * 35dd e3979d,ef9482 35dd,f502 000035dd,0000f502 8b68 * * * c7a7 fac0 8b68 -17325 * * * * * * * 5621 e598a1,ef999b 5621,f65b 00005621,0000f65b 8da9 * * * c7ae fac8 8da9 -17326 * * * * * * * 5553 * * * * * * * c7b1 facb * -17327 * * * * * * * 5654 e59994,eeaa8c 5654,ea8c 00005654,0000ea8c 9a5f fbe1 917b * c7b6 fad0 9a5f -17328 * * * * * * * eaf4 eeabb4,f0a181bb d844dc7b,eaf4 0000eaf4,0002107b 9ae9 * * * * fad8 9ae9 -17329 * * * * * * * * * * * * * * * c7be fadc * -17330 * * * * * * * eaf9 eeabb9,f0a18393 d844dcd3,eaf9 0000eaf9,000210d3 9aee * * * c7bf fadd 9aee -17331 * * * * * * * * * * * * * * * * fade * -17332 * * * * * * * eea7 eebaa7,f0a18bbe d844defe,eea7 0000eea7,000212fe a0ee * * * c7c4 fae4 a0ee -17333 * * * * * * * 5acf * * * * * * * c7cc faf1 * -17334 * * * * * * * * * * * * * * * * faf9 * -17335 * * * * * * * 37b9 e39eb9,eeab88 37b9,eac8 000037b9,0000eac8 9abd * * * * fafb 9abd -17336 * * * * * * * 5cc1 e5b381,eebaab 5cc1,eeab 00005cc1,0000eeab a0f2 * * * * fafc a0f2 -17337 * * * * * * * 5d15 e5b495,ef999a 5d15,f65a 00005d15,0000f65a 8da8 * * * * fb41 8da8 -17338 * * * * * * * 5d56 e5b596,ef98b6 5d56,f636 00005d56,0000f636 8d62 * * * * fb43 8d62 -17339 * * * * * * * 3838 e3a0b8,ef98bc 3838,f63c 00003838,0000f63c 8d68 * * * * fb47 8d68 -17340 * * * * * * * 4e81 e4ba81,ef908d 4e81,f40d 00004e81,0000f40d 89cf * * * c7d7 fb49 89cf -17341 * * * * * * * 5ebd e5babd,ef98be 5ebd,f63e 00005ebd,0000f63e 8d6a * * * c7d8 fb4b 8d6a -17342 * * * * * * * 3914 e3a494,ef9982 3914,f642 00003914,0000f642 8d6e * * * * fb55 8d6e -17343 * * * * * * * 61b9 e686b9,ef998a 61b9,f64a 000061b9,0000f64a 8d76 * * * * fb5d 8d76 -17344 * * * * * * * 6290 e68a90,ef998e 6290,f64e 00006290,0000f64e 8d7a * * * * fb61 8d7a -17345 * * * * * * * 6318 e68c98,ef9990 6318,f650 00006318,0000f650 8d7c * * * c7ec fb65 8d7c -17346 * * * * * * * 645a e6919a,ef9997 645a,f657 0000645a,0000f657 8da5 * * * c7f5 fb70 8da5 -17347 * * * * * * * 6491 e69291,ef8ead 6491,f3ad 00006491,0000f3ad 894d * * * c7f6 fb71 894d -17348 * * * * * * * 816d e885ad,ef93b5 816d,f4f5 0000816d,0000f4f5 8b5b * * * * fba4 8b5b -17349 * * * * * * * 8184 e88684,eea892 8184,ea12 00008184,0000ea12 99a4 * * * * fba5 99a4 -17350 * * * * * * * 8193 e88693,eea894 8193,ea14 00008193,0000ea14 99a6 * * * * fba7 99a6 -17351 * * * * * * * 6800 e6a080,ef99a8 6800,f668 00006800,0000f668 8db6 * * * * fbab 8db6 -17352 * * * * * * * 3bbc e3aebc,ef99b5 3bbc,f675 00003bbc,0000f675 8dc3 * * * * fbb1 8dc3 -17353 * * * * * * * 728f e78a8f,eeb1a5 728f,ec65 0000728f,0000ec65 9d61 * * * * fbd4 9d61 -17354 * * * * * * * 72cd e78b8d,eea685 72cd,e985 000072cd,0000e985 98b4 * * * c863 fbd5 98b4 -17355 * * * * * * * * f0a49faf d851dfef 000247ef * * * * c866 fbd8 * -17356 * * * * * * * 7339 e78cb9,eea689 7339,e989 00007339,0000e989 98b8 * * * c867 fbd9 98b8 -17357 * * * * * * * 7542 e79582,eea6a3 7542,e9a3 00007542,0000e9a3 98d2 * * * * fbe1 98d2 -17358 * * * * * * * 75dc e7979c,eea6a9 75dc,e9a9 000075dc,0000e9a9 98d8 * * * c86f fbe5 98d8 -17359 * * * * * * * 3fc0 e3bf80,eea6aa 3fc0,e9aa 00003fc0,0000e9aa 98d9 * * * c871 fbe7 98d9 -17360 * * * * * * * eb76 eeadb6,f0a4baa5 d853dea5,eb76 0000eb76,00024ea5 9bce * * * * fbea 9bce -17361 * * * * * * * 3fd7 e3bf97,eea6ac 3fd7,e9ac 00003fd7,0000e9ac 98db * * * * fbec 98db -17362 * * * * * * * * * * * * fd73 * * * fbee * -17363 * * * * * * * 7680 e79a80 7680 00007680 * * * * c874 fbef * -17364 * * * * * * * 768c,e9b0 e79a8c,eea6b0,f0a4bd9c 768c,d853df5c,e9b0 0000768c,0000e9b0,00024f5c 98df * * * * fbf0 98df -17365 * * * * * * * 40a8 e482a8,eea785 40a8,e9c5 000040a8,0000e9c5 98f4 * * * * fbf9 98f4 -17366 * * * * * * * 7839 e7a0b9,eea786 7839,e9c6 00007839,0000e9c6 98f5 * * * * fbfa 98f5 -17367 * * * * * * * 4103 e48483,eea78f 4103,e9cf 00004103,0000e9cf 98fe * * * * fc43 98fe -17368 * * * * * * * 7a91 e7aa91,eea797 7a91,e9d7 00007a91,0000e9d7 9947 * * * * fc4a 9947 -17369 * * * * * * * 7c1b e7b09b,eea7a4 7c1b,e9e4 00007c1b,0000e9e4 9954 * * * * fc51 9954 -17370 * * * * * * * 7ced e7b3ad,eea7ac 7ced,e9ec 00007ced,0000e9ec 995c * * * c8a6 fc56 995c -17371 * * * * * * * 7f93 e7be93,ef9382 7f93,f4c2 00007f93,0000f4c2 8ae7 * * * c8ae fc62 8ae7 -17372 * * * * * * * 7fae e7beae,eea7b4 7fae,e9f4 00007fae,0000e9f4 9964 * * * c8b0 fc64 9964 -17373 * * * * * * * * * * * * * * * * fc68 * -17374 * * * * * * * 82ff e88bbf,eea8a0 82ff,ea20 000082ff,0000ea20 99b2 * * * * fc6a 99b2 -17375 * * * * * * * 585f e5a19f,eea98d 585f,ea4d 0000585f,0000ea4d 99df * * * * fc6e 99df -17376 * * * * * * * 86b2 e89ab2,eea8b8 86b2,ea38 000086b2,0000ea38 99ca * * * * fc74 99ca -17377 * * * * * * * * e496ac 45ac 000045ac * * * * * fc75 * -17378 * * * * * * * 878b e89e8b,eea8bb 878b,ea3b 0000878b,0000ea3b 99cd * * * * fc77 99cd -17379 * * * * * * * 8947 e8a587,eea981 8947,ea41 00008947,0000ea41 99d3 * * * * fca6 99d3 -17380 * * * * * * * * * * * * * * * c8c3 fca8 * -17381 * * * * * * * 8a29 e8a8a9,eea984 8a29,ea44 00008a29,0000ea44 99d6 * * * * fcab 99d6 -17382 * * * * * * * * * * * * fe49 * * * fcad * -17383 * * * * * * * 8e71 e8b9b1,eea994 8e71,ea54 00008e71,0000ea54 99e6 * * * c8ca fcb4 99e6 -17384 * * * * * * * ec44 eeb184,f0a88689 d860dd89,ec44 0000ec44,00028189 9d40 * * * c8cb fcb5 9d40 -17385 * * * * * * * 8eb0 e8bab0,eea996 8eb0,ea56 00008eb0,0000ea56 99e8 * * * c8cd fcb7 99e8 -17386 * * * * * * * * f0ab90ac d86ddc2c 0002b42c * * * * * fcbf * -17387 * * * * * * * 915e e9859e,ef8fab 915e,f3eb 0000915e,0000f3eb 89ad fe62 90c8 * * fcc1 89ad -17388 * * * * * * * 918c e9868c,ef8fa9 918c,f3e9 0000918c,0000f3e9 89ab * * * * fcc5 89ab -17389 * * * * * * * 990e e9a48e,eeaa93 990e,ea93 0000990e,0000ea93 9a66 * * * * fcda 9a66 -17390 * * * * * * * 991c e9a49c,eeaa96 991c,ea96 0000991c,0000ea96 9a69 * * * * fcdb 9a69 -17391 * * * * * * * 9962 * * * * * * * c8e8 fcdf * -17392 * * * * * * * 9ab6 * * * * * * * * fce3 * -17393 * * * * * * * 9b81 e9ae81,eeaaa2 9b81,eaa2 00009b81,0000eaa2 9a75 * * * c8ee fce9 9a75 -17394 * * * * * * * 9dc0 e9b780,eeaab0 9dc0,eab0 00009dc0,0000eab0 9aa5 * * * c8f6 fcf4 9aa5 -17395 * * * * * * * 9d93 e9b693,eeaaae 9d93,eaae 00009d93,0000eaae 9aa3 * * * c8f7 fcf5 9aa3 -17396 * * * * * * * 9eac e9baac,eeaab5 9eac,eab5 00009eac,0000eab5 9aaa * * * * fcfa 9aaa -17397 * * * * * * * 4d91 e4b691,eeb1bc 4d91,ec7c 00004d91,0000ec7c 9d78 * * * * fcfd 9d78 -17398 * * * * * * * * * * * * * 8eab * * * * -17399 * * * * * * * 93ba e98eba 93ba 000093ba * * 90d3 * * * * -17400 * * * * * * * 9e7b e9b9bb,eeaab4 9e7b,eab4 00009e7b,0000eab4 9aa9 * 9146 * * * 9aa9 -17401 * * * * * * * 7089 e78289,ef9aac 7089,f6ac 00007089,0000f6ac 8dfa fcdb 8ea5 * * * 8dfa -17402 * * * * * * * 7348 e78d88,eea68c 7348,e98c 00007348,0000e98c 98bb fcf2 8fdb * * * 98bb -17403 * * * * * * * * * * * * fd64 91e8 * * * * -17404 * * * * * * * 7999 e7a699,eea792 7999,e9d2 00007999,0000e9d2 9942 fde2 915d * * * 9942 -17405 * * * * * * * 8fb7 e8beb7,eea99d 8fb7,ea5d 00008fb7,0000ea5d 99ef fe67 8ee7 * * * 99ef -17406 * * * * * * * * * * * * fe6a 90c5 * * * * -17407 * * * * * * * 9942 e9a582,eeaa98 9942,ea98 00009942,0000ea98 9a6b febd 8f4f * * * 9a6b -17408 * * * * * * * * * * * * * * * * * * -17409 * * * * * * * * * * * * * * * * * * -17410 * * * * * * * * * * * * * * * * * * -17411 * * * * * * * * * * * * * * * * * * -17412 * * * * * * * * * * * * * * * * * * -17413 * * * * * * * * * * * * * * * * * * -17414 * * * * * * * * * * * * * * * * * * -17415 * * * * * * * * * * * * * * * * * * -17416 * * * * * * * * * * * * * * * * * * -17417 * * * * * * * * * * * * * * * * * * -17418 * * * * * * * * * * * * * * * * * * -17419 * * * * * * * * * * * * * * * * * * -17420 * * * * * * * * * * * * * * * * * * -17421 * * * * * * * * * * * * * * * * * * -17422 * * * * * * * * * * * * * * * * * * -17423 * * * * * * * * * * * * * * * * * * -17424 * * * * * * * * * * * * * * * * * * -17425 * * * * * * * * * * * * * * * * * * -17426 * * * * * * * * * * * * * * * * * * -17427 * * * * * * * * * * * * * * * * * * -17428 * * * * * * * * * * * * * * * * * * -17429 * * * * * * * * * * * * * * * * * * -17430 * * * * * * * * * * * * * * * * * * -17431 * * * * * * * * * * * * * * * * * * -17432 * * * * * * * * * * * * * * * * * * -17433 * * * * * * * * * * * * * * * * * * -17434 * * * * * * * * * * * * * * * * * * -17435 * * * * * * * * * * * * * * * * * * -17436 * * * * * * * * * * * * * * * * * * -17437 * * * * * * * * * * * * * * * * * * -17438 * * * * * * * * * * * * * * * * * * -17439 * * * * * * * * * * * * * * * * * * -17440 * * * * * * * * * * * * * * * * * * -17441 * * * * * * * * * * * * * * * * * * -17442 * * * * * * * * * * * * * * * * * * -17443 * * * * * * * * * * * * * * * * * * -17444 * * * * * * * * * * * * * * * * * * -17445 * * * * * * * * * * * * * * * * * * -17446 * * * * * * * * * * * * * * * * * * -17447 * * * * * * * * * * * * * * * * * * -17448 * * * * * * * * * * * * * * * * * * -17449 * * * * * * * * * * * * * * * * * * -17450 * * * * * * * * * * * * * * * * * * -17451 * * * * * * * * * * * * * * * * * * -17452 * * * * * * * * * * * * * * * * * * -17453 * * * * * * * * * * * * * * * * * * -17454 * * * * * * * * * * * * * * * * * * -17455 * * * * * * * * * * * * * * * * * * -17456 * * * * * * * * * * * * * * * * * * -17457 * * * * * * * * * * * * * * * * * * -17458 * * * * * * * * * * * * * * * * * * -17459 * * * * * * * * * * * * * * * * * * -17460 * * * * * * * * * * * * * * * * * * -17461 * * * * * * * * * * * * * * * * * * -17462 * * * * * * * * * * * * * * * * * * -17463 * * * * * * * * * * * * * * * * * * -17464 * * * * * * * * * * * * * * * * * * -17465 * * * * * * * * * * * * * * * * * * -17466 * * * * * * * * * * * * * * * * * * -17467 * * * * * * * * * * * * * * * * * * -17468 * * * * * * * * * * * * * * * * * * -17469 * * * * * * * * * * * * * * * * * * -17470 * * * * * * * * * * * * * * * * * * -17471 * * * * * * * * * * * * * * * * * * -17472 * * * * * * * * * * * * * * * * * * -17473 * * * * * * * * * * * * * * * * * * -17474 * * * * * * * * * * * * * * * * * * -17475 * * * * * * * * * * * * * * * * * * -17476 * * * * * * * * * * * * * * * * * * -17477 * * * * * * * * * * * * * * * * * * -17478 * * * * * * * * * * * * * * * * * * -17479 * * * * * * * * * * * * * * * * * * -17480 * * * * * * * * * * * * * * * * * * -17481 * * * * * * * * * * * * * * * * * * -17482 * * * * * * * * * * * * * * * * * * -17483 * * * * * * * * * * * * * * * * * * -17484 * * * * * * * * * * * * * * * * * * -17485 * * * * * * * * * * * * * * * * * * -17486 * * * * * * * * * * * * * * * * * * -17487 * * * * * * * * * * * * * * * * * * -17488 * * * * * * * * * * * * * * * * * * -17489 * * * * * * * * * * * * * * * * * * -17490 * * * * * * * * * * * * * * * * * * -17491 * * * * * * * * * * * * * * * * * * -17492 * * * * * * * * * * * * * * * * * * -17493 * * * * * * * * * * * * * * * * * * -17494 * * * * * * * * * * * * * * * * * * -17495 * * * * * * * * * * * * * * * * * * -17496 * * * * * * * * * * * * * * * * * * -17497 * * * * * * * * * * * * * * * * * * -17498 * * * * * * * * * * * * * * * * * * -17499 * * * * * * * * * * * * * * * * * * -17500 * * * * * * * * * * * * * * * * * * -17501 * * * * * * * * * * * * * * * * * * -17502 * * * * * * * * * * * * * * * * * * -17503 * * * * * * * * * * * * * * * * * * -17504 * * * * * * * * * * * * * * * * * * -17505 * * * * * * * * * * * * * * * * * * -17506 * * * * * * * * * * * * * * * * * * -17507 * * * * * * * * * * * * * * * * * * -17508 * * * * * * * * * * * * * * * * * * -17509 * * * * * * * * * * * * * * * * * * -17510 * * * * * * * * * * * * * * * * * * -17511 * * * * * * * * * * * * * * * * * * -17512 * * * * * * * * * * * * * * * * * * -17513 * * * * * * * * * * * * * * * * * * -17514 * * * * * * * * * * * * * * * * * * -17515 * * * * * * * * * * * * * * * * * * -17516 * * * * * * * * * * * * * * * * * * -17517 * * * * * * * * * * * * * * * * * * -17518 * * * * * * * * * * * * * * * * * * -17519 * * * * * * * * * * * * * * * * * * -17520 * * * * * * * * * * * * * * * * * * -17521 * * * * * * * * * * * * * * * * * * -17522 * * * * * * * * * * * * * * * * * * -17523 * * * * * * * * * * * * * * * * * * -17524 * * * * * * * * * * * * * * * * * * -17525 * * * * * * * * * * * * * * * * * * -17526 * * * * * * * * * * * * * * * * * * -17527 * * * * * * * * * * * * * * * * * * -17528 * * * * * * * * * * * * * * * * * * -17529 * * * * * * * * * * * * * * * * * * -17530 * * * * * * * * * * * * * * * * * * -17531 * * * * * * * * * * * * * * * * * * -17532 * * * * * * * * * * * * * * * * * * -17533 * * * * * * * * * * * * * * * * * * -17534 * * * * * * * * * * * * * * * * * * -17535 * * * * * * * * * * * * * * * * * * -17536 * * * * * * * * * * * * * * * * * * -17537 * * * * * * * * * * * * * * * * * * -17538 * * * * * * * * * * * * * * * * * * -17539 * * * * * * * * * * * * * * * * * * -17540 * * * * * * * * * * * * * * * * * * -17541 * * * * * * * * * * * * * * * * * * -17542 * * * * * * * * * * * * * * * * * * -17543 * * * * * * * * * * * * * * * * * * -17544 * * * * * * * * * * * * * * * * * * -17545 * * * * * * * * * * * * * * * * * * -17546 * * * * * * * * * * * * * * * * * * -17547 * * * * * * * * * * * * * * * * * * -17548 * * * * * * * * * * * * * * * * * * -17549 * * * * * * * * * * * * * * * * * * -17550 * * * * * * * * * * * * * * * * * * -17551 * * * * * * * * * * * * * * * * * * -17552 * * * * * * * * * * * * * * * * * * -17553 * * * * * * * * * * * * * * * * * * -17554 * * * * * * * * * * * * * * * * * * -17555 * * * * * * * * * * * * * * * * * * -17556 * * * * * * * * * * * * * * * * * * -17557 * * * * * * * * * * * * * * * * * * -17558 * * * * * * * * * * * * * * * * * * -17559 * * * * * * * * * * * * * * * * * * -17560 * * * * * * * * * * * * * * * * * * -17561 * * * * * * * * * * * * * * * * * * -17562 * * * * * * * * * * * * * * * * * * -17563 * * * * * * * * * * * * * * * * * * -17564 * * * * * * * * * * * * * * * * * * -17565 * * * * * * * * * * * * * * * * * * -17566 * * * * * * * * * * * * * * * * * * -17567 * * * * * * * * * * * * * * * * * * -17568 * * * * * * * * * * * * * * * * * * -17569 * * * * * * * * * * * * * * * * * * -17570 * * * * * * * * * * * * * * * * * * -17571 * * * * * * * * * * * * * * * * * * -17572 * * * * * * * * * * * * * * * * * * -17573 * * * * * * * * * * * * * * * * * * -17574 * * * * * * * * * * * * * * * * * * -17575 * * * * * * * * * * * * * * * * * * -17576 * * * * * * * * * * * * * * * * * * -17577 * * * * * * * * * * * * * * * * * * -17578 * * * * * * * * * * * * * * * * * * -17579 * * * * * * * * * * * * * * * * * * -17580 * * * * * * * * * * * * * * * * * * -17581 * * * * * * * * * * * * * * * * * * -17582 * * * * * * * * * * * * * * * * * * -17583 * * * * * * * * * * * * * * * * * * -17584 * * * * * * * * * * * * * * * * * * -17585 * * * * * * * * * * * * * * * * * * -17586 * * * * * * * * * * * * * * * * * * -17587 * * * * * * * * * * * * * * * * * * -17588 * * * * * * * * * * * * * * * * * * -17589 * * * * * * * * * * * * * * * * * * -17590 * * * * * * * * * * * * * * * * * * -17591 * * * * * * * * * * * * * * * * * * -17592 * * * * * * * * * * * * * * * * * * -17593 * * * * * * * * * * * * * * * * * * -17594 * * * * * * * * * * * * * * * * * * -17595 * * * * * * * * * * * * * * * * * * -17596 * * * * * * * * * * * * * * * * * * -17597 * * * * * * * * * * * * * * * * * * -17598 * * * * * * * * * * * * * * * * * * -17599 * * * * * * * * * * * * * * * * * * -17600 * * * * * * * * * * * * * * * * * * -17601 * * * * * * * 20ac e282ac 20ac 000020ac * * * * * * * -17602 * * * * * * * * * * * * * * * * * * -17603 * * * * * * * * * * * * * * * * * * -17604 * * * * * * * * * * * * * * * * * * -17605 * * * * * * * * * * * * * * * * * * -17606 * * * * * * * 309b e3829b,efa09e 309b,f81e 0000309b,0000f81e c8d4 * * * * * c8d4 -17607 * * * * * * * 309c e3829c,efa09f 309c,f81f 0000309c,0000f81f c8d5 * * * * * c8d5 -17608 * * * * * * * 2e80 e2ba80,efa0a0 2e80,f820 00002e80,0000f820 c8d6 * * * * * c8d6 -17609 * * * * * * * f303 e38780,ef8c83 31c0,f303 000031c0,0000f303 8840 * * * * * 8840 -17610 * * * * * * * f304 e38781,ef8c84 31c1,f304 000031c1,0000f304 8841 * * * * * 8841 -17611 * * * * * * * f305 e38782,ef8c85 31c2,f305 000031c2,0000f305 8842 * * * * * 8842 -17612 * * * * * * * f306 e38783,ef8c86 31c3,f306 000031c3,0000f306 8843 * * * * * 8843 -17613 * * * * * * * f307 e38784,ef8c87 31c4,f307 000031c4,0000f307 8844 * * * * * 8844 -17614 * * * * * * * f308 f0a0848c,ef8c88 d840dd0c,f308 0002010c,0000f308 8845 * * * * * 8845 -17615 * * * * * * * f309 e38785,ef8c89 31c5,f309 000031c5,0000f309 8846 * * * * * 8846 -17616 * * * * * * * f30a f0a08391,ef8c8a d840dcd1,f30a 000200d1,0000f30a 8847 * * * * * 8847 -17617 * * * * * * * f30b f0a0838d,ef8c8b d840dccd,f30b 000200cd,0000f30b 8848 * * * * * 8848 -17618 * * * * * * * f30c e38786,ef8c8c 31c6,f30c 000031c6,0000f30c 8849 * * * * * 8849 -17619 * * * * * * * f30d e38787,ef8c8d 31c7,f30d 000031c7,0000f30d 884a * * * * * 884a -17620 * * * * * * * f30e f0a0838b,ef8c8e d840dccb,f30e 000200cb,0000f30e 884b * * * * * 884b -17621 * * * * * * * f30f f0a1bfa8,ef8c8f d847dfe8,f30f 00021fe8,0000f30f 884c * * * * * 884c -17622 * * * * * * * f310 e38788,ef8c90 31c8,f310 000031c8,0000f310 884d * * * * * 884d -17623 * * * * * * * f311 f0a0838a,ef8c91 d840dcca,f311 000200ca,0000f311 884e * * * * * 884e -17624 * * * * * * * f312 e38789,ef8c92 31c9,f312 000031c9,0000f312 884f * * * * * 884f -17625 * * * * * * * f313 e3878a,ef8c93 31ca,f313 000031ca,0000f313 8850 * * * * * 8850 -17626 * * * * * * * f314 e3878b,ef8c94 31cb,f314 000031cb,0000f314 8851 * * * * * 8851 -17627 * * * * * * * f315 e3878c,ef8c95 31cc,f315 000031cc,0000f315 8852 * * * * * 8852 -17628 * * * * * * * f316 f0a0848e,ef8c96 d840dd0e,f316 0002010e,0000f316 8853 * * * * * 8853 -17629 * * * * * * * f317 e3878d,ef8c97 31cd,f317 000031cd,0000f317 8854 * * * * * 8854 -17630 * * * * * * * f318 e3878e,ef8c98 31ce,f318 000031ce,0000f318 8855 * * * * * 8855 -17631 * * * * * * * * ef94b8 f538 0000f538 8bc0 * * * * * 8bc0 -17632 * * * * * * * * e2bca1,e5a482,ef94b9 2f21,5902,f539 00002f21,00005902,0000f539 8bc1 * * * * * 8bc1 -17633 * * * * * * * f53a f0a1af81,ef94ba d846dfc1,f53a 00021bc1,0000f53a 8bc2 * * * * * 8bc2 -17634 * * * * * * * f53b f0afa1b8,ef94bb d87edc78,f53b 0002f878,0000f53b 8bc3 * * * * * 8bc3 -17635 * * * * * * * 9751 e2bead,e99d91,ef94bc 2fad,9751,f53c 00002fad,00009751,0000f53c 8bc4 * * * * * 8bc4 -17636 * * * * * * * f53d f0a08286,ef94bd d840dc86,f53d 00020086,0000f53d 8bc5 * * * * * 8bc5 -17637 * * * * * * * 4e5b e4b99b,ef94be 4e5b,f53e 00004e5b,0000f53e 8bc6 * * * * * 8bc6 -17638 * * * * * * * 4ebb e4babb,ef94bf 4ebb,f53f 00004ebb,0000f53f 8bc7 * * * * * 8bc7 -17639 * * * * * * * 353e e394be,ef9580 353e,f540 0000353e,0000f540 8bc8 * * * * * 8bc8 -17640 * * * * * * * 5c23 e5b0a3,ef9581 5c23,f541 00005c23,0000f541 8bc9 * * * * * 8bc9 -17641 * * * * * * * 5f51 e5bd91,ef9582 5f51,f542 00005f51,0000f542 8bca * * * * * 8bca -17642 * * * * * * * 5fc4 e5bf84,ef9583 5fc4,f543 00005fc4,0000f543 8bcb * * * * * 8bcb -17643 * * * * * * * 38fa e3a3ba,ef9584 38fa,f544 000038fa,0000f544 8bcc * * * * * 8bcc -17644 * * * * * * * 624c e6898c,ef9585 624c,f545 0000624c,0000f545 8bcd * * * * * 8bcd -17645 * * * * * * * 6535 e694b5,ef9586 6535,f546 00006535,0000f546 8bce * * * * * 8bce -17646 * * * * * * * 6b7a e6adba,ef9587 6b7a,f547 00006b7a,0000f547 8bcf * * * * * 8bcf -17647 * * * * * * * 6c35 e6b0b5,ef9588 6c35,f548 00006c35,0000f548 8bd0 * * * * * 8bd0 -17648 * * * * * * * 6c3a e6b0ba,ef9589 6c3a,f549 00006c3a,0000f549 8bd1 * * * * * 8bd1 -17649 * * * * * * * 706c e781ac,ef958a 706c,f54a 0000706c,0000f54a 8bd2 * * * * * 8bd2 -17650 * * * * * * * 722b e788ab,ef958b 722b,f54b 0000722b,0000f54b 8bd3 * * * * * 8bd3 -17651 * * * * * * * 4e2c e4b8ac,ef958c 4e2c,f54c 00004e2c,0000f54c 8bd4 * * * * * 8bd4 -17652 * * * * * * * 72ad e78aad,ef958d 72ad,f54d 000072ad,0000f54d 8bd5 * * * * * 8bd5 -17653 * * * * * * * f54e f0a4a3a9,ef958e d852dce9,f54e 000248e9,0000f54e 8bd6 * * * * * 8bd6 -17654 * * * * * * * 7f52 e7bd92,ef958f 7f52,f54f 00007f52,0000f54f 8bd7 * * * * * 8bd7 -17655 * * * * * * * 793b e7a4bb,ef9590 793b,f550 0000793b,0000f550 8bd8 * * * * * 8bd8 -17656 * * * * * * * 7cf9 e7b3b9,ef9591 7cf9,f551 00007cf9,0000f551 8bd9 * * * * * 8bd9 -17657 * * * * * * * 7f53 e7bd93,ef9592 7f53,f552 00007f53,0000f552 8bda * * * * * 8bda -17658 * * * * * * * f553 f0a689aa,ef9593 d858de6a,f553 0002626a,0000f553 8bdb * * * * * 8bdb -17659 * * * * * * * 34c1 e39381,ef9594 34c1,f554 000034c1,0000f554 8bdc * * * * * 8bdc -17660 * * * * * * * f556 f0a68d8b,ef9596 d858df4b,f556 0002634b,0000f556 8bde * * * * * 8bde -17661 * * * * * * * 8002 e88082,ef9597 8002,f557 00008002,0000f557 8bdf * * * * * 8bdf -17662 * * * * * * * 8080 e88280,ef9598 8080,f558 00008080,0000f558 8be0 * * * * * 8be0 -17663 * * * * * * * f559 f0a69892,ef9599 d859de12,f559 00026612,0000f559 8be1 * * * * * 8be1 -17664 * * * * * * * f55a f0a6a591,ef959a d85add51,f55a 00026951,0000f55a 8be2 * * * * * 8be2 -17665 * * * * * * * 535d e58d9d,ef959b 535d,f55b 0000535d,0000f55b 8be3 * * * * * 8be3 -17666 * * * * * * * 8864 e8a1a4,ef959c 8864,f55c 00008864,0000f55c 8be4 * * * * * 8be4 -17667 * * * * * * * 89c1 e8a781,ef959d 89c1,f55d 000089c1,0000f55d 8be5 * * * * * 8be5 -17668 * * * * * * * f55e f0a7a2b2,ef959e d85edcb2,f55e 000278b2,0000f55e 8be6 * * * * * 8be6 -17669 * * * * * * * 8ba0 e8aea0,ef959f 8ba0,f55f 00008ba0,0000f55f 8be7 * * * * * 8be7 -17670 * * * * * * * 8d1d e8b49d,ef95a0 8d1d,f560 00008d1d,0000f560 8be8 * * * * * 8be8 -17671 * * * * * * * 9485 e99285,ef95a1 9485,f561 00009485,0000f561 8be9 * * * * * 8be9 -17672 * * * * * * * 9578 e995b8,ef95a2 9578,f562 00009578,0000f562 8bea * * * * * 8bea -17673 * * * * * * * 957f e995bf,ef95a3 957f,f563 0000957f,0000f563 8beb * * * * * 8beb -17674 * * * * * * * 95e8 e997a8,ef95a4 95e8,f564 000095e8,0000f564 8bec * * * * * 8bec -17675 * * * * * * * f565 f0a8b88f,ef95a5 d863de0f,f565 00028e0f,0000f565 8bed * * * * * 8bed -17676 * * * * * * * 97e6 e99fa6,ef95a6 97e6,f566 000097e6,0000f566 8bee * * * * * 8bee -17677 * * * * * * * 9875 e9a1b5,ef95a7 9875,f567 00009875,0000f567 8bef * * * * * 8bef -17678 * * * * * * * 98ce e9a38e,ef95a8 98ce,f568 000098ce,0000f568 8bf0 * * * * * 8bf0 -17679 * * * * * * * 98de e9a39e,ef95a9 98de,f569 000098de,0000f569 8bf1 * * * * * 8bf1 -17680 * * * * * * * 9963 e9a5a3,ef95aa 9963,f56a 00009963,0000f56a 8bf2 * * * * * 8bf2 -17681 * * * * * * * f56b f0a9a090,ef95ab d866dc10,f56b 00029810,0000f56b 8bf3 * * * * * 8bf3 -17682 * * * * * * * 9c7c e9b1bc,ef95ac 9c7c,f56c 00009c7c,0000f56c 8bf4 * * * * * 8bf4 -17683 * * * * * * * 9e1f e9b89f,ef95ad 9e1f,f56d 00009e1f,0000f56d 8bf5 * * * * * 8bf5 -17684 * * * * * * * 9ec4 e9bb84,ef95ae 9ec4,f56e 00009ec4,0000f56e 8bf6 * * * * * 8bf6 -17685 * * * * * * * 6b6f e6adaf,ef95af 6b6f,f56f 00006b6f,0000f56f 8bf7 * * * * * 8bf7 -17686 * * * * * * * * efa487,ef95b0 f907,f570 0000f907,0000f570 8bf8 * * * * * 8bf8 -17687 * * * * * * * 4e37 e4b8b7,ef95b1 4e37,f571 00004e37,0000f571 8bf9 * * * * * 8bf9 -17688 * * * * * * * f572 f0a08287,ef95b2 d840dc87,f572 00020087,0000f572 8bfa * * * * * 8bfa -17689 * * * * * * * 961d e9989d,ef95b3 961d,f573 0000961d,0000f573 8bfb * * * * * 8bfb -17690 * * * * * * * 6237 e688b7,ef95b4 6237,f574 00006237,0000f574 8bfc * * * * * 8bfc -17691 * * * * * * * 94a2 e992a2,ef95b5 94a2,f575 000094a2,0000f575 8bfd * * * * * 8bfd -17692 * * * * * * * 2e84 e2ba84,efa0a1 2e84,f821 00002e84,0000f821 c8d7 * * * * * c8d7 -17693 * * * * * * * 2e86 e2ba86,efa0a2 2e86,f822 00002e86,0000f822 c8d8 * * * * * c8d8 -17694 * * * * * * * 2e87 e2ba87,efa0a3 2e87,f823 00002e87,0000f823 c8d9 * * * * * c8d9 -17695 * * * * * * * 2e88 e2ba88,efa0a4 2e88,f824 00002e88,0000f824 c8da * * * * * c8da -17696 * * * * * * * 2e8a e2ba8a,efa0a5 2e8a,f825 00002e8a,0000f825 c8db * * * * * c8db -17697 * * * * * * * 2e8c e2ba8c,efa0a6 2e8c,f826 00002e8c,0000f826 c8dc * * * * * c8dc -17698 * * * * * * * 2e8d e2ba8d,efa0a7 2e8d,f827 00002e8d,0000f827 c8dd * * * * * c8dd -17699 * * * * * * * 2e95 e2ba95,efa0a8 2e95,f828 00002e95,0000f828 c8de * * * * * c8de -17700 * * * * * * * 2e9c e2ba9c,efa0a9 2e9c,f829 00002e9c,0000f829 c8df * * * * * c8df -17701 * * * * * * * 2ea5 e2baa5,efa0ab 2ea5,f82b 00002ea5,0000f82b c8e1 * * * * * c8e1 -17702 * * * * * * * 2ea7 e2baa7,efa0ac 2ea7,f82c 00002ea7,0000f82c c8e2 * * * * * c8e2 -17703 * * * * * * * 2eaa e2baaa,efa0ad 2eaa,f82d 00002eaa,0000f82d c8e3 * * * * * c8e3 -17704 * * * * * * * 2eac e2baac,efa0ae 2eac,f82e 00002eac,0000f82e c8e4 * * * * * c8e4 -17705 * * * * * * * 2eae e2baae,efa0af 2eae,f82f 00002eae,0000f82f c8e5 * * * * * c8e5 -17706 * * * * * * * 2eb6 e2bab6,efa0b0 2eb6,f830 00002eb6,0000f830 c8e6 * * * * * c8e6 -17707 * * * * * * * 2ebc e2babc,efa0b1 2ebc,f831 00002ebc,0000f831 c8e7 * * * * * c8e7 -17708 * * * * * * * 2ebe e2babe,efa0b2 2ebe,f832 00002ebe,0000f832 c8e8 * * * * * c8e8 -17709 * * * * * * * 2eca e2bb8a,efa0b4 2eca,f834 00002eca,0000f834 c8ea * * * * * c8ea -17710 * * * * * * * 2ecc e2bb8c,efa0b5 2ecc,f835 00002ecc,0000f835 c8eb * * * * * c8eb -17711 * * * * * * * 2ecd e2bb8d,efa0b6 2ecd,f836 00002ecd,0000f836 c8ec * * * * * c8ec -17712 * * * * * * * 2ecf e2bb8f,efa0b7 2ecf,f837 00002ecf,0000f837 c8ed * * * * * c8ed -17713 * * * * * * * 2ed6 e2bb96,efa0b8 2ed6,f838 00002ed6,0000f838 c8ee * * * * * c8ee -17714 * * * * * * * 2ed7 e2bb97,efa0b9 2ed7,f839 00002ed7,0000f839 c8ef * * * * * c8ef -17715 * * * * * * * 2ede e2bb9e,efa0ba 2ede,f83a 00002ede,0000f83a c8f0 * * * * * c8f0 -17716 * * * * * * * f3a0 f0aa8ea9,ef8ea0 d868dfa9,f3a0 0002a3a9,0000f3a0 8940 * * * * * 8940 -17717 * * * * * * * f3a1 f0a18585,ef8ea1 d844dd45,f3a1 00021145,0000f3a1 8941 * * * * * 8941 -17718 * * * * * * * 650a e6948a,ef8ea3 650a,f3a3 0000650a,0000f3a3 8943 * * * * * 8943 -17719 * * * * * * * 4e3d e4b8bd,ef8ea6 4e3d,f3a6 00004e3d,0000f3a6 8946 * * * * * 8946 -17720 * * * * * * * 6edd e6bb9d,ef8ea7 6edd,f3a7 00006edd,0000f3a7 8947 * * * * * 8947 -17721 * * * * * * * 9d4e e9b58e,ef8ea8 9d4e,f3a8 00009d4e,0000f3a8 8948 * * * * * 8948 -17722 * * * * * * * 91df e9879f,ef8ea9 91df,f3a9 000091df,0000f3a9 8949 * * * * * 8949 -17723 * * * * * * * f3ac ef8eac,f0a79cb5 d85ddf35,f3ac 0000f3ac,00027735 894c * * * * * 894c -17724 * * * * * * * 4f1a e4bc9a,ef8eae 4f1a,f3ae 00004f1a,0000f3ae 894e * * * * * 894e -17725 * * * * * * * 4f28 e4bca8,ef8eaf 4f28,f3af 00004f28,0000f3af 894f * * * * * 894f -17726 * * * * * * * 4fa8 e4bea8,ef8eb0 4fa8,f3b0 00004fa8,0000f3b0 8950 * * * * * 8950 -17727 * * * * * * * 5174 e585b4,ef8eb2 5174,f3b2 00005174,0000f3b2 8952 * * * * * 8952 -17728 * * * * * * * 519c e5869c,ef8eb3 519c,f3b3 0000519c,0000f3b3 8953 * * * * * 8953 -17729 * * * * * * * 51e4 e587a4,ef8eb4 51e4,f3b4 000051e4,0000f3b4 8954 * * * * * 8954 -17730 * * * * * * * 52a1 e58aa1,ef8eb5 52a1,f3b5 000052a1,0000f3b5 8955 * * * * * 8955 -17731 * * * * * * * 52a8 e58aa8,ef8eb6 52a8,f3b6 000052a8,0000f3b6 8956 * * * * * 8956 -17732 * * * * * * * 533b e58cbb,ef8eb7 533b,f3b7 0000533b,0000f3b7 8957 * * * * * 8957 -17733 * * * * * * * 534e e58d8e,ef8eb8 534e,f3b8 0000534e,0000f3b8 8958 * * * * * 8958 -17734 * * * * * * * 53d1 e58f91,ef8eb9 53d1,f3b9 000053d1,0000f3b9 8959 * * * * * 8959 -17735 * * * * * * * 53d8 e58f98,ef8eba 53d8,f3ba 000053d8,0000f3ba 895a * * * * * 895a -17736 * * * * * * * 56e2 e59ba2,ef8ebb 56e2,f3bb 000056e2,0000f3bb 895b * * * * * 895b -17737 * * * * * * * 58f0 e5a3b0,ef8ebc 58f0,f3bc 000058f0,0000f3bc 895c * * * * * 895c -17738 * * * * * * * 5904 e5a484,ef8ebd 5904,f3bd 00005904,0000f3bd 895d * * * * * 895d -17739 * * * * * * * 5907 e5a487,ef8ebe 5907,f3be 00005907,0000f3be 895e * * * * * 895e -17740 * * * * * * * 5932 e5a4b2,ef8ebf 5932,f3bf 00005932,0000f3bf 895f * * * * * 895f -17741 * * * * * * * 5934 e5a4b4,ef8f80 5934,f3c0 00005934,0000f3c0 8960 * * * * * 8960 -17742 * * * * * * * 5b66 e5ada6,ef8f81 5b66,f3c1 00005b66,0000f3c1 8961 * * * * * 8961 -17743 * * * * * * * 5b9e e5ae9e,ef8f82 5b9e,f3c2 00005b9e,0000f3c2 8962 * * * * * 8962 -17744 * * * * * * * 5b9f e5ae9f,ef8f83 5b9f,f3c3 00005b9f,0000f3c3 8963 * * * * * 8963 -17745 * * * * * * * 5c9a e5b29a,ef8f84 5c9a,f3c4 00005c9a,0000f3c4 8964 * * * * * 8964 -17746 * * * * * * * 5e86 e5ba86,ef8f85 5e86,f3c5 00005e86,0000f3c5 8965 * * * * * 8965 -17747 * * * * * * * 603b e680bb,ef8f86 603b,f3c6 0000603b,0000f3c6 8966 * * * * * 8966 -17748 * * * * * * * 6589 e69689,ef8f87 6589,f3c7 00006589,0000f3c7 8967 * * * * * 8967 -17749 * * * * * * * 67fe e69fbe,ef8f88 67fe,f3c8 000067fe,0000f3c8 8968 * * * * * 8968 -17750 * * * * * * * 6804 e6a084,ef8f89 6804,f3c9 00006804,0000f3c9 8969 * * * * * 8969 -17751 * * * * * * * 6865 e6a1a5,ef8f8a 6865,f3ca 00006865,0000f3ca 896a * * * * * 896a -17752 * * * * * * * 6d4e e6b58e,ef8f8b 6d4e,f3cb 00006d4e,0000f3cb 896b * * * * * 896b -17753 * * * * * * * 70bc e782bc,ef8f8c 70bc,f3cc 000070bc,0000f3cc 896c * * * * * 896c -17754 * * * * * * * 7535 e794b5,ef8f8d 7535,f3cd 00007535,0000f3cd 896d * * * * * 896d -17755 * * * * * * * 7ea4 e7baa4,ef8f8e 7ea4,f3ce 00007ea4,0000f3ce 896e * * * * * 896e -17756 * * * * * * * 7eac e7baac,ef8f8f 7eac,f3cf 00007eac,0000f3cf 896f * * * * * 896f -17757 * * * * * * * 7eba e7baba,ef8f90 7eba,f3d0 00007eba,0000f3d0 8970 * * * * * 8970 -17758 * * * * * * * 7ec7 e7bb87,ef8f91 7ec7,f3d1 00007ec7,0000f3d1 8971 * * * * * 8971 -17759 * * * * * * * 7ecf e7bb8f,ef8f92 7ecf,f3d2 00007ecf,0000f3d2 8972 * * * * * 8972 -17760 * * * * * * * 7edf e7bb9f,ef8f93 7edf,f3d3 00007edf,0000f3d3 8973 * * * * * 8973 -17761 * * * * * * * 7f06 e7bc86,ef8f94 7f06,f3d4 00007f06,0000f3d4 8974 * * * * * 8974 -17762 * * * * * * * 7f37 e7bcb7,ef8f95 7f37,f3d5 00007f37,0000f3d5 8975 * * * * * 8975 -17763 * * * * * * * 827a e889ba,ef8f96 827a,f3d6 0000827a,0000f3d6 8976 * * * * * 8976 -17764 * * * * * * * 82cf e88b8f,ef8f97 82cf,f3d7 000082cf,0000f3d7 8977 * * * * * 8977 -17765 * * * * * * * 836f e88daf,ef8f98 836f,f3d8 0000836f,0000f3d8 8978 * * * * * 8978 -17766 * * * * * * * 89c6 e8a786,ef8f99 89c6,f3d9 000089c6,0000f3d9 8979 * * * * * 8979 -17767 * * * * * * * 8bbe e8aebe,ef8f9a 8bbe,f3da 00008bbe,0000f3da 897a * * * * * 897a -17768 * * * * * * * 8be2 e8afa2,ef8f9b 8be2,f3db 00008be2,0000f3db 897b * * * * * 897b -17769 * * * * * * * 8f66 e8bda6,ef8f9c 8f66,f3dc 00008f66,0000f3dc 897c * * * * * 897c -17770 * * * * * * * 8f67 e8bda7,ef8f9d 8f67,f3dd 00008f67,0000f3dd 897d * * * * * 897d -17771 * * * * * * * 8f6e e8bdae,ef8f9e 8f6e,f3de 00008f6e,0000f3de 897e * * * * * 897e -17772 * * * * * * * 7411 e79091,ef8f9f 7411,f3df 00007411,0000f3df 89a1 * * * * * 89a1 -17773 * * * * * * * 7cfc e7b3bc,ef8fa0 7cfc,f3e0 00007cfc,0000f3e0 89a2 * * * * * 89a2 -17774 * * * * * * * 7dcd e7b78d,ef8fa1 7dcd,f3e1 00007dcd,0000f3e1 89a3 * * * * * 89a3 -17775 * * * * * * * 6946 e6a586,ef8fa2 6946,f3e2 00006946,0000f3e2 89a4 * * * * * 89a4 -17776 * * * * * * * 7ac9 e7ab89,ef8fa3 7ac9,f3e3 00007ac9,0000f3e3 89a5 * * * * * 89a5 -17777 * * * * * * * 78b8 e7a2b8,ef8faa 78b8,f3ea 000078b8,0000f3ea 89ac * * * * * 89ac -17778 * * * * * * * 80bc e882bc,ef8fac 80bc,f3ec 000080bc,0000f3ec 89ae * * * * * 89ae -17779 * * * * * * * 8d0b e8b48b,ef8fae 8d0b,f3ee 00008d0b,0000f3ee 89b0 * * * * * 89b0 -17780 * * * * * * * 80f6 e883b6,ef8faf 80f6,f3ef 000080f6,0000f3ef 89b1 * * * * * 89b1 -17781 * * * * * * * f3f0 f0a0a7a7,ef8fb0 d842dde7,f3f0 000209e7,0000f3f0 89b2 * * * * * 89b2 -17782 * * * * * * * 809f e8829f,ef8fb3 809f,f3f3 0000809f,0000f3f3 89b5 * * * * * 89b5 -17783 * * * * * * * 9ec7 e9bb87,ef8fb4 9ec7,f3f4 00009ec7,0000f3f4 89b6 * * * * * 89b6 -17784 * * * * * * * 4ccd e4b38d,ef8fb5 4ccd,f3f5 00004ccd,0000f3f5 89b7 * * * * * 89b7 -17785 * * * * * * * 9dc9 e9b789,ef8fb6 9dc9,f3f6 00009dc9,0000f3f6 89b8 * * * * * 89b8 -17786 * * * * * * * 9e0c e9b88c,ef8fb7 9e0c,f3f7 00009e0c,0000f3f7 89b9 * * * * * 89b9 -17787 * * * * * * * 4c3e e4b0be,ef8fb8 4c3e,f3f8 00004c3e,0000f3f8 89ba * * * * * 89ba -17788 * * * * * * * f3f9 f0a9b7b6,ef8fb9 d867ddf6,f3f9 00029df6,0000f3f9 89bb * * * * * 89bb -17789 * * * * * * * f3fa f0a7808e,ef8fba d85cdc0e,f3fa 0002700e,0000f3fa 89bc * * * * * 89bc -17790 * * * * * * * 9e0a e9b88a,ef8fbb 9e0a,f3fb 00009e0a,0000f3fb 89bd * * * * * 89bd -17791 * * * * * * * f3fc f0aa84b3,ef8fbc d868dd33,f3fc 0002a133,0000f3fc 89be * * * * * 89be -17792 * * * * * * * 35c1 e39781,ef8fbd 35c1,f3fd 000035c1,0000f3fd 89bf * * * * * 89bf -17793 * * * * * * * 6e9a e6ba9a,ef8fbf 6e9a,f3ff 00006e9a,0000f3ff 89c1 * * * * * 89c1 -17794 * * * * * * * 823e e888be,ef9080 823e,f400 0000823e,0000f400 89c2 * * * * * 89c2 -17795 * * * * * * * 7519 e79499,ef9081 7519,f401 00007519,0000f401 89c3 * * * * * 89c3 -17796 * * * * * * * 4911 e4a491,ef9083 4911,f403 00004911,0000f403 89c5 * * * * * 89c5 -17797 * * * * * * * 9a6c e9a9ac,ef9084 9a6c,f404 00009a6c,0000f404 89c6 * * * * * 89c6 -17798 * * * * * * * 9a8f e9aa8f,ef9085 9a8f,f405 00009a8f,0000f405 89c7 * * * * * 89c7 -17799 * * * * * * * 9f99 e9be99,ef9086 9f99,f406 00009f99,0000f406 89c8 * * * * * 89c8 -17800 * * * * * * * 7987 e7a687,ef9087 7987,f407 00007987,0000f407 89c9 * * * * * 89c9 -17801 * * * * * * * f408 f0a891ac,ef9088 d861dc6c,f408 0002846c,0000f408 89ca * * * * * 89ca -17802 * * * * * * * f409 f0a1b78a,ef9089 d847ddca,f409 00021dca,0000f409 89cb * * * * * 89cb -17803 * * * * * * * f40a f0a09790,ef908a d841ddd0,f40a 000205d0,0000f40a 89cc * * * * * 89cc -17804 * * * * * * * f40b f0a2aba6,ef908b d84adee6,f40b 00022ae6,0000f40b 89cd * * * * * 89cd -17805 * * * * * * * 4e24 e4b8a4,ef908c 4e24,f40c 00004e24,0000f40c 89ce * * * * * 89ce -17806 * * * * * * * 4e80 e4ba80,ef908e 4e80,f40e 00004e80,0000f40e 89d0 * * * * * 89d0 -17807 * * * * * * * 4e87 e4ba87,ef908f 4e87,f40f 00004e87,0000f40f 89d1 * * * * * 89d1 -17808 * * * * * * * 4ebf e4babf,ef9090 4ebf,f410 00004ebf,0000f410 89d2 * * * * * 89d2 -17809 * * * * * * * 4eeb e4bbab,ef9091 4eeb,f411 00004eeb,0000f411 89d3 * * * * * 89d3 -17810 * * * * * * * 4f37 e4bcb7,ef9092 4f37,f412 00004f37,0000f412 89d4 * * * * * 89d4 -17811 * * * * * * * 344c e3918c,ef9093 344c,f413 0000344c,0000f413 89d5 * * * * * 89d5 -17812 * * * * * * * 4fbd e4bebd,ef9094 4fbd,f414 00004fbd,0000f414 89d6 * * * * * 89d6 -17813 * * * * * * * 3e48 e3b988,ef9095 3e48,f415 00003e48,0000f415 89d7 * * * * * 89d7 -17814 * * * * * * * 5003 e58083,ef9096 5003,f416 00005003,0000f416 89d8 * * * * * 89d8 -17815 * * * * * * * 347d e391bd,ef9098 347d,f418 0000347d,0000f418 89da * * * * * 89da -17816 * * * * * * * 34a5 e392a5,ef909a 34a5,f41a 000034a5,0000f41a 89dc * * * * * 89dc -17817 * * * * * * * 5905 e5a485,ef909c 5905,f41c 00005905,0000f41c 89de * * * * * 89de -17818 * * * * * * * 51db e5879b,ef909d 51db,f41d 000051db,0000f41d 89df * * * * * 89df -17819 * * * * * * * 51fc e587bc,ef909e 51fc,f41e 000051fc,0000f41e 89e0 * * * * * 89e0 -17820 * * * * * * * 4e89 e4ba89,ef90a0 4e89,f420 00004e89,0000f420 89e2 * * * * * 89e2 -17821 * * * * * * * 5290 e58a90,ef90a2 5290,f422 00005290,0000f422 89e4 * * * * * 89e4 -17822 * * * * * * * 5327 e58ca7,ef90a3 5327,f423 00005327,0000f423 89e5 * * * * * 89e5 -17823 * * * * * * * 35c7 e39787,ef90a4 35c7,f424 000035c7,0000f424 89e6 * * * * * 89e6 -17824 * * * * * * * 53a9 e58ea9,ef90a5 53a9,f425 000053a9,0000f425 89e7 * * * * * 89e7 -17825 * * * * * * * 3551 e39591,ef90a6 3551,f426 00003551,0000f426 89e8 * * * * * 89e8 -17826 * * * * * * * 53b0 e58eb0,ef90a7 53b0,f427 000053b0,0000f427 89e9 * * * * * 89e9 -17827 * * * * * * * 5423 e590a3,ef90aa 5423,f42a 00005423,0000f42a 89ec * * * * * 89ec -17828 * * * * * * * 356d e395ad,ef90ab 356d,f42b 0000356d,0000f42b 89ed * * * * * 89ed -17829 * * * * * * * 3572 e395b2,ef90ac 3572,f42c 00003572,0000f42c 89ee * * * * * 89ee -17830 * * * * * * * 3681 e39a81,ef90ad 3681,f42d 00003681,0000f42d 89ef * * * * * 89ef -17831 * * * * * * * 5493 e59293,ef90ae 5493,f42e 00005493,0000f42e 89f0 * * * * * 89f0 -17832 * * * * * * * 54a3 e592a3,ef90af 54a3,f42f 000054a3,0000f42f 89f1 * * * * * 89f1 -17833 * * * * * * * 54b4 e592b4,ef90b0 54b4,f430 000054b4,0000f430 89f2 * * * * * 89f2 -17834 * * * * * * * 54b9 e592b9,ef90b1 54b9,f431 000054b9,0000f431 89f3 * * * * * 89f3 -17835 * * * * * * * 54d0 e59390,ef90b2 54d0,f432 000054d0,0000f432 89f4 * * * * * 89f4 -17836 * * * * * * * 54ef e593af,ef90b3 54ef,f433 000054ef,0000f433 89f5 * * * * * 89f5 -17837 * * * * * * * 5518 e59498,ef90b4 5518,f434 00005518,0000f434 89f6 * * * * * 89f6 -17838 * * * * * * * 5523 e594a3,ef90b5 5523,f435 00005523,0000f435 89f7 * * * * * 89f7 -17839 * * * * * * * 5528 e594a8,ef90b6 5528,f436 00005528,0000f436 89f8 * * * * * 89f8 -17840 * * * * * * * 3598 e39698,ef90b7 3598,f437 00003598,0000f437 89f9 * * * * * 89f9 -17841 * * * * * * * 35a5 e396a5,ef90b9 35a5,f439 000035a5,0000f439 89fb * * * * * 89fb -17842 * * * * * * * 35bf e396bf,ef90ba 35bf,f43a 000035bf,0000f43a 89fc * * * * * 89fc -17843 * * * * * * * 55d7 e59797,ef90bb 55d7,f43b 000055d7,0000f43b 89fd * * * * * 89fd -17844 * * * * * * * 35c5 e39785,ef90bc 35c5,f43c 000035c5,0000f43c 89fe * * * * * 89fe -17845 * * * * * * * f43d f0a7b684,ef90bd d85fdd84,f43d 00027d84,0000f43d 8a40 * * * * * 8a40 -17846 * * * * * * * 4053 e48193,ef918a 4053,f44a 00004053,0000f44a 8a4d * * * * * 8a4d -17847 * * * * * * * f457 ef9197,f0a183b4 d844dcf4,f457 0000f457,000210f4 8a5a * * * * * 8a5a -17848 * * * * * * * f45b ef919b,f0a0b08b d843dc0b,f45b 0000f45b,00020c0b 8a5e * * * * * 8a5e -17849 * * * * * * * f46e ef91ae,f0a7a388 d85edcc8,f46e 0000f46e,000278c8 8a71 * * * * * 8a71 -17850 * * * * * * * f474 ef91b4,f0a682a5 d858dca5,f474 0000f474,000260a5 8a77 * * * * * 8a77 -17851 * * * * * * * f477 ef91b7,f0a2b58c d84bdd4c,f477 0000f477,00022d4c 8a7a * * * * * 8a7a -17852 * * * * * * * f479 ef91b9,f0a181b7 d844dc77,f479 0000f479,00021077 8a7c * * * * * 8a7c -17853 * * * * * * * f47b ef91bb,f0a181af d844dc6f,f47b 0000f47b,0002106f 8a7e * * * * * 8a7e -17854 * * * * * * * f483 ef9283,f0a286a1 d848dda1,f483 0000f483,000221a1 8aa8 * * * * * 8aa8 -17855 * * * * * * * f491 ef9291,f0a0b696 d843dd96,f491 0000f491,00020d96 8ab6 * * * * * 8ab6 -17856 * * * * * * * 40bb e482bb,ef9293 40bb,f493 000040bb,0000f493 8ab8 * * * * * 8ab8 -17857 * * * * * * * f4a7 ef92a7,f0a2b389 d84bdcc9,f4a7 0000f4a7,00022cc9 8acc * * * * * 8acc -17858 * * * * * * * 5652 e59992,ef92b1 5652,f4b1 00005652,0000f4b1 8ad6 * * * * * 8ad6 -17859 * * * * * * * f4b2 f0a0bcb1,ef92b2 d843df31,f4b2 00020f31,0000f4b2 8ad7 * * * * * 8ad7 -17860 * * * * * * * f4c1 ef9381,f0a6a09c d85adc1c,f4c1 0000f4c1,0002681c 8ae6 * * * * * 8ae6 -17861 * * * * * * * f4c3 f0a1838f,ef9383 d844dccf,f4c3 000210cf,0000f4c3 8ae8 * * * * * 8ae8 -17862 * * * * * * * f4c4 f0a2a083,ef9384 d84adc03,f4c4 00022803,0000f4c4 8ae9 * * * * * 8ae9 -17863 * * * * * * * f4c5 f0a2a4b9,ef9385 d84add39,f4c5 00022939,0000f4c5 8aea * * * * * 8aea -17864 * * * * * * * 35fb e397bb,ef9386 35fb,f4c6 000035fb,0000f4c6 8aeb * * * * * 8aeb -17865 * * * * * * * f4c7 f0a587a3,ef9387 d854dde3,f4c7 000251e3,0000f4c7 8aec * * * * * 8aec -17866 * * * * * * * f4c8 f0a0ba8c,ef9388 d843de8c,f4c8 00020e8c,0000f4c8 8aed * * * * * 8aed -17867 * * * * * * * f4c9 f0a0be8d,ef9389 d843df8d,f4c9 00020f8d,0000f4c9 8aee * * * * * 8aee -17868 * * * * * * * f4ca f0a0baaa,ef938a d843deaa,f4ca 00020eaa,0000f4ca 8aef * * * * * 8aef -17869 * * * * * * * 3f93 e3be93,ef938b 3f93,f4cb 00003f93,0000f4cb 8af0 * * * * * 8af0 -17870 * * * * * * * f4cc f0a0bcb0,ef938c d843df30,f4cc 00020f30,0000f4cc 8af1 * * * * * 8af1 -17871 * * * * * * * f4cd f0a0b587,ef938d d843dd47,f4cd 00020d47,0000f4cd 8af2 * * * * * 8af2 -17872 * * * * * * * f4ce f0a1858f,ef938e d844dd4f,f4ce 0002114f,0000f4ce 8af3 * * * * * 8af3 -17873 * * * * * * * f4cf f0a0b98c,ef938f d843de4c,f4cf 00020e4c,0000f4cf 8af4 * * * * * 8af4 -17874 * * * * * * * f4d1 f0a0baab,ef9391 d843deab,f4d1 00020eab,0000f4d1 8af6 * * * * * 8af6 -17875 * * * * * * * f4d2 f0a0aea9,ef9392 d842dfa9,f4d2 00020ba9,0000f4d2 8af7 * * * * * 8af7 -17876 * * * * * * * f4d3 f0a0b588,ef9393 d843dd48,f4d3 00020d48,0000f4d3 8af8 * * * * * 8af8 -17877 * * * * * * * f4d4 f0a18380,ef9394 d844dcc0,f4d4 000210c0,0000f4d4 8af9 * * * * * 8af9 -17878 * * * * * * * f4d5 f0a184bd,ef9395 d844dd3d,f4d5 0002113d,0000f4d5 8afa * * * * * 8afa -17879 * * * * * * * 3ff9 e3bfb9,ef9396 3ff9,f4d6 00003ff9,0000f4d6 8afb * * * * * 8afb -17880 * * * * * * * f4d7 f0a29a96,ef9397 d849de96,f4d7 00022696,0000f4d7 8afc * * * * * 8afc -17881 * * * * * * * 6432 e690b2,ef9398 6432,f4d8 00006432,0000f4d8 8afd * * * * * 8afd -17882 * * * * * * * f4d9 f0a0bead,ef9399 d843dfad,f4d9 00020fad,0000f4d9 8afe * * * * * 8afe -17883 * * * * * * * f4da f0a38fb4,ef939a d84cdff4,f4da 000233f4,0000f4da 8b40 * * * * * 8b40 -17884 * * * * * * * f4dd ef939d,f0a0b5be d843dd7e,f4dd 0000f4dd,00020d7e 8b43 * * * * * 8b43 -17885 * * * * * * * f4de ef939e,f0a0b5bf d843dd7f,f4de 0000f4de,00020d7f 8b44 * * * * * 8b44 -17886 * * * * * * * f4e0 ef93a0,f0a2b195 d84bdc55,f4e0 0000f4e0,00022c55 8b46 * * * * * 8b46 -17887 * * * * * * * f4e2 ef93a2,f0a0ba98 d843de98,f4e2 0000f4e2,00020e98 8b48 * * * * * 8b48 -17888 * * * * * * * f4e4 ef93a4,f0a0bcae d843df2e,f4e4 0000f4e4,00020f2e 8b4a * * * * * 8b4a -17889 * * * * * * * f4e6 ef93a6,f0a6ad90 d85adf50,f4e6 0000f4e6,00026b50 8b4c * * * * * 8b4c -17890 * * * * * * * * e5938c,ef93ab 54cc,f4eb 000054cc,0000f4eb 8b51 * * * * * 8b51 -17891 * * * * * * * 82c4 e88b84,ef93ac 82c4,f4ec 000082c4,0000f4ec 8b52 * * * * * 8b52 -17892 * * * * * * * * e596b9,ef93ad 55b9,f4ed 000055b9,0000f4ed 8b53 * * * * * 8b53 -17893 * * * * * * * f4ef f0a9bb83,ef93af d867dec3,f4ef 00029ec3,0000f4ef 8b55 * * * * * 8b55 -17894 * * * * * * * 9c26 e9b0a6,ef93b0 9c26,f4f0 00009c26,0000f4f0 8b56 * * * * * 8b56 -17895 * * * * * * * * e9aab6,ef93b1 9ab6,f4f1 00009ab6,0000f4f1 8b57 * * * * * 8b57 -17896 * * * * * * * f4f3 ef93b3,f0a2b7ae d84bddee,f4f3 0000f4f3,00022dee 8b59 * * * * * 8b59 -17897 * * * * * * * 80ec e883ac,ef93b6 80ec,f4f6 000080ec,0000f4f6 8b5c * * * * * 8b5c -17898 * * * * * * * 5c1c e5b09c,ef93b7 5c1c,f4f7 00005c1c,0000f4f7 8b5d * * * * * 8b5d -17899 * * * * * * * f4f8 f0a695b2,ef93b8 d859dd72,f4f8 00026572,0000f4f8 8b5e * * * * * 8b5e -17900 * * * * * * * 8134 e884b4,ef93b9 8134,f4f9 00008134,0000f4f9 8b5f * * * * * 8b5f -17901 * * * * * * * 3797 e39e97,ef93ba 3797,f4fa 00003797,0000f4fa 8b60 * * * * * 8b60 -17902 * * * * * * * f4fc f0a882bd,ef93bc d860dcbd,f4fc 000280bd,0000f4fc 8b62 * * * * * 8b62 -17903 * * * * * * * 91b6 e986b6,ef93bd 91b6,f4fd 000091b6,0000f4fd 8b63 * * * * * 8b63 -17904 * * * * * * * f4fe f0a0bbba,ef93be d843defa,f4fe 00020efa,0000f4fe 8b64 * * * * * 8b64 -17905 * * * * * * * f4ff f0a0b88f,ef93bf d843de0f,f4ff 00020e0f,0000f4ff 8b65 * * * * * 8b65 -17906 * * * * * * * f500 f0a0b9b7,ef9480 d843de77,f500 00020e77,0000f500 8b66 * * * * * 8b66 -17907 * * * * * * * f501 f0a0bbbb,ef9481 d843defb,f501 00020efb,0000f501 8b67 * * * * * 8b67 -17908 * * * * * * * f503 f0a4b7ab,ef9483 d853ddeb,f503 00024deb,0000f503 8b69 * * * * * 8b69 -17909 * * * * * * * 3609 e39889,ef9484 3609,f504 00003609,0000f504 8b6a * * * * * 8b6a -17910 * * * * * * * f505 f0a0b396,ef9485 d843dcd6,f505 00020cd6,0000f505 8b6b * * * * * 8b6b -17911 * * * * * * * 56af e59aaf,ef9486 56af,f506 000056af,0000f506 8b6c * * * * * 8b6c -17912 * * * * * * * f507 f0a29eb5,ef9487 d849dfb5,f507 000227b5,0000f507 8b6d * * * * * 8b6d -17913 * * * * * * * f508 f0a18389,ef9488 d844dcc9,f508 000210c9,0000f508 8b6e * * * * * 8b6e -17914 * * * * * * * f509 f0a0b890,ef9489 d843de10,f509 00020e10,0000f509 8b6f * * * * * 8b6f -17915 * * * * * * * f50a f0a0b9b8,ef948a d843de78,f50a 00020e78,0000f50a 8b70 * * * * * 8b70 -17916 * * * * * * * f50b f0a181b8,ef948b d844dc78,f50b 00021078,0000f50b 8b71 * * * * * 8b71 -17917 * * * * * * * f50c f0a18588,ef948c d844dd48,f50c 00021148,0000f50c 8b72 * * * * * 8b72 -17918 * * * * * * * f50d f0a88887,ef948d d860de07,f50d 00028207,0000f50d 8b73 * * * * * 8b73 -17919 * * * * * * * f50e f0a19195,ef948e d845dc55,f50e 00021455,0000f50e 8b74 * * * * * 8b74 -17920 * * * * * * * f50f f0a0b9b9,ef948f d843de79,f50f 00020e79,0000f50f 8b75 * * * * * 8b75 -17921 * * * * * * * f510 f0a4b990,ef9490 d853de50,f510 00024e50,0000f510 8b76 * * * * * 8b76 -17922 * * * * * * * f511 f0a2b6a4,ef9491 d84bdda4,f511 00022da4,0000f511 8b77 * * * * * 8b77 -17923 * * * * * * * 5a54 e5a994,ef9492 5a54,f512 00005a54,0000f512 8b78 * * * * * 8b78 -17924 * * * * * * * f513 ef9493,f0a1809d d844dc1d,f513 0000f513,0002101d 8b79 * * * * * 8b79 -17925 * * * * * * * f514 ef9494,f0a1809e d844dc1e,f514 0000f514,0002101e 8b7a * * * * * 8b7a -17926 * * * * * * * f515 ef9495,f0a183b5 d844dcf5,f515 0000f515,000210f5 8b7b * * * * * 8b7b -17927 * * * * * * * f516 ef9496,f0a183b6 d844dcf6,f516 0000f516,000210f6 8b7c * * * * * 8b7c -17928 * * * * * * * 579c e59e9c,ef9497 579c,f517 0000579c,0000f517 8b7d * * * * * 8b7d -17929 * * * * * * * f518 f0a0b891,ef9498 d843de11,f518 00020e11,0000f518 8b7e * * * * * 8b7e -17930 * * * * * * * f519 f0a79a94,ef9499 d85dde94,f519 00027694,0000f519 8ba1 * * * * * 8ba1 -17931 * * * * * * * f51a f0a88b8d,ef949a d860decd,f51a 000282cd,0000f51a 8ba2 * * * * * 8ba2 -17932 * * * * * * * f51b f0a0beb5,ef949b d843dfb5,f51b 00020fb5,0000f51b 8ba3 * * * * * 8ba3 -17933 * * * * * * * f51c f0a0b9bb,ef949c d843de7b,f51c 00020e7b,0000f51c 8ba4 * * * * * 8ba4 -17934 * * * * * * * f51d f0a585be,ef949d d854dd7e,f51d 0002517e,0000f51d 8ba5 * * * * * 8ba5 -17935 * * * * * * * 3703 e39c83,ef949e 3703,f51e 00003703,0000f51e 8ba6 * * * * * 8ba6 -17936 * * * * * * * f51f f0a0beb6,ef949f d843dfb6,f51f 00020fb6,0000f51f 8ba7 * * * * * 8ba7 -17937 * * * * * * * f520 f0a18680,ef94a0 d844dd80,f520 00021180,0000f520 8ba8 * * * * * 8ba8 -17938 * * * * * * * f521 f0a58b98,ef94a1 d854ded8,f521 000252d8,0000f521 8ba9 * * * * * 8ba9 -17939 * * * * * * * f522 f0aa8abd,ef94a2 d868debd,f522 0002a2bd,0000f522 8baa * * * * * 8baa -17940 * * * * * * * f523 f0a4a79a,ef94a3 d852ddda,f523 000249da,0000f523 8bab * * * * * 8bab -17941 * * * * * * * f524 f0a1a0ba,ef94a4 d846dc3a,f524 0002183a,0000f524 8bac * * * * * 8bac -17942 * * * * * * * f525 f0a485b7,ef94a5 d850dd77,f525 00024177,0000f525 8bad * * * * * 8bad -17943 * * * * * * * f526 f0a889bc,ef94a6 d860de7c,f526 0002827c,0000f526 8bae * * * * * 8bae -17944 * * * * * * * 5899 e5a299,ef94a7 5899,f527 00005899,0000f527 8baf * * * * * 8baf -17945 * * * * * * * 5268 e589a8,ef94a8 5268,f528 00005268,0000f528 8bb0 * * * * * 8bb0 -17946 * * * * * * * 361a e3989a,ef94a9 361a,f529 0000361a,0000f529 8bb1 * * * * * 8bb1 -17947 * * * * * * * f52a f0a59cbd,ef94aa d855df3d,f52a 0002573d,0000f52a 8bb2 * * * * * 8bb2 -17948 * * * * * * * 7bb2 e7aeb2,ef94ab 7bb2,f52b 00007bb2,0000f52b 8bb3 * * * * * 8bb3 -17949 * * * * * * * 5b68 e5ada8,ef94ac 5b68,f52c 00005b68,0000f52c 8bb4 * * * * * 8bb4 -17950 * * * * * * * 4800 e4a080,ef94ad 4800,f52d 00004800,0000f52d 8bb5 * * * * * 8bb5 -17951 * * * * * * * 4b2c e4acac,ef94ae 4b2c,f52e 00004b2c,0000f52e 8bb6 * * * * * 8bb6 -17952 * * * * * * * 9f27 e9bca7,ef94af 9f27,f52f 00009f27,0000f52f 8bb7 * * * * * 8bb7 -17953 * * * * * * * 49e7 e4a7a7,ef94b0 49e7,f530 000049e7,0000f530 8bb8 * * * * * 8bb8 -17954 * * * * * * * 9c1f e9b09f,ef94b1 9c1f,f531 00009c1f,0000f531 8bb9 * * * * * 8bb9 -17955 * * * * * * * 9b8d e9ae8d,ef94b2 9b8d,f532 00009b8d,0000f532 8bba * * * * * 8bba -17956 * * * * * * * f533 f0a5adb4,ef94b3 d856df74,f533 00025b74,0000f533 8bbb * * * * * 8bbb -17957 * * * * * * * f534 f0a384bd,ef94b4 d84cdd3d,f534 0002313d,0000f534 8bbc * * * * * 8bbc -17958 * * * * * * * 55fb e597bb,ef94b5 55fb,f535 000055fb,0000f535 8bbd * * * * * 8bbd -17959 * * * * * * * 35f2 e397b2,ef94b6 35f2,f536 000035f2,0000f536 8bbe * * * * * 8bbe -17960 * * * * * * * 5689 e59a89,ef94b7 5689,f537 00005689,0000f537 8bbf * * * * * 8bbf -17961 * * * * * * * 5d3e e5b4be,ef98b4 5d3e,f634 00005d3e,0000f634 8d60 * * * * * 8d60 -17962 * * * * * * * 5d48 e5b588,ef98b5 5d48,f635 00005d48,0000f635 8d61 * * * * * 8d61 -17963 * * * * * * * 3dfc e3b7bc,ef98b7 3dfc,f637 00003dfc,0000f637 8d63 * * * * * 8d63 -17964 * * * * * * * 380f e3a08f,ef98b8 380f,f638 0000380f,0000f638 8d64 * * * * * 8d64 -17965 * * * * * * * 5da4 e5b6a4,ef98b9 5da4,f639 00005da4,0000f639 8d65 * * * * * 8d65 -17966 * * * * * * * 5db9 e5b6b9,ef98ba 5db9,f63a 00005db9,0000f63a 8d66 * * * * * 8d66 -17967 * * * * * * * 3820 e3a0a0,ef98bb 3820,f63b 00003820,0000f63b 8d67 * * * * * 8d67 -17968 * * * * * * * 5f25 e5bca5,ef98bf 5f25,f63f 00005f25,0000f63f 8d6b * * * * * 8d6b -17969 * * * * * * * 5f83 e5be83,ef9980 5f83,f640 00005f83,0000f640 8d6c * * * * * 8d6c -17970 * * * * * * * 3908 e3a488,ef9981 3908,f641 00003908,0000f641 8d6d * * * * * 8d6d -17971 * * * * * * * 393f e3a4bf,ef9983 393f,f643 0000393f,0000f643 8d6f * * * * * 8d6f -17972 * * * * * * * 394d e3a58d,ef9984 394d,f644 0000394d,0000f644 8d70 * * * * * 8d70 -17973 * * * * * * * 60d7 e68397,ef9985 60d7,f645 000060d7,0000f645 8d71 * * * * * 8d71 -17974 * * * * * * * 613d e684bd,ef9986 613d,f646 0000613d,0000f646 8d72 * * * * * 8d72 -17975 * * * * * * * 5ce5 e5b3a5,ef9987 5ce5,f647 00005ce5,0000f647 8d73 * * * * * 8d73 -17976 * * * * * * * 3989 e3a689,ef9988 3989,f648 00003989,0000f648 8d74 * * * * * 8d74 -17977 * * * * * * * 61b7 e686b7,ef9989 61b7,f649 000061b7,0000f649 8d75 * * * * * 8d75 -17978 * * * * * * * 61cf e6878f,ef998b 61cf,f64b 000061cf,0000f64b 8d77 * * * * * 8d77 -17979 * * * * * * * 39b8 e3a6b8,ef998c 39b8,f64c 000039b8,0000f64c 8d78 * * * * * 8d78 -17980 * * * * * * * 622c e688ac,ef998d 622c,f64d 0000622c,0000f64d 8d79 * * * * * 8d79 -17981 * * * * * * * 62e5 e68ba5,ef998f 62e5,f64f 000062e5,0000f64f 8d7b * * * * * 8d7b -17982 * * * * * * * 39f8 e3a7b8,ef9991 39f8,f651 000039f8,0000f651 8d7d * * * * * 8d7d -17983 * * * * * * * 56b1 e59ab1,ef9992 56b1,f652 000056b1,0000f652 8d7e * * * * * 8d7e -17984 * * * * * * * 3a03 e3a883,ef9993 3a03,f653 00003a03,0000f653 8da1 * * * * * 8da1 -17985 * * * * * * * 63e2 e68fa2,ef9994 63e2,f654 000063e2,0000f654 8da2 * * * * * 8da2 -17986 * * * * * * * 63fb e68fbb,ef9995 63fb,f655 000063fb,0000f655 8da3 * * * * * 8da3 -17987 * * * * * * * 6407 e69087,ef9996 6407,f656 00006407,0000f656 8da4 * * * * * 8da4 -17988 * * * * * * * 3a4b e3a98b,ef9998 3a4b,f658 00003a4b,0000f658 8da6 * * * * * 8da6 -17989 * * * * * * * 64c0 e69380,ef9999 64c0,f659 000064c0,0000f659 8da7 * * * * * 8da7 -17990 * * * * * * * 9f9f e9be9f,ef999c 9f9f,f65c 00009f9f,0000f65c 8daa * * * * * 8daa -17991 * * * * * * * 3a97 e3aa97,ef999d 3a97,f65d 00003a97,0000f65d 8dab * * * * * 8dab -17992 * * * * * * * 6586 e69686,ef999e 6586,f65e 00006586,0000f65e 8dac * * * * * 8dac -17993 * * * * * * * 3abd e3aabd,ef999f 3abd,f65f 00003abd,0000f65f 8dad * * * * * 8dad -17994 * * * * * * * 65ff e697bf,ef99a0 65ff,f660 000065ff,0000f660 8dae * * * * * 8dae -17995 * * * * * * * 6653 e69993,ef99a1 6653,f661 00006653,0000f661 8daf * * * * * 8daf -17996 * * * * * * * 3af2 e3abb2,ef99a2 3af2,f662 00003af2,0000f662 8db0 * * * * * 8db0 -17997 * * * * * * * 6692 e69a92,ef99a3 6692,f663 00006692,0000f663 8db1 * * * * * 8db1 -17998 * * * * * * * 3b22 e3aca2,ef99a4 3b22,f664 00003b22,0000f664 8db2 * * * * * 8db2 -17999 * * * * * * * 6716 e69c96,ef99a5 6716,f665 00006716,0000f665 8db3 * * * * * 8db3 -18000 * * * * * * * 3b42 e3ad82,ef99a6 3b42,f666 00003b42,0000f666 8db4 * * * * * 8db4 -18001 * * * * * * * 67a4 e69ea4,ef99a7 67a4,f667 000067a4,0000f667 8db5 * * * * * 8db5 -18002 * * * * * * * 3b58 e3ad98,ef99a9 3b58,f669 00003b58,0000f669 8db7 * * * * * 8db7 -18003 * * * * * * * 684a e6a18a,ef99aa 684a,f66a 0000684a,0000f66a 8db8 * * * * * 8db8 -18004 * * * * * * * 6884 e6a284,ef99ab 6884,f66b 00006884,0000f66b 8db9 * * * * * 8db9 -18005 * * * * * * * 3b72 e3adb2,ef99ac 3b72,f66c 00003b72,0000f66c 8dba * * * * * 8dba -18006 * * * * * * * 3b71 e3adb1,ef99ad 3b71,f66d 00003b71,0000f66d 8dbb * * * * * 8dbb -18007 * * * * * * * 3b7b e3adbb,ef99ae 3b7b,f66e 00003b7b,0000f66e 8dbc * * * * * 8dbc -18008 * * * * * * * 6909 e6a489,ef99af 6909,f66f 00006909,0000f66f 8dbd * * * * * 8dbd -18009 * * * * * * * 6943 e6a583,ef99b0 6943,f670 00006943,0000f670 8dbe * * * * * 8dbe -18010 * * * * * * * 725c e7899c,ef99b1 725c,f671 0000725c,0000f671 8dbf * * * * * 8dbf -18011 * * * * * * * 6964 e6a5a4,ef99b2 6964,f672 00006964,0000f672 8dc0 * * * * * 8dc0 -18012 * * * * * * * 699f e6a69f,ef99b3 699f,f673 0000699f,0000f673 8dc1 * * * * * 8dc1 -18013 * * * * * * * 6985 e6a685,ef99b4 6985,f674 00006985,0000f674 8dc2 * * * * * 8dc2 -18014 * * * * * * * 69d6 e6a796,ef99b6 69d6,f676 000069d6,0000f676 8dc4 * * * * * 8dc4 -18015 * * * * * * * 3bdd e3af9d,ef99b7 3bdd,f677 00003bdd,0000f677 8dc5 * * * * * 8dc5 -18016 * * * * * * * 6a65 e6a9a5,ef99b8 6a65,f678 00006a65,0000f678 8dc6 * * * * * 8dc6 -18017 * * * * * * * 6a74 e6a9b4,ef99b9 6a74,f679 00006a74,0000f679 8dc7 * * * * * 8dc7 -18018 * * * * * * * 6a71 e6a9b1,ef99ba 6a71,f67a 00006a71,0000f67a 8dc8 * * * * * 8dc8 -18019 * * * * * * * 6a82 e6aa82,ef99bb 6a82,f67b 00006a82,0000f67b 8dc9 * * * * * 8dc9 -18020 * * * * * * * 3bec e3afac,ef99bc 3bec,f67c 00003bec,0000f67c 8dca * * * * * 8dca -18021 * * * * * * * 6a99 e6aa99,ef99bd 6a99,f67d 00006a99,0000f67d 8dcb * * * * * 8dcb -18022 * * * * * * * 3bf2 e3afb2,ef99be 3bf2,f67e 00003bf2,0000f67e 8dcc * * * * * 8dcc -18023 * * * * * * * 6aab e6aaab,ef99bf 6aab,f67f 00006aab,0000f67f 8dcd * * * * * 8dcd -18024 * * * * * * * 6ab5 e6aab5,ef9a80 6ab5,f680 00006ab5,0000f680 8dce * * * * * 8dce -18025 * * * * * * * 6ad4 e6ab94,ef9a81 6ad4,f681 00006ad4,0000f681 8dcf * * * * * 8dcf -18026 * * * * * * * 6af6 e6abb6,ef9a82 6af6,f682 00006af6,0000f682 8dd0 * * * * * 8dd0 -18027 * * * * * * * 6b81 e6ae81,ef9a83 6b81,f683 00006b81,0000f683 8dd1 * * * * * 8dd1 -18028 * * * * * * * 6bc1 e6af81,ef9a84 6bc1,f684 00006bc1,0000f684 8dd2 * * * * * 8dd2 -18029 * * * * * * * 6bea e6afaa,ef9a85 6bea,f685 00006bea,0000f685 8dd3 * * * * * 8dd3 -18030 * * * * * * * 6c75 e6b1b5,ef9a86 6c75,f686 00006c75,0000f686 8dd4 * * * * * 8dd4 -18031 * * * * * * * 6caa e6b2aa,ef9a87 6caa,f687 00006caa,0000f687 8dd5 * * * * * 8dd5 -18032 * * * * * * * 3ccb e3b38b,ef9a88 3ccb,f688 00003ccb,0000f688 8dd6 * * * * * 8dd6 -18033 * * * * * * * 6d02 e6b482,ef9a89 6d02,f689 00006d02,0000f689 8dd7 * * * * * 8dd7 -18034 * * * * * * * 6d06 e6b486,ef9a8a 6d06,f68a 00006d06,0000f68a 8dd8 * * * * * 8dd8 -18035 * * * * * * * 6d26 e6b4a6,ef9a8b 6d26,f68b 00006d26,0000f68b 8dd9 * * * * * 8dd9 -18036 * * * * * * * 6d81 e6b681,ef9a8c 6d81,f68c 00006d81,0000f68c 8dda * * * * * 8dda -18037 * * * * * * * 3cef e3b3af,ef9a8d 3cef,f68d 00003cef,0000f68d 8ddb * * * * * 8ddb -18038 * * * * * * * 6da4 e6b6a4,ef9a8e 6da4,f68e 00006da4,0000f68e 8ddc * * * * * 8ddc -18039 * * * * * * * 6db1 e6b6b1,ef9a8f 6db1,f68f 00006db1,0000f68f 8ddd * * * * * 8ddd -18040 * * * * * * * 6e15 e6b895,ef9a90 6e15,f690 00006e15,0000f690 8dde * * * * * 8dde -18041 * * * * * * * 6e18 e6b898,ef9a91 6e18,f691 00006e18,0000f691 8ddf * * * * * 8ddf -18042 * * * * * * * 6e29 e6b8a9,ef9a92 6e29,f692 00006e29,0000f692 8de0 * * * * * 8de0 -18043 * * * * * * * 6e86 e6ba86,ef9a93 6e86,f693 00006e86,0000f693 8de1 * * * * * 8de1 -18044 * * * * * * * f694 f0a8a780,ef9a94 d862ddc0,f694 000289c0,0000f694 8de2 * * * * * 8de2 -18045 * * * * * * * 6ebb e6babb,ef9a95 6ebb,f695 00006ebb,0000f695 8de3 * * * * * 8de3 -18046 * * * * * * * 6ee2 e6bba2,ef9a96 6ee2,f696 00006ee2,0000f696 8de4 * * * * * 8de4 -18047 * * * * * * * 6eda e6bb9a,ef9a97 6eda,f697 00006eda,0000f697 8de5 * * * * * 8de5 -18048 * * * * * * * 9f7f e9bdbf,ef9a98 9f7f,f698 00009f7f,0000f698 8de6 * * * * * 8de6 -18049 * * * * * * * 6ee8 e6bba8,ef9a99 6ee8,f699 00006ee8,0000f699 8de7 * * * * * 8de7 -18050 * * * * * * * 6ee9 e6bba9,ef9a9a 6ee9,f69a 00006ee9,0000f69a 8de8 * * * * * 8de8 -18051 * * * * * * * 6f24 e6bca4,ef9a9b 6f24,f69b 00006f24,0000f69b 8de9 * * * * * 8de9 -18052 * * * * * * * 6f34 e6bcb4,ef9a9c 6f34,f69c 00006f34,0000f69c 8dea * * * * * 8dea -18053 * * * * * * * 3d46 e3b586,ef9a9d 3d46,f69d 00003d46,0000f69d 8deb * * * * * 8deb -18054 * * * * * * * f69e f0a3bd81,ef9a9e d84fdf41,f69e 00023f41,0000f69e 8dec * * * * * 8dec -18055 * * * * * * * 6f81 e6be81,ef9a9f 6f81,f69f 00006f81,0000f69f 8ded * * * * * 8ded -18056 * * * * * * * 6fbe e6bebe,ef9aa0 6fbe,f6a0 00006fbe,0000f6a0 8dee * * * * * 8dee -18057 * * * * * * * 3d6a e3b5aa,ef9aa1 3d6a,f6a1 00003d6a,0000f6a1 8def * * * * * 8def -18058 * * * * * * * 3d75 e3b5b5,ef9aa2 3d75,f6a2 00003d75,0000f6a2 8df0 * * * * * 8df0 -18059 * * * * * * * 71b7 e786b7,ef9aa3 71b7,f6a3 000071b7,0000f6a3 8df1 * * * * * 8df1 -18060 * * * * * * * 5c99 e5b299,ef9aa4 5c99,f6a4 00005c99,0000f6a4 8df2 * * * * * 8df2 -18061 * * * * * * * 3d8a e3b68a,ef9aa5 3d8a,f6a5 00003d8a,0000f6a5 8df3 * * * * * 8df3 -18062 * * * * * * * 702c e780ac,ef9aa6 702c,f6a6 0000702c,0000f6a6 8df4 * * * * * 8df4 -18063 * * * * * * * 3d91 e3b691,ef9aa7 3d91,f6a7 00003d91,0000f6a7 8df5 * * * * * 8df5 -18064 * * * * * * * 7050 e78190,ef9aa8 7050,f6a8 00007050,0000f6a8 8df6 * * * * * 8df6 -18065 * * * * * * * 7054 e78194,ef9aa9 7054,f6a9 00007054,0000f6a9 8df7 * * * * * 8df7 -18066 * * * * * * * 706f e781af,ef9aaa 706f,f6aa 0000706f,0000f6aa 8df8 * * * * * 8df8 -18067 * * * * * * * 707f e781bf,ef9aab 707f,f6ab 0000707f,0000f6ab 8df9 * * * * * 8df9 -18068 * * * * * * * f6ad f0a08ca5,ef9aad d840df25,f6ad 00020325,0000f6ad 8dfb * * * * * 8dfb -18069 * * * * * * * 43c1 e48f81,ef9aae 43c1,f6ae 000043c1,0000f6ae 8dfc * * * * * 8dfc -18070 * * * * * * * 35f1 e397b1,ef9aaf 35f1,f6af 000035f1,0000f6af 8dfd * * * * * 8dfd -18071 * * * * * * * f6b0 f0a0bb98,ef9ab0 d843ded8,f6b0 00020ed8,0000f6b0 8dfe * * * * * 8dfe -18072 * * * * * * * 364e e3998e,ee8c96 364e,e316 0000364e,0000e316 8e45 * * * * * 8e45 -18073 * * * * * * * 3dad e3b6ad,ee8cbc 3dad,e33c 00003dad,0000e33c 8e6b * * * * * 8e6b -18074 * * * * * * * e33d f0a5b1a5,ee8cbd d857dc65,e33d 00025c65,0000e33d 8e6c * * * * * 8e6c -18075 * * * * * * * 667d e699bd,ee8d87 667d,e347 0000667d,0000e347 8e76 * * * * * 8e76 -18076 * * * * * * * 7c74 e7b1b4,ee8d8c 7c74,e34c 00007c74,0000e34c 8e7b * * * * * 8e7b -18077 * * * * * * * 748d e7928d,ee8d95 748d,e355 0000748d,0000e355 8ea6 * * * * * 8ea6 -18078 * * * * * * * 7e92 e7ba92,ee8da7 7e92,e367 00007e92,0000e367 8eb8 * * * * * 8eb8 -18079 * * * * * * * 4503 e49483,ee8db8 4503,e378 00004503,0000e378 8ec9 * * * * * 8ec9 -18080 * * * * * * * e394 ee8e94,f0a4beb8 d853dfb8,e394 0000e394,00024fb8 8ee5 * * * * * 8ee5 -18081 * * * * * * * e39e ee8e9e,f0a0ac8d d842df0d,e39e 0000e39e,00020b0d 8eef * * * * * 8eef -18082 * * * * * * * e3a5 ee8ea5,f0a6ac8a d85adf0a,e3a5 0000e3a5,00026b0a 8ef6 * * * * * 8ef6 -18083 * * * * * * * 347e e391be,ee8f87 347e,e3c7 0000347e,0000e3c7 8f59 * * * * * 8f59 -18084 * * * * * * * e3cd ee8f8d,f0a2bbaf d84bdeef,e3cd 0000e3cd,00022eef 8f5f * * * * * 8f5f -18085 * * * * * * * e3d5 ee8f95,f0a3b2b5 d84fdcb5,e3d5 0000e3d5,00023cb5 8f67 * * * * * 8f67 -18086 * * * * * * * e3e7 ee8fa7,f0a6ba99 d85bde99,e3e7 0000e3e7,00026e99 8f79 * * * * * 8f79 -18087 * * * * * * * * e89db1,ee8fbc 8771,e3fc 00008771,0000e3fc 8fb0 * * * * * 8fb0 -18088 * * * * * * * 63c1 e68f81,ee9091 63c1,e411 000063c1,0000e411 8fc5 * * * * * 8fc5 -18089 * * * * * * * 7777 e79db7,ee9093 7777,e413 00007777,0000e413 8fc7 * * * * * 8fc7 -18090 * * * * * * * * e8a68a,ee9096 898a,e416 0000898a,0000e416 8fca * * * * * 8fca -18091 * * * * * * * e426 ee90a6,f0a3be8f d84fdf8f,e426 0000e426,00023f8f 8fda * * * * * 8fda -18092 * * * * * * * * e8ad8c,ee90af 8b4c,e42f 00008b4c,0000e42f 8fe3 * * * * * 8fe3 -18093 * * * * * * * e448 ee9188,f0a4b389 d853dcc9,e448 0000e448,00024cc9 8ffc * * * * * 8ffc -18094 * * * * * * * 492a e4a4aa,ee91a0 492a,e460 0000492a,0000e460 9055 * * * * * 9055 -18095 * * * * * * * e467 f0aa8094,ee91a7 d868dc14,e467 0002a014,0000e467 905c * * * * * 905c -18096 * * * * * * * e468 f0a89abc,ee91a8 d861debc,e468 000286bc,0000e468 905d * * * * * 905d -18097 * * * * * * * e469 f0a89481,ee91a9 d861dd01,e469 00028501,0000e469 905e * * * * * 905e -18098 * * * * * * * 3af0 e3abb0,ee91ba 3af0,e47a 00003af0,0000e47a 906f * * * * * 906f -18099 * * * * * * * 708f e7828f,ee928f 708f,e48f 0000708f,0000e48f 90a6 * * * * * 90a6 -18100 * * * * * * * e4a1 ee92a1,f0a299ba d849de7a,e4a1 0000e4a1,0002267a 90b8 * * * * * 90b8 -18101 * * * * * * * e50d ee948d,f0a6a6a8 d85adda8,e50d 0000e50d,000269a8 9165 * * * * * 9165 -18102 * * * * * * * e516 ee9496,f0a4898b d850de4b,e516 0000e516,0002424b 916e * * * * * 916e -18103 * * * * * * * 6888 e6a288,ee94a6 6888,e526 00006888,0000e526 917e * * * * * 917e -18104 * * * * * * * e528 ee94a8,f0a2859b d848dd5b,e528 0000e528,0002215b 91a2 * * * * * 91a2 -18105 * * * * * * * * e9bda2,ee958e 9f62,e54e 00009f62,0000e54e 91c8 * * * * * 91c8 -18106 * * * * * * * * e98f86,ee96a9 93c6,e5a9 000093c6,0000e5a9 9264 * * * * * 9264 -18107 * * * * * * * e5b2 ee96b2,f0a08dbf d840df7f,e5b2 0000e5b2,0002037f 926d * * * * * 926d -18108 * * * * * * * 9366 e98da6,ee9888 9366,e608 00009366,0000e608 92e5 * * * * * 92e5 -18109 * * * * * * * 928f e98a8f,ee9895 928f,e615 0000928f,0000e615 92f2 * * * * * 92f2 -18110 * * * * * * * 8614 e89894,ee998a 8614,e64a 00008614,0000e64a 9368 * * * * * 9368 -18111 * * * * * * * e66a ee99aa,f0aa919b d869dc5b,e66a 0000e66a,0002a45b 93aa * * * * * 93aa -18112 * * * * * * * 4190 e48690,ee9a82 4190,e682 00004190,0000e682 93c2 * * * * * 93c2 -18113 * * * * * * * 678f e69e8f,ee9aa5 678f,e6a5 0000678f,0000e6a5 93e5 * * * * * 93e5 -18114 * * * * * * * 681e e6a09e,ee9aa8 681e,e6a8 0000681e,0000e6a8 93e8 * * * * * 93e8 -18115 * * * * * * * 3863 e3a1a3,ee9aab 3863,e6ab 00003863,0000e6ab 93eb * * * * * 93eb -18116 * * * * * * * e6c5 ee9b85,f0a4a7ac d852ddec,e6c5 0000e6c5,000249ec 9446 * * * * * 9446 -18117 * * * * * * * 3b19 e3ac99,ee9bb8 3b19,e6f8 00003b19,0000e6f8 9479 * * * * * 9479 -18118 * * * * * * * * e89296,ee9ca8 8496,e728 00008496,0000e728 94cb * * * * * 94cb -18119 * * * * * * * e769 ee9da9,f0a4a5a2 d852dd62,e769 0000e769,00024962 954d * * * * * 954d -18120 * * * * * * * 39e2 e3a7a2,ee9db6 39e2,e776 000039e2,0000e776 955a * * * * * 955a -18121 * * * * * * * * e89280,ee9dbb 8480,e77b 00008480,0000e77b 955f * * * * * 955f -18122 * * * * * * * 436e e48dae,ee9f80 436e,e7c0 0000436e,0000e7c0 95c6 * * * * * 95c6 -18123 * * * * * * * * e99db1,eea08a 9771,e80a 00009771,0000e80a 9651 * * * * * 9651 -18124 * * * * * * * * e9a69b,eea0a3 999b,e823 0000999b,0000e823 966a * * * * * 966a -18125 * * * * * * * 492d e4a4ad,eea1ab 492d,e86b 0000492d,0000e86b 96d4 * * * * * 96d4 -18126 * * * * * * * 6f17 e6bc97,eea4b7 6f17,e937 00006f17,0000e937 9844 * * * * * 9844 -18127 * * * * * * * e938 f0a78489,eea4b8 d85cdd09,e938 00027109,0000e938 9845 * * * * * 9845 -18128 * * * * * * * * e782a6,eea5a2 70a6,e962 000070a6,0000e962 986f * * * * * 986f -18129 * * * * * * * e968 f0a4a98f,eea5a8 d852de4f,e968 00024a4f,0000e968 9875 * * * * * 9875 -18130 * * * * * * * 7e65 e7b9a5,eea5a9 7e65,e969 00007e65,0000e969 9876 * * * * * 9876 -18131 * * * * * * * 5d2f e5b4af,eea5ab 5d2f,e96b 00005d2f,0000e96b 9878 * * * * * 9878 -18132 * * * * * * * 3df3 e3b7b3,eea5ac 3df3,e96c 00003df3,0000e96c 9879 * * * * * 9879 -18133 * * * * * * * e96e f0a4a99d,eea5ae d852de5d,e96e 00024a5d,0000e96e 987b * * * * * 987b -18134 * * * * * * * e96f f0a19f9f,eea5af d845dfdf,e96f 000217df,0000e96f 987c * * * * * 987c -18135 * * * * * * * 7da4 e7b6a4,eea5b0 7da4,e970 00007da4,0000e970 987d * * * * * 987d -18136 * * * * * * * 8426 e890a6,eea5b1 8426,e971 00008426,0000e971 987e * * * * * 987e -18137 * * * * * * * 5485 e59285,eea5b2 5485,e972 00005485,0000e972 98a1 * * * * * 98a1 -18138 * * * * * * * e973 f0a3abba,eea5b3 d84edefa,e973 00023afa,0000e973 98a2 * * * * * 98a2 -18139 * * * * * * * e975 f0a08894,eea5b5 d840de14,e975 00020214,0000e975 98a4 * * * * * 98a4 -18140 * * * * * * * 577e e59dbe,eea5b6 577e,e976 0000577e,0000e976 98a5 * * * * * 98a5 -18141 * * * * * * * e977 f0a0a395,eea5b7 d842dcd5,e977 000208d5,0000e977 98a6 * * * * * 98a6 -18142 * * * * * * * e978 f0a09899,eea5b8 d841de19,e978 00020619,0000e978 98a7 * * * * * 98a7 -18143 * * * * * * * 3fe5 e3bfa5,eea5b9 3fe5,e979 00003fe5,0000e979 98a8 * * * * * 98a8 -18144 * * * * * * * e97a f0a1be9e,eea5ba d847df9e,e97a 00021f9e,0000e97a 98a9 * * * * * 98a9 -18145 * * * * * * * e97b f0aa8ab6,eea5bb d868deb6,e97b 0002a2b6,0000e97b 98aa * * * * * 98aa -18146 * * * * * * * 7003 e78083,eea5bc 7003,e97c 00007003,0000e97c 98ab * * * * * 98ab -18147 * * * * * * * e97d f0a9859b,eea5bd d864dd5b,e97d 0002915b,0000e97d 98ac * * * * * 98ac -18148 * * * * * * * 5d70 e5b5b0,eea5be 5d70,e97e 00005d70,0000e97e 98ad * * * * * 98ad -18149 * * * * * * * 738f e78e8f,eea5bf 738f,e97f 0000738f,0000e97f 98ae * * * * * 98ae -18150 * * * * * * * e981 f0a8a999,eea681 d862de59,e981 00028a59,0000e981 98b0 * * * * * 98b0 -18151 * * * * * * * e982 f0a990a0,eea682 d865dc20,e982 00029420,0000e982 98b1 * * * * * 98b1 -18152 * * * * * * * 4fc8 e4bf88,eea683 4fc8,e983 00004fc8,0000e983 98b2 * * * * * 98b2 -18153 * * * * * * * 7fe7 e7bfa7,eea684 7fe7,e984 00007fe7,0000e984 98b3 * * * * * 98b3 -18154 * * * * * * * 7310 e78c90,eea686 7310,e986 00007310,0000e986 98b5 * * * * * 98b5 -18155 * * * * * * * 7338 e78cb8,eea688 7338,e988 00007338,0000e988 98b7 * * * * * 98b7 -18156 * * * * * * * 7341 e78d81,eea68b 7341,e98b 00007341,0000e98b 98ba * * * * * 98ba -18157 * * * * * * * 3ea9 e3baa9,eea68d 3ea9,e98d 00003ea9,0000e98d 98bc * * * * * 98bc -18158 * * * * * * * 71f5 e787b5,eea690 71f5,e990 000071f5,0000e990 98bf * * * * * 98bf -18159 * * * * * * * e991 f0a4a3b2,eea691 d852dcf2,e991 000248f2,0000e991 98c0 * * * * * 98c0 -18160 * * * * * * * 73e1 e78fa1,eea692 73e1,e992 000073e1,0000e992 98c1 * * * * * 98c1 -18161 * * * * * * * 3eca e3bb8a,eea694 3eca,e994 00003eca,0000e994 98c3 * * * * * 98c3 -18162 * * * * * * * 3ed1 e3bb91,eea696 3ed1,e996 00003ed1,0000e996 98c5 * * * * * 98c5 -18163 * * * * * * * 7419 e79099,eea699 7419,e999 00007419,0000e999 98c8 * * * * * 98c8 -18164 * * * * * * * 741e e7909e,eea69a 741e,e99a 0000741e,0000e99a 98c9 * * * * * 98c9 -18165 * * * * * * * 741f e7909f,eea69b 741f,e99b 0000741f,0000e99b 98ca * * * * * 98ca -18166 * * * * * * * 3ee2 e3bba2,eea69c 3ee2,e99c 00003ee2,0000e99c 98cb * * * * * 98cb -18167 * * * * * * * 3ef0 e3bbb0,eea69d 3ef0,e99d 00003ef0,0000e99d 98cc * * * * * 98cc -18168 * * * * * * * 3ef4 e3bbb4,eea69e 3ef4,e99e 00003ef4,0000e99e 98cd * * * * * 98cd -18169 * * * * * * * 3efa e3bbba,eea69f 3efa,e99f 00003efa,0000e99f 98ce * * * * * 98ce -18170 * * * * * * * 74d3 e79393,eea6a0 74d3,e9a0 000074d3,0000e9a0 98cf * * * * * 98cf -18171 * * * * * * * 3f0e e3bc8e,eea6a1 3f0e,e9a1 00003f0e,0000e9a1 98d0 * * * * * 98d0 -18172 * * * * * * * 3f53 e3bd93,eea6a2 3f53,e9a2 00003f53,0000e9a2 98d1 * * * * * 98d1 -18173 * * * * * * * 756d e795ad,eea6a4 756d,e9a4 0000756d,0000e9a4 98d3 * * * * * 98d3 -18174 * * * * * * * 7572 e795b2,eea6a5 7572,e9a5 00007572,0000e9a5 98d4 * * * * * 98d4 -18175 * * * * * * * 758d e7968d,eea6a6 758d,e9a6 0000758d,0000e9a6 98d5 * * * * * 98d5 -18176 * * * * * * * 3f7c e3bdbc,eea6a7 3f7c,e9a7 00003f7c,0000e9a7 98d6 * * * * * 98d6 -18177 * * * * * * * 75c8 e79788,eea6a8 75c8,e9a8 000075c8,0000e9a8 98d7 * * * * * 98d7 -18178 * * * * * * * 764d e7998d,eea6ab 764d,e9ab 0000764d,0000e9ab 98da * * * * * 98da -18179 * * * * * * * 7674 e799b4,eea6ad 7674,e9ad 00007674,0000e9ad 98dc * * * * * 98dc -18180 * * * * * * * 3fdc e3bf9c,eea6ae 3fdc,e9ae 00003fdc,0000e9ae 98dd * * * * * 98dd -18181 * * * * * * * 767a e799ba,eea6af 767a,e9af 0000767a,0000e9af 98de * * * * * 98de -18182 * * * * * * * 7188 e78688,eea6b1 7188,e9b1 00007188,0000e9b1 98e0 * * * * * 98e0 -18183 * * * * * * * 5623 e598a3,eea6b2 5623,e9b2 00005623,0000e9b2 98e1 * * * * * 98e1 -18184 * * * * * * * 8980 e8a680,eea6b3 8980,e9b3 00008980,0000e9b3 98e2 * * * * * 98e2 -18185 * * * * * * * 401d e4809d,eea6b5 401d,e9b5 0000401d,0000e9b5 98e4 * * * * * 98e4 -18186 * * * * * * * 7743 e79d83,eea6b6 7743,e9b6 00007743,0000e9b6 98e5 * * * * * 98e5 -18187 * * * * * * * 4039 e480b9,eea6b7 4039,e9b7 00004039,0000e9b7 98e6 * * * * * 98e6 -18188 * * * * * * * 4045 e48185,eea6b9 4045,e9b9 00004045,0000e9b9 98e8 * * * * * 98e8 -18189 * * * * * * * 35db e3979b,eea6ba 35db,e9ba 000035db,0000e9ba 98e9 * * * * * 98e9 -18190 * * * * * * * 7798 e79e98,eea6bb 7798,e9bb 00007798,0000e9bb 98ea * * * * * 98ea -18191 * * * * * * * 406a e481aa,eea6bc 406a,e9bc 0000406a,0000e9bc 98eb * * * * * 98eb -18192 * * * * * * * 406f e481af,eea6bd 406f,e9bd 0000406f,0000e9bd 98ec * * * * * 98ec -18193 * * * * * * * 77be e79ebe,eea6bf 77be,e9bf 000077be,0000e9bf 98ee * * * * * 98ee -18194 * * * * * * * 77cb e79f8b,eea780 77cb,e9c0 000077cb,0000e9c0 98ef * * * * * 98ef -18195 * * * * * * * 7818 e7a098,eea782 7818,e9c2 00007818,0000e9c2 98f1 * * * * * 98f1 -18196 * * * * * * * 781c e7a09c,eea784 781c,e9c4 0000781c,0000e9c4 98f3 * * * * * 98f3 -18197 * * * * * * * 7847 e7a187,eea787 7847,e9c7 00007847,0000e9c7 98f6 * * * * * 98f6 -18198 * * * * * * * 7851 e7a191,eea788 7851,e9c8 00007851,0000e9c8 98f7 * * * * * 98f7 -18199 * * * * * * * 7866 e7a1a6,eea789 7866,e9c9 00007866,0000e9c9 98f8 * * * * * 98f8 -18200 * * * * * * * 8448 e89188,eea78a 8448,e9ca 00008448,0000e9ca 98f9 * * * * * 98f9 -18201 * * * * * * * e9cb f0a594b5,eea78b d855dd35,e9cb 00025535,0000e9cb 98fa * * * * * 98fa -18202 * * * * * * * 7933 e7a4b3,eea78c 7933,e9cc 00007933,0000e9cc 98fb * * * * * 98fb -18203 * * * * * * * 7932 e7a4b2,eea78e 7932,e9ce 00007932,0000e9ce 98fd * * * * * 98fd -18204 * * * * * * * 4109 e48489,eea790 4109,e9d0 00004109,0000e9d0 9940 * * * * * 9940 -18205 * * * * * * * 7991 e7a691,eea791 7991,e9d1 00007991,0000e9d1 9941 * * * * * 9941 -18206 * * * * * * * 7a06 e7a886,eea794 7a06,e9d4 00007a06,0000e9d4 9944 * * * * * 9944 -18207 * * * * * * * 4167 e485a7,eea796 4167,e9d6 00004167,0000e9d6 9946 * * * * * 9946 -18208 * * * * * * * 41b2 e486b2,eea798 41b2,e9d8 000041b2,0000e9d8 9948 * * * * * 9948 -18209 * * * * * * * 7abc e7aabc,eea799 7abc,e9d9 00007abc,0000e9d9 9949 * * * * * 9949 -18210 * * * * * * * 8279 e889b9,eea79a 8279,e9da 00008279,0000e9da 994a * * * * * 994a -18211 * * * * * * * 41c4 e48784,eea79b 41c4,e9db 000041c4,0000e9db 994b * * * * * 994b -18212 * * * * * * * 7acf e7ab8f,eea79c 7acf,e9dc 00007acf,0000e9dc 994c * * * * * 994c -18213 * * * * * * * 7adb e7ab9b,eea79d 7adb,e9dd 00007adb,0000e9dd 994d * * * * * 994d -18214 * * * * * * * 41cf e4878f,eea79e 41cf,e9de 000041cf,0000e9de 994e * * * * * 994e -18215 * * * * * * * 7b62 e7ada2,eea7a0 7b62,e9e0 00007b62,0000e9e0 9950 * * * * * 9950 -18216 * * * * * * * 7b6c e7adac,eea7a1 7b6c,e9e1 00007b6c,0000e9e1 9951 * * * * * 9951 -18217 * * * * * * * 7b7b e7adbb,eea7a2 7b7b,e9e2 00007b7b,0000e9e2 9952 * * * * * 9952 -18218 * * * * * * * 7c12 e7b092,eea7a3 7c12,e9e3 00007c12,0000e9e3 9953 * * * * * 9953 -18219 * * * * * * * 4260 e489a0,eea7a5 4260,e9e5 00004260,0000e9e5 9955 * * * * * 9955 -18220 * * * * * * * 427a e489ba,eea7a6 427a,e9e6 0000427a,0000e9e6 9956 * * * * * 9956 -18221 * * * * * * * 7c7b e7b1bb,eea7a7 7c7b,e9e7 00007c7b,0000e9e7 9957 * * * * * 9957 -18222 * * * * * * * 7c9c e7b29c,eea7a8 7c9c,e9e8 00007c9c,0000e9e8 9958 * * * * * 9958 -18223 * * * * * * * 428c e48a8c,eea7a9 428c,e9e9 0000428c,0000e9e9 9959 * * * * * 9959 -18224 * * * * * * * 7cb8 e7b2b8,eea7aa 7cb8,e9ea 00007cb8,0000e9ea 995a * * * * * 995a -18225 * * * * * * * 4294 e48a94,eea7ab 4294,e9eb 00004294,0000e9eb 995b * * * * * 995b -18226 * * * * * * * 8f93 e8be93,eea7ad 8f93,e9ed 00008f93,0000e9ed 995d * * * * * 995d -18227 * * * * * * * 70c0 e78380,eea7ae 70c0,e9ee 000070c0,0000e9ee 995e * * * * * 995e -18228 * * * * * * * e9ef f0a0b38f,eea7af d843dccf,e9ef 00020ccf,0000e9ef 995f * * * * * 995f -18229 * * * * * * * 7dcf e7b78f,eea7b0 7dcf,e9f0 00007dcf,0000e9f0 9960 * * * * * 9960 -18230 * * * * * * * 7dd4 e7b794,eea7b1 7dd4,e9f1 00007dd4,0000e9f1 9961 * * * * * 9961 -18231 * * * * * * * 7dd0 e7b790,eea7b2 7dd0,e9f2 00007dd0,0000e9f2 9962 * * * * * 9962 -18232 * * * * * * * 7dfd e7b7bd,eea7b3 7dfd,e9f3 00007dfd,0000e9f3 9963 * * * * * 9963 -18233 * * * * * * * 7fb4 e7beb4,eea7b5 7fb4,e9f5 00007fb4,0000e9f5 9965 * * * * * 9965 -18234 * * * * * * * 729f e78a9f,eea7b6 729f,e9f6 0000729f,0000e9f6 9966 * * * * * 9966 -18235 * * * * * * * 4397 e48e97,eea7b7 4397,e9f7 00004397,0000e9f7 9967 * * * * * 9967 -18236 * * * * * * * 8020 e880a0,eea7b8 8020,e9f8 00008020,0000e9f8 9968 * * * * * 9968 -18237 * * * * * * * 8025 e880a5,eea7b9 8025,e9f9 00008025,0000e9f9 9969 * * * * * 9969 -18238 * * * * * * * 802e e880ae,eea7bb 802e,e9fb 0000802e,0000e9fb 996b * * * * * 996b -18239 * * * * * * * 8031 e880b1,eea7bc 8031,e9fc 00008031,0000e9fc 996c * * * * * 996c -18240 * * * * * * * 8054 e88194,eea7bd 8054,e9fd 00008054,0000e9fd 996d * * * * * 996d -18241 * * * * * * * 57b4 e59eb4,eea7bf 57b4,e9ff 000057b4,0000e9ff 996f * * * * * 996f -18242 * * * * * * * 70a0 e782a0,eea880 70a0,ea00 000070a0,0000ea00 9970 * * * * * 9970 -18243 * * * * * * * 80b7 e882b7,eea881 80b7,ea01 000080b7,0000ea01 9971 * * * * * 9971 -18244 * * * * * * * 80e9 e883a9,eea882 80e9,ea02 000080e9,0000ea02 9972 * * * * * 9972 -18245 * * * * * * * 43ed e48fad,eea883 43ed,ea03 000043ed,0000ea03 9973 * * * * * 9973 -18246 * * * * * * * 810c e8848c,eea884 810c,ea04 0000810c,0000ea04 9974 * * * * * 9974 -18247 * * * * * * * 810e e8848e,eea886 810e,ea06 0000810e,0000ea06 9976 * * * * * 9976 -18248 * * * * * * * 8112 e88492,eea887 8112,ea07 00008112,0000ea07 9977 * * * * * 9977 -18249 * * * * * * * 8114 e88494,eea889 8114,ea09 00008114,0000ea09 9979 * * * * * 9979 -18250 * * * * * * * 4401 e49081,eea88a 4401,ea0a 00004401,0000ea0a 997a * * * * * 997a -18251 * * * * * * * 3b39 e3acb9,eea88b 3b39,ea0b 00003b39,0000ea0b 997b * * * * * 997b -18252 * * * * * * * 8156 e88596,eea88c 8156,ea0c 00008156,0000ea0c 997c * * * * * 997c -18253 * * * * * * * 8159 e88599,eea88d 8159,ea0d 00008159,0000ea0d 997d * * * * * 997d -18254 * * * * * * * 815a e8859a,eea88e 815a,ea0e 0000815a,0000ea0e 997e * * * * * 997e -18255 * * * * * * * 4413 e49093,eea88f 4413,ea0f 00004413,0000ea0f 99a1 * * * * * 99a1 -18256 * * * * * * * 817c e885bc,eea891 817c,ea11 0000817c,0000ea11 99a3 * * * * * 99a3 -18257 * * * * * * * 4425 e490a5,eea893 4425,ea13 00004425,0000ea13 99a5 * * * * * 99a5 -18258 * * * * * * * 442d e490ad,eea895 442d,ea15 0000442d,0000ea15 99a7 * * * * * 99a7 -18259 * * * * * * * 81a5 e886a5,eea896 81a5,ea16 000081a5,0000ea16 99a8 * * * * * 99a8 -18260 * * * * * * * 57ef e59faf,eea897 57ef,ea17 000057ef,0000ea17 99a9 * * * * * 99a9 -18261 * * * * * * * 81c1 e88781,eea898 81c1,ea18 000081c1,0000ea18 99aa * * * * * 99aa -18262 * * * * * * * 81e4 e887a4,eea899 81e4,ea19 000081e4,0000ea19 99ab * * * * * 99ab -18263 * * * * * * * 8254 e88994,eea89a 8254,ea1a 00008254,0000ea1a 99ac * * * * * 99ac -18264 * * * * * * * 448f e4928f,eea89b 448f,ea1b 0000448f,0000ea1b 99ad * * * * * 99ad -18265 * * * * * * * 8276 e889b6,eea89d 8276,ea1d 00008276,0000ea1d 99af * * * * * 99af -18266 * * * * * * * 82ca e88b8a,eea89e 82ca,ea1e 000082ca,0000ea1e 99b0 * * * * * 99b0 -18267 * * * * * * * 82d8 e88b98,eea89f 82d8,ea1f 000082d8,0000ea1f 99b1 * * * * * 99b1 -18268 * * * * * * * 44b0 e492b0,eea8a1 44b0,ea21 000044b0,0000ea21 99b3 * * * * * 99b3 -18269 * * * * * * * 8357 e88d97,eea8a2 8357,ea22 00008357,0000ea22 99b4 * * * * * 99b4 -18270 * * * * * * * 9669 e999a9,eea8a3 9669,ea23 00009669,0000ea23 99b5 * * * * * 99b5 -18271 * * * * * * * 8405 e89085,eea8a5 8405,ea25 00008405,0000ea25 99b7 * * * * * 99b7 -18272 * * * * * * * 70f5 e783b5,eea8a6 70f5,ea26 000070f5,0000ea26 99b8 * * * * * 99b8 -18273 * * * * * * * 8464 e891a4,eea8a7 8464,ea27 00008464,0000ea27 99b9 * * * * * 99b9 -18274 * * * * * * * 8488 e89288,eea8a9 8488,ea29 00008488,0000ea29 99bb * * * * * 99bb -18275 * * * * * * * 4504 e49484,eea8aa 4504,ea2a 00004504,0000ea2a 99bc * * * * * 99bc -18276 * * * * * * * 84be e892be,eea8ab 84be,ea2b 000084be,0000ea2b 99bd * * * * * 99bd -18277 * * * * * * * 84e1 e893a1,eea8ac 84e1,ea2c 000084e1,0000ea2c 99be * * * * * 99be -18278 * * * * * * * 84f8 e893b8,eea8ad 84f8,ea2d 000084f8,0000ea2d 99bf * * * * * 99bf -18279 * * * * * * * 8510 e89490,eea8ae 8510,ea2e 00008510,0000ea2e 99c0 * * * * * 99c0 -18280 * * * * * * * 8538 e894b8,eea8af 8538,ea2f 00008538,0000ea2f 99c1 * * * * * 99c1 -18281 * * * * * * * 8552 e89592,eea8b0 8552,ea30 00008552,0000ea30 99c2 * * * * * 99c2 -18282 * * * * * * * 453b e494bb,eea8b1 453b,ea31 0000453b,0000ea31 99c3 * * * * * 99c3 -18283 * * * * * * * 856f e895af,eea8b2 856f,ea32 0000856f,0000ea32 99c4 * * * * * 99c4 -18284 * * * * * * * 8570 e895b0,eea8b3 8570,ea33 00008570,0000ea33 99c5 * * * * * 99c5 -18285 * * * * * * * 85e0 e897a0,eea8b4 85e0,ea34 000085e0,0000ea34 99c6 * * * * * 99c6 -18286 * * * * * * * 4577 e495b7,eea8b5 4577,ea35 00004577,0000ea35 99c7 * * * * * 99c7 -18287 * * * * * * * 8672 e899b2,eea8b6 8672,ea36 00008672,0000ea36 99c8 * * * * * 99c8 -18288 * * * * * * * 8692 e89a92,eea8b7 8692,ea37 00008692,0000ea37 99c9 * * * * * 99c9 -18289 * * * * * * * 86ef e89baf,eea8b9 86ef,ea39 000086ef,0000ea39 99cb * * * * * 99cb -18290 * * * * * * * 9645 e99985,eea8ba 9645,ea3a 00009645,0000ea3a 99cc * * * * * 99cc -18291 * * * * * * * 4606 e49886,eea8bc 4606,ea3c 00004606,0000ea3c 99ce * * * * * 99ce -18292 * * * * * * * 4617 e49897,eea8bd 4617,ea3d 00004617,0000ea3d 99cf * * * * * 99cf -18293 * * * * * * * 88ae e8a2ae,eea8be 88ae,ea3e 000088ae,0000ea3e 99d0 * * * * * 99d0 -18294 * * * * * * * 88ff e8a3bf,eea8bf 88ff,ea3f 000088ff,0000ea3f 99d1 * * * * * 99d1 -18295 * * * * * * * 8924 e8a4a4,eea980 8924,ea40 00008924,0000ea40 99d2 * * * * * 99d2 -18296 * * * * * * * 8991 e8a691,eea982 8991,ea42 00008991,0000ea42 99d4 * * * * * 99d4 -18297 * * * * * * * ea43 f0a7a5a7,eea983 d85edd67,ea43 00027967,0000ea43 99d5 * * * * * 99d5 -18298 * * * * * * * 8a38 e8a8b8,eea985 8a38,ea45 00008a38,0000ea45 99d7 * * * * * 99d7 -18299 * * * * * * * 8a94 e8aa94,eea986 8a94,ea46 00008a94,0000ea46 99d8 * * * * * 99d8 -18300 * * * * * * * 8ab4 e8aab4,eea987 8ab4,ea47 00008ab4,0000ea47 99d9 * * * * * 99d9 -18301 * * * * * * * 8c51 e8b191,eea988 8c51,ea48 00008c51,0000ea48 99da * * * * * 99da -18302 * * * * * * * 8cd4 e8b394,eea989 8cd4,ea49 00008cd4,0000ea49 99db * * * * * 99db -18303 * * * * * * * 8cf2 e8b3b2,eea98a 8cf2,ea4a 00008cf2,0000ea4a 99dc * * * * * 99dc -18304 * * * * * * * 8d1c e8b49c,eea98b 8d1c,ea4b 00008d1c,0000ea4b 99dd * * * * * 99dd -18305 * * * * * * * 4798 e49e98,eea98c 4798,ea4c 00004798,0000ea4c 99de * * * * * 99de -18306 * * * * * * * 8dc3 e8b783,eea98e 8dc3,ea4e 00008dc3,0000ea4e 99e0 * * * * * 99e0 -18307 * * * * * * * 47ed e49fad,eea98f 47ed,ea4f 000047ed,0000ea4f 99e1 * * * * * 99e1 -18308 * * * * * * * 8e3a e8b8ba,eea991 8e3a,ea51 00008e3a,0000ea51 99e3 * * * * * 99e3 -18309 * * * * * * * 5754 e59d94,eea993 5754,ea53 00005754,0000ea53 99e5 * * * * * 99e5 -18310 * * * * * * * 55f5 e597b5,eea995 55f5,ea55 000055f5,0000ea55 99e7 * * * * * 99e7 -18311 * * * * * * * 4837 e4a0b7,eea997 4837,ea57 00004837,0000ea57 99e9 * * * * * 99e9 -18312 * * * * * * * 8ece e8bb8e,eea998 8ece,ea58 00008ece,0000ea58 99ea * * * * * 99ea -18313 * * * * * * * 8ee2 e8bba2,eea999 8ee2,ea59 00008ee2,0000ea59 99eb * * * * * 99eb -18314 * * * * * * * 8ee4 e8bba4,eea99a 8ee4,ea5a 00008ee4,0000ea5a 99ec * * * * * 99ec -18315 * * * * * * * 8eed e8bbad,eea99b 8eed,ea5b 00008eed,0000ea5b 99ed * * * * * 99ed -18316 * * * * * * * 8ef2 e8bbb2,eea99c 8ef2,ea5c 00008ef2,0000ea5c 99ee * * * * * 99ee -18317 * * * * * * * 8fc1 e8bf81,eea99e 8fc1,ea5e 00008fc1,0000ea5e 99f0 * * * * * 99f0 -18318 * * * * * * * 8fca e8bf8a,eea99f 8fca,ea5f 00008fca,0000ea5f 99f1 * * * * * 99f1 -18319 * * * * * * * 8fcc e8bf8c,eea9a0 8fcc,ea60 00008fcc,0000ea60 99f2 * * * * * 99f2 -18320 * * * * * * * 9033 e980b3,eea9a1 9033,ea61 00009033,0000ea61 99f3 * * * * * 99f3 -18321 * * * * * * * 48ad e4a2ad,eea9a3 48ad,ea63 000048ad,0000ea63 99f5 * * * * * 99f5 -18322 * * * * * * * 98e0 e9a3a0,eea9a4 98e0,ea64 000098e0,0000ea64 99f6 * * * * * 99f6 -18323 * * * * * * * 9213 e98893,eea9a5 9213,ea65 00009213,0000ea65 99f7 * * * * * 99f7 -18324 * * * * * * * 491e e4a49e,eea9a6 491e,ea66 0000491e,0000ea66 99f8 * * * * * 99f8 -18325 * * * * * * * 9228 e988a8,eea9a7 9228,ea67 00009228,0000ea67 99f9 * * * * * 99f9 -18326 * * * * * * * 9258 e98998,eea9a8 9258,ea68 00009258,0000ea68 99fa * * * * * 99fa -18327 * * * * * * * 926b e989ab,eea9a9 926b,ea69 0000926b,0000ea69 99fb * * * * * 99fb -18328 * * * * * * * 92b1 e98ab1,eea9aa 92b1,ea6a 000092b1,0000ea6a 99fc * * * * * 99fc -18329 * * * * * * * 92ae e98aae,eea9ab 92ae,ea6b 000092ae,0000ea6b 99fd * * * * * 99fd -18330 * * * * * * * 92bf e98abf,eea9ac 92bf,ea6c 000092bf,0000ea6c 99fe * * * * * 99fe -18331 * * * * * * * 92e3 e98ba3,eea9ad 92e3,ea6d 000092e3,0000ea6d 9a40 * * * * * 9a40 -18332 * * * * * * * 92eb e98bab,eea9ae 92eb,ea6e 000092eb,0000ea6e 9a41 * * * * * 9a41 -18333 * * * * * * * 92f3 e98bb3,eea9af 92f3,ea6f 000092f3,0000ea6f 9a42 * * * * * 9a42 -18334 * * * * * * * 92f4 e98bb4,eea9b0 92f4,ea70 000092f4,0000ea70 9a43 * * * * * 9a43 -18335 * * * * * * * 92fd e98bbd,eea9b1 92fd,ea71 000092fd,0000ea71 9a44 * * * * * 9a44 -18336 * * * * * * * 9343 e98d83,eea9b2 9343,ea72 00009343,0000ea72 9a45 * * * * * 9a45 -18337 * * * * * * * 9384 e98e84,eea9b3 9384,ea73 00009384,0000ea73 9a46 * * * * * 9a46 -18338 * * * * * * * 93ad e98ead,eea9b4 93ad,ea74 000093ad,0000ea74 9a47 * * * * * 9a47 -18339 * * * * * * * 4945 e4a585,eea9b5 4945,ea75 00004945,0000ea75 9a48 * * * * * 9a48 -18340 * * * * * * * 4951 e4a591,eea9b6 4951,ea76 00004951,0000ea76 9a49 * * * * * 9a49 -18341 * * * * * * * 9417 e99097,eea9b8 9417,ea78 00009417,0000ea78 9a4b * * * * * 9a4b -18342 * * * * * * * 941d e9909d,eea9ba 941d,ea7a 0000941d,0000ea7a 9a4d * * * * * 9a4d -18343 * * * * * * * 942d e990ad,eea9bb 942d,ea7b 0000942d,0000ea7b 9a4e * * * * * 9a4e -18344 * * * * * * * 943e e990be,eea9bc 943e,ea7c 0000943e,0000ea7c 9a4f * * * * * 9a4f -18345 * * * * * * * 496a e4a5aa,eea9bd 496a,ea7d 0000496a,0000ea7d 9a50 * * * * * 9a50 -18346 * * * * * * * 9454 e99194,eea9be 9454,ea7e 00009454,0000ea7e 9a51 * * * * * 9a51 -18347 * * * * * * * 9479 e991b9,eea9bf 9479,ea7f 00009479,0000ea7f 9a52 * * * * * 9a52 -18348 * * * * * * * 952d e994ad,eeaa80 952d,ea80 0000952d,0000ea80 9a53 * * * * * 9a53 -18349 * * * * * * * 95a2 e996a2,eeaa81 95a2,ea81 000095a2,0000ea81 9a54 * * * * * 9a54 -18350 * * * * * * * 49a7 e4a6a7,eeaa82 49a7,ea82 000049a7,0000ea82 9a55 * * * * * 9a55 -18351 * * * * * * * 95f4 e997b4,eeaa83 95f4,ea83 000095f4,0000ea83 9a56 * * * * * 9a56 -18352 * * * * * * * 9633 e998b3,eeaa84 9633,ea84 00009633,0000ea84 9a57 * * * * * 9a57 -18353 * * * * * * * 49e5 e4a7a5,eeaa85 49e5,ea85 000049e5,0000ea85 9a58 * * * * * 9a58 -18354 * * * * * * * 4a24 e4a8a4,eeaa87 4a24,ea87 00004a24,0000ea87 9a5a * * * * * 9a5a -18355 * * * * * * * 9740 e99d80,eeaa88 9740,ea88 00009740,0000ea88 9a5b * * * * * 9a5b -18356 * * * * * * * 4a35 e4a8b5,eeaa89 4a35,ea89 00004a35,0000ea89 9a5c * * * * * 9a5c -18357 * * * * * * * 97b2 e99eb2,eeaa8a 97b2,ea8a 000097b2,0000ea8a 9a5d * * * * * 9a5d -18358 * * * * * * * 97c2 e99f82,eeaa8b 97c2,ea8b 000097c2,0000ea8b 9a5e * * * * * 9a5e -18359 * * * * * * * 4ae4 e4aba4,eeaa8d 4ae4,ea8d 00004ae4,0000ea8d 9a60 * * * * * 9a60 -18360 * * * * * * * 98b9 e9a2b9,eeaa8f 98b9,ea8f 000098b9,0000ea8f 9a62 * * * * * 9a62 -18361 * * * * * * * 4b19 e4ac99,eeaa90 4b19,ea90 00004b19,0000ea90 9a63 * * * * * 9a63 -18362 * * * * * * * 98f1 e9a3b1,eeaa91 98f1,ea91 000098f1,0000ea91 9a64 * * * * * 9a64 -18363 * * * * * * * 5844 e5a184,eeaa92 5844,ea92 00005844,0000ea92 9a65 * * * * * 9a65 -18364 * * * * * * * 9919 e9a499,eeaa94 9919,ea94 00009919,0000ea94 9a67 * * * * * 9a67 -18365 * * * * * * * 9937 e9a4b7,eeaa97 9937,ea97 00009937,0000ea97 9a6a * * * * * 9a6a -18366 * * * * * * * 995d e9a59d,eeaa99 995d,ea99 0000995d,0000ea99 9a6c * * * * * 9a6c -18367 * * * * * * * * e9a5a2,eeaa9a 9962,ea9a 00009962,0000ea9a 9a6d * * * * * 9a6d -18368 * * * * * * * 4b70 e4adb0,eeaa9b 4b70,ea9b 00004b70,0000ea9b 9a6e * * * * * 9a6e -18369 * * * * * * * 99c5 e9a785,eeaa9c 99c5,ea9c 000099c5,0000ea9c 9a6f * * * * * 9a6f -18370 * * * * * * * 4b9d e4ae9d,eeaa9d 4b9d,ea9d 00004b9d,0000ea9d 9a70 * * * * * 9a70 -18371 * * * * * * * 9a3c e9a8bc,eeaa9e 9a3c,ea9e 00009a3c,0000ea9e 9a71 * * * * * 9a71 -18372 * * * * * * * 9b0f e9ac8f,eeaa9f 9b0f,ea9f 00009b0f,0000ea9f 9a72 * * * * * 9a72 -18373 * * * * * * * 9b69 e9ada9,eeaaa1 9b69,eaa1 00009b69,0000eaa1 9a74 * * * * * 9a74 -18374 * * * * * * * 9bdd e9af9d,eeaaa3 9bdd,eaa3 00009bdd,0000eaa3 9a76 * * * * * 9a76 -18375 * * * * * * * 9bf1 e9afb1,eeaaa4 9bf1,eaa4 00009bf1,0000eaa4 9a77 * * * * * 9a77 -18376 * * * * * * * 9bf4 e9afb4,eeaaa5 9bf4,eaa5 00009bf4,0000eaa5 9a78 * * * * * 9a78 -18377 * * * * * * * 4c6d e4b1ad,eeaaa6 4c6d,eaa6 00004c6d,0000eaa6 9a79 * * * * * 9a79 -18378 * * * * * * * 9c20 e9b0a0,eeaaa7 9c20,eaa7 00009c20,0000eaa7 9a7a * * * * * 9a7a -18379 * * * * * * * 376f e39daf,eeaaa8 376f,eaa8 0000376f,0000eaa8 9a7b * * * * * 9a7b -18380 * * * * * * * eaa9 f0a1af82,eeaaa9 d846dfc2,eaa9 00021bc2,0000eaa9 9a7c * * * * * 9a7c -18381 * * * * * * * 9d49 e9b589,eeaaaa 9d49,eaaa 00009d49,0000eaaa 9a7d * * * * * 9a7d -18382 * * * * * * * 9efe e9bbbe,eeaaac 9efe,eaac 00009efe,0000eaac 9aa1 * * * * * 9aa1 -18383 * * * * * * * 5650 e59990,eeaaad 5650,eaad 00005650,0000eaad 9aa2 * * * * * 9aa2 -18384 * * * * * * * 9dbd e9b6bd,eeaaaf 9dbd,eaaf 00009dbd,0000eaaf 9aa4 * * * * * 9aa4 -18385 * * * * * * * 9dfc e9b7bc,eeaab1 9dfc,eab1 00009dfc,0000eab1 9aa6 * * * * * 9aa6 -18386 * * * * * * * 94f6 e993b6,eeaab2 94f6,eab2 000094f6,0000eab2 9aa7 * * * * * 9aa7 -18387 * * * * * * * 8fb6 e8beb6,eeaab3 8fb6,eab3 00008fb6,0000eab3 9aa8 * * * * * 9aa8 -18388 * * * * * * * 9eb1 e9bab1,eeaab6 9eb1,eab6 00009eb1,0000eab6 9aab * * * * * 9aab -18389 * * * * * * * 9ebd e9babd,eeaab7 9ebd,eab7 00009ebd,0000eab7 9aac * * * * * 9aac -18390 * * * * * * * 9ec6 e9bb86,eeaab8 9ec6,eab8 00009ec6,0000eab8 9aad * * * * * 9aad -18391 * * * * * * * 94dc e9939c,eeaab9 94dc,eab9 000094dc,0000eab9 9aae * * * * * 9aae -18392 * * * * * * * 9ee2 e9bba2,eeaaba 9ee2,eaba 00009ee2,0000eaba 9aaf * * * * * 9aaf -18393 * * * * * * * 9ef1 e9bbb1,eeaabb 9ef1,eabb 00009ef1,0000eabb 9ab0 * * * * * 9ab0 -18394 * * * * * * * 9ef8 e9bbb8,eeaabc 9ef8,eabc 00009ef8,0000eabc 9ab1 * * * * * 9ab1 -18395 * * * * * * * 9f44 e9bd84,eeaabe 9f44,eabe 00009f44,0000eabe 9ab3 * * * * * 9ab3 -18396 * * * * * * * eabf f0a08294,eeaabf d840dc94,eabf 00020094,0000eabf 9ab4 * * * * * 9ab4 -18397 * * * * * * * eac0 f0a08ab7,eeab80 d840deb7,eac0 000202b7,0000eac0 9ab5 * * * * * 9ab5 -18398 * * * * * * * eac1 f0a08ea0,eeab81 d840dfa0,eac1 000203a0,0000eac1 9ab6 * * * * * 9ab6 -18399 * * * * * * * 94c3 e99383,eeab83 94c3,eac3 000094c3,0000eac3 9ab8 * * * * * 9ab8 -18400 * * * * * * * eac5 eeab85,f0a09397 d841dcd7,eac5 0000eac5,000204d7 9aba * * * * * 9aba -18401 * * * * * * * 94c1 e99381,eeab87 94c1,eac7 000094c1,0000eac7 9abc * * * * * 9abc -18402 * * * * * * * eac9 f0a09795,eeab89 d841ddd5,eac9 000205d5,0000eac9 9abe * * * * * 9abe -18403 * * * * * * * eaca f0a09895,eeab8a d841de15,eaca 00020615,0000eaca 9abf * * * * * 9abf -18404 * * * * * * * eacb f0a099b6,eeab8b d841de76,eacb 00020676,0000eacb 9ac0 * * * * * 9ac0 -18405 * * * * * * * eacc f0a19aba,eeab8c d845deba,eacc 000216ba,0000eacc 9ac1 * * * * * 9ac1 -18406 * * * * * * * 5757 e59d97,eeab8d 5757,eacd 00005757,0000eacd 9ac2 * * * * * 9ac2 -18407 * * * * * * * 7173 e785b3,eeab8e 7173,eace 00007173,0000eace 9ac3 * * * * * 9ac3 -18408 * * * * * * * eacf f0a0ab82,eeab8f d842dec2,eacf 00020ac2,0000eacf 9ac4 * * * * * 9ac4 -18409 * * * * * * * ead0 f0a0ab8d,eeab90 d842decd,ead0 00020acd,0000ead0 9ac5 * * * * * 9ac5 -18410 * * * * * * * ead1 f0a0aebf,eeab91 d842dfbf,ead1 00020bbf,0000ead1 9ac6 * * * * * 9ac6 -18411 * * * * * * * ead3 f0afa0bb,eeab93 d87edc3b,ead3 0002f83b,0000ead3 9ac8 * * * * * 9ac8 -18412 * * * * * * * ead4 f0a0af8b,eeab94 d842dfcb,ead4 00020bcb,0000ead4 9ac9 * * * * * 9ac9 -18413 * * * * * * * 549e e5929e,eeab95 549e,ead5 0000549e,0000ead5 9aca * * * * * 9aca -18414 * * * * * * * ead6 f0a0afbb,eeab96 d842dffb,ead6 00020bfb,0000ead6 9acb * * * * * 9acb -18415 * * * * * * * ead7 f0a0b0bb,eeab97 d843dc3b,ead7 00020c3b,0000ead7 9acc * * * * * 9acc -18416 * * * * * * * ead8 f0a0b193,eeab98 d843dc53,ead8 00020c53,0000ead8 9acd * * * * * 9acd -18417 * * * * * * * ead9 f0a0b1a5,eeab99 d843dc65,ead9 00020c65,0000ead9 9ace * * * * * 9ace -18418 * * * * * * * eada f0a0b1bc,eeab9a d843dc7c,eada 00020c7c,0000eada 9acf * * * * * 9acf -18419 * * * * * * * eadc eeab9c,f0a0b28d d843dc8d,eadc 0000eadc,00020c8d 9ad1 * * * * * 9ad1 -18420 * * * * * * * eade f0a0b2b5,eeab9e d843dcb5,eade 00020cb5,0000eade 9ad3 * * * * * 9ad3 -18421 * * * * * * * eadf f0a0b39d,eeab9f d843dcdd,eadf 00020cdd,0000eadf 9ad4 * * * * * 9ad4 -18422 * * * * * * * eae0 f0a0b3ad,eeaba0 d843dced,eae0 00020ced,0000eae0 9ad5 * * * * * 9ad5 -18423 * * * * * * * eae1 f0a0b5af,eeaba1 d843dd6f,eae1 00020d6f,0000eae1 9ad6 * * * * * 9ad6 -18424 * * * * * * * eae2 f0a0b6b2,eeaba2 d843ddb2,eae2 00020db2,0000eae2 9ad7 * * * * * 9ad7 -18425 * * * * * * * eae3 f0a0b788,eeaba3 d843ddc8,eae3 00020dc8,0000eae3 9ad8 * * * * * 9ad8 -18426 * * * * * * * eae7 f0a0b884,eeaba7 d843de04,eae7 00020e04,0000eae7 9adc * * * * * 9adc -18427 * * * * * * * eae8 f0a0b88e,eeaba8 d843de0e,eae8 00020e0e,0000eae8 9add * * * * * 9add -18428 * * * * * * * eae9 f0a0bb97,eeaba9 d843ded7,eae9 00020ed7,0000eae9 9ade * * * * * 9ade -18429 * * * * * * * eaea f0a0be90,eeabaa d843df90,eaea 00020f90,0000eaea 9adf * * * * * 9adf -18430 * * * * * * * eaeb f0a0bcad,eeabab d843df2d,eaeb 00020f2d,0000eaeb 9ae0 * * * * * 9ae0 -18431 * * * * * * * eaec f0a0b9b3,eeabac d843de73,eaec 00020e73,0000eaec 9ae1 * * * * * 9ae1 -18432 * * * * * * * eaee eeabae,f0a0bebc d843dfbc,eaee 0000eaee,00020fbc 9ae3 * * * * * 9ae3 -18433 * * * * * * * eaf0 f0a1819c,eeabb0 d844dc5c,eaf0 0002105c,0000eaf0 9ae5 * * * * * 9ae5 -18434 * * * * * * * eaf1 f0a1818f,eeabb1 d844dc4f,eaf1 0002104f,0000eaf1 9ae6 * * * * * 9ae6 -18435 * * * * * * * eaf2 f0a181b6,eeabb2 d844dc76,eaf2 00021076,0000eaf2 9ae7 * * * * * 9ae7 -18436 * * * * * * * eaf5 f0a18288,eeabb5 d844dc88,eaf5 00021088,0000eaf5 9aea * * * * * 9aea -18437 * * * * * * * eaf6 f0a18296,eeabb6 d844dc96,eaf6 00021096,0000eaf6 9aeb * * * * * 9aeb -18438 * * * * * * * 3647 e39987,eeabb7 3647,eaf7 00003647,0000eaf7 9aec * * * * * 9aec -18439 * * * * * * * eaf8 f0a182bf,eeabb8 d844dcbf,eaf8 000210bf,0000eaf8 9aed * * * * * 9aed -18440 * * * * * * * eafa f0a184af,eeabba d844dd2f,eafa 0002112f,0000eafa 9aef * * * * * 9aef -18441 * * * * * * * eafb f0a184bb,eeabbb d844dd3b,eafb 0002113b,0000eafb 9af0 * * * * * 9af0 -18442 * * * * * * * 5364 e58da4,eeabbc 5364,eafc 00005364,0000eafc 9af1 * * * * * 9af1 -18443 * * * * * * * eafe f0a18ba3,eeabbe d844dee3,eafe 000212e3,0000eafe 9af3 * * * * * 9af3 -18444 * * * * * * * eaff f0a18db5,eeabbf d844df75,eaff 00021375,0000eaff 9af4 * * * * * 9af4 -18445 * * * * * * * eb00 eeac80,f0a18cb6 d844df36,eb00 0000eb00,00021336 9af5 * * * * * 9af5 -18446 * * * * * * * eb02 f0a195b7,eeac82 d845dd77,eb02 00021577,0000eb02 9af7 * * * * * 9af7 -18447 * * * * * * * eb03 f0a19899,eeac83 d845de19,eb03 00021619,0000eb03 9af8 * * * * * 9af8 -18448 * * * * * * * eb04 f0a19f83,eeac84 d845dfc3,eb04 000217c3,0000eb04 9af9 * * * * * 9af9 -18449 * * * * * * * eb05 f0a19f87,eeac85 d845dfc7,eb05 000217c7,0000eb05 9afa * * * * * 9afa -18450 * * * * * * * 70bb e782bb,eeac87 70bb,eb07 000070bb,0000eb07 9afc * * * * * 9afc -18451 * * * * * * * eb08 f0a1a0ad,eeac88 d846dc2d,eb08 0002182d,0000eb08 9afd * * * * * 9afd -18452 * * * * * * * eb09 f0a1a5aa,eeac89 d846dd6a,eb09 0002196a,0000eb09 9afe * * * * * 9afe -18453 * * * * * * * eb0a f0a1a8ad,eeac8a d846de2d,eb0a 00021a2d,0000eb0a 9b40 * * * * * 9b40 -18454 * * * * * * * eb0b f0a1a985,eeac8b d846de45,eb0b 00021a45,0000eb0b 9b41 * * * * * 9b41 -18455 * * * * * * * eb0c f0a1b0aa,eeac8c d847dc2a,eb0c 00021c2a,0000eb0c 9b42 * * * * * 9b42 -18456 * * * * * * * eb0d f0a1b1b0,eeac8d d847dc70,eb0d 00021c70,0000eb0d 9b43 * * * * * 9b43 -18457 * * * * * * * eb0e f0a1b2ac,eeac8e d847dcac,eb0e 00021cac,0000eb0e 9b44 * * * * * 9b44 -18458 * * * * * * * eb0f f0a1bb88,eeac8f d847dec8,eb0f 00021ec8,0000eb0f 9b45 * * * * * 9b45 -18459 * * * * * * * eb11 f0a1bb95,eeac91 d847ded5,eb11 00021ed5,0000eb11 9b47 * * * * * 9b47 -18460 * * * * * * * eb12 f0a1bc95,eeac92 d847df15,eb12 00021f15,0000eb12 9b48 * * * * * 9b48 -18461 * * * * * * * 7198 e78698,eeac93 7198,eb13 00007198,0000eb13 9b49 * * * * * 9b49 -18462 * * * * * * * eb15 f0a28185,eeac95 d848dc45,eb15 00022045,0000eb15 9b4b * * * * * 9b4b -18463 * * * * * * * * e6a7a9,eeac96 69e9,eb16 000069e9,0000eb16 9b4c * * * * * 9b4c -18464 * * * * * * * 36c8 e39b88,eeac97 36c8,eb17 000036c8,0000eb17 9b4d * * * * * 9b4d -18465 * * * * * * * eb18 f0a289bc,eeac98 d848de7c,eb18 0002227c,0000eb18 9b4e * * * * * 9b4e -18466 * * * * * * * eb19 f0a28f97,eeac99 d848dfd7,eb19 000223d7,0000eb19 9b4f * * * * * 9b4f -18467 * * * * * * * eb1a f0a28fba,eeac9a d848dffa,eb1a 000223fa,0000eb1a 9b50 * * * * * 9b50 -18468 * * * * * * * eb1b f0a29caa,eeac9b d849df2a,eb1b 0002272a,0000eb1b 9b51 * * * * * 9b51 -18469 * * * * * * * eb1c f0a2a1b1,eeac9c d84adc71,eb1c 00022871,0000eb1c 9b52 * * * * * 9b52 -18470 * * * * * * * eb1d f0a2a58f,eeac9d d84add4f,eb1d 0002294f,0000eb1d 9b53 * * * * * 9b53 -18471 * * * * * * * eb1f f0a2a5a7,eeac9f d84add67,eb1f 00022967,0000eb1f 9b55 * * * * * 9b55 -18472 * * * * * * * eb20 f0a2a693,eeaca0 d84add93,eb20 00022993,0000eb20 9b56 * * * * * 9b56 -18473 * * * * * * * eb21 f0a2ab95,eeaca1 d84aded5,eb21 00022ad5,0000eb21 9b57 * * * * * 9b57 -18474 * * * * * * * eb23 eeaca3,f0a2aba8 d84adee8,eb23 0000eb23,00022ae8 9b59 * * * * * 9b59 -18475 * * * * * * * eb25 eeaca5,f0a2ac8e d84adf0e,eb25 0000eb25,00022b0e 9b5b * * * * * 9b5b -18476 * * * * * * * eb27 eeaca7,f0a2acbf d84adf3f,eb27 0000eb27,00022b3f 9b5d * * * * * 9b5d -18477 * * * * * * * eb2a eeacaa,f0a2b18c d84bdc4c,eb2a 0000eb2a,00022c4c 9b60 * * * * * 9b60 -18478 * * * * * * * eb2c f0a2b288,eeacac d84bdc88,eb2c 00022c88,0000eb2c 9b62 * * * * * 9b62 -18479 * * * * * * * eb2d f0a2b2b7,eeacad d84bdcb7,eb2d 00022cb7,0000eb2d 9b63 * * * * * 9b63 -18480 * * * * * * * eb2e f0a5afa8,eeacae d856dfe8,eb2e 00025be8,0000eb2e 9b64 * * * * * 9b64 -18481 * * * * * * * eb2f f0a2b488,eeacaf d84bdd08,eb2f 00022d08,0000eb2f 9b65 * * * * * 9b65 -18482 * * * * * * * eb30 f0a2b492,eeacb0 d84bdd12,eb30 00022d12,0000eb30 9b66 * * * * * 9b66 -18483 * * * * * * * eb31 f0a2b6b7,eeacb1 d84bddb7,eb31 00022db7,0000eb31 9b67 * * * * * 9b67 -18484 * * * * * * * eb32 f0a2b695,eeacb2 d84bdd95,eb32 00022d95,0000eb32 9b68 * * * * * 9b68 -18485 * * * * * * * eb33 f0a2b982,eeacb3 d84bde42,eb33 00022e42,0000eb33 9b69 * * * * * 9b69 -18486 * * * * * * * eb34 f0a2bdb4,eeacb4 d84bdf74,eb34 00022f74,0000eb34 9b6a * * * * * 9b6a -18487 * * * * * * * eb35 f0a2bf8c,eeacb5 d84bdfcc,eb35 00022fcc,0000eb35 9b6b * * * * * 9b6b -18488 * * * * * * * eb36 f0a380b3,eeacb6 d84cdc33,eb36 00023033,0000eb36 9b6c * * * * * 9b6c -18489 * * * * * * * eb37 f0a381a6,eeacb7 d84cdc66,eb37 00023066,0000eb37 9b6d * * * * * 9b6d -18490 * * * * * * * eb38 f0a38c9f,eeacb8 d84cdf1f,eb38 0002331f,0000eb38 9b6e * * * * * 9b6e -18491 * * * * * * * eb39 f0a38f9e,eeacb9 d84cdfde,eb39 000233de,0000eb39 9b6f * * * * * 9b6f -18492 * * * * * * * eb3e f0a395a7,eeacbe d84ddd67,eb3e 00023567,0000eb3e 9b74 * * * * * 9b74 -18493 * * * * * * * eb3f f0a397b3,eeacbf d84dddf3,eb3f 000235f3,0000eb3f 9b75 * * * * * 9b75 -18494 * * * * * * * eb43 f0a3989a,eead83 d84dde1a,eb43 0002361a,0000eb43 9b79 * * * * * 9b79 -18495 * * * * * * * eb44 f0a39c96,eead84 d84ddf16,eb44 00023716,0000eb44 9b7a * * * * * 9b7a -18496 * * * * * * * 58b5 e5a2b5,eead87 58b5,eb47 000058b5,0000eb47 9b7d * * * * * 9b7d -18497 * * * * * * * eb4a eead8a,f0a3aaa7 d84edea7,eb4a 0000eb4a,00023aa7 9ba2 * * * * * 9ba2 -18498 * * * * * * * eb4d f0a3b891,eead8d d84fde11,eb4d 00023e11,0000eb4d 9ba5 * * * * * 9ba5 -18499 * * * * * * * eb4e f0a3bab9,eead8e d84fdeb9,eb4e 00023eb9,0000eb4e 9ba6 * * * * * 9ba6 -18500 * * * * * * * eb53 eead93,f0a48499 d850dd19,eb53 0000eb53,00024119 9bab * * * * * 9bab -18501 * * * * * * * eb55 f0a48bae,eead95 d850deee,eb55 000242ee,0000eb55 9bad * * * * * 9bad -18502 * * * * * * * eb56 f0a48c8d,eead96 d850df0d,eb56 0002430d,0000eb56 9bae * * * * * 9bae -18503 * * * * * * * eb58 f0a48cb4,eead98 d850df34,eb58 00024334,0000eb58 9bb0 * * * * * 9bb0 -18504 * * * * * * * eb59 f0a48e96,eead99 d850df96,eb59 00024396,0000eb59 9bb1 * * * * * 9bb1 -18505 * * * * * * * eb62 f0a49084,eeada2 d851dc04,eb62 00024404,0000eb62 9bba * * * * * 9bba -18506 * * * * * * * eb63 f0a49396,eeada3 d851dcd6,eb63 000244d6,0000eb63 9bbb * * * * * 9bbb -18507 * * * * * * * 5788 e59e88,eeada4 5788,eb64 00005788,0000eb64 9bbc * * * * * 9bbc -18508 * * * * * * * eb65 f0a499b4,eeada5 d851de74,eb65 00024674,0000eb65 9bbd * * * * * 9bbd -18509 * * * * * * * eb67 eeada7,f0a49caf d851df2f,eb67 0000eb67,0002472f 9bbf * * * * * 9bbf -18510 * * * * * * * eb6f f0a4a092,eeadaf d852dc12,eb6f 00024812,0000eb6f 9bc7 * * * * * 9bc7 -18511 * * * * * * * eb70 f0a4a3bb,eeadb0 d852dcfb,eb70 000248fb,0000eb70 9bc8 * * * * * 9bc8 -18512 * * * * * * * eb71 f0a4a895,eeadb1 d852de15,eb71 00024a15,0000eb71 9bc9 * * * * * 9bc9 -18513 * * * * * * * eb73 eeadb3,f0a4ab80 d852dec0,eb73 0000eb73,00024ac0 9bcb * * * * * 9bcb -18514 * * * * * * * 5965 e5a5a5,eeadb5 5965,eb75 00005965,0000eb75 9bcd * * * * * 9bcd -18515 * * * * * * * eb77 eeadb7,f0a4be86 d853df86,eb77 0000eb77,00024f86 9bcf * * * * * 9bcf -18516 * * * * * * * eb7a eeadba,f0a580ac d854dc2c,eb7a 0000eb7a,0002502c 9bd2 * * * * * 9bd2 -18517 * * * * * * * 573f e59cbf,eeadbc 573f,eb7c 0000573f,0000eb7c 9bd4 * * * * * 9bd4 -18518 * * * * * * * eb7e f0a58a99,eeadbe d854de99,eb7e 00025299,0000eb7e 9bd6 * * * * * 9bd6 -18519 * * * * * * * eb7f f0a59099,eeadbf d855dc19,eb7f 00025419,0000eb7f 9bd7 * * * * * 9bd7 -18520 * * * * * * * eb83 f0a59186,eeae83 d855dc46,eb83 00025446,0000eb83 9bdb * * * * * 9bdb -18521 * * * * * * * eb84 f0a591ae,eeae84 d855dc6e,eb84 0002546e,0000eb84 9bdc * * * * * 9bdc -18522 * * * * * * * eb88 eeae88,f0a594bf d855dd3f,eb88 0000eb88,0002553f 9be0 * * * * * 9be0 -18523 * * * * * * * eb8a eeae8a,f0a5959e d855dd5e,eb8a 0000eb8a,0002555e 9be2 * * * * * 9be2 -18524 * * * * * * * eb8c f0a595a2,eeae8c d855dd62,eb8c 00025562,0000eb8c 9be4 * * * * * 9be4 -18525 * * * * * * * eb8d f0a595a6,eeae8d d855dd66,eb8d 00025566,0000eb8d 9be5 * * * * * 9be5 -18526 * * * * * * * eb8e f0a59f87,eeae8e d855dfc7,eb8e 000257c7,0000eb8e 9be6 * * * * * 9be6 -18527 * * * * * * * eb90 eeae90,f0a5a19d d856dc5d,eb90 0000eb90,0002585d 9be8 * * * * * 9be8 -18528 * * * * * * * eb95 eeae95,f0a5a483 d856dd03,eb95 0000eb95,00025903 9bed * * * * * 9bed -18529 * * * * * * * eb98 f0a5aaae,eeae98 d856deae,eb98 00025aae,0000eb98 9bf0 * * * * * 9bf0 -18530 * * * * * * * eb99 f0a5ae89,eeae99 d856df89,eb99 00025b89,0000eb99 9bf1 * * * * * 9bf1 -18531 * * * * * * * eb9a f0a5b086,eeae9a d857dc06,eb9a 00025c06,0000eb9a 9bf2 * * * * * 9bf2 -18532 * * * * * * * 57a1 e59ea1,eeae9c 57a1,eb9c 000057a1,0000eb9c 9bf4 * * * * * 9bf4 -18533 * * * * * * * 7151 e78591,eeae9d 7151,eb9d 00007151,0000eb9d 9bf5 * * * * * 9bf5 -18534 * * * * * * * eb9f eeae9f,f0a68482 d858dd02,eb9f 0000eb9f,00026102 9bf7 * * * * * 9bf7 -18535 * * * * * * * eba2 eeaea2,f0a686b2 d858ddb2,eba2 0000eba2,000261b2 9bfa * * * * * 9bfa -18536 * * * * * * * eba5 f0a69082,eeaea5 d859dc02,eba5 00026402,0000eba5 9bfd * * * * * 9bfd -18537 * * * * * * * eba6 f0a6918a,eeaea6 d859dc4a,eba6 0002644a,0000eba6 9bfe * * * * * 9bfe -18538 * * * * * * * ebaa eeaeaa,f0a69284 d859dc84,ebaa 0000ebaa,00026484 9c43 * * * * * 9c43 -18539 * * * * * * * ebae eeaeae,f0a69288 d859dc88,ebae 0000ebae,00026488 9c47 * * * * * 9c47 -18540 * * * * * * * ebb0 eeaeb0,f0a69492 d859dd12,ebb0 0000ebb0,00026512 9c49 * * * * * 9c49 -18541 * * * * * * * ebb2 f0a696bf,eeaeb2 d859ddbf,ebb2 000265bf,0000ebb2 9c4b * * * * * 9c4b -18542 * * * * * * * ebb3 f0a69ab5,eeaeb3 d859deb5,ebb3 000266b5,0000ebb3 9c4c * * * * * 9c4c -18543 * * * * * * * 56b9 e59ab9,eeaebb 56b9,ebbb 000056b9,0000ebbb 9c54 * * * * * 9c54 -18544 * * * * * * * ebbd eeaebd,f0a69bbc d859defc,ebbd 0000ebbd,000266fc 9c56 * * * * * 9c56 -18545 * * * * * * * 3618 e39898,eeaf83 3618,ebc3 00003618,0000ebc3 9c5c * * * * * 9c5c -18546 * * * * * * * ebc5 f0a69e99,eeaf85 d859df99,ebc5 00026799,0000ebc5 9c5e * * * * * 9c5e -18547 * * * * * * * ebc6 f0a6a1ae,eeaf86 d85adc6e,ebc6 0002686e,0000ebc6 9c5f * * * * * 9c5f -18548 * * * * * * * ebc8 eeaf88,f0a6a19e d85adc5e,ebc8 0000ebc8,0002685e 9c61 * * * * * 9c61 -18549 * * * * * * * ebca eeaf8a,f0a6a387 d85adcc7,ebca 0000ebca,000268c7 9c63 * * * * * 9c63 -18550 * * * * * * * ebce eeaf8e,f0a6a4a6 d85add26,ebce 0000ebce,00026926 9c67 * * * * * 9c67 -18551 * * * * * * * ebd0 eeaf90,f0a6a4b9 d85add39,ebd0 0000ebd0,00026939 9c69 * * * * * 9c69 -18552 * * * * * * * ebd3 eeaf93,f0a6a7ba d85addfa,ebd3 0000ebd3,000269fa 9c6c * * * * * 9c6c -18553 * * * * * * * ebd5 eeaf95,f0a6a8ad d85ade2d,ebd5 0000ebd5,00026a2d 9c6e * * * * * 9c6e -18554 * * * * * * * ebda f0a6a8b4,eeaf9a d85ade34,ebda 00026a34,0000ebda 9c73 * * * * * 9c73 -18555 * * * * * * * ebdb f0a6ad9b,eeaf9b d85adf5b,ebdb 00026b5b,0000ebdb 9c74 * * * * * 9c74 -18556 * * * * * * * ebdf eeaf9f,f0a6ae9d d85adf9d,ebdf 0000ebdf,00026b9d 9c78 * * * * * 9c78 -18557 * * * * * * * ebe1 eeafa1,f0a6b2a4 d85bdca4,ebe1 0000ebe1,00026ca4 9c7a * * * * * 9c7a -18558 * * * * * * * ebe4 eeafa4,f0a6b6ae d85bddae,ebe4 0000ebe4,00026dae 9c7d * * * * * 9c7d -18559 * * * * * * * ebe8 f0a7818b,eeafa8 d85cdc4b,ebe8 0002704b,0000ebe8 9ca3 * * * * * 9ca3 -18560 * * * * * * * ebe9 f0a7878d,eeafa9 d85cddcd,ebe9 000271cd,0000ebe9 9ca4 * * * * * 9ca4 -18561 * * * * * * * ebeb f0a78a80,eeafab d85cde80,ebeb 00027280,0000ebeb 9ca6 * * * * * 9ca6 -18562 * * * * * * * ebec f0a78a85,eeafac d85cde85,ebec 00027285,0000ebec 9ca7 * * * * * 9ca7 -18563 * * * * * * * ebef eeafaf,f0a78a8b d85cde8b,ebef 0000ebef,0002728b 9caa * * * * * 9caa -18564 * * * * * * * ebf1 eeafb1,f0a78ba6 d85cdee6,ebf1 0000ebf1,000272e6 9cac * * * * * 9cac -18565 * * * * * * * 949f e9929f,eeafb4 949f,ebf4 0000949f,0000ebf4 9caf * * * * * 9caf -18566 * * * * * * * ebf5 f0a79190,eeafb5 d85ddc50,ebf5 00027450,0000ebf5 9cb0 * * * * * 9cb0 -18567 * * * * * * * 36b9 e39ab9,eeb080 36b9,ec00 000036b9,0000ec00 9cbb * * * * * 9cbb -18568 * * * * * * * ec08 f0a79f8c,eeb088 d85ddfcc,ec08 000277cc,0000ec08 9cc3 * * * * * 9cc3 -18569 * * * * * * * ec09 f0a7a198,eeb089 d85edc58,ec09 00027858,0000ec09 9cc4 * * * * * 9cc4 -18570 * * * * * * * 56d6 e59b96,eeb08a 56d6,ec0a 000056d6,0000ec0a 9cc5 * * * * * 9cc5 -18571 * * * * * * * ec13 eeb093,f0a7a79d d85edddd,ec13 0000ec13,000279dd 9cce * * * * * 9cce -18572 * * * * * * * ec19 f0a7a7bd,eeb099 d85eddfd,ec19 000279fd,0000ec19 9cd4 * * * * * 9cd4 -18573 * * * * * * * ec1a f0a7a88a,eeb09a d85ede0a,ec1a 00027a0a,0000ec1a 9cd5 * * * * * 9cd5 -18574 * * * * * * * ec1b f0a7ac8b,eeb09b d85edf0b,ec1b 00027b0b,0000ec1b 9cd6 * * * * * 9cd6 -18575 * * * * * * * ec1c f0a7b5a6,eeb09c d85fdd66,ec1c 00027d66,0000ec1c 9cd7 * * * * * 9cd7 -18576 * * * * * * * ec20 eeb0a0,f0a88089 d860dc09,ec20 0000ec20,00028009 9cdb * * * * * 9cdb -18577 * * * * * * * ec2b eeb0ab,f0a880a3 d860dc23,ec2b 0000ec2b,00028023 9ce6 * * * * * 9ce6 -18578 * * * * * * * ec2f eeb0af,f0a88188 d860dc48,ec2f 0000ec2f,00028048 9cea * * * * * 9cea -18579 * * * * * * * ec32 eeb0b2,f0a88283 d860dc83,ec32 0000ec32,00028083 9ced * * * * * 9ced -18580 * * * * * * * ec3f eeb0bf,f0a88290 d860dc90,ec3f 00028090,0000ec3f 9cfa * * * * * 9cfa -18581 * * * * * * * ec40 f0a883b4,eeb180 d860dcf4,ec40 000280f4,0000ec40 9cfb * * * * * 9cfb -18582 * * * * * * * ec41 f0a884ae,eeb181 d860dd2e,ec41 0002812e,0000ec41 9cfc * * * * * 9cfc -18583 * * * * * * * ec43 eeb183,f0a8858f d860dd4f,ec43 0000ec43,0002814f 9cfe * * * * * 9cfe -18584 * * * * * * * ec45 f0a886af,eeb185 d860ddaf,ec45 000281af,0000ec45 9d41 * * * * * 9d41 -18585 * * * * * * * ec46 f0a8889a,eeb186 d860de1a,ec46 0002821a,0000ec46 9d42 * * * * * 9d42 -18586 * * * * * * * ec47 f0a88c86,eeb187 d860df06,ec47 00028306,0000ec47 9d43 * * * * * 9d43 -18587 * * * * * * * ec48 f0a88caf,eeb188 d860df2f,ec48 0002832f,0000ec48 9d44 * * * * * 9d44 -18588 * * * * * * * ec49 f0a88e8a,eeb189 d860df8a,ec49 0002838a,0000ec49 9d45 * * * * * 9d45 -18589 * * * * * * * ec4b f0a891a8,eeb18b d861dc68,ec4b 00028468,0000ec4b 9d47 * * * * * 9d47 -18590 * * * * * * * ec4c f0a89aaa,eeb18c d861deaa,ec4c 000286aa,0000ec4c 9d48 * * * * * 9d48 -18591 * * * * * * * 63e6 e68fa6,eeb18e 63e6,ec4e 000063e6,0000ec4e 9d4a * * * * * 9d4a -18592 * * * * * * * ec4f f0a8a596,eeb18f d862dd56,ec4f 00028956,0000ec4f 9d4b * * * * * 9d4b -18593 * * * * * * * ec52 eeb192,f0a8a6b8 d862ddb8,ec52 0000ec52,000289b8 9d4e * * * * * 9d4e -18594 * * * * * * * ec54 eeb194,f0a8a7a7 ec54,d862dde7 0000ec54,000289e7 9d50 * * * * * 9d50 -18595 * * * * * * * ec56 eeb196,f0a8a7a8 d862dde8,ec56 0000ec56,000289e8 9d52 * * * * * 9d52 -18596 * * * * * * * ec57 f0a8ad86,eeb197 d862df46,ec57 00028b46,0000ec57 9d53 * * * * * 9d53 -18597 * * * * * * * ec58 f0a8af94,eeb198 d862dfd4,ec58 00028bd4,0000ec58 9d54 * * * * * 9d54 -18598 * * * * * * * ec5a eeb19a,f0a8b089 d863dc09,ec5a 0000ec5a,00028c09 9d56 * * * * * 9d56 -18599 * * * * * * * ec5c f0a8bf85,eeb19c d863dfc5,ec5c 00028fc5,0000ec5c 9d58 * * * * * 9d58 -18600 * * * * * * * ec5d f0a983ac,eeb19d d864dcec,ec5d 000290ec,0000ec5d 9d59 * * * * * 9d59 -18601 * * * * * * * ec5f f0a98490,eeb19f d864dd10,ec5f 00029110,0000ec5f 9d5b * * * * * 9d5b -18602 * * * * * * * ec60 f0a984bc,eeb1a0 d864dd3c,ec60 0002913c,0000ec60 9d5c * * * * * 9d5c -18603 * * * * * * * 3df7 e3b7b7,eeb1a1 3df7,ec61 00003df7,0000ec61 9d5d * * * * * 9d5d -18604 * * * * * * * ec62 f0a9859e,eeb1a2 d864dd5e,ec62 0002915e,0000ec62 9d5e * * * * * 9d5e -18605 * * * * * * * ec63 f0a4ab8a,eeb1a3 d852deca,ec63 00024aca,0000ec63 9d5f * * * * * 9d5f -18606 * * * * * * * 8fd0 e8bf90,eeb1a4 8fd0,ec64 00008fd0,0000ec64 9d60 * * * * * 9d60 -18607 * * * * * * * ec67 eeb1a7,f0a993a7 d865dce7,ec67 0000ec67,000294e7 9d63 * * * * * 9d63 -18608 * * * * * * * ec69 f0a996b0,eeb1a9 d865ddb0,ec69 000295b0,0000ec69 9d65 * * * * * 9d65 -18609 * * * * * * * ec6a f0a996b8,eeb1aa d865ddb8,ec6a 000295b8,0000ec6a 9d66 * * * * * 9d66 -18610 * * * * * * * ec6b f0a99cb2,eeb1ab d865df32,ec6b 00029732,0000ec6b 9d67 * * * * * 9d67 -18611 * * * * * * * ec6c f0a9a391,eeb1ac d866dcd1,ec6c 000298d1,0000ec6c 9d68 * * * * * 9d68 -18612 * * * * * * * ec6d f0a9a589,eeb1ad d866dd49,ec6d 00029949,0000ec6d 9d69 * * * * * 9d69 -18613 * * * * * * * ec6e f0a9a5aa,eeb1ae d866dd6a,ec6e 0002996a,0000ec6e 9d6a * * * * * 9d6a -18614 * * * * * * * ec6f f0a9a783,eeb1af d866ddc3,ec6f 000299c3,0000ec6f 9d6b * * * * * 9d6b -18615 * * * * * * * ec70 f0a9a8a8,eeb1b0 d866de28,ec70 00029a28,0000ec70 9d6c * * * * * 9d6c -18616 * * * * * * * ec71 f0a9ac8e,eeb1b1 d866df0e,ec71 00029b0e,0000ec71 9d6d * * * * * 9d6d -18617 * * * * * * * ec72 f0a9b59a,eeb1b2 d867dd5a,ec72 00029d5a,0000ec72 9d6e * * * * * 9d6e -18618 * * * * * * * ec73 f0a9b69b,eeb1b3 d867dd9b,ec73 00029d9b,0000ec73 9d6f * * * * * 9d6f -18619 * * * * * * * 7e9f e7ba9f,eeb1b4 7e9f,ec74 00007e9f,0000ec74 9d70 * * * * * 9d70 -18620 * * * * * * * ec75 f0a9bbb8,eeb1b5 d867def8,ec75 00029ef8,0000ec75 9d71 * * * * * 9d71 -18621 * * * * * * * ec76 f0a9bca3,eeb1b6 d867df23,ec76 00029f23,0000ec76 9d72 * * * * * 9d72 -18622 * * * * * * * 4ca4 e4b2a4,e9bf90,eeb1b7 4ca4,9fd0,ec77 00004ca4,00009fd0,0000ec77 9d73 * * * * * 9d73 -18623 * * * * * * * 9547 e99587,eeb1b8 9547,ec78 00009547,0000ec78 9d74 * * * * * 9d74 -18624 * * * * * * * ec79 f0aa8a93,eeb1b9 d868de93,ec79 0002a293,0000ec79 9d75 * * * * * 9d75 -18625 * * * * * * * 71a2 e786a2,eeb1ba 71a2,ec7a 000071a2,0000ec7a 9d76 * * * * * 9d76 -18626 * * * * * * * ec7b f0aa8bbf,eeb1bb d868deff,ec7b 0002a2ff,0000ec7b 9d77 * * * * * 9d77 -18627 * * * * * * * ec7e f0aa978b,eeb1be d869ddcb,ec7e 0002a5cb,0000ec7e 9d7a * * * * * 9d7a -18628 * * * * * * * 4d9c e4b69c,eeb1bf 4d9c,ec7f 00004d9c,0000ec7f 9d7b * * * * * 9d7b -18629 * * * * * * * ec80 f0a0b29c,eeb280 d843dc9c,ec80 00020c9c,0000ec80 9d7c * * * * * 9d7c -18630 * * * * * * * 8fbe e8bebe,eeb281 8fbe,ec81 00008fbe,0000ec81 9d7d * * * * * 9d7d -18631 * * * * * * * 8fba e8beba,eeb283 8fba,ec83 00008fba,0000ec83 9da1 * * * * * 9da1 -18632 * * * * * * * ec84 f0a292b0,eeb284 d849dcb0,ec84 000224b0,0000ec84 9da2 * * * * * 9da2 -18633 * * * * * * * 8fb9 e8beb9,eeb285 8fb9,ec85 00008fb9,0000ec85 9da3 * * * * * 9da3 -18634 * * * * * * * ec86 f0a4aa93,eeb286 d852de93,ec86 00024a93,0000ec86 9da4 * * * * * 9da4 -18635 * * * * * * * 4eea e4bbaa,eeb28b 4eea,ec8b 00004eea,0000ec8b 9da9 * * * * * 9da9 -18636 * * * * * * * ec8d eeb28d,f0a8acac d862df2c,ec8d 0000ec8d,00028b2c 9dab * * * * * 9dab -18637 * * * * * * * * e8ba80,eeb290 8e80,ec90 00008e80,0000ec90 9dae * * * * * 9dae -18638 * * * * * * * ec91 f0a19fb5,eeb291 d845dff5,ec91 000217f5,0000ec91 9daf * * * * * 9daf -18639 * * * * * * * ec93 f0a8adac,eeb293 d862df6c,ec93 00028b6c,0000ec93 9db1 * * * * * 9db1 -18640 * * * * * * * ec94 f0a8ae99,eeb294 d862df99,ec94 00028b99,0000ec94 9db2 * * * * * 9db2 -18641 * * * * * * * ec96 eeb296,f0a69aaf d859deaf,ec96 0000ec96,000266af 9db4 * * * * * 9db4 -18642 * * * * * * * ec98 eeb298,f0a79995 d85dde55,ec98 0000ec98,00027655 9db6 * * * * * 9db6 -18643 * * * * * * * ec9a f0a598b5,eeb29a d855de35,ec9a 00025635,0000ec9a 9db8 * * * * * 9db8 -18644 * * * * * * * ec9b f0a5a596,eeb29b d856dd56,ec9b 00025956,0000ec9b 9db9 * * * * * 9db9 -18645 * * * * * * * 4e9a e4ba9a,eeb29c 4e9a,ec9c 00004e9a,0000ec9c 9dba * * * * * 9dba -18646 * * * * * * * ec9d f0a5ba81,eeb29d d857de81,ec9d 00025e81,0000ec9d 9dbb * * * * * 9dbb -18647 * * * * * * * eca0 eeb2a0,f0a0b9ad d843de6d,eca0 0000eca0,00020e6d 9dbe * * * * * 9dbe -18648 * * * * * * * eca3 f0a3ba88,eeb2a3 d84fde88,eca3 00023e88,0000eca3 9dc1 * * * * * 9dc1 -18649 * * * * * * * eca4 f0a4b29e,eeb2a4 d853dc9e,eca4 00024c9e,0000eca4 9dc2 * * * * * 9dc2 -18650 * * * * * * * eca7 f0a19fb6,eeb2a7 d845dff6,eca7 000217f6,0000eca7 9dc5 * * * * * 9dc5 -18651 * * * * * * * eca8 f0a1a1bb,eeb2a8 d846dc7b,eca8 0002187b,0000eca8 9dc6 * * * * * 9dc6 -18652 * * * * * * * ecab eeb2ab,f0a5b18a d857dc4a,ecab 0000ecab,00025c4a 9dc9 * * * * * 9dc9 -18653 * * * * * * * ecad f0a58c91,eeb2ad d854df11,ecad 00025311,0000ecad 9dcb * * * * * 9dcb -18654 * * * * * * * 3dc6 e3b786,eeb2ae 3dc6,ecae 00003dc6,0000ecae 9dcc * * * * * 9dcc -18655 * * * * * * * ecb4 eeb2b4,f0a5bb98 d857ded8,ecb4 0000ecb4,00025ed8 9dd2 * * * * * 9dd2 -18656 * * * * * * * 4e1c e4b89c,eeb2b8 4e1c,ecb8 00004e1c,0000ecb8 9dd6 * * * * * 9dd6 -18657 * * * * * * * ecb9 f0a0bfaa,eeb2b9 d843dfea,ecb9 00020fea,0000ecb9 9dd7 * * * * * 9dd7 -18658 * * * * * * * ecba f0a0b589,eeb2ba d843dd49,ecba 00020d49,0000ecba 9dd8 * * * * * 9dd8 -18659 * * * * * * * ecbb f0a39aba,eeb2bb d84ddeba,ecbb 000236ba,0000ecbb 9dd9 * * * * * 9dd9 -18660 * * * * * * * ecde eeb39e,f0a58588 d854dd48,ecde 0000ecde,00025148 9dfc * * * * * 9dfc -18661 * * * * * * * * e5979e,eeb3a4 55de,ece4 000055de,0000ece4 9e43 * * * * * 9e43 -18662 * * * * * * * * e89e86,eeb480 8786,ed00 00008786,0000ed00 9e5f * * * * * 9e5f -18663 * * * * * * * ed04 eeb484,f0a18381 d844dcc1,ed04 0000ed04,000210c1 9e63 * * * * * 9e63 -18664 * * * * * * * ed07 f0a49c86,eeb487 d851df06,ed07 00024706,0000ed07 9e66 * * * * * 9e66 -18665 * * * * * * * 5b90 e5ae90,eeb488 5b90,ed08 00005b90,0000ed08 9e67 * * * * * 9e67 -18666 * * * * * * * ed0a eeb48a,f0a6a293 d85adc93,ed0a 0000ed0a,00026893 9e69 * * * * * 9e69 -18667 * * * * * * * ed0c f0a29bb4,eeb48c d849def4,ed0c 000226f4,0000ed0c 9e6b * * * * * 9e6b -18668 * * * * * * * ed0d f0a7b4af,eeb48d d85fdd2f,ed0d 00027d2f,0000ed0d 9e6c * * * * * 9e6c -18669 * * * * * * * ed0e f0a486a3,eeb48e d850dda3,ed0e 000241a3,0000ed0e 9e6d * * * * * 9e6d -18670 * * * * * * * ed0f f0a7b5b3,eeb48f d85fdd73,ed0f 00027d73,0000ed0f 9e6e * * * * * 9e6e -18671 * * * * * * * ed10 f0a6bb90,eeb490 d85bded0,ed10 00026ed0,0000ed10 9e6f * * * * * 9e6f -18672 * * * * * * * ed11 f0a78ab6,eeb491 d85cdeb6,ed11 000272b6,0000ed11 9e70 * * * * * 9e70 -18673 * * * * * * * ed13 eeb493,f0a18799 d844ddd9,ed13 0000ed13,000211d9 9e72 * * * * * 9e72 -18674 * * * * * * * ed15 f0a3b3bc,eeb495 d84fdcfc,ed15 00023cfc,0000ed15 9e74 * * * * * 9e74 -18675 * * * * * * * ed16 f0aa9aa9,eeb496 d869dea9,ed16 0002a6a9,0000ed16 9e75 * * * * * 9e75 -18676 * * * * * * * ed17 f0a0baac,eeb497 d843deac,ed17 00020eac,0000ed17 9e76 * * * * * 9e76 -18677 * * * * * * * ed1a eeb49a,f0a1b2a2 d847dca2,ed1a 0000ed1a,00021ca2 9e79 * * * * * 9e79 -18678 * * * * * * * ed1c eeb49c,f0a4bf82 d853dfc2,ed1c 0000ed1c,00024fc2 9e7b * * * * * 9e7b -18679 * * * * * * * ed1e eeb49e,f0a0bfab d843dfeb,ed1e 0000ed1e,00020feb 9e7d * * * * * 9e7d -18680 * * * * * * * ed22 eeb4a2,f0a2b6a0 d84bdda0,ed22 0000ed22,00022da0 9ea3 * * * * * 9ea3 -18681 * * * * * * * ed26 f0a0bfac,eeb4a6 d843dfec,ed26 00020fec,0000ed26 9ea7 * * * * * 9ea7 -18682 * * * * * * * ed27 f0a0b88a,eeb4a7 d843de0a,ed27 00020e0a,0000ed27 9ea8 * * * * * 9ea8 -18683 * * * * * * * ed2a eeb4aa,f0a0bfad d843dfed,ed2a 0000ed2a,00020fed 9eab * * * * * 9eab -18684 * * * * * * * ed2d eeb4ad,f0a18687 d844dd87,ed2d 0000ed2d,00021187 9eae * * * * * 9eae -18685 * * * * * * * 4e1a e4b89a,eeb4b1 4e1a,ed31 00004e1a,0000ed31 9eb2 * * * * * 9eb2 -18686 * * * * * * * 4e04 e4b884,eeb4b2 4e04,ed32 00004e04,0000ed32 9eb3 * * * * * 9eb3 -18687 * * * * * * * 5b0d e5ac8d,eeb4b4 5b0d,ed34 00005b0d,0000ed34 9eb5 * * * * * 9eb5 -18688 * * * * * * * 36ac e39aac,eeb4b7 36ac,ed37 000036ac,0000ed37 9eb8 * * * * * 9eb8 -18689 * * * * * * * 537d e58dbd,eeb4b9 537d,ed39 0000537d,0000ed39 9eba * * * * * 9eba -18690 * * * * * * * 36a5 e39aa5,eeb4ba 36a5,ed3a 000036a5,0000ed3a 9ebb * * * * * 9ebb -18691 * * * * * * * 589a e5a29a,eeb4bc 589a,ed3c 0000589a,0000ed3c 9ebd * * * * * 9ebd -18692 * * * * * * * ed3d f0a4adae,eeb4bd d852df6e,ed3d 00024b6e,0000ed3d 9ebe * * * * * 9ebe -18693 * * * * * * * 57aa e59eaa,eeb580 57aa,ed40 000057aa,0000ed40 9ec1 * * * * * 9ec1 -18694 * * * * * * * ed41 f0a5aa95,eeb581 d856de95,ed41 00025a95,0000ed41 9ec2 * * * * * 9ec2 -18695 * * * * * * * ed42 f0a0a5b9,eeb582 d842dd79,ed42 00020979,0000ed42 9ec3 * * * * * 9ec3 -18696 * * * * * * * ed45 eeb585,f0a291a5 d849dc65,ed45 0000ed45,00022465 9ec6 * * * * * 9ec6 -18697 * * * * * * * ed4a f0a3b3be,eeb58a d84fdcfe,ed4a 00023cfe,0000ed4a 9ecb * * * * * 9ecb -18698 * * * * * * * ed4b f0a9bcb0,eeb58b d867df30,ed4b 00029f30,0000ed4b 9ecc * * * * * 9ecc -18699 * * * * * * * ed4d f0a4bea9,eeb58d d853dfa9,ed4d 00024fa9,0000ed4d 9ece * * * * * 9ece -18700 * * * * * * * ed4e f0a9969e,eeb58e d865dd9e,ed4e 0002959e,0000ed4e 9ecf * * * * * 9ecf -18701 * * * * * * * ed51 eeb591,f0a3b6b6 d84fddb6,ed51 0000ed51,00023db6 9ed2 * * * * * 9ed2 -18702 * * * * * * * ed53 f0a69eb3,eeb593 d859dfb3,ed53 000267b3,0000ed53 9ed4 * * * * * 9ed4 -18703 * * * * * * * ed54 f0a39ca0,eeb594 d84ddf20,ed54 00023720,0000ed54 9ed5 * * * * * 9ed5 -18704 * * * * * * * ed57 f0a3bbb7,eeb597 d84fdef7,ed57 00023ef7,0000ed57 9ed8 * * * * * 9ed8 -18705 * * * * * * * ed58 f0a3b8ac,eeb598 d84fde2c,ed58 00023e2c,0000ed58 9ed9 * * * * * 9ed9 -18706 * * * * * * * ed71 eeb5b1,f0a3839a d84cdcda,ed71 0000ed71,000230da 9ef2 * * * * * 9ef2 -18707 * * * * * * * ed75 f0a18aa9,eeb5b5 d844dea9,ed75 000212a9,0000ed75 9ef6 * * * * * 9ef6 -18708 * * * * * * * 57a7 e59ea7,eeb5b6 57a7,ed76 000057a7,0000ed76 9ef7 * * * * * 9ef7 -18709 * * * * * * * ed77 f0a4a5a3,eeb5b7 d852dd63,ed77 00024963,0000ed77 9ef8 * * * * * 9ef8 -18710 * * * * * * * ed7a eeb5ba,f0a782ae d85cdcae,ed7a 0000ed7a,000270ae 9efb * * * * * 9efb -18711 * * * * * * * ed81 eeb681,f0a19dac d845df6c,ed81 0000ed81,0002176c 9f43 * * * * * 9f43 -18712 * * * * * * * ed86 eeb686,f0a785a4 d85cdd64,ed86 0000ed86,00027164 9f48 * * * * * 9f48 -18713 * * * * * * * ed89 f0a6b4a2,eeb689 d85bdd22,ed89 00026d22,0000ed89 9f4b * * * * * 9f4b -18714 * * * * * * * ed8a f0a4aba2,eeb68a d852dee2,ed8a 00024ae2,0000ed8a 9f4c * * * * * 9f4c -18715 * * * * * * * 9c1b e9b09b,eeb6a5 9c1b,eda5 00009c1b,0000eda5 9f67 * * * * * 9f67 -18716 * * * * * * * eda6 f0a4a4be,eeb6a6 d852dd3e,eda6 0002493e,0000eda6 9f68 * * * * * 9f68 -18717 * * * * * * * 3e06 e3b886,eeb6ae 3e06,edae 00003e06,0000edae 9f70 * * * * * 9f70 -18718 * * * * * * * edd1 eeb791,f0a6b4a3 d85bdd23,edd1 0000edd1,00026d23 9fb5 * * * * * 9fb5 -18719 * * * * * * * edd7 eeb797,f0a08fbc d840dffc,edd7 0000edd7,000203fc 9fbb * * * * * 9fbb -18720 * * * * * * * eddb eeb79b,f0a3b3bd d84fdcfd,eddb 0000eddb,00023cfd 9fbf * * * * * 9fbf -18721 * * * * * * * eddd eeb79d,f0a4a499 d852dd19,eddd 0000eddd,00024919 9fc1 * * * * * 9fc1 -18722 * * * * * * * * e59dba,eeb7a8 577a,ede8 0000577a,0000ede8 9fcc * * * * * 9fcc -18723 * * * * * * * 54da e5939a,eeb7b0 54da,edf0 000054da,0000edf0 9fd4 * * * * * 9fd4 -18724 * * * * * * * 717a e785ba,eeb880 717a,ee00 0000717a,0000ee00 9fe4 * * * * * 9fe4 -18725 * * * * * * * ee15 eeb895,f0a4a9b7 d852de77,ee15 0000ee15,00024a77 9ff9 * * * * * 9ff9 -18726 * * * * * * * ee1b eeb89b,f0a8a99a d862de5a,ee1b 0000ee1b,00028a5a a040 * * * * * a040 -18727 * * * * * * * ee22 eeb8a2,f0afa180 d87edc40,ee22 0000ee22,0002f840 a047 * * * * * a047 -18728 * * * * * * * ee30 eeb8b0,f0a1a0bb d846dc3b,ee30 0000ee30,0002183b a055 * * * * * a055 -18729 * * * * * * * ee48 eeb988,f0a68599 d858dd59,ee48 0000ee48,00026159 a06d * * * * * a06d -18730 * * * * * * * ee56 eeb996,f0a38fb5 d84cdff5,ee56 0000ee56,000233f5 a07b * * * * * a07b -18731 * * * * * * * ee5b eeb99b,f0a8af82 d862dfc2,ee5b 0000ee5b,00028bc2 a0a2 * * * * * a0a2 -18732 * * * * * * * ee60 eeb9a0,f0a1b586 d847dd46,ee60 0000ee60,00021d46 a0a7 * * * * * a0a7 -18733 * * * * * * * ee7e eeb9be,f0a6bb91 d85bded1,ee7e 0000ee7e,00026ed1 a0c5 * * * * * a0c5 -18734 * * * * * * * 3635 e398b5,eeba89 3635,ee89 00003635,0000ee89 a0d0 * * * * * a0d0 -18735 * * * * * * * ee9c eeba9c,f0a8acad d862df2d,ee9c 0000ee9c,00028b2d a0e3 * * * * * a0e3 -18736 * * * * * * * 5220 e588a0,eebaa0 5220,eea0 00005220,0000eea0 a0e7 * * * * * a0e7 -18737 * * * * * * * eea1 e3b098,eebaa1 3c18,eea1 00003c18,0000eea1 a0e8 * * * * * a0e8 -18738 * * * * * * * eea2 f0a3b387,eebaa2 d84fdcc7,eea2 00023cc7,0000eea2 a0e9 * * * * * a0e9 -18739 * * * * * * * eea3 f0a5bb97,eebaa3 d857ded7,eea3 00025ed7,0000eea3 a0ea * * * * * a0ea -18740 * * * * * * * eea4 f0a79996,eebaa4 d85dde56,eea4 00027656,0000eea4 a0eb * * * * * a0eb -18741 * * * * * * * eea5 f0a594b1,eebaa5 d855dd31,eea5 00025531,0000eea5 a0ec * * * * * a0ec -18742 * * * * * * * eea6 f0a1a584,eebaa6 d846dd44,eea6 00021944,0000eea6 a0ed * * * * * a0ed -18743 * * * * * * * eea8 f0a9a483,eebaa8 d866dd03,eea8 00029903,0000eea8 a0ef * * * * * a0ef -18744 * * * * * * * eea9 f0a6b79c,eebaa9 d85bdddc,eea9 00026ddc,0000eea9 a0f0 * * * * * a0f0 -18745 * * * * * * * eeaa f0a782ad,eebaaa d85cdcad,eeaa 000270ad,0000eeaa a0f1 * * * * * a0f1 -18746 * * * * * * * eeac f0a686ad,eebaac d858ddad,eeac 000261ad,0000eeac a0f3 * * * * * a0f3 -18747 * * * * * * * eead f0a8a88f,eebaad d862de0f,eead 00028a0f,0000eead a0f4 * * * * * a0f4 -18748 * * * * * * * eeae f0a399b7,eebaae d84dde77,eeae 00023677,0000eeae a0f5 * * * * * a0f5 -18749 * * * * * * * eeaf f0a083ae,eebaaf d840dcee,eeaf 000200ee,0000eeaf a0f6 * * * * * a0f6 -18750 * * * * * * * eeb0 f0a6a186,eebab0 d85adc46,eeb0 00026846,0000eeb0 a0f7 * * * * * a0f7 -18751 * * * * * * * eeb1 f0a4bc8e,eebab1 d853df0e,eeb1 00024f0e,0000eeb1 a0f8 * * * * * a0f8 -18752 * * * * * * * 4562 e495a2,eebab2 4562,eeb2 00004562,0000eeb2 a0f9 * * * * * a0f9 -18753 * * * * * * * 5b1f e5ac9f,eebab3 5b1f,eeb3 00005b1f,0000eeb3 a0fa * * * * * a0fa -18754 * * * * * * * eeb4 f0a68d8c,eebab4 d858df4c,eeb4 0002634c,0000eeb4 a0fb * * * * * a0fb -18755 * * * * * * * 9f50 e9bd90,eebab5 9f50,eeb5 00009f50,0000eeb5 a0fc * * * * * a0fc -18756 * * * * * * * 9ea6 e9baa6,eebab6 9ea6,eeb6 00009ea6,0000eeb6 a0fd * * * * * a0fd -18757 * * * * * * * eeb7 f0a689ab,eebab7 d858de6b,eeb7 0002626b,0000eeb7 a0fe * * * * * a0fe -18758 * * * * * * * * e587a2,ee8187 51e2,e047 000051e2,0000e047 faa9 * * * * * faa9 -18759 * * * * * * * 5342 e58d82,ee8188 5342,e048 00005342,0000e048 faaa * * * * * faaa -18760 * * * * * * * 66ad e69aad,ee82b0 66ad,e0b0 000066ad,0000e0b0 fb53 * * * * * fb53 -18761 * * * * * * * 585c e5a19c,ee838b 585c,e0cb 0000585c,0000e0cb fb6e * * * * * fb6e -18762 * * * * * * * * e59593,ee839e 5553,e0de 00005553,0000e0de fba3 * * * * * fba3 -18763 * * * * * * * 3d85 e3b685,ee83ba 3d85,e0fa 00003d85,0000e0fa fbbf * * * * * fbbf -18764 * * * * * * * 6160 e685a0,ee8488 6160,e108 00006160,0000e108 fbcd * * * * * fbcd -18765 * * * * * * * 48ae e4a2ae,ee8584 48ae,e144 000048ae,0000e144 fc4a * * * * * fc4a -18766 * * * * * * * 97bd e99ebd,ee858c 97bd,e14c 000097bd,0000e14c fc52 * * * * * fc52 -18767 * * * * * * * e15d ee859d,f0a1a1b7 d846dc77,e15d 0000e15d,00021877 fc63 * * * * * fc63 -18768 * * * * * * * * e682b3,ee85a7 60b3,e167 000060b3,0000e167 fc6d * * * * * fc6d -18769 * * * * * * * 8424 e890a4,ee85af 8424,e16f 00008424,0000e16f fc75 * * * * * fc75 -18770 * * * * * * * 9814 e9a094,ee8694 9814,e194 00009814,0000e194 fcbc * * * * * fcbc -18771 * * * * * * * e195 f0a4828c,ee8695 d850dc8c,e195 0002408c,0000e195 fcbd * * * * * fcbd -18772 * * * * * * * e1a4 ee86a4,f0a381be d84cdc7e,e1a4 0000e1a4,0002307e fccc * * * * * fccc -18773 * * * * * * * e1bb ee86bb,f0a1b8bd d847de3d,e1bb 0000e1bb,00021e3d fce3 * * * * * fce3 -18774 * * * * * * * 3b2b e3acab,ee8786 3b2b,e1c6 00003b2b,0000e1c6 fcee * * * * * fcee -18775 * * * * * * * 3d32 e3b4b2,ee87a0 3d32,e1e0 00003d32,0000e1e0 fd49 * * * * * fd49 -18776 * * * * * * * e201 ee8881,f0a08eb5 d840dfb5,e201 0000e201,000203b5 fd6a * * * * * fd6a -18777 * * * * * * * 7081 e78281,ee8998 7081,e258 00007081,0000e258 fde3 * * * * * fde3 -18778 * * * * * * * 5c9c e5b29c,ee89a7 5c9c,e267 00005c9c,0000e267 fdf2 * * * * * fdf2 -18779 * * * * * * * e2a1 ee8aa1,f0a09783 d841ddc3,e2a1 0000e2a1,000205c3 fe6d * * * * * fe6d -18780 * * * * * * * 3730 e39cb0,ee8aac 3730,e2ac 00003730,0000e2ac fe78 * * * * * fe78 -18781 * * * * * * * e2f0 f0a18db6,ee8bb0 d844df76,e2f0 00021376,0000e2f0 fede * * * * * fede -18782 * * * * * * * e2f1 f0a4a892,ee8bb1 d852de12,e2f1 00024a12,0000e2f1 fedf * * * * * fedf -18783 * * * * * * * e2ff ee8bbf,f0a8acab d862df2b,e2ff 0000e2ff,00028b2b feed * * * * * feed -18784 * * * * * * * e300 ee8c80,f0a68283 d858dc83,e300 0000e300,00026083 feee * * * * * feee -18785 * * * * * * * 0100 c480,ef8c99 0100,f319 00000100,0000f319 8856 * * * * * 8856 -18786 * * * * * * * 00c1 c381,ef8c9a 00c1,f31a 000000c1,0000f31a 8857 * * * * * 8857 -18787 * * * * * * * 01cd c78d,ef8c9b 01cd,f31b 000001cd,0000f31b 8858 * * * * * 8858 -18788 * * * * * * * 00c0 c380,ef8c9c 00c0,f31c 000000c0,0000f31c 8859 * * * * * 8859 -18789 * * * * * * * 0112 c492,ef8c9d 0112,f31d 00000112,0000f31d 885a * * * * * 885a -18790 * * * * * * * 00c9 c389,ef8c9e 00c9,f31e 000000c9,0000f31e 885b * * * * * 885b -18791 * * * * * * * 011a c49a,ef8c9f 011a,f31f 0000011a,0000f31f 885c * * * * * 885c -18792 * * * * * * * 00c8 c388,ef8ca0 00c8,f320 000000c8,0000f320 885d * * * * * 885d -18793 * * * * * * * 014c c58c,ef8ca1 014c,f321 0000014c,0000f321 885e * * * * * 885e -18794 * * * * * * * 00d3 c393,ef8ca2 00d3,f322 000000d3,0000f322 885f * * * * * 885f -18795 * * * * * * * 01d1 c791,ef8ca3 01d1,f323 000001d1,0000f323 8860 * * * * * 8860 -18796 * * * * * * * 00d2 c392,ef8ca4 00d2,f324 000000d2,0000f324 8861 * * * * * 8861 -18797 * * * * * * * f325 ef8ca5 f325 0000f325 8862 * * * * * 8862 -18798 * * * * * * * 1ebe e1babe,ef8ca6 1ebe,f326 00001ebe,0000f326 8863 * * * * * 8863 -18799 * * * * * * * f327 ef8ca7 f327 0000f327 8864 * * * * * 8864 -18800 * * * * * * * 1ec0 e1bb80,ef8ca8 1ec0,f328 00001ec0,0000f328 8865 * * * * * 8865 -18801 * * * * * * * 00ca c38a,ef8ca9 00ca,f329 000000ca,0000f329 8866 * * * * * 8866 -18802 * * * * * * * 0101 c481,ef8caa 0101,f32a 00000101,0000f32a 8867 * * * * * 8867 -18803 * * * * * * * 00e1 c3a1,ef8cab 00e1,f32b 000000e1,0000f32b 8868 * * * * * 8868 -18804 * * * * * * * 01ce c78e,ef8cac 01ce,f32c 000001ce,0000f32c 8869 * * * * * 8869 -18805 * * * * * * * 00e0 c3a0,ef8cad 00e0,f32d 000000e0,0000f32d 886a * * * * * 886a -18806 * * * * * * * 0251 c991,ef8cae 0251,f32e 00000251,0000f32e 886b * * * * * 886b -18807 * * * * * * * 0113 c493,ef8caf 0113,f32f 00000113,0000f32f 886c * * * * * 886c -18808 * * * * * * * 00e9 c3a9,ef8cb0 00e9,f330 000000e9,0000f330 886d * * * * * 886d -18809 * * * * * * * 011b c49b,ef8cb1 011b,f331 0000011b,0000f331 886e * * * * * 886e -18810 * * * * * * * 00e8 c3a8,ef8cb2 00e8,f332 000000e8,0000f332 886f * * * * * 886f -18811 * * * * * * * 012b c4ab,ef8cb3 012b,f333 0000012b,0000f333 8870 * * * * * 8870 -18812 * * * * * * * 00ed c3ad,ef8cb4 00ed,f334 000000ed,0000f334 8871 * * * * * 8871 -18813 * * * * * * * 01d0 c790,ef8cb5 01d0,f335 000001d0,0000f335 8872 * * * * * 8872 -18814 * * * * * * * 00ec c3ac,ef8cb6 00ec,f336 000000ec,0000f336 8873 * * * * * 8873 -18815 * * * * * * * 014d c58d,ef8cb7 014d,f337 0000014d,0000f337 8874 * * * * * 8874 -18816 * * * * * * * 00f3 c3b3,ef8cb8 00f3,f338 000000f3,0000f338 8875 * * * * * 8875 -18817 * * * * * * * 01d2 c792,ef8cb9 01d2,f339 000001d2,0000f339 8876 * * * * * 8876 -18818 * * * * * * * 00f2 c3b2,ef8cba 00f2,f33a 000000f2,0000f33a 8877 * * * * * 8877 -18819 * * * * * * * 016b c5ab,ef8cbb 016b,f33b 0000016b,0000f33b 8878 * * * * * 8878 -18820 * * * * * * * 00fa c3ba,ef8cbc 00fa,f33c 000000fa,0000f33c 8879 * * * * * 8879 -18821 * * * * * * * 01d4 c794,ef8cbd 01d4,f33d 000001d4,0000f33d 887a * * * * * 887a -18822 * * * * * * * 00f9 c3b9,ef8cbe 00f9,f33e 000000f9,0000f33e 887b * * * * * 887b -18823 * * * * * * * 01d6 c796,ef8cbf 01d6,f33f 000001d6,0000f33f 887c * * * * * 887c -18824 * * * * * * * 01d8 c798,ef8d80 01d8,f340 000001d8,0000f340 887d * * * * * 887d -18825 * * * * * * * 01da c79a,ef8d81 01da,f341 000001da,0000f341 887e * * * * * 887e -18826 * * * * * * * 01dc c79c,ef8d82 01dc,f342 000001dc,0000f342 88a1 * * * * * 88a1 -18827 * * * * * * * 00fc c3bc,ef8d83 00fc,f343 000000fc,0000f343 88a2 * * * * * 88a2 -18828 * * * * * * * f344 ef8d84 f344 0000f344 88a3 * * * * * 88a3 -18829 * * * * * * * 1ebf e1babf,ef8d85 1ebf,f345 00001ebf,0000f345 88a4 * * * * * 88a4 -18830 * * * * * * * f346 ef8d86 f346 0000f346 88a5 * * * * * 88a5 -18831 * * * * * * * 1ec1 e1bb81,ef8d87 1ec1,f347 00001ec1,0000f347 88a6 * * * * * 88a6 -18832 * * * * * * * 00ea c3aa,ef8d88 00ea,f348 000000ea,0000f348 88a7 * * * * * 88a7 -18833 * * * * * * * 0261 c9a1,ef8d89 0261,f349 00000261,0000f349 88a8 * * * * * 88a8 -18834 * * * * * * * 0283 ca83,efa0bf 0283,f83f 00000283,0000f83f c8f5 * * * * * c8f5 -18835 * * * * * * * 0250 c990,efa180 0250,f840 00000250,0000f840 c8f6 * * * * * c8f6 -18836 * * * * * * * 025b c99b,efa181 025b,f841 0000025b,0000f841 c8f7 * * * * * c8f7 -18837 * * * * * * * 0254 c994,efa182 0254,f842 00000254,0000f842 c8f8 * * * * * c8f8 -18838 * * * * * * * 0275 c9b5,efa183 0275,f843 00000275,0000f843 c8f9 * * * * * c8f9 -18839 * * * * * * * 0153 c593,efa184 0153,f844 00000153,0000f844 c8fa * * * * * c8fa -18840 * * * * * * * 00f8 c3b8,efa185 00f8,f845 000000f8,0000f845 c8fb * * * * * c8fb -18841 * * * * * * * 014b c58b,efa186 014b,f846 0000014b,0000f846 c8fc * * * * * c8fc -18842 * * * * * * * 028a ca8a,efa187 028a,f847 0000028a,0000f847 c8fd * * * * * c8fd -18843 * * * * * * * 026a c9aa,efa188 026a,f848 0000026a,0000f848 c8fe * * * * * c8fe -18844 * * * * * * * f34a e28f9a,ef8d8a 23da,f34a 000023da,0000f34a 88a9 * * * * * 88a9 -18845 * * * * * * * f34b e28f9b,ef8d8b 23db,f34b 000023db,0000f34b 88aa * * * * * 88aa -18846 * * * * * * * * e2ba9d,efa0aa 2e9d,f82a 00002e9d,0000f82a c8e0 * * * * * c8e0 -18847 * * * * * * * * e2bb86,efa0b3 2ec6,f833 00002ec6,0000f833 c8e9 * * * * * c8e9 -18848 * * * * * * * * e2bba3,efa0bb 2ee3,f83b 00002ee3,0000f83b c8f1 * * * * * c8f1 -18849 * * * * * * * * e580bb 503b 0000503b 8c40 * * * * * 8c40 -18850 * * * * * * * * e6b7be 6dfe 00006dfe 8c41 * * * * * 8c41 -18851 * * * * * * * * f0a9b1b3,ef95b9 d867dc73,f579 00029c73,0000f579 8c42 * * * * * 8c42 -18852 * * * * * * * * e9bea6,ef95ba 9fa6,f57a 00009fa6,0000f57a 8c43 * * * * * 8c43 -18853 * * * * * * * * e3b789,ef95bb 3dc9,f57b 00003dc9,0000f57b 8c44 * * * * * 8c44 -18854 * * * * * * * * e8a28f 888f 0000888f 8c45 * * * * * 8c45 -18855 * * * * * * * * ef95bd,f0a4858e d850dd4e,f57d 0000f57d,0002414e 8c46 * * * * * 8c46 -18856 * * * * * * * * e781b7 7077 00007077 8c47 * * * * * 8c47 -18857 * * * * * * * * e5b3b5 5cf5 00005cf5 8c48 * * * * * 8c48 -18858 * * * * * * * * e4aca0,ef9680 4b20,f580 00004b20,0000f580 8c49 * * * * * 8c49 -18859 * * * * * * * * f0a5878d,ef9681 d854ddcd,f581 000251cd,0000f581 8c4a * * * * * 8c4a -18860 * * * * * * * * e39599,ef9682 3559,f582 00003559,0000f582 8c4b * * * * * 8c4b -18861 * * * * * * * * f0a5b4b0,ef9683 d857dd30,f583 00025d30,0000f583 8c4c * * * * * 8c4c -18862 * * * * * * * * e684a2 6122 00006122 8c4d * * * * * 8c4d -18863 * * * * * * * * ef9685,f0a8a8b2 d862de32,f585 0000f585,00028a32 8c4e * * * * * 8c4e -18864 * * * * * * * * e8bea7 8fa7 00008fa7 8c4f * * * * * 8c4f -18865 * * * * * * * * e987b6 91f6 000091f6 8c50 * * * * * 8c50 -18866 * * * * * * * * e78691 7191 00007191 8c51 * * * * * 8c51 -18867 * * * * * * * * e69c99 6719 00006719 8c52 * * * * * 8c52 -18868 * * * * * * * * e78eba 73ba 000073ba 8c53 * * * * * 8c53 -18869 * * * * * * * * f0a38a81,ef968b d84cde81,f58b 00023281,0000f58b 8c54 * * * * * 8c54 -18870 * * * * * * * * f0aa8487,ef968c d868dd07,f58c 0002a107,0000f58c 8c55 * * * * * 8c55 -18871 * * * * * * * * e3b28b,ef968d 3c8b,f58d 00003c8b,0000f58d 8c56 * * * * * 8c56 -18872 * * * * * * * * f0a1a680,ef968e d846dd80,f58e 00021980,0000f58e 8c57 * * * * * 8c57 -18873 * * * * * * * * e4ac90,ef968f 4b10,f58f 00004b10,0000f58f 8c58 * * * * * 8c58 -18874 * * * * * * * * e7a3a4 78e4 000078e4 8c59 * * * * * 8c59 -18875 * * * * * * * * e79082 7402 00007402 8c5a * * * * * 8c5a -18876 * * * * * * * * e586ae 51ae 000051ae 8c5b * * * * * 8c5b -18877 * * * * * * * * f0a89c8f,ef9693 d861df0f,f593 0002870f,0000f593 8c5c * * * * * 8c5c -18878 * * * * * * * * e48089,ef9694 4009,f594 00004009,0000f594 8c5d * * * * * 8c5d -18879 * * * * * * * * e6a9a3 6a63 00006a63 8c5e * * * * * 8c5e -18880 * * * * * * * * f0aa8aba,ef9696 d868deba,f596 0002a2ba,0000f596 8c5f * * * * * 8c5f -18881 * * * * * * * * e488a3,ef9697 4223,f597 00004223,0000f597 8c60 * * * * * 8c60 -18882 * * * * * * * * e8988f 860f 0000860f 8c61 * * * * * 8c61 -18883 * * * * * * * * e7a8aa 7a2a 00007a2a 8c63 * * * * * 8c63 -18884 * * * * * * * * f0a9a587,ef969b d866dd47,f59b 00029947,0000f59b 8c64 * * * * * 8c64 -18885 * * * * * * * * f0a8abaa,ef969c d862deea,f59c 00028aea,0000f59c 8c65 * * * * * 8c65 -18886 * * * * * * * * e99d95 9755 00009755 8c66 * * * * * 8c66 -18887 * * * * * * * * e7818d 704d 0000704d 8c67 * * * * * 8c67 -18888 * * * * * * * * e58ca4 5324 00005324 8c68 * * * * * 8c68 -18889 * * * * * * * * ef96a0,f0a281be d848dc7e,f5a0 0000f5a0,0002207e 8c69 * * * * * 8c69 -18890 * * * * * * * * e98fb4 93f4 000093f4 8c6a * * * * * 8c6a -18891 * * * * * * * * e79b99 76d9 000076d9 8c6b * * * * * 8c6b -18892 * * * * * * * * f0a8a7a3,ef96a3 d862dde3,f5a3 000289e3,0000f5a3 8c6c * * * * * 8c6c -18893 * * * * * * * * e9bea7,ef96a4 9fa7,f5a4 00009fa7,0000f5a4 8c6d * * * * * 8c6d -18894 * * * * * * * * e79f9d 77dd 000077dd 8c6e * * * * * 8c6e -18895 * * * * * * * * e4baa3 4ea3 00004ea3 8c6f * * * * * 8c6f -18896 * * * * * * * * e4bfb0 4ff0 00004ff0 8c70 * * * * * 8c70 -18897 * * * * * * * * e582bc 50bc 000050bc 8c71 * * * * * 8c71 -18898 * * * * * * * * e4b8af 4e2f 00004e2f 8c72 * * * * * 8c72 -18899 * * * * * * * * e4bc97 4f17 00004f17 8c73 * * * * * 8c73 -18900 * * * * * * * * e9bea8,ef96ab 9fa8,f5ab 00009fa8,0000f5ab 8c74 * * * * * 8c74 -18901 * * * * * * * * e590b4 5434 00005434 8c75 * * * * * 8c75 -18902 * * * * * * * * e7b68b 7d8b 00007d8b 8c76 * * * * * 8c76 -18903 * * * * * * * * e5a292 5892 00005892 8c77 * * * * * 8c77 -18904 * * * * * * * * e5a390 58d0 000058d0 8c78 * * * * * 8c78 -18905 * * * * * * * * ef96b0,f0a1b6b6 d847ddb6,f5b0 0000f5b0,00021db6 8c79 * * * * * 8c79 -18906 * * * * * * * * e5ba92 5e92 00005e92 8c7a * * * * * 8c7a -18907 * * * * * * * * e5ba99 5e99 00005e99 8c7b * * * * * 8c7b -18908 * * * * * * * * e5bf82 5fc2 00005fc2 8c7c * * * * * 8c7c -18909 * * * * * * * * ef96b4,f0a29c92 d849df12,f5b4 0000f5b4,00022712 8c7d * * * * * 8c7d -18910 * * * * * * * * e6968b 658b 0000658b 8c7e * * * * * 8c7e -18911 * * * * * * * * ef96b6,f0a38fb9 d84cdff9,f5b6 0000f5b6,000233f9 8ca1 * * * * * 8ca1 -18912 * * * * * * * * e6a499 6919 00006919 8ca2 * * * * * 8ca2 -18913 * * * * * * * * e6a983 6a43 00006a43 8ca3 * * * * * 8ca3 -18914 * * * * * * * * ef96b9,f0a3b1a3 d84fdc63,f5b9 0000f5b9,00023c63 8ca4 * * * * * 8ca4 -18915 * * * * * * * * e6b3bf 6cff 00006cff 8ca5 * * * * * 8ca5 -18916 * * * * * * * * e78880 7200 00007200 8ca7 * * * * * 8ca7 -18917 * * * * * * * * ef96bd,f0a49485 d851dd05,f5bd 0000f5bd,00024505 8ca8 * * * * * 8ca8 -18918 * * * * * * * * e78e8c 738c 0000738c 8ca9 * * * * * 8ca9 -18919 * * * * * * * * e3bb9b,ef96bf 3edb,f5bf 00003edb,0000f5bf 8caa * * * * * 8caa -18920 * * * * * * * * ef9780,f0a4a893 d852de13,f5c0 00024a13,0000f5c0 8cab * * * * * 8cab -18921 * * * * * * * * e5ac95 5b15 00005b15 8cac * * * * * 8cac -18922 * * * * * * * * e792b9 74b9 000074b9 8cad * * * * * 8cad -18923 * * * * * * * * e8ae83 8b83 00008b83 8cae * * * * * 8cae -18924 * * * * * * * * f0a5b2a4,ef9784 d857dca4,f5c4 00025ca4,0000f5c4 8caf * * * * * 8caf -18925 * * * * * * * * f0a59a95,ef9785 d855de95,f5c5 00025695,0000f5c5 8cb0 * * * * * 8cb0 -18926 * * * * * * * * e7aa93 7a93 00007a93 8cb1 * * * * * 8cb1 -18927 * * * * * * * * e7afac 7bec 00007bec 8cb2 * * * * * 8cb2 -18928 * * * * * * * * e7b383 7cc3 00007cc3 8cb3 * * * * * 8cb3 -18929 * * * * * * * * e7b9ac 7e6c 00007e6c 8cb4 * * * * * 8cb4 -18930 * * * * * * * * e88bb8 82f8 000082f8 8cb5 * * * * * 8cb5 -18931 * * * * * * * * e89697 8597 00008597 8cb6 * * * * * 8cb6 -18932 * * * * * * * * e9bea9,ef978c 9fa9,f5cc 00009fa9,0000f5cc 8cb7 * * * * * 8cb7 -18933 * * * * * * * * e8a290 8890 00008890 8cb8 * * * * * 8cb8 -18934 * * * * * * * * e9beaa,ef978e 9faa,f5ce 00009faa,0000f5ce 8cb9 * * * * * 8cb9 -18935 * * * * * * * * e8bab9 8eb9 00008eb9 8cba * * * * * 8cba -18936 * * * * * * * * e9beab,ef9790 9fab,f5d0 00009fab,0000f5d0 8cbb * * * * * 8cbb -18937 * * * * * * * * e8bf8f 8fcf 00008fcf 8cbc * * * * * 8cbc -18938 * * * * * * * * e8959f 855f 0000855f 8cbd * * * * * 8cbd -18939 * * * * * * * * e9a7a0 99e0 000099e0 8cbe * * * * * 8cbe -18940 * * * * * * * * e988a1 9221 00009221 8cbf * * * * * 8cbf -18941 * * * * * * * * e9beac,ef9795 9fac,f5d5 00009fac,0000f5d5 8cc0 * * * * * 8cc0 -18942 * * * * * * * * f0a8b6b9,ef9796 d863ddb9,f5d6 00028db9,0000f5d6 8cc1 * * * * * 8cc1 -18943 * * * * * * * * f0a190bf,ef9797 d845dc3f,f5d7 0002143f,0000f5d7 8cc2 * * * * * 8cc2 -18944 * * * * * * * * e481b1,ef9798 4071,f5d8 00004071,0000f5d8 8cc3 * * * * * 8cc3 -18945 * * * * * * * * e48aa2,ef9799 42a2,f5d9 000042a2,0000f5d9 8cc4 * * * * * 8cc4 -18946 * * * * * * * * e5a89a 5a1a 00005a1a 8cc5 * * * * * 8cc5 -18947 * * * * * * * * e9a1a8 9868 00009868 8cc9 * * * * * 8cc9 -18948 * * * * * * * * e69dab 676b 0000676b 8cca * * * * * 8cca -18949 * * * * * * * * e489b6,ef97a0 4276,f5e0 00004276,0000f5e0 8ccb * * * * * 8ccb -18950 * * * * * * * * e59cbd 573d 0000573d 8ccc * * * * * 8ccc -18951 * * * * * * * * e89796 85d6 000085d6 8cce * * * * * 8cce -18952 * * * * * * * * ef97a4,f0a4a5bb d852dd7b,f5e4 0000f5e4,0002497b 8ccf * * * * * 8ccf -18953 * * * * * * * * e88abf 82bf 000082bf 8cd0 * * * * * 8cd0 -18954 * * * * * * * * f0a7848d,ef97a6 d85cdd0d,f5e6 0002710d,0000f5e6 8cd1 * * * * * 8cd1 -18955 * * * * * * * * e4b281,ef97a7 4c81,f5e7 00004c81,0000f5e7 8cd2 * * * * * 8cd2 -18956 * * * * * * * * f0a6b5b4,ef97a8 d85bdd74,f5e8 00026d74,0000f5e8 8cd3 * * * * * 8cd3 -18957 * * * * * * * * e5b5bb 5d7b 00005d7b 8cd4 * * * * * 8cd4 -18958 * * * * * * * * f0a6ac95,ef97aa d85adf15,f5ea 00026b15,0000f5ea 8cd5 * * * * * 8cd5 -18959 * * * * * * * * f0a6bebe,ef97ab d85bdfbe,f5eb 00026fbe,0000f5eb 8cd6 * * * * * 8cd6 -18960 * * * * * * * * e9bead,ef97ac 9fad,f5ec 00009fad,0000f5ec 8cd7 * * * * * 8cd7 -18961 * * * * * * * * e9beae,ef97ad 9fae,f5ed 00009fae,0000f5ed 8cd8 * * * * * 8cd8 -18962 * * * * * * * * e5ae96 5b96 00005b96 8cd9 * * * * * 8cd9 -18963 * * * * * * * * e9beaf,ef97af 9faf,f5ef 00009faf,0000f5ef 8cda * * * * * 8cda -18964 * * * * * * * * e7b99b 7e5b 00007e5b 8cdc * * * * * 8cdc -18965 * * * * * * * * e48fb0 43f0 000043f0 8740 * * * * * 8740 -18966 * * * * * * * * e4b0b2 4c32 00004c32 8741 * * * * * 8741 -18967 * * * * * * * * e49883 4603 00004603 8742 * * * * * 8742 -18968 * * * * * * * * e496a6 45a6 000045a6 8743 * * * * * 8743 -18969 * * * * * * * * e495b8 4578 00004578 8744 * * * * * 8744 -18970 * * * * * * * * f0a789a7 d85cde67 00027267 8745 * * * * * 8745 -18971 * * * * * * * * e4b5b7 4d77 00004d77 8746 * * * * * 8746 -18972 * * * * * * * * e496b3 45b3 000045b3 8747 * * * * * 8747 -18973 * * * * * * * * f0a7b2b1 d85fdcb1 00027cb1 8748 * * * * * 8748 -18974 * * * * * * * * e4b3a2 4ce2 00004ce2 8749 * * * * * 8749 -18975 * * * * * * * * f0a7b385 d85fdcc5 00027cc5 874a * * * * * 874a -18976 * * * * * * * * e3ae95 3b95 00003b95 874b * * * * * 874b -18977 * * * * * * * * e49cb6 4736 00004736 874c * * * * * 874c -18978 * * * * * * * * e49d84 4744 00004744 874d * * * * * 874d -18979 * * * * * * * * e4b187 4c47 00004c47 874e * * * * * 874e -18980 * * * * * * * * e4b180 4c40 00004c40 874f * * * * * 874f -18981 * * * * * * * * f0a48abf d850debf 000242bf 8750 * * * * * 8750 -18982 * * * * * * * * f0a39897 d84dde17 00023617 8751 * * * * * 8751 -18983 * * * * * * * * f0a78d92 d85cdf52 00027352 8752 * * * * * 8752 -18984 * * * * * * * * f0a6ba8b d85bde8b 00026e8b 8753 * * * * * 8753 -18985 * * * * * * * * f0a78392 d85cdcd2 000270d2 8754 * * * * * 8754 -18986 * * * * * * * * e4b197 4c57 00004c57 8755 * * * * * 8755 -18987 * * * * * * * * f0aa8d91 d868df51 0002a351 8756 * * * * * 8756 -18988 * * * * * * * * e49d8f 474f 0000474f 8757 * * * * * 8757 -18989 * * * * * * * * e4979a 45da 000045da 8758 * * * * * 8758 -18990 * * * * * * * * e4b285 4c85 00004c85 8759 * * * * * 8759 -18991 * * * * * * * * f0a7b1ac d85fdc6c 00027c6c 875a * * * * * 875a -18992 * * * * * * * * e4b487 4d07 00004d07 875b * * * * * 875b -18993 * * * * * * * * e4aaa4 4aa4 00004aa4 875c * * * * * 875c -18994 * * * * * * * * e49aa1 46a1 000046a1 875d * * * * * 875d -18995 * * * * * * * * f0a6aca3 d85adf23 00026b23 875e * * * * * 875e -18996 * * * * * * * * e788a5 7225 00007225 875f * * * * * 875f -18997 * * * * * * * * f0a5a994 d856de54 00025a54 8760 * * * * * 8760 -18998 * * * * * * * * f0a1a9a3 d846de63 00021a63 8761 * * * * * 8761 -18999 * * * * * * * * f0a3b886 d84fde06 00023e06 8762 * * * * * 8762 -19000 * * * * * * * * f0a3bda1 d84fdf61 00023f61 8763 * * * * * 8763 -19001 * * * * * * * * e6998d 664d 0000664d 8764 * * * * * 8764 -19002 * * * * * * * * e59bbb 56fb 000056fb 8765 * * * * * 8765 -19003 * * * * * * * * e7b695 7d95 00007d95 8767 * * * * * 8767 -19004 * * * * * * * * e5a49d 591d 0000591d 8768 * * * * * 8768 -19005 * * * * * * * * f0a8aeb9 d862dfb9 00028bb9 8769 * * * * * 8769 -19006 * * * * * * * * e3b7b4 3df4 00003df4 876a * * * * * 876a -19007 * * * * * * * * e99cb4 9734 00009734 876b * * * * * 876b -19008 * * * * * * * * f0a7afaf d85edfef 00027bef 876c * * * * * 876c -19009 * * * * * * * * e5af9b 5bdb 00005bdb 876d * * * * * 876d -19010 * * * * * * * * f0a1b59e d847dd5e 00021d5e 876e * * * * * 876e -19011 * * * * * * * * e5aaa4 5aa4 00005aa4 876f * * * * * 876f -19012 * * * * * * * * e398a5 3625 00003625 8770 * * * * * 8770 -19013 * * * * * * * * f0a9bab0 d867deb0 00029eb0 8771 * * * * * 8771 -19014 * * * * * * * * e5ab91 5ad1 00005ad1 8772 * * * * * 8772 -19015 * * * * * * * * e5aeb7 5bb7 00005bb7 8773 * * * * * 8773 -19016 * * * * * * * * e5b3bc 5cfc 00005cfc 8774 * * * * * 8774 -19017 * * * * * * * * e69dae 676e 0000676e 8775 * * * * * 8775 -19018 * * * * * * * * e89693 8593 00008593 8776 * * * * * 8776 -19019 * * * * * * * * f0a9a585 d866dd45 00029945 8777 * * * * * 8777 -19020 * * * * * * * * e791a1 7461 00007461 8778 * * * * * 8778 -19021 * * * * * * * * e7929d 749d 0000749d 8779 * * * * * 8779 -19022 * * * * * * * * f0a0a9af d842de6f 00020a6f 8c62 * * * * * 8c62 -19023 * * * * * * * * e69ba7 66e7 000066e7 8cdb * * * * * 8cdb -19024 * * * * * * * * e6b997 6e57 00006e57 8cdd * * * * * 8cdd -19025 * * * * * * * * e7a78a 79ca 000079ca 8cde * * * * * 8cde -19026 * * * * * * * * e3b688 3d88 00003d88 8cdf * * * * * 8cdf -19027 * * * * * * * * e49383 44c3 000044c3 8ce0 * * * * * 8ce0 -19028 * * * * * * * * f0a38996 d84cde56 00023256 8ce1 * * * * * 8ce1 -19029 * * * * * * * * f0a29e96 d849df96 00022796 8ce2 * * * * * 8ce2 -19030 * * * * * * * * e48e9a 439a 0000439a 8ce3 * * * * * 8ce3 -19031 * * * * * * * * e494b6 4536 00004536 8ce4 * * * * * 8ce4 -19032 * * * * * * * * e5b395 5cd5 00005cd5 8ce6 * * * * * 8ce6 -19033 * * * * * * * * f0a3ac9a d84edf1a 00023b1a 8ce7 * * * * * 8ce7 -19034 * * * * * * * * e8abb9 8af9 00008af9 8ce8 * * * * * 8ce8 -19035 * * * * * * * * e5b1b8 5c78 00005c78 8ce9 * * * * * 8ce9 -19036 * * * * * * * * e3b492 3d12 00003d12 8cea * * * * * 8cea -19037 * * * * * * * * f0a39591 d84ddd51 00023551 8ceb * * * * * 8ceb -19038 * * * * * * * * e5b5b8 5d78 00005d78 8cec * * * * * 8cec -19039 * * * * * * * * e9beb2 9fb2 00009fb2 8ced * * * * * 8ced -19040 * * * * * * * * e78597 7157 00007157 8cee * * * * * 8cee -19041 * * * * * * * * e49598 4558 00004558 8cef * * * * * 8cef -19042 * * * * * * * * f0a483ac d850dcec 000240ec 8cf0 * * * * * 8cf0 -19043 * * * * * * * * f0a1b8a3 d847de23 00021e23 8cf1 * * * * * 8cf1 -19044 * * * * * * * * e4b1b7 4c77 00004c77 8cf2 * * * * * 8cf2 -19045 * * * * * * * * e3a5b8 3978 00003978 8cf3 * * * * * 8cf3 -19046 * * * * * * * * e3918a 344a 0000344a 8cf4 * * * * * 8cf4 -19047 * * * * * * * * f0a086a4 d840dda4 000201a4 8cf5 * * * * * 8cf5 -19048 * * * * * * * * f0a6b181 d85bdc41 00026c41 8cf6 * * * * * 8cf6 -19049 * * * * * * * * e8ab8c 8acc 00008acc 8cf7 * * * * * 8cf7 -19050 * * * * * * * * e4beb4 4fb4 00004fb4 8cf8 * * * * * 8cf8 -19051 * * * * * * * * f0a088b9 d840de39 00020239 8cf9 * * * * * 8cf9 -19052 * * * * * * * * e5a6bf 59bf 000059bf 8cfa * * * * * 8cfa -19053 * * * * * * * * e885ac 816c 0000816c 8cfb * * * * * 8cfb -19054 * * * * * * * * e9a196 9856 00009856 8cfc * * * * * 8cfc -19055 * * * * * * * * f0a9a3ba d866dcfa 000298fa 8cfd * * * * * 8cfd -19056 * * * * * * * * e5bcbb 5f3b 00005f3b 8cfe * * * * * 8cfe -19057 * * * * * * * * f0a0ae9f d842df9f 00020b9f 8d40 * * * * * 8d40 -19058 * * * * * * * * f0a28781 d848ddc1 000221c1 8d42 * * * * * 8d42 -19059 * * * * * * * * f0a8a5ad d862dd6d 0002896d 8d43 * * * * * 8d43 -19060 * * * * * * * * e48482 4102 00004102 8d44 * * * * * 8d44 -19061 * * * * * * * * e49abb 46bb 000046bb 8d45 * * * * * 8d45 -19062 * * * * * * * * f0a981b9 d864dc79 00029079 8d46 * * * * * 8d46 -19063 * * * * * * * * e3bc87 3f07 00003f07 8d47 * * * * * 8d47 -19064 * * * * * * * * e9beb3 9fb3 00009fb3 8d48 * * * * * 8d48 -19065 * * * * * * * * f0aa86b5 d868ddb5 0002a1b5 8d49 * * * * * 8d49 -19066 * * * * * * * * e483b8 40f8 000040f8 8d4a * * * * * 8d4a -19067 * * * * * * * * e39f96 37d6 000037d6 8d4b * * * * * 8d4b -19068 * * * * * * * * e49bb7 46f7 000046f7 8d4c * * * * * 8d4c -19069 * * * * * * * * f0a6b186 d85bdc46 00026c46 8d4d * * * * * 8d4d -19070 * * * * * * * * e485bc 417c 0000417c 8d4e * * * * * 8d4e -19071 * * * * * * * * f0a89ab2 d861deb2 000286b2 8d4f * * * * * 8d4f -19072 * * * * * * * * f0a78fbf d85cdfff 000273ff 8d50 * * * * * 8d50 -19073 * * * * * * * * e495ad 456d 0000456d 8d51 * * * * * 8d51 -19074 * * * * * * * * e3a394 38d4 000038d4 8d52 * * * * * 8d52 -19075 * * * * * * * * f0a5929a d855dc9a 0002549a 8d53 * * * * * 8d53 -19076 * * * * * * * * e495a1 4561 00004561 8d54 * * * * * 8d54 -19077 * * * * * * * * e4949b 451b 0000451b 8d55 * * * * * 8d55 -19078 * * * * * * * * e4b689 4d89 00004d89 8d56 * * * * * 8d56 -19079 * * * * * * * * e4b1bb 4c7b 00004c7b 8d57 * * * * * 8d57 -19080 * * * * * * * * e4b5b6 4d76 00004d76 8d58 * * * * * 8d58 -19081 * * * * * * * * e497aa 45ea 000045ea 8d59 * * * * * 8d59 -19082 * * * * * * * * e3bf88 3fc8 00003fc8 8d5a * * * * * 8d5a -19083 * * * * * * * * f0a4ac8f d852df0f 00024b0f 8d5b * * * * * 8d5b -19084 * * * * * * * * e399a1 3661 00003661 8d5c * * * * * 8d5c -19085 * * * * * * * * e4939e 44de 000044de 8d5d * * * * * 8d5d -19086 * * * * * * * * e492bd 44bd 000044bd 8d5e * * * * * 8d5e -19087 * * * * * * * * e487ad 41ed 000041ed 8d5f * * * * * 8d5f -19088 * * * * * * * * e3a1b5 3875 00003875 877a * * * * * 877a -19089 * * * * * * * * f0a1b593 d847dd53 00021d53 877b * * * * * 877b -19090 * * * * * * * * f0a39a9e d84dde9e 0002369e 877c * * * * * 877c -19091 * * * * * * * * f0a680a1 d858dc21 00026021 877d * * * * * 877d -19092 * * * * * * * * e3bbac 3eec 00003eec 877e * * * * * 877e -19093 * * * * * * * * f0a5a39e d856dcde 000258de 87a1 * * * * * 87a1 -19094 * * * * * * * * e3abb5 3af5 00003af5 87a2 * * * * * 87a2 -19095 * * * * * * * * e7abbc 7afc 00007afc 87a3 * * * * * 87a3 -19096 * * * * * * * * e9be97 9f97 00009f97 87a4 * * * * * 87a4 -19097 * * * * * * * * f0a485a1 d850dd61 00024161 87a5 * * * * * 87a5 -19098 * * * * * * * * f0a8a48d d862dd0d 0002890d 87a6 * * * * * 87a6 -19099 * * * * * * * * f0a387aa d84cddea 000231ea 87a7 * * * * * 87a7 -19100 * * * * * * * * f0a0aa8a d842de8a 00020a8a 87a8 * * * * * 87a8 -19101 * * * * * * * * f0a3899e d84cde5e 0002325e 87a9 * * * * * 87a9 -19102 * * * * * * * * e48c8a 430a 0000430a 87aa * * * * * 87aa -19103 * * * * * * * * e89284 8484 00008484 87ab * * * * * 87ab -19104 * * * * * * * * e9be96 9f96 00009f96 87ac * * * * * 87ac -19105 * * * * * * * * e990af 942f 0000942f 87ad * * * * * 87ad -19106 * * * * * * * * e4a4b0 4930 00004930 87ae * * * * * 87ae -19107 * * * * * * * * e89893 8613 00008613 87af * * * * * 87af -19108 * * * * * * * * e5a296 5896 00005896 87b0 * * * * * 87b0 -19109 * * * * * * * * e99d8a 974a 0000974a 87b1 * * * * * 87b1 -19110 * * * * * * * * e98898 9218 00009218 87b2 * * * * * 87b2 -19111 * * * * * * * * e7a790 79d0 000079d0 87b3 * * * * * 87b3 -19112 * * * * * * * * e7a8b2 7a32 00007a32 87b4 * * * * * 87b4 -19113 * * * * * * * * e699a0 6660 00006660 87b5 * * * * * 87b5 -19114 * * * * * * * * e6a8a9 6a29 00006a29 87b6 * * * * * 87b6 -19115 * * * * * * * * e8a29d 889d 0000889d 87b7 * * * * * 87b7 -19116 * * * * * * * * e7918c 744c 0000744c 87b8 * * * * * 87b8 -19117 * * * * * * * * e7af85 7bc5 00007bc5 87b9 * * * * * 87b9 -19118 * * * * * * * * e69e82 6782 00006782 87ba * * * * * 87ba -19119 * * * * * * * * e7a8ac 7a2c 00007a2c 87bb * * * * * 87bb -19120 * * * * * * * * e5898f 524f 0000524f 87bc * * * * * 87bc -19121 * * * * * * * * e98186 9046 00009046 87bd * * * * * 87bd -19122 * * * * * * * * e393a6 34e6 000034e6 87be * * * * * 87be -19123 * * * * * * * * e78f84 73c4 000073c4 87bf * * * * * 87bf -19124 * * * * * * * * f0a5b6b9 d857ddb9 00025db9 87c0 * * * * * 87c0 -19125 * * * * * * * * e79386 74c6 000074c6 87c1 * * * * * 87c1 -19126 * * * * * * * * e9bf87 9fc7 00009fc7 87c2 * * * * * 87c2 -19127 * * * * * * * * e59eb3 57b3 000057b3 87c3 * * * * * 87c3 -19128 * * * * * * * * e4a4af 492f 0000492f 87c4 * * * * * 87c4 -19129 * * * * * * * * e5918c 544c 0000544c 87c5 * * * * * 87c5 -19130 * * * * * * * * e484b1 4131 00004131 87c6 * * * * * 87c6 -19131 * * * * * * * * f0a39a8e d84dde8e 0002368e 87c7 * * * * * 87c7 -19132 * * * * * * * * e5a098 5818 00005818 87c8 * * * * * 87c8 -19133 * * * * * * * * e7a9b2 7a72 00007a72 87c9 * * * * * 87c9 -19134 * * * * * * * * f0a7ada5 d85edf65 00027b65 87ca * * * * * 87ca -19135 * * * * * * * * e8ae8f 8b8f 00008b8f 87cb * * * * * 87cb -19136 * * * * * * * * e49aae 46ae 000046ae 87cc * * * * * 87cc -19137 * * * * * * * * f0a6ba88 d85bde88 00026e88 87cd * * * * * 87cd -19138 * * * * * * * * e48681 4181 00004181 87ce * * * * * 87ce -19139 * * * * * * * * f0a5b699 d857dd99 00025d99 87cf * * * * * 87cf -19140 * * * * * * * * e7aeae 7bae 00007bae 87d0 * * * * * 87d0 -19141 * * * * * * * * f0a292bc d849dcbc 000224bc 87d1 * * * * * 87d1 -19142 * * * * * * * * e9bf88 9fc8 00009fc8 87d2 * * * * * 87d2 -19143 * * * * * * * * f0a29381 d849dcc1 000224c1 87d3 * * * * * 87d3 -19144 * * * * * * * * f0a29389 d849dcc9 000224c9 87d4 * * * * * 87d4 -19145 * * * * * * * * f0a2938c d849dccc 000224cc 87d5 * * * * * 87d5 -19146 * * * * * * * * e9bf89 9fc9 00009fc9 87d6 * * * * * 87d6 -19147 * * * * * * * * e89484 8504 00008504 87d7 * * * * * 87d7 -19148 * * * * * * * * f0a396bb d84dddbb 000235bb 87d8 * * * * * 87d8 -19149 * * * * * * * * e482b4 40b4 000040b4 87d9 * * * * * 87d9 -19150 * * * * * * * * e9bf8a 9fca 00009fca 87da * * * * * 87da -19151 * * * * * * * * e493a1 44e1 000044e1 87db * * * * * 87db -19152 * * * * * * * * f0aab7bf d86bddff 0002adff 87dc * * * * * 87dc -19153 * * * * * * * * e68b81 62c1 000062c1 87dd * * * * * 87dd -19154 * * * * * * * * e781ae 706e 0000706e 87de * * * * * 87de -19155 * * * * * * * * e9bf8b 9fcb 00009fcb 87df * * * * * 87df -19156 * * * * * * * * e58591 5151 00005151 * * * * * * * -19157 * * * * * * * * e590bf 543f 0000543f * * * * * * * -19158 * * * * * * * * e5aaaa 5aaa 00005aaa * * * * * * * -19159 * * * * * * * * e682a6 60a6 000060a6 * * * * * * * -19160 * * * * * * * * e684a0 6120 00006120 * * * * * * * -19161 * * * * * * * * e68d9d 635d 0000635d * * * * * * * -19162 * * * * * * * * e6959a 655a 0000655a * * * * * * * -19163 * * * * * * * * e6a381 68c1 000068c1 * * * * * * * -19164 * * * * * * * * e6b0b2 6c32 00006c32 * * * * * * * -19165 * * * * * * * * e6b69a 6d9a 00006d9a * * * * * * * -19166 * * * * * * * * e785b4 7174 00007174 * * * * * * * -19167 * * * * * * * * e7a88e 7a0e 00007a0e * * * * * * * -19168 * * * * * * * * e7b7bc 7dfc 00007dfc * * * * * * * -19169 * * * * * * * * e884b1 8131 00008131 * * * * * * * -19170 * * * * * * * * e885bd 817d 0000817d * * * * * * * -19171 * * * * * * * * e897b4 85f4 000085f4 * * * * * * * -19172 * * * * * * * * e89c95 8715 00008715 * * * * * * * -19173 * * * * * * * * e8aaac 8aac 00008aac * * * * * * * -19174 * * * * * * * * e8bcbc 8f3c 00008f3c * * * * * * * -19175 * * * * * * * * e98696 9196 00009196 * * * * * * * -19176 * * * * * * * * e98bad 92ed 000092ed * * * * * * * -19177 * * * * * * * * e996b2 95b2 000095b2 * * * * * * * -19178 * * * * * * * * e9b187 9c47 00009c47 * * * * * * * -# EOF diff --git a/libs/anr/examples/res/cid2codesmall.txt b/libs/anr/examples/res/cid2codesmall.txt deleted file mode 100644 index 2dd40b9..0000000 --- a/libs/anr/examples/res/cid2codesmall.txt +++ /dev/null @@ -1,6835 +0,0 @@ -# cid2code.txt (Version 10/24/2017) -# -# The data in this table contains nineteen tab-delimited columns of -# information. The contents of this file supplement "The Adobe-CNS1-7 -# Character Collection" (formerly Adobe Tech Note #5080): -# -# https://github.com/adobe-type-tools/Adobe-CNS1/ -# -# This table contains lists CIDs 0 through 19178 in the first column, -# and provides additional columns that indicate whether a CID is used -# in a particular CMap file, and if so, provides the encoded value. -# Here are some common aspects of the data that you will find in this -# table: -# -# o All character codes are provided in hexadecimal notation. -# -# o Many of the CMap files indicated at the head of each column have -# both "-H" (horizontal writing mode) and "-V" (vertical writing -# mode) versions. Those with only a "-H" version are explicitly -# shown with the "-H" appended. Those with both do not have a -# writing mode suffix. -# -# o The character codes found in a corresponding "-V" (vertical -# writing mode) CMap file are indicated by a "v" appended to the -# hexadecimal code. -# -# o There may be cases of single CIDs being referenced in multiple -# encoding points within a single CMap file. These cases are -# comma-delimited, within the same column. -# -# The following is a synopsis of columns 2 through 19, and provides -# information about character set and encoding: -# -# o Column 2: Character codes for the "B5-H" and "B5-V" CMaps (Big -# Five character set, Big Five encoding, half-width Latin -# characters). -# -# o Column 3: Character codes for the "B5pc-H" and "B5pc-V" CMaps -# (MacOS-T character set, Big Five encoding, proportional Latin -# characters). -# -# o Column 4: Character codes for the "ETen-B5-H" and "ETen-B5-V" -# CMaps (Big Five character set with ETen extensions, Big Five -# encoding, half-width Latin characters). -# -# o Column 5: Character codes for the "ETenms-B5-H" and -# "ETenms-B5-V" CMaps (Big Five character set with ETen extensions, -# Big Five encoding, proportional Latin characters). -# -# o Column 6: Character codes for the "CNS1-H" and "CNS1-V" CMaps -# (CNS 11643-1992 character set, Plane 1, ISO-2022-CN encoding). -# -# o Column 7: Character codes for the "CNS2-H" and "CNS2-V" CMaps -# (CNS 11643-1992 character set, Plane 2, ISO-2022-CN encoding). -# -# o Column 8: Character codes for the "CNS-EUC-H" and "CNS-EUC-V" -# CMaps (CNS 11643-1992 character set, Planes 1 and 2, EUC-TW -# encoding, half-width Latin characters). -# -# o Column 9: Character codes for the "UniCNS-UCS2-H" and -# "UniCNS-UCS2-V" CMaps (Unicode UCS-2 encoding, proportional -# Latin characters). -# (NOTE: These two CMap files are no longer being maintained. The -# use of the UTF-8, UTF-16, and UTF-32 CMap files is recommended.) -# -# o Column 10: Character codes for the "UniCNS-UTF8-H" and -# "UniCNS-UTF8-V" CMaps (Unicode 10.0 UTF-8 encoding, proportional Latin -# characters). -# -# o Column 11: Character codes for the "UniCNS-UTF16-H" and -# "UniCNS-UTF16-V" CMaps (Unicode 10.0 UTF-16 encoding, proportional -# Latin characters). -# -# o Column 12: Character codes for the "UniCNS-UTF32-H" and -# "UniCNS-UTF32-V" CMaps (Unicode 10.0 UTF-32 encoding, proportional -# Latin characters). -# -# o Column 13: Character codes for the "ETHK-B5-H" and "ETHK-B5-V" -# CMaps (Big Five character set with the ETen and Hong Kong SCS -# extensions, Big Five encoding, proportional Latin characters). -# -# o Column 14: Character codes for the "HKdla-B5-H" and "HKdla-B5-V" -# CMaps (Big Five character set with Dynalab's Hong Kong Extension -# A with 784 Hong Kong hanzi, Big Five encoding, proportional Latin -# characters). -# -# o Column 15: Character codes for the "HKdlb-B5-H" and "HKdlb-B5-V" -# CMaps (Big Five character set with Dynalab's Hong Kong Extension -# B with 665 Hong Kong hanzi, Big Five encoding, proportional Latin -# characters). -# -# o Column 16: Character codes for the "HKgccs-B5-H" and "HKgccs-B5-V" -# CMaps (Big Five character set with Hong Kong's GCCS extension, Big -# Five encoding, proportional Latin characters). -# -# o Column 17: Character codes for the "HKm314-B5-H" and "HKm314-B5-V" -# CMaps (Big Five character set with Monotype's Hong Kong extension -# containing 314 Hong Kong hanzi, Big Five encoding, proportional -# Latin characters). -# -# o Column 18: Character codes for the "HKm471-B5-H" and "HKm471-B5-V" -# CMaps (Big Five character set with Monotype's Hong Kong extension -# containing 471 Hong Kong hanzi, Big Five encoding, proportional -# Latin characters). -# -# o Column 19: Character codes for the "HKscs-B5-H" and "HKscs-B5-V" -# CMaps (Big Five character set with Hong Kong's SCS extension, -# Big Five encoding, proportional Latin characters). -# -CID B5 B5pc ETen-B5 ETenms-B5 CNS1 CNS2 CNS-EUC UniCNS-UCS2 UniCNS-UTF8 UniCNS-UTF16 UniCNS-UTF32 ETHK-B5 HKdla-B5 HKdlb-B5 HKgccs-B5 HKm314-B5 HKm471-B5 HKscs-B5 -0 * * * * * * * * * * * * * * * * * * -1 * 20 * 20 * * * 0020 c2a0,20 00a0,0020 000000a0,00000020 20 20 20 20 20 20 20 -2 * 21 * 21 * * * 0021 21 0021 00000021 21 21 21 21 21 21 21 -3 * 22 * 22 * * * 0022 22 0022 00000022 22 22 22 22 22 22 22 -4 * 23 * 23 * * * 0023 23 0023 00000023 23 23 23 23 23 23 23 -5 * 24 * 24 * * * 0024 24 0024 00000024 24 24 24 24 24 24 24 -6 * 25 * 25 * * * 0025 25 0025 00000025 25 25 25 25 25 25 25 -7 * 26 * 26 * * * 0026 26 0026 00000026 26 26 26 26 26 26 26 -8 * 27 * 27 * * * 0027 27 0027 00000027 27 27 27 27 27 27 27 -9 * 28 * 28 * * * 0028 28 0028 00000028 28 28 28 28 28 28 28 -10 * 29 * 29 * * * 0029 29 0029 00000029 29 29 29 29 29 29 29 -11 * 2a * 2a * * * 002a 2a 002a 0000002a 2a 2a 2a 2a 2a 2a 2a -12 * 2b * 2b * * * 002b 2b 002b 0000002b 2b 2b 2b 2b 2b 2b 2b -13 * 2c * 2c * * * 002c 2c 002c 0000002c 2c 2c 2c 2c 2c 2c 2c -14 * 2d * 2d * * * 002d 2d 002d 0000002d 2d 2d 2d 2d 2d 2d 2d -15 * 2e * 2e * * * 002e 2e 002e 0000002e 2e 2e 2e 2e 2e 2e 2e -16 * 2f * 2f * * * 002f 2f 002f 0000002f 2f 2f 2f 2f 2f 2f 2f -17 * 30 * 30 * * * 0030 30 0030 00000030 30 30 30 30 30 30 30 -18 * 31 * 31 * * * 0031 31 0031 00000031 31 31 31 31 31 31 31 -19 * 32 * 32 * * * 0032 32 0032 00000032 32 32 32 32 32 32 32 -20 * 33 * 33 * * * 0033 33 0033 00000033 33 33 33 33 33 33 33 -21 * 34 * 34 * * * 0034 34 0034 00000034 34 34 34 34 34 34 34 -22 * 35 * 35 * * * 0035 35 0035 00000035 35 35 35 35 35 35 35 -23 * 36 * 36 * * * 0036 36 0036 00000036 36 36 36 36 36 36 36 -24 * 37 * 37 * * * 0037 37 0037 00000037 37 37 37 37 37 37 37 -25 * 38 * 38 * * * 0038 38 0038 00000038 38 38 38 38 38 38 38 -26 * 39 * 39 * * * 0039 39 0039 00000039 39 39 39 39 39 39 39 -27 * 3a * 3a * * * 003a 3a 003a 0000003a 3a 3a 3a 3a 3a 3a 3a -28 * 3b * 3b * * * 003b 3b 003b 0000003b 3b 3b 3b 3b 3b 3b 3b -29 * 3c * 3c * * * 003c 3c 003c 0000003c 3c 3c 3c 3c 3c 3c 3c -30 * 3d * 3d * * * 003d 3d 003d 0000003d 3d 3d 3d 3d 3d 3d 3d -31 * 3e * 3e * * * 003e 3e 003e 0000003e 3e 3e 3e 3e 3e 3e 3e -32 * 3f * 3f * * * 003f 3f 003f 0000003f 3f 3f 3f 3f 3f 3f 3f -33 * 40 * 40 * * * 0040 40 0040 00000040 40 40 40 40 40 40 40 -34 * 41 * 41 * * * 0041 41 0041 00000041 41 41 41 41 41 41 41 -35 * 42 * 42 * * * 0042 42 0042 00000042 42 42 42 42 42 42 42 -36 * 43 * 43 * * * 0043 43 0043 00000043 43 43 43 43 43 43 43 -37 * 44 * 44 * * * 0044 44 0044 00000044 44 44 44 44 44 44 44 -38 * 45 * 45 * * * 0045 45 0045 00000045 45 45 45 45 45 45 45 -39 * 46 * 46 * * * 0046 46 0046 00000046 46 46 46 46 46 46 46 -40 * 47 * 47 * * * 0047 47 0047 00000047 47 47 47 47 47 47 47 -41 * 48 * 48 * * * 0048 48 0048 00000048 48 48 48 48 48 48 48 -42 * 49 * 49 * * * 0049 49 0049 00000049 49 49 49 49 49 49 49 -43 * 4a * 4a * * * 004a 4a 004a 0000004a 4a 4a 4a 4a 4a 4a 4a -44 * 4b * 4b * * * 004b 4b 004b 0000004b 4b 4b 4b 4b 4b 4b 4b -45 * 4c * 4c * * * 004c 4c 004c 0000004c 4c 4c 4c 4c 4c 4c 4c -46 * 4d * 4d * * * 004d 4d 004d 0000004d 4d 4d 4d 4d 4d 4d 4d -47 * 4e * 4e * * * 004e 4e 004e 0000004e 4e 4e 4e 4e 4e 4e 4e -48 * 4f * 4f * * * 004f 4f 004f 0000004f 4f 4f 4f 4f 4f 4f 4f -49 * 50 * 50 * * * 0050 50 0050 00000050 50 50 50 50 50 50 50 -50 * 51 * 51 * * * 0051 51 0051 00000051 51 51 51 51 51 51 51 -51 * 52 * 52 * * * 0052 52 0052 00000052 52 52 52 52 52 52 52 -52 * 53 * 53 * * * 0053 53 0053 00000053 53 53 53 53 53 53 53 -53 * 54 * 54 * * * 0054 54 0054 00000054 54 54 54 54 54 54 54 -54 * 55 * 55 * * * 0055 55 0055 00000055 55 55 55 55 55 55 55 -55 * 56 * 56 * * * 0056 56 0056 00000056 56 56 56 56 56 56 56 -56 * 57 * 57 * * * 0057 57 0057 00000057 57 57 57 57 57 57 57 -57 * 58 * 58 * * * 0058 58 0058 00000058 58 58 58 58 58 58 58 -58 * 59 * 59 * * * 0059 59 0059 00000059 59 59 59 59 59 59 59 -59 * 5a * 5a * * * 005a 5a 005a 0000005a 5a 5a 5a 5a 5a 5a 5a -60 * 5b * 5b * * * 005b 5b 005b 0000005b 5b 5b 5b 5b 5b 5b 5b -61 * 5c,80 * 5c * * * 005c 5c 005c 0000005c 5c 5c 5c 5c 5c 5c 5c -62 * 5d * 5d * * * 005d 5d 005d 0000005d 5d 5d 5d 5d 5d 5d 5d -63 * 5e * 5e * * * 005e 5e 005e 0000005e 5e 5e 5e 5e 5e 5e 5e -64 * 5f * 5f * * * 005f 5f 005f 0000005f 5f 5f 5f 5f 5f 5f 5f -65 * 60 * 60 * * * 0060 60 0060 00000060 60 60 60 60 60 60 60 -66 * 61 * 61 * * * 0061 61 0061 00000061 61 61 61 61 61 61 61 -67 * 62 * 62 * * * 0062 62 0062 00000062 62 62 62 62 62 62 62 -68 * 63 * 63 * * * 0063 63 0063 00000063 63 63 63 63 63 63 63 -69 * 64 * 64 * * * 0064 64 0064 00000064 64 64 64 64 64 64 64 -70 * 65 * 65 * * * 0065 65 0065 00000065 65 65 65 65 65 65 65 -71 * 66 * 66 * * * 0066 66 0066 00000066 66 66 66 66 66 66 66 -72 * 67 * 67 * * * 0067 67 0067 00000067 67 67 67 67 67 67 67 -73 * 68 * 68 * * * 0068 68 0068 00000068 68 68 68 68 68 68 68 -74 * 69 * 69 * * * 0069 69 0069 00000069 69 69 69 69 69 69 69 -75 * 6a * 6a * * * 006a 6a 006a 0000006a 6a 6a 6a 6a 6a 6a 6a -76 * 6b * 6b * * * 006b 6b 006b 0000006b 6b 6b 6b 6b 6b 6b 6b -77 * 6c * 6c * * * 006c 6c 006c 0000006c 6c 6c 6c 6c 6c 6c 6c -78 * 6d * 6d * * * 006d 6d 006d 0000006d 6d 6d 6d 6d 6d 6d 6d -79 * 6e * 6e * * * 006e 6e 006e 0000006e 6e 6e 6e 6e 6e 6e 6e -80 * 6f * 6f * * * 006f 6f 006f 0000006f 6f 6f 6f 6f 6f 6f 6f -81 * 70 * 70 * * * 0070 70 0070 00000070 70 70 70 70 70 70 70 -82 * 71 * 71 * * * 0071 71 0071 00000071 71 71 71 71 71 71 71 -83 * 72 * 72 * * * 0072 72 0072 00000072 72 72 72 72 72 72 72 -84 * 73 * 73 * * * 0073 73 0073 00000073 73 73 73 73 73 73 73 -85 * 74 * 74 * * * 0074 74 0074 00000074 74 74 74 74 74 74 74 -86 * 75 * 75 * * * 0075 75 0075 00000075 75 75 75 75 75 75 75 -87 * 76 * 76 * * * 0076 76 0076 00000076 76 76 76 76 76 76 76 -88 * 77 * 77 * * * 0077 77 0077 00000077 77 77 77 77 77 77 77 -89 * 78 * 78 * * * 0078 78 0078 00000078 78 78 78 78 78 78 78 -90 * 79 * 79 * * * 0079 79 0079 00000079 79 79 79 79 79 79 79 -91 * 7a * 7a * * * 007a 7a 007a 0000007a 7a 7a 7a 7a 7a 7a 7a -92 * 7b * 7b * * * 007b 7b 007b 0000007b 7b 7b 7b 7b 7b 7b 7b -93 * 7c * 7c * * * 007c 7c 007c 0000007c 7c 7c 7c 7c 7c 7c 7c -94 * 7d * 7d * * * 007d 7d 007d 0000007d 7d 7d 7d 7d 7d 7d 7d -95 * 7e * 7e * * * 007e 7e 007e 0000007e 7e 7e 7e 7e 7e 7e 7e -96 * fd * * * * * * c2a9 00a9 000000a9 * * * * * * * -97 * fe * * * * * * e284a2 2122 00002122 * * * * * * * -98 * ff * * * * * * * * * * * * * * * * -99 a140 a140 a140 * 2121 * 8ea1a1a1,a1a1,8ea1a1a1v,a1a1v 3000 e38080 3000 00003000 a140 a140 a140 a140 a140 a140 a140 -100 a141 a141 a141 * 2122 * 8ea1a1a2,a1a2,8ea1a1a2v,a1a2v ff0c efbc8c ff0c 0000ff0c a141 a141 a141 a141 a141 a141 a141 -101 a142 a142 a142 * 2123 * 8ea1a1a3,a1a3,8ea1a1a3v,a1a3v 3001 e38081 3001 00003001 a142 a142 a142 a142 a142 a142 a142 -102 a143 a143 a143 * 2124 * 8ea1a1a4,a1a4,8ea1a1a4v,a1a4v 3002 e38082 3002 00003002 a143 a143 a143 a143 a143 a143 a143 -103 a144 a144 a144 * 2125 * 8ea1a1a5,a1a5,8ea1a1a5v,a1a5v ff0e efbc8e ff0e 0000ff0e a144 a144 a144 a144 a144 a144 a144 -104 a145 a145 a145 * 2126 * 8ea1a1a6,a1a6,8ea1a1a6v,a1a6v 2022 e280a2,e280a7 2022,2027 00002022,00002027 a145 a145 a145 a145 a145 a145 a145 -105 a146 a146 a146 * 2127 * 8ea1a1a7,a1a7,8ea1a1a7v,a1a7v ff1b efbc9b ff1b 0000ff1b a146 a146 a146 a146 a146 a146 a146 -106 a147 a147 a147 * 2128 * 8ea1a1a8,a1a8,8ea1a1a8v,a1a8v ff1a efbc9a ff1a 0000ff1a a147 a147 a147 a147 a147 a147 a147 -107 a148 a148 a148 * 2129 * 8ea1a1a9,a1a9,8ea1a1a9v,a1a9v ff1f efbc9f ff1f 0000ff1f a148 a148 a148 a148 a148 a148 a148 -108 a149 a149 a149 * 212a * 8ea1a1aa,a1aa,8ea1a1aav,a1aav ff01 efbc81 ff01 0000ff01 a149 a149 a149 a149 a149 a149 a149 -109 a14a a14a a14a a14cv 212b * 8ea1a1ab,a1ab,8ea1a1abv,a1abv fe30,2025v efb8b0,e280a5v fe30,2025v 0000fe30,00002025v a14a a14a a14a a14a a14a a14a a14a -110 a14b a14b a14b * 212c * 8ea1a1ac,a1ac 2026 e280a6,e28baf 2026,22ef 00002026,000022ef a14b a14b a14b a14b a14b a14b a14b -111 a14c a14c a14c * 212d * 8ea1a1ad,a1ad,8ea1a1adv,a1adv 2025 e280a5 2025 00002025 a14c a14c a14c a14c a14c a14c a14c -112 a14d a14d a14d * 212e * 8ea1a1ae,a1ae,8ea1a1aev,a1aev fe50 efb990 fe50 0000fe50 a14d a14d a14d a14d a14d a14d a14d -113 a14e a14e a14e * 212f * 8ea1a1af,a1af,8ea1a1afv,a1afv ff64 efbda4,efb991 ff64,fe51 0000ff64,0000fe51 a14e a14e a14e a14e a14e a14e a14e -114 a14f a14f a14f * 2130 * 8ea1a1b0,a1b0,8ea1a1b0v,a1b0v fe52 efb992 fe52 0000fe52 a14f a14f a14f a14f a14f a14f a14f -115 a150 a150 a150 * 2131 * 8ea1a1b1,a1b1,8ea1a1b1v,a1b1v 00b7 c2b7 00b7 000000b7 a150 a150 a150 a150 a150 a150 a150 -116 a151 a151 a151 * 2132 * 8ea1a1b2,a1b2,8ea1a1b2v,a1b2v fe54 efb994 fe54 0000fe54 a151 a151 a151 a151 a151 a151 a151 -117 a152 a152 a152 * 2133 * 8ea1a1b3,a1b3,8ea1a1b3v,a1b3v fe55 efb995 fe55 0000fe55 a152 a152 a152 a152 a152 a152 a152 -118 a153 a153 a153 * 2134 * 8ea1a1b4,a1b4,8ea1a1b4v,a1b4v fe56 efb996 fe56 0000fe56 a153 a153 a153 a153 a153 a153 a153 -119 a154 a154 a154 * 2135 * 8ea1a1b5,a1b5,8ea1a1b5v,a1b5v fe57 efb997 fe57 0000fe57 a154 a154 a154 a154 a154 a154 a154 -120 a155 a155 a155 * 2136 * 8ea1a1b6,a1b6,8ea1a1b6v,a1b6v ff5c,2013v efbd9c,e28093v ff5c,2013v 0000ff5c,00002013v a155 a155 a155 a155 a155 a155 a155 -121 a156 a156 a156 * 2137 * 8ea1a1b7,a1b7,8ea1a1b7v,a1b7v 2013 e28093 2013 00002013 a156 a156 a156 a156 a156 a156 a156 -122 a157 a157 a157 a158v 2138 * 8ea1a1b8,a1b8,8ea1a1b8v,a1b8v fe31,2014v efb8b1,e28094v fe31,2014v 0000fe31,00002014v a157 a157 a157 a157 a157 a157 a157 -123 a158 a158 a158 * 2139 * 8ea1a1b9,a1b9,8ea1a1b9v,a1b9v 2014 e28094 2014 00002014 a158 a158 a158 a158 a158 a158 a158 -124 * * * * 213a,213bv * 8ea1a1ba,a1ba,8ea1a1bav,8ea1a1bbv,a1bav,a1bbv * * * * * * * * * * * -125 * * * * 213b * 8ea1a1bb,a1bb * * * * * * * * * * * -126 * * * * 213c,213dv * 8ea1a1bc,a1bc,8ea1a1bcv,8ea1a1bdv,a1bcv,a1bdv * * * * * * * * * * * -127 * * * * 213d * 8ea1a1bd,a1bd * * * * * * * * * * * -128 a15d a15d a15d * 213e * 8ea1a1be,a1be ff08 efbc88 ff08 0000ff08 a15d a15d a15d a15d a15d a15d a15d -129 a15e a15e a15e * 213f * 8ea1a1bf,a1bf ff09 efbc89 ff09 0000ff09 a15e a15e a15e a15e a15e a15e a15e -130 a15f,a15dv a15f,a15dv a15f,a15dv a15dv,a17dv 2140,213ev * 8ea1a1c0,a1c0,8ea1a1bev,8ea1a1c0v,a1bev,a1c0v fe35,ff08v efb8b5,efbc88v fe35,ff08v 0000fe35,0000ff08v a15f,a15dv a15f,a15dv a15f,a15dv a15f,a15dv a15f,a15dv a15f,a15dv a15f,a15dv -131 a160,a15ev a160,a15ev a160,a15ev a15ev,a17ev 2141,213fv * 8ea1a1c1,a1c1,8ea1a1bfv,8ea1a1c1v,a1bfv,a1c1v fe36,ff09v efb8b6,efbc89v fe36,ff09v 0000fe36,0000ff09v a160,a15ev a160,a15ev a160,a15ev a160,a15ev a160,a15ev a160,a15ev a160,a15ev -132 a161 a161 a161 * 2142 * 8ea1a1c2,a1c2 ff5b efbd9b ff5b 0000ff5b a161 a161 a161 a161 a161 a161 a161 -133 a162 a162 a162 * 2143 * 8ea1a1c3,a1c3 ff5d efbd9d ff5d 0000ff5d a162 a162 a162 a162 a162 a162 a162 -134 a163,a161v a163,a161v a163,a161v a161v,a1a1v 2144,2142v * 8ea1a1c4,a1c4,8ea1a1c2v,8ea1a1c4v,a1c2v,a1c4v fe37,ff5bv efb8b7,efbd9bv fe37,ff5bv 0000fe37,0000ff5bv a163,a161v a163,a161v a163,a161v a163,a161v a163,a161v a163,a161v a163,a161v -135 a164,a162v a164,a162v a164,a162v a162v,a1a2v 2145,2143v * 8ea1a1c5,a1c5,8ea1a1c3v,8ea1a1c5v,a1c3v,a1c5v fe38,ff5dv efb8b8,efbd9dv fe38,ff5dv 0000fe38,0000ff5dv a164,a162v a164,a162v a164,a162v a164,a162v a164,a162v a164,a162v a164,a162v -136 a165 a165 a165 * 2146 * 8ea1a1c6,a1c6 3014 e38094 3014 00003014 a165 a165 a165 a165 a165 a165 a165 -137 a166 a166 a166 * 2147 * 8ea1a1c7,a1c7 3015 e38095 3015 00003015 a166 a166 a166 a166 a166 a166 a166 -138 a167,a165v a167,a165v a167,a165v a165v,a1a3v 2148,2146v * 8ea1a1c8,a1c8,8ea1a1c6v,8ea1a1c8v,a1c6v,a1c8v fe39,3014v efb8b9,e38094v fe39,3014v 0000fe39,00003014v a167,a165v a167,a165v a167,a165v a167,a165v a167,a165v a167,a165v a167,a165v -139 a168,a166v a168,a166v a168,a166v a166v,a1a4v 2149,2147v * 8ea1a1c9,a1c9,8ea1a1c7v,8ea1a1c9v,a1c7v,a1c9v fe3a,3015v efb8ba,e38095v fe3a,3015v 0000fe3a,00003015v a168,a166v a168,a166v a168,a166v a168,a166v a168,a166v a168,a166v a168,a166v -140 a169 a169 a169 * 214a * 8ea1a1ca,a1ca 3010 e38090 3010 00003010 a169 a169 a169 a169 a169 a169 a169 -141 a16a a16a a16a * 214b * 8ea1a1cb,a1cb 3011 e38091 3011 00003011 a16a a16a a16a a16a a16a a16a a16a -142 a16b,a169v a16b,a169v a16b,a169v a169v 214c,214av * 8ea1a1cc,a1cc,8ea1a1cav,8ea1a1ccv,a1cav,a1ccv fe3b,3010v efb8bb,e38090v fe3b,3010v 0000fe3b,00003010v a16b,a169v a16b,a169v a16b,a169v a16b,a169v a16b,a169v a16b,a169v a16b,a169v -143 a16c,a16av a16c,a16av a16c,a16av a16av 214d,214bv * 8ea1a1cd,a1cd,8ea1a1cbv,8ea1a1cdv,a1cbv,a1cdv fe3c,3011v efb8bc,e38091v fe3c,3011v 0000fe3c,00003011v a16c,a16av a16c,a16av a16c,a16av a16c,a16av a16c,a16av a16c,a16av a16c,a16av -144 a16d a16d a16d * 214e * 8ea1a1ce,a1ce 300a e3808a 300a 0000300a a16d a16d a16d a16d a16d a16d a16d -145 a16e a16e a16e * 214f * 8ea1a1cf,a1cf 300b e3808b 300b 0000300b a16e a16e a16e a16e a16e a16e a16e -146 a16f,a16dv a16f,a16dv a16f,a16dv a16dv 2150,214ev * 8ea1a1d0,a1d0,8ea1a1cev,8ea1a1d0v,a1cev,a1d0v fe3d,300av efb8bd,e3808av fe3d,300av 0000fe3d,0000300av a16f,a16dv a16f,a16dv a16f,a16dv a16f,a16dv a16f,a16dv a16f,a16dv a16f,a16dv -147 a170,a16ev a170,a16ev a170,a16ev a16ev 2151,214fv * 8ea1a1d1,a1d1,8ea1a1cfv,8ea1a1d1v,a1cfv,a1d1v fe3e,300bv efb8be,e3808bv fe3e,300bv 0000fe3e,0000300bv a170,a16ev a170,a16ev a170,a16ev a170,a16ev a170,a16ev a170,a16ev a170,a16ev -148 a171 a171 a171 * 2152 * 8ea1a1d2,a1d2 3008 e28ca9,e38088 2329,3008 00002329,00003008 a171 a171 a171 a171 a171 a171 a171 -149 a172 a172 a172 * 2153 * 8ea1a1d3,a1d3 3009 e28caa,e38089 232a,3009 0000232a,00003009 a172 a172 a172 a172 a172 a172 a172 -150 a173,a171v a173,a171v a173,a171v a171v 2154,2152v * 8ea1a1d4,a1d4,8ea1a1d2v,8ea1a1d4v,a1d2v,a1d4v fe3f,3008v efb8bf,e38088v fe3f,3008v 0000fe3f,00003008v a173,a171v a173,a171v a173,a171v a173,a171v a173,a171v a173,a171v a173,a171v -151 a174,a172v a174,a172v a174,a172v a172v 2155,2153v * 8ea1a1d5,a1d5,8ea1a1d3v,8ea1a1d5v,a1d3v,a1d5v fe40,3009v efb980,e38089v fe40,3009v 0000fe40,00003009v a174,a172v a174,a172v a174,a172v a174,a172v a174,a172v a174,a172v a174,a172v -152 a175 a175 a175 * 2156 * 8ea1a1d6,a1d6 300c e3808c 300c 0000300c a175 a175 a175 a175 a175 a175 a175 -153 a176 a176 a176 * 2157 * 8ea1a1d7,a1d7 300d e3808d 300d 0000300d a176 a176 a176 a176 a176 a176 a176 -154 a177,a175v a177,a175v a177,a175v a175v 2158,2156v * 8ea1a1d8,a1d8,8ea1a1d6v,8ea1a1d8v,a1d6v,a1d8v fe41,300cv efb981,e3808cv fe41,300cv 0000fe41,0000300cv a177,a175v a177,a175v a177,a175v a177,a175v a177,a175v a177,a175v a177,a175v -155 a178,a176v a178,a176v a178,a176v a176v 2159,2157v * 8ea1a1d9,a1d9,8ea1a1d7v,8ea1a1d9v,a1d7v,a1d9v fe42,300dv efb982,e3808dv fe42,300dv 0000fe42,0000300dv a178,a176v a178,a176v a178,a176v a178,a176v a178,a176v a178,a176v a178,a176v -156 a179 a179 a179 * 215a * 8ea1a1da,a1da 300e e3808e 300e 0000300e a179 a179 a179 a179 a179 a179 a179 -157 a17a a17a a17a * 215b * 8ea1a1db,a1db 300f e3808f 300f 0000300f a17a a17a a17a a17a a17a a17a a17a -158 a17b,a179v a17b,a179v a17b,a179v a179v 215c,215av * 8ea1a1dc,a1dc,8ea1a1dav,8ea1a1dcv,a1dav,a1dcv fe43,300ev efb983,e3808ev fe43,300ev 0000fe43,0000300ev a17b,a179v a17b,a179v a17b,a179v a17b,a179v a17b,a179v a17b,a179v a17b,a179v -159 a17c,a17av a17c,a17av a17c,a17av a17av 215d,215bv * 8ea1a1dd,a1dd,8ea1a1dbv,8ea1a1ddv,a1dbv,a1ddv fe44,300fv efb984,e3808fv fe44,300fv 0000fe44,0000300fv a17c,a17av a17c,a17av a17c,a17av a17c,a17av a17c,a17av a17c,a17av a17c,a17av -160 a17d a17d a17d * 215e * 8ea1a1de,a1de,8ea1a1dev,a1dev fe59 efb999 fe59 0000fe59 a17d a17d a17d a17d a17d a17d a17d -161 a17e a17e a17e * 215f * 8ea1a1df,a1df,8ea1a1dfv,a1dfv fe5a efb99a fe5a 0000fe5a a17e a17e a17e a17e a17e a17e a17e -162 a1a1 a1a1 a1a1 * 2160 * 8ea1a1e0,a1e0,8ea1a1e0v,a1e0v fe5b efb99b fe5b 0000fe5b a1a1 a1a1 a1a1 a1a1 a1a1 a1a1 a1a1 -163 a1a2 a1a2 a1a2 * 2161 * 8ea1a1e1,a1e1,8ea1a1e1v,a1e1v fe5c efb99c fe5c 0000fe5c a1a2 a1a2 a1a2 a1a2 a1a2 a1a2 a1a2 -164 a1a3 a1a3 a1a3 * 2162 * 8ea1a1e2,a1e2,8ea1a1e2v,a1e2v fe5d efb99d fe5d 0000fe5d a1a3 a1a3 a1a3 a1a3 a1a3 a1a3 a1a3 -165 a1a4 a1a4 a1a4 * 2163 * 8ea1a1e3,a1e3,8ea1a1e3v,a1e3v fe5e efb99e fe5e 0000fe5e a1a4 a1a4 a1a4 a1a4 a1a4 a1a4 a1a4 -166 a1a5 a1a5 a1a5 * 2164 * 8ea1a1e4,a1e4,8ea1a1e4v,a1e4v 2018 e28098 2018 00002018 a1a5 a1a5 a1a5 a1a5 a1a5 a1a5 a1a5 -167 a1a6 a1a6 a1a6 * 2165 * 8ea1a1e5,a1e5,8ea1a1e5v,a1e5v 2019 e28099 2019 00002019 a1a6 a1a6 a1a6 a1a6 a1a6 a1a6 a1a6 -168 a1a7 a1a7 a1a7 * 2166 * 8ea1a1e6,a1e6,8ea1a1e6v,a1e6v 201c e2809c 201c 0000201c a1a7 a1a7 a1a7 a1a7 a1a7 a1a7 a1a7 -169 a1a8 a1a8 a1a8 * 2167 * 8ea1a1e7,a1e7,8ea1a1e7v,a1e7v 201d e2809d 201d 0000201d a1a8 a1a8 a1a8 a1a8 a1a8 a1a8 a1a8 -170 a1a9 a1a9 a1a9 * 2168 * 8ea1a1e8,a1e8,8ea1a1e8v,a1e8v 301d e3809d 301d 0000301d a1a9 a1a9 a1a9 a1a9 a1a9 a1a9 a1a9 -171 a1aa a1aa a1aa * 2169 * 8ea1a1e9,a1e9,8ea1a1e9v,a1e9v 301e e3809e 301e 0000301e a1aa a1aa a1aa a1aa a1aa a1aa a1aa -172 a1ab a1ab a1ab * 216a * 8ea1a1ea,a1ea,8ea1a1eav,a1eav 2035 e280b5 2035 00002035 a1ab a1ab a1ab a1ab a1ab a1ab a1ab -173 a1ac a1ac a1ac * 216b * 8ea1a1eb,a1eb,8ea1a1ebv,a1ebv 2032 e280b2 2032 00002032 a1ac a1ac a1ac a1ac a1ac a1ac a1ac -174 a1ad a1ad a1ad * 216c * 8ea1a1ec,a1ec,8ea1a1ecv,a1ecv ff03 efbc83 ff03 0000ff03 a1ad a1ad a1ad a1ad a1ad a1ad a1ad -175 a1ae a1ae a1ae * 216d * 8ea1a1ed,a1ed,8ea1a1edv,a1edv ff06 efbc86 ff06 0000ff06 a1ae a1ae a1ae a1ae a1ae a1ae a1ae -176 a1af a1af a1af * 216e * 8ea1a1ee,a1ee,8ea1a1eev,a1eev ff0a efbc8a ff0a 0000ff0a a1af a1af a1af a1af a1af a1af a1af -177 a1b0 a1b0 a1b0 * 216f * 8ea1a1ef,a1ef,8ea1a1efv,a1efv 203b e280bb 203b 0000203b a1b0 a1b0 a1b0 a1b0 a1b0 a1b0 a1b0 -178 a1b1 a1b1 a1b1 * 2170 * 8ea1a1f0,a1f0,8ea1a1f0v,a1f0v 00a7 c2a7 00a7 000000a7 a1b1 a1b1 a1b1 a1b1 a1b1 a1b1 a1b1 -179 a1b2 a1b2 a1b2 * 2171 * 8ea1a1f1,a1f1,8ea1a1f1v,a1f1v 3003 e38083 3003 00003003 a1b2 a1b2 a1b2 a1b2 a1b2 a1b2 a1b2 -180 a1b3 a1b3 a1b3 * 2172 * 8ea1a1f2,a1f2,8ea1a1f2v,a1f2v 25cb e2978b 25cb 000025cb a1b3 a1b3 a1b3 a1b3 a1b3 a1b3 a1b3 -181 a1b4 a1b4 a1b4 * 2173 * 8ea1a1f3,a1f3,8ea1a1f3v,a1f3v 25cf e2978f 25cf 000025cf a1b4 a1b4 a1b4 a1b4 a1b4 a1b4 a1b4 -182 a1b5 a1b5 a1b5 * 2174 * 8ea1a1f4,a1f4,8ea1a1f4v,a1f4v 25b3 e296b3 25b3 000025b3 a1b5 a1b5 a1b5 a1b5 a1b5 a1b5 a1b5 -183 a1b6 a1b6 a1b6 * 2175 * 8ea1a1f5,a1f5,8ea1a1f5v,a1f5v 25b2 e296b2 25b2 000025b2 a1b6 a1b6 a1b6 a1b6 a1b6 a1b6 a1b6 -184 a1b7 a1b7 a1b7 * 2176 * 8ea1a1f6,a1f6,8ea1a1f6v,a1f6v 25ce e2978e 25ce 000025ce a1b7 a1b7 a1b7 a1b7 a1b7 a1b7 a1b7 -185 a1b8 a1b8 a1b8 * 2177 * 8ea1a1f7,a1f7,8ea1a1f7v,a1f7v 2606 e29886 2606 00002606 a1b8 a1b8 a1b8 a1b8 a1b8 a1b8 a1b8 -186 a1b9 a1b9 a1b9 * 2178 * 8ea1a1f8,a1f8,8ea1a1f8v,a1f8v 2605 e29885 2605 00002605 a1b9 a1b9 a1b9 a1b9 a1b9 a1b9 a1b9 -187 a1ba a1ba a1ba * 2179 * 8ea1a1f9,a1f9,8ea1a1f9v,a1f9v 25c7 e29787 25c7 000025c7 a1ba a1ba a1ba a1ba a1ba a1ba a1ba -188 a1bb a1bb a1bb * 217a * 8ea1a1fa,a1fa,8ea1a1fav,a1fav 25c6 e29786 25c6 000025c6 a1bb a1bb a1bb a1bb a1bb a1bb a1bb -189 a1bc a1bc a1bc * 217b * 8ea1a1fb,a1fb,8ea1a1fbv,a1fbv 25a1 e296a1 25a1 000025a1 a1bc a1bc a1bc a1bc a1bc a1bc a1bc -190 a1bd a1bd a1bd * 217c * 8ea1a1fc,a1fc,8ea1a1fcv,a1fcv 25a0 e296a0 25a0 000025a0 a1bd a1bd a1bd a1bd a1bd a1bd a1bd -191 a1be a1be a1be * 217d * 8ea1a1fd,a1fd,8ea1a1fdv,a1fdv 25bd e296bd 25bd 000025bd a1be a1be a1be a1be a1be a1be a1be -192 a1bf a1bf a1bf * 217e * 8ea1a1fe,a1fe,8ea1a1fev,a1fev 25bc e296bc 25bc 000025bc a1bf a1bf a1bf a1bf a1bf a1bf a1bf -193 a1c0 a1c0 a1c0 * 2221 * 8ea1a2a1,a2a1,8ea1a2a1v,a2a1v 32a3 e38aa3 32a3 000032a3 a1c0 a1c0 a1c0 a1c0 a1c0 a1c0 a1c0 -194 a1c1 a1c1 a1c1 * 2222 * 8ea1a2a2,a2a2,8ea1a2a2v,a2a2v 2105 e28485 2105 00002105 a1c1 a1c1 a1c1 a1c1 a1c1 a1c1 a1c1 -195 a1c2 a1c2 a1c2 * 2223 * 8ea1a2a3,a2a3,8ea1a2a3v,a2a3v 203e c2af,cc84,e280be 00af,0304,203e 000000af,00000304,0000203e a1c2 a1c2 a1c2 a1c2 a1c2 a1c2 a1c2 -196 a1c3 a1c3 a1c3 * 2224 * 8ea1a2a4,a2a4,8ea1a2a4v,a2a4v * efbfa3 ffe3 0000ffe3 a1c3 a1c3 a1c3 a1c3 a1c3 a1c3 a1c3 -197 a1c4 a1c4 a1c4 * 2225 * 8ea1a2a5,a2a5,8ea1a2a5v,a2a5v ff3f efbcbf ff3f 0000ff3f a1c4 a1c4 a1c4 a1c4 a1c4 a1c4 a1c4 -198 a1c5 a1c5 a1c5 * 2226 * 8ea1a2a6,a2a6,8ea1a2a6v,a2a6v * cb8d 02cd 000002cd a1c5 a1c5 a1c5 a1c5 a1c5 a1c5 a1c5 -199 a1c6 a1c6 a1c6 * 2227 * 8ea1a2a7,a2a7,8ea1a2a7v,a2a7v fe49 efb989 fe49 0000fe49 a1c6 a1c6 a1c6 a1c6 a1c6 a1c6 a1c6 -200 a1c7 a1c7 a1c7 * 2228 * 8ea1a2a8,a2a8,8ea1a2a8v,a2a8v fe4a efb98a fe4a 0000fe4a a1c7 a1c7 a1c7 a1c7 a1c7 a1c7 a1c7 -201 a1c8 a1c8 a1c8 * 2229 * 8ea1a2a9,a2a9,8ea1a2a9v,a2a9v fe4d efb98d fe4d 0000fe4d a1c8 a1c8 a1c8 a1c8 a1c8 a1c8 a1c8 -202 a1c9 a1c9 a1c9 * 222a * 8ea1a2aa,a2aa,8ea1a2aav,a2aav fe4e efb98e fe4e 0000fe4e a1c9 a1c9 a1c9 a1c9 a1c9 a1c9 a1c9 -203 a1ca a1ca a1ca * 222b * 8ea1a2ab,a2ab,8ea1a2abv,a2abv fe4b efb98b fe4b 0000fe4b a1ca a1ca a1ca a1ca a1ca a1ca a1ca -204 a1cb a1cb a1cb * 222c * 8ea1a2ac,a2ac,8ea1a2acv,a2acv fe4c efb98c fe4c 0000fe4c a1cb a1cb a1cb a1cb a1cb a1cb a1cb -205 a1cc a1cc a1cc * 222d * 8ea1a2ad,a2ad,8ea1a2adv,a2adv fe5f efb99f fe5f 0000fe5f a1cc a1cc a1cc a1cc a1cc a1cc a1cc -206 a1cd a1cd a1cd * 222e * 8ea1a2ae,a2ae,8ea1a2aev,a2aev fe60 efb9a0 fe60 0000fe60 a1cd a1cd a1cd a1cd a1cd a1cd a1cd -207 a1ce a1ce a1ce * 222f * 8ea1a2af,a2af,8ea1a2afv,a2afv fe61 efb9a1 fe61 0000fe61 a1ce a1ce a1ce a1ce a1ce a1ce a1ce -208 a1cf a1cf a1cf * 2230 * 8ea1a2b0,a2b0,8ea1a2b0v,a2b0v ff0b efbc8b ff0b 0000ff0b a1cf a1cf a1cf a1cf a1cf a1cf a1cf -209 a1d0 a1d0 a1d0 * 2231 * 8ea1a2b1,a2b1,8ea1a2b1v,a2b1v ff0d efbc8d ff0d 0000ff0d a1d0 a1d0 a1d0 a1d0 a1d0 a1d0 a1d0 -210 a1d1 a1d1 a1d1 * 2232 * 8ea1a2b2,a2b2,8ea1a2b2v,a2b2v 00d7 c397 00d7 000000d7 a1d1 a1d1 a1d1 a1d1 a1d1 a1d1 a1d1 -211 a1d2 a1d2 a1d2 * 2233 * 8ea1a2b3,a2b3,8ea1a2b3v,a2b3v 00f7 c3b7 00f7 000000f7 a1d2 a1d2 a1d2 a1d2 a1d2 a1d2 a1d2 -212 a1d3 a1d3 a1d3 * 2234 * 8ea1a2b4,a2b4,8ea1a2b4v,a2b4v 00b1 c2b1 00b1 000000b1 a1d3 a1d3 a1d3 a1d3 a1d3 a1d3 a1d3 -213 a1d4 a1d4 a1d4 * 2235 * 8ea1a2b5,a2b5,8ea1a2b5v,a2b5v 221a e2889a 221a 0000221a a1d4 a1d4 a1d4 a1d4 a1d4 a1d4 a1d4 -214 a1d5 a1d5 a1d5 * 2236 * 8ea1a2b6,a2b6,8ea1a2b6v,a2b6v ff1c efbc9c ff1c 0000ff1c a1d5 a1d5 a1d5 a1d5 a1d5 a1d5 a1d5 -215 a1d6 a1d6 a1d6 * 2237 * 8ea1a2b7,a2b7,8ea1a2b7v,a2b7v ff1e efbc9e ff1e 0000ff1e a1d6 a1d6 a1d6 a1d6 a1d6 a1d6 a1d6 -216 a1d7 a1d7 a1d7 * 2238 * 8ea1a2b8,a2b8,8ea1a2b8v,a2b8v ff1d efbc9d ff1d 0000ff1d a1d7 a1d7 a1d7 a1d7 a1d7 a1d7 a1d7 -217 a1d8 a1d8 a1d8 * 2239 * 8ea1a2b9,a2b9,8ea1a2b9v,a2b9v 2266 e289a6 2266 00002266 a1d8 a1d8 a1d8 a1d8 a1d8 a1d8 a1d8 -218 a1d9 a1d9 a1d9 * 223a * 8ea1a2ba,a2ba,8ea1a2bav,a2bav 2267 e289a7 2267 00002267 a1d9 a1d9 a1d9 a1d9 a1d9 a1d9 a1d9 -219 a1da a1da a1da * 223b * 8ea1a2bb,a2bb,8ea1a2bbv,a2bbv 2260 e289a0 2260 00002260 a1da a1da a1da a1da a1da a1da a1da -220 a1db a1db a1db * 223c * 8ea1a2bc,a2bc,8ea1a2bcv,a2bcv 221e e2889e 221e 0000221e a1db a1db a1db a1db a1db a1db a1db -221 a1dc a1dc a1dc * 223d * 8ea1a2bd,a2bd,8ea1a2bdv,a2bdv 2252 e28992 2252 00002252 a1dc a1dc a1dc a1dc a1dc a1dc a1dc -222 a1dd a1dd a1dd * 223e * 8ea1a2be,a2be,8ea1a2bev,a2bev 2261 e289a1 2261 00002261 a1dd a1dd a1dd a1dd a1dd a1dd a1dd -223 a1de a1de a1de * 223f * 8ea1a2bf,a2bf,8ea1a2bfv,a2bfv fe62 efb9a2 fe62 0000fe62 a1de a1de a1de a1de a1de a1de a1de -224 a1df a1df a1df * 2240 * 8ea1a2c0,a2c0,8ea1a2c0v,a2c0v fe63 efb9a3 fe63 0000fe63 a1df a1df a1df a1df a1df a1df a1df -225 a1e0 a1e0 a1e0 * 2241 * 8ea1a2c1,a2c1,8ea1a2c1v,a2c1v fe64 efb9a4 fe64 0000fe64 a1e0 a1e0 a1e0 a1e0 a1e0 a1e0 a1e0 -226 a1e1 a1e1 a1e1 * 2242 * 8ea1a2c2,a2c2,8ea1a2c2v,a2c2v fe65 efb9a5 fe65 0000fe65 a1e1 a1e1 a1e1 a1e1 a1e1 a1e1 a1e1 -227 a1e2 a1e2 a1e2 * 2243 * 8ea1a2c3,a2c3,8ea1a2c3v,a2c3v fe66 efb9a6 fe66 0000fe66 a1e2 a1e2 a1e2 a1e2 a1e2 a1e2 a1e2 -228 a1e3 a1e3 a1e3 * 2244 * 8ea1a2c4,a2c4 223c e288bc,efbd9e 223c,ff5e 0000223c,0000ff5e a1e3 a1e3 a1e3 a1e3 a1e3 a1e3 a1e3 -229 a1e4 a1e4 a1e4 * 2245 * 8ea1a2c5,a2c5,8ea1a2c5v,a2c5v 2229 e288a9 2229 00002229 a1e4 a1e4 a1e4 a1e4 a1e4 a1e4 a1e4 -230 a1e5 a1e5 a1e5 * 2246 * 8ea1a2c6,a2c6,8ea1a2c6v,a2c6v 222a e288aa 222a 0000222a a1e5 a1e5 a1e5 a1e5 a1e5 a1e5 a1e5 -231 a1e6 a1e6 a1e6 * 2247 * 8ea1a2c7,a2c7,8ea1a2c7v,a2c7v 22a5 e28aa5 22a5 000022a5 a1e6 a1e6 a1e6 a1e6 a1e6 a1e6 a1e6 -232 a1e7 a1e7 a1e7 * 2248 * 8ea1a2c8,a2c8,8ea1a2c8v,a2c8v 2220 e288a0 2220 00002220 a1e7 a1e7 a1e7 a1e7 a1e7 a1e7 a1e7 -233 a1e8 a1e8 a1e8 * 2249 * 8ea1a2c9,a2c9,8ea1a2c9v,a2c9v 221f e2889f 221f 0000221f a1e8 a1e8 a1e8 a1e8 a1e8 a1e8 a1e8 -234 a1e9 a1e9 a1e9 * 224a * 8ea1a2ca,a2ca,8ea1a2cav,a2cav 22bf e28abf 22bf 000022bf a1e9 a1e9 a1e9 a1e9 a1e9 a1e9 a1e9 -235 a1ea a1ea a1ea * 224b * 8ea1a2cb,a2cb,8ea1a2cbv,a2cbv 33d2 e38f92 33d2 000033d2 a1ea a1ea a1ea a1ea a1ea a1ea a1ea -236 a1eb a1eb a1eb * 224c * 8ea1a2cc,a2cc,8ea1a2ccv,a2ccv 33d1 e38f91 33d1 000033d1 a1eb a1eb a1eb a1eb a1eb a1eb a1eb -237 a1ec a1ec a1ec * 224d * 8ea1a2cd,a2cd,8ea1a2cdv,a2cdv 222b e288ab 222b 0000222b a1ec a1ec a1ec a1ec a1ec a1ec a1ec -238 a1ed a1ed a1ed * 224e * 8ea1a2ce,a2ce,8ea1a2cev,a2cev 222e e288ae 222e 0000222e a1ed a1ed a1ed a1ed a1ed a1ed a1ed -239 a1ee a1ee a1ee * 224f * 8ea1a2cf,a2cf,8ea1a2cfv,a2cfv 2235 e288b5 2235 00002235 a1ee a1ee a1ee a1ee a1ee a1ee a1ee -240 a1ef a1ef a1ef * 2250 * 8ea1a2d0,a2d0,8ea1a2d0v,a2d0v 2234 e288b4 2234 00002234 a1ef a1ef a1ef a1ef a1ef a1ef a1ef -241 a1f0 a1f0 a1f0 * 2251 * 8ea1a2d1,a2d1,8ea1a2d1v,a2d1v 2640 e29980 2640 00002640 a1f0 a1f0 a1f0 a1f0 a1f0 a1f0 a1f0 -242 a1f1 a1f1 a1f1 * 2252 * 8ea1a2d2,a2d2,8ea1a2d2v,a2d2v 2642 e29982 2642 00002642 a1f1 a1f1 a1f1 a1f1 a1f1 a1f1 a1f1 -243 a1f2 a1f2 a1f2 * 2253 * 8ea1a2d3,a2d3,8ea1a2d3v,a2d3v 2641 e28a95,e29981 2295,2641 00002295,00002641 a1f2 a1f2 a1f2 a1f2 a1f2 a1f2 a1f2 -244 a1f3 a1f3 a1f3 * 2254 * 8ea1a2d4,a2d4,8ea1a2d4v,a2d4v 2609 e28a99,e29889 2299,2609 00002299,00002609 a1f3 a1f3 a1f3 a1f3 a1f3 a1f3 a1f3 -245 a1f4 a1f4 a1f4 * 2255 * 8ea1a2d5,a2d5,8ea1a2d5v,a2d5v 2191 e28691 2191 00002191 a1f4 a1f4 a1f4 a1f4 a1f4 a1f4 a1f4 -246 a1f5 a1f5 a1f5 * 2256 * 8ea1a2d6,a2d6,8ea1a2d6v,a2d6v 2193 e28693 2193 00002193 a1f5 a1f5 a1f5 a1f5 a1f5 a1f5 a1f5 -247 a1f7 a1f7 a1f7 * 2257 * 8ea1a2d7,a2d7,8ea1a2d7v,a2d7v 2192 e28692 2192 00002192 a1f7 a1f7 a1f7 a1f7 a1f7 a1f7 a1f7 -248 a1f6 a1f6 a1f6 * 2258 * 8ea1a2d8,a2d8,8ea1a2d8v,a2d8v 2190 e28690 2190 00002190 a1f6 a1f6 a1f6 a1f6 a1f6 a1f6 a1f6 -249 a1f8 a1f8 a1f8 * 2259 * 8ea1a2d9,a2d9,8ea1a2d9v,a2d9v 2196 e28696 2196 00002196 a1f8 a1f8 a1f8 a1f8 a1f8 a1f8 a1f8 -250 a1f9 a1f9 a1f9 * 225a * 8ea1a2da,a2da,8ea1a2dav,a2dav 2197 e28697 2197 00002197 a1f9 a1f9 a1f9 a1f9 a1f9 a1f9 a1f9 -251 a1fa a1fa a1fa * 225b * 8ea1a2db,a2db,8ea1a2dbv,a2dbv 2199 e28699 2199 00002199 a1fa a1fa a1fa a1fa a1fa a1fa a1fa -252 a1fb a1fb a1fb * 225c * 8ea1a2dc,a2dc,8ea1a2dcv,a2dcv 2198 e28698 2198 00002198 a1fb a1fb a1fb a1fb a1fb a1fb a1fb -253 a1fc a1fc a1fc * 225d * 8ea1a2dd,a2dd,8ea1a2ddv,a2ddv 2225 e288a5 2225 00002225 a1fc a1fc a1fc a1fc a1fc a1fc a1fc -254 a1fd a1fd a1fd * 225e * 8ea1a2de,a2de,8ea1a2dev,a2dev 2223 e288a3 2223 00002223 a1fd a1fd a1fd a1fd a1fd a1fd a1fd -255 a1fe a1fe a1fe * 225f * 8ea1a2df,a2df,8ea1a2dfv,a2dfv * * * * a1fe a1fe a1fe a1fe a1fe a1fe a1fe -256 a240 a240 a240 * 2260 * 8ea1a2e0,a2e0,8ea1a2e0v,a2e0v * * * * a240 a240 a240 a240 a240 a240 a240 -257 a241 a241 a241 * 2261 * 8ea1a2e1,a2e1,8ea1a2e1v,a2e1v ff0f e28895,efbc8f 2215,ff0f 00002215,0000ff0f a241 a241 a241 a241 a241 a241 a241 -258 a242 a242 a242 * 2262 * 8ea1a2e2,a2e2,8ea1a2e2v,a2e2v ff3c efb9a8,efbcbc fe68,ff3c 0000fe68,0000ff3c a242 a242 a242 a242 a242 a242 a242 -259 a243 a243 a243 * 2263 * 8ea1a2e3,a2e3,8ea1a2e3v,a2e3v ff04 efbc84 ff04 0000ff04 a243 a243 a243 a243 a243 a243 a243 -260 a244 a244 a244 * 2264 * 8ea1a2e4,a2e4,8ea1a2e4v,a2e4v 00a5 c2a5,efbfa5 00a5,ffe5 000000a5,0000ffe5 a244 a244 a244 a244 a244 a244 a244 -261 a245 a245 a245 * 2265 * 8ea1a2e5,a2e5,8ea1a2e5v,a2e5v 3012 e38092 3012 00003012 a245 a245 a245 a245 a245 a245 a245 -262 a246 a246 a246 * 2266 * 8ea1a2e6,a2e6,8ea1a2e6v,a2e6v 00a2 c2a2,efbfa0 00a2,ffe0 000000a2,0000ffe0 a246 a246 a246 a246 a246 a246 a246 -263 a247 a247 a247 * 2267 * 8ea1a2e7,a2e7,8ea1a2e7v,a2e7v 00a3 c2a3,efbfa1 00a3,ffe1 000000a3,0000ffe1 a247 a247 a247 a247 a247 a247 a247 -264 a248 a248 a248 * 2268 * 8ea1a2e8,a2e8,8ea1a2e8v,a2e8v ff05 efbc85 ff05 0000ff05 a248 a248 a248 a248 a248 a248 a248 -265 a249 a249 a249 * 2269 * 8ea1a2e9,a2e9,8ea1a2e9v,a2e9v ff20 efbca0 ff20 0000ff20 a249 a249 a249 a249 a249 a249 a249 -266 a24a a24a a24a * 226a * 8ea1a2ea,a2ea,8ea1a2eav,a2eav 2103 e28483 2103 00002103 a24a a24a a24a a24a a24a a24a a24a -267 a24b a24b a24b * 226b * 8ea1a2eb,a2eb,8ea1a2ebv,a2ebv 2109 e28489 2109 00002109 a24b a24b a24b a24b a24b a24b a24b -268 a24c a24c a24c * 226c * 8ea1a2ec,a2ec,8ea1a2ecv,a2ecv fe69 efb9a9 fe69 0000fe69 a24c a24c a24c a24c a24c a24c a24c -269 a24d a24d a24d * 226d * 8ea1a2ed,a2ed,8ea1a2edv,a2edv fe6a efb9aa fe6a 0000fe6a a24d a24d a24d a24d a24d a24d a24d -270 a24e a24e a24e * 226e * 8ea1a2ee,a2ee,8ea1a2eev,a2eev fe6b efb9ab fe6b 0000fe6b a24e a24e a24e a24e a24e a24e a24e -271 a24f a24f a24f * 226f * 8ea1a2ef,a2ef,8ea1a2efv,a2efv 33d5 e38f95 33d5 000033d5 a24f a24f a24f a24f a24f a24f a24f -272 a250 a250 a250 * 2270 * 8ea1a2f0,a2f0,8ea1a2f0v,a2f0v 339c e38e9c 339c 0000339c a250 a250 a250 a250 a250 a250 a250 -273 a251 a251 a251 * 2271 * 8ea1a2f1,a2f1,8ea1a2f1v,a2f1v 339d e38e9d 339d 0000339d a251 a251 a251 a251 a251 a251 a251 -274 a252 a252 a252 * 2272 * 8ea1a2f2,a2f2,8ea1a2f2v,a2f2v 339e e38e9e 339e 0000339e a252 a252 a252 a252 a252 a252 a252 -275 a253 a253 a253 * 2273 * 8ea1a2f3,a2f3,8ea1a2f3v,a2f3v 33ce e38f8e 33ce 000033ce a253 a253 a253 a253 a253 a253 a253 -276 a254 a254 a254 * 2274 * 8ea1a2f4,a2f4,8ea1a2f4v,a2f4v 33a1 e38ea1 33a1 000033a1 a254 a254 a254 a254 a254 a254 a254 -277 a255 a255 a255 * 2275 * 8ea1a2f5,a2f5,8ea1a2f5v,a2f5v 338e e38e8e 338e 0000338e a255 a255 a255 a255 a255 a255 a255 -278 a256 a256 a256 * 2276 * 8ea1a2f6,a2f6,8ea1a2f6v,a2f6v 338f e38e8f 338f 0000338f a256 a256 a256 a256 a256 a256 a256 -279 a257 a257 a257 * 2277 * 8ea1a2f7,a2f7,8ea1a2f7v,a2f7v 33c4 e38f84 33c4 000033c4 a257 a257 a257 a257 a257 a257 a257 -280 a258 a258 a258 * 2278 * 8ea1a2f8,a2f8,8ea1a2f8v,a2f8v 00b0 c2b0 00b0 000000b0 a258 a258 a258 a258 a258 a258 a258 -281 a259 a259 a259 * 2279 * 8ea1a2f9,a2f9,8ea1a2f9v,a2f9v 5159 e58599,ee9792 5159,e5d2 00005159,0000e5d2 92af,a259 a259 a259 92af,a259 a259 a259 92af,a259 -282 a25a a25a a25a * 227a * 8ea1a2fa,a2fa,8ea1a2fav,a2fav 515b e5859b,ee9793 515b,e5d3 0000515b,0000e5d3 92b0,a25a a25a a25a 92b0,a25a a25a a25a 92b0,a25a -283 a25b a25b a25b * 227b * 8ea1a2fb,a2fb,8ea1a2fbv,a2fbv 515e e5859e,ee9795 515e,e5d5 0000515e,0000e5d5 92b2,a25b a25b a25b 92b2,a25b a25b a25b 92b2,a25b -284 a25c a25c a25c * 227c * 8ea1a2fc,a2fc,8ea1a2fcv,a2fcv 515d e5859d,ee9794 515d,e5d4 0000515d,0000e5d4 92b1,a25c a25c a25c 92b1,a25c a25c a25c 92b1,a25c -285 a25d a25d a25d * 227d * 8ea1a2fd,a2fd,8ea1a2fdv,a2fdv 5161 e585a1 5161 00005161 a25d a25d a25d a25d a25d a25d a25d -286 a25e a25e a25e * 227e * 8ea1a2fe,a2fe,8ea1a2fev,a2fev 5163 e585a3 5163 00005163 a25e a25e a25e a25e a25e a25e a25e -287 a25f a25f a25f * 2321 * 8ea1a3a1,a3a1,8ea1a3a1v,a3a1v 55e7 e597a7 55e7 000055e7 a25f a25f a25f a25f a25f a25f a25f -288 a260 a260 a260 * 2322 * 8ea1a3a2,a3a2,8ea1a3a2v,a3a2v 74e9 e793a9,ee8abc 74e9,e2bc 000074e9,0000e2bc feaa,a260 a260 a260 a260,feaa a260 a260 feaa,a260 -289 a261 a261 a261 * 2323 * 8ea1a3a3,a3a3,8ea1a3a3v,a3a3v 7cce e7b38e,ee8d8f 7cce,e34f 00007cce,0000e34f 8e7e,a261 a261 a261 8e7e,a261 a261 a261 8e7e,a261 -290 a262 a262 a262 * 2324 * 8ea1a3a4,a3a4,8ea1a3a4v,a3a4v 2581 e29681 2581 00002581 a262 a262 a262 a262 a262 a262 a262 -291 a263 a263 a263 * 2325 * 8ea1a3a5,a3a5,8ea1a3a5v,a3a5v 2582 e29682 2582 00002582 a263 a263 a263 a263 a263 a263 a263 -292 a264 a264 a264 * 2326 * 8ea1a3a6,a3a6,8ea1a3a6v,a3a6v 2583 e29683 2583 00002583 a264 a264 a264 a264 a264 a264 a264 -293 a265 a265 a265 * 2327 * 8ea1a3a7,a3a7,8ea1a3a7v,a3a7v 2584 e29684 2584 00002584 a265 a265 a265 a265 a265 a265 a265 -294 a266 a266 a266 * 2328 * 8ea1a3a8,a3a8,8ea1a3a8v,a3a8v 2585 e29685 2585 00002585 a266 a266 a266 a266 a266 a266 a266 -295 a267 a267 a267 * 2329 * 8ea1a3a9,a3a9,8ea1a3a9v,a3a9v 2586 e29686 2586 00002586 a267 a267 a267 a267 a267 a267 a267 -296 a268 a268 a268 * 232a * 8ea1a3aa,a3aa,8ea1a3aav,a3aav 2587 e29687 2587 00002587 a268 a268 a268 a268 a268 a268 a268 -297 a269 a269 a269 * 232b * 8ea1a3ab,a3ab,8ea1a3abv,a3abv 2588 e29688 2588 00002588 a269 a269 a269 a269 a269 a269 a269 -298 a26a a26a a26a * 232c * 8ea1a3ac,a3ac,8ea1a3acv,a3acv 258f e2968f 258f 0000258f a26a a26a a26a a26a a26a a26a a26a -299 a26b a26b a26b * 232d * 8ea1a3ad,a3ad,8ea1a3adv,a3adv 258e e2968e 258e 0000258e a26b a26b a26b a26b a26b a26b a26b -300 a26c a26c a26c * 232e * 8ea1a3ae,a3ae,8ea1a3aev,a3aev 258d e2968d 258d 0000258d a26c a26c a26c a26c a26c a26c a26c -301 a26d a26d a26d * 232f * 8ea1a3af,a3af,8ea1a3afv,a3afv 258c e2968c 258c 0000258c a26d a26d a26d a26d a26d a26d a26d -302 a26e a26e a26e * 2330 * 8ea1a3b0,a3b0,8ea1a3b0v,a3b0v 258b e2968b 258b 0000258b a26e a26e a26e a26e a26e a26e a26e -303 a26f a26f a26f * 2331 * 8ea1a3b1,a3b1,8ea1a3b1v,a3b1v 258a e2968a 258a 0000258a a26f a26f a26f a26f a26f a26f a26f -304 a270 a270 a270 * 2332 * 8ea1a3b2,a3b2,8ea1a3b2v,a3b2v 2589 e29689 2589 00002589 a270 a270 a270 a270 a270 a270 a270 -305 a271 a271 a271 * 2333 * 8ea1a3b3,a3b3,8ea1a3b3v,a3b3v 253c e294bc 253c 0000253c a271 a271 a271 a271 a271 a271 a271 -306 a272 a272 a272 * 2334 * 8ea1a3b4,a3b4,8ea1a3b4v,a3b4v 2534 e294b4 2534 00002534 a272 a272 a272 a272 a272 a272 a272 -307 a273 a273 a273 * 2335 * 8ea1a3b5,a3b5,8ea1a3b5v,a3b5v 252c e294ac 252c 0000252c a273 a273 a273 a273 a273 a273 a273 -308 a274 a274 a274 * 2336 * 8ea1a3b6,a3b6,8ea1a3b6v,a3b6v 2524 e294a4 2524 00002524 a274 a274 a274 a274 a274 a274 a274 -309 a275 a275 a275 * 2337 * 8ea1a3b7,a3b7,8ea1a3b7v,a3b7v 251c e2949c 251c 0000251c a275 a275 a275 a275 a275 a275 a275 -310 a276 a276 a276 * 2338 * 8ea1a3b8,a3b8,8ea1a3b8v,a3b8v 2594 e29694 2594 00002594 a276 a276 a276 a276 a276 a276 a276 -311 a277 a277 a277 * 2339 * 8ea1a3b9,a3b9,8ea1a3b9v,a3b9v 2500 e29480 2500 00002500 a277 a277 a277 a277 a277 a277 a277 -312 a278 a278 a278 a156v 233a * 8ea1a3ba,a3ba,8ea1a3bav,a3bav 2502 e29482 2502 00002502 a278 a278 a278 a278 a278 a278 a278 -313 a279 a279 a279 * 233b * 8ea1a3bb,a3bb,8ea1a3bbv,a3bbv 2595 e29695 2595 00002595 a279 a279 a279 a279 a279 a279 a279 -314 a27a a27a a27a * 233c * 8ea1a3bc,a3bc,8ea1a3bcv,a3bcv 250c e2948c 250c 0000250c a27a a27a a27a a27a a27a a27a a27a -315 a27b a27b a27b * 233d * 8ea1a3bd,a3bd,8ea1a3bdv,a3bdv 2510 e29490 2510 00002510 a27b a27b a27b a27b a27b a27b a27b -316 a27c a27c a27c * 233e * 8ea1a3be,a3be,8ea1a3bev,a3bev 2514 e29494 2514 00002514 a27c a27c a27c a27c a27c a27c a27c -317 a27d a27d a27d * 233f * 8ea1a3bf,a3bf,8ea1a3bfv,a3bfv 2518 e29498 2518 00002518 a27d a27d a27d a27d a27d a27d a27d -318 a27e a27e a27e * 2340 * 8ea1a3c0,a3c0,8ea1a3c0v,a3c0v 256d e295ad 256d 0000256d a27e a27e a27e a27e a27e a27e a27e -319 a2a1 a2a1 a2a1 * 2341 * 8ea1a3c1,a3c1,8ea1a3c1v,a3c1v 256e e295ae 256e 0000256e a2a1 a2a1 a2a1 a2a1 a2a1 a2a1 a2a1 -320 a2a2 a2a2 a2a2 * 2342 * 8ea1a3c2,a3c2,8ea1a3c2v,a3c2v 2570 e295b0 2570 00002570 a2a2 a2a2 a2a2 a2a2 a2a2 a2a2 a2a2 -321 a2a3 a2a3 a2a3 * 2343 * 8ea1a3c3,a3c3,8ea1a3c3v,a3c3v 256f e295af 256f 0000256f a2a3 a2a3 a2a3 a2a3 a2a3 a2a3 a2a3 -322 a2a4 a2a4 a2a4 * 2344 * 8ea1a3c4,a3c4,8ea1a3c4v,a3c4v 2550 * * * a2a4 a2a4 a2a4 a2a4 a2a4 a2a4 a2a4 -323 a2a5 a2a5 a2a5 * 2345 * 8ea1a3c5,a3c5,8ea1a3c5v,a3c5v 255e * * * a2a5 a2a5 a2a5 a2a5 a2a5 a2a5 a2a5 -324 a2a6 a2a6 a2a6 * 2346 * 8ea1a3c6,a3c6,8ea1a3c6v,a3c6v 256a * * * a2a6 a2a6 a2a6 a2a6 a2a6 a2a6 a2a6 -325 a2a7 a2a7 a2a7 * 2347 * 8ea1a3c7,a3c7,8ea1a3c7v,a3c7v 2561 * * * a2a7 a2a7 a2a7 a2a7 a2a7 a2a7 a2a7 -326 a2a8 a2a8 a2a8 * 2348 * 8ea1a3c8,a3c8,8ea1a3c8v,a3c8v 25e2 e297a2 25e2 000025e2 a2a8 a2a8 a2a8 a2a8 a2a8 a2a8 a2a8 -327 a2a9 a2a9 a2a9 * 2349 * 8ea1a3c9,a3c9,8ea1a3c9v,a3c9v 25e3 e297a3 25e3 000025e3 a2a9 a2a9 a2a9 a2a9 a2a9 a2a9 a2a9 -328 a2aa a2aa a2aa * 234a * 8ea1a3ca,a3ca,8ea1a3cav,a3cav 25e5 e297a5 25e5 000025e5 a2aa a2aa a2aa a2aa a2aa a2aa a2aa -329 a2ab a2ab a2ab * 234b * 8ea1a3cb,a3cb,8ea1a3cbv,a3cbv 25e4 e297a4 25e4 000025e4 a2ab a2ab a2ab a2ab a2ab a2ab a2ab -330 a2ac a2ac a2ac * 234c * 8ea1a3cc,a3cc,8ea1a3ccv,a3ccv 2571 e295b1 2571 00002571 a2ac a2ac a2ac a2ac a2ac a2ac a2ac -331 a2ad a2ad a2ad * 234d * 8ea1a3cd,a3cd,8ea1a3cdv,a3cdv 2572 e295b2 2572 00002572 a2ad a2ad a2ad a2ad a2ad a2ad a2ad -332 a2ae a2ae a2ae * 234e * 8ea1a3ce,a3ce,8ea1a3cev,a3cev 2573 e295b3 2573 00002573 a2ae a2ae a2ae a2ae a2ae a2ae a2ae -333 a2af a2af a2af * 2421 * 8ea1a4a1,a4a1,8ea1a4a1v,a4a1v ff10 efbc90 ff10 0000ff10 a2af a2af a2af a2af a2af a2af a2af -334 a2b0 a2b0 a2b0 * 2422 * 8ea1a4a2,a4a2,8ea1a4a2v,a4a2v ff11 efbc91 ff11 0000ff11 a2b0 a2b0 a2b0 a2b0 a2b0 a2b0 a2b0 -335 a2b1 a2b1 a2b1 * 2423 * 8ea1a4a3,a4a3,8ea1a4a3v,a4a3v ff12 efbc92 ff12 0000ff12 a2b1 a2b1 a2b1 a2b1 a2b1 a2b1 a2b1 -336 a2b2 a2b2 a2b2 * 2424 * 8ea1a4a4,a4a4,8ea1a4a4v,a4a4v ff13 efbc93 ff13 0000ff13 a2b2 a2b2 a2b2 a2b2 a2b2 a2b2 a2b2 -337 a2b3 a2b3 a2b3 * 2425 * 8ea1a4a5,a4a5,8ea1a4a5v,a4a5v ff14 efbc94 ff14 0000ff14 a2b3 a2b3 a2b3 a2b3 a2b3 a2b3 a2b3 -338 a2b4 a2b4 a2b4 * 2426 * 8ea1a4a6,a4a6,8ea1a4a6v,a4a6v ff15 efbc95 ff15 0000ff15 a2b4 a2b4 a2b4 a2b4 a2b4 a2b4 a2b4 -339 a2b5 a2b5 a2b5 * 2427 * 8ea1a4a7,a4a7,8ea1a4a7v,a4a7v ff16 efbc96 ff16 0000ff16 a2b5 a2b5 a2b5 a2b5 a2b5 a2b5 a2b5 -340 a2b6 a2b6 a2b6 * 2428 * 8ea1a4a8,a4a8,8ea1a4a8v,a4a8v ff17 efbc97 ff17 0000ff17 a2b6 a2b6 a2b6 a2b6 a2b6 a2b6 a2b6 -341 a2b7 a2b7 a2b7 * 2429 * 8ea1a4a9,a4a9,8ea1a4a9v,a4a9v ff18 efbc98 ff18 0000ff18 a2b7 a2b7 a2b7 a2b7 a2b7 a2b7 a2b7 -342 a2b8 a2b8 a2b8 * 242a * 8ea1a4aa,a4aa,8ea1a4aav,a4aav ff19 efbc99 ff19 0000ff19 a2b8 a2b8 a2b8 a2b8 a2b8 a2b8 a2b8 -343 a2b9 a2b9 a2b9 * 242b * 8ea1a4ab,a4ab,8ea1a4abv,a4abv 2160 e285a0 2160 00002160 a2b9 a2b9 a2b9 a2b9 a2b9 a2b9 a2b9 -344 a2ba a2ba a2ba * 242c * 8ea1a4ac,a4ac,8ea1a4acv,a4acv 2161 e285a1 2161 00002161 a2ba a2ba a2ba a2ba a2ba a2ba a2ba -345 a2bb a2bb a2bb * 242d * 8ea1a4ad,a4ad,8ea1a4adv,a4adv 2162 e285a2 2162 00002162 a2bb a2bb a2bb a2bb a2bb a2bb a2bb -346 a2bc a2bc a2bc * 242e * 8ea1a4ae,a4ae,8ea1a4aev,a4aev 2163 e285a3 2163 00002163 a2bc a2bc a2bc a2bc a2bc a2bc a2bc -347 a2bd a2bd a2bd * 242f * 8ea1a4af,a4af,8ea1a4afv,a4afv 2164 e285a4 2164 00002164 a2bd a2bd a2bd a2bd a2bd a2bd a2bd -348 a2be a2be a2be * 2430 * 8ea1a4b0,a4b0,8ea1a4b0v,a4b0v 2165 e285a5 2165 00002165 a2be a2be a2be a2be a2be a2be a2be -349 a2bf a2bf a2bf * 2431 * 8ea1a4b1,a4b1,8ea1a4b1v,a4b1v 2166 e285a6 2166 00002166 a2bf a2bf a2bf a2bf a2bf a2bf a2bf -350 a2c0 a2c0 a2c0 * 2432 * 8ea1a4b2,a4b2,8ea1a4b2v,a4b2v 2167 e285a7 2167 00002167 a2c0 a2c0 a2c0 a2c0 a2c0 a2c0 a2c0 -351 a2c1 a2c1 a2c1 * 2433 * 8ea1a4b3,a4b3,8ea1a4b3v,a4b3v 2168 e285a8 2168 00002168 a2c1 a2c1 a2c1 a2c1 a2c1 a2c1 a2c1 -352 a2c2 a2c2 a2c2 * 2434 * 8ea1a4b4,a4b4,8ea1a4b4v,a4b4v 2169 e285a9 2169 00002169 a2c2 a2c2 a2c2 a2c2 a2c2 a2c2 a2c2 -353 a2c3 a2c3 a2c3 * 2435 * 8ea1a4b5,a4b5,8ea1a4b5v,a4b5v 3021 e380a1 3021 00003021 a2c3 a2c3 a2c3 a2c3 a2c3 a2c3 a2c3 -354 a2c4 a2c4 a2c4 * 2436 * 8ea1a4b6,a4b6,8ea1a4b6v,a4b6v 3022 e380a2 3022 00003022 a2c4 a2c4 a2c4 a2c4 a2c4 a2c4 a2c4 -355 a2c5 a2c5 a2c5 * 2437 * 8ea1a4b7,a4b7,8ea1a4b7v,a4b7v 3023 e380a3 3023 00003023 a2c5 a2c5 a2c5 a2c5 a2c5 a2c5 a2c5 -356 a2c6 a2c6 a2c6 * 2438 * 8ea1a4b8,a4b8,8ea1a4b8v,a4b8v 3024 e380a4 3024 00003024 a2c6 a2c6 a2c6 a2c6 a2c6 a2c6 a2c6 -357 a2c7 a2c7 a2c7 * 2439 * 8ea1a4b9,a4b9,8ea1a4b9v,a4b9v 3025 e380a5 3025 00003025 a2c7 a2c7 a2c7 a2c7 a2c7 a2c7 a2c7 -358 a2c8 a2c8 a2c8 * 243a * 8ea1a4ba,a4ba,8ea1a4bav,a4bav 3026 e380a6 3026 00003026 a2c8 a2c8 a2c8 a2c8 a2c8 a2c8 a2c8 -359 a2c9 a2c9 a2c9 * 243b * 8ea1a4bb,a4bb,8ea1a4bbv,a4bbv 3027 e380a7 3027 00003027 a2c9 a2c9 a2c9 a2c9 a2c9 a2c9 a2c9 -360 a2ca a2ca a2ca * 243c * 8ea1a4bc,a4bc,8ea1a4bcv,a4bcv 3028 e380a8 3028 00003028 a2ca a2ca a2ca a2ca a2ca a2ca a2ca -361 a2cb a2cb a2cb * 243d * 8ea1a4bd,a4bd,8ea1a4bdv,a4bdv 3029 e380a9 3029 00003029 a2cb a2cb a2cb a2cb a2cb a2cb a2cb -362 a2cc a2cc a2cc * 243e * 8ea1a4be,a4be,8ea1a4bev,a4bev * e380b8 3038 00003038 a2cc a2cc a2cc a2cc a2cc a2cc a2cc -363 a2cd a2cd a2cd * 243f * 8ea1a4bf,a4bf,8ea1a4bfv,a4bfv 5344 e58d84,ee81a3,e380b9 5344,e063,3039 00005344,0000e063,00003039 fac5,a2cd a2cd a2cd a2cd a2cd a2cd fac5,a2cd -364 a2ce a2ce a2ce * 2440 * 8ea1a4c0,a4c0,8ea1a4c0v,a4c0v * e380ba 303a 0000303a a2ce a2ce a2ce a2ce a2ce a2ce a2ce -365 a2cf a2cf a2cf * 2441 * 8ea1a4c1,a4c1,8ea1a4c1v,a4c1v ff21 efbca1 ff21 0000ff21 a2cf a2cf a2cf a2cf a2cf a2cf a2cf -366 a2d0 a2d0 a2d0 * 2442 * 8ea1a4c2,a4c2,8ea1a4c2v,a4c2v ff22 efbca2 ff22 0000ff22 a2d0 a2d0 a2d0 a2d0 a2d0 a2d0 a2d0 -367 a2d1 a2d1 a2d1 * 2443 * 8ea1a4c3,a4c3,8ea1a4c3v,a4c3v ff23 efbca3 ff23 0000ff23 a2d1 a2d1 a2d1 a2d1 a2d1 a2d1 a2d1 -368 a2d2 a2d2 a2d2 * 2444 * 8ea1a4c4,a4c4,8ea1a4c4v,a4c4v ff24 efbca4 ff24 0000ff24 a2d2 a2d2 a2d2 a2d2 a2d2 a2d2 a2d2 -369 a2d3 a2d3 a2d3 * 2445 * 8ea1a4c5,a4c5,8ea1a4c5v,a4c5v ff25 efbca5 ff25 0000ff25 a2d3 a2d3 a2d3 a2d3 a2d3 a2d3 a2d3 -370 a2d4 a2d4 a2d4 * 2446 * 8ea1a4c6,a4c6,8ea1a4c6v,a4c6v ff26 efbca6 ff26 0000ff26 a2d4 a2d4 a2d4 a2d4 a2d4 a2d4 a2d4 -371 a2d5 a2d5 a2d5 * 2447 * 8ea1a4c7,a4c7,8ea1a4c7v,a4c7v ff27 efbca7 ff27 0000ff27 a2d5 a2d5 a2d5 a2d5 a2d5 a2d5 a2d5 -372 a2d6 a2d6 a2d6 * 2448 * 8ea1a4c8,a4c8,8ea1a4c8v,a4c8v ff28 efbca8 ff28 0000ff28 a2d6 a2d6 a2d6 a2d6 a2d6 a2d6 a2d6 -373 a2d7 a2d7 a2d7 * 2449 * 8ea1a4c9,a4c9,8ea1a4c9v,a4c9v ff29 efbca9 ff29 0000ff29 a2d7 a2d7 a2d7 a2d7 a2d7 a2d7 a2d7 -374 a2d8 a2d8 a2d8 * 244a * 8ea1a4ca,a4ca,8ea1a4cav,a4cav ff2a efbcaa ff2a 0000ff2a a2d8 a2d8 a2d8 a2d8 a2d8 a2d8 a2d8 -375 a2d9 a2d9 a2d9 * 244b * 8ea1a4cb,a4cb,8ea1a4cbv,a4cbv ff2b efbcab ff2b 0000ff2b a2d9 a2d9 a2d9 a2d9 a2d9 a2d9 a2d9 -376 a2da a2da a2da * 244c * 8ea1a4cc,a4cc,8ea1a4ccv,a4ccv ff2c efbcac ff2c 0000ff2c a2da a2da a2da a2da a2da a2da a2da -377 a2db a2db a2db * 244d * 8ea1a4cd,a4cd,8ea1a4cdv,a4cdv ff2d efbcad ff2d 0000ff2d a2db a2db a2db a2db a2db a2db a2db -378 a2dc a2dc a2dc * 244e * 8ea1a4ce,a4ce,8ea1a4cev,a4cev ff2e efbcae ff2e 0000ff2e a2dc a2dc a2dc a2dc a2dc a2dc a2dc -379 a2dd a2dd a2dd * 244f * 8ea1a4cf,a4cf,8ea1a4cfv,a4cfv ff2f efbcaf ff2f 0000ff2f a2dd a2dd a2dd a2dd a2dd a2dd a2dd -380 a2de a2de a2de * 2450 * 8ea1a4d0,a4d0,8ea1a4d0v,a4d0v ff30 efbcb0 ff30 0000ff30 a2de a2de a2de a2de a2de a2de a2de -381 a2df a2df a2df * 2451 * 8ea1a4d1,a4d1,8ea1a4d1v,a4d1v ff31 efbcb1 ff31 0000ff31 a2df a2df a2df a2df a2df a2df a2df -382 a2e0 a2e0 a2e0 * 2452 * 8ea1a4d2,a4d2,8ea1a4d2v,a4d2v ff32 efbcb2 ff32 0000ff32 a2e0 a2e0 a2e0 a2e0 a2e0 a2e0 a2e0 -383 a2e1 a2e1 a2e1 * 2453 * 8ea1a4d3,a4d3,8ea1a4d3v,a4d3v ff33 efbcb3 ff33 0000ff33 a2e1 a2e1 a2e1 a2e1 a2e1 a2e1 a2e1 -384 a2e2 a2e2 a2e2 * 2454 * 8ea1a4d4,a4d4,8ea1a4d4v,a4d4v ff34 efbcb4 ff34 0000ff34 a2e2 a2e2 a2e2 a2e2 a2e2 a2e2 a2e2 -385 a2e3 a2e3 a2e3 * 2455 * 8ea1a4d5,a4d5,8ea1a4d5v,a4d5v ff35 efbcb5 ff35 0000ff35 a2e3 a2e3 a2e3 a2e3 a2e3 a2e3 a2e3 -386 a2e4 a2e4 a2e4 * 2456 * 8ea1a4d6,a4d6,8ea1a4d6v,a4d6v ff36 efbcb6 ff36 0000ff36 a2e4 a2e4 a2e4 a2e4 a2e4 a2e4 a2e4 -387 a2e5 a2e5 a2e5 * 2457 * 8ea1a4d7,a4d7,8ea1a4d7v,a4d7v ff37 efbcb7 ff37 0000ff37 a2e5 a2e5 a2e5 a2e5 a2e5 a2e5 a2e5 -388 a2e6 a2e6 a2e6 * 2458 * 8ea1a4d8,a4d8,8ea1a4d8v,a4d8v ff38 efbcb8 ff38 0000ff38 a2e6 a2e6 a2e6 a2e6 a2e6 a2e6 a2e6 -389 a2e7 a2e7 a2e7 * 2459 * 8ea1a4d9,a4d9,8ea1a4d9v,a4d9v ff39 efbcb9 ff39 0000ff39 a2e7 a2e7 a2e7 a2e7 a2e7 a2e7 a2e7 -390 a2e8 a2e8 a2e8 * 245a * 8ea1a4da,a4da,8ea1a4dav,a4dav ff3a efbcba ff3a 0000ff3a a2e8 a2e8 a2e8 a2e8 a2e8 a2e8 a2e8 -391 a2e9 a2e9 a2e9 * 245b * 8ea1a4db,a4db,8ea1a4dbv,a4dbv ff41 efbd81 ff41 0000ff41 a2e9 a2e9 a2e9 a2e9 a2e9 a2e9 a2e9 -392 a2ea a2ea a2ea * 245c * 8ea1a4dc,a4dc,8ea1a4dcv,a4dcv ff42 efbd82 ff42 0000ff42 a2ea a2ea a2ea a2ea a2ea a2ea a2ea -393 a2eb a2eb a2eb * 245d * 8ea1a4dd,a4dd,8ea1a4ddv,a4ddv ff43 efbd83 ff43 0000ff43 a2eb a2eb a2eb a2eb a2eb a2eb a2eb -394 a2ec a2ec a2ec * 245e * 8ea1a4de,a4de,8ea1a4dev,a4dev ff44 efbd84 ff44 0000ff44 a2ec a2ec a2ec a2ec a2ec a2ec a2ec -395 a2ed a2ed a2ed * 245f * 8ea1a4df,a4df,8ea1a4dfv,a4dfv ff45 efbd85 ff45 0000ff45 a2ed a2ed a2ed a2ed a2ed a2ed a2ed -396 a2ee a2ee a2ee * 2460 * 8ea1a4e0,a4e0,8ea1a4e0v,a4e0v ff46 efbd86 ff46 0000ff46 a2ee a2ee a2ee a2ee a2ee a2ee a2ee -397 a2ef a2ef a2ef * 2461 * 8ea1a4e1,a4e1,8ea1a4e1v,a4e1v ff47 efbd87 ff47 0000ff47 a2ef a2ef a2ef a2ef a2ef a2ef a2ef -398 a2f0 a2f0 a2f0 * 2462 * 8ea1a4e2,a4e2,8ea1a4e2v,a4e2v ff48 efbd88 ff48 0000ff48 a2f0 a2f0 a2f0 a2f0 a2f0 a2f0 a2f0 -399 a2f1 a2f1 a2f1 * 2463 * 8ea1a4e3,a4e3,8ea1a4e3v,a4e3v ff49 efbd89 ff49 0000ff49 a2f1 a2f1 a2f1 a2f1 a2f1 a2f1 a2f1 -400 a2f2 a2f2 a2f2 * 2464 * 8ea1a4e4,a4e4,8ea1a4e4v,a4e4v ff4a efbd8a ff4a 0000ff4a a2f2 a2f2 a2f2 a2f2 a2f2 a2f2 a2f2 -401 a2f3 a2f3 a2f3 * 2465 * 8ea1a4e5,a4e5,8ea1a4e5v,a4e5v ff4b efbd8b ff4b 0000ff4b a2f3 a2f3 a2f3 a2f3 a2f3 a2f3 a2f3 -402 a2f4 a2f4 a2f4 * 2466 * 8ea1a4e6,a4e6,8ea1a4e6v,a4e6v ff4c efbd8c ff4c 0000ff4c a2f4 a2f4 a2f4 a2f4 a2f4 a2f4 a2f4 -403 a2f5 a2f5 a2f5 * 2467 * 8ea1a4e7,a4e7,8ea1a4e7v,a4e7v ff4d efbd8d ff4d 0000ff4d a2f5 a2f5 a2f5 a2f5 a2f5 a2f5 a2f5 -404 a2f6 a2f6 a2f6 * 2468 * 8ea1a4e8,a4e8,8ea1a4e8v,a4e8v ff4e efbd8e ff4e 0000ff4e a2f6 a2f6 a2f6 a2f6 a2f6 a2f6 a2f6 -405 a2f7 a2f7 a2f7 * 2469 * 8ea1a4e9,a4e9,8ea1a4e9v,a4e9v ff4f efbd8f ff4f 0000ff4f a2f7 a2f7 a2f7 a2f7 a2f7 a2f7 a2f7 -406 a2f8 a2f8 a2f8 * 246a * 8ea1a4ea,a4ea,8ea1a4eav,a4eav ff50 efbd90 ff50 0000ff50 a2f8 a2f8 a2f8 a2f8 a2f8 a2f8 a2f8 -407 a2f9 a2f9 a2f9 * 246b * 8ea1a4eb,a4eb,8ea1a4ebv,a4ebv ff51 efbd91 ff51 0000ff51 a2f9 a2f9 a2f9 a2f9 a2f9 a2f9 a2f9 -408 a2fa a2fa a2fa * 246c * 8ea1a4ec,a4ec,8ea1a4ecv,a4ecv ff52 efbd92 ff52 0000ff52 a2fa a2fa a2fa a2fa a2fa a2fa a2fa -409 a2fb a2fb a2fb * 246d * 8ea1a4ed,a4ed,8ea1a4edv,a4edv ff53 efbd93 ff53 0000ff53 a2fb a2fb a2fb a2fb a2fb a2fb a2fb -410 a2fc a2fc a2fc * 246e * 8ea1a4ee,a4ee,8ea1a4eev,a4eev ff54 efbd94 ff54 0000ff54 a2fc a2fc a2fc a2fc a2fc a2fc a2fc -411 a2fd a2fd a2fd * 246f * 8ea1a4ef,a4ef,8ea1a4efv,a4efv ff55 efbd95 ff55 0000ff55 a2fd a2fd a2fd a2fd a2fd a2fd a2fd -412 a2fe a2fe a2fe * 2470 * 8ea1a4f0,a4f0,8ea1a4f0v,a4f0v ff56 efbd96 ff56 0000ff56 a2fe a2fe a2fe a2fe a2fe a2fe a2fe -413 a340 a340 a340 * 2471 * 8ea1a4f1,a4f1,8ea1a4f1v,a4f1v ff57 efbd97 ff57 0000ff57 a340 a340 a340 a340 a340 a340 a340 -414 a341 a341 a341 * 2472 * 8ea1a4f2,a4f2,8ea1a4f2v,a4f2v ff58 efbd98 ff58 0000ff58 a341 a341 a341 a341 a341 a341 a341 -415 a342 a342 a342 * 2473 * 8ea1a4f3,a4f3,8ea1a4f3v,a4f3v ff59 efbd99 ff59 0000ff59 a342 a342 a342 a342 a342 a342 a342 -416 a343 a343 a343 * 2474 * 8ea1a4f4,a4f4,8ea1a4f4v,a4f4v ff5a efbd9a ff5a 0000ff5a a343 a343 a343 a343 a343 a343 a343 -417 a344 a344 a344 * 2475 * 8ea1a4f5,a4f5,8ea1a4f5v,a4f5v 0391 ce91 0391 00000391 a344 a344 a344 a344 a344 a344 a344 -418 a345 a345 a345 * 2476 * 8ea1a4f6,a4f6,8ea1a4f6v,a4f6v 0392 ce92 0392 00000392 a345 a345 a345 a345 a345 a345 a345 -419 a346 a346 a346 * 2477 * 8ea1a4f7,a4f7,8ea1a4f7v,a4f7v 0393 ce93 0393 00000393 a346 a346 a346 a346 a346 a346 a346 -420 a347 a347 a347 * 2478 * 8ea1a4f8,a4f8,8ea1a4f8v,a4f8v 0394 ce94 0394 00000394 a347 a347 a347 a347 a347 a347 a347 -421 a348 a348 a348 * 2479 * 8ea1a4f9,a4f9,8ea1a4f9v,a4f9v 0395 ce95 0395 00000395 a348 a348 a348 a348 a348 a348 a348 -422 a349 a349 a349 * 247a * 8ea1a4fa,a4fa,8ea1a4fav,a4fav 0396 ce96 0396 00000396 a349 a349 a349 a349 a349 a349 a349 -423 a34a a34a a34a * 247b * 8ea1a4fb,a4fb,8ea1a4fbv,a4fbv 0397 ce97 0397 00000397 a34a a34a a34a a34a a34a a34a a34a -424 a34b a34b a34b * 247c * 8ea1a4fc,a4fc,8ea1a4fcv,a4fcv 0398 ce98 0398 00000398 a34b a34b a34b a34b a34b a34b a34b -425 a34c a34c a34c * 247d * 8ea1a4fd,a4fd,8ea1a4fdv,a4fdv 0399 ce99 0399 00000399 a34c a34c a34c a34c a34c a34c a34c -426 a34d a34d a34d * 247e * 8ea1a4fe,a4fe,8ea1a4fev,a4fev 039a ce9a 039a 0000039a a34d a34d a34d a34d a34d a34d a34d -427 a34e a34e a34e * 2521 * 8ea1a5a1,a5a1,8ea1a5a1v,a5a1v 039b ce9b 039b 0000039b a34e a34e a34e a34e a34e a34e a34e -428 a34f a34f a34f * 2522 * 8ea1a5a2,a5a2,8ea1a5a2v,a5a2v 039c ce9c 039c 0000039c a34f a34f a34f a34f a34f a34f a34f -429 a350 a350 a350 * 2523 * 8ea1a5a3,a5a3,8ea1a5a3v,a5a3v 039d ce9d 039d 0000039d a350 a350 a350 a350 a350 a350 a350 -430 a351 a351 a351 * 2524 * 8ea1a5a4,a5a4,8ea1a5a4v,a5a4v 039e ce9e 039e 0000039e a351 a351 a351 a351 a351 a351 a351 -431 a352 a352 a352 * 2525 * 8ea1a5a5,a5a5,8ea1a5a5v,a5a5v 039f ce9f 039f 0000039f a352 a352 a352 a352 a352 a352 a352 -432 a353 a353 a353 * 2526 * 8ea1a5a6,a5a6,8ea1a5a6v,a5a6v 03a0 cea0 03a0 000003a0 a353 a353 a353 a353 a353 a353 a353 -433 a354 a354 a354 * 2527 * 8ea1a5a7,a5a7,8ea1a5a7v,a5a7v 03a1 cea1 03a1 000003a1 a354 a354 a354 a354 a354 a354 a354 -434 a355 a355 a355 * 2528 * 8ea1a5a8,a5a8,8ea1a5a8v,a5a8v 03a3 cea3 03a3 000003a3 a355 a355 a355 a355 a355 a355 a355 -435 a356 a356 a356 * 2529 * 8ea1a5a9,a5a9,8ea1a5a9v,a5a9v 03a4 cea4 03a4 000003a4 a356 a356 a356 a356 a356 a356 a356 -436 a357 a357 a357 * 252a * 8ea1a5aa,a5aa,8ea1a5aav,a5aav 03a5 cea5 03a5 000003a5 a357 a357 a357 a357 a357 a357 a357 -437 a358 a358 a358 * 252b * 8ea1a5ab,a5ab,8ea1a5abv,a5abv 03a6 cea6 03a6 000003a6 a358 a358 a358 a358 a358 a358 a358 -438 a359 a359 a359 * 252c * 8ea1a5ac,a5ac,8ea1a5acv,a5acv 03a7 cea7 03a7 000003a7 a359 a359 a359 a359 a359 a359 a359 -439 a35a a35a a35a * 252d * 8ea1a5ad,a5ad,8ea1a5adv,a5adv 03a8 cea8 03a8 000003a8 a35a a35a a35a a35a a35a a35a a35a -440 a35b a35b a35b * 252e * 8ea1a5ae,a5ae,8ea1a5aev,a5aev 03a9 cea9 03a9 000003a9 a35b a35b a35b a35b a35b a35b a35b -441 a35c a35c a35c * 252f * 8ea1a5af,a5af,8ea1a5afv,a5afv 03b1 ceb1 03b1 000003b1 a35c a35c a35c a35c a35c a35c a35c -442 a35d a35d a35d * 2530 * 8ea1a5b0,a5b0,8ea1a5b0v,a5b0v 03b2 ceb2 03b2 000003b2 a35d a35d a35d a35d a35d a35d a35d -443 a35e a35e a35e * 2531 * 8ea1a5b1,a5b1,8ea1a5b1v,a5b1v 03b3 ceb3 03b3 000003b3 a35e a35e a35e a35e a35e a35e a35e -444 a35f a35f a35f * 2532 * 8ea1a5b2,a5b2,8ea1a5b2v,a5b2v 03b4 ceb4 03b4 000003b4 a35f a35f a35f a35f a35f a35f a35f -445 a360 a360 a360 * 2533 * 8ea1a5b3,a5b3,8ea1a5b3v,a5b3v 03b5 ceb5 03b5 000003b5 a360 a360 a360 a360 a360 a360 a360 -446 a361 a361 a361 * 2534 * 8ea1a5b4,a5b4,8ea1a5b4v,a5b4v 03b6 ceb6 03b6 000003b6 a361 a361 a361 a361 a361 a361 a361 -447 a362 a362 a362 * 2535 * 8ea1a5b5,a5b5,8ea1a5b5v,a5b5v 03b7 ceb7 03b7 000003b7 a362 a362 a362 a362 a362 a362 a362 -448 a363 a363 a363 * 2536 * 8ea1a5b6,a5b6,8ea1a5b6v,a5b6v 03b8 ceb8 03b8 000003b8 a363 a363 a363 a363 a363 a363 a363 -449 a364 a364 a364 * 2537 * 8ea1a5b7,a5b7,8ea1a5b7v,a5b7v 03b9 ceb9 03b9 000003b9 a364 a364 a364 a364 a364 a364 a364 -450 a365 a365 a365 * 2538 * 8ea1a5b8,a5b8,8ea1a5b8v,a5b8v 03ba ceba 03ba 000003ba a365 a365 a365 a365 a365 a365 a365 -451 a366 a366 a366 * 2539 * 8ea1a5b9,a5b9,8ea1a5b9v,a5b9v 03bb cebb 03bb 000003bb a366 a366 a366 a366 a366 a366 a366 -452 a367 a367 a367 * 253a * 8ea1a5ba,a5ba,8ea1a5bav,a5bav 03bc cebc 03bc 000003bc a367 a367 a367 a367 a367 a367 a367 -453 a368 a368 a368 * 253b * 8ea1a5bb,a5bb,8ea1a5bbv,a5bbv 03bd cebd 03bd 000003bd a368 a368 a368 a368 a368 a368 a368 -454 a369 a369 a369 * 253c * 8ea1a5bc,a5bc,8ea1a5bcv,a5bcv 03be cebe 03be 000003be a369 a369 a369 a369 a369 a369 a369 -455 a36a a36a a36a * 253d * 8ea1a5bd,a5bd,8ea1a5bdv,a5bdv 03bf cebf 03bf 000003bf a36a a36a a36a a36a a36a a36a a36a -456 a36b a36b a36b * 253e * 8ea1a5be,a5be,8ea1a5bev,a5bev 03c0 cf80 03c0 000003c0 a36b a36b a36b a36b a36b a36b a36b -457 a36c a36c a36c * 253f * 8ea1a5bf,a5bf,8ea1a5bfv,a5bfv 03c1 cf81 03c1 000003c1 a36c a36c a36c a36c a36c a36c a36c -458 a36d a36d a36d * 2540 * 8ea1a5c0,a5c0,8ea1a5c0v,a5c0v 03c3 cf83 03c3 000003c3 a36d a36d a36d a36d a36d a36d a36d -459 a36e a36e a36e * 2541 * 8ea1a5c1,a5c1,8ea1a5c1v,a5c1v 03c4 cf84 03c4 000003c4 a36e a36e a36e a36e a36e a36e a36e -460 a36f a36f a36f * 2542 * 8ea1a5c2,a5c2,8ea1a5c2v,a5c2v 03c5 cf85 03c5 000003c5 a36f a36f a36f a36f a36f a36f a36f -461 a370 a370 a370 * 2543 * 8ea1a5c3,a5c3,8ea1a5c3v,a5c3v 03c6 cf86 03c6 000003c6 a370 a370 a370 a370 a370 a370 a370 -462 a371 a371 a371 * 2544 * 8ea1a5c4,a5c4,8ea1a5c4v,a5c4v 03c7 cf87 03c7 000003c7 a371 a371 a371 a371 a371 a371 a371 -463 a372 a372 a372 * 2545 * 8ea1a5c5,a5c5,8ea1a5c5v,a5c5v 03c8 cf88 03c8 000003c8 a372 a372 a372 a372 a372 a372 a372 -464 a373 a373 a373 * 2546 * 8ea1a5c6,a5c6,8ea1a5c6v,a5c6v 03c9 cf89 03c9 000003c9 a373 a373 a373 a373 a373 a373 a373 -465 a374 a374 a374 * 2547 * 8ea1a5c7,a5c7,8ea1a5c7v,a5c7v 3105 e38485 3105 00003105 a374 a374 a374 a374 a374 a374 a374 -466 a375 a375 a375 * 2548 * 8ea1a5c8,a5c8,8ea1a5c8v,a5c8v 3106 e38486 3106 00003106 a375 a375 a375 a375 a375 a375 a375 -467 a376 a376 a376 * 2549 * 8ea1a5c9,a5c9,8ea1a5c9v,a5c9v 3107 e38487 3107 00003107 a376 a376 a376 a376 a376 a376 a376 -468 a377 a377 a377 * 254a * 8ea1a5ca,a5ca,8ea1a5cav,a5cav 3108 e38488 3108 00003108 a377 a377 a377 a377 a377 a377 a377 -469 a378 a378 a378 * 254b * 8ea1a5cb,a5cb,8ea1a5cbv,a5cbv 3109 e38489 3109 00003109 a378 a378 a378 a378 a378 a378 a378 -470 a379 a379 a379 * 254c * 8ea1a5cc,a5cc,8ea1a5ccv,a5ccv 310a e3848a 310a 0000310a a379 a379 a379 a379 a379 a379 a379 -471 a37a a37a a37a * 254d * 8ea1a5cd,a5cd,8ea1a5cdv,a5cdv 310b e3848b 310b 0000310b a37a a37a a37a a37a a37a a37a a37a -472 a37b a37b a37b * 254e * 8ea1a5ce,a5ce,8ea1a5cev,a5cev 310c e3848c 310c 0000310c a37b a37b a37b a37b a37b a37b a37b -473 a37c a37c a37c * 254f * 8ea1a5cf,a5cf,8ea1a5cfv,a5cfv 310d e3848d 310d 0000310d a37c a37c a37c a37c a37c a37c a37c -474 a37d a37d a37d * 2550 * 8ea1a5d0,a5d0,8ea1a5d0v,a5d0v 310e e3848e 310e 0000310e a37d a37d a37d a37d a37d a37d a37d -475 a37e a37e a37e * 2551 * 8ea1a5d1,a5d1,8ea1a5d1v,a5d1v 310f e3848f 310f 0000310f a37e a37e a37e a37e a37e a37e a37e -476 a3a1 a3a1 a3a1 * 2552 * 8ea1a5d2,a5d2,8ea1a5d2v,a5d2v 3110 e38490 3110 00003110 a3a1 a3a1 a3a1 a3a1 a3a1 a3a1 a3a1 -477 a3a2 a3a2 a3a2 * 2553 * 8ea1a5d3,a5d3,8ea1a5d3v,a5d3v 3111 e38491 3111 00003111 a3a2 a3a2 a3a2 a3a2 a3a2 a3a2 a3a2 -478 a3a3 a3a3 a3a3 * 2554 * 8ea1a5d4,a5d4,8ea1a5d4v,a5d4v 3112 e38492 3112 00003112 a3a3 a3a3 a3a3 a3a3 a3a3 a3a3 a3a3 -479 a3a4 a3a4 a3a4 * 2555 * 8ea1a5d5,a5d5,8ea1a5d5v,a5d5v 3113 e38493 3113 00003113 a3a4 a3a4 a3a4 a3a4 a3a4 a3a4 a3a4 -480 a3a5 a3a5 a3a5 * 2556 * 8ea1a5d6,a5d6,8ea1a5d6v,a5d6v 3114 e38494 3114 00003114 a3a5 a3a5 a3a5 a3a5 a3a5 a3a5 a3a5 -481 a3a6 a3a6 a3a6 * 2557 * 8ea1a5d7,a5d7,8ea1a5d7v,a5d7v 3115 e38495 3115 00003115 a3a6 a3a6 a3a6 a3a6 a3a6 a3a6 a3a6 -482 a3a7 a3a7 a3a7 * 2558 * 8ea1a5d8,a5d8,8ea1a5d8v,a5d8v 3116 e38496 3116 00003116 a3a7 a3a7 a3a7 a3a7 a3a7 a3a7 a3a7 -483 a3a8 a3a8 a3a8 * 2559 * 8ea1a5d9,a5d9,8ea1a5d9v,a5d9v 3117 e38497 3117 00003117 a3a8 a3a8 a3a8 a3a8 a3a8 a3a8 a3a8 -484 a3a9 a3a9 a3a9 * 255a * 8ea1a5da,a5da,8ea1a5dav,a5dav 3118 e38498 3118 00003118 a3a9 a3a9 a3a9 a3a9 a3a9 a3a9 a3a9 -485 a3aa a3aa a3aa * 255b * 8ea1a5db,a5db,8ea1a5dbv,a5dbv 3119 e38499 3119 00003119 a3aa a3aa a3aa a3aa a3aa a3aa a3aa -486 a3ab a3ab a3ab * 255c * 8ea1a5dc,a5dc,8ea1a5dcv,a5dcv 311a e3849a 311a 0000311a a3ab a3ab a3ab a3ab a3ab a3ab a3ab -487 a3ac a3ac a3ac * 255d * 8ea1a5dd,a5dd,8ea1a5ddv,a5ddv 311b e3849b 311b 0000311b a3ac a3ac a3ac a3ac a3ac a3ac a3ac -488 a3ad a3ad a3ad * 255e * 8ea1a5de,a5de,8ea1a5dev,a5dev 311c e3849c 311c 0000311c a3ad a3ad a3ad a3ad a3ad a3ad a3ad -489 a3ae a3ae a3ae * 255f * 8ea1a5df,a5df,8ea1a5dfv,a5dfv 311d e3849d 311d 0000311d a3ae a3ae a3ae a3ae a3ae a3ae a3ae -490 a3af a3af a3af * 2560 * 8ea1a5e0,a5e0,8ea1a5e0v,a5e0v 311e e3849e 311e 0000311e a3af a3af a3af a3af a3af a3af a3af -491 a3b0 a3b0 a3b0 * 2561 * 8ea1a5e1,a5e1,8ea1a5e1v,a5e1v 311f e3849f 311f 0000311f a3b0 a3b0 a3b0 a3b0 a3b0 a3b0 a3b0 -492 a3b1 a3b1 a3b1 * 2562 * 8ea1a5e2,a5e2,8ea1a5e2v,a5e2v 3120 e384a0 3120 00003120 a3b1 a3b1 a3b1 a3b1 a3b1 a3b1 a3b1 -493 a3b2 a3b2 a3b2 * 2563 * 8ea1a5e3,a5e3,8ea1a5e3v,a5e3v 3121 e384a1 3121 00003121 a3b2 a3b2 a3b2 a3b2 a3b2 a3b2 a3b2 -494 a3b3 a3b3 a3b3 * 2564 * 8ea1a5e4,a5e4,8ea1a5e4v,a5e4v 3122 e384a2 3122 00003122 a3b3 a3b3 a3b3 a3b3 a3b3 a3b3 a3b3 -495 a3b4 a3b4 a3b4 * 2565 * 8ea1a5e5,a5e5,8ea1a5e5v,a5e5v 3123 e384a3 3123 00003123 a3b4 a3b4 a3b4 a3b4 a3b4 a3b4 a3b4 -496 a3b5 a3b5 a3b5 * 2566 * 8ea1a5e6,a5e6,8ea1a5e6v,a5e6v 3124 e384a4 3124 00003124 a3b5 a3b5 a3b5 a3b5 a3b5 a3b5 a3b5 -497 a3b6 a3b6 a3b6 * 2567 * 8ea1a5e7,a5e7,8ea1a5e7v,a5e7v 3125 e384a5 3125 00003125 a3b6 a3b6 a3b6 a3b6 a3b6 a3b6 a3b6 -498 a3b7 a3b7 a3b7 * 2568 * 8ea1a5e8,a5e8,8ea1a5e8v,a5e8v 3126 e384a6 3126 00003126 a3b7 a3b7 a3b7 a3b7 a3b7 a3b7 a3b7 -499 a3b8 a3b8 a3b8 * 2569 * 8ea1a5e9,a5e9,8ea1a5e9v,a5e9v 3127 e384a7 3127 00003127 a3b8 a3b8 a3b8 a3b8 a3b8 a3b8 a3b8 -500 a3b9 a3b9 a3b9 * 256a * 8ea1a5ea,a5ea,8ea1a5eav,a5eav 3128 e384a8 3128 00003128 a3b9 a3b9 a3b9 a3b9 a3b9 a3b9 a3b9 -501 a3ba a3ba a3ba * 256b * 8ea1a5eb,a5eb,8ea1a5ebv,a5ebv 3129 e384a9 3129 00003129 a3ba a3ba a3ba a3ba a3ba a3ba a3ba -502 a3bb a3bb a3bb * 256c * 8ea1a5ec,a5ec,8ea1a5ecv,a5ecv 02d9 cb99 02d9 000002d9 a3bb a3bb a3bb a3bb a3bb a3bb a3bb -503 a3bd a3bd a3bd * 256e * 8ea1a5ee,a5ee,8ea1a5eev,a5eev 02ca cb8a 02ca 000002ca a3bd a3bd a3bd a3bd a3bd a3bd a3bd -504 a3be a3be a3be * 256f * 8ea1a5ef,a5ef,8ea1a5efv,a5efv 02c7 cb87,cc8c 02c7,030c 000002c7,0000030c a3be a3be a3be a3be a3be a3be a3be -505 a3bf a3bf a3bf * 2570 * 8ea1a5f0,a5f0,8ea1a5f0v,a5f0v 02cb cb8b 02cb 000002cb a3bf a3bf a3bf a3bf a3bf a3bf a3bf -506 * * c6a1 * 2621 * 8ea1a6a1,a6a1,8ea1a6a1v,a6a1v 2460 e291a0,ef9ab1 2460,f6b1 00002460,0000f6b1 c6a1 * * * * * c6a1 -507 * * c6a2 * 2622 * 8ea1a6a2,a6a2,8ea1a6a2v,a6a2v 2461 e291a1,ef9ab2 2461,f6b2 00002461,0000f6b2 c6a2 * * * * * c6a2 -508 * * c6a3 * 2623 * 8ea1a6a3,a6a3,8ea1a6a3v,a6a3v 2462 e291a2,ef9ab3 2462,f6b3 00002462,0000f6b3 c6a3 * * * * * c6a3 -509 * * c6a4 * 2624 * 8ea1a6a4,a6a4,8ea1a6a4v,a6a4v 2463 e291a3,ef9ab4 2463,f6b4 00002463,0000f6b4 c6a4 * * * * * c6a4 -510 * * c6a5 * 2625 * 8ea1a6a5,a6a5,8ea1a6a5v,a6a5v 2464 e291a4,ef9ab5 2464,f6b5 00002464,0000f6b5 c6a5 * * * * * c6a5 -511 * * c6a6 * 2626 * 8ea1a6a6,a6a6,8ea1a6a6v,a6a6v 2465 e291a5,ef9ab6 2465,f6b6 00002465,0000f6b6 c6a6 * * * * * c6a6 -512 * * c6a7 * 2627 * 8ea1a6a7,a6a7,8ea1a6a7v,a6a7v 2466 e291a6,ef9ab7 2466,f6b7 00002466,0000f6b7 c6a7 * * * * * c6a7 -513 * * c6a8 * 2628 * 8ea1a6a8,a6a8,8ea1a6a8v,a6a8v 2467 e291a7,ef9ab8 2467,f6b8 00002467,0000f6b8 c6a8 * * * * * c6a8 -514 * * c6a9 * 2629 * 8ea1a6a9,a6a9,8ea1a6a9v,a6a9v 2468 e291a8,ef9ab9 2468,f6b9 00002468,0000f6b9 c6a9 * * * * * c6a9 -515 * * c6aa * 262a * 8ea1a6aa,a6aa,8ea1a6aav,a6aav 2469 e291a9,ef9aba 2469,f6ba 00002469,0000f6ba c6aa * * * * * c6aa -516 * * c6ab * 262b * 8ea1a6ab,a6ab,8ea1a6abv,a6abv 2474 e291b4,ef9abb 2474,f6bb 00002474,0000f6bb c6ab * * * * * c6ab -517 * * c6ac * 262c * 8ea1a6ac,a6ac,8ea1a6acv,a6acv 2475 e291b5,ef9abc 2475,f6bc 00002475,0000f6bc c6ac * * * * * c6ac -518 * * c6ad * 262d * 8ea1a6ad,a6ad,8ea1a6adv,a6adv 2476 e291b6,ef9abd 2476,f6bd 00002476,0000f6bd c6ad * * * * * c6ad -519 * * c6ae * 262e * 8ea1a6ae,a6ae,8ea1a6aev,a6aev 2477 e291b7,ef9abe 2477,f6be 00002477,0000f6be c6ae * * * * * c6ae -520 * * c6af * 262f * 8ea1a6af,a6af,8ea1a6afv,a6afv 2478 e291b8,ef9abf 2478,f6bf 00002478,0000f6bf c6af * * * * * c6af -521 * * c6b0 * 2630 * 8ea1a6b0,a6b0,8ea1a6b0v,a6b0v 2479 e291b9,ef9b80 2479,f6c0 00002479,0000f6c0 c6b0 * * * * * c6b0 -522 * * c6b1 * 2631 * 8ea1a6b1,a6b1,8ea1a6b1v,a6b1v 247a e291ba,ef9b81 247a,f6c1 0000247a,0000f6c1 c6b1 * * * * * c6b1 -523 * * c6b2 * 2632 * 8ea1a6b2,a6b2,8ea1a6b2v,a6b2v 247b e291bb,ef9b82 247b,f6c2 0000247b,0000f6c2 c6b2 * * * * * c6b2 -524 * * c6b3 * 2633 * 8ea1a6b3,a6b3,8ea1a6b3v,a6b3v 247c e291bc,ef9b83 247c,f6c3 0000247c,0000f6c3 c6b3 * * * * * c6b3 -525 * * c6b4 * 2634 * 8ea1a6b4,a6b4,8ea1a6b4v,a6b4v 247d e291bd,ef9b84 247d,f6c4 0000247d,0000f6c4 c6b4 * * * * * c6b4 -526 * * c6b5 * 2635 * 8ea1a6b5,a6b5,8ea1a6b5v,a6b5v 2170 e285b0,ef9b85 2170,f6c5 00002170,0000f6c5 c6b5 * * * * * c6b5 -527 * * c6b6 * 2636 * 8ea1a6b6,a6b6,8ea1a6b6v,a6b6v 2171 e285b1,ef9b86 2171,f6c6 00002171,0000f6c6 c6b6 * * * * * c6b6 -528 * * c6b7 * 2637 * 8ea1a6b7,a6b7,8ea1a6b7v,a6b7v 2172 e285b2,ef9b87 2172,f6c7 00002172,0000f6c7 c6b7 * * * * * c6b7 -529 * * c6b8 * 2638 * 8ea1a6b8,a6b8,8ea1a6b8v,a6b8v 2173 e285b3,ef9b88 2173,f6c8 00002173,0000f6c8 c6b8 * * * * * c6b8 -530 * * c6b9 * 2639 * 8ea1a6b9,a6b9,8ea1a6b9v,a6b9v 2174 e285b4,ef9b89 2174,f6c9 00002174,0000f6c9 c6b9 * * * * * c6b9 -531 * * c6ba * 263a * 8ea1a6ba,a6ba,8ea1a6bav,a6bav 2175 e285b5,ef9b8a 2175,f6ca 00002175,0000f6ca c6ba * * * * * c6ba -532 * * c6bb * 263b * 8ea1a6bb,a6bb,8ea1a6bbv,a6bbv 2176 e285b6,ef9b8b 2176,f6cb 00002176,0000f6cb c6bb * * * * * c6bb -533 * * c6bc * 263c * 8ea1a6bc,a6bc,8ea1a6bcv,a6bcv 2177 e285b7,ef9b8c 2177,f6cc 00002177,0000f6cc c6bc * * * * * c6bc -534 * * c6bd * 263d * 8ea1a6bd,a6bd,8ea1a6bdv,a6bdv 2178 e285b8,ef9b8d 2178,f6cd 00002178,0000f6cd c6bd * * * * * c6bd -535 * * c6be * 263e * 8ea1a6be,a6be,8ea1a6bev,a6bev 2179 e285b9,ef9b8e 2179,f6ce 00002179,0000f6ce c6be * * * * * c6be -536 * * * * 2722 * 8ea1a7a2,a7a2,8ea1a7a2v,a7a2v 4e28 e4b8a8,e2bc81 4e28,2f01 00004e28,00002f01 * * * * * * * -537 * * c6bf * 2723 * 8ea1a7a3,a7a3,8ea1a7a3v,a7a3v 4e36 e4b8b6,e2bc82,ef9b8f 4e36,2f02,f6cf 00004e36,00002f02,0000f6cf c6bf * * * * * c6bf -538 * * c6c0 * 2724 * 8ea1a7a4,a7a4,8ea1a7a4v,a7a4v 4e3f e4b8bf,e2bc83,ef9b90 4e3f,2f03,f6d0 00004e3f,00002f03,0000f6d0 c6c0 * * * * * c6c0 -539 * * c6c1 * 2726 * 8ea1a7a6,a7a6,8ea1a7a6v,a7a6v 4e85 e2bc85,e4ba85,ef9b91 2f05,4e85,f6d1 00002f05,00004e85,0000f6d1 c6c1 * * * * * c6c1 -540 * * c6c2 * 2728 * 8ea1a7a8,a7a8,8ea1a7a8v,a7a8v 4ea0 e2bc87,e4baa0,ef9b92 2f07,4ea0,f6d2 00002f07,00004ea0,0000f6d2 c6c2 * * * * * c6c2 -541 * * c6c3 * 272d * 8ea1a7ad,a7ad,8ea1a7adv,a7adv 5182 e58682,e2bc8c,ef9b93 5182,2f0c,f6d3 00005182,00002f0c,0000f6d3 c6c3 * * * * * c6c3 -542 * * c6c4 * 272e * 8ea1a7ae,a7ae,8ea1a7aev,a7aev 5196 e58696,e2bc8d,ef9b94 5196,2f0d,f6d4 00005196,00002f0d,0000f6d4 c6c4 * * * * * c6c4 -543 * * c6c5 * 272f * 8ea1a7af,a7af,8ea1a7afv,a7afv 51ab e586ab,e2bc8e,ef9b95 51ab,2f0e,f6d5 000051ab,00002f0e,0000f6d5 c6c5 * * * * * c6c5 -544 * * c6c6 * 2734 * 8ea1a7b4,a7b4,8ea1a7b4v,a7b4v 52f9 e2bc93,e58bb9,ef9b96 2f13,52f9,f6d6 00002f13,000052f9,0000f6d6 c6c6 * * * * * c6c6 -545 * * c6c7 * 2737 * 8ea1a7b7,a7b7,8ea1a7b7v,a7b7v 5338 e2bc96,e58cb8,ef9b97 2f16,5338,f6d7 00002f16,00005338,0000f6d7 c6c7 * * * * * c6c7 -546 * * c6c8 * 273a * 8ea1a7ba,a7ba,8ea1a7bav,a7bav 5369 e2bc99,e58da9,ef9b98 2f19,5369,f6d8 00002f19,00005369,0000f6d8 c6c8 * * * * * c6c8 -547 * * c6c9 * 273c * 8ea1a7bc,a7bc,8ea1a7bcv,a7bcv 53b6 e2bc9b,e58eb6,ef9b99 2f1b,53b6,f6d9 00002f1b,000053b6,0000f6d9 c6c9 * * * * * c6c9 -548 * * c6ca * 2742 * 8ea1a7c2,a7c2,8ea1a7c2v,a7c2v 5902,590a e2bca2,e5a48a,ef9b9a 2f22,590a,f6da 00002f22,0000590a,0000f6da c6ca * * * * * c6ca -549 * * c6cb * 2747 * 8ea1a7c7,a7c7,8ea1a7c7v,a7c7v 5b80 e2bca7,e5ae80,ef9b9b 2f27,5b80,f6db 00002f27,00005b80,0000f6db c6cb * * * * * c6cb -550 * * c6cc * 274e * 8ea1a7ce,a7ce,8ea1a7cev,a7cev 5ddb e2bcae,e5b79b,ef9b9c 2f2e,5ddb,f6dc 00002f2e,00005ddb,0000f6dc c6cc * 91b0 * * * c6cc -551 * * c6cd * 2753 * 8ea1a7d3,a7d3,8ea1a7d3v,a7d3v 2f33,5e7a e5b9ba,e2bcb3,ef9b9d 5e7a,2f33,f6dd 00005e7a,00002f33,0000f6dd c6cd * * * * * c6cd -552 * * c6ce * 2754 * 8ea1a7d4,a7d4,8ea1a7d4v,a7d4v 5e7f e5b9bf,e2bcb4,ef9b9e 5e7f,2f34,f6de 00005e7f,00002f34,0000f6de c6ce * 9159 * * * c6ce -553 * * c6cf * 2755 * 8ea1a7d5,a7d5,8ea1a7d5v,a7d5v 5ef4 e5bbb4,e2bcb5 5ef4,2f35 00005ef4,00002f35 c6cf * * * * * * -554 * * c6d0 * 2759 * 8ea1a7d9,a7d9,8ea1a7d9v,a7d9v 5f50 e5bd90,e2bcb9,ef9ba0 5f50,2f39,f6e0 00005f50,00002f39,0000f6e0 c6d0 * * * * * c6d0 -555 * * c6d1 * 275a * 8ea1a7da,a7da,8ea1a7dav,a7dav 5f61 e5bda1,e2bcba,ef9ba1 5f61,2f3a,f6e1 00005f61,00002f3a,0000f6e1 c6d1 * * * * * c6d1 -556 * * c6d2 * 2761 * 8ea1a7e1,a7e1,8ea1a7e1v,a7e1v 6534 e2bd81,e694b4,ef9ba2 2f41,6534,f6e2 00002f41,00006534,0000f6e2 c6d2 * * * * * c6d2 -557 * * c6d3 * 2766 * 8ea1a7e6,a7e6,8ea1a7e6v,a7e6v 65e0 e2bd86,e697a0 2f46,65e0 00002f46,000065e0 c6d3 * * * * * * -558 * * c6d4 * 2829 * 8ea1a8a9,a8a9,8ea1a8a9v,a8a9v 7592 e79692,ef9ba4,e2bda7 7592,f6e4,2f67 00007592,0000f6e4,00002f67 c6d4 * * * * * c6d4 -559 * * c6d5 * 282a * 8ea1a8aa,a8aa,8ea1a8aav,a8aav 7676 e799b6,e2bda8 7676,2f68 00007676,00002f68 c6d5 * * * * * * -560 * * c6d6 * 2863 * 8ea1a8e3,a8e3,8ea1a8e3v,a8e3v 8fb5 e2bea1,e8beb5,ef9ba6 2fa1,8fb5,f6e6 00002fa1,00008fb5,0000f6e6 c6d6 * 90c4 * * * c6d6 -561 * * c6d7 * 286c * 8ea1a8ec,a8ec,8ea1a8ecv,a8ecv 96b6 e2beaa,e99ab6 2faa,96b6 00002faa,000096b6 c6d7 * * * * * * -562 * a3c0 * * 4221 * 8ea1c2a1,c2a1,8ea1c2a1v,c2a1v 2400 e29080 2400 00002400 * * * * * * * -563 * a3c1 * * 4222 * 8ea1c2a2,c2a2,8ea1c2a2v,c2a2v 2401 e29081 2401 00002401 * * * * * * * -564 * a3c2 * * 4223 * 8ea1c2a3,c2a3,8ea1c2a3v,c2a3v 2402 e29082 2402 00002402 * * * * * * * -565 * a3c3 * * 4224 * 8ea1c2a4,c2a4,8ea1c2a4v,c2a4v 2403 e29083 2403 00002403 * * * * * * * -566 * a3c4 * * 4225 * 8ea1c2a5,c2a5,8ea1c2a5v,c2a5v 2404 e29084 2404 00002404 * * * * * * * -567 * a3c5 * * 4226 * 8ea1c2a6,c2a6,8ea1c2a6v,c2a6v 2405 e29085 2405 00002405 * * * * * * * -568 * a3c6 * * 4227 * 8ea1c2a7,c2a7,8ea1c2a7v,c2a7v 2406 e29086 2406 00002406 * * * * * * * -569 * a3c7 * * 4228 * 8ea1c2a8,c2a8,8ea1c2a8v,c2a8v 2407 e29087 2407 00002407 * * * * * * * -570 * a3c8 * * 4229 * 8ea1c2a9,c2a9,8ea1c2a9v,c2a9v 2408 e29088 2408 00002408 * * * * * * * -571 * a3c9 * * 422a * 8ea1c2aa,c2aa,8ea1c2aav,c2aav 2409 e29089 2409 00002409 * * * * * * * -572 * a3ca * * 422b * 8ea1c2ab,c2ab,8ea1c2abv,c2abv 240a e2908a 240a 0000240a * * * * * * * -573 * a3cb * * 422c * 8ea1c2ac,c2ac,8ea1c2acv,c2acv 240b e2908b 240b 0000240b * * * * * * * -574 * a3cc * * 422d * 8ea1c2ad,c2ad,8ea1c2adv,c2adv 240c e2908c 240c 0000240c * * * * * * * -575 * a3cd * * 422e * 8ea1c2ae,c2ae,8ea1c2aev,c2aev 240d e2908d 240d 0000240d * * * * * * * -576 * a3ce * * 422f * 8ea1c2af,c2af,8ea1c2afv,c2afv 240e e2908e 240e 0000240e * * * * * * * -577 * a3cf * * 4230 * 8ea1c2b0,c2b0,8ea1c2b0v,c2b0v 240f e2908f 240f 0000240f * * * * * * * -578 * a3d0 * * 4231 * 8ea1c2b1,c2b1,8ea1c2b1v,c2b1v 2410 e29090 2410 00002410 * * * * * * * -579 * a3d1 * * 4232 * 8ea1c2b2,c2b2,8ea1c2b2v,c2b2v 2411 e29091 2411 00002411 * * * * * * * -580 * a3d2 * * 4233 * 8ea1c2b3,c2b3,8ea1c2b3v,c2b3v 2412 e29092 2412 00002412 * * * * * * * -581 * a3d3 * * 4234 * 8ea1c2b4,c2b4,8ea1c2b4v,c2b4v 2413 e29093 2413 00002413 * * * * * * * -582 * a3d4 * * 4235 * 8ea1c2b5,c2b5,8ea1c2b5v,c2b5v 2414 e29094 2414 00002414 * * * * * * * -583 * a3d5 * * 4236 * 8ea1c2b6,c2b6,8ea1c2b6v,c2b6v 2415 e29095 2415 00002415 * * * * * * * -584 * a3d6 * * 4237 * 8ea1c2b7,c2b7,8ea1c2b7v,c2b7v 2416 e29096 2416 00002416 * * * * * * * -585 * a3d7 * * 4238 * 8ea1c2b8,c2b8,8ea1c2b8v,c2b8v 2417 e29097 2417 00002417 * * * * * * * -586 * a3d8 * * 4239 * 8ea1c2b9,c2b9,8ea1c2b9v,c2b9v 2418 e29098 2418 00002418 * * * * * * * -587 * a3d9 * * 423a * 8ea1c2ba,c2ba,8ea1c2bav,c2bav 2419 e29099 2419 00002419 * * * * * * * -588 * a3da * * 423b * 8ea1c2bb,c2bb,8ea1c2bbv,c2bbv 241a e2909a 241a 0000241a * * * * * * * -589 * a3db * * 423c * 8ea1c2bc,c2bc,8ea1c2bcv,c2bcv 241b e2909b 241b 0000241b * * * * * * * -590 * a3dc * * 423d * 8ea1c2bd,c2bd,8ea1c2bdv,c2bdv 241c e2909c 241c 0000241c * * * * * * * -591 * a3dd * * 423e * 8ea1c2be,c2be,8ea1c2bev,c2bev 241d e2909d 241d 0000241d * * * * * * * -592 * a3de * * 423f * 8ea1c2bf,c2bf,8ea1c2bfv,c2bfv 241e e2909e 241e 0000241e * * * * * * * -593 * a3df * * 4240 * 8ea1c2c0,c2c0,8ea1c2c0v,c2c0v 241f e2909f 241f 0000241f * * * * * * * -594 * a3e0 * * 4241 * 8ea1c2c1,c2c1,8ea1c2c1v,c2c1v 2421 e290a1 2421 00002421 * * * * * * * -595 a440 a440 a440 * 2721,4421 * 8ea1a7a1,8ea1c4a1,a7a1,c4a1,8ea1a7a1v,8ea1c4a1v,a7a1v,c4a1v 4e00 e2bc80,e4b880 2f00,4e00 00002f00,00004e00 a440 a440 a440 a440 a440 a440 a440 -596 a441 a441 a441 * 2725,4422 * 8ea1a7a5,8ea1c4a2,a7a5,c4a2,8ea1a7a5v,8ea1c4a2v,a7a5v,c4a2v 4e59 e2bc84,e4b999 2f04,4e59 00002f04,00004e59 a441 a441 a441 a441 a441 a441 a441 -597 a442 a442 a442 * 4423 * 8ea1c4a3,c4a3,8ea1c4a3v,c4a3v 4e01 e4b881 4e01 00004e01 a442 a442 a442 a442 a442 a442 a442 -598 a443 a443 a443 * 4424 * 8ea1c4a4,c4a4,8ea1c4a4v,c4a4v 4e03 e4b883 4e03 00004e03 a443 a443 a443 a443 a443 a443 a443 -599 a444 a444 a444 * 4425 * 8ea1c4a5,c4a5,8ea1c4a5v,c4a5v 4e43 e4b983 4e43 00004e43 a444 a444 a444 a444 a444 a444 a444 -600 a445 a445 a445 * 4426 * 8ea1c4a6,c4a6,8ea1c4a6v,c4a6v 4e5d e4b99d 4e5d 00004e5d a445 a445 a445 a445 a445 a445 a445 -601 a446 a446 a446 * 4427 * 8ea1c4a7,c4a7,8ea1c4a7v,c4a7v 4e86 e4ba86 4e86 00004e86 a446 a446 a446 a446 a446 a446 a446 -602 a447 a447 a447 * 2727,4428 * 8ea1a7a7,8ea1c4a8,a7a7,c4a8,8ea1a7a7v,8ea1c4a8v,a7a7v,c4a8v 4e8c e2bc86,e4ba8c 2f06,4e8c 00002f06,00004e8c a447 a447 a447 a447 a447 a447 a447 -603 a448 a448 a448 * 2729,4429 * 8ea1a7a9,8ea1c4a9,a7a9,c4a9,8ea1a7a9v,8ea1c4a9v,a7a9v,c4a9v 4eba e4baba,e2bc88 4eba,2f08 00004eba,00002f08 a448 a448 a448 a448 a448 a448 a448 -604 a449 a449 a449 * 272a,442a * 8ea1a7aa,8ea1c4aa,a7aa,c4aa,8ea1a7aav,8ea1c4aav,a7aav,c4aav 513f e584bf,e2bc89 513f,2f09 0000513f,00002f09 a449 a449 a449 a449 a449 a449 a449 -605 a44a a44a a44a * 272b,442b * 8ea1a7ab,8ea1c4ab,a7ab,c4ab,8ea1a7abv,8ea1c4abv,a7abv,c4abv 5165 e585a5,e2bc8a 5165,2f0a 00005165,00002f0a a44a a44a a44a a44a a44a a44a a44a -606 a44b a44b a44b * 272c,442c * 8ea1a7ac,8ea1c4ac,a7ac,c4ac,8ea1a7acv,8ea1c4acv,a7acv,c4acv 516b e585ab,e2bc8b 516b,2f0b 0000516b,00002f0b a44b a44b a44b a44b a44b a44b a44b -607 a44c a44c a44c * 2730,442d * 8ea1a7b0,8ea1c4ad,a7b0,c4ad,8ea1a7b0v,8ea1c4adv,a7b0v,c4adv 51e0 e2bc8f,e587a0 2f0f,51e0 00002f0f,000051e0 a44c a44c a44c a44c a44c a44c a44c -608 a44d a44d a44d * 2732,442e * 8ea1a7b2,8ea1c4ae,a7b2,c4ae,8ea1a7b2v,8ea1c4aev,a7b2v,c4aev 5200 e2bc91,e58880 2f11,5200 00002f11,00005200 a44d a44d a44d a44d a44d a44d a44d -609 a44e a44e a44e * 442f * 8ea1c4af,c4af,8ea1c4afv,c4afv 5201 e58881 5201 00005201 a44e a44e a44e a44e a44e a44e a44e -610 a44f a44f a44f * 2733,4430 * 8ea1a7b3,8ea1c4b0,a7b3,c4b0,8ea1a7b3v,8ea1c4b0v,a7b3v,c4b0v 529b e2bc92,e58a9b 2f12,529b 00002f12,0000529b a44f a44f a44f a44f a44f a44f a44f -611 a450 a450 a450 * 2735,4431 * 8ea1a7b5,8ea1c4b1,a7b5,c4b1,8ea1a7b5v,8ea1c4b1v,a7b5v,c4b1v 5315 e2bc94,e58c95 2f14,5315 00002f14,00005315 a450 a450 a450 a450 a450 a450 a450 -612 a451 a451 a451 * 2738,4432 * 8ea1a7b8,8ea1c4b2,a7b8,c4b2,8ea1a7b8v,8ea1c4b2v,a7b8v,c4b2v 5341 e58d81,e2bc97 5341,2f17 00005341,00002f17 a451 a451 a451 a451 a451 a451 a451 -613 a452 a452 a452 * 2739,4433 * 8ea1a7b9,8ea1c4b3,a7b9,c4b3,8ea1a7b9v,8ea1c4b3v,a7b9v,c4b3v 535c e58d9c,e2bc98 535c,2f18 0000535c,00002f18 a452 a452 a452 a452 a452 a452 a452 -614 a453 a453 a453 * 273d,4434 * 8ea1a7bd,8ea1c4b4,a7bd,c4b4,8ea1a7bdv,8ea1c4b4v,a7bdv,c4b4v 53c8 e2bc9c,e58f88 2f1c,53c8 00002f1c,000053c8 a453 a453 a453 a453 a453 a453 a453 -615 a454 a454 a454 * 4435 * 8ea1c4b5,c4b5,8ea1c4b5v,c4b5v 4e09 e4b889 4e09 00004e09 a454 a454 a454 a454 a454 a454 a454 -616 a455 a455 a455 * 4436 * 8ea1c4b6,c4b6,8ea1c4b6v,c4b6v 4e0b e4b88b 4e0b 00004e0b a455 a455 a455 a455 a455 a455 a455 -617 a456 a456 a456 * 4437 * 8ea1c4b7,c4b7,8ea1c4b7v,c4b7v 4e08 e4b888 4e08 00004e08 a456 a456 a456 a456 a456 a456 a456 -618 a457 a457 a457 * 4438 * 8ea1c4b8,c4b8,8ea1c4b8v,c4b8v 4e0a e4b88a 4e0a 00004e0a a457 a457 a457 a457 a457 a457 a457 -619 a458 a458 a458 * 4439 * 8ea1c4b9,c4b9,8ea1c4b9v,c4b9v 4e2b e4b8ab 4e2b 00004e2b a458 a458 a458 a458 a458 a458 a458 -620 a459 a459 a459 * 443a * 8ea1c4ba,c4ba,8ea1c4bav,c4bav 4e38 e4b8b8 4e38 00004e38 a459 a459 a459 a459 a459 a459 a459 -621 a45a a45a a45a * 443b * 8ea1c4bb,c4bb,8ea1c4bbv,c4bbv 51e1 e587a1 51e1 000051e1 a45a a45a a45a a45a a45a a45a a45a -622 a45b a45b a45b * 443c * 8ea1c4bc,c4bc,8ea1c4bcv,c4bcv 4e45 e4b985 4e45 00004e45 a45b a45b a45b a45b a45b a45b a45b -623 a45c a45c a45c * 443d * 8ea1c4bd,c4bd,8ea1c4bdv,c4bdv 4e48 e4b988 4e48 00004e48 a45c a45c a45c a45c a45c a45c a45c -624 a45d a45d a45d * 443e * 8ea1c4be,c4be,8ea1c4bev,c4bev 4e5f e4b99f 4e5f 00004e5f a45d a45d a45d a45d a45d a45d a45d -625 a45e a45e a45e * 443f * 8ea1c4bf,c4bf,8ea1c4bfv,c4bfv 4e5e e4b99e 4e5e 00004e5e a45e a45e a45e a45e a45e a45e a45e -626 a45f a45f a45f * 4440 * 8ea1c4c0,c4c0,8ea1c4c0v,c4c0v 4e8e e4ba8e 4e8e 00004e8e a45f a45f a45f a45f a45f a45f a45f -627 a460 a460 a460 * 4441 * 8ea1c4c1,c4c1,8ea1c4c1v,c4c1v 4ea1 e4baa1 4ea1 00004ea1 a460 a460 a460 a460 a460 a460 a460 -628 a461,c94a a461,c94a a461,c94a * 4442 * 8ea1c4c2,c4c2,8ea1c4c2v,c4c2v 5140,fa0c e58580,efa88c 5140,fa0c 00005140,0000fa0c c94a,a461 a461,c94a a461,c94a a461,c94a a461,c94a a461,c94a c94a,a461 -629 a462 a462 a462 * 4443 * 8ea1c4c3,c4c3,8ea1c4c3v,c4c3v 5203 e58883 5203 00005203 a462 a462 a462 a462 a462 a462 a462 -630 a463 a463 a463 * 4444 * 8ea1c4c4,c4c4,8ea1c4c4v,c4c4v 52fa e58bba 52fa 000052fa a463 a463 a463 a463 a463 a463 a463 -631 a464 a464 a464 * 4445 * 8ea1c4c5,c4c5,8ea1c4c5v,c4c5v 5343 e58d83 5343 00005343 a464 a464 a464 a464 a464 a464 a464 -632 a465 a465 a465 * 4446 * 8ea1c4c6,c4c6,8ea1c4c6v,c4c6v 53c9 e58f89 53c9 000053c9 a465 a465 a465 a465 a465 a465 a465 -633 a466 a466 a466 * 273e,4447 * 8ea1a7be,8ea1c4c7,a7be,c4c7,8ea1a7bev,8ea1c4c7v,a7bev,c4c7v 53e3 e2bc9d,e58fa3 2f1d,53e3 00002f1d,000053e3 a466 a466 a466 a466 a466 a466 a466 -634 a467 a467 a467 * 2740,4448 * 8ea1a7c0,8ea1c4c8,a7c0,c4c8,8ea1a7c0v,8ea1c4c8v,a7c0v,c4c8v 571f e59c9f,e2bc9f 571f,2f1f 0000571f,00002f1f a467 a467 a467 a467 a467 a467 a467 -635 a468 a468 a468 * 2741,4449 * 8ea1a7c1,8ea1c4c9,a7c1,c4c9,8ea1a7c1v,8ea1c4c9v,a7c1v,c4c9v 58eb e5a3ab,e2bca0 58eb,2f20 000058eb,00002f20 a468 a468 a468 a468 a468 a468 a468 -636 a469 a469 a469 * 2743,444a * 8ea1a7c3,8ea1c4ca,a7c3,c4ca,8ea1a7c3v,8ea1c4cav,a7c3v,c4cav 5915 e5a495,e2bca3 5915,2f23 00005915,00002f23 a469 a469 a469 a469 a469 a469 a469 -637 a46a a46a a46a * 2744,444b * 8ea1a7c4,8ea1c4cb,a7c4,c4cb,8ea1a7c4v,8ea1c4cbv,a7c4v,c4cbv 5927 e5a4a7,e2bca4 5927,2f24 00005927,00002f24 a46a a46a a46a a46a a46a a46a a46a -638 a46b a46b a46b * 2745,444c * 8ea1a7c5,8ea1c4cc,a7c5,c4cc,8ea1a7c5v,8ea1c4ccv,a7c5v,c4ccv 5973 e5a5b3,e2bca5 5973,2f25 00005973,00002f25 a46b a46b a46b a46b a46b a46b a46b -639 a46c a46c a46c * 2746,444d * 8ea1a7c6,8ea1c4cd,a7c6,c4cd,8ea1a7c6v,8ea1c4cdv,a7c6v,c4cdv 5b50 e2bca6,e5ad90 2f26,5b50 00002f26,00005b50 a46c a46c a46c a46c a46c a46c a46c -640 a46d a46d a46d * 444e * 8ea1c4ce,c4ce,8ea1c4cev,c4cev 5b51 e5ad91 5b51 00005b51 a46d a46d a46d a46d a46d a46d a46d -641 a46e a46e a46e * 444f * 8ea1c4cf,c4cf,8ea1c4cfv,c4cfv 5b53 e5ad93 5b53 00005b53 a46e a46e a46e a46e a46e a46e a46e -642 a46f a46f a46f * 2748,4450 * 8ea1a7c8,8ea1c4d0,a7c8,c4d0,8ea1a7c8v,8ea1c4d0v,a7c8v,c4d0v 5bf8 e5afb8,e2bca8 5bf8,2f28 00005bf8,00002f28 a46f a46f a46f a46f a46f a46f a46f -643 a470 a470 a470 * 2749,4451 * 8ea1a7c9,8ea1c4d1,a7c9,c4d1,8ea1a7c9v,8ea1c4d1v,a7c9v,c4d1v 5c0f e5b08f,e2bca9 5c0f,2f29 00005c0f,00002f29 a470 a470 a470 a470 a470 a470 a470 -644 a471 a471 a471 * 274a,4452 * 8ea1a7ca,8ea1c4d2,a7ca,c4d2,8ea1a7cav,8ea1c4d2v,a7cav,c4d2v 5c22 e5b0a2,e2bcaa 5c22,2f2a 00005c22,00002f2a a471 a471 a471 a471 a471 a471 a471 -645 a472 a472 a472 * 274b,4453 * 8ea1a7cb,8ea1c4d3,a7cb,c4d3,8ea1a7cbv,8ea1c4d3v,a7cbv,c4d3v 5c38 e5b0b8,e2bcab 5c38,2f2b 00005c38,00002f2b a472 a472 a472 a472 a472 a472 a472 -646 a473 a473 a473 * 274d,4454 * 8ea1a7cd,8ea1c4d4,a7cd,c4d4,8ea1a7cdv,8ea1c4d4v,a7cdv,c4d4v 5c71 e2bcad,e5b1b1 2f2d,5c71 00002f2d,00005c71 a473 a473 a473 a473 a473 a473 a473 -647 a474 a474 a474 * 4455 * 8ea1c4d5,c4d5,8ea1c4d5v,c4d5v 5ddd e5b79d 5ddd 00005ddd a474 a474 a474 a474 a474 a474 a474 -648 a475 a475 a475 * 274f,4456 * 8ea1a7cf,8ea1c4d6,a7cf,c4d6,8ea1a7cfv,8ea1c4d6v,a7cfv,c4d6v 5de5 e5b7a5,e2bcaf 5de5,2f2f 00005de5,00002f2f a475 a475 a475 a475 a475 a475 a475 -649 a476 a476 a476 * 2750,4457 * 8ea1a7d0,8ea1c4d7,a7d0,c4d7,8ea1a7d0v,8ea1c4d7v,a7d0v,c4d7v 5df1 e2bcb0,e5b7b1 2f30,5df1 00002f30,00005df1 a476 a476 a476 a476 a476 a476 a476 -650 a477 a477 a477 * 4458 * 8ea1c4d8,c4d8,8ea1c4d8v,c4d8v 5df2 e5b7b2 5df2 00005df2 a477 a477 a477 a477 a477 a477 a477 -651 a478 a478 a478 * 4459 * 8ea1c4d9,c4d9,8ea1c4d9v,c4d9v 5df3 e5b7b3 5df3 00005df3 a478 a478 a478 a478 a478 a478 a478 -652 a479 a479 a479 * 2751,445a * 8ea1a7d1,8ea1c4da,a7d1,c4da,8ea1a7d1v,8ea1c4dav,a7d1v,c4dav 5dfe e5b7be,e2bcb1 5dfe,2f31 00005dfe,00002f31 a479 a479 a479 a479 a479 a479 a479 -653 a47a a47a a47a * 2752,445b * 8ea1a7d2,8ea1c4db,a7d2,c4db,8ea1a7d2v,8ea1c4dbv,a7d2v,c4dbv 5e72 e5b9b2,e2bcb2 5e72,2f32 00005e72,00002f32 a47a a47a a47a a47a a47a a47a a47a -654 a47b a47b a47b * 2756,445c * 8ea1a7d6,8ea1c4dc,a7d6,c4dc,8ea1a7d6v,8ea1c4dcv,a7d6v,c4dcv 5efe e5bbbe,e2bcb6 5efe,2f36 00005efe,00002f36 a47b a47b a47b a47b a47b a47b a47b -655 a47c a47c a47c * 2757,445d * 8ea1a7d7,8ea1c4dd,a7d7,c4dd,8ea1a7d7v,8ea1c4ddv,a7d7v,c4ddv 5f0b e5bc8b,e2bcb7 5f0b,2f37 00005f0b,00002f37 a47c a47c a47c a47c a47c a47c a47c -656 a47d a47d a47d * 2758,445e * 8ea1a7d8,8ea1c4de,a7d8,c4de,8ea1a7d8v,8ea1c4dev,a7d8v,c4dev 5f13 e5bc93,e2bcb8 5f13,2f38 00005f13,00002f38 a47d a47d a47d a47d a47d a47d a47d -657 a47e a47e a47e * 445f * 8ea1c4df,c4df,8ea1c4dfv,c4dfv 624d e6898d 624d 0000624d a47e a47e a47e a47e a47e a47e a47e -658 a4a1 a4a1 a4a1 * 4460 * 8ea1c4e0,c4e0,8ea1c4e0v,c4e0v 4e11 e4b891 4e11 00004e11 a4a1 a4a1 a4a1 a4a1 a4a1 a4a1 a4a1 -659 a4a2 a4a2 a4a2 * 4461 * 8ea1c4e1,c4e1,8ea1c4e1v,c4e1v 4e10 e4b890 4e10 00004e10 a4a2 a4a2 a4a2 a4a2 a4a2 a4a2 a4a2 -660 a4a3 a4a3 a4a3 * 4462 * 8ea1c4e2,c4e2,8ea1c4e2v,c4e2v 4e0d e4b88d 4e0d 00004e0d a4a3 a4a3 a4a3 a4a3 a4a3 a4a3 a4a3 -661 a4a4 a4a4 a4a4 * 4463 * 8ea1c4e3,c4e3,8ea1c4e3v,c4e3v 4e2d e4b8ad 4e2d 00004e2d a4a4 a4a4 a4a4 a4a4 a4a4 a4a4 a4a4 -662 a4a5 a4a5 a4a5 * 4464 * 8ea1c4e4,c4e4,8ea1c4e4v,c4e4v 4e30 e4b8b0 4e30 00004e30 a4a5 a4a5 a4a5 a4a5 a4a5 a4a5 a4a5 -663 a4a6 a4a6 a4a6 * 4465 * 8ea1c4e5,c4e5,8ea1c4e5v,c4e5v 4e39 e4b8b9 4e39 00004e39 a4a6 a4a6 a4a6 a4a6 a4a6 a4a6 a4a6 -664 a4a7 a4a7 a4a7 * 4466 * 8ea1c4e6,c4e6,8ea1c4e6v,c4e6v 4e4b e4b98b 4e4b 00004e4b a4a7 a4a7 a4a7 a4a7 a4a7 a4a7 a4a7 -665 a4a8 a4a8 a4a8 * 4467 * 8ea1c4e7,c4e7,8ea1c4e7v,c4e7v 5c39 e5b0b9 5c39 00005c39 a4a8 a4a8 a4a8 a4a8 a4a8 a4a8 a4a8 -666 a4a9 a4a9 a4a9 * 4468 * 8ea1c4e8,c4e8,8ea1c4e8v,c4e8v 4e88 e4ba88 4e88 00004e88 a4a9 a4a9 a4a9 a4a9 a4a9 a4a9 a4a9 -667 a4aa a4aa a4aa * 4469 * 8ea1c4e9,c4e9,8ea1c4e9v,c4e9v 4e91 e4ba91 4e91 00004e91 a4aa a4aa a4aa a4aa a4aa a4aa a4aa -668 a4ab a4ab a4ab * 446a * 8ea1c4ea,c4ea,8ea1c4eav,c4eav 4e95 e4ba95 4e95 00004e95 a4ab a4ab a4ab a4ab a4ab a4ab a4ab -669 a4ac a4ac a4ac * 446b * 8ea1c4eb,c4eb,8ea1c4ebv,c4ebv 4e92 e4ba92 4e92 00004e92 a4ac a4ac a4ac a4ac a4ac a4ac a4ac -670 a4ad a4ad a4ad * 446c * 8ea1c4ec,c4ec,8ea1c4ecv,c4ecv 4e94 e4ba94 4e94 00004e94 a4ad a4ad a4ad a4ad a4ad a4ad a4ad -671 a4ae a4ae a4ae * 446d * 8ea1c4ed,c4ed,8ea1c4edv,c4edv 4ea2 e4baa2 4ea2 00004ea2 a4ae a4ae a4ae a4ae a4ae a4ae a4ae -672 a4af a4af a4af * 446e * 8ea1c4ee,c4ee,8ea1c4eev,c4eev 4ec1 e4bb81 4ec1 00004ec1 a4af a4af a4af a4af a4af a4af a4af -673 a4b0 a4b0 a4b0 * 446f * 8ea1c4ef,c4ef,8ea1c4efv,c4efv 4ec0 e4bb80 4ec0 00004ec0 a4b0 a4b0 a4b0 a4b0 a4b0 a4b0 a4b0 -674 a4b1 a4b1 a4b1 * 4470 * 8ea1c4f0,c4f0,8ea1c4f0v,c4f0v 4ec3 e4bb83 4ec3 00004ec3 a4b1 a4b1 a4b1 a4b1 a4b1 a4b1 a4b1 -675 a4b2 a4b2 a4b2 * 4471 * 8ea1c4f1,c4f1,8ea1c4f1v,c4f1v 4ec6 e4bb86 4ec6 00004ec6 a4b2 a4b2 a4b2 a4b2 a4b2 a4b2 a4b2 -676 a4b3 a4b3 a4b3 * 4472 * 8ea1c4f2,c4f2,8ea1c4f2v,c4f2v 4ec7 e4bb87 4ec7 00004ec7 a4b3 a4b3 a4b3 a4b3 a4b3 a4b3 a4b3 -677 a4b4 a4b4 a4b4 * 4473 * 8ea1c4f3,c4f3,8ea1c4f3v,c4f3v 4ecd e4bb8d 4ecd 00004ecd a4b4 a4b4 a4b4 a4b4 a4b4 a4b4 a4b4 -678 a4b5 a4b5 a4b5 * 4474 * 8ea1c4f4,c4f4,8ea1c4f4v,c4f4v 4eca e4bb8a 4eca 00004eca a4b5 a4b5 a4b5 a4b5 a4b5 a4b5 a4b5 -679 a4b6 a4b6 a4b6 * 4475 * 8ea1c4f5,c4f5,8ea1c4f5v,c4f5v 4ecb e4bb8b 4ecb 00004ecb a4b6 a4b6 a4b6 a4b6 a4b6 a4b6 a4b6 -680 a4b7 a4b7 a4b7 * 4476 * 8ea1c4f6,c4f6,8ea1c4f6v,c4f6v 4ec4 e4bb84 4ec4 00004ec4 a4b7 a4b7 a4b7 a4b7 a4b7 a4b7 a4b7 -681 a4b8 a4b8 a4b8 * 4477 * 8ea1c4f7,c4f7,8ea1c4f7v,c4f7v 5143 e58583 5143 00005143 a4b8 a4b8 a4b8 a4b8 a4b8 a4b8 a4b8 -682 a4b9 a4b9 a4b9 * 4478 * 8ea1c4f8,c4f8,8ea1c4f8v,c4f8v 5141 e58581 5141 00005141 a4b9 a4b9 a4b9 a4b9 a4b9 a4b9 a4b9 -683 a4ba a4ba a4ba * 4479 * 8ea1c4f9,c4f9,8ea1c4f9v,c4f9v 5167 e585a7 5167 00005167 a4ba a4ba a4ba a4ba a4ba a4ba a4ba -684 a4bb a4bb a4bb * 447a * 8ea1c4fa,c4fa,8ea1c4fav,c4fav 516d e585ad 516d 0000516d a4bb a4bb a4bb a4bb a4bb a4bb a4bb -685 a4bc a4bc a4bc * 447b * 8ea1c4fb,c4fb,8ea1c4fbv,c4fbv 516e e585ae 516e 0000516e a4bc a4bc a4bc a4bc a4bc a4bc a4bc -686 a4bd a4bd a4bd * 447c * 8ea1c4fc,c4fc,8ea1c4fcv,c4fcv 516c e585ac 516c 0000516c a4bd a4bd a4bd a4bd a4bd a4bd a4bd -687 a4be a4be a4be * 447d * 8ea1c4fd,c4fd,8ea1c4fdv,c4fdv 5197 e58697 5197 00005197 a4be a4be a4be a4be a4be a4be a4be -688 a4bf a4bf a4bf * 447e * 8ea1c4fe,c4fe,8ea1c4fev,c4fev 51f6 e587b6 51f6 000051f6 a4bf a4bf a4bf a4bf a4bf a4bf a4bf -689 a4c0 a4c0 a4c0 * 4521 * 8ea1c5a1,c5a1,8ea1c5a1v,c5a1v 5206 e58886 5206 00005206 a4c0 a4c0 a4c0 a4c0 a4c0 a4c0 a4c0 -690 a4c1 a4c1 a4c1 * 4522 * 8ea1c5a2,c5a2,8ea1c5a2v,c5a2v 5207 e58887 5207 00005207 a4c1 a4c1 a4c1 a4c1 a4c1 a4c1 a4c1 -691 a4c2 a4c2 a4c2 * 4523 * 8ea1c5a3,c5a3,8ea1c5a3v,c5a3v 5208 e58888 5208 00005208 a4c2 a4c2 a4c2 a4c2 a4c2 a4c2 a4c2 -692 a4c3 a4c3 a4c3 * 4524 * 8ea1c5a4,c5a4,8ea1c5a4v,c5a4v 52fb e58bbb 52fb 000052fb a4c3 a4c3 a4c3 a4c3 a4c3 a4c3 a4c3 -693 a4c4 a4c4 a4c4 * 4525 * 8ea1c5a5,c5a5,8ea1c5a5v,c5a5v 52fe e58bbe 52fe 000052fe a4c4 a4c4 a4c4 a4c4 a4c4 a4c4 a4c4 -694 a4c5 a4c5 a4c5 * 4526 * 8ea1c5a6,c5a6,8ea1c5a6v,c5a6v 52ff e58bbf 52ff 000052ff a4c5 a4c5 a4c5 a4c5 a4c5 a4c5 a4c5 -695 a4c6 a4c6 a4c6 * 4527 * 8ea1c5a7,c5a7,8ea1c5a7v,c5a7v 5316 e58c96 5316 00005316 a4c6 a4c6 a4c6 a4c6 a4c6 a4c6 a4c6 -696 a4c7 a4c7 a4c7 * 4528 * 8ea1c5a8,c5a8,8ea1c5a8v,c5a8v 5339 e58cb9 5339 00005339 a4c7 a4c7 a4c7 a4c7 a4c7 a4c7 a4c7 -697 a4c8 a4c8 a4c8 * 4529 * 8ea1c5a9,c5a9,8ea1c5a9v,c5a9v 5348 e58d88 5348 00005348 a4c8 a4c8 a4c8 a4c8 a4c8 a4c8 a4c8 -698 a4c9 a4c9 a4c9 * 452a * 8ea1c5aa,c5aa,8ea1c5aav,c5aav 5347 e58d87 5347 00005347 a4c9 a4c9 a4c9 a4c9 a4c9 a4c9 a4c9 -699 a4ca a4ca a4ca * 452b * 8ea1c5ab,c5ab,8ea1c5abv,c5abv 5345 e58d85 5345 00005345 a4ca a4ca a4ca a4ca a4ca a4ca a4ca -700 a4cb a4cb a4cb * 452c * 8ea1c5ac,c5ac,8ea1c5acv,c5acv 535e e58d9e 535e 0000535e a4cb a4cb a4cb a4cb a4cb a4cb a4cb -701 a4cc a4cc a4cc * 452d * 8ea1c5ad,c5ad,8ea1c5adv,c5adv 5384 e58e84 5384 00005384 a4cc a4cc a4cc a4cc a4cc a4cc a4cc -702 a4cd a4cd a4cd * 452e * 8ea1c5ae,c5ae,8ea1c5aev,c5aev 53cb e58f8b 53cb 000053cb a4cd a4cd a4cd a4cd a4cd a4cd a4cd -703 a4ce a4ce a4ce * 452f * 8ea1c5af,c5af,8ea1c5afv,c5afv 53ca e58f8a 53ca 000053ca a4ce a4ce a4ce a4ce a4ce a4ce a4ce -704 a4cf a4cf a4cf * 4530 * 8ea1c5b0,c5b0,8ea1c5b0v,c5b0v 53cd e58f8d 53cd 000053cd a4cf a4cf a4cf a4cf a4cf a4cf a4cf -705 a4d0 a4d0 a4d0 * 4531 * 8ea1c5b1,c5b1,8ea1c5b1v,c5b1v 58ec e5a3ac 58ec 000058ec a4d0 a4d0 a4d0 a4d0 a4d0 a4d0 a4d0 -706 a4d1 a4d1 a4d1 * 4532 * 8ea1c5b2,c5b2,8ea1c5b2v,c5b2v 5929 e5a4a9 5929 00005929 a4d1 a4d1 a4d1 a4d1 a4d1 a4d1 a4d1 -707 a4d2 a4d2 a4d2 * 4533 * 8ea1c5b3,c5b3,8ea1c5b3v,c5b3v 592b e5a4ab 592b 0000592b a4d2 a4d2 a4d2 a4d2 a4d2 a4d2 a4d2 -708 a4d3 a4d3 a4d3 * 4534 * 8ea1c5b4,c5b4,8ea1c5b4v,c5b4v 592a e5a4aa 592a 0000592a a4d3 a4d3 a4d3 a4d3 a4d3 a4d3 a4d3 -709 a4d4 a4d4 a4d4 * 4535 * 8ea1c5b5,c5b5,8ea1c5b5v,c5b5v 592d e5a4ad 592d 0000592d a4d4 a4d4 a4d4 a4d4 a4d4 a4d4 a4d4 -710 a4d5 a4d5 a4d5 * 4536 * 8ea1c5b6,c5b6,8ea1c5b6v,c5b6v 5b54 e5ad94 5b54 00005b54 a4d5 a4d5 a4d5 a4d5 a4d5 a4d5 a4d5 -711 a4d6 a4d6 a4d6 * 4537 * 8ea1c5b7,c5b7,8ea1c5b7v,c5b7v 5c11 e5b091 5c11 00005c11 a4d6 a4d6 a4d6 a4d6 a4d6 a4d6 a4d6 -712 a4d7 a4d7 a4d7 * 4538 * 8ea1c5b8,c5b8,8ea1c5b8v,c5b8v 5c24 e5b0a4 5c24 00005c24 a4d7 a4d7 a4d7 a4d7 a4d7 a4d7 a4d7 -713 a4d8 a4d8 a4d8 * 4539 * 8ea1c5b9,c5b9,8ea1c5b9v,c5b9v 5c3a e5b0ba 5c3a 00005c3a a4d8 a4d8 a4d8 a4d8 a4d8 a4d8 a4d8 -714 a4d9 a4d9 a4d9 * 453a * 8ea1c5ba,c5ba,8ea1c5bav,c5bav 5c6f e5b1af 5c6f 00005c6f a4d9 a4d9 a4d9 a4d9 a4d9 a4d9 a4d9 -715 a4da a4da a4da * 453b * 8ea1c5bb,c5bb,8ea1c5bbv,c5bbv 5df4 e5b7b4 5df4 00005df4 a4da a4da a4da a4da a4da a4da a4da -716 a4db a4db a4db * 453c * 8ea1c5bc,c5bc,8ea1c5bcv,c5bcv 5e7b e5b9bb 5e7b 00005e7b a4db a4db a4db a4db a4db a4db a4db -717 a4dc a4dc a4dc * 453d * 8ea1c5bd,c5bd,8ea1c5bdv,c5bdv 5eff e5bbbf 5eff 00005eff a4dc a4dc a4dc a4dc a4dc a4dc a4dc -718 a4dd a4dd a4dd * 453e * 8ea1c5be,c5be,8ea1c5bev,c5bev 5f14 e5bc94 5f14 00005f14 a4dd a4dd a4dd a4dd a4dd a4dd a4dd -719 a4de a4de a4de * 453f * 8ea1c5bf,c5bf,8ea1c5bfv,c5bfv 5f15 e5bc95 5f15 00005f15 a4de a4de a4de a4de a4de a4de a4de -720 a4df a4df a4df * 275c,4540 * 8ea1a7dc,8ea1c5c0,a7dc,c5c0,8ea1a7dcv,8ea1c5c0v,a7dcv,c5c0v 5fc3 e5bf83,e2bcbc 5fc3,2f3c 00005fc3,00002f3c a4df a4df a4df a4df a4df a4df a4df -721 a4e0 a4e0 a4e0 * 275d,4541 * 8ea1a7dd,8ea1c5c1,a7dd,c5c1,8ea1a7ddv,8ea1c5c1v,a7ddv,c5c1v 6208 e68888,e2bcbd 6208,2f3d 00006208,00002f3d a4e0 a4e0 a4e0 a4e0 a4e0 a4e0 a4e0 -722 a4e1 a4e1 a4e1 * 275e,4542 * 8ea1a7de,8ea1c5c2,a7de,c5c2,8ea1a7dev,8ea1c5c2v,a7dev,c5c2v 6236 e688b6,e2bcbe 6236,2f3e 00006236,00002f3e a4e1 a4e1 a4e1 a4e1 a4e1 a4e1 a4e1 -723 a4e2 a4e2 a4e2 * 275f,4543 * 8ea1a7df,8ea1c5c3,a7df,c5c3,8ea1a7dfv,8ea1c5c3v,a7dfv,c5c3v 624b e6898b,e2bcbf 624b,2f3f 0000624b,00002f3f a4e2 a4e2 a4e2 a4e2 a4e2 a4e2 a4e2 -724 a4e3 a4e3 a4e3 * 4544 * 8ea1c5c4,c5c4,8ea1c5c4v,c5c4v 624e e6898e 624e 0000624e a4e3 a4e3 a4e3 a4e3 a4e3 a4e3 a4e3 -725 a4e4 a4e4 a4e4 * 2760,4545 * 8ea1a7e0,8ea1c5c5,a7e0,c5c5,8ea1a7e0v,8ea1c5c5v,a7e0v,c5c5v 652f e2bd80,e694af 2f40,652f 00002f40,0000652f a4e4 a4e4 a4e4 a4e4 a4e4 a4e4 a4e4 -726 a4e5 a4e5 a4e5 * 2762,4546 * 8ea1a7e2,8ea1c5c6,a7e2,c5c6,8ea1a7e2v,8ea1c5c6v,a7e2v,c5c6v 6587 e69687,e2bd82 6587,2f42 00006587,00002f42 a4e5 a4e5 a4e5 a4e5 a4e5 a4e5 a4e5 -727 a4e6 a4e6 a4e6 * 2763,4547 * 8ea1a7e3,8ea1c5c7,a7e3,c5c7,8ea1a7e3v,8ea1c5c7v,a7e3v,c5c7v 6597 e69697,e2bd83 6597,2f43 00006597,00002f43 a4e6 a4e6 a4e6 a4e6 a4e6 a4e6 a4e6 -728 a4e7 a4e7 a4e7 * 2764,4548 * 8ea1a7e4,8ea1c5c8,a7e4,c5c8,8ea1a7e4v,8ea1c5c8v,a7e4v,c5c8v 65a4 e696a4,e2bd84 65a4,2f44 000065a4,00002f44 a4e7 a4e7 a4e7 a4e7 a4e7 a4e7 a4e7 -729 a4e8 a4e8 a4e8 * 2765,4549 * 8ea1a7e5,8ea1c5c9,a7e5,c5c9,8ea1a7e5v,8ea1c5c9v,a7e5v,c5c9v 65b9 e696b9,e2bd85 65b9,2f45 000065b9,00002f45 a4e8 a4e8 a4e8 a4e8 a4e8 a4e8 a4e8 -730 a4e9 a4e9 a4e9 * 2767,454a * 8ea1a7e7,8ea1c5ca,a7e7,c5ca,8ea1a7e7v,8ea1c5cav,a7e7v,c5cav 65e5 e697a5,e2bd87 65e5,2f47 000065e5,00002f47 a4e9 a4e9 a4e9 a4e9 a4e9 a4e9 a4e9 -731 a4ea a4ea a4ea * 2768,454b * 8ea1a7e8,8ea1c5cb,a7e8,c5cb,8ea1a7e8v,8ea1c5cbv,a7e8v,c5cbv 66f0 e69bb0,e2bd88 66f0,2f48 000066f0,00002f48 a4ea a4ea a4ea a4ea a4ea a4ea a4ea -732 a4eb a4eb a4eb * 2769,454c * 8ea1a7e9,8ea1c5cc,a7e9,c5cc,8ea1a7e9v,8ea1c5ccv,a7e9v,c5ccv 2e9d,6708 e69c88,e2bd89 6708,2f49 00006708,00002f49 a4eb a4eb a4eb a4eb a4eb a4eb a4eb -733 a4ec a4ec a4ec * 276a,454d * 8ea1a7ea,8ea1c5cd,a7ea,c5cd,8ea1a7eav,8ea1c5cdv,a7eav,c5cdv 6728 e69ca8,e2bd8a 6728,2f4a 00006728,00002f4a a4ec a4ec a4ec a4ec a4ec a4ec a4ec -734 a4ed a4ed a4ed * 276b,454e * 8ea1a7eb,8ea1c5ce,a7eb,c5ce,8ea1a7ebv,8ea1c5cev,a7ebv,c5cev 6b20 e6aca0,e2bd8b 6b20,2f4b 00006b20,00002f4b a4ed a4ed a4ed a4ed a4ed a4ed a4ed -735 a4ee a4ee a4ee * 276c,454f * 8ea1a7ec,8ea1c5cf,a7ec,c5cf,8ea1a7ecv,8ea1c5cfv,a7ecv,c5cfv 6b62 e6ada2,e2bd8c 6b62,2f4c 00006b62,00002f4c a4ee a4ee a4ee a4ee a4ee a4ee a4ee -736 a4ef a4ef a4ef * 276d,4550 * 8ea1a7ed,8ea1c5d0,a7ed,c5d0,8ea1a7edv,8ea1c5d0v,a7edv,c5d0v 6b79 e6adb9,e2bd8d 6b79,2f4d 00006b79,00002f4d a4ef a4ef a4ef a4ef a4ef a4ef a4ef -737 a4f0 a4f0 a4f0 * 276f,4551 * 8ea1a7ef,8ea1c5d1,a7ef,c5d1,8ea1a7efv,8ea1c5d1v,a7efv,c5d1v 6bcb e6af8b,e2bd8f 6bcb,2f4f 00006bcb,00002f4f a4f0 a4f0 a4f0 a4f0 a4f0 a4f0 a4f0 -738 a4f1 a4f1 a4f1 * 2770,4552 * 8ea1a7f0,8ea1c5d2,a7f0,c5d2,8ea1a7f0v,8ea1c5d2v,a7f0v,c5d2v 6bd4 e6af94,e2bd90 6bd4,2f50 00006bd4,00002f50 a4f1 a4f1 a4f1 a4f1 a4f1 a4f1 a4f1 -739 a4f2 a4f2 a4f2 * 2771,4553 * 8ea1a7f1,8ea1c5d3,a7f1,c5d3,8ea1a7f1v,8ea1c5d3v,a7f1v,c5d3v 6bdb e6af9b,e2bd91 6bdb,2f51 00006bdb,00002f51 a4f2 a4f2 a4f2 a4f2 a4f2 a4f2 a4f2 -740 a4f3 a4f3 a4f3 * 2772,4554 * 8ea1a7f2,8ea1c5d4,a7f2,c5d4,8ea1a7f2v,8ea1c5d4v,a7f2v,c5d4v 6c0f e6b08f,e2bd92 6c0f,2f52 00006c0f,00002f52 a4f3 a4f3 a4f3 a4f3 a4f3 a4f3 a4f3 -741 a4f4 a4f4 a4f4 * 2774,4555 * 8ea1a7f4,8ea1c5d5,a7f4,c5d5,8ea1a7f4v,8ea1c5d5v,a7f4v,c5d5v 6c34 e6b0b4,e2bd94 6c34,2f54 00006c34,00002f54 a4f4 a4f4 a4f4 a4f4 a4f4 a4f4 a4f4 -742 a4f5 a4f5 a4f5 * 2775,4556 * 8ea1a7f5,8ea1c5d6,a7f5,c5d6,8ea1a7f5v,8ea1c5d6v,a7f5v,c5d6v 706b e781ab,e2bd95 706b,2f55 0000706b,00002f55 a4f5 a4f5 a4f5 a4f5 a4f5 a4f5 a4f5 -743 a4f6 a4f6 a4f6 * 2776,4557 * 8ea1a7f6,8ea1c5d7,a7f6,c5d7,8ea1a7f6v,8ea1c5d7v,a7f6v,c5d7v 722a e788aa,e2bd96 722a,2f56 0000722a,00002f56 a4f6 a4f6 a4f6 a4f6 a4f6 a4f6 a4f6 -744 a4f7 a4f7 a4f7 * 2777,4558 * 8ea1a7f7,8ea1c5d8,a7f7,c5d8,8ea1a7f7v,8ea1c5d8v,a7f7v,c5d8v 7236 e788b6,e2bd97 7236,2f57 00007236,00002f57 a4f7 a4f7 a4f7 a4f7 a4f7 a4f7 a4f7 -745 a4f8 a4f8 a4f8 * 2778,4559 * 8ea1a7f8,8ea1c5d9,a7f8,c5d9,8ea1a7f8v,8ea1c5d9v,a7f8v,c5d9v 723b e788bb,e2bd98 723b,2f58 0000723b,00002f58 a4f8 a4f8 a4f8 a4f8 a4f8 a4f8 a4f8 -746 a4f9 a4f9 a4f9 * 277a,455a * 8ea1a7fa,8ea1c5da,a7fa,c5da,8ea1a7fav,8ea1c5dav,a7fav,c5dav 7247 e78987,e2bd9a 7247,2f5a 00007247,00002f5a a4f9 a4f9 a4f9 a4f9 a4f9 a4f9 a4f9 -747 a4fa a4fa a4fa * 277b,455b * 8ea1a7fb,8ea1c5db,a7fb,c5db,8ea1a7fbv,8ea1c5dbv,a7fbv,c5dbv 7259 e78999,e2bd9b 7259,2f5b 00007259,00002f5b a4fa a4fa a4fa a4fa a4fa a4fa a4fa -748 a4fb a4fb a4fb * 277c,455c * 8ea1a7fc,8ea1c5dc,a7fc,c5dc,8ea1a7fcv,8ea1c5dcv,a7fcv,c5dcv 725b e7899b,e2bd9c 725b,2f5c 0000725b,00002f5c a4fb a4fb a4fb a4fb a4fb a4fb a4fb -749 a4fc a4fc a4fc * 277d,455d * 8ea1a7fd,8ea1c5dd,a7fd,c5dd,8ea1a7fdv,8ea1c5ddv,a7fdv,c5ddv 72ac e78aac,e2bd9d 72ac,2f5d 000072ac,00002f5d a4fc a4fc a4fc a4fc a4fc a4fc a4fc -750 a4fd a4fd a4fd * 455e * 8ea1c5de,c5de,8ea1c5dev,c5dev 738b e78e8b 738b 0000738b a4fd a4fd a4fd a4fd a4fd a4fd a4fd -751 a4fe a4fe a4fe * 455f * 8ea1c5df,c5df,8ea1c5dfv,c5dfv 4e19 e4b899 4e19 00004e19 a4fe a4fe a4fe a4fe a4fe a4fe a4fe -752 a540 a540 a540 * 4560 * 8ea1c5e0,c5e0,8ea1c5e0v,c5e0v 4e16 e4b896 4e16 00004e16 a540 a540 a540 a540 a540 a540 a540 -753 a541 a541 a541 * 4561 * 8ea1c5e1,c5e1,8ea1c5e1v,c5e1v 4e15 e4b895 4e15 00004e15 a541 a541 a541 a541 a541 a541 a541 -754 a542 a542 a542 * 4562 * 8ea1c5e2,c5e2,8ea1c5e2v,c5e2v 4e14 e4b894 4e14 00004e14 a542 a542 a542 a542 a542 a542 a542 -755 a543 a543 a543 * 4563 * 8ea1c5e3,c5e3,8ea1c5e3v,c5e3v 4e18 e4b898 4e18 00004e18 a543 a543 a543 a543 a543 a543 a543 -756 a544 a544 a544 * 4564 * 8ea1c5e4,c5e4,8ea1c5e4v,c5e4v 4e3b e4b8bb 4e3b 00004e3b a544 a544 a544 a544 a544 a544 a544 -757 a545 a545 a545 * 4565 * 8ea1c5e5,c5e5,8ea1c5e5v,c5e5v 4e4d e4b98d 4e4d 00004e4d a545 a545 a545 a545 a545 a545 a545 -758 a546 a546 a546 * 4566 * 8ea1c5e6,c5e6,8ea1c5e6v,c5e6v 4e4f e4b98f 4e4f 00004e4f a546 a546 a546 a546 a546 a546 a546 -759 a547 a547 a547 * 4567 * 8ea1c5e7,c5e7,8ea1c5e7v,c5e7v 4e4e e4b98e 4e4e 00004e4e a547 a547 a547 a547 a547 a547 a547 -760 a548 a548 a548 * 4568 * 8ea1c5e8,c5e8,8ea1c5e8v,c5e8v 4ee5 e4bba5 4ee5 00004ee5 a548 a548 a548 a548 a548 a548 a548 -761 a549 a549 a549 * 4569 * 8ea1c5e9,c5e9,8ea1c5e9v,c5e9v 4ed8 e4bb98 4ed8 00004ed8 a549 a549 a549 a549 a549 a549 a549 -762 a54a a54a a54a * 456a * 8ea1c5ea,c5ea,8ea1c5eav,c5eav 4ed4 e4bb94 4ed4 00004ed4 a54a a54a a54a a54a a54a a54a a54a -763 a54b a54b a54b * 456b * 8ea1c5eb,c5eb,8ea1c5ebv,c5ebv 4ed5 e4bb95 4ed5 00004ed5 a54b a54b a54b a54b a54b a54b a54b -764 a54c a54c a54c * 456c * 8ea1c5ec,c5ec,8ea1c5ecv,c5ecv 4ed6 e4bb96 4ed6 00004ed6 a54c a54c a54c a54c a54c a54c a54c -765 a54d a54d a54d * 456d * 8ea1c5ed,c5ed,8ea1c5edv,c5edv 4ed7 e4bb97 4ed7 00004ed7 a54d a54d a54d a54d a54d a54d a54d -766 a54e a54e a54e * 456e * 8ea1c5ee,c5ee,8ea1c5eev,c5eev 4ee3 e4bba3 4ee3 00004ee3 a54e a54e a54e a54e a54e a54e a54e -767 a54f a54f a54f * 456f * 8ea1c5ef,c5ef,8ea1c5efv,c5efv 4ee4 e4bba4 4ee4 00004ee4 a54f a54f a54f a54f a54f a54f a54f -768 a550 a550 a550 * 4570 * 8ea1c5f0,c5f0,8ea1c5f0v,c5f0v 4ed9 e4bb99 4ed9 00004ed9 a550 a550 a550 a550 a550 a550 a550 -769 a551 a551 a551 * 4571 * 8ea1c5f1,c5f1,8ea1c5f1v,c5f1v 4ede e4bb9e 4ede 00004ede a551 a551 a551 a551 a551 a551 a551 -770 a552 a552 a552 * 4572 * 8ea1c5f2,c5f2,8ea1c5f2v,c5f2v 5145 e58585 5145 00005145 a552 a552 a552 a552 a552 a552 a552 -771 a553 a553 a553 * 4573 * 8ea1c5f3,c5f3,8ea1c5f3v,c5f3v 5144 e58584 5144 00005144 a553 a553 a553 a553 a553 a553 a553 -772 a554 a554 a554 * 4574 * 8ea1c5f4,c5f4,8ea1c5f4v,c5f4v 5189 e58689 5189 00005189 a554 a554 a554 a554 a554 a554 a554 -773 a555 a555 a555 * 4575 * 8ea1c5f5,c5f5,8ea1c5f5v,c5f5v 518a e5868a 518a 0000518a a555 a555 a555 a555 a555 a555 a555 -774 a556 a556 a556 * 4576 * 8ea1c5f6,c5f6,8ea1c5f6v,c5f6v 51ac e586ac 51ac 000051ac a556 a556 a556 a556 a556 a556 a556 -775 a557 a557 a557 * 4577 * 8ea1c5f7,c5f7,8ea1c5f7v,c5f7v 51f9 e587b9 51f9 000051f9 a557 a557 a557 a557 a557 a557 a557 -776 a558 a558 a558 * 4578 * 8ea1c5f8,c5f8,8ea1c5f8v,c5f8v 51fa e587ba 51fa 000051fa a558 a558 a558 a558 a558 a558 a558 -777 a559 a559 a559 * 4579 * 8ea1c5f9,c5f9,8ea1c5f9v,c5f9v 51f8 e587b8 51f8 000051f8 a559 a559 a559 a559 a559 a559 a559 -778 a55a a55a a55a * 457a * 8ea1c5fa,c5fa,8ea1c5fav,c5fav 520a e5888a 520a 0000520a a55a a55a a55a a55a a55a a55a a55a -779 a55b a55b a55b * 457b * 8ea1c5fb,c5fb,8ea1c5fbv,c5fbv 52a0 e58aa0 52a0 000052a0 a55b a55b a55b a55b a55b a55b a55b -780 a55c a55c a55c * 457c * 8ea1c5fc,c5fc,8ea1c5fcv,c5fcv 529f e58a9f 529f 0000529f a55c a55c a55c a55c a55c a55c a55c -781 a55d a55d a55d * 457d * 8ea1c5fd,c5fd,8ea1c5fdv,c5fdv 5305 ee819b,e58c85 e05b,5305 0000e05b,00005305 fabd,a55d a55d a55d a55d a55d a55d fabd,a55d -782 a55e a55e a55e * 457e * 8ea1c5fe,c5fe,8ea1c5fev,c5fev 5306 e58c86 5306 00005306 a55e a55e a55e a55e a55e a55e a55e -783 a55f a55f a55f * 4621 * 8ea1c6a1,c6a1,8ea1c6a1v,c6a1v 5317 e58c97 5317 00005317 a55f a55f a55f a55f a55f a55f a55f -784 a560 a560 a560 * 4622 * 8ea1c6a2,c6a2,8ea1c6a2v,c6a2v 531d e58c9d 531d 0000531d a560 a560 a560 a560 a560 a560 a560 -785 a561 a561 a561 * 4623 * 8ea1c6a3,c6a3,8ea1c6a3v,c6a3v 4edf e4bb9f 4edf 00004edf a561 a561 a561 a561 a561 a561 a561 -786 a562 a562 a562 * 4624 * 8ea1c6a4,c6a4,8ea1c6a4v,c6a4v 534a e58d8a 534a 0000534a a562 a562 a562 a562 a562 a562 a562 -787 a563 a563 a563 * 4625 * 8ea1c6a5,c6a5,8ea1c6a5v,c6a5v 5349 e58d89 5349 00005349 a563 a563 a563 a563 a563 a563 a563 -788 a564 a564 a564 * 4626 * 8ea1c6a6,c6a6,8ea1c6a6v,c6a6v 5361 e58da1 5361 00005361 a564 a564 a564 a564 a564 a564 a564 -789 a565 a565 a565 * 4627 * 8ea1c6a7,c6a7,8ea1c6a7v,c6a7v 5360 e58da0 5360 00005360 a565 a565 a565 a565 a565 a565 a565 -790 a566 a566 a566 * 4628 * 8ea1c6a8,c6a8,8ea1c6a8v,c6a8v 536f e58daf 536f 0000536f a566 a566 a566 a566 a566 a566 a566 -791 a567 a567 a567 * 4629 * 8ea1c6a9,c6a9,8ea1c6a9v,c6a9v 536e e58dae 536e 0000536e a567 a567 a567 a567 a567 a567 a567 -792 a568 a568 a568 * 462a * 8ea1c6aa,c6aa,8ea1c6aav,c6aav 53bb e58ebb 53bb 000053bb a568 a568 a568 a568 a568 a568 a568 -793 a569 a569 a569 * 462b * 8ea1c6ab,c6ab,8ea1c6abv,c6abv 53ef e58faf 53ef 000053ef a569 a569 a569 a569 a569 a569 a569 -794 a56a a56a a56a * 462c * 8ea1c6ac,c6ac,8ea1c6acv,c6acv 53e4 e58fa4 53e4 000053e4 a56a a56a a56a a56a a56a a56a a56a -795 a56b a56b a56b * 462d * 8ea1c6ad,c6ad,8ea1c6adv,c6adv 53f3 e58fb3 53f3 000053f3 a56b a56b a56b a56b a56b a56b a56b -796 a56c a56c a56c * 462e * 8ea1c6ae,c6ae,8ea1c6aev,c6aev 53ec e58fac 53ec 000053ec a56c a56c a56c a56c a56c a56c a56c -797 a56d a56d a56d * 462f * 8ea1c6af,c6af,8ea1c6afv,c6afv 53ee e58fae 53ee 000053ee a56d a56d a56d a56d a56d a56d a56d -798 a56e a56e a56e * 4630 * 8ea1c6b0,c6b0,8ea1c6b0v,c6b0v 53e9 e58fa9 53e9 000053e9 a56e a56e a56e a56e a56e a56e a56e -799 a56f a56f a56f * 4631 * 8ea1c6b1,c6b1,8ea1c6b1v,c6b1v 53e8 e58fa8 53e8 000053e8 a56f a56f a56f a56f a56f a56f a56f -800 a570 a570 a570 * 4632 * 8ea1c6b2,c6b2,8ea1c6b2v,c6b2v 53fc e58fbc 53fc 000053fc a570 a570 a570 a570 a570 a570 a570 -801 a571 a571 a571 * 4633 * 8ea1c6b3,c6b3,8ea1c6b3v,c6b3v 53f8 e58fb8 53f8 000053f8 a571 a571 a571 a571 a571 a571 a571 -802 a572 a572 a572 * 4634 * 8ea1c6b4,c6b4,8ea1c6b4v,c6b4v 53f5 e58fb5 53f5 000053f5 a572 a572 a572 a572 a572 a572 a572 -803 a573 a573 a573 * 4635 * 8ea1c6b5,c6b5,8ea1c6b5v,c6b5v 53eb e58fab 53eb 000053eb a573 a573 a573 a573 a573 a573 a573 -804 a574 a574 a574 * 4636 * 8ea1c6b6,c6b6,8ea1c6b6v,c6b6v 53e6 e58fa6 53e6 000053e6 a574 a574 a574 a574 a574 a574 a574 -805 a575 a575 a575 * 4637 * 8ea1c6b7,c6b7,8ea1c6b7v,c6b7v 53ea e58faa 53ea 000053ea a575 a575 a575 a575 a575 a575 a575 -806 a576 a576 a576 * 4638 * 8ea1c6b8,c6b8,8ea1c6b8v,c6b8v 53f2 e58fb2 53f2 000053f2 a576 a576 a576 a576 a576 a576 a576 -807 a577 a577 a577 * 4639 * 8ea1c6b9,c6b9,8ea1c6b9v,c6b9v 53f1 e58fb1 53f1 000053f1 a577 a577 a577 a577 a577 a577 a577 -808 a578 a578 a578 * 463a * 8ea1c6ba,c6ba,8ea1c6bav,c6bav 53f0 e58fb0 53f0 000053f0 a578 a578 a578 a578 a578 a578 a578 -809 a579 a579 a579 * 463b * 8ea1c6bb,c6bb,8ea1c6bbv,c6bbv 53e5 e58fa5 53e5 000053e5 a579 a579 a579 a579 a579 a579 a579 -810 a57a a57a a57a * 463c * 8ea1c6bc,c6bc,8ea1c6bcv,c6bcv 53ed e58fad 53ed 000053ed a57a a57a a57a a57a a57a a57a a57a -811 a57b a57b a57b * 463d * 8ea1c6bd,c6bd,8ea1c6bdv,c6bdv 53fb e58fbb 53fb 000053fb a57b a57b a57b a57b a57b a57b a57b -812 a57c a57c a57c * 463e * 8ea1c6be,c6be,8ea1c6bev,c6bev 56db e59b9b 56db 000056db a57c a57c a57c a57c a57c a57c a57c -813 a57d a57d a57d * 463f * 8ea1c6bf,c6bf,8ea1c6bfv,c6bfv 56da e59b9a 56da 000056da a57d a57d a57d a57d a57d a57d a57d -814 a57e a57e a57e * 4640 * 8ea1c6c0,c6c0,8ea1c6c0v,c6c0v 5916 e5a496 5916 00005916 a57e a57e a57e a57e a57e a57e a57e -815 a5a1 a5a1 a5a1 * 4641 * 8ea1c6c1,c6c1,8ea1c6c1v,c6c1v 592e e5a4ae 592e 0000592e a5a1 a5a1 a5a1 a5a1 a5a1 a5a1 a5a1 -816 a5a2 a5a2 a5a2 * 4642 * 8ea1c6c2,c6c2,8ea1c6c2v,c6c2v 5931 e5a4b1 5931 00005931 a5a2 a5a2 a5a2 a5a2 a5a2 a5a2 a5a2 -817 a5a3 a5a3 a5a3 * 4643 * 8ea1c6c3,c6c3,8ea1c6c3v,c6c3v 5974 e5a5b4 5974 00005974 a5a3 a5a3 a5a3 a5a3 a5a3 a5a3 a5a3 -818 a5a4 a5a4 a5a4 * 4644 * 8ea1c6c4,c6c4,8ea1c6c4v,c6c4v 5976 e5a5b6 5976 00005976 a5a4 a5a4 a5a4 a5a4 a5a4 a5a4 a5a4 -819 a5a5 a5a5 a5a5 * 4645 * 8ea1c6c5,c6c5,8ea1c6c5v,c6c5v 5b55 e5ad95 5b55 00005b55 a5a5 a5a5 a5a5 a5a5 a5a5 a5a5 a5a5 -820 a5a6 a5a6 a5a6 * 4646 * 8ea1c6c6,c6c6,8ea1c6c6v,c6c6v 5b83 e5ae83 5b83 00005b83 a5a6 a5a6 a5a6 a5a6 a5a6 a5a6 a5a6 -821 a5a7 a5a7 a5a7 * 4647 * 8ea1c6c7,c6c7,8ea1c6c7v,c6c7v 5c3c e5b0bc 5c3c 00005c3c a5a7 a5a7 a5a7 a5a7 a5a7 a5a7 a5a7 -822 a5a8 a5a8 a5a8 * 4648 * 8ea1c6c8,c6c8,8ea1c6c8v,c6c8v 5de8 e5b7a8 5de8 00005de8 a5a8 a5a8 a5a8 a5a8 a5a8 a5a8 a5a8 -823 a5a9 a5a9 a5a9 * 4649 * 8ea1c6c9,c6c9,8ea1c6c9v,c6c9v 5de7 e5b7a7 5de7 00005de7 a5a9 a5a9 a5a9 a5a9 a5a9 a5a9 a5a9 -824 a5aa a5aa a5aa * 464a * 8ea1c6ca,c6ca,8ea1c6cav,c6cav 5de6 e5b7a6 5de6 00005de6 a5aa a5aa a5aa a5aa a5aa a5aa a5aa -825 a5ab a5ab a5ab * 464b * 8ea1c6cb,c6cb,8ea1c6cbv,c6cbv 5e02 e5b882 5e02 00005e02 a5ab a5ab a5ab a5ab a5ab a5ab a5ab -826 a5ac a5ac a5ac * 464c * 8ea1c6cc,c6cc,8ea1c6ccv,c6ccv 5e03 e5b883 5e03 00005e03 a5ac a5ac a5ac a5ac a5ac a5ac a5ac -827 a5ad a5ad a5ad * 464d * 8ea1c6cd,c6cd,8ea1c6cdv,c6cdv 5e73 e5b9b3 5e73 00005e73 a5ad a5ad a5ad a5ad a5ad a5ad a5ad -828 a5ae a5ae a5ae * 464e * 8ea1c6ce,c6ce,8ea1c6cev,c6cev 5e7c e5b9bc 5e7c 00005e7c a5ae a5ae a5ae a5ae a5ae a5ae a5ae -829 a5af a5af a5af * 464f * 8ea1c6cf,c6cf,8ea1c6cfv,c6cfv 5f01 e5bc81 5f01 00005f01 a5af a5af a5af a5af a5af a5af a5af -830 a5b0 a5b0 a5b0 * 4650 * 8ea1c6d0,c6d0,8ea1c6d0v,c6d0v 5f18 e5bc98 5f18 00005f18 a5b0 a5b0 a5b0 a5b0 a5b0 a5b0 a5b0 -831 a5b1 a5b1 a5b1 * 4651 * 8ea1c6d1,c6d1,8ea1c6d1v,c6d1v 5f17 e5bc97 5f17 00005f17 a5b1 a5b1 a5b1 a5b1 a5b1 a5b1 a5b1 -832 a5b2 a5b2 a5b2 * 4652 * 8ea1c6d2,c6d2,8ea1c6d2v,c6d2v 5fc5 e5bf85 5fc5 00005fc5 a5b2 a5b2 a5b2 a5b2 a5b2 a5b2 a5b2 -833 a5b3 a5b3 a5b3 * 4653 * 8ea1c6d3,c6d3,8ea1c6d3v,c6d3v 620a e6888a 620a 0000620a a5b3 a5b3 a5b3 a5b3 a5b3 a5b3 a5b3 -834 a5b4 a5b4 a5b4 * 4654 * 8ea1c6d4,c6d4,8ea1c6d4v,c6d4v 6253 e68993 6253 00006253 a5b4 a5b4 a5b4 a5b4 a5b4 a5b4 a5b4 -835 a5b5 a5b5 a5b5 * 4655 * 8ea1c6d5,c6d5,8ea1c6d5v,c6d5v 6254 e68994 6254 00006254 a5b5 a5b5 a5b5 a5b5 a5b5 a5b5 a5b5 -836 a5b6 a5b6 a5b6 * 4656 * 8ea1c6d6,c6d6,8ea1c6d6v,c6d6v 6252 e68992 6252 00006252 a5b6 a5b6 a5b6 a5b6 a5b6 a5b6 a5b6 -837 a5b7 a5b7 a5b7 * 4657 * 8ea1c6d7,c6d7,8ea1c6d7v,c6d7v 6251 e68991 6251 00006251 a5b7 a5b7 a5b7 a5b7 a5b7 a5b7 a5b7 -838 a5b8 a5b8 a5b8 * 4658 * 8ea1c6d8,c6d8,8ea1c6d8v,c6d8v 65a5 e696a5 65a5 000065a5 a5b8 a5b8 a5b8 a5b8 a5b8 a5b8 a5b8 -839 a5b9 a5b9 a5b9 * 4659 * 8ea1c6d9,c6d9,8ea1c6d9v,c6d9v 65e6 e697a6 65e6 000065e6 a5b9 a5b9 a5b9 a5b9 a5b9 a5b9 a5b9 -840 a5ba a5ba a5ba * 465a * 8ea1c6da,c6da,8ea1c6dav,c6dav 672e e69cae 672e 0000672e a5ba a5ba a5ba a5ba a5ba a5ba a5ba -841 a5bb a5bb a5bb * 465b * 8ea1c6db,c6db,8ea1c6dbv,c6dbv 672c e69cac 672c 0000672c a5bb a5bb a5bb a5bb a5bb a5bb a5bb -842 a5bc a5bc a5bc * 465c * 8ea1c6dc,c6dc,8ea1c6dcv,c6dcv 672a e69caa 672a 0000672a a5bc a5bc a5bc a5bc a5bc a5bc a5bc -843 a5bd a5bd a5bd * 465d * 8ea1c6dd,c6dd,8ea1c6ddv,c6ddv 672b e69cab 672b 0000672b a5bd a5bd a5bd a5bd a5bd a5bd a5bd -844 a5be a5be a5be * 465e * 8ea1c6de,c6de,8ea1c6dev,c6dev 672d e69cad 672d 0000672d a5be a5be a5be a5be a5be a5be a5be -845 a5bf a5bf a5bf * 465f * 8ea1c6df,c6df,8ea1c6dfv,c6dfv 6b63 e6ada3 6b63 00006b63 a5bf a5bf a5bf a5bf a5bf a5bf a5bf -846 a5c0 a5c0 a5c0 * 4660 * 8ea1c6e0,c6e0,8ea1c6e0v,c6e0v 6bcd e6af8d 6bcd 00006bcd a5c0 a5c0 a5c0 a5c0 a5c0 a5c0 a5c0 -847 a5c1 a5c1 a5c1 * 4661 * 8ea1c6e1,c6e1,8ea1c6e1v,c6e1v 6c11 e6b091 6c11 00006c11 a5c1 a5c1 a5c1 a5c1 a5c1 a5c1 a5c1 -848 a5c2 a5c2 a5c2 * 4662 * 8ea1c6e2,c6e2,8ea1c6e2v,c6e2v 6c10 e6b090 6c10 00006c10 a5c2 a5c2 a5c2 a5c2 a5c2 a5c2 a5c2 -849 a5c3 a5c3 a5c3 * 4663 * 8ea1c6e3,c6e3,8ea1c6e3v,c6e3v 6c38 e6b0b8 6c38 00006c38 a5c3 a5c3 a5c3 a5c3 a5c3 a5c3 a5c3 -850 a5c4 a5c4 a5c4 * 4664 * 8ea1c6e4,c6e4,8ea1c6e4v,c6e4v 6c41 e6b181 6c41 00006c41 a5c4 a5c4 a5c4 a5c4 a5c4 a5c4 a5c4 -851 a5c5 a5c5 a5c5 * 4665 * 8ea1c6e5,c6e5,8ea1c6e5v,c6e5v 6c40 e6b180 6c40 00006c40 a5c5 a5c5 a5c5 a5c5 a5c5 a5c5 a5c5 -852 a5c6 a5c6 a5c6 * 4666 * 8ea1c6e6,c6e6,8ea1c6e6v,c6e6v 6c3e e6b0be 6c3e 00006c3e a5c6 a5c6 a5c6 a5c6 a5c6 a5c6 a5c6 -853 a5c7 a5c7 a5c7 * 4667 * 8ea1c6e7,c6e7,8ea1c6e7v,c6e7v 72af e78aaf 72af 000072af a5c7 a5c7 a5c7 a5c7 a5c7 a5c7 a5c7 -854 a5c8 a5c8 a5c8 * 277e,4668 * 8ea1a7fe,8ea1c6e8,a7fe,c6e8,8ea1a7fev,8ea1c6e8v,a7fev,c6e8v 7384 e78e84,e2bd9e 7384,2f5e 00007384,00002f5e a5c8 a5c8 a5c8 a5c8 a5c8 a5c8 a5c8 -855 a5c9 a5c9 a5c9 * 2821,4669 * 8ea1a8a1,8ea1c6e9,a8a1,c6e9,8ea1a8a1v,8ea1c6e9v,a8a1v,c6e9v 7389 e78e89,e2bd9f 7389,2f5f 00007389,00002f5f a5c9 a5c9 a5c9 a5c9 a5c9 a5c9 a5c9 -856 a5ca a5ca a5ca * 2822,466a * 8ea1a8a2,8ea1c6ea,a8a2,c6ea,8ea1a8a2v,8ea1c6eav,a8a2v,c6eav 74dc e7939c,e2bda0 74dc,2f60 000074dc,00002f60 a5ca a5ca a5ca a5ca a5ca a5ca a5ca -857 a5cb a5cb a5cb * 2823,466b * 8ea1a8a3,8ea1c6eb,a8a3,c6eb,8ea1a8a3v,8ea1c6ebv,a8a3v,c6ebv 74e6 e793a6,e2bda1 74e6,2f61 000074e6,00002f61 a5cb a5cb a5cb a5cb a5cb a5cb a5cb -858 a5cc a5cc a5cc * 2824,466c * 8ea1a8a4,8ea1c6ec,a8a4,c6ec,8ea1a8a4v,8ea1c6ecv,a8a4v,c6ecv 7518 e79498,e2bda2 7518,2f62 00007518,00002f62 a5cc a5cc a5cc a5cc a5cc a5cc a5cc -859 a5cd a5cd a5cd * 2825,466d * 8ea1a8a5,8ea1c6ed,a8a5,c6ed,8ea1a8a5v,8ea1c6edv,a8a5v,c6edv 751f e7949f,e2bda3 751f,2f63 0000751f,00002f63 a5cd a5cd a5cd a5cd a5cd a5cd a5cd -860 a5ce a5ce a5ce * 2826,466e * 8ea1a8a6,8ea1c6ee,a8a6,c6ee,8ea1a8a6v,8ea1c6eev,a8a6v,c6eev 7528 e2bda4,e794a8 2f64,7528 00002f64,00007528 a5ce a5ce a5ce a5ce a5ce a5ce a5ce -861 a5cf a5cf a5cf * 466f * 8ea1c6ef,c6ef,8ea1c6efv,c6efv 7529 e794a9 7529 00007529 a5cf a5cf a5cf a5cf a5cf a5cf a5cf -862 a5d0 a5d0 a5d0 * 2827,4670 * 8ea1a8a7,8ea1c6f0,a8a7,c6f0,8ea1a8a7v,8ea1c6f0v,a8a7v,c6f0v 7530 e2bda5,e794b0 2f65,7530 00002f65,00007530 a5d0 a5d0 a5d0 a5d0 a5d0 a5d0 a5d0 -863 a5d1 a5d1 a5d1 * 4671 * 8ea1c6f1,c6f1,8ea1c6f1v,c6f1v 7531 e794b1 7531 00007531 a5d1 a5d1 a5d1 a5d1 a5d1 a5d1 a5d1 -864 a5d2 a5d2 a5d2 * 4672 * 8ea1c6f2,c6f2,8ea1c6f2v,c6f2v 7532 e794b2 7532 00007532 a5d2 a5d2 a5d2 a5d2 a5d2 a5d2 a5d2 -865 a5d3 a5d3 a5d3 * 4673 * 8ea1c6f3,c6f3,8ea1c6f3v,c6f3v 7533 e794b3 7533 00007533 a5d3 a5d3 a5d3 a5d3 a5d3 a5d3 a5d3 -866 a5d4 a5d4 a5d4 * 2828,4674 * 8ea1a8a8,8ea1c6f4,a8a8,c6f4,8ea1a8a8v,8ea1c6f4v,a8a8v,c6f4v 758b e2bda6,e7968b 2f66,758b 00002f66,0000758b a5d4 a5d4 a5d4 a5d4 a5d4 a5d4 a5d4 -867 a5d5 a5d5 a5d5 * 282b,4675 * 8ea1a8ab,8ea1c6f5,a8ab,c6f5,8ea1a8abv,8ea1c6f5v,a8abv,c6f5v 767d e799bd,e2bda9 767d,2f69 0000767d,00002f69 a5d5 a5d5 a5d5 a5d5 a5d5 a5d5 a5d5 -868 a5d6 a5d6 a5d6 * 282c,4676 * 8ea1a8ac,8ea1c6f6,a8ac,c6f6,8ea1a8acv,8ea1c6f6v,a8acv,c6f6v 76ae e79aae,e2bdaa 76ae,2f6a 000076ae,00002f6a a5d6 a5d6 a5d6 a5d6 a5d6 a5d6 a5d6 -869 a5d7 a5d7 a5d7 * 282d,4677 * 8ea1a8ad,8ea1c6f7,a8ad,c6f7,8ea1a8adv,8ea1c6f7v,a8adv,c6f7v 76bf e79abf,e2bdab 76bf,2f6b 000076bf,00002f6b a5d7 a5d7 a5d7 a5d7 a5d7 a5d7 a5d7 -870 a5d8 a5d8 a5d8 * 282e,4678 * 8ea1a8ae,8ea1c6f8,a8ae,c6f8,8ea1a8aev,8ea1c6f8v,a8aev,c6f8v 76ee e79bae,e2bdac 76ee,2f6c 000076ee,00002f6c a5d8 a5d8 a5d8 a5d8 a5d8 a5d8 a5d8 -871 a5d9 a5d9 a5d9 * 282f,4679 * 8ea1a8af,8ea1c6f9,a8af,c6f9,8ea1a8afv,8ea1c6f9v,a8afv,c6f9v 77db e79f9b,e2bdad 77db,2f6d 000077db,00002f6d a5d9 a5d9 a5d9 a5d9 a5d9 a5d9 a5d9 -872 a5da a5da a5da * 2830,467a * 8ea1a8b0,8ea1c6fa,a8b0,c6fa,8ea1a8b0v,8ea1c6fav,a8b0v,c6fav 77e2 e79fa2,e2bdae 77e2,2f6e 000077e2,00002f6e a5da a5da a5da a5da a5da a5da a5da -873 a5db a5db a5db * 2831,467b * 8ea1a8b1,8ea1c6fb,a8b1,c6fb,8ea1a8b1v,8ea1c6fbv,a8b1v,c6fbv 77f3 e79fb3,e2bdaf 77f3,2f6f 000077f3,00002f6f a5db a5db a5db a5db a5db a5db a5db -874 a5dc a5dc a5dc * 2832,467c * 8ea1a8b2,8ea1c6fc,a8b2,c6fc,8ea1a8b2v,8ea1c6fcv,a8b2v,c6fcv 793a e7a4ba,e2bdb0 793a,2f70 0000793a,00002f70 a5dc a5dc a5dc a5dc a5dc a5dc a5dc -875 a5dd a5dd a5dd * 2834,467d * 8ea1a8b4,8ea1c6fd,a8b4,c6fd,8ea1a8b4v,8ea1c6fdv,a8b4v,c6fdv 79be e7a6be,e2bdb2 79be,2f72 000079be,00002f72 a5dd a5dd a5dd a5dd a5dd a5dd a5dd -876 a5de a5de a5de * 2835,467e * 8ea1a8b5,8ea1c6fe,a8b5,c6fe,8ea1a8b5v,8ea1c6fev,a8b5v,c6fev 7a74 e7a9b4,e2bdb3 7a74,2f73 00007a74,00002f73 a5de a5de a5de a5de a5de a5de a5de -877 a5df a5df a5df * 2836,4721 * 8ea1a8b6,8ea1c7a1,a8b6,c7a1,8ea1a8b6v,8ea1c7a1v,a8b6v,c7a1v 7acb e7ab8b,e2bdb4 7acb,2f74 00007acb,00002f74 a5df a5df a5df a5df a5df a5df a5df -878 a5e0 a5e0 a5e0 * 4722 * 8ea1c7a2,c7a2,8ea1c7a2v,c7a2v 4e1e e4b89e 4e1e 00004e1e a5e0 a5e0 a5e0 a5e0 a5e0 a5e0 a5e0 -879 a5e1 a5e1 a5e1 * 4723 * 8ea1c7a3,c7a3,8ea1c7a3v,c7a3v 4e1f e4b89f 4e1f 00004e1f a5e1 a5e1 a5e1 a5e1 a5e1 a5e1 a5e1 -880 a5e2 a5e2 a5e2 * 4724 * 8ea1c7a4,c7a4,8ea1c7a4v,c7a4v 4e52 e4b992 4e52 00004e52 a5e2 a5e2 a5e2 a5e2 a5e2 a5e2 a5e2 -881 a5e3 a5e3 a5e3 * 4725 * 8ea1c7a5,c7a5,8ea1c7a5v,c7a5v 4e53 e4b993 4e53 00004e53 a5e3 a5e3 a5e3 a5e3 a5e3 a5e3 a5e3 -882 a5e4 a5e4 a5e4 * 4726 * 8ea1c7a6,c7a6,8ea1c7a6v,c7a6v 4e69 e4b9a9 4e69 00004e69 a5e4 a5e4 a5e4 a5e4 a5e4 a5e4 a5e4 -883 a5e5 a5e5 a5e5 * 4727 * 8ea1c7a7,c7a7,8ea1c7a7v,c7a7v 4e99 e4ba99 4e99 00004e99 a5e5 a5e5 a5e5 a5e5 a5e5 a5e5 a5e5 -884 a5e6 a5e6 a5e6 * 4728 * 8ea1c7a8,c7a8,8ea1c7a8v,c7a8v 4ea4 e4baa4 4ea4 00004ea4 a5e6 a5e6 a5e6 a5e6 a5e6 a5e6 a5e6 -885 a5e7 a5e7 a5e7 * 4729 * 8ea1c7a9,c7a9,8ea1c7a9v,c7a9v 4ea6 e4baa6 4ea6 00004ea6 a5e7 a5e7 a5e7 a5e7 a5e7 a5e7 a5e7 -886 a5e8 a5e8 a5e8 * 472a * 8ea1c7aa,c7aa,8ea1c7aav,c7aav 4ea5 e4baa5 4ea5 00004ea5 a5e8 a5e8 a5e8 a5e8 a5e8 a5e8 a5e8 -887 a5e9 a5e9 a5e9 * 472b * 8ea1c7ab,c7ab,8ea1c7abv,c7abv 4eff e4bbbf 4eff 00004eff a5e9 a5e9 a5e9 a5e9 a5e9 a5e9 a5e9 -888 a5ea a5ea a5ea * 472c * 8ea1c7ac,c7ac,8ea1c7acv,c7acv 4f09 e4bc89 4f09 00004f09 a5ea a5ea a5ea a5ea a5ea a5ea a5ea -889 a5eb a5eb a5eb * 472d * 8ea1c7ad,c7ad,8ea1c7adv,c7adv 4f19 e4bc99 4f19 00004f19 a5eb a5eb a5eb a5eb a5eb a5eb a5eb -890 a5ec a5ec a5ec * 472e * 8ea1c7ae,c7ae,8ea1c7aev,c7aev 4f0a e4bc8a 4f0a 00004f0a a5ec a5ec a5ec a5ec a5ec a5ec a5ec -891 a5ed a5ed a5ed * 472f * 8ea1c7af,c7af,8ea1c7afv,c7afv 4f15 e4bc95 4f15 00004f15 a5ed a5ed a5ed a5ed a5ed a5ed a5ed -892 a5ee a5ee a5ee * 4730 * 8ea1c7b0,c7b0,8ea1c7b0v,c7b0v 4f0d e4bc8d 4f0d 00004f0d a5ee a5ee a5ee a5ee a5ee a5ee a5ee -893 a5ef a5ef a5ef * 4731 * 8ea1c7b1,c7b1,8ea1c7b1v,c7b1v 4f10 e4bc90 4f10 00004f10 a5ef a5ef a5ef a5ef a5ef a5ef a5ef -894 a5f0 a5f0 a5f0 * 4732 * 8ea1c7b2,c7b2,8ea1c7b2v,c7b2v 4f11 e4bc91 4f11 00004f11 a5f0 a5f0 a5f0 a5f0 a5f0 a5f0 a5f0 -895 a5f1 a5f1 a5f1 * 4733 * 8ea1c7b3,c7b3,8ea1c7b3v,c7b3v 4f0f e4bc8f 4f0f 00004f0f a5f1 a5f1 a5f1 a5f1 a5f1 a5f1 a5f1 -896 a5f2 a5f2 a5f2 * 4734 * 8ea1c7b4,c7b4,8ea1c7b4v,c7b4v 4ef2 e4bbb2 4ef2 00004ef2 a5f2 a5f2 a5f2 a5f2 a5f2 a5f2 a5f2 -897 a5f3 a5f3 a5f3 * 4735 * 8ea1c7b5,c7b5,8ea1c7b5v,c7b5v 4ef6 e4bbb6 4ef6 00004ef6 a5f3 a5f3 a5f3 a5f3 a5f3 a5f3 a5f3 -898 a5f4 a5f4 a5f4 * 4736 * 8ea1c7b6,c7b6,8ea1c7b6v,c7b6v 4efb e4bbbb 4efb 00004efb a5f4 a5f4 a5f4 a5f4 a5f4 a5f4 a5f4 -899 a5f5 a5f5 a5f5 * 4737 * 8ea1c7b7,c7b7,8ea1c7b7v,c7b7v 4ef0 e4bbb0 4ef0 00004ef0 a5f5 a5f5 a5f5 a5f5 a5f5 a5f5 a5f5 -900 a5f6 a5f6 a5f6 * 4738 * 8ea1c7b8,c7b8,8ea1c7b8v,c7b8v 4ef3 e4bbb3 4ef3 00004ef3 a5f6 a5f6 a5f6 a5f6 a5f6 a5f6 a5f6 -901 a5f7 a5f7 a5f7 * 4739 * 8ea1c7b9,c7b9,8ea1c7b9v,c7b9v 4efd e4bbbd 4efd 00004efd a5f7 a5f7 a5f7 a5f7 a5f7 a5f7 a5f7 -902 a5f8 a5f8 a5f8 * 473a * 8ea1c7ba,c7ba,8ea1c7bav,c7bav 4f01 e4bc81 4f01 00004f01 a5f8 a5f8 a5f8 a5f8 a5f8 a5f8 a5f8 -903 a5f9 a5f9 a5f9 * 473b * 8ea1c7bb,c7bb,8ea1c7bbv,c7bbv 4f0b e4bc8b 4f0b 00004f0b a5f9 a5f9 a5f9 a5f9 a5f9 a5f9 a5f9 -904 a5fa a5fa a5fa * 473c * 8ea1c7bc,c7bc,8ea1c7bcv,c7bcv 5149 e58589 5149 00005149 a5fa a5fa a5fa a5fa a5fa a5fa a5fa -905 a5fb a5fb a5fb * 473d * 8ea1c7bd,c7bd,8ea1c7bdv,c7bdv 5147 e58587 5147 00005147 a5fb a5fb a5fb a5fb a5fb a5fb a5fb -906 a5fc a5fc a5fc * 473e * 8ea1c7be,c7be,8ea1c7bev,c7bev 5146 e58586 5146 00005146 a5fc a5fc a5fc a5fc a5fc a5fc a5fc -907 a5fd a5fd a5fd * 473f * 8ea1c7bf,c7bf,8ea1c7bfv,c7bfv 5148 e58588 5148 00005148 a5fd a5fd a5fd a5fd a5fd a5fd a5fd -908 a5fe a5fe a5fe * 4740 * 8ea1c7c0,c7c0,8ea1c7c0v,c7c0v 5168 e585a8 5168 00005168 a5fe a5fe a5fe a5fe a5fe a5fe a5fe -909 a640 a640 a640 * 4741 * 8ea1c7c1,c7c1,8ea1c7c1v,c7c1v 5171 e585b1 5171 00005171 a640 a640 a640 a640 a640 a640 a640 -910 a641 a641 a641 * 4742 * 8ea1c7c2,c7c2,8ea1c7c2v,c7c2v 518d e5868d 518d 0000518d a641 a641 a641 a641 a641 a641 a641 -911 a642 a642 a642 * 4743 * 8ea1c7c3,c7c3,8ea1c7c3v,c7c3v 51b0 e586b0 51b0 000051b0 a642 a642 a642 a642 a642 a642 a642 -912 a643 a643 a643 * 4744 * 8ea1c7c4,c7c4,8ea1c7c4v,c7c4v 5217 e58897 5217 00005217 a643 a643 a643 a643 a643 a643 a643 -913 a644 a644 a644 * 4745 * 8ea1c7c5,c7c5,8ea1c7c5v,c7c5v 5211 e58891 5211 00005211 a644 a644 a644 a644 a644 a644 a644 -914 a645 a645 a645 * 4746 * 8ea1c7c6,c7c6,8ea1c7c6v,c7c6v 5212 e58892 5212 00005212 a645 a645 a645 a645 a645 a645 a645 -915 a646 a646 a646 * 4747 * 8ea1c7c7,c7c7,8ea1c7c7v,c7c7v 520e e5888e 520e 0000520e a646 a646 a646 a646 a646 a646 a646 -916 a647 a647 a647 * 4748 * 8ea1c7c8,c7c8,8ea1c7c8v,c7c8v 5216 e58896 5216 00005216 a647 a647 a647 a647 a647 a647 a647 -917 a648 a648 a648 * 4749 * 8ea1c7c9,c7c9,8ea1c7c9v,c7c9v 52a3 e58aa3 52a3 000052a3 a648 a648 a648 a648 a648 a648 a648 -918 a649 a649 a649 * 474a * 8ea1c7ca,c7ca,8ea1c7cav,c7cav 5308 e58c88 5308 00005308 a649 a649 a649 a649 a649 a649 a649 -919 a64a a64a a64a * 474b * 8ea1c7cb,c7cb,8ea1c7cbv,c7cbv 5321 e58ca1 5321 00005321 a64a a64a a64a a64a a64a a64a a64a -920 a64b a64b a64b * 474c * 8ea1c7cc,c7cc,8ea1c7ccv,c7ccv 5320 e58ca0 5320 00005320 a64b a64b a64b a64b a64b a64b a64b -921 a64c a64c a64c * 474d * 8ea1c7cd,c7cd,8ea1c7cdv,c7cdv 5370 e58db0 5370 00005370 a64c a64c a64c a64c a64c a64c a64c -922 a64d a64d a64d * 474e * 8ea1c7ce,c7ce,8ea1c7cev,c7cev 5371 e58db1 5371 00005371 a64d a64d a64d a64d a64d a64d a64d -923 a64e a64e a64e * 474f * 8ea1c7cf,c7cf,8ea1c7cfv,c7cfv 5409 e59089 5409 00005409 a64e a64e a64e a64e a64e a64e a64e -924 a64f a64f a64f * 4750 * 8ea1c7d0,c7d0,8ea1c7d0v,c7d0v 540f e5908f 540f 0000540f a64f a64f a64f a64f a64f a64f a64f -925 a650 a650 a650 * 4751 * 8ea1c7d1,c7d1,8ea1c7d1v,c7d1v 540c e5908c 540c 0000540c a650 a650 a650 a650 a650 a650 a650 -926 a651 a651 a651 * 4752 * 8ea1c7d2,c7d2,8ea1c7d2v,c7d2v 540a e5908a 540a 0000540a a651 a651 a651 a651 a651 a651 a651 -927 a652 a652 a652 * 4753 * 8ea1c7d3,c7d3,8ea1c7d3v,c7d3v 5410 e59090 5410 00005410 a652 a652 a652 a652 a652 a652 a652 -928 a653 a653 a653 * 4754 * 8ea1c7d4,c7d4,8ea1c7d4v,c7d4v 5401 e59081 5401 00005401 a653 a653 a653 a653 a653 a653 a653 -929 a654 a654 a654 * 4755 * 8ea1c7d5,c7d5,8ea1c7d5v,c7d5v 540b e5908b 540b 0000540b a654 a654 a654 a654 a654 a654 a654 -930 a655 a655 a655 * 4756 * 8ea1c7d6,c7d6,8ea1c7d6v,c7d6v 5404 e59084 5404 00005404 a655 a655 a655 a655 a655 a655 a655 -931 a656 a656 a656 * 4757 * 8ea1c7d7,c7d7,8ea1c7d7v,c7d7v 5411 e59091 5411 00005411 a656 a656 a656 a656 a656 a656 a656 -932 a657 a657 a657 * 4758 * 8ea1c7d8,c7d8,8ea1c7d8v,c7d8v 540d e5908d 540d 0000540d a657 a657 a657 a657 a657 a657 a657 -933 a658 a658 a658 * 4759 * 8ea1c7d9,c7d9,8ea1c7d9v,c7d9v 5408 e59088 5408 00005408 a658 a658 a658 a658 a658 a658 a658 -934 a659 a659 a659 * 475a * 8ea1c7da,c7da,8ea1c7dav,c7dav 5403 e59083 5403 00005403 a659 a659 a659 a659 a659 a659 a659 -935 a65a a65a a65a * 475b * 8ea1c7db,c7db,8ea1c7dbv,c7dbv 540e e5908e 540e 0000540e a65a a65a a65a a65a a65a a65a a65a -936 a65b a65b a65b * 475c * 8ea1c7dc,c7dc,8ea1c7dcv,c7dcv 5406 e59086 5406 00005406 a65b a65b a65b a65b a65b a65b a65b -937 a65c a65c a65c * 475d * 8ea1c7dd,c7dd,8ea1c7ddv,c7ddv 5412 e59092 5412 00005412 a65c a65c a65c a65c a65c a65c a65c -938 a65d a65d a65d * 475e * 8ea1c7de,c7de,8ea1c7dev,c7dev 56e0 e59ba0 56e0 000056e0 a65d a65d a65d a65d a65d a65d a65d -939 a65e a65e a65e * 475f * 8ea1c7df,c7df,8ea1c7dfv,c7dfv 56de e59b9e 56de 000056de a65e a65e a65e a65e a65e a65e a65e -940 a65f a65f a65f * 4760 * 8ea1c7e0,c7e0,8ea1c7e0v,c7e0v 56dd e59b9d 56dd 000056dd a65f a65f a65f a65f a65f a65f a65f -941 a660 a660 a660 * 4761 * 8ea1c7e1,c7e1,8ea1c7e1v,c7e1v 5733 e59cb3 5733 00005733 a660 a660 a660 a660 a660 a660 a660 -942 a661 a661 a661 * 4762 * 8ea1c7e2,c7e2,8ea1c7e2v,c7e2v 5730 e59cb0 5730 00005730 a661 a661 a661 a661 a661 a661 a661 -943 a662 a662 a662 * 4763 * 8ea1c7e3,c7e3,8ea1c7e3v,c7e3v 5728 e59ca8 5728 00005728 a662 a662 a662 a662 a662 a662 a662 -944 a663 a663 a663 * 4764 * 8ea1c7e4,c7e4,8ea1c7e4v,c7e4v 572d e59cad 572d 0000572d a663 a663 a663 a663 a663 a663 a663 -945 a664 a664 a664 * 4765 * 8ea1c7e5,c7e5,8ea1c7e5v,c7e5v 572c e59cac 572c 0000572c a664 a664 a664 a664 a664 a664 a664 -946 a665 a665 a665 * 4766 * 8ea1c7e6,c7e6,8ea1c7e6v,c7e6v 572f e59caf 572f 0000572f a665 a665 a665 a665 a665 a665 a665 -947 a666 a666 a666 * 4767 * 8ea1c7e7,c7e7,8ea1c7e7v,c7e7v 5729 e59ca9 5729 00005729 a666 a666 a666 a666 a666 a666 a666 -948 a667 a667 a667 * 4768 * 8ea1c7e8,c7e8,8ea1c7e8v,c7e8v 5919 e5a499 5919 00005919 a667 a667 a667 a667 a667 a667 a667 -949 a668 a668 a668 * 4769 * 8ea1c7e9,c7e9,8ea1c7e9v,c7e9v 591a e5a49a 591a 0000591a a668 a668 a668 a668 a668 a668 a668 -950 a669 a669 a669 * 476a * 8ea1c7ea,c7ea,8ea1c7eav,c7eav 5937 e5a4b7 5937 00005937 a669 a669 a669 a669 a669 a669 a669 -951 a66a a66a a66a * 476b * 8ea1c7eb,c7eb,8ea1c7ebv,c7ebv 5938 e5a4b8 5938 00005938 a66a a66a a66a a66a a66a a66a a66a -952 a66b a66b a66b * 476c * 8ea1c7ec,c7ec,8ea1c7ecv,c7ecv 5984 e5a684 5984 00005984 a66b a66b a66b a66b a66b a66b a66b -953 a66c a66c a66c * 476d * 8ea1c7ed,c7ed,8ea1c7edv,c7edv 5978 e5a5b8 5978 00005978 a66c a66c a66c a66c a66c a66c a66c -954 a66d a66d a66d * 476e * 8ea1c7ee,c7ee,8ea1c7eev,c7eev 5983 e5a683 5983 00005983 a66d a66d a66d a66d a66d a66d a66d -955 a66e a66e a66e * 476f * 8ea1c7ef,c7ef,8ea1c7efv,c7efv 597d e5a5bd 597d 0000597d a66e a66e a66e a66e a66e a66e a66e -956 a66f a66f a66f * 4770 * 8ea1c7f0,c7f0,8ea1c7f0v,c7f0v 5979 e5a5b9 5979 00005979 a66f a66f a66f a66f a66f a66f a66f -957 a670 a670 a670 * 4771 * 8ea1c7f1,c7f1,8ea1c7f1v,c7f1v 5982 e5a682 5982 00005982 a670 a670 a670 a670 a670 a670 a670 -958 a671 a671 a671 * 4772 * 8ea1c7f2,c7f2,8ea1c7f2v,c7f2v 5981 e5a681 5981 00005981 a671 a671 a671 a671 a671 a671 a671 -959 a672 a672 a672 * 4773 * 8ea1c7f3,c7f3,8ea1c7f3v,c7f3v 5b57 e5ad97 5b57 00005b57 a672 a672 a672 a672 a672 a672 a672 -960 a673 a673 a673 * 4774 * 8ea1c7f4,c7f4,8ea1c7f4v,c7f4v 5b58 e5ad98 5b58 00005b58 a673 a673 a673 a673 a673 a673 a673 -961 a674 a674 a674 * 4775 * 8ea1c7f5,c7f5,8ea1c7f5v,c7f5v 5b87 e5ae87 5b87 00005b87 a674 a674 a674 a674 a674 a674 a674 -962 a675 a675 a675 * 4776 * 8ea1c7f6,c7f6,8ea1c7f6v,c7f6v 5b88 e5ae88 5b88 00005b88 a675 a675 a675 a675 a675 a675 a675 -963 a676 a676 a676 * 4777 * 8ea1c7f7,c7f7,8ea1c7f7v,c7f7v 5b85 e5ae85 5b85 00005b85 a676 a676 a676 a676 a676 a676 a676 -964 a677 a677 a677 * 4778 * 8ea1c7f8,c7f8,8ea1c7f8v,c7f8v 5b89 e5ae89 5b89 00005b89 a677 a677 a677 a677 a677 a677 a677 -965 a678 a678 a678 * 4779 * 8ea1c7f9,c7f9,8ea1c7f9v,c7f9v 5bfa e5afba 5bfa 00005bfa a678 a678 a678 a678 a678 a678 a678 -966 a679 a679 a679 * 477a * 8ea1c7fa,c7fa,8ea1c7fav,c7fav 5c16 e5b096 5c16 00005c16 a679 a679 a679 a679 a679 a679 a679 -967 a67a a67a a67a * 477b * 8ea1c7fb,c7fb,8ea1c7fbv,c7fbv 5c79 e5b1b9 5c79 00005c79 a67a a67a a67a a67a a67a a67a a67a -968 a67b a67b a67b * 477c * 8ea1c7fc,c7fc,8ea1c7fcv,c7fcv 5dde e5b79e 5dde 00005dde a67b a67b a67b a67b a67b a67b a67b -969 a67c a67c a67c * 477d * 8ea1c7fd,c7fd,8ea1c7fdv,c7fdv 5e06 e5b886 5e06 00005e06 a67c a67c a67c a67c a67c a67c a67c -970 a67d a67d a67d * 477e * 8ea1c7fe,c7fe,8ea1c7fev,c7fev 5e76 e5b9b6 5e76 00005e76 a67d a67d a67d a67d a67d a67d a67d -971 a67e a67e a67e * 4821 * 8ea1c8a1,c8a1,8ea1c8a1v,c8a1v 5e74 e5b9b4 5e74 00005e74 a67e a67e a67e a67e a67e a67e a67e -972 a6a1 a6a1 a6a1 * 4822 * 8ea1c8a2,c8a2,8ea1c8a2v,c8a2v 5f0f e5bc8f 5f0f 00005f0f a6a1 a6a1 a6a1 a6a1 a6a1 a6a1 a6a1 -973 a6a2 a6a2 a6a2 * 4823 * 8ea1c8a3,c8a3,8ea1c8a3v,c8a3v 5f1b e5bc9b 5f1b 00005f1b a6a2 a6a2 a6a2 a6a2 a6a2 a6a2 a6a2 -974 a6a3 a6a3 a6a3 * 4824 * 8ea1c8a4,c8a4,8ea1c8a4v,c8a4v 5fd9 e5bf99 5fd9 00005fd9 a6a3 a6a3 a6a3 a6a3 a6a3 a6a3 a6a3 -975 a6a4 a6a4 a6a4 * 4825 * 8ea1c8a5,c8a5,8ea1c8a5v,c8a5v 5fd6 e5bf96 5fd6 00005fd6 a6a4 a6a4 a6a4 a6a4 a6a4 a6a4 a6a4 -976 a6a5 a6a5 a6a5 * 4826 * 8ea1c8a6,c8a6,8ea1c8a6v,c8a6v 620e e6888e 620e 0000620e a6a5 a6a5 a6a5 a6a5 a6a5 a6a5 a6a5 -977 a6a6 a6a6 a6a6 * 4827 * 8ea1c8a7,c8a7,8ea1c8a7v,c8a7v 620c e6888c 620c 0000620c a6a6 a6a6 a6a6 a6a6 a6a6 a6a6 a6a6 -978 a6a7 a6a7 a6a7 * 4828 * 8ea1c8a8,c8a8,8ea1c8a8v,c8a8v 620d e6888d 620d 0000620d a6a7 a6a7 a6a7 a6a7 a6a7 a6a7 a6a7 -979 a6a8 a6a8 a6a8 * 4829 * 8ea1c8a9,c8a9,8ea1c8a9v,c8a9v 6210 e68890 6210 00006210 a6a8 a6a8 a6a8 a6a8 a6a8 a6a8 a6a8 -980 a6a9 a6a9 a6a9 * 482a * 8ea1c8aa,c8aa,8ea1c8aav,c8aav 6263 e689a3 6263 00006263 a6a9 a6a9 a6a9 a6a9 a6a9 a6a9 a6a9 -981 a6aa a6aa a6aa * 482b * 8ea1c8ab,c8ab,8ea1c8abv,c8abv 625b e6899b 625b 0000625b a6aa a6aa a6aa a6aa a6aa a6aa a6aa -982 a6ab a6ab a6ab * 482c * 8ea1c8ac,c8ac,8ea1c8acv,c8acv 6258 e68998 6258 00006258 a6ab a6ab a6ab a6ab a6ab a6ab a6ab -983 a6ac a6ac a6ac * 482d * 8ea1c8ad,c8ad,8ea1c8adv,c8adv 6536 e694b6 6536 00006536 a6ac a6ac a6ac a6ac a6ac a6ac a6ac -984 a6ad a6ad a6ad * 482e * 8ea1c8ae,c8ae,8ea1c8aev,c8aev 65e9 e697a9 65e9 000065e9 a6ad a6ad a6ad a6ad a6ad a6ad a6ad -985 a6ae a6ae a6ae * 482f * 8ea1c8af,c8af,8ea1c8afv,c8afv 65e8 e697a8 65e8 000065e8 a6ae a6ae a6ae a6ae a6ae a6ae a6ae -986 a6af a6af a6af * 4830 * 8ea1c8b0,c8b0,8ea1c8b0v,c8b0v 65ec e697ac 65ec 000065ec a6af a6af a6af a6af a6af a6af a6af -987 a6b0 a6b0 a6b0 * 4831 * 8ea1c8b1,c8b1,8ea1c8b1v,c8b1v 65ed e697ad 65ed 000065ed a6b0 a6b0 a6b0 a6b0 a6b0 a6b0 a6b0 -988 a6b1 a6b1 a6b1 * 4832 * 8ea1c8b2,c8b2,8ea1c8b2v,c8b2v 66f2 e69bb2 66f2 000066f2 a6b1 a6b1 a6b1 a6b1 a6b1 a6b1 a6b1 -989 a6b2 a6b2 a6b2 * 4833 * 8ea1c8b3,c8b3,8ea1c8b3v,c8b3v 66f3 e69bb3 66f3 000066f3 a6b2 a6b2 a6b2 a6b2 a6b2 a6b2 a6b2 -990 a6b3 a6b3 a6b3 * 4834 * 8ea1c8b4,c8b4,8ea1c8b4v,c8b4v 6709 e69c89 6709 00006709 a6b3 a6b3 a6b3 a6b3 a6b3 a6b3 a6b3 -991 a6b4 a6b4 a6b4 * 4835 * 8ea1c8b5,c8b5,8ea1c8b5v,c8b5v 673d e69cbd 673d 0000673d a6b4 a6b4 a6b4 a6b4 a6b4 a6b4 a6b4 -992 a6b5 a6b5 a6b5 * 4836 * 8ea1c8b6,c8b6,8ea1c8b6v,c8b6v 6734 e69cb4 6734 00006734 a6b5 a6b5 a6b5 a6b5 a6b5 a6b5 a6b5 -993 a6b6 a6b6 a6b6 * 4837 * 8ea1c8b7,c8b7,8ea1c8b7v,c8b7v 6731 e69cb1 6731 00006731 a6b6 a6b6 a6b6 a6b6 a6b6 a6b6 a6b6 -994 a6b7 a6b7 a6b7 * 4838 * 8ea1c8b8,c8b8,8ea1c8b8v,c8b8v 6735 e69cb5 6735 00006735 a6b7 a6b7,fcac a6b7 a6b7 a6b7 a6b7 a6b7 -995 a6b8 a6b8 a6b8 * 4839 * 8ea1c8b9,c8b9,8ea1c8b9v,c8b9v 6b21 e6aca1 6b21 00006b21 a6b8 a6b8 a6b8 a6b8 a6b8 a6b8 a6b8 -996 a6b9 a6b9 a6b9 * 483a * 8ea1c8ba,c8ba,8ea1c8bav,c8bav 6b64 e6ada4 6b64 00006b64 a6b9 a6b9 a6b9 a6b9 a6b9 a6b9 a6b9 -997 a6ba a6ba a6ba * 483b * 8ea1c8bb,c8bb,8ea1c8bbv,c8bbv 6b7b e6adbb 6b7b 00006b7b a6ba a6ba a6ba a6ba a6ba a6ba a6ba -998 a6bb a6bb a6bb * 483c * 8ea1c8bc,c8bc,8ea1c8bcv,c8bcv 6c16 e6b096 6c16 00006c16 a6bb a6bb a6bb a6bb a6bb a6bb a6bb -999 a6bc a6bc a6bc * 483d * 8ea1c8bd,c8bd,8ea1c8bdv,c8bdv 6c5d e6b19d 6c5d 00006c5d a6bc a6bc a6bc a6bc a6bc a6bc a6bc -1000 a6bd a6bd a6bd * 483e * 8ea1c8be,c8be,8ea1c8bev,c8bev 6c57 e6b197 6c57 00006c57 a6bd a6bd a6bd a6bd a6bd a6bd a6bd -1001 a6be a6be a6be * 483f * 8ea1c8bf,c8bf,8ea1c8bfv,c8bfv 6c59 e6b199 6c59 00006c59 a6be a6be a6be a6be a6be a6be a6be -1002 a6bf a6bf a6bf * 4840 * 8ea1c8c0,c8c0,8ea1c8c0v,c8c0v 6c5f e6b19f 6c5f 00006c5f a6bf a6bf a6bf a6bf a6bf a6bf a6bf -1003 a6c0 a6c0 a6c0 * 4841 * 8ea1c8c1,c8c1,8ea1c8c1v,c8c1v 6c60 e6b1a0 6c60 00006c60 a6c0 a6c0 a6c0 a6c0 a6c0 a6c0 a6c0 -1004 a6c1 a6c1 a6c1 * 4842 * 8ea1c8c2,c8c2,8ea1c8c2v,c8c2v 6c50 e6b190 6c50 00006c50 a6c1 a6c1 a6c1 a6c1 a6c1 a6c1 a6c1 -1005 a6c2 a6c2 a6c2 * 4843 * 8ea1c8c3,c8c3,8ea1c8c3v,c8c3v 6c55 e6b195 6c55 00006c55 a6c2 a6c2 a6c2 a6c2 a6c2 a6c2 a6c2 -1006 a6c3 a6c3 a6c3 * 4844 * 8ea1c8c4,c8c4,8ea1c8c4v,c8c4v 6c61 e6b1a1 6c61 00006c61 a6c3 a6c3 a6c3 a6c3 a6c3 a6c3 a6c3 -1007 a6c4 a6c4 a6c4 * 4845 * 8ea1c8c5,c8c5,8ea1c8c5v,c8c5v 6c5b e6b19b 6c5b 00006c5b a6c4 a6c4 a6c4 a6c4 a6c4 a6c4 a6c4 -1008 a6c5 a6c5 a6c5 * 4846 * 8ea1c8c6,c8c6,8ea1c8c6v,c8c6v 6c4d e6b18d 6c4d 00006c4d a6c5 a6c5 a6c5 a6c5 a6c5 a6c5 a6c5 -1009 a6c6 a6c6 a6c6 * 4847 * 8ea1c8c7,c8c7,8ea1c8c7v,c8c7v 6c4e e6b18e 6c4e 00006c4e a6c6 a6c6 a6c6 a6c6 a6c6 a6c6 a6c6 -1010 a6c7 a6c7 a6c7 * 4848 * 8ea1c8c8,c8c8,8ea1c8c8v,c8c8v 7070 e781b0 7070 00007070 a6c7 a6c7 a6c7 a6c7 a6c7 a6c7 a6c7 -1011 a6c8 a6c8 a6c8 * 4849 * 8ea1c8c9,c8c9,8ea1c8c9v,c8c9v 725f e7899f 725f 0000725f a6c8 a6c8 a6c8 a6c8 a6c8 a6c8 a6c8 -1012 a6c9 a6c9 a6c9 * 484a * 8ea1c8ca,c8ca,8ea1c8cav,c8cav 725d e7899d 725d 0000725d a6c9 a6c9 a6c9 a6c9 a6c9 a6c9 a6c9 -1013 a6ca a6ca a6ca * 484b * 8ea1c8cb,c8cb,8ea1c8cbv,c8cbv 767e e799be 767e 0000767e a6ca a6ca a6ca a6ca a6ca a6ca a6ca -1014 a6cb a6cb a6cb * 2837,484c * 8ea1a8b7,8ea1c8cc,a8b7,c8cc,8ea1a8b7v,8ea1c8ccv,a8b7v,c8ccv 7af9 e7abb9,e2bdb5 7af9,2f75 00007af9,00002f75 a6cb a6cb a6cb a6cb a6cb a6cb a6cb -1015 a6cc a6cc a6cc * 2838,484d * 8ea1a8b8,8ea1c8cd,a8b8,c8cd,8ea1a8b8v,8ea1c8cdv,a8b8v,c8cdv 7c73 e7b1b3,e2bdb6 7c73,2f76 00007c73,00002f76 a6cc a6cc a6cc a6cc a6cc a6cc a6cc -1016 a6cd a6cd a6cd * 2839,484e * 8ea1a8b9,8ea1c8ce,a8b9,c8ce,8ea1a8b9v,8ea1c8cev,a8b9v,c8cev 7cf8 e7b3b8,e2bdb7 7cf8,2f77 00007cf8,00002f77 a6cd a6cd a6cd a6cd a6cd a6cd a6cd -1017 a6ce a6ce a6ce * 283a,484f * 8ea1a8ba,8ea1c8cf,a8ba,c8cf,8ea1a8bav,8ea1c8cfv,a8bav,c8cfv 7f36 e7bcb6,e2bdb8 7f36,2f78 00007f36,00002f78 a6ce a6ce a6ce a6ce a6ce a6ce a6ce -1018 a6cf a6cf a6cf * 283c,4850 * 8ea1a8bc,8ea1c8d0,a8bc,c8d0,8ea1a8bcv,8ea1c8d0v,a8bcv,c8d0v 7f8a e7be8a,e2bdba 7f8a,2f7a 00007f8a,00002f7a a6cf a6cf a6cf a6cf a6cf a6cf a6cf -1019 a6d0 a6d0 a6d0 * 283d,4851 * 8ea1a8bd,8ea1c8d1,a8bd,c8d1,8ea1a8bdv,8ea1c8d1v,a8bdv,c8d1v 7fbd e7bebd,e2bdbb 7fbd,2f7b 00007fbd,00002f7b a6d0 a6d0 a6d0 a6d0 a6d0 a6d0 a6d0 -1020 a6d1 a6d1 a6d1 * 283e,4852 * 8ea1a8be,8ea1c8d2,a8be,c8d2,8ea1a8bev,8ea1c8d2v,a8bev,c8d2v 8001 e88081,e2bdbc 8001,2f7c 00008001,00002f7c a6d1 a6d1 a6d1 a6d1 a6d1 a6d1 a6d1 -1021 a6d2 a6d2 a6d2 * 4853 * 8ea1c8d3,c8d3,8ea1c8d3v,c8d3v 8003 e88083 8003 00008003 a6d2 a6d2 a6d2 a6d2 a6d2 a6d2 a6d2 -1022 a6d3 a6d3 a6d3 * 283f,4854 * 8ea1a8bf,8ea1c8d4,a8bf,c8d4,8ea1a8bfv,8ea1c8d4v,a8bfv,c8d4v 800c e8808c,e2bdbd 800c,2f7d 0000800c,00002f7d a6d3 a6d3 a6d3 a6d3 a6d3 a6d3 a6d3 -1023 a6d4 a6d4 a6d4 * 2840,4855 * 8ea1a8c0,8ea1c8d5,a8c0,c8d5,8ea1a8c0v,8ea1c8d5v,a8c0v,c8d5v 8012 e88092,e2bdbe 8012,2f7e 00008012,00002f7e a6d4 a6d4 a6d4 a6d4 a6d4 a6d4 a6d4 -1024 a6d5 a6d5 a6d5 * 2841,4856 * 8ea1a8c1,8ea1c8d6,a8c1,c8d6,8ea1a8c1v,8ea1c8d6v,a8c1v,c8d6v 8033 e880b3,e2bdbf 8033,2f7f 00008033,00002f7f a6d5 a6d5 a6d5 a6d5 a6d5 a6d5 a6d5 -1025 a6d6 a6d6 a6d6 * 2842,4857 * 8ea1a8c2,8ea1c8d7,a8c2,c8d7,8ea1a8c2v,8ea1c8d7v,a8c2v,c8d7v 807f e881bf,e2be80 807f,2f80 0000807f,00002f80 a6d6 a6d6 a6d6 a6d6 a6d6 a6d6 a6d6 -1026 a6d7 a6d7 a6d7 * 2843,4858 * 8ea1a8c3,8ea1c8d8,a8c3,c8d8,8ea1a8c3v,8ea1c8d8v,a8c3v,c8d8v 8089 e88289,e2be81 8089,2f81 00008089,00002f81 a6d7 a6d7 a6d7 a6d7 a6d7 a6d7 a6d7 -1027 a6d8 a6d8 a6d8 * 4859 * 8ea1c8d9,c8d9,8ea1c8d9v,c8d9v 808b e8828b 808b 0000808b a6d8 a6d8 a6d8 a6d8 a6d8 a6d8 a6d8 -1028 a6d9 a6d9 a6d9 * 485a * 8ea1c8da,c8da,8ea1c8dav,c8dav 808c e8828c 808c 0000808c a6d9 a6d9 a6d9 a6d9 a6d9 a6d9 a6d9 -1029 a6da a6da a6da * 2844,485b * 8ea1a8c4,8ea1c8db,a8c4,c8db,8ea1a8c4v,8ea1c8dbv,a8c4v,c8dbv 81e3 e887a3,e2be82 81e3,2f82 000081e3,00002f82 a6da a6da a6da a6da a6da a6da a6da -1030 a6db a6db a6db * 2845,485c * 8ea1a8c5,8ea1c8dc,a8c5,c8dc,8ea1a8c5v,8ea1c8dcv,a8c5v,c8dcv 81ea e887aa,e2be83 81ea,2f83 000081ea,00002f83 a6db a6db a6db a6db a6db a6db a6db -1031 a6dc a6dc a6dc * 2846,485d * 8ea1a8c6,8ea1c8dd,a8c6,c8dd,8ea1a8c6v,8ea1c8ddv,a8c6v,c8ddv 81f3 e887b3,e2be84 81f3,2f84 000081f3,00002f84 a6dc a6dc a6dc a6dc a6dc a6dc a6dc -1032 a6dd a6dd a6dd * 2847,485e * 8ea1a8c7,8ea1c8de,a8c7,c8de,8ea1a8c7v,8ea1c8dev,a8c7v,c8dev 81fc e887bc,e2be85 81fc,2f85 000081fc,00002f85 a6dd a6dd a6dd a6dd a6dd a6dd a6dd -1033 a6de a6de a6de * 2848,485f * 8ea1a8c8,8ea1c8df,a8c8,c8df,8ea1a8c8v,8ea1c8dfv,a8c8v,c8dfv 820c e8888c,e2be86 820c,2f86 0000820c,00002f86 a6de a6de a6de a6de a6de a6de a6de -1034 a6df a6df a6df * 2849,4860 * 8ea1a8c9,8ea1c8e0,a8c9,c8e0,8ea1a8c9v,8ea1c8e0v,a8c9v,c8e0v 821b e8889b,e2be87 821b,2f87 0000821b,00002f87 a6df a6df a6df a6df a6df a6df a6df -1035 a6e0 a6e0 a6e0 * 284a,4861 * 8ea1a8ca,8ea1c8e1,a8ca,c8e1,8ea1a8cav,8ea1c8e1v,a8cav,c8e1v 821f e8889f,e2be88 821f,2f88 0000821f,00002f88 a6e0 a6e0 a6e0 a6e0 a6e0 a6e0 a6e0 -1036 a6e1 a6e1 a6e1 * 284b,4862 * 8ea1a8cb,8ea1c8e2,a8cb,c8e2,8ea1a8cbv,8ea1c8e2v,a8cbv,c8e2v 826e e889ae,e2be89 826e,2f89 0000826e,00002f89 a6e1 a6e1 a6e1 a6e1 a6e1 a6e1 a6e1 -1037 a6e2 a6e2 a6e2 * 284c,4863 * 8ea1a8cc,8ea1c8e3,a8cc,c8e3,8ea1a8ccv,8ea1c8e3v,a8ccv,c8e3v 8272 e889b2,e2be8a 8272,2f8a 00008272,00002f8a a6e2 a6e2 a6e2 a6e2 a6e2 a6e2 a6e2 -1038 a6e3 a6e3 a6e3 * 4864 * 8ea1c8e4,c8e4,8ea1c8e4v,c8e4v 827e e889be 827e 0000827e a6e3 a6e3 a6e3 a6e3 a6e3 a6e3 a6e3 -1039 a6e4 a6e4 a6e4 * 284f,4865 * 8ea1a8cf,8ea1c8e5,a8cf,c8e5,8ea1a8cfv,8ea1c8e5v,a8cfv,c8e5v 866b e899ab,e2be8d 866b,2f8d 0000866b,00002f8d a6e4 a6e4 a6e4 a6e4 a6e4 a6e4 a6e4 -1040 a6e5 a6e5 a6e5 * 2850,4866 * 8ea1a8d0,8ea1c8e6,a8d0,c8e6,8ea1a8d0v,8ea1c8e6v,a8d0v,c8e6v 8840 e8a180,e2be8e 8840,2f8e 00008840,00002f8e a6e5 a6e5 a6e5 a6e5 a6e5 a6e5 a6e5 -1041 a6e6 a6e6 a6e6 * 2851,4867 * 8ea1a8d1,8ea1c8e7,a8d1,c8e7,8ea1a8d1v,8ea1c8e7v,a8d1v,c8e7v 884c e8a18c,e2be8f 884c,2f8f 0000884c,00002f8f a6e6 a6e6 a6e6 a6e6 a6e6 a6e6 a6e6 -1042 a6e7 a6e7 a6e7 * 2852,4868 * 8ea1a8d2,8ea1c8e8,a8d2,c8e8,8ea1a8d2v,8ea1c8e8v,a8d2v,c8e8v 8863 e8a1a3,e2be90 8863,2f90 00008863,00002f90 a6e7 a6e7 a6e7 a6e7 a6e7 a6e7 a6e7 -1043 a6e8 a6e8 a6e8 * 4869 * 8ea1c8e9,c8e9,8ea1c8e9v,c8e9v 897f e8a5bf 897f 0000897f a6e8 a6e8 a6e8 a6e8 a6e8 a6e8 a6e8 -1044 a6e9 a6e9 a6e9 * 486a * 8ea1c8ea,c8ea,8ea1c8eav,c8eav 9621 e998a1 9621 00009621 a6e9 a6e9 a6e9 a6e9 a6e9 a6e9 a6e9 -1045 a6ea a6ea a6ea * 486b * 8ea1c8eb,c8eb,8ea1c8ebv,c8ebv 4e32 e4b8b2 4e32 00004e32 a6ea a6ea a6ea a6ea a6ea a6ea a6ea -1046 a6eb a6eb a6eb * 486c * 8ea1c8ec,c8ec,8ea1c8ecv,c8ecv 4ea8 e4baa8 4ea8 00004ea8 a6eb a6eb a6eb a6eb a6eb a6eb a6eb -1047 a6ec a6ec a6ec * 486d * 8ea1c8ed,c8ed,8ea1c8edv,c8edv 4f4d e4bd8d 4f4d 00004f4d a6ec a6ec a6ec a6ec a6ec a6ec a6ec -1048 a6ed a6ed a6ed * 486e * 8ea1c8ee,c8ee,8ea1c8eev,c8eev 4f4f e4bd8f 4f4f 00004f4f a6ed a6ed a6ed a6ed a6ed a6ed a6ed -1049 a6ee a6ee a6ee * 486f * 8ea1c8ef,c8ef,8ea1c8efv,c8efv 4f47 e4bd87 4f47 00004f47 a6ee a6ee a6ee a6ee a6ee a6ee a6ee -1050 a6ef a6ef a6ef * 4870 * 8ea1c8f0,c8f0,8ea1c8f0v,c8f0v 4f57 e4bd97 4f57 00004f57 a6ef a6ef a6ef a6ef a6ef a6ef a6ef -1051 a6f0 a6f0 a6f0 * 4871 * 8ea1c8f1,c8f1,8ea1c8f1v,c8f1v 4f5e e4bd9e 4f5e 00004f5e a6f0 a6f0 a6f0 a6f0 a6f0 a6f0 a6f0 -1052 a6f1 a6f1 a6f1 * 4872 * 8ea1c8f2,c8f2,8ea1c8f2v,c8f2v 4f34 e4bcb4 4f34 00004f34 a6f1 a6f1 a6f1 a6f1 a6f1 a6f1 a6f1 -1053 a6f2 a6f2 a6f2 * 4873 * 8ea1c8f3,c8f3,8ea1c8f3v,c8f3v 4f5b e4bd9b 4f5b 00004f5b a6f2 a6f2 a6f2 a6f2 a6f2 a6f2 a6f2 -1054 a6f3 a6f3 a6f3 * 4874 * 8ea1c8f4,c8f4,8ea1c8f4v,c8f4v 4f55 e4bd95 4f55 00004f55 a6f3 a6f3 a6f3 a6f3 a6f3 a6f3 a6f3 -1055 a6f4 a6f4 a6f4 * 4875 * 8ea1c8f5,c8f5,8ea1c8f5v,c8f5v 4f30 e4bcb0 4f30 00004f30 a6f4 a6f4 a6f4 a6f4 a6f4 a6f4 a6f4 -1056 a6f5 a6f5 a6f5 * 4876 * 8ea1c8f6,c8f6,8ea1c8f6v,c8f6v 4f50 e4bd90 4f50 00004f50 a6f5 a6f5 a6f5 a6f5 a6f5 a6f5 a6f5 -1057 a6f6 a6f6 a6f6 * 4877 * 8ea1c8f7,c8f7,8ea1c8f7v,c8f7v 4f51 e4bd91 4f51 00004f51 a6f6 a6f6 a6f6 a6f6 a6f6 a6f6 a6f6 -1058 a6f7 a6f7 a6f7 * 4878 * 8ea1c8f8,c8f8,8ea1c8f8v,c8f8v 4f3d e4bcbd 4f3d 00004f3d a6f7 a6f7 a6f7 a6f7 a6f7 a6f7 a6f7 -1059 a6f8 a6f8 a6f8 * 4879 * 8ea1c8f9,c8f9,8ea1c8f9v,c8f9v 4f3a e4bcba 4f3a 00004f3a a6f8 a6f8 a6f8 a6f8 a6f8 a6f8 a6f8 -1060 a6f9 a6f9 a6f9 * 487a * 8ea1c8fa,c8fa,8ea1c8fav,c8fav 4f38 e4bcb8 4f38 00004f38 a6f9 a6f9 a6f9 a6f9 a6f9 a6f9 a6f9 -1061 a6fa a6fa a6fa * 487b * 8ea1c8fb,c8fb,8ea1c8fbv,c8fbv 4f43 e4bd83 4f43 00004f43 a6fa a6fa a6fa a6fa a6fa a6fa a6fa -1062 a6fb a6fb a6fb * 487c * 8ea1c8fc,c8fc,8ea1c8fcv,c8fcv 4f54 e4bd94 4f54 00004f54 a6fb a6fb a6fb a6fb a6fb a6fb a6fb -1063 a6fc a6fc a6fc * 487d * 8ea1c8fd,c8fd,8ea1c8fdv,c8fdv 4f3c e4bcbc 4f3c 00004f3c a6fc a6fc a6fc a6fc a6fc a6fc a6fc -1064 a6fd a6fd a6fd * 487e * 8ea1c8fe,c8fe,8ea1c8fev,c8fev 4f46 e4bd86 4f46 00004f46 a6fd a6fd a6fd a6fd a6fd a6fd a6fd -1065 a6fe a6fe a6fe * 4921 * 8ea1c9a1,c9a1,8ea1c9a1v,c9a1v 4f63 e4bda3 4f63 00004f63 a6fe a6fe a6fe a6fe a6fe a6fe a6fe -1066 a740 a740 a740 * 4922 * 8ea1c9a2,c9a2,8ea1c9a2v,c9a2v 4f5c e4bd9c 4f5c 00004f5c a740 a740 a740 a740 a740 a740 a740 -1067 a741 a741 a741 * 4923 * 8ea1c9a3,c9a3,8ea1c9a3v,c9a3v 4f60 e4bda0 4f60 00004f60 a741 a741 a741 a741 a741 a741 a741 -1068 a742 a742 a742 * 4924 * 8ea1c9a4,c9a4,8ea1c9a4v,c9a4v 4f2f e4bcaf 4f2f 00004f2f a742 a742 a742 a742 a742 a742 a742 -1069 a743 a743 a743 * 4925 * 8ea1c9a5,c9a5,8ea1c9a5v,c9a5v 4f4e e4bd8e 4f4e 00004f4e a743 a743 a743 a743 a743 a743 a743 -1070 a744 a744 a744 * 4926 * 8ea1c9a6,c9a6,8ea1c9a6v,c9a6v 4f36 e4bcb6 4f36 00004f36 a744 a744 a744 a744 a744 a744 a744 -1071 a745 a745 a745 * 4927 * 8ea1c9a7,c9a7,8ea1c9a7v,c9a7v 4f59 e4bd99 4f59 00004f59 a745 a745 a745 a745 a745 a745 a745 -1072 a746 a746 a746 * 4928 * 8ea1c9a8,c9a8,8ea1c9a8v,c9a8v 4f5d e4bd9d 4f5d 00004f5d a746 a746 a746 a746 a746 a746 a746 -1073 a747 a747 a747 * 4929 * 8ea1c9a9,c9a9,8ea1c9a9v,c9a9v 4f48 e4bd88 4f48 00004f48 a747 a747 a747 a747 a747 a747 a747 -1074 a748 a748 a748 * 492a * 8ea1c9aa,c9aa,8ea1c9aav,c9aav 4f5a e4bd9a 4f5a 00004f5a a748 a748 a748 a748 a748 a748 a748 -1075 a749 a749 a749 * 492b * 8ea1c9ab,c9ab,8ea1c9abv,c9abv 514c e5858c 514c 0000514c a749 a749 a749 a749 a749 a749 a749 -1076 a74a a74a a74a * 492c * 8ea1c9ac,c9ac,8ea1c9acv,c9acv 514b e5858b 514b 0000514b a74a a74a a74a a74a a74a a74a a74a -1077 a74b a74b a74b * 492d * 8ea1c9ad,c9ad,8ea1c9adv,c9adv 514d e5858d 514d 0000514d a74b a74b a74b a74b a74b a74b a74b -1078 a74c a74c a74c * 492e * 8ea1c9ae,c9ae,8ea1c9aev,c9aev 5175 e585b5 5175 00005175 a74c a74c a74c a74c a74c a74c a74c -1079 a74d a74d a74d * 492f * 8ea1c9af,c9af,8ea1c9afv,c9afv 51b6 e586b6 51b6 000051b6 a74d a74d a74d a74d a74d a74d a74d -1080 a74e a74e a74e * 4930 * 8ea1c9b0,c9b0,8ea1c9b0v,c9b0v 51b7 e586b7 51b7 000051b7 a74e a74e a74e a74e a74e a74e a74e -1081 a74f a74f a74f * 4931 * 8ea1c9b1,c9b1,8ea1c9b1v,c9b1v 5225 e588a5 5225 00005225 a74f a74f a74f a74f a74f a74f a74f -1082 a750 a750 a750 * 4932 * 8ea1c9b2,c9b2,8ea1c9b2v,c9b2v 5224 e588a4 5224 00005224 a750 a750 a750 a750 a750 a750 a750 -1083 a751 a751 a751 * 4933 * 8ea1c9b3,c9b3,8ea1c9b3v,c9b3v 5229 e588a9 5229 00005229 a751 a751 a751 a751 a751 a751 a751 -1084 a752 a752 a752 * 4934 * 8ea1c9b4,c9b4,8ea1c9b4v,c9b4v 522a e588aa 522a 0000522a a752 a752 a752 a752 a752 a752 a752 -1085 a753 a753 a753 * 4935 * 8ea1c9b5,c9b5,8ea1c9b5v,c9b5v 5228 e588a8 5228 00005228 a753 a753 a753 a753 a753 a753 a753 -1086 a754 a754 a754 * 4936 * 8ea1c9b6,c9b6,8ea1c9b6v,c9b6v 52ab e58aab 52ab 000052ab a754 a754 a754 a754 a754 a754 a754 -1087 a755 a755 a755 * 4937 * 8ea1c9b7,c9b7,8ea1c9b7v,c9b7v 52a9 e58aa9 52a9 000052a9 a755 a755 a755 a755 a755 a755 a755 -1088 a756 a756 a756 * 4938 * 8ea1c9b8,c9b8,8ea1c9b8v,c9b8v 52aa e58aaa 52aa 000052aa a756 a756 a756 a756 a756 a756 a756 -1089 a757 a757 a757 * 4939 * 8ea1c9b9,c9b9,8ea1c9b9v,c9b9v 52ac e58aac 52ac 000052ac a757 a757 a757 a757 a757 a757 a757 -1090 a758 a758 a758 * 493a * 8ea1c9ba,c9ba,8ea1c9bav,c9bav 5323 e58ca3 5323 00005323 a758 a758 a758 a758 a758 a758 a758 -1091 a759 a759 a759 * 493b * 8ea1c9bb,c9bb,8ea1c9bbv,c9bbv 5373 e58db3 5373 00005373 a759 a759 a759 a759 a759 a759 a759 -1092 a75a a75a a75a * 493c * 8ea1c9bc,c9bc,8ea1c9bcv,c9bcv 5375 e58db5 5375 00005375 a75a a75a a75a a75a a75a a75a a75a -1093 a75b a75b a75b * 493d * 8ea1c9bd,c9bd,8ea1c9bdv,c9bdv 541d e5909d 541d 0000541d a75b a75b a75b a75b a75b a75b a75b -1094 a75c a75c a75c * 493e * 8ea1c9be,c9be,8ea1c9bev,c9bev 542d e590ad 542d 0000542d a75c a75c a75c a75c a75c a75c a75c -1095 a75d a75d a75d * 493f * 8ea1c9bf,c9bf,8ea1c9bfv,c9bfv 541e e5909e 541e 0000541e a75d a75d a75d a75d a75d a75d a75d -1096 a75e a75e a75e * 4940 * 8ea1c9c0,c9c0,8ea1c9c0v,c9c0v 543e e590be 543e 0000543e a75e a75e a75e a75e a75e a75e a75e -1097 a75f a75f a75f * 4941 * 8ea1c9c1,c9c1,8ea1c9c1v,c9c1v 5426 e590a6 5426 00005426 a75f a75f a75f a75f a75f a75f a75f -1098 a760 a760 a760 * 4942 * 8ea1c9c2,c9c2,8ea1c9c2v,c9c2v 544e e5918e 544e 0000544e a760 a760 a760 a760 a760 a760 a760 -1099 a761 a761 a761 * 4943 * 8ea1c9c3,c9c3,8ea1c9c3v,c9c3v 5427 e590a7 5427 00005427 a761 a761 a761 a761 a761 a761 a761 -1100 a762 a762 a762 * 4944 * 8ea1c9c4,c9c4,8ea1c9c4v,c9c4v 5446 e59186 5446 00005446 a762 a762 a762 a762 a762 a762 a762 -1101 a763 a763 a763 * 4945 * 8ea1c9c5,c9c5,8ea1c9c5v,c9c5v 5443 e59183 5443 00005443 a763 a763 a763 a763 a763 a763 a763 -1102 a764 a764 a764 * 4946 * 8ea1c9c6,c9c6,8ea1c9c6v,c9c6v 5433 e590b3 5433 00005433 a764 a764 a764 a764 a764 a764 a764 -1103 a765 a765 a765 * 4947 * 8ea1c9c7,c9c7,8ea1c9c7v,c9c7v 5448 e59188 5448 00005448 a765 a765 a765 a765 a765 a765 a765 -1104 a766 a766 a766 * 4948 * 8ea1c9c8,c9c8,8ea1c9c8v,c9c8v 5442 e59182 5442 00005442 a766 a766 a766 a766 a766 a766 a766 -1105 a767 a767 a767 * 4949 * 8ea1c9c9,c9c9,8ea1c9c9v,c9c9v 541b e5909b 541b 0000541b a767 a767 a767 a767 a767 a767 a767 -1106 a768 a768 a768 * 494a * 8ea1c9ca,c9ca,8ea1c9cav,c9cav 5429 e590a9 5429 00005429 a768 a768 a768 a768 a768 a768 a768 -1107 a769 a769 a769 * 494b * 8ea1c9cb,c9cb,8ea1c9cbv,c9cbv 544a e5918a 544a 0000544a a769 a769 a769 a769 a769 a769 a769 -1108 a76a a76a a76a * 494c * 8ea1c9cc,c9cc,8ea1c9ccv,c9ccv 5439 e590b9 5439 00005439 a76a a76a a76a a76a a76a a76a a76a -1109 a76b a76b a76b * 494d * 8ea1c9cd,c9cd,8ea1c9cdv,c9cdv 543b e590bb 543b 0000543b a76b a76b a76b a76b a76b a76b a76b -1110 a76c a76c a76c * 494e * 8ea1c9ce,c9ce,8ea1c9cev,c9cev 5438 e590b8 5438 00005438 a76c a76c a76c a76c a76c a76c a76c -1111 a76d a76d a76d * 494f * 8ea1c9cf,c9cf,8ea1c9cfv,c9cfv 542e e590ae 542e 0000542e a76d a76d a76d a76d a76d a76d a76d -1112 a76e a76e a76e * 4950 * 8ea1c9d0,c9d0,8ea1c9d0v,c9d0v 5435 e590b5 5435 00005435 a76e a76e a76e a76e a76e a76e a76e -1113 a76f a76f a76f * 4951 * 8ea1c9d1,c9d1,8ea1c9d1v,c9d1v 5436 e590b6 5436 00005436 a76f a76f a76f a76f a76f a76f a76f -1114 a770 a770 a770 * 4952 * 8ea1c9d2,c9d2,8ea1c9d2v,c9d2v 5420 e590a0 5420 00005420 a770 a770 a770 a770 a770 a770 a770 -1115 a771 a771 a771 * 4953 * 8ea1c9d3,c9d3,8ea1c9d3v,c9d3v 543c e590bc 543c 0000543c a771 a771 a771 a771 a771 a771 a771 -1116 a772 a772 a772 * 4954 * 8ea1c9d4,c9d4,8ea1c9d4v,c9d4v 5440 e59180 5440 00005440 a772 a772 a772 a772 a772 a772 a772 -1117 a773 a773 a773 * 4955 * 8ea1c9d5,c9d5,8ea1c9d5v,c9d5v 5431 e590b1 5431 00005431 a773 a773 a773 a773 a773 a773 a773 -1118 a774 a774 a774 * 4956 * 8ea1c9d6,c9d6,8ea1c9d6v,c9d6v 542b e590ab 542b 0000542b a774 a774 a774 a774 a774 a774 a774 -1119 a775 a775 a775 * 4957 * 8ea1c9d7,c9d7,8ea1c9d7v,c9d7v 541f e5909f 541f 0000541f a775 a775 a775 a775 a775 a775 a775 -1120 a776 a776 a776 * 4958 * 8ea1c9d8,c9d8,8ea1c9d8v,c9d8v 542c e590ac 542c 0000542c a776 a776 a776 a776 a776 a776 a776 -1121 a777 a777 a777 * 4959 * 8ea1c9d9,c9d9,8ea1c9d9v,c9d9v 56ea e59baa 56ea 000056ea a777 a777 a777 a777 a777 a777 a777 -1122 a778 a778 a778 * 495a * 8ea1c9da,c9da,8ea1c9dav,c9dav 56f0 e59bb0 56f0 000056f0 a778 a778 a778 a778 a778 a778 a778 -1123 a779 a779 a779 * 495b * 8ea1c9db,c9db,8ea1c9dbv,c9dbv 56e4 e59ba4 56e4 000056e4 a779 a779 a779 a779 a779 a779 a779 -1124 a77a a77a a77a * 495c * 8ea1c9dc,c9dc,8ea1c9dcv,c9dcv 56eb e59bab 56eb 000056eb a77a a77a a77a a77a a77a a77a a77a -1125 a77b a77b a77b * 495d * 8ea1c9dd,c9dd,8ea1c9ddv,c9ddv 574a e59d8a 574a 0000574a a77b a77b a77b a77b a77b a77b a77b -1126 a77c a77c a77c * 495e * 8ea1c9de,c9de,8ea1c9dev,c9dev 5751 e59d91 5751 00005751 a77c a77c a77c a77c a77c a77c a77c -1127 a77d a77d a77d * 495f * 8ea1c9df,c9df,8ea1c9dfv,c9dfv 5740 e59d80 5740 00005740 a77d a77d a77d a77d a77d a77d a77d -1128 a77e a77e a77e * 4960 * 8ea1c9e0,c9e0,8ea1c9e0v,c9e0v 574d e59d8d 574d 0000574d a77e a77e a77e a77e a77e a77e a77e -1129 a7a1 a7a1 a7a1 * 4961 * 8ea1c9e1,c9e1,8ea1c9e1v,c9e1v 5747 e59d87 5747 00005747 a7a1 a7a1 a7a1 a7a1 a7a1 a7a1 a7a1 -1130 a7a2 a7a2 a7a2 * 4962 * 8ea1c9e2,c9e2,8ea1c9e2v,c9e2v 574e e59d8e 574e 0000574e a7a2 a7a2 a7a2 a7a2 a7a2 a7a2 a7a2 -1131 a7a3 a7a3 a7a3 * 4963 * 8ea1c9e3,c9e3,8ea1c9e3v,c9e3v 573e e59cbe 573e 0000573e a7a3 a7a3 a7a3 a7a3 a7a3 a7a3 a7a3 -1132 a7a4 a7a4 a7a4 * 4964 * 8ea1c9e4,c9e4,8ea1c9e4v,c9e4v 5750 e59d90 5750 00005750 a7a4 a7a4 a7a4 a7a4 a7a4 a7a4 a7a4 -1133 a7a5 a7a5 a7a5 * 4965 * 8ea1c9e5,c9e5,8ea1c9e5v,c9e5v 574f e59d8f 574f 0000574f a7a5 a7a5 a7a5 a7a5 a7a5 a7a5 a7a5 -1134 a7a6 a7a6 a7a6 * 4966 * 8ea1c9e6,c9e6,8ea1c9e6v,c9e6v 573b e59cbb 573b 0000573b a7a6 a7a6 a7a6 a7a6 a7a6 a7a6 a7a6 -1135 a7a7 a7a7 a7a7 * 4967 * 8ea1c9e7,c9e7,8ea1c9e7v,c9e7v 58ef e5a3af 58ef 000058ef a7a7 a7a7 a7a7 a7a7 a7a7 a7a7 a7a7 -1136 a7a8 a7a8 a7a8 * 4968 * 8ea1c9e8,c9e8,8ea1c9e8v,c9e8v 593e e5a4be 593e 0000593e a7a8 a7a8 a7a8 a7a8 a7a8 a7a8 a7a8 -1137 a7a9 a7a9 a7a9 * 4969 * 8ea1c9e9,c9e9,8ea1c9e9v,c9e9v 599d e5a69d 599d 0000599d a7a9 a7a9 a7a9 a7a9 a7a9 a7a9 a7a9 -1138 a7aa a7aa a7aa * 496a * 8ea1c9ea,c9ea,8ea1c9eav,c9eav 5992 e5a692 5992 00005992 a7aa a7aa a7aa a7aa a7aa a7aa a7aa -1139 a7ab a7ab a7ab * 496b * 8ea1c9eb,c9eb,8ea1c9ebv,c9ebv 59a8 e5a6a8 59a8 000059a8 a7ab a7ab a7ab a7ab a7ab a7ab a7ab -1140 a7ac a7ac a7ac * 496c * 8ea1c9ec,c9ec,8ea1c9ecv,c9ecv 599e e5a69e 599e 0000599e a7ac a7ac a7ac a7ac a7ac a7ac a7ac -1141 a7ad a7ad a7ad * 496d * 8ea1c9ed,c9ed,8ea1c9edv,c9edv 59a3 e5a6a3 59a3 000059a3 a7ad a7ad a7ad a7ad a7ad a7ad a7ad -1142 a7ae a7ae a7ae * 496e * 8ea1c9ee,c9ee,8ea1c9eev,c9eev 5999 e5a699 5999 00005999 a7ae a7ae a7ae a7ae a7ae a7ae a7ae -1143 a7af a7af a7af * 496f * 8ea1c9ef,c9ef,8ea1c9efv,c9efv 5996 e5a696 5996 00005996 a7af a7af a7af a7af a7af a7af a7af -1144 a7b0 a7b0 a7b0 * 4970 * 8ea1c9f0,c9f0,8ea1c9f0v,c9f0v 598d e5a68d 598d 0000598d a7b0 a7b0 a7b0 a7b0 a7b0 a7b0 a7b0 -1145 a7b1 a7b1 a7b1 * 4971 * 8ea1c9f1,c9f1,8ea1c9f1v,c9f1v 59a4 e5a6a4 59a4 000059a4 a7b1 a7b1 a7b1 a7b1 a7b1 a7b1 a7b1 -1146 a7b2 a7b2 a7b2 * 4972 * 8ea1c9f2,c9f2,8ea1c9f2v,c9f2v 5993 e5a693 5993 00005993 a7b2 a7b2 a7b2 a7b2 a7b2 a7b2 a7b2 -1147 a7b3 a7b3 a7b3 * 4973 * 8ea1c9f3,c9f3,8ea1c9f3v,c9f3v 598a e5a68a 598a 0000598a a7b3 a7b3 a7b3 a7b3 a7b3 a7b3 a7b3 -1148 a7b4 a7b4 a7b4 * 4974 * 8ea1c9f4,c9f4,8ea1c9f4v,c9f4v 59a5 e5a6a5 59a5 000059a5 a7b4 a7b4 a7b4 a7b4 a7b4 a7b4 a7b4 -1149 a7b5 a7b5 a7b5 * 4975 * 8ea1c9f5,c9f5,8ea1c9f5v,c9f5v 5b5d e5ad9d 5b5d 00005b5d a7b5 a7b5 a7b5 a7b5 a7b5 a7b5 a7b5 -1150 a7b6 a7b6 a7b6 * 4976 * 8ea1c9f6,c9f6,8ea1c9f6v,c9f6v 5b5c e5ad9c 5b5c 00005b5c a7b6 a7b6 a7b6 a7b6 a7b6 a7b6 a7b6 -1151 a7b7 a7b7 a7b7 * 4977 * 8ea1c9f7,c9f7,8ea1c9f7v,c9f7v 5b5a e5ad9a 5b5a 00005b5a a7b7 a7b7 a7b7 a7b7 a7b7 a7b7 a7b7 -1152 a7b8 a7b8 a7b8 * 4978 * 8ea1c9f8,c9f8,8ea1c9f8v,c9f8v 5b5b e5ad9b 5b5b 00005b5b a7b8 a7b8 a7b8 a7b8 a7b8 a7b8 a7b8 -1153 a7b9 a7b9 a7b9 * 4979 * 8ea1c9f9,c9f9,8ea1c9f9v,c9f9v 5b8c e5ae8c 5b8c 00005b8c a7b9 a7b9 a7b9 a7b9 a7b9 a7b9 a7b9 -1154 a7ba a7ba a7ba * 497a * 8ea1c9fa,c9fa,8ea1c9fav,c9fav 5b8b e5ae8b 5b8b 00005b8b a7ba a7ba a7ba a7ba a7ba a7ba a7ba -1155 a7bb a7bb a7bb * 497b * 8ea1c9fb,c9fb,8ea1c9fbv,c9fbv 5b8f e5ae8f 5b8f 00005b8f a7bb a7bb a7bb a7bb a7bb a7bb a7bb -1156 a7bc a7bc a7bc * 497c * 8ea1c9fc,c9fc,8ea1c9fcv,c9fcv 5c2c e5b0ac 5c2c 00005c2c a7bc a7bc a7bc a7bc a7bc a7bc a7bc -1157 a7bd a7bd a7bd * 497d * 8ea1c9fd,c9fd,8ea1c9fdv,c9fdv 5c40 e5b180 5c40 00005c40 a7bd a7bd a7bd a7bd a7bd a7bd a7bd -1158 a7be a7be a7be * 497e * 8ea1c9fe,c9fe,8ea1c9fev,c9fev 5c41 e5b181 5c41 00005c41 a7be a7be a7be a7be a7be a7be a7be -1159 a7bf a7bf a7bf * 4a21 * 8ea1caa1,caa1,8ea1caa1v,caa1v 5c3f e5b0bf 5c3f 00005c3f a7bf a7bf a7bf a7bf a7bf a7bf a7bf -1160 a7c0 a7c0 a7c0 * 4a22 * 8ea1caa2,caa2,8ea1caa2v,caa2v 5c3e e5b0be 5c3e 00005c3e a7c0 a7c0 a7c0 a7c0 a7c0 a7c0 a7c0 -1161 a7c1 a7c1 a7c1 * 4a23 * 8ea1caa3,caa3,8ea1caa3v,caa3v 5c90 e5b290 5c90 00005c90 a7c1 a7c1 a7c1 a7c1 a7c1 a7c1 a7c1 -1162 a7c2 a7c2 a7c2 * 4a24 * 8ea1caa4,caa4,8ea1caa4v,caa4v 5c91 e5b291 5c91 00005c91 a7c2 a7c2 a7c2 a7c2 a7c2 a7c2 a7c2 -1163 a7c3 a7c3 a7c3 * 4a25 * 8ea1caa5,caa5,8ea1caa5v,caa5v 5c94 e5b294 5c94 00005c94 a7c3 a7c3 a7c3 a7c3 a7c3 a7c3 a7c3 -1164 a7c4 a7c4 a7c4 * 4a26 * 8ea1caa6,caa6,8ea1caa6v,caa6v 5c8c e5b28c 5c8c 00005c8c a7c4 a7c4 a7c4 a7c4 a7c4 a7c4 a7c4 -1165 a7c5 a7c5 a7c5 * 4a27 * 8ea1caa7,caa7,8ea1caa7v,caa7v 5deb e5b7ab 5deb 00005deb a7c5 a7c5 a7c5 a7c5 a7c5 a7c5 a7c5 -1166 a7c6 a7c6 a7c6 * 4a28 * 8ea1caa8,caa8,8ea1caa8v,caa8v 5e0c e5b88c 5e0c 00005e0c a7c6 a7c6 a7c6 a7c6 a7c6 a7c6 a7c6 -1167 a7c7 a7c7 a7c7 * 4a29 * 8ea1caa9,caa9,8ea1caa9v,caa9v 5e8f e5ba8f 5e8f 00005e8f a7c7 a7c7 a7c7 a7c7 a7c7 a7c7 a7c7 -1168 a7c8 a7c8 a7c8 * 4a2a * 8ea1caaa,caaa,8ea1caaav,caaav 5e87 e5ba87 5e87 00005e87 a7c8 a7c8 a7c8 a7c8 a7c8 a7c8 a7c8 -1169 a7c9 a7c9 a7c9 * 4a2b * 8ea1caab,caab,8ea1caabv,caabv 5e8a e5ba8a 5e8a 00005e8a a7c9 a7c9 a7c9 a7c9 a7c9 a7c9 a7c9 -1170 a7ca a7ca a7ca * 4a2c * 8ea1caac,caac,8ea1caacv,caacv 5ef7 e5bbb7 5ef7 00005ef7 a7ca a7ca a7ca a7ca a7ca a7ca a7ca -1171 a7cb a7cb a7cb * 4a2d * 8ea1caad,caad,8ea1caadv,caadv 5f04 e5bc84 5f04 00005f04 a7cb a7cb a7cb a7cb a7cb a7cb a7cb -1172 a7cc a7cc a7cc * 4a2e * 8ea1caae,caae,8ea1caaev,caaev 5f1f e5bc9f 5f1f 00005f1f a7cc a7cc a7cc a7cc a7cc a7cc a7cc -1173 a7cd a7cd a7cd * 4a2f * 8ea1caaf,caaf,8ea1caafv,caafv 5f64 e5bda4 5f64 00005f64 a7cd a7cd a7cd a7cd a7cd a7cd a7cd -1174 a7ce a7ce a7ce * 4a30 * 8ea1cab0,cab0,8ea1cab0v,cab0v 5f62 e5bda2 5f62 00005f62 a7ce a7ce a7ce a7ce a7ce a7ce a7ce -1175 a7cf a7cf a7cf * 4a31 * 8ea1cab1,cab1,8ea1cab1v,cab1v 5f77 e5bdb7 5f77 00005f77 a7cf a7cf a7cf a7cf a7cf a7cf a7cf -1176 a7d0 a7d0 a7d0 * 4a32 * 8ea1cab2,cab2,8ea1cab2v,cab2v 5f79 e5bdb9 5f79 00005f79 a7d0 a7d0 a7d0 a7d0 a7d0 a7d0 a7d0 -1177 a7d1 a7d1 a7d1 * 4a33 * 8ea1cab3,cab3,8ea1cab3v,cab3v 5fd8 e5bf98 5fd8 00005fd8 a7d1 a7d1 a7d1 a7d1 a7d1 a7d1 a7d1 -1178 a7d2 a7d2 a7d2 * 4a34 * 8ea1cab4,cab4,8ea1cab4v,cab4v 5fcc e5bf8c 5fcc 00005fcc a7d2 a7d2 a7d2 a7d2 a7d2 a7d2 a7d2 -1179 a7d3 a7d3 a7d3 * 4a35 * 8ea1cab5,cab5,8ea1cab5v,cab5v 5fd7 e5bf97 5fd7 00005fd7 a7d3 a7d3 a7d3 a7d3 a7d3 a7d3 a7d3 -1180 a7d4 a7d4 a7d4 * 4a36 * 8ea1cab6,cab6,8ea1cab6v,cab6v 5fcd e5bf8d 5fcd 00005fcd a7d4 a7d4 a7d4 a7d4 a7d4 a7d4 a7d4 -1181 a7d5 a7d5 a7d5 * 4a37 * 8ea1cab7,cab7,8ea1cab7v,cab7v 5ff1 e5bfb1 5ff1 00005ff1 a7d5 a7d5 a7d5 a7d5 a7d5 a7d5 a7d5 -1182 a7d6 a7d6 a7d6 * 4a38 * 8ea1cab8,cab8,8ea1cab8v,cab8v 5feb e5bfab 5feb 00005feb a7d6 a7d6 a7d6 a7d6 a7d6 a7d6 a7d6 -1183 a7d7 a7d7 a7d7 * 4a39 * 8ea1cab9,cab9,8ea1cab9v,cab9v 5ff8 e5bfb8 5ff8 00005ff8 a7d7 a7d7 a7d7 a7d7 a7d7 a7d7 a7d7 -1184 a7d8 a7d8 a7d8 * 4a3a * 8ea1caba,caba,8ea1cabav,cabav 5fea e5bfaa 5fea 00005fea a7d8 a7d8 a7d8 a7d8 a7d8 a7d8 a7d8 -1185 a7d9 a7d9 a7d9 * 4a3b * 8ea1cabb,cabb,8ea1cabbv,cabbv 6212 e68892 6212 00006212 a7d9 a7d9 a7d9 a7d9 a7d9 a7d9 a7d9 -1186 a7da a7da a7da * 4a3c * 8ea1cabc,cabc,8ea1cabcv,cabcv 6211 e68891 6211 00006211 a7da a7da a7da a7da a7da a7da a7da -1187 a7db a7db a7db * 4a3d * 8ea1cabd,cabd,8ea1cabdv,cabdv 6284 e68a84 6284 00006284 a7db a7db a7db a7db a7db a7db a7db -1188 a7dc a7dc a7dc * 4a3e * 8ea1cabe,cabe,8ea1cabev,cabev 6297 e68a97 6297 00006297 a7dc a7dc a7dc a7dc a7dc a7dc a7dc -1189 a7dd a7dd a7dd * 4a3f * 8ea1cabf,cabf,8ea1cabfv,cabfv 6296 e68a96 6296 00006296 a7dd a7dd a7dd a7dd a7dd a7dd a7dd -1190 a7de a7de a7de * 4a40 * 8ea1cac0,cac0,8ea1cac0v,cac0v 6280 e68a80 6280 00006280 a7de a7de a7de a7de a7de a7de a7de -1191 a7df a7df a7df * 4a41 * 8ea1cac1,cac1,8ea1cac1v,cac1v 6276 e689b6 6276 00006276 a7df a7df a7df a7df a7df a7df a7df -1192 a7e0 a7e0 a7e0 * 4a42 * 8ea1cac2,cac2,8ea1cac2v,cac2v 6289 e68a89 6289 00006289 a7e0 a7e0 a7e0 a7e0 a7e0 a7e0 a7e0 -1193 a7e1 a7e1 a7e1 * 4a43 * 8ea1cac3,cac3,8ea1cac3v,cac3v 626d e689ad 626d 0000626d a7e1 a7e1 a7e1 a7e1 a7e1 a7e1 a7e1 -1194 a7e2 a7e2 a7e2 * 4a44 * 8ea1cac4,cac4,8ea1cac4v,cac4v 628a e68a8a 628a 0000628a a7e2 a7e2 a7e2 a7e2 a7e2 a7e2 a7e2 -1195 a7e3 a7e3 a7e3 * 4a45 * 8ea1cac5,cac5,8ea1cac5v,cac5v 627c e689bc 627c 0000627c a7e3 a7e3 a7e3 a7e3 a7e3 a7e3 a7e3 -1196 a7e4 a7e4 a7e4 * 4a46 * 8ea1cac6,cac6,8ea1cac6v,cac6v 627e e689be 627e 0000627e a7e4 a7e4 a7e4 a7e4 a7e4 a7e4 a7e4 -1197 a7e5 a7e5 a7e5 * 4a47 * 8ea1cac7,cac7,8ea1cac7v,cac7v 6279 e689b9 6279 00006279 a7e5 a7e5 a7e5 a7e5 a7e5 a7e5 a7e5 -1198 a7e6 a7e6 a7e6 * 4a48 * 8ea1cac8,cac8,8ea1cac8v,cac8v 6273 e689b3 6273 00006273 a7e6 a7e6 a7e6 a7e6 a7e6 a7e6 a7e6 -1199 a7e7 a7e7 a7e7 * 4a49 * 8ea1cac9,cac9,8ea1cac9v,cac9v 6292 e68a92 6292 00006292 a7e7 a7e7 a7e7 a7e7 a7e7 a7e7 a7e7 -1200 a7e8 a7e8 a7e8 * 4a4a * 8ea1caca,caca,8ea1cacav,cacav 626f e689af 626f 0000626f a7e8 a7e8 a7e8 a7e8 a7e8 a7e8 a7e8 -1201 a7e9 a7e9 a7e9 * 4a4b * 8ea1cacb,cacb,8ea1cacbv,cacbv 6298 e68a98 6298 00006298 a7e9 a7e9 a7e9 a7e9 a7e9 a7e9 a7e9 -1202 a7ea a7ea a7ea * 4a4c * 8ea1cacc,cacc,8ea1caccv,caccv 626e e689ae 626e 0000626e a7ea a7ea a7ea a7ea a7ea a7ea a7ea -1203 a7eb a7eb a7eb * 4a4d * 8ea1cacd,cacd,8ea1cacdv,cacdv 6295 e68a95 6295 00006295 a7eb a7eb a7eb a7eb a7eb a7eb a7eb -1204 a7ec a7ec a7ec * 4a4e * 8ea1cace,cace,8ea1cacev,cacev 6293 e68a93 6293 00006293 a7ec a7ec a7ec a7ec a7ec a7ec a7ec -1205 a7ed a7ed a7ed * 4a4f * 8ea1cacf,cacf,8ea1cacfv,cacfv 6291 e68a91 6291 00006291 a7ed a7ed a7ed a7ed a7ed a7ed a7ed -1206 a7ee a7ee a7ee * 4a50 * 8ea1cad0,cad0,8ea1cad0v,cad0v 6286 e68a86 6286 00006286 a7ee a7ee a7ee a7ee a7ee a7ee a7ee -1207 a7ef a7ef a7ef * 4a51 * 8ea1cad1,cad1,8ea1cad1v,cad1v 6539 e694b9 6539 00006539 a7ef a7ef a7ef a7ef a7ef a7ef a7ef -1208 a7f0 a7f0 a7f0 * 4a52 * 8ea1cad2,cad2,8ea1cad2v,cad2v 653b e694bb 653b 0000653b a7f0 a7f0 a7f0 a7f0 a7f0 a7f0 a7f0 -1209 a7f1 a7f1 a7f1 * 4a53 * 8ea1cad3,cad3,8ea1cad3v,cad3v 6538 e694b8 6538 00006538 a7f1 a7f1 a7f1 a7f1 a7f1 a7f1 a7f1 -1210 a7f2 a7f2 a7f2 * 4a54 * 8ea1cad4,cad4,8ea1cad4v,cad4v 65f1 e697b1 65f1 000065f1 a7f2 a7f2 a7f2 a7f2 a7f2 a7f2 a7f2 -1211 a7f3 a7f3 a7f3 * 4a55 * 8ea1cad5,cad5,8ea1cad5v,cad5v 66f4 e69bb4 66f4 000066f4 a7f3 a7f3 a7f3 a7f3 a7f3 a7f3 a7f3 -1212 a7f4 a7f4 a7f4 * 4a56 * 8ea1cad6,cad6,8ea1cad6v,cad6v 675f e69d9f 675f 0000675f a7f4 a7f4 a7f4 a7f4 a7f4 a7f4 a7f4 -1213 a7f5 a7f5 a7f5 * 4a57 * 8ea1cad7,cad7,8ea1cad7v,cad7v 674e e69d8e 674e 0000674e a7f5 a7f5 a7f5 a7f5 a7f5 a7f5 a7f5 -1214 a7f6 a7f6 a7f6 * 4a58 * 8ea1cad8,cad8,8ea1cad8v,cad8v 674f e69d8f 674f 0000674f a7f6 a7f6 a7f6 a7f6 a7f6 a7f6 a7f6 -1215 a7f7 a7f7 a7f7 * 4a59 * 8ea1cad9,cad9,8ea1cad9v,cad9v 6750 e69d90 6750 00006750 a7f7 a7f7 a7f7 a7f7 a7f7 a7f7 a7f7 -1216 a7f8 a7f8 a7f8 * 4a5a * 8ea1cada,cada,8ea1cadav,cadav 6751 e69d91 6751 00006751 a7f8 a7f8 a7f8 a7f8 a7f8 a7f8 a7f8 -1217 a7f9 a7f9 a7f9 * 4a5b * 8ea1cadb,cadb,8ea1cadbv,cadbv 675c e69d9c 675c 0000675c a7f9 a7f9 a7f9 a7f9 a7f9 a7f9 a7f9 -1218 a7fa a7fa a7fa * 4a5c * 8ea1cadc,cadc,8ea1cadcv,cadcv 6756 e69d96 6756 00006756 a7fa a7fa a7fa a7fa a7fa a7fa a7fa -1219 a7fb a7fb a7fb * 4a5d * 8ea1cadd,cadd,8ea1caddv,caddv 675e e69d9e,ee8789 675e,e1c9 0000675e,0000e1c9 fcf1,a7fb a7fb a7fb a7fb a7fb a7fb fcf1,a7fb -1220 a7fc a7fc a7fc * 4a5e * 8ea1cade,cade,8ea1cadev,cadev 6749 e69d89 6749 00006749 a7fc a7fc a7fc a7fc a7fc a7fc a7fc -1221 a7fd a7fd a7fd * 4a5f * 8ea1cadf,cadf,8ea1cadfv,cadfv 6746 e69d86 6746 00006746 a7fd a7fd a7fd a7fd a7fd a7fd a7fd -1222 a7fe a7fe a7fe * 4a60 * 8ea1cae0,cae0,8ea1cae0v,cae0v 6760 e69da0 6760 00006760 a7fe a7fe a7fe a7fe a7fe a7fe a7fe -1223 a840 a840 a840 * 4a61 * 8ea1cae1,cae1,8ea1cae1v,cae1v 6753 e69d93 6753 00006753 a840 a840 a840 a840 a840 a840 a840 -1224 a841 a841 a841 * 4a62 * 8ea1cae2,cae2,8ea1cae2v,cae2v 6757 e69d97 6757 00006757 a841 a841 a841 a841 a841 a841 a841 -1225 a842 a842 a842 * 4a63 * 8ea1cae3,cae3,8ea1cae3v,cae3v 6b65 e6ada5 6b65 00006b65 a842 a842 a842 a842 a842 a842 a842 -1226 a843 a843 a843 * 4a64 * 8ea1cae4,cae4,8ea1cae4v,cae4v 6bcf e6af8f 6bcf 00006bcf a843 a843 a843 a843 a843 a843 a843 -1227 a844 a844 a844 * 4a65 * 8ea1cae5,cae5,8ea1cae5v,cae5v 6c42 e6b182 6c42 00006c42 a844 a844 a844 a844 a844 a844 a844 -1228 a845 a845 a845 * 4a66 * 8ea1cae6,cae6,8ea1cae6v,cae6v 6c5e e6b19e 6c5e 00006c5e a845 a845 a845 a845 a845 a845 a845 -1229 a846 a846 a846 * 4a67 * 8ea1cae7,cae7,8ea1cae7v,cae7v 6c99 e6b299 6c99 00006c99 a846 a846 a846 a846 a846 a846 a846 -1230 a847 a847 a847 * 4a68 * 8ea1cae8,cae8,8ea1cae8v,cae8v 6c81 e6b281 6c81 00006c81 a847 a847 a847 a847 a847 a847 a847 -1231 a848 a848 a848 * 4a69 * 8ea1cae9,cae9,8ea1cae9v,cae9v 6c88 e6b288 6c88 00006c88 a848 a848 a848 a848 a848 a848 a848 -1232 a849 a849 a849 * 4a6a * 8ea1caea,caea,8ea1caeav,caeav 6c89 e6b289 6c89 00006c89 a849 a849 a849 a849 a849 a849 a849 -1233 a84a a84a a84a * 4a6b * 8ea1caeb,caeb,8ea1caebv,caebv 6c85 e6b285 6c85 00006c85 a84a a84a a84a a84a a84a a84a a84a -1234 a84b a84b a84b * 4a6c * 8ea1caec,caec,8ea1caecv,caecv 6c9b e6b29b 6c9b 00006c9b a84b a84b a84b a84b a84b a84b a84b -1235 a84c a84c a84c * 4a6d * 8ea1caed,caed,8ea1caedv,caedv 6c6a e6b1aa 6c6a 00006c6a a84c a84c a84c a84c a84c a84c a84c -1236 a84d a84d a84d * 4a6e * 8ea1caee,caee,8ea1caeev,caeev 6c7a e6b1ba 6c7a 00006c7a a84d a84d a84d a84d a84d a84d a84d -1237 a84e a84e a84e * 4a6f * 8ea1caef,caef,8ea1caefv,caefv 6c90 e6b290 6c90 00006c90 a84e a84e a84e a84e a84e a84e a84e -1238 a84f a84f a84f * 4a70 * 8ea1caf0,caf0,8ea1caf0v,caf0v 6c70 e6b1b0 6c70 00006c70 a84f a84f a84f a84f a84f a84f a84f -1239 a850 a850 a850 * 4a71 * 8ea1caf1,caf1,8ea1caf1v,caf1v 6c8c e6b28c 6c8c 00006c8c a850 a850 a850 a850 a850 a850 a850 -1240 a851 a851 a851 * 4a72 * 8ea1caf2,caf2,8ea1caf2v,caf2v 6c68 e6b1a8 6c68 00006c68 a851 a851 a851 a851 a851 a851 a851 -1241 a852 a852 a852 * 4a73 * 8ea1caf3,caf3,8ea1caf3v,caf3v 6c96 e6b296 6c96 00006c96 a852 a852 a852 a852 a852 a852 a852 -1242 a853 a853 a853 * 4a74 * 8ea1caf4,caf4,8ea1caf4v,caf4v 6c92 e6b292 6c92 00006c92 a853 a853 a853 a853 a853 a853 a853 -1243 a854 a854 a854 * 4a75 * 8ea1caf5,caf5,8ea1caf5v,caf5v 6c7d e6b1bd 6c7d 00006c7d a854 a854 a854 a854 a854 a854 a854 -1244 a855 a855 a855 * 4a76 * 8ea1caf6,caf6,8ea1caf6v,caf6v 6c83 e6b283 6c83 00006c83 a855 a855 a855 a855 a855 a855 a855 -1245 a856 a856 a856 * 4a77 * 8ea1caf7,caf7,8ea1caf7v,caf7v 6c72 e6b1b2 6c72 00006c72 a856 a856 a856 a856 a856 a856 a856 -1246 a857 a857 a857 * 4a78 * 8ea1caf8,caf8,8ea1caf8v,caf8v 6c7e e6b1be 6c7e 00006c7e a857 a857 a857 a857 a857 a857 a857 -1247 a858 a858 a858 * 4a79 * 8ea1caf9,caf9,8ea1caf9v,caf9v 6c74 e6b1b4 6c74 00006c74 a858 a858 a858 a858 a858 a858 a858 -1248 a859 a859 a859 * 4a7a * 8ea1cafa,cafa,8ea1cafav,cafav 6c86 e6b286 6c86 00006c86 a859 a859 a859 a859 a859 a859 a859 -1249 a85a a85a a85a * 4a7b * 8ea1cafb,cafb,8ea1cafbv,cafbv 6c76 e6b1b6 6c76 00006c76 a85a a85a a85a a85a a85a a85a a85a -1250 a85b a85b a85b * 4a7c * 8ea1cafc,cafc,8ea1cafcv,cafcv 6c8d e6b28d 6c8d 00006c8d a85b a85b a85b a85b a85b a85b a85b -1251 a85c a85c a85c * 4a7d * 8ea1cafd,cafd,8ea1cafdv,cafdv 6c94 e6b294 6c94 00006c94 a85c a85c a85c a85c a85c a85c a85c -1252 a85d a85d a85d * 4a7e * 8ea1cafe,cafe,8ea1cafev,cafev 6c98 e6b298 6c98 00006c98 a85d a85d a85d a85d a85d a85d a85d -1253 a85e a85e a85e * 4b21 * 8ea1cba1,cba1,8ea1cba1v,cba1v 6c82 e6b282 6c82 00006c82 a85e a85e a85e a85e a85e a85e a85e -1254 a85f a85f a85f * 4b22 * 8ea1cba2,cba2,8ea1cba2v,cba2v 7076 e781b6 7076 00007076 a85f a85f a85f a85f a85f a85f a85f -1255 a860 a860 a860 * 4b23 * 8ea1cba3,cba3,8ea1cba3v,cba3v 707c e781bc 707c 0000707c a860 a860 a860 a860 a860 a860 a860 -1256 a861 a861 a861 * 4b24 * 8ea1cba4,cba4,8ea1cba4v,cba4v 707d e781bd 707d 0000707d a861 a861 a861 a861 a861 a861 a861 -1257 a862 a862 a862 * 4b25 * 8ea1cba5,cba5,8ea1cba5v,cba5v 7078 e781b8 7078 00007078 a862 a862 a862 a862 a862 a862 a862 -1258 a863 a863 a863 * 4b26 * 8ea1cba6,cba6,8ea1cba6v,cba6v 7262 e789a2 7262 00007262 a863 a863 a863 a863 a863 a863 a863 -1259 a864 a864 a864 * 4b27 * 8ea1cba7,cba7,8ea1cba7v,cba7v 7261 e789a1 7261 00007261 a864 a864 a864 a864 a864 a864 a864 -1260 a865 a865 a865 * 4b28 * 8ea1cba8,cba8,8ea1cba8v,cba8v 7260 e789a0 7260 00007260 a865 a865 a865 a865 a865 a865 a865 -1261 a866 a866 a866 * 4b29 * 8ea1cba9,cba9,8ea1cba9v,cba9v 72c4 e78b84 72c4 000072c4 a866 a866 a866 a866 a866 a866 a866 -1262 a867 a867 a867 * 4b2a * 8ea1cbaa,cbaa,8ea1cbaav,cbaav 72c2 e78b82 72c2 000072c2 a867 a867 a867 a867 a867 a867 a867 -1263 a868 a868 a868 * 4b2b * 8ea1cbab,cbab,8ea1cbabv,cbabv 7396 e78e96 7396 00007396 a868 a868 a868 a868 a868 a868 a868 -1264 a869 a869 a869 * 4b2c * 8ea1cbac,cbac,8ea1cbacv,cbacv 752c e794ac 752c 0000752c a869 a869 a869 a869 a869 a869 a869 -1265 a86a a86a a86a * 4b2d * 8ea1cbad,cbad,8ea1cbadv,cbadv 752b e794ab 752b 0000752b a86a a86a a86a a86a a86a a86a a86a -1266 a86b a86b a86b * 4b2e * 8ea1cbae,cbae,8ea1cbaev,cbaev 7537 e794b7 7537 00007537 a86b a86b a86b a86b a86b a86b a86b -1267 a86c a86c a86c * 4b2f * 8ea1cbaf,cbaf,8ea1cbafv,cbafv 7538 e794b8 7538 00007538 a86c a86c a86c a86c a86c a86c a86c -1268 a86d a86d a86d * 4b30 * 8ea1cbb0,cbb0,8ea1cbb0v,cbb0v 7682 e79a82 7682 00007682 a86d a86d a86d a86d a86d a86d a86d -1269 a86e a86e a86e * 4b31 * 8ea1cbb1,cbb1,8ea1cbb1v,cbb1v 76ef e79baf 76ef 000076ef a86e a86e a86e a86e a86e a86e a86e -1270 a86f a86f a86f * 4b32 * 8ea1cbb2,cbb2,8ea1cbb2v,cbb2v 77e3 e79fa3 77e3 000077e3 a86f a86f a86f a86f a86f a86f a86f -1271 a870 a870 a870 * 4b33 * 8ea1cbb3,cbb3,8ea1cbb3v,cbb3v 79c1 e7a781 79c1 000079c1 a870 a870 a870 a870 a870 a870 a870 -1272 a871 a871 a871 * 4b34 * 8ea1cbb4,cbb4,8ea1cbb4v,cbb4v 79c0 e7a780 79c0 000079c0 a871 a871 a871 a871 a871 a871 a871 -1273 a872 a872 a872 * 4b35 * 8ea1cbb5,cbb5,8ea1cbb5v,cbb5v 79bf e7a6bf 79bf 000079bf a872 a872 a872 a872 a872 a872 a872 -1274 a873 a873 a873 * 4b36 * 8ea1cbb6,cbb6,8ea1cbb6v,cbb6v 7a76 e7a9b6 7a76 00007a76 a873 a873 a873 a873 a873 a873 a873 -1275 a874 a874 a874 * 4b37 * 8ea1cbb7,cbb7,8ea1cbb7v,cbb7v 7cfb e7b3bb 7cfb 00007cfb a874 a874 a874 a874 a874 a874 a874 -1276 a875 a875 a875 * 4b38 * 8ea1cbb8,cbb8,8ea1cbb8v,cbb8v 7f55 e7bd95 7f55 00007f55 a875 a875 a875 a875 a875 a875 a875 -1277 a876 a876 a876 * 4b39 * 8ea1cbb9,cbb9,8ea1cbb9v,cbb9v 8096 e88296 8096 00008096 a876 a876 a876 a876 a876 a876 a876 -1278 a877 a877 a877 * 4b3a * 8ea1cbba,cbba,8ea1cbbav,cbbav 8093 e88293 8093 00008093 a877 a877 a877 a877 a877 a877 a877 -1279 a878 a878 a878 * 4b3b * 8ea1cbbb,cbbb,8ea1cbbbv,cbbbv 809d e8829d 809d 0000809d a878 a878 a878 a878 a878 a878 a878 -1280 a879 a879 a879 * 4b3c * 8ea1cbbc,cbbc,8ea1cbbcv,cbbcv 8098 e88298 8098 00008098 a879 a879 a879 a879 a879 a879 a879 -1281 a87a a87a a87a * 4b3d * 8ea1cbbd,cbbd,8ea1cbbdv,cbbdv 809b e8829b 809b 0000809b a87a a87a a87a a87a a87a a87a a87a -1282 a87b a87b a87b * 4b3e * 8ea1cbbe,cbbe,8ea1cbbev,cbbev 809a e8829a 809a 0000809a a87b a87b a87b a87b a87b a87b a87b -1283 a87c a87c a87c * 4b3f * 8ea1cbbf,cbbf,8ea1cbbfv,cbbfv 80b2 e882b2 80b2 000080b2 a87c a87c a87c a87c a87c a87c a87c -1284 a87d a87d a87d * 4b40 * 8ea1cbc0,cbc0,8ea1cbc0v,cbc0v 826f e889af 826f 0000826f a87d a87d a87d a87d a87d a87d a87d -1285 a87e a87e a87e * 4b41 * 8ea1cbc1,cbc1,8ea1cbc1v,cbc1v 8292 e88a92 8292 00008292 a87e a87e a87e a87e a87e a87e a87e -1286 a8a1 a8a1 a8a1 * 4b42 * 8ea1cbc2,cbc2,8ea1cbc2v,cbc2v 828b e88a8b 828b 0000828b a8a1 a8a1 a8a1 a8a1 a8a1 a8a1 a8a1 -1287 a8a2 a8a2 a8a2 * 4b43 * 8ea1cbc3,cbc3,8ea1cbc3v,cbc3v 828d e88a8d 828d 0000828d a8a2 a8a2 a8a2 a8a2 a8a2 a8a2 a8a2 -1288 a8a3 a8a3 a8a3 * 2854,4b44 * 8ea1a8d4,8ea1cbc4,a8d4,cbc4,8ea1a8d4v,8ea1cbc4v,a8d4v,cbc4v 898b e8a68b,e2be92 898b,2f92 0000898b,00002f92 a8a3 a8a3 a8a3 a8a3 a8a3 a8a3 a8a3 -1289 a8a4 a8a4 a8a4 * 2855,4b45 * 8ea1a8d5,8ea1cbc5,a8d5,cbc5,8ea1a8d5v,8ea1cbc5v,a8d5v,cbc5v 2ec6,89d2 e8a792,e2be93 89d2,2f93 000089d2,00002f93 a8a4 a8a4 a8a4 a8a4 a8a4 a8a4 a8a4 -1290 a8a5 a8a5 a8a5 * 2856,4b46 * 8ea1a8d6,8ea1cbc6,a8d6,cbc6,8ea1a8d6v,8ea1cbc6v,a8d6v,cbc6v 8a00 e8a880,e2be94 8a00,2f94 00008a00,00002f94 a8a5 a8a5 a8a5 a8a5 a8a5 a8a5 a8a5 -1291 a8a6 a8a6 a8a6 * 2857,4b47 * 8ea1a8d7,8ea1cbc7,a8d7,cbc7,8ea1a8d7v,8ea1cbc7v,a8d7v,cbc7v 8c37 e8b0b7,e2be95 8c37,2f95 00008c37,00002f95 a8a6 a8a6 a8a6 a8a6 a8a6 a8a6 a8a6 -1292 a8a7 a8a7 a8a7 * 2858,4b48 * 8ea1a8d8,8ea1cbc8,a8d8,cbc8,8ea1a8d8v,8ea1cbc8v,a8d8v,cbc8v 8c46 e8b186,e2be96 8c46,2f96 00008c46,00002f96 a8a7 a8a7 a8a7 a8a7 a8a7 a8a7 a8a7 -1293 a8a8 a8a8 a8a8 * 2859,4b49 * 8ea1a8d9,8ea1cbc9,a8d9,cbc9,8ea1a8d9v,8ea1cbc9v,a8d9v,cbc9v 8c55 e8b195,e2be97 8c55,2f97 00008c55,00002f97 a8a8 a8a8 a8a8 a8a8 a8a8 a8a8 a8a8 -1294 a8a9 a8a9 a8a9 * 285b,4b4a * 8ea1a8db,8ea1cbca,a8db,cbca,8ea1a8dbv,8ea1cbcav,a8dbv,cbcav 8c9d e8b29d,e2be99 8c9d,2f99 00008c9d,00002f99 a8a9 a8a9 a8a9 a8a9 a8a9 a8a9 a8a9 -1295 a8aa a8aa a8aa * 285c,4b4b * 8ea1a8dc,8ea1cbcb,a8dc,cbcb,8ea1a8dcv,8ea1cbcbv,a8dcv,cbcbv 8d64 e8b5a4,e2be9a 8d64,2f9a 00008d64,00002f9a a8aa a8aa a8aa a8aa a8aa a8aa a8aa -1296 a8ab a8ab a8ab * 285d,4b4c * 8ea1a8dd,8ea1cbcc,a8dd,cbcc,8ea1a8ddv,8ea1cbccv,a8ddv,cbccv 8d70 e8b5b0,e2be9b 8d70,2f9b 00008d70,00002f9b a8ab a8ab a8ab a8ab a8ab a8ab a8ab -1297 a8ac a8ac a8ac * 285e,4b4d * 8ea1a8de,8ea1cbcd,a8de,cbcd,8ea1a8dev,8ea1cbcdv,a8dev,cbcdv 8db3 e8b6b3,e2be9c 8db3,2f9c 00008db3,00002f9c a8ac a8ac a8ac a8ac a8ac a8ac a8ac -1298 a8ad a8ad a8ad * 285f,4b4e * 8ea1a8df,8ea1cbce,a8df,cbce,8ea1a8dfv,8ea1cbcev,a8dfv,cbcev 8eab e8baab,e2be9d 8eab,2f9d 00008eab,00002f9d a8ad a8ad a8ad a8ad a8ad a8ad a8ad -1299 a8ae a8ae a8ae * 2860,4b4f * 8ea1a8e0,8ea1cbcf,a8e0,cbcf,8ea1a8e0v,8ea1cbcfv,a8e0v,cbcfv 8eca e8bb8a,e2be9e 8eca,2f9e 00008eca,00002f9e a8ae a8ae a8ae a8ae a8ae a8ae a8ae -1300 a8af a8af a8af * 2861,4b50 * 8ea1a8e1,8ea1cbd0,a8e1,cbd0,8ea1a8e1v,8ea1cbd0v,a8e1v,cbd0v 8f9b e8be9b,e2be9f 8f9b,2f9f 00008f9b,00002f9f a8af a8af a8af a8af a8af a8af a8af -1301 a8b0 a8b0 a8b0 * 2862,4b51 * 8ea1a8e2,8ea1cbd1,a8e2,cbd1,8ea1a8e2v,8ea1cbd1v,a8e2v,cbd1v 8fb0 e8beb0,e2bea0 8fb0,2fa0 00008fb0,00002fa0 a8b0 a8b0 a8b0 a8b0 a8b0 a8b0 a8b0 -1302 a8b1 a8b1 a8b1 * 4b52 * 8ea1cbd2,cbd2,8ea1cbd2v,cbd2v 8fc2 e8bf82 8fc2 00008fc2 a8b1 a8b1 a8b1 a8b1 a8b1 a8b1 a8b1 -1303 a8b2 a8b2 a8b2 * 4b53 * 8ea1cbd3,cbd3,8ea1cbd3v,cbd3v 8fc6 e8bf86 8fc6 00008fc6 a8b2 a8b2 a8b2 a8b2 a8b2 a8b2 a8b2 -1304 a8b3 a8b3 a8b3 * 4b54 * 8ea1cbd4,cbd4,8ea1cbd4v,cbd4v 8fc5 e8bf85 8fc5 00008fc5 a8b3 a8b3 a8b3 a8b3 a8b3 a8b3 a8b3 -1305 a8b4 a8b4 a8b4 * 4b55 * 8ea1cbd5,cbd5,8ea1cbd5v,cbd5v 8fc4 e8bf84 8fc4 00008fc4 a8b4 a8b4 a8b4 a8b4 a8b4 a8b4 a8b4 -1306 a8b5 a8b5 a8b5 * 4b56 * 8ea1cbd6,cbd6,8ea1cbd6v,cbd6v 5de1 e5b7a1 5de1 00005de1 a8b5 a8b5 a8b5 a8b5 a8b5 a8b5 a8b5 -1307 a8b6 a8b6 a8b6 * 2864,4b57 * 8ea1a8e4,8ea1cbd7,a8e4,cbd7,8ea1a8e4v,8ea1cbd7v,a8e4v,cbd7v 9091 e2bea2,e98291 2fa2,9091 00002fa2,00009091 a8b6 a8b6 a8b6 a8b6 a8b6 a8b6 a8b6 -1308 a8b7 a8b7 a8b7 * 4b58 * 8ea1cbd8,cbd8,8ea1cbd8v,cbd8v 90a2 e982a2 90a2 000090a2 a8b7 a8b7 a8b7 a8b7 a8b7 a8b7 a8b7 -1309 a8b8 a8b8 a8b8 * 4b59 * 8ea1cbd9,cbd9,8ea1cbd9v,cbd9v 90aa e982aa 90aa 000090aa a8b8 a8b8 a8b8 a8b8 a8b8 a8b8 a8b8 -1310 a8b9 a8b9 a8b9 * 4b5a * 8ea1cbda,cbda,8ea1cbdav,cbdav 90a6 e982a6 90a6 000090a6 a8b9 a8b9 a8b9 a8b9 a8b9 a8b9 a8b9 -1311 a8ba a8ba a8ba * 4b5b * 8ea1cbdb,cbdb,8ea1cbdbv,cbdbv 90a3 e982a3 90a3 000090a3 a8ba a8ba a8ba a8ba a8ba a8ba a8ba -1312 a8bb a8bb a8bb * 2865,4b5c * 8ea1a8e5,8ea1cbdc,a8e5,cbdc,8ea1a8e5v,8ea1cbdcv,a8e5v,cbdcv 9149 e98589,e2bea3 9149,2fa3 00009149,00002fa3 a8bb a8bb a8bb a8bb a8bb a8bb a8bb -1313 a8bc a8bc a8bc * 2866,4b5d * 8ea1a8e6,8ea1cbdd,a8e6,cbdd,8ea1a8e6v,8ea1cbddv,a8e6v,cbddv 91c6 e98786,e2bea4 91c6,2fa4 000091c6,00002fa4 a8bc a8bc a8bc a8bc a8bc a8bc a8bc -1314 a8bd a8bd a8bd * 2867,4b5e * 8ea1a8e7,8ea1cbde,a8e7,cbde,8ea1a8e7v,8ea1cbdev,a8e7v,cbdev 91cc e9878c,e2bea5 91cc,2fa5 000091cc,00002fa5 a8bd a8bd a8bd a8bd a8bd a8bd a8bd -1315 a8be a8be a8be * 4b5f * 8ea1cbdf,cbdf,8ea1cbdfv,cbdfv 9632 e998b2 9632 00009632 a8be a8be a8be a8be a8be a8be a8be -1316 a8bf a8bf a8bf * 4b60 * 8ea1cbe0,cbe0,8ea1cbe0v,cbe0v 962e e998ae 962e 0000962e a8bf a8bf a8bf a8bf a8bf a8bf a8bf -1317 a8c0 a8c0 a8c0 * 4b61 * 8ea1cbe1,cbe1,8ea1cbe1v,cbe1v 9631 e998b1 9631 00009631 a8c0 a8c0 a8c0 a8c0 a8c0 a8c0 a8c0 -1318 a8c1 a8c1 a8c1 * 4b62 * 8ea1cbe2,cbe2,8ea1cbe2v,cbe2v 962a e998aa 962a 0000962a a8c1 a8c1 a8c1 a8c1 a8c1 a8c1 a8c1 -1319 a8c2 a8c2 a8c2 * 4b63 * 8ea1cbe3,cbe3,8ea1cbe3v,cbe3v 962c e998ac 962c 0000962c a8c2 a8c2 a8c2 a8c2 a8c2 a8c2 a8c2 -1320 a8c3 a8c3 a8c3 * 4b64 * 8ea1cbe4,cbe4,8ea1cbe4v,cbe4v 4e26 e4b8a6 4e26 00004e26 a8c3 a8c3 a8c3 a8c3 a8c3 a8c3 a8c3 -1321 a8c4 a8c4 a8c4 * 4b65 * 8ea1cbe5,cbe5,8ea1cbe5v,cbe5v 4e56 e4b996 4e56 00004e56 a8c4 a8c4 a8c4 a8c4 a8c4 a8c4 a8c4 -1322 a8c5 a8c5 a8c5 * 4b66 * 8ea1cbe6,cbe6,8ea1cbe6v,cbe6v 4e73 e4b9b3 4e73 00004e73 a8c5 a8c5 a8c5 a8c5 a8c5 a8c5 a8c5 -1323 a8c6 a8c6 a8c6 * 4b67 * 8ea1cbe7,cbe7,8ea1cbe7v,cbe7v 4e8b e4ba8b 4e8b 00004e8b a8c6 a8c6 a8c6 a8c6 a8c6 a8c6 a8c6 -1324 a8c7 a8c7 a8c7 * 4b68 * 8ea1cbe8,cbe8,8ea1cbe8v,cbe8v 4e9b e4ba9b 4e9b 00004e9b a8c7 a8c7 a8c7 a8c7 a8c7 a8c7 a8c7 -1325 a8c8 a8c8 a8c8 * 4b69 * 8ea1cbe9,cbe9,8ea1cbe9v,cbe9v 4e9e e4ba9e 4e9e 00004e9e a8c8 a8c8 a8c8 a8c8 a8c8 a8c8 a8c8 -1326 a8c9 a8c9 a8c9 * 4b6a * 8ea1cbea,cbea,8ea1cbeav,cbeav 4eab e4baab 4eab 00004eab a8c9 a8c9 a8c9 a8c9 a8c9 a8c9 a8c9 -1327 a8ca a8ca a8ca * 4b6b * 8ea1cbeb,cbeb,8ea1cbebv,cbebv 4eac e4baac 4eac 00004eac a8ca a8ca a8ca a8ca a8ca a8ca a8ca -1328 a8cb a8cb a8cb * 4b6c * 8ea1cbec,cbec,8ea1cbecv,cbecv 4f6f e4bdaf 4f6f 00004f6f a8cb a8cb a8cb a8cb a8cb a8cb a8cb -1329 a8cc a8cc a8cc * 4b6d * 8ea1cbed,cbed,8ea1cbedv,cbedv 4f9d e4be9d 4f9d 00004f9d a8cc a8cc a8cc a8cc a8cc a8cc a8cc -1330 a8cd a8cd a8cd * 4b6e * 8ea1cbee,cbee,8ea1cbeev,cbeev 4f8d e4be8d 4f8d 00004f8d a8cd a8cd a8cd a8cd a8cd a8cd a8cd -1331 a8ce a8ce a8ce * 4b6f * 8ea1cbef,cbef,8ea1cbefv,cbefv 4f73 e4bdb3 4f73 00004f73 a8ce a8ce a8ce a8ce a8ce a8ce a8ce -1332 a8cf a8cf a8cf * 4b70 * 8ea1cbf0,cbf0,8ea1cbf0v,cbf0v 4f7f e4bdbf 4f7f 00004f7f a8cf a8cf a8cf a8cf a8cf a8cf a8cf -1333 a8d0 a8d0 a8d0 * 4b71 * 8ea1cbf1,cbf1,8ea1cbf1v,cbf1v 4f6c e4bdac 4f6c 00004f6c a8d0 a8d0 a8d0 a8d0 a8d0 a8d0 a8d0 -1334 a8d1 a8d1 a8d1 * 4b72 * 8ea1cbf2,cbf2,8ea1cbf2v,cbf2v 4f9b e4be9b 4f9b 00004f9b a8d1 a8d1 a8d1 a8d1 a8d1 a8d1 a8d1 -1335 a8d2 a8d2 a8d2 * 4b73 * 8ea1cbf3,cbf3,8ea1cbf3v,cbf3v 4f8b e4be8b 4f8b 00004f8b a8d2 a8d2 a8d2 a8d2 a8d2 a8d2 a8d2 -1336 a8d3 a8d3 a8d3 * 4b74 * 8ea1cbf4,cbf4,8ea1cbf4v,cbf4v 4f86 e4be86 4f86 00004f86 a8d3 a8d3 a8d3 a8d3 a8d3 a8d3 a8d3 -1337 a8d4 a8d4 a8d4 * 4b75 * 8ea1cbf5,cbf5,8ea1cbf5v,cbf5v 4f83 e4be83 4f83 00004f83 a8d4 a8d4 a8d4 a8d4 a8d4 a8d4 a8d4 -1338 a8d5 a8d5 a8d5 * 4b76 * 8ea1cbf6,cbf6,8ea1cbf6v,cbf6v 4f70 e4bdb0 4f70 00004f70 a8d5 a8d5 a8d5 a8d5 a8d5 a8d5 a8d5 -1339 a8d6 a8d6 a8d6 * 4b77 * 8ea1cbf7,cbf7,8ea1cbf7v,cbf7v 4f75 e4bdb5 4f75 00004f75 a8d6 a8d6 a8d6 a8d6 a8d6 a8d6 a8d6 -1340 a8d7 a8d7 a8d7 * 4b78 * 8ea1cbf8,cbf8,8ea1cbf8v,cbf8v 4f88 e4be88 4f88 00004f88 a8d7 a8d7 a8d7 a8d7 a8d7 a8d7 a8d7 -1341 a8d8 a8d8 a8d8 * 4b79 * 8ea1cbf9,cbf9,8ea1cbf9v,cbf9v 4f69 e4bda9 4f69 00004f69 a8d8 a8d8 a8d8 a8d8 a8d8 a8d8 a8d8 -1342 a8d9 a8d9 a8d9 * 4b7a * 8ea1cbfa,cbfa,8ea1cbfav,cbfav 4f7b e4bdbb 4f7b 00004f7b a8d9 a8d9 a8d9 a8d9 a8d9 a8d9 a8d9 -1343 a8da a8da a8da * 4b7b * 8ea1cbfb,cbfb,8ea1cbfbv,cbfbv 4f96 e4be96 4f96 00004f96 a8da a8da a8da a8da a8da a8da a8da -1344 a8db a8db a8db * 4b7c * 8ea1cbfc,cbfc,8ea1cbfcv,cbfcv 4f7e e4bdbe 4f7e 00004f7e a8db a8db a8db a8db a8db a8db a8db -1345 a8dc a8dc a8dc * 4b7d * 8ea1cbfd,cbfd,8ea1cbfdv,cbfdv 4f8f e4be8f 4f8f 00004f8f a8dc a8dc a8dc a8dc a8dc a8dc a8dc -1346 a8dd a8dd a8dd * 4b7e * 8ea1cbfe,cbfe,8ea1cbfev,cbfev 4f91 e4be91 4f91 00004f91 a8dd a8dd a8dd a8dd a8dd a8dd a8dd -1347 a8de a8de a8de * 4c21 * 8ea1cca1,cca1,8ea1cca1v,cca1v 4f7a e4bdba 4f7a 00004f7a a8de a8de a8de a8de a8de a8de a8de -1348 a8df a8df a8df * 4c22 * 8ea1cca2,cca2,8ea1cca2v,cca2v 5154 e58594 5154 00005154 a8df a8df a8df a8df a8df a8df a8df -1349 a8e0 a8e0 a8e0 * 4c23 * 8ea1cca3,cca3,8ea1cca3v,cca3v 5152 e58592 5152 00005152 a8e0 a8e0 a8e0 a8e0 a8e0 a8e0 a8e0 -1350 a8e1 a8e1 a8e1 * 4c24 * 8ea1cca4,cca4,8ea1cca4v,cca4v 5155 e58595 5155 00005155 a8e1 a8e1 a8e1 a8e1 a8e1 a8e1 a8e1 -1351 a8e2 a8e2 a8e2 * 4c25 * 8ea1cca5,cca5,8ea1cca5v,cca5v 5169 e585a9 5169 00005169 a8e2 a8e2 a8e2 a8e2 a8e2 a8e2 a8e2 -1352 a8e3 a8e3 a8e3 * 4c26 * 8ea1cca6,cca6,8ea1cca6v,cca6v 5177 e585b7 5177 00005177 a8e3 a8e3 a8e3 a8e3 a8e3 a8e3 a8e3 -1353 a8e4 a8e4 a8e4 * 4c27 * 8ea1cca7,cca7,8ea1cca7v,cca7v 5176 e585b6 5176 00005176 a8e4 a8e4 a8e4 a8e4 a8e4 a8e4 a8e4 -1354 a8e5 a8e5 a8e5 * 4c28 * 8ea1cca8,cca8,8ea1cca8v,cca8v 5178 e585b8 5178 00005178 a8e5 a8e5 a8e5 a8e5 a8e5 a8e5 a8e5 -1355 a8e6 a8e6 a8e6 * 4c29 * 8ea1cca9,cca9,8ea1cca9v,cca9v 51bd e586bd 51bd 000051bd a8e6 a8e6 a8e6 a8e6 a8e6 a8e6 a8e6 -1356 a8e7 a8e7 a8e7 * 4c2a * 8ea1ccaa,ccaa,8ea1ccaav,ccaav 51fd e587bd 51fd 000051fd a8e7 a8e7 a8e7 a8e7 a8e7 a8e7 a8e7 -1357 a8e8 a8e8 a8e8 * 4c2b * 8ea1ccab,ccab,8ea1ccabv,ccabv 523b e588bb 523b 0000523b a8e8 a8e8 a8e8 a8e8 a8e8 a8e8 a8e8 -1358 a8e9 a8e9 a8e9 * 4c2c * 8ea1ccac,ccac,8ea1ccacv,ccacv 5238 e588b8 5238 00005238 a8e9 a8e9 a8e9 a8e9 a8e9 a8e9 a8e9 -1359 a8ea a8ea a8ea * 4c2d * 8ea1ccad,ccad,8ea1ccadv,ccadv 5237 e588b7 5237 00005237 a8ea a8ea a8ea a8ea a8ea a8ea a8ea -1360 a8eb a8eb a8eb * 4c2e * 8ea1ccae,ccae,8ea1ccaev,ccaev 523a e588ba 523a 0000523a a8eb a8eb a8eb a8eb a8eb a8eb a8eb -1361 a8ec a8ec a8ec * 4c2f * 8ea1ccaf,ccaf,8ea1ccafv,ccafv 5230 e588b0 5230 00005230 a8ec a8ec a8ec a8ec a8ec a8ec a8ec -1362 a8ed a8ed a8ed * 4c30 * 8ea1ccb0,ccb0,8ea1ccb0v,ccb0v 522e e588ae 522e 0000522e a8ed a8ed a8ed a8ed a8ed a8ed a8ed -1363 a8ee a8ee a8ee * 4c31 * 8ea1ccb1,ccb1,8ea1ccb1v,ccb1v 5236 e588b6 5236 00005236 a8ee a8ee a8ee a8ee a8ee a8ee a8ee -1364 a8ef a8ef a8ef * 4c32 * 8ea1ccb2,ccb2,8ea1ccb2v,ccb2v 5241 e58981 5241 00005241 a8ef a8ef a8ef a8ef a8ef a8ef a8ef -1365 a8f0 a8f0 a8f0 * 4c33 * 8ea1ccb3,ccb3,8ea1ccb3v,ccb3v 52be e58abe 52be 000052be a8f0 a8f0 a8f0 a8f0 a8f0 a8f0 a8f0 -1366 a8f1 a8f1 a8f1 * 4c34 * 8ea1ccb4,ccb4,8ea1ccb4v,ccb4v 52bb e58abb 52bb 000052bb a8f1 a8f1 a8f1 a8f1 a8f1 a8f1 a8f1 -1367 a8f2 a8f2 a8f2 * 4c35 * 8ea1ccb5,ccb5,8ea1ccb5v,ccb5v 5352 e58d92 5352 00005352 a8f2 a8f2 a8f2 a8f2 a8f2 a8f2 a8f2 -1368 a8f3 a8f3 a8f3 * 4c36 * 8ea1ccb6,ccb6,8ea1ccb6v,ccb6v 5354 e58d94 5354 00005354 a8f3 a8f3 a8f3 a8f3 a8f3 a8f3 a8f3 -1369 a8f4 a8f4 a8f4 * 4c37 * 8ea1ccb7,ccb7,8ea1ccb7v,ccb7v 5353 e58d93 5353 00005353 a8f4 a8f4 a8f4 a8f4 a8f4 a8f4 a8f4 -1370 a8f5 a8f5 a8f5 * 4c38 * 8ea1ccb8,ccb8,8ea1ccb8v,ccb8v 5351 e58d91 5351 00005351 a8f5 a8f5 a8f5 a8f5 a8f5 a8f5 a8f5 -1371 a8f6 a8f6 a8f6 * 4c39 * 8ea1ccb9,ccb9,8ea1ccb9v,ccb9v 5366 e58da6 5366 00005366 a8f6 a8f6 a8f6 a8f6 a8f6 a8f6 a8f6 -1372 a8f7 a8f7 a8f7 * 4c3a * 8ea1ccba,ccba,8ea1ccbav,ccbav 5377 e58db7 5377 00005377 a8f7 a8f7 a8f7 a8f7 a8f7 a8f7 a8f7 -1373 a8f8 a8f8 a8f8 * 4c3b * 8ea1ccbb,ccbb,8ea1ccbbv,ccbbv 5378 e58db8 5378 00005378 a8f8 a8f8 a8f8 a8f8 a8f8 a8f8 a8f8 -1374 a8f9 a8f9 a8f9 * 4c3c * 8ea1ccbc,ccbc,8ea1ccbcv,ccbcv 5379 e58db9 5379 00005379 a8f9 a8f9 a8f9 a8f9 a8f9 a8f9 a8f9 -1375 a8fa a8fa a8fa * 4c3d * 8ea1ccbd,ccbd,8ea1ccbdv,ccbdv 53d6 e58f96 53d6 000053d6 a8fa a8fa a8fa a8fa a8fa a8fa a8fa -1376 a8fb a8fb a8fb * 4c3e * 8ea1ccbe,ccbe,8ea1ccbev,ccbev 53d4 e58f94 53d4 000053d4 a8fb a8fb a8fb a8fb a8fb a8fb a8fb -1377 a8fc a8fc a8fc * 4c3f * 8ea1ccbf,ccbf,8ea1ccbfv,ccbfv 53d7 e58f97 53d7 000053d7 a8fc a8fc a8fc a8fc a8fc a8fc a8fc -1378 a8fd a8fd a8fd * 4c40 * 8ea1ccc0,ccc0,8ea1ccc0v,ccc0v 5473 e591b3 5473 00005473 a8fd a8fd a8fd a8fd a8fd a8fd a8fd -1379 a8fe a8fe a8fe * 4c41 * 8ea1ccc1,ccc1,8ea1ccc1v,ccc1v 5475 e591b5 5475 00005475 a8fe a8fe a8fe a8fe a8fe a8fe a8fe -1380 a940 a940 a940 * 4c42 * 8ea1ccc2,ccc2,8ea1ccc2v,ccc2v 5496 e59296 5496 00005496 a940 a940 a940 a940 a940 a940 a940 -1381 a941 a941 a941 * 4c43 * 8ea1ccc3,ccc3,8ea1ccc3v,ccc3v 5478 e591b8 5478 00005478 a941 a941 a941 a941 a941 a941 a941 -1382 a942 a942 a942 * 4c44 * 8ea1ccc4,ccc4,8ea1ccc4v,ccc4v 5495 e59295 5495 00005495 a942 a942 a942 a942 a942 a942 a942 -1383 a943 a943 a943 * 4c45 * 8ea1ccc5,ccc5,8ea1ccc5v,ccc5v 5480 e59280 5480 00005480 a943 a943 a943 a943 a943 a943 a943 -1384 a944 a944 a944 * 4c46 * 8ea1ccc6,ccc6,8ea1ccc6v,ccc6v 547b e591bb 547b 0000547b a944 a944 a944 a944 a944 a944 a944 -1385 a945 a945 a945 * 4c47 * 8ea1ccc7,ccc7,8ea1ccc7v,ccc7v 5477 e591b7 5477 00005477 a945 a945 a945 a945 a945 a945 a945 -1386 a946 a946 a946 * 4c48 * 8ea1ccc8,ccc8,8ea1ccc8v,ccc8v 5484 e59284 5484 00005484 a946 a946 a946 a946 a946 a946 a946 -1387 a947 a947 a947 * 4c49 * 8ea1ccc9,ccc9,8ea1ccc9v,ccc9v 5492 e59292 5492 00005492 a947 a947 a947 a947 a947 a947 a947 -1388 a948 a948 a948 * 4c4a * 8ea1ccca,ccca,8ea1cccav,cccav 5486 e59286 5486 00005486 a948 a948 a948 a948 a948 a948 a948 -1389 a949 a949 a949 * 4c4b * 8ea1cccb,cccb,8ea1cccbv,cccbv 547c e591bc 547c 0000547c a949 a949 a949 a949 a949 a949 a949 -1390 a94a a94a a94a * 4c4c * 8ea1cccc,cccc,8ea1ccccv,ccccv 5490 e59290 5490 00005490 a94a a94a a94a a94a a94a a94a a94a -1391 a94b a94b a94b * 4c4d * 8ea1cccd,cccd,8ea1cccdv,cccdv 5471 e591b1 5471 00005471 a94b a94b a94b a94b a94b a94b a94b -1392 a94c a94c a94c * 4c4e * 8ea1ccce,ccce,8ea1cccev,cccev 5476 e591b6 5476 00005476 a94c a94c,fbd1 9154,a94c a94c a94c a94c a94c -1393 a94d a94d a94d * 4c4f * 8ea1cccf,cccf,8ea1cccfv,cccfv 548c e5928c 548c 0000548c a94d a94d a94d a94d a94d a94d a94d -1394 a94e a94e a94e * 4c50 * 8ea1ccd0,ccd0,8ea1ccd0v,ccd0v 549a e5929a 549a 0000549a a94e a94e a94e a94e a94e a94e a94e -1395 a94f a94f a94f * 4c51 * 8ea1ccd1,ccd1,8ea1ccd1v,ccd1v 5462 e591a2 5462 00005462 a94f a94f a94f a94f a94f a94f a94f -1396 a950 a950 a950 * 4c52 * 8ea1ccd2,ccd2,8ea1ccd2v,ccd2v 5468 e591a8 5468 00005468 a950 a950 a950 a950 a950 a950 a950 -1397 a951 a951 a951 * 4c53 * 8ea1ccd3,ccd3,8ea1ccd3v,ccd3v 548b e5928b 548b 0000548b a951 a951 a951 a951 a951 a951 a951 -1398 a952 a952 a952 * 4c54 * 8ea1ccd4,ccd4,8ea1ccd4v,ccd4v 547d e591bd 547d 0000547d a952 a952 a952 a952 a952 a952 a952 -1399 a953 a953 a953 * 4c55 * 8ea1ccd5,ccd5,8ea1ccd5v,ccd5v 548e e5928e 548e 0000548e a953 a953 a953 a953 a953 a953 a953 -1400 a954 a954 a954 * 4c56 * 8ea1ccd6,ccd6,8ea1ccd6v,ccd6v 56fa e59bba 56fa 000056fa a954 a954 a954 a954 a954 a954 a954 -1401 a955 a955 a955 * 4c57 * 8ea1ccd7,ccd7,8ea1ccd7v,ccd7v 5783 e59e83 5783 00005783 a955 a955 a955 a955 a955 a955 a955 -1402 a956 a956 a956 * 4c58 * 8ea1ccd8,ccd8,8ea1ccd8v,ccd8v 5777 e59db7 5777 00005777 a956 a956 a956 a956 a956 a956 a956 -1403 a957 a957 a957 * 4c59 * 8ea1ccd9,ccd9,8ea1ccd9v,ccd9v 576a e59daa 576a 0000576a a957 a957 a957 a957 a957 a957 a957 -1404 a958 a958 a958 * 4c5a * 8ea1ccda,ccda,8ea1ccdav,ccdav 5769 e59da9 5769 00005769 a958 a958 a958 a958 a958 a958 a958 -1405 a959 a959 a959 * 4c5b * 8ea1ccdb,ccdb,8ea1ccdbv,ccdbv 5761 e59da1 5761 00005761 a959 a959 a959 a959 a959 a959 a959 -1406 a95a a95a a95a * 4c5c * 8ea1ccdc,ccdc,8ea1ccdcv,ccdcv 5766 e59da6 5766 00005766 a95a a95a a95a a95a a95a a95a a95a -1407 a95b a95b a95b * 4c5d * 8ea1ccdd,ccdd,8ea1ccddv,ccddv 5764 e59da4 5764 00005764 a95b a95b a95b a95b a95b a95b a95b -1408 a95c a95c a95c * 4c5e * 8ea1ccde,ccde,8ea1ccdev,ccdev 577c e59dbc 577c 0000577c a95c a95c a95c a95c a95c a95c a95c -1409 a95d a95d a95d * 4c5f * 8ea1ccdf,ccdf,8ea1ccdfv,ccdfv 591c e5a49c 591c 0000591c a95d a95d a95d a95d a95d a95d a95d -1410 a95e a95e a95e * 4c60 * 8ea1cce0,cce0,8ea1cce0v,cce0v 5949 e5a589 5949 00005949 a95e a95e a95e a95e a95e a95e a95e -1411 a95f a95f a95f * 4c61 * 8ea1cce1,cce1,8ea1cce1v,cce1v 5947 e5a587 5947 00005947 a95f a95f a95f a95f a95f a95f a95f -1412 a960 a960 a960 * 4c62 * 8ea1cce2,cce2,8ea1cce2v,cce2v 5948 e5a588 5948 00005948 a960 a960 a960 a960 a960 a960 a960 -1413 a961 a961 a961 * 4c63 * 8ea1cce3,cce3,8ea1cce3v,cce3v 5944 e5a584 5944 00005944 a961 a961 a961 a961 a961 a961 a961 -1414 a962 a962 a962 * 4c64 * 8ea1cce4,cce4,8ea1cce4v,cce4v 5954 e5a594 5954 00005954 a962 a962 a962 a962 a962 a962 a962 -1415 a963 a963 a963 * 4c65 * 8ea1cce5,cce5,8ea1cce5v,cce5v 59be e5a6be 59be 000059be a963 a963 a963 a963 a963 a963 a963 -1416 a964 a964 a964 * 4c66 * 8ea1cce6,cce6,8ea1cce6v,cce6v 59bb e5a6bb 59bb 000059bb a964 a964 a964 a964 a964 a964 a964 -1417 a965 a965 a965 * 4c67 * 8ea1cce7,cce7,8ea1cce7v,cce7v 59d4 e5a794 59d4 000059d4 a965 a965 a965 a965 a965 a965 a965 -1418 a966 a966 a966 * 4c68 * 8ea1cce8,cce8,8ea1cce8v,cce8v 59b9 e5a6b9 59b9 000059b9 a966 a966 a966 a966 a966 a966 a966 -1419 a967 a967 a967 * 4c69 * 8ea1cce9,cce9,8ea1cce9v,cce9v 59ae e5a6ae 59ae 000059ae a967 a967 a967 a967 a967 a967 a967 -1420 a968 a968 a968 * 4c6a * 8ea1ccea,ccea,8ea1cceav,cceav 59d1 e5a791 59d1 000059d1 a968 a968 a968 a968 a968 a968 a968 -1421 a969 a969 a969 * 4c6b * 8ea1cceb,cceb,8ea1ccebv,ccebv 59c6 e5a786 59c6 000059c6 a969 a969 a969 a969 a969 a969 a969 -1422 a96a a96a a96a * 4c6c * 8ea1ccec,ccec,8ea1ccecv,ccecv 59d0 e5a790 59d0 000059d0 a96a a96a a96a a96a a96a a96a a96a -1423 a96b a96b a96b * 4c6d * 8ea1cced,cced,8ea1ccedv,ccedv 59cd e5a78d 59cd 000059cd a96b a96b a96b a96b a96b a96b a96b -1424 a96c a96c a96c * 4c6e * 8ea1ccee,ccee,8ea1cceev,cceev 59cb e5a78b 59cb 000059cb a96c a96c a96c a96c a96c a96c a96c -1425 a96d a96d a96d * 4c6f * 8ea1ccef,ccef,8ea1ccefv,ccefv 59d3 e5a793 59d3 000059d3 a96d a96d a96d a96d a96d a96d a96d -1426 a96e a96e a96e * 4c70 * 8ea1ccf0,ccf0,8ea1ccf0v,ccf0v 59ca e5a78a 59ca 000059ca a96e a96e a96e a96e a96e a96e a96e -1427 a96f a96f a96f * 4c71 * 8ea1ccf1,ccf1,8ea1ccf1v,ccf1v 59af e5a6af 59af 000059af a96f a96f a96f a96f a96f a96f a96f -1428 a970 a970 a970 * 4c72 * 8ea1ccf2,ccf2,8ea1ccf2v,ccf2v 59b3 e5a6b3 59b3 000059b3 a970 a970 a970 a970 a970 a970 a970 -1429 a971 a971 a971 * 4c73 * 8ea1ccf3,ccf3,8ea1ccf3v,ccf3v 59d2 e5a792 59d2 000059d2 a971 a971,fbf4 9158,a971 a971 a971 a971 a971 -1430 a972 a972 a972 * 4c74 * 8ea1ccf4,ccf4,8ea1ccf4v,ccf4v 59c5 e5a785 59c5 000059c5 a972 a972 a972 a972 a972 a972 a972 -1431 a973 a973 a973 * 4c75 * 8ea1ccf5,ccf5,8ea1ccf5v,ccf5v 5b5f e5ad9f 5b5f 00005b5f a973 a973 a973 a973 a973 a973 a973 -1432 a974 a974 a974 * 4c76 * 8ea1ccf6,ccf6,8ea1ccf6v,ccf6v 5b64 e5ada4 5b64 00005b64 a974 a974 a974 a974 a974 a974 a974 -1433 a975 a975 a975 * 4c77 * 8ea1ccf7,ccf7,8ea1ccf7v,ccf7v 5b63 e5ada3 5b63 00005b63 a975 a975 a975 a975 a975 a975 a975 -1434 a976 a976 a976 * 4c78 * 8ea1ccf8,ccf8,8ea1ccf8v,ccf8v 5b97 e5ae97 5b97 00005b97 a976 a976 a976 a976 a976 a976 a976 -1435 a977 a977 a977 * 4c79 * 8ea1ccf9,ccf9,8ea1ccf9v,ccf9v 5b9a e5ae9a 5b9a 00005b9a a977 a977 a977 a977 a977 a977 a977 -1436 a978 a978 a978 * 4c7a * 8ea1ccfa,ccfa,8ea1ccfav,ccfav 5b98 e5ae98 5b98 00005b98 a978 a978 a978 a978 a978 a978 a978 -1437 a979 a979 a979 * 4c7b * 8ea1ccfb,ccfb,8ea1ccfbv,ccfbv 5b9c e5ae9c 5b9c 00005b9c a979 a979 a979 a979 a979 a979 a979 -1438 a97a a97a a97a * 4c7c * 8ea1ccfc,ccfc,8ea1ccfcv,ccfcv 5b99 e5ae99 5b99 00005b99 a97a a97a a97a a97a a97a a97a a97a -1439 a97b a97b a97b * 4c7d * 8ea1ccfd,ccfd,8ea1ccfdv,ccfdv 5b9b e5ae9b 5b9b 00005b9b a97b a97b a97b a97b a97b a97b a97b -1440 a97c a97c a97c * 4c7e * 8ea1ccfe,ccfe,8ea1ccfev,ccfev 5c1a e5b09a 5c1a 00005c1a a97c a97c a97c a97c a97c a97c a97c -1441 a97d a97d a97d * 4d21 * 8ea1cda1,cda1,8ea1cda1v,cda1v 5c48 e5b188 5c48 00005c48 a97d a97d a97d a97d a97d a97d a97d -1442 a97e a97e a97e * 4d22 * 8ea1cda2,cda2,8ea1cda2v,cda2v 5c45 e5b185 5c45 00005c45 a97e a97e a97e a97e a97e a97e a97e -1443 a9a1 a9a1 a9a1 * 4d23 * 8ea1cda3,cda3,8ea1cda3v,cda3v 5c46 e5b186 5c46 00005c46 a9a1 a9a1 a9a1 a9a1 a9a1 a9a1 a9a1 -1444 a9a2 a9a2 a9a2 * 4d24 * 8ea1cda4,cda4,8ea1cda4v,cda4v 5cb7 e5b2b7 5cb7 00005cb7 a9a2 a9a2 a9a2 a9a2 a9a2 a9a2 a9a2 -1445 a9a3 a9a3 a9a3 * 4d25 * 8ea1cda5,cda5,8ea1cda5v,cda5v 5ca1 e5b2a1 5ca1 00005ca1 a9a3 a9a3 a9a3 a9a3 a9a3 a9a3 a9a3 -1446 a9a4 a9a4 a9a4 * 4d26 * 8ea1cda6,cda6,8ea1cda6v,cda6v 5cb8 e5b2b8 5cb8 00005cb8 a9a4 a9a4 a9a4 a9a4 a9a4 a9a4 a9a4 -1447 a9a5 a9a5 a9a5 * 4d27 * 8ea1cda7,cda7,8ea1cda7v,cda7v 5ca9 e5b2a9 5ca9 00005ca9 a9a5 a9a5 a9a5 a9a5 a9a5 a9a5 a9a5 -1448 a9a6 a9a6 a9a6 * 4d28 * 8ea1cda8,cda8,8ea1cda8v,cda8v 5cab e5b2ab 5cab 00005cab a9a6 a9a6 a9a6 a9a6 a9a6 a9a6 a9a6 -1449 a9a7 a9a7 a9a7 * 4d29 * 8ea1cda9,cda9,8ea1cda9v,cda9v 5cb1 e5b2b1 5cb1 00005cb1 a9a7 a9a7 a9a7 a9a7 a9a7 a9a7 a9a7 -1450 a9a8 a9a8 a9a8 * 4d2a * 8ea1cdaa,cdaa,8ea1cdaav,cdaav 5cb3 e5b2b3 5cb3 00005cb3 a9a8 a9a8 a9a8 a9a8 a9a8 a9a8 a9a8 -1451 a9a9 a9a9 a9a9 * 4d2b * 8ea1cdab,cdab,8ea1cdabv,cdabv 5e18 e5b898 5e18 00005e18 a9a9 a9a9 a9a9 a9a9 a9a9 a9a9 a9a9 -1452 a9aa a9aa a9aa * 4d2c * 8ea1cdac,cdac,8ea1cdacv,cdacv 5e1a e5b89a 5e1a 00005e1a a9aa a9aa a9aa a9aa a9aa a9aa a9aa -1453 a9ab a9ab a9ab * 4d2d * 8ea1cdad,cdad,8ea1cdadv,cdadv 5e16 e5b896 5e16 00005e16 a9ab a9ab a9ab a9ab a9ab a9ab a9ab -1454 a9ac a9ac a9ac * 4d2e * 8ea1cdae,cdae,8ea1cdaev,cdaev 5e15 e5b895 5e15 00005e15 a9ac a9ac a9ac a9ac a9ac a9ac a9ac -1455 a9ad a9ad a9ad * 4d2f * 8ea1cdaf,cdaf,8ea1cdafv,cdafv 5e1b e5b89b 5e1b 00005e1b a9ad a9ad a9ad a9ad a9ad a9ad a9ad -1456 a9ae a9ae a9ae * 4d30 * 8ea1cdb0,cdb0,8ea1cdb0v,cdb0v 5e11 e5b891 5e11 00005e11 a9ae a9ae a9ae a9ae a9ae a9ae a9ae -1457 a9af a9af a9af * 4d31 * 8ea1cdb1,cdb1,8ea1cdb1v,cdb1v 5e78 e5b9b8 5e78 00005e78 a9af a9af a9af a9af a9af a9af a9af -1458 a9b0 a9b0 a9b0 * 4d32 * 8ea1cdb2,cdb2,8ea1cdb2v,cdb2v 5e9a e5ba9a 5e9a 00005e9a a9b0 a9b0 a9b0 a9b0 a9b0 a9b0 a9b0 -1459 a9b1 a9b1 a9b1 * 4d33 * 8ea1cdb3,cdb3,8ea1cdb3v,cdb3v 5e97 e5ba97 5e97 00005e97 a9b1 a9b1 a9b1 a9b1 a9b1 a9b1 a9b1 -1460 a9b2 a9b2 a9b2 * 4d34 * 8ea1cdb4,cdb4,8ea1cdb4v,cdb4v 5e9c e5ba9c 5e9c 00005e9c a9b2 a9b2 a9b2 a9b2 a9b2 a9b2 a9b2 -1461 a9b3 a9b3 a9b3 * 4d35 * 8ea1cdb5,cdb5,8ea1cdb5v,cdb5v 5e95 e5ba95 5e95 00005e95 a9b3 a9b3 a9b3 a9b3 a9b3 a9b3 a9b3 -1462 a9b4 a9b4 a9b4 * 4d36 * 8ea1cdb6,cdb6,8ea1cdb6v,cdb6v 5e96 e5ba96 5e96 00005e96 a9b4 a9b4 a9b4 a9b4 a9b4 a9b4 a9b4 -1463 a9b5 a9b5 a9b5 * 4d37 * 8ea1cdb7,cdb7,8ea1cdb7v,cdb7v 5ef6 e5bbb6 5ef6 00005ef6 a9b5 a9b5 a9b5 a9b5 a9b5 a9b5 a9b5 -1464 a9b6 a9b6 a9b6 * 4d38 * 8ea1cdb8,cdb8,8ea1cdb8v,cdb8v 5f26 e5bca6 5f26 00005f26 a9b6 a9b6 a9b6 a9b6 a9b6 a9b6 a9b6 -1465 a9b7 a9b7 a9b7 * 4d39 * 8ea1cdb9,cdb9,8ea1cdb9v,cdb9v 5f27 e5bca7 5f27 00005f27 a9b7 a9b7 a9b7 a9b7 a9b7 a9b7 a9b7 -1466 a9b8 a9b8 a9b8 * 4d3a * 8ea1cdba,cdba,8ea1cdbav,cdbav 5f29 e5bca9 5f29 00005f29 a9b8 a9b8 a9b8 a9b8 a9b8 a9b8 a9b8 -1467 a9b9 a9b9 a9b9 * 4d3b * 8ea1cdbb,cdbb,8ea1cdbbv,cdbbv 5f80 e5be80 5f80 00005f80 a9b9 a9b9 a9b9 a9b9 a9b9 a9b9 a9b9 -1468 a9ba a9ba a9ba * 4d3c * 8ea1cdbc,cdbc,8ea1cdbcv,cdbcv 5f81 e5be81 5f81 00005f81 a9ba a9ba a9ba a9ba a9ba a9ba a9ba -1469 a9bb a9bb a9bb * 4d3d * 8ea1cdbd,cdbd,8ea1cdbdv,cdbdv 5f7f e5bdbf 5f7f 00005f7f a9bb a9bb a9bb a9bb a9bb a9bb a9bb -1470 a9bc a9bc a9bc * 4d3e * 8ea1cdbe,cdbe,8ea1cdbev,cdbev 5f7c e5bdbc 5f7c 00005f7c a9bc a9bc a9bc a9bc a9bc a9bc a9bc -1471 a9bd a9bd a9bd * 4d3f * 8ea1cdbf,cdbf,8ea1cdbfv,cdbfv 5fdd e5bf9d 5fdd 00005fdd a9bd a9bd a9bd a9bd a9bd a9bd a9bd -1472 a9be a9be a9be * 4d40 * 8ea1cdc0,cdc0,8ea1cdc0v,cdc0v 5fe0 e5bfa0 5fe0 00005fe0 a9be a9be a9be a9be a9be a9be a9be -1473 a9bf a9bf a9bf * 4d41 * 8ea1cdc1,cdc1,8ea1cdc1v,cdc1v 5ffd e5bfbd 5ffd 00005ffd a9bf a9bf a9bf a9bf a9bf a9bf a9bf -1474 a9c0 a9c0 a9c0 * 4d42 * 8ea1cdc2,cdc2,8ea1cdc2v,cdc2v 5ff5 e5bfb5 5ff5 00005ff5 a9c0 a9c0 a9c0 a9c0 a9c0 a9c0 a9c0 -1475 a9c1 a9c1 a9c1 * 4d43 * 8ea1cdc3,cdc3,8ea1cdc3v,cdc3v 5fff e5bfbf 5fff 00005fff a9c1 a9c1 a9c1 a9c1 a9c1 a9c1 a9c1 -1476 a9c2 a9c2 a9c2 * 4d44 * 8ea1cdc4,cdc4,8ea1cdc4v,cdc4v 600f e6808f 600f 0000600f a9c2 a9c2 a9c2 a9c2 a9c2 a9c2 a9c2 -1477 a9c3 a9c3 a9c3 * 4d45 * 8ea1cdc5,cdc5,8ea1cdc5v,cdc5v 6014 e68094 6014 00006014 a9c3 a9c3 a9c3 a9c3 a9c3 a9c3 a9c3 -1478 a9c4 a9c4 a9c4 * 4d46 * 8ea1cdc6,cdc6,8ea1cdc6v,cdc6v 602f e680af 602f 0000602f a9c4 a9c4 a9c4 a9c4 a9c4 a9c4 a9c4 -1479 a9c5 a9c5 a9c5 * 4d47 * 8ea1cdc7,cdc7,8ea1cdc7v,cdc7v 6035 e680b5 6035 00006035 a9c5 a9c5 a9c5 a9c5 a9c5 a9c5 a9c5 -1480 a9c6 a9c6 a9c6 * 4d48 * 8ea1cdc8,cdc8,8ea1cdc8v,cdc8v 6016 e68096 6016 00006016 a9c6 a9c6 a9c6 a9c6 a9c6 a9c6 a9c6 -1481 a9c7 a9c7 a9c7 * 4d49 * 8ea1cdc9,cdc9,8ea1cdc9v,cdc9v 602a e680aa 602a 0000602a a9c7 a9c7 a9c7 a9c7 a9c7 a9c7 a9c7 -1482 a9c8 a9c8 a9c8 * 4d4a * 8ea1cdca,cdca,8ea1cdcav,cdcav 6015 e68095 6015 00006015 a9c8 a9c8 a9c8 a9c8 a9c8 a9c8 a9c8 -1483 a9c9 a9c9 a9c9 * 4d4b * 8ea1cdcb,cdcb,8ea1cdcbv,cdcbv 6021 e680a1 6021 00006021 a9c9 a9c9 a9c9 a9c9 a9c9 a9c9 a9c9 -1484 a9ca a9ca a9ca * 4d4c * 8ea1cdcc,cdcc,8ea1cdccv,cdccv 6027 e680a7 6027 00006027 a9ca a9ca a9ca a9ca a9ca a9ca a9ca -1485 a9cb a9cb a9cb * 4d4d * 8ea1cdcd,cdcd,8ea1cdcdv,cdcdv 6029 e680a9 6029 00006029 a9cb a9cb a9cb a9cb a9cb a9cb a9cb -1486 a9cc a9cc a9cc * 4d4e * 8ea1cdce,cdce,8ea1cdcev,cdcev 602b e680ab 602b 0000602b a9cc a9cc a9cc a9cc a9cc a9cc a9cc -1487 a9cd a9cd a9cd * 4d4f * 8ea1cdcf,cdcf,8ea1cdcfv,cdcfv 601b e6809b 601b 0000601b a9cd a9cd a9cd a9cd a9cd a9cd a9cd -1488 a9ce a9ce a9ce * 4d50 * 8ea1cdd0,cdd0,8ea1cdd0v,cdd0v 6216 e68896 6216 00006216 a9ce a9ce a9ce a9ce a9ce a9ce a9ce -1489 a9cf a9cf a9cf * 4d51 * 8ea1cdd1,cdd1,8ea1cdd1v,cdd1v 6215 e68895 6215 00006215 a9cf a9cf a9cf a9cf a9cf a9cf a9cf -1490 a9d0 a9d0 a9d0 * 4d52 * 8ea1cdd2,cdd2,8ea1cdd2v,cdd2v 623f e688bf 623f 0000623f a9d0 a9d0 a9d0 a9d0 a9d0 a9d0 a9d0 -1491 a9d1 a9d1 a9d1 * 4d53 * 8ea1cdd3,cdd3,8ea1cdd3v,cdd3v 623e e688be 623e 0000623e a9d1 a9d1 a9d1 a9d1 a9d1 a9d1 a9d1 -1492 a9d2 a9d2 a9d2 * 4d54 * 8ea1cdd4,cdd4,8ea1cdd4v,cdd4v 6240 e68980 6240 00006240 a9d2 a9d2 a9d2 a9d2 a9d2 a9d2 a9d2 -1493 a9d3 a9d3 a9d3 * 4d55 * 8ea1cdd5,cdd5,8ea1cdd5v,cdd5v 627f e689bf 627f 0000627f a9d3 a9d3 a9d3 a9d3 a9d3 a9d3 a9d3 -1494 a9d4 a9d4 a9d4 * 4d56 * 8ea1cdd6,cdd6,8ea1cdd6v,cdd6v 62c9 e68b89 62c9 000062c9 a9d4 a9d4 a9d4 a9d4 a9d4 a9d4 a9d4 -1495 a9d5 a9d5 a9d5 * 4d57 * 8ea1cdd7,cdd7,8ea1cdd7v,cdd7v 62cc e68b8c 62cc 000062cc a9d5 a9d5 a9d5 a9d5 a9d5 a9d5 a9d5 -1496 a9d6 a9d6 a9d6 * 4d58 * 8ea1cdd8,cdd8,8ea1cdd8v,cdd8v 62c4 e68b84 62c4 000062c4 a9d6 a9d6 a9d6 a9d6 a9d6 a9d6 a9d6 -1497 a9d7 a9d7 a9d7 * 4d59 * 8ea1cdd9,cdd9,8ea1cdd9v,cdd9v 62bf e68abf 62bf 000062bf a9d7 a9d7 a9d7 a9d7 a9d7 a9d7 a9d7 -1498 a9d8 a9d8 a9d8 * 4d5a * 8ea1cdda,cdda,8ea1cddav,cddav 62c2 e68b82 62c2 000062c2 a9d8 a9d8 a9d8 a9d8 a9d8 a9d8 a9d8 -1499 a9d9 a9d9 a9d9 * 4d5b * 8ea1cddb,cddb,8ea1cddbv,cddbv 62b9 e68ab9 62b9 000062b9 a9d9 a9d9 a9d9 a9d9 a9d9 a9d9 a9d9 -1500 a9da a9da a9da * 4d5c * 8ea1cddc,cddc,8ea1cddcv,cddcv 62d2 e68b92 62d2 000062d2 a9da a9da a9da a9da a9da a9da a9da -1501 a9db a9db a9db * 4d5d * 8ea1cddd,cddd,8ea1cdddv,cdddv 62db e68b9b 62db 000062db a9db a9db a9db a9db a9db a9db a9db -1502 a9dc a9dc a9dc * 4d5e * 8ea1cdde,cdde,8ea1cddev,cddev 62ab e68aab 62ab 000062ab a9dc a9dc a9dc a9dc a9dc a9dc a9dc -1503 a9dd a9dd a9dd * 4d5f * 8ea1cddf,cddf,8ea1cddfv,cddfv 62d3 e68b93 62d3 000062d3 a9dd a9dd a9dd a9dd a9dd a9dd a9dd -1504 a9de a9de a9de * 4d60 * 8ea1cde0,cde0,8ea1cde0v,cde0v 62d4 e68b94 62d4 000062d4 a9de a9de a9de a9de a9de a9de a9de -1505 a9df a9df a9df * 4d61 * 8ea1cde1,cde1,8ea1cde1v,cde1v 62cb e68b8b 62cb 000062cb a9df a9df a9df a9df a9df a9df a9df -1506 a9e0 a9e0 a9e0 * 4d62 * 8ea1cde2,cde2,8ea1cde2v,cde2v 62c8 e68b88 62c8 000062c8 a9e0 a9e0 a9e0 a9e0 a9e0 a9e0 a9e0 -1507 a9e1 a9e1 a9e1 * 4d63 * 8ea1cde3,cde3,8ea1cde3v,cde3v 62a8 e68aa8 62a8 000062a8 a9e1 a9e1 a9e1 a9e1 a9e1 a9e1 a9e1 -1508 a9e2 a9e2 a9e2 * 4d64 * 8ea1cde4,cde4,8ea1cde4v,cde4v 62bd e68abd 62bd 000062bd a9e2 a9e2 a9e2 a9e2 a9e2 a9e2 a9e2 -1509 a9e3 a9e3 a9e3 * 4d65 * 8ea1cde5,cde5,8ea1cde5v,cde5v 62bc e68abc 62bc 000062bc a9e3 a9e3 a9e3 a9e3 a9e3 a9e3 a9e3 -1510 a9e4 a9e4 a9e4 * 4d66 * 8ea1cde6,cde6,8ea1cde6v,cde6v 62d0 e68b90,eeb2a6 62d0,eca6 000062d0,0000eca6 9dc4,a9e4 a9e4 a9e4 a9e4 a9e4 a9e4 9dc4,a9e4 -1511 a9e5 a9e5 a9e5 * 4d67 * 8ea1cde7,cde7,8ea1cde7v,cde7v 62d9 e68b99 62d9 000062d9 a9e5 a9e5 a9e5 a9e5 a9e5 a9e5 a9e5 -1512 a9e6 a9e6 a9e6 * 4d68 * 8ea1cde8,cde8,8ea1cde8v,cde8v 62c7 e68b87 62c7 000062c7 a9e6 a9e6 a9e6 a9e6 a9e6 a9e6 a9e6 -1513 a9e7 a9e7 a9e7 * 4d69 * 8ea1cde9,cde9,8ea1cde9v,cde9v 62cd e68b8d 62cd 000062cd a9e7 a9e7 a9e7 a9e7 a9e7 a9e7 a9e7 -1514 a9e8 a9e8 a9e8 * 4d6a * 8ea1cdea,cdea,8ea1cdeav,cdeav 62b5 e68ab5 62b5 000062b5 a9e8 a9e8 a9e8 a9e8 a9e8 a9e8 a9e8 -1515 a9e9 a9e9 a9e9 * 4d6b * 8ea1cdeb,cdeb,8ea1cdebv,cdebv 62da e68b9a 62da 000062da a9e9 a9e9 a9e9 a9e9 a9e9 a9e9 a9e9 -1516 a9ea a9ea a9ea * 4d6c * 8ea1cdec,cdec,8ea1cdecv,cdecv 62b1 e68ab1 62b1 000062b1 a9ea a9ea a9ea a9ea a9ea a9ea a9ea -1517 a9eb a9eb a9eb * 4d6d * 8ea1cded,cded,8ea1cdedv,cdedv 62d8 e68b98 62d8 000062d8 a9eb a9eb a9eb a9eb a9eb a9eb a9eb -1518 a9ec a9ec a9ec * 4d6e * 8ea1cdee,cdee,8ea1cdeev,cdeev 62d6 e68b96 62d6 000062d6 a9ec a9ec a9ec a9ec a9ec a9ec a9ec -1519 a9ed a9ed a9ed * 4d6f * 8ea1cdef,cdef,8ea1cdefv,cdefv 62d7 e68b97 62d7 000062d7 a9ed a9ed a9ed a9ed a9ed a9ed a9ed -1520 a9ee a9ee a9ee * 4d70 * 8ea1cdf0,cdf0,8ea1cdf0v,cdf0v 62c6 e68b86 62c6 000062c6 a9ee a9ee a9ee a9ee a9ee a9ee a9ee -1521 a9ef a9ef a9ef * 4d71 * 8ea1cdf1,cdf1,8ea1cdf1v,cdf1v 62ac e68aac 62ac 000062ac a9ef a9ef a9ef a9ef a9ef a9ef a9ef -1522 a9f0 a9f0 a9f0 * 4d72 * 8ea1cdf2,cdf2,8ea1cdf2v,cdf2v 62ce e68b8e,eeb992 62ce,ee52 000062ce,0000ee52 a077,a9f0 a9f0 a9f0 a9f0 a9f0 a9f0 a077,a9f0 -1523 a9f1 a9f1 a9f1 * 4d73 * 8ea1cdf3,cdf3,8ea1cdf3v,cdf3v 653e e694be 653e 0000653e a9f1 a9f1 a9f1 a9f1 a9f1 a9f1 a9f1 -1524 a9f2 a9f2 a9f2 * 4d74 * 8ea1cdf4,cdf4,8ea1cdf4v,cdf4v 65a7 e696a7 65a7 000065a7 a9f2 a9f2 a9f2 a9f2 a9f2 a9f2 a9f2 -1525 a9f3 a9f3 a9f3 * 4d75 * 8ea1cdf5,cdf5,8ea1cdf5v,cdf5v 65bc e696bc 65bc 000065bc a9f3 a9f3 a9f3 a9f3 a9f3 a9f3 a9f3 -1526 a9f4 a9f4 a9f4 * 4d76 * 8ea1cdf6,cdf6,8ea1cdf6v,cdf6v 65fa e697ba 65fa 000065fa a9f4 a9f4 a9f4 a9f4 a9f4 a9f4 a9f4 -1527 a9f5 a9f5 a9f5 * 4d77 * 8ea1cdf7,cdf7,8ea1cdf7v,cdf7v 6614 e69894 6614 00006614 a9f5 a9f5 a9f5 a9f5 a9f5 a9f5 a9f5 -1528 a9f6 a9f6 a9f6 * 4d78 * 8ea1cdf8,cdf8,8ea1cdf8v,cdf8v 6613 e69893 6613 00006613 a9f6 a9f6 a9f6 a9f6 a9f6 a9f6 a9f6 -1529 a9f7 a9f7 a9f7 * 4d79 * 8ea1cdf9,cdf9,8ea1cdf9v,cdf9v 660c e6988c 660c 0000660c a9f7 a9f7 a9f7 a9f7 a9f7 a9f7 a9f7 -1530 a9f8 a9f8 a9f8 * 4d7a * 8ea1cdfa,cdfa,8ea1cdfav,cdfav 6606 e69886 6606 00006606 a9f8 a9f8 a9f8 a9f8 a9f8 a9f8 a9f8 -1531 a9f9 a9f9 a9f9 * 4d7b * 8ea1cdfb,cdfb,8ea1cdfbv,cdfbv 6602 e69882 6602 00006602 a9f9 a9f9 a9f9 a9f9 a9f9 a9f9 a9f9 -1532 a9fa a9fa a9fa * 4d7c * 8ea1cdfc,cdfc,8ea1cdfcv,cdfcv 660e e6988e 660e 0000660e a9fa a9fa a9fa a9fa a9fa a9fa a9fa -1533 a9fb a9fb a9fb * 4d7d * 8ea1cdfd,cdfd,8ea1cdfdv,cdfdv 6600 e69880 6600 00006600 a9fb a9fb a9fb a9fb a9fb a9fb a9fb -1534 a9fc a9fc a9fc * 4d7e * 8ea1cdfe,cdfe,8ea1cdfev,cdfev 660f e6988f 660f 0000660f a9fc a9fc a9fc a9fc a9fc a9fc a9fc -1535 a9fd a9fd a9fd * 4e21 * 8ea1cea1,cea1,8ea1cea1v,cea1v 6615 e69895 6615 00006615 a9fd a9fd a9fd a9fd a9fd a9fd a9fd -1536 a9fe a9fe a9fe * 4e22 * 8ea1cea2,cea2,8ea1cea2v,cea2v 660a e6988a 660a 0000660a a9fe a9fe a9fe a9fe a9fe a9fe a9fe -1537 aa40 aa40 aa40 * 4e23 * 8ea1cea3,cea3,8ea1cea3v,cea3v 6607 e69887 6607 00006607 aa40 aa40 aa40 aa40 aa40 aa40 aa40 -1538 aa41 aa41 aa41 * 4e24 * 8ea1cea4,cea4,8ea1cea4v,cea4v 670d e69c8d 670d 0000670d aa41 aa41 aa41 aa41 aa41 aa41 aa41 -1539 aa42 aa42 aa42 * 4e25 * 8ea1cea5,cea5,8ea1cea5v,cea5v 670b e69c8b 670b 0000670b aa42 aa42 aa42 aa42 aa42 aa42 aa42 -1540 aa43 aa43 aa43 * 4e26 * 8ea1cea6,cea6,8ea1cea6v,cea6v 676d e69dad 676d 0000676d aa43 aa43 aa43 aa43 aa43 aa43 aa43 -1541 aa44 aa44 aa44 * 4e27 * 8ea1cea7,cea7,8ea1cea7v,cea7v 678b e69e8b 678b 0000678b aa44 aa44 aa44 aa44 aa44 aa44 aa44 -1542 aa45 aa45 aa45 * 4e28 * 8ea1cea8,cea8,8ea1cea8v,cea8v 6795 e69e95 6795 00006795 aa45 aa45 aa45 aa45 aa45 aa45 aa45 -1543 aa46 aa46 aa46 * 4e29 * 8ea1cea9,cea9,8ea1cea9v,cea9v 6771 e69db1 6771 00006771 aa46 aa46 aa46 aa46 aa46 aa46 aa46 -1544 aa47 aa47 aa47 * 4e2a * 8ea1ceaa,ceaa,8ea1ceaav,ceaav 679c e69e9c 679c 0000679c aa47 aa47 aa47 aa47 aa47 aa47 aa47 -1545 aa48 aa48 aa48 * 4e2b * 8ea1ceab,ceab,8ea1ceabv,ceabv 6773 e69db3 6773 00006773 aa48 aa48 aa48 aa48 aa48 aa48 aa48 -1546 aa49 aa49 aa49 * 4e2c * 8ea1ceac,ceac,8ea1ceacv,ceacv 6777 e69db7 6777 00006777 aa49 aa49 aa49 aa49 aa49 aa49 aa49 -1547 aa4a aa4a aa4a * 4e2d * 8ea1cead,cead,8ea1ceadv,ceadv 6787 e69e87 6787 00006787 aa4a aa4a aa4a aa4a aa4a aa4a aa4a -1548 aa4b aa4b aa4b * 4e2e * 8ea1ceae,ceae,8ea1ceaev,ceaev 679d e69e9d 679d 0000679d aa4b aa4b aa4b aa4b aa4b aa4b aa4b -1549 aa4c aa4c aa4c * 4e2f * 8ea1ceaf,ceaf,8ea1ceafv,ceafv 6797 e69e97 6797 00006797 aa4c aa4c aa4c aa4c aa4c aa4c aa4c -1550 aa4d aa4d aa4d * 4e30 * 8ea1ceb0,ceb0,8ea1ceb0v,ceb0v 676f e69daf 676f 0000676f aa4d aa4d aa4d aa4d aa4d aa4d aa4d -1551 aa4e aa4e aa4e * 4e31 * 8ea1ceb1,ceb1,8ea1ceb1v,ceb1v 6770 e69db0 6770 00006770 aa4e aa4e aa4e aa4e aa4e aa4e aa4e -1552 aa4f aa4f aa4f * 4e32 * 8ea1ceb2,ceb2,8ea1ceb2v,ceb2v 677f e69dbf 677f 0000677f aa4f aa4f aa4f aa4f aa4f aa4f aa4f -1553 aa50 aa50 aa50 * 4e33 * 8ea1ceb3,ceb3,8ea1ceb3v,ceb3v 6789 e69e89 6789 00006789 aa50 aa50 aa50 aa50 aa50 aa50 aa50 -1554 aa51 aa51 aa51 * 4e34 * 8ea1ceb4,ceb4,8ea1ceb4v,ceb4v 677e e69dbe 677e 0000677e aa51 aa51 aa51 aa51 aa51 aa51 aa51 -1555 aa52 aa52 aa52 * 4e35 * 8ea1ceb5,ceb5,8ea1ceb5v,ceb5v 6790 e69e90 6790 00006790 aa52 aa52 aa52 aa52 aa52 aa52 aa52 -1556 aa53 aa53 aa53 * 4e36 * 8ea1ceb6,ceb6,8ea1ceb6v,ceb6v 6775 e69db5 6775 00006775 aa53 aa53 aa53 aa53 aa53 aa53 aa53 -1557 aa54 aa54 aa54 * 4e37 * 8ea1ceb7,ceb7,8ea1ceb7v,ceb7v 679a e69e9a 679a 0000679a aa54 aa54 aa54 aa54 aa54 aa54 aa54 -1558 aa55 aa55 aa55 * 4e38 * 8ea1ceb8,ceb8,8ea1ceb8v,ceb8v 6793 e69e93 6793 00006793 aa55 aa55 aa55 aa55 aa55 aa55 aa55 -1559 aa56 aa56 aa56 * 4e39 * 8ea1ceb9,ceb9,8ea1ceb9v,ceb9v 677c e69dbc 677c 0000677c aa56 aa56 aa56 aa56 aa56 aa56 aa56 -1560 aa57 aa57 aa57 * 4e3a * 8ea1ceba,ceba,8ea1cebav,cebav 676a e69daa 676a 0000676a aa57 aa57 aa57 aa57 aa57 aa57 aa57 -1561 aa58 aa58 aa58 * 4e3b * 8ea1cebb,cebb,8ea1cebbv,cebbv 6772 e69db2 6772 00006772 aa58 aa58,fcb0 9061,aa58 aa58 aa58 aa58 aa58 -1562 aa59 aa59 aa59 * 4e3c * 8ea1cebc,cebc,8ea1cebcv,cebcv 6b23 e6aca3 6b23 00006b23 aa59 aa59 aa59 aa59 aa59 aa59 aa59 -1563 aa5a aa5a aa5a * 4e3d * 8ea1cebd,cebd,8ea1cebdv,cebdv 6b66 e6ada6 6b66 00006b66 aa5a aa5a aa5a aa5a aa5a aa5a aa5a -1564 aa5b aa5b aa5b * 4e3e * 8ea1cebe,cebe,8ea1cebev,cebev 6b67 e6ada7 6b67 00006b67 aa5b aa5b 9265,aa5b aa5b aa5b aa5b aa5b -1565 aa5c aa5c aa5c * 4e3f * 8ea1cebf,cebf,8ea1cebfv,cebfv 6b7f e6adbf 6b7f 00006b7f aa5c aa5c aa5c aa5c aa5c aa5c aa5c -1566 aa5d aa5d aa5d * 4e40 * 8ea1cec0,cec0,8ea1cec0v,cec0v 6c13 e6b093 6c13 00006c13 aa5d aa5d aa5d aa5d aa5d aa5d aa5d -1567 aa5e aa5e aa5e * 4e41 * 8ea1cec1,cec1,8ea1cec1v,cec1v 6c1b e6b09b 6c1b 00006c1b aa5e aa5e aa5e aa5e aa5e aa5e aa5e -1568 aa5f aa5f aa5f * 4e42 * 8ea1cec2,cec2,8ea1cec2v,cec2v 6ce3 e6b3a3 6ce3 00006ce3 aa5f aa5f aa5f aa5f aa5f aa5f aa5f -1569 aa60 aa60 aa60 * 4e43 * 8ea1cec3,cec3,8ea1cec3v,cec3v 6ce8 e6b3a8 6ce8 00006ce8 aa60 aa60 aa60 aa60 aa60 aa60 aa60 -1570 aa61 aa61 aa61 * 4e44 * 8ea1cec4,cec4,8ea1cec4v,cec4v 6cf3 e6b3b3 6cf3 00006cf3 aa61 aa61 aa61 aa61 aa61 aa61 aa61 -1571 aa62 aa62 aa62 * 4e45 * 8ea1cec5,cec5,8ea1cec5v,cec5v 6cb1 e6b2b1 6cb1 00006cb1 aa62 aa62 aa62 aa62 aa62 aa62 aa62 -1572 aa63 aa63 aa63 * 4e46 * 8ea1cec6,cec6,8ea1cec6v,cec6v 6ccc e6b38c 6ccc 00006ccc aa63 aa63 aa63 aa63 aa63 aa63 aa63 -1573 aa64 aa64 aa64 * 4e47 * 8ea1cec7,cec7,8ea1cec7v,cec7v 6ce5 e6b3a5 6ce5 00006ce5 aa64 aa64 aa64 aa64 aa64 aa64 aa64 -1574 aa65 aa65 aa65 * 4e48 * 8ea1cec8,cec8,8ea1cec8v,cec8v 6cb3 e6b2b3 6cb3 00006cb3 aa65 aa65 aa65 aa65 aa65 aa65 aa65 -1575 aa66 aa66 aa66 * 4e49 * 8ea1cec9,cec9,8ea1cec9v,cec9v 6cbd e6b2bd 6cbd 00006cbd aa66 aa66 aa66 aa66 aa66 aa66 aa66 -1576 aa67 aa67 aa67 * 4e4a * 8ea1ceca,ceca,8ea1cecav,cecav 6cbe e6b2be 6cbe 00006cbe aa67 aa67 aa67 aa67 aa67 aa67 aa67 -1577 aa68 aa68 aa68 * 4e4b * 8ea1cecb,cecb,8ea1cecbv,cecbv 6cbc e6b2bc 6cbc 00006cbc aa68 aa68 aa68 aa68 aa68 aa68 aa68 -1578 aa69 aa69 aa69 * 4e4c * 8ea1cecc,cecc,8ea1ceccv,ceccv 6ce2 e6b3a2 6ce2 00006ce2 aa69 aa69 aa69 aa69 aa69 aa69 aa69 -1579 aa6a aa6a aa6a * 4e4d * 8ea1cecd,cecd,8ea1cecdv,cecdv 6cab e6b2ab 6cab 00006cab aa6a aa6a aa6a aa6a aa6a aa6a aa6a -1580 aa6b aa6b aa6b * 4e4e * 8ea1cece,cece,8ea1cecev,cecev 6cd5 e6b395 6cd5 00006cd5 aa6b aa6b aa6b aa6b aa6b aa6b aa6b -1581 aa6c aa6c aa6c * 4e4f * 8ea1cecf,cecf,8ea1cecfv,cecfv 6cd3 e6b393 6cd3 00006cd3 aa6c aa6c aa6c aa6c aa6c aa6c aa6c -1582 aa6d aa6d aa6d * 4e50 * 8ea1ced0,ced0,8ea1ced0v,ced0v 6cb8 e6b2b8 6cb8 00006cb8 aa6d aa6d aa6d aa6d aa6d aa6d aa6d -1583 aa6e aa6e aa6e * 4e51 * 8ea1ced1,ced1,8ea1ced1v,ced1v 6cc4 e6b384 6cc4 00006cc4 aa6e aa6e aa6e aa6e aa6e aa6e aa6e -1584 aa6f aa6f aa6f * 4e52 * 8ea1ced2,ced2,8ea1ced2v,ced2v 6cb9 e6b2b9 6cb9 00006cb9 aa6f aa6f aa6f aa6f aa6f aa6f aa6f -1585 aa70 aa70 aa70 * 4e53 * 8ea1ced3,ced3,8ea1ced3v,ced3v 6cc1 e6b381 6cc1 00006cc1 aa70 aa70 aa70 aa70 aa70 aa70 aa70 -1586 aa71 aa71 aa71 * 4e54 * 8ea1ced4,ced4,8ea1ced4v,ced4v 6cae e6b2ae 6cae 00006cae aa71 aa71 aa71 aa71 aa71 aa71 aa71 -1587 aa72 aa72 aa72 * 4e55 * 8ea1ced5,ced5,8ea1ced5v,ced5v 6cd7 e6b397 6cd7 00006cd7 aa72 aa72 aa72 aa72 aa72 aa72 aa72 -1588 aa73 aa73 aa73 * 4e56 * 8ea1ced6,ced6,8ea1ced6v,ced6v 6cc5 e6b385 6cc5 00006cc5 aa73 aa73 aa73 aa73 aa73 aa73 aa73 -1589 aa74 aa74 aa74 * 4e57 * 8ea1ced7,ced7,8ea1ced7v,ced7v 6cf1 e6b3b1 6cf1 00006cf1 aa74 aa74 aa74 aa74 aa74 aa74 aa74 -1590 aa75 aa75 aa75 * 4e58 * 8ea1ced8,ced8,8ea1ced8v,ced8v 6cbf e6b2bf 6cbf 00006cbf aa75 aa75 aa75 aa75 aa75 aa75 aa75 -1591 aa76 aa76 aa76 * 4e59 * 8ea1ced9,ced9,8ea1ced9v,ced9v 6cbb e6b2bb 6cbb 00006cbb aa76 aa76 aa76 aa76 aa76 aa76 aa76 -1592 aa77 aa77 aa77 * 4e5a * 8ea1ceda,ceda,8ea1cedav,cedav 6ce1 e6b3a1 6ce1 00006ce1 aa77 aa77 aa77 aa77 aa77 aa77 aa77 -1593 aa78 aa78 aa78 * 4e5b * 8ea1cedb,cedb,8ea1cedbv,cedbv 6cdb e6b39b 6cdb 00006cdb aa78 aa78 aa78 aa78 aa78 aa78 aa78 -1594 aa79 aa79 aa79 * 4e5c * 8ea1cedc,cedc,8ea1cedcv,cedcv 6cca e6b38a 6cca 00006cca aa79 aa79 aa79 aa79 aa79 aa79 aa79 -1595 aa7a aa7a aa7a * 4e5d * 8ea1cedd,cedd,8ea1ceddv,ceddv 6cac e6b2ac 6cac 00006cac aa7a aa7a aa7a aa7a aa7a aa7a aa7a -1596 aa7b aa7b aa7b * 4e5e * 8ea1cede,cede,8ea1cedev,cedev 6cef e6b3af 6cef 00006cef aa7b aa7b aa7b aa7b aa7b aa7b aa7b -1597 aa7c aa7c aa7c * 4e5f * 8ea1cedf,cedf,8ea1cedfv,cedfv 6cdc e6b39c 6cdc 00006cdc aa7c aa7c aa7c aa7c aa7c aa7c aa7c -1598 aa7d aa7d aa7d * 4e60 * 8ea1cee0,cee0,8ea1cee0v,cee0v 6cd6 e6b396 6cd6 00006cd6 aa7d aa7d aa7d aa7d aa7d aa7d aa7d -1599 aa7e aa7e aa7e * 4e61 * 8ea1cee1,cee1,8ea1cee1v,cee1v 6ce0 e6b3a0 6ce0 00006ce0 aa7e aa7e aa7e aa7e aa7e aa7e aa7e -1600 aaa1 aaa1 aaa1 * 4e62 * 8ea1cee2,cee2,8ea1cee2v,cee2v 7095 e78295 7095 00007095 aaa1 aaa1 aaa1 aaa1 aaa1 aaa1 aaa1 -1601 aaa2 aaa2 aaa2 * 4e63 * 8ea1cee3,cee3,8ea1cee3v,cee3v 708e e7828e 708e 0000708e aaa2 aaa2 aaa2 aaa2 aaa2 aaa2 aaa2 -1602 aaa3 aaa3 aaa3 * 4e64 * 8ea1cee4,cee4,8ea1cee4v,cee4v 7092 e78292 7092 00007092 aaa3 aaa3 aaa3 aaa3 aaa3 aaa3 aaa3 -1603 aaa4 aaa4 aaa4 * 4e65 * 8ea1cee5,cee5,8ea1cee5v,cee5v 708a e7828a 708a 0000708a aaa4 aaa4 aaa4 aaa4 aaa4 aaa4 aaa4 -1604 aaa5 aaa5 aaa5 * 4e66 * 8ea1cee6,cee6,8ea1cee6v,cee6v 7099 e78299 7099 00007099 aaa5 aaa5 aaa5 aaa5 aaa5 aaa5 aaa5 -1605 aaa6 aaa6 aaa6 * 4e67 * 8ea1cee7,cee7,8ea1cee7v,cee7v 722c e788ac 722c 0000722c aaa6 aaa6 aaa6 aaa6 aaa6 aaa6 aaa6 -1606 aaa7 aaa7 aaa7 * 4e68 * 8ea1cee8,cee8,8ea1cee8v,cee8v 722d e788ad 722d 0000722d aaa7 aaa7 aaa7 aaa7 aaa7 aaa7 aaa7 -1607 aaa8 aaa8 aaa8 * 4e69 * 8ea1cee9,cee9,8ea1cee9v,cee9v 7238 e788b8 7238 00007238 aaa8 aaa8 aaa8 aaa8 aaa8 aaa8 aaa8 -1608 aaa9 aaa9 aaa9 * 4e6a * 8ea1ceea,ceea,8ea1ceeav,ceeav 7248 e78988 7248 00007248 aaa9 aaa9 aaa9 aaa9 aaa9 aaa9 aaa9 -1609 aaaa aaaa aaaa * 4e6b * 8ea1ceeb,ceeb,8ea1ceebv,ceebv 7267 e789a7 7267 00007267 aaaa aaaa aaaa aaaa aaaa aaaa aaaa -1610 aaab aaab aaab * 4e6c * 8ea1ceec,ceec,8ea1ceecv,ceecv 7269 e789a9 7269 00007269 aaab aaab aaab aaab aaab aaab aaab -1611 aaac aaac aaac * 4e6d * 8ea1ceed,ceed,8ea1ceedv,ceedv 72c0 e78b80 72c0 000072c0 aaac aaac aaac aaac aaac aaac aaac -1612 aaad aaad aaad * 4e6e * 8ea1ceee,ceee,8ea1ceeev,ceeev 72ce e78b8e 72ce 000072ce aaad aaad aaad aaad aaad aaad aaad -1613 aaae aaae aaae * 4e6f * 8ea1ceef,ceef,8ea1ceefv,ceefv 72d9 e78b99 72d9 000072d9 aaae aaae aaae aaae aaae aaae aaae -1614 aaaf aaaf aaaf * 4e70 * 8ea1cef0,cef0,8ea1cef0v,cef0v 72d7 e78b97 72d7 000072d7 aaaf aaaf aaaf aaaf aaaf aaaf aaaf -1615 aab0 aab0 aab0 * 4e71 * 8ea1cef1,cef1,8ea1cef1v,cef1v 72d0 e78b90 72d0 000072d0 aab0 aab0 aab0 aab0 aab0 aab0 aab0 -1616 aab1 aab1 aab1 * 4e72 * 8ea1cef2,cef2,8ea1cef2v,cef2v 73a9 e78ea9 73a9 000073a9 aab1 aab1 aab1 aab1 aab1 aab1 aab1 -1617 aab2 aab2 aab2 * 4e73 * 8ea1cef3,cef3,8ea1cef3v,cef3v 73a8 e78ea8 73a8 000073a8 aab2 aab2 aab2 aab2 aab2 aab2 aab2 -1618 aab3 aab3 aab3 * 4e74 * 8ea1cef4,cef4,8ea1cef4v,cef4v 739f e78e9f 739f 0000739f aab3 aab3 aab3 aab3 aab3 aab3 aab3 -1619 aab4 aab4 aab4 * 4e75 * 8ea1cef5,cef5,8ea1cef5v,cef5v 73ab e78eab 73ab 000073ab aab4 aab4 aab4 aab4 aab4 aab4 aab4 -1620 aab5 aab5 aab5 * 4e76 * 8ea1cef6,cef6,8ea1cef6v,cef6v 73a5 e78ea5 73a5 000073a5 aab5 aab5 aab5 aab5 aab5 aab5 aab5 -1621 aab6 aab6 aab6 * 4e77 * 8ea1cef7,cef7,8ea1cef7v,cef7v 753d e794bd 753d 0000753d aab6 aab6 aab6 aab6 aab6 aab6 aab6 -1622 aab7 aab7 aab7 * 4e78 * 8ea1cef8,cef8,8ea1cef8v,cef8v 759d e7969d 759d 0000759d aab7 aab7 aab7 aab7 aab7 aab7 aab7 -1623 aab8 aab8 aab8 * 4e79 * 8ea1cef9,cef9,8ea1cef9v,cef9v 7599 e79699 7599 00007599 aab8 aab8 aab8 aab8 aab8 aab8 aab8 -1624 aab9 aab9 aab9 * 4e7a * 8ea1cefa,cefa,8ea1cefav,cefav 759a e7969a 759a 0000759a aab9 aab9 aab9 aab9 aab9 aab9 aab9 -1625 aaba aaba aaba * 4e7b * 8ea1cefb,cefb,8ea1cefbv,cefbv 7684 e79a84 7684 00007684 aaba aaba aaba aaba aaba aaba aaba -1626 aabb aabb aabb * 4e7c * 8ea1cefc,cefc,8ea1cefcv,cefcv 76c2 e79b82 76c2 000076c2 aabb aabb aabb aabb aabb aabb aabb -1627 aabc aabc aabc * 4e7d * 8ea1cefd,cefd,8ea1cefdv,cefdv 76f2 e79bb2 76f2 000076f2 aabc aabc aabc aabc aabc aabc aabc -1628 aabd aabd aabd * 4e7e * 8ea1cefe,cefe,8ea1cefev,cefev 76f4 e79bb4 76f4 000076f4 aabd aabd aabd aabd aabd aabd aabd -1629 aabe aabe aabe * 4f21 * 8ea1cfa1,cfa1,8ea1cfa1v,cfa1v 77e5 e79fa5 77e5 000077e5 aabe aabe aabe aabe aabe aabe aabe -1630 aabf aabf aabf * 4f22 * 8ea1cfa2,cfa2,8ea1cfa2v,cfa2v 77fd e79fbd 77fd 000077fd aabf aabf aabf aabf aabf aabf aabf -1631 aac0 aac0 aac0 * 4f23 * 8ea1cfa3,cfa3,8ea1cfa3v,cfa3v 793e e7a4be 793e 0000793e aac0 aac0 aac0 aac0 aac0 aac0 aac0 -1632 aac1 aac1 aac1 * 4f24 * 8ea1cfa4,cfa4,8ea1cfa4v,cfa4v 7940 e7a580 7940 00007940 aac1 aac1 aac1 aac1 aac1 aac1 aac1 -1633 aac2 aac2 aac2 * 4f25 * 8ea1cfa5,cfa5,8ea1cfa5v,cfa5v 7941 e7a581 7941 00007941 aac2 aac2 aac2 aac2 aac2 aac2 aac2 -1634 aac3 aac3 aac3 * 4f26 * 8ea1cfa6,cfa6,8ea1cfa6v,cfa6v 79c9 e7a789 79c9 000079c9 aac3 aac3 aac3 aac3 aac3 aac3 aac3 -1635 aac4 aac4 aac4 * 4f27 * 8ea1cfa7,cfa7,8ea1cfa7v,cfa7v 79c8 e7a788 79c8 000079c8 aac4 aac4 aac4 aac4 aac4 aac4 aac4 -1636 aac5 aac5 aac5 * 4f28 * 8ea1cfa8,cfa8,8ea1cfa8v,cfa8v 7a7a e7a9ba 7a7a 00007a7a aac5 aac5 aac5 aac5 aac5 aac5 aac5 -1637 aac6 aac6 aac6 * 4f29 * 8ea1cfa9,cfa9,8ea1cfa9v,cfa9v 7a79 e7a9b9 7a79 00007a79 aac6 aac6 aac6 aac6 aac6 aac6 aac6 -1638 aac7 aac7 aac7 * 4f2a * 8ea1cfaa,cfaa,8ea1cfaav,cfaav 7afa e7abba 7afa 00007afa aac7 aac7 aac7 aac7 aac7 aac7 aac7 -1639 aac8 aac8 aac8 * 4f2b * 8ea1cfab,cfab,8ea1cfabv,cfabv 7cfe e7b3be 7cfe 00007cfe aac8 aac8 aac8 aac8 aac8 aac8 aac8 -1640 aac9 aac9 aac9 * 4f2c * 8ea1cfac,cfac,8ea1cfacv,cfacv 7f54 e7bd94 7f54 00007f54 aac9 aac9 aac9 aac9 aac9 aac9 aac9 -1641 aaca aaca aaca * 4f2d * 8ea1cfad,cfad,8ea1cfadv,cfadv 7f8c e7be8c 7f8c 00007f8c aaca aaca aaca aaca aaca aaca aaca -1642 aacb aacb aacb * 4f2e * 8ea1cfae,cfae,8ea1cfaev,cfaev 7f8b e7be8b 7f8b 00007f8b aacb aacb aacb aacb aacb aacb aacb -1643 aacc aacc aacc * 4f2f * 8ea1cfaf,cfaf,8ea1cfafv,cfafv 8005 e88085,ee8dbc 8005,e37c 00008005,0000e37c 8ecd,aacc aacc aacc aacc aacc aacc 8ecd,aacc -1644 aacd aacd aacd * 4f30 * 8ea1cfb0,cfb0,8ea1cfb0v,cfb0v 80ba e882ba 80ba 000080ba aacd aacd aacd aacd aacd aacd aacd -1645 aace aace aace * 4f31 * 8ea1cfb1,cfb1,8ea1cfb1v,cfb1v 80a5 e882a5 80a5 000080a5 aace aace aace aace aace aace aace -1646 aacf aacf aacf * 4f32 * 8ea1cfb2,cfb2,8ea1cfb2v,cfb2v 80a2 e882a2 80a2 000080a2 aacf aacf aacf aacf aacf aacf aacf -1647 aad0 aad0 aad0 * 4f33 * 8ea1cfb3,cfb3,8ea1cfb3v,cfb3v 80b1 e882b1 80b1 000080b1 aad0 aad0 aad0 aad0 aad0 aad0 aad0 -1648 aad1 aad1 aad1 * 4f34 * 8ea1cfb4,cfb4,8ea1cfb4v,cfb4v 80a1 e882a1 80a1 000080a1 aad1 aad1 aad1 aad1 aad1 aad1 aad1 -1649 aad2 aad2 aad2 * 4f35 * 8ea1cfb5,cfb5,8ea1cfb5v,cfb5v 80ab e882ab 80ab 000080ab aad2 aad2 aad2 aad2 aad2 aad2 aad2 -1650 aad3 aad3 aad3 * 4f36 * 8ea1cfb6,cfb6,8ea1cfb6v,cfb6v 80a9 e882a9 80a9 000080a9 aad3 aad3 aad3 aad3 aad3 aad3 aad3 -1651 aad4 aad4 aad4 * 4f37 * 8ea1cfb7,cfb7,8ea1cfb7v,cfb7v 80b4 e882b4 80b4 000080b4 aad4 aad4 aad4 aad4 aad4 aad4 aad4 -1652 aad5 aad5 aad5 * 4f38 * 8ea1cfb8,cfb8,8ea1cfb8v,cfb8v 80aa e882aa 80aa 000080aa aad5 aad5 aad5 aad5 aad5 aad5 aad5 -1653 aad6 aad6 aad6 * 4f39 * 8ea1cfb9,cfb9,8ea1cfb9v,cfb9v 80af e882af 80af 000080af aad6 aad6 aad6 aad6 aad6 aad6 aad6 -1654 aad7 aad7 aad7 * 4f3a * 8ea1cfba,cfba,8ea1cfbav,cfbav 81e5 e887a5 81e5 000081e5 aad7 aad7 aad7 aad7 aad7 aad7 aad7 -1655 aad8 aad8 aad8 * 4f3b * 8ea1cfbb,cfbb,8ea1cfbbv,cfbbv 81fe e887be 81fe 000081fe aad8 aad8 aad8 aad8 aad8 aad8 aad8 -1656 aad9 aad9 aad9 * 4f3c * 8ea1cfbc,cfbc,8ea1cfbcv,cfbcv 820d e8888d 820d 0000820d aad9 aad9 aad9 aad9 aad9 aad9 aad9 -1657 aada aada aada * 4f3d * 8ea1cfbd,cfbd,8ea1cfbdv,cfbdv 82b3 e88ab3 82b3 000082b3 aada aada aada aada aada aada aada -1658 aadb aadb aadb * 4f3e * 8ea1cfbe,cfbe,8ea1cfbev,cfbev 829d e88a9d 829d 0000829d aadb aadb aadb aadb aadb aadb aadb -1659 aadc aadc aadc * 4f3f * 8ea1cfbf,cfbf,8ea1cfbfv,cfbfv 8299 e88a99 8299 00008299 aadc aadc aadc aadc aadc aadc aadc -1660 aadd aadd aadd * 4f40 * 8ea1cfc0,cfc0,8ea1cfc0v,cfc0v 82ad e88aad 82ad 000082ad aadd aadd aadd aadd aadd aadd aadd -1661 aade aade aade * 4f41 * 8ea1cfc1,cfc1,8ea1cfc1v,cfc1v 82bd e88abd 82bd 000082bd aade aade aade aade aade aade aade -1662 aadf aadf aadf * 4f42 * 8ea1cfc2,cfc2,8ea1cfc2v,cfc2v 829f e88a9f 829f 0000829f aadf aadf aadf aadf aadf aadf aadf -1663 aae0 aae0 aae0 * 4f43 * 8ea1cfc3,cfc3,8ea1cfc3v,cfc3v 82b9 e88ab9 82b9 000082b9 aae0 aae0 aae0 aae0 aae0 aae0 aae0 -1664 aae1 aae1 aae1 * 4f44 * 8ea1cfc4,cfc4,8ea1cfc4v,cfc4v 82b1 e88ab1 82b1 000082b1 aae1 aae1 aae1 aae1 aae1 aae1 aae1 -1665 aae2 aae2 aae2 * 4f45 * 8ea1cfc5,cfc5,8ea1cfc5v,cfc5v 82ac e88aac 82ac 000082ac aae2 aae2 aae2 aae2 aae2 aae2 aae2 -1666 aae3 aae3 aae3 * 4f46 * 8ea1cfc6,cfc6,8ea1cfc6v,cfc6v 82a5 e88aa5 82a5 000082a5 aae3 aae3 aae3 aae3 aae3 aae3 aae3 -1667 aae4 aae4 aae4 * 4f47 * 8ea1cfc7,cfc7,8ea1cfc7v,cfc7v 82af e88aaf 82af 000082af aae4 aae4 aae4 aae4 aae4 aae4 aae4 -1668 aae5 aae5 aae5 * 4f48 * 8ea1cfc8,cfc8,8ea1cfc8v,cfc8v 82b8 e88ab8 82b8 000082b8 aae5 aae5 aae5 aae5 aae5 aae5 aae5 -1669 aae6 aae6 aae6 * 4f49 * 8ea1cfc9,cfc9,8ea1cfc9v,cfc9v 82a3 e88aa3 82a3 000082a3 aae6 aae6 aae6 aae6 aae6 aae6 aae6 -1670 aae7 aae7 aae7 * 4f4a * 8ea1cfca,cfca,8ea1cfcav,cfcav 82b0 e88ab0 82b0 000082b0 aae7 aae7 aae7 aae7 aae7 aae7 aae7 -1671 aae8 aae8 aae8 * 4f4b * 8ea1cfcb,cfcb,8ea1cfcbv,cfcbv 82be e88abe 82be 000082be aae8 aae8 aae8 aae8 aae8 aae8 aae8 -1672 aae9 aae9 aae9 * 4f4c * 8ea1cfcc,cfcc,8ea1cfccv,cfccv 82b7 e88ab7 82b7 000082b7 aae9 aae9 aae9 aae9 aae9 aae9 aae9 -1673 aaea aaea aaea * 4f4d * 8ea1cfcd,cfcd,8ea1cfcdv,cfcdv 864e e8998e 864e 0000864e aaea aaea aaea aaea aaea aaea aaea -1674 aaeb aaeb aaeb * 4f4e * 8ea1cfce,cfce,8ea1cfcev,cfcev 8671 e899b1 8671 00008671 aaeb aaeb aaeb aaeb aaeb aaeb aaeb -1675 aaec aaec aaec * 4f4f * 8ea1cfcf,cfcf,8ea1cfcfv,cfcfv 521d e5889d 521d 0000521d aaec aaec aaec aaec aaec aaec aaec -1676 aaed aaed aaed * 4f50 * 8ea1cfd0,cfd0,8ea1cfd0v,cfd0v 8868 e8a1a8 8868 00008868 aaed aaed aaed aaed aaed aaed aaed -1677 aaee aaee aaee * 4f51 * 8ea1cfd1,cfd1,8ea1cfd1v,cfd1v 8ecb e8bb8b 8ecb 00008ecb aaee aaee aaee aaee aaee aaee aaee -1678 aaef aaef aaef * 4f52 * 8ea1cfd2,cfd2,8ea1cfd2v,cfd2v 8fce e8bf8e 8fce 00008fce aaef aaef aaef aaef aaef aaef aaef -1679 aaf0 aaf0 aaf0 * 4f53 * 8ea1cfd3,cfd3,8ea1cfd3v,cfd3v 8fd4 e8bf94 8fd4 00008fd4 aaf0 aaf0 aaf0 aaf0 aaf0 aaf0 aaf0 -1680 aaf1 aaf1 aaf1 * 4f54 * 8ea1cfd4,cfd4,8ea1cfd4v,cfd4v 8fd1 e8bf91 8fd1 00008fd1 aaf1 aaf1 aaf1 aaf1 aaf1 aaf1 aaf1 -1681 aaf2 aaf2 aaf2 * 4f55 * 8ea1cfd5,cfd5,8ea1cfd5v,cfd5v 90b5 e982b5 90b5 000090b5 aaf2 aaf2 aaf2 aaf2 aaf2 aaf2 aaf2 -1682 aaf3 aaf3 aaf3 * 4f56 * 8ea1cfd6,cfd6,8ea1cfd6v,cfd6v 90b8 e982b8 90b8 000090b8 aaf3 aaf3 aaf3 aaf3 aaf3 aaf3 aaf3 -1683 aaf4 aaf4 aaf4 * 4f57 * 8ea1cfd7,cfd7,8ea1cfd7v,cfd7v 90b1 e982b1 90b1 000090b1 aaf4 aaf4 aaf4 aaf4 aaf4 aaf4 aaf4 -1684 aaf5 aaf5 aaf5 * 4f58 * 8ea1cfd8,cfd8,8ea1cfd8v,cfd8v 90b6 e982b6 90b6 000090b6 aaf5 aaf5 aaf5 aaf5 aaf5 aaf5 aaf5 -1685 aaf6 aaf6 aaf6 * 4f59 * 8ea1cfd9,cfd9,8ea1cfd9v,cfd9v 91c7 e98787 91c7 000091c7 aaf6 aaf6 aaf6 aaf6 aaf6 aaf6 aaf6 -1686 aaf7 aaf7 aaf7 * 2868,4f5a * 8ea1a8e8,8ea1cfda,a8e8,cfda,8ea1a8e8v,8ea1cfdav,a8e8v,cfdav 91d1 e98791,e2bea6 91d1,2fa6 000091d1,00002fa6 aaf7 aaf7 aaf7 aaf7 aaf7 aaf7 aaf7 -1687 aaf8 aaf8 aaf8 * 2869,4f5b * 8ea1a8e9,8ea1cfdb,a8e9,cfdb,8ea1a8e9v,8ea1cfdbv,a8e9v,cfdbv 9577 e995b7,e2bea7 9577,2fa7 00009577,00002fa7 aaf8 aaf8 aaf8 aaf8 aaf8 aaf8 aaf8 -1688 aaf9 aaf9 aaf9 * 286a,4f5c * 8ea1a8ea,8ea1cfdc,a8ea,cfdc,8ea1a8eav,8ea1cfdcv,a8eav,cfdcv 9580 e99680,e2bea8 9580,2fa8 00009580,00002fa8 aaf9 aaf9 aaf9 aaf9 aaf9 aaf9 aaf9 -1689 aafa aafa aafa * 286b,4f5d * 8ea1a8eb,8ea1cfdd,a8eb,cfdd,8ea1a8ebv,8ea1cfddv,a8ebv,cfddv 961c e9989c,e2bea9 961c,2fa9 0000961c,00002fa9 aafa aafa aafa aafa aafa aafa aafa -1690 aafb aafb aafb * 4f5e * 8ea1cfde,cfde,8ea1cfdev,cfdev 9640 e99980 9640 00009640 aafb aafb aafb aafb aafb aafb aafb -1691 aafc aafc aafc * 4f5f * 8ea1cfdf,cfdf,8ea1cfdfv,cfdfv 963f e998bf 963f 0000963f aafc aafc aafc aafc aafc aafc aafc -1692 aafd aafd aafd * 4f60 * 8ea1cfe0,cfe0,8ea1cfe0v,cfe0v 963b e998bb 963b 0000963b aafd aafd aafd aafd aafd aafd aafd -1693 aafe aafe aafe * 4f61 * 8ea1cfe1,cfe1,8ea1cfe1v,cfe1v 9644 e99984 9644 00009644 aafe aafe aafe aafe aafe aafe aafe -1694 ab40 ab40 ab40 * 4f62 * 8ea1cfe2,cfe2,8ea1cfe2v,cfe2v 9642 e99982 9642 00009642 ab40 ab40 ab40 ab40 ab40 ab40 ab40 -1695 ab41 ab41 ab41 * 286d,4f63 * 8ea1a8ed,8ea1cfe3,a8ed,cfe3,8ea1a8edv,8ea1cfe3v,a8edv,cfe3v 96b9 e99ab9,e2beab 96b9,2fab 000096b9,00002fab ab41 ab41 ab41 ab41 ab41 ab41 ab41 -1696 ab42 ab42 ab42 * 286e,4f64 * 8ea1a8ee,8ea1cfe4,a8ee,cfe4,8ea1a8eev,8ea1cfe4v,a8eev,cfe4v 96e8 e99ba8,e2beac 96e8,2fac 000096e8,00002fac ab42 ab42 ab42 ab42 ab42 ab42 ab42 -1697 ab43 ab43 ab43 * 286f,4f65 * 8ea1a8ef,8ea1cfe5,a8ef,cfe5,8ea1a8efv,8ea1cfe5v,a8efv,cfe5v 9752 e99d92 9752 00009752 ab43 ab43 ab43 ab43 ab43 ab43 ab43 -1698 ab44 ab44 ab44 * 2870,4f66 * 8ea1a8f0,8ea1cfe6,a8f0,cfe6,8ea1a8f0v,8ea1cfe6v,a8f0v,cfe6v 975e e2beae,e99d9e 2fae,975e 00002fae,0000975e ab44 ab44 ab44 ab44 ab44 ab44 ab44 -1699 ab45 ab45 ab45 * 4f67 * 8ea1cfe7,cfe7,8ea1cfe7v,cfe7v 4e9f e4ba9f 4e9f 00004e9f ab45 ab45 ab45 ab45 ab45 ab45 ab45 -1700 ab46 ab46 ab46 * 4f68 * 8ea1cfe8,cfe8,8ea1cfe8v,cfe8v 4ead e4baad 4ead 00004ead ab46 ab46 ab46 ab46 ab46 ab46 ab46 -1701 ab47 ab47 ab47 * 4f69 * 8ea1cfe9,cfe9,8ea1cfe9v,cfe9v 4eae e4baae 4eae 00004eae ab47 ab47 ab47 ab47 ab47 ab47 ab47 -1702 ab48 ab48 ab48 * 4f6a * 8ea1cfea,cfea,8ea1cfeav,cfeav 4fe1 e4bfa1 4fe1 00004fe1 ab48 ab48 ab48 ab48 ab48 ab48 ab48 -1703 ab49 ab49 ab49 * 4f6b * 8ea1cfeb,cfeb,8ea1cfebv,cfebv 4fb5 e4beb5 4fb5 00004fb5 ab49 ab49 ab49 ab49 ab49 ab49 ab49 -1704 ab4a ab4a ab4a * 4f6c * 8ea1cfec,cfec,8ea1cfecv,cfecv 4faf e4beaf 4faf 00004faf ab4a ab4a ab4a ab4a ab4a ab4a ab4a -1705 ab4b ab4b ab4b * 4f6d * 8ea1cfed,cfed,8ea1cfedv,cfedv 4fbf e4bebf 4fbf 00004fbf ab4b ab4b ab4b ab4b ab4b ab4b ab4b -1706 ab4c ab4c ab4c * 4f6e * 8ea1cfee,cfee,8ea1cfeev,cfeev 4fe0 e4bfa0 4fe0 00004fe0 ab4c ab4c ab4c ab4c ab4c ab4c ab4c -1707 ab4d ab4d ab4d * 4f6f * 8ea1cfef,cfef,8ea1cfefv,cfefv 4fd1 e4bf91 4fd1 00004fd1 ab4d ab4d ab4d ab4d ab4d ab4d ab4d -1708 ab4e ab4e ab4e * 4f70 * 8ea1cff0,cff0,8ea1cff0v,cff0v 4fcf e4bf8f 4fcf 00004fcf ab4e ab4e ab4e ab4e ab4e ab4e ab4e -1709 ab4f ab4f ab4f * 4f71 * 8ea1cff1,cff1,8ea1cff1v,cff1v 4fdd e4bf9d 4fdd 00004fdd ab4f ab4f ab4f ab4f ab4f ab4f ab4f -1710 ab50 ab50 ab50 * 4f72 * 8ea1cff2,cff2,8ea1cff2v,cff2v 4fc3 e4bf83 4fc3 00004fc3 ab50 ab50 ab50 ab50 ab50 ab50 ab50 -1711 ab51 ab51 ab51 * 4f73 * 8ea1cff3,cff3,8ea1cff3v,cff3v 4fb6 e4beb6 4fb6 00004fb6 ab51 ab51 ab51 ab51 ab51 ab51 ab51 -1712 ab52 ab52 ab52 * 4f74 * 8ea1cff4,cff4,8ea1cff4v,cff4v 4fd8 e4bf98 4fd8 00004fd8 ab52 ab52 ab52 ab52 ab52 ab52 ab52 -1713 ab53 ab53 ab53 * 4f75 * 8ea1cff5,cff5,8ea1cff5v,cff5v 4fdf e4bf9f 4fdf 00004fdf ab53 ab53 ab53 ab53 ab53 ab53 ab53 -1714 ab54 ab54 ab54 * 4f76 * 8ea1cff6,cff6,8ea1cff6v,cff6v 4fca e4bf8a 4fca 00004fca ab54 ab54 ab54 ab54 ab54 ab54 ab54 -1715 ab55 ab55 ab55 * 4f77 * 8ea1cff7,cff7,8ea1cff7v,cff7v 4fd7 e4bf97 4fd7 00004fd7 ab55 ab55 ab55 ab55 ab55 ab55 ab55 -1716 ab56 ab56 ab56 * 4f78 * 8ea1cff8,cff8,8ea1cff8v,cff8v 4fae e4beae 4fae 00004fae ab56 ab56 ab56 ab56 ab56 ab56 ab56 -1717 ab57 ab57 ab57 * 4f79 * 8ea1cff9,cff9,8ea1cff9v,cff9v 4fd0 e4bf90 4fd0 00004fd0 ab57 ab57 ab57 ab57 ab57 ab57 ab57 -1718 ab58 ab58 ab58 * 4f7a * 8ea1cffa,cffa,8ea1cffav,cffav 4fc4 e4bf84 4fc4 00004fc4 ab58 ab58 ab58 ab58 ab58 ab58 ab58 -1719 ab59 ab59 ab59 * 4f7b * 8ea1cffb,cffb,8ea1cffbv,cffbv 4fc2 e4bf82 4fc2 00004fc2 ab59 ab59 ab59 ab59 ab59 ab59 ab59 -1720 ab5a ab5a ab5a * 4f7c * 8ea1cffc,cffc,8ea1cffcv,cffcv 4fda e4bf9a 4fda 00004fda ab5a ab5a ab5a ab5a ab5a ab5a ab5a -1721 ab5b ab5b ab5b * 4f7d * 8ea1cffd,cffd,8ea1cffdv,cffdv 4fce e4bf8e 4fce 00004fce ab5b ab5b ab5b ab5b ab5b ab5b ab5b -1722 ab5c ab5c ab5c * 4f7e * 8ea1cffe,cffe,8ea1cffev,cffev 4fde e4bf9e 4fde 00004fde ab5c ab5c ab5c ab5c ab5c ab5c ab5c -1723 ab5d ab5d ab5d * 5021 * 8ea1d0a1,d0a1,8ea1d0a1v,d0a1v 4fb7 e4beb7 4fb7 00004fb7 ab5d ab5d ab5d ab5d ab5d ab5d ab5d -1724 ab5e ab5e ab5e * 5022 * 8ea1d0a2,d0a2,8ea1d0a2v,d0a2v 5157 e58597 5157 00005157 ab5e ab5e ab5e ab5e ab5e ab5e ab5e -1725 ab5f ab5f ab5f * 5023 * 8ea1d0a3,d0a3,8ea1d0a3v,d0a3v 5192 e58692 5192 00005192 ab5f ab5f ab5f ab5f ab5f ab5f ab5f -1726 ab60 ab60 ab60 * 5024 * 8ea1d0a4,d0a4,8ea1d0a4v,d0a4v 5191 e58691 5191 00005191 ab60 ab60 ab60 ab60 ab60 ab60 ab60 -1727 ab61 ab61 ab61 * 5025 * 8ea1d0a5,d0a5,8ea1d0a5v,d0a5v 51a0 e586a0 51a0 000051a0 ab61 ab61 ab61 ab61 ab61 ab61 ab61 -1728 ab62 ab62 ab62 * 5026 * 8ea1d0a6,d0a6,8ea1d0a6v,d0a6v 524e e5898e 524e 0000524e ab62 ab62 ab62 ab62 ab62 ab62 ab62 -1729 ab63 ab63 ab63 * 5027 * 8ea1d0a7,d0a7,8ea1d0a7v,d0a7v 5243 e58983 5243 00005243 ab63 ab63 ab63 ab63 ab63 ab63 ab63 -1730 ab64 ab64 ab64 * 5028 * 8ea1d0a8,d0a8,8ea1d0a8v,d0a8v 524a e5898a 524a 0000524a ab64 ab64 ab64 ab64 ab64 ab64 ab64 -1731 ab65 ab65 ab65 * 5029 * 8ea1d0a9,d0a9,8ea1d0a9v,d0a9v 524d e5898d 524d 0000524d ab65 ab65 ab65 ab65 ab65 ab65 ab65 -1732 ab66 ab66 ab66 * 502a * 8ea1d0aa,d0aa,8ea1d0aav,d0aav 524c e5898c 524c 0000524c ab66 ab66 ab66 ab66 ab66 ab66 ab66 -1733 ab67 ab67 ab67 * 502b * 8ea1d0ab,d0ab,8ea1d0abv,d0abv 524b e5898b 524b 0000524b ab67 ab67 ab67 ab67 ab67 ab67 ab67 -1734 ab68 ab68 ab68 * 502c * 8ea1d0ac,d0ac,8ea1d0acv,d0acv 5247 e58987 5247 00005247 ab68 ab68 ab68 ab68 ab68 ab68 ab68 -1735 ab69 ab69 ab69 * 502d * 8ea1d0ad,d0ad,8ea1d0adv,d0adv 52c7 e58b87 52c7 000052c7 ab69 ab69 ab69 ab69 ab69 ab69 ab69 -1736 ab6a ab6a ab6a * 502e * 8ea1d0ae,d0ae,8ea1d0aev,d0aev 52c9 e58b89 52c9 000052c9 ab6a ab6a ab6a ab6a ab6a ab6a ab6a -1737 ab6b ab6b ab6b * 502f * 8ea1d0af,d0af,8ea1d0afv,d0afv 52c3 e58b83 52c3 000052c3 ab6b ab6b ab6b ab6b ab6b ab6b ab6b -1738 ab6c ab6c ab6c * 5030 * 8ea1d0b0,d0b0,8ea1d0b0v,d0b0v 52c1 e58b81 52c1 000052c1 ab6c ab6c ab6c ab6c ab6c ab6c ab6c -1739 ab6d ab6d ab6d * 5031 * 8ea1d0b1,d0b1,8ea1d0b1v,d0b1v 530d e58c8d 530d 0000530d ab6d ab6d ab6d ab6d ab6d ab6d ab6d -1740 ab6e ab6e ab6e * 5032 * 8ea1d0b2,d0b2,8ea1d0b2v,d0b2v 5357 e58d97 5357 00005357 ab6e ab6e ab6e ab6e ab6e ab6e ab6e -1741 ab6f ab6f ab6f * 5033 * 8ea1d0b3,d0b3,8ea1d0b3v,d0b3v 537b e58dbb 537b 0000537b ab6f ab6f ab6f ab6f ab6f ab6f ab6f -1742 ab70 ab70 ab70 * 5034 * 8ea1d0b4,d0b4,8ea1d0b4v,d0b4v 539a e58e9a 539a 0000539a ab70 ab70 ab70 ab70 ab70 ab70 ab70 -1743 ab71 ab71 ab71 * 5035 * 8ea1d0b5,d0b5,8ea1d0b5v,d0b5v 53db e58f9b 53db 000053db ab71 ab71 ab71 ab71 ab71 ab71 ab71 -1744 ab72 ab72 ab72 * 5036 * 8ea1d0b6,d0b6,8ea1d0b6v,d0b6v 54ac e592ac 54ac 000054ac ab72 ab72 ab72 ab72 ab72 ab72 ab72 -1745 ab73 ab73 ab73 * 5037 * 8ea1d0b7,d0b7,8ea1d0b7v,d0b7v 54c0 e59380 54c0 000054c0 ab73 ab73 ab73 ab73 ab73 ab73 ab73 -1746 ab74 ab74 ab74 * 5038 * 8ea1d0b8,d0b8,8ea1d0b8v,d0b8v 54a8 e592a8 54a8 000054a8 ab74 ab74 ab74 ab74 ab74 ab74 ab74 -1747 ab75 ab75 ab75 * 5039 * 8ea1d0b9,d0b9,8ea1d0b9v,d0b9v 54ce e5938e 54ce 000054ce ab75 ab75 ab75 ab75 ab75 ab75 ab75 -1748 ab76 ab76 ab76 * 503a * 8ea1d0ba,d0ba,8ea1d0bav,d0bav 54c9 e59389 54c9 000054c9 ab76 ab76 ab76 ab76 ab76 ab76 ab76 -1749 ab77 ab77 ab77 * 503b * 8ea1d0bb,d0bb,8ea1d0bbv,d0bbv 54b8 e592b8 54b8 000054b8 ab77 ab77 ab77 ab77 ab77 ab77 ab77 -1750 ab78 ab78 ab78 * 503c * 8ea1d0bc,d0bc,8ea1d0bcv,d0bcv 54a6 e592a6 54a6 000054a6 ab78 ab78 ab78 ab78 ab78 ab78 ab78 -1751 ab79 ab79 ab79 * 503d * 8ea1d0bd,d0bd,8ea1d0bdv,d0bdv 54b3 e592b3 54b3 000054b3 ab79 ab79 ab79 ab79 ab79 ab79 ab79 -1752 ab7a ab7a ab7a * 503e * 8ea1d0be,d0be,8ea1d0bev,d0bev 54c7 e59387 54c7 000054c7 ab7a ab7a ab7a ab7a ab7a ab7a ab7a -1753 ab7b ab7b ab7b * 503f * 8ea1d0bf,d0bf,8ea1d0bfv,d0bfv 54c2 e59382 54c2 000054c2 ab7b ab7b ab7b ab7b ab7b ab7b ab7b -1754 ab7c ab7c ab7c * 5040 * 8ea1d0c0,d0c0,8ea1d0c0v,d0c0v 54bd e592bd 54bd 000054bd ab7c ab7c ab7c ab7c ab7c ab7c ab7c -1755 ab7d ab7d ab7d * 5041 * 8ea1d0c1,d0c1,8ea1d0c1v,d0c1v 54aa e592aa 54aa 000054aa ab7d ab7d ab7d ab7d ab7d ab7d ab7d -1756 ab7e ab7e ab7e * 5042 * 8ea1d0c2,d0c2,8ea1d0c2v,d0c2v 54c1 e59381 54c1 000054c1 ab7e ab7e ab7e ab7e ab7e ab7e ab7e -1757 aba1 aba1 aba1 * 5043 * 8ea1d0c3,d0c3,8ea1d0c3v,d0c3v 54c4 e59384 54c4 000054c4 aba1 aba1 aba1 aba1 aba1 aba1 aba1 -1758 aba2 aba2 aba2 * 5044 * 8ea1d0c4,d0c4,8ea1d0c4v,d0c4v 54c8 e59388 54c8 000054c8 aba2 aba2 aba2 aba2 aba2 aba2 aba2 -1759 aba3 aba3 aba3 * 5045 * 8ea1d0c5,d0c5,8ea1d0c5v,d0c5v 54af e592af 54af 000054af aba3 aba3 aba3 aba3 aba3 aba3 aba3 -1760 aba4 aba4 aba4 * 5046 * 8ea1d0c6,d0c6,8ea1d0c6v,d0c6v 54ab e592ab 54ab 000054ab aba4 aba4 aba4 aba4 aba4 aba4 aba4 -1761 aba5 aba5 aba5 * 5047 * 8ea1d0c7,d0c7,8ea1d0c7v,d0c7v 54b1 e592b1 54b1 000054b1 aba5 aba5 aba5 aba5 aba5 aba5 aba5 -1762 aba6 aba6 aba6 * 5048 * 8ea1d0c8,d0c8,8ea1d0c8v,d0c8v 54bb e592bb 54bb 000054bb aba6 aba6 aba6 aba6 aba6 aba6 aba6 -1763 aba7 aba7 aba7 * 5049 * 8ea1d0c9,d0c9,8ea1d0c9v,d0c9v 54a9 e592a9 54a9 000054a9 aba7 aba7 aba7 aba7 aba7 aba7 aba7 -1764 aba8 aba8 aba8 * 504a * 8ea1d0ca,d0ca,8ea1d0cav,d0cav 54a7 e592a7 54a7 000054a7 aba8 aba8 aba8 aba8 aba8 aba8 aba8 -1765 aba9 aba9 aba9 * 504b * 8ea1d0cb,d0cb,8ea1d0cbv,d0cbv 54bf e592bf 54bf 000054bf aba9 aba9 aba9 aba9 aba9 aba9 aba9 -1766 abaa abaa abaa * 504c * 8ea1d0cc,d0cc,8ea1d0ccv,d0ccv 56ff e59bbf 56ff 000056ff abaa abaa abaa abaa abaa abaa abaa -1767 abab abab abab * 504d * 8ea1d0cd,d0cd,8ea1d0cdv,d0cdv 5782 e59e82 5782 00005782 abab abab abab abab abab abab abab -1768 abac abac abac * 504e * 8ea1d0ce,d0ce,8ea1d0cev,d0cev 578b e59e8b 578b 0000578b abac abac abac abac abac abac abac -1769 abad abad abad * 504f * 8ea1d0cf,d0cf,8ea1d0cfv,d0cfv 57a0 e59ea0 57a0 000057a0 abad abad abad abad abad abad abad -1770 abae abae abae * 5050 * 8ea1d0d0,d0d0,8ea1d0d0v,d0d0v 57a3 e59ea3 57a3 000057a3 abae abae abae abae abae abae abae -1771 abaf abaf abaf * 5051 * 8ea1d0d1,d0d1,8ea1d0d1v,d0d1v 57a2 e59ea2 57a2 000057a2 abaf abaf abaf abaf abaf abaf abaf -1772 abb0 abb0 abb0 * 5052 * 8ea1d0d2,d0d2,8ea1d0d2v,d0d2v 57ce e59f8e 57ce 000057ce abb0 abb0 abb0 abb0 abb0 abb0 abb0 -1773 abb1 abb1 abb1 * 5053 * 8ea1d0d3,d0d3,8ea1d0d3v,d0d3v 57ae e59eae 57ae 000057ae abb1 abb1 abb1 abb1 abb1 abb1 abb1 -1774 abb2 abb2 abb2 * 5054 * 8ea1d0d4,d0d4,8ea1d0d4v,d0d4v 5793 e59e93 5793 00005793 abb2 abb2 abb2 abb2 abb2 abb2 abb2 -1775 abb3 abb3 abb3 * 5055 * 8ea1d0d5,d0d5,8ea1d0d5v,d0d5v 5955 e5a595 5955 00005955 abb3 abb3 abb3 abb3 abb3 abb3 abb3 -1776 abb4 abb4 abb4 * 5056 * 8ea1d0d6,d0d6,8ea1d0d6v,d0d6v 5951 e5a591 5951 00005951 abb4 abb4 abb4 abb4 abb4 abb4 abb4 -1777 abb5 abb5 abb5 * 5057 * 8ea1d0d7,d0d7,8ea1d0d7v,d0d7v 594f e5a58f 594f 0000594f abb5 abb5 abb5 abb5 abb5 abb5 abb5 -1778 abb6 abb6 abb6 * 5058 * 8ea1d0d8,d0d8,8ea1d0d8v,d0d8v 594e e5a58e 594e 0000594e abb6 abb6 abb6 abb6 abb6 abb6 abb6 -1779 abb7 abb7 abb7 * 5059 * 8ea1d0d9,d0d9,8ea1d0d9v,d0d9v 5950 e5a590 5950 00005950 abb7 abb7 abb7 abb7 abb7 abb7 abb7 -1780 abb8 abb8 abb8 * 505a * 8ea1d0da,d0da,8ea1d0dav,d0dav 59dc e5a79c 59dc 000059dc abb8 abb8 abb8 abb8 abb8 abb8 abb8 -1781 abb9 abb9 abb9 * 505b * 8ea1d0db,d0db,8ea1d0dbv,d0dbv 59d8 e5a798 59d8 000059d8 abb9 abb9,fbf7 91a6,abb9 abb9 abb9 abb9 abb9 -1782 abba abba abba * 505c * 8ea1d0dc,d0dc,8ea1d0dcv,d0dcv 59ff e5a7bf 59ff 000059ff abba abba abba abba abba abba abba -1783 abbb abbb abbb * 505d * 8ea1d0dd,d0dd,8ea1d0ddv,d0ddv 59e3 e5a7a3 59e3 000059e3 abbb abbb abbb abbb abbb abbb abbb -1784 abbc abbc abbc * 505e * 8ea1d0de,d0de,8ea1d0dev,d0dev 59e8 e5a7a8 59e8 000059e8 abbc abbc abbc abbc abbc abbc abbc -1785 abbd abbd abbd * 505f * 8ea1d0df,d0df,8ea1d0dfv,d0dfv 5a03 e5a883 5a03 00005a03 abbd abbd abbd abbd abbd abbd abbd -1786 abbe abbe abbe * 5060 * 8ea1d0e0,d0e0,8ea1d0e0v,d0e0v 59e5 e5a7a5 59e5 000059e5 abbe abbe abbe abbe abbe abbe abbe -1787 abbf abbf abbf * 5061 * 8ea1d0e1,d0e1,8ea1d0e1v,d0e1v 59ea e5a7aa 59ea 000059ea abbf abbf abbf abbf abbf abbf abbf -1788 abc0 abc0 abc0 * 5062 * 8ea1d0e2,d0e2,8ea1d0e2v,d0e2v 59da e5a79a 59da 000059da abc0 abc0 abc0 abc0 abc0 abc0 abc0 -1789 abc1 abc1 abc1 * 5063 * 8ea1d0e3,d0e3,8ea1d0e3v,d0e3v 59e6 e5a7a6 59e6 000059e6 abc1 abc1 abc1 abc1 abc1 abc1 abc1 -1790 abc2 abc2 abc2 * 5064 * 8ea1d0e4,d0e4,8ea1d0e4v,d0e4v 5a01 e5a881 5a01 00005a01 abc2 abc2 abc2 abc2 abc2 abc2 abc2 -1791 abc3 abc3 abc3 * 5065 * 8ea1d0e5,d0e5,8ea1d0e5v,d0e5v 59fb e5a7bb 59fb 000059fb abc3 abc3 abc3 abc3 abc3 abc3 abc3 -1792 abc4 abc4 abc4 * 5066 * 8ea1d0e6,d0e6,8ea1d0e6v,d0e6v 5b69 e5ada9 5b69 00005b69 abc4 abc4 abc4 abc4 abc4 abc4 abc4 -1793 abc5 abc5 abc5 * 5067 * 8ea1d0e7,d0e7,8ea1d0e7v,d0e7v 5ba3 e5aea3 5ba3 00005ba3 abc5 abc5 abc5 abc5 abc5 abc5 abc5 -1794 abc6 abc6 abc6 * 5068 * 8ea1d0e8,d0e8,8ea1d0e8v,d0e8v 5ba6 e5aea6 5ba6 00005ba6 abc6 abc6 abc6 abc6 abc6 abc6 abc6 -1795 abc7 abc7 abc7 * 5069 * 8ea1d0e9,d0e9,8ea1d0e9v,d0e9v 5ba4 e5aea4 5ba4 00005ba4 abc7 abc7 abc7 abc7 abc7 abc7 abc7 -1796 abc8 abc8 abc8 * 506a * 8ea1d0ea,d0ea,8ea1d0eav,d0eav 5ba2 e5aea2 5ba2 00005ba2 abc8 abc8 abc8 abc8 abc8 abc8 abc8 -1797 abc9 abc9 abc9 * 506b * 8ea1d0eb,d0eb,8ea1d0ebv,d0ebv 5ba5 e5aea5 5ba5 00005ba5 abc9 abc9 abc9 abc9 abc9 abc9 abc9 -1798 abca abca abca * 506c * 8ea1d0ec,d0ec,8ea1d0ecv,d0ecv 5c01 e5b081 5c01 00005c01 abca abca abca abca abca abca abca -1799 abcb abcb abcb * 506d * 8ea1d0ed,d0ed,8ea1d0edv,d0edv 5c4e e5b18e 5c4e 00005c4e abcb abcb abcb abcb abcb abcb abcb -1800 abcc abcc abcc * 506e * 8ea1d0ee,d0ee,8ea1d0eev,d0eev 5c4f e5b18f 5c4f 00005c4f abcc abcc abcc abcc abcc abcc abcc -1801 abcd abcd abcd * 506f * 8ea1d0ef,d0ef,8ea1d0efv,d0efv 5c4d e5b18d 5c4d 00005c4d abcd abcd abcd abcd abcd abcd abcd -1802 abce abce abce * 5070 * 8ea1d0f0,d0f0,8ea1d0f0v,d0f0v 5c4b e5b18b 5c4b 00005c4b abce abce abce abce abce abce abce -1803 abcf abcf abcf * 5071 * 8ea1d0f1,d0f1,8ea1d0f1v,d0f1v 5cd9 e5b399 5cd9 00005cd9 abcf abcf abcf abcf abcf abcf abcf -1804 abd0 abd0 abd0 * 5072 * 8ea1d0f2,d0f2,8ea1d0f2v,d0f2v 5cd2 e5b392 5cd2 00005cd2 abd0 abd0 abd0 abd0 abd0 abd0 abd0 -1805 abd1 abd1 abd1 * 5073 * 8ea1d0f3,d0f3,8ea1d0f3v,d0f3v 5df7 e5b7b7 5df7 00005df7 abd1 abd1 abd1 abd1 abd1 abd1 abd1 -1806 abd2 abd2 abd2 * 5074 * 8ea1d0f4,d0f4,8ea1d0f4v,d0f4v 5e1d e5b89d 5e1d 00005e1d abd2 abd2 abd2 abd2 abd2 abd2 abd2 -1807 abd3 abd3 abd3 * 5075 * 8ea1d0f5,d0f5,8ea1d0f5v,d0f5v 5e25 e5b8a5 5e25 00005e25 abd3 abd3 abd3 abd3 abd3 abd3 abd3 -1808 abd4 abd4 abd4 * 5076 * 8ea1d0f6,d0f6,8ea1d0f6v,d0f6v 5e1f e5b89f 5e1f 00005e1f abd4 abd4 abd4 abd4 abd4 abd4 abd4 -1809 abd5 abd5 abd5 * 5077 * 8ea1d0f7,d0f7,8ea1d0f7v,d0f7v 5e7d e5b9bd 5e7d 00005e7d abd5 abd5 abd5 abd5 abd5 abd5 abd5 -1810 abd6 abd6 abd6 * 5078 * 8ea1d0f8,d0f8,8ea1d0f8v,d0f8v 5ea0 e5baa0 5ea0 00005ea0 abd6 abd6 abd6 abd6 abd6 abd6 abd6 -1811 abd7 abd7 abd7 * 5079 * 8ea1d0f9,d0f9,8ea1d0f9v,d0f9v 5ea6 e5baa6 5ea6 00005ea6 abd7 abd7 abd7 abd7 abd7 abd7 abd7 -1812 abd8 abd8 abd8 * 507a * 8ea1d0fa,d0fa,8ea1d0fav,d0fav 5efa e5bbba 5efa 00005efa abd8 abd8 abd8 abd8 abd8 abd8 abd8 -1813 abd9 abd9 abd9 * 507b * 8ea1d0fb,d0fb,8ea1d0fbv,d0fbv 5f08 e5bc88 5f08 00005f08 abd9 abd9 abd9 abd9 abd9 abd9 abd9 -1814 abda abda abda * 507c * 8ea1d0fc,d0fc,8ea1d0fcv,d0fcv 5f2d e5bcad 5f2d 00005f2d abda abda abda abda abda abda abda -1815 abdb abdb abdb * 507d * 8ea1d0fd,d0fd,8ea1d0fdv,d0fdv 5f65 e5bda5 5f65 00005f65 abdb abdb abdb abdb abdb abdb abdb -1816 abdc abdc abdc * 507e * 8ea1d0fe,d0fe,8ea1d0fev,d0fev 5f88 e5be88 5f88 00005f88 abdc abdc abdc abdc abdc abdc abdc -1817 abdd abdd abdd * 5121 * 8ea1d1a1,d1a1,8ea1d1a1v,d1a1v 5f85 e5be85 5f85 00005f85 abdd abdd abdd abdd abdd abdd abdd -1818 abde abde abde * 5122 * 8ea1d1a2,d1a2,8ea1d1a2v,d1a2v 5f8a e5be8a 5f8a 00005f8a abde abde abde abde abde abde abde -1819 abdf abdf abdf * 5123 * 8ea1d1a3,d1a3,8ea1d1a3v,d1a3v 5f8b e5be8b 5f8b 00005f8b abdf abdf abdf abdf abdf abdf abdf -1820 abe0 abe0 abe0 * 5124 * 8ea1d1a4,d1a4,8ea1d1a4v,d1a4v 5f87 e5be87 5f87 00005f87 abe0 abe0 abe0 abe0 abe0 abe0 abe0 -1821 abe1 abe1 abe1 * 5125 * 8ea1d1a5,d1a5,8ea1d1a5v,d1a5v 5f8c e5be8c 5f8c 00005f8c abe1 abe1 abe1 abe1 abe1 abe1 abe1 -1822 abe2 abe2 abe2 * 5126 * 8ea1d1a6,d1a6,8ea1d1a6v,d1a6v 5f89 e5be89 5f89 00005f89 abe2 abe2 abe2 abe2 abe2 abe2 abe2 -1823 abe3 abe3 abe3 * 5127 * 8ea1d1a7,d1a7,8ea1d1a7v,d1a7v 6012 e68092 6012 00006012 abe3 abe3 abe3 abe3 abe3 abe3 abe3 -1824 abe4 abe4 abe4 * 5128 * 8ea1d1a8,d1a8,8ea1d1a8v,d1a8v 601d e6809d 601d 0000601d abe4 abe4 abe4 abe4 abe4 abe4 abe4 -1825 abe5 abe5 abe5 * 5129 * 8ea1d1a9,d1a9,8ea1d1a9v,d1a9v 6020 e680a0 6020 00006020 abe5 abe5 abe5 abe5 abe5 abe5 abe5 -1826 abe6 abe6 abe6 * 512a * 8ea1d1aa,d1aa,8ea1d1aav,d1aav 6025 e680a5 6025 00006025 abe6 abe6 abe6 abe6 abe6 abe6 abe6 -1827 abe7 abe7 abe7 * 512b * 8ea1d1ab,d1ab,8ea1d1abv,d1abv 600e e6808e 600e 0000600e abe7 abe7 abe7 abe7 abe7 abe7 abe7 -1828 abe8 abe8 abe8 * 512c * 8ea1d1ac,d1ac,8ea1d1acv,d1acv 6028 e680a8 6028 00006028 abe8 abe8 abe8 abe8 abe8 abe8 abe8 -1829 abe9 abe9 abe9 * 512d * 8ea1d1ad,d1ad,8ea1d1adv,d1adv 604d e6818d 604d 0000604d abe9 abe9 abe9 abe9 abe9 abe9 abe9 -1830 abea abea abea * 512e * 8ea1d1ae,d1ae,8ea1d1aev,d1aev 6070 e681b0 6070 00006070 abea abea abea abea abea abea abea -1831 abeb abeb abeb * 512f * 8ea1d1af,d1af,8ea1d1afv,d1afv 6068 e681a8 6068 00006068 abeb abeb abeb abeb abeb abeb abeb -1832 abec abec abec * 5130 * 8ea1d1b0,d1b0,8ea1d1b0v,d1b0v 6062 e681a2,eeb4a8 6062,ed28 00006062,0000ed28 9ea9,abec abec abec abec abec abec 9ea9,abec -1833 abed abed abed * 5131 * 8ea1d1b1,d1b1,8ea1d1b1v,d1b1v 6046 e68186 6046 00006046 abed abed abed abed abed abed abed -1834 abee abee abee * 5132 * 8ea1d1b2,d1b2,8ea1d1b2v,d1b2v 6043 e68183 6043 00006043 abee abee abee abee abee abee abee -1835 abef abef abef * 5133 * 8ea1d1b3,d1b3,8ea1d1b3v,d1b3v 606c e681ac 606c 0000606c abef abef abef abef abef abef abef -1836 abf0 abf0 abf0 * 5134 * 8ea1d1b4,d1b4,8ea1d1b4v,d1b4v 606b e681ab 606b 0000606b abf0 abf0 abf0 abf0 abf0 abf0 abf0 -1837 abf1 abf1 abf1 * 5135 * 8ea1d1b5,d1b5,8ea1d1b5v,d1b5v 606a e681aa 606a 0000606a abf1 abf1 abf1 abf1 abf1 abf1 abf1 -1838 abf2 abf2 abf2 * 5136 * 8ea1d1b6,d1b6,8ea1d1b6v,d1b6v 6064 e681a4 6064 00006064 abf2 abf2 abf2 abf2 abf2 abf2 abf2 -1839 abf3 abf3 abf3 * 5137 * 8ea1d1b7,d1b7,8ea1d1b7v,d1b7v 6241 e68981 6241 00006241 abf3 abf3 abf3 abf3 abf3 abf3 abf3 -1840 abf4 abf4 abf4 * 5138 * 8ea1d1b8,d1b8,8ea1d1b8v,d1b8v 62dc e68b9c 62dc 000062dc abf4 abf4 abf4 abf4 abf4 abf4 abf4 -1841 abf5 abf5 abf5 * 5139 * 8ea1d1b9,d1b9,8ea1d1b9v,d1b9v 6316 e68c96 6316 00006316 abf5 abf5 abf5 abf5 abf5 abf5 abf5 -1842 abf6 abf6 abf6 * 513a * 8ea1d1ba,d1ba,8ea1d1bav,d1bav 6309 e68c89 6309 00006309 abf6 abf6 abf6 abf6 abf6 abf6 abf6 -1843 abf7 abf7 abf7 * 513b * 8ea1d1bb,d1bb,8ea1d1bbv,d1bbv 62fc e68bbc 62fc 000062fc abf7 abf7 abf7 abf7 abf7 abf7 abf7 -1844 abf8 abf8 abf8 * 513c * 8ea1d1bc,d1bc,8ea1d1bcv,d1bcv 62ed e68bad 62ed 000062ed abf8 abf8 abf8 abf8 abf8 abf8 abf8 -1845 abf9 abf9 abf9 * 513d * 8ea1d1bd,d1bd,8ea1d1bdv,d1bdv 6301 e68c81 6301 00006301 abf9 abf9 abf9 abf9 abf9 abf9 abf9 -1846 abfa abfa abfa * 513e * 8ea1d1be,d1be,8ea1d1bev,d1bev 62ee e68bae 62ee 000062ee abfa abfa abfa abfa abfa abfa abfa -1847 abfb abfb abfb * 513f * 8ea1d1bf,d1bf,8ea1d1bfv,d1bfv 62fd e68bbd 62fd 000062fd abfb abfb abfb abfb abfb abfb abfb -1848 abfc abfc abfc * 5140 * 8ea1d1c0,d1c0,8ea1d1c0v,d1c0v 6307 e68c87 6307 00006307 abfc abfc abfc abfc abfc abfc abfc -1849 abfd abfd abfd * 5141 * 8ea1d1c1,d1c1,8ea1d1c1v,d1c1v 62f1 e68bb1 62f1 000062f1 abfd abfd abfd abfd abfd abfd abfd -1850 abfe abfe abfe * 5142 * 8ea1d1c2,d1c2,8ea1d1c2v,d1c2v 62f7 e68bb7 62f7 000062f7 abfe abfe abfe abfe abfe abfe abfe -1851 ac40 ac40 ac40 * 5143 * 8ea1d1c3,d1c3,8ea1d1c3v,d1c3v 62ef e68baf 62ef 000062ef ac40 ac40 ac40 ac40 ac40 ac40 ac40 -1852 ac41 ac41 ac41 * 5144 * 8ea1d1c4,d1c4,8ea1d1c4v,d1c4v 62ec e68bac 62ec 000062ec ac41 ac41 ac41 ac41 ac41 ac41 ac41 -1853 ac42 ac42 ac42 * 5145 * 8ea1d1c5,d1c5,8ea1d1c5v,d1c5v 62fe e68bbe 62fe 000062fe ac42 ac42 ac42 ac42 ac42 ac42 ac42 -1854 ac43 ac43 ac43 * 5146 * 8ea1d1c6,d1c6,8ea1d1c6v,d1c6v 62f4 e68bb4 62f4 000062f4 ac43 ac43 ac43 ac43 ac43 ac43 ac43 -1855 ac44 ac44 ac44 * 5147 * 8ea1d1c7,d1c7,8ea1d1c7v,d1c7v 6311 e68c91 6311 00006311 ac44 ac44 ac44 ac44 ac44 ac44 ac44 -1856 ac45 ac45 ac45 * 5148 * 8ea1d1c8,d1c8,8ea1d1c8v,d1c8v 6302 e68c82 6302 00006302 ac45 ac45 ac45 ac45 ac45 ac45 ac45 -1857 ac46 ac46 ac46 * 5149 * 8ea1d1c9,d1c9,8ea1d1c9v,d1c9v 653f e694bf 653f 0000653f ac46 ac46 ac46 ac46 ac46 ac46 ac46 -1858 ac47 ac47 ac47 * 514a * 8ea1d1ca,d1ca,8ea1d1cav,d1cav 6545 e69585 6545 00006545 ac47 ac47 ac47 ac47 ac47 ac47 ac47 -1859 ac48 ac48 ac48 * 514b * 8ea1d1cb,d1cb,8ea1d1cbv,d1cbv 65ab e696ab 65ab 000065ab ac48 ac48 ac48 ac48 ac48 ac48 ac48 -1860 ac49 ac49 ac49 * 514c * 8ea1d1cc,d1cc,8ea1d1ccv,d1ccv 65bd e696bd 65bd 000065bd ac49 ac49 ac49 ac49 ac49 ac49 ac49 -1861 ac4a ac4a ac4a * 514d * 8ea1d1cd,d1cd,8ea1d1cdv,d1cdv 65e2 e697a2 65e2 000065e2 ac4a ac4a 91f6,ac4a ac4a ac4a ac4a ac4a -1862 ac4b ac4b ac4b * 514e * 8ea1d1ce,d1ce,8ea1d1cev,d1cev 6625 e698a5 6625 00006625 ac4b ac4b ac4b ac4b ac4b ac4b ac4b -1863 ac4c ac4c ac4c * 514f * 8ea1d1cf,d1cf,8ea1d1cfv,d1cfv 662d e698ad 662d 0000662d ac4c ac4c ac4c ac4c ac4c ac4c ac4c -1864 ac4d ac4d ac4d * 5150 * 8ea1d1d0,d1d0,8ea1d1d0v,d1d0v 6620 e698a0 6620 00006620 ac4d ac4d ac4d ac4d ac4d ac4d ac4d -1865 ac4e ac4e ac4e * 5151 * 8ea1d1d1,d1d1,8ea1d1d1v,d1d1v 6627 e698a7 6627 00006627 ac4e ac4e ac4e ac4e ac4e ac4e ac4e -1866 ac4f ac4f ac4f * 5152 * 8ea1d1d2,d1d2,8ea1d1d2v,d1d2v 662f e698af 662f 0000662f ac4f ac4f ac4f ac4f ac4f ac4f ac4f -1867 ac50 ac50 ac50 * 5153 * 8ea1d1d3,d1d3,8ea1d1d3v,d1d3v 661f e6989f 661f 0000661f ac50 ac50 ac50 ac50 ac50 ac50 ac50 -1868 ac51 ac51 ac51 * 5154 * 8ea1d1d4,d1d4,8ea1d1d4v,d1d4v 6628 e698a8 6628 00006628 ac51 ac51 ac51 ac51 ac51 ac51 ac51 -1869 ac52 ac52 ac52 * 5155 * 8ea1d1d5,d1d5,8ea1d1d5v,d1d5v 6631 e698b1 6631 00006631 ac52 ac52 ac52 ac52 ac52 ac52 ac52 -1870 ac53 ac53 ac53 * 5156 * 8ea1d1d6,d1d6,8ea1d1d6v,d1d6v 6624 e698a4 6624 00006624 ac53 ac53 ac53 ac53 ac53 ac53 ac53 -1871 ac54 ac54 ac54 * 5157 * 8ea1d1d7,d1d7,8ea1d1d7v,d1d7v 66f7 e69bb7 66f7 000066f7 ac54 ac54 ac54 ac54 ac54 ac54 ac54 -1872 ac55 ac55 ac55 * 5158 * 8ea1d1d8,d1d8,8ea1d1d8v,d1d8v 67ff e69fbf 67ff 000067ff ac55 ac55 ac55 ac55 ac55 ac55 ac55 -1873 ac56 ac56 ac56 * 5159 * 8ea1d1d9,d1d9,8ea1d1d9v,d1d9v 67d3 e69f93 67d3 000067d3 ac56 ac56 ac56 ac56 ac56 ac56 ac56 -1874 ac57 ac57 ac57 * 515a * 8ea1d1da,d1da,8ea1d1dav,d1dav 67f1 e69fb1 67f1 000067f1 ac57 ac57 ac57 ac57 ac57 ac57 ac57 -1875 ac58 ac58 ac58 * 515b * 8ea1d1db,d1db,8ea1d1dbv,d1dbv 67d4 e69f94 67d4 000067d4 ac58 ac58 ac58 ac58 ac58 ac58 ac58 -1876 ac59 ac59 ac59 * 515c * 8ea1d1dc,d1dc,8ea1d1dcv,d1dcv 67d0 e69f90 67d0 000067d0 ac59 ac59 ac59 ac59 ac59 ac59 ac59 -1877 ac5a ac5a ac5a * 515d * 8ea1d1dd,d1dd,8ea1d1ddv,d1ddv 67ec e69fac 67ec 000067ec ac5a ac5a ac5a ac5a ac5a ac5a ac5a -1878 ac5b ac5b ac5b * 515e * 8ea1d1de,d1de,8ea1d1dev,d1dev 67b6 e69eb6 67b6 000067b6 ac5b ac5b ac5b ac5b ac5b ac5b ac5b -1879 ac5c ac5c ac5c * 515f * 8ea1d1df,d1df,8ea1d1dfv,d1dfv 67af e69eaf 67af 000067af ac5c ac5c ac5c ac5c ac5c ac5c ac5c -1880 ac5d ac5d ac5d * 5160 * 8ea1d1e0,d1e0,8ea1d1e0v,d1e0v 67f5 e69fb5 67f5 000067f5 ac5d ac5d ac5d ac5d ac5d ac5d ac5d -1881 ac5e ac5e ac5e * 5161 * 8ea1d1e1,d1e1,8ea1d1e1v,d1e1v 67e9 e69fa9 67e9 000067e9 ac5e ac5e ac5e ac5e ac5e ac5e ac5e -1882 ac5f ac5f ac5f * 5162 * 8ea1d1e2,d1e2,8ea1d1e2v,d1e2v 67ef e69faf 67ef 000067ef ac5f ac5f ac5f ac5f ac5f ac5f ac5f -1883 ac60 ac60 ac60 * 5163 * 8ea1d1e3,d1e3,8ea1d1e3v,d1e3v 67c4 e69f84 67c4 000067c4 ac60 ac60 ac60 ac60 ac60 ac60 ac60 -1884 ac61 ac61 ac61 * 5164 * 8ea1d1e4,d1e4,8ea1d1e4v,d1e4v 67d1 e69f91 67d1 000067d1 ac61 ac61 ac61 ac61 ac61 ac61 ac61 -1885 ac62 ac62 ac62 * 5165 * 8ea1d1e5,d1e5,8ea1d1e5v,d1e5v 67b4 e69eb4 67b4 000067b4 ac62 ac62 ac62 ac62 ac62 ac62 ac62 -1886 ac63 ac63 ac63 * 5166 * 8ea1d1e6,d1e6,8ea1d1e6v,d1e6v 67da e69f9a 67da 000067da ac63 ac63 ac63 ac63 ac63 ac63 ac63 -1887 ac64 ac64 ac64 * 5167 * 8ea1d1e7,d1e7,8ea1d1e7v,d1e7v 67e5 e69fa5 67e5 000067e5 ac64 ac64 ac64 ac64 ac64 ac64 ac64 -1888 ac65 ac65 ac65 * 5168 * 8ea1d1e8,d1e8,8ea1d1e8v,d1e8v 67b8 e69eb8 67b8 000067b8 ac65 ac65 ac65 ac65 ac65 ac65 ac65 -1889 ac66 ac66 ac66 * 5169 * 8ea1d1e9,d1e9,8ea1d1e9v,d1e9v 67cf e69f8f 67cf 000067cf ac66 ac66 ac66 ac66 ac66 ac66 ac66 -1890 ac67 ac67 ac67 * 516a * 8ea1d1ea,d1ea,8ea1d1eav,d1eav 67de e69f9e 67de 000067de ac67 ac67 ac67 ac67 ac67 ac67 ac67 -1891 ac68 ac68 ac68 * 516b * 8ea1d1eb,d1eb,8ea1d1ebv,d1ebv 67f3 e69fb3 67f3 000067f3 ac68 ac68 ac68 ac68 ac68 ac68 ac68 -1892 ac69 ac69 ac69 * 516c * 8ea1d1ec,d1ec,8ea1d1ecv,d1ecv 67b0 e69eb0 67b0 000067b0 ac69 ac69 ac69 ac69 ac69 ac69 ac69 -1893 ac6a ac6a ac6a * 516d * 8ea1d1ed,d1ed,8ea1d1edv,d1edv 67d9 e69f99 67d9 000067d9 ac6a ac6a ac6a ac6a ac6a ac6a ac6a -1894 ac6b ac6b ac6b * 516e * 8ea1d1ee,d1ee,8ea1d1eev,d1eev 67e2 e69fa2 67e2 000067e2 ac6b ac6b ac6b ac6b ac6b ac6b ac6b -1895 ac6c ac6c ac6c * 516f * 8ea1d1ef,d1ef,8ea1d1efv,d1efv 67dd e69f9d 67dd 000067dd ac6c ac6c ac6c ac6c ac6c ac6c ac6c -1896 ac6d ac6d ac6d * 5170 * 8ea1d1f0,d1f0,8ea1d1f0v,d1f0v 67d2 e69f92 67d2 000067d2 ac6d ac6d ac6d ac6d ac6d ac6d ac6d -1897 ac6e ac6e ac6e * 5171 * 8ea1d1f1,d1f1,8ea1d1f1v,d1f1v 6b6a e6adaa 6b6a 00006b6a ac6e ac6e ac6e ac6e ac6e ac6e ac6e -1898 ac6f ac6f ac6f * 5172 * 8ea1d1f2,d1f2,8ea1d1f2v,d1f2v 6b83 e6ae83 6b83 00006b83 ac6f ac6f ac6f ac6f ac6f ac6f ac6f -1899 ac70 ac70 ac70 * 5173 * 8ea1d1f3,d1f3,8ea1d1f3v,d1f3v 6b86 e6ae86 6b86 00006b86 ac70 ac70 ac70 ac70 ac70 ac70 ac70 -1900 ac71 ac71 ac71 * 5174 * 8ea1d1f4,d1f4,8ea1d1f4v,d1f4v 6bb5 e6aeb5 6bb5 00006bb5 ac71 ac71 ac71 ac71 ac71 ac71 ac71 -1901 ac72 ac72 ac72 * 5175 * 8ea1d1f5,d1f5,8ea1d1f5v,d1f5v 6bd2 e6af92 6bd2 00006bd2 ac72 ac72 ac72 ac72 ac72 ac72 ac72 -1902 ac73 ac73 ac73 * 5176 * 8ea1d1f6,d1f6,8ea1d1f6v,d1f6v 6bd7 e6af97 6bd7 00006bd7 ac73 ac73 ac73 ac73 ac73 ac73 ac73 -1903 ac74 ac74 ac74 * 5177 * 8ea1d1f7,d1f7,8ea1d1f7v,d1f7v 6c1f e6b09f 6c1f 00006c1f ac74 ac74 ac74 ac74 ac74 ac74 ac74 -1904 ac75 ac75 ac75 * 5178 * 8ea1d1f8,d1f8,8ea1d1f8v,d1f8v 6cc9 e6b389 6cc9 00006cc9 ac75 ac75 ac75 ac75 ac75 ac75 ac75 -1905 ac76 ac76 ac76 * 5179 * 8ea1d1f9,d1f9,8ea1d1f9v,d1f9v 6d0b e6b48b 6d0b 00006d0b ac76 ac76 ac76 ac76 ac76 ac76 ac76 -1906 ac77 ac77 ac77 * 517a * 8ea1d1fa,d1fa,8ea1d1fav,d1fav 6d32 e6b4b2 6d32 00006d32 ac77 ac77 ac77 ac77 ac77 ac77 ac77 -1907 ac78 ac78 ac78 * 517b * 8ea1d1fb,d1fb,8ea1d1fbv,d1fbv 6d2a e6b4aa 6d2a 00006d2a ac78 ac78 ac78 ac78 ac78 ac78 ac78 -1908 ac79 ac79 ac79 * 517c * 8ea1d1fc,d1fc,8ea1d1fcv,d1fcv 6d41 e6b581 6d41 00006d41 ac79 ac79 ac79 ac79 ac79 ac79 ac79 -1909 ac7a ac7a ac7a * 517d * 8ea1d1fd,d1fd,8ea1d1fdv,d1fdv 6d25 e6b4a5 6d25 00006d25 ac7a ac7a ac7a ac7a ac7a ac7a ac7a -1910 ac7b ac7b ac7b * 517e * 8ea1d1fe,d1fe,8ea1d1fev,d1fev 6d0c e6b48c 6d0c 00006d0c ac7b ac7b ac7b ac7b ac7b ac7b ac7b -1911 ac7c ac7c ac7c * 5221 * 8ea1d2a1,d2a1,8ea1d2a1v,d2a1v 6d31 e6b4b1 6d31 00006d31 ac7c ac7c ac7c ac7c ac7c ac7c ac7c -1912 ac7d ac7d ac7d * 5222 * 8ea1d2a2,d2a2,8ea1d2a2v,d2a2v 6d1e e6b49e 6d1e 00006d1e ac7d ac7d ac7d ac7d ac7d ac7d ac7d -1913 ac7e ac7e ac7e * 5223 * 8ea1d2a3,d2a3,8ea1d2a3v,d2a3v 6d17 e6b497 6d17 00006d17 ac7e ac7e ac7e ac7e ac7e ac7e ac7e -1914 aca1 aca1 aca1 * 5224 * 8ea1d2a4,d2a4,8ea1d2a4v,d2a4v 6d3b e6b4bb 6d3b 00006d3b aca1 aca1 aca1 aca1 aca1 aca1 aca1 -1915 aca2 aca2 aca2 * 5225 * 8ea1d2a5,d2a5,8ea1d2a5v,d2a5v 6d3d e6b4bd 6d3d 00006d3d aca2 aca2 aca2 aca2 aca2 aca2 aca2 -1916 aca3 aca3 aca3 * 5226 * 8ea1d2a6,d2a6,8ea1d2a6v,d2a6v 6d3e e6b4be 6d3e 00006d3e aca3 aca3 aca3 aca3 aca3 aca3 aca3 -1917 aca4 aca4 aca4 * 5227 * 8ea1d2a7,d2a7,8ea1d2a7v,d2a7v 6d36 e6b4b6 6d36 00006d36 aca4 aca4 aca4 aca4 aca4 aca4 aca4 -1918 aca5 aca5 aca5 * 5228 * 8ea1d2a8,d2a8,8ea1d2a8v,d2a8v 6d1b e6b49b 6d1b 00006d1b aca5 aca5 aca5 aca5 aca5 aca5 aca5 -1919 aca6 aca6 aca6 * 5229 * 8ea1d2a9,d2a9,8ea1d2a9v,d2a9v 6cf5 e6b3b5 6cf5 00006cf5 aca6 aca6 aca6 aca6 aca6 aca6 aca6 -1920 aca7 aca7 aca7 * 522a * 8ea1d2aa,d2aa,8ea1d2aav,d2aav 6d39 e6b4b9 6d39 00006d39 aca7 aca7 aca7 aca7 aca7 aca7 aca7 -1921 aca8 aca8 aca8 * 522b * 8ea1d2ab,d2ab,8ea1d2abv,d2abv 6d27 e6b4a7 6d27 00006d27 aca8 aca8 aca8 aca8 aca8 aca8 aca8 -1922 aca9 aca9 aca9 * 522c * 8ea1d2ac,d2ac,8ea1d2acv,d2acv 6d38 e6b4b8 6d38 00006d38 aca9 aca9 aca9 aca9 aca9 aca9 aca9 -1923 acaa acaa acaa * 522d * 8ea1d2ad,d2ad,8ea1d2adv,d2adv 6d29 e6b4a9 6d29 00006d29 acaa acaa acaa acaa acaa acaa acaa -1924 acab acab acab * 522e * 8ea1d2ae,d2ae,8ea1d2aev,d2aev 6d2e e6b4ae 6d2e 00006d2e acab acab acab acab acab acab acab -1925 acac acac acac * 522f * 8ea1d2af,d2af,8ea1d2afv,d2afv 6d35 e6b4b5 6d35 00006d35 acac acac acac acac acac acac acac -1926 acad acad acad * 5230 * 8ea1d2b0,d2b0,8ea1d2b0v,d2b0v 6d0e e6b48e 6d0e 00006d0e acad acad acad acad acad acad acad -1927 acae acae acae * 5231 * 8ea1d2b1,d2b1,8ea1d2b1v,d2b1v 6d2b e6b4ab 6d2b 00006d2b acae acae acae acae acae acae acae -1928 acaf acaf acaf * 5232 * 8ea1d2b2,d2b2,8ea1d2b2v,d2b2v 70ab e782ab 70ab 000070ab acaf acaf acaf acaf acaf acaf acaf -1929 acb0 acb0 acb0 * 5233 * 8ea1d2b3,d2b3,8ea1d2b3v,d2b3v 70ba e782ba 70ba 000070ba acb0 acb0 acb0 acb0 acb0 acb0 acb0 -1930 acb1 acb1 acb1 * 5234 * 8ea1d2b4,d2b4,8ea1d2b4v,d2b4v 70b3 e782b3 70b3 000070b3 acb1 acb1 acb1 acb1 acb1 acb1 acb1 -1931 acb2 acb2 acb2 * 5235 * 8ea1d2b5,d2b5,8ea1d2b5v,d2b5v 70ac e782ac 70ac 000070ac acb2 acb2 acb2 acb2 acb2 acb2 acb2 -1932 acb3 acb3 acb3 * 5236 * 8ea1d2b6,d2b6,8ea1d2b6v,d2b6v 70af e782af 70af 000070af acb3 acb3 acb3 acb3 acb3 acb3 acb3 -1933 acb4 acb4 acb4 * 5237 * 8ea1d2b7,d2b7,8ea1d2b7v,d2b7v 70ad e782ad 70ad 000070ad acb4 acb4 acb4 acb4 acb4 acb4 acb4 -1934 acb5 acb5 acb5 * 5238 * 8ea1d2b8,d2b8,8ea1d2b8v,d2b8v 70b8 e782b8 70b8 000070b8 acb5 acb5 acb5 acb5 acb5 acb5 acb5 -1935 acb6 acb6 acb6 * 5239 * 8ea1d2b9,d2b9,8ea1d2b9v,d2b9v 70ae e782ae 70ae 000070ae acb6 acb6 acb6 acb6 acb6 acb6 acb6 -1936 acb7 acb7 acb7 * 523a * 8ea1d2ba,d2ba,8ea1d2bav,d2bav 70a4 e782a4 70a4 000070a4 acb7 acb7 acb7 acb7 acb7 acb7 acb7 -1937 acb8 acb8 acb8 * 523b * 8ea1d2bb,d2bb,8ea1d2bbv,d2bbv 7230 e788b0 7230 00007230 acb8 acb8 acb8 acb8 acb8 acb8 acb8 -1938 acb9 acb9 acb9 * 523c * 8ea1d2bc,d2bc,8ea1d2bcv,d2bcv 7272 e789b2 7272 00007272 acb9 acb9 acb9 acb9 acb9 acb9 acb9 -1939 acba acba acba * 523d * 8ea1d2bd,d2bd,8ea1d2bdv,d2bdv 726f e789af 726f 0000726f acba acba acba acba acba acba acba -1940 acbb acbb acbb * 523e * 8ea1d2be,d2be,8ea1d2bev,d2bev 7274 e789b4 7274 00007274 acbb acbb acbb acbb acbb acbb acbb -1941 acbc acbc acbc * 523f * 8ea1d2bf,d2bf,8ea1d2bfv,d2bfv 72e9 e78ba9 72e9 000072e9 acbc acbc acbc acbc acbc acbc acbc -1942 acbd acbd acbd * 5240 * 8ea1d2c0,d2c0,8ea1d2c0v,d2c0v 72e0 e78ba0 72e0 000072e0 acbd acbd acbd acbd acbd acbd acbd -1943 acbe acbe acbe * 5241 * 8ea1d2c1,d2c1,8ea1d2c1v,d2c1v 72e1 e78ba1 72e1 000072e1 acbe acbe acbe acbe acbe acbe acbe -1944 acbf acbf acbf * 5242 * 8ea1d2c2,d2c2,8ea1d2c2v,d2c2v 73b7 e78eb7 73b7 000073b7 acbf acbf acbf acbf acbf acbf acbf -1945 acc0 acc0 acc0 * 5243 * 8ea1d2c3,d2c3,8ea1d2c3v,d2c3v 73ca e78f8a 73ca 000073ca acc0 acc0 acc0 acc0 acc0 acc0 acc0 -1946 acc1 acc1 acc1 * 5244 * 8ea1d2c4,d2c4,8ea1d2c4v,d2c4v 73bb e78ebb 73bb 000073bb acc1 acc1 acc1 acc1 acc1 acc1 acc1 -1947 acc2 acc2 acc2 * 5245 * 8ea1d2c5,d2c5,8ea1d2c5v,d2c5v 73b2 e78eb2 73b2 000073b2 acc2 acc2 acc2 acc2 acc2 acc2 acc2 -1948 acc3 acc3 acc3 * 5246 * 8ea1d2c6,d2c6,8ea1d2c6v,d2c6v 73cd e78f8d 73cd 000073cd acc3 acc3 acc3 acc3 acc3 acc3 acc3 -1949 acc4 acc4 acc4 * 5247 * 8ea1d2c7,d2c7,8ea1d2c7v,d2c7v 73c0 e78f80 73c0 000073c0 acc4 acc4 acc4 acc4 acc4 acc4 acc4 -1950 acc5 acc5 acc5 * 5248 * 8ea1d2c8,d2c8,8ea1d2c8v,d2c8v 73b3 e78eb3 73b3 000073b3 acc5 acc5 acc5 acc5 acc5 acc5 acc5 -1951 acc6 acc6 acc6 * 5249 * 8ea1d2c9,d2c9,8ea1d2c9v,d2c9v 751a e7949a 751a 0000751a acc6 acc6 acc6 acc6 acc6 acc6 acc6 -1952 acc7 acc7 acc7 * 524a * 8ea1d2ca,d2ca,8ea1d2cav,d2cav 752d e794ad 752d 0000752d acc7 acc7 acc7 acc7 acc7 acc7 acc7 -1953 acc8 acc8 acc8 * 524b * 8ea1d2cb,d2cb,8ea1d2cbv,d2cbv 754f e7958f 754f 0000754f acc8 acc8 acc8 acc8 acc8 acc8 acc8 -1954 acc9 acc9 acc9 * 524c * 8ea1d2cc,d2cc,8ea1d2ccv,d2ccv 754c e7958c 754c 0000754c acc9 acc9 acc9 acc9 acc9 acc9 acc9 -1955 acca acca acca * 524d * 8ea1d2cd,d2cd,8ea1d2cdv,d2cdv 754e e7958e 754e 0000754e acca acca acca acca acca acca acca -1956 accb accb accb * 524e * 8ea1d2ce,d2ce,8ea1d2cev,d2cev 754b e7958b 754b 0000754b accb accb accb accb accb accb accb -1957 accc accc accc * 524f * 8ea1d2cf,d2cf,8ea1d2cfv,d2cfv 75ab e796ab 75ab 000075ab accc accc accc accc accc accc accc -1958 accd accd accd * 5250 * 8ea1d2d0,d2d0,8ea1d2d0v,d2d0v 75a4 e796a4 75a4 000075a4 accd accd accd accd accd accd accd -1959 acce acce acce * 5251 * 8ea1d2d1,d2d1,8ea1d2d1v,d2d1v 75a5 e796a5 75a5 000075a5 acce acce acce acce acce acce acce -1960 accf accf accf * 5252 * 8ea1d2d2,d2d2,8ea1d2d2v,d2d2v 75a2 e796a2 75a2 000075a2 accf accf accf accf accf accf accf -1961 acd0 acd0 acd0 * 5253 * 8ea1d2d3,d2d3,8ea1d2d3v,d2d3v 75a3 e796a3 75a3 000075a3 acd0 acd0 acd0 acd0 acd0 acd0 acd0 -1962 acd1 acd1 acd1 * 5254 * 8ea1d2d4,d2d4,8ea1d2d4v,d2d4v 7678 e799b8 7678 00007678 acd1 acd1 acd1 acd1 acd1 acd1 acd1 -1963 acd2 acd2 acd2 * 5255 * 8ea1d2d5,d2d5,8ea1d2d5v,d2d5v 7686 e79a86 7686 00007686 acd2 acd2 acd2 acd2 acd2 acd2 acd2 -1964 acd3 acd3 acd3 * 5256 * 8ea1d2d6,d2d6,8ea1d2d6v,d2d6v 7687 e79a87 7687 00007687 acd3 acd3 acd3 acd3 acd3 acd3 acd3 -1965 acd4 acd4 acd4 * 5257 * 8ea1d2d7,d2d7,8ea1d2d7v,d2d7v 7688 e79a88 7688 00007688 acd4 acd4 acd4 acd4 acd4 acd4 acd4 -1966 acd5 acd5 acd5 * 5258 * 8ea1d2d8,d2d8,8ea1d2d8v,d2d8v 76c8 e79b88 76c8 000076c8 acd5 acd5 acd5 acd5 acd5 acd5 acd5 -1967 acd6 acd6 acd6 * 5259 * 8ea1d2d9,d2d9,8ea1d2d9v,d2d9v 76c6 e79b86 76c6 000076c6 acd6 acd6 acd6 acd6 acd6 acd6 acd6 -1968 acd7 acd7 acd7 * 525a * 8ea1d2da,d2da,8ea1d2dav,d2dav 76c3 e79b83 76c3 000076c3 acd7 acd7 acd7 acd7 acd7 acd7 acd7 -1969 acd8 acd8 acd8 * 525b * 8ea1d2db,d2db,8ea1d2dbv,d2dbv 76c5 e79b85 76c5 000076c5 acd8 acd8 acd8 acd8 acd8 acd8 acd8 -1970 acd9 acd9 acd9 * 525c * 8ea1d2dc,d2dc,8ea1d2dcv,d2dcv 7701 e79c81 7701 00007701 acd9 acd9 acd9 acd9 acd9 acd9 acd9 -1971 acda acda acda * 525d * 8ea1d2dd,d2dd,8ea1d2ddv,d2ddv 76f9 e79bb9 76f9 000076f9 acda acda acda acda acda acda acda -1972 acdb acdb acdb * 525e * 8ea1d2de,d2de,8ea1d2dev,d2dev 76f8 e79bb8 76f8 000076f8 acdb acdb acdb acdb acdb acdb acdb -1973 acdc acdc acdc * 525f * 8ea1d2df,d2df,8ea1d2dfv,d2dfv 7709 e79c89 7709 00007709 acdc acdc acdc acdc acdc acdc acdc -1974 acdd acdd acdd * 5260 * 8ea1d2e0,d2e0,8ea1d2e0v,d2e0v 770b e79c8b 770b 0000770b acdd acdd acdd acdd acdd acdd acdd -1975 acde acde acde * 5261 * 8ea1d2e1,d2e1,8ea1d2e1v,d2e1v 76fe e79bbe 76fe 000076fe acde acde acde acde acde acde acde -1976 acdf acdf acdf * 5262 * 8ea1d2e2,d2e2,8ea1d2e2v,d2e2v 76fc e79bbc 76fc 000076fc acdf acdf acdf acdf acdf acdf acdf -1977 ace0 ace0 ace0 * 5263 * 8ea1d2e3,d2e3,8ea1d2e3v,d2e3v 7707 e79c87 7707 00007707 ace0 ace0 ace0 ace0 ace0 ace0 ace0 -1978 ace1 ace1 ace1 * 5264 * 8ea1d2e4,d2e4,8ea1d2e4v,d2e4v 77dc e79f9c 77dc 000077dc ace1 ace1 ace1 ace1 ace1 ace1 ace1 -1979 ace2 ace2 ace2 * 5265 * 8ea1d2e5,d2e5,8ea1d2e5v,d2e5v 7802 e7a082 7802 00007802 ace2 ace2 ace2 ace2 ace2 ace2 ace2 -1980 ace3 ace3 ace3 * 5266 * 8ea1d2e6,d2e6,8ea1d2e6v,d2e6v 7814 e7a094 7814 00007814 ace3 ace3 ace3 ace3 ace3 ace3 ace3 -1981 ace4 ace4 ace4 * 5267 * 8ea1d2e7,d2e7,8ea1d2e7v,d2e7v 780c e7a08c 780c 0000780c ace4 ace4 ace4 ace4 ace4 ace4 ace4 -1982 ace5 ace5 ace5 * 5268 * 8ea1d2e8,d2e8,8ea1d2e8v,d2e8v 780d e7a08d 780d 0000780d ace5 ace5 ace5 ace5 ace5 ace5 ace5 -1983 ace6 ace6 ace6 * 5269 * 8ea1d2e9,d2e9,8ea1d2e9v,d2e9v 7946 e7a586 7946 00007946 ace6 ace6 ace6 ace6 ace6 ace6 ace6 -1984 ace7 ace7 ace7 * 526a * 8ea1d2ea,d2ea,8ea1d2eav,d2eav 7949 e7a589 7949 00007949 ace7 ace7 ace7 ace7 ace7 ace7 ace7 -1985 ace8 ace8 ace8 * 526b * 8ea1d2eb,d2eb,8ea1d2ebv,d2ebv 7948 e7a588 7948 00007948 ace8 ace8 ace8 ace8 ace8 ace8 ace8 -1986 ace9 ace9 ace9 * 526c * 8ea1d2ec,d2ec,8ea1d2ecv,d2ecv 7947 e7a587 7947 00007947 ace9 ace9,fb53,fd5e 9160,ace9 ace9 ace9 ace9 ace9 -1987 acea acea acea * 526d * 8ea1d2ed,d2ed,8ea1d2edv,d2edv 79b9 e7a6b9 79b9 000079b9 acea acea acea acea acea acea acea -1988 aceb aceb aceb * 526e * 8ea1d2ee,d2ee,8ea1d2eev,d2eev 79ba e7a6ba 79ba 000079ba aceb aceb aceb aceb aceb aceb aceb -1989 acec acec acec * 526f * 8ea1d2ef,d2ef,8ea1d2efv,d2efv 79d1 e7a791 79d1 000079d1 acec acec acec acec acec acec acec -1990 aced aced aced * 5270 * 8ea1d2f0,d2f0,8ea1d2f0v,d2f0v 79d2 e7a792 79d2 000079d2 aced aced aced aced aced aced aced -1991 acee acee acee * 5271 * 8ea1d2f1,d2f1,8ea1d2f1v,d2f1v 79cb e7a78b 79cb 000079cb acee acee acee acee acee acee acee -1992 acef acef acef * 5272 * 8ea1d2f2,d2f2,8ea1d2f2v,d2f2v 7a7f e7a9bf 7a7f 00007a7f acef acef acef acef acef acef acef -1993 acf0 acf0 acf0 * 5273 * 8ea1d2f3,d2f3,8ea1d2f3v,d2f3v 7a81 e7aa81 7a81 00007a81 acf0 acf0 acf0 acf0 acf0 acf0 acf0 -1994 acf1 acf1 acf1 * 5274 * 8ea1d2f4,d2f4,8ea1d2f4v,d2f4v 7aff e7abbf 7aff 00007aff acf1 acf1 acf1 acf1 acf1 acf1 acf1 -1995 acf2 acf2 acf2 * 5275 * 8ea1d2f5,d2f5,8ea1d2f5v,d2f5v 7afd e7abbd 7afd 00007afd acf2 acf2 acf2 acf2 acf2 acf2 acf2 -1996 acf3 acf3 acf3 * 5276 * 8ea1d2f6,d2f6,8ea1d2f6v,d2f6v 7c7d e7b1bd 7c7d 00007c7d acf3 acf3 acf3 acf3 acf3 acf3 acf3 -1997 acf4 acf4 acf4 * 5277 * 8ea1d2f7,d2f7,8ea1d2f7v,d2f7v 7d02 e7b482 7d02 00007d02 acf4 acf4 acf4 acf4 acf4 acf4 acf4 -1998 acf5 acf5 acf5 * 5278 * 8ea1d2f8,d2f8,8ea1d2f8v,d2f8v 7d05 e7b485 7d05 00007d05 acf5 acf5 acf5 acf5 acf5 acf5 acf5 -1999 acf6 acf6 acf6 * 5279 * 8ea1d2f9,d2f9,8ea1d2f9v,d2f9v 7d00 e7b480 7d00 00007d00 acf6 acf6 acf6 acf6 acf6 acf6 acf6 -2000 acf7 acf7 acf7 * 527a * 8ea1d2fa,d2fa,8ea1d2fav,d2fav 7d09 e7b489 7d09 00007d09 acf7 acf7 acf7 acf7 acf7 acf7 acf7 -2001 acf8 acf8 acf8 * 527b * 8ea1d2fb,d2fb,8ea1d2fbv,d2fbv 7d07 e7b487 7d07 00007d07 acf8 acf8 acf8 acf8 acf8 acf8 acf8 -2002 acf9 acf9 acf9 * 527c * 8ea1d2fc,d2fc,8ea1d2fcv,d2fcv 7d04 e7b484 7d04 00007d04 acf9 acf9 acf9 acf9 acf9 acf9 acf9 -2003 acfa acfa acfa * 527d * 8ea1d2fd,d2fd,8ea1d2fdv,d2fdv 7d06 e7b486 7d06 00007d06 acfa acfa acfa acfa acfa acfa acfa -2004 acfb acfb acfb * 527e * 8ea1d2fe,d2fe,8ea1d2fev,d2fev 7f38 e7bcb8 7f38 00007f38 acfb acfb acfb acfb acfb acfb acfb -2005 acfc acfc acfc * 5321 * 8ea1d3a1,d3a1,8ea1d3a1v,d3a1v 7f8e e7be8e 7f8e 00007f8e acfc acfc acfc acfc acfc acfc acfc -2006 acfd acfd acfd * 5322 * 8ea1d3a2,d3a2,8ea1d3a2v,d3a2v 7fbf e7bebf 7fbf 00007fbf acfd acfd acfd acfd acfd acfd acfd -2007 ad40 ad40 ad40 * 5323 * 8ea1d3a3,d3a3,8ea1d3a3v,d3a3v 8010 e88090 8010 00008010 ad40 ad40 ad40 ad40 ad40 ad40 ad40 -2008 ad41 ad41 ad41 * 5324 * 8ea1d3a4,d3a4,8ea1d3a4v,d3a4v 800d e8808d 800d 0000800d ad41 ad41 ad41 ad41 ad41 ad41 ad41 -2009 ad42 ad42 ad42 * 5325 * 8ea1d3a5,d3a5,8ea1d3a5v,d3a5v 8011 e88091 8011 00008011 ad42 ad42 ad42 ad42 ad42 ad42 ad42 -2010 ad43 ad43 ad43 * 5326 * 8ea1d3a6,d3a6,8ea1d3a6v,d3a6v 8036 e880b6 8036 00008036 ad43 ad43 ad43 ad43 ad43 ad43 ad43 -2011 ad44 ad44 ad44 * 5327 * 8ea1d3a7,d3a7,8ea1d3a7v,d3a7v 80d6 e88396 80d6 000080d6 ad44 ad44 ad44 ad44 ad44 ad44 ad44 -2012 ad45 ad45 ad45 * 5328 * 8ea1d3a8,d3a8,8ea1d3a8v,d3a8v 80e5 e883a5 80e5 000080e5 ad45 ad45 ad45 ad45 ad45 ad45 ad45 -2013 ad46 ad46 ad46 * 5329 * 8ea1d3a9,d3a9,8ea1d3a9v,d3a9v 80da e8839a 80da 000080da ad46 ad46 ad46 ad46 ad46 ad46 ad46 -2014 ad47 ad47 ad47 * 532a * 8ea1d3aa,d3aa,8ea1d3aav,d3aav 80c3 e88383 80c3 000080c3 ad47 ad47 ad47 ad47 ad47 ad47 ad47 -2015 ad48 ad48 ad48 * 532b * 8ea1d3ab,d3ab,8ea1d3abv,d3abv 80c4 e88384 80c4 000080c4 ad48 ad48 ad48 ad48 ad48 ad48 ad48 -2016 ad49 ad49 ad49 * 532c * 8ea1d3ac,d3ac,8ea1d3acv,d3acv 80cc e8838c 80cc 000080cc ad49 ad49 ad49 ad49 ad49 ad49 ad49 -2017 ad4a ad4a ad4a * 532d * 8ea1d3ad,d3ad,8ea1d3adv,d3adv 80e1 e883a1 80e1 000080e1 ad4a ad4a ad4a ad4a ad4a ad4a ad4a -2018 ad4b ad4b ad4b * 532e * 8ea1d3ae,d3ae,8ea1d3aev,d3aev 80db e8839b 80db 000080db ad4b ad4b ad4b ad4b ad4b ad4b ad4b -2019 ad4c ad4c ad4c * 532f * 8ea1d3af,d3af,8ea1d3afv,d3afv 80ce e8838e 80ce 000080ce ad4c ad4c ad4c ad4c ad4c ad4c ad4c -2020 ad4d ad4d ad4d * 5330 * 8ea1d3b0,d3b0,8ea1d3b0v,d3b0v 80de e8839e 80de 000080de ad4d ad4d ad4d ad4d ad4d ad4d ad4d -2021 ad4e ad4e ad4e * 5331 * 8ea1d3b1,d3b1,8ea1d3b1v,d3b1v 80e4 e883a4 80e4 000080e4 ad4e ad4e ad4e ad4e ad4e ad4e ad4e -2022 ad4f ad4f ad4f * 5332 * 8ea1d3b2,d3b2,8ea1d3b2v,d3b2v 80dd e8839d 80dd 000080dd ad4f ad4f ad4f ad4f ad4f ad4f ad4f -2023 ad50 ad50 ad50 * 5333 * 8ea1d3b3,d3b3,8ea1d3b3v,d3b3v 81f4 e887b4 81f4 000081f4 ad50 ad50 ad50 ad50 ad50 ad50 ad50 -2024 ad51 ad51 ad51 * 5334 * 8ea1d3b4,d3b4,8ea1d3b4v,d3b4v 8222 e888a2 8222 00008222 ad51 ad51 ad51 ad51 ad51 ad51 ad51 -2025 ad52 ad52 ad52 * 5335 * 8ea1d3b5,d3b5,8ea1d3b5v,d3b5v 82e7 e88ba7 82e7 000082e7 ad52 ad52 ad52 ad52 ad52 ad52 ad52 -2026 ad53 ad53 ad53 * 5336 * 8ea1d3b6,d3b6,8ea1d3b6v,d3b6v 8303 e88c83 8303 00008303 ad53 ad53 ad53 ad53 ad53 ad53 ad53 -2027 ad54 ad54 ad54 * 5337 * 8ea1d3b7,d3b7,8ea1d3b7v,d3b7v 8305 e88c85 8305 00008305 ad54 ad54 ad54 ad54 ad54 ad54 ad54 -2028 ad55 ad55 ad55 * 5338 * 8ea1d3b8,d3b8,8ea1d3b8v,d3b8v 82e3 e88ba3 82e3 000082e3 ad55 ad55 ad55 ad55 ad55 ad55 ad55 -2029 ad56 ad56 ad56 * 5339 * 8ea1d3b9,d3b9,8ea1d3b9v,d3b9v 82db e88b9b 82db 000082db ad56 ad56 ad56 ad56 ad56 ad56 ad56 -2030 ad57 ad57 ad57 * 533a * 8ea1d3ba,d3ba,8ea1d3bav,d3bav 82e6 e88ba6 82e6 000082e6 ad57 ad57 ad57 ad57 ad57 ad57 ad57 -2031 ad58 ad58 ad58 * 533b * 8ea1d3bb,d3bb,8ea1d3bbv,d3bbv 8304 e88c84 8304 00008304 ad58 ad58 ad58 ad58 ad58 ad58 ad58 -2032 ad59 ad59 ad59 * 533c * 8ea1d3bc,d3bc,8ea1d3bcv,d3bcv 82e5 e88ba5 82e5 000082e5 ad59 ad59 ad59 ad59 ad59 ad59 ad59 -2033 ad5a ad5a ad5a * 533d * 8ea1d3bd,d3bd,8ea1d3bdv,d3bdv 8302 e88c82 8302 00008302 ad5a ad5a ad5a ad5a ad5a ad5a ad5a -2034 ad5b ad5b ad5b * 533e * 8ea1d3be,d3be,8ea1d3bev,d3bev 8309 e88c89 8309 00008309 ad5b ad5b ad5b ad5b ad5b ad5b ad5b -2035 ad5c ad5c ad5c * 533f * 8ea1d3bf,d3bf,8ea1d3bfv,d3bfv 82d2 e88b92 82d2 000082d2 ad5c ad5c ad5c ad5c ad5c ad5c ad5c -2036 ad5d ad5d ad5d * 5340 * 8ea1d3c0,d3c0,8ea1d3c0v,d3c0v 82d7 e88b97 82d7 000082d7 ad5d ad5d ad5d ad5d ad5d ad5d ad5d -2037 ad5e ad5e ad5e * 5341 * 8ea1d3c1,d3c1,8ea1d3c1v,d3c1v 82f1 e88bb1 82f1 000082f1 ad5e ad5e ad5e ad5e ad5e ad5e ad5e -2038 ad5f ad5f ad5f * 5342 * 8ea1d3c2,d3c2,8ea1d3c2v,d3c2v 8301 e88c81 8301 00008301 ad5f ad5f ad5f ad5f ad5f ad5f ad5f -2039 ad60 ad60 ad60 * 5343 * 8ea1d3c3,d3c3,8ea1d3c3v,d3c3v 82dc e88b9c 82dc 000082dc ad60 ad60 ad60 ad60 ad60 ad60 ad60 -2040 ad61 ad61 ad61 * 5344 * 8ea1d3c4,d3c4,8ea1d3c4v,d3c4v 82d4 e88b94 82d4 000082d4 ad61 ad61 ad61 ad61 ad61 ad61 ad61 -2041 ad62 ad62 ad62 * 5345 * 8ea1d3c5,d3c5,8ea1d3c5v,d3c5v 82d1 e88b91 82d1 000082d1 ad62 ad62 ad62 ad62 ad62 ad62 ad62 -2042 ad63 ad63 ad63 * 5346 * 8ea1d3c6,d3c6,8ea1d3c6v,d3c6v 82de e88b9e 82de 000082de ad63 ad63 ad63 ad63 ad63 ad63 ad63 -2043 ad64 ad64 ad64 * 5347 * 8ea1d3c7,d3c7,8ea1d3c7v,d3c7v 82d3 e88b93 82d3 000082d3 ad64 ad64 ad64 ad64 ad64 ad64 ad64 -2044 ad65 ad65 ad65 * 5348 * 8ea1d3c8,d3c8,8ea1d3c8v,d3c8v 82df e88b9f 82df 000082df ad65 ad65 ad65 ad65 ad65 ad65 ad65 -2045 ad66 ad66 ad66 * 5349 * 8ea1d3c9,d3c9,8ea1d3c9v,d3c9v 82ef e88baf 82ef 000082ef ad66 ad66 ad66 ad66 ad66 ad66 ad66 -2046 ad67 ad67 ad67 * 534a * 8ea1d3ca,d3ca,8ea1d3cav,d3cav 8306 e88c86 8306 00008306 ad67 ad67 ad67 ad67 ad67 ad67 ad67 -2047 ad68 ad68 ad68 * 534b * 8ea1d3cb,d3cb,8ea1d3cbv,d3cbv 8650 e89990 8650 00008650 ad68 ad68 ad68 ad68 ad68 ad68 ad68 -2048 ad69 ad69 ad69 * 534c * 8ea1d3cc,d3cc,8ea1d3ccv,d3ccv 8679 e899b9 8679 00008679 ad69 ad69 ad69 ad69 ad69 ad69 ad69 -2049 ad6a ad6a ad6a * 534d * 8ea1d3cd,d3cd,8ea1d3cdv,d3cdv 867b e899bb 867b 0000867b ad6a ad6a ad6a ad6a ad6a ad6a ad6a -2050 ad6b ad6b ad6b * 534e * 8ea1d3ce,d3ce,8ea1d3cev,d3cev 867a e899ba 867a 0000867a ad6b ad6b ad6b ad6b ad6b ad6b ad6b -2051 ad6c ad6c ad6c * 534f * 8ea1d3cf,d3cf,8ea1d3cfv,d3cfv 884d e8a18d 884d 0000884d ad6c ad6c ad6c ad6c ad6c ad6c ad6c -2052 ad6d ad6d ad6d * 5350 * 8ea1d3d0,d3d0,8ea1d3d0v,d3d0v 886b e8a1ab 886b 0000886b ad6d ad6d ad6d ad6d ad6d ad6d ad6d -2053 ad6e ad6e ad6e * 5351 * 8ea1d3d1,d3d1,8ea1d3d1v,d3d1v 8981 e8a681 8981 00008981 ad6e ad6e ad6e ad6e ad6e ad6e ad6e -2054 ad6f ad6f ad6f * 5352 * 8ea1d3d2,d3d2,8ea1d3d2v,d3d2v 89d4 e8a794 89d4 000089d4 ad6f ad6f ad6f ad6f ad6f ad6f ad6f -2055 ad70 ad70 ad70 * 5353 * 8ea1d3d3,d3d3,8ea1d3d3v,d3d3v 8a08 e8a888 8a08 00008a08 ad70 ad70 ad70 ad70 ad70 ad70 ad70 -2056 ad71 ad71 ad71 * 5354 * 8ea1d3d4,d3d4,8ea1d3d4v,d3d4v 8a02 e8a882 8a02 00008a02 ad71 ad71 ad71 ad71 ad71 ad71 ad71 -2057 ad72 ad72 ad72 * 5355 * 8ea1d3d5,d3d5,8ea1d3d5v,d3d5v 8a03 e8a883 8a03 00008a03 ad72 ad72 ad72 ad72 ad72 ad72 ad72 -2058 ad73 ad73 ad73 * 5356 * 8ea1d3d6,d3d6,8ea1d3d6v,d3d6v 8c9e e8b29e 8c9e 00008c9e ad73 ad73 ad73 ad73 ad73 ad73 ad73 -2059 ad74 ad74 ad74 * 5357 * 8ea1d3d7,d3d7,8ea1d3d7v,d3d7v 8ca0 e8b2a0 8ca0 00008ca0 ad74 ad74 ad74 ad74 ad74 ad74 ad74 -2060 ad75 ad75 ad75 * 5358 * 8ea1d3d8,d3d8,8ea1d3d8v,d3d8v 8d74 e8b5b4 8d74 00008d74 ad75 ad75 ad75 ad75 ad75 ad75 ad75 -2061 ad76 ad76 ad76 * 5359 * 8ea1d3d9,d3d9,8ea1d3d9v,d3d9v 8d73 e8b5b3 8d73 00008d73 ad76 ad76 ad76 ad76 ad76 ad76 ad76 -2062 ad77 ad77 ad77 * 535a * 8ea1d3da,d3da,8ea1d3dav,d3dav 8db4 e8b6b4 8db4 00008db4 ad77 ad77 ad77 ad77 ad77 ad77 ad77 -2063 ad78 ad78 ad78 * 535b * 8ea1d3db,d3db,8ea1d3dbv,d3dbv 8ecd e8bb8d 8ecd 00008ecd ad78 ad78 ad78 ad78 ad78 ad78 ad78 -2064 ad79 ad79 ad79 * 535c * 8ea1d3dc,d3dc,8ea1d3dcv,d3dcv 8ecc e8bb8c 8ecc 00008ecc ad79 ad79 ad79 ad79 ad79 ad79 ad79 -2065 ad7a ad7a ad7a * 535d * 8ea1d3dd,d3dd,8ea1d3ddv,d3ddv 8ff0 e8bfb0 8ff0 00008ff0 ad7a ad7a ad7a ad7a ad7a ad7a ad7a -2066 ad7b ad7b ad7b * 535e * 8ea1d3de,d3de,8ea1d3dev,d3dev 8fe6 e8bfa6 8fe6 00008fe6 ad7b ad7b ad7b ad7b ad7b ad7b ad7b -2067 ad7c ad7c ad7c * 535f * 8ea1d3df,d3df,8ea1d3dfv,d3dfv 8fe2 e8bfa2 8fe2 00008fe2 ad7c ad7c ad7c ad7c ad7c ad7c ad7c -2068 ad7d ad7d ad7d * 5360 * 8ea1d3e0,d3e0,8ea1d3e0v,d3e0v 8fea e8bfaa 8fea 00008fea ad7d ad7d ad7d ad7d ad7d ad7d ad7d -2069 ad7e ad7e ad7e * 5361 * 8ea1d3e1,d3e1,8ea1d3e1v,d3e1v 8fe5 e8bfa5 8fe5 00008fe5 ad7e ad7e ad7e ad7e ad7e ad7e ad7e -2070 ada1 ada1 ada1 * 5362 * 8ea1d3e2,d3e2,8ea1d3e2v,d3e2v 8fed e8bfad 8fed 00008fed ada1 ada1 ada1 ada1 ada1 ada1 ada1 -2071 ada2 ada2 ada2 * 5363 * 8ea1d3e3,d3e3,8ea1d3e3v,d3e3v 8feb e8bfab 8feb 00008feb ada2 ada2 ada2 ada2 ada2 ada2 ada2 -2072 ada3 ada3 ada3 * 5364 * 8ea1d3e4,d3e4,8ea1d3e4v,d3e4v 8fe4 e8bfa4 8fe4 00008fe4 ada3 ada3 ada3 ada3 ada3 ada3 ada3 -2073 ada4 ada4 ada4 * 5365 * 8ea1d3e5,d3e5,8ea1d3e5v,d3e5v 8fe8 e8bfa8 8fe8 00008fe8 ada4 ada4 ada4 ada4 ada4 ada4 ada4 -2074 ada5 ada5 ada5 * 5366 * 8ea1d3e6,d3e6,8ea1d3e6v,d3e6v 90ca e9838a 90ca 000090ca ada5 ada5 ada5 ada5 ada5 ada5 ada5 -2075 ada6 ada6 ada6 * 5367 * 8ea1d3e7,d3e7,8ea1d3e7v,d3e7v 90ce e9838e 90ce 000090ce ada6 ada6 ada6 ada6 ada6 ada6 ada6 -2076 ada7 ada7 ada7 * 5368 * 8ea1d3e8,d3e8,8ea1d3e8v,d3e8v 90c1 e98381 90c1 000090c1 ada7 ada7 ada7 ada7 ada7 ada7 ada7 -2077 ada8 ada8 ada8 * 5369 * 8ea1d3e9,d3e9,8ea1d3e9v,d3e9v 90c3 e98383 90c3 000090c3 ada8 ada8 ada8 ada8 ada8 ada8 ada8 -2078 ada9 ada9 ada9 * 536a * 8ea1d3ea,d3ea,8ea1d3eav,d3eav 914b e9858b 914b 0000914b ada9 ada9 ada9 ada9 ada9 ada9 ada9 -2079 adaa adaa adaa * 536b * 8ea1d3eb,d3eb,8ea1d3ebv,d3ebv 914a e9858a 914a 0000914a adaa adaa adaa adaa adaa adaa adaa -2080 adab adab adab * 536c * 8ea1d3ec,d3ec,8ea1d3ecv,d3ecv 91cd e9878d 91cd 000091cd adab adab adab adab adab adab adab -2081 adac adac adac * 536d * 8ea1d3ed,d3ed,8ea1d3edv,d3edv 9582 e99682 9582 00009582 adac adac adac adac adac adac adac -2082 adad adad adad * 536e * 8ea1d3ee,d3ee,8ea1d3eev,d3eev 9650 e99990 9650 00009650 adad adad adad adad adad adad adad -2083 adae adae adae * 536f * 8ea1d3ef,d3ef,8ea1d3efv,d3efv 964b e9998b 964b 0000964b adae adae adae adae adae adae adae -2084 adaf adaf adaf * 5370 * 8ea1d3f0,d3f0,8ea1d3f0v,d3f0v 964c e9998c 964c 0000964c adaf adaf adaf adaf adaf adaf adaf -2085 adb0 adb0 adb0 * 5371 * 8ea1d3f1,d3f1,8ea1d3f1v,d3f1v 964d e9998d 964d 0000964d adb0 adb0 adb0 adb0 adb0 adb0 adb0 -2086 adb1 adb1 adb1 * 2871,5372 * 8ea1a8f1,8ea1d3f2,a8f1,d3f2,8ea1a8f1v,8ea1d3f2v,a8f1v,d3f2v 9762 e99da2,e2beaf 9762,2faf 00009762,00002faf adb1 adb1 adb1 adb1 adb1 adb1 adb1 -2087 adb2 adb2 adb2 * 2872,5373 * 8ea1a8f2,8ea1d3f3,a8f2,d3f3,8ea1a8f2v,8ea1d3f3v,a8f2v,d3f3v 9769 e99da9,e2beb0 9769,2fb0 00009769,00002fb0 adb2 adb2 adb2 adb2 adb2 adb2 adb2 -2088 adb3 adb3 adb3 * 2873,5374 * 8ea1a8f3,8ea1d3f4,a8f3,d3f4,8ea1a8f3v,8ea1d3f4v,a8f3v,d3f4v 97cb e99f8b,e2beb1 97cb,2fb1 000097cb,00002fb1 adb3 adb3 adb3 adb3 adb3 adb3 adb3 -2089 adb4 adb4 adb4 * 2874,5375 * 8ea1a8f4,8ea1d3f5,a8f4,d3f5,8ea1a8f4v,8ea1d3f5v,a8f4v,d3f5v 97ed e99fad,e2beb2 97ed,2fb2 000097ed,00002fb2 adb4 adb4 adb4 adb4 adb4 adb4 adb4 -2090 adb5 adb5 adb5 * 2875,5376 * 8ea1a8f5,8ea1d3f6,a8f5,d3f6,8ea1a8f5v,8ea1d3f6v,a8f5v,d3f6v 97f3 e99fb3,e2beb3 97f3,2fb3 000097f3,00002fb3 adb5 adb5 adb5 adb5 adb5 adb5 adb5 -2091 adb6 adb6 adb6 * 2876,5377 * 8ea1a8f6,8ea1d3f7,a8f6,d3f7,8ea1a8f6v,8ea1d3f7v,a8f6v,d3f7v 9801 e9a081,e2beb4 9801,2fb4 00009801,00002fb4 adb6 adb6 adb6 adb6 adb6 adb6 adb6 -2092 adb7 adb7 adb7 * 2877,5378 * 8ea1a8f7,8ea1d3f8,a8f7,d3f8,8ea1a8f7v,8ea1d3f8v,a8f7v,d3f8v 98a8 e9a2a8,e2beb5 98a8,2fb5 000098a8,00002fb5 adb7 adb7 adb7 adb7 adb7 adb7 adb7 -2093 adb8 adb8 adb8 * 2878,5379 * 8ea1a8f8,8ea1d3f9,a8f8,d3f9,8ea1a8f8v,8ea1d3f9v,a8f8v,d3f9v 98db e9a39b,e2beb6 98db,2fb6 000098db,00002fb6 adb8 adb8 adb8 adb8 adb8 adb8 adb8 -2094 adb9 adb9 adb9 * 2879,537a * 8ea1a8f9,8ea1d3fa,a8f9,d3fa,8ea1a8f9v,8ea1d3fav,a8f9v,d3fav 98df e9a39f,e2beb7 98df,2fb7 000098df,00002fb7 adb9 adb9 adb9 adb9 adb9 adb9 adb9 -2095 adba adba adba * 287a,537b * 8ea1a8fa,8ea1d3fb,a8fa,d3fb,8ea1a8fav,8ea1d3fbv,a8fav,d3fbv 9996 e9a696,e2beb8 9996,2fb8 00009996,00002fb8 adba adba adba adba adba adba adba -2096 adbb adbb adbb * 287b,537c * 8ea1a8fb,8ea1d3fc,a8fb,d3fc,8ea1a8fbv,8ea1d3fcv,a8fbv,d3fcv 9999 e9a699,e2beb9 9999,2fb9 00009999,00002fb9 adbb adbb adbb adbb adbb adbb adbb -2097 adbc adbc adbc * 537d * 8ea1d3fd,d3fd,8ea1d3fdv,d3fdv 4e58 e4b998 4e58 00004e58 adbc adbc adbc adbc adbc adbc adbc -2098 adbd adbd adbd * 537e * 8ea1d3fe,d3fe,8ea1d3fev,d3fev 4eb3 e4bab3 4eb3 00004eb3 adbd adbd adbd adbd adbd adbd adbd -2099 adbe adbe adbe * 5421 * 8ea1d4a1,d4a1,8ea1d4a1v,d4a1v 500c e5808c 500c 0000500c adbe adbe adbe adbe adbe adbe adbe -2100 adbf adbf adbf * 5422 * 8ea1d4a2,d4a2,8ea1d4a2v,d4a2v 500d e5808d 500d 0000500d adbf adbf adbf adbf adbf adbf adbf -2101 adc0 adc0 adc0 * 5423 * 8ea1d4a3,d4a3,8ea1d4a3v,d4a3v 5023 e580a3 5023 00005023 adc0 adc0 adc0 adc0 adc0 adc0 adc0 -2102 adc1 adc1 adc1 * 5424 * 8ea1d4a4,d4a4,8ea1d4a4v,d4a4v 4fef e4bfaf 4fef 00004fef adc1 adc1 adc1 adc1 adc1 adc1 adc1 -2103 adc2 adc2 adc2 * 5425 * 8ea1d4a5,d4a5,8ea1d4a5v,d4a5v 5026 e580a6 5026 00005026 adc2 adc2 adc2 adc2 adc2 adc2 adc2 -2104 adc3 adc3 adc3 * 5426 * 8ea1d4a6,d4a6,8ea1d4a6v,d4a6v 5025 e580a5 5025 00005025 adc3 adc3 adc3 adc3 adc3 adc3 adc3 -2105 adc4 adc4 adc4 * 5427 * 8ea1d4a7,d4a7,8ea1d4a7v,d4a7v 4ff8 e4bfb8 4ff8 00004ff8 adc4 adc4 adc4 adc4 adc4 adc4 adc4 -2106 adc5 adc5 adc5 * 5428 * 8ea1d4a8,d4a8,8ea1d4a8v,d4a8v 5029 e580a9,ee809f 5029,e01f 00005029,0000e01f fa5f,adc5 adc5 adc5 adc5 adc5 adc5 fa5f,adc5 -2107 adc6 adc6 adc6 * 5429 * 8ea1d4a9,d4a9,8ea1d4a9v,d4a9v 5016 e58096 5016 00005016 adc6 adc6 adc6 adc6 adc6 adc6 adc6 -2108 adc7 adc7 adc7 * 542a * 8ea1d4aa,d4aa,8ea1d4aav,d4aav 5006 e58086 5006 00005006 adc7 adc7 adc7 adc7 adc7 adc7 adc7 -2109 adc8 adc8 adc8 * 542b * 8ea1d4ab,d4ab,8ea1d4abv,d4abv 503c e580bc 503c 0000503c adc8 adc8 adc8 adc8 adc8 adc8 adc8 -2110 adc9 adc9 adc9 * 542c * 8ea1d4ac,d4ac,8ea1d4acv,d4acv 501f e5809f 501f 0000501f adc9 adc9 adc9 adc9 adc9 adc9 adc9 -2111 adca adca adca * 542d * 8ea1d4ad,d4ad,8ea1d4adv,d4adv 501a e5809a 501a 0000501a adca adca adca adca adca adca adca -2112 adcb adcb adcb * 542e * 8ea1d4ae,d4ae,8ea1d4aev,d4aev 5012 e58092 5012 00005012 adcb adcb adcb adcb adcb adcb adcb -2113 adcc adcc adcc * 542f * 8ea1d4af,d4af,8ea1d4afv,d4afv 5011 e58091 5011 00005011 adcc adcc adcc adcc adcc adcc adcc -2114 adcd adcd adcd * 5430 * 8ea1d4b0,d4b0,8ea1d4b0v,d4b0v 4ffa e4bfba 4ffa 00004ffa adcd adcd adcd adcd adcd adcd adcd -2115 adce adce adce * 5431 * 8ea1d4b1,d4b1,8ea1d4b1v,d4b1v 5000 e58080 5000 00005000 adce adce adce adce adce adce adce -2116 adcf adcf adcf * 5432 * 8ea1d4b2,d4b2,8ea1d4b2v,d4b2v 5014 e58094 5014 00005014 adcf adcf adcf adcf adcf adcf adcf -2117 add0 add0 add0 * 5433 * 8ea1d4b3,d4b3,8ea1d4b3v,d4b3v 5028 e580a8 5028 00005028 add0 add0 add0 add0 add0 add0 add0 -2118 add1 add1 add1 * 5434 * 8ea1d4b4,d4b4,8ea1d4b4v,d4b4v 4ff1 e4bfb1 4ff1 00004ff1 add1 add1 add1 add1 add1 add1 add1 -2119 add2 add2 add2 * 5435 * 8ea1d4b5,d4b5,8ea1d4b5v,d4b5v 5021 e580a1 5021 00005021 add2 add2 add2 add2 add2 add2 add2 -2120 add3 add3 add3 * 5436 * 8ea1d4b6,d4b6,8ea1d4b6v,d4b6v 500b e5808b 500b 0000500b add3 add3 add3 add3 add3 add3 add3 -2121 add4 add4 add4 * 5437 * 8ea1d4b7,d4b7,8ea1d4b7v,d4b7v 5019 e58099 5019 00005019 add4 add4 add4 add4 add4 add4 add4 -2122 add5 add5 add5 * 5438 * 8ea1d4b8,d4b8,8ea1d4b8v,d4b8v 5018 e58098 5018 00005018 add5 add5 add5 add5 add5 add5 add5 -2123 add6 add6 add6 * 5439 * 8ea1d4b9,d4b9,8ea1d4b9v,d4b9v 4ff3 e4bfb3 4ff3 00004ff3 add6 add6 add6 add6 add6 add6 add6 -2124 add7 add7 add7 * 543a * 8ea1d4ba,d4ba,8ea1d4bav,d4bav 4fee e4bfae 4fee 00004fee add7 add7 add7 add7 add7 add7 add7 -2125 add8 add8 add8 * 543b * 8ea1d4bb,d4bb,8ea1d4bbv,d4bbv 502d e580ad 502d 0000502d add8 add8 add8 add8 add8 add8 add8 -2126 add9 add9 add9 * 543c * 8ea1d4bc,d4bc,8ea1d4bcv,d4bcv 502a e580aa 502a 0000502a add9 add9 add9 add9 add9 add9 add9 -2127 adda adda adda * 543d * 8ea1d4bd,d4bd,8ea1d4bdv,d4bdv 4ffe e4bfbe 4ffe 00004ffe adda adda adda adda adda adda adda -2128 addb addb addb * 543e * 8ea1d4be,d4be,8ea1d4bev,d4bev 502b e580ab 502b 0000502b addb addb addb addb addb addb addb -2129 addc addc addc * 543f * 8ea1d4bf,d4bf,8ea1d4bfv,d4bfv 5009 e58089 5009 00005009 addc addc addc addc addc addc addc -2130 addd addd addd * 5440 * 8ea1d4c0,d4c0,8ea1d4c0v,d4c0v 517c e585bc 517c 0000517c addd addd addd addd addd addd addd -2131 adde adde adde * 5441 * 8ea1d4c1,d4c1,8ea1d4c1v,d4c1v 51a4 e586a4 51a4 000051a4 adde adde adde adde adde adde adde -2132 addf addf addf * 5442 * 8ea1d4c2,d4c2,8ea1d4c2v,d4c2v 51a5 e586a5 51a5 000051a5 addf addf addf addf addf addf addf -2133 ade0 ade0 ade0 * 5443 * 8ea1d4c3,d4c3,8ea1d4c3v,d4c3v 51a2 e586a2 51a2 000051a2 ade0 ade0 ade0 ade0 ade0 ade0 ade0 -2134 ade1 ade1 ade1 * 5444 * 8ea1d4c4,d4c4,8ea1d4c4v,d4c4v 51cd e5878d 51cd 000051cd ade1 ade1 ade1 ade1 ade1 ade1 ade1 -2135 ade2 ade2 ade2 * 5445 * 8ea1d4c5,d4c5,8ea1d4c5v,d4c5v 51cc e5878c 51cc 000051cc ade2 ade2 ade2 ade2 ade2 ade2 ade2 -2136 ade3 ade3 ade3 * 5446 * 8ea1d4c6,d4c6,8ea1d4c6v,d4c6v 51c6 e58786 51c6 000051c6 ade3 ade3 ade3 ade3 ade3 ade3 ade3 -2137 ade4 ade4 ade4 * 5447 * 8ea1d4c7,d4c7,8ea1d4c7v,d4c7v 51cb e5878b 51cb 000051cb ade4 ade4 ade4 ade4 ade4 ade4 ade4 -2138 ade5 ade5 ade5 * 5448 * 8ea1d4c8,d4c8,8ea1d4c8v,d4c8v 5256 e58996 5256 00005256 ade5 ade5 ade5 ade5 ade5 ade5 ade5 -2139 ade6 ade6 ade6 * 5449 * 8ea1d4c9,d4c9,8ea1d4c9v,d4c9v 525c e5899c 525c 0000525c ade6 ade6 ade6 ade6 ade6 ade6 ade6 -2140 ade7 ade7 ade7 * 544a * 8ea1d4ca,d4ca,8ea1d4cav,d4cav 5254 e58994 5254 00005254 ade7 ade7 ade7 ade7 ade7 ade7 ade7 -2141 ade8 ade8 ade8 * 544b * 8ea1d4cb,d4cb,8ea1d4cbv,d4cbv 525b e5899b 525b 0000525b ade8 ade8 ade8 ade8 ade8 ade8 ade8 -2142 ade9 ade9 ade9 * 544c * 8ea1d4cc,d4cc,8ea1d4ccv,d4ccv 525d e5899d 525d 0000525d ade9 ade9 ade9 ade9 ade9 ade9 ade9 -2143 adea adea adea * 544d * 8ea1d4cd,d4cd,8ea1d4cdv,d4cdv 532a e58caa 532a 0000532a adea adea adea adea adea adea adea -2144 adeb adeb adeb * 544e * 8ea1d4ce,d4ce,8ea1d4cev,d4cev 537f e58dbf,ee81b3 537f,e073 0000537f,0000e073 fad5,adeb adeb adeb adeb adeb adeb fad5,adeb -2145 adec adec adec * 544f * 8ea1d4cf,d4cf,8ea1d4cfv,d4cfv 539f e58e9f 539f 0000539f adec adec adec adec adec adec adec -2146 aded aded aded * 5450 * 8ea1d4d0,d4d0,8ea1d4d0v,d4d0v 539d e58e9d 539d 0000539d aded aded aded aded aded aded aded -2147 adee adee adee * 5451 * 8ea1d4d1,d4d1,8ea1d4d1v,d4d1v 53df e58f9f 53df 000053df adee adee adee adee adee adee adee -2148 adef adef adef * 5452 * 8ea1d4d2,d4d2,8ea1d4d2v,d4d2v 54e8 e593a8 54e8 000054e8 adef adef adef adef adef adef adef -2149 adf0 adf0 adf0 * 5453 * 8ea1d4d3,d4d3,8ea1d4d3v,d4d3v 5510 e59490 5510 00005510 adf0 adf0 adf0 adf0 adf0 adf0 adf0 -2150 adf1 adf1 adf1 * 5454 * 8ea1d4d4,d4d4,8ea1d4d4v,d4d4v 5501 e59481 5501 00005501 adf1 adf1 adf1 adf1 adf1 adf1 adf1 -2151 adf2 adf2 adf2 * 5455 * 8ea1d4d5,d4d5,8ea1d4d5v,d4d5v 5537 e594b7 5537 00005537 adf2 adf2 adf2 adf2 adf2 adf2 adf2 -2152 adf3 adf3 adf3 * 5456 * 8ea1d4d6,d4d6,8ea1d4d6v,d4d6v 54fc e593bc 54fc 000054fc adf3 adf3 adf3 adf3 adf3 adf3 adf3 -2153 adf4 adf4 adf4 * 5457 * 8ea1d4d7,d4d7,8ea1d4d7v,d4d7v 54e5 e593a5 54e5 000054e5 adf4 adf4 adf4 adf4 adf4 adf4 adf4 -2154 adf5 adf5 adf5 * 5458 * 8ea1d4d8,d4d8,8ea1d4d8v,d4d8v 54f2 e593b2 54f2 000054f2 adf5 adf5 adf5 adf5 adf5 adf5 adf5 -2155 adf6 adf6 adf6 * 5459 * 8ea1d4d9,d4d9,8ea1d4d9v,d4d9v 5506 e59486 5506 00005506 adf6 adf6 adf6 adf6 adf6 adf6 adf6 -2156 adf7 adf7 adf7 * 545a * 8ea1d4da,d4da,8ea1d4dav,d4dav 54fa e593ba 54fa 000054fa adf7 adf7 adf7 adf7 adf7 adf7 adf7 -2157 adf8 adf8 adf8 * 545b * 8ea1d4db,d4db,8ea1d4dbv,d4dbv 5514 e59494 5514 00005514 adf8 adf8 adf8 adf8 adf8 adf8 adf8 -2158 adf9 adf9 adf9 * 545c * 8ea1d4dc,d4dc,8ea1d4dcv,d4dcv 54e9 e593a9 54e9 000054e9 adf9 adf9 adf9 adf9 adf9 adf9 adf9 -2159 adfa adfa adfa * 545d * 8ea1d4dd,d4dd,8ea1d4ddv,d4ddv 54ed e593ad 54ed 000054ed adfa adfa adfa adfa adfa adfa adfa -2160 adfb adfb adfb * 545e * 8ea1d4de,d4de,8ea1d4dev,d4dev 54e1 e593a1 54e1 000054e1 adfb adfb adfb adfb adfb adfb adfb -2161 adfc adfc adfc * 545f * 8ea1d4df,d4df,8ea1d4dfv,d4dfv 5509 e59489 5509 00005509 adfc adfc,fbd3 9062,adfc adfc adfc adfc adfc -2162 adfd adfd adfd * 5460 * 8ea1d4e0,d4e0,8ea1d4e0v,d4e0v 54ee e593ae 54ee 000054ee adfd adfd adfd adfd adfd adfd adfd -2163 adfe adfe adfe * 5461 * 8ea1d4e1,d4e1,8ea1d4e1v,d4e1v 54ea e593aa 54ea 000054ea adfe adfe adfe adfe adfe adfe adfe -2164 ae40 ae40 ae40 * 5462 * 8ea1d4e2,d4e2,8ea1d4e2v,d4e2v 54e6 e593a6 54e6 000054e6 ae40 ae40 ae40 ae40 ae40 ae40 ae40 -2165 ae41 ae41 ae41 * 5463 * 8ea1d4e3,d4e3,8ea1d4e3v,d4e3v 5527 e594a7 5527 00005527 ae41 ae41 ae41 ae41 ae41 ae41 ae41 -2166 ae42 ae42 ae42 * 5464 * 8ea1d4e4,d4e4,8ea1d4e4v,d4e4v 5507 e59487 5507 00005507 ae42 ae42 ae42 ae42 ae42 ae42 ae42 -2167 ae43 ae43 ae43 * 5465 * 8ea1d4e5,d4e5,8ea1d4e5v,d4e5v 54fd e593bd 54fd 000054fd ae43 ae43 ae43 ae43 ae43 ae43 ae43 -2168 ae44 ae44 ae44 * 5466 * 8ea1d4e6,d4e6,8ea1d4e6v,d4e6v 550f e5948f 550f 0000550f ae44 ae44 ae44 ae44 ae44 ae44 ae44 -2169 ae45 ae45 ae45 * 5467 * 8ea1d4e7,d4e7,8ea1d4e7v,d4e7v 5703 e59c83 5703 00005703 ae45 ae45 ae45 ae45 ae45 ae45 ae45 -2170 ae46 ae46 ae46 * 5468 * 8ea1d4e8,d4e8,8ea1d4e8v,d4e8v 5704 e59c84 5704 00005704 ae46 ae46 ae46 ae46 ae46 ae46 ae46 -2171 ae47 ae47 ae47 * 5469 * 8ea1d4e9,d4e9,8ea1d4e9v,d4e9v 57c2 e59f82 57c2 000057c2 ae47 ae47 ae47 ae47 ae47 ae47 ae47 -2172 ae48 ae48 ae48 * 546a * 8ea1d4ea,d4ea,8ea1d4eav,d4eav 57d4 e59f94 57d4 000057d4 ae48 ae48 ae48 ae48 ae48 ae48 ae48 -2173 ae49 ae49 ae49 * 546b * 8ea1d4eb,d4eb,8ea1d4ebv,d4ebv 57cb e59f8b 57cb 000057cb ae49 ae49 ae49 ae49 ae49 ae49 ae49 -2174 ae4a ae4a ae4a * 546c * 8ea1d4ec,d4ec,8ea1d4ecv,d4ecv 57c3 e59f83 57c3 000057c3 ae4a ae4a ae4a ae4a ae4a ae4a ae4a -2175 ae4b ae4b ae4b * 546d * 8ea1d4ed,d4ed,8ea1d4edv,d4edv 5809 e5a089 5809 00005809 ae4b ae4b ae4b ae4b ae4b ae4b ae4b -2176 ae4c ae4c ae4c * 546e * 8ea1d4ee,d4ee,8ea1d4eev,d4eev 590f e5a48f 590f 0000590f ae4c ae4c ae4c ae4c ae4c ae4c ae4c -2177 ae4d ae4d ae4d * 546f * 8ea1d4ef,d4ef,8ea1d4efv,d4efv 5957 e5a597 5957 00005957 ae4d ae4d ae4d ae4d ae4d ae4d ae4d -2178 ae4e ae4e ae4e * 5470 * 8ea1d4f0,d4f0,8ea1d4f0v,d4f0v 5958 e5a598 5958 00005958 ae4e ae4e ae4e ae4e ae4e ae4e ae4e -2179 ae4f ae4f ae4f * 5471 * 8ea1d4f1,d4f1,8ea1d4f1v,d4f1v 595a e5a59a 595a 0000595a ae4f ae4f ae4f ae4f ae4f ae4f ae4f -2180 ae50 ae50 ae50 * 5472 * 8ea1d4f2,d4f2,8ea1d4f2v,d4f2v 5a11 e5a891 5a11 00005a11 ae50 ae50 ae50 ae50 ae50 ae50 ae50 -2181 ae51 ae51 ae51 * 5473 * 8ea1d4f3,d4f3,8ea1d4f3v,d4f3v 5a18 e5a898 5a18 00005a18 ae51 ae51 ae51 ae51 ae51 ae51 ae51 -2182 ae52 ae52 ae52 * 5474 * 8ea1d4f4,d4f4,8ea1d4f4v,d4f4v 5a1c e5a89c 5a1c 00005a1c ae52 ae52 ae52 ae52 ae52 ae52 ae52 -2183 ae53 ae53 ae53 * 5475 * 8ea1d4f5,d4f5,8ea1d4f5v,d4f5v 5a1f e5a89f 5a1f 00005a1f ae53 ae53 ae53 ae53 ae53 ae53 ae53 -2184 ae54 ae54 ae54 * 5476 * 8ea1d4f6,d4f6,8ea1d4f6v,d4f6v 5a1b e5a89b 5a1b 00005a1b ae54 ae54 ae54 ae54 ae54 ae54 ae54 -2185 ae55 ae55 ae55 * 5477 * 8ea1d4f7,d4f7,8ea1d4f7v,d4f7v 5a13 e5a893 5a13 00005a13 ae55 ae55 ae55 ae55 ae55 ae55 ae55 -2186 ae56 ae56 ae56 * 5478 * 8ea1d4f8,d4f8,8ea1d4f8v,d4f8v 59ec e5a7ac 59ec 000059ec ae56 ae56 ae56 ae56 ae56 ae56 ae56 -2187 ae57 ae57 ae57 * 5479 * 8ea1d4f9,d4f9,8ea1d4f9v,d4f9v 5a20 e5a8a0 5a20 00005a20 ae57 ae57 ae57 ae57 ae57 ae57 ae57 -2188 ae58 ae58 ae58 * 547a * 8ea1d4fa,d4fa,8ea1d4fav,d4fav 5a23 e5a8a3 5a23 00005a23 ae58 ae58 ae58 ae58 ae58 ae58 ae58 -2189 ae59 ae59 ae59 * 547b * 8ea1d4fb,d4fb,8ea1d4fbv,d4fbv 5a29 e5a8a9 5a29 00005a29 ae59 ae59 ae59 ae59 ae59 ae59 ae59 -2190 ae5a ae5a ae5a * 547c * 8ea1d4fc,d4fc,8ea1d4fcv,d4fcv 5a25 e5a8a5 5a25 00005a25 ae5a ae5a ae5a ae5a ae5a ae5a ae5a -2191 ae5b ae5b ae5b * 547d * 8ea1d4fd,d4fd,8ea1d4fdv,d4fdv 5a0c e5a88c 5a0c 00005a0c ae5b ae5b ae5b ae5b ae5b ae5b ae5b -2192 ae5c ae5c ae5c * 547e * 8ea1d4fe,d4fe,8ea1d4fev,d4fev 5a09 e5a889 5a09 00005a09 ae5c ae5c ae5c ae5c ae5c ae5c ae5c -2193 ae5d ae5d ae5d * 5521 * 8ea1d5a1,d5a1,8ea1d5a1v,d5a1v 5b6b e5adab 5b6b 00005b6b ae5d ae5d ae5d ae5d ae5d ae5d ae5d -2194 ae5e ae5e ae5e * 5522 * 8ea1d5a2,d5a2,8ea1d5a2v,d5a2v 5c58 e5b198 5c58 00005c58 ae5e ae5e ae5e ae5e ae5e ae5e ae5e -2195 ae5f ae5f ae5f * 5523 * 8ea1d5a3,d5a3,8ea1d5a3v,d5a3v 5bb0 e5aeb0 5bb0 00005bb0 ae5f ae5f ae5f ae5f ae5f ae5f ae5f -2196 ae60 ae60 ae60 * 5524 * 8ea1d5a4,d5a4,8ea1d5a4v,d5a4v 5bb3 e5aeb3 5bb3 00005bb3 ae60 ae60 ae60 ae60 ae60 ae60 ae60 -2197 ae61 ae61 ae61 * 5525 * 8ea1d5a5,d5a5,8ea1d5a5v,d5a5v 5bb6 e5aeb6 5bb6 00005bb6 ae61 ae61 ae61 ae61 ae61 ae61 ae61 -2198 ae62 ae62 ae62 * 5526 * 8ea1d5a6,d5a6,8ea1d5a6v,d5a6v 5bb4 e5aeb4 5bb4 00005bb4 ae62 ae62 ae62 ae62 ae62 ae62 ae62 -2199 ae63 ae63 ae63 * 5527 * 8ea1d5a7,d5a7,8ea1d5a7v,d5a7v 5bae e5aeae 5bae 00005bae ae63 ae63 ae63 ae63 ae63 ae63 ae63 -2200 ae64 ae64 ae64 * 5528 * 8ea1d5a8,d5a8,8ea1d5a8v,d5a8v 5bb5 e5aeb5 5bb5 00005bb5 ae64 ae64 ae64 ae64 ae64 ae64 ae64 -2201 ae65 ae65 ae65 * 5529 * 8ea1d5a9,d5a9,8ea1d5a9v,d5a9v 5bb9 e5aeb9 5bb9 00005bb9 ae65 ae65 ae65 ae65 ae65 ae65 ae65 -2202 ae66 ae66 ae66 * 552a * 8ea1d5aa,d5aa,8ea1d5aav,d5aav 5bb8 e5aeb8 5bb8 00005bb8 ae66 ae66 ae66 ae66 ae66 ae66 ae66 -2203 ae67 ae67 ae67 * 552b * 8ea1d5ab,d5ab,8ea1d5abv,d5abv 5c04 e5b084 5c04 00005c04 ae67 ae67 ae67 ae67 ae67 ae67 ae67 -2204 ae68 ae68 ae68 * 552c * 8ea1d5ac,d5ac,8ea1d5acv,d5acv 5c51 e5b191 5c51 00005c51 ae68 ae68 ae68 ae68 ae68 ae68 ae68 -2205 ae69 ae69 ae69 * 552d * 8ea1d5ad,d5ad,8ea1d5adv,d5adv 5c55 e5b195 5c55 00005c55 ae69 ae69 ae69 ae69 ae69 ae69 ae69 -2206 ae6a ae6a ae6a * 552e * 8ea1d5ae,d5ae,8ea1d5aev,d5aev 5c50 e5b190 5c50 00005c50 ae6a ae6a ae6a ae6a ae6a ae6a ae6a -2207 ae6b ae6b ae6b * 552f * 8ea1d5af,d5af,8ea1d5afv,d5afv 5ced e5b3ad 5ced 00005ced ae6b ae6b ae6b ae6b ae6b ae6b ae6b -2208 ae6c ae6c ae6c * 5530 * 8ea1d5b0,d5b0,8ea1d5b0v,d5b0v 5cfd e5b3bd 5cfd 00005cfd ae6c ae6c ae6c ae6c ae6c ae6c ae6c -2209 ae6d ae6d ae6d * 5531 * 8ea1d5b1,d5b1,8ea1d5b1v,d5b1v 5cfb e5b3bb 5cfb 00005cfb ae6d ae6d ae6d ae6d ae6d ae6d ae6d -2210 ae6e ae6e ae6e * 5532 * 8ea1d5b2,d5b2,8ea1d5b2v,d5b2v 5cea e5b3aa 5cea 00005cea ae6e ae6e ae6e ae6e ae6e ae6e ae6e -2211 ae6f ae6f ae6f * 5533 * 8ea1d5b3,d5b3,8ea1d5b3v,d5b3v 5ce8 e5b3a8 5ce8 00005ce8 ae6f ae6f ae6f ae6f ae6f ae6f ae6f -2212 ae70 ae70 ae70 * 5534 * 8ea1d5b4,d5b4,8ea1d5b4v,d5b4v 5cf0 e5b3b0 5cf0 00005cf0 ae70 ae70 ae70 ae70 ae70 ae70 ae70 -2213 ae71 ae71 ae71 * 5535 * 8ea1d5b5,d5b5,8ea1d5b5v,d5b5v 5cf6 e5b3b6 5cf6 00005cf6 ae71 ae71 ae71 ae71 ae71 ae71 ae71 -2214 ae72 ae72 ae72 * 5536 * 8ea1d5b6,d5b6,8ea1d5b6v,d5b6v 5d01 e5b481 5d01 00005d01 ae72 ae72 ae72 ae72 ae72 ae72 ae72 -2215 ae73 ae73 ae73 * 5537 * 8ea1d5b7,d5b7,8ea1d5b7v,d5b7v 5cf4 e5b3b4 5cf4 00005cf4 ae73 ae73 ae73 ae73 ae73 ae73 ae73 -2216 ae74 ae74 ae74 * 5538 * 8ea1d5b8,d5b8,8ea1d5b8v,d5b8v 5dee e5b7ae 5dee 00005dee ae74 ae74 ae74 ae74 ae74 ae74 ae74 -2217 ae75 ae75 ae75 * 5539 * 8ea1d5b9,d5b9,8ea1d5b9v,d5b9v 5e2d e5b8ad 5e2d 00005e2d ae75 ae75 ae75 ae75 ae75 ae75 ae75 -2218 ae76 ae76 ae76 * 553a * 8ea1d5ba,d5ba,8ea1d5bav,d5bav 5e2b e5b8ab 5e2b 00005e2b ae76 ae76 ae76 ae76 ae76 ae76 ae76 -2219 ae77 ae77 ae77 * 553b * 8ea1d5bb,d5bb,8ea1d5bbv,d5bbv 5eab e5baab 5eab 00005eab ae77 ae77 ae77 ae77 ae77 ae77 ae77 -2220 ae78 ae78 ae78 * 553c * 8ea1d5bc,d5bc,8ea1d5bcv,d5bcv 5ead e5baad 5ead 00005ead ae78 ae78 ae78 ae78 ae78 ae78 ae78 -2221 ae79 ae79 ae79 * 553d * 8ea1d5bd,d5bd,8ea1d5bdv,d5bdv 5ea7 e5baa7 5ea7 00005ea7 ae79 ae79 ae79 ae79 ae79 ae79 ae79 -2222 ae7a ae7a ae7a * 553e * 8ea1d5be,d5be,8ea1d5bev,d5bev 5f31 e5bcb1 5f31 00005f31 ae7a ae7a ae7a ae7a ae7a ae7a ae7a -2223 ae7b ae7b ae7b * 553f * 8ea1d5bf,d5bf,8ea1d5bfv,d5bfv 5f92 e5be92 5f92 00005f92 ae7b ae7b ae7b ae7b ae7b ae7b ae7b -2224 ae7c ae7c ae7c * 5540 * 8ea1d5c0,d5c0,8ea1d5c0v,d5c0v 5f91 e5be91 5f91 00005f91 ae7c ae7c ae7c ae7c ae7c ae7c ae7c -2225 ae7d ae7d ae7d * 5541 * 8ea1d5c1,d5c1,8ea1d5c1v,d5c1v 5f90 e5be90 5f90 00005f90 ae7d ae7d ae7d ae7d ae7d ae7d ae7d -2226 ae7e ae7e ae7e * 5542 * 8ea1d5c2,d5c2,8ea1d5c2v,d5c2v 6059 e68199 6059 00006059 ae7e ae7e ae7e ae7e ae7e ae7e ae7e -2227 aea1 aea1 aea1 * 5543 * 8ea1d5c3,d5c3,8ea1d5c3v,d5c3v 6063 e681a3 6063 00006063 aea1 aea1 aea1 aea1 aea1 aea1 aea1 -2228 aea2 aea2 aea2 * 5544 * 8ea1d5c4,d5c4,8ea1d5c4v,d5c4v 6065 e681a5 6065 00006065 aea2 aea2 aea2 aea2 aea2 aea2 aea2 -2229 aea3 aea3 aea3 * 5545 * 8ea1d5c5,d5c5,8ea1d5c5v,d5c5v 6050 e68190 6050 00006050 aea3 aea3 aea3 aea3 aea3 aea3 aea3 -2230 aea4 aea4 aea4 * 5546 * 8ea1d5c6,d5c6,8ea1d5c6v,d5c6v 6055 e68195 6055 00006055 aea4 aea4 aea4 aea4 aea4 aea4 aea4 -2231 aea5 aea5 aea5 * 5547 * 8ea1d5c7,d5c7,8ea1d5c7v,d5c7v 606d e681ad 606d 0000606d aea5 aea5 aea5 aea5 aea5 aea5 aea5 -2232 aea6 aea6 aea6 * 5548 * 8ea1d5c8,d5c8,8ea1d5c8v,d5c8v 6069 e681a9 6069 00006069 aea6 aea6 aea6 aea6 aea6 aea6 aea6 -2233 aea7 aea7 aea7 * 5549 * 8ea1d5c9,d5c9,8ea1d5c9v,d5c9v 606f e681af 606f 0000606f aea7 aea7 aea7 aea7 aea7 aea7 aea7 -2234 aea8 aea8 aea8 * 554a * 8ea1d5ca,d5ca,8ea1d5cav,d5cav 6084 e68284 6084 00006084 aea8 aea8 aea8 aea8 aea8 aea8 aea8 -2235 aea9 aea9 aea9 * 554b * 8ea1d5cb,d5cb,8ea1d5cbv,d5cbv 609f e6829f 609f 0000609f aea9 aea9 aea9 aea9 aea9 aea9 aea9 -2236 aeaa aeaa aeaa * 554c * 8ea1d5cc,d5cc,8ea1d5ccv,d5ccv 609a e6829a 609a 0000609a aeaa aeaa aeaa aeaa aeaa aeaa aeaa -2237 aeab aeab aeab * 554d * 8ea1d5cd,d5cd,8ea1d5cdv,d5cdv 608d e6828d 608d 0000608d aeab aeab aeab aeab aeab aeab aeab -2238 aeac aeac aeac * 554e * 8ea1d5ce,d5ce,8ea1d5cev,d5cev 6094 e68294 6094 00006094 aeac aeac aeac aeac aeac aeac aeac -2239 aead aead aead * 554f * 8ea1d5cf,d5cf,8ea1d5cfv,d5cfv 608c e6828c 608c 0000608c aead aead aead aead aead aead aead -2240 aeae aeae aeae * 5550 * 8ea1d5d0,d5d0,8ea1d5d0v,d5d0v 6085 e68285 6085 00006085 aeae aeae aeae aeae aeae aeae aeae -2241 aeaf aeaf aeaf * 5551 * 8ea1d5d1,d5d1,8ea1d5d1v,d5d1v 6096 e68296 6096 00006096 aeaf aeaf aeaf aeaf aeaf aeaf aeaf -2242 aeb0 aeb0 aeb0 * 5552 * 8ea1d5d2,d5d2,8ea1d5d2v,d5d2v 6247 e68987 6247 00006247 aeb0 aeb0 aeb0 aeb0 aeb0 aeb0 aeb0 -2243 aeb1 aeb1 aeb1 * 5553 * 8ea1d5d3,d5d3,8ea1d5d3v,d5d3v 62f3 e68bb3 62f3 000062f3 aeb1 aeb1 aeb1 aeb1 aeb1 aeb1 aeb1 -2244 aeb2 aeb2 aeb2 * 5554 * 8ea1d5d4,d5d4,8ea1d5d4v,d5d4v 6308 e68c88 6308 00006308 aeb2 aeb2 aeb2 aeb2 aeb2 aeb2 aeb2 -2245 aeb3 aeb3 aeb3 * 5555 * 8ea1d5d5,d5d5,8ea1d5d5v,d5d5v 62ff e68bbf 62ff 000062ff aeb3 aeb3 aeb3 aeb3 aeb3 aeb3 aeb3 -2246 aeb4 aeb4 aeb4 * 5556 * 8ea1d5d6,d5d6,8ea1d5d6v,d5d6v 634e e68d8e 634e 0000634e aeb4 aeb4 aeb4 aeb4 aeb4 aeb4 aeb4 -2247 aeb5 aeb5 aeb5 * 5557 * 8ea1d5d7,d5d7,8ea1d5d7v,d5d7v 633e e68cbe 633e 0000633e aeb5 aeb5 aeb5 aeb5 aeb5 aeb5 aeb5 -2248 aeb6 aeb6 aeb6 * 5558 * 8ea1d5d8,d5d8,8ea1d5d8v,d5d8v 632f e68caf 632f 0000632f aeb6 aeb6 aeb6 aeb6 aeb6 aeb6 aeb6 -2249 aeb7 aeb7 aeb7 * 5559 * 8ea1d5d9,d5d9,8ea1d5d9v,d5d9v 6355 e68d95 6355 00006355 aeb7 aeb7 aeb7 aeb7 aeb7 aeb7 aeb7 -2250 aeb8 aeb8 aeb8 * 555a * 8ea1d5da,d5da,8ea1d5dav,d5dav 6342 e68d82 6342 00006342 aeb8 aeb8 aeb8 aeb8 aeb8 aeb8 aeb8 -2251 aeb9 aeb9 aeb9 * 555b * 8ea1d5db,d5db,8ea1d5dbv,d5dbv 6346 e68d86 6346 00006346 aeb9 aeb9 aeb9 aeb9 aeb9 aeb9 aeb9 -2252 aeba aeba aeba * 555c * 8ea1d5dc,d5dc,8ea1d5dcv,d5dcv 634f e68d8f 634f 0000634f aeba aeba aeba aeba aeba aeba aeba -2253 aebb aebb aebb * 555d * 8ea1d5dd,d5dd,8ea1d5ddv,d5ddv 6349 e68d89 6349 00006349 aebb aebb aebb aebb aebb aebb aebb -2254 aebc aebc aebc * 555e * 8ea1d5de,d5de,8ea1d5dev,d5dev 633a e68cba 633a 0000633a aebc aebc aebc aebc aebc aebc aebc -2255 aebd aebd aebd * 555f * 8ea1d5df,d5df,8ea1d5dfv,d5dfv 6350 e68d90 6350 00006350 aebd aebd aebd aebd aebd aebd aebd -2256 aebe aebe aebe * 5560 * 8ea1d5e0,d5e0,8ea1d5e0v,d5e0v 633d e68cbd 633d 0000633d aebe aebe aebe aebe aebe aebe aebe -2257 aebf aebf aebf * 5561 * 8ea1d5e1,d5e1,8ea1d5e1v,d5e1v 632a e68caa 632a 0000632a aebf aebf aebf aebf aebf aebf aebf -2258 aec0 aec0 aec0 * 5562 * 8ea1d5e2,d5e2,8ea1d5e2v,d5e2v 632b e68cab 632b 0000632b aec0 aec0 aec0 aec0 aec0 aec0 aec0 -2259 aec1 aec1 aec1 * 5563 * 8ea1d5e3,d5e3,8ea1d5e3v,d5e3v 6328 e68ca8 6328 00006328 aec1 aec1 aec1 aec1 aec1 aec1 aec1 -2260 aec2 aec2 aec2 * 5564 * 8ea1d5e4,d5e4,8ea1d5e4v,d5e4v 634d e68d8d 634d 0000634d aec2 aec2 aec2 aec2 aec2 aec2 aec2 -2261 aec3 aec3 aec3 * 5565 * 8ea1d5e5,d5e5,8ea1d5e5v,d5e5v 634c e68d8c 634c 0000634c aec3 aec3 aec3 aec3 aec3 aec3 aec3 -2262 aec4 aec4 aec4 * 5566 * 8ea1d5e6,d5e6,8ea1d5e6v,d5e6v 6548 e69588 6548 00006548 aec4 aec4 aec4 aec4 aec4 aec4 aec4 -2263 aec5 aec5 aec5 * 5567 * 8ea1d5e7,d5e7,8ea1d5e7v,d5e7v 6549 e69589 6549 00006549 aec5 aec5 aec5 aec5 aec5 aec5 aec5 -2264 aec6 aec6 aec6 * 5568 * 8ea1d5e8,d5e8,8ea1d5e8v,d5e8v 6599 e69699 6599 00006599 aec6 aec6 aec6 aec6 aec6 aec6 aec6 -2265 aec7 aec7 aec7 * 5569 * 8ea1d5e9,d5e9,8ea1d5e9v,d5e9v 65c1 e69781 65c1 000065c1 aec7 aec7 aec7 aec7 aec7 aec7 aec7 -2266 aec8 aec8 aec8 * 556a * 8ea1d5ea,d5ea,8ea1d5eav,d5eav 65c5 e69785 65c5 000065c5 aec8 aec8 aec8 aec8 aec8 aec8 aec8 -2267 aec9 aec9 aec9 * 556b * 8ea1d5eb,d5eb,8ea1d5ebv,d5ebv 6642 e69982 6642 00006642 aec9 aec9 aec9 aec9 aec9 aec9 aec9 -2268 aeca aeca aeca * 556c * 8ea1d5ec,d5ec,8ea1d5ecv,d5ecv 6649 e69989 6649 00006649 aeca aeca aeca aeca aeca aeca aeca -2269 aecb aecb aecb * 556d * 8ea1d5ed,d5ed,8ea1d5edv,d5edv 664f e6998f 664f 0000664f aecb aecb aecb aecb aecb aecb aecb -2270 aecc aecc aecc * 556e * 8ea1d5ee,d5ee,8ea1d5eev,d5eev 6643 e69983 6643 00006643 aecc aecc aecc aecc aecc aecc aecc -2271 aecd aecd aecd * 556f * 8ea1d5ef,d5ef,8ea1d5efv,d5efv 6652 e69992 6652 00006652 aecd aecd aecd aecd aecd aecd aecd -2272 aece aece aece * 5570 * 8ea1d5f0,d5f0,8ea1d5f0v,d5f0v 664c e6998c 664c 0000664c aece aece aece aece aece aece aece -2273 aecf aecf aecf * 5571 * 8ea1d5f1,d5f1,8ea1d5f1v,d5f1v 6645 e69985 6645 00006645 aecf aecf aecf aecf aecf aecf aecf -2274 aed0 aed0 aed0 * 5572 * 8ea1d5f2,d5f2,8ea1d5f2v,d5f2v 6641 e69981 6641 00006641 aed0 aed0 aed0 aed0 aed0 aed0 aed0 -2275 aed1 aed1 aed1 * 5573 * 8ea1d5f3,d5f3,8ea1d5f3v,d5f3v 66f8 e69bb8 66f8 000066f8 aed1 aed1 aed1 aed1 aed1 aed1 aed1 -2276 aed2 aed2 aed2 * 5574 * 8ea1d5f4,d5f4,8ea1d5f4v,d5f4v 6714 e69c94 6714 00006714 aed2 aed2 aed2 aed2 aed2 aed2 aed2 -2277 aed3 aed3 aed3 * 5575 * 8ea1d5f5,d5f5,8ea1d5f5v,d5f5v 6715 e69c95 6715 00006715 aed3 aed3 aed3 aed3 aed3 aed3 aed3 -2278 aed4 aed4 aed4 * 5576 * 8ea1d5f6,d5f6,8ea1d5f6v,d5f6v 6717 e69c97 6717 00006717 aed4 aed4 aed4 aed4 aed4 aed4 aed4 -2279 aed5 aed5 aed5 * 5577 * 8ea1d5f7,d5f7,8ea1d5f7v,d5f7v 6821 e6a0a1 6821 00006821 aed5 aed5 aed5 aed5 aed5 aed5 aed5 -2280 aed6 aed6 aed6 * 5578 * 8ea1d5f8,d5f8,8ea1d5f8v,d5f8v 6838 e6a0b8 6838 00006838 aed6 aed6 aed6 aed6 aed6 aed6 aed6 -2281 aed7 aed7 aed7 * 5579 * 8ea1d5f9,d5f9,8ea1d5f9v,d5f9v 6848 e6a188 6848 00006848 aed7 aed7 aed7 aed7 aed7 aed7 aed7 -2282 aed8 aed8 aed8 * 557a * 8ea1d5fa,d5fa,8ea1d5fav,d5fav 6846 e6a186 6846 00006846 aed8 aed8 aed8 aed8 aed8 aed8 aed8 -2283 aed9 aed9 aed9 * 557b * 8ea1d5fb,d5fb,8ea1d5fbv,d5fbv 6853 e6a193 6853 00006853 aed9 aed9 aed9 aed9 aed9 aed9 aed9 -2284 aeda aeda aeda * 557c * 8ea1d5fc,d5fc,8ea1d5fcv,d5fcv 6839 e6a0b9 6839 00006839 aeda aeda aeda aeda aeda aeda aeda -2285 aedb aedb aedb * 557d * 8ea1d5fd,d5fd,8ea1d5fdv,d5fdv 6842 e6a182 6842 00006842 aedb aedb aedb aedb aedb aedb aedb -2286 aedc aedc aedc * 557e * 8ea1d5fe,d5fe,8ea1d5fev,d5fev 6854 e6a194 6854 00006854 aedc aedc aedc aedc aedc aedc aedc -2287 aedd aedd aedd * 5621 * 8ea1d6a1,d6a1,8ea1d6a1v,d6a1v 6829 e6a0a9 6829 00006829 aedd aedd aedd aedd aedd aedd aedd -2288 aede aede aede * 5622 * 8ea1d6a2,d6a2,8ea1d6a2v,d6a2v 68b3 e6a2b3 68b3 000068b3 aede aede aede aede aede aede aede -2289 aedf aedf aedf * 5623 * 8ea1d6a3,d6a3,8ea1d6a3v,d6a3v 6817 e6a097 6817 00006817 aedf aedf aedf aedf aedf aedf aedf -2290 aee0 aee0 aee0 * 5624 * 8ea1d6a4,d6a4,8ea1d6a4v,d6a4v 684c e6a18c 684c 0000684c aee0 aee0 aee0 aee0 aee0 aee0 aee0 -2291 aee1 aee1 aee1 * 5625 * 8ea1d6a5,d6a5,8ea1d6a5v,d6a5v 6851 e6a191 6851 00006851 aee1 aee1 aee1 aee1 aee1 aee1 aee1 -2292 aee2 aee2 aee2 * 5626 * 8ea1d6a6,d6a6,8ea1d6a6v,d6a6v 683d e6a0bd 683d 0000683d aee2 aee2 aee2 aee2 aee2 aee2 aee2 -2293 aee3 aee3 aee3 * 5627 * 8ea1d6a7,d6a7,8ea1d6a7v,d6a7v 67f4 e69fb4 67f4 000067f4 aee3 aee3 aee3 aee3 aee3 aee3 aee3 -2294 aee4 aee4 aee4 * 5628 * 8ea1d6a8,d6a8,8ea1d6a8v,d6a8v 6850 e6a190 6850 00006850 aee4 aee4 aee4 aee4 aee4 aee4 aee4 -2295 aee5 aee5 aee5 * 5629 * 8ea1d6a9,d6a9,8ea1d6a9v,d6a9v 6840 e6a180 6840 00006840 aee5 aee5 aee5 aee5 aee5 aee5 aee5 -2296 aee6 aee6 aee6 * 562a * 8ea1d6aa,d6aa,8ea1d6aav,d6aav 683c e6a0bc 683c 0000683c aee6 aee6 aee6 aee6 aee6 aee6 aee6 -2297 aee7 aee7 aee7 * 562b * 8ea1d6ab,d6ab,8ea1d6abv,d6abv 6843 e6a183 6843 00006843 aee7 aee7 aee7 aee7 aee7 aee7 aee7 -2298 aee8 aee8 aee8 * 562c * 8ea1d6ac,d6ac,8ea1d6acv,d6acv 682a e6a0aa 682a 0000682a aee8 aee8 aee8 aee8 aee8 aee8 aee8 -2299 aee9 aee9 aee9 * 562d * 8ea1d6ad,d6ad,8ea1d6adv,d6adv 6845 e6a185 6845 00006845 aee9 aee9 aee9 aee9 aee9 aee9 aee9 -2300 aeea aeea aeea * 562e * 8ea1d6ae,d6ae,8ea1d6aev,d6aev 6813 e6a093 6813 00006813 aeea aeea aeea aeea aeea aeea aeea -2301 aeeb aeeb aeeb * 562f * 8ea1d6af,d6af,8ea1d6afv,d6afv 6818 e6a098 6818 00006818 aeeb aeeb aeeb aeeb aeeb aeeb aeeb -2302 aeec aeec aeec * 5630 * 8ea1d6b0,d6b0,8ea1d6b0v,d6b0v 6841 e6a181 6841 00006841 aeec aeec aeec aeec aeec aeec aeec -2303 aeed aeed aeed * 5631 * 8ea1d6b1,d6b1,8ea1d6b1v,d6b1v 6b8a e6ae8a 6b8a 00006b8a aeed aeed aeed aeed aeed aeed aeed -2304 aeee aeee aeee * 5632 * 8ea1d6b2,d6b2,8ea1d6b2v,d6b2v 6b89 e6ae89 6b89 00006b89 aeee aeee aeee aeee aeee aeee aeee -2305 aeef aeef aeef * 5633 * 8ea1d6b3,d6b3,8ea1d6b3v,d6b3v 6bb7 e6aeb7 6bb7 00006bb7 aeef aeef aeef aeef aeef aeef aeef -2306 aef0 aef0 aef0 * 5634 * 8ea1d6b4,d6b4,8ea1d6b4v,d6b4v 6c23 e6b0a3 6c23 00006c23 aef0 aef0 aef0 aef0 aef0 aef0 aef0 -2307 aef1 aef1 aef1 * 5635 * 8ea1d6b5,d6b5,8ea1d6b5v,d6b5v 6c27 e6b0a7 6c27 00006c27 aef1 aef1 aef1 aef1 aef1 aef1 aef1 -2308 aef2 aef2 aef2 * 5636 * 8ea1d6b6,d6b6,8ea1d6b6v,d6b6v 6c28 e6b0a8 6c28 00006c28 aef2 aef2 aef2 aef2 aef2 aef2 aef2 -2309 aef3 aef3 aef3 * 5637 * 8ea1d6b7,d6b7,8ea1d6b7v,d6b7v 6c26 e6b0a6 6c26 00006c26 aef3 aef3 aef3 aef3 aef3 aef3 aef3 -2310 aef4 aef4 aef4 * 5638 * 8ea1d6b8,d6b8,8ea1d6b8v,d6b8v 6c24 e6b0a4 6c24 00006c24 aef4 aef4 aef4 aef4 aef4 aef4 aef4 -2311 aef5 aef5 aef5 * 5639 * 8ea1d6b9,d6b9,8ea1d6b9v,d6b9v 6cf0 e6b3b0 6cf0 00006cf0 aef5 aef5 aef5 aef5 aef5 aef5 aef5 -2312 aef6 aef6 aef6 * 563a * 8ea1d6ba,d6ba,8ea1d6bav,d6bav 6d6a e6b5aa 6d6a 00006d6a aef6 aef6 aef6 aef6 aef6 aef6 aef6 -2313 aef7 aef7 aef7 * 563b * 8ea1d6bb,d6bb,8ea1d6bbv,d6bbv 6d95 e6b695 6d95 00006d95 aef7 aef7 aef7 aef7 aef7 aef7 aef7 -2314 aef8 aef8 aef8 * 563c * 8ea1d6bc,d6bc,8ea1d6bcv,d6bcv 6d88 e6b688 6d88 00006d88 aef8 aef8 aef8 aef8 aef8 aef8 aef8 -2315 aef9 aef9 aef9 * 563d * 8ea1d6bd,d6bd,8ea1d6bdv,d6bdv 6d87 e6b687 6d87 00006d87 aef9 aef9 aef9 aef9 aef9 aef9 aef9 -2316 aefa aefa aefa * 563e * 8ea1d6be,d6be,8ea1d6bev,d6bev 6d66 e6b5a6 6d66 00006d66 aefa aefa aefa aefa aefa aefa aefa -2317 aefb aefb aefb * 563f * 8ea1d6bf,d6bf,8ea1d6bfv,d6bfv 6d78 e6b5b8 6d78 00006d78 aefb aefb aefb aefb aefb aefb aefb -2318 aefc aefc aefc * 5640 * 8ea1d6c0,d6c0,8ea1d6c0v,d6c0v 6d77 e6b5b7 6d77 00006d77 aefc aefc aefc aefc aefc aefc aefc -2319 aefd aefd aefd * 5641 * 8ea1d6c1,d6c1,8ea1d6c1v,d6c1v 6d59 e6b599 6d59 00006d59 aefd aefd aefd aefd aefd aefd aefd -2320 aefe aefe aefe * 5642 * 8ea1d6c2,d6c2,8ea1d6c2v,d6c2v 6d93 e6b693 6d93 00006d93 aefe aefe aefe aefe aefe aefe aefe -2321 af40 af40 af40 * 5643 * 8ea1d6c3,d6c3,8ea1d6c3v,d6c3v 6d6c e6b5ac 6d6c 00006d6c af40 af40 af40 af40 af40 af40 af40 -2322 af41 af41 af41 * 5644 * 8ea1d6c4,d6c4,8ea1d6c4v,d6c4v 6d89 e6b689 6d89 00006d89 af41 af41 af41 af41 af41 af41 af41 -2323 af42 af42 af42 * 5645 * 8ea1d6c5,d6c5,8ea1d6c5v,d6c5v 6d6e e6b5ae 6d6e 00006d6e af42 af42 af42 af42 af42 af42 af42 -2324 af43 af43 af43 * 5646 * 8ea1d6c6,d6c6,8ea1d6c6v,d6c6v 6d5a e6b59a 6d5a 00006d5a af43 af43 af43 af43 af43 af43 af43 -2325 af44 af44 af44 * 5647 * 8ea1d6c7,d6c7,8ea1d6c7v,d6c7v 6d74 e6b5b4 6d74 00006d74 af44 af44 af44 af44 af44 af44 af44 -2326 af45 af45 af45 * 5648 * 8ea1d6c8,d6c8,8ea1d6c8v,d6c8v 6d69 e6b5a9 6d69 00006d69 af45 af45 af45 af45 af45 af45 af45 -2327 af46 af46 af46 * 5649 * 8ea1d6c9,d6c9,8ea1d6c9v,d6c9v 6d8c e6b68c 6d8c 00006d8c af46 af46 af46 af46 af46 af46 af46 -2328 af47 af47 af47 * 564a * 8ea1d6ca,d6ca,8ea1d6cav,d6cav 6d8a e6b68a 6d8a 00006d8a af47 af47 af47 af47 af47 af47 af47 -2329 af48 af48 af48 * 564b * 8ea1d6cb,d6cb,8ea1d6cbv,d6cbv 6d79 e6b5b9 6d79 00006d79 af48 af48 af48 af48 af48 af48 af48 -2330 af49 af49 af49 * 564c * 8ea1d6cc,d6cc,8ea1d6ccv,d6ccv 6d85 e6b685 6d85 00006d85 af49 af49,fcd1 915c,af49 af49 af49 af49 af49 -2331 af4a af4a af4a * 564d * 8ea1d6cd,d6cd,8ea1d6cdv,d6cdv 6d65 e6b5a5 6d65 00006d65 af4a af4a af4a af4a af4a af4a af4a -2332 af4b af4b af4b * 564e * 8ea1d6ce,d6ce,8ea1d6cev,d6cev 6d94 e6b694 6d94 00006d94 af4b af4b af4b af4b af4b af4b af4b -2333 af4c af4c af4c * 564f * 8ea1d6cf,d6cf,8ea1d6cfv,d6cfv 70ca e7838a 70ca 000070ca af4c af4c af4c af4c af4c af4c af4c -2334 af4d af4d af4d * 5650 * 8ea1d6d0,d6d0,8ea1d6d0v,d6d0v 70d8 e78398 70d8 000070d8 af4d af4d af4d af4d af4d af4d af4d -2335 af4e af4e af4e * 5651 * 8ea1d6d1,d6d1,8ea1d6d1v,d6d1v 70e4 e783a4 70e4 000070e4 af4e af4e af4e af4e af4e af4e af4e -2336 af4f af4f af4f * 5652 * 8ea1d6d2,d6d2,8ea1d6d2v,d6d2v 70d9 e78399 70d9 000070d9 af4f af4f af4f af4f af4f af4f af4f -2337 af50 af50 af50 * 5653 * 8ea1d6d3,d6d3,8ea1d6d3v,d6d3v 70c8 e78388 70c8 000070c8 af50 af50 af50 af50 af50 af50 af50 -2338 af51 af51 af51 * 5654 * 8ea1d6d4,d6d4,8ea1d6d4v,d6d4v 70cf e7838f 70cf 000070cf af51 af51 af51 af51 af51 af51 af51 -2339 af52 af52 af52 * 5655 * 8ea1d6d5,d6d5,8ea1d6d5v,d6d5v 7239 e788b9 7239 00007239 af52 af52 af52 af52 af52 af52 af52 -2340 af53 af53 af53 * 5656 * 8ea1d6d6,d6d6,8ea1d6d6v,d6d6v 7279 e789b9 7279 00007279 af53 af53 af53 af53 af53 af53 af53 -2341 af54 af54 af54 * 5657 * 8ea1d6d7,d6d7,8ea1d6d7v,d6d7v 72fc e78bbc 72fc 000072fc af54 af54 af54 af54 af54 af54 af54 -2342 af55 af55 af55 * 5658 * 8ea1d6d8,d6d8,8ea1d6d8v,d6d8v 72f9 e78bb9 72f9 000072f9 af55 af55 af55 af55 af55 af55 af55 -2343 af56 af56 af56 * 5659 * 8ea1d6d9,d6d9,8ea1d6d9v,d6d9v 72fd e78bbd 72fd 000072fd af56 af56 af56 af56 af56 af56 af56 -2344 af57 af57 af57 * 565a * 8ea1d6da,d6da,8ea1d6dav,d6dav 72f8 e78bb8 72f8 000072f8 af57 af57 af57 af57 af57 af57 af57 -2345 af58 af58 af58 * 565b * 8ea1d6db,d6db,8ea1d6dbv,d6dbv 72f7 e78bb7 72f7 000072f7 af58 af58 af58 af58 af58 af58 af58 -2346 af59 af59 af59 * 565c * 8ea1d6dc,d6dc,8ea1d6dcv,d6dcv 7386 e78e86 7386 00007386 af59 af59 af59 af59 af59 af59 af59 -2347 af5a af5a af5a * 565d * 8ea1d6dd,d6dd,8ea1d6ddv,d6ddv 73ed e78fad 73ed 000073ed af5a af5a af5a af5a af5a af5a af5a -2348 af5b af5b af5b * 565e * 8ea1d6de,d6de,8ea1d6dev,d6dev 7409 e79089 7409 00007409 af5b af5b af5b af5b af5b af5b af5b -2349 af5c af5c af5c * 565f * 8ea1d6df,d6df,8ea1d6dfv,d6dfv 73ee e78fae 73ee 000073ee af5c af5c af5c af5c af5c af5c af5c -2350 af5d af5d af5d * 5660 * 8ea1d6e0,d6e0,8ea1d6e0v,d6e0v 73e0 e78fa0 73e0 000073e0 af5d af5d af5d af5d af5d af5d af5d -2351 af5e af5e af5e * 5661 * 8ea1d6e1,d6e1,8ea1d6e1v,d6e1v 73ea e78faa 73ea 000073ea af5e af5e af5e af5e af5e af5e af5e -2352 af5f af5f af5f * 5662 * 8ea1d6e2,d6e2,8ea1d6e2v,d6e2v 73de e78f9e 73de 000073de af5f af5f af5f af5f af5f af5f af5f -2353 af60 af60 af60 * 5663 * 8ea1d6e3,d6e3,8ea1d6e3v,d6e3v 7554 e79594 7554 00007554 af60 af60 af60 af60 af60 af60 af60 -2354 af61 af61 af61 * 5664 * 8ea1d6e4,d6e4,8ea1d6e4v,d6e4v 755d e7959d 755d 0000755d af61 af61 af61 af61 af61 af61 af61 -2355 af62 af62 af62 * 5665 * 8ea1d6e5,d6e5,8ea1d6e5v,d6e5v 755c e7959c 755c 0000755c af62 af62 af62 af62 af62 af62 af62 -2356 af63 af63 af63 * 5666 * 8ea1d6e6,d6e6,8ea1d6e6v,d6e6v 755a e7959a 755a 0000755a af63 af63 af63 af63 af63 af63 af63 -2357 af64 af64 af64 * 5667 * 8ea1d6e7,d6e7,8ea1d6e7v,d6e7v 7559 e79599 7559 00007559 af64 af64 af64 af64 af64 af64 af64 -2358 af65 af65 af65 * 5668 * 8ea1d6e8,d6e8,8ea1d6e8v,d6e8v 75be e796be 75be 000075be af65 af65 af65 af65 af65 af65 af65 -2359 af66 af66 af66 * 5669 * 8ea1d6e9,d6e9,8ea1d6e9v,d6e9v 75c5 e79785 75c5 000075c5 af66 af66 af66 af66 af66 af66 af66 -2360 af67 af67 af67 * 566a * 8ea1d6ea,d6ea,8ea1d6eav,d6eav 75c7 e79787 75c7 000075c7 af67 af67 af67 af67 af67 af67 af67 -2361 af68 af68 af68 * 566b * 8ea1d6eb,d6eb,8ea1d6ebv,d6ebv 75b2 e796b2 75b2 000075b2 af68 af68 af68 af68 af68 af68 af68 -2362 af69 af69 af69 * 566c * 8ea1d6ec,d6ec,8ea1d6ecv,d6ecv 75b3 e796b3 75b3 000075b3 af69 af69 af69 af69 af69 af69 af69 -2363 af6a af6a af6a * 566d * 8ea1d6ed,d6ed,8ea1d6edv,d6edv 75bd e796bd 75bd 000075bd af6a af6a af6a af6a af6a af6a af6a -2364 af6b af6b af6b * 566e * 8ea1d6ee,d6ee,8ea1d6eev,d6eev 75bc e796bc 75bc 000075bc af6b af6b af6b af6b af6b af6b af6b -2365 af6c af6c af6c * 566f * 8ea1d6ef,d6ef,8ea1d6efv,d6efv 75b9 e796b9 75b9 000075b9 af6c af6c af6c af6c af6c af6c af6c -2366 af6d af6d af6d * 5670 * 8ea1d6f0,d6f0,8ea1d6f0v,d6f0v 75c2 e79782 75c2 000075c2 af6d af6d af6d af6d af6d af6d af6d -2367 af6e af6e af6e * 5671 * 8ea1d6f1,d6f1,8ea1d6f1v,d6f1v 75b8 e796b8 75b8 000075b8 af6e af6e af6e af6e af6e af6e af6e -2368 af6f af6f af6f * 5672 * 8ea1d6f2,d6f2,8ea1d6f2v,d6f2v 768b e79a8b 768b 0000768b af6f af6f af6f af6f af6f af6f af6f -2369 af70 af70 af70 * 5673 * 8ea1d6f3,d6f3,8ea1d6f3v,d6f3v 76b0 e79ab0 76b0 000076b0 af70 af70 af70 af70 af70 af70 af70 -2370 af71 af71 af71 * 5674 * 8ea1d6f4,d6f4,8ea1d6f4v,d6f4v 76ca e79b8a 76ca 000076ca af71 af71 af71 af71 af71 af71 af71 -2371 af72 af72 af72 * 5675 * 8ea1d6f5,d6f5,8ea1d6f5v,d6f5v 76cd e79b8d 76cd 000076cd af72 af72 af72 af72 af72 af72 af72 -2372 af73 af73 af73 * 5676 * 8ea1d6f6,d6f6,8ea1d6f6v,d6f6v 76ce e79b8e 76ce 000076ce af73 af73 af73 af73 af73 af73 af73 -2373 af74 af74 af74 * 5677 * 8ea1d6f7,d6f7,8ea1d6f7v,d6f7v 7729 e79ca9 7729 00007729 af74 af74 af74 af74 af74 af74 af74 -2374 af75 af75 af75 * 5678 * 8ea1d6f8,d6f8,8ea1d6f8v,d6f8v 771f e79c9f 771f 0000771f af75 af75 af75 af75 af75 af75 af75 -2375 af76 af76 af76 * 5679 * 8ea1d6f9,d6f9,8ea1d6f9v,d6f9v 7720 e79ca0 7720 00007720 af76 af76 af76 af76 af76 af76 af76 -2376 af77 af77 af77 * 567a * 8ea1d6fa,d6fa,8ea1d6fav,d6fav 7728 e79ca8 7728 00007728 af77 af77 af77 af77 af77 af77 af77 -2377 af78 af78 af78 * 567b * 8ea1d6fb,d6fb,8ea1d6fbv,d6fbv 77e9 e79fa9 77e9 000077e9 af78 af78 af78 af78 af78 af78 af78 -2378 af79 af79 af79 * 567c * 8ea1d6fc,d6fc,8ea1d6fcv,d6fcv 7830 e7a0b0 7830 00007830 af79 af79 af79 af79 af79 af79 af79 -2379 af7a af7a af7a * 567d * 8ea1d6fd,d6fd,8ea1d6fdv,d6fdv 7827 e7a0a7 7827 00007827 af7a af7a af7a af7a af7a af7a af7a -2380 af7b af7b af7b * 567e * 8ea1d6fe,d6fe,8ea1d6fev,d6fev 7838 e7a0b8 7838 00007838 af7b af7b af7b af7b af7b af7b af7b -2381 af7c af7c af7c * 5721 * 8ea1d7a1,d7a1,8ea1d7a1v,d7a1v 781d e7a09d 781d 0000781d af7c af7c af7c af7c af7c af7c af7c -2382 af7d af7d af7d * 5722 * 8ea1d7a2,d7a2,8ea1d7a2v,d7a2v 7834 e7a0b4 7834 00007834 af7d af7d af7d af7d af7d af7d af7d -2383 af7e af7e af7e * 5723 * 8ea1d7a3,d7a3,8ea1d7a3v,d7a3v 7837 e7a0b7 7837 00007837 af7e af7e af7e af7e af7e af7e af7e -2384 afa1 afa1 afa1 * 5724 * 8ea1d7a4,d7a4,8ea1d7a4v,d7a4v 7825 e7a0a5 7825 00007825 afa1 afa1 afa1 afa1 afa1 afa1 afa1 -2385 afa2 afa2 afa2 * 5725 * 8ea1d7a5,d7a5,8ea1d7a5v,d7a5v 782d e7a0ad 782d 0000782d afa2 afa2 afa2 afa2 afa2 afa2 afa2 -2386 afa3 afa3 afa3 * 5726 * 8ea1d7a6,d7a6,8ea1d7a6v,d7a6v 7820 e7a0a0 7820 00007820 afa3 afa3 afa3 afa3 afa3 afa3 afa3 -2387 afa4 afa4 afa4 * 5727 * 8ea1d7a7,d7a7,8ea1d7a7v,d7a7v 781f e7a09f 781f 0000781f afa4 afa4 afa4 afa4 afa4 afa4 afa4 -2388 afa5 afa5 afa5 * 5728 * 8ea1d7a8,d7a8,8ea1d7a8v,d7a8v 7832 e7a0b2 7832 00007832 afa5 afa5 afa5 afa5 afa5 afa5 afa5 -2389 afa6 afa6 afa6 * 5729 * 8ea1d7a9,d7a9,8ea1d7a9v,d7a9v 7955 e7a595 7955 00007955 afa6 afa6,fd5f 9161,afa6 afa6 afa6 afa6 afa6 -2390 afa7 afa7 afa7 * 572a * 8ea1d7aa,d7aa,8ea1d7aav,d7aav 7950 e7a590 7950 00007950 afa7 afa7 afa7 afa7 afa7 afa7 afa7 -2391 afa8 afa8 afa8 * 572b * 8ea1d7ab,d7ab,8ea1d7abv,d7abv 7960 e7a5a0 7960 00007960 afa8 afa8 afa8 afa8 afa8 afa8 afa8 -2392 afa9 afa9 afa9 * 572c * 8ea1d7ac,d7ac,8ea1d7acv,d7acv 795f e7a59f 795f 0000795f afa9 afa9 afa9 afa9 afa9 afa9 afa9 -2393 afaa afaa afaa * 572d * 8ea1d7ad,d7ad,8ea1d7adv,d7adv 7956 e7a596 7956 00007956 afaa afaa afaa afaa afaa afaa afaa -2394 afab afab afab * 572e * 8ea1d7ae,d7ae,8ea1d7aev,d7aev 795e e7a59e 795e 0000795e afab afab afab afab afab afab afab -2395 afac afac afac * 572f * 8ea1d7af,d7af,8ea1d7afv,d7afv 795d e7a59d 795d 0000795d afac afac afac afac afac afac afac -2396 afad afad afad * 5730 * 8ea1d7b0,d7b0,8ea1d7b0v,d7b0v 7957 e7a597 7957 00007957 afad afad afad afad afad afad afad -2397 afae afae afae * 5731 * 8ea1d7b1,d7b1,8ea1d7b1v,d7b1v 795a e7a59a 795a 0000795a afae afae afae afae afae afae afae -2398 afaf afaf afaf * 5732 * 8ea1d7b2,d7b2,8ea1d7b2v,d7b2v 79e4 e7a7a4 79e4 000079e4 afaf afaf afaf afaf afaf afaf afaf -2399 afb0 afb0 afb0 * 5733 * 8ea1d7b3,d7b3,8ea1d7b3v,d7b3v 79e3 e7a7a3,eeb082 79e3,ec02 000079e3,0000ec02 9cbd,afb0 afb0 afb0 afb0 afb0 afb0 9cbd,afb0 -2400 afb1 afb1 afb1 * 5734 * 8ea1d7b4,d7b4,8ea1d7b4v,d7b4v 79e7 e7a7a7 79e7 000079e7 afb1 afb1 afb1 afb1 afb1 afb1 afb1 -2401 afb2 afb2 afb2 * 5735 * 8ea1d7b5,d7b5,8ea1d7b5v,d7b5v 79df e7a79f 79df 000079df afb2 afb2 afb2 afb2 afb2 afb2 afb2 -2402 afb3 afb3 afb3 * 5736 * 8ea1d7b6,d7b6,8ea1d7b6v,d7b6v 79e6 e7a7a6 79e6 000079e6 afb3 afb3 afb3 afb3 afb3 afb3 afb3 -2403 afb4 afb4 afb4 * 5737 * 8ea1d7b7,d7b7,8ea1d7b7v,d7b7v 79e9 e7a7a9 79e9 000079e9 afb4 afb4 afb4 afb4 afb4 afb4 afb4 -2404 afb5 afb5 afb5 * 5738 * 8ea1d7b8,d7b8,8ea1d7b8v,d7b8v 79d8 e7a798 79d8 000079d8 afb5 afb5 afb5 afb5 afb5 afb5 afb5 -2405 afb6 afb6 afb6 * 5739 * 8ea1d7b9,d7b9,8ea1d7b9v,d7b9v 7a84 e7aa84 7a84 00007a84 afb6 afb6 afb6 afb6 afb6 afb6 afb6 -2406 afb7 afb7 afb7 * 573a * 8ea1d7ba,d7ba,8ea1d7bav,d7bav 7a88 e7aa88 7a88 00007a88 afb7 afb7 afb7 afb7 afb7 afb7 afb7 -2407 afb8 afb8 afb8 * 573b * 8ea1d7bb,d7bb,8ea1d7bbv,d7bbv 7ad9 e7ab99 7ad9 00007ad9 afb8 afb8 afb8 afb8 afb8 afb8 afb8 -2408 afb9 afb9 afb9 * 573c * 8ea1d7bc,d7bc,8ea1d7bcv,d7bcv 7b06 e7ac86 7b06 00007b06 afb9 afb9 afb9 afb9 afb9 afb9 afb9 -2409 afba afba afba * 573d * 8ea1d7bd,d7bd,8ea1d7bdv,d7bdv 7b11 e7ac91 7b11 00007b11 afba afba afba afba afba afba afba -2410 afbb afbb afbb * 573e * 8ea1d7be,d7be,8ea1d7bev,d7bev 7c89 e7b289 7c89 00007c89 afbb afbb afbb afbb afbb afbb afbb -2411 afbc afbc afbc * 573f * 8ea1d7bf,d7bf,8ea1d7bfv,d7bfv 7d21 e7b4a1 7d21 00007d21 afbc afbc afbc afbc afbc afbc afbc -2412 afbd afbd afbd * 5740 * 8ea1d7c0,d7c0,8ea1d7c0v,d7c0v 7d17 e7b497 7d17 00007d17 afbd afbd afbd afbd afbd afbd afbd -2413 afbe afbe afbe * 5741 * 8ea1d7c1,d7c1,8ea1d7c1v,d7c1v 7d0b e7b48b 7d0b 00007d0b afbe afbe afbe afbe afbe afbe afbe -2414 afbf afbf afbf * 5742 * 8ea1d7c2,d7c2,8ea1d7c2v,d7c2v 7d0a e7b48a 7d0a 00007d0a afbf afbf afbf afbf afbf afbf afbf -2415 afc0 afc0 afc0 * 5743 * 8ea1d7c3,d7c3,8ea1d7c3v,d7c3v 7d20 e7b4a0 7d20 00007d20 afc0 afc0 afc0 afc0 afc0 afc0 afc0 -2416 afc1 afc1 afc1 * 5744 * 8ea1d7c4,d7c4,8ea1d7c4v,d7c4v 7d22 e7b4a2 7d22 00007d22 afc1 afc1 afc1 afc1 afc1 afc1 afc1 -2417 afc2 afc2 afc2 * 5745 * 8ea1d7c5,d7c5,8ea1d7c5v,d7c5v 7d14 e7b494 7d14 00007d14 afc2 afc2 afc2 afc2 afc2 afc2 afc2 -2418 afc3 afc3 afc3 * 5746 * 8ea1d7c6,d7c6,8ea1d7c6v,d7c6v 7d10 e7b490 7d10 00007d10 afc3 afc3 afc3 afc3 afc3 afc3 afc3 -2419 afc4 afc4 afc4 * 5747 * 8ea1d7c7,d7c7,8ea1d7c7v,d7c7v 7d15 e7b495 7d15 00007d15 afc4 afc4 afc4 afc4 afc4 afc4 afc4 -2420 afc5 afc5 afc5 * 5748 * 8ea1d7c8,d7c8,8ea1d7c8v,d7c8v 7d1a e7b49a 7d1a 00007d1a afc5 afc5 afc5 afc5 afc5 afc5 afc5 -2421 afc6 afc6 afc6 * 5749 * 8ea1d7c9,d7c9,8ea1d7c9v,d7c9v 7d1c e7b49c 7d1c 00007d1c afc6 afc6 afc6 afc6 afc6 afc6 afc6 -2422 afc7 afc7 afc7 * 574a * 8ea1d7ca,d7ca,8ea1d7cav,d7cav 7d0d e7b48d 7d0d 00007d0d afc7 afc7 afc7 afc7 afc7 afc7 afc7 -2423 afc8 afc8 afc8 * 574b * 8ea1d7cb,d7cb,8ea1d7cbv,d7cbv 7d19 e7b499 7d19 00007d19 afc8 afc8 afc8 afc8 afc8 afc8 afc8 -2424 afc9 afc9 afc9 * 574c * 8ea1d7cc,d7cc,8ea1d7ccv,d7ccv 7d1b e7b49b 7d1b 00007d1b afc9 afc9 afc9 afc9 afc9 afc9 afc9 -2425 afca afca afca * 574d * 8ea1d7cd,d7cd,8ea1d7cdv,d7cdv 7f3a e7bcba 7f3a 00007f3a afca afca afca afca afca afca afca -2426 afcb afcb afcb * 574e * 8ea1d7ce,d7ce,8ea1d7cev,d7cev 7f5f e7bd9f 7f5f 00007f5f afcb afcb afcb afcb afcb afcb afcb -2427 afcc afcc afcc * 574f * 8ea1d7cf,d7cf,8ea1d7cfv,d7cfv 7f94 e7be94 7f94 00007f94 afcc afcc afcc afcc afcc afcc afcc -2428 afcd afcd afcd * 5750 * 8ea1d7d0,d7d0,8ea1d7d0v,d7d0v 7fc5 e7bf85 7fc5 00007fc5 afcd afcd afcd afcd afcd afcd afcd -2429 afce afce afce * 5751 * 8ea1d7d1,d7d1,8ea1d7d1v,d7d1v 7fc1 e7bf81 7fc1 00007fc1 afce afce afce afce afce afce afce -2430 afcf afcf afcf * 5752 * 8ea1d7d2,d7d2,8ea1d7d2v,d7d2v 8006 e88086 8006 00008006 afcf afcf afcf afcf afcf afcf afcf -2431 acfe acfe acfe * 5753 * 8ea1d7d3,d7d3,8ea1d7d3v,d7d3v 8004 e88084 8004 00008004 acfe acfe acfe acfe acfe acfe acfe -2432 afd0 afd0 afd0 * 5754 * 8ea1d7d4,d7d4,8ea1d7d4v,d7d4v 8018 e88098 8018 00008018 afd0 afd0 afd0 afd0 afd0 afd0 afd0 -2433 afd1 afd1 afd1 * 5755 * 8ea1d7d5,d7d5,8ea1d7d5v,d7d5v 8015 e88095 8015 00008015 afd1 afd1 afd1 afd1 afd1 afd1 afd1 -2434 afd2 afd2 afd2 * 5756 * 8ea1d7d6,d7d6,8ea1d7d6v,d7d6v 8019 e88099 8019 00008019 afd2 afd2 afd2 afd2 afd2 afd2 afd2 -2435 afd3 afd3 afd3 * 5757 * 8ea1d7d7,d7d7,8ea1d7d7v,d7d7v 8017 e88097 8017 00008017 afd3 afd3 afd3 afd3 afd3 afd3 afd3 -2436 afd4 afd4 afd4 * 5758 * 8ea1d7d8,d7d8,8ea1d7d8v,d7d8v 803d e880bd 803d 0000803d afd4 afd4 afd4 afd4 afd4 afd4 afd4 -2437 afd5 afd5 afd5 * 5759 * 8ea1d7d9,d7d9,8ea1d7d9v,d7d9v 803f e880bf 803f 0000803f afd5 afd5 afd5 afd5 afd5 afd5 afd5 -2438 afd6 afd6 afd6 * 575a * 8ea1d7da,d7da,8ea1d7dav,d7dav 80f1 e883b1 80f1 000080f1 afd6 afd6 afd6 afd6 afd6 afd6 afd6 -2439 afd7 afd7 afd7 * 575b * 8ea1d7db,d7db,8ea1d7dbv,d7dbv 8102 e88482 8102 00008102 afd7 afd7 afd7 afd7 afd7 afd7 afd7 -2440 afd8 afd8 afd8 * 575c * 8ea1d7dc,d7dc,8ea1d7dcv,d7dcv 80f0 e883b0 80f0 000080f0 afd8 afd8 afd8 afd8 afd8 afd8 afd8 -2441 afd9 afd9 afd9 * 575d * 8ea1d7dd,d7dd,8ea1d7ddv,d7ddv 8105 e88485 8105 00008105 afd9 afd9 afd9 afd9 afd9 afd9 afd9 -2442 afda afda afda * 575e * 8ea1d7de,d7de,8ea1d7dev,d7dev 80ed e883ad 80ed 000080ed afda afda afda afda afda afda afda -2443 afdb afdb afdb * 575f * 8ea1d7df,d7df,8ea1d7dfv,d7dfv 80f4 e883b4 80f4 000080f4 afdb afdb afdb afdb afdb afdb afdb -2444 afdc afdc afdc * 5760 * 8ea1d7e0,d7e0,8ea1d7e0v,d7e0v 8106 e88486 8106 00008106 afdc afdc afdc afdc afdc afdc afdc -2445 afdd afdd afdd * 5761 * 8ea1d7e1,d7e1,8ea1d7e1v,d7e1v 80f8 e883b8 80f8 000080f8 afdd afdd afdd afdd afdd afdd afdd -2446 afde afde afde * 5762 * 8ea1d7e2,d7e2,8ea1d7e2v,d7e2v 80f3 e883b3 80f3 000080f3 afde afde afde afde afde afde afde -2447 afdf afdf afdf * 5763 * 8ea1d7e3,d7e3,8ea1d7e3v,d7e3v 8108 e88488 8108 00008108 afdf afdf afdf afdf afdf afdf afdf -2448 afe0 afe0 afe0 * 5764 * 8ea1d7e4,d7e4,8ea1d7e4v,d7e4v 80fd e883bd 80fd 000080fd afe0 afe0 afe0 afe0 afe0 afe0 afe0 -2449 afe1 afe1 afe1 * 5765 * 8ea1d7e5,d7e5,8ea1d7e5v,d7e5v 810a e8848a 810a 0000810a afe1 afe1 afe1 afe1 afe1 afe1 afe1 -2450 afe2 afe2 afe2 * 5766 * 8ea1d7e6,d7e6,8ea1d7e6v,d7e6v 80fc e883bc 80fc 000080fc afe2 afe2 afe2 afe2 afe2 afe2 afe2 -2451 afe3 afe3 afe3 * 5767 * 8ea1d7e7,d7e7,8ea1d7e7v,d7e7v 80ef e883af 80ef 000080ef afe3 afe3 afe3 afe3 afe3 afe3 afe3 -2452 afe4 afe4 afe4 * 5768 * 8ea1d7e8,d7e8,8ea1d7e8v,d7e8v 81ed e887ad 81ed 000081ed afe4 afe4 afe4 afe4 afe4 afe4 afe4 -2453 afe5 afe5 afe5 * 5769 * 8ea1d7e9,d7e9,8ea1d7e9v,d7e9v 81ec e887ac 81ec 000081ec afe5 afe5 afe5 afe5 afe5 afe5 afe5 -2454 afe6 afe6 afe6 * 576a * 8ea1d7ea,d7ea,8ea1d7eav,d7eav 8200 e88880 8200 00008200 afe6 afe6 afe6 afe6 afe6 afe6 afe6 -2455 afe7 afe7 afe7 * 576b * 8ea1d7eb,d7eb,8ea1d7ebv,d7ebv 8210 e88890 8210 00008210 afe7 afe7 afe7 afe7 afe7 afe7 afe7 -2456 afe8 afe8 afe8 * 576c * 8ea1d7ec,d7ec,8ea1d7ecv,d7ecv 822a e888aa 822a 0000822a afe8 afe8 afe8 afe8 afe8 afe8 afe8 -2457 afe9 afe9 afe9 * 576d * 8ea1d7ed,d7ed,8ea1d7edv,d7edv 822b e888ab 822b 0000822b afe9 afe9 afe9 afe9 afe9 afe9 afe9 -2458 afea afea afea * 576e * 8ea1d7ee,d7ee,8ea1d7eev,d7eev 8228 e888a8 8228 00008228 afea afea afea afea afea afea afea -2459 afeb afeb afeb * 576f * 8ea1d7ef,d7ef,8ea1d7efv,d7efv 822c e888ac 822c 0000822c afeb afeb afeb afeb afeb afeb afeb -2460 afec afec afec * 5770 * 8ea1d7f0,d7f0,8ea1d7f0v,d7f0v 82bb e88abb 82bb 000082bb afec afec afec afec afec afec afec -2461 afed afed afed * 5771 * 8ea1d7f1,d7f1,8ea1d7f1v,d7f1v 832b e88cab 832b 0000832b afed afed afed afed afed afed afed -2462 afee afee afee * 5772 * 8ea1d7f2,d7f2,8ea1d7f2v,d7f2v 8352 e88d92 8352 00008352 afee afee afee afee afee afee afee -2463 afef afef afef * 5773 * 8ea1d7f3,d7f3,8ea1d7f3v,d7f3v 8354 e88d94 8354 00008354 afef afef afef afef afef afef afef -2464 aff0 aff0 aff0 * 5774 * 8ea1d7f4,d7f4,8ea1d7f4v,d7f4v 834a e88d8a 834a 0000834a aff0 aff0 aff0 aff0 aff0 aff0 aff0 -2465 aff1 aff1 aff1 * 5775 * 8ea1d7f5,d7f5,8ea1d7f5v,d7f5v 8338 e88cb8 8338 00008338 aff1 aff1 aff1 aff1 aff1 aff1 aff1 -2466 aff2 aff2 aff2 * 5776 * 8ea1d7f6,d7f6,8ea1d7f6v,d7f6v 8350 e88d90 8350 00008350 aff2 aff2 aff2 aff2 aff2 aff2 aff2 -2467 aff3 aff3 aff3 * 5777 * 8ea1d7f7,d7f7,8ea1d7f7v,d7f7v 8349 e88d89 8349 00008349 aff3 aff3 aff3 aff3 aff3 aff3 aff3 -2468 aff4 aff4 aff4 * 5778 * 8ea1d7f8,d7f8,8ea1d7f8v,d7f8v 8335 e88cb5 8335 00008335 aff4 aff4 aff4 aff4 aff4 aff4 aff4 -2469 aff5 aff5 aff5 * 5779 * 8ea1d7f9,d7f9,8ea1d7f9v,d7f9v 8334 e88cb4 8334 00008334 aff5 aff5 aff5 aff5 aff5 aff5 aff5 -2470 aff6 aff6 aff6 * 577a * 8ea1d7fa,d7fa,8ea1d7fav,d7fav 834f e88d8f 834f 0000834f aff6 aff6 aff6 aff6 aff6 aff6 aff6 -2471 aff7 aff7 aff7 * 577b * 8ea1d7fb,d7fb,8ea1d7fbv,d7fbv 8332 e88cb2 8332 00008332 aff7 aff7 aff7 aff7 aff7 aff7 aff7 -2472 aff8 aff8 aff8 * 577c * 8ea1d7fc,d7fc,8ea1d7fcv,d7fcv 8339 e88cb9 8339 00008339 aff8 aff8 aff8 aff8 aff8 aff8 aff8 -2473 aff9 aff9 aff9 * 577d * 8ea1d7fd,d7fd,8ea1d7fdv,d7fdv 8336 e88cb6 8336 00008336 aff9 aff9 aff9 aff9 aff9 aff9 aff9 -2474 affa affa affa * 577e * 8ea1d7fe,d7fe,8ea1d7fev,d7fev 8317 e88c97 8317 00008317 affa affa affa affa affa affa affa -2475 affb affb affb * 5821 * 8ea1d8a1,d8a1,8ea1d8a1v,d8a1v 8340 e88d80 8340 00008340 affb affb affb affb affb affb affb -2476 affc affc affc * 5822 * 8ea1d8a2,d8a2,8ea1d8a2v,d8a2v 8331 e88cb1 8331 00008331 affc affc affc affc affc affc affc -2477 affd affd affd * 5823 * 8ea1d8a3,d8a3,8ea1d8a3v,d8a3v 8328 e88ca8 8328 00008328 affd affd affd affd affd affd affd -2478 affe affe affe * 5824 * 8ea1d8a4,d8a4,8ea1d8a4v,d8a4v 8343 e88d83 8343 00008343 affe affe affe affe affe affe affe -2479 b040 b040 b040 * 5825 * 8ea1d8a5,d8a5,8ea1d8a5v,d8a5v 8654 e89994 8654 00008654 b040 b040 b040 b040 b040 b040 b040 -2480 b041 b041 b041 * 5826 * 8ea1d8a6,d8a6,8ea1d8a6v,d8a6v 868a e89a8a 868a 0000868a b041 b041 b041 b041 b041 b041 b041 -2481 b042 b042 b042 * 5827 * 8ea1d8a7,d8a7,8ea1d8a7v,d8a7v 86aa e89aaa 86aa 000086aa b042 b042 b042 b042 b042 b042 b042 -2482 b043 b043 b043 * 5828 * 8ea1d8a8,d8a8,8ea1d8a8v,d8a8v 8693 e89a93 8693 00008693 b043 b043 b043 b043 b043 b043 b043 -2483 b044 b044 b044 * 5829 * 8ea1d8a9,d8a9,8ea1d8a9v,d8a9v 86a4 e89aa4 86a4 000086a4 b044 b044 b044 b044 b044 b044 b044 -2484 b045 b045 b045 * 582a * 8ea1d8aa,d8aa,8ea1d8aav,d8aav 86a9 e89aa9 86a9 000086a9 b045 b045 b045 b045 b045 b045 b045 -2485 b046 b046 b046 * 582b * 8ea1d8ab,d8ab,8ea1d8abv,d8abv 868c e89a8c 868c 0000868c b046 b046 b046 b046 b046 b046 b046 -2486 b047 b047 b047 * 582c * 8ea1d8ac,d8ac,8ea1d8acv,d8acv 86a3 e89aa3 86a3 000086a3 b047 b047 b047 b047 b047 b047 b047 -2487 b048 b048 b048 * 582d * 8ea1d8ad,d8ad,8ea1d8adv,d8adv 869c e89a9c 869c 0000869c b048 b048 b048 b048 b048 b048 b048 -2488 b049 b049 b049 * 582e * 8ea1d8ae,d8ae,8ea1d8aev,d8aev 8870 e8a1b0 8870 00008870 b049 b049 b049 b049 b049 b049 b049 -2489 b04a b04a b04a * 582f * 8ea1d8af,d8af,8ea1d8afv,d8afv 8877 e8a1b7 8877 00008877 b04a b04a b04a b04a b04a b04a b04a -2490 b04b b04b b04b * 5830 * 8ea1d8b0,d8b0,8ea1d8b0v,d8b0v 8881 e8a281 8881 00008881 b04b b04b b04b b04b b04b b04b b04b -2491 b04c b04c b04c * 5831 * 8ea1d8b1,d8b1,8ea1d8b1v,d8b1v 8882 e8a282 8882 00008882 b04c b04c b04c b04c b04c b04c b04c -2492 b04d b04d b04d * 5832 * 8ea1d8b2,d8b2,8ea1d8b2v,d8b2v 887d e8a1bd 887d 0000887d b04d b04d b04d b04d b04d b04d b04d -2493 b04e b04e b04e * 5833 * 8ea1d8b3,d8b3,8ea1d8b3v,d8b3v 8879 e8a1b9 8879 00008879 b04e b04e b04e b04e b04e b04e b04e -2494 b04f b04f b04f * 5834 * 8ea1d8b4,d8b4,8ea1d8b4v,d8b4v 8a18 e8a898 8a18 00008a18 b04f b04f b04f b04f b04f b04f b04f -2495 b050 b050 b050 * 5835 * 8ea1d8b5,d8b5,8ea1d8b5v,d8b5v 8a10 e8a890 8a10 00008a10 b050 b050 b050 b050 b050 b050 b050 -2496 b051 b051 b051 * 5836 * 8ea1d8b6,d8b6,8ea1d8b6v,d8b6v 8a0e e8a88e 8a0e 00008a0e b051 b051 b051 b051 b051 b051 b051 -2497 b052 b052 b052 * 5837 * 8ea1d8b7,d8b7,8ea1d8b7v,d8b7v 8a0c e8a88c 8a0c 00008a0c b052 b052 b052 b052 b052 b052 b052 -2498 b053 b053 b053 * 5838 * 8ea1d8b8,d8b8,8ea1d8b8v,d8b8v 8a15 e8a895 8a15 00008a15 b053 b053 b053 b053 b053 b053 b053 -2499 b054 b054 b054 * 5839 * 8ea1d8b9,d8b9,8ea1d8b9v,d8b9v 8a0a e8a88a 8a0a 00008a0a b054 b054 b054 b054 b054 b054 b054 -2500 b055 b055 b055 * 583a * 8ea1d8ba,d8ba,8ea1d8bav,d8bav 8a17 e8a897 8a17 00008a17 b055 b055 b055 b055 b055 b055 b055 -2501 b056 b056 b056 * 583b * 8ea1d8bb,d8bb,8ea1d8bbv,d8bbv 8a13 e8a893 8a13 00008a13 b056 b056 b056 b056 b056 b056 b056 -2502 b057 b057 b057 * 583c * 8ea1d8bc,d8bc,8ea1d8bcv,d8bcv 8a16 e8a896 8a16 00008a16 b057 b057 b057 b057 b057 b057 b057 -2503 b058 b058 b058 * 583d * 8ea1d8bd,d8bd,8ea1d8bdv,d8bdv 8a0f e8a88f 8a0f 00008a0f b058 b058 b058 b058 b058 b058 b058 -2504 b059 b059 b059 * 583e * 8ea1d8be,d8be,8ea1d8bev,d8bev 8a11 e8a891 8a11 00008a11 b059 b059 b059 b059 b059 b059 b059 -2505 b05a b05a b05a * 583f * 8ea1d8bf,d8bf,8ea1d8bfv,d8bfv 8c48 e8b188 8c48 00008c48 b05a b05a b05a b05a b05a b05a b05a -2506 b05b b05b b05b * 5840 * 8ea1d8c0,d8c0,8ea1d8c0v,d8c0v 8c7a e8b1ba 8c7a 00008c7a b05b b05b b05b b05b b05b b05b b05b -2507 b05c b05c b05c * 5841 * 8ea1d8c1,d8c1,8ea1d8c1v,d8c1v 8c79 e8b1b9 8c79 00008c79 b05c b05c b05c b05c b05c b05c b05c -2508 b05d b05d b05d * 5842 * 8ea1d8c2,d8c2,8ea1d8c2v,d8c2v 8ca1 e8b2a1 8ca1 00008ca1 b05d b05d b05d b05d b05d b05d b05d -2509 b05e b05e b05e * 5843 * 8ea1d8c3,d8c3,8ea1d8c3v,d8c3v 8ca2 e8b2a2 8ca2 00008ca2 b05e b05e b05e b05e b05e b05e b05e -2510 b05f b05f b05f * 5844 * 8ea1d8c4,d8c4,8ea1d8c4v,d8c4v 8d77 e8b5b7,ee918a 8d77,e44a 00008d77,0000e44a 8ffe,b05f b05f b05f b05f b05f b05f 8ffe,b05f -2511 b060 b060 b060 * 5845 * 8ea1d8c5,d8c5,8ea1d8c5v,d8c5v 8eac e8baac 8eac 00008eac b060 b060 b060 b060 b060 b060 b060 -2512 b061 b061 b061 * 5846 * 8ea1d8c6,d8c6,8ea1d8c6v,d8c6v 8ed2 e8bb92 8ed2 00008ed2 b061 b061 b061 b061 b061 b061 b061 -2513 b062 b062 b062 * 5847 * 8ea1d8c7,d8c7,8ea1d8c7v,d8c7v 8ed4 e8bb94 8ed4 00008ed4 b062 b062 b062 b062 b062 b062 b062 -2514 b063 b063 b063 * 5848 * 8ea1d8c8,d8c8,8ea1d8c8v,d8c8v 8ecf e8bb8f 8ecf 00008ecf b063 b063 b063 b063 b063 b063 b063 -2515 b064 b064 b064 * 5849 * 8ea1d8c9,d8c9,8ea1d8c9v,d8c9v 8fb1 e8beb1 8fb1 00008fb1 b064 b064 b064 b064 b064 b064 b064 -2516 b065 b065 b065 * 584a * 8ea1d8ca,d8ca,8ea1d8cav,d8cav 9001 e98081 9001 00009001 b065 b065 b065 b065 b065 b065 b065 -2517 b066 b066 b066 * 584b * 8ea1d8cb,d8cb,8ea1d8cbv,d8cbv 9006 e98086 9006 00009006 b066 b066 b066 b066 b066 b066 b066 -2518 b067 b067 b067 * 584c * 8ea1d8cc,d8cc,8ea1d8ccv,d8ccv 8ff7 e8bfb7 8ff7 00008ff7 b067 b067 b067 b067 b067 b067 b067 -2519 b068 b068 b068 * 584d * 8ea1d8cd,d8cd,8ea1d8cdv,d8cdv 9000 e98080 9000 00009000 b068 b068 b068 b068 b068 b068 b068 -2520 b069 b069 b069 * 584e * 8ea1d8ce,d8ce,8ea1d8cev,d8cev 8ffa e8bfba 8ffa 00008ffa b069 b069 b069 b069 b069 b069 b069 -2521 b06a b06a b06a * 584f * 8ea1d8cf,d8cf,8ea1d8cfv,d8cfv 8ff4 e8bfb4 8ff4 00008ff4 b06a b06a b06a b06a b06a b06a b06a -2522 b06b b06b b06b * 5850 * 8ea1d8d0,d8d0,8ea1d8d0v,d8d0v 9003 e98083 9003 00009003 b06b b06b b06b b06b b06b b06b b06b -2523 b06c b06c b06c * 5851 * 8ea1d8d1,d8d1,8ea1d8d1v,d8d1v 8ffd e8bfbd 8ffd 00008ffd b06c b06c b06c b06c b06c b06c b06c -2524 b06d b06d b06d * 5852 * 8ea1d8d2,d8d2,8ea1d8d2v,d8d2v 9005 e98085 9005 00009005 b06d b06d b06d b06d b06d b06d b06d -2525 b06e b06e b06e * 5853 * 8ea1d8d3,d8d3,8ea1d8d3v,d8d3v 8ff8 e8bfb8 8ff8 00008ff8 b06e b06e b06e b06e b06e b06e b06e -2526 b06f b06f b06f * 5854 * 8ea1d8d4,d8d4,8ea1d8d4v,d8d4v 9095 e98295 9095 00009095 b06f b06f b06f b06f b06f b06f b06f -2527 b070 b070 b070 * 5855 * 8ea1d8d5,d8d5,8ea1d8d5v,d8d5v 90e1 e983a1 90e1 000090e1 b070 b070 b070 b070 b070 b070 b070 -2528 b071 b071 b071 * 5856 * 8ea1d8d6,d8d6,8ea1d8d6v,d8d6v 90dd e9839d 90dd 000090dd b071 b071 b071 b071 b071 b071 b071 -2529 b072 b072 b072 * 5857 * 8ea1d8d7,d8d7,8ea1d8d7v,d8d7v 90e2 e983a2 90e2 000090e2 b072 b072 b072 b072 b072 b072 b072 -2530 b073 b073 b073 * 5858 * 8ea1d8d8,d8d8,8ea1d8d8v,d8d8v 9152 e98592 9152 00009152 b073 b073 b073 b073 b073 b073 b073 -2531 b074 b074 b074 * 5859 * 8ea1d8d9,d8d9,8ea1d8d9v,d8d9v 914d e9858d 914d 0000914d b074 b074 b074 b074 b074 b074 b074 -2532 b075 b075 b075 * 585a * 8ea1d8da,d8da,8ea1d8dav,d8dav 914c e9858c 914c 0000914c b075 b075 b075 b075 b075 b075 b075 -2533 b076 b076 b076 * 585b * 8ea1d8db,d8db,8ea1d8dbv,d8dbv 91d8 e98798 91d8 000091d8 b076 b076 b076 b076 b076 b076 b076 -2534 b077 b077 b077 * 585c * 8ea1d8dc,d8dc,8ea1d8dcv,d8dcv 91dd e9879d 91dd 000091dd b077 b077 b077 b077 b077 b077 b077 -2535 b078 b078 b078 * 585d * 8ea1d8dd,d8dd,8ea1d8ddv,d8ddv 91d7 e98797 91d7 000091d7 b078 b078 b078 b078 b078 b078 b078 -2536 b079 b079 b079 * 585e * 8ea1d8de,d8de,8ea1d8dev,d8dev 91dc e9879c 91dc 000091dc b079 b079 b079 b079 b079 b079 b079 -2537 b07a b07a b07a * 585f * 8ea1d8df,d8df,8ea1d8dfv,d8dfv 91d9 e98799 91d9 000091d9 b07a b07a b07a b07a b07a b07a b07a -2538 b07b b07b b07b * 5860 * 8ea1d8e0,d8e0,8ea1d8e0v,d8e0v 9583 e99683 9583 00009583 b07b b07b b07b b07b b07b b07b b07b -2539 b07c b07c b07c * 5861 * 8ea1d8e1,d8e1,8ea1d8e1v,d8e1v 9662 e999a2 9662 00009662 b07c b07c b07c b07c b07c b07c b07c -2540 b07d b07d b07d * 5862 * 8ea1d8e2,d8e2,8ea1d8e2v,d8e2v 9663 e999a3 9663 00009663 b07d b07d b07d b07d b07d b07d b07d -2541 b07e b07e b07e * 5863 * 8ea1d8e3,d8e3,8ea1d8e3v,d8e3v 9661 e999a1 9661 00009661 b07e b07e b07e b07e b07e b07e b07e -2542 b0a1 b0a1 b0a1 * 5864 * 8ea1d8e4,d8e4,8ea1d8e4v,d8e4v 965b e9999b 965b 0000965b b0a1 b0a1 b0a1 b0a1 b0a1 b0a1 b0a1 -2543 b0a2 b0a2 b0a2 * 5865 * 8ea1d8e5,d8e5,8ea1d8e5v,d8e5v 965d e9999d 965d 0000965d b0a2 b0a2 b0a2 b0a2 b0a2 b0a2 b0a2 -2544 b0a3 b0a3 b0a3 * 5866 * 8ea1d8e6,d8e6,8ea1d8e6v,d8e6v 9664 e999a4 9664 00009664 b0a3 b0a3 b0a3 b0a3 b0a3 b0a3 b0a3 -2545 b0a4 b0a4 b0a4 * 5867 * 8ea1d8e7,d8e7,8ea1d8e7v,d8e7v 9658 e99998 9658 00009658 b0a4 b0a4 b0a4 b0a4 b0a4 b0a4 b0a4 -2546 b0a5 b0a5 b0a5 * 5868 * 8ea1d8e8,d8e8,8ea1d8e8v,d8e8v 965e e9999e 965e 0000965e b0a5 b0a5 b0a5 b0a5 b0a5 b0a5 b0a5 -2547 b0a6 b0a6 b0a6 * 5869 * 8ea1d8e9,d8e9,8ea1d8e9v,d8e9v 96bb e99abb 96bb 000096bb b0a6 b0a6 b0a6 b0a6 b0a6 b0a6 b0a6 -2548 b0a7 b0a7 b0a7 * 586a * 8ea1d8ea,d8ea,8ea1d8eav,d8eav 98e2 e9a3a2 98e2 000098e2 b0a7 b0a7 b0a7 b0a7 b0a7 b0a7 b0a7 -2549 b0a8 b0a8 b0a8 * 287c,586b * 8ea1a8fc,8ea1d8eb,a8fc,d8eb,8ea1a8fcv,8ea1d8ebv,a8fcv,d8ebv 99ac e9a6ac,e2beba 99ac,2fba 000099ac,00002fba b0a8 b0a8 b0a8 b0a8 b0a8 b0a8 b0a8 -2550 b0a9 b0a9 b0a9 * 287d,586c * 8ea1a8fd,8ea1d8ec,a8fd,d8ec,8ea1a8fdv,8ea1d8ecv,a8fdv,d8ecv 2ee3,9aa8 e9aaa8,e2bebb 9aa8,2fbb 00009aa8,00002fbb b0a9 b0a9 b0a9 b0a9 b0a9 b0a9 b0a9 -2551 b0aa b0aa b0aa * 287e,586d * 8ea1a8fe,8ea1d8ed,a8fe,d8ed,8ea1a8fev,8ea1d8edv,a8fev,d8edv 9ad8 e9ab98,e2bebc 9ad8,2fbc 00009ad8,00002fbc b0aa b0aa b0aa b0aa b0aa b0aa b0aa -2552 b0ab b0ab b0ab * 2922,586e * 8ea1a9a2,8ea1d8ee,a9a2,d8ee,8ea1a9a2v,8ea1d8eev,a9a2v,d8eev 9b25 e2bebe,e9aca5 2fbe,9b25 00002fbe,00009b25 b0ab b0ab b0ab b0ab b0ab b0ab b0ab -2553 b0ac b0ac b0ac * 2924,586f * 8ea1a9a4,8ea1d8ef,a9a4,d8ef,8ea1a9a4v,8ea1d8efv,a9a4v,d8efv 9b32 e9acb2,e2bf80 9b32,2fc0 00009b32,00002fc0 b0ac b0ac b0ac b0ac b0ac b0ac b0ac -2554 b0ad b0ad b0ad * 2925,5870 * 8ea1a9a5,8ea1d8f0,a9a5,d8f0,8ea1a9a5v,8ea1d8f0v,a9a5v,d8f0v 9b3c e9acbc,e2bf81 9b3c,2fc1 00009b3c,00002fc1 b0ad b0ad b0ad b0ad b0ad b0ad b0ad -2555 b0ae b0ae b0ae * 5871 * 8ea1d8f1,d8f1,8ea1d8f1v,d8f1v 4e7e e4b9be 4e7e 00004e7e b0ae b0ae b0ae b0ae b0ae b0ae b0ae -2556 b0af b0af b0af * 5872 * 8ea1d8f2,d8f2,8ea1d8f2v,d8f2v 507a e581ba 507a 0000507a b0af b0af b0af b0af b0af b0af b0af -2557 b0b0 b0b0 b0b0 * 5873 * 8ea1d8f3,d8f3,8ea1d8f3v,d8f3v 507d e581bd,ee80a6 507d,e026 0000507d,0000e026 fa66,b0b0 b0b0 b0b0 b0b0 b0b0 b0b0 fa66,b0b0 -2558 b0b1 b0b1 b0b1 * 5874 * 8ea1d8f4,d8f4,8ea1d8f4v,d8f4v 505c e5819c 505c 0000505c b0b1 b0b1 b0b1 b0b1 b0b1 b0b1 b0b1 -2559 b0b2 b0b2 b0b2 * 5875 * 8ea1d8f5,d8f5,8ea1d8f5v,d8f5v 5047 e58187 5047 00005047 b0b2 b0b2 b0b2 b0b2 b0b2 b0b2 b0b2 -2560 b0b3 b0b3 b0b3 * 5876 * 8ea1d8f6,d8f6,8ea1d8f6v,d8f6v 5043 e58183 5043 00005043 b0b3 b0b3 b0b3 b0b3 b0b3 b0b3 b0b3 -2561 b0b4 b0b4 b0b4 * 5877 * 8ea1d8f7,d8f7,8ea1d8f7v,d8f7v 504c e5818c 504c 0000504c b0b4 b0b4 b0b4 b0b4 b0b4 b0b4 b0b4 -2562 b0b5 b0b5 b0b5 * 5878 * 8ea1d8f8,d8f8,8ea1d8f8v,d8f8v 505a e5819a 505a 0000505a b0b5 b0b5 b0b5 b0b5 b0b5 b0b5 b0b5 -2563 b0b6 b0b6 b0b6 * 5879 * 8ea1d8f9,d8f9,8ea1d8f9v,d8f9v 5049 e58189 5049 00005049 b0b6 b0b6 b0b6 b0b6 b0b6 b0b6 b0b6 -2564 b0b7 b0b7 b0b7 * 587a * 8ea1d8fa,d8fa,8ea1d8fav,d8fav 5065 e581a5 5065 00005065 b0b7 b0b7 b0b7 b0b7 b0b7 b0b7 b0b7 -2565 b0b8 b0b8 b0b8 * 587b * 8ea1d8fb,d8fb,8ea1d8fbv,d8fbv 5076 e581b6 5076 00005076 b0b8 b0b8 b0b8 b0b8 b0b8 b0b8 b0b8 -2566 b0b9 b0b9 b0b9 * 587c * 8ea1d8fc,d8fc,8ea1d8fcv,d8fcv 504e e5818e 504e 0000504e b0b9 b0b9 b0b9 b0b9 b0b9 b0b9 b0b9 -2567 b0ba b0ba b0ba * 587d * 8ea1d8fd,d8fd,8ea1d8fdv,d8fdv 5055 e58195 5055 00005055 b0ba b0ba b0ba b0ba b0ba b0ba b0ba -2568 b0bb b0bb b0bb * 587e * 8ea1d8fe,d8fe,8ea1d8fev,d8fev 5075 e581b5 5075 00005075 b0bb b0bb b0bb b0bb b0bb b0bb b0bb -2569 b0bc b0bc b0bc * 5921 * 8ea1d9a1,d9a1,8ea1d9a1v,d9a1v 5074 e581b4 5074 00005074 b0bc b0bc b0bc b0bc b0bc b0bc b0bc -2570 b0bd b0bd b0bd * 5922 * 8ea1d9a2,d9a2,8ea1d9a2v,d9a2v 5077 e581b7 5077 00005077 b0bd b0bd b0bd b0bd b0bd b0bd b0bd -2571 b0be b0be b0be * 5923 * 8ea1d9a3,d9a3,8ea1d9a3v,d9a3v 504f e5818f 504f 0000504f b0be b0be b0be b0be b0be b0be b0be -2572 b0bf b0bf b0bf * 5924 * 8ea1d9a4,d9a4,8ea1d9a4v,d9a4v 500f e5808f 500f 0000500f b0bf b0bf b0bf b0bf b0bf b0bf b0bf -2573 b0c0 b0c0 b0c0 * 5925 * 8ea1d9a5,d9a5,8ea1d9a5v,d9a5v 506f e581af 506f 0000506f b0c0 b0c0 b0c0 b0c0 b0c0 b0c0 b0c0 -2574 b0c1 b0c1 b0c1 * 5926 * 8ea1d9a6,d9a6,8ea1d9a6v,d9a6v 506d e581ad 506d 0000506d b0c1 b0c1 b0c1 b0c1 b0c1 b0c1 b0c1 -2575 b0c2 b0c2 b0c2 * 5927 * 8ea1d9a7,d9a7,8ea1d9a7v,d9a7v 515c e5859c 515c 0000515c b0c2 b0c2 b0c2 b0c2 b0c2 b0c2 b0c2 -2576 b0c3 b0c3 b0c3 * 5928 * 8ea1d9a8,d9a8,8ea1d9a8v,d9a8v 5195 e58695 5195 00005195 b0c3 b0c3 b0c3 b0c3 b0c3 b0c3 b0c3 -2577 b0c4 b0c4 b0c4 * 5929 * 8ea1d9a9,d9a9,8ea1d9a9v,d9a9v 51f0 e587b0 51f0 000051f0 b0c4 b0c4 b0c4 b0c4 b0c4 b0c4 b0c4 -2578 b0c5 b0c5 b0c5 * 592a * 8ea1d9aa,d9aa,8ea1d9aav,d9aav 526a e589aa 526a 0000526a b0c5 b0c5 b0c5 b0c5 b0c5 b0c5 b0c5 -2579 b0c6 b0c6 b0c6 * 592b * 8ea1d9ab,d9ab,8ea1d9abv,d9abv 526f e589af 526f 0000526f b0c6 b0c6 b0c6 b0c6 b0c6 b0c6 b0c6 -2580 b0c7 b0c7 b0c7 * 592c * 8ea1d9ac,d9ac,8ea1d9acv,d9acv 52d2 e58b92 52d2 000052d2 b0c7 b0c7 b0c7 b0c7 b0c7 b0c7 b0c7 -2581 b0c8 b0c8 b0c8 * 592d * 8ea1d9ad,d9ad,8ea1d9adv,d9adv 52d9 e58b99 52d9 000052d9 b0c8 b0c8 b0c8 b0c8 b0c8 b0c8 b0c8 -2582 b0c9 b0c9 b0c9 * 592e * 8ea1d9ae,d9ae,8ea1d9aev,d9aev 52d8 e58b98 52d8 000052d8 b0c9 b0c9 b0c9 b0c9 b0c9 b0c9 b0c9 -2583 b0ca b0ca b0ca * 592f * 8ea1d9af,d9af,8ea1d9afv,d9afv 52d5 e58b95 52d5 000052d5 b0ca b0ca b0ca b0ca b0ca b0ca b0ca -2584 b0cb b0cb b0cb * 5930 * 8ea1d9b0,d9b0,8ea1d9b0v,d9b0v 5310 e58c90 5310 00005310 b0cb b0cb b0cb b0cb b0cb b0cb b0cb -2585 b0cc b0cc b0cc * 5931 * 8ea1d9b1,d9b1,8ea1d9b1v,d9b1v 530f e58c8f 530f 0000530f b0cc b0cc b0cc b0cc b0cc b0cc b0cc -2586 b0cd b0cd b0cd * 5932 * 8ea1d9b2,d9b2,8ea1d9b2v,d9b2v 5319 e58c99 5319 00005319 b0cd b0cd b0cd b0cd b0cd b0cd b0cd -2587 b0ce b0ce b0ce * 5933 * 8ea1d9b3,d9b3,8ea1d9b3v,d9b3v 533f e58cbf 533f 0000533f b0ce b0ce b0ce b0ce b0ce b0ce b0ce -2588 b0cf b0cf b0cf * 5934 * 8ea1d9b4,d9b4,8ea1d9b4v,d9b4v 5340 e58d80 5340 00005340 b0cf b0cf b0cf b0cf b0cf b0cf b0cf -2589 b0d0 b0d0 b0d0 * 5935 * 8ea1d9b5,d9b5,8ea1d9b5v,d9b5v 533e e58cbe 533e 0000533e b0d0 b0d0 b0d0 b0d0 b0d0 b0d0 b0d0 -2590 b0d1 b0d1 b0d1 * 5936 * 8ea1d9b6,d9b6,8ea1d9b6v,d9b6v 53c3 e58f83 53c3 000053c3 b0d1 b0d1 b0d1 b0d1 b0d1 b0d1 b0d1 -2591 b0d2 b0d2 b0d2 * 5937 * 8ea1d9b7,d9b7,8ea1d9b7v,d9b7v 66fc e69bbc 66fc 000066fc b0d2 b0d2 b0d2 b0d2 b0d2 b0d2 b0d2 -2592 b0d3 b0d3 b0d3 * 5938 * 8ea1d9b8,d9b8,8ea1d9b8v,d9b8v 5546 e59586 5546 00005546 b0d3 b0d3 b0d3 b0d3 b0d3 b0d3 b0d3 -2593 b0d4 b0d4 b0d4 * 5939 * 8ea1d9b9,d9b9,8ea1d9b9v,d9b9v 556a e595aa 556a 0000556a b0d4 b0d4 b0d4 b0d4 b0d4 b0d4 b0d4 -2594 b0d5 b0d5 b0d5 * 593a * 8ea1d9ba,d9ba,8ea1d9bav,d9bav 5566 e595a6 5566 00005566 b0d5 b0d5 b0d5 b0d5 b0d5 b0d5 b0d5 -2595 b0d6 b0d6 b0d6 * 593b * 8ea1d9bb,d9bb,8ea1d9bbv,d9bbv 5544 e59584 5544 00005544 b0d6 b0d6 b0d6 b0d6 b0d6 b0d6 b0d6 -2596 b0d7 b0d7 b0d7 * 593c * 8ea1d9bc,d9bc,8ea1d9bcv,d9bcv 555e e5959e 555e 0000555e b0d7 b0d7 b0d7 b0d7 b0d7 b0d7 b0d7 -2597 b0d8 b0d8 b0d8 * 593d * 8ea1d9bd,d9bd,8ea1d9bdv,d9bdv 5561 e595a1 5561 00005561 b0d8 b0d8 b0d8 b0d8 b0d8 b0d8 b0d8 -2598 b0d9 b0d9 b0d9 * 593e * 8ea1d9be,d9be,8ea1d9bev,d9bev 5543 e59583 5543 00005543 b0d9 b0d9 b0d9 b0d9 b0d9 b0d9 b0d9 -2599 b0da b0da b0da * 593f * 8ea1d9bf,d9bf,8ea1d9bfv,d9bfv 554a e5958a 554a 0000554a b0da b0da b0da b0da b0da b0da b0da -2600 b0db b0db b0db * 5940 * 8ea1d9c0,d9c0,8ea1d9c0v,d9c0v 5531 e594b1 5531 00005531 b0db b0db b0db b0db b0db b0db b0db -2601 b0dc b0dc b0dc * 5941 * 8ea1d9c1,d9c1,8ea1d9c1v,d9c1v 5556 e59596 5556 00005556 b0dc b0dc b0dc b0dc b0dc b0dc b0dc -2602 b0dd b0dd b0dd * 5942 * 8ea1d9c2,d9c2,8ea1d9c2v,d9c2v 554f e5958f 554f 0000554f b0dd b0dd b0dd b0dd b0dd b0dd b0dd -2603 b0de b0de b0de * 5943 * 8ea1d9c3,d9c3,8ea1d9c3v,d9c3v 5555 e59595 5555 00005555 b0de b0de b0de b0de b0de b0de b0de -2604 b0df b0df b0df * 5944 * 8ea1d9c4,d9c4,8ea1d9c4v,d9c4v 552f e594af 552f 0000552f b0df b0df b0df b0df b0df b0df b0df -2605 b0e0 b0e0 b0e0 * 5945 * 8ea1d9c5,d9c5,8ea1d9c5v,d9c5v 5564 e595a4 5564 00005564 b0e0 b0e0 b0e0 b0e0 b0e0 b0e0 b0e0 -2606 b0e1 b0e1 b0e1 * 5946 * 8ea1d9c6,d9c6,8ea1d9c6v,d9c6v 5538 e594b8 5538 00005538 b0e1 b0e1 b0e1 b0e1 b0e1 b0e1 b0e1 -2607 b0e2 b0e2 b0e2 * 5947 * 8ea1d9c7,d9c7,8ea1d9c7v,d9c7v 552e e594ae 552e 0000552e b0e2 b0e2 b0e2 b0e2 b0e2 b0e2 b0e2 -2608 b0e3 b0e3 b0e3 * 5948 * 8ea1d9c8,d9c8,8ea1d9c8v,d9c8v 555c e5959c 555c 0000555c b0e3 b0e3 b0e3 b0e3 b0e3 b0e3 b0e3 -2609 b0e4 b0e4 b0e4 * 5949 * 8ea1d9c9,d9c9,8ea1d9c9v,d9c9v 552c e594ac 552c 0000552c b0e4 b0e4 b0e4 b0e4 b0e4 b0e4 b0e4 -2610 b0e5 b0e5 b0e5 * 594a * 8ea1d9ca,d9ca,8ea1d9cav,d9cav 5563 e595a3 5563 00005563 b0e5 b0e5 b0e5 b0e5 b0e5 b0e5 b0e5 -2611 b0e6 b0e6 b0e6 * 594b * 8ea1d9cb,d9cb,8ea1d9cbv,d9cbv 5533 e594b3 5533 00005533 b0e6 b0e6 b0e6 b0e6 b0e6 b0e6 b0e6 -2612 b0e7 b0e7 b0e7 * 594c * 8ea1d9cc,d9cc,8ea1d9ccv,d9ccv 5541 e59581 5541 00005541 b0e7 b0e7 b0e7 b0e7 b0e7 b0e7 b0e7 -2613 b0e8 b0e8 b0e8 * 594d * 8ea1d9cd,d9cd,8ea1d9cdv,d9cdv 5557 e59597 5557 00005557 b0e8 b0e8 b0e8 b0e8 b0e8 b0e8 b0e8 -2614 b0e9 b0e9 b0e9 * 594e * 8ea1d9ce,d9ce,8ea1d9cev,d9cev 5708 e59c88 5708 00005708 b0e9 b0e9 b0e9 b0e9 b0e9 b0e9 b0e9 -2615 b0ea b0ea b0ea * 594f * 8ea1d9cf,d9cf,8ea1d9cfv,d9cfv 570b e59c8b 570b 0000570b b0ea b0ea b0ea b0ea b0ea b0ea b0ea -2616 b0eb b0eb b0eb * 5950 * 8ea1d9d0,d9d0,8ea1d9d0v,d9d0v 5709 e59c89 5709 00005709 b0eb b0eb b0eb b0eb b0eb b0eb b0eb -2617 b0ec b0ec b0ec * 5951 * 8ea1d9d1,d9d1,8ea1d9d1v,d9d1v 57df e59f9f 57df 000057df b0ec b0ec b0ec b0ec b0ec b0ec b0ec -2618 b0ed b0ed b0ed * 5952 * 8ea1d9d2,d9d2,8ea1d9d2v,d9d2v 5805 e5a085 5805 00005805 b0ed b0ed b0ed b0ed b0ed b0ed b0ed -2619 b0ee b0ee b0ee * 5953 * 8ea1d9d3,d9d3,8ea1d9d3v,d9d3v 580a e5a08a 580a 0000580a b0ee b0ee b0ee b0ee b0ee b0ee b0ee -2620 b0ef b0ef b0ef * 5954 * 8ea1d9d4,d9d4,8ea1d9d4v,d9d4v 5806 e5a086 5806 00005806 b0ef b0ef b0ef b0ef b0ef b0ef b0ef -2621 b0f0 b0f0 b0f0 * 5955 * 8ea1d9d5,d9d5,8ea1d9d5v,d9d5v 57e0 e59fa0 57e0 000057e0 b0f0 b0f0 b0f0 b0f0 b0f0 b0f0 b0f0 -2622 b0f1 b0f1 b0f1 * 5956 * 8ea1d9d6,d9d6,8ea1d9d6v,d9d6v 57e4 e59fa4 57e4 000057e4 b0f1 b0f1 b0f1 b0f1 b0f1 b0f1 b0f1 -2623 b0f2 b0f2 b0f2 * 5957 * 8ea1d9d7,d9d7,8ea1d9d7v,d9d7v 57fa e59fba 57fa 000057fa b0f2 b0f2 b0f2 b0f2 b0f2 b0f2 b0f2 -2624 b0f3 b0f3 b0f3 * 5958 * 8ea1d9d8,d9d8,8ea1d9d8v,d9d8v 5802 e5a082 5802 00005802 b0f3 b0f3 b0f3 b0f3 b0f3 b0f3 b0f3 -2625 b0f4 b0f4 b0f4 * 5959 * 8ea1d9d9,d9d9,8ea1d9d9v,d9d9v 5835 e5a0b5 5835 00005835 b0f4 b0f4 b0f4 b0f4 b0f4 b0f4 b0f4 -2626 b0f5 b0f5 b0f5 * 595a * 8ea1d9da,d9da,8ea1d9dav,d9dav 57f7 e59fb7 57f7 000057f7 b0f5 b0f5 b0f5 b0f5 b0f5 b0f5 b0f5 -2627 b0f6 b0f6 b0f6 * 595b * 8ea1d9db,d9db,8ea1d9dbv,d9dbv 57f9 e59fb9 57f9 000057f9 b0f6 b0f6 b0f6 b0f6 b0f6 b0f6 b0f6 -2628 b0f7 b0f7 b0f7 * 595c * 8ea1d9dc,d9dc,8ea1d9dcv,d9dcv 5920 e5a4a0 5920 00005920 b0f7 b0f7 b0f7 b0f7 b0f7 b0f7 b0f7 -2629 b0f8 b0f8 b0f8 * 595d * 8ea1d9dd,d9dd,8ea1d9ddv,d9ddv 5962 e5a5a2 5962 00005962 b0f8 b0f8 b0f8 b0f8 b0f8 b0f8 b0f8 -2630 b0f9 b0f9 b0f9 * 595e * 8ea1d9de,d9de,8ea1d9dev,d9dev 5a36 e5a8b6 5a36 00005a36 b0f9 b0f9 b0f9 b0f9 b0f9 b0f9 b0f9 -2631 b0fa b0fa b0fa * 595f * 8ea1d9df,d9df,8ea1d9dfv,d9dfv 5a41 e5a981 5a41 00005a41 b0fa b0fa b0fa b0fa b0fa b0fa b0fa -2632 b0fb b0fb b0fb * 5960 * 8ea1d9e0,d9e0,8ea1d9e0v,d9e0v 5a49 e5a989 5a49 00005a49 b0fb b0fb b0fb b0fb b0fb b0fb b0fb -2633 b0fc b0fc b0fc * 5961 * 8ea1d9e1,d9e1,8ea1d9e1v,d9e1v 5a66 e5a9a6 5a66 00005a66 b0fc b0fc b0fc b0fc b0fc b0fc b0fc -2634 b0fd b0fd b0fd * 5962 * 8ea1d9e2,d9e2,8ea1d9e2v,d9e2v 5a6a e5a9aa 5a6a 00005a6a b0fd b0fd b0fd b0fd b0fd b0fd b0fd -2635 b0fe b0fe b0fe * 5963 * 8ea1d9e3,d9e3,8ea1d9e3v,d9e3v 5a40 e5a980 5a40 00005a40 b0fe b0fe b0fe b0fe b0fe b0fe b0fe -2636 b140 b140 b140 * 5964 * 8ea1d9e4,d9e4,8ea1d9e4v,d9e4v 5a3c e5a8bc 5a3c 00005a3c b140 b140 b140 b140 b140 b140 b140 -2637 b141 b141 b141 * 5965 * 8ea1d9e5,d9e5,8ea1d9e5v,d9e5v 5a62 e5a9a2 5a62 00005a62 b141 b141 b141 b141 b141 b141 b141 -2638 b142 b142 b142 * 5966 * 8ea1d9e6,d9e6,8ea1d9e6v,d9e6v 5a5a e5a99a 5a5a 00005a5a b142 b142 b142 b142 b142 b142 b142 -2639 b143 b143 b143 * 5967 * 8ea1d9e7,d9e7,8ea1d9e7v,d9e7v 5a46 e5a986 5a46 00005a46 b143 b143 b143 b143 b143 b143 b143 -2640 b144 b144 b144 * 5968 * 8ea1d9e8,d9e8,8ea1d9e8v,d9e8v 5a4a e5a98a 5a4a 00005a4a b144 b144 b144 b144 b144 b144 b144 -2641 b145 b145 b145 * 5969 * 8ea1d9e9,d9e9,8ea1d9e9v,d9e9v 5b70 e5adb0 5b70 00005b70 b145 b145 b145 b145 b145 b145 b145 -2642 b146 b146 b146 * 596a * 8ea1d9ea,d9ea,8ea1d9eav,d9eav 5bc7 e5af87 5bc7 00005bc7 b146 b146 b146 b146 b146 b146 b146 -2643 b147 b147 b147 * 596b * 8ea1d9eb,d9eb,8ea1d9ebv,d9ebv 5bc5 e5af85 5bc5 00005bc5 b147 b147 b147 b147 b147 b147 b147 -2644 b148 b148 b148 * 596c * 8ea1d9ec,d9ec,8ea1d9ecv,d9ecv 5bc4 e5af84 5bc4 00005bc4 b148 b148 b148 b148 b148 b148 b148 -2645 b149 b149 b149 * 596d * 8ea1d9ed,d9ed,8ea1d9edv,d9edv 5bc2 e5af82 5bc2 00005bc2 b149 b149 b149 b149 b149 b149 b149 -2646 b14a b14a b14a * 596e * 8ea1d9ee,d9ee,8ea1d9eev,d9eev 5bbf e5aebf 5bbf 00005bbf b14a b14a b14a b14a b14a b14a b14a -2647 b14b b14b b14b * 596f * 8ea1d9ef,d9ef,8ea1d9efv,d9efv 5bc6 e5af86 5bc6 00005bc6 b14b b14b b14b b14b b14b b14b b14b -2648 b14c b14c b14c * 5970 * 8ea1d9f0,d9f0,8ea1d9f0v,d9f0v 5c09 e5b089 5c09 00005c09 b14c b14c b14c b14c b14c b14c b14c -2649 b14d b14d b14d * 5971 * 8ea1d9f1,d9f1,8ea1d9f1v,d9f1v 5c08 e5b088 5c08 00005c08 b14d b14d b14d b14d b14d b14d b14d -2650 b14e b14e b14e * 5972 * 8ea1d9f2,d9f2,8ea1d9f2v,d9f2v 5c07 e5b087 5c07 00005c07 b14e b14e b14e b14e b14e b14e b14e -2651 b14f b14f b14f * 5973 * 8ea1d9f3,d9f3,8ea1d9f3v,d9f3v 5c60 e5b1a0 5c60 00005c60 b14f b14f b14f b14f b14f b14f b14f -2652 b150 b150 b150 * 5974 * 8ea1d9f4,d9f4,8ea1d9f4v,d9f4v 5c5c e5b19c 5c5c 00005c5c b150 b150 b150 b150 b150 b150 b150 -2653 b151 b151 b151 * 5975 * 8ea1d9f5,d9f5,8ea1d9f5v,d9f5v 5c5d e5b19d 5c5d 00005c5d b151 b151 b151 b151 b151 b151 b151 -2654 b152 b152 b152 * 5976 * 8ea1d9f6,d9f6,8ea1d9f6v,d9f6v 5d07 e5b487 5d07 00005d07 b152 b152 b152 b152 b152 b152 b152 -2655 b153 b153 b153 * 5977 * 8ea1d9f7,d9f7,8ea1d9f7v,d9f7v 5d06 e5b486 5d06 00005d06 b153 b153 b153 b153 b153 b153 b153 -2656 b154 b154 b154 * 5978 * 8ea1d9f8,d9f8,8ea1d9f8v,d9f8v 5d0e e5b48e 5d0e 00005d0e b154 b154 b154 b154 b154 b154 b154 -2657 b155 b155 b155 * 5979 * 8ea1d9f9,d9f9,8ea1d9f9v,d9f9v 5d1b e5b49b 5d1b 00005d1b b155 b155 b155 b155 b155 b155 b155 -2658 b156 b156 b156 * 597a * 8ea1d9fa,d9fa,8ea1d9fav,d9fav 5d16 e5b496 5d16 00005d16 b156 b156 b156 b156 b156 b156 b156 -2659 b157 b157 b157 * 597b * 8ea1d9fb,d9fb,8ea1d9fbv,d9fbv 5d22 e5b4a2 5d22 00005d22 b157 b157 b157 b157 b157 b157 b157 -2660 b158 b158 b158 * 597c * 8ea1d9fc,d9fc,8ea1d9fcv,d9fcv 5d11 e5b491 5d11 00005d11 b158 b158 b158 b158 b158 b158 b158 -2661 b159 b159 b159 * 597d * 8ea1d9fd,d9fd,8ea1d9fdv,d9fdv 5d29 e5b4a9 5d29 00005d29 b159 b159 b159 b159 b159 b159 b159 -2662 b15a b15a b15a * 597e * 8ea1d9fe,d9fe,8ea1d9fev,d9fev 5d14 e5b494 5d14 00005d14 b15a b15a b15a b15a b15a b15a b15a -2663 b15b b15b b15b * 5a21 * 8ea1daa1,daa1,8ea1daa1v,daa1v 5d19 e5b499 5d19 00005d19 b15b b15b b15b b15b b15b b15b b15b -2664 b15c b15c b15c * 5a22 * 8ea1daa2,daa2,8ea1daa2v,daa2v 5d24 e5b4a4 5d24 00005d24 b15c b15c b15c b15c b15c b15c b15c -2665 b15d b15d b15d * 5a23 * 8ea1daa3,daa3,8ea1daa3v,daa3v 5d27 e5b4a7 5d27 00005d27 b15d b15d b15d b15d b15d b15d b15d -2666 b15e b15e b15e * 5a24 * 8ea1daa4,daa4,8ea1daa4v,daa4v 5d17 e5b497 5d17 00005d17 b15e b15e b15e b15e b15e b15e b15e -2667 b15f b15f b15f * 5a25 * 8ea1daa5,daa5,8ea1daa5v,daa5v 5de2 e5b7a2 5de2 00005de2 b15f b15f b15f b15f b15f b15f b15f -2668 b160 b160 b160 * 5a26 * 8ea1daa6,daa6,8ea1daa6v,daa6v 5e38 e5b8b8 5e38 00005e38 b160 b160 b160 b160 b160 b160 b160 -2669 b161 b161 b161 * 5a27 * 8ea1daa7,daa7,8ea1daa7v,daa7v 5e36 e5b8b6 5e36 00005e36 b161 b161 b161 b161 b161 b161 b161 -2670 b162 b162 b162 * 5a28 * 8ea1daa8,daa8,8ea1daa8v,daa8v 5e33 e5b8b3 5e33 00005e33 b162 b162 b162 b162 b162 b162 b162 -2671 b163 b163 b163 * 5a29 * 8ea1daa9,daa9,8ea1daa9v,daa9v 5e37 e5b8b7 5e37 00005e37 b163 b163 b163 b163 b163 b163 b163 -2672 b164 b164 b164 * 5a2a * 8ea1daaa,daaa,8ea1daaav,daaav 5eb7 e5bab7 5eb7 00005eb7 b164 b164 b164 b164 b164 b164 b164 -2673 b165 b165 b165 * 5a2b * 8ea1daab,daab,8ea1daabv,daabv 5eb8 e5bab8 5eb8 00005eb8 b165 b165 b165 b165 b165 b165 b165 -2674 b166 b166 b166 * 5a2c * 8ea1daac,daac,8ea1daacv,daacv 5eb6 e5bab6 5eb6 00005eb6 b166 b166 b166 b166 b166 b166 b166 -2675 b167 b167 b167 * 5a2d * 8ea1daad,daad,8ea1daadv,daadv 5eb5 e5bab5 5eb5 00005eb5 b167 b167 b167 b167 b167 b167 b167 -2676 b168 b168 b168 * 5a2e * 8ea1daae,daae,8ea1daaev,daaev 5ebe e5babe 5ebe 00005ebe b168 b168 b168 b168 b168 b168 b168 -2677 b169 b169 b169 * 5a2f * 8ea1daaf,daaf,8ea1daafv,daafv 5f35 e5bcb5 5f35 00005f35 b169 b169 b169 b169 b169 b169 b169 -2678 b16a b16a b16a * 5a30 * 8ea1dab0,dab0,8ea1dab0v,dab0v 5f37 e5bcb7 5f37 00005f37 b16a b16a b16a b16a b16a b16a b16a -2679 b16b b16b b16b * 5a31 * 8ea1dab1,dab1,8ea1dab1v,dab1v 5f57 e5bd97 5f57 00005f57 b16b b16b b16b b16b b16b b16b b16b -2680 b16c b16c b16c * 5a32 * 8ea1dab2,dab2,8ea1dab2v,dab2v 5f6c e5bdac 5f6c 00005f6c b16c b16c b16c b16c b16c b16c b16c -2681 b16d b16d b16d * 5a33 * 8ea1dab3,dab3,8ea1dab3v,dab3v 5f69 e5bda9 5f69 00005f69 b16d b16d b16d b16d b16d b16d b16d -2682 b16e b16e b16e * 5a34 * 8ea1dab4,dab4,8ea1dab4v,dab4v 5f6b e5bdab 5f6b 00005f6b b16e b16e b16e b16e b16e b16e b16e -2683 b16f b16f b16f * 5a35 * 8ea1dab5,dab5,8ea1dab5v,dab5v 5f97 e5be97 5f97 00005f97 b16f b16f b16f b16f b16f b16f b16f -2684 b170 b170 b170 * 5a36 * 8ea1dab6,dab6,8ea1dab6v,dab6v 5f99 e5be99 5f99 00005f99 b170 b170 b170 b170 b170 b170 b170 -2685 b171 b171 b171 * 5a37 * 8ea1dab7,dab7,8ea1dab7v,dab7v 5f9e e5be9e 5f9e 00005f9e b171 b171 b171 b171 b171 b171 b171 -2686 b172 b172 b172 * 5a38 * 8ea1dab8,dab8,8ea1dab8v,dab8v 5f98 e5be98 5f98 00005f98 b172 b172 b172 b172 b172 b172 b172 -2687 b173 b173 b173 * 5a39 * 8ea1dab9,dab9,8ea1dab9v,dab9v 5fa1 e5bea1 5fa1 00005fa1 b173 b173 b173 b173 b173 b173 b173 -2688 b174 b174 b174 * 5a3a * 8ea1daba,daba,8ea1dabav,dabav 5fa0 e5bea0 5fa0 00005fa0 b174 b174 b174 b174 b174 b174 b174 -2689 b175 b175 b175 * 5a3b * 8ea1dabb,dabb,8ea1dabbv,dabbv 5f9c e5be9c 5f9c 00005f9c b175 b175 b175 b175 b175 b175 b175 -2690 b176 b176 b176 * 5a3c * 8ea1dabc,dabc,8ea1dabcv,dabcv 607f e681bf 607f 0000607f b176 b176 b176 b176 b176 b176 b176 -2691 b177 b177 b177 * 5a3d * 8ea1dabd,dabd,8ea1dabdv,dabdv 60a3 e682a3 60a3 000060a3 b177 b177 b177 b177 b177 b177 b177 -2692 b178 b178 b178 * 5a3e * 8ea1dabe,dabe,8ea1dabev,dabev 6089 e68289 6089 00006089 b178 b178 b178 b178 b178 b178 b178 -2693 b179 b179 b179 * 5a3f * 8ea1dabf,dabf,8ea1dabfv,dabfv 60a0 e682a0 60a0 000060a0 b179 b179 b179 b179 b179 b179 b179 -2694 b17a b17a b17a * 5a40 * 8ea1dac0,dac0,8ea1dac0v,dac0v 60a8 e682a8 60a8 000060a8 b17a b17a b17a b17a b17a b17a b17a -2695 b17b b17b b17b * 5a41 * 8ea1dac1,dac1,8ea1dac1v,dac1v 60cb e6838b 60cb 000060cb b17b b17b b17b b17b b17b b17b b17b -2696 b17c b17c b17c * 5a42 * 8ea1dac2,dac2,8ea1dac2v,dac2v 60b4 e682b4 60b4 000060b4 b17c b17c b17c b17c b17c b17c b17c -2697 b17d b17d b17d * 5a43 * 8ea1dac3,dac3,8ea1dac3v,dac3v 60e6 e683a6 60e6 000060e6 b17d b17d b17d b17d b17d b17d b17d -2698 b17e b17e b17e * 5a44 * 8ea1dac4,dac4,8ea1dac4v,dac4v 60bd e682bd 60bd 000060bd b17e b17e b17e b17e b17e b17e b17e -2699 b1a1 b1a1 b1a1 * 5a45 * 8ea1dac5,dac5,8ea1dac5v,dac5v 60c5 e68385 60c5 000060c5 b1a1 b1a1 b1a1 b1a1 b1a1 b1a1 b1a1 -2700 b1a2 b1a2 b1a2 * 5a46 * 8ea1dac6,dac6,8ea1dac6v,dac6v 60bb e682bb 60bb 000060bb b1a2 b1a2 b1a2 b1a2 b1a2 b1a2 b1a2 -2701 b1a3 b1a3 b1a3 * 5a47 * 8ea1dac7,dac7,8ea1dac7v,dac7v 60b5 e682b5 60b5 000060b5 b1a3 b1a3 b1a3 b1a3 b1a3 b1a3 b1a3 -2702 b1a4 b1a4 b1a4 * 5a48 * 8ea1dac8,dac8,8ea1dac8v,dac8v 60dc e6839c 60dc 000060dc b1a4 b1a4 b1a4 b1a4 b1a4 b1a4 b1a4 -2703 b1a5 b1a5 b1a5 * 5a49 * 8ea1dac9,dac9,8ea1dac9v,dac9v 60bc e682bc 60bc 000060bc b1a5 b1a5 b1a5 b1a5 b1a5 b1a5 b1a5 -2704 b1a6 b1a6 b1a6 * 5a4a * 8ea1daca,daca,8ea1dacav,dacav 60d8 e68398 60d8 000060d8 b1a6 b1a6 b1a6 b1a6 b1a6 b1a6 b1a6 -2705 b1a7 b1a7 b1a7 * 5a4b * 8ea1dacb,dacb,8ea1dacbv,dacbv 60d5 e68395 60d5 000060d5 b1a7 b1a7 b1a7 b1a7 b1a7 b1a7 b1a7 -2706 b1a8 b1a8 b1a8 * 5a4c * 8ea1dacc,dacc,8ea1daccv,daccv 60c6 e68386 60c6 000060c6 b1a8 b1a8 b1a8 b1a8 b1a8 b1a8 b1a8 -2707 b1a9 b1a9 b1a9 * 5a4d * 8ea1dacd,dacd,8ea1dacdv,dacdv 60df e6839f 60df 000060df b1a9 b1a9 b1a9 b1a9 b1a9 b1a9 b1a9 -2708 b1aa b1aa b1aa * 5a4e * 8ea1dace,dace,8ea1dacev,dacev 60b8 e682b8 60b8 000060b8 b1aa b1aa b1aa b1aa b1aa b1aa b1aa -2709 b1ab b1ab b1ab * 5a4f * 8ea1dacf,dacf,8ea1dacfv,dacfv 60da e6839a 60da 000060da b1ab b1ab,fc63 915a,b1ab b1ab b1ab b1ab b1ab -2710 b1ac b1ac b1ac * 5a50 * 8ea1dad0,dad0,8ea1dad0v,dad0v 60c7 e68387 60c7 000060c7 b1ac b1ac b1ac b1ac b1ac b1ac b1ac -2711 b1ad b1ad b1ad * 5a51 * 8ea1dad1,dad1,8ea1dad1v,dad1v 621a e6889a 621a 0000621a b1ad b1ad b1ad b1ad b1ad b1ad b1ad -2712 b1ae b1ae b1ae * 5a52 * 8ea1dad2,dad2,8ea1dad2v,dad2v 621b e6889b 621b 0000621b b1ae b1ae b1ae b1ae b1ae b1ae b1ae -2713 b1af b1af b1af * 5a53 * 8ea1dad3,dad3,8ea1dad3v,dad3v 6248 e68988 6248 00006248 b1af b1af b1af b1af b1af b1af b1af -2714 b1b0 b1b0 b1b0 * 5a54 * 8ea1dad4,dad4,8ea1dad4v,dad4v 63a0 e68ea0 63a0 000063a0 b1b0 b1b0 b1b0 b1b0 b1b0 b1b0 b1b0 -2715 b1b1 b1b1 b1b1 * 5a55 * 8ea1dad5,dad5,8ea1dad5v,dad5v 63a7 e68ea7 63a7 000063a7 b1b1 b1b1 b1b1 b1b1 b1b1 b1b1 b1b1 -2716 b1b2 b1b2 b1b2 * 5a56 * 8ea1dad6,dad6,8ea1dad6v,dad6v 6372 e68db2 6372 00006372 b1b2 b1b2 b1b2 b1b2 b1b2 b1b2 b1b2 -2717 b1b3 b1b3 b1b3 * 5a57 * 8ea1dad7,dad7,8ea1dad7v,dad7v 6396 e68e96 6396 00006396 b1b3 b1b3 b1b3 b1b3 b1b3 b1b3 b1b3 -2718 b1b4 b1b4 b1b4 * 5a58 * 8ea1dad8,dad8,8ea1dad8v,dad8v 63a2 e68ea2 63a2 000063a2 b1b4 b1b4 b1b4 b1b4 b1b4 b1b4 b1b4 -2719 b1b5 b1b5 b1b5 * 5a59 * 8ea1dad9,dad9,8ea1dad9v,dad9v 63a5 e68ea5 63a5 000063a5 b1b5 b1b5 b1b5 b1b5 b1b5 b1b5 b1b5 -2720 b1b6 b1b6 b1b6 * 5a5a * 8ea1dada,dada,8ea1dadav,dadav 6377 e68db7 6377 00006377 b1b6 b1b6 b1b6 b1b6 b1b6 b1b6 b1b6 -2721 b1b7 b1b7 b1b7 * 5a5b * 8ea1dadb,dadb,8ea1dadbv,dadbv 6367 e68da7 6367 00006367 b1b7 b1b7 b1b7 b1b7 b1b7 b1b7 b1b7 -2722 b1b8 b1b8 b1b8 * 5a5c * 8ea1dadc,dadc,8ea1dadcv,dadcv 6398 e68e98 6398 00006398 b1b8 b1b8 b1b8 b1b8 b1b8 b1b8 b1b8 -2723 b1b9 b1b9 b1b9 * 5a5d * 8ea1dadd,dadd,8ea1daddv,daddv 63aa e68eaa 63aa 000063aa b1b9 b1b9 b1b9 b1b9 b1b9 b1b9 b1b9 -2724 b1ba b1ba b1ba * 5a5e * 8ea1dade,dade,8ea1dadev,dadev 6371 e68db1 6371 00006371 b1ba b1ba b1ba b1ba b1ba b1ba b1ba -2725 b1bb b1bb b1bb * 5a5f * 8ea1dadf,dadf,8ea1dadfv,dadfv 63a9 e68ea9 63a9 000063a9 b1bb b1bb b1bb b1bb b1bb b1bb b1bb -2726 b1bc b1bc b1bc * 5a60 * 8ea1dae0,dae0,8ea1dae0v,dae0v 6389 e68e89 6389 00006389 b1bc b1bc b1bc b1bc b1bc b1bc b1bc -2727 b1bd b1bd b1bd * 5a61 * 8ea1dae1,dae1,8ea1dae1v,dae1v 6383 e68e83 6383 00006383 b1bd b1bd b1bd b1bd b1bd b1bd b1bd -2728 b1be b1be b1be * 5a62 * 8ea1dae2,dae2,8ea1dae2v,dae2v 639b e68e9b 639b 0000639b b1be b1be b1be b1be b1be b1be b1be -2729 b1bf b1bf b1bf * 5a63 * 8ea1dae3,dae3,8ea1dae3v,dae3v 636b e68dab 636b 0000636b b1bf b1bf b1bf b1bf b1bf b1bf b1bf -2730 b1c0 b1c0 b1c0 * 5a64 * 8ea1dae4,dae4,8ea1dae4v,dae4v 63a8 e68ea8 63a8 000063a8 b1c0 b1c0 b1c0 b1c0 b1c0 b1c0 b1c0 -2731 b1c1 b1c1 b1c1 * 5a65 * 8ea1dae5,dae5,8ea1dae5v,dae5v 6384 e68e84 6384 00006384 b1c1 b1c1 b1c1 b1c1 b1c1 b1c1 b1c1 -2732 b1c2 b1c2 b1c2 * 5a66 * 8ea1dae6,dae6,8ea1dae6v,dae6v 6388 e68e88 6388 00006388 b1c2 b1c2 b1c2 b1c2 b1c2 b1c2 b1c2 -2733 b1c3 b1c3 b1c3 * 5a67 * 8ea1dae7,dae7,8ea1dae7v,dae7v 6399 e68e99 6399 00006399 b1c3 b1c3 b1c3 b1c3 b1c3 b1c3 b1c3 -2734 b1c4 b1c4 b1c4 * 5a68 * 8ea1dae8,dae8,8ea1dae8v,dae8v 63a1 e68ea1 63a1 000063a1 b1c4 b1c4 b1c4 b1c4 b1c4 b1c4 b1c4 -2735 b1c5 b1c5 b1c5 * 5a69 * 8ea1dae9,dae9,8ea1dae9v,dae9v 63ac e68eac 63ac 000063ac b1c5 b1c5 b1c5 b1c5 b1c5 b1c5 b1c5 -2736 b1c6 b1c6 b1c6 * 5a6a * 8ea1daea,daea,8ea1daeav,daeav 6392 e68e92 6392 00006392 b1c6 b1c6 b1c6 b1c6 b1c6 b1c6 b1c6 -2737 b1c7 b1c7 b1c7 * 5a6b * 8ea1daeb,daeb,8ea1daebv,daebv 638f e68e8f 638f 0000638f b1c7 b1c7 b1c7 b1c7 b1c7 b1c7 b1c7 -2738 b1c8 b1c8 b1c8 * 5a6c * 8ea1daec,daec,8ea1daecv,daecv 6380 e68e80 6380 00006380 b1c8 b1c8 b1c8 b1c8 b1c8 b1c8 b1c8 -2739 b1c9 b1c9 b1c9 * 5a6d * 8ea1daed,daed,8ea1daedv,daedv 637b e68dbb 637b 0000637b b1c9 b1c9 b1c9 b1c9 b1c9 b1c9 b1c9 -2740 b1ca b1ca b1ca * 5a6e * 8ea1daee,daee,8ea1daeev,daeev 6369 e68da9 6369 00006369 b1ca b1ca b1ca b1ca b1ca b1ca b1ca -2741 b1cb b1cb b1cb * 5a6f * 8ea1daef,daef,8ea1daefv,daefv 6368 e68da8 6368 00006368 b1cb b1cb b1cb b1cb b1cb b1cb b1cb -2742 b1cc b1cc b1cc * 5a70 * 8ea1daf0,daf0,8ea1daf0v,daf0v 637a e68dba 637a 0000637a b1cc b1cc b1cc b1cc b1cc b1cc b1cc -2743 b1cd b1cd b1cd * 5a71 * 8ea1daf1,daf1,8ea1daf1v,daf1v 655d e6959d 655d 0000655d b1cd b1cd b1cd b1cd b1cd b1cd b1cd -2744 b1ce b1ce b1ce * 5a72 * 8ea1daf2,daf2,8ea1daf2v,daf2v 6556 e69596 6556 00006556 b1ce b1ce b1ce b1ce b1ce b1ce b1ce -2745 b1cf b1cf b1cf * 5a73 * 8ea1daf3,daf3,8ea1daf3v,daf3v 6551 e69591 6551 00006551 b1cf b1cf b1cf b1cf b1cf b1cf b1cf -2746 b1d0 b1d0 b1d0 * 5a74 * 8ea1daf4,daf4,8ea1daf4v,daf4v 6559 e69599 6559 00006559 b1d0 b1d0 b1d0 b1d0 b1d0,c8fe b1d0,fcfe b1d0 -2747 b1d1 b1d1 b1d1 * 5a75 * 8ea1daf5,daf5,8ea1daf5v,daf5v 6557 e69597 6557 00006557 b1d1 b1d1 b1d1 b1d1 b1d1 b1d1 b1d1 -2748 b1d2 b1d2 b1d2 * 5a76 * 8ea1daf6,daf6,8ea1daf6v,daf6v 555f e5959f 555f 0000555f b1d2 b1d2 b1d2 b1d2 b1d2 b1d2 b1d2 -2749 b1d3 b1d3 b1d3 * 5a77 * 8ea1daf7,daf7,8ea1daf7v,daf7v 654f e6958f 654f 0000654f b1d3 b1d3 b1d3 b1d3 b1d3 b1d3 b1d3 -2750 b1d4 b1d4 b1d4 * 5a78 * 8ea1daf8,daf8,8ea1daf8v,daf8v 6558 e69598 6558 00006558 b1d4 b1d4 b1d4 b1d4 b1d4 b1d4 b1d4 -2751 b1d5 b1d5 b1d5 * 5a79 * 8ea1daf9,daf9,8ea1daf9v,daf9v 6555 e69595 6555 00006555 b1d5 b1d5 b1d5 b1d5 b1d5 b1d5 b1d5 -2752 b1d6 b1d6 b1d6 * 5a7a * 8ea1dafa,dafa,8ea1dafav,dafav 6554 e69594 6554 00006554 b1d6 b1d6 b1d6 b1d6 b1d6 b1d6 b1d6 -2753 b1d7 b1d7 b1d7 * 5a7b * 8ea1dafb,dafb,8ea1dafbv,dafbv 659c e6969c 659c 0000659c b1d7 b1d7 b1d7 b1d7 b1d7 b1d7 b1d7 -2754 b1d8 b1d8 b1d8 * 5a7c * 8ea1dafc,dafc,8ea1dafcv,dafcv 659b e6969b 659b 0000659b b1d8 b1d8 b1d8 b1d8 b1d8 b1d8 b1d8 -2755 b1d9 b1d9 b1d9 * 5a7d * 8ea1dafd,dafd,8ea1dafdv,dafdv 65ac e696ac 65ac 000065ac b1d9 b1d9 b1d9 b1d9 b1d9 b1d9 b1d9 -2756 b1da b1da b1da * 5a7e * 8ea1dafe,dafe,8ea1dafev,dafev 65cf e6978f 65cf 000065cf b1da b1da b1da b1da b1da b1da b1da -2757 b1db b1db b1db * 5b21 * 8ea1dba1,dba1,8ea1dba1v,dba1v 65cb e6978b 65cb 000065cb b1db b1db b1db b1db b1db b1db b1db -2758 b1dc b1dc b1dc * 5b22 * 8ea1dba2,dba2,8ea1dba2v,dba2v 65cc e6978c 65cc 000065cc b1dc b1dc b1dc b1dc b1dc b1dc b1dc -2759 b1dd b1dd b1dd * 5b23 * 8ea1dba3,dba3,8ea1dba3v,dba3v 65ce e6978e 65ce 000065ce b1dd b1dd b1dd b1dd b1dd b1dd b1dd -2760 b1de b1de b1de * 5b24 * 8ea1dba4,dba4,8ea1dba4v,dba4v 665d e6999d 665d 0000665d b1de b1de b1de b1de b1de b1de b1de -2761 b1df b1df b1df * 5b25 * 8ea1dba5,dba5,8ea1dba5v,dba5v 665a e6999a 665a 0000665a b1df b1df b1df b1df b1df b1df b1df -2762 b1e0 b1e0 b1e0 * 5b26 * 8ea1dba6,dba6,8ea1dba6v,dba6v 6664 e699a4 6664 00006664 b1e0 b1e0 b1e0 b1e0 b1e0 b1e0 b1e0 -2763 b1e1 b1e1 b1e1 * 5b27 * 8ea1dba7,dba7,8ea1dba7v,dba7v 6668 e699a8 6668 00006668 b1e1 b1e1 b1e1 b1e1 b1e1 b1e1 b1e1 -2764 b1e2 b1e2 b1e2 * 5b28 * 8ea1dba8,dba8,8ea1dba8v,dba8v 6666 e699a6 6666 00006666 b1e2 b1e2 b1e2 b1e2 b1e2 b1e2 b1e2 -2765 b1e3 b1e3 b1e3 * 5b29 * 8ea1dba9,dba9,8ea1dba9v,dba9v 665e e6999e 665e 0000665e b1e3 b1e3 b1e3 b1e3 b1e3 b1e3 b1e3 -2766 b1e4 b1e4 b1e4 * 5b2a * 8ea1dbaa,dbaa,8ea1dbaav,dbaav 66f9 e69bb9 66f9 000066f9 b1e4 b1e4 b1e4 b1e4 b1e4 b1e4 b1e4 -2767 b1e5 b1e5 b1e5 * 5b2b * 8ea1dbab,dbab,8ea1dbabv,dbabv 52d7 e58b97 52d7 000052d7 b1e5 b1e5 b1e5 b1e5 b1e5 b1e5 b1e5 -2768 b1e6 b1e6 b1e6 * 5b2c * 8ea1dbac,dbac,8ea1dbacv,dbacv 671b e69c9b 671b 0000671b b1e6 b1e6 b1e6 b1e6 b1e6 b1e6 b1e6 -2769 b1e7 b1e7 b1e7 * 5b2d * 8ea1dbad,dbad,8ea1dbadv,dbadv 6881 e6a281 6881 00006881 b1e7 b1e7 b1e7 b1e7 b1e7 b1e7 b1e7 -2770 b1e8 b1e8 b1e8 * 5b2e * 8ea1dbae,dbae,8ea1dbaev,dbaev 68af e6a2af 68af 000068af b1e8 b1e8 b1e8 b1e8 b1e8 b1e8 b1e8 -2771 b1e9 b1e9 b1e9 * 5b2f * 8ea1dbaf,dbaf,8ea1dbafv,dbafv 68a2 e6a2a2 68a2 000068a2 b1e9 b1e9 b1e9 b1e9 b1e9 b1e9 b1e9 -2772 b1ea b1ea b1ea * 5b30 * 8ea1dbb0,dbb0,8ea1dbb0v,dbb0v 6893 e6a293 6893 00006893 b1ea b1ea b1ea b1ea b1ea b1ea b1ea -2773 b1eb b1eb b1eb * 5b31 * 8ea1dbb1,dbb1,8ea1dbb1v,dbb1v 68b5 e6a2b5 68b5 000068b5 b1eb b1eb b1eb b1eb b1eb b1eb b1eb -2774 b1ec b1ec b1ec * 5b32 * 8ea1dbb2,dbb2,8ea1dbb2v,dbb2v 687f e6a1bf 687f 0000687f b1ec b1ec b1ec b1ec b1ec b1ec b1ec -2775 b1ed b1ed b1ed * 5b33 * 8ea1dbb3,dbb3,8ea1dbb3v,dbb3v 6876 e6a1b6 6876 00006876 b1ed b1ed b1ed b1ed b1ed b1ed b1ed -2776 b1ee b1ee b1ee * 5b34 * 8ea1dbb4,dbb4,8ea1dbb4v,dbb4v 68b1 e6a2b1 68b1 000068b1 b1ee b1ee b1ee b1ee b1ee b1ee b1ee -2777 b1ef b1ef b1ef * 5b35 * 8ea1dbb5,dbb5,8ea1dbb5v,dbb5v 68a7 e6a2a7 68a7 000068a7 b1ef b1ef b1ef b1ef b1ef b1ef b1ef -2778 b1f0 b1f0 b1f0 * 5b36 * 8ea1dbb6,dbb6,8ea1dbb6v,dbb6v 6897 e6a297 6897 00006897 b1f0 b1f0 b1f0 b1f0 b1f0 b1f0 b1f0 -2779 b1f1 b1f1 b1f1 * 5b37 * 8ea1dbb7,dbb7,8ea1dbb7v,dbb7v 68b0 e6a2b0 68b0 000068b0 b1f1 b1f1 b1f1 b1f1 b1f1 b1f1 b1f1 -2780 b1f2 b1f2 b1f2 * 5b38 * 8ea1dbb8,dbb8,8ea1dbb8v,dbb8v 6883 e6a283 6883 00006883 b1f2 b1f2 b1f2 b1f2 b1f2 b1f2 b1f2 -2781 b1f3 b1f3 b1f3 * 5b39 * 8ea1dbb9,dbb9,8ea1dbb9v,dbb9v 68c4 e6a384 68c4 000068c4 b1f3 b1f3 b1f3 b1f3 b1f3 b1f3 b1f3 -2782 b1f4 b1f4 b1f4 * 5b3a * 8ea1dbba,dbba,8ea1dbbav,dbbav 68ad e6a2ad 68ad 000068ad b1f4 b1f4 b1f4 b1f4 b1f4 b1f4 b1f4 -2783 b1f5 b1f5 b1f5 * 5b3b * 8ea1dbbb,dbbb,8ea1dbbbv,dbbbv 6886 e6a286 6886 00006886 b1f5 b1f5 b1f5 b1f5 b1f5 b1f5 b1f5 -2784 b1f6 b1f6 b1f6 * 5b3c * 8ea1dbbc,dbbc,8ea1dbbcv,dbbcv 6885 e6a285 6885 00006885 b1f6 b1f6 b1f6 b1f6 b1f6 b1f6 b1f6 -2785 b1f7 b1f7 b1f7 * 5b3d * 8ea1dbbd,dbbd,8ea1dbbdv,dbbdv 6894 e6a294 6894 00006894 b1f7 b1f7 b1f7 b1f7 b1f7 b1f7 b1f7 -2786 b1f8 b1f8 b1f8 * 5b3e * 8ea1dbbe,dbbe,8ea1dbbev,dbbev 689d e6a29d 689d 0000689d b1f8 b1f8 b1f8 b1f8 b1f8 b1f8 b1f8 -2787 b1f9 b1f9 b1f9 * 5b3f * 8ea1dbbf,dbbf,8ea1dbbfv,dbbfv 68a8 e6a2a8 68a8 000068a8 b1f9 b1f9 b1f9 b1f9 b1f9 b1f9 b1f9 -2788 b1fa b1fa b1fa * 5b40 * 8ea1dbc0,dbc0,8ea1dbc0v,dbc0v 689f e6a29f 689f 0000689f b1fa b1fa b1fa b1fa b1fa b1fa b1fa -2789 b1fb b1fb b1fb * 5b41 * 8ea1dbc1,dbc1,8ea1dbc1v,dbc1v 68a1 e6a2a1 68a1 000068a1 b1fb b1fb b1fb b1fb b1fb b1fb b1fb -2790 b1fc b1fc b1fc * 5b42 * 8ea1dbc2,dbc2,8ea1dbc2v,dbc2v 6882 e6a282 6882 00006882 b1fc b1fc b1fc b1fc b1fc b1fc b1fc -2791 b1fd b1fd b1fd * 5b43 * 8ea1dbc3,dbc3,8ea1dbc3v,dbc3v 6b32 e6acb2 6b32 00006b32 b1fd b1fd b1fd b1fd b1fd b1fd b1fd -2792 b1fe b1fe b1fe * 5b44 * 8ea1dbc4,dbc4,8ea1dbc4v,dbc4v 6bba e6aeba 6bba 00006bba b1fe b1fe b1fe b1fe b1fe b1fe b1fe -2793 b240 b240 b240 * 5b45 * 8ea1dbc5,dbc5,8ea1dbc5v,dbc5v 6beb e6afab 6beb 00006beb b240 b240 b240 b240 b240 b240 b240 -2794 b241 b241 b241 * 5b46 * 8ea1dbc6,dbc6,8ea1dbc6v,dbc6v 6bec e6afac 6bec 00006bec b241 b241 b241 b241 b241 b241 b241 -2795 b242 b242 b242 * 5b47 * 8ea1dbc7,dbc7,8ea1dbc7v,dbc7v 6c2b e6b0ab 6c2b 00006c2b b242 b242 b242 b242 b242 b242 b242 -2796 b243 b243 b243 * 5b48 * 8ea1dbc8,dbc8,8ea1dbc8v,dbc8v 6d8e e6b68e 6d8e 00006d8e b243 b243 b243 b243 b243 b243 b243 -2797 b244 b244 b244 * 5b49 * 8ea1dbc9,dbc9,8ea1dbc9v,dbc9v 6dbc e6b6bc 6dbc 00006dbc b244 b244 b244 b244 b244 b244 b244 -2798 b245 b245 b245 * 5b4a * 8ea1dbca,dbca,8ea1dbcav,dbcav 6df3 e6b7b3 6df3 00006df3 b245 b245 b245 b245 b245 b245 b245 -2799 b246 b246 b246 * 5b4b * 8ea1dbcb,dbcb,8ea1dbcbv,dbcbv 6dd9 e6b799 6dd9 00006dd9 b246 b246 b246 b246 b246 b246 b246 -2800 b247 b247 b247 * 5b4c * 8ea1dbcc,dbcc,8ea1dbccv,dbccv 6db2 e6b6b2 6db2 00006db2 b247 b247 b247 b247 b247 b247 b247 -2801 b248 b248 b248 * 5b4d * 8ea1dbcd,dbcd,8ea1dbcdv,dbcdv 6de1 e6b7a1 6de1 00006de1 b248 b248 b248 b248 b248 b248 b248 -2802 b249 b249 b249 * 5b4e * 8ea1dbce,dbce,8ea1dbcev,dbcev 6dcc e6b78c 6dcc 00006dcc b249 b249 b249 b249 b249 b249 b249 -2803 b24a b24a b24a * 5b4f * 8ea1dbcf,dbcf,8ea1dbcfv,dbcfv 6de4 e6b7a4 6de4 00006de4 b24a b24a b24a b24a b24a b24a b24a -2804 b24b b24b b24b * 5b50 * 8ea1dbd0,dbd0,8ea1dbd0v,dbd0v 6dfb e6b7bb 6dfb 00006dfb b24b b24b b24b b24b b24b b24b b24b -2805 b24c b24c b24c * 5b51 * 8ea1dbd1,dbd1,8ea1dbd1v,dbd1v 6dfa e6b7ba 6dfa 00006dfa b24c b24c b24c b24c b24c b24c b24c -2806 b24d b24d b24d * 5b52 * 8ea1dbd2,dbd2,8ea1dbd2v,dbd2v 6e05 e6b885 6e05 00006e05 b24d b24d b24d b24d b24d b24d b24d -2807 b24e b24e b24e * 5b53 * 8ea1dbd3,dbd3,8ea1dbd3v,dbd3v 6dc7 e6b787 6dc7 00006dc7 b24e b24e b24e b24e b24e b24e b24e -2808 b24f b24f b24f * 5b54 * 8ea1dbd4,dbd4,8ea1dbd4v,dbd4v 6dcb e6b78b 6dcb 00006dcb b24f b24f b24f b24f b24f b24f b24f -2809 b250 b250 b250 * 5b55 * 8ea1dbd5,dbd5,8ea1dbd5v,dbd5v 6daf e6b6af 6daf 00006daf b250 b250 b250 b250 b250 b250 b250 -2810 b251 b251 b251 * 5b56 * 8ea1dbd6,dbd6,8ea1dbd6v,dbd6v 6dd1 e6b791 6dd1 00006dd1 b251 b251 b251 b251 b251 b251 b251 -2811 b252 b252 b252 * 5b57 * 8ea1dbd7,dbd7,8ea1dbd7v,dbd7v 6dae e6b6ae 6dae 00006dae b252 b252 b252 b252 b252 b252 b252 -2812 b253 b253 b253 * 5b58 * 8ea1dbd8,dbd8,8ea1dbd8v,dbd8v 6dde e6b79e 6dde 00006dde b253 b253 b253 b253 b253 b253 b253 -2813 b254 b254 b254 * 5b59 * 8ea1dbd9,dbd9,8ea1dbd9v,dbd9v 6df9 e6b7b9 6df9 00006df9 b254 b254 b254 b254 b254 b254 b254 -2814 b255 b255 b255 * 5b5a * 8ea1dbda,dbda,8ea1dbdav,dbdav 6db8 e6b6b8 6db8 00006db8 b255 b255 b255 b255 b255 b255 b255 -2815 b256 b256 b256 * 5b5b * 8ea1dbdb,dbdb,8ea1dbdbv,dbdbv 6df7 e6b7b7 6df7 00006df7 b256 b256 b256 b256 b256 b256 b256 -2816 b257 b257 b257 * 5b5c * 8ea1dbdc,dbdc,8ea1dbdcv,dbdcv 6df5 e6b7b5 6df5 00006df5 b257 b257 b257 b257 b257 b257 b257 -2817 b258 b258 b258 * 5b5d * 8ea1dbdd,dbdd,8ea1dbddv,dbddv 6dc5 e6b785 6dc5 00006dc5 b258 b258 b258 b258 b258 b258 b258 -2818 b259 b259 b259 * 5b5e * 8ea1dbde,dbde,8ea1dbdev,dbdev 6dd2 e6b792 6dd2 00006dd2 b259 b259 b259 b259 b259 b259 b259 -2819 b25a b25a b25a * 5b5f * 8ea1dbdf,dbdf,8ea1dbdfv,dbdfv 6e1a e6b89a 6e1a 00006e1a b25a b25a b25a b25a b25a b25a b25a -2820 b25b b25b b25b * 5b60 * 8ea1dbe0,dbe0,8ea1dbe0v,dbe0v 6db5 e6b6b5 6db5 00006db5 b25b b25b b25b b25b b25b b25b b25b -2821 b25c b25c b25c * 5b61 * 8ea1dbe1,dbe1,8ea1dbe1v,dbe1v 6dda e6b79a 6dda 00006dda b25c b25c b25c b25c b25c b25c b25c -2822 b25d b25d b25d * 5b62 * 8ea1dbe2,dbe2,8ea1dbe2v,dbe2v 6deb e6b7ab 6deb 00006deb b25d b25d b25d b25d b25d b25d b25d -2823 b25e b25e b25e * 5b63 * 8ea1dbe3,dbe3,8ea1dbe3v,dbe3v 6dd8 e6b798 6dd8 00006dd8 b25e b25e b25e b25e b25e b25e b25e -2824 b25f b25f b25f * 5b64 * 8ea1dbe4,dbe4,8ea1dbe4v,dbe4v 6dea e6b7aa 6dea 00006dea b25f b25f b25f b25f b25f b25f b25f -2825 b260 b260 b260 * 5b65 * 8ea1dbe5,dbe5,8ea1dbe5v,dbe5v 6df1 e6b7b1 6df1 00006df1 b260 b260 b260 b260 b260 b260 b260 -2826 b261 b261 b261 * 5b66 * 8ea1dbe6,dbe6,8ea1dbe6v,dbe6v 6dee e6b7ae 6dee 00006dee b261 b261 b261 b261 b261 b261 b261 -2827 b262 b262 b262 * 5b67 * 8ea1dbe7,dbe7,8ea1dbe7v,dbe7v 6de8 e6b7a8 6de8 00006de8 b262 b262 b262 b262 b262 b262 b262 -2828 b263 b263 b263 * 5b68 * 8ea1dbe8,dbe8,8ea1dbe8v,dbe8v 6dc6 e6b786 6dc6 00006dc6 b263 b263 b263 b263 b263 b263 b263 -2829 b264 b264 b264 * 5b69 * 8ea1dbe9,dbe9,8ea1dbe9v,dbe9v 6dc4 e6b784 6dc4 00006dc4 b264 b264 b264 b264 b264 b264 b264 -2830 b265 b265 b265 * 5b6a * 8ea1dbea,dbea,8ea1dbeav,dbeav 6daa e6b6aa 6daa 00006daa b265 b265 b265 b265 b265 b265 b265 -2831 b266 b266 b266 * 5b6b * 8ea1dbeb,dbeb,8ea1dbebv,dbebv 6dec e6b7ac 6dec 00006dec b266 b266 b266 b266 b266 b266 b266 -2832 b267 b267 b267 * 5b6c * 8ea1dbec,dbec,8ea1dbecv,dbecv 6dbf e6b6bf 6dbf 00006dbf b267 b267 b267 b267 b267 b267 b267 -2833 b268 b268 b268 * 5b6d * 8ea1dbed,dbed,8ea1dbedv,dbedv 6de6 e6b7a6 6de6 00006de6 b268 b268 b268 b268 b268 b268 b268 -2834 b269 b269 b269 * 5b6e * 8ea1dbee,dbee,8ea1dbeev,dbeev 70f9 e783b9 70f9 000070f9 b269 b269 b269 b269 b269 b269 b269 -2835 b26a b26a b26a * 5b6f * 8ea1dbef,dbef,8ea1dbefv,dbefv 7109 e78489 7109 00007109 b26a b26a b26a b26a b26a b26a b26a -2836 b26b b26b b26b * 5b70 * 8ea1dbf0,dbf0,8ea1dbf0v,dbf0v 710a e7848a 710a 0000710a b26b b26b b26b b26b b26b b26b b26b -2837 b26c b26c b26c * 5b71 * 8ea1dbf1,dbf1,8ea1dbf1v,dbf1v 70fd e783bd 70fd 000070fd b26c b26c b26c b26c b26c b26c b26c -2838 b26d b26d b26d * 5b72 * 8ea1dbf2,dbf2,8ea1dbf2v,dbf2v 70ef e783af 70ef 000070ef b26d b26d b26d b26d b26d b26d b26d -2839 b26e b26e b26e * 5b73 * 8ea1dbf3,dbf3,8ea1dbf3v,dbf3v 723d e788bd 723d 0000723d b26e b26e b26e b26e b26e b26e b26e -2840 b26f b26f b26f * 5b74 * 8ea1dbf4,dbf4,8ea1dbf4v,dbf4v 727d e789bd 727d 0000727d b26f b26f b26f b26f b26f b26f b26f -2841 b270 b270 b270 * 5b75 * 8ea1dbf5,dbf5,8ea1dbf5v,dbf5v 7281 e78a81 7281 00007281 b270 b270 b270 b270 b270 b270 b270 -2842 b271 b271 b271 * 5b76 * 8ea1dbf6,dbf6,8ea1dbf6v,dbf6v 731c e78c9c 731c 0000731c b271 b271 b271 b271 b271 b271 b271 -2843 b272 b272 b272 * 5b77 * 8ea1dbf7,dbf7,8ea1dbf7v,dbf7v 731b e78c9b 731b 0000731b b272 b272 b272 b272 b272 b272 b272 -2844 b273 b273 b273 * 5b78 * 8ea1dbf8,dbf8,8ea1dbf8v,dbf8v 7316 e78c96 7316 00007316 b273 b273 b273 b273 b273 b273 b273 -2845 b274 b274 b274 * 5b79 * 8ea1dbf9,dbf9,8ea1dbf9v,dbf9v 7313 e78c93 7313 00007313 b274 b274 b274 b274 b274 b274 b274 -2846 b275 b275 b275 * 5b7a * 8ea1dbfa,dbfa,8ea1dbfav,dbfav 7319 e78c99 7319 00007319 b275 b275 b275 b275 b275 b275 b275 -2847 b276 b276 b276 * 5b7b * 8ea1dbfb,dbfb,8ea1dbfbv,dbfbv 7387 e78e87 7387 00007387 b276 b276 b276 b276 b276 b276 b276 -2848 b277 b277 b277 * 5b7c * 8ea1dbfc,dbfc,8ea1dbfcv,dbfcv 7405 e79085 7405 00007405 b277 b277 b277 b277 b277 b277 b277 -2849 b278 b278 b278 * 5b7d * 8ea1dbfd,dbfd,8ea1dbfdv,dbfdv 740a e7908a 740a 0000740a b278 b278 b278 b278 b278 b278 b278 -2850 b279 b279 b279 * 5b7e * 8ea1dbfe,dbfe,8ea1dbfev,dbfev 7403 e79083 7403 00007403 b279 b279 b279 b279 b279 b279 b279 -2851 b27a b27a b27a * 5c21 * 8ea1dca1,dca1,8ea1dca1v,dca1v 7406 e79086 7406 00007406 b27a b27a b27a b27a b27a b27a b27a -2852 b27b b27b b27b * 5c22 * 8ea1dca2,dca2,8ea1dca2v,dca2v 73fe e78fbe 73fe 000073fe b27b b27b b27b b27b b27b b27b b27b -2853 b27c b27c b27c * 5c23 * 8ea1dca3,dca3,8ea1dca3v,dca3v 740d e7908d 740d 0000740d b27c b27c b27c b27c b27c b27c b27c -2854 b27d b27d b27d * 5c24 * 8ea1dca4,dca4,8ea1dca4v,dca4v 74e0 e793a0 74e0 000074e0 b27d b27d b27d b27d b27d b27d b27d -2855 b27e b27e b27e * 5c25 * 8ea1dca5,dca5,8ea1dca5v,dca5v 74f6 e793b6 74f6 000074f6 b27e b27e b27e b27e b27e b27e b27e -2856 b2a1 b2a1 b2a1 * 5c26 * 8ea1dca6,dca6,8ea1dca6v,dca6v 74f7 e793b7 74f7 000074f7 b2a1 b2a1 b2a1 b2a1 b2a1 b2a1 b2a1 -2857 b2a2 b2a2 b2a2 * 5c27 * 8ea1dca7,dca7,8ea1dca7v,dca7v 751c e7949c 751c 0000751c b2a2 b2a2 b2a2 b2a2 b2a2 b2a2 b2a2 -2858 b2a3 b2a3 b2a3 * 5c28 * 8ea1dca8,dca8,8ea1dca8v,dca8v 7522 e794a2 7522 00007522 b2a3 b2a3 b2a3 b2a3 b2a3 b2a3 b2a3 -2859 b2a4 b2a4 b2a4 * 5c29 * 8ea1dca9,dca9,8ea1dca9v,dca9v 7565 e795a5 7565 00007565 b2a4 b2a4 b2a4 b2a4 b2a4 b2a4 b2a4 -2860 b2a5 b2a5 b2a5 * 5c2a * 8ea1dcaa,dcaa,8ea1dcaav,dcaav 7566 e795a6 7566 00007566 b2a5 b2a5 b2a5 b2a5 b2a5 b2a5 b2a5 -2861 b2a6 b2a6 b2a6 * 5c2b * 8ea1dcab,dcab,8ea1dcabv,dcabv 7562 e795a2 7562 00007562 b2a6 b2a6 b2a6 b2a6 b2a6 b2a6 b2a6 -2862 b2a7 b2a7 b2a7 * 5c2c * 8ea1dcac,dcac,8ea1dcacv,dcacv 7570 e795b0 7570 00007570 b2a7 b2a7 b2a7 b2a7 b2a7 b2a7 b2a7 -2863 b2a8 b2a8 b2a8 * 5c2d * 8ea1dcad,dcad,8ea1dcadv,dcadv 758f e7968f 758f 0000758f b2a8 b2a8 b2a8 b2a8 b2a8 b2a8 b2a8 -2864 b2a9 b2a9 b2a9 * 5c2e * 8ea1dcae,dcae,8ea1dcaev,dcaev 75d4 e79794 75d4 000075d4 b2a9 b2a9 b2a9 b2a9 b2a9 b2a9 b2a9 -2865 b2aa b2aa b2aa * 5c2f * 8ea1dcaf,dcaf,8ea1dcafv,dcafv 75d5 e79795 75d5 000075d5 b2aa b2aa b2aa b2aa b2aa b2aa b2aa -2866 b2ab b2ab b2ab * 5c30 * 8ea1dcb0,dcb0,8ea1dcb0v,dcb0v 75b5 e796b5 75b5 000075b5 b2ab b2ab b2ab b2ab b2ab b2ab b2ab -2867 b2ac b2ac b2ac * 5c31 * 8ea1dcb1,dcb1,8ea1dcb1v,dcb1v 75ca e7978a 75ca 000075ca b2ac b2ac b2ac b2ac b2ac b2ac b2ac -2868 b2ad b2ad b2ad * 5c32 * 8ea1dcb2,dcb2,8ea1dcb2v,dcb2v 75cd e7978d 75cd 000075cd b2ad b2ad b2ad b2ad b2ad b2ad b2ad -2869 b2ae b2ae b2ae * 5c33 * 8ea1dcb3,dcb3,8ea1dcb3v,dcb3v 768e e79a8e 768e 0000768e b2ae b2ae b2ae b2ae b2ae b2ae b2ae -2870 b2af b2af b2af * 5c34 * 8ea1dcb4,dcb4,8ea1dcb4v,dcb4v 76d4 e79b94 76d4 000076d4 b2af b2af b2af b2af b2af b2af b2af -2871 b2b0 b2b0 b2b0 * 5c35 * 8ea1dcb5,dcb5,8ea1dcb5v,dcb5v 76d2 e79b92 76d2 000076d2 b2b0 b2b0 b2b0 b2b0 b2b0 b2b0 b2b0 -2872 b2b1 b2b1 b2b1 * 5c36 * 8ea1dcb6,dcb6,8ea1dcb6v,dcb6v 76db e79b9b 76db 000076db b2b1 b2b1 b2b1 b2b1 b2b1 b2b1 b2b1 -2873 b2b2 b2b2 b2b2 * 5c37 * 8ea1dcb7,dcb7,8ea1dcb7v,dcb7v 7737 e79cb7 7737 00007737 b2b2 b2b2 b2b2 b2b2 b2b2 b2b2 b2b2 -2874 b2b3 b2b3 b2b3 * 5c38 * 8ea1dcb8,dcb8,8ea1dcb8v,dcb8v 773e e79cbe 773e 0000773e b2b3 b2b3 b2b3 b2b3 b2b3 b2b3 b2b3 -2875 b2b4 b2b4 b2b4 * 5c39 * 8ea1dcb9,dcb9,8ea1dcb9v,dcb9v 773c e79cbc 773c 0000773c b2b4 b2b4 b2b4 b2b4 b2b4 b2b4 b2b4 -2876 b2b5 b2b5 b2b5 * 5c3a * 8ea1dcba,dcba,8ea1dcbav,dcbav 7736 e79cb6 7736 00007736 b2b5 b2b5 b2b5 b2b5 b2b5 b2b5 b2b5 -2877 b2b6 b2b6 b2b6 * 5c3b * 8ea1dcbb,dcbb,8ea1dcbbv,dcbbv 7738 e79cb8 7738 00007738 b2b6 b2b6 b2b6 b2b6 b2b6 b2b6 b2b6 -2878 b2b7 b2b7 b2b7 * 5c3c * 8ea1dcbc,dcbc,8ea1dcbcv,dcbcv 773a e79cba 773a 0000773a b2b7 b2b7 b2b7 b2b7 b2b7 b2b7 b2b7 -2879 b2b8 b2b8 b2b8 * 5c3d * 8ea1dcbd,dcbd,8ea1dcbdv,dcbdv 786b e7a1ab 786b 0000786b b2b8 b2b8 b2b8 b2b8 b2b8 b2b8 b2b8 -2880 b2b9 b2b9 b2b9 * 5c3e * 8ea1dcbe,dcbe,8ea1dcbev,dcbev 7843 e7a183 7843 00007843 b2b9 b2b9 b2b9 b2b9 b2b9 b2b9 b2b9 -2881 b2ba b2ba b2ba * 5c3f * 8ea1dcbf,dcbf,8ea1dcbfv,dcbfv 784e e7a18e 784e 0000784e b2ba b2ba b2ba b2ba b2ba b2ba b2ba -2882 b2bb b2bb b2bb * 5c40 * 8ea1dcc0,dcc0,8ea1dcc0v,dcc0v 7965 e7a5a5 7965 00007965 b2bb b2bb b2bb b2bb b2bb b2bb b2bb -2883 b2bc b2bc b2bc * 5c41 * 8ea1dcc1,dcc1,8ea1dcc1v,dcc1v 7968 e7a5a8 7968 00007968 b2bc b2bc b2bc b2bc b2bc b2bc b2bc -2884 b2bd b2bd b2bd * 5c42 * 8ea1dcc2,dcc2,8ea1dcc2v,dcc2v 796d e7a5ad 796d 0000796d b2bd b2bd b2bd b2bd b2bd b2bd b2bd -2885 b2be b2be b2be * 5c43 * 8ea1dcc3,dcc3,8ea1dcc3v,dcc3v 79fb e7a7bb 79fb 000079fb b2be b2be b2be b2be b2be b2be b2be -2886 b2bf b2bf b2bf * 5c44 * 8ea1dcc4,dcc4,8ea1dcc4v,dcc4v 7a92 e7aa92 7a92 00007a92 b2bf b2bf b2bf b2bf b2bf b2bf b2bf -2887 b2c0 b2c0 b2c0 * 5c45 * 8ea1dcc5,dcc5,8ea1dcc5v,dcc5v 7a95 e7aa95 7a95 00007a95 b2c0 b2c0 b2c0 b2c0 b2c0 b2c0 b2c0 -2888 b2c1 b2c1 b2c1 * 5c46 * 8ea1dcc6,dcc6,8ea1dcc6v,dcc6v 7b20 e7aca0 7b20 00007b20 b2c1 b2c1 b2c1 b2c1 b2c1 b2c1 b2c1 -2889 b2c2 b2c2 b2c2 * 5c47 * 8ea1dcc7,dcc7,8ea1dcc7v,dcc7v 7b28 e7aca8 7b28 00007b28 b2c2 b2c2 b2c2 b2c2 b2c2 b2c2 b2c2 -2890 b2c3 b2c3 b2c3 * 5c48 * 8ea1dcc8,dcc8,8ea1dcc8v,dcc8v 7b1b e7ac9b 7b1b 00007b1b b2c3 b2c3 b2c3 b2c3 b2c3 b2c3 b2c3 -2891 b2c4 b2c4 b2c4 * 5c49 * 8ea1dcc9,dcc9,8ea1dcc9v,dcc9v 7b2c e7acac 7b2c 00007b2c b2c4 b2c4 b2c4 b2c4 b2c4 b2c4 b2c4 -2892 b2c5 b2c5 b2c5 * 5c4a * 8ea1dcca,dcca,8ea1dccav,dccav 7b26 e7aca6 7b26 00007b26 b2c5 b2c5 b2c5 b2c5 b2c5 b2c5 b2c5 -2893 b2c6 b2c6 b2c6 * 5c4b * 8ea1dccb,dccb,8ea1dccbv,dccbv 7b19 e7ac99 7b19 00007b19 b2c6 b2c6 b2c6 b2c6 b2c6 b2c6 b2c6 -2894 b2c7 b2c7 b2c7 * 5c4c * 8ea1dccc,dccc,8ea1dcccv,dcccv 7b1e e7ac9e 7b1e 00007b1e b2c7 b2c7 b2c7 b2c7 b2c7 b2c7 b2c7 -2895 b2c8 b2c8 b2c8 * 5c4d * 8ea1dccd,dccd,8ea1dccdv,dccdv 7b2e e7acae 7b2e 00007b2e b2c8 b2c8 b2c8 b2c8 b2c8 b2c8 b2c8 -2896 b2c9 b2c9 b2c9 * 5c4e * 8ea1dcce,dcce,8ea1dccev,dccev 7c92 e7b292 7c92 00007c92 b2c9 b2c9 b2c9 b2c9 b2c9 b2c9 b2c9 -2897 b2ca b2ca b2ca * 5c4f * 8ea1dccf,dccf,8ea1dccfv,dccfv 7c97 e7b297 7c97 00007c97 b2ca b2ca b2ca b2ca b2ca b2ca b2ca -2898 b2cb b2cb b2cb * 5c50 * 8ea1dcd0,dcd0,8ea1dcd0v,dcd0v 7c95 e7b295 7c95 00007c95 b2cb b2cb b2cb b2cb b2cb b2cb b2cb -2899 b2cc b2cc b2cc * 5c51 * 8ea1dcd1,dcd1,8ea1dcd1v,dcd1v 7d46 e7b586 7d46 00007d46 b2cc b2cc b2cc b2cc b2cc b2cc b2cc -2900 b2cd b2cd b2cd * 5c52 * 8ea1dcd2,dcd2,8ea1dcd2v,dcd2v 7d43 e7b583 7d43 00007d43 b2cd b2cd b2cd b2cd b2cd b2cd b2cd -2901 b2ce b2ce b2ce * 5c53 * 8ea1dcd3,dcd3,8ea1dcd3v,dcd3v 7d71 e7b5b1 7d71 00007d71 b2ce b2ce b2ce b2ce b2ce b2ce b2ce -2902 b2cf b2cf b2cf * 5c54 * 8ea1dcd4,dcd4,8ea1dcd4v,dcd4v 7d2e e7b4ae 7d2e 00007d2e b2cf b2cf b2cf b2cf b2cf b2cf b2cf -2903 b2d0 b2d0 b2d0 * 5c55 * 8ea1dcd5,dcd5,8ea1dcd5v,dcd5v 7d39 e7b4b9 7d39 00007d39 b2d0 b2d0 b2d0 b2d0 b2d0 b2d0 b2d0 -2904 b2d1 b2d1 b2d1 * 5c56 * 8ea1dcd6,dcd6,8ea1dcd6v,dcd6v 7d3c e7b4bc 7d3c 00007d3c b2d1 b2d1 b2d1 b2d1 b2d1 b2d1 b2d1 -2905 b2d2 b2d2 b2d2 * 5c57 * 8ea1dcd7,dcd7,8ea1dcd7v,dcd7v 7d40 e7b580 7d40 00007d40 b2d2 b2d2 b2d2 b2d2 b2d2 b2d2 b2d2 -2906 b2d3 b2d3 b2d3 * 5c58 * 8ea1dcd8,dcd8,8ea1dcd8v,dcd8v 7d30 e7b4b0 7d30 00007d30 b2d3 b2d3 b2d3 b2d3 b2d3 b2d3 b2d3 -2907 b2d4 b2d4 b2d4 * 5c59 * 8ea1dcd9,dcd9,8ea1dcd9v,dcd9v 7d33 e7b4b3 7d33 00007d33 b2d4 b2d4 b2d4 b2d4 b2d4 b2d4 b2d4 -2908 b2d5 b2d5 b2d5 * 5c5a * 8ea1dcda,dcda,8ea1dcdav,dcdav 7d44 e7b584 7d44 00007d44 b2d5 b2d5 b2d5 b2d5 b2d5 b2d5 b2d5 -2909 b2d6 b2d6 b2d6 * 5c5b * 8ea1dcdb,dcdb,8ea1dcdbv,dcdbv 7d2f e7b4af 7d2f 00007d2f b2d6 b2d6 b2d6 b2d6 b2d6 b2d6 b2d6 -2910 b2d7 b2d7 b2d7 * 5c5c * 8ea1dcdc,dcdc,8ea1dcdcv,dcdcv 7d42 e7b582 7d42 00007d42 b2d7 b2d7 b2d7 b2d7 b2d7 b2d7 b2d7 -2911 b2d8 b2d8 b2d8 * 5c5d * 8ea1dcdd,dcdd,8ea1dcddv,dcddv 7d32 e7b4b2 7d32 00007d32 b2d8 b2d8 b2d8 b2d8 b2d8 b2d8 b2d8 -2912 b2d9 b2d9 b2d9 * 5c5e * 8ea1dcde,dcde,8ea1dcdev,dcdev 7d31 e7b4b1 7d31 00007d31 b2d9 b2d9 b2d9 b2d9 b2d9 b2d9 b2d9 -2913 b2da b2da b2da * 5c5f * 8ea1dcdf,dcdf,8ea1dcdfv,dcdfv 7f3d e7bcbd 7f3d 00007f3d b2da b2da b2da b2da b2da b2da b2da -2914 b2db b2db b2db * 5c60 * 8ea1dce0,dce0,8ea1dce0v,dce0v 7f9e e7be9e 7f9e 00007f9e b2db b2db b2db b2db b2db b2db b2db -2915 b2dc b2dc b2dc * 5c61 * 8ea1dce1,dce1,8ea1dce1v,dce1v 7f9a e7be9a 7f9a 00007f9a b2dc b2dc b2dc b2dc b2dc b2dc b2dc -2916 b2dd b2dd b2dd * 5c62 * 8ea1dce2,dce2,8ea1dce2v,dce2v 7fcc e7bf8c 7fcc 00007fcc b2dd b2dd b2dd b2dd b2dd b2dd b2dd -2917 b2de b2de b2de * 5c63 * 8ea1dce3,dce3,8ea1dce3v,dce3v 7fce e7bf8e 7fce 00007fce b2de b2de b2de b2de b2de b2de b2de -2918 b2df b2df b2df * 5c64 * 8ea1dce4,dce4,8ea1dce4v,dce4v 7fd2 e7bf92 7fd2 00007fd2 b2df b2df b2df b2df b2df b2df b2df -2919 b2e0 b2e0 b2e0 * 5c65 * 8ea1dce5,dce5,8ea1dce5v,dce5v 801c e8809c 801c 0000801c b2e0 b2e0 b2e0 b2e0 b2e0 b2e0 b2e0 -2920 b2e1 b2e1 b2e1 * 5c66 * 8ea1dce6,dce6,8ea1dce6v,dce6v 804a e8818a 804a 0000804a b2e1 b2e1 b2e1 b2e1 b2e1 b2e1 b2e1 -2921 b2e2 b2e2 b2e2 * 5c67 * 8ea1dce7,dce7,8ea1dce7v,dce7v 8046 e88186 8046 00008046 b2e2 b2e2 b2e2 b2e2 b2e2 b2e2 b2e2 -2922 b2e3 b2e3 b2e3 * 5c68 * 8ea1dce8,dce8,8ea1dce8v,dce8v 812f e884af 812f 0000812f b2e3 b2e3 b2e3 b2e3 b2e3 b2e3 b2e3 -2923 b2e4 b2e4 b2e4 * 5c69 * 8ea1dce9,dce9,8ea1dce9v,dce9v 8116 e88496 8116 00008116 b2e4 b2e4 b2e4 b2e4 b2e4 b2e4 b2e4 -2924 b2e5 b2e5 b2e5 * 5c6a * 8ea1dcea,dcea,8ea1dceav,dceav 8123 e884a3 8123 00008123 b2e5 b2e5 b2e5 b2e5 b2e5 b2e5 b2e5 -2925 b2e6 b2e6 b2e6 * 5c6b * 8ea1dceb,dceb,8ea1dcebv,dcebv 812b e884ab 812b 0000812b b2e6 b2e6 b2e6 b2e6 b2e6 b2e6 b2e6 -2926 b2e7 b2e7 b2e7 * 5c6c * 8ea1dcec,dcec,8ea1dcecv,dcecv 8129 e884a9 8129 00008129 b2e7 b2e7 b2e7 b2e7 b2e7 b2e7 b2e7 -2927 b2e8 b2e8 b2e8 * 5c6d * 8ea1dced,dced,8ea1dcedv,dcedv 8130 e884b0 8130 00008130 b2e8 b2e8 b2e8 b2e8 b2e8 b2e8 b2e8 -2928 b2e9 b2e9 b2e9 * 5c6e * 8ea1dcee,dcee,8ea1dceev,dceev 8124 e884a4 8124 00008124 b2e9 b2e9 b2e9 b2e9 b2e9 b2e9 b2e9 -2929 b2ea b2ea b2ea * 5c6f * 8ea1dcef,dcef,8ea1dcefv,dcefv 8202 e88882 8202 00008202 b2ea b2ea b2ea b2ea b2ea b2ea b2ea -2930 b2eb b2eb b2eb * 5c70 * 8ea1dcf0,dcf0,8ea1dcf0v,dcf0v 8235 e888b5 8235 00008235 b2eb b2eb b2eb b2eb b2eb b2eb b2eb -2931 b2ec b2ec b2ec * 5c71 * 8ea1dcf1,dcf1,8ea1dcf1v,dcf1v 8237 e888b7 8237 00008237 b2ec b2ec b2ec b2ec b2ec b2ec b2ec -2932 b2ed b2ed b2ed * 5c72 * 8ea1dcf2,dcf2,8ea1dcf2v,dcf2v 8236 e888b6 8236 00008236 b2ed b2ed b2ed b2ed b2ed b2ed b2ed -2933 b2ee b2ee b2ee * 5c73 * 8ea1dcf3,dcf3,8ea1dcf3v,dcf3v 8239 e888b9 8239 00008239 b2ee b2ee b2ee b2ee b2ee b2ee b2ee -2934 b2ef b2ef b2ef * 5c74 * 8ea1dcf4,dcf4,8ea1dcf4v,dcf4v 838e e88e8e 838e 0000838e b2ef b2ef b2ef b2ef b2ef b2ef b2ef -2935 b2f0 b2f0 b2f0 * 5c75 * 8ea1dcf5,dcf5,8ea1dcf5v,dcf5v 839e e88e9e 839e 0000839e b2f0 b2f0 b2f0 b2f0 b2f0 b2f0 b2f0 -2936 b2f1 b2f1 b2f1 * 5c76 * 8ea1dcf6,dcf6,8ea1dcf6v,dcf6v 8398 e88e98 8398 00008398 b2f1 b2f1 b2f1 b2f1 b2f1 b2f1 b2f1 -2937 b2f2 b2f2 b2f2 * 5c77 * 8ea1dcf7,dcf7,8ea1dcf7v,dcf7v 8378 e88db8 8378 00008378 b2f2 b2f2 b2f2 b2f2 b2f2 b2f2 b2f2 -2938 b2f3 b2f3 b2f3 * 5c78 * 8ea1dcf8,dcf8,8ea1dcf8v,dcf8v 83a2 e88ea2 83a2 000083a2 b2f3 b2f3 b2f3 b2f3 b2f3 b2f3 b2f3 -2939 b2f4 b2f4 b2f4 * 5c79 * 8ea1dcf9,dcf9,8ea1dcf9v,dcf9v 8396 e88e96 8396 00008396 b2f4 b2f4 b2f4 b2f4 b2f4 b2f4 b2f4 -2940 b2f5 b2f5 b2f5 * 5c7a * 8ea1dcfa,dcfa,8ea1dcfav,dcfav 83bd e88ebd 83bd 000083bd b2f5 b2f5 b2f5 b2f5 b2f5 b2f5 b2f5 -2941 b2f6 b2f6 b2f6 * 5c7b * 8ea1dcfb,dcfb,8ea1dcfbv,dcfbv 83ab e88eab 83ab 000083ab b2f6 b2f6 b2f6 b2f6 b2f6 b2f6 b2f6 -2942 b2f7 b2f7 b2f7 * 5c7c * 8ea1dcfc,dcfc,8ea1dcfcv,dcfcv 8392 e88e92 8392 00008392 b2f7 b2f7 b2f7 b2f7 b2f7 b2f7 b2f7 -2943 b2f8 b2f8 b2f8 * 5c7d * 8ea1dcfd,dcfd,8ea1dcfdv,dcfdv 838a e88e8a 838a 0000838a b2f8 b2f8 b2f8 b2f8 b2f8 b2f8 b2f8 -2944 b2f9 b2f9 b2f9 * 5c7e * 8ea1dcfe,dcfe,8ea1dcfev,dcfev 8393 e88e93 8393 00008393 b2f9 b2f9 b2f9 b2f9 b2f9 b2f9 b2f9 -2945 b2fa b2fa b2fa * 5d21 * 8ea1dda1,dda1,8ea1dda1v,dda1v 8389 e88e89 8389 00008389 b2fa b2fa b2fa b2fa b2fa b2fa b2fa -2946 b2fb b2fb b2fb * 5d22 * 8ea1dda2,dda2,8ea1dda2v,dda2v 83a0 e88ea0 83a0 000083a0 b2fb b2fb b2fb b2fb b2fb b2fb b2fb -2947 b2fc b2fc b2fc * 5d23 * 8ea1dda3,dda3,8ea1dda3v,dda3v 8377 e88db7 8377 00008377 b2fc b2fc b2fc b2fc b2fc b2fc b2fc -2948 b2fd b2fd b2fd * 5d24 * 8ea1dda4,dda4,8ea1dda4v,dda4v 837b e88dbb 837b 0000837b b2fd b2fd b2fd b2fd b2fd b2fd b2fd -2949 b2fe b2fe b2fe * 5d25 * 8ea1dda5,dda5,8ea1dda5v,dda5v 837c e88dbc 837c 0000837c b2fe b2fe b2fe b2fe b2fe b2fe b2fe -2950 b340 b340 b340 * 5d26 * 8ea1dda6,dda6,8ea1dda6v,dda6v 8386 e88e86 8386 00008386 b340 b340 b340 b340 b340 b340 b340 -2951 b341 b341 b341 * 5d27 * 8ea1dda7,dda7,8ea1dda7v,dda7v 83a7 e88ea7 83a7 000083a7 b341 b341 b341 b341 b341 b341 b341 -2952 b342 b342 b342 * 5d28 * 8ea1dda8,dda8,8ea1dda8v,dda8v 8655 e89995 8655 00008655 b342 b342 b342 b342 b342 b342 b342 -2953 b343 b343 b343 * 5d29 * 8ea1dda9,dda9,8ea1dda9v,dda9v 5f6a e5bdaa 5f6a 00005f6a b343 b343 b343 b343 b343 b343 b343 -2954 b344 b344 b344 * 5d2a * 8ea1ddaa,ddaa,8ea1ddaav,ddaav 86c7 e89b87 86c7 000086c7 b344 b344 b344 b344 b344 b344 b344 -2955 b345 b345 b345 * 5d2b * 8ea1ddab,ddab,8ea1ddabv,ddabv 86c0 e89b80 86c0 000086c0 b345 b345 b345 b345 b345 b345 b345 -2956 b346 b346 b346 * 5d2c * 8ea1ddac,ddac,8ea1ddacv,ddacv 86b6 e89ab6 86b6 000086b6 b346 b346 b346 b346 b346 b346 b346 -2957 b347 b347 b347 * 5d2d * 8ea1ddad,ddad,8ea1ddadv,ddadv 86c4 e89b84 86c4 000086c4 b347 b347 b347 b347 b347 b347 b347 -2958 b348 b348 b348 * 5d2e * 8ea1ddae,ddae,8ea1ddaev,ddaev 86b5 e89ab5 86b5 000086b5 b348 b348 b348 b348 b348 b348 b348 -2959 b349 b349 b349 * 5d2f * 8ea1ddaf,ddaf,8ea1ddafv,ddafv 86c6 e89b86 86c6 000086c6 b349 b349 b349 b349 b349 b349 b349 -2960 b34a b34a b34a * 5d30 * 8ea1ddb0,ddb0,8ea1ddb0v,ddb0v 86cb e89b8b 86cb 000086cb b34a b34a b34a b34a b34a b34a b34a -2961 b34b b34b b34b * 5d31 * 8ea1ddb1,ddb1,8ea1ddb1v,ddb1v 86b1 e89ab1 86b1 000086b1 b34b b34b b34b b34b b34b b34b b34b -2962 b34c b34c b34c * 5d32 * 8ea1ddb2,ddb2,8ea1ddb2v,ddb2v 86af e89aaf 86af 000086af b34c b34c b34c b34c b34c b34c b34c -2963 b34d b34d b34d * 5d33 * 8ea1ddb3,ddb3,8ea1ddb3v,ddb3v 86c9 e89b89 86c9 000086c9 b34d b34d b34d b34d b34d b34d b34d -2964 b34e b34e b34e * 5d34 * 8ea1ddb4,ddb4,8ea1ddb4v,ddb4v 8853 e8a193 8853 00008853 b34e b34e b34e b34e b34e b34e b34e -2965 b34f b34f b34f * 5d35 * 8ea1ddb5,ddb5,8ea1ddb5v,ddb5v 889e e8a29e 889e 0000889e b34f b34f b34f b34f b34f b34f b34f -2966 b350 b350 b350 * 5d36 * 8ea1ddb6,ddb6,8ea1ddb6v,ddb6v 8888 e8a288 8888 00008888 b350 b350 b350 b350 b350 b350 b350 -2967 b351 b351 b351 * 5d37 * 8ea1ddb7,ddb7,8ea1ddb7v,ddb7v 88ab e8a2ab 88ab 000088ab b351 b351 b351 b351 b351 b351 b351 -2968 b352 b352 b352 * 5d38 * 8ea1ddb8,ddb8,8ea1ddb8v,ddb8v 8892 e8a292 8892 00008892 b352 b352 b352 b352 b352 b352 b352 -2969 b353 b353 b353 * 5d39 * 8ea1ddb9,ddb9,8ea1ddb9v,ddb9v 8896 e8a296 8896 00008896 b353 b353 b353 b353 b353 b353 b353 -2970 b354 b354 b354 * 5d3a * 8ea1ddba,ddba,8ea1ddbav,ddbav 888d e8a28d 888d 0000888d b354 b354 b354 b354 b354 b354 b354 -2971 b355 b355 b355 * 5d3b * 8ea1ddbb,ddbb,8ea1ddbbv,ddbbv 888b e8a28b 888b 0000888b b355 b355 b355 b355 b355 b355 b355 -2972 b356 b356 b356 * 5d3c * 8ea1ddbc,ddbc,8ea1ddbcv,ddbcv 8993 e8a693 8993 00008993 b356 b356 b356 b356 b356 b356 b356 -2973 b357 b357 b357 * 5d3d * 8ea1ddbd,ddbd,8ea1ddbdv,ddbdv 898f e8a68f 898f 0000898f b357 b357 b357 b357 b357 b357 b357 -2974 b358 b358 b358 * 5d3e * 8ea1ddbe,ddbe,8ea1ddbev,ddbev 8a2a e8a8aa 8a2a 00008a2a b358 b358 b358 b358 b358 b358 b358 -2975 b359 b359 b359 * 5d3f * 8ea1ddbf,ddbf,8ea1ddbfv,ddbfv 8a1d e8a89d 8a1d 00008a1d b359 b359 b359 b359 b359 b359 b359 -2976 b35a b35a b35a * 5d40 * 8ea1ddc0,ddc0,8ea1ddc0v,ddc0v 8a23 e8a8a3 8a23 00008a23 b35a b35a b35a b35a b35a b35a b35a -2977 b35b b35b b35b * 5d41 * 8ea1ddc1,ddc1,8ea1ddc1v,ddc1v 8a25 e8a8a5 8a25 00008a25 b35b b35b b35b b35b b35b b35b b35b -2978 b35c b35c b35c * 5d42 * 8ea1ddc2,ddc2,8ea1ddc2v,ddc2v 8a31 e8a8b1 8a31 00008a31 b35c b35c b35c b35c b35c b35c b35c -2979 b35d b35d b35d * 5d43 * 8ea1ddc3,ddc3,8ea1ddc3v,ddc3v 8a2d e8a8ad 8a2d 00008a2d b35d b35d b35d b35d b35d b35d b35d -2980 b35e b35e b35e * 5d44 * 8ea1ddc4,ddc4,8ea1ddc4v,ddc4v 8a1f e8a89f 8a1f 00008a1f b35e b35e b35e b35e b35e b35e b35e -2981 b35f b35f b35f * 5d45 * 8ea1ddc5,ddc5,8ea1ddc5v,ddc5v 8a1b e8a89b 8a1b 00008a1b b35f b35f b35f b35f b35f b35f b35f -2982 b360 b360 b360 * 5d46 * 8ea1ddc6,ddc6,8ea1ddc6v,ddc6v 8a22 e8a8a2 8a22 00008a22 b360 b360 b360 b360 b360 b360 b360 -2983 b361 b361 b361 * 5d47 * 8ea1ddc7,ddc7,8ea1ddc7v,ddc7v 8c49 e8b189 8c49 00008c49 b361 b361 b361 b361 b361 b361 b361 -2984 b362 b362 b362 * 5d48 * 8ea1ddc8,ddc8,8ea1ddc8v,ddc8v 8c5a e8b19a 8c5a 00008c5a b362 b362 b362 b362 b362 b362 b362 -2985 b363 b363 b363 * 5d49 * 8ea1ddc9,ddc9,8ea1ddc9v,ddc9v 8ca9 e8b2a9 8ca9 00008ca9 b363 b363 b363 b363 b363 b363 b363 -2986 b364 b364 b364 * 5d4a * 8ea1ddca,ddca,8ea1ddcav,ddcav 8cac e8b2ac 8cac 00008cac b364 b364 b364 b364 b364 b364 b364 -2987 b365 b365 b365 * 5d4b * 8ea1ddcb,ddcb,8ea1ddcbv,ddcbv 8cab e8b2ab 8cab 00008cab b365 b365 b365 b365 b365 b365 b365 -2988 b366 b366 b366 * 5d4c * 8ea1ddcc,ddcc,8ea1ddccv,ddccv 8ca8 e8b2a8 8ca8 00008ca8 b366 b366 b366 b366 b366 b366 b366 -2989 b367 b367 b367 * 5d4d * 8ea1ddcd,ddcd,8ea1ddcdv,ddcdv 8caa e8b2aa 8caa 00008caa b367 b367 b367 b367 b367 b367 b367 -2990 b368 b368 b368 * 5d4e * 8ea1ddce,ddce,8ea1ddcev,ddcev 8ca7 e8b2a7 8ca7 00008ca7 b368 b368 b368 b368 b368 b368 b368 -2991 b369 b369 b369 * 5d4f * 8ea1ddcf,ddcf,8ea1ddcfv,ddcfv 8d67 e8b5a7 8d67 00008d67 b369 b369 b369 b369 b369 b369 b369 -2992 b36a b36a b36a * 5d50 * 8ea1ddd0,ddd0,8ea1ddd0v,ddd0v 8d66 e8b5a6 8d66 00008d66 b36a b36a b36a b36a b36a b36a b36a -2993 b36b b36b b36b * 5d51 * 8ea1ddd1,ddd1,8ea1ddd1v,ddd1v 8dbe e8b6be 8dbe 00008dbe b36b b36b b36b b36b b36b b36b b36b -2994 b36c b36c b36c * 5d52 * 8ea1ddd2,ddd2,8ea1ddd2v,ddd2v 8dba e8b6ba 8dba 00008dba b36c b36c b36c b36c b36c b36c b36c -2995 b36d b36d b36d * 5d53 * 8ea1ddd3,ddd3,8ea1ddd3v,ddd3v 8edb e8bb9b 8edb 00008edb b36d b36d b36d b36d b36d b36d b36d -2996 b36e b36e b36e * 5d54 * 8ea1ddd4,ddd4,8ea1ddd4v,ddd4v 8edf e8bb9f 8edf 00008edf b36e b36e b36e b36e b36e b36e b36e -2997 b36f b36f b36f * 5d55 * 8ea1ddd5,ddd5,8ea1ddd5v,ddd5v 9019 e98099 9019 00009019 b36f b36f b36f b36f b36f b36f b36f -2998 b370 b370 b370 * 5d56 * 8ea1ddd6,ddd6,8ea1ddd6v,ddd6v 900d e9808d 900d 0000900d b370 b370 b370 b370 b370 b370 b370 -2999 b371 b371 b371 * 5d57 * 8ea1ddd7,ddd7,8ea1ddd7v,ddd7v 901a e9809a 901a 0000901a b371 b371 b371 b371 b371 b371 b371 -3000 b372 b372 b372 * 5d58 * 8ea1ddd8,ddd8,8ea1ddd8v,ddd8v 9017 e98097 9017 00009017 b372 b372 b372 b372 b372 b372 b372 -3001 b373 b373 b373 * 5d59 * 8ea1ddd9,ddd9,8ea1ddd9v,ddd9v 9023 e980a3 9023 00009023 b373 b373 b373 b373 b373 b373 b373 -3002 b374 b374 b374 * 5d5a * 8ea1ddda,ddda,8ea1dddav,dddav 901f e9809f 901f 0000901f b374 b374 b374 b374 b374 b374 b374 -3003 b375 b375 b375 * 5d5b * 8ea1dddb,dddb,8ea1dddbv,dddbv 901d e9809d 901d 0000901d b375 b375 b375 b375 b375 b375 b375 -3004 b376 b376 b376 * 5d5c * 8ea1dddc,dddc,8ea1dddcv,dddcv 9010 e98090 9010 00009010 b376 b376 b376 b376 b376 b376 b376 -3005 b377 b377 b377 * 5d5d * 8ea1dddd,dddd,8ea1ddddv,ddddv 9015 e98095 9015 00009015 b377 b377 b377 b377 b377 b377 b377 -3006 b378 b378 b378 * 5d5e * 8ea1ddde,ddde,8ea1dddev,dddev 901e e9809e 901e 0000901e b378 b378 b378 b378 b378 b378 b378 -3007 b379 b379 b379 * 5d5f * 8ea1dddf,dddf,8ea1dddfv,dddfv 9020 e980a0 9020 00009020 b379 b379 b379 b379 b379 b379 b379 -3008 b37a b37a b37a * 5d60 * 8ea1dde0,dde0,8ea1dde0v,dde0v 900f e9808f 900f 0000900f b37a b37a b37a b37a b37a b37a b37a -3009 b37b b37b b37b * 5d61 * 8ea1dde1,dde1,8ea1dde1v,dde1v 9022 e980a2 9022 00009022 b37b b37b b37b b37b b37b b37b b37b -3010 b37c b37c b37c * 5d62 * 8ea1dde2,dde2,8ea1dde2v,dde2v 9016 e98096 9016 00009016 b37c b37c b37c b37c b37c b37c b37c -3011 b37d b37d b37d * 5d63 * 8ea1dde3,dde3,8ea1dde3v,dde3v 901b e9809b 901b 0000901b b37d b37d b37d b37d b37d b37d b37d -3012 b37e b37e b37e * 5d64 * 8ea1dde4,dde4,8ea1dde4v,dde4v 9014 e98094 9014 00009014 b37e b37e b37e b37e b37e b37e b37e -3013 b3a1 b3a1 b3a1 * 5d65 * 8ea1dde5,dde5,8ea1dde5v,dde5v 90e8 e983a8 90e8 000090e8 b3a1 b3a1 b3a1 b3a1 b3a1 b3a1 b3a1 -3014 b3a2 b3a2 b3a2 * 5d66 * 8ea1dde6,dde6,8ea1dde6v,dde6v 90ed e983ad 90ed 000090ed b3a2 b3a2 b3a2 b3a2 b3a2 b3a2 b3a2 -3015 b3a3 b3a3 b3a3 * 5d67 * 8ea1dde7,dde7,8ea1dde7v,dde7v 90fd e983bd,ee91b8 90fd,e478 000090fd,0000e478 906d,b3a3 b3a3 b3a3 b3a3 b3a3 b3a3 906d,b3a3 -3016 b3a4 b3a4 b3a4 * 5d68 * 8ea1dde8,dde8,8ea1dde8v,dde8v 9157 e98597 9157 00009157 b3a4 b3a4 b3a4 b3a4 b3a4 b3a4 b3a4 -3017 b3a5 b3a5 b3a5 * 5d69 * 8ea1dde9,dde9,8ea1dde9v,dde9v 91ce e9878e 91ce 000091ce b3a5 b3a5 b3a5 b3a5 b3a5 b3a5 b3a5 -3018 b3a6 b3a6 b3a6 * 5d6a * 8ea1ddea,ddea,8ea1ddeav,ddeav 91f5 e987b5 91f5 000091f5 b3a6 b3a6 b3a6 b3a6 b3a6 b3a6 b3a6 -3019 b3a7 b3a7 b3a7 * 5d6b * 8ea1ddeb,ddeb,8ea1ddebv,ddebv 91e6 e987a6 91e6 000091e6 b3a7 b3a7 b3a7 b3a7 b3a7 b3a7 b3a7 -3020 b3a8 b3a8 b3a8 * 5d6c * 8ea1ddec,ddec,8ea1ddecv,ddecv 91e3 e987a3 91e3 000091e3 b3a8 b3a8 b3a8 b3a8 b3a8 b3a8 b3a8 -3021 b3a9 b3a9 b3a9 * 5d6d * 8ea1dded,dded,8ea1ddedv,ddedv 91e7 e987a7 91e7 000091e7 b3a9 b3a9 b3a9 b3a9 b3a9 b3a9 b3a9 -3022 b3aa b3aa b3aa * 5d6e * 8ea1ddee,ddee,8ea1ddeev,ddeev 91ed e987ad 91ed 000091ed b3aa b3aa b3aa b3aa b3aa b3aa b3aa -3023 b3ab b3ab b3ab * 5d6f * 8ea1ddef,ddef,8ea1ddefv,ddefv 91e9 e987a9 91e9 000091e9 b3ab b3ab b3ab b3ab b3ab b3ab b3ab -3024 b3ac b3ac b3ac * 5d70 * 8ea1ddf0,ddf0,8ea1ddf0v,ddf0v 9589 e99689 9589 00009589 b3ac b3ac b3ac b3ac b3ac b3ac b3ac -3025 b3ad b3ad b3ad * 5d71 * 8ea1ddf1,ddf1,8ea1ddf1v,ddf1v 966a e999aa 966a 0000966a b3ad b3ad b3ad b3ad b3ad b3ad b3ad -3026 b3ae b3ae b3ae * 5d72 * 8ea1ddf2,ddf2,8ea1ddf2v,ddf2v 9675 e999b5 9675 00009675 b3ae b3ae b3ae b3ae b3ae b3ae b3ae -3027 b3af b3af b3af * 5d73 * 8ea1ddf3,ddf3,8ea1ddf3v,ddf3v 9673 e999b3 9673 00009673 b3af b3af b3af b3af b3af b3af b3af -3028 b3b0 b3b0 b3b0 * 5d74 * 8ea1ddf4,ddf4,8ea1ddf4v,ddf4v 9678 e999b8 9678 00009678 b3b0 b3b0 b3b0 b3b0 b3b0 b3b0 b3b0 -3029 b3b1 b3b1 b3b1 * 5d75 * 8ea1ddf5,ddf5,8ea1ddf5v,ddf5v 9670 e999b0 9670 00009670 b3b1 b3b1 b3b1 b3b1 b3b1 b3b1 b3b1 -3030 b3b2 b3b2 b3b2 * 5d76 * 8ea1ddf6,ddf6,8ea1ddf6v,ddf6v 9674 e999b4 9674 00009674 b3b2 b3b2 b3b2 b3b2 b3b2 b3b2 b3b2 -3031 b3b3 b3b3 b3b3 * 5d77 * 8ea1ddf7,ddf7,8ea1ddf7v,ddf7v 9676 e999b6 9676 00009676 b3b3 b3b3 b3b3 b3b3 b3b3 b3b3 b3b3 -3032 b3b4 b3b4 b3b4 * 5d78 * 8ea1ddf8,ddf8,8ea1ddf8v,ddf8v 9677 e999b7 9677 00009677 b3b4 b3b4 b3b4 b3b4 b3b4 b3b4 b3b4 -3033 b3b5 b3b5 b3b5 * 5d79 * 8ea1ddf9,ddf9,8ea1ddf9v,ddf9v 966c e999ac 966c 0000966c b3b5 b3b5 b3b5 b3b5 b3b5 b3b5 b3b5 -3034 b3b6 b3b6 b3b6 * 5d7a * 8ea1ddfa,ddfa,8ea1ddfav,ddfav 96c0 e99b80 96c0 000096c0 b3b6 b3b6 b3b6 b3b6 b3b6 b3b6 b3b6 -3035 b3b7 b3b7 b3b7 * 5d7b * 8ea1ddfb,ddfb,8ea1ddfbv,ddfbv 96ea e99baa 96ea 000096ea b3b7 b3b7 b3b7 b3b7 b3b7 b3b7 b3b7 -3036 b3b8 b3b8 b3b8 * 5d7c * 8ea1ddfc,ddfc,8ea1ddfcv,ddfcv 96e9 e99ba9 96e9 000096e9 b3b8 b3b8 b3b8 b3b8 b3b8 b3b8 b3b8 -3037 b3b9 b3b9 b3b9 * 5d7d * 8ea1ddfd,ddfd,8ea1ddfdv,ddfdv 7ae0 e7aba0 7ae0 00007ae0 b3b9 b3b9 b3b9 b3b9 b3b9 b3b9 b3b9 -3038 b3ba b3ba b3ba * 5d7e * 8ea1ddfe,ddfe,8ea1ddfev,ddfev 7adf e7ab9f 7adf 00007adf b3ba b3ba b3ba b3ba b3ba b3ba b3ba -3039 b3bb b3bb b3bb * 5e21 * 8ea1dea1,dea1,8ea1dea1v,dea1v 9802 e9a082 9802 00009802 b3bb b3bb b3bb b3bb b3bb b3bb b3bb -3040 b3bc b3bc b3bc * 5e22 * 8ea1dea2,dea2,8ea1dea2v,dea2v 9803 e9a083 9803 00009803 b3bc b3bc b3bc b3bc b3bc b3bc b3bc -3041 b3bd b3bd b3bd * 2926,5e23 * 8ea1a9a6,8ea1dea3,a9a6,dea3,8ea1a9a6v,8ea1dea3v,a9a6v,dea3v 9b5a e9ad9a,e2bf82 9b5a,2fc2 00009b5a,00002fc2 b3bd b3bd b3bd b3bd b3bd b3bd b3bd -3042 b3be b3be b3be * 2927,5e24 * 8ea1a9a7,8ea1dea4,a9a7,dea4,8ea1a9a7v,8ea1dea4v,a9a7v,dea4v 9ce5 e9b3a5,e2bf83 9ce5,2fc3 00009ce5,00002fc3 b3be b3be b3be b3be b3be b3be b3be -3043 b3bf b3bf b3bf * 2928,5e25 * 8ea1a9a8,8ea1dea5,a9a8,dea5,8ea1a9a8v,8ea1dea5v,a9a8v,dea5v 9e75 e9b9b5,e2bf84 9e75,2fc4 00009e75,00002fc4 b3bf b3bf 9157,b3bf b3bf b3bf b3bf b3bf -3044 b3c0 b3c0 b3c0 * 2929,5e26 * 8ea1a9a9,8ea1dea6,a9a9,dea6,8ea1a9a9v,8ea1dea6v,a9a9v,dea6v 9e7f e9b9bf,e2bf85 9e7f,2fc5 00009e7f,00002fc5 b3c0 b3c0 b3c0 b3c0 b3c0 b3c0 b3c0 -3045 b3c1 b3c1 b3c1 * 292a,5e27 * 8ea1a9aa,8ea1dea7,a9aa,dea7,8ea1a9aav,8ea1dea7v,a9aav,dea7v 9ea5 e9baa5,e2bf86 9ea5,2fc6 00009ea5,00002fc6 b3c1 b3c1 b3c1 b3c1 b3c1 b3c1 b3c1 -3046 b3c2 b3c2 b3c2 * 292b,5e28 * 8ea1a9ab,8ea1dea8,a9ab,dea8,8ea1a9abv,8ea1dea8v,a9abv,dea8v 9ebb e9babb,e2bf87 9ebb,2fc7 00009ebb,00002fc7 b3c2 b3c2 b3c2 b3c2 b3c2 b3c2 b3c2 -3047 b3c3 b3c3 b3c3 * 5e29 * 8ea1dea9,dea9,8ea1dea9v,dea9v 50a2 e582a2 50a2 000050a2 b3c3 b3c3 b3c3 b3c3 b3c3 b3c3 b3c3 -3048 b3c4 b3c4 b3c4 * 5e2a * 8ea1deaa,deaa,8ea1deaav,deaav 508d e5828d 508d 0000508d b3c4 b3c4 b3c4 b3c4 b3c4 b3c4 b3c4 -3049 b3c5 b3c5 b3c5 * 5e2b * 8ea1deab,deab,8ea1deabv,deabv 5085 e58285 5085 00005085 b3c5 b3c5 b3c5 b3c5 b3c5 b3c5 b3c5 -3050 b3c6 b3c6 b3c6 * 5e2c * 8ea1deac,deac,8ea1deacv,deacv 5099 e58299 5099 00005099 b3c6 b3c6 b3c6 b3c6 b3c6 b3c6 b3c6 -3051 b3c7 b3c7 b3c7 * 5e2d * 8ea1dead,dead,8ea1deadv,deadv 5091 e58291 5091 00005091 b3c7 b3c7 b3c7 b3c7 b3c7 b3c7 b3c7 -3052 b3c8 b3c8 b3c8 * 5e2e * 8ea1deae,deae,8ea1deaev,deaev 5080 e58280 5080 00005080 b3c8 b3c8 b3c8 b3c8 b3c8 b3c8 b3c8 -3053 b3c9 b3c9 b3c9 * 5e2f * 8ea1deaf,deaf,8ea1deafv,deafv 5096 e58296 5096 00005096 b3c9 b3c9 b3c9 b3c9 b3c9 b3c9 b3c9 -3054 b3ca b3ca b3ca * 5e30 * 8ea1deb0,deb0,8ea1deb0v,deb0v 5098 e58298 5098 00005098 b3ca b3ca b3ca b3ca b3ca b3ca b3ca -3055 b3cb b3cb b3cb * 5e31 * 8ea1deb1,deb1,8ea1deb1v,deb1v 509a e5829a 509a 0000509a b3cb b3cb b3cb b3cb b3cb b3cb b3cb -3056 b3cc b3cc b3cc * 5e32 * 8ea1deb2,deb2,8ea1deb2v,deb2v 6700 e69c80 6700 00006700 b3cc b3cc b3cc b3cc b3cc b3cc b3cc -3057 b3cd b3cd b3cd * 5e33 * 8ea1deb3,deb3,8ea1deb3v,deb3v 51f1 e587b1 51f1 000051f1 b3cd b3cd b3cd b3cd b3cd b3cd b3cd -3058 b3ce b3ce b3ce * 5e34 * 8ea1deb4,deb4,8ea1deb4v,deb4v 5272 e589b2 5272 00005272 b3ce b3ce b3ce b3ce b3ce b3ce b3ce -3059 b3cf b3cf b3cf * 5e35 * 8ea1deb5,deb5,8ea1deb5v,deb5v 5274 e589b4 5274 00005274 b3cf b3cf b3cf b3cf b3cf b3cf b3cf -3060 b3d0 b3d0 b3d0 * 5e36 * 8ea1deb6,deb6,8ea1deb6v,deb6v 5275 e589b5 5275 00005275 b3d0 b3d0 b3d0 b3d0 b3d0 b3d0 b3d0 -3061 b3d1 b3d1 b3d1 * 5e37 * 8ea1deb7,deb7,8ea1deb7v,deb7v 5269 e589a9 5269 00005269 b3d1 b3d1 b3d1 b3d1 b3d1 b3d1 b3d1 -3062 b3d2 b3d2 b3d2 * 5e38 * 8ea1deb8,deb8,8ea1deb8v,deb8v 52de e58b9e 52de 000052de b3d2 b3d2 b3d2 b3d2 b3d2 b3d2 b3d2 -3063 b3d3 b3d3 b3d3 * 5e39 * 8ea1deb9,deb9,8ea1deb9v,deb9v 52dd e58b9d 52dd 000052dd b3d3 b3d3 b3d3 b3d3 b3d3 b3d3 b3d3 -3064 b3d4 b3d4 b3d4 * 5e3a * 8ea1deba,deba,8ea1debav,debav 52db e58b9b 52db 000052db b3d4 b3d4 b3d4 b3d4 b3d4 b3d4 b3d4 -3065 b3d5 b3d5 b3d5 * 5e3b * 8ea1debb,debb,8ea1debbv,debbv 535a e58d9a 535a 0000535a b3d5 b3d5 b3d5 b3d5 b3d5 b3d5 b3d5 -3066 b3d6 b3d6 b3d6 * 5e3c * 8ea1debc,debc,8ea1debcv,debcv 53a5 e58ea5 53a5 000053a5 b3d6 b3d6 b3d6 b3d6 b3d6 b3d6 b3d6 -3067 b3d7 b3d7 b3d7 * 5e3d * 8ea1debd,debd,8ea1debdv,debdv 557b e595bb 557b 0000557b b3d7 b3d7 b3d7 b3d7 b3d7 b3d7 b3d7 -3068 b3d8 b3d8 b3d8 * 5e3e * 8ea1debe,debe,8ea1debev,debev 5580 e59680 5580 00005580 b3d8 b3d8 b3d8 b3d8 b3d8 b3d8 b3d8 -3069 b3d9 b3d9 b3d9 * 5e3f * 8ea1debf,debf,8ea1debfv,debfv 55a7 e596a7 55a7 000055a7 b3d9 b3d9 b3d9 b3d9 b3d9 b3d9 b3d9 -3070 b3da b3da b3da * 5e40 * 8ea1dec0,dec0,8ea1dec0v,dec0v 557c e595bc 557c 0000557c b3da b3da b3da b3da b3da b3da b3da -3071 b3db b3db b3db * 5e41 * 8ea1dec1,dec1,8ea1dec1v,dec1v 558a e5968a 558a 0000558a b3db b3db b3db b3db b3db b3db b3db -3072 b3dc b3dc b3dc * 5e42 * 8ea1dec2,dec2,8ea1dec2v,dec2v 559d e5969d 559d 0000559d b3dc b3dc b3dc b3dc b3dc b3dc b3dc -3073 b3dd b3dd b3dd * 5e43 * 8ea1dec3,dec3,8ea1dec3v,dec3v 5598 e59698 5598 00005598 b3dd b3dd b3dd b3dd b3dd b3dd b3dd -3074 b3de b3de b3de * 5e44 * 8ea1dec4,dec4,8ea1dec4v,dec4v 5582 e59682 5582 00005582 b3de b3de b3de b3de b3de b3de b3de -3075 b3df b3df b3df * 5e45 * 8ea1dec5,dec5,8ea1dec5v,dec5v 559c e5969c 559c 0000559c b3df b3df b3df b3df b3df b3df b3df -3076 b3e0 b3e0 b3e0 * 5e46 * 8ea1dec6,dec6,8ea1dec6v,dec6v 55aa e596aa 55aa 000055aa b3e0 b3e0 b3e0 b3e0 b3e0 b3e0 b3e0 -3077 b3e1 b3e1 b3e1 * 5e47 * 8ea1dec7,dec7,8ea1dec7v,dec7v 5594 e59694 5594 00005594 b3e1 b3e1 b3e1 b3e1 b3e1 b3e1 b3e1 -3078 b3e2 b3e2 b3e2 * 5e48 * 8ea1dec8,dec8,8ea1dec8v,dec8v 5587 e59687 5587 00005587 b3e2 b3e2 b3e2 b3e2 b3e2 b3e2 b3e2 -3079 b3e3 b3e3 b3e3 * 5e49 * 8ea1dec9,dec9,8ea1dec9v,dec9v 558b e5968b 558b 0000558b b3e3 b3e3 b3e3 b3e3 b3e3 b3e3 b3e3 -3080 b3e4 b3e4 b3e4 * 5e4a * 8ea1deca,deca,8ea1decav,decav 5583 e59683 5583 00005583 b3e4 b3e4 b3e4 b3e4 b3e4 b3e4 b3e4 -3081 b3e5 b3e5 b3e5 * 5e4b * 8ea1decb,decb,8ea1decbv,decbv 55b3 e596b3 55b3 000055b3 b3e5 b3e5 b3e5 b3e5 b3e5 b3e5 b3e5 -3082 b3e6 b3e6 b3e6 * 5e4c * 8ea1decc,decc,8ea1deccv,deccv 55ae e596ae 55ae 000055ae b3e6 b3e6 b3e6 b3e6 b3e6 b3e6 b3e6 -3083 b3e7 b3e7 b3e7 * 5e4d * 8ea1decd,decd,8ea1decdv,decdv 559f e5969f 559f 0000559f b3e7 b3e7 b3e7 b3e7 b3e7 b3e7 b3e7 -3084 b3e8 b3e8 b3e8 * 5e4e * 8ea1dece,dece,8ea1decev,decev 553e e594be 553e 0000553e b3e8 b3e8 b3e8 b3e8 b3e8 b3e8 b3e8 -3085 b3e9 b3e9 b3e9 * 5e4f * 8ea1decf,decf,8ea1decfv,decfv 55b2 e596b2 55b2 000055b2 b3e9 b3e9 b3e9 b3e9 b3e9 b3e9 b3e9 -3086 b3ea b3ea b3ea * 5e50 * 8ea1ded0,ded0,8ea1ded0v,ded0v 559a e5969a 559a 0000559a b3ea b3ea b3ea b3ea b3ea b3ea b3ea -3087 b3eb b3eb b3eb * 5e51 * 8ea1ded1,ded1,8ea1ded1v,ded1v 55bb e596bb 55bb 000055bb b3eb b3eb b3eb b3eb b3eb b3eb b3eb -3088 b3ec b3ec b3ec * 5e52 * 8ea1ded2,ded2,8ea1ded2v,ded2v 55ac e596ac 55ac 000055ac b3ec b3ec b3ec b3ec b3ec b3ec b3ec -3089 b3ed b3ed b3ed * 5e53 * 8ea1ded3,ded3,8ea1ded3v,ded3v 55b1 e596b1 55b1 000055b1 b3ed b3ed b3ed b3ed b3ed b3ed b3ed -3090 b3ee b3ee b3ee * 5e54 * 8ea1ded4,ded4,8ea1ded4v,ded4v 557e e595be 557e 0000557e b3ee b3ee b3ee b3ee b3ee b3ee b3ee -3091 b3ef b3ef b3ef * 5e55 * 8ea1ded5,ded5,8ea1ded5v,ded5v 5589 e59689 5589 00005589 b3ef b3ef b3ef b3ef b3ef b3ef b3ef -3092 b3f0 b3f0 b3f0 * 5e56 * 8ea1ded6,ded6,8ea1ded6v,ded6v 55ab e596ab 55ab 000055ab b3f0 b3f0 b3f0 b3f0 b3f0 b3f0 b3f0 -3093 b3f1 b3f1 b3f1 * 5e57 * 8ea1ded7,ded7,8ea1ded7v,ded7v 5599 e59699 5599 00005599 b3f1 b3f1 b3f1 b3f1 b3f1 b3f1 b3f1 -3094 b3f2 b3f2 b3f2 * 5e58 * 8ea1ded8,ded8,8ea1ded8v,ded8v 570d e59c8d 570d 0000570d b3f2 b3f2 b3f2 b3f2 b3f2 b3f2 b3f2 -3095 b3f3 b3f3 b3f3 * 5e59 * 8ea1ded9,ded9,8ea1ded9v,ded9v 582f e5a0af 582f 0000582f b3f3 b3f3 b3f3 b3f3 b3f3 b3f3 b3f3 -3096 b3f4 b3f4 b3f4 * 5e5a * 8ea1deda,deda,8ea1dedav,dedav 582a e5a0aa 582a 0000582a b3f4 b3f4 b3f4 b3f4 b3f4 b3f4 b3f4 -3097 b3f5 b3f5 b3f5 * 5e5b * 8ea1dedb,dedb,8ea1dedbv,dedbv 5834 e5a0b4 5834 00005834 b3f5 b3f5 b3f5 b3f5 b3f5 b3f5 b3f5 -3098 b3f6 b3f6 b3f6 * 5e5c * 8ea1dedc,dedc,8ea1dedcv,dedcv 5824 e5a0a4 5824 00005824 b3f6 b3f6 b3f6 b3f6 b3f6 b3f6 b3f6 -3099 b3f7 b3f7 b3f7 * 5e5d * 8ea1dedd,dedd,8ea1deddv,deddv 5830 e5a0b0 5830 00005830 b3f7 b3f7 b3f7 b3f7 b3f7 b3f7 b3f7 -3100 b3f8 b3f8 b3f8 * 5e5e * 8ea1dede,dede,8ea1dedev,dedev 5831 e5a0b1 5831 00005831 b3f8 b3f8 b3f8 b3f8 b3f8 b3f8 b3f8 -3101 b3f9 b3f9 b3f9 * 5e5f * 8ea1dedf,dedf,8ea1dedfv,dedfv 5821 e5a0a1 5821 00005821 b3f9 b3f9 b3f9 b3f9 b3f9 b3f9 b3f9 -3102 b3fa b3fa b3fa * 5e60 * 8ea1dee0,dee0,8ea1dee0v,dee0v 581d e5a09d 581d 0000581d b3fa b3fa b3fa b3fa b3fa b3fa b3fa -3103 b3fb b3fb b3fb * 5e61 * 8ea1dee1,dee1,8ea1dee1v,dee1v 5820 e5a0a0 5820 00005820 b3fb b3fb b3fb b3fb b3fb b3fb b3fb -3104 b3fc b3fc b3fc * 5e62 * 8ea1dee2,dee2,8ea1dee2v,dee2v 58f9 e5a3b9 58f9 000058f9 b3fc b3fc b3fc b3fc b3fc b3fc b3fc -3105 b3fd b3fd b3fd * 5e63 * 8ea1dee3,dee3,8ea1dee3v,dee3v 58fa e5a3ba 58fa 000058fa b3fd b3fd b3fd b3fd b3fd b3fd b3fd -3106 b3fe b3fe b3fe * 5e64 * 8ea1dee4,dee4,8ea1dee4v,dee4v 5960 e5a5a0 5960 00005960 b3fe b3fe b3fe b3fe b3fe b3fe b3fe -3107 b440 b440 b440 * 5e65 * 8ea1dee5,dee5,8ea1dee5v,dee5v 5a77 e5a9b7,ee83b3 5a77,e0f3 00005a77,0000e0f3 fbb8,b440 b440 b440 b440 b440 b440 fbb8,b440 -3108 b441 b441 b441 * 5e66 * 8ea1dee6,dee6,8ea1dee6v,dee6v 5a9a e5aa9a 5a9a 00005a9a b441 b441 b441 b441 b441 b441 b441 -3109 b442 b442 b442 * 5e67 * 8ea1dee7,dee7,8ea1dee7v,dee7v 5a7f e5a9bf 5a7f 00005a7f b442 b442 b442 b442 b442 b442 b442 -3110 b443 b443 b443 * 5e68 * 8ea1dee8,dee8,8ea1dee8v,dee8v 5a92 e5aa92 5a92 00005a92 b443 b443 b443 b443 b443 b443 b443 -3111 b444 b444 b444 * 5e69 * 8ea1dee9,dee9,8ea1dee9v,dee9v 5a9b e5aa9b 5a9b 00005a9b b444 b444 b444 b444 b444 b444 b444 -3112 b445 b445 b445 * 5e6a * 8ea1deea,deea,8ea1deeav,deeav 5aa7 e5aaa7 5aa7 00005aa7 b445 b445 b445 b445 b445 b445 b445 -3113 b446 b446 b446 * 5e6b * 8ea1deeb,deeb,8ea1deebv,deebv 5b73 e5adb3 5b73 00005b73 b446 b446 b446 b446 b446 b446 b446 -3114 b447 b447 b447 * 5e6c * 8ea1deec,deec,8ea1deecv,deecv 5b71 e5adb1 5b71 00005b71 b447 b447 b447 b447 b447 b447 b447 -3115 b448 b448 b448 * 5e6d * 8ea1deed,deed,8ea1deedv,deedv 5bd2 e5af92 5bd2 00005bd2 b448 b448 b448 b448 b448 b448 b448 -3116 b449 b449 b449 * 5e6e * 8ea1deee,deee,8ea1deeev,deeev 5bcc e5af8c 5bcc 00005bcc b449 b449 b449 b449 b449 b449 b449 -3117 b44a b44a b44a * 5e6f * 8ea1deef,deef,8ea1deefv,deefv 5bd3 e5af93 5bd3 00005bd3 b44a b44a b44a b44a b44a b44a b44a -3118 b44b b44b b44b * 5e70 * 8ea1def0,def0,8ea1def0v,def0v 5bd0 e5af90 5bd0 00005bd0 b44b b44b b44b b44b b44b b44b b44b -3119 b44c b44c b44c * 5e71 * 8ea1def1,def1,8ea1def1v,def1v 5c0a e5b08a 5c0a 00005c0a b44c b44c b44c b44c b44c b44c b44c -3120 b44d b44d b44d * 5e72 * 8ea1def2,def2,8ea1def2v,def2v 5c0b e5b08b 5c0b 00005c0b b44d b44d b44d b44d b44d b44d b44d -3121 b44e b44e b44e * 5e73 * 8ea1def3,def3,8ea1def3v,def3v 5c31 e5b0b1 5c31 00005c31 b44e b44e b44e b44e b44e b44e b44e -3122 b44f b44f b44f * 5e74 * 8ea1def4,def4,8ea1def4v,def4v 5d4c e5b58c 5d4c 00005d4c b44f b44f b44f b44f b44f b44f b44f -3123 b450 b450 b450 * 5e75 * 8ea1def5,def5,8ea1def5v,def5v 5d50 e5b590 5d50 00005d50 b450 b450 b450 b450 b450 b450 b450 -3124 b451 b451 b451 * 5e76 * 8ea1def6,def6,8ea1def6v,def6v 5d34 e5b4b4 5d34 00005d34 b451 b451 b451 b451 b451 b451 b451 -3125 b452 b452 b452 * 5e77 * 8ea1def7,def7,8ea1def7v,def7v 5d47 e5b587 5d47 00005d47 b452 b452 b452 b452 b452 b452 b452 -3126 b453 b453 b453 * 5e78 * 8ea1def8,def8,8ea1def8v,def8v 5dfd e5b7bd 5dfd 00005dfd b453 b453 b453 b453 b453 b453 b453 -3127 b454 b454 b454 * 5e79 * 8ea1def9,def9,8ea1def9v,def9v 5e45 e5b985 5e45 00005e45 b454 b454 b454 b454 b454 b454 b454 -3128 b455 b455 b455 * 5e7a * 8ea1defa,defa,8ea1defav,defav 5e3d e5b8bd 5e3d 00005e3d b455 b455 b455 b455 b455 b455 b455 -3129 b456 b456 b456 * 5e7b * 8ea1defb,defb,8ea1defbv,defbv 5e40 e5b980 5e40 00005e40 b456 b456 b456 b456 b456 b456 b456 -3130 b457 b457 b457 * 5e7c * 8ea1defc,defc,8ea1defcv,defcv 5e43 e5b983 5e43 00005e43 b457 b457 b457 b457 b457 b457 b457 -3131 b458 b458 b458 * 5e7d * 8ea1defd,defd,8ea1defdv,defdv 5e7e e5b9be 5e7e 00005e7e b458 b458 b458 b458 b458 b458 b458 -3132 b459 b459 b459 * 5e7e * 8ea1defe,defe,8ea1defev,defev 5eca e5bb8a 5eca 00005eca b459 b459 b459 b459 b459 b459 b459 -3133 b45a b45a b45a * 5f21 * 8ea1dfa1,dfa1,8ea1dfa1v,dfa1v 5ec1 e5bb81 5ec1 00005ec1 b45a b45a b45a b45a b45a b45a b45a -3134 b45b b45b b45b * 5f22 * 8ea1dfa2,dfa2,8ea1dfa2v,dfa2v 5ec2 e5bb82 5ec2 00005ec2 b45b b45b b45b b45b b45b b45b b45b -3135 b45c b45c b45c * 5f23 * 8ea1dfa3,dfa3,8ea1dfa3v,dfa3v 5ec4 e5bb84 5ec4 00005ec4 b45c b45c b45c b45c b45c b45c b45c -3136 b45d b45d b45d * 5f24 * 8ea1dfa4,dfa4,8ea1dfa4v,dfa4v 5f3c e5bcbc 5f3c 00005f3c b45d b45d b45d b45d b45d b45d b45d -3137 b45e b45e b45e * 5f25 * 8ea1dfa5,dfa5,8ea1dfa5v,dfa5v 5f6d e5bdad 5f6d 00005f6d b45e b45e b45e b45e b45e b45e b45e -3138 b45f b45f b45f * 5f26 * 8ea1dfa6,dfa6,8ea1dfa6v,dfa6v 5fa9 e5bea9 5fa9 00005fa9 b45f b45f b45f b45f b45f b45f b45f -3139 b460 b460 b460 * 5f27 * 8ea1dfa7,dfa7,8ea1dfa7v,dfa7v 5faa e5beaa 5faa 00005faa b460 b460 b460 b460 b460 b460 b460 -3140 b461 b461 b461 * 5f28 * 8ea1dfa8,dfa8,8ea1dfa8v,dfa8v 5fa8 e5bea8 5fa8 00005fa8 b461 b461 b461 b461 b461 b461 b461 -3141 b462 b462 b462 * 5f29 * 8ea1dfa9,dfa9,8ea1dfa9v,dfa9v 60d1 e68391 60d1 000060d1 b462 b462 b462 b462 b462 b462 b462 -3142 b463 b463 b463 * 5f2a * 8ea1dfaa,dfaa,8ea1dfaav,dfaav 60e1 e683a1 60e1 000060e1 b463 b463 b463 b463 b463 b463 b463 -3143 b464 b464 b464 * 5f2b * 8ea1dfab,dfab,8ea1dfabv,dfabv 60b2 e682b2 60b2 000060b2 b464 b464 b464 b464 b464 b464 b464 -3144 b465 b465 b465 * 5f2c * 8ea1dfac,dfac,8ea1dfacv,dfacv 60b6 e682b6 60b6 000060b6 b465 b465 b465 b465 b465 b465 b465 -3145 b466 b466 b466 * 5f2d * 8ea1dfad,dfad,8ea1dfadv,dfadv 60e0 e683a0 60e0 000060e0 b466 b466 b466 b466 b466 b466 b466 -3146 b467 b467 b467 * 5f2e * 8ea1dfae,dfae,8ea1dfaev,dfaev 611c e6849c 611c 0000611c b467 b467 b467 b467 b467 b467 b467 -3147 b468 b468 b468 * 5f2f * 8ea1dfaf,dfaf,8ea1dfafv,dfafv 6123 e684a3 6123 00006123 b468 b468 b468 b468 b468 b468 b468 -3148 b469 b469 b469 * 5f30 * 8ea1dfb0,dfb0,8ea1dfb0v,dfb0v 60fa e683ba 60fa 000060fa b469 b469 b469 b469 b469 b469 b469 -3149 b46a b46a b46a * 5f31 * 8ea1dfb1,dfb1,8ea1dfb1v,dfb1v 6115 e68495 6115 00006115 b46a b46a b46a b46a b46a b46a b46a -3150 b46b b46b b46b * 5f32 * 8ea1dfb2,dfb2,8ea1dfb2v,dfb2v 60f0 e683b0 60f0 000060f0 b46b b46b b46b b46b b46b b46b b46b -3151 b46c b46c b46c * 5f33 * 8ea1dfb3,dfb3,8ea1dfb3v,dfb3v 60fb e683bb 60fb 000060fb b46c b46c b46c b46c b46c b46c b46c -3152 b46d b46d b46d * 5f34 * 8ea1dfb4,dfb4,8ea1dfb4v,dfb4v 60f4 e683b4 60f4 000060f4 b46d b46d b46d b46d b46d b46d b46d -3153 b46e b46e b46e * 5f35 * 8ea1dfb5,dfb5,8ea1dfb5v,dfb5v 6168 e685a8 6168 00006168 b46e b46e b46e b46e b46e b46e b46e -3154 b46f b46f b46f * 5f36 * 8ea1dfb6,dfb6,8ea1dfb6v,dfb6v 60f1 e683b1 60f1 000060f1 b46f b46f b46f b46f b46f b46f b46f -3155 b470 b470 b470 * 5f37 * 8ea1dfb7,dfb7,8ea1dfb7v,dfb7v 610e e6848e 610e 0000610e b470 b470 b470 b470 b470 b470 b470 -3156 b471 b471 b471 * 5f38 * 8ea1dfb8,dfb8,8ea1dfb8v,dfb8v 60f6 e683b6 60f6 000060f6 b471 b471 b471 b471 b471 b471 b471 -3157 b472 b472 b472 * 5f39 * 8ea1dfb9,dfb9,8ea1dfb9v,dfb9v 6109 e68489 6109 00006109 b472 b472 b472 b472 b472 b472 b472 -3158 b473 b473 b473 * 5f3a * 8ea1dfba,dfba,8ea1dfbav,dfbav 6100 e68480 6100 00006100 b473 b473 b473 b473 b473 b473 b473 -3159 b474 b474 b474 * 5f3b * 8ea1dfbb,dfbb,8ea1dfbbv,dfbbv 6112 e68492 6112 00006112 b474 b474 b474 b474 b474 b474 b474 -3160 b475 b475 b475 * 5f3c * 8ea1dfbc,dfbc,8ea1dfbcv,dfbcv 621f e6889f 621f 0000621f b475 b475 b475 b475 b475 b475 b475 -3161 b476 b476 b476 * 5f3d * 8ea1dfbd,dfbd,8ea1dfbdv,dfbdv 6249 e68989 6249 00006249 b476 b476 b476 b476 b476 b476 b476 -3162 b477 b477 b477 * 5f3e * 8ea1dfbe,dfbe,8ea1dfbev,dfbev 63a3 e68ea3 63a3 000063a3 b477 b477 b477 b477 b477 b477 b477 -3163 b478 b478 b478 * 5f3f * 8ea1dfbf,dfbf,8ea1dfbfv,dfbfv 638c e68e8c 638c 0000638c b478 b478 b478 b478 b478 b478 b478 -3164 b479 b479 b479 * 5f40 * 8ea1dfc0,dfc0,8ea1dfc0v,dfc0v 63cf e68f8f 63cf 000063cf b479 b479 b479 b479 b479 b479 b479 -3165 b47a b47a b47a * 5f41 * 8ea1dfc1,dfc1,8ea1dfc1v,dfc1v 63c0 e68f80 63c0 000063c0 b47a b47a b47a b47a b47a b47a b47a -3166 b47b b47b b47b * 5f42 * 8ea1dfc2,dfc2,8ea1dfc2v,dfc2v 63e9 e68fa9 63e9 000063e9 b47b b47b b47b b47b b47b b47b b47b -3167 b47c b47c b47c * 5f43 * 8ea1dfc3,dfc3,8ea1dfc3v,dfc3v 63c9 e68f89 63c9 000063c9 b47c b47c b47c b47c b47c b47c b47c -3168 b47d b47d b47d * 5f44 * 8ea1dfc4,dfc4,8ea1dfc4v,dfc4v 63c6 e68f86 63c6 000063c6 b47d b47d b47d b47d b47d b47d b47d -3169 b47e b47e b47e * 5f45 * 8ea1dfc5,dfc5,8ea1dfc5v,dfc5v 63cd e68f8d 63cd 000063cd b47e b47e b47e b47e b47e b47e b47e -3170 b4a1 b4a1 b4a1 * 5f46 * 8ea1dfc6,dfc6,8ea1dfc6v,dfc6v 63d2 e68f92 63d2 000063d2 b4a1 b4a1 b4a1 b4a1 b4a1 b4a1 b4a1 -3171 b4a2 b4a2 b4a2 * 5f47 * 8ea1dfc7,dfc7,8ea1dfc7v,dfc7v 63e3 e68fa3 63e3 000063e3 b4a2 b4a2 b4a2 b4a2 b4a2 b4a2 b4a2 -3172 b4a3 b4a3 b4a3 * 5f48 * 8ea1dfc8,dfc8,8ea1dfc8v,dfc8v 63d0 e68f90 63d0 000063d0 b4a3 b4a3 b4a3 b4a3 b4a3 b4a3 b4a3 -3173 b4a4 b4a4 b4a4 * 5f49 * 8ea1dfc9,dfc9,8ea1dfc9v,dfc9v 63e1 e68fa1 63e1 000063e1 b4a4 b4a4 b4a4 b4a4 b4a4 b4a4 b4a4 -3174 b4a5 b4a5 b4a5 * 5f4a * 8ea1dfca,dfca,8ea1dfcav,dfcav 63d6 e68f96 63d6 000063d6 b4a5 b4a5 b4a5 b4a5 b4a5 b4a5 b4a5 -3175 b4a6 b4a6 b4a6 * 5f4b * 8ea1dfcb,dfcb,8ea1dfcbv,dfcbv 63ed e68fad 63ed 000063ed b4a6 b4a6 b4a6 b4a6 b4a6 b4a6 b4a6 -3176 b4a7 b4a7 b4a7 * 5f4c * 8ea1dfcc,dfcc,8ea1dfccv,dfccv 63ee e68fae 63ee 000063ee b4a7 b4a7 b4a7 b4a7 b4a7 b4a7 b4a7 -3177 b4a8 b4a8 b4a8 * 5f4d * 8ea1dfcd,dfcd,8ea1dfcdv,dfcdv 6376 e68db6 6376 00006376 b4a8 b4a8 b4a8 b4a8 b4a8 b4a8 b4a8 -3178 b4a9 b4a9 b4a9 * 5f4e * 8ea1dfce,dfce,8ea1dfcev,dfcev 63f4 e68fb4 63f4 000063f4 b4a9 b4a9 b4a9 b4a9 b4a9 b4a9 b4a9 -3179 b4aa b4aa b4aa * 5f4f * 8ea1dfcf,dfcf,8ea1dfcfv,dfcfv 63ea e68faa 63ea 000063ea b4aa b4aa b4aa b4aa b4aa b4aa b4aa -3180 b4ab b4ab b4ab * 5f50 * 8ea1dfd0,dfd0,8ea1dfd0v,dfd0v 63db e68f9b 63db 000063db b4ab b4ab b4ab b4ab b4ab b4ab b4ab -3181 b4ac b4ac b4ac * 5f51 * 8ea1dfd1,dfd1,8ea1dfd1v,dfd1v 6452 e69192 6452 00006452 b4ac b4ac b4ac b4ac b4ac b4ac b4ac -3182 b4ad b4ad b4ad * 5f52 * 8ea1dfd2,dfd2,8ea1dfd2v,dfd2v 63da e68f9a 63da 000063da b4ad b4ad b4ad b4ad b4ad b4ad b4ad -3183 b4ae b4ae b4ae * 5f53 * 8ea1dfd3,dfd3,8ea1dfd3v,dfd3v 63f9 e68fb9 63f9 000063f9 b4ae b4ae b4ae b4ae b4ae b4ae b4ae -3184 b4af b4af b4af * 5f54 * 8ea1dfd4,dfd4,8ea1dfd4v,dfd4v 655e e6959e 655e 0000655e b4af b4af b4af b4af b4af b4af b4af -3185 b4b0 b4b0 b4b0 * 5f55 * 8ea1dfd5,dfd5,8ea1dfd5v,dfd5v 6566 e695a6 6566 00006566 b4b0 b4b0 b4b0 b4b0 b4b0 b4b0 b4b0 -3186 b4b1 b4b1 b4b1 * 5f56 * 8ea1dfd6,dfd6,8ea1dfd6v,dfd6v 6562 e695a2 6562 00006562 b4b1 b4b1 b4b1 b4b1 b4b1 b4b1 b4b1 -3187 b4b2 b4b2 b4b2 * 5f57 * 8ea1dfd7,dfd7,8ea1dfd7v,dfd7v 6563 e695a3 6563 00006563 b4b2 b4b2 b4b2 b4b2 b4b2 b4b2 b4b2 -3188 b4b3 b4b3 b4b3 * 5f58 * 8ea1dfd8,dfd8,8ea1dfd8v,dfd8v 6591 e69691 6591 00006591 b4b3 b4b3 b4b3 b4b3 b4b3 b4b3 b4b3 -3189 b4b4 b4b4 b4b4 * 5f59 * 8ea1dfd9,dfd9,8ea1dfd9v,dfd9v 6590 e69690 6590 00006590 b4b4 b4b4 b4b4 b4b4 b4b4 b4b4 b4b4 -3190 b4b5 b4b5 b4b5 * 5f5a * 8ea1dfda,dfda,8ea1dfdav,dfdav 65af e696af 65af 000065af b4b5 b4b5 b4b5 b4b5 b4b5 b4b5 b4b5 -3191 b4b6 b4b6 b4b6 * 5f5b * 8ea1dfdb,dfdb,8ea1dfdbv,dfdbv 666e e699ae 666e 0000666e b4b6 b4b6 b4b6 b4b6 b4b6 b4b6 b4b6 -3192 b4b7 b4b7 b4b7 * 5f5c * 8ea1dfdc,dfdc,8ea1dfdcv,dfdcv 6670 e699b0 6670 00006670 b4b7 b4b7 b4b7 b4b7 b4b7 b4b7 b4b7 -3193 b4b8 b4b8 b4b8 * 5f5d * 8ea1dfdd,dfdd,8ea1dfddv,dfddv 6674 e699b4,ee86ba 6674,e1ba 00006674,0000e1ba fce2,b4b8 b4b8 b4b8 b4b8 b4b8 b4b8 fce2,b4b8 -3194 b4b9 b4b9 b4b9 * 5f5e * 8ea1dfde,dfde,8ea1dfdev,dfdev 6676 e699b6 6676 00006676 b4b9 b4b9 b4b9 b4b9 b4b9 b4b9 b4b9 -3195 b4ba b4ba b4ba * 5f5f * 8ea1dfdf,dfdf,8ea1dfdfv,dfdfv 666f e699af 666f 0000666f b4ba b4ba b4ba b4ba b4ba b4ba b4ba -3196 b4bb b4bb b4bb * 5f60 * 8ea1dfe0,dfe0,8ea1dfe0v,dfe0v 6691 e69a91 6691 00006691 b4bb b4bb b4bb b4bb b4bb b4bb b4bb -3197 b4bc b4bc b4bc * 5f61 * 8ea1dfe1,dfe1,8ea1dfe1v,dfe1v 667a e699ba 667a 0000667a b4bc b4bc b4bc b4bc b4bc b4bc b4bc -3198 b4bd b4bd b4bd * 5f62 * 8ea1dfe2,dfe2,8ea1dfe2v,dfe2v 667e e699be 667e 0000667e b4bd b4bd b4bd b4bd b4bd b4bd b4bd -3199 b4be b4be b4be * 5f63 * 8ea1dfe3,dfe3,8ea1dfe3v,dfe3v 6677 e699b7 6677 00006677 b4be b4be b4be b4be b4be b4be b4be -3200 b4bf b4bf b4bf * 5f64 * 8ea1dfe4,dfe4,8ea1dfe4v,dfe4v 66fe e69bbe 66fe 000066fe b4bf b4bf b4bf b4bf b4bf b4bf b4bf -3201 b4c0 b4c0 b4c0 * 5f65 * 8ea1dfe5,dfe5,8ea1dfe5v,dfe5v 66ff e69bbf 66ff 000066ff b4c0 b4c0 b4c0 b4c0 b4c0 b4c0 b4c0 -3202 b4c1 b4c1 b4c1 * 5f66 * 8ea1dfe6,dfe6,8ea1dfe6v,dfe6v 671f e69c9f 671f 0000671f b4c1 b4c1 b4c1 b4c1 b4c1 b4c1 b4c1 -3203 b4c2 b4c2 b4c2 * 5f67 * 8ea1dfe7,dfe7,8ea1dfe7v,dfe7v 671d e69c9d 671d 0000671d b4c2 b4c2 b4c2 b4c2 b4c2 b4c2 b4c2 -3204 b4c3 b4c3 b4c3 * 5f68 * 8ea1dfe8,dfe8,8ea1dfe8v,dfe8v 68fa e6a3ba 68fa 000068fa b4c3 b4c3 b4c3 b4c3 b4c3 b4c3 b4c3 -3205 b4c4 b4c4 b4c4 * 5f69 * 8ea1dfe9,dfe9,8ea1dfe9v,dfe9v 68d5 e6a395 68d5 000068d5 b4c4 b4c4 b4c4 b4c4 b4c4 b4c4 b4c4 -3206 b4c5 b4c5 b4c5 * 5f6a * 8ea1dfea,dfea,8ea1dfeav,dfeav 68e0 e6a3a0 68e0 000068e0 b4c5 b4c5 b4c5 b4c5 b4c5 b4c5 b4c5 -3207 b4c6 b4c6 b4c6 * 5f6b * 8ea1dfeb,dfeb,8ea1dfebv,dfebv 68d8 e6a398 68d8 000068d8 b4c6 b4c6 b4c6 b4c6 b4c6 b4c6 b4c6 -3208 b4c7 b4c7 b4c7 * 5f6c * 8ea1dfec,dfec,8ea1dfecv,dfecv 68d7 e6a397 68d7 000068d7 b4c7 b4c7 b4c7 b4c7 b4c7 b4c7 b4c7 -3209 b4c8 b4c8 b4c8 * 5f6d * 8ea1dfed,dfed,8ea1dfedv,dfedv 6905 e6a485 6905 00006905 b4c8 b4c8 b4c8 b4c8 b4c8 b4c8 b4c8 -3210 b4c9 b4c9 b4c9 * 5f6e * 8ea1dfee,dfee,8ea1dfeev,dfeev 68df e6a39f 68df 000068df b4c9 b4c9 b4c9 b4c9 b4c9 b4c9 b4c9 -3211 b4ca b4ca b4ca * 5f6f * 8ea1dfef,dfef,8ea1dfefv,dfefv 68f5 e6a3b5 68f5 000068f5 b4ca b4ca b4ca b4ca b4ca b4ca b4ca -3212 b4cb b4cb b4cb * 5f70 * 8ea1dff0,dff0,8ea1dff0v,dff0v 68ee e6a3ae 68ee 000068ee b4cb b4cb b4cb b4cb b4cb b4cb b4cb -3213 b4cc b4cc b4cc * 5f71 * 8ea1dff1,dff1,8ea1dff1v,dff1v 68e7 e6a3a7 68e7 000068e7 b4cc b4cc b4cc b4cc b4cc b4cc b4cc -3214 b4cd b4cd b4cd * 5f72 * 8ea1dff2,dff2,8ea1dff2v,dff2v 68f9 e6a3b9 68f9 000068f9 b4cd b4cd b4cd b4cd b4cd b4cd b4cd -3215 b4ce b4ce b4ce * 5f73 * 8ea1dff3,dff3,8ea1dff3v,dff3v 68d2 e6a392 68d2 000068d2 b4ce b4ce b4ce b4ce b4ce b4ce b4ce -3216 b4cf b4cf b4cf * 5f74 * 8ea1dff4,dff4,8ea1dff4v,dff4v 68f2 e6a3b2 68f2 000068f2 b4cf b4cf b4cf b4cf b4cf b4cf b4cf -3217 b4d0 b4d0 b4d0 * 5f75 * 8ea1dff5,dff5,8ea1dff5v,dff5v 68e3 e6a3a3 68e3 000068e3 b4d0 b4d0 b4d0 b4d0 b4d0 b4d0 b4d0 -3218 b4d1 b4d1 b4d1 * 5f76 * 8ea1dff6,dff6,8ea1dff6v,dff6v 68cb e6a38b 68cb 000068cb b4d1 b4d1 b4d1 b4d1 b4d1 b4d1 b4d1 -3219 b4d2 b4d2 b4d2 * 5f77 * 8ea1dff7,dff7,8ea1dff7v,dff7v 68cd e6a38d 68cd 000068cd b4d2 b4d2 b4d2 b4d2 b4d2 b4d2 b4d2 -3220 b4d3 b4d3 b4d3 * 5f78 * 8ea1dff8,dff8,8ea1dff8v,dff8v 690d e6a48d 690d 0000690d b4d3 b4d3 b4d3 b4d3 b4d3 b4d3 b4d3 -3221 b4d4 b4d4 b4d4 * 5f79 * 8ea1dff9,dff9,8ea1dff9v,dff9v 6912 e6a492 6912 00006912 b4d4 b4d4 b4d4 b4d4 b4d4 b4d4 b4d4 -3222 b4d5 b4d5 b4d5 * 5f7a * 8ea1dffa,dffa,8ea1dffav,dffav 690e e6a48e 690e 0000690e b4d5 b4d5 b4d5 b4d5 b4d5 b4d5 b4d5 -3223 b4d6 b4d6 b4d6 * 5f7b * 8ea1dffb,dffb,8ea1dffbv,dffbv 68c9 e6a389 68c9 000068c9 b4d6 b4d6 b4d6 b4d6 b4d6 b4d6 b4d6 -3224 b4d7 b4d7 b4d7 * 5f7c * 8ea1dffc,dffc,8ea1dffcv,dffcv 68da e6a39a 68da 000068da b4d7 b4d7 b4d7 b4d7 b4d7 b4d7 b4d7 -3225 b4d8 b4d8 b4d8 * 5f7d * 8ea1dffd,dffd,8ea1dffdv,dffdv 696e e6a5ae 696e 0000696e b4d8 b4d8 b4d8 b4d8 b4d8 b4d8 b4d8 -3226 b4d9 b4d9 b4d9 * 5f7e * 8ea1dffe,dffe,8ea1dffev,dffev 68fb e6a3bb 68fb 000068fb b4d9 b4d9 b4d9 b4d9 b4d9 b4d9 b4d9 -3227 b4da b4da b4da * 6021 * 8ea1e0a1,e0a1,8ea1e0a1v,e0a1v 6b3e e6acbe 6b3e 00006b3e b4da b4da b4da b4da b4da b4da b4da -3228 b4db b4db b4db * 6022 * 8ea1e0a2,e0a2,8ea1e0a2v,e0a2v 6b3a e6acba 6b3a 00006b3a b4db b4db b4db b4db b4db b4db b4db -3229 b4dc b4dc b4dc * 6023 * 8ea1e0a3,e0a3,8ea1e0a3v,e0a3v 6b3d e6acbd 6b3d 00006b3d b4dc b4dc b4dc b4dc b4dc b4dc b4dc -3230 b4dd b4dd b4dd * 6024 * 8ea1e0a4,e0a4,8ea1e0a4v,e0a4v 6b98 e6ae98 6b98 00006b98 b4dd b4dd b4dd b4dd b4dd b4dd b4dd -3231 b4de b4de b4de * 6025 * 8ea1e0a5,e0a5,8ea1e0a5v,e0a5v 6b96 e6ae96 6b96 00006b96 b4de b4de b4de b4de b4de b4de b4de -3232 b4df b4df b4df * 6026 * 8ea1e0a6,e0a6,8ea1e0a6v,e0a6v 6bbc e6aebc 6bbc 00006bbc b4df b4df b4df b4df b4df b4df b4df -3233 b4e0 b4e0 b4e0 * 6027 * 8ea1e0a7,e0a7,8ea1e0a7v,e0a7v 6bef e6afaf 6bef 00006bef b4e0 b4e0 b4e0 b4e0 b4e0 b4e0 b4e0 -3234 b4e1 b4e1 b4e1 * 6028 * 8ea1e0a8,e0a8,8ea1e0a8v,e0a8v 6c2e e6b0ae 6c2e 00006c2e b4e1 b4e1 b4e1 b4e1 b4e1 b4e1 b4e1 -3235 b4e2 b4e2 b4e2 * 6029 * 8ea1e0a9,e0a9,8ea1e0a9v,e0a9v 6c2f e6b0af 6c2f 00006c2f b4e2 b4e2 b4e2 b4e2 b4e2 b4e2 b4e2 -3236 b4e3 b4e3 b4e3 * 602a * 8ea1e0aa,e0aa,8ea1e0aav,e0aav 6c2c e6b0ac 6c2c 00006c2c b4e3 b4e3 b4e3 b4e3 b4e3 b4e3 b4e3 -3237 b4e4 b4e4 b4e4 * 602b * 8ea1e0ab,e0ab,8ea1e0abv,e0abv 6e2f e6b8af,ee88b0 6e2f,e230 00006e2f,0000e230 fdbb,b4e4 b4e4 b4e4 b4e4 b4e4 b4e4 fdbb,b4e4 -3238 b4e5 b4e5 b4e5 * 602c * 8ea1e0ac,e0ac,8ea1e0acv,e0acv 6e38 e6b8b8 6e38 00006e38 b4e5 b4e5 b4e5 b4e5 b4e5 b4e5 b4e5 -3239 b4e6 b4e6 b4e6 * 602d * 8ea1e0ad,e0ad,8ea1e0adv,e0adv 6e54 e6b994 6e54 00006e54 b4e6 b4e6 b4e6 b4e6 b4e6 b4e6 b4e6 -3240 b4e7 b4e7 b4e7 * 602e * 8ea1e0ae,e0ae,8ea1e0aev,e0aev 6e21 e6b8a1 6e21 00006e21 b4e7 b4e7 b4e7 b4e7 b4e7 b4e7 b4e7 -3241 b4e8 b4e8 b4e8 * 602f * 8ea1e0af,e0af,8ea1e0afv,e0afv 6e32 e6b8b2 6e32 00006e32 b4e8 b4e8 b4e8 b4e8 b4e8 b4e8 b4e8 -3242 b4e9 b4e9 b4e9 * 6030 * 8ea1e0b0,e0b0,8ea1e0b0v,e0b0v 6e67 e6b9a7 6e67 00006e67 b4e9 b4e9 b4e9 b4e9 b4e9 b4e9 b4e9 -3243 b4ea b4ea b4ea * 6031 * 8ea1e0b1,e0b1,8ea1e0b1v,e0b1v 6e4a e6b98a 6e4a 00006e4a b4ea b4ea b4ea b4ea b4ea b4ea b4ea -3244 b4eb b4eb b4eb * 6032 * 8ea1e0b2,e0b2,8ea1e0b2v,e0b2v 6e20 e6b8a0 6e20 00006e20 b4eb b4eb b4eb b4eb b4eb b4eb b4eb -3245 b4ec b4ec b4ec * 6033 * 8ea1e0b3,e0b3,8ea1e0b3v,e0b3v 6e25 e6b8a5 6e25 00006e25 b4ec b4ec b4ec b4ec b4ec b4ec b4ec -3246 b4ed b4ed b4ed * 6034 * 8ea1e0b4,e0b4,8ea1e0b4v,e0b4v 6e23 e6b8a3 6e23 00006e23 b4ed b4ed b4ed b4ed b4ed b4ed b4ed -3247 b4ee b4ee b4ee * 6035 * 8ea1e0b5,e0b5,8ea1e0b5v,e0b5v 6e1b e6b89b 6e1b 00006e1b b4ee b4ee b4ee b4ee b4ee b4ee b4ee -3248 b4ef b4ef b4ef * 6036 * 8ea1e0b6,e0b6,8ea1e0b6v,e0b6v 6e5b e6b99b 6e5b 00006e5b b4ef b4ef b4ef b4ef b4ef b4ef b4ef -3249 b4f0 b4f0 b4f0 * 6037 * 8ea1e0b7,e0b7,8ea1e0b7v,e0b7v 6e58 e6b998 6e58 00006e58 b4f0 b4f0 b4f0 b4f0 b4f0 b4f0 b4f0 -3250 b4f1 b4f1 b4f1 * 6038 * 8ea1e0b8,e0b8,8ea1e0b8v,e0b8v 6e24 e6b8a4 6e24 00006e24 b4f1 b4f1 b4f1 b4f1 b4f1 b4f1 b4f1 -3251 b4f2 b4f2 b4f2 * 6039 * 8ea1e0b9,e0b9,8ea1e0b9v,e0b9v 6e56 e6b996 6e56 00006e56 b4f2 b4f2 b4f2 b4f2 b4f2 b4f2 b4f2 -3252 b4f3 b4f3 b4f3 * 603a * 8ea1e0ba,e0ba,8ea1e0bav,e0bav 6e6e e6b9ae 6e6e 00006e6e b4f3 b4f3 b4f3 b4f3 b4f3 b4f3 b4f3 -3253 b4f4 b4f4 b4f4 * 603b * 8ea1e0bb,e0bb,8ea1e0bbv,e0bbv 6e2d e6b8ad 6e2d 00006e2d b4f4 b4f4 b4f4 b4f4 b4f4 b4f4 b4f4 -3254 b4f5 b4f5 b4f5 * 603c * 8ea1e0bc,e0bc,8ea1e0bcv,e0bcv 6e26 e6b8a6 6e26 00006e26 b4f5 b4f5 b4f5 b4f5 b4f5 b4f5 b4f5 -3255 b4f6 b4f6 b4f6 * 603d * 8ea1e0bd,e0bd,8ea1e0bdv,e0bdv 6e6f e6b9af 6e6f 00006e6f b4f6 b4f6 b4f6 b4f6 b4f6 b4f6 b4f6 -3256 b4f7 b4f7 b4f7 * 603e * 8ea1e0be,e0be,8ea1e0bev,e0bev 6e34 e6b8b4 6e34 00006e34 b4f7 b4f7 b4f7 b4f7 b4f7 b4f7 b4f7 -3257 b4f8 b4f8 b4f8 * 603f * 8ea1e0bf,e0bf,8ea1e0bfv,e0bfv 6e4d e6b98d 6e4d 00006e4d b4f8 b4f8 b4f8 b4f8 b4f8 b4f8 b4f8 -3258 b4f9 b4f9 b4f9 * 6040 * 8ea1e0c0,e0c0,8ea1e0c0v,e0c0v 6e3a e6b8ba 6e3a 00006e3a b4f9 b4f9 b4f9 b4f9 b4f9 b4f9 b4f9 -3259 b4fa b4fa b4fa * 6041 * 8ea1e0c1,e0c1,8ea1e0c1v,e0c1v 6e2c e6b8ac 6e2c 00006e2c b4fa b4fa b4fa b4fa b4fa b4fa b4fa -3260 b4fb b4fb b4fb * 6042 * 8ea1e0c2,e0c2,8ea1e0c2v,e0c2v 6e43 e6b983 6e43 00006e43 b4fb b4fb b4fb b4fb b4fb b4fb b4fb -3261 b4fc b4fc b4fc * 6043 * 8ea1e0c3,e0c3,8ea1e0c3v,e0c3v 6e1d e6b89d,ee88ad 6e1d,e22d 00006e1d,0000e22d fdb8,b4fc b4fc b4fc b4fc b4fc b4fc fdb8,b4fc -3262 b4fd b4fd b4fd * 6044 * 8ea1e0c4,e0c4,8ea1e0c4v,e0c4v 6e3e e6b8be 6e3e 00006e3e b4fd b4fd b4fd b4fd b4fd b4fd b4fd -3263 b4fe b4fe b4fe * 6045 * 8ea1e0c5,e0c5,8ea1e0c5v,e0c5v 6ecb e6bb8b 6ecb 00006ecb b4fe b4fe b4fe b4fe b4fe b4fe b4fe -3264 b540 b540 b540 * 6046 * 8ea1e0c6,e0c6,8ea1e0c6v,e0c6v 6e89 e6ba89 6e89 00006e89 b540 b540 b540 b540 b540 b540 b540 -3265 b541 b541 b541 * 6047 * 8ea1e0c7,e0c7,8ea1e0c7v,e0c7v 6e19 e6b899 6e19 00006e19 b541 b541 b541 b541 b541 b541 b541 -3266 b542 b542 b542 * 6048 * 8ea1e0c8,e0c8,8ea1e0c8v,e0c8v 6e4e e6b98e 6e4e 00006e4e b542 b542 b542 b542 b542 b542 b542 -3267 b543 b543 b543 * 6049 * 8ea1e0c9,e0c9,8ea1e0c9v,e0c9v 6e63 e6b9a3 6e63 00006e63 b543 b543 b543 b543 b543 b543 b543 -3268 b544 b544 b544 * 604a * 8ea1e0ca,e0ca,8ea1e0cav,e0cav 6e44 e6b984 6e44 00006e44 b544 b544 b544 b544 b544 b544 b544 -3269 b545 b545 b545 * 604b * 8ea1e0cb,e0cb,8ea1e0cbv,e0cbv 6e72 e6b9b2 6e72 00006e72 b545 b545 b545 b545 b545 b545 b545 -3270 b546 b546 b546 * 604c * 8ea1e0cc,e0cc,8ea1e0ccv,e0ccv 6e69 e6b9a9 6e69 00006e69 b546 b546 b546 b546 b546 b546 b546 -3271 b547 b547 b547 * 604d * 8ea1e0cd,e0cd,8ea1e0cdv,e0cdv 6e5f e6b99f 6e5f 00006e5f b547 b547 b547 b547 b547 b547 b547 -3272 b548 b548 b548 * 604e * 8ea1e0ce,e0ce,8ea1e0cev,e0cev 7119 e78499 7119 00007119 b548 b548 b548 b548 b548 b548 b548 -3273 b549 b549 b549 * 604f * 8ea1e0cf,e0cf,8ea1e0cfv,e0cfv 711a e7849a 711a 0000711a b549 b549 b549 b549 b549 b549 b549 -3274 b54a b54a b54a * 6050 * 8ea1e0d0,e0d0,8ea1e0d0v,e0d0v 7126 e784a6 7126 00007126 b54a b54a b54a b54a b54a b54a b54a -3275 b54b b54b b54b * 6051 * 8ea1e0d1,e0d1,8ea1e0d1v,e0d1v 7130 e784b0 7130 00007130 b54b b54b b54b b54b b54b b54b b54b -3276 b54c b54c b54c * 6052 * 8ea1e0d2,e0d2,8ea1e0d2v,e0d2v 7121 e784a1 7121 00007121 b54c b54c b54c b54c b54c b54c b54c -3277 b54d b54d b54d * 6053 * 8ea1e0d3,e0d3,8ea1e0d3v,e0d3v 7136 e784b6 7136 00007136 b54d b54d b54d b54d b54d b54d b54d -3278 b54e b54e b54e * 6054 * 8ea1e0d4,e0d4,8ea1e0d4v,e0d4v 716e e785ae,ee89a6 716e,e266 0000716e,0000e266 fdf1,b54e b54e b54e b54e b54e b54e fdf1,b54e -3279 b54f b54f b54f * 6055 * 8ea1e0d5,e0d5,8ea1e0d5v,e0d5v 711c e7849c 711c 0000711c b54f b54f b54f b54f b54f b54f b54f -3280 b550 b550 b550 * 6056 * 8ea1e0d6,e0d6,8ea1e0d6v,e0d6v 724c e7898c 724c 0000724c b550 b550 b550 b550 b550 b550 b550 -3281 b551 b551 b551 * 6057 * 8ea1e0d7,e0d7,8ea1e0d7v,e0d7v 7284 e78a84 7284 00007284 b551 b551 b551 b551 b551 b551 b551 -3282 b552 b552 b552 * 6058 * 8ea1e0d8,e0d8,8ea1e0d8v,e0d8v 7280 e78a80 7280 00007280 b552 b552 b552 b552 b552 b552 b552 -3283 b553 b553 b553 * 6059 * 8ea1e0d9,e0d9,8ea1e0d9v,e0d9v 7336 e78cb6 7336 00007336 b553 b553 b553 b553 b553 b553 b553 -3284 b554 b554 b554 * 605a * 8ea1e0da,e0da,8ea1e0dav,e0dav 7325 e78ca5 7325 00007325 b554 b554 b554 b554 b554 b554 b554 -3285 b555 b555 b555 * 605b * 8ea1e0db,e0db,8ea1e0dbv,e0dbv 7334 e78cb4 7334 00007334 b555 b555 b555 b555 b555 b555 b555 -3286 b556 b556 b556 * 605c * 8ea1e0dc,e0dc,8ea1e0dcv,e0dcv 7329 e78ca9 7329 00007329 b556 b556 b556 b556 b556 b556 b556 -3287 b557 b557 b557 * 605d * 8ea1e0dd,e0dd,8ea1e0ddv,e0ddv 743a e790ba 743a 0000743a b557 b557 b557 b557 b557 b557 b557 -3288 b558 b558 b558 * 605e * 8ea1e0de,e0de,8ea1e0dev,e0dev 742a e790aa 742a 0000742a b558 b558 b558 b558 b558 b558 b558 -3289 b559 b559 b559 * 605f * 8ea1e0df,e0df,8ea1e0dfv,e0dfv 7433 e790b3 7433 00007433 b559 b559 b559 b559 b559 b559 b559 -3290 b55a b55a b55a * 6060 * 8ea1e0e0,e0e0,8ea1e0e0v,e0e0v 7422 e790a2 7422 00007422 b55a b55a b55a b55a b55a b55a b55a -3291 b55b b55b b55b * 6061 * 8ea1e0e1,e0e1,8ea1e0e1v,e0e1v 7425 e790a5 7425 00007425 b55b b55b b55b b55b b55b b55b b55b -3292 b55c b55c b55c * 6062 * 8ea1e0e2,e0e2,8ea1e0e2v,e0e2v 7435 e790b5 7435 00007435 b55c b55c b55c b55c b55c b55c b55c -3293 b55d b55d b55d * 6063 * 8ea1e0e3,e0e3,8ea1e0e3v,e0e3v 7436 e790b6 7436 00007436 b55d b55d b55d b55d b55d b55d b55d -3294 b55e b55e b55e * 6064 * 8ea1e0e4,e0e4,8ea1e0e4v,e0e4v 7434 e790b4 7434 00007434 b55e b55e b55e b55e b55e b55e b55e -3295 b55f b55f b55f * 6065 * 8ea1e0e5,e0e5,8ea1e0e5v,e0e5v 742f e790af 742f 0000742f b55f b55f b55f b55f b55f b55f b55f -3296 b560 b560 b560 * 6066 * 8ea1e0e6,e0e6,8ea1e0e6v,e0e6v 741b e7909b 741b 0000741b b560 b560 b560 b560 b560 b560 b560 -3297 b561 b561 b561 * 6067 * 8ea1e0e7,e0e7,8ea1e0e7v,e0e7v 7426 e790a6 7426 00007426 b561 b561 b561 b561 b561 b561 b561 -3298 b562 b562 b562 * 6068 * 8ea1e0e8,e0e8,8ea1e0e8v,e0e8v 7428 e790a8 7428 00007428 b562 b562 b562 b562 b562 b562 b562 -3299 b563 b563 b563 * 6069 * 8ea1e0e9,e0e9,8ea1e0e9v,e0e9v 7525 e794a5 7525 00007525 b563 b563 b563 b563 b563 b563 b563 -3300 b564 b564 b564 * 606a * 8ea1e0ea,e0ea,8ea1e0eav,e0eav 7526 e794a6 7526 00007526 b564 b564 b564 b564 b564 b564 b564 -3301 b565 b565 b565 * 606b * 8ea1e0eb,e0eb,8ea1e0ebv,e0ebv 756b e795ab 756b 0000756b b565 b565 b565 b565 b565 b565 b565 -3302 b566 b566 b566 * 606c * 8ea1e0ec,e0ec,8ea1e0ecv,e0ecv 756a e795aa 756a 0000756a b566 b566 b566 b566 b566 b566 b566 -3303 b567 b567 b567 * 606d * 8ea1e0ed,e0ed,8ea1e0edv,e0edv 75e2 e797a2 75e2 000075e2 b567 b567 b567 b567 b567 b567 b567 -3304 b568 b568 b568 * 606e * 8ea1e0ee,e0ee,8ea1e0eev,e0eev 75db e7979b 75db 000075db b568 b568 b568 b568 b568 b568 b568 -3305 b569 b569 b569 * 606f * 8ea1e0ef,e0ef,8ea1e0efv,e0efv 75e3 e797a3 75e3 000075e3 b569 b569 b569 b569 b569 b569 b569 -3306 b56a b56a b56a * 6070 * 8ea1e0f0,e0f0,8ea1e0f0v,e0f0v 75d9 e79799 75d9 000075d9 b56a b56a b56a b56a b56a b56a b56a -3307 b56b b56b b56b * 6071 * 8ea1e0f1,e0f1,8ea1e0f1v,e0f1v 75d8 e79798 75d8 000075d8 b56b b56b b56b b56b b56b b56b b56b -3308 b56c b56c b56c * 6072 * 8ea1e0f2,e0f2,8ea1e0f2v,e0f2v 75de e7979e 75de 000075de b56c b56c b56c b56c b56c b56c b56c -3309 b56d b56d b56d * 6073 * 8ea1e0f3,e0f3,8ea1e0f3v,e0f3v 75e0 e797a0 75e0 000075e0 b56d b56d b56d b56d b56d b56d b56d -3310 b56e b56e b56e * 6074 * 8ea1e0f4,e0f4,8ea1e0f4v,e0f4v 767b e799bb 767b 0000767b b56e b56e b56e b56e b56e b56e b56e -3311 b56f b56f b56f * 6075 * 8ea1e0f5,e0f5,8ea1e0f5v,e0f5v 767c e799bc 767c 0000767c b56f b56f b56f b56f b56f b56f b56f -3312 b570 b570 b570 * 6076 * 8ea1e0f6,e0f6,8ea1e0f6v,e0f6v 7696 e79a96 7696 00007696 b570 b570 b570 b570 b570 b570 b570 -3313 b571 b571 b571 * 6077 * 8ea1e0f7,e0f7,8ea1e0f7v,e0f7v 7693 e79a93 7693 00007693 b571 b571 b571 b571 b571 b571 b571 -3314 b572 b572 b572 * 6078 * 8ea1e0f8,e0f8,8ea1e0f8v,e0f8v 76b4 e79ab4 76b4 000076b4 b572 b572 b572 b572 b572 b572 b572 -3315 b573 b573 b573 * 6079 * 8ea1e0f9,e0f9,8ea1e0f9v,e0f9v 76dc e79b9c 76dc 000076dc b573 b573 b573 b573 b573 b573 b573 -3316 b574 b574 b574 * 607a * 8ea1e0fa,e0fa,8ea1e0fav,e0fav 774f e79d8f 774f 0000774f b574 b574 b574 b574 b574 b574 b574 -3317 b575 b575 b575 * 607b * 8ea1e0fb,e0fb,8ea1e0fbv,e0fbv 77ed e79fad 77ed 000077ed b575 b575 b575 b575 b575 b575 b575 -3318 b576 b576 b576 * 607c * 8ea1e0fc,e0fc,8ea1e0fcv,e0fcv 785d e7a19d 785d 0000785d b576 b576 b576 b576 b576 b576 b576 -3319 b577 b577 b577 * 607d * 8ea1e0fd,e0fd,8ea1e0fdv,e0fdv 786c e7a1ac 786c 0000786c b577 b577 b577 b577 b577 b577 b577 -3320 b578 b578 b578 * 607e * 8ea1e0fe,e0fe,8ea1e0fev,e0fev 786f e7a1af 786f 0000786f b578 b578 b578 b578 b578 b578 b578 -3321 b579 b579 b579 * 6121 * 8ea1e1a1,e1a1,8ea1e1a1v,e1a1v 7a0d e7a88d 7a0d 00007a0d b579 b579 b579 b579 b579 b579 b579 -3322 b57a b57a b57a * 6122 * 8ea1e1a2,e1a2,8ea1e1a2v,e1a2v 7a08 e7a888 7a08 00007a08 b57a b57a b57a b57a b57a b57a b57a -3323 b57b b57b b57b * 6123 * 8ea1e1a3,e1a3,8ea1e1a3v,e1a3v 7a0b e7a88b 7a0b 00007a0b b57b b57b b57b b57b b57b b57b b57b -3324 b57c b57c b57c * 6124 * 8ea1e1a4,e1a4,8ea1e1a4v,e1a4v 7a05 e7a885 7a05 00007a05 b57c b57c b57c b57c b57c b57c b57c -3325 b57d b57d b57d * 6125 * 8ea1e1a5,e1a5,8ea1e1a5v,e1a5v 7a00 e7a880 7a00 00007a00 b57d b57d b57d b57d b57d b57d b57d -3326 b57e b57e b57e * 6126 * 8ea1e1a6,e1a6,8ea1e1a6v,e1a6v 7a98 e7aa98 7a98 00007a98 b57e b57e b57e b57e b57e b57e b57e -3327 b5a1 b5a1 b5a1 * 6127 * 8ea1e1a7,e1a7,8ea1e1a7v,e1a7v 7a97 e7aa97 7a97 00007a97 b5a1 b5a1 b5a1 b5a1 b5a1 b5a1 b5a1 -3328 b5a2 b5a2 b5a2 * 6128 * 8ea1e1a8,e1a8,8ea1e1a8v,e1a8v 7a96 e7aa96 7a96 00007a96 b5a2 b5a2 b5a2 b5a2 b5a2 b5a2 b5a2 -3329 b5a3 b5a3 b5a3 * 6129 * 8ea1e1a9,e1a9,8ea1e1a9v,e1a9v 7ae5 e7aba5 7ae5 00007ae5 b5a3 b5a3 b5a3 b5a3 b5a3 b5a3 b5a3 -3330 b5a4 b5a4 b5a4 * 612a * 8ea1e1aa,e1aa,8ea1e1aav,e1aav 7ae3 e7aba3 7ae3 00007ae3 b5a4 b5a4 b5a4 b5a4 b5a4 b5a4 b5a4 -3331 b5a5 b5a5 b5a5 * 612b * 8ea1e1ab,e1ab,8ea1e1abv,e1abv 7b49 e7ad89 7b49 00007b49 b5a5 b5a5 b5a5 b5a5 b5a5 b5a5 b5a5 -3332 b5a6 b5a6 b5a6 * 612c * 8ea1e1ac,e1ac,8ea1e1acv,e1acv 7b56 e7ad96 7b56 00007b56 b5a6 b5a6 b5a6 b5a6 b5a6 b5a6 b5a6 -3333 b5a7 b5a7 b5a7 * 612d * 8ea1e1ad,e1ad,8ea1e1adv,e1adv 7b46 e7ad86 7b46 00007b46 b5a7 b5a7 b5a7 b5a7 b5a7 b5a7 b5a7 -3334 b5a8 b5a8 b5a8 * 612e * 8ea1e1ae,e1ae,8ea1e1aev,e1aev 7b50 e7ad90 7b50 00007b50 b5a8 b5a8 b5a8 b5a8 b5a8 b5a8 b5a8 -3335 b5a9 b5a9 b5a9 * 612f * 8ea1e1af,e1af,8ea1e1afv,e1afv 7b52 e7ad92 7b52 00007b52 b5a9 b5a9 b5a9 b5a9 b5a9 b5a9 b5a9 -3336 b5aa b5aa b5aa * 6130 * 8ea1e1b0,e1b0,8ea1e1b0v,e1b0v 7b54 e7ad94 7b54 00007b54 b5aa b5aa b5aa b5aa b5aa b5aa b5aa -3337 b5ab b5ab b5ab * 6131 * 8ea1e1b1,e1b1,8ea1e1b1v,e1b1v 7b4d e7ad8d 7b4d 00007b4d b5ab b5ab b5ab b5ab b5ab b5ab b5ab -3338 b5ac b5ac b5ac * 6132 * 8ea1e1b2,e1b2,8ea1e1b2v,e1b2v 7b4b e7ad8b 7b4b 00007b4b b5ac b5ac,fd77 91ea,b5ac b5ac b5ac b5ac b5ac -3339 b5ad b5ad b5ad * 6133 * 8ea1e1b3,e1b3,8ea1e1b3v,e1b3v 7b4f e7ad8f 7b4f 00007b4f b5ad b5ad b5ad b5ad b5ad b5ad b5ad -3340 b5ae b5ae b5ae * 6134 * 8ea1e1b4,e1b4,8ea1e1b4v,e1b4v 7b51 e7ad91,eeb19e 7b51,ec5e 00007b51,0000ec5e 9d5a,b5ae b5ae b5ae b5ae b5ae b5ae 9d5a,b5ae -3341 b5af b5af b5af * 6135 * 8ea1e1b5,e1b5,8ea1e1b5v,e1b5v 7c9f e7b29f 7c9f 00007c9f b5af b5af b5af b5af b5af b5af b5af -3342 b5b0 b5b0 b5b0 * 6136 * 8ea1e1b6,e1b6,8ea1e1b6v,e1b6v 7ca5 e7b2a5 7ca5 00007ca5 b5b0 b5b0 b5b0 b5b0 b5b0 b5b0 b5b0 -3343 b5b1 b5b1 b5b1 * 6137 * 8ea1e1b7,e1b7,8ea1e1b7v,e1b7v 7d5e e7b59e 7d5e 00007d5e b5b1 b5b1 b5b1 b5b1 b5b1 b5b1 b5b1 -3344 b5b2 b5b2 b5b2 * 6138 * 8ea1e1b8,e1b8,8ea1e1b8v,e1b8v 7d50 e7b590 7d50 00007d50 b5b2 b5b2 b5b2 b5b2 b5b2 b5b2 b5b2 -3345 b5b3 b5b3 b5b3 * 6139 * 8ea1e1b9,e1b9,8ea1e1b9v,e1b9v 7d68 e7b5a8 7d68 00007d68 b5b3 b5b3 b5b3 b5b3 b5b3 b5b3 b5b3 -3346 b5b4 b5b4 b5b4 * 613a * 8ea1e1ba,e1ba,8ea1e1bav,e1bav 7d55 e7b595 7d55 00007d55 b5b4 b5b4 b5b4 b5b4 b5b4 b5b4 b5b4 -3347 b5b5 b5b5 b5b5 * 613b * 8ea1e1bb,e1bb,8ea1e1bbv,e1bbv 7d2b e7b4ab 7d2b 00007d2b b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 b5b5 -3348 b5b6 b5b6 b5b6 * 613c * 8ea1e1bc,e1bc,8ea1e1bcv,e1bcv 7d6e e7b5ae 7d6e 00007d6e b5b6 b5b6 b5b6 b5b6 b5b6 b5b6 b5b6 -3349 b5b7 b5b7 b5b7 * 613d * 8ea1e1bd,e1bd,8ea1e1bdv,e1bdv 7d72 e7b5b2 7d72 00007d72 b5b7 b5b7 b5b7 b5b7 b5b7 b5b7 b5b7 -3350 b5b8 b5b8 b5b8 * 613e * 8ea1e1be,e1be,8ea1e1bev,e1bev 7d61 e7b5a1 7d61 00007d61 b5b8 b5b8 b5b8 b5b8 b5b8 b5b8 b5b8 -3351 b5b9 b5b9 b5b9 * 613f * 8ea1e1bf,e1bf,8ea1e1bfv,e1bfv 7d66 e7b5a6 7d66 00007d66 b5b9 b5b9 b5b9 b5b9 b5b9 b5b9 b5b9 -3352 b5ba b5ba b5ba * 6140 * 8ea1e1c0,e1c0,8ea1e1c0v,e1c0v 7d62 e7b5a2 7d62 00007d62 b5ba b5ba b5ba b5ba b5ba b5ba b5ba -3353 b5bb b5bb b5bb * 6141 * 8ea1e1c1,e1c1,8ea1e1c1v,e1c1v 7d70 e7b5b0 7d70 00007d70 b5bb b5bb b5bb b5bb b5bb b5bb b5bb -3354 b5bc b5bc b5bc * 6142 * 8ea1e1c2,e1c2,8ea1e1c2v,e1c2v 7d73 e7b5b3 7d73 00007d73 b5bc b5bc b5bc b5bc b5bc b5bc b5bc -3355 b5bd b5bd b5bd * 6143 * 8ea1e1c3,e1c3,8ea1e1c3v,e1c3v 5584 e59684 5584 00005584 b5bd b5bd b5bd b5bd b5bd b5bd b5bd -3356 b5be b5be b5be * 6144 * 8ea1e1c4,e1c4,8ea1e1c4v,e1c4v 7fd4 e7bf94 7fd4 00007fd4 b5be b5be b5be b5be b5be b5be b5be -3357 b5bf b5bf b5bf * 6145 * 8ea1e1c5,e1c5,8ea1e1c5v,e1c5v 7fd5 e7bf95 7fd5 00007fd5 b5bf b5bf b5bf b5bf b5bf b5bf b5bf -3358 b5c0 b5c0 b5c0 * 6146 * 8ea1e1c6,e1c6,8ea1e1c6v,e1c6v 800b e8808b 800b 0000800b b5c0 b5c0 b5c0 b5c0 b5c0 b5c0 b5c0 -3359 b5c1 b5c1 b5c1 * 6147 * 8ea1e1c7,e1c7,8ea1e1c7v,e1c7v 8052 e88192 8052 00008052 b5c1 b5c1 b5c1 b5c1 b5c1 b5c1 b5c1 - -8251 d77b d77b d77b * * 387e 8ea2b8fe,8ea2b8fev 8659 e89999 8659 00008659 d77b d77b d77b d77b d77b d77b d77b -8252 d77c d77c d77c * * 3921 8ea2b9a1,8ea2b9a1v 8656 e89996 8656 00008656 d77c d77c d77c d77c d77c d77c d77c -8253 d77d d77d d77d * * 3922 8ea2b9a2,8ea2b9a2v 86bf e89abf 86bf 000086bf d77d d77d d77d d77d d77d d77d d77d -8254 d77e d77e d77e * * 3923 8ea2b9a3,8ea2b9a3v 86b7 e89ab7 86b7 000086b7 d77e d77e d77e d77e d77e d77e d77e -8255 d7a1 d7a1 d7a1 * * 3924 8ea2b9a4,8ea2b9a4v 86c2 e89b82 86c2 000086c2 d7a1 d7a1 d7a1 d7a1 d7a1 d7a1 d7a1 -8256 d7a2 d7a2 d7a2 * * 3925 8ea2b9a5,8ea2b9a5v 86c1 e89b81 86c1 000086c1 d7a2 d7a2 d7a2 d7a2 d7a2 d7a2 d7a2 -8257 d7a3 d7a3 d7a3 * * 3926 8ea2b9a6,8ea2b9a6v 86c5 e89b85 86c5 000086c5 d7a3 d7a3 d7a3 d7a3 d7a3 d7a3 d7a3 -8258 d7a4 d7a4 d7a4 * * 3927 8ea2b9a7,8ea2b9a7v 86ba e89aba 86ba 000086ba d7a4 d7a4 d7a4 d7a4 d7a4 d7a4 d7a4 -8259 d7a5 d7a5 d7a5 * * 3928 8ea2b9a8,8ea2b9a8v 86b0 e89ab0 86b0 000086b0 d7a5 d7a5 d7a5 d7a5 d7a5 d7a5 d7a5 -8260 d7a6 d7a6 d7a6 * * 3929 8ea2b9a9,8ea2b9a9v 86c8 e89b88 86c8 000086c8 d7a6 d7a6 d7a6 d7a6 d7a6 d7a6 d7a6 -8261 d7a7 d7a7 d7a7 * * 392a 8ea2b9aa,8ea2b9aav 86b9 e89ab9 86b9 000086b9 d7a7 d7a7 d7a7 d7a7 d7a7 d7a7 d7a7 -8262 d7a8 d7a8 d7a8 * * 392b 8ea2b9ab,8ea2b9abv 86b3 e89ab3 86b3 000086b3 d7a8 d7a8 d7a8 d7a8 d7a8 d7a8 d7a8 -8263 d7a9 d7a9 d7a9 * * 392c 8ea2b9ac,8ea2b9acv 86b8 e89ab8 86b8 000086b8 d7a9 d7a9 d7a9 d7a9 d7a9 d7a9 d7a9 -8264 d7aa d7aa d7aa * * 392d 8ea2b9ad,8ea2b9adv 86cc e89b8c 86cc 000086cc d7aa d7aa d7aa d7aa d7aa d7aa d7aa -8265 d7ab d7ab d7ab * * 392e 8ea2b9ae,8ea2b9aev 86b4 e89ab4 86b4 000086b4 d7ab d7ab d7ab d7ab d7ab d7ab d7ab -8266 d7ac d7ac d7ac * * 392f 8ea2b9af,8ea2b9afv 86bb e89abb 86bb 000086bb d7ac d7ac d7ac d7ac d7ac d7ac d7ac -8267 d7ad d7ad d7ad * * 3930 8ea2b9b0,8ea2b9b0v 86bc e89abc 86bc 000086bc d7ad d7ad d7ad d7ad d7ad d7ad d7ad -8268 d7ae d7ae d7ae * * 3931 8ea2b9b1,8ea2b9b1v 86c3 e89b83 86c3 000086c3 d7ae d7ae d7ae d7ae d7ae d7ae d7ae -8269 d7af d7af d7af * * 3932 8ea2b9b2,8ea2b9b2v 86bd e89abd 86bd 000086bd d7af d7af d7af d7af d7af d7af d7af -8270 d7b0 d7b0 d7b0 * * 3933 8ea2b9b3,8ea2b9b3v 86be e89abe 86be 000086be d7b0 d7b0 d7b0 d7b0 d7b0 d7b0 d7b0 -8271 d7b1 d7b1 d7b1 * * 3934 8ea2b9b4,8ea2b9b4v 8852 e8a192 8852 00008852 d7b1 d7b1 d7b1 d7b1 d7b1 d7b1 d7b1 -8272 d7b2 d7b2 d7b2 * * 3935 8ea2b9b5,8ea2b9b5v 8889 e8a289 8889 00008889 d7b2 d7b2 d7b2 d7b2 d7b2 d7b2 d7b2 -8273 d7b3 d7b3 d7b3 * * 3936 8ea2b9b6,8ea2b9b6v 8895 e8a295 8895 00008895 d7b3 d7b3 d7b3 d7b3 d7b3 d7b3 d7b3 -8274 d7b4 d7b4 d7b4 * * 3937 8ea2b9b7,8ea2b9b7v 88a8 e8a2a8 88a8 000088a8 d7b4 d7b4 d7b4 d7b4 d7b4 d7b4 d7b4 -8275 d7b5 d7b5 d7b5 * * 3938 8ea2b9b8,8ea2b9b8v 88a2 e8a2a2 88a2 000088a2 d7b5 d7b5 d7b5 d7b5 d7b5 d7b5 d7b5 -8276 d7b6 d7b6 d7b6 * * 3939 8ea2b9b9,8ea2b9b9v 88aa e8a2aa 88aa 000088aa d7b6 d7b6,fddf d7b6 d7b6 d7b6 d7b6 d7b6 -8277 d7b7 d7b7 d7b7 * * 393a 8ea2b9ba,8ea2b9bav 889a e8a29a 889a 0000889a d7b7 d7b7 d7b7 d7b7 d7b7 d7b7 d7b7 -8278 d7b8 d7b8 d7b8 * * 393b 8ea2b9bb,8ea2b9bbv 8891 e8a291 8891 00008891 d7b8 d7b8 d7b8 d7b8 d7b8 d7b8 d7b8 -8279 d7b9 d7b9 d7b9 * * 393c 8ea2b9bc,8ea2b9bcv 88a1 e8a2a1 88a1 000088a1 d7b9 d7b9 d7b9 d7b9 d7b9 d7b9 d7b9 -8280 d7ba d7ba d7ba * * 393d 8ea2b9bd,8ea2b9bdv 889f e8a29f 889f 0000889f d7ba d7ba d7ba d7ba d7ba d7ba d7ba -8281 d7bb d7bb d7bb * * 393e 8ea2b9be,8ea2b9bev 8898 e8a298 8898 00008898 d7bb d7bb d7bb d7bb d7bb d7bb d7bb -8282 d7bc d7bc d7bc * * 393f 8ea2b9bf,8ea2b9bfv 88a7 e8a2a7 88a7 000088a7 d7bc d7bc d7bc d7bc d7bc d7bc d7bc -8283 d7bd d7bd d7bd * * 3940 8ea2b9c0,8ea2b9c0v 8899 e8a299 8899 00008899 d7bd d7bd d7bd d7bd d7bd d7bd d7bd -8284 d7be d7be d7be * * 3941 8ea2b9c1,8ea2b9c1v 889b e8a29b 889b 0000889b d7be d7be d7be d7be d7be d7be d7be -8285 d7bf d7bf d7bf * * 3942 8ea2b9c2,8ea2b9c2v 8897 e8a297 8897 00008897 d7bf d7bf d7bf d7bf d7bf d7bf d7bf -8286 d7c0 d7c0 d7c0 * * 3943 8ea2b9c3,8ea2b9c3v 88a4 e8a2a4 88a4 000088a4 d7c0 d7c0 d7c0 d7c0 d7c0 d7c0 d7c0 -8287 d7c1 d7c1 d7c1 * * 3944 8ea2b9c4,8ea2b9c4v 88ac e8a2ac 88ac 000088ac d7c1 d7c1 d7c1 d7c1 d7c1 d7c1 d7c1 -8288 d7c2 d7c2 d7c2 * * 3945 8ea2b9c5,8ea2b9c5v 888c e8a28c 888c 0000888c d7c2 d7c2 d7c2 d7c2 d7c2 d7c2 d7c2 -8289 d7c3 d7c3 d7c3 * * 3946 8ea2b9c6,8ea2b9c6v 8893 e8a293 8893 00008893 d7c3 d7c3 d7c3 d7c3 d7c3 d7c3 d7c3 -8290 d7c4 d7c4 d7c4 * * 3947 8ea2b9c7,8ea2b9c7v 888e e8a28e 888e 0000888e d7c4 d7c4 d7c4 d7c4 d7c4 d7c4 d7c4 -8291 d7c5 d7c5 d7c5 * * 3948 8ea2b9c8,8ea2b9c8v 8982 e8a682 8982 00008982 d7c5 d7c5 d7c5 d7c5 d7c5 d7c5 d7c5 -8292 d7c6 d7c6 d7c6 * * 3949 8ea2b9c9,8ea2b9c9v 89d6 e8a796 89d6 000089d6 d7c6 d7c6 d7c6 d7c6 d7c6 d7c6 d7c6 -8293 d7c7 d7c7 d7c7 * * 394a 8ea2b9ca,8ea2b9cav 89d9 e8a799 89d9 000089d9 d7c7 d7c7 d7c7 d7c7 d7c7 d7c7 d7c7 -8294 d7c8 d7c8 d7c8 * * 394b 8ea2b9cb,8ea2b9cbv 89d5 e8a795 89d5 000089d5 d7c8 d7c8 d7c8 d7c8 d7c8 d7c8 d7c8 -8295 d7c9 d7c9 d7c9 * * 394c 8ea2b9cc,8ea2b9ccv 8a30 e8a8b0 8a30 00008a30 d7c9 d7c9 d7c9 d7c9 d7c9 d7c9 d7c9 -8296 d7ca d7ca d7ca * * 394d 8ea2b9cd,8ea2b9cdv 8a27 e8a8a7 8a27 00008a27 d7ca d7ca d7ca d7ca d7ca d7ca d7ca -8297 d7cb d7cb d7cb * * 394e 8ea2b9ce,8ea2b9cev 8a2c e8a8ac 8a2c 00008a2c d7cb d7cb d7cb d7cb d7cb d7cb d7cb -8298 d7cc d7cc d7cc * * 394f 8ea2b9cf,8ea2b9cfv 8a1e e8a89e 8a1e 00008a1e d7cc d7cc d7cc d7cc d7cc d7cc d7cc -8299 d7cd d7cd d7cd * * 3950 8ea2b9d0,8ea2b9d0v 8c39 e8b0b9 8c39 00008c39 d7cd d7cd d7cd d7cd d7cd d7cd d7cd -8300 d7ce d7ce d7ce * * 3951 8ea2b9d1,8ea2b9d1v 8c3b e8b0bb 8c3b 00008c3b d7ce d7ce d7ce d7ce d7ce d7ce d7ce -8301 d7cf d7cf d7cf * * 3952 8ea2b9d2,8ea2b9d2v 8c5c e8b19c 8c5c 00008c5c d7cf d7cf d7cf d7cf d7cf d7cf d7cf -8302 d7d0 d7d0 d7d0 * * 3953 8ea2b9d3,8ea2b9d3v 8c5d e8b19d 8c5d 00008c5d d7d0 d7d0 d7d0 d7d0 d7d0 d7d0 d7d0 -8303 d7d1 d7d1 d7d1 * * 3954 8ea2b9d4,8ea2b9d4v 8c7d e8b1bd 8c7d 00008c7d d7d1 d7d1 d7d1 d7d1 d7d1 d7d1 d7d1 -8304 d7d2 d7d2 d7d2 * * 3955 8ea2b9d5,8ea2b9d5v 8ca5 e8b2a5 8ca5 00008ca5 d7d2 d7d2 d7d2 d7d2 d7d2 d7d2 d7d2 -8305 d7d3 d7d3 d7d3 * * 3956 8ea2b9d6,8ea2b9d6v 8d7d e8b5bd 8d7d 00008d7d d7d3 d7d3 d7d3 d7d3 d7d3 d7d3 d7d3 -8306 d7d4 d7d4 d7d4 * * 3957 8ea2b9d7,8ea2b9d7v 8d7b e8b5bb 8d7b 00008d7b d7d4 d7d4 d7d4 d7d4 d7d4 d7d4 d7d4 -8307 d7d5 d7d5 d7d5 * * 3958 8ea2b9d8,8ea2b9d8v 8d79 e8b5b9 8d79 00008d79 d7d5 d7d5 d7d5 d7d5 d7d5 d7d5 d7d5 -8308 d7d6 d7d6 d7d6 * * 3959 8ea2b9d9,8ea2b9d9v 8dbc e8b6bc 8dbc 00008dbc d7d6 d7d6 d7d6 d7d6 d7d6 d7d6 d7d6 -8309 d7d7 d7d7 d7d7 * * 395a 8ea2b9da,8ea2b9dav 8dc2 e8b782 8dc2 00008dc2 d7d7 d7d7 d7d7 d7d7 d7d7 d7d7 d7d7 -8310 d7d8 d7d8 d7d8 * * 395b 8ea2b9db,8ea2b9dbv 8db9 e8b6b9 8db9 00008db9 d7d8 d7d8 d7d8 d7d8 d7d8 d7d8 d7d8 -8311 d7d9 d7d9 d7d9 * * 395c 8ea2b9dc,8ea2b9dcv 8dbf e8b6bf 8dbf 00008dbf d7d9 d7d9 d7d9 d7d9 d7d9 d7d9 d7d9 -8312 d7da d7da d7da * * 395d 8ea2b9dd,8ea2b9ddv 8dc1 e8b781 8dc1 00008dc1 d7da d7da d7da d7da d7da d7da d7da -8313 d7db d7db d7db * * 395e 8ea2b9de,8ea2b9dev 8ed8 e8bb98 8ed8 00008ed8 d7db d7db d7db d7db d7db d7db d7db -8314 d7dc d7dc d7dc * * 395f 8ea2b9df,8ea2b9dfv 8ede e8bb9e 8ede 00008ede d7dc d7dc d7dc d7dc d7dc d7dc d7dc -8315 d7dd d7dd d7dd * * 3960 8ea2b9e0,8ea2b9e0v 8edd e8bb9d 8edd 00008edd d7dd d7dd d7dd d7dd d7dd d7dd d7dd -8316 d7de d7de d7de * * 3961 8ea2b9e1,8ea2b9e1v 8edc e8bb9c 8edc 00008edc d7de d7de d7de d7de d7de d7de d7de -8317 d7df d7df d7df * * 3962 8ea2b9e2,8ea2b9e2v 8ed7 e8bb97 8ed7 00008ed7 d7df d7df d7df d7df d7df d7df d7df -8318 d7e0 d7e0 d7e0 * * 3963 8ea2b9e3,8ea2b9e3v 8ee0 e8bba0 8ee0 00008ee0 d7e0 d7e0 d7e0 d7e0 d7e0 d7e0 d7e0 -8319 d7e1 d7e1 d7e1 * * 3964 8ea2b9e4,8ea2b9e4v 8ee1 e8bba1 8ee1 00008ee1 d7e1 d7e1 d7e1 d7e1 d7e1 d7e1 d7e1 -8320 d7e2 d7e2 d7e2 * * 3965 8ea2b9e5,8ea2b9e5v 9024 e980a4 9024 00009024 d7e2 d7e2 d7e2 d7e2 d7e2 d7e2 d7e2 -8321 d7e3 d7e3 d7e3 * * 3966 8ea2b9e6,8ea2b9e6v 900b e9808b 900b 0000900b d7e3 d7e3 d7e3 d7e3 d7e3 d7e3 d7e3 -8322 d7e4 d7e4 d7e4 * * 3967 8ea2b9e7,8ea2b9e7v 9011 e98091 9011 00009011 d7e4 d7e4 d7e4 d7e4 d7e4 d7e4 d7e4 -8323 d7e5 d7e5 d7e5 * * 3968 8ea2b9e8,8ea2b9e8v 901c e9809c 901c 0000901c d7e5 d7e5 d7e5 d7e5 d7e5 d7e5 d7e5 -8324 d7e6 d7e6 d7e6 * * 3969 8ea2b9e9,8ea2b9e9v 900c e9808c 900c 0000900c d7e6 d7e6 d7e6 d7e6 d7e6 d7e6 d7e6 -8325 d7e7 d7e7 d7e7 * * 396a 8ea2b9ea,8ea2b9eav 9021 e980a1 9021 00009021 d7e7 d7e7 d7e7 d7e7 d7e7 d7e7 d7e7 -8326 d7e8 d7e8 d7e8 * * 396b 8ea2b9eb,8ea2b9ebv 90ef e983af 90ef 000090ef d7e8 d7e8 d7e8 d7e8 d7e8 d7e8 d7e8 -8327 d7e9 d7e9 d7e9 * * 396c 8ea2b9ec,8ea2b9ecv 90ea e983aa 90ea 000090ea d7e9 d7e9 d7e9 d7e9 d7e9 d7e9 d7e9 -8328 d7ea d7ea d7ea * * 396d 8ea2b9ed,8ea2b9edv 90f0 e983b0 90f0 000090f0 d7ea d7ea d7ea d7ea d7ea d7ea d7ea -8329 d7eb d7eb d7eb * * 396e 8ea2b9ee,8ea2b9eev 90f4 e983b4 90f4 000090f4 d7eb d7eb d7eb d7eb d7eb d7eb d7eb -8330 d7ec d7ec d7ec * * 396f 8ea2b9ef,8ea2b9efv 90f2 e983b2 90f2 000090f2 d7ec d7ec d7ec d7ec d7ec d7ec d7ec -8331 d7ed d7ed d7ed * * 3970 8ea2b9f0,8ea2b9f0v 90f3 e983b3 90f3 000090f3 d7ed d7ed d7ed d7ed d7ed d7ed d7ed -8332 d7ee d7ee d7ee * * 3971 8ea2b9f1,8ea2b9f1v 90d4 e98394 90d4 000090d4 d7ee d7ee d7ee d7ee d7ee d7ee d7ee -8333 d7ef d7ef d7ef * * 3972 8ea2b9f2,8ea2b9f2v 90eb e983ab 90eb 000090eb d7ef d7ef d7ef d7ef d7ef d7ef d7ef -8334 d7f0 d7f0 d7f0 * * 3973 8ea2b9f3,8ea2b9f3v 90ec e983ac 90ec 000090ec d7f0 d7f0 d7f0 d7f0 d7f0 d7f0 d7f0 -8335 d7f1 d7f1 d7f1 * * 3974 8ea2b9f4,8ea2b9f4v 90e9 e983a9 90e9 000090e9 d7f1 d7f1 d7f1 d7f1 d7f1 d7f1 d7f1 -8336 d7f2 d7f2 d7f2 * * 3975 8ea2b9f5,8ea2b9f5v 9156 e98596 9156 00009156 d7f2 d7f2 d7f2 d7f2 d7f2 d7f2 d7f2 -8337 d7f3 d7f3 d7f3 * * 3976 8ea2b9f6,8ea2b9f6v 9158 e98598 9158 00009158 d7f3 d7f3 d7f3 d7f3 d7f3 d7f3 d7f3 -8338 d7f4 d7f4 d7f4 * * 3977 8ea2b9f7,8ea2b9f7v 915a e9859a 915a 0000915a d7f4 d7f4 d7f4 d7f4 d7f4 d7f4 d7f4 -8339 d7f5 d7f5 d7f5 * * 3978 8ea2b9f8,8ea2b9f8v 9153 e98593 9153 00009153 d7f5 d7f5 d7f5 d7f5 d7f5 d7f5 d7f5 -8340 d7f6 d7f6 d7f6 * * 3979 8ea2b9f9,8ea2b9f9v 9155 e98595 9155 00009155 d7f6 d7f6 d7f6 d7f6 d7f6 d7f6 d7f6 -8341 d7f7 d7f7 d7f7 * * 397a 8ea2b9fa,8ea2b9fav 91ec e987ac 91ec 000091ec d7f7 d7f7 d7f7 d7f7 d7f7 d7f7 d7f7 -8342 d7f8 d7f8 d7f8 * * 397b 8ea2b9fb,8ea2b9fbv 91f4 e987b4 91f4 000091f4 d7f8 d7f8 d7f8 d7f8 d7f8 d7f8 d7f8 -8343 d7f9 d7f9 d7f9 * * 397c 8ea2b9fc,8ea2b9fcv 91f1 e987b1 91f1 000091f1 d7f9 d7f9 d7f9 d7f9 d7f9 d7f9 d7f9 -8344 d7fa d7fa d7fa * * 397d 8ea2b9fd,8ea2b9fdv 91f3 e987b3 91f3 000091f3 d7fa d7fa d7fa d7fa d7fa d7fa d7fa -8345 d7fb d7fb d7fb * * 397e 8ea2b9fe,8ea2b9fev 91f8 e987b8 91f8 000091f8 d7fb d7fb d7fb d7fb d7fb d7fb d7fb -8346 d7fc d7fc d7fc * * 3a21 8ea2baa1,8ea2baa1v 91e4 e987a4 91e4 000091e4 d7fc d7fc d7fc d7fc d7fc d7fc d7fc -8347 d7fd d7fd d7fd * * 3a22 8ea2baa2,8ea2baa2v 91f9 e987b9 91f9 000091f9 d7fd d7fd d7fd d7fd d7fd d7fd d7fd -8348 d7fe d7fe d7fe * * 3a23 8ea2baa3,8ea2baa3v 91ea e987aa 91ea 000091ea d7fe d7fe d7fe d7fe d7fe d7fe d7fe -8349 d840 d840 d840 * * 3a24 8ea2baa4,8ea2baa4v 91eb e987ab 91eb 000091eb d840 d840 d840 d840 d840 d840 d840 -8350 d841 d841 d841 * * 3a25 8ea2baa5,8ea2baa5v 91f7 e987b7 91f7 000091f7 d841 d841 d841 d841 d841 d841 d841 -8351 d842 d842 d842 * * 3a26 8ea2baa6,8ea2baa6v 91e8 e987a8 91e8 000091e8 d842 d842 d842 d842 d842 d842 d842 -8352 d843 d843 d843 * * 3a27 8ea2baa7,8ea2baa7v 91ee e987ae 91ee 000091ee d843 d843 d843 d843 d843 d843 d843 -8353 d844 d844 d844 * * 3a28 8ea2baa8,8ea2baa8v 957a e995ba 957a 0000957a d844 d844 d844 d844 d844 d844 d844 -8354 d845 d845 d845 * * 3a29 8ea2baa9,8ea2baa9v 9586 e99686 9586 00009586 d845 d845 d845 d845 d845 d845 d845 -8355 d846 d846 d846 * * 3a2a 8ea2baaa,8ea2baaav 9588 e99688 9588 00009588 d846 d846 d846 d846 d846 d846 d846 -8356 d847 d847 d847 * * 3a2b 8ea2baab,8ea2baabv 967c e999bc 967c 0000967c d847 d847 d847 d847 d847 d847 d847 -8357 d848 d848 d848 * * 3a2c 8ea2baac,8ea2baacv 966d e999ad 966d 0000966d d848 d848 d848 d848 d848 d848 d848 -8358 d849 d849 d849 * * 3a2d 8ea2baad,8ea2baadv 966b e999ab 966b 0000966b d849 d849 d849 d849 d849 d849 d849 -8359 d84a d84a d84a * * 3a2e 8ea2baae,8ea2baaev 9671 e999b1 9671 00009671 d84a d84a d84a d84a d84a d84a d84a -8360 d84b d84b d84b * * 3a2f 8ea2baaf,8ea2baafv 966f e999af 966f 0000966f d84b d84b d84b d84b d84b d84b d84b -8361 d84c d84c d84c * * 3a30 8ea2bab0,8ea2bab0v 96bf e99abf 96bf 000096bf d84c d84c d84c d84c d84c d84c d84c -8362 d84d d84d d84d * * 3a31 8ea2bab1,8ea2bab1v 976a e99daa 976a 0000976a d84d d84d d84d d84d d84d d84d d84d -8363 d84e d84e d84e * * 3a32 8ea2bab2,8ea2bab2v 9804 e9a084 9804 00009804 d84e d84e d84e d84e d84e d84e d84e -8364 d84f d84f d84f * * 3a33 8ea2bab3,8ea2bab3v 98e5 e9a3a5 98e5 000098e5 d84f d84f d84f d84f d84f d84f d84f -8365 d850 d850 d850 * * 3a34 8ea2bab4,8ea2bab4v 9997 e9a697 9997 00009997 d850 d850 d850 d850 d850 d850 d850 -8366 d851 d851 d851 * * 3a35 8ea2bab5,8ea2bab5v 509b e5829b 509b 0000509b d851 d851 d851 d851 d851 d851 d851 -8367 d852 d852 d852 * * 3a36 8ea2bab6,8ea2bab6v 5095 e58295 5095 00005095 d852 d852 d852 d852 d852 d852 d852 -8368 d853 d853 d853 * * 3a37 8ea2bab7,8ea2bab7v 5094 e58294 5094 00005094 d853 d853 d853 d853 d853 d853 d853 -8369 d854 d854 d854 * * 3a38 8ea2bab8,8ea2bab8v 509e e5829e 509e 0000509e d854 d854 d854 d854 d854 d854 d854 -8370 d855 d855 d855 * * 3a39 8ea2bab9,8ea2bab9v 508b e5828b 508b 0000508b d855 d855 d855 d855 d855 d855 d855 -8371 d856 d856 d856 * * 3a3a 8ea2baba,8ea2babav 50a3 e582a3 50a3 000050a3 d856 d856 d856 d856 d856 d856 d856 -8372 d857 d857 d857 * * 3a3b 8ea2babb,8ea2babbv 5083 e58283 5083 00005083 d857 d857 d857 d857 d857 d857 d857 -8373 d858 d858 d858 * * 3a3c 8ea2babc,8ea2babcv 508c e5828c 508c 0000508c d858 d858 d858 d858 d858 d858 d858 -8374 d859 d859 d859 * * 3a3d 8ea2babd,8ea2babdv 508e e5828e 508e 0000508e d859 d859 d859 d859 d859 d859 d859 -8375 d85a d85a d85a * * 3a3e 8ea2babe,8ea2babev 509d e5829d 509d 0000509d d85a d85a d85a d85a d85a d85a d85a -8376 d85b d85b d85b * * 3a3f 8ea2babf,8ea2babfv 5068 e581a8 5068 00005068 d85b d85b d85b d85b d85b d85b d85b -8377 d85c d85c d85c * * 3a40 8ea2bac0,8ea2bac0v 509c e5829c 509c 0000509c d85c d85c d85c d85c d85c d85c d85c -8378 d85d d85d d85d * * 3a41 8ea2bac1,8ea2bac1v 5092 e58292 5092 00005092 d85d d85d d85d d85d d85d d85d d85d -8379 d85e d85e d85e * * 3a42 8ea2bac2,8ea2bac2v 5082 e58282 5082 00005082 d85e d85e d85e d85e d85e d85e d85e -8380 d85f d85f d85f * * 3a43 8ea2bac3,8ea2bac3v 5087 e58287 5087 00005087 d85f d85f d85f d85f d85f d85f d85f -8381 d860 d860 d860 * * 3a44 8ea2bac4,8ea2bac4v 515f e5859f 515f 0000515f d860 d860 d860 d860 d860 d860 d860 -8382 d861 d861 d861 * * 3a45 8ea2bac5,8ea2bac5v 51d4 e58794 51d4 000051d4 d861 d861 d861 d861 d861 d861 d861 -8383 d862 d862 d862 * * 3a46 8ea2bac6,8ea2bac6v 5312 e58c92 5312 00005312 d862 d862 d862 d862 d862 d862 d862 -8384 d863 d863 d863 * * 3a47 8ea2bac7,8ea2bac7v 5311 e58c91 5311 00005311 d863 d863 d863 d863 d863 d863 d863 -8385 d864 d864 d864 * * 3a48 8ea2bac8,8ea2bac8v 53a4 e58ea4 53a4 000053a4 d864 d864 d864 d864 d864 d864 d864 -8386 d865 d865 d865 * * 3a49 8ea2bac9,8ea2bac9v 53a7 e58ea7 53a7 000053a7 d865 d865 d865 d865 d865 d865 d865 -8387 d866 d866 d866 * * 3a4a 8ea2baca,8ea2bacav 5591 e59691 5591 00005591 d866 d866 d866 d866 d866 d866 d866 -8388 d867 d867 d867 * * 3a4b 8ea2bacb,8ea2bacbv 55a8 e596a8 55a8 000055a8 d867 d867 d867 d867 d867 d867 d867 -8389 d868 d868 d868 * * 3a4c 8ea2bacc,8ea2baccv 55a5 e596a5 55a5 000055a5 d868 d868 d868 d868 d868 d868 d868 -8390 d869 d869 d869 * * 3a4d 8ea2bacd,8ea2bacdv 55ad e596ad 55ad 000055ad d869 d869 d869 d869 d869 d869 d869 -8391 d86a d86a d86a * * 3a4e 8ea2bace,8ea2bacev 5577 e595b7 5577 00005577 d86a d86a d86a d86a d86a d86a d86a -8392 d86b d86b d86b * * 3a4f 8ea2bacf,8ea2bacfv 5645 e59985 5645 00005645 d86b d86b d86b d86b d86b d86b d86b -8393 d86c d86c d86c * * 3a50 8ea2bad0,8ea2bad0v 55a2 e596a2 55a2 000055a2 d86c d86c d86c d86c d86c d86c d86c -8394 d86d d86d d86d * * 3a51 8ea2bad1,8ea2bad1v 5593 e59693 5593 00005593 d86d d86d d86d d86d d86d d86d d86d -8395 d86e d86e d86e * * 3a52 8ea2bad2,8ea2bad2v 5588 e59688 5588 00005588 d86e d86e d86e d86e d86e d86e d86e -8396 d86f d86f d86f * * 3a53 8ea2bad3,8ea2bad3v 558f e5968f 558f 0000558f d86f d86f d86f d86f d86f d86f d86f -8397 d870 d870 d870 * * 3a54 8ea2bad4,8ea2bad4v 55b5 e596b5 55b5 000055b5 d870 d870 d870 d870 d870 d870 d870 -8398 d871 d871 d871 * * 3a55 8ea2bad5,8ea2bad5v 5581 e59681 5581 00005581 d871 d871 d871 d871 d871 d871 d871 -8399 d872 d872 d872 * * 3a56 8ea2bad6,8ea2bad6v 55a3 e596a3 55a3 000055a3 d872 d872 d872 d872 d872 d872 d872 -8400 d873 d873 d873 * * 3a57 8ea2bad7,8ea2bad7v 5592 e59692 5592 00005592 d873 d873 d873 d873 d873 d873 d873 -8401 d874 d874 d874 * * 3a58 8ea2bad8,8ea2bad8v 55a4 e596a4 55a4 000055a4 d874 d874 d874 d874 d874 d874 d874 -8402 d875 d875 d875 * * 3a59 8ea2bad9,8ea2bad9v 557d e595bd 557d 0000557d d875 d875 d875 d875 d875 d875 d875 -8403 d876 d876 d876 * * 3a5a 8ea2bada,8ea2badav 558c e5968c 558c 0000558c d876 d876 d876 d876 d876 d876 d876 -8404 d877 d877 d877 * * 3a5b 8ea2badb,8ea2badbv 55a6 e596a6 55a6 000055a6 d877 d877 d877 d877 d877 d877 d877 -8405 d878 d878 d878 * * 3a5c 8ea2badc,8ea2badcv 557f e595bf 557f 0000557f d878 d878 d878 d878 d878 d878 d878 -8406 d879 d879 d879 * * 3a5d 8ea2badd,8ea2baddv 5595 e59695 5595 00005595 d879 d879 d879 d879 d879 d879 d879 -8407 d87a d87a d87a * * 3a5e 8ea2bade,8ea2badev 55a1 e596a1 55a1 000055a1 d87a d87a d87a d87a d87a d87a d87a -8408 d87b d87b d87b * * 3a5f 8ea2badf,8ea2badfv 558e e5968e 558e 0000558e d87b d87b d87b d87b d87b d87b d87b -8409 d87c d87c d87c * * 3a60 8ea2bae0,8ea2bae0v 570c e59c8c 570c 0000570c d87c d87c d87c d87c d87c d87c d87c -8410 d87d d87d d87d * * 3a61 8ea2bae1,8ea2bae1v 5829 e5a0a9 5829 00005829 d87d d87d d87d d87d d87d d87d d87d -8411 d87e d87e d87e * * 3a62 8ea2bae2,8ea2bae2v 5837 e5a0b7 5837 00005837 d87e d87e d87e d87e d87e d87e d87e -8412 d8a1 d8a1 d8a1 * * 3a63 8ea2bae3,8ea2bae3v 5819 e5a099 5819 00005819 d8a1 d8a1 d8a1 d8a1 d8a1 d8a1 d8a1 -8413 d8a2 d8a2 d8a2 * * 3a64 8ea2bae4,8ea2bae4v 581e e5a09e 581e 0000581e d8a2 d8a2 d8a2 d8a2 d8a2 d8a2 d8a2 -8414 d8a3 d8a3 d8a3 * * 3a65 8ea2bae5,8ea2bae5v 5827 e5a0a7 5827 00005827 d8a3 d8a3 d8a3 d8a3 d8a3 d8a3 d8a3 -8415 d8a4 d8a4 d8a4 * * 3a66 8ea2bae6,8ea2bae6v 5823 e5a0a3 5823 00005823 d8a4 d8a4 d8a4 d8a4 d8a4 d8a4 d8a4 -8416 d8a5 d8a5 d8a5 * * 3a67 8ea2bae7,8ea2bae7v 5828 e5a0a8 5828 00005828 d8a5 d8a5 d8a5 d8a5 d8a5 d8a5 d8a5 -8417 d8a6 d8a6 d8a6 * * 3a68 8ea2bae8,8ea2bae8v 57f5 e59fb5 57f5 000057f5 d8a6 d8a6 d8a6 d8a6 d8a6 d8a6 d8a6 -8418 d8a7 d8a7 d8a7 * * 3a69 8ea2bae9,8ea2bae9v 5848 e5a188 5848 00005848 d8a7 d8a7 d8a7 d8a7 d8a7 d8a7 d8a7 -8419 d8a8 d8a8 d8a8 * * 3a6a 8ea2baea,8ea2baeav 5825 e5a0a5 5825 00005825 d8a8 d8a8 d8a8 d8a8 d8a8 d8a8 d8a8 -8420 d8a9 d8a9 d8a9 * * 3a6b 8ea2baeb,8ea2baebv 581c e5a09c 581c 0000581c d8a9 d8a9 d8a9 d8a9 d8a9 d8a9 d8a9 -8421 d8aa d8aa d8aa * * 3a6c 8ea2baec,8ea2baecv 581b e5a09b 581b 0000581b d8aa d8aa d8aa d8aa d8aa d8aa d8aa -8422 d8ab d8ab d8ab * * 3a6d 8ea2baed,8ea2baedv 5833 e5a0b3 5833 00005833 d8ab d8ab d8ab d8ab d8ab d8ab d8ab -8423 d8ac d8ac d8ac * * 3a6e 8ea2baee,8ea2baeev 583f e5a0bf 583f 0000583f d8ac d8ac d8ac d8ac d8ac d8ac d8ac -8424 d8ad d8ad d8ad * * 3a6f 8ea2baef,8ea2baefv 5836 e5a0b6 5836 00005836 d8ad d8ad d8ad d8ad d8ad d8ad d8ad -8425 d8ae d8ae d8ae * * 3a70 8ea2baf0,8ea2baf0v 582e e5a0ae 582e 0000582e d8ae d8ae d8ae d8ae d8ae d8ae d8ae -8426 d8af d8af d8af * * 3a71 8ea2baf1,8ea2baf1v 5839 e5a0b9 5839 00005839 d8af d8af d8af d8af d8af d8af d8af -8427 d8b0 d8b0 d8b0 * * 3a72 8ea2baf2,8ea2baf2v 5838 e5a0b8 5838 00005838 d8b0 d8b0 d8b0 d8b0 d8b0 d8b0 d8b0 -8428 d8b1 d8b1 d8b1 * * 3a73 8ea2baf3,8ea2baf3v 582d e5a0ad 582d 0000582d d8b1 d8b1 d8b1 d8b1 d8b1 d8b1 d8b1 -8429 d8b2 d8b2 d8b2 * * 3a74 8ea2baf4,8ea2baf4v 582c e5a0ac 582c 0000582c d8b2 d8b2 d8b2 d8b2 d8b2 d8b2 d8b2 -8430 d8b3 d8b3 d8b3 * * 3a75 8ea2baf5,8ea2baf5v 583b e5a0bb 583b 0000583b d8b3 d8b3 d8b3 d8b3 d8b3 d8b3 d8b3 -8431 d8b4 d8b4 d8b4 * * 3a76 8ea2baf6,8ea2baf6v 5961 e5a5a1 5961 00005961 d8b4 d8b4 d8b4 d8b4 d8b4 d8b4 d8b4 -8432 d8b5 d8b5 d8b5 * * 3a77 8ea2baf7,8ea2baf7v 5aaf e5aaaf 5aaf 00005aaf d8b5 d8b5 d8b5 d8b5 d8b5 d8b5 d8b5 -8433 d8b6 d8b6 d8b6 * * 3a78 8ea2baf8,8ea2baf8v 5a94 e5aa94 5a94 00005a94 d8b6 d8b6 d8b6 d8b6 d8b6 d8b6 d8b6 -8434 d8b7 d8b7 d8b7 * * 3a79 8ea2baf9,8ea2baf9v 5a9f e5aa9f 5a9f 00005a9f d8b7 d8b7 d8b7 d8b7 d8b7 d8b7 d8b7 -8435 d8b8 d8b8 d8b8 * * 3a7a 8ea2bafa,8ea2bafav 5a7a e5a9ba 5a7a 00005a7a d8b8 d8b8 d8b8 d8b8 d8b8 d8b8 d8b8 -8436 d8b9 d8b9 d8b9 * * 3a7b 8ea2bafb,8ea2bafbv 5aa2 e5aaa2 5aa2 00005aa2 d8b9 d8b9 d8b9 d8b9 d8b9 d8b9 d8b9 -8437 d8ba d8ba d8ba * * 3a7c 8ea2bafc,8ea2bafcv 5a9e e5aa9e 5a9e 00005a9e d8ba d8ba d8ba d8ba d8ba d8ba d8ba -8438 d8bb d8bb d8bb * * 3a7d 8ea2bafd,8ea2bafdv 5a78 e5a9b8 5a78 00005a78 d8bb d8bb d8bb d8bb d8bb d8bb d8bb -8439 d8bc d8bc d8bc * * 3a7e 8ea2bafe,8ea2bafev 5aa6 e5aaa6 5aa6 00005aa6 d8bc d8bc d8bc d8bc d8bc d8bc d8bc -8440 d8bd d8bd d8bd * * 3b21 8ea2bba1,8ea2bba1v 5a7c e5a9bc 5a7c 00005a7c d8bd d8bd d8bd d8bd d8bd d8bd d8bd -8441 d8be d8be d8be * * 3b22 8ea2bba2,8ea2bba2v 5aa5 e5aaa5 5aa5 00005aa5 d8be d8be d8be d8be d8be d8be d8be -8442 d8bf d8bf d8bf * * 3b23 8ea2bba3,8ea2bba3v 5aac e5aaac 5aac 00005aac d8bf d8bf d8bf d8bf d8bf d8bf d8bf -8443 d8c0 d8c0 d8c0 * * 3b24 8ea2bba4,8ea2bba4v 5a95 e5aa95 5a95 00005a95 d8c0 d8c0 d8c0 d8c0 d8c0 d8c0 d8c0 -8444 d8c1 d8c1 d8c1 * * 3b25 8ea2bba5,8ea2bba5v 5aae e5aaae 5aae 00005aae d8c1 d8c1 d8c1 d8c1 d8c1 d8c1 d8c1 -8445 d8c2 d8c2 d8c2 * * 3b26 8ea2bba6,8ea2bba6v 5a37 e5a8b7 5a37 00005a37 d8c2 d8c2 d8c2 d8c2 d8c2 d8c2 d8c2 -8446 d8c3 d8c3 d8c3 * * 3b27 8ea2bba7,8ea2bba7v 5a84 e5aa84 5a84 00005a84 d8c3 d8c3 d8c3 d8c3 d8c3 d8c3 d8c3 -8447 d8c4 d8c4 d8c4 * * 3b28 8ea2bba8,8ea2bba8v 5a8a e5aa8a 5a8a 00005a8a d8c4 d8c4 d8c4 d8c4 d8c4 d8c4 d8c4 -8448 d8c5 d8c5 d8c5 * * 3b29 8ea2bba9,8ea2bba9v 5a97 e5aa97 5a97 00005a97 d8c5 d8c5 d8c5 d8c5 d8c5 d8c5 d8c5 -8449 d8c6 d8c6 d8c6 * * 3b2a 8ea2bbaa,8ea2bbaav 5a83 e5aa83 5a83 00005a83 d8c6 d8c6 d8c6 d8c6 d8c6 d8c6 d8c6 -8450 d8c7 d8c7 d8c7 * * 3b2b 8ea2bbab,8ea2bbabv 5a8b e5aa8b 5a8b 00005a8b d8c7 d8c7 d8c7 d8c7 d8c7 d8c7 d8c7 -8451 d8c8 d8c8 d8c8 * * 3b2c 8ea2bbac,8ea2bbacv 5aa9 e5aaa9 5aa9 00005aa9 d8c8 d8c8 d8c8 d8c8 d8c8 d8c8 d8c8 -8452 d8c9 d8c9 d8c9 * * 3b2d 8ea2bbad,8ea2bbadv 5a7b e5a9bb 5a7b 00005a7b d8c9 d8c9 d8c9 d8c9 d8c9 d8c9 d8c9 -8453 d8ca d8ca d8ca * * 3b2e 8ea2bbae,8ea2bbaev 5a7d e5a9bd 5a7d 00005a7d d8ca d8ca d8ca d8ca d8ca d8ca d8ca -8454 d8cb d8cb d8cb * * 3b2f 8ea2bbaf,8ea2bbafv 5a8c e5aa8c 5a8c 00005a8c d8cb d8cb d8cb d8cb d8cb d8cb d8cb -8455 d8cc d8cc d8cc * * 3b30 8ea2bbb0,8ea2bbb0v 5a9c e5aa9c 5a9c 00005a9c d8cc d8cc d8cc d8cc d8cc d8cc d8cc -8456 d8cd d8cd d8cd * * 3b31 8ea2bbb1,8ea2bbb1v 5a8f e5aa8f 5a8f 00005a8f d8cd d8cd d8cd d8cd d8cd d8cd d8cd -8457 d8ce d8ce d8ce * * 3b32 8ea2bbb2,8ea2bbb2v 5a93 e5aa93 5a93 00005a93 d8ce d8ce d8ce d8ce d8ce d8ce d8ce -8458 d8cf d8cf d8cf * * 3b33 8ea2bbb3,8ea2bbb3v 5a9d e5aa9d 5a9d 00005a9d d8cf d8cf d8cf d8cf d8cf d8cf d8cf -8459 d8d0 d8d0 d8d0 * * 3b34 8ea2bbb4,8ea2bbb4v 5bea e5afaa 5bea 00005bea d8d0 d8d0 d8d0 d8d0 d8d0 d8d0 d8d0 -8460 d8d1 d8d1 d8d1 * * 3b35 8ea2bbb5,8ea2bbb5v 5bcd e5af8d 5bcd 00005bcd d8d1 d8d1 d8d1 d8d1 d8d1 d8d1 d8d1 -8461 d8d2 d8d2 d8d2 * * 3b36 8ea2bbb6,8ea2bbb6v 5bcb e5af8b 5bcb 00005bcb d8d2 d8d2 d8d2 d8d2 d8d2 d8d2 d8d2 -8462 d8d3 d8d3 d8d3 * * 3b37 8ea2bbb7,8ea2bbb7v 5bd4 e5af94 5bd4 00005bd4 d8d3 d8d3 d8d3 d8d3 d8d3 d8d3 d8d3 -8463 d8d4 d8d4 d8d4 * * 3b38 8ea2bbb8,8ea2bbb8v 5bd1 e5af91 5bd1 00005bd1 d8d4 d8d4 d8d4 d8d4 d8d4 d8d4 d8d4 -8464 d8d5 d8d5 d8d5 * * 3b39 8ea2bbb9,8ea2bbb9v 5bca e5af8a 5bca 00005bca d8d5 d8d5 d8d5 d8d5 d8d5 d8d5 d8d5 -8465 d8d6 d8d6 d8d6 * * 3b3a 8ea2bbba,8ea2bbbav 5bce e5af8e 5bce 00005bce d8d6 d8d6 d8d6 d8d6 d8d6 d8d6 d8d6 -8466 d8d7 d8d7 d8d7 * * 3b3b 8ea2bbbb,8ea2bbbbv 5c0c e5b08c 5c0c 00005c0c d8d7 d8d7 d8d7 d8d7 d8d7 d8d7 d8d7 -8467 d8d8 d8d8 d8d8 * * 3b3c 8ea2bbbc,8ea2bbbcv 5c30 e5b0b0 5c30 00005c30 d8d8 d8d8 d8d8 d8d8 d8d8 d8d8 d8d8 -8468 d8d9 d8d9 d8d9 * * 3b3d 8ea2bbbd,8ea2bbbdv 5d37 e5b4b7 5d37 00005d37 d8d9 d8d9 d8d9 d8d9 d8d9 d8d9 d8d9 -8469 d8da d8da d8da * * 3b3e 8ea2bbbe,8ea2bbbev 5d43 e5b583 5d43 00005d43 d8da d8da d8da d8da d8da d8da d8da -8470 d8db d8db d8db * * 3b3f 8ea2bbbf,8ea2bbbfv 5d6b e5b5ab 5d6b 00005d6b d8db d8db d8db d8db d8db d8db d8db -8471 d8dc d8dc d8dc * * 3b40 8ea2bbc0,8ea2bbc0v 5d41 e5b581 5d41 00005d41 d8dc d8dc d8dc d8dc d8dc d8dc d8dc -8472 d8dd d8dd d8dd * * 3b41 8ea2bbc1,8ea2bbc1v 5d4b e5b58b 5d4b 00005d4b d8dd d8dd d8dd d8dd d8dd d8dd d8dd -8473 d8de d8de d8de * * 3b42 8ea2bbc2,8ea2bbc2v 5d3f e5b4bf 5d3f 00005d3f d8de d8de d8de d8de d8de d8de d8de -8474 d8df d8df d8df * * 3b43 8ea2bbc3,8ea2bbc3v 5d35 e5b4b5 5d35 00005d35 d8df d8df d8df d8df d8df d8df d8df -8475 d8e0 d8e0 d8e0 * * 3b44 8ea2bbc4,8ea2bbc4v 5d51 e5b591 5d51 00005d51 d8e0 d8e0 d8e0 d8e0 d8e0 d8e0 d8e0 -8476 d8e1 d8e1 d8e1 * * 3b45 8ea2bbc5,8ea2bbc5v 5d4e e5b58e 5d4e 00005d4e d8e1 d8e1 d8e1 d8e1 d8e1 d8e1 d8e1 -8477 d8e2 d8e2 d8e2 * * 3b46 8ea2bbc6,8ea2bbc6v 5d55 e5b595 5d55 00005d55 d8e2 d8e2 d8e2 d8e2 d8e2 d8e2 d8e2 -8478 d8e3 d8e3 d8e3 * * 3b47 8ea2bbc7,8ea2bbc7v 5d33 e5b4b3 5d33 00005d33 d8e3 d8e3 d8e3 d8e3 d8e3 d8e3 d8e3 -8479 d8e4 d8e4 d8e4 * * 3b48 8ea2bbc8,8ea2bbc8v 5d3a e5b4ba 5d3a 00005d3a d8e4 d8e4 d8e4 d8e4 d8e4 d8e4 d8e4 -8480 d8e5 d8e5 d8e5 * * 3b49 8ea2bbc9,8ea2bbc9v 5d52 e5b592 5d52 00005d52 d8e5 d8e5 d8e5 d8e5 d8e5 d8e5 d8e5 -8481 d8e6 d8e6 d8e6 * * 3b4a 8ea2bbca,8ea2bbcav 5d3d e5b4bd 5d3d 00005d3d d8e6 d8e6 d8e6 d8e6 d8e6 d8e6 d8e6 -8482 d8e7 d8e7 d8e7 * * 3b4b 8ea2bbcb,8ea2bbcbv 5d31 e5b4b1 5d31 00005d31 d8e7 d8e7 d8e7 d8e7 d8e7 d8e7 d8e7 -8483 d8e8 d8e8 d8e8 * * 3b4c 8ea2bbcc,8ea2bbccv 5d59 e5b599 5d59 00005d59 d8e8 d8e8 d8e8 d8e8 d8e8 d8e8 d8e8 -8484 d8e9 d8e9 d8e9 * * 3b4d 8ea2bbcd,8ea2bbcdv 5d42 e5b582 5d42 00005d42 d8e9 d8e9 d8e9 d8e9 d8e9 d8e9 d8e9 -8485 d8ea d8ea d8ea * * 3b4e 8ea2bbce,8ea2bbcev 5d39 e5b4b9 5d39 00005d39 d8ea d8ea d8ea d8ea d8ea d8ea d8ea -8486 d8eb d8eb d8eb * * 3b4f 8ea2bbcf,8ea2bbcfv 5d49 e5b589 5d49 00005d49 d8eb d8eb d8eb d8eb d8eb d8eb d8eb -8487 d8ec d8ec d8ec * * 3b50 8ea2bbd0,8ea2bbd0v 5d38 e5b4b8 5d38 00005d38 d8ec d8ec d8ec d8ec d8ec d8ec d8ec -8488 d8ed d8ed d8ed * * 3b51 8ea2bbd1,8ea2bbd1v 5d3c e5b4bc 5d3c 00005d3c d8ed d8ed d8ed d8ed d8ed d8ed d8ed -8489 d8ee d8ee d8ee * * 3b52 8ea2bbd2,8ea2bbd2v 5d32 e5b4b2 5d32 00005d32 d8ee d8ee d8ee d8ee d8ee d8ee d8ee -8490 d8ef d8ef d8ef * * 3b53 8ea2bbd3,8ea2bbd3v 5d36 e5b4b6 5d36 00005d36 d8ef d8ef d8ef d8ef d8ef d8ef d8ef -8491 d8f0 d8f0 d8f0 * * 3b54 8ea2bbd4,8ea2bbd4v 5d40 e5b580 5d40 00005d40 d8f0 d8f0 d8f0 d8f0 d8f0 d8f0 d8f0 -8492 d8f1 d8f1 d8f1 * * 3b55 8ea2bbd5,8ea2bbd5v 5d45 e5b585 5d45 00005d45 d8f1 d8f1 d8f1 d8f1 d8f1 d8f1 d8f1 -8493 d8f2 d8f2 d8f2 * * 3b56 8ea2bbd6,8ea2bbd6v 5e44 e5b984 5e44 00005e44 d8f2 d8f2 d8f2 d8f2 d8f2 d8f2 d8f2 -8494 d8f3 d8f3 d8f3 * * 3b57 8ea2bbd7,8ea2bbd7v 5e41 e5b981 5e41 00005e41 d8f3 d8f3 d8f3 d8f3 d8f3 d8f3 d8f3 -8495 d8f4 d8f4 d8f4 * * 3b58 8ea2bbd8,8ea2bbd8v 5f58 e5bd98,ee8589 5f58,e149 00005f58,0000e149 fc4f,d8f4 d8f4 d8f4 d8f4,fc4f d8f4 d8f4 fc4f,d8f4 -8496 d8f5 d8f5 d8f5 * * 3b59 8ea2bbd9,8ea2bbd9v 5fa6 e5bea6 5fa6 00005fa6 d8f5 d8f5 d8f5 d8f5 d8f5 d8f5 d8f5 -8497 d8f6 d8f6 d8f6 * * 3b5a 8ea2bbda,8ea2bbdav 5fa5 e5bea5 5fa5 00005fa5 d8f6 d8f6 d8f6 d8f6 d8f6 d8f6 d8f6 -8498 d8f7 d8f7 d8f7 * * 3b5b 8ea2bbdb,8ea2bbdbv 5fab e5beab 5fab 00005fab d8f7 d8f7 d8f7 d8f7 d8f7 d8f7 d8f7 -8499 d8f8 d8f8 d8f8 * * 3b5c 8ea2bbdc,8ea2bbdcv 60c9 e68389 60c9 000060c9 d8f8 d8f8 d8f8 d8f8 d8f8 d8f8 d8f8 -8500 d8f9 d8f9 d8f9 * * 3b5d 8ea2bbdd,8ea2bbddv 60b9 e682b9 60b9 000060b9 d8f9 d8f9 d8f9 d8f9 d8f9 d8f9 d8f9 -8501 d8fa d8fa d8fa * * 3b5e 8ea2bbde,8ea2bbdev 60cc e6838c 60cc 000060cc d8fa d8fa d8fa d8fa d8fa d8fa d8fa -8502 d8fb d8fb d8fb * * 3b5f 8ea2bbdf,8ea2bbdfv 60e2 e683a2 60e2 000060e2 d8fb d8fb d8fb d8fb d8fb d8fb d8fb -8503 d8fc d8fc d8fc * * 3b60 8ea2bbe0,8ea2bbe0v 60ce e6838e 60ce 000060ce d8fc d8fc d8fc d8fc d8fc d8fc d8fc -8504 d8fd d8fd d8fd * * 3b61 8ea2bbe1,8ea2bbe1v 60c4 e68384 60c4 000060c4 d8fd d8fd d8fd d8fd d8fd d8fd d8fd -8505 d8fe d8fe d8fe * * 3b62 8ea2bbe2,8ea2bbe2v 6114 e68494 6114 00006114 d8fe d8fe d8fe d8fe d8fe d8fe d8fe -8506 d940 d940 d940 * * 3b63 8ea2bbe3,8ea2bbe3v 60f2 e683b2 60f2 000060f2 d940 d940 d940 d940 d940 d940 d940 -8507 d941 d941 d941 * * 3b64 8ea2bbe4,8ea2bbe4v 610a e6848a 610a 0000610a d941 d941 d941 d941 d941 d941 d941 -8508 d942 d942 d942 * * 3b65 8ea2bbe5,8ea2bbe5v 6116 e68496 6116 00006116 d942 d942 d942 d942 d942 d942 d942 -8509 d943 d943 d943 * * 3b66 8ea2bbe6,8ea2bbe6v 6105 e68485 6105 00006105 d943 d943 d943 d943 d943 d943 d943 -8510 d944 d944 d944 * * 3b67 8ea2bbe7,8ea2bbe7v 60f5 e683b5 60f5 000060f5 d944 d944 d944 d944 d944 d944 d944 -8511 d945 d945 d945 * * 3b68 8ea2bbe8,8ea2bbe8v 6113 e68493 6113 00006113 d945 d945 d945 d945 d945 d945 d945 -8512 d946 d946 d946 * * 3b69 8ea2bbe9,8ea2bbe9v 60f8 e683b8 60f8 000060f8 d946 d946 d946 d946 d946 d946 d946 -8513 d947 d947 d947 * * 3b6a 8ea2bbea,8ea2bbeav 60fc e683bc 60fc 000060fc d947 d947 d947 d947 d947 d947 d947 -8514 d948 d948 d948 * * 3b6b 8ea2bbeb,8ea2bbebv 60fe e683be 60fe 000060fe d948 d948 d948 d948 d948 d948 d948 -8515 d949 d949 d949 * * 3b6c 8ea2bbec,8ea2bbecv 60c1 e68381 60c1 000060c1 d949 d949 d949 d949 d949 d949 d949 -8516 d94a d94a d94a * * 3b6d 8ea2bbed,8ea2bbedv 6103 e68483 6103 00006103 d94a d94a d94a d94a d94a d94a d94a -8517 d94b d94b d94b * * 3b6e 8ea2bbee,8ea2bbeev 6118 e68498 6118 00006118 d94b d94b d94b d94b d94b d94b d94b -8518 d94c d94c d94c * * 3b6f 8ea2bbef,8ea2bbefv 611d e6849d 611d 0000611d d94c d94c d94c d94c d94c d94c d94c -8519 d94d d94d d94d * * 3b70 8ea2bbf0,8ea2bbf0v 6110 e68490 6110 00006110 d94d d94d d94d d94d d94d d94d d94d -8520 d94e d94e d94e * * 3b71 8ea2bbf1,8ea2bbf1v 60ff e683bf 60ff 000060ff d94e d94e d94e d94e d94e d94e d94e -8521 d94f d94f d94f * * 3b72 8ea2bbf2,8ea2bbf2v 6104 e68484 6104 00006104 d94f d94f d94f d94f d94f d94f d94f -8522 d950 d950 d950 * * 3b73 8ea2bbf3,8ea2bbf3v 610b e6848b 610b 0000610b d950 d950 d950 d950 d950 d950 d950 -8523 d951 d951 d951 * * 3b74 8ea2bbf4,8ea2bbf4v 624a e6898a 624a 0000624a d951 d951 d951 d951 d951 d951 d951 -8524 d952 d952 d952 * * 3b75 8ea2bbf5,8ea2bbf5v 6394 e68e94 6394 00006394 d952 d952 d952 d952 d952 d952 d952 -8525 d953 d953 d953 * * 3b76 8ea2bbf6,8ea2bbf6v 63b1 e68eb1 63b1 000063b1 d953 d953 d953 d953 d953 d953 d953 -8526 d954 d954 d954 * * 3b77 8ea2bbf7,8ea2bbf7v 63b0 e68eb0 63b0 000063b0 d954 d954 d954 d954 d954 d954 d954 -8527 d955 d955 d955 * * 3b78 8ea2bbf8,8ea2bbf8v 63ce e68f8e 63ce 000063ce d955 d955 d955 d955 d955 d955 d955 -8528 d956 d956 d956 * * 3b79 8ea2bbf9,8ea2bbf9v 63e5 e68fa5 63e5 000063e5 d956 d956 d956 d956 d956 d956 d956 -8529 d957 d957 d957 * * 3b7a 8ea2bbfa,8ea2bbfav 63e8 e68fa8 63e8 000063e8 d957 d957 d957 d957 d957 d957 d957 -8530 d958 d958 d958 * * 3b7b 8ea2bbfb,8ea2bbfbv 63ef e68faf 63ef 000063ef d958 d958 d958 d958 d958 d958 d958 -8531 d959 d959 d959 * * 3b7c 8ea2bbfc,8ea2bbfcv 63c3 e68f83 63c3 000063c3 d959 d959 d959 d959 d959 d959 d959 -8532 d95a d95a d95a * * 3b7d 8ea2bbfd,8ea2bbfdv 649d e6929d 649d 0000649d d95a d95a d95a d95a d95a d95a d95a -8533 d95b d95b d95b * * 3b7e 8ea2bbfe,8ea2bbfev 63f3 e68fb3 63f3 000063f3 d95b d95b d95b d95b d95b d95b d95b -8534 d95c d95c d95c * * 3c21 8ea2bca1,8ea2bca1v 63ca e68f8a 63ca 000063ca d95c d95c d95c d95c d95c d95c d95c -8535 d95d d95d d95d * * 3c22 8ea2bca2,8ea2bca2v 63e0 e68fa0 63e0 000063e0 d95d d95d d95d d95d d95d d95d d95d -8536 d95e d95e d95e * * 3c23 8ea2bca3,8ea2bca3v 63f6 e68fb6 63f6 000063f6 d95e d95e d95e d95e d95e d95e d95e -8537 d95f d95f d95f * * 3c24 8ea2bca4,8ea2bca4v 63d5 e68f95 63d5 000063d5 d95f d95f d95f d95f d95f d95f d95f -8538 d960 d960 d960 * * 3c25 8ea2bca5,8ea2bca5v 63f2 e68fb2 63f2 000063f2 d960 d960 d960 d960 d960 d960 d960 -8539 d961 d961 d961 * * 3c26 8ea2bca6,8ea2bca6v 63f5 e68fb5 63f5 000063f5 d961 d961 d961 d961 d961 d961 d961 -8540 d962 d962 d962 * * 3c27 8ea2bca7,8ea2bca7v 6461 e691a1 6461 00006461 d962 d962 d962 d962 d962 d962 d962 -8541 d963 d963 d963 * * 3c28 8ea2bca8,8ea2bca8v 63df e68f9f 63df 000063df d963 d963 d963 d963 d963 d963 d963 -8542 d964 d964 d964 * * 3c29 8ea2bca9,8ea2bca9v 63be e68ebe 63be 000063be d964 d964 d964 d964 d964 d964 d964 -8543 d965 d965 d965 * * 3c2a 8ea2bcaa,8ea2bcaav 63dd e68f9d 63dd 000063dd d965 d965 d965 d965 d965 d965 d965 -8544 d966 d966 d966 * * 3c2b 8ea2bcab,8ea2bcabv 63dc e68f9c 63dc 000063dc d966 d966 d966 d966 d966 d966 d966 -8545 d967 d967 d967 * * 3c2c 8ea2bcac,8ea2bcacv 63c4 e68f84 63c4 000063c4 d967 d967 d967 d967 d967 d967 d967 -8546 d968 d968 d968 * * 3c2d 8ea2bcad,8ea2bcadv 63d8 e68f98 63d8 000063d8 d968 d968 d968 d968 d968 d968 d968 -8547 d969 d969 d969 * * 3c2e 8ea2bcae,8ea2bcaev 63d3 e68f93 63d3 000063d3 d969 d969 d969 d969 d969 d969 d969 -8548 d96a d96a d96a * * 3c2f 8ea2bcaf,8ea2bcafv 63c2 e68f82 63c2 000063c2 d96a d96a d96a d96a d96a d96a d96a -8549 d96b d96b d96b * * 3c30 8ea2bcb0,8ea2bcb0v 63c7 e68f87 63c7 000063c7 d96b d96b d96b d96b d96b d96b d96b -8550 d96c d96c d96c * * 3c31 8ea2bcb1,8ea2bcb1v 63cc e68f8c 63cc 000063cc d96c d96c d96c d96c d96c d96c d96c -8551 d96d d96d d96d * * 3c32 8ea2bcb2,8ea2bcb2v 63cb e68f8b 63cb 000063cb d96d d96d d96d d96d d96d d96d d96d -8552 d96e d96e d96e * * 3c33 8ea2bcb3,8ea2bcb3v 63c8 e68f88 63c8 000063c8 d96e d96e d96e d96e d96e d96e d96e -8553 d96f d96f d96f * * 3c34 8ea2bcb4,8ea2bcb4v 63f0 e68fb0 63f0 000063f0 d96f d96f d96f d96f d96f d96f d96f -8554 d970 d970 d970 * * 3c35 8ea2bcb5,8ea2bcb5v 63d7 e68f97 63d7 000063d7 d970 d970 d970 d970 d970 d970 d970 -8555 d971 d971 d971 * * 3c36 8ea2bcb6,8ea2bcb6v 63d9 e68f99 63d9 000063d9 d971 d971 d971 d971 d971 d971 d971 -8556 d972 d972 d972 * * 3c37 8ea2bcb7,8ea2bcb7v 6532 e694b2 6532 00006532 d972 d972 d972 d972 d972 d972 d972 -8557 d973 d973 d973 * * 3c38 8ea2bcb8,8ea2bcb8v 6567 e695a7 6567 00006567 d973 d973 d973 d973 d973 d973 d973 -8558 d974 d974 d974 * * 3c39 8ea2bcb9,8ea2bcb9v 656a e695aa 656a 0000656a d974 d974 d974 d974 d974 d974 d974 -8559 d975 d975 d975 * * 3c3a 8ea2bcba,8ea2bcbav 6564 e695a4 6564 00006564 d975 d975 d975 d975 d975 d975 d975 -8560 d976 d976 d976 * * 3c3b 8ea2bcbb,8ea2bcbbv 655c e6959c 655c 0000655c d976 d976 d976 d976 d976 d976 d976 -8561 d977 d977 d977 * * 3c3c 8ea2bcbc,8ea2bcbcv 6568 e695a8 6568 00006568 d977 d977 d977 d977 d977 d977 d977 -8562 d978 d978 d978 * * 3c3d 8ea2bcbd,8ea2bcbdv 6565 e695a5 6565 00006565 d978 d978 d978 d978 d978 d978 d978 -8563 d979 d979 d979 * * 3c3e 8ea2bcbe,8ea2bcbev 658c e6968c 658c 0000658c d979 d979 d979 d979 d979 d979 d979 -8564 d97a d97a d97a * * 3c3f 8ea2bcbf,8ea2bcbfv 659d e6969d 659d 0000659d d97a d97a d97a d97a d97a d97a d97a -8565 d97b d97b d97b * * 3c40 8ea2bcc0,8ea2bcc0v 659e e6969e 659e 0000659e d97b d97b d97b d97b d97b d97b d97b -8566 d97c d97c d97c * * 3c41 8ea2bcc1,8ea2bcc1v 65ae e696ae 65ae 000065ae d97c d97c d97c d97c d97c d97c d97c -8567 d97d d97d d97d * * 3c42 8ea2bcc2,8ea2bcc2v 65d0 e69790 65d0 000065d0 d97d d97d d97d d97d d97d d97d d97d -8568 d97e d97e d97e * * 3c43 8ea2bcc3,8ea2bcc3v 65d2 e69792 65d2 000065d2 d97e d97e d97e d97e d97e d97e d97e -8569 d9a1 d9a1 d9a1 * * 3c44 8ea2bcc4,8ea2bcc4v 667c e699bc 667c 0000667c d9a1 d9a1 d9a1 d9a1 d9a1 d9a1 d9a1 -8570 d9a2 d9a2 d9a2 * * 3c45 8ea2bcc5,8ea2bcc5v 666c e699ac 666c 0000666c d9a2 d9a2 d9a2 d9a2 d9a2 d9a2 d9a2 -8571 d9a3 d9a3 d9a3 * * 3c46 8ea2bcc6,8ea2bcc6v 667b e699bb 667b 0000667b d9a3 d9a3 d9a3 d9a3 d9a3 d9a3 d9a3 -8572 d9a4 d9a4 d9a4 * * 3c47 8ea2bcc7,8ea2bcc7v 6680 e69a80 6680 00006680 d9a4 d9a4 d9a4 d9a4 d9a4 d9a4 d9a4 -8573 d9a5 d9a5 d9a5 * * 3c48 8ea2bcc8,8ea2bcc8v 6671 e699b1 6671 00006671 d9a5 d9a5 d9a5 d9a5 d9a5 d9a5 d9a5 -8574 d9a6 d9a6 d9a6 * * 3c49 8ea2bcc9,8ea2bcc9v 6679 e699b9 6679 00006679 d9a6 d9a6 d9a6 d9a6 d9a6 d9a6 d9a6 -8575 d9a7 d9a7 d9a7 * * 3c4a 8ea2bcca,8ea2bccav 666a e699aa 666a 0000666a d9a7 d9a7 d9a7 d9a7 d9a7 d9a7 d9a7 -8576 d9a8 d9a8 d9a8 * * 3c4b 8ea2bccb,8ea2bccbv 6672 e699b2 6672 00006672 d9a8 d9a8 d9a8 d9a8 d9a8 d9a8 d9a8 -8577 d9a9 d9a9 d9a9 * * 3c4c 8ea2bccc,8ea2bcccv 6701 e69c81 6701 00006701 d9a9 d9a9 d9a9 d9a9 d9a9 d9a9 d9a9 -8578 d9aa d9aa d9aa * * 3c4d 8ea2bccd,8ea2bccdv 690c e6a48c 690c 0000690c d9aa d9aa d9aa d9aa d9aa d9aa d9aa -8579 d9ab d9ab d9ab * * 3c4e 8ea2bcce,8ea2bccev 68d3 e6a393 68d3 000068d3 d9ab d9ab d9ab d9ab d9ab d9ab d9ab -8580 d9ac d9ac d9ac * * 3c4f 8ea2bccf,8ea2bccfv 6904 e6a484 6904 00006904 d9ac d9ac d9ac d9ac d9ac d9ac d9ac -8581 d9ad d9ad d9ad * * 3c50 8ea2bcd0,8ea2bcd0v 68dc e6a39c 68dc 000068dc d9ad d9ad d9ad d9ad d9ad d9ad d9ad -8582 d9ae d9ae d9ae * * 3c51 8ea2bcd1,8ea2bcd1v 692a e6a4aa 692a 0000692a d9ae d9ae d9ae d9ae d9ae d9ae d9ae -8583 d9af d9af d9af * * 3c52 8ea2bcd2,8ea2bcd2v 68ec e6a3ac 68ec 000068ec d9af d9af d9af d9af d9af d9af d9af -8584 d9b0 d9b0 d9b0 * * 3c53 8ea2bcd3,8ea2bcd3v 68ea e6a3aa 68ea 000068ea d9b0 d9b0 d9b0 d9b0 d9b0 d9b0 d9b0 -8585 d9b1 d9b1 d9b1 * * 3c54 8ea2bcd4,8ea2bcd4v 68f1 e6a3b1 68f1 000068f1 d9b1 d9b1 d9b1 d9b1 d9b1 d9b1 d9b1 -8586 d9b2 d9b2 d9b2 * * 3c55 8ea2bcd5,8ea2bcd5v 690f e6a48f 690f 0000690f d9b2 d9b2 d9b2 d9b2 d9b2 d9b2 d9b2 -8587 d9b3 d9b3 d9b3 * * 3c56 8ea2bcd6,8ea2bcd6v 68d6 e6a396 68d6 000068d6 d9b3 d9b3 d9b3 d9b3 d9b3 d9b3 d9b3 -8588 d9b4 d9b4 d9b4 * * 3c57 8ea2bcd7,8ea2bcd7v 68f7 e6a3b7 68f7 000068f7 d9b4 d9b4 d9b4 d9b4 d9b4 d9b4 d9b4 -8589 d9b5 d9b5 d9b5 * * 3c58 8ea2bcd8,8ea2bcd8v 68eb e6a3ab 68eb 000068eb d9b5 d9b5 d9b5 d9b5 d9b5 d9b5 d9b5 -8590 d9b6 d9b6 d9b6 * * 3c59 8ea2bcd9,8ea2bcd9v 68e4 e6a3a4 68e4 000068e4 d9b6 d9b6 d9b6 d9b6 d9b6 d9b6 d9b6 -8591 d9b7 d9b7 d9b7 * * 3c5a 8ea2bcda,8ea2bcdav 68f6 e6a3b6 68f6 000068f6 d9b7 d9b7 d9b7 d9b7 d9b7 d9b7 d9b7 -8592 d9b8 d9b8 d9b8 * * 3c5b 8ea2bcdb,8ea2bcdbv 6913 e6a493 6913 00006913 d9b8 d9b8 d9b8 d9b8 d9b8 d9b8 d9b8 -8593 d9b9 d9b9 d9b9 * * 3c5c 8ea2bcdc,8ea2bcdcv 6910 e6a490 6910 00006910 d9b9 d9b9 d9b9 d9b9 d9b9 d9b9 d9b9 -8594 d9ba d9ba d9ba * * 3c5d 8ea2bcdd,8ea2bcddv 68f3 e6a3b3 68f3 000068f3 d9ba d9ba d9ba d9ba d9ba d9ba d9ba -8595 d9bb d9bb d9bb * * 3c5e 8ea2bcde,8ea2bcdev 68e1 e6a3a1 68e1 000068e1 d9bb d9bb d9bb d9bb d9bb d9bb d9bb -8596 d9bc d9bc d9bc * * 3c5f 8ea2bcdf,8ea2bcdfv 6907 e6a487 6907 00006907 d9bc d9bc d9bc d9bc d9bc d9bc d9bc -8597 d9bd d9bd d9bd * * 3c60 8ea2bce0,8ea2bce0v 68cc e6a38c 68cc 000068cc d9bd d9bd d9bd d9bd d9bd d9bd d9bd -8598 d9be d9be d9be * * 3c61 8ea2bce1,8ea2bce1v 6908 e6a488 6908 00006908 d9be d9be d9be d9be d9be d9be d9be -8599 d9bf d9bf d9bf * * 3c62 8ea2bce2,8ea2bce2v 6970 e6a5b0 6970 00006970 d9bf d9bf d9bf d9bf d9bf d9bf d9bf -8600 d9c0 d9c0 d9c0 * * 3c63 8ea2bce3,8ea2bce3v 68b4 e6a2b4 68b4 000068b4 d9c0 d9c0 d9c0 d9c0 d9c0 d9c0 d9c0 -8601 d9c1 d9c1 d9c1 * * 3c64 8ea2bce4,8ea2bce4v 6911 e6a491 6911 00006911 d9c1 d9c1 d9c1 d9c1 d9c1 d9c1 d9c1 -8602 d9c2 d9c2 d9c2 * * 3c65 8ea2bce5,8ea2bce5v 68ef e6a3af 68ef 000068ef d9c2 d9c2 d9c2 d9c2 d9c2 d9c2 d9c2 -8603 d9c3 d9c3 d9c3 * * 3c66 8ea2bce6,8ea2bce6v 68c6 e6a386 68c6 000068c6 d9c3 d9c3 d9c3 d9c3 d9c3 d9c3 d9c3 -8604 d9c4 d9c4 d9c4 * * 3c67 8ea2bce7,8ea2bce7v 6914 e6a494 6914 00006914 d9c4 d9c4 d9c4 d9c4 d9c4 d9c4 d9c4 -8605 d9c5 d9c5 d9c5 * * 3c68 8ea2bce8,8ea2bce8v 68f8 e6a3b8 68f8 000068f8 d9c5 d9c5 d9c5 d9c5 d9c5 d9c5 d9c5 -8606 d9c6 d9c6 d9c6 * * 3c69 8ea2bce9,8ea2bce9v 68d0 e6a390 68d0 000068d0 d9c6 d9c6 d9c6 d9c6 d9c6 d9c6 d9c6 -8607 d9c7 d9c7 d9c7 * * 3c6a 8ea2bcea,8ea2bceav 68fd e6a3bd 68fd 000068fd d9c7 d9c7 d9c7 d9c7 d9c7 d9c7 d9c7 -8608 d9c8 d9c8 d9c8 * * 3c6b 8ea2bceb,8ea2bcebv 68fc e6a3bc 68fc 000068fc d9c8 d9c8 d9c8 d9c8 d9c8 d9c8 d9c8 -8609 d9c9 d9c9 d9c9 * * 3c6c 8ea2bcec,8ea2bcecv 68e8 e6a3a8 68e8 000068e8 d9c9 d9c9 d9c9 d9c9 d9c9 d9c9 d9c9 -8610 d9ca d9ca d9ca * * 3c6d 8ea2bced,8ea2bcedv 690b e6a48b 690b 0000690b d9ca d9ca d9ca d9ca d9ca d9ca d9ca -8611 d9cb d9cb d9cb * * 3c6e 8ea2bcee,8ea2bceev 690a e6a48a 690a 0000690a d9cb d9cb d9cb d9cb d9cb d9cb d9cb -8612 d9cc d9cc d9cc * * 3c6f 8ea2bcef,8ea2bcefv 6917 e6a497 6917 00006917 d9cc d9cc d9cc d9cc d9cc d9cc d9cc -8613 d9cd d9cd d9cd * * 3c70 8ea2bcf0,8ea2bcf0v 68ce e6a38e 68ce 000068ce d9cd d9cd d9cd d9cd d9cd d9cd d9cd -8614 d9ce d9ce d9ce * * 3c71 8ea2bcf1,8ea2bcf1v 68c8 e6a388 68c8 000068c8 d9ce d9ce d9ce d9ce d9ce d9ce d9ce -8615 d9cf d9cf d9cf * * 3c72 8ea2bcf2,8ea2bcf2v 68dd e6a39d 68dd 000068dd d9cf d9cf d9cf d9cf d9cf d9cf d9cf -8616 d9d0 d9d0 d9d0 * * 3c73 8ea2bcf3,8ea2bcf3v 68de e6a39e 68de 000068de d9d0 d9d0 d9d0 d9d0 d9d0 d9d0 d9d0 -8617 d9d1 d9d1 d9d1 * * 3c74 8ea2bcf4,8ea2bcf4v 68e6 e6a3a6 68e6 000068e6 d9d1 d9d1 d9d1 d9d1 d9d1 d9d1 d9d1 -8618 d9d2 d9d2 d9d2 * * 3c75 8ea2bcf5,8ea2bcf5v 68f4 e6a3b4 68f4 000068f4 d9d2 d9d2 d9d2 d9d2 d9d2 d9d2 d9d2 -8619 d9d3 d9d3 d9d3 * * 3c76 8ea2bcf6,8ea2bcf6v 68d1 e6a391 68d1 000068d1 d9d3 d9d3 d9d3 d9d3 d9d3 d9d3 d9d3 -8620 d9d4 d9d4 d9d4 * * 3c77 8ea2bcf7,8ea2bcf7v 6906 e6a486 6906 00006906 d9d4 d9d4 d9d4 d9d4 d9d4 d9d4 d9d4 -8621 d9d5 d9d5 d9d5 * * 3c78 8ea2bcf8,8ea2bcf8v 68d4 e6a394 68d4 000068d4 d9d5 d9d5 d9d5 d9d5 d9d5 d9d5 d9d5 -8622 d9d6 d9d6 d9d6 * * 3c79 8ea2bcf9,8ea2bcf9v 68e9 e6a3a9 68e9 000068e9 d9d6 d9d6 d9d6 d9d6 d9d6 d9d6 d9d6 -8623 d9d7 d9d7 d9d7 * * 3c7a 8ea2bcfa,8ea2bcfav 6915 e6a495 6915 00006915 d9d7 d9d7 d9d7 d9d7 d9d7 d9d7 d9d7 -8624 d9d8 d9d8 d9d8 * * 3c7b 8ea2bcfb,8ea2bcfbv 6925 e6a4a5 6925 00006925 d9d8 d9d8 d9d8 d9d8 d9d8 d9d8 d9d8 -8625 d9d9 d9d9 d9d9 * * 3c7c 8ea2bcfc,8ea2bcfcv 68c7 e6a387 68c7 000068c7 d9d9 d9d9 d9d9 d9d9 d9d9 d9d9 d9d9 -8626 d9da d9da d9da * * 3c7d 8ea2bcfd,8ea2bcfdv 6b39 e6acb9 6b39 00006b39 d9da d9da d9da d9da d9da d9da d9da -8627 d9db d9db d9db * * 3c7e 8ea2bcfe,8ea2bcfev 6b3b e6acbb 6b3b 00006b3b d9db d9db d9db d9db d9db d9db d9db -8628 d9dc d9dc d9dc * * 3d21 8ea2bda1,8ea2bda1v 6b3f e6acbf 6b3f 00006b3f d9dc d9dc d9dc d9dc d9dc d9dc d9dc -8629 d9dd d9dd d9dd * * 3d22 8ea2bda2,8ea2bda2v 6b3c e6acbc 6b3c 00006b3c d9dd d9dd d9dd d9dd d9dd d9dd d9dd -8630 d9de d9de d9de * * 3d23 8ea2bda3,8ea2bda3v 6b94 e6ae94 6b94 00006b94 d9de d9de d9de d9de d9de d9de d9de -8631 d9df d9df d9df * * 3d24 8ea2bda4,8ea2bda4v 6b97 e6ae97 6b97 00006b97 d9df d9df d9df d9df d9df d9df d9df -8632 d9e0 d9e0 d9e0 * * 3d25 8ea2bda5,8ea2bda5v 6b99 e6ae99 6b99 00006b99 d9e0 d9e0 d9e0 d9e0 d9e0 d9e0 d9e0 -8633 d9e1 d9e1 d9e1 * * 3d26 8ea2bda6,8ea2bda6v 6b95 e6ae95 6b95 00006b95 d9e1 d9e1 d9e1 d9e1 d9e1 d9e1 d9e1 -8634 d9e2 d9e2 d9e2 * * 3d27 8ea2bda7,8ea2bda7v 6bbd e6aebd 6bbd 00006bbd d9e2 d9e2 d9e2 d9e2 d9e2 d9e2 d9e2 -8635 d9e3 d9e3 d9e3 * * 3d28 8ea2bda8,8ea2bda8v 6bf0 e6afb0 6bf0 00006bf0 d9e3 d9e3 d9e3 d9e3 d9e3 d9e3 d9e3 -8636 d9e4 d9e4 d9e4 * * 3d29 8ea2bda9,8ea2bda9v 6bf2 e6afb2 6bf2 00006bf2 d9e4 d9e4 d9e4 d9e4 d9e4 d9e4 d9e4 -8637 d9e5 d9e5 d9e5 * * 3d2a 8ea2bdaa,8ea2bdaav 6bf3 e6afb3 6bf3 00006bf3 d9e5 d9e5 d9e5 d9e5 d9e5 d9e5 d9e5 -8638 d9e6 d9e6 d9e6 * * 3d2b 8ea2bdab,8ea2bdabv 6c30 e6b0b0 6c30 00006c30 d9e6 d9e6 d9e6 d9e6 d9e6 d9e6 d9e6 -8639 d9e7 d9e7 d9e7 * * 3d2c 8ea2bdac,8ea2bdacv 6dfc e6b7bc 6dfc 00006dfc d9e7 d9e7 d9e7 d9e7 d9e7 d9e7 d9e7 -8640 d9e8 d9e8 d9e8 * * 3d2d 8ea2bdad,8ea2bdadv 6e46 e6b986 6e46 00006e46 d9e8 d9e8 d9e8 d9e8 d9e8 d9e8 d9e8 -8641 d9e9 d9e9 d9e9 * * 3d2e 8ea2bdae,8ea2bdaev 6e47 e6b987 6e47 00006e47 d9e9 d9e9 d9e9 d9e9 d9e9 d9e9 d9e9 -8642 d9ea d9ea d9ea * * 3d2f 8ea2bdaf,8ea2bdafv 6e1f e6b89f 6e1f 00006e1f d9ea d9ea d9ea d9ea d9ea d9ea d9ea -8643 d9eb d9eb d9eb * * 3d30 8ea2bdb0,8ea2bdb0v 6e49 e6b989 6e49 00006e49 d9eb d9eb d9eb d9eb d9eb d9eb d9eb -8644 d9ec d9ec d9ec * * 3d31 8ea2bdb1,8ea2bdb1v 6e88 e6ba88 6e88 00006e88 d9ec d9ec d9ec d9ec d9ec d9ec d9ec -8645 d9ed d9ed d9ed * * 3d32 8ea2bdb2,8ea2bdb2v 6e3c e6b8bc 6e3c 00006e3c d9ed d9ed d9ed d9ed d9ed d9ed d9ed -8646 d9ee d9ee d9ee * * 3d33 8ea2bdb3,8ea2bdb3v 6e3d e6b8bd 6e3d 00006e3d d9ee d9ee d9ee d9ee d9ee d9ee d9ee -8647 d9ef d9ef d9ef * * 3d34 8ea2bdb4,8ea2bdb4v 6e45 e6b985 6e45 00006e45 d9ef d9ef d9ef d9ef d9ef d9ef d9ef -8648 d9f0 d9f0 d9f0 * * 3d35 8ea2bdb5,8ea2bdb5v 6e62 e6b9a2 6e62 00006e62 d9f0 d9f0 d9f0 d9f0 d9f0 d9f0 d9f0 -8649 d9f1 d9f1 d9f1 * * 3d36 8ea2bdb6,8ea2bdb6v 6e2b e6b8ab 6e2b 00006e2b d9f1 d9f1 d9f1 d9f1 d9f1 d9f1 d9f1 -8650 d9f2 d9f2 d9f2 * * 3d37 8ea2bdb7,8ea2bdb7v 6e3f e6b8bf 6e3f 00006e3f d9f2 d9f2 d9f2 d9f2 d9f2 d9f2 d9f2 -8651 d9f3 d9f3 d9f3 * * 3d38 8ea2bdb8,8ea2bdb8v 6e41 e6b981 6e41 00006e41 d9f3 d9f3 d9f3 d9f3 d9f3 d9f3 d9f3 -8652 d9f4 d9f4 d9f4 * * 3d39 8ea2bdb9,8ea2bdb9v 6e5d e6b99d 6e5d 00006e5d d9f4 d9f4 d9f4 d9f4 d9f4 d9f4 d9f4 -8653 d9f5 d9f5 d9f5 * * 3d3a 8ea2bdba,8ea2bdbav 6e73 e6b9b3 6e73 00006e73 d9f5 d9f5 d9f5 d9f5 d9f5 d9f5 d9f5 -8654 d9f6 d9f6 d9f6 * * 3d3b 8ea2bdbb,8ea2bdbbv 6e1c e6b89c 6e1c 00006e1c d9f6 d9f6 d9f6 d9f6 d9f6 d9f6 d9f6 -8655 d9f7 d9f7 d9f7 * * 3d3c 8ea2bdbc,8ea2bdbcv 6e33 e6b8b3 6e33 00006e33 d9f7 d9f7 d9f7 d9f7 d9f7 d9f7 d9f7 -8656 d9f8 d9f8 d9f8 * * 3d3d 8ea2bdbd,8ea2bdbdv 6e4b e6b98b 6e4b 00006e4b d9f8 d9f8 d9f8 d9f8 d9f8 d9f8 d9f8 -8657 d9f9 d9f9 d9f9 * * 3d3e 8ea2bdbe,8ea2bdbev 6e40 e6b980 6e40 00006e40 d9f9 d9f9 d9f9 d9f9 d9f9 d9f9 d9f9 -8658 d9fa d9fa d9fa * * 3d3f 8ea2bdbf,8ea2bdbfv 6e51 e6b991 6e51 00006e51 d9fa d9fa d9fa d9fa d9fa d9fa d9fa -8659 d9fb d9fb d9fb * * 3d40 8ea2bdc0,8ea2bdc0v 6e3b e6b8bb 6e3b 00006e3b d9fb d9fb d9fb d9fb d9fb d9fb d9fb -8660 d9fc d9fc d9fc * * 3d41 8ea2bdc1,8ea2bdc1v 6e03 e6b883 6e03 00006e03 d9fc d9fc d9fc d9fc d9fc d9fc d9fc -8661 d9fd d9fd d9fd * * 3d42 8ea2bdc2,8ea2bdc2v 6e2e e6b8ae 6e2e 00006e2e d9fd d9fd d9fd d9fd d9fd d9fd d9fd -8662 d9fe d9fe d9fe * * 3d43 8ea2bdc3,8ea2bdc3v 6e5e e6b99e 6e5e 00006e5e d9fe d9fe d9fe d9fe d9fe d9fe d9fe -8663 da40 da40 da40 * * 3d44 8ea2bdc4,8ea2bdc4v 6e68 e6b9a8 6e68 00006e68 da40 da40 da40 da40 da40 da40 da40 -8664 da41 da41 da41 * * 3d45 8ea2bdc5,8ea2bdc5v 6e5c e6b99c 6e5c 00006e5c da41 da41 da41 da41 da41 da41 da41 -8665 da42 da42 da42 * * 3d46 8ea2bdc6,8ea2bdc6v 6e61 e6b9a1 6e61 00006e61 da42 da42 da42 da42 da42 da42 da42 -8666 da43 da43 da43 * * 3d47 8ea2bdc7,8ea2bdc7v 6e31 e6b8b1 6e31 00006e31 da43 da43 da43 da43 da43 da43 da43 -8667 da44 da44 da44 * * 3d48 8ea2bdc8,8ea2bdc8v 6e28 e6b8a8 6e28 00006e28 da44 da44 da44 da44 da44 da44 da44 -8668 da45 da45 da45 * * 3d49 8ea2bdc9,8ea2bdc9v 6e60 e6b9a0 6e60 00006e60 da45 da45 da45 da45 da45 da45 da45 -8669 da46 da46 da46 * * 3d4a 8ea2bdca,8ea2bdcav 6e71 e6b9b1 6e71 00006e71 da46 da46 da46 da46 da46 da46 da46 -8670 da47 da47 da47 * * 3d4b 8ea2bdcb,8ea2bdcbv 6e6b e6b9ab 6e6b 00006e6b da47 da47 da47 da47 da47 da47 da47 -8671 da48 da48 da48 * * 3d4c 8ea2bdcc,8ea2bdccv 6e39 e6b8b9 6e39 00006e39 da48 da48 da48 da48 da48 da48 da48 -8672 da49 da49 da49 * * 3d4d 8ea2bdcd,8ea2bdcdv 6e22 e6b8a2 6e22 00006e22 da49 da49 da49 da49 da49 da49 da49 -8673 da4a da4a da4a * * 3d4e 8ea2bdce,8ea2bdcev 6e30 e6b8b0 6e30 00006e30 da4a da4a da4a da4a da4a da4a da4a -8674 da4b da4b da4b * * 3d4f 8ea2bdcf,8ea2bdcfv 6e53 e6b993 6e53 00006e53 da4b da4b da4b da4b da4b da4b da4b -8675 da4c da4c da4c * * 3d50 8ea2bdd0,8ea2bdd0v 6e65 e6b9a5 6e65 00006e65 da4c da4c da4c da4c da4c da4c da4c -8676 da4d da4d da4d * * 3d51 8ea2bdd1,8ea2bdd1v 6e27 e6b8a7 6e27 00006e27 da4d da4d da4d da4d da4d da4d da4d -8677 da4e da4e da4e * * 3d52 8ea2bdd2,8ea2bdd2v 6e78 e6b9b8 6e78 00006e78 da4e da4e da4e da4e da4e da4e da4e -8678 da4f da4f da4f * * 3d53 8ea2bdd3,8ea2bdd3v 6e64 e6b9a4 6e64 00006e64 da4f da4f da4f da4f da4f da4f da4f -8679 da50 da50 da50 * * 3d54 8ea2bdd4,8ea2bdd4v 6e77 e6b9b7 6e77 00006e77 da50 da50 da50 da50 da50 da50 da50 -8680 da51 da51 da51 * * 3d55 8ea2bdd5,8ea2bdd5v 6e55 e6b995 6e55 00006e55 da51 da51 da51 da51 da51 da51 da51 -8681 da52 da52 da52 * * 3d56 8ea2bdd6,8ea2bdd6v 6e79 e6b9b9 6e79 00006e79 da52 da52 da52 da52 da52 da52 da52 -8682 da53 da53 da53 * * 3d57 8ea2bdd7,8ea2bdd7v 6e52 e6b992 6e52 00006e52 da53 da53 da53 da53 da53 da53 da53 -8683 da54 da54 da54 * * 3d58 8ea2bdd8,8ea2bdd8v 6e66 e6b9a6 6e66 00006e66 da54 da54 da54 da54 da54 da54 da54 -8684 da55 da55 da55 * * 3d59 8ea2bdd9,8ea2bdd9v 6e35 e6b8b5 6e35 00006e35 da55 da55 da55 da55 da55 da55 da55 -8685 da56 da56 da56 * * 3d5a 8ea2bdda,8ea2bddav 6e36 e6b8b6 6e36 00006e36 da56 da56 da56 da56 da56 da56 da56 -8686 da57 da57 da57 * * 3d5b 8ea2bddb,8ea2bddbv 6e5a e6b99a 6e5a 00006e5a da57 da57 da57 da57 da57 da57 da57 -8687 da58 da58 da58 * * 3d5c 8ea2bddc,8ea2bddcv 7120 e784a0 7120 00007120 da58 da58 da58 da58 da58 da58 da58 -8688 da59 da59 da59 * * 3d5d 8ea2bddd,8ea2bdddv 711e e7849e 711e 0000711e da59 da59 da59 da59 da59 da59 da59 -8689 da5a da5a da5a * * 3d5e 8ea2bdde,8ea2bddev 712f e784af 712f 0000712f da5a da5a da5a da5a da5a da5a da5a -8690 da5b da5b da5b * * 3d5f 8ea2bddf,8ea2bddfv 70fb e783bb 70fb 000070fb da5b da5b da5b da5b da5b da5b da5b -8691 da5c da5c da5c * * 3d60 8ea2bde0,8ea2bde0v 712e e784ae 712e 0000712e da5c da5c da5c da5c da5c da5c da5c -8692 da5d da5d da5d * * 3d61 8ea2bde1,8ea2bde1v 7131 e784b1 7131 00007131 da5d da5d da5d da5d da5d da5d da5d -8693 da5e da5e da5e * * 3d62 8ea2bde2,8ea2bde2v 7123 e784a3 7123 00007123 da5e da5e da5e da5e da5e da5e da5e -8694 da5f da5f da5f * * 3d63 8ea2bde3,8ea2bde3v 7125 e784a5 7125 00007125 da5f da5f da5f da5f da5f da5f da5f -8695 da60 da60 da60 * * 3d64 8ea2bde4,8ea2bde4v 7122 e784a2 7122 00007122 da60 da60 da60 da60 da60 da60 da60 -8696 da61 da61 da61 * * 3d65 8ea2bde5,8ea2bde5v 7132 e784b2 7132 00007132 da61 da61 da61 da61 da61 da61 da61 -8697 da62 da62 da62 * * 3d66 8ea2bde6,8ea2bde6v 711f e7849f 711f 0000711f da62 da62 da62 da62 da62 da62 da62 -8698 da63 da63 da63 * * 3d67 8ea2bde7,8ea2bde7v 7128 e784a8 7128 00007128 da63 da63 da63 da63 da63 da63 da63 -8699 da64 da64 da64 * * 3d68 8ea2bde8,8ea2bde8v 713a e784ba 713a 0000713a da64 da64 da64 da64 da64 da64 da64 -8700 da65 da65 da65 * * 3d69 8ea2bde9,8ea2bde9v 711b e7849b 711b 0000711b da65 da65 da65 da65 da65 da65 da65 -8701 da66 da66 da66 * * 3d6a 8ea2bdea,8ea2bdeav 724b e7898b 724b 0000724b da66 da66 da66 da66 da66 da66 da66 -8702 da67 da67 da67 * * 3d6b 8ea2bdeb,8ea2bdebv 725a e7899a 725a 0000725a da67 da67 da67 da67 da67 da67 da67 -8703 da68 da68 da68 * * 3d6c 8ea2bdec,8ea2bdecv 7288 e78a88 7288 00007288 da68 da68 da68 da68 da68 da68 da68 -8704 da69 da69 da69 * * 3d6d 8ea2bded,8ea2bdedv 7289 e78a89 7289 00007289 da69 da69 da69 da69 da69 da69 da69 -8705 da6a da6a da6a * * 3d6e 8ea2bdee,8ea2bdeev 7286 e78a86 7286 00007286 da6a da6a da6a da6a da6a da6a da6a -8706 da6b da6b da6b * * 3d6f 8ea2bdef,8ea2bdefv 7285 e78a85 7285 00007285 da6b da6b da6b da6b da6b da6b da6b -8707 da6c da6c da6c * * 3d70 8ea2bdf0,8ea2bdf0v 728b e78a8b 728b 0000728b da6c da6c da6c da6c da6c da6c da6c -8708 da6d da6d da6d * * 3d71 8ea2bdf1,8ea2bdf1v 7312 e78c92 7312 00007312 da6d da6d da6d da6d da6d da6d da6d -8709 da6e da6e da6e * * 3d72 8ea2bdf2,8ea2bdf2v 730b e78c8b 730b 0000730b da6e da6e da6e da6e da6e da6e da6e -8710 da6f da6f da6f * * 3d73 8ea2bdf3,8ea2bdf3v 7330 e78cb0 7330 00007330 da6f da6f da6f da6f da6f da6f da6f -8711 da70 da70 da70 * * 3d74 8ea2bdf4,8ea2bdf4v 7322 e78ca2 7322 00007322 da70 da70 da70 da70 da70 da70 da70 -8712 da71 da71 da71 * * 3d75 8ea2bdf5,8ea2bdf5v 7331 e78cb1 7331 00007331 da71 da71 da71 da71 da71 da71 da71 -8713 da72 da72 da72 * * 3d76 8ea2bdf6,8ea2bdf6v 7333 e78cb3 7333 00007333 da72 da72 da72 da72 da72 da72 da72 -8714 da73 da73 da73 * * 3d77 8ea2bdf7,8ea2bdf7v 7327 e78ca7 7327 00007327 da73 da73 da73 da73 da73 da73 da73 -8715 da74 da74 da74 * * 3d78 8ea2bdf8,8ea2bdf8v 7332 e78cb2 7332 00007332 da74 da74 da74 da74 da74 da74 da74 -8716 da75 da75 da75 * * 3d79 8ea2bdf9,8ea2bdf9v 732d e78cad 732d 0000732d da75 da75 da75 da75 da75 da75 da75 -8717 da76 da76 da76 * * 3d7a 8ea2bdfa,8ea2bdfav 7326 e78ca6 7326 00007326 da76 da76 da76 da76 da76 da76 da76 -8718 da77 da77 da77 * * 3d7b 8ea2bdfb,8ea2bdfbv 7323 e78ca3 7323 00007323 da77 da77 da77 da77 da77 da77 da77 -8719 da78 da78 da78 * * 3d7c 8ea2bdfc,8ea2bdfcv 7335 e78cb5 7335 00007335 da78 da78 da78 da78 da78 da78 da78 -8720 da79 da79 da79 * * 3d7d 8ea2bdfd,8ea2bdfdv 730c e78c8c 730c 0000730c da79 da79 da79 da79 da79 da79 da79 -8721 da7a da7a da7a * * 3d7e 8ea2bdfe,8ea2bdfev 742e e790ae 742e 0000742e da7a da7a da7a da7a da7a da7a da7a -8722 da7b da7b da7b * * 3e21 8ea2bea1,8ea2bea1v 742c e790ac 742c 0000742c da7b da7b da7b da7b da7b da7b da7b -8723 da7c da7c da7c * * 3e22 8ea2bea2,8ea2bea2v 7430 e790b0 7430 00007430 da7c da7c da7c da7c da7c da7c da7c -8724 da7d da7d da7d * * 3e23 8ea2bea3,8ea2bea3v 742b e790ab 742b 0000742b da7d da7d da7d da7d da7d da7d da7d -8725 da7e da7e da7e * * 3e24 8ea2bea4,8ea2bea4v 7416 e79096 7416 00007416 da7e da7e da7e da7e da7e da7e da7e -8726 daa1 daa1 daa1 * * 3e25 8ea2bea5,8ea2bea5v 741a e7909a 741a 0000741a daa1 daa1 daa1 daa1 daa1 daa1 daa1 -8727 daa2 daa2 daa2 * * 3e26 8ea2bea6,8ea2bea6v 7421 e790a1 7421 00007421 daa2 daa2 daa2 daa2 daa2 daa2 daa2 -8728 daa3 daa3 daa3 * * 3e27 8ea2bea7,8ea2bea7v 742d e790ad 742d 0000742d daa3 daa3 daa3 daa3 daa3 daa3 daa3 -8729 daa4 daa4 daa4 * * 3e28 8ea2bea8,8ea2bea8v 7431 e790b1 7431 00007431 daa4 daa4 daa4 daa4 daa4 daa4 daa4 -8730 daa5 daa5 daa5 * * 3e29 8ea2bea9,8ea2bea9v 7424 e790a4 7424 00007424 daa5 daa5 daa5 daa5 daa5 daa5 daa5 -8731 daa6 daa6 daa6 * * 3e2a 8ea2beaa,8ea2beaav 7423 e790a3 7423 00007423 daa6 daa6 daa6 daa6 daa6 daa6 daa6 -8732 daa7 daa7 daa7 * * 3e2b 8ea2beab,8ea2beabv 741d e7909d 741d 0000741d daa7 daa7 daa7 daa7 daa7 daa7 daa7 -8733 daa8 daa8 daa8 * * 3e2c 8ea2beac,8ea2beacv 7429 e790a9 7429 00007429 daa8 daa8 daa8 daa8 daa8 daa8 daa8 -8734 daa9 daa9 daa9 * * 3e2d 8ea2bead,8ea2beadv 7420 e790a0 7420 00007420 daa9 daa9 daa9 daa9 daa9 daa9 daa9 -8735 daaa daaa daaa * * 3e2e 8ea2beae,8ea2beaev 7432 e790b2 7432 00007432 daaa daaa daaa daaa daaa daaa daaa -8736 daab daab daab * * 3e2f 8ea2beaf,8ea2beafv 74fb e793bb 74fb 000074fb daab daab daab daab daab daab daab -8737 daac daac daac * * 3e30 8ea2beb0,8ea2beb0v 752f e794af 752f 0000752f daac daac daac daac daac daac daac -8738 daad daad daad * * 3e31 8ea2beb1,8ea2beb1v 756f e795af 756f 0000756f daad daad daad daad daad daad daad -8739 daae daae daae * * 3e32 8ea2beb2,8ea2beb2v 756c e795ac 756c 0000756c daae daae daae daae daae daae daae -8740 daaf daaf daaf * * 3e33 8ea2beb3,8ea2beb3v 75e7 e797a7 75e7 000075e7 daaf daaf daaf daaf daaf daaf daaf -8741 dab0 dab0 dab0 * * 3e34 8ea2beb4,8ea2beb4v 75da e7979a 75da 000075da dab0 dab0 dab0 dab0 dab0 dab0 dab0 -8742 dab1 dab1 dab1 * * 3e35 8ea2beb5,8ea2beb5v 75e1 e797a1 75e1 000075e1 dab1 dab1 dab1 dab1 dab1 dab1 dab1 -8743 dab2 dab2 dab2 * * 3e36 8ea2beb6,8ea2beb6v 75e6 e797a6 75e6 000075e6 dab2 dab2 dab2 dab2 dab2 dab2 dab2 -8744 dab3 dab3 dab3 * * 3e37 8ea2beb7,8ea2beb7v 75dd e7979d 75dd 000075dd dab3 dab3 dab3 dab3 dab3 dab3 dab3 -8745 dab4 dab4 dab4 * * 3e38 8ea2beb8,8ea2beb8v 75df e7979f 75df 000075df dab4 dab4 dab4 dab4 dab4 dab4 dab4 -8746 dab5 dab5 dab5 * * 3e39 8ea2beb9,8ea2beb9v 75e4 e797a4 75e4 000075e4 dab5 dab5 dab5 dab5 dab5 dab5 dab5 -8747 dab6 dab6 dab6 * * 3e3a 8ea2beba,8ea2bebav 75d7 e79797 75d7 000075d7 dab6 dab6 dab6 dab6 dab6 dab6 dab6 -8748 dab7 dab7 dab7 * * 3e3b 8ea2bebb,8ea2bebbv 7695 e79a95 7695 00007695 dab7 dab7 dab7 dab7 dab7 dab7 dab7 -8749 dab8 dab8 dab8 * * 3e3c 8ea2bebc,8ea2bebcv 7692 e79a92 7692 00007692 dab8 dab8 dab8 dab8 dab8 dab8 dab8 -8750 dab9 dab9 dab9 * * 3e3d 8ea2bebd,8ea2bebdv 76da e79b9a 76da 000076da dab9 dab9 dab9 dab9 dab9 dab9 dab9 -8751 daba daba daba * * 3e3e 8ea2bebe,8ea2bebev 7746 e79d86 7746 00007746 daba daba daba daba daba daba daba -8752 dabb dabb dabb * * 3e3f 8ea2bebf,8ea2bebfv 7747 e79d87 7747 00007747 dabb dabb dabb dabb dabb dabb dabb -8753 dabc dabc dabc * * 3e40 8ea2bec0,8ea2bec0v 7744 e79d84 7744 00007744 dabc dabc dabc dabc dabc dabc dabc -8754 dabd dabd dabd * * 3e41 8ea2bec1,8ea2bec1v 774d e79d8d 774d 0000774d dabd dabd dabd dabd dabd dabd dabd -8755 dabe dabe dabe * * 3e42 8ea2bec2,8ea2bec2v 7745 e79d85 7745 00007745 dabe dabe dabe dabe dabe dabe dabe -8756 dabf dabf dabf * * 3e43 8ea2bec3,8ea2bec3v 774a e79d8a 774a 0000774a dabf dabf dabf dabf dabf dabf dabf -8757 dac0 dac0 dac0 * * 3e44 8ea2bec4,8ea2bec4v 774e e79d8e 774e 0000774e dac0 dac0 dac0 dac0 dac0 dac0 dac0 -8758 dac1 dac1 dac1 * * 3e45 8ea2bec5,8ea2bec5v 774b e79d8b 774b 0000774b dac1 dac1 dac1 dac1 dac1 dac1 dac1 -8759 dac2 dac2 dac2 * * 3e46 8ea2bec6,8ea2bec6v 774c e79d8c 774c 0000774c dac2 dac2 dac2 dac2 dac2 dac2 dac2 -8760 dac3 dac3 dac3 * * 3e47 8ea2bec7,8ea2bec7v 77de e79f9e 77de 000077de dac3 dac3 dac3 dac3 dac3 dac3 dac3 -8761 dac4 dac4 dac4 * * 3e48 8ea2bec8,8ea2bec8v 77ec e79fac 77ec 000077ec dac4 dac4 dac4 dac4 dac4 dac4 dac4 -8762 dac5 dac5 dac5 * * 3e49 8ea2bec9,8ea2bec9v 7860 e7a1a0 7860 00007860 dac5 dac5 dac5 dac5 dac5 dac5 dac5 -8763 dac6 dac6 dac6 * * 3e4a 8ea2beca,8ea2becav 7864 e7a1a4 7864 00007864 dac6 dac6 dac6 dac6 dac6 dac6 dac6 -8764 dac7 dac7 dac7 * * 3e4b 8ea2becb,8ea2becbv 7865 e7a1a5 7865 00007865 dac7 dac7 dac7 dac7 dac7 dac7 dac7 -8765 dac8 dac8 dac8 * * 3e4c 8ea2becc,8ea2beccv 785c e7a19c 785c 0000785c dac8 dac8 dac8 dac8 dac8 dac8 dac8 -8766 dac9 dac9 dac9 * * 3e4d 8ea2becd,8ea2becdv 786d e7a1ad 786d 0000786d dac9 dac9 dac9 dac9 dac9 dac9 dac9 -8767 daca daca daca * * 3e4e 8ea2bece,8ea2becev 7871 e7a1b1 7871 00007871 daca daca daca daca daca daca daca -8768 dacb dacb dacb * * 3e4f 8ea2becf,8ea2becfv 786a e7a1aa 786a 0000786a dacb dacb dacb dacb dacb dacb dacb -8769 dacc dacc dacc * * 3e50 8ea2bed0,8ea2bed0v 786e e7a1ae 786e 0000786e dacc dacc dacc dacc dacc dacc dacc -8770 dacd dacd dacd * * 3e51 8ea2bed1,8ea2bed1v 7870 e7a1b0 7870 00007870 dacd dacd dacd dacd dacd dacd dacd -8771 dace dace dace * * 3e52 8ea2bed2,8ea2bed2v 7869 e7a1a9 7869 00007869 dace dace dace dace dace dace dace -8772 dacf dacf dacf * * 3e53 8ea2bed3,8ea2bed3v 7868 e7a1a8 7868 00007868 dacf dacf dacf dacf dacf dacf dacf -8773 dad0 dad0 dad0 * * 3e54 8ea2bed4,8ea2bed4v 785e e7a19e 785e 0000785e dad0 dad0 dad0 dad0 dad0 dad0 dad0 -8774 dad1 dad1 dad1 * * 3e55 8ea2bed5,8ea2bed5v 7862 e7a1a2 7862 00007862 dad1 dad1 dad1 dad1 dad1 dad1 dad1 -8775 dad2 dad2 dad2 * * 3e56 8ea2bed6,8ea2bed6v 7974 e7a5b4 7974 00007974 dad2 dad2 dad2 dad2 dad2 dad2 dad2 -8776 dad3 dad3 dad3 * * 3e57 8ea2bed7,8ea2bed7v 7973 e7a5b3 7973 00007973 dad3 dad3 dad3 dad3 dad3 dad3 dad3 -8777 dad4 dad4 dad4 * * 3e58 8ea2bed8,8ea2bed8v 7972 e7a5b2 7972 00007972 dad4 dad4 dad4 dad4 dad4 dad4 dad4 -8778 dad5 dad5 dad5 * * 3e59 8ea2bed9,8ea2bed9v 7970 e7a5b0 7970 00007970 dad5 dad5 dad5 dad5 dad5 dad5 dad5 -8779 dad6 dad6 dad6 * * 3e5a 8ea2beda,8ea2bedav 7a02 e7a882 7a02 00007a02 dad6 dad6 dad6 dad6 dad6 dad6 dad6 -8780 dad7 dad7 dad7 * * 3e5b 8ea2bedb,8ea2bedbv 7a0a e7a88a 7a0a 00007a0a dad7 dad7 dad7 dad7 dad7 dad7 dad7 -8781 dad8 dad8 dad8 * * 3e5c 8ea2bedc,8ea2bedcv 7a03 e7a883 7a03 00007a03 dad8 dad8 dad8 dad8 dad8 dad8 dad8 -8782 dad9 dad9 dad9 * * 3e5d 8ea2bedd,8ea2beddv 7a0c e7a88c 7a0c 00007a0c dad9 dad9 dad9 dad9 dad9 dad9 dad9 -8783 dada dada dada * * 3e5e 8ea2bede,8ea2bedev 7a04 e7a884 7a04 00007a04 dada dada dada dada dada dada dada -8784 dadb dadb dadb * * 3e5f 8ea2bedf,8ea2bedfv 7a99 e7aa99 7a99 00007a99 dadb dadb dadb dadb dadb dadb dadb -8785 dadc dadc dadc * * 3e60 8ea2bee0,8ea2bee0v 7ae6 e7aba6 7ae6 00007ae6 dadc dadc dadc dadc dadc dadc dadc -8786 dadd dadd dadd * * 3e61 8ea2bee1,8ea2bee1v 7ae4 e7aba4 7ae4 00007ae4 dadd dadd dadd dadd dadd dadd dadd -8787 dade dade dade * * 3e62 8ea2bee2,8ea2bee2v 7b4a e7ad8a 7b4a 00007b4a dade dade dade dade dade dade dade -8788 d6cc d6cc d6cc * * 3e63 8ea2bee3,8ea2bee3v 7b47 e7ad87 7b47 00007b47 d6cc d6cc d6cc d6cc d6cc d6cc d6cc -8789 dae0 dae0 dae0 * * 3e64 8ea2bee4,8ea2bee4v 7b44 e7ad84 7b44 00007b44 dae0 dae0 dae0 dae0 dae0 dae0 dae0 -8790 dae1 dae1 dae1 * * 3e65 8ea2bee5,8ea2bee5v 7b48 e7ad88 7b48 00007b48 dae1 dae1 dae1 dae1 dae1 dae1 dae1 -8791 dae2 dae2 dae2 * * 3e66 8ea2bee6,8ea2bee6v 7b4c e7ad8c 7b4c 00007b4c dae2 dae2 dae2 dae2 dae2 dae2 dae2 -8792 dae3 dae3 dae3 * * 3e67 8ea2bee7,8ea2bee7v 7b4e e7ad8e 7b4e 00007b4e dae3 dae3 dae3 dae3 dae3 dae3 dae3 -8793 dae4 dae4 dae4 * * 3e68 8ea2bee8,8ea2bee8v 7b40 e7ad80 7b40 00007b40 dae4 dae4 dae4 dae4 dae4 dae4 dae4 -8794 dae5 dae5 dae5 * * 3e69 8ea2bee9,8ea2bee9v 7b58 e7ad98 7b58 00007b58 dae5 dae5 dae5 dae5 dae5 dae5 dae5 -8795 dae6 dae6 dae6 * * 3e6a 8ea2beea,8ea2beeav 7b45 e7ad85 7b45 00007b45 dae6 dae6 dae6 dae6 dae6 dae6 dae6 -8796 dae7 dae7 dae7 * * 3e6b 8ea2beeb,8ea2beebv 7ca2 e7b2a2 7ca2 00007ca2 dae7 dae7 dae7 dae7 dae7 dae7 dae7 -8797 dae8 dae8 dae8 * * 3e6c 8ea2beec,8ea2beecv 7c9e e7b29e 7c9e 00007c9e dae8 dae8 dae8 dae8 dae8 dae8 dae8 -8798 dae9 dae9 dae9 * * 3e6d 8ea2beed,8ea2beedv 7ca8 e7b2a8 7ca8 00007ca8 dae9 dae9 dae9 dae9 dae9 dae9 dae9 -8799 daea daea daea * * 3e6e 8ea2beee,8ea2beeev 7ca1 e7b2a1 7ca1 00007ca1 daea daea daea daea daea daea daea -8800 daeb daeb daeb * * 3e6f 8ea2beef,8ea2beefv 7d58 e7b598 7d58 00007d58 daeb daeb daeb daeb daeb daeb daeb -8801 daec daec daec * * 3e70 8ea2bef0,8ea2bef0v 7d6f e7b5af 7d6f 00007d6f daec daec daec daec daec daec daec -8802 daed daed daed * * 3e71 8ea2bef1,8ea2bef1v 7d63 e7b5a3 7d63 00007d63 daed daed daed daed daed daed daed -8803 daee daee daee * * 3e72 8ea2bef2,8ea2bef2v 7d53 e7b593 7d53 00007d53 daee daee daee daee daee daee daee -8804 daef daef daef * * 3e73 8ea2bef3,8ea2bef3v 7d56 e7b596 7d56 00007d56 daef daef daef daef daef daef daef -8805 daf0 daf0 daf0 * * 3e74 8ea2bef4,8ea2bef4v 7d67 e7b5a7 7d67 00007d67 daf0 daf0 daf0 daf0 daf0 daf0 daf0 -8806 daf1 daf1 daf1 * * 3e75 8ea2bef5,8ea2bef5v 7d6a e7b5aa 7d6a 00007d6a daf1 daf1 daf1 daf1 daf1 daf1 daf1 -8807 daf2 daf2 daf2 * * 3e76 8ea2bef6,8ea2bef6v 7d4f e7b58f 7d4f 00007d4f daf2 daf2 daf2 daf2 daf2 daf2 daf2 -8808 daf3 daf3 daf3 * * 3e77 8ea2bef7,8ea2bef7v 7d6d e7b5ad 7d6d 00007d6d daf3 daf3 daf3 daf3 daf3 daf3 daf3 -8809 daf4 daf4 daf4 * * 3e78 8ea2bef8,8ea2bef8v 7d5c e7b59c 7d5c 00007d5c daf4 daf4 daf4 daf4 daf4 daf4 daf4 -8810 daf5 daf5 daf5 * * 3e79 8ea2bef9,8ea2bef9v 7d6b e7b5ab 7d6b 00007d6b daf5 daf5 daf5 daf5 daf5 daf5 daf5 -8811 daf6 daf6 daf6 * * 3e7a 8ea2befa,8ea2befav 7d52 e7b592 7d52 00007d52 daf6 daf6 daf6 daf6 daf6 daf6 daf6 -8812 daf7 daf7 daf7 * * 3e7b 8ea2befb,8ea2befbv 7d54 e7b594 7d54 00007d54 daf7 daf7 daf7 daf7 daf7 daf7 daf7 -8813 daf8 daf8 daf8 * * 3e7c 8ea2befc,8ea2befcv 7d69 e7b5a9 7d69 00007d69 daf8 daf8 daf8 daf8 daf8 daf8 daf8 -8814 daf9 daf9 daf9 * * 3e7d 8ea2befd,8ea2befdv 7d51 e7b591 7d51 00007d51 daf9 daf9 daf9 daf9 daf9 daf9 daf9 -8815 dafa dafa dafa * * 3e7e 8ea2befe,8ea2befev 7d5f e7b59f 7d5f 00007d5f dafa dafa dafa dafa dafa dafa dafa -8816 dafb dafb dafb * * 3f21 8ea2bfa1,8ea2bfa1v 7d4e e7b58e 7d4e 00007d4e dafb dafb dafb dafb dafb dafb dafb -8817 dafc dafc dafc * * 3f22 8ea2bfa2,8ea2bfa2v 7f3e e7bcbe 7f3e 00007f3e dafc dafc dafc dafc dafc dafc dafc -8818 dafd dafd dafd * * 3f23 8ea2bfa3,8ea2bfa3v 7f3f e7bcbf 7f3f 00007f3f dafd dafd dafd dafd dafd dafd dafd -8819 dafe dafe dafe * * 3f24 8ea2bfa4,8ea2bfa4v 7f65 e7bda5 7f65 00007f65 dafe dafe dafe dafe dafe dafe dafe -8820 db40 db40 db40 * * 3f25 8ea2bfa5,8ea2bfa5v 7f66 e7bda6 7f66 00007f66 db40 db40 db40 db40 db40 db40 db40 -8821 db41 db41 db41 * * 3f26 8ea2bfa6,8ea2bfa6v 7fa2 e7bea2 7fa2 00007fa2 db41 db41 db41 db41 db41 db41 db41 -8822 db42 db42 db42 * * 3f27 8ea2bfa7,8ea2bfa7v 7fa0 e7bea0 7fa0 00007fa0 db42 db42 db42 db42 db42 db42 db42 -8823 db43 db43 db43 * * 3f28 8ea2bfa8,8ea2bfa8v 7fa1 e7bea1 7fa1 00007fa1 db43 db43 db43 db43 db43 db43 db43 -8824 db44 db44 db44 * * 3f29 8ea2bfa9,8ea2bfa9v 7fd7 e7bf97 7fd7 00007fd7 db44 db44 db44 db44 db44 db44 db44 -8825 db45 db45 db45 * * 3f2a 8ea2bfaa,8ea2bfaav 8051 e88191 8051 00008051 db45 db45 db45 db45 db45 db45 db45 -8826 db46 db46 db46 * * 3f2b 8ea2bfab,8ea2bfabv 804f e8818f 804f 0000804f db46 db46 db46 db46 db46 db46 db46 -8827 db47 db47 db47 * * 3f2c 8ea2bfac,8ea2bfacv 8050 e88190 8050 00008050 db47 db47 db47 db47 db47 db47 db47 -8828 db48 db48 db48 * * 3f2d 8ea2bfad,8ea2bfadv 80fe e883be 80fe 000080fe db48 db48 db48 db48 db48 db48 db48 -8829 db49 db49 db49 * * 3f2e 8ea2bfae,8ea2bfaev 80d4 e88394 80d4 000080d4 db49 db49 db49 db49 db49 db49 db49 -8830 db4a db4a db4a * * 3f2f 8ea2bfaf,8ea2bfafv 8143 e88583 8143 00008143 db4a db4a db4a db4a db4a db4a db4a -8831 db4b db4b db4b * * 3f30 8ea2bfb0,8ea2bfb0v 814a e8858a 814a 0000814a db4b db4b db4b db4b db4b db4b db4b -8832 db4c db4c db4c * * 3f31 8ea2bfb1,8ea2bfb1v 8152 e88592 8152 00008152 db4c db4c db4c db4c db4c db4c db4c -8833 db4d db4d db4d * * 3f32 8ea2bfb2,8ea2bfb2v 814f e8858f 814f 0000814f db4d db4d db4d db4d db4d db4d db4d -8834 db4e db4e db4e * * 3f33 8ea2bfb3,8ea2bfb3v 8147 e88587 8147 00008147 db4e db4e db4e db4e db4e db4e db4e -8835 db4f db4f db4f * * 3f34 8ea2bfb4,8ea2bfb4v 813d e884bd 813d 0000813d db4f db4f db4f db4f db4f db4f db4f -8836 db50 db50 db50 * * 3f35 8ea2bfb5,8ea2bfb5v 814d e8858d 814d 0000814d db50 db50 db50 db50 db50 db50 db50 -8837 db51 db51 db51 * * 3f36 8ea2bfb6,8ea2bfb6v 813a e884ba 813a 0000813a db51 db51 db51 db51 db51 db51 db51 -8838 db52 db52 db52 * * 3f37 8ea2bfb7,8ea2bfb7v 81e6 e887a6 81e6 000081e6 db52 db52 db52 db52 db52 db52 db52 -8839 db53 db53 db53 * * 3f38 8ea2bfb8,8ea2bfb8v 81ee e887ae 81ee 000081ee db53 db53 db53 db53 db53 db53 db53 -8840 db54 db54 db54 * * 3f39 8ea2bfb9,8ea2bfb9v 81f7 e887b7 81f7 000081f7 db54 db54 db54 db54 db54 db54 db54 -8841 db55 db55 db55 * * 3f3a 8ea2bfba,8ea2bfbav 81f8 e887b8 81f8 000081f8 db55 db55 db55 db55 db55 db55 db55 -8842 db56 db56 db56 * * 3f3b 8ea2bfbb,8ea2bfbbv 81f9 e887b9 81f9 000081f9 db56 db56 db56 db56 db56 db56 db56 -8843 db57 db57 db57 * * 3f3c 8ea2bfbc,8ea2bfbcv 8204 e88884 8204 00008204 db57 db57 db57 db57 db57 db57 db57 -8844 db58 db58 db58 * * 3f3d 8ea2bfbd,8ea2bfbdv 823c e888bc 823c 0000823c db58 db58 db58 db58 db58 db58 db58 -8845 db59 db59 db59 * * 3f3e 8ea2bfbe,8ea2bfbev 823d e888bd 823d 0000823d db59 db59 db59 db59 db59 db59 db59 -8846 db5a db5a db5a * * 3f3f 8ea2bfbf,8ea2bfbfv 823f e888bf 823f 0000823f db5a db5a db5a db5a db5a db5a db5a -8847 db5b db5b db5b * * 3f40 8ea2bfc0,8ea2bfc0v 8275 e889b5 8275 00008275 db5b db5b db5b db5b db5b db5b db5b -8848 db5c db5c db5c * * 3f41 8ea2bfc1,8ea2bfc1v 833b e88cbb 833b 0000833b db5c db5c db5c db5c db5c db5c db5c -8849 db5d db5d db5d * * 3f42 8ea2bfc2,8ea2bfc2v 83cf e88f8f,eeaf9e 83cf,ebde 000083cf,0000ebde 9c77,db5d db5d db5d db5d db5d db5d 9c77,db5d -8850 db5e db5e db5e * * 3f43 8ea2bfc3,8ea2bfc3v 83f9 e88fb9 83f9 000083f9 db5e db5e db5e db5e db5e db5e db5e -8851 db5f db5f db5f * * 3f44 8ea2bfc4,8ea2bfc4v 8423 e890a3 8423 00008423 db5f db5f db5f db5f db5f db5f db5f -8852 db60 db60 db60 * * 3f45 8ea2bfc5,8ea2bfc5v 83c0 e88f80 83c0 000083c0 db60 db60 db60 db60 db60 db60 db60 -8853 db61 db61 db61 * * 3f46 8ea2bfc6,8ea2bfc6v 83e8 e88fa8 83e8 000083e8 db61 db61 db61 db61 db61 db61 db61 -8854 db62 db62 db62 * * 3f47 8ea2bfc7,8ea2bfc7v 8412 e89092 8412 00008412 db62 db62 db62 db62 db62 db62 db62 -8855 db63 db63 db63 * * 3f48 8ea2bfc8,8ea2bfc8v 83e7 e88fa7 83e7 000083e7 db63 db63 db63 db63 db63 db63 db63 -8856 db64 db64 db64 * * 3f49 8ea2bfc9,8ea2bfc9v 83e4 e88fa4 83e4 000083e4 db64 db64 db64 db64 db64 db64 db64 -8857 db65 db65 db65 * * 3f4a 8ea2bfca,8ea2bfcav 83fc e88fbc 83fc 000083fc db65 db65 db65 db65 db65 db65 db65 -8858 db66 db66 db66 * * 3f4b 8ea2bfcb,8ea2bfcbv 83f6 e88fb6 83f6 000083f6 db66 db66 db66 db66 db66 db66 db66 -8859 db67 db67 db67 * * 3f4c 8ea2bfcc,8ea2bfccv 8410 e89090 8410 00008410 db67 db67 db67 db67 db67 db67 db67 -8860 db68 db68 db68 * * 3f4d 8ea2bfcd,8ea2bfcdv 83c6 e88f86 83c6 000083c6 db68 db68 db68 db68 db68 db68 db68 -8861 db69 db69 db69 * * 3f4e 8ea2bfce,8ea2bfcev 83c8 e88f88 83c8 000083c8 db69 db69 db69 db69 db69 db69 db69 -8862 db6a db6a db6a * * 3f4f 8ea2bfcf,8ea2bfcfv 83eb e88fab 83eb 000083eb db6a db6a db6a db6a db6a db6a db6a -8863 db6b db6b db6b * * 3f50 8ea2bfd0,8ea2bfd0v 83e3 e88fa3 83e3 000083e3 db6b db6b db6b db6b db6b db6b db6b -8864 db6c db6c db6c * * 3f51 8ea2bfd1,8ea2bfd1v 83bf e88ebf 83bf 000083bf db6c db6c db6c db6c db6c db6c db6c -8865 db6d db6d db6d * * 3f52 8ea2bfd2,8ea2bfd2v 8401 e89081 8401 00008401 db6d db6d db6d db6d db6d db6d db6d -8866 db6e db6e db6e * * 3f53 8ea2bfd3,8ea2bfd3v 83dd e88f9d 83dd 000083dd db6e db6e db6e db6e db6e db6e db6e -8867 db6f db6f db6f * * 3f54 8ea2bfd4,8ea2bfd4v 83e5 e88fa5 83e5 000083e5 db6f db6f db6f db6f db6f db6f db6f -8868 db70 db70 db70 * * 3f55 8ea2bfd5,8ea2bfd5v 83d8 e88f98 83d8 000083d8 db70 db70 db70 db70 db70 db70 db70 -8869 db71 db71 db71 * * 3f56 8ea2bfd6,8ea2bfd6v 83ff e88fbf 83ff 000083ff db71 db71 db71 db71 db71 db71 db71 -8870 db72 db72 db72 * * 3f57 8ea2bfd7,8ea2bfd7v 83e1 e88fa1 83e1 000083e1 db72 db72 db72 db72 db72 db72 db72 -8871 db73 db73 db73 * * 3f58 8ea2bfd8,8ea2bfd8v 83cb e88f8b 83cb 000083cb db73 db73 db73 db73 db73 db73 db73 -8872 db74 db74 db74 * * 3f59 8ea2bfd9,8ea2bfd9v 83ce e88f8e 83ce 000083ce db74 db74 db74 db74 db74 db74 db74 -8873 db75 db75 db75 * * 3f5a 8ea2bfda,8ea2bfdav 83d6 e88f96 83d6 000083d6 db75 db75 db75 db75 db75 db75 db75 -8874 db76 db76 db76 * * 3f5b 8ea2bfdb,8ea2bfdbv 83f5 e88fb5 83f5 000083f5 db76 db76 db76 db76 db76 db76 db76 -8875 db77 db77 db77 * * 3f5c 8ea2bfdc,8ea2bfdcv 83c9 e88f89 83c9 000083c9 db77 db77 db77 db77 db77 db77 db77 -8876 db78 db78 db78 * * 3f5d 8ea2bfdd,8ea2bfddv 8409 e89089 8409 00008409 db78 db78 db78 db78 db78 db78 db78 -8877 db79 db79 db79 * * 3f5e 8ea2bfde,8ea2bfdev 840f e8908f,ee8f9c 840f,e3dc 0000840f,0000e3dc 8f6e,db79 db79 db79 db79 db79 db79 8f6e,db79 -8878 db7a db7a db7a * * 3f5f 8ea2bfdf,8ea2bfdfv 83de e88f9e 83de 000083de db7a db7a db7a db7a db7a db7a db7a -8879 db7b db7b db7b * * 3f60 8ea2bfe0,8ea2bfe0v 8411 e89091 8411 00008411 db7b db7b db7b db7b db7b db7b db7b -8880 db7c db7c db7c * * 3f61 8ea2bfe1,8ea2bfe1v 8406 e89086 8406 00008406 db7c db7c db7c db7c db7c db7c db7c -8881 db7d db7d db7d * * 3f62 8ea2bfe2,8ea2bfe2v 83c2 e88f82 83c2 000083c2 db7d db7d db7d db7d db7d db7d db7d -8882 db7e db7e db7e * * 3f63 8ea2bfe3,8ea2bfe3v 83f3 e88fb3 83f3 000083f3 db7e db7e db7e db7e db7e db7e db7e -8883 dba1 dba1 dba1 * * 3f64 8ea2bfe4,8ea2bfe4v 83d5 e88f95 83d5 000083d5 dba1 dba1 dba1 dba1 dba1 dba1 dba1 -8884 dba2 dba2 dba2 * * 3f65 8ea2bfe5,8ea2bfe5v 83fa e88fba 83fa 000083fa dba2 dba2 dba2 dba2 dba2 dba2 dba2 -8885 dba3 dba3 dba3 * * 3f66 8ea2bfe6,8ea2bfe6v 83c7 e88f87 83c7 000083c7 dba3 dba3 dba3 dba3 dba3 dba3 dba3 -8886 dba4 dba4 dba4 * * 3f67 8ea2bfe7,8ea2bfe7v 83d1 e88f91 83d1 000083d1 dba4 dba4 dba4 dba4 dba4 dba4 dba4 -8887 dba5 dba5 dba5 * * 3f68 8ea2bfe8,8ea2bfe8v 83ea e88faa 83ea 000083ea dba5 dba5 dba5 dba5 dba5 dba5 dba5 -8888 dba6 dba6 dba6 * * 3f69 8ea2bfe9,8ea2bfe9v 8413 e89093 8413 00008413 dba6 dba6 dba6 dba6 dba6 dba6 dba6 -8889 d77a d77a d77a * * 3f6a 8ea2bfea,8ea2bfeav 839a e88e9a 839a 0000839a d77a d77a d77a d77a d77a d77a d77a -8890 dba7 dba7 dba7 * * 3f6b 8ea2bfeb,8ea2bfebv 83c3 e88f83 83c3 000083c3 dba7 dba7 dba7 dba7 dba7 dba7 dba7 -8891 dba8 dba8 dba8 * * 3f6c 8ea2bfec,8ea2bfecv 83ec e88fac 83ec 000083ec dba8 dba8 dba8 dba8 dba8 dba8 dba8 -8892 dba9 dba9 dba9 * * 3f6d 8ea2bfed,8ea2bfedv 83ee e88fae 83ee 000083ee dba9 dba9 dba9 dba9 dba9 dba9 dba9 -8893 dbaa dbaa dbaa * * 3f6e 8ea2bfee,8ea2bfeev 83c4 e88f84 83c4 000083c4 dbaa dbaa dbaa dbaa dbaa dbaa dbaa -8894 dbab dbab dbab * * 3f6f 8ea2bfef,8ea2bfefv 83fb e88fbb 83fb 000083fb dbab dbab dbab dbab dbab dbab dbab -8895 dbac dbac dbac * * 3f70 8ea2bff0,8ea2bff0v 83d7 e88f97 83d7 000083d7 dbac dbac dbac dbac dbac dbac dbac -8896 dbad dbad dbad * * 3f71 8ea2bff1,8ea2bff1v 83e2 e88fa2 83e2 000083e2 dbad dbad dbad dbad dbad dbad dbad -8897 dbae dbae dbae * * 3f72 8ea2bff2,8ea2bff2v 841b e8909b 841b 0000841b dbae dbae dbae dbae dbae dbae dbae -8898 dbaf dbaf dbaf * * 3f73 8ea2bff3,8ea2bff3v 83db e88f9b 83db 000083db dbaf dbaf dbaf dbaf dbaf dbaf dbaf -8899 dbb0 dbb0 dbb0 * * 3f74 8ea2bff4,8ea2bff4v 83fe e88fbe 83fe 000083fe dbb0 dbb0 dbb0 dbb0 dbb0 dbb0 dbb0 -8900 dbb1 dbb1 dbb1 * * 3f75 8ea2bff5,8ea2bff5v 86d8 e89b98 86d8 000086d8 dbb1 dbb1 dbb1 dbb1 dbb1 dbb1 dbb1 -8901 dbb2 dbb2 dbb2 * * 3f76 8ea2bff6,8ea2bff6v 86e2 e89ba2 86e2 000086e2 dbb2 dbb2 dbb2 dbb2 dbb2 dbb2 dbb2 -8902 dbb3 dbb3 dbb3 * * 3f77 8ea2bff7,8ea2bff7v 86e6 e89ba6 86e6 000086e6 dbb3 dbb3 dbb3 dbb3 dbb3 dbb3 dbb3 -8903 dbb4 dbb4 dbb4 * * 3f78 8ea2bff8,8ea2bff8v 86d3 e89b93 86d3 000086d3 dbb4 dbb4 dbb4 dbb4 dbb4 dbb4 dbb4 -8904 dbb5 dbb5 dbb5 * * 3f79 8ea2bff9,8ea2bff9v 86e3 e89ba3 86e3 000086e3 dbb5 dbb5 dbb5 dbb5 dbb5 dbb5 dbb5 -8905 dbb6 dbb6 dbb6 * * 3f7a 8ea2bffa,8ea2bffav 86da e89b9a 86da 000086da dbb6 dbb6 dbb6 dbb6 dbb6 dbb6 dbb6 -8906 dbb7 dbb7 dbb7 * * 3f7b 8ea2bffb,8ea2bffbv 86ea e89baa 86ea 000086ea dbb7 dbb7 dbb7 dbb7 dbb7 dbb7 dbb7 -8907 dbb8 dbb8 dbb8 * * 3f7c 8ea2bffc,8ea2bffcv 86dd e89b9d 86dd 000086dd dbb8 dbb8 dbb8 dbb8 dbb8 dbb8 dbb8 -8908 dbb9 dbb9 dbb9 * * 3f7d 8ea2bffd,8ea2bffdv 86eb e89bab 86eb 000086eb dbb9 dbb9 dbb9 dbb9 dbb9 dbb9 dbb9 -8909 dbba dbba dbba * * 3f7e 8ea2bffe,8ea2bffev 86dc e89b9c 86dc 000086dc dbba dbba dbba dbba dbba dbba dbba -8910 dbbb dbbb dbbb * * 4021 8ea2c0a1,8ea2c0a1v 86ec e89bac 86ec 000086ec dbbb dbbb dbbb dbbb dbbb dbbb dbbb -8911 dbbc dbbc dbbc * * 4022 8ea2c0a2,8ea2c0a2v 86e9 e89ba9 86e9 000086e9 dbbc dbbc dbbc dbbc dbbc dbbc dbbc -8912 dbbd dbbd dbbd * * 4023 8ea2c0a3,8ea2c0a3v 86d7 e89b97 86d7 000086d7 dbbd dbbd dbbd dbbd dbbd dbbd dbbd -8913 dbbe dbbe dbbe * * 4024 8ea2c0a4,8ea2c0a4v 86e8 e89ba8 86e8 000086e8 dbbe dbbe dbbe dbbe dbbe dbbe dbbe -8914 dbbf dbbf dbbf * * 4025 8ea2c0a5,8ea2c0a5v 86d1 e89b91 86d1 000086d1 dbbf dbbf dbbf dbbf dbbf dbbf dbbf -8915 dbc0 dbc0 dbc0 * * 4026 8ea2c0a6,8ea2c0a6v 8848 e8a188 8848 00008848 dbc0 dbc0 dbc0 dbc0 dbc0 dbc0 dbc0 -8916 dbc1 dbc1 dbc1 * * 4027 8ea2c0a7,8ea2c0a7v 8856 e8a196 8856 00008856 dbc1 dbc1 dbc1 dbc1 dbc1 dbc1 dbc1 -8917 dbc2 dbc2 dbc2 * * 4028 8ea2c0a8,8ea2c0a8v 8855 e8a195 8855 00008855 dbc2 dbc2 dbc2 dbc2 dbc2 dbc2 dbc2 -8918 dbc3 dbc3 dbc3 * * 4029 8ea2c0a9,8ea2c0a9v 88ba e8a2ba 88ba 000088ba dbc3 dbc3 dbc3 dbc3 dbc3 dbc3 dbc3 -8919 dbc4 dbc4 dbc4 * * 402a 8ea2c0aa,8ea2c0aav 88d7 e8a397 88d7 000088d7 dbc4 dbc4 dbc4 dbc4 dbc4 dbc4 dbc4 -8920 dbc5 dbc5 dbc5 * * 402b 8ea2c0ab,8ea2c0abv 88b9 e8a2b9 88b9 000088b9 dbc5 dbc5 dbc5 dbc5 dbc5 dbc5 dbc5 -8921 dbc6 dbc6 dbc6 * * 402c 8ea2c0ac,8ea2c0acv 88b8 e8a2b8 88b8 000088b8 dbc6 dbc6 dbc6 dbc6 dbc6 dbc6 dbc6 -8922 dbc7 dbc7 dbc7 * * 402d 8ea2c0ad,8ea2c0adv 88c0 e8a380 88c0 000088c0 dbc7 dbc7 dbc7 dbc7 dbc7 dbc7 dbc7 -8923 dbc8 dbc8 dbc8 * * 402e 8ea2c0ae,8ea2c0aev 88be e8a2be 88be 000088be dbc8 dbc8 dbc8 dbc8 dbc8 dbc8 dbc8 -8924 dbc9 dbc9 dbc9 * * 402f 8ea2c0af,8ea2c0afv 88b6 e8a2b6 88b6 000088b6 dbc9 dbc9 dbc9 dbc9 dbc9 dbc9 dbc9 -8925 dbca dbca dbca * * 4030 8ea2c0b0,8ea2c0b0v 88bc e8a2bc 88bc 000088bc dbca dbca dbca dbca dbca dbca dbca -8926 dbcb dbcb dbcb * * 4031 8ea2c0b1,8ea2c0b1v 88b7 e8a2b7 88b7 000088b7 dbcb dbcb dbcb dbcb dbcb dbcb dbcb -8927 dbcc dbcc dbcc * * 4032 8ea2c0b2,8ea2c0b2v 88bd e8a2bd 88bd 000088bd dbcc dbcc dbcc dbcc dbcc dbcc dbcc -8928 dbcd dbcd dbcd * * 4033 8ea2c0b3,8ea2c0b3v 88b2 e8a2b2 88b2 000088b2 dbcd dbcd dbcd dbcd dbcd dbcd dbcd -8929 dbce dbce dbce * * 4034 8ea2c0b4,8ea2c0b4v 8901 e8a481 8901 00008901 dbce dbce dbce dbce dbce dbce dbce -8930 dbcf dbcf dbcf * * 4035 8ea2c0b5,8ea2c0b5v 88c9 e8a389 88c9 000088c9 dbcf dbcf dbcf dbcf dbcf dbcf dbcf -8931 dbd0 dbd0 dbd0 * * 4036 8ea2c0b6,8ea2c0b6v 8995 e8a695 8995 00008995 dbd0 dbd0 dbd0 dbd0 dbd0 dbd0 dbd0 -8932 dbd1 dbd1 dbd1 * * 4037 8ea2c0b7,8ea2c0b7v 8998 e8a698 8998 00008998 dbd1 dbd1 dbd1 dbd1 dbd1 dbd1 dbd1 -8933 dbd2 dbd2 dbd2 * * 4038 8ea2c0b8,8ea2c0b8v 8997 e8a697 8997 00008997 dbd2 dbd2 dbd2 dbd2 dbd2 dbd2 dbd2 -8934 dbd3 dbd3 dbd3 * * 4039 8ea2c0b9,8ea2c0b9v 89dd e8a79d 89dd 000089dd dbd3 dbd3 dbd3 dbd3 dbd3 dbd3 dbd3 -8935 dbd4 dbd4 dbd4 * * 403a 8ea2c0ba,8ea2c0bav 89da e8a79a 89da 000089da dbd4 dbd4 dbd4 dbd4 dbd4 dbd4 dbd4 -8936 dbd5 dbd5 dbd5 * * 403b 8ea2c0bb,8ea2c0bbv 89db e8a79b 89db 000089db dbd5 dbd5 dbd5 dbd5 dbd5 dbd5 dbd5 -8937 dbd6 dbd6 dbd6 * * 403c 8ea2c0bc,8ea2c0bcv 8a4e e8a98e 8a4e 00008a4e dbd6 dbd6 dbd6 dbd6 dbd6 dbd6 dbd6 -8938 dbd7 dbd7 dbd7 * * 403d 8ea2c0bd,8ea2c0bdv 8a4d e8a98d 8a4d 00008a4d dbd7 dbd7 dbd7 dbd7 dbd7 dbd7 dbd7 -8939 dbd8 dbd8 dbd8 * * 403e 8ea2c0be,8ea2c0bev 8a39 e8a8b9 8a39 00008a39 dbd8 dbd8 dbd8 dbd8 dbd8 dbd8 dbd8 -8940 dbd9 dbd9 dbd9 * * 403f 8ea2c0bf,8ea2c0bfv 8a59 e8a999 8a59 00008a59 dbd9 dbd9 dbd9 dbd9 dbd9 dbd9 dbd9 -8941 dbda dbda dbda * * 4040 8ea2c0c0,8ea2c0c0v 8a40 e8a980 8a40 00008a40 dbda dbda dbda dbda dbda dbda dbda -8942 dbdb dbdb dbdb * * 4041 8ea2c0c1,8ea2c0c1v 8a57 e8a997 8a57 00008a57 dbdb dbdb dbdb dbdb dbdb dbdb dbdb -8943 dbdc dbdc dbdc * * 4042 8ea2c0c2,8ea2c0c2v 8a58 e8a998 8a58 00008a58 dbdc dbdc dbdc dbdc dbdc dbdc dbdc -8944 dbdd dbdd dbdd * * 4043 8ea2c0c3,8ea2c0c3v 8a44 e8a984 8a44 00008a44 dbdd dbdd dbdd dbdd dbdd dbdd dbdd -8945 dbde dbde dbde * * 4044 8ea2c0c4,8ea2c0c4v 8a45 e8a985 8a45 00008a45 dbde dbde dbde dbde dbde dbde dbde -8946 dbdf dbdf dbdf * * 4045 8ea2c0c5,8ea2c0c5v 8a52 e8a992 8a52 00008a52 dbdf dbdf dbdf dbdf dbdf dbdf dbdf -8947 dbe0 dbe0 dbe0 * * 4046 8ea2c0c6,8ea2c0c6v 8a48 e8a988 8a48 00008a48 dbe0 dbe0 dbe0 dbe0 dbe0 dbe0 dbe0 -8948 dbe1 dbe1 dbe1 * * 4047 8ea2c0c7,8ea2c0c7v 8a51 e8a991 8a51 00008a51 dbe1 dbe1 dbe1 dbe1 dbe1 dbe1 dbe1 -8949 dbe2 dbe2 dbe2 * * 4048 8ea2c0c8,8ea2c0c8v 8a4a e8a98a 8a4a 00008a4a dbe2 dbe2 dbe2 dbe2 dbe2 dbe2 dbe2 -8950 dbe3 dbe3 dbe3 * * 4049 8ea2c0c9,8ea2c0c9v 8a4c e8a98c 8a4c 00008a4c dbe3 dbe3 dbe3 dbe3 dbe3 dbe3 dbe3 -8951 dbe4 dbe4 dbe4 * * 404a 8ea2c0ca,8ea2c0cav 8a4f e8a98f 8a4f 00008a4f dbe4 dbe4 dbe4 dbe4 dbe4 dbe4 dbe4 -8952 dbe5 dbe5 dbe5 * * 404b 8ea2c0cb,8ea2c0cbv 8c5f e8b19f 8c5f 00008c5f dbe5 dbe5 dbe5 dbe5 dbe5 dbe5 dbe5 -8953 dbe6 dbe6 dbe6 * * 404c 8ea2c0cc,8ea2c0ccv 8c81 e8b281 8c81 00008c81 dbe6 dbe6 dbe6 dbe6 dbe6 dbe6 dbe6 -8954 dbe7 dbe7 dbe7 * * 404d 8ea2c0cd,8ea2c0cdv 8c80 e8b280 8c80 00008c80 dbe7 dbe7 dbe7 dbe7 dbe7 dbe7 dbe7 -8955 dbe8 dbe8 dbe8 * * 404e 8ea2c0ce,8ea2c0cev 8cba e8b2ba 8cba 00008cba dbe8 dbe8 dbe8 dbe8 dbe8 dbe8 dbe8 -8956 dbe9 dbe9 dbe9 * * 404f 8ea2c0cf,8ea2c0cfv 8cbe e8b2be 8cbe 00008cbe dbe9 dbe9 dbe9 dbe9 dbe9 dbe9 dbe9 -8957 dbea dbea dbea * * 4050 8ea2c0d0,8ea2c0d0v 8cb0 e8b2b0 8cb0 00008cb0 dbea dbea dbea dbea dbea dbea dbea -8958 dbeb dbeb dbeb * * 4051 8ea2c0d1,8ea2c0d1v 8cb9 e8b2b9 8cb9 00008cb9 dbeb dbeb dbeb dbeb dbeb dbeb dbeb -8959 dbec dbec dbec * * 4052 8ea2c0d2,8ea2c0d2v 8cb5 e8b2b5 8cb5 00008cb5 dbec dbec dbec dbec dbec dbec dbec -8960 dbed dbed dbed * * 4053 8ea2c0d3,8ea2c0d3v 8d84 e8b684 8d84 00008d84 dbed dbed dbed dbed dbed dbed dbed -8961 dbee dbee dbee * * 4054 8ea2c0d4,8ea2c0d4v 8d80 e8b680 8d80 00008d80 dbee dbee dbee dbee dbee dbee dbee -8962 dbef dbef dbef * * 4055 8ea2c0d5,8ea2c0d5v 8d89 e8b689 8d89 00008d89 dbef dbef dbef dbef dbef dbef dbef -8963 dbf0 dbf0 dbf0 * * 4056 8ea2c0d6,8ea2c0d6v 8dd8 e8b798 8dd8 00008dd8 dbf0 dbf0 dbf0 dbf0 dbf0 dbf0 dbf0 -8964 dbf1 dbf1 dbf1 * * 4057 8ea2c0d7,8ea2c0d7v 8dd3 e8b793 8dd3 00008dd3 dbf1 dbf1 dbf1 dbf1 dbf1 dbf1 dbf1 -8965 dbf2 dbf2 dbf2 * * 4058 8ea2c0d8,8ea2c0d8v 8dcd e8b78d 8dcd 00008dcd dbf2 dbf2 dbf2 dbf2 dbf2 dbf2 dbf2 -8966 dbf3 dbf3 dbf3 * * 4059 8ea2c0d9,8ea2c0d9v 8dc7 e8b787 8dc7 00008dc7 dbf3 dbf3 dbf3 dbf3 dbf3 dbf3 dbf3 -8967 dbf4 dbf4 dbf4 * * 405a 8ea2c0da,8ea2c0dav 8dd6 e8b796 8dd6 00008dd6 dbf4 dbf4 dbf4 dbf4 dbf4 dbf4 dbf4 -8968 dbf5 dbf5 dbf5 * * 405b 8ea2c0db,8ea2c0dbv 8ddc e8b79c 8ddc 00008ddc dbf5 dbf5 dbf5 dbf5 dbf5 dbf5 dbf5 -8969 dbf6 dbf6 dbf6 * * 405c 8ea2c0dc,8ea2c0dcv 8dcf e8b78f 8dcf 00008dcf dbf6 dbf6 dbf6 dbf6 dbf6 dbf6 dbf6 -8970 dbf7 dbf7 dbf7 * * 405d 8ea2c0dd,8ea2c0ddv 8dd5 e8b795 8dd5 00008dd5 dbf7 dbf7 dbf7 dbf7 dbf7 dbf7 dbf7 -8971 dbf8 dbf8 dbf8 * * 405e 8ea2c0de,8ea2c0dev 8dd9 e8b799 8dd9 00008dd9 dbf8 dbf8 dbf8 dbf8 dbf8 dbf8 dbf8 -8972 dbf9 dbf9 dbf9 * * 405f 8ea2c0df,8ea2c0dfv 8dc8 e8b788 8dc8 00008dc8 dbf9 dbf9 dbf9 dbf9 dbf9 dbf9 dbf9 -8973 dbfa dbfa dbfa * * 4060 8ea2c0e0,8ea2c0e0v 8dd7 e8b797 8dd7 00008dd7 dbfa dbfa dbfa dbfa dbfa dbfa dbfa -8974 dbfb dbfb dbfb * * 4061 8ea2c0e1,8ea2c0e1v 8dc5 e8b785 8dc5 00008dc5 dbfb dbfb dbfb dbfb dbfb dbfb dbfb -8975 dbfc dbfc dbfc * * 4062 8ea2c0e2,8ea2c0e2v 8eef e8bbaf 8eef 00008eef dbfc dbfc dbfc dbfc dbfc dbfc dbfc -8976 dbfd dbfd dbfd * * 4063 8ea2c0e3,8ea2c0e3v 8ef7 e8bbb7 8ef7 00008ef7 dbfd dbfd dbfd dbfd dbfd dbfd dbfd -8977 dbfe dbfe dbfe * * 4064 8ea2c0e4,8ea2c0e4v 8efa e8bbba 8efa 00008efa dbfe dbfe dbfe dbfe dbfe dbfe dbfe -8978 dc40 dc40 dc40 * * 4065 8ea2c0e5,8ea2c0e5v 8ef9 e8bbb9 8ef9 00008ef9 dc40 dc40 dc40 dc40 dc40 dc40 dc40 -8979 dc41 dc41 dc41 * * 4066 8ea2c0e6,8ea2c0e6v 8ee6 e8bba6 8ee6 00008ee6 dc41 dc41 dc41 dc41 dc41 dc41 dc41 -8980 dc42 dc42 dc42 * * 4067 8ea2c0e7,8ea2c0e7v 8eee e8bbae 8eee 00008eee dc42 dc42 dc42 dc42 dc42 dc42 dc42 -8981 dc43 dc43 dc43 * * 4068 8ea2c0e8,8ea2c0e8v 8ee5 e8bba5 8ee5 00008ee5 dc43 dc43 dc43 dc43 dc43 dc43 dc43 -8982 dc44 dc44 dc44 * * 4069 8ea2c0e9,8ea2c0e9v 8ef5 e8bbb5 8ef5 00008ef5 dc44 dc44 dc44 dc44 dc44 dc44 dc44 -8983 dc45 dc45 dc45 * * 406a 8ea2c0ea,8ea2c0eav 8ee7 e8bba7 8ee7 00008ee7 dc45 dc45 dc45 dc45 dc45 dc45 dc45 -8984 dc46 dc46 dc46 * * 406b 8ea2c0eb,8ea2c0ebv 8ee8 e8bba8 8ee8 00008ee8 dc46 dc46 dc46 dc46 dc46 dc46 dc46 -8985 dc47 dc47 dc47 * * 406c 8ea2c0ec,8ea2c0ecv 8ef6 e8bbb6 8ef6 00008ef6 dc47 dc47 dc47 dc47 dc47 dc47 dc47 -8986 dc48 dc48 dc48 * * 406d 8ea2c0ed,8ea2c0edv 8eeb e8bbab 8eeb 00008eeb dc48 dc48 dc48 dc48 dc48 dc48 dc48 -8987 dc49 dc49 dc49 * * 406e 8ea2c0ee,8ea2c0eev 8ef1 e8bbb1 8ef1 00008ef1 dc49 dc49 dc49 dc49 dc49 dc49 dc49 -8988 dc4a dc4a dc4a * * 406f 8ea2c0ef,8ea2c0efv 8eec e8bbac 8eec 00008eec dc4a dc4a dc4a dc4a dc4a dc4a dc4a -8989 dc4b dc4b dc4b * * 4070 8ea2c0f0,8ea2c0f0v 8ef4 e8bbb4 8ef4 00008ef4 dc4b dc4b dc4b dc4b dc4b dc4b dc4b -8990 dc4c dc4c dc4c * * 4071 8ea2c0f1,8ea2c0f1v 8ee9 e8bba9 8ee9 00008ee9 dc4c dc4c dc4c dc4c dc4c dc4c dc4c -8991 dc4d dc4d dc4d * * 4072 8ea2c0f2,8ea2c0f2v 902d e980ad 902d 0000902d dc4d dc4d dc4d dc4d dc4d dc4d dc4d -8992 dc4e dc4e dc4e * * 4073 8ea2c0f3,8ea2c0f3v 9034 e980b4 9034 00009034 dc4e dc4e dc4e dc4e dc4e dc4e dc4e -8993 dc4f dc4f dc4f * * 4074 8ea2c0f4,8ea2c0f4v 902f e980af 902f 0000902f dc4f dc4f dc4f dc4f dc4f dc4f dc4f -8994 dc50 dc50 dc50 * * 4075 8ea2c0f5,8ea2c0f5v 9106 e98486 9106 00009106 dc50 dc50 dc50 dc50 dc50 dc50 dc50 -8995 dc51 dc51 dc51 * * 4076 8ea2c0f6,8ea2c0f6v 912c e984ac 912c 0000912c dc51 dc51 dc51 dc51 dc51 dc51 dc51 -8996 dc52 dc52 dc52 * * 4077 8ea2c0f7,8ea2c0f7v 9104 e98484,eeaf8f 9104,ebcf 00009104,0000ebcf 9c68,dc52 dc52 dc52 dc52 dc52 dc52 9c68,dc52 -8997 dc53 dc53 dc53 * * 4078 8ea2c0f8,8ea2c0f8v 90ff e983bf 90ff 000090ff dc53 dc53 dc53 dc53 dc53 dc53 dc53 -8998 dc54 dc54 dc54 * * 4079 8ea2c0f9,8ea2c0f9v 90fc e983bc 90fc 000090fc dc54 dc54 dc54 dc54 dc54 dc54 dc54 -8999 dc55 dc55 dc55 * * 407a 8ea2c0fa,8ea2c0fav 9108 e98488 9108 00009108 dc55 dc55 dc55 dc55 dc55 dc55 dc55 -9000 dc56 dc56 dc56 * * 407b 8ea2c0fb,8ea2c0fbv 90f9 e983b9 90f9 000090f9 dc56 dc56 dc56 dc56 dc56 dc56 dc56 -9001 dc57 dc57 dc57 * * 407c 8ea2c0fc,8ea2c0fcv 90fb e983bb 90fb 000090fb dc57 dc57 dc57 dc57 dc57 dc57 dc57 -9002 dc58 dc58 dc58 * * 407d 8ea2c0fd,8ea2c0fdv 9101 e98481 9101 00009101 dc58 dc58 dc58 dc58 dc58 dc58 dc58 -9003 dc59 dc59 dc59 * * 407e 8ea2c0fe,8ea2c0fev 9100 e98480 9100 00009100 dc59 dc59 dc59 dc59 dc59 dc59 dc59 -9004 dc5a dc5a dc5a * * 4121 8ea2c1a1,8ea2c1a1v 9107 e98487 9107 00009107 dc5a dc5a dc5a dc5a dc5a dc5a dc5a -9005 dc5b dc5b dc5b * * 4122 8ea2c1a2,8ea2c1a2v 9105 e98485 9105 00009105 dc5b dc5b dc5b dc5b dc5b dc5b dc5b -9006 dc5c dc5c dc5c * * 4123 8ea2c1a3,8ea2c1a3v 9103 e98483 9103 00009103 dc5c dc5c dc5c dc5c dc5c dc5c dc5c -9007 dc5d dc5d dc5d * * 4124 8ea2c1a4,8ea2c1a4v 9161 e985a1 9161 00009161 dc5d dc5d dc5d dc5d dc5d dc5d dc5d -9008 dc5e dc5e dc5e * * 4125 8ea2c1a5,8ea2c1a5v 9164 e985a4 9164 00009164 dc5e dc5e dc5e dc5e dc5e dc5e dc5e -9009 dc5f dc5f dc5f * * 4126 8ea2c1a6,8ea2c1a6v 915f e9859f 915f 0000915f dc5f dc5f dc5f dc5f dc5f dc5f dc5f -9010 dc60 dc60 dc60 * * 4127 8ea2c1a7,8ea2c1a7v 9162 e985a2 9162 00009162 dc60 dc60 dc60 dc60 dc60 dc60 dc60 -9011 dc61 dc61 dc61 * * 4128 8ea2c1a8,8ea2c1a8v 9160 e985a0 9160 00009160 dc61 dc61 dc61 dc61 dc61 dc61 dc61 -9012 dc62 dc62 dc62 * * 4129 8ea2c1a9,8ea2c1a9v 9201 e98881 9201 00009201 dc62 dc62 dc62 dc62 dc62 dc62 dc62 -9013 dc63 dc63 dc63 * * 412a 8ea2c1aa,8ea2c1aav 920a e9888a 920a 0000920a dc63 dc63 dc63 dc63 dc63 dc63 dc63 -9014 dc64 dc64 dc64 * * 412b 8ea2c1ab,8ea2c1abv 9225 e988a5 9225 00009225 dc64 dc64 dc64 dc64 dc64 dc64 dc64 -9015 dc65 dc65 dc65 * * 412c 8ea2c1ac,8ea2c1acv 9203 e98883 9203 00009203 dc65 dc65 dc65 dc65 dc65 dc65 dc65 -9016 dc66 dc66 dc66 * * 412d 8ea2c1ad,8ea2c1adv 921a e9889a 921a 0000921a dc66 dc66 dc66 dc66 dc66 dc66 dc66 -9017 dc67 dc67 dc67 * * 412e 8ea2c1ae,8ea2c1aev 9226 e988a6 9226 00009226 dc67 dc67 dc67 dc67 dc67 dc67 dc67 -9018 dc68 dc68 dc68 * * 412f 8ea2c1af,8ea2c1afv 920f e9888f 920f 0000920f dc68 dc68 dc68 dc68 dc68 dc68 dc68 -9019 dc69 dc69 dc69 * * 4130 8ea2c1b0,8ea2c1b0v 920c e9888c 920c 0000920c dc69 dc69 dc69 dc69 dc69 dc69 dc69 -9020 dc6a dc6a dc6a * * 4131 8ea2c1b1,8ea2c1b1v 9200 e98880 9200 00009200 dc6a dc6a dc6a dc6a dc6a dc6a dc6a -9021 dc6b dc6b dc6b * * 4132 8ea2c1b2,8ea2c1b2v 9212 e98892 9212 00009212 dc6b dc6b dc6b dc6b dc6b dc6b dc6b -9022 dc6c dc6c dc6c * * 4133 8ea2c1b3,8ea2c1b3v 91ff e987bf 91ff 000091ff dc6c dc6c dc6c dc6c dc6c dc6c dc6c -9023 dc6d dc6d dc6d * * 4134 8ea2c1b4,8ea2c1b4v 91fd e987bd 91fd 000091fd dc6d dc6d dc6d dc6d dc6d dc6d dc6d -9024 dc6e dc6e dc6e * * 4135 8ea2c1b5,8ea2c1b5v 9206 e98886 9206 00009206 dc6e dc6e dc6e dc6e dc6e dc6e dc6e -9025 dc6f dc6f dc6f * * 4136 8ea2c1b6,8ea2c1b6v 9204 e98884 9204 00009204 dc6f dc6f dc6f dc6f dc6f dc6f dc6f -9026 dc70 dc70 dc70 * * 4137 8ea2c1b7,8ea2c1b7v 9227 e988a7 9227 00009227 dc70 dc70 dc70 dc70 dc70 dc70 dc70 -9027 dc71 dc71 dc71 * * 4138 8ea2c1b8,8ea2c1b8v 9202 e98882 9202 00009202 dc71 dc71 dc71 dc71 dc71 dc71 dc71 -9028 dc72 dc72 dc72 * * 4139 8ea2c1b9,8ea2c1b9v 921c e9889c 921c 0000921c dc72 dc72 dc72 dc72 dc72 dc72 dc72 -9029 dc73 dc73 dc73 * * 413a 8ea2c1ba,8ea2c1bav 9224 e988a4 9224 00009224 dc73 dc73 dc73 dc73 dc73 dc73 dc73 -9030 dc74 dc74 dc74 * * 413b 8ea2c1bb,8ea2c1bbv 9219 e98899 9219 00009219 dc74 dc74 dc74 dc74 dc74 dc74 dc74 -9031 dc75 dc75 dc75 * * 413c 8ea2c1bc,8ea2c1bcv 9217 e98897 9217 00009217 dc75 dc75 dc75 dc75 dc75 dc75 dc75 -9032 dc76 dc76 dc76 * * 413d 8ea2c1bd,8ea2c1bdv 9205 e98885 9205 00009205 dc76 dc76 dc76 dc76 dc76 dc76 dc76 -9033 dc77 dc77 dc77 * * 413e 8ea2c1be,8ea2c1bev 9216 e98896 9216 00009216 dc77 dc77 dc77 dc77 dc77 dc77 dc77 -9034 dc78 dc78 dc78 * * 413f 8ea2c1bf,8ea2c1bfv 957b e995bb 957b 0000957b dc78 dc78 dc78 dc78 dc78 dc78 dc78 -9035 dc79 dc79 dc79 * * 4140 8ea2c1c0,8ea2c1c0v 958d e9968d 958d 0000958d dc79 dc79 dc79 dc79 dc79 dc79 dc79 -9036 dc7a dc7a dc7a * * 4141 8ea2c1c1,8ea2c1c1v 958c e9968c 958c 0000958c dc7a dc7a dc7a dc7a dc7a dc7a dc7a -9037 dc7b dc7b dc7b * * 4142 8ea2c1c2,8ea2c1c2v 9590 e99690 9590 00009590 dc7b dc7b dc7b dc7b dc7b dc7b dc7b -9038 dc7c dc7c dc7c * * 4143 8ea2c1c3,8ea2c1c3v 9687 e99a87 9687 00009687 dc7c dc7c dc7c dc7c dc7c dc7c dc7c -9039 dc7d dc7d dc7d * * 4144 8ea2c1c4,8ea2c1c4v 967e e999be 967e 0000967e dc7d dc7d dc7d dc7d dc7d dc7d dc7d -9040 dc7e dc7e dc7e * * 4145 8ea2c1c5,8ea2c1c5v 9688 e99a88 9688 00009688 dc7e dc7e dc7e dc7e dc7e dc7e dc7e -9041 dca1 dca1 dca1 * * 4146 8ea2c1c6,8ea2c1c6v 9689 e99a89 9689 00009689 dca1 dca1 dca1 dca1 dca1 dca1 dca1 -9042 dca2 dca2 dca2 * * 4147 8ea2c1c7,8ea2c1c7v 9683 e99a83 9683 00009683 dca2 dca2,fea1 90dc,dca2 dca2 dca2 dca2 dca2 -9043 dca3 dca3 dca3 * * 4148 8ea2c1c8,8ea2c1c8v 9680 e99a80 9680 00009680 dca3 dca3 dca3 dca3 dca3 dca3 dca3 -9044 dca4 dca4 dca4 * * 4149 8ea2c1c9,8ea2c1c9v 96c2 e99b82 96c2 000096c2 dca4 dca4 dca4 dca4 dca4 dca4 dca4 -9045 dca5 dca5 dca5 * * 414a 8ea2c1ca,8ea2c1cav 96c8 e99b88 96c8 000096c8 dca5 dca5 dca5 dca5 dca5 dca5 dca5 -9046 dca6 dca6 dca6 * * 414b 8ea2c1cb,8ea2c1cbv 96c3 e99b83 96c3 000096c3 dca6 dca6 dca6 dca6 dca6 dca6 dca6 -9047 dca7 dca7 dca7 * * 414c 8ea2c1cc,8ea2c1ccv 96f1 e99bb1 96f1 000096f1 dca7 dca7 dca7 dca7 dca7 dca7 dca7 -9048 dca8 dca8 dca8 * * 414d 8ea2c1cd,8ea2c1cdv 96f0 e99bb0 96f0 000096f0 dca8 dca8 dca8 dca8 dca8 dca8 dca8 -9049 dca9 dca9 dca9 * * 414e 8ea2c1ce,8ea2c1cev 976c e99dac 976c 0000976c dca9 dca9 dca9 dca9 dca9 dca9 dca9 -9050 dcaa dcaa dcaa * * 414f 8ea2c1cf,8ea2c1cfv 9770 e99db0 9770 00009770 dcaa dcaa dcaa dcaa dcaa dcaa dcaa -9051 dcab dcab dcab * * 4150 8ea2c1d0,8ea2c1d0v 976e e99dae 976e 0000976e dcab dcab dcab dcab dcab dcab dcab -9052 dcac dcac dcac * * 4151 8ea2c1d1,8ea2c1d1v 9807 e9a087 9807 00009807 dcac dcac dcac dcac dcac dcac dcac -9053 dcad dcad dcad * * 4152 8ea2c1d2,8ea2c1d2v 98a9 e9a2a9 98a9 000098a9 dcad dcad dcad dcad dcad dcad dcad -9054 dcae dcae dcae * * 4153 8ea2c1d3,8ea2c1d3v 98eb e9a3ab 98eb 000098eb dcae dcae dcae dcae dcae dcae dcae -9055 dcaf dcaf dcaf * * 4154 8ea2c1d4,8ea2c1d4v 9ce6 e9b3a6 9ce6 00009ce6 dcaf dcaf dcaf dcaf dcaf dcaf dcaf -9056 dcb0 dcb0 dcb0 * 292f 4155 8ea1a9af,8ea2c1d5,a9af,8ea1a9afv,8ea2c1d5v,a9afv 9ef9 e2bf8b,e9bbb9 2fcb,9ef9 00002fcb,00009ef9 dcb0 dcb0 dcb0 dcb0 dcb0 dcb0 dcb0 -9057 dcb1 dcb1 dcb1 * * 4156 8ea2c1d6,8ea2c1d6v 4e83 e4ba83 4e83 00004e83 dcb1 dcb1 dcb1 dcb1 dcb1 dcb1 dcb1 -9058 dcb2 dcb2 dcb2 * * 4157 8ea2c1d7,8ea2c1d7v 4e84 e4ba84 4e84 00004e84 dcb2 dcb2 dcb2 dcb2 dcb2 dcb2 dcb2 -9059 dcb3 dcb3 dcb3 * * 4158 8ea2c1d8,8ea2c1d8v 4eb6 e4bab6 4eb6 00004eb6 dcb3 dcb3 dcb3 dcb3 dcb3 dcb3 dcb3 -9060 dcb4 dcb4 dcb4 * * 4159 8ea2c1d9,8ea2c1d9v 50bd e582bd 50bd 000050bd dcb4 dcb4 dcb4 dcb4 dcb4 dcb4 dcb4 -9061 dcb5 dcb5 dcb5 * * 415a 8ea2c1da,8ea2c1dav 50bf e582bf 50bf 000050bf dcb5 dcb5 dcb5 dcb5 dcb5 dcb5 dcb5 -9062 dcb6 dcb6 dcb6 * * 415b 8ea2c1db,8ea2c1dbv 50c6 e58386 50c6 000050c6 dcb6 dcb6 dcb6 dcb6 dcb6 dcb6 dcb6 -9063 dcb7 dcb7 dcb7 * * 415c 8ea2c1dc,8ea2c1dcv 50ae e582ae 50ae 000050ae dcb7 dcb7 dcb7 dcb7 dcb7 dcb7 dcb7 -9064 dcb8 dcb8 dcb8 * * 415d 8ea2c1dd,8ea2c1ddv 50c4 e58384 50c4 000050c4 dcb8 dcb8 dcb8 dcb8 dcb8 dcb8 dcb8 -9065 dcb9 dcb9 dcb9 * * 415e 8ea2c1de,8ea2c1dev 50ca e5838a 50ca 000050ca dcb9 dcb9 dcb9 dcb9 dcb9 dcb9 dcb9 -9066 dcba dcba dcba * * 415f 8ea2c1df,8ea2c1dfv 50b4 e582b4 50b4 000050b4 dcba dcba dcba dcba dcba dcba dcba -9067 dcbb dcbb dcbb * * 4160 8ea2c1e0,8ea2c1e0v 50c8 e58388 50c8 000050c8 dcbb dcbb dcbb dcbb dcbb dcbb dcbb -9068 dcbc dcbc dcbc * * 4161 8ea2c1e1,8ea2c1e1v 50c2 e58382 50c2 000050c2 dcbc dcbc dcbc dcbc dcbc dcbc dcbc -9069 dcbd dcbd dcbd * * 4162 8ea2c1e2,8ea2c1e2v 50b0 e582b0 50b0 000050b0 dcbd dcbd dcbd dcbd dcbd dcbd dcbd -9070 dcbe dcbe dcbe * * 4163 8ea2c1e3,8ea2c1e3v 50c1 e58381 50c1 000050c1 dcbe dcbe dcbe dcbe dcbe dcbe dcbe -9071 dcbf dcbf dcbf * * 4164 8ea2c1e4,8ea2c1e4v 50ba e582ba 50ba 000050ba dcbf dcbf dcbf dcbf dcbf dcbf dcbf -9072 dcc0 dcc0 dcc0 * * 4165 8ea2c1e5,8ea2c1e5v 50b1 e582b1 50b1 000050b1 dcc0 dcc0 dcc0 dcc0 dcc0 dcc0 dcc0 -9073 dcc1 dcc1 dcc1 * * 4166 8ea2c1e6,8ea2c1e6v 50cb e5838b 50cb 000050cb dcc1 dcc1 dcc1 dcc1 dcc1 dcc1 dcc1 -9074 dcc2 dcc2 dcc2 * * 4167 8ea2c1e7,8ea2c1e7v 50c9 e58389 50c9 000050c9 dcc2 dcc2 dcc2 dcc2 dcc2 dcc2 dcc2 -9075 dcc3 dcc3 dcc3 * * 4168 8ea2c1e8,8ea2c1e8v 50b6 e582b6 50b6 000050b6 dcc3 dcc3 dcc3 dcc3 dcc3 dcc3 dcc3 -9076 dcc4 dcc4 dcc4 * * 4169 8ea2c1e9,8ea2c1e9v 50b8 e582b8 50b8 000050b8 dcc4 dcc4 dcc4 dcc4 dcc4 dcc4 dcc4 -9077 dcc5 dcc5 dcc5 * * 416a 8ea2c1ea,8ea2c1eav 51d7 e58797 51d7 000051d7 dcc5 dcc5 dcc5 dcc5 dcc5 dcc5 dcc5 -9078 dcc6 dcc6 dcc6 * * 416b 8ea2c1eb,8ea2c1ebv 527a e589ba 527a 0000527a dcc6 dcc6 dcc6 dcc6 dcc6 dcc6 dcc6 -9079 dcc7 dcc7 dcc7 * * 416c 8ea2c1ec,8ea2c1ecv 5278 e589b8 5278 00005278 dcc7 dcc7 dcc7 dcc7 dcc7 dcc7 dcc7 -9080 dcc8 dcc8 dcc8 * * 416d 8ea2c1ed,8ea2c1edv 527b e589bb 527b 0000527b dcc8 dcc8 dcc8 dcc8 dcc8 dcc8 dcc8 -9081 dcc9 dcc9 dcc9 * * 416e 8ea2c1ee,8ea2c1eev 527c e589bc 527c 0000527c dcc9 dcc9 dcc9 dcc9 dcc9 dcc9 dcc9 -9082 dcca dcca dcca * * 416f 8ea2c1ef,8ea2c1efv 55c3 e59783 55c3 000055c3 dcca dcca dcca dcca dcca dcca dcca -9083 dccb dccb dccb * * 4170 8ea2c1f0,8ea2c1f0v 55db e5979b 55db 000055db dccb dccb dccb dccb dccb dccb dccb -9084 dccc dccc dccc * * 4171 8ea2c1f1,8ea2c1f1v 55cc e5978c 55cc 000055cc dccc dccc dccc dccc dccc dccc dccc -9085 dccd dccd dccd * * 4172 8ea2c1f2,8ea2c1f2v 55d0 e59790 55d0 000055d0 dccd dccd dccd dccd dccd dccd dccd -9086 dcce dcce dcce * * 4173 8ea2c1f3,8ea2c1f3v 55cb e5978b 55cb 000055cb dcce dcce dcce dcce dcce dcce dcce -9087 dccf dccf dccf * * 4174 8ea2c1f4,8ea2c1f4v 55ca e5978a 55ca 000055ca dccf dccf dccf dccf dccf dccf dccf -9088 dcd0 dcd0 dcd0 * * 4175 8ea2c1f5,8ea2c1f5v 55dd e5979d 55dd 000055dd dcd0 dcd0 dcd0 dcd0 dcd0 dcd0 dcd0 -9089 dcd1,ddfc dcd1,ddfc dcd1,ddfc * * 4176 8ea2c1f6,8ea2c1f6v 55c0,fa0d e59780,efa88d 55c0,fa0d 000055c0,0000fa0d ddfc,dcd1 dcd1,ddfc dcd1,ddfc dcd1,ddfc dcd1,ddfc dcd1,ddfc ddfc,dcd1 -9090 dcd2 dcd2 dcd2 * * 4177 8ea2c1f7,8ea2c1f7v 55d4 e59794 55d4 000055d4 dcd2 dcd2 dcd2 dcd2 dcd2 dcd2 dcd2 -9091 dcd3 dcd3 dcd3 * * 4178 8ea2c1f8,8ea2c1f8v 55c4 e59784 55c4 000055c4 dcd3 dcd3 dcd3 dcd3 dcd3 dcd3 dcd3 -9092 dcd4 dcd4 dcd4 * * 4179 8ea2c1f9,8ea2c1f9v 55e9 e597a9 55e9 000055e9 dcd4 dcd4 dcd4 dcd4 dcd4 dcd4 dcd4 -9093 dcd5 dcd5 dcd5 * * 417a 8ea2c1fa,8ea2c1fav 55bf e596bf 55bf 000055bf dcd5 dcd5 dcd5 dcd5 dcd5 dcd5 dcd5 -9094 dcd6 dcd6 dcd6 * * 417b 8ea2c1fb,8ea2c1fbv 55d2 e59792 55d2 000055d2 dcd6 dcd6 dcd6 dcd6 dcd6 dcd6 dcd6 -9095 dcd7 dcd7 dcd7 * * 417c 8ea2c1fc,8ea2c1fcv 558d e5968d 558d 0000558d dcd7 dcd7 dcd7 dcd7 dcd7 dcd7 dcd7 -9096 dcd8 dcd8 dcd8 * * 417d 8ea2c1fd,8ea2c1fdv 55cf e5978f 55cf 000055cf dcd8 dcd8 dcd8 dcd8 dcd8 dcd8 dcd8 -9097 dcd9 dcd9 dcd9 * * 417e 8ea2c1fe,8ea2c1fev 55d5 e59795 55d5 000055d5 dcd9 dcd9 dcd9 dcd9 dcd9 dcd9 dcd9 -9098 dcda dcda dcda * * 4221 8ea2c2a1,8ea2c2a1v 55e2 e597a2 55e2 000055e2 dcda dcda dcda dcda dcda dcda dcda -9099 dcdb dcdb dcdb * * 4222 8ea2c2a2,8ea2c2a2v 55d6 e59796 55d6 000055d6 dcdb dcdb dcdb dcdb dcdb dcdb dcdb -9100 dcdc dcdc dcdc * * 4223 8ea2c2a3,8ea2c2a3v 55c8 e59788 55c8 000055c8 dcdc dcdc dcdc dcdc dcdc dcdc dcdc -9101 dcdd dcdd dcdd * * 4224 8ea2c2a4,8ea2c2a4v 55f2 e597b2 55f2 000055f2 dcdd dcdd dcdd dcdd dcdd dcdd dcdd -9102 dcde dcde dcde * * 4225 8ea2c2a5,8ea2c2a5v 55cd e5978d 55cd 000055cd dcde dcde dcde dcde dcde dcde dcde -9103 dcdf dcdf dcdf * * 4226 8ea2c2a6,8ea2c2a6v 55d9 e59799 55d9 000055d9 dcdf dcdf dcdf dcdf dcdf dcdf dcdf -9104 dce0 dce0 dce0 * * 4227 8ea2c2a7,8ea2c2a7v 55c2 e59782 55c2 000055c2 dce0 dce0 dce0 dce0 dce0 dce0 dce0 -9105 dce1 dce1 dce1 * * 4228 8ea2c2a8,8ea2c2a8v 5714 e59c94 5714 00005714 dce1 dce1 dce1 dce1 dce1 dce1 dce1 -9106 dce2 dce2 dce2 * * 4229 8ea2c2a9,8ea2c2a9v 5853 e5a193 5853 00005853 dce2 dce2 dce2 dce2 dce2 dce2 dce2 -9107 dce3 dce3 dce3 * * 422a 8ea2c2aa,8ea2c2aav 5868 e5a1a8 5868 00005868 dce3 dce3 dce3 dce3 dce3 dce3 dce3 -9108 dce4 dce4 dce4 * * 422b 8ea2c2ab,8ea2c2abv 5864 e5a1a4 5864 00005864 dce4 dce4 dce4 dce4 dce4 dce4 dce4 -9109 dce5 dce5 dce5 * * 422c 8ea2c2ac,8ea2c2acv 584f e5a18f 584f 0000584f dce5 dce5 dce5 dce5 dce5 dce5 dce5 -9110 dce6 dce6 dce6 * * 422d 8ea2c2ad,8ea2c2adv 584d e5a18d 584d 0000584d dce6 dce6 dce6 dce6 dce6 dce6 dce6 -9111 dce7 dce7 dce7 * * 422e 8ea2c2ae,8ea2c2aev 5849 e5a189 5849 00005849 dce7 dce7 dce7 dce7 dce7 dce7 dce7 -9112 dce8 dce8 dce8 * * 422f 8ea2c2af,8ea2c2afv 586f e5a1af 586f 0000586f dce8 dce8 dce8 dce8 dce8 dce8 dce8 -9113 dce9 dce9 dce9 * * 4230 8ea2c2b0,8ea2c2b0v 5855 e5a195 5855 00005855 dce9 dce9 dce9 dce9 dce9 dce9 dce9 -9114 dcea dcea dcea * * 4231 8ea2c2b1,8ea2c2b1v 584e e5a18e 584e 0000584e dcea dcea dcea dcea dcea dcea dcea -9115 dceb dceb dceb * * 4232 8ea2c2b2,8ea2c2b2v 585d e5a19d 585d 0000585d dceb dceb dceb dceb dceb dceb dceb -9116 dcec dcec dcec * * 4233 8ea2c2b3,8ea2c2b3v 5859 e5a199 5859 00005859 dcec dcec dcec dcec dcec dcec dcec -9117 dced dced dced * * 4234 8ea2c2b4,8ea2c2b4v 5865 e5a1a5 5865 00005865 dced dced dced dced dced dced dced -9118 dcee dcee dcee * * 4235 8ea2c2b5,8ea2c2b5v 585b e5a19b 585b 0000585b dcee dcee dcee dcee dcee dcee dcee -9119 dcef dcef dcef * * 4236 8ea2c2b6,8ea2c2b6v 583d e5a0bd 583d 0000583d dcef dcef dcef dcef dcef dcef dcef -9120 dcf0 dcf0 dcf0 * * 4237 8ea2c2b7,8ea2c2b7v 5863 e5a1a3 5863 00005863 dcf0 dcf0 dcf0 dcf0 dcf0 dcf0 dcf0 -9121 dcf1 dcf1 dcf1 * * 4238 8ea2c2b8,8ea2c2b8v 5871 e5a1b1 5871 00005871 dcf1 dcf1 dcf1 dcf1 dcf1 dcf1 dcf1 -9122 dcf2 dcf2 dcf2 * * 4239 8ea2c2b9,8ea2c2b9v 58fc e5a3bc 58fc 000058fc dcf2 dcf2 dcf2 dcf2 dcf2 dcf2 dcf2 -9123 dcf3 dcf3 dcf3 * * 423a 8ea2c2ba,8ea2c2bav 5ac7 e5ab87 5ac7 00005ac7 dcf3 dcf3 dcf3 dcf3 dcf3 dcf3 dcf3 -9124 dcf4 dcf4 dcf4 * * 423b 8ea2c2bb,8ea2c2bbv 5ac4 e5ab84 5ac4 00005ac4 dcf4 dcf4 dcf4 dcf4 dcf4 dcf4 dcf4 -9125 dcf5 dcf5 dcf5 * * 423c 8ea2c2bc,8ea2c2bcv 5acb e5ab8b 5acb 00005acb dcf5 dcf5 dcf5 dcf5 dcf5 dcf5 dcf5 -9126 dcf6 dcf6 dcf6 * * 423d 8ea2c2bd,8ea2c2bdv 5aba e5aaba 5aba 00005aba dcf6 dcf6 dcf6 dcf6 dcf6 dcf6 dcf6 -9127 dcf7 dcf7 dcf7 * * 423e 8ea2c2be,8ea2c2bev 5ab8 e5aab8 5ab8 00005ab8 dcf7 dcf7 dcf7 dcf7 dcf7 dcf7 dcf7 -9128 dcf8 dcf8 dcf8 * * 423f 8ea2c2bf,8ea2c2bfv 5ab1 e5aab1 5ab1 00005ab1 dcf8 dcf8 dcf8 dcf8 dcf8 dcf8 dcf8 -9129 dcf9 dcf9 dcf9 * * 4240 8ea2c2c0,8ea2c2c0v 5ab5 e5aab5 5ab5 00005ab5 dcf9 dcf9 dcf9 dcf9 dcf9 dcf9 dcf9 -9130 dcfa dcfa dcfa * * 4241 8ea2c2c1,8ea2c2c1v 5ab0 e5aab0 5ab0 00005ab0 dcfa dcfa dcfa dcfa dcfa dcfa dcfa -9131 dcfb dcfb dcfb * * 4242 8ea2c2c2,8ea2c2c2v 5abf e5aabf 5abf 00005abf dcfb dcfb dcfb dcfb dcfb dcfb dcfb -9132 dcfc dcfc dcfc * * 4243 8ea2c2c3,8ea2c2c3v 5ac8 e5ab88 5ac8 00005ac8 dcfc dcfc dcfc dcfc dcfc dcfc dcfc -9133 dcfd dcfd dcfd * * 4244 8ea2c2c4,8ea2c2c4v 5abb e5aabb 5abb 00005abb dcfd dcfd dcfd dcfd dcfd dcfd dcfd -9134 dcfe dcfe dcfe * * 4245 8ea2c2c5,8ea2c2c5v 5ac6 e5ab86 5ac6 00005ac6 dcfe dcfe dcfe dcfe dcfe dcfe dcfe -9135 dd40 dd40 dd40 * * 4246 8ea2c2c6,8ea2c2c6v 5ab7 e5aab7 5ab7 00005ab7 dd40 dd40 dd40 dd40 dd40 dd40 dd40 -9136 dd41 dd41 dd41 * * 4247 8ea2c2c7,8ea2c2c7v 5ac0 e5ab80 5ac0 00005ac0 dd41 dd41 dd41 dd41 dd41 dd41 dd41 -9137 dd42 dd42 dd42 * * 4248 8ea2c2c8,8ea2c2c8v 5aca e5ab8a 5aca 00005aca dd42 dd42 dd42 dd42 dd42 dd42 dd42 -9138 dd43 dd43 dd43 * * 4249 8ea2c2c9,8ea2c2c9v 5ab4 e5aab4 5ab4 00005ab4 dd43 dd43 dd43 dd43 dd43 dd43 dd43 -9139 dd44 dd44 dd44 * * 424a 8ea2c2ca,8ea2c2cav 5ab6 e5aab6 5ab6 00005ab6 dd44 dd44 dd44 dd44 dd44 dd44 dd44 -9140 dd45 dd45 dd45 * * 424b 8ea2c2cb,8ea2c2cbv 5acd e5ab8d 5acd 00005acd dd45 dd45 dd45 dd45 dd45 dd45 dd45 -9141 dd46 dd46 dd46 * * 424c 8ea2c2cc,8ea2c2ccv 5ab9 e5aab9 5ab9 00005ab9 dd46 dd46 dd46 dd46 dd46 dd46 dd46 -9142 dd47 dd47 dd47 * * 424d 8ea2c2cd,8ea2c2cdv 5a90 e5aa90 5a90 00005a90 dd47 dd47 dd47 dd47 dd47 dd47 dd47 -9143 dd48 dd48 dd48 * * 424e 8ea2c2ce,8ea2c2cev 5bd6 e5af96 5bd6 00005bd6 dd48 dd48 dd48 dd48 dd48 dd48 dd48 -9144 dd49 dd49 dd49 * * 424f 8ea2c2cf,8ea2c2cfv 5bd8 e5af98 5bd8 00005bd8 dd49 dd49 dd49 dd49 dd49 dd49 dd49 -9145 dd4a dd4a dd4a * * 4250 8ea2c2d0,8ea2c2d0v 5bd9 e5af99 5bd9 00005bd9 dd4a dd4a dd4a dd4a dd4a dd4a dd4a -9146 dd4b dd4b dd4b * * 4251 8ea2c2d1,8ea2c2d1v 5c1f e5b09f 5c1f 00005c1f dd4b dd4b dd4b dd4b dd4b dd4b dd4b -9147 dd4c dd4c dd4c * * 4252 8ea2c2d2,8ea2c2d2v 5c33 e5b0b3 5c33 00005c33 dd4c dd4c dd4c dd4c dd4c dd4c dd4c -9148 dd4d dd4d dd4d * * 4253 8ea2c2d3,8ea2c2d3v 5d71 e5b5b1 5d71 00005d71 dd4d dd4d dd4d dd4d dd4d dd4d dd4d -9149 dd4e dd4e dd4e * * 4254 8ea2c2d4,8ea2c2d4v 5d63 e5b5a3 5d63 00005d63 dd4e dd4e dd4e dd4e dd4e dd4e dd4e -9150 dd4f dd4f dd4f * * 4255 8ea2c2d5,8ea2c2d5v 5d4a e5b58a 5d4a 00005d4a dd4f dd4f dd4f dd4f dd4f dd4f dd4f -9151 dd50 dd50 dd50 * * 4256 8ea2c2d6,8ea2c2d6v 5d65 e5b5a5 5d65 00005d65 dd50 dd50 dd50 dd50 dd50 dd50 dd50 -9152 dd51 dd51 dd51 * * 4257 8ea2c2d7,8ea2c2d7v 5d72 e5b5b2 5d72 00005d72 dd51 dd51 dd51 dd51 dd51 dd51 dd51 -9153 dd52 dd52 dd52 * * 4258 8ea2c2d8,8ea2c2d8v 5d6c e5b5ac 5d6c 00005d6c dd52 dd52 dd52 dd52 dd52 dd52 dd52 -9154 dd53 dd53 dd53 * * 4259 8ea2c2d9,8ea2c2d9v 5d5e e5b59e 5d5e 00005d5e dd53 dd53 dd53 dd53 dd53 dd53 dd53 -9155 dd54 dd54 dd54 * * 425a 8ea2c2da,8ea2c2dav 5d68 e5b5a8 5d68 00005d68 dd54 dd54 dd54 dd54 dd54 dd54 dd54 -9156 dd55 dd55 dd55 * * 425b 8ea2c2db,8ea2c2dbv 5d67 e5b5a7 5d67 00005d67 dd55 dd55 dd55 dd55 dd55 dd55 dd55 -9157 dd56 dd56 dd56 * * 425c 8ea2c2dc,8ea2c2dcv 5d62 e5b5a2 5d62 00005d62 dd56 dd56 dd56 dd56 dd56 dd56 dd56 -9158 dd57 dd57 dd57 * * 425d 8ea2c2dd,8ea2c2ddv 5df0 e5b7b0 5df0 00005df0 dd57 dd57 dd57 dd57 dd57 dd57 dd57 -9159 dd58 dd58 dd58 * * 425e 8ea2c2de,8ea2c2dev 5e4f e5b98f 5e4f 00005e4f dd58 dd58 dd58 dd58 dd58 dd58 dd58 -9160 dd59 dd59 dd59 * * 425f 8ea2c2df,8ea2c2dfv 5e4e e5b98e 5e4e 00005e4e dd59 dd59 dd59 dd59 dd59 dd59 dd59 -9161 dd5a dd5a dd5a * * 4260 8ea2c2e0,8ea2c2e0v 5e4a e5b98a 5e4a 00005e4a dd5a dd5a dd5a dd5a dd5a dd5a dd5a -9162 dd5b dd5b dd5b * * 4261 8ea2c2e1,8ea2c2e1v 5e4d e5b98d 5e4d 00005e4d dd5b dd5b dd5b dd5b dd5b dd5b dd5b -9163 dd5c dd5c dd5c * * 4262 8ea2c2e2,8ea2c2e2v 5e4b e5b98b 5e4b 00005e4b dd5c dd5c dd5c dd5c dd5c dd5c dd5c -9164 dd5d dd5d dd5d * * 4263 8ea2c2e3,8ea2c2e3v 5ec5 e5bb85 5ec5 00005ec5 dd5d dd5d dd5d dd5d dd5d dd5d dd5d -9165 dd5e dd5e dd5e * * 4264 8ea2c2e4,8ea2c2e4v 5ecc e5bb8c 5ecc 00005ecc dd5e dd5e dd5e dd5e dd5e dd5e dd5e -9166 dd5f dd5f dd5f * * 4265 8ea2c2e5,8ea2c2e5v 5ec6 e5bb86 5ec6 00005ec6 dd5f dd5f dd5f dd5f dd5f dd5f dd5f -9167 dd60 dd60 dd60 * * 4266 8ea2c2e6,8ea2c2e6v 5ecb e5bb8b 5ecb 00005ecb dd60 dd60 dd60 dd60 dd60 dd60 dd60 -9168 dd61 dd61 dd61 * * 4267 8ea2c2e7,8ea2c2e7v 5ec7 e5bb87 5ec7 00005ec7 dd61 dd61 dd61 dd61 dd61 dd61 dd61 -9169 dd62 dd62 dd62 * * 4268 8ea2c2e8,8ea2c2e8v 5f40 e5bd80 5f40 00005f40 dd62 dd62 dd62 dd62 dd62 dd62 dd62 -9170 dd63 dd63 dd63 * * 4269 8ea2c2e9,8ea2c2e9v 5faf e5beaf 5faf 00005faf dd63 dd63 dd63 dd63 dd63 dd63 dd63 -9171 dd64 dd64 dd64 * * 426a 8ea2c2ea,8ea2c2eav 5fad e5bead 5fad 00005fad dd64 dd64 dd64 dd64 dd64 dd64 dd64 -9172 dd65 dd65 dd65 * * 426b 8ea2c2eb,8ea2c2ebv 60f7 e683b7 60f7 000060f7 dd65 dd65 dd65 dd65 dd65 dd65 dd65 -9173 dd66 dd66 dd66 * * 426c 8ea2c2ec,8ea2c2ecv 6149 e68589 6149 00006149 dd66 dd66 dd66 dd66 dd66 dd66 dd66 -9174 dd67 dd67 dd67 * * 426d 8ea2c2ed,8ea2c2edv 614a e6858a 614a 0000614a dd67 dd67 dd67 dd67 dd67 dd67 dd67 -9175 dd68 dd68 dd68 * * 426e 8ea2c2ee,8ea2c2eev 612b e684ab 612b 0000612b dd68 dd68 dd68 dd68 dd68 dd68 dd68 -9176 dd69 dd69 dd69 * * 426f 8ea2c2ef,8ea2c2efv 6145 e68585 6145 00006145 dd69 dd69 dd69 dd69 dd69 dd69 dd69 -9177 dd6a dd6a dd6a * * 4270 8ea2c2f0,8ea2c2f0v 6136 e684b6 6136 00006136 dd6a dd6a dd6a dd6a dd6a dd6a dd6a -9178 dd6b dd6b dd6b * * 4271 8ea2c2f1,8ea2c2f1v 6132 e684b2 6132 00006132 dd6b dd6b dd6b dd6b dd6b dd6b dd6b -9179 dd6c dd6c dd6c * * 4272 8ea2c2f2,8ea2c2f2v 612e e684ae 612e 0000612e dd6c dd6c dd6c dd6c dd6c dd6c dd6c -9180 dd6d dd6d dd6d * * 4273 8ea2c2f3,8ea2c2f3v 6146 e68586 6146 00006146 dd6d dd6d dd6d dd6d dd6d dd6d dd6d -9181 dd6e dd6e dd6e * * 4274 8ea2c2f4,8ea2c2f4v 612f e684af 612f 0000612f dd6e dd6e dd6e dd6e dd6e dd6e dd6e -9182 dd6f dd6f dd6f * * 4275 8ea2c2f5,8ea2c2f5v 614f e6858f 614f 0000614f dd6f dd6f dd6f dd6f dd6f dd6f dd6f -9183 dd70 dd70 dd70 * * 4276 8ea2c2f6,8ea2c2f6v 6129 e684a9 6129 00006129 dd70 dd70 dd70 dd70 dd70 dd70 dd70 -9184 dd71 dd71 dd71 * * 4277 8ea2c2f7,8ea2c2f7v 6140 e68580 6140 00006140 dd71 dd71 dd71 dd71 dd71 dd71 dd71 -9185 dd72 dd72 dd72 * * 4278 8ea2c2f8,8ea2c2f8v 6220 e688a0 6220 00006220 dd72 dd72 dd72 dd72 dd72 dd72 dd72 -9186 dd73 dd73 dd73 * * 4279 8ea2c2f9,8ea2c2f9v 9168 e985a8 9168 00009168 dd73 dd73 dd73 dd73 dd73 dd73 dd73 -9187 dd74 dd74 dd74 * * 427a 8ea2c2fa,8ea2c2fav 6223 e688a3 6223 00006223 dd74 dd74 dd74 dd74 dd74 dd74 dd74 -9188 dd75 dd75 dd75 * * 427b 8ea2c2fb,8ea2c2fbv 6225 e688a5 6225 00006225 dd75 dd75 dd75 dd75 dd75 dd75 dd75 -9189 dd76 dd76 dd76 * * 427c 8ea2c2fc,8ea2c2fcv 6224 e688a4 6224 00006224 dd76 dd76 dd76 dd76 dd76 dd76 dd76 -9190 dd77 dd77 dd77 * * 427d 8ea2c2fd,8ea2c2fdv 63c5 e68f85 63c5 000063c5 dd77 dd77 dd77 dd77 dd77 dd77 dd77 -9191 dd78 dd78 dd78 * * 427e 8ea2c2fe,8ea2c2fev 63f1 e68fb1 63f1 000063f1 dd78 dd78 dd78 dd78 dd78 dd78 dd78 -9192 dd79 dd79 dd79 * * 4321 8ea2c3a1,8ea2c3a1v 63eb e68fab 63eb 000063eb dd79 dd79 dd79 dd79 dd79 dd79 dd79 -9193 dd7a dd7a dd7a * * 4322 8ea2c3a2,8ea2c3a2v 6410 e69090 6410 00006410 dd7a dd7a dd7a dd7a dd7a dd7a dd7a -9194 dd7b dd7b dd7b * * 4323 8ea2c3a3,8ea2c3a3v 6412 e69092 6412 00006412 dd7b dd7b dd7b dd7b dd7b dd7b dd7b -9195 dd7c dd7c dd7c * * 4324 8ea2c3a4,8ea2c3a4v 6409 e69089 6409 00006409 dd7c dd7c dd7c dd7c dd7c dd7c dd7c -9196 dd7d dd7d dd7d * * 4325 8ea2c3a5,8ea2c3a5v 6420 e690a0 6420 00006420 dd7d dd7d dd7d dd7d dd7d dd7d dd7d -9197 dd7e dd7e dd7e * * 4326 8ea2c3a6,8ea2c3a6v 6424 e690a4 6424 00006424 dd7e dd7e dd7e dd7e dd7e dd7e dd7e -9198 dda1 dda1 dda1 * * 4327 8ea2c3a7,8ea2c3a7v 6433 e690b3 6433 00006433 dda1 dda1 dda1 dda1 dda1 dda1 dda1 -9199 dda2 dda2 dda2 * * 4328 8ea2c3a8,8ea2c3a8v 6443 e69183 6443 00006443 dda2 dda2 dda2 dda2 dda2 dda2 dda2 -9200 dda3 dda3 dda3 * * 4329 8ea2c3a9,8ea2c3a9v 641f e6909f 641f 0000641f dda3 dda3 dda3 dda3 dda3 dda3 dda3 -9201 dda4 dda4 dda4 * * 432a 8ea2c3aa,8ea2c3aav 6415 e69095 6415 00006415 dda4 dda4 dda4 dda4 dda4 dda4 dda4 -9202 dda5 dda5 dda5 * * 432b 8ea2c3ab,8ea2c3abv 6418 e69098 6418 00006418 dda5 dda5 dda5 dda5 dda5 dda5 dda5 -9203 dda6 dda6 dda6 * * 432c 8ea2c3ac,8ea2c3acv 6439 e690b9 6439 00006439 dda6 dda6 dda6 dda6 dda6 dda6 dda6 -9204 dda7 dda7 dda7 * * 432d 8ea2c3ad,8ea2c3adv 6437 e690b7 6437 00006437 dda7 dda7 dda7 dda7 dda7 dda7 dda7 -9205 dda8 dda8 dda8 * * 432e 8ea2c3ae,8ea2c3aev 6422 e690a2 6422 00006422 dda8 dda8 dda8 dda8 dda8 dda8 dda8 -9206 dda9 dda9 dda9 * * 432f 8ea2c3af,8ea2c3afv 6423 e690a3 6423 00006423 dda9 dda9 dda9 dda9 dda9 dda9 dda9 -9207 ddaa ddaa ddaa * * 4330 8ea2c3b0,8ea2c3b0v 640c e6908c 640c 0000640c ddaa ddaa ddaa ddaa ddaa ddaa ddaa -9208 ddab ddab ddab * * 4331 8ea2c3b1,8ea2c3b1v 6426 e690a6 6426 00006426 ddab ddab ddab ddab ddab ddab ddab -9209 ddac ddac ddac * * 4332 8ea2c3b2,8ea2c3b2v 6430 e690b0 6430 00006430 ddac ddac ddac ddac ddac ddac ddac -9210 ddad ddad ddad * * 4333 8ea2c3b3,8ea2c3b3v 6428 e690a8 6428 00006428 ddad ddad ddad ddad ddad ddad ddad -9211 ddae ddae ddae * * 4334 8ea2c3b4,8ea2c3b4v 6441 e69181 6441 00006441 ddae ddae ddae ddae ddae ddae ddae -9212 ddaf ddaf ddaf * * 4335 8ea2c3b5,8ea2c3b5v 6435 e690b5 6435 00006435 ddaf ddaf ddaf ddaf ddaf ddaf ddaf -9213 ddb0 ddb0 ddb0 * * 4336 8ea2c3b6,8ea2c3b6v 642f e690af 642f 0000642f ddb0 ddb0 ddb0 ddb0 ddb0 ddb0 ddb0 -9214 ddb1 ddb1 ddb1 * * 4337 8ea2c3b7,8ea2c3b7v 640a e6908a 640a 0000640a ddb1 ddb1 ddb1 ddb1 ddb1 ddb1 ddb1 -9215 ddb2 ddb2 ddb2 * * 4338 8ea2c3b8,8ea2c3b8v 641a e6909a 641a 0000641a ddb2 ddb2 ddb2 ddb2 ddb2 ddb2 ddb2 -9216 ddb3 ddb3 ddb3 * * 4339 8ea2c3b9,8ea2c3b9v 6440 e69180 6440 00006440 ddb3 ddb3 ddb3 ddb3 ddb3 ddb3 ddb3 -9217 ddb4 ddb4 ddb4 * * 433a 8ea2c3ba,8ea2c3bav 6425 e690a5 6425 00006425 ddb4 ddb4 ddb4 ddb4 ddb4 ddb4 ddb4 -9218 ddb5 ddb5 ddb5 * * 433b 8ea2c3bb,8ea2c3bbv 6427 e690a7 6427 00006427 ddb5 ddb5 ddb5 ddb5 ddb5 ddb5 ddb5 -9219 ddb6 ddb6 ddb6 * * 433c 8ea2c3bc,8ea2c3bcv 640b e6908b 640b 0000640b ddb6 ddb6 ddb6 ddb6 ddb6 ddb6 ddb6 -9220 ddb7 ddb7 ddb7 * * 433d 8ea2c3bd,8ea2c3bdv 63e7 e68fa7 63e7 000063e7 ddb7 ddb7 ddb7 ddb7 ddb7 ddb7 ddb7 -9221 ddb8 ddb8 ddb8 * * 433e 8ea2c3be,8ea2c3bev 641b e6909b 641b 0000641b ddb8 ddb8 ddb8 ddb8 ddb8 ddb8 ddb8 -9222 ddb9 ddb9 ddb9 * * 433f 8ea2c3bf,8ea2c3bfv 642e e690ae 642e 0000642e ddb9 ddb9 ddb9 ddb9 ddb9 ddb9 ddb9 -9223 ddba ddba ddba * * 4340 8ea2c3c0,8ea2c3c0v 6421 e690a1 6421 00006421 ddba ddba ddba ddba ddba ddba ddba -9224 ddbb ddbb ddbb * * 4341 8ea2c3c1,8ea2c3c1v 640e e6908e 640e 0000640e ddbb ddbb ddbb ddbb ddbb ddbb ddbb -9225 ddbc ddbc ddbc * * 4342 8ea2c3c2,8ea2c3c2v 656f e695af 656f 0000656f ddbc ddbc ddbc ddbc ddbc ddbc ddbc -9226 ddbd ddbd ddbd * * 4343 8ea2c3c3,8ea2c3c3v 6592 e69692 6592 00006592 ddbd ddbd ddbd ddbd ddbd ddbd ddbd -9227 ddbe ddbe ddbe * * 4344 8ea2c3c4,8ea2c3c4v 65d3 e69793 65d3 000065d3 ddbe ddbe ddbe ddbe ddbe ddbe ddbe -9228 ddbf ddbf ddbf * * 4345 8ea2c3c5,8ea2c3c5v 6686 e69a86 6686 00006686 ddbf ddbf ddbf ddbf ddbf ddbf ddbf -9229 ddc0 ddc0 ddc0 * * 4346 8ea2c3c6,8ea2c3c6v 668c e69a8c 668c 0000668c ddc0 ddc0 ddc0 ddc0 ddc0 ddc0 ddc0 -9230 ddc1 ddc1 ddc1 * * 4347 8ea2c3c7,8ea2c3c7v 6695 e69a95 6695 00006695 ddc1 ddc1 ddc1 ddc1 ddc1 ddc1 ddc1 -9231 ddc2 ddc2 ddc2 * * 4348 8ea2c3c8,8ea2c3c8v 6690 e69a90 6690 00006690 ddc2 ddc2 ddc2 ddc2 ddc2 ddc2 ddc2 -9232 ddc3 ddc3 ddc3 * * 4349 8ea2c3c9,8ea2c3c9v 668b e69a8b 668b 0000668b ddc3 ddc3 ddc3 ddc3 ddc3 ddc3 ddc3 -9233 ddc4 ddc4 ddc4 * * 434a 8ea2c3ca,8ea2c3cav 668a e69a8a 668a 0000668a ddc4 ddc4 ddc4 ddc4 ddc4 ddc4 ddc4 -9234 ddc5 ddc5 ddc5 * * 434b 8ea2c3cb,8ea2c3cbv 6699 e69a99 6699 00006699 ddc5 ddc5 ddc5 ddc5 ddc5 ddc5 ddc5 -9235 ddc6 ddc6 ddc6 * * 434c 8ea2c3cc,8ea2c3ccv 6694 e69a94 6694 00006694 ddc6 ddc6 ddc6 ddc6 ddc6 ddc6 ddc6 -9236 ddc7 ddc7 ddc7 * * 434d 8ea2c3cd,8ea2c3cdv 6678 e699b8 6678 00006678 ddc7 ddc7 ddc7 ddc7 ddc7 ddc7 ddc7 -9237 ddc8 ddc8 ddc8 * * 434e 8ea2c3ce,8ea2c3cev 6720 e69ca0 6720 00006720 ddc8 ddc8 ddc8 ddc8 ddc8 ddc8 ddc8 -9238 ddc9 ddc9 ddc9 * * 434f 8ea2c3cf,8ea2c3cfv 6966 e6a5a6 6966 00006966 ddc9 ddc9 ddc9 ddc9 ddc9 ddc9 ddc9 -9239 ddca ddca ddca * * 4350 8ea2c3d0,8ea2c3d0v 695f e6a59f 695f 0000695f ddca ddca ddca ddca ddca ddca ddca -9240 ddcb ddcb ddcb * * 4351 8ea2c3d1,8ea2c3d1v 6938 e6a4b8 6938 00006938 ddcb ddcb ddcb ddcb ddcb ddcb ddcb -9241 ddcc ddcc ddcc * * 4352 8ea2c3d2,8ea2c3d2v 694e e6a58e 694e 0000694e ddcc ddcc ddcc ddcc ddcc ddcc ddcc -9242 ddcd ddcd ddcd * * 4353 8ea2c3d3,8ea2c3d3v 6962 e6a5a2 6962 00006962 ddcd ddcd ddcd ddcd ddcd ddcd ddcd -9243 ddce ddce ddce * * 4354 8ea2c3d4,8ea2c3d4v 6971 e6a5b1 6971 00006971 ddce ddce ddce ddce ddce ddce ddce -9244 ddcf ddcf ddcf * * 4355 8ea2c3d5,8ea2c3d5v 693f e6a4bf 693f 0000693f ddcf ddcf ddcf ddcf ddcf ddcf ddcf -9245 ddd0 ddd0 ddd0 * * 4356 8ea2c3d6,8ea2c3d6v 6945 e6a585 6945 00006945 ddd0 ddd0 ddd0 ddd0 ddd0 ddd0 ddd0 -9246 ddd1 ddd1 ddd1 * * 4357 8ea2c3d7,8ea2c3d7v 696a e6a5aa 696a 0000696a ddd1 ddd1 ddd1 ddd1 ddd1 ddd1 ddd1 -9247 ddd2 ddd2 ddd2 * * 4358 8ea2c3d8,8ea2c3d8v 6939 e6a4b9 6939 00006939 ddd2 ddd2 ddd2 ddd2 ddd2 ddd2 ddd2 -9248 ddd3 ddd3 ddd3 * * 4359 8ea2c3d9,8ea2c3d9v 6942 e6a582 6942 00006942 ddd3 ddd3 ddd3 ddd3 ddd3 ddd3 ddd3 -9249 ddd4 ddd4 ddd4 * * 435a 8ea2c3da,8ea2c3dav 6957 e6a597 6957 00006957 ddd4 ddd4 ddd4 ddd4 ddd4 ddd4 ddd4 -9250 ddd5 ddd5 ddd5 * * 435b 8ea2c3db,8ea2c3dbv 6959 e6a599 6959 00006959 ddd5 ddd5 ddd5 ddd5 ddd5 ddd5 ddd5 -9251 ddd6 ddd6 ddd6 * * 435c 8ea2c3dc,8ea2c3dcv 697a e6a5ba 697a 0000697a ddd6 ddd6 ddd6 ddd6 ddd6 ddd6 ddd6 -9252 ddd7 ddd7 ddd7 * * 435d 8ea2c3dd,8ea2c3ddv 6948 e6a588 6948 00006948 ddd7 ddd7 ddd7 ddd7 ddd7 ddd7 ddd7 -9253 ddd8 ddd8 ddd8 * * 435e 8ea2c3de,8ea2c3dev 6949 e6a589 6949 00006949 ddd8 ddd8 ddd8 ddd8 ddd8 ddd8 ddd8 -9254 ddd9 ddd9 ddd9 * * 435f 8ea2c3df,8ea2c3dfv 6935 e6a4b5 6935 00006935 ddd9 ddd9 ddd9 ddd9 ddd9 ddd9 ddd9 -9255 ddda ddda ddda * * 4360 8ea2c3e0,8ea2c3e0v 696c e6a5ac 696c 0000696c ddda ddda ddda ddda ddda ddda ddda -9256 dddb dddb dddb * * 4361 8ea2c3e1,8ea2c3e1v 6933 e6a4b3 6933 00006933 dddb dddb dddb dddb dddb dddb dddb -9257 dddc dddc dddc * * 4362 8ea2c3e2,8ea2c3e2v 693d e6a4bd 693d 0000693d dddc dddc dddc dddc dddc dddc dddc -9258 dddd dddd dddd * * 4363 8ea2c3e3,8ea2c3e3v 6965 e6a5a5 6965 00006965 dddd dddd dddd dddd dddd dddd dddd -9259 ddde ddde ddde * * 4364 8ea2c3e4,8ea2c3e4v 68f0 e6a3b0 68f0 000068f0 ddde ddde ddde ddde ddde ddde ddde -9260 dddf dddf dddf * * 4365 8ea2c3e5,8ea2c3e5v 6978 e6a5b8 6978 00006978 dddf dddf dddf dddf dddf dddf dddf -9261 dde0 dde0 dde0 * * 4366 8ea2c3e6,8ea2c3e6v 6934 e6a4b4 6934 00006934 dde0 dde0 dde0 dde0 dde0 dde0 dde0 -9262 dde1 dde1 dde1 * * 4367 8ea2c3e7,8ea2c3e7v 6969 e6a5a9 6969 00006969 dde1 dde1 dde1 dde1 dde1 dde1 dde1 -9263 dde2 dde2 dde2 * * 4368 8ea2c3e8,8ea2c3e8v 6940 e6a580 6940 00006940 dde2 dde2 dde2 dde2 dde2 dde2 dde2 -9264 dde3 dde3 dde3 * * 4369 8ea2c3e9,8ea2c3e9v 696f e6a5af 696f 0000696f dde3 dde3 dde3 dde3 dde3 dde3 dde3 -9265 dde4 dde4 dde4 * * 436a 8ea2c3ea,8ea2c3eav 6944 e6a584 6944 00006944 dde4 dde4 dde4 dde4 dde4 dde4 dde4 -9266 dde5 dde5 dde5 * * 436b 8ea2c3eb,8ea2c3ebv 6976 e6a5b6 6976 00006976 dde5 dde5 dde5 dde5 dde5 dde5 dde5 -9267 dde6 dde6 dde6 * * 436c 8ea2c3ec,8ea2c3ecv 6958 e6a598 6958 00006958 dde6 dde6 dde6 dde6 dde6 dde6 dde6 -9268 dde7 dde7 dde7 * * 436d 8ea2c3ed,8ea2c3edv 6941 e6a581 6941 00006941 dde7 dde7 dde7 dde7 dde7 dde7 dde7 -9269 dde8 dde8 dde8 * * 436e 8ea2c3ee,8ea2c3eev 6974 e6a5b4 6974 00006974 dde8 dde8 dde8 dde8 dde8 dde8 dde8 -9270 dde9 dde9 dde9 * * 436f 8ea2c3ef,8ea2c3efv 694c e6a58c 694c 0000694c dde9 dde9 dde9 dde9 dde9 dde9 dde9 -9271 ddea ddea ddea * * 4370 8ea2c3f0,8ea2c3f0v 693b e6a4bb 693b 0000693b ddea ddea ddea ddea ddea ddea ddea -9272 ddeb ddeb ddeb * * 4371 8ea2c3f1,8ea2c3f1v 694b e6a58b 694b 0000694b ddeb ddeb ddeb ddeb ddeb ddeb ddeb -9273 ddec ddec ddec * * 4372 8ea2c3f2,8ea2c3f2v 6937 e6a4b7 6937 00006937 ddec ddec ddec ddec ddec ddec ddec -9274 dded dded dded * * 4373 8ea2c3f3,8ea2c3f3v 695c e6a59c 695c 0000695c dded dded dded dded dded dded dded -9275 ddee ddee ddee * * 4374 8ea2c3f4,8ea2c3f4v 694f e6a58f 694f 0000694f ddee ddee ddee ddee ddee ddee ddee -9276 ddef ddef ddef * * 4375 8ea2c3f5,8ea2c3f5v 6951 e6a591 6951 00006951 ddef ddef ddef ddef ddef ddef ddef -9277 ddf0 ddf0 ddf0 * * 4376 8ea2c3f6,8ea2c3f6v 6932 e6a4b2 6932 00006932 ddf0 ddf0 ddf0 ddf0 ddf0 ddf0 ddf0 -9278 ddf1 ddf1 ddf1 * * 4377 8ea2c3f7,8ea2c3f7v 6952 e6a592 6952 00006952 ddf1 ddf1 ddf1 ddf1 ddf1 ddf1 ddf1 -9279 ddf2 ddf2 ddf2 * * 4378 8ea2c3f8,8ea2c3f8v 692f e6a4af 692f 0000692f ddf2 ddf2 ddf2 ddf2 ddf2 ddf2 ddf2 -9280 ddf3 ddf3 ddf3 * * 4379 8ea2c3f9,8ea2c3f9v 697b e6a5bb 697b 0000697b ddf3 ddf3 ddf3 ddf3 ddf3 ddf3 ddf3 -9281 ddf4 ddf4 ddf4 * * 437a 8ea2c3fa,8ea2c3fav 693c e6a4bc 693c 0000693c ddf4 ddf4 ddf4 ddf4 ddf4 ddf4 ddf4 -9282 ddf5 ddf5 ddf5 * * 437b 8ea2c3fb,8ea2c3fbv 6b46 e6ad86 6b46 00006b46 ddf5 ddf5 ddf5 ddf5 ddf5 ddf5 ddf5 -9283 ddf6 ddf6 ddf6 * * 437c 8ea2c3fc,8ea2c3fcv 6b45 e6ad85 6b45 00006b45 ddf6 ddf6 ddf6 ddf6 ddf6 ddf6 ddf6 -9284 ddf7 ddf7 ddf7 * * 437d 8ea2c3fd,8ea2c3fdv 6b43 e6ad83 6b43 00006b43 ddf7 ddf7 ddf7 ddf7 ddf7 ddf7 ddf7 -9285 ddf8 ddf8 ddf8 * * 437e 8ea2c3fe,8ea2c3fev 6b42 e6ad82 6b42 00006b42 ddf8 ddf8 ddf8 ddf8 ddf8 ddf8 ddf8 -9286 ddf9 ddf9 ddf9 * * 4421 8ea2c4a1,8ea2c4a1v 6b48 e6ad88 6b48 00006b48 ddf9 ddf9 ddf9 ddf9 ddf9 ddf9 ddf9 -9287 ddfa ddfa ddfa * * 4422 8ea2c4a2,8ea2c4a2v 6b41 e6ad81 6b41 00006b41 ddfa ddfa ddfa ddfa ddfa ddfa ddfa -9288 ddfb ddfb ddfb * * 4423 8ea2c4a3,8ea2c4a3v 6b9b e6ae9b 6b9b 00006b9b ddfb ddfb ddfb ddfb ddfb ddfb ddfb -9289 ddfd ddfd ddfd * * 4424 8ea2c4a4,8ea2c4a4v 6bfb e6afbb 6bfb 00006bfb ddfd ddfd ddfd ddfd ddfd ddfd ddfd -9290 ddfe ddfe ddfe * * 4425 8ea2c4a5,8ea2c4a5v 6bfc e6afbc 6bfc 00006bfc ddfe ddfe ddfe ddfe ddfe ddfe ddfe -9291 de40 de40 de40 * * 4426 8ea2c4a6,8ea2c4a6v 6bf9 e6afb9 6bf9 00006bf9 de40 de40 de40 de40 de40 de40 de40 -9292 de41 de41 de41 * * 4427 8ea2c4a7,8ea2c4a7v 6bf7 e6afb7 6bf7 00006bf7 de41 de41 de41 de41 de41 de41 de41 -9293 de42 de42 de42 * * 4428 8ea2c4a8,8ea2c4a8v 6bf8 e6afb8 6bf8 00006bf8 de42 de42 de42 de42 de42 de42 de42 -9294 de43 de43 de43 * * 4429 8ea2c4a9,8ea2c4a9v 6e9b e6ba9b 6e9b 00006e9b de43 de43 de43 de43 de43 de43 de43 -9295 de44 de44 de44 * * 442a 8ea2c4aa,8ea2c4aav 6ed6 e6bb96 6ed6 00006ed6 de44 de44 de44 de44 de44 de44 de44 -9296 de45 de45 de45 * * 442b 8ea2c4ab,8ea2c4abv 6ec8 e6bb88 6ec8 00006ec8 de45 de45 de45 de45 de45 de45 de45 -9297 de46 de46 de46 * * 442c 8ea2c4ac,8ea2c4acv 6e8f e6ba8f 6e8f 00006e8f de46 de46 de46 de46 de46 de46 de46 -9298 de47 de47 de47 * * 442d 8ea2c4ad,8ea2c4adv 6ec0 e6bb80 6ec0 00006ec0 de47 de47 de47 de47 de47 de47 de47 -9299 de48 de48 de48 * * 442e 8ea2c4ae,8ea2c4aev 6e9f e6ba9f 6e9f 00006e9f de48 de48 de48 de48 de48 de48 de48 -9300 de49 de49 de49 * * 442f 8ea2c4af,8ea2c4afv 6e93 e6ba93 6e93 00006e93 de49 de49 de49 de49 de49 de49 de49 -9301 de4a de4a de4a * * 4430 8ea2c4b0,8ea2c4b0v 6e94 e6ba94 6e94 00006e94 de4a de4a de4a de4a de4a de4a de4a -9302 de4b de4b de4b * * 4431 8ea2c4b1,8ea2c4b1v 6ea0 e6baa0 6ea0 00006ea0 de4b de4b de4b de4b de4b de4b de4b -9303 de4c de4c de4c * * 4432 8ea2c4b2,8ea2c4b2v 6eb1 e6bab1 6eb1 00006eb1 de4c de4c de4c de4c de4c de4c de4c -9304 de4d de4d de4d * * 4433 8ea2c4b3,8ea2c4b3v 6eb9 e6bab9 6eb9 00006eb9 de4d de4d de4d de4d de4d de4d de4d -9305 de4e de4e de4e * * 4434 8ea2c4b4,8ea2c4b4v 6ec6 e6bb86 6ec6 00006ec6 de4e de4e de4e de4e de4e de4e de4e -9306 de4f de4f de4f * * 4435 8ea2c4b5,8ea2c4b5v 6ed2 e6bb92 6ed2 00006ed2 de4f de4f de4f de4f de4f de4f de4f -9307 de50 de50 de50 * * 4436 8ea2c4b6,8ea2c4b6v 6ebd e6babd 6ebd 00006ebd de50 de50 de50 de50 de50 de50 de50 -9308 de51 de51 de51 * * 4437 8ea2c4b7,8ea2c4b7v 6ec1 e6bb81 6ec1 00006ec1 de51 de51 de51 de51 de51 de51 de51 -9309 de52 de52 de52 * * 4438 8ea2c4b8,8ea2c4b8v 6e9e e6ba9e 6e9e 00006e9e de52 de52 de52 de52 de52 de52 de52 -9310 de53 de53 de53 * * 4439 8ea2c4b9,8ea2c4b9v 6ec9 e6bb89 6ec9 00006ec9 de53 de53 de53 de53 de53 de53 de53 -9311 de54 de54 de54 * * 443a 8ea2c4ba,8ea2c4bav 6eb7 e6bab7 6eb7 00006eb7 de54 de54 de54 de54 de54 de54 de54 -9312 de55 de55 de55 * * 443b 8ea2c4bb,8ea2c4bbv 6eb0 e6bab0 6eb0 00006eb0 de55 de55 de55 de55 de55 de55 de55 -9313 de56 de56 de56 * * 443c 8ea2c4bc,8ea2c4bcv 6ecd e6bb8d 6ecd 00006ecd de56 de56 de56 de56 de56 de56 de56 -9314 de57 de57 de57 * * 443d 8ea2c4bd,8ea2c4bdv 6ea6 e6baa6 6ea6 00006ea6 de57 de57 de57 de57 de57 de57 de57 -9315 de58 de58 de58 * * 443e 8ea2c4be,8ea2c4bev 6ecf e6bb8f 6ecf 00006ecf de58 de58 de58 de58 de58 de58 de58 -9316 de59 de59 de59 * * 443f 8ea2c4bf,8ea2c4bfv 6eb2 e6bab2 6eb2 00006eb2 de59 de59 de59 de59 de59 de59 de59 -9317 de5a de5a de5a * * 4440 8ea2c4c0,8ea2c4c0v 6ebe e6babe 6ebe 00006ebe de5a de5a de5a de5a de5a de5a de5a -9318 de5b de5b de5b * * 4441 8ea2c4c1,8ea2c4c1v 6ec3 e6bb83 6ec3 00006ec3 de5b de5b de5b de5b de5b de5b de5b -9319 de5c de5c de5c * * 4442 8ea2c4c2,8ea2c4c2v 6edc e6bb9c 6edc 00006edc de5c de5c de5c de5c de5c de5c de5c -9320 de5d de5d de5d * * 4443 8ea2c4c3,8ea2c4c3v 6ed8 e6bb98 6ed8 00006ed8 de5d de5d de5d de5d de5d de5d de5d -9321 de5e de5e de5e * * 4444 8ea2c4c4,8ea2c4c4v 6e99 e6ba99 6e99 00006e99 de5e de5e de5e de5e de5e de5e de5e -9322 de5f de5f de5f * * 4445 8ea2c4c5,8ea2c4c5v 6e92 e6ba92 6e92 00006e92 de5f de5f de5f de5f de5f de5f de5f -9323 de60 de60 de60 * * 4446 8ea2c4c6,8ea2c4c6v 6e8e e6ba8e 6e8e 00006e8e de60 de60 de60 de60 de60 de60 de60 -9324 de61 de61 de61 * * 4447 8ea2c4c7,8ea2c4c7v 6e8d e6ba8d 6e8d 00006e8d de61 de61 de61 de61 de61 de61 de61 -9325 de62 de62 de62 * * 4448 8ea2c4c8,8ea2c4c8v 6ea4 e6baa4 6ea4 00006ea4 de62 de62 de62 de62 de62 de62 de62 -9326 de63 de63 de63 * * 4449 8ea2c4c9,8ea2c4c9v 6ea1 e6baa1 6ea1 00006ea1 de63 de63 de63 de63 de63 de63 de63 -9327 de64 de64 de64 * * 444a 8ea2c4ca,8ea2c4cav 6ebf e6babf 6ebf 00006ebf de64 de64 de64 de64 de64 de64 de64 -9328 de65 de65 de65 * * 444b 8ea2c4cb,8ea2c4cbv 6eb3 e6bab3 6eb3 00006eb3 de65 de65 de65 de65 de65 de65 de65 -9329 de66 de66 de66 * * 444c 8ea2c4cc,8ea2c4ccv 6ed0 e6bb90 6ed0 00006ed0 de66 de66 de66 de66 de66 de66 de66 -9330 de67 de67 de67 * * 444d 8ea2c4cd,8ea2c4cdv 6eca e6bb8a 6eca 00006eca de67 de67 de67 de67 de67 de67 de67 -9331 de68 de68 de68 * * 444e 8ea2c4ce,8ea2c4cev 6e97 e6ba97 6e97 00006e97 de68 de68 de68 de68 de68 de68 de68 -9332 de69 de69 de69 * * 444f 8ea2c4cf,8ea2c4cfv 6eae e6baae 6eae 00006eae de69 de69 de69 de69 de69 de69 de69 -9333 de6a de6a de6a * * 4450 8ea2c4d0,8ea2c4d0v 6ea3 e6baa3 6ea3 00006ea3 de6a de6a de6a de6a de6a de6a de6a -9334 de6b de6b de6b * * 4451 8ea2c4d1,8ea2c4d1v 7147 e78587 7147 00007147 de6b de6b de6b de6b de6b de6b de6b -9335 de6c de6c de6c * * 4452 8ea2c4d2,8ea2c4d2v 7154 e78594 7154 00007154 de6c de6c de6c de6c de6c de6c de6c -9336 de6d de6d de6d * * 4453 8ea2c4d3,8ea2c4d3v 7152 e78592 7152 00007152 de6d de6d de6d de6d de6d de6d de6d -9337 de6e de6e de6e * * 4454 8ea2c4d4,8ea2c4d4v 7163 e785a3 7163 00007163 de6e de6e de6e de6e de6e de6e de6e -9338 de6f de6f de6f * * 4455 8ea2c4d5,8ea2c4d5v 7160 e785a0 7160 00007160 de6f de6f de6f de6f de6f de6f de6f -9339 de70 de70 de70 * * 4456 8ea2c4d6,8ea2c4d6v 7141 e78581 7141 00007141 de70 de70 de70 de70 de70 de70 de70 -9340 de71 de71 de71 * * 4457 8ea2c4d7,8ea2c4d7v 715d e7859d 715d 0000715d de71 de71 de71 de71 de71 de71 de71 -9341 de72 de72 de72 * * 4458 8ea2c4d8,8ea2c4d8v 7162 e785a2,eeba98 7162,ee98 00007162,0000ee98 a0df,de72 de72 de72 de72 de72 de72 a0df,de72 -9342 de73 de73 de73 * * 4459 8ea2c4d9,8ea2c4d9v 7172 e785b2 7172 00007172 de73 de73 de73 de73 de73 de73 de73 -9343 de74 de74 de74 * * 445a 8ea2c4da,8ea2c4dav 7178 e785b8 7178 00007178 de74 de74 de74 de74 de74 de74 de74 -9344 de75 de75 de75 * * 445b 8ea2c4db,8ea2c4dbv 716a e785aa 716a 0000716a de75 de75 de75 de75 de75 de75 de75 -9345 de76 de76 de76 * * 445c 8ea2c4dc,8ea2c4dcv 7161 e785a1 7161 00007161 de76 de76 de76 de76 de76 de76 de76 -9346 de77 de77 de77 * * 445d 8ea2c4dd,8ea2c4ddv 7142 e78582 7142 00007142 de77 de77 de77 de77 de77 de77 de77 -9347 de78 de78 de78 * * 445e 8ea2c4de,8ea2c4dev 7158 e78598 7158 00007158 de78 de78 de78 de78 de78 de78 de78 -9348 de79 de79 de79 * * 445f 8ea2c4df,8ea2c4dfv 7143 e78583 7143 00007143 de79 de79 de79 de79 de79 de79 de79 -9349 de7a de7a de7a * * 4460 8ea2c4e0,8ea2c4e0v 714b e7858b 714b 0000714b de7a de7a de7a de7a de7a de7a de7a -9350 de7b de7b de7b * * 4461 8ea2c4e1,8ea2c4e1v 7170 e785b0 7170 00007170 de7b de7b de7b de7b de7b de7b de7b -9351 de7c de7c de7c * * 4462 8ea2c4e2,8ea2c4e2v 715f e7859f 715f 0000715f de7c de7c de7c de7c de7c de7c de7c -9352 de7d de7d de7d * * 4463 8ea2c4e3,8ea2c4e3v 7150 e78590 7150 00007150 de7d de7d de7d de7d de7d de7d de7d -9353 de7e de7e de7e * * 4464 8ea2c4e4,8ea2c4e4v 7153 e78593 7153 00007153 de7e de7e de7e de7e de7e de7e de7e -9354 dea1 dea1 dea1 * * 4465 8ea2c4e5,8ea2c4e5v 7144 e78584 7144 00007144 dea1 dea1 dea1 dea1 dea1 dea1 dea1 -9355 dea2 dea2 dea2 * * 4466 8ea2c4e6,8ea2c4e6v 714d e7858d 714d 0000714d dea2 dea2 dea2 dea2 dea2 dea2 dea2 -9356 dea3 dea3 dea3 * * 4467 8ea2c4e7,8ea2c4e7v 715a e7859a 715a 0000715a dea3 dea3 dea3 dea3 dea3 dea3 dea3 -9357 dea4 dea4 dea4 * * 4468 8ea2c4e8,8ea2c4e8v 724f e7898f 724f 0000724f dea4 dea4 dea4 dea4 dea4 dea4 dea4 -9358 dea5 dea5 dea5 * * 4469 8ea2c4e9,8ea2c4e9v 728d e78a8d 728d 0000728d dea5 dea5 dea5 dea5 dea5 dea5 dea5 -9359 dea6 dea6 dea6 * * 446a 8ea2c4ea,8ea2c4eav 728c e78a8c 728c 0000728c dea6 dea6 dea6 dea6 dea6 dea6 dea6 -9360 dea7 dea7 dea7 * * 446b 8ea2c4eb,8ea2c4ebv 7291 e78a91 7291 00007291 dea7 dea7 dea7 dea7 dea7 dea7 dea7 -9361 dea8 dea8 dea8 * * 446c 8ea2c4ec,8ea2c4ecv 7290 e78a90 7290 00007290 dea8 dea8 dea8 dea8 dea8 dea8 dea8 -9362 dea9 dea9 dea9 * * 446d 8ea2c4ed,8ea2c4edv 728e e78a8e 728e 0000728e dea9 dea9 dea9 dea9 dea9 dea9 dea9 -9363 deaa deaa deaa * * 446e 8ea2c4ee,8ea2c4eev 733c e78cbc 733c 0000733c deaa deaa deaa deaa deaa deaa deaa -9364 deab deab deab * * 446f 8ea2c4ef,8ea2c4efv 7342 e78d82 7342 00007342 deab deab deab deab deab deab deab -9365 deac deac deac * * 4470 8ea2c4f0,8ea2c4f0v 733b e78cbb 733b 0000733b deac deac deac deac deac deac deac -9366 dead dead dead * * 4471 8ea2c4f1,8ea2c4f1v 733a e78cba 733a 0000733a dead dead dead dead dead dead dead -9367 deae deae deae * * 4472 8ea2c4f2,8ea2c4f2v 7340 e78d80 7340 00007340 deae deae deae deae deae deae deae -9368 deaf deaf deaf * * 4473 8ea2c4f3,8ea2c4f3v 734a e78d8a 734a 0000734a deaf deaf deaf deaf deaf deaf deaf -9369 deb0 deb0 deb0 * * 4474 8ea2c4f4,8ea2c4f4v 7349 e78d89 7349 00007349 deb0 deb0 deb0 deb0 deb0 deb0 deb0 -9370 deb1 deb1 deb1 * * 4475 8ea2c4f5,8ea2c4f5v 7444 e79184 7444 00007444 deb1 deb1 deb1 deb1 deb1 deb1 deb1 -9371 deb2 deb2 deb2 * * 4476 8ea2c4f6,8ea2c4f6v 744a e7918a 744a 0000744a deb2 deb2 deb2 deb2 deb2 deb2 deb2 -9372 deb3 deb3 deb3 * * 4477 8ea2c4f7,8ea2c4f7v 744b e7918b 744b 0000744b deb3 deb3 deb3 deb3 deb3 deb3 deb3 -9373 deb4 deb4 deb4 * * 4478 8ea2c4f8,8ea2c4f8v 7452 e79192 7452 00007452 deb4 deb4 deb4 deb4 deb4 deb4 deb4 -9374 deb5 deb5 deb5 * * 4479 8ea2c4f9,8ea2c4f9v 7451 e79191 7451 00007451 deb5 deb5 deb5 deb5 deb5 deb5 deb5 -9375 deb6 deb6 deb6 * * 447a 8ea2c4fa,8ea2c4fav 7457 e79197 7457 00007457 deb6 deb6 deb6 deb6 deb6 deb6 deb6 -9376 deb7 deb7 deb7 * * 447b 8ea2c4fb,8ea2c4fbv 7440 e79180 7440 00007440 deb7 deb7 deb7 deb7 deb7 deb7 deb7 -9377 deb8 deb8 deb8 * * 447c 8ea2c4fc,8ea2c4fcv 744f e7918f 744f 0000744f deb8 deb8 deb8 deb8 deb8 deb8 deb8 -9378 deb9 deb9 deb9 * * 447d 8ea2c4fd,8ea2c4fdv 7450 e79190 7450 00007450 deb9 deb9 deb9 deb9 deb9 deb9 deb9 -9379 deba deba deba * * 447e 8ea2c4fe,8ea2c4fev 744e e7918e 744e 0000744e deba deba deba deba deba deba deba -9380 debb debb debb * * 4521 8ea2c5a1,8ea2c5a1v 7442 e79182 7442 00007442 debb debb debb debb debb debb debb -9381 debc debc debc * * 4522 8ea2c5a2,8ea2c5a2v 7446 e79186 7446 00007446 debc debc debc debc debc debc debc -9382 debd debd debd * * 4523 8ea2c5a3,8ea2c5a3v 744d e7918d 744d 0000744d debd debd debd debd debd debd debd -9383 debe debe debe * * 4524 8ea2c5a4,8ea2c5a4v 7454 e79194 7454 00007454 debe debe debe debe debe debe debe -9384 debf debf debf * * 4525 8ea2c5a5,8ea2c5a5v 74e1 e793a1 74e1 000074e1 debf debf debf debf debf debf debf -9385 dec0 dec0 dec0 * * 4526 8ea2c5a6,8ea2c5a6v 74ff e793bf 74ff 000074ff dec0 dec0 dec0 dec0 dec0 dec0 dec0 -9386 dec1 dec1 dec1 * * 4527 8ea2c5a7,8ea2c5a7v 74fe e793be 74fe 000074fe dec1 dec1 dec1 dec1 dec1 dec1 dec1 -9387 dec2 dec2 dec2 * * 4528 8ea2c5a8,8ea2c5a8v 74fd e793bd 74fd 000074fd dec2 dec2 dec2 dec2 dec2 dec2 dec2 -9388 dec3 dec3 dec3 * * 4529 8ea2c5a9,8ea2c5a9v 751d e7949d 751d 0000751d dec3 dec3 dec3 dec3 dec3 dec3 dec3 -9389 dec4 dec4 dec4 * * 452a 8ea2c5aa,8ea2c5aav 7579 e795b9 7579 00007579 dec4 dec4 dec4 dec4 dec4 dec4 dec4 -9390 dec5 dec5 dec5 * * 452b 8ea2c5ab,8ea2c5abv 7577 e795b7 7577 00007577 dec5 dec5 dec5 dec5 dec5 dec5 dec5 -9391 dec6 dec6 dec6 * * 452c 8ea2c5ac,8ea2c5acv 6983 e6a683 6983 00006983 dec6 dec6 dec6 dec6 dec6 dec6 dec6 -9392 dec7 dec7 dec7 * * 452d 8ea2c5ad,8ea2c5adv 75ef e797af 75ef 000075ef dec7 dec7 dec7 dec7 dec7 dec7 dec7 -9393 dec8 dec8 dec8 * * 452e 8ea2c5ae,8ea2c5aev 760f e7988f 760f 0000760f dec8 dec8 dec8 dec8 dec8 dec8 dec8 -9394 dec9 dec9 dec9 * * 452f 8ea2c5af,8ea2c5afv 7603 e79883 7603 00007603 dec9 dec9 dec9 dec9 dec9 dec9 dec9 -9395 deca deca deca * * 4530 8ea2c5b0,8ea2c5b0v 75f7 e797b7 75f7 000075f7 deca deca deca deca deca deca deca -9396 decb decb decb * * 4531 8ea2c5b1,8ea2c5b1v 75fe e797be 75fe 000075fe decb decb decb decb decb decb decb -9397 decc decc decc * * 4532 8ea2c5b2,8ea2c5b2v 75fc e797bc 75fc 000075fc decc decc decc decc decc decc decc -9398 decd decd decd * * 4533 8ea2c5b3,8ea2c5b3v 75f9 e797b9,eeb5ae 75f9,ed6e 000075f9,0000ed6e 9eef,decd decd decd decd decd decd 9eef,decd -9399 dece dece dece * * 4534 8ea2c5b4,8ea2c5b4v 75f8 e797b8 75f8 000075f8 dece dece dece dece dece dece dece -9400 decf decf decf * * 4535 8ea2c5b5,8ea2c5b5v 7610 e79890 7610 00007610 decf decf decf decf decf decf decf -9401 ded0 ded0 ded0 * * 4536 8ea2c5b6,8ea2c5b6v 75fb e797bb 75fb 000075fb ded0 ded0 ded0 ded0 ded0 ded0 ded0 -9402 ded1 ded1 ded1 * * 4537 8ea2c5b7,8ea2c5b7v 75f6 e797b6 75f6 000075f6 ded1 ded1 ded1 ded1 ded1 ded1 ded1 -9403 ded2 ded2 ded2 * * 4538 8ea2c5b8,8ea2c5b8v 75ed e797ad 75ed 000075ed ded2 ded2 ded2 ded2 ded2 ded2 ded2 -9404 ded3 ded3 ded3 * * 4539 8ea2c5b9,8ea2c5b9v 75f5 e797b5 75f5 000075f5 ded3 ded3 ded3 ded3 ded3 ded3 ded3 -9405 ded4 ded4 ded4 * * 453a 8ea2c5ba,8ea2c5bav 75fd e797bd 75fd 000075fd ded4 ded4 ded4 ded4 ded4 ded4 ded4 -9406 ded5 ded5 ded5 * * 453b 8ea2c5bb,8ea2c5bbv 7699 e79a99 7699 00007699 ded5 ded5 ded5 ded5 ded5 ded5 ded5 -9407 ded6 ded6 ded6 * * 453c 8ea2c5bc,8ea2c5bcv 76b5 e79ab5 76b5 000076b5 ded6 ded6 ded6 ded6 ded6 ded6 ded6 -9408 ded7 ded7 ded7 * * 453d 8ea2c5bd,8ea2c5bdv 76dd e79b9d 76dd 000076dd ded7 ded7 ded7 ded7 ded7 ded7 ded7 -9409 ded8 ded8 ded8 * * 453e 8ea2c5be,8ea2c5bev 7755 e79d95 7755 00007755 ded8 ded8 ded8 ded8 ded8 ded8 ded8 -9410 ded9 ded9 ded9 * * 453f 8ea2c5bf,8ea2c5bfv 775f e79d9f 775f 0000775f ded9 ded9 ded9 ded9 ded9 ded9 ded9 -9411 deda deda deda * * 4540 8ea2c5c0,8ea2c5c0v 7760 e79da0 7760 00007760 deda deda deda deda deda deda deda -9412 dedb dedb dedb * * 4541 8ea2c5c1,8ea2c5c1v 7752 e79d92 7752 00007752 dedb dedb dedb dedb dedb dedb dedb -9413 dedc dedc dedc * * 4542 8ea2c5c2,8ea2c5c2v 7756 e79d96 7756 00007756 dedc dedc dedc dedc dedc dedc dedc -9414 dedd dedd dedd * * 4543 8ea2c5c3,8ea2c5c3v 775a e79d9a 775a 0000775a dedd dedd dedd dedd dedd dedd dedd -9415 dede dede dede * * 4544 8ea2c5c4,8ea2c5c4v 7769 e79da9 7769 00007769 dede dede dede dede dede dede dede -9416 dedf dedf dedf * * 4545 8ea2c5c5,8ea2c5c5v 7767 e79da7 7767 00007767 dedf dedf dedf dedf dedf dedf dedf -9417 dee0 dee0 dee0 * * 4546 8ea2c5c6,8ea2c5c6v 7754 e79d94 7754 00007754 dee0 dee0 dee0 dee0 dee0 dee0 dee0 -9418 dee1 dee1 dee1 * * 4547 8ea2c5c7,8ea2c5c7v 7759 e79d99 7759 00007759 dee1 dee1 dee1 dee1 dee1 dee1 dee1 -9419 dee2 dee2 dee2 * * 4548 8ea2c5c8,8ea2c5c8v 776d e79dad 776d 0000776d dee2 dee2 dee2 dee2 dee2 dee2 dee2 -9420 dee3 dee3 dee3 * * 4549 8ea2c5c9,8ea2c5c9v 77e0 e79fa0 77e0 000077e0 dee3 dee3 dee3 dee3 dee3 dee3 dee3 -9421 dee4 dee4 dee4 * * 454a 8ea2c5ca,8ea2c5cav 7887 e7a287 7887 00007887 dee4 dee4 dee4 dee4 dee4 dee4 dee4 -9422 dee5 dee5 dee5 * * 454b 8ea2c5cb,8ea2c5cbv 789a e7a29a 789a 0000789a dee5 dee5 dee5 dee5 dee5 dee5 dee5 -9423 dee6 dee6 dee6 * * 454c 8ea2c5cc,8ea2c5ccv 7894 e7a294 7894 00007894 dee6 dee6 dee6 dee6 dee6 dee6 dee6 -9424 dee7 dee7 dee7 * * 454d 8ea2c5cd,8ea2c5cdv 788f e7a28f 788f 0000788f dee7 dee7 dee7 dee7 dee7 dee7 dee7 -9425 dee8 dee8 dee8 * * 454e 8ea2c5ce,8ea2c5cev 7884 e7a284 7884 00007884 dee8 dee8 dee8 dee8 dee8 dee8 dee8 -9426 dee9 dee9 dee9 * * 454f 8ea2c5cf,8ea2c5cfv 7895 e7a295 7895 00007895 dee9 dee9 dee9 dee9 dee9 dee9 dee9 -9427 deea deea deea * * 4550 8ea2c5d0,8ea2c5d0v 7885 e7a285 7885 00007885 deea deea deea deea deea deea deea -9428 deeb deeb deeb * * 4551 8ea2c5d1,8ea2c5d1v 7886 e7a286 7886 00007886 deeb deeb deeb deeb deeb deeb deeb -9429 deec deec deec * * 4552 8ea2c5d2,8ea2c5d2v 78a1 e7a2a1 78a1 000078a1 deec deec deec deec deec deec deec -9430 deed deed deed * * 4553 8ea2c5d3,8ea2c5d3v 7883 e7a283 7883 00007883 deed deed deed deed deed deed deed -9431 deee deee deee * * 4554 8ea2c5d4,8ea2c5d4v 7879 e7a1b9 7879 00007879 deee deee deee deee deee deee deee -9432 deef deef deef * * 4555 8ea2c5d5,8ea2c5d5v 7899 e7a299 7899 00007899 deef deef deef deef deef deef deef -9433 def0 def0 def0 * * 4556 8ea2c5d6,8ea2c5d6v 7880 e7a280 7880 00007880 def0 def0 def0 def0 def0 def0 def0 -9434 def1 def1 def1 * * 4557 8ea2c5d7,8ea2c5d7v 7896 e7a296 7896 00007896 def1 def1 def1 def1 def1 def1 def1 -9435 def2 def2 def2 * * 4558 8ea2c5d8,8ea2c5d8v 787b e7a1bb 787b 0000787b def2 def2 def2 def2 def2 def2 def2 -9436 def3 def3 def3 * * 4559 8ea2c5d9,8ea2c5d9v 797c e7a5bc 797c 0000797c def3 def3 def3 def3 def3 def3 def3 -9437 def4 def4 def4 * * 455a 8ea2c5da,8ea2c5dav 7982 e7a682 7982 00007982 def4 def4 def4 def4 def4 def4 def4 -9438 def5 def5 def5 * * 455b 8ea2c5db,8ea2c5dbv 797d e7a5bd 797d 0000797d def5 def5 def5 def5 def5 def5 def5 -9439 def6 def6 def6 * * 455c 8ea2c5dc,8ea2c5dcv 7979 e7a5b9 7979 00007979 def6 def6 def6 def6 def6 def6 def6 -9440 def7 def7 def7 * * 455d 8ea2c5dd,8ea2c5ddv 7a11 e7a891 7a11 00007a11 def7 def7 def7 def7 def7 def7 def7 -9441 def8 def8 def8 * * 455e 8ea2c5de,8ea2c5dev 7a18 e7a898 7a18 00007a18 def8 def8 def8 def8 def8 def8 def8 -9442 def9 def9 def9 * * 455f 8ea2c5df,8ea2c5dfv 7a19 e7a899 7a19 00007a19 def9 def9 def9 def9 def9 def9 def9 -9443 defa defa defa * * 4560 8ea2c5e0,8ea2c5e0v 7a12 e7a892 7a12 00007a12 defa defa defa defa defa defa defa -9444 defb defb defb * * 4561 8ea2c5e1,8ea2c5e1v 7a17 e7a897 7a17 00007a17 defb defb defb defb defb defb defb -9445 defc defc defc * * 4562 8ea2c5e2,8ea2c5e2v 7a15 e7a895 7a15 00007a15 defc defc defc defc defc defc defc -9446 defd defd defd * * 4563 8ea2c5e3,8ea2c5e3v 7a22 e7a8a2 7a22 00007a22 defd defd defd defd defd defd defd -9447 defe defe defe * * 4564 8ea2c5e4,8ea2c5e4v 7a13 e7a893 7a13 00007a13 defe defe defe defe defe defe defe -9448 df40 df40 df40 * * 4565 8ea2c5e5,8ea2c5e5v 7a1b e7a89b 7a1b 00007a1b df40 df40 df40 df40 df40 df40 df40 -9449 df41 df41 df41 * * 4566 8ea2c5e6,8ea2c5e6v 7a10 e7a890 7a10 00007a10 df41 df41 df41 df41 df41 df41 df41 -9450 df42 df42 df42 * * 4567 8ea2c5e7,8ea2c5e7v 7aa3 e7aaa3 7aa3 00007aa3 df42 df42 df42 df42 df42 df42 df42 -9451 df43 df43 df43 * * 4568 8ea2c5e8,8ea2c5e8v 7aa2 e7aaa2 7aa2 00007aa2 df43 df43 df43 df43 df43 df43 df43 -9452 df44 df44 df44 * * 4569 8ea2c5e9,8ea2c5e9v 7a9e e7aa9e 7a9e 00007a9e df44 df44 df44 df44 df44 df44 df44 -9453 df45 df45 df45 * * 456a 8ea2c5ea,8ea2c5eav 7aeb e7abab 7aeb 00007aeb df45 df45 df45 df45 df45 df45 df45 -9454 df46 df46 df46 * * 456b 8ea2c5eb,8ea2c5ebv 7b66 e7ada6 7b66 00007b66 df46 df46 df46 df46 df46 df46 df46 -9455 df47 df47 df47 * * 456c 8ea2c5ec,8ea2c5ecv 7b64 e7ada4 7b64 00007b64 df47 df47 df47 df47 df47 df47 df47 -9456 df48 df48 df48 * * 456d 8ea2c5ed,8ea2c5edv 7b6d e7adad 7b6d 00007b6d df48 df48 df48 df48 df48 df48 df48 -9457 df49 df49 df49 * * 456e 8ea2c5ee,8ea2c5eev 7b74 e7adb4 7b74 00007b74 df49 df49 df49 df49 df49 df49 df49 -9458 df4a df4a df4a * * 456f 8ea2c5ef,8ea2c5efv 7b69 e7ada9 7b69 00007b69 df4a df4a df4a df4a df4a df4a df4a -9459 df4b df4b df4b * * 4570 8ea2c5f0,8ea2c5f0v 7b72 e7adb2 7b72 00007b72 df4b df4b df4b df4b df4b df4b df4b -9460 df4c df4c df4c * * 4571 8ea2c5f1,8ea2c5f1v 7b65 e7ada5 7b65 00007b65 df4c df4c df4c df4c df4c df4c df4c -9461 df4d df4d df4d * * 4572 8ea2c5f2,8ea2c5f2v 7b73 e7adb3 7b73 00007b73 df4d df4d df4d df4d df4d df4d df4d -9462 df4e df4e df4e * * 4573 8ea2c5f3,8ea2c5f3v 7b71 e7adb1 7b71 00007b71 df4e df4e df4e df4e df4e df4e df4e -9463 df4f df4f df4f * * 4574 8ea2c5f4,8ea2c5f4v 7b70 e7adb0 7b70 00007b70 df4f df4f df4f df4f df4f df4f df4f -9464 df50 df50 df50 * * 4575 8ea2c5f5,8ea2c5f5v 7b61 e7ada1 7b61 00007b61 df50 df50 df50 df50 df50 df50 df50 -9465 df51 df51 df51 * * 4576 8ea2c5f6,8ea2c5f6v 7b78 e7adb8 7b78 00007b78 df51 df51 df51 df51 df51 df51 df51 -9466 df52 df52 df52 * * 4577 8ea2c5f7,8ea2c5f7v 7b76 e7adb6 7b76 00007b76 df52 df52 df52 df52 df52 df52 df52 -9467 df53 df53 df53 * * 4578 8ea2c5f8,8ea2c5f8v 7b63 e7ada3 7b63 00007b63 df53 df53 df53 df53 df53 df53 df53 -9468 df54 df54 df54 * * 4579 8ea2c5f9,8ea2c5f9v 7cb2 e7b2b2 7cb2 00007cb2 df54 df54 df54 df54 df54 df54 df54 -9469 df55 df55 df55 * * 457a 8ea2c5fa,8ea2c5fav 7cb4 e7b2b4 7cb4 00007cb4 df55 df55 df55 df55 df55 df55 df55 -9470 df56 df56 df56 * * 457b 8ea2c5fb,8ea2c5fbv 7caf e7b2af 7caf 00007caf df56 df56 df56 df56 df56 df56 df56 -9471 df57 df57 df57 * * 457c 8ea2c5fc,8ea2c5fcv 7d88 e7b688 7d88 00007d88 df57 df57 df57 df57 df57 df57 df57 -9472 df58 df58 df58 * * 457d 8ea2c5fd,8ea2c5fdv 7d86 e7b686 7d86 00007d86 df58 df58 df58 df58 df58 df58 df58 -9473 df59 df59 df59 * * 457e 8ea2c5fe,8ea2c5fev 7d80 e7b680 7d80 00007d80 df59 df59 df59 df59 df59 df59 df59 -9474 df5a df5a df5a * * 4621 8ea2c6a1,8ea2c6a1v 7d8d e7b68d 7d8d 00007d8d df5a df5a df5a df5a df5a df5a df5a -9475 df5b df5b df5b * * 4622 8ea2c6a2,8ea2c6a2v 7d7f e7b5bf 7d7f 00007d7f df5b df5b df5b df5b df5b df5b df5b -9476 df5c df5c df5c * * 4623 8ea2c6a3,8ea2c6a3v 7d85 e7b685 7d85 00007d85 df5c df5c df5c df5c df5c df5c df5c -9477 df5d df5d df5d * * 4624 8ea2c6a4,8ea2c6a4v 7d7a e7b5ba 7d7a 00007d7a df5d df5d df5d df5d df5d df5d df5d -9478 df5e df5e df5e * * 4625 8ea2c6a5,8ea2c6a5v 7d8e e7b68e 7d8e 00007d8e df5e df5e df5e df5e df5e df5e df5e -9479 df5f df5f df5f * * 4626 8ea2c6a6,8ea2c6a6v 7d7b e7b5bb 7d7b 00007d7b df5f df5f df5f df5f df5f df5f df5f -9480 df60 df60 df60 * * 4627 8ea2c6a7,8ea2c6a7v 7d83 e7b683 7d83 00007d83 df60 df60 df60 df60 df60 df60 df60 -9481 df61 df61 df61 * * 4628 8ea2c6a8,8ea2c6a8v 7d7c e7b5bc 7d7c 00007d7c df61 df61 df61 df61 df61 df61 df61 -9482 df62 df62 df62 * * 4629 8ea2c6a9,8ea2c6a9v 7d8c e7b68c 7d8c 00007d8c df62 df62 df62 df62 df62 df62 df62 -9483 df63 df63 df63 * * 462a 8ea2c6aa,8ea2c6aav 7d94 e7b694 7d94 00007d94 df63 df63 df63 df63 df63 df63 df63 -9484 df64 df64 df64 * * 462b 8ea2c6ab,8ea2c6abv 7d84 e7b684 7d84 00007d84 df64 df64 df64 df64 df64 df64 df64 -9485 df65 df65 df65 * * 462c 8ea2c6ac,8ea2c6acv 7d7d e7b5bd 7d7d 00007d7d df65 df65 df65 df65 df65 df65 df65 -9486 df66 df66 df66 * * 462d 8ea2c6ad,8ea2c6adv 7d92 e7b692 7d92 00007d92 df66 df66 df66 df66 df66 df66 df66 -9487 df67 df67 df67 * * 462e 8ea2c6ae,8ea2c6aev 7f6d e7bdad 7f6d 00007f6d df67 df67 df67 df67 df67 df67 df67 -9488 df68 df68 df68 * * 462f 8ea2c6af,8ea2c6afv 7f6b e7bdab 7f6b 00007f6b df68 df68 df68 df68 df68 df68 df68 -9489 df69 df69 df69 * * 4630 8ea2c6b0,8ea2c6b0v 7f67 e7bda7 7f67 00007f67 df69 df69 df69 df69 df69 df69 df69 -9490 df6a df6a df6a * * 4631 8ea2c6b1,8ea2c6b1v 7f68 e7bda8 7f68 00007f68 df6a df6a df6a df6a df6a df6a df6a -9491 df6b df6b df6b * * 4632 8ea2c6b2,8ea2c6b2v 7f6c e7bdac 7f6c 00007f6c df6b df6b df6b df6b df6b df6b df6b -9492 df6c df6c df6c * * 4633 8ea2c6b3,8ea2c6b3v 7fa6 e7bea6 7fa6 00007fa6 df6c df6c df6c df6c df6c df6c df6c -9493 df6d df6d df6d * * 4634 8ea2c6b4,8ea2c6b4v 7fa5 e7bea5 7fa5 00007fa5 df6d df6d df6d df6d df6d df6d df6d -9494 df6e df6e df6e * * 4635 8ea2c6b5,8ea2c6b5v 7fa7 e7bea7 7fa7 00007fa7 df6e df6e df6e df6e df6e df6e df6e -9495 df6f df6f df6f * * 4636 8ea2c6b6,8ea2c6b6v 7fdb e7bf9b 7fdb 00007fdb df6f df6f df6f df6f df6f df6f df6f -9496 df70 df70 df70 * * 4637 8ea2c6b7,8ea2c6b7v 7fdc e7bf9c 7fdc 00007fdc df70 df70 df70 df70 df70 df70 df70 -9497 df71 df71 df71 * * 4638 8ea2c6b8,8ea2c6b8v 8021 e880a1 8021 00008021 df71 df71 df71 df71 df71 df71 df71 -9498 df72 df72 df72 * * 4639 8ea2c6b9,8ea2c6b9v 8164 e885a4 8164 00008164 df72 df72 df72 df72 df72 df72 df72 -9499 df73 df73 df73 * * 463a 8ea2c6ba,8ea2c6bav 8160 e885a0 8160 00008160 df73 df73 df73 df73 df73 df73 df73 -9500 df74 df74 df74 * * 463b 8ea2c6bb,8ea2c6bbv 8177 e885b7 8177 00008177 df74 df74 df74 df74 df74 df74 df74 -9501 df75 df75 df75 * * 463c 8ea2c6bc,8ea2c6bcv 815c e8859c 815c 0000815c df75 df75 df75 df75 df75 df75 df75 -9502 df76 df76 df76 * * 463d 8ea2c6bd,8ea2c6bdv 8169 e885a9 8169 00008169 df76 df76 df76 df76 df76 df76 df76 -9503 df77 df77 df77 * * 463e 8ea2c6be,8ea2c6bev 815b e8859b 815b 0000815b df77 df77 df77 df77 df77 df77 df77 -9504 df78 df78 df78 * * 463f 8ea2c6bf,8ea2c6bfv 8162 e885a2 8162 00008162 df78 df78 df78 df78 df78 df78 df78 -9505 df79 df79 df79 * * 4640 8ea2c6c0,8ea2c6c0v 8172 e885b2 8172 00008172 df79 df79 df79 df79 df79 df79 df79 -9506 df7a df7a df7a * * 4641 8ea2c6c1,8ea2c6c1v 6721 e69ca1 6721 00006721 df7a df7a df7a df7a df7a df7a df7a -9507 df7b df7b df7b * * 4642 8ea2c6c2,8ea2c6c2v 815e e8859e 815e 0000815e df7b df7b df7b df7b df7b df7b df7b -9508 df7c df7c df7c * * 4643 8ea2c6c3,8ea2c6c3v 8176 e885b6 8176 00008176 df7c df7c df7c df7c df7c df7c df7c -9509 df7d df7d df7d * * 4644 8ea2c6c4,8ea2c6c4v 8167 e885a7 8167 00008167 df7d df7d df7d df7d df7d df7d df7d -9510 df7e df7e df7e * * 4645 8ea2c6c5,8ea2c6c5v 816f e885af 816f 0000816f df7e df7e df7e df7e df7e df7e df7e -9511 dfa1 dfa1 dfa1 * * 4646 8ea2c6c6,8ea2c6c6v 8144 e88584 8144 00008144 dfa1 dfa1 dfa1 dfa1 dfa1 dfa1 dfa1 -9512 dfa2 dfa2 dfa2 * * 4647 8ea2c6c7,8ea2c6c7v 8161 e885a1 8161 00008161 dfa2 dfa2 dfa2 dfa2 dfa2 dfa2 dfa2 -9513 dfa3 dfa3 dfa3 * * 4648 8ea2c6c8,8ea2c6c8v 821d e8889d 821d 0000821d dfa3 dfa3 dfa3 dfa3 dfa3 dfa3 dfa3 -9514 dfa4 dfa4 dfa4 * * 4649 8ea2c6c9,8ea2c6c9v 8249 e88989 8249 00008249 dfa4 dfa4 dfa4 dfa4 dfa4 dfa4 dfa4 -9515 dfa5 dfa5 dfa5 * * 464a 8ea2c6ca,8ea2c6cav 8244 e88984 8244 00008244 dfa5 dfa5 dfa5 dfa5 dfa5 dfa5 dfa5 -9516 dfa6 dfa6 dfa6 * * 464b 8ea2c6cb,8ea2c6cbv 8240 e88980 8240 00008240 dfa6 dfa6 dfa6 dfa6 dfa6 dfa6 dfa6 -9517 dfa7 dfa7 dfa7 * * 464c 8ea2c6cc,8ea2c6ccv 8242 e88982 8242 00008242 dfa7 dfa7 dfa7 dfa7 dfa7 dfa7 dfa7 -9518 dfa8 dfa8 dfa8 * * 464d 8ea2c6cd,8ea2c6cdv 8245 e88985 8245 00008245 dfa8 dfa8 dfa8 dfa8 dfa8 dfa8 dfa8 -9519 dfa9 dfa9 dfa9 * * 464e 8ea2c6ce,8ea2c6cev 84f1 e893b1 84f1 000084f1 dfa9 dfa9 dfa9 dfa9 dfa9 dfa9 dfa9 -9520 dfaa dfaa dfaa * * 464f 8ea2c6cf,8ea2c6cfv 843f e890bf 843f 0000843f dfaa dfaa dfaa dfaa dfaa dfaa dfaa -9521 dfab dfab dfab * * 4650 8ea2c6d0,8ea2c6d0v 8456 e89196 8456 00008456 dfab dfab dfab dfab dfab dfab dfab -9522 dfac dfac dfac * * 4651 8ea2c6d1,8ea2c6d1v 8476 e891b6 8476 00008476 dfac dfac dfac dfac dfac dfac dfac -9523 dfad dfad dfad * * 4652 8ea2c6d2,8ea2c6d2v 8479 e891b9 8479 00008479 dfad dfad dfad dfad dfad dfad dfad -9524 dfae dfae dfae * * 4653 8ea2c6d3,8ea2c6d3v 848f e8928f 848f 0000848f dfae dfae dfae dfae dfae dfae dfae -9525 dfaf dfaf dfaf * * 4654 8ea2c6d4,8ea2c6d4v 848d e8928d 848d 0000848d dfaf dfaf dfaf dfaf dfaf dfaf dfaf -9526 dfb0 dfb0 dfb0 * * 4655 8ea2c6d5,8ea2c6d5v 8465 e891a5 8465 00008465 dfb0 dfb0 dfb0 dfb0 dfb0 dfb0 dfb0 -9527 dfb1 dfb1 dfb1 * * 4656 8ea2c6d6,8ea2c6d6v 8451 e89191 8451 00008451 dfb1 dfb1 dfb1 dfb1 dfb1 dfb1 dfb1 -9528 dfb2 dfb2 dfb2 * * 4657 8ea2c6d7,8ea2c6d7v 8440 e89180 8440 00008440 dfb2 dfb2 dfb2 dfb2 dfb2 dfb2 dfb2 - -15868 * * * * * * * 8865 e8a1a5,eeafa3 8865,ebe3 00008865,0000ebe3 9c7c * * 9c7c * * 9c7c -15869 * * * * * * * 58b6 e5a2b6,eeafa5 58b6,ebe5 000058b6,0000ebe5 9c7e * * 9c7e * * 9c7e -15870 * * * * * * * 371c e39c9c,eeafa6 371c,ebe6 0000371c,0000ebe6 9ca1 * * 9ca1 * * 9ca1 -15871 * * * * * * * ebe7 f0a2968d,eeafa7 d849dd8d,ebe7 0002258d,0000ebe7 9ca2 * * 9ca2 * * 9ca2 -15872 * * * * * * * 3c54 e3b194,eeafaa 3c54,ebea 00003c54,0000ebea 9ca5 * * 9ca5 * * 9ca5 -15873 * * * * * * * 9281 e98a81,eeafad 9281,ebed 00009281,0000ebed 9ca8 * * 9ca8 * * 9ca8 -15874 * * * * * * * ebee f0a285ba,eeafae d848dd7a,ebee 0002217a,0000ebee 9ca9 * * 9ca9 * * 9ca9 -15875 * * * * * * * 9330 e98cb0,eeafb0 9330,ebf0 00009330,0000ebf0 9cab * * 9cab * * 9cab -15876 * * * * * * * ebf2 f0a4a790,eeafb2 d852ddd0,ebf2 000249d0,0000ebf2 9cad * * 9cad * * 9cad -15877 * * * * * * * 6c39 e6b0b9,eeafb3 6c39,ebf3 00006c39,0000ebf3 9cae fa45 * 9cae c743 fa44 9cae -15878 * * * * * * * ebf6 f0a0bbb8,eeafb6 d843def8,ebf6 00020ef8,0000ebf6 9cb1 * * 9cb1 * * 9cb1 -15879 * * * * * * * 8827 e8a0a7,eeafb7 8827,ebf7 00008827,0000ebf7 9cb2 * * 9cb2 * * 9cb2 -15880 * * * * * * * 88f5 e8a3b5,eeafb8 88f5,ebf8 000088f5,0000ebf8 9cb3 * * 9cb3 * * 9cb3 -15881 * * * * * * * ebf9 f0a2a4a6,eeafb9 d84add26,ebf9 00022926,0000ebf9 9cb4 * * 9cb4 * * 9cb4 -15882 * * * * * * * ebfa f0a891b3,eeafba d861dc73,ebfa 00028473,0000ebfa 9cb5 * * 9cb5 * * 9cb5 -15883 * * * * * * * ebfb f0a19eb1,eeafbb d845dfb1,ebfb 000217b1,0000ebfb 9cb6 * * 9cb6 * * 9cb6 -15884 * * * * * * * 6eb8 e6bab8,eeafbc 6eb8,ebfc 00006eb8,0000ebfc 9cb7 * * 9cb7 * * 9cb7 -15885 * * * * * * * ebfd f0a4a8aa,eeafbd d852de2a,ebfd 00024a2a,0000ebfd 9cb8 * * 9cb8 * * 9cb8 -15886 * * * * * * * ebfe f0a1a0a0,eeafbe d846dc20,ebfe 00021820,0000ebfe 9cb9 * * 9cb9 * * 9cb9 -15887 * * * * * * * 39a4 e3a6a4,eeafbf 39a4,ebff 000039a4,0000ebff 9cba * * 9cba * * 9cba -15888 * * * * * * * * * * * * * * 9cbc * * * -15889 * * * * * * * * * * * * * * 9cbd * * * -15890 * * * * * * * 453f e494bf,eeb083 453f,ec03 0000453f,0000ec03 9cbe * * 9cbe * * 9cbe -15891 * * * * * * * 66b6 e69ab6,eeb084 66b6,ec04 000066b6,0000ec04 9cbf * * 9cbf * * 9cbf -15892 * * * * * * * ec05 f0a9b2ad,eeb085 d867dcad,ec05 00029cad,0000ec05 9cc0 * * 9cc0 * * 9cc0 -15893 * * * * * * * ec06 f0a9a2a4,eeb086 d866dca4,ec06 000298a4,0000ec06 9cc1 * * 9cc1 * * 9cc1 -15894 * * * * * * * 8943 e8a583,eeb087 8943,ec07 00008943,0000ec07 9cc2 fde3 91fd 9cc2 * * 9cc2 -15895 * * * * * * * 40df e4839f,eeb08b 40df,ec0b 000040df,0000ec0b 9cc6 * * 9cc6 * * 9cc6 -15896 * * * * * * * ec0c f0a1988a,eeb08c d845de0a,ec0c 0002160a,0000ec0c 9cc7 * * 9cc7 * * 9cc7 -15897 * * * * * * * 39a1 e3a6a1,eeb08d 39a1,ec0d 000039a1,0000ec0d 9cc8 * * 9cc8 * * 9cc8 -15898 * * * * * * * ec0e f0a39caf,eeb08e d84ddf2f,ec0e 0002372f,0000ec0e 9cc9 * * 9cc9 * * 9cc9 -15899 * * * * * * * ec0f f0a883a8,eeb08f d860dce8,ec0f 000280e8,0000ec0f 9cca * * 9cca * * 9cca -15900 * * * * * * * ec10 f0a18f85,eeb090 d844dfc5,ec10 000213c5,0000ec10 9ccb * * 9ccb * * 9ccb -15901 * * * * * * * 71ad e786ad,eeb091 71ad,ec11 000071ad,0000ec11 9ccc * * 9ccc * * 9ccc -15902 * * * * * * * 8366 e88da6,eeb092 8366,ec12 00008366,0000ec12 9ccd * * 9ccd * * 9ccd -15903 * * * * * * * ec14 eeb094,f0a986a8 d864dda8,ec14 0000ec14,000291a8 9ccf * * 9ccf * * 9ccf -15904 * * * * * * * * * * * * * * 9cd0 * * * -15905 * * * * * * * 4cb7 e4b2b7,eeb096 4cb7,ec16 00004cb7,0000ec16 9cd1 * * 9cd1 * * 9cd1 -15906 * * * * * * * ec17 f0a782af,eeb097 d85cdcaf,ec17 000270af,0000ec17 9cd2 * * 9cd2 * * 9cd2 -15907 * * * * * * * ec18 f0a8a6ab,eeb098 d862ddab,ec18 000289ab,0000ec18 9cd3 * * 9cd3 * * 9cd3 -15908 * * * * * * * ec1d f0a485ba,eeb09d d850dd7a,ec1d 0002417a,0000ec1d 9cd8 * * 9cd8 * * 9cd8 -15909 * * * * * * * 7b43 e7ad83,eeb09e 7b43,ec1e 00007b43,0000ec1e 9cd9 * * 9cd9 * * 9cd9 -15910 * * * * * * * 797e e7a5be,eeb09f 797e,ec1f 0000797e,0000ec1f 9cda * * 9cda * * 9cda -15911 * * * * * * * 6fb5 e6beb5,eeb0a1 6fb5,ec21 00006fb5,0000ec21 9cdc * * 9cdc * * 9cdc -15912 * * * * * * * ec22 f0aa8b9f,eeb0a2 d868dedf,ec22 0002a2df,0000ec22 9cdd * * 9cdd * * 9cdd -15913 * * * * * * * 6a03 e6a883,eeb0a3 6a03,ec23 00006a03,0000ec23 9cde * * 9cde * * 9cde -15914 * * * * * * * ec24 f0a88c98,eeb0a4 d860df18,ec24 00028318,0000ec24 9cdf * * 9cdf * * 9cdf -15915 * * * * * * * 53a2 e58ea2,eeb0a5 53a2,ec25 000053a2,0000ec25 9ce0 * * 9ce0 * * 9ce0 -15916 * * * * * * * ec26 f0a6b887,eeb0a6 d85bde07,ec26 00026e07,0000ec26 9ce1 * * 9ce1 * * 9ce1 -15917 * * * * * * * 93bf e98ebf,eeb0a7 93bf,ec27 000093bf,0000ec27 9ce2 * * 9ce2 * * 9ce2 -15918 * * * * * * * 6836 e6a0b6,eeb0a8 6836,ec28 00006836,0000ec28 9ce3 * * 9ce3 * * 9ce3 -15919 * * * * * * * * e99d9d,ee9fbd,eeb0a9 975d,e7fd,ec29 0000975d,0000e7fd,0000ec29 9644,9ce4 fea8 90e2 9ce4 * * 9644,9ce4 -15920 * * * * * * * ec2a f0a885af,eeb0aa d860dd6f,ec2a 0002816f,0000ec2a 9ce5 * * 9ce5 * * 9ce5 -15921 * * * * * * * ec2c f0a6a6b5,eeb0ac d85addb5,ec2c 000269b5,0000ec2c 9ce7 * * 9ce7 * * 9ce7 -15922 * * * * * * * ec2d f0a18fad,eeb0ad d844dfed,ec2d 000213ed,0000ec2d 9ce8 * * 9ce8 * * 9ce8 -15923 * * * * * * * ec2e f0a388af,eeb0ae d84cde2f,ec2e 0002322f,0000ec2e 9ce9 * * 9ce9 * * 9ce9 -15924 * * * * * * * 5d85 e5b685,eeb0b0 5d85,ec30 00005d85,0000ec30 9ceb * * 9ceb * * 9ceb -15925 * * * * * * * ec31 f0a8b0b0,eeb0b1 d863dc30,ec31 00028c30,0000ec31 9cec * * 9cec * * 9cec -15926 * * * * * * * 5715 e59c95,eeb0b3 5715,ec33 00005715,0000ec33 9cee * * 9cee * * 9cee -15927 * * * * * * * 9823 e9a0a3,eeb0b4 9823,ec34 00009823,0000ec34 9cef * * 9cef * * 9cef -15928 * * * * * * * ec35 f0a8a589,eeb0b5 d862dd49,ec35 00028949,0000ec35 9cf0 * * 9cf0 * * 9cf0 -15929 * * * * * * * 5dab e5b6ab,eeb0b6 5dab,ec36 00005dab,0000ec36 9cf1 * * 9cf1 * * 9cf1 -15930 * * * * * * * ec37 f0a4a688,eeb0b7 d852dd88,ec37 00024988,0000ec37 9cf2 * * 9cf2 * * 9cf2 -15931 * * * * * * * 65be e696be,eeb0b8 65be,ec38 000065be,0000ec38 9cf3 * * 9cf3 * * 9cf3 -15932 * * * * * * * 69d5 e6a795,eeb0b9 69d5,ec39 000069d5,0000ec39 9cf4 * * 9cf4 * * 9cf4 -15933 * * * * * * * 53d2 e58f92,eeb0ba 53d2,ec3a 000053d2,0000ec3a 9cf5 * * 9cf5 * * 9cf5 -15934 * * * * * * * ec3b f0a4aaa5,eeb0bb d852dea5,ec3b 00024aa5,0000ec3b 9cf6 * * 9cf6 * * 9cf6 -15935 * * * * * * * ec3c f0a3be81,eeb0bc d84fdf81,ec3c 00023f81,0000ec3c 9cf7 * * 9cf7 * * 9cf7 -15936 * * * * * * * 3c11 e3b091,eeb0bd 3c11,ec3d 00003c11,0000ec3d 9cf8 * * 9cf8 * * 9cf8 -15937 * * * * * * * 6736 e69cb6,eeb0be 6736,ec3e 00006736,0000ec3e 9cf9 * 8f77 9cf9 * * 9cf9 -15938 * * * * * * * ec42 eeb182,f0a1bea1 d847dfa1,ec42 0000ec42,00021fa1 9cfd * * 9cfd * * 9cfd -15939 * * * * * * * 35ca e3978a,eeb18a 35ca,ec4a 000035ca,0000ec4a 9d46 * * 9d46 * * 9d46 -15940 * * * * * * * 48fa e4a3ba,eeb18d 48fa,ec4d 000048fa,0000ec4d 9d49 * * 9d49 * * 9d49 -15941 * * * * * * * * * * * * * * 9d4a * * * -15942 * * * * * * * 7808 e7a088,eeb190 7808,ec50 00007808,0000ec50 9d4c * * 9d4c * * 9d4c -15943 * * * * * * * 9255 e98995,eeb191 9255,ec51 00009255,0000ec51 9d4d * * 9d4d * * 9d4d -15944 * * * * * * * 43f2 e48fb2,eeb193 43f2,ec53 000043f2,0000ec53 9d4f * * 9d4f * * 9d4f -15945 * * * * * * * 43df e48f9f,eeb195 43df,ec55 000043df,0000ec55 9d51 * * 9d51 * * 9d51 -15946 * * * * * * * 59f8 e5a7b8,eeb199 59f8,ec59 000059f8,0000ec59 9d55 * * 9d55 * * 9d55 -15947 * * * * * * * * * * * * * * 9d5a * * * -15948 * * * * * * * 568b e59a8b,eeb1a6 568b,ec66 0000568b,0000ec66 9d62 * * 9d62 * * 9d62 -15949 * * * * * * * ec68 eeb1a8,f0a997a9 d865dde9,ec68 0000ec68,000295e9 9d64 * * 9d64 * * 9d64 -15950 * * * * * * * 9012 e98092,eeb1bd 9012,ec7d 00009012,0000ec7d 9d79 * * 9d79 * * 9d79 -15951 * * * * * * * 55c1 e59781,eeb282 55c1,ec82 000055c1,0000ec82 9d7e * * 9d7e * * 9d7e -15952 * * * * * * * 4509 e49489,eeb287 4509,ec87 00004509,0000ec87 9da5 * * 9da5 * * 9da5 -15953 * * * * * * * 7e7f e7b9bf,eeb288 7e7f,ec88 00007e7f,0000ec88 9da6 * * 9da6 * * 9da6 -15954 * * * * * * * 6f56 e6bd96,eeb289 6f56,ec89 00006f56,0000ec89 9da7 * * 9da7 * * 9da7 -15955 * * * * * * * 6ab1 e6aab1,eeb28a 6ab1,ec8a 00006ab1,0000ec8a 9da8 * * 9da8 * * 9da8 -15956 * * * * * * * 34e4 e393a4,eeb28c 34e4,ec8c 000034e4,0000ec8c 9daa * * 9daa * * 9daa -15957 * * * * * * * ec8e f0a7a29d,eeb28e d85edc9d,ec8e 0002789d,0000ec8e 9dac * * 9dac * * 9dac -15958 * * * * * * * 373a e39cba,eeb28f 373a,ec8f 0000373a,0000ec8f 9dad * * 9dad * * 9dad -15959 * * * * * * * 8e80 * * * * * * 9dae * * * -15960 * * * * * * * ec92 eeb292,f0a880a4 d860dc24,ec92 0000ec92,00028024 9db0 * * 9db0 * * 9db0 -15961 * * * * * * * ec95 eeb295,f0a7a8be d85ede3e,ec95 0000ec95,00027a3e 9db3 fac7 * 9db3 c8c5 fcac 9db3 -15962 * * * * * * * 3deb e3b7ab,eeb297 3deb,ec97 00003deb,0000ec97 9db5 * * 9db5 * * 9db5 -15963 * * * * * * * ec99 eeb299,f0a3b2b7 d84fdcb7,ec99 0000ec99,00023cb7 9db7 * * 9db7 * * 9db7 -15964 * * * * * * * ec9e f0a68998,eeb29e d858de58,ec9e 00026258,0000ec9e 9dbc fadd * 9dbc * * 9dbc -15965 * * * * * * * 56bf e59abf,eeb29f 56bf,ec9f 000056bf,0000ec9f 9dbd * * 9dbd * * 9dbd -15966 * * * * * * * 8e0e e8b88e,eeb2a1 8e0e,eca1 00008e0e,0000eca1 9dbf * * 9dbf c8c7 fcb1 9dbf -15967 * * * * * * * 5b6d e5adad,eeb2a2 5b6d,eca2 00005b6d,0000eca2 9dc0 * * 9dc0 c7d0 faf5 9dc0 -15968 * * * * * * * 63de e68f9e,eeb2a5 63de,eca5 000063de,0000eca5 9dc3 * * 9dc3 * * 9dc3 -15969 * * * * * * * * * * * * * * 9dc4 * * * -15970 * * * * * * * 6530 e694b0,eeb2a9 6530,eca9 00006530,0000eca9 9dc7 * * 9dc7 * * 9dc7 -15971 * * * * * * * 562d e598ad,eeb2aa 562d,ecaa 0000562d,0000ecaa 9dc8 * * 9dc8 c7b4 face 9dc8 -15972 * * * * * * * 541a e5909a,eeb2ac 541a,ecac 0000541a,0000ecac 9dca * * 9dca * * 9dca -15973 * * * * * * * ecaf f0a9b698,eeb2af d867dd98,ecaf 00029d98,0000ecaf 9dcd fa55 * 9dcd * * 9dcd -15974 * * * * * * * 4c7d e4b1bd,eeb2b0 4c7d,ecb0 00004c7d,0000ecb0 9dce fa54 * 9dce c8f1 fcee 9dce -15975 * * * * * * * 5622 e598a2,eeb2b1 5622,ecb1 00005622,0000ecb1 9dcf fac1 917c 9dcf c7ab fac5 9dcf -15976 * * * * * * * 561e e5989e,eeb2b2 561e,ecb2 0000561e,0000ecb2 9dd0 * * 9dd0 c7ad fac7 9dd0 -15977 * * * * * * * 7f49 e7bd89,eeb2b3 7f49,ecb3 00007f49,0000ecb3 9dd1 * * 9dd1 c8ab fc5f 9dd1 -15978 * * * * * * * 5975 e5a5b5,eeb2b5 5975,ecb5 00005975,0000ecb5 9dd3 * * 9dd3 * * 9dd3 -15979 * * * * * * * ecb6 f0a3b580,eeb2b6 d84fdd40,ecb6 00023d40,0000ecb6 9dd4 * * 9dd4 * * 9dd4 -15980 * * * * * * * 8770 e89db0,eeb2b7 8770,ecb7 00008770,0000ecb7 9dd5 * * 9dd5 * * 9dd5 -15981 * * * * * * * 8117 e88497,eeb2bc 8117,ecbc 00008117,0000ecbc 9dda fdc1 8f57 9dda * fba3 9dda -15982 * * * * * * * 9d5e e9b59e,eeb2bd 9d5e,ecbd 00009d5e,0000ecbd 9ddb fee7 9163 9ddb * * 9ddb -15983 * * * * * * * 8d18 e8b498,eeb2be 8d18,ecbe 00008d18,0000ecbe 9ddc fe4f 8e58 9ddc * * 9ddc -15984 * * * * * * * 763b e798bb,eeb2bf 763b,ecbf 0000763b,0000ecbf 9ddd fb56,fd6e 8e44 9ddd * fbe9 9ddd -15985 * * * * * * * 9c45 e9b185,eeb380 9c45,ecc0 00009c45,0000ecc0 9dde fee2 9141 9dde * fcf1 9dde -15986 * * * * * * * 764e e7998e,eeb381 764e,ecc1 0000764e,0000ecc1 9ddf fb57,fd70 8fdf 9ddf c872 fbe8 9ddf -15987 * * * * * * * 77b9 e79eb9,eeb382 77b9,ecc2 000077b9,0000ecc2 9de0 fd55 8f50 9de0 * fbf7 9de0 -15988 * * * * * * * 9345 e98d85,eeb383 9345,ecc3 00009345,0000ecc3 9de1 fe75 90d4 9de1 * * 9de1 -15989 * * * * * * * 5432 e590b2,eeb384 5432,ecc4 00005432,0000ecc4 9de2 fbcf 9177 9de2 * * 9de2 -15990 * * * * * * * 8148 e88588,eeb385 8148,ecc5 00008148,0000ecc5 9de3 fdc4 9076 9de3 * * 9de3 -15991 * * * * * * * 82f7 e88bb7,eeb386 82f7,ecc6 000082f7,0000ecc6 9de4 fde9 907b 9de4 * * 9de4 -15992 * * * * * * * 5625 e598a5,eeb387 5625,ecc7 00005625,0000ecc7 9de5 fac2 * 9de5 c7ac fac6 9de5 -15993 * * * * * * * 8132 e884b2,eeb388 8132,ecc8 00008132,0000ecc8 9de6 fdc3 9075 9de6 * fba2 9de6 -15994 * * * * * * * 8418 e89098,eeb389 8418,ecc9 00008418,0000ecc9 9de7 fdee 90a1 9de7 * fc6d 9de7 -15995 * * * * * * * 80bd e882bd,eeb38a 80bd,ecca 000080bd,0000ecca 9de8 fb4c * 9de8 * * 9de8 -15996 * * * * * * * 55ea e597aa,eeb38b 55ea,eccb 000055ea,0000eccb 9de9 fbdb 9176 9de9 c7a8 fac1 9de9 -15997 * * * * * * * 7962 e7a5a2,eeb38c 7962,eccc 00007962,0000eccc 9dea faeb 91e6 9dea c87b fc42 9dea -15998 * * * * * * * 5643 e59983,eeb38d 5643,eccd 00005643,0000eccd 9deb facb * 9deb c7b2 facc 9deb -15999 * * * * * * * 5416 e59096,eeb38e 5416,ecce 00005416,0000ecce 9dec fa49 * 9dec c764 fa78 9dec -16000 * * * * * * * eccf f0a0ba9d,eeb38f d843de9d,eccf 00020e9d,0000eccf 9ded fabd * 9ded c7a9 fac2 9ded -16001 * * * * * * * 35ce e3978e,eeb390 35ce,ecd0 000035ce,0000ecd0 9dee fab3 9173 9dee c7a1 fab9 9dee -16002 * * * * * * * 5605 e59885,ee82a5,eeb391 5605,e0a5,ecd1 00005605,0000e0a5,0000ecd1 fb48,9def fab4 * 9def c77e fab8 fb48,9def -16003 * * * * * * * 55f1 e597b1,eeb392 55f1,ecd2 000055f1,0000ecd2 9df0 fabb * 9df0 c7a3 fabc 9df0 -16004 * * * * * * * 66f1 e69bb1,eeb393 66f1,ecd3 000066f1,0000ecd3 9df1 fa43 * 9df1 c7fc fb7a 9df1 -16005 * * * * * * * ecd4 f0a88ba2,eeb394 d860dee2,ecd4 000282e2,0000ecd4 9df2 fab6 * 9df2 c8cf fcb9 9df2 -16006 * * * * * * * 362d e398ad,eeb395 362d,ecd5 0000362d,0000ecd5 9df3 fa4b * 9df3 c7c1 fae0 9df3 -16007 * * * * * * * 7534 e794b4,eeb396 7534,ecd6 00007534,0000ecd6 9df4 fa44 * 9df4 c7fb fb79 9df4 -16008 * * * * * * * 55f0 e597b0,eeb397 55f0,ecd7 000055f0,0000ecd7 9df5 fabc * 9df5 c7a4 fabd 9df5 -16009 * * * * * * * 55ba e596ba,eeb398 55ba,ecd8 000055ba,0000ecd8 9df6 fab1 * 9df6 c77c fab6 9df6 -16010 * * * * * * * 5497 e59297,eeb399 5497,ecd9 00005497,0000ecd9 9df7 fa5a * 9df7 c767 fa7d 9df7 -16011 * * * * * * * 5572 e595b2,eeb39a 5572,ecda 00005572,0000ecda 9df8 faa2 * 9df8 c776 fab0 9df8 -16012 * * * * * * * ecdb f0a0b181,eeb39b d843dc41,ecdb 00020c41,0000ecdb 9df9 fae3 * 9df9 c769 faa1 9df9 -16013 * * * * * * * ecdc f0a0b296,eeb39c d843dc96,ecdc 00020c96,0000ecdc 9dfa fa5c * 9dfa c76d faa6 9dfa -16014 * * * * * * * * e5bb90,ee84b4,eeb39d 5ed0,e134,ecdd 00005ed0,0000e134,0000ecdd fbf9,9dfb fad5 * 9dfb c7d9 fb4c fbf9,9dfb -16015 * * * * * * * ecdf f0a0b9b6,eeb39f d843de76,ecdf 00020e76,0000ecdf 9dfd fae7 * 9dfd c7aa fac3 9dfd -16016 * * * * * * * ece0 f0a2b1a2,eeb3a0 d84bdc62,ece0 00022c62,0000ece0 9dfe faab * 9dfe c7f3 fb6e 9dfe -16017 * * * * * * * ece1 f0a0baa2,eeb3a1 d843dea2,ece1 00020ea2,0000ece1 9e40 fa61 * 9e40 c7a6 fabf 9e40 -16018 * * * * * * * 9eab e9baab,eeb3a2 9eab,ece2 00009eab,0000ece2 9e41 * * 9e41 * * 9e41 -16019 * * * * * * * 7d5a e7b59a,eeb3a3 7d5a,ece3 00007d5a,0000ece3 9e42 fdaf 906f 9e42 * * 9e42 -16020 * * * * * * * 55de * * * * fa78 * 9e43 c7a2 faba * -16021 * * * * * * * ece5 f0a181b5,eeb3a5 d844dc75,ece5 00021075,0000ece5 9e44 fa5e * 9e44 c7bb fad9 9e44 -16022 * * * * * * * 629d e68a9d,eeb3a6 629d,ece6 0000629d,0000ece6 9e45 fb4a * 9e45 c7e8 fb60 9e45 -16023 * * * * * * * 976d e99dad,eeb3a7 976d,ece7 0000976d,0000ece7 9e46 faa7 * 9e46 c8e3 fcd4 9e46 -16024 * * * * * * * 5494 e59294,eeb3a8 5494,ece8 00005494,0000ece8 9e47 fa75 * 9e47 c768 fa7e 9e47 -16025 * * * * * * * 8ccd e8b38d,eeb3a9 8ccd,ece9 00008ccd,0000ece9 9e48 faba 8e5c 9e48 c8c6 fcb0 9e48 -16026 * * * * * * * 71f6 e787b6,eeb3aa 71f6,ecea 000071f6,0000ecea 9e49 fad3 * 9e49 c85f fbcf 9e49 -16027 * * * * * * * 9176 e985b6,eeb3ab 9176,eceb 00009176,0000eceb 9e4a faea 90ca 9e4a c8d6 fcc4 9e4a -16028 * * * * * * * 63fc e68fbc,eeb3ac 63fc,ecec 000063fc,0000ecec 9e4b faad * 9e4b c7f2 fb6c 9e4b -16029 * * * * * * * 63b9 e68eb9,eeb3ad 63b9,eced 000063b9,0000eced 9e4c fa79 * 9e4c c7ef fb68 9e4c -16030 * * * * * * * 63fe e68fbe,eeb3ae 63fe,ecee 000063fe,0000ecee 9e4d fab0 * 9e4d * * 9e4d -16031 * * * * * * * 5569 e595a9,eeb3af 5569,ecef 00005569,0000ecef 9e4e fa7e * 9e4e c777 fab1 9e4e -16032 * * * * * * * ecf0 f0a2ad83,eeb3b0 d84adf43,ecf0 00022b43,0000ecf0 9e4f fa6d * 9e4f c7ed fb66 9e4f -16033 * * * * * * * 9c72 e9b1b2,eeb3b1 9c72,ecf1 00009c72,0000ecf1 9e50 fae5 * 9e50 c8f5 fcf3 9e50 -16034 * * * * * * * ecf2 f0a2bab3,eeb3b2 d84bdeb3,ecf2 00022eb3,0000ecf2 9e51 fae9 * 9e51 c7fa fb77 9e51 -16035 * * * * * * * 519a e5869a,eeb3b3 519a,ecf3 0000519a,0000ecf3 9e52 fa42 * 9e52 c74c fa54 9e52 -16036 * * * * * * * 34df e3939f,eeb3b4 34df,ecf4 000034df,0000ecf4 9e53 fa4f * 9e53 c755 fa62 9e53 -16037 * * * * * * * ecf5 f0a0b6a7,eeb3b5 d843dda7,ecf5 00020da7,0000ecf5 9e54 fa7b * 9e54 c77b fab5 9e54 -16038 * * * * * * * 51a7 e586a7,eeb3b6 51a7,ecf6 000051a7,0000ecf6 9e55 fa6c * 9e55 c74d fa55 9e55 -16039 * * * * * * * 544d e5918d,eeb3b7 544d,ecf7 0000544d,0000ecf7 9e56 fa4d * 9e56 c766 fa7a 9e56 -16040 * * * * * * * 551e e5949e,eeb3b8 551e,ecf8 0000551e,0000ecf8 9e57 fa77 * 9e57 c772 faac 9e57 -16041 * * * * * * * 5513 e59493,eeb3b9 5513,ecf9 00005513,0000ecf9 9e58 fa72 * 9e58 c773 faad 9e58 -16042 * * * * * * * 7666 e799a6,eeb3ba 7666,ecfa 00007666,0000ecfa 9e59 fae0 * 9e59 c873 fbeb 9e59 -16043 * * * * * * * 8e2d e8b8ad,eeb3bb 8e2d,ecfb 00008e2d,0000ecfb 9e5a face * 9e5a c8c9 fcb3 9e5a -16044 * * * * * * * ecfc f0a6a28a,eeb3bc d85adc8a,ecfc 0002688a,0000ecfc 9e5b fade * 9e5b c843 fba8 9e5b -16045 * * * * * * * 75b1 e796b1,eeb3bd 75b1,ecfd 000075b1,0000ecfd 9e5c fa6a 9155 9e5c c86e fbe4 9e5c -16046 * * * * * * * 80b6 e882b6,eeb3be 80b6,ecfe 000080b6,0000ecfe 9e5d fa64 * 9e5d c7fd fb7b 9e5d -16047 * * * * * * * 8804 e8a084,eeb3bf 8804,ecff 00008804,0000ecff 9e5e fad8 * 9e5e c8bc fc7a 9e5e -16048 * * * * * * * 8786 * * * * facd * 9e5f c8ba fc76 * -16049 * * * * * * * 88c7 e8a387,eeb481 88c7,ed01 000088c7,0000ed01 9e60 fabe * 9e60 c8c1 fca4 9e60 -16050 * * * * * * * 81b6 e886b6,eeb482 81b6,ed02 000081b6,0000ed02 9e61 facf * 9e61 c842 fba6 9e61 -16051 * * * * * * * 841c e8909c,eeb483 841c,ed03 0000841c,0000ed03 9e62 * * 9e62 * * 9e62 -16052 * * * * * * * 44ec e493ac,eeb485 44ec,ed05 000044ec,0000ed05 9e64 * * 9e64 * * 9e64 -16053 * * * * * * * 7304 e78c84,eeb486 7304,ed06 00007304,0000ed06 9e65 * * 9e65 c865 fbd7 9e65 -16054 * * * * * * * 830b e88c8b,eeb489 830b,ed09 0000830b,0000ed09 9e68 * * 9e68 * * 9e68 -16055 * * * * * * * 567b e599bb,eeb48b 567b,ed0b 0000567b,0000ed0b 9e6a * * 9e6a c7b8 fad4 9e6a -16056 * * * * * * * 9170 e985b0,eeb492 9170,ed12 00009170,0000ed12 9e71 * * 9e71 * fcc2 9e71 -16057 * * * * * * * 9208 e98888,eeb494 9208,ed14 00009208,0000ed14 9e73 * * 9e73 * * 9e73 -16058 * * * * * * * ed18 f0a0bbb9,eeb498 d843def9,ed18 00020ef9,0000ed18 9e77 * * 9e77 * * 9e77 -16059 * * * * * * * 7266 e789a6,eeb499 7266,ed19 00007266,0000ed19 9e78 * * 9e78 * * 9e78 -16060 * * * * * * * 474e e49d8e,eeb49b 474e,ed1b 0000474e,0000ed1b 9e7a * * 9e7a * * 9e7a -16061 * * * * * * * ed1d eeb49d,f0a7bfb9 d85fdff9,ed1d 0000ed1d,00027ff9 9e7c * * 9e7c * * 9e7c -16062 * * * * * * * 40fa e483ba,eeb49f 40fa,ed1f 000040fa,0000ed1f 9e7e * * 9e7e * * 9e7e -16063 * * * * * * * 9c5d e9b19d,eeb4a0 9c5d,ed20 00009c5d,0000ed20 9ea1 * * 9ea1 * * 9ea1 -16064 * * * * * * * 651f e6949f,eeb4a1 651f,ed21 0000651f,0000ed21 9ea2 * * 9ea2 * * 9ea2 -16065 * * * * * * * 48f3 e4a3b3,eeb4a3 48f3,ed23 000048f3,0000ed23 9ea4 * * 9ea4 * * 9ea4 -16066 * * * * * * * ed24 f0a49fa0,eeb4a4 d851dfe0,ed24 000247e0,0000ed24 9ea5 * * 9ea5 * * 9ea5 -16067 * * * * * * * ed25 f0a9b5bc,eeb4a5 d867dd7c,ed25 00029d7c,0000ed25 9ea6 * * 9ea6 * * 9ea6 -16068 * * * * * * * * * * * * * * 9ea9 * * * -16069 * * * * * * * ed29 eeb4a9,f0a796a3 d85ddda3,ed29 0000ed29,000275a3 9eaa * * 9eaa * * 9eaa -16070 * * * * * * * * eeb4ab ed2b 0000ed2b 9eac * * 9eac * * 9eac -16071 * * * * * * * ed2c f0a68188,eeb4ac d858dc48,ed2c 00026048,0000ed2c 9ead * * 9ead * * 9ead -16072 * * * * * * * 71a3 e786a3,eeb4ae 71a3,ed2e 000071a3,0000ed2e 9eaf * * 9eaf * * 9eaf -16073 * * * * * * * 7e8e e7ba8e,eeb4af 7e8e,ed2f 00007e8e,0000ed2f 9eb0 * * 9eb0 * * 9eb0 -16074 * * * * * * * 9d50 e9b590,eeb4b0 9d50,ed30 00009d50,0000ed30 9eb1 * * 9eb1 * * 9eb1 -16075 * * * * * * * 3577 e395b7,eeb4b3 3577,ed33 00003577,0000ed33 9eb4 * * 9eb4 * * 9eb4 -16076 * * * * * * * 6cb2 e6b2b2,eeb4b5 6cb2,ed35 00006cb2,0000ed35 9eb6 * * 9eb6 * * 9eb6 -16077 * * * * * * * 5367 e58da7,eeb4b6 5367,ed36 00005367,0000ed36 9eb7 * * 9eb7 c8b1 fc65 9eb7 -16078 * * * * * * * 39dc e3a79c,eeb4b8 39dc,ed38 000039dc,0000ed38 9eb9 * * 9eb9 * * 9eb9 -16079 * * * * * * * ed3b eeb4bb,f0a49898 d851de18,ed3b 0000ed3b,00024618 9ebc * * 9ebc * * 9ebc -16080 * * * * * * * 822d e888ad,eeb4be 822d,ed3e 0000822d,0000ed3e 9ebf * * 9ebf * * 9ebf -16081 * * * * * * * 544b e5918b,eeb4bf 544b,ed3f 0000544b,0000ed3f 9ec0 * * 9ec0 * fa7c 9ec0 -16082 * * * * * * * * eeb583 ed43 0000ed43 9ec4 * * 9ec4 * * 9ec4 -16083 * * * * * * * 3a52 e3a992,eeb584 3a52,ed44 00003a52,0000ed44 9ec5 * * 9ec5 * * 9ec5 -16084 * * * * * * * 7374 e78db4,eeb586 7374,ed46 00007374,0000ed46 9ec7 * * 9ec7 * * 9ec7 -16085 * * * * * * * ed47 f0a9baac,eeb587 d867deac,ed47 00029eac,0000ed47 9ec8 * * 9ec8 * * 9ec8 -16086 * * * * * * * 4d09 e4b489,eeb588 4d09,ed48 00004d09,0000ed48 9ec9 * * 9ec9 * * 9ec9 -16087 * * * * * * * 9bed e9afad,eeb589 9bed,ed49 00009bed,0000ed49 9eca * * 9eca * * 9eca -16088 * * * * * * * * * * * * * * 9ecc * * * -16089 * * * * * * * 4c5b e4b19b,eeb58c 4c5b,ed4c 00004c5b,0000ed4c 9ecd * * 9ecd * * 9ecd -16090 * * * * * * * ed4f f0a9bf9e,eeb58f d867dfde,ed4f 00029fde,0000ed4f 9ed0 * * 9ed0 * * 9ed0 -16091 * * * * * * * 845c e8919c,eeb590 845c,ed50 0000845c,0000ed50 9ed1 * * 9ed1 * * 9ed1 -16092 * * * * * * * ed52 eeb592,f0a78ab2 d85cdeb2,ed52 0000ed52,000272b2 9ed3 * * 9ed3 * * 9ed3 -16093 * * * * * * * 632e e68cae,eeb595 632e,ed55 0000632e,0000ed55 9ed6 * * 9ed6 * * 9ed6 -16094 * * * * * * * 7d25 e7b4a5,eeb596 7d25,ed56 00007d25,0000ed56 9ed7 * * 9ed7 c8a7 fc57 9ed7 -16095 * * * * * * * 3a2a e3a8aa,eeb599 3a2a,ed59 00003a2a,0000ed59 9eda * * 9eda * * 9eda -16096 * * * * * * * 9008 e98088,eeb59a 9008,ed5a 00009008,0000ed5a 9edb * * 9edb * fcbe 9edb -16097 * * * * * * * 52cc e58b8c,eeb59b 52cc,ed5b 000052cc,0000ed5b 9edc * * 9edc * * 9edc -16098 * * * * * * * 3e74 e3b9b4,eeb59c 3e74,ed5c 00003e74,0000ed5c 9edd * * 9edd * * 9edd -16099 * * * * * * * 367a e399ba,eeb59d 367a,ed5d 0000367a,0000ed5d 9ede * * 9ede * * 9ede -16100 * * * * * * * 45e9 e497a9,eeb59e 45e9,ed5e 000045e9,0000ed5e 9edf * * 9edf * * 9edf -16101 * * * * * * * ed5f f0a0928e,eeb59f d841dc8e,ed5f 0002048e,0000ed5f 9ee0 * * 9ee0 * * 9ee0 -16102 * * * * * * * 7640 e79980,eeb5a0 7640,ed60 00007640,0000ed60 9ee1 * * 9ee1 * * 9ee1 -16103 * * * * * * * 5af0 e5abb0,eeb5a1 5af0,ed61 00005af0,0000ed61 9ee2 * * 9ee2 * * 9ee2 -16104 * * * * * * * ed62 f0a0bab6,eeb5a2 d843deb6,ed62 00020eb6,0000ed62 9ee3 * * 9ee3 * * 9ee3 -16105 * * * * * * * 787a e7a1ba,eeb5a3 787a,ed63 0000787a,0000ed63 9ee4 * * 9ee4 * * 9ee4 -16106 * * * * * * * 47b6 e49eb6,f0a7bcae,eeb5a4 47b6,d85fdf2e,ed64 000047b6,00027f2e,0000ed64 9ee5 * * 9ee5 * * 9ee5 -16107 * * * * * * * 58a7 e5a2a7,eeb5a5 58a7,ed65 000058a7,0000ed65 9ee6 * * 9ee6 * * 9ee6 -16108 * * * * * * * 40bf e482bf,eeb5a6 40bf,ed66 000040bf,0000ed66 9ee7 * * 9ee7 * * 9ee7 -16109 * * * * * * * 567c e599bc,eeb5a7 567c,ed67 0000567c,0000ed67 9ee8 * * 9ee8 c7b9 fad5 9ee8 -16110 * * * * * * * 9b8b e9ae8b,eeb5a8 9b8b,ed68 00009b8b,0000ed68 9ee9 * * 9ee9 * * 9ee9 -16111 * * * * * * * 5d74 e5b5b4,eeb5a9 5d74,ed69 00005d74,0000ed69 9eea * * 9eea * fb45 9eea -16112 * * * * * * * 7654 e79994,eeb5aa 7654,ed6a 00007654,0000ed6a 9eeb * * 9eeb * * 9eeb -16113 * * * * * * * ed6b f0aa90b4,eeb5ab d869dc34,ed6b 0002a434,0000ed6b 9eec * * 9eec * * 9eec -16114 * * * * * * * 9e85 e9ba85,eeb5ac 9e85,ed6c 00009e85,0000ed6c 9eed * * 9eed * * 9eed -16115 * * * * * * * 4ce1 e4b3a1,eeb5ad 4ce1,ed6d 00004ce1,0000ed6d 9eee * * 9eee * * 9eee -16116 * * * * * * * * * * * * * * 9eef * * * -16117 * * * * * * * 37fb e39fbb,eeb5af 37fb,ed6f 000037fb,0000ed6f 9ef0 * * 9ef0 * * 9ef0 -16118 * * * * * * * 6119 e68499,eeb5b0 6119,ed70 00006119,0000ed70 9ef1 * * 9ef1 * * 9ef1 -16119 * * * * * * * ed72 f0a48fb2,eeb5b2 d850dff2,ed72 000243f2,0000ed72 9ef3 * * 9ef3 * * 9ef3 -16120 * * * * * * * * eeb5b3 ed73 0000ed73 9ef4 * * 9ef4 * * 9ef4 -16121 * * * * * * * 565d e5999d,eeb5b4 565d,ed74 0000565d,0000ed74 9ef5 * * 9ef5 * fad2 9ef5 -16122 * * * * * * * ed78 f0a9b886,eeb5b8 d867de06,ed78 00029e06,0000ed78 9ef9 * * 9ef9 * * 9ef9 -16123 * * * * * * * 5234 e588b4,eeb5b9 5234,ed79 00005234,0000ed79 9efa * * 9efa * * 9efa -16124 * * * * * * * 35ad e396ad,eeb5bb 35ad,ed7b 000035ad,0000ed7b 9efc * * 9efc * * 9efc -16125 * * * * * * * * * * * * * * 9efd * * * -16126 * * * * * * * 9d7c e9b5bc,eeb5bd 9d7c,ed7d 00009d7c,0000ed7d 9efe * * 9efe * * 9efe -16127 * * * * * * * 7c56 e7b196,eeb5be 7c56,ed7e 00007c56,0000ed7e 9f40 * * 9f40 * * 9f40 -16128 * * * * * * * 9b39 e9acb9,eeb5bf 9b39,ed7f 00009b39,0000ed7f 9f41 * * 9f41 * * 9f41 -16129 * * * * * * * 57de e59f9e,eeb680 57de,ed80 000057de,0000ed80 9f42 * * 9f42 * * 9f42 -16130 * * * * * * * 5c53 e5b193,eeb682 5c53,ed82 00005c53,0000ed82 9f44 * * 9f44 * * 9f44 -16131 * * * * * * * 64d3 e69393,eeb683 64d3,ed83 000064d3,0000ed83 9f45 * * 9f45 * * 9f45 -16132 * * * * * * * ed84 f0a99390,eeb684 d865dcd0,ed84 000294d0,0000ed84 9f46 * * 9f46 * * 9f46 -16133 * * * * * * * ed85 f0a68cb5,eeb685 d858df35,ed85 00026335,0000ed85 9f47 * * 9f47 * * 9f47 -16134 * * * * * * * 86ad e89aad,eeb687 86ad,ed87 000086ad,0000ed87 9f49 * * 9f49 * * 9f49 -16135 * * * * * * * ed88 f0a0b4a8,eeb688 d843dd28,ed88 00020d28,0000ed88 9f4a * * 9f4a * * 9f4a -16136 * * * * * * * ed8b f0a0b5b1,eeb68b d843dd71,ed8b 00020d71,0000ed8b 9f4d * * 9f4d c77a fab4 9f4d -16137 * * * * * * * * eeb68c ed8c 0000ed8c 9f4e * * 9f4e * * 9f4e -16138 * * * * * * * 51fe e587be,eeb68d 51fe,ed8d 000051fe,0000ed8d 9f4f fbbf 8fb3 9f4f * fa5e 9f4f -16139 * * * * * * * ed8e f0a1bc8f,eeb68e d847df0f,ed8e 00021f0f,0000ed8e 9f50 fc46 91ac 9f50 * * 9f50 -16140 * * * * * * * 5d8e e5b68e,eeb68f 5d8e,ed8f 00005d8e,0000ed8f 9f51 fc45 8fe6 9f51 * * 9f51 -16141 * * * * * * * 9703 e99c83,eeb690 9703,ed90 00009703,0000ed90 9f52 fea5 90e0 9f52 * * 9f52 -16142 * * * * * * * ed91 f0a1b791,eeb691 d847ddd1,ed91 00021dd1,0000ed91 9f53 fc40 91a9 9f53 * * 9f53 -16143 * * * * * * * 9e81 e9ba81,eeb692 9e81,ed92 00009e81,0000ed92 9f54 feed 9147 9f54 * * 9f54 -16144 * * * * * * * 904c e9818c,eeb693 904c,ed93 0000904c,0000ed93 9f55 fe6e 90c6 9f55 * * 9f55 -16145 * * * * * * * 7b1f e7ac9f,eeb694 7b1f,ed94 00007b1f,0000ed94 9f56 fd78 8f59 9f56 * * 9f56 -16146 * * * * * * * 9b02 e9ac82,eeb695 9b02,ed95 00009b02,0000ed95 9f57 fed0 90f5 9f57 * * 9f57 -16147 * * * * * * * 5cd1 e5b391,eeb696 5cd1,ed96 00005cd1,0000ed96 9f58 fc41 91ab 9f58 * * 9f58 -16148 * * * * * * * 7ba3 e7aea3,eeb697 7ba3,ed97 00007ba3,0000ed97 9f59 fd7a 8f40 9f59 * * 9f59 -16149 * * * * * * * 6268 e689a8,eeb698 6268,ed98 00006268,0000ed98 9f5a fc77 8ea7 9f5a * * 9f5a -16150 * * * * * * * 6335 e68cb5,eeb699 6335,ed99 00006335,0000ed99 9f5b fc7d 8f6e 9f5b c7ee fb67 9f5b -16151 * * * * * * * 9aff e9abbf,eeb69a 9aff,ed9a 00009aff,0000ed9a 9f5c fed1 90f6 9f5c * * 9f5c -16152 * * * * * * * 7bcf e7af8f,eeb69b 7bcf,ed9b 00007bcf,0000ed9b 9f5d fd7b 8e59 9f5d * * 9f5d -16153 * * * * * * * 9b2a e9acaa,eeb69c 9b2a,ed9c 00009b2a,0000ed9c 9f5e fecb 9048 9f5e c8ec fce6 9f5e -16154 * * * * * * * 7c7e e7b1be,eeb69d 7c7e,ed9d 00007c7e,0000ed9d 9f5f fda5 8ed4 9f5f * * 9f5f -16155 * * * * * * * * * * * * fecc 8e48 9f60 * * * -16156 * * * * * * * 7c42 e7b182,eeb69f 7c42,ed9f 00007c42,0000ed9f 9f61 fd7e 8ee0 9f61 * * 9f61 -16157 * * * * * * * 7c86 e7b286,eeb6a0 7c86,eda0 00007c86,0000eda0 9f62 fda6 8ecd 9f62 * * 9f62 -16158 * * * * * * * 9c15 e9b095,eeb6a1 9c15,eda1 00009c15,0000eda1 9f63 fedc 8eeb 9f63 * * 9f63 -16159 * * * * * * * 7bfc e7afbc,eeb6a2 7bfc,eda2 00007bfc,0000eda2 9f64 fd7d 9065 9f64 * fc50 9f64 -16160 * * * * * * * 9b09 e9ac89,eeb6a3 9b09,eda3 00009b09,0000eda3 9f65 fed3 90f7 9f65 * * 9f65 -16161 * * * * * * * * * * * * fef6 914c 9f66 * * * -16162 * * * * * * * 9c2e e9b0ae 9c2e 00009c2e * fee1 8ef0 9f67 c8f2 fcef * -16163 * * * * * * * 9f5a e9bd9a,eeb6a7 9f5a,eda7 00009f5a,0000eda7 9f69 fefc 9150 9f69 * * 9f69 -16164 * * * * * * * 5573 e595b3,eeb6a8 5573,eda8 00005573,0000eda8 9f6a fbd4 8fd5 9f6a * * 9f6a -16165 * * * * * * * 5bc3 e5af83,eeb6a9 5bc3,eda9 00005bc3,0000eda9 9f6b fc52 9248 9f6b * * 9f6b -16166 * * * * * * * 4ffd e4bfbd,eeb6aa 4ffd,edaa 00004ffd,0000edaa 9f6c fba1 9169 9f6c * * 9f6c -16167 * * * * * * * 9e98 e9ba98,eeb6ab 9e98,edab 00009e98,0000edab 9f6d fb6f,fef1 9042 9f6d * * 9f6d -16168 * * * * * * * 4ff2 e4bfb2,eeb6ac 4ff2,edac 00004ff2,0000edac 9f6e fb7d 8fa7 9f6e * * 9f6e -16169 * * * * * * * 5260 e589a0,eeb6ad 5260,edad 00005260,0000edad 9f6f fbac 8e65 9f6f * * 9f6f -16170 * * * * * * * 52d1 e58b91,eeb6af 52d1,edaf 000052d1,0000edaf 9f71 fbb1 8eb5 9f71 * * 9f71 -16171 * * * * * * * 5767 e59da7,eeb6b0 5767,edb0 00005767,0000edb0 9f72 fbea 8f6b 9f72 * * 9f72 -16172 * * * * * * * 5056 e58196,eeb6b1 5056,edb1 00005056,0000edb1 9f73 fb7c 8eaf 9f73 * * 9f73 -16173 * * * * * * * 59b7 e5a6b7,eeb6b2 59b7,edb2 000059b7,0000edb2 9f74 fbf3 8ead 9f74 * * 9f74 -16174 * * * * * * * 5e12 e5b892,eeb6b3 5e12,edb3 00005e12,0000edb3 9f75 fc49 8fd1 9f75 * * 9f75 -16175 * * * * * * * 97c8 e99f88,eeb6b4 97c8,edb4 000097c8,0000edb4 9f76 feaf 90e6 9f76 * * 9f76 -16176 * * * * * * * 9dab e9b6ab,eeb6b5 9dab,edb5 00009dab,0000edb5 9f77 feea 9144 9f77 c8f8 fcf6 9f77 -16177 * * * * * * * 8f5c e8bd9c,eeb6b6 8f5c,edb6 00008f5c,0000edb6 9f78 fe5b 90c2 9f78 * * 9f78 -16178 * * * * * * * 5469 e591a9,eeb6b7 5469,edb7 00005469,0000edb7 9f79 fbcb 8fa1 9f79 * * 9f79 -16179 * * * * * * * 97b4 e99eb4,eeb6b8 97b4,edb8 000097b4,0000edb8 9f7a feab 90e7 9f7a * * 9f7a -16180 * * * * * * * 9940 e9a580,eeb6b9 9940,edb9 00009940,0000edb9 9f7b fb69,fec0 8f49 9f7b * * 9f7b -16181 * * * * * * * 97ba e99eba,eeb6ba 97ba,edba 000097ba,0000edba 9f7c fead 90e4 9f7c * fcd6 9f7c -16182 * * * * * * * 532c e58cac,eeb6bb 532c,edbb 0000532c,0000edbb 9f7d fbc1 916c 9f7d * * 9f7d -16183 * * * * * * * 6130 e684b0,eeb6bc 6130,edbc 00006130,0000edbc 9f7e fc69 8fab 9f7e * * 9f7e -16184 * * * * * * * 692c e6a4ac,eeb6bd 692c,edbd 0000692c,0000edbd 9fa1 fcb4 8fc9 9fa1 * * 9fa1 -16185 * * * * * * * 53da e58f9a,eeb6be 53da,edbe 000053da,0000edbe 9fa2 fbd2 8fcb 9fa2 * fa73 9fa2 -16186 * * * * * * * 9c0a e9b08a,eeb6bf 9c0a,edbf 00009c0a,0000edbf 9fa3 fedd 8ef7 9fa3 * * 9fa3 -16187 * * * * * * * 9d02 e9b482,eeb780 9d02,edc0 00009d02,0000edc0 9fa4 fee6 9143 9fa4 * * 9fa4 -16188 * * * * * * * 4c3b e4b0bb,eeb781 4c3b,edc1 00004c3b,0000edc1 9fa5 fed5 90f9 9fa5 * * 9fa5 -16189 * * * * * * * 9641 e99981,eeb782 9641,edc2 00009641,0000edc2 9fa6 fe7d 90d9 9fa6 * * 9fa6 -16190 * * * * * * * 6980 e6a680,eeb783 6980,edc3 00006980,0000edc3 9fa7 fcbb 8f61 9fa7 * * 9fa7 -16191 * * * * * * * 50a6 e582a6,eeb784 50a6,edc4 000050a6,0000edc4 9fa8 fba3 8fa2 9fa8 * * 9fa8 -16192 * * * * * * * 7546 e79586,eeb785 7546,edc5 00007546,0000edc5 9fa9 fbbe 91dc 9fa9 * * 9fa9 -16193 * * * * * * * edc6 f0a19dad,eeb786 d845df6d,edc6 0002176d,0000edc6 9faa fbfa 8ffc 9faa * * 9faa -16194 * * * * * * * 99da e9a79a,eeb787 99da,edc7 000099da,0000edc7 9fab fec5 8ee6 9fab * * 9fab -16195 * * * * * * * 5273 e589b3,eeb788 5273,edc8 00005273,0000edc8 9fac fbae 9052 9fac * * 9fac -16196 * * * * * * * * eeb789 edc9 0000edc9 9fad fbd6 8fb9 9fad * * 9fad -16197 * * * * * * * 9159 e98599,eeb78a 9159,edca 00009159,0000edca 9fae fe61 8efc 9fae * * 9fae -16198 * * * * * * * 9681 e99a81,eeb78b 9681,edcb 00009681,0000edcb 9faf fea3 90dd 9faf * * 9faf -16199 * * * * * * * 915c e9859c,eeb78c 915c,edcc 0000915c,0000edcc 9fb0 fe60 8f41 9fb0 * * 9fb0 -16200 * * * * * * * * f0ab91b3,eeb78d d86ddc73,edcd 0002b473,0000edcd 9fb1 fe5f 90ce 9fb1 * * 9fb1 -16201 * * * * * * * 9151 e98591,eeb78e 9151,edce 00009151,0000edce 9fb2 fe5e 8f45 9fb2 * * 9fb2 -16202 * * * * * * * edcf f0a8ba97,eeb78f d863de97,edcf 00028e97,0000edcf 9fb3 fe7e 90da 9fb3 * * 9fb3 -16203 * * * * * * * 637f e68dbf,eeb790 637f,edd0 0000637f,0000edd0 9fb4 fca1 8ff2 9fb4 * * 9fb4 -16204 * * * * * * * 6aca e6ab8a,eeb792 6aca,edd2 00006aca,0000edd2 9fb6 fcc9 91c6 9fb6 * * 9fb6 -16205 * * * * * * * 5611 e59891,eeb793 5611,edd3 00005611,0000edd3 9fb7 fbdd 917a 9fb7 c7b0 faca 9fb7 -16206 * * * * * * * 918e e9868e,eeb794 918e,edd4 0000918e,0000edd4 9fb8 fe65 90cb 9fb8 * * 9fb8 -16207 * * * * * * * 757a e795ba,eeb795 757a,edd5 0000757a,0000edd5 9fb9 fd4b 91dd 9fb9 * fa43 9fb9 -16208 * * * * * * * 6285 e68a85,eeb796 6285,edd6 00006285,0000edd6 9fba fc78 8fc3 9fba c7e7 fb5f 9fba -16209 * * * * * * * 734f e78d8f,eeb798 734f,edd8 0000734f,0000edd8 9fbc fcf4 8fda 9fbc * * 9fbc -16210 * * * * * * * 7c70 e7b1b0,eeb799 7c70,edd9 00007c70,0000edd9 9fbd fda4 9069 9fbd * * 9fbd -16211 * * * * * * * edda f0a5b0a1,eeb79a d857dc21,edda 00025c21,0000edda 9fbe fd7c 9064 9fbe * * 9fbe -16212 * * * * * * * * eeb79c eddc 0000eddc 9fc0 fdf7 907d 9fc0 * * 9fc0 -16213 * * * * * * * 76d6 e79b96,eeb79e 76d6,edde 000076d6,0000edde 9fc2 fd50 91e1 9fc2 * * 9fc2 -16214 * * * * * * * 9b9d e9ae9d,eeb79f 9b9d,eddf 00009b9d,0000eddf 9fc3 fed8 8f48 9fc3 * * 9fc3 -16215 * * * * * * * 4e2a e4b8aa,eeb7a0 4e2a,ede0 00004e2a,0000ede0 9fc4 fb71 8ebc 9fc4 * * 9fc4 -16216 * * * * * * * ede1 f0a0b394,eeb7a1 d843dcd4,ede1 00020cd4,0000ede1 9fc5 fa74 * 9fc5 c76f faa8 9fc5 -16217 * * * * * * * 83be e88ebe,eeb7a2 83be,ede2 000083be,0000ede2 9fc6 fb61,fdef 8e42 9fc6 * * 9fc6 -16218 * * * * * * * 8842 e8a182,eeb7a3 8842,ede3 00008842,0000ede3 9fc7 fdda 8f55 9fc7 * * 9fc7 -16219 * * * * * * * * eeb7a4 ede4 0000ede4 9fc8 fb72 8ff5 9fc8 * * 9fc8 -16220 * * * * * * * 5c4a e5b18a,eeb7a5 5c4a,ede5 00005c4a,0000ede5 9fc9 fbfd 8f7e 9fc9 * * 9fc9 -16221 * * * * * * * 69c0 e6a780,eeb7a6 69c0,ede6 000069c0,0000ede6 9fca fcbf 91c2 9fca * * 9fca -16222 * * * * * * * * * * * * fba7 8fec 9fcb * * * -16223 * * * * * * * 577a * * * * fbe9 91a4 9fcc * * * -16224 * * * * * * * 521f e5889f,eeb7a9 521f,ede9 0000521f,0000ede9 9fcd fbab 8f79 9fcd * * 9fcd -16225 * * * * * * * 5df5 e5b7b5,eeb7aa 5df5,edea 00005df5,0000edea 9fce fc47 9263 9fce * * 9fce -16226 * * * * * * * 4ece e4bb8e,eeb7ab 4ece,edeb 00004ece,0000edeb 9fcf fb73 9165 9fcf * * 9fcf -16227 * * * * * * * 6c31 e6b0b1,eeb7ac 6c31,edec 00006c31,0000edec 9fd0 fcf8 8fdc 9fd0 * * 9fd0 -16228 * * * * * * * eded f0a087b2,eeb7ad d840ddf2,eded 000201f2,0000eded 9fd1 fb76 91f1 9fd1 * * 9fd1 -16229 * * * * * * * 4f39 e4bcb9,eeb7ae 4f39,edee 00004f39,0000edee 9fd2 fb77 9167 9fd2 * * 9fd2 -16230 * * * * * * * 549c e5929c,eeb7af 549c,edef 0000549c,0000edef 9fd3 fbcd 8e73 9fd3 * * 9fd3 -16231 * * * * * * * * * * * * * 9172 9fd4 * * * -16232 * * * * * * * 529a e58a9a,eeb7b1 529a,edf1 0000529a,0000edf1 9fd5 fbaf 8eba 9fd5 * * 9fd5 -16233 * * * * * * * 8d82 e8b682,eeb7b2 8d82,edf2 00008d82,0000edf2 9fd6 fe50 90ba 9fd6 * * 9fd6 -16234 * * * * * * * 35fe e397be,eeb7b3 35fe,edf3 000035fe,0000edf3 9fd7 fad1 * 9fd7 c7ba fad6 9fd7 -16235 * * * * * * * * * * * * fc4d 8f72 9fd8 * * * -16236 * * * * * * * 35f3 e397b3,eeb7b5 35f3,edf5 000035f3,0000edf5 9fd9 fbe2 917e 9fd9 * fad1 9fd9 -16237 * * * * * * * * eeb7b6 edf6 0000edf6 9fda fb49 * 9fda c75d fa6f 9fda -16238 * * * * * * * 6b52 e6ad92,eeb7b7 6b52,edf7 00006b52,0000edf7 9fdb fccb 8f68 9fdb * * 9fdb -16239 * * * * * * * 917c e985bc,eeb7b8 917c,edf8 0000917c,0000edf8 9fdc fe64 90c9 9fdc * * 9fdc -16240 * * * * * * * 9fa5 e9bea5,eeb7b9 9fa5,edf9 00009fa5,0000edf9 9fdd feb3 8ebd 9fdd * * 9fdd -16241 * * * * * * * 9b97 e9ae97,eeb7ba 9b97,edfa 00009b97,0000edfa 9fde fed9 8f51 9fde * * 9fde -16242 * * * * * * * 982e e9a0ae,eeb7bb 982e,edfb 0000982e,0000edfb 9fdf feb2 90ea 9fdf * * 9fdf -16243 * * * * * * * 98b4 e9a2b4,eeb7bc 98b4,edfc 000098b4,0000edfc 9fe0 feb8 9046 9fe0 * * 9fe0 -16244 * * * * * * * 9aba e9aaba,eeb7bd 9aba,edfd 00009aba,0000edfd 9fe1 fec8 90f3 9fe1 * * 9fe1 -16245 * * * * * * * 9ea8 e9baa8,eeb7be 9ea8,edfe 00009ea8,0000edfe 9fe2 fef3 914a 9fe2 * * 9fe2 -16246 * * * * * * * 9e84 e9ba84,eeb7bf 9e84,edff 00009e84,0000edff 9fe3 feee 9148 9fe3 * * 9fe3 -16247 * * * * * * * 7b14 e7ac94,eeb881 7b14,ee01 00007b14,0000ee01 9fe5 fd75 91eb 9fe5 * * 9fe5 -16248 * * * * * * * * eeb882 ee02 0000ee02 9fe6 fcd7 8fcd 9fe6 * * 9fe6 -16249 * * * * * * * 6bfa e6afba,eeb883 6bfa,ee03 00006bfa,0000ee03 9fe7 fccc 8ff8 9fe7 * * 9fe7 -16250 * * * * * * * 8818 e8a098,eeb884 8818,ee04 00008818,0000ee04 9fe8 fdd8 90ae 9fe8 * * 9fe8 -16251 * * * * * * * 7f78 e7bdb8,eeb885 7f78,ee05 00007f78,0000ee05 9fe9 fde7 8f4c 9fe9 * * 9fe9 -16252 * * * * * * * * eeb886 ee06 0000ee06 9fea fb60,fde5 8f4e 9fea * * 9fea -16253 * * * * * * * 5620 e598a0,eeb887 5620,ee07 00005620,0000ee07 9feb fbe6 8f6c 9feb * * 9feb -16254 * * * * * * * ee08 f0aa998a,eeb888 d869de4a,ee08 0002a64a,0000ee08 9fec fefe * 9fec * * 9fec -16255 * * * * * * * 8e77 e8b9b7,eeb889 8e77,ee09 00008e77,0000ee09 9fed fe56 90bf 9fed * * 9fed -16256 * * * * * * * 9f53 e9bd93,eeb88a 9f53,ee0a 00009f53,0000ee0a 9fee fefb 914f 9fee * * 9fee -16257 * * * * * * * * eeb88b ee0b 0000ee0b 9fef fe77 * 9fef * * 9fef -16258 * * * * * * * 8dd4 e8b794,eeb88c 8dd4,ee0c 00008dd4,0000ee0c 9ff0 fe52 90bb 9ff0 * * 9ff0 -16259 * * * * * * * 8e4f e8b98f,eeb88d 8e4f,ee0d 00008e4f,0000ee0d 9ff1 fe55 90bd 9ff1 * * 9ff1 -16260 * * * * * * * 9e1c e9b89c,eeb88e 9e1c,ee0e 00009e1c,0000ee0e 9ff2 feec 9145 9ff2 * * 9ff2 -16261 * * * * * * * 8e01 e8b881,eeb88f 8e01,ee0f 00008e01,0000ee0f 9ff3 fe54 90bc 9ff3 * * 9ff3 -16262 * * * * * * * 6282 e68a82,eeb890 6282,ee10 00006282,0000ee10 9ff4 fc79 8fc6 9ff4 * * 9ff4 -16263 * * * * * * * ee11 f0a88dbd,eeb891 d860df7d,ee11 0002837d,0000ee11 9ff5 fe5a 90c1 9ff5 * * 9ff5 -16264 * * * * * * * 8e28 e8b8a8,eeb892 8e28,ee12 00008e28,0000ee12 9ff6 fe53 8ec3 9ff6 * * 9ff6 -16265 * * * * * * * 8e75 e8b9b5,eeb893 8e75,ee13 00008e75,0000ee13 9ff7 fe57 90be 9ff7 * * 9ff7 -16266 * * * * * * * 7ad3 e7ab93,eeb894 7ad3,ee14 00007ad3,0000ee14 9ff8 fd68 8f60 9ff8 * * 9ff8 -16267 * * * * * * * 7a3e e7a8be,eeb896 7a3e,ee16 00007a3e,0000ee16 9ffa fd66 91f2 9ffa * * 9ffa -16268 * * * * * * * 78d8 e7a398,eeb897 78d8,ee17 000078d8,0000ee17 9ffb fd59 8ec2 9ffb * * 9ffb -16269 * * * * * * * 6cea e6b3aa,eeb898 6cea,ee18 00006cea,0000ee18 9ffc fccd 8e6a 9ffc * * 9ffc -16270 * * * * * * * 8a67 e8a9a7,eeb899 8a67,ee19 00008a67,0000ee19 9ffd fd74 9241 9ffd * * 9ffd -16271 * * * * * * * 7607 e79887,eeb89a 7607,ee1a 00007607,0000ee1a 9ffe fd6d 91de 9ffe c870 fbe6 9ffe -16272 * * * * * * * 9f26 e9bca6,eeb89c 9f26,ee1c 00009f26,0000ee1c a041 fb70,fef7 914d a041 c8fd fcfc a041 -16273 * * * * * * * 6cce e6b38e,eeb89d 6cce,ee1d 00006cce,0000ee1d a042 fccf 8f73 a042 * * a042 -16274 * * * * * * * 87d6 e89f96,eeb89e 87d6,ee1e 000087d6,0000ee1e a043 fdd5 915e a043 * fc7b a043 -16275 * * * * * * * 75c3 e79783,eeb89f 75c3,ee1f 000075c3,0000ee1f a044 fd6c 8e53 a044 * * a044 -16276 * * * * * * * ee20 f0aa8ab2,eeb8a0 d868deb2,ee20 0002a2b2,0000ee20 a045 feef 8eea a045 * * a045 -16277 * * * * * * * 7853 e7a193,eeb8a1 7853,ee21 00007853,0000ee21 a046 fd56 8edd a046 * * a046 -16278 * * * * * * * 8d0c e8b48c,eeb8a3 8d0c,ee23 00008d0c,0000ee23 a048 fe4e 8edc a048 * * a048 -16279 * * * * * * * 72e2 e78ba2,eeb8a4 72e2,ee24 000072e2,0000ee24 a049 fcef 91d7 a049 * * a049 -16280 * * * * * * * 7371 e78db1,eeb8a5 7371,ee25 00007371,0000ee25 a04a fcf5 91da a04a * * a04a -16281 * * * * * * * 8b2d e8acad,eeb8a6 8b2d,ee26 00008b2d,0000ee26 a04b fe46 8e4a a04b * fcaf a04b -16282 * * * * * * * 7302 e78c82,eeb8a7 7302,ee27 00007302,0000ee27 a04c fcf0 8fea a04c c864 fbd6 a04c -16283 * * * * * * * 74f1 e793b1,eeb8a8 74f1,ee28 000074f1,0000ee28 a04d fd41 8e74 a04d * * a04d -16284 * * * * * * * 8ceb e8b3ab,eeb8a9 8ceb,ee29 00008ceb,0000ee29 a04e fe4c 8eee a04e * * a04e -16285 * * * * * * * ee2a f0a4aabb,eeb8aa d852debb,ee2a 00024abb,0000ee2a a04f fcfe 8fce a04f * * a04f -16286 * * * * * * * 862f e898af,eeb8ab 862f,ee2b 0000862f,0000ee2b a050 fb62,fdfa 90a5 a050 * * a050 -16287 * * * * * * * 5fba e5beba,eeb8ac 5fba,ee2c 00005fba,0000ee2c a051 fc5c 8e63 a051 * * a051 -16288 * * * * * * * 88a0 e8a2a0,eeb8ad 88a0,ee2d 000088a0,0000ee2d a052 fde1 90b2 a052 * * a052 -16289 * * * * * * * 44b7 e492b7,eeb8ae 44b7,ee2e 000044b7,0000ee2e a053 fdeb 90a2 a053 * * a053 -16290 * * * * * * * * eeb8af ee2f 0000ee2f a054 fb5e,fddc 90af a054 * fc7e a054 -16291 * * * * * * * ee31 f0a6b885,eeb8b1 d85bde05,ee31 00026e05,0000ee31 a056 fdf5 907c a056 * * a056 -16292 * * * * * * * * f0aab9a7,eeb8b2 d86bde67,ee32 0002ae67,0000ee32 a057 fce7 91ee a057 * * a057 -16293 * * * * * * * 8a7e e8a9be,eeb8b3 8a7e,ee33 00008a7e,0000ee33 a058 fe43 90b7 a058 * * a058 -16294 * * * * * * * ee34 f0a2949b,eeb8b4 d849dd1b,ee34 0002251b,0000ee34 a059 fc59 9244 a059 * * a059 -16295 * * * * * * * * eeb8b5 ee35 0000ee35 a05a fc5e 91ce a05a * * a05a -16296 * * * * * * * 60fd e683bd,eeb8b6 60fd,ee36 000060fd,0000ee36 a05b fc68 91b5 a05b * * a05b -16297 * * * * * * * 7667 e799a7,eeb8b7 7667,ee37 00007667,0000ee37 a05c fd71 8e5f a05c * fbed a05c -16298 * * * * * * * 9ad7 e9ab97,eeb8b8 9ad7,ee38 00009ad7,0000ee38 a05d fb6c,feca 8e4e a05d c8eb fce4 a05d -16299 * * * * * * * 9d44 e9b584,eeb8b9 9d44,ee39 00009d44,0000ee39 a05e fee8 8ec0 a05e * * a05e -16300 * * * * * * * * e98dae,ee97ab,eeb8ba 936e,e5eb,ee3a 0000936e,0000e5eb,0000ee3a 92c8,a05f fe76 8e60 a05f * * 92c8,a05f -16301 * * * * * * * 9b8f e9ae8f,eeb8bb 9b8f,ee3b 00009b8f,0000ee3b a060 fed6 90fb a060 * * a060 -16302 * * * * * * * 87f5 e89fb5,eeb8bc 87f5,ee3c 000087f5,0000ee3c a061 fdd6 915f a061 * * a061 -16303 * * * * * * * * f0adbcbc,eeb8bd d877df3c,ee3d 0002df3c,0000ee3d a062 * 8fc5 a062 * * a062 -16304 * * * * * * * * * * * * * * a063 * * * -16305 * * * * * * * 8cf7 e8b3b7,eeb8bf 8cf7,ee3f 00008cf7,0000ee3f a064 fe4d 8ee8 a064 * * a064 -16306 * * * * * * * 732c e78cac,eeb980 732c,ee40 0000732c,0000ee40 a065 fced 91d8 a065 c868 fbda a065 -16307 * * * * * * * 9721 e99ca1,eeb981 9721,ee41 00009721,0000ee41 a066 fea6 90df a066 * * a066 -16308 * * * * * * * 9bb0 e9aeb0,eeb982 9bb0,ee42 00009bb0,0000ee42 a067 feda 90fa a067 * * a067 -16309 * * * * * * * 35d6 e39796,eeb983 35d6,ee43 000035d6,0000ee43 a068 fbda 9175 a068 * * a068 -16310 * * * * * * * 72b2 e78ab2,eeb984 72b2,ee44 000072b2,0000ee44 a069 fcee 8fef a069 * * a069 -16311 * * * * * * * 4c07 e4b087,eeb985 4c07,ee45 00004c07,0000ee45 a06a fed2 8ebe a06a * * a06a -16312 * * * * * * * 7c51 e7b191,eeb986 7c51,ee46 00007c51,0000ee46 a06b fda1 9067 a06b * * a06b -16313 * * * * * * * 994a e9a58a,eeb987 994a,ee47 0000994a,0000ee47 a06c fec1 90f1 a06c * * a06c -16314 * * * * * * * 6159 e68599,eeb989 6159,ee49 00006159,0000ee49 a06e fc6d 8f71 a06e c7e6 fb5c a06e -16315 * * * * * * * 4c04 e4b084,eeb98a 4c04,ee4a 00004c04,0000ee4a a06f fed4 90f8 a06f * * a06f -16316 * * * * * * * 9e96 e9ba96,eeb98b 9e96,ee4b 00009e96,0000ee4b a070 faed * a070 c8fa fcf8 a070 -16317 * * * * * * * 617d e685bd,eeb98c 617d,ee4c 0000617d,0000ee4c a071 fc70 91b4 a071 * * a071 -16318 * * * * * * * * eeb98d ee4d 0000ee4d a072 fc58 8f74 a072 * * a072 -16319 * * * * * * * 575f e59d9f,eeb98e 575f,ee4e 0000575f,0000ee4e a073 fbe7 91a3 a073 * * a073 -16320 * * * * * * * 616f e685af,eeb98f 616f,ee4f 0000616f,0000ee4f a074 fc6e 8f7b a074 * * a074 -16321 * * * * * * * 62a6 e68aa6,eeb990 62a6,ee50 000062a6,0000ee50 a075 fc7a 8fa8 a075 c7ea fb63 a075 -16322 * * * * * * * 6239 e688b9,eeb991 6239,ee51 00006239,0000ee51 a076 fc76 91b8 a076 * * a076 -16323 * * * * * * * * * * * * fae8 * a077 * * * -16324 * * * * * * * 3a5c e3a99c,eeb993 3a5c,ee53 00003a5c,0000ee53 a078 fca4 91bc a078 * * a078 -16325 * * * * * * * 61e2 e687a2,eeb994 61e2,ee54 000061e2,0000ee54 a079 fc74 8eb3 a079 * fb5e a079 -16326 * * * * * * * 53aa e58eaa,eeb995 53aa,ee55 000053aa,0000ee55 a07a fbc7 8ea3 a07a * * a07a -16327 * * * * * * * 6364 e68da4,eeb997 6364,ee57 00006364,0000ee57 a07c fc7c 8f64 a07c * * a07c -16328 * * * * * * * 6802 e6a082,eeb998 6802,ee58 00006802,0000ee58 a07d fcb2 8ff1 a07d * * a07d -16329 * * * * * * * 35d2 e39792,eeb999 35d2,ee59 000035d2,0000ee59 a07e fbd8 9174 a07e * * a07e -16330 * * * * * * * 5d57 e5b597,eeb99a 5d57,ee5a 00005d57,0000ee5a a0a1 fc43 8feb a0a1 * * a0a1 -16331 * * * * * * * 8fda e8bf9a,eeb99c 8fda,ee5c 00008fda,0000ee5c a0a3 fe6b 8e61 a0a3 * * a0a3 -16332 * * * * * * * ee5d f0a8b8b9,eeb99d d863de39,ee5d 00028e39,0000ee5d a0a4 fe7b 90d7 a0a4 * * a0a4 -16333 * * * * * * * * eeb99e ee5e 0000ee5e a0a5 fbd9 8fa5 a0a5 * * a0a5 -16334 * * * * * * * 50d9 e58399,eeb99f 50d9,ee5f 000050d9,0000ee5f a0a6 fba5 8ea8 a0a6 * * a0a6 -16335 * * * * * * * 7906 e7a486,eeb9a1 7906,ee61 00007906,0000ee61 a0a8 fb52,fd5a 91e4 a0a8 * * a0a8 -16336 * * * * * * * 5332 e58cb2,eeb9a2 5332,ee62 00005332,0000ee62 a0a9 fbc0 916b a0a9 * * a0a9 -16337 * * * * * * * 9638 e998b8,eeb9a3 9638,ee63 00009638,0000ee63 a0aa fe7c 90d8 a0aa * * a0aa -16338 * * * * * * * ee64 f0a0bcbb,eeb9a4 d843df3b,ee64 00020f3b,0000ee64 a0ab fbdc 916f a0ab * * a0ab -16339 * * * * * * * 4065 e481a5,eeb9a5 4065,ee65 00004065,0000ee65 a0ac fd54 91e2 a0ac * * a0ac -16340 * * * * * * * * eeb9a6 ee66 0000ee66 a0ad fd5c 91e5 a0ad * * a0ad -16341 * * * * * * * 77fe e79fbe,eeb9a7 77fe,ee67 000077fe,0000ee67 a0ae faee * a0ae c877 fbf8 a0ae -16342 * * * * * * * * eeb9a8 ee68 0000ee68 a0af fdab 906e a0af * * a0af -16343 * * * * * * * 7cc2 e7b382,eeb9a9 7cc2,ee69 00007cc2,0000ee69 a0b0 fdaa 906d a0b0 * * a0b0 -16344 * * * * * * * ee6a f0a5bc9a,eeb9aa d857df1a,ee6a 00025f1a,0000ee6a a0b1 fdad 9264 a0b1 * * a0b1 -16345 * * * * * * * 7cda e7b39a,eeb9ab 7cda,ee6b 00007cda,0000ee6b a0b2 fdac 906c a0b2 * * a0b2 -16346 * * * * * * * 7a2d e7a8ad,eeb9ac 7a2d,ee6c 00007a2d,0000ee6c a0b3 fd65 91e9 a0b3 * fc46 a0b3 -16347 * * * * * * * 8066 e881a6,eeb9ad 8066,ee6d 00008066,0000ee6d a0b4 fdbb 8ecc a0b4 * * a0b4 -16348 * * * * * * * 8063 e881a3,eeb9ae 8063,ee6e 00008063,0000ee6e a0b5 fdba 8ed6 a0b5 * * a0b5 -16349 * * * * * * * 7d4d e7b58d,eeb9af 7d4d,ee6f 00007d4d,0000ee6f a0b6 fdae 8f4a a0b6 * * a0b6 -16350 * * * * * * * 7505 e79485,eeb9b0 7505,ee70 00007505,0000ee70 a0b7 fd44 8e70 a0b7 * * a0b7 -16351 * * * * * * * 74f2 e793b2,eeb9b1 74f2,ee71 000074f2,0000ee71 a0b8 fd42 8e77 a0b8 * * a0b8 -16352 * * * * * * * 8994 e8a694,eeb9b2 8994,ee72 00008994,0000ee72 a0b9 fdfe 90b3 a0b9 * * a0b9 -16353 * * * * * * * 821a e8889a,eeb9b3 821a,ee73 0000821a,0000ee73 a0ba fdca 907a a0ba * * a0ba -16354 * * * * * * * 670c e69c8c,eeb9b4 670c,ee74 0000670c,0000ee74 a0bb fdbf 9074 a0bb * * a0bb -16355 * * * * * * * 8062 e881a2,eeb9b5 8062,ee75 00008062,0000ee75 a0bc fdb9 8ed3 a0bc * * a0bc -16356 * * * * * * * ee76 f0a79286,eeb9b6 d85ddc86,ee76 00027486,0000ee76 a0bd fdd4 90ac a0bd * * a0bd -16357 * * * * * * * 805b e8819b,eeb9b7 805b,ee77 0000805b,0000ee77 a0be fdbc 8ecf a0be * * a0be -16358 * * * * * * * 74f0 e793b0,eeb9b8 74f0,ee78 000074f0,0000ee78 a0bf fd43 8e7a a0bf * * a0bf -16359 * * * * * * * 8103 e88483,eeb9b9 8103,ee79 00008103,0000ee79 a0c0 fdc0 9077 a0c0 * * a0c0 -16360 * * * * * * * 7724 e79ca4,eeb9ba 7724,ee7a 00007724,0000ee7a a0c1 fd51 8e4b a0c1 * * a0c1 -16361 * * * * * * * 8989 e8a689,eeb9bb 8989,ee7b 00008989,0000ee7b a0c2 fdfc 8ef1 a0c2 c8c2 fca7 a0c2 -16362 * * * * * * * ee7c f0a69f8c,eeb9bc d859dfcc,ee7c 000267cc,0000ee7c a0c3 fb4d * a0c3 * * a0c3 -16363 * * * * * * * 7553 e79593,eeb9bd 7553,ee7d 00007553,0000ee7d a0c4 fd48 8fad a0c4 * * a0c4 -16364 * * * * * * * 87a9 e89ea9,eeb9bf 87a9,ee7f 000087a9,0000ee7f a0c6 fdce 8ece a0c6 * * a0c6 -16365 * * * * * * * 87ce e89f8e,eeba80 87ce,ee80 000087ce,0000ee80 a0c7 fdd2 90ab a0c7 * fc78 a0c7 -16366 * * * * * * * 81c8 e88788,eeba81 81c8,ee81 000081c8,0000ee81 a0c8 fdc6 9079 a0c8 * * a0c8 -16367 * * * * * * * 878c e89e8c,eeba82 878c,ee82 0000878c,0000ee82 a0c9 fdcf 90a8 a0c9 * * a0c9 -16368 * * * * * * * 8a49 e8a989,eeba83 8a49,ee83 00008a49,0000ee83 a0ca fe44 90b6 a0ca * * a0ca -16369 * * * * * * * 8cad e8b2ad,eeba84 8cad,ee84 00008cad,0000ee84 a0cb fe4b 8ef9 a0cb * * a0cb -16370 * * * * * * * 8b43 e8ad83,eeba85 8b43,ee85 00008b43,0000ee85 a0cc fe47 8ec1 a0cc * * a0cc -16371 * * * * * * * 772b e79cab,eeba86 772b,ee86 0000772b,0000ee86 a0cd fd52 8f65 a0cd * fbf2 a0cd -16372 * * * * * * * 74f8 e793b8,eeba87 74f8,ee87 000074f8,0000ee87 a0ce fd46 8e71 a0ce * * a0ce -16373 * * * * * * * 84da e8939a,eeba88 84da,ee88 000084da,0000ee88 a0cf fdf2 90a4 a0cf * * a0cf -16374 * * * * * * * 69b2 e6a6b2,eeba8a 69b2,ee8a 000069b2,0000ee8a a0d1 fcbe 91c1 a0d1 * fbb2 a0d1 -16375 * * * * * * * 8da6 e8b6a6,eeba8b 8da6,ee8b 00008da6,0000ee8b a0d2 fe51 8ed1 a0d2 * * a0d2 -16376 * * * * * * * * eeba8c ee8c 0000ee8c a0d3 fdf1 8ee4 a0d3 * * a0d3 -16377 * * * * * * * * e8a6a9,ee9098,eeba8d 89a9,e418,ee8d 000089a9,0000e418,0000ee8d 8fcc,a0d4 fe41 9251 a0d4 c8c4 fca9 8fcc,a0d4 -16378 * * * * * * * * * * * * fcfd 8fee a0d5 * * * -16379 * * * * * * * 6db9 e6b6b9,eeba8f 6db9,ee8f 00006db9,0000ee8f a0d6 fcd3 9171 a0d6 * * a0d6 -16380 * * * * * * * 87c1 e89f81,eeba90 87c1,ee90 000087c1,0000ee90 a0d7 fdd1 90a9 a0d7 * * a0d7 -16381 * * * * * * * ee91 f0a48091,eeba91 d850dc11,ee91 00024011,0000ee91 a0d8 fcd6 91cd a0d8 * * a0d8 -16382 * * * * * * * 74e7 e793a7,eeba92 74e7,ee92 000074e7,0000ee92 a0d9 fd40 8ea1 a0d9 * * a0d9 -16383 * * * * * * * 3ddb e3b79b,eeba93 3ddb,ee93 00003ddb,0000ee93 a0da fafb * a0da c85e fbce a0da -16384 * * * * * * * 7176 e785b6,eeba94 7176,ee94 00007176,0000ee94 a0db fce2 8fbd a0db c85b fbcb a0db -16385 * * * * * * * 60a4 e682a4,ee85a6,eeba95 60a4,e166,ee95 000060a4,0000e166,0000ee95 fc6c,a0dc fc60 91b3 a0dc * * fc6c,a0dc -16386 * * * * * * * 619c e6869c,eeba96 619c,ee96 0000619c,0000ee96 a0dd fc6c 8f6f a0dd c7e4 fb5a a0dd -16387 * * * * * * * 3cd1 e3b391,eeba97 3cd1,ee97 00003cd1,0000ee97 a0de fcce 8f66 a0de * * a0de -16388 * * * * * * * * * * * * fce4 8e72 a0df * * * -16389 * * * * * * * 6077 e681b7,eeba99 6077,ee99 00006077,0000ee99 a0e0 fc5f 8eac a0e0 * * a0e0 -16390 * * * * * * * * eeba9a ee9a 0000ee9a a0e1 fc6b 8f6a a0e1 * * a0e1 -16391 * * * * * * * 7f71 e7bdb1,eeba9b 7f71,ee9b 00007f71,0000ee9b a0e2 fde6 9073 a0e2 * * a0e2 -16392 * * * * * * * * f0afa4a2 d87edd22 0002f922 * * * a0e4 * * * -16393 * * * * * * * 60e9 e683a9,eeba9e 60e9,ee9e 000060e9,0000ee9e a0e5 fc65 8fc4 a0e5 * * a0e5 -16394 * * * * * * * 4b7e e4adbe,eeba9f 4b7e,ee9f 00004b7e,0000ee9f a0e6 fec3 8eec a0e6 * * a0e6 -16395 * * * * * * * e000 f0a09587,ee8080 d841dd47,e000 00020547,0000e000 fa40 * * fa40 * * fa40 -16396 * * * * * * * 92db e98b9b,ee8081 92db,e001 000092db,0000e001 fa41 * * fa41 * * fa41 -16397 * * * * * * * e002 f0a0979f,ee8082 d841dddf,e002 000205df,0000e002 fa42 * * fa42 * * fa42 -16398 * * * * * * * e003 f0a3bf85,ee8083 d84fdfc5,e003 00023fc5,0000e003 fa43 * * fa43 * * fa43 -16399 * * * * * * * 854c e8958c,ee8084 854c,e004 0000854c,0000e004 fa44 * * fa44 * * fa44 -16400 * * * * * * * 42b5 e48ab5,ee8085 42b5,e005 000042b5,0000e005 fa45 * * fa45 * * fa45 -16401 * * * * * * * 73ef e78faf,ee8086 73ef,e006 000073ef,0000e006 fa46 * * fa46 * * fa46 -16402 * * * * * * * 51b5 e586b5,ee8087 51b5,e007 000051b5,0000e007 fa47 fbb7 8e79 fa47 * * fa47 -16403 * * * * * * * 3649 e39989,ee8088 3649,e008 00003649,0000e008 fa48 * * fa48 * * fa48 -16404 * * * * * * * e009 f0a4a582,ee8089 d852dd42,e009 00024942,0000e009 fa49 * * fa49 * * fa49 -16405 * * * * * * * e00a f0a8a7a4,ee808a d862dde4,e00a 000289e4,0000e00a fa4a * * fa4a * * fa4a -16406 * * * * * * * 9344 e98d84,ee808b 9344,e00b 00009344,0000e00b fa4b * * fa4b * * fa4b -16407 * * * * * * * e00c f0a1a79b,ee808c d846dddb,e00c 000219db,0000e00c fa4c * * fa4c * * fa4c -16408 * * * * * * * 82ee e88bae,ee808d 82ee,e00d 000082ee,0000e00d fa4d * * fa4d * * fa4d -16409 * * * * * * * e00e f0a3b388,ee808e d84fdcc8,e00e 00023cc8,0000e00e fa4e * * fa4e * * fa4e -16410 * * * * * * * 783c e7a0bc,ee808f 783c,e00f 0000783c,0000e00f fa4f * * fa4f * * fa4f -16411 * * * * * * * 6744 e69d84,ee8090 6744,e010 00006744,0000e010 fa50 * * fa50 * * fa50 -16412 * * * * * * * 62df e68b9f,ee8091 62df,e011 000062df,0000e011 fa51 * * fa51 * * fa51 -16413 * * * * * * * e012 f0a4a4b3,ee8092 d852dd33,e012 00024933,0000e012 fa52 * * fa52 * * fa52 -16414 * * * * * * * e013 f0a8a6aa,ee8093 d862ddaa,e013 000289aa,0000e013 fa53 * * fa53 * * fa53 -16415 * * * * * * * e014 f0a08aa0,ee8094 d840dea0,e014 000202a0,0000e014 fa54 * * fa54 * * fa54 -16416 * * * * * * * e015 f0a6aeb3,ee8095 d85adfb3,e015 00026bb3,0000e015 fa55 * * fa55 * * fa55 -16417 * * * * * * * e016 f0a18c85,ee8096 d844df05,e016 00021305,0000e016 fa56 * * fa56 * * fa56 -16418 * * * * * * * 4fab e4beab,ee8097 4fab,e017 00004fab,0000e017 fa57 fb7b 904f fa57 c748 fa4b fa57 -16419 * * * * * * * e018 f0a293ad,ee8098 d849dced,e018 000224ed,0000e018 fa58 * * fa58 * * fa58 -16420 * * * * * * * 5008 e58088,ee8099 5008,e019 00005008,0000e019 fa59 * * fa59 * * fa59 -16421 * * * * * * * e01a f0a6b4a9,ee809a d85bdd29,e01a 00026d29,0000e01a fa5a * * fa5a * * fa5a -16422 * * * * * * * e01b f0a7aa84,ee809b d85ede84,e01b 00027a84,0000e01b fa5b * * fa5b * * fa5b -16423 * * * * * * * e01c f0a39880,ee809c d84dde00,e01c 00023600,0000e01c fa5c * * fa5c * * fa5c -16424 * * * * * * * e01d f0a4aab1,ee809d d852deb1,e01d 00024ab1,0000e01d fa5d * * fa5d * * fa5d -16425 * * * * * * * e01e f0a29493,ee809e d849dd13,e01e 00022513,0000e01e fa5e * * fa5e * * fa5e -16426 * * * * * * * * * * * * * * fa5f * * * -16427 * * * * * * * e020 f0a08dbe,ee80a0 d840df7e,e020 0002037e,0000e020 fa60 * * fa60 * * fa60 -16428 * * * * * * * 5fa4 e5bea4,ee80a1 5fa4,e021 00005fa4,0000e021 fa61 fc5a 91ed fa61 * * fa61 -16429 * * * * * * * e022 f0a08e80,ee80a2 d840df80,e022 00020380,0000e022 fa62 * * fa62 * * fa62 -16430 * * * * * * * e023 f0a08d87,ee80a3 d840df47,e023 00020347,0000e023 fa63 * * fa63 * * fa63 -16431 * * * * * * * 6edb e6bb9b,ee80a4 6edb,e024 00006edb,0000e024 fa64 * * fa64 c853 fbc0 fa64 -16432 * * * * * * * e025 f0a0909f,ee80a5 d841dc1f,e025 0002041f,0000e025 fa65 * * fa65 * * fa65 -16433 * * * * * * * 50de e5839e 50de 000050de * * * fa66 * * * -16434 * * * * * * * 5101 e58481,ee80a7 5101,e027 00005101,0000e027 fa67 fba8 8f67 fa67 * * fa67 -16435 * * * * * * * 347a e391ba,ee80a8 347a,e028 0000347a,0000e028 fa68 * * fa68 * * fa68 -16436 * * * * * * * 510e e5848e,ee80a9 510e,e029 0000510e,0000e029 fa69 fba6 8ff4 fa69 c74a fa51 fa69 -16437 * * * * * * * 986c e9a1ac,ee80aa 986c,e02a 0000986c,0000e02a fa6a feb7 90ed fa6a * fcd8 fa6a -16438 * * * * * * * 3743 e39d83,ee80ab 3743,e02b 00003743,0000e02b fa6b * * fa6b * * fa6b -16439 * * * * * * * 8416 e89096,ee80ac 8416,e02c 00008416,0000e02c fa6c * * fa6c * * fa6c -16440 * * * * * * * e02d f0a4a6a4,ee80ad d852dda4,e02d 000249a4,0000e02d fa6d * * fa6d * * fa6d -16441 * * * * * * * e02e f0a09287,ee80ae d841dc87,e02e 00020487,0000e02e fa6e * * fa6e * * fa6e -16442 * * * * * * * 5160 e585a0,ee80af 5160,e02f 00005160,0000e02f fa6f * * fa6f * * fa6f -16443 * * * * * * * e030 f0a38eb4,ee80b0 d84cdfb4,e030 000233b4,0000e030 fa70 * * fa70 * * fa70 -16444 * * * * * * * 516a e585aa,ee80b1 516a,e031 0000516a,0000e031 fa71 * * fa71 * * fa71 -16445 * * * * * * * e032 f0a0afbf,ee80b2 d842dfff,e032 00020bff,0000e032 fa72 * * fa72 * * fa72 -16446 * * * * * * * e033 f0a283bc,ee80b3 d848dcfc,e033 000220fc,0000e033 fa73 * * fa73 * * fa73 -16447 * * * * * * * e034 f0a08ba5,ee80b4 d840dee5,e034 000202e5,0000e034 fa74 * * fa74 * * fa74 -16448 * * * * * * * e035 f0a294b0,ee80b5 d849dd30,e035 00022530,0000e035 fa75 * * fa75 * * fa75 -16449 * * * * * * * e036 f0a0968e,ee80b6 d841dd8e,e036 0002058e,0000e036 fa76 * * fa76 * * fa76 -16450 * * * * * * * e037 f0a388b3,ee80b7 d84cde33,e037 00023233,0000e037 fa77 * * fa77 * * fa77 -16451 * * * * * * * e038 f0a1a683,ee80b8 d846dd83,e038 00021983,0000e038 fa78 * * fa78 * * fa78 -16452 * * * * * * * 5b82 e5ae82,ee80b9 5b82,e039 00005b82,0000e039 fa79 fc4f 8fb5 fa79 * * fa79 -16453 * * * * * * * 877d e89dbd,ee80ba 877d,e03a 0000877d,0000e03a fa7a * * fa7a * * fa7a -16454 * * * * * * * e03b f0a096b3,ee80bb d841ddb3,e03b 000205b3,0000e03b fa7b * * fa7b * * fa7b -16455 * * * * * * * e03c f0a3b299,ee80bc d84fdc99,e03c 00023c99,0000e03c fa7c * * fa7c * * fa7c -16456 * * * * * * * 51b2 e586b2,ee80bd 51b2,e03d 000051b2,0000e03d fa7d fbb6 9249 fa7d c74f fa58 fa7d -16457 * * * * * * * 51b8 e586b8,ee80be 51b8,e03e 000051b8,0000e03e fa7e * * fa7e c750 fa59 fa7e -16458 * * * * * * * 9d34 e9b4b4,ee80bf 9d34,e03f 00009d34,0000e03f faa1 * * faa1 * * faa1 -16459 * * * * * * * 51c9 e58789,ee8180 51c9,e040 000051c9,0000e040 faa2 fbb9 8e76 faa2 c751 fa5a faa2 -16460 * * * * * * * 51cf e5878f,ee8181 51cf,e041 000051cf,0000e041 faa3 * * faa3 * * faa3 -16461 * * * * * * * 51d1 e58791,ee8182 51d1,e042 000051d1,0000e042 faa4 fbba 8fc1 faa4 * * faa4 -16462 * * * * * * * 3cdc e3b39c,ee8183 3cdc,e043 00003cdc,0000e043 faa5 * * faa5 * * faa5 -16463 * * * * * * * 51d3 e58793,ee8184 51d3,e044 000051d3,0000e044 faa6 fbbb 8fba faa6 c752 fa5b faa6 -16464 * * * * * * * e045 f0a4aaa6,ee8185 d852dea6,e045 00024aa6,0000e045 faa7 * * faa7 * * faa7 -16465 * * * * * * * 51b3 e586b3,ee8186 51b3,e046 000051b3,0000e046 faa8 faec * faa8 c74e fa57 faa8 -16466 * * * * * * * 51e2 * * * * * * faa9 * * * -16467 * * * * * * * * * * * * * * faaa * * * -16468 * * * * * * * 51ed e587ad,ee8189 51ed,e049 000051ed,0000e049 faab fba9 905f faab * fa5c faab -16469 * * * * * * * 83cd e88f8d,ee818a 83cd,e04a 000083cd,0000e04a faac * * faac * * faac -16470 * * * * * * * 693e e6a4be,ee818b 693e,e04b 0000693e,0000e04b faad fcbc 8f70 faad * * faad -16471 * * * * * * * e04c f0a39cad,ee818c d84ddf2d,e04c 0002372d,0000e04c faae * * faae * * faae -16472 * * * * * * * 5f7b e5bdbb,ee818d 5f7b,e04d 00005f7b,0000e04d faaf * * faaf * * faaf -16473 * * * * * * * 520b e5888b,ee818e 520b,e04e 0000520b,0000e04e fab0 * * fab0 * * fab0 -16474 * * * * * * * 5226 e588a6,ee818f 5226,e04f 00005226,0000e04f fab1 fad7 8f75 fab1 c754 fa61 fab1 -16475 * * * * * * * 523c e588bc,ee8190 523c,e050 0000523c,0000e050 fab2 * * fab2 * * fab2 -16476 * * * * * * * 52b5 e58ab5,ee8191 52b5,e051 000052b5,0000e051 fab3 * * fab3 c758 fa66 fab3 -16477 * * * * * * * 5257 e58997,ee8192 5257,e052 00005257,0000e052 fab4 fbad 9055 fab4 * * fab4 -16478 * * * * * * * 5294 e58a94,ee8193 5294,e053 00005294,0000e053 fab5 * * fab5 * * fab5 -16479 * * * * * * * 52b9 e58ab9,ee8194 52b9,e054 000052b9,0000e054 fab6 fa51 9245 fab6 c759 fa67 fab6 -16480 * * * * * * * 52c5 e58b85,ee8195 52c5,e055 000052c5,0000e055 fab7 fbb0 8eb6 fab7 * fa68 fab7 -16481 * * * * * * * 7c15 e7b095,ee8196 7c15,e056 00007c15,0000e056 fab8 * * fab8 * * fab8 -16482 * * * * * * * 8542 e89582,ee8197 8542,e057 00008542,0000e057 fab9 * * fab9 * * fab9 -16483 * * * * * * * 52e0 e58ba0,ee8198 52e0,e058 000052e0,0000e058 faba fbb2 8eb2 faba * fa69 faba -16484 * * * * * * * 860d e8988d,ee8199 860d,e059 0000860d,0000e059 fabb * * fabb * * fabb -16485 * * * * * * * e05a f0a6ac93,ee819a d85adf13,e05a 00026b13,0000e05a fabc * * fabc * * fabc -16486 * * * * * * * * f0afa0a9 d87edc29 0002f829 * * * fabd * * * -16487 * * * * * * * e05c f0a8ab9e,ee819c d862dede,e05c 00028ade,0000e05c fabe * * fabe * * fabe -16488 * * * * * * * 5549 e59589,ee819d 5549,e05d 00005549,0000e05d fabf * * fabf * * fabf -16489 * * * * * * * 6ed9 e6bb99,ee819e 6ed9,e05e 00006ed9,0000e05e fac0 fab8 * fac0 c852 fbbf fac0 -16490 * * * * * * * e05f f0a3be80,ee819f d84fdf80,e05f 00023f80,0000e05f fac1 * * fac1 * * fac1 -16491 * * * * * * * e060 f0a0a594,ee81a0 d842dd54,e060 00020954,0000e060 fac2 * * fac2 * * fac2 -16492 * * * * * * * e061 f0a3bfac,ee81a1 d84fdfec,e061 00023fec,0000e061 fac3 * * fac3 * * fac3 -16493 * * * * * * * 5333 e58cb3,ee81a2 5333,e062 00005333,0000e062 fac4 fbc2 916a fac4 * * fac4 -16494 * * * * * * * * * * * * * * fac5 * * * -16495 * * * * * * * e064 f0a0afa2,ee81a4 d842dfe2,e064 00020be2,0000e064 fac6 * * fac6 * * fac6 -16496 * * * * * * * 6ccb e6b38b,ee81a5 6ccb,e065 00006ccb,0000e065 fac7 * * fac7 * * fac7 -16497 * * * * * * * e066 f0a19ca6,ee81a6 d845df26,e066 00021726,0000e066 fac8 * * fac8 * * fac8 -16498 * * * * * * * 681b e6a09b,ee81a7 681b,e067 0000681b,0000e067 fac9 * * fac9 * * fac9 -16499 * * * * * * * 73d5 e78f95,ee81a8 73d5,e068 000073d5,0000e068 faca * * faca * * faca -16500 * * * * * * * 604a e6818a,ee81a9 604a,e069 0000604a,0000e069 facb * * facb * * facb -16501 * * * * * * * 3eaa e3baaa,ee81aa 3eaa,e06a 00003eaa,0000e06a facc * * facc * * facc -16502 * * * * * * * 38cc e3a38c,ee81ab 38cc,e06b 000038cc,0000e06b facd * * facd * * facd -16503 * * * * * * * e06c f0a19ba8,ee81ac d845dee8,e06c 000216e8,0000e06c face * * face * * face -16504 * * * * * * * 71dd e7879d,ee81ad 71dd,e06d 000071dd,0000e06d facf * * facf * * facf -16505 * * * * * * * 44a2 e492a2,ee81ae 44a2,e06e 000044a2,0000e06e fad0 * * fad0 * * fad0 -16506 * * * * * * * 536d e58dad,ee81af 536d,e06f 0000536d,0000e06f fad1 * * fad1 * fa6b fad1 -16507 * * * * * * * 5374 e58db4,ee81b0 5374,e070 00005374,0000e070 fad2 faf2 * fad2 c75b fa6c fad2 -16508 * * * * * * * e071 f0a89aab,ee81b1 d861deab,e071 000286ab,0000e071 fad3 * * fad3 * * fad3 -16509 * * * * * * * 537e e58dbe,ee81b2 537e,e072 0000537e,0000e072 fad4 * * fad4 * fa6d fad4 -16510 * * * * * * * * f0afa0b2 d87edc32 0002f832 * * * fad5 * * * -16511 * * * * * * * e074 f0a19696,ee81b4 d845dd96,e074 00021596,0000e074 fad6 * * fad6 * * fad6 -16512 * * * * * * * e075 f0a19893,ee81b5 d845de13,e075 00021613,0000e075 fad7 * * fad7 * * fad7 -16513 * * * * * * * 77e6 e79fa6,ee81b6 77e6,e076 000077e6,0000e076 fad8 * * fad8 * * fad8 -16514 * * * * * * * 5393 e58e93,ee81b7 5393,e077 00005393,0000e077 fad9 * * fad9 c75c fa6e fad9 -16515 * * * * * * * e078 f0a8aa9b,ee81b8 d862de9b,e078 00028a9b,0000e078 fada * * fada * * fada -16516 * * * * * * * 53a0 e58ea0,ee81b9 53a0,e079 000053a0,0000e079 fadb fbc4 924c fadb * * fadb -16517 * * * * * * * 53ab e58eab,ee81ba 53ab,e07a 000053ab,0000e07a fadc fbc3 8fd9 fadc * * fadc -16518 * * * * * * * 53ae e58eae,ee81bb 53ae,e07b 000053ae,0000e07b fadd fbc8 916d fadd * * fadd -16519 * * * * * * * 73a7 e78ea7,ee81bc 73a7,e07c 000073a7,0000e07c fade * * fade * * fade -16520 * * * * * * * e07d f0a59db2,ee81bd d855df72,e07d 00025772,0000e07d fadf * * fadf * * fadf -16521 * * * * * * * 3f59 e3bd99,ee81be 3f59,e07e 00003f59,0000e07e fae0 * * fae0 * * fae0 -16522 * * * * * * * 739c e78e9c,ee81bf 739c,e07f 0000739c,0000e07f fae1 * * fae1 * * fae1 -16523 * * * * * * * 53c1 e58f81,ee8280 53c1,e080 000053c1,0000e080 fae2 fa53 925d fae2 c75e fa71 fae2 -16524 * * * * * * * 53c5 e58f85,ee8281 53c5,e081 000053c5,0000e081 fae3 * * fae3 * * fae3 -16525 * * * * * * * 6c49 e6b189,ee8282 6c49,e082 00006c49,0000e082 fae4 * * fae4 * * fae4 -16526 * * * * * * * 4e49 e4b989,ee8283 4e49,e083 00004e49,0000e083 fae5 * * fae5 * * fae5 -16527 * * * * * * * 57fe e59fbe,ee8284 57fe,e084 000057fe,0000e084 fae6 * * fae6 * * fae6 -16528 * * * * * * * 53d9 e58f99,ee8285 53d9,e085 000053d9,0000e085 fae7 fbb5 8fcf fae7 * * fae7 -16529 * * * * * * * 3aab e3aaab,ee8286 3aab,e086 00003aab,0000e086 fae8 * * fae8 * * fae8 -16530 * * * * * * * e087 f0a0ae8f,ee8287 d842df8f,e087 00020b8f,0000e087 fae9 * * fae9 * * fae9 -16531 * * * * * * * 53e0 e58fa0,ee8288 53e0,e088 000053e0,0000e088 faea fab2 8fc7 faea c760 fa74 faea -16532 * * * * * * * e089 f0a3bfab,ee8289 d84fdfeb,e089 00023feb,0000e089 faeb * * faeb * * faeb -16533 * * * * * * * e08a f0a2b6a3,ee828a d84bdda3,e08a 00022da3,0000e08a faec * * faec * * faec -16534 * * * * * * * 53f6 e58fb6,ee828b 53f6,e08b 000053f6,0000e08b faed fa46 9054 faed c761 fa75 faed -16535 * * * * * * * e08c f0a0b1b7,ee828c d843dc77,e08c 00020c77,0000e08c faee * * faee * * faee -16536 * * * * * * * 5413 e59093,ee828d 5413,e08d 00005413,0000e08d faef fa7d 8fb6 faef c763 fa77 faef -16537 * * * * * * * 7079 e781b9,ee828e 7079,e08e 00007079,0000e08e faf0 * * faf0 * * faf0 -16538 * * * * * * * 552b e594ab,ee828f 552b,e08f 0000552b,0000e08f faf1 * * faf1 * * faf1 -16539 * * * * * * * 6657 e69997,ee8290 6657,e090 00006657,0000e090 faf2 * * faf2 * * faf2 -16540 * * * * * * * 6d5b e6b59b,ee8291 6d5b,e091 00006d5b,0000e091 faf3 * * faf3 * * faf3 -16541 * * * * * * * 546d e591ad,ee8292 546d,e092 0000546d,0000e092 faf4 * * faf4 * * faf4 -16542 * * * * * * * e093 f0a6ad93,ee8293 d85adf53,e093 00026b53,0000e093 faf5 * * faf5 * * faf5 -16543 * * * * * * * e094 f0a0b5b4,ee8294 d843dd74,e094 00020d74,0000e094 faf6 * * faf6 * * faf6 -16544 * * * * * * * 555d e5959d,ee8295 555d,e095 0000555d,0000e095 faf7 * * faf7 * * faf7 -16545 * * * * * * * 548f e5928f,ee8296 548f,e096 0000548f,0000e096 faf8 fbca 8ebb faf8 c76a faa2 faf8 -16546 * * * * * * * 54a4 e592a4,ee8297 54a4,e097 000054a4,0000e097 faf9 fbd0 8eb9 faf9 * faaa faf9 -16547 * * * * * * * 47a6 e49ea6,ee8298 47a6,e098 000047a6,0000e098 fafa * * fafa * * fafa -16548 * * * * * * * e099 f0a19c8d,ee8299 d845df0d,e099 0002170d,0000e099 fafb * * fafb * * fafb -16549 * * * * * * * e09a f0a0bb9d,ee829a d843dedd,e09a 00020edd,0000e09a fafc * * fafc * * fafc -16550 * * * * * * * 3db4 e3b6b4,ee829b 3db4,e09b 00003db4,0000e09b fafd * * fafd * * fafd -16551 * * * * * * * e09c f0a0b58d,ee829c d843dd4d,e09c 00020d4d,0000e09c fafe * * fafe * * fafe -16552 * * * * * * * e09d f0a8a6bc,ee829d d862ddbc,e09d 000289bc,0000e09d fb40 * * fb40 * * fb40 -16553 * * * * * * * e09e f0a29a98,ee829e d849de98,e09e 00022698,0000e09e fb41 * * fb41 * * fb41 -16554 * * * * * * * 5547 e59587,ee829f 5547,e09f 00005547,0000e09f fb42 * * fb42 * * fb42 -16555 * * * * * * * 4ced e4b3ad,ee82a0 4ced,e0a0 00004ced,0000e0a0 fb43 * * fb43 * * fb43 -16556 * * * * * * * 542f e590af,ee82a1 542f,e0a1 0000542f,0000e0a1 fb44 * * fb44 * * fb44 -16557 * * * * * * * 7417 e79097,ee82a2 7417,e0a2 00007417,0000e0a2 fb45 * * fb45 * * fb45 -16558 * * * * * * * 5586 e59686,ee82a3 5586,e0a3 00005586,0000e0a3 fb46 fbd5 8e68 fb46 * * fb46 -16559 * * * * * * * 55a9 e596a9,ee82a4 55a9,e0a4 000055a9,0000e0a4 fb47 * * fb47 * * fb47 -16560 * * * * * * * * * * * * * * fb48 * * * -16561 * * * * * * * e0a6 f0a1a397,ee82a6 d846dcd7,e0a6 000218d7,0000e0a6 fb49 * * fb49 * * fb49 -16562 * * * * * * * e0a7 f0a480ba,ee82a7 d850dc3a,e0a7 0002403a,0000e0a7 fb4a * * fb4a * * fb4a -16563 * * * * * * * 4552 e49592,ee82a8 4552,e0a8 00004552,0000e0a8 fb4b * * fb4b * * fb4b -16564 * * * * * * * e0a9 f0a490b5,ee82a9 d851dc35,e0a9 00024435,0000e0a9 fb4c * * fb4c * * fb4c -16565 * * * * * * * 66b3 e69ab3,ee82aa 66b3,e0aa 000066b3,0000e0aa fb4d * * fb4d * * fb4d -16566 * * * * * * * e0ab f0a182b4,ee82ab d844dcb4,e0ab 000210b4,0000e0ab fb4e * * fb4e * * fb4e -16567 * * * * * * * 5637 e598b7,ee82ac 5637,e0ac 00005637,0000e0ac fb4f fbdf 8fe9 fb4f c7b7 fad3 fb4f -16568 * * * * * * * 66cd e69b8d,ee82ad 66cd,e0ad 000066cd,0000e0ad fb50 * * fb50 * * fb50 -16569 * * * * * * * e0ae f0a38a8a,ee82ae d84cde8a,e0ae 0002328a,0000e0ae fb51 * * fb51 * * fb51 -16570 * * * * * * * 66a4 e69aa4,ee82af 66a4,e0af 000066a4,0000e0af fb52 * * fb52 * * fb52 -16571 * * * * * * * * * * * * * * fb53 * * * -16572 * * * * * * * 564d e5998d,ee82b1 564d,e0b1 0000564d,0000e0b1 fb54 fbde 8fa9 fb54 c7b3 facd fb54 -16573 * * * * * * * 564f e5998f,ee82b2 564f,e0b2 0000564f,0000e0b2 fb55 faca 917d fb55 c7b5 facf fb55 -16574 * * * * * * * 78f1 e7a3b1,ee82b3 78f1,e0b3 000078f1,0000e0b3 fb56 * * fb56 * * fb56 -16575 * * * * * * * 56f1 e59bb1,ee82b4 56f1,e0b4 000056f1,0000e0b4 fb57 * * fb57 c7c9 faec fb57 -16576 * * * * * * * 9787 e99e87,ee82b5 9787,e0b5 00009787,0000e0b5 fb58 * * fb58 * * fb58 -16577 * * * * * * * 53fe e58fbe,ee82b6 53fe,e0b6 000053fe,0000e0b6 fb59 * * fb59 * * fb59 -16578 * * * * * * * 5700 e59c80,ee82b7 5700,e0b7 00005700,0000e0b7 fb5a * * fb5a * * fb5a -16579 * * * * * * * 56ef e59baf,ee82b8 56ef,e0b8 000056ef,0000e0b8 fb5b * * fb5b * * fb5b -16580 * * * * * * * 56ed e59bad,ee82b9 56ed,e0b9 000056ed,0000e0b9 fb5c fc56 8fc0 fb5c * * fb5c -16581 * * * * * * * e0ba f0a8ada6,ee82ba d862df66,e0ba 00028b66,0000e0ba fb5d * * fb5d * * fb5d -16582 * * * * * * * 3623 e398a3,ee82bb 3623,e0bb 00003623,0000e0bb fb5e * * fb5e * * fb5e -16583 * * * * * * * e0bc f0a1898f,ee82bc d844de4f,e0bc 0002124f,0000e0bc fb5f * * fb5f * * fb5f -16584 * * * * * * * 5746 e59d86,ee82bd 5746,e0bd 00005746,0000e0bd fb60 fbe8 9053 fb60 * fae1 fb60 -16585 * * * * * * * e0be f0a486a5,ee82be d850dda5,e0be 000241a5,0000e0be fb61 * * fb61 * * fb61 -16586 * * * * * * * 6c6e e6b1ae,ee82bf 6c6e,e0bf 00006c6e,0000e0bf fb62 * * fb62 * * fb62 -16587 * * * * * * * 708b e7828b,ee8380 708b,e0c0 0000708b,0000e0c0 fb63 * * fb63 * * fb63 -16588 * * * * * * * 5742 e59d82,ee8381 5742,e0c1 00005742,0000e0c1 fb64 fadc * fb64 c7c0 fadf fb64 -16589 * * * * * * * 36b1 e39ab1,ee8382 36b1,e0c2 000036b1,0000e0c2 fb65 * * fb65 * * fb65 -16590 * * * * * * * e0c3 f0a6b1be,ee8383 d85bdc7e,e0c3 00026c7e,0000e0c3 fb66 * * fb66 * * fb66 -16591 * * * * * * * 57e6 e59fa6,ee8384 57e6,e0c4 000057e6,0000e0c4 fb67 fbec 8eaa fb67 * * fb67 -16592 * * * * * * * e0c5 f0a19096,ee8385 d845dc16,e0c5 00021416,0000e0c5 fb68 * * fb68 * * fb68 -16593 * * * * * * * 5803 e5a083,ee8386 5803,e0c6 00005803,0000e0c6 fb69 fb50 * fb69 c7c5 fae5 fb69 -16594 * * * * * * * e0c7 f0a19194,ee8387 d845dc54,e0c7 00021454,0000e0c7 fb6a * * fb6a * * fb6a -16595 * * * * * * * e0c8 f0a48da3,ee8388 d850df63,e0c8 00024363,0000e0c8 fb6b * * fb6b * * fb6b -16596 * * * * * * * 5826 e5a0a6,ee8389 5826,e0c9 00005826,0000e0c9 fb6c fbf1 904c fb6c * fae7 fb6c -16597 * * * * * * * e0ca f0a4afb5,ee838a d852dff5,e0ca 00024bf5,0000e0ca fb6d * * fb6d * * fb6d -16598 * * * * * * * * e5a09f 581f 0000581f * * * fb6e * * * -16599 * * * * * * * 58aa e5a2aa,ee838c 58aa,e0cc 000058aa,0000e0cc fb6f * * fb6f * * fb6f -16600 * * * * * * * 3561 e395a1,ee838d 3561,e0cd 00003561,0000e0cd fb70 * * fb70 * * fb70 -16601 * * * * * * * 58e0 e5a3a0,ee838e 58e0,e0ce 000058e0,0000e0ce fb71 * * fb71 * faeb fb71 -16602 * * * * * * * 58dc e5a39c,ee838f 58dc,e0cf 000058dc,0000e0cf fb72 fbf2 8e64 fb72 * faea fb72 -16603 * * * * * * * e0d0 f0a188bc,ee8390 d844de3c,e0d0 0002123c,0000e0d0 fb73 * * fb73 * * fb73 -16604 * * * * * * * 58fb e5a3bb,ee8391 58fb,e0d1 000058fb,0000e0d1 fb74 fbef 9242 fb74 * * fb74 -16605 * * * * * * * 5bff e5afbf,ee8392 5bff,e0d2 00005bff,0000e0d2 fb75 * * fb75 * * fb75 -16606 * * * * * * * 5743 e59d83,ee8393 5743,e0d3 00005743,0000e0d3 fb76 * * fb76 * * fb76 -16607 * * * * * * * e0d4 f0aa8590,ee8394 d868dd50,e0d4 0002a150,0000e0d4 fb77 * * fb77 * * fb77 -16608 * * * * * * * e0d5 f0a489b8,ee8395 d850de78,e0d5 00024278,0000e0d5 fb78 * * fb78 * * fb78 -16609 * * * * * * * 93d3 e98f93,ee8396 93d3,e0d6 000093d3,0000e0d6 fb79 * * fb79 * * fb79 -16610 * * * * * * * 35a1 e396a1,ee8397 35a1,e0d7 000035a1,0000e0d7 fb7a * * fb7a * * fb7a -16611 * * * * * * * 591f e5a49f,ee8398 591f,e0d8 0000591f,0000e0d8 fb7b * * fb7b * * fb7b -16612 * * * * * * * 68a6 e6a2a6,ee8399 68a6,e0d9 000068a6,0000e0d9 fb7c * * fb7c * * fb7c -16613 * * * * * * * 36c3 e39b83,ee839a 36c3,e0da 000036c3,0000e0da fb7d * * fb7d * * fb7d -16614 * * * * * * * 6e59 e6b999,ee839b 6e59,e0db 00006e59,0000e0db fb7e * * fb7e * * fb7e -16615 * * * * * * * e0dc f0a198be,ee839c d845de3e,e0dc 0002163e,0000e0dc fba1 * * fba1 * * fba1 -16616 * * * * * * * 5a24 e5a8a4,ee839d 5a24,e0dd 00005a24,0000e0dd fba2 * * fba2 * * fba2 -16617 * * * * * * * * * * * * * * fba3 * * * -16618 * * * * * * * e0df f0a19a92,ee839f d845de92,e0df 00021692,0000e0df fba4 * * fba4 * * fba4 -16619 * * * * * * * 8505 e89485,ee83a0 8505,e0e0 00008505,0000e0e0 fba5 * * fba5 * * fba5 -16620 * * * * * * * 59c9 e5a789,ee83a1 59c9,e0e1 000059c9,0000e0e1 fba6 * * fba6 * * fba6 -16621 * * * * * * * e0e2 f0a0b58e,ee83a2 d843dd4e,e0e2 00020d4e,0000e0e2 fba7 * * fba7 * * fba7 -16622 * * * * * * * e0e3 f0a6b281,ee83a3 d85bdc81,e0e3 00026c81,0000e0e3 fba8 * * fba8 * * fba8 -16623 * * * * * * * e0e4 f0a6b4aa,ee83a4 d85bdd2a,e0e4 00026d2a,0000e0e4 fba9 * * fba9 * * fba9 -16624 * * * * * * * e0e5 f0a19f9c,ee83a5 d845dfdc,e0e5 000217dc,0000e0e5 fbaa * * fbaa * * fbaa -16625 * * * * * * * 59d9 e5a799,ee83a6 59d9,e0e6 000059d9,0000e0e6 fbab fbf6 8ff3 fbab * faee fbab -16626 * * * * * * * e0e7 f0a19fbb,ee83a7 d845dffb,e0e7 000217fb,0000e0e7 fbac * * fbac * * fbac -16627 * * * * * * * e0e8 f0a19eb2,ee83a8 d845dfb2,e0e8 000217b2,0000e0e8 fbad * * fbad * * fbad -16628 * * * * * * * e0e9 f0a6b6a6,ee83a9 d85bdda6,e0e9 00026da6,0000e0e9 fbae * * fbae * * fbae -16629 * * * * * * * 6d71 e6b5b1,ee83aa 6d71,e0ea 00006d71,0000e0ea fbaf * * fbaf * * fbaf -16630 * * * * * * * e0eb f0a1a0a8,ee83ab d846dc28,e0eb 00021828,0000e0eb fbb0 * * fbb0 * * fbb0 -16631 * * * * * * * e0ec f0a19b95,ee83ac d845ded5,e0ec 000216d5,0000e0ec fbb1 * * fbb1 * * fbb1 -16632 * * * * * * * 59f9 e5a7b9,ee83ad 59f9,e0ed 000059f9,0000e0ed fbb2 fbf8 91a7 fbb2 * * fbb2 -16633 * * * * * * * e0ee f0a6b985,ee83ae d85bde45,e0ee 00026e45,0000e0ee fbb3 * * fbb3 * * fbb3 -16634 * * * * * * * 5aab e5aaab,ee83af 5aab,e0ef 00005aab,0000e0ef fbb4 * * fbb4 * * fbb4 -16635 * * * * * * * 5a63 e5a9a3,ee83b0 5a63,e0f0 00005a63,0000e0f0 fbb5 fbf9 8e78 fbb5 * * fbb5 -16636 * * * * * * * 36e6 e39ba6,ee83b1 36e6,e0f1 000036e6,0000e0f1 fbb6 * * fbb6 * * fbb6 -16637 * * * * * * * e0f2 f0a4a6a9,ee83b2 d852dda9,e0f2 000249a9,0000e0f2 fbb7 * * fbb7 * * fbb7 -16638 * * * * * * * * * * * * * * fbb8 * * * -16639 * * * * * * * 3708 e39c88,ee83b4 3708,e0f4 00003708,0000e0f4 fbb9 * * fbb9 * * fbb9 -16640 * * * * * * * 5a96 e5aa96,ee83b5 5a96,e0f5 00005a96,0000e0f5 fbba * * fbba c7ca faef fbba -16641 * * * * * * * 7465 e791a5,ee83b6 7465,e0f6 00007465,0000e0f6 fbbb * * fbbb * * fbbb -16642 * * * * * * * 5ad3 e5ab93,ee83b7 5ad3,e0f7 00005ad3,0000e0f7 fbbc * * fbbc * * fbbc -16643 * * * * * * * e0f8 f0a6bea1,ee83b8 d85bdfa1,e0f8 00026fa1,0000e0f8 fbbd * * fbbd * * fbbd -16644 * * * * * * * e0f9 f0a29594,ee83b9 d849dd54,e0f9 00022554,0000e0f9 fbbe * * fbbe * * fbbe -16645 * * * * * * * e0fb f0a1a491,ee83bb d846dd11,e0fb 00021911,0000e0fb fbc0 * * fbc0 * * fbc0 -16646 * * * * * * * 3732 e39cb2,ee83bc 3732,e0fc 00003732,0000e0fc fbc1 * * fbc1 * * fbc1 -16647 * * * * * * * e0fd f0a19ab8,ee83bd d845deb8,e0fd 000216b8,0000e0fd fbc2 * * fbc2 * * fbc2 -16648 * * * * * * * 5e83 e5ba83,ee83be 5e83,e0fe 00005e83,0000e0fe fbc3 * * fbc3 * * fbc3 -16649 * * * * * * * 52d0 e58b90,ee83bf 52d0,e0ff 000052d0,0000e0ff fbc4 * * fbc4 * * fbc4 -16650 * * * * * * * 5b76 e5adb6,ee8480 5b76,e100 00005b76,0000e100 fbc5 * * fbc5 * * fbc5 -16651 * * * * * * * 6588 e69688,ee8481 6588,e101 00006588,0000e101 fbc6 * * fbc6 * * fbc6 -16652 * * * * * * * 5b7c e5adbc,ee8482 5b7c,e102 00005b7c,0000e102 fbc7 * * fbc7 * * fbc7 -16653 * * * * * * * e103 f0a7a88e,ee8483 d85ede0e,e103 00027a0e,0000e103 fbc8 * * fbc8 * * fbc8 -16654 * * * * * * * 4004 e48084,ee8484 4004,e104 00004004,0000e104 fbc9 * * fbc9 * * fbc9 -16655 * * * * * * * 485d e4a19d,ee8485 485d,e105 0000485d,0000e105 fbca * * fbca * * fbca -16656 * * * * * * * e106 f0a08884,ee8486 d840de04,e106 00020204,0000e106 fbcb * * fbcb * * fbcb -16657 * * * * * * * 5bd5 e5af95,ee8487 5bd5,e107 00005bd5,0000e107 fbcc * * fbcc * * fbcc -16658 * * * * * * * e109 f0a1a8b4,ee8489 d846de34,e109 00021a34,0000e109 fbce * * fbce * * fbce -16659 * * * * * * * e10a f0a5a78c,ee848a d856ddcc,e10a 000259cc,0000e10a fbcf * * fbcf * * fbcf -16660 * * * * * * * e10b f0a096a5,ee848b d841dda5,e10b 000205a5,0000e10b fbd0 * * fbd0 * * fbd0 -16661 * * * * * * * 5bf3 e5afb3,ee848c 5bf3,e10c 00005bf3,0000e10c fbd1 * * fbd1 * * fbd1 -16662 * * * * * * * 5b9d e5ae9d,ee848d 5b9d,e10d 00005b9d,0000e10d fbd2 fa52 * fbd2 c7d1 faf6 fbd2 -16663 * * * * * * * 4d10 e4b490,ee848e 4d10,e10e 00004d10,0000e10e fbd3 * * fbd3 * * fbd3 -16664 * * * * * * * 5c05 e5b085,ee848f 5c05,e10f 00005c05,0000e10f fbd4 fbfb 924d fbd4 c7d3 fafa fbd4 -16665 * * * * * * * e110 f0a1ad84,ee8490 d846df44,e110 00021b44,0000e110 fbd5 * * fbd5 * * fbd5 -16666 * * * * * * * 5c13 e5b093,ee8491 5c13,e111 00005c13,0000e111 fbd6 * * fbd6 * * fbd6 -16667 * * * * * * * 73ce e78f8e,ee8492 73ce,e112 000073ce,0000e112 fbd7 * * fbd7 * * fbd7 -16668 * * * * * * * 5c14 e5b094,ee8493 5c14,e113 00005c14,0000e113 fbd8 * * fbd8 * * fbd8 -16669 * * * * * * * e114 f0a1b2a5,ee8494 d847dca5,e114 00021ca5,0000e114 fbd9 * * fbd9 * * fbd9 -16670 * * * * * * * e115 f0a6aca8,ee8495 d85adf28,e115 00026b28,0000e115 fbda * * fbda * * fbda -16671 * * * * * * * 5c49 e5b189,ee8496 5c49,e116 00005c49,0000e116 fbdb * * fbdb c7d2 faf8 fbdb -16672 * * * * * * * 48dd e4a39d,ee8497 48dd,e117 000048dd,0000e117 fbdc * * fbdc * * fbdc -16673 * * * * * * * 5c85 e5b285,ee8498 5c85,e118 00005c85,0000e118 fbdd * * fbdd * * fbdd -16674 * * * * * * * 5ce9 e5b3a9,ee8499 5ce9,e119 00005ce9,0000e119 fbde fc42 91aa fbde * fafe fbde -16675 * * * * * * * 5cef e5b3af,ee849a 5cef,e11a 00005cef,0000e11a fbdf fa6b * fbdf c7d4 fafd fbdf -16676 * * * * * * * 5d8b e5b68b,ee849b 5d8b,e11b 00005d8b,0000e11b fbe0 fee5 8e7c fbe0 * * fbe0 -16677 * * * * * * * e11c f0a1b7b9,ee849c d847ddf9,e11c 00021df9,0000e11c fbe1 * * fbe1 * * fbe1 -16678 * * * * * * * e11d f0a1b8b7,ee849d d847de37,e11d 00021e37,0000e11d fbe2 * * fbe2 * * fbe2 -16679 * * * * * * * 5d10 e5b490,ee849e 5d10,e11e 00005d10,0000e11e fbe3 * * fbe3 c7d5 fb40 fbe3 -16680 * * * * * * * 5d18 e5b498,ee849f 5d18,e11f 00005d18,0000e11f fbe4 * * fbe4 * * fbe4 -16681 * * * * * * * 5d46 e5b586,ee84a0 5d46,e120 00005d46,0000e120 fbe5 fc44 904b fbe5 c7d6 fb42 fbe5 -16682 * * * * * * * e121 f0a1baa4,ee84a1 d847dea4,e121 00021ea4,0000e121 fbe6 * * fbe6 * * fbe6 -16683 * * * * * * * 5cba e5b2ba,ee84a2 5cba,e122 00005cba,0000e122 fbe7 * * fbe7 * * fbe7 -16684 * * * * * * * 5dd7 e5b797,ee84a3 5dd7,e123 00005dd7,0000e123 fbe8 * * fbe8 * * fbe8 -16685 * * * * * * * 82fc e88bbc,ee84a4 82fc,e124 000082fc,0000e124 fbe9 * * fbe9 * * fbe9 -16686 * * * * * * * 382d e3a0ad,ee84a5 382d,e125 0000382d,0000e125 fbea * * fbea * * fbea -16687 * * * * * * * e126 f0a4a481,ee84a6 d852dd01,e126 00024901,0000e126 fbeb * * fbeb * * fbeb -16688 * * * * * * * e127 f0a28189,ee84a7 d848dc49,e127 00022049,0000e127 fbec * * fbec * * fbec -16689 * * * * * * * e128 f0a285b3,ee84a8 d848dd73,e128 00022173,0000e128 fbed * * fbed * * fbed -16690 * * * * * * * 8287 e88a87,ee84a9 8287,e129 00008287,0000e129 fbee * * fbee * * fbee -16691 * * * * * * * 3836 e3a0b6,ee84aa 3836,e12a 00003836,0000e12a fbef * * fbef * * fbef -16692 * * * * * * * 3bc2 e3af82,ee84ab 3bc2,e12b 00003bc2,0000e12b fbf0 * * fbf0 * * fbf0 -16693 * * * * * * * 5e2e e5b8ae,ee84ac 5e2e,e12c 00005e2e,0000e12c fbf1 fc4b 91ad fbf1 * * fbf1 -16694 * * * * * * * 6a8a e6aa8a,ee84ad 6a8a,e12d 00006a8a,0000e12d fbf2 * * fbf2 * * fbf2 -16695 * * * * * * * * * * * * * * fbf3 * * * -16696 * * * * * * * * ee84af e12f 0000e12f fbf4 * 91af fbf4 * fb4a fbf4 -16697 * * * * * * * e130 f0a492bc,ee84b0 d851dcbc,e130 000244bc,0000e130 fbf5 * * fbf5 * * fbf5 -16698 * * * * * * * e131 f0a0b393,ee84b1 d843dcd3,e131 00020cd3,0000e131 fbf6 * * fbf6 * * fbf6 -16699 * * * * * * * 53a6 e58ea6,ee84b2 53a6,e132 000053a6,0000e132 fbf7 fbc6 9058 fbf7 * * fbf7 -16700 * * * * * * * 4eb7 e4bab7,ee84b3 4eb7,e133 00004eb7,0000e133 fbf8 * * fbf8 * * fbf8 -16701 * * * * * * * 5ed0 * * * * * * fbf9 * * * -16702 * * * * * * * 53a8 e58ea8,ee84b5 53a8,e135 000053a8,0000e135 fbfa fbc5 9057 fbfa * * fbfa -16703 * * * * * * * e136 f0a19db1,ee84b6 d845df71,e136 00021771,0000e136 fbfb * * fbfb * * fbfb -16704 * * * * * * * 5e09 e5b889,ee84b7 5e09,e137 00005e09,0000e137 fbfc * * fbfc * * fbfc -16705 * * * * * * * * ee84b8 e138 0000e138 fbfd * * fbfd * * fbfd -16706 * * * * * * * e139 f0a89282,ee84b9 d861dc82,e139 00028482,0000e139 fbfe * * fbfe * * fbfe -16707 * * * * * * * 5ef9 e5bbb9,ee84ba 5ef9,e13a 00005ef9,0000e13a fc40 fc55 904e fc40 c7db fb4f fc40 -16708 * * * * * * * 5efb e5bbbb,ee84bb 5efb,e13b 00005efb,0000e13b fc41 faae 9261 fc41 c7dd fb51 fc41 -16709 * * * * * * * 38a0 e3a2a0,ee84bc 38a0,e13c 000038a0,0000e13c fc42 * * fc42 * * fc42 -16710 * * * * * * * 5efc e5bbbc,ee84bd 5efc,e13d 00005efc,0000e13d fc43 faaf 8fa4 fc43 c7dc fb50 fc43 -16711 * * * * * * * 683e e6a0be,ee84be 683e,e13e 0000683e,0000e13e fc44 * * fc44 * * fc44 -16712 * * * * * * * 941b e9909b,ee84bf 941b,e13f 0000941b,0000e13f fc45 * * fc45 * * fc45 -16713 * * * * * * * 5f0d e5bc8d,ee8580 5f0d,e140 00005f0d,0000e140 fc46 fa41 91b1 fc46 c7de fb52 fc46 -16714 * * * * * * * e141 f0a08781,ee8581 d840ddc1,e141 000201c1,0000e141 fc47 * * fc47 * * fc47 -16715 * * * * * * * e142 f0afa294,ee8582 d87edc94,e142 0002f894,0000e142 fc48 * * fc48 * * fc48 -16716 * * * * * * * 3ade e3ab9e,ee8583 3ade,e143 00003ade,0000e143 fc49 * * fc49 * * fc49 -16717 * * * * * * * e145 f0a18cba,ee8585 d844df3a,e145 0002133a,0000e145 fc4b * * fc4b * * fc4b -16718 * * * * * * * 5f3a e5bcba,ee8586 5f3a,e146 00005f3a,0000e146 fc4c * * fc4c * * fc4c -16719 * * * * * * * e147 f0a6a288,ee8587 d85adc88,e147 00026888,0000e147 fc4d * * fc4d * * fc4d -16720 * * * * * * * e148 f0a28f90,ee8588 d848dfd0,e148 000223d0,0000e148 fc4e * * fc4e * * fc4e -16721 * * * * * * * e14a f0a291b1,ee858a d849dc71,e14a 00022471,0000e14a fc50 * * fc50 * * fc50 -16722 * * * * * * * 5f63 e5bda3,ee858b 5f63,e14b 00005f63,0000e14b fc51 * * fc51 * * fc51 -16723 * * * * * * * e14d f0a6b9ae,ee858d d85bde6e,e14d 00026e6e,0000e14d fc53 * * fc53 * * fc53 -16724 * * * * * * * 5f72 e5bdb2,ee858e 5f72,e14e 00005f72,0000e14e fc54 * * fc54 * * fc54 -16725 * * * * * * * 9340 e98d80,ee858f 9340,e14f 00009340,0000e14f fc55 * * fc55 * * fc55 -16726 * * * * * * * e150 f0a8a8b6,ee8590 d862de36,e150 00028a36,0000e150 fc56 * * fc56 * * fc56 -16727 * * * * * * * 5fa7 e5bea7,ee8591 5fa7,e151 00005fa7,0000e151 fc57 fc5b 924e fc57 c7e0 fb54 fc57 -16728 * * * * * * * 5db6 e5b6b6,ee8592 5db6,e152 00005db6,0000e152 fc58 * * fc58 * * fc58 -16729 * * * * * * * 3d5f e3b59f,ee8593 3d5f,e153 00003d5f,0000e153 fc59 * * fc59 * * fc59 -16730 * * * * * * * e154 f0a58990,ee8594 d854de50,e154 00025250,0000e154 fc5a * * fc5a * * fc5a -16731 * * * * * * * e155 f0a1bdaa,ee8595 d847df6a,e155 00021f6a,0000e155 fc5b * * fc5b * * fc5b -16732 * * * * * * * e156 f0a783b8,ee8596 d85cdcf8,e156 000270f8,0000e156 fc5c * * fc5c * * fc5c -16733 * * * * * * * e157 f0a299a8,ee8597 d849de68,e157 00022668,0000e157 fc5d * * fc5d * * fc5d -16734 * * * * * * * 91d6 e98796,ee8598 91d6,e158 000091d6,0000e158 fc5e * * fc5e * * fc5e -16735 * * * * * * * e159 f0a08a9e,ee8599 d840de9e,e159 0002029e,0000e159 fc5f * * fc5f * * fc5f -16736 * * * * * * * e15a f0a8a8a9,ee859a d862de29,e15a 00028a29,0000e15a fc60 * * fc60 * * fc60 -16737 * * * * * * * 6031 e680b1,ee859b 6031,e15b 00006031,0000e15b fc61 fa59 8eae fc61 c7e1 fb56 fc61 -16738 * * * * * * * 6685 e69a85,ee859c 6685,e15c 00006685,0000e15c fc62 * * fc62 * * fc62 -16739 * * * * * * * 3963 e3a5a3,ee859e 3963,e15e 00003963,0000e15e fc64 * * fc64 * * fc64 -16740 * * * * * * * 3dc7 e3b787,ee859f 3dc7,e15f 00003dc7,0000e15f fc65 * * fc65 * * fc65 -16741 * * * * * * * 3639 e398b9,ee85a0 3639,e160 00003639,0000e160 fc66 * * fc66 * * fc66 -16742 * * * * * * * 5790 e59e90,ee85a1 5790,e161 00005790,0000e161 fc67 * * fc67 * * fc67 -16743 * * * * * * * e162 f0a29eb4,ee85a2 d849dfb4,e162 000227b4,0000e162 fc68 * * fc68 * * fc68 -16744 * * * * * * * 7971 e7a5b1,ee85a3 7971,e163 00007971,0000e163 fc69 * * fc69 * * fc69 -16745 * * * * * * * 3e40 e3b980,ee85a4 3e40,e164 00003e40,0000e164 fc6a * * fc6a * * fc6a -16746 * * * * * * * 609e e6829e,ee85a5 609e,e165 0000609e,0000e165 fc6b fabf 925f fc6b c7e3 fb58 fc6b -16747 * * * * * * * * * * * * * * fc6c * * * -16748 * * * * * * * 60b3 e683aa 60ea 000060ea * fc64 8fbf fc6d * * * -16749 * * * * * * * e168 f0a4a682,ee85a8 d852dd82,e168 00024982,0000e168 fc6e * * fc6e * * fc6e -16750 * * * * * * * e169 f0a4a68f,ee85a9 d852dd8f,e169 0002498f,0000e169 fc6f * * fc6f * * fc6f -16751 * * * * * * * e16a f0a7a993,ee85aa d85ede53,e16a 00027a53,0000e16a fc70 * * fc70 * * fc70 -16752 * * * * * * * 74a4 e792a4,ee85ab 74a4,e16b 000074a4,0000e16b fc71 * * fc71 * * fc71 -16753 * * * * * * * 50e1 e583a1,ee85ac 50e1,e16c 000050e1,0000e16c fc72 * * fc72 * * fc72 -16754 * * * * * * * 5aa0 e5aaa0,ee85ad 5aa0,e16d 00005aa0,0000e16d fc73 * * fc73 * * fc73 -16755 * * * * * * * 6164 e685a4,ee85ae 6164,e16e 00006164,0000e16e fc74 fc71 8f7d fc74 * * fc74 -16756 * * * * * * * 6142 e68582,ee85b0 6142,e170 00006142,0000e170 fc76 fc6a 9056 fc76 * * fc76 -16757 * * * * * * * e171 f0afa2a6,ee85b1 d87edca6,e171 0002f8a6,0000e171 fc77 * * fc77 * * fc77 -16758 * * * * * * * e172 f0a6bb92,ee85b2 d85bded2,e172 00026ed2,0000e172 fc78 * * fc78 * * fc78 -16759 * * * * * * * 6181 e68681,ee85b3 6181,e173 00006181,0000e173 fc79 * * fc79 * * fc79 -16760 * * * * * * * 51f4 e587b4,ee85b4 51f4,e174 000051f4,0000e174 fc7a fbaa 8fdd fc7a * fa5d fc7a -16761 * * * * * * * e175 f0a09996,ee85b5 d841de56,e175 00020656,0000e175 fc7b * * fc7b * * fc7b -16762 * * * * * * * 6187 e68687,ee85b6 6187,e176 00006187,0000e176 fc7c * * fc7c * * fc7c -16763 * * * * * * * 5baa e5aeaa,ee85b7 5baa,e177 00005baa,0000e177 fc7d * * fc7d * * fc7d -16764 * * * * * * * e178 f0a3beb7,ee85b8 d84fdfb7,e178 00023fb7,0000e178 fc7e * * fc7e * * fc7e -16765 * * * * * * * e179 f0a2a19f,ee85b9 d84adc5f,e179 0002285f,0000e179 fca1 * * fca1 * * fca1 -16766 * * * * * * * 61d3 e68793,ee85ba 61d3,e17a 000061d3,0000e17a fca2 * * fca2 * * fca2 -16767 * * * * * * * e17b f0a8ae9d,ee85bb d862df9d,e17b 00028b9d,0000e17b fca3 * * fca3 * * fca3 -16768 * * * * * * * e17c f0a9a59d,ee85bc d866dd5d,e17c 0002995d,0000e17c fca4 * * fca4 * * fca4 -16769 * * * * * * * 61d0 e68790,ee85bd 61d0,e17d 000061d0,0000e17d fca5 * * fca5 * * fca5 -16770 * * * * * * * 3932 e3a4b2,ee85be 3932,e17e 00003932,0000e17e fca6 * * fca6 * * fca6 -16771 * * * * * * * e17f f0a2a680,ee85bf d84add80,e17f 00022980,0000e17f fca7 * * fca7 * * fca7 -16772 * * * * * * * e180 f0a2a381,ee8680 d84adcc1,e180 000228c1,0000e180 fca8 * * fca8 * * fca8 -16773 * * * * * * * 6023 e680a3,ee8681 6023,e181 00006023,0000e181 fca9 * * fca9 * * fca9 -16774 * * * * * * * 615c e6859c,ee8682 615c,e182 0000615c,0000e182 fcaa fc72 91b6 fcaa c7e5 fb5b fcaa -16775 * * * * * * * 651e e6949e,ee8683 651e,e183 0000651e,0000e183 fcab fae6 91ba fcab c7f9 fb76 fcab -16776 * * * * * * * 638b e68e8b,ee8684 638b,e184 0000638b,0000e184 fcac * * fcac * * fcac -16777 * * * * * * * e185 f0a08498,ee8685 d840dd18,e185 00020118,0000e185 fcad * * fcad * * fcad -16778 * * * * * * * 62c5 e68b85,ee8686 62c5,e186 000062c5,0000e186 fcae fa50 * fcae c7e9 fb62 fcae -16779 * * * * * * * e187 f0a19db0,ee8687 d845df70,e187 00021770,0000e187 fcaf * * fcaf * * fcaf -16780 * * * * * * * 62d5 e68b95,ee8688 62d5,e188 000062d5,0000e188 fcb0 fc7b 8fb7 fcb0 * * fcb0 -16781 * * * * * * * e189 f0a2b88d,ee8689 d84bde0d,e189 00022e0d,0000e189 fcb1 * * fcb1 * * fcb1 -16782 * * * * * * * 636c e68dac,ee868a 636c,e18a 0000636c,0000e18a fcb2 fc7e 8fe1 fcb2 * fb69 fcb2 -16783 * * * * * * * e18b f0a4a79f,ee868b d852dddf,e18b 000249df,0000e18b fcb3 * * fcb3 * * fcb3 -16784 * * * * * * * 3a17 e3a897,ee868c 3a17,e18c 00003a17,0000e18c fcb4 * * fcb4 * * fcb4 -16785 * * * * * * * 6438 e690b8,ee868d 6438,e18d 00006438,0000e18d fcb5 * * fcb5 * * fcb5 -16786 * * * * * * * 63f8 e68fb8,ee868e 63f8,e18e 000063f8,0000e18e fcb6 faa8 91b9 fcb6 c7f0 fb6a fcb6 -16787 * * * * * * * e18f f0a18e8e,ee868f d844df8e,e18f 0002138e,0000e18f fcb7 * * fcb7 * * fcb7 -16788 * * * * * * * e190 f0a19fbc,ee8690 d845dffc,e190 000217fc,0000e190 fcb8 * * fcb8 * * fcb8 -16789 * * * * * * * 6f8a e6be8a,ee8692 6f8a,e192 00006f8a,0000e192 fcba * * fcba * * fcba -16790 * * * * * * * e193 f0a2b8b6,ee8693 d84bde36,e193 00022e36,0000e193 fcbb * * fcbb * * fcbb -16791 * * * * * * * * * * * * * * fcbd * * * -16792 * * * * * * * e196 f0a59c9d,ee8696 d855df1d,e196 0002571d,0000e196 fcbe * * fcbe * * fcbe -16793 * * * * * * * 64e1 e693a1,ee8697 64e1,e197 000064e1,0000e197 fcbf * * fcbf * fb75 fcbf -16794 * * * * * * * 64e5 e693a5,ee8698 64e5,e198 000064e5,0000e198 fcc0 * * fcc0 * * fcc0 -16795 * * * * * * * 947b e991bb,ee8699 947b,e199 0000947b,0000e199 fcc1 * * fcc1 * * fcc1 -16796 * * * * * * * 3a66 e3a9a6,ee869a 3a66,e19a 00003a66,0000e19a fcc2 * * fcc2 * * fcc2 -16797 * * * * * * * 643a e690ba,ee869b 643a,e19b 0000643a,0000e19b fcc3 fca2 9260 fcc3 c7f4 fb6f fcc3 -16798 * * * * * * * 3a57 e3a997,ee869c 3a57,e19c 00003a57,0000e19c fcc4 fa57 * fcc4 c7f8 fb74 fcc4 -16799 * * * * * * * 654d e6958d,ee869d 654d,e19d 0000654d,0000e19d fcc5 * * fcc5 * fb78 fcc5 -16800 * * * * * * * 6f16 e6bc96,ee869e 6f16,e19e 00006f16,0000e19e fcc6 * * fcc6 * * fcc6 -16801 * * * * * * * e19f f0a4a8a8,ee869f d852de28,e19f 00024a28,0000e19f fcc7 * * fcc7 * * fcc7 -16802 * * * * * * * e1a0 f0a4a8a3,ee86a0 d852de23,e1a0 00024a23,0000e1a0 fcc8 * * fcc8 * * fcc8 -16803 * * * * * * * 6585 e69685,ee86a1 6585,e1a1 00006585,0000e1a1 fcc9 fcf6 8f69 fcc9 * * fcc9 -16804 * * * * * * * 656d e695ad,ee86a2 656d,e1a2 0000656d,0000e1a2 fcca * * fcca * * fcca -16805 * * * * * * * 655f e6959f,ee86a3 655f,e1a3 0000655f,0000e1a3 fccb * * fccb * * fccb -16806 * * * * * * * * * * * * * * fccc * * * -16807 * * * * * * * 65b5 e696b5,ee86a5 65b5,e1a5 000065b5,0000e1a5 fccd * * fccd * * fccd -16808 * * * * * * * e1a6 f0a4a580,ee86a6 d852dd40,e1a6 00024940,0000e1a6 fcce * * fcce * * fcce -16809 * * * * * * * 4b37 e4acb7,ee86a7 4b37,e1a7 00004b37,0000e1a7 fccf * * fccf * * fccf -16810 * * * * * * * 65d1 e69791,ee86a8 65d1,e1a8 000065d1,0000e1a8 fcd0 * * fcd0 * * fcd0 -16811 * * * * * * * 40d8 e48398,ee86a9 40d8,e1a9 000040d8,0000e1a9 fcd1 * * fcd1 * * fcd1 -16812 * * * * * * * e1aa f0a1a0a9,ee86aa d846dc29,e1aa 00021829,0000e1aa fcd2 * * fcd2 * * fcd2 -16813 * * * * * * * * ee86ab e1ab 0000e1ab fcd3 * 91a8 fcd3 * * fcd3 -16814 * * * * * * * 65e3 e697a3,ee86ac 65e3,e1ac 000065e3,0000e1ac fcd4 * * fcd4 * * fcd4 -16815 * * * * * * * 5fdf e5bf9f,ee86ad 5fdf,e1ad 00005fdf,0000e1ad fcd5 * * fcd5 * * fcd5 -16816 * * * * * * * e1ae f0a39080,ee86ae d84ddc00,e1ae 00023400,0000e1ae fcd6 * * fcd6 * * fcd6 -16817 * * * * * * * 6618 e69898,ee86af 6618,e1af 00006618,0000e1af fcd7 * * fcd7 * * fcd7 -16818 * * * * * * * e1b0 ee86b0,f0a387b7 d84cddf7,e1b0 0000e1b0,000231f7 fcd8 * * fcd8 * * fcd8 -16819 * * * * * * * e1b1 ee86b1,f0a387b8 d84cddf8,e1b1 0000e1b1,000231f8 fcd9 * * fcd9 * * fcd9 -16820 * * * * * * * 6644 e69984,ee86b2 6644,e1b2 00006644,0000e1b2 fcda * * fcda * * fcda -16821 * * * * * * * e1b3 ee86b3,f0a386a4 d84cdda4,e1b3 0000e1b3,000231a4 fcdb * * fcdb * * fcdb -16822 * * * * * * * e1b4 ee86b4,f0a386a5 d84cdda5,e1b4 0000e1b4,000231a5 fcdc * * fcdc * * fcdc -16823 * * * * * * * 664b e6998b,ee86b5 664b,e1b5 0000664b,0000e1b5 fcdd fca9 8fde fcdd * * fcdd -16824 * * * * * * * e1b6 f0a0b9b5,ee86b6 d843de75,e1b6 00020e75,0000e1b6 fcde * * fcde * * fcde -16825 * * * * * * * 6667 e699a7,ee86b7 6667,e1b7 00006667,0000e1b7 fcdf fca7 8fd3 fcdf * * fcdf -16826 * * * * * * * e1b8 f0a587a6,ee86b8 d854dde6,e1b8 000251e6,0000e1b8 fce0 * * fce0 * * fce0 -16827 * * * * * * * 6673 e699b3,ee86b9 6673,e1b9 00006673,0000e1b9 fce1 * * fce1 * * fce1 -16828 * * * * * * * * efa892 fa12 0000fa12 * * * fce2 * * * -16829 * * * * * * * e1bc f0a388b1,ee86bc d84cde31,e1bc 00023231,0000e1bc fce4 * * fce4 * * fce4 -16830 * * * * * * * e1bd f0a897b4,ee86bd d861ddf4,e1bd 000285f4,0000e1bd fce5 * * fce5 * * fce5 -16831 * * * * * * * e1be f0a38788,ee86be d84cddc8,e1be 000231c8,0000e1be fce6 * * fce6 * * fce6 -16832 * * * * * * * e1bf f0a58c93,ee86bf d854df13,e1bf 00025313,0000e1bf fce7 * * fce7 * * fce7 -16833 * * * * * * * 77c5 e79f85,ee8780 77c5,e1c0 000077c5,0000e1c0 fce8 * * fce8 * * fce8 -16834 * * * * * * * e1c1 f0a2a3b7,ee8781 d84adcf7,e1c1 000228f7,0000e1c1 fce9 * * fce9 * * fce9 -16835 * * * * * * * 99a4 e9a6a4,ee8782 99a4,e1c2 000099a4,0000e1c2 fcea * * fcea * * fcea -16836 * * * * * * * 6702 e69c82,ee8783 6702,e1c3 00006702,0000e1c3 fceb * * fceb * * fceb -16837 * * * * * * * e1c4 f0a48e9c,ee8784 d850df9c,e1c4 0002439c,0000e1c4 fcec * * fcec * * fcec -16838 * * * * * * * e1c5 f0a4a8a1,ee8785 d852de21,e1c5 00024a21,0000e1c5 fced * * fced * * fced -16839 * * * * * * * 69fa e6a7ba,ee8787 69fa,e1c7 000069fa,0000e1c7 fcef fcc2 91c3 fcef * * fcef -16840 * * * * * * * e1c8 f0a39f82,ee8788 d84ddfc2,e1c8 000237c2,0000e1c8 fcf0 * * fcf0 * * fcf0 -16841 * * * * * * * * f0afa39b d87edcdb 0002f8db * * * fcf1 * * * -16842 * * * * * * * 6767 e69da7,ee878a 6767,e1ca 00006767,0000e1ca fcf2 fb4e * fcf2 c844 fba9 fcf2 -16843 * * * * * * * 6762 e69da2,ee878b 6762,e1cb 00006762,0000e1cb fcf3 * * fcf3 * * fcf3 -16844 * * * * * * * e1cc f0a4878d,ee878c d850ddcd,e1cc 000241cd,0000e1cc fcf4 * * fcf4 * * fcf4 -16845 * * * * * * * e1cd f0a983ad,ee878d d864dced,e1cd 000290ed,0000e1cd fcf5 * * fcf5 * * fcf5 -16846 * * * * * * * 67d7 e69f97,ee878e 67d7,e1ce 000067d7,0000e1ce fcf6 * * fcf6 * * fcf6 -16847 * * * * * * * 44e9 e493a9,ee878f 44e9,e1cf 000044e9,0000e1cf fcf7 * * fcf7 * * fcf7 -16848 * * * * * * * 6822 e6a0a2,ee8790 6822,e1d0 00006822,0000e1d0 fcf8 faf5 9050 fcf8 c846 fbac fcf8 -16849 * * * * * * * 6e50 e6b990,ee8791 6e50,e1d1 00006e50,0000e1d1 fcf9 * * fcf9 * * fcf9 -16850 * * * * * * * 923c e988bc,ee8792 923c,e1d2 0000923c,0000e1d2 fcfa * * fcfa * * fcfa -16851 * * * * * * * 6801 e6a081,ee8793 6801,e1d3 00006801,0000e1d3 fcfb * * fcfb * * fcfb -16852 * * * * * * * e1d4 f0a38fa6,ee8794 d84cdfe6,e1d4 000233e6,0000e1d4 fcfc * * fcfc * * fcfc -16853 * * * * * * * e1d5 f0a6b6a0,ee8795 d85bdda0,e1d5 00026da0,0000e1d5 fcfd * * fcfd * * fcfd -16854 * * * * * * * 685d e6a19d,ee8796 685d,e1d6 0000685d,0000e1d6 fcfe * * fcfe * * fcfe -16855 * * * * * * * e1d7 f0a391af,ee8797 d84ddc6f,e1d7 0002346f,0000e1d7 fd40 * * fd40 * * fd40 -16856 * * * * * * * 69e1 e6a7a1,ee8798 69e1,e1d8 000069e1,0000e1d8 fd41 * * fd41 * * fd41 -16857 * * * * * * * 6a0b e6a88b,ee8799 6a0b,e1d9 00006a0b,0000e1d9 fd42 fcbd 8fe0 fd42 * fbb3 fd42 -16858 * * * * * * * e1da f0a8ab9f,ee879a d862dedf,e1da 00028adf,0000e1da fd43 * * fd43 * * fd43 -16859 * * * * * * * 6973 e6a5b3,ee879b 6973,e1db 00006973,0000e1db fd44 fcba 8e6f fd44 * fbaf fd44 -16860 * * * * * * * 68c3 e6a383,ee879c 68c3,e1dc 000068c3,0000e1dc fd45 * * fd45 * * fd45 -16861 * * * * * * * e1dd f0a3978d,ee879d d84dddcd,e1dd 000235cd,0000e1dd fd46 * * fd46 * * fd46 -16862 * * * * * * * 6901 e6a481,ee879e 6901,e1de 00006901,0000e1de fd47 fcb6 91bf fd47 * fbae fd47 -16863 * * * * * * * 6900 e6a480,ee879f 6900,e1df 00006900,0000e1df fd48 fcb7 91c0 fd48 * * fd48 -16864 * * * * * * * 3a01 e3a881,ee87a1 3a01,e1e1 00003a01,0000e1e1 fd4a * * fd4a * * fd4a -16865 * * * * * * * e1e2 f0a398bc,ee87a2 d84dde3c,e1e2 0002363c,0000e1e2 fd4b * * fd4b * * fd4b -16866 * * * * * * * 3b80 e3ae80,ee87a3 3b80,e1e3 00003b80,0000e1e3 fd4c * * fd4c * * fd4c -16867 * * * * * * * 67ac e69eac,ee87a4 67ac,e1e4 000067ac,0000e1e4 fd4d fcaf 8f63 fd4d * * fd4d -16868 * * * * * * * 6961 e6a5a1,ee87a5 6961,e1e5 00006961,0000e1e5 fd4e * * fd4e * * fd4e -16869 * * * * * * * e1e6 f0a8a98a,ee87a6 d862de4a,e1e6 00028a4a,0000e1e6 fd4f * * fd4f * * fd4f -16870 * * * * * * * 42fc e48bbc,ee87a7 42fc,e1e7 000042fc,0000e1e7 fd50 * * fd50 * * fd50 -16871 * * * * * * * 6936 e6a4b6,ee87a8 6936,e1e8 00006936,0000e1e8 fd51 * * fd51 * * fd51 -16872 * * * * * * * 6998 e6a698,ee87a9 6998,e1e9 00006998,0000e1e9 fd52 fcc1 8f7a fd52 * fbb0 fd52 -16873 * * * * * * * 3ba1 e3aea1,ee87aa 3ba1,e1ea 00003ba1,0000e1ea fd53 * * fd53 * * fd53 -16874 * * * * * * * e1eb f0a08f89,ee87ab d840dfc9,e1eb 000203c9,0000e1eb fd54 * * fd54 * * fd54 -16875 * * * * * * * 8363 e88da3,ee87ac 8363,e1ec 00008363,0000e1ec fd55 * * fd55 * * fd55 -16876 * * * * * * * 5090 e58290,ee87ad 5090,e1ed 00005090,0000e1ed fd56 * * fd56 * * fd56 -16877 * * * * * * * 69f9 e6a7b9,ee87ae 69f9,e1ee 000069f9,0000e1ee fd57 * * fd57 * * fd57 -16878 * * * * * * * e1ef f0a39999,ee87af d84dde59,e1ef 00023659,0000e1ef fd58 * * fd58 * * fd58 -16879 * * * * * * * e1f0 f0a284aa,ee87b0 d848dd2a,e1f0 0002212a,0000e1f0 fd59 * * fd59 * * fd59 -16880 * * * * * * * 6a45 e6a985,ee87b1 6a45,e1f1 00006a45,0000e1f1 fd5a * * fd5a * * fd5a -16881 * * * * * * * e1f2 f0a39c83,ee87b2 d84ddf03,e1f2 00023703,0000e1f2 fd5b * * fd5b * * fd5b -16882 * * * * * * * 6a9d e6aa9d,ee87b3 6a9d,e1f3 00006a9d,0000e1f3 fd5c fcc8 91c7 fd5c * * fd5c -16883 * * * * * * * 3bf3 e3afb3,ee87b4 3bf3,e1f4 00003bf3,0000e1f4 fd5d * * fd5d * * fd5d -16884 * * * * * * * 67b1 e69eb1,ee87b5 67b1,e1f5 000067b1,0000e1f5 fd5e fa60 8ffb fd5e c845 fbaa fd5e -16885 * * * * * * * 6ac8 e6ab88,ee87b6 6ac8,e1f6 00006ac8,0000e1f6 fd5f faa1 9051 fd5f c848 fbb5 fd5f -16886 * * * * * * * e1f7 f0a9869c,ee87b7 d864dd9c,e1f7 0002919c,0000e1f7 fd60 * * fd60 * * fd60 -16887 * * * * * * * 3c0d e3b08d,ee87b8 3c0d,e1f8 00003c0d,0000e1f8 fd61 * * fd61 * * fd61 -16888 * * * * * * * 6b1d e6ac9d,ee87b9 6b1d,e1f9 00006b1d,0000e1f9 fd62 fcca 91cb fd62 c849 fbb6 fd62 -16889 * * * * * * * e1fa f0a0a4a3,ee87ba d842dd23,e1fa 00020923,0000e1fa fd63 * * fd63 * * fd63 -16890 * * * * * * * * e6839e,eeae94,ee87bb 60de,eb94,e1fb 000060de,0000eb94,0000e1fb 9bec,fd64 * * fd64 * * 9bec,fd64 -16891 * * * * * * * 6b35 e6acb5,ee87bc 6b35,e1fc 00006b35,0000e1fc fd65 * * fd65 c84a fbb7 fd65 -16892 * * * * * * * 6b74 e6adb4,ee87bd 6b74,e1fd 00006b74,0000e1fd fd66 * * fd66 * * fd66 -16893 * * * * * * * e1fe f0a29f8d,ee87be d849dfcd,e1fe 000227cd,0000e1fe fd67 * * fd67 * * fd67 -16894 * * * * * * * 6eb5 e6bab5,ee87bf 6eb5,e1ff 00006eb5,0000e1ff fd68 * * fd68 * * fd68 -16895 * * * * * * * e200 ee8880,f0a3ab9b d84ededb,e200 0000e200,00023adb fd69 * * fd69 * * fd69 -16896 * * * * * * * * * * * * * * fd6a * * * -16897 * * * * * * * e202 f0a1a598,ee8882 d846dd58,e202 00021958,0000e202 fd6b * * fd6b * * fd6b -16898 * * * * * * * 3740 e39d80,ee8883 3740,e203 00003740,0000e203 fd6c * * fd6c * * fd6c -16899 * * * * * * * 5421 e590a1,ee8884 5421,e204 00005421,0000e204 fd6d fbcc 8e6e fd6d * fa7b fd6d -16900 * * * * * * * e205 f0a3ad9a,ee8885 d84edf5a,e205 00023b5a,0000e205 fd6e * * fd6e * * fd6e -16901 * * * * * * * 6be1 e6afa1,ee8886 6be1,e206 00006be1,0000e206 fd6f fb43 905b fd6f c84b fbb8 fd6f -16902 * * * * * * * e207 f0a3bbbc,ee8887 d84fdefc,e207 00023efc,0000e207 fd70 * * fd70 * * fd70 -16903 * * * * * * * 6bdc e6af9c,ee8888 6bdc,e208 00006bdc,0000e208 fd71 * * fd71 * * fd71 -16904 * * * * * * * 6c37 e6b0b7,ee8889 6c37,e209 00006c37,0000e209 fd72 * * fd72 * * fd72 -16905 * * * * * * * e20a f0a2928b,ee888a d849dc8b,e20a 0002248b,0000e20a fd73 * * fd73 * * fd73 -16906 * * * * * * * e20b f0a4a3b1,ee888b d852dcf1,e20b 000248f1,0000e20b fd74 * * fd74 * * fd74 -16907 * * * * * * * e20c f0a6ad91,ee888c d85adf51,e20c 00026b51,0000e20c fd75 * * fd75 * * fd75 -16908 * * * * * * * 6c5a e6b19a,ee888d 6c5a,e20d 00006c5a,0000e20d fd76 * * fd76 * * fd76 -16909 * * * * * * * 8226 e888a6,ee888e 8226,e20e 00008226,0000e20e fd77 fa73 * fd77 c8b3 fc67 fd77 -16910 * * * * * * * 6c79 e6b1b9,ee888f 6c79,e20f 00006c79,0000e20f fd78 fa4e 8fb2 fd78 c84d fbba fd78 -16911 * * * * * * * e210 f0a3b6bc,ee8890 d84fddbc,e210 00023dbc,0000e210 fd79 * * fd79 * * fd79 -16912 * * * * * * * 44c5 e49385,ee8891 44c5,e211 000044c5,0000e211 fd7a * * fd7a * * fd7a -16913 * * * * * * * e212 f0a3b6bd,ee8892 d84fddbd,e212 00023dbd,0000e212 fd7b * * fd7b * * fd7b -16914 * * * * * * * e213 f0a486a4,ee8893 d850dda4,e213 000241a4,0000e213 fd7c * * fd7c * * fd7c -16915 * * * * * * * e214 f0a4a48c,ee8894 d852dd0c,e214 0002490c,0000e214 fd7d * * fd7d * * fd7d -16916 * * * * * * * e215 f0a4a480,ee8895 d852dd00,e215 00024900,0000e215 fd7e * * fd7e * * fd7e -16917 * * * * * * * e216 f0a3b389,ee8896 d84fdcc9,e216 00023cc9,0000e216 fda1 * * fda1 * * fda1 -16918 * * * * * * * 36e5 e39ba5,ee8897 36e5,e217 000036e5,0000e217 fda2 * * fda2 * * fda2 -16919 * * * * * * * 3ceb e3b3ab,ee8898 3ceb,e218 00003ceb,0000e218 fda3 * * fda3 * * fda3 -16920 * * * * * * * e219 f0a0b4b2,ee8899 d843dd32,e219 00020d32,0000e219 fda4 * * fda4 * * fda4 -16921 * * * * * * * 9b83 e9ae83,ee889a 9b83,e21a 00009b83,0000e21a fda5 * * fda5 * * fda5 -16922 * * * * * * * e21b f0a387b9,ee889b d84cddf9,e21b 000231f9,0000e21b fda6 * * fda6 * * fda6 -16923 * * * * * * * e21c f0a29291,ee889c d849dc91,e21c 00022491,0000e21c fda7 * * fda7 * * fda7 -16924 * * * * * * * 7f8f e7be8f,ee889d 7f8f,e21d 00007f8f,0000e21d fda8 * * fda8 * * fda8 -16925 * * * * * * * 6837 e6a0b7,ee889e 6837,e21e 00006837,0000e21e fda9 * * fda9 * * fda9 -16926 * * * * * * * e21f f0a6b4a5,ee889f d85bdd25,e21f 00026d25,0000e21f fdaa * * fdaa * * fdaa -16927 * * * * * * * e220 f0a6b6a1,ee88a0 d85bdda1,e220 00026da1,0000e220 fdab * * fdab * * fdab -16928 * * * * * * * e221 f0a6b7ab,ee88a1 d85bddeb,e221 00026deb,0000e221 fdac * * fdac * * fdac -16929 * * * * * * * 6d96 e6b696,ee88a2 6d96,e222 00006d96,0000e222 fdad fad0 8eb8 fdad c850 fbbd fdad -16930 * * * * * * * 6d5c e6b59c,ee88a3 6d5c,e223 00006d5c,0000e223 fdae faf0 8e67 fdae c84f fbbc fdae -16931 * * * * * * * 6e7c e6b9bc,ee88a4 6e7c,e224 00006e7c,0000e224 fdaf fad4 * fdaf c851 fbbe fdaf -16932 * * * * * * * 6f04 e6bc84,ee88a5 6f04,e225 00006f04,0000e225 fdb0 * * fdb0 * * fdb0 -16933 * * * * * * * e226 f0a4a5bf,ee88a6 d852dd7f,e226 0002497f,0000e226 fdb1 * * fdb1 * * fdb1 -16934 * * * * * * * e227 f0a48285,ee88a7 d850dc85,e227 00024085,0000e227 fdb2 * * fdb2 * * fdb2 -16935 * * * * * * * e228 f0a6b9b2,ee88a8 d85bde72,e228 00026e72,0000e228 fdb3 * * fdb3 * * fdb3 -16936 * * * * * * * 8533 e894b3,ee88a9 8533,e229 00008533,0000e229 fdb4 * * fdb4 * * fdb4 -16937 * * * * * * * e22a f0a6bdb4,ee88aa d85bdf74,e22a 00026f74,0000e22a fdb5 * * fdb5 * * fdb5 -16938 * * * * * * * 51c7 e58787,ee88ab 51c7,e22b 000051c7,0000e22b fdb6 * * fdb6 * * fdb6 -16939 * * * * * * * * * * * * * * fdb7 * * * -16940 * * * * * * * * * * * * * * fdb8 * * * -16941 * * * * * * * 842e e890ae,ee88ae 842e,e22e 0000842e,0000e22e fdb9 * * fdb9 * * fdb9 -16942 * * * * * * * e22f f0a8aca1,ee88af d862df21,e22f 00028b21,0000e22f fdba * * fdba * * fdba -16943 * * * * * * * * f0afa488 d87edd08 0002f908 * * * fdbb * * * -16944 * * * * * * * e231 f0a3b8af,ee88b1 d84fde2f,e231 00023e2f,0000e231 fdbc * * fdbc * * fdbc -16945 * * * * * * * 7453 e79193,ee88b2 7453,e232 00007453,0000e232 fdbd * * fdbd * * fdbd -16946 * * * * * * * e233 f0a3be82,ee88b3 d84fdf82,e233 00023f82,0000e233 fdbe * * fdbe * * fdbe -16947 * * * * * * * 79cc e7a78c,ee88b4 79cc,e234 000079cc,0000e234 fdbf fcde 91d4 fdbf * * fdbf -16948 * * * * * * * 6e4f e6b98f,ee88b5 6e4f,e235 00006e4f,0000e235 fdc0 fcd2 8f62 fdc0 * * fdc0 -16949 * * * * * * * 5a91 e5aa91,ee88b6 5a91,e236 00005a91,0000e236 fdc1 * * fdc1 * * fdc1 -16950 * * * * * * * e237 f0a3818b,ee88b7 d84cdc4b,e237 0002304b,0000e237 fdc2 * * fdc2 * * fdc2 -16951 * * * * * * * 6ff8 e6bfb8,ee88b8 6ff8,e238 00006ff8,0000e238 fdc3 * * fdc3 * * fdc3 -16952 * * * * * * * 370d e39c8d,ee88b9 370d,e239 0000370d,0000e239 fdc4 * * fdc4 * * fdc4 -16953 * * * * * * * 6f9d e6be9d,ee88ba 6f9d,e23a 00006f9d,0000e23a fdc5 * * fdc5 * * fdc5 -16954 * * * * * * * e23b f0a3b8b0,ee88bb d84fde30,e23b 00023e30,0000e23b fdc6 * * fdc6 * * fdc6 -16955 * * * * * * * 6efa e6bbba,ee88bc 6efa,e23c 00006efa,0000e23c fdc7 * * fdc7 * * fdc7 -16956 * * * * * * * e23d f0a19297,ee88bd d845dc97,e23d 00021497,0000e23d fdc8 * * fdc8 * * fdc8 -16957 * * * * * * * e23e f0a480bd,ee88be d850dc3d,e23e 0002403d,0000e23e fdc9 * * fdc9 * * fdc9 -16958 * * * * * * * 4555 e49595,ee88bf 4555,e23f 00004555,0000e23f fdca * * fdca * * fdca -16959 * * * * * * * 93f0 e98fb0,ee8980 93f0,e240 000093f0,0000e240 fdcb * * fdcb * * fdcb -16960 * * * * * * * 6f44 e6bd84,ee8981 6f44,e241 00006f44,0000e241 fdcc fcd4 91cc fdcc * * fdcc -16961 * * * * * * * 6f5c e6bd9c,ee8982 6f5c,e242 00006f5c,0000e242 fdcd fcd5 8fae fdcd * * fdcd -16962 * * * * * * * 3d4e e3b58e,ee8983 3d4e,e243 00003d4e,0000e243 fdce * * fdce * fbc1 fdce -16963 * * * * * * * 6f74 e6bdb4,ee8984 6f74,e244 00006f74,0000e244 fdcf * * fdcf * * fdcf -16964 * * * * * * * e245 f0a985b0,ee8985 d864dd70,e245 00029170,0000e245 fdd0 * * fdd0 * * fdd0 -16965 * * * * * * * 3d3b e3b4bb,ee8986 3d3b,e246 00003d3b,0000e246 fdd1 * * fdd1 * * fdd1 -16966 * * * * * * * 6f9f e6be9f,ee8987 6f9f,e247 00006f9f,0000e247 fdd2 * * fdd2 * fbc3 fdd2 -16967 * * * * * * * e248 f0a48584,ee8988 d850dd44,e248 00024144,0000e248 fdd3 * * fdd3 * * fdd3 -16968 * * * * * * * 6fd3 e6bf93,ee8989 6fd3,e249 00006fd3,0000e249 fdd4 * * fdd4 * * fdd4 -16969 * * * * * * * e24a f0a48291,ee898a d850dc91,e24a 00024091,0000e24a fdd5 * * fdd5 * * fdd5 -16970 * * * * * * * e24b f0a48595,ee898b d850dd55,e24b 00024155,0000e24b fdd6 * * fdd6 * * fdd6 -16971 * * * * * * * e24c f0a480b9,ee898c d850dc39,e24c 00024039,0000e24c fdd7 * * fdd7 * * fdd7 -16972 * * * * * * * e24d f0a3bfb0,ee898d d84fdff0,e24d 00023ff0,0000e24d fdd8 * * fdd8 * * fdd8 -16973 * * * * * * * e24e f0a3beb4,ee898e d84fdfb4,e24e 00023fb4,0000e24e fdd9 * * fdd9 * * fdd9 -16974 * * * * * * * e24f f0a484bf,ee898f d850dd3f,e24f 0002413f,0000e24f fdda * * fdda * * fdda -16975 * * * * * * * 51df e5879f,ee8990 51df,e250 000051df,0000e250 fddb fbbc 9262 fddb * * fddb -16976 * * * * * * * e251 ee8991,f0a48596 d850dd56,e251 0000e251,00024156 fddc * * fddc * * fddc -16977 * * * * * * * e252 ee8992,f0a48597 d850dd57,e252 0000e252,00024157 fddd * * fddd * * fddd -16978 * * * * * * * e253 f0a48580,ee8993 d850dd40,e253 00024140,0000e253 fdde * * fdde * * fdde -16979 * * * * * * * e254 f0a6879d,ee8994 d858dddd,e254 000261dd,0000e254 fddf * * fddf * * fddf -16980 * * * * * * * 704b e7818b,ee8995 704b,e255 0000704b,0000e255 fde0 * * fde0 * * fde0 -16981 * * * * * * * 707e e781be,ee8996 707e,e256 0000707e,0000e256 fde1 fc50 8fe8 fde1 * * fde1 -16982 * * * * * * * 70a7 e782a7,ee8997 70a7,e257 000070a7,0000e257 fde2 * * fde2 * * fde2 -16983 * * * * * * * * * * * * fcdd 8fe5 fde3 * * * -16984 * * * * * * * 70cc e7838c,ee8999 70cc,e259 000070cc,0000e259 fde4 * * fde4 * * fde4 -16985 * * * * * * * 70d5 e78395,ee899a 70d5,e25a 000070d5,0000e25a fde5 fc75 91cf fde5 * * fde5 -16986 * * * * * * * 70d6 e78396,ee899b 70d6,e25b 000070d6,0000e25b fde6 * * fde6 * * fde6 -16987 * * * * * * * 70df e7839f,ee899c 70df,e25c 000070df,0000e25c fde7 fa69 9259 fde7 c857 fbc7 fde7 -16988 * * * * * * * 4104 e48484,ee899d 4104,e25d 00004104,0000e25d fde8 * * fde8 * * fde8 -16989 * * * * * * * 3de8 e3b7a8,ee899e 3de8,e25e 00003de8,0000e25e fde9 * * fde9 * * fde9 -16990 * * * * * * * 71b4 e786b4,ee899f 71b4,e25f 000071b4,0000e25f fdea * * fdea * * fdea -16991 * * * * * * * 7196 e78696,ee89a0 7196,e260 00007196,0000e260 fdeb * * fdeb * * fdeb -16992 * * * * * * * e261 f0a489b7,ee89a1 d850de77,e261 00024277,0000e261 fdec * * fdec * * fdec -16993 * * * * * * * 712b e784ab,ee89a2 712b,e262 0000712b,0000e262 fded * * fded * * fded -16994 * * * * * * * 7145 e78585,ee89a3 7145,e263 00007145,0000e263 fdee fac3 91d1 fdee c85d fbcd fdee -16995 * * * * * * * 5a88 e5aa88,ee89a4 5a88,e264 00005a88,0000e264 fdef * * fdef * * fdef -16996 * * * * * * * 714a e7858a,ee89a5 714a,e265 0000714a,0000e265 fdf0 faf6 8e6c fdf0 c85c fbcc fdf0 -16997 * * * * * * * * efa988 fa48 0000fa48 * * * fdf1 * * * -16998 * * * * * * * e268 f0a48da5,ee89a8 d850df65,e268 00024365,0000e268 fdf3 * * fdf3 * * fdf3 -16999 * * * * * * * 714f e7858f,ee89a9 714f,e269 0000714f,0000e269 fdf4 * * fdf4 * * fdf4 -17000 * * * * * * * 9362 e98da2,ee89aa 9362,e26a 00009362,0000e26a fdf5 * * fdf5 * * fdf5 -17001 * * * * * * * e26b f0a48b81,ee89ab d850dec1,e26b 000242c1,0000e26b fdf6 * * fdf6 * * fdf6 -17002 * * * * * * * 712c e784ac,ee89ac 712c,e26c 0000712c,0000e26c fdf7 * * fdf7 * * fdf7 -17003 * * * * * * * e26d f0a4919a,ee89ad d851dc5a,e26d 0002445a,0000e26d fdf8 * * fdf8 * * fdf8 -17004 * * * * * * * e26e f0a4a8a7,ee89ae d852de27,e26e 00024a27,0000e26e fdf9 * * fdf9 * * fdf9 -17005 * * * * * * * e26f f0a4a8a2,ee89af d852de22,e26f 00024a22,0000e26f fdfa * * fdfa * * fdfa -17006 * * * * * * * 71ba e786ba,ee89b0 71ba,e270 000071ba,0000e270 fdfb * * fdfb * * fdfb -17007 * * * * * * * e271 f0a8afa8,ee89b1 d862dfe8,e271 00028be8,0000e271 fdfc * * fdfc * * fdfc -17008 * * * * * * * 70bd e782bd,ee89b2 70bd,e272 000070bd,0000e272 fdfd * * fdfd * * fdfd -17009 * * * * * * * 720e e7888e,ee89b3 720e,e273 0000720e,0000e273 fdfe * * fdfe * * fdfe -17010 * * * * * * * 9442 e99182,ee89b4 9442,e274 00009442,0000e274 fe40 * * fe40 * * fe40 -17011 * * * * * * * 7215 e78895,ee89b5 7215,e275 00007215,0000e275 fe41 fce9 8eb7 fe41 c860 fbd0 fe41 -17012 * * * * * * * 5911 e5a491,ee89b6 5911,e276 00005911,0000e276 fe42 * * fe42 * * fe42 -17013 * * * * * * * 9443 e99183,ee89b7 9443,e277 00009443,0000e277 fe43 * * fe43 * * fe43 -17014 * * * * * * * 7224 e788a4,ee89b8 7224,e278 00007224,0000e278 fe44 * * fe44 * * fe44 -17015 * * * * * * * 9341 e98d81,ee89b9 9341,e279 00009341,0000e279 fe45 * * fe45 * * fe45 -17016 * * * * * * * e27a f0a59885,ee89ba d855de05,e27a 00025605,0000e27a fe46 * * fe46 * * fe46 -17017 * * * * * * * 722e e788ae,ee89bb 722e,e27b 0000722e,0000e27b fe47 * * fe47 * * fe47 -17018 * * * * * * * 7240 e78980,ee89bc 7240,e27c 00007240,0000e27c fe48 fb41 * fe48 c862 fbd2 fe48 -17019 * * * * * * * e27d f0a4a5b4,ee89bd d852dd74,e27d 00024974,0000e27d fe49 * * fe49 * * fe49 -17020 * * * * * * * 68bd e6a2bd,ee89be 68bd,e27e 000068bd,0000e27e fe4a * * fe4a * * fe4a -17021 * * * * * * * 7255 e78995,ee89bf 7255,e27f 00007255,0000e27f fe4b fceb 9040 fe4b * * fe4b -17022 * * * * * * * 7257 e78997,ee8a80 7257,e280 00007257,0000e280 fe4c * * fe4c * * fe4c -17023 * * * * * * * 3e55 e3b995,ee8a81 3e55,e281 00003e55,0000e281 fe4d * * fe4d * * fe4d -17024 * * * * * * * e282 f0a38184,ee8a82 d84cdc44,e282 00023044,0000e282 fe4e * * fe4e * * fe4e -17025 * * * * * * * 680d e6a08d,ee8a83 680d,e283 0000680d,0000e283 fe4f * * fe4f * * fe4f -17026 * * * * * * * 6f3d e6bcbd,ee8a84 6f3d,e284 00006f3d,0000e284 fe50 * * fe50 * * fe50 -17027 * * * * * * * 7282 e78a82,ee8a85 7282,e285 00007282,0000e285 fe51 * * fe51 * fbd3 fe51 -17028 * * * * * * * * * * * * * * fe52 * * * -17029 * * * * * * * 732b e78cab,ee8a87 732b,e287 0000732b,0000e287 fe53 * * fe53 * * fe53 -17030 * * * * * * * e288 f0a4a0a3,ee8a88 d852dc23,e288 00024823,0000e288 fe54 * * fe54 * * fe54 -17031 * * * * * * * e289 f0a8a0ab,ee8a89 d862dc2b,e289 0002882b,0000e289 fe55 * * fe55 * * fe55 -17032 * * * * * * * 48ed e4a3ad,ee8a8a 48ed,e28a 000048ed,0000e28a fe56 * * fe56 * * fe56 -17033 * * * * * * * e28b f0a8a084,ee8a8b d862dc04,e28b 00028804,0000e28b fe57 * * fe57 * * fe57 -17034 * * * * * * * 7328 e78ca8,ee8a8c 7328,e28c 00007328,0000e28c fe58 fcf3 91d9 fe58 c869 fbdb fe58 -17035 * * * * * * * 732e e78cae,ee8a8d 732e,e28d 0000732e,0000e28d fe59 fcf1 8ea9 fe59 c86a fbdc fe59 -17036 * * * * * * * 73cf e78f8f,ee8a8e 73cf,e28e 000073cf,0000e28e fe5a fa68 * fe5a c86b fbde fe5a -17037 * * * * * * * 73aa e78eaa,ee8a8f 73aa,e28f 000073aa,0000e28f fe5b * * fe5b * * fe5b -17038 * * * * * * * e290 f0a0b0ba,ee8a90 d843dc3a,e290 00020c3a,0000e290 fe5c * * fe5c * * fe5c -17039 * * * * * * * e291 f0a6a8ae,ee8a91 d85ade2e,e291 00026a2e,0000e291 fe5d * * fe5d * * fe5d -17040 * * * * * * * 73c9 e78f89,ee8a92 73c9,e292 000073c9,0000e292 fe5e fcf9 8fbc fe5e * fbdf fe5e -17041 * * * * * * * 7449 e79189,ee8a93 7449,e293 00007449,0000e293 fe5f * * fe5f * * fe5f -17042 * * * * * * * e294 f0a487a2,ee8a94 d850dde2,e294 000241e2,0000e294 fe60 * * fe60 * * fe60 -17043 * * * * * * * e295 f0a19ba7,ee8a95 d845dee7,e295 000216e7,0000e295 fe61 * * fe61 * * fe61 -17044 * * * * * * * e296 f0a4a8a4,ee8a96 d852de24,e296 00024a24,0000e296 fe62 * * fe62 * * fe62 -17045 * * * * * * * 6623 e698a3,ee8a97 6623,e297 00006623,0000e297 fe63 * * fe63 * * fe63 -17046 * * * * * * * 36c5 e39b85,ee8a98 36c5,e298 000036c5,0000e298 fe64 * * fe64 * * fe64 -17047 * * * * * * * e299 f0a4a6b7,ee8a99 d852ddb7,e299 000249b7,0000e299 fe65 * * fe65 * * fe65 -17048 * * * * * * * e29a f0a4a68d,ee8a9a d852dd8d,e29a 0002498d,0000e29a fe66 * * fe66 * * fe66 -17049 * * * * * * * e29b f0a4a7bb,ee8a9b d852ddfb,e29b 000249fb,0000e29b fe67 * * fe67 * * fe67 -17050 * * * * * * * 73f7 e78fb7,ee8a9c 73f7,e29c 000073f7,0000e29c fe68 * * fe68 * * fe68 -17051 * * * * * * * 7415 e79095,ee8a9d 7415,e29d 00007415,0000e29d fe69 * * fe69 * * fe69 -17052 * * * * * * * 6903 e6a483,ee8a9e 6903,e29e 00006903,0000e29e fe6a * * fe6a * * fe6a -17053 * * * * * * * e29f f0a4a8a6,ee8a9f d852de26,e29f 00024a26,0000e29f fe6b * * fe6b * * fe6b -17054 * * * * * * * 7439 e790b9,ee8aa0 7439,e2a0 00007439,0000e2a0 fe6c * * fe6c * * fe6c -17055 * * * * * * * 3ed7 e3bb97,ee8aa2 3ed7,e2a2 00003ed7,0000e2a2 fe6e * * fe6e * * fe6e -17056 * * * * * * * * f0afa4af d87edd2f 0002f92f * * * fe6f * * * -17057 * * * * * * * e2a4 f0a2a2ad,ee8aa4 d84adcad,e2a4 000228ad,0000e2a4 fe70 * * fe70 * * fe70 -17058 * * * * * * * 7460 e791a0,ee8aa5 7460,e2a5 00007460,0000e2a5 fe71 fcfc 8fe4 fe71 * * fe71 -17059 * * * * * * * e2a6 f0a8bab2,ee8aa6 d863deb2,e2a6 00028eb2,0000e2a6 fe72 * * fe72 * * fe72 -17060 * * * * * * * 7447 e79187,ee8aa7 7447,e2a7 00007447,0000e2a7 fe73 * * fe73 * * fe73 -17061 * * * * * * * 73e4 e78fa4,ee8aa8 73e4,e2a8 000073e4,0000e2a8 fe74 * * fe74 * * fe74 -17062 * * * * * * * 7476 e791b6,ee8aa9 7476,e2a9 00007476,0000e2a9 fe75 * * fe75 * * fe75 -17063 * * * * * * * 83b9 e88eb9,ee8aaa 83b9,e2aa 000083b9,0000e2aa fe76 * * fe76 * * fe76 -17064 * * * * * * * 746c e791ac,ee8aab 746c,e2ab 0000746c,0000e2ab fe77 * * fe77 * * fe77 -17065 * * * * * * * 7474 e791b4,ee8aad 7474,e2ad 00007474,0000e2ad fe79 * * fe79 * * fe79 -17066 * * * * * * * 93f1 e98fb1,ee8aae 93f1,e2ae 000093f1,0000e2ae fe7a * * fe7a * * fe7a -17067 * * * * * * * 6a2c e6a8ac,ee8aaf 6a2c,e2af 00006a2c,0000e2af fe7b * * fe7b * * fe7b -17068 * * * * * * * 7482 e79282,ee8ab0 7482,e2b0 00007482,0000e2b0 fe7c * * fe7c * * fe7c -17069 * * * * * * * 4953 e4a593,ee8ab1 4953,e2b1 00004953,0000e2b1 fe7d * * fe7d * * fe7d -17070 * * * * * * * e2b2 f0a4aa8c,ee8ab2 d852de8c,e2b2 00024a8c,0000e2b2 fe7e * * fe7e * * fe7e -17071 * * * * * * * e2b3 f0a4859f,ee8ab3 d850dd5f,e2b3 0002415f,0000e2b3 fea1 * * fea1 * * fea1 -17072 * * * * * * * e2b4 f0a4a9b9,ee8ab4 d852de79,e2b4 00024a79,0000e2b4 fea2 * * fea2 * * fea2 -17073 * * * * * * * e2b5 f0a8ae8f,ee8ab5 d862df8f,e2b5 00028b8f,0000e2b5 fea3 * * fea3 * * fea3 -17074 * * * * * * * 5b46 e5ad86,ee8ab6 5b46,e2b6 00005b46,0000e2b6 fea4 * * fea4 * * fea4 -17075 * * * * * * * e2b7 f0a8b083,ee8ab7 d863dc03,e2b7 00028c03,0000e2b7 fea5 * * fea5 * * fea5 -17076 * * * * * * * e2b8 f0a1a29e,ee8ab8 d846dc9e,e2b8 0002189e,0000e2b8 fea6 * * fea6 * * fea6 -17077 * * * * * * * 74c8 e79388,ee8ab9 74c8,e2b9 000074c8,0000e2b9 fea7 * * fea7 * * fea7 -17078 * * * * * * * e2ba f0a1a688,ee8aba d846dd88,e2ba 00021988,0000e2ba fea8 * * fea8 * * fea8 -17079 * * * * * * * 750e e7948e,ee8abb 750e,e2bb 0000750e,0000e2bb fea9 fd45 9049 fea9 * * fea9 -17080 * * * * * * * 751e e7949e,ee8abd 751e,e2bd 0000751e,0000e2bd feab fd47 9047 feab * * feab -17081 * * * * * * * e2be f0a8bb99,ee8abe d863ded9,e2be 00028ed9,0000e2be feac * * feac * * feac -17082 * * * * * * * e2bf f0a1a98b,ee8abf d846de4b,e2bf 00021a4b,0000e2bf fead * * fead * * fead -17083 * * * * * * * 5bd7 e5af97,ee8b80 5bd7,e2c0 00005bd7,0000e2c0 feae * * feae * faf7 feae -17084 * * * * * * * e2c1 f0a8baac,ee8b81 d863deac,e2c1 00028eac,0000e2c1 feaf * * feaf * * feaf -17085 * * * * * * * 9385 e98e85,ee8b82 9385,e2c2 00009385,0000e2c2 feb0 fadb * feb0 c8de fccd feb0 -17086 * * * * * * * 754d e7958d,ee8b83 754d,e2c3 0000754d,0000e2c3 feb1 * * feb1 * * feb1 -17087 * * * * * * * 754a e7958a,ee8b84 754a,e2c4 0000754a,0000e2c4 feb2 fd49 8fb1 feb2 * * feb2 -17088 * * * * * * * 7567 e795a7,ee8b85 7567,e2c5 00007567,0000e2c5 feb3 * * feb3 * * feb3 -17089 * * * * * * * 756e e795ae,ee8b86 756e,e2c6 0000756e,0000e2c6 feb4 * * feb4 * * feb4 -17090 * * * * * * * e2c7 f0a4be82,ee8b87 d853df82,e2c7 00024f82,0000e2c7 feb5 * * feb5 * * feb5 -17091 * * * * * * * 3f04 e3bc84,ee8b88 3f04,e2c8 00003f04,0000e2c8 feb6 * * feb6 * * feb6 -17092 * * * * * * * e2c9 f0a4b493,ee8b89 d853dd13,e2c9 00024d13,0000e2c9 feb7 * * feb7 * * feb7 -17093 * * * * * * * 758e e7968e,ee8b8a 758e,e2ca 0000758e,0000e2ca feb8 fd4c 925c feb8 * fbe2 feb8 -17094 * * * * * * * 745d e7919d,ee8b8b 745d,e2cb 0000745d,0000e2cb feb9 fcfb 8ff9 feb9 * * feb9 -17095 * * * * * * * 759e e7969e,ee8b8c 759e,e2cc 0000759e,0000e2cc feba * * feba * * feba -17096 * * * * * * * 75b4 e796b4,ee8b8d 75b4,e2cd 000075b4,0000e2cd febb faaa 8e4f febb c86d fbe3 febb -17097 * * * * * * * 7602 e79882,ee8b8e 7602,e2ce 00007602,0000e2ce febc fd6f 8ff6 febc * * febc -17098 * * * * * * * 762c e798ac,ee8b8f 762c,e2cf 0000762c,0000e2cf febd * * febd * * febd -17099 * * * * * * * 7651 e79991,ee8b90 7651,e2d0 00007651,0000e2d0 febe * * febe * * febe -17100 * * * * * * * 764f e7998f,ee8b91 764f,e2d1 0000764f,0000e2d1 febf * * febf * * febf -17101 * * * * * * * 766f e799af,ee8b92 766f,e2d2 0000766f,0000e2d2 fec0 fd72 8fcc fec0 * * fec0 -17102 * * * * * * * * ee8b93 e2d3 0000e2d3 fec1 * * fec1 * * fec1 -17103 * * * * * * * e2d4 f0a68fb5,ee8b94 d858dff5,e2d4 000263f5,0000e2d4 fec2 * * fec2 * * fec2 -17104 * * * * * * * 7690 e79a90,ee8b95 7690,e2d5 00007690,0000e2d5 fec3 fd4e 8e57 fec3 * * fec3 -17105 * * * * * * * 81ef e887af,ee8b96 81ef,e2d6 000081ef,0000e2d6 fec4 * * fec4 * * fec4 -17106 * * * * * * * 37f8 e39fb8,ee8b97 37f8,e2d7 000037f8,0000e2d7 fec5 * * fec5 * * fec5 -17107 * * * * * * * e2d8 f0a6a491,ee8b98 d85add11,e2d8 00026911,0000e2d8 fec6 * * fec6 * * fec6 -17108 * * * * * * * e2d9 f0a6a48e,ee8b99 d85add0e,e2d9 0002690e,0000e2d9 fec7 fdc7 8fe3 fec7 * * fec7 -17109 * * * * * * * 76a1 e79aa1,ee8b9a 76a1,e2da 000076a1,0000e2da fec8 fd4d 8fbb fec8 * * fec8 -17110 * * * * * * * 76a5 e79aa5,ee8b9b 76a5,e2db 000076a5,0000e2db fec9 * * fec9 * * fec9 -17111 * * * * * * * 76b7 e79ab7,ee8b9c 76b7,e2dc 000076b7,0000e2dc feca * * feca * * feca -17112 * * * * * * * 76cc e79b8c,ee8b9d 76cc,e2dd 000076cc,0000e2dd fecb fd4f 8fac fecb * fbf1 fecb -17113 * * * * * * * e2de f0a6be9f,ee8b9e d85bdf9f,e2de 00026f9f,0000e2de fecc * * fecc * * fecc -17114 * * * * * * * 8462 e891a2,ee8b9f 8462,e2df 00008462,0000e2df fecd * * fecd * * fecd -17115 * * * * * * * e2e0 f0a5829d,ee8ba0 d854dc9d,e2e0 0002509d,0000e2e0 fece * * fece * * fece -17116 * * * * * * * e2e1 f0a585bd,ee8ba1 d854dd7d,e2e1 0002517d,0000e2e1 fecf * * fecf * * fecf -17117 * * * * * * * e2e2 f0a1b89c,ee8ba2 d847de1c,e2e2 00021e1c,0000e2e2 fed0 * * fed0 * * fed0 -17118 * * * * * * * 771e e79c9e,ee8ba3 771e,e2e3 0000771e,0000e2e3 fed1 * * fed1 * * fed1 -17119 * * * * * * * 7726 e79ca6,ee8ba4 7726,e2e4 00007726,0000e2e4 fed2 fd53 91e0 fed2 * * fed2 -17120 * * * * * * * 7740 e79d80,ee8ba5 7740,e2e5 00007740,0000e2e5 fed3 faa6 9258 fed3 c875 fbf3 fed3 -17121 * * * * * * * 64af e692af,ee8ba6 64af,e2e6 000064af,0000e2e6 fed4 * * fed4 * * fed4 -17122 * * * * * * * e2e7 f0a588a0,ee8ba7 d854de20,e2e7 00025220,0000e2e7 fed5 * * fed5 * * fed5 -17123 * * * * * * * 7758 e79d98,ee8ba8 7758,e2e8 00007758,0000e2e8 fed6 * * fed6 * * fed6 -17124 * * * * * * * e2e9 f0a38aac,ee8ba9 d84cdeac,e2e9 000232ac,0000e2e9 fed7 * * fed7 * * fed7 -17125 * * * * * * * 77af e79eaf,ee8baa 77af,e2ea 000077af,0000e2ea fed8 * * fed8 * * fed8 -17126 * * * * * * * e2eb f0a8a5a4,ee8bab d862dd64,e2eb 00028964,0000e2eb fed9 * * fed9 * * fed9 -17127 * * * * * * * e2ec f0a8a5a8,ee8bac d862dd68,e2ec 00028968,0000e2ec feda * * feda * * feda -17128 * * * * * * * e2ed f0a19b81,ee8bad d845dec1,e2ed 000216c1,0000e2ed fedb * * fedb * * fedb -17129 * * * * * * * 77f4 e79fb4,ee8bae 77f4,e2ee 000077f4,0000e2ee fedc * * fedc * * fedc -17130 * * * * * * * * * * * * * * fedd * * * -17131 * * * * * * * 68ca e6a38a,ee8bb2 68ca,e2f2 000068ca,0000e2f2 fee0 fcb8 8e7b fee0 * * fee0 -17132 * * * * * * * 78af e7a2af,ee8bb3 78af,e2f3 000078af,0000e2f3 fee1 fd5b 8e52 fee1 * fc40 fee1 -17133 * * * * * * * 78c7 e7a387,ee8bb4 78c7,e2f4 000078c7,0000e2f4 fee2 * * fee2 * * fee2 -17134 * * * * * * * 78d3 e7a393,ee8bb5 78d3,e2f5 000078d3,0000e2f5 fee3 fd57 91e3 fee3 * * fee3 -17135 * * * * * * * 96a5 e99aa5,ee8bb6 96a5,e2f6 000096a5,0000e2f6 fee4 * * fee4 * * fee4 -17136 * * * * * * * 792e e7a4ae,ee8bb7 792e,e2f7 0000792e,0000e2f7 fee5 fd5d 9041 fee5 c87a fc41 fee5 -17137 * * * * * * * e2f8 f0a597a0,ee8bb8 d855dde0,e2f8 000255e0,0000e2f8 fee6 * * fee6 * * fee6 -17138 * * * * * * * 78d7 e7a397,ee8bb9 78d7,e2f9 000078d7,0000e2f9 fee7 * * fee7 * * fee7 -17139 * * * * * * * 7934 e7a4b4,ee8bba 7934,e2fa 00007934,0000e2fa fee8 * * fee8 * * fee8 -17140 * * * * * * * 78b1 e7a2b1,ee8bbb 78b1,e2fb 000078b1,0000e2fb fee9 fd58 8ec7 fee9 * fbfd fee9 -17141 * * * * * * * e2fc f0a7988c,ee8bbc d85dde0c,e2fc 0002760c,0000e2fc feea * * feea * * feea -17142 * * * * * * * 8fb8 e8beb8,ee8bbd 8fb8,e2fd 00008fb8,0000e2fd feeb * * feeb * * feeb -17143 * * * * * * * 8884 e8a284,ee8bbe 8884,e2fe 00008884,0000e2fe feec * * feec * * feec -17144 * * * * * * * e301 f0a2989c,ee8c81 d849de1c,e301 0002261c,0000e301 feef * * feef * * feef -17145 * * * * * * * 7986 e7a686,ee8c82 7986,e302 00007986,0000e302 fef0 * * fef0 * * fef0 -17146 * * * * * * * 8900 e8a480,ee8c83 8900,e303 00008900,0000e303 fef1 * * fef1 * * fef1 -17147 * * * * * * * 6902 e6a482,ee8c84 6902,e304 00006902,0000e304 fef2 * * fef2 * * fef2 -17148 * * * * * * * 7980 e7a680,ee8c85 7980,e305 00007980,0000e305 fef3 * * fef3 * * fef3 -17149 * * * * * * * e306 f0a5a197,ee8c86 d856dc57,e306 00025857,0000e306 fef4 * * fef4 * * fef4 -17150 * * * * * * * 799d e7a69d,ee8c87 799d,e307 0000799d,0000e307 fef5 fb54,fd60 8efa fef5 c87c fc44 fef5 -17151 * * * * * * * e308 f0a7acb9,ee8c88 d85edf39,e308 00027b39,0000e308 fef6 * * fef6 * * fef6 -17152 * * * * * * * 793c e7a4bc,ee8c89 793c,e309 0000793c,0000e309 fef7 * * fef7 * * fef7 -17153 * * * * * * * 79a9 e7a6a9,ee8c8a 79a9,e30a 000079a9,0000e30a fef8 fd61 8ef6 fef8 * * fef8 -17154 * * * * * * * 6e2a e6b8aa,ee8c8b 6e2a,e30b 00006e2a,0000e30b fef9 * * fef9 * * fef9 -17155 * * * * * * * e30c f0a784a6,ee8c8c d85cdd26,e30c 00027126,0000e30c fefa * * fefa * * fefa -17156 * * * * * * * 3ea8 e3baa8,ee8c8d 3ea8,e30d 00003ea8,0000e30d fefb * * fefb * * fefb -17157 * * * * * * * 79c6 e7a786,ee8c8e 79c6,e30e 000079c6,0000e30e fefc * * fefc c87d fc45 fefc -17158 * * * * * * * e30f f0a9848d,ee8c8f d864dd0d,e30f 0002910d,0000e30f fefd * * fefd * * fefd -17159 * * * * * * * 79d4 e7a794,ee8c90 79d4,e310 000079d4,0000e310 fefe fd63 91e7 fefe * * fefe -17160 * * * * * * * * * * * * * * 8a40 * * * -17161 * * * * * * * 5525 e594a5,ef90be 5525,f43e 00005525,0000f43e 8a41 * * 8a41 * * 8a41 -17162 * * * * * * * * * * * * * * 8a42 * * * -17163 * * * * * * * f440 f0a0b182,ef9180 d843dc42,f440 00020c42,0000f440 8a43 * * 8a43 * * 8a43 -17164 * * * * * * * f441 f0a0b495,ef9181 d843dd15,f441 00020d15,0000f441 8a44 * * 8a44 * * 8a44 -17165 * * * * * * * f442 f0a584ab,ef9182 d854dd2b,f442 0002512b,0000f442 8a45 * * 8a45 * * 8a45 -17166 * * * * * * * 5590 e59690,ef9183 5590,f443 00005590,0000f443 8a46 * * 8a46 * * 8a46 -17167 * * * * * * * f444 f0a2b386,ef9184 d84bdcc6,f444 00022cc6,0000f444 8a47 * * 8a47 * * 8a47 -17168 * * * * * * * 39ec e3a7ac,ef9185 39ec,f445 000039ec,0000f445 8a48 * * 8a48 * * 8a48 -17169 * * * * * * * f446 f0a08d81,ef9186 d840df41,f446 00020341,0000f446 8a49 * * 8a49 * * 8a49 -17170 * * * * * * * 8e46 e8b986,ef9187 8e46,f447 00008e46,0000f447 8a4a * * 8a4a * * 8a4a -17171 * * * * * * * f448 f0a4b6b8,ef9188 d853ddb8,f448 00024db8,0000f448 8a4b * * 8a4b * * 8a4b -17172 * * * * * * * f449 f0a993a5,ef9189 d865dce5,f449 000294e5,0000f449 8a4c * * 8a4c * * 8a4c -17173 * * * * * * * * * * * * * * 8a4d * * * -17174 * * * * * * * f44b f0a882be,ef918b d860dcbe,f44b 000280be,0000f44b 8a4e * * 8a4e * * 8a4e -17175 * * * * * * * 777a e79dba,ef918c 777a,f44c 0000777a,0000f44c 8a4f * * 8a4f * fbf5 8a4f -17176 * * * * * * * f44d f0a2b0b8,ef918d d84bdc38,f44d 00022c38,0000f44d 8a50 * * 8a50 * * 8a50 -17177 * * * * * * * 3a34 e3a8b4,ef918e 3a34,f44e 00003a34,0000f44e 8a51 * * 8a51 * * 8a51 -17178 * * * * * * * 47d5 e49f95,ef918f 47d5,f44f 000047d5,0000f44f 8a52 * * 8a52 * * 8a52 -17179 * * * * * * * f450 f0a8859d,ef9190 d860dd5d,f450 0002815d,0000f450 8a53 * * 8a53 * * 8a53 -17180 * * * * * * * f451 f0a6a7b2,ef9191 d85addf2,f451 000269f2,0000f451 8a54 * * 8a54 * * 8a54 -17181 * * * * * * * f452 f0a4b7aa,ef9192 d853ddea,f452 00024dea,0000f452 8a55 * * 8a55 * * 8a55 -17182 * * * * * * * 64dd e6939d,ef9193 64dd,f453 000064dd,0000f453 8a56 * * 8a56 * * 8a56 -17183 * * * * * * * f454 f0a0b5bc,ef9194 d843dd7c,f454 00020d7c,0000f454 8a57 * * 8a57 * * 8a57 -17184 * * * * * * * f455 f0a0beb4,ef9195 d843dfb4,f455 00020fb4,0000f455 8a58 * * 8a58 * * 8a58 -17185 * * * * * * * f456 f0a0b395,ef9196 d843dcd5,f456 00020cd5,0000f456 8a59 * * 8a59 * * 8a59 -17186 * * * * * * * * f0abaab3 d86edeb3 0002bab3 * * * 8a5a * * * -17187 * * * * * * * 648d e6928d,ef9198 648d,f458 0000648d,0000f458 8a5b * * 8a5b * * 8a5b -17188 * * * * * * * 8e7e e8b9be,ef9199 8e7e,f459 00008e7e,0000f459 8a5c * * 8a5c * * 8a5c -17189 * * * * * * * f45a f0a0ba96,ef919a d843de96,f45a 00020e96,0000f45a 8a5d * * 8a5d * fac4 8a5d -17190 * * * * * * * * * * * * * * 8a5e * * * -17191 * * * * * * * f45c f0a0bda4,ef919c d843df64,f45c 00020f64,0000f45c 8a5f * * 8a5f * * 8a5f -17192 * * * * * * * f45d f0a2b2a9,ef919d d84bdca9,f45d 00022ca9,0000f45d 8a60 * * 8a60 * * 8a60 -17193 * * * * * * * f45e f0a88996,ef919e d860de56,f45e 00028256,0000f45e 8a61 * * 8a61 * * 8a61 -17194 * * * * * * * f45f f0a49393,ef919f d851dcd3,f45f 000244d3,0000f45f 8a62 * * 8a62 * * 8a62 -17195 * * * * * * * * * * * * * * 8a63 * * * -17196 * * * * * * * f461 f0a0b586,ef91a1 d843dd46,f461 00020d46,0000f461 8a64 * * 8a64 c778 fab2 8a64 -17197 * * * * * * * f462 f0a9a98d,ef91a2 d866de4d,f462 00029a4d,0000f462 8a65 * * 8a65 * * 8a65 -17198 * * * * * * * f463 f0a883a9,ef91a3 d860dce9,f463 000280e9,0000f463 8a66 * * 8a66 * * 8a66 -17199 * * * * * * * 47f4 e49fb4,ef91a4 47f4,f464 000047f4,0000f464 8a67 * * 8a67 * * 8a67 -17200 * * * * * * * f465 f0a4baa7,ef91a5 d853dea7,f465 00024ea7,0000f465 8a68 * * 8a68 * * 8a68 -17201 * * * * * * * f466 f0a2b382,ef91a6 d84bdcc2,f466 00022cc2,0000f466 8a69 * * 8a69 * * 8a69 -17202 * * * * * * * 9ab2 e9aab2,ef91a7 9ab2,f467 00009ab2,0000f467 8a6a * * 8a6a * * 8a6a -17203 * * * * * * * 3a67 e3a9a7,ef91a8 3a67,f468 00003a67,0000f468 8a6b * * 8a6b * * 8a6b -17204 * * * * * * * f469 f0a997b4,ef91a9 d865ddf4,f469 000295f4,0000f469 8a6c * * 8a6c * * 8a6c -17205 * * * * * * * 3fed e3bfad,ef91aa 3fed,f46a 00003fed,0000f46a 8a6d * * 8a6d * * 8a6d -17206 * * * * * * * 3506 e39486,ef91ab 3506,f46b 00003506,0000f46b 8a6e * * 8a6e * * 8a6e -17207 * * * * * * * f46c f0a58b87,ef91ac d854dec7,f46c 000252c7,0000f46c 8a6f * * 8a6f * * 8a6f -17208 * * * * * * * f46d f0a99f94,ef91ad d865dfd4,f46d 000297d4,0000f46d 8a70 * * 8a70 * * 8a70 -17209 * * * * * * * * * * * * * * 8a71 * * * -17210 * * * * * * * f46f f0a2b584,ef91af d84bdd44,f46f 00022d44,0000f46f 8a72 * * 8a72 * * 8a72 -17211 * * * * * * * 9d6e e9b5ae,ef91b0 9d6e,f470 00009d6e,0000f470 8a73 * * 8a73 * * 8a73 -17212 * * * * * * * 9815 e9a095,ef91b1 9815,f471 00009815,0000f471 8a74 * * 8a74 * * 8a74 -17213 * * * * * * * * f0abb397 d86fdcd7 0002bcd7 * * * 8a75 * * * -17214 * * * * * * * 43d9 e48f99,ef91b3 43d9,f473 000043d9,0000f473 8a76 * * 8a76 * * 8a76 -17215 * * * * * * * * * * * * * * 8a77 * * * -17216 * * * * * * * 64b4 e692b4,ef91b5 64b4,f475 000064b4,0000f475 8a78 * * 8a78 * * 8a78 -17217 * * * * * * * 54e3 e593a3,ef91b6 54e3,f476 000054e3,0000f476 8a79 * * 8a79 * * 8a79 -17218 * * * * * * * * * * * * * * 8a7a * * * -17219 * * * * * * * f478 ef91b8,f0a2af8a d84adfca,f478 0000f478,00022bca 8a7b * * 8a7b * * 8a7b -17220 * * * * * * * * * * * * * * 8a7c * * * -17221 * * * * * * * 39fb e3a7bb,ef91ba 39fb,f47a 000039fb,0000f47a 8a7d * * 8a7d * * 8a7d -17222 * * * * * * * * f0aba5b7 d86edd77 0002b977 * * * 8a7e * * * -17223 * * * * * * * f47c f0a69b9a,ef91bc d859deda,f47c 000266da,0000f47c 8aa1 * * 8aa1 * * 8aa1 -17224 * * * * * * * f47d f0a69c96,ef91bd d859df16,f47d 00026716,0000f47d 8aa2 * * 8aa2 * * 8aa2 -17225 * * * * * * * f47e f0a7a6a0,ef91be d85edda0,f47e 000279a0,0000f47e 8aa3 * * 8aa3 * * 8aa3 -17226 * * * * * * * 64ea e693aa,ef91bf 64ea,f47f 000064ea,0000f47f 8aa4 * * 8aa4 * * 8aa4 -17227 * * * * * * * f480 f0a58192,ef9280 d854dc52,f480 00025052,0000f480 8aa5 * * 8aa5 * * 8aa5 -17228 * * * * * * * f481 f0a0b183,ef9281 d843dc43,f481 00020c43,0000f481 8aa6 * * 8aa6 * * 8aa6 -17229 * * * * * * * 8e68 e8b9a8,ef9282 8e68,f482 00008e68,0000f482 8aa7 * * 8aa7 * * 8aa7 -17230 * * * * * * * * * * * * * * 8aa8 * * * -17231 * * * * * * * f484 f0a8ad8c,ef9284 d862df4c,f484 00028b4c,0000f484 8aa9 * * 8aa9 * * 8aa9 -17232 * * * * * * * f485 f0a09cb1,ef9285 d841df31,f485 00020731,0000f485 8aaa * * 8aaa * * 8aaa -17233 * * * * * * * * * * * * * * 8aab * * * -17234 * * * * * * * 480b e4a08b,ef9287 480b,f487 0000480b,0000f487 8aac * * 8aac * * 8aac -17235 * * * * * * * f488 f0a086a9,ef9288 d840dda9,f488 000201a9,0000f488 8aad * * 8aad * * 8aad -17236 * * * * * * * 3ffa e3bfba,ef9289 3ffa,f489 00003ffa,0000f489 8aae * * 8aae * * 8aae -17237 * * * * * * * 5873 e5a1b3,ef928a 5873,f48a 00005873,0000f48a 8aaf * * 8aaf * * 8aaf -17238 * * * * * * * f48b f0a2b68d,ef928b d84bdd8d,f48b 00022d8d,0000f48b 8ab0 * * 8ab0 * fb72 8ab0 -17239 * * * * * * * * * * * * * * 8ab1 * * * -17240 * * * * * * * f48d f0a49788,ef928d d851ddc8,f48d 000245c8,0000f48d 8ab2 * * 8ab2 * * 8ab2 -17241 * * * * * * * f48e f0a093bc,ef928e d841dcfc,f48e 000204fc,0000f48e 8ab3 * * 8ab3 * * 8ab3 -17242 * * * * * * * f48f f0a68297,ef928f d858dc97,f48f 00026097,0000f48f 8ab4 * * 8ab4 * * 8ab4 -17243 * * * * * * * f490 f0a0bd8c,ef9290 d843df4c,f490 00020f4c,0000f490 8ab5 * * 8ab5 * * 8ab5 -17244 * * * * * * * * * * * * * * 8ab6 * * * -17245 * * * * * * * 5579 e595b9,ef9292 5579,f492 00005579,0000f492 8ab7 * * 8ab7 * * 8ab7 -17246 * * * * * * * * * * * * * * 8ab8 * * * -17247 * * * * * * * 43ba e48eba,ef9294 43ba,f494 000043ba,0000f494 8ab9 * * 8ab9 * * 8ab9 -17248 * * * * * * * * * * * * * * 8aba * * * -17249 * * * * * * * 4ab4 e4aab4,ef9296 4ab4,f496 00004ab4,0000f496 8abb * * 8abb * * 8abb -17250 * * * * * * * f497 f0a2a9a6,ef9297 d84ade66,f497 00022a66,0000f497 8abc * * 8abc * * 8abc -17251 * * * * * * * f498 f0a1829d,ef9298 d844dc9d,f498 0002109d,0000f498 8abd * * 8abd * * 8abd -17252 * * * * * * * 81aa e886aa,ef9299 81aa,f499 000081aa,0000f499 8abe * * 8abe * * 8abe -17253 * * * * * * * 98f5 e9a3b5,ef929a 98f5,f49a 000098f5,0000f49a 8abf * * 8abf * * 8abf -17254 * * * * * * * f49b f0a0b69c,ef929b d843dd9c,f49b 00020d9c,0000f49b 8ac0 * * 8ac0 * * 8ac0 -17255 * * * * * * * 6379 e68db9,ef929c 6379,f49c 00006379,0000f49c 8ac1 * * 8ac1 * * 8ac1 -17256 * * * * * * * 39fe e3a7be,ef929d 39fe,f49d 000039fe,0000f49d 8ac2 * * 8ac2 * * 8ac2 -17257 * * * * * * * f49e f0a29db5,ef929e d849df75,f49e 00022775,0000f49e 8ac3 * * 8ac3 * * 8ac3 -17258 * * * * * * * 8dc0 e8b780,ef929f 8dc0,f49f 00008dc0,0000f49f 8ac4 * * 8ac4 * * 8ac4 -17259 * * * * * * * 56a1 e59aa1,ef92a0 56a1,f4a0 000056a1,0000f4a0 8ac5 * * 8ac5 * * 8ac5 -17260 * * * * * * * 647c e691bc,ef92a1 647c,f4a1 0000647c,0000f4a1 8ac6 * * 8ac6 * * 8ac6 -17261 * * * * * * * 3e43 e3b983,ef92a2 3e43,f4a2 00003e43,0000f4a2 8ac7 * * 8ac7 * * 8ac7 -17262 * * * * * * * * * * * * * * 8ac8 * * * -17263 * * * * * * * f4a4 f0aa9881,ef92a4 d869de01,f4a4 0002a601,0000f4a4 8ac9 * * 8ac9 * * 8ac9 -17264 * * * * * * * f4a5 f0a0b889,ef92a5 d843de09,f4a5 00020e09,0000f4a5 8aca * * 8aca * * 8aca -17265 * * * * * * * f4a6 f0a2ab8f,ef92a6 d84adecf,f4a6 00022acf,0000f4a6 8acb * * 8acb * * 8acb -17266 * * * * * * * * f0ac97b8 d871ddf8 0002c5f8 * * * 8acc * * * -17267 * * * * * * * * * * * * * * 8acd * * * -17268 * * * * * * * f4a9 f0a18388,ef92a9 d844dcc8,f4a9 000210c8,0000f4a9 8ace * * 8ace * * 8ace -17269 * * * * * * * f4aa f0a3a782,ef92aa d84eddc2,f4aa 000239c2,0000f4aa 8acf * * 8acf * * 8acf -17270 * * * * * * * 3992 e3a692,ef92ab 3992,f4ab 00003992,0000f4ab 8ad0 * * 8ad0 * * 8ad0 -17271 * * * * * * * 3a06 e3a886,ef92ac 3a06,f4ac 00003a06,0000f4ac 8ad1 * * 8ad1 * * 8ad1 -17272 * * * * * * * f4ad f0a88a9b,ef92ad d860de9b,f4ad 0002829b,0000f4ad 8ad2 * * 8ad2 * * 8ad2 -17273 * * * * * * * 3578 e395b8,ef92ae 3578,f4ae 00003578,0000f4ae 8ad3 * * 8ad3 * * 8ad3 -17274 * * * * * * * f4af f0a5b989,ef92af d857de49,f4af 00025e49,0000f4af 8ad4 * * 8ad4 * * 8ad4 -17275 * * * * * * * f4b0 f0a28387,ef92b0 d848dcc7,f4b0 000220c7,0000f4b0 8ad5 * * 8ad5 * * 8ad5 -17276 * * * * * * * * * * * * * * 8ad6 * * * -17277 * * * * * * * * * * * * * * 8ad7 * * * -17278 * * * * * * * f4b3 f0a2b2b2,ef92b3 d84bdcb2,f4b3 00022cb2,0000f4b3 8ad8 * * 8ad8 * * 8ad8 -17279 * * * * * * * f4b4 f0a99ca0,ef92b4 d865df20,f4b4 00029720,0000f4b4 8ad9 * * 8ad9 * * 8ad9 -17280 * * * * * * * 34bc e392bc,ef92b5 34bc,f4b5 000034bc,0000f4b5 8ada * * 8ada * * 8ada -17281 * * * * * * * 6c3d e6b0bd,ef92b6 6c3d,f4b6 00006c3d,0000f4b6 8adb * * 8adb * * 8adb -17282 * * * * * * * f4b7 f0a4b8bb,ef92b7 d853de3b,f4b7 00024e3b,0000f4b7 8adc * * 8adc * * 8adc -17283 * * * * * * * * f0aca6a0 d872dda0 0002c9a0 * * * 8add * * * -17284 * * * * * * * * * * * * * * 8ade * * * -17285 * * * * * * * f4ba f0a795b4,ef92ba d85ddd74,f4ba 00027574,0000f4ba 8adf * * 8adf * * 8adf -17286 * * * * * * * f4bb f0a2ba8b,ef92bb d84bde8b,f4bb 00022e8b,0000f4bb 8ae0 * * 8ae0 * * 8ae0 -17287 * * * * * * * f4bc f0a28888,ef92bc d848de08,f4bc 00022208,0000f4bc 8ae1 * * 8ae1 * * 8ae1 -17288 * * * * * * * f4bd f0aa999b,ef92bd d869de5b,f4bd 0002a65b,0000f4bd 8ae2 * * 8ae2 * * 8ae2 -17289 * * * * * * * f4be f0a8b38d,ef92be d863dccd,f4be 00028ccd,0000f4be 8ae3 * * 8ae3 * * 8ae3 -17290 * * * * * * * f4bf f0a0b9ba,ef92bf d843de7a,f4bf 00020e7a,0000f4bf 8ae4 * * 8ae4 * * 8ae4 -17291 * * * * * * * f4c0 ef9380,f0a0b0b4 d843dc34,f4c0 00020c34,0000f4c0 8ae5 * * 8ae5 * * 8ae5 -17292 * * * * * * * f4db f0a798b9,ef939b d85dde39,f4db 00027639,0000f4db 8b41 * * 8b41 * * 8b41 -17293 * * * * * * * f4dc f0a2af8e,ef939c d84adfce,f4dc 00022bce,0000f4dc 8b42 * * 8b42 * * 8b42 -17294 * * * * * * * f4df ef939f,f0a2b191 d84bdc51,f4df 0000f4df,00022c51 8b45 * * 8b45 * * 8b45 -17295 * * * * * * * 3a18 e3a898,ef93a1 3a18,f4e1 00003a18,0000f4e1 8b47 * * 8b47 * fb6d 8b47 -17296 * * * * * * * f4e3 ef93a3,f0a18387 d844dcc7,f4e3 0000f4e3,000210c7 8b49 * * 8b49 * * 8b49 -17297 * * * * * * * f4e5 ef93a5,f0aa98b2 d869de32,f4e5 0000f4e5,0002a632 8b4b * * 8b4b * * 8b4b -17298 * * * * * * * f4e7 f0a8b392,ef93a7 d863dcd2,f4e7 00028cd2,0000f4e7 8b4d * * 8b4d * * 8b4d -17299 * * * * * * * f4e8 f0a8b699,ef93a8 d863dd99,f4e8 00028d99,0000f4e8 8b4e * * 8b4e * * 8b4e -17300 * * * * * * * f4e9 f0a8b38a,ef93a9 d863dcca,f4e9 00028cca,0000f4e9 8b4f * * 8b4f * * 8b4f -17301 * * * * * * * 95aa e996aa,ef93aa 95aa,f4ea 000095aa,0000f4ea 8b50 * * 8b50 * * 8b50 -17302 * * * * * * * * * * * * fbe4 * 8b54 * * * -17303 * * * * * * * f4f2 ef93b2,f0a79d9e d85ddf5e,f4f2 0000f4f2,0002775e 8b58 * * 8b58 * * 8b58 -17304 * * * * * * * 7140 e78580,ef93b4 7140,f4f4 00007140,0000f4f4 8b5a * * 8b5a * * 8b5a -17305 * * * * * * * * * * * * fae1 * * c742 fa42 * -17306 * * * * * * * 5156 e58596,ef8eb1 5156,f3b1 00005156,0000f3b1 8951 * * * * fa45 8951 -17307 * * * * * * * * e4bbbe 4efe 00004efe * * * * c747 fa4a * -17308 * * * * * * * 5088 e58288,ef9097 5088,f417 00005088,0000f417 89d9 * * * * fa4e 89d9 -17309 * * * * * * * * * * * * * * * c749 fa50 * -17310 * * * * * * * 3493 e39293,ef9099 3493,f419 00003493,0000f419 89db * * * * fa52 89db -17311 * * * * * * * 5186 e58686,ef909b 5186,f41b 00005186,0000f41b 89dd * * * c74b fa53 89dd -17312 * * * * * * * 5e42 e5b982,ef98bd 5e42,f63d 00005e42,0000f63d 8d69 * * * * fa56 8d69 -17313 * * * * * * * 5205 e58885,ef909f 5205,f41f 00005205,0000f41f 89e1 * * * * fa5f 89e1 -17314 * * * * * * * 5227 e588a7,ef8fa4 5227,f3e4 00005227,0000f3e4 89a6 * * * c753 fa60 89a6 -17315 * * * * * * * 5279 e589b9,ef90a1 5279,f421 00005279,0000f421 89e3 * * * * fa64 89e3 -17316 * * * * * * * * f0afa0a8 d87edc28 0002f828 * * * * c75a fa6a * -17317 * * * * * * * 3553 e39593,ef90a8 3553,f428 00003553,0000f428 89ea * * * * fa70 89ea -17318 * * * * * * * 53c2 e58f82,ef90a9 53c2,f429 000053c2,0000f429 89eb * * * c75f fa72 89eb -17319 * * * * * * * 535f e58d9f,ef93bb 535f,f4fb 0000535f,0000f4fb 8b61 * * * c762 fa76 8b61 -17320 * * * * * * * 54cc * * * * * * * c76e faa7 * -17321 * * * * * * * 553f e594bf,ef90b8 553f,f438 0000553f,0000f438 89fa * * * c779 fab3 89fa -17322 * * * * * * * 55b9 * * * * * * * * fabb * -17323 * * * * * * * 55d8 e59798,eea992 55d8,ea52 000055d8,0000ea52 99e4 * * * c7a5 fabe 99e4 -17324 * * * * * * * 35dd e3979d,ef9482 35dd,f502 000035dd,0000f502 8b68 * * * c7a7 fac0 8b68 -17325 * * * * * * * 5621 e598a1,ef999b 5621,f65b 00005621,0000f65b 8da9 * * * c7ae fac8 8da9 -17326 * * * * * * * 5553 * * * * * * * c7b1 facb * -17327 * * * * * * * 5654 e59994,eeaa8c 5654,ea8c 00005654,0000ea8c 9a5f fbe1 917b * c7b6 fad0 9a5f -17328 * * * * * * * eaf4 eeabb4,f0a181bb d844dc7b,eaf4 0000eaf4,0002107b 9ae9 * * * * fad8 9ae9 -17329 * * * * * * * * * * * * * * * c7be fadc * -17330 * * * * * * * eaf9 eeabb9,f0a18393 d844dcd3,eaf9 0000eaf9,000210d3 9aee * * * c7bf fadd 9aee -17331 * * * * * * * * * * * * * * * * fade * -17332 * * * * * * * eea7 eebaa7,f0a18bbe d844defe,eea7 0000eea7,000212fe a0ee * * * c7c4 fae4 a0ee -17333 * * * * * * * 5acf * * * * * * * c7cc faf1 * -17334 * * * * * * * * * * * * * * * * faf9 * -17335 * * * * * * * 37b9 e39eb9,eeab88 37b9,eac8 000037b9,0000eac8 9abd * * * * fafb 9abd -17336 * * * * * * * 5cc1 e5b381,eebaab 5cc1,eeab 00005cc1,0000eeab a0f2 * * * * fafc a0f2 -17337 * * * * * * * 5d15 e5b495,ef999a 5d15,f65a 00005d15,0000f65a 8da8 * * * * fb41 8da8 -17338 * * * * * * * 5d56 e5b596,ef98b6 5d56,f636 00005d56,0000f636 8d62 * * * * fb43 8d62 -17339 * * * * * * * 3838 e3a0b8,ef98bc 3838,f63c 00003838,0000f63c 8d68 * * * * fb47 8d68 -17340 * * * * * * * 4e81 e4ba81,ef908d 4e81,f40d 00004e81,0000f40d 89cf * * * c7d7 fb49 89cf -17341 * * * * * * * 5ebd e5babd,ef98be 5ebd,f63e 00005ebd,0000f63e 8d6a * * * c7d8 fb4b 8d6a -17342 * * * * * * * 3914 e3a494,ef9982 3914,f642 00003914,0000f642 8d6e * * * * fb55 8d6e -17343 * * * * * * * 61b9 e686b9,ef998a 61b9,f64a 000061b9,0000f64a 8d76 * * * * fb5d 8d76 -17344 * * * * * * * 6290 e68a90,ef998e 6290,f64e 00006290,0000f64e 8d7a * * * * fb61 8d7a -17345 * * * * * * * 6318 e68c98,ef9990 6318,f650 00006318,0000f650 8d7c * * * c7ec fb65 8d7c -17346 * * * * * * * 645a e6919a,ef9997 645a,f657 0000645a,0000f657 8da5 * * * c7f5 fb70 8da5 -17347 * * * * * * * 6491 e69291,ef8ead 6491,f3ad 00006491,0000f3ad 894d * * * c7f6 fb71 894d -17348 * * * * * * * 816d e885ad,ef93b5 816d,f4f5 0000816d,0000f4f5 8b5b * * * * fba4 8b5b -17349 * * * * * * * 8184 e88684,eea892 8184,ea12 00008184,0000ea12 99a4 * * * * fba5 99a4 -17350 * * * * * * * 8193 e88693,eea894 8193,ea14 00008193,0000ea14 99a6 * * * * fba7 99a6 -17351 * * * * * * * 6800 e6a080,ef99a8 6800,f668 00006800,0000f668 8db6 * * * * fbab 8db6 -17352 * * * * * * * 3bbc e3aebc,ef99b5 3bbc,f675 00003bbc,0000f675 8dc3 * * * * fbb1 8dc3 -17353 * * * * * * * 728f e78a8f,eeb1a5 728f,ec65 0000728f,0000ec65 9d61 * * * * fbd4 9d61 -17354 * * * * * * * 72cd e78b8d,eea685 72cd,e985 000072cd,0000e985 98b4 * * * c863 fbd5 98b4 -17355 * * * * * * * * f0a49faf d851dfef 000247ef * * * * c866 fbd8 * -17356 * * * * * * * 7339 e78cb9,eea689 7339,e989 00007339,0000e989 98b8 * * * c867 fbd9 98b8 -17357 * * * * * * * 7542 e79582,eea6a3 7542,e9a3 00007542,0000e9a3 98d2 * * * * fbe1 98d2 -17358 * * * * * * * 75dc e7979c,eea6a9 75dc,e9a9 000075dc,0000e9a9 98d8 * * * c86f fbe5 98d8 -17359 * * * * * * * 3fc0 e3bf80,eea6aa 3fc0,e9aa 00003fc0,0000e9aa 98d9 * * * c871 fbe7 98d9 -17360 * * * * * * * eb76 eeadb6,f0a4baa5 d853dea5,eb76 0000eb76,00024ea5 9bce * * * * fbea 9bce -17361 * * * * * * * 3fd7 e3bf97,eea6ac 3fd7,e9ac 00003fd7,0000e9ac 98db * * * * fbec 98db -17362 * * * * * * * * * * * * fd73 * * * fbee * -17363 * * * * * * * 7680 e79a80 7680 00007680 * * * * c874 fbef * -17364 * * * * * * * 768c,e9b0 e79a8c,eea6b0,f0a4bd9c 768c,d853df5c,e9b0 0000768c,0000e9b0,00024f5c 98df * * * * fbf0 98df -17365 * * * * * * * 40a8 e482a8,eea785 40a8,e9c5 000040a8,0000e9c5 98f4 * * * * fbf9 98f4 -17366 * * * * * * * 7839 e7a0b9,eea786 7839,e9c6 00007839,0000e9c6 98f5 * * * * fbfa 98f5 -17367 * * * * * * * 4103 e48483,eea78f 4103,e9cf 00004103,0000e9cf 98fe * * * * fc43 98fe -17368 * * * * * * * 7a91 e7aa91,eea797 7a91,e9d7 00007a91,0000e9d7 9947 * * * * fc4a 9947 -17369 * * * * * * * 7c1b e7b09b,eea7a4 7c1b,e9e4 00007c1b,0000e9e4 9954 * * * * fc51 9954 -17370 * * * * * * * 7ced e7b3ad,eea7ac 7ced,e9ec 00007ced,0000e9ec 995c * * * c8a6 fc56 995c -17371 * * * * * * * 7f93 e7be93,ef9382 7f93,f4c2 00007f93,0000f4c2 8ae7 * * * c8ae fc62 8ae7 -17372 * * * * * * * 7fae e7beae,eea7b4 7fae,e9f4 00007fae,0000e9f4 9964 * * * c8b0 fc64 9964 -17373 * * * * * * * * * * * * * * * * fc68 * -17374 * * * * * * * 82ff e88bbf,eea8a0 82ff,ea20 000082ff,0000ea20 99b2 * * * * fc6a 99b2 -17375 * * * * * * * 585f e5a19f,eea98d 585f,ea4d 0000585f,0000ea4d 99df * * * * fc6e 99df -17376 * * * * * * * 86b2 e89ab2,eea8b8 86b2,ea38 000086b2,0000ea38 99ca * * * * fc74 99ca -17377 * * * * * * * * e496ac 45ac 000045ac * * * * * fc75 * -17378 * * * * * * * 878b e89e8b,eea8bb 878b,ea3b 0000878b,0000ea3b 99cd * * * * fc77 99cd -17379 * * * * * * * 8947 e8a587,eea981 8947,ea41 00008947,0000ea41 99d3 * * * * fca6 99d3 -17380 * * * * * * * * * * * * * * * c8c3 fca8 * -17381 * * * * * * * 8a29 e8a8a9,eea984 8a29,ea44 00008a29,0000ea44 99d6 * * * * fcab 99d6 -17382 * * * * * * * * * * * * fe49 * * * fcad * -17383 * * * * * * * 8e71 e8b9b1,eea994 8e71,ea54 00008e71,0000ea54 99e6 * * * c8ca fcb4 99e6 -17384 * * * * * * * ec44 eeb184,f0a88689 d860dd89,ec44 0000ec44,00028189 9d40 * * * c8cb fcb5 9d40 -17385 * * * * * * * 8eb0 e8bab0,eea996 8eb0,ea56 00008eb0,0000ea56 99e8 * * * c8cd fcb7 99e8 -17386 * * * * * * * * f0ab90ac d86ddc2c 0002b42c * * * * * fcbf * -17387 * * * * * * * 915e e9859e,ef8fab 915e,f3eb 0000915e,0000f3eb 89ad fe62 90c8 * * fcc1 89ad -17388 * * * * * * * 918c e9868c,ef8fa9 918c,f3e9 0000918c,0000f3e9 89ab * * * * fcc5 89ab -17389 * * * * * * * 990e e9a48e,eeaa93 990e,ea93 0000990e,0000ea93 9a66 * * * * fcda 9a66 -17390 * * * * * * * 991c e9a49c,eeaa96 991c,ea96 0000991c,0000ea96 9a69 * * * * fcdb 9a69 -17391 * * * * * * * 9962 * * * * * * * c8e8 fcdf * -17392 * * * * * * * 9ab6 * * * * * * * * fce3 * -17393 * * * * * * * 9b81 e9ae81,eeaaa2 9b81,eaa2 00009b81,0000eaa2 9a75 * * * c8ee fce9 9a75 -17394 * * * * * * * 9dc0 e9b780,eeaab0 9dc0,eab0 00009dc0,0000eab0 9aa5 * * * c8f6 fcf4 9aa5 -17395 * * * * * * * 9d93 e9b693,eeaaae 9d93,eaae 00009d93,0000eaae 9aa3 * * * c8f7 fcf5 9aa3 -17396 * * * * * * * 9eac e9baac,eeaab5 9eac,eab5 00009eac,0000eab5 9aaa * * * * fcfa 9aaa -17397 * * * * * * * 4d91 e4b691,eeb1bc 4d91,ec7c 00004d91,0000ec7c 9d78 * * * * fcfd 9d78 -17398 * * * * * * * * * * * * * 8eab * * * * -17399 * * * * * * * 93ba e98eba 93ba 000093ba * * 90d3 * * * * -17400 * * * * * * * 9e7b e9b9bb,eeaab4 9e7b,eab4 00009e7b,0000eab4 9aa9 * 9146 * * * 9aa9 -17401 * * * * * * * 7089 e78289,ef9aac 7089,f6ac 00007089,0000f6ac 8dfa fcdb 8ea5 * * * 8dfa -17402 * * * * * * * 7348 e78d88,eea68c 7348,e98c 00007348,0000e98c 98bb fcf2 8fdb * * * 98bb -17403 * * * * * * * * * * * * fd64 91e8 * * * * -17404 * * * * * * * 7999 e7a699,eea792 7999,e9d2 00007999,0000e9d2 9942 fde2 915d * * * 9942 -17405 * * * * * * * 8fb7 e8beb7,eea99d 8fb7,ea5d 00008fb7,0000ea5d 99ef fe67 8ee7 * * * 99ef -17406 * * * * * * * * * * * * fe6a 90c5 * * * * -17407 * * * * * * * 9942 e9a582,eeaa98 9942,ea98 00009942,0000ea98 9a6b febd 8f4f * * * 9a6b -17408 * * * * * * * * * * * * * * * * * * -17409 * * * * * * * * * * * * * * * * * * -17410 * * * * * * * * * * * * * * * * * * -17411 * * * * * * * * * * * * * * * * * * -17412 * * * * * * * * * * * * * * * * * * -17413 * * * * * * * * * * * * * * * * * * -17414 * * * * * * * * * * * * * * * * * * -17415 * * * * * * * * * * * * * * * * * * -17416 * * * * * * * * * * * * * * * * * * -17417 * * * * * * * * * * * * * * * * * * -17418 * * * * * * * * * * * * * * * * * * -17419 * * * * * * * * * * * * * * * * * * -17420 * * * * * * * * * * * * * * * * * * -17421 * * * * * * * * * * * * * * * * * * -17422 * * * * * * * * * * * * * * * * * * -17423 * * * * * * * * * * * * * * * * * * -17424 * * * * * * * * * * * * * * * * * * -17425 * * * * * * * * * * * * * * * * * * -17426 * * * * * * * * * * * * * * * * * * -17427 * * * * * * * * * * * * * * * * * * -17428 * * * * * * * * * * * * * * * * * * -17429 * * * * * * * * * * * * * * * * * * -17430 * * * * * * * * * * * * * * * * * * -17431 * * * * * * * * * * * * * * * * * * -17432 * * * * * * * * * * * * * * * * * * -17433 * * * * * * * * * * * * * * * * * * -17434 * * * * * * * * * * * * * * * * * * -17435 * * * * * * * * * * * * * * * * * * -17436 * * * * * * * * * * * * * * * * * * -17437 * * * * * * * * * * * * * * * * * * -17438 * * * * * * * * * * * * * * * * * * -17439 * * * * * * * * * * * * * * * * * * -17440 * * * * * * * * * * * * * * * * * * -17441 * * * * * * * * * * * * * * * * * * -17442 * * * * * * * * * * * * * * * * * * -17443 * * * * * * * * * * * * * * * * * * -17444 * * * * * * * * * * * * * * * * * * -17445 * * * * * * * * * * * * * * * * * * -17446 * * * * * * * * * * * * * * * * * * -17447 * * * * * * * * * * * * * * * * * * -17448 * * * * * * * * * * * * * * * * * * -17449 * * * * * * * * * * * * * * * * * * -17450 * * * * * * * * * * * * * * * * * * -17451 * * * * * * * * * * * * * * * * * * -17452 * * * * * * * * * * * * * * * * * * -17453 * * * * * * * * * * * * * * * * * * -17454 * * * * * * * * * * * * * * * * * * -17455 * * * * * * * * * * * * * * * * * * -17456 * * * * * * * * * * * * * * * * * * -17457 * * * * * * * * * * * * * * * * * * -17458 * * * * * * * * * * * * * * * * * * -17459 * * * * * * * * * * * * * * * * * * -17460 * * * * * * * * * * * * * * * * * * -17461 * * * * * * * * * * * * * * * * * * -17462 * * * * * * * * * * * * * * * * * * -17463 * * * * * * * * * * * * * * * * * * -17464 * * * * * * * * * * * * * * * * * * -17465 * * * * * * * * * * * * * * * * * * -17466 * * * * * * * * * * * * * * * * * * -17467 * * * * * * * * * * * * * * * * * * -17468 * * * * * * * * * * * * * * * * * * -17469 * * * * * * * * * * * * * * * * * * -17470 * * * * * * * * * * * * * * * * * * -17471 * * * * * * * * * * * * * * * * * * -17472 * * * * * * * * * * * * * * * * * * -17473 * * * * * * * * * * * * * * * * * * -17474 * * * * * * * * * * * * * * * * * * -17475 * * * * * * * * * * * * * * * * * * -17476 * * * * * * * * * * * * * * * * * * -17477 * * * * * * * * * * * * * * * * * * -17478 * * * * * * * * * * * * * * * * * * -17479 * * * * * * * * * * * * * * * * * * -17480 * * * * * * * * * * * * * * * * * * -17481 * * * * * * * * * * * * * * * * * * -17482 * * * * * * * * * * * * * * * * * * -17483 * * * * * * * * * * * * * * * * * * -17484 * * * * * * * * * * * * * * * * * * -17485 * * * * * * * * * * * * * * * * * * -17486 * * * * * * * * * * * * * * * * * * -17487 * * * * * * * * * * * * * * * * * * -17488 * * * * * * * * * * * * * * * * * * -17489 * * * * * * * * * * * * * * * * * * -17490 * * * * * * * * * * * * * * * * * * -17491 * * * * * * * * * * * * * * * * * * -17492 * * * * * * * * * * * * * * * * * * -17493 * * * * * * * * * * * * * * * * * * -17494 * * * * * * * * * * * * * * * * * * -17495 * * * * * * * * * * * * * * * * * * -17496 * * * * * * * * * * * * * * * * * * -17497 * * * * * * * * * * * * * * * * * * -17498 * * * * * * * * * * * * * * * * * * -17499 * * * * * * * * * * * * * * * * * * -17500 * * * * * * * * * * * * * * * * * * -17501 * * * * * * * * * * * * * * * * * * -17502 * * * * * * * * * * * * * * * * * * -17503 * * * * * * * * * * * * * * * * * * -17504 * * * * * * * * * * * * * * * * * * -17505 * * * * * * * * * * * * * * * * * * -17506 * * * * * * * * * * * * * * * * * * -17507 * * * * * * * * * * * * * * * * * * -17508 * * * * * * * * * * * * * * * * * * -17509 * * * * * * * * * * * * * * * * * * -17510 * * * * * * * * * * * * * * * * * * -17511 * * * * * * * * * * * * * * * * * * -17512 * * * * * * * * * * * * * * * * * * -17513 * * * * * * * * * * * * * * * * * * -17514 * * * * * * * * * * * * * * * * * * -17515 * * * * * * * * * * * * * * * * * * -17516 * * * * * * * * * * * * * * * * * * -17517 * * * * * * * * * * * * * * * * * * -17518 * * * * * * * * * * * * * * * * * * -17519 * * * * * * * * * * * * * * * * * * -17520 * * * * * * * * * * * * * * * * * * -17521 * * * * * * * * * * * * * * * * * * -17522 * * * * * * * * * * * * * * * * * * -17523 * * * * * * * * * * * * * * * * * * -17524 * * * * * * * * * * * * * * * * * * -17525 * * * * * * * * * * * * * * * * * * -17526 * * * * * * * * * * * * * * * * * * -17527 * * * * * * * * * * * * * * * * * * -17528 * * * * * * * * * * * * * * * * * * -17529 * * * * * * * * * * * * * * * * * * -17530 * * * * * * * * * * * * * * * * * * -17531 * * * * * * * * * * * * * * * * * * -17532 * * * * * * * * * * * * * * * * * * -17533 * * * * * * * * * * * * * * * * * * -17534 * * * * * * * * * * * * * * * * * * -17535 * * * * * * * * * * * * * * * * * * -17536 * * * * * * * * * * * * * * * * * * -17537 * * * * * * * * * * * * * * * * * * -17538 * * * * * * * * * * * * * * * * * * -17539 * * * * * * * * * * * * * * * * * * -17540 * * * * * * * * * * * * * * * * * * -17541 * * * * * * * * * * * * * * * * * * -17542 * * * * * * * * * * * * * * * * * * -17543 * * * * * * * * * * * * * * * * * * -17544 * * * * * * * * * * * * * * * * * * -17545 * * * * * * * * * * * * * * * * * * -17546 * * * * * * * * * * * * * * * * * * -17547 * * * * * * * * * * * * * * * * * * -17548 * * * * * * * * * * * * * * * * * * -17549 * * * * * * * * * * * * * * * * * * -17550 * * * * * * * * * * * * * * * * * * -17551 * * * * * * * * * * * * * * * * * * -17552 * * * * * * * * * * * * * * * * * * -17553 * * * * * * * * * * * * * * * * * * -17554 * * * * * * * * * * * * * * * * * * -17555 * * * * * * * * * * * * * * * * * * -17556 * * * * * * * * * * * * * * * * * * -17557 * * * * * * * * * * * * * * * * * * -17558 * * * * * * * * * * * * * * * * * * -17559 * * * * * * * * * * * * * * * * * * -17560 * * * * * * * * * * * * * * * * * * -17561 * * * * * * * * * * * * * * * * * * -17562 * * * * * * * * * * * * * * * * * * -17563 * * * * * * * * * * * * * * * * * * -17564 * * * * * * * * * * * * * * * * * * -17565 * * * * * * * * * * * * * * * * * * -17566 * * * * * * * * * * * * * * * * * * -17567 * * * * * * * * * * * * * * * * * * -17568 * * * * * * * * * * * * * * * * * * -17569 * * * * * * * * * * * * * * * * * * -17570 * * * * * * * * * * * * * * * * * * -17571 * * * * * * * * * * * * * * * * * * -17572 * * * * * * * * * * * * * * * * * * -17573 * * * * * * * * * * * * * * * * * * -17574 * * * * * * * * * * * * * * * * * * -17575 * * * * * * * * * * * * * * * * * * -17576 * * * * * * * * * * * * * * * * * * -17577 * * * * * * * * * * * * * * * * * * -17578 * * * * * * * * * * * * * * * * * * -17579 * * * * * * * * * * * * * * * * * * -17580 * * * * * * * * * * * * * * * * * * -17581 * * * * * * * * * * * * * * * * * * -17582 * * * * * * * * * * * * * * * * * * -17583 * * * * * * * * * * * * * * * * * * -17584 * * * * * * * * * * * * * * * * * * -17585 * * * * * * * * * * * * * * * * * * -17586 * * * * * * * * * * * * * * * * * * -17587 * * * * * * * * * * * * * * * * * * -17588 * * * * * * * * * * * * * * * * * * -17589 * * * * * * * * * * * * * * * * * * -17590 * * * * * * * * * * * * * * * * * * -17591 * * * * * * * * * * * * * * * * * * -17592 * * * * * * * * * * * * * * * * * * -17593 * * * * * * * * * * * * * * * * * * -17594 * * * * * * * * * * * * * * * * * * -17595 * * * * * * * * * * * * * * * * * * -17596 * * * * * * * * * * * * * * * * * * -17597 * * * * * * * * * * * * * * * * * * -17598 * * * * * * * * * * * * * * * * * * -17599 * * * * * * * * * * * * * * * * * * -17600 * * * * * * * * * * * * * * * * * * -17601 * * * * * * * 20ac e282ac 20ac 000020ac * * * * * * * -17602 * * * * * * * * * * * * * * * * * * -17603 * * * * * * * * * * * * * * * * * * -17604 * * * * * * * * * * * * * * * * * * -17605 * * * * * * * * * * * * * * * * * * -17606 * * * * * * * 309b e3829b,efa09e 309b,f81e 0000309b,0000f81e c8d4 * * * * * c8d4 -17607 * * * * * * * 309c e3829c,efa09f 309c,f81f 0000309c,0000f81f c8d5 * * * * * c8d5 -17608 * * * * * * * 2e80 e2ba80,efa0a0 2e80,f820 00002e80,0000f820 c8d6 * * * * * c8d6 -17609 * * * * * * * f303 e38780,ef8c83 31c0,f303 000031c0,0000f303 8840 * * * * * 8840 -17610 * * * * * * * f304 e38781,ef8c84 31c1,f304 000031c1,0000f304 8841 * * * * * 8841 -17611 * * * * * * * f305 e38782,ef8c85 31c2,f305 000031c2,0000f305 8842 * * * * * 8842 -17612 * * * * * * * f306 e38783,ef8c86 31c3,f306 000031c3,0000f306 8843 * * * * * 8843 -17613 * * * * * * * f307 e38784,ef8c87 31c4,f307 000031c4,0000f307 8844 * * * * * 8844 -17614 * * * * * * * f308 f0a0848c,ef8c88 d840dd0c,f308 0002010c,0000f308 8845 * * * * * 8845 -17615 * * * * * * * f309 e38785,ef8c89 31c5,f309 000031c5,0000f309 8846 * * * * * 8846 -17616 * * * * * * * f30a f0a08391,ef8c8a d840dcd1,f30a 000200d1,0000f30a 8847 * * * * * 8847 -17617 * * * * * * * f30b f0a0838d,ef8c8b d840dccd,f30b 000200cd,0000f30b 8848 * * * * * 8848 -17618 * * * * * * * f30c e38786,ef8c8c 31c6,f30c 000031c6,0000f30c 8849 * * * * * 8849 -17619 * * * * * * * f30d e38787,ef8c8d 31c7,f30d 000031c7,0000f30d 884a * * * * * 884a -17620 * * * * * * * f30e f0a0838b,ef8c8e d840dccb,f30e 000200cb,0000f30e 884b * * * * * 884b -17621 * * * * * * * f30f f0a1bfa8,ef8c8f d847dfe8,f30f 00021fe8,0000f30f 884c * * * * * 884c -17622 * * * * * * * f310 e38788,ef8c90 31c8,f310 000031c8,0000f310 884d * * * * * 884d -17623 * * * * * * * f311 f0a0838a,ef8c91 d840dcca,f311 000200ca,0000f311 884e * * * * * 884e -17624 * * * * * * * f312 e38789,ef8c92 31c9,f312 000031c9,0000f312 884f * * * * * 884f -17625 * * * * * * * f313 e3878a,ef8c93 31ca,f313 000031ca,0000f313 8850 * * * * * 8850 -17626 * * * * * * * f314 e3878b,ef8c94 31cb,f314 000031cb,0000f314 8851 * * * * * 8851 -17627 * * * * * * * f315 e3878c,ef8c95 31cc,f315 000031cc,0000f315 8852 * * * * * 8852 -17628 * * * * * * * f316 f0a0848e,ef8c96 d840dd0e,f316 0002010e,0000f316 8853 * * * * * 8853 -17629 * * * * * * * f317 e3878d,ef8c97 31cd,f317 000031cd,0000f317 8854 * * * * * 8854 -17630 * * * * * * * f318 e3878e,ef8c98 31ce,f318 000031ce,0000f318 8855 * * * * * 8855 -17631 * * * * * * * * ef94b8 f538 0000f538 8bc0 * * * * * 8bc0 -17632 * * * * * * * * e2bca1,e5a482,ef94b9 2f21,5902,f539 00002f21,00005902,0000f539 8bc1 * * * * * 8bc1 -17633 * * * * * * * f53a f0a1af81,ef94ba d846dfc1,f53a 00021bc1,0000f53a 8bc2 * * * * * 8bc2 -17634 * * * * * * * f53b f0afa1b8,ef94bb d87edc78,f53b 0002f878,0000f53b 8bc3 * * * * * 8bc3 -17635 * * * * * * * 9751 e2bead,e99d91,ef94bc 2fad,9751,f53c 00002fad,00009751,0000f53c 8bc4 * * * * * 8bc4 -17636 * * * * * * * f53d f0a08286,ef94bd d840dc86,f53d 00020086,0000f53d 8bc5 * * * * * 8bc5 -17637 * * * * * * * 4e5b e4b99b,ef94be 4e5b,f53e 00004e5b,0000f53e 8bc6 * * * * * 8bc6 -17638 * * * * * * * 4ebb e4babb,ef94bf 4ebb,f53f 00004ebb,0000f53f 8bc7 * * * * * 8bc7 -17639 * * * * * * * 353e e394be,ef9580 353e,f540 0000353e,0000f540 8bc8 * * * * * 8bc8 -17640 * * * * * * * 5c23 e5b0a3,ef9581 5c23,f541 00005c23,0000f541 8bc9 * * * * * 8bc9 -17641 * * * * * * * 5f51 e5bd91,ef9582 5f51,f542 00005f51,0000f542 8bca * * * * * 8bca -17642 * * * * * * * 5fc4 e5bf84,ef9583 5fc4,f543 00005fc4,0000f543 8bcb * * * * * 8bcb -17643 * * * * * * * 38fa e3a3ba,ef9584 38fa,f544 000038fa,0000f544 8bcc * * * * * 8bcc -17644 * * * * * * * 624c e6898c,ef9585 624c,f545 0000624c,0000f545 8bcd * * * * * 8bcd -17645 * * * * * * * 6535 e694b5,ef9586 6535,f546 00006535,0000f546 8bce * * * * * 8bce -17646 * * * * * * * 6b7a e6adba,ef9587 6b7a,f547 00006b7a,0000f547 8bcf * * * * * 8bcf -17647 * * * * * * * 6c35 e6b0b5,ef9588 6c35,f548 00006c35,0000f548 8bd0 * * * * * 8bd0 -17648 * * * * * * * 6c3a e6b0ba,ef9589 6c3a,f549 00006c3a,0000f549 8bd1 * * * * * 8bd1 -17649 * * * * * * * 706c e781ac,ef958a 706c,f54a 0000706c,0000f54a 8bd2 * * * * * 8bd2 -17650 * * * * * * * 722b e788ab,ef958b 722b,f54b 0000722b,0000f54b 8bd3 * * * * * 8bd3 -17651 * * * * * * * 4e2c e4b8ac,ef958c 4e2c,f54c 00004e2c,0000f54c 8bd4 * * * * * 8bd4 -17652 * * * * * * * 72ad e78aad,ef958d 72ad,f54d 000072ad,0000f54d 8bd5 * * * * * 8bd5 -17653 * * * * * * * f54e f0a4a3a9,ef958e d852dce9,f54e 000248e9,0000f54e 8bd6 * * * * * 8bd6 -17654 * * * * * * * 7f52 e7bd92,ef958f 7f52,f54f 00007f52,0000f54f 8bd7 * * * * * 8bd7 -17655 * * * * * * * 793b e7a4bb,ef9590 793b,f550 0000793b,0000f550 8bd8 * * * * * 8bd8 -17656 * * * * * * * 7cf9 e7b3b9,ef9591 7cf9,f551 00007cf9,0000f551 8bd9 * * * * * 8bd9 -17657 * * * * * * * 7f53 e7bd93,ef9592 7f53,f552 00007f53,0000f552 8bda * * * * * 8bda -17658 * * * * * * * f553 f0a689aa,ef9593 d858de6a,f553 0002626a,0000f553 8bdb * * * * * 8bdb -17659 * * * * * * * 34c1 e39381,ef9594 34c1,f554 000034c1,0000f554 8bdc * * * * * 8bdc -17660 * * * * * * * f556 f0a68d8b,ef9596 d858df4b,f556 0002634b,0000f556 8bde * * * * * 8bde -17661 * * * * * * * 8002 e88082,ef9597 8002,f557 00008002,0000f557 8bdf * * * * * 8bdf -17662 * * * * * * * 8080 e88280,ef9598 8080,f558 00008080,0000f558 8be0 * * * * * 8be0 -17663 * * * * * * * f559 f0a69892,ef9599 d859de12,f559 00026612,0000f559 8be1 * * * * * 8be1 -17664 * * * * * * * f55a f0a6a591,ef959a d85add51,f55a 00026951,0000f55a 8be2 * * * * * 8be2 -17665 * * * * * * * 535d e58d9d,ef959b 535d,f55b 0000535d,0000f55b 8be3 * * * * * 8be3 -17666 * * * * * * * 8864 e8a1a4,ef959c 8864,f55c 00008864,0000f55c 8be4 * * * * * 8be4 -17667 * * * * * * * 89c1 e8a781,ef959d 89c1,f55d 000089c1,0000f55d 8be5 * * * * * 8be5 -17668 * * * * * * * f55e f0a7a2b2,ef959e d85edcb2,f55e 000278b2,0000f55e 8be6 * * * * * 8be6 -17669 * * * * * * * 8ba0 e8aea0,ef959f 8ba0,f55f 00008ba0,0000f55f 8be7 * * * * * 8be7 -17670 * * * * * * * 8d1d e8b49d,ef95a0 8d1d,f560 00008d1d,0000f560 8be8 * * * * * 8be8 -17671 * * * * * * * 9485 e99285,ef95a1 9485,f561 00009485,0000f561 8be9 * * * * * 8be9 -17672 * * * * * * * 9578 e995b8,ef95a2 9578,f562 00009578,0000f562 8bea * * * * * 8bea -17673 * * * * * * * 957f e995bf,ef95a3 957f,f563 0000957f,0000f563 8beb * * * * * 8beb -17674 * * * * * * * 95e8 e997a8,ef95a4 95e8,f564 000095e8,0000f564 8bec * * * * * 8bec -17675 * * * * * * * f565 f0a8b88f,ef95a5 d863de0f,f565 00028e0f,0000f565 8bed * * * * * 8bed -17676 * * * * * * * 97e6 e99fa6,ef95a6 97e6,f566 000097e6,0000f566 8bee * * * * * 8bee -17677 * * * * * * * 9875 e9a1b5,ef95a7 9875,f567 00009875,0000f567 8bef * * * * * 8bef -17678 * * * * * * * 98ce e9a38e,ef95a8 98ce,f568 000098ce,0000f568 8bf0 * * * * * 8bf0 -17679 * * * * * * * 98de e9a39e,ef95a9 98de,f569 000098de,0000f569 8bf1 * * * * * 8bf1 -17680 * * * * * * * 9963 e9a5a3,ef95aa 9963,f56a 00009963,0000f56a 8bf2 * * * * * 8bf2 -17681 * * * * * * * f56b f0a9a090,ef95ab d866dc10,f56b 00029810,0000f56b 8bf3 * * * * * 8bf3 -17682 * * * * * * * 9c7c e9b1bc,ef95ac 9c7c,f56c 00009c7c,0000f56c 8bf4 * * * * * 8bf4 -17683 * * * * * * * 9e1f e9b89f,ef95ad 9e1f,f56d 00009e1f,0000f56d 8bf5 * * * * * 8bf5 -17684 * * * * * * * 9ec4 e9bb84,ef95ae 9ec4,f56e 00009ec4,0000f56e 8bf6 * * * * * 8bf6 -17685 * * * * * * * 6b6f e6adaf,ef95af 6b6f,f56f 00006b6f,0000f56f 8bf7 * * * * * 8bf7 -17686 * * * * * * * * efa487,ef95b0 f907,f570 0000f907,0000f570 8bf8 * * * * * 8bf8 -17687 * * * * * * * 4e37 e4b8b7,ef95b1 4e37,f571 00004e37,0000f571 8bf9 * * * * * 8bf9 -17688 * * * * * * * f572 f0a08287,ef95b2 d840dc87,f572 00020087,0000f572 8bfa * * * * * 8bfa -17689 * * * * * * * 961d e9989d,ef95b3 961d,f573 0000961d,0000f573 8bfb * * * * * 8bfb -17690 * * * * * * * 6237 e688b7,ef95b4 6237,f574 00006237,0000f574 8bfc * * * * * 8bfc -17691 * * * * * * * 94a2 e992a2,ef95b5 94a2,f575 000094a2,0000f575 8bfd * * * * * 8bfd -17692 * * * * * * * 2e84 e2ba84,efa0a1 2e84,f821 00002e84,0000f821 c8d7 * * * * * c8d7 -17693 * * * * * * * 2e86 e2ba86,efa0a2 2e86,f822 00002e86,0000f822 c8d8 * * * * * c8d8 -17694 * * * * * * * 2e87 e2ba87,efa0a3 2e87,f823 00002e87,0000f823 c8d9 * * * * * c8d9 -17695 * * * * * * * 2e88 e2ba88,efa0a4 2e88,f824 00002e88,0000f824 c8da * * * * * c8da -17696 * * * * * * * 2e8a e2ba8a,efa0a5 2e8a,f825 00002e8a,0000f825 c8db * * * * * c8db -17697 * * * * * * * 2e8c e2ba8c,efa0a6 2e8c,f826 00002e8c,0000f826 c8dc * * * * * c8dc -17698 * * * * * * * 2e8d e2ba8d,efa0a7 2e8d,f827 00002e8d,0000f827 c8dd * * * * * c8dd -17699 * * * * * * * 2e95 e2ba95,efa0a8 2e95,f828 00002e95,0000f828 c8de * * * * * c8de -17700 * * * * * * * 2e9c e2ba9c,efa0a9 2e9c,f829 00002e9c,0000f829 c8df * * * * * c8df -17701 * * * * * * * 2ea5 e2baa5,efa0ab 2ea5,f82b 00002ea5,0000f82b c8e1 * * * * * c8e1 -17702 * * * * * * * 2ea7 e2baa7,efa0ac 2ea7,f82c 00002ea7,0000f82c c8e2 * * * * * c8e2 -17703 * * * * * * * 2eaa e2baaa,efa0ad 2eaa,f82d 00002eaa,0000f82d c8e3 * * * * * c8e3 -17704 * * * * * * * 2eac e2baac,efa0ae 2eac,f82e 00002eac,0000f82e c8e4 * * * * * c8e4 -17705 * * * * * * * 2eae e2baae,efa0af 2eae,f82f 00002eae,0000f82f c8e5 * * * * * c8e5 -17706 * * * * * * * 2eb6 e2bab6,efa0b0 2eb6,f830 00002eb6,0000f830 c8e6 * * * * * c8e6 -17707 * * * * * * * 2ebc e2babc,efa0b1 2ebc,f831 00002ebc,0000f831 c8e7 * * * * * c8e7 -17708 * * * * * * * 2ebe e2babe,efa0b2 2ebe,f832 00002ebe,0000f832 c8e8 * * * * * c8e8 -17709 * * * * * * * 2eca e2bb8a,efa0b4 2eca,f834 00002eca,0000f834 c8ea * * * * * c8ea -17710 * * * * * * * 2ecc e2bb8c,efa0b5 2ecc,f835 00002ecc,0000f835 c8eb * * * * * c8eb -17711 * * * * * * * 2ecd e2bb8d,efa0b6 2ecd,f836 00002ecd,0000f836 c8ec * * * * * c8ec -17712 * * * * * * * 2ecf e2bb8f,efa0b7 2ecf,f837 00002ecf,0000f837 c8ed * * * * * c8ed -17713 * * * * * * * 2ed6 e2bb96,efa0b8 2ed6,f838 00002ed6,0000f838 c8ee * * * * * c8ee -17714 * * * * * * * 2ed7 e2bb97,efa0b9 2ed7,f839 00002ed7,0000f839 c8ef * * * * * c8ef -17715 * * * * * * * 2ede e2bb9e,efa0ba 2ede,f83a 00002ede,0000f83a c8f0 * * * * * c8f0 -17716 * * * * * * * f3a0 f0aa8ea9,ef8ea0 d868dfa9,f3a0 0002a3a9,0000f3a0 8940 * * * * * 8940 -17717 * * * * * * * f3a1 f0a18585,ef8ea1 d844dd45,f3a1 00021145,0000f3a1 8941 * * * * * 8941 -17718 * * * * * * * 650a e6948a,ef8ea3 650a,f3a3 0000650a,0000f3a3 8943 * * * * * 8943 -17719 * * * * * * * 4e3d e4b8bd,ef8ea6 4e3d,f3a6 00004e3d,0000f3a6 8946 * * * * * 8946 -17720 * * * * * * * 6edd e6bb9d,ef8ea7 6edd,f3a7 00006edd,0000f3a7 8947 * * * * * 8947 -17721 * * * * * * * 9d4e e9b58e,ef8ea8 9d4e,f3a8 00009d4e,0000f3a8 8948 * * * * * 8948 -17722 * * * * * * * 91df e9879f,ef8ea9 91df,f3a9 000091df,0000f3a9 8949 * * * * * 8949 -17723 * * * * * * * f3ac ef8eac,f0a79cb5 d85ddf35,f3ac 0000f3ac,00027735 894c * * * * * 894c -17724 * * * * * * * 4f1a e4bc9a,ef8eae 4f1a,f3ae 00004f1a,0000f3ae 894e * * * * * 894e -17725 * * * * * * * 4f28 e4bca8,ef8eaf 4f28,f3af 00004f28,0000f3af 894f * * * * * 894f -17726 * * * * * * * 4fa8 e4bea8,ef8eb0 4fa8,f3b0 00004fa8,0000f3b0 8950 * * * * * 8950 -17727 * * * * * * * 5174 e585b4,ef8eb2 5174,f3b2 00005174,0000f3b2 8952 * * * * * 8952 -17728 * * * * * * * 519c e5869c,ef8eb3 519c,f3b3 0000519c,0000f3b3 8953 * * * * * 8953 -17729 * * * * * * * 51e4 e587a4,ef8eb4 51e4,f3b4 000051e4,0000f3b4 8954 * * * * * 8954 -17730 * * * * * * * 52a1 e58aa1,ef8eb5 52a1,f3b5 000052a1,0000f3b5 8955 * * * * * 8955 -17731 * * * * * * * 52a8 e58aa8,ef8eb6 52a8,f3b6 000052a8,0000f3b6 8956 * * * * * 8956 -17732 * * * * * * * 533b e58cbb,ef8eb7 533b,f3b7 0000533b,0000f3b7 8957 * * * * * 8957 -17733 * * * * * * * 534e e58d8e,ef8eb8 534e,f3b8 0000534e,0000f3b8 8958 * * * * * 8958 -17734 * * * * * * * 53d1 e58f91,ef8eb9 53d1,f3b9 000053d1,0000f3b9 8959 * * * * * 8959 -17735 * * * * * * * 53d8 e58f98,ef8eba 53d8,f3ba 000053d8,0000f3ba 895a * * * * * 895a -17736 * * * * * * * 56e2 e59ba2,ef8ebb 56e2,f3bb 000056e2,0000f3bb 895b * * * * * 895b -17737 * * * * * * * 58f0 e5a3b0,ef8ebc 58f0,f3bc 000058f0,0000f3bc 895c * * * * * 895c -17738 * * * * * * * 5904 e5a484,ef8ebd 5904,f3bd 00005904,0000f3bd 895d * * * * * 895d -17739 * * * * * * * 5907 e5a487,ef8ebe 5907,f3be 00005907,0000f3be 895e * * * * * 895e -17740 * * * * * * * 5932 e5a4b2,ef8ebf 5932,f3bf 00005932,0000f3bf 895f * * * * * 895f -17741 * * * * * * * 5934 e5a4b4,ef8f80 5934,f3c0 00005934,0000f3c0 8960 * * * * * 8960 -17742 * * * * * * * 5b66 e5ada6,ef8f81 5b66,f3c1 00005b66,0000f3c1 8961 * * * * * 8961 -17743 * * * * * * * 5b9e e5ae9e,ef8f82 5b9e,f3c2 00005b9e,0000f3c2 8962 * * * * * 8962 -17744 * * * * * * * 5b9f e5ae9f,ef8f83 5b9f,f3c3 00005b9f,0000f3c3 8963 * * * * * 8963 -17745 * * * * * * * 5c9a e5b29a,ef8f84 5c9a,f3c4 00005c9a,0000f3c4 8964 * * * * * 8964 -17746 * * * * * * * 5e86 e5ba86,ef8f85 5e86,f3c5 00005e86,0000f3c5 8965 * * * * * 8965 -17747 * * * * * * * 603b e680bb,ef8f86 603b,f3c6 0000603b,0000f3c6 8966 * * * * * 8966 -17748 * * * * * * * 6589 e69689,ef8f87 6589,f3c7 00006589,0000f3c7 8967 * * * * * 8967 -17749 * * * * * * * 67fe e69fbe,ef8f88 67fe,f3c8 000067fe,0000f3c8 8968 * * * * * 8968 -17750 * * * * * * * 6804 e6a084,ef8f89 6804,f3c9 00006804,0000f3c9 8969 * * * * * 8969 -17751 * * * * * * * 6865 e6a1a5,ef8f8a 6865,f3ca 00006865,0000f3ca 896a * * * * * 896a -17752 * * * * * * * 6d4e e6b58e,ef8f8b 6d4e,f3cb 00006d4e,0000f3cb 896b * * * * * 896b -17753 * * * * * * * 70bc e782bc,ef8f8c 70bc,f3cc 000070bc,0000f3cc 896c * * * * * 896c -17754 * * * * * * * 7535 e794b5,ef8f8d 7535,f3cd 00007535,0000f3cd 896d * * * * * 896d -17755 * * * * * * * 7ea4 e7baa4,ef8f8e 7ea4,f3ce 00007ea4,0000f3ce 896e * * * * * 896e -17756 * * * * * * * 7eac e7baac,ef8f8f 7eac,f3cf 00007eac,0000f3cf 896f * * * * * 896f -17757 * * * * * * * 7eba e7baba,ef8f90 7eba,f3d0 00007eba,0000f3d0 8970 * * * * * 8970 -17758 * * * * * * * 7ec7 e7bb87,ef8f91 7ec7,f3d1 00007ec7,0000f3d1 8971 * * * * * 8971 -17759 * * * * * * * 7ecf e7bb8f,ef8f92 7ecf,f3d2 00007ecf,0000f3d2 8972 * * * * * 8972 -17760 * * * * * * * 7edf e7bb9f,ef8f93 7edf,f3d3 00007edf,0000f3d3 8973 * * * * * 8973 -17761 * * * * * * * 7f06 e7bc86,ef8f94 7f06,f3d4 00007f06,0000f3d4 8974 * * * * * 8974 -17762 * * * * * * * 7f37 e7bcb7,ef8f95 7f37,f3d5 00007f37,0000f3d5 8975 * * * * * 8975 -17763 * * * * * * * 827a e889ba,ef8f96 827a,f3d6 0000827a,0000f3d6 8976 * * * * * 8976 -17764 * * * * * * * 82cf e88b8f,ef8f97 82cf,f3d7 000082cf,0000f3d7 8977 * * * * * 8977 -17765 * * * * * * * 836f e88daf,ef8f98 836f,f3d8 0000836f,0000f3d8 8978 * * * * * 8978 -17766 * * * * * * * 89c6 e8a786,ef8f99 89c6,f3d9 000089c6,0000f3d9 8979 * * * * * 8979 -17767 * * * * * * * 8bbe e8aebe,ef8f9a 8bbe,f3da 00008bbe,0000f3da 897a * * * * * 897a -17768 * * * * * * * 8be2 e8afa2,ef8f9b 8be2,f3db 00008be2,0000f3db 897b * * * * * 897b -17769 * * * * * * * 8f66 e8bda6,ef8f9c 8f66,f3dc 00008f66,0000f3dc 897c * * * * * 897c -17770 * * * * * * * 8f67 e8bda7,ef8f9d 8f67,f3dd 00008f67,0000f3dd 897d * * * * * 897d -17771 * * * * * * * 8f6e e8bdae,ef8f9e 8f6e,f3de 00008f6e,0000f3de 897e * * * * * 897e -17772 * * * * * * * 7411 e79091,ef8f9f 7411,f3df 00007411,0000f3df 89a1 * * * * * 89a1 -17773 * * * * * * * 7cfc e7b3bc,ef8fa0 7cfc,f3e0 00007cfc,0000f3e0 89a2 * * * * * 89a2 -17774 * * * * * * * 7dcd e7b78d,ef8fa1 7dcd,f3e1 00007dcd,0000f3e1 89a3 * * * * * 89a3 -17775 * * * * * * * 6946 e6a586,ef8fa2 6946,f3e2 00006946,0000f3e2 89a4 * * * * * 89a4 -17776 * * * * * * * 7ac9 e7ab89,ef8fa3 7ac9,f3e3 00007ac9,0000f3e3 89a5 * * * * * 89a5 -17777 * * * * * * * 78b8 e7a2b8,ef8faa 78b8,f3ea 000078b8,0000f3ea 89ac * * * * * 89ac -17778 * * * * * * * 80bc e882bc,ef8fac 80bc,f3ec 000080bc,0000f3ec 89ae * * * * * 89ae -17779 * * * * * * * 8d0b e8b48b,ef8fae 8d0b,f3ee 00008d0b,0000f3ee 89b0 * * * * * 89b0 -17780 * * * * * * * 80f6 e883b6,ef8faf 80f6,f3ef 000080f6,0000f3ef 89b1 * * * * * 89b1 -17781 * * * * * * * f3f0 f0a0a7a7,ef8fb0 d842dde7,f3f0 000209e7,0000f3f0 89b2 * * * * * 89b2 -17782 * * * * * * * 809f e8829f,ef8fb3 809f,f3f3 0000809f,0000f3f3 89b5 * * * * * 89b5 -17783 * * * * * * * 9ec7 e9bb87,ef8fb4 9ec7,f3f4 00009ec7,0000f3f4 89b6 * * * * * 89b6 -17784 * * * * * * * 4ccd e4b38d,ef8fb5 4ccd,f3f5 00004ccd,0000f3f5 89b7 * * * * * 89b7 -17785 * * * * * * * 9dc9 e9b789,ef8fb6 9dc9,f3f6 00009dc9,0000f3f6 89b8 * * * * * 89b8 -17786 * * * * * * * 9e0c e9b88c,ef8fb7 9e0c,f3f7 00009e0c,0000f3f7 89b9 * * * * * 89b9 -17787 * * * * * * * 4c3e e4b0be,ef8fb8 4c3e,f3f8 00004c3e,0000f3f8 89ba * * * * * 89ba -17788 * * * * * * * f3f9 f0a9b7b6,ef8fb9 d867ddf6,f3f9 00029df6,0000f3f9 89bb * * * * * 89bb -17789 * * * * * * * f3fa f0a7808e,ef8fba d85cdc0e,f3fa 0002700e,0000f3fa 89bc * * * * * 89bc -17790 * * * * * * * 9e0a e9b88a,ef8fbb 9e0a,f3fb 00009e0a,0000f3fb 89bd * * * * * 89bd -17791 * * * * * * * f3fc f0aa84b3,ef8fbc d868dd33,f3fc 0002a133,0000f3fc 89be * * * * * 89be -17792 * * * * * * * 35c1 e39781,ef8fbd 35c1,f3fd 000035c1,0000f3fd 89bf * * * * * 89bf -17793 * * * * * * * 6e9a e6ba9a,ef8fbf 6e9a,f3ff 00006e9a,0000f3ff 89c1 * * * * * 89c1 -17794 * * * * * * * 823e e888be,ef9080 823e,f400 0000823e,0000f400 89c2 * * * * * 89c2 -17795 * * * * * * * 7519 e79499,ef9081 7519,f401 00007519,0000f401 89c3 * * * * * 89c3 -17796 * * * * * * * 4911 e4a491,ef9083 4911,f403 00004911,0000f403 89c5 * * * * * 89c5 -17797 * * * * * * * 9a6c e9a9ac,ef9084 9a6c,f404 00009a6c,0000f404 89c6 * * * * * 89c6 -17798 * * * * * * * 9a8f e9aa8f,ef9085 9a8f,f405 00009a8f,0000f405 89c7 * * * * * 89c7 -17799 * * * * * * * 9f99 e9be99,ef9086 9f99,f406 00009f99,0000f406 89c8 * * * * * 89c8 -17800 * * * * * * * 7987 e7a687,ef9087 7987,f407 00007987,0000f407 89c9 * * * * * 89c9 -17801 * * * * * * * f408 f0a891ac,ef9088 d861dc6c,f408 0002846c,0000f408 89ca * * * * * 89ca -17802 * * * * * * * f409 f0a1b78a,ef9089 d847ddca,f409 00021dca,0000f409 89cb * * * * * 89cb -17803 * * * * * * * f40a f0a09790,ef908a d841ddd0,f40a 000205d0,0000f40a 89cc * * * * * 89cc -17804 * * * * * * * f40b f0a2aba6,ef908b d84adee6,f40b 00022ae6,0000f40b 89cd * * * * * 89cd -17805 * * * * * * * 4e24 e4b8a4,ef908c 4e24,f40c 00004e24,0000f40c 89ce * * * * * 89ce -17806 * * * * * * * 4e80 e4ba80,ef908e 4e80,f40e 00004e80,0000f40e 89d0 * * * * * 89d0 -17807 * * * * * * * 4e87 e4ba87,ef908f 4e87,f40f 00004e87,0000f40f 89d1 * * * * * 89d1 -17808 * * * * * * * 4ebf e4babf,ef9090 4ebf,f410 00004ebf,0000f410 89d2 * * * * * 89d2 -17809 * * * * * * * 4eeb e4bbab,ef9091 4eeb,f411 00004eeb,0000f411 89d3 * * * * * 89d3 -17810 * * * * * * * 4f37 e4bcb7,ef9092 4f37,f412 00004f37,0000f412 89d4 * * * * * 89d4 -17811 * * * * * * * 344c e3918c,ef9093 344c,f413 0000344c,0000f413 89d5 * * * * * 89d5 -17812 * * * * * * * 4fbd e4bebd,ef9094 4fbd,f414 00004fbd,0000f414 89d6 * * * * * 89d6 -17813 * * * * * * * 3e48 e3b988,ef9095 3e48,f415 00003e48,0000f415 89d7 * * * * * 89d7 -17814 * * * * * * * 5003 e58083,ef9096 5003,f416 00005003,0000f416 89d8 * * * * * 89d8 -17815 * * * * * * * 347d e391bd,ef9098 347d,f418 0000347d,0000f418 89da * * * * * 89da -17816 * * * * * * * 34a5 e392a5,ef909a 34a5,f41a 000034a5,0000f41a 89dc * * * * * 89dc -17817 * * * * * * * 5905 e5a485,ef909c 5905,f41c 00005905,0000f41c 89de * * * * * 89de -17818 * * * * * * * 51db e5879b,ef909d 51db,f41d 000051db,0000f41d 89df * * * * * 89df -17819 * * * * * * * 51fc e587bc,ef909e 51fc,f41e 000051fc,0000f41e 89e0 * * * * * 89e0 -17820 * * * * * * * 4e89 e4ba89,ef90a0 4e89,f420 00004e89,0000f420 89e2 * * * * * 89e2 -17821 * * * * * * * 5290 e58a90,ef90a2 5290,f422 00005290,0000f422 89e4 * * * * * 89e4 -17822 * * * * * * * 5327 e58ca7,ef90a3 5327,f423 00005327,0000f423 89e5 * * * * * 89e5 -17823 * * * * * * * 35c7 e39787,ef90a4 35c7,f424 000035c7,0000f424 89e6 * * * * * 89e6 -17824 * * * * * * * 53a9 e58ea9,ef90a5 53a9,f425 000053a9,0000f425 89e7 * * * * * 89e7 -17825 * * * * * * * 3551 e39591,ef90a6 3551,f426 00003551,0000f426 89e8 * * * * * 89e8 -17826 * * * * * * * 53b0 e58eb0,ef90a7 53b0,f427 000053b0,0000f427 89e9 * * * * * 89e9 -17827 * * * * * * * 5423 e590a3,ef90aa 5423,f42a 00005423,0000f42a 89ec * * * * * 89ec -17828 * * * * * * * 356d e395ad,ef90ab 356d,f42b 0000356d,0000f42b 89ed * * * * * 89ed -17829 * * * * * * * 3572 e395b2,ef90ac 3572,f42c 00003572,0000f42c 89ee * * * * * 89ee -17830 * * * * * * * 3681 e39a81,ef90ad 3681,f42d 00003681,0000f42d 89ef * * * * * 89ef -17831 * * * * * * * 5493 e59293,ef90ae 5493,f42e 00005493,0000f42e 89f0 * * * * * 89f0 -17832 * * * * * * * 54a3 e592a3,ef90af 54a3,f42f 000054a3,0000f42f 89f1 * * * * * 89f1 -17833 * * * * * * * 54b4 e592b4,ef90b0 54b4,f430 000054b4,0000f430 89f2 * * * * * 89f2 -17834 * * * * * * * 54b9 e592b9,ef90b1 54b9,f431 000054b9,0000f431 89f3 * * * * * 89f3 -17835 * * * * * * * 54d0 e59390,ef90b2 54d0,f432 000054d0,0000f432 89f4 * * * * * 89f4 -17836 * * * * * * * 54ef e593af,ef90b3 54ef,f433 000054ef,0000f433 89f5 * * * * * 89f5 -17837 * * * * * * * 5518 e59498,ef90b4 5518,f434 00005518,0000f434 89f6 * * * * * 89f6 -17838 * * * * * * * 5523 e594a3,ef90b5 5523,f435 00005523,0000f435 89f7 * * * * * 89f7 -17839 * * * * * * * 5528 e594a8,ef90b6 5528,f436 00005528,0000f436 89f8 * * * * * 89f8 -17840 * * * * * * * 3598 e39698,ef90b7 3598,f437 00003598,0000f437 89f9 * * * * * 89f9 -17841 * * * * * * * 35a5 e396a5,ef90b9 35a5,f439 000035a5,0000f439 89fb * * * * * 89fb -17842 * * * * * * * 35bf e396bf,ef90ba 35bf,f43a 000035bf,0000f43a 89fc * * * * * 89fc -17843 * * * * * * * 55d7 e59797,ef90bb 55d7,f43b 000055d7,0000f43b 89fd * * * * * 89fd -17844 * * * * * * * 35c5 e39785,ef90bc 35c5,f43c 000035c5,0000f43c 89fe * * * * * 89fe -17845 * * * * * * * f43d f0a7b684,ef90bd d85fdd84,f43d 00027d84,0000f43d 8a40 * * * * * 8a40 -17846 * * * * * * * 4053 e48193,ef918a 4053,f44a 00004053,0000f44a 8a4d * * * * * 8a4d -17847 * * * * * * * f457 ef9197,f0a183b4 d844dcf4,f457 0000f457,000210f4 8a5a * * * * * 8a5a -17848 * * * * * * * f45b ef919b,f0a0b08b d843dc0b,f45b 0000f45b,00020c0b 8a5e * * * * * 8a5e -17849 * * * * * * * f46e ef91ae,f0a7a388 d85edcc8,f46e 0000f46e,000278c8 8a71 * * * * * 8a71 -17850 * * * * * * * f474 ef91b4,f0a682a5 d858dca5,f474 0000f474,000260a5 8a77 * * * * * 8a77 -17851 * * * * * * * f477 ef91b7,f0a2b58c d84bdd4c,f477 0000f477,00022d4c 8a7a * * * * * 8a7a -17852 * * * * * * * f479 ef91b9,f0a181b7 d844dc77,f479 0000f479,00021077 8a7c * * * * * 8a7c -17853 * * * * * * * f47b ef91bb,f0a181af d844dc6f,f47b 0000f47b,0002106f 8a7e * * * * * 8a7e -17854 * * * * * * * f483 ef9283,f0a286a1 d848dda1,f483 0000f483,000221a1 8aa8 * * * * * 8aa8 -17855 * * * * * * * f491 ef9291,f0a0b696 d843dd96,f491 0000f491,00020d96 8ab6 * * * * * 8ab6 -17856 * * * * * * * 40bb e482bb,ef9293 40bb,f493 000040bb,0000f493 8ab8 * * * * * 8ab8 -17857 * * * * * * * f4a7 ef92a7,f0a2b389 d84bdcc9,f4a7 0000f4a7,00022cc9 8acc * * * * * 8acc -17858 * * * * * * * 5652 e59992,ef92b1 5652,f4b1 00005652,0000f4b1 8ad6 * * * * * 8ad6 -17859 * * * * * * * f4b2 f0a0bcb1,ef92b2 d843df31,f4b2 00020f31,0000f4b2 8ad7 * * * * * 8ad7 -17860 * * * * * * * f4c1 ef9381,f0a6a09c d85adc1c,f4c1 0000f4c1,0002681c 8ae6 * * * * * 8ae6 -17861 * * * * * * * f4c3 f0a1838f,ef9383 d844dccf,f4c3 000210cf,0000f4c3 8ae8 * * * * * 8ae8 -17862 * * * * * * * f4c4 f0a2a083,ef9384 d84adc03,f4c4 00022803,0000f4c4 8ae9 * * * * * 8ae9 -17863 * * * * * * * f4c5 f0a2a4b9,ef9385 d84add39,f4c5 00022939,0000f4c5 8aea * * * * * 8aea -17864 * * * * * * * 35fb e397bb,ef9386 35fb,f4c6 000035fb,0000f4c6 8aeb * * * * * 8aeb -17865 * * * * * * * f4c7 f0a587a3,ef9387 d854dde3,f4c7 000251e3,0000f4c7 8aec * * * * * 8aec -17866 * * * * * * * f4c8 f0a0ba8c,ef9388 d843de8c,f4c8 00020e8c,0000f4c8 8aed * * * * * 8aed -17867 * * * * * * * f4c9 f0a0be8d,ef9389 d843df8d,f4c9 00020f8d,0000f4c9 8aee * * * * * 8aee -17868 * * * * * * * f4ca f0a0baaa,ef938a d843deaa,f4ca 00020eaa,0000f4ca 8aef * * * * * 8aef -17869 * * * * * * * 3f93 e3be93,ef938b 3f93,f4cb 00003f93,0000f4cb 8af0 * * * * * 8af0 -17870 * * * * * * * f4cc f0a0bcb0,ef938c d843df30,f4cc 00020f30,0000f4cc 8af1 * * * * * 8af1 -17871 * * * * * * * f4cd f0a0b587,ef938d d843dd47,f4cd 00020d47,0000f4cd 8af2 * * * * * 8af2 -17872 * * * * * * * f4ce f0a1858f,ef938e d844dd4f,f4ce 0002114f,0000f4ce 8af3 * * * * * 8af3 -17873 * * * * * * * f4cf f0a0b98c,ef938f d843de4c,f4cf 00020e4c,0000f4cf 8af4 * * * * * 8af4 -17874 * * * * * * * f4d1 f0a0baab,ef9391 d843deab,f4d1 00020eab,0000f4d1 8af6 * * * * * 8af6 -17875 * * * * * * * f4d2 f0a0aea9,ef9392 d842dfa9,f4d2 00020ba9,0000f4d2 8af7 * * * * * 8af7 -17876 * * * * * * * f4d3 f0a0b588,ef9393 d843dd48,f4d3 00020d48,0000f4d3 8af8 * * * * * 8af8 -17877 * * * * * * * f4d4 f0a18380,ef9394 d844dcc0,f4d4 000210c0,0000f4d4 8af9 * * * * * 8af9 -17878 * * * * * * * f4d5 f0a184bd,ef9395 d844dd3d,f4d5 0002113d,0000f4d5 8afa * * * * * 8afa -17879 * * * * * * * 3ff9 e3bfb9,ef9396 3ff9,f4d6 00003ff9,0000f4d6 8afb * * * * * 8afb -17880 * * * * * * * f4d7 f0a29a96,ef9397 d849de96,f4d7 00022696,0000f4d7 8afc * * * * * 8afc -17881 * * * * * * * 6432 e690b2,ef9398 6432,f4d8 00006432,0000f4d8 8afd * * * * * 8afd -17882 * * * * * * * f4d9 f0a0bead,ef9399 d843dfad,f4d9 00020fad,0000f4d9 8afe * * * * * 8afe -17883 * * * * * * * f4da f0a38fb4,ef939a d84cdff4,f4da 000233f4,0000f4da 8b40 * * * * * 8b40 -17884 * * * * * * * f4dd ef939d,f0a0b5be d843dd7e,f4dd 0000f4dd,00020d7e 8b43 * * * * * 8b43 -17885 * * * * * * * f4de ef939e,f0a0b5bf d843dd7f,f4de 0000f4de,00020d7f 8b44 * * * * * 8b44 -17886 * * * * * * * f4e0 ef93a0,f0a2b195 d84bdc55,f4e0 0000f4e0,00022c55 8b46 * * * * * 8b46 -17887 * * * * * * * f4e2 ef93a2,f0a0ba98 d843de98,f4e2 0000f4e2,00020e98 8b48 * * * * * 8b48 -17888 * * * * * * * f4e4 ef93a4,f0a0bcae d843df2e,f4e4 0000f4e4,00020f2e 8b4a * * * * * 8b4a -17889 * * * * * * * f4e6 ef93a6,f0a6ad90 d85adf50,f4e6 0000f4e6,00026b50 8b4c * * * * * 8b4c -17890 * * * * * * * * e5938c,ef93ab 54cc,f4eb 000054cc,0000f4eb 8b51 * * * * * 8b51 -17891 * * * * * * * 82c4 e88b84,ef93ac 82c4,f4ec 000082c4,0000f4ec 8b52 * * * * * 8b52 -17892 * * * * * * * * e596b9,ef93ad 55b9,f4ed 000055b9,0000f4ed 8b53 * * * * * 8b53 -17893 * * * * * * * f4ef f0a9bb83,ef93af d867dec3,f4ef 00029ec3,0000f4ef 8b55 * * * * * 8b55 -17894 * * * * * * * 9c26 e9b0a6,ef93b0 9c26,f4f0 00009c26,0000f4f0 8b56 * * * * * 8b56 -17895 * * * * * * * * e9aab6,ef93b1 9ab6,f4f1 00009ab6,0000f4f1 8b57 * * * * * 8b57 -17896 * * * * * * * f4f3 ef93b3,f0a2b7ae d84bddee,f4f3 0000f4f3,00022dee 8b59 * * * * * 8b59 -17897 * * * * * * * 80ec e883ac,ef93b6 80ec,f4f6 000080ec,0000f4f6 8b5c * * * * * 8b5c -17898 * * * * * * * 5c1c e5b09c,ef93b7 5c1c,f4f7 00005c1c,0000f4f7 8b5d * * * * * 8b5d -17899 * * * * * * * f4f8 f0a695b2,ef93b8 d859dd72,f4f8 00026572,0000f4f8 8b5e * * * * * 8b5e -17900 * * * * * * * 8134 e884b4,ef93b9 8134,f4f9 00008134,0000f4f9 8b5f * * * * * 8b5f -17901 * * * * * * * 3797 e39e97,ef93ba 3797,f4fa 00003797,0000f4fa 8b60 * * * * * 8b60 -17902 * * * * * * * f4fc f0a882bd,ef93bc d860dcbd,f4fc 000280bd,0000f4fc 8b62 * * * * * 8b62 -17903 * * * * * * * 91b6 e986b6,ef93bd 91b6,f4fd 000091b6,0000f4fd 8b63 * * * * * 8b63 -17904 * * * * * * * f4fe f0a0bbba,ef93be d843defa,f4fe 00020efa,0000f4fe 8b64 * * * * * 8b64 -17905 * * * * * * * f4ff f0a0b88f,ef93bf d843de0f,f4ff 00020e0f,0000f4ff 8b65 * * * * * 8b65 -17906 * * * * * * * f500 f0a0b9b7,ef9480 d843de77,f500 00020e77,0000f500 8b66 * * * * * 8b66 -17907 * * * * * * * f501 f0a0bbbb,ef9481 d843defb,f501 00020efb,0000f501 8b67 * * * * * 8b67 -17908 * * * * * * * f503 f0a4b7ab,ef9483 d853ddeb,f503 00024deb,0000f503 8b69 * * * * * 8b69 -17909 * * * * * * * 3609 e39889,ef9484 3609,f504 00003609,0000f504 8b6a * * * * * 8b6a -17910 * * * * * * * f505 f0a0b396,ef9485 d843dcd6,f505 00020cd6,0000f505 8b6b * * * * * 8b6b -17911 * * * * * * * 56af e59aaf,ef9486 56af,f506 000056af,0000f506 8b6c * * * * * 8b6c -17912 * * * * * * * f507 f0a29eb5,ef9487 d849dfb5,f507 000227b5,0000f507 8b6d * * * * * 8b6d -17913 * * * * * * * f508 f0a18389,ef9488 d844dcc9,f508 000210c9,0000f508 8b6e * * * * * 8b6e -17914 * * * * * * * f509 f0a0b890,ef9489 d843de10,f509 00020e10,0000f509 8b6f * * * * * 8b6f -17915 * * * * * * * f50a f0a0b9b8,ef948a d843de78,f50a 00020e78,0000f50a 8b70 * * * * * 8b70 -17916 * * * * * * * f50b f0a181b8,ef948b d844dc78,f50b 00021078,0000f50b 8b71 * * * * * 8b71 -17917 * * * * * * * f50c f0a18588,ef948c d844dd48,f50c 00021148,0000f50c 8b72 * * * * * 8b72 -17918 * * * * * * * f50d f0a88887,ef948d d860de07,f50d 00028207,0000f50d 8b73 * * * * * 8b73 -17919 * * * * * * * f50e f0a19195,ef948e d845dc55,f50e 00021455,0000f50e 8b74 * * * * * 8b74 -17920 * * * * * * * f50f f0a0b9b9,ef948f d843de79,f50f 00020e79,0000f50f 8b75 * * * * * 8b75 -17921 * * * * * * * f510 f0a4b990,ef9490 d853de50,f510 00024e50,0000f510 8b76 * * * * * 8b76 -17922 * * * * * * * f511 f0a2b6a4,ef9491 d84bdda4,f511 00022da4,0000f511 8b77 * * * * * 8b77 -17923 * * * * * * * 5a54 e5a994,ef9492 5a54,f512 00005a54,0000f512 8b78 * * * * * 8b78 -17924 * * * * * * * f513 ef9493,f0a1809d d844dc1d,f513 0000f513,0002101d 8b79 * * * * * 8b79 -17925 * * * * * * * f514 ef9494,f0a1809e d844dc1e,f514 0000f514,0002101e 8b7a * * * * * 8b7a -17926 * * * * * * * f515 ef9495,f0a183b5 d844dcf5,f515 0000f515,000210f5 8b7b * * * * * 8b7b -17927 * * * * * * * f516 ef9496,f0a183b6 d844dcf6,f516 0000f516,000210f6 8b7c * * * * * 8b7c -17928 * * * * * * * 579c e59e9c,ef9497 579c,f517 0000579c,0000f517 8b7d * * * * * 8b7d -17929 * * * * * * * f518 f0a0b891,ef9498 d843de11,f518 00020e11,0000f518 8b7e * * * * * 8b7e -17930 * * * * * * * f519 f0a79a94,ef9499 d85dde94,f519 00027694,0000f519 8ba1 * * * * * 8ba1 -17931 * * * * * * * f51a f0a88b8d,ef949a d860decd,f51a 000282cd,0000f51a 8ba2 * * * * * 8ba2 -17932 * * * * * * * f51b f0a0beb5,ef949b d843dfb5,f51b 00020fb5,0000f51b 8ba3 * * * * * 8ba3 -17933 * * * * * * * f51c f0a0b9bb,ef949c d843de7b,f51c 00020e7b,0000f51c 8ba4 * * * * * 8ba4 -17934 * * * * * * * f51d f0a585be,ef949d d854dd7e,f51d 0002517e,0000f51d 8ba5 * * * * * 8ba5 -17935 * * * * * * * 3703 e39c83,ef949e 3703,f51e 00003703,0000f51e 8ba6 * * * * * 8ba6 -17936 * * * * * * * f51f f0a0beb6,ef949f d843dfb6,f51f 00020fb6,0000f51f 8ba7 * * * * * 8ba7 -17937 * * * * * * * f520 f0a18680,ef94a0 d844dd80,f520 00021180,0000f520 8ba8 * * * * * 8ba8 -17938 * * * * * * * f521 f0a58b98,ef94a1 d854ded8,f521 000252d8,0000f521 8ba9 * * * * * 8ba9 -17939 * * * * * * * f522 f0aa8abd,ef94a2 d868debd,f522 0002a2bd,0000f522 8baa * * * * * 8baa -17940 * * * * * * * f523 f0a4a79a,ef94a3 d852ddda,f523 000249da,0000f523 8bab * * * * * 8bab -17941 * * * * * * * f524 f0a1a0ba,ef94a4 d846dc3a,f524 0002183a,0000f524 8bac * * * * * 8bac -17942 * * * * * * * f525 f0a485b7,ef94a5 d850dd77,f525 00024177,0000f525 8bad * * * * * 8bad -17943 * * * * * * * f526 f0a889bc,ef94a6 d860de7c,f526 0002827c,0000f526 8bae * * * * * 8bae -17944 * * * * * * * 5899 e5a299,ef94a7 5899,f527 00005899,0000f527 8baf * * * * * 8baf -17945 * * * * * * * 5268 e589a8,ef94a8 5268,f528 00005268,0000f528 8bb0 * * * * * 8bb0 -17946 * * * * * * * 361a e3989a,ef94a9 361a,f529 0000361a,0000f529 8bb1 * * * * * 8bb1 -17947 * * * * * * * f52a f0a59cbd,ef94aa d855df3d,f52a 0002573d,0000f52a 8bb2 * * * * * 8bb2 -17948 * * * * * * * 7bb2 e7aeb2,ef94ab 7bb2,f52b 00007bb2,0000f52b 8bb3 * * * * * 8bb3 -17949 * * * * * * * 5b68 e5ada8,ef94ac 5b68,f52c 00005b68,0000f52c 8bb4 * * * * * 8bb4 -17950 * * * * * * * 4800 e4a080,ef94ad 4800,f52d 00004800,0000f52d 8bb5 * * * * * 8bb5 -17951 * * * * * * * 4b2c e4acac,ef94ae 4b2c,f52e 00004b2c,0000f52e 8bb6 * * * * * 8bb6 -17952 * * * * * * * 9f27 e9bca7,ef94af 9f27,f52f 00009f27,0000f52f 8bb7 * * * * * 8bb7 diff --git a/libs/anr/examples/res/comic-sans.ttf b/libs/anr/examples/res/comic-sans.ttf deleted file mode 100644 index d17e1be..0000000 Binary files a/libs/anr/examples/res/comic-sans.ttf and /dev/null differ diff --git a/libs/anr/examples/res/greenland_grid_velo.bmp b/libs/anr/examples/res/greenland_grid_velo.bmp deleted file mode 100644 index 7bcc993..0000000 Binary files a/libs/anr/examples/res/greenland_grid_velo.bmp and /dev/null differ diff --git a/libs/anr/examples/res/small.txt b/libs/anr/examples/res/small.txt deleted file mode 100644 index e604c07..0000000 --- a/libs/anr/examples/res/small.txt +++ /dev/null @@ -1 +0,0 @@ -12312312345454598765455555555555333332344455555551234555543214646344632146411163214641116321464 \ No newline at end of file diff --git a/libs/anr/examples/res/spongebob.png b/libs/anr/examples/res/spongebob.png deleted file mode 100644 index 82724b9..0000000 Binary files a/libs/anr/examples/res/spongebob.png and /dev/null differ diff --git a/libs/anr/examples/res/stb_image.h b/libs/anr/examples/res/stb_image.h deleted file mode 100644 index a632d54..0000000 --- a/libs/anr/examples/res/stb_image.h +++ /dev/null @@ -1,7985 +0,0 @@ -/* stb_image - v2.29 - public domain image loader - http://nothings.org/stb - no warranty implied; use at your own risk - - Do this: - #define STB_IMAGE_IMPLEMENTATION - before you include this file in *one* C or C++ file to create the implementation. - - // i.e. it should look like this: - #include ... - #include ... - #include ... - #define STB_IMAGE_IMPLEMENTATION - #include "stb_image.h" - - You can #define STBI_ASSERT(x) before the #include to avoid using assert.h. - And #define STBI_MALLOC, STBI_REALLOC, and STBI_FREE to avoid using malloc,realloc,free - - - QUICK NOTES: - Primarily of interest to game developers and other people who can - avoid problematic images and only need the trivial interface - - JPEG baseline & progressive (12 bpc/arithmetic not supported, same as stock IJG lib) - PNG 1/2/4/8/16-bit-per-channel - - TGA (not sure what subset, if a subset) - BMP non-1bpp, non-RLE - PSD (composited view only, no extra channels, 8/16 bit-per-channel) - - GIF (*comp always reports as 4-channel) - HDR (radiance rgbE format) - PIC (Softimage PIC) - PNM (PPM and PGM binary only) - - Animated GIF still needs a proper API, but here's one way to do it: - http://gist.github.com/urraka/685d9a6340b26b830d49 - - - decode from memory or through FILE (define STBI_NO_STDIO to remove code) - - decode from arbitrary I/O callbacks - - SIMD acceleration on x86/x64 (SSE2) and ARM (NEON) - - Full documentation under "DOCUMENTATION" below. - - -LICENSE - - See end of file for license information. - -RECENT REVISION HISTORY: - - 2.29 (2023-05-xx) optimizations - 2.28 (2023-01-29) many error fixes, security errors, just tons of stuff - 2.27 (2021-07-11) document stbi_info better, 16-bit PNM support, bug fixes - 2.26 (2020-07-13) many minor fixes - 2.25 (2020-02-02) fix warnings - 2.24 (2020-02-02) fix warnings; thread-local failure_reason and flip_vertically - 2.23 (2019-08-11) fix clang static analysis warning - 2.22 (2019-03-04) gif fixes, fix warnings - 2.21 (2019-02-25) fix typo in comment - 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs - 2.19 (2018-02-11) fix warning - 2.18 (2018-01-30) fix warnings - 2.17 (2018-01-29) bugfix, 1-bit BMP, 16-bitness query, fix warnings - 2.16 (2017-07-23) all functions have 16-bit variants; optimizations; bugfixes - 2.15 (2017-03-18) fix png-1,2,4; all Imagenet JPGs; no runtime SSE detection on GCC - 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs - 2.13 (2016-12-04) experimental 16-bit API, only for PNG so far; fixes - 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes - 2.11 (2016-04-02) 16-bit PNGS; enable SSE2 in non-gcc x64 - RGB-format JPEG; remove white matting in PSD; - allocate large structures on the stack; - correct channel count for PNG & BMP - 2.10 (2016-01-22) avoid warning introduced in 2.09 - 2.09 (2016-01-16) 16-bit TGA; comments in PNM files; STBI_REALLOC_SIZED - - See end of file for full revision history. - - - ============================ Contributors ========================= - - Image formats Extensions, features - Sean Barrett (jpeg, png, bmp) Jetro Lauha (stbi_info) - Nicolas Schulz (hdr, psd) Martin "SpartanJ" Golini (stbi_info) - Jonathan Dummer (tga) James "moose2000" Brown (iPhone PNG) - Jean-Marc Lienher (gif) Ben "Disch" Wenger (io callbacks) - Tom Seddon (pic) Omar Cornut (1/2/4-bit PNG) - Thatcher Ulrich (psd) Nicolas Guillemot (vertical flip) - Ken Miller (pgm, ppm) Richard Mitton (16-bit PSD) - github:urraka (animated gif) Junggon Kim (PNM comments) - Christopher Forseth (animated gif) Daniel Gibson (16-bit TGA) - socks-the-fox (16-bit PNG) - Jeremy Sawicki (handle all ImageNet JPGs) - Optimizations & bugfixes Mikhail Morozov (1-bit BMP) - Fabian "ryg" Giesen Anael Seghezzi (is-16-bit query) - Arseny Kapoulkine Simon Breuss (16-bit PNM) - John-Mark Allen - Carmelo J Fdez-Aguera - - Bug & warning fixes - Marc LeBlanc David Woo Guillaume George Martins Mozeiko - Christpher Lloyd Jerry Jansson Joseph Thomson Blazej Dariusz Roszkowski - Phil Jordan Dave Moore Roy Eltham - Hayaki Saito Nathan Reed Won Chun - Luke Graham Johan Duparc Nick Verigakis the Horde3D community - Thomas Ruf Ronny Chevalier github:rlyeh - Janez Zemva John Bartholomew Michal Cichon github:romigrou - Jonathan Blow Ken Hamada Tero Hanninen github:svdijk - Eugene Golushkov Laurent Gomila Cort Stratton github:snagar - Aruelien Pocheville Sergio Gonzalez Thibault Reuille github:Zelex - Cass Everitt Ryamond Barbiero github:grim210 - Paul Du Bois Engin Manap Aldo Culquicondor github:sammyhw - Philipp Wiesemann Dale Weiler Oriol Ferrer Mesia github:phprus - Josh Tobin Neil Bickford Matthew Gregan github:poppolopoppo - Julian Raschke Gregory Mullen Christian Floisand github:darealshinji - Baldur Karlsson Kevin Schmidt JR Smith github:Michaelangel007 - Brad Weinberger Matvey Cherevko github:mosra - Luca Sas Alexander Veselov Zack Middleton [reserved] - Ryan C. Gordon [reserved] [reserved] - DO NOT ADD YOUR NAME HERE - - Jacko Dirks - - To add your name to the credits, pick a random blank space in the middle and fill it. - 80% of merge conflicts on stb PRs are due to people adding their name at the end - of the credits. -*/ - -#ifndef STBI_INCLUDE_STB_IMAGE_H -#define STBI_INCLUDE_STB_IMAGE_H - -// DOCUMENTATION -// -// Limitations: -// - no 12-bit-per-channel JPEG -// - no JPEGs with arithmetic coding -// - GIF always returns *comp=4 -// -// Basic usage (see HDR discussion below for HDR usage): -// int x,y,n; -// unsigned char *data = stbi_load(filename, &x, &y, &n, 0); -// // ... process data if not NULL ... -// // ... x = width, y = height, n = # 8-bit components per pixel ... -// // ... replace '0' with '1'..'4' to force that many components per pixel -// // ... but 'n' will always be the number that it would have been if you said 0 -// stbi_image_free(data); -// -// Standard parameters: -// int *x -- outputs image width in pixels -// int *y -- outputs image height in pixels -// int *channels_in_file -- outputs # of image components in image file -// int desired_channels -- if non-zero, # of image components requested in result -// -// The return value from an image loader is an 'unsigned char *' which points -// to the pixel data, or NULL on an allocation failure or if the image is -// corrupt or invalid. The pixel data consists of *y scanlines of *x pixels, -// with each pixel consisting of N interleaved 8-bit components; the first -// pixel pointed to is top-left-most in the image. There is no padding between -// image scanlines or between pixels, regardless of format. The number of -// components N is 'desired_channels' if desired_channels is non-zero, or -// *channels_in_file otherwise. If desired_channels is non-zero, -// *channels_in_file has the number of components that _would_ have been -// output otherwise. E.g. if you set desired_channels to 4, you will always -// get RGBA output, but you can check *channels_in_file to see if it's trivially -// opaque because e.g. there were only 3 channels in the source image. -// -// An output image with N components has the following components interleaved -// in this order in each pixel: -// -// N=#comp components -// 1 grey -// 2 grey, alpha -// 3 red, green, blue -// 4 red, green, blue, alpha -// -// If image loading fails for any reason, the return value will be NULL, -// and *x, *y, *channels_in_file will be unchanged. The function -// stbi_failure_reason() can be queried for an extremely brief, end-user -// unfriendly explanation of why the load failed. Define STBI_NO_FAILURE_STRINGS -// to avoid compiling these strings at all, and STBI_FAILURE_USERMSG to get slightly -// more user-friendly ones. -// -// Paletted PNG, BMP, GIF, and PIC images are automatically depalettized. -// -// To query the width, height and component count of an image without having to -// decode the full file, you can use the stbi_info family of functions: -// -// int x,y,n,ok; -// ok = stbi_info(filename, &x, &y, &n); -// // returns ok=1 and sets x, y, n if image is a supported format, -// // 0 otherwise. -// -// Note that stb_image pervasively uses ints in its public API for sizes, -// including sizes of memory buffers. This is now part of the API and thus -// hard to change without causing breakage. As a result, the various image -// loaders all have certain limits on image size; these differ somewhat -// by format but generally boil down to either just under 2GB or just under -// 1GB. When the decoded image would be larger than this, stb_image decoding -// will fail. -// -// Additionally, stb_image will reject image files that have any of their -// dimensions set to a larger value than the configurable STBI_MAX_DIMENSIONS, -// which defaults to 2**24 = 16777216 pixels. Due to the above memory limit, -// the only way to have an image with such dimensions load correctly -// is for it to have a rather extreme aspect ratio. Either way, the -// assumption here is that such larger images are likely to be malformed -// or malicious. If you do need to load an image with individual dimensions -// larger than that, and it still fits in the overall size limit, you can -// #define STBI_MAX_DIMENSIONS on your own to be something larger. -// -// =========================================================================== -// -// UNICODE: -// -// If compiling for Windows and you wish to use Unicode filenames, compile -// with -// #define STBI_WINDOWS_UTF8 -// and pass utf8-encoded filenames. Call stbi_convert_wchar_to_utf8 to convert -// Windows wchar_t filenames to utf8. -// -// =========================================================================== -// -// Philosophy -// -// stb libraries are designed with the following priorities: -// -// 1. easy to use -// 2. easy to maintain -// 3. good performance -// -// Sometimes I let "good performance" creep up in priority over "easy to maintain", -// and for best performance I may provide less-easy-to-use APIs that give higher -// performance, in addition to the easy-to-use ones. Nevertheless, it's important -// to keep in mind that from the standpoint of you, a client of this library, -// all you care about is #1 and #3, and stb libraries DO NOT emphasize #3 above all. -// -// Some secondary priorities arise directly from the first two, some of which -// provide more explicit reasons why performance can't be emphasized. -// -// - Portable ("ease of use") -// - Small source code footprint ("easy to maintain") -// - No dependencies ("ease of use") -// -// =========================================================================== -// -// I/O callbacks -// -// I/O callbacks allow you to read from arbitrary sources, like packaged -// files or some other source. Data read from callbacks are processed -// through a small internal buffer (currently 128 bytes) to try to reduce -// overhead. -// -// The three functions you must define are "read" (reads some bytes of data), -// "skip" (skips some bytes of data), "eof" (reports if the stream is at the end). -// -// =========================================================================== -// -// SIMD support -// -// The JPEG decoder will try to automatically use SIMD kernels on x86 when -// supported by the compiler. For ARM Neon support, you must explicitly -// request it. -// -// (The old do-it-yourself SIMD API is no longer supported in the current -// code.) -// -// On x86, SSE2 will automatically be used when available based on a run-time -// test; if not, the generic C versions are used as a fall-back. On ARM targets, -// the typical path is to have separate builds for NEON and non-NEON devices -// (at least this is true for iOS and Android). Therefore, the NEON support is -// toggled by a build flag: define STBI_NEON to get NEON loops. -// -// If for some reason you do not want to use any of SIMD code, or if -// you have issues compiling it, you can disable it entirely by -// defining STBI_NO_SIMD. -// -// =========================================================================== -// -// HDR image support (disable by defining STBI_NO_HDR) -// -// stb_image supports loading HDR images in general, and currently the Radiance -// .HDR file format specifically. You can still load any file through the existing -// interface; if you attempt to load an HDR file, it will be automatically remapped -// to LDR, assuming gamma 2.2 and an arbitrary scale factor defaulting to 1; -// both of these constants can be reconfigured through this interface: -// -// stbi_hdr_to_ldr_gamma(2.2f); -// stbi_hdr_to_ldr_scale(1.0f); -// -// (note, do not use _inverse_ constants; stbi_image will invert them -// appropriately). -// -// Additionally, there is a new, parallel interface for loading files as -// (linear) floats to preserve the full dynamic range: -// -// float *data = stbi_loadf(filename, &x, &y, &n, 0); -// -// If you load LDR images through this interface, those images will -// be promoted to floating point values, run through the inverse of -// constants corresponding to the above: -// -// stbi_ldr_to_hdr_scale(1.0f); -// stbi_ldr_to_hdr_gamma(2.2f); -// -// Finally, given a filename (or an open file or memory block--see header -// file for details) containing image data, you can query for the "most -// appropriate" interface to use (that is, whether the image is HDR or -// not), using: -// -// stbi_is_hdr(char *filename); -// -// =========================================================================== -// -// iPhone PNG support: -// -// We optionally support converting iPhone-formatted PNGs (which store -// premultiplied BGRA) back to RGB, even though they're internally encoded -// differently. To enable this conversion, call -// stbi_convert_iphone_png_to_rgb(1). -// -// Call stbi_set_unpremultiply_on_load(1) as well to force a divide per -// pixel to remove any premultiplied alpha *only* if the image file explicitly -// says there's premultiplied data (currently only happens in iPhone images, -// and only if iPhone convert-to-rgb processing is on). -// -// =========================================================================== -// -// ADDITIONAL CONFIGURATION -// -// - You can suppress implementation of any of the decoders to reduce -// your code footprint by #defining one or more of the following -// symbols before creating the implementation. -// -// STBI_NO_JPEG -// STBI_NO_PNG -// STBI_NO_BMP -// STBI_NO_PSD -// STBI_NO_TGA -// STBI_NO_GIF -// STBI_NO_HDR -// STBI_NO_PIC -// STBI_NO_PNM (.ppm and .pgm) -// -// - You can request *only* certain decoders and suppress all other ones -// (this will be more forward-compatible, as addition of new decoders -// doesn't require you to disable them explicitly): -// -// STBI_ONLY_JPEG -// STBI_ONLY_PNG -// STBI_ONLY_BMP -// STBI_ONLY_PSD -// STBI_ONLY_TGA -// STBI_ONLY_GIF -// STBI_ONLY_HDR -// STBI_ONLY_PIC -// STBI_ONLY_PNM (.ppm and .pgm) -// -// - If you use STBI_NO_PNG (or _ONLY_ without PNG), and you still -// want the zlib decoder to be available, #define STBI_SUPPORT_ZLIB -// -// - If you define STBI_MAX_DIMENSIONS, stb_image will reject images greater -// than that size (in either width or height) without further processing. -// This is to let programs in the wild set an upper bound to prevent -// denial-of-service attacks on untrusted data, as one could generate a -// valid image of gigantic dimensions and force stb_image to allocate a -// huge block of memory and spend disproportionate time decoding it. By -// default this is set to (1 << 24), which is 16777216, but that's still -// very big. - -#ifndef STBI_NO_STDIO -#include -#endif // STBI_NO_STDIO - -#define STBI_VERSION 1 - -enum -{ - STBI_default = 0, // only used for desired_channels - - STBI_grey = 1, - STBI_grey_alpha = 2, - STBI_rgb = 3, - STBI_rgb_alpha = 4 -}; - -#include -typedef unsigned char stbi_uc; -typedef unsigned short stbi_us; - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef STBIDEF -#ifdef STB_IMAGE_STATIC -#define STBIDEF static -#else -#define STBIDEF extern -#endif -#endif - -////////////////////////////////////////////////////////////////////////////// -// -// PRIMARY API - works on images of any type -// - -// -// load image by filename, open file, or memory buffer -// - -typedef struct -{ - int (*read) (void *user,char *data,int size); // fill 'data' with 'size' bytes. return number of bytes actually read - void (*skip) (void *user,int n); // skip the next 'n' bytes, or 'unget' the last -n bytes if negative - int (*eof) (void *user); // returns nonzero if we are at end of file/data -} stbi_io_callbacks; - -//////////////////////////////////// -// -// 8-bits-per-channel interface -// - -STBIDEF stbi_uc *stbi_load_from_memory (stbi_uc const *buffer, int len , int *x, int *y, int *channels_in_file, int desired_channels); -STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk , void *user, int *x, int *y, int *channels_in_file, int desired_channels); - -#ifndef STBI_NO_STDIO -STBIDEF stbi_uc *stbi_load (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); -STBIDEF stbi_uc *stbi_load_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); -// for stbi_load_from_file, file pointer is left pointing immediately after image -#endif - -#ifndef STBI_NO_GIF -STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp); -#endif - -#ifdef STBI_WINDOWS_UTF8 -STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input); -#endif - -//////////////////////////////////// -// -// 16-bits-per-channel interface -// - -STBIDEF stbi_us *stbi_load_16_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); -STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); - -#ifndef STBI_NO_STDIO -STBIDEF stbi_us *stbi_load_16 (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); -STBIDEF stbi_us *stbi_load_from_file_16(FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); -#endif - -//////////////////////////////////// -// -// float-per-channel interface -// -#ifndef STBI_NO_LINEAR - STBIDEF float *stbi_loadf_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); - STBIDEF float *stbi_loadf_from_callbacks (stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); - - #ifndef STBI_NO_STDIO - STBIDEF float *stbi_loadf (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); - STBIDEF float *stbi_loadf_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); - #endif -#endif - -#ifndef STBI_NO_HDR - STBIDEF void stbi_hdr_to_ldr_gamma(float gamma); - STBIDEF void stbi_hdr_to_ldr_scale(float scale); -#endif // STBI_NO_HDR - -#ifndef STBI_NO_LINEAR - STBIDEF void stbi_ldr_to_hdr_gamma(float gamma); - STBIDEF void stbi_ldr_to_hdr_scale(float scale); -#endif // STBI_NO_LINEAR - -// stbi_is_hdr is always defined, but always returns false if STBI_NO_HDR -STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user); -STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len); -#ifndef STBI_NO_STDIO -STBIDEF int stbi_is_hdr (char const *filename); -STBIDEF int stbi_is_hdr_from_file(FILE *f); -#endif // STBI_NO_STDIO - - -// get a VERY brief reason for failure -// on most compilers (and ALL modern mainstream compilers) this is threadsafe -STBIDEF const char *stbi_failure_reason (void); - -// free the loaded image -- this is just free() -STBIDEF void stbi_image_free (void *retval_from_stbi_load); - -// get image dimensions & components without fully decoding -STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp); -STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp); -STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len); -STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *clbk, void *user); - -#ifndef STBI_NO_STDIO -STBIDEF int stbi_info (char const *filename, int *x, int *y, int *comp); -STBIDEF int stbi_info_from_file (FILE *f, int *x, int *y, int *comp); -STBIDEF int stbi_is_16_bit (char const *filename); -STBIDEF int stbi_is_16_bit_from_file(FILE *f); -#endif - - - -// for image formats that explicitly notate that they have premultiplied alpha, -// we just return the colors as stored in the file. set this flag to force -// unpremultiplication. results are undefined if the unpremultiply overflow. -STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply); - -// indicate whether we should process iphone images back to canonical format, -// or just pass them through "as-is" -STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert); - -// flip the image vertically, so the first pixel in the output array is the bottom left -STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip); - -// as above, but only applies to images loaded on the thread that calls the function -// this function is only available if your compiler supports thread-local variables; -// calling it will fail to link if your compiler doesn't -STBIDEF void stbi_set_unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply); -STBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert); -STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip); - -// ZLIB client - used by PNG, available for other purposes - -STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen); -STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header); -STBIDEF char *stbi_zlib_decode_malloc(const char *buffer, int len, int *outlen); -STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); - -STBIDEF char *stbi_zlib_decode_noheader_malloc(const char *buffer, int len, int *outlen); -STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); - - -#ifdef __cplusplus -} -#endif - -// -// -//// end header file ///////////////////////////////////////////////////// -#endif // STBI_INCLUDE_STB_IMAGE_H - -#ifdef STB_IMAGE_IMPLEMENTATION - -#if defined(STBI_ONLY_JPEG) || defined(STBI_ONLY_PNG) || defined(STBI_ONLY_BMP) \ - || defined(STBI_ONLY_TGA) || defined(STBI_ONLY_GIF) || defined(STBI_ONLY_PSD) \ - || defined(STBI_ONLY_HDR) || defined(STBI_ONLY_PIC) || defined(STBI_ONLY_PNM) \ - || defined(STBI_ONLY_ZLIB) - #ifndef STBI_ONLY_JPEG - #define STBI_NO_JPEG - #endif - #ifndef STBI_ONLY_PNG - #define STBI_NO_PNG - #endif - #ifndef STBI_ONLY_BMP - #define STBI_NO_BMP - #endif - #ifndef STBI_ONLY_PSD - #define STBI_NO_PSD - #endif - #ifndef STBI_ONLY_TGA - #define STBI_NO_TGA - #endif - #ifndef STBI_ONLY_GIF - #define STBI_NO_GIF - #endif - #ifndef STBI_ONLY_HDR - #define STBI_NO_HDR - #endif - #ifndef STBI_ONLY_PIC - #define STBI_NO_PIC - #endif - #ifndef STBI_ONLY_PNM - #define STBI_NO_PNM - #endif -#endif - -#if defined(STBI_NO_PNG) && !defined(STBI_SUPPORT_ZLIB) && !defined(STBI_NO_ZLIB) -#define STBI_NO_ZLIB -#endif - - -#include -#include // ptrdiff_t on osx -#include -#include -#include - -#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) -#include // ldexp, pow -#endif - -#ifndef STBI_NO_STDIO -#include -#endif - -#ifndef STBI_ASSERT -#include -#define STBI_ASSERT(x) assert(x) -#endif - -#ifdef __cplusplus -#define STBI_EXTERN extern "C" -#else -#define STBI_EXTERN extern -#endif - - -#ifndef _MSC_VER - #ifdef __cplusplus - #define stbi_inline inline - #else - #define stbi_inline - #endif -#else - #define stbi_inline __forceinline -#endif - -#ifndef STBI_NO_THREAD_LOCALS - #if defined(__cplusplus) && __cplusplus >= 201103L - #define STBI_THREAD_LOCAL thread_local - #elif defined(__GNUC__) && __GNUC__ < 5 - #define STBI_THREAD_LOCAL __thread - #elif defined(_MSC_VER) - #define STBI_THREAD_LOCAL __declspec(thread) - #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_THREADS__) - #define STBI_THREAD_LOCAL _Thread_local - #endif - - #ifndef STBI_THREAD_LOCAL - #if defined(__GNUC__) - #define STBI_THREAD_LOCAL __thread - #endif - #endif -#endif - -#if defined(_MSC_VER) || defined(__SYMBIAN32__) -typedef unsigned short stbi__uint16; -typedef signed short stbi__int16; -typedef unsigned int stbi__uint32; -typedef signed int stbi__int32; -#else -#include -typedef uint16_t stbi__uint16; -typedef int16_t stbi__int16; -typedef uint32_t stbi__uint32; -typedef int32_t stbi__int32; -#endif - -// should produce compiler error if size is wrong -typedef unsigned char validate_uint32[sizeof(stbi__uint32)==4 ? 1 : -1]; - -#ifdef _MSC_VER -#define STBI_NOTUSED(v) (void)(v) -#else -#define STBI_NOTUSED(v) (void)sizeof(v) -#endif - -#ifdef _MSC_VER -#define STBI_HAS_LROTL -#endif - -#ifdef STBI_HAS_LROTL - #define stbi_lrot(x,y) _lrotl(x,y) -#else - #define stbi_lrot(x,y) (((x) << (y)) | ((x) >> (-(y) & 31))) -#endif - -#if defined(STBI_MALLOC) && defined(STBI_FREE) && (defined(STBI_REALLOC) || defined(STBI_REALLOC_SIZED)) -// ok -#elif !defined(STBI_MALLOC) && !defined(STBI_FREE) && !defined(STBI_REALLOC) && !defined(STBI_REALLOC_SIZED) -// ok -#else -#error "Must define all or none of STBI_MALLOC, STBI_FREE, and STBI_REALLOC (or STBI_REALLOC_SIZED)." -#endif - -#ifndef STBI_MALLOC -#define STBI_MALLOC(sz) malloc(sz) -#define STBI_REALLOC(p,newsz) realloc(p,newsz) -#define STBI_FREE(p) free(p) -#endif - -#ifndef STBI_REALLOC_SIZED -#define STBI_REALLOC_SIZED(p,oldsz,newsz) STBI_REALLOC(p,newsz) -#endif - -// x86/x64 detection -#if defined(__x86_64__) || defined(_M_X64) -#define STBI__X64_TARGET -#elif defined(__i386) || defined(_M_IX86) -#define STBI__X86_TARGET -#endif - -#if defined(__GNUC__) && defined(STBI__X86_TARGET) && !defined(__SSE2__) && !defined(STBI_NO_SIMD) -// gcc doesn't support sse2 intrinsics unless you compile with -msse2, -// which in turn means it gets to use SSE2 everywhere. This is unfortunate, -// but previous attempts to provide the SSE2 functions with runtime -// detection caused numerous issues. The way architecture extensions are -// exposed in GCC/Clang is, sadly, not really suited for one-file libs. -// New behavior: if compiled with -msse2, we use SSE2 without any -// detection; if not, we don't use it at all. -#define STBI_NO_SIMD -#endif - -#if defined(__MINGW32__) && defined(STBI__X86_TARGET) && !defined(STBI_MINGW_ENABLE_SSE2) && !defined(STBI_NO_SIMD) -// Note that __MINGW32__ doesn't actually mean 32-bit, so we have to avoid STBI__X64_TARGET -// -// 32-bit MinGW wants ESP to be 16-byte aligned, but this is not in the -// Windows ABI and VC++ as well as Windows DLLs don't maintain that invariant. -// As a result, enabling SSE2 on 32-bit MinGW is dangerous when not -// simultaneously enabling "-mstackrealign". -// -// See https://github.com/nothings/stb/issues/81 for more information. -// -// So default to no SSE2 on 32-bit MinGW. If you've read this far and added -// -mstackrealign to your build settings, feel free to #define STBI_MINGW_ENABLE_SSE2. -#define STBI_NO_SIMD -#endif - -#if !defined(STBI_NO_SIMD) && (defined(STBI__X86_TARGET) || defined(STBI__X64_TARGET)) -#define STBI_SSE2 -#include - -#ifdef _MSC_VER - -#if _MSC_VER >= 1400 // not VC6 -#include // __cpuid -static int stbi__cpuid3(void) -{ - int info[4]; - __cpuid(info,1); - return info[3]; -} -#else -static int stbi__cpuid3(void) -{ - int res; - __asm { - mov eax,1 - cpuid - mov res,edx - } - return res; -} -#endif - -#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name - -#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2) -static int stbi__sse2_available(void) -{ - int info3 = stbi__cpuid3(); - return ((info3 >> 26) & 1) != 0; -} -#endif - -#else // assume GCC-style if not VC++ -#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) - -#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2) -static int stbi__sse2_available(void) -{ - // If we're even attempting to compile this on GCC/Clang, that means - // -msse2 is on, which means the compiler is allowed to use SSE2 - // instructions at will, and so are we. - return 1; -} -#endif - -#endif -#endif - -// ARM NEON -#if defined(STBI_NO_SIMD) && defined(STBI_NEON) -#undef STBI_NEON -#endif - -#ifdef STBI_NEON -#include -#ifdef _MSC_VER -#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name -#else -#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) -#endif -#endif - -#ifndef STBI_SIMD_ALIGN -#define STBI_SIMD_ALIGN(type, name) type name -#endif - -#ifndef STBI_MAX_DIMENSIONS -#define STBI_MAX_DIMENSIONS (1 << 24) -#endif - -/////////////////////////////////////////////// -// -// stbi__context struct and start_xxx functions - -// stbi__context structure is our basic context used by all images, so it -// contains all the IO context, plus some basic image information -typedef struct -{ - stbi__uint32 img_x, img_y; - int img_n, img_out_n; - - stbi_io_callbacks io; - void *io_user_data; - - int read_from_callbacks; - int buflen; - stbi_uc buffer_start[128]; - int callback_already_read; - - stbi_uc *img_buffer, *img_buffer_end; - stbi_uc *img_buffer_original, *img_buffer_original_end; -} stbi__context; - - -static void stbi__refill_buffer(stbi__context *s); - -// initialize a memory-decode context -static void stbi__start_mem(stbi__context *s, stbi_uc const *buffer, int len) -{ - s->io.read = NULL; - s->read_from_callbacks = 0; - s->callback_already_read = 0; - s->img_buffer = s->img_buffer_original = (stbi_uc *) buffer; - s->img_buffer_end = s->img_buffer_original_end = (stbi_uc *) buffer+len; -} - -// initialize a callback-based context -static void stbi__start_callbacks(stbi__context *s, stbi_io_callbacks *c, void *user) -{ - s->io = *c; - s->io_user_data = user; - s->buflen = sizeof(s->buffer_start); - s->read_from_callbacks = 1; - s->callback_already_read = 0; - s->img_buffer = s->img_buffer_original = s->buffer_start; - stbi__refill_buffer(s); - s->img_buffer_original_end = s->img_buffer_end; -} - -#ifndef STBI_NO_STDIO - -static int stbi__stdio_read(void *user, char *data, int size) -{ - return (int) fread(data,1,size,(FILE*) user); -} - -static void stbi__stdio_skip(void *user, int n) -{ - int ch; - fseek((FILE*) user, n, SEEK_CUR); - ch = fgetc((FILE*) user); /* have to read a byte to reset feof()'s flag */ - if (ch != EOF) { - ungetc(ch, (FILE *) user); /* push byte back onto stream if valid. */ - } -} - -static int stbi__stdio_eof(void *user) -{ - return feof((FILE*) user) || ferror((FILE *) user); -} - -static stbi_io_callbacks stbi__stdio_callbacks = -{ - stbi__stdio_read, - stbi__stdio_skip, - stbi__stdio_eof, -}; - -static void stbi__start_file(stbi__context *s, FILE *f) -{ - stbi__start_callbacks(s, &stbi__stdio_callbacks, (void *) f); -} - -//static void stop_file(stbi__context *s) { } - -#endif // !STBI_NO_STDIO - -static void stbi__rewind(stbi__context *s) -{ - // conceptually rewind SHOULD rewind to the beginning of the stream, - // but we just rewind to the beginning of the initial buffer, because - // we only use it after doing 'test', which only ever looks at at most 92 bytes - s->img_buffer = s->img_buffer_original; - s->img_buffer_end = s->img_buffer_original_end; -} - -enum -{ - STBI_ORDER_RGB, - STBI_ORDER_BGR -}; - -typedef struct -{ - int bits_per_channel; - int num_channels; - int channel_order; -} stbi__result_info; - -#ifndef STBI_NO_JPEG -static int stbi__jpeg_test(stbi__context *s); -static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); -static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp); -#endif - -#ifndef STBI_NO_PNG -static int stbi__png_test(stbi__context *s); -static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); -static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp); -static int stbi__png_is16(stbi__context *s); -#endif - -#ifndef STBI_NO_BMP -static int stbi__bmp_test(stbi__context *s); -static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); -static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp); -#endif - -#ifndef STBI_NO_TGA -static int stbi__tga_test(stbi__context *s); -static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); -static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp); -#endif - -#ifndef STBI_NO_PSD -static int stbi__psd_test(stbi__context *s); -static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc); -static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp); -static int stbi__psd_is16(stbi__context *s); -#endif - -#ifndef STBI_NO_HDR -static int stbi__hdr_test(stbi__context *s); -static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); -static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp); -#endif - -#ifndef STBI_NO_PIC -static int stbi__pic_test(stbi__context *s); -static void *stbi__pic_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); -static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp); -#endif - -#ifndef STBI_NO_GIF -static int stbi__gif_test(stbi__context *s); -static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); -static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp); -static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp); -#endif - -#ifndef STBI_NO_PNM -static int stbi__pnm_test(stbi__context *s); -static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); -static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp); -static int stbi__pnm_is16(stbi__context *s); -#endif - -static -#ifdef STBI_THREAD_LOCAL -STBI_THREAD_LOCAL -#endif -const char *stbi__g_failure_reason; - -STBIDEF const char *stbi_failure_reason(void) -{ - return stbi__g_failure_reason; -} - -#ifndef STBI_NO_FAILURE_STRINGS -static int stbi__err(const char *str) -{ - stbi__g_failure_reason = str; - return 0; -} -#endif - -static void *stbi__malloc(size_t size) -{ - return STBI_MALLOC(size); -} - -// stb_image uses ints pervasively, including for offset calculations. -// therefore the largest decoded image size we can support with the -// current code, even on 64-bit targets, is INT_MAX. this is not a -// significant limitation for the intended use case. -// -// we do, however, need to make sure our size calculations don't -// overflow. hence a few helper functions for size calculations that -// multiply integers together, making sure that they're non-negative -// and no overflow occurs. - -// return 1 if the sum is valid, 0 on overflow. -// negative terms are considered invalid. -static int stbi__addsizes_valid(int a, int b) -{ - if (b < 0) return 0; - // now 0 <= b <= INT_MAX, hence also - // 0 <= INT_MAX - b <= INTMAX. - // And "a + b <= INT_MAX" (which might overflow) is the - // same as a <= INT_MAX - b (no overflow) - return a <= INT_MAX - b; -} - -// returns 1 if the product is valid, 0 on overflow. -// negative factors are considered invalid. -static int stbi__mul2sizes_valid(int a, int b) -{ - if (a < 0 || b < 0) return 0; - if (b == 0) return 1; // mul-by-0 is always safe - // portable way to check for no overflows in a*b - return a <= INT_MAX/b; -} - -#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR) -// returns 1 if "a*b + add" has no negative terms/factors and doesn't overflow -static int stbi__mad2sizes_valid(int a, int b, int add) -{ - return stbi__mul2sizes_valid(a, b) && stbi__addsizes_valid(a*b, add); -} -#endif - -// returns 1 if "a*b*c + add" has no negative terms/factors and doesn't overflow -static int stbi__mad3sizes_valid(int a, int b, int c, int add) -{ - return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && - stbi__addsizes_valid(a*b*c, add); -} - -// returns 1 if "a*b*c*d + add" has no negative terms/factors and doesn't overflow -#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) || !defined(STBI_NO_PNM) -static int stbi__mad4sizes_valid(int a, int b, int c, int d, int add) -{ - return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && - stbi__mul2sizes_valid(a*b*c, d) && stbi__addsizes_valid(a*b*c*d, add); -} -#endif - -#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR) -// mallocs with size overflow checking -static void *stbi__malloc_mad2(int a, int b, int add) -{ - if (!stbi__mad2sizes_valid(a, b, add)) return NULL; - return stbi__malloc(a*b + add); -} -#endif - -static void *stbi__malloc_mad3(int a, int b, int c, int add) -{ - if (!stbi__mad3sizes_valid(a, b, c, add)) return NULL; - return stbi__malloc(a*b*c + add); -} - -#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) || !defined(STBI_NO_PNM) -static void *stbi__malloc_mad4(int a, int b, int c, int d, int add) -{ - if (!stbi__mad4sizes_valid(a, b, c, d, add)) return NULL; - return stbi__malloc(a*b*c*d + add); -} -#endif - -// returns 1 if the sum of two signed ints is valid (between -2^31 and 2^31-1 inclusive), 0 on overflow. -static int stbi__addints_valid(int a, int b) -{ - if ((a >= 0) != (b >= 0)) return 1; // a and b have different signs, so no overflow - if (a < 0 && b < 0) return a >= INT_MIN - b; // same as a + b >= INT_MIN; INT_MIN - b cannot overflow since b < 0. - return a <= INT_MAX - b; -} - -// returns 1 if the product of two ints fits in a signed short, 0 on overflow. -static int stbi__mul2shorts_valid(int a, int b) -{ - if (b == 0 || b == -1) return 1; // multiplication by 0 is always 0; check for -1 so SHRT_MIN/b doesn't overflow - if ((a >= 0) == (b >= 0)) return a <= SHRT_MAX/b; // product is positive, so similar to mul2sizes_valid - if (b < 0) return a <= SHRT_MIN / b; // same as a * b >= SHRT_MIN - return a >= SHRT_MIN / b; -} - -// stbi__err - error -// stbi__errpf - error returning pointer to float -// stbi__errpuc - error returning pointer to unsigned char - -#ifdef STBI_NO_FAILURE_STRINGS - #define stbi__err(x,y) 0 -#elif defined(STBI_FAILURE_USERMSG) - #define stbi__err(x,y) stbi__err(y) -#else - #define stbi__err(x,y) stbi__err(x) -#endif - -#define stbi__errpf(x,y) ((float *)(size_t) (stbi__err(x,y)?NULL:NULL)) -#define stbi__errpuc(x,y) ((unsigned char *)(size_t) (stbi__err(x,y)?NULL:NULL)) - -STBIDEF void stbi_image_free(void *retval_from_stbi_load) -{ - STBI_FREE(retval_from_stbi_load); -} - -#ifndef STBI_NO_LINEAR -static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp); -#endif - -#ifndef STBI_NO_HDR -static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp); -#endif - -static int stbi__vertically_flip_on_load_global = 0; - -STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip) -{ - stbi__vertically_flip_on_load_global = flag_true_if_should_flip; -} - -#ifndef STBI_THREAD_LOCAL -#define stbi__vertically_flip_on_load stbi__vertically_flip_on_load_global -#else -static STBI_THREAD_LOCAL int stbi__vertically_flip_on_load_local, stbi__vertically_flip_on_load_set; - -STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip) -{ - stbi__vertically_flip_on_load_local = flag_true_if_should_flip; - stbi__vertically_flip_on_load_set = 1; -} - -#define stbi__vertically_flip_on_load (stbi__vertically_flip_on_load_set \ - ? stbi__vertically_flip_on_load_local \ - : stbi__vertically_flip_on_load_global) -#endif // STBI_THREAD_LOCAL - -static void *stbi__load_main(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) -{ - memset(ri, 0, sizeof(*ri)); // make sure it's initialized if we add new fields - ri->bits_per_channel = 8; // default is 8 so most paths don't have to be changed - ri->channel_order = STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order - ri->num_channels = 0; - - // test the formats with a very explicit header first (at least a FOURCC - // or distinctive magic number first) - #ifndef STBI_NO_PNG - if (stbi__png_test(s)) return stbi__png_load(s,x,y,comp,req_comp, ri); - #endif - #ifndef STBI_NO_BMP - if (stbi__bmp_test(s)) return stbi__bmp_load(s,x,y,comp,req_comp, ri); - #endif - #ifndef STBI_NO_GIF - if (stbi__gif_test(s)) return stbi__gif_load(s,x,y,comp,req_comp, ri); - #endif - #ifndef STBI_NO_PSD - if (stbi__psd_test(s)) return stbi__psd_load(s,x,y,comp,req_comp, ri, bpc); - #else - STBI_NOTUSED(bpc); - #endif - #ifndef STBI_NO_PIC - if (stbi__pic_test(s)) return stbi__pic_load(s,x,y,comp,req_comp, ri); - #endif - - // then the formats that can end up attempting to load with just 1 or 2 - // bytes matching expectations; these are prone to false positives, so - // try them later - #ifndef STBI_NO_JPEG - if (stbi__jpeg_test(s)) return stbi__jpeg_load(s,x,y,comp,req_comp, ri); - #endif - #ifndef STBI_NO_PNM - if (stbi__pnm_test(s)) return stbi__pnm_load(s,x,y,comp,req_comp, ri); - #endif - - #ifndef STBI_NO_HDR - if (stbi__hdr_test(s)) { - float *hdr = stbi__hdr_load(s, x,y,comp,req_comp, ri); - return stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp); - } - #endif - - #ifndef STBI_NO_TGA - // test tga last because it's a crappy test! - if (stbi__tga_test(s)) - return stbi__tga_load(s,x,y,comp,req_comp, ri); - #endif - - return stbi__errpuc("unknown image type", "Image not of any known type, or corrupt"); -} - -static stbi_uc *stbi__convert_16_to_8(stbi__uint16 *orig, int w, int h, int channels) -{ - int i; - int img_len = w * h * channels; - stbi_uc *reduced; - - reduced = (stbi_uc *) stbi__malloc(img_len); - if (reduced == NULL) return stbi__errpuc("outofmem", "Out of memory"); - - for (i = 0; i < img_len; ++i) - reduced[i] = (stbi_uc)((orig[i] >> 8) & 0xFF); // top half of each byte is sufficient approx of 16->8 bit scaling - - STBI_FREE(orig); - return reduced; -} - -static stbi__uint16 *stbi__convert_8_to_16(stbi_uc *orig, int w, int h, int channels) -{ - int i; - int img_len = w * h * channels; - stbi__uint16 *enlarged; - - enlarged = (stbi__uint16 *) stbi__malloc(img_len*2); - if (enlarged == NULL) return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory"); - - for (i = 0; i < img_len; ++i) - enlarged[i] = (stbi__uint16)((orig[i] << 8) + orig[i]); // replicate to high and low byte, maps 0->0, 255->0xffff - - STBI_FREE(orig); - return enlarged; -} - -static void stbi__vertical_flip(void *image, int w, int h, int bytes_per_pixel) -{ - int row; - size_t bytes_per_row = (size_t)w * bytes_per_pixel; - stbi_uc temp[2048]; - stbi_uc *bytes = (stbi_uc *)image; - - for (row = 0; row < (h>>1); row++) { - stbi_uc *row0 = bytes + row*bytes_per_row; - stbi_uc *row1 = bytes + (h - row - 1)*bytes_per_row; - // swap row0 with row1 - size_t bytes_left = bytes_per_row; - while (bytes_left) { - size_t bytes_copy = (bytes_left < sizeof(temp)) ? bytes_left : sizeof(temp); - memcpy(temp, row0, bytes_copy); - memcpy(row0, row1, bytes_copy); - memcpy(row1, temp, bytes_copy); - row0 += bytes_copy; - row1 += bytes_copy; - bytes_left -= bytes_copy; - } - } -} - -#ifndef STBI_NO_GIF -static void stbi__vertical_flip_slices(void *image, int w, int h, int z, int bytes_per_pixel) -{ - int slice; - int slice_size = w * h * bytes_per_pixel; - - stbi_uc *bytes = (stbi_uc *)image; - for (slice = 0; slice < z; ++slice) { - stbi__vertical_flip(bytes, w, h, bytes_per_pixel); - bytes += slice_size; - } -} -#endif - -static unsigned char *stbi__load_and_postprocess_8bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) -{ - stbi__result_info ri; - void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 8); - - if (result == NULL) - return NULL; - - // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. - STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); - - if (ri.bits_per_channel != 8) { - result = stbi__convert_16_to_8((stbi__uint16 *) result, *x, *y, req_comp == 0 ? *comp : req_comp); - ri.bits_per_channel = 8; - } - - // @TODO: move stbi__convert_format to here - - if (stbi__vertically_flip_on_load) { - int channels = req_comp ? req_comp : *comp; - stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi_uc)); - } - - return (unsigned char *) result; -} - -static stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) -{ - stbi__result_info ri; - void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 16); - - if (result == NULL) - return NULL; - - // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. - STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); - - if (ri.bits_per_channel != 16) { - result = stbi__convert_8_to_16((stbi_uc *) result, *x, *y, req_comp == 0 ? *comp : req_comp); - ri.bits_per_channel = 16; - } - - // @TODO: move stbi__convert_format16 to here - // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision - - if (stbi__vertically_flip_on_load) { - int channels = req_comp ? req_comp : *comp; - stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi__uint16)); - } - - return (stbi__uint16 *) result; -} - -#if !defined(STBI_NO_HDR) && !defined(STBI_NO_LINEAR) -static void stbi__float_postprocess(float *result, int *x, int *y, int *comp, int req_comp) -{ - if (stbi__vertically_flip_on_load && result != NULL) { - int channels = req_comp ? req_comp : *comp; - stbi__vertical_flip(result, *x, *y, channels * sizeof(float)); - } -} -#endif - -#ifndef STBI_NO_STDIO - -#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) -STBI_EXTERN __declspec(dllimport) int __stdcall MultiByteToWideChar(unsigned int cp, unsigned long flags, const char *str, int cbmb, wchar_t *widestr, int cchwide); -STBI_EXTERN __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned int cp, unsigned long flags, const wchar_t *widestr, int cchwide, char *str, int cbmb, const char *defchar, int *used_default); -#endif - -#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) -STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input) -{ - return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int) bufferlen, NULL, NULL); -} -#endif - -static FILE *stbi__fopen(char const *filename, char const *mode) -{ - FILE *f; -#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) - wchar_t wMode[64]; - wchar_t wFilename[1024]; - if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename, sizeof(wFilename)/sizeof(*wFilename))) - return 0; - - if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode, sizeof(wMode)/sizeof(*wMode))) - return 0; - -#if defined(_MSC_VER) && _MSC_VER >= 1400 - if (0 != _wfopen_s(&f, wFilename, wMode)) - f = 0; -#else - f = _wfopen(wFilename, wMode); -#endif - -#elif defined(_MSC_VER) && _MSC_VER >= 1400 - if (0 != fopen_s(&f, filename, mode)) - f=0; -#else - f = fopen(filename, mode); -#endif - return f; -} - - -STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *comp, int req_comp) -{ - FILE *f = stbi__fopen(filename, "rb"); - unsigned char *result; - if (!f) return stbi__errpuc("can't fopen", "Unable to open file"); - result = stbi_load_from_file(f,x,y,comp,req_comp); - fclose(f); - return result; -} - -STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) -{ - unsigned char *result; - stbi__context s; - stbi__start_file(&s,f); - result = stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); - if (result) { - // need to 'unget' all the characters in the IO buffer - fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR); - } - return result; -} - -STBIDEF stbi__uint16 *stbi_load_from_file_16(FILE *f, int *x, int *y, int *comp, int req_comp) -{ - stbi__uint16 *result; - stbi__context s; - stbi__start_file(&s,f); - result = stbi__load_and_postprocess_16bit(&s,x,y,comp,req_comp); - if (result) { - // need to 'unget' all the characters in the IO buffer - fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR); - } - return result; -} - -STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int *comp, int req_comp) -{ - FILE *f = stbi__fopen(filename, "rb"); - stbi__uint16 *result; - if (!f) return (stbi_us *) stbi__errpuc("can't fopen", "Unable to open file"); - result = stbi_load_from_file_16(f,x,y,comp,req_comp); - fclose(f); - return result; -} - - -#endif //!STBI_NO_STDIO - -STBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels) -{ - stbi__context s; - stbi__start_mem(&s,buffer,len); - return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels); -} - -STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels) -{ - stbi__context s; - stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); - return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels); -} - -STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) -{ - stbi__context s; - stbi__start_mem(&s,buffer,len); - return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); -} - -STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) -{ - stbi__context s; - stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); - return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); -} - -#ifndef STBI_NO_GIF -STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp) -{ - unsigned char *result; - stbi__context s; - stbi__start_mem(&s,buffer,len); - - result = (unsigned char*) stbi__load_gif_main(&s, delays, x, y, z, comp, req_comp); - if (stbi__vertically_flip_on_load) { - stbi__vertical_flip_slices( result, *x, *y, *z, *comp ); - } - - return result; -} -#endif - -#ifndef STBI_NO_LINEAR -static float *stbi__loadf_main(stbi__context *s, int *x, int *y, int *comp, int req_comp) -{ - unsigned char *data; - #ifndef STBI_NO_HDR - if (stbi__hdr_test(s)) { - stbi__result_info ri; - float *hdr_data = stbi__hdr_load(s,x,y,comp,req_comp, &ri); - if (hdr_data) - stbi__float_postprocess(hdr_data,x,y,comp,req_comp); - return hdr_data; - } - #endif - data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp); - if (data) - return stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp); - return stbi__errpf("unknown image type", "Image not of any known type, or corrupt"); -} - -STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) -{ - stbi__context s; - stbi__start_mem(&s,buffer,len); - return stbi__loadf_main(&s,x,y,comp,req_comp); -} - -STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) -{ - stbi__context s; - stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); - return stbi__loadf_main(&s,x,y,comp,req_comp); -} - -#ifndef STBI_NO_STDIO -STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *comp, int req_comp) -{ - float *result; - FILE *f = stbi__fopen(filename, "rb"); - if (!f) return stbi__errpf("can't fopen", "Unable to open file"); - result = stbi_loadf_from_file(f,x,y,comp,req_comp); - fclose(f); - return result; -} - -STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) -{ - stbi__context s; - stbi__start_file(&s,f); - return stbi__loadf_main(&s,x,y,comp,req_comp); -} -#endif // !STBI_NO_STDIO - -#endif // !STBI_NO_LINEAR - -// these is-hdr-or-not is defined independent of whether STBI_NO_LINEAR is -// defined, for API simplicity; if STBI_NO_LINEAR is defined, it always -// reports false! - -STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len) -{ - #ifndef STBI_NO_HDR - stbi__context s; - stbi__start_mem(&s,buffer,len); - return stbi__hdr_test(&s); - #else - STBI_NOTUSED(buffer); - STBI_NOTUSED(len); - return 0; - #endif -} - -#ifndef STBI_NO_STDIO -STBIDEF int stbi_is_hdr (char const *filename) -{ - FILE *f = stbi__fopen(filename, "rb"); - int result=0; - if (f) { - result = stbi_is_hdr_from_file(f); - fclose(f); - } - return result; -} - -STBIDEF int stbi_is_hdr_from_file(FILE *f) -{ - #ifndef STBI_NO_HDR - long pos = ftell(f); - int res; - stbi__context s; - stbi__start_file(&s,f); - res = stbi__hdr_test(&s); - fseek(f, pos, SEEK_SET); - return res; - #else - STBI_NOTUSED(f); - return 0; - #endif -} -#endif // !STBI_NO_STDIO - -STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user) -{ - #ifndef STBI_NO_HDR - stbi__context s; - stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); - return stbi__hdr_test(&s); - #else - STBI_NOTUSED(clbk); - STBI_NOTUSED(user); - return 0; - #endif -} - -#ifndef STBI_NO_LINEAR -static float stbi__l2h_gamma=2.2f, stbi__l2h_scale=1.0f; - -STBIDEF void stbi_ldr_to_hdr_gamma(float gamma) { stbi__l2h_gamma = gamma; } -STBIDEF void stbi_ldr_to_hdr_scale(float scale) { stbi__l2h_scale = scale; } -#endif - -static float stbi__h2l_gamma_i=1.0f/2.2f, stbi__h2l_scale_i=1.0f; - -STBIDEF void stbi_hdr_to_ldr_gamma(float gamma) { stbi__h2l_gamma_i = 1/gamma; } -STBIDEF void stbi_hdr_to_ldr_scale(float scale) { stbi__h2l_scale_i = 1/scale; } - - -////////////////////////////////////////////////////////////////////////////// -// -// Common code used by all image loaders -// - -enum -{ - STBI__SCAN_load=0, - STBI__SCAN_type, - STBI__SCAN_header -}; - -static void stbi__refill_buffer(stbi__context *s) -{ - int n = (s->io.read)(s->io_user_data,(char*)s->buffer_start,s->buflen); - s->callback_already_read += (int) (s->img_buffer - s->img_buffer_original); - if (n == 0) { - // at end of file, treat same as if from memory, but need to handle case - // where s->img_buffer isn't pointing to safe memory, e.g. 0-byte file - s->read_from_callbacks = 0; - s->img_buffer = s->buffer_start; - s->img_buffer_end = s->buffer_start+1; - *s->img_buffer = 0; - } else { - s->img_buffer = s->buffer_start; - s->img_buffer_end = s->buffer_start + n; - } -} - -stbi_inline static stbi_uc stbi__get8(stbi__context *s) -{ - if (s->img_buffer < s->img_buffer_end) - return *s->img_buffer++; - if (s->read_from_callbacks) { - stbi__refill_buffer(s); - return *s->img_buffer++; - } - return 0; -} - -#if defined(STBI_NO_JPEG) && defined(STBI_NO_HDR) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) -// nothing -#else -stbi_inline static int stbi__at_eof(stbi__context *s) -{ - if (s->io.read) { - if (!(s->io.eof)(s->io_user_data)) return 0; - // if feof() is true, check if buffer = end - // special case: we've only got the special 0 character at the end - if (s->read_from_callbacks == 0) return 1; - } - - return s->img_buffer >= s->img_buffer_end; -} -#endif - -#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) -// nothing -#else -static void stbi__skip(stbi__context *s, int n) -{ - if (n == 0) return; // already there! - if (n < 0) { - s->img_buffer = s->img_buffer_end; - return; - } - if (s->io.read) { - int blen = (int) (s->img_buffer_end - s->img_buffer); - if (blen < n) { - s->img_buffer = s->img_buffer_end; - (s->io.skip)(s->io_user_data, n - blen); - return; - } - } - s->img_buffer += n; -} -#endif - -#if defined(STBI_NO_PNG) && defined(STBI_NO_TGA) && defined(STBI_NO_HDR) && defined(STBI_NO_PNM) -// nothing -#else -static int stbi__getn(stbi__context *s, stbi_uc *buffer, int n) -{ - if (s->io.read) { - int blen = (int) (s->img_buffer_end - s->img_buffer); - if (blen < n) { - int res, count; - - memcpy(buffer, s->img_buffer, blen); - - count = (s->io.read)(s->io_user_data, (char*) buffer + blen, n - blen); - res = (count == (n-blen)); - s->img_buffer = s->img_buffer_end; - return res; - } - } - - if (s->img_buffer+n <= s->img_buffer_end) { - memcpy(buffer, s->img_buffer, n); - s->img_buffer += n; - return 1; - } else - return 0; -} -#endif - -#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC) -// nothing -#else -static int stbi__get16be(stbi__context *s) -{ - int z = stbi__get8(s); - return (z << 8) + stbi__get8(s); -} -#endif - -#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC) -// nothing -#else -static stbi__uint32 stbi__get32be(stbi__context *s) -{ - stbi__uint32 z = stbi__get16be(s); - return (z << 16) + stbi__get16be(s); -} -#endif - -#if defined(STBI_NO_BMP) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) -// nothing -#else -static int stbi__get16le(stbi__context *s) -{ - int z = stbi__get8(s); - return z + (stbi__get8(s) << 8); -} -#endif - -#ifndef STBI_NO_BMP -static stbi__uint32 stbi__get32le(stbi__context *s) -{ - stbi__uint32 z = stbi__get16le(s); - z += (stbi__uint32)stbi__get16le(s) << 16; - return z; -} -#endif - -#define STBI__BYTECAST(x) ((stbi_uc) ((x) & 255)) // truncate int to byte without warnings - -#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) -// nothing -#else -////////////////////////////////////////////////////////////////////////////// -// -// generic converter from built-in img_n to req_comp -// individual types do this automatically as much as possible (e.g. jpeg -// does all cases internally since it needs to colorspace convert anyway, -// and it never has alpha, so very few cases ). png can automatically -// interleave an alpha=255 channel, but falls back to this for other cases -// -// assume data buffer is malloced, so malloc a new one and free that one -// only failure mode is malloc failing - -static stbi_uc stbi__compute_y(int r, int g, int b) -{ - return (stbi_uc) (((r*77) + (g*150) + (29*b)) >> 8); -} -#endif - -#if defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) -// nothing -#else -static unsigned char *stbi__convert_format(unsigned char *data, int img_n, int req_comp, unsigned int x, unsigned int y) -{ - int i,j; - unsigned char *good; - - if (req_comp == img_n) return data; - STBI_ASSERT(req_comp >= 1 && req_comp <= 4); - - good = (unsigned char *) stbi__malloc_mad3(req_comp, x, y, 0); - if (good == NULL) { - STBI_FREE(data); - return stbi__errpuc("outofmem", "Out of memory"); - } - - for (j=0; j < (int) y; ++j) { - unsigned char *src = data + j * x * img_n ; - unsigned char *dest = good + j * x * req_comp; - - #define STBI__COMBO(a,b) ((a)*8+(b)) - #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) - // convert source image with img_n components to one with req_comp components; - // avoid switch per pixel, so use switch per scanline and massive macros - switch (STBI__COMBO(img_n, req_comp)) { - STBI__CASE(1,2) { dest[0]=src[0]; dest[1]=255; } break; - STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; - STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=255; } break; - STBI__CASE(2,1) { dest[0]=src[0]; } break; - STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; - STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=src[1]; } break; - STBI__CASE(3,4) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];dest[3]=255; } break; - STBI__CASE(3,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; - STBI__CASE(3,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); dest[1] = 255; } break; - STBI__CASE(4,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; - STBI__CASE(4,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); dest[1] = src[3]; } break; - STBI__CASE(4,3) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2]; } break; - default: STBI_ASSERT(0); STBI_FREE(data); STBI_FREE(good); return stbi__errpuc("unsupported", "Unsupported format conversion"); - } - #undef STBI__CASE - } - - STBI_FREE(data); - return good; -} -#endif - -#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) -// nothing -#else -static stbi__uint16 stbi__compute_y_16(int r, int g, int b) -{ - return (stbi__uint16) (((r*77) + (g*150) + (29*b)) >> 8); -} -#endif - -#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) -// nothing -#else -static stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, int img_n, int req_comp, unsigned int x, unsigned int y) -{ - int i,j; - stbi__uint16 *good; - - if (req_comp == img_n) return data; - STBI_ASSERT(req_comp >= 1 && req_comp <= 4); - - good = (stbi__uint16 *) stbi__malloc(req_comp * x * y * 2); - if (good == NULL) { - STBI_FREE(data); - return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory"); - } - - for (j=0; j < (int) y; ++j) { - stbi__uint16 *src = data + j * x * img_n ; - stbi__uint16 *dest = good + j * x * req_comp; - - #define STBI__COMBO(a,b) ((a)*8+(b)) - #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) - // convert source image with img_n components to one with req_comp components; - // avoid switch per pixel, so use switch per scanline and massive macros - switch (STBI__COMBO(img_n, req_comp)) { - STBI__CASE(1,2) { dest[0]=src[0]; dest[1]=0xffff; } break; - STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; - STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=0xffff; } break; - STBI__CASE(2,1) { dest[0]=src[0]; } break; - STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; - STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=src[1]; } break; - STBI__CASE(3,4) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];dest[3]=0xffff; } break; - STBI__CASE(3,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break; - STBI__CASE(3,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); dest[1] = 0xffff; } break; - STBI__CASE(4,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break; - STBI__CASE(4,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); dest[1] = src[3]; } break; - STBI__CASE(4,3) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2]; } break; - default: STBI_ASSERT(0); STBI_FREE(data); STBI_FREE(good); return (stbi__uint16*) stbi__errpuc("unsupported", "Unsupported format conversion"); - } - #undef STBI__CASE - } - - STBI_FREE(data); - return good; -} -#endif - -#ifndef STBI_NO_LINEAR -static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp) -{ - int i,k,n; - float *output; - if (!data) return NULL; - output = (float *) stbi__malloc_mad4(x, y, comp, sizeof(float), 0); - if (output == NULL) { STBI_FREE(data); return stbi__errpf("outofmem", "Out of memory"); } - // compute number of non-alpha components - if (comp & 1) n = comp; else n = comp-1; - for (i=0; i < x*y; ++i) { - for (k=0; k < n; ++k) { - output[i*comp + k] = (float) (pow(data[i*comp+k]/255.0f, stbi__l2h_gamma) * stbi__l2h_scale); - } - } - if (n < comp) { - for (i=0; i < x*y; ++i) { - output[i*comp + n] = data[i*comp + n]/255.0f; - } - } - STBI_FREE(data); - return output; -} -#endif - -#ifndef STBI_NO_HDR -#define stbi__float2int(x) ((int) (x)) -static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp) -{ - int i,k,n; - stbi_uc *output; - if (!data) return NULL; - output = (stbi_uc *) stbi__malloc_mad3(x, y, comp, 0); - if (output == NULL) { STBI_FREE(data); return stbi__errpuc("outofmem", "Out of memory"); } - // compute number of non-alpha components - if (comp & 1) n = comp; else n = comp-1; - for (i=0; i < x*y; ++i) { - for (k=0; k < n; ++k) { - float z = (float) pow(data[i*comp+k]*stbi__h2l_scale_i, stbi__h2l_gamma_i) * 255 + 0.5f; - if (z < 0) z = 0; - if (z > 255) z = 255; - output[i*comp + k] = (stbi_uc) stbi__float2int(z); - } - if (k < comp) { - float z = data[i*comp+k] * 255 + 0.5f; - if (z < 0) z = 0; - if (z > 255) z = 255; - output[i*comp + k] = (stbi_uc) stbi__float2int(z); - } - } - STBI_FREE(data); - return output; -} -#endif - -////////////////////////////////////////////////////////////////////////////// -// -// "baseline" JPEG/JFIF decoder -// -// simple implementation -// - doesn't support delayed output of y-dimension -// - simple interface (only one output format: 8-bit interleaved RGB) -// - doesn't try to recover corrupt jpegs -// - doesn't allow partial loading, loading multiple at once -// - still fast on x86 (copying globals into locals doesn't help x86) -// - allocates lots of intermediate memory (full size of all components) -// - non-interleaved case requires this anyway -// - allows good upsampling (see next) -// high-quality -// - upsampled channels are bilinearly interpolated, even across blocks -// - quality integer IDCT derived from IJG's 'slow' -// performance -// - fast huffman; reasonable integer IDCT -// - some SIMD kernels for common paths on targets with SSE2/NEON -// - uses a lot of intermediate memory, could cache poorly - -#ifndef STBI_NO_JPEG - -// huffman decoding acceleration -#define FAST_BITS 9 // larger handles more cases; smaller stomps less cache - -typedef struct -{ - stbi_uc fast[1 << FAST_BITS]; - // weirdly, repacking this into AoS is a 10% speed loss, instead of a win - stbi__uint16 code[256]; - stbi_uc values[256]; - stbi_uc size[257]; - unsigned int maxcode[18]; - int delta[17]; // old 'firstsymbol' - old 'firstcode' -} stbi__huffman; - -typedef struct -{ - stbi__context *s; - stbi__huffman huff_dc[4]; - stbi__huffman huff_ac[4]; - stbi__uint16 dequant[4][64]; - stbi__int16 fast_ac[4][1 << FAST_BITS]; - -// sizes for components, interleaved MCUs - int img_h_max, img_v_max; - int img_mcu_x, img_mcu_y; - int img_mcu_w, img_mcu_h; - -// definition of jpeg image component - struct - { - int id; - int h,v; - int tq; - int hd,ha; - int dc_pred; - - int x,y,w2,h2; - stbi_uc *data; - void *raw_data, *raw_coeff; - stbi_uc *linebuf; - short *coeff; // progressive only - int coeff_w, coeff_h; // number of 8x8 coefficient blocks - } img_comp[4]; - - stbi__uint32 code_buffer; // jpeg entropy-coded buffer - int code_bits; // number of valid bits - unsigned char marker; // marker seen while filling entropy buffer - int nomore; // flag if we saw a marker so must stop - - int progressive; - int spec_start; - int spec_end; - int succ_high; - int succ_low; - int eob_run; - int jfif; - int app14_color_transform; // Adobe APP14 tag - int rgb; - - int scan_n, order[4]; - int restart_interval, todo; - -// kernels - void (*idct_block_kernel)(stbi_uc *out, int out_stride, short data[64]); - void (*YCbCr_to_RGB_kernel)(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step); - stbi_uc *(*resample_row_hv_2_kernel)(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs); -} stbi__jpeg; - -static int stbi__build_huffman(stbi__huffman *h, int *count) -{ - int i,j,k=0; - unsigned int code; - // build size list for each symbol (from JPEG spec) - for (i=0; i < 16; ++i) { - for (j=0; j < count[i]; ++j) { - h->size[k++] = (stbi_uc) (i+1); - if(k >= 257) return stbi__err("bad size list","Corrupt JPEG"); - } - } - h->size[k] = 0; - - // compute actual symbols (from jpeg spec) - code = 0; - k = 0; - for(j=1; j <= 16; ++j) { - // compute delta to add to code to compute symbol id - h->delta[j] = k - code; - if (h->size[k] == j) { - while (h->size[k] == j) - h->code[k++] = (stbi__uint16) (code++); - if (code-1 >= (1u << j)) return stbi__err("bad code lengths","Corrupt JPEG"); - } - // compute largest code + 1 for this size, preshifted as needed later - h->maxcode[j] = code << (16-j); - code <<= 1; - } - h->maxcode[j] = 0xffffffff; - - // build non-spec acceleration table; 255 is flag for not-accelerated - memset(h->fast, 255, 1 << FAST_BITS); - for (i=0; i < k; ++i) { - int s = h->size[i]; - if (s <= FAST_BITS) { - int c = h->code[i] << (FAST_BITS-s); - int m = 1 << (FAST_BITS-s); - for (j=0; j < m; ++j) { - h->fast[c+j] = (stbi_uc) i; - } - } - } - return 1; -} - -// build a table that decodes both magnitude and value of small ACs in -// one go. -static void stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h) -{ - int i; - for (i=0; i < (1 << FAST_BITS); ++i) { - stbi_uc fast = h->fast[i]; - fast_ac[i] = 0; - if (fast < 255) { - int rs = h->values[fast]; - int run = (rs >> 4) & 15; - int magbits = rs & 15; - int len = h->size[fast]; - - if (magbits && len + magbits <= FAST_BITS) { - // magnitude code followed by receive_extend code - int k = ((i << len) & ((1 << FAST_BITS) - 1)) >> (FAST_BITS - magbits); - int m = 1 << (magbits - 1); - if (k < m) k += (~0U << magbits) + 1; - // if the result is small enough, we can fit it in fast_ac table - if (k >= -128 && k <= 127) - fast_ac[i] = (stbi__int16) ((k * 256) + (run * 16) + (len + magbits)); - } - } - } -} - -static void stbi__grow_buffer_unsafe(stbi__jpeg *j) -{ - do { - unsigned int b = j->nomore ? 0 : stbi__get8(j->s); - if (b == 0xff) { - int c = stbi__get8(j->s); - while (c == 0xff) c = stbi__get8(j->s); // consume fill bytes - if (c != 0) { - j->marker = (unsigned char) c; - j->nomore = 1; - return; - } - } - j->code_buffer |= b << (24 - j->code_bits); - j->code_bits += 8; - } while (j->code_bits <= 24); -} - -// (1 << n) - 1 -static const stbi__uint32 stbi__bmask[17]={0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535}; - -// decode a jpeg huffman value from the bitstream -stbi_inline static int stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffman *h) -{ - unsigned int temp; - int c,k; - - if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); - - // look at the top FAST_BITS and determine what symbol ID it is, - // if the code is <= FAST_BITS - c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); - k = h->fast[c]; - if (k < 255) { - int s = h->size[k]; - if (s > j->code_bits) - return -1; - j->code_buffer <<= s; - j->code_bits -= s; - return h->values[k]; - } - - // naive test is to shift the code_buffer down so k bits are - // valid, then test against maxcode. To speed this up, we've - // preshifted maxcode left so that it has (16-k) 0s at the - // end; in other words, regardless of the number of bits, it - // wants to be compared against something shifted to have 16; - // that way we don't need to shift inside the loop. - temp = j->code_buffer >> 16; - for (k=FAST_BITS+1 ; ; ++k) - if (temp < h->maxcode[k]) - break; - if (k == 17) { - // error! code not found - j->code_bits -= 16; - return -1; - } - - if (k > j->code_bits) - return -1; - - // convert the huffman code to the symbol id - c = ((j->code_buffer >> (32 - k)) & stbi__bmask[k]) + h->delta[k]; - if(c < 0 || c >= 256) // symbol id out of bounds! - return -1; - STBI_ASSERT((((j->code_buffer) >> (32 - h->size[c])) & stbi__bmask[h->size[c]]) == h->code[c]); - - // convert the id to a symbol - j->code_bits -= k; - j->code_buffer <<= k; - return h->values[c]; -} - -// bias[n] = (-1<code_bits < n) stbi__grow_buffer_unsafe(j); - if (j->code_bits < n) return 0; // ran out of bits from stream, return 0s intead of continuing - - sgn = j->code_buffer >> 31; // sign bit always in MSB; 0 if MSB clear (positive), 1 if MSB set (negative) - k = stbi_lrot(j->code_buffer, n); - j->code_buffer = k & ~stbi__bmask[n]; - k &= stbi__bmask[n]; - j->code_bits -= n; - return k + (stbi__jbias[n] & (sgn - 1)); -} - -// get some unsigned bits -stbi_inline static int stbi__jpeg_get_bits(stbi__jpeg *j, int n) -{ - unsigned int k; - if (j->code_bits < n) stbi__grow_buffer_unsafe(j); - if (j->code_bits < n) return 0; // ran out of bits from stream, return 0s intead of continuing - k = stbi_lrot(j->code_buffer, n); - j->code_buffer = k & ~stbi__bmask[n]; - k &= stbi__bmask[n]; - j->code_bits -= n; - return k; -} - -stbi_inline static int stbi__jpeg_get_bit(stbi__jpeg *j) -{ - unsigned int k; - if (j->code_bits < 1) stbi__grow_buffer_unsafe(j); - if (j->code_bits < 1) return 0; // ran out of bits from stream, return 0s intead of continuing - k = j->code_buffer; - j->code_buffer <<= 1; - --j->code_bits; - return k & 0x80000000; -} - -// given a value that's at position X in the zigzag stream, -// where does it appear in the 8x8 matrix coded as row-major? -static const stbi_uc stbi__jpeg_dezigzag[64+15] = -{ - 0, 1, 8, 16, 9, 2, 3, 10, - 17, 24, 32, 25, 18, 11, 4, 5, - 12, 19, 26, 33, 40, 48, 41, 34, - 27, 20, 13, 6, 7, 14, 21, 28, - 35, 42, 49, 56, 57, 50, 43, 36, - 29, 22, 15, 23, 30, 37, 44, 51, - 58, 59, 52, 45, 38, 31, 39, 46, - 53, 60, 61, 54, 47, 55, 62, 63, - // let corrupt input sample past end - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63 -}; - -// decode one 64-entry block-- -static int stbi__jpeg_decode_block(stbi__jpeg *j, short data[64], stbi__huffman *hdc, stbi__huffman *hac, stbi__int16 *fac, int b, stbi__uint16 *dequant) -{ - int diff,dc,k; - int t; - - if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); - t = stbi__jpeg_huff_decode(j, hdc); - if (t < 0 || t > 15) return stbi__err("bad huffman code","Corrupt JPEG"); - - // 0 all the ac values now so we can do it 32-bits at a time - memset(data,0,64*sizeof(data[0])); - - diff = t ? stbi__extend_receive(j, t) : 0; - if (!stbi__addints_valid(j->img_comp[b].dc_pred, diff)) return stbi__err("bad delta","Corrupt JPEG"); - dc = j->img_comp[b].dc_pred + diff; - j->img_comp[b].dc_pred = dc; - if (!stbi__mul2shorts_valid(dc, dequant[0])) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); - data[0] = (short) (dc * dequant[0]); - - // decode AC components, see JPEG spec - k = 1; - do { - unsigned int zig; - int c,r,s; - if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); - c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); - r = fac[c]; - if (r) { // fast-AC path - k += (r >> 4) & 15; // run - s = r & 15; // combined length - if (s > j->code_bits) return stbi__err("bad huffman code", "Combined length longer than code bits available"); - j->code_buffer <<= s; - j->code_bits -= s; - // decode into unzigzag'd location - zig = stbi__jpeg_dezigzag[k++]; - data[zig] = (short) ((r >> 8) * dequant[zig]); - } else { - int rs = stbi__jpeg_huff_decode(j, hac); - if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); - s = rs & 15; - r = rs >> 4; - if (s == 0) { - if (rs != 0xf0) break; // end block - k += 16; - } else { - k += r; - // decode into unzigzag'd location - zig = stbi__jpeg_dezigzag[k++]; - data[zig] = (short) (stbi__extend_receive(j,s) * dequant[zig]); - } - } - } while (k < 64); - return 1; -} - -static int stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, short data[64], stbi__huffman *hdc, int b) -{ - int diff,dc; - int t; - if (j->spec_end != 0) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); - - if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); - - if (j->succ_high == 0) { - // first scan for DC coefficient, must be first - memset(data,0,64*sizeof(data[0])); // 0 all the ac values now - t = stbi__jpeg_huff_decode(j, hdc); - if (t < 0 || t > 15) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); - diff = t ? stbi__extend_receive(j, t) : 0; - - if (!stbi__addints_valid(j->img_comp[b].dc_pred, diff)) return stbi__err("bad delta", "Corrupt JPEG"); - dc = j->img_comp[b].dc_pred + diff; - j->img_comp[b].dc_pred = dc; - if (!stbi__mul2shorts_valid(dc, 1 << j->succ_low)) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); - data[0] = (short) (dc * (1 << j->succ_low)); - } else { - // refinement scan for DC coefficient - if (stbi__jpeg_get_bit(j)) - data[0] += (short) (1 << j->succ_low); - } - return 1; -} - -// @OPTIMIZE: store non-zigzagged during the decode passes, -// and only de-zigzag when dequantizing -static int stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, short data[64], stbi__huffman *hac, stbi__int16 *fac) -{ - int k; - if (j->spec_start == 0) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); - - if (j->succ_high == 0) { - int shift = j->succ_low; - - if (j->eob_run) { - --j->eob_run; - return 1; - } - - k = j->spec_start; - do { - unsigned int zig; - int c,r,s; - if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); - c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); - r = fac[c]; - if (r) { // fast-AC path - k += (r >> 4) & 15; // run - s = r & 15; // combined length - if (s > j->code_bits) return stbi__err("bad huffman code", "Combined length longer than code bits available"); - j->code_buffer <<= s; - j->code_bits -= s; - zig = stbi__jpeg_dezigzag[k++]; - data[zig] = (short) ((r >> 8) * (1 << shift)); - } else { - int rs = stbi__jpeg_huff_decode(j, hac); - if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); - s = rs & 15; - r = rs >> 4; - if (s == 0) { - if (r < 15) { - j->eob_run = (1 << r); - if (r) - j->eob_run += stbi__jpeg_get_bits(j, r); - --j->eob_run; - break; - } - k += 16; - } else { - k += r; - zig = stbi__jpeg_dezigzag[k++]; - data[zig] = (short) (stbi__extend_receive(j,s) * (1 << shift)); - } - } - } while (k <= j->spec_end); - } else { - // refinement scan for these AC coefficients - - short bit = (short) (1 << j->succ_low); - - if (j->eob_run) { - --j->eob_run; - for (k = j->spec_start; k <= j->spec_end; ++k) { - short *p = &data[stbi__jpeg_dezigzag[k]]; - if (*p != 0) - if (stbi__jpeg_get_bit(j)) - if ((*p & bit)==0) { - if (*p > 0) - *p += bit; - else - *p -= bit; - } - } - } else { - k = j->spec_start; - do { - int r,s; - int rs = stbi__jpeg_huff_decode(j, hac); // @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh - if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); - s = rs & 15; - r = rs >> 4; - if (s == 0) { - if (r < 15) { - j->eob_run = (1 << r) - 1; - if (r) - j->eob_run += stbi__jpeg_get_bits(j, r); - r = 64; // force end of block - } else { - // r=15 s=0 should write 16 0s, so we just do - // a run of 15 0s and then write s (which is 0), - // so we don't have to do anything special here - } - } else { - if (s != 1) return stbi__err("bad huffman code", "Corrupt JPEG"); - // sign bit - if (stbi__jpeg_get_bit(j)) - s = bit; - else - s = -bit; - } - - // advance by r - while (k <= j->spec_end) { - short *p = &data[stbi__jpeg_dezigzag[k++]]; - if (*p != 0) { - if (stbi__jpeg_get_bit(j)) - if ((*p & bit)==0) { - if (*p > 0) - *p += bit; - else - *p -= bit; - } - } else { - if (r == 0) { - *p = (short) s; - break; - } - --r; - } - } - } while (k <= j->spec_end); - } - } - return 1; -} - -// take a -128..127 value and stbi__clamp it and convert to 0..255 -stbi_inline static stbi_uc stbi__clamp(int x) -{ - // trick to use a single test to catch both cases - if ((unsigned int) x > 255) { - if (x < 0) return 0; - if (x > 255) return 255; - } - return (stbi_uc) x; -} - -#define stbi__f2f(x) ((int) (((x) * 4096 + 0.5))) -#define stbi__fsh(x) ((x) * 4096) - -// derived from jidctint -- DCT_ISLOW -#define STBI__IDCT_1D(s0,s1,s2,s3,s4,s5,s6,s7) \ - int t0,t1,t2,t3,p1,p2,p3,p4,p5,x0,x1,x2,x3; \ - p2 = s2; \ - p3 = s6; \ - p1 = (p2+p3) * stbi__f2f(0.5411961f); \ - t2 = p1 + p3*stbi__f2f(-1.847759065f); \ - t3 = p1 + p2*stbi__f2f( 0.765366865f); \ - p2 = s0; \ - p3 = s4; \ - t0 = stbi__fsh(p2+p3); \ - t1 = stbi__fsh(p2-p3); \ - x0 = t0+t3; \ - x3 = t0-t3; \ - x1 = t1+t2; \ - x2 = t1-t2; \ - t0 = s7; \ - t1 = s5; \ - t2 = s3; \ - t3 = s1; \ - p3 = t0+t2; \ - p4 = t1+t3; \ - p1 = t0+t3; \ - p2 = t1+t2; \ - p5 = (p3+p4)*stbi__f2f( 1.175875602f); \ - t0 = t0*stbi__f2f( 0.298631336f); \ - t1 = t1*stbi__f2f( 2.053119869f); \ - t2 = t2*stbi__f2f( 3.072711026f); \ - t3 = t3*stbi__f2f( 1.501321110f); \ - p1 = p5 + p1*stbi__f2f(-0.899976223f); \ - p2 = p5 + p2*stbi__f2f(-2.562915447f); \ - p3 = p3*stbi__f2f(-1.961570560f); \ - p4 = p4*stbi__f2f(-0.390180644f); \ - t3 += p1+p4; \ - t2 += p2+p3; \ - t1 += p2+p4; \ - t0 += p1+p3; - -static void stbi__idct_block(stbi_uc *out, int out_stride, short data[64]) -{ - int i,val[64],*v=val; - stbi_uc *o; - short *d = data; - - // columns - for (i=0; i < 8; ++i,++d, ++v) { - // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing - if (d[ 8]==0 && d[16]==0 && d[24]==0 && d[32]==0 - && d[40]==0 && d[48]==0 && d[56]==0) { - // no shortcut 0 seconds - // (1|2|3|4|5|6|7)==0 0 seconds - // all separate -0.047 seconds - // 1 && 2|3 && 4|5 && 6|7: -0.047 seconds - int dcterm = d[0]*4; - v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] = dcterm; - } else { - STBI__IDCT_1D(d[ 0],d[ 8],d[16],d[24],d[32],d[40],d[48],d[56]) - // constants scaled things up by 1<<12; let's bring them back - // down, but keep 2 extra bits of precision - x0 += 512; x1 += 512; x2 += 512; x3 += 512; - v[ 0] = (x0+t3) >> 10; - v[56] = (x0-t3) >> 10; - v[ 8] = (x1+t2) >> 10; - v[48] = (x1-t2) >> 10; - v[16] = (x2+t1) >> 10; - v[40] = (x2-t1) >> 10; - v[24] = (x3+t0) >> 10; - v[32] = (x3-t0) >> 10; - } - } - - for (i=0, v=val, o=out; i < 8; ++i,v+=8,o+=out_stride) { - // no fast case since the first 1D IDCT spread components out - STBI__IDCT_1D(v[0],v[1],v[2],v[3],v[4],v[5],v[6],v[7]) - // constants scaled things up by 1<<12, plus we had 1<<2 from first - // loop, plus horizontal and vertical each scale by sqrt(8) so together - // we've got an extra 1<<3, so 1<<17 total we need to remove. - // so we want to round that, which means adding 0.5 * 1<<17, - // aka 65536. Also, we'll end up with -128 to 127 that we want - // to encode as 0..255 by adding 128, so we'll add that before the shift - x0 += 65536 + (128<<17); - x1 += 65536 + (128<<17); - x2 += 65536 + (128<<17); - x3 += 65536 + (128<<17); - // tried computing the shifts into temps, or'ing the temps to see - // if any were out of range, but that was slower - o[0] = stbi__clamp((x0+t3) >> 17); - o[7] = stbi__clamp((x0-t3) >> 17); - o[1] = stbi__clamp((x1+t2) >> 17); - o[6] = stbi__clamp((x1-t2) >> 17); - o[2] = stbi__clamp((x2+t1) >> 17); - o[5] = stbi__clamp((x2-t1) >> 17); - o[3] = stbi__clamp((x3+t0) >> 17); - o[4] = stbi__clamp((x3-t0) >> 17); - } -} - -#ifdef STBI_SSE2 -// sse2 integer IDCT. not the fastest possible implementation but it -// produces bit-identical results to the generic C version so it's -// fully "transparent". -static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) -{ - // This is constructed to match our regular (generic) integer IDCT exactly. - __m128i row0, row1, row2, row3, row4, row5, row6, row7; - __m128i tmp; - - // dot product constant: even elems=x, odd elems=y - #define dct_const(x,y) _mm_setr_epi16((x),(y),(x),(y),(x),(y),(x),(y)) - - // out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit) - // out(1) = c1[even]*x + c1[odd]*y - #define dct_rot(out0,out1, x,y,c0,c1) \ - __m128i c0##lo = _mm_unpacklo_epi16((x),(y)); \ - __m128i c0##hi = _mm_unpackhi_epi16((x),(y)); \ - __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \ - __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \ - __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \ - __m128i out1##_h = _mm_madd_epi16(c0##hi, c1) - - // out = in << 12 (in 16-bit, out 32-bit) - #define dct_widen(out, in) \ - __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \ - __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4) - - // wide add - #define dct_wadd(out, a, b) \ - __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \ - __m128i out##_h = _mm_add_epi32(a##_h, b##_h) - - // wide sub - #define dct_wsub(out, a, b) \ - __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \ - __m128i out##_h = _mm_sub_epi32(a##_h, b##_h) - - // butterfly a/b, add bias, then shift by "s" and pack - #define dct_bfly32o(out0, out1, a,b,bias,s) \ - { \ - __m128i abiased_l = _mm_add_epi32(a##_l, bias); \ - __m128i abiased_h = _mm_add_epi32(a##_h, bias); \ - dct_wadd(sum, abiased, b); \ - dct_wsub(dif, abiased, b); \ - out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \ - out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \ - } - - // 8-bit interleave step (for transposes) - #define dct_interleave8(a, b) \ - tmp = a; \ - a = _mm_unpacklo_epi8(a, b); \ - b = _mm_unpackhi_epi8(tmp, b) - - // 16-bit interleave step (for transposes) - #define dct_interleave16(a, b) \ - tmp = a; \ - a = _mm_unpacklo_epi16(a, b); \ - b = _mm_unpackhi_epi16(tmp, b) - - #define dct_pass(bias,shift) \ - { \ - /* even part */ \ - dct_rot(t2e,t3e, row2,row6, rot0_0,rot0_1); \ - __m128i sum04 = _mm_add_epi16(row0, row4); \ - __m128i dif04 = _mm_sub_epi16(row0, row4); \ - dct_widen(t0e, sum04); \ - dct_widen(t1e, dif04); \ - dct_wadd(x0, t0e, t3e); \ - dct_wsub(x3, t0e, t3e); \ - dct_wadd(x1, t1e, t2e); \ - dct_wsub(x2, t1e, t2e); \ - /* odd part */ \ - dct_rot(y0o,y2o, row7,row3, rot2_0,rot2_1); \ - dct_rot(y1o,y3o, row5,row1, rot3_0,rot3_1); \ - __m128i sum17 = _mm_add_epi16(row1, row7); \ - __m128i sum35 = _mm_add_epi16(row3, row5); \ - dct_rot(y4o,y5o, sum17,sum35, rot1_0,rot1_1); \ - dct_wadd(x4, y0o, y4o); \ - dct_wadd(x5, y1o, y5o); \ - dct_wadd(x6, y2o, y5o); \ - dct_wadd(x7, y3o, y4o); \ - dct_bfly32o(row0,row7, x0,x7,bias,shift); \ - dct_bfly32o(row1,row6, x1,x6,bias,shift); \ - dct_bfly32o(row2,row5, x2,x5,bias,shift); \ - dct_bfly32o(row3,row4, x3,x4,bias,shift); \ - } - - __m128i rot0_0 = dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f)); - __m128i rot0_1 = dct_const(stbi__f2f(0.5411961f) + stbi__f2f( 0.765366865f), stbi__f2f(0.5411961f)); - __m128i rot1_0 = dct_const(stbi__f2f(1.175875602f) + stbi__f2f(-0.899976223f), stbi__f2f(1.175875602f)); - __m128i rot1_1 = dct_const(stbi__f2f(1.175875602f), stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f)); - __m128i rot2_0 = dct_const(stbi__f2f(-1.961570560f) + stbi__f2f( 0.298631336f), stbi__f2f(-1.961570560f)); - __m128i rot2_1 = dct_const(stbi__f2f(-1.961570560f), stbi__f2f(-1.961570560f) + stbi__f2f( 3.072711026f)); - __m128i rot3_0 = dct_const(stbi__f2f(-0.390180644f) + stbi__f2f( 2.053119869f), stbi__f2f(-0.390180644f)); - __m128i rot3_1 = dct_const(stbi__f2f(-0.390180644f), stbi__f2f(-0.390180644f) + stbi__f2f( 1.501321110f)); - - // rounding biases in column/row passes, see stbi__idct_block for explanation. - __m128i bias_0 = _mm_set1_epi32(512); - __m128i bias_1 = _mm_set1_epi32(65536 + (128<<17)); - - // load - row0 = _mm_load_si128((const __m128i *) (data + 0*8)); - row1 = _mm_load_si128((const __m128i *) (data + 1*8)); - row2 = _mm_load_si128((const __m128i *) (data + 2*8)); - row3 = _mm_load_si128((const __m128i *) (data + 3*8)); - row4 = _mm_load_si128((const __m128i *) (data + 4*8)); - row5 = _mm_load_si128((const __m128i *) (data + 5*8)); - row6 = _mm_load_si128((const __m128i *) (data + 6*8)); - row7 = _mm_load_si128((const __m128i *) (data + 7*8)); - - // column pass - dct_pass(bias_0, 10); - - { - // 16bit 8x8 transpose pass 1 - dct_interleave16(row0, row4); - dct_interleave16(row1, row5); - dct_interleave16(row2, row6); - dct_interleave16(row3, row7); - - // transpose pass 2 - dct_interleave16(row0, row2); - dct_interleave16(row1, row3); - dct_interleave16(row4, row6); - dct_interleave16(row5, row7); - - // transpose pass 3 - dct_interleave16(row0, row1); - dct_interleave16(row2, row3); - dct_interleave16(row4, row5); - dct_interleave16(row6, row7); - } - - // row pass - dct_pass(bias_1, 17); - - { - // pack - __m128i p0 = _mm_packus_epi16(row0, row1); // a0a1a2a3...a7b0b1b2b3...b7 - __m128i p1 = _mm_packus_epi16(row2, row3); - __m128i p2 = _mm_packus_epi16(row4, row5); - __m128i p3 = _mm_packus_epi16(row6, row7); - - // 8bit 8x8 transpose pass 1 - dct_interleave8(p0, p2); // a0e0a1e1... - dct_interleave8(p1, p3); // c0g0c1g1... - - // transpose pass 2 - dct_interleave8(p0, p1); // a0c0e0g0... - dct_interleave8(p2, p3); // b0d0f0h0... - - // transpose pass 3 - dct_interleave8(p0, p2); // a0b0c0d0... - dct_interleave8(p1, p3); // a4b4c4d4... - - // store - _mm_storel_epi64((__m128i *) out, p0); out += out_stride; - _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p0, 0x4e)); out += out_stride; - _mm_storel_epi64((__m128i *) out, p2); out += out_stride; - _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p2, 0x4e)); out += out_stride; - _mm_storel_epi64((__m128i *) out, p1); out += out_stride; - _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p1, 0x4e)); out += out_stride; - _mm_storel_epi64((__m128i *) out, p3); out += out_stride; - _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p3, 0x4e)); - } - -#undef dct_const -#undef dct_rot -#undef dct_widen -#undef dct_wadd -#undef dct_wsub -#undef dct_bfly32o -#undef dct_interleave8 -#undef dct_interleave16 -#undef dct_pass -} - -#endif // STBI_SSE2 - -#ifdef STBI_NEON - -// NEON integer IDCT. should produce bit-identical -// results to the generic C version. -static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) -{ - int16x8_t row0, row1, row2, row3, row4, row5, row6, row7; - - int16x4_t rot0_0 = vdup_n_s16(stbi__f2f(0.5411961f)); - int16x4_t rot0_1 = vdup_n_s16(stbi__f2f(-1.847759065f)); - int16x4_t rot0_2 = vdup_n_s16(stbi__f2f( 0.765366865f)); - int16x4_t rot1_0 = vdup_n_s16(stbi__f2f( 1.175875602f)); - int16x4_t rot1_1 = vdup_n_s16(stbi__f2f(-0.899976223f)); - int16x4_t rot1_2 = vdup_n_s16(stbi__f2f(-2.562915447f)); - int16x4_t rot2_0 = vdup_n_s16(stbi__f2f(-1.961570560f)); - int16x4_t rot2_1 = vdup_n_s16(stbi__f2f(-0.390180644f)); - int16x4_t rot3_0 = vdup_n_s16(stbi__f2f( 0.298631336f)); - int16x4_t rot3_1 = vdup_n_s16(stbi__f2f( 2.053119869f)); - int16x4_t rot3_2 = vdup_n_s16(stbi__f2f( 3.072711026f)); - int16x4_t rot3_3 = vdup_n_s16(stbi__f2f( 1.501321110f)); - -#define dct_long_mul(out, inq, coeff) \ - int32x4_t out##_l = vmull_s16(vget_low_s16(inq), coeff); \ - int32x4_t out##_h = vmull_s16(vget_high_s16(inq), coeff) - -#define dct_long_mac(out, acc, inq, coeff) \ - int32x4_t out##_l = vmlal_s16(acc##_l, vget_low_s16(inq), coeff); \ - int32x4_t out##_h = vmlal_s16(acc##_h, vget_high_s16(inq), coeff) - -#define dct_widen(out, inq) \ - int32x4_t out##_l = vshll_n_s16(vget_low_s16(inq), 12); \ - int32x4_t out##_h = vshll_n_s16(vget_high_s16(inq), 12) - -// wide add -#define dct_wadd(out, a, b) \ - int32x4_t out##_l = vaddq_s32(a##_l, b##_l); \ - int32x4_t out##_h = vaddq_s32(a##_h, b##_h) - -// wide sub -#define dct_wsub(out, a, b) \ - int32x4_t out##_l = vsubq_s32(a##_l, b##_l); \ - int32x4_t out##_h = vsubq_s32(a##_h, b##_h) - -// butterfly a/b, then shift using "shiftop" by "s" and pack -#define dct_bfly32o(out0,out1, a,b,shiftop,s) \ - { \ - dct_wadd(sum, a, b); \ - dct_wsub(dif, a, b); \ - out0 = vcombine_s16(shiftop(sum_l, s), shiftop(sum_h, s)); \ - out1 = vcombine_s16(shiftop(dif_l, s), shiftop(dif_h, s)); \ - } - -#define dct_pass(shiftop, shift) \ - { \ - /* even part */ \ - int16x8_t sum26 = vaddq_s16(row2, row6); \ - dct_long_mul(p1e, sum26, rot0_0); \ - dct_long_mac(t2e, p1e, row6, rot0_1); \ - dct_long_mac(t3e, p1e, row2, rot0_2); \ - int16x8_t sum04 = vaddq_s16(row0, row4); \ - int16x8_t dif04 = vsubq_s16(row0, row4); \ - dct_widen(t0e, sum04); \ - dct_widen(t1e, dif04); \ - dct_wadd(x0, t0e, t3e); \ - dct_wsub(x3, t0e, t3e); \ - dct_wadd(x1, t1e, t2e); \ - dct_wsub(x2, t1e, t2e); \ - /* odd part */ \ - int16x8_t sum15 = vaddq_s16(row1, row5); \ - int16x8_t sum17 = vaddq_s16(row1, row7); \ - int16x8_t sum35 = vaddq_s16(row3, row5); \ - int16x8_t sum37 = vaddq_s16(row3, row7); \ - int16x8_t sumodd = vaddq_s16(sum17, sum35); \ - dct_long_mul(p5o, sumodd, rot1_0); \ - dct_long_mac(p1o, p5o, sum17, rot1_1); \ - dct_long_mac(p2o, p5o, sum35, rot1_2); \ - dct_long_mul(p3o, sum37, rot2_0); \ - dct_long_mul(p4o, sum15, rot2_1); \ - dct_wadd(sump13o, p1o, p3o); \ - dct_wadd(sump24o, p2o, p4o); \ - dct_wadd(sump23o, p2o, p3o); \ - dct_wadd(sump14o, p1o, p4o); \ - dct_long_mac(x4, sump13o, row7, rot3_0); \ - dct_long_mac(x5, sump24o, row5, rot3_1); \ - dct_long_mac(x6, sump23o, row3, rot3_2); \ - dct_long_mac(x7, sump14o, row1, rot3_3); \ - dct_bfly32o(row0,row7, x0,x7,shiftop,shift); \ - dct_bfly32o(row1,row6, x1,x6,shiftop,shift); \ - dct_bfly32o(row2,row5, x2,x5,shiftop,shift); \ - dct_bfly32o(row3,row4, x3,x4,shiftop,shift); \ - } - - // load - row0 = vld1q_s16(data + 0*8); - row1 = vld1q_s16(data + 1*8); - row2 = vld1q_s16(data + 2*8); - row3 = vld1q_s16(data + 3*8); - row4 = vld1q_s16(data + 4*8); - row5 = vld1q_s16(data + 5*8); - row6 = vld1q_s16(data + 6*8); - row7 = vld1q_s16(data + 7*8); - - // add DC bias - row0 = vaddq_s16(row0, vsetq_lane_s16(1024, vdupq_n_s16(0), 0)); - - // column pass - dct_pass(vrshrn_n_s32, 10); - - // 16bit 8x8 transpose - { -// these three map to a single VTRN.16, VTRN.32, and VSWP, respectively. -// whether compilers actually get this is another story, sadly. -#define dct_trn16(x, y) { int16x8x2_t t = vtrnq_s16(x, y); x = t.val[0]; y = t.val[1]; } -#define dct_trn32(x, y) { int32x4x2_t t = vtrnq_s32(vreinterpretq_s32_s16(x), vreinterpretq_s32_s16(y)); x = vreinterpretq_s16_s32(t.val[0]); y = vreinterpretq_s16_s32(t.val[1]); } -#define dct_trn64(x, y) { int16x8_t x0 = x; int16x8_t y0 = y; x = vcombine_s16(vget_low_s16(x0), vget_low_s16(y0)); y = vcombine_s16(vget_high_s16(x0), vget_high_s16(y0)); } - - // pass 1 - dct_trn16(row0, row1); // a0b0a2b2a4b4a6b6 - dct_trn16(row2, row3); - dct_trn16(row4, row5); - dct_trn16(row6, row7); - - // pass 2 - dct_trn32(row0, row2); // a0b0c0d0a4b4c4d4 - dct_trn32(row1, row3); - dct_trn32(row4, row6); - dct_trn32(row5, row7); - - // pass 3 - dct_trn64(row0, row4); // a0b0c0d0e0f0g0h0 - dct_trn64(row1, row5); - dct_trn64(row2, row6); - dct_trn64(row3, row7); - -#undef dct_trn16 -#undef dct_trn32 -#undef dct_trn64 - } - - // row pass - // vrshrn_n_s32 only supports shifts up to 16, we need - // 17. so do a non-rounding shift of 16 first then follow - // up with a rounding shift by 1. - dct_pass(vshrn_n_s32, 16); - - { - // pack and round - uint8x8_t p0 = vqrshrun_n_s16(row0, 1); - uint8x8_t p1 = vqrshrun_n_s16(row1, 1); - uint8x8_t p2 = vqrshrun_n_s16(row2, 1); - uint8x8_t p3 = vqrshrun_n_s16(row3, 1); - uint8x8_t p4 = vqrshrun_n_s16(row4, 1); - uint8x8_t p5 = vqrshrun_n_s16(row5, 1); - uint8x8_t p6 = vqrshrun_n_s16(row6, 1); - uint8x8_t p7 = vqrshrun_n_s16(row7, 1); - - // again, these can translate into one instruction, but often don't. -#define dct_trn8_8(x, y) { uint8x8x2_t t = vtrn_u8(x, y); x = t.val[0]; y = t.val[1]; } -#define dct_trn8_16(x, y) { uint16x4x2_t t = vtrn_u16(vreinterpret_u16_u8(x), vreinterpret_u16_u8(y)); x = vreinterpret_u8_u16(t.val[0]); y = vreinterpret_u8_u16(t.val[1]); } -#define dct_trn8_32(x, y) { uint32x2x2_t t = vtrn_u32(vreinterpret_u32_u8(x), vreinterpret_u32_u8(y)); x = vreinterpret_u8_u32(t.val[0]); y = vreinterpret_u8_u32(t.val[1]); } - - // sadly can't use interleaved stores here since we only write - // 8 bytes to each scan line! - - // 8x8 8-bit transpose pass 1 - dct_trn8_8(p0, p1); - dct_trn8_8(p2, p3); - dct_trn8_8(p4, p5); - dct_trn8_8(p6, p7); - - // pass 2 - dct_trn8_16(p0, p2); - dct_trn8_16(p1, p3); - dct_trn8_16(p4, p6); - dct_trn8_16(p5, p7); - - // pass 3 - dct_trn8_32(p0, p4); - dct_trn8_32(p1, p5); - dct_trn8_32(p2, p6); - dct_trn8_32(p3, p7); - - // store - vst1_u8(out, p0); out += out_stride; - vst1_u8(out, p1); out += out_stride; - vst1_u8(out, p2); out += out_stride; - vst1_u8(out, p3); out += out_stride; - vst1_u8(out, p4); out += out_stride; - vst1_u8(out, p5); out += out_stride; - vst1_u8(out, p6); out += out_stride; - vst1_u8(out, p7); - -#undef dct_trn8_8 -#undef dct_trn8_16 -#undef dct_trn8_32 - } - -#undef dct_long_mul -#undef dct_long_mac -#undef dct_widen -#undef dct_wadd -#undef dct_wsub -#undef dct_bfly32o -#undef dct_pass -} - -#endif // STBI_NEON - -#define STBI__MARKER_none 0xff -// if there's a pending marker from the entropy stream, return that -// otherwise, fetch from the stream and get a marker. if there's no -// marker, return 0xff, which is never a valid marker value -static stbi_uc stbi__get_marker(stbi__jpeg *j) -{ - stbi_uc x; - if (j->marker != STBI__MARKER_none) { x = j->marker; j->marker = STBI__MARKER_none; return x; } - x = stbi__get8(j->s); - if (x != 0xff) return STBI__MARKER_none; - while (x == 0xff) - x = stbi__get8(j->s); // consume repeated 0xff fill bytes - return x; -} - -// in each scan, we'll have scan_n components, and the order -// of the components is specified by order[] -#define STBI__RESTART(x) ((x) >= 0xd0 && (x) <= 0xd7) - -// after a restart interval, stbi__jpeg_reset the entropy decoder and -// the dc prediction -static void stbi__jpeg_reset(stbi__jpeg *j) -{ - j->code_bits = 0; - j->code_buffer = 0; - j->nomore = 0; - j->img_comp[0].dc_pred = j->img_comp[1].dc_pred = j->img_comp[2].dc_pred = j->img_comp[3].dc_pred = 0; - j->marker = STBI__MARKER_none; - j->todo = j->restart_interval ? j->restart_interval : 0x7fffffff; - j->eob_run = 0; - // no more than 1<<31 MCUs if no restart_interal? that's plenty safe, - // since we don't even allow 1<<30 pixels -} - -static int stbi__parse_entropy_coded_data(stbi__jpeg *z) -{ - stbi__jpeg_reset(z); - if (!z->progressive) { - if (z->scan_n == 1) { - int i,j; - STBI_SIMD_ALIGN(short, data[64]); - int n = z->order[0]; - // non-interleaved data, we just need to process one block at a time, - // in trivial scanline order - // number of blocks to do just depends on how many actual "pixels" this - // component has, independent of interleaved MCU blocking and such - int w = (z->img_comp[n].x+7) >> 3; - int h = (z->img_comp[n].y+7) >> 3; - for (j=0; j < h; ++j) { - for (i=0; i < w; ++i) { - int ha = z->img_comp[n].ha; - if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0; - z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data); - // every data block is an MCU, so countdown the restart interval - if (--z->todo <= 0) { - if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); - // if it's NOT a restart, then just bail, so we get corrupt data - // rather than no data - if (!STBI__RESTART(z->marker)) return 1; - stbi__jpeg_reset(z); - } - } - } - return 1; - } else { // interleaved - int i,j,k,x,y; - STBI_SIMD_ALIGN(short, data[64]); - for (j=0; j < z->img_mcu_y; ++j) { - for (i=0; i < z->img_mcu_x; ++i) { - // scan an interleaved mcu... process scan_n components in order - for (k=0; k < z->scan_n; ++k) { - int n = z->order[k]; - // scan out an mcu's worth of this component; that's just determined - // by the basic H and V specified for the component - for (y=0; y < z->img_comp[n].v; ++y) { - for (x=0; x < z->img_comp[n].h; ++x) { - int x2 = (i*z->img_comp[n].h + x)*8; - int y2 = (j*z->img_comp[n].v + y)*8; - int ha = z->img_comp[n].ha; - if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0; - z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*y2+x2, z->img_comp[n].w2, data); - } - } - } - // after all interleaved components, that's an interleaved MCU, - // so now count down the restart interval - if (--z->todo <= 0) { - if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); - if (!STBI__RESTART(z->marker)) return 1; - stbi__jpeg_reset(z); - } - } - } - return 1; - } - } else { - if (z->scan_n == 1) { - int i,j; - int n = z->order[0]; - // non-interleaved data, we just need to process one block at a time, - // in trivial scanline order - // number of blocks to do just depends on how many actual "pixels" this - // component has, independent of interleaved MCU blocking and such - int w = (z->img_comp[n].x+7) >> 3; - int h = (z->img_comp[n].y+7) >> 3; - for (j=0; j < h; ++j) { - for (i=0; i < w; ++i) { - short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); - if (z->spec_start == 0) { - if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)) - return 0; - } else { - int ha = z->img_comp[n].ha; - if (!stbi__jpeg_decode_block_prog_ac(z, data, &z->huff_ac[ha], z->fast_ac[ha])) - return 0; - } - // every data block is an MCU, so countdown the restart interval - if (--z->todo <= 0) { - if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); - if (!STBI__RESTART(z->marker)) return 1; - stbi__jpeg_reset(z); - } - } - } - return 1; - } else { // interleaved - int i,j,k,x,y; - for (j=0; j < z->img_mcu_y; ++j) { - for (i=0; i < z->img_mcu_x; ++i) { - // scan an interleaved mcu... process scan_n components in order - for (k=0; k < z->scan_n; ++k) { - int n = z->order[k]; - // scan out an mcu's worth of this component; that's just determined - // by the basic H and V specified for the component - for (y=0; y < z->img_comp[n].v; ++y) { - for (x=0; x < z->img_comp[n].h; ++x) { - int x2 = (i*z->img_comp[n].h + x); - int y2 = (j*z->img_comp[n].v + y); - short *data = z->img_comp[n].coeff + 64 * (x2 + y2 * z->img_comp[n].coeff_w); - if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)) - return 0; - } - } - } - // after all interleaved components, that's an interleaved MCU, - // so now count down the restart interval - if (--z->todo <= 0) { - if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); - if (!STBI__RESTART(z->marker)) return 1; - stbi__jpeg_reset(z); - } - } - } - return 1; - } - } -} - -static void stbi__jpeg_dequantize(short *data, stbi__uint16 *dequant) -{ - int i; - for (i=0; i < 64; ++i) - data[i] *= dequant[i]; -} - -static void stbi__jpeg_finish(stbi__jpeg *z) -{ - if (z->progressive) { - // dequantize and idct the data - int i,j,n; - for (n=0; n < z->s->img_n; ++n) { - int w = (z->img_comp[n].x+7) >> 3; - int h = (z->img_comp[n].y+7) >> 3; - for (j=0; j < h; ++j) { - for (i=0; i < w; ++i) { - short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); - stbi__jpeg_dequantize(data, z->dequant[z->img_comp[n].tq]); - z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data); - } - } - } - } -} - -static int stbi__process_marker(stbi__jpeg *z, int m) -{ - int L; - switch (m) { - case STBI__MARKER_none: // no marker found - return stbi__err("expected marker","Corrupt JPEG"); - - case 0xDD: // DRI - specify restart interval - if (stbi__get16be(z->s) != 4) return stbi__err("bad DRI len","Corrupt JPEG"); - z->restart_interval = stbi__get16be(z->s); - return 1; - - case 0xDB: // DQT - define quantization table - L = stbi__get16be(z->s)-2; - while (L > 0) { - int q = stbi__get8(z->s); - int p = q >> 4, sixteen = (p != 0); - int t = q & 15,i; - if (p != 0 && p != 1) return stbi__err("bad DQT type","Corrupt JPEG"); - if (t > 3) return stbi__err("bad DQT table","Corrupt JPEG"); - - for (i=0; i < 64; ++i) - z->dequant[t][stbi__jpeg_dezigzag[i]] = (stbi__uint16)(sixteen ? stbi__get16be(z->s) : stbi__get8(z->s)); - L -= (sixteen ? 129 : 65); - } - return L==0; - - case 0xC4: // DHT - define huffman table - L = stbi__get16be(z->s)-2; - while (L > 0) { - stbi_uc *v; - int sizes[16],i,n=0; - int q = stbi__get8(z->s); - int tc = q >> 4; - int th = q & 15; - if (tc > 1 || th > 3) return stbi__err("bad DHT header","Corrupt JPEG"); - for (i=0; i < 16; ++i) { - sizes[i] = stbi__get8(z->s); - n += sizes[i]; - } - if(n > 256) return stbi__err("bad DHT header","Corrupt JPEG"); // Loop over i < n would write past end of values! - L -= 17; - if (tc == 0) { - if (!stbi__build_huffman(z->huff_dc+th, sizes)) return 0; - v = z->huff_dc[th].values; - } else { - if (!stbi__build_huffman(z->huff_ac+th, sizes)) return 0; - v = z->huff_ac[th].values; - } - for (i=0; i < n; ++i) - v[i] = stbi__get8(z->s); - if (tc != 0) - stbi__build_fast_ac(z->fast_ac[th], z->huff_ac + th); - L -= n; - } - return L==0; - } - - // check for comment block or APP blocks - if ((m >= 0xE0 && m <= 0xEF) || m == 0xFE) { - L = stbi__get16be(z->s); - if (L < 2) { - if (m == 0xFE) - return stbi__err("bad COM len","Corrupt JPEG"); - else - return stbi__err("bad APP len","Corrupt JPEG"); - } - L -= 2; - - if (m == 0xE0 && L >= 5) { // JFIF APP0 segment - static const unsigned char tag[5] = {'J','F','I','F','\0'}; - int ok = 1; - int i; - for (i=0; i < 5; ++i) - if (stbi__get8(z->s) != tag[i]) - ok = 0; - L -= 5; - if (ok) - z->jfif = 1; - } else if (m == 0xEE && L >= 12) { // Adobe APP14 segment - static const unsigned char tag[6] = {'A','d','o','b','e','\0'}; - int ok = 1; - int i; - for (i=0; i < 6; ++i) - if (stbi__get8(z->s) != tag[i]) - ok = 0; - L -= 6; - if (ok) { - stbi__get8(z->s); // version - stbi__get16be(z->s); // flags0 - stbi__get16be(z->s); // flags1 - z->app14_color_transform = stbi__get8(z->s); // color transform - L -= 6; - } - } - - stbi__skip(z->s, L); - return 1; - } - - return stbi__err("unknown marker","Corrupt JPEG"); -} - -// after we see SOS -static int stbi__process_scan_header(stbi__jpeg *z) -{ - int i; - int Ls = stbi__get16be(z->s); - z->scan_n = stbi__get8(z->s); - if (z->scan_n < 1 || z->scan_n > 4 || z->scan_n > (int) z->s->img_n) return stbi__err("bad SOS component count","Corrupt JPEG"); - if (Ls != 6+2*z->scan_n) return stbi__err("bad SOS len","Corrupt JPEG"); - for (i=0; i < z->scan_n; ++i) { - int id = stbi__get8(z->s), which; - int q = stbi__get8(z->s); - for (which = 0; which < z->s->img_n; ++which) - if (z->img_comp[which].id == id) - break; - if (which == z->s->img_n) return 0; // no match - z->img_comp[which].hd = q >> 4; if (z->img_comp[which].hd > 3) return stbi__err("bad DC huff","Corrupt JPEG"); - z->img_comp[which].ha = q & 15; if (z->img_comp[which].ha > 3) return stbi__err("bad AC huff","Corrupt JPEG"); - z->order[i] = which; - } - - { - int aa; - z->spec_start = stbi__get8(z->s); - z->spec_end = stbi__get8(z->s); // should be 63, but might be 0 - aa = stbi__get8(z->s); - z->succ_high = (aa >> 4); - z->succ_low = (aa & 15); - if (z->progressive) { - if (z->spec_start > 63 || z->spec_end > 63 || z->spec_start > z->spec_end || z->succ_high > 13 || z->succ_low > 13) - return stbi__err("bad SOS", "Corrupt JPEG"); - } else { - if (z->spec_start != 0) return stbi__err("bad SOS","Corrupt JPEG"); - if (z->succ_high != 0 || z->succ_low != 0) return stbi__err("bad SOS","Corrupt JPEG"); - z->spec_end = 63; - } - } - - return 1; -} - -static int stbi__free_jpeg_components(stbi__jpeg *z, int ncomp, int why) -{ - int i; - for (i=0; i < ncomp; ++i) { - if (z->img_comp[i].raw_data) { - STBI_FREE(z->img_comp[i].raw_data); - z->img_comp[i].raw_data = NULL; - z->img_comp[i].data = NULL; - } - if (z->img_comp[i].raw_coeff) { - STBI_FREE(z->img_comp[i].raw_coeff); - z->img_comp[i].raw_coeff = 0; - z->img_comp[i].coeff = 0; - } - if (z->img_comp[i].linebuf) { - STBI_FREE(z->img_comp[i].linebuf); - z->img_comp[i].linebuf = NULL; - } - } - return why; -} - -static int stbi__process_frame_header(stbi__jpeg *z, int scan) -{ - stbi__context *s = z->s; - int Lf,p,i,q, h_max=1,v_max=1,c; - Lf = stbi__get16be(s); if (Lf < 11) return stbi__err("bad SOF len","Corrupt JPEG"); // JPEG - p = stbi__get8(s); if (p != 8) return stbi__err("only 8-bit","JPEG format not supported: 8-bit only"); // JPEG baseline - s->img_y = stbi__get16be(s); if (s->img_y == 0) return stbi__err("no header height", "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG - s->img_x = stbi__get16be(s); if (s->img_x == 0) return stbi__err("0 width","Corrupt JPEG"); // JPEG requires - if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); - if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); - c = stbi__get8(s); - if (c != 3 && c != 1 && c != 4) return stbi__err("bad component count","Corrupt JPEG"); - s->img_n = c; - for (i=0; i < c; ++i) { - z->img_comp[i].data = NULL; - z->img_comp[i].linebuf = NULL; - } - - if (Lf != 8+3*s->img_n) return stbi__err("bad SOF len","Corrupt JPEG"); - - z->rgb = 0; - for (i=0; i < s->img_n; ++i) { - static const unsigned char rgb[3] = { 'R', 'G', 'B' }; - z->img_comp[i].id = stbi__get8(s); - if (s->img_n == 3 && z->img_comp[i].id == rgb[i]) - ++z->rgb; - q = stbi__get8(s); - z->img_comp[i].h = (q >> 4); if (!z->img_comp[i].h || z->img_comp[i].h > 4) return stbi__err("bad H","Corrupt JPEG"); - z->img_comp[i].v = q & 15; if (!z->img_comp[i].v || z->img_comp[i].v > 4) return stbi__err("bad V","Corrupt JPEG"); - z->img_comp[i].tq = stbi__get8(s); if (z->img_comp[i].tq > 3) return stbi__err("bad TQ","Corrupt JPEG"); - } - - if (scan != STBI__SCAN_load) return 1; - - if (!stbi__mad3sizes_valid(s->img_x, s->img_y, s->img_n, 0)) return stbi__err("too large", "Image too large to decode"); - - for (i=0; i < s->img_n; ++i) { - if (z->img_comp[i].h > h_max) h_max = z->img_comp[i].h; - if (z->img_comp[i].v > v_max) v_max = z->img_comp[i].v; - } - - // check that plane subsampling factors are integer ratios; our resamplers can't deal with fractional ratios - // and I've never seen a non-corrupted JPEG file actually use them - for (i=0; i < s->img_n; ++i) { - if (h_max % z->img_comp[i].h != 0) return stbi__err("bad H","Corrupt JPEG"); - if (v_max % z->img_comp[i].v != 0) return stbi__err("bad V","Corrupt JPEG"); - } - - // compute interleaved mcu info - z->img_h_max = h_max; - z->img_v_max = v_max; - z->img_mcu_w = h_max * 8; - z->img_mcu_h = v_max * 8; - // these sizes can't be more than 17 bits - z->img_mcu_x = (s->img_x + z->img_mcu_w-1) / z->img_mcu_w; - z->img_mcu_y = (s->img_y + z->img_mcu_h-1) / z->img_mcu_h; - - for (i=0; i < s->img_n; ++i) { - // number of effective pixels (e.g. for non-interleaved MCU) - z->img_comp[i].x = (s->img_x * z->img_comp[i].h + h_max-1) / h_max; - z->img_comp[i].y = (s->img_y * z->img_comp[i].v + v_max-1) / v_max; - // to simplify generation, we'll allocate enough memory to decode - // the bogus oversized data from using interleaved MCUs and their - // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't - // discard the extra data until colorspace conversion - // - // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier) - // so these muls can't overflow with 32-bit ints (which we require) - z->img_comp[i].w2 = z->img_mcu_x * z->img_comp[i].h * 8; - z->img_comp[i].h2 = z->img_mcu_y * z->img_comp[i].v * 8; - z->img_comp[i].coeff = 0; - z->img_comp[i].raw_coeff = 0; - z->img_comp[i].linebuf = NULL; - z->img_comp[i].raw_data = stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15); - if (z->img_comp[i].raw_data == NULL) - return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory")); - // align blocks for idct using mmx/sse - z->img_comp[i].data = (stbi_uc*) (((size_t) z->img_comp[i].raw_data + 15) & ~15); - if (z->progressive) { - // w2, h2 are multiples of 8 (see above) - z->img_comp[i].coeff_w = z->img_comp[i].w2 / 8; - z->img_comp[i].coeff_h = z->img_comp[i].h2 / 8; - z->img_comp[i].raw_coeff = stbi__malloc_mad3(z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15); - if (z->img_comp[i].raw_coeff == NULL) - return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory")); - z->img_comp[i].coeff = (short*) (((size_t) z->img_comp[i].raw_coeff + 15) & ~15); - } - } - - return 1; -} - -// use comparisons since in some cases we handle more than one case (e.g. SOF) -#define stbi__DNL(x) ((x) == 0xdc) -#define stbi__SOI(x) ((x) == 0xd8) -#define stbi__EOI(x) ((x) == 0xd9) -#define stbi__SOF(x) ((x) == 0xc0 || (x) == 0xc1 || (x) == 0xc2) -#define stbi__SOS(x) ((x) == 0xda) - -#define stbi__SOF_progressive(x) ((x) == 0xc2) - -static int stbi__decode_jpeg_header(stbi__jpeg *z, int scan) -{ - int m; - z->jfif = 0; - z->app14_color_transform = -1; // valid values are 0,1,2 - z->marker = STBI__MARKER_none; // initialize cached marker to empty - m = stbi__get_marker(z); - if (!stbi__SOI(m)) return stbi__err("no SOI","Corrupt JPEG"); - if (scan == STBI__SCAN_type) return 1; - m = stbi__get_marker(z); - while (!stbi__SOF(m)) { - if (!stbi__process_marker(z,m)) return 0; - m = stbi__get_marker(z); - while (m == STBI__MARKER_none) { - // some files have extra padding after their blocks, so ok, we'll scan - if (stbi__at_eof(z->s)) return stbi__err("no SOF", "Corrupt JPEG"); - m = stbi__get_marker(z); - } - } - z->progressive = stbi__SOF_progressive(m); - if (!stbi__process_frame_header(z, scan)) return 0; - return 1; -} - -static stbi_uc stbi__skip_jpeg_junk_at_end(stbi__jpeg *j) -{ - // some JPEGs have junk at end, skip over it but if we find what looks - // like a valid marker, resume there - while (!stbi__at_eof(j->s)) { - stbi_uc x = stbi__get8(j->s); - while (x == 0xff) { // might be a marker - if (stbi__at_eof(j->s)) return STBI__MARKER_none; - x = stbi__get8(j->s); - if (x != 0x00 && x != 0xff) { - // not a stuffed zero or lead-in to another marker, looks - // like an actual marker, return it - return x; - } - // stuffed zero has x=0 now which ends the loop, meaning we go - // back to regular scan loop. - // repeated 0xff keeps trying to read the next byte of the marker. - } - } - return STBI__MARKER_none; -} - -// decode image to YCbCr format -static int stbi__decode_jpeg_image(stbi__jpeg *j) -{ - int m; - for (m = 0; m < 4; m++) { - j->img_comp[m].raw_data = NULL; - j->img_comp[m].raw_coeff = NULL; - } - j->restart_interval = 0; - if (!stbi__decode_jpeg_header(j, STBI__SCAN_load)) return 0; - m = stbi__get_marker(j); - while (!stbi__EOI(m)) { - if (stbi__SOS(m)) { - if (!stbi__process_scan_header(j)) return 0; - if (!stbi__parse_entropy_coded_data(j)) return 0; - if (j->marker == STBI__MARKER_none ) { - j->marker = stbi__skip_jpeg_junk_at_end(j); - // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0 - } - m = stbi__get_marker(j); - if (STBI__RESTART(m)) - m = stbi__get_marker(j); - } else if (stbi__DNL(m)) { - int Ld = stbi__get16be(j->s); - stbi__uint32 NL = stbi__get16be(j->s); - if (Ld != 4) return stbi__err("bad DNL len", "Corrupt JPEG"); - if (NL != j->s->img_y) return stbi__err("bad DNL height", "Corrupt JPEG"); - m = stbi__get_marker(j); - } else { - if (!stbi__process_marker(j, m)) return 1; - m = stbi__get_marker(j); - } - } - if (j->progressive) - stbi__jpeg_finish(j); - return 1; -} - -// static jfif-centered resampling (across block boundaries) - -typedef stbi_uc *(*resample_row_func)(stbi_uc *out, stbi_uc *in0, stbi_uc *in1, - int w, int hs); - -#define stbi__div4(x) ((stbi_uc) ((x) >> 2)) - -static stbi_uc *resample_row_1(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) -{ - STBI_NOTUSED(out); - STBI_NOTUSED(in_far); - STBI_NOTUSED(w); - STBI_NOTUSED(hs); - return in_near; -} - -static stbi_uc* stbi__resample_row_v_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) -{ - // need to generate two samples vertically for every one in input - int i; - STBI_NOTUSED(hs); - for (i=0; i < w; ++i) - out[i] = stbi__div4(3*in_near[i] + in_far[i] + 2); - return out; -} - -static stbi_uc* stbi__resample_row_h_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) -{ - // need to generate two samples horizontally for every one in input - int i; - stbi_uc *input = in_near; - - if (w == 1) { - // if only one sample, can't do any interpolation - out[0] = out[1] = input[0]; - return out; - } - - out[0] = input[0]; - out[1] = stbi__div4(input[0]*3 + input[1] + 2); - for (i=1; i < w-1; ++i) { - int n = 3*input[i]+2; - out[i*2+0] = stbi__div4(n+input[i-1]); - out[i*2+1] = stbi__div4(n+input[i+1]); - } - out[i*2+0] = stbi__div4(input[w-2]*3 + input[w-1] + 2); - out[i*2+1] = input[w-1]; - - STBI_NOTUSED(in_far); - STBI_NOTUSED(hs); - - return out; -} - -#define stbi__div16(x) ((stbi_uc) ((x) >> 4)) - -static stbi_uc *stbi__resample_row_hv_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) -{ - // need to generate 2x2 samples for every one in input - int i,t0,t1; - if (w == 1) { - out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2); - return out; - } - - t1 = 3*in_near[0] + in_far[0]; - out[0] = stbi__div4(t1+2); - for (i=1; i < w; ++i) { - t0 = t1; - t1 = 3*in_near[i]+in_far[i]; - out[i*2-1] = stbi__div16(3*t0 + t1 + 8); - out[i*2 ] = stbi__div16(3*t1 + t0 + 8); - } - out[w*2-1] = stbi__div4(t1+2); - - STBI_NOTUSED(hs); - - return out; -} - -#if defined(STBI_SSE2) || defined(STBI_NEON) -static stbi_uc *stbi__resample_row_hv_2_simd(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) -{ - // need to generate 2x2 samples for every one in input - int i=0,t0,t1; - - if (w == 1) { - out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2); - return out; - } - - t1 = 3*in_near[0] + in_far[0]; - // process groups of 8 pixels for as long as we can. - // note we can't handle the last pixel in a row in this loop - // because we need to handle the filter boundary conditions. - for (; i < ((w-1) & ~7); i += 8) { -#if defined(STBI_SSE2) - // load and perform the vertical filtering pass - // this uses 3*x + y = 4*x + (y - x) - __m128i zero = _mm_setzero_si128(); - __m128i farb = _mm_loadl_epi64((__m128i *) (in_far + i)); - __m128i nearb = _mm_loadl_epi64((__m128i *) (in_near + i)); - __m128i farw = _mm_unpacklo_epi8(farb, zero); - __m128i nearw = _mm_unpacklo_epi8(nearb, zero); - __m128i diff = _mm_sub_epi16(farw, nearw); - __m128i nears = _mm_slli_epi16(nearw, 2); - __m128i curr = _mm_add_epi16(nears, diff); // current row - - // horizontal filter works the same based on shifted vers of current - // row. "prev" is current row shifted right by 1 pixel; we need to - // insert the previous pixel value (from t1). - // "next" is current row shifted left by 1 pixel, with first pixel - // of next block of 8 pixels added in. - __m128i prv0 = _mm_slli_si128(curr, 2); - __m128i nxt0 = _mm_srli_si128(curr, 2); - __m128i prev = _mm_insert_epi16(prv0, t1, 0); - __m128i next = _mm_insert_epi16(nxt0, 3*in_near[i+8] + in_far[i+8], 7); - - // horizontal filter, polyphase implementation since it's convenient: - // even pixels = 3*cur + prev = cur*4 + (prev - cur) - // odd pixels = 3*cur + next = cur*4 + (next - cur) - // note the shared term. - __m128i bias = _mm_set1_epi16(8); - __m128i curs = _mm_slli_epi16(curr, 2); - __m128i prvd = _mm_sub_epi16(prev, curr); - __m128i nxtd = _mm_sub_epi16(next, curr); - __m128i curb = _mm_add_epi16(curs, bias); - __m128i even = _mm_add_epi16(prvd, curb); - __m128i odd = _mm_add_epi16(nxtd, curb); - - // interleave even and odd pixels, then undo scaling. - __m128i int0 = _mm_unpacklo_epi16(even, odd); - __m128i int1 = _mm_unpackhi_epi16(even, odd); - __m128i de0 = _mm_srli_epi16(int0, 4); - __m128i de1 = _mm_srli_epi16(int1, 4); - - // pack and write output - __m128i outv = _mm_packus_epi16(de0, de1); - _mm_storeu_si128((__m128i *) (out + i*2), outv); -#elif defined(STBI_NEON) - // load and perform the vertical filtering pass - // this uses 3*x + y = 4*x + (y - x) - uint8x8_t farb = vld1_u8(in_far + i); - uint8x8_t nearb = vld1_u8(in_near + i); - int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb)); - int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2)); - int16x8_t curr = vaddq_s16(nears, diff); // current row - - // horizontal filter works the same based on shifted vers of current - // row. "prev" is current row shifted right by 1 pixel; we need to - // insert the previous pixel value (from t1). - // "next" is current row shifted left by 1 pixel, with first pixel - // of next block of 8 pixels added in. - int16x8_t prv0 = vextq_s16(curr, curr, 7); - int16x8_t nxt0 = vextq_s16(curr, curr, 1); - int16x8_t prev = vsetq_lane_s16(t1, prv0, 0); - int16x8_t next = vsetq_lane_s16(3*in_near[i+8] + in_far[i+8], nxt0, 7); - - // horizontal filter, polyphase implementation since it's convenient: - // even pixels = 3*cur + prev = cur*4 + (prev - cur) - // odd pixels = 3*cur + next = cur*4 + (next - cur) - // note the shared term. - int16x8_t curs = vshlq_n_s16(curr, 2); - int16x8_t prvd = vsubq_s16(prev, curr); - int16x8_t nxtd = vsubq_s16(next, curr); - int16x8_t even = vaddq_s16(curs, prvd); - int16x8_t odd = vaddq_s16(curs, nxtd); - - // undo scaling and round, then store with even/odd phases interleaved - uint8x8x2_t o; - o.val[0] = vqrshrun_n_s16(even, 4); - o.val[1] = vqrshrun_n_s16(odd, 4); - vst2_u8(out + i*2, o); -#endif - - // "previous" value for next iter - t1 = 3*in_near[i+7] + in_far[i+7]; - } - - t0 = t1; - t1 = 3*in_near[i] + in_far[i]; - out[i*2] = stbi__div16(3*t1 + t0 + 8); - - for (++i; i < w; ++i) { - t0 = t1; - t1 = 3*in_near[i]+in_far[i]; - out[i*2-1] = stbi__div16(3*t0 + t1 + 8); - out[i*2 ] = stbi__div16(3*t1 + t0 + 8); - } - out[w*2-1] = stbi__div4(t1+2); - - STBI_NOTUSED(hs); - - return out; -} -#endif - -static stbi_uc *stbi__resample_row_generic(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) -{ - // resample with nearest-neighbor - int i,j; - STBI_NOTUSED(in_far); - for (i=0; i < w; ++i) - for (j=0; j < hs; ++j) - out[i*hs+j] = in_near[i]; - return out; -} - -// this is a reduced-precision calculation of YCbCr-to-RGB introduced -// to make sure the code produces the same results in both SIMD and scalar -#define stbi__float2fixed(x) (((int) ((x) * 4096.0f + 0.5f)) << 8) -static void stbi__YCbCr_to_RGB_row(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step) -{ - int i; - for (i=0; i < count; ++i) { - int y_fixed = (y[i] << 20) + (1<<19); // rounding - int r,g,b; - int cr = pcr[i] - 128; - int cb = pcb[i] - 128; - r = y_fixed + cr* stbi__float2fixed(1.40200f); - g = y_fixed + (cr*-stbi__float2fixed(0.71414f)) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000); - b = y_fixed + cb* stbi__float2fixed(1.77200f); - r >>= 20; - g >>= 20; - b >>= 20; - if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; } - if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; } - if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; } - out[0] = (stbi_uc)r; - out[1] = (stbi_uc)g; - out[2] = (stbi_uc)b; - out[3] = 255; - out += step; - } -} - -#if defined(STBI_SSE2) || defined(STBI_NEON) -static void stbi__YCbCr_to_RGB_simd(stbi_uc *out, stbi_uc const *y, stbi_uc const *pcb, stbi_uc const *pcr, int count, int step) -{ - int i = 0; - -#ifdef STBI_SSE2 - // step == 3 is pretty ugly on the final interleave, and i'm not convinced - // it's useful in practice (you wouldn't use it for textures, for example). - // so just accelerate step == 4 case. - if (step == 4) { - // this is a fairly straightforward implementation and not super-optimized. - __m128i signflip = _mm_set1_epi8(-0x80); - __m128i cr_const0 = _mm_set1_epi16( (short) ( 1.40200f*4096.0f+0.5f)); - __m128i cr_const1 = _mm_set1_epi16( - (short) ( 0.71414f*4096.0f+0.5f)); - __m128i cb_const0 = _mm_set1_epi16( - (short) ( 0.34414f*4096.0f+0.5f)); - __m128i cb_const1 = _mm_set1_epi16( (short) ( 1.77200f*4096.0f+0.5f)); - __m128i y_bias = _mm_set1_epi8((char) (unsigned char) 128); - __m128i xw = _mm_set1_epi16(255); // alpha channel - - for (; i+7 < count; i += 8) { - // load - __m128i y_bytes = _mm_loadl_epi64((__m128i *) (y+i)); - __m128i cr_bytes = _mm_loadl_epi64((__m128i *) (pcr+i)); - __m128i cb_bytes = _mm_loadl_epi64((__m128i *) (pcb+i)); - __m128i cr_biased = _mm_xor_si128(cr_bytes, signflip); // -128 - __m128i cb_biased = _mm_xor_si128(cb_bytes, signflip); // -128 - - // unpack to short (and left-shift cr, cb by 8) - __m128i yw = _mm_unpacklo_epi8(y_bias, y_bytes); - __m128i crw = _mm_unpacklo_epi8(_mm_setzero_si128(), cr_biased); - __m128i cbw = _mm_unpacklo_epi8(_mm_setzero_si128(), cb_biased); - - // color transform - __m128i yws = _mm_srli_epi16(yw, 4); - __m128i cr0 = _mm_mulhi_epi16(cr_const0, crw); - __m128i cb0 = _mm_mulhi_epi16(cb_const0, cbw); - __m128i cb1 = _mm_mulhi_epi16(cbw, cb_const1); - __m128i cr1 = _mm_mulhi_epi16(crw, cr_const1); - __m128i rws = _mm_add_epi16(cr0, yws); - __m128i gwt = _mm_add_epi16(cb0, yws); - __m128i bws = _mm_add_epi16(yws, cb1); - __m128i gws = _mm_add_epi16(gwt, cr1); - - // descale - __m128i rw = _mm_srai_epi16(rws, 4); - __m128i bw = _mm_srai_epi16(bws, 4); - __m128i gw = _mm_srai_epi16(gws, 4); - - // back to byte, set up for transpose - __m128i brb = _mm_packus_epi16(rw, bw); - __m128i gxb = _mm_packus_epi16(gw, xw); - - // transpose to interleave channels - __m128i t0 = _mm_unpacklo_epi8(brb, gxb); - __m128i t1 = _mm_unpackhi_epi8(brb, gxb); - __m128i o0 = _mm_unpacklo_epi16(t0, t1); - __m128i o1 = _mm_unpackhi_epi16(t0, t1); - - // store - _mm_storeu_si128((__m128i *) (out + 0), o0); - _mm_storeu_si128((__m128i *) (out + 16), o1); - out += 32; - } - } -#endif - -#ifdef STBI_NEON - // in this version, step=3 support would be easy to add. but is there demand? - if (step == 4) { - // this is a fairly straightforward implementation and not super-optimized. - uint8x8_t signflip = vdup_n_u8(0x80); - int16x8_t cr_const0 = vdupq_n_s16( (short) ( 1.40200f*4096.0f+0.5f)); - int16x8_t cr_const1 = vdupq_n_s16( - (short) ( 0.71414f*4096.0f+0.5f)); - int16x8_t cb_const0 = vdupq_n_s16( - (short) ( 0.34414f*4096.0f+0.5f)); - int16x8_t cb_const1 = vdupq_n_s16( (short) ( 1.77200f*4096.0f+0.5f)); - - for (; i+7 < count; i += 8) { - // load - uint8x8_t y_bytes = vld1_u8(y + i); - uint8x8_t cr_bytes = vld1_u8(pcr + i); - uint8x8_t cb_bytes = vld1_u8(pcb + i); - int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip)); - int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip)); - - // expand to s16 - int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4)); - int16x8_t crw = vshll_n_s8(cr_biased, 7); - int16x8_t cbw = vshll_n_s8(cb_biased, 7); - - // color transform - int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0); - int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0); - int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1); - int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1); - int16x8_t rws = vaddq_s16(yws, cr0); - int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1); - int16x8_t bws = vaddq_s16(yws, cb1); - - // undo scaling, round, convert to byte - uint8x8x4_t o; - o.val[0] = vqrshrun_n_s16(rws, 4); - o.val[1] = vqrshrun_n_s16(gws, 4); - o.val[2] = vqrshrun_n_s16(bws, 4); - o.val[3] = vdup_n_u8(255); - - // store, interleaving r/g/b/a - vst4_u8(out, o); - out += 8*4; - } - } -#endif - - for (; i < count; ++i) { - int y_fixed = (y[i] << 20) + (1<<19); // rounding - int r,g,b; - int cr = pcr[i] - 128; - int cb = pcb[i] - 128; - r = y_fixed + cr* stbi__float2fixed(1.40200f); - g = y_fixed + cr*-stbi__float2fixed(0.71414f) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000); - b = y_fixed + cb* stbi__float2fixed(1.77200f); - r >>= 20; - g >>= 20; - b >>= 20; - if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; } - if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; } - if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; } - out[0] = (stbi_uc)r; - out[1] = (stbi_uc)g; - out[2] = (stbi_uc)b; - out[3] = 255; - out += step; - } -} -#endif - -// set up the kernels -static void stbi__setup_jpeg(stbi__jpeg *j) -{ - j->idct_block_kernel = stbi__idct_block; - j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_row; - j->resample_row_hv_2_kernel = stbi__resample_row_hv_2; - -#ifdef STBI_SSE2 - if (stbi__sse2_available()) { - j->idct_block_kernel = stbi__idct_simd; - j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; - j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; - } -#endif - -#ifdef STBI_NEON - j->idct_block_kernel = stbi__idct_simd; - j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; - j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; -#endif -} - -// clean up the temporary component buffers -static void stbi__cleanup_jpeg(stbi__jpeg *j) -{ - stbi__free_jpeg_components(j, j->s->img_n, 0); -} - -typedef struct -{ - resample_row_func resample; - stbi_uc *line0,*line1; - int hs,vs; // expansion factor in each axis - int w_lores; // horizontal pixels pre-expansion - int ystep; // how far through vertical expansion we are - int ypos; // which pre-expansion row we're on -} stbi__resample; - -// fast 0..255 * 0..255 => 0..255 rounded multiplication -static stbi_uc stbi__blinn_8x8(stbi_uc x, stbi_uc y) -{ - unsigned int t = x*y + 128; - return (stbi_uc) ((t + (t >>8)) >> 8); -} - -static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, int *comp, int req_comp) -{ - int n, decode_n, is_rgb; - z->s->img_n = 0; // make stbi__cleanup_jpeg safe - - // validate req_comp - if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error"); - - // load a jpeg image from whichever source, but leave in YCbCr format - if (!stbi__decode_jpeg_image(z)) { stbi__cleanup_jpeg(z); return NULL; } - - // determine actual number of components to generate - n = req_comp ? req_comp : z->s->img_n >= 3 ? 3 : 1; - - is_rgb = z->s->img_n == 3 && (z->rgb == 3 || (z->app14_color_transform == 0 && !z->jfif)); - - if (z->s->img_n == 3 && n < 3 && !is_rgb) - decode_n = 1; - else - decode_n = z->s->img_n; - - // nothing to do if no components requested; check this now to avoid - // accessing uninitialized coutput[0] later - if (decode_n <= 0) { stbi__cleanup_jpeg(z); return NULL; } - - // resample and color-convert - { - int k; - unsigned int i,j; - stbi_uc *output; - stbi_uc *coutput[4] = { NULL, NULL, NULL, NULL }; - - stbi__resample res_comp[4]; - - for (k=0; k < decode_n; ++k) { - stbi__resample *r = &res_comp[k]; - - // allocate line buffer big enough for upsampling off the edges - // with upsample factor of 4 - z->img_comp[k].linebuf = (stbi_uc *) stbi__malloc(z->s->img_x + 3); - if (!z->img_comp[k].linebuf) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); } - - r->hs = z->img_h_max / z->img_comp[k].h; - r->vs = z->img_v_max / z->img_comp[k].v; - r->ystep = r->vs >> 1; - r->w_lores = (z->s->img_x + r->hs-1) / r->hs; - r->ypos = 0; - r->line0 = r->line1 = z->img_comp[k].data; - - if (r->hs == 1 && r->vs == 1) r->resample = resample_row_1; - else if (r->hs == 1 && r->vs == 2) r->resample = stbi__resample_row_v_2; - else if (r->hs == 2 && r->vs == 1) r->resample = stbi__resample_row_h_2; - else if (r->hs == 2 && r->vs == 2) r->resample = z->resample_row_hv_2_kernel; - else r->resample = stbi__resample_row_generic; - } - - // can't error after this so, this is safe - output = (stbi_uc *) stbi__malloc_mad3(n, z->s->img_x, z->s->img_y, 1); - if (!output) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); } - - // now go ahead and resample - for (j=0; j < z->s->img_y; ++j) { - stbi_uc *out = output + n * z->s->img_x * j; - for (k=0; k < decode_n; ++k) { - stbi__resample *r = &res_comp[k]; - int y_bot = r->ystep >= (r->vs >> 1); - coutput[k] = r->resample(z->img_comp[k].linebuf, - y_bot ? r->line1 : r->line0, - y_bot ? r->line0 : r->line1, - r->w_lores, r->hs); - if (++r->ystep >= r->vs) { - r->ystep = 0; - r->line0 = r->line1; - if (++r->ypos < z->img_comp[k].y) - r->line1 += z->img_comp[k].w2; - } - } - if (n >= 3) { - stbi_uc *y = coutput[0]; - if (z->s->img_n == 3) { - if (is_rgb) { - for (i=0; i < z->s->img_x; ++i) { - out[0] = y[i]; - out[1] = coutput[1][i]; - out[2] = coutput[2][i]; - out[3] = 255; - out += n; - } - } else { - z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); - } - } else if (z->s->img_n == 4) { - if (z->app14_color_transform == 0) { // CMYK - for (i=0; i < z->s->img_x; ++i) { - stbi_uc m = coutput[3][i]; - out[0] = stbi__blinn_8x8(coutput[0][i], m); - out[1] = stbi__blinn_8x8(coutput[1][i], m); - out[2] = stbi__blinn_8x8(coutput[2][i], m); - out[3] = 255; - out += n; - } - } else if (z->app14_color_transform == 2) { // YCCK - z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); - for (i=0; i < z->s->img_x; ++i) { - stbi_uc m = coutput[3][i]; - out[0] = stbi__blinn_8x8(255 - out[0], m); - out[1] = stbi__blinn_8x8(255 - out[1], m); - out[2] = stbi__blinn_8x8(255 - out[2], m); - out += n; - } - } else { // YCbCr + alpha? Ignore the fourth channel for now - z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); - } - } else - for (i=0; i < z->s->img_x; ++i) { - out[0] = out[1] = out[2] = y[i]; - out[3] = 255; // not used if n==3 - out += n; - } - } else { - if (is_rgb) { - if (n == 1) - for (i=0; i < z->s->img_x; ++i) - *out++ = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); - else { - for (i=0; i < z->s->img_x; ++i, out += 2) { - out[0] = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); - out[1] = 255; - } - } - } else if (z->s->img_n == 4 && z->app14_color_transform == 0) { - for (i=0; i < z->s->img_x; ++i) { - stbi_uc m = coutput[3][i]; - stbi_uc r = stbi__blinn_8x8(coutput[0][i], m); - stbi_uc g = stbi__blinn_8x8(coutput[1][i], m); - stbi_uc b = stbi__blinn_8x8(coutput[2][i], m); - out[0] = stbi__compute_y(r, g, b); - out[1] = 255; - out += n; - } - } else if (z->s->img_n == 4 && z->app14_color_transform == 2) { - for (i=0; i < z->s->img_x; ++i) { - out[0] = stbi__blinn_8x8(255 - coutput[0][i], coutput[3][i]); - out[1] = 255; - out += n; - } - } else { - stbi_uc *y = coutput[0]; - if (n == 1) - for (i=0; i < z->s->img_x; ++i) out[i] = y[i]; - else - for (i=0; i < z->s->img_x; ++i) { *out++ = y[i]; *out++ = 255; } - } - } - } - stbi__cleanup_jpeg(z); - *out_x = z->s->img_x; - *out_y = z->s->img_y; - if (comp) *comp = z->s->img_n >= 3 ? 3 : 1; // report original components, not output - return output; - } -} - -static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) -{ - unsigned char* result; - stbi__jpeg* j = (stbi__jpeg*) stbi__malloc(sizeof(stbi__jpeg)); - if (!j) return stbi__errpuc("outofmem", "Out of memory"); - memset(j, 0, sizeof(stbi__jpeg)); - STBI_NOTUSED(ri); - j->s = s; - stbi__setup_jpeg(j); - result = load_jpeg_image(j, x,y,comp,req_comp); - STBI_FREE(j); - return result; -} - -static int stbi__jpeg_test(stbi__context *s) -{ - int r; - stbi__jpeg* j = (stbi__jpeg*)stbi__malloc(sizeof(stbi__jpeg)); - if (!j) return stbi__err("outofmem", "Out of memory"); - memset(j, 0, sizeof(stbi__jpeg)); - j->s = s; - stbi__setup_jpeg(j); - r = stbi__decode_jpeg_header(j, STBI__SCAN_type); - stbi__rewind(s); - STBI_FREE(j); - return r; -} - -static int stbi__jpeg_info_raw(stbi__jpeg *j, int *x, int *y, int *comp) -{ - if (!stbi__decode_jpeg_header(j, STBI__SCAN_header)) { - stbi__rewind( j->s ); - return 0; - } - if (x) *x = j->s->img_x; - if (y) *y = j->s->img_y; - if (comp) *comp = j->s->img_n >= 3 ? 3 : 1; - return 1; -} - -static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp) -{ - int result; - stbi__jpeg* j = (stbi__jpeg*) (stbi__malloc(sizeof(stbi__jpeg))); - if (!j) return stbi__err("outofmem", "Out of memory"); - memset(j, 0, sizeof(stbi__jpeg)); - j->s = s; - result = stbi__jpeg_info_raw(j, x, y, comp); - STBI_FREE(j); - return result; -} -#endif - -// public domain zlib decode v0.2 Sean Barrett 2006-11-18 -// simple implementation -// - all input must be provided in an upfront buffer -// - all output is written to a single output buffer (can malloc/realloc) -// performance -// - fast huffman - -#ifndef STBI_NO_ZLIB - -// fast-way is faster to check than jpeg huffman, but slow way is slower -#define STBI__ZFAST_BITS 9 // accelerate all cases in default tables -#define STBI__ZFAST_MASK ((1 << STBI__ZFAST_BITS) - 1) -#define STBI__ZNSYMS 288 // number of symbols in literal/length alphabet - -// zlib-style huffman encoding -// (jpegs packs from left, zlib from right, so can't share code) -typedef struct -{ - stbi__uint16 fast[1 << STBI__ZFAST_BITS]; - stbi__uint16 firstcode[16]; - int maxcode[17]; - stbi__uint16 firstsymbol[16]; - stbi_uc size[STBI__ZNSYMS]; - stbi__uint16 value[STBI__ZNSYMS]; -} stbi__zhuffman; - -stbi_inline static int stbi__bitreverse16(int n) -{ - n = ((n & 0xAAAA) >> 1) | ((n & 0x5555) << 1); - n = ((n & 0xCCCC) >> 2) | ((n & 0x3333) << 2); - n = ((n & 0xF0F0) >> 4) | ((n & 0x0F0F) << 4); - n = ((n & 0xFF00) >> 8) | ((n & 0x00FF) << 8); - return n; -} - -stbi_inline static int stbi__bit_reverse(int v, int bits) -{ - STBI_ASSERT(bits <= 16); - // to bit reverse n bits, reverse 16 and shift - // e.g. 11 bits, bit reverse and shift away 5 - return stbi__bitreverse16(v) >> (16-bits); -} - -static int stbi__zbuild_huffman(stbi__zhuffman *z, const stbi_uc *sizelist, int num) -{ - int i,k=0; - int code, next_code[16], sizes[17]; - - // DEFLATE spec for generating codes - memset(sizes, 0, sizeof(sizes)); - memset(z->fast, 0, sizeof(z->fast)); - for (i=0; i < num; ++i) - ++sizes[sizelist[i]]; - sizes[0] = 0; - for (i=1; i < 16; ++i) - if (sizes[i] > (1 << i)) - return stbi__err("bad sizes", "Corrupt PNG"); - code = 0; - for (i=1; i < 16; ++i) { - next_code[i] = code; - z->firstcode[i] = (stbi__uint16) code; - z->firstsymbol[i] = (stbi__uint16) k; - code = (code + sizes[i]); - if (sizes[i]) - if (code-1 >= (1 << i)) return stbi__err("bad codelengths","Corrupt PNG"); - z->maxcode[i] = code << (16-i); // preshift for inner loop - code <<= 1; - k += sizes[i]; - } - z->maxcode[16] = 0x10000; // sentinel - for (i=0; i < num; ++i) { - int s = sizelist[i]; - if (s) { - int c = next_code[s] - z->firstcode[s] + z->firstsymbol[s]; - stbi__uint16 fastv = (stbi__uint16) ((s << 9) | i); - z->size [c] = (stbi_uc ) s; - z->value[c] = (stbi__uint16) i; - if (s <= STBI__ZFAST_BITS) { - int j = stbi__bit_reverse(next_code[s],s); - while (j < (1 << STBI__ZFAST_BITS)) { - z->fast[j] = fastv; - j += (1 << s); - } - } - ++next_code[s]; - } - } - return 1; -} - -// zlib-from-memory implementation for PNG reading -// because PNG allows splitting the zlib stream arbitrarily, -// and it's annoying structurally to have PNG call ZLIB call PNG, -// we require PNG read all the IDATs and combine them into a single -// memory buffer - -typedef struct -{ - stbi_uc *zbuffer, *zbuffer_end; - int num_bits; - int hit_zeof_once; - stbi__uint32 code_buffer; - - char *zout; - char *zout_start; - char *zout_end; - int z_expandable; - - stbi__zhuffman z_length, z_distance; -} stbi__zbuf; - -stbi_inline static int stbi__zeof(stbi__zbuf *z) -{ - return (z->zbuffer >= z->zbuffer_end); -} - -stbi_inline static stbi_uc stbi__zget8(stbi__zbuf *z) -{ - return stbi__zeof(z) ? 0 : *z->zbuffer++; -} - -static void stbi__fill_bits(stbi__zbuf *z) -{ - do { - if (z->code_buffer >= (1U << z->num_bits)) { - z->zbuffer = z->zbuffer_end; /* treat this as EOF so we fail. */ - return; - } - z->code_buffer |= (unsigned int) stbi__zget8(z) << z->num_bits; - z->num_bits += 8; - } while (z->num_bits <= 24); -} - -stbi_inline static unsigned int stbi__zreceive(stbi__zbuf *z, int n) -{ - unsigned int k; - if (z->num_bits < n) stbi__fill_bits(z); - k = z->code_buffer & ((1 << n) - 1); - z->code_buffer >>= n; - z->num_bits -= n; - return k; -} - -static int stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z) -{ - int b,s,k; - // not resolved by fast table, so compute it the slow way - // use jpeg approach, which requires MSbits at top - k = stbi__bit_reverse(a->code_buffer, 16); - for (s=STBI__ZFAST_BITS+1; ; ++s) - if (k < z->maxcode[s]) - break; - if (s >= 16) return -1; // invalid code! - // code size is s, so: - b = (k >> (16-s)) - z->firstcode[s] + z->firstsymbol[s]; - if (b >= STBI__ZNSYMS) return -1; // some data was corrupt somewhere! - if (z->size[b] != s) return -1; // was originally an assert, but report failure instead. - a->code_buffer >>= s; - a->num_bits -= s; - return z->value[b]; -} - -stbi_inline static int stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffman *z) -{ - int b,s; - if (a->num_bits < 16) { - if (stbi__zeof(a)) { - if (!a->hit_zeof_once) { - // This is the first time we hit eof, insert 16 extra padding btis - // to allow us to keep going; if we actually consume any of them - // though, that is invalid data. This is caught later. - a->hit_zeof_once = 1; - a->num_bits += 16; // add 16 implicit zero bits - } else { - // We already inserted our extra 16 padding bits and are again - // out, this stream is actually prematurely terminated. - return -1; - } - } else { - stbi__fill_bits(a); - } - } - b = z->fast[a->code_buffer & STBI__ZFAST_MASK]; - if (b) { - s = b >> 9; - a->code_buffer >>= s; - a->num_bits -= s; - return b & 511; - } - return stbi__zhuffman_decode_slowpath(a, z); -} - -static int stbi__zexpand(stbi__zbuf *z, char *zout, int n) // need to make room for n bytes -{ - char *q; - unsigned int cur, limit, old_limit; - z->zout = zout; - if (!z->z_expandable) return stbi__err("output buffer limit","Corrupt PNG"); - cur = (unsigned int) (z->zout - z->zout_start); - limit = old_limit = (unsigned) (z->zout_end - z->zout_start); - if (UINT_MAX - cur < (unsigned) n) return stbi__err("outofmem", "Out of memory"); - while (cur + n > limit) { - if(limit > UINT_MAX / 2) return stbi__err("outofmem", "Out of memory"); - limit *= 2; - } - q = (char *) STBI_REALLOC_SIZED(z->zout_start, old_limit, limit); - STBI_NOTUSED(old_limit); - if (q == NULL) return stbi__err("outofmem", "Out of memory"); - z->zout_start = q; - z->zout = q + cur; - z->zout_end = q + limit; - return 1; -} - -static const int stbi__zlength_base[31] = { - 3,4,5,6,7,8,9,10,11,13, - 15,17,19,23,27,31,35,43,51,59, - 67,83,99,115,131,163,195,227,258,0,0 }; - -static const int stbi__zlength_extra[31]= -{ 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0 }; - -static const int stbi__zdist_base[32] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193, -257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0}; - -static const int stbi__zdist_extra[32] = -{ 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; - -static int stbi__parse_huffman_block(stbi__zbuf *a) -{ - char *zout = a->zout; - for(;;) { - int z = stbi__zhuffman_decode(a, &a->z_length); - if (z < 256) { - if (z < 0) return stbi__err("bad huffman code","Corrupt PNG"); // error in huffman codes - if (zout >= a->zout_end) { - if (!stbi__zexpand(a, zout, 1)) return 0; - zout = a->zout; - } - *zout++ = (char) z; - } else { - stbi_uc *p; - int len,dist; - if (z == 256) { - a->zout = zout; - if (a->hit_zeof_once && a->num_bits < 16) { - // The first time we hit zeof, we inserted 16 extra zero bits into our bit - // buffer so the decoder can just do its speculative decoding. But if we - // actually consumed any of those bits (which is the case when num_bits < 16), - // the stream actually read past the end so it is malformed. - return stbi__err("unexpected end","Corrupt PNG"); - } - return 1; - } - if (z >= 286) return stbi__err("bad huffman code","Corrupt PNG"); // per DEFLATE, length codes 286 and 287 must not appear in compressed data - z -= 257; - len = stbi__zlength_base[z]; - if (stbi__zlength_extra[z]) len += stbi__zreceive(a, stbi__zlength_extra[z]); - z = stbi__zhuffman_decode(a, &a->z_distance); - if (z < 0 || z >= 30) return stbi__err("bad huffman code","Corrupt PNG"); // per DEFLATE, distance codes 30 and 31 must not appear in compressed data - dist = stbi__zdist_base[z]; - if (stbi__zdist_extra[z]) dist += stbi__zreceive(a, stbi__zdist_extra[z]); - if (zout - a->zout_start < dist) return stbi__err("bad dist","Corrupt PNG"); - if (len > a->zout_end - zout) { - if (!stbi__zexpand(a, zout, len)) return 0; - zout = a->zout; - } - p = (stbi_uc *) (zout - dist); - if (dist == 1) { // run of one byte; common in images. - stbi_uc v = *p; - if (len) { do *zout++ = v; while (--len); } - } else { - if (len) { do *zout++ = *p++; while (--len); } - } - } - } -} - -static int stbi__compute_huffman_codes(stbi__zbuf *a) -{ - static const stbi_uc length_dezigzag[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 }; - stbi__zhuffman z_codelength; - stbi_uc lencodes[286+32+137];//padding for maximum single op - stbi_uc codelength_sizes[19]; - int i,n; - - int hlit = stbi__zreceive(a,5) + 257; - int hdist = stbi__zreceive(a,5) + 1; - int hclen = stbi__zreceive(a,4) + 4; - int ntot = hlit + hdist; - - memset(codelength_sizes, 0, sizeof(codelength_sizes)); - for (i=0; i < hclen; ++i) { - int s = stbi__zreceive(a,3); - codelength_sizes[length_dezigzag[i]] = (stbi_uc) s; - } - if (!stbi__zbuild_huffman(&z_codelength, codelength_sizes, 19)) return 0; - - n = 0; - while (n < ntot) { - int c = stbi__zhuffman_decode(a, &z_codelength); - if (c < 0 || c >= 19) return stbi__err("bad codelengths", "Corrupt PNG"); - if (c < 16) - lencodes[n++] = (stbi_uc) c; - else { - stbi_uc fill = 0; - if (c == 16) { - c = stbi__zreceive(a,2)+3; - if (n == 0) return stbi__err("bad codelengths", "Corrupt PNG"); - fill = lencodes[n-1]; - } else if (c == 17) { - c = stbi__zreceive(a,3)+3; - } else if (c == 18) { - c = stbi__zreceive(a,7)+11; - } else { - return stbi__err("bad codelengths", "Corrupt PNG"); - } - if (ntot - n < c) return stbi__err("bad codelengths", "Corrupt PNG"); - memset(lencodes+n, fill, c); - n += c; - } - } - if (n != ntot) return stbi__err("bad codelengths","Corrupt PNG"); - if (!stbi__zbuild_huffman(&a->z_length, lencodes, hlit)) return 0; - if (!stbi__zbuild_huffman(&a->z_distance, lencodes+hlit, hdist)) return 0; - return 1; -} - -static int stbi__parse_uncompressed_block(stbi__zbuf *a) -{ - stbi_uc header[4]; - int len,nlen,k; - if (a->num_bits & 7) - stbi__zreceive(a, a->num_bits & 7); // discard - // drain the bit-packed data into header - k = 0; - while (a->num_bits > 0) { - header[k++] = (stbi_uc) (a->code_buffer & 255); // suppress MSVC run-time check - a->code_buffer >>= 8; - a->num_bits -= 8; - } - if (a->num_bits < 0) return stbi__err("zlib corrupt","Corrupt PNG"); - // now fill header the normal way - while (k < 4) - header[k++] = stbi__zget8(a); - len = header[1] * 256 + header[0]; - nlen = header[3] * 256 + header[2]; - if (nlen != (len ^ 0xffff)) return stbi__err("zlib corrupt","Corrupt PNG"); - if (a->zbuffer + len > a->zbuffer_end) return stbi__err("read past buffer","Corrupt PNG"); - if (a->zout + len > a->zout_end) - if (!stbi__zexpand(a, a->zout, len)) return 0; - memcpy(a->zout, a->zbuffer, len); - a->zbuffer += len; - a->zout += len; - return 1; -} - -static int stbi__parse_zlib_header(stbi__zbuf *a) -{ - int cmf = stbi__zget8(a); - int cm = cmf & 15; - /* int cinfo = cmf >> 4; */ - int flg = stbi__zget8(a); - if (stbi__zeof(a)) return stbi__err("bad zlib header","Corrupt PNG"); // zlib spec - if ((cmf*256+flg) % 31 != 0) return stbi__err("bad zlib header","Corrupt PNG"); // zlib spec - if (flg & 32) return stbi__err("no preset dict","Corrupt PNG"); // preset dictionary not allowed in png - if (cm != 8) return stbi__err("bad compression","Corrupt PNG"); // DEFLATE required for png - // window = 1 << (8 + cinfo)... but who cares, we fully buffer output - return 1; -} - -static const stbi_uc stbi__zdefault_length[STBI__ZNSYMS] = -{ - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, - 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, - 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, - 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8 -}; -static const stbi_uc stbi__zdefault_distance[32] = -{ - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5 -}; -/* -Init algorithm: -{ - int i; // use <= to match clearly with spec - for (i=0; i <= 143; ++i) stbi__zdefault_length[i] = 8; - for ( ; i <= 255; ++i) stbi__zdefault_length[i] = 9; - for ( ; i <= 279; ++i) stbi__zdefault_length[i] = 7; - for ( ; i <= 287; ++i) stbi__zdefault_length[i] = 8; - - for (i=0; i <= 31; ++i) stbi__zdefault_distance[i] = 5; -} -*/ - -static int stbi__parse_zlib(stbi__zbuf *a, int parse_header) -{ - int final, type; - if (parse_header) - if (!stbi__parse_zlib_header(a)) return 0; - a->num_bits = 0; - a->code_buffer = 0; - a->hit_zeof_once = 0; - do { - final = stbi__zreceive(a,1); - type = stbi__zreceive(a,2); - if (type == 0) { - if (!stbi__parse_uncompressed_block(a)) return 0; - } else if (type == 3) { - return 0; - } else { - if (type == 1) { - // use fixed code lengths - if (!stbi__zbuild_huffman(&a->z_length , stbi__zdefault_length , STBI__ZNSYMS)) return 0; - if (!stbi__zbuild_huffman(&a->z_distance, stbi__zdefault_distance, 32)) return 0; - } else { - if (!stbi__compute_huffman_codes(a)) return 0; - } - if (!stbi__parse_huffman_block(a)) return 0; - } - } while (!final); - return 1; -} - -static int stbi__do_zlib(stbi__zbuf *a, char *obuf, int olen, int exp, int parse_header) -{ - a->zout_start = obuf; - a->zout = obuf; - a->zout_end = obuf + olen; - a->z_expandable = exp; - - return stbi__parse_zlib(a, parse_header); -} - -STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen) -{ - stbi__zbuf a; - char *p = (char *) stbi__malloc(initial_size); - if (p == NULL) return NULL; - a.zbuffer = (stbi_uc *) buffer; - a.zbuffer_end = (stbi_uc *) buffer + len; - if (stbi__do_zlib(&a, p, initial_size, 1, 1)) { - if (outlen) *outlen = (int) (a.zout - a.zout_start); - return a.zout_start; - } else { - STBI_FREE(a.zout_start); - return NULL; - } -} - -STBIDEF char *stbi_zlib_decode_malloc(char const *buffer, int len, int *outlen) -{ - return stbi_zlib_decode_malloc_guesssize(buffer, len, 16384, outlen); -} - -STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header) -{ - stbi__zbuf a; - char *p = (char *) stbi__malloc(initial_size); - if (p == NULL) return NULL; - a.zbuffer = (stbi_uc *) buffer; - a.zbuffer_end = (stbi_uc *) buffer + len; - if (stbi__do_zlib(&a, p, initial_size, 1, parse_header)) { - if (outlen) *outlen = (int) (a.zout - a.zout_start); - return a.zout_start; - } else { - STBI_FREE(a.zout_start); - return NULL; - } -} - -STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, char const *ibuffer, int ilen) -{ - stbi__zbuf a; - a.zbuffer = (stbi_uc *) ibuffer; - a.zbuffer_end = (stbi_uc *) ibuffer + ilen; - if (stbi__do_zlib(&a, obuffer, olen, 0, 1)) - return (int) (a.zout - a.zout_start); - else - return -1; -} - -STBIDEF char *stbi_zlib_decode_noheader_malloc(char const *buffer, int len, int *outlen) -{ - stbi__zbuf a; - char *p = (char *) stbi__malloc(16384); - if (p == NULL) return NULL; - a.zbuffer = (stbi_uc *) buffer; - a.zbuffer_end = (stbi_uc *) buffer+len; - if (stbi__do_zlib(&a, p, 16384, 1, 0)) { - if (outlen) *outlen = (int) (a.zout - a.zout_start); - return a.zout_start; - } else { - STBI_FREE(a.zout_start); - return NULL; - } -} - -STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen) -{ - stbi__zbuf a; - a.zbuffer = (stbi_uc *) ibuffer; - a.zbuffer_end = (stbi_uc *) ibuffer + ilen; - if (stbi__do_zlib(&a, obuffer, olen, 0, 0)) - return (int) (a.zout - a.zout_start); - else - return -1; -} -#endif - -// public domain "baseline" PNG decoder v0.10 Sean Barrett 2006-11-18 -// simple implementation -// - only 8-bit samples -// - no CRC checking -// - allocates lots of intermediate memory -// - avoids problem of streaming data between subsystems -// - avoids explicit window management -// performance -// - uses stb_zlib, a PD zlib implementation with fast huffman decoding - -#ifndef STBI_NO_PNG -typedef struct -{ - stbi__uint32 length; - stbi__uint32 type; -} stbi__pngchunk; - -static stbi__pngchunk stbi__get_chunk_header(stbi__context *s) -{ - stbi__pngchunk c; - c.length = stbi__get32be(s); - c.type = stbi__get32be(s); - return c; -} - -static int stbi__check_png_header(stbi__context *s) -{ - static const stbi_uc png_sig[8] = { 137,80,78,71,13,10,26,10 }; - int i; - for (i=0; i < 8; ++i) - if (stbi__get8(s) != png_sig[i]) return stbi__err("bad png sig","Not a PNG"); - return 1; -} - -typedef struct -{ - stbi__context *s; - stbi_uc *idata, *expanded, *out; - int depth; -} stbi__png; - - -enum { - STBI__F_none=0, - STBI__F_sub=1, - STBI__F_up=2, - STBI__F_avg=3, - STBI__F_paeth=4, - // synthetic filter used for first scanline to avoid needing a dummy row of 0s - STBI__F_avg_first -}; - -static stbi_uc first_row_filter[5] = -{ - STBI__F_none, - STBI__F_sub, - STBI__F_none, - STBI__F_avg_first, - STBI__F_sub // Paeth with b=c=0 turns out to be equivalent to sub -}; - -static int stbi__paeth(int a, int b, int c) -{ - // This formulation looks very different from the reference in the PNG spec, but is - // actually equivalent and has favorable data dependencies and admits straightforward - // generation of branch-free code, which helps performance significantly. - int thresh = c*3 - (a + b); - int lo = a < b ? a : b; - int hi = a < b ? b : a; - int t0 = (hi <= thresh) ? lo : c; - int t1 = (thresh <= lo) ? hi : t0; - return t1; -} - -static const stbi_uc stbi__depth_scale_table[9] = { 0, 0xff, 0x55, 0, 0x11, 0,0,0, 0x01 }; - -// adds an extra all-255 alpha channel -// dest == src is legal -// img_n must be 1 or 3 -static void stbi__create_png_alpha_expand8(stbi_uc *dest, stbi_uc *src, stbi__uint32 x, int img_n) -{ - int i; - // must process data backwards since we allow dest==src - if (img_n == 1) { - for (i=x-1; i >= 0; --i) { - dest[i*2+1] = 255; - dest[i*2+0] = src[i]; - } - } else { - STBI_ASSERT(img_n == 3); - for (i=x-1; i >= 0; --i) { - dest[i*4+3] = 255; - dest[i*4+2] = src[i*3+2]; - dest[i*4+1] = src[i*3+1]; - dest[i*4+0] = src[i*3+0]; - } - } -} - -// create the png data from post-deflated data -static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 raw_len, int out_n, stbi__uint32 x, stbi__uint32 y, int depth, int color) -{ - int bytes = (depth == 16 ? 2 : 1); - stbi__context *s = a->s; - stbi__uint32 i,j,stride = x*out_n*bytes; - stbi__uint32 img_len, img_width_bytes; - stbi_uc *filter_buf; - int all_ok = 1; - int k; - int img_n = s->img_n; // copy it into a local for later - - int output_bytes = out_n*bytes; - int filter_bytes = img_n*bytes; - int width = x; - - STBI_ASSERT(out_n == s->img_n || out_n == s->img_n+1); - a->out = (stbi_uc *) stbi__malloc_mad3(x, y, output_bytes, 0); // extra bytes to write off the end into - if (!a->out) return stbi__err("outofmem", "Out of memory"); - - // note: error exits here don't need to clean up a->out individually, - // stbi__do_png always does on error. - if (!stbi__mad3sizes_valid(img_n, x, depth, 7)) return stbi__err("too large", "Corrupt PNG"); - img_width_bytes = (((img_n * x * depth) + 7) >> 3); - if (!stbi__mad2sizes_valid(img_width_bytes, y, img_width_bytes)) return stbi__err("too large", "Corrupt PNG"); - img_len = (img_width_bytes + 1) * y; - - // we used to check for exact match between raw_len and img_len on non-interlaced PNGs, - // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros), - // so just check for raw_len < img_len always. - if (raw_len < img_len) return stbi__err("not enough pixels","Corrupt PNG"); - - // Allocate two scan lines worth of filter workspace buffer. - filter_buf = (stbi_uc *) stbi__malloc_mad2(img_width_bytes, 2, 0); - if (!filter_buf) return stbi__err("outofmem", "Out of memory"); - - // Filtering for low-bit-depth images - if (depth < 8) { - filter_bytes = 1; - width = img_width_bytes; - } - - for (j=0; j < y; ++j) { - // cur/prior filter buffers alternate - stbi_uc *cur = filter_buf + (j & 1)*img_width_bytes; - stbi_uc *prior = filter_buf + (~j & 1)*img_width_bytes; - stbi_uc *dest = a->out + stride*j; - int nk = width * filter_bytes; - int filter = *raw++; - - // check filter type - if (filter > 4) { - all_ok = stbi__err("invalid filter","Corrupt PNG"); - break; - } - - // if first row, use special filter that doesn't sample previous row - if (j == 0) filter = first_row_filter[filter]; - - // perform actual filtering - switch (filter) { - case STBI__F_none: - memcpy(cur, raw, nk); - break; - case STBI__F_sub: - memcpy(cur, raw, filter_bytes); - for (k = filter_bytes; k < nk; ++k) - cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); - break; - case STBI__F_up: - for (k = 0; k < nk; ++k) - cur[k] = STBI__BYTECAST(raw[k] + prior[k]); - break; - case STBI__F_avg: - for (k = 0; k < filter_bytes; ++k) - cur[k] = STBI__BYTECAST(raw[k] + (prior[k]>>1)); - for (k = filter_bytes; k < nk; ++k) - cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])>>1)); - break; - case STBI__F_paeth: - for (k = 0; k < filter_bytes; ++k) - cur[k] = STBI__BYTECAST(raw[k] + prior[k]); // prior[k] == stbi__paeth(0,prior[k],0) - for (k = filter_bytes; k < nk; ++k) - cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes], prior[k], prior[k-filter_bytes])); - break; - case STBI__F_avg_first: - memcpy(cur, raw, filter_bytes); - for (k = filter_bytes; k < nk; ++k) - cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] >> 1)); - break; - } - - raw += nk; - - // expand decoded bits in cur to dest, also adding an extra alpha channel if desired - if (depth < 8) { - stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] : 1; // scale grayscale values to 0..255 range - stbi_uc *in = cur; - stbi_uc *out = dest; - stbi_uc inb = 0; - stbi__uint32 nsmp = x*img_n; - - // expand bits to bytes first - if (depth == 4) { - for (i=0; i < nsmp; ++i) { - if ((i & 1) == 0) inb = *in++; - *out++ = scale * (inb >> 4); - inb <<= 4; - } - } else if (depth == 2) { - for (i=0; i < nsmp; ++i) { - if ((i & 3) == 0) inb = *in++; - *out++ = scale * (inb >> 6); - inb <<= 2; - } - } else { - STBI_ASSERT(depth == 1); - for (i=0; i < nsmp; ++i) { - if ((i & 7) == 0) inb = *in++; - *out++ = scale * (inb >> 7); - inb <<= 1; - } - } - - // insert alpha=255 values if desired - if (img_n != out_n) - stbi__create_png_alpha_expand8(dest, dest, x, img_n); - } else if (depth == 8) { - if (img_n == out_n) - memcpy(dest, cur, x*img_n); - else - stbi__create_png_alpha_expand8(dest, cur, x, img_n); - } else if (depth == 16) { - // convert the image data from big-endian to platform-native - stbi__uint16 *dest16 = (stbi__uint16*)dest; - stbi__uint32 nsmp = x*img_n; - - if (img_n == out_n) { - for (i = 0; i < nsmp; ++i, ++dest16, cur += 2) - *dest16 = (cur[0] << 8) | cur[1]; - } else { - STBI_ASSERT(img_n+1 == out_n); - if (img_n == 1) { - for (i = 0; i < x; ++i, dest16 += 2, cur += 2) { - dest16[0] = (cur[0] << 8) | cur[1]; - dest16[1] = 0xffff; - } - } else { - STBI_ASSERT(img_n == 3); - for (i = 0; i < x; ++i, dest16 += 4, cur += 6) { - dest16[0] = (cur[0] << 8) | cur[1]; - dest16[1] = (cur[2] << 8) | cur[3]; - dest16[2] = (cur[4] << 8) | cur[5]; - dest16[3] = 0xffff; - } - } - } - } - } - - STBI_FREE(filter_buf); - if (!all_ok) return 0; - - return 1; -} - -static int stbi__create_png_image(stbi__png *a, stbi_uc *image_data, stbi__uint32 image_data_len, int out_n, int depth, int color, int interlaced) -{ - int bytes = (depth == 16 ? 2 : 1); - int out_bytes = out_n * bytes; - stbi_uc *final; - int p; - if (!interlaced) - return stbi__create_png_image_raw(a, image_data, image_data_len, out_n, a->s->img_x, a->s->img_y, depth, color); - - // de-interlacing - final = (stbi_uc *) stbi__malloc_mad3(a->s->img_x, a->s->img_y, out_bytes, 0); - if (!final) return stbi__err("outofmem", "Out of memory"); - for (p=0; p < 7; ++p) { - int xorig[] = { 0,4,0,2,0,1,0 }; - int yorig[] = { 0,0,4,0,2,0,1 }; - int xspc[] = { 8,8,4,4,2,2,1 }; - int yspc[] = { 8,8,8,4,4,2,2 }; - int i,j,x,y; - // pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1 - x = (a->s->img_x - xorig[p] + xspc[p]-1) / xspc[p]; - y = (a->s->img_y - yorig[p] + yspc[p]-1) / yspc[p]; - if (x && y) { - stbi__uint32 img_len = ((((a->s->img_n * x * depth) + 7) >> 3) + 1) * y; - if (!stbi__create_png_image_raw(a, image_data, image_data_len, out_n, x, y, depth, color)) { - STBI_FREE(final); - return 0; - } - for (j=0; j < y; ++j) { - for (i=0; i < x; ++i) { - int out_y = j*yspc[p]+yorig[p]; - int out_x = i*xspc[p]+xorig[p]; - memcpy(final + out_y*a->s->img_x*out_bytes + out_x*out_bytes, - a->out + (j*x+i)*out_bytes, out_bytes); - } - } - STBI_FREE(a->out); - image_data += img_len; - image_data_len -= img_len; - } - } - a->out = final; - - return 1; -} - -static int stbi__compute_transparency(stbi__png *z, stbi_uc tc[3], int out_n) -{ - stbi__context *s = z->s; - stbi__uint32 i, pixel_count = s->img_x * s->img_y; - stbi_uc *p = z->out; - - // compute color-based transparency, assuming we've - // already got 255 as the alpha value in the output - STBI_ASSERT(out_n == 2 || out_n == 4); - - if (out_n == 2) { - for (i=0; i < pixel_count; ++i) { - p[1] = (p[0] == tc[0] ? 0 : 255); - p += 2; - } - } else { - for (i=0; i < pixel_count; ++i) { - if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) - p[3] = 0; - p += 4; - } - } - return 1; -} - -static int stbi__compute_transparency16(stbi__png *z, stbi__uint16 tc[3], int out_n) -{ - stbi__context *s = z->s; - stbi__uint32 i, pixel_count = s->img_x * s->img_y; - stbi__uint16 *p = (stbi__uint16*) z->out; - - // compute color-based transparency, assuming we've - // already got 65535 as the alpha value in the output - STBI_ASSERT(out_n == 2 || out_n == 4); - - if (out_n == 2) { - for (i = 0; i < pixel_count; ++i) { - p[1] = (p[0] == tc[0] ? 0 : 65535); - p += 2; - } - } else { - for (i = 0; i < pixel_count; ++i) { - if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) - p[3] = 0; - p += 4; - } - } - return 1; -} - -static int stbi__expand_png_palette(stbi__png *a, stbi_uc *palette, int len, int pal_img_n) -{ - stbi__uint32 i, pixel_count = a->s->img_x * a->s->img_y; - stbi_uc *p, *temp_out, *orig = a->out; - - p = (stbi_uc *) stbi__malloc_mad2(pixel_count, pal_img_n, 0); - if (p == NULL) return stbi__err("outofmem", "Out of memory"); - - // between here and free(out) below, exitting would leak - temp_out = p; - - if (pal_img_n == 3) { - for (i=0; i < pixel_count; ++i) { - int n = orig[i]*4; - p[0] = palette[n ]; - p[1] = palette[n+1]; - p[2] = palette[n+2]; - p += 3; - } - } else { - for (i=0; i < pixel_count; ++i) { - int n = orig[i]*4; - p[0] = palette[n ]; - p[1] = palette[n+1]; - p[2] = palette[n+2]; - p[3] = palette[n+3]; - p += 4; - } - } - STBI_FREE(a->out); - a->out = temp_out; - - STBI_NOTUSED(len); - - return 1; -} - -static int stbi__unpremultiply_on_load_global = 0; -static int stbi__de_iphone_flag_global = 0; - -STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply) -{ - stbi__unpremultiply_on_load_global = flag_true_if_should_unpremultiply; -} - -STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert) -{ - stbi__de_iphone_flag_global = flag_true_if_should_convert; -} - -#ifndef STBI_THREAD_LOCAL -#define stbi__unpremultiply_on_load stbi__unpremultiply_on_load_global -#define stbi__de_iphone_flag stbi__de_iphone_flag_global -#else -static STBI_THREAD_LOCAL int stbi__unpremultiply_on_load_local, stbi__unpremultiply_on_load_set; -static STBI_THREAD_LOCAL int stbi__de_iphone_flag_local, stbi__de_iphone_flag_set; - -STBIDEF void stbi_set_unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply) -{ - stbi__unpremultiply_on_load_local = flag_true_if_should_unpremultiply; - stbi__unpremultiply_on_load_set = 1; -} - -STBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert) -{ - stbi__de_iphone_flag_local = flag_true_if_should_convert; - stbi__de_iphone_flag_set = 1; -} - -#define stbi__unpremultiply_on_load (stbi__unpremultiply_on_load_set \ - ? stbi__unpremultiply_on_load_local \ - : stbi__unpremultiply_on_load_global) -#define stbi__de_iphone_flag (stbi__de_iphone_flag_set \ - ? stbi__de_iphone_flag_local \ - : stbi__de_iphone_flag_global) -#endif // STBI_THREAD_LOCAL - -static void stbi__de_iphone(stbi__png *z) -{ - stbi__context *s = z->s; - stbi__uint32 i, pixel_count = s->img_x * s->img_y; - stbi_uc *p = z->out; - - if (s->img_out_n == 3) { // convert bgr to rgb - for (i=0; i < pixel_count; ++i) { - stbi_uc t = p[0]; - p[0] = p[2]; - p[2] = t; - p += 3; - } - } else { - STBI_ASSERT(s->img_out_n == 4); - if (stbi__unpremultiply_on_load) { - // convert bgr to rgb and unpremultiply - for (i=0; i < pixel_count; ++i) { - stbi_uc a = p[3]; - stbi_uc t = p[0]; - if (a) { - stbi_uc half = a / 2; - p[0] = (p[2] * 255 + half) / a; - p[1] = (p[1] * 255 + half) / a; - p[2] = ( t * 255 + half) / a; - } else { - p[0] = p[2]; - p[2] = t; - } - p += 4; - } - } else { - // convert bgr to rgb - for (i=0; i < pixel_count; ++i) { - stbi_uc t = p[0]; - p[0] = p[2]; - p[2] = t; - p += 4; - } - } - } -} - -#define STBI__PNG_TYPE(a,b,c,d) (((unsigned) (a) << 24) + ((unsigned) (b) << 16) + ((unsigned) (c) << 8) + (unsigned) (d)) - -static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp) -{ - stbi_uc palette[1024], pal_img_n=0; - stbi_uc has_trans=0, tc[3]={0}; - stbi__uint16 tc16[3]; - stbi__uint32 ioff=0, idata_limit=0, i, pal_len=0; - int first=1,k,interlace=0, color=0, is_iphone=0; - stbi__context *s = z->s; - - z->expanded = NULL; - z->idata = NULL; - z->out = NULL; - - if (!stbi__check_png_header(s)) return 0; - - if (scan == STBI__SCAN_type) return 1; - - for (;;) { - stbi__pngchunk c = stbi__get_chunk_header(s); - switch (c.type) { - case STBI__PNG_TYPE('C','g','B','I'): - is_iphone = 1; - stbi__skip(s, c.length); - break; - case STBI__PNG_TYPE('I','H','D','R'): { - int comp,filter; - if (!first) return stbi__err("multiple IHDR","Corrupt PNG"); - first = 0; - if (c.length != 13) return stbi__err("bad IHDR len","Corrupt PNG"); - s->img_x = stbi__get32be(s); - s->img_y = stbi__get32be(s); - if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); - if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); - z->depth = stbi__get8(s); if (z->depth != 1 && z->depth != 2 && z->depth != 4 && z->depth != 8 && z->depth != 16) return stbi__err("1/2/4/8/16-bit only","PNG not supported: 1/2/4/8/16-bit only"); - color = stbi__get8(s); if (color > 6) return stbi__err("bad ctype","Corrupt PNG"); - if (color == 3 && z->depth == 16) return stbi__err("bad ctype","Corrupt PNG"); - if (color == 3) pal_img_n = 3; else if (color & 1) return stbi__err("bad ctype","Corrupt PNG"); - comp = stbi__get8(s); if (comp) return stbi__err("bad comp method","Corrupt PNG"); - filter= stbi__get8(s); if (filter) return stbi__err("bad filter method","Corrupt PNG"); - interlace = stbi__get8(s); if (interlace>1) return stbi__err("bad interlace method","Corrupt PNG"); - if (!s->img_x || !s->img_y) return stbi__err("0-pixel image","Corrupt PNG"); - if (!pal_img_n) { - s->img_n = (color & 2 ? 3 : 1) + (color & 4 ? 1 : 0); - if ((1 << 30) / s->img_x / s->img_n < s->img_y) return stbi__err("too large", "Image too large to decode"); - } else { - // if paletted, then pal_n is our final components, and - // img_n is # components to decompress/filter. - s->img_n = 1; - if ((1 << 30) / s->img_x / 4 < s->img_y) return stbi__err("too large","Corrupt PNG"); - } - // even with SCAN_header, have to scan to see if we have a tRNS - break; - } - - case STBI__PNG_TYPE('P','L','T','E'): { - if (first) return stbi__err("first not IHDR", "Corrupt PNG"); - if (c.length > 256*3) return stbi__err("invalid PLTE","Corrupt PNG"); - pal_len = c.length / 3; - if (pal_len * 3 != c.length) return stbi__err("invalid PLTE","Corrupt PNG"); - for (i=0; i < pal_len; ++i) { - palette[i*4+0] = stbi__get8(s); - palette[i*4+1] = stbi__get8(s); - palette[i*4+2] = stbi__get8(s); - palette[i*4+3] = 255; - } - break; - } - - case STBI__PNG_TYPE('t','R','N','S'): { - if (first) return stbi__err("first not IHDR", "Corrupt PNG"); - if (z->idata) return stbi__err("tRNS after IDAT","Corrupt PNG"); - if (pal_img_n) { - if (scan == STBI__SCAN_header) { s->img_n = 4; return 1; } - if (pal_len == 0) return stbi__err("tRNS before PLTE","Corrupt PNG"); - if (c.length > pal_len) return stbi__err("bad tRNS len","Corrupt PNG"); - pal_img_n = 4; - for (i=0; i < c.length; ++i) - palette[i*4+3] = stbi__get8(s); - } else { - if (!(s->img_n & 1)) return stbi__err("tRNS with alpha","Corrupt PNG"); - if (c.length != (stbi__uint32) s->img_n*2) return stbi__err("bad tRNS len","Corrupt PNG"); - has_trans = 1; - // non-paletted with tRNS = constant alpha. if header-scanning, we can stop now. - if (scan == STBI__SCAN_header) { ++s->img_n; return 1; } - if (z->depth == 16) { - for (k = 0; k < s->img_n; ++k) tc16[k] = (stbi__uint16)stbi__get16be(s); // copy the values as-is - } else { - for (k = 0; k < s->img_n; ++k) tc[k] = (stbi_uc)(stbi__get16be(s) & 255) * stbi__depth_scale_table[z->depth]; // non 8-bit images will be larger - } - } - break; - } - - case STBI__PNG_TYPE('I','D','A','T'): { - if (first) return stbi__err("first not IHDR", "Corrupt PNG"); - if (pal_img_n && !pal_len) return stbi__err("no PLTE","Corrupt PNG"); - if (scan == STBI__SCAN_header) { - // header scan definitely stops at first IDAT - if (pal_img_n) - s->img_n = pal_img_n; - return 1; - } - if (c.length > (1u << 30)) return stbi__err("IDAT size limit", "IDAT section larger than 2^30 bytes"); - if ((int)(ioff + c.length) < (int)ioff) return 0; - if (ioff + c.length > idata_limit) { - stbi__uint32 idata_limit_old = idata_limit; - stbi_uc *p; - if (idata_limit == 0) idata_limit = c.length > 4096 ? c.length : 4096; - while (ioff + c.length > idata_limit) - idata_limit *= 2; - STBI_NOTUSED(idata_limit_old); - p = (stbi_uc *) STBI_REALLOC_SIZED(z->idata, idata_limit_old, idata_limit); if (p == NULL) return stbi__err("outofmem", "Out of memory"); - z->idata = p; - } - if (!stbi__getn(s, z->idata+ioff,c.length)) return stbi__err("outofdata","Corrupt PNG"); - ioff += c.length; - break; - } - - case STBI__PNG_TYPE('I','E','N','D'): { - stbi__uint32 raw_len, bpl; - if (first) return stbi__err("first not IHDR", "Corrupt PNG"); - if (scan != STBI__SCAN_load) return 1; - if (z->idata == NULL) return stbi__err("no IDAT","Corrupt PNG"); - // initial guess for decoded data size to avoid unnecessary reallocs - bpl = (s->img_x * z->depth + 7) / 8; // bytes per line, per component - raw_len = bpl * s->img_y * s->img_n /* pixels */ + s->img_y /* filter mode per row */; - z->expanded = (stbi_uc *) stbi_zlib_decode_malloc_guesssize_headerflag((char *) z->idata, ioff, raw_len, (int *) &raw_len, !is_iphone); - if (z->expanded == NULL) return 0; // zlib should set error - STBI_FREE(z->idata); z->idata = NULL; - if ((req_comp == s->img_n+1 && req_comp != 3 && !pal_img_n) || has_trans) - s->img_out_n = s->img_n+1; - else - s->img_out_n = s->img_n; - if (!stbi__create_png_image(z, z->expanded, raw_len, s->img_out_n, z->depth, color, interlace)) return 0; - if (has_trans) { - if (z->depth == 16) { - if (!stbi__compute_transparency16(z, tc16, s->img_out_n)) return 0; - } else { - if (!stbi__compute_transparency(z, tc, s->img_out_n)) return 0; - } - } - if (is_iphone && stbi__de_iphone_flag && s->img_out_n > 2) - stbi__de_iphone(z); - if (pal_img_n) { - // pal_img_n == 3 or 4 - s->img_n = pal_img_n; // record the actual colors we had - s->img_out_n = pal_img_n; - if (req_comp >= 3) s->img_out_n = req_comp; - if (!stbi__expand_png_palette(z, palette, pal_len, s->img_out_n)) - return 0; - } else if (has_trans) { - // non-paletted image with tRNS -> source image has (constant) alpha - ++s->img_n; - } - STBI_FREE(z->expanded); z->expanded = NULL; - // end of PNG chunk, read and skip CRC - stbi__get32be(s); - return 1; - } - - default: - // if critical, fail - if (first) return stbi__err("first not IHDR", "Corrupt PNG"); - if ((c.type & (1 << 29)) == 0) { - #ifndef STBI_NO_FAILURE_STRINGS - // not threadsafe - static char invalid_chunk[] = "XXXX PNG chunk not known"; - invalid_chunk[0] = STBI__BYTECAST(c.type >> 24); - invalid_chunk[1] = STBI__BYTECAST(c.type >> 16); - invalid_chunk[2] = STBI__BYTECAST(c.type >> 8); - invalid_chunk[3] = STBI__BYTECAST(c.type >> 0); - #endif - return stbi__err(invalid_chunk, "PNG not supported: unknown PNG chunk type"); - } - stbi__skip(s, c.length); - break; - } - // end of PNG chunk, read and skip CRC - stbi__get32be(s); - } -} - -static void *stbi__do_png(stbi__png *p, int *x, int *y, int *n, int req_comp, stbi__result_info *ri) -{ - void *result=NULL; - if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error"); - if (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) { - if (p->depth <= 8) - ri->bits_per_channel = 8; - else if (p->depth == 16) - ri->bits_per_channel = 16; - else - return stbi__errpuc("bad bits_per_channel", "PNG not supported: unsupported color depth"); - result = p->out; - p->out = NULL; - if (req_comp && req_comp != p->s->img_out_n) { - if (ri->bits_per_channel == 8) - result = stbi__convert_format((unsigned char *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); - else - result = stbi__convert_format16((stbi__uint16 *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); - p->s->img_out_n = req_comp; - if (result == NULL) return result; - } - *x = p->s->img_x; - *y = p->s->img_y; - if (n) *n = p->s->img_n; - } - STBI_FREE(p->out); p->out = NULL; - STBI_FREE(p->expanded); p->expanded = NULL; - STBI_FREE(p->idata); p->idata = NULL; - - return result; -} - -static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) -{ - stbi__png p; - p.s = s; - return stbi__do_png(&p, x,y,comp,req_comp, ri); -} - -static int stbi__png_test(stbi__context *s) -{ - int r; - r = stbi__check_png_header(s); - stbi__rewind(s); - return r; -} - -static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp) -{ - if (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) { - stbi__rewind( p->s ); - return 0; - } - if (x) *x = p->s->img_x; - if (y) *y = p->s->img_y; - if (comp) *comp = p->s->img_n; - return 1; -} - -static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp) -{ - stbi__png p; - p.s = s; - return stbi__png_info_raw(&p, x, y, comp); -} - -static int stbi__png_is16(stbi__context *s) -{ - stbi__png p; - p.s = s; - if (!stbi__png_info_raw(&p, NULL, NULL, NULL)) - return 0; - if (p.depth != 16) { - stbi__rewind(p.s); - return 0; - } - return 1; -} -#endif - -// Microsoft/Windows BMP image - -#ifndef STBI_NO_BMP -static int stbi__bmp_test_raw(stbi__context *s) -{ - int r; - int sz; - if (stbi__get8(s) != 'B') return 0; - if (stbi__get8(s) != 'M') return 0; - stbi__get32le(s); // discard filesize - stbi__get16le(s); // discard reserved - stbi__get16le(s); // discard reserved - stbi__get32le(s); // discard data offset - sz = stbi__get32le(s); - r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124); - return r; -} - -static int stbi__bmp_test(stbi__context *s) -{ - int r = stbi__bmp_test_raw(s); - stbi__rewind(s); - return r; -} - - -// returns 0..31 for the highest set bit -static int stbi__high_bit(unsigned int z) -{ - int n=0; - if (z == 0) return -1; - if (z >= 0x10000) { n += 16; z >>= 16; } - if (z >= 0x00100) { n += 8; z >>= 8; } - if (z >= 0x00010) { n += 4; z >>= 4; } - if (z >= 0x00004) { n += 2; z >>= 2; } - if (z >= 0x00002) { n += 1;/* >>= 1;*/ } - return n; -} - -static int stbi__bitcount(unsigned int a) -{ - a = (a & 0x55555555) + ((a >> 1) & 0x55555555); // max 2 - a = (a & 0x33333333) + ((a >> 2) & 0x33333333); // max 4 - a = (a + (a >> 4)) & 0x0f0f0f0f; // max 8 per 4, now 8 bits - a = (a + (a >> 8)); // max 16 per 8 bits - a = (a + (a >> 16)); // max 32 per 8 bits - return a & 0xff; -} - -// extract an arbitrarily-aligned N-bit value (N=bits) -// from v, and then make it 8-bits long and fractionally -// extend it to full full range. -static int stbi__shiftsigned(unsigned int v, int shift, int bits) -{ - static unsigned int mul_table[9] = { - 0, - 0xff/*0b11111111*/, 0x55/*0b01010101*/, 0x49/*0b01001001*/, 0x11/*0b00010001*/, - 0x21/*0b00100001*/, 0x41/*0b01000001*/, 0x81/*0b10000001*/, 0x01/*0b00000001*/, - }; - static unsigned int shift_table[9] = { - 0, 0,0,1,0,2,4,6,0, - }; - if (shift < 0) - v <<= -shift; - else - v >>= shift; - STBI_ASSERT(v < 256); - v >>= (8-bits); - STBI_ASSERT(bits >= 0 && bits <= 8); - return (int) ((unsigned) v * mul_table[bits]) >> shift_table[bits]; -} - -typedef struct -{ - int bpp, offset, hsz; - unsigned int mr,mg,mb,ma, all_a; - int extra_read; -} stbi__bmp_data; - -static int stbi__bmp_set_mask_defaults(stbi__bmp_data *info, int compress) -{ - // BI_BITFIELDS specifies masks explicitly, don't override - if (compress == 3) - return 1; - - if (compress == 0) { - if (info->bpp == 16) { - info->mr = 31u << 10; - info->mg = 31u << 5; - info->mb = 31u << 0; - } else if (info->bpp == 32) { - info->mr = 0xffu << 16; - info->mg = 0xffu << 8; - info->mb = 0xffu << 0; - info->ma = 0xffu << 24; - info->all_a = 0; // if all_a is 0 at end, then we loaded alpha channel but it was all 0 - } else { - // otherwise, use defaults, which is all-0 - info->mr = info->mg = info->mb = info->ma = 0; - } - return 1; - } - return 0; // error -} - -static void *stbi__bmp_parse_header(stbi__context *s, stbi__bmp_data *info) -{ - int hsz; - if (stbi__get8(s) != 'B' || stbi__get8(s) != 'M') return stbi__errpuc("not BMP", "Corrupt BMP"); - stbi__get32le(s); // discard filesize - stbi__get16le(s); // discard reserved - stbi__get16le(s); // discard reserved - info->offset = stbi__get32le(s); - info->hsz = hsz = stbi__get32le(s); - info->mr = info->mg = info->mb = info->ma = 0; - info->extra_read = 14; - - if (info->offset < 0) return stbi__errpuc("bad BMP", "bad BMP"); - - if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124) return stbi__errpuc("unknown BMP", "BMP type not supported: unknown"); - if (hsz == 12) { - s->img_x = stbi__get16le(s); - s->img_y = stbi__get16le(s); - } else { - s->img_x = stbi__get32le(s); - s->img_y = stbi__get32le(s); - } - if (stbi__get16le(s) != 1) return stbi__errpuc("bad BMP", "bad BMP"); - info->bpp = stbi__get16le(s); - if (hsz != 12) { - int compress = stbi__get32le(s); - if (compress == 1 || compress == 2) return stbi__errpuc("BMP RLE", "BMP type not supported: RLE"); - if (compress >= 4) return stbi__errpuc("BMP JPEG/PNG", "BMP type not supported: unsupported compression"); // this includes PNG/JPEG modes - if (compress == 3 && info->bpp != 16 && info->bpp != 32) return stbi__errpuc("bad BMP", "bad BMP"); // bitfields requires 16 or 32 bits/pixel - stbi__get32le(s); // discard sizeof - stbi__get32le(s); // discard hres - stbi__get32le(s); // discard vres - stbi__get32le(s); // discard colorsused - stbi__get32le(s); // discard max important - if (hsz == 40 || hsz == 56) { - if (hsz == 56) { - stbi__get32le(s); - stbi__get32le(s); - stbi__get32le(s); - stbi__get32le(s); - } - if (info->bpp == 16 || info->bpp == 32) { - if (compress == 0) { - stbi__bmp_set_mask_defaults(info, compress); - } else if (compress == 3) { - info->mr = stbi__get32le(s); - info->mg = stbi__get32le(s); - info->mb = stbi__get32le(s); - info->extra_read += 12; - // not documented, but generated by photoshop and handled by mspaint - if (info->mr == info->mg && info->mg == info->mb) { - // ?!?!? - return stbi__errpuc("bad BMP", "bad BMP"); - } - } else - return stbi__errpuc("bad BMP", "bad BMP"); - } - } else { - // V4/V5 header - int i; - if (hsz != 108 && hsz != 124) - return stbi__errpuc("bad BMP", "bad BMP"); - info->mr = stbi__get32le(s); - info->mg = stbi__get32le(s); - info->mb = stbi__get32le(s); - info->ma = stbi__get32le(s); - if (compress != 3) // override mr/mg/mb unless in BI_BITFIELDS mode, as per docs - stbi__bmp_set_mask_defaults(info, compress); - stbi__get32le(s); // discard color space - for (i=0; i < 12; ++i) - stbi__get32le(s); // discard color space parameters - if (hsz == 124) { - stbi__get32le(s); // discard rendering intent - stbi__get32le(s); // discard offset of profile data - stbi__get32le(s); // discard size of profile data - stbi__get32le(s); // discard reserved - } - } - } - return (void *) 1; -} - - -static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) -{ - stbi_uc *out; - unsigned int mr=0,mg=0,mb=0,ma=0, all_a; - stbi_uc pal[256][4]; - int psize=0,i,j,width; - int flip_vertically, pad, target; - stbi__bmp_data info; - STBI_NOTUSED(ri); - - info.all_a = 255; - if (stbi__bmp_parse_header(s, &info) == NULL) - return NULL; // error code already set - - flip_vertically = ((int) s->img_y) > 0; - s->img_y = abs((int) s->img_y); - - if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - - mr = info.mr; - mg = info.mg; - mb = info.mb; - ma = info.ma; - all_a = info.all_a; - - if (info.hsz == 12) { - if (info.bpp < 24) - psize = (info.offset - info.extra_read - 24) / 3; - } else { - if (info.bpp < 16) - psize = (info.offset - info.extra_read - info.hsz) >> 2; - } - if (psize == 0) { - // accept some number of extra bytes after the header, but if the offset points either to before - // the header ends or implies a large amount of extra data, reject the file as malformed - int bytes_read_so_far = s->callback_already_read + (int)(s->img_buffer - s->img_buffer_original); - int header_limit = 1024; // max we actually read is below 256 bytes currently. - int extra_data_limit = 256*4; // what ordinarily goes here is a palette; 256 entries*4 bytes is its max size. - if (bytes_read_so_far <= 0 || bytes_read_so_far > header_limit) { - return stbi__errpuc("bad header", "Corrupt BMP"); - } - // we established that bytes_read_so_far is positive and sensible. - // the first half of this test rejects offsets that are either too small positives, or - // negative, and guarantees that info.offset >= bytes_read_so_far > 0. this in turn - // ensures the number computed in the second half of the test can't overflow. - if (info.offset < bytes_read_so_far || info.offset - bytes_read_so_far > extra_data_limit) { - return stbi__errpuc("bad offset", "Corrupt BMP"); - } else { - stbi__skip(s, info.offset - bytes_read_so_far); - } - } - - if (info.bpp == 24 && ma == 0xff000000) - s->img_n = 3; - else - s->img_n = ma ? 4 : 3; - if (req_comp && req_comp >= 3) // we can directly decode 3 or 4 - target = req_comp; - else - target = s->img_n; // if they want monochrome, we'll post-convert - - // sanity-check size - if (!stbi__mad3sizes_valid(target, s->img_x, s->img_y, 0)) - return stbi__errpuc("too large", "Corrupt BMP"); - - out = (stbi_uc *) stbi__malloc_mad3(target, s->img_x, s->img_y, 0); - if (!out) return stbi__errpuc("outofmem", "Out of memory"); - if (info.bpp < 16) { - int z=0; - if (psize == 0 || psize > 256) { STBI_FREE(out); return stbi__errpuc("invalid", "Corrupt BMP"); } - for (i=0; i < psize; ++i) { - pal[i][2] = stbi__get8(s); - pal[i][1] = stbi__get8(s); - pal[i][0] = stbi__get8(s); - if (info.hsz != 12) stbi__get8(s); - pal[i][3] = 255; - } - stbi__skip(s, info.offset - info.extra_read - info.hsz - psize * (info.hsz == 12 ? 3 : 4)); - if (info.bpp == 1) width = (s->img_x + 7) >> 3; - else if (info.bpp == 4) width = (s->img_x + 1) >> 1; - else if (info.bpp == 8) width = s->img_x; - else { STBI_FREE(out); return stbi__errpuc("bad bpp", "Corrupt BMP"); } - pad = (-width)&3; - if (info.bpp == 1) { - for (j=0; j < (int) s->img_y; ++j) { - int bit_offset = 7, v = stbi__get8(s); - for (i=0; i < (int) s->img_x; ++i) { - int color = (v>>bit_offset)&0x1; - out[z++] = pal[color][0]; - out[z++] = pal[color][1]; - out[z++] = pal[color][2]; - if (target == 4) out[z++] = 255; - if (i+1 == (int) s->img_x) break; - if((--bit_offset) < 0) { - bit_offset = 7; - v = stbi__get8(s); - } - } - stbi__skip(s, pad); - } - } else { - for (j=0; j < (int) s->img_y; ++j) { - for (i=0; i < (int) s->img_x; i += 2) { - int v=stbi__get8(s),v2=0; - if (info.bpp == 4) { - v2 = v & 15; - v >>= 4; - } - out[z++] = pal[v][0]; - out[z++] = pal[v][1]; - out[z++] = pal[v][2]; - if (target == 4) out[z++] = 255; - if (i+1 == (int) s->img_x) break; - v = (info.bpp == 8) ? stbi__get8(s) : v2; - out[z++] = pal[v][0]; - out[z++] = pal[v][1]; - out[z++] = pal[v][2]; - if (target == 4) out[z++] = 255; - } - stbi__skip(s, pad); - } - } - } else { - int rshift=0,gshift=0,bshift=0,ashift=0,rcount=0,gcount=0,bcount=0,acount=0; - int z = 0; - int easy=0; - stbi__skip(s, info.offset - info.extra_read - info.hsz); - if (info.bpp == 24) width = 3 * s->img_x; - else if (info.bpp == 16) width = 2*s->img_x; - else /* bpp = 32 and pad = 0 */ width=0; - pad = (-width) & 3; - if (info.bpp == 24) { - easy = 1; - } else if (info.bpp == 32) { - if (mb == 0xff && mg == 0xff00 && mr == 0x00ff0000 && ma == 0xff000000) - easy = 2; - } - if (!easy) { - if (!mr || !mg || !mb) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); } - // right shift amt to put high bit in position #7 - rshift = stbi__high_bit(mr)-7; rcount = stbi__bitcount(mr); - gshift = stbi__high_bit(mg)-7; gcount = stbi__bitcount(mg); - bshift = stbi__high_bit(mb)-7; bcount = stbi__bitcount(mb); - ashift = stbi__high_bit(ma)-7; acount = stbi__bitcount(ma); - if (rcount > 8 || gcount > 8 || bcount > 8 || acount > 8) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); } - } - for (j=0; j < (int) s->img_y; ++j) { - if (easy) { - for (i=0; i < (int) s->img_x; ++i) { - unsigned char a; - out[z+2] = stbi__get8(s); - out[z+1] = stbi__get8(s); - out[z+0] = stbi__get8(s); - z += 3; - a = (easy == 2 ? stbi__get8(s) : 255); - all_a |= a; - if (target == 4) out[z++] = a; - } - } else { - int bpp = info.bpp; - for (i=0; i < (int) s->img_x; ++i) { - stbi__uint32 v = (bpp == 16 ? (stbi__uint32) stbi__get16le(s) : stbi__get32le(s)); - unsigned int a; - out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mr, rshift, rcount)); - out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mg, gshift, gcount)); - out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mb, bshift, bcount)); - a = (ma ? stbi__shiftsigned(v & ma, ashift, acount) : 255); - all_a |= a; - if (target == 4) out[z++] = STBI__BYTECAST(a); - } - } - stbi__skip(s, pad); - } - } - - // if alpha channel is all 0s, replace with all 255s - if (target == 4 && all_a == 0) - for (i=4*s->img_x*s->img_y-1; i >= 0; i -= 4) - out[i] = 255; - - if (flip_vertically) { - stbi_uc t; - for (j=0; j < (int) s->img_y>>1; ++j) { - stbi_uc *p1 = out + j *s->img_x*target; - stbi_uc *p2 = out + (s->img_y-1-j)*s->img_x*target; - for (i=0; i < (int) s->img_x*target; ++i) { - t = p1[i]; p1[i] = p2[i]; p2[i] = t; - } - } - } - - if (req_comp && req_comp != target) { - out = stbi__convert_format(out, target, req_comp, s->img_x, s->img_y); - if (out == NULL) return out; // stbi__convert_format frees input on failure - } - - *x = s->img_x; - *y = s->img_y; - if (comp) *comp = s->img_n; - return out; -} -#endif - -// Targa Truevision - TGA -// by Jonathan Dummer -#ifndef STBI_NO_TGA -// returns STBI_rgb or whatever, 0 on error -static int stbi__tga_get_comp(int bits_per_pixel, int is_grey, int* is_rgb16) -{ - // only RGB or RGBA (incl. 16bit) or grey allowed - if (is_rgb16) *is_rgb16 = 0; - switch(bits_per_pixel) { - case 8: return STBI_grey; - case 16: if(is_grey) return STBI_grey_alpha; - // fallthrough - case 15: if(is_rgb16) *is_rgb16 = 1; - return STBI_rgb; - case 24: // fallthrough - case 32: return bits_per_pixel/8; - default: return 0; - } -} - -static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp) -{ - int tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp; - int sz, tga_colormap_type; - stbi__get8(s); // discard Offset - tga_colormap_type = stbi__get8(s); // colormap type - if( tga_colormap_type > 1 ) { - stbi__rewind(s); - return 0; // only RGB or indexed allowed - } - tga_image_type = stbi__get8(s); // image type - if ( tga_colormap_type == 1 ) { // colormapped (paletted) image - if (tga_image_type != 1 && tga_image_type != 9) { - stbi__rewind(s); - return 0; - } - stbi__skip(s,4); // skip index of first colormap entry and number of entries - sz = stbi__get8(s); // check bits per palette color entry - if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) { - stbi__rewind(s); - return 0; - } - stbi__skip(s,4); // skip image x and y origin - tga_colormap_bpp = sz; - } else { // "normal" image w/o colormap - only RGB or grey allowed, +/- RLE - if ( (tga_image_type != 2) && (tga_image_type != 3) && (tga_image_type != 10) && (tga_image_type != 11) ) { - stbi__rewind(s); - return 0; // only RGB or grey allowed, +/- RLE - } - stbi__skip(s,9); // skip colormap specification and image x/y origin - tga_colormap_bpp = 0; - } - tga_w = stbi__get16le(s); - if( tga_w < 1 ) { - stbi__rewind(s); - return 0; // test width - } - tga_h = stbi__get16le(s); - if( tga_h < 1 ) { - stbi__rewind(s); - return 0; // test height - } - tga_bits_per_pixel = stbi__get8(s); // bits per pixel - stbi__get8(s); // ignore alpha bits - if (tga_colormap_bpp != 0) { - if((tga_bits_per_pixel != 8) && (tga_bits_per_pixel != 16)) { - // when using a colormap, tga_bits_per_pixel is the size of the indexes - // I don't think anything but 8 or 16bit indexes makes sense - stbi__rewind(s); - return 0; - } - tga_comp = stbi__tga_get_comp(tga_colormap_bpp, 0, NULL); - } else { - tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL); - } - if(!tga_comp) { - stbi__rewind(s); - return 0; - } - if (x) *x = tga_w; - if (y) *y = tga_h; - if (comp) *comp = tga_comp; - return 1; // seems to have passed everything -} - -static int stbi__tga_test(stbi__context *s) -{ - int res = 0; - int sz, tga_color_type; - stbi__get8(s); // discard Offset - tga_color_type = stbi__get8(s); // color type - if ( tga_color_type > 1 ) goto errorEnd; // only RGB or indexed allowed - sz = stbi__get8(s); // image type - if ( tga_color_type == 1 ) { // colormapped (paletted) image - if (sz != 1 && sz != 9) goto errorEnd; // colortype 1 demands image type 1 or 9 - stbi__skip(s,4); // skip index of first colormap entry and number of entries - sz = stbi__get8(s); // check bits per palette color entry - if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd; - stbi__skip(s,4); // skip image x and y origin - } else { // "normal" image w/o colormap - if ( (sz != 2) && (sz != 3) && (sz != 10) && (sz != 11) ) goto errorEnd; // only RGB or grey allowed, +/- RLE - stbi__skip(s,9); // skip colormap specification and image x/y origin - } - if ( stbi__get16le(s) < 1 ) goto errorEnd; // test width - if ( stbi__get16le(s) < 1 ) goto errorEnd; // test height - sz = stbi__get8(s); // bits per pixel - if ( (tga_color_type == 1) && (sz != 8) && (sz != 16) ) goto errorEnd; // for colormapped images, bpp is size of an index - if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd; - - res = 1; // if we got this far, everything's good and we can return 1 instead of 0 - -errorEnd: - stbi__rewind(s); - return res; -} - -// read 16bit value and convert to 24bit RGB -static void stbi__tga_read_rgb16(stbi__context *s, stbi_uc* out) -{ - stbi__uint16 px = (stbi__uint16)stbi__get16le(s); - stbi__uint16 fiveBitMask = 31; - // we have 3 channels with 5bits each - int r = (px >> 10) & fiveBitMask; - int g = (px >> 5) & fiveBitMask; - int b = px & fiveBitMask; - // Note that this saves the data in RGB(A) order, so it doesn't need to be swapped later - out[0] = (stbi_uc)((r * 255)/31); - out[1] = (stbi_uc)((g * 255)/31); - out[2] = (stbi_uc)((b * 255)/31); - - // some people claim that the most significant bit might be used for alpha - // (possibly if an alpha-bit is set in the "image descriptor byte") - // but that only made 16bit test images completely translucent.. - // so let's treat all 15 and 16bit TGAs as RGB with no alpha. -} - -static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) -{ - // read in the TGA header stuff - int tga_offset = stbi__get8(s); - int tga_indexed = stbi__get8(s); - int tga_image_type = stbi__get8(s); - int tga_is_RLE = 0; - int tga_palette_start = stbi__get16le(s); - int tga_palette_len = stbi__get16le(s); - int tga_palette_bits = stbi__get8(s); - int tga_x_origin = stbi__get16le(s); - int tga_y_origin = stbi__get16le(s); - int tga_width = stbi__get16le(s); - int tga_height = stbi__get16le(s); - int tga_bits_per_pixel = stbi__get8(s); - int tga_comp, tga_rgb16=0; - int tga_inverted = stbi__get8(s); - // int tga_alpha_bits = tga_inverted & 15; // the 4 lowest bits - unused (useless?) - // image data - unsigned char *tga_data; - unsigned char *tga_palette = NULL; - int i, j; - unsigned char raw_data[4] = {0}; - int RLE_count = 0; - int RLE_repeating = 0; - int read_next_pixel = 1; - STBI_NOTUSED(ri); - STBI_NOTUSED(tga_x_origin); // @TODO - STBI_NOTUSED(tga_y_origin); // @TODO - - if (tga_height > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - if (tga_width > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - - // do a tiny bit of precessing - if ( tga_image_type >= 8 ) - { - tga_image_type -= 8; - tga_is_RLE = 1; - } - tga_inverted = 1 - ((tga_inverted >> 5) & 1); - - // If I'm paletted, then I'll use the number of bits from the palette - if ( tga_indexed ) tga_comp = stbi__tga_get_comp(tga_palette_bits, 0, &tga_rgb16); - else tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &tga_rgb16); - - if(!tga_comp) // shouldn't really happen, stbi__tga_test() should have ensured basic consistency - return stbi__errpuc("bad format", "Can't find out TGA pixelformat"); - - // tga info - *x = tga_width; - *y = tga_height; - if (comp) *comp = tga_comp; - - if (!stbi__mad3sizes_valid(tga_width, tga_height, tga_comp, 0)) - return stbi__errpuc("too large", "Corrupt TGA"); - - tga_data = (unsigned char*)stbi__malloc_mad3(tga_width, tga_height, tga_comp, 0); - if (!tga_data) return stbi__errpuc("outofmem", "Out of memory"); - - // skip to the data's starting position (offset usually = 0) - stbi__skip(s, tga_offset ); - - if ( !tga_indexed && !tga_is_RLE && !tga_rgb16 ) { - for (i=0; i < tga_height; ++i) { - int row = tga_inverted ? tga_height -i - 1 : i; - stbi_uc *tga_row = tga_data + row*tga_width*tga_comp; - stbi__getn(s, tga_row, tga_width * tga_comp); - } - } else { - // do I need to load a palette? - if ( tga_indexed) - { - if (tga_palette_len == 0) { /* you have to have at least one entry! */ - STBI_FREE(tga_data); - return stbi__errpuc("bad palette", "Corrupt TGA"); - } - - // any data to skip? (offset usually = 0) - stbi__skip(s, tga_palette_start ); - // load the palette - tga_palette = (unsigned char*)stbi__malloc_mad2(tga_palette_len, tga_comp, 0); - if (!tga_palette) { - STBI_FREE(tga_data); - return stbi__errpuc("outofmem", "Out of memory"); - } - if (tga_rgb16) { - stbi_uc *pal_entry = tga_palette; - STBI_ASSERT(tga_comp == STBI_rgb); - for (i=0; i < tga_palette_len; ++i) { - stbi__tga_read_rgb16(s, pal_entry); - pal_entry += tga_comp; - } - } else if (!stbi__getn(s, tga_palette, tga_palette_len * tga_comp)) { - STBI_FREE(tga_data); - STBI_FREE(tga_palette); - return stbi__errpuc("bad palette", "Corrupt TGA"); - } - } - // load the data - for (i=0; i < tga_width * tga_height; ++i) - { - // if I'm in RLE mode, do I need to get a RLE stbi__pngchunk? - if ( tga_is_RLE ) - { - if ( RLE_count == 0 ) - { - // yep, get the next byte as a RLE command - int RLE_cmd = stbi__get8(s); - RLE_count = 1 + (RLE_cmd & 127); - RLE_repeating = RLE_cmd >> 7; - read_next_pixel = 1; - } else if ( !RLE_repeating ) - { - read_next_pixel = 1; - } - } else - { - read_next_pixel = 1; - } - // OK, if I need to read a pixel, do it now - if ( read_next_pixel ) - { - // load however much data we did have - if ( tga_indexed ) - { - // read in index, then perform the lookup - int pal_idx = (tga_bits_per_pixel == 8) ? stbi__get8(s) : stbi__get16le(s); - if ( pal_idx >= tga_palette_len ) { - // invalid index - pal_idx = 0; - } - pal_idx *= tga_comp; - for (j = 0; j < tga_comp; ++j) { - raw_data[j] = tga_palette[pal_idx+j]; - } - } else if(tga_rgb16) { - STBI_ASSERT(tga_comp == STBI_rgb); - stbi__tga_read_rgb16(s, raw_data); - } else { - // read in the data raw - for (j = 0; j < tga_comp; ++j) { - raw_data[j] = stbi__get8(s); - } - } - // clear the reading flag for the next pixel - read_next_pixel = 0; - } // end of reading a pixel - - // copy data - for (j = 0; j < tga_comp; ++j) - tga_data[i*tga_comp+j] = raw_data[j]; - - // in case we're in RLE mode, keep counting down - --RLE_count; - } - // do I need to invert the image? - if ( tga_inverted ) - { - for (j = 0; j*2 < tga_height; ++j) - { - int index1 = j * tga_width * tga_comp; - int index2 = (tga_height - 1 - j) * tga_width * tga_comp; - for (i = tga_width * tga_comp; i > 0; --i) - { - unsigned char temp = tga_data[index1]; - tga_data[index1] = tga_data[index2]; - tga_data[index2] = temp; - ++index1; - ++index2; - } - } - } - // clear my palette, if I had one - if ( tga_palette != NULL ) - { - STBI_FREE( tga_palette ); - } - } - - // swap RGB - if the source data was RGB16, it already is in the right order - if (tga_comp >= 3 && !tga_rgb16) - { - unsigned char* tga_pixel = tga_data; - for (i=0; i < tga_width * tga_height; ++i) - { - unsigned char temp = tga_pixel[0]; - tga_pixel[0] = tga_pixel[2]; - tga_pixel[2] = temp; - tga_pixel += tga_comp; - } - } - - // convert to target component count - if (req_comp && req_comp != tga_comp) - tga_data = stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height); - - // the things I do to get rid of an error message, and yet keep - // Microsoft's C compilers happy... [8^( - tga_palette_start = tga_palette_len = tga_palette_bits = - tga_x_origin = tga_y_origin = 0; - STBI_NOTUSED(tga_palette_start); - // OK, done - return tga_data; -} -#endif - -// ************************************************************************************************* -// Photoshop PSD loader -- PD by Thatcher Ulrich, integration by Nicolas Schulz, tweaked by STB - -#ifndef STBI_NO_PSD -static int stbi__psd_test(stbi__context *s) -{ - int r = (stbi__get32be(s) == 0x38425053); - stbi__rewind(s); - return r; -} - -static int stbi__psd_decode_rle(stbi__context *s, stbi_uc *p, int pixelCount) -{ - int count, nleft, len; - - count = 0; - while ((nleft = pixelCount - count) > 0) { - len = stbi__get8(s); - if (len == 128) { - // No-op. - } else if (len < 128) { - // Copy next len+1 bytes literally. - len++; - if (len > nleft) return 0; // corrupt data - count += len; - while (len) { - *p = stbi__get8(s); - p += 4; - len--; - } - } else if (len > 128) { - stbi_uc val; - // Next -len+1 bytes in the dest are replicated from next source byte. - // (Interpret len as a negative 8-bit int.) - len = 257 - len; - if (len > nleft) return 0; // corrupt data - val = stbi__get8(s); - count += len; - while (len) { - *p = val; - p += 4; - len--; - } - } - } - - return 1; -} - -static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) -{ - int pixelCount; - int channelCount, compression; - int channel, i; - int bitdepth; - int w,h; - stbi_uc *out; - STBI_NOTUSED(ri); - - // Check identifier - if (stbi__get32be(s) != 0x38425053) // "8BPS" - return stbi__errpuc("not PSD", "Corrupt PSD image"); - - // Check file type version. - if (stbi__get16be(s) != 1) - return stbi__errpuc("wrong version", "Unsupported version of PSD image"); - - // Skip 6 reserved bytes. - stbi__skip(s, 6 ); - - // Read the number of channels (R, G, B, A, etc). - channelCount = stbi__get16be(s); - if (channelCount < 0 || channelCount > 16) - return stbi__errpuc("wrong channel count", "Unsupported number of channels in PSD image"); - - // Read the rows and columns of the image. - h = stbi__get32be(s); - w = stbi__get32be(s); - - if (h > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - if (w > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - - // Make sure the depth is 8 bits. - bitdepth = stbi__get16be(s); - if (bitdepth != 8 && bitdepth != 16) - return stbi__errpuc("unsupported bit depth", "PSD bit depth is not 8 or 16 bit"); - - // Make sure the color mode is RGB. - // Valid options are: - // 0: Bitmap - // 1: Grayscale - // 2: Indexed color - // 3: RGB color - // 4: CMYK color - // 7: Multichannel - // 8: Duotone - // 9: Lab color - if (stbi__get16be(s) != 3) - return stbi__errpuc("wrong color format", "PSD is not in RGB color format"); - - // Skip the Mode Data. (It's the palette for indexed color; other info for other modes.) - stbi__skip(s,stbi__get32be(s) ); - - // Skip the image resources. (resolution, pen tool paths, etc) - stbi__skip(s, stbi__get32be(s) ); - - // Skip the reserved data. - stbi__skip(s, stbi__get32be(s) ); - - // Find out if the data is compressed. - // Known values: - // 0: no compression - // 1: RLE compressed - compression = stbi__get16be(s); - if (compression > 1) - return stbi__errpuc("bad compression", "PSD has an unknown compression format"); - - // Check size - if (!stbi__mad3sizes_valid(4, w, h, 0)) - return stbi__errpuc("too large", "Corrupt PSD"); - - // Create the destination image. - - if (!compression && bitdepth == 16 && bpc == 16) { - out = (stbi_uc *) stbi__malloc_mad3(8, w, h, 0); - ri->bits_per_channel = 16; - } else - out = (stbi_uc *) stbi__malloc(4 * w*h); - - if (!out) return stbi__errpuc("outofmem", "Out of memory"); - pixelCount = w*h; - - // Initialize the data to zero. - //memset( out, 0, pixelCount * 4 ); - - // Finally, the image data. - if (compression) { - // RLE as used by .PSD and .TIFF - // Loop until you get the number of unpacked bytes you are expecting: - // Read the next source byte into n. - // If n is between 0 and 127 inclusive, copy the next n+1 bytes literally. - // Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times. - // Else if n is 128, noop. - // Endloop - - // The RLE-compressed data is preceded by a 2-byte data count for each row in the data, - // which we're going to just skip. - stbi__skip(s, h * channelCount * 2 ); - - // Read the RLE data by channel. - for (channel = 0; channel < 4; channel++) { - stbi_uc *p; - - p = out+channel; - if (channel >= channelCount) { - // Fill this channel with default data. - for (i = 0; i < pixelCount; i++, p += 4) - *p = (channel == 3 ? 255 : 0); - } else { - // Read the RLE data. - if (!stbi__psd_decode_rle(s, p, pixelCount)) { - STBI_FREE(out); - return stbi__errpuc("corrupt", "bad RLE data"); - } - } - } - - } else { - // We're at the raw image data. It's each channel in order (Red, Green, Blue, Alpha, ...) - // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image. - - // Read the data by channel. - for (channel = 0; channel < 4; channel++) { - if (channel >= channelCount) { - // Fill this channel with default data. - if (bitdepth == 16 && bpc == 16) { - stbi__uint16 *q = ((stbi__uint16 *) out) + channel; - stbi__uint16 val = channel == 3 ? 65535 : 0; - for (i = 0; i < pixelCount; i++, q += 4) - *q = val; - } else { - stbi_uc *p = out+channel; - stbi_uc val = channel == 3 ? 255 : 0; - for (i = 0; i < pixelCount; i++, p += 4) - *p = val; - } - } else { - if (ri->bits_per_channel == 16) { // output bpc - stbi__uint16 *q = ((stbi__uint16 *) out) + channel; - for (i = 0; i < pixelCount; i++, q += 4) - *q = (stbi__uint16) stbi__get16be(s); - } else { - stbi_uc *p = out+channel; - if (bitdepth == 16) { // input bpc - for (i = 0; i < pixelCount; i++, p += 4) - *p = (stbi_uc) (stbi__get16be(s) >> 8); - } else { - for (i = 0; i < pixelCount; i++, p += 4) - *p = stbi__get8(s); - } - } - } - } - } - - // remove weird white matte from PSD - if (channelCount >= 4) { - if (ri->bits_per_channel == 16) { - for (i=0; i < w*h; ++i) { - stbi__uint16 *pixel = (stbi__uint16 *) out + 4*i; - if (pixel[3] != 0 && pixel[3] != 65535) { - float a = pixel[3] / 65535.0f; - float ra = 1.0f / a; - float inv_a = 65535.0f * (1 - ra); - pixel[0] = (stbi__uint16) (pixel[0]*ra + inv_a); - pixel[1] = (stbi__uint16) (pixel[1]*ra + inv_a); - pixel[2] = (stbi__uint16) (pixel[2]*ra + inv_a); - } - } - } else { - for (i=0; i < w*h; ++i) { - unsigned char *pixel = out + 4*i; - if (pixel[3] != 0 && pixel[3] != 255) { - float a = pixel[3] / 255.0f; - float ra = 1.0f / a; - float inv_a = 255.0f * (1 - ra); - pixel[0] = (unsigned char) (pixel[0]*ra + inv_a); - pixel[1] = (unsigned char) (pixel[1]*ra + inv_a); - pixel[2] = (unsigned char) (pixel[2]*ra + inv_a); - } - } - } - } - - // convert to desired output format - if (req_comp && req_comp != 4) { - if (ri->bits_per_channel == 16) - out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, 4, req_comp, w, h); - else - out = stbi__convert_format(out, 4, req_comp, w, h); - if (out == NULL) return out; // stbi__convert_format frees input on failure - } - - if (comp) *comp = 4; - *y = h; - *x = w; - - return out; -} -#endif - -// ************************************************************************************************* -// Softimage PIC loader -// by Tom Seddon -// -// See http://softimage.wiki.softimage.com/index.php/INFO:_PIC_file_format -// See http://ozviz.wasp.uwa.edu.au/~pbourke/dataformats/softimagepic/ - -#ifndef STBI_NO_PIC -static int stbi__pic_is4(stbi__context *s,const char *str) -{ - int i; - for (i=0; i<4; ++i) - if (stbi__get8(s) != (stbi_uc)str[i]) - return 0; - - return 1; -} - -static int stbi__pic_test_core(stbi__context *s) -{ - int i; - - if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")) - return 0; - - for(i=0;i<84;++i) - stbi__get8(s); - - if (!stbi__pic_is4(s,"PICT")) - return 0; - - return 1; -} - -typedef struct -{ - stbi_uc size,type,channel; -} stbi__pic_packet; - -static stbi_uc *stbi__readval(stbi__context *s, int channel, stbi_uc *dest) -{ - int mask=0x80, i; - - for (i=0; i<4; ++i, mask>>=1) { - if (channel & mask) { - if (stbi__at_eof(s)) return stbi__errpuc("bad file","PIC file too short"); - dest[i]=stbi__get8(s); - } - } - - return dest; -} - -static void stbi__copyval(int channel,stbi_uc *dest,const stbi_uc *src) -{ - int mask=0x80,i; - - for (i=0;i<4; ++i, mask>>=1) - if (channel&mask) - dest[i]=src[i]; -} - -static stbi_uc *stbi__pic_load_core(stbi__context *s,int width,int height,int *comp, stbi_uc *result) -{ - int act_comp=0,num_packets=0,y,chained; - stbi__pic_packet packets[10]; - - // this will (should...) cater for even some bizarre stuff like having data - // for the same channel in multiple packets. - do { - stbi__pic_packet *packet; - - if (num_packets==sizeof(packets)/sizeof(packets[0])) - return stbi__errpuc("bad format","too many packets"); - - packet = &packets[num_packets++]; - - chained = stbi__get8(s); - packet->size = stbi__get8(s); - packet->type = stbi__get8(s); - packet->channel = stbi__get8(s); - - act_comp |= packet->channel; - - if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (reading packets)"); - if (packet->size != 8) return stbi__errpuc("bad format","packet isn't 8bpp"); - } while (chained); - - *comp = (act_comp & 0x10 ? 4 : 3); // has alpha channel? - - for(y=0; ytype) { - default: - return stbi__errpuc("bad format","packet has bad compression type"); - - case 0: {//uncompressed - int x; - - for(x=0;xchannel,dest)) - return 0; - break; - } - - case 1://Pure RLE - { - int left=width, i; - - while (left>0) { - stbi_uc count,value[4]; - - count=stbi__get8(s); - if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (pure read count)"); - - if (count > left) - count = (stbi_uc) left; - - if (!stbi__readval(s,packet->channel,value)) return 0; - - for(i=0; ichannel,dest,value); - left -= count; - } - } - break; - - case 2: {//Mixed RLE - int left=width; - while (left>0) { - int count = stbi__get8(s), i; - if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (mixed read count)"); - - if (count >= 128) { // Repeated - stbi_uc value[4]; - - if (count==128) - count = stbi__get16be(s); - else - count -= 127; - if (count > left) - return stbi__errpuc("bad file","scanline overrun"); - - if (!stbi__readval(s,packet->channel,value)) - return 0; - - for(i=0;ichannel,dest,value); - } else { // Raw - ++count; - if (count>left) return stbi__errpuc("bad file","scanline overrun"); - - for(i=0;ichannel,dest)) - return 0; - } - left-=count; - } - break; - } - } - } - } - - return result; -} - -static void *stbi__pic_load(stbi__context *s,int *px,int *py,int *comp,int req_comp, stbi__result_info *ri) -{ - stbi_uc *result; - int i, x,y, internal_comp; - STBI_NOTUSED(ri); - - if (!comp) comp = &internal_comp; - - for (i=0; i<92; ++i) - stbi__get8(s); - - x = stbi__get16be(s); - y = stbi__get16be(s); - - if (y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - if (x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - - if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (pic header)"); - if (!stbi__mad3sizes_valid(x, y, 4, 0)) return stbi__errpuc("too large", "PIC image too large to decode"); - - stbi__get32be(s); //skip `ratio' - stbi__get16be(s); //skip `fields' - stbi__get16be(s); //skip `pad' - - // intermediate buffer is RGBA - result = (stbi_uc *) stbi__malloc_mad3(x, y, 4, 0); - if (!result) return stbi__errpuc("outofmem", "Out of memory"); - memset(result, 0xff, x*y*4); - - if (!stbi__pic_load_core(s,x,y,comp, result)) { - STBI_FREE(result); - result=0; - } - *px = x; - *py = y; - if (req_comp == 0) req_comp = *comp; - result=stbi__convert_format(result,4,req_comp,x,y); - - return result; -} - -static int stbi__pic_test(stbi__context *s) -{ - int r = stbi__pic_test_core(s); - stbi__rewind(s); - return r; -} -#endif - -// ************************************************************************************************* -// GIF loader -- public domain by Jean-Marc Lienher -- simplified/shrunk by stb - -#ifndef STBI_NO_GIF -typedef struct -{ - stbi__int16 prefix; - stbi_uc first; - stbi_uc suffix; -} stbi__gif_lzw; - -typedef struct -{ - int w,h; - stbi_uc *out; // output buffer (always 4 components) - stbi_uc *background; // The current "background" as far as a gif is concerned - stbi_uc *history; - int flags, bgindex, ratio, transparent, eflags; - stbi_uc pal[256][4]; - stbi_uc lpal[256][4]; - stbi__gif_lzw codes[8192]; - stbi_uc *color_table; - int parse, step; - int lflags; - int start_x, start_y; - int max_x, max_y; - int cur_x, cur_y; - int line_size; - int delay; -} stbi__gif; - -static int stbi__gif_test_raw(stbi__context *s) -{ - int sz; - if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') return 0; - sz = stbi__get8(s); - if (sz != '9' && sz != '7') return 0; - if (stbi__get8(s) != 'a') return 0; - return 1; -} - -static int stbi__gif_test(stbi__context *s) -{ - int r = stbi__gif_test_raw(s); - stbi__rewind(s); - return r; -} - -static void stbi__gif_parse_colortable(stbi__context *s, stbi_uc pal[256][4], int num_entries, int transp) -{ - int i; - for (i=0; i < num_entries; ++i) { - pal[i][2] = stbi__get8(s); - pal[i][1] = stbi__get8(s); - pal[i][0] = stbi__get8(s); - pal[i][3] = transp == i ? 0 : 255; - } -} - -static int stbi__gif_header(stbi__context *s, stbi__gif *g, int *comp, int is_info) -{ - stbi_uc version; - if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') - return stbi__err("not GIF", "Corrupt GIF"); - - version = stbi__get8(s); - if (version != '7' && version != '9') return stbi__err("not GIF", "Corrupt GIF"); - if (stbi__get8(s) != 'a') return stbi__err("not GIF", "Corrupt GIF"); - - stbi__g_failure_reason = ""; - g->w = stbi__get16le(s); - g->h = stbi__get16le(s); - g->flags = stbi__get8(s); - g->bgindex = stbi__get8(s); - g->ratio = stbi__get8(s); - g->transparent = -1; - - if (g->w > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); - if (g->h > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); - - if (comp != 0) *comp = 4; // can't actually tell whether it's 3 or 4 until we parse the comments - - if (is_info) return 1; - - if (g->flags & 0x80) - stbi__gif_parse_colortable(s,g->pal, 2 << (g->flags & 7), -1); - - return 1; -} - -static int stbi__gif_info_raw(stbi__context *s, int *x, int *y, int *comp) -{ - stbi__gif* g = (stbi__gif*) stbi__malloc(sizeof(stbi__gif)); - if (!g) return stbi__err("outofmem", "Out of memory"); - if (!stbi__gif_header(s, g, comp, 1)) { - STBI_FREE(g); - stbi__rewind( s ); - return 0; - } - if (x) *x = g->w; - if (y) *y = g->h; - STBI_FREE(g); - return 1; -} - -static void stbi__out_gif_code(stbi__gif *g, stbi__uint16 code) -{ - stbi_uc *p, *c; - int idx; - - // recurse to decode the prefixes, since the linked-list is backwards, - // and working backwards through an interleaved image would be nasty - if (g->codes[code].prefix >= 0) - stbi__out_gif_code(g, g->codes[code].prefix); - - if (g->cur_y >= g->max_y) return; - - idx = g->cur_x + g->cur_y; - p = &g->out[idx]; - g->history[idx / 4] = 1; - - c = &g->color_table[g->codes[code].suffix * 4]; - if (c[3] > 128) { // don't render transparent pixels; - p[0] = c[2]; - p[1] = c[1]; - p[2] = c[0]; - p[3] = c[3]; - } - g->cur_x += 4; - - if (g->cur_x >= g->max_x) { - g->cur_x = g->start_x; - g->cur_y += g->step; - - while (g->cur_y >= g->max_y && g->parse > 0) { - g->step = (1 << g->parse) * g->line_size; - g->cur_y = g->start_y + (g->step >> 1); - --g->parse; - } - } -} - -static stbi_uc *stbi__process_gif_raster(stbi__context *s, stbi__gif *g) -{ - stbi_uc lzw_cs; - stbi__int32 len, init_code; - stbi__uint32 first; - stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear; - stbi__gif_lzw *p; - - lzw_cs = stbi__get8(s); - if (lzw_cs > 12) return NULL; - clear = 1 << lzw_cs; - first = 1; - codesize = lzw_cs + 1; - codemask = (1 << codesize) - 1; - bits = 0; - valid_bits = 0; - for (init_code = 0; init_code < clear; init_code++) { - g->codes[init_code].prefix = -1; - g->codes[init_code].first = (stbi_uc) init_code; - g->codes[init_code].suffix = (stbi_uc) init_code; - } - - // support no starting clear code - avail = clear+2; - oldcode = -1; - - len = 0; - for(;;) { - if (valid_bits < codesize) { - if (len == 0) { - len = stbi__get8(s); // start new block - if (len == 0) - return g->out; - } - --len; - bits |= (stbi__int32) stbi__get8(s) << valid_bits; - valid_bits += 8; - } else { - stbi__int32 code = bits & codemask; - bits >>= codesize; - valid_bits -= codesize; - // @OPTIMIZE: is there some way we can accelerate the non-clear path? - if (code == clear) { // clear code - codesize = lzw_cs + 1; - codemask = (1 << codesize) - 1; - avail = clear + 2; - oldcode = -1; - first = 0; - } else if (code == clear + 1) { // end of stream code - stbi__skip(s, len); - while ((len = stbi__get8(s)) > 0) - stbi__skip(s,len); - return g->out; - } else if (code <= avail) { - if (first) { - return stbi__errpuc("no clear code", "Corrupt GIF"); - } - - if (oldcode >= 0) { - p = &g->codes[avail++]; - if (avail > 8192) { - return stbi__errpuc("too many codes", "Corrupt GIF"); - } - - p->prefix = (stbi__int16) oldcode; - p->first = g->codes[oldcode].first; - p->suffix = (code == avail) ? p->first : g->codes[code].first; - } else if (code == avail) - return stbi__errpuc("illegal code in raster", "Corrupt GIF"); - - stbi__out_gif_code(g, (stbi__uint16) code); - - if ((avail & codemask) == 0 && avail <= 0x0FFF) { - codesize++; - codemask = (1 << codesize) - 1; - } - - oldcode = code; - } else { - return stbi__errpuc("illegal code in raster", "Corrupt GIF"); - } - } - } -} - -// this function is designed to support animated gifs, although stb_image doesn't support it -// two back is the image from two frames ago, used for a very specific disposal format -static stbi_uc *stbi__gif_load_next(stbi__context *s, stbi__gif *g, int *comp, int req_comp, stbi_uc *two_back) -{ - int dispose; - int first_frame; - int pi; - int pcount; - STBI_NOTUSED(req_comp); - - // on first frame, any non-written pixels get the background colour (non-transparent) - first_frame = 0; - if (g->out == 0) { - if (!stbi__gif_header(s, g, comp,0)) return 0; // stbi__g_failure_reason set by stbi__gif_header - if (!stbi__mad3sizes_valid(4, g->w, g->h, 0)) - return stbi__errpuc("too large", "GIF image is too large"); - pcount = g->w * g->h; - g->out = (stbi_uc *) stbi__malloc(4 * pcount); - g->background = (stbi_uc *) stbi__malloc(4 * pcount); - g->history = (stbi_uc *) stbi__malloc(pcount); - if (!g->out || !g->background || !g->history) - return stbi__errpuc("outofmem", "Out of memory"); - - // image is treated as "transparent" at the start - ie, nothing overwrites the current background; - // background colour is only used for pixels that are not rendered first frame, after that "background" - // color refers to the color that was there the previous frame. - memset(g->out, 0x00, 4 * pcount); - memset(g->background, 0x00, 4 * pcount); // state of the background (starts transparent) - memset(g->history, 0x00, pcount); // pixels that were affected previous frame - first_frame = 1; - } else { - // second frame - how do we dispose of the previous one? - dispose = (g->eflags & 0x1C) >> 2; - pcount = g->w * g->h; - - if ((dispose == 3) && (two_back == 0)) { - dispose = 2; // if I don't have an image to revert back to, default to the old background - } - - if (dispose == 3) { // use previous graphic - for (pi = 0; pi < pcount; ++pi) { - if (g->history[pi]) { - memcpy( &g->out[pi * 4], &two_back[pi * 4], 4 ); - } - } - } else if (dispose == 2) { - // restore what was changed last frame to background before that frame; - for (pi = 0; pi < pcount; ++pi) { - if (g->history[pi]) { - memcpy( &g->out[pi * 4], &g->background[pi * 4], 4 ); - } - } - } else { - // This is a non-disposal case eithe way, so just - // leave the pixels as is, and they will become the new background - // 1: do not dispose - // 0: not specified. - } - - // background is what out is after the undoing of the previou frame; - memcpy( g->background, g->out, 4 * g->w * g->h ); - } - - // clear my history; - memset( g->history, 0x00, g->w * g->h ); // pixels that were affected previous frame - - for (;;) { - int tag = stbi__get8(s); - switch (tag) { - case 0x2C: /* Image Descriptor */ - { - stbi__int32 x, y, w, h; - stbi_uc *o; - - x = stbi__get16le(s); - y = stbi__get16le(s); - w = stbi__get16le(s); - h = stbi__get16le(s); - if (((x + w) > (g->w)) || ((y + h) > (g->h))) - return stbi__errpuc("bad Image Descriptor", "Corrupt GIF"); - - g->line_size = g->w * 4; - g->start_x = x * 4; - g->start_y = y * g->line_size; - g->max_x = g->start_x + w * 4; - g->max_y = g->start_y + h * g->line_size; - g->cur_x = g->start_x; - g->cur_y = g->start_y; - - // if the width of the specified rectangle is 0, that means - // we may not see *any* pixels or the image is malformed; - // to make sure this is caught, move the current y down to - // max_y (which is what out_gif_code checks). - if (w == 0) - g->cur_y = g->max_y; - - g->lflags = stbi__get8(s); - - if (g->lflags & 0x40) { - g->step = 8 * g->line_size; // first interlaced spacing - g->parse = 3; - } else { - g->step = g->line_size; - g->parse = 0; - } - - if (g->lflags & 0x80) { - stbi__gif_parse_colortable(s,g->lpal, 2 << (g->lflags & 7), g->eflags & 0x01 ? g->transparent : -1); - g->color_table = (stbi_uc *) g->lpal; - } else if (g->flags & 0x80) { - g->color_table = (stbi_uc *) g->pal; - } else - return stbi__errpuc("missing color table", "Corrupt GIF"); - - o = stbi__process_gif_raster(s, g); - if (!o) return NULL; - - // if this was the first frame, - pcount = g->w * g->h; - if (first_frame && (g->bgindex > 0)) { - // if first frame, any pixel not drawn to gets the background color - for (pi = 0; pi < pcount; ++pi) { - if (g->history[pi] == 0) { - g->pal[g->bgindex][3] = 255; // just in case it was made transparent, undo that; It will be reset next frame if need be; - memcpy( &g->out[pi * 4], &g->pal[g->bgindex], 4 ); - } - } - } - - return o; - } - - case 0x21: // Comment Extension. - { - int len; - int ext = stbi__get8(s); - if (ext == 0xF9) { // Graphic Control Extension. - len = stbi__get8(s); - if (len == 4) { - g->eflags = stbi__get8(s); - g->delay = 10 * stbi__get16le(s); // delay - 1/100th of a second, saving as 1/1000ths. - - // unset old transparent - if (g->transparent >= 0) { - g->pal[g->transparent][3] = 255; - } - if (g->eflags & 0x01) { - g->transparent = stbi__get8(s); - if (g->transparent >= 0) { - g->pal[g->transparent][3] = 0; - } - } else { - // don't need transparent - stbi__skip(s, 1); - g->transparent = -1; - } - } else { - stbi__skip(s, len); - break; - } - } - while ((len = stbi__get8(s)) != 0) { - stbi__skip(s, len); - } - break; - } - - case 0x3B: // gif stream termination code - return (stbi_uc *) s; // using '1' causes warning on some compilers - - default: - return stbi__errpuc("unknown code", "Corrupt GIF"); - } - } -} - -static void *stbi__load_gif_main_outofmem(stbi__gif *g, stbi_uc *out, int **delays) -{ - STBI_FREE(g->out); - STBI_FREE(g->history); - STBI_FREE(g->background); - - if (out) STBI_FREE(out); - if (delays && *delays) STBI_FREE(*delays); - return stbi__errpuc("outofmem", "Out of memory"); -} - -static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp) -{ - if (stbi__gif_test(s)) { - int layers = 0; - stbi_uc *u = 0; - stbi_uc *out = 0; - stbi_uc *two_back = 0; - stbi__gif g; - int stride; - int out_size = 0; - int delays_size = 0; - - STBI_NOTUSED(out_size); - STBI_NOTUSED(delays_size); - - memset(&g, 0, sizeof(g)); - if (delays) { - *delays = 0; - } - - do { - u = stbi__gif_load_next(s, &g, comp, req_comp, two_back); - if (u == (stbi_uc *) s) u = 0; // end of animated gif marker - - if (u) { - *x = g.w; - *y = g.h; - ++layers; - stride = g.w * g.h * 4; - - if (out) { - void *tmp = (stbi_uc*) STBI_REALLOC_SIZED( out, out_size, layers * stride ); - if (!tmp) - return stbi__load_gif_main_outofmem(&g, out, delays); - else { - out = (stbi_uc*) tmp; - out_size = layers * stride; - } - - if (delays) { - int *new_delays = (int*) STBI_REALLOC_SIZED( *delays, delays_size, sizeof(int) * layers ); - if (!new_delays) - return stbi__load_gif_main_outofmem(&g, out, delays); - *delays = new_delays; - delays_size = layers * sizeof(int); - } - } else { - out = (stbi_uc*)stbi__malloc( layers * stride ); - if (!out) - return stbi__load_gif_main_outofmem(&g, out, delays); - out_size = layers * stride; - if (delays) { - *delays = (int*) stbi__malloc( layers * sizeof(int) ); - if (!*delays) - return stbi__load_gif_main_outofmem(&g, out, delays); - delays_size = layers * sizeof(int); - } - } - memcpy( out + ((layers - 1) * stride), u, stride ); - if (layers >= 2) { - two_back = out - 2 * stride; - } - - if (delays) { - (*delays)[layers - 1U] = g.delay; - } - } - } while (u != 0); - - // free temp buffer; - STBI_FREE(g.out); - STBI_FREE(g.history); - STBI_FREE(g.background); - - // do the final conversion after loading everything; - if (req_comp && req_comp != 4) - out = stbi__convert_format(out, 4, req_comp, layers * g.w, g.h); - - *z = layers; - return out; - } else { - return stbi__errpuc("not GIF", "Image was not as a gif type."); - } -} - -static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) -{ - stbi_uc *u = 0; - stbi__gif g; - memset(&g, 0, sizeof(g)); - STBI_NOTUSED(ri); - - u = stbi__gif_load_next(s, &g, comp, req_comp, 0); - if (u == (stbi_uc *) s) u = 0; // end of animated gif marker - if (u) { - *x = g.w; - *y = g.h; - - // moved conversion to after successful load so that the same - // can be done for multiple frames. - if (req_comp && req_comp != 4) - u = stbi__convert_format(u, 4, req_comp, g.w, g.h); - } else if (g.out) { - // if there was an error and we allocated an image buffer, free it! - STBI_FREE(g.out); - } - - // free buffers needed for multiple frame loading; - STBI_FREE(g.history); - STBI_FREE(g.background); - - return u; -} - -static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp) -{ - return stbi__gif_info_raw(s,x,y,comp); -} -#endif - -// ************************************************************************************************* -// Radiance RGBE HDR loader -// originally by Nicolas Schulz -#ifndef STBI_NO_HDR -static int stbi__hdr_test_core(stbi__context *s, const char *signature) -{ - int i; - for (i=0; signature[i]; ++i) - if (stbi__get8(s) != signature[i]) - return 0; - stbi__rewind(s); - return 1; -} - -static int stbi__hdr_test(stbi__context* s) -{ - int r = stbi__hdr_test_core(s, "#?RADIANCE\n"); - stbi__rewind(s); - if(!r) { - r = stbi__hdr_test_core(s, "#?RGBE\n"); - stbi__rewind(s); - } - return r; -} - -#define STBI__HDR_BUFLEN 1024 -static char *stbi__hdr_gettoken(stbi__context *z, char *buffer) -{ - int len=0; - char c = '\0'; - - c = (char) stbi__get8(z); - - while (!stbi__at_eof(z) && c != '\n') { - buffer[len++] = c; - if (len == STBI__HDR_BUFLEN-1) { - // flush to end of line - while (!stbi__at_eof(z) && stbi__get8(z) != '\n') - ; - break; - } - c = (char) stbi__get8(z); - } - - buffer[len] = 0; - return buffer; -} - -static void stbi__hdr_convert(float *output, stbi_uc *input, int req_comp) -{ - if ( input[3] != 0 ) { - float f1; - // Exponent - f1 = (float) ldexp(1.0f, input[3] - (int)(128 + 8)); - if (req_comp <= 2) - output[0] = (input[0] + input[1] + input[2]) * f1 / 3; - else { - output[0] = input[0] * f1; - output[1] = input[1] * f1; - output[2] = input[2] * f1; - } - if (req_comp == 2) output[1] = 1; - if (req_comp == 4) output[3] = 1; - } else { - switch (req_comp) { - case 4: output[3] = 1; /* fallthrough */ - case 3: output[0] = output[1] = output[2] = 0; - break; - case 2: output[1] = 1; /* fallthrough */ - case 1: output[0] = 0; - break; - } - } -} - -static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) -{ - char buffer[STBI__HDR_BUFLEN]; - char *token; - int valid = 0; - int width, height; - stbi_uc *scanline; - float *hdr_data; - int len; - unsigned char count, value; - int i, j, k, c1,c2, z; - const char *headerToken; - STBI_NOTUSED(ri); - - // Check identifier - headerToken = stbi__hdr_gettoken(s,buffer); - if (strcmp(headerToken, "#?RADIANCE") != 0 && strcmp(headerToken, "#?RGBE") != 0) - return stbi__errpf("not HDR", "Corrupt HDR image"); - - // Parse header - for(;;) { - token = stbi__hdr_gettoken(s,buffer); - if (token[0] == 0) break; - if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1; - } - - if (!valid) return stbi__errpf("unsupported format", "Unsupported HDR format"); - - // Parse width and height - // can't use sscanf() if we're not using stdio! - token = stbi__hdr_gettoken(s,buffer); - if (strncmp(token, "-Y ", 3)) return stbi__errpf("unsupported data layout", "Unsupported HDR format"); - token += 3; - height = (int) strtol(token, &token, 10); - while (*token == ' ') ++token; - if (strncmp(token, "+X ", 3)) return stbi__errpf("unsupported data layout", "Unsupported HDR format"); - token += 3; - width = (int) strtol(token, NULL, 10); - - if (height > STBI_MAX_DIMENSIONS) return stbi__errpf("too large","Very large image (corrupt?)"); - if (width > STBI_MAX_DIMENSIONS) return stbi__errpf("too large","Very large image (corrupt?)"); - - *x = width; - *y = height; - - if (comp) *comp = 3; - if (req_comp == 0) req_comp = 3; - - if (!stbi__mad4sizes_valid(width, height, req_comp, sizeof(float), 0)) - return stbi__errpf("too large", "HDR image is too large"); - - // Read data - hdr_data = (float *) stbi__malloc_mad4(width, height, req_comp, sizeof(float), 0); - if (!hdr_data) - return stbi__errpf("outofmem", "Out of memory"); - - // Load image data - // image data is stored as some number of sca - if ( width < 8 || width >= 32768) { - // Read flat data - for (j=0; j < height; ++j) { - for (i=0; i < width; ++i) { - stbi_uc rgbe[4]; - main_decode_loop: - stbi__getn(s, rgbe, 4); - stbi__hdr_convert(hdr_data + j * width * req_comp + i * req_comp, rgbe, req_comp); - } - } - } else { - // Read RLE-encoded data - scanline = NULL; - - for (j = 0; j < height; ++j) { - c1 = stbi__get8(s); - c2 = stbi__get8(s); - len = stbi__get8(s); - if (c1 != 2 || c2 != 2 || (len & 0x80)) { - // not run-length encoded, so we have to actually use THIS data as a decoded - // pixel (note this can't be a valid pixel--one of RGB must be >= 128) - stbi_uc rgbe[4]; - rgbe[0] = (stbi_uc) c1; - rgbe[1] = (stbi_uc) c2; - rgbe[2] = (stbi_uc) len; - rgbe[3] = (stbi_uc) stbi__get8(s); - stbi__hdr_convert(hdr_data, rgbe, req_comp); - i = 1; - j = 0; - STBI_FREE(scanline); - goto main_decode_loop; // yes, this makes no sense - } - len <<= 8; - len |= stbi__get8(s); - if (len != width) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("invalid decoded scanline length", "corrupt HDR"); } - if (scanline == NULL) { - scanline = (stbi_uc *) stbi__malloc_mad2(width, 4, 0); - if (!scanline) { - STBI_FREE(hdr_data); - return stbi__errpf("outofmem", "Out of memory"); - } - } - - for (k = 0; k < 4; ++k) { - int nleft; - i = 0; - while ((nleft = width - i) > 0) { - count = stbi__get8(s); - if (count > 128) { - // Run - value = stbi__get8(s); - count -= 128; - if ((count == 0) || (count > nleft)) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); } - for (z = 0; z < count; ++z) - scanline[i++ * 4 + k] = value; - } else { - // Dump - if ((count == 0) || (count > nleft)) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); } - for (z = 0; z < count; ++z) - scanline[i++ * 4 + k] = stbi__get8(s); - } - } - } - for (i=0; i < width; ++i) - stbi__hdr_convert(hdr_data+(j*width + i)*req_comp, scanline + i*4, req_comp); - } - if (scanline) - STBI_FREE(scanline); - } - - return hdr_data; -} - -static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp) -{ - char buffer[STBI__HDR_BUFLEN]; - char *token; - int valid = 0; - int dummy; - - if (!x) x = &dummy; - if (!y) y = &dummy; - if (!comp) comp = &dummy; - - if (stbi__hdr_test(s) == 0) { - stbi__rewind( s ); - return 0; - } - - for(;;) { - token = stbi__hdr_gettoken(s,buffer); - if (token[0] == 0) break; - if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1; - } - - if (!valid) { - stbi__rewind( s ); - return 0; - } - token = stbi__hdr_gettoken(s,buffer); - if (strncmp(token, "-Y ", 3)) { - stbi__rewind( s ); - return 0; - } - token += 3; - *y = (int) strtol(token, &token, 10); - while (*token == ' ') ++token; - if (strncmp(token, "+X ", 3)) { - stbi__rewind( s ); - return 0; - } - token += 3; - *x = (int) strtol(token, NULL, 10); - *comp = 3; - return 1; -} -#endif // STBI_NO_HDR - -#ifndef STBI_NO_BMP -static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp) -{ - void *p; - stbi__bmp_data info; - - info.all_a = 255; - p = stbi__bmp_parse_header(s, &info); - if (p == NULL) { - stbi__rewind( s ); - return 0; - } - if (x) *x = s->img_x; - if (y) *y = s->img_y; - if (comp) { - if (info.bpp == 24 && info.ma == 0xff000000) - *comp = 3; - else - *comp = info.ma ? 4 : 3; - } - return 1; -} -#endif - -#ifndef STBI_NO_PSD -static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp) -{ - int channelCount, dummy, depth; - if (!x) x = &dummy; - if (!y) y = &dummy; - if (!comp) comp = &dummy; - if (stbi__get32be(s) != 0x38425053) { - stbi__rewind( s ); - return 0; - } - if (stbi__get16be(s) != 1) { - stbi__rewind( s ); - return 0; - } - stbi__skip(s, 6); - channelCount = stbi__get16be(s); - if (channelCount < 0 || channelCount > 16) { - stbi__rewind( s ); - return 0; - } - *y = stbi__get32be(s); - *x = stbi__get32be(s); - depth = stbi__get16be(s); - if (depth != 8 && depth != 16) { - stbi__rewind( s ); - return 0; - } - if (stbi__get16be(s) != 3) { - stbi__rewind( s ); - return 0; - } - *comp = 4; - return 1; -} - -static int stbi__psd_is16(stbi__context *s) -{ - int channelCount, depth; - if (stbi__get32be(s) != 0x38425053) { - stbi__rewind( s ); - return 0; - } - if (stbi__get16be(s) != 1) { - stbi__rewind( s ); - return 0; - } - stbi__skip(s, 6); - channelCount = stbi__get16be(s); - if (channelCount < 0 || channelCount > 16) { - stbi__rewind( s ); - return 0; - } - STBI_NOTUSED(stbi__get32be(s)); - STBI_NOTUSED(stbi__get32be(s)); - depth = stbi__get16be(s); - if (depth != 16) { - stbi__rewind( s ); - return 0; - } - return 1; -} -#endif - -#ifndef STBI_NO_PIC -static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp) -{ - int act_comp=0,num_packets=0,chained,dummy; - stbi__pic_packet packets[10]; - - if (!x) x = &dummy; - if (!y) y = &dummy; - if (!comp) comp = &dummy; - - if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")) { - stbi__rewind(s); - return 0; - } - - stbi__skip(s, 88); - - *x = stbi__get16be(s); - *y = stbi__get16be(s); - if (stbi__at_eof(s)) { - stbi__rewind( s); - return 0; - } - if ( (*x) != 0 && (1 << 28) / (*x) < (*y)) { - stbi__rewind( s ); - return 0; - } - - stbi__skip(s, 8); - - do { - stbi__pic_packet *packet; - - if (num_packets==sizeof(packets)/sizeof(packets[0])) - return 0; - - packet = &packets[num_packets++]; - chained = stbi__get8(s); - packet->size = stbi__get8(s); - packet->type = stbi__get8(s); - packet->channel = stbi__get8(s); - act_comp |= packet->channel; - - if (stbi__at_eof(s)) { - stbi__rewind( s ); - return 0; - } - if (packet->size != 8) { - stbi__rewind( s ); - return 0; - } - } while (chained); - - *comp = (act_comp & 0x10 ? 4 : 3); - - return 1; -} -#endif - -// ************************************************************************************************* -// Portable Gray Map and Portable Pixel Map loader -// by Ken Miller -// -// PGM: http://netpbm.sourceforge.net/doc/pgm.html -// PPM: http://netpbm.sourceforge.net/doc/ppm.html -// -// Known limitations: -// Does not support comments in the header section -// Does not support ASCII image data (formats P2 and P3) - -#ifndef STBI_NO_PNM - -static int stbi__pnm_test(stbi__context *s) -{ - char p, t; - p = (char) stbi__get8(s); - t = (char) stbi__get8(s); - if (p != 'P' || (t != '5' && t != '6')) { - stbi__rewind( s ); - return 0; - } - return 1; -} - -static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) -{ - stbi_uc *out; - STBI_NOTUSED(ri); - - ri->bits_per_channel = stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n); - if (ri->bits_per_channel == 0) - return 0; - - if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - - *x = s->img_x; - *y = s->img_y; - if (comp) *comp = s->img_n; - - if (!stbi__mad4sizes_valid(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 0)) - return stbi__errpuc("too large", "PNM too large"); - - out = (stbi_uc *) stbi__malloc_mad4(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 0); - if (!out) return stbi__errpuc("outofmem", "Out of memory"); - if (!stbi__getn(s, out, s->img_n * s->img_x * s->img_y * (ri->bits_per_channel / 8))) { - STBI_FREE(out); - return stbi__errpuc("bad PNM", "PNM file truncated"); - } - - if (req_comp && req_comp != s->img_n) { - if (ri->bits_per_channel == 16) { - out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, s->img_n, req_comp, s->img_x, s->img_y); - } else { - out = stbi__convert_format(out, s->img_n, req_comp, s->img_x, s->img_y); - } - if (out == NULL) return out; // stbi__convert_format frees input on failure - } - return out; -} - -static int stbi__pnm_isspace(char c) -{ - return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; -} - -static void stbi__pnm_skip_whitespace(stbi__context *s, char *c) -{ - for (;;) { - while (!stbi__at_eof(s) && stbi__pnm_isspace(*c)) - *c = (char) stbi__get8(s); - - if (stbi__at_eof(s) || *c != '#') - break; - - while (!stbi__at_eof(s) && *c != '\n' && *c != '\r' ) - *c = (char) stbi__get8(s); - } -} - -static int stbi__pnm_isdigit(char c) -{ - return c >= '0' && c <= '9'; -} - -static int stbi__pnm_getinteger(stbi__context *s, char *c) -{ - int value = 0; - - while (!stbi__at_eof(s) && stbi__pnm_isdigit(*c)) { - value = value*10 + (*c - '0'); - *c = (char) stbi__get8(s); - if((value > 214748364) || (value == 214748364 && *c > '7')) - return stbi__err("integer parse overflow", "Parsing an integer in the PPM header overflowed a 32-bit int"); - } - - return value; -} - -static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp) -{ - int maxv, dummy; - char c, p, t; - - if (!x) x = &dummy; - if (!y) y = &dummy; - if (!comp) comp = &dummy; - - stbi__rewind(s); - - // Get identifier - p = (char) stbi__get8(s); - t = (char) stbi__get8(s); - if (p != 'P' || (t != '5' && t != '6')) { - stbi__rewind(s); - return 0; - } - - *comp = (t == '6') ? 3 : 1; // '5' is 1-component .pgm; '6' is 3-component .ppm - - c = (char) stbi__get8(s); - stbi__pnm_skip_whitespace(s, &c); - - *x = stbi__pnm_getinteger(s, &c); // read width - if(*x == 0) - return stbi__err("invalid width", "PPM image header had zero or overflowing width"); - stbi__pnm_skip_whitespace(s, &c); - - *y = stbi__pnm_getinteger(s, &c); // read height - if (*y == 0) - return stbi__err("invalid width", "PPM image header had zero or overflowing width"); - stbi__pnm_skip_whitespace(s, &c); - - maxv = stbi__pnm_getinteger(s, &c); // read max value - if (maxv > 65535) - return stbi__err("max value > 65535", "PPM image supports only 8-bit and 16-bit images"); - else if (maxv > 255) - return 16; - else - return 8; -} - -static int stbi__pnm_is16(stbi__context *s) -{ - if (stbi__pnm_info(s, NULL, NULL, NULL) == 16) - return 1; - return 0; -} -#endif - -static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp) -{ - #ifndef STBI_NO_JPEG - if (stbi__jpeg_info(s, x, y, comp)) return 1; - #endif - - #ifndef STBI_NO_PNG - if (stbi__png_info(s, x, y, comp)) return 1; - #endif - - #ifndef STBI_NO_GIF - if (stbi__gif_info(s, x, y, comp)) return 1; - #endif - - #ifndef STBI_NO_BMP - if (stbi__bmp_info(s, x, y, comp)) return 1; - #endif - - #ifndef STBI_NO_PSD - if (stbi__psd_info(s, x, y, comp)) return 1; - #endif - - #ifndef STBI_NO_PIC - if (stbi__pic_info(s, x, y, comp)) return 1; - #endif - - #ifndef STBI_NO_PNM - if (stbi__pnm_info(s, x, y, comp)) return 1; - #endif - - #ifndef STBI_NO_HDR - if (stbi__hdr_info(s, x, y, comp)) return 1; - #endif - - // test tga last because it's a crappy test! - #ifndef STBI_NO_TGA - if (stbi__tga_info(s, x, y, comp)) - return 1; - #endif - return stbi__err("unknown image type", "Image not of any known type, or corrupt"); -} - -static int stbi__is_16_main(stbi__context *s) -{ - #ifndef STBI_NO_PNG - if (stbi__png_is16(s)) return 1; - #endif - - #ifndef STBI_NO_PSD - if (stbi__psd_is16(s)) return 1; - #endif - - #ifndef STBI_NO_PNM - if (stbi__pnm_is16(s)) return 1; - #endif - return 0; -} - -#ifndef STBI_NO_STDIO -STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp) -{ - FILE *f = stbi__fopen(filename, "rb"); - int result; - if (!f) return stbi__err("can't fopen", "Unable to open file"); - result = stbi_info_from_file(f, x, y, comp); - fclose(f); - return result; -} - -STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp) -{ - int r; - stbi__context s; - long pos = ftell(f); - stbi__start_file(&s, f); - r = stbi__info_main(&s,x,y,comp); - fseek(f,pos,SEEK_SET); - return r; -} - -STBIDEF int stbi_is_16_bit(char const *filename) -{ - FILE *f = stbi__fopen(filename, "rb"); - int result; - if (!f) return stbi__err("can't fopen", "Unable to open file"); - result = stbi_is_16_bit_from_file(f); - fclose(f); - return result; -} - -STBIDEF int stbi_is_16_bit_from_file(FILE *f) -{ - int r; - stbi__context s; - long pos = ftell(f); - stbi__start_file(&s, f); - r = stbi__is_16_main(&s); - fseek(f,pos,SEEK_SET); - return r; -} -#endif // !STBI_NO_STDIO - -STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp) -{ - stbi__context s; - stbi__start_mem(&s,buffer,len); - return stbi__info_main(&s,x,y,comp); -} - -STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int *x, int *y, int *comp) -{ - stbi__context s; - stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); - return stbi__info_main(&s,x,y,comp); -} - -STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len) -{ - stbi__context s; - stbi__start_mem(&s,buffer,len); - return stbi__is_16_main(&s); -} - -STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *c, void *user) -{ - stbi__context s; - stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); - return stbi__is_16_main(&s); -} - -#endif // STB_IMAGE_IMPLEMENTATION - -/* - revision history: - 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs - 2.19 (2018-02-11) fix warning - 2.18 (2018-01-30) fix warnings - 2.17 (2018-01-29) change sbti__shiftsigned to avoid clang -O2 bug - 1-bit BMP - *_is_16_bit api - avoid warnings - 2.16 (2017-07-23) all functions have 16-bit variants; - STBI_NO_STDIO works again; - compilation fixes; - fix rounding in unpremultiply; - optimize vertical flip; - disable raw_len validation; - documentation fixes - 2.15 (2017-03-18) fix png-1,2,4 bug; now all Imagenet JPGs decode; - warning fixes; disable run-time SSE detection on gcc; - uniform handling of optional "return" values; - thread-safe initialization of zlib tables - 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs - 2.13 (2016-11-29) add 16-bit API, only supported for PNG right now - 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes - 2.11 (2016-04-02) allocate large structures on the stack - remove white matting for transparent PSD - fix reported channel count for PNG & BMP - re-enable SSE2 in non-gcc 64-bit - support RGB-formatted JPEG - read 16-bit PNGs (only as 8-bit) - 2.10 (2016-01-22) avoid warning introduced in 2.09 by STBI_REALLOC_SIZED - 2.09 (2016-01-16) allow comments in PNM files - 16-bit-per-pixel TGA (not bit-per-component) - info() for TGA could break due to .hdr handling - info() for BMP to shares code instead of sloppy parse - can use STBI_REALLOC_SIZED if allocator doesn't support realloc - code cleanup - 2.08 (2015-09-13) fix to 2.07 cleanup, reading RGB PSD as RGBA - 2.07 (2015-09-13) fix compiler warnings - partial animated GIF support - limited 16-bpc PSD support - #ifdef unused functions - bug with < 92 byte PIC,PNM,HDR,TGA - 2.06 (2015-04-19) fix bug where PSD returns wrong '*comp' value - 2.05 (2015-04-19) fix bug in progressive JPEG handling, fix warning - 2.04 (2015-04-15) try to re-enable SIMD on MinGW 64-bit - 2.03 (2015-04-12) extra corruption checking (mmozeiko) - stbi_set_flip_vertically_on_load (nguillemot) - fix NEON support; fix mingw support - 2.02 (2015-01-19) fix incorrect assert, fix warning - 2.01 (2015-01-17) fix various warnings; suppress SIMD on gcc 32-bit without -msse2 - 2.00b (2014-12-25) fix STBI_MALLOC in progressive JPEG - 2.00 (2014-12-25) optimize JPG, including x86 SSE2 & NEON SIMD (ryg) - progressive JPEG (stb) - PGM/PPM support (Ken Miller) - STBI_MALLOC,STBI_REALLOC,STBI_FREE - GIF bugfix -- seemingly never worked - STBI_NO_*, STBI_ONLY_* - 1.48 (2014-12-14) fix incorrectly-named assert() - 1.47 (2014-12-14) 1/2/4-bit PNG support, both direct and paletted (Omar Cornut & stb) - optimize PNG (ryg) - fix bug in interlaced PNG with user-specified channel count (stb) - 1.46 (2014-08-26) - fix broken tRNS chunk (colorkey-style transparency) in non-paletted PNG - 1.45 (2014-08-16) - fix MSVC-ARM internal compiler error by wrapping malloc - 1.44 (2014-08-07) - various warning fixes from Ronny Chevalier - 1.43 (2014-07-15) - fix MSVC-only compiler problem in code changed in 1.42 - 1.42 (2014-07-09) - don't define _CRT_SECURE_NO_WARNINGS (affects user code) - fixes to stbi__cleanup_jpeg path - added STBI_ASSERT to avoid requiring assert.h - 1.41 (2014-06-25) - fix search&replace from 1.36 that messed up comments/error messages - 1.40 (2014-06-22) - fix gcc struct-initialization warning - 1.39 (2014-06-15) - fix to TGA optimization when req_comp != number of components in TGA; - fix to GIF loading because BMP wasn't rewinding (whoops, no GIFs in my test suite) - add support for BMP version 5 (more ignored fields) - 1.38 (2014-06-06) - suppress MSVC warnings on integer casts truncating values - fix accidental rename of 'skip' field of I/O - 1.37 (2014-06-04) - remove duplicate typedef - 1.36 (2014-06-03) - convert to header file single-file library - if de-iphone isn't set, load iphone images color-swapped instead of returning NULL - 1.35 (2014-05-27) - various warnings - fix broken STBI_SIMD path - fix bug where stbi_load_from_file no longer left file pointer in correct place - fix broken non-easy path for 32-bit BMP (possibly never used) - TGA optimization by Arseny Kapoulkine - 1.34 (unknown) - use STBI_NOTUSED in stbi__resample_row_generic(), fix one more leak in tga failure case - 1.33 (2011-07-14) - make stbi_is_hdr work in STBI_NO_HDR (as specified), minor compiler-friendly improvements - 1.32 (2011-07-13) - support for "info" function for all supported filetypes (SpartanJ) - 1.31 (2011-06-20) - a few more leak fixes, bug in PNG handling (SpartanJ) - 1.30 (2011-06-11) - added ability to load files via callbacks to accomidate custom input streams (Ben Wenger) - removed deprecated format-specific test/load functions - removed support for installable file formats (stbi_loader) -- would have been broken for IO callbacks anyway - error cases in bmp and tga give messages and don't leak (Raymond Barbiero, grisha) - fix inefficiency in decoding 32-bit BMP (David Woo) - 1.29 (2010-08-16) - various warning fixes from Aurelien Pocheville - 1.28 (2010-08-01) - fix bug in GIF palette transparency (SpartanJ) - 1.27 (2010-08-01) - cast-to-stbi_uc to fix warnings - 1.26 (2010-07-24) - fix bug in file buffering for PNG reported by SpartanJ - 1.25 (2010-07-17) - refix trans_data warning (Won Chun) - 1.24 (2010-07-12) - perf improvements reading from files on platforms with lock-heavy fgetc() - minor perf improvements for jpeg - deprecated type-specific functions so we'll get feedback if they're needed - attempt to fix trans_data warning (Won Chun) - 1.23 fixed bug in iPhone support - 1.22 (2010-07-10) - removed image *writing* support - stbi_info support from Jetro Lauha - GIF support from Jean-Marc Lienher - iPhone PNG-extensions from James Brown - warning-fixes from Nicolas Schulz and Janez Zemva (i.stbi__err. Janez (U+017D)emva) - 1.21 fix use of 'stbi_uc' in header (reported by jon blow) - 1.20 added support for Softimage PIC, by Tom Seddon - 1.19 bug in interlaced PNG corruption check (found by ryg) - 1.18 (2008-08-02) - fix a threading bug (local mutable static) - 1.17 support interlaced PNG - 1.16 major bugfix - stbi__convert_format converted one too many pixels - 1.15 initialize some fields for thread safety - 1.14 fix threadsafe conversion bug - header-file-only version (#define STBI_HEADER_FILE_ONLY before including) - 1.13 threadsafe - 1.12 const qualifiers in the API - 1.11 Support installable IDCT, colorspace conversion routines - 1.10 Fixes for 64-bit (don't use "unsigned long") - optimized upsampling by Fabian "ryg" Giesen - 1.09 Fix format-conversion for PSD code (bad global variables!) - 1.08 Thatcher Ulrich's PSD code integrated by Nicolas Schulz - 1.07 attempt to fix C++ warning/errors again - 1.06 attempt to fix C++ warning/errors again - 1.05 fix TGA loading to return correct *comp and use good luminance calc - 1.04 default float alpha is 1, not 255; use 'void *' for stbi_image_free - 1.03 bugfixes to STBI_NO_STDIO, STBI_NO_HDR - 1.02 support for (subset of) HDR files, float interface for preferred access to them - 1.01 fix bug: possible bug in handling right-side up bmps... not sure - fix bug: the stbi__bmp_load() and stbi__tga_load() functions didn't work at all - 1.00 interface to zlib that skips zlib header - 0.99 correct handling of alpha in palette - 0.98 TGA loader by lonesock; dynamically add loaders (untested) - 0.97 jpeg errors on too large a file; also catch another malloc failure - 0.96 fix detection of invalid v value - particleman@mollyrocket forum - 0.95 during header scan, seek to markers in case of padding - 0.94 STBI_NO_STDIO to disable stdio usage; rename all #defines the same - 0.93 handle jpegtran output; verbose errors - 0.92 read 4,8,16,24,32-bit BMP files of several formats - 0.91 output 24-bit Windows 3.0 BMP files - 0.90 fix a few more warnings; bump version number to approach 1.0 - 0.61 bugfixes due to Marc LeBlanc, Christopher Lloyd - 0.60 fix compiling as c++ - 0.59 fix warnings: merge Dave Moore's -Wall fixes - 0.58 fix bug: zlib uncompressed mode len/nlen was wrong endian - 0.57 fix bug: jpg last huffman symbol before marker was >9 bits but less than 16 available - 0.56 fix bug: zlib uncompressed mode len vs. nlen - 0.55 fix bug: restart_interval not initialized to 0 - 0.54 allow NULL for 'int *comp' - 0.53 fix bug in png 3->4; speedup png decoding - 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments - 0.51 obey req_comp requests, 1-component jpegs return as 1-component, - on 'test' only check type, not whether we support this variant - 0.50 (2006-11-19) - first released version -*/ - - -/* ------------------------------------------------------------------------------- -This software is available under 2 licenses -- choose whichever you prefer. ------------------------------------------------------------------------------- -ALTERNATIVE A - MIT License -Copyright (c) 2017 Sean Barrett -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. ------------------------------------------------------------------------------- -ALTERNATIVE B - Public Domain (www.unlicense.org) -This is free and unencumbered software released into the public domain. -Anyone is free to copy, modify, publish, use, compile, sell, or distribute this -software, either in source code form or as a compiled binary, for any purpose, -commercial or non-commercial, and by any means. -In jurisdictions that recognize copyright laws, the author or authors of this -software dedicate any and all copyright interest in the software to the public -domain. We make this dedication for the benefit of the public at large and to -the detriment of our heirs and successors. We intend this dedication to be an -overt act of relinquishment in perpetuity of all present and future rights to -this software under copyright law. -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 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. ------------------------------------------------------------------------------- -*/ diff --git a/libs/anr/examples/res/test.txt b/libs/anr/examples/res/test.txt deleted file mode 100644 index 174004b..0000000 --- a/libs/anr/examples/res/test.txt +++ /dev/null @@ -1,7 +0,0 @@ -# cid2code.txt (Version 10/24/2017) -# -# The data in this table contains nineteen tab-delimited columns of -# information. The contents of this file supplement "The Adobe-CNS1-7 -# Character Collection" (formerly Adobe Tech Note #5080): -# -# \ No newline at end of file diff --git a/libs/anr/examples/test_data.c b/libs/anr/examples/test_data.c deleted file mode 100644 index 22f9fc6..0000000 --- a/libs/anr/examples/test_data.c +++ /dev/null @@ -1,254 +0,0 @@ -#define ANR_DATA_DEBUG -//#define ANR_DATA_FULL_TEST_REPORT -#define ANR_DATA_IMPLEMENTATION -#include "../anr_data.h" - -#include - -#define TEST_LOOP 1 -#if 1 -#define HASH_LENGTH 50000 -#define ADD_REMOVE_COUNT 200000 -#else -#define HASH_LENGTH 2000 -#define ADD_REMOVE_COUNT 50000 -#endif - -int intptr; -static int* rand_int() -{ - static int rr = 1; - intptr = rr++; - return &intptr; -} - -void test_ds(anr_ds* list) -{ - int d = *rand_int(); - assert(ANR_DS_ADD(list, rand_int()) == 0); - assert(ANR_DS_ADD(list, &d) == 1); - assert(ANR_DS_ADD(list, rand_int()) == 2); - assert(ANR_DS_ADD(list, rand_int()) == 3); - - - assert(ANR_DS_FIND_AT(list, 1) != 0 && *(int*)ANR_DS_FIND_AT(list, 1) == d); - assert(ANR_DS_FIND_AT(list, 4) == 0); - assert(ANR_DS_LENGTH(list) == 4); - - //ANR_DS_PRINT(list); - - assert(ANR_DS_REMOVE_BY(list, ANR_DS_FIND_AT(list, 0)) == 1); - assert(ANR_DS_REMOVE_BY(list, ANR_DS_FIND_AT(list, 2)) == 1); - assert(ANR_DS_REMOVE_BY(list, ANR_DS_FIND_AT(list, 1)) == 1); - //assert(ANR_DS_REMOVE_BY(list, rand_int()) == 0); - - //assert(*(int*)ANR_DS_FIND_AT(list, 0) == d); - assert(ANR_DS_LENGTH(list) == 1); - - //ANR_DS_PRINT(list); - - ANR_DS_ADD(list, rand_int()); - ANR_DS_ADD(list, rand_int()); - ANR_DS_ADD(list, rand_int()); - ANR_DS_ADD(list, rand_int()); - - assert(ANR_DS_LENGTH(list) == 5); - - //ANR_DS_PRINT(list); - - void* data = ANR_DS_FIND_AT(list,2); - int32_t index = ANR_DS_FIND_BY(list, data); - assert(index == 2); - assert(ANR_DS_REMOVE_AT(list, index) == 1); - //ANR_DS_PRINT(list); - assert(ANR_DS_LENGTH(list) == 4); - - d = *rand_int(); - assert(ANR_DS_INSERT(list, 0, &d) == 1); - //assert(ANR_DS_INSERT(list, 99, &d) == 0); - - assert(ANR_DS_LENGTH(list) == 5); - //assert(*(int*)ANR_DS_FIND_AT(list, 0) == d); - - d = *rand_int(); - assert(ANR_DS_INSERT(list, 3, &d) == 1); - - //ANR_DS_PRINT(list); - - assert(ANR_DS_LENGTH(list) == 6); - //assert(*(int*)ANR_DS_FIND_AT(list, 3) == d); - - ANR_ITERATE(iter, list) - { - #ifdef ANR_DATA_DEBUG - //printf("#%d %p\n", iter.index, iter.data); - #endif - } - - int data7 = *rand_int(); - int data8 = *rand_int(); - int data9 = *rand_int(); - ANR_DS_ADD(list, rand_int()); - ANR_DS_INSERT(list, 7, &data7); - ANR_DS_INSERT(list, 8, &data8); - ANR_DS_INSERT(list, 9, &data9); - assert(ANR_DS_LENGTH(list) == 10); - int* found = (int*)ANR_DS_FIND_AT(list, 8); - if (found) { - ANR_DS_REMOVE_BY(list, ANR_DS_FIND_AT(list, 8)); - } - - - found = (int*)ANR_DS_FIND_AT(list, 8); - if (found) { // Only false for hashmaps. - assert(*found == data9); - } - - //ANR_DS_PRINT(list); - - ANR_DS_FREE(list); -} - - -char* random_hash() -{ - char* rr = malloc(HASH_LENGTH+1); - FILE* f; - #if 0 - for (int i = 0; i < HASH_LENGTH; i++) - { - rr[i] = rand() % 10; - } - rr[HASH_LENGTH] = 0; - - f = fopen("hash.txt", "w+"); - fwrite(rr, 1, HASH_LENGTH, f); - fclose(f); - #endif - - f = fopen("hash.txt", "rw"); - fread(rr, 1, HASH_LENGTH, f); - fclose(f); - return rr; -} - -void add_remove_test(anr_ds* ds) -{ - #ifdef ANR_DATA_FULL_TEST_REPORT - clock_t t = clock(); - #endif - for (uint32_t i = 0; i < ADD_REMOVE_COUNT; i++) - { - ANR_DS_INSERT(ds, i, rand_int()); - } - #ifdef ANR_DATA_FULL_TEST_REPORT - printf("-- add %.3fs\n", ((double)(clock() - t))/CLOCKS_PER_SEC); - #endif - - #ifdef ANR_DATA_FULL_TEST_REPORT - t = clock(); - #endif - uint32_t rand_index = 5; - for (uint32_t i = 0; i < ADD_REMOVE_COUNT; i++) - { - rand_index += 100; - if (rand_index >= ANR_DS_LENGTH(ds)) rand_index = 0; - ANR_DS_REMOVE_AT(ds, rand_index); - } - #ifdef ANR_DATA_FULL_TEST_REPORT - printf("-- remove %.3fs\n", ((double)(clock() - t))/CLOCKS_PER_SEC); - #endif - - ANR_DS_FREE(ds); -} - -void rand_test(anr_ds* ds, char* hash) -{ - for (uint32_t i = 0; i < HASH_LENGTH; i++) - { - uint8_t ch = hash[i]; - int rand_index = (rand() % (ANR_DS_LENGTH(ds)+1))-1; - if (rand_index < 0) rand_index = 0; - if (ch >= 0 && ch <= 5) ANR_DS_ADD(ds, rand_int()); - if (ch == 6) ANR_DS_INSERT(ds, rand_index, rand_int()); - if (ch == 7 || ch == 8) ANR_DS_REMOVE_AT(ds, rand_index); - if (ch == 9 && ANR_DS_LENGTH(ds) > rand_index) { - ANR_DS_REMOVE_BY(ds, ANR_DS_FIND_AT(ds, rand_index)); - } - } - - ANR_DS_FREE(ds); -} - - -int main(int argc, char** argvv) -{ - anr_linked_list list = ANR_DS_LINKED_LIST(sizeof(int)); - test_ds((anr_ds*)&list); - - anr_array array = ANR_DS_ARRAY(sizeof(int), 1); - test_ds((anr_ds*)&array); - - anr_hashmap hashmap = ANR_DS_HASHMAP(sizeof(int), 20); - test_ds((anr_ds*)&hashmap); - - char* rand = random_hash(); - clock_t t = clock(); - - for (int i = 0; i < TEST_LOOP; i++) - { - list = ANR_DS_LINKED_LIST(sizeof(int)); - rand_test((anr_ds*)&list, rand); - } - printf("linked list fuzzing %.3fs\n", ((double)(clock() - t))/CLOCKS_PER_SEC); - - t = clock(); - for (int i = 0; i < TEST_LOOP; i++) - { - char* rand = random_hash(); - array = ANR_DS_ARRAY(sizeof(int), 5); - rand_test((anr_ds*)&array, rand); - } - printf("array fuzzing %.3fs\n", ((double)(clock() - t))/CLOCKS_PER_SEC); - - t = clock(); - for (int i = 0; i < TEST_LOOP; i++) - { - char* rand = random_hash(); - hashmap = ANR_DS_HASHMAP(sizeof(int), 20); - rand_test((anr_ds*)&hashmap, rand); - } - printf("hashmap fuzzing %.3fs\n", ((double)(clock() - t))/CLOCKS_PER_SEC); - free(rand); - - t = clock(); - list = ANR_DS_LINKED_LIST(sizeof(int)); - add_remove_test((anr_ds*)&list); - printf("linkedlist addremove %.3fs\n", ((double)(clock() - t))/CLOCKS_PER_SEC); - - t = clock(); - array = ANR_DS_ARRAY(sizeof(int), ADD_REMOVE_COUNT); - add_remove_test((anr_ds*)&array); - printf("array addremove %.3fs\n", ((double)(clock() - t))/CLOCKS_PER_SEC); - - t = clock(); - hashmap = ANR_DS_HASHMAP(sizeof(int), ADD_REMOVE_COUNT); - add_remove_test((anr_ds*)&hashmap); - - printf("hashmap addremove %.3fs\n", ((double)(clock() - t))/CLOCKS_PER_SEC); - - return 0; -} - -/* -TEST RESULTS: 50000 hash length, 200000 add remove - -[v0.4] i7 4770 -linked list fuzzing 2.967s -array fuzzing 0.017s -hashmap fuzzing 0.347s -linkedlist addremove 0.541s -array addremove 4.365s -hashmap addremove 0.022s - -*/ \ No newline at end of file diff --git a/libs/anr/examples/test_pdf.c b/libs/anr/examples/test_pdf.c deleted file mode 100644 index 33f4e5d..0000000 --- a/libs/anr/examples/test_pdf.c +++ /dev/null @@ -1,267 +0,0 @@ -#define STB_IMAGE_IMPLEMENTATION -#include "res/stb_image.h" - -#define ANR_PDF_BUFFER_RESERVE 100000000 - -#define ANR_PDF_IMPLEMENTATION -#include "../anr_pdf.h" - -#include - -anr_pdf_obj bold_text_link; -anr_pdf_ref comic_sans; - -static anr_pdf_page create_page_1(anr_pdf* pdf) -{ - anr_pdf_page_begin(pdf, ANR_PDF_PAGE_SIZE_A4); - - anr_pdf_txt_conf info = anr_pdf_txt_conf_default(pdf); - info.font = comic_sans; - info.font_size = 20; - - anr_pdf_vecf size = anr_pdf_page_get_size(ANR_PDF_PAGE_SIZE_A4); - float textx = ANR_INCH_TO_USU(0.75); - size.y -= ANR_INCH_TO_USU(0.75); - - #define NEXT_LINE size.y -= 20; - NEXT_LINE; anr_pdf_add_text(pdf, "Hello world!", textx, size.y, info); - - info.color = ANR_PDF_RGB(1.0, 0.5, 0.0); - NEXT_LINE; anr_pdf_add_text(pdf, "Text with color", textx, size.y, info); - info.color = ANR_PDF_RGB(0.0, 0.0, 0.0); - - info.char_space = 4.0f; - NEXT_LINE; anr_pdf_add_text(pdf, "Text with character spacing", textx, size.y, info); - info.char_space = 0.0f; - - info.word_space = 10.0f; - NEXT_LINE; anr_pdf_add_text(pdf, "Text with word spacing", textx, size.y, info); - info.word_space = 0.0f; - - info.horizontal_scale = 150.0f; - NEXT_LINE; anr_pdf_add_text(pdf, "Text with big horizontal scale", textx, size.y, info); - info.horizontal_scale = 0.0f; - - info.horizontal_scale = 50.0f; - NEXT_LINE; anr_pdf_add_text(pdf, "Text with small horizontal scale", textx, size.y, info); - info.horizontal_scale = 100.0f; - - info.leading = 10.0f; - NEXT_LINE; anr_pdf_add_text(pdf, "Text with leading", textx, size.y, info); - size.y -= 10; - NEXT_LINE; - info.leading = 0.0f; - - char* funky_text = "Funky text that goes up and down"; - for (int i = 0; i < strlen(funky_text); i++) - { - char str[2]; - str[0] = funky_text[i]; - str[1] = 0; - info.rise = sin(i)*2.0f; - anr_pdf_add_text(pdf, str, textx + i*8, size.y, info); - } - info.rise = 0.0f; - - info.render_mode = ANR_PDF_TEXT_RENDERING_STROKE; - NEXT_LINE; anr_pdf_add_text(pdf, "Text rendered in outline mode", textx, size.y, info); - info.render_mode = ANR_PDF_TEXT_RENDERING_FILL; - - info.font_size = 36; - info.angle = M_PI/-4.0f; - NEXT_LINE;NEXT_LINE; anr_pdf_add_text(pdf, "This text is pretty big..", 300, size.y, info); - info.angle = 0.0f; - info.font_size = 12; - - info.font = pdf->default_font_bold_ref; - NEXT_LINE; anr_pdf_add_text(pdf, "This is bold text", textx, size.y, info); - info.font = pdf->default_font_ref; - - info.font = pdf->default_font_italic_ref; - NEXT_LINE; anr_pdf_add_text(pdf, "This is italic text", textx, size.y, info); - info.font = pdf->default_font_ref; - - info.font = pdf->default_font_italic_bold_ref; - NEXT_LINE; bold_text_link = anr_pdf_add_text(pdf, "This is a link in static bold text", textx, size.y, info); - info.font = pdf->default_font_ref; - - anr_pdf_add_page_label(pdf, "1", ANR_PDF_ALIGN_LEFT); - anr_pdf_page pageref = anr_pdf_page_end(pdf); - - anr_pdf_bookmark bm1 = anr_pdf_document_add_bookmark(pdf, pageref, NULL, NULL, "Chapter 1"); - anr_pdf_document_add_bookmark(pdf, pageref, &bold_text_link, &bm1, "Chapter 1.1"); - - anr_pdf_annot_cnf annot = ANR_PDF_ANNOT_CONF_DEFAULT; - annot.color = ANR_PDF_RGB(1.0f, 0.0f, 0.0f); - annot.posted_by = "John"; - anr_pdf_add_annotation_text(pdf, pageref, bold_text_link, "This text has an annotation", annot); - - return pageref; -} - -static anr_pdf_page create_page_2(anr_pdf* pdf) -{ - anr_pdf_obj line_ref; - anr_pdf_obj text_ref; - anr_pdf_page_begin(pdf, ANR_PDF_PAGE_SIZE_A4); - { - anr_pdf_vecf size = anr_pdf_page_get_size(ANR_PDF_PAGE_SIZE_A4); - - { - anr_pdf_gfx_conf gfx = ANR_PDF_GFX_CONF_DEFAULT; - gfx.line_cap = ANR_PDF_LINECAP_ROUNDED; - gfx.line_width = 10; - gfx.line_join = ANR_PDF_LINEJOIN_MITER; - gfx.miter_limit = 1; - gfx.color = ANR_PDF_RGB(1.0f, 0.0f, 0.0f); - gfx.fill = 1; - - anr_pdf_vecf line_data[] = { - {size.x - 10.0f, size.y - 10.0f}, - {size.x - 50.0f, size.y - 10.0f}, - {size.x - 70.0f, size.y - 70.0f}, - {size.x - 170.0f, size.y - 50.0f}, - {size.x - 300.0f, size.y - 20.0f}, - {size.x - 420.0f, size.y - 220.0f}, - {size.x - 380.0f, size.y - 180.0f}, - {size.x - 500.0f, size.y - 20.0f}, - }; - anr_pdf_add_polygon(pdf, line_data, 8, gfx); - } - - { - anr_pdf_gfx_conf gfx = ANR_PDF_GFX_CONF_DEFAULT; - gfx.line_cap = ANR_PDF_LINECAP_ROUNDED; - gfx.line_width = 10; - gfx.color = ANR_PDF_RGB(0.0f, 0.3f, 0.5f); - - anr_pdf_vecf line_data[] = { - {10.0f, 10.0f}, - {50.0f, 10.0f}, - {70.0f, 70.0f}, - {170.0f, 50.0f}, - {300.0f, 20.0f}, - {420.0f, 220.0f}, - {380.0f, 180.0f}, - {500.0f, 20.0f}, - }; - line_ref = anr_pdf_add_polygon(pdf, line_data, 8, gfx); - } - - { - anr_pdf_gfx_conf gfx = ANR_PDF_GFX_CONF_DEFAULT; - gfx.line_cap = ANR_PDF_LINECAP_ROUNDED; - gfx.line_width = 4; - gfx.color = ANR_PDF_RGB(0.0f, 1.0f, 0.0f); - gfx.fill = 1; - - anr_pdf_vecf line_data[] = { - {100.0f, 100.0f}, {200.0f, 200.0f}, {300.0f, 100.0f}, - {400.0f, 20.0f}, {500.0f, 200.0f}, - {700.0f, 700.0f}, {300.0f, 300.0f}, - }; - anr_pdf_add_cubic_bezier(pdf, line_data, 7, gfx); - } - - { - anr_pdf_gfx_conf gfx = ANR_PDF_GFX_CONF_DEFAULT; - gfx.line_cap = ANR_PDF_LINECAP_ROUNDED; - gfx.line_width = 10; - gfx.color = ANR_PDF_RGB(1.0f, 1.0f, 0.0f); - anr_pdf_add_line(pdf, (anr_pdf_vecf){350.0f, 700.0f}, (anr_pdf_vecf){350.0f, 100.0f}, gfx); - } - - text_ref = anr_pdf_add_text(pdf, "This page has some weird shapes...", 300, 500, ANR_PDF_TXT_CONF_DEFAULT); - - { - int w, h, bbs; - unsigned char *data = stbi_load("res/greenland_grid_velo.bmp", &w, &h, &bbs, 3); - printf("Bmp greenland: %d %d %d\n", w, h, bbs); - - anr_pdf_img img = anr_pdf_embed_image(pdf, data, w*h*bbs, w, h, 8); - anr_pdf_add_image(pdf, img, 0, 200, size.x/4, size.y/4); - - free(data); - } - - { - int w, h, bbs; - unsigned char *data = stbi_load("res/spongebob.png", &w, &h, &bbs,3); - printf("Bmp greenland: %d %d %d\n", w, h, bbs); - - anr_pdf_img img = anr_pdf_embed_image(pdf, data, w*h*3, w, h, 8); - anr_pdf_add_image(pdf, img, 400, 200, size.x/4, size.y/4); - - free(data); - } - } - - anr_pdf_add_page_label(pdf, "2", ANR_PDF_ALIGN_CENTER); - - anr_pdf_page pageref = anr_pdf_page_end(pdf); - - anr_pdf_annot_cnf annot = ANR_PDF_ANNOT_CONF_DEFAULT; - annot.post_date = "20240323201500-00'00"; - annot.posted_by = "Aldrik"; - anr_pdf_annot root = anr_pdf_add_annotation_markup(pdf, pageref, text_ref, "This text is highlighted", ANR_PDF_ANNOTATION_MARKUP_HIGHLIGHT, annot); - - annot = ANR_PDF_ANNOT_CONF_DEFAULT; - annot.posted_by = "Joe"; - annot.parent = root; - anr_pdf_add_annotation_text(pdf, pageref, text_ref, "But I dont like the color..", annot); - - anr_pdf_bookmark bm2 = anr_pdf_document_add_bookmark(pdf, pageref, NULL, NULL, "Chapter 2"); - anr_pdf_document_add_bookmark(pdf, pageref, &line_ref, &bm2, "Chapter 2.1"); - - return pageref; -} - -static anr_pdf_page create_page_3(anr_pdf* pdf) -{ - anr_pdf_page_begin(pdf, ANR_PDF_PAGE_SIZE_A4); - anr_pdf_vecf size = anr_pdf_page_get_size(ANR_PDF_PAGE_SIZE_A4); - - float table_starty = size.y - 50; - float table_startx = 50; - float col_w = (size.x - (table_startx*2)) / 4; - float row_h = 60; - float rows[] = {table_starty-(row_h*0), table_starty-(row_h*1), table_starty-(row_h*2), table_starty-(row_h*3), table_starty-(row_h*4)}; - float cols[] = {table_startx+(col_w*0), table_startx+(col_w*1), table_startx+(col_w*3), table_startx+(col_w*4)}; - anr_pdf_add_table(pdf, rows, sizeof(rows)/sizeof(float), cols, sizeof(cols)/sizeof(float), ANR_PDF_RGB(0.8f, 0.8f, 0.8f)); - - anr_pdf_add_page_label(pdf, "3", ANR_PDF_ALIGN_RIGHT); - anr_pdf_page pageref = anr_pdf_page_end(pdf); - return pageref; -} - - -int main() -{ - anr_pdf* pdf = anr_pdf_document_begin(); - anr_pdf_document_add_information_dictionary(pdf, - "Simple text document", "Aldrik", "Cool Banana's", - "Text, Bananas", NULL, "anr_pdf Library", "20240318201500-00'00", NULL); - - FILE* file = fopen("res/ButterflyKids-Regular.ttf", "rw"); - fseek(file, 0, SEEK_END); - size_t ttf_size = ftell(file); - printf("Comic sans: %d\n", (int)ttf_size); - rewind(file); - unsigned char* ttf_buffer = malloc(ttf_size); - fread(ttf_buffer, 1, ttf_size, file); - comic_sans = anr_pdf_embed_ttf(pdf, ttf_buffer, ttf_size); - free(ttf_buffer); - - anr_pdf_page page1 = create_page_1(pdf); - anr_pdf_page page2 = create_page_2(pdf); - create_page_3(pdf); - - anr_pdf_add_annotation_link(pdf, page1, bold_text_link, page2, NULL, ANR_PDF_ANNOT_CONF_DEFAULT); - - anr_pdf_document_end(pdf); - anr_pdf_write_to_file(pdf, "bin/test_pdf.pdf"); - - anr_pdf_document_free(pdf); - - return 0; -} \ No newline at end of file diff --git a/libs/anr/examples/test_sc.c b/libs/anr/examples/test_sc.c deleted file mode 100644 index 716635f..0000000 --- a/libs/anr/examples/test_sc.c +++ /dev/null @@ -1,98 +0,0 @@ -//#define ANR_SC_DEBUG -#define ANR_SC_IMPLEMENTATION -#include "../anr_sc.h" - -#include -#include -#include - -#define BYTE_TO_BINARY_PATTERN "%c%c%c%c%c%c%c%c" -#define BYTE_TO_BINARY(byte) \ - ((byte) & 0x80 ? '1' : '0'), \ - ((byte) & 0x40 ? '1' : '0'), \ - ((byte) & 0x20 ? '1' : '0'), \ - ((byte) & 0x10 ? '1' : '0'), \ - ((byte) & 0x08 ? '1' : '0'), \ - ((byte) & 0x04 ? '1' : '0'), \ - ((byte) & 0x02 ? '1' : '0'), \ - ((byte) & 0x01 ? '1' : '0') - -void test_small() -{ - uint8_t buffer[] = { 0, 32, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }; - //uint8_t buffer[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - uint32_t out; - uint8_t* compressed_data = anr_sc_deflate(buffer, sizeof(buffer), &out); - -#if 1 - printf("\n\n"); - for (int i = 0; i < out; i++) - { - printf(BYTE_TO_BINARY_PATTERN " ", BYTE_TO_BINARY(compressed_data[i])); - } - printf("\n\n"); - - uint8_t* decompressed_data = anr_sc_inflate(compressed_data, out, &out); - - printf("\n\n"); - for (int i = 0; i < out; i++) - { - printf(BYTE_TO_BINARY_PATTERN " ", BYTE_TO_BINARY(buffer[i])); - } - printf("\n"); - for (int i = 0; i < out; i++) - { - printf(BYTE_TO_BINARY_PATTERN " ", BYTE_TO_BINARY(decompressed_data[i])); - } - printf("\n\n"); -#endif - - assert(out == (int)sizeof(buffer)); - assert(memcmp(buffer, decompressed_data, out) == 0); -} - -void test_file(char* str) -{ - FILE* file = fopen(str, "rb"); - fseek(file, 0, SEEK_END); - int iso_size = ftell(file); - rewind(file); - unsigned char* iso_buffer = malloc(iso_size); - fread(iso_buffer, 1, iso_size, file); - fclose(file); - - printf("%s:", str); - uint32_t out; - uint8_t* compressed_data = anr_sc_deflate(iso_buffer, iso_size, &out); - uint8_t* decompressed_data = anr_sc_inflate(compressed_data, out, &out); - - assert(out == iso_size); - assert(memcmp(iso_buffer, decompressed_data, out) == 0); - - free(compressed_data); - free(decompressed_data); - free(iso_buffer); -} - -int main(int argc, char** argv) -{ - //test_small(); - - test_file("res/bible.txt"); - test_file("res/cid2code.txt"); - test_file("res/small.txt"); - test_file("res/test.txt"); - - #if 0 - test_file("test_data.c"); - test_file("test_pdf.c"); - test_file("test_sc.c"); - - test_file("../anr_data.h"); - test_file("../anr_pdf.h"); - test_file("../anr_sc.h"); - #endif - - - return 0; -} \ No newline at end of file diff --git a/libs/cpp-httplib/.gitattributes b/libs/cpp-httplib/.gitattributes deleted file mode 100644 index f818483..0000000 --- a/libs/cpp-httplib/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -/test/www*/dir/*.html text eol=lf -/test/www*/dir/*.txt text eol=lf \ No newline at end of file diff --git a/libs/cpp-httplib/.github/workflows/abidiff.yaml b/libs/cpp-httplib/.github/workflows/abidiff.yaml deleted file mode 100644 index 186e4fc..0000000 --- a/libs/cpp-httplib/.github/workflows/abidiff.yaml +++ /dev/null @@ -1,69 +0,0 @@ -# SPDX-FileCopyrightText: 2025 Andrea Pappacoda -# SPDX-License-Identifier: MIT - -name: abidiff - -on: [push, pull_request] - -concurrency: - group: ${{ github.workflow }}-${{ github.ref || github.run_id }} - cancel-in-progress: true - -defaults: - run: - shell: sh - -jobs: - abi: - runs-on: ubuntu-latest - if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name - container: - image: debian:testing - - steps: - - name: Install dependencies - run: apt -y --update install --no-install-recommends - abigail-tools - ca-certificates - g++ - git - libbrotli-dev - libssl-dev - meson - pkg-config - python3 - zlib1g-dev - - - uses: actions/checkout@v4 - with: - path: current - - - uses: actions/checkout@v4 - with: - path: previous - fetch-depth: 0 - - - name: Checkout previous - working-directory: previous - run: | - git switch master - git describe --tags --abbrev=0 master | xargs git checkout - - - name: Build current - working-directory: current - run: | - meson setup --buildtype=debug -Dcpp-httplib_compile=true build - ninja -C build - - - name: Build previous - working-directory: previous - run: | - meson setup --buildtype=debug -Dcpp-httplib_compile=true build - ninja -C build - - - name: Run abidiff - run: abidiff - --headers-dir1 previous/build - --headers-dir2 current/build - previous/build/libcpp-httplib.so - current/build/libcpp-httplib.so diff --git a/libs/cpp-httplib/.github/workflows/cifuzz.yaml b/libs/cpp-httplib/.github/workflows/cifuzz.yaml deleted file mode 100644 index 422b58d..0000000 --- a/libs/cpp-httplib/.github/workflows/cifuzz.yaml +++ /dev/null @@ -1,32 +0,0 @@ -name: CIFuzz - -on: [pull_request] - -concurrency: - group: ${{ github.workflow }}-${{ github.ref || github.run_id }} - cancel-in-progress: true - -jobs: - Fuzzing: - runs-on: ubuntu-latest - steps: - - name: Build Fuzzers - id: build - uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master - with: - oss-fuzz-project-name: 'cpp-httplib' - dry-run: false - language: c++ - - name: Run Fuzzers - uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master - with: - oss-fuzz-project-name: 'cpp-httplib' - fuzz-seconds: 600 - dry-run: false - language: c++ - - name: Upload Crash - uses: actions/upload-artifact@v4 - if: failure() && steps.build.outcome == 'success' - with: - name: artifacts - path: ./out/artifacts diff --git a/libs/cpp-httplib/.github/workflows/release-docker.yml b/libs/cpp-httplib/.github/workflows/release-docker.yml deleted file mode 100644 index 179ab82..0000000 --- a/libs/cpp-httplib/.github/workflows/release-docker.yml +++ /dev/null @@ -1,51 +0,0 @@ -name: Release Docker Image - -on: - release: - types: [published] - workflow_dispatch: - -jobs: - build-and-push: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 # Fetch all history and tags - - - name: Extract tag (manual) - if: github.event_name == 'workflow_dispatch' - id: set_tag_manual - run: | - # Checkout the latest tag and set output - git fetch --tags - LATEST_TAG=$(git describe --tags --abbrev=0) - git checkout $LATEST_TAG - echo "tag=${LATEST_TAG#v}" >> $GITHUB_OUTPUT - - - name: Extract tag (release) - if: github.event_name == 'release' - id: set_tag_release - run: echo "tag=${GITHUB_REF_NAME#v}" >> $GITHUB_OUTPUT - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Log in to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push Docker image - uses: docker/build-push-action@v5 - with: - context: . - file: ./Dockerfile - push: true - platforms: linux/amd64,linux/arm64 # Build for both amd64 and arm64 - # Use extracted tag without leading 'v' - tags: | - yhirose4dockerhub/cpp-httplib-server:latest - yhirose4dockerhub/cpp-httplib-server:${{ steps.set_tag_manual.outputs.tag || steps.set_tag_release.outputs.tag }} diff --git a/libs/cpp-httplib/.github/workflows/test.yaml b/libs/cpp-httplib/.github/workflows/test.yaml deleted file mode 100644 index 45dc91c..0000000 --- a/libs/cpp-httplib/.github/workflows/test.yaml +++ /dev/null @@ -1,171 +0,0 @@ -name: test - -on: - push: - pull_request: - workflow_dispatch: - inputs: - gtest_filter: - description: 'Google Test filter' - test_linux: - description: 'Test on Linux' - type: boolean - default: true - test_macos: - description: 'Test on MacOS' - type: boolean - default: true - test_windows: - description: 'Test on Windows' - type: boolean - default: true - -concurrency: - group: ${{ github.workflow }}-${{ github.ref || github.run_id }} - cancel-in-progress: true - -env: - GTEST_FILTER: ${{ github.event.inputs.gtest_filter || '*' }} - -jobs: - style-check: - runs-on: ubuntu-latest - if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name - continue-on-error: true - steps: - - name: checkout - uses: actions/checkout@v4 - - name: run style check - run: | - clang-format --version - cd test && make style_check - - build-error-check-on-32bit: - runs-on: ubuntu-latest - if: > - (github.event_name == 'push') || - (github.event_name == 'pull_request' && - github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name) || - (github.event_name == 'workflow_dispatch' && github.event.inputs.test_linux == 'true') - strategy: - matrix: - config: - - arch_flags: -m32 - arch_suffix: :i386 - name: (32-bit) - steps: - - name: checkout - uses: actions/checkout@v4 - - name: install libraries - run: | - sudo dpkg --add-architecture i386 - sudo apt-get update - sudo apt-get install -y libc6-dev${{ matrix.config.arch_suffix }} libstdc++-13-dev${{ matrix.config.arch_suffix }} \ - libssl-dev${{ matrix.config.arch_suffix }} libcurl4-openssl-dev${{ matrix.config.arch_suffix }} \ - zlib1g-dev${{ matrix.config.arch_suffix }} libbrotli-dev${{ matrix.config.arch_suffix }} \ - libzstd-dev${{ matrix.config.arch_suffix }} - - name: build and run tests (expect failure) - run: cd test && make test EXTRA_CXXFLAGS="${{ matrix.config.arch_flags }}" - continue-on-error: true - - ubuntu: - runs-on: ubuntu-latest - if: > - (github.event_name == 'push') || - (github.event_name == 'pull_request' && - github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name) || - (github.event_name == 'workflow_dispatch' && github.event.inputs.test_linux == 'true') - steps: - - name: checkout - uses: actions/checkout@v4 - - name: install libraries - run: | - sudo dpkg --add-architecture i386 - sudo apt-get update - sudo apt-get install -y libc6-dev${{ matrix.config.arch_suffix }} libstdc++-13-dev${{ matrix.config.arch_suffix }} \ - libssl-dev${{ matrix.config.arch_suffix }} libcurl4-openssl-dev${{ matrix.config.arch_suffix }} \ - zlib1g-dev${{ matrix.config.arch_suffix }} libbrotli-dev${{ matrix.config.arch_suffix }} \ - libzstd-dev${{ matrix.config.arch_suffix }} - - name: build and run tests - run: cd test && make EXTRA_CXXFLAGS="${{ matrix.config.arch_flags }}" - - name: run fuzz test target - run: cd test && make EXTRA_CXXFLAGS="${{ matrix.config.arch_flags }}" fuzz_test - - macos: - runs-on: macos-latest - if: > - (github.event_name == 'push') || - (github.event_name == 'pull_request' && - github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name) || - (github.event_name == 'workflow_dispatch' && github.event.inputs.test_macos == 'true') - steps: - - name: checkout - uses: actions/checkout@v4 - - name: build and run tests - run: cd test && make - - name: run fuzz test target - run: cd test && make fuzz_test - - windows: - runs-on: windows-latest - if: > - (github.event_name == 'push') || - (github.event_name == 'pull_request' && - github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name) || - (github.event_name == 'workflow_dispatch' && github.event.inputs.test_windows == 'true') - strategy: - matrix: - config: - - with_ssl: false - compiled: false - run_tests: true - name: without SSL - - with_ssl: true - compiled: false - run_tests: true - name: with SSL - - with_ssl: false - compiled: true - run_tests: false - name: compiled - name: windows ${{ matrix.config.name }} - steps: - - name: Prepare Git for Checkout on Windows - run: | - git config --global core.autocrlf false - git config --global core.eol lf - - name: Checkout - uses: actions/checkout@v4 - - name: Export GitHub Actions cache environment variables - uses: actions/github-script@v7 - with: - script: | - core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); - core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); - - name: Setup msbuild on windows - uses: microsoft/setup-msbuild@v2 - - name: Install vcpkg dependencies - run: vcpkg install gtest curl zlib brotli zstd - - name: Install OpenSSL - if: ${{ matrix.config.with_ssl }} - run: choco install openssl --version 3.5.2 # workaround for chocolatey issue with the latest OpenSSL - - name: Configure CMake ${{ matrix.config.name }} - run: > - cmake -B build -S . - -DCMAKE_BUILD_TYPE=Release - -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake - -DHTTPLIB_TEST=ON - -DHTTPLIB_COMPILE=${{ matrix.config.compiled && 'ON' || 'OFF' }} - -DHTTPLIB_REQUIRE_ZLIB=ON - -DHTTPLIB_REQUIRE_BROTLI=ON - -DHTTPLIB_REQUIRE_ZSTD=ON - -DHTTPLIB_REQUIRE_OPENSSL=${{ matrix.config.with_ssl && 'ON' || 'OFF' }} - - name: Build ${{ matrix.config.name }} - run: cmake --build build --config Release -- /v:m /clp:ShowCommandLine - - name: Run tests ${{ matrix.config.name }} - if: ${{ matrix.config.run_tests }} - run: ctest --output-on-failure --test-dir build -C Release - - env: - VCPKG_ROOT: "C:/vcpkg" - VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" diff --git a/libs/cpp-httplib/.github/workflows/test_proxy.yaml b/libs/cpp-httplib/.github/workflows/test_proxy.yaml deleted file mode 100644 index 571dc96..0000000 --- a/libs/cpp-httplib/.github/workflows/test_proxy.yaml +++ /dev/null @@ -1,20 +0,0 @@ -name: Proxy Test - -on: [push, pull_request] - -jobs: - test-proxy: - runs-on: ubuntu-latest - if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name - - steps: - - uses: actions/checkout@v3 - - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install -y build-essential libssl-dev zlib1g-dev libcurl4-openssl-dev libbrotli-dev libzstd-dev netcat-openbsd - - - name: Run proxy tests - run: | - cd test && make proxy \ No newline at end of file diff --git a/libs/cpp-httplib/CMakeLists.txt b/libs/cpp-httplib/CMakeLists.txt deleted file mode 100644 index d88fdde..0000000 --- a/libs/cpp-httplib/CMakeLists.txt +++ /dev/null @@ -1,359 +0,0 @@ -#[[ - Build options: - * BUILD_SHARED_LIBS (default off) builds as a shared library (if HTTPLIB_COMPILE is ON) - * HTTPLIB_USE_OPENSSL_IF_AVAILABLE (default on) - * HTTPLIB_USE_ZLIB_IF_AVAILABLE (default on) - * HTTPLIB_USE_BROTLI_IF_AVAILABLE (default on) - * HTTPLIB_USE_ZSTD_IF_AVAILABLE (default on) - * HTTPLIB_REQUIRE_OPENSSL (default off) - * HTTPLIB_REQUIRE_ZLIB (default off) - * HTTPLIB_REQUIRE_BROTLI (default off) - * HTTPLIB_REQUIRE_ZSTD (default off) - * HTTPLIB_USE_CERTS_FROM_MACOSX_KEYCHAIN (default on) - * HTTPLIB_USE_NON_BLOCKING_GETADDRINFO (default on) - * HTTPLIB_COMPILE (default off) - * HTTPLIB_INSTALL (default on) - * HTTPLIB_TEST (default off) - * BROTLI_USE_STATIC_LIBS - tells Cmake to use the static Brotli libs (only works if you have them installed). - * OPENSSL_USE_STATIC_LIBS - tells Cmake to use the static OpenSSL libs (only works if you have them installed). - - ------------------------------------------------------------------------------- - - After installation with Cmake, a find_package(httplib COMPONENTS OpenSSL ZLIB Brotli zstd) is available. - This creates a httplib::httplib target (if found and if listed components are supported). - It can be linked like so: - - target_link_libraries(your_exe httplib::httplib) - - The following will build & install for later use. - - Linux/macOS: - - mkdir -p build - cd build - cmake -DCMAKE_BUILD_TYPE=Release .. - sudo cmake --build . --target install - - Windows: - - mkdir build - cd build - cmake .. - runas /user:Administrator "cmake --build . --config Release --target install" - - ------------------------------------------------------------------------------- - - These variables are available after you run find_package(httplib) - * HTTPLIB_HEADER_PATH - this is the full path to the installed header (e.g. /usr/include/httplib.h). - * HTTPLIB_IS_USING_OPENSSL - a bool for if OpenSSL support is enabled. - * HTTPLIB_IS_USING_ZLIB - a bool for if ZLIB support is enabled. - * HTTPLIB_IS_USING_BROTLI - a bool for if Brotli support is enabled. - * HTTPLIB_IS_USING_ZSTD - a bool for if ZSTD support is enabled. - * HTTPLIB_IS_USING_CERTS_FROM_MACOSX_KEYCHAIN - a bool for if support of loading system certs from the Apple Keychain is enabled. - * HTTPLIB_IS_USING_NON_BLOCKING_GETADDRINFO - a bool for if nonblocking getaddrinfo is enabled. - * HTTPLIB_IS_COMPILED - a bool for if the library is compiled, or otherwise header-only. - * HTTPLIB_INCLUDE_DIR - the root path to httplib's header (e.g. /usr/include). - * HTTPLIB_LIBRARY - the full path to the library if compiled (e.g. /usr/lib/libhttplib.so). - * httplib_VERSION or HTTPLIB_VERSION - the project's version string. - * HTTPLIB_FOUND - a bool for if the target was found. - - Want to use precompiled headers (Cmake feature since v3.16)? - It's as simple as doing the following (before linking): - - target_precompile_headers(httplib::httplib INTERFACE "${HTTPLIB_HEADER_PATH}") - - ------------------------------------------------------------------------------- - - ARCH_INDEPENDENT option of write_basic_package_version_file() requires Cmake v3.14 -]] -cmake_minimum_required(VERSION 3.14.0 FATAL_ERROR) - -# Get the CPPHTTPLIB_VERSION value and use it as a version -# This gets the string with the CPPHTTPLIB_VERSION value from the header. -# This is so the maintainer doesn't actually need to update this manually. -file(STRINGS httplib.h _raw_version_string REGEX "CPPHTTPLIB_VERSION \"([0-9]+\\.[0-9]+\\.[0-9]+)\"") - -# Extracts just the version string itself from the whole string contained in _raw_version_string -# since _raw_version_string would contain the entire line of code where it found the version string -string(REGEX MATCH "([0-9]+\\.?)+" _httplib_version "${_raw_version_string}") - -project(httplib - VERSION ${_httplib_version} - LANGUAGES CXX - DESCRIPTION "A C++ header-only HTTP/HTTPS server and client library." - HOMEPAGE_URL "https://github.com/yhirose/cpp-httplib" -) - -# Change as needed to set an OpenSSL minimum version. -# This is used in the installed Cmake config file. -set(_HTTPLIB_OPENSSL_MIN_VER "3.0.0") - -# Lets you disable C++ exception during CMake configure time. -# The value is used in the install CMake config file. -option(HTTPLIB_NO_EXCEPTIONS "Disable the use of C++ exceptions" OFF) -# Allow for a build to require OpenSSL to pass, instead of just being optional -option(HTTPLIB_REQUIRE_OPENSSL "Requires OpenSSL to be found & linked, or fails build." OFF) -option(HTTPLIB_REQUIRE_ZLIB "Requires ZLIB to be found & linked, or fails build." OFF) -# Allow for a build to casually enable OpenSSL/ZLIB support, but silently continue if not found. -# Make these options so their automatic use can be specifically disabled (as needed) -option(HTTPLIB_USE_OPENSSL_IF_AVAILABLE "Uses OpenSSL (if available) to enable HTTPS support." ON) -option(HTTPLIB_USE_ZLIB_IF_AVAILABLE "Uses ZLIB (if available) to enable Zlib compression support." ON) -# Lets you compile the program as a regular library instead of header-only -option(HTTPLIB_COMPILE "If ON, uses a Python script to split the header into a compilable header & source file (requires Python v3)." OFF) -# Lets you disable the installation (useful when fetched from another CMake project) -option(HTTPLIB_INSTALL "Enables the installation target" ON) -option(HTTPLIB_TEST "Enables testing and builds tests" OFF) -option(HTTPLIB_REQUIRE_BROTLI "Requires Brotli to be found & linked, or fails build." OFF) -option(HTTPLIB_USE_BROTLI_IF_AVAILABLE "Uses Brotli (if available) to enable Brotli decompression support." ON) -option(HTTPLIB_USE_CERTS_FROM_MACOSX_KEYCHAIN "Enable feature to load system certs from the Apple Keychain." ON) -option(HTTPLIB_USE_NON_BLOCKING_GETADDRINFO "Enables the non-blocking alternatives for getaddrinfo." ON) -option(HTTPLIB_REQUIRE_ZSTD "Requires ZSTD to be found & linked, or fails build." OFF) -option(HTTPLIB_USE_ZSTD_IF_AVAILABLE "Uses ZSTD (if available) to enable zstd support." ON) -# Defaults to static library -option(BUILD_SHARED_LIBS "Build the library as a shared library instead of static. Has no effect if using header-only." OFF) -if(BUILD_SHARED_LIBS AND WIN32 AND HTTPLIB_COMPILE) - # Necessary for Windows if building shared libs - # See https://stackoverflow.com/a/40743080 - set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) -endif() - -if(CMAKE_SYSTEM_NAME MATCHES "Windows") - if(CMAKE_SYSTEM_VERSION) - if(${CMAKE_SYSTEM_VERSION} VERSION_LESS "10.0.0") - message(SEND_ERROR "Windows ${CMAKE_SYSTEM_VERSION} or lower is not supported. Please use Windows 10 or later.") - endif() - else() - set(CMAKE_SYSTEM_VERSION "10.0.19041.0") - message(WARNING "The target is Windows but CMAKE_SYSTEM_VERSION is not set, the default system version is set to Windows 10.") - endif() -endif() -if(CMAKE_SIZEOF_VOID_P LESS 8) - message(WARNING "Pointer size ${CMAKE_SIZEOF_VOID_P} is not supported. Please use a 64-bit compiler.") -endif() - -# Set some variables that are used in-tree and while building based on our options -set(HTTPLIB_IS_COMPILED ${HTTPLIB_COMPILE}) -set(HTTPLIB_IS_USING_CERTS_FROM_MACOSX_KEYCHAIN ${HTTPLIB_USE_CERTS_FROM_MACOSX_KEYCHAIN}) -set(HTTPLIB_IS_USING_NON_BLOCKING_GETADDRINFO ${HTTPLIB_USE_NON_BLOCKING_GETADDRINFO}) - -# Threads needed for on some systems, and for on Linux -set(THREADS_PREFER_PTHREAD_FLAG TRUE) -find_package(Threads REQUIRED) -# Since Cmake v3.11, Crypto & SSL became optional when not specified as COMPONENTS. -if(HTTPLIB_REQUIRE_OPENSSL) - find_package(OpenSSL ${_HTTPLIB_OPENSSL_MIN_VER} COMPONENTS Crypto SSL REQUIRED) - set(HTTPLIB_IS_USING_OPENSSL TRUE) -elseif(HTTPLIB_USE_OPENSSL_IF_AVAILABLE) - find_package(OpenSSL ${_HTTPLIB_OPENSSL_MIN_VER} COMPONENTS Crypto SSL QUIET) - # Avoid a rare circumstance of not finding all components but the end-user did their - # own call for OpenSSL, which might trick us into thinking we'd otherwise have what we wanted - if (TARGET OpenSSL::SSL AND TARGET OpenSSL::Crypto) - set(HTTPLIB_IS_USING_OPENSSL ${OPENSSL_FOUND}) - else() - set(HTTPLIB_IS_USING_OPENSSL FALSE) - endif() -endif() - -if(HTTPLIB_REQUIRE_ZLIB) - find_package(ZLIB REQUIRED) - set(HTTPLIB_IS_USING_ZLIB TRUE) -elseif(HTTPLIB_USE_ZLIB_IF_AVAILABLE) - find_package(ZLIB QUIET) - # FindZLIB doesn't have a ZLIB_FOUND variable, so check the target. - if(TARGET ZLIB::ZLIB) - set(HTTPLIB_IS_USING_ZLIB TRUE) - endif() -endif() - -# Adds our cmake folder to the search path for find_package -# This is so we can use our custom FindBrotli.cmake -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") -if(HTTPLIB_REQUIRE_BROTLI) - find_package(Brotli COMPONENTS encoder decoder common REQUIRED) - set(HTTPLIB_IS_USING_BROTLI TRUE) -elseif(HTTPLIB_USE_BROTLI_IF_AVAILABLE) - find_package(Brotli COMPONENTS encoder decoder common QUIET) - set(HTTPLIB_IS_USING_BROTLI ${Brotli_FOUND}) -endif() - -if(HTTPLIB_REQUIRE_ZSTD) - find_package(zstd) - if(NOT zstd_FOUND) - find_package(PkgConfig REQUIRED) - pkg_check_modules(zstd REQUIRED IMPORTED_TARGET libzstd) - add_library(zstd::libzstd ALIAS PkgConfig::zstd) - endif() - set(HTTPLIB_IS_USING_ZSTD TRUE) -elseif(HTTPLIB_USE_ZSTD_IF_AVAILABLE) - find_package(zstd QUIET) - if(NOT zstd_FOUND) - find_package(PkgConfig QUIET) - if(PKG_CONFIG_FOUND) - pkg_check_modules(zstd QUIET IMPORTED_TARGET libzstd) - - if(TARGET PkgConfig::zstd) - add_library(zstd::libzstd ALIAS PkgConfig::zstd) - endif() - endif() - endif() - # Both find_package and PkgConf set a XXX_FOUND var - set(HTTPLIB_IS_USING_ZSTD ${zstd_FOUND}) -endif() - -# Used for default, common dirs that the end-user can change (if needed) -# like CMAKE_INSTALL_INCLUDEDIR or CMAKE_INSTALL_DATADIR -include(GNUInstallDirs) - -if(HTTPLIB_COMPILE) - # Put the split script into the build dir - configure_file(split.py "${CMAKE_CURRENT_BINARY_DIR}/split.py" - COPYONLY - ) - # Needs to be in the same dir as the python script - configure_file(httplib.h "${CMAKE_CURRENT_BINARY_DIR}/httplib.h" - COPYONLY - ) - - # Used outside of this if-else - set(_INTERFACE_OR_PUBLIC PUBLIC) - # Brings in the Python3_EXECUTABLE path we can use. - find_package(Python3 REQUIRED) - # Actually split the file - # Keeps the output in the build dir to not pollute the main dir - execute_process(COMMAND ${Python3_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/split.py" - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - ERROR_VARIABLE _httplib_split_error - ) - if(_httplib_split_error) - message(FATAL_ERROR "Failed when trying to split cpp-httplib with the Python script.\n${_httplib_split_error}") - endif() - - # split.py puts output in "out" - set(_httplib_build_includedir "${CMAKE_CURRENT_BINARY_DIR}/out") - # This will automatically be either static or shared based on the value of BUILD_SHARED_LIBS - add_library(${PROJECT_NAME} "${_httplib_build_includedir}/httplib.cc") - target_sources(${PROJECT_NAME} - PUBLIC - $ - $ - ) - set_target_properties(${PROJECT_NAME} - PROPERTIES - VERSION ${${PROJECT_NAME}_VERSION} - SOVERSION "${${PROJECT_NAME}_VERSION_MAJOR}.${${PROJECT_NAME}_VERSION_MINOR}" - OUTPUT_NAME cpp-httplib - ) -else() - # This is for header-only. - set(_INTERFACE_OR_PUBLIC INTERFACE) - add_library(${PROJECT_NAME} INTERFACE) - set(_httplib_build_includedir "${CMAKE_CURRENT_SOURCE_DIR}") -endif() -# Lets you address the target with httplib::httplib -# Only useful if building in-tree, versus using it from an installation. -add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) - -# Require C++11 -target_compile_features(${PROJECT_NAME} ${_INTERFACE_OR_PUBLIC} cxx_std_11) - -target_include_directories(${PROJECT_NAME} SYSTEM ${_INTERFACE_OR_PUBLIC} - $ - $ -) - -# Always require threads -target_link_libraries(${PROJECT_NAME} ${_INTERFACE_OR_PUBLIC} - Threads::Threads - # Needed for Windows libs on Mingw, as the pragma comment(lib, "xyz") aren't triggered. - $<$:ws2_32> - $<$:crypt32> - # Needed for API from MacOS Security framework - "$<$,$,$>:-framework CoreFoundation -framework Security>" - # Can't put multiple targets in a single generator expression or it bugs out. - $<$:Brotli::common> - $<$:Brotli::encoder> - $<$:Brotli::decoder> - $<$:ZLIB::ZLIB> - $<$:zstd::libzstd> - $<$:OpenSSL::SSL> - $<$:OpenSSL::Crypto> -) - -# Set the definitions to enable optional features -target_compile_definitions(${PROJECT_NAME} ${_INTERFACE_OR_PUBLIC} - $<$:CPPHTTPLIB_NO_EXCEPTIONS> - $<$:CPPHTTPLIB_BROTLI_SUPPORT> - $<$:CPPHTTPLIB_ZLIB_SUPPORT> - $<$:CPPHTTPLIB_ZSTD_SUPPORT> - $<$:CPPHTTPLIB_OPENSSL_SUPPORT> - $<$,$,$>:CPPHTTPLIB_USE_CERTS_FROM_MACOSX_KEYCHAIN> - $<$:CPPHTTPLIB_USE_NON_BLOCKING_GETADDRINFO> -) - -# CMake configuration files installation directory -set(_TARGET_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") - -include(CMakePackageConfigHelpers) - -# Configures the meta-file httplibConfig.cmake.in to replace variables with paths/values/etc. -configure_package_config_file("cmake/${PROJECT_NAME}Config.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" - INSTALL_DESTINATION "${_TARGET_INSTALL_CMAKEDIR}" - # Passes the includedir install path - PATH_VARS CMAKE_INSTALL_FULL_INCLUDEDIR -) - -if(HTTPLIB_COMPILE) - write_basic_package_version_file("${PROJECT_NAME}ConfigVersion.cmake" - # Example: if you find_package(httplib 0.5.4) - # then anything >= 0.5.4 and < 0.6 is accepted - COMPATIBILITY SameMinorVersion - ) -else() - write_basic_package_version_file("${PROJECT_NAME}ConfigVersion.cmake" - # Example: if you find_package(httplib 0.5.4) - # then anything >= 0.5.4 and < 0.6 is accepted - COMPATIBILITY SameMinorVersion - # Tells Cmake that it's a header-only lib - # Mildly useful for end-users :) - ARCH_INDEPENDENT - ) -endif() - -if(HTTPLIB_INSTALL) - # Creates the export httplibTargets.cmake - # This is strictly what holds compilation requirements - # and linkage information (doesn't find deps though). - install(TARGETS ${PROJECT_NAME} EXPORT httplibTargets) - - install(FILES "${_httplib_build_includedir}/httplib.h" TYPE INCLUDE) - - install(FILES - "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" - # Install it so it can be used later by the httplibConfig.cmake file. - # Put it in the same dir as our config file instead of a global path so we don't potentially stomp on other packages. - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindBrotli.cmake" - DESTINATION ${_TARGET_INSTALL_CMAKEDIR} - ) - - # NOTE: This path changes depending on if it's on Windows or Linux - install(EXPORT httplibTargets - # Puts the targets into the httplib namespace - # So this makes httplib::httplib linkable after doing find_package(httplib) - NAMESPACE ${PROJECT_NAME}:: - DESTINATION ${_TARGET_INSTALL_CMAKEDIR} - ) - - # Install documentation & license - # ex: /usr/share/doc/httplib/README.md and /usr/share/licenses/httplib/LICENSE - install(FILES "README.md" DESTINATION "${CMAKE_INSTALL_DOCDIR}") - install(FILES "LICENSE" DESTINATION "${CMAKE_INSTALL_DATADIR}/licenses/${PROJECT_NAME}") - - include(CPack) -endif() - -if(HTTPLIB_TEST) - include(CTest) - add_subdirectory(test) -endif() diff --git a/libs/cpp-httplib/Dockerfile b/libs/cpp-httplib/Dockerfile deleted file mode 100644 index 3495b42..0000000 --- a/libs/cpp-httplib/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM yhirose4dockerhub/ubuntu-builder AS builder -WORKDIR /build -COPY httplib.h . -COPY docker/main.cc . -RUN g++ -std=c++23 -static -o server -O2 -I. main.cc && strip server - -FROM scratch -COPY --from=builder /build/server /server -COPY docker/html/index.html /html/index.html -EXPOSE 80 - -ENTRYPOINT ["/server"] -CMD ["--host", "0.0.0.0", "--port", "80", "--mount", "/:./html"] diff --git a/libs/cpp-httplib/benchmark/Makefile b/libs/cpp-httplib/benchmark/Makefile deleted file mode 100644 index 6dc93f0..0000000 --- a/libs/cpp-httplib/benchmark/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -CXXFLAGS = -std=c++11 -O2 -I.. - -CPPHTTPLIB_FLAGS = -DCPPHTTPLIB_THREAD_POOL_COUNT=16 - -BENCH = bombardier -c 10 -d 5s localhost:8080 -MONITOR = ali http://localhost:8080 - -# cpp-httplib -bench: server - @echo "--------------------\n cpp-httplib latest\n--------------------\n" - @./server & export PID=$$!; $(BENCH); kill $${PID} - @echo "" - -monitor: server - @./server & export PID=$$!; $(MONITOR); kill $${PID} - -run : server - @./server - -server : cpp-httplib/main.cpp ../httplib.h - @g++ -o $@ $(CXXFLAGS) $(CPPHTTPLIB_FLAGS) cpp-httplib/main.cpp - -# crow -bench-crow: server-crow - @echo "-------------\n Crow v1.2.0\n-------------\n" - @./server-crow & export PID=$$!; $(BENCH); kill $${PID} - @echo "" - -monitor-crow: server-crow - @./server-crow & export PID=$$!; $(MONITOR); kill $${PID} - -run-crow : server-crow - @./server-crow - -server-crow : crow/main.cpp - @g++ -o $@ $(CXXFLAGS) crow/main.cpp - -# misc -build: server server-crow - -bench-all: bench-crow bench - -issue: - bombardier -c 10 -d 30s localhost:8080 - -clean: - rm -rf server* diff --git a/libs/cpp-httplib/benchmark/cpp-httplib/main.cpp b/libs/cpp-httplib/benchmark/cpp-httplib/main.cpp deleted file mode 100644 index ab2e757..0000000 --- a/libs/cpp-httplib/benchmark/cpp-httplib/main.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include "httplib.h" -using namespace httplib; - -int main() { - Server svr; - - svr.Get("/", [](const Request &, Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - - svr.listen("0.0.0.0", 8080); -} diff --git a/libs/cpp-httplib/benchmark/crow/crow_all.h b/libs/cpp-httplib/benchmark/crow/crow_all.h deleted file mode 100644 index 0465f96..0000000 --- a/libs/cpp-httplib/benchmark/crow/crow_all.h +++ /dev/null @@ -1,14316 +0,0 @@ -// SPDX-License-Identifier: BSD-3-Clause AND ISC AND MIT -/*BSD 3-Clause License - -Copyright (c) 2014-2017, ipkn - 2020-2022, CrowCpp -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 the author 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 HOLDER 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. - -The Crow logo and other graphic material (excluding third party logos) used are under exclusive Copyright (c) 2021-2022, Farook Al-Sammarraie (The-EDev), All rights reserved. -*/ -#pragma once -// This file is generated from nginx/conf/mime.types using nginx_mime2cpp.py on 2021-12-03. -#include -#include - -namespace crow -{ - const std::unordered_map mime_types{ - {"shtml", "text/html"}, - {"htm", "text/html"}, - {"html", "text/html"}, - {"css", "text/css"}, - {"xml", "text/xml"}, - {"gif", "image/gif"}, - {"jpg", "image/jpeg"}, - {"jpeg", "image/jpeg"}, - {"js", "application/javascript"}, - {"atom", "application/atom+xml"}, - {"rss", "application/rss+xml"}, - {"mml", "text/mathml"}, - {"txt", "text/plain"}, - {"jad", "text/vnd.sun.j2me.app-descriptor"}, - {"wml", "text/vnd.wap.wml"}, - {"htc", "text/x-component"}, - {"avif", "image/avif"}, - {"png", "image/png"}, - {"svgz", "image/svg+xml"}, - {"svg", "image/svg+xml"}, - {"tiff", "image/tiff"}, - {"tif", "image/tiff"}, - {"wbmp", "image/vnd.wap.wbmp"}, - {"webp", "image/webp"}, - {"ico", "image/x-icon"}, - {"jng", "image/x-jng"}, - {"bmp", "image/x-ms-bmp"}, - {"woff", "font/woff"}, - {"woff2", "font/woff2"}, - {"ear", "application/java-archive"}, - {"war", "application/java-archive"}, - {"jar", "application/java-archive"}, - {"json", "application/json"}, - {"hqx", "application/mac-binhex40"}, - {"doc", "application/msword"}, - {"pdf", "application/pdf"}, - {"ai", "application/postscript"}, - {"eps", "application/postscript"}, - {"ps", "application/postscript"}, - {"rtf", "application/rtf"}, - {"m3u8", "application/vnd.apple.mpegurl"}, - {"kml", "application/vnd.google-earth.kml+xml"}, - {"kmz", "application/vnd.google-earth.kmz"}, - {"xls", "application/vnd.ms-excel"}, - {"eot", "application/vnd.ms-fontobject"}, - {"ppt", "application/vnd.ms-powerpoint"}, - {"odg", "application/vnd.oasis.opendocument.graphics"}, - {"odp", "application/vnd.oasis.opendocument.presentation"}, - {"ods", "application/vnd.oasis.opendocument.spreadsheet"}, - {"odt", "application/vnd.oasis.opendocument.text"}, - {"pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation"}, - {"xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}, - {"docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"}, - {"wmlc", "application/vnd.wap.wmlc"}, - {"wasm", "application/wasm"}, - {"7z", "application/x-7z-compressed"}, - {"cco", "application/x-cocoa"}, - {"jardiff", "application/x-java-archive-diff"}, - {"jnlp", "application/x-java-jnlp-file"}, - {"run", "application/x-makeself"}, - {"pm", "application/x-perl"}, - {"pl", "application/x-perl"}, - {"pdb", "application/x-pilot"}, - {"prc", "application/x-pilot"}, - {"rar", "application/x-rar-compressed"}, - {"rpm", "application/x-redhat-package-manager"}, - {"sea", "application/x-sea"}, - {"swf", "application/x-shockwave-flash"}, - {"sit", "application/x-stuffit"}, - {"tk", "application/x-tcl"}, - {"tcl", "application/x-tcl"}, - {"crt", "application/x-x509-ca-cert"}, - {"pem", "application/x-x509-ca-cert"}, - {"der", "application/x-x509-ca-cert"}, - {"xpi", "application/x-xpinstall"}, - {"xhtml", "application/xhtml+xml"}, - {"xspf", "application/xspf+xml"}, - {"zip", "application/zip"}, - {"dll", "application/octet-stream"}, - {"exe", "application/octet-stream"}, - {"bin", "application/octet-stream"}, - {"deb", "application/octet-stream"}, - {"dmg", "application/octet-stream"}, - {"img", "application/octet-stream"}, - {"iso", "application/octet-stream"}, - {"msm", "application/octet-stream"}, - {"msp", "application/octet-stream"}, - {"msi", "application/octet-stream"}, - {"kar", "audio/midi"}, - {"midi", "audio/midi"}, - {"mid", "audio/midi"}, - {"mp3", "audio/mpeg"}, - {"ogg", "audio/ogg"}, - {"m4a", "audio/x-m4a"}, - {"ra", "audio/x-realaudio"}, - {"3gp", "video/3gpp"}, - {"3gpp", "video/3gpp"}, - {"ts", "video/mp2t"}, - {"mp4", "video/mp4"}, - {"mpg", "video/mpeg"}, - {"mpeg", "video/mpeg"}, - {"mov", "video/quicktime"}, - {"webm", "video/webm"}, - {"flv", "video/x-flv"}, - {"m4v", "video/x-m4v"}, - {"mng", "video/x-mng"}, - {"asf", "video/x-ms-asf"}, - {"asx", "video/x-ms-asf"}, - {"wmv", "video/x-ms-wmv"}, - {"avi", "video/x-msvideo"}}; -} - - -#include - -namespace crow -{ - /// An abstract class that allows any other class to be returned by a handler. - struct returnable - { - std::string content_type; - virtual std::string dump() const = 0; - - returnable(std::string ctype): - content_type{ctype} - {} - - virtual ~returnable(){}; - }; -} // namespace crow - - -#include -#include -#include -#include -#include -#include -#include - -namespace crow -{ - -// ---------------------------------------------------------------------------- -// qs_parse (modified) -// https://github.com/bartgrantham/qs_parse -// ---------------------------------------------------------------------------- -/* Similar to strncmp, but handles URL-encoding for either string */ -int qs_strncmp(const char* s, const char* qs, size_t n); - - -/* Finds the beginning of each key/value pair and stores a pointer in qs_kv. - * Also decodes the value portion of the k/v pair *in-place*. In a future - * enhancement it will also have a compile-time option of sorting qs_kv - * alphabetically by key. */ -size_t qs_parse(char* qs, char* qs_kv[], size_t qs_kv_size, bool parse_url); - - -/* Used by qs_parse to decode the value portion of a k/v pair */ -int qs_decode(char * qs); - - -/* Looks up the value according to the key on a pre-processed query string - * A future enhancement will be a compile-time option to look up the key - * in a pre-sorted qs_kv array via a binary search. */ -//char * qs_k2v(const char * key, char * qs_kv[], int qs_kv_size); - char * qs_k2v(const char * key, char * const * qs_kv, size_t qs_kv_size, int nth); - - -/* Non-destructive lookup of value, based on key. User provides the - * destinaton string and length. */ -char * qs_scanvalue(const char * key, const char * qs, char * val, size_t val_len); - -// TODO: implement sorting of the qs_kv array; for now ensure it's not compiled -#undef _qsSORTING - -// isxdigit _is_ available in , but let's avoid another header instead -#define CROW_QS_ISHEX(x) ((((x)>='0'&&(x)<='9') || ((x)>='A'&&(x)<='F') || ((x)>='a'&&(x)<='f')) ? 1 : 0) -#define CROW_QS_HEX2DEC(x) (((x)>='0'&&(x)<='9') ? (x)-48 : ((x)>='A'&&(x)<='F') ? (x)-55 : ((x)>='a'&&(x)<='f') ? (x)-87 : 0) -#define CROW_QS_ISQSCHR(x) ((((x)=='=')||((x)=='#')||((x)=='&')||((x)=='\0')) ? 0 : 1) - -inline int qs_strncmp(const char * s, const char * qs, size_t n) -{ - unsigned char u1, u2, unyb, lnyb; - - while(n-- > 0) - { - u1 = static_cast(*s++); - u2 = static_cast(*qs++); - - if ( ! CROW_QS_ISQSCHR(u1) ) { u1 = '\0'; } - if ( ! CROW_QS_ISQSCHR(u2) ) { u2 = '\0'; } - - if ( u1 == '+' ) { u1 = ' '; } - if ( u1 == '%' ) // easier/safer than scanf - { - unyb = static_cast(*s++); - lnyb = static_cast(*s++); - if ( CROW_QS_ISHEX(unyb) && CROW_QS_ISHEX(lnyb) ) - u1 = (CROW_QS_HEX2DEC(unyb) * 16) + CROW_QS_HEX2DEC(lnyb); - else - u1 = '\0'; - } - - if ( u2 == '+' ) { u2 = ' '; } - if ( u2 == '%' ) // easier/safer than scanf - { - unyb = static_cast(*qs++); - lnyb = static_cast(*qs++); - if ( CROW_QS_ISHEX(unyb) && CROW_QS_ISHEX(lnyb) ) - u2 = (CROW_QS_HEX2DEC(unyb) * 16) + CROW_QS_HEX2DEC(lnyb); - else - u2 = '\0'; - } - - if ( u1 != u2 ) - return u1 - u2; - if ( u1 == '\0' ) - return 0; - } - if ( CROW_QS_ISQSCHR(*qs) ) - return -1; - else - return 0; -} - - -inline size_t qs_parse(char* qs, char* qs_kv[], size_t qs_kv_size, bool parse_url = true) -{ - size_t i, j; - char * substr_ptr; - - for(i=0; i means x iterations of this loop -> means *x+1* k/v pairs - substr_ptr += j + 1; - i++; - } - - // we only decode the values in place, the keys could have '='s in them - // which will hose our ability to distinguish keys from values later - for(j=0; j> qs_dict_name2kv(const char * dict_name, char * const * qs_kv, size_t qs_kv_size, int nth = 0) -{ - size_t i; - size_t name_len, skip_to_eq, skip_to_brace_open, skip_to_brace_close; - - name_len = strlen(dict_name); - -#ifdef _qsSORTING -// TODO: binary search for key in the sorted qs_kv -#else // _qsSORTING - for(i=0; i 0 && - skip_to_brace_close > 0 && - nth == 0 ) - { - auto key = std::string(qs_kv[i] + skip_to_brace_open, skip_to_brace_close - skip_to_brace_open); - auto value = std::string(qs_kv[i] + skip_to_eq); - return std::unique_ptr>(new std::pair(key, value)); - } - else - { - --nth; - } - } - } -#endif // _qsSORTING - - return nullptr; -} - - -inline char * qs_scanvalue(const char * key, const char * qs, char * val, size_t val_len) -{ - size_t i, key_len; - const char * tmp; - - // find the beginning of the k/v substrings - if ( (tmp = strchr(qs, '?')) != NULL ) - qs = tmp + 1; - - key_len = strlen(key); - while(qs[0] != '#' && qs[0] != '\0') - { - if ( qs_strncmp(key, qs, key_len) == 0 ) - break; - qs += strcspn(qs, "&") + 1; - } - - if ( qs[0] == '\0' ) return NULL; - - qs += strcspn(qs, "=&#"); - if ( qs[0] == '=' ) - { - qs++; - i = strcspn(qs, "&=#"); -#ifdef _MSC_VER - strncpy_s(val, val_len, qs, (val_len - 1)<(i + 1) ? (val_len - 1) : (i + 1)); -#else - strncpy(val, qs, (val_len - 1)<(i + 1) ? (val_len - 1) : (i + 1)); -#endif - qs_decode(val); - } - else - { - if ( val_len > 0 ) - val[0] = '\0'; - } - - return val; -} -} -// ---------------------------------------------------------------------------- - - -namespace crow -{ - struct request; - /// A class to represent any data coming after the `?` in the request URL into key-value pairs. - class query_string - { - public: - static const int MAX_KEY_VALUE_PAIRS_COUNT = 256; - - query_string() = default; - - query_string(const query_string& qs): - url_(qs.url_) - { - for (auto p : qs.key_value_pairs_) - { - key_value_pairs_.push_back((char*)(p - qs.url_.c_str() + url_.c_str())); - } - } - - query_string& operator=(const query_string& qs) - { - url_ = qs.url_; - key_value_pairs_.clear(); - for (auto p : qs.key_value_pairs_) - { - key_value_pairs_.push_back((char*)(p - qs.url_.c_str() + url_.c_str())); - } - return *this; - } - - query_string& operator=(query_string&& qs) noexcept - { - key_value_pairs_ = std::move(qs.key_value_pairs_); - char* old_data = (char*)qs.url_.c_str(); - url_ = std::move(qs.url_); - for (auto& p : key_value_pairs_) - { - p += (char*)url_.c_str() - old_data; - } - return *this; - } - - - query_string(std::string params, bool url = true): - url_(std::move(params)) - { - if (url_.empty()) - return; - - key_value_pairs_.resize(MAX_KEY_VALUE_PAIRS_COUNT); - size_t count = qs_parse(&url_[0], &key_value_pairs_[0], MAX_KEY_VALUE_PAIRS_COUNT, url); - - key_value_pairs_.resize(count); - key_value_pairs_.shrink_to_fit(); - } - - void clear() - { - key_value_pairs_.clear(); - url_.clear(); - } - - friend std::ostream& operator<<(std::ostream& os, const query_string& qs) - { - os << "[ "; - for (size_t i = 0; i < qs.key_value_pairs_.size(); ++i) - { - if (i) - os << ", "; - os << qs.key_value_pairs_[i]; - } - os << " ]"; - return os; - } - - /// Get a value from a name, used for `?name=value`. - - /// - /// Note: this method returns the value of the first occurrence of the key only, to return all occurrences, see \ref get_list(). - char* get(const std::string& name) const - { - char* ret = qs_k2v(name.c_str(), key_value_pairs_.data(), key_value_pairs_.size()); - return ret; - } - - /// Works similar to \ref get() except it removes the item from the query string. - char* pop(const std::string& name) - { - char* ret = get(name); - if (ret != nullptr) - { - for (unsigned int i = 0; i < key_value_pairs_.size(); i++) - { - std::string str_item(key_value_pairs_[i]); - if (str_item.substr(0, name.size() + 1) == name + '=') - { - key_value_pairs_.erase(key_value_pairs_.begin() + i); - break; - } - } - } - return ret; - } - - /// Returns a list of values, passed as `?name[]=value1&name[]=value2&...name[]=valuen` with n being the size of the list. - - /// - /// Note: Square brackets in the above example are controlled by `use_brackets` boolean (true by default). If set to false, the example becomes `?name=value1,name=value2...name=valuen` - std::vector get_list(const std::string& name, bool use_brackets = true) const - { - std::vector ret; - std::string plus = name + (use_brackets ? "[]" : ""); - char* element = nullptr; - - int count = 0; - while (1) - { - element = qs_k2v(plus.c_str(), key_value_pairs_.data(), key_value_pairs_.size(), count++); - if (!element) - break; - ret.push_back(element); - } - return ret; - } - - /// Similar to \ref get_list() but it removes the - std::vector pop_list(const std::string& name, bool use_brackets = true) - { - std::vector ret = get_list(name, use_brackets); - if (!ret.empty()) - { - for (unsigned int i = 0; i < key_value_pairs_.size(); i++) - { - std::string str_item(key_value_pairs_[i]); - if ((use_brackets ? (str_item.substr(0, name.size() + 3) == name + "[]=") : (str_item.substr(0, name.size() + 1) == name + '='))) - { - key_value_pairs_.erase(key_value_pairs_.begin() + i--); - } - } - } - return ret; - } - - /// Works similar to \ref get_list() except the brackets are mandatory must not be empty. - - /// - /// For example calling `get_dict(yourname)` on `?yourname[sub1]=42&yourname[sub2]=84` would give a map containing `{sub1 : 42, sub2 : 84}`. - /// - /// if your query string has both empty brackets and ones with a key inside, use pop_list() to get all the values without a key before running this method. - std::unordered_map get_dict(const std::string& name) const - { - std::unordered_map ret; - - int count = 0; - while (1) - { - if (auto element = qs_dict_name2kv(name.c_str(), key_value_pairs_.data(), key_value_pairs_.size(), count++)) - ret.insert(*element); - else - break; - } - return ret; - } - - /// Works the same as \ref get_dict() but removes the values from the query string. - std::unordered_map pop_dict(const std::string& name) - { - std::unordered_map ret = get_dict(name); - if (!ret.empty()) - { - for (unsigned int i = 0; i < key_value_pairs_.size(); i++) - { - std::string str_item(key_value_pairs_[i]); - if (str_item.substr(0, name.size() + 1) == name + '[') - { - key_value_pairs_.erase(key_value_pairs_.begin() + i--); - } - } - } - return ret; - } - - std::vector keys() const - { - std::vector keys; - keys.reserve(key_value_pairs_.size()); - - for (const char* const element : key_value_pairs_) - { - const char* delimiter = strchr(element, '='); - if (delimiter) - keys.emplace_back(element, delimiter); - else - keys.emplace_back(element); - } - - return keys; - } - - private: - std::string url_; - std::vector key_value_pairs_; - }; - -} // namespace crow - -#ifdef CROW_ENABLE_COMPRESSION - -#include -#include - -// http://zlib.net/manual.html -namespace crow // NOTE: Already documented in "crow/app.h" -{ - namespace compression - { - // Values used in the 'windowBits' parameter for deflateInit2. - enum algorithm - { - // 15 is the default value for deflate - DEFLATE = 15, - // windowBits can also be greater than 15 for optional gzip encoding. - // Add 16 to windowBits to write a simple gzip header and trailer around the compressed data instead of a zlib wrapper. - GZIP = 15 | 16, - }; - - inline std::string compress_string(std::string const& str, algorithm algo) - { - std::string compressed_str; - z_stream stream{}; - // Initialize with the default values - if (::deflateInit2(&stream, Z_DEFAULT_COMPRESSION, Z_DEFLATED, algo, 8, Z_DEFAULT_STRATEGY) == Z_OK) - { - char buffer[8192]; - - stream.avail_in = str.size(); - // zlib does not take a const pointer. The data is not altered. - stream.next_in = const_cast(reinterpret_cast(str.c_str())); - - int code = Z_OK; - do - { - stream.avail_out = sizeof(buffer); - stream.next_out = reinterpret_cast(&buffer[0]); - - code = ::deflate(&stream, Z_FINISH); - // Successful and non-fatal error code returned by deflate when used with Z_FINISH flush - if (code == Z_OK || code == Z_STREAM_END) - { - std::copy(&buffer[0], &buffer[sizeof(buffer) - stream.avail_out], std::back_inserter(compressed_str)); - } - - } while (code == Z_OK); - - if (code != Z_STREAM_END) - compressed_str.clear(); - - ::deflateEnd(&stream); - } - - return compressed_str; - } - - inline std::string decompress_string(std::string const& deflated_string) - { - std::string inflated_string; - Bytef tmp[8192]; - - z_stream zstream{}; - zstream.avail_in = deflated_string.size(); - // Nasty const_cast but zlib won't alter its contents - zstream.next_in = const_cast(reinterpret_cast(deflated_string.c_str())); - // Initialize with automatic header detection, for gzip support - if (::inflateInit2(&zstream, MAX_WBITS | 32) == Z_OK) - { - do - { - zstream.avail_out = sizeof(tmp); - zstream.next_out = &tmp[0]; - - auto ret = ::inflate(&zstream, Z_NO_FLUSH); - if (ret == Z_OK || ret == Z_STREAM_END) - { - std::copy(&tmp[0], &tmp[sizeof(tmp) - zstream.avail_out], std::back_inserter(inflated_string)); - } - else - { - // Something went wrong with inflate; make sure we return an empty string - inflated_string.clear(); - break; - } - - } while (zstream.avail_out == 0); - - // Free zlib's internal memory - ::inflateEnd(&zstream); - } - - return inflated_string; - } - } // namespace compression -} // namespace crow - -#endif - -/* - * SHA1 Wikipedia Page: http://en.wikipedia.org/wiki/SHA-1 - * - * Copyright (c) 2012-22 SAURAV MOHAPATRA - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/** - * \file TinySHA1.hpp - * \author SAURAV MOHAPATRA - * \date 2012-22 - * \brief TinySHA1 - a header only implementation of the SHA1 algorithm in C++. Based - * on the implementation in boost::uuid::details. - * - * In this file are defined: - * - sha1::SHA1 - */ -#ifndef _TINY_SHA1_HPP_ -#define _TINY_SHA1_HPP_ -#include -#include -#include -#include - -/** - * \namespace sha1 - * \brief Here is defined the SHA1 class - */ -namespace sha1 -{ - /** - * \class SHA1 - * \brief A tiny SHA1 algorithm implementation used internally in the - * Crow server (specifically in crow/websocket.h). - */ - class SHA1 - { - public: - typedef uint32_t digest32_t[5]; - typedef uint8_t digest8_t[20]; - inline static uint32_t LeftRotate(uint32_t value, size_t count) { - return (value << count) ^ (value >> (32-count)); - } - SHA1(){ reset(); } - virtual ~SHA1() {} - SHA1(const SHA1& s) { *this = s; } - const SHA1& operator = (const SHA1& s) { - memcpy(m_digest, s.m_digest, 5 * sizeof(uint32_t)); - memcpy(m_block, s.m_block, 64); - m_blockByteIndex = s.m_blockByteIndex; - m_byteCount = s.m_byteCount; - return *this; - } - SHA1& reset() { - m_digest[0] = 0x67452301; - m_digest[1] = 0xEFCDAB89; - m_digest[2] = 0x98BADCFE; - m_digest[3] = 0x10325476; - m_digest[4] = 0xC3D2E1F0; - m_blockByteIndex = 0; - m_byteCount = 0; - return *this; - } - SHA1& processByte(uint8_t octet) { - this->m_block[this->m_blockByteIndex++] = octet; - ++this->m_byteCount; - if(m_blockByteIndex == 64) { - this->m_blockByteIndex = 0; - processBlock(); - } - return *this; - } - SHA1& processBlock(const void* const start, const void* const end) { - const uint8_t* begin = static_cast(start); - const uint8_t* finish = static_cast(end); - while(begin != finish) { - processByte(*begin); - begin++; - } - return *this; - } - SHA1& processBytes(const void* const data, size_t len) { - const uint8_t* block = static_cast(data); - processBlock(block, block + len); - return *this; - } - const uint32_t* getDigest(digest32_t digest) { - size_t bitCount = this->m_byteCount * 8; - processByte(0x80); - if (this->m_blockByteIndex > 56) { - while (m_blockByteIndex != 0) { - processByte(0); - } - while (m_blockByteIndex < 56) { - processByte(0); - } - } else { - while (m_blockByteIndex < 56) { - processByte(0); - } - } - processByte(0); - processByte(0); - processByte(0); - processByte(0); - processByte( static_cast((bitCount>>24) & 0xFF)); - processByte( static_cast((bitCount>>16) & 0xFF)); - processByte( static_cast((bitCount>>8 ) & 0xFF)); - processByte( static_cast((bitCount) & 0xFF)); - - memcpy(digest, m_digest, 5 * sizeof(uint32_t)); - return digest; - } - const uint8_t* getDigestBytes(digest8_t digest) { - digest32_t d32; - getDigest(d32); - size_t di = 0; - digest[di++] = ((d32[0] >> 24) & 0xFF); - digest[di++] = ((d32[0] >> 16) & 0xFF); - digest[di++] = ((d32[0] >> 8) & 0xFF); - digest[di++] = ((d32[0]) & 0xFF); - - digest[di++] = ((d32[1] >> 24) & 0xFF); - digest[di++] = ((d32[1] >> 16) & 0xFF); - digest[di++] = ((d32[1] >> 8) & 0xFF); - digest[di++] = ((d32[1]) & 0xFF); - - digest[di++] = ((d32[2] >> 24) & 0xFF); - digest[di++] = ((d32[2] >> 16) & 0xFF); - digest[di++] = ((d32[2] >> 8) & 0xFF); - digest[di++] = ((d32[2]) & 0xFF); - - digest[di++] = ((d32[3] >> 24) & 0xFF); - digest[di++] = ((d32[3] >> 16) & 0xFF); - digest[di++] = ((d32[3] >> 8) & 0xFF); - digest[di++] = ((d32[3]) & 0xFF); - - digest[di++] = ((d32[4] >> 24) & 0xFF); - digest[di++] = ((d32[4] >> 16) & 0xFF); - digest[di++] = ((d32[4] >> 8) & 0xFF); - digest[di++] = ((d32[4]) & 0xFF); - return digest; - } - - protected: - void processBlock() { - uint32_t w[80]; - for (size_t i = 0; i < 16; i++) { - w[i] = (m_block[i*4 + 0] << 24); - w[i] |= (m_block[i*4 + 1] << 16); - w[i] |= (m_block[i*4 + 2] << 8); - w[i] |= (m_block[i*4 + 3]); - } - for (size_t i = 16; i < 80; i++) { - w[i] = LeftRotate((w[i-3] ^ w[i-8] ^ w[i-14] ^ w[i-16]), 1); - } - - uint32_t a = m_digest[0]; - uint32_t b = m_digest[1]; - uint32_t c = m_digest[2]; - uint32_t d = m_digest[3]; - uint32_t e = m_digest[4]; - - for (std::size_t i=0; i<80; ++i) { - uint32_t f = 0; - uint32_t k = 0; - - if (i<20) { - f = (b & c) | (~b & d); - k = 0x5A827999; - } else if (i<40) { - f = b ^ c ^ d; - k = 0x6ED9EBA1; - } else if (i<60) { - f = (b & c) | (b & d) | (c & d); - k = 0x8F1BBCDC; - } else { - f = b ^ c ^ d; - k = 0xCA62C1D6; - } - uint32_t temp = LeftRotate(a, 5) + f + e + k + w[i]; - e = d; - d = c; - c = LeftRotate(b, 30); - b = a; - a = temp; - } - - m_digest[0] += a; - m_digest[1] += b; - m_digest[2] += c; - m_digest[3] += d; - m_digest[4] += e; - } - private: - digest32_t m_digest; - uint8_t m_block[64]; - size_t m_blockByteIndex; - size_t m_byteCount; - }; -} -#endif - -// settings for crow -// TODO(ipkn) replace with runtime config. libucl? - -/* #ifdef - enables debug mode */ -//#define CROW_ENABLE_DEBUG - -/* #ifdef - enables logging */ -#define CROW_ENABLE_LOGGING - -/* #ifdef - enforces section 5.2 and 6.1 of RFC6455 (only accepting masked messages from clients) */ -//#define CROW_ENFORCE_WS_SPEC - -/* #define - specifies log level */ -/* - Debug = 0 - Info = 1 - Warning = 2 - Error = 3 - Critical = 4 - - default to INFO -*/ -#ifndef CROW_LOG_LEVEL -#define CROW_LOG_LEVEL 1 -#endif - -#ifndef CROW_STATIC_DIRECTORY -#define CROW_STATIC_DIRECTORY "static/" -#endif -#ifndef CROW_STATIC_ENDPOINT -#define CROW_STATIC_ENDPOINT "/static/" -#endif - -// compiler flags -#if defined(_MSVC_LANG) && _MSVC_LANG >= 201402L -#define CROW_CAN_USE_CPP14 -#endif -#if __cplusplus >= 201402L -#define CROW_CAN_USE_CPP14 -#endif - -#if defined(_MSVC_LANG) && _MSVC_LANG >= 201703L -#define CROW_CAN_USE_CPP17 -#endif -#if __cplusplus >= 201703L -#define CROW_CAN_USE_CPP17 -#if defined(__GNUC__) && __GNUC__ < 8 -#define CROW_FILESYSTEM_IS_EXPERIMENTAL -#endif -#endif - -#if defined(_MSC_VER) -#if _MSC_VER < 1900 -#define CROW_MSVC_WORKAROUND -#define constexpr const -#define noexcept throw() -#endif -#endif - -#if defined(__GNUC__) && __GNUC__ == 8 && __GNUC_MINOR__ < 4 -#if __cplusplus > 201103L -#define CROW_GCC83_WORKAROUND -#else -#error "GCC 8.1 - 8.3 has a bug that prevents Crow from compiling with C++11. Please update GCC to > 8.3 or use C++ > 11." -#endif -#endif - - -#ifdef CROW_USE_BOOST -#include -#include -#ifdef CROW_ENABLE_SSL -#include -#endif -#else -#ifndef ASIO_STANDALONE -#define ASIO_STANDALONE -#endif -#include -#include -#ifdef CROW_ENABLE_SSL -#include -#endif -#endif - -#if (CROW_USE_BOOST && BOOST_VERSION >= 107000) || (ASIO_VERSION >= 101300) -#define GET_IO_SERVICE(s) ((asio::io_context&)(s).get_executor().context()) -#else -#define GET_IO_SERVICE(s) ((s).get_io_service()) -#endif - -namespace crow -{ -#ifdef CROW_USE_BOOST - namespace asio = boost::asio; - using error_code = boost::system::error_code; -#else - using error_code = asio::error_code; -#endif - using tcp = asio::ip::tcp; - - /// A wrapper for the asio::ip::tcp::socket and asio::ssl::stream - struct SocketAdaptor - { - using context = void; - SocketAdaptor(asio::io_service& io_service, context*): - socket_(io_service) - {} - - asio::io_service& get_io_service() - { - return GET_IO_SERVICE(socket_); - } - - /// Get the TCP socket handling data trasfers, regardless of what layer is handling transfers on top of the socket. - tcp::socket& raw_socket() - { - return socket_; - } - - /// Get the object handling data transfers, this can be either a TCP socket or an SSL stream (if SSL is enabled). - tcp::socket& socket() - { - return socket_; - } - - tcp::endpoint remote_endpoint() - { - return socket_.remote_endpoint(); - } - - bool is_open() - { - return socket_.is_open(); - } - - void close() - { - error_code ec; - socket_.close(ec); - } - - void shutdown_readwrite() - { - error_code ec; - socket_.shutdown(asio::socket_base::shutdown_type::shutdown_both, ec); - } - - void shutdown_write() - { - error_code ec; - socket_.shutdown(asio::socket_base::shutdown_type::shutdown_send, ec); - } - - void shutdown_read() - { - error_code ec; - socket_.shutdown(asio::socket_base::shutdown_type::shutdown_receive, ec); - } - - template - void start(F f) - { - f(error_code()); - } - - tcp::socket socket_; - }; - -#ifdef CROW_ENABLE_SSL - struct SSLAdaptor - { - using context = asio::ssl::context; - using ssl_socket_t = asio::ssl::stream; - SSLAdaptor(asio::io_service& io_service, context* ctx): - ssl_socket_(new ssl_socket_t(io_service, *ctx)) - {} - - asio::ssl::stream& socket() - { - return *ssl_socket_; - } - - tcp::socket::lowest_layer_type& - raw_socket() - { - return ssl_socket_->lowest_layer(); - } - - tcp::endpoint remote_endpoint() - { - return raw_socket().remote_endpoint(); - } - - bool is_open() - { - return ssl_socket_ ? raw_socket().is_open() : false; - } - - void close() - { - if (is_open()) - { - error_code ec; - raw_socket().close(ec); - } - } - - void shutdown_readwrite() - { - if (is_open()) - { - error_code ec; - raw_socket().shutdown(asio::socket_base::shutdown_type::shutdown_both, ec); - } - } - - void shutdown_write() - { - if (is_open()) - { - error_code ec; - raw_socket().shutdown(asio::socket_base::shutdown_type::shutdown_send, ec); - } - } - - void shutdown_read() - { - if (is_open()) - { - error_code ec; - raw_socket().shutdown(asio::socket_base::shutdown_type::shutdown_receive, ec); - } - } - - asio::io_service& get_io_service() - { - return GET_IO_SERVICE(raw_socket()); - } - - template - void start(F f) - { - ssl_socket_->async_handshake(asio::ssl::stream_base::server, - [f](const error_code& ec) { - f(ec); - }); - } - - std::unique_ptr> ssl_socket_; - }; -#endif -} // namespace crow - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -#if defined(CROW_CAN_USE_CPP17) && !defined(CROW_FILESYSTEM_IS_EXPERIMENTAL) -#include -#endif - -// TODO(EDev): Adding C++20's [[likely]] and [[unlikely]] attributes might be useful -#if defined(__GNUG__) || defined(__clang__) -#define CROW_LIKELY(X) __builtin_expect(!!(X), 1) -#define CROW_UNLIKELY(X) __builtin_expect(!!(X), 0) -#else -#define CROW_LIKELY(X) (X) -#define CROW_UNLIKELY(X) (X) -#endif - -namespace crow -{ - /// @cond SKIP - namespace black_magic - { -#ifndef CROW_MSVC_WORKAROUND - /// Out of Range Exception for const_str - struct OutOfRange - { - OutOfRange(unsigned /*pos*/, unsigned /*length*/) {} - }; - /// Helper function to throw an exception if i is larger than len - constexpr unsigned requires_in_range(unsigned i, unsigned len) - { - return i >= len ? throw OutOfRange(i, len) : i; - } - - /// A constant string implementation. - class const_str - { - const char* const begin_; - unsigned size_; - - public: - template - constexpr const_str(const char (&arr)[N]): - begin_(arr), size_(N - 1) - { - static_assert(N >= 1, "not a string literal"); - } - constexpr char operator[](unsigned i) const - { - return requires_in_range(i, size_), begin_[i]; - } - - constexpr operator const char*() const - { - return begin_; - } - - constexpr const char* begin() const { return begin_; } - constexpr const char* end() const { return begin_ + size_; } - - constexpr unsigned size() const - { - return size_; - } - }; - - constexpr unsigned find_closing_tag(const_str s, unsigned p) - { - return s[p] == '>' ? p : find_closing_tag(s, p + 1); - } - - /// Check that the CROW_ROUTE string is valid - constexpr bool is_valid(const_str s, unsigned i = 0, int f = 0) - { - return i == s.size() ? f == 0 : - f < 0 || f >= 2 ? false : - s[i] == '<' ? is_valid(s, i + 1, f + 1) : - s[i] == '>' ? is_valid(s, i + 1, f - 1) : - is_valid(s, i + 1, f); - } - - constexpr bool is_equ_p(const char* a, const char* b, unsigned n) - { - return *a == 0 && *b == 0 && n == 0 ? true : - (*a == 0 || *b == 0) ? false : - n == 0 ? true : - *a != *b ? false : - is_equ_p(a + 1, b + 1, n - 1); - } - - constexpr bool is_equ_n(const_str a, unsigned ai, const_str b, unsigned bi, unsigned n) - { - return ai + n > a.size() || bi + n > b.size() ? false : - n == 0 ? true : - a[ai] != b[bi] ? false : - is_equ_n(a, ai + 1, b, bi + 1, n - 1); - } - - constexpr bool is_int(const_str s, unsigned i) - { - return is_equ_n(s, i, "", 0, 5); - } - - constexpr bool is_uint(const_str s, unsigned i) - { - return is_equ_n(s, i, "", 0, 6); - } - - constexpr bool is_float(const_str s, unsigned i) - { - return is_equ_n(s, i, "", 0, 7) || - is_equ_n(s, i, "", 0, 8); - } - - constexpr bool is_str(const_str s, unsigned i) - { - return is_equ_n(s, i, "", 0, 5) || - is_equ_n(s, i, "", 0, 8); - } - - constexpr bool is_path(const_str s, unsigned i) - { - return is_equ_n(s, i, "", 0, 6); - } -#endif - template - struct parameter_tag - { - static const int value = 0; - }; -#define CROW_INTERNAL_PARAMETER_TAG(t, i) \ - template<> \ - struct parameter_tag \ - { \ - static const int value = i; \ - } - CROW_INTERNAL_PARAMETER_TAG(int, 1); - CROW_INTERNAL_PARAMETER_TAG(char, 1); - CROW_INTERNAL_PARAMETER_TAG(short, 1); - CROW_INTERNAL_PARAMETER_TAG(long, 1); - CROW_INTERNAL_PARAMETER_TAG(long long, 1); - CROW_INTERNAL_PARAMETER_TAG(unsigned int, 2); - CROW_INTERNAL_PARAMETER_TAG(unsigned char, 2); - CROW_INTERNAL_PARAMETER_TAG(unsigned short, 2); - CROW_INTERNAL_PARAMETER_TAG(unsigned long, 2); - CROW_INTERNAL_PARAMETER_TAG(unsigned long long, 2); - CROW_INTERNAL_PARAMETER_TAG(double, 3); - CROW_INTERNAL_PARAMETER_TAG(std::string, 4); -#undef CROW_INTERNAL_PARAMETER_TAG - template - struct compute_parameter_tag_from_args_list; - - template<> - struct compute_parameter_tag_from_args_list<> - { - static const int value = 0; - }; - - template - struct compute_parameter_tag_from_args_list - { - static const int sub_value = - compute_parameter_tag_from_args_list::value; - static const int value = - parameter_tag::type>::value ? sub_value * 6 + parameter_tag::type>::value : sub_value; - }; - - static inline bool is_parameter_tag_compatible(uint64_t a, uint64_t b) - { - if (a == 0) - return b == 0; - if (b == 0) - return a == 0; - int sa = a % 6; - int sb = a % 6; - if (sa == 5) sa = 4; - if (sb == 5) sb = 4; - if (sa != sb) - return false; - return is_parameter_tag_compatible(a / 6, b / 6); - } - - static inline unsigned find_closing_tag_runtime(const char* s, unsigned p) - { - return s[p] == 0 ? throw std::runtime_error("unmatched tag <") : - s[p] == '>' ? p : - find_closing_tag_runtime(s, p + 1); - } - - static inline uint64_t get_parameter_tag_runtime(const char* s, unsigned p = 0) - { - return s[p] == 0 ? 0 : - s[p] == '<' ? ( - std::strncmp(s + p, "", 5) == 0 ? get_parameter_tag_runtime(s, find_closing_tag_runtime(s, p)) * 6 + 1 : - std::strncmp(s + p, "", 6) == 0 ? get_parameter_tag_runtime(s, find_closing_tag_runtime(s, p)) * 6 + 2 : - (std::strncmp(s + p, "", 7) == 0 || - std::strncmp(s + p, "", 8) == 0) ? - get_parameter_tag_runtime(s, find_closing_tag_runtime(s, p)) * 6 + 3 : - (std::strncmp(s + p, "", 5) == 0 || - std::strncmp(s + p, "", 8) == 0) ? - get_parameter_tag_runtime(s, find_closing_tag_runtime(s, p)) * 6 + 4 : - std::strncmp(s + p, "", 6) == 0 ? get_parameter_tag_runtime(s, find_closing_tag_runtime(s, p)) * 6 + 5 : - throw std::runtime_error("invalid parameter type")) : - get_parameter_tag_runtime(s, p + 1); - } -#ifndef CROW_MSVC_WORKAROUND - constexpr uint64_t get_parameter_tag(const_str s, unsigned p = 0) - { - return p == s.size() ? 0 : - s[p] == '<' ? ( - is_int(s, p) ? get_parameter_tag(s, find_closing_tag(s, p)) * 6 + 1 : - is_uint(s, p) ? get_parameter_tag(s, find_closing_tag(s, p)) * 6 + 2 : - is_float(s, p) ? get_parameter_tag(s, find_closing_tag(s, p)) * 6 + 3 : - is_str(s, p) ? get_parameter_tag(s, find_closing_tag(s, p)) * 6 + 4 : - is_path(s, p) ? get_parameter_tag(s, find_closing_tag(s, p)) * 6 + 5 : - throw std::runtime_error("invalid parameter type")) : - get_parameter_tag(s, p + 1); - } -#endif - - template - struct S - { - template - using push = S; - template - using push_back = S; - template class U> - using rebind = U; - }; - - // Check whether the template function can be called with specific arguments - template - struct CallHelper; - template - struct CallHelper> - { - template()(std::declval()...))> - static char __test(int); - - template - static int __test(...); - - static constexpr bool value = sizeof(__test(0)) == sizeof(char); - }; - - // Check Tuple contains type T - template - struct has_type; - - template - struct has_type> : std::false_type - {}; - - template - struct has_type> : has_type> - {}; - - template - struct has_type> : std::true_type - {}; - - // Find index of type in tuple - template - struct tuple_index; - - template - struct tuple_index> - { - static const int value = 0; - }; - - template - struct tuple_index> - { - static const int value = 1 + tuple_index>::value; - }; - - // Extract element from forward tuple or get default -#ifdef CROW_CAN_USE_CPP14 - template - typename std::enable_if::value, typename std::decay::type&&>::type - tuple_extract(Tup& tup) - { - return std::move(std::get(tup)); - } -#else - template - typename std::enable_if::value, T&&>::type - tuple_extract(Tup& tup) - { - return std::move(std::get::value>(tup)); - } -#endif - - template - typename std::enable_if::value, T>::type - tuple_extract(Tup&) - { - return T{}; - } - - // Kind of fold expressions in C++11 - template - struct bool_pack; - template - using all_true = std::is_same, bool_pack>; - - template - struct single_tag_to_type - {}; - - template<> - struct single_tag_to_type<1> - { - using type = int64_t; - }; - - template<> - struct single_tag_to_type<2> - { - using type = uint64_t; - }; - - template<> - struct single_tag_to_type<3> - { - using type = double; - }; - - template<> - struct single_tag_to_type<4> - { - using type = std::string; - }; - - template<> - struct single_tag_to_type<5> - { - using type = std::string; - }; - - - template - struct arguments - { - using subarguments = typename arguments::type; - using type = - typename subarguments::template push::type>; - }; - - template<> - struct arguments<0> - { - using type = S<>; - }; - - template - struct last_element_type - { - using type = typename std::tuple_element>::type; - }; - - - template<> - struct last_element_type<> - {}; - - - // from http://stackoverflow.com/questions/13072359/c11-compile-time-array-with-logarithmic-evaluation-depth - template - using Invoke = typename T::type; - - template - struct seq - { - using type = seq; - }; - - template - struct concat; - - template - struct concat, seq> : seq - {}; - - template - using Concat = Invoke>; - - template - struct gen_seq; - template - using GenSeq = Invoke>; - - template - struct gen_seq : Concat, GenSeq> - {}; - - template<> - struct gen_seq<0> : seq<> - {}; - template<> - struct gen_seq<1> : seq<0> - {}; - - template - struct pop_back_helper; - - template - struct pop_back_helper, Tuple> - { - template class U> - using rebind = U::type...>; - }; - - template - struct pop_back //: public pop_back_helper::type, std::tuple> - { - template class U> - using rebind = typename pop_back_helper::type, std::tuple>::template rebind; - }; - - template<> - struct pop_back<> - { - template class U> - using rebind = U<>; - }; - - // from http://stackoverflow.com/questions/2118541/check-if-c0x-parameter-pack-contains-a-type - template - struct contains : std::true_type - {}; - - template - struct contains : std::conditional::value, std::true_type, contains>::type - {}; - - template - struct contains : std::false_type - {}; - - template - struct empty_context - {}; - - template - struct promote - { - using type = T; - }; - -#define CROW_INTERNAL_PROMOTE_TYPE(t1, t2) \ - template<> \ - struct promote \ - { \ - using type = t2; \ - } - - CROW_INTERNAL_PROMOTE_TYPE(char, int64_t); - CROW_INTERNAL_PROMOTE_TYPE(short, int64_t); - CROW_INTERNAL_PROMOTE_TYPE(int, int64_t); - CROW_INTERNAL_PROMOTE_TYPE(long, int64_t); - CROW_INTERNAL_PROMOTE_TYPE(long long, int64_t); - CROW_INTERNAL_PROMOTE_TYPE(unsigned char, uint64_t); - CROW_INTERNAL_PROMOTE_TYPE(unsigned short, uint64_t); - CROW_INTERNAL_PROMOTE_TYPE(unsigned int, uint64_t); - CROW_INTERNAL_PROMOTE_TYPE(unsigned long, uint64_t); - CROW_INTERNAL_PROMOTE_TYPE(unsigned long long, uint64_t); - CROW_INTERNAL_PROMOTE_TYPE(float, double); -#undef CROW_INTERNAL_PROMOTE_TYPE - - template - using promote_t = typename promote::type; - - } // namespace black_magic - - namespace detail - { - - template - struct get_index_of_element_from_tuple_by_type_impl - { - static constexpr auto value = N; - }; - - template - struct get_index_of_element_from_tuple_by_type_impl - { - static constexpr auto value = N; - }; - - template - struct get_index_of_element_from_tuple_by_type_impl - { - static constexpr auto value = get_index_of_element_from_tuple_by_type_impl::value; - }; - } // namespace detail - - namespace utility - { - template - T& get_element_by_type(std::tuple& t) - { - return std::get::value>(t); - } - - template - struct function_traits; - -#ifndef CROW_MSVC_WORKAROUND - template - struct function_traits : public function_traits - { - using parent_t = function_traits; - static const size_t arity = parent_t::arity; - using result_type = typename parent_t::result_type; - template - using arg = typename parent_t::template arg; - }; -#endif - - template - struct function_traits - { - static const size_t arity = sizeof...(Args); - - typedef R result_type; - - template - using arg = typename std::tuple_element>::type; - }; - - template - struct function_traits - { - static const size_t arity = sizeof...(Args); - - typedef R result_type; - - template - using arg = typename std::tuple_element>::type; - }; - - template - struct function_traits> - { - static const size_t arity = sizeof...(Args); - - typedef R result_type; - - template - using arg = typename std::tuple_element>::type; - }; - /// @endcond - - inline static std::string base64encode(const unsigned char* data, size_t size, const char* key = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/") - { - std::string ret; - ret.resize((size + 2) / 3 * 4); - auto it = ret.begin(); - while (size >= 3) - { - *it++ = key[(static_cast(*data) & 0xFC) >> 2]; - unsigned char h = (static_cast(*data++) & 0x03) << 4; - *it++ = key[h | ((static_cast(*data) & 0xF0) >> 4)]; - h = (static_cast(*data++) & 0x0F) << 2; - *it++ = key[h | ((static_cast(*data) & 0xC0) >> 6)]; - *it++ = key[static_cast(*data++) & 0x3F]; - - size -= 3; - } - if (size == 1) - { - *it++ = key[(static_cast(*data) & 0xFC) >> 2]; - unsigned char h = (static_cast(*data++) & 0x03) << 4; - *it++ = key[h]; - *it++ = '='; - *it++ = '='; - } - else if (size == 2) - { - *it++ = key[(static_cast(*data) & 0xFC) >> 2]; - unsigned char h = (static_cast(*data++) & 0x03) << 4; - *it++ = key[h | ((static_cast(*data) & 0xF0) >> 4)]; - h = (static_cast(*data++) & 0x0F) << 2; - *it++ = key[h]; - *it++ = '='; - } - return ret; - } - - inline static std::string base64encode(std::string data, size_t size, const char* key = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/") - { - return base64encode((const unsigned char*)data.c_str(), size, key); - } - - inline static std::string base64encode_urlsafe(const unsigned char* data, size_t size) - { - return base64encode(data, size, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"); - } - - inline static std::string base64encode_urlsafe(std::string data, size_t size) - { - return base64encode((const unsigned char*)data.c_str(), size, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"); - } - - inline static std::string base64decode(const char* data, size_t size) - { - // We accept both regular and url encoding here, as there does not seem to be any downside to that. - // If we want to distinguish that we should use +/ for non-url and -_ for url. - - // Mapping logic from characters to [0-63] - auto key = [](char c) -> unsigned char { - if ((c >= 'A') && (c <= 'Z')) return c - 'A'; - if ((c >= 'a') && (c <= 'z')) return c - 'a' + 26; - if ((c >= '0') && (c <= '9')) return c - '0' + 52; - if ((c == '+') || (c == '-')) return 62; - if ((c == '/') || (c == '_')) return 63; - return 0; - }; - - // Not padded - if (size % 4 == 2) // missing last 2 characters - size = (size / 4 * 3) + 1; // Not subtracting extra characters because they're truncated in int division - else if (size % 4 == 3) // missing last character - size = (size / 4 * 3) + 2; // Not subtracting extra characters because they're truncated in int division - - // Padded - else if (data[size - 2] == '=') // padded with '==' - size = (size / 4 * 3) - 2; // == padding means the last block only has 1 character instead of 3, hence the '-2' - else if (data[size - 1] == '=') // padded with '=' - size = (size / 4 * 3) - 1; // = padding means the last block only has 2 character instead of 3, hence the '-1' - - // Padding not needed - else - size = size / 4 * 3; - - std::string ret; - ret.resize(size); - auto it = ret.begin(); - - // These will be used to decode 1 character at a time - unsigned char odd; // char1 and char3 - unsigned char even; // char2 and char4 - - // Take 4 character blocks to turn into 3 - while (size >= 3) - { - // dec_char1 = (char1 shifted 2 bits to the left) OR ((char2 AND 00110000) shifted 4 bits to the right)) - odd = key(*data++); - even = key(*data++); - *it++ = (odd << 2) | ((even & 0x30) >> 4); - // dec_char2 = ((char2 AND 00001111) shifted 4 bits left) OR ((char3 AND 00111100) shifted 2 bits right)) - odd = key(*data++); - *it++ = ((even & 0x0F) << 4) | ((odd & 0x3C) >> 2); - // dec_char3 = ((char3 AND 00000011) shifted 6 bits left) OR (char4) - even = key(*data++); - *it++ = ((odd & 0x03) << 6) | (even); - - size -= 3; - } - if (size == 2) - { - // d_char1 = (char1 shifted 2 bits to the left) OR ((char2 AND 00110000) shifted 4 bits to the right)) - odd = key(*data++); - even = key(*data++); - *it++ = (odd << 2) | ((even & 0x30) >> 4); - // d_char2 = ((char2 AND 00001111) shifted 4 bits left) OR ((char3 AND 00111100) shifted 2 bits right)) - odd = key(*data++); - *it++ = ((even & 0x0F) << 4) | ((odd & 0x3C) >> 2); - } - else if (size == 1) - { - // d_char1 = (char1 shifted 2 bits to the left) OR ((char2 AND 00110000) shifted 4 bits to the right)) - odd = key(*data++); - even = key(*data++); - *it++ = (odd << 2) | ((even & 0x30) >> 4); - } - return ret; - } - - inline static std::string base64decode(const std::string& data, size_t size) - { - return base64decode(data.data(), size); - } - - inline static std::string base64decode(const std::string& data) - { - return base64decode(data.data(), data.length()); - } - - inline static std::string normalize_path(const std::string& directoryPath) - { - std::string normalizedPath = directoryPath; - std::replace(normalizedPath.begin(), normalizedPath.end(), '\\', '/'); - if (!normalizedPath.empty() && normalizedPath.back() != '/') - normalizedPath += '/'; - return normalizedPath; - } - - inline static void sanitize_filename(std::string& data, char replacement = '_') - { - if (data.length() > 255) - data.resize(255); - - static const auto toUpper = [](char c) { - return ((c >= 'a') && (c <= 'z')) ? (c - ('a' - 'A')) : c; - }; - // Check for special device names. The Windows behavior is really odd here, it will consider both AUX and AUX.txt - // a special device. Thus we search for the string (case-insensitive), and then check if the string ends or if - // is has a dangerous follow up character (.:\/) - auto sanitizeSpecialFile = [](std::string& source, unsigned ofs, const char* pattern, bool includeNumber, char replacement) { - unsigned i = ofs; - size_t len = source.length(); - const char* p = pattern; - while (*p) - { - if (i >= len) return; - if (toUpper(source[i]) != *p) return; - ++i; - ++p; - } - if (includeNumber) - { - if ((i >= len) || (source[i] < '1') || (source[i] > '9')) return; - ++i; - } - if ((i >= len) || (source[i] == '.') || (source[i] == ':') || (source[i] == '/') || (source[i] == '\\')) - { - source.erase(ofs + 1, (i - ofs) - 1); - source[ofs] = replacement; - } - }; - bool checkForSpecialEntries = true; - for (unsigned i = 0; i < data.length(); ++i) - { - // Recognize directory traversals and the special devices CON/PRN/AUX/NULL/COM[1-]/LPT[1-9] - if (checkForSpecialEntries) - { - checkForSpecialEntries = false; - switch (toUpper(data[i])) - { - case 'A': - sanitizeSpecialFile(data, i, "AUX", false, replacement); - break; - case 'C': - sanitizeSpecialFile(data, i, "CON", false, replacement); - sanitizeSpecialFile(data, i, "COM", true, replacement); - break; - case 'L': - sanitizeSpecialFile(data, i, "LPT", true, replacement); - break; - case 'N': - sanitizeSpecialFile(data, i, "NUL", false, replacement); - break; - case 'P': - sanitizeSpecialFile(data, i, "PRN", false, replacement); - break; - case '.': - sanitizeSpecialFile(data, i, "..", false, replacement); - break; - } - } - - // Sanitize individual characters - unsigned char c = data[i]; - if ((c < ' ') || ((c >= 0x80) && (c <= 0x9F)) || (c == '?') || (c == '<') || (c == '>') || (c == ':') || (c == '*') || (c == '|') || (c == '\"')) - { - data[i] = replacement; - } - else if ((c == '/') || (c == '\\')) - { - if (CROW_UNLIKELY(i == 0)) //Prevent Unix Absolute Paths (Windows Absolute Paths are prevented with `(c == ':')`) - { - data[i] = replacement; - } - else - { - checkForSpecialEntries = true; - } - } - } - } - - inline static std::string random_alphanum(std::size_t size) - { - static const char alphabet[] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; - std::random_device dev; - std::mt19937 rng(dev()); - std::uniform_int_distribution dist(0, sizeof(alphabet) - 2); - std::string out; - out.reserve(size); - for (std::size_t i = 0; i < size; i++) - out.push_back(alphabet[dist(rng)]); - return out; - } - - inline static std::string join_path(std::string path, const std::string& fname) - { -#if defined(CROW_CAN_USE_CPP17) && !defined(CROW_FILESYSTEM_IS_EXPERIMENTAL) - return (std::filesystem::path(path) / fname).string(); -#else - if (!(path.back() == '/' || path.back() == '\\')) - path += '/'; - path += fname; - return path; -#endif - } - - /** - * @brief Checks two string for equality. - * Always returns false if strings differ in size. - * Defaults to case-insensitive comparison. - */ - inline static bool string_equals(const std::string& l, const std::string& r, bool case_sensitive = false) - { - if (l.length() != r.length()) - return false; - - for (size_t i = 0; i < l.length(); i++) - { - if (case_sensitive) - { - if (l[i] != r[i]) - return false; - } - else - { - if (std::toupper(l[i]) != std::toupper(r[i])) - return false; - } - } - - return true; - } - - template - inline static T lexical_cast(const U& v) - { - std::stringstream stream; - T res; - - stream << v; - stream >> res; - - return res; - } - - template - inline static T lexical_cast(const char* v, size_t count) - { - std::stringstream stream; - T res; - - stream.write(v, count); - stream >> res; - - return res; - } - - - /// Return a copy of the given string with its - /// leading and trailing whitespaces removed. - inline static std::string trim(const std::string& v) - { - if (v.empty()) - return ""; - - size_t begin = 0, end = v.length(); - - size_t i; - for (i = 0; i < v.length(); i++) - { - if (!std::isspace(v[i])) - { - begin = i; - break; - } - } - - if (i == v.length()) - return ""; - - for (i = v.length(); i > 0; i--) - { - if (!std::isspace(v[i - 1])) - { - end = i; - break; - } - } - - return v.substr(begin, end - begin); - } - } // namespace utility -} // namespace crow - - -#include -#include - -namespace crow -{ - /// Hashing function for ci_map (unordered_multimap). - struct ci_hash - { - size_t operator()(const std::string& key) const - { - std::size_t seed = 0; - std::locale locale; - - for (auto c : key) - hash_combine(seed, std::toupper(c, locale)); - - return seed; - } - - private: - static inline void hash_combine(std::size_t& seed, char v) - { - std::hash hasher; - seed ^= hasher(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2); - } - }; - - /// Equals function for ci_map (unordered_multimap). - struct ci_key_eq - { - bool operator()(const std::string& l, const std::string& r) const - { - return utility::string_equals(l, r); - } - }; - - using ci_map = std::unordered_multimap; -} // namespace crow - - -#include -#include -#include -#include - -namespace crow -{ - const char cr = '\r'; - const char lf = '\n'; - const std::string crlf("\r\n"); - - enum class HTTPMethod : char - { -#ifndef DELETE - DELETE = 0, - GET, - HEAD, - POST, - PUT, - - CONNECT, - OPTIONS, - TRACE, - - PATCH, - PURGE, - - COPY, - LOCK, - MKCOL, - MOVE, - PROPFIND, - PROPPATCH, - SEARCH, - UNLOCK, - BIND, - REBIND, - UNBIND, - ACL, - - REPORT, - MKACTIVITY, - CHECKOUT, - MERGE, - - MSEARCH, - NOTIFY, - SUBSCRIBE, - UNSUBSCRIBE, - - MKCALENDAR, - - LINK, - UNLINK, - - SOURCE, -#endif - - Delete = 0, - Get, - Head, - Post, - Put, - - Connect, - Options, - Trace, - - Patch, - Purge, - - Copy, - Lock, - MkCol, - Move, - Propfind, - Proppatch, - Search, - Unlock, - Bind, - Rebind, - Unbind, - Acl, - - Report, - MkActivity, - Checkout, - Merge, - - MSearch, - Notify, - Subscribe, - Unsubscribe, - - MkCalendar, - - Link, - Unlink, - - Source, - - - InternalMethodCount, - // should not add an item below this line: used for array count - }; - - constexpr const char* method_strings[] = - { - "DELETE", - "GET", - "HEAD", - "POST", - "PUT", - - "CONNECT", - "OPTIONS", - "TRACE", - - "PATCH", - "PURGE", - - "COPY", - "LOCK", - "MKCOL", - "MOVE", - "PROPFIND", - "PROPPATCH", - "SEARCH", - "UNLOCK", - "BIND", - "REBIND", - "UNBIND", - "ACL", - - "REPORT", - "MKACTIVITY", - "CHECKOUT", - "MERGE", - - "M-SEARCH", - "NOTIFY", - "SUBSCRIBE", - "UNSUBSCRIBE", - - "MKCALENDAR", - - "LINK", - "UNLINK", - - "SOURCE"}; - - - inline std::string method_name(HTTPMethod method) - { - if (CROW_LIKELY(method < HTTPMethod::InternalMethodCount)) - { - return method_strings[(unsigned char)method]; - } - return "invalid"; - } - - // clang-format off - - enum status - { - CONTINUE = 100, - SWITCHING_PROTOCOLS = 101, - - OK = 200, - CREATED = 201, - ACCEPTED = 202, - NON_AUTHORITATIVE_INFORMATION = 203, - NO_CONTENT = 204, - RESET_CONTENT = 205, - PARTIAL_CONTENT = 206, - - MULTIPLE_CHOICES = 300, - MOVED_PERMANENTLY = 301, - FOUND = 302, - SEE_OTHER = 303, - NOT_MODIFIED = 304, - TEMPORARY_REDIRECT = 307, - PERMANENT_REDIRECT = 308, - - BAD_REQUEST = 400, - UNAUTHORIZED = 401, - FORBIDDEN = 403, - NOT_FOUND = 404, - METHOD_NOT_ALLOWED = 405, - NOT_ACCEPTABLE = 406, - PROXY_AUTHENTICATION_REQUIRED = 407, - CONFLICT = 409, - GONE = 410, - PAYLOAD_TOO_LARGE = 413, - UNSUPPORTED_MEDIA_TYPE = 415, - RANGE_NOT_SATISFIABLE = 416, - EXPECTATION_FAILED = 417, - PRECONDITION_REQUIRED = 428, - TOO_MANY_REQUESTS = 429, - UNAVAILABLE_FOR_LEGAL_REASONS = 451, - - INTERNAL_SERVER_ERROR = 500, - NOT_IMPLEMENTED = 501, - BAD_GATEWAY = 502, - SERVICE_UNAVAILABLE = 503, - GATEWAY_TIMEOUT = 504, - VARIANT_ALSO_NEGOTIATES = 506 - }; - - // clang-format on - - enum class ParamType : char - { - INT, - UINT, - DOUBLE, - STRING, - PATH, - - MAX - }; - - /// @cond SKIP - struct routing_params - { - std::vector int_params; - std::vector uint_params; - std::vector double_params; - std::vector string_params; - - void debug_print() const - { - std::cerr << "routing_params" << std::endl; - for (auto i : int_params) - std::cerr << i << ", "; - std::cerr << std::endl; - for (auto i : uint_params) - std::cerr << i << ", "; - std::cerr << std::endl; - for (auto i : double_params) - std::cerr << i << ", "; - std::cerr << std::endl; - for (auto& i : string_params) - std::cerr << i << ", "; - std::cerr << std::endl; - } - - template - T get(unsigned) const; - }; - - template<> - inline int64_t routing_params::get(unsigned index) const - { - return int_params[index]; - } - - template<> - inline uint64_t routing_params::get(unsigned index) const - { - return uint_params[index]; - } - - template<> - inline double routing_params::get(unsigned index) const - { - return double_params[index]; - } - - template<> - inline std::string routing_params::get(unsigned index) const - { - return string_params[index]; - } - /// @endcond - - struct routing_handle_result - { - uint16_t rule_index; - std::vector blueprint_indices; - routing_params r_params; - HTTPMethod method; - - routing_handle_result() {} - - routing_handle_result(uint16_t rule_index_, std::vector blueprint_indices_, routing_params r_params_): - rule_index(rule_index_), - blueprint_indices(blueprint_indices_), - r_params(r_params_) {} - - routing_handle_result(uint16_t rule_index_, std::vector blueprint_indices_, routing_params r_params_, HTTPMethod method_): - rule_index(rule_index_), - blueprint_indices(blueprint_indices_), - r_params(r_params_), - method(method_) {} - }; -} // namespace crow - -// clang-format off -#ifndef CROW_MSVC_WORKAROUND -constexpr crow::HTTPMethod method_from_string(const char* str) -{ - return crow::black_magic::is_equ_p(str, "GET", 3) ? crow::HTTPMethod::Get : - crow::black_magic::is_equ_p(str, "DELETE", 6) ? crow::HTTPMethod::Delete : - crow::black_magic::is_equ_p(str, "HEAD", 4) ? crow::HTTPMethod::Head : - crow::black_magic::is_equ_p(str, "POST", 4) ? crow::HTTPMethod::Post : - crow::black_magic::is_equ_p(str, "PUT", 3) ? crow::HTTPMethod::Put : - - crow::black_magic::is_equ_p(str, "OPTIONS", 7) ? crow::HTTPMethod::Options : - crow::black_magic::is_equ_p(str, "CONNECT", 7) ? crow::HTTPMethod::Connect : - crow::black_magic::is_equ_p(str, "TRACE", 5) ? crow::HTTPMethod::Trace : - - crow::black_magic::is_equ_p(str, "PATCH", 5) ? crow::HTTPMethod::Patch : - crow::black_magic::is_equ_p(str, "PURGE", 5) ? crow::HTTPMethod::Purge : - crow::black_magic::is_equ_p(str, "COPY", 4) ? crow::HTTPMethod::Copy : - crow::black_magic::is_equ_p(str, "LOCK", 4) ? crow::HTTPMethod::Lock : - crow::black_magic::is_equ_p(str, "MKCOL", 5) ? crow::HTTPMethod::MkCol : - crow::black_magic::is_equ_p(str, "MOVE", 4) ? crow::HTTPMethod::Move : - crow::black_magic::is_equ_p(str, "PROPFIND", 8) ? crow::HTTPMethod::Propfind : - crow::black_magic::is_equ_p(str, "PROPPATCH", 9) ? crow::HTTPMethod::Proppatch : - crow::black_magic::is_equ_p(str, "SEARCH", 6) ? crow::HTTPMethod::Search : - crow::black_magic::is_equ_p(str, "UNLOCK", 6) ? crow::HTTPMethod::Unlock : - crow::black_magic::is_equ_p(str, "BIND", 4) ? crow::HTTPMethod::Bind : - crow::black_magic::is_equ_p(str, "REBIND", 6) ? crow::HTTPMethod::Rebind : - crow::black_magic::is_equ_p(str, "UNBIND", 6) ? crow::HTTPMethod::Unbind : - crow::black_magic::is_equ_p(str, "ACL", 3) ? crow::HTTPMethod::Acl : - - crow::black_magic::is_equ_p(str, "REPORT", 6) ? crow::HTTPMethod::Report : - crow::black_magic::is_equ_p(str, "MKACTIVITY", 10) ? crow::HTTPMethod::MkActivity : - crow::black_magic::is_equ_p(str, "CHECKOUT", 8) ? crow::HTTPMethod::Checkout : - crow::black_magic::is_equ_p(str, "MERGE", 5) ? crow::HTTPMethod::Merge : - - crow::black_magic::is_equ_p(str, "MSEARCH", 7) ? crow::HTTPMethod::MSearch : - crow::black_magic::is_equ_p(str, "NOTIFY", 6) ? crow::HTTPMethod::Notify : - crow::black_magic::is_equ_p(str, "SUBSCRIBE", 9) ? crow::HTTPMethod::Subscribe : - crow::black_magic::is_equ_p(str, "UNSUBSCRIBE", 11) ? crow::HTTPMethod::Unsubscribe : - - crow::black_magic::is_equ_p(str, "MKCALENDAR", 10) ? crow::HTTPMethod::MkCalendar : - - crow::black_magic::is_equ_p(str, "LINK", 4) ? crow::HTTPMethod::Link : - crow::black_magic::is_equ_p(str, "UNLINK", 6) ? crow::HTTPMethod::Unlink : - - crow::black_magic::is_equ_p(str, "SOURCE", 6) ? crow::HTTPMethod::Source : - throw std::runtime_error("invalid http method"); -} - -constexpr crow::HTTPMethod operator"" _method(const char* str, size_t /*len*/) -{ - return method_from_string( str ); -} -#endif -// clang-format on - - -#ifdef CROW_USE_BOOST -#include -#else -#ifndef ASIO_STANDALONE -#define ASIO_STANDALONE -#endif -#include -#endif - - -namespace crow // NOTE: Already documented in "crow/app.h" -{ -#ifdef CROW_USE_BOOST - namespace asio = boost::asio; -#endif - - /// Find and return the value associated with the key. (returns an empty string if nothing is found) - template - inline const std::string& get_header_value(const T& headers, const std::string& key) - { - if (headers.count(key)) - { - return headers.find(key)->second; - } - static std::string empty; - return empty; - } - - /// An HTTP request. - struct request - { - HTTPMethod method; - std::string raw_url; ///< The full URL containing the `?` and URL parameters. - std::string url; ///< The endpoint without any parameters. - query_string url_params; ///< The parameters associated with the request. (everything after the `?` in the URL) - ci_map headers; - std::string body; - std::string remote_ip_address; ///< The IP address from which the request was sent. - unsigned char http_ver_major, http_ver_minor; - bool keep_alive, ///< Whether or not the server should send a `connection: Keep-Alive` header to the client. - close_connection, ///< Whether or not the server should shut down the TCP connection once a response is sent. - upgrade; ///< Whether or noth the server should change the HTTP connection to a different connection. - - void* middleware_context{}; - void* middleware_container{}; - asio::io_service* io_service{}; - - /// Construct an empty request. (sets the method to `GET`) - request(): - method(HTTPMethod::Get) - {} - - /// Construct a request with all values assigned. - request(HTTPMethod method, std::string raw_url, std::string url, query_string url_params, ci_map headers, std::string body, unsigned char http_major, unsigned char http_minor, bool has_keep_alive, bool has_close_connection, bool is_upgrade): - method(method), raw_url(std::move(raw_url)), url(std::move(url)), url_params(std::move(url_params)), headers(std::move(headers)), body(std::move(body)), http_ver_major(http_major), http_ver_minor(http_minor), keep_alive(has_keep_alive), close_connection(has_close_connection), upgrade(is_upgrade) - {} - - void add_header(std::string key, std::string value) - { - headers.emplace(std::move(key), std::move(value)); - } - - const std::string& get_header_value(const std::string& key) const - { - return crow::get_header_value(headers, key); - } - - bool check_version(unsigned char major, unsigned char minor) const - { - return http_ver_major == major && http_ver_minor == minor; - } - - /// Get the body as parameters in QS format. - - /// - /// This is meant to be used with requests of type "application/x-www-form-urlencoded" - const query_string get_body_params() const - { - return query_string(body, false); - } - - /// Send data to whoever made this request with a completion handler and return immediately. - template - void post(CompletionHandler handler) - { - io_service->post(handler); - } - - /// Send data to whoever made this request with a completion handler. - template - void dispatch(CompletionHandler handler) - { - io_service->dispatch(handler); - } - }; -} // namespace crow - - -#include -#include -#include - - -namespace crow -{ - - /// Encapsulates anything related to processing and organizing `multipart/xyz` messages - namespace multipart - { - - const std::string dd = "--"; - - /// The first part in a section, contains metadata about the part - struct header - { - std::string value; ///< The first part of the header, usually `Content-Type` or `Content-Disposition` - std::unordered_map params; ///< The parameters of the header, come after the `value` - - operator int() const { return std::stoi(value); } ///< Returns \ref value as integer - operator double() const { return std::stod(value); } ///< Returns \ref value as double - }; - - /// Multipart header map (key is header key). - using mph_map = std::unordered_multimap; - - /// Find and return the value object associated with the key. (returns an empty class if nothing is found) - template - inline const O& get_header_value_object(const T& headers, const std::string& key) - { - if (headers.count(key)) - { - return headers.find(key)->second; - } - static O empty; - return empty; - } - - /// Same as \ref get_header_value_object() but for \ref multipart.header - template - inline const header& get_header_object(const T& headers, const std::string& key) - { - return get_header_value_object
(headers, key); - } - - ///One part of the multipart message - - /// - /// It is usually separated from other sections by a `boundary` - struct part - { - mph_map headers; ///< (optional) The first part before the data, Contains information regarding the type of data and encoding - std::string body; ///< The actual data in the part - - operator int() const { return std::stoi(body); } ///< Returns \ref body as integer - operator double() const { return std::stod(body); } ///< Returns \ref body as double - - const header& get_header_object(const std::string& key) const - { - return multipart::get_header_object(headers, key); - } - }; - - /// Multipart map (key is the name parameter). - using mp_map = std::unordered_multimap; - - /// The parsed multipart request/response - struct message : public returnable - { - ci_map headers; ///< The request/response headers - std::string boundary; ///< The text boundary that separates different `parts` - std::vector parts; ///< The individual parts of the message - mp_map part_map; ///< The individual parts of the message, organized in a map with the `name` header parameter being the key - - const std::string& get_header_value(const std::string& key) const - { - return crow::get_header_value(headers, key); - } - - part get_part_by_name(const std::string& name) - { - mp_map::iterator result = part_map.find(name); - if (result != part_map.end()) - return result->second; - else - return {}; - } - - /// Represent all parts as a string (**does not include message headers**) - std::string dump() const override - { - std::stringstream str; - std::string delimiter = dd + boundary; - - for (unsigned i = 0; i < parts.size(); i++) - { - str << delimiter << crlf; - str << dump(i); - } - str << delimiter << dd << crlf; - return str.str(); - } - - /// Represent an individual part as a string - std::string dump(int part_) const - { - std::stringstream str; - part item = parts[part_]; - for (auto& item_h : item.headers) - { - str << item_h.first << ": " << item_h.second.value; - for (auto& it : item_h.second.params) - { - str << "; " << it.first << '=' << pad(it.second); - } - str << crlf; - } - str << crlf; - str << item.body << crlf; - return str.str(); - } - - /// Default constructor using default values - message(const ci_map& headers, const std::string& boundary, const std::vector& sections): - returnable("multipart/form-data; boundary=CROW-BOUNDARY"), headers(headers), boundary(boundary), parts(sections) - { - if (!boundary.empty()) - content_type = "multipart/form-data; boundary=" + boundary; - for (auto& item : parts) - { - part_map.emplace( - (get_header_object(item.headers, "Content-Disposition").params.find("name")->second), - item); - } - } - - /// Create a multipart message from a request data - message(const request& req): - returnable("multipart/form-data; boundary=CROW-BOUNDARY"), - headers(req.headers), - boundary(get_boundary(get_header_value("Content-Type"))) - { - if (!boundary.empty()) - content_type = "multipart/form-data; boundary=" + boundary; - parse_body(req.body, parts, part_map); - } - - private: - std::string get_boundary(const std::string& header) const - { - constexpr char boundary_text[] = "boundary="; - size_t found = header.find(boundary_text); - if (found != std::string::npos) - { - std::string to_return(header.substr(found + strlen(boundary_text))); - if (to_return[0] == '\"') - { - to_return = to_return.substr(1, to_return.length() - 2); - } - return to_return; - } - return std::string(); - } - - void parse_body(std::string body, std::vector& sections, mp_map& part_map) - { - - std::string delimiter = dd + boundary; - - // TODO(EDev): Exit on error - while (body != (crlf)) - { - size_t found = body.find(delimiter); - if (found == std::string::npos) - { - // did not find delimiter; probably an ill-formed body; ignore the rest - break; - } - std::string section = body.substr(0, found); - - // +2 is the CRLF. - // We don't check it and delete it so that the same delimiter can be used for The last delimiter (--delimiter--CRLF). - body.erase(0, found + delimiter.length() + 2); - if (!section.empty()) - { - part parsed_section(parse_section(section)); - part_map.emplace( - (get_header_object(parsed_section.headers, "Content-Disposition").params.find("name")->second), - parsed_section); - sections.push_back(std::move(parsed_section)); - } - } - } - - part parse_section(std::string& section) - { - struct part to_return; - - size_t found = section.find(crlf + crlf); - std::string head_line = section.substr(0, found + 2); - section.erase(0, found + 4); - - parse_section_head(head_line, to_return); - to_return.body = section.substr(0, section.length() - 2); - return to_return; - } - - void parse_section_head(std::string& lines, part& part) - { - while (!lines.empty()) - { - header to_add; - - size_t found = lines.find(crlf); - std::string line = lines.substr(0, found); - std::string key; - lines.erase(0, found + 2); - // Add the header if available - if (!line.empty()) - { - size_t found = line.find("; "); - std::string header = line.substr(0, found); - if (found != std::string::npos) - line.erase(0, found + 2); - else - line = std::string(); - - size_t header_split = header.find(": "); - key = header.substr(0, header_split); - - to_add.value = header.substr(header_split + 2); - } - - // Add the parameters - while (!line.empty()) - { - size_t found = line.find("; "); - std::string param = line.substr(0, found); - if (found != std::string::npos) - line.erase(0, found + 2); - else - line = std::string(); - - size_t param_split = param.find('='); - - std::string value = param.substr(param_split + 1); - - to_add.params.emplace(param.substr(0, param_split), trim(value)); - } - part.headers.emplace(key, to_add); - } - } - - inline std::string trim(std::string& string, const char& excess = '"') const - { - if (string.length() > 1 && string[0] == excess && string[string.length() - 1] == excess) - return string.substr(1, string.length() - 2); - return string; - } - - inline std::string pad(std::string& string, const char& padding = '"') const - { - return (padding + string + padding); - } - }; - } // namespace multipart -} // namespace crow - -/* merged revision: 5b951d74bd66ec9d38448e0a85b1cf8b85d97db3 */ -/* updated to : e13b274770da9b82a1085dec29182acfea72e7a7 (beyond v2.9.5) */ -/* commits not included: - * 091ebb87783a58b249062540bbea07de2a11e9cf - * 6132d1fefa03f769a3979355d1f5da0b8889cad2 - * 7ba312397c2a6c851a4b5efe6c1603b1e1bda6ff - * d7675453a6c03180572f084e95eea0d02df39164 - * dff604db203986e532e5a679bafd0e7382c6bdd9 (Might be useful to actually add [upgrade requests with a body]) - * e01811e7f4894d7f0f7f4bd8492cccec6f6b4038 (related to above) - * 05525c5fde1fc562481f6ae08fa7056185325daf (also related to above) - * 350258965909f249f9c59823aac240313e0d0120 (cannot be implemented due to upgrade) - */ - -// clang-format off -extern "C" { -#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; -#elif (defined(__sun) || defined(__sun__)) && defined(__SunOS_5_9) -#include -#else -#include -#endif -#include -#include -#include -#include -} - -namespace crow -{ -/* 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. -DCROW_HTTP_MAX_HEADER_SIZE=0x7fffffff) - */ -#ifndef CROW_HTTP_MAX_HEADER_SIZE -# define CROW_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 arbitrarally - * 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*); - - -/* Flag values for http_parser.flags field */ -enum http_connection_flags // This is basically 7 booleans placed into 1 integer. Uses 4 bytes instead of n bytes (7 currently). - { F_CHUNKED = 1 << 0 // 00000000 00000000 00000000 00000001 - , F_CONNECTION_KEEP_ALIVE = 1 << 1 // 00000000 00000000 00000000 00000010 - , F_CONNECTION_CLOSE = 1 << 2 // 00000000 00000000 00000000 00000100 - , F_TRAILING = 1 << 3 // 00000000 00000000 00000000 00001000 - , F_UPGRADE = 1 << 4 // 00000000 00000000 00000000 00010000 - , F_SKIPBODY = 1 << 5 // 00000000 00000000 00000000 00100000 - , F_CONTENTLENGTH = 1 << 6 // 00000000 00000000 00000000 01000000 - }; - - -/* Map for errno-related constants - * - * The provided argument should be a macro that takes 2 arguments. - */ -#define CROW_HTTP_ERRNO_MAP(CROW_XX) \ - /* No error */ \ - CROW_XX(OK, "success") \ - \ - /* Callback-related errors */ \ - CROW_XX(CB_message_begin, "the on_message_begin callback failed") \ - CROW_XX(CB_method, "the on_method callback failed") \ - CROW_XX(CB_url, "the \"on_url\" callback failed") \ - CROW_XX(CB_header_field, "the \"on_header_field\" callback failed") \ - CROW_XX(CB_header_value, "the \"on_header_value\" callback failed") \ - CROW_XX(CB_headers_complete, "the \"on_headers_complete\" callback failed") \ - CROW_XX(CB_body, "the \"on_body\" callback failed") \ - CROW_XX(CB_message_complete, "the \"on_message_complete\" callback failed") \ - CROW_XX(CB_status, "the \"on_status\" callback failed") \ - \ - /* Parsing-related errors */ \ - CROW_XX(INVALID_EOF_STATE, "stream ended at an unexpected time") \ - CROW_XX(HEADER_OVERFLOW, "too many header bytes seen; overflow detected") \ - CROW_XX(CLOSED_CONNECTION, "data received after completed connection: close message") \ - CROW_XX(INVALID_VERSION, "invalid HTTP version") \ - CROW_XX(INVALID_STATUS, "invalid HTTP status code") \ - CROW_XX(INVALID_METHOD, "invalid HTTP method") \ - CROW_XX(INVALID_URL, "invalid URL") \ - CROW_XX(INVALID_HOST, "invalid host") \ - CROW_XX(INVALID_PORT, "invalid port") \ - CROW_XX(INVALID_PATH, "invalid path") \ - CROW_XX(INVALID_QUERY_STRING, "invalid query string") \ - CROW_XX(INVALID_FRAGMENT, "invalid fragment") \ - CROW_XX(LF_EXPECTED, "LF character expected") \ - CROW_XX(INVALID_HEADER_TOKEN, "invalid character in header") \ - CROW_XX(INVALID_CONTENT_LENGTH, "invalid character in content-length header") \ - CROW_XX(UNEXPECTED_CONTENT_LENGTH, "unexpected content-length header") \ - CROW_XX(INVALID_CHUNK_SIZE, "invalid character in chunk size header") \ - CROW_XX(INVALID_CONSTANT, "invalid constant string") \ - CROW_XX(INVALID_INTERNAL_STATE, "encountered unexpected internal state") \ - CROW_XX(STRICT, "strict mode assertion failed") \ - CROW_XX(UNKNOWN, "an unknown error occurred") \ - CROW_XX(INVALID_TRANSFER_ENCODING, "request has invalid transfer-encoding") \ - - -/* Define CHPE_* values for each errno value above */ -#define CROW_HTTP_ERRNO_GEN(n, s) CHPE_##n, -enum http_errno { - CROW_HTTP_ERRNO_MAP(CROW_HTTP_ERRNO_GEN) -}; -#undef CROW_HTTP_ERRNO_GEN - - -/* Get an http_errno value from an http_parser */ -#define CROW_HTTP_PARSER_ERRNO(p) ((enum http_errno)(p)->http_errno) - - - struct http_parser - { - /** PRIVATE **/ - unsigned int flags : 7; /* F_* values from 'flags' enum; semi-public */ - unsigned int state : 8; /* enum state from http_parser.c */ - unsigned int header_state : 7; /* enum header_state from http_parser.c */ - unsigned int index : 5; /* index into current matcher */ - unsigned int uses_transfer_encoding : 1; /* Transfer-Encoding header is present */ - unsigned int allow_chunked_length : 1; /* Allow headers with both `Content-Length` and `Transfer-Encoding: chunked` set */ - unsigned int lenient_http_headers : 1; - - uint32_t nread; /* # bytes read in various scenarios */ - uint64_t content_length; /* # bytes in body. `(uint64_t) -1` (all bits one) if no Content-Length header. */ - unsigned long qs_point; - - /** READ-ONLY **/ - unsigned char http_major; - unsigned char http_minor; - 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_cb on_method; - http_data_cb on_url; - 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; - }; - - - -// SOURCE (.c) CODE -static uint32_t max_header_size = CROW_HTTP_MAX_HEADER_SIZE; - -#ifndef CROW_ULLONG_MAX -# define CROW_ULLONG_MAX ((uint64_t) -1) /* 2^64-1 */ -#endif - -#ifndef CROW_MIN -# define CROW_MIN(a,b) ((a) < (b) ? (a) : (b)) -#endif - -#ifndef CROW_ARRAY_SIZE -# define CROW_ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) -#endif - -#ifndef CROW_BIT_AT -# define CROW_BIT_AT(a, i) \ - (!!((unsigned int) (a)[(unsigned int) (i) >> 3] & \ - (1 << ((unsigned int) (i) & 7)))) -#endif - -#define CROW_SET_ERRNO(e) \ -do { \ - parser->nread = nread; \ - parser->http_errno = (e); \ -} while(0) - -/* Run the notify callback FOR, returning ER if it fails */ -#define CROW_CALLBACK_NOTIFY_(FOR, ER) \ -do { \ - assert(CROW_HTTP_PARSER_ERRNO(parser) == CHPE_OK); \ - \ - if (CROW_LIKELY(settings->on_##FOR)) { \ - if (CROW_UNLIKELY(0 != settings->on_##FOR(parser))) { \ - CROW_SET_ERRNO(CHPE_CB_##FOR); \ - } \ - \ - /* We either errored above or got paused; get out */ \ - if (CROW_UNLIKELY(CROW_HTTP_PARSER_ERRNO(parser) != CHPE_OK)) { \ - return (ER); \ - } \ - } \ -} while (0) - -/* Run the notify callback FOR and consume the current byte */ -#define CROW_CALLBACK_NOTIFY(FOR) CROW_CALLBACK_NOTIFY_(FOR, p - data + 1) - -/* Run the notify callback FOR and don't consume the current byte */ -#define CROW_CALLBACK_NOTIFY_NOADVANCE(FOR) CROW_CALLBACK_NOTIFY_(FOR, p - data) - -/* Run data callback FOR with LEN bytes, returning ER if it fails */ -#define CROW_CALLBACK_DATA_(FOR, LEN, ER) \ -do { \ - assert(CROW_HTTP_PARSER_ERRNO(parser) == CHPE_OK); \ - \ - if (FOR##_mark) { \ - if (CROW_LIKELY(settings->on_##FOR)) { \ - if (CROW_UNLIKELY(0 != \ - settings->on_##FOR(parser, FOR##_mark, (LEN)))) { \ - CROW_SET_ERRNO(CHPE_CB_##FOR); \ - } \ - \ - /* We either errored above or got paused; get out */ \ - if (CROW_UNLIKELY(CROW_HTTP_PARSER_ERRNO(parser) != CHPE_OK)) {\ - return (ER); \ - } \ - } \ - FOR##_mark = NULL; \ - } \ -} while (0) - -/* Run the data callback FOR and consume the current byte */ -#define CROW_CALLBACK_DATA(FOR) \ - CROW_CALLBACK_DATA_(FOR, p - FOR##_mark, p - data + 1) - -/* Run the data callback FOR and don't consume the current byte */ -#define CROW_CALLBACK_DATA_NOADVANCE(FOR) \ - CROW_CALLBACK_DATA_(FOR, p - FOR##_mark, p - data) - -/* Set the mark FOR; non-destructive if mark is already set */ -#define CROW_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 CROW_COUNT_HEADER_SIZE(V) \ -do { \ - nread += (uint32_t)(V); \ - if (CROW_UNLIKELY(nread > max_header_size)) { \ - CROW_SET_ERRNO(CHPE_HEADER_OVERFLOW); \ - goto error; \ - } \ -} while (0) -#define CROW_REEXECUTE() \ - goto reexecute; \ - -#define CROW_PROXY_CONNECTION "proxy-connection" -#define CROW_CONNECTION "connection" -#define CROW_CONTENT_LENGTH "content-length" -#define CROW_TRANSFER_ENCODING "transfer-encoding" -#define CROW_UPGRADE "upgrade" -#define CROW_CHUNKED "chunked" -#define CROW_KEEP_ALIVE "keep-alive" -#define CROW_CLOSE "close" - - - - enum state - { - s_dead = 1 /* important that this is > 0 */ - - , - 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, // | The parser recognizes how to switch between these states, - s_req_query_string_start, // | however it doesn't process them any differently. - s_req_query_string, // } - 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 CROW_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 CROW_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_keep_alive - , h_matching_connection_close - - , h_transfer_encoding_chunked - , h_connection_keep_alive - , h_connection_close - }; - -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 CROW_LOWER(c) (unsigned char)(c | 0x20) -#define CROW_IS_ALPHA(c) (CROW_LOWER(c) >= 'a' && CROW_LOWER(c) <= 'z') -#define CROW_IS_NUM(c) ((c) >= '0' && (c) <= '9') -#define CROW_IS_ALPHANUM(c) (CROW_IS_ALPHA(c) || CROW_IS_NUM(c)) -//#define CROW_IS_HEX(c) (CROW_IS_NUM(c) || (CROW_LOWER(c) >= 'a' && CROW_LOWER(c) <= 'f')) -#define CROW_IS_MARK(c) ((c) == '-' || (c) == '_' || (c) == '.' || \ - (c) == '!' || (c) == '~' || (c) == '*' || (c) == '\'' || (c) == '(' || \ - (c) == ')') -#define CROW_IS_USERINFO_CHAR(c) (CROW_IS_ALPHANUM(c) || CROW_IS_MARK(c) || (c) == '%' || \ - (c) == ';' || (c) == ':' || (c) == '&' || (c) == '=' || (c) == '+' || \ - (c) == '$' || (c) == ',') - -#define CROW_TOKEN(c) (tokens[(unsigned char)c]) -#define CROW_IS_URL_CHAR(c) (CROW_BIT_AT(normal_url_char, (unsigned char)c)) -//#define CROW_IS_HOST_CHAR(c) (CROW_IS_ALPHANUM(c) || (c) == '.' || (c) == '-') - - /** - * Verify that a char is a valid visible (printable) US-ASCII - * character or %x80-FF - **/ -#define CROW_IS_HEADER_CHAR(ch) \ - (ch == cr || ch == lf || ch == 9 || ((unsigned char)ch > 31 && ch != 127)) - -#define CROW_start_state s_start_req - -# define CROW_STRICT_CHECK(cond) \ -do { \ - if (cond) { \ - CROW_SET_ERRNO(CHPE_STRICT); \ - goto error; \ - } \ -} while (0) -#define CROW_NEW_MESSAGE() (CROW_start_state) - -/* 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. - */ -inline enum state -parse_url_char(enum state s, const char ch, http_parser *parser, const char* url_mark, const char* p) -{ -# define CROW_T(v) 0 - - -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 |CROW_T(2)| 0 | 0 |CROW_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 CROW_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 CROW_T - - if (ch == ' ' || ch == '\r' || ch == '\n') { - return s_dead; - } - if (ch == '\t' || ch == '\f') { - return s_dead; - } - - 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 (CROW_IS_ALPHA(ch)) { - return s_req_schema; - } - - break; - - case s_req_schema: - if (CROW_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 == '?') { - parser->qs_point = p - url_mark; - return s_req_query_string_start; - } - - if (ch == '@') { - return s_req_server_with_at; - } - - if (CROW_IS_USERINFO_CHAR(ch) || ch == '[' || ch == ']') { - return s_req_server; - } - - break; - - case s_req_path: - if (CROW_IS_URL_CHAR(ch)) { - return s; - } - else if (ch == '?') - { - parser->qs_point = p - url_mark; - return s_req_query_string_start; - } - - break; - - case s_req_query_string_start: - case s_req_query_string: - if (CROW_IS_URL_CHAR(ch)) { - return s_req_query_string; - } - else if (ch == '?') - { - return s_req_query_string; - } - - break; - - default: - break; - } - - /* We should never fall out of the switch above unless there's an error */ - return s_dead; -} - -inline size_t http_parser_execute (http_parser *parser, - const http_parser_settings *settings, - const char *data, - size_t len) -{ - -/* 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, '!', 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 - }; - - - - 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 *url_start_mark = 0; - const char *body_mark = 0; - const unsigned int lenient = parser->lenient_http_headers; - const unsigned int allow_chunked_length = parser->allow_chunked_length; - - uint32_t nread = parser->nread; - - /* We're in an error state. Don't bother doing anything. */ - if (CROW_HTTP_PARSER_ERRNO(parser) != CHPE_OK) { - return 0; - } - - if (len == 0) { - switch (parser->state) { - case s_body_identity_eof: - /* Use of CROW_CALLBACK_NOTIFY() here would erroneously return 1 byte read if we got paused. */ - CROW_CALLBACK_NOTIFY_NOADVANCE(message_complete); - return 0; - - case s_dead: - case s_start_req: - return 0; - - default: - CROW_SET_ERRNO(CHPE_INVALID_EOF_STATE); - return 1; - } - } - - - if (parser->state == s_header_field) - header_field_mark = data; - if (parser->state == s_header_value) - header_value_mark = data; - switch (parser->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: - url_mark = data; - break; - default: - break; - } - - for (p=data; p != data + len; p++) { - ch = *p; - - if (CROW_PARSING_HEADER(parser->state)) - CROW_COUNT_HEADER_SIZE(1); - -reexecute: - switch (parser->state) { - - case s_dead: - /* this state is used after a 'Connection: close' message - * the parser will error out if it reads another message - */ - if (CROW_LIKELY(ch == cr || ch == lf)) - break; - - CROW_SET_ERRNO(CHPE_CLOSED_CONNECTION); - goto error; - - case s_start_req: - { - if (ch == cr || ch == lf) - break; - parser->flags = 0; - parser->uses_transfer_encoding = 0; - parser->content_length = CROW_ULLONG_MAX; - - if (CROW_UNLIKELY(!CROW_IS_ALPHA(ch))) { - CROW_SET_ERRNO(CHPE_INVALID_METHOD); - goto error; - } - - parser->method = 0; - parser->index = 1; - switch (ch) { - case 'A': parser->method = (unsigned)HTTPMethod::Acl; break; - case 'B': parser->method = (unsigned)HTTPMethod::Bind; break; - case 'C': parser->method = (unsigned)HTTPMethod::Connect; /* or COPY, CHECKOUT */ break; - case 'D': parser->method = (unsigned)HTTPMethod::Delete; break; - case 'G': parser->method = (unsigned)HTTPMethod::Get; break; - case 'H': parser->method = (unsigned)HTTPMethod::Head; break; - case 'L': parser->method = (unsigned)HTTPMethod::Lock; /* or LINK */ break; - case 'M': parser->method = (unsigned)HTTPMethod::MkCol; /* or MOVE, MKACTIVITY, MERGE, M-SEARCH, MKCALENDAR */ break; - case 'N': parser->method = (unsigned)HTTPMethod::Notify; break; - case 'O': parser->method = (unsigned)HTTPMethod::Options; break; - case 'P': parser->method = (unsigned)HTTPMethod::Post; /* or PROPFIND|PROPPATCH|PUT|PATCH|PURGE */ break; - case 'R': parser->method = (unsigned)HTTPMethod::Report; /* or REBIND */ break; - case 'S': parser->method = (unsigned)HTTPMethod::Subscribe; /* or SEARCH, SOURCE */ break; - case 'T': parser->method = (unsigned)HTTPMethod::Trace; break; - case 'U': parser->method = (unsigned)HTTPMethod::Unlock; /* or UNSUBSCRIBE, UNBIND, UNLINK */ break; - default: - CROW_SET_ERRNO(CHPE_INVALID_METHOD); - goto error; - } - parser->state = s_req_method; - - CROW_CALLBACK_NOTIFY(message_begin); - - break; - } - - case s_req_method: - { - const char *matcher; - if (CROW_UNLIKELY(ch == '\0')) { - CROW_SET_ERRNO(CHPE_INVALID_METHOD); - goto error; - } - - matcher = method_strings[parser->method]; - if (ch == ' ' && matcher[parser->index] == '\0') { - parser->state = s_req_spaces_before_url; - } else if (ch == matcher[parser->index]) { - ; /* nada */ - } else if ((ch >= 'A' && ch <= 'Z') || ch == '-') { - - switch (parser->method << 16 | parser->index << 8 | ch) { -#define CROW_XX(meth, pos, ch, new_meth) \ - case ((unsigned)HTTPMethod::meth << 16 | pos << 8 | ch): \ - parser->method = (unsigned)HTTPMethod::new_meth; break; - - CROW_XX(Post, 1, 'U', Put) - CROW_XX(Post, 1, 'A', Patch) - CROW_XX(Post, 1, 'R', Propfind) - CROW_XX(Put, 2, 'R', Purge) - CROW_XX(Connect, 1, 'H', Checkout) - CROW_XX(Connect, 2, 'P', Copy) - CROW_XX(MkCol, 1, 'O', Move) - CROW_XX(MkCol, 1, 'E', Merge) - CROW_XX(MkCol, 1, '-', MSearch) - CROW_XX(MkCol, 2, 'A', MkActivity) - CROW_XX(MkCol, 3, 'A', MkCalendar) - CROW_XX(Subscribe, 1, 'E', Search) - CROW_XX(Subscribe, 1, 'O', Source) - CROW_XX(Report, 2, 'B', Rebind) - CROW_XX(Propfind, 4, 'P', Proppatch) - CROW_XX(Lock, 1, 'I', Link) - CROW_XX(Unlock, 2, 'S', Unsubscribe) - CROW_XX(Unlock, 2, 'B', Unbind) - CROW_XX(Unlock, 3, 'I', Unlink) -#undef CROW_XX - default: - CROW_SET_ERRNO(CHPE_INVALID_METHOD); - goto error; - } - } else { - CROW_SET_ERRNO(CHPE_INVALID_METHOD); - goto error; - } - - CROW_CALLBACK_NOTIFY_NOADVANCE(method); - - ++parser->index; - break; - } - - case s_req_spaces_before_url: - { - if (ch == ' ') break; - - CROW_MARK(url); - CROW_MARK(url_start); - if (parser->method == (unsigned)HTTPMethod::Connect) { - parser->state = s_req_server_start; - } - - parser->state = parse_url_char(static_cast(parser->state), ch, parser, url_start_mark, p); - if (CROW_UNLIKELY(parser->state == s_dead)) { - CROW_SET_ERRNO(CHPE_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: - CROW_SET_ERRNO(CHPE_INVALID_URL); - goto error; - default: - parser->state = parse_url_char(static_cast(parser->state), ch, parser, url_start_mark, p); - if (CROW_UNLIKELY(parser->state == s_dead)) { - CROW_SET_ERRNO(CHPE_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: - { - switch (ch) { - case ' ': - parser->state = s_req_http_start; - CROW_CALLBACK_DATA(url); - break; - case cr: // No space after URL means no HTTP version. Which means the request is using HTTP/0.9 - case lf: - if (CROW_UNLIKELY(parser->method != (unsigned)HTTPMethod::Get)) // HTTP/0.9 doesn't define any method other than GET - { - parser->state = s_dead; - CROW_SET_ERRNO(CHPE_INVALID_VERSION); - goto error; - } - parser->http_major = 0; - parser->http_minor = 9; - parser->state = (ch == cr) ? - s_req_line_almost_done : - s_header_field_start; - CROW_CALLBACK_DATA(url); - break; - default: - parser->state = parse_url_char(static_cast(parser->state), ch, parser, url_start_mark, p); - if (CROW_UNLIKELY(parser->state == s_dead)) { - CROW_SET_ERRNO(CHPE_INVALID_URL); - goto error; - } - } - break; - } - - case s_req_http_start: - switch (ch) { - case ' ': - break; - case 'H': - parser->state = s_req_http_H; - break; - case 'I': - if (parser->method == (unsigned)HTTPMethod::Source) { - parser->state = s_req_http_I; - break; - } - /* fall through */ - default: - CROW_SET_ERRNO(CHPE_INVALID_CONSTANT); - goto error; - } - break; - - case s_req_http_H: - CROW_STRICT_CHECK(ch != 'T'); - parser->state = s_req_http_HT; - break; - - case s_req_http_HT: - CROW_STRICT_CHECK(ch != 'T'); - parser->state = s_req_http_HTT; - break; - - case s_req_http_HTT: - CROW_STRICT_CHECK(ch != 'P'); - parser->state = s_req_http_HTTP; - break; - - case s_req_http_I: - CROW_STRICT_CHECK(ch != 'C'); - parser->state = s_req_http_IC; - break; - - case s_req_http_IC: - CROW_STRICT_CHECK(ch != 'E'); - parser->state = s_req_http_HTTP; /* Treat "ICE" as "HTTP". */ - break; - - case s_req_http_HTTP: - CROW_STRICT_CHECK(ch != '/'); - parser->state = s_req_http_major; - break; - - /* dot */ - case s_req_http_major: - if (CROW_UNLIKELY(!CROW_IS_NUM(ch))) { - CROW_SET_ERRNO(CHPE_INVALID_VERSION); - goto error; - } - - parser->http_major = ch - '0'; - parser->state = s_req_http_dot; - break; - - case s_req_http_dot: - { - if (CROW_UNLIKELY(ch != '.')) { - CROW_SET_ERRNO(CHPE_INVALID_VERSION); - goto error; - } - - parser->state = s_req_http_minor; - break; - } - - /* minor HTTP version */ - case s_req_http_minor: - if (CROW_UNLIKELY(!CROW_IS_NUM(ch))) { - CROW_SET_ERRNO(CHPE_INVALID_VERSION); - goto error; - } - - parser->http_minor = ch - '0'; - parser->state = s_req_http_end; - break; - - /* end of request line */ - case s_req_http_end: - { - if (ch == cr) { - parser->state = s_req_line_almost_done; - break; - } - - if (ch == lf) { - parser->state = s_header_field_start; - break; - } - - CROW_SET_ERRNO(CHPE_INVALID_VERSION); - goto error; - break; - } - - /* end of request line */ - case s_req_line_almost_done: - { - if (CROW_UNLIKELY(ch != lf)) { - CROW_SET_ERRNO(CHPE_LF_EXPECTED); - goto error; - } - - parser->state = s_header_field_start; - break; - } - - case s_header_field_start: - { - if (ch == cr) { - parser->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*/ - parser->state = s_headers_almost_done; - CROW_REEXECUTE(); - } - - c = CROW_TOKEN(ch); - - if (CROW_UNLIKELY(!c)) { - CROW_SET_ERRNO(CHPE_INVALID_HEADER_TOKEN); - goto error; - } - - CROW_MARK(header_field); - - parser->index = 0; - parser->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 = CROW_TOKEN(ch); - - if (!c) - break; - - switch (parser->header_state) { - case h_general: { - size_t left = data + len - p; - const char* pe = p + CROW_MIN(left, max_header_size); - while (p+1 < pe && CROW_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(CROW_CONNECTION)-1 || c != CROW_CONNECTION[parser->index]) { - parser->header_state = h_general; - } else if (parser->index == sizeof(CROW_CONNECTION)-2) { - parser->header_state = h_connection; - } - break; - - /* proxy-connection */ - - case h_matching_proxy_connection: - parser->index++; - if (parser->index > sizeof(CROW_PROXY_CONNECTION)-1 || c != CROW_PROXY_CONNECTION[parser->index]) { - parser->header_state = h_general; - } else if (parser->index == sizeof(CROW_PROXY_CONNECTION)-2) { - parser->header_state = h_connection; - } - break; - - /* content-length */ - - case h_matching_content_length: - parser->index++; - if (parser->index > sizeof(CROW_CONTENT_LENGTH)-1 || c != CROW_CONTENT_LENGTH[parser->index]) { - parser->header_state = h_general; - } else if (parser->index == sizeof(CROW_CONTENT_LENGTH)-2) { - parser->header_state = h_content_length; - } - break; - - /* transfer-encoding */ - - case h_matching_transfer_encoding: - parser->index++; - if (parser->index > sizeof(CROW_TRANSFER_ENCODING)-1 || c != CROW_TRANSFER_ENCODING[parser->index]) { - parser->header_state = h_general; - } else if (parser->index == sizeof(CROW_TRANSFER_ENCODING)-2) { - parser->header_state = h_transfer_encoding; - parser->uses_transfer_encoding = 1; - } - break; - - /* upgrade */ - - case h_matching_upgrade: - parser->index++; - if (parser->index > sizeof(CROW_UPGRADE)-1 || c != CROW_UPGRADE[parser->index]) { - parser->header_state = h_general; - } else if (parser->index == sizeof(CROW_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; - CROW_COUNT_HEADER_SIZE(p - start); - break; - } - - CROW_COUNT_HEADER_SIZE(p - start); - - if (ch == ':') { - parser->state = s_header_value_discard_ws; - CROW_CALLBACK_DATA(header_field); - break; - } -/* RFC-7230 Sec 3.2.4 expressly forbids line-folding in header field-names. - if (ch == cr) { - parser->state = s_header_almost_done; - CROW_CALLBACK_DATA(header_field); - break; - } - - if (ch == lf) { - parser->state = s_header_field_start; - CROW_CALLBACK_DATA(header_field); - break; - } -*/ - CROW_SET_ERRNO(CHPE_INVALID_HEADER_TOKEN); - goto error; - } - - case s_header_value_discard_ws: - if (ch == ' ' || ch == '\t') break; - - if (ch == cr) { - parser->state = s_header_value_discard_ws_almost_done; - break; - } - - if (ch == lf) { - parser->state = s_header_value_discard_lws; - break; - } - - /* fall through */ - - case s_header_value_start: - { - CROW_MARK(header_value); - - parser->state = s_header_value; - parser->index = 0; - - c = CROW_LOWER(ch); - - switch (parser->header_state) { - case h_upgrade: - // Crow does not support HTTP/2 at the moment. - // According to the RFC https://datatracker.ietf.org/doc/html/rfc7540#section-3.2 - // "A server that does not support HTTP/2 can respond to the request as though the Upgrade header field were absent" - // => `F_UPGRADE` is not set if the header starts by "h2". - // This prevents the parser from skipping the request body. - if (ch != 'h' || p+1 == (data + len) || *(p+1) != '2') { - 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 (CROW_UNLIKELY(!CROW_IS_NUM(ch))) { - CROW_SET_ERRNO(CHPE_INVALID_CONTENT_LENGTH); - goto error; - } - - if (parser->flags & F_CONTENTLENGTH) { - CROW_SET_ERRNO(CHPE_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 == ' ' || c == '\t') { - /* Skip lws */ - } else { - parser->header_state = h_general; - } - break; - - default: - parser->header_state = h_general; - break; - } - break; - } - - case s_header_value: - { - const char* start = p; - enum header_states h_state = static_cast(parser->header_state); - for (; p != data + len; p++) { - ch = *p; - - if (ch == cr) { - parser->state = s_header_almost_done; - parser->header_state = h_state; - CROW_CALLBACK_DATA(header_value); - break; - } - - if (ch == lf) { - parser->state = s_header_almost_done; - CROW_COUNT_HEADER_SIZE(p - start); - parser->header_state = h_state; - CROW_CALLBACK_DATA_NOADVANCE(header_value); - CROW_REEXECUTE(); - } - - if (!lenient && !CROW_IS_HEADER_CHAR(ch)) { - CROW_SET_ERRNO(CHPE_INVALID_HEADER_TOKEN); - goto error; - } - - c = CROW_LOWER(ch); - - switch (h_state) { - case h_general: - { - size_t left = data + len - p; - const char* pe = p + CROW_MIN(left, max_header_size); - - for (; p != pe; p++) { - ch = *p; - if (ch == cr || ch == lf) { - --p; - break; - } - if (!lenient && !CROW_IS_HEADER_CHAR(ch)) { - CROW_SET_ERRNO(CHPE_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 (CROW_UNLIKELY(!CROW_IS_NUM(ch))) { - CROW_SET_ERRNO(CHPE_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 (CROW_UNLIKELY((CROW_ULLONG_MAX - 10) / 10 < parser->content_length)) { - CROW_SET_ERRNO(CHPE_INVALID_CONTENT_LENGTH); - parser->header_state = h_state; - goto error; - } - - parser->content_length = t; - break; - } - - case h_content_length_ws: - if (ch == ' ') break; - CROW_SET_ERRNO(CHPE_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 (CROW_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(CROW_CHUNKED)-1 || c != CROW_CHUNKED[parser->index]) { - h_state = h_matching_transfer_encoding_token; - } else if (parser->index == sizeof(CROW_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; - - /* looking for 'Connection: keep-alive' */ - case h_matching_connection_keep_alive: - parser->index++; - if (parser->index > sizeof(CROW_KEEP_ALIVE)-1 || c != CROW_KEEP_ALIVE[parser->index]) { - h_state = h_general; - } else if (parser->index == sizeof(CROW_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(CROW_CLOSE)-1 || c != CROW_CLOSE[parser->index]) { - h_state = h_general; - } else if (parser->index == sizeof(CROW_CLOSE)-2) { - h_state = h_connection_close; - } - break; - - // Edited from original (because of commits that werent included) - case h_transfer_encoding_chunked: - if (ch != ' ') h_state = h_matching_transfer_encoding_token; - break; - case h_connection_keep_alive: - case h_connection_close: - if (ch != ' ') h_state = h_general; - break; - - default: - parser->state = s_header_value; - h_state = h_general; - break; - } - } - parser->header_state = h_state; - - - if (p == data + len) - --p; - - CROW_COUNT_HEADER_SIZE(p - start); - break; - } - - case s_header_almost_done: - { - if (CROW_UNLIKELY(ch != lf)) { - CROW_SET_ERRNO(CHPE_LF_EXPECTED); - goto error; - } - - parser->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; - } - parser->state = s_header_value_start; - CROW_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; - default: - break; - } - - parser->state = s_header_field_start; - CROW_REEXECUTE(); - } - - case s_header_value_discard_ws_almost_done: - { - CROW_STRICT_CHECK(ch != lf); - parser->state = s_header_value_discard_lws; - break; - } - - case s_header_value_discard_lws: - { - if (ch == ' ' || ch == '\t') { - parser->state = s_header_value_discard_ws; - break; - } else { - /* header value was empty */ - CROW_MARK(header_value); - parser->state = s_header_field_start; - CROW_CALLBACK_DATA_NOADVANCE(header_value); - CROW_REEXECUTE(); - } - } - - case s_headers_almost_done: - { - CROW_STRICT_CHECK(ch != lf); - - if (parser->flags & F_TRAILING) { - /* End of a chunked request */ - CROW_CALLBACK_NOTIFY(message_complete); - break; - } - - /* Cannot use transfer-encoding and a content-length header together - per the HTTP specification. (RFC 7230 Section 3.3.3) */ - if ((parser->uses_transfer_encoding == 1) && - (parser->flags & F_CONTENTLENGTH)) { - /* Allow it for lenient parsing as long as `Transfer-Encoding` is - * not `chunked` or allow_length_with_encoding is set - */ - if (parser->flags & F_CHUNKED) { - if (!allow_chunked_length) { - CROW_SET_ERRNO(CHPE_UNEXPECTED_CONTENT_LENGTH); - goto error; - } - } else if (!lenient) { - CROW_SET_ERRNO(CHPE_UNEXPECTED_CONTENT_LENGTH); - goto error; - } - } - - parser->state = s_headers_done; - - /* Set this here so that on_headers_complete() callbacks can see it */ - parser->upgrade = - (parser->flags & F_UPGRADE || parser->method == (unsigned)HTTPMethod::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 CROW_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; - //break; - - /* fall through */ - case 1: - parser->flags |= F_SKIPBODY; - break; - - default: - CROW_SET_ERRNO(CHPE_CB_headers_complete); - parser->nread = nread; - return p - data; /* Error */ - } - } - - if (CROW_HTTP_PARSER_ERRNO(parser) != CHPE_OK) { - parser->nread = nread; - return p - data; - } - - CROW_REEXECUTE(); - } - - case s_headers_done: - { - CROW_STRICT_CHECK(ch != lf); - - parser->nread = 0; - nread = 0; - - /* Exit, the rest of the connect is in a different protocol. */ - if (parser->upgrade) { - CROW_CALLBACK_NOTIFY(message_complete); - parser->nread = nread; - return (p - data) + 1; - } - - if (parser->flags & F_SKIPBODY) { - CROW_CALLBACK_NOTIFY(message_complete); - } else if (parser->flags & F_CHUNKED) { - /* chunked encoding - ignore Content-Length header, - * prepare for a chunk */ - parser->state = s_chunk_size_start; - } - else if (parser->uses_transfer_encoding == 1) - { - if (!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. - */ - CROW_SET_ERRNO(CHPE_INVALID_TRANSFER_ENCODING); - parser->nread = nread; - 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. - */ - parser->state = s_body_identity_eof; - } - } - else - { - if (parser->content_length == 0) - { - /* Content-Length header given but zero: Content-Length: 0\r\n */ - CROW_CALLBACK_NOTIFY(message_complete); - } - else if (parser->content_length != CROW_ULLONG_MAX) - { - /* Content-Length header given and non-zero */ - parser->state = s_body_identity; - } - else - { - /* Assume content-length 0 - read the next */ - CROW_CALLBACK_NOTIFY(message_complete); - } - } - - break; - } - - case s_body_identity: - { - uint64_t to_read = CROW_MIN(parser->content_length, - (uint64_t) ((data + len) - p)); - - assert(parser->content_length != 0 - && parser->content_length != CROW_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. - */ - CROW_MARK(body); - parser->content_length -= to_read; - p += to_read - 1; - - if (parser->content_length == 0) { - parser->state = s_message_done; - - /* Mimic CROW_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. - */ - CROW_CALLBACK_DATA_(body, p - body_mark + 1, p - data); - CROW_REEXECUTE(); - } - - break; - } - - /* read until EOF */ - case s_body_identity_eof: - CROW_MARK(body); - p = data + len - 1; - - break; - - case s_message_done: - CROW_CALLBACK_NOTIFY(message_complete); - break; - - case s_chunk_size_start: - { - assert(nread == 1); - assert(parser->flags & F_CHUNKED); - - unhex_val = unhex[static_cast(ch)]; - if (CROW_UNLIKELY(unhex_val == -1)) { - CROW_SET_ERRNO(CHPE_INVALID_CHUNK_SIZE); - goto error; - } - - parser->content_length = unhex_val; - parser->state = s_chunk_size; - break; - } - - case s_chunk_size: - { - uint64_t t; - - assert(parser->flags & F_CHUNKED); - - if (ch == cr) { - parser->state = s_chunk_size_almost_done; - break; - } - - unhex_val = unhex[static_cast(ch)]; - - if (unhex_val == -1) { - if (ch == ';' || ch == ' ') { - parser->state = s_chunk_parameters; - break; - } - - CROW_SET_ERRNO(CHPE_INVALID_CHUNK_SIZE); - goto error; - } - - t = parser->content_length; - t *= 16; - t += unhex_val; - - /* Overflow? Test against a conservative limit for simplicity. */ - if (CROW_UNLIKELY((CROW_ULLONG_MAX - 16) / 16 < parser->content_length)) { - CROW_SET_ERRNO(CHPE_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) { - parser->state = s_chunk_size_almost_done; - break; - } - break; - } - - case s_chunk_size_almost_done: - { - assert(parser->flags & F_CHUNKED); - CROW_STRICT_CHECK(ch != lf); - - parser->nread = 0; - nread = 0; - - if (parser->content_length == 0) { - parser->flags |= F_TRAILING; - parser->state = s_header_field_start; - } else { - parser->state = s_chunk_data; - } - break; - } - - case s_chunk_data: - { - uint64_t to_read = CROW_MIN(parser->content_length, - (uint64_t) ((data + len) - p)); - - assert(parser->flags & F_CHUNKED); - assert(parser->content_length != 0 - && parser->content_length != CROW_ULLONG_MAX); - - /* See the explanation in s_body_identity for why the content - * length and data pointers are managed this way. - */ - CROW_MARK(body); - parser->content_length -= to_read; - p += to_read - 1; - - if (parser->content_length == 0) { - parser->state = s_chunk_data_almost_done; - } - - break; - } - - case s_chunk_data_almost_done: - assert(parser->flags & F_CHUNKED); - assert(parser->content_length == 0); - CROW_STRICT_CHECK(ch != cr); - parser->state = s_chunk_data_done; - CROW_CALLBACK_DATA(body); - break; - - case s_chunk_data_done: - assert(parser->flags & F_CHUNKED); - CROW_STRICT_CHECK(ch != lf); - parser->nread = 0; - nread = 0; - parser->state = s_chunk_size_start; - break; - - default: - assert(0 && "unhandled state"); - CROW_SET_ERRNO(CHPE_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 CROW_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)) <= 1); - - CROW_CALLBACK_DATA_NOADVANCE(header_field); - CROW_CALLBACK_DATA_NOADVANCE(header_value); - CROW_CALLBACK_DATA_NOADVANCE(url); - CROW_CALLBACK_DATA_NOADVANCE(body); - - parser->nread = nread; - return len; - -error: - if (CROW_HTTP_PARSER_ERRNO(parser) == CHPE_OK) { - CROW_SET_ERRNO(CHPE_UNKNOWN); - } - - parser->nread = nread; - return (p - data); -} - -inline void - http_parser_init(http_parser* parser) -{ - void *data = parser->data; /* preserve application data */ - memset(parser, 0, sizeof(*parser)); - parser->data = data; - parser->state = s_start_req; - parser->http_errno = CHPE_OK; -} - -/* Return a string name of the given error */ -inline const char * -http_errno_name(enum http_errno err) { -/* Map errno values to strings for human-readable output */ -#define CROW_HTTP_STRERROR_GEN(n, s) { "CHPE_" #n, s }, -static struct { - const char *name; - const char *description; -} http_strerror_tab[] = { - CROW_HTTP_ERRNO_MAP(CROW_HTTP_STRERROR_GEN) -}; -#undef CROW_HTTP_STRERROR_GEN - assert(((size_t) err) < CROW_ARRAY_SIZE(http_strerror_tab)); - return http_strerror_tab[err].name; -} - -/* Return a string description of the given error */ -inline const char * -http_errno_description(enum http_errno err) { -/* Map errno values to strings for human-readable output */ -#define CROW_HTTP_STRERROR_GEN(n, s) { "CHPE_" #n, s }, -static struct { - const char *name; - const char *description; -} http_strerror_tab[] = { - CROW_HTTP_ERRNO_MAP(CROW_HTTP_STRERROR_GEN) -}; -#undef CROW_HTTP_STRERROR_GEN - assert(((size_t) err) < CROW_ARRAY_SIZE(http_strerror_tab)); - return http_strerror_tab[err].description; -} - -/* Checks if this is the final chunk of the body. */ -inline int -http_body_is_final(const struct http_parser *parser) { - return parser->state == s_message_done; -} - -/* Change the maximum header size provided at compile time. */ -inline void -http_parser_set_max_header_size(uint32_t size) { - max_header_size = size; -} - -#undef CROW_HTTP_ERRNO_MAP -#undef CROW_SET_ERRNO -#undef CROW_CALLBACK_NOTIFY_ -#undef CROW_CALLBACK_NOTIFY -#undef CROW_CALLBACK_NOTIFY_NOADVANCE -#undef CROW_CALLBACK_DATA_ -#undef CROW_CALLBACK_DATA -#undef CROW_CALLBACK_DATA_NOADVANCE -#undef CROW_MARK -#undef CROW_PROXY_CONNECTION -#undef CROW_CONNECTION -#undef CROW_CONTENT_LENGTH -#undef CROW_TRANSFER_ENCODING -#undef CROW_UPGRADE -#undef CROW_CHUNKED -#undef CROW_KEEP_ALIVE -#undef CROW_CLOSE -#undef CROW_PARSING_HEADER -#undef CROW_LOWER -#undef CROW_IS_ALPHA -#undef CROW_IS_NUM -#undef CROW_IS_ALPHANUM -//#undef CROW_IS_HEX -#undef CROW_IS_MARK -#undef CROW_IS_USERINFO_CHAR -#undef CROW_TOKEN -#undef CROW_IS_URL_CHAR -//#undef CROW_IS_HOST_CHAR -#undef CROW_STRICT_CHECK - -} - -// clang-format on - - -#include -#include -#include - - -namespace crow -{ - /// A wrapper for `nodejs/http-parser`. - - /// - /// Used to generate a \ref crow.request from the TCP socket buffer. - template - struct HTTPParser : public http_parser - { - static int on_message_begin(http_parser*) - { - return 0; - } - static int on_method(http_parser* self_) - { - HTTPParser* self = static_cast(self_); - self->req.method = static_cast(self->method); - - return 0; - } - static int on_url(http_parser* self_, const char* at, size_t length) - { - HTTPParser* self = static_cast(self_); - self->req.raw_url.insert(self->req.raw_url.end(), at, at + length); - self->req.url_params = query_string(self->req.raw_url); - self->req.url = self->req.raw_url.substr(0, self->qs_point != 0 ? self->qs_point : std::string::npos); - - self->process_url(); - - return 0; - } - static int on_header_field(http_parser* self_, const char* at, size_t length) - { - HTTPParser* self = static_cast(self_); - switch (self->header_building_state) - { - case 0: - if (!self->header_value.empty()) - { - self->req.headers.emplace(std::move(self->header_field), std::move(self->header_value)); - } - self->header_field.assign(at, at + length); - self->header_building_state = 1; - break; - case 1: - self->header_field.insert(self->header_field.end(), at, at + length); - break; - } - return 0; - } - static int on_header_value(http_parser* self_, const char* at, size_t length) - { - HTTPParser* self = static_cast(self_); - switch (self->header_building_state) - { - case 0: - self->header_value.insert(self->header_value.end(), at, at + length); - break; - case 1: - self->header_building_state = 0; - self->header_value.assign(at, at + length); - break; - } - return 0; - } - static int on_headers_complete(http_parser* self_) - { - HTTPParser* self = static_cast(self_); - if (!self->header_field.empty()) - { - self->req.headers.emplace(std::move(self->header_field), std::move(self->header_value)); - } - - self->set_connection_parameters(); - - self->process_header(); - return 0; - } - static int on_body(http_parser* self_, const char* at, size_t length) - { - HTTPParser* self = static_cast(self_); - self->req.body.insert(self->req.body.end(), at, at + length); - return 0; - } - static int on_message_complete(http_parser* self_) - { - HTTPParser* self = static_cast(self_); - - self->message_complete = true; - self->process_message(); - return 0; - } - HTTPParser(Handler* handler): - handler_(handler) - { - http_parser_init(this); - } - - // return false on error - /// Parse a buffer into the different sections of an HTTP request. - bool feed(const char* buffer, int length) - { - if (message_complete) - return true; - - const static http_parser_settings settings_{ - on_message_begin, - on_method, - on_url, - on_header_field, - on_header_value, - on_headers_complete, - on_body, - on_message_complete, - }; - - int nparsed = http_parser_execute(this, &settings_, buffer, length); - if (http_errno != CHPE_OK) - { - return false; - } - return nparsed == length; - } - - bool done() - { - return feed(nullptr, 0); - } - - void clear() - { - req = crow::request(); - header_field.clear(); - header_value.clear(); - header_building_state = 0; - qs_point = 0; - message_complete = false; - state = CROW_NEW_MESSAGE(); - } - - inline void process_url() - { - handler_->handle_url(); - } - - inline void process_header() - { - handler_->handle_header(); - } - - inline void process_message() - { - handler_->handle(); - } - - inline void set_connection_parameters() - { - req.http_ver_major = http_major; - req.http_ver_minor = http_minor; - - //NOTE(EDev): it seems that the problem is with crow's policy on closing the connection for HTTP_VERSION < 1.0, the behaviour for that in crow is "don't close the connection, but don't send a keep-alive either" - - // HTTP1.1 = always send keep_alive, HTTP1.0 = only send if header exists, HTTP?.? = never send - req.keep_alive = (http_major == 1 && http_minor == 0) ? - ((flags & F_CONNECTION_KEEP_ALIVE) ? true : false) : - ((http_major == 1 && http_minor == 1) ? true : false); - - // HTTP1.1 = only close if close header exists, HTTP1.0 = always close unless keep_alive header exists, HTTP?.?= never close - req.close_connection = (http_major == 1 && http_minor == 0) ? - ((flags & F_CONNECTION_KEEP_ALIVE) ? false : true) : - ((http_major == 1 && http_minor == 1) ? ((flags & F_CONNECTION_CLOSE) ? true : false) : false); - req.upgrade = static_cast(upgrade); - } - - /// The final request that this parser outputs. - /// - /// Data parsed is put directly into this object as soon as the related callback returns. (e.g. the request will have the cooorect method as soon as on_method() returns) - request req; - - private: - int header_building_state = 0; - bool message_complete = false; - std::string header_field; - std::string header_value; - - Handler* handler_; ///< This is currently an HTTP connection object (\ref crow.Connection). - }; -} // namespace crow - -#undef CROW_NEW_MESSAGE -#undef CROW_start_state - - - -#include -#include -#include -#include -#include -#include - -namespace crow -{ - enum class LogLevel - { -#ifndef ERROR -#ifndef DEBUG - DEBUG = 0, - INFO, - WARNING, - ERROR, - CRITICAL, -#endif -#endif - - Debug = 0, - Info, - Warning, - Error, - Critical, - }; - - class ILogHandler - { - public: - virtual ~ILogHandler() = default; - - virtual void log(std::string message, LogLevel level) = 0; - }; - - class CerrLogHandler : public ILogHandler - { - public: - void log(std::string message, LogLevel level) override - { - std::string prefix; - switch (level) - { - case LogLevel::Debug: - prefix = "DEBUG "; - break; - case LogLevel::Info: - prefix = "INFO "; - break; - case LogLevel::Warning: - prefix = "WARNING "; - break; - case LogLevel::Error: - prefix = "ERROR "; - break; - case LogLevel::Critical: - prefix = "CRITICAL"; - break; - } - std::cerr << std::string("(") + timestamp() + std::string(") [") + prefix + std::string("] ") + message << std::endl; - } - - private: - static std::string timestamp() - { - char date[32]; - time_t t = time(0); - - tm my_tm; - -#if defined(_MSC_VER) || defined(__MINGW32__) -#ifdef CROW_USE_LOCALTIMEZONE - localtime_s(&my_tm, &t); -#else - gmtime_s(&my_tm, &t); -#endif -#else -#ifdef CROW_USE_LOCALTIMEZONE - localtime_r(&t, &my_tm); -#else - gmtime_r(&t, &my_tm); -#endif -#endif - - size_t sz = strftime(date, sizeof(date), "%Y-%m-%d %H:%M:%S", &my_tm); - return std::string(date, date + sz); - } - }; - - class logger - { - public: - logger(LogLevel level): - level_(level) - {} - ~logger() - { -#ifdef CROW_ENABLE_LOGGING - if (level_ >= get_current_log_level()) - { - get_handler_ref()->log(stringstream_.str(), level_); - } -#endif - } - - // - template - logger& operator<<(T const& value) - { -#ifdef CROW_ENABLE_LOGGING - if (level_ >= get_current_log_level()) - { - stringstream_ << value; - } -#endif - return *this; - } - - // - static void setLogLevel(LogLevel level) { get_log_level_ref() = level; } - - static void setHandler(ILogHandler* handler) { get_handler_ref() = handler; } - - static LogLevel get_current_log_level() { return get_log_level_ref(); } - - private: - // - static LogLevel& get_log_level_ref() - { - static LogLevel current_level = static_cast(CROW_LOG_LEVEL); - return current_level; - } - static ILogHandler*& get_handler_ref() - { - static CerrLogHandler default_handler; - static ILogHandler* current_handler = &default_handler; - return current_handler; - } - - // - std::ostringstream stringstream_; - LogLevel level_; - }; -} // namespace crow - -#define CROW_LOG_CRITICAL \ - if (crow::logger::get_current_log_level() <= crow::LogLevel::Critical) \ - crow::logger(crow::LogLevel::Critical) -#define CROW_LOG_ERROR \ - if (crow::logger::get_current_log_level() <= crow::LogLevel::Error) \ - crow::logger(crow::LogLevel::Error) -#define CROW_LOG_WARNING \ - if (crow::logger::get_current_log_level() <= crow::LogLevel::Warning) \ - crow::logger(crow::LogLevel::Warning) -#define CROW_LOG_INFO \ - if (crow::logger::get_current_log_level() <= crow::LogLevel::Info) \ - crow::logger(crow::LogLevel::Info) -#define CROW_LOG_DEBUG \ - if (crow::logger::get_current_log_level() <= crow::LogLevel::Debug) \ - crow::logger(crow::LogLevel::Debug) - - -//#define CROW_JSON_NO_ERROR_CHECK -//#define CROW_JSON_USE_MAP - -#include -#ifdef CROW_JSON_USE_MAP -#include -#else -#include -#endif -#include -#include -#include -#include -#include -#include - - -using std::isinf; -using std::isnan; - - -namespace crow // NOTE: Already documented in "crow/app.h" -{ - namespace mustache - { - class template_t; - } - - namespace json - { - inline void escape(const std::string& str, std::string& ret) - { - ret.reserve(ret.size() + str.size() + str.size() / 4); - for (auto c : str) - { - switch (c) - { - case '"': ret += "\\\""; break; - case '\\': ret += "\\\\"; break; - case '\n': ret += "\\n"; break; - case '\b': ret += "\\b"; break; - case '\f': ret += "\\f"; break; - case '\r': ret += "\\r"; break; - case '\t': ret += "\\t"; break; - default: - if (c >= 0 && c < 0x20) - { - ret += "\\u00"; - auto to_hex = [](char c) { - c = c & 0xf; - if (c < 10) - return '0' + c; - return 'a' + c - 10; - }; - ret += to_hex(c / 16); - ret += to_hex(c % 16); - } - else - ret += c; - break; - } - } - } - inline std::string escape(const std::string& str) - { - std::string ret; - escape(str, ret); - return ret; - } - - enum class type : char - { - Null, - False, - True, - Number, - String, - List, - Object, - Function - }; - - inline const char* get_type_str(type t) - { - switch (t) - { - case type::Number: return "Number"; - case type::False: return "False"; - case type::True: return "True"; - case type::List: return "List"; - case type::String: return "String"; - case type::Object: return "Object"; - case type::Function: return "Function"; - default: return "Unknown"; - } - } - - enum class num_type : char - { - Signed_integer, - Unsigned_integer, - Floating_point, - Null, - Double_precision_floating_point - }; - - class rvalue; - rvalue load(const char* data, size_t size); - - namespace detail - { - /// A read string implementation with comparison functionality. - struct r_string - { - r_string(){}; - r_string(char* s, char* e): - s_(s), e_(e){}; - ~r_string() - { - if (owned_) - delete[] s_; - } - - r_string(const r_string& r) - { - *this = r; - } - - r_string(r_string&& r) - { - *this = r; - } - - r_string& operator=(r_string&& r) - { - s_ = r.s_; - e_ = r.e_; - owned_ = r.owned_; - if (r.owned_) - r.owned_ = 0; - return *this; - } - - r_string& operator=(const r_string& r) - { - s_ = r.s_; - e_ = r.e_; - owned_ = 0; - return *this; - } - - operator std::string() const - { - return std::string(s_, e_); - } - - - const char* begin() const { return s_; } - const char* end() const { return e_; } - size_t size() const { return end() - begin(); } - - using iterator = const char*; - using const_iterator = const char*; - - char* s_; ///< Start. - mutable char* e_; ///< End. - uint8_t owned_{0}; - friend std::ostream& operator<<(std::ostream& os, const r_string& s) - { - os << static_cast(s); - return os; - } - - private: - void force(char* s, uint32_t length) - { - s_ = s; - e_ = s_ + length; - owned_ = 1; - } - friend rvalue crow::json::load(const char* data, size_t size); - - friend bool operator==(const r_string& l, const r_string& r); - friend bool operator==(const std::string& l, const r_string& r); - friend bool operator==(const r_string& l, const std::string& r); - - template - inline static bool equals(const T& l, const U& r) - { - if (l.size() != r.size()) - return false; - - for (size_t i = 0; i < l.size(); i++) - { - if (*(l.begin() + i) != *(r.begin() + i)) - return false; - } - - return true; - } - }; - - inline bool operator<(const r_string& l, const r_string& r) - { - return std::lexicographical_compare(l.begin(), l.end(), r.begin(), r.end()); - } - - inline bool operator<(const r_string& l, const std::string& r) - { - return std::lexicographical_compare(l.begin(), l.end(), r.begin(), r.end()); - } - - inline bool operator<(const std::string& l, const r_string& r) - { - return std::lexicographical_compare(l.begin(), l.end(), r.begin(), r.end()); - } - - inline bool operator>(const r_string& l, const r_string& r) - { - return std::lexicographical_compare(l.begin(), l.end(), r.begin(), r.end()); - } - - inline bool operator>(const r_string& l, const std::string& r) - { - return std::lexicographical_compare(l.begin(), l.end(), r.begin(), r.end()); - } - - inline bool operator>(const std::string& l, const r_string& r) - { - return std::lexicographical_compare(l.begin(), l.end(), r.begin(), r.end()); - } - - inline bool operator==(const r_string& l, const r_string& r) - { - return r_string::equals(l, r); - } - - inline bool operator==(const r_string& l, const std::string& r) - { - return r_string::equals(l, r); - } - - inline bool operator==(const std::string& l, const r_string& r) - { - return r_string::equals(l, r); - } - - inline bool operator!=(const r_string& l, const r_string& r) - { - return !(l == r); - } - - inline bool operator!=(const r_string& l, const std::string& r) - { - return !(l == r); - } - - inline bool operator!=(const std::string& l, const r_string& r) - { - return !(l == r); - } - } // namespace detail - - /// JSON read value. - - /// - /// Value can mean any json value, including a JSON object. - /// Read means this class is used to primarily read strings into a JSON value. - class rvalue - { - static const int cached_bit = 2; - static const int error_bit = 4; - - public: - rvalue() noexcept: - option_{error_bit} - { - } - rvalue(type t) noexcept: - lsize_{}, lremain_{}, t_{t} - { - } - rvalue(type t, char* s, char* e) noexcept: - start_{s}, end_{e}, t_{t} - { - determine_num_type(); - } - - rvalue(const rvalue& r): - start_(r.start_), end_(r.end_), key_(r.key_), t_(r.t_), nt_(r.nt_), option_(r.option_) - { - copy_l(r); - } - - rvalue(rvalue&& r) noexcept - { - *this = std::move(r); - } - - rvalue& operator=(const rvalue& r) - { - start_ = r.start_; - end_ = r.end_; - key_ = r.key_; - t_ = r.t_; - nt_ = r.nt_; - option_ = r.option_; - copy_l(r); - return *this; - } - rvalue& operator=(rvalue&& r) noexcept - { - start_ = r.start_; - end_ = r.end_; - key_ = std::move(r.key_); - l_ = std::move(r.l_); - lsize_ = r.lsize_; - lremain_ = r.lremain_; - t_ = r.t_; - nt_ = r.nt_; - option_ = r.option_; - return *this; - } - - explicit operator bool() const noexcept - { - return (option_ & error_bit) == 0; - } - - explicit operator int64_t() const - { - return i(); - } - - explicit operator uint64_t() const - { - return u(); - } - - explicit operator int() const - { - return static_cast(i()); - } - - /// Return any json value (not object or list) as a string. - explicit operator std::string() const - { -#ifndef CROW_JSON_NO_ERROR_CHECK - if (t() == type::Object || t() == type::List) - throw std::runtime_error("json type container"); -#endif - switch (t()) - { - case type::String: - return std::string(s()); - case type::Null: - return std::string("null"); - case type::True: - return std::string("true"); - case type::False: - return std::string("false"); - default: - return std::string(start_, end_ - start_); - } - } - - /// The type of the JSON value. - type t() const - { -#ifndef CROW_JSON_NO_ERROR_CHECK - if (option_ & error_bit) - { - throw std::runtime_error("invalid json object"); - } -#endif - return t_; - } - - /// The number type of the JSON value. - num_type nt() const - { -#ifndef CROW_JSON_NO_ERROR_CHECK - if (option_ & error_bit) - { - throw std::runtime_error("invalid json object"); - } -#endif - return nt_; - } - - /// The integer value. - int64_t i() const - { -#ifndef CROW_JSON_NO_ERROR_CHECK - switch (t()) - { - case type::Number: - case type::String: - return utility::lexical_cast(start_, end_ - start_); - default: - const std::string msg = "expected number, got: " + std::string(get_type_str(t())); - throw std::runtime_error(msg); - } -#endif - return utility::lexical_cast(start_, end_ - start_); - } - - /// The unsigned integer value. - uint64_t u() const - { -#ifndef CROW_JSON_NO_ERROR_CHECK - switch (t()) - { - case type::Number: - case type::String: - return utility::lexical_cast(start_, end_ - start_); - default: - throw std::runtime_error(std::string("expected number, got: ") + get_type_str(t())); - } -#endif - return utility::lexical_cast(start_, end_ - start_); - } - - /// The double precision floating-point number value. - double d() const - { -#ifndef CROW_JSON_NO_ERROR_CHECK - if (t() != type::Number) - throw std::runtime_error("value is not number"); -#endif - return utility::lexical_cast(start_, end_ - start_); - } - - /// The boolean value. - bool b() const - { -#ifndef CROW_JSON_NO_ERROR_CHECK - if (t() != type::True && t() != type::False) - throw std::runtime_error("value is not boolean"); -#endif - return t() == type::True; - } - - /// The string value. - detail::r_string s() const - { -#ifndef CROW_JSON_NO_ERROR_CHECK - if (t() != type::String) - throw std::runtime_error("value is not string"); -#endif - unescape(); - return detail::r_string{start_, end_}; - } - - /// The list or object value - std::vector lo() - { -#ifndef CROW_JSON_NO_ERROR_CHECK - if (t() != type::Object && t() != type::List) - throw std::runtime_error("value is not a container"); -#endif - std::vector ret; - ret.reserve(lsize_); - for (uint32_t i = 0; i < lsize_; i++) - { - ret.emplace_back(l_[i]); - } - return ret; - } - - /// Convert escaped string character to their original form ("\\n" -> '\n'). - void unescape() const - { - if (*(start_ - 1)) - { - char* head = start_; - char* tail = start_; - while (head != end_) - { - if (*head == '\\') - { - switch (*++head) - { - case '"': *tail++ = '"'; break; - case '\\': *tail++ = '\\'; break; - case '/': *tail++ = '/'; break; - case 'b': *tail++ = '\b'; break; - case 'f': *tail++ = '\f'; break; - case 'n': *tail++ = '\n'; break; - case 'r': *tail++ = '\r'; break; - case 't': *tail++ = '\t'; break; - case 'u': - { - auto from_hex = [](char c) { - if (c >= 'a') - return c - 'a' + 10; - if (c >= 'A') - return c - 'A' + 10; - return c - '0'; - }; - unsigned int code = - (from_hex(head[1]) << 12) + - (from_hex(head[2]) << 8) + - (from_hex(head[3]) << 4) + - from_hex(head[4]); - if (code >= 0x800) - { - *tail++ = 0xE0 | (code >> 12); - *tail++ = 0x80 | ((code >> 6) & 0x3F); - *tail++ = 0x80 | (code & 0x3F); - } - else if (code >= 0x80) - { - *tail++ = 0xC0 | (code >> 6); - *tail++ = 0x80 | (code & 0x3F); - } - else - { - *tail++ = code; - } - head += 4; - } - break; - } - } - else - *tail++ = *head; - head++; - } - end_ = tail; - *end_ = 0; - *(start_ - 1) = 0; - } - } - - /// Check if the json object has the passed string as a key. - bool has(const char* str) const - { - return has(std::string(str)); - } - - bool has(const std::string& str) const - { - struct Pred - { - bool operator()(const rvalue& l, const rvalue& r) const - { - return l.key_ < r.key_; - }; - bool operator()(const rvalue& l, const std::string& r) const - { - return l.key_ < r; - }; - bool operator()(const std::string& l, const rvalue& r) const - { - return l < r.key_; - }; - }; - if (!is_cached()) - { - std::sort(begin(), end(), Pred()); - set_cached(); - } - auto it = lower_bound(begin(), end(), str, Pred()); - return it != end() && it->key_ == str; - } - - int count(const std::string& str) - { - return has(str) ? 1 : 0; - } - - rvalue* begin() const - { -#ifndef CROW_JSON_NO_ERROR_CHECK - if (t() != type::Object && t() != type::List) - throw std::runtime_error("value is not a container"); -#endif - return l_.get(); - } - rvalue* end() const - { -#ifndef CROW_JSON_NO_ERROR_CHECK - if (t() != type::Object && t() != type::List) - throw std::runtime_error("value is not a container"); -#endif - return l_.get() + lsize_; - } - - const detail::r_string& key() const - { - return key_; - } - - size_t size() const - { - if (t() == type::String) - return s().size(); -#ifndef CROW_JSON_NO_ERROR_CHECK - if (t() != type::Object && t() != type::List) - throw std::runtime_error("value is not a container"); -#endif - return lsize_; - } - - const rvalue& operator[](int index) const - { -#ifndef CROW_JSON_NO_ERROR_CHECK - if (t() != type::List) - throw std::runtime_error("value is not a list"); - if (index >= static_cast(lsize_) || index < 0) - throw std::runtime_error("list out of bound"); -#endif - return l_[index]; - } - - const rvalue& operator[](size_t index) const - { -#ifndef CROW_JSON_NO_ERROR_CHECK - if (t() != type::List) - throw std::runtime_error("value is not a list"); - if (index >= lsize_) - throw std::runtime_error("list out of bound"); -#endif - return l_[index]; - } - - const rvalue& operator[](const char* str) const - { - return this->operator[](std::string(str)); - } - - const rvalue& operator[](const std::string& str) const - { -#ifndef CROW_JSON_NO_ERROR_CHECK - if (t() != type::Object) - throw std::runtime_error("value is not an object"); -#endif - struct Pred - { - bool operator()(const rvalue& l, const rvalue& r) const - { - return l.key_ < r.key_; - }; - bool operator()(const rvalue& l, const std::string& r) const - { - return l.key_ < r; - }; - bool operator()(const std::string& l, const rvalue& r) const - { - return l < r.key_; - }; - }; - if (!is_cached()) - { - std::sort(begin(), end(), Pred()); - set_cached(); - } - auto it = lower_bound(begin(), end(), str, Pred()); - if (it != end() && it->key_ == str) - return *it; -#ifndef CROW_JSON_NO_ERROR_CHECK - throw std::runtime_error("cannot find key"); -#else - static rvalue nullValue; - return nullValue; -#endif - } - - void set_error() - { - option_ |= error_bit; - } - - bool error() const - { - return (option_ & error_bit) != 0; - } - - std::vector keys() const - { -#ifndef CROW_JSON_NO_ERROR_CHECK - if (t() != type::Object) - throw std::runtime_error("value is not an object"); -#endif - std::vector ret; - ret.reserve(lsize_); - for (uint32_t i = 0; i < lsize_; i++) - { - ret.emplace_back(std::string(l_[i].key())); - } - return ret; - } - - private: - bool is_cached() const - { - return (option_ & cached_bit) != 0; - } - void set_cached() const - { - option_ |= cached_bit; - } - void copy_l(const rvalue& r) - { - if (r.t() != type::Object && r.t() != type::List) - return; - lsize_ = r.lsize_; - lremain_ = 0; - l_.reset(new rvalue[lsize_]); - std::copy(r.begin(), r.end(), begin()); - } - - void emplace_back(rvalue&& v) - { - if (!lremain_) - { - int new_size = lsize_ + lsize_; - if (new_size - lsize_ > 60000) - new_size = lsize_ + 60000; - if (new_size < 4) - new_size = 4; - rvalue* p = new rvalue[new_size]; - rvalue* p2 = p; - for (auto& x : *this) - *p2++ = std::move(x); - l_.reset(p); - lremain_ = new_size - lsize_; - } - l_[lsize_++] = std::move(v); - lremain_--; - } - - /// Determines num_type from the string. - void determine_num_type() - { - if (t_ != type::Number) - { - nt_ = num_type::Null; - return; - } - - const std::size_t len = end_ - start_; - const bool has_minus = std::memchr(start_, '-', len) != nullptr; - const bool has_e = std::memchr(start_, 'e', len) != nullptr || std::memchr(start_, 'E', len) != nullptr; - const bool has_dec_sep = std::memchr(start_, '.', len) != nullptr; - if (has_dec_sep || has_e) - nt_ = num_type::Floating_point; - else if (has_minus) - nt_ = num_type::Signed_integer; - else - nt_ = num_type::Unsigned_integer; - } - - mutable char* start_; - mutable char* end_; - detail::r_string key_; - std::unique_ptr l_; - uint32_t lsize_; - uint16_t lremain_; - type t_; - num_type nt_{num_type::Null}; - mutable uint8_t option_{0}; - - friend rvalue load_nocopy_internal(char* data, size_t size); - friend rvalue load(const char* data, size_t size); - friend std::ostream& operator<<(std::ostream& os, const rvalue& r) - { - switch (r.t_) - { - - case type::Null: os << "null"; break; - case type::False: os << "false"; break; - case type::True: os << "true"; break; - case type::Number: - { - switch (r.nt()) - { - case num_type::Floating_point: os << r.d(); break; - case num_type::Double_precision_floating_point: os << r.d(); break; - case num_type::Signed_integer: os << r.i(); break; - case num_type::Unsigned_integer: os << r.u(); break; - case num_type::Null: throw std::runtime_error("Number with num_type Null"); - } - } - break; - case type::String: os << '"' << r.s() << '"'; break; - case type::List: - { - os << '['; - bool first = true; - for (auto& x : r) - { - if (!first) - os << ','; - first = false; - os << x; - } - os << ']'; - } - break; - case type::Object: - { - os << '{'; - bool first = true; - for (auto& x : r) - { - if (!first) - os << ','; - os << '"' << escape(x.key_) << "\":"; - first = false; - os << x; - } - os << '}'; - } - break; - case type::Function: os << "custom function"; break; - } - return os; - } - }; - namespace detail - { - } - - inline bool operator==(const rvalue& l, const std::string& r) - { - return l.s() == r; - } - - inline bool operator==(const std::string& l, const rvalue& r) - { - return l == r.s(); - } - - inline bool operator!=(const rvalue& l, const std::string& r) - { - return l.s() != r; - } - - inline bool operator!=(const std::string& l, const rvalue& r) - { - return l != r.s(); - } - - inline bool operator==(const rvalue& l, double r) - { - return l.d() == r; - } - - inline bool operator==(double l, const rvalue& r) - { - return l == r.d(); - } - - inline bool operator!=(const rvalue& l, double r) - { - return l.d() != r; - } - - inline bool operator!=(double l, const rvalue& r) - { - return l != r.d(); - } - - - inline rvalue load_nocopy_internal(char* data, size_t size) - { - // Defend against excessive recursion - static constexpr unsigned max_depth = 10000; - - //static const char* escaped = "\"\\/\b\f\n\r\t"; - struct Parser - { - Parser(char* data, size_t /*size*/): - data(data) - { - } - - bool consume(char c) - { - if (CROW_UNLIKELY(*data != c)) - return false; - data++; - return true; - } - - void ws_skip() - { - while (*data == ' ' || *data == '\t' || *data == '\r' || *data == '\n') - ++data; - }; - - rvalue decode_string() - { - if (CROW_UNLIKELY(!consume('"'))) - return {}; - char* start = data; - uint8_t has_escaping = 0; - while (1) - { - if (CROW_LIKELY(*data != '"' && *data != '\\' && *data != '\0')) - { - data++; - } - else if (*data == '"') - { - *data = 0; - *(start - 1) = has_escaping; - data++; - return {type::String, start, data - 1}; - } - else if (*data == '\\') - { - has_escaping = 1; - data++; - switch (*data) - { - case 'u': - { - auto check = [](char c) { - return ('0' <= c && c <= '9') || - ('a' <= c && c <= 'f') || - ('A' <= c && c <= 'F'); - }; - if (!(check(*(data + 1)) && - check(*(data + 2)) && - check(*(data + 3)) && - check(*(data + 4)))) - return {}; - } - data += 5; - break; - case '"': - case '\\': - case '/': - case 'b': - case 'f': - case 'n': - case 'r': - case 't': - data++; - break; - default: - return {}; - } - } - else - return {}; - } - return {}; - } - - rvalue decode_list(unsigned depth) - { - rvalue ret(type::List); - if (CROW_UNLIKELY(!consume('[')) || CROW_UNLIKELY(depth > max_depth)) - { - ret.set_error(); - return ret; - } - ws_skip(); - if (CROW_UNLIKELY(*data == ']')) - { - data++; - return ret; - } - - while (1) - { - auto v = decode_value(depth + 1); - if (CROW_UNLIKELY(!v)) - { - ret.set_error(); - break; - } - ws_skip(); - ret.emplace_back(std::move(v)); - if (*data == ']') - { - data++; - break; - } - if (CROW_UNLIKELY(!consume(','))) - { - ret.set_error(); - break; - } - ws_skip(); - } - return ret; - } - - rvalue decode_number() - { - char* start = data; - - enum NumberParsingState - { - Minus, - AfterMinus, - ZeroFirst, - Digits, - DigitsAfterPoints, - E, - DigitsAfterE, - Invalid, - } state{Minus}; - while (CROW_LIKELY(state != Invalid)) - { - switch (*data) - { - case '0': - state = static_cast("\2\2\7\3\4\6\6"[state]); - /*if (state == NumberParsingState::Minus || state == NumberParsingState::AfterMinus) - { - state = NumberParsingState::ZeroFirst; - } - else if (state == NumberParsingState::Digits || - state == NumberParsingState::DigitsAfterE || - state == NumberParsingState::DigitsAfterPoints) - { - // ok; pass - } - else if (state == NumberParsingState::E) - { - state = NumberParsingState::DigitsAfterE; - } - else - return {};*/ - break; - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - state = static_cast("\3\3\7\3\4\6\6"[state]); - while (*(data + 1) >= '0' && *(data + 1) <= '9') - data++; - /*if (state == NumberParsingState::Minus || state == NumberParsingState::AfterMinus) - { - state = NumberParsingState::Digits; - } - else if (state == NumberParsingState::Digits || - state == NumberParsingState::DigitsAfterE || - state == NumberParsingState::DigitsAfterPoints) - { - // ok; pass - } - else if (state == NumberParsingState::E) - { - state = NumberParsingState::DigitsAfterE; - } - else - return {};*/ - break; - case '.': - state = static_cast("\7\7\4\4\7\7\7"[state]); - /* - if (state == NumberParsingState::Digits || state == NumberParsingState::ZeroFirst) - { - state = NumberParsingState::DigitsAfterPoints; - } - else - return {}; - */ - break; - case '-': - state = static_cast("\1\7\7\7\7\6\7"[state]); - /*if (state == NumberParsingState::Minus) - { - state = NumberParsingState::AfterMinus; - } - else if (state == NumberParsingState::E) - { - state = NumberParsingState::DigitsAfterE; - } - else - return {};*/ - break; - case '+': - state = static_cast("\7\7\7\7\7\6\7"[state]); - /*if (state == NumberParsingState::E) - { - state = NumberParsingState::DigitsAfterE; - } - else - return {};*/ - break; - case 'e': - case 'E': - state = static_cast("\7\7\7\5\5\7\7"[state]); - /*if (state == NumberParsingState::Digits || - state == NumberParsingState::DigitsAfterPoints) - { - state = NumberParsingState::E; - } - else - return {};*/ - break; - default: - if (CROW_LIKELY(state == NumberParsingState::ZeroFirst || - state == NumberParsingState::Digits || - state == NumberParsingState::DigitsAfterPoints || - state == NumberParsingState::DigitsAfterE)) - return {type::Number, start, data}; - else - return {}; - } - data++; - } - - return {}; - } - - - rvalue decode_value(unsigned depth) - { - switch (*data) - { - case '[': - return decode_list(depth + 1); - case '{': - return decode_object(depth + 1); - case '"': - return decode_string(); - case 't': - if ( //e-data >= 4 && - data[1] == 'r' && - data[2] == 'u' && - data[3] == 'e') - { - data += 4; - return {type::True}; - } - else - return {}; - case 'f': - if ( //e-data >= 5 && - data[1] == 'a' && - data[2] == 'l' && - data[3] == 's' && - data[4] == 'e') - { - data += 5; - return {type::False}; - } - else - return {}; - case 'n': - if ( //e-data >= 4 && - data[1] == 'u' && - data[2] == 'l' && - data[3] == 'l') - { - data += 4; - return {type::Null}; - } - else - return {}; - //case '1': case '2': case '3': - //case '4': case '5': case '6': - //case '7': case '8': case '9': - //case '0': case '-': - default: - return decode_number(); - } - return {}; - } - - rvalue decode_object(unsigned depth) - { - rvalue ret(type::Object); - if (CROW_UNLIKELY(!consume('{')) || CROW_UNLIKELY(depth > max_depth)) - { - ret.set_error(); - return ret; - } - - ws_skip(); - - if (CROW_UNLIKELY(*data == '}')) - { - data++; - return ret; - } - - while (1) - { - auto t = decode_string(); - if (CROW_UNLIKELY(!t)) - { - ret.set_error(); - break; - } - - ws_skip(); - if (CROW_UNLIKELY(!consume(':'))) - { - ret.set_error(); - break; - } - - // TODO(ipkn) caching key to speed up (flyweight?) - // I have no idea how flyweight could apply here, but maybe some speedup can happen if we stopped checking type since decode_string returns a string anyway - auto key = t.s(); - - ws_skip(); - auto v = decode_value(depth + 1); - if (CROW_UNLIKELY(!v)) - { - ret.set_error(); - break; - } - ws_skip(); - - v.key_ = std::move(key); - ret.emplace_back(std::move(v)); - if (CROW_UNLIKELY(*data == '}')) - { - data++; - break; - } - if (CROW_UNLIKELY(!consume(','))) - { - ret.set_error(); - break; - } - ws_skip(); - } - return ret; - } - - rvalue parse() - { - ws_skip(); - auto ret = decode_value(0); // or decode object? - ws_skip(); - if (ret && *data != '\0') - ret.set_error(); - return ret; - } - - char* data; - }; - return Parser(data, size).parse(); - } - inline rvalue load(const char* data, size_t size) - { - char* s = new char[size + 1]; - memcpy(s, data, size); - s[size] = 0; - auto ret = load_nocopy_internal(s, size); - if (ret) - ret.key_.force(s, size); - else - delete[] s; - return ret; - } - - inline rvalue load(const char* data) - { - return load(data, strlen(data)); - } - - inline rvalue load(const std::string& str) - { - return load(str.data(), str.size()); - } - - struct wvalue_reader; - - /// JSON write value. - - /// - /// Value can mean any json value, including a JSON object.
- /// Write means this class is used to primarily assemble JSON objects using keys and values and export those into a string. - class wvalue : public returnable - { - friend class crow::mustache::template_t; - friend struct wvalue_reader; - - public: - using object = -#ifdef CROW_JSON_USE_MAP - std::map; -#else - std::unordered_map; -#endif - - using list = std::vector; - - type t() const { return t_; } - - /// Create an empty json value (outputs "{}" instead of a "null" string) - static crow::json::wvalue empty_object() { return crow::json::wvalue::object(); } - - private: - type t_{type::Null}; ///< The type of the value. - num_type nt{num_type::Null}; ///< The specific type of the number if \ref t_ is a number. - union number - { - double d; - int64_t si; - uint64_t ui; - - public: - constexpr number() noexcept: - ui() {} /* default constructor initializes unsigned integer. */ - constexpr number(std::uint64_t value) noexcept: - ui(value) {} - constexpr number(std::int64_t value) noexcept: - si(value) {} - explicit constexpr number(double value) noexcept: - d(value) {} - explicit constexpr number(float value) noexcept: - d(value) {} - } num; ///< Value if type is a number. - std::string s; ///< Value if type is a string. - std::unique_ptr l; ///< Value if type is a list. - std::unique_ptr o; ///< Value if type is a JSON object. - std::function f; ///< Value if type is a function (C++ lambda) - - public: - wvalue(): - returnable("application/json") {} - - wvalue(std::nullptr_t): - returnable("application/json"), t_(type::Null) {} - - wvalue(bool value): - returnable("application/json"), t_(value ? type::True : type::False) {} - - wvalue(std::uint8_t value): - returnable("application/json"), t_(type::Number), nt(num_type::Unsigned_integer), num(static_cast(value)) {} - wvalue(std::uint16_t value): - returnable("application/json"), t_(type::Number), nt(num_type::Unsigned_integer), num(static_cast(value)) {} - wvalue(std::uint32_t value): - returnable("application/json"), t_(type::Number), nt(num_type::Unsigned_integer), num(static_cast(value)) {} - wvalue(std::uint64_t value): - returnable("application/json"), t_(type::Number), nt(num_type::Unsigned_integer), num(static_cast(value)) {} - - wvalue(std::int8_t value): - returnable("application/json"), t_(type::Number), nt(num_type::Signed_integer), num(static_cast(value)) {} - wvalue(std::int16_t value): - returnable("application/json"), t_(type::Number), nt(num_type::Signed_integer), num(static_cast(value)) {} - wvalue(std::int32_t value): - returnable("application/json"), t_(type::Number), nt(num_type::Signed_integer), num(static_cast(value)) {} - wvalue(std::int64_t value): - returnable("application/json"), t_(type::Number), nt(num_type::Signed_integer), num(static_cast(value)) {} - - wvalue(float value): - returnable("application/json"), t_(type::Number), nt(num_type::Floating_point), num(static_cast(value)) {} - wvalue(double value): - returnable("application/json"), t_(type::Number), nt(num_type::Double_precision_floating_point), num(static_cast(value)) {} - - wvalue(char const* value): - returnable("application/json"), t_(type::String), s(value) {} - - wvalue(std::string const& value): - returnable("application/json"), t_(type::String), s(value) {} - wvalue(std::string&& value): - returnable("application/json"), t_(type::String), s(std::move(value)) {} - - wvalue(std::initializer_list> initializer_list): - returnable("application/json"), t_(type::Object), o(new object(initializer_list)) {} - - wvalue(object const& value): - returnable("application/json"), t_(type::Object), o(new object(value)) {} - wvalue(object&& value): - returnable("application/json"), t_(type::Object), o(new object(std::move(value))) {} - - wvalue(const list& r): - returnable("application/json") - { - t_ = type::List; - l = std::unique_ptr(new list{}); - l->reserve(r.size()); - for (auto it = r.begin(); it != r.end(); ++it) - l->emplace_back(*it); - } - wvalue(list& r): - returnable("application/json") - { - t_ = type::List; - l = std::unique_ptr(new list{}); - l->reserve(r.size()); - for (auto it = r.begin(); it != r.end(); ++it) - l->emplace_back(*it); - } - - /// Create a write value from a read value (useful for editing JSON strings). - wvalue(const rvalue& r): - returnable("application/json") - { - t_ = r.t(); - switch (r.t()) - { - case type::Null: - case type::False: - case type::True: - case type::Function: - return; - case type::Number: - nt = r.nt(); - if (nt == num_type::Floating_point || nt == num_type::Double_precision_floating_point) - num.d = r.d(); - else if (nt == num_type::Signed_integer) - num.si = r.i(); - else - num.ui = r.u(); - return; - case type::String: - s = r.s(); - return; - case type::List: - l = std::unique_ptr(new list{}); - l->reserve(r.size()); - for (auto it = r.begin(); it != r.end(); ++it) - l->emplace_back(*it); - return; - case type::Object: - o = std::unique_ptr(new object{}); - for (auto it = r.begin(); it != r.end(); ++it) - o->emplace(it->key(), *it); - return; - } - } - - wvalue(const wvalue& r): - returnable("application/json") - { - t_ = r.t(); - switch (r.t()) - { - case type::Null: - case type::False: - case type::True: - return; - case type::Number: - nt = r.nt; - if (nt == num_type::Floating_point || nt == num_type::Double_precision_floating_point) - num.d = r.num.d; - else if (nt == num_type::Signed_integer) - num.si = r.num.si; - else - num.ui = r.num.ui; - return; - case type::String: - s = r.s; - return; - case type::List: - l = std::unique_ptr(new list{}); - l->reserve(r.size()); - for (auto it = r.l->begin(); it != r.l->end(); ++it) - l->emplace_back(*it); - return; - case type::Object: - o = std::unique_ptr(new object{}); - o->insert(r.o->begin(), r.o->end()); - return; - case type::Function: - f = r.f; - } - } - - wvalue(wvalue&& r): - returnable("application/json") - { - *this = std::move(r); - } - - wvalue& operator=(wvalue&& r) - { - t_ = r.t_; - nt = r.nt; - num = r.num; - s = std::move(r.s); - l = std::move(r.l); - o = std::move(r.o); - return *this; - } - - /// Used for compatibility, same as \ref reset() - void clear() - { - reset(); - } - - void reset() - { - t_ = type::Null; - l.reset(); - o.reset(); - } - - wvalue& operator=(std::nullptr_t) - { - reset(); - return *this; - } - wvalue& operator=(bool value) - { - reset(); - if (value) - t_ = type::True; - else - t_ = type::False; - return *this; - } - - wvalue& operator=(float value) - { - reset(); - t_ = type::Number; - num.d = value; - nt = num_type::Floating_point; - return *this; - } - - wvalue& operator=(double value) - { - reset(); - t_ = type::Number; - num.d = value; - nt = num_type::Double_precision_floating_point; - return *this; - } - - wvalue& operator=(unsigned short value) - { - reset(); - t_ = type::Number; - num.ui = value; - nt = num_type::Unsigned_integer; - return *this; - } - - wvalue& operator=(short value) - { - reset(); - t_ = type::Number; - num.si = value; - nt = num_type::Signed_integer; - return *this; - } - - wvalue& operator=(long long value) - { - reset(); - t_ = type::Number; - num.si = value; - nt = num_type::Signed_integer; - return *this; - } - - wvalue& operator=(long value) - { - reset(); - t_ = type::Number; - num.si = value; - nt = num_type::Signed_integer; - return *this; - } - - wvalue& operator=(int value) - { - reset(); - t_ = type::Number; - num.si = value; - nt = num_type::Signed_integer; - return *this; - } - - wvalue& operator=(unsigned long long value) - { - reset(); - t_ = type::Number; - num.ui = value; - nt = num_type::Unsigned_integer; - return *this; - } - - wvalue& operator=(unsigned long value) - { - reset(); - t_ = type::Number; - num.ui = value; - nt = num_type::Unsigned_integer; - return *this; - } - - wvalue& operator=(unsigned int value) - { - reset(); - t_ = type::Number; - num.ui = value; - nt = num_type::Unsigned_integer; - return *this; - } - - wvalue& operator=(const char* str) - { - reset(); - t_ = type::String; - s = str; - return *this; - } - - wvalue& operator=(const std::string& str) - { - reset(); - t_ = type::String; - s = str; - return *this; - } - - wvalue& operator=(list&& v) - { - if (t_ != type::List) - reset(); - t_ = type::List; - if (!l) - l = std::unique_ptr(new list{}); - l->clear(); - l->resize(v.size()); - size_t idx = 0; - for (auto& x : v) - { - (*l)[idx++] = std::move(x); - } - return *this; - } - - template - wvalue& operator=(const std::vector& v) - { - if (t_ != type::List) - reset(); - t_ = type::List; - if (!l) - l = std::unique_ptr(new list{}); - l->clear(); - l->resize(v.size()); - size_t idx = 0; - for (auto& x : v) - { - (*l)[idx++] = x; - } - return *this; - } - - wvalue& operator=(std::initializer_list> initializer_list) - { - if (t_ != type::Object) - { - reset(); - t_ = type::Object; - o = std::unique_ptr(new object(initializer_list)); - } - else - { -#if defined(__APPLE__) || defined(__MACH__) || defined(__FreeBSD__) || defined(__ANDROID__) || defined(_LIBCPP_VERSION) - o = std::unique_ptr(new object(initializer_list)); -#else - (*o) = initializer_list; -#endif - } - return *this; - } - - wvalue& operator=(object const& value) - { - if (t_ != type::Object) - { - reset(); - t_ = type::Object; - o = std::unique_ptr(new object(value)); - } - else - { -#if defined(__APPLE__) || defined(__MACH__) || defined(__FreeBSD__) || defined(__ANDROID__) || defined(_LIBCPP_VERSION) - o = std::unique_ptr(new object(value)); -#else - (*o) = value; -#endif - } - return *this; - } - - wvalue& operator=(object&& value) - { - if (t_ != type::Object) - { - reset(); - t_ = type::Object; - o = std::unique_ptr(new object(std::move(value))); - } - else - { - (*o) = std::move(value); - } - return *this; - } - - wvalue& operator=(std::function&& func) - { - reset(); - t_ = type::Function; - f = std::move(func); - return *this; - } - - wvalue& operator[](unsigned index) - { - if (t_ != type::List) - reset(); - t_ = type::List; - if (!l) - l = std::unique_ptr(new list{}); - if (l->size() < index + 1) - l->resize(index + 1); - return (*l)[index]; - } - - const wvalue& operator[](unsigned index) const - { - return const_cast(this)->operator[](index); - } - - int count(const std::string& str) const - { - if (t_ != type::Object) - return 0; - if (!o) - return 0; - return o->count(str); - } - - wvalue& operator[](const std::string& str) - { - if (t_ != type::Object) - reset(); - t_ = type::Object; - if (!o) - o = std::unique_ptr(new object{}); - return (*o)[str]; - } - - const wvalue& operator[](const std::string& str) const - { - return const_cast(this)->operator[](str); - } - - std::vector keys() const - { - if (t_ != type::Object) - return {}; - std::vector result; - for (auto& kv : *o) - { - result.push_back(kv.first); - } - return result; - } - - std::string execute(std::string txt = "") const //Not using reference because it cannot be used with a default rvalue - { - if (t_ != type::Function) - return ""; - return f(txt); - } - - /// If the wvalue is a list, it returns the length of the list, otherwise it returns 1. - std::size_t size() const - { - if (t_ != type::List) - return 1; - return l->size(); - } - - /// Returns an estimated size of the value in bytes. - size_t estimate_length() const - { - switch (t_) - { - case type::Null: return 4; - case type::False: return 5; - case type::True: return 4; - case type::Number: return 30; - case type::String: return 2 + s.size() + s.size() / 2; - case type::List: - { - size_t sum{}; - if (l) - { - for (auto& x : *l) - { - sum += 1; - sum += x.estimate_length(); - } - } - return sum + 2; - } - case type::Object: - { - size_t sum{}; - if (o) - { - for (auto& kv : *o) - { - sum += 2; - sum += 2 + kv.first.size() + kv.first.size() / 2; - sum += kv.second.estimate_length(); - } - } - return sum + 2; - } - case type::Function: - return 0; - } - return 1; - } - - private: - inline void dump_string(const std::string& str, std::string& out) const - { - out.push_back('"'); - escape(str, out); - out.push_back('"'); - } - - inline void dump_indentation_part(std::string& out, const int indent, const char separator, const int indent_level) const - { - out.push_back('\n'); - out.append(indent_level * indent, separator); - } - - - inline void dump_internal(const wvalue& v, std::string& out, const int indent, const char separator, const int indent_level = 0) const - { - switch (v.t_) - { - case type::Null: out += "null"; break; - case type::False: out += "false"; break; - case type::True: out += "true"; break; - case type::Number: - { - if (v.nt == num_type::Floating_point || v.nt == num_type::Double_precision_floating_point) - { - if (isnan(v.num.d) || isinf(v.num.d)) - { - out += "null"; - CROW_LOG_WARNING << "Invalid JSON value detected (" << v.num.d << "), value set to null"; - break; - } - enum - { - start, - decp, // Decimal point - zero - } f_state; - char outbuf[128]; - if (v.nt == num_type::Double_precision_floating_point) - { -#ifdef _MSC_VER - sprintf_s(outbuf, sizeof(outbuf), "%.*g", DECIMAL_DIG, v.num.d); -#else - snprintf(outbuf, sizeof(outbuf), "%.*g", DECIMAL_DIG, v.num.d); -#endif - } - else - { -#ifdef _MSC_VER - sprintf_s(outbuf, sizeof(outbuf), "%f", v.num.d); -#else - snprintf(outbuf, sizeof(outbuf), "%f", v.num.d); -#endif - } - char *p = &outbuf[0], *o = nullptr; // o is the position of the first trailing 0 - f_state = start; - while (*p != '\0') - { - //std::cout << *p << std::endl; - char ch = *p; - switch (f_state) - { - case start: // Loop and lookahead until a decimal point is found - if (ch == '.') - { - char fch = *(p + 1); - // if the first character is 0, leave it be (this is so that "1.00000" becomes "1.0" and not "1.") - if (fch != '\0' && fch == '0') p++; - f_state = decp; - } - p++; - break; - case decp: // Loop until a 0 is found, if found, record its position - if (ch == '0') - { - f_state = zero; - o = p; - } - p++; - break; - case zero: // if a non 0 is found (e.g. 1.00004) remove the earlier recorded 0 position and look for more trailing 0s - if (ch != '0') - { - o = nullptr; - f_state = decp; - } - p++; - break; - } - } - if (o != nullptr) // if any trailing 0s are found, terminate the string where they begin - *o = '\0'; - out += outbuf; - } - else if (v.nt == num_type::Signed_integer) - { - out += std::to_string(v.num.si); - } - else - { - out += std::to_string(v.num.ui); - } - } - break; - case type::String: dump_string(v.s, out); break; - case type::List: - { - out.push_back('['); - - if (indent >= 0) - { - dump_indentation_part(out, indent, separator, indent_level + 1); - } - - if (v.l) - { - bool first = true; - for (auto& x : *v.l) - { - if (!first) - { - out.push_back(','); - - if (indent >= 0) - { - dump_indentation_part(out, indent, separator, indent_level + 1); - } - } - first = false; - dump_internal(x, out, indent, separator, indent_level + 1); - } - } - - if (indent >= 0) - { - dump_indentation_part(out, indent, separator, indent_level); - } - - out.push_back(']'); - } - break; - case type::Object: - { - out.push_back('{'); - - if (indent >= 0) - { - dump_indentation_part(out, indent, separator, indent_level + 1); - } - - if (v.o) - { - bool first = true; - for (auto& kv : *v.o) - { - if (!first) - { - out.push_back(','); - if (indent >= 0) - { - dump_indentation_part(out, indent, separator, indent_level + 1); - } - } - first = false; - dump_string(kv.first, out); - out.push_back(':'); - - if (indent >= 0) - { - out.push_back(' '); - } - - dump_internal(kv.second, out, indent, separator, indent_level + 1); - } - } - - if (indent >= 0) - { - dump_indentation_part(out, indent, separator, indent_level); - } - - out.push_back('}'); - } - break; - - case type::Function: - out += "custom function"; - break; - } - } - - public: - std::string dump(const int indent, const char separator = ' ') const - { - std::string ret; - ret.reserve(estimate_length()); - dump_internal(*this, ret, indent, separator); - return ret; - } - - std::string dump() const - { - static constexpr int DontIndent = -1; - - return dump(DontIndent); - } - }; - - // Used for accessing the internals of a wvalue - struct wvalue_reader - { - int64_t get(int64_t fallback) - { - if (ref.t() != type::Number || ref.nt == num_type::Floating_point || - ref.nt == num_type::Double_precision_floating_point) - return fallback; - return ref.num.si; - } - - double get(double fallback) - { - if (ref.t() != type::Number || ref.nt != num_type::Floating_point || - ref.nt == num_type::Double_precision_floating_point) - return fallback; - return ref.num.d; - } - - bool get(bool fallback) - { - if (ref.t() == type::True) return true; - if (ref.t() == type::False) return false; - return fallback; - } - - std::string get(const std::string& fallback) - { - if (ref.t() != type::String) return fallback; - return ref.s; - } - - const wvalue& ref; - }; - - //std::vector dump_ref(wvalue& v) - //{ - //} - } // namespace json -} // namespace crow - -#include -#include -#include -#include -#include -// S_ISREG is not defined for windows -// This defines it like suggested in https://stackoverflow.com/a/62371749 -#if defined(_MSC_VER) -#define _CRT_INTERNAL_NONSTDC_NAMES 1 -#endif -#include -#if !defined(S_ISREG) && defined(S_IFMT) && defined(S_IFREG) -#define S_ISREG(m) (((m)&S_IFMT) == S_IFREG) -#endif - - - -namespace crow -{ - template - class Connection; - - class Router; - - /// HTTP response - struct response - { - template - friend class crow::Connection; - - friend class Router; - - int code{200}; ///< The Status code for the response. - std::string body; ///< The actual payload containing the response data. - ci_map headers; ///< HTTP headers. - -#ifdef CROW_ENABLE_COMPRESSION - bool compressed = true; ///< If compression is enabled and this is false, the individual response will not be compressed. -#endif - bool skip_body = false; ///< Whether this is a response to a HEAD request. - bool manual_length_header = false; ///< Whether Crow should automatically add a "Content-Length" header. - - /// Set the value of an existing header in the response. - void set_header(std::string key, std::string value) - { - headers.erase(key); - headers.emplace(std::move(key), std::move(value)); - } - - /// Add a new header to the response. - void add_header(std::string key, std::string value) - { - headers.emplace(std::move(key), std::move(value)); - } - - const std::string& get_header_value(const std::string& key) - { - return crow::get_header_value(headers, key); - } - - // naive validation of a mime-type string - static bool validate_mime_type(const std::string& candidate) noexcept - { - // Here we simply check that the candidate type starts with - // a valid parent type, and has at least one character afterwards. - std::array valid_parent_types = { - "application/", "audio/", "font/", "example/", - "image/", "message/", "model/", "multipart/", - "text/", "video/"}; - for (const std::string& parent : valid_parent_types) - { - // ensure the candidate is *longer* than the parent, - // to avoid unnecessary string comparison and to - // reject zero-length subtypes. - if (candidate.size() <= parent.size()) - { - continue; - } - // strncmp is used rather than substr to avoid allocation, - // but a string_view approach would be better if Crow - // migrates to C++17. - if (strncmp(parent.c_str(), candidate.c_str(), parent.size()) == 0) - { - return true; - } - } - return false; - } - - // Find the mime type from the content type either by lookup, - // or by the content type itself, if it is a valid a mime type. - // Defaults to text/plain. - static std::string get_mime_type(const std::string& contentType) - { - const auto mimeTypeIterator = mime_types.find(contentType); - if (mimeTypeIterator != mime_types.end()) - { - return mimeTypeIterator->second; - } - else if (validate_mime_type(contentType)) - { - return contentType; - } - else - { - CROW_LOG_WARNING << "Unable to interpret mime type for content type '" << contentType << "'. Defaulting to text/plain."; - return "text/plain"; - } - } - - - // clang-format off - response() {} - explicit response(int code) : code(code) {} - response(std::string body) : body(std::move(body)) {} - response(int code, std::string body) : code(code), body(std::move(body)) {} - // clang-format on - response(returnable&& value) - { - body = value.dump(); - set_header("Content-Type", value.content_type); - } - response(returnable& value) - { - body = value.dump(); - set_header("Content-Type", value.content_type); - } - response(int code, returnable& value): - code(code) - { - body = value.dump(); - set_header("Content-Type", value.content_type); - } - response(int code, returnable&& value): - code(code), body(value.dump()) - { - set_header("Content-Type", std::move(value.content_type)); - } - - response(response&& r) - { - *this = std::move(r); - } - - response(std::string contentType, std::string body): - body(std::move(body)) - { - set_header("Content-Type", get_mime_type(contentType)); - } - - response(int code, std::string contentType, std::string body): - code(code), body(std::move(body)) - { - set_header("Content-Type", get_mime_type(contentType)); - } - - response& operator=(const response& r) = delete; - - response& operator=(response&& r) noexcept - { - body = std::move(r.body); - code = r.code; - headers = std::move(r.headers); - completed_ = r.completed_; - file_info = std::move(r.file_info); - return *this; - } - - /// Check if the response has completed (whether response.end() has been called) - bool is_completed() const noexcept - { - return completed_; - } - - void clear() - { - body.clear(); - code = 200; - headers.clear(); - completed_ = false; - file_info = static_file_info{}; - } - - /// Return a "Temporary Redirect" response. - - /// - /// Location can either be a route or a full URL. - void redirect(const std::string& location) - { - code = 307; - set_header("Location", location); - } - - /// Return a "Permanent Redirect" response. - - /// - /// Location can either be a route or a full URL. - void redirect_perm(const std::string& location) - { - code = 308; - set_header("Location", location); - } - - /// Return a "Found (Moved Temporarily)" response. - - /// - /// Location can either be a route or a full URL. - void moved(const std::string& location) - { - code = 302; - set_header("Location", location); - } - - /// Return a "Moved Permanently" response. - - /// - /// Location can either be a route or a full URL. - void moved_perm(const std::string& location) - { - code = 301; - set_header("Location", location); - } - - void write(const std::string& body_part) - { - body += body_part; - } - - /// Set the response completion flag and call the handler (to send the response). - void end() - { - if (!completed_) - { - completed_ = true; - if (skip_body) - { - set_header("Content-Length", std::to_string(body.size())); - body = ""; - manual_length_header = true; - } - if (complete_request_handler_) - { - complete_request_handler_(); - manual_length_header = false; - skip_body = false; - } - } - } - - /// Same as end() except it adds a body part right before ending. - void end(const std::string& body_part) - { - body += body_part; - end(); - } - - /// Check if the connection is still alive (usually by checking the socket status). - bool is_alive() - { - return is_alive_helper_ && is_alive_helper_(); - } - - /// Check whether the response has a static file defined. - bool is_static_type() - { - return file_info.path.size(); - } - - /// This constains metadata (coming from the `stat` command) related to any static files associated with this response. - - /// - /// Either a static file or a string body can be returned as 1 response. - struct static_file_info - { - std::string path = ""; - struct stat statbuf; - int statResult; - }; - - /// Return a static file as the response body - void set_static_file_info(std::string path) - { - utility::sanitize_filename(path); - set_static_file_info_unsafe(path); - } - - /// Return a static file as the response body without sanitizing the path (use set_static_file_info instead) - void set_static_file_info_unsafe(std::string path) - { - file_info.path = path; - file_info.statResult = stat(file_info.path.c_str(), &file_info.statbuf); -#ifdef CROW_ENABLE_COMPRESSION - compressed = false; -#endif - if (file_info.statResult == 0 && S_ISREG(file_info.statbuf.st_mode)) - { - std::size_t last_dot = path.find_last_of("."); - std::string extension = path.substr(last_dot + 1); - code = 200; - this->add_header("Content-Length", std::to_string(file_info.statbuf.st_size)); - - if (!extension.empty()) - { - this->add_header("Content-Type", get_mime_type(extension)); - } - } - else - { - code = 404; - file_info.path.clear(); - } - } - - private: - bool completed_{}; - std::function complete_request_handler_; - std::function is_alive_helper_; - static_file_info file_info; - }; -} // namespace crow - - -namespace crow -{ - - struct UTF8 - { - struct context - {}; - - void before_handle(request& /*req*/, response& /*res*/, context& /*ctx*/) - {} - - void after_handle(request& /*req*/, response& res, context& /*ctx*/) - { - if (get_header_value(res.headers, "Content-Type").empty()) - { - res.set_header("Content-Type", "text/plain; charset=utf-8"); - } - } - }; - -} // namespace crow - -#include -#include - -namespace crow -{ - // Any middleware requires following 3 members: - - // struct context; - // storing data for the middleware; can be read from another middleware or handlers - - // before_handle - // called before handling the request. - // if res.end() is called, the operation is halted. - // (still call after_handle of this middleware) - // 2 signatures: - // void before_handle(request& req, response& res, context& ctx) - // if you only need to access this middlewares context. - // template - // void before_handle(request& req, response& res, context& ctx, AllContext& all_ctx) - // you can access another middlewares' context by calling `all_ctx.template get()' - // ctx == all_ctx.template get() - - // after_handle - // called after handling the request. - // void after_handle(request& req, response& res, context& ctx) - // template - // void after_handle(request& req, response& res, context& ctx, AllContext& all_ctx) - - struct CookieParser - { - // Cookie stores key, value and attributes - struct Cookie - { - enum class SameSitePolicy - { - Strict, - Lax, - None - }; - - template - Cookie(const std::string& key, U&& value): - Cookie() - { - key_ = key; - value_ = std::forward(value); - } - - Cookie(const std::string& key): - Cookie(key, "") {} - - // format cookie to HTTP header format - std::string dump() const - { - const static char* HTTP_DATE_FORMAT = "%a, %d %b %Y %H:%M:%S GMT"; - - std::stringstream ss; - ss << key_ << '='; - ss << (value_.empty() ? "\"\"" : value_); - dumpString(ss, !domain_.empty(), "Domain=", domain_); - dumpString(ss, !path_.empty(), "Path=", path_); - dumpString(ss, secure_, "Secure"); - dumpString(ss, httponly_, "HttpOnly"); - if (expires_at_) - { - ss << DIVIDER << "Expires=" - << std::put_time(expires_at_.get(), HTTP_DATE_FORMAT); - } - if (max_age_) - { - ss << DIVIDER << "Max-Age=" << *max_age_; - } - if (same_site_) - { - ss << DIVIDER << "SameSite="; - switch (*same_site_) - { - case SameSitePolicy::Strict: - ss << "Strict"; - break; - case SameSitePolicy::Lax: - ss << "Lax"; - break; - case SameSitePolicy::None: - ss << "None"; - break; - } - } - return ss.str(); - } - - const std::string& name() - { - return key_; - } - - template - Cookie& value(U&& value) - { - value_ = std::forward(value); - return *this; - } - - // Expires attribute - Cookie& expires(const std::tm& time) - { - expires_at_ = std::unique_ptr(new std::tm(time)); - return *this; - } - - // Max-Age attribute - Cookie& max_age(long long seconds) - { - max_age_ = std::unique_ptr(new long long(seconds)); - return *this; - } - - // Domain attribute - Cookie& domain(const std::string& name) - { - domain_ = name; - return *this; - } - - // Path attribute - Cookie& path(const std::string& path) - { - path_ = path; - return *this; - } - - // Secured attribute - Cookie& secure() - { - secure_ = true; - return *this; - } - - // HttpOnly attribute - Cookie& httponly() - { - httponly_ = true; - return *this; - } - - // SameSite attribute - Cookie& same_site(SameSitePolicy ssp) - { - same_site_ = std::unique_ptr(new SameSitePolicy(ssp)); - return *this; - } - - Cookie(const Cookie& c): - key_(c.key_), - value_(c.value_), - domain_(c.domain_), - path_(c.path_), - secure_(c.secure_), - httponly_(c.httponly_) - { - if (c.max_age_) - max_age_ = std::unique_ptr(new long long(*c.max_age_)); - - if (c.expires_at_) - expires_at_ = std::unique_ptr(new std::tm(*c.expires_at_)); - - if (c.same_site_) - same_site_ = std::unique_ptr(new SameSitePolicy(*c.same_site_)); - } - - private: - Cookie() = default; - - static void dumpString(std::stringstream& ss, bool cond, const char* prefix, - const std::string& value = "") - { - if (cond) - { - ss << DIVIDER << prefix << value; - } - } - - private: - std::string key_; - std::string value_; - std::unique_ptr max_age_{}; - std::string domain_ = ""; - std::string path_ = ""; - bool secure_ = false; - bool httponly_ = false; - std::unique_ptr expires_at_{}; - std::unique_ptr same_site_{}; - - static constexpr const char* DIVIDER = "; "; - }; - - - struct context - { - std::unordered_map jar; - - std::string get_cookie(const std::string& key) const - { - auto cookie = jar.find(key); - if (cookie != jar.end()) - return cookie->second; - return {}; - } - - template - Cookie& set_cookie(const std::string& key, U&& value) - { - cookies_to_add.emplace_back(key, std::forward(value)); - return cookies_to_add.back(); - } - - Cookie& set_cookie(Cookie cookie) - { - cookies_to_add.push_back(std::move(cookie)); - return cookies_to_add.back(); - } - - private: - friend struct CookieParser; - std::vector cookies_to_add; - }; - - void before_handle(request& req, response& res, context& ctx) - { - // TODO(dranikpg): remove copies, use string_view with c++17 - int count = req.headers.count("Cookie"); - if (!count) - return; - if (count > 1) - { - res.code = 400; - res.end(); - return; - } - std::string cookies = req.get_header_value("Cookie"); - size_t pos = 0; - while (pos < cookies.size()) - { - size_t pos_equal = cookies.find('=', pos); - if (pos_equal == cookies.npos) - break; - std::string name = cookies.substr(pos, pos_equal - pos); - name = utility::trim(name); - pos = pos_equal + 1; - if (pos == cookies.size()) - break; - - size_t pos_semicolon = cookies.find(';', pos); - std::string value = cookies.substr(pos, pos_semicolon - pos); - - value = utility::trim(value); - if (value[0] == '"' && value[value.size() - 1] == '"') - { - value = value.substr(1, value.size() - 2); - } - - ctx.jar.emplace(std::move(name), std::move(value)); - - pos = pos_semicolon; - if (pos == cookies.npos) - break; - pos++; - } - } - - void after_handle(request& /*req*/, response& res, context& ctx) - { - for (const auto& cookie : ctx.cookies_to_add) - { - res.add_header("Set-Cookie", cookie.dump()); - } - } - }; - - /* - App app; - A B C - A::context - int aa; - - ctx1 : public A::context - ctx2 : public ctx1, public B::context - ctx3 : public ctx2, public C::context - - C depends on A - - C::handle - context.aaa - - App::context : private CookieParser::context, ... - { - jar - - } - - SimpleApp - */ -} // namespace crow - - - -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include - -#include -#include -#include - -#ifdef CROW_CAN_USE_CPP17 -#include -#endif - -namespace -{ - // convert all integer values to int64_t - template - using wrap_integral_t = typename std::conditional< - std::is_integral::value && !std::is_same::value - // except for uint64_t because that could lead to overflow on conversion - && !std::is_same::value, - int64_t, T>::type; - - // convert char[]/char* to std::string - template - using wrap_char_t = typename std::conditional< - std::is_same::type, char*>::value, - std::string, T>::type; - - // Upgrade to correct type for multi_variant use - template - using wrap_mv_t = wrap_char_t>; -} // namespace - -namespace crow -{ - namespace session - { - -#ifdef CROW_CAN_USE_CPP17 - using multi_value_types = black_magic::S; - - /// A multi_value is a safe variant wrapper with json conversion support - struct multi_value - { - json::wvalue json() const - { - // clang-format off - return std::visit([](auto arg) { - return json::wvalue(arg); - }, v_); - // clang-format on - } - - static multi_value from_json(const json::rvalue&); - - std::string string() const - { - // clang-format off - return std::visit([](auto arg) { - if constexpr (std::is_same_v) - return arg; - else - return std::to_string(arg); - }, v_); - // clang-format on - } - - template> - RT get(const T& fallback) - { - if (const RT* val = std::get_if(&v_)) return *val; - return fallback; - } - - template> - void set(T val) - { - v_ = RT(std::move(val)); - } - - typename multi_value_types::rebind v_; - }; - - inline multi_value multi_value::from_json(const json::rvalue& rv) - { - using namespace json; - switch (rv.t()) - { - case type::Number: - { - if (rv.nt() == num_type::Floating_point || rv.nt() == num_type::Double_precision_floating_point) - return multi_value{rv.d()}; - else if (rv.nt() == num_type::Unsigned_integer) - return multi_value{int64_t(rv.u())}; - else - return multi_value{rv.i()}; - } - case type::False: return multi_value{false}; - case type::True: return multi_value{true}; - case type::String: return multi_value{std::string(rv)}; - default: return multi_value{false}; - } - } -#else - // Fallback for C++11/14 that uses a raw json::wvalue internally. - // This implementation consumes significantly more memory - // than the variant-based version - struct multi_value - { - json::wvalue json() const { return v_; } - - static multi_value from_json(const json::rvalue&); - - std::string string() const { return v_.dump(); } - - template> - RT get(const T& fallback) - { - return json::wvalue_reader{v_}.get((const RT&)(fallback)); - } - - template> - void set(T val) - { - v_ = RT(std::move(val)); - } - - json::wvalue v_; - }; - - inline multi_value multi_value::from_json(const json::rvalue& rv) - { - return {rv}; - } -#endif - - /// Expiration tracker keeps track of soonest-to-expire keys - struct ExpirationTracker - { - using DataPair = std::pair; - - /// Add key with time to tracker. - /// If the key is already present, it will be updated - void add(std::string key, uint64_t time) - { - auto it = times_.find(key); - if (it != times_.end()) remove(key); - times_[key] = time; - queue_.insert({time, std::move(key)}); - } - - void remove(const std::string& key) - { - auto it = times_.find(key); - if (it != times_.end()) - { - queue_.erase({it->second, key}); - times_.erase(it); - } - } - - /// Get expiration time of soonest-to-expire entry - uint64_t peek_first() const - { - if (queue_.empty()) return std::numeric_limits::max(); - return queue_.begin()->first; - } - - std::string pop_first() - { - auto it = times_.find(queue_.begin()->second); - auto key = it->first; - times_.erase(it); - queue_.erase(queue_.begin()); - return key; - } - - using iterator = typename std::set::const_iterator; - - iterator begin() const { return queue_.cbegin(); } - - iterator end() const { return queue_.cend(); } - - private: - std::set queue_; - std::unordered_map times_; - }; - - /// CachedSessions are shared across requests - struct CachedSession - { - std::string session_id; - std::string requested_session_id; // session hasn't been created yet, but a key was requested - - std::unordered_map entries; - std::unordered_set dirty; // values that were changed after last load - - void* store_data; - bool requested_refresh; - - // number of references held - used for correctly destroying the cache. - // No need to be atomic, all SessionMiddleware accesses are synchronized - int referrers; - std::recursive_mutex mutex; - }; - } // namespace session - - // SessionMiddleware allows storing securely and easily small snippets of user information - template - struct SessionMiddleware - { -#ifdef CROW_CAN_USE_CPP17 - using lock = std::scoped_lock; - using rc_lock = std::scoped_lock; -#else - using lock = std::lock_guard; - using rc_lock = std::lock_guard; -#endif - - struct context - { - // Get a mutex for locking this session - std::recursive_mutex& mutex() - { - check_node(); - return node->mutex; - } - - // Check whether this session is already present - bool exists() { return bool(node); } - - // Get a value by key or fallback if it doesn't exist or is of another type - template - auto get(const std::string& key, const F& fallback = F()) - // This trick lets the multi_value deduce the return type from the fallback - // which allows both: - // context.get("key") - // context.get("key", "") -> char[] is transformed into string by multivalue - // to return a string - -> decltype(std::declval().get(std::declval())) - { - if (!node) return fallback; - rc_lock l(node->mutex); - - auto it = node->entries.find(key); - if (it != node->entries.end()) return it->second.get(fallback); - return fallback; - } - - // Set a value by key - template - void set(const std::string& key, T value) - { - check_node(); - rc_lock l(node->mutex); - - node->dirty.insert(key); - node->entries[key].set(std::move(value)); - } - - bool contains(const std::string& key) - { - if (!node) return false; - return node->entries.find(key) != node->entries.end(); - } - - // Atomically mutate a value with a function - template - void apply(const std::string& key, const Func& f) - { - using traits = utility::function_traits; - using arg = typename std::decay>::type; - using retv = typename std::decay::type; - check_node(); - rc_lock l(node->mutex); - node->dirty.insert(key); - node->entries[key].set(f(node->entries[key].get(arg{}))); - } - - // Remove a value from the session - void remove(const std::string& key) - { - if (!node) return; - rc_lock l(node->mutex); - node->dirty.insert(key); - node->entries.erase(key); - } - - // Format value by key as a string - std::string string(const std::string& key) - { - if (!node) return ""; - rc_lock l(node->mutex); - - auto it = node->entries.find(key); - if (it != node->entries.end()) return it->second.string(); - return ""; - } - - // Get a list of keys present in session - std::vector keys() - { - if (!node) return {}; - rc_lock l(node->mutex); - - std::vector out; - for (const auto& p : node->entries) - out.push_back(p.first); - return out; - } - - // Delay expiration by issuing another cookie with an updated expiration time - // and notifying the store - void refresh_expiration() - { - if (!node) return; - node->requested_refresh = true; - } - - private: - friend struct SessionMiddleware; - - void check_node() - { - if (!node) node = std::make_shared(); - } - - std::shared_ptr node; - }; - - template - SessionMiddleware( - CookieParser::Cookie cookie, - int id_length, - Ts... ts): - id_length_(id_length), - cookie_(cookie), - store_(std::forward(ts)...), mutex_(new std::mutex{}) - {} - - template - SessionMiddleware(Ts... ts): - SessionMiddleware( - CookieParser::Cookie("session").path("/").max_age(/*month*/ 30 * 24 * 60 * 60), - /*id_length */ 20, // around 10^34 possible combinations, but small enough to fit into SSO - std::forward(ts)...) - {} - - template - void before_handle(request& /*req*/, response& /*res*/, context& ctx, AllContext& all_ctx) - { - lock l(*mutex_); - - auto& cookies = all_ctx.template get(); - auto session_id = load_id(cookies); - if (session_id == "") return; - - // search entry in cache - auto it = cache_.find(session_id); - if (it != cache_.end()) - { - it->second->referrers++; - ctx.node = it->second; - return; - } - - // check this is a valid entry before loading - if (!store_.contains(session_id)) return; - - auto node = std::make_shared(); - node->session_id = session_id; - node->referrers = 1; - - try - { - store_.load(*node); - } - catch (...) - { - CROW_LOG_ERROR << "Exception occurred during session load"; - return; - } - - ctx.node = node; - cache_[session_id] = node; - } - - template - void after_handle(request& /*req*/, response& /*res*/, context& ctx, AllContext& all_ctx) - { - lock l(*mutex_); - if (!ctx.node || --ctx.node->referrers > 0) return; - ctx.node->requested_refresh |= ctx.node->session_id == ""; - - // generate new id - if (ctx.node->session_id == "") - { - // check for requested id - ctx.node->session_id = std::move(ctx.node->requested_session_id); - if (ctx.node->session_id == "") - { - ctx.node->session_id = utility::random_alphanum(id_length_); - } - } - else - { - cache_.erase(ctx.node->session_id); - } - - if (ctx.node->requested_refresh) - { - auto& cookies = all_ctx.template get(); - store_id(cookies, ctx.node->session_id); - } - - try - { - store_.save(*ctx.node); - } - catch (...) - { - CROW_LOG_ERROR << "Exception occurred during session save"; - return; - } - } - - private: - std::string next_id() - { - std::string id; - do - { - id = utility::random_alphanum(id_length_); - } while (store_.contains(id)); - return id; - } - - std::string load_id(const CookieParser::context& cookies) - { - return cookies.get_cookie(cookie_.name()); - } - - void store_id(CookieParser::context& cookies, const std::string& session_id) - { - cookie_.value(session_id); - cookies.set_cookie(cookie_); - } - - private: - int id_length_; - - // prototype for cookie - CookieParser::Cookie cookie_; - - Store store_; - - // mutexes are immovable - std::unique_ptr mutex_; - std::unordered_map> cache_; - }; - - /// InMemoryStore stores all entries in memory - struct InMemoryStore - { - // Load a value into the session cache. - // A load is always followed by a save, no loads happen consecutively - void load(session::CachedSession& cn) - { - // load & stores happen sequentially, so moving is safe - cn.entries = std::move(entries[cn.session_id]); - } - - // Persist session data - void save(session::CachedSession& cn) - { - entries[cn.session_id] = std::move(cn.entries); - // cn.dirty is a list of changed keys since the last load - } - - bool contains(const std::string& key) - { - return entries.count(key) > 0; - } - - std::unordered_map> entries; - }; - - // FileStore stores all data as json files in a folder. - // Files are deleted after expiration. Expiration refreshes are automatically picked up. - struct FileStore - { - FileStore(const std::string& folder, uint64_t expiration_seconds = /*month*/ 30 * 24 * 60 * 60): - path_(folder), expiration_seconds_(expiration_seconds) - { - std::ifstream ifs(get_filename(".expirations", false)); - - auto current_ts = chrono_time(); - std::string key; - uint64_t time; - while (ifs >> key >> time) - { - if (current_ts > time) - { - evict(key); - } - else if (contains(key)) - { - expirations_.add(key, time); - } - } - } - - ~FileStore() - { - std::ofstream ofs(get_filename(".expirations", false), std::ios::trunc); - for (const auto& p : expirations_) - ofs << p.second << " " << p.first << "\n"; - } - - // Delete expired entries - // At most 3 to prevent freezes - void handle_expired() - { - int deleted = 0; - auto current_ts = chrono_time(); - while (current_ts > expirations_.peek_first() && deleted < 3) - { - evict(expirations_.pop_first()); - deleted++; - } - } - - void load(session::CachedSession& cn) - { - handle_expired(); - - std::ifstream file(get_filename(cn.session_id)); - - std::stringstream buffer; - buffer << file.rdbuf() << std::endl; - - for (const auto& p : json::load(buffer.str())) - cn.entries[p.key()] = session::multi_value::from_json(p); - } - - void save(session::CachedSession& cn) - { - if (cn.requested_refresh) - expirations_.add(cn.session_id, chrono_time() + expiration_seconds_); - if (cn.dirty.empty()) return; - - std::ofstream file(get_filename(cn.session_id)); - json::wvalue jw; - for (const auto& p : cn.entries) - jw[p.first] = p.second.json(); - file << jw.dump() << std::flush; - } - - std::string get_filename(const std::string& key, bool suffix = true) - { - return utility::join_path(path_, key + (suffix ? ".json" : "")); - } - - bool contains(const std::string& key) - { - std::ifstream file(get_filename(key)); - return file.good(); - } - - void evict(const std::string& key) - { - std::remove(get_filename(key).c_str()); - } - - uint64_t chrono_time() const - { - return std::chrono::duration_cast( - std::chrono::system_clock::now().time_since_epoch()) - .count(); - } - - std::string path_; - uint64_t expiration_seconds_; - session::ExpirationTracker expirations_; - }; - -} // namespace crow - - - -#include -#include -#include -#include - -namespace crow // NOTE: Already documented in "crow/app.h" -{ - - /// Local middleware should extend ILocalMiddleware - struct ILocalMiddleware - { - using call_global = std::false_type; - }; - - namespace detail - { - template - struct check_before_handle_arity_3_const - { - template - struct get - {}; - }; - - template - struct check_before_handle_arity_3 - { - template - struct get - {}; - }; - - template - struct check_after_handle_arity_3_const - { - template - struct get - {}; - }; - - template - struct check_after_handle_arity_3 - { - template - struct get - {}; - }; - - template - struct check_global_call_false - { - template::type = true> - struct get - {}; - }; - - template - struct is_before_handle_arity_3_impl - { - template - static std::true_type f(typename check_before_handle_arity_3_const::template get*); - - template - static std::true_type f(typename check_before_handle_arity_3::template get*); - - template - static std::false_type f(...); - - public: - static const bool value = decltype(f(nullptr))::value; - }; - - template - struct is_after_handle_arity_3_impl - { - template - static std::true_type f(typename check_after_handle_arity_3_const::template get*); - - template - static std::true_type f(typename check_after_handle_arity_3::template get*); - - template - static std::false_type f(...); - - public: - static constexpr bool value = decltype(f(nullptr))::value; - }; - - template - struct is_middleware_global - { - template - static std::false_type f(typename check_global_call_false::template get*); - - template - static std::true_type f(...); - - static const bool value = decltype(f(nullptr))::value; - }; - - template - typename std::enable_if::value>::type - before_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& /*parent_ctx*/) - { - mw.before_handle(req, res, ctx.template get(), ctx); - } - - template - typename std::enable_if::value>::type - before_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& /*parent_ctx*/) - { - mw.before_handle(req, res, ctx.template get()); - } - - template - typename std::enable_if::value>::type - after_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& /*parent_ctx*/) - { - mw.after_handle(req, res, ctx.template get(), ctx); - } - - template - typename std::enable_if::value>::type - after_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& /*parent_ctx*/) - { - mw.after_handle(req, res, ctx.template get()); - } - - - template - typename std::enable_if<(N < std::tuple_size::type>::value), bool>::type - middleware_call_helper(const CallCriteria& cc, Container& middlewares, request& req, response& res, Context& ctx) - { - - using CurrentMW = typename std::tuple_element::type>::type; - - if (!cc.template enabled(N)) - { - return middleware_call_helper(cc, middlewares, req, res, ctx); - } - - using parent_context_t = typename Context::template partial; - before_handler_call(std::get(middlewares), req, res, ctx, static_cast(ctx)); - if (res.is_completed()) - { - after_handler_call(std::get(middlewares), req, res, ctx, static_cast(ctx)); - return true; - } - - if (middleware_call_helper(cc, middlewares, req, res, ctx)) - { - after_handler_call(std::get(middlewares), req, res, ctx, static_cast(ctx)); - return true; - } - - return false; - } - - template - typename std::enable_if<(N >= std::tuple_size::type>::value), bool>::type - middleware_call_helper(const CallCriteria& /*cc*/, Container& /*middlewares*/, request& /*req*/, response& /*res*/, Context& /*ctx*/) - { - return false; - } - - template - typename std::enable_if<(N < 0)>::type - after_handlers_call_helper(const CallCriteria& /*cc*/, Container& /*middlewares*/, Context& /*context*/, request& /*req*/, response& /*res*/) - { - } - - template - typename std::enable_if<(N == 0)>::type after_handlers_call_helper(const CallCriteria& cc, Container& middlewares, Context& ctx, request& req, response& res) - { - using parent_context_t = typename Context::template partial; - using CurrentMW = typename std::tuple_element::type>::type; - if (cc.template enabled(N)) - { - after_handler_call(std::get(middlewares), req, res, ctx, static_cast(ctx)); - } - } - - template - typename std::enable_if<(N > 0)>::type after_handlers_call_helper(const CallCriteria& cc, Container& middlewares, Context& ctx, request& req, response& res) - { - using parent_context_t = typename Context::template partial; - using CurrentMW = typename std::tuple_element::type>::type; - if (cc.template enabled(N)) - { - after_handler_call(std::get(middlewares), req, res, ctx, static_cast(ctx)); - } - after_handlers_call_helper(cc, middlewares, ctx, req, res); - } - - // A CallCriteria that accepts only global middleware - struct middleware_call_criteria_only_global - { - template - constexpr bool enabled(int) const - { - return is_middleware_global::value; - } - }; - - template - typename std::enable_if>::value, void>::type - wrapped_handler_call(crow::request& /*req*/, crow::response& res, const F& f, Args&&... args) - { - static_assert(!std::is_same()...))>::value, - "Handler function cannot have void return type; valid return types: string, int, crow::response, crow::returnable"); - - res = crow::response(f(std::forward(args)...)); - res.end(); - } - - template - typename std::enable_if< - !black_magic::CallHelper>::value && - black_magic::CallHelper>::value, - void>::type - wrapped_handler_call(crow::request& req, crow::response& res, const F& f, Args&&... args) - { - static_assert(!std::is_same(), std::declval()...))>::value, - "Handler function cannot have void return type; valid return types: string, int, crow::response, crow::returnable"); - - res = crow::response(f(req, std::forward(args)...)); - res.end(); - } - - template - typename std::enable_if< - !black_magic::CallHelper>::value && - !black_magic::CallHelper>::value && - black_magic::CallHelper>::value, - void>::type - wrapped_handler_call(crow::request& /*req*/, crow::response& res, const F& f, Args&&... args) - { - static_assert(std::is_same(), std::declval()...))>::value, - "Handler function with response argument should have void return type"); - - f(res, std::forward(args)...); - } - - template - typename std::enable_if< - !black_magic::CallHelper>::value && - !black_magic::CallHelper>::value && - !black_magic::CallHelper>::value && - black_magic::CallHelper>::value, - void>::type - wrapped_handler_call(crow::request& req, crow::response& res, const F& f, Args&&... args) - { - static_assert(std::is_same(), std::declval(), std::declval()...))>::value, - "Handler function with response argument should have void return type"); - - f(req, res, std::forward(args)...); - } - - // wrapped_handler_call transparently wraps a handler call behind (req, res, args...) - template - typename std::enable_if< - !black_magic::CallHelper>::value && - !black_magic::CallHelper>::value && - !black_magic::CallHelper>::value && - !black_magic::CallHelper>::value, - void>::type - wrapped_handler_call(crow::request& req, crow::response& res, const F& f, Args&&... args) - { - static_assert(std::is_same(), std::declval(), std::declval()...))>::value, - "Handler function with response argument should have void return type"); - - f(req, res, std::forward(args)...); - } - - template - struct middleware_call_criteria_dynamic - {}; - - template<> - struct middleware_call_criteria_dynamic - { - middleware_call_criteria_dynamic(const std::vector& indices): - indices(indices), slider(0) {} - - template - bool enabled(int mw_index) const - { - if (slider < int(indices.size()) && indices[slider] == mw_index) - { - slider++; - return true; - } - return false; - } - - private: - const std::vector& indices; - mutable int slider; - }; - - template<> - struct middleware_call_criteria_dynamic - { - middleware_call_criteria_dynamic(const std::vector& indices): - indices(indices), slider(int(indices.size()) - 1) {} - - template - bool enabled(int mw_index) const - { - if (slider >= 0 && indices[slider] == mw_index) - { - slider--; - return true; - } - return false; - } - - private: - const std::vector& indices; - mutable int slider; - }; - - } // namespace detail -} // namespace crow - - - -namespace crow -{ - namespace detail - { - - - template - struct partial_context : public black_magic::pop_back::template rebind, public black_magic::last_element_type::type::context - { - using parent_context = typename black_magic::pop_back::template rebind<::crow::detail::partial_context>; - template - using partial = typename std::conditional>::type; - - template - typename T::context& get() - { - return static_cast(*this); - } - }; - - - - template<> - struct partial_context<> - { - template - using partial = partial_context; - }; - - - template - struct context : private partial_context - //struct context : private Middlewares::context... // simple but less type-safe - { - template - friend typename std::enable_if<(N == 0)>::type after_handlers_call_helper(const CallCriteria& cc, Container& middlewares, Context& ctx, request& req, response& res); - template - friend typename std::enable_if<(N > 0)>::type after_handlers_call_helper(const CallCriteria& cc, Container& middlewares, Context& ctx, request& req, response& res); - - template - friend typename std::enable_if<(N < std::tuple_size::type>::value), bool>::type - middleware_call_helper(const CallCriteria& cc, Container& middlewares, request& req, response& res, Context& ctx); - - template - typename T::context& get() - { - return static_cast(*this); - } - - template - using partial = typename partial_context::template partial; - }; - } // namespace detail -} // namespace crow - - -#ifdef CROW_USE_BOOST -#include -#include -#else -#ifndef ASIO_STANDALONE -#define ASIO_STANDALONE -#endif -#include -#include -#endif - -#include -#include -#include -#include - - -namespace crow -{ -#ifdef CROW_USE_BOOST - namespace asio = boost::asio; - using error_code = boost::system::error_code; -#else - using error_code = asio::error_code; -#endif - namespace detail - { - - /// A class for scheduling functions to be called after a specific amount of ticks. A tick is equal to 1 second. - class task_timer - { - public: - using task_type = std::function; - using identifier_type = size_t; - - private: - using clock_type = std::chrono::steady_clock; - using time_type = clock_type::time_point; - - public: - task_timer(asio::io_service& io_service): - io_service_(io_service), timer_(io_service_) - { - timer_.expires_after(std::chrono::seconds(1)); - timer_.async_wait( - std::bind(&task_timer::tick_handler, this, std::placeholders::_1)); - } - - ~task_timer() { timer_.cancel(); } - - void cancel(identifier_type id) - { - tasks_.erase(id); - CROW_LOG_DEBUG << "task_timer cancelled: " << this << ' ' << id; - } - - /// Schedule the given task to be executed after the default amount of ticks. - - /// - /// \return identifier_type Used to cancel the thread. - /// It is not bound to this task_timer instance and in some cases could lead to - /// undefined behavior if used with other task_timer objects or after the task - /// has been successfully executed. - identifier_type schedule(const task_type& task) - { - tasks_.insert( - {++highest_id_, - {clock_type::now() + std::chrono::seconds(get_default_timeout()), - task}}); - CROW_LOG_DEBUG << "task_timer scheduled: " << this << ' ' << highest_id_; - return highest_id_; - } - - /// Schedule the given task to be executed after the given time. - - /// - /// \param timeout The amount of ticks (seconds) to wait before execution. - /// - /// \return identifier_type Used to cancel the thread. - /// It is not bound to this task_timer instance and in some cases could lead to - /// undefined behavior if used with other task_timer objects or after the task - /// has been successfully executed. - identifier_type schedule(const task_type& task, std::uint8_t timeout) - { - tasks_.insert({++highest_id_, - {clock_type::now() + std::chrono::seconds(timeout), task}}); - CROW_LOG_DEBUG << "task_timer scheduled: " << this << ' ' << highest_id_; - return highest_id_; - } - - /// Set the default timeout for this task_timer instance. (Default: 5) - - /// - /// \param timeout The amount of ticks (seconds) to wait before execution. - void set_default_timeout(std::uint8_t timeout) { default_timeout_ = timeout; } - - /// Get the default timeout. (Default: 5) - std::uint8_t get_default_timeout() const { return default_timeout_; } - - private: - void process_tasks() - { - time_type current_time = clock_type::now(); - std::vector finished_tasks; - - for (const auto& task : tasks_) - { - if (task.second.first < current_time) - { - (task.second.second)(); - finished_tasks.push_back(task.first); - CROW_LOG_DEBUG << "task_timer called: " << this << ' ' << task.first; - } - } - - for (const auto& task : finished_tasks) - tasks_.erase(task); - - // If no task is currently scheduled, reset the issued ids back to 0. - if (tasks_.empty()) highest_id_ = 0; - } - - void tick_handler(const error_code& ec) - { - if (ec) return; - - process_tasks(); - - timer_.expires_after(std::chrono::seconds(1)); - timer_.async_wait( - std::bind(&task_timer::tick_handler, this, std::placeholders::_1)); - } - - private: - std::uint8_t default_timeout_{5}; - asio::io_service& io_service_; - asio::basic_waitable_timer timer_; - std::map> tasks_; - - // A continuosly increasing number to be issued to threads to identify them. - // If no tasks are scheduled, it will be reset to 0. - identifier_type highest_id_{0}; - }; - } // namespace detail -} // namespace crow - - -#ifdef CROW_USE_BOOST -#include -#else -#ifndef ASIO_STANDALONE -#define ASIO_STANDALONE -#endif -#include -#endif - -#include -#include -#include -#include -#include - - -namespace crow -{ -#ifdef CROW_USE_BOOST - namespace asio = boost::asio; - using error_code = boost::system::error_code; -#else - using error_code = asio::error_code; -#endif - using tcp = asio::ip::tcp; - -#ifdef CROW_ENABLE_DEBUG - static std::atomic connectionCount; -#endif - - /// An HTTP connection. - template - class Connection: public std::enable_shared_from_this> - { - friend struct crow::response; - - public: - Connection( - asio::io_service& io_service, - Handler* handler, - const std::string& server_name, - std::tuple* middlewares, - std::function& get_cached_date_str_f, - detail::task_timer& task_timer, - typename Adaptor::context* adaptor_ctx_, - std::atomic& queue_length): - adaptor_(io_service, adaptor_ctx_), - handler_(handler), - parser_(this), - req_(parser_.req), - server_name_(server_name), - middlewares_(middlewares), - get_cached_date_str(get_cached_date_str_f), - task_timer_(task_timer), - res_stream_threshold_(handler->stream_threshold()), - queue_length_(queue_length) - { -#ifdef CROW_ENABLE_DEBUG - connectionCount++; - CROW_LOG_DEBUG << "Connection (" << this << ") allocated, total: " << connectionCount; -#endif - } - - ~Connection() - { -#ifdef CROW_ENABLE_DEBUG - connectionCount--; - CROW_LOG_DEBUG << "Connection (" << this << ") freed, total: " << connectionCount; -#endif - } - - /// The TCP socket on top of which the connection is established. - decltype(std::declval().raw_socket())& socket() - { - return adaptor_.raw_socket(); - } - - void start() - { - auto self = this->shared_from_this(); - adaptor_.start([self](const error_code& ec) { - if (!ec) - { - self->start_deadline(); - self->parser_.clear(); - - self->do_read(); - } - else - { - CROW_LOG_ERROR << "Could not start adaptor: " << ec.message(); - } - }); - } - - void handle_url() - { - routing_handle_result_ = handler_->handle_initial(req_, res); - // if no route is found for the request method, return the response without parsing or processing anything further. - if (!routing_handle_result_->rule_index) - { - parser_.done(); - need_to_call_after_handlers_ = true; - complete_request(); - } - } - - void handle_header() - { - // HTTP 1.1 Expect: 100-continue - if (req_.http_ver_major == 1 && req_.http_ver_minor == 1 && get_header_value(req_.headers, "expect") == "100-continue") - { - continue_requested = true; - buffers_.clear(); - static std::string expect_100_continue = "HTTP/1.1 100 Continue\r\n\r\n"; - buffers_.emplace_back(expect_100_continue.data(), expect_100_continue.size()); - do_write(); - } - } - - void handle() - { - // TODO(EDev): cancel_deadline_timer should be looked into, it might be a good idea to add it to handle_url() and then restart the timer once everything passes - cancel_deadline_timer(); - bool is_invalid_request = false; - add_keep_alive_ = false; - - // Create context - ctx_ = detail::context(); - req_.middleware_context = static_cast(&ctx_); - req_.middleware_container = static_cast(middlewares_); - req_.io_service = &adaptor_.get_io_service(); - - req_.remote_ip_address = adaptor_.remote_endpoint().address().to_string(); - - add_keep_alive_ = req_.keep_alive; - close_connection_ = req_.close_connection; - - if (req_.check_version(1, 1)) // HTTP/1.1 - { - if (!req_.headers.count("host")) - { - is_invalid_request = true; - res = response(400); - } - else if (req_.upgrade) - { - // h2 or h2c headers - if (req_.get_header_value("upgrade").substr(0, 2) == "h2") - { - // TODO(ipkn): HTTP/2 - // currently, ignore upgrade header - } - else - { - - detail::middleware_call_helper({}, *middlewares_, req_, res, ctx_); - close_connection_ = true; - handler_->handle_upgrade(req_, res, std::move(adaptor_)); - return; - } - } - } - - CROW_LOG_INFO << "Request: " << utility::lexical_cast(adaptor_.remote_endpoint()) << " " << this << " HTTP/" << (char)(req_.http_ver_major + '0') << "." << (char)(req_.http_ver_minor + '0') << ' ' << method_name(req_.method) << " " << req_.url; - - - need_to_call_after_handlers_ = false; - if (!is_invalid_request) - { - res.complete_request_handler_ = nullptr; - auto self = this->shared_from_this(); - res.is_alive_helper_ = [self]() -> bool { - return self->adaptor_.is_open(); - }; - - detail::middleware_call_helper({}, *middlewares_, req_, res, ctx_); - - if (!res.completed_) - { - auto self = this->shared_from_this(); - res.complete_request_handler_ = [self] { - self->complete_request(); - }; - need_to_call_after_handlers_ = true; - handler_->handle(req_, res, routing_handle_result_); - if (add_keep_alive_) - res.set_header("connection", "Keep-Alive"); - } - else - { - complete_request(); - } - } - else - { - complete_request(); - } - } - - /// Call the after handle middleware and send the write the response to the connection. - void complete_request() - { - CROW_LOG_INFO << "Response: " << this << ' ' << req_.raw_url << ' ' << res.code << ' ' << close_connection_; - res.is_alive_helper_ = nullptr; - - if (need_to_call_after_handlers_) - { - need_to_call_after_handlers_ = false; - - // call all after_handler of middlewares - detail::after_handlers_call_helper< - detail::middleware_call_criteria_only_global, - (static_cast(sizeof...(Middlewares)) - 1), - decltype(ctx_), - decltype(*middlewares_)>({}, *middlewares_, ctx_, req_, res); - } -#ifdef CROW_ENABLE_COMPRESSION - if (handler_->compression_used()) - { - std::string accept_encoding = req_.get_header_value("Accept-Encoding"); - if (!accept_encoding.empty() && res.compressed) - { - switch (handler_->compression_algorithm()) - { - case compression::DEFLATE: - if (accept_encoding.find("deflate") != std::string::npos) - { - res.body = compression::compress_string(res.body, compression::algorithm::DEFLATE); - res.set_header("Content-Encoding", "deflate"); - } - break; - case compression::GZIP: - if (accept_encoding.find("gzip") != std::string::npos) - { - res.body = compression::compress_string(res.body, compression::algorithm::GZIP); - res.set_header("Content-Encoding", "gzip"); - } - break; - default: - break; - } - } - } -#endif - //if there is a redirection with a partial URL, treat the URL as a route. - std::string location = res.get_header_value("Location"); - if (!location.empty() && location.find("://", 0) == std::string::npos) - { -#ifdef CROW_ENABLE_SSL - if (handler_->ssl_used()) - location.insert(0, "https://" + req_.get_header_value("Host")); - else -#endif - location.insert(0, "http://" + req_.get_header_value("Host")); - res.set_header("location", location); - } - - prepare_buffers(); - - if (res.is_static_type()) - { - do_write_static(); - } - else - { - do_write_general(); - } - } - - private: - void prepare_buffers() - { - res.complete_request_handler_ = nullptr; - res.is_alive_helper_ = nullptr; - - if (!adaptor_.is_open()) - { - //CROW_LOG_DEBUG << this << " delete (socket is closed) " << is_reading << ' ' << is_writing; - //delete this; - return; - } - // TODO(EDev): HTTP version in status codes should be dynamic - // Keep in sync with common.h/status - static std::unordered_map statusCodes = { - {status::CONTINUE, "HTTP/1.1 100 Continue\r\n"}, - {status::SWITCHING_PROTOCOLS, "HTTP/1.1 101 Switching Protocols\r\n"}, - - {status::OK, "HTTP/1.1 200 OK\r\n"}, - {status::CREATED, "HTTP/1.1 201 Created\r\n"}, - {status::ACCEPTED, "HTTP/1.1 202 Accepted\r\n"}, - {status::NON_AUTHORITATIVE_INFORMATION, "HTTP/1.1 203 Non-Authoritative Information\r\n"}, - {status::NO_CONTENT, "HTTP/1.1 204 No Content\r\n"}, - {status::RESET_CONTENT, "HTTP/1.1 205 Reset Content\r\n"}, - {status::PARTIAL_CONTENT, "HTTP/1.1 206 Partial Content\r\n"}, - - {status::MULTIPLE_CHOICES, "HTTP/1.1 300 Multiple Choices\r\n"}, - {status::MOVED_PERMANENTLY, "HTTP/1.1 301 Moved Permanently\r\n"}, - {status::FOUND, "HTTP/1.1 302 Found\r\n"}, - {status::SEE_OTHER, "HTTP/1.1 303 See Other\r\n"}, - {status::NOT_MODIFIED, "HTTP/1.1 304 Not Modified\r\n"}, - {status::TEMPORARY_REDIRECT, "HTTP/1.1 307 Temporary Redirect\r\n"}, - {status::PERMANENT_REDIRECT, "HTTP/1.1 308 Permanent Redirect\r\n"}, - - {status::BAD_REQUEST, "HTTP/1.1 400 Bad Request\r\n"}, - {status::UNAUTHORIZED, "HTTP/1.1 401 Unauthorized\r\n"}, - {status::FORBIDDEN, "HTTP/1.1 403 Forbidden\r\n"}, - {status::NOT_FOUND, "HTTP/1.1 404 Not Found\r\n"}, - {status::METHOD_NOT_ALLOWED, "HTTP/1.1 405 Method Not Allowed\r\n"}, - {status::NOT_ACCEPTABLE, "HTTP/1.1 406 Not Acceptable\r\n"}, - {status::PROXY_AUTHENTICATION_REQUIRED, "HTTP/1.1 407 Proxy Authentication Required\r\n"}, - {status::CONFLICT, "HTTP/1.1 409 Conflict\r\n"}, - {status::GONE, "HTTP/1.1 410 Gone\r\n"}, - {status::PAYLOAD_TOO_LARGE, "HTTP/1.1 413 Payload Too Large\r\n"}, - {status::UNSUPPORTED_MEDIA_TYPE, "HTTP/1.1 415 Unsupported Media Type\r\n"}, - {status::RANGE_NOT_SATISFIABLE, "HTTP/1.1 416 Range Not Satisfiable\r\n"}, - {status::EXPECTATION_FAILED, "HTTP/1.1 417 Expectation Failed\r\n"}, - {status::PRECONDITION_REQUIRED, "HTTP/1.1 428 Precondition Required\r\n"}, - {status::TOO_MANY_REQUESTS, "HTTP/1.1 429 Too Many Requests\r\n"}, - {status::UNAVAILABLE_FOR_LEGAL_REASONS, "HTTP/1.1 451 Unavailable For Legal Reasons\r\n"}, - - {status::INTERNAL_SERVER_ERROR, "HTTP/1.1 500 Internal Server Error\r\n"}, - {status::NOT_IMPLEMENTED, "HTTP/1.1 501 Not Implemented\r\n"}, - {status::BAD_GATEWAY, "HTTP/1.1 502 Bad Gateway\r\n"}, - {status::SERVICE_UNAVAILABLE, "HTTP/1.1 503 Service Unavailable\r\n"}, - {status::GATEWAY_TIMEOUT, "HTTP/1.1 504 Gateway Timeout\r\n"}, - {status::VARIANT_ALSO_NEGOTIATES, "HTTP/1.1 506 Variant Also Negotiates\r\n"}, - }; - - static const std::string seperator = ": "; - - buffers_.clear(); - buffers_.reserve(4 * (res.headers.size() + 5) + 3); - - if (!statusCodes.count(res.code)) - { - CROW_LOG_WARNING << this << " status code " - << "(" << res.code << ")" - << " not defined, returning 500 instead"; - res.code = 500; - } - - auto& status = statusCodes.find(res.code)->second; - buffers_.emplace_back(status.data(), status.size()); - - if (res.code >= 400 && res.body.empty()) - res.body = statusCodes[res.code].substr(9); - - for (auto& kv : res.headers) - { - buffers_.emplace_back(kv.first.data(), kv.first.size()); - buffers_.emplace_back(seperator.data(), seperator.size()); - buffers_.emplace_back(kv.second.data(), kv.second.size()); - buffers_.emplace_back(crlf.data(), crlf.size()); - } - - if (!res.manual_length_header && !res.headers.count("content-length")) - { - content_length_ = std::to_string(res.body.size()); - static std::string content_length_tag = "Content-Length: "; - buffers_.emplace_back(content_length_tag.data(), content_length_tag.size()); - buffers_.emplace_back(content_length_.data(), content_length_.size()); - buffers_.emplace_back(crlf.data(), crlf.size()); - } - if (!res.headers.count("server")) - { - static std::string server_tag = "Server: "; - buffers_.emplace_back(server_tag.data(), server_tag.size()); - buffers_.emplace_back(server_name_.data(), server_name_.size()); - buffers_.emplace_back(crlf.data(), crlf.size()); - } - if (!res.headers.count("date")) - { - static std::string date_tag = "Date: "; - date_str_ = get_cached_date_str(); - buffers_.emplace_back(date_tag.data(), date_tag.size()); - buffers_.emplace_back(date_str_.data(), date_str_.size()); - buffers_.emplace_back(crlf.data(), crlf.size()); - } - if (add_keep_alive_) - { - static std::string keep_alive_tag = "Connection: Keep-Alive"; - buffers_.emplace_back(keep_alive_tag.data(), keep_alive_tag.size()); - buffers_.emplace_back(crlf.data(), crlf.size()); - } - - buffers_.emplace_back(crlf.data(), crlf.size()); - } - - void do_write_static() - { - asio::write(adaptor_.socket(), buffers_); - - if (res.file_info.statResult == 0) - { - std::ifstream is(res.file_info.path.c_str(), std::ios::in | std::ios::binary); - std::vector buffers{1}; - char buf[16384]; - is.read(buf, sizeof(buf)); - while (is.gcount() > 0) - { - buffers[0] = asio::buffer(buf, is.gcount()); - do_write_sync(buffers); - is.read(buf, sizeof(buf)); - } - } - if (close_connection_) - { - adaptor_.shutdown_readwrite(); - adaptor_.close(); - CROW_LOG_DEBUG << this << " from write (static)"; - } - - res.end(); - res.clear(); - buffers_.clear(); - parser_.clear(); - } - - void do_write_general() - { - if (res.body.length() < res_stream_threshold_) - { - res_body_copy_.swap(res.body); - buffers_.emplace_back(res_body_copy_.data(), res_body_copy_.size()); - - do_write(); - - if (need_to_start_read_after_complete_) - { - need_to_start_read_after_complete_ = false; - start_deadline(); - do_read(); - } - } - else - { - asio::write(adaptor_.socket(), buffers_); // Write the response start / headers - cancel_deadline_timer(); - if (res.body.length() > 0) - { - std::vector buffers{1}; - const uint8_t *data = reinterpret_cast(res.body.data()); - size_t length = res.body.length(); - for(size_t transferred = 0; transferred < length;) - { - size_t to_transfer = CROW_MIN(16384UL, length-transferred); - buffers[0] = asio::const_buffer(data+transferred, to_transfer); - do_write_sync(buffers); - transferred += to_transfer; - } - } - if (close_connection_) - { - adaptor_.shutdown_readwrite(); - adaptor_.close(); - CROW_LOG_DEBUG << this << " from write (res_stream)"; - } - - res.end(); - res.clear(); - buffers_.clear(); - parser_.clear(); - } - } - - void do_read() - { - auto self = this->shared_from_this(); - adaptor_.socket().async_read_some( - asio::buffer(buffer_), - [self](const error_code& ec, std::size_t bytes_transferred) { - bool error_while_reading = true; - if (!ec) - { - bool ret = self->parser_.feed(self->buffer_.data(), bytes_transferred); - if (ret && self->adaptor_.is_open()) - { - error_while_reading = false; - } - } - - if (error_while_reading) - { - self->cancel_deadline_timer(); - self->parser_.done(); - self->adaptor_.shutdown_read(); - self->adaptor_.close(); - CROW_LOG_DEBUG << self << " from read(1) with description: \"" << http_errno_description(static_cast(self->parser_.http_errno)) << '\"'; - } - else if (self->close_connection_) - { - self->cancel_deadline_timer(); - self->parser_.done(); - // adaptor will close after write - } - else if (!self->need_to_call_after_handlers_) - { - self->start_deadline(); - self->do_read(); - } - else - { - // res will be completed later by user - self->need_to_start_read_after_complete_ = true; - } - }); - } - - void do_write() - { - auto self = this->shared_from_this(); - asio::async_write( - adaptor_.socket(), buffers_, - [self](const error_code& ec, std::size_t /*bytes_transferred*/) { - self->res.clear(); - self->res_body_copy_.clear(); - if (!self->continue_requested) - { - self->parser_.clear(); - } - else - { - self->continue_requested = false; - } - - if (!ec) - { - if (self->close_connection_) - { - self->adaptor_.shutdown_write(); - self->adaptor_.close(); - CROW_LOG_DEBUG << self << " from write(1)"; - } - } - else - { - CROW_LOG_DEBUG << self << " from write(2)"; - } - }); - } - - inline void do_write_sync(std::vector& buffers) - { - - asio::write(adaptor_.socket(), buffers, [&](error_code ec, std::size_t) { - if (!ec) - { - return false; - } - else - { - CROW_LOG_ERROR << ec << " - happened while sending buffers"; - CROW_LOG_DEBUG << this << " from write (sync)(2)"; - return true; - } - }); - } - - void cancel_deadline_timer() - { - CROW_LOG_DEBUG << this << " timer cancelled: " << &task_timer_ << ' ' << task_id_; - task_timer_.cancel(task_id_); - } - - void start_deadline(/*int timeout = 5*/) - { - cancel_deadline_timer(); - - auto self = this->shared_from_this(); - task_id_ = task_timer_.schedule([self] { - if (!self->adaptor_.is_open()) - { - return; - } - self->adaptor_.shutdown_readwrite(); - self->adaptor_.close(); - }); - CROW_LOG_DEBUG << this << " timer added: " << &task_timer_ << ' ' << task_id_; - } - - private: - Adaptor adaptor_; - Handler* handler_; - - std::array buffer_; - - HTTPParser parser_; - std::unique_ptr routing_handle_result_; - request& req_; - response res; - - bool close_connection_ = false; - - const std::string& server_name_; - std::vector buffers_; - - std::string content_length_; - std::string date_str_; - std::string res_body_copy_; - - detail::task_timer::identifier_type task_id_{}; - - bool continue_requested{}; - bool need_to_call_after_handlers_{}; - bool need_to_start_read_after_complete_{}; - bool add_keep_alive_{}; - - std::tuple* middlewares_; - detail::context ctx_; - - std::function& get_cached_date_str; - detail::task_timer& task_timer_; - - size_t res_stream_threshold_; - - std::atomic& queue_length_; - }; - -} // namespace crow - -#include - -namespace crow // NOTE: Already documented in "crow/app.h" -{ -#ifdef CROW_USE_BOOST - namespace asio = boost::asio; - using error_code = boost::system::error_code; -#else - using error_code = asio::error_code; -#endif - - /** - * \namespace crow::websocket - * \brief Namespace that includes the \ref Connection class - * and \ref connection struct. Useful for WebSockets connection. - * - * Used specially in crow/websocket.h, crow/app.h and crow/routing.h - */ - namespace websocket - { - enum class WebSocketReadState - { - MiniHeader, - Len16, - Len64, - Mask, - Payload, - }; - - /// A base class for websocket connection. - struct connection - { - virtual void send_binary(std::string msg) = 0; - virtual void send_text(std::string msg) = 0; - virtual void send_ping(std::string msg) = 0; - virtual void send_pong(std::string msg) = 0; - virtual void close(std::string const& msg = "quit") = 0; - virtual std::string get_remote_ip() = 0; - virtual ~connection() = default; - - void userdata(void* u) { userdata_ = u; } - void* userdata() { return userdata_; } - - private: - void* userdata_; - }; - - // Modified version of the illustration in RFC6455 Section-5.2 - // - // - // 0 1 2 3 -byte - // 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 -bit - // +-+-+-+-+-------+-+-------------+-------------------------------+ - // |F|R|R|R| opcode|M| Payload len | Extended payload length | - // |I|S|S|S| (4) |A| (7) | (16/64) | - // |N|V|V|V| |S| | (if payload len==126/127) | - // | |1|2|3| |K| | | - // +-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - + - // | Extended payload length continued, if payload len == 127 | - // + - - - - - - - - - - - - - - - +-------------------------------+ - // | |Masking-key, if MASK set to 1 | - // +-------------------------------+-------------------------------+ - // | Masking-key (continued) | Payload Data | - // +-------------------------------- - - - - - - - - - - - - - - - + - // : Payload Data continued ... : - // + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - // | Payload Data continued ... | - // +---------------------------------------------------------------+ - // - - /// A websocket connection. - - template - class Connection : public connection - { - public: - /// Constructor for a connection. - - /// - /// Requires a request with an "Upgrade: websocket" header.
- /// Automatically handles the handshake. - Connection(const crow::request& req, Adaptor&& adaptor, Handler* handler, uint64_t max_payload, - std::function open_handler, - std::function message_handler, - std::function close_handler, - std::function error_handler, - std::function accept_handler): - adaptor_(std::move(adaptor)), - handler_(handler), - max_payload_bytes_(max_payload), - open_handler_(std::move(open_handler)), - message_handler_(std::move(message_handler)), - close_handler_(std::move(close_handler)), - error_handler_(std::move(error_handler)), - accept_handler_(std::move(accept_handler)) - { - if (!utility::string_equals(req.get_header_value("upgrade"), "websocket")) - { - adaptor_.close(); - handler_->remove_websocket(this); - delete this; - return; - } - - if (accept_handler_) - { - void* ud = nullptr; - if (!accept_handler_(req, &ud)) - { - adaptor_.close(); - handler_->remove_websocket(this); - delete this; - return; - } - userdata(ud); - } - - // Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== - // Sec-WebSocket-Version: 13 - std::string magic = req.get_header_value("Sec-WebSocket-Key") + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; - sha1::SHA1 s; - s.processBytes(magic.data(), magic.size()); - uint8_t digest[20]; - s.getDigestBytes(digest); - - start(crow::utility::base64encode((unsigned char*)digest, 20)); - } - - ~Connection() noexcept override - { - // Do not modify anchor_ here since writing shared_ptr is not atomic. - auto watch = std::weak_ptr{anchor_}; - - // Wait until all unhandled asynchronous operations to join. - // As the deletion occurs inside 'check_destroy()', which already locks - // anchor, use count can be 1 on valid deletion context. - while (watch.use_count() > 2) // 1 for 'check_destroy() routine', 1 for 'this->anchor_' - { - std::this_thread::yield(); - } - } - - template - struct WeakWrappedMessage - { - Callable callable; - std::weak_ptr watch; - - void operator()() - { - if (auto anchor = watch.lock()) - { - std::move(callable)(); - } - } - }; - - /// Send data through the socket. - template - void dispatch(CompletionHandler&& handler) - { - asio::dispatch(adaptor_.get_io_service(), - WeakWrappedMessage::type>{ - std::forward(handler), anchor_}); - } - - /// Send data through the socket and return immediately. - template - void post(CompletionHandler&& handler) - { - asio::post(adaptor_.get_io_service(), - WeakWrappedMessage::type>{ - std::forward(handler), anchor_}); - } - - /// Send a "Ping" message. - - /// - /// Usually invoked to check if the other point is still online. - void send_ping(std::string msg) override - { - send_data(0x9, std::move(msg)); - } - - /// Send a "Pong" message. - - /// - /// Usually automatically invoked as a response to a "Ping" message. - void send_pong(std::string msg) override - { - send_data(0xA, std::move(msg)); - } - - /// Send a binary encoded message. - void send_binary(std::string msg) override - { - send_data(0x2, std::move(msg)); - } - - /// Send a plaintext message. - void send_text(std::string msg) override - { - send_data(0x1, std::move(msg)); - } - - /// Send a close signal. - - /// - /// Sets a flag to destroy the object once the message is sent. - void close(std::string const& msg) override - { - dispatch([this, msg]() mutable { - has_sent_close_ = true; - if (has_recv_close_ && !is_close_handler_called_) - { - is_close_handler_called_ = true; - if (close_handler_) - close_handler_(*this, msg); - } - auto header = build_header(0x8, msg.size()); - write_buffers_.emplace_back(std::move(header)); - write_buffers_.emplace_back(msg); - do_write(); - }); - } - - std::string get_remote_ip() override - { - return adaptor_.remote_endpoint().address().to_string(); - } - - void set_max_payload_size(uint64_t payload) - { - max_payload_bytes_ = payload; - } - - protected: - /// Generate the websocket headers using an opcode and the message size (in bytes). - std::string build_header(int opcode, size_t size) - { - char buf[2 + 8] = "\x80\x00"; - buf[0] += opcode; - if (size < 126) - { - buf[1] += static_cast(size); - return {buf, buf + 2}; - } - else if (size < 0x10000) - { - buf[1] += 126; - *(uint16_t*)(buf + 2) = htons(static_cast(size)); - return {buf, buf + 4}; - } - else - { - buf[1] += 127; - *reinterpret_cast(buf + 2) = ((1 == htonl(1)) ? static_cast(size) : (static_cast(htonl((size)&0xFFFFFFFF)) << 32) | htonl(static_cast(size) >> 32)); - return {buf, buf + 10}; - } - } - - /// Send the HTTP upgrade response. - - /// - /// Finishes the handshake process, then starts reading messages from the socket. - void start(std::string&& hello) - { - static const std::string header = - "HTTP/1.1 101 Switching Protocols\r\n" - "Upgrade: websocket\r\n" - "Connection: Upgrade\r\n" - "Sec-WebSocket-Accept: "; - write_buffers_.emplace_back(header); - write_buffers_.emplace_back(std::move(hello)); - write_buffers_.emplace_back(crlf); - write_buffers_.emplace_back(crlf); - do_write(); - if (open_handler_) - open_handler_(*this); - do_read(); - } - - /// Read a websocket message. - - /// - /// Involves:
- /// Handling headers (opcodes, size).
- /// Unmasking the payload.
- /// Reading the actual payload.
- void do_read() - { - if (has_sent_close_ && has_recv_close_) - { - close_connection_ = true; - adaptor_.shutdown_readwrite(); - adaptor_.close(); - check_destroy(); - return; - } - - is_reading = true; - switch (state_) - { - case WebSocketReadState::MiniHeader: - { - mini_header_ = 0; - //asio::async_read(adaptor_.socket(), asio::buffer(&mini_header_, 1), - adaptor_.socket().async_read_some( - asio::buffer(&mini_header_, 2), - [this](const error_code& ec, std::size_t -#ifdef CROW_ENABLE_DEBUG - bytes_transferred -#endif - ) - - { - is_reading = false; - mini_header_ = ntohs(mini_header_); -#ifdef CROW_ENABLE_DEBUG - - if (!ec && bytes_transferred != 2) - { - throw std::runtime_error("WebSocket:MiniHeader:async_read fail:asio bug?"); - } -#endif - - if (!ec) - { - if ((mini_header_ & 0x80) == 0x80) - has_mask_ = true; - else //if the websocket specification is enforced and the message isn't masked, terminate the connection - { -#ifndef CROW_ENFORCE_WS_SPEC - has_mask_ = false; -#else - close_connection_ = true; - adaptor_.shutdown_readwrite(); - adaptor_.close(); - if (error_handler_) - error_handler_(*this, "Client connection not masked."); - check_destroy(); -#endif - } - - if ((mini_header_ & 0x7f) == 127) - { - state_ = WebSocketReadState::Len64; - } - else if ((mini_header_ & 0x7f) == 126) - { - state_ = WebSocketReadState::Len16; - } - else - { - remaining_length_ = mini_header_ & 0x7f; - state_ = WebSocketReadState::Mask; - } - do_read(); - } - else - { - close_connection_ = true; - adaptor_.shutdown_readwrite(); - adaptor_.close(); - if (error_handler_) - error_handler_(*this, ec.message()); - check_destroy(); - } - }); - } - break; - case WebSocketReadState::Len16: - { - remaining_length_ = 0; - remaining_length16_ = 0; - asio::async_read( - adaptor_.socket(), asio::buffer(&remaining_length16_, 2), - [this](const error_code& ec, std::size_t -#ifdef CROW_ENABLE_DEBUG - bytes_transferred -#endif - ) { - is_reading = false; - remaining_length16_ = ntohs(remaining_length16_); - remaining_length_ = remaining_length16_; -#ifdef CROW_ENABLE_DEBUG - if (!ec && bytes_transferred != 2) - { - throw std::runtime_error("WebSocket:Len16:async_read fail:asio bug?"); - } -#endif - - if (!ec) - { - state_ = WebSocketReadState::Mask; - do_read(); - } - else - { - close_connection_ = true; - adaptor_.shutdown_readwrite(); - adaptor_.close(); - if (error_handler_) - error_handler_(*this, ec.message()); - check_destroy(); - } - }); - } - break; - case WebSocketReadState::Len64: - { - asio::async_read( - adaptor_.socket(), asio::buffer(&remaining_length_, 8), - [this](const error_code& ec, std::size_t -#ifdef CROW_ENABLE_DEBUG - bytes_transferred -#endif - ) { - is_reading = false; - remaining_length_ = ((1 == ntohl(1)) ? (remaining_length_) : (static_cast(ntohl((remaining_length_)&0xFFFFFFFF)) << 32) | ntohl((remaining_length_) >> 32)); -#ifdef CROW_ENABLE_DEBUG - if (!ec && bytes_transferred != 8) - { - throw std::runtime_error("WebSocket:Len16:async_read fail:asio bug?"); - } -#endif - - if (!ec) - { - state_ = WebSocketReadState::Mask; - do_read(); - } - else - { - close_connection_ = true; - adaptor_.shutdown_readwrite(); - adaptor_.close(); - if (error_handler_) - error_handler_(*this, ec.message()); - check_destroy(); - } - }); - } - break; - case WebSocketReadState::Mask: - if (remaining_length_ > max_payload_bytes_) - { - close_connection_ = true; - adaptor_.close(); - if (error_handler_) - error_handler_(*this, "Message length exceeds maximum payload."); - check_destroy(); - } - else if (has_mask_) - { - asio::async_read( - adaptor_.socket(), asio::buffer((char*)&mask_, 4), - [this](const error_code& ec, std::size_t -#ifdef CROW_ENABLE_DEBUG - bytes_transferred -#endif - ) { - is_reading = false; -#ifdef CROW_ENABLE_DEBUG - if (!ec && bytes_transferred != 4) - { - throw std::runtime_error("WebSocket:Mask:async_read fail:asio bug?"); - } -#endif - - if (!ec) - { - state_ = WebSocketReadState::Payload; - do_read(); - } - else - { - close_connection_ = true; - if (error_handler_) - error_handler_(*this, ec.message()); - adaptor_.shutdown_readwrite(); - adaptor_.close(); - check_destroy(); - } - }); - } - else - { - state_ = WebSocketReadState::Payload; - do_read(); - } - break; - case WebSocketReadState::Payload: - { - auto to_read = static_cast(buffer_.size()); - if (remaining_length_ < to_read) - to_read = remaining_length_; - adaptor_.socket().async_read_some( - asio::buffer(buffer_, static_cast(to_read)), - [this](const error_code& ec, std::size_t bytes_transferred) { - is_reading = false; - - if (!ec) - { - fragment_.insert(fragment_.end(), buffer_.begin(), buffer_.begin() + bytes_transferred); - remaining_length_ -= bytes_transferred; - if (remaining_length_ == 0) - { - if (handle_fragment()) - { - state_ = WebSocketReadState::MiniHeader; - do_read(); - } - } - else - do_read(); - } - else - { - close_connection_ = true; - if (error_handler_) - error_handler_(*this, ec.message()); - adaptor_.shutdown_readwrite(); - adaptor_.close(); - check_destroy(); - } - }); - } - break; - } - } - - /// Check if the FIN bit is set. - bool is_FIN() - { - return mini_header_ & 0x8000; - } - - /// Extract the opcode from the header. - int opcode() - { - return (mini_header_ & 0x0f00) >> 8; - } - - /// Process the payload fragment. - - /// - /// Unmasks the fragment, checks the opcode, merges fragments into 1 message body, and calls the appropriate handler. - bool handle_fragment() - { - if (has_mask_) - { - for (decltype(fragment_.length()) i = 0; i < fragment_.length(); i++) - { - fragment_[i] ^= ((char*)&mask_)[i % 4]; - } - } - switch (opcode()) - { - case 0: // Continuation - { - message_ += fragment_; - if (is_FIN()) - { - if (message_handler_) - message_handler_(*this, message_, is_binary_); - message_.clear(); - } - } - break; - case 1: // Text - { - is_binary_ = false; - message_ += fragment_; - if (is_FIN()) - { - if (message_handler_) - message_handler_(*this, message_, is_binary_); - message_.clear(); - } - } - break; - case 2: // Binary - { - is_binary_ = true; - message_ += fragment_; - if (is_FIN()) - { - if (message_handler_) - message_handler_(*this, message_, is_binary_); - message_.clear(); - } - } - break; - case 0x8: // Close - { - has_recv_close_ = true; - if (!has_sent_close_) - { - close(fragment_); - } - else - { - adaptor_.shutdown_readwrite(); - adaptor_.close(); - close_connection_ = true; - if (!is_close_handler_called_) - { - if (close_handler_) - close_handler_(*this, fragment_); - is_close_handler_called_ = true; - } - check_destroy(); - return false; - } - } - break; - case 0x9: // Ping - { - send_pong(fragment_); - } - break; - case 0xA: // Pong - { - pong_received_ = true; - } - break; - } - - fragment_.clear(); - return true; - } - - /// Send the buffers' data through the socket. - - /// - /// Also destroys the object if the Close flag is set. - void do_write() - { - if (sending_buffers_.empty()) - { - sending_buffers_.swap(write_buffers_); - std::vector buffers; - buffers.reserve(sending_buffers_.size()); - for (auto& s : sending_buffers_) - { - buffers.emplace_back(asio::buffer(s)); - } - auto watch = std::weak_ptr{anchor_}; - asio::async_write( - adaptor_.socket(), buffers, - [&, watch](const error_code& ec, std::size_t /*bytes_transferred*/) { - if (!ec && !close_connection_) - { - sending_buffers_.clear(); - if (!write_buffers_.empty()) - do_write(); - if (has_sent_close_) - close_connection_ = true; - } - else - { - auto anchor = watch.lock(); - if (anchor == nullptr) { return; } - - sending_buffers_.clear(); - close_connection_ = true; - check_destroy(); - } - }); - } - } - - /// Destroy the Connection. - void check_destroy() - { - //if (has_sent_close_ && has_recv_close_) - if (!is_close_handler_called_) - if (close_handler_) - close_handler_(*this, "uncleanly"); - handler_->remove_websocket(this); - if (sending_buffers_.empty() && !is_reading) - delete this; - } - - - struct SendMessageType - { - std::string payload; - Connection* self; - int opcode; - - void operator()() - { - self->send_data_impl(this); - } - }; - - void send_data_impl(SendMessageType* s) - { - auto header = build_header(s->opcode, s->payload.size()); - write_buffers_.emplace_back(std::move(header)); - write_buffers_.emplace_back(std::move(s->payload)); - do_write(); - } - - void send_data(int opcode, std::string&& msg) - { - SendMessageType event_arg{ - std::move(msg), - this, - opcode}; - - post(std::move(event_arg)); - } - - private: - Adaptor adaptor_; - Handler* handler_; - - std::vector sending_buffers_; - std::vector write_buffers_; - - std::array buffer_; - bool is_binary_; - std::string message_; - std::string fragment_; - WebSocketReadState state_{WebSocketReadState::MiniHeader}; - uint16_t remaining_length16_{0}; - uint64_t remaining_length_{0}; - uint64_t max_payload_bytes_{UINT64_MAX}; - bool close_connection_{false}; - bool is_reading{false}; - bool has_mask_{false}; - uint32_t mask_; - uint16_t mini_header_; - bool has_sent_close_{false}; - bool has_recv_close_{false}; - bool error_occurred_{false}; - bool pong_received_{false}; - bool is_close_handler_called_{false}; - - std::shared_ptr anchor_ = std::make_shared(); // Value is just for placeholding - - std::function open_handler_; - std::function message_handler_; - std::function close_handler_; - std::function error_handler_; - std::function accept_handler_; - }; - } // namespace websocket -} // namespace crow - - -namespace crow -{ - constexpr const char VERSION[] = "master"; -} - - -#ifdef CROW_USE_BOOST -#include -#ifdef CROW_ENABLE_SSL -#include -#endif -#else -#ifndef ASIO_STANDALONE -#define ASIO_STANDALONE -#endif -#include -#ifdef CROW_ENABLE_SSL -#include -#endif -#endif - -#include -#include -#include -#include -#include -#include - - - -namespace crow // NOTE: Already documented in "crow/app.h" -{ -#ifdef CROW_USE_BOOST - namespace asio = boost::asio; - using error_code = boost::system::error_code; -#else - using error_code = asio::error_code; -#endif - using tcp = asio::ip::tcp; - - template - class Server - { - public: - Server(Handler* handler, std::string bindaddr, uint16_t port, std::string server_name = std::string("Crow/") + VERSION, std::tuple* middlewares = nullptr, uint16_t concurrency = 1, uint8_t timeout = 5, typename Adaptor::context* adaptor_ctx = nullptr): - acceptor_(io_service_, tcp::endpoint(asio::ip::address::from_string(bindaddr), port)), - signals_(io_service_), - tick_timer_(io_service_), - handler_(handler), - concurrency_(concurrency), - timeout_(timeout), - server_name_(server_name), - port_(port), - bindaddr_(bindaddr), - task_queue_length_pool_(concurrency_ - 1), - middlewares_(middlewares), - adaptor_ctx_(adaptor_ctx) - {} - - void set_tick_function(std::chrono::milliseconds d, std::function f) - { - tick_interval_ = d; - tick_function_ = f; - } - - void on_tick() - { - tick_function_(); - tick_timer_.expires_after(std::chrono::milliseconds(tick_interval_.count())); - tick_timer_.async_wait([this](const error_code& ec) { - if (ec) - return; - on_tick(); - }); - } - - void run() - { - uint16_t worker_thread_count = concurrency_ - 1; - for (int i = 0; i < worker_thread_count; i++) - io_service_pool_.emplace_back(new asio::io_service()); - get_cached_date_str_pool_.resize(worker_thread_count); - task_timer_pool_.resize(worker_thread_count); - - std::vector> v; - std::atomic init_count(0); - for (uint16_t i = 0; i < worker_thread_count; i++) - v.push_back( - std::async( - std::launch::async, [this, i, &init_count] { - // thread local date string get function - auto last = std::chrono::steady_clock::now(); - - std::string date_str; - auto update_date_str = [&] { - auto last_time_t = time(0); - tm my_tm; - -#if defined(_MSC_VER) || defined(__MINGW32__) - gmtime_s(&my_tm, &last_time_t); -#else - gmtime_r(&last_time_t, &my_tm); -#endif - date_str.resize(100); - size_t date_str_sz = strftime(&date_str[0], 99, "%a, %d %b %Y %H:%M:%S GMT", &my_tm); - date_str.resize(date_str_sz); - }; - update_date_str(); - get_cached_date_str_pool_[i] = [&]() -> std::string { - if (std::chrono::steady_clock::now() - last >= std::chrono::seconds(1)) - { - last = std::chrono::steady_clock::now(); - update_date_str(); - } - return date_str; - }; - - // initializing task timers - detail::task_timer task_timer(*io_service_pool_[i]); - task_timer.set_default_timeout(timeout_); - task_timer_pool_[i] = &task_timer; - task_queue_length_pool_[i] = 0; - - init_count++; - while (1) - { - try - { - if (io_service_pool_[i]->run() == 0) - { - // when io_service.run returns 0, there are no more works to do. - break; - } - } - catch (std::exception& e) - { - CROW_LOG_ERROR << "Worker Crash: An uncaught exception occurred: " << e.what(); - } - } - })); - - if (tick_function_ && tick_interval_.count() > 0) - { - tick_timer_.expires_after(std::chrono::milliseconds(tick_interval_.count())); - tick_timer_.async_wait( - [this](const error_code& ec) { - if (ec) - return; - on_tick(); - }); - } - - port_ = acceptor_.local_endpoint().port(); - handler_->port(port_); - - - CROW_LOG_INFO << server_name_ << " server is running at " << (handler_->ssl_used() ? "https://" : "http://") << bindaddr_ << ":" << acceptor_.local_endpoint().port() << " using " << concurrency_ << " threads"; - CROW_LOG_INFO << "Call `app.loglevel(crow::LogLevel::Warning)` to hide Info level logs."; - - signals_.async_wait( - [&](const error_code& /*error*/, int /*signal_number*/) { - stop(); - }); - - while (worker_thread_count != init_count) - std::this_thread::yield(); - - do_accept(); - - std::thread( - [this] { - notify_start(); - io_service_.run(); - CROW_LOG_INFO << "Exiting."; - }) - .join(); - } - - void stop() - { - shutting_down_ = true; // Prevent the acceptor from taking new connections - for (auto& io_service : io_service_pool_) - { - if (io_service != nullptr) - { - CROW_LOG_INFO << "Closing IO service " << &io_service; - io_service->stop(); // Close all io_services (and HTTP connections) - } - } - - CROW_LOG_INFO << "Closing main IO service (" << &io_service_ << ')'; - io_service_.stop(); // Close main io_service - } - - /// Wait until the server has properly started - void wait_for_start() - { - std::unique_lock lock(start_mutex_); - if (!server_started_) - cv_started_.wait(lock); - } - - void signal_clear() - { - signals_.clear(); - } - - void signal_add(int signal_number) - { - signals_.add(signal_number); - } - - private: - uint16_t pick_io_service_idx() - { - uint16_t min_queue_idx = 0; - - // TODO improve load balancing - // size_t is used here to avoid the security issue https://codeql.github.com/codeql-query-help/cpp/cpp-comparison-with-wider-type/ - // even though the max value of this can be only uint16_t as concurrency is uint16_t. - for (size_t i = 1; i < task_queue_length_pool_.size() && task_queue_length_pool_[min_queue_idx] > 0; i++) - // No need to check other io_services if the current one has no tasks - { - if (task_queue_length_pool_[i] < task_queue_length_pool_[min_queue_idx]) - min_queue_idx = i; - } - return min_queue_idx; - } - - void do_accept() - { - if (!shutting_down_) - { - uint16_t service_idx = pick_io_service_idx(); - asio::io_service& is = *io_service_pool_[service_idx]; - task_queue_length_pool_[service_idx]++; - CROW_LOG_DEBUG << &is << " {" << service_idx << "} queue length: " << task_queue_length_pool_[service_idx]; - - auto p = std::make_shared>( - is, handler_, server_name_, middlewares_, - get_cached_date_str_pool_[service_idx], *task_timer_pool_[service_idx], adaptor_ctx_, task_queue_length_pool_[service_idx]); - - acceptor_.async_accept( - p->socket(), - [this, p, &is, service_idx](error_code ec) { - if (!ec) - { - is.post( - [p] { - p->start(); - }); - } - else - { - task_queue_length_pool_[service_idx]--; - CROW_LOG_DEBUG << &is << " {" << service_idx << "} queue length: " << task_queue_length_pool_[service_idx]; - } - do_accept(); - }); - } - } - - /// Notify anything using `wait_for_start()` to proceed - void notify_start() - { - std::unique_lock lock(start_mutex_); - server_started_ = true; - cv_started_.notify_all(); - } - - private: - std::vector> io_service_pool_; - asio::io_service io_service_; - std::vector task_timer_pool_; - std::vector> get_cached_date_str_pool_; - tcp::acceptor acceptor_; - bool shutting_down_ = false; - bool server_started_{false}; - std::condition_variable cv_started_; - std::mutex start_mutex_; - asio::signal_set signals_; - - asio::basic_waitable_timer tick_timer_; - - Handler* handler_; - uint16_t concurrency_{2}; - std::uint8_t timeout_; - std::string server_name_; - uint16_t port_; - std::string bindaddr_; - std::vector> task_queue_length_pool_; - - std::chrono::milliseconds tick_interval_; - std::function tick_function_; - - std::tuple* middlewares_; - - typename Adaptor::context* adaptor_ctx_; - }; -} // namespace crow - -#include -#include -#include -#include -#include - -namespace crow -{ - namespace mustache - { - using context = json::wvalue; - - template_t load(const std::string& filename); - - class invalid_template_exception : public std::exception - { - public: - invalid_template_exception(const std::string& msg): - msg("crow::mustache error: " + msg) - {} - virtual const char* what() const throw() - { - return msg.c_str(); - } - std::string msg; - }; - - struct rendered_template : returnable - { - rendered_template(): - returnable("text/html") {} - - rendered_template(std::string& body): - returnable("text/html"), body_(std::move(body)) {} - - std::string body_; - - std::string dump() const override - { - return body_; - } - }; - - enum class ActionType - { - Ignore, - Tag, - UnescapeTag, - OpenBlock, - CloseBlock, - ElseBlock, - Partial, - }; - - struct Action - { - int start; - int end; - int pos; - ActionType t; - Action(ActionType t, size_t start, size_t end, size_t pos = 0): - start(static_cast(start)), end(static_cast(end)), pos(static_cast(pos)), t(t) - { - } - }; - - /// A mustache template object. - class template_t - { - public: - template_t(std::string body): - body_(std::move(body)) - { - // {{ {{# {{/ {{^ {{! {{> {{= - parse(); - } - - private: - std::string tag_name(const Action& action) const - { - return body_.substr(action.start, action.end - action.start); - } - auto find_context(const std::string& name, const std::vector& stack, bool shouldUseOnlyFirstStackValue = false) const -> std::pair - { - if (name == ".") - { - return {true, *stack.back()}; - } - static json::wvalue empty_str; - empty_str = ""; - - int dotPosition = name.find("."); - if (dotPosition == static_cast(name.npos)) - { - for (auto it = stack.rbegin(); it != stack.rend(); ++it) - { - if ((*it)->t() == json::type::Object) - { - if ((*it)->count(name)) - return {true, (**it)[name]}; - } - } - } - else - { - std::vector dotPositions; - dotPositions.push_back(-1); - while (dotPosition != static_cast(name.npos)) - { - dotPositions.push_back(dotPosition); - dotPosition = name.find(".", dotPosition + 1); - } - dotPositions.push_back(name.size()); - std::vector names; - names.reserve(dotPositions.size() - 1); - for (int i = 1; i < static_cast(dotPositions.size()); i++) - names.emplace_back(name.substr(dotPositions[i - 1] + 1, dotPositions[i] - dotPositions[i - 1] - 1)); - - for (auto it = stack.rbegin(); it != stack.rend(); ++it) - { - const context* view = *it; - bool found = true; - for (auto jt = names.begin(); jt != names.end(); ++jt) - { - if (view->t() == json::type::Object && - view->count(*jt)) - { - view = &(*view)[*jt]; - } - else - { - if (shouldUseOnlyFirstStackValue) - { - return {false, empty_str}; - } - found = false; - break; - } - } - if (found) - return {true, *view}; - } - } - - return {false, empty_str}; - } - - void escape(const std::string& in, std::string& out) const - { - out.reserve(out.size() + in.size()); - for (auto it = in.begin(); it != in.end(); ++it) - { - switch (*it) - { - case '&': out += "&"; break; - case '<': out += "<"; break; - case '>': out += ">"; break; - case '"': out += """; break; - case '\'': out += "'"; break; - case '/': out += "/"; break; - case '`': out += "`"; break; - case '=': out += "="; break; - default: out += *it; break; - } - } - } - - bool isTagInsideObjectBlock(const int& current, const std::vector& stack) const - { - int openedBlock = 0; - for (int i = current; i > 0; --i) - { - auto& action = actions_[i - 1]; - - if (action.t == ActionType::OpenBlock) - { - if (openedBlock == 0 && (*stack.rbegin())->t() == json::type::Object) - { - return true; - } - --openedBlock; - } - else if (action.t == ActionType::CloseBlock) - { - ++openedBlock; - } - } - - return false; - } - - void render_internal(int actionBegin, int actionEnd, std::vector& stack, std::string& out, int indent) const - { - int current = actionBegin; - - if (indent) - out.insert(out.size(), indent, ' '); - - while (current < actionEnd) - { - auto& fragment = fragments_[current]; - auto& action = actions_[current]; - render_fragment(fragment, indent, out); - switch (action.t) - { - case ActionType::Ignore: - // do nothing - break; - case ActionType::Partial: - { - std::string partial_name = tag_name(action); - auto partial_templ = load(partial_name); - int partial_indent = action.pos; - partial_templ.render_internal(0, partial_templ.fragments_.size() - 1, stack, out, partial_indent ? indent + partial_indent : 0); - } - break; - case ActionType::UnescapeTag: - case ActionType::Tag: - { - bool shouldUseOnlyFirstStackValue = false; - if (isTagInsideObjectBlock(current, stack)) - { - shouldUseOnlyFirstStackValue = true; - } - auto optional_ctx = find_context(tag_name(action), stack, shouldUseOnlyFirstStackValue); - auto& ctx = optional_ctx.second; - switch (ctx.t()) - { - case json::type::False: - case json::type::True: - case json::type::Number: - out += ctx.dump(); - break; - case json::type::String: - if (action.t == ActionType::Tag) - escape(ctx.s, out); - else - out += ctx.s; - break; - case json::type::Function: - { - std::string execute_result = ctx.execute(); - while (execute_result.find("{{") != std::string::npos) - { - template_t result_plug(execute_result); - execute_result = result_plug.render_string(*(stack[0])); - } - - if (action.t == ActionType::Tag) - escape(execute_result, out); - else - out += execute_result; - } - break; - default: - throw std::runtime_error("not implemented tag type" + utility::lexical_cast(static_cast(ctx.t()))); - } - } - break; - case ActionType::ElseBlock: - { - static context nullContext; - auto optional_ctx = find_context(tag_name(action), stack); - if (!optional_ctx.first) - { - stack.emplace_back(&nullContext); - break; - } - - auto& ctx = optional_ctx.second; - switch (ctx.t()) - { - case json::type::List: - if (ctx.l && !ctx.l->empty()) - current = action.pos; - else - stack.emplace_back(&nullContext); - break; - case json::type::False: - case json::type::Null: - stack.emplace_back(&nullContext); - break; - default: - current = action.pos; - break; - } - break; - } - case ActionType::OpenBlock: - { - auto optional_ctx = find_context(tag_name(action), stack); - if (!optional_ctx.first) - { - current = action.pos; - break; - } - - auto& ctx = optional_ctx.second; - switch (ctx.t()) - { - case json::type::List: - if (ctx.l) - for (auto it = ctx.l->begin(); it != ctx.l->end(); ++it) - { - stack.push_back(&*it); - render_internal(current + 1, action.pos, stack, out, indent); - stack.pop_back(); - } - current = action.pos; - break; - case json::type::Number: - case json::type::String: - case json::type::Object: - case json::type::True: - stack.push_back(&ctx); - break; - case json::type::False: - case json::type::Null: - current = action.pos; - break; - default: - throw std::runtime_error("{{#: not implemented context type: " + utility::lexical_cast(static_cast(ctx.t()))); - break; - } - break; - } - case ActionType::CloseBlock: - stack.pop_back(); - break; - default: - throw std::runtime_error("not implemented " + utility::lexical_cast(static_cast(action.t))); - } - current++; - } - auto& fragment = fragments_[actionEnd]; - render_fragment(fragment, indent, out); - } - void render_fragment(const std::pair fragment, int indent, std::string& out) const - { - if (indent) - { - for (int i = fragment.first; i < fragment.second; i++) - { - out += body_[i]; - if (body_[i] == '\n' && i + 1 != static_cast(body_.size())) - out.insert(out.size(), indent, ' '); - } - } - else - out.insert(out.size(), body_, fragment.first, fragment.second - fragment.first); - } - - public: - /// Output a returnable template from this mustache template - rendered_template render() const - { - context empty_ctx; - std::vector stack; - stack.emplace_back(&empty_ctx); - - std::string ret; - render_internal(0, fragments_.size() - 1, stack, ret, 0); - return rendered_template(ret); - } - - /// Apply the values from the context provided and output a returnable template from this mustache template - rendered_template render(const context& ctx) const - { - std::vector stack; - stack.emplace_back(&ctx); - - std::string ret; - render_internal(0, fragments_.size() - 1, stack, ret, 0); - return rendered_template(ret); - } - - /// Apply the values from the context provided and output a returnable template from this mustache template - rendered_template render(const context&& ctx) const - { - return render(ctx); - } - - /// Output a returnable template from this mustache template - std::string render_string() const - { - context empty_ctx; - std::vector stack; - stack.emplace_back(&empty_ctx); - - std::string ret; - render_internal(0, fragments_.size() - 1, stack, ret, 0); - return ret; - } - - /// Apply the values from the context provided and output a returnable template from this mustache template - std::string render_string(const context& ctx) const - { - std::vector stack; - stack.emplace_back(&ctx); - - std::string ret; - render_internal(0, fragments_.size() - 1, stack, ret, 0); - return ret; - } - - private: - void parse() - { - std::string tag_open = "{{"; - std::string tag_close = "}}"; - - std::vector blockPositions; - - size_t current = 0; - while (1) - { - size_t idx = body_.find(tag_open, current); - if (idx == body_.npos) - { - fragments_.emplace_back(static_cast(current), static_cast(body_.size())); - actions_.emplace_back(ActionType::Ignore, 0, 0); - break; - } - fragments_.emplace_back(static_cast(current), static_cast(idx)); - - idx += tag_open.size(); - size_t endIdx = body_.find(tag_close, idx); - if (endIdx == idx) - { - throw invalid_template_exception("empty tag is not allowed"); - } - if (endIdx == body_.npos) - { - // error, no matching tag - throw invalid_template_exception("not matched opening tag"); - } - current = endIdx + tag_close.size(); - switch (body_[idx]) - { - case '#': - idx++; - while (body_[idx] == ' ') - idx++; - while (body_[endIdx - 1] == ' ') - endIdx--; - blockPositions.emplace_back(static_cast(actions_.size())); - actions_.emplace_back(ActionType::OpenBlock, idx, endIdx); - break; - case '/': - idx++; - while (body_[idx] == ' ') - idx++; - while (body_[endIdx - 1] == ' ') - endIdx--; - { - auto& matched = actions_[blockPositions.back()]; - if (body_.compare(idx, endIdx - idx, - body_, matched.start, matched.end - matched.start) != 0) - { - throw invalid_template_exception("not matched {{# {{/ pair: " + - body_.substr(matched.start, matched.end - matched.start) + ", " + - body_.substr(idx, endIdx - idx)); - } - matched.pos = actions_.size(); - } - actions_.emplace_back(ActionType::CloseBlock, idx, endIdx, blockPositions.back()); - blockPositions.pop_back(); - break; - case '^': - idx++; - while (body_[idx] == ' ') - idx++; - while (body_[endIdx - 1] == ' ') - endIdx--; - blockPositions.emplace_back(static_cast(actions_.size())); - actions_.emplace_back(ActionType::ElseBlock, idx, endIdx); - break; - case '!': - // do nothing action - actions_.emplace_back(ActionType::Ignore, idx + 1, endIdx); - break; - case '>': // partial - idx++; - while (body_[idx] == ' ') - idx++; - while (body_[endIdx - 1] == ' ') - endIdx--; - actions_.emplace_back(ActionType::Partial, idx, endIdx); - break; - case '{': - if (tag_open != "{{" || tag_close != "}}") - throw invalid_template_exception("cannot use triple mustache when delimiter changed"); - - idx++; - if (body_[endIdx + 2] != '}') - { - throw invalid_template_exception("{{{: }}} not matched"); - } - while (body_[idx] == ' ') - idx++; - while (body_[endIdx - 1] == ' ') - endIdx--; - actions_.emplace_back(ActionType::UnescapeTag, idx, endIdx); - current++; - break; - case '&': - idx++; - while (body_[idx] == ' ') - idx++; - while (body_[endIdx - 1] == ' ') - endIdx--; - actions_.emplace_back(ActionType::UnescapeTag, idx, endIdx); - break; - case '=': - // tag itself is no-op - idx++; - actions_.emplace_back(ActionType::Ignore, idx, endIdx); - endIdx--; - if (body_[endIdx] != '=') - throw invalid_template_exception("{{=: not matching = tag: " + body_.substr(idx, endIdx - idx)); - endIdx--; - while (body_[idx] == ' ') - idx++; - while (body_[endIdx] == ' ') - endIdx--; - endIdx++; - { - bool succeeded = false; - for (size_t i = idx; i < endIdx; i++) - { - if (body_[i] == ' ') - { - tag_open = body_.substr(idx, i - idx); - while (body_[i] == ' ') - i++; - tag_close = body_.substr(i, endIdx - i); - if (tag_open.empty()) - throw invalid_template_exception("{{=: empty open tag"); - if (tag_close.empty()) - throw invalid_template_exception("{{=: empty close tag"); - - if (tag_close.find(" ") != tag_close.npos) - throw invalid_template_exception("{{=: invalid open/close tag: " + tag_open + " " + tag_close); - succeeded = true; - break; - } - } - if (!succeeded) - throw invalid_template_exception("{{=: cannot find space between new open/close tags"); - } - break; - default: - // normal tag case; - while (body_[idx] == ' ') - idx++; - while (body_[endIdx - 1] == ' ') - endIdx--; - actions_.emplace_back(ActionType::Tag, idx, endIdx); - break; - } - } - - // removing standalones - for (int i = actions_.size() - 2; i >= 0; i--) - { - if (actions_[i].t == ActionType::Tag || actions_[i].t == ActionType::UnescapeTag) - continue; - auto& fragment_before = fragments_[i]; - auto& fragment_after = fragments_[i + 1]; - bool is_last_action = i == static_cast(actions_.size()) - 2; - bool all_space_before = true; - int j, k; - for (j = fragment_before.second - 1; j >= fragment_before.first; j--) - { - if (body_[j] != ' ') - { - all_space_before = false; - break; - } - } - if (all_space_before && i > 0) - continue; - if (!all_space_before && body_[j] != '\n') - continue; - bool all_space_after = true; - for (k = fragment_after.first; k < static_cast(body_.size()) && k < fragment_after.second; k++) - { - if (body_[k] != ' ') - { - all_space_after = false; - break; - } - } - if (all_space_after && !is_last_action) - continue; - if (!all_space_after && - !( - body_[k] == '\n' || - (body_[k] == '\r' && - k + 1 < static_cast(body_.size()) && - body_[k + 1] == '\n'))) - continue; - if (actions_[i].t == ActionType::Partial) - { - actions_[i].pos = fragment_before.second - j - 1; - } - fragment_before.second = j + 1; - if (!all_space_after) - { - if (body_[k] == '\n') - k++; - else - k += 2; - fragment_after.first = k; - } - } - } - - std::vector> fragments_; - std::vector actions_; - std::string body_; - }; - - inline template_t compile(const std::string& body) - { - return template_t(body); - } - namespace detail - { - inline std::string& get_template_base_directory_ref() - { - static std::string template_base_directory = "templates"; - return template_base_directory; - } - - /// A base directory not related to any blueprint - inline std::string& get_global_template_base_directory_ref() - { - static std::string template_base_directory = "templates"; - return template_base_directory; - } - } // namespace detail - - inline std::string default_loader(const std::string& filename) - { - std::string path = detail::get_template_base_directory_ref(); - std::ifstream inf(utility::join_path(path, filename)); - if (!inf) - { - CROW_LOG_WARNING << "Template \"" << filename << "\" not found."; - return {}; - } - return {std::istreambuf_iterator(inf), std::istreambuf_iterator()}; - } - - namespace detail - { - inline std::function& get_loader_ref() - { - static std::function loader = default_loader; - return loader; - } - } // namespace detail - - inline void set_base(const std::string& path) - { - auto& base = detail::get_template_base_directory_ref(); - base = path; - if (base.back() != '\\' && - base.back() != '/') - { - base += '/'; - } - } - - inline void set_global_base(const std::string& path) - { - auto& base = detail::get_global_template_base_directory_ref(); - base = path; - if (base.back() != '\\' && - base.back() != '/') - { - base += '/'; - } - } - - inline void set_loader(std::function loader) - { - detail::get_loader_ref() = std::move(loader); - } - - inline std::string load_text(const std::string& filename) - { - std::string filename_sanitized(filename); - utility::sanitize_filename(filename_sanitized); - return detail::get_loader_ref()(filename_sanitized); - } - - inline std::string load_text_unsafe(const std::string& filename) - { - return detail::get_loader_ref()(filename); - } - - inline template_t load(const std::string& filename) - { - std::string filename_sanitized(filename); - utility::sanitize_filename(filename_sanitized); - return compile(detail::get_loader_ref()(filename_sanitized)); - } - - inline template_t load_unsafe(const std::string& filename) - { - return compile(detail::get_loader_ref()(filename)); - } - } // namespace mustache -} // namespace crow - - -#include -#include -#include -#include -#include -#include -#include -#include - - -namespace crow // NOTE: Already documented in "crow/app.h" -{ - - constexpr const uint16_t INVALID_BP_ID{((uint16_t)-1)}; - - namespace detail - { - /// Typesafe wrapper for storing lists of middleware as their indices in the App - struct middleware_indices - { - template - void push() - {} - - template - void push() - { - using MwContainer = typename App::mw_container_t; - static_assert(black_magic::has_type::value, "Middleware must be present in app"); - static_assert(std::is_base_of::value, "Middleware must extend ILocalMiddleware"); - int idx = black_magic::tuple_index::value; - indices_.push_back(idx); - push(); - } - - void merge_front(const detail::middleware_indices& other) - { - indices_.insert(indices_.begin(), other.indices_.cbegin(), other.indices_.cend()); - } - - void merge_back(const detail::middleware_indices& other) - { - indices_.insert(indices_.end(), other.indices_.cbegin(), other.indices_.cend()); - } - - void pop_back(const detail::middleware_indices& other) - { - indices_.resize(indices_.size() - other.indices_.size()); - } - - bool empty() const - { - return indices_.empty(); - } - - // Sorts indices and filters out duplicates to allow fast lookups with traversal - void pack() - { - std::sort(indices_.begin(), indices_.end()); - indices_.erase(std::unique(indices_.begin(), indices_.end()), indices_.end()); - } - - const std::vector& indices() - { - return indices_; - } - - private: - std::vector indices_; - }; - } // namespace detail - - /// A base class for all rules. - - /// - /// Used to provide a common interface for code dealing with different types of rules.
- /// A Rule provides a URL, allowed HTTP methods, and handlers. - class BaseRule - { - public: - BaseRule(std::string rule): - rule_(std::move(rule)) - {} - - virtual ~BaseRule() - {} - - virtual void validate() = 0; - - void set_added() { - added_ = true; - } - - bool is_added() { - return added_; - } - - std::unique_ptr upgrade() - { - if (rule_to_upgrade_) - return std::move(rule_to_upgrade_); - return {}; - } - - virtual void handle(request&, response&, const routing_params&) = 0; - virtual void handle_upgrade(const request&, response& res, SocketAdaptor&&) - { - res = response(404); - res.end(); - } -#ifdef CROW_ENABLE_SSL - virtual void handle_upgrade(const request&, response& res, SSLAdaptor&&) - { - res = response(404); - res.end(); - } -#endif - - uint32_t get_methods() - { - return methods_; - } - - template - void foreach_method(F f) - { - for (uint32_t method = 0, method_bit = 1; method < static_cast(HTTPMethod::InternalMethodCount); method++, method_bit <<= 1) - { - if (methods_ & method_bit) - f(method); - } - } - - std::string custom_templates_base; - - const std::string& rule() { return rule_; } - - protected: - uint32_t methods_{1 << static_cast(HTTPMethod::Get)}; - - std::string rule_; - std::string name_; - bool added_{false}; - - std::unique_ptr rule_to_upgrade_; - - detail::middleware_indices mw_indices_; - - friend class Router; - friend class Blueprint; - template - friend struct RuleParameterTraits; - }; - - - namespace detail - { - namespace routing_handler_call_helper - { - template - struct call_pair - { - using type = T; - static const int pos = Pos; - }; - - template - struct call_params - { - H1& handler; - const routing_params& params; - request& req; - response& res; - }; - - template - struct call - {}; - - template - struct call, black_magic::S> - { - void operator()(F cparams) - { - using pushed = typename black_magic::S::template push_back>; - call, pushed>()(cparams); - } - }; - - template - struct call, black_magic::S> - { - void operator()(F cparams) - { - using pushed = typename black_magic::S::template push_back>; - call, pushed>()(cparams); - } - }; - - template - struct call, black_magic::S> - { - void operator()(F cparams) - { - using pushed = typename black_magic::S::template push_back>; - call, pushed>()(cparams); - } - }; - - template - struct call, black_magic::S> - { - void operator()(F cparams) - { - using pushed = typename black_magic::S::template push_back>; - call, pushed>()(cparams); - } - }; - - template - struct call, black_magic::S> - { - void operator()(F cparams) - { - cparams.handler( - cparams.req, - cparams.res, - cparams.params.template get(Args1::pos)...); - } - }; - - template - struct Wrapped - { - template - void set_(Func f, typename std::enable_if>::type, const request&>::value, int>::type = 0) - { - handler_ = ( -#ifdef CROW_CAN_USE_CPP14 - [f = std::move(f)] -#else - [f] -#endif - (const request&, response& res, Args... args) { - res = response(f(args...)); - res.end(); - }); - } - - template - struct req_handler_wrapper - { - req_handler_wrapper(Func f): - f(std::move(f)) - { - } - - void operator()(const request& req, response& res, Args... args) - { - res = response(f(req, args...)); - res.end(); - } - - Func f; - }; - - template - void set_(Func f, typename std::enable_if< - std::is_same>::type, const request&>::value && - !std::is_same>::type, response&>::value, - int>::type = 0) - { - handler_ = req_handler_wrapper(std::move(f)); - /*handler_ = ( - [f = std::move(f)] - (const request& req, response& res, Args... args){ - res = response(f(req, args...)); - res.end(); - });*/ - } - - template - void set_(Func f, typename std::enable_if< - std::is_same>::type, const request&>::value && - std::is_same>::type, response&>::value, - int>::type = 0) - { - handler_ = std::move(f); - } - - template - struct handler_type_helper - { - using type = std::function; - using args_type = black_magic::S...>; - }; - - template - struct handler_type_helper - { - using type = std::function; - using args_type = black_magic::S...>; - }; - - template - struct handler_type_helper - { - using type = std::function; - using args_type = black_magic::S...>; - }; - - typename handler_type_helper::type handler_; - - void operator()(request& req, response& res, const routing_params& params) - { - detail::routing_handler_call_helper::call< - detail::routing_handler_call_helper::call_params< - decltype(handler_)>, - 0, 0, 0, 0, - typename handler_type_helper::args_type, - black_magic::S<>>()( - detail::routing_handler_call_helper::call_params< - decltype(handler_)>{handler_, params, req, res}); - } - }; - - } // namespace routing_handler_call_helper - } // namespace detail - - - class CatchallRule - { - public: - /// @cond SKIP - CatchallRule() {} - - template - typename std::enable_if>::value, void>::type - operator()(Func&& f) - { - static_assert(!std::is_same::value, - "Handler function cannot have void return type; valid return types: string, int, crow::response, crow::returnable"); - - handler_ = ( -#ifdef CROW_CAN_USE_CPP14 - [f = std::move(f)] -#else - [f] -#endif - (const request&, response& res) { - res = response(f()); - res.end(); - }); - } - - template - typename std::enable_if< - !black_magic::CallHelper>::value && - black_magic::CallHelper>::value, - void>::type - operator()(Func&& f) - { - static_assert(!std::is_same()))>::value, - "Handler function cannot have void return type; valid return types: string, int, crow::response, crow::returnable"); - - handler_ = ( -#ifdef CROW_CAN_USE_CPP14 - [f = std::move(f)] -#else - [f] -#endif - (const crow::request& req, crow::response& res) { - res = response(f(req)); - res.end(); - }); - } - - template - typename std::enable_if< - !black_magic::CallHelper>::value && - !black_magic::CallHelper>::value && - black_magic::CallHelper>::value, - void>::type - operator()(Func&& f) - { - static_assert(std::is_same()))>::value, - "Handler function with response argument should have void return type"); - handler_ = ( -#ifdef CROW_CAN_USE_CPP14 - [f = std::move(f)] -#else - [f] -#endif - (const crow::request&, crow::response& res) { - f(res); - }); - } - - template - typename std::enable_if< - !black_magic::CallHelper>::value && - !black_magic::CallHelper>::value && - !black_magic::CallHelper>::value, - void>::type - operator()(Func&& f) - { - static_assert(std::is_same(), std::declval()))>::value, - "Handler function with response argument should have void return type"); - - handler_ = std::move(f); - } - /// @endcond - bool has_handler() - { - return (handler_ != nullptr); - } - - protected: - friend class Router; - - private: - std::function handler_; - }; - - - /// A rule dealing with websockets. - - /// - /// Provides the interface for the user to put in the necessary handlers for a websocket to work. - template - class WebSocketRule : public BaseRule - { - using self_t = WebSocketRule; - - public: - WebSocketRule(std::string rule, App* app): - BaseRule(std::move(rule)), - app_(app), - max_payload_(UINT64_MAX) - {} - - void validate() override - {} - - void handle(request&, response& res, const routing_params&) override - { - res = response(404); - res.end(); - } - - void handle_upgrade(const request& req, response&, SocketAdaptor&& adaptor) override - { - max_payload_ = max_payload_override_ ? max_payload_ : app_->websocket_max_payload(); - new crow::websocket::Connection(req, std::move(adaptor), app_, max_payload_, open_handler_, message_handler_, close_handler_, error_handler_, accept_handler_); - } -#ifdef CROW_ENABLE_SSL - void handle_upgrade(const request& req, response&, SSLAdaptor&& adaptor) override - { - new crow::websocket::Connection(req, std::move(adaptor), app_, max_payload_, open_handler_, message_handler_, close_handler_, error_handler_, accept_handler_); - } -#endif - - /// Override the global payload limit for this single WebSocket rule - self_t& max_payload(uint64_t max_payload) - { - max_payload_ = max_payload; - max_payload_override_ = true; - return *this; - } - - template - self_t& onopen(Func f) - { - open_handler_ = f; - return *this; - } - - template - self_t& onmessage(Func f) - { - message_handler_ = f; - return *this; - } - - template - self_t& onclose(Func f) - { - close_handler_ = f; - return *this; - } - - template - self_t& onerror(Func f) - { - error_handler_ = f; - return *this; - } - - template - self_t& onaccept(Func f) - { - accept_handler_ = f; - return *this; - } - - protected: - App* app_; - std::function open_handler_; - std::function message_handler_; - std::function close_handler_; - std::function error_handler_; - std::function accept_handler_; - uint64_t max_payload_; - bool max_payload_override_ = false; - }; - - /// Allows the user to assign parameters using functions. - - /// - /// `rule.name("name").methods(HTTPMethod::POST)` - template - struct RuleParameterTraits - { - using self_t = T; - - template - WebSocketRule& websocket(App* app) - { - auto p = new WebSocketRule(static_cast(this)->rule_, app); - static_cast(this)->rule_to_upgrade_.reset(p); - return *p; - } - - self_t& name(std::string name) noexcept - { - static_cast(this)->name_ = std::move(name); - return static_cast(*this); - } - - self_t& methods(HTTPMethod method) - { - static_cast(this)->methods_ = 1 << static_cast(method); - return static_cast(*this); - } - - template - self_t& methods(HTTPMethod method, MethodArgs... args_method) - { - methods(args_method...); - static_cast(this)->methods_ |= 1 << static_cast(method); - return static_cast(*this); - } - - /// Enable local middleware for this handler - template - self_t& middlewares() - { - static_cast(this)->mw_indices_.template push(); - return static_cast(*this); - } - }; - - /// A rule that can change its parameters during runtime. - class DynamicRule : public BaseRule, public RuleParameterTraits - { - public: - DynamicRule(std::string rule): - BaseRule(std::move(rule)) - {} - - void validate() override - { - if (!erased_handler_) - { - throw std::runtime_error(name_ + (!name_.empty() ? ": " : "") + "no handler for url " + rule_); - } - } - - void handle(request& req, response& res, const routing_params& params) override - { - if (!custom_templates_base.empty()) - mustache::set_base(custom_templates_base); - else if (mustache::detail::get_template_base_directory_ref() != "templates") - mustache::set_base("templates"); - erased_handler_(req, res, params); - } - - template - void operator()(Func f) - { -#ifdef CROW_MSVC_WORKAROUND - using function_t = utility::function_traits; -#else - using function_t = utility::function_traits; -#endif - erased_handler_ = wrap(std::move(f), black_magic::gen_seq()); - } - - // enable_if Arg1 == request && Arg2 == response - // enable_if Arg1 == request && Arg2 != resposne - // enable_if Arg1 != request -#ifdef CROW_MSVC_WORKAROUND - template -#else - template -#endif - std::function - wrap(Func f, black_magic::seq) - { -#ifdef CROW_MSVC_WORKAROUND - using function_t = utility::function_traits; -#else - using function_t = utility::function_traits; -#endif - if (!black_magic::is_parameter_tag_compatible( - black_magic::get_parameter_tag_runtime(rule_.c_str()), - black_magic::compute_parameter_tag_from_args_list< - typename function_t::template arg...>::value)) - { - throw std::runtime_error("route_dynamic: Handler type is mismatched with URL parameters: " + rule_); - } - auto ret = detail::routing_handler_call_helper::Wrapped...>(); - ret.template set_< - typename function_t::template arg...>(std::move(f)); - return ret; - } - - template - void operator()(std::string name, Func&& f) - { - name_ = std::move(name); - (*this).template operator()(std::forward(f)); - } - - private: - std::function erased_handler_; - }; - - /// Default rule created when CROW_ROUTE is called. - template - class TaggedRule : public BaseRule, public RuleParameterTraits> - { - public: - using self_t = TaggedRule; - - TaggedRule(std::string rule): - BaseRule(std::move(rule)) - {} - - void validate() override - { - if (rule_.at(0) != '/') - throw std::runtime_error("Internal error: Routes must start with a '/'"); - - if (!handler_) - { - throw std::runtime_error(name_ + (!name_.empty() ? ": " : "") + "no handler for url " + rule_); - } - } - - template - void operator()(Func&& f) - { - handler_ = ( -#ifdef CROW_CAN_USE_CPP14 - [f = std::move(f)] -#else - [f] -#endif - (crow::request& req, crow::response& res, Args... args) { - detail::wrapped_handler_call(req, res, f, std::forward(args)...); - }); - } - - template - void operator()(std::string name, Func&& f) - { - name_ = std::move(name); - (*this).template operator()(std::forward(f)); - } - - void handle(request& req, response& res, const routing_params& params) override - { - if (!custom_templates_base.empty()) - mustache::set_base(custom_templates_base); - else if (mustache::detail::get_template_base_directory_ref() != mustache::detail::get_global_template_base_directory_ref()) - mustache::set_base(mustache::detail::get_global_template_base_directory_ref()); - - detail::routing_handler_call_helper::call< - detail::routing_handler_call_helper::call_params, - 0, 0, 0, 0, - black_magic::S, - black_magic::S<>>()( - detail::routing_handler_call_helper::call_params{handler_, params, req, res}); - } - - private: - std::function handler_; - }; - - const int RULE_SPECIAL_REDIRECT_SLASH = 1; - - - /// A search tree. - class Trie - { - public: - struct Node - { - uint16_t rule_index{}; - // Assign the index to the maximum 32 unsigned integer value by default so that any other number (specifically 0) is a valid BP id. - uint16_t blueprint_index{INVALID_BP_ID}; - std::string key; - ParamType param = ParamType::MAX; // MAX = No param. - std::vector children; - - bool IsSimpleNode() const - { - return !rule_index && - blueprint_index == INVALID_BP_ID && - children.size() < 2 && - param == ParamType::MAX && - std::all_of(std::begin(children), std::end(children), [](const Node& x) { - return x.param == ParamType::MAX; - }); - } - - Node& add_child_node() - { - children.emplace_back(); - return children.back(); - } - }; - - - Trie() - {} - - /// Check whether or not the trie is empty. - bool is_empty() - { - return head_.children.empty(); - } - - void optimize() - { - for (auto& child : head_.children) - { - optimizeNode(child); - } - } - - - private: - void optimizeNode(Node& node) - { - if (node.children.empty()) - return; - if (node.IsSimpleNode()) - { - auto children_temp = std::move(node.children); - auto& child_temp = children_temp[0]; - node.key += child_temp.key; - node.rule_index = child_temp.rule_index; - node.blueprint_index = child_temp.blueprint_index; - node.children = std::move(child_temp.children); - optimizeNode(node); - } - else - { - for (auto& child : node.children) - { - optimizeNode(child); - } - } - } - - void debug_node_print(const Node& node, int level) - { - if (node.param != ParamType::MAX) - { - switch (node.param) - { - case ParamType::INT: - CROW_LOG_DEBUG << std::string(3 * level, ' ') << "└➝ " - << ""; - break; - case ParamType::UINT: - CROW_LOG_DEBUG << std::string(3 * level, ' ') << "└➝ " - << ""; - break; - case ParamType::DOUBLE: - CROW_LOG_DEBUG << std::string(3 * level, ' ') << "└➝ " - << ""; - break; - case ParamType::STRING: - CROW_LOG_DEBUG << std::string(3 * level, ' ') << "└➝ " - << ""; - break; - case ParamType::PATH: - CROW_LOG_DEBUG << std::string(3 * level, ' ') << "└➝ " - << ""; - break; - default: - CROW_LOG_DEBUG << std::string(3 * level, ' ') << "└➝ " - << ""; - break; - } - } - else - CROW_LOG_DEBUG << std::string(3 * level, ' ') << "└➝ " << node.key; - - for (const auto& child : node.children) - { - debug_node_print(child, level + 1); - } - } - - public: - void debug_print() - { - CROW_LOG_DEBUG << "└➙ ROOT"; - for (const auto& child : head_.children) - debug_node_print(child, 1); - } - - void validate() - { - if (!head_.IsSimpleNode()) - throw std::runtime_error("Internal error: Trie header should be simple!"); - optimize(); - } - - //Rule_index, Blueprint_index, routing_params - routing_handle_result find(const std::string& req_url, const Node& node, unsigned pos = 0, routing_params* params = nullptr, std::vector* blueprints = nullptr) const - { - //start params as an empty struct - routing_params empty; - if (params == nullptr) - params = ∅ - //same for blueprint vector - std::vector MT; - if (blueprints == nullptr) - blueprints = &MT; - - uint16_t found{}; //The rule index to be found - std::vector found_BP; //The Blueprint indices to be found - routing_params match_params; //supposedly the final matched parameters - - auto update_found = [&found, &found_BP, &match_params](routing_handle_result& ret) { - found_BP = std::move(ret.blueprint_indices); - if (ret.rule_index && (!found || found > ret.rule_index)) - { - found = ret.rule_index; - match_params = std::move(ret.r_params); - } - }; - - //if the function was called on a node at the end of the string (the last recursion), return the nodes rule index, and whatever params were passed to the function - if (pos == req_url.size()) - { - found_BP = std::move(*blueprints); - return routing_handle_result{node.rule_index, *blueprints, *params}; - } - - bool found_fragment = false; - - for (const auto& child : node.children) - { - if (child.param != ParamType::MAX) - { - if (child.param == ParamType::INT) - { - char c = req_url[pos]; - if ((c >= '0' && c <= '9') || c == '+' || c == '-') - { - char* eptr; - errno = 0; - long long int value = strtoll(req_url.data() + pos, &eptr, 10); - if (errno != ERANGE && eptr != req_url.data() + pos) - { - found_fragment = true; - params->int_params.push_back(value); - if (child.blueprint_index != INVALID_BP_ID) blueprints->push_back(child.blueprint_index); - auto ret = find(req_url, child, eptr - req_url.data(), params, blueprints); - update_found(ret); - params->int_params.pop_back(); - if (!blueprints->empty()) blueprints->pop_back(); - } - } - } - - else if (child.param == ParamType::UINT) - { - char c = req_url[pos]; - if ((c >= '0' && c <= '9') || c == '+') - { - char* eptr; - errno = 0; - unsigned long long int value = strtoull(req_url.data() + pos, &eptr, 10); - if (errno != ERANGE && eptr != req_url.data() + pos) - { - found_fragment = true; - params->uint_params.push_back(value); - if (child.blueprint_index != INVALID_BP_ID) blueprints->push_back(child.blueprint_index); - auto ret = find(req_url, child, eptr - req_url.data(), params, blueprints); - update_found(ret); - params->uint_params.pop_back(); - if (!blueprints->empty()) blueprints->pop_back(); - } - } - } - - else if (child.param == ParamType::DOUBLE) - { - char c = req_url[pos]; - if ((c >= '0' && c <= '9') || c == '+' || c == '-' || c == '.') - { - char* eptr; - errno = 0; - double value = strtod(req_url.data() + pos, &eptr); - if (errno != ERANGE && eptr != req_url.data() + pos) - { - found_fragment = true; - params->double_params.push_back(value); - if (child.blueprint_index != INVALID_BP_ID) blueprints->push_back(child.blueprint_index); - auto ret = find(req_url, child, eptr - req_url.data(), params, blueprints); - update_found(ret); - params->double_params.pop_back(); - if (!blueprints->empty()) blueprints->pop_back(); - } - } - } - - else if (child.param == ParamType::STRING) - { - size_t epos = pos; - for (; epos < req_url.size(); epos++) - { - if (req_url[epos] == '/') - break; - } - - if (epos != pos) - { - found_fragment = true; - params->string_params.push_back(req_url.substr(pos, epos - pos)); - if (child.blueprint_index != INVALID_BP_ID) blueprints->push_back(child.blueprint_index); - auto ret = find(req_url, child, epos, params, blueprints); - update_found(ret); - params->string_params.pop_back(); - if (!blueprints->empty()) blueprints->pop_back(); - } - } - - else if (child.param == ParamType::PATH) - { - size_t epos = req_url.size(); - - if (epos != pos) - { - found_fragment = true; - params->string_params.push_back(req_url.substr(pos, epos - pos)); - if (child.blueprint_index != INVALID_BP_ID) blueprints->push_back(child.blueprint_index); - auto ret = find(req_url, child, epos, params, blueprints); - update_found(ret); - params->string_params.pop_back(); - if (!blueprints->empty()) blueprints->pop_back(); - } - } - } - - else - { - const std::string& fragment = child.key; - if (req_url.compare(pos, fragment.size(), fragment) == 0) - { - found_fragment = true; - if (child.blueprint_index != INVALID_BP_ID) blueprints->push_back(child.blueprint_index); - auto ret = find(req_url, child, pos + fragment.size(), params, blueprints); - update_found(ret); - if (!blueprints->empty()) blueprints->pop_back(); - } - } - } - - if (!found_fragment) - found_BP = std::move(*blueprints); - - return routing_handle_result{found, found_BP, match_params}; //Called after all the recursions have been done - } - - routing_handle_result find(const std::string& req_url) const - { - return find(req_url, head_); - } - - //This functions assumes any blueprint info passed is valid - void add(const std::string& url, uint16_t rule_index, unsigned bp_prefix_length = 0, uint16_t blueprint_index = INVALID_BP_ID) - { - auto idx = &head_; - - bool has_blueprint = bp_prefix_length != 0 && blueprint_index != INVALID_BP_ID; - - for (unsigned i = 0; i < url.size(); i++) - { - char c = url[i]; - if (c == '<') - { - static struct ParamTraits - { - ParamType type; - std::string name; - } paramTraits[] = - { - {ParamType::INT, ""}, - {ParamType::UINT, ""}, - {ParamType::DOUBLE, ""}, - {ParamType::DOUBLE, ""}, - {ParamType::STRING, ""}, - {ParamType::STRING, ""}, - {ParamType::PATH, ""}, - }; - - for (const auto& x : paramTraits) - { - if (url.compare(i, x.name.size(), x.name) == 0) - { - bool found = false; - for (auto& child : idx->children) - { - if (child.param == x.type) - { - idx = &child; - i += x.name.size(); - found = true; - break; - } - } - if (found) - break; - - auto new_node_idx = &idx->add_child_node(); - new_node_idx->param = x.type; - idx = new_node_idx; - i += x.name.size(); - break; - } - } - - i--; - } - else - { - //This part assumes the tree is unoptimized (every node has a max 1 character key) - bool piece_found = false; - for (auto& child : idx->children) - { - if (child.key[0] == c) - { - idx = &child; - piece_found = true; - break; - } - } - if (!piece_found) - { - auto new_node_idx = &idx->add_child_node(); - new_node_idx->key = c; - //The assumption here is that you'd only need to add a blueprint index if the tree didn't have the BP prefix. - if (has_blueprint && i == bp_prefix_length) - new_node_idx->blueprint_index = blueprint_index; - idx = new_node_idx; - } - } - } - - //check if the last node already has a value (exact url already in Trie) - if (idx->rule_index) - throw std::runtime_error("handler already exists for " + url); - idx->rule_index = rule_index; - } - - private: - Node head_; - }; - - /// A blueprint can be considered a smaller section of a Crow app, specifically where the router is conecerned. - - /// - /// You can use blueprints to assign a common prefix to rules' prefix, set custom static and template folders, and set a custom catchall route. - /// You can also assign nest blueprints for maximum Compartmentalization. - class Blueprint - { - public: - Blueprint(const std::string& prefix): - prefix_(prefix){}; - - Blueprint(const std::string& prefix, const std::string& static_dir): - prefix_(prefix), static_dir_(static_dir){}; - - Blueprint(const std::string& prefix, const std::string& static_dir, const std::string& templates_dir): - prefix_(prefix), static_dir_(static_dir), templates_dir_(templates_dir){}; - - /* - Blueprint(Blueprint& other) - { - prefix_ = std::move(other.prefix_); - all_rules_ = std::move(other.all_rules_); - } - - Blueprint(const Blueprint& other) - { - prefix_ = other.prefix_; - all_rules_ = other.all_rules_; - } -*/ - Blueprint(Blueprint&& value) - { - *this = std::move(value); - } - - Blueprint& operator=(const Blueprint& value) = delete; - - Blueprint& operator=(Blueprint&& value) noexcept - { - prefix_ = std::move(value.prefix_); - static_dir_ = std::move(value.static_dir_); - templates_dir_ = std::move(value.templates_dir_); - all_rules_ = std::move(value.all_rules_); - catchall_rule_ = std::move(value.catchall_rule_); - blueprints_ = std::move(value.blueprints_); - mw_indices_ = std::move(value.mw_indices_); - return *this; - } - - bool operator==(const Blueprint& value) - { - return value.prefix() == prefix_; - } - - bool operator!=(const Blueprint& value) - { - return value.prefix() != prefix_; - } - - std::string prefix() const - { - return prefix_; - } - - std::string static_dir() const - { - return static_dir_; - } - - void set_added() { - added_ = true; - } - - bool is_added() { - return added_; - } - - DynamicRule& new_rule_dynamic(const std::string& rule) - { - std::string new_rule = '/' + prefix_ + rule; - auto ruleObject = new DynamicRule(std::move(new_rule)); - ruleObject->custom_templates_base = templates_dir_; - all_rules_.emplace_back(ruleObject); - - return *ruleObject; - } - - template - typename black_magic::arguments::type::template rebind& new_rule_tagged(const std::string& rule) - { - std::string new_rule = '/' + prefix_ + rule; - using RuleT = typename black_magic::arguments::type::template rebind; - - auto ruleObject = new RuleT(std::move(new_rule)); - ruleObject->custom_templates_base = templates_dir_; - all_rules_.emplace_back(ruleObject); - - return *ruleObject; - } - - void register_blueprint(Blueprint& blueprint) - { - if (blueprints_.empty() || std::find(blueprints_.begin(), blueprints_.end(), &blueprint) == blueprints_.end()) - { - apply_blueprint(blueprint); - blueprints_.emplace_back(&blueprint); - } - else - throw std::runtime_error("blueprint \"" + blueprint.prefix_ + "\" already exists in blueprint \"" + prefix_ + '\"'); - } - - - CatchallRule& catchall_rule() - { - return catchall_rule_; - } - - template - void middlewares() - { - mw_indices_.push(); - } - - private: - void apply_blueprint(Blueprint& blueprint) - { - - blueprint.prefix_ = prefix_ + '/' + blueprint.prefix_; - blueprint.static_dir_ = static_dir_ + '/' + blueprint.static_dir_; - blueprint.templates_dir_ = templates_dir_ + '/' + blueprint.templates_dir_; - for (auto& rule : blueprint.all_rules_) - { - std::string new_rule = '/' + prefix_ + rule->rule_; - rule->rule_ = new_rule; - } - for (Blueprint* bp_child : blueprint.blueprints_) - { - Blueprint& bp_ref = *bp_child; - apply_blueprint(bp_ref); - } - } - - std::string prefix_; - std::string static_dir_; - std::string templates_dir_; - std::vector> all_rules_; - CatchallRule catchall_rule_; - std::vector blueprints_; - detail::middleware_indices mw_indices_; - bool added_{false}; - - friend class Router; - }; - - /// Handles matching requests to existing rules and upgrade requests. - class Router - { - public: - Router() - {} - - DynamicRule& new_rule_dynamic(const std::string& rule) - { - auto ruleObject = new DynamicRule(rule); - all_rules_.emplace_back(ruleObject); - - return *ruleObject; - } - - template - typename black_magic::arguments::type::template rebind& new_rule_tagged(const std::string& rule) - { - using RuleT = typename black_magic::arguments::type::template rebind; - - auto ruleObject = new RuleT(rule); - all_rules_.emplace_back(ruleObject); - - return *ruleObject; - } - - CatchallRule& catchall_rule() - { - return catchall_rule_; - } - - void internal_add_rule_object(const std::string& rule, BaseRule* ruleObject) - { - internal_add_rule_object(rule, ruleObject, INVALID_BP_ID, blueprints_); - } - - void internal_add_rule_object(const std::string& rule, BaseRule* ruleObject, const uint16_t& BP_index, std::vector& blueprints) - { - bool has_trailing_slash = false; - std::string rule_without_trailing_slash; - if (rule.size() > 1 && rule.back() == '/') - { - has_trailing_slash = true; - rule_without_trailing_slash = rule; - rule_without_trailing_slash.pop_back(); - } - - ruleObject->mw_indices_.pack(); - - ruleObject->foreach_method([&](int method) { - per_methods_[method].rules.emplace_back(ruleObject); - per_methods_[method].trie.add(rule, per_methods_[method].rules.size() - 1, BP_index != INVALID_BP_ID ? blueprints[BP_index]->prefix().length() : 0, BP_index); - - // directory case: - // request to '/about' url matches '/about/' rule - if (has_trailing_slash) - { - per_methods_[method].trie.add(rule_without_trailing_slash, RULE_SPECIAL_REDIRECT_SLASH, BP_index != INVALID_BP_ID ? blueprints[BP_index]->prefix().length() : 0, BP_index); - } - }); - - ruleObject->set_added(); - } - - void register_blueprint(Blueprint& blueprint) - { - if (std::find(blueprints_.begin(), blueprints_.end(), &blueprint) == blueprints_.end()) - { - blueprints_.emplace_back(&blueprint); - } - else - throw std::runtime_error("blueprint \"" + blueprint.prefix_ + "\" already exists in router"); - } - - void get_recursive_child_methods(Blueprint* blueprint, std::vector& methods) - { - //we only need to deal with children if the blueprint has absolutely no methods (meaning its index won't be added to the trie) - if (blueprint->static_dir_.empty() && blueprint->all_rules_.empty()) - { - for (Blueprint* bp : blueprint->blueprints_) - { - get_recursive_child_methods(bp, methods); - } - } - else if (!blueprint->static_dir_.empty()) - methods.emplace_back(HTTPMethod::Get); - for (auto& rule : blueprint->all_rules_) - { - rule->foreach_method([&methods](unsigned method) { - HTTPMethod method_final = static_cast(method); - if (std::find(methods.begin(), methods.end(), method_final) == methods.end()) - methods.emplace_back(method_final); - }); - } - } - - void validate_bp() { - //Take all the routes from the registered blueprints and add them to `all_rules_` to be processed. - detail::middleware_indices blueprint_mw; - validate_bp(blueprints_, blueprint_mw); - } - - void validate_bp(std::vector blueprints, detail::middleware_indices& current_mw) - { - for (unsigned i = 0; i < blueprints.size(); i++) - { - Blueprint* blueprint = blueprints[i]; - - if (blueprint->is_added()) continue; - - if (blueprint->static_dir_ == "" && blueprint->all_rules_.empty()) - { - std::vector methods; - get_recursive_child_methods(blueprint, methods); - for (HTTPMethod x : methods) - { - int i = static_cast(x); - per_methods_[i].trie.add(blueprint->prefix(), 0, blueprint->prefix().length(), i); - } - } - - current_mw.merge_back(blueprint->mw_indices_); - for (auto& rule : blueprint->all_rules_) - { - if (rule && !rule->is_added()) - { - auto upgraded = rule->upgrade(); - if (upgraded) - rule = std::move(upgraded); - rule->validate(); - rule->mw_indices_.merge_front(current_mw); - internal_add_rule_object(rule->rule(), rule.get(), i, blueprints); - } - } - validate_bp(blueprint->blueprints_, current_mw); - current_mw.pop_back(blueprint->mw_indices_); - blueprint->set_added(); - } - } - - void validate() - { - for (auto& rule : all_rules_) - { - if (rule && !rule->is_added()) - { - auto upgraded = rule->upgrade(); - if (upgraded) - rule = std::move(upgraded); - rule->validate(); - internal_add_rule_object(rule->rule(), rule.get()); - } - } - for (auto& per_method : per_methods_) - { - per_method.trie.validate(); - } - } - - // TODO maybe add actual_method - template - void handle_upgrade(const request& req, response& res, Adaptor&& adaptor) - { - if (req.method >= HTTPMethod::InternalMethodCount) - return; - - auto& per_method = per_methods_[static_cast(req.method)]; - auto& rules = per_method.rules; - unsigned rule_index = per_method.trie.find(req.url).rule_index; - - if (!rule_index) - { - for (auto& per_method : per_methods_) - { - if (per_method.trie.find(req.url).rule_index) - { - CROW_LOG_DEBUG << "Cannot match method " << req.url << " " << method_name(req.method); - res = response(405); - res.end(); - return; - } - } - - CROW_LOG_INFO << "Cannot match rules " << req.url; - res = response(404); - res.end(); - return; - } - - if (rule_index >= rules.size()) - throw std::runtime_error("Trie internal structure corrupted!"); - - if (rule_index == RULE_SPECIAL_REDIRECT_SLASH) - { - CROW_LOG_INFO << "Redirecting to a url with trailing slash: " << req.url; - res = response(301); - - // TODO(ipkn) absolute url building - if (req.get_header_value("Host").empty()) - { - res.add_header("Location", req.url + "/"); - } - else - { - res.add_header("Location", "http://" + req.get_header_value("Host") + req.url + "/"); - } - res.end(); - return; - } - - CROW_LOG_DEBUG << "Matched rule (upgrade) '" << rules[rule_index]->rule_ << "' " << static_cast(req.method) << " / " << rules[rule_index]->get_methods(); - - try - { - rules[rule_index]->handle_upgrade(req, res, std::move(adaptor)); - } - catch (...) - { - exception_handler_(res); - res.end(); - return; - } - } - - void get_found_bp(std::vector& bp_i, std::vector& blueprints, std::vector& found_bps, uint16_t index = 0) - { - // This statement makes 3 assertions: - // 1. The index is above 0. - // 2. The index does not lie outside the given blueprint list. - // 3. The next blueprint we're adding has a prefix that starts the same as the already added blueprint + a slash (the rest is irrelevant). - // - // This is done to prevent a blueprint that has a prefix of "bp_prefix2" to be assumed as a child of one that has "bp_prefix". - // - // If any of the assertions is untrue, we delete the last item added, and continue using the blueprint list of the blueprint found before, the topmost being the router's list - auto verify_prefix = [&bp_i, &index, &blueprints, &found_bps]() { - return index > 0 && - bp_i[index] < blueprints.size() && - blueprints[bp_i[index]]->prefix().substr(0, found_bps[index - 1]->prefix().length() + 1).compare(std::string(found_bps[index - 1]->prefix() + '/')) == 0; - }; - if (index < bp_i.size()) - { - - if (verify_prefix()) - { - found_bps.push_back(blueprints[bp_i[index]]); - get_found_bp(bp_i, found_bps.back()->blueprints_, found_bps, ++index); - } - else - { - if (found_bps.size() < 2) - { - found_bps.clear(); - found_bps.push_back(blueprints_[bp_i[index]]); - } - else - { - found_bps.pop_back(); - Blueprint* last_element = found_bps.back(); - found_bps.push_back(last_element->blueprints_[bp_i[index]]); - } - get_found_bp(bp_i, found_bps.back()->blueprints_, found_bps, ++index); - } - } - } - - /// Is used to handle errors, you insert the error code, found route, request, and response. and it'll either call the appropriate catchall route (considering the blueprint system) and send you a status string (which is mainly used for debug messages), or just set the response code to the proper error code. - std::string get_error(unsigned short code, routing_handle_result& found, const request& req, response& res) - { - res.code = code; - std::vector bps_found; - get_found_bp(found.blueprint_indices, blueprints_, bps_found); - for (int i = bps_found.size() - 1; i > 0; i--) - { - std::vector bpi = found.blueprint_indices; - if (bps_found[i]->catchall_rule().has_handler()) - { - try - { - bps_found[i]->catchall_rule().handler_(req, res); - } - catch (...) - { - exception_handler_(res); - } -#ifdef CROW_ENABLE_DEBUG - return std::string("Redirected to Blueprint \"" + bps_found[i]->prefix() + "\" Catchall rule"); -#else - return std::string(); -#endif - } - } - if (catchall_rule_.has_handler()) - { - try - { - catchall_rule_.handler_(req, res); - } - catch (...) - { - exception_handler_(res); - } -#ifdef CROW_ENABLE_DEBUG - return std::string("Redirected to global Catchall rule"); -#else - return std::string(); -#endif - } - return std::string(); - } - - std::unique_ptr handle_initial(request& req, response& res) - { - HTTPMethod method_actual = req.method; - - std::unique_ptr found{ - new routing_handle_result( - 0, - std::vector(), - routing_params(), - HTTPMethod::InternalMethodCount)}; // This is always returned to avoid a null pointer dereference. - - // NOTE(EDev): This most likely will never run since the parser should handle this situation and close the connection before it gets here. - if (CROW_UNLIKELY(req.method >= HTTPMethod::InternalMethodCount)) - return found; - else if (req.method == HTTPMethod::Head) - { - *found = per_methods_[static_cast(method_actual)].trie.find(req.url); - // support HEAD requests using GET if not defined as method for the requested URL - if (!found->rule_index) - { - method_actual = HTTPMethod::Get; - *found = per_methods_[static_cast(method_actual)].trie.find(req.url); - if (!found->rule_index) // If a route is still not found, return a 404 without executing the rest of the HEAD specific code. - { - CROW_LOG_DEBUG << "Cannot match rules " << req.url; - res = response(404); //TODO(EDev): Should this redirect to catchall? - res.end(); - return found; - } - } - - res.skip_body = true; - found->method = method_actual; - return found; - } - else if (req.method == HTTPMethod::Options) - { - std::string allow = "OPTIONS, HEAD, "; - - if (req.url == "/*") - { - for (int i = 0; i < static_cast(HTTPMethod::InternalMethodCount); i++) - { - if (static_cast(HTTPMethod::Head) == i) - continue; // HEAD is always allowed - - if (!per_methods_[i].trie.is_empty()) - { - allow += method_name(static_cast(i)) + ", "; - } - } - allow = allow.substr(0, allow.size() - 2); - res = response(204); - res.set_header("Allow", allow); - res.end(); - found->method = method_actual; - return found; - } - else - { - bool rules_matched = false; - for (int i = 0; i < static_cast(HTTPMethod::InternalMethodCount); i++) - { - if (per_methods_[i].trie.find(req.url).rule_index) - { - rules_matched = true; - - if (static_cast(HTTPMethod::Head) == i) - continue; // HEAD is always allowed - - allow += method_name(static_cast(i)) + ", "; - } - } - if (rules_matched) - { - allow = allow.substr(0, allow.size() - 2); - res = response(204); - res.set_header("Allow", allow); - res.end(); - found->method = method_actual; - return found; - } - else - { - CROW_LOG_DEBUG << "Cannot match rules " << req.url; - res = response(404); //TODO(EDev): Should this redirect to catchall? - res.end(); - return found; - } - } - } - else // Every request that isn't a HEAD or OPTIONS request - { - *found = per_methods_[static_cast(method_actual)].trie.find(req.url); - // TODO(EDev): maybe ending the else here would allow the requests coming from above (after removing the return statement) to be checked on whether they actually point to a route - if (!found->rule_index) - { - for (auto& per_method : per_methods_) - { - if (per_method.trie.find(req.url).rule_index) //Route found, but in another method - { - const std::string error_message(get_error(405, *found, req, res)); - CROW_LOG_DEBUG << "Cannot match method " << req.url << " " << method_name(method_actual) << ". " << error_message; - res.end(); - return found; - } - } - //Route does not exist anywhere - - const std::string error_message(get_error(404, *found, req, res)); - CROW_LOG_DEBUG << "Cannot match rules " << req.url << ". " << error_message; - res.end(); - return found; - } - - found->method = method_actual; - return found; - } - } - - template - void handle(request& req, response& res, routing_handle_result found) - { - HTTPMethod method_actual = found.method; - auto& rules = per_methods_[static_cast(method_actual)].rules; - unsigned rule_index = found.rule_index; - - if (rule_index >= rules.size()) - throw std::runtime_error("Trie internal structure corrupted!"); - - if (rule_index == RULE_SPECIAL_REDIRECT_SLASH) - { - CROW_LOG_INFO << "Redirecting to a url with trailing slash: " << req.url; - res = response(301); - - // TODO(ipkn) absolute url building - if (req.get_header_value("Host").empty()) - { - res.add_header("Location", req.url + "/"); - } - else - { - res.add_header("Location", "http://" + req.get_header_value("Host") + req.url + "/"); - } - res.end(); - return; - } - - CROW_LOG_DEBUG << "Matched rule '" << rules[rule_index]->rule_ << "' " << static_cast(req.method) << " / " << rules[rule_index]->get_methods(); - - try - { - auto& rule = rules[rule_index]; - handle_rule(rule, req, res, found.r_params); - } - catch (...) - { - exception_handler_(res); - res.end(); - return; - } - } - - template - typename std::enable_if::value != 0, void>::type - handle_rule(BaseRule* rule, crow::request& req, crow::response& res, const crow::routing_params& rp) - { - if (!rule->mw_indices_.empty()) - { - auto& ctx = *reinterpret_cast(req.middleware_context); - auto& container = *reinterpret_cast(req.middleware_container); - detail::middleware_call_criteria_dynamic crit_fwd(rule->mw_indices_.indices()); - - auto glob_completion_handler = std::move(res.complete_request_handler_); - res.complete_request_handler_ = [] {}; - - detail::middleware_call_helper(crit_fwd, container, req, res, ctx); - - if (res.completed_) - { - glob_completion_handler(); - return; - } - - res.complete_request_handler_ = [&rule, &ctx, &container, &req, &res, glob_completion_handler] { - detail::middleware_call_criteria_dynamic crit_bwd(rule->mw_indices_.indices()); - - detail::after_handlers_call_helper< - decltype(crit_bwd), - std::tuple_size::value - 1, - typename App::context_t, - typename App::mw_container_t>(crit_bwd, container, ctx, req, res); - glob_completion_handler(); - }; - } - rule->handle(req, res, rp); - } - - template - typename std::enable_if::value == 0, void>::type - handle_rule(BaseRule* rule, crow::request& req, crow::response& res, const crow::routing_params& rp) - { - rule->handle(req, res, rp); - } - - void debug_print() - { - for (int i = 0; i < static_cast(HTTPMethod::InternalMethodCount); i++) - { - Trie& trie_ = per_methods_[i].trie; - if (!trie_.is_empty()) - { - CROW_LOG_DEBUG << method_name(static_cast(i)); - trie_.debug_print(); - } - } - } - - std::vector& blueprints() - { - return blueprints_; - } - - std::function& exception_handler() - { - return exception_handler_; - } - - static void default_exception_handler(response& res) - { - // any uncaught exceptions become 500s - res = response(500); - - try - { - throw; - } - catch (const std::exception& e) - { - CROW_LOG_ERROR << "An uncaught exception occurred: " << e.what(); - } - catch (...) - { - CROW_LOG_ERROR << "An uncaught exception occurred. The type was unknown so no information was available."; - } - } - - private: - CatchallRule catchall_rule_; - - struct PerMethod - { - std::vector rules; - Trie trie; - - // rule index 0, 1 has special meaning; preallocate it to avoid duplication. - PerMethod(): - rules(2) {} - }; - std::array(HTTPMethod::InternalMethodCount)> per_methods_; - std::vector> all_rules_; - std::vector blueprints_; - std::function exception_handler_ = &default_exception_handler; - }; -} // namespace crow - - -namespace crow -{ - struct CORSHandler; - - /// Used for tuning CORS policies - struct CORSRules - { - friend struct crow::CORSHandler; - - /// Set Access-Control-Allow-Origin. Default is "*" - CORSRules& origin(const std::string& origin) - { - origin_ = origin; - return *this; - } - - /// Set Access-Control-Allow-Methods. Default is "*" - CORSRules& methods(crow::HTTPMethod method) - { - add_list_item(methods_, crow::method_name(method)); - return *this; - } - - /// Set Access-Control-Allow-Methods. Default is "*" - template - CORSRules& methods(crow::HTTPMethod method, Methods... method_list) - { - add_list_item(methods_, crow::method_name(method)); - methods(method_list...); - return *this; - } - - /// Set Access-Control-Allow-Headers. Default is "*" - CORSRules& headers(const std::string& header) - { - add_list_item(headers_, header); - return *this; - } - - /// Set Access-Control-Allow-Headers. Default is "*" - template - CORSRules& headers(const std::string& header, Headers... header_list) - { - add_list_item(headers_, header); - headers(header_list...); - return *this; - } - - /// Set Access-Control-Max-Age. Default is none - CORSRules& max_age(int max_age) - { - max_age_ = std::to_string(max_age); - return *this; - } - - /// Enable Access-Control-Allow-Credentials - CORSRules& allow_credentials() - { - allow_credentials_ = true; - return *this; - } - - /// Ignore CORS and don't send any headers - void ignore() - { - ignore_ = true; - } - - /// Handle CORS on specific prefix path - CORSRules& prefix(const std::string& prefix); - - /// Handle CORS for specific blueprint - CORSRules& blueprint(const Blueprint& bp); - - /// Global CORS policy - CORSRules& global(); - - private: - CORSRules() = delete; - CORSRules(CORSHandler* handler): - handler_(handler) {} - - /// build comma separated list - void add_list_item(std::string& list, const std::string& val) - { - if (list == "*") list = ""; - if (list.size() > 0) list += ", "; - list += val; - } - - /// Set header `key` to `value` if it is not set - void set_header_no_override(const std::string& key, const std::string& value, crow::response& res) - { - if (value.size() == 0) return; - if (!get_header_value(res.headers, key).empty()) return; - res.add_header(key, value); - } - - /// Set response headers - void apply(crow::response& res) - { - if (ignore_) return; - set_header_no_override("Access-Control-Allow-Origin", origin_, res); - set_header_no_override("Access-Control-Allow-Methods", methods_, res); - set_header_no_override("Access-Control-Allow-Headers", headers_, res); - set_header_no_override("Access-Control-Max-Age", max_age_, res); - if (allow_credentials_) set_header_no_override("Access-Control-Allow-Credentials", "true", res); - } - - bool ignore_ = false; - // TODO: support multiple origins that are dynamically selected - std::string origin_ = "*"; - std::string methods_ = "*"; - std::string headers_ = "*"; - std::string max_age_; - bool allow_credentials_ = false; - - CORSHandler* handler_; - }; - - /// CORSHandler is a global middleware for setting CORS headers. - - /// - /// By default, it sets Access-Control-Allow-Origin/Methods/Headers to "*". - /// The default behaviour can be changed with the `global()` cors rule. - /// Additional rules for prexies can be added with `prefix()`. - struct CORSHandler - { - struct context - {}; - - void before_handle(crow::request& /*req*/, crow::response& /*res*/, context& /*ctx*/) - {} - - void after_handle(crow::request& req, crow::response& res, context& /*ctx*/) - { - auto& rule = find_rule(req.url); - rule.apply(res); - } - - /// Handle CORS on a specific prefix path - CORSRules& prefix(const std::string& prefix) - { - rules.emplace_back(prefix, CORSRules(this)); - return rules.back().second; - } - - /// Handle CORS for a specific blueprint - CORSRules& blueprint(const Blueprint& bp) - { - rules.emplace_back(bp.prefix(), CORSRules(this)); - return rules.back().second; - } - - /// Get the global CORS policy - CORSRules& global() - { - return default_; - } - - private: - CORSRules& find_rule(const std::string& path) - { - // TODO: use a trie in case of many rules - for (auto& rule : rules) - { - // Check if path starts with a rules prefix - if (path.rfind(rule.first, 0) == 0) - { - return rule.second; - } - } - return default_; - } - - std::vector> rules; - CORSRules default_ = CORSRules(this); - }; - - inline CORSRules& CORSRules::prefix(const std::string& prefix) - { - return handler_->prefix(prefix); - } - - inline CORSRules& CORSRules::blueprint(const Blueprint& bp) - { - return handler_->blueprint(bp); - } - - inline CORSRules& CORSRules::global() - { - return handler_->global(); - } - -} // namespace crow - -/** - * \file crow/app.h - * \brief This file includes the definition of the crow::Crow class, - * the crow::App and crow::SimpleApp aliases, and some macros. - * - * In this file are defined: - * - crow::Crow - * - crow::App - * - crow::SimpleApp - * - \ref CROW_ROUTE - * - \ref CROW_BP_ROUTE - * - \ref CROW_WEBSOCKET_ROUTE - * - \ref CROW_MIDDLEWARES - * - \ref CROW_CATCHALL_ROUTE - * - \ref CROW_BP_CATCHALL_ROUTE - */ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef CROW_ENABLE_COMPRESSION -#endif // #ifdef CROW_ENABLE_COMPRESSION - - -#ifdef CROW_MSVC_WORKAROUND - -#define CROW_ROUTE(app, url) app.route_dynamic(url) // See the documentation in the comment below. -#define CROW_BP_ROUTE(blueprint, url) blueprint.new_rule_dynamic(url) // See the documentation in the comment below. - -#else // #ifdef CROW_MSVC_WORKAROUND - -/** - * \def CROW_ROUTE(app, url) - * \brief Creates a route for app using a rule. - * - * It use crow::Crow::route_dynamic or crow::Crow::route to define - * a rule for your application. It's usage is like this: - * - * ```cpp - * auto app = crow::SimpleApp(); // or crow::App() - * CROW_ROUTE(app, "/") - * ([](){ - * return "

Hello, world!

"; - * }); - * ``` - * - * This is the recommended way to define routes in a crow application. - * \see [Page of guide "Routes"](https://crowcpp.org/master/guides/routes/). - */ -#define CROW_ROUTE(app, url) app.template route(url) - -/** - * \def CROW_BP_ROUTE(blueprint, url) - * \brief Creates a route for a blueprint using a rule. - * - * It may use crow::Blueprint::new_rule_dynamic or - * crow::Blueprint::new_rule_tagged to define a new rule for - * an given blueprint. It's usage is similar - * to CROW_ROUTE macro: - * - * ```cpp - * crow::Blueprint my_bp(); - * CROW_BP_ROUTE(my_bp, "/") - * ([](){ - * return "

Hello, world!

"; - * }); - * ``` - * - * This is the recommended way to define routes in a crow blueprint - * because of its compile-time capabilities. - * - * \see [Page of the guide "Blueprints"](https://crowcpp.org/master/guides/blueprints/). - */ -#define CROW_BP_ROUTE(blueprint, url) blueprint.new_rule_tagged(url) - -/** - * \def CROW_WEBSOCKET_ROUTE(app, url) - * \brief Defines WebSocket route for app. - * - * It binds a WebSocket route to app. Easy solution to implement - * WebSockets in your app. The usage syntax of this macro is - * like this: - * - * ```cpp - * auto app = crow::SimpleApp(); // or crow::App() - * CROW_WEBSOCKET_ROUTE(app, "/ws") - * .onopen([&](crow::websocket::connection& conn){ - * do_something(); - * }) - * .onclose([&](crow::websocket::connection& conn, const std::string& reason){ - * do_something(); - * }) - * .onmessage([&](crow::websocket::connection&, const std::string& data, bool is_binary){ - * if (is_binary) - * do_something(data); - * else - * do_something_else(data); - * }); - * ``` - * - * \see [Page of the guide "WebSockets"](https://crowcpp.org/master/guides/websockets/). - */ -#define CROW_WEBSOCKET_ROUTE(app, url) app.route(url).websocket::type>(&app) - -/** - * \def CROW_MIDDLEWARES(app, ...) - * \brief Enable a Middleware for an specific route in app - * or blueprint. - * - * It defines the usage of a Middleware in one route. And it - * can be used in both crow::SimpleApp (and crow::App) instances and - * crow::Blueprint. Its usage syntax is like this: - * - * ```cpp - * auto app = crow::SimpleApp(); // or crow::App() - * CROW_ROUTE(app, "/with_middleware") - * .CROW_MIDDLEWARES(app, LocalMiddleware) // Can be used more than one - * ([]() { // middleware. - * return "Hello world!"; - * }); - * ``` - * - * \see [Page of the guide "Middlewares"](https://crowcpp.org/master/guides/middleware/). - */ -#define CROW_MIDDLEWARES(app, ...) template middlewares::type, __VA_ARGS__>() - -#endif // #ifdef CROW_MSVC_WORKAROUND - -/** - * \def CROW_CATCHALL_ROUTE(app) - * \brief Defines a custom catchall route for app using a - * custom rule. - * - * It defines a handler when the client make a request for an - * undefined route. Instead of just reply with a `404` status - * code (default behavior), you can define a custom handler - * using this macro. - * - * \see [Page of the guide "Routes" (Catchall routes)](https://crowcpp.org/master/guides/routes/#catchall-routes). - */ -#define CROW_CATCHALL_ROUTE(app) app.catchall_route() - -/** - * \def CROW_BP_CATCHALL_ROUTE(blueprint) - * \brief Defines a custom catchall route for blueprint - * using a custom rule. - * - * It defines a handler when the client make a request for an - * undefined route in the blueprint. - * - * \see [Page of the guide "Blueprint" (Define a custom Catchall route)](https://crowcpp.org/master/guides/blueprints/#define-a-custom-catchall-route). - */ -#define CROW_BP_CATCHALL_ROUTE(blueprint) blueprint.catchall_rule() - - -/** - * \namespace crow - * \brief The main namespace of the library. In this namespace - * is defined the most important classes and functions of the - * library. - * - * Within this namespace, the Crow class, Router class, Connection - * class, and other are defined. - */ -namespace crow -{ -#ifdef CROW_ENABLE_SSL - using ssl_context_t = asio::ssl::context; -#endif - /** - * \class Crow - * \brief The main server application class. - * - * Use crow::SimpleApp or crow::App instead of - * directly instantiate this class. - */ - template - class Crow - { - public: - /// \brief This is the crow application - using self_t = Crow; - - /// \brief The HTTP server - using server_t = Server; - -#ifdef CROW_ENABLE_SSL - /// \brief An HTTP server that runs on SSL with an SSLAdaptor - using ssl_server_t = Server; -#endif - Crow() - {} - - /// \brief Construct Crow with a subset of middleware - template - Crow(Ts&&... ts): - middlewares_(make_middleware_tuple(std::forward(ts)...)) - {} - - /// \brief Process an Upgrade request - /// - /// Currently used to upgrade an HTTP connection to a WebSocket connection - template - void handle_upgrade(const request& req, response& res, Adaptor&& adaptor) - { - router_.handle_upgrade(req, res, adaptor); - } - - /// \brief Process only the method and URL of a request and provide a route (or an error response) - std::unique_ptr handle_initial(request& req, response& res) - { - return router_.handle_initial(req, res); - } - - /// \brief Process the fully parsed request and generate a response for it - void handle(request& req, response& res, std::unique_ptr& found) - { - router_.handle(req, res, *found); - } - - /// \brief Process a fully parsed request from start to finish (primarily used for debugging) - void handle_full(request& req, response& res) - { - auto found = handle_initial(req, res); - if (found->rule_index) - handle(req, res, found); - } - - /// \brief Create a dynamic route using a rule (**Use CROW_ROUTE instead**) - DynamicRule& route_dynamic(const std::string& rule) - { - return router_.new_rule_dynamic(rule); - } - - /// \brief Create a route using a rule (**Use CROW_ROUTE instead**) - template -#ifdef CROW_GCC83_WORKAROUND - auto& route(const std::string& rule) -#else - auto route(const std::string& rule) -#endif -#if defined CROW_CAN_USE_CPP17 && !defined CROW_GCC83_WORKAROUND - -> typename std::invoke_result), Router, const std::string&>::type -#elif !defined CROW_GCC83_WORKAROUND - -> typename std::result_of)(Router, const std::string&)>::type -#endif - { - return router_.new_rule_tagged(rule); - } - - /// \brief Create a route for any requests without a proper route (**Use CROW_CATCHALL_ROUTE instead**) - CatchallRule& catchall_route() - { - return router_.catchall_rule(); - } - - /// \brief Set the default max payload size for websockets - self_t& websocket_max_payload(uint64_t max_payload) - { - max_payload_ = max_payload; - return *this; - } - - /// \brief Get the default max payload size for websockets - uint64_t websocket_max_payload() - { - return max_payload_; - } - - self_t& signal_clear() - { - signals_.clear(); - return *this; - } - - self_t& signal_add(int signal_number) - { - signals_.push_back(signal_number); - return *this; - } - - std::vector signals() - { - return signals_; - } - - /// \brief Set the port that Crow will handle requests on - self_t& port(std::uint16_t port) - { - port_ = port; - return *this; - } - - /// \brief Get the port that Crow will handle requests on - std::uint16_t port() - { - return port_; - } - - /// \brief Set the connection timeout in seconds (default is 5) - self_t& timeout(std::uint8_t timeout) - { - timeout_ = timeout; - return *this; - } - - /// \brief Set the server name - self_t& server_name(std::string server_name) - { - server_name_ = server_name; - return *this; - } - - /// \brief The IP address that Crow will handle requests on (default is 0.0.0.0) - self_t& bindaddr(std::string bindaddr) - { - bindaddr_ = bindaddr; - return *this; - } - - /// \brief Get the address that Crow will handle requests on - std::string bindaddr() - { - return bindaddr_; - } - - /// \brief Run the server on multiple threads using all available threads - self_t& multithreaded() - { - return concurrency(std::thread::hardware_concurrency()); - } - - /// \brief Run the server on multiple threads using a specific number - self_t& concurrency(std::uint16_t concurrency) - { - if (concurrency < 2) // Crow can have a minimum of 2 threads running - concurrency = 2; - concurrency_ = concurrency; - return *this; - } - - /// \brief Get the number of threads that server is using - std::uint16_t concurrency() - { - return concurrency_; - } - - /// \brief Set the server's log level - /// - /// Possible values are: - /// - crow::LogLevel::Debug (0) - /// - crow::LogLevel::Info (1) - /// - crow::LogLevel::Warning (2) - /// - crow::LogLevel::Error (3) - /// - crow::LogLevel::Critical (4) - self_t& loglevel(LogLevel level) - { - crow::logger::setLogLevel(level); - return *this; - } - - /// \brief Set the response body size (in bytes) beyond which Crow automatically streams responses (Default is 1MiB) - /// - /// Any streamed response is unaffected by Crow's timer, and therefore won't timeout before a response is fully sent. - self_t& stream_threshold(size_t threshold) - { - res_stream_threshold_ = threshold; - return *this; - } - - /// \brief Get the response body size (in bytes) beyond which Crow automatically streams responses - size_t& stream_threshold() - { - return res_stream_threshold_; - } - - - self_t& register_blueprint(Blueprint& blueprint) - { - router_.register_blueprint(blueprint); - return *this; - } - - /// \brief Set the function to call to handle uncaught exceptions generated in routes (Default generates error 500). - /// - /// The function must have the following signature: void(crow::response&). - /// It must set the response passed in argument to the function, which will be sent back to the client. - /// See Router::default_exception_handler() for the default implementation. - template - self_t& exception_handler(Func&& f) - { - router_.exception_handler() = std::forward(f); - return *this; - } - - std::function& exception_handler() - { - return router_.exception_handler(); - } - - /// \brief Set a custom duration and function to run on every tick - template - self_t& tick(Duration d, Func f) - { - tick_interval_ = std::chrono::duration_cast(d); - tick_function_ = f; - return *this; - } - -#ifdef CROW_ENABLE_COMPRESSION - - self_t& use_compression(compression::algorithm algorithm) - { - comp_algorithm_ = algorithm; - compression_used_ = true; - return *this; - } - - compression::algorithm compression_algorithm() - { - return comp_algorithm_; - } - - bool compression_used() const - { - return compression_used_; - } -#endif - - /// \brief Apply blueprints - void add_blueprint() - { -#if defined(__APPLE__) || defined(__MACH__) - if (router_.blueprints().empty()) return; -#endif - - for (Blueprint* bp : router_.blueprints()) - { - if (bp->static_dir().empty()) continue; - - auto static_dir_ = crow::utility::normalize_path(bp->static_dir()); - - bp->new_rule_tagged(CROW_STATIC_ENDPOINT)([static_dir_](crow::response& res, std::string file_path_partial) { - utility::sanitize_filename(file_path_partial); - res.set_static_file_info_unsafe(static_dir_ + file_path_partial); - res.end(); - }); - } - - router_.validate_bp(); - } - - /// \brief Go through the rules, upgrade them if possible, and add them to the list of rules - void add_static_dir() - { - if (are_static_routes_added()) return; - auto static_dir_ = crow::utility::normalize_path(CROW_STATIC_DIRECTORY); - - route(CROW_STATIC_ENDPOINT)([static_dir_](crow::response& res, std::string file_path_partial) { - utility::sanitize_filename(file_path_partial); - res.set_static_file_info_unsafe(static_dir_ + file_path_partial); - res.end(); - }); - set_static_routes_added(); - } - - /// \brief A wrapper for `validate()` in the router - void validate() - { - router_.validate(); - } - - /// \brief Run the server - void run() - { -#ifndef CROW_DISABLE_STATIC_DIR - add_blueprint(); - add_static_dir(); -#endif - validate(); - -#ifdef CROW_ENABLE_SSL - if (ssl_used_) - { - ssl_server_ = std::move(std::unique_ptr(new ssl_server_t(this, bindaddr_, port_, server_name_, &middlewares_, concurrency_, timeout_, &ssl_context_))); - ssl_server_->set_tick_function(tick_interval_, tick_function_); - ssl_server_->signal_clear(); - for (auto snum : signals_) - { - ssl_server_->signal_add(snum); - } - notify_server_start(); - ssl_server_->run(); - } - else -#endif - { - server_ = std::move(std::unique_ptr(new server_t(this, bindaddr_, port_, server_name_, &middlewares_, concurrency_, timeout_, nullptr))); - server_->set_tick_function(tick_interval_, tick_function_); - for (auto snum : signals_) - { - server_->signal_add(snum); - } - notify_server_start(); - server_->run(); - } - } - - /// \brief Non-blocking version of \ref run() - /// - /// The output from this method needs to be saved into a variable! - /// Otherwise the call will be made on the same thread. - std::future run_async() - { - return std::async(std::launch::async, [&] { - this->run(); - }); - } - - /// \brief Stop the server - void stop() - { -#ifdef CROW_ENABLE_SSL - if (ssl_used_) - { - if (ssl_server_) { ssl_server_->stop(); } - } - else -#endif - { - // TODO(EDev): Move these 6 lines to a method in http_server. - std::vector websockets_to_close = websockets_; - for (auto websocket : websockets_to_close) - { - CROW_LOG_INFO << "Quitting Websocket: " << websocket; - websocket->close("Server Application Terminated"); - } - if (server_) { server_->stop(); } - } - } - - void add_websocket(crow::websocket::connection* conn) - { - websockets_.push_back(conn); - } - - void remove_websocket(crow::websocket::connection* conn) - { - websockets_.erase(std::remove(websockets_.begin(), websockets_.end(), conn), websockets_.end()); - } - - /// \brief Print the routing paths defined for each HTTP method - void debug_print() - { - CROW_LOG_DEBUG << "Routing:"; - router_.debug_print(); - } - - -#ifdef CROW_ENABLE_SSL - - /// \brief Use certificate and key files for SSL - self_t& ssl_file(const std::string& crt_filename, const std::string& key_filename) - { - ssl_used_ = true; - ssl_context_.set_verify_mode(asio::ssl::verify_peer); - ssl_context_.set_verify_mode(asio::ssl::verify_client_once); - ssl_context_.use_certificate_file(crt_filename, ssl_context_t::pem); - ssl_context_.use_private_key_file(key_filename, ssl_context_t::pem); - ssl_context_.set_options( - asio::ssl::context::default_workarounds | asio::ssl::context::no_sslv2 | asio::ssl::context::no_sslv3); - return *this; - } - - /// \brief Use `.pem` file for SSL - self_t& ssl_file(const std::string& pem_filename) - { - ssl_used_ = true; - ssl_context_.set_verify_mode(asio::ssl::verify_peer); - ssl_context_.set_verify_mode(asio::ssl::verify_client_once); - ssl_context_.load_verify_file(pem_filename); - ssl_context_.set_options( - asio::ssl::context::default_workarounds | asio::ssl::context::no_sslv2 | asio::ssl::context::no_sslv3); - return *this; - } - - /// \brief Use certificate chain and key files for SSL - self_t& ssl_chainfile(const std::string& crt_filename, const std::string& key_filename) - { - ssl_used_ = true; - ssl_context_.set_verify_mode(asio::ssl::verify_peer); - ssl_context_.set_verify_mode(asio::ssl::verify_client_once); - ssl_context_.use_certificate_chain_file(crt_filename); - ssl_context_.use_private_key_file(key_filename, ssl_context_t::pem); - ssl_context_.set_options( - asio::ssl::context::default_workarounds | asio::ssl::context::no_sslv2 | asio::ssl::context::no_sslv3); - return *this; - } - - self_t& ssl(asio::ssl::context&& ctx) - { - ssl_used_ = true; - ssl_context_ = std::move(ctx); - return *this; - } - - bool ssl_used() const - { - return ssl_used_; - } -#else - - template - self_t& ssl_file(T&&, Remain&&...) - { - // We can't call .ssl() member function unless CROW_ENABLE_SSL is defined. - static_assert( - // make static_assert dependent to T; always false - std::is_base_of::value, - "Define CROW_ENABLE_SSL to enable ssl support."); - return *this; - } - - template - self_t& ssl_chainfile(T&&, Remain&&...) - { - // We can't call .ssl() member function unless CROW_ENABLE_SSL is defined. - static_assert( - // make static_assert dependent to T; always false - std::is_base_of::value, - "Define CROW_ENABLE_SSL to enable ssl support."); - return *this; - } - - template - self_t& ssl(T&&) - { - // We can't call .ssl() member function unless CROW_ENABLE_SSL is defined. - static_assert( - // make static_assert dependent to T; always false - std::is_base_of::value, - "Define CROW_ENABLE_SSL to enable ssl support."); - return *this; - } - - bool ssl_used() const - { - return false; - } -#endif - - // middleware - using context_t = detail::context; - using mw_container_t = std::tuple; - template - typename T::context& get_context(const request& req) - { - static_assert(black_magic::contains::value, "App doesn't have the specified middleware type."); - auto& ctx = *reinterpret_cast(req.middleware_context); - return ctx.template get(); - } - - template - T& get_middleware() - { - return utility::get_element_by_type(middlewares_); - } - - /// \brief Wait until the server has properly started - void wait_for_server_start() - { - { - std::unique_lock lock(start_mutex_); - if (!server_started_) - cv_started_.wait(lock); - } - if (server_) - server_->wait_for_start(); -#ifdef CROW_ENABLE_SSL - else if (ssl_server_) - ssl_server_->wait_for_start(); -#endif - } - - private: - template - std::tuple make_middleware_tuple(Ts&&... ts) - { - auto fwd = std::forward_as_tuple((ts)...); - return std::make_tuple( - std::forward( - black_magic::tuple_extract(fwd))...); - } - - /// \brief Notify anything using \ref wait_for_server_start() to proceed - void notify_server_start() - { - std::unique_lock lock(start_mutex_); - server_started_ = true; - cv_started_.notify_all(); - } - - void set_static_routes_added() { - static_routes_added_ = true; - } - - bool are_static_routes_added() { - return static_routes_added_; - } - - private: - std::uint8_t timeout_{5}; - uint16_t port_ = 80; - uint16_t concurrency_ = 2; - uint64_t max_payload_{UINT64_MAX}; - std::string server_name_ = std::string("Crow/") + VERSION; - std::string bindaddr_ = "0.0.0.0"; - size_t res_stream_threshold_ = 1048576; - Router router_; - bool static_routes_added_{false}; - -#ifdef CROW_ENABLE_COMPRESSION - compression::algorithm comp_algorithm_; - bool compression_used_{false}; -#endif - - std::chrono::milliseconds tick_interval_; - std::function tick_function_; - - std::tuple middlewares_; - -#ifdef CROW_ENABLE_SSL - std::unique_ptr ssl_server_; - bool ssl_used_{false}; - ssl_context_t ssl_context_{asio::ssl::context::sslv23}; -#endif - - std::unique_ptr server_; - - std::vector signals_{SIGINT, SIGTERM}; - - bool server_started_{false}; - std::condition_variable cv_started_; - std::mutex start_mutex_; - std::vector websockets_; - }; - - /// \brief Alias of Crow. Useful if you want - /// a instance of an Crow application that require Middlewares - template - using App = Crow; - - /// \brief Alias of Crow<>. Useful if you want a instance of - /// an Crow application that doesn't require of Middlewares - using SimpleApp = Crow<>; -} // namespace crow - diff --git a/libs/cpp-httplib/benchmark/crow/main.cpp b/libs/cpp-httplib/benchmark/crow/main.cpp deleted file mode 100644 index 034cf78..0000000 --- a/libs/cpp-httplib/benchmark/crow/main.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include "crow_all.h" - -class CustomLogger : public crow::ILogHandler { -public: - void log(std::string, crow::LogLevel) {} -}; - -int main() { - CustomLogger logger; - crow::logger::setHandler(&logger); - - crow::SimpleApp app; - - CROW_ROUTE(app, "/")([]() { return "Hello world!"; }); - - app.port(8080).multithreaded().run(); -} diff --git a/libs/cpp-httplib/cmake/FindBrotli.cmake b/libs/cpp-httplib/cmake/FindBrotli.cmake deleted file mode 100644 index 2048e55..0000000 --- a/libs/cpp-httplib/cmake/FindBrotli.cmake +++ /dev/null @@ -1,168 +0,0 @@ -# A simple FindBrotli package for Cmake's find_package function. -# Note: This find package doesn't have version support, as the version file doesn't seem to be installed on most systems. -# -# If you want to find the static packages instead of shared (the default), define BROTLI_USE_STATIC_LIBS as TRUE. -# The targets will have the same names, but it will use the static libs. -# -# Valid find_package COMPONENTS names: "decoder", "encoder", and "common" -# Note that if you're requiring "decoder" or "encoder", then "common" will be automatically added as required. -# -# Defines the libraries (if found): Brotli::decoder, Brotli::encoder, Brotli::common -# and the includes path variable: Brotli_INCLUDE_DIR -# -# If it's failing to find the libraries, try setting BROTLI_ROOT_DIR to the folder containing your library & include dir. - -# If they asked for a specific version, warn/fail since we don't support it. -# TODO: if they start distributing the version somewhere, implement finding it. -# See https://github.com/google/brotli/issues/773#issuecomment-579133187 -if(Brotli_FIND_VERSION) - set(_brotli_version_error_msg "FindBrotli.cmake doesn't have version support!") - # If the package is required, throw a fatal error - # Otherwise, if not running quietly, we throw a warning - if(Brotli_FIND_REQUIRED) - message(FATAL_ERROR "${_brotli_version_error_msg}") - elseif(NOT Brotli_FIND_QUIETLY) - message(WARNING "${_brotli_version_error_msg}") - endif() -endif() - -# Since both decoder & encoder require the common lib, force its requirement.. -# if the user is requiring either of those other libs. -if(Brotli_FIND_REQUIRED_decoder OR Brotli_FIND_REQUIRED_encoder) - set(Brotli_FIND_REQUIRED_common TRUE) -endif() - -# Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES -# Credit to FindOpenSSL.cmake for this -if(BROTLI_USE_STATIC_LIBS) - set(_brotli_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) - if(WIN32) - set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) - else() - set(CMAKE_FIND_LIBRARY_SUFFIXES .a) - endif() -endif() - -# Make PkgConfig optional, since some users (mainly Windows) don't have it. -# But it's a lot more clean than manually using find_library. -find_package(PkgConfig QUIET) - -# Only used if the PkgConfig libraries aren't used. -find_path(Brotli_INCLUDE_DIR - NAMES - "brotli/decode.h" - "brotli/encode.h" - HINTS - ${BROTLI_ROOT_DIR} - PATH_SUFFIXES - "include" - "includes" - DOC "The path to Brotli's include directory." -) -# Hides this var from the GUI -mark_as_advanced(Brotli_INCLUDE_DIR) - -# Just used for PkgConfig stuff in the loop below -set(_brotli_stat_str "") -if(BROTLI_USE_STATIC_LIBS) - set(_brotli_stat_str "_STATIC") -endif() - -# Each string here is "ComponentName;LiteralName" (the semi-colon is a delimiter) -foreach(_listvar "common;common" "decoder;dec" "encoder;enc") - # Split the component name and literal library name from the listvar - list(GET _listvar 0 _component_name) - list(GET _listvar 1 _libname) - - # NOTE: We can't rely on PkgConf for static libs since the upstream static lib support is broken - # See https://github.com/google/brotli/issues/795 - # TODO: whenever their issue is fixed upstream, remove this "AND NOT BROTLI_USE_STATIC_LIBS" check - if(PKG_CONFIG_FOUND AND NOT BROTLI_USE_STATIC_LIBS) - # These need to be GLOBAL for MinGW when making ALIAS libraries against them. - # Have to postfix _STATIC on the name to tell PkgConfig to find the static libs. - pkg_check_modules(Brotli_${_component_name}${_brotli_stat_str} QUIET GLOBAL IMPORTED_TARGET libbrotli${_libname}) - endif() - - # Check if the target was already found by Pkgconf - if(TARGET PkgConfig::Brotli_${_component_name}${_brotli_stat_str}) - # ALIAS since we don't want the PkgConfig namespace on the Cmake library (for end-users) - add_library(Brotli::${_component_name} ALIAS PkgConfig::Brotli_${_component_name}${_brotli_stat_str}) - - # Tells HANDLE_COMPONENTS we found the component - set(Brotli_${_component_name}_FOUND TRUE) - if(Brotli_FIND_REQUIRED_${_component_name}) - # If the lib is required, we can add its literal path as a required var for FindPackageHandleStandardArgs - # Since it won't accept the PkgConfig targets - if(BROTLI_USE_STATIC_LIBS) - list(APPEND _brotli_req_vars "Brotli_${_component_name}_STATIC_LIBRARIES") - else() - list(APPEND _brotli_req_vars "Brotli_${_component_name}_LINK_LIBRARIES") - endif() - endif() - - # Skip searching for the libs with find_library since it was already found by Pkgconf - continue() - endif() - - if(Brotli_FIND_REQUIRED_${_component_name}) - # If it's required, we can set the name used in find_library as a required var for FindPackageHandleStandardArgs - list(APPEND _brotli_req_vars "Brotli_${_component_name}") - endif() - - list(APPEND _brotli_lib_names - "brotli${_libname}" - "libbrotli${_libname}" - ) - if(BROTLI_USE_STATIC_LIBS) - # Postfix "-static" to the libnames since we're looking for static libs - list(TRANSFORM _brotli_lib_names APPEND "-static") - endif() - - find_library(Brotli_${_component_name} - NAMES ${_brotli_lib_names} - HINTS ${BROTLI_ROOT_DIR} - PATH_SUFFIXES - "lib" - "lib64" - "libs" - "libs64" - "lib/x86_64-linux-gnu" - ) - # Hide the library variable from the Cmake GUI - mark_as_advanced(Brotli_${_component_name}) - - # Unset since otherwise it'll stick around for the next loop and break things - unset(_brotli_lib_names) - - # Check if find_library found the library - if(Brotli_${_component_name}) - # Tells HANDLE_COMPONENTS we found the component - set(Brotli_${_component_name}_FOUND TRUE) - - add_library("Brotli::${_component_name}" UNKNOWN IMPORTED) - # Attach the literal library and include dir to the IMPORTED target for the end-user - set_target_properties("Brotli::${_component_name}" PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${Brotli_INCLUDE_DIR}" - IMPORTED_LOCATION "${Brotli_${_component_name}}" - ) - else() - # Tells HANDLE_COMPONENTS we found the component - set(Brotli_${_component_name}_FOUND FALSE) - endif() -endforeach() - -include(FindPackageHandleStandardArgs) -# Sets Brotli_FOUND, and fails the find_package(Brotli) call if it was REQUIRED but missing libs. -find_package_handle_standard_args(Brotli - FOUND_VAR - Brotli_FOUND - REQUIRED_VARS - Brotli_INCLUDE_DIR - ${_brotli_req_vars} - HANDLE_COMPONENTS -) - -# Restore the original find library ordering -if(BROTLI_USE_STATIC_LIBS) - set(CMAKE_FIND_LIBRARY_SUFFIXES ${_brotli_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES}) -endif() diff --git a/libs/cpp-httplib/cmake/httplibConfig.cmake.in b/libs/cpp-httplib/cmake/httplibConfig.cmake.in deleted file mode 100644 index 8ca8b99..0000000 --- a/libs/cpp-httplib/cmake/httplibConfig.cmake.in +++ /dev/null @@ -1,106 +0,0 @@ -# Generates a macro to auto-configure everything -@PACKAGE_INIT@ - -# Setting these here so they're accessible after install. -# Might be useful for some users to check which settings were used. -set(HTTPLIB_IS_USING_OPENSSL @HTTPLIB_IS_USING_OPENSSL@) -set(HTTPLIB_IS_USING_ZLIB @HTTPLIB_IS_USING_ZLIB@) -set(HTTPLIB_IS_COMPILED @HTTPLIB_COMPILE@) -set(HTTPLIB_IS_USING_BROTLI @HTTPLIB_IS_USING_BROTLI@) -set(HTTPLIB_IS_USING_NON_BLOCKING_GETADDRINFO @HTTPLIB_IS_USING_NON_BLOCKING_GETADDRINFO@) -set(HTTPLIB_VERSION @PROJECT_VERSION@) - -include(CMakeFindDependencyMacro) - -# We add find_dependency calls here to not make the end-user have to call them. -find_dependency(Threads) -if(@HTTPLIB_IS_USING_OPENSSL@) - # OpenSSL COMPONENTS were added in Cmake v3.11 - if(CMAKE_VERSION VERSION_LESS "3.11") - find_dependency(OpenSSL @_HTTPLIB_OPENSSL_MIN_VER@) - else() - # Once the COMPONENTS were added, they were made optional when not specified. - # Since we use both, we need to search for both. - find_dependency(OpenSSL @_HTTPLIB_OPENSSL_MIN_VER@ COMPONENTS Crypto SSL) - endif() - set(httplib_OpenSSL_FOUND ${OpenSSL_FOUND}) -endif() -if(@HTTPLIB_IS_USING_ZLIB@) - find_dependency(ZLIB) - set(httplib_ZLIB_FOUND ${ZLIB_FOUND}) -endif() - -if(@HTTPLIB_IS_USING_BROTLI@) - # Needed so we can use our own FindBrotli.cmake in this file. - # Note that the FindBrotli.cmake file is installed in the same dir as this file. - list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") - set(BROTLI_USE_STATIC_LIBS @BROTLI_USE_STATIC_LIBS@) - find_dependency(Brotli COMPONENTS common encoder decoder) - set(httplib_Brotli_FOUND ${Brotli_FOUND}) -endif() - -if(@HTTPLIB_IS_USING_ZSTD@) - set(httplib_fd_zstd_quiet_arg) - if(${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY) - set(httplib_fd_zstd_quiet_arg QUIET) - endif() - set(httplib_fd_zstd_required_arg) - if(${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED) - set(httplib_fd_zstd_required_arg REQUIRED) - endif() - find_package(zstd QUIET) - if(NOT zstd_FOUND) - find_package(PkgConfig ${httplib_fd_zstd_quiet_arg} ${httplib_fd_zstd_required_arg}) - if(PKG_CONFIG_FOUND) - pkg_check_modules(zstd ${httplib_fd_zstd_quiet_arg} ${httplib_fd_zstd_required_arg} IMPORTED_TARGET libzstd) - - if(TARGET PkgConfig::zstd) - add_library(zstd::libzstd ALIAS PkgConfig::zstd) - endif() - endif() - endif() - set(httplib_zstd_FOUND ${zstd_FOUND}) -endif() - -# Mildly useful for end-users -# Not really recommended to be used though -set_and_check(HTTPLIB_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@") -# Lets the end-user find the header path with the header appended -# This is helpful if you're using Cmake's pre-compiled header feature -set_and_check(HTTPLIB_HEADER_PATH "@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@/httplib.h") - -check_required_components(httplib) - -# Brings in the target library, but only if all required components are found -if(NOT DEFINED httplib_FOUND OR httplib_FOUND) - include("${CMAKE_CURRENT_LIST_DIR}/httplibTargets.cmake") -endif() - -# Outputs a "found httplib /usr/include/httplib.h" message when using find_package(httplib) -include(FindPackageMessage) -if(TARGET httplib::httplib) - set(HTTPLIB_FOUND TRUE) - - # Since the compiled version has a lib, show that in the message - if(@HTTPLIB_COMPILE@) - # The list of configurations is most likely just 1 unless they installed a debug & release - get_target_property(_httplib_configs httplib::httplib "IMPORTED_CONFIGURATIONS") - # Need to loop since the "IMPORTED_LOCATION" property isn't want we want. - # Instead, we need to find the IMPORTED_LOCATION_RELEASE or IMPORTED_LOCATION_DEBUG which has the lib path. - foreach(_httplib_conf "${_httplib_configs}") - # Grab the path to the lib and sets it to HTTPLIB_LIBRARY - get_target_property(HTTPLIB_LIBRARY httplib::httplib "IMPORTED_LOCATION_${_httplib_conf}") - # Check if we found it - if(HTTPLIB_LIBRARY) - break() - endif() - endforeach() - - unset(_httplib_configs) - unset(_httplib_conf) - - find_package_message(httplib "Found httplib: ${HTTPLIB_LIBRARY} (found version \"${HTTPLIB_VERSION}\")" "[${HTTPLIB_LIBRARY}][${HTTPLIB_HEADER_PATH}]") - else() - find_package_message(httplib "Found httplib: ${HTTPLIB_HEADER_PATH} (found version \"${HTTPLIB_VERSION}\")" "[${HTTPLIB_HEADER_PATH}]") - endif() -endif() diff --git a/libs/cpp-httplib/docker-compose.yml b/libs/cpp-httplib/docker-compose.yml deleted file mode 100644 index 4a55b0d..0000000 --- a/libs/cpp-httplib/docker-compose.yml +++ /dev/null @@ -1,7 +0,0 @@ -services: - http: - build: . - ports: - - "8080:80" - volumes: - - ./docker/html:/html diff --git a/libs/cpp-httplib/docker/html/index.html b/libs/cpp-httplib/docker/html/index.html deleted file mode 100644 index 1abe978..0000000 --- a/libs/cpp-httplib/docker/html/index.html +++ /dev/null @@ -1,21 +0,0 @@ - - - -Welcome to cpp-httplib! - - - -

Welcome to cpp-httplib!

-

If you see this page, the cpp-httplib web server is successfully installed and -working. Further configuration is required.

- -

For online documentation and support please refer to -github.com/yhirose/cpp-httplib.
- -

Thank you for using cpp-httplib.

- - diff --git a/libs/cpp-httplib/docker/main.cc b/libs/cpp-httplib/docker/main.cc deleted file mode 100644 index 8ffbf2c..0000000 --- a/libs/cpp-httplib/docker/main.cc +++ /dev/null @@ -1,295 +0,0 @@ -// -// main.cc -// -// Copyright (c) 2025 Yuji Hirose. All rights reserved. -// MIT License -// - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -using namespace httplib; - -const auto SERVER_NAME = - std::format("cpp-httplib-server/{}", CPPHTTPLIB_VERSION); - -Server svr; - -void signal_handler(int signal) { - if (signal == SIGINT || signal == SIGTERM) { - std::cout << "\nReceived signal, shutting down gracefully...\n"; - svr.stop(); - } -} - -std::string get_time_format() { - auto now = std::chrono::system_clock::now(); - auto time_t = std::chrono::system_clock::to_time_t(now); - - std::stringstream ss; - ss << std::put_time(std::localtime(&time_t), "%d/%b/%Y:%H:%M:%S %z"); - return ss.str(); -} - -std::string get_error_time_format() { - auto now = std::chrono::system_clock::now(); - auto time_t = std::chrono::system_clock::to_time_t(now); - - std::stringstream ss; - ss << std::put_time(std::localtime(&time_t), "%Y/%m/%d %H:%M:%S"); - return ss.str(); -} - -std::string get_client_ip(const Request &req) { - // Check for X-Forwarded-For header first (common in reverse proxy setups) - auto forwarded_for = req.get_header_value("X-Forwarded-For"); - if (!forwarded_for.empty()) { - // Get the first IP if there are multiple - auto comma_pos = forwarded_for.find(','); - if (comma_pos != std::string::npos) { - return forwarded_for.substr(0, comma_pos); - } - return forwarded_for; - } - - // Check for X-Real-IP header - auto real_ip = req.get_header_value("X-Real-IP"); - if (!real_ip.empty()) { return real_ip; } - - // Fallback to remote address (though cpp-httplib doesn't provide this - // directly) For demonstration, we'll use a placeholder - return "127.0.0.1"; -} - -// NGINX Combined log format: -// $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent -// "$http_referer" "$http_user_agent" -void nginx_access_logger(const Request &req, const Response &res) { - auto remote_addr = get_client_ip(req); - std::string remote_user = - "-"; // cpp-httplib doesn't have built-in auth user tracking - auto time_local = get_time_format(); - auto request = std::format("{} {} {}", req.method, req.path, req.version); - auto status = res.status; - auto body_bytes_sent = res.body.size(); - auto http_referer = req.get_header_value("Referer"); - if (http_referer.empty()) http_referer = "-"; - auto http_user_agent = req.get_header_value("User-Agent"); - if (http_user_agent.empty()) http_user_agent = "-"; - - std::cout << std::format("{} - {} [{}] \"{}\" {} {} \"{}\" \"{}\"", - remote_addr, remote_user, time_local, request, - status, body_bytes_sent, http_referer, - http_user_agent) - << std::endl; -} - -// NGINX Error log format: -// YYYY/MM/DD HH:MM:SS [level] message, client: client_ip, request: "request", -// host: "host" -void nginx_error_logger(const Error &err, const Request *req) { - auto time_local = get_error_time_format(); - std::string level = "error"; - - if (req) { - auto client_ip = get_client_ip(*req); - auto request = - std::format("{} {} {}", req->method, req->path, req->version); - auto host = req->get_header_value("Host"); - if (host.empty()) host = "-"; - - std::cerr << std::format("{} [{}] {}, client: {}, request: " - "\"{}\", host: \"{}\"", - time_local, level, to_string(err), client_ip, - request, host) - << std::endl; - } else { - // If no request context, just log the error - std::cerr << std::format("{} [{}] {}", time_local, level, to_string(err)) - << std::endl; - } -} - -void print_usage(const char *program_name) { - std::cout << "Usage: " << program_name << " [OPTIONS]" << std::endl; - std::cout << std::endl; - std::cout << "Options:" << std::endl; - std::cout << " --host Server hostname (default: localhost)" - << std::endl; - std::cout << " --port Server port (default: 8080)" - << std::endl; - std::cout << " --mount Mount point and document root" - << std::endl; - std::cout << " Format: mount_point:document_root" - << std::endl; - std::cout << " (default: /:./html)" << std::endl; - std::cout << " --version Show version information" - << std::endl; - std::cout << " --help Show this help message" << std::endl; - std::cout << std::endl; - std::cout << "Examples:" << std::endl; - std::cout << " " << program_name - << " --host localhost --port 8080 --mount /:./html" << std::endl; - std::cout << " " << program_name - << " --host 0.0.0.0 --port 3000 --mount /api:./api" << std::endl; -} - -struct ServerConfig { - std::string hostname = "localhost"; - int port = 8080; - std::string mount_point = "/"; - std::string document_root = "./html"; -}; - -enum class ParseResult { SUCCESS, HELP_REQUESTED, VERSION_REQUESTED, ERROR }; - -ParseResult parse_command_line(int argc, char *argv[], ServerConfig &config) { - for (int i = 1; i < argc; i++) { - if (strcmp(argv[i], "--help") == 0 || strcmp(argv[i], "-h") == 0) { - print_usage(argv[0]); - return ParseResult::HELP_REQUESTED; - } else if (strcmp(argv[i], "--host") == 0) { - if (i + 1 >= argc) { - std::cerr << "Error: --host requires a hostname argument" << std::endl; - print_usage(argv[0]); - return ParseResult::ERROR; - } - config.hostname = argv[++i]; - } else if (strcmp(argv[i], "--port") == 0) { - if (i + 1 >= argc) { - std::cerr << "Error: --port requires a port number argument" - << std::endl; - print_usage(argv[0]); - return ParseResult::ERROR; - } - config.port = std::atoi(argv[++i]); - if (config.port <= 0 || config.port > 65535) { - std::cerr << "Error: Invalid port number. Must be between 1 and 65535" - << std::endl; - return ParseResult::ERROR; - } - } else if (strcmp(argv[i], "--mount") == 0) { - if (i + 1 >= argc) { - std::cerr - << "Error: --mount requires mount_point:document_root argument" - << std::endl; - print_usage(argv[0]); - return ParseResult::ERROR; - } - std::string mount_arg = argv[++i]; - auto colon_pos = mount_arg.find(':'); - if (colon_pos == std::string::npos) { - std::cerr << "Error: --mount argument must be in format " - "mount_point:document_root" - << std::endl; - print_usage(argv[0]); - return ParseResult::ERROR; - } - config.mount_point = mount_arg.substr(0, colon_pos); - config.document_root = mount_arg.substr(colon_pos + 1); - - if (config.mount_point.empty() || config.document_root.empty()) { - std::cerr - << "Error: Both mount_point and document_root must be non-empty" - << std::endl; - return ParseResult::ERROR; - } - } else if (strcmp(argv[i], "--version") == 0) { - std::cout << CPPHTTPLIB_VERSION << std::endl; - return ParseResult::VERSION_REQUESTED; - } else { - std::cerr << "Error: Unknown option '" << argv[i] << "'" << std::endl; - print_usage(argv[0]); - return ParseResult::ERROR; - } - } - return ParseResult::SUCCESS; -} - -bool setup_server(Server &svr, const ServerConfig &config) { - svr.set_logger(nginx_access_logger); - svr.set_error_logger(nginx_error_logger); - - auto ret = svr.set_mount_point(config.mount_point, config.document_root); - if (!ret) { - std::cerr - << std::format( - "Error: Cannot mount '{}' to '{}'. Directory may not exist.", - config.mount_point, config.document_root) - << std::endl; - return false; - } - - svr.set_file_extension_and_mimetype_mapping("html", "text/html"); - svr.set_file_extension_and_mimetype_mapping("htm", "text/html"); - svr.set_file_extension_and_mimetype_mapping("css", "text/css"); - svr.set_file_extension_and_mimetype_mapping("js", "text/javascript"); - svr.set_file_extension_and_mimetype_mapping("json", "application/json"); - svr.set_file_extension_and_mimetype_mapping("xml", "application/xml"); - svr.set_file_extension_and_mimetype_mapping("png", "image/png"); - svr.set_file_extension_and_mimetype_mapping("jpg", "image/jpeg"); - svr.set_file_extension_and_mimetype_mapping("jpeg", "image/jpeg"); - svr.set_file_extension_and_mimetype_mapping("gif", "image/gif"); - svr.set_file_extension_and_mimetype_mapping("svg", "image/svg+xml"); - svr.set_file_extension_and_mimetype_mapping("ico", "image/x-icon"); - svr.set_file_extension_and_mimetype_mapping("pdf", "application/pdf"); - svr.set_file_extension_and_mimetype_mapping("zip", "application/zip"); - svr.set_file_extension_and_mimetype_mapping("txt", "text/plain"); - - svr.set_error_handler([](const Request & /*req*/, Response &res) { - if (res.status == 404) { - res.set_content( - std::format( - "404 Not Found" - "

404 Not Found

" - "

The requested resource was not found on this server.

" - "

{}

", - SERVER_NAME), - "text/html"); - } - }); - - svr.set_pre_routing_handler([](const Request & /*req*/, Response &res) { - res.set_header("Server", SERVER_NAME); - return Server::HandlerResponse::Unhandled; - }); - - signal(SIGINT, signal_handler); - signal(SIGTERM, signal_handler); - - return true; -} - -int main(int argc, char *argv[]) { - ServerConfig config; - - auto result = parse_command_line(argc, argv, config); - switch (result) { - case ParseResult::HELP_REQUESTED: - case ParseResult::VERSION_REQUESTED: return 0; - case ParseResult::ERROR: return 1; - case ParseResult::SUCCESS: break; - } - - if (!setup_server(svr, config)) { return 1; } - - std::cout << "Serving HTTP on " << config.hostname << ":" << config.port - << std::endl; - std::cout << "Mount point: " << config.mount_point << " -> " - << config.document_root << std::endl; - std::cout << "Press Ctrl+C to shutdown gracefully..." << std::endl; - - auto ret = svr.listen(config.hostname, config.port); - - std::cout << "Server has been shut down." << std::endl; - - return ret ? 0 : 1; -} diff --git a/libs/cpp-httplib/example/Dockerfile.hello b/libs/cpp-httplib/example/Dockerfile.hello deleted file mode 100644 index d1188ae..0000000 --- a/libs/cpp-httplib/example/Dockerfile.hello +++ /dev/null @@ -1,12 +0,0 @@ -FROM alpine as builder -WORKDIR /src/example -RUN apk add g++ make openssl-dev zlib-dev brotli-dev -COPY ./httplib.h /src -COPY ./example/hello.cc /src/example -COPY ./example/Makefile /src/example -RUN make hello - -FROM alpine -RUN apk --no-cache add brotli libstdc++ -COPY --from=builder /src/example/hello /bin/hello -CMD ["/bin/hello"] diff --git a/libs/cpp-httplib/example/Makefile b/libs/cpp-httplib/example/Makefile deleted file mode 100644 index 3082b88..0000000 --- a/libs/cpp-httplib/example/Makefile +++ /dev/null @@ -1,67 +0,0 @@ -#CXX = clang++ -CXXFLAGS = -O2 -std=c++11 -I.. -Wall -Wextra -pthread - -PREFIX ?= $(shell brew --prefix) - -OPENSSL_DIR = $(PREFIX)/opt/openssl@3 -OPENSSL_SUPPORT = -DCPPHTTPLIB_OPENSSL_SUPPORT -I$(OPENSSL_DIR)/include -L$(OPENSSL_DIR)/lib -lssl -lcrypto - -ifneq ($(OS), Windows_NT) - UNAME_S := $(shell uname -s) - ifeq ($(UNAME_S), Darwin) - OPENSSL_SUPPORT += -framework CoreFoundation -framework Security - endif -endif - -ZLIB_SUPPORT = -DCPPHTTPLIB_ZLIB_SUPPORT -lz - -BROTLI_DIR = $(PREFIX)/opt/brotli -BROTLI_SUPPORT = -DCPPHTTPLIB_BROTLI_SUPPORT -I$(BROTLI_DIR)/include -L$(BROTLI_DIR)/lib -lbrotlicommon -lbrotlienc -lbrotlidec - -all: server client hello simplecli simplesvr upload redirect ssesvr ssecli benchmark one_time_request server_and_client accept_header - -server : server.cc ../httplib.h Makefile - $(CXX) -o server $(CXXFLAGS) server.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT) - -client : client.cc ../httplib.h Makefile - $(CXX) -o client $(CXXFLAGS) client.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT) - -hello : hello.cc ../httplib.h Makefile - $(CXX) -o hello $(CXXFLAGS) hello.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT) - -simplecli : simplecli.cc ../httplib.h Makefile - $(CXX) -o simplecli $(CXXFLAGS) simplecli.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT) - -simplesvr : simplesvr.cc ../httplib.h Makefile - $(CXX) -o simplesvr $(CXXFLAGS) simplesvr.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT) - -upload : upload.cc ../httplib.h Makefile - $(CXX) -o upload $(CXXFLAGS) upload.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT) - -redirect : redirect.cc ../httplib.h Makefile - $(CXX) -o redirect $(CXXFLAGS) redirect.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT) - -ssesvr : ssesvr.cc ../httplib.h Makefile - $(CXX) -o ssesvr $(CXXFLAGS) ssesvr.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT) - -ssecli : ssecli.cc ../httplib.h Makefile - $(CXX) -o ssecli $(CXXFLAGS) ssecli.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT) - -benchmark : benchmark.cc ../httplib.h Makefile - $(CXX) -o benchmark $(CXXFLAGS) benchmark.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT) - -one_time_request : one_time_request.cc ../httplib.h Makefile - $(CXX) -o one_time_request $(CXXFLAGS) one_time_request.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT) - -server_and_client : server_and_client.cc ../httplib.h Makefile - $(CXX) -o server_and_client $(CXXFLAGS) server_and_client.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT) - -accept_header : accept_header.cc ../httplib.h Makefile - $(CXX) -o accept_header $(CXXFLAGS) accept_header.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT) - -pem: - openssl genrsa 2048 > key.pem - openssl req -new -key key.pem | openssl x509 -days 3650 -req -signkey key.pem > cert.pem - -clean: - rm server client hello simplecli simplesvr upload redirect ssesvr ssecli benchmark one_time_request server_and_client accept_header *.pem diff --git a/libs/cpp-httplib/example/accept_header.cc b/libs/cpp-httplib/example/accept_header.cc deleted file mode 100644 index 33798d9..0000000 --- a/libs/cpp-httplib/example/accept_header.cc +++ /dev/null @@ -1,134 +0,0 @@ -#include "httplib.h" -#include - -int main() { - using namespace httplib; - - // Example usage of parse_accept_header function - std::cout << "=== Accept Header Parser Example ===" << std::endl; - - // Example 1: Simple Accept header - std::string accept1 = "text/html,application/json,text/plain"; - std::vector result1; - if (detail::parse_accept_header(accept1, result1)) { - std::cout << "\nExample 1: " << accept1 << std::endl; - std::cout << "Parsed order:" << std::endl; - for (size_t i = 0; i < result1.size(); ++i) { - std::cout << " " << (i + 1) << ". " << result1[i] << std::endl; - } - } else { - std::cout << "\nExample 1: Failed to parse Accept header" << std::endl; - } - - // Example 2: Accept header with quality values - std::string accept2 = "text/html;q=0.9,application/json;q=1.0,text/plain;q=0.8"; - std::vector result2; - if (detail::parse_accept_header(accept2, result2)) { - std::cout << "\nExample 2: " << accept2 << std::endl; - std::cout << "Parsed order (sorted by priority):" << std::endl; - for (size_t i = 0; i < result2.size(); ++i) { - std::cout << " " << (i + 1) << ". " << result2[i] << std::endl; - } - } else { - std::cout << "\nExample 2: Failed to parse Accept header" << std::endl; - } - - // Example 3: Browser-like Accept header - std::string accept3 = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"; - std::vector result3; - if (detail::parse_accept_header(accept3, result3)) { - std::cout << "\nExample 3: " << accept3 << std::endl; - std::cout << "Parsed order:" << std::endl; - for (size_t i = 0; i < result3.size(); ++i) { - std::cout << " " << (i + 1) << ". " << result3[i] << std::endl; - } - } else { - std::cout << "\nExample 3: Failed to parse Accept header" << std::endl; - } - - // Example 4: Invalid Accept header examples - std::cout << "\n=== Invalid Accept Header Examples ===" << std::endl; - - std::vector invalid_examples = { - "text/html;q=1.5,application/json", // q > 1.0 - "text/html;q=-0.1,application/json", // q < 0.0 - "text/html;q=invalid,application/json", // invalid q value - "invalidtype,application/json", // invalid media type - ",application/json" // empty entry - }; - - for (const auto& invalid_accept : invalid_examples) { - std::vector temp_result; - std::cout << "\nTesting invalid: " << invalid_accept << std::endl; - if (detail::parse_accept_header(invalid_accept, temp_result)) { - std::cout << " Unexpectedly succeeded!" << std::endl; - } else { - std::cout << " Correctly rejected as invalid" << std::endl; - } - } - - // Example 4: Server usage example - std::cout << "\n=== Server Usage Example ===" << std::endl; - Server svr; - - svr.Get("/api/data", [](const Request& req, Response& res) { - // Get Accept header - auto accept_header = req.get_header_value("Accept"); - if (accept_header.empty()) { - accept_header = "*/*"; // Default if no Accept header - } - - // Parse accept header to get preferred content types - std::vector preferred_types; - if (!detail::parse_accept_header(accept_header, preferred_types)) { - // Invalid Accept header - res.status = 400; // Bad Request - res.set_content("Invalid Accept header", "text/plain"); - return; - } - - std::cout << "Client Accept header: " << accept_header << std::endl; - std::cout << "Preferred types in order:" << std::endl; - for (size_t i = 0; i < preferred_types.size(); ++i) { - std::cout << " " << (i + 1) << ". " << preferred_types[i] << std::endl; - } - - // Choose response format based on client preference - std::string response_content; - std::string content_type; - - for (const auto& type : preferred_types) { - if (type == "application/json" || type == "application/*" || type == "*/*") { - response_content = "{\"message\": \"Hello, World!\", \"data\": [1, 2, 3]}"; - content_type = "application/json"; - break; - } else if (type == "text/html" || type == "text/*") { - response_content = "

Hello, World!

Data: 1, 2, 3

"; - content_type = "text/html"; - break; - } else if (type == "text/plain") { - response_content = "Hello, World!\nData: 1, 2, 3"; - content_type = "text/plain"; - break; - } - } - - if (response_content.empty()) { - // No supported content type found - res.status = 406; // Not Acceptable - res.set_content("No acceptable content type found", "text/plain"); - return; - } - - res.set_content(response_content, content_type); - std::cout << "Responding with: " << content_type << std::endl; - }); - - std::cout << "Server configured. You can test it with:" << std::endl; - std::cout << " curl -H \"Accept: application/json\" http://localhost:8080/api/data" << std::endl; - std::cout << " curl -H \"Accept: text/html\" http://localhost:8080/api/data" << std::endl; - std::cout << " curl -H \"Accept: text/plain\" http://localhost:8080/api/data" << std::endl; - std::cout << " curl -H \"Accept: text/html;q=0.9,application/json;q=1.0\" http://localhost:8080/api/data" << std::endl; - - return 0; -} diff --git a/libs/cpp-httplib/example/benchmark.cc b/libs/cpp-httplib/example/benchmark.cc deleted file mode 100644 index 433cc67..0000000 --- a/libs/cpp-httplib/example/benchmark.cc +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include -#include - -using namespace std; - -struct StopWatch { - StopWatch(const string &label) : label_(label) { - start_ = chrono::system_clock::now(); - } - ~StopWatch() { - auto end = chrono::system_clock::now(); - auto diff = end - start_; - auto count = chrono::duration_cast(diff).count(); - cout << label_ << ": " << count << " millisec." << endl; - } - string label_; - chrono::system_clock::time_point start_; -}; - -int main(void) { - string body(1024 * 5, 'a'); - - httplib::Client cli("httpbin.org", 80); - - for (int i = 0; i < 3; i++) { - StopWatch sw(to_string(i).c_str()); - auto res = cli.Post("/post", body, "application/octet-stream"); - assert(res->status == httplib::StatusCode::OK_200); - } - - return 0; -} diff --git a/libs/cpp-httplib/example/ca-bundle.crt b/libs/cpp-httplib/example/ca-bundle.crt deleted file mode 100644 index 7d61eb5..0000000 --- a/libs/cpp-httplib/example/ca-bundle.crt +++ /dev/null @@ -1,3401 +0,0 @@ -## -## Bundle of CA Root Certificates -## -## Certificate data from Mozilla as of: Tue Jan 22 14:14:40 2019 GMT -## -## This is a bundle of X.509 certificates of public Certificate Authorities -## (CA). These were automatically extracted from Mozilla's root certificates -## file (certdata.txt). This file can be found in the mozilla source tree: -## https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt -## -## It contains the certificates in PEM format and therefore -## can be directly used with curl / libcurl / php_curl, or with -## an Apache+mod_ssl webserver for SSL client authentication. -## Just configure this file as the SSLCACertificateFile. -## -## Conversion done with mk-ca-bundle.pl version 1.27. -## SHA256: 18372117493b5b7ec006c31d966143fc95a9464a2b5f8d5188e23c5557b2292d -## - - -GlobalSign Root CA -================== ------BEGIN CERTIFICATE----- -MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx -GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds -b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV -BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD -VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa -DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc -THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb -Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP -c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX -gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF -AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj -Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG -j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH -hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC -X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== ------END CERTIFICATE----- - -GlobalSign Root CA - R2 -======================= ------BEGIN CERTIFICATE----- -MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv -YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh -bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT -aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln -bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6 -ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp -s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN -S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL -TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C -ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E -FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i -YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN -BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp -9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu -01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7 -9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 -TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== ------END CERTIFICATE----- - -Verisign Class 3 Public Primary Certification Authority - G3 -============================================================ ------BEGIN CERTIFICATE----- -MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv -cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy -dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1 -EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc -cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw -EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj -055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA -ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f -j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC -/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0 -xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa -t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== ------END CERTIFICATE----- - -Entrust.net Premium 2048 Secure Server CA -========================================= ------BEGIN CERTIFICATE----- -MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u -ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp -bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV -BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx -NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 -d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl -MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u -ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL -Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr -hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW -nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi -VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ -KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy -T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf -zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT -J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e -nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE= ------END CERTIFICATE----- - -Baltimore CyberTrust Root -========================= ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE -ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li -ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC -SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs -dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME -uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB -UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C -G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 -XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr -l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI -VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB -BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh -cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 -hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa -Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H -RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp ------END CERTIFICATE----- - -AddTrust External Root -====================== ------BEGIN CERTIFICATE----- -MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML -QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD -VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw -NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU -cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg -Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821 -+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw -Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo -aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy -2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7 -7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P -BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL -VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk -VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB -IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl -j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 -6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355 -e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u -G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= ------END CERTIFICATE----- - -Entrust Root Certification Authority -==================================== ------BEGIN CERTIFICATE----- -MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV -BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw -b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG -A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 -MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu -MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu -Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v -dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz -A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww -Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 -j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN -rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw -DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 -MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH -hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA -A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM -Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa -v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS -W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 -tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 ------END CERTIFICATE----- - -GeoTrust Global CA -================== ------BEGIN CERTIFICATE----- -MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK -Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw -MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j -LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo -BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet -8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc -T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU -vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD -AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk -DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q -zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4 -d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2 -mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p -XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm -Mw== ------END CERTIFICATE----- - -GeoTrust Universal CA -===================== ------BEGIN CERTIFICATE----- -MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN -R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1 -MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu -Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t -JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e -RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs -7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d -8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V -qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga -Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB -Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu -KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08 -ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0 -XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB -hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc -aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2 -qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL -oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK -xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF -KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2 -DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK -xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU -p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI -P/rmMuGNG2+k5o7Y+SlIis5z/iw= ------END CERTIFICATE----- - -GeoTrust Universal CA 2 -======================= ------BEGIN CERTIFICATE----- -MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN -R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0 -MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg -SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA -A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0 -DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17 -j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q -JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a -QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2 -WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP -20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn -ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC -SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG -8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2 -+/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E -BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z -dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ -4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+ -mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq -A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg -Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP -pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d -FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp -gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm -X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS ------END CERTIFICATE----- - -Comodo AAA Services root -======================== ------BEGIN CERTIFICATE----- -MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS -R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg -TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw -MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl -c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV -BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG -C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs -i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW -Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH -Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK -Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f -BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl -cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz -LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm -7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz -Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z -8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C -12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== ------END CERTIFICATE----- - -QuoVadis Root CA -================ ------BEGIN CERTIFICATE----- -MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE -ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 -eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz -MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp -cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD -EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk -J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL -F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL -YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen -AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w -PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y -ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7 -MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj -YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs -ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh -Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW -Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu -BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw -FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6 -tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo -fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul -LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x -gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi -5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi -5nrQNiOKSnQ2+Q== ------END CERTIFICATE----- - -QuoVadis Root CA 2 -================== ------BEGIN CERTIFICATE----- -MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT -EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx -ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6 -XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk -lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB -lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy -lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt -66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn -wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh -D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy -BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie -J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud -DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU -a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT -ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv -Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3 -UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm -VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK -+JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW -IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1 -WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X -f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II -4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8 -VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u ------END CERTIFICATE----- - -QuoVadis Root CA 3 -================== ------BEGIN CERTIFICATE----- -MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT -EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx -OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg -DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij -KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K -DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv -BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp -p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8 -nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX -MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM -Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz -uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT -BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj -YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 -aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB -BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD -VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4 -ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE -AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV -qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s -hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z -POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2 -Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp -8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC -bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu -g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p -vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr -qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= ------END CERTIFICATE----- - -Security Communication Root CA -============================== ------BEGIN CERTIFICATE----- -MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP -U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw -HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP -U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw -8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM -DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX -5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd -DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 -JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw -DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g -0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a -mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ -s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ -6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi -FL39vmwLAw== ------END CERTIFICATE----- - -Sonera Class 2 Root CA -====================== ------BEGIN CERTIFICATE----- -MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG -U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw -NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh -IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3 -/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT -dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG -f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P -tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH -nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT -XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt -0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI -cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph -Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx -EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH -llpwrN9M ------END CERTIFICATE----- - -XRamp Global CA Root -==================== ------BEGIN CERTIFICATE----- -MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE -BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj -dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx -HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg -U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp -dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu -IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx -foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE -zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs -AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry -xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud -EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap -oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC -AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc -/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt -qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n -nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz -8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= ------END CERTIFICATE----- - -Go Daddy Class 2 CA -=================== ------BEGIN CERTIFICATE----- -MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY -VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG -A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g -RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD -ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv -2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 -qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j -YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY -vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O -BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o -atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu -MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG -A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim -PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt -I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ -HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI -Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b -vZ8= ------END CERTIFICATE----- - -Starfield Class 2 CA -==================== ------BEGIN CERTIFICATE----- -MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc -U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo -MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG -A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG -SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY -bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ -JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm -epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN -F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF -MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f -hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo -bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g -QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs -afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM -PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl -xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD -KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 -QBFGmh95DmK/D5fs4C8fF5Q= ------END CERTIFICATE----- - -Taiwan GRCA -=========== ------BEGIN CERTIFICATE----- -MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG -EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X -DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv -dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN -w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5 -BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O -1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO -htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov -J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7 -Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t -B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB -O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8 -lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV -HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2 -09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ -TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj -Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2 -Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU -D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz -DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk -Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk -7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ -CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy -+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS ------END CERTIFICATE----- - -DigiCert Assured ID Root CA -=========================== ------BEGIN CERTIFICATE----- -MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw -IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx -MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL -ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO -9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy -UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW -/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy -oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf -GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF -66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq -hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc -EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn -SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i -8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe -+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== ------END CERTIFICATE----- - -DigiCert Global Root CA -======================= ------BEGIN CERTIFICATE----- -MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw -HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw -MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 -dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq -hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn -TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 -BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H -4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y -7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB -o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm -8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF -BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr -EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt -tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 -UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk -CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= ------END CERTIFICATE----- - -DigiCert High Assurance EV Root CA -================================== ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw -KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw -MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ -MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu -Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t -Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS -OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 -MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ -NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe -h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB -Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY -JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ -V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp -myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK -mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe -vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K ------END CERTIFICATE----- - -Certplus Class 2 Primary CA -=========================== ------BEGIN CERTIFICATE----- -MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE -BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN -OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy -dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR -5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ -Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO -YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e -e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME -CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ -YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t -L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD -P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R -TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+ -7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW -//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7 -l7+ijrRU ------END CERTIFICATE----- - -DST Root CA X3 -============== ------BEGIN CERTIFICATE----- -MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK -ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X -DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1 -cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT -rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9 -UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy -xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d -utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T -AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ -MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug -dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE -GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw -RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS -fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ ------END CERTIFICATE----- - -SwissSign Gold CA - G2 -====================== ------BEGIN CERTIFICATE----- -MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw -EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN -MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp -c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B -AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq -t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C -jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg -vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF -ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR -AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend -jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO -peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR -7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi -GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64 -OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov -L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm -5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr -44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf -Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m -Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp -mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk -vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf -KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br -NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj -viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ ------END CERTIFICATE----- - -SwissSign Silver CA - G2 -======================== ------BEGIN CERTIFICATE----- -MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT -BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X -DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3 -aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG -9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644 -N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm -+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH -6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu -MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h -qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5 -FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs -ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc -celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X -CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB -tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0 -cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P -4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F -kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L -3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx -/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa -DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP -e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu -WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ -DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub -DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u ------END CERTIFICATE----- - -GeoTrust Primary Certification Authority -======================================== ------BEGIN CERTIFICATE----- -MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG -EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD -ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx -CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ -cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN -b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9 -nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge -RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt -tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI -hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K -Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN -NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa -Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG -1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= ------END CERTIFICATE----- - -thawte Primary Root CA -====================== ------BEGIN CERTIFICATE----- -MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE -BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 -aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3 -MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg -SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv -KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT -FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs -oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ -1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc -q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K -aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p -afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF -AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE -uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX -xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89 -jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH -z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA== ------END CERTIFICATE----- - -VeriSign Class 3 Public Primary Certification Authority - G5 -============================================================ ------BEGIN CERTIFICATE----- -MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE -BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO -ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk -IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB -yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln -biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh -dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt -YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz -j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD -Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/ -Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r -fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/ -BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv -Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy -aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG -SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+ -X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE -KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC -Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE -ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq ------END CERTIFICATE----- - -SecureTrust CA -============== ------BEGIN CERTIFICATE----- -MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG -EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy -dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe -BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC -ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX -OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t -DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH -GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b -01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH -ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj -aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ -KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu -SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf -mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ -nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR -3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= ------END CERTIFICATE----- - -Secure Global CA -================ ------BEGIN CERTIFICATE----- -MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG -EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH -bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg -MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg -Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx -YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ -bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g -8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV -HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi -0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud -EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn -oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA -MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ -OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn -CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 -3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc -f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW ------END CERTIFICATE----- - -COMODO Certification Authority -============================== ------BEGIN CERTIFICATE----- -MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE -BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG -A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 -dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb -MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD -T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH -+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww -xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV -4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA -1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI -rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k -b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC -AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP -OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ -RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc -IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN -+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== ------END CERTIFICATE----- - -Network Solutions Certificate Authority -======================================= ------BEGIN CERTIFICATE----- -MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG -EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr -IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx -MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu -MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx -jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT -aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT -crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc -/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB -AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv -bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA -A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q -4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ -GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv -wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD -ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey ------END CERTIFICATE----- - -COMODO ECC Certification Authority -================================== ------BEGIN CERTIFICATE----- -MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC -R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE -ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix -GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR -Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo -b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X -4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni -wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG -FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA -U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= ------END CERTIFICATE----- - -OISTE WISeKey Global Root GA CA -=============================== ------BEGIN CERTIFICATE----- -MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE -BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG -A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH -bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD -VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw -IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5 -IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9 -Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg -Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD -d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ -/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R -LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ -KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm -MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4 -+vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa -hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY -okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0= ------END CERTIFICATE----- - -Certigna -======== ------BEGIN CERTIFICATE----- -MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw -EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3 -MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI -Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q -XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH -GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p -ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg -DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf -Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ -tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ -BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J -SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA -hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ -ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu -PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY -1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw -WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== ------END CERTIFICATE----- - -Deutsche Telekom Root CA 2 -========================== ------BEGIN CERTIFICATE----- -MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT -RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG -A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5 -MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G -A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS -b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5 -bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI -KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY -AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK -Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV -jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV -HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr -E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy -zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8 -rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G -dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU -Cm26OWMohpLzGITY+9HPBVZkVw== ------END CERTIFICATE----- - -Cybertrust Global Root -====================== ------BEGIN CERTIFICATE----- -MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li -ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4 -MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD -ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA -+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW -0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL -AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin -89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT -8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2 -MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G -A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO -lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi -5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2 -hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T -X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW -WL1WMRJOEcgh4LMRkWXbtKaIOM5V ------END CERTIFICATE----- - -ePKI Root Certification Authority -================================= ------BEGIN CERTIFICATE----- -MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG -EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg -Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx -MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq -MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B -AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs -IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi -lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv -qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX -12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O -WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+ -ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao -lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/ -vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi -Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi -MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH -ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0 -1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq -KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV -xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP -NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r -GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE -xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx -gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy -sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD -BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw= ------END CERTIFICATE----- - -certSIGN ROOT CA -================ ------BEGIN CERTIFICATE----- -MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD -VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa -Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE -CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I -JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH -rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2 -ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD -0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943 -AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B -Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB -AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8 -SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0 -x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt -vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz -TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD ------END CERTIFICATE----- - -GeoTrust Primary Certification Authority - G3 -============================================= ------BEGIN CERTIFICATE----- -MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE -BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0 -IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy -eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz -NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo -YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT -LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j -K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE -c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C -IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu -dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr -2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9 -cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE -Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD -AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s -t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt ------END CERTIFICATE----- - -thawte Primary Root CA - G2 -=========================== ------BEGIN CERTIFICATE----- -MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC -VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu -IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg -Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV -MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG -b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt -IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS -LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5 -8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU -mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN -G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K -rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== ------END CERTIFICATE----- - -thawte Primary Root CA - G3 -=========================== ------BEGIN CERTIFICATE----- -MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE -BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 -aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w -ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh -d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD -VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG -A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At -P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC -+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY -7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW -vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ -KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK -A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu -t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC -8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm -er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A= ------END CERTIFICATE----- - -GeoTrust Primary Certification Authority - G2 -============================================= ------BEGIN CERTIFICATE----- -MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC -VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu -Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD -ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1 -OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg -MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl -b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG -BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc -KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD -VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+ -EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m -ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2 -npaqBA+K ------END CERTIFICATE----- - -VeriSign Universal Root Certification Authority -=============================================== ------BEGIN CERTIFICATE----- -MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE -BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO -ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk -IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u -IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv -cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj -1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP -MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72 -9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I -AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR -tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G -CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O -a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud -DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3 -Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx -Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx -P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P -wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4 -mJO37M2CYfE45k+XmCpajQ== ------END CERTIFICATE----- - -VeriSign Class 3 Public Primary Certification Authority - G4 -============================================================ ------BEGIN CERTIFICATE----- -MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC -VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3 -b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz -ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL -MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU -cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo -b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5 -IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8 -Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz -rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB -/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw -HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u -Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD -A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx -AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== ------END CERTIFICATE----- - -NetLock Arany (Class Gold) Főtanúsítvány -======================================== ------BEGIN CERTIFICATE----- -MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G -A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610 -dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB -cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx -MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO -ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv -biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6 -c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu -0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw -/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk -H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw -fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1 -neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB -BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW -qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta -YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC -bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna -NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu -dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= ------END CERTIFICATE----- - -Staat der Nederlanden Root CA - G2 -================================== ------BEGIN CERTIFICATE----- -MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE -CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g -Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC -TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l -ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ -5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn -vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj -CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil -e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR -OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI -CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65 -48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi -trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737 -qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB -AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC -ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA -A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz -+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj -f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN -kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk -CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF -URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb -CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h -oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV -IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm -66+KAQ== ------END CERTIFICATE----- - -Hongkong Post Root CA 1 -======================= ------BEGIN CERTIFICATE----- -MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT -DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx -NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n -IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1 -ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr -auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh -qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY -V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV -HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i -h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio -l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei -IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps -T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT -c4afU9hDDl3WY4JxHYB0yvbiAmvZWg== ------END CERTIFICATE----- - -SecureSign RootCA11 -=================== ------BEGIN CERTIFICATE----- -MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi -SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS -b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw -KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1 -cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL -TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO -wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq -g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP -O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA -bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX -t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh -OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r -bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ -Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01 -y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061 -lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I= ------END CERTIFICATE----- - -Microsec e-Szigno Root CA 2009 -============================== ------BEGIN CERTIFICATE----- -MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER -MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv -c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o -dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE -BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt -U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA -fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG -0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA -pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm -1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC -AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf -QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE -FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o -lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX -I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 -tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02 -yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi -LXpUq3DDfSJlgnCW ------END CERTIFICATE----- - -GlobalSign Root CA - R3 -======================= ------BEGIN CERTIFICATE----- -MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv -YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh -bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT -aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln -bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt -iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ -0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3 -rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl -OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2 -xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7 -lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8 -EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E -bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18 -YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r -kpeDMdmztcpHWD9f ------END CERTIFICATE----- - -Autoridad de Certificacion Firmaprofesional CIF A62634068 -========================================================= ------BEGIN CERTIFICATE----- -MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA -BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 -MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw -QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB -NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD -Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P -B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY -7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH -ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI -plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX -MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX -LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK -bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU -vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud -EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH -DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp -cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA -bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx -ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx -51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk -R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP -T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f -Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl -osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR -crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR -saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD -KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi -6Et8Vcad+qMUu2WFbm5PEn4KPJ2V ------END CERTIFICATE----- - -Izenpe.com -========== ------BEGIN CERTIFICATE----- -MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG -EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz -MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu -QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ -03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK -ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU -+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC -PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT -OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK -F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK -0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+ -0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB -leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID -AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+ -SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG -NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx -MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O -BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l -Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga -kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q -hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs -g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5 -aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5 -nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC -ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo -Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z -WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== ------END CERTIFICATE----- - -Chambers of Commerce Root - 2008 -================================ ------BEGIN CERTIFICATE----- -MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD -MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv -bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu -QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy -Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl -ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF -EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl -cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA -XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj -h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/ -ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk -NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g -D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331 -lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ -0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj -ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2 -EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI -G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ -BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh -bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh -bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC -CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH -AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1 -wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH -3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU -RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6 -M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1 -YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF -9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK -zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG -nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg -OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ ------END CERTIFICATE----- - -Global Chambersign Root - 2008 -============================== ------BEGIN CERTIFICATE----- -MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD -MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv -bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu -QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx -NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg -Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ -QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD -aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf -VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf -XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0 -ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB -/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA -TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M -H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe -Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF -HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh -wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB -AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT -BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE -BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm -aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm -aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp -1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0 -dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG -/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6 -ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s -dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg -9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH -foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du -qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr -P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq -c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z -09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B ------END CERTIFICATE----- - -Go Daddy Root Certificate Authority - G2 -======================================== ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu -MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 -MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 -b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G -A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq -9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD -+qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd -fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl -NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9 -BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac -vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r -5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV -N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO -LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1 ------END CERTIFICATE----- - -Starfield Root Certificate Authority - G2 -========================================= ------BEGIN CERTIFICATE----- -MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s -b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 -eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw -DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg -VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB -dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv -W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs -bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk -N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf -ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU -JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol -TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx -4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw -F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K -pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ -c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 ------END CERTIFICATE----- - -Starfield Services Root Certificate Authority - G2 -================================================== ------BEGIN CERTIFICATE----- -MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s -b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl -IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV -BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT -dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg -Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2 -h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa -hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP -LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB -rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG -SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP -E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy -xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd -iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza -YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6 ------END CERTIFICATE----- - -AffirmTrust Commercial -====================== ------BEGIN CERTIFICATE----- -MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS -BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw -MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly -bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb -DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV -C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6 -BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww -MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV -HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG -hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi -qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv -0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh -sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= ------END CERTIFICATE----- - -AffirmTrust Networking -====================== ------BEGIN CERTIFICATE----- -MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS -BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw -MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly -bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE -Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI -dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24 -/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb -h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV -HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu -UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6 -12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23 -WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9 -/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= ------END CERTIFICATE----- - -AffirmTrust Premium -=================== ------BEGIN CERTIFICATE----- -MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS -BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy -OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy -dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn -BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV -5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs -+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd -GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R -p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI -S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04 -6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5 -/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo -+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv -MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg -Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC -6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S -L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK -+4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV -BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg -IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60 -g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb -zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw== ------END CERTIFICATE----- - -AffirmTrust Premium ECC -======================= ------BEGIN CERTIFICATE----- -MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV -BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx -MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U -cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA -IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ -N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW -BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK -BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X -57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM -eQ== ------END CERTIFICATE----- - -Certum Trusted Network CA -========================= ------BEGIN CERTIFICATE----- -MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK -ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy -MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU -ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC -l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J -J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4 -fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0 -cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB -Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw -DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj -jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1 -mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj -Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI -03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= ------END CERTIFICATE----- - -TWCA Root Certification Authority -================================= ------BEGIN CERTIFICATE----- -MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ -VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG -EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB -IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx -QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC -oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP -4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r -y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB -BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG -9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC -mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW -QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY -T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny -Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== ------END CERTIFICATE----- - -Security Communication RootCA2 -============================== ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc -U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh -dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC -SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy -aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++ -+T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R -3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV -spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K -EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8 -QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB -CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj -u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk -3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q -tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 -mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 ------END CERTIFICATE----- - -EC-ACC -====== ------BEGIN CERTIFICATE----- -MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE -BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w -ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD -VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE -CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT -BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7 -MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt -SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl -Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh -cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK -w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT -ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4 -HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a -E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw -0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD -VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0 -Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l -dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ -lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa -Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe -l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2 -E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D -5EI= ------END CERTIFICATE----- - -Hellenic Academic and Research Institutions RootCA 2011 -======================================================= ------BEGIN CERTIFICATE----- -MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT -O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y -aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z -IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT -AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z -IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo -IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI -1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa -71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u -8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH -3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/ -MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8 -MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu -b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt -XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 -TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD -/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N -7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4 ------END CERTIFICATE----- - -Actalis Authentication Root CA -============================== ------BEGIN CERTIFICATE----- -MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM -BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE -AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky -MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz -IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 -IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ -wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa -by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6 -zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f -YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2 -oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l -EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7 -hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8 -EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5 -jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY -iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt -ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI -WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0 -JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx -K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+ -Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC -4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo -2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz -lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem -OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9 -vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== ------END CERTIFICATE----- - -Trustis FPS Root CA -=================== ------BEGIN CERTIFICATE----- -MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG -EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290 -IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV -BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ -KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ -RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk -H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa -cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt -o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA -AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd -BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c -GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC -yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P -8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV -l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl -iB6XzCGcKQENZetX2fNXlrtIzYE= ------END CERTIFICATE----- - -Buypass Class 2 Root CA -======================= ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU -QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X -DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 -eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1 -g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn -9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b -/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU -CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff -awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI -zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn -Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX -Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs -M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD -VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF -AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s -A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI -osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S -aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd -DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD -LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0 -oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC -wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS -CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN -rJgWVqA= ------END CERTIFICATE----- - -Buypass Class 3 Root CA -======================= ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU -QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X -DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 -eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH -sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR -5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh -7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ -ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH -2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV -/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ -RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA -Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq -j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD -VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF -AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV -cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G -uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG -Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8 -ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2 -KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz -6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug -UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe -eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi -Cp/HuZc= ------END CERTIFICATE----- - -T-TeleSec GlobalRoot Class 3 -============================ ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM -IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU -cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx -MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz -dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD -ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK -9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU -NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF -iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W -0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr -AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb -fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT -ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h -P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml -e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== ------END CERTIFICATE----- - -EE Certification Centre Root CA -=============================== ------BEGIN CERTIFICATE----- -MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG -EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy -dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw -MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB -UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy -ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB -DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM -TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2 -rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw -93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN -P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T -AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ -MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF -BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj -xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM -lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u -uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU -3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM -dcGWxZ0= ------END CERTIFICATE----- - -D-TRUST Root Class 3 CA 2 2009 -============================== ------BEGIN CERTIFICATE----- -MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK -DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe -Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE -LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD -ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA -BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv -KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z -p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC -AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ -4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y -eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw -MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G -PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw -OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm -2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 -o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV -dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph -X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I= ------END CERTIFICATE----- - -D-TRUST Root Class 3 CA 2 EV 2009 -================================= ------BEGIN CERTIFICATE----- -MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK -DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw -OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK -DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw -OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS -egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh -zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T -7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60 -sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35 -11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv -cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v -ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El -MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp -b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh -c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+ -PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 -nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX -ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA -NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv -w9y4AyHqnxbxLFS1 ------END CERTIFICATE----- - -CA Disig Root R2 -================ ------BEGIN CERTIFICATE----- -MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw -EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp -ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx -EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp -c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC -w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia -xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7 -A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S -GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV -g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa -5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE -koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A -Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i -Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV -HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u -Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM -tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV -sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je -dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8 -1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx -mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01 -utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0 -sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg -UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV -7+ZtsH8tZ/3zbBt1RqPlShfppNcL ------END CERTIFICATE----- - -ACCVRAIZ1 -========= ------BEGIN CERTIFICATE----- -MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB -SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1 -MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH -UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM -jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0 -RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD -aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ -0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG -WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7 -8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR -5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J -9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK -Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw -Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu -Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 -VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM -Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA -QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh -AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA -YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj -AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA -IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk -aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0 -dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2 -MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI -hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E -R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN -YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49 -nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ -TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3 -sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h -I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg -Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd -3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p -EfbRD0tVNEYqi4Y7 ------END CERTIFICATE----- - -TWCA Global Root CA -=================== ------BEGIN CERTIFICATE----- -MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT -CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD -QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK -EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg -Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C -nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV -r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR -Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV -tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W -KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99 -sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p -yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn -kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI -zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC -AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g -cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn -LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M -8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg -/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg -lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP -A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m -i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8 -EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3 -zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0= ------END CERTIFICATE----- - -TeliaSonera Root CA v1 -====================== ------BEGIN CERTIFICATE----- -MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE -CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4 -MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW -VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+ -6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA -3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k -B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn -Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH -oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3 -F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ -oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7 -gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc -TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB -AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW -DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm -zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx -0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW -pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV -G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc -c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT -JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2 -qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6 -Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems -WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= ------END CERTIFICATE----- - -E-Tugra Certification Authority -=============================== ------BEGIN CERTIFICATE----- -MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w -DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls -ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN -ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw -NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx -QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl -cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD -DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd -hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K -CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g -ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ -BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0 -E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz -rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq -jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn -rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5 -dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB -/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG -MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK -kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO -XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807 -VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo -a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc -dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV -KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT -Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0 -8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G -C7TbO6Orb1wdtn7os4I07QZcJA== ------END CERTIFICATE----- - -T-TeleSec GlobalRoot Class 2 -============================ ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM -IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU -cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx -MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz -dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD -ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ -SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F -vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970 -2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV -WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy -YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4 -r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf -vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR -3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN -9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg== ------END CERTIFICATE----- - -Atos TrustedRoot 2011 -===================== ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU -cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4 -MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG -A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV -hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr -54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+ -DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320 -HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR -z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R -l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ -bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB -CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h -k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh -TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9 -61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G -3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed ------END CERTIFICATE----- - -QuoVadis Root CA 1 G3 -===================== ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG -A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv -b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN -MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg -RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE -PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm -PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6 -Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN -ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l -g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV -7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX -9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f -iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg -t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI -hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC -MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3 -GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct -Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP -+V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh -3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa -wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6 -O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0 -FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV -hMJKzRwuJIczYOXD ------END CERTIFICATE----- - -QuoVadis Root CA 2 G3 -===================== ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG -A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv -b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN -MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg -RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh -ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY -NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t -oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o -MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l -V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo -L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ -sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD -6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh -lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI -hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 -AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K -pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9 -x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz -dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X -U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw -mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD -zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN -JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr -O3jtZsSOeWmD3n+M ------END CERTIFICATE----- - -QuoVadis Root CA 3 G3 -===================== ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG -A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv -b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN -MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg -RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286 -IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL -Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe -6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3 -I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U -VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7 -5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi -Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM -dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt -rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI -hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px -KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS -t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ -TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du -DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib -Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD -hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX -0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW -dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2 -PpxxVJkES/1Y+Zj0 ------END CERTIFICATE----- - -DigiCert Assured ID Root G2 -=========================== ------BEGIN CERTIFICATE----- -MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw -IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw -MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL -ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH -35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq -bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw -VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP -YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn -lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO -w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv -0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz -d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW -hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M -jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo -IhNzbM8m9Yop5w== ------END CERTIFICATE----- - -DigiCert Assured ID Root G3 -=========================== ------BEGIN CERTIFICATE----- -MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV -UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD -VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 -MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ -BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb -RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs -KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF -UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy -YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy -1vUhZscv6pZjamVFkpUBtA== ------END CERTIFICATE----- - -DigiCert Global Root G2 -======================= ------BEGIN CERTIFICATE----- -MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw -HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx -MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 -dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq -hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ -kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO -3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV -BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM -UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB -o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu -5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr -F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U -WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH -QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/ -iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl -MrY= ------END CERTIFICATE----- - -DigiCert Global Root G3 -======================= ------BEGIN CERTIFICATE----- -MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV -UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD -VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw -MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k -aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C -AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O -YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP -BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp -Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y -3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34 -VOKa5Vt8sycX ------END CERTIFICATE----- - -DigiCert Trusted Root G4 -======================== ------BEGIN CERTIFICATE----- -MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw -HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 -MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G -CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp -pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o -k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa -vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY -QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6 -MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm -mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7 -f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH -dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8 -oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud -DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD -ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY -ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr -yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy -7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah -ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN -5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb -/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa -5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK -G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP -82Z+ ------END CERTIFICATE----- - -COMODO RSA Certification Authority -================================== ------BEGIN CERTIFICATE----- -MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE -BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG -A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMC -R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE -ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR6FSS0gpWsawNJN3Fz0Rn -dJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8Xpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZ -FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+ -5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pG -x8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX -2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQL -OvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3 -sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+C -GCe01a60y1Dma/RMhnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5 -WdYgGq/yapiqcrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E -FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w -DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt -rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+ -nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSg -tZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwW -sRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiKboHGhfKp -pC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmckejkk9u+UJueBPSZI9FoJA -zMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHq -ZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk52 -7RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7I -LaZRfyHBNVOFBkpdn627G190 ------END CERTIFICATE----- - -USERTrust RSA Certification Authority -===================================== ------BEGIN CERTIFICATE----- -MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK -ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK -ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz -0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2j -Y0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFn -RghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O -+T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq -/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKE -Y1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJM -lXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8 -yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+ -eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd -BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF -MAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW -FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ -7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQ -Eg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM -8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGi -FSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdi -yA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9c -J2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGw -sAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gx -Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9 ------END CERTIFICATE----- - -USERTrust ECC Certification Authority -===================================== ------BEGIN CERTIFICATE----- -MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC -VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU -aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC -VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU -aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2 -0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez -nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV -HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB -HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu -9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= ------END CERTIFICATE----- - -GlobalSign ECC Root CA - R4 -=========================== ------BEGIN CERTIFICATE----- -MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb -R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD -EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb -R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD -EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl -OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P -AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV -MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF -JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q= ------END CERTIFICATE----- - -GlobalSign ECC Root CA - R5 -=========================== ------BEGIN CERTIFICATE----- -MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb -R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD -EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb -R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD -EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 -SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS -h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd -BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx -uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 -yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 ------END CERTIFICATE----- - -Staat der Nederlanden Root CA - G3 -================================== ------BEGIN CERTIFICATE----- -MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE -CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g -Um9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMC -TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l -ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y -olQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WWIkYFsO2t -x1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqXxz8ecAgwoNzFs21v0IJy -EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K -Tj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUur -mkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU5 -1nus6+N86U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp -07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo -FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE -41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMB -AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleu -yjWcLhL75LpdINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD -U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq -KqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1 -v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA -8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b -8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0r -mj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq4BZ+Extq -1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR1VmiiXTTn74eS9fGbbeI -JG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U67cjF68IeHRaVesd+QnGTbksV -tzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk= ------END CERTIFICATE----- - -Staat der Nederlanden EV Root CA -================================ ------BEGIN CERTIFICATE----- -MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE -CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g -RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M -MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl -cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk -SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW -O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r -0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8 -Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV -XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr -08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV -0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd -74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx -fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa -ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI -eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu -c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq -5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN -b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN -f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi -5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4 -WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK -DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy -eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg== ------END CERTIFICATE----- - -IdenTrust Commercial Root CA 1 -============================== ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG -EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS -b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES -MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB -IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld -hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/ -mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi -1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C -XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl -3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy -NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV -WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg -xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix -uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC -AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI -hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH -6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg -ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt -ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV -YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX -feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro -kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe -2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz -Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R -cGzM7vRX+Bi6hG6H ------END CERTIFICATE----- - -IdenTrust Public Sector Root CA 1 -================================= ------BEGIN CERTIFICATE----- -MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG -EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv -ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV -UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS -b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy -P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6 -Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI -rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf -qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS -mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn -ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh -LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v -iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL -4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B -Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw -DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj -t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A -mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt -GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt -m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx -NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4 -Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI -ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC -ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ -3Wl9af0AVqW3rLatt8o+Ae+c ------END CERTIFICATE----- - -Entrust Root Certification Authority - G2 -========================================= ------BEGIN CERTIFICATE----- -MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV -BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy -bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug -b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw -HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT -DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx -OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s -eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP -/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz -HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU -s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y -TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx -AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6 -0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z -iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ -Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi -nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+ -vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO -e4pIb4tF9g== ------END CERTIFICATE----- - -Entrust Root Certification Authority - EC1 -========================================== ------BEGIN CERTIFICATE----- -MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx -FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn -YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl -ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw -FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs -LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg -dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt -IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy -AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef -9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h -vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8 -kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G ------END CERTIFICATE----- - -CFCA EV ROOT -============ ------BEGIN CERTIFICATE----- -MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE -CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB -IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw -MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD -DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV -BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD -7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN -uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW -ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7 -xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f -py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K -gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol -hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ -tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf -BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB -/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB -ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q -ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua -4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG -E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX -BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn -aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy -PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX -kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C -ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su ------END CERTIFICATE----- - -Certinomis - Root CA -==================== ------BEGIN CERTIFICATE----- -MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjETMBEGA1UEChMK -Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAbBgNVBAMTFENlcnRpbm9taXMg -LSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMzMTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIx -EzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRD -ZXJ0aW5vbWlzIC0gUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQos -P5L2fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJflLieY6pOo -d5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQVWZUKxkd8aRi5pwP5ynap -z8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDFTKWrteoB4owuZH9kb/2jJZOLyKIOSY00 -8B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09x -RLWtwHkziOC/7aOgFLScCbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE -6OXWk6RiwsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJwx3t -FvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SGm/lg0h9tkQPTYKbV -PZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4F2iw4lNVYC2vPsKD2NkJK/DAZNuH -i5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZngWVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGj -YzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I -6tNxIqSSaHh02TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF -AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/0KGRHCwPT5iV -WVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWwF6YSjNRieOpWauwK0kDDPAUw -Pk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZSg081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAX -lCOotQqSD7J6wWAsOMwaplv/8gzjqh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJ -y29SWwNyhlCVCNSNh4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9 -Iff/ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8Vbtaw5Bng -DwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwjY/M50n92Uaf0yKHxDHYi -I0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nM -cyrDflOR1m749fPH0FFNjkulW+YZFzvWgQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVr -hkIGuUE= ------END CERTIFICATE----- - -OISTE WISeKey Global Root GB CA -=============================== ------BEGIN CERTIFICATE----- -MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG -EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl -ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw -MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD -VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds -b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX -scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP -rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk -9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o -Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg -GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB -/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI -hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD -dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0 -VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui -HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic -Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= ------END CERTIFICATE----- - -SZAFIR ROOT CA2 -=============== ------BEGIN CERTIFICATE----- -MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG -A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV -BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ -BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD -VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q -qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK -DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE -2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ -ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi -ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P -AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC -AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5 -O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67 -oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul -4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6 -+/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw== ------END CERTIFICATE----- - -Certum Trusted Network CA 2 -=========================== ------BEGIN CERTIFICATE----- -MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE -BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1 -bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y -ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ -TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl -cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB -IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9 -7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o -CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b -Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p -uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130 -GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ -9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB -Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye -hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM -BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI -hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW -Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA -L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo -clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM -pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb -w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo -J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm -ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX -is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7 -zAYspsbiDrW5viSP ------END CERTIFICATE----- - -Hellenic Academic and Research Institutions RootCA 2015 -======================================================= ------BEGIN CERTIFICATE----- -MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcT -BkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0 -aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl -YXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAx -MTIxWjCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMg -QWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNV -BAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIw -MTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC+Kk/G4n8PDwEXT2QNrCROnk8Zlrv -bTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+eh -iGsxr/CL0BgzuNtFajT0AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+ -6PAQZe104S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06CojXd -FPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV9Cz82XBST3i4vTwr -i5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrDgfgXy5I2XdGj2HUb4Ysn6npIQf1F -GQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2 -fu/Z8VFRfS0myGlZYeCsargqNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9mu -iNX6hME6wGkoLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc -Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVdctA4GGqd83EkVAswDQYJKoZI -hvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0IXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+ -D1hYc2Ryx+hFjtyp8iY/xnmMsVMIM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrM -d/K4kPFox/la/vot9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+y -d+2VZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/eaj8GsGsVn -82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnhX9izjFk0WaSrT2y7Hxjb -davYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7F -Jej6A7na+RZukYT1HCjI/CbM1xyQVqdfbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVt -J94Cj8rDtSvK6evIIVM4pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGa -JI7ZjnHKe7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0vm9q -p/UsQu0yrbYhnr68 ------END CERTIFICATE----- - -Hellenic Academic and Research Institutions ECC RootCA 2015 -=========================================================== ------BEGIN CERTIFICATE----- -MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0 -aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u -cyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj -aCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEw -MzcxMlowgaoxCzAJBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmlj -IEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUQwQgYD -VQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIEVDQyBSb290 -Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKgQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVP -dJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJajq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoK -Vlp8aQuqgAkkbH7BRqNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O -BBYEFLQiC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaeplSTA -GiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7SofTUwJCA3sS61kFyjn -dc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR ------END CERTIFICATE----- - -ISRG Root X1 -============ ------BEGIN CERTIFICATE----- -MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UE -BhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQD -EwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQG -EwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMT -DElTUkcgUm9vdCBYMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54r -Vygch77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+0TM8ukj1 -3Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6UA5/TR5d8mUgjU+g4rk8K -b4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sWT8KOEUt+zwvo/7V3LvSye0rgTBIlDHCN -Aymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyHB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ -4Q7e2RCOFvu396j3x+UCB5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf -1b0SHzUvKBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWnOlFu -hjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTnjh8BCNAw1FtxNrQH -usEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbwqHyGO0aoSCqI3Haadr8faqU9GY/r -OPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CIrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4G -A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY -9umbbjANBgkqhkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL -ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ3BebYhtF8GaV -0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KKNFtY2PwByVS5uCbMiogziUwt -hDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJw -TdwJx4nLCgdNbOhdjsnvzqvHu7UrTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nx -e5AW0wdeRlN8NwdCjNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZA -JzVcoyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq4RgqsahD -YVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPAmRGunUHBcnWEvgJBQl9n -JEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcYxn/eR44/KJ4EBs+lVDR3veyJ -m+kXQ99b21/+jh5Xos1AnX5iItreGCc= ------END CERTIFICATE----- - -AC RAIZ FNMT-RCM -================ ------BEGIN CERTIFICATE----- -MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsxCzAJBgNVBAYT -AkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTAeFw0wODEw -MjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJD -TTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC -ggIBALpxgHpMhm5/yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcf -qQgfBBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAzWHFctPVr -btQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxFtBDXaEAUwED653cXeuYL -j2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z374jNUUeAlz+taibmSXaXvMiwzn15Cou -08YfxGyqxRxqAQVKL9LFwag0Jl1mpdICIfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mw -WsXmo8RZZUc1g16p6DULmbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnT -tOmlcYF7wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peSMKGJ -47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2ZSysV4999AeU14EC -ll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMetUqIJ5G+GR4of6ygnXYMgrwTJbFaa -i0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE -FPd9xf3E6Jobd2Sn9R2gzL+HYJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1o -dHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD -nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1RXxlDPiyN8+s -D8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYMLVN0V2Ue1bLdI4E7pWYjJ2cJ -j+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrT -Qfv6MooqtyuGC2mDOL7Nii4LcK2NJpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW -+YJF1DngoABd15jmfZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7 -Ixjp6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp1txyM/1d -8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B9kiABdcPUXmsEKvU7ANm -5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wokRqEIr9baRRmW1FMdW4R58MD3R++Lj8UG -rp1MYp3/RgT408m2ECVAdf4WqslKYIYvuu8wd+RU4riEmViAqhOLUTpPSPaLtrM= ------END CERTIFICATE----- - -Amazon Root CA 1 -================ ------BEGIN CERTIFICATE----- -MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD -VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1 -MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv -bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH -FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ -gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t -dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce -VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB -/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3 -DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM -CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy -8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa -2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2 -xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5 ------END CERTIFICATE----- - -Amazon Root CA 2 -================ ------BEGIN CERTIFICATE----- -MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQswCQYD -VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAyMB4XDTE1 -MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv -bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC -ggIBAK2Wny2cSkxKgXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4 -kHbZW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg1dKmSYXp -N+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K8nu+NQWpEjTj82R0Yiw9 -AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvd -fLC6HM783k81ds8P+HgfajZRRidhW+mez/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAEx -kv8LV/SasrlX6avvDXbR8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSS -btqDT6ZjmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz7Mt0 -Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6+XUyo05f7O0oYtlN -c/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI0u1ufm8/0i2BWSlmy5A5lREedCf+ -3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSw -DPBMMPQFWAJI/TPlUq9LhONmUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oA -A7CXDpO8Wqj2LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY -+gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kSk5Nrp+gvU5LE -YFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl7uxMMne0nxrpS10gxdr9HIcW -xkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygmbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQ -gj9sAq+uEjonljYE1x2igGOpm/HlurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbW -aQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoV -Yh63n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE76KlXIx3 -KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H9jVlpNMKVv/1F2Rs76gi -JUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT4PsJYGw= ------END CERTIFICATE----- - -Amazon Root CA 3 -================ ------BEGIN CERTIFICATE----- -MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG -EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy -NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ -MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB -f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr -Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43 -rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc -eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw== ------END CERTIFICATE----- - -Amazon Root CA 4 -================ ------BEGIN CERTIFICATE----- -MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG -EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy -NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ -MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN -/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri -83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV -HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA -MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1 -AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA== ------END CERTIFICATE----- - -LuxTrust Global Root 2 -====================== ------BEGIN CERTIFICATE----- -MIIFwzCCA6ugAwIBAgIUCn6m30tEntpqJIWe5rgV0xZ/u7EwDQYJKoZIhvcNAQELBQAwRjELMAkG -A1UEBhMCTFUxFjAUBgNVBAoMDUx1eFRydXN0IFMuQS4xHzAdBgNVBAMMFkx1eFRydXN0IEdsb2Jh -bCBSb290IDIwHhcNMTUwMzA1MTMyMTU3WhcNMzUwMzA1MTMyMTU3WjBGMQswCQYDVQQGEwJMVTEW -MBQGA1UECgwNTHV4VHJ1c3QgUy5BLjEfMB0GA1UEAwwWTHV4VHJ1c3QgR2xvYmFsIFJvb3QgMjCC -AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANeFl78RmOnwYoNMPIf5U2o3C/IPPIfOb9wm -Kb3FibrJgz337spbxm1Jc7TJRqMbNBM/wYlFV/TZsfs2ZUv7COJIcRHIbjuend+JZTemhfY7RBi2 -xjcwYkSSl2l9QjAk5A0MiWtj3sXh306pFGxT4GHO9hcvHTy95iJMHZP1EMShduxq3sVs35a0VkBC -wGKSMKEtFZSg0iAGCW5qbeXrt77U8PEVfIvmTroTzEsnXpk8F12PgX8zPU/TPxvsXD/wPEx1bvKm -1Z3aLQdjAsZy6ZS8TEmVT4hSyNvoaYL4zDRbIvCGp4m9SAptZoFtyMhk+wHh9OHe2Z7d21vUKpkm -FRseTJIpgp7VkoGSQXAZ96Tlk0u8d2cx3Rz9MXANF5kM+Qw5GSoXtTBxVdUPrljhPS80m8+f9niF -wpN6cj5mj5wWEWCPnolvZ77gR1o7DJpni89Gxq44o/KnvObWhWszJHAiS8sIm7vI+AIpHb4gDEa/ -a4ebsypmQjVGbKq6rfmYe+lQVRQxv7HaLe2ArWgk+2mr2HETMOZns4dA/Yl+8kPREd8vZS9kzl8U -ubG/Mb2HeFpZZYiq/FkySIbWTLkpS5XTdvN3JW1CHDiDTf2jX5t/Lax5Gw5CMZdjpPuKadUiDTSQ -MC6otOBttpSsvItO13D8xTiOZCXhTTmQzsmHhFhxAgMBAAGjgagwgaUwDwYDVR0TAQH/BAUwAwEB -/zBCBgNVHSAEOzA5MDcGByuBKwEBAQowLDAqBggrBgEFBQcCARYeaHR0cHM6Ly9yZXBvc2l0b3J5 -Lmx1eHRydXN0Lmx1MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBT/GCh2+UgFLKGu8SsbK7JT -+Et8szAdBgNVHQ4EFgQU/xgodvlIBSyhrvErGyuyU/hLfLMwDQYJKoZIhvcNAQELBQADggIBAGoZ -FO1uecEsh9QNcH7X9njJCwROxLHOk3D+sFTAMs2ZMGQXvw/l4jP9BzZAcg4atmpZ1gDlaCDdLnIN -H2pkMSCEfUmmWjfrRcmF9dTHF5kH5ptV5AzoqbTOjFu1EVzPig4N1qx3gf4ynCSecs5U89BvolbW -7MM3LGVYvlcAGvI1+ut7MV3CwRI9loGIlonBWVx65n9wNOeD4rHh4bhY79SV5GCc8JaXcozrhAIu -ZY+kt9J/Z93I055cqqmkoCUUBpvsT34tC38ddfEz2O3OuHVtPlu5mB0xDVbYQw8wkbIEa91WvpWA -VWe+2M2D2RjuLg+GLZKecBPs3lHJQ3gCpU3I+V/EkVhGFndadKpAvAefMLmx9xIX3eP/JEAdemrR -TxgKqpAd60Ae36EeRJIQmvKN4dFLRp7oRUKX6kWZ8+xm1QL68qZKJKrezrnK+T+Tb/mjuuqlPpmt -/f97mfVl7vBZKGfXkJWkE4SphMHozs51k2MavDzq1WQfLSoSOcbDWjLtR5EWDrw4wVDej8oqkDQc -7kGUnF4ZLvhFSZl0kbAEb+MEWrGrKqv+x9CWttrhSmQGbmBNvUJO/3jaJMobtNeWOWyu8Q6qp31I -iyBMz2TWuJdGsE7RKlY6oJO9r4Ak4Ap+58rVyuiFVdw2KuGUaJPHZnJED4AhMmwlxyOAgwrr ------END CERTIFICATE----- - -TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 -============================================= ------BEGIN CERTIFICATE----- -MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNVBAcT -D0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtub2xvamlr -IEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24g -TWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRp -ZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYD -VQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXllIEJpbGlt -c2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklUQUsxLTArBgNVBAsTJEth -bXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBTTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11 -IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y8 -6Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wc -wv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh0 -3+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9 -WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQU -ZT/HiobGPN08VFw1+DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ -KoZIhvcNAQELBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh -AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yc -lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R -e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j -q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= ------END CERTIFICATE----- - -GDCA TrustAUTH R5 ROOT -====================== ------BEGIN CERTIFICATE----- -MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCQ04xMjAw -BgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8wHQYDVQQD -DBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVow -YjELMAkGA1UEBhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ -IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0B -AQEFAAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJjDp6L3TQs -AlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBjTnnEt1u9ol2x8kECK62p -OqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+uKU49tm7srsHwJ5uu4/Ts765/94Y9cnrr -pftZTqfrlYwiOXnhLQiPzLyRuEH3FMEjqcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ -9Cy5WmYqsBebnh52nUpmMUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQ -xXABZG12ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloPzgsM -R6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3GkL30SgLdTMEZeS1SZ -D2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeCjGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4 -oR24qoAATILnsn8JuLwwoC8N9VKejveSswoAHQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx -9hoh49pwBiFYFIeFd3mqgnkCAwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlR -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg -p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZmDRd9FBUb1Ov9 -H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5COmSdI31R9KrO9b7eGZONn35 -6ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ryL3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd -+PwyvzeG5LuOmCd+uh8W4XAR8gPfJWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQ -HtZa37dG/OaG+svgIHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBD -F8Io2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV09tL7ECQ -8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQXR4EzzffHqhmsYzmIGrv -/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrqT8p+ck0LcIymSLumoRT2+1hEmRSuqguT -aaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== ------END CERTIFICATE----- - -TrustCor RootCert CA-1 -====================== ------BEGIN CERTIFICATE----- -MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYDVQQGEwJQQTEP -MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig -U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp -dHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkx -MjMxMTcyMzE2WjCBpDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFu -YW1hIENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUGA1UECwwe -VHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZUcnVzdENvciBSb290Q2Vy -dCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv463leLCJhJrMxnHQFgKq1mq -jQCj/IDHUHuO1CAmujIS2CNUSSUQIpidRtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4 -pQa81QBeCQryJ3pS/C3Vseq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0 -JEsq1pme9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CVEY4h -gLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorWhnAbJN7+KIor0Gqw -/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/DeOxCbeKyKsZn3MzUOcwHwYDVR0j -BBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AYYwDQYJKoZIhvcNAQELBQADggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5 -mDo4Nvu7Zp5I/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf -ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZyonnMlo2HD6C -qFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djtsL1Ac59v2Z3kf9YKVmgenFK+P -3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdNzl/HHk484IkzlQsPpTLWPFp5LBk= ------END CERTIFICATE----- - -TrustCor RootCert CA-2 -====================== ------BEGIN CERTIFICATE----- -MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNVBAYTAlBBMQ8w -DQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQwIgYDVQQKDBtUcnVzdENvciBT -eXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0 -eTEfMB0GA1UEAwwWVHJ1c3RDb3IgUm9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEy -MzExNzI2MzlaMIGkMQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5h -bWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U -cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0 -IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnIG7CKqJiJJWQdsg4foDSq8Gb -ZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9Nk -RvRUqdw6VC0xK5mC8tkq1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1 -oYxOdqHp2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nKDOOb -XUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hapeaz6LMvYHL1cEksr1 -/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF3wP+TfSvPd9cW436cOGlfifHhi5q -jxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQP -eSghYA2FFn3XVDjxklb9tTNMg9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+Ctg -rKAmrhQhJ8Z3mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh -8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAdBgNVHQ4EFgQU -2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6UnrybPZx9mCAZ5YwwYrIwDwYD -VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/h -Osh80QA9z+LqBrWyOrsGS2h60COXdKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnp -kpfbsEZC89NiqpX+MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv -2wnL/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RXCI/hOWB3 -S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYaZH9bDTMJBzN7Bj8RpFxw -PIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dv -DDqPys/cA8GiCcjl/YBeyGBCARsaU1q7N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYU -RpFHmygk71dSTlxCnKr3Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANE -xdqtvArBAs8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp5KeX -RKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu1uwJ ------END CERTIFICATE----- - -TrustCor ECA-1 -============== ------BEGIN CERTIFICATE----- -MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYDVQQGEwJQQTEP -MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig -U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp -dHkxFzAVBgNVBAMMDlRydXN0Q29yIEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3Mjgw -N1owgZwxCzAJBgNVBAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5 -MSQwIgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29y -IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3IgRUNBLTEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb3w9U73NjKYKtR8aja+3+XzP4Q1HpGjOR -MRegdMTUpwHmspI+ap3tDvl0mEDTPwOABoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23 -xFUfJ3zSCNV2HykVh0A53ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmc -p0yJF4OuowReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/wZ0+ -fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZFZtS6mFjBAgMBAAGj -YzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAfBgNVHSMEGDAWgBREnkj1zG1I1KBL -f/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF -AAOCAQEABT41XBVwm8nHc2FvcivUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u -/ukZMjgDfxT2AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F -hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50soIipX1TH0Xs -J5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BIWJZpTdwHjFGTot+fDz2LYLSC -jaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1WitJ/X5g== ------END CERTIFICATE----- - -SSL.com Root Certification Authority RSA -======================================== ------BEGIN CERTIFICATE----- -MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxDjAM -BgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24x -MTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYw -MjEyMTczOTM5WhcNNDEwMjEyMTczOTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx -EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NM -LmNvbSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2RxFdHaxh3a3by/ZPkPQ/C -Fp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aXqhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8 -P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcCC52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/ge -oeOy3ZExqysdBP+lSgQ36YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkp -k8zruFvh/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrFYD3Z -fBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93EJNyAKoFBbZQ+yODJ -gUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVcUS4cK38acijnALXRdMbX5J+tB5O2 -UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi8 -1xtZPCvM8hnIk2snYxnP/Okm+Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4s -bE6x/c+cCbqiM+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV -HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4GA1UdDwEB/wQE -AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGVcpNxJK1ok1iOMq8bs3AD/CUr -dIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBcHadm47GUBwwyOabqG7B52B2ccETjit3E+ZUf -ijhDPwGFpUenPUayvOUiaPd7nNgsPgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAsl -u1OJD7OAUN5F7kR/q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjq -erQ0cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jra6x+3uxj -MxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90IH37hVZkLId6Tngr75qNJ -vTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/YK9f1JmzJBjSWFupwWRoyeXkLtoh/D1JI -Pb9s2KJELtFOt3JY04kTlf5Eq/jXixtunLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406y -wKBjYZC6VWg3dGq2ktufoYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NI -WuuA8ShYIc2wBlX7Jz9TkHCpBB5XJ7k= ------END CERTIFICATE----- - -SSL.com Root Certification Authority ECC -======================================== ------BEGIN CERTIFICATE----- -MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMCVVMxDjAMBgNV -BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xMTAv -BgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEy -MTgxNDAzWhcNNDEwMjEyMTgxNDAzWjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAO -BgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv -bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuBBAAiA2IA -BEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI7Z4INcgn64mMU1jrYor+ -8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPgCemB+vNH06NjMGEwHQYDVR0OBBYEFILR -hXMw5zUE044CkvvlpNHEIejNMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTT -jgKS++Wk0cQh6M0wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCW -e+0F+S8Tkdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+gA0z -5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl ------END CERTIFICATE----- - -SSL.com EV Root Certification Authority RSA R2 -============================================== ------BEGIN CERTIFICATE----- -MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAlVTMQ4w -DAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9u -MTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy -MB4XDTE3MDUzMTE4MTQzN1oXDTQyMDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQI -DAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYD -VQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMIICIjAN -BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvqM0fNTPl9fb69LT3w23jh -hqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssufOePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7w -cXHswxzpY6IXFJ3vG2fThVUCAtZJycxa4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTO -Zw+oz12WGQvE43LrrdF9HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+ -B6KjBSYRaZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcAb9Zh -CBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQGp8hLH94t2S42Oim -9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQVPWKchjgGAGYS5Fl2WlPAApiiECto -RHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMOpgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+Slm -JuwgUHfbSguPvuUCYHBBXtSuUDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48 -+qvWBkofZ6aYMBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV -HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa49QaAJadz20Zp -qJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBWs47LCp1Jjr+kxJG7ZhcFUZh1 -++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nx -Y/hoLVUE0fKNsKTPvDxeH3jnpaAgcLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2G -guDKBAdRUNf/ktUM79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDz -OFSz/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXtll9ldDz7 -CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEmKf7GUmG6sXP/wwyc5Wxq -lD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKKQbNmC1r7fSOl8hqw/96bg5Qu0T/fkreR -rwU7ZcegbLHNYhLDkBvjJc40vG93drEQw/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1 -hlMYegouCRw2n5H9gooiS9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX -9hwJ1C07mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w== ------END CERTIFICATE----- - -SSL.com EV Root Certification Authority ECC -=========================================== ------BEGIN CERTIFICATE----- -MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCVVMxDjAMBgNV -BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xNDAy -BgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYw -MjEyMTgxNTIzWhcNNDEwMjEyMTgxNTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx -EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NM -LmNvbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB -BAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMAVIbc/R/fALhBYlzccBYy -3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1KthkuWnBaBu2+8KGwytAJKaNjMGEwHQYDVR0O -BBYEFFvKXuXe0oGqzagtZFG22XKbl+ZPMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe -5d7SgarNqC1kUbbZcpuX5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJ -N+vp1RPZytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZgh5Mm -m7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg== ------END CERTIFICATE----- - -GlobalSign Root CA - R6 -======================= ------BEGIN CERTIFICATE----- -MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEgMB4GA1UECxMX -R2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds -b2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQxMjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9i -YWxTaWduIFJvb3QgQ0EgLSBSNjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFs -U2lnbjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQss -grRIxutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1kZguSgMpE -3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxDaNc9PIrFsmbVkJq3MQbF -vuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJwLnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqM -PKq0pPbzlUoSB239jLKJz9CgYXfIWHSw1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+ -azayOeSsJDa38O+2HBNXk7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05O -WgtH8wY2SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/hbguy -CLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4nWUx2OVvq+aWh2IMP -0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpYrZxCRXluDocZXFSxZba/jJvcE+kN -b7gu3GduyYsRtYQUigAZcIN5kZeR1BonvzceMgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQE -AwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNV -HSMEGDAWgBSubAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN -nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGtIxg93eFyRJa0 -lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr6155wsTLxDKZmOMNOsIeDjHfrY -BzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLjvUYAGm0CuiVdjaExUd1URhxN25mW7xocBFym -Fe944Hn+Xds+qkxV/ZoVqW/hpvvfcDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr -3TsTjxKM4kEaSHpzoHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB1 -0jZpnOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfspA9MRf/T -uTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+vJJUEeKgDu+6B5dpffItK -oZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+t -JDfLRVpOoERIyNiwmcUVhAn21klJwGW45hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA= ------END CERTIFICATE----- - -OISTE WISeKey Global Root GC CA -=============================== ------BEGIN CERTIFICATE----- -MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQswCQYDVQQGEwJD -SDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEo -MCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRa -Fw00MjA1MDkwOTU4MzNaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQL -ExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh -bCBSb290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4nieUqjFqdr -VCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4Wp2OQ0jnUsYd4XxiWD1Ab -NTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd -BgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7TrYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0E -AwMDaAAwZQIwJsdpW9zV57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtk -AjEA2zQgMgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 ------END CERTIFICATE----- - -GTS Root R1 -=========== ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQbkepxUtHDA3sM9CJuRz04TANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQG -EwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJv -b3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAG -A1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx -9vaMf/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7r -aKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnW -r4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqM -LnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly -4cpk9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr -06zqkUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92 -wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om -3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNu -JLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEM -BQADggIBADiWCu49tJYeX++dnAsznyvgyv3SjgofQXSlfKqE1OXyHuY3UjKcC9FhHb8owbZEKTV1 -d5iyfNm9dKyKaOOpMQkpAWBz40d8U6iQSifvS9efk+eCNs6aaAyC58/UEBZvXw6ZXPYfcX3v73sv -fuo21pdwCxXu11xWajOl40k4DLh9+42FpLFZXvRq4d2h9mREruZRgyFmxhE+885H7pwoHyXa/6xm -ld01D1zvICxi/ZG6qcz8WpyTgYMpl0p8WnK0OdC3d8t5/Wk6kjftbjhlRn7pYL15iJdfOBL07q9b -gsiG1eGZbYwE8na6SfZu6W0eX6DvJ4J2QPim01hcDyxC2kLGe4g0x8HYRZvBPsVhHdljUEn2NIVq -4BjFbkerQUIpm/ZgDdIx02OYI5NaAIFItO/Nis3Jz5nu2Z6qNuFoS3FJFDYoOj0dzpqPJeaAcWEr -tXvM+SUWgeExX6GjfhaknBZqlxi9dnKlC54dNuYvoS++cJEPqOba+MSSQGwlfnuzCdyyF62ARPBo -pY+Udf90WuioAnwMCeKpSwughQtiue+hMZL77/ZRBIls6Kl0obsXs7X9SQ98POyDGCBDTtWTurQ0 -sR8WNh8M5mQ5Fkzc4P4dyKliPUDqysU0ArSuiYgzNdwsE3PYJ/HQcu51OyLemGhmW/HGY0dVHLql -CFF1pkgl ------END CERTIFICATE----- - -GTS Root R2 -=========== ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQbkepxlqz5yDFMJo/aFLybzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQG -EwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJv -b3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAG -A1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTuk -k3LvCvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo -7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWI -m8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5Gm -dFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbu -ak7MkogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscsz -cTJGr61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW -Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73Vululycsl -aVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy -5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEM -BQADggIBALZp8KZ3/p7uC4Gt4cCpx/k1HUCCq+YEtN/L9x0Pg/B+E02NjO7jMyLDOfxA325BS0JT -vhaI8dI4XsRomRyYUpOM52jtG2pzegVATX9lO9ZY8c6DR2Dj/5epnGB3GFW1fgiTz9D2PGcDFWEJ -+YF59exTpJ/JjwGLc8R3dtyDovUMSRqodt6Sm2T4syzFJ9MHwAiApJiS4wGWAqoC7o87xdFtCjMw -c3i5T1QWvwsHoaRc5svJXISPD+AVdyx+Jn7axEvbpxZ3B7DNdehyQtaVhJ2Gg/LkkM0JR9SLA3Da -WsYDQvTtN6LwG1BUSw7YhN4ZKJmBR64JGz9I0cNv4rBgF/XuIwKl2gBbbZCr7qLpGzvpx0QnRY5r -n/WkhLx3+WuXrD5RRaIRpsyF7gpo8j5QOHokYh4XIDdtak23CZvJ/KRY9bb7nE4Yu5UC56Gtmwfu -Nmsk0jmGwZODUNKBRqhfYlcsu2xkiAhu7xNUX90txGdj08+JN7+dIPT7eoOboB6BAFDC5AwiWVIQ -7UNWhwD4FFKnHYuTjKJNRn8nxnGbJN7k2oaLDX5rIMHAnuFl2GqjpuiFizoHCBy69Y9Vmhh1fuXs -gWbRIXOhNUQLgD1bnF5vKheW0YMjiGZt5obicDIvUiLnyOd/xCxgXS/Dr55FBcOEArf9LAhST4Ld -o/DUhgkC ------END CERTIFICATE----- - -GTS Root R3 -=========== ------BEGIN CERTIFICATE----- -MIICDDCCAZGgAwIBAgIQbkepx2ypcyRAiQ8DVd2NHTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV -UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg -UjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE -ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcq -hkjOPQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUU -Rout736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24Cej -QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP -0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEAgFukfCPAlaUs3L6JbyO5o91lAFJekazInXJ0 -glMLfalAvWhgxeG4VDvBNhcl2MG9AjEAnjWSdIUlUfUk7GRSJFClH9voy8l27OyCbvWFGFPouOOa -KaqW04MjyaR7YbPMAuhd ------END CERTIFICATE----- - -GTS Root R4 -=========== ------BEGIN CERTIFICATE----- -MIICCjCCAZGgAwIBAgIQbkepyIuUtui7OyrYorLBmTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV -UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg -UjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE -ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcq -hkjOPQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa -6zzuhXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqj -QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV -2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNnADBkAjBqUFJ0CMRw3J5QdCHojXohw0+WbhXRIjVhLfoI -N+4Zba3bssx9BzT1YBkstTTZbyACMANxsbqjYAuG7ZoIapVon+Kz4ZNkfF6Tpt95LY2F45TPI11x -zPKwTdb+mciUqXWi4w== ------END CERTIFICATE----- - -UCA Global G2 Root -================== ------BEGIN CERTIFICATE----- -MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQG -EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBHbG9iYWwgRzIgUm9vdDAeFw0x -NjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0xCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlU -cnVzdDEbMBkGA1UEAwwSVUNBIEdsb2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEAxeYrb3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmT -oni9kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzmVHqUwCoV -8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/RVogvGjqNO7uCEeBHANBS -h6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDcC/Vkw85DvG1xudLeJ1uK6NjGruFZfc8o -LTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIjtm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/ -R+zvWr9LesGtOxdQXGLYD0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBe -KW4bHAyvj5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6DlNaBa -4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6iIis7nCs+dwp4wwc -OxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznPO6Q0ibd5Ei9Hxeepl2n8pndntd97 -8XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O -BBYEFIHEjMz15DD/pQwIX4wVZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo -5sOASD0Ee/ojL3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5 -1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl1qnN3e92mI0A -Ds0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oUb3n09tDh05S60FdRvScFDcH9 -yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LVPtateJLbXDzz2K36uGt/xDYotgIVilQsnLAX -c47QN6MUPJiVAAwpBVueSUmxX8fjy88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHo -jhJi6IjMtX9Gl8CbEGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZk -bxqgDMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI+Vg7RE+x -ygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGyYiGqhkCyLmTTX8jjfhFn -RR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bXUB+K+wb1whnw0A== ------END CERTIFICATE----- - -UCA Extended Validation Root -============================ ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQG -EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9u -IFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMxMDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8G -A1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrs -iWogD4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvSsPGP2KxF -Rv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aopO2z6+I9tTcg1367r3CTu -eUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dksHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR -59mzLC52LqGj3n5qiAno8geK+LLNEOfic0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH -0mK1lTnj8/FtDw5lhIpjVMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KR -el7sFsLzKuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/TuDv -B0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41Gsx2VYVdWf6/wFlth -WG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs1+lvK9JKBZP8nm9rZ/+I8U6laUpS -NwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQDfwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS -3H5aBZ8eNJr34RQwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQEL -BQADggIBADaNl8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR -ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQVBcZEhrxH9cM -aVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5c6sq1WnIeJEmMX3ixzDx/BR4 -dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb -+7lsq+KePRXBOy5nAliRn+/4Qh8st2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOW -F3sGPjLtx7dCvHaj2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwi -GpWOvpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2CxR9GUeOc -GMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmxcmtpzyKEC2IPrNkZAJSi -djzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbMfjKaiJUINlK73nZfdklJrX+9ZSCyycEr -dhh2n1ax ------END CERTIFICATE----- - -Certigna Root CA -================ ------BEGIN CERTIFICATE----- -MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAwWjELMAkGA1UE -BhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAwMiA0ODE0NjMwODEwMDAzNjEZ -MBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0xMzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjda -MFoxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYz -MDgxMDAwMzYxGTAXBgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sOty3tRQgX -stmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9MCiBtnyN6tMbaLOQdLNyz -KNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPuI9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8 -JXrJhFwLrN1CTivngqIkicuQstDuI7pmTLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16 -XdG+RCYyKfHx9WzMfgIhC59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq -4NYKpkDfePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3YzIoej -wpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWTCo/1VTp2lc5ZmIoJ -lXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1kJWumIWmbat10TWuXekG9qxf5kBdI -jzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp/ -/TBt2dzhauH8XwIDAQABo4IBGjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw -HQYDVR0OBBYEFBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of -1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczovL3d3d3cuY2Vy -dGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilodHRwOi8vY3JsLmNlcnRpZ25h -LmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYraHR0cDovL2NybC5kaGlteW90aXMuY29tL2Nl -cnRpZ25hcm9vdGNhLmNybDANBgkqhkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOIt -OoldaDgvUSILSo3L6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxP -TGRGHVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH60BGM+RFq -7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncBlA2c5uk5jR+mUYyZDDl3 -4bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdio2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd -8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS -6Cvu5zHbugRqh5jnxV/vfaci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaY -tlu3zM63Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayhjWZS -aX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw3kAP+HwV96LOPNde -E4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0= ------END CERTIFICATE----- diff --git a/libs/cpp-httplib/example/client.cc b/libs/cpp-httplib/example/client.cc deleted file mode 100644 index a9b0fc0..0000000 --- a/libs/cpp-httplib/example/client.cc +++ /dev/null @@ -1,41 +0,0 @@ -// -// client.cc -// -// Copyright (c) 2019 Yuji Hirose. All rights reserved. -// MIT License -// - -#include -#include - -#define CA_CERT_FILE "./ca-bundle.crt" - -using namespace std; - -int main(void) { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - httplib::SSLClient cli("localhost", 8080); - // httplib::SSLClient cli("google.com"); - // httplib::SSLClient cli("www.youtube.com"); - cli.set_ca_cert_path(CA_CERT_FILE); - cli.enable_server_certificate_verification(true); -#else - httplib::Client cli("localhost", 8080); -#endif - - if (auto res = cli.Get("/hi")) { - cout << res->status << endl; - cout << res->get_header_value("Content-Type") << endl; - cout << res->body << endl; - } else { - cout << "error code: " << res.error() << std::endl; -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - auto result = cli.get_openssl_verify_result(); - if (result) { - cout << "verify error: " << X509_verify_cert_error_string(result) << endl; - } -#endif - } - - return 0; -} diff --git a/libs/cpp-httplib/example/client.vcxproj b/libs/cpp-httplib/example/client.vcxproj deleted file mode 100644 index 817847d..0000000 --- a/libs/cpp-httplib/example/client.vcxproj +++ /dev/null @@ -1,160 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {6DB1FC63-B153-4279-92B7-D8A11AF285D6} - Win32Proj - client - 10.0 - - - - Application - true - Unicode - v143 - - - Application - true - Unicode - v143 - - - Application - false - true - Unicode - v143 - - - Application - false - true - Unicode - v143 - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(ProjectName)_obj\ - - - true - $(Platform)\$(Configuration)\$(ProjectName)_obj\ - - - false - $(Configuration)\$(ProjectName)_obj\ - - - false - $(Platform)\$(Configuration)\$(ProjectName)_obj\ - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - .. - - - Console - true - Ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - .. - - - Console - true - Ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - .. - - - Console - true - true - true - Ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - .. - - - Console - true - true - true - Ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - - - - - \ No newline at end of file diff --git a/libs/cpp-httplib/example/example.sln b/libs/cpp-httplib/example/example.sln deleted file mode 100644 index 25ca526..0000000 --- a/libs/cpp-httplib/example/example.sln +++ /dev/null @@ -1,46 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27703.2047 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server", "server.vcxproj", "{864CD288-050A-4C8B-9BEF-3048BD876C5B}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client", "client.vcxproj", "{6DB1FC63-B153-4279-92B7-D8A11AF285D6}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{280E605F-0CB8-4336-8D9F-CE50A9472AE2}" - ProjectSection(SolutionItems) = preProject - ..\README.md = ..\README.md - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {864CD288-050A-4C8B-9BEF-3048BD876C5B}.Debug|Win32.ActiveCfg = Debug|Win32 - {864CD288-050A-4C8B-9BEF-3048BD876C5B}.Debug|Win32.Build.0 = Debug|Win32 - {864CD288-050A-4C8B-9BEF-3048BD876C5B}.Debug|x64.ActiveCfg = Debug|x64 - {864CD288-050A-4C8B-9BEF-3048BD876C5B}.Debug|x64.Build.0 = Debug|x64 - {864CD288-050A-4C8B-9BEF-3048BD876C5B}.Release|Win32.ActiveCfg = Release|Win32 - {864CD288-050A-4C8B-9BEF-3048BD876C5B}.Release|Win32.Build.0 = Release|Win32 - {864CD288-050A-4C8B-9BEF-3048BD876C5B}.Release|x64.ActiveCfg = Release|x64 - {864CD288-050A-4C8B-9BEF-3048BD876C5B}.Release|x64.Build.0 = Release|x64 - {6DB1FC63-B153-4279-92B7-D8A11AF285D6}.Debug|Win32.ActiveCfg = Debug|Win32 - {6DB1FC63-B153-4279-92B7-D8A11AF285D6}.Debug|Win32.Build.0 = Debug|Win32 - {6DB1FC63-B153-4279-92B7-D8A11AF285D6}.Debug|x64.ActiveCfg = Debug|x64 - {6DB1FC63-B153-4279-92B7-D8A11AF285D6}.Debug|x64.Build.0 = Debug|x64 - {6DB1FC63-B153-4279-92B7-D8A11AF285D6}.Release|Win32.ActiveCfg = Release|Win32 - {6DB1FC63-B153-4279-92B7-D8A11AF285D6}.Release|Win32.Build.0 = Release|Win32 - {6DB1FC63-B153-4279-92B7-D8A11AF285D6}.Release|x64.ActiveCfg = Release|x64 - {6DB1FC63-B153-4279-92B7-D8A11AF285D6}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7097C9E4-07F8-48C6-A888-BBA9EBB5D17D} - EndGlobalSection -EndGlobal diff --git a/libs/cpp-httplib/example/hello.cc b/libs/cpp-httplib/example/hello.cc deleted file mode 100644 index 38d25a6..0000000 --- a/libs/cpp-httplib/example/hello.cc +++ /dev/null @@ -1,19 +0,0 @@ -// -// hello.cc -// -// Copyright (c) 2019 Yuji Hirose. All rights reserved. -// MIT License -// - -#include -using namespace httplib; - -int main(void) { - Server svr; - - svr.Get("/hi", [](const Request & /*req*/, Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - - svr.listen("0.0.0.0", 8080); -} diff --git a/libs/cpp-httplib/example/one_time_request.cc b/libs/cpp-httplib/example/one_time_request.cc deleted file mode 100644 index 9a8ac34..0000000 --- a/libs/cpp-httplib/example/one_time_request.cc +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include - -using namespace httplib; - -const char *HOST = "localhost"; -const int PORT = 1234; - -void one_time_request_server(const char *label) { - std::thread th; - Server svr; - - svr.Get("/hi", [&](const Request & /*req*/, Response &res) { - res.set_content(std::string("Hello from ") + label, "text/plain"); - - // Stop server - th = std::thread([&]() { svr.stop(); }); - }); - - svr.listen(HOST, PORT); - th.join(); - - std::cout << label << " ended..." << std::endl; -} - -void send_request(const char *label) { - Client cli(HOST, PORT); - - std::cout << "Send " << label << " request" << std::endl; - auto res = cli.Get("/hi"); - - if (res) { - std::cout << res->body << std::endl; - } else { - std::cout << "Request error: " + to_string(res.error()) << std::endl; - } -} - -int main(void) { - auto th1 = std::thread([&]() { one_time_request_server("Server #1"); }); - auto th2 = std::thread([&]() { one_time_request_server("Server #2"); }); - - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - - send_request("1st"); - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - - send_request("2nd"); - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - - send_request("3rd"); - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - - th1.join(); - th2.join(); -} diff --git a/libs/cpp-httplib/example/redirect.cc b/libs/cpp-httplib/example/redirect.cc deleted file mode 100644 index b1f3939..0000000 --- a/libs/cpp-httplib/example/redirect.cc +++ /dev/null @@ -1,60 +0,0 @@ -// -// redirect.cc -// -// Copyright (c) 2019 Yuji Hirose. All rights reserved. -// MIT License -// - -#include - -#define SERVER_CERT_FILE "./cert.pem" -#define SERVER_PRIVATE_KEY_FILE "./key.pem" - -using namespace httplib; - -int main(void) { - // HTTP server - Server http; -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLServer https(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE); -#endif - - http.Get("/test", [](const Request & /*req*/, Response &res) { - res.set_content("Test\n", "text/plain"); - }); - - http.set_error_handler([](const Request & /*req*/, Response &res) { - res.set_redirect("https://localhost:8081/"); - }); - - // HTTPS server -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - https.Get("/", [=](const Request & /*req*/, Response &res) { - res.set_redirect("/hi"); - }); - - https.Get("/hi", [](const Request & /*req*/, Response &res) { - res.set_content("Hello World!\n", "text/plain"); - }); - - https.Get("/stop", [&](const Request & /*req*/, Response & /*res*/) { - https.stop(); - http.stop(); - }); -#endif - - // Run servers - auto httpThread = std::thread([&]() { http.listen("localhost", 8080); }); - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - auto httpsThread = std::thread([&]() { https.listen("localhost", 8081); }); -#endif - - httpThread.join(); - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - httpsThread.join(); -#endif - - return 0; -} diff --git a/libs/cpp-httplib/example/server.cc b/libs/cpp-httplib/example/server.cc deleted file mode 100644 index 1c347f5..0000000 --- a/libs/cpp-httplib/example/server.cc +++ /dev/null @@ -1,113 +0,0 @@ -// -// sample.cc -// -// Copyright (c) 2019 Yuji Hirose. All rights reserved. -// MIT License -// - -#include -#include -#include - -#define SERVER_CERT_FILE "./cert.pem" -#define SERVER_PRIVATE_KEY_FILE "./key.pem" - -using namespace httplib; - -std::string dump_headers(const Headers &headers) { - std::string s; - char buf[BUFSIZ]; - - for (auto it = headers.begin(); it != headers.end(); ++it) { - const auto &x = *it; - snprintf(buf, sizeof(buf), "%s: %s\n", x.first.c_str(), x.second.c_str()); - s += buf; - } - - return s; -} - -std::string log(const Request &req, const Response &res) { - std::string s; - char buf[BUFSIZ]; - - s += "================================\n"; - - snprintf(buf, sizeof(buf), "%s %s %s", req.method.c_str(), - req.version.c_str(), req.path.c_str()); - s += buf; - - std::string query; - for (auto it = req.params.begin(); it != req.params.end(); ++it) { - const auto &x = *it; - snprintf(buf, sizeof(buf), "%c%s=%s", - (it == req.params.begin()) ? '?' : '&', x.first.c_str(), - x.second.c_str()); - query += buf; - } - snprintf(buf, sizeof(buf), "%s\n", query.c_str()); - s += buf; - - s += dump_headers(req.headers); - - s += "--------------------------------\n"; - - snprintf(buf, sizeof(buf), "%d %s\n", res.status, res.version.c_str()); - s += buf; - s += dump_headers(res.headers); - s += "\n"; - - if (!res.body.empty()) { s += res.body; } - - s += "\n"; - - return s; -} - -int main(void) { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE); -#else - Server svr; -#endif - - if (!svr.is_valid()) { - printf("server has an error...\n"); - return -1; - } - - svr.Get("/", [=](const Request & /*req*/, Response &res) { - res.set_redirect("/hi"); - }); - - svr.Get("/hi", [](const Request & /*req*/, Response &res) { - res.set_content("Hello World!\n", "text/plain"); - }); - - svr.Get("/slow", [](const Request & /*req*/, Response &res) { - std::this_thread::sleep_for(std::chrono::seconds(2)); - res.set_content("Slow...\n", "text/plain"); - }); - - svr.Get("/dump", [](const Request &req, Response &res) { - res.set_content(dump_headers(req.headers), "text/plain"); - }); - - svr.Get("/stop", - [&](const Request & /*req*/, Response & /*res*/) { svr.stop(); }); - - svr.set_error_handler([](const Request & /*req*/, Response &res) { - const char *fmt = "

Error Status: %d

"; - char buf[BUFSIZ]; - snprintf(buf, sizeof(buf), fmt, res.status); - res.set_content(buf, "text/html"); - }); - - svr.set_logger([](const Request &req, const Response &res) { - printf("%s", log(req, res).c_str()); - }); - - svr.listen("localhost", 8080); - - return 0; -} diff --git a/libs/cpp-httplib/example/server.vcxproj b/libs/cpp-httplib/example/server.vcxproj deleted file mode 100644 index f18af76..0000000 --- a/libs/cpp-httplib/example/server.vcxproj +++ /dev/null @@ -1,160 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - {864CD288-050A-4C8B-9BEF-3048BD876C5B} - Win32Proj - sample - 10.0 - - - - Application - true - Unicode - v143 - - - Application - true - Unicode - v143 - - - Application - false - true - Unicode - v143 - - - Application - false - true - Unicode - v143 - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(ProjectName)_obj\ - - - true - $(Platform)\$(Configuration)\$(ProjectName)_obj\ - - - false - $(Configuration)\$(ProjectName)_obj\ - - - false - $(Platform)\$(Configuration)\$(ProjectName)_obj\ - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - .. - - - Console - true - Ws2_32.lib;%(AdditionalDependencies) - - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - .. - - - Console - true - Ws2_32.lib;%(AdditionalDependencies) - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - .. - - - Console - true - true - true - Ws2_32.lib;%(AdditionalDependencies) - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - .. - - - Console - true - true - true - Ws2_32.lib;%(AdditionalDependencies) - - - - - - \ No newline at end of file diff --git a/libs/cpp-httplib/example/server_and_client.cc b/libs/cpp-httplib/example/server_and_client.cc deleted file mode 100644 index 34bf852..0000000 --- a/libs/cpp-httplib/example/server_and_client.cc +++ /dev/null @@ -1,90 +0,0 @@ -// -// server_and_client.cc -// -// Copyright (c) 2025 Yuji Hirose. All rights reserved. -// MIT License -// - -#include -#include -#include - -using namespace httplib; - -std::string dump_headers(const Headers &headers) { - std::string s; - char buf[BUFSIZ]; - - for (auto it = headers.begin(); it != headers.end(); ++it) { - const auto &x = *it; - snprintf(buf, sizeof(buf), "%s: %s\n", x.first.c_str(), x.second.c_str()); - s += buf; - } - - return s; -} - -void logger(const Request &req, const Response &res) { - std::string s; - char buf[BUFSIZ]; - - s += "================================\n"; - - snprintf(buf, sizeof(buf), "%s %s %s", req.method.c_str(), - req.version.c_str(), req.path.c_str()); - s += buf; - - std::string query; - for (auto it = req.params.begin(); it != req.params.end(); ++it) { - const auto &x = *it; - snprintf(buf, sizeof(buf), "%c%s=%s", - (it == req.params.begin()) ? '?' : '&', x.first.c_str(), - x.second.c_str()); - query += buf; - } - snprintf(buf, sizeof(buf), "%s\n", query.c_str()); - s += buf; - - s += dump_headers(req.headers); - - s += "--------------------------------\n"; - - snprintf(buf, sizeof(buf), "%d %s\n", res.status, res.version.c_str()); - s += buf; - s += dump_headers(res.headers); - s += "\n"; - - if (!res.body.empty()) { s += res.body; } - - s += "\n"; - - std::cout << s; -} - -int main(void) { - // Server - Server svr; - svr.set_logger(logger); - - svr.Post("/post", [&](const Request & /*req*/, Response &res) { - res.set_content("POST", "text/plain"); - }); - - auto th = std::thread([&]() { svr.listen("localhost", 8080); }); - - auto se = detail::scope_exit([&] { - svr.stop(); - th.join(); - }); - - svr.wait_until_ready(); - - // Client - Client cli{"localhost", 8080}; - - std::string body = R"({"hello": "world"})"; - - auto res = cli.Post("/post", body, "application/json"); - std::cout << "--------------------------------" << std::endl; - std::cout << to_string(res.error()) << std::endl; -} diff --git a/libs/cpp-httplib/example/simplecli.cc b/libs/cpp-httplib/example/simplecli.cc deleted file mode 100644 index b005e40..0000000 --- a/libs/cpp-httplib/example/simplecli.cc +++ /dev/null @@ -1,29 +0,0 @@ -// -// simplecli.cc -// -// Copyright (c) 2019 Yuji Hirose. All rights reserved. -// MIT License -// - -#include -#include - -using namespace std; - -int main(void) { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - auto scheme_host_port = "https://localhost:8080"; -#else - auto scheme_host_port = "http://localhost:8080"; -#endif - - if (auto res = httplib::Client(scheme_host_port).Get("/hi")) { - cout << res->status << endl; - cout << res->get_header_value("Content-Type") << endl; - cout << res->body << endl; - } else { - cout << res.error() << endl; - } - - return 0; -} diff --git a/libs/cpp-httplib/example/simplesvr.cc b/libs/cpp-httplib/example/simplesvr.cc deleted file mode 100644 index e45e360..0000000 --- a/libs/cpp-httplib/example/simplesvr.cc +++ /dev/null @@ -1,148 +0,0 @@ -// -// simplesvr.cc -// -// Copyright (c) 2019 Yuji Hirose. All rights reserved. -// MIT License -// - -#include -#include -#include - -#define SERVER_CERT_FILE "./cert.pem" -#define SERVER_PRIVATE_KEY_FILE "./key.pem" - -using namespace httplib; -using namespace std; - -string dump_headers(const Headers &headers) { - string s; - char buf[BUFSIZ]; - - for (const auto &x : headers) { - snprintf(buf, sizeof(buf), "%s: %s\n", x.first.c_str(), x.second.c_str()); - s += buf; - } - - return s; -} - -string dump_multipart_formdata(const MultipartFormData &form) { - string s; - char buf[BUFSIZ]; - - s += "--------------------------------\n"; - - for (const auto &x : form.fields) { - const auto &name = x.first; - const auto &field = x.second; - - snprintf(buf, sizeof(buf), "name: %s\n", name.c_str()); - s += buf; - - snprintf(buf, sizeof(buf), "text length: %zu\n", field.content.size()); - s += buf; - - s += "----------------\n"; - } - - for (const auto &x : form.files) { - const auto &name = x.first; - const auto &file = x.second; - - snprintf(buf, sizeof(buf), "name: %s\n", name.c_str()); - s += buf; - - snprintf(buf, sizeof(buf), "filename: %s\n", file.filename.c_str()); - s += buf; - - snprintf(buf, sizeof(buf), "content type: %s\n", file.content_type.c_str()); - s += buf; - - snprintf(buf, sizeof(buf), "text length: %zu\n", file.content.size()); - s += buf; - - s += "----------------\n"; - } - - return s; -} - -string log(const Request &req, const Response &res) { - string s; - char buf[BUFSIZ]; - - s += "================================\n"; - - snprintf(buf, sizeof(buf), "%s %s %s", req.method.c_str(), - req.version.c_str(), req.path.c_str()); - s += buf; - - string query; - for (auto it = req.params.begin(); it != req.params.end(); ++it) { - const auto &x = *it; - snprintf(buf, sizeof(buf), "%c%s=%s", - (it == req.params.begin()) ? '?' : '&', x.first.c_str(), - x.second.c_str()); - query += buf; - } - snprintf(buf, sizeof(buf), "%s\n", query.c_str()); - s += buf; - - s += dump_headers(req.headers); - s += dump_multipart_formdata(req.form); - - s += "--------------------------------\n"; - - snprintf(buf, sizeof(buf), "%d\n", res.status); - s += buf; - s += dump_headers(res.headers); - - return s; -} - -int main(int argc, const char **argv) { - if (argc > 1 && string("--help") == argv[1]) { - cout << "usage: simplesvr [PORT] [DIR]" << endl; - return 1; - } - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE); -#else - Server svr; -#endif - - svr.Post("/multipart", [](const Request &req, Response &res) { - auto body = dump_headers(req.headers) + dump_multipart_formdata(req.form); - - res.set_content(body, "text/plain"); - }); - - svr.set_error_handler([](const Request & /*req*/, Response &res) { - const char *fmt = "

Error Status: %d

"; - char buf[BUFSIZ]; - snprintf(buf, sizeof(buf), fmt, res.status); - res.set_content(buf, "text/html"); - }); - - svr.set_logger( - [](const Request &req, const Response &res) { cout << log(req, res); }); - - auto port = 8080; - if (argc > 1) { port = atoi(argv[1]); } - - auto base_dir = "./"; - if (argc > 2) { base_dir = argv[2]; } - - if (!svr.set_mount_point("/", base_dir)) { - cout << "The specified base directory doesn't exist..."; - return 1; - } - - cout << "The server started at port " << port << "..." << endl; - - svr.listen("localhost", port); - - return 0; -} diff --git a/libs/cpp-httplib/example/upload.cc b/libs/cpp-httplib/example/upload.cc deleted file mode 100644 index f7a822b..0000000 --- a/libs/cpp-httplib/example/upload.cc +++ /dev/null @@ -1,61 +0,0 @@ -// -// upload.cc -// -// Copyright (c) 2019 Yuji Hirose. All rights reserved. -// MIT License -// - -#include -#include -#include -using namespace httplib; -using namespace std; - -const char *html = R"( -
- - - -
- -)"; - -int main(void) { - Server svr; - - svr.Get("/", [](const Request & /*req*/, Response &res) { - res.set_content(html, "text/html"); - }); - - svr.Post("/post", [](const Request &req, Response &res) { - const auto &image_file = req.form.get_file("image_file"); - const auto &text_file = req.form.get_file("text_file"); - - cout << "image file length: " << image_file.content.length() << endl - << "image file name: " << image_file.filename << endl - << "text file length: " << text_file.content.length() << endl - << "text file name: " << text_file.filename << endl; - - { - ofstream ofs(image_file.filename, ios::binary); - ofs << image_file.content; - } - { - ofstream ofs(text_file.filename); - ofs << text_file.content; - } - - res.set_content("done", "text/plain"); - }); - - svr.listen("localhost", 1234); -} diff --git a/libs/cpp-httplib/example/uploader.sh b/libs/cpp-httplib/example/uploader.sh deleted file mode 100644 index 4382ae6..0000000 --- a/libs/cpp-httplib/example/uploader.sh +++ /dev/null @@ -1,6 +0,0 @@ -#/usr/bin/env bash -for i in {1..1000000} -do - echo "#### $i ####" - curl -X POST -F image_file=@$1 http://localhost:1234/post > /dev/null -done diff --git a/libs/cpp-httplib/meson.build b/libs/cpp-httplib/meson.build deleted file mode 100644 index 7e95bde..0000000 --- a/libs/cpp-httplib/meson.build +++ /dev/null @@ -1,140 +0,0 @@ -# SPDX-FileCopyrightText: 2021 Andrea Pappacoda -# -# SPDX-License-Identifier: MIT - -project( - 'cpp-httplib', - 'cpp', - license: 'MIT', - default_options: [ - 'cpp_std=c++11', - 'buildtype=release', - 'b_ndebug=if-release', - 'b_lto=true', - 'warning_level=3' - ], - meson_version: '>=0.63.0' -) - -cxx = meson.get_compiler('cpp') - -if cxx.sizeof('void *') != 8 - if host_machine.system() == 'windows' - error('unsupported architecture: cpp-httplib doesn\'t support 32-bit Windows. Please use a 64-bit compiler.') - else - warning('cpp-httplib doesn\'t support 32-bit platforms. Please use a 64-bit compiler.') - endif -endif - -# Check just in case downstream decides to edit the source -# and add a project version -version = meson.project_version() -if version == 'undefined' - version = cxx.get_define('CPPHTTPLIB_VERSION', - prefix: '#include ', - include_directories: include_directories('.')).strip('"') - assert(version != '', 'failed to get version from httplib.h') -endif - -deps = [dependency('threads')] -args = [] - -openssl_dep = dependency('openssl', version: '>=3.0.0', required: get_option('openssl')) -if openssl_dep.found() - deps += openssl_dep - args += '-DCPPHTTPLIB_OPENSSL_SUPPORT' - if host_machine.system() == 'darwin' - macosx_keychain_dep = dependency('appleframeworks', modules: ['CoreFoundation', 'Security'], required: get_option('macosx_keychain')) - if macosx_keychain_dep.found() - deps += macosx_keychain_dep - args += '-DCPPHTTPLIB_USE_CERTS_FROM_MACOSX_KEYCHAIN' - endif - endif -endif - -zlib_dep = dependency('zlib', required: get_option('zlib')) -if zlib_dep.found() - deps += zlib_dep - args += '-DCPPHTTPLIB_ZLIB_SUPPORT' -endif - -brotli_deps = [dependency('libbrotlicommon', required: get_option('brotli'))] -brotli_deps += dependency('libbrotlidec', required: get_option('brotli')) -brotli_deps += dependency('libbrotlienc', required: get_option('brotli')) - -brotli_found_all = true -foreach brotli_dep : brotli_deps - if not brotli_dep.found() - brotli_found_all = false - endif -endforeach - -if brotli_found_all - deps += brotli_deps - args += '-DCPPHTTPLIB_BROTLI_SUPPORT' -endif - -async_ns_opt = get_option('non_blocking_getaddrinfo') - -if host_machine.system() == 'windows' - async_ns_dep = cxx.find_library('ws2_32', required: async_ns_opt) -elif host_machine.system() == 'darwin' - async_ns_dep = dependency('appleframeworks', modules: ['CFNetwork'], required: async_ns_opt) -else - async_ns_dep = cxx.find_library('anl', required: async_ns_opt) -endif - -if async_ns_dep.found() - deps += async_ns_dep - args += '-DCPPHTTPLIB_USE_NON_BLOCKING_GETADDRINFO' -endif - -cpp_httplib_dep = dependency('', required: false) - -if get_option('compile') - python3 = find_program('python3') - - httplib_ch = custom_target( - 'split', - input: 'httplib.h', - output: ['httplib.cc', 'httplib.h'], - command: [python3, files('split.py'), '--out', meson.current_build_dir()], - install: true, - install_dir: [false, get_option('includedir')] - ) - lib = library( - 'cpp-httplib', - sources: httplib_ch, - dependencies: deps, - cpp_args: args, - version: version, - soversion: version.split('.')[0] + '.' + version.split('.')[1], - install: true - ) - cpp_httplib_dep = declare_dependency(compile_args: args, dependencies: deps, link_with: lib, sources: httplib_ch[1], version: version) - - import('pkgconfig').generate( - lib, - description: 'A C++ HTTP/HTTPS server and client library', - extra_cflags: args, - url: 'https://github.com/yhirose/cpp-httplib', - version: version - ) -else - install_headers('httplib.h') - cpp_httplib_dep = declare_dependency(compile_args: args, dependencies: deps, include_directories: '.', version: version) - - import('pkgconfig').generate( - name: 'cpp-httplib', - description: 'A C++ HTTP/HTTPS server and client library', - install_dir: get_option('datadir')/'pkgconfig', - url: 'https://github.com/yhirose/cpp-httplib', - version: version - ) -endif - -meson.override_dependency('cpp-httplib', cpp_httplib_dep) - -if get_option('test') - subdir('test') -endif diff --git a/libs/cpp-httplib/meson_options.txt b/libs/cpp-httplib/meson_options.txt deleted file mode 100644 index deff537..0000000 --- a/libs/cpp-httplib/meson_options.txt +++ /dev/null @@ -1,20 +0,0 @@ -# SPDX-FileCopyrightText: 2021 Andrea Pappacoda -# -# SPDX-License-Identifier: MIT - -option('openssl', type: 'feature', value: 'auto', description: 'Enable OpenSSL support') -option('zlib', type: 'feature', value: 'auto', description: 'Enable zlib support') -option('brotli', type: 'feature', value: 'auto', description: 'Enable Brotli support') -option('macosx_keychain', type: 'feature', value: 'auto', description: 'Enable loading certs from the Keychain on Apple devices') -option('non_blocking_getaddrinfo', type: 'feature', value: 'auto', description: 'Enable asynchronous name lookup') -option('compile', type: 'boolean', value: false, description: 'Split the header into a compilable header & source file (requires python3)') -option('test', type: 'boolean', value: false, description: 'Build tests') - -# Old option names -option('cpp-httplib_openssl', type: 'feature', deprecated: 'openssl') -option('cpp-httplib_zlib', type: 'feature', deprecated: 'zlib') -option('cpp-httplib_brotli', type: 'feature', deprecated: 'brotli') -option('cpp-httplib_macosx_keychain', type: 'feature', deprecated: 'macosx_keychain') -option('cpp-httplib_non_blocking_getaddrinfo', type: 'feature', deprecated: 'non_blocking_getaddrinfo') -option('cpp-httplib_compile', type: 'boolean', value: false, deprecated: 'compile') -option('cpp-httplib_test', type: 'boolean', value: false, deprecated: 'test') diff --git a/libs/cpp-httplib/split.py b/libs/cpp-httplib/split.py deleted file mode 100644 index 4d8b307..0000000 --- a/libs/cpp-httplib/split.py +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env python3 - -"""This script splits httplib.h into .h and .cc parts.""" - -import argparse -import os -import sys - -border = '// ----------------------------------------------------------------------------' - -args_parser = argparse.ArgumentParser(description=__doc__) -args_parser.add_argument( - "-e", "--extension", help="extension of the implementation file (default: cc)", - default="cc" -) -args_parser.add_argument( - "-o", "--out", help="where to write the files (default: out)", default="out" -) -args = args_parser.parse_args() - -cur_dir = os.path.dirname(sys.argv[0]) -lib_name = 'httplib' -header_name = '/' + lib_name + '.h' -source_name = '/' + lib_name + '.' + args.extension -# get the input file -in_file = cur_dir + header_name -# get the output file -h_out = args.out + header_name -cc_out = args.out + source_name - -# if the modification time of the out file is after the in file, -# don't split (as it is already finished) -do_split = True - -if os.path.exists(h_out): - in_time = os.path.getmtime(in_file) - out_time = os.path.getmtime(h_out) - do_split = in_time > out_time - -if do_split: - with open(in_file) as f: - lines = f.readlines() - - python_version = sys.version_info[0] - if python_version < 3: - os.makedirs(args.out) - else: - os.makedirs(args.out, exist_ok=True) - - in_implementation = False - cc_out = args.out + source_name - with open(h_out, 'w') as fh, open(cc_out, 'w') as fc: - fc.write('#include "httplib.h"\n') - fc.write('namespace httplib {\n') - for line in lines: - is_border_line = border in line - if is_border_line: - in_implementation = not in_implementation - elif in_implementation: - fc.write(line.replace('inline ', '')) - else: - fh.write(line) - fc.write('} // namespace httplib\n') - - print("Wrote {} and {}".format(h_out, cc_out)) -else: - print("{} and {} are up to date".format(h_out, cc_out)) diff --git a/libs/cpp-httplib/test/CMakeLists.txt b/libs/cpp-httplib/test/CMakeLists.txt deleted file mode 100644 index d4e684c..0000000 --- a/libs/cpp-httplib/test/CMakeLists.txt +++ /dev/null @@ -1,121 +0,0 @@ -find_package(GTest) - -if(GTest_FOUND) - if(NOT TARGET GTest::gtest_main AND TARGET GTest::Main) - # CMake <3.20 - add_library(GTest::gtest_main INTERFACE IMPORTED) - target_link_libraries(GTest::gtest_main INTERFACE GTest::Main) - endif() -else() - if(POLICY CMP0135) - cmake_policy(SET CMP0135 NEW) - endif() - - include(FetchContent) - - set(BUILD_GMOCK OFF) - set(INSTALL_GTEST OFF) - set(gtest_force_shared_crt ON) - - FetchContent_Declare( - gtest - URL https://github.com/google/googletest/archive/main.tar.gz - ) - FetchContent_MakeAvailable(gtest) -endif() - -find_package(CURL REQUIRED) - -add_executable(httplib-test test.cc include_httplib.cc $<$:include_windows_h.cc>) -target_compile_options(httplib-test PRIVATE "$<$:/utf-8;/bigobj>") -target_link_libraries(httplib-test PRIVATE httplib GTest::gtest_main CURL::libcurl) -gtest_discover_tests(httplib-test) - -file( - COPY www www2 www3 ca-bundle.crt image.jpg - DESTINATION ${CMAKE_CURRENT_BINARY_DIR} -) - -if(HTTPLIB_IS_USING_OPENSSL) - if (OPENSSL_VERSION VERSION_LESS "3.2.0") - set(OPENSSL_X509_FLAG "-x509") - else() - set(OPENSSL_X509_FLAG "-x509v1") - endif() - find_program(OPENSSL_COMMAND - NAMES openssl - PATHS ${OPENSSL_INCLUDE_DIR}/../bin - REQUIRED - ) - execute_process( - COMMAND ${OPENSSL_COMMAND} genrsa 2048 - OUTPUT_FILE key.pem - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND_ERROR_IS_FATAL ANY - ) - execute_process( - COMMAND ${OPENSSL_COMMAND} req -new -batch -config ${CMAKE_CURRENT_LIST_DIR}/test.conf -key key.pem - COMMAND ${OPENSSL_COMMAND} x509 -days 3650 -req -signkey key.pem - OUTPUT_FILE cert.pem - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND_ERROR_IS_FATAL ANY - ) - execute_process( - COMMAND ${OPENSSL_COMMAND} req ${OPENSSL_X509_FLAG} -new -config ${CMAKE_CURRENT_LIST_DIR}/test.conf -key key.pem -sha256 -days 3650 -nodes -out cert2.pem -extensions SAN - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND_ERROR_IS_FATAL ANY - ) - execute_process( - COMMAND ${OPENSSL_COMMAND} genrsa 2048 - OUTPUT_FILE rootCA.key.pem - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND_ERROR_IS_FATAL ANY - ) - execute_process( - COMMAND ${OPENSSL_COMMAND} req ${OPENSSL_X509_FLAG} -new -batch -config ${CMAKE_CURRENT_LIST_DIR}/test.rootCA.conf -key rootCA.key.pem -days 1024 - OUTPUT_FILE rootCA.cert.pem - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND_ERROR_IS_FATAL ANY - ) - execute_process( - COMMAND ${OPENSSL_COMMAND} genrsa 2048 - OUTPUT_FILE client.key.pem - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND_ERROR_IS_FATAL ANY - ) - execute_process( - COMMAND ${OPENSSL_COMMAND} req -new -batch -config ${CMAKE_CURRENT_LIST_DIR}/test.conf -key client.key.pem - COMMAND ${OPENSSL_COMMAND} x509 -days 370 -req -CA rootCA.cert.pem -CAkey rootCA.key.pem -CAcreateserial - OUTPUT_FILE client.cert.pem - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND_ERROR_IS_FATAL ANY - ) - execute_process( - COMMAND ${OPENSSL_COMMAND} genrsa -passout pass:test123! 2048 - OUTPUT_FILE key_encrypted.pem - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND_ERROR_IS_FATAL ANY - ) - execute_process( - COMMAND ${OPENSSL_COMMAND} req -new -batch -config ${CMAKE_CURRENT_LIST_DIR}/test.conf -key key_encrypted.pem - COMMAND ${OPENSSL_COMMAND} x509 -days 3650 -req -signkey key_encrypted.pem - OUTPUT_FILE cert_encrypted.pem - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND_ERROR_IS_FATAL ANY - ) - execute_process( - COMMAND ${OPENSSL_COMMAND} genrsa -aes256 -passout pass:test012! 2048 - OUTPUT_FILE client_encrypted.key.pem - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND_ERROR_IS_FATAL ANY - ) - execute_process( - COMMAND ${OPENSSL_COMMAND} req -new -batch -config ${CMAKE_CURRENT_LIST_DIR}/test.conf -key client_encrypted.key.pem -passin pass:test012! - COMMAND ${OPENSSL_COMMAND} x509 -days 370 -req -CA rootCA.cert.pem -CAkey rootCA.key.pem -CAcreateserial - OUTPUT_FILE client_encrypted.cert.pem - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND_ERROR_IS_FATAL ANY - ) -endif() - -add_subdirectory(fuzzing) diff --git a/libs/cpp-httplib/test/Makefile b/libs/cpp-httplib/test/Makefile deleted file mode 100644 index 900cb56..0000000 --- a/libs/cpp-httplib/test/Makefile +++ /dev/null @@ -1,132 +0,0 @@ -CXX = clang++ -CXXFLAGS = -g -std=c++11 -I. -Wall -Wextra -Wtype-limits -Wconversion -Wshadow $(EXTRA_CXXFLAGS) -DCPPHTTPLIB_USE_NON_BLOCKING_GETADDRINFO # -fno-exceptions -DCPPHTTPLIB_NO_EXCEPTIONS -fsanitize=address - -PREFIX ?= $(shell brew --prefix) - -OPENSSL_DIR = $(PREFIX)/opt/openssl@3 -OPENSSL_SUPPORT = -DCPPHTTPLIB_OPENSSL_SUPPORT -I$(OPENSSL_DIR)/include -L$(OPENSSL_DIR)/lib -lssl -lcrypto - -ifneq ($(OS), Windows_NT) - UNAME_S := $(shell uname -s) - ifeq ($(UNAME_S), Darwin) - OPENSSL_SUPPORT += -DCPPHTTPLIB_USE_CERTS_FROM_MACOSX_KEYCHAIN -framework Security - endif -endif - -ZLIB_SUPPORT = -DCPPHTTPLIB_ZLIB_SUPPORT -lz - -BROTLI_DIR = $(PREFIX)/opt/brotli -BROTLI_SUPPORT = -DCPPHTTPLIB_BROTLI_SUPPORT -I$(BROTLI_DIR)/include -L$(BROTLI_DIR)/lib -lbrotlicommon -lbrotlienc -lbrotlidec - -ZSTD_DIR = $(PREFIX)/opt/zstd -ZSTD_SUPPORT = -DCPPHTTPLIB_ZSTD_SUPPORT -I$(ZSTD_DIR)/include -L$(ZSTD_DIR)/lib -lzstd - -LIBS = -lpthread -lcurl -ifneq ($(OS), Windows_NT) - UNAME_S := $(shell uname -s) - ifeq ($(UNAME_S), Darwin) - LIBS += -framework CoreFoundation -framework CFNetwork - endif - ifneq ($(UNAME_S), Darwin) - LIBS += -lanl - endif -endif - -TEST_ARGS = gtest/src/gtest-all.cc gtest/src/gtest_main.cc -Igtest -Igtest/include $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT) $(ZSTD_SUPPORT) $(LIBS) - -# By default, use standalone_fuzz_target_runner. -# This runner does no fuzzing, but simply executes the inputs -# provided via parameters. -# Run e.g. "make all LIB_FUZZING_ENGINE=/path/to/libFuzzer.a" -# to link the fuzzer(s) against a real fuzzing engine. -# OSS-Fuzz will define its own value for LIB_FUZZING_ENGINE. -LIB_FUZZING_ENGINE ?= standalone_fuzz_target_runner.o - -CLANG_FORMAT = clang-format -REALPATH = $(shell which grealpath 2>/dev/null || which realpath 2>/dev/null) -STYLE_CHECK_FILES = $(filter-out httplib.h httplib.cc, \ - $(wildcard example/*.h example/*.cc fuzzing/*.h fuzzing/*.cc *.h *.cc ../httplib.h)) - -all : test test_split - ./test - -proxy : test_proxy - @echo "Starting proxy server..." - cd proxy && \ - docker compose up -d - @echo "Waiting for proxy to be ready..." - @until nc -z localhost 3128 && nc -z localhost 3129; do sleep 1; done - @echo "Proxy servers are ready, waiting additional 5 seconds for full startup..." - @sleep 5 - @echo "Checking proxy server status..." - @cd proxy && docker compose ps - @echo "Checking proxy server logs..." - @cd proxy && docker compose logs --tail=20 - @echo "Running proxy tests..." - ./test_proxy; \ - exit_code=$$?; \ - echo "Stopping proxy server..."; \ - cd proxy && docker compose down; \ - exit $$exit_code - -test : test.cc include_httplib.cc ../httplib.h Makefile cert.pem - $(CXX) -o $@ -I.. $(CXXFLAGS) test.cc include_httplib.cc $(TEST_ARGS) - @file $@ - -# Note: The intention of test_split is to verify that it works to compile and -# link the split httplib.h, so there is normally no need to execute it. -test_split : test.cc ../httplib.h httplib.cc Makefile cert.pem - $(CXX) -o $@ $(CXXFLAGS) test.cc httplib.cc $(TEST_ARGS) - -check_abi: - @./check-shared-library-abi-compatibility.sh - -.PHONY: style_check -style_check: $(STYLE_CHECK_FILES) - @for file in $(STYLE_CHECK_FILES); do \ - $(CLANG_FORMAT) $$file > $$file.formatted; \ - if ! diff -u $$file $$file.formatted; then \ - file2=$$($(REALPATH) --relative-to=.. $$file); \ - printf "\n%*s\n" 80 | tr ' ' '#'; \ - printf "##%*s##\n" 76; \ - printf "## %-70s ##\n" "$$file2 not properly formatted. Please run clang-format."; \ - printf "##%*s##\n" 76; \ - printf "%*s\n\n" 80 | tr ' ' '#'; \ - failed=1; \ - fi; \ - rm -f $$file.formatted; \ - done; \ - if [ -n "$$failed" ]; then \ - echo "Style check failed for one or more files. See above for details."; \ - false; \ - else \ - echo "All files are properly formatted."; \ - fi - -test_proxy : test_proxy.cc ../httplib.h Makefile cert.pem - $(CXX) -o $@ -I.. $(CXXFLAGS) test_proxy.cc $(TEST_ARGS) - -# Runs server_fuzzer.cc based on value of $(LIB_FUZZING_ENGINE). -# Usage: make fuzz_test LIB_FUZZING_ENGINE=/path/to/libFuzzer -fuzz_test: server_fuzzer - ./server_fuzzer fuzzing/corpus/* - -# Fuzz target, so that you can choose which $(LIB_FUZZING_ENGINE) to use. -server_fuzzer : fuzzing/server_fuzzer.cc ../httplib.h standalone_fuzz_target_runner.o - $(CXX) -o $@ -I.. $(CXXFLAGS) $< $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT) $(BROTLI_SUPPORT) $(LIB_FUZZING_ENGINE) $(ZSTD_SUPPORT) $(LIBS) - @file $@ - -# Standalone fuzz runner, which just reads inputs from fuzzing/corpus/ dir and -# feeds it to server_fuzzer. -standalone_fuzz_target_runner.o : fuzzing/standalone_fuzz_target_runner.cpp - $(CXX) -o $@ -I.. $(CXXFLAGS) -c $< - -httplib.cc : ../httplib.h - python3 ../split.py -o . - -cert.pem: - ./gen-certs.sh - -clean: - rm -rf test test_split test_proxy server_fuzzer *.pem *.0 *.o *.1 *.srl httplib.h httplib.cc _build* *.dSYM - diff --git a/libs/cpp-httplib/test/ca-bundle.crt b/libs/cpp-httplib/test/ca-bundle.crt deleted file mode 100644 index 7d61eb5..0000000 --- a/libs/cpp-httplib/test/ca-bundle.crt +++ /dev/null @@ -1,3401 +0,0 @@ -## -## Bundle of CA Root Certificates -## -## Certificate data from Mozilla as of: Tue Jan 22 14:14:40 2019 GMT -## -## This is a bundle of X.509 certificates of public Certificate Authorities -## (CA). These were automatically extracted from Mozilla's root certificates -## file (certdata.txt). This file can be found in the mozilla source tree: -## https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt -## -## It contains the certificates in PEM format and therefore -## can be directly used with curl / libcurl / php_curl, or with -## an Apache+mod_ssl webserver for SSL client authentication. -## Just configure this file as the SSLCACertificateFile. -## -## Conversion done with mk-ca-bundle.pl version 1.27. -## SHA256: 18372117493b5b7ec006c31d966143fc95a9464a2b5f8d5188e23c5557b2292d -## - - -GlobalSign Root CA -================== ------BEGIN CERTIFICATE----- -MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx -GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds -b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV -BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD -VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa -DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc -THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb -Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP -c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX -gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF -AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj -Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG -j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH -hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC -X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== ------END CERTIFICATE----- - -GlobalSign Root CA - R2 -======================= ------BEGIN CERTIFICATE----- -MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv -YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh -bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT -aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln -bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6 -ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp -s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN -S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL -TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C -ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E -FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i -YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN -BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp -9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu -01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7 -9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 -TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== ------END CERTIFICATE----- - -Verisign Class 3 Public Primary Certification Authority - G3 -============================================================ ------BEGIN CERTIFICATE----- -MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv -cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy -dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1 -EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc -cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw -EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj -055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA -ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f -j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC -/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0 -xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa -t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== ------END CERTIFICATE----- - -Entrust.net Premium 2048 Secure Server CA -========================================= ------BEGIN CERTIFICATE----- -MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u -ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp -bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV -BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx -NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 -d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl -MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u -ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL -Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr -hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW -nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi -VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ -KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy -T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf -zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT -J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e -nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE= ------END CERTIFICATE----- - -Baltimore CyberTrust Root -========================= ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE -ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li -ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC -SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs -dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME -uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB -UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C -G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 -XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr -l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI -VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB -BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh -cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 -hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa -Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H -RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp ------END CERTIFICATE----- - -AddTrust External Root -====================== ------BEGIN CERTIFICATE----- -MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML -QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD -VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw -NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU -cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg -Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821 -+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw -Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo -aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy -2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7 -7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P -BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL -VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk -VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB -IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl -j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 -6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355 -e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u -G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= ------END CERTIFICATE----- - -Entrust Root Certification Authority -==================================== ------BEGIN CERTIFICATE----- -MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV -BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw -b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG -A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 -MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu -MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu -Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v -dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz -A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww -Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 -j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN -rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw -DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 -MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH -hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA -A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM -Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa -v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS -W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 -tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 ------END CERTIFICATE----- - -GeoTrust Global CA -================== ------BEGIN CERTIFICATE----- -MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK -Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw -MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j -LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo -BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet -8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc -T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU -vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD -AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk -DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q -zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4 -d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2 -mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p -XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm -Mw== ------END CERTIFICATE----- - -GeoTrust Universal CA -===================== ------BEGIN CERTIFICATE----- -MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN -R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1 -MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu -Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t -JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e -RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs -7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d -8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V -qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga -Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB -Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu -KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08 -ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0 -XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB -hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc -aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2 -qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL -oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK -xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF -KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2 -DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK -xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU -p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI -P/rmMuGNG2+k5o7Y+SlIis5z/iw= ------END CERTIFICATE----- - -GeoTrust Universal CA 2 -======================= ------BEGIN CERTIFICATE----- -MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN -R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0 -MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg -SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA -A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0 -DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17 -j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q -JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a -QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2 -WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP -20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn -ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC -SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG -8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2 -+/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E -BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z -dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ -4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+ -mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq -A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg -Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP -pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d -FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp -gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm -X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS ------END CERTIFICATE----- - -Comodo AAA Services root -======================== ------BEGIN CERTIFICATE----- -MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS -R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg -TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw -MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl -c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV -BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG -C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs -i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW -Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH -Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK -Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f -BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl -cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz -LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm -7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz -Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z -8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C -12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== ------END CERTIFICATE----- - -QuoVadis Root CA -================ ------BEGIN CERTIFICATE----- -MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE -ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 -eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz -MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp -cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD -EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk -J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL -F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL -YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen -AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w -PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y -ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7 -MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj -YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs -ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh -Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW -Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu -BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw -FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6 -tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo -fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul -LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x -gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi -5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi -5nrQNiOKSnQ2+Q== ------END CERTIFICATE----- - -QuoVadis Root CA 2 -================== ------BEGIN CERTIFICATE----- -MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT -EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx -ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6 -XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk -lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB -lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy -lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt -66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn -wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh -D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy -BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie -J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud -DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU -a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT -ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv -Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3 -UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm -VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK -+JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW -IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1 -WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X -f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II -4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8 -VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u ------END CERTIFICATE----- - -QuoVadis Root CA 3 -================== ------BEGIN CERTIFICATE----- -MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT -EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx -OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg -DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij -KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K -DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv -BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp -p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8 -nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX -MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM -Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz -uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT -BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj -YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 -aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB -BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD -VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4 -ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE -AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV -qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s -hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z -POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2 -Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp -8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC -bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu -g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p -vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr -qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= ------END CERTIFICATE----- - -Security Communication Root CA -============================== ------BEGIN CERTIFICATE----- -MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP -U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw -HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP -U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw -8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM -DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX -5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd -DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 -JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw -DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g -0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a -mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ -s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ -6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi -FL39vmwLAw== ------END CERTIFICATE----- - -Sonera Class 2 Root CA -====================== ------BEGIN CERTIFICATE----- -MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG -U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw -NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh -IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3 -/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT -dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG -f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P -tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH -nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT -XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt -0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI -cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph -Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx -EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH -llpwrN9M ------END CERTIFICATE----- - -XRamp Global CA Root -==================== ------BEGIN CERTIFICATE----- -MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE -BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj -dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx -HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg -U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp -dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu -IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx -foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE -zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs -AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry -xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud -EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap -oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC -AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc -/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt -qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n -nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz -8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= ------END CERTIFICATE----- - -Go Daddy Class 2 CA -=================== ------BEGIN CERTIFICATE----- -MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY -VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG -A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g -RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD -ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv -2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 -qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j -YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY -vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O -BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o -atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu -MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG -A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim -PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt -I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ -HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI -Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b -vZ8= ------END CERTIFICATE----- - -Starfield Class 2 CA -==================== ------BEGIN CERTIFICATE----- -MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc -U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo -MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG -A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG -SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY -bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ -JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm -epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN -F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF -MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f -hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo -bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g -QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs -afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM -PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl -xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD -KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 -QBFGmh95DmK/D5fs4C8fF5Q= ------END CERTIFICATE----- - -Taiwan GRCA -=========== ------BEGIN CERTIFICATE----- -MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG -EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X -DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv -dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN -w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5 -BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O -1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO -htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov -J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7 -Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t -B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB -O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8 -lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV -HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2 -09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ -TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj -Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2 -Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU -D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz -DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk -Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk -7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ -CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy -+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS ------END CERTIFICATE----- - -DigiCert Assured ID Root CA -=========================== ------BEGIN CERTIFICATE----- -MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw -IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx -MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL -ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO -9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy -UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW -/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy -oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf -GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF -66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq -hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc -EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn -SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i -8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe -+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== ------END CERTIFICATE----- - -DigiCert Global Root CA -======================= ------BEGIN CERTIFICATE----- -MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw -HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw -MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 -dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq -hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn -TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 -BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H -4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y -7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB -o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm -8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF -BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr -EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt -tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 -UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk -CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= ------END CERTIFICATE----- - -DigiCert High Assurance EV Root CA -================================== ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw -KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw -MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ -MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu -Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t -Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS -OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 -MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ -NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe -h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB -Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY -JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ -V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp -myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK -mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe -vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K ------END CERTIFICATE----- - -Certplus Class 2 Primary CA -=========================== ------BEGIN CERTIFICATE----- -MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE -BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN -OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy -dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR -5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ -Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO -YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e -e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME -CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ -YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t -L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD -P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R -TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+ -7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW -//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7 -l7+ijrRU ------END CERTIFICATE----- - -DST Root CA X3 -============== ------BEGIN CERTIFICATE----- -MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK -ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X -DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1 -cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT -rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9 -UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy -xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d -utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T -AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ -MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug -dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE -GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw -RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS -fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ ------END CERTIFICATE----- - -SwissSign Gold CA - G2 -====================== ------BEGIN CERTIFICATE----- -MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw -EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN -MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp -c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B -AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq -t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C -jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg -vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF -ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR -AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend -jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO -peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR -7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi -GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64 -OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov -L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm -5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr -44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf -Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m -Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp -mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk -vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf -KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br -NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj -viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ ------END CERTIFICATE----- - -SwissSign Silver CA - G2 -======================== ------BEGIN CERTIFICATE----- -MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT -BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X -DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3 -aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG -9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644 -N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm -+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH -6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu -MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h -qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5 -FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs -ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc -celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X -CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB -tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0 -cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P -4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F -kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L -3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx -/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa -DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP -e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu -WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ -DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub -DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u ------END CERTIFICATE----- - -GeoTrust Primary Certification Authority -======================================== ------BEGIN CERTIFICATE----- -MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG -EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD -ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx -CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ -cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN -b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9 -nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge -RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt -tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI -hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K -Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN -NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa -Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG -1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= ------END CERTIFICATE----- - -thawte Primary Root CA -====================== ------BEGIN CERTIFICATE----- -MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE -BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 -aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3 -MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg -SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv -KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT -FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs -oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ -1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc -q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K -aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p -afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF -AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE -uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX -xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89 -jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH -z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA== ------END CERTIFICATE----- - -VeriSign Class 3 Public Primary Certification Authority - G5 -============================================================ ------BEGIN CERTIFICATE----- -MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE -BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO -ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk -IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB -yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln -biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh -dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt -YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz -j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD -Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/ -Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r -fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/ -BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv -Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy -aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG -SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+ -X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE -KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC -Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE -ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq ------END CERTIFICATE----- - -SecureTrust CA -============== ------BEGIN CERTIFICATE----- -MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG -EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy -dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe -BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC -ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX -OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t -DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH -GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b -01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH -ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj -aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ -KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu -SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf -mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ -nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR -3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= ------END CERTIFICATE----- - -Secure Global CA -================ ------BEGIN CERTIFICATE----- -MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG -EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH -bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg -MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg -Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx -YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ -bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g -8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV -HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi -0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud -EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn -oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA -MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ -OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn -CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 -3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc -f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW ------END CERTIFICATE----- - -COMODO Certification Authority -============================== ------BEGIN CERTIFICATE----- -MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE -BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG -A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 -dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb -MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD -T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH -+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww -xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV -4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA -1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI -rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k -b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC -AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP -OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ -RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc -IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN -+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== ------END CERTIFICATE----- - -Network Solutions Certificate Authority -======================================= ------BEGIN CERTIFICATE----- -MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG -EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr -IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx -MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu -MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx -jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT -aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT -crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc -/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB -AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv -bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA -A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q -4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ -GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv -wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD -ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey ------END CERTIFICATE----- - -COMODO ECC Certification Authority -================================== ------BEGIN CERTIFICATE----- -MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC -R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE -ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix -GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR -Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo -b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X -4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni -wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG -FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA -U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= ------END CERTIFICATE----- - -OISTE WISeKey Global Root GA CA -=============================== ------BEGIN CERTIFICATE----- -MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE -BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG -A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH -bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD -VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw -IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5 -IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9 -Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg -Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD -d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ -/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R -LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ -KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm -MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4 -+vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa -hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY -okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0= ------END CERTIFICATE----- - -Certigna -======== ------BEGIN CERTIFICATE----- -MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw -EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3 -MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI -Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q -XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH -GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p -ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg -DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf -Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ -tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ -BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J -SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA -hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ -ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu -PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY -1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw -WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== ------END CERTIFICATE----- - -Deutsche Telekom Root CA 2 -========================== ------BEGIN CERTIFICATE----- -MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT -RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG -A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5 -MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G -A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS -b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5 -bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI -KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY -AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK -Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV -jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV -HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr -E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy -zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8 -rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G -dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU -Cm26OWMohpLzGITY+9HPBVZkVw== ------END CERTIFICATE----- - -Cybertrust Global Root -====================== ------BEGIN CERTIFICATE----- -MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li -ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4 -MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD -ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA -+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW -0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL -AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin -89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT -8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2 -MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G -A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO -lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi -5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2 -hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T -X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW -WL1WMRJOEcgh4LMRkWXbtKaIOM5V ------END CERTIFICATE----- - -ePKI Root Certification Authority -================================= ------BEGIN CERTIFICATE----- -MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG -EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg -Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx -MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq -MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B -AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs -IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi -lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv -qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX -12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O -WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+ -ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao -lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/ -vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi -Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi -MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH -ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0 -1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq -KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV -xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP -NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r -GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE -xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx -gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy -sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD -BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw= ------END CERTIFICATE----- - -certSIGN ROOT CA -================ ------BEGIN CERTIFICATE----- -MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD -VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa -Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE -CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I -JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH -rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2 -ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD -0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943 -AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B -Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB -AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8 -SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0 -x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt -vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz -TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD ------END CERTIFICATE----- - -GeoTrust Primary Certification Authority - G3 -============================================= ------BEGIN CERTIFICATE----- -MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE -BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0 -IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy -eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz -NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo -YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT -LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j -K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE -c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C -IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu -dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr -2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9 -cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE -Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD -AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s -t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt ------END CERTIFICATE----- - -thawte Primary Root CA - G2 -=========================== ------BEGIN CERTIFICATE----- -MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC -VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu -IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg -Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV -MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG -b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt -IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS -LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5 -8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU -mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN -G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K -rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== ------END CERTIFICATE----- - -thawte Primary Root CA - G3 -=========================== ------BEGIN CERTIFICATE----- -MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE -BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 -aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w -ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh -d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD -VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG -A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At -P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC -+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY -7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW -vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ -KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK -A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu -t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC -8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm -er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A= ------END CERTIFICATE----- - -GeoTrust Primary Certification Authority - G2 -============================================= ------BEGIN CERTIFICATE----- -MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC -VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu -Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD -ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1 -OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg -MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl -b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG -BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc -KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD -VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+ -EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m -ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2 -npaqBA+K ------END CERTIFICATE----- - -VeriSign Universal Root Certification Authority -=============================================== ------BEGIN CERTIFICATE----- -MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE -BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO -ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk -IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u -IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv -cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj -1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP -MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72 -9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I -AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR -tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G -CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O -a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud -DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3 -Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx -Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx -P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P -wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4 -mJO37M2CYfE45k+XmCpajQ== ------END CERTIFICATE----- - -VeriSign Class 3 Public Primary Certification Authority - G4 -============================================================ ------BEGIN CERTIFICATE----- -MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC -VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3 -b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz -ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL -MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU -cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo -b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5 -IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8 -Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz -rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB -/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw -HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u -Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD -A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx -AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== ------END CERTIFICATE----- - -NetLock Arany (Class Gold) Főtanúsítvány -======================================== ------BEGIN CERTIFICATE----- -MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G -A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610 -dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB -cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx -MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO -ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv -biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6 -c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu -0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw -/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk -H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw -fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1 -neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB -BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW -qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta -YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC -bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna -NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu -dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= ------END CERTIFICATE----- - -Staat der Nederlanden Root CA - G2 -================================== ------BEGIN CERTIFICATE----- -MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE -CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g -Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC -TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l -ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ -5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn -vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj -CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil -e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR -OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI -CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65 -48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi -trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737 -qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB -AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC -ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA -A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz -+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj -f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN -kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk -CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF -URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb -CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h -oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV -IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm -66+KAQ== ------END CERTIFICATE----- - -Hongkong Post Root CA 1 -======================= ------BEGIN CERTIFICATE----- -MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT -DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx -NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n -IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1 -ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr -auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh -qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY -V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV -HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i -h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio -l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei -IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps -T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT -c4afU9hDDl3WY4JxHYB0yvbiAmvZWg== ------END CERTIFICATE----- - -SecureSign RootCA11 -=================== ------BEGIN CERTIFICATE----- -MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi -SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS -b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw -KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1 -cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL -TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO -wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq -g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP -O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA -bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX -t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh -OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r -bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ -Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01 -y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061 -lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I= ------END CERTIFICATE----- - -Microsec e-Szigno Root CA 2009 -============================== ------BEGIN CERTIFICATE----- -MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER -MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv -c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o -dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE -BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt -U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA -fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG -0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA -pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm -1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC -AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf -QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE -FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o -lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX -I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 -tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02 -yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi -LXpUq3DDfSJlgnCW ------END CERTIFICATE----- - -GlobalSign Root CA - R3 -======================= ------BEGIN CERTIFICATE----- -MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv -YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh -bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT -aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln -bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt -iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ -0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3 -rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl -OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2 -xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7 -lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8 -EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E -bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18 -YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r -kpeDMdmztcpHWD9f ------END CERTIFICATE----- - -Autoridad de Certificacion Firmaprofesional CIF A62634068 -========================================================= ------BEGIN CERTIFICATE----- -MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA -BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 -MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw -QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB -NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD -Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P -B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY -7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH -ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI -plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX -MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX -LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK -bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU -vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud -EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH -DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp -cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA -bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx -ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx -51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk -R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP -T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f -Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl -osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR -crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR -saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD -KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi -6Et8Vcad+qMUu2WFbm5PEn4KPJ2V ------END CERTIFICATE----- - -Izenpe.com -========== ------BEGIN CERTIFICATE----- -MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG -EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz -MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu -QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ -03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK -ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU -+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC -PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT -OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK -F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK -0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+ -0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB -leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID -AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+ -SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG -NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx -MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O -BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l -Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga -kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q -hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs -g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5 -aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5 -nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC -ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo -Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z -WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== ------END CERTIFICATE----- - -Chambers of Commerce Root - 2008 -================================ ------BEGIN CERTIFICATE----- -MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD -MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv -bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu -QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy -Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl -ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF -EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl -cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA -XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj -h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/ -ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk -NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g -D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331 -lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ -0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj -ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2 -EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI -G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ -BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh -bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh -bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC -CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH -AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1 -wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH -3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU -RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6 -M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1 -YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF -9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK -zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG -nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg -OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ ------END CERTIFICATE----- - -Global Chambersign Root - 2008 -============================== ------BEGIN CERTIFICATE----- -MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD -MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv -bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu -QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx -NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg -Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ -QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD -aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf -VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf -XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0 -ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB -/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA -TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M -H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe -Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF -HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh -wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB -AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT -BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE -BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm -aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm -aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp -1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0 -dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG -/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6 -ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s -dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg -9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH -foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du -qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr -P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq -c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z -09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B ------END CERTIFICATE----- - -Go Daddy Root Certificate Authority - G2 -======================================== ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu -MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 -MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 -b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G -A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq -9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD -+qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd -fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl -NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9 -BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac -vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r -5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV -N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO -LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1 ------END CERTIFICATE----- - -Starfield Root Certificate Authority - G2 -========================================= ------BEGIN CERTIFICATE----- -MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s -b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 -eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw -DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg -VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB -dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv -W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs -bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk -N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf -ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU -JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol -TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx -4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw -F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K -pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ -c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 ------END CERTIFICATE----- - -Starfield Services Root Certificate Authority - G2 -================================================== ------BEGIN CERTIFICATE----- -MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s -b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl -IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV -BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT -dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg -Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2 -h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa -hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP -LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB -rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG -SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP -E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy -xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd -iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza -YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6 ------END CERTIFICATE----- - -AffirmTrust Commercial -====================== ------BEGIN CERTIFICATE----- -MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS -BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw -MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly -bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb -DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV -C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6 -BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww -MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV -HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG -hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi -qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv -0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh -sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= ------END CERTIFICATE----- - -AffirmTrust Networking -====================== ------BEGIN CERTIFICATE----- -MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS -BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw -MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly -bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE -Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI -dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24 -/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb -h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV -HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu -UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6 -12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23 -WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9 -/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= ------END CERTIFICATE----- - -AffirmTrust Premium -=================== ------BEGIN CERTIFICATE----- -MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS -BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy -OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy -dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn -BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV -5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs -+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd -GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R -p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI -S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04 -6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5 -/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo -+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv -MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg -Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC -6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S -L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK -+4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV -BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg -IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60 -g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb -zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw== ------END CERTIFICATE----- - -AffirmTrust Premium ECC -======================= ------BEGIN CERTIFICATE----- -MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV -BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx -MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U -cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA -IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ -N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW -BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK -BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X -57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM -eQ== ------END CERTIFICATE----- - -Certum Trusted Network CA -========================= ------BEGIN CERTIFICATE----- -MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK -ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy -MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU -ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC -l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J -J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4 -fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0 -cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB -Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw -DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj -jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1 -mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj -Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI -03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= ------END CERTIFICATE----- - -TWCA Root Certification Authority -================================= ------BEGIN CERTIFICATE----- -MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ -VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG -EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB -IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx -QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC -oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP -4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r -y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB -BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG -9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC -mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW -QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY -T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny -Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== ------END CERTIFICATE----- - -Security Communication RootCA2 -============================== ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc -U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh -dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC -SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy -aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++ -+T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R -3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV -spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K -EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8 -QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB -CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj -u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk -3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q -tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 -mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 ------END CERTIFICATE----- - -EC-ACC -====== ------BEGIN CERTIFICATE----- -MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE -BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w -ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD -VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE -CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT -BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7 -MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt -SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl -Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh -cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK -w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT -ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4 -HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a -E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw -0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD -VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0 -Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l -dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ -lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa -Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe -l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2 -E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D -5EI= ------END CERTIFICATE----- - -Hellenic Academic and Research Institutions RootCA 2011 -======================================================= ------BEGIN CERTIFICATE----- -MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT -O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y -aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z -IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT -AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z -IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo -IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI -1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa -71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u -8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH -3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/ -MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8 -MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu -b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt -XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 -TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD -/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N -7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4 ------END CERTIFICATE----- - -Actalis Authentication Root CA -============================== ------BEGIN CERTIFICATE----- -MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM -BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE -AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky -MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz -IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 -IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ -wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa -by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6 -zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f -YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2 -oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l -EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7 -hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8 -EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5 -jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY -iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt -ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI -WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0 -JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx -K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+ -Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC -4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo -2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz -lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem -OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9 -vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== ------END CERTIFICATE----- - -Trustis FPS Root CA -=================== ------BEGIN CERTIFICATE----- -MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG -EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290 -IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV -BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ -KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ -RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk -H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa -cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt -o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA -AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd -BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c -GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC -yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P -8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV -l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl -iB6XzCGcKQENZetX2fNXlrtIzYE= ------END CERTIFICATE----- - -Buypass Class 2 Root CA -======================= ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU -QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X -DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 -eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1 -g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn -9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b -/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU -CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff -awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI -zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn -Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX -Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs -M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD -VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF -AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s -A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI -osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S -aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd -DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD -LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0 -oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC -wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS -CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN -rJgWVqA= ------END CERTIFICATE----- - -Buypass Class 3 Root CA -======================= ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU -QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X -DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 -eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH -sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR -5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh -7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ -ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH -2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV -/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ -RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA -Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq -j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD -VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF -AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV -cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G -uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG -Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8 -ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2 -KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz -6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug -UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe -eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi -Cp/HuZc= ------END CERTIFICATE----- - -T-TeleSec GlobalRoot Class 3 -============================ ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM -IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU -cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx -MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz -dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD -ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK -9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU -NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF -iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W -0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr -AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb -fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT -ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h -P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml -e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== ------END CERTIFICATE----- - -EE Certification Centre Root CA -=============================== ------BEGIN CERTIFICATE----- -MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG -EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy -dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw -MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB -UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy -ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB -DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM -TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2 -rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw -93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN -P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T -AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ -MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF -BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj -xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM -lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u -uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU -3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM -dcGWxZ0= ------END CERTIFICATE----- - -D-TRUST Root Class 3 CA 2 2009 -============================== ------BEGIN CERTIFICATE----- -MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK -DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe -Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE -LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD -ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA -BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv -KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z -p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC -AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ -4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y -eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw -MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G -PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw -OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm -2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 -o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV -dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph -X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I= ------END CERTIFICATE----- - -D-TRUST Root Class 3 CA 2 EV 2009 -================================= ------BEGIN CERTIFICATE----- -MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK -DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw -OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK -DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw -OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS -egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh -zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T -7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60 -sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35 -11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv -cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v -ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El -MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp -b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh -c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+ -PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 -nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX -ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA -NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv -w9y4AyHqnxbxLFS1 ------END CERTIFICATE----- - -CA Disig Root R2 -================ ------BEGIN CERTIFICATE----- -MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw -EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp -ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx -EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp -c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC -w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia -xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7 -A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S -GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV -g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa -5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE -koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A -Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i -Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV -HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u -Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM -tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV -sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je -dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8 -1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx -mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01 -utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0 -sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg -UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV -7+ZtsH8tZ/3zbBt1RqPlShfppNcL ------END CERTIFICATE----- - -ACCVRAIZ1 -========= ------BEGIN CERTIFICATE----- -MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB -SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1 -MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH -UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM -jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0 -RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD -aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ -0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG -WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7 -8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR -5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J -9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK -Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw -Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu -Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 -VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM -Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA -QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh -AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA -YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj -AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA -IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk -aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0 -dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2 -MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI -hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E -R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN -YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49 -nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ -TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3 -sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h -I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg -Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd -3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p -EfbRD0tVNEYqi4Y7 ------END CERTIFICATE----- - -TWCA Global Root CA -=================== ------BEGIN CERTIFICATE----- -MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT -CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD -QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK -EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg -Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C -nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV -r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR -Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV -tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W -KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99 -sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p -yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn -kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI -zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC -AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g -cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn -LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M -8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg -/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg -lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP -A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m -i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8 -EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3 -zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0= ------END CERTIFICATE----- - -TeliaSonera Root CA v1 -====================== ------BEGIN CERTIFICATE----- -MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE -CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4 -MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW -VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+ -6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA -3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k -B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn -Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH -oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3 -F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ -oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7 -gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc -TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB -AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW -DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm -zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx -0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW -pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV -G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc -c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT -JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2 -qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6 -Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems -WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= ------END CERTIFICATE----- - -E-Tugra Certification Authority -=============================== ------BEGIN CERTIFICATE----- -MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w -DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls -ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN -ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw -NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx -QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl -cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD -DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd -hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K -CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g -ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ -BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0 -E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz -rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq -jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn -rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5 -dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB -/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG -MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK -kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO -XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807 -VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo -a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc -dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV -KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT -Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0 -8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G -C7TbO6Orb1wdtn7os4I07QZcJA== ------END CERTIFICATE----- - -T-TeleSec GlobalRoot Class 2 -============================ ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM -IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU -cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx -MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz -dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD -ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ -SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F -vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970 -2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV -WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy -YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4 -r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf -vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR -3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN -9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg== ------END CERTIFICATE----- - -Atos TrustedRoot 2011 -===================== ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU -cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4 -MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG -A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV -hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr -54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+ -DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320 -HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR -z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R -l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ -bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB -CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h -k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh -TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9 -61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G -3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed ------END CERTIFICATE----- - -QuoVadis Root CA 1 G3 -===================== ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG -A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv -b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN -MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg -RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE -PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm -PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6 -Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN -ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l -g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV -7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX -9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f -iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg -t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI -hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC -MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3 -GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct -Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP -+V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh -3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa -wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6 -O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0 -FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV -hMJKzRwuJIczYOXD ------END CERTIFICATE----- - -QuoVadis Root CA 2 G3 -===================== ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG -A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv -b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN -MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg -RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh -ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY -NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t -oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o -MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l -V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo -L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ -sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD -6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh -lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI -hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 -AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K -pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9 -x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz -dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X -U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw -mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD -zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN -JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr -O3jtZsSOeWmD3n+M ------END CERTIFICATE----- - -QuoVadis Root CA 3 G3 -===================== ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG -A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv -b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN -MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg -RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286 -IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL -Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe -6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3 -I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U -VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7 -5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi -Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM -dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt -rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI -hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px -KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS -t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ -TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du -DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib -Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD -hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX -0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW -dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2 -PpxxVJkES/1Y+Zj0 ------END CERTIFICATE----- - -DigiCert Assured ID Root G2 -=========================== ------BEGIN CERTIFICATE----- -MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw -IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw -MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL -ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH -35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq -bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw -VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP -YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn -lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO -w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv -0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz -d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW -hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M -jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo -IhNzbM8m9Yop5w== ------END CERTIFICATE----- - -DigiCert Assured ID Root G3 -=========================== ------BEGIN CERTIFICATE----- -MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV -UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD -VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 -MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ -BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb -RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs -KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF -UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy -YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy -1vUhZscv6pZjamVFkpUBtA== ------END CERTIFICATE----- - -DigiCert Global Root G2 -======================= ------BEGIN CERTIFICATE----- -MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw -HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx -MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 -dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq -hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ -kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO -3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV -BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM -UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB -o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu -5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr -F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U -WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH -QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/ -iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl -MrY= ------END CERTIFICATE----- - -DigiCert Global Root G3 -======================= ------BEGIN CERTIFICATE----- -MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV -UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD -VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw -MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k -aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C -AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O -YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP -BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp -Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y -3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34 -VOKa5Vt8sycX ------END CERTIFICATE----- - -DigiCert Trusted Root G4 -======================== ------BEGIN CERTIFICATE----- -MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw -HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 -MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G -CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp -pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o -k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa -vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY -QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6 -MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm -mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7 -f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH -dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8 -oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud -DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD -ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY -ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr -yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy -7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah -ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN -5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb -/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa -5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK -G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP -82Z+ ------END CERTIFICATE----- - -COMODO RSA Certification Authority -================================== ------BEGIN CERTIFICATE----- -MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE -BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG -A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMC -R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE -ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR6FSS0gpWsawNJN3Fz0Rn -dJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8Xpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZ -FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+ -5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pG -x8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX -2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQL -OvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3 -sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+C -GCe01a60y1Dma/RMhnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5 -WdYgGq/yapiqcrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E -FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w -DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt -rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+ -nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSg -tZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwW -sRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiKboHGhfKp -pC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmckejkk9u+UJueBPSZI9FoJA -zMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHq -ZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk52 -7RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7I -LaZRfyHBNVOFBkpdn627G190 ------END CERTIFICATE----- - -USERTrust RSA Certification Authority -===================================== ------BEGIN CERTIFICATE----- -MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK -ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK -ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz -0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2j -Y0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFn -RghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O -+T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq -/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKE -Y1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJM -lXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8 -yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+ -eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd -BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF -MAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW -FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ -7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQ -Eg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM -8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGi -FSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdi -yA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9c -J2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGw -sAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gx -Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9 ------END CERTIFICATE----- - -USERTrust ECC Certification Authority -===================================== ------BEGIN CERTIFICATE----- -MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC -VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU -aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC -VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU -aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2 -0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez -nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV -HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB -HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu -9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= ------END CERTIFICATE----- - -GlobalSign ECC Root CA - R4 -=========================== ------BEGIN CERTIFICATE----- -MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb -R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD -EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb -R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD -EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl -OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P -AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV -MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF -JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q= ------END CERTIFICATE----- - -GlobalSign ECC Root CA - R5 -=========================== ------BEGIN CERTIFICATE----- -MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb -R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD -EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb -R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD -EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 -SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS -h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd -BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx -uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 -yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 ------END CERTIFICATE----- - -Staat der Nederlanden Root CA - G3 -================================== ------BEGIN CERTIFICATE----- -MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE -CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g -Um9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMC -TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l -ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y -olQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WWIkYFsO2t -x1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqXxz8ecAgwoNzFs21v0IJy -EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K -Tj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUur -mkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU5 -1nus6+N86U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp -07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo -FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE -41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMB -AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleu -yjWcLhL75LpdINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD -U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq -KqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1 -v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA -8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b -8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0r -mj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq4BZ+Extq -1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR1VmiiXTTn74eS9fGbbeI -JG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U67cjF68IeHRaVesd+QnGTbksV -tzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk= ------END CERTIFICATE----- - -Staat der Nederlanden EV Root CA -================================ ------BEGIN CERTIFICATE----- -MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE -CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g -RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M -MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl -cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk -SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW -O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r -0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8 -Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV -XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr -08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV -0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd -74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx -fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa -ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI -eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu -c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq -5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN -b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN -f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi -5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4 -WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK -DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy -eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg== ------END CERTIFICATE----- - -IdenTrust Commercial Root CA 1 -============================== ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG -EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS -b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES -MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB -IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld -hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/ -mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi -1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C -XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl -3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy -NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV -WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg -xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix -uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC -AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI -hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH -6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg -ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt -ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV -YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX -feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro -kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe -2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz -Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R -cGzM7vRX+Bi6hG6H ------END CERTIFICATE----- - -IdenTrust Public Sector Root CA 1 -================================= ------BEGIN CERTIFICATE----- -MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG -EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv -ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV -UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS -b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy -P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6 -Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI -rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf -qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS -mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn -ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh -LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v -iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL -4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B -Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw -DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj -t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A -mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt -GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt -m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx -NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4 -Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI -ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC -ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ -3Wl9af0AVqW3rLatt8o+Ae+c ------END CERTIFICATE----- - -Entrust Root Certification Authority - G2 -========================================= ------BEGIN CERTIFICATE----- -MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV -BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy -bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug -b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw -HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT -DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx -OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s -eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP -/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz -HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU -s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y -TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx -AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6 -0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z -iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ -Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi -nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+ -vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO -e4pIb4tF9g== ------END CERTIFICATE----- - -Entrust Root Certification Authority - EC1 -========================================== ------BEGIN CERTIFICATE----- -MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx -FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn -YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl -ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw -FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs -LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg -dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt -IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy -AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef -9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h -vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8 -kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G ------END CERTIFICATE----- - -CFCA EV ROOT -============ ------BEGIN CERTIFICATE----- -MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE -CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB -IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw -MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD -DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV -BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD -7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN -uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW -ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7 -xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f -py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K -gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol -hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ -tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf -BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB -/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB -ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q -ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua -4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG -E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX -BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn -aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy -PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX -kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C -ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su ------END CERTIFICATE----- - -Certinomis - Root CA -==================== ------BEGIN CERTIFICATE----- -MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjETMBEGA1UEChMK -Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAbBgNVBAMTFENlcnRpbm9taXMg -LSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMzMTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIx -EzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRD -ZXJ0aW5vbWlzIC0gUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQos -P5L2fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJflLieY6pOo -d5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQVWZUKxkd8aRi5pwP5ynap -z8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDFTKWrteoB4owuZH9kb/2jJZOLyKIOSY00 -8B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09x -RLWtwHkziOC/7aOgFLScCbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE -6OXWk6RiwsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJwx3t -FvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SGm/lg0h9tkQPTYKbV -PZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4F2iw4lNVYC2vPsKD2NkJK/DAZNuH -i5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZngWVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGj -YzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I -6tNxIqSSaHh02TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF -AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/0KGRHCwPT5iV -WVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWwF6YSjNRieOpWauwK0kDDPAUw -Pk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZSg081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAX -lCOotQqSD7J6wWAsOMwaplv/8gzjqh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJ -y29SWwNyhlCVCNSNh4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9 -Iff/ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8Vbtaw5Bng -DwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwjY/M50n92Uaf0yKHxDHYi -I0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nM -cyrDflOR1m749fPH0FFNjkulW+YZFzvWgQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVr -hkIGuUE= ------END CERTIFICATE----- - -OISTE WISeKey Global Root GB CA -=============================== ------BEGIN CERTIFICATE----- -MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG -EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl -ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw -MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD -VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds -b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX -scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP -rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk -9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o -Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg -GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB -/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI -hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD -dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0 -VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui -HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic -Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= ------END CERTIFICATE----- - -SZAFIR ROOT CA2 -=============== ------BEGIN CERTIFICATE----- -MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG -A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV -BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ -BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD -VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q -qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK -DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE -2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ -ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi -ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P -AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC -AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5 -O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67 -oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul -4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6 -+/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw== ------END CERTIFICATE----- - -Certum Trusted Network CA 2 -=========================== ------BEGIN CERTIFICATE----- -MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE -BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1 -bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y -ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ -TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl -cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB -IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9 -7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o -CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b -Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p -uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130 -GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ -9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB -Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye -hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM -BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI -hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW -Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA -L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo -clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM -pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb -w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo -J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm -ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX -is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7 -zAYspsbiDrW5viSP ------END CERTIFICATE----- - -Hellenic Academic and Research Institutions RootCA 2015 -======================================================= ------BEGIN CERTIFICATE----- -MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcT -BkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0 -aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl -YXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAx -MTIxWjCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMg -QWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNV -BAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIw -MTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC+Kk/G4n8PDwEXT2QNrCROnk8Zlrv -bTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+eh -iGsxr/CL0BgzuNtFajT0AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+ -6PAQZe104S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06CojXd -FPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV9Cz82XBST3i4vTwr -i5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrDgfgXy5I2XdGj2HUb4Ysn6npIQf1F -GQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2 -fu/Z8VFRfS0myGlZYeCsargqNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9mu -iNX6hME6wGkoLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc -Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVdctA4GGqd83EkVAswDQYJKoZI -hvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0IXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+ -D1hYc2Ryx+hFjtyp8iY/xnmMsVMIM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrM -d/K4kPFox/la/vot9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+y -d+2VZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/eaj8GsGsVn -82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnhX9izjFk0WaSrT2y7Hxjb -davYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7F -Jej6A7na+RZukYT1HCjI/CbM1xyQVqdfbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVt -J94Cj8rDtSvK6evIIVM4pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGa -JI7ZjnHKe7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0vm9q -p/UsQu0yrbYhnr68 ------END CERTIFICATE----- - -Hellenic Academic and Research Institutions ECC RootCA 2015 -=========================================================== ------BEGIN CERTIFICATE----- -MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0 -aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u -cyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj -aCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEw -MzcxMlowgaoxCzAJBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmlj -IEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUQwQgYD -VQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIEVDQyBSb290 -Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKgQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVP -dJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJajq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoK -Vlp8aQuqgAkkbH7BRqNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O -BBYEFLQiC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaeplSTA -GiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7SofTUwJCA3sS61kFyjn -dc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR ------END CERTIFICATE----- - -ISRG Root X1 -============ ------BEGIN CERTIFICATE----- -MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UE -BhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQD -EwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQG -EwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMT -DElTUkcgUm9vdCBYMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54r -Vygch77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+0TM8ukj1 -3Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6UA5/TR5d8mUgjU+g4rk8K -b4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sWT8KOEUt+zwvo/7V3LvSye0rgTBIlDHCN -Aymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyHB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ -4Q7e2RCOFvu396j3x+UCB5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf -1b0SHzUvKBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWnOlFu -hjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTnjh8BCNAw1FtxNrQH -usEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbwqHyGO0aoSCqI3Haadr8faqU9GY/r -OPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CIrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4G -A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY -9umbbjANBgkqhkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL -ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ3BebYhtF8GaV -0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KKNFtY2PwByVS5uCbMiogziUwt -hDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJw -TdwJx4nLCgdNbOhdjsnvzqvHu7UrTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nx -e5AW0wdeRlN8NwdCjNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZA -JzVcoyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq4RgqsahD -YVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPAmRGunUHBcnWEvgJBQl9n -JEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcYxn/eR44/KJ4EBs+lVDR3veyJ -m+kXQ99b21/+jh5Xos1AnX5iItreGCc= ------END CERTIFICATE----- - -AC RAIZ FNMT-RCM -================ ------BEGIN CERTIFICATE----- -MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsxCzAJBgNVBAYT -AkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTAeFw0wODEw -MjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJD -TTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC -ggIBALpxgHpMhm5/yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcf -qQgfBBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAzWHFctPVr -btQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxFtBDXaEAUwED653cXeuYL -j2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z374jNUUeAlz+taibmSXaXvMiwzn15Cou -08YfxGyqxRxqAQVKL9LFwag0Jl1mpdICIfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mw -WsXmo8RZZUc1g16p6DULmbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnT -tOmlcYF7wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peSMKGJ -47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2ZSysV4999AeU14EC -ll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMetUqIJ5G+GR4of6ygnXYMgrwTJbFaa -i0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE -FPd9xf3E6Jobd2Sn9R2gzL+HYJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1o -dHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD -nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1RXxlDPiyN8+s -D8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYMLVN0V2Ue1bLdI4E7pWYjJ2cJ -j+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrT -Qfv6MooqtyuGC2mDOL7Nii4LcK2NJpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW -+YJF1DngoABd15jmfZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7 -Ixjp6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp1txyM/1d -8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B9kiABdcPUXmsEKvU7ANm -5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wokRqEIr9baRRmW1FMdW4R58MD3R++Lj8UG -rp1MYp3/RgT408m2ECVAdf4WqslKYIYvuu8wd+RU4riEmViAqhOLUTpPSPaLtrM= ------END CERTIFICATE----- - -Amazon Root CA 1 -================ ------BEGIN CERTIFICATE----- -MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD -VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1 -MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv -bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH -FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ -gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t -dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce -VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB -/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3 -DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM -CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy -8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa -2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2 -xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5 ------END CERTIFICATE----- - -Amazon Root CA 2 -================ ------BEGIN CERTIFICATE----- -MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQswCQYD -VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAyMB4XDTE1 -MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv -bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC -ggIBAK2Wny2cSkxKgXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4 -kHbZW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg1dKmSYXp -N+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K8nu+NQWpEjTj82R0Yiw9 -AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvd -fLC6HM783k81ds8P+HgfajZRRidhW+mez/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAEx -kv8LV/SasrlX6avvDXbR8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSS -btqDT6ZjmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz7Mt0 -Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6+XUyo05f7O0oYtlN -c/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI0u1ufm8/0i2BWSlmy5A5lREedCf+ -3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSw -DPBMMPQFWAJI/TPlUq9LhONmUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oA -A7CXDpO8Wqj2LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY -+gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kSk5Nrp+gvU5LE -YFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl7uxMMne0nxrpS10gxdr9HIcW -xkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygmbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQ -gj9sAq+uEjonljYE1x2igGOpm/HlurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbW -aQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoV -Yh63n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE76KlXIx3 -KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H9jVlpNMKVv/1F2Rs76gi -JUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT4PsJYGw= ------END CERTIFICATE----- - -Amazon Root CA 3 -================ ------BEGIN CERTIFICATE----- -MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG -EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy -NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ -MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB -f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr -Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43 -rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc -eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw== ------END CERTIFICATE----- - -Amazon Root CA 4 -================ ------BEGIN CERTIFICATE----- -MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG -EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy -NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ -MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN -/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri -83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV -HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA -MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1 -AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA== ------END CERTIFICATE----- - -LuxTrust Global Root 2 -====================== ------BEGIN CERTIFICATE----- -MIIFwzCCA6ugAwIBAgIUCn6m30tEntpqJIWe5rgV0xZ/u7EwDQYJKoZIhvcNAQELBQAwRjELMAkG -A1UEBhMCTFUxFjAUBgNVBAoMDUx1eFRydXN0IFMuQS4xHzAdBgNVBAMMFkx1eFRydXN0IEdsb2Jh -bCBSb290IDIwHhcNMTUwMzA1MTMyMTU3WhcNMzUwMzA1MTMyMTU3WjBGMQswCQYDVQQGEwJMVTEW -MBQGA1UECgwNTHV4VHJ1c3QgUy5BLjEfMB0GA1UEAwwWTHV4VHJ1c3QgR2xvYmFsIFJvb3QgMjCC -AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANeFl78RmOnwYoNMPIf5U2o3C/IPPIfOb9wm -Kb3FibrJgz337spbxm1Jc7TJRqMbNBM/wYlFV/TZsfs2ZUv7COJIcRHIbjuend+JZTemhfY7RBi2 -xjcwYkSSl2l9QjAk5A0MiWtj3sXh306pFGxT4GHO9hcvHTy95iJMHZP1EMShduxq3sVs35a0VkBC -wGKSMKEtFZSg0iAGCW5qbeXrt77U8PEVfIvmTroTzEsnXpk8F12PgX8zPU/TPxvsXD/wPEx1bvKm -1Z3aLQdjAsZy6ZS8TEmVT4hSyNvoaYL4zDRbIvCGp4m9SAptZoFtyMhk+wHh9OHe2Z7d21vUKpkm -FRseTJIpgp7VkoGSQXAZ96Tlk0u8d2cx3Rz9MXANF5kM+Qw5GSoXtTBxVdUPrljhPS80m8+f9niF -wpN6cj5mj5wWEWCPnolvZ77gR1o7DJpni89Gxq44o/KnvObWhWszJHAiS8sIm7vI+AIpHb4gDEa/ -a4ebsypmQjVGbKq6rfmYe+lQVRQxv7HaLe2ArWgk+2mr2HETMOZns4dA/Yl+8kPREd8vZS9kzl8U -ubG/Mb2HeFpZZYiq/FkySIbWTLkpS5XTdvN3JW1CHDiDTf2jX5t/Lax5Gw5CMZdjpPuKadUiDTSQ -MC6otOBttpSsvItO13D8xTiOZCXhTTmQzsmHhFhxAgMBAAGjgagwgaUwDwYDVR0TAQH/BAUwAwEB -/zBCBgNVHSAEOzA5MDcGByuBKwEBAQowLDAqBggrBgEFBQcCARYeaHR0cHM6Ly9yZXBvc2l0b3J5 -Lmx1eHRydXN0Lmx1MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBT/GCh2+UgFLKGu8SsbK7JT -+Et8szAdBgNVHQ4EFgQU/xgodvlIBSyhrvErGyuyU/hLfLMwDQYJKoZIhvcNAQELBQADggIBAGoZ -FO1uecEsh9QNcH7X9njJCwROxLHOk3D+sFTAMs2ZMGQXvw/l4jP9BzZAcg4atmpZ1gDlaCDdLnIN -H2pkMSCEfUmmWjfrRcmF9dTHF5kH5ptV5AzoqbTOjFu1EVzPig4N1qx3gf4ynCSecs5U89BvolbW -7MM3LGVYvlcAGvI1+ut7MV3CwRI9loGIlonBWVx65n9wNOeD4rHh4bhY79SV5GCc8JaXcozrhAIu -ZY+kt9J/Z93I055cqqmkoCUUBpvsT34tC38ddfEz2O3OuHVtPlu5mB0xDVbYQw8wkbIEa91WvpWA -VWe+2M2D2RjuLg+GLZKecBPs3lHJQ3gCpU3I+V/EkVhGFndadKpAvAefMLmx9xIX3eP/JEAdemrR -TxgKqpAd60Ae36EeRJIQmvKN4dFLRp7oRUKX6kWZ8+xm1QL68qZKJKrezrnK+T+Tb/mjuuqlPpmt -/f97mfVl7vBZKGfXkJWkE4SphMHozs51k2MavDzq1WQfLSoSOcbDWjLtR5EWDrw4wVDej8oqkDQc -7kGUnF4ZLvhFSZl0kbAEb+MEWrGrKqv+x9CWttrhSmQGbmBNvUJO/3jaJMobtNeWOWyu8Q6qp31I -iyBMz2TWuJdGsE7RKlY6oJO9r4Ak4Ap+58rVyuiFVdw2KuGUaJPHZnJED4AhMmwlxyOAgwrr ------END CERTIFICATE----- - -TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 -============================================= ------BEGIN CERTIFICATE----- -MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNVBAcT -D0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtub2xvamlr -IEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24g -TWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRp -ZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYD -VQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXllIEJpbGlt -c2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklUQUsxLTArBgNVBAsTJEth -bXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBTTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11 -IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y8 -6Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wc -wv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh0 -3+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9 -WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQU -ZT/HiobGPN08VFw1+DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ -KoZIhvcNAQELBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh -AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yc -lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R -e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j -q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= ------END CERTIFICATE----- - -GDCA TrustAUTH R5 ROOT -====================== ------BEGIN CERTIFICATE----- -MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCQ04xMjAw -BgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8wHQYDVQQD -DBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVow -YjELMAkGA1UEBhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ -IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0B -AQEFAAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJjDp6L3TQs -AlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBjTnnEt1u9ol2x8kECK62p -OqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+uKU49tm7srsHwJ5uu4/Ts765/94Y9cnrr -pftZTqfrlYwiOXnhLQiPzLyRuEH3FMEjqcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ -9Cy5WmYqsBebnh52nUpmMUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQ -xXABZG12ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloPzgsM -R6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3GkL30SgLdTMEZeS1SZ -D2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeCjGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4 -oR24qoAATILnsn8JuLwwoC8N9VKejveSswoAHQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx -9hoh49pwBiFYFIeFd3mqgnkCAwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlR -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg -p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZmDRd9FBUb1Ov9 -H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5COmSdI31R9KrO9b7eGZONn35 -6ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ryL3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd -+PwyvzeG5LuOmCd+uh8W4XAR8gPfJWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQ -HtZa37dG/OaG+svgIHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBD -F8Io2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV09tL7ECQ -8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQXR4EzzffHqhmsYzmIGrv -/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrqT8p+ck0LcIymSLumoRT2+1hEmRSuqguT -aaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== ------END CERTIFICATE----- - -TrustCor RootCert CA-1 -====================== ------BEGIN CERTIFICATE----- -MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYDVQQGEwJQQTEP -MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig -U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp -dHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkx -MjMxMTcyMzE2WjCBpDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFu -YW1hIENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUGA1UECwwe -VHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZUcnVzdENvciBSb290Q2Vy -dCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv463leLCJhJrMxnHQFgKq1mq -jQCj/IDHUHuO1CAmujIS2CNUSSUQIpidRtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4 -pQa81QBeCQryJ3pS/C3Vseq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0 -JEsq1pme9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CVEY4h -gLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorWhnAbJN7+KIor0Gqw -/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/DeOxCbeKyKsZn3MzUOcwHwYDVR0j -BBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AYYwDQYJKoZIhvcNAQELBQADggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5 -mDo4Nvu7Zp5I/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf -ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZyonnMlo2HD6C -qFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djtsL1Ac59v2Z3kf9YKVmgenFK+P -3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdNzl/HHk484IkzlQsPpTLWPFp5LBk= ------END CERTIFICATE----- - -TrustCor RootCert CA-2 -====================== ------BEGIN CERTIFICATE----- -MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNVBAYTAlBBMQ8w -DQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQwIgYDVQQKDBtUcnVzdENvciBT -eXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0 -eTEfMB0GA1UEAwwWVHJ1c3RDb3IgUm9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEy -MzExNzI2MzlaMIGkMQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5h -bWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U -cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0 -IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnIG7CKqJiJJWQdsg4foDSq8Gb -ZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9Nk -RvRUqdw6VC0xK5mC8tkq1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1 -oYxOdqHp2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nKDOOb -XUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hapeaz6LMvYHL1cEksr1 -/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF3wP+TfSvPd9cW436cOGlfifHhi5q -jxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQP -eSghYA2FFn3XVDjxklb9tTNMg9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+Ctg -rKAmrhQhJ8Z3mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh -8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAdBgNVHQ4EFgQU -2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6UnrybPZx9mCAZ5YwwYrIwDwYD -VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/h -Osh80QA9z+LqBrWyOrsGS2h60COXdKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnp -kpfbsEZC89NiqpX+MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv -2wnL/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RXCI/hOWB3 -S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYaZH9bDTMJBzN7Bj8RpFxw -PIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dv -DDqPys/cA8GiCcjl/YBeyGBCARsaU1q7N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYU -RpFHmygk71dSTlxCnKr3Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANE -xdqtvArBAs8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp5KeX -RKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu1uwJ ------END CERTIFICATE----- - -TrustCor ECA-1 -============== ------BEGIN CERTIFICATE----- -MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYDVQQGEwJQQTEP -MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig -U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp -dHkxFzAVBgNVBAMMDlRydXN0Q29yIEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3Mjgw -N1owgZwxCzAJBgNVBAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5 -MSQwIgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29y -IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3IgRUNBLTEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb3w9U73NjKYKtR8aja+3+XzP4Q1HpGjOR -MRegdMTUpwHmspI+ap3tDvl0mEDTPwOABoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23 -xFUfJ3zSCNV2HykVh0A53ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmc -p0yJF4OuowReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/wZ0+ -fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZFZtS6mFjBAgMBAAGj -YzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAfBgNVHSMEGDAWgBREnkj1zG1I1KBL -f/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF -AAOCAQEABT41XBVwm8nHc2FvcivUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u -/ukZMjgDfxT2AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F -hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50soIipX1TH0Xs -J5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BIWJZpTdwHjFGTot+fDz2LYLSC -jaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1WitJ/X5g== ------END CERTIFICATE----- - -SSL.com Root Certification Authority RSA -======================================== ------BEGIN CERTIFICATE----- -MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxDjAM -BgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24x -MTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYw -MjEyMTczOTM5WhcNNDEwMjEyMTczOTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx -EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NM -LmNvbSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2RxFdHaxh3a3by/ZPkPQ/C -Fp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aXqhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8 -P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcCC52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/ge -oeOy3ZExqysdBP+lSgQ36YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkp -k8zruFvh/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrFYD3Z -fBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93EJNyAKoFBbZQ+yODJ -gUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVcUS4cK38acijnALXRdMbX5J+tB5O2 -UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi8 -1xtZPCvM8hnIk2snYxnP/Okm+Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4s -bE6x/c+cCbqiM+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV -HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4GA1UdDwEB/wQE -AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGVcpNxJK1ok1iOMq8bs3AD/CUr -dIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBcHadm47GUBwwyOabqG7B52B2ccETjit3E+ZUf -ijhDPwGFpUenPUayvOUiaPd7nNgsPgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAsl -u1OJD7OAUN5F7kR/q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjq -erQ0cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jra6x+3uxj -MxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90IH37hVZkLId6Tngr75qNJ -vTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/YK9f1JmzJBjSWFupwWRoyeXkLtoh/D1JI -Pb9s2KJELtFOt3JY04kTlf5Eq/jXixtunLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406y -wKBjYZC6VWg3dGq2ktufoYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NI -WuuA8ShYIc2wBlX7Jz9TkHCpBB5XJ7k= ------END CERTIFICATE----- - -SSL.com Root Certification Authority ECC -======================================== ------BEGIN CERTIFICATE----- -MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMCVVMxDjAMBgNV -BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xMTAv -BgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEy -MTgxNDAzWhcNNDEwMjEyMTgxNDAzWjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAO -BgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv -bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuBBAAiA2IA -BEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI7Z4INcgn64mMU1jrYor+ -8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPgCemB+vNH06NjMGEwHQYDVR0OBBYEFILR -hXMw5zUE044CkvvlpNHEIejNMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTT -jgKS++Wk0cQh6M0wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCW -e+0F+S8Tkdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+gA0z -5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl ------END CERTIFICATE----- - -SSL.com EV Root Certification Authority RSA R2 -============================================== ------BEGIN CERTIFICATE----- -MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAlVTMQ4w -DAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9u -MTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy -MB4XDTE3MDUzMTE4MTQzN1oXDTQyMDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQI -DAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYD -VQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMIICIjAN -BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvqM0fNTPl9fb69LT3w23jh -hqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssufOePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7w -cXHswxzpY6IXFJ3vG2fThVUCAtZJycxa4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTO -Zw+oz12WGQvE43LrrdF9HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+ -B6KjBSYRaZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcAb9Zh -CBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQGp8hLH94t2S42Oim -9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQVPWKchjgGAGYS5Fl2WlPAApiiECto -RHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMOpgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+Slm -JuwgUHfbSguPvuUCYHBBXtSuUDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48 -+qvWBkofZ6aYMBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV -HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa49QaAJadz20Zp -qJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBWs47LCp1Jjr+kxJG7ZhcFUZh1 -++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nx -Y/hoLVUE0fKNsKTPvDxeH3jnpaAgcLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2G -guDKBAdRUNf/ktUM79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDz -OFSz/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXtll9ldDz7 -CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEmKf7GUmG6sXP/wwyc5Wxq -lD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKKQbNmC1r7fSOl8hqw/96bg5Qu0T/fkreR -rwU7ZcegbLHNYhLDkBvjJc40vG93drEQw/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1 -hlMYegouCRw2n5H9gooiS9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX -9hwJ1C07mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w== ------END CERTIFICATE----- - -SSL.com EV Root Certification Authority ECC -=========================================== ------BEGIN CERTIFICATE----- -MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCVVMxDjAMBgNV -BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xNDAy -BgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYw -MjEyMTgxNTIzWhcNNDEwMjEyMTgxNTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx -EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NM -LmNvbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB -BAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMAVIbc/R/fALhBYlzccBYy -3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1KthkuWnBaBu2+8KGwytAJKaNjMGEwHQYDVR0O -BBYEFFvKXuXe0oGqzagtZFG22XKbl+ZPMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe -5d7SgarNqC1kUbbZcpuX5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJ -N+vp1RPZytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZgh5Mm -m7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg== ------END CERTIFICATE----- - -GlobalSign Root CA - R6 -======================= ------BEGIN CERTIFICATE----- -MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEgMB4GA1UECxMX -R2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds -b2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQxMjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9i -YWxTaWduIFJvb3QgQ0EgLSBSNjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFs -U2lnbjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQss -grRIxutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1kZguSgMpE -3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxDaNc9PIrFsmbVkJq3MQbF -vuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJwLnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqM -PKq0pPbzlUoSB239jLKJz9CgYXfIWHSw1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+ -azayOeSsJDa38O+2HBNXk7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05O -WgtH8wY2SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/hbguy -CLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4nWUx2OVvq+aWh2IMP -0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpYrZxCRXluDocZXFSxZba/jJvcE+kN -b7gu3GduyYsRtYQUigAZcIN5kZeR1BonvzceMgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQE -AwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNV -HSMEGDAWgBSubAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN -nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGtIxg93eFyRJa0 -lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr6155wsTLxDKZmOMNOsIeDjHfrY -BzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLjvUYAGm0CuiVdjaExUd1URhxN25mW7xocBFym -Fe944Hn+Xds+qkxV/ZoVqW/hpvvfcDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr -3TsTjxKM4kEaSHpzoHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB1 -0jZpnOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfspA9MRf/T -uTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+vJJUEeKgDu+6B5dpffItK -oZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+t -JDfLRVpOoERIyNiwmcUVhAn21klJwGW45hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA= ------END CERTIFICATE----- - -OISTE WISeKey Global Root GC CA -=============================== ------BEGIN CERTIFICATE----- -MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQswCQYDVQQGEwJD -SDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEo -MCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRa -Fw00MjA1MDkwOTU4MzNaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQL -ExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh -bCBSb290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4nieUqjFqdr -VCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4Wp2OQ0jnUsYd4XxiWD1Ab -NTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd -BgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7TrYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0E -AwMDaAAwZQIwJsdpW9zV57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtk -AjEA2zQgMgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 ------END CERTIFICATE----- - -GTS Root R1 -=========== ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQbkepxUtHDA3sM9CJuRz04TANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQG -EwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJv -b3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAG -A1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx -9vaMf/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7r -aKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnW -r4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqM -LnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly -4cpk9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr -06zqkUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92 -wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om -3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNu -JLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEM -BQADggIBADiWCu49tJYeX++dnAsznyvgyv3SjgofQXSlfKqE1OXyHuY3UjKcC9FhHb8owbZEKTV1 -d5iyfNm9dKyKaOOpMQkpAWBz40d8U6iQSifvS9efk+eCNs6aaAyC58/UEBZvXw6ZXPYfcX3v73sv -fuo21pdwCxXu11xWajOl40k4DLh9+42FpLFZXvRq4d2h9mREruZRgyFmxhE+885H7pwoHyXa/6xm -ld01D1zvICxi/ZG6qcz8WpyTgYMpl0p8WnK0OdC3d8t5/Wk6kjftbjhlRn7pYL15iJdfOBL07q9b -gsiG1eGZbYwE8na6SfZu6W0eX6DvJ4J2QPim01hcDyxC2kLGe4g0x8HYRZvBPsVhHdljUEn2NIVq -4BjFbkerQUIpm/ZgDdIx02OYI5NaAIFItO/Nis3Jz5nu2Z6qNuFoS3FJFDYoOj0dzpqPJeaAcWEr -tXvM+SUWgeExX6GjfhaknBZqlxi9dnKlC54dNuYvoS++cJEPqOba+MSSQGwlfnuzCdyyF62ARPBo -pY+Udf90WuioAnwMCeKpSwughQtiue+hMZL77/ZRBIls6Kl0obsXs7X9SQ98POyDGCBDTtWTurQ0 -sR8WNh8M5mQ5Fkzc4P4dyKliPUDqysU0ArSuiYgzNdwsE3PYJ/HQcu51OyLemGhmW/HGY0dVHLql -CFF1pkgl ------END CERTIFICATE----- - -GTS Root R2 -=========== ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQbkepxlqz5yDFMJo/aFLybzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQG -EwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJv -b3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAG -A1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTuk -k3LvCvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo -7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWI -m8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5Gm -dFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbu -ak7MkogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscsz -cTJGr61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW -Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73Vululycsl -aVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy -5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEM -BQADggIBALZp8KZ3/p7uC4Gt4cCpx/k1HUCCq+YEtN/L9x0Pg/B+E02NjO7jMyLDOfxA325BS0JT -vhaI8dI4XsRomRyYUpOM52jtG2pzegVATX9lO9ZY8c6DR2Dj/5epnGB3GFW1fgiTz9D2PGcDFWEJ -+YF59exTpJ/JjwGLc8R3dtyDovUMSRqodt6Sm2T4syzFJ9MHwAiApJiS4wGWAqoC7o87xdFtCjMw -c3i5T1QWvwsHoaRc5svJXISPD+AVdyx+Jn7axEvbpxZ3B7DNdehyQtaVhJ2Gg/LkkM0JR9SLA3Da -WsYDQvTtN6LwG1BUSw7YhN4ZKJmBR64JGz9I0cNv4rBgF/XuIwKl2gBbbZCr7qLpGzvpx0QnRY5r -n/WkhLx3+WuXrD5RRaIRpsyF7gpo8j5QOHokYh4XIDdtak23CZvJ/KRY9bb7nE4Yu5UC56Gtmwfu -Nmsk0jmGwZODUNKBRqhfYlcsu2xkiAhu7xNUX90txGdj08+JN7+dIPT7eoOboB6BAFDC5AwiWVIQ -7UNWhwD4FFKnHYuTjKJNRn8nxnGbJN7k2oaLDX5rIMHAnuFl2GqjpuiFizoHCBy69Y9Vmhh1fuXs -gWbRIXOhNUQLgD1bnF5vKheW0YMjiGZt5obicDIvUiLnyOd/xCxgXS/Dr55FBcOEArf9LAhST4Ld -o/DUhgkC ------END CERTIFICATE----- - -GTS Root R3 -=========== ------BEGIN CERTIFICATE----- -MIICDDCCAZGgAwIBAgIQbkepx2ypcyRAiQ8DVd2NHTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV -UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg -UjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE -ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcq -hkjOPQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUU -Rout736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24Cej -QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP -0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEAgFukfCPAlaUs3L6JbyO5o91lAFJekazInXJ0 -glMLfalAvWhgxeG4VDvBNhcl2MG9AjEAnjWSdIUlUfUk7GRSJFClH9voy8l27OyCbvWFGFPouOOa -KaqW04MjyaR7YbPMAuhd ------END CERTIFICATE----- - -GTS Root R4 -=========== ------BEGIN CERTIFICATE----- -MIICCjCCAZGgAwIBAgIQbkepyIuUtui7OyrYorLBmTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV -UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg -UjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE -ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcq -hkjOPQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa -6zzuhXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqj -QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV -2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNnADBkAjBqUFJ0CMRw3J5QdCHojXohw0+WbhXRIjVhLfoI -N+4Zba3bssx9BzT1YBkstTTZbyACMANxsbqjYAuG7ZoIapVon+Kz4ZNkfF6Tpt95LY2F45TPI11x -zPKwTdb+mciUqXWi4w== ------END CERTIFICATE----- - -UCA Global G2 Root -================== ------BEGIN CERTIFICATE----- -MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQG -EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBHbG9iYWwgRzIgUm9vdDAeFw0x -NjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0xCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlU -cnVzdDEbMBkGA1UEAwwSVUNBIEdsb2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEAxeYrb3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmT -oni9kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzmVHqUwCoV -8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/RVogvGjqNO7uCEeBHANBS -h6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDcC/Vkw85DvG1xudLeJ1uK6NjGruFZfc8o -LTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIjtm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/ -R+zvWr9LesGtOxdQXGLYD0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBe -KW4bHAyvj5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6DlNaBa -4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6iIis7nCs+dwp4wwc -OxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznPO6Q0ibd5Ei9Hxeepl2n8pndntd97 -8XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O -BBYEFIHEjMz15DD/pQwIX4wVZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo -5sOASD0Ee/ojL3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5 -1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl1qnN3e92mI0A -Ds0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oUb3n09tDh05S60FdRvScFDcH9 -yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LVPtateJLbXDzz2K36uGt/xDYotgIVilQsnLAX -c47QN6MUPJiVAAwpBVueSUmxX8fjy88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHo -jhJi6IjMtX9Gl8CbEGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZk -bxqgDMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI+Vg7RE+x -ygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGyYiGqhkCyLmTTX8jjfhFn -RR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bXUB+K+wb1whnw0A== ------END CERTIFICATE----- - -UCA Extended Validation Root -============================ ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQG -EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9u -IFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMxMDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8G -A1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrs -iWogD4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvSsPGP2KxF -Rv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aopO2z6+I9tTcg1367r3CTu -eUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dksHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR -59mzLC52LqGj3n5qiAno8geK+LLNEOfic0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH -0mK1lTnj8/FtDw5lhIpjVMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KR -el7sFsLzKuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/TuDv -B0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41Gsx2VYVdWf6/wFlth -WG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs1+lvK9JKBZP8nm9rZ/+I8U6laUpS -NwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQDfwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS -3H5aBZ8eNJr34RQwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQEL -BQADggIBADaNl8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR -ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQVBcZEhrxH9cM -aVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5c6sq1WnIeJEmMX3ixzDx/BR4 -dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb -+7lsq+KePRXBOy5nAliRn+/4Qh8st2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOW -F3sGPjLtx7dCvHaj2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwi -GpWOvpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2CxR9GUeOc -GMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmxcmtpzyKEC2IPrNkZAJSi -djzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbMfjKaiJUINlK73nZfdklJrX+9ZSCyycEr -dhh2n1ax ------END CERTIFICATE----- - -Certigna Root CA -================ ------BEGIN CERTIFICATE----- -MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAwWjELMAkGA1UE -BhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAwMiA0ODE0NjMwODEwMDAzNjEZ -MBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0xMzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjda -MFoxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYz -MDgxMDAwMzYxGTAXBgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sOty3tRQgX -stmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9MCiBtnyN6tMbaLOQdLNyz -KNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPuI9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8 -JXrJhFwLrN1CTivngqIkicuQstDuI7pmTLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16 -XdG+RCYyKfHx9WzMfgIhC59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq -4NYKpkDfePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3YzIoej -wpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWTCo/1VTp2lc5ZmIoJ -lXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1kJWumIWmbat10TWuXekG9qxf5kBdI -jzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp/ -/TBt2dzhauH8XwIDAQABo4IBGjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw -HQYDVR0OBBYEFBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of -1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczovL3d3d3cuY2Vy -dGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilodHRwOi8vY3JsLmNlcnRpZ25h -LmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYraHR0cDovL2NybC5kaGlteW90aXMuY29tL2Nl -cnRpZ25hcm9vdGNhLmNybDANBgkqhkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOIt -OoldaDgvUSILSo3L6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxP -TGRGHVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH60BGM+RFq -7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncBlA2c5uk5jR+mUYyZDDl3 -4bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdio2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd -8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS -6Cvu5zHbugRqh5jnxV/vfaci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaY -tlu3zM63Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayhjWZS -aX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw3kAP+HwV96LOPNde -E4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0= ------END CERTIFICATE----- diff --git a/libs/cpp-httplib/test/fuzzing/CMakeLists.txt b/libs/cpp-httplib/test/fuzzing/CMakeLists.txt deleted file mode 100644 index 7e416c7..0000000 --- a/libs/cpp-httplib/test/fuzzing/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -file(GLOB HTTPLIB_CORPUS corpus/*) -add_executable(httplib-test-fuzz - server_fuzzer.cc - standalone_fuzz_target_runner.cpp -) -target_link_libraries(httplib-test-fuzz PRIVATE httplib) -add_test( - NAME httplib-test-fuzz - COMMAND httplib-test-fuzz ${HTTPLIB_CORPUS} -) diff --git a/libs/cpp-httplib/test/fuzzing/Makefile b/libs/cpp-httplib/test/fuzzing/Makefile deleted file mode 100644 index b08ecd0..0000000 --- a/libs/cpp-httplib/test/fuzzing/Makefile +++ /dev/null @@ -1,27 +0,0 @@ - -#CXX = clang++ -# Do not add default sanitizer flags here as OSS-fuzz adds its own sanitizer flags. -CXXFLAGS += -ggdb -O0 -std=c++11 -DGTEST_USE_OWN_TR1_TUPLE -I../.. -I. -Wall -Wextra -Wtype-limits -Wconversion - -OPENSSL_DIR = /usr/local/opt/openssl@1.1 - -# Using full path to libssl and libcrypto to avoid accidentally picking openssl libs brought in by msan. -OPENSSL_SUPPORT = -DCPPHTTPLIB_OPENSSL_SUPPORT -I$(OPENSSL_DIR)/include -I$(OPENSSL_DIR)/lib /usr/local/lib/libssl.a /usr/local/lib/libcrypto.a - -ZLIB_SUPPORT = -DCPPHTTPLIB_ZLIB_SUPPORT -lz - -BROTLI_DIR = /usr/local/opt/brotli -# BROTLI_SUPPORT = -DCPPHTTPLIB_BROTLI_SUPPORT -I$(BROTLI_DIR)/include -L$(BROTLI_DIR)/lib -lbrotlicommon -lbrotlienc -lbrotlidec - -# Runs all the tests and also fuzz tests against seed corpus. -all : server_fuzzer - ./server_fuzzer corpus/* - -# Fuzz target, so that you can choose which $(LIB_FUZZING_ENGINE) to use. -server_fuzzer : server_fuzzer.cc ../../httplib.h -# $(CXX) $(CXXFLAGS) -o $@ $< -Wl,-Bstatic $(OPENSSL_SUPPORT) -Wl,-Bdynamic -ldl $(ZLIB_SUPPORT) $(LIB_FUZZING_ENGINE) -pthread - $(CXX) $(CXXFLAGS) -o $@ $< $(ZLIB_SUPPORT) $(LIB_FUZZING_ENGINE) -pthread -lanl - zip -q -r server_fuzzer_seed_corpus.zip corpus - -clean: - rm -f server_fuzzer pem *.0 *.o *.1 *.srl *.zip diff --git a/libs/cpp-httplib/test/fuzzing/corpus/1 b/libs/cpp-httplib/test/fuzzing/corpus/1 deleted file mode 100644 index 2b9fcc4..0000000 --- a/libs/cpp-httplib/test/fuzzing/corpus/1 +++ /dev/null @@ -1 +0,0 @@ -PUT /search/sample?a=12 HTTP/1.1 \ No newline at end of file diff --git a/libs/cpp-httplib/test/fuzzing/corpus/2 b/libs/cpp-httplib/test/fuzzing/corpus/2 deleted file mode 100644 index bdb9bcc..0000000 --- a/libs/cpp-httplib/test/fuzzing/corpus/2 +++ /dev/null @@ -1,5 +0,0 @@ -GET /hello.htm HTTP/1.1 -User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) -Accept-Language: en-us -Accept-Encoding: gzip, deflate -Connection: Keep-Alive \ No newline at end of file diff --git a/libs/cpp-httplib/test/fuzzing/corpus/3 b/libs/cpp-httplib/test/fuzzing/corpus/3 deleted file mode 100644 index 878944f..0000000 Binary files a/libs/cpp-httplib/test/fuzzing/corpus/3 and /dev/null differ diff --git a/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5042094968537088 b/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5042094968537088 deleted file mode 100644 index 0325729..0000000 Binary files a/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5042094968537088 and /dev/null differ diff --git a/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5372331946541056 b/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5372331946541056 deleted file mode 100644 index 6fca86b..0000000 Binary files a/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5372331946541056 and /dev/null differ diff --git a/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5386708825800704 b/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5386708825800704 deleted file mode 100644 index 1f1e4ae..0000000 Binary files a/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5386708825800704 and /dev/null differ diff --git a/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5667822731132928 b/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5667822731132928 deleted file mode 100644 index b21d1ce..0000000 Binary files a/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5667822731132928 and /dev/null differ diff --git a/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5886572146327552 b/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5886572146327552 deleted file mode 100644 index 797165c..0000000 Binary files a/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5886572146327552 and /dev/null differ diff --git a/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5942767436562432 b/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5942767436562432 deleted file mode 100644 index a2fedd5..0000000 Binary files a/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-5942767436562432 and /dev/null differ diff --git a/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-6007379124158464 b/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-6007379124158464 deleted file mode 100644 index 4c4c57e..0000000 Binary files a/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-6007379124158464 and /dev/null differ diff --git a/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-6508706672541696 b/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-6508706672541696 deleted file mode 100644 index 6f89836..0000000 --- a/libs/cpp-httplib/test/fuzzing/corpus/clusterfuzz-testcase-minimized-server_fuzzer-6508706672541696 +++ /dev/null @@ -1,7 +0,0 @@ -PUT { HTTP/1.0 -Content-Type:multipart/form-databoundary=m -Range:bytes=- - ---m -C -c PUT ?&+&:&<&&I&`&a&&s&&&2&&&@&!& ‮ ‌ PUT ?&+&:&<&&I&`&a&&s&&&2&&&@&!& PUT ?&+&:&<&&I&`&a&&s&&&2&&&@&!& X-Forwarded-Host ‮ ‌ X-Forwarded-Host ‮ ‌ PUT ?&+&:&<&&I&`&a&&s&&&2&&&@&!& PUT ?&+&:&<&&I&`&a&&s&&&2&&&@&!& X-Forwarded-Host ‮ ‌ 2 +/v+ \ No newline at end of file diff --git a/libs/cpp-httplib/test/fuzzing/corpus/issue1264 b/libs/cpp-httplib/test/fuzzing/corpus/issue1264 deleted file mode 100644 index fd53db5..0000000 --- a/libs/cpp-httplib/test/fuzzing/corpus/issue1264 +++ /dev/null @@ -1,19 +0,0 @@ -POST /fform%u008anom%u08ag HTTP/1.0 -DondntGnt-Encodinz-daExpi%20-Env2PUT@HTkP/ -Rcn ,Cotent-Security-Pz-tes=Tpeont.e-Typ nt-Ty@n/***ww-form-urlencT?aLO%KSi@FrTTP/1.0 -Cofffffffffffffffffffffffntemt - - - - - -Content-Length:dent:applica;tion/x-wsw-form%`00368aogrlencod368angrlencoded -JJ` -o - -8Content-EncodxNg:deflatePtipfo - -8 -92H2  ncod368anPOST # HTTP/1.0 Content-Encoding:defPOST / HTTP/1.0 -Content-Encoding:PUT { HTTP/1.0 -Content-Type:Range:bytes=- multipart/ \ No newline at end of file diff --git a/libs/cpp-httplib/test/fuzzing/server_fuzzer.cc b/libs/cpp-httplib/test/fuzzing/server_fuzzer.cc deleted file mode 100644 index a0f7c0e..0000000 --- a/libs/cpp-httplib/test/fuzzing/server_fuzzer.cc +++ /dev/null @@ -1,100 +0,0 @@ -#include - -#include - -class FuzzedStream : public httplib::Stream { -public: - FuzzedStream(const uint8_t *data, size_t size) - : data_(data), size_(size), read_pos_(0) {} - - ssize_t read(char *ptr, size_t size) override { - if (size + read_pos_ > size_) { size = size_ - read_pos_; } - memcpy(ptr, data_ + read_pos_, size); - read_pos_ += size; - return static_cast(size); - } - - ssize_t write(const char *ptr, size_t size) override { - response_.append(ptr, size); - return static_cast(size); - } - - ssize_t write(const char *ptr) { return write(ptr, strlen(ptr)); } - - ssize_t write(const std::string &s) { return write(s.data(), s.size()); } - - bool is_readable() const override { return true; } - - bool wait_readable() const override { return true; } - - bool wait_writable() const override { return true; } - - void get_remote_ip_and_port(std::string &ip, int &port) const override { - ip = "127.0.0.1"; - port = 8080; - } - - void get_local_ip_and_port(std::string &ip, int &port) const override { - ip = "127.0.0.1"; - port = 8080; - } - - socket_t socket() const override { return 0; } - - time_t duration() const override { return 0; }; - -private: - const uint8_t *data_; - size_t size_; - size_t read_pos_; - std::string response_; -}; - -class FuzzableServer : public httplib::Server { -public: - void ProcessFuzzedRequest(FuzzedStream &stream) { - bool connection_close = false; - process_request(stream, - /*remote_addr=*/"", - /*remote_port =*/0, - /*local_addr=*/"", - /*local_port =*/0, - /*last_connection=*/false, connection_close, nullptr); - } -}; - -static FuzzableServer g_server; - -extern "C" int LLVMFuzzerInitialize(int * /*argc*/, char *** /*argv*/) { - g_server.Get(R"(.*)", - [&](const httplib::Request & /*req*/, httplib::Response &res) { - res.set_content("response content", "text/plain"); - }); - g_server.Post(R"(.*)", - [&](const httplib::Request & /*req*/, httplib::Response &res) { - res.set_content("response content", "text/plain"); - }); - g_server.Put(R"(.*)", - [&](const httplib::Request & /*req*/, httplib::Response &res) { - res.set_content("response content", "text/plain"); - }); - g_server.Patch(R"(.*)", - [&](const httplib::Request & /*req*/, httplib::Response &res) { - res.set_content("response content", "text/plain"); - }); - g_server.Delete( - R"(.*)", [&](const httplib::Request & /*req*/, httplib::Response &res) { - res.set_content("response content", "text/plain"); - }); - g_server.Options( - R"(.*)", [&](const httplib::Request & /*req*/, httplib::Response &res) { - res.set_content("response content", "text/plain"); - }); - return 0; -} - -extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { - FuzzedStream stream{data, size}; - g_server.ProcessFuzzedRequest(stream); - return 0; -} diff --git a/libs/cpp-httplib/test/fuzzing/server_fuzzer.dict b/libs/cpp-httplib/test/fuzzing/server_fuzzer.dict deleted file mode 100644 index 47283dc..0000000 --- a/libs/cpp-httplib/test/fuzzing/server_fuzzer.dict +++ /dev/null @@ -1,224 +0,0 @@ -# Sources: https://en.wikipedia.org/wiki/List_of_HTTP_header_fields - -# misc -"HTTP/1.1" - -# verbs -"CONNECT" -"DELETE" -"GET" -"HEAD" -"OPTIONS" -"PATCH" -"POST" -"PUT" -"TRACE" - - -# Webdav/caldav verbs -"ACL" -"BASELINE-CONTROL" -"BIND" -"CHECKIN" -"CHECKOUT" -"COPY" -"LABEL" -"LINK" -"LOCK" -"MERGE" -"MKACTIVITY" -"MKCALENDAR" -"MKCOL" -"MKREDIRECTREF" -"MKWORKSPACE" -"MOVE" -"ORDERPATCH" -"PRI" -"PROPFIND" -"PROPPATCH" -"REBIND" -"REPORT" -"SEARCH" -"UNBIND" -"UNCHECKOUT" -"UNLINK" -"UNLOCK" -"UPDATE" -"UPDATEREDIRECTREF" -"VERSION-CONTROL" - - -# Fields -"A-IM" -"Accept" -"Accept-Charset" -"Accept-Datetime" -"Accept-Encoding" -"Accept-Language" -"Accept-Patch" -"Accept-Ranges" -"Access-Control-Allow-Credentials" -"Access-Control-Allow-Headers" -"Access-Control-Allow-Methods" -"Access-Control-Allow-Origin" -"Access-Control-Expose-Headers" -"Access-Control-Max-Age" -"Access-Control-Request-Headers" -"Access-Control-Request-Method" -"Age" -"Allow" -"Alt-Svc" -"Authorization" -"Cache-Control" -"Connection" -"Connection:" -"Content-Disposition" -"Content-Encoding" -"Content-Language" -"Content-Length" -"Content-Location" -"Content-MD5" -"Content-Range" -"Content-Security-Policy" -"Content-Type" -"Cookie" -"DNT" -"Date" -"Delta-Base" -"ETag" -"Expect" -"Expires" -"Forwarded" -"From" -"Front-End-Https" -"HTTP2-Settings" -"Host" -"IM" -"If-Match" -"If-Modified-Since" -"If-None-Match" -"If-Range" -"If-Unmodified-Since" -"Last-Modified" -"Link" -"Location" -"Max-Forwards" -"Origin" -"P3P" -"Pragma" -"Proxy-Authenticate" -"Proxy-Authorization" -"Proxy-Connection" -"Public-Key-Pins" -"Range" -"Referer" -"Refresh" -"Retry-After" -"Save-Data" -"Server" -"Set-Cookie" -"Status" -"Strict-Transport-Security" -"TE" -"Timing-Allow-Origin" -"Tk" -"Trailer" -"Transfer-Encoding" -"Upgrade" -"Upgrade-Insecure-Requests" -"User-Agent" -"Vary" -"Via" -"WWW-Authenticate" -"Warning" -"X-ATT-DeviceId" -"X-Content-Duration" -"X-Content-Security-Policy" -"X-Content-Type-Options" -"X-Correlation-ID" -"X-Csrf-Token" -"X-Forwarded-For" -"X-Forwarded-Host" -"X-Forwarded-Proto" -"X-Frame-Options" -"X-Http-Method-Override" -"X-Powered-By" -"X-Request-ID" -"X-Requested-With" -"X-UA-Compatible" -"X-UIDH" -"X-Wap-Profile" -"X-WebKit-CSP" -"X-XSS-Protection" - -# Source: string and character literals in httplib.h -" " -"&" -", " -"-" -"--" -"." -".." -":" -"=" -" = = " -"0123456789abcdef" -"%02X" -"%0A" -"\\x0a\\x0d" -"%0D" -"%20" -"%27" -"%2B" -"%2C" -"%3A" -"%3B" -"application/javascript" -"application/json" -"application/pdf" -"application/xhtml+xml" -"application/xml" -"application/x-www-form-urlencoded" -"Bad Request" -"boundary=" -"bytes=" -"chunked" -"close" -"CONNECT" -"css" -"Forbidden" -"Found" -"gif" -"gzip" -"html" -"ico" -"image/gif" -"image/jpg" -"image/png" -"image/svg+xml" -"image/x-icon" -"index.html" -"Internal Server Error" -"jpeg" -"js" -"json" -"Location" -"Moved Permanently" -"multipart/form-data" -"Not Found" -"Not Modified" -"OK" -"pdf" -"png" -"Range" -"REMOTE_ADDR" -"See Other" -"svg" -"text/" -"text/css" -"text/html" -"text/plain" -"txt" -"Unsupported Media Type" -"xhtml" -"xml" \ No newline at end of file diff --git a/libs/cpp-httplib/test/fuzzing/standalone_fuzz_target_runner.cpp b/libs/cpp-httplib/test/fuzzing/standalone_fuzz_target_runner.cpp deleted file mode 100644 index e8bd5ed..0000000 --- a/libs/cpp-httplib/test/fuzzing/standalone_fuzz_target_runner.cpp +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2017 Google Inc. All Rights Reserved. -// Licensed under the Apache License, Version 2.0 (the "License"); - -// This runner does not do any fuzzing, but allows us to run the fuzz target -// on the test corpus or on a single file, -// e.g. the one that comes from a bug report. - -#include -#include -#include -#include - -// Forward declare the "fuzz target" interface. -// We deliberately keep this interface simple and header-free. -extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size); - -// It reads all files passed as parameters and feeds their contents -// one by one into the fuzz target (LLVMFuzzerTestOneInput). -int main(int argc, char **argv) { - for (int i = 1; i < argc; i++) { - std::ifstream in(argv[i]); - in.seekg(0, in.end); - size_t length = static_cast(in.tellg()); - in.seekg(0, in.beg); - std::cout << "Reading " << length << " bytes from " << argv[i] << std::endl; - // Allocate exactly length bytes so that we reliably catch buffer overflows. - std::vector bytes(length); - in.read(bytes.data(), static_cast(bytes.size())); - LLVMFuzzerTestOneInput(reinterpret_cast(bytes.data()), - bytes.size()); - std::cout << "Execution successful" << std::endl; - } - std::cout << "Execution finished" << std::endl; - return 0; -} diff --git a/libs/cpp-httplib/test/gen-certs.sh b/libs/cpp-httplib/test/gen-certs.sh deleted file mode 100644 index ee2a2cf..0000000 --- a/libs/cpp-httplib/test/gen-certs.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash -if [[ $(openssl version) =~ 3\.[2-9]\.[0-9]+ ]]; then - OPENSSL_X509_FLAG='-x509v1' -else - OPENSSL_X509_FLAG='-x509' -fi - -openssl genrsa 2048 > key.pem -openssl req -new -batch -config test.conf -key key.pem | openssl x509 -days 3650 -req -signkey key.pem > cert.pem -openssl req -x509 -config test.conf -key key.pem -sha256 -days 3650 -nodes -out cert2.pem -extensions SAN -openssl genrsa 2048 > rootCA.key.pem -openssl req $OPENSSL_X509_FLAG -new -batch -config test.rootCA.conf -key rootCA.key.pem -days 1024 > rootCA.cert.pem -openssl genrsa 2048 > client.key.pem -openssl req -new -batch -config test.conf -key client.key.pem | openssl x509 -days 370 -req -CA rootCA.cert.pem -CAkey rootCA.key.pem -CAcreateserial > client.cert.pem -openssl genrsa -passout pass:test123! 2048 > key_encrypted.pem -openssl req -new -batch -config test.conf -key key_encrypted.pem | openssl x509 -days 3650 -req -signkey key_encrypted.pem > cert_encrypted.pem -openssl genrsa -aes256 -passout pass:test012! 2048 > client_encrypted.key.pem -openssl req -new -batch -config test.conf -key client_encrypted.key.pem -passin pass:test012! | openssl x509 -days 370 -req -CA rootCA.cert.pem -CAkey rootCA.key.pem -CAcreateserial > client_encrypted.cert.pem diff --git a/libs/cpp-httplib/test/gtest/include/gtest/gtest-assertion-result.h b/libs/cpp-httplib/test/gtest/include/gtest/gtest-assertion-result.h deleted file mode 100644 index addbb59..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/gtest-assertion-result.h +++ /dev/null @@ -1,237 +0,0 @@ -// Copyright 2005, 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. - -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This file implements the AssertionResult type. - -// IWYU pragma: private, include "gtest/gtest.h" -// IWYU pragma: friend gtest/.* -// IWYU pragma: friend gmock/.* - -#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_ASSERTION_RESULT_H_ -#define GOOGLETEST_INCLUDE_GTEST_GTEST_ASSERTION_RESULT_H_ - -#include -#include -#include -#include - -#include "gtest/gtest-message.h" -#include "gtest/internal/gtest-port.h" - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -namespace testing { - -// A class for indicating whether an assertion was successful. When -// the assertion wasn't successful, the AssertionResult object -// remembers a non-empty message that describes how it failed. -// -// To create an instance of this class, use one of the factory functions -// (AssertionSuccess() and AssertionFailure()). -// -// This class is useful for two purposes: -// 1. Defining predicate functions to be used with Boolean test assertions -// EXPECT_TRUE/EXPECT_FALSE and their ASSERT_ counterparts -// 2. Defining predicate-format functions to be -// used with predicate assertions (ASSERT_PRED_FORMAT*, etc). -// -// For example, if you define IsEven predicate: -// -// testing::AssertionResult IsEven(int n) { -// if ((n % 2) == 0) -// return testing::AssertionSuccess(); -// else -// return testing::AssertionFailure() << n << " is odd"; -// } -// -// Then the failed expectation EXPECT_TRUE(IsEven(Fib(5))) -// will print the message -// -// Value of: IsEven(Fib(5)) -// Actual: false (5 is odd) -// Expected: true -// -// instead of a more opaque -// -// Value of: IsEven(Fib(5)) -// Actual: false -// Expected: true -// -// in case IsEven is a simple Boolean predicate. -// -// If you expect your predicate to be reused and want to support informative -// messages in EXPECT_FALSE and ASSERT_FALSE (negative assertions show up -// about half as often as positive ones in our tests), supply messages for -// both success and failure cases: -// -// testing::AssertionResult IsEven(int n) { -// if ((n % 2) == 0) -// return testing::AssertionSuccess() << n << " is even"; -// else -// return testing::AssertionFailure() << n << " is odd"; -// } -// -// Then a statement EXPECT_FALSE(IsEven(Fib(6))) will print -// -// Value of: IsEven(Fib(6)) -// Actual: true (8 is even) -// Expected: false -// -// NB: Predicates that support negative Boolean assertions have reduced -// performance in positive ones so be careful not to use them in tests -// that have lots (tens of thousands) of positive Boolean assertions. -// -// To use this class with EXPECT_PRED_FORMAT assertions such as: -// -// // Verifies that Foo() returns an even number. -// EXPECT_PRED_FORMAT1(IsEven, Foo()); -// -// you need to define: -// -// testing::AssertionResult IsEven(const char* expr, int n) { -// if ((n % 2) == 0) -// return testing::AssertionSuccess(); -// else -// return testing::AssertionFailure() -// << "Expected: " << expr << " is even\n Actual: it's " << n; -// } -// -// If Foo() returns 5, you will see the following message: -// -// Expected: Foo() is even -// Actual: it's 5 -// -class GTEST_API_ AssertionResult { - public: - // Copy constructor. - // Used in EXPECT_TRUE/FALSE(assertion_result). - AssertionResult(const AssertionResult& other); - -// C4800 is a level 3 warning in Visual Studio 2015 and earlier. -// This warning is not emitted in Visual Studio 2017. -// This warning is off by default starting in Visual Studio 2019 but can be -// enabled with command-line options. -#if defined(_MSC_VER) && (_MSC_VER < 1910 || _MSC_VER >= 1920) - GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 /* forcing value to bool */) -#endif - - // Used in the EXPECT_TRUE/FALSE(bool_expression). - // - // T must be contextually convertible to bool. - // - // The second parameter prevents this overload from being considered if - // the argument is implicitly convertible to AssertionResult. In that case - // we want AssertionResult's copy constructor to be used. - template - explicit AssertionResult( - const T& success, - typename std::enable_if< - !std::is_convertible::value>::type* - /*enabler*/ - = nullptr) - : success_(success) {} - -#if defined(_MSC_VER) && (_MSC_VER < 1910 || _MSC_VER >= 1920) - GTEST_DISABLE_MSC_WARNINGS_POP_() -#endif - - // Assignment operator. - AssertionResult& operator=(AssertionResult other) { - swap(other); - return *this; - } - - // Returns true if and only if the assertion succeeded. - operator bool() const { return success_; } // NOLINT - - // Returns the assertion's negation. Used with EXPECT/ASSERT_FALSE. - AssertionResult operator!() const; - - // Returns the text streamed into this AssertionResult. Test assertions - // use it when they fail (i.e., the predicate's outcome doesn't match the - // assertion's expectation). When nothing has been streamed into the - // object, returns an empty string. - const char* message() const { - return message_.get() != nullptr ? message_->c_str() : ""; - } - // Deprecated; please use message() instead. - const char* failure_message() const { return message(); } - - // Streams a custom failure message into this object. - template - AssertionResult& operator<<(const T& value) { - AppendMessage(Message() << value); - return *this; - } - - // Allows streaming basic output manipulators such as endl or flush into - // this object. - AssertionResult& operator<<( - ::std::ostream& (*basic_manipulator)(::std::ostream& stream)) { - AppendMessage(Message() << basic_manipulator); - return *this; - } - - private: - // Appends the contents of message to message_. - void AppendMessage(const Message& a_message) { - if (message_.get() == nullptr) message_.reset(new ::std::string); - message_->append(a_message.GetString().c_str()); - } - - // Swap the contents of this AssertionResult with other. - void swap(AssertionResult& other); - - // Stores result of the assertion predicate. - bool success_; - // Stores the message describing the condition in case the expectation - // construct is not satisfied with the predicate's outcome. - // Referenced via a pointer to avoid taking too much stack frame space - // with test assertions. - std::unique_ptr< ::std::string> message_; -}; - -// Makes a successful assertion result. -GTEST_API_ AssertionResult AssertionSuccess(); - -// Makes a failed assertion result. -GTEST_API_ AssertionResult AssertionFailure(); - -// Makes a failed assertion result with the given failure message. -// Deprecated; use AssertionFailure() << msg. -GTEST_API_ AssertionResult AssertionFailure(const Message& msg); - -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -#endif // GOOGLETEST_INCLUDE_GTEST_GTEST_ASSERTION_RESULT_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/gtest-death-test.h b/libs/cpp-httplib/test/gtest/include/gtest/gtest-death-test.h deleted file mode 100644 index 84e5a5b..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/gtest-death-test.h +++ /dev/null @@ -1,345 +0,0 @@ -// Copyright 2005, 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. - -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file defines the public API for death tests. It is -// #included by gtest.h so a user doesn't need to include this -// directly. - -// IWYU pragma: private, include "gtest/gtest.h" -// IWYU pragma: friend gtest/.* -// IWYU pragma: friend gmock/.* - -#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ -#define GOOGLETEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ - -#include "gtest/internal/gtest-death-test-internal.h" - -// This flag controls the style of death tests. Valid values are "threadsafe", -// meaning that the death test child process will re-execute the test binary -// from the start, running only a single death test, or "fast", -// meaning that the child process will execute the test logic immediately -// after forking. -GTEST_DECLARE_string_(death_test_style); - -namespace testing { - -#if GTEST_HAS_DEATH_TEST - -namespace internal { - -// Returns a Boolean value indicating whether the caller is currently -// executing in the context of the death test child process. Tools such as -// Valgrind heap checkers may need this to modify their behavior in death -// tests. IMPORTANT: This is an internal utility. Using it may break the -// implementation of death tests. User code MUST NOT use it. -GTEST_API_ bool InDeathTestChild(); - -} // namespace internal - -// The following macros are useful for writing death tests. - -// Here's what happens when an ASSERT_DEATH* or EXPECT_DEATH* is -// executed: -// -// 1. It generates a warning if there is more than one active -// thread. This is because it's safe to fork() or clone() only -// when there is a single thread. -// -// 2. The parent process clone()s a sub-process and runs the death -// test in it; the sub-process exits with code 0 at the end of the -// death test, if it hasn't exited already. -// -// 3. The parent process waits for the sub-process to terminate. -// -// 4. The parent process checks the exit code and error message of -// the sub-process. -// -// Examples: -// -// ASSERT_DEATH(server.SendMessage(56, "Hello"), "Invalid port number"); -// for (int i = 0; i < 5; i++) { -// EXPECT_DEATH(server.ProcessRequest(i), -// "Invalid request .* in ProcessRequest()") -// << "Failed to die on request " << i; -// } -// -// ASSERT_EXIT(server.ExitNow(), ::testing::ExitedWithCode(0), "Exiting"); -// -// bool KilledBySIGHUP(int exit_code) { -// return WIFSIGNALED(exit_code) && WTERMSIG(exit_code) == SIGHUP; -// } -// -// ASSERT_EXIT(client.HangUpServer(), KilledBySIGHUP, "Hanging up!"); -// -// The final parameter to each of these macros is a matcher applied to any data -// the sub-process wrote to stderr. For compatibility with existing tests, a -// bare string is interpreted as a regular expression matcher. -// -// On the regular expressions used in death tests: -// -// On POSIX-compliant systems (*nix), we use the library, -// which uses the POSIX extended regex syntax. -// -// On other platforms (e.g. Windows or Mac), we only support a simple regex -// syntax implemented as part of Google Test. This limited -// implementation should be enough most of the time when writing -// death tests; though it lacks many features you can find in PCRE -// or POSIX extended regex syntax. For example, we don't support -// union ("x|y"), grouping ("(xy)"), brackets ("[xy]"), and -// repetition count ("x{5,7}"), among others. -// -// Below is the syntax that we do support. We chose it to be a -// subset of both PCRE and POSIX extended regex, so it's easy to -// learn wherever you come from. In the following: 'A' denotes a -// literal character, period (.), or a single \\ escape sequence; -// 'x' and 'y' denote regular expressions; 'm' and 'n' are for -// natural numbers. -// -// c matches any literal character c -// \\d matches any decimal digit -// \\D matches any character that's not a decimal digit -// \\f matches \f -// \\n matches \n -// \\r matches \r -// \\s matches any ASCII whitespace, including \n -// \\S matches any character that's not a whitespace -// \\t matches \t -// \\v matches \v -// \\w matches any letter, _, or decimal digit -// \\W matches any character that \\w doesn't match -// \\c matches any literal character c, which must be a punctuation -// . matches any single character except \n -// A? matches 0 or 1 occurrences of A -// A* matches 0 or many occurrences of A -// A+ matches 1 or many occurrences of A -// ^ matches the beginning of a string (not that of each line) -// $ matches the end of a string (not that of each line) -// xy matches x followed by y -// -// If you accidentally use PCRE or POSIX extended regex features -// not implemented by us, you will get a run-time failure. In that -// case, please try to rewrite your regular expression within the -// above syntax. -// -// This implementation is *not* meant to be as highly tuned or robust -// as a compiled regex library, but should perform well enough for a -// death test, which already incurs significant overhead by launching -// a child process. -// -// Known caveats: -// -// A "threadsafe" style death test obtains the path to the test -// program from argv[0] and re-executes it in the sub-process. For -// simplicity, the current implementation doesn't search the PATH -// when launching the sub-process. This means that the user must -// invoke the test program via a path that contains at least one -// path separator (e.g. path/to/foo_test and -// /absolute/path/to/bar_test are fine, but foo_test is not). This -// is rarely a problem as people usually don't put the test binary -// directory in PATH. -// - -// Asserts that a given `statement` causes the program to exit, with an -// integer exit status that satisfies `predicate`, and emitting error output -// that matches `matcher`. -#define ASSERT_EXIT(statement, predicate, matcher) \ - GTEST_DEATH_TEST_(statement, predicate, matcher, GTEST_FATAL_FAILURE_) - -// Like `ASSERT_EXIT`, but continues on to successive tests in the -// test suite, if any: -#define EXPECT_EXIT(statement, predicate, matcher) \ - GTEST_DEATH_TEST_(statement, predicate, matcher, GTEST_NONFATAL_FAILURE_) - -// Asserts that a given `statement` causes the program to exit, either by -// explicitly exiting with a nonzero exit code or being killed by a -// signal, and emitting error output that matches `matcher`. -#define ASSERT_DEATH(statement, matcher) \ - ASSERT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, matcher) - -// Like `ASSERT_DEATH`, but continues on to successive tests in the -// test suite, if any: -#define EXPECT_DEATH(statement, matcher) \ - EXPECT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, matcher) - -// Two predicate classes that can be used in {ASSERT,EXPECT}_EXIT*: - -// Tests that an exit code describes a normal exit with a given exit code. -class GTEST_API_ ExitedWithCode { - public: - explicit ExitedWithCode(int exit_code); - ExitedWithCode(const ExitedWithCode&) = default; - void operator=(const ExitedWithCode& other) = delete; - bool operator()(int exit_status) const; - - private: - const int exit_code_; -}; - -#if !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA -// Tests that an exit code describes an exit due to termination by a -// given signal. -class GTEST_API_ KilledBySignal { - public: - explicit KilledBySignal(int signum); - bool operator()(int exit_status) const; - - private: - const int signum_; -}; -#endif // !GTEST_OS_WINDOWS - -// EXPECT_DEBUG_DEATH asserts that the given statements die in debug mode. -// The death testing framework causes this to have interesting semantics, -// since the sideeffects of the call are only visible in opt mode, and not -// in debug mode. -// -// In practice, this can be used to test functions that utilize the -// LOG(DFATAL) macro using the following style: -// -// int DieInDebugOr12(int* sideeffect) { -// if (sideeffect) { -// *sideeffect = 12; -// } -// LOG(DFATAL) << "death"; -// return 12; -// } -// -// TEST(TestSuite, TestDieOr12WorksInDgbAndOpt) { -// int sideeffect = 0; -// // Only asserts in dbg. -// EXPECT_DEBUG_DEATH(DieInDebugOr12(&sideeffect), "death"); -// -// #ifdef NDEBUG -// // opt-mode has sideeffect visible. -// EXPECT_EQ(12, sideeffect); -// #else -// // dbg-mode no visible sideeffect. -// EXPECT_EQ(0, sideeffect); -// #endif -// } -// -// This will assert that DieInDebugReturn12InOpt() crashes in debug -// mode, usually due to a DCHECK or LOG(DFATAL), but returns the -// appropriate fallback value (12 in this case) in opt mode. If you -// need to test that a function has appropriate side-effects in opt -// mode, include assertions against the side-effects. A general -// pattern for this is: -// -// EXPECT_DEBUG_DEATH({ -// // Side-effects here will have an effect after this statement in -// // opt mode, but none in debug mode. -// EXPECT_EQ(12, DieInDebugOr12(&sideeffect)); -// }, "death"); -// -#ifdef NDEBUG - -#define EXPECT_DEBUG_DEATH(statement, regex) \ - GTEST_EXECUTE_STATEMENT_(statement, regex) - -#define ASSERT_DEBUG_DEATH(statement, regex) \ - GTEST_EXECUTE_STATEMENT_(statement, regex) - -#else - -#define EXPECT_DEBUG_DEATH(statement, regex) EXPECT_DEATH(statement, regex) - -#define ASSERT_DEBUG_DEATH(statement, regex) ASSERT_DEATH(statement, regex) - -#endif // NDEBUG for EXPECT_DEBUG_DEATH -#endif // GTEST_HAS_DEATH_TEST - -// This macro is used for implementing macros such as -// EXPECT_DEATH_IF_SUPPORTED and ASSERT_DEATH_IF_SUPPORTED on systems where -// death tests are not supported. Those macros must compile on such systems -// if and only if EXPECT_DEATH and ASSERT_DEATH compile with the same parameters -// on systems that support death tests. This allows one to write such a macro on -// a system that does not support death tests and be sure that it will compile -// on a death-test supporting system. It is exposed publicly so that systems -// that have death-tests with stricter requirements than GTEST_HAS_DEATH_TEST -// can write their own equivalent of EXPECT_DEATH_IF_SUPPORTED and -// ASSERT_DEATH_IF_SUPPORTED. -// -// Parameters: -// statement - A statement that a macro such as EXPECT_DEATH would test -// for program termination. This macro has to make sure this -// statement is compiled but not executed, to ensure that -// EXPECT_DEATH_IF_SUPPORTED compiles with a certain -// parameter if and only if EXPECT_DEATH compiles with it. -// regex - A regex that a macro such as EXPECT_DEATH would use to test -// the output of statement. This parameter has to be -// compiled but not evaluated by this macro, to ensure that -// this macro only accepts expressions that a macro such as -// EXPECT_DEATH would accept. -// terminator - Must be an empty statement for EXPECT_DEATH_IF_SUPPORTED -// and a return statement for ASSERT_DEATH_IF_SUPPORTED. -// This ensures that ASSERT_DEATH_IF_SUPPORTED will not -// compile inside functions where ASSERT_DEATH doesn't -// compile. -// -// The branch that has an always false condition is used to ensure that -// statement and regex are compiled (and thus syntactically correct) but -// never executed. The unreachable code macro protects the terminator -// statement from generating an 'unreachable code' warning in case -// statement unconditionally returns or throws. The Message constructor at -// the end allows the syntax of streaming additional messages into the -// macro, for compilational compatibility with EXPECT_DEATH/ASSERT_DEATH. -#define GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, terminator) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::AlwaysTrue()) { \ - GTEST_LOG_(WARNING) << "Death tests are not supported on this platform.\n" \ - << "Statement '" #statement "' cannot be verified."; \ - } else if (::testing::internal::AlwaysFalse()) { \ - ::testing::internal::RE::PartialMatch(".*", (regex)); \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - terminator; \ - } else \ - ::testing::Message() - -// EXPECT_DEATH_IF_SUPPORTED(statement, regex) and -// ASSERT_DEATH_IF_SUPPORTED(statement, regex) expand to real death tests if -// death tests are supported; otherwise they just issue a warning. This is -// useful when you are combining death test assertions with normal test -// assertions in one test. -#if GTEST_HAS_DEATH_TEST -#define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \ - EXPECT_DEATH(statement, regex) -#define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \ - ASSERT_DEATH(statement, regex) -#else -#define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \ - GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, ) -#define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \ - GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, return) -#endif - -} // namespace testing - -#endif // GOOGLETEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/gtest-matchers.h b/libs/cpp-httplib/test/gtest/include/gtest/gtest-matchers.h deleted file mode 100644 index bffa00c..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/gtest-matchers.h +++ /dev/null @@ -1,956 +0,0 @@ -// Copyright 2007, 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. - -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This file implements just enough of the matcher interface to allow -// EXPECT_DEATH and friends to accept a matcher argument. - -// IWYU pragma: private, include "gtest/gtest.h" -// IWYU pragma: friend gtest/.* -// IWYU pragma: friend gmock/.* - -#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_MATCHERS_H_ -#define GOOGLETEST_INCLUDE_GTEST_GTEST_MATCHERS_H_ - -#include -#include -#include -#include -#include - -#include "gtest/gtest-printers.h" -#include "gtest/internal/gtest-internal.h" -#include "gtest/internal/gtest-port.h" - -// MSVC warning C5046 is new as of VS2017 version 15.8. -#if defined(_MSC_VER) && _MSC_VER >= 1915 -#define GTEST_MAYBE_5046_ 5046 -#else -#define GTEST_MAYBE_5046_ -#endif - -GTEST_DISABLE_MSC_WARNINGS_PUSH_( - 4251 GTEST_MAYBE_5046_ /* class A needs to have dll-interface to be used by - clients of class B */ - /* Symbol involving type with internal linkage not defined */) - -namespace testing { - -// To implement a matcher Foo for type T, define: -// 1. a class FooMatcherMatcher that implements the matcher interface: -// using is_gtest_matcher = void; -// bool MatchAndExplain(const T&, std::ostream*); -// (MatchResultListener* can also be used instead of std::ostream*) -// void DescribeTo(std::ostream*); -// void DescribeNegationTo(std::ostream*); -// -// 2. a factory function that creates a Matcher object from a -// FooMatcherMatcher. - -class MatchResultListener { - public: - // Creates a listener object with the given underlying ostream. The - // listener does not own the ostream, and does not dereference it - // in the constructor or destructor. - explicit MatchResultListener(::std::ostream* os) : stream_(os) {} - virtual ~MatchResultListener() = 0; // Makes this class abstract. - - // Streams x to the underlying ostream; does nothing if the ostream - // is NULL. - template - MatchResultListener& operator<<(const T& x) { - if (stream_ != nullptr) *stream_ << x; - return *this; - } - - // Returns the underlying ostream. - ::std::ostream* stream() { return stream_; } - - // Returns true if and only if the listener is interested in an explanation - // of the match result. A matcher's MatchAndExplain() method can use - // this information to avoid generating the explanation when no one - // intends to hear it. - bool IsInterested() const { return stream_ != nullptr; } - - private: - ::std::ostream* const stream_; - - MatchResultListener(const MatchResultListener&) = delete; - MatchResultListener& operator=(const MatchResultListener&) = delete; -}; - -inline MatchResultListener::~MatchResultListener() {} - -// An instance of a subclass of this knows how to describe itself as a -// matcher. -class GTEST_API_ MatcherDescriberInterface { - public: - virtual ~MatcherDescriberInterface() {} - - // Describes this matcher to an ostream. The function should print - // a verb phrase that describes the property a value matching this - // matcher should have. The subject of the verb phrase is the value - // being matched. For example, the DescribeTo() method of the Gt(7) - // matcher prints "is greater than 7". - virtual void DescribeTo(::std::ostream* os) const = 0; - - // Describes the negation of this matcher to an ostream. For - // example, if the description of this matcher is "is greater than - // 7", the negated description could be "is not greater than 7". - // You are not required to override this when implementing - // MatcherInterface, but it is highly advised so that your matcher - // can produce good error messages. - virtual void DescribeNegationTo(::std::ostream* os) const { - *os << "not ("; - DescribeTo(os); - *os << ")"; - } -}; - -// The implementation of a matcher. -template -class MatcherInterface : public MatcherDescriberInterface { - public: - // Returns true if and only if the matcher matches x; also explains the - // match result to 'listener' if necessary (see the next paragraph), in - // the form of a non-restrictive relative clause ("which ...", - // "whose ...", etc) that describes x. For example, the - // MatchAndExplain() method of the Pointee(...) matcher should - // generate an explanation like "which points to ...". - // - // Implementations of MatchAndExplain() should add an explanation of - // the match result *if and only if* they can provide additional - // information that's not already present (or not obvious) in the - // print-out of x and the matcher's description. Whether the match - // succeeds is not a factor in deciding whether an explanation is - // needed, as sometimes the caller needs to print a failure message - // when the match succeeds (e.g. when the matcher is used inside - // Not()). - // - // For example, a "has at least 10 elements" matcher should explain - // what the actual element count is, regardless of the match result, - // as it is useful information to the reader; on the other hand, an - // "is empty" matcher probably only needs to explain what the actual - // size is when the match fails, as it's redundant to say that the - // size is 0 when the value is already known to be empty. - // - // You should override this method when defining a new matcher. - // - // It's the responsibility of the caller (Google Test) to guarantee - // that 'listener' is not NULL. This helps to simplify a matcher's - // implementation when it doesn't care about the performance, as it - // can talk to 'listener' without checking its validity first. - // However, in order to implement dummy listeners efficiently, - // listener->stream() may be NULL. - virtual bool MatchAndExplain(T x, MatchResultListener* listener) const = 0; - - // Inherits these methods from MatcherDescriberInterface: - // virtual void DescribeTo(::std::ostream* os) const = 0; - // virtual void DescribeNegationTo(::std::ostream* os) const; -}; - -namespace internal { - -struct AnyEq { - template - bool operator()(const A& a, const B& b) const { - return a == b; - } -}; -struct AnyNe { - template - bool operator()(const A& a, const B& b) const { - return a != b; - } -}; -struct AnyLt { - template - bool operator()(const A& a, const B& b) const { - return a < b; - } -}; -struct AnyGt { - template - bool operator()(const A& a, const B& b) const { - return a > b; - } -}; -struct AnyLe { - template - bool operator()(const A& a, const B& b) const { - return a <= b; - } -}; -struct AnyGe { - template - bool operator()(const A& a, const B& b) const { - return a >= b; - } -}; - -// A match result listener that ignores the explanation. -class DummyMatchResultListener : public MatchResultListener { - public: - DummyMatchResultListener() : MatchResultListener(nullptr) {} - - private: - DummyMatchResultListener(const DummyMatchResultListener&) = delete; - DummyMatchResultListener& operator=(const DummyMatchResultListener&) = delete; -}; - -// A match result listener that forwards the explanation to a given -// ostream. The difference between this and MatchResultListener is -// that the former is concrete. -class StreamMatchResultListener : public MatchResultListener { - public: - explicit StreamMatchResultListener(::std::ostream* os) - : MatchResultListener(os) {} - - private: - StreamMatchResultListener(const StreamMatchResultListener&) = delete; - StreamMatchResultListener& operator=(const StreamMatchResultListener&) = - delete; -}; - -struct SharedPayloadBase { - std::atomic ref{1}; - void Ref() { ref.fetch_add(1, std::memory_order_relaxed); } - bool Unref() { return ref.fetch_sub(1, std::memory_order_acq_rel) == 1; } -}; - -template -struct SharedPayload : SharedPayloadBase { - explicit SharedPayload(const T& v) : value(v) {} - explicit SharedPayload(T&& v) : value(std::move(v)) {} - - static void Destroy(SharedPayloadBase* shared) { - delete static_cast(shared); - } - - T value; -}; - -// An internal class for implementing Matcher, which will derive -// from it. We put functionalities common to all Matcher -// specializations here to avoid code duplication. -template -class MatcherBase : private MatcherDescriberInterface { - public: - // Returns true if and only if the matcher matches x; also explains the - // match result to 'listener'. - bool MatchAndExplain(const T& x, MatchResultListener* listener) const { - GTEST_CHECK_(vtable_ != nullptr); - return vtable_->match_and_explain(*this, x, listener); - } - - // Returns true if and only if this matcher matches x. - bool Matches(const T& x) const { - DummyMatchResultListener dummy; - return MatchAndExplain(x, &dummy); - } - - // Describes this matcher to an ostream. - void DescribeTo(::std::ostream* os) const final { - GTEST_CHECK_(vtable_ != nullptr); - vtable_->describe(*this, os, false); - } - - // Describes the negation of this matcher to an ostream. - void DescribeNegationTo(::std::ostream* os) const final { - GTEST_CHECK_(vtable_ != nullptr); - vtable_->describe(*this, os, true); - } - - // Explains why x matches, or doesn't match, the matcher. - void ExplainMatchResultTo(const T& x, ::std::ostream* os) const { - StreamMatchResultListener listener(os); - MatchAndExplain(x, &listener); - } - - // Returns the describer for this matcher object; retains ownership - // of the describer, which is only guaranteed to be alive when - // this matcher object is alive. - const MatcherDescriberInterface* GetDescriber() const { - if (vtable_ == nullptr) return nullptr; - return vtable_->get_describer(*this); - } - - protected: - MatcherBase() : vtable_(nullptr), buffer_() {} - - // Constructs a matcher from its implementation. - template - explicit MatcherBase(const MatcherInterface* impl) - : vtable_(nullptr), buffer_() { - Init(impl); - } - - template ::type::is_gtest_matcher> - MatcherBase(M&& m) : vtable_(nullptr), buffer_() { // NOLINT - Init(std::forward(m)); - } - - MatcherBase(const MatcherBase& other) - : vtable_(other.vtable_), buffer_(other.buffer_) { - if (IsShared()) buffer_.shared->Ref(); - } - - MatcherBase& operator=(const MatcherBase& other) { - if (this == &other) return *this; - Destroy(); - vtable_ = other.vtable_; - buffer_ = other.buffer_; - if (IsShared()) buffer_.shared->Ref(); - return *this; - } - - MatcherBase(MatcherBase&& other) - : vtable_(other.vtable_), buffer_(other.buffer_) { - other.vtable_ = nullptr; - } - - MatcherBase& operator=(MatcherBase&& other) { - if (this == &other) return *this; - Destroy(); - vtable_ = other.vtable_; - buffer_ = other.buffer_; - other.vtable_ = nullptr; - return *this; - } - - ~MatcherBase() override { Destroy(); } - - private: - struct VTable { - bool (*match_and_explain)(const MatcherBase&, const T&, - MatchResultListener*); - void (*describe)(const MatcherBase&, std::ostream*, bool negation); - // Returns the captured object if it implements the interface, otherwise - // returns the MatcherBase itself. - const MatcherDescriberInterface* (*get_describer)(const MatcherBase&); - // Called on shared instances when the reference count reaches 0. - void (*shared_destroy)(SharedPayloadBase*); - }; - - bool IsShared() const { - return vtable_ != nullptr && vtable_->shared_destroy != nullptr; - } - - // If the implementation uses a listener, call that. - template - static auto MatchAndExplainImpl(const MatcherBase& m, const T& value, - MatchResultListener* listener) - -> decltype(P::Get(m).MatchAndExplain(value, listener->stream())) { - return P::Get(m).MatchAndExplain(value, listener->stream()); - } - - template - static auto MatchAndExplainImpl(const MatcherBase& m, const T& value, - MatchResultListener* listener) - -> decltype(P::Get(m).MatchAndExplain(value, listener)) { - return P::Get(m).MatchAndExplain(value, listener); - } - - template - static void DescribeImpl(const MatcherBase& m, std::ostream* os, - bool negation) { - if (negation) { - P::Get(m).DescribeNegationTo(os); - } else { - P::Get(m).DescribeTo(os); - } - } - - template - static const MatcherDescriberInterface* GetDescriberImpl( - const MatcherBase& m) { - // If the impl is a MatcherDescriberInterface, then return it. - // Otherwise use MatcherBase itself. - // This allows us to implement the GetDescriber() function without support - // from the impl, but some users really want to get their impl back when - // they call GetDescriber(). - // We use std::get on a tuple as a workaround of not having `if constexpr`. - return std::get<( - std::is_convertible::value - ? 1 - : 0)>(std::make_tuple(&m, &P::Get(m))); - } - - template - const VTable* GetVTable() { - static constexpr VTable kVTable = {&MatchAndExplainImpl

, - &DescribeImpl

, &GetDescriberImpl

, - P::shared_destroy}; - return &kVTable; - } - - union Buffer { - // Add some types to give Buffer some common alignment/size use cases. - void* ptr; - double d; - int64_t i; - // And add one for the out-of-line cases. - SharedPayloadBase* shared; - }; - - void Destroy() { - if (IsShared() && buffer_.shared->Unref()) { - vtable_->shared_destroy(buffer_.shared); - } - } - - template - static constexpr bool IsInlined() { - return sizeof(M) <= sizeof(Buffer) && alignof(M) <= alignof(Buffer) && - std::is_trivially_copy_constructible::value && - std::is_trivially_destructible::value; - } - - template ()> - struct ValuePolicy { - static const M& Get(const MatcherBase& m) { - // When inlined along with Init, need to be explicit to avoid violating - // strict aliasing rules. - const M* ptr = - static_cast(static_cast(&m.buffer_)); - return *ptr; - } - static void Init(MatcherBase& m, M impl) { - ::new (static_cast(&m.buffer_)) M(impl); - } - static constexpr auto shared_destroy = nullptr; - }; - - template - struct ValuePolicy { - using Shared = SharedPayload; - static const M& Get(const MatcherBase& m) { - return static_cast(m.buffer_.shared)->value; - } - template - static void Init(MatcherBase& m, Arg&& arg) { - m.buffer_.shared = new Shared(std::forward(arg)); - } - static constexpr auto shared_destroy = &Shared::Destroy; - }; - - template - struct ValuePolicy*, B> { - using M = const MatcherInterface; - using Shared = SharedPayload>; - static const M& Get(const MatcherBase& m) { - return *static_cast(m.buffer_.shared)->value; - } - static void Init(MatcherBase& m, M* impl) { - m.buffer_.shared = new Shared(std::unique_ptr(impl)); - } - - static constexpr auto shared_destroy = &Shared::Destroy; - }; - - template - void Init(M&& m) { - using MM = typename std::decay::type; - using Policy = ValuePolicy; - vtable_ = GetVTable(); - Policy::Init(*this, std::forward(m)); - } - - const VTable* vtable_; - Buffer buffer_; -}; - -} // namespace internal - -// A Matcher is a copyable and IMMUTABLE (except by assignment) -// object that can check whether a value of type T matches. The -// implementation of Matcher is just a std::shared_ptr to const -// MatcherInterface. Don't inherit from Matcher! -template -class Matcher : public internal::MatcherBase { - public: - // Constructs a null matcher. Needed for storing Matcher objects in STL - // containers. A default-constructed matcher is not yet initialized. You - // cannot use it until a valid value has been assigned to it. - explicit Matcher() {} // NOLINT - - // Constructs a matcher from its implementation. - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - - template - explicit Matcher( - const MatcherInterface* impl, - typename std::enable_if::value>::type* = - nullptr) - : internal::MatcherBase(impl) {} - - template ::type::is_gtest_matcher> - Matcher(M&& m) : internal::MatcherBase(std::forward(m)) {} // NOLINT - - // Implicit constructor here allows people to write - // EXPECT_CALL(foo, Bar(5)) instead of EXPECT_CALL(foo, Bar(Eq(5))) sometimes - Matcher(T value); // NOLINT -}; - -// The following two specializations allow the user to write str -// instead of Eq(str) and "foo" instead of Eq("foo") when a std::string -// matcher is expected. -template <> -class GTEST_API_ Matcher - : public internal::MatcherBase { - public: - Matcher() {} - - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - - template ::type::is_gtest_matcher> - Matcher(M&& m) // NOLINT - : internal::MatcherBase(std::forward(m)) {} - - // Allows the user to write str instead of Eq(str) sometimes, where - // str is a std::string object. - Matcher(const std::string& s); // NOLINT - - // Allows the user to write "foo" instead of Eq("foo") sometimes. - Matcher(const char* s); // NOLINT -}; - -template <> -class GTEST_API_ Matcher - : public internal::MatcherBase { - public: - Matcher() {} - - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - - template ::type::is_gtest_matcher> - Matcher(M&& m) // NOLINT - : internal::MatcherBase(std::forward(m)) {} - - // Allows the user to write str instead of Eq(str) sometimes, where - // str is a string object. - Matcher(const std::string& s); // NOLINT - - // Allows the user to write "foo" instead of Eq("foo") sometimes. - Matcher(const char* s); // NOLINT -}; - -#if GTEST_INTERNAL_HAS_STRING_VIEW -// The following two specializations allow the user to write str -// instead of Eq(str) and "foo" instead of Eq("foo") when a absl::string_view -// matcher is expected. -template <> -class GTEST_API_ Matcher - : public internal::MatcherBase { - public: - Matcher() {} - - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - - template ::type::is_gtest_matcher> - Matcher(M&& m) // NOLINT - : internal::MatcherBase(std::forward(m)) { - } - - // Allows the user to write str instead of Eq(str) sometimes, where - // str is a std::string object. - Matcher(const std::string& s); // NOLINT - - // Allows the user to write "foo" instead of Eq("foo") sometimes. - Matcher(const char* s); // NOLINT - - // Allows the user to pass absl::string_views or std::string_views directly. - Matcher(internal::StringView s); // NOLINT -}; - -template <> -class GTEST_API_ Matcher - : public internal::MatcherBase { - public: - Matcher() {} - - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - - template ::type::is_gtest_matcher> - Matcher(M&& m) // NOLINT - : internal::MatcherBase(std::forward(m)) {} - - // Allows the user to write str instead of Eq(str) sometimes, where - // str is a std::string object. - Matcher(const std::string& s); // NOLINT - - // Allows the user to write "foo" instead of Eq("foo") sometimes. - Matcher(const char* s); // NOLINT - - // Allows the user to pass absl::string_views or std::string_views directly. - Matcher(internal::StringView s); // NOLINT -}; -#endif // GTEST_INTERNAL_HAS_STRING_VIEW - -// Prints a matcher in a human-readable format. -template -std::ostream& operator<<(std::ostream& os, const Matcher& matcher) { - matcher.DescribeTo(&os); - return os; -} - -// The PolymorphicMatcher class template makes it easy to implement a -// polymorphic matcher (i.e. a matcher that can match values of more -// than one type, e.g. Eq(n) and NotNull()). -// -// To define a polymorphic matcher, a user should provide an Impl -// class that has a DescribeTo() method and a DescribeNegationTo() -// method, and define a member function (or member function template) -// -// bool MatchAndExplain(const Value& value, -// MatchResultListener* listener) const; -// -// See the definition of NotNull() for a complete example. -template -class PolymorphicMatcher { - public: - explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {} - - // Returns a mutable reference to the underlying matcher - // implementation object. - Impl& mutable_impl() { return impl_; } - - // Returns an immutable reference to the underlying matcher - // implementation object. - const Impl& impl() const { return impl_; } - - template - operator Matcher() const { - return Matcher(new MonomorphicImpl(impl_)); - } - - private: - template - class MonomorphicImpl : public MatcherInterface { - public: - explicit MonomorphicImpl(const Impl& impl) : impl_(impl) {} - - void DescribeTo(::std::ostream* os) const override { impl_.DescribeTo(os); } - - void DescribeNegationTo(::std::ostream* os) const override { - impl_.DescribeNegationTo(os); - } - - bool MatchAndExplain(T x, MatchResultListener* listener) const override { - return impl_.MatchAndExplain(x, listener); - } - - private: - const Impl impl_; - }; - - Impl impl_; -}; - -// Creates a matcher from its implementation. -// DEPRECATED: Especially in the generic code, prefer: -// Matcher(new MyMatcherImpl(...)); -// -// MakeMatcher may create a Matcher that accepts its argument by value, which -// leads to unnecessary copies & lack of support for non-copyable types. -template -inline Matcher MakeMatcher(const MatcherInterface* impl) { - return Matcher(impl); -} - -// Creates a polymorphic matcher from its implementation. This is -// easier to use than the PolymorphicMatcher constructor as it -// doesn't require you to explicitly write the template argument, e.g. -// -// MakePolymorphicMatcher(foo); -// vs -// PolymorphicMatcher(foo); -template -inline PolymorphicMatcher MakePolymorphicMatcher(const Impl& impl) { - return PolymorphicMatcher(impl); -} - -namespace internal { -// Implements a matcher that compares a given value with a -// pre-supplied value using one of the ==, <=, <, etc, operators. The -// two values being compared don't have to have the same type. -// -// The matcher defined here is polymorphic (for example, Eq(5) can be -// used to match an int, a short, a double, etc). Therefore we use -// a template type conversion operator in the implementation. -// -// The following template definition assumes that the Rhs parameter is -// a "bare" type (i.e. neither 'const T' nor 'T&'). -template -class ComparisonBase { - public: - explicit ComparisonBase(const Rhs& rhs) : rhs_(rhs) {} - - using is_gtest_matcher = void; - - template - bool MatchAndExplain(const Lhs& lhs, std::ostream*) const { - return Op()(lhs, Unwrap(rhs_)); - } - void DescribeTo(std::ostream* os) const { - *os << D::Desc() << " "; - UniversalPrint(Unwrap(rhs_), os); - } - void DescribeNegationTo(std::ostream* os) const { - *os << D::NegatedDesc() << " "; - UniversalPrint(Unwrap(rhs_), os); - } - - private: - template - static const T& Unwrap(const T& v) { - return v; - } - template - static const T& Unwrap(std::reference_wrapper v) { - return v; - } - - Rhs rhs_; -}; - -template -class EqMatcher : public ComparisonBase, Rhs, AnyEq> { - public: - explicit EqMatcher(const Rhs& rhs) - : ComparisonBase, Rhs, AnyEq>(rhs) {} - static const char* Desc() { return "is equal to"; } - static const char* NegatedDesc() { return "isn't equal to"; } -}; -template -class NeMatcher : public ComparisonBase, Rhs, AnyNe> { - public: - explicit NeMatcher(const Rhs& rhs) - : ComparisonBase, Rhs, AnyNe>(rhs) {} - static const char* Desc() { return "isn't equal to"; } - static const char* NegatedDesc() { return "is equal to"; } -}; -template -class LtMatcher : public ComparisonBase, Rhs, AnyLt> { - public: - explicit LtMatcher(const Rhs& rhs) - : ComparisonBase, Rhs, AnyLt>(rhs) {} - static const char* Desc() { return "is <"; } - static const char* NegatedDesc() { return "isn't <"; } -}; -template -class GtMatcher : public ComparisonBase, Rhs, AnyGt> { - public: - explicit GtMatcher(const Rhs& rhs) - : ComparisonBase, Rhs, AnyGt>(rhs) {} - static const char* Desc() { return "is >"; } - static const char* NegatedDesc() { return "isn't >"; } -}; -template -class LeMatcher : public ComparisonBase, Rhs, AnyLe> { - public: - explicit LeMatcher(const Rhs& rhs) - : ComparisonBase, Rhs, AnyLe>(rhs) {} - static const char* Desc() { return "is <="; } - static const char* NegatedDesc() { return "isn't <="; } -}; -template -class GeMatcher : public ComparisonBase, Rhs, AnyGe> { - public: - explicit GeMatcher(const Rhs& rhs) - : ComparisonBase, Rhs, AnyGe>(rhs) {} - static const char* Desc() { return "is >="; } - static const char* NegatedDesc() { return "isn't >="; } -}; - -template ::value>::type> -using StringLike = T; - -// Implements polymorphic matchers MatchesRegex(regex) and -// ContainsRegex(regex), which can be used as a Matcher as long as -// T can be converted to a string. -class MatchesRegexMatcher { - public: - MatchesRegexMatcher(const RE* regex, bool full_match) - : regex_(regex), full_match_(full_match) {} - -#if GTEST_INTERNAL_HAS_STRING_VIEW - bool MatchAndExplain(const internal::StringView& s, - MatchResultListener* listener) const { - return MatchAndExplain(std::string(s), listener); - } -#endif // GTEST_INTERNAL_HAS_STRING_VIEW - - // Accepts pointer types, particularly: - // const char* - // char* - // const wchar_t* - // wchar_t* - template - bool MatchAndExplain(CharType* s, MatchResultListener* listener) const { - return s != nullptr && MatchAndExplain(std::string(s), listener); - } - - // Matches anything that can convert to std::string. - // - // This is a template, not just a plain function with const std::string&, - // because absl::string_view has some interfering non-explicit constructors. - template - bool MatchAndExplain(const MatcheeStringType& s, - MatchResultListener* /* listener */) const { - const std::string& s2(s); - return full_match_ ? RE::FullMatch(s2, *regex_) - : RE::PartialMatch(s2, *regex_); - } - - void DescribeTo(::std::ostream* os) const { - *os << (full_match_ ? "matches" : "contains") << " regular expression "; - UniversalPrinter::Print(regex_->pattern(), os); - } - - void DescribeNegationTo(::std::ostream* os) const { - *os << "doesn't " << (full_match_ ? "match" : "contain") - << " regular expression "; - UniversalPrinter::Print(regex_->pattern(), os); - } - - private: - const std::shared_ptr regex_; - const bool full_match_; -}; -} // namespace internal - -// Matches a string that fully matches regular expression 'regex'. -// The matcher takes ownership of 'regex'. -inline PolymorphicMatcher MatchesRegex( - const internal::RE* regex) { - return MakePolymorphicMatcher(internal::MatchesRegexMatcher(regex, true)); -} -template -PolymorphicMatcher MatchesRegex( - const internal::StringLike& regex) { - return MatchesRegex(new internal::RE(std::string(regex))); -} - -// Matches a string that contains regular expression 'regex'. -// The matcher takes ownership of 'regex'. -inline PolymorphicMatcher ContainsRegex( - const internal::RE* regex) { - return MakePolymorphicMatcher(internal::MatchesRegexMatcher(regex, false)); -} -template -PolymorphicMatcher ContainsRegex( - const internal::StringLike& regex) { - return ContainsRegex(new internal::RE(std::string(regex))); -} - -// Creates a polymorphic matcher that matches anything equal to x. -// Note: if the parameter of Eq() were declared as const T&, Eq("foo") -// wouldn't compile. -template -inline internal::EqMatcher Eq(T x) { - return internal::EqMatcher(x); -} - -// Constructs a Matcher from a 'value' of type T. The constructed -// matcher matches any value that's equal to 'value'. -template -Matcher::Matcher(T value) { - *this = Eq(value); -} - -// Creates a monomorphic matcher that matches anything with type Lhs -// and equal to rhs. A user may need to use this instead of Eq(...) -// in order to resolve an overloading ambiguity. -// -// TypedEq(x) is just a convenient short-hand for Matcher(Eq(x)) -// or Matcher(x), but more readable than the latter. -// -// We could define similar monomorphic matchers for other comparison -// operations (e.g. TypedLt, TypedGe, and etc), but decided not to do -// it yet as those are used much less than Eq() in practice. A user -// can always write Matcher(Lt(5)) to be explicit about the type, -// for example. -template -inline Matcher TypedEq(const Rhs& rhs) { - return Eq(rhs); -} - -// Creates a polymorphic matcher that matches anything >= x. -template -inline internal::GeMatcher Ge(Rhs x) { - return internal::GeMatcher(x); -} - -// Creates a polymorphic matcher that matches anything > x. -template -inline internal::GtMatcher Gt(Rhs x) { - return internal::GtMatcher(x); -} - -// Creates a polymorphic matcher that matches anything <= x. -template -inline internal::LeMatcher Le(Rhs x) { - return internal::LeMatcher(x); -} - -// Creates a polymorphic matcher that matches anything < x. -template -inline internal::LtMatcher Lt(Rhs x) { - return internal::LtMatcher(x); -} - -// Creates a polymorphic matcher that matches anything != x. -template -inline internal::NeMatcher Ne(Rhs x) { - return internal::NeMatcher(x); -} -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 5046 - -#endif // GOOGLETEST_INCLUDE_GTEST_GTEST_MATCHERS_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/gtest-message.h b/libs/cpp-httplib/test/gtest/include/gtest/gtest-message.h deleted file mode 100644 index 6c8bf90..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/gtest-message.h +++ /dev/null @@ -1,218 +0,0 @@ -// Copyright 2005, 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. - -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file defines the Message class. -// -// IMPORTANT NOTE: Due to limitation of the C++ language, we have to -// leave some internal implementation details in this header file. -// They are clearly marked by comments like this: -// -// // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -// -// Such code is NOT meant to be used by a user directly, and is subject -// to CHANGE WITHOUT NOTICE. Therefore DO NOT DEPEND ON IT in a user -// program! - -// IWYU pragma: private, include "gtest/gtest.h" -// IWYU pragma: friend gtest/.* -// IWYU pragma: friend gmock/.* - -#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ -#define GOOGLETEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ - -#include -#include -#include - -#include "gtest/internal/gtest-port.h" - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -// Ensures that there is at least one operator<< in the global namespace. -// See Message& operator<<(...) below for why. -void operator<<(const testing::internal::Secret&, int); - -namespace testing { - -// The Message class works like an ostream repeater. -// -// Typical usage: -// -// 1. You stream a bunch of values to a Message object. -// It will remember the text in a stringstream. -// 2. Then you stream the Message object to an ostream. -// This causes the text in the Message to be streamed -// to the ostream. -// -// For example; -// -// testing::Message foo; -// foo << 1 << " != " << 2; -// std::cout << foo; -// -// will print "1 != 2". -// -// Message is not intended to be inherited from. In particular, its -// destructor is not virtual. -// -// Note that stringstream behaves differently in gcc and in MSVC. You -// can stream a NULL char pointer to it in the former, but not in the -// latter (it causes an access violation if you do). The Message -// class hides this difference by treating a NULL char pointer as -// "(null)". -class GTEST_API_ Message { - private: - // The type of basic IO manipulators (endl, ends, and flush) for - // narrow streams. - typedef std::ostream& (*BasicNarrowIoManip)(std::ostream&); - - public: - // Constructs an empty Message. - Message(); - - // Copy constructor. - Message(const Message& msg) : ss_(new ::std::stringstream) { // NOLINT - *ss_ << msg.GetString(); - } - - // Constructs a Message from a C-string. - explicit Message(const char* str) : ss_(new ::std::stringstream) { - *ss_ << str; - } - - // Streams a non-pointer value to this object. - template - inline Message& operator<<(const T& val) { - // Some libraries overload << for STL containers. These - // overloads are defined in the global namespace instead of ::std. - // - // C++'s symbol lookup rule (i.e. Koenig lookup) says that these - // overloads are visible in either the std namespace or the global - // namespace, but not other namespaces, including the testing - // namespace which Google Test's Message class is in. - // - // To allow STL containers (and other types that has a << operator - // defined in the global namespace) to be used in Google Test - // assertions, testing::Message must access the custom << operator - // from the global namespace. With this using declaration, - // overloads of << defined in the global namespace and those - // visible via Koenig lookup are both exposed in this function. - using ::operator<<; - *ss_ << val; - return *this; - } - - // Streams a pointer value to this object. - // - // This function is an overload of the previous one. When you - // stream a pointer to a Message, this definition will be used as it - // is more specialized. (The C++ Standard, section - // [temp.func.order].) If you stream a non-pointer, then the - // previous definition will be used. - // - // The reason for this overload is that streaming a NULL pointer to - // ostream is undefined behavior. Depending on the compiler, you - // may get "0", "(nil)", "(null)", or an access violation. To - // ensure consistent result across compilers, we always treat NULL - // as "(null)". - template - inline Message& operator<<(T* const& pointer) { // NOLINT - if (pointer == nullptr) { - *ss_ << "(null)"; - } else { - *ss_ << pointer; - } - return *this; - } - - // Since the basic IO manipulators are overloaded for both narrow - // and wide streams, we have to provide this specialized definition - // of operator <<, even though its body is the same as the - // templatized version above. Without this definition, streaming - // endl or other basic IO manipulators to Message will confuse the - // compiler. - Message& operator<<(BasicNarrowIoManip val) { - *ss_ << val; - return *this; - } - - // Instead of 1/0, we want to see true/false for bool values. - Message& operator<<(bool b) { return *this << (b ? "true" : "false"); } - - // These two overloads allow streaming a wide C string to a Message - // using the UTF-8 encoding. - Message& operator<<(const wchar_t* wide_c_str); - Message& operator<<(wchar_t* wide_c_str); - -#if GTEST_HAS_STD_WSTRING - // Converts the given wide string to a narrow string using the UTF-8 - // encoding, and streams the result to this Message object. - Message& operator<<(const ::std::wstring& wstr); -#endif // GTEST_HAS_STD_WSTRING - - // Gets the text streamed to this object so far as an std::string. - // Each '\0' character in the buffer is replaced with "\\0". - // - // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - std::string GetString() const; - - private: - // We'll hold the text streamed to this object here. - const std::unique_ptr< ::std::stringstream> ss_; - - // We declare (but don't implement) this to prevent the compiler - // from implementing the assignment operator. - void operator=(const Message&); -}; - -// Streams a Message to an ostream. -inline std::ostream& operator<<(std::ostream& os, const Message& sb) { - return os << sb.GetString(); -} - -namespace internal { - -// Converts a streamable value to an std::string. A NULL pointer is -// converted to "(null)". When the input value is a ::string, -// ::std::string, ::wstring, or ::std::wstring object, each NUL -// character in it is replaced with "\\0". -template -std::string StreamableToString(const T& streamable) { - return (Message() << streamable).GetString(); -} - -} // namespace internal -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -#endif // GOOGLETEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/gtest-param-test.h b/libs/cpp-httplib/test/gtest/include/gtest/gtest-param-test.h deleted file mode 100644 index b55119a..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/gtest-param-test.h +++ /dev/null @@ -1,510 +0,0 @@ -// 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. - -// Macros and functions for implementing parameterized tests -// in Google C++ Testing and Mocking Framework (Google Test) - -// IWYU pragma: private, include "gtest/gtest.h" -// IWYU pragma: friend gtest/.* -// IWYU pragma: friend gmock/.* - -#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ -#define GOOGLETEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ - -// Value-parameterized tests allow you to test your code with different -// parameters without writing multiple copies of the same test. -// -// Here is how you use value-parameterized tests: - -#if 0 - -// To write value-parameterized tests, first you should define a fixture -// class. It is usually derived from testing::TestWithParam (see below for -// another inheritance scheme that's sometimes useful in more complicated -// class hierarchies), where the type of your parameter values. -// TestWithParam is itself derived from testing::Test. T can be any -// copyable type. If it's a raw pointer, you are responsible for managing the -// lifespan of the pointed values. - -class FooTest : public ::testing::TestWithParam { - // You can implement all the usual class fixture members here. -}; - -// Then, use the TEST_P macro to define as many parameterized tests -// for this fixture as you want. The _P suffix is for "parameterized" -// or "pattern", whichever you prefer to think. - -TEST_P(FooTest, DoesBlah) { - // Inside a test, access the test parameter with the GetParam() method - // of the TestWithParam class: - EXPECT_TRUE(foo.Blah(GetParam())); - ... -} - -TEST_P(FooTest, HasBlahBlah) { - ... -} - -// Finally, you can use INSTANTIATE_TEST_SUITE_P to instantiate the test -// case with any set of parameters you want. Google Test defines a number -// of functions for generating test parameters. They return what we call -// (surprise!) parameter generators. Here is a summary of them, which -// are all in the testing namespace: -// -// -// Range(begin, end [, step]) - Yields values {begin, begin+step, -// begin+step+step, ...}. The values do not -// include end. step defaults to 1. -// Values(v1, v2, ..., vN) - Yields values {v1, v2, ..., vN}. -// ValuesIn(container) - Yields values from a C-style array, an STL -// ValuesIn(begin,end) container, or an iterator range [begin, end). -// Bool() - Yields sequence {false, true}. -// Combine(g1, g2, ..., gN) - Yields all combinations (the Cartesian product -// for the math savvy) of the values generated -// by the N generators. -// -// For more details, see comments at the definitions of these functions below -// in this file. -// -// The following statement will instantiate tests from the FooTest test suite -// each with parameter values "meeny", "miny", and "moe". - -INSTANTIATE_TEST_SUITE_P(InstantiationName, - FooTest, - Values("meeny", "miny", "moe")); - -// To distinguish different instances of the pattern, (yes, you -// can instantiate it more than once) the first argument to the -// INSTANTIATE_TEST_SUITE_P macro is a prefix that will be added to the -// actual test suite name. Remember to pick unique prefixes for different -// instantiations. The tests from the instantiation above will have -// these names: -// -// * InstantiationName/FooTest.DoesBlah/0 for "meeny" -// * InstantiationName/FooTest.DoesBlah/1 for "miny" -// * InstantiationName/FooTest.DoesBlah/2 for "moe" -// * InstantiationName/FooTest.HasBlahBlah/0 for "meeny" -// * InstantiationName/FooTest.HasBlahBlah/1 for "miny" -// * InstantiationName/FooTest.HasBlahBlah/2 for "moe" -// -// You can use these names in --gtest_filter. -// -// This statement will instantiate all tests from FooTest again, each -// with parameter values "cat" and "dog": - -const char* pets[] = {"cat", "dog"}; -INSTANTIATE_TEST_SUITE_P(AnotherInstantiationName, FooTest, ValuesIn(pets)); - -// The tests from the instantiation above will have these names: -// -// * AnotherInstantiationName/FooTest.DoesBlah/0 for "cat" -// * AnotherInstantiationName/FooTest.DoesBlah/1 for "dog" -// * AnotherInstantiationName/FooTest.HasBlahBlah/0 for "cat" -// * AnotherInstantiationName/FooTest.HasBlahBlah/1 for "dog" -// -// Please note that INSTANTIATE_TEST_SUITE_P will instantiate all tests -// in the given test suite, whether their definitions come before or -// AFTER the INSTANTIATE_TEST_SUITE_P statement. -// -// Please also note that generator expressions (including parameters to the -// generators) are evaluated in InitGoogleTest(), after main() has started. -// This allows the user on one hand, to adjust generator parameters in order -// to dynamically determine a set of tests to run and on the other hand, -// give the user a chance to inspect the generated tests with Google Test -// reflection API before RUN_ALL_TESTS() is executed. -// -// You can see samples/sample7_unittest.cc and samples/sample8_unittest.cc -// for more examples. -// -// In the future, we plan to publish the API for defining new parameter -// generators. But for now this interface remains part of the internal -// implementation and is subject to change. -// -// -// A parameterized test fixture must be derived from testing::Test and from -// testing::WithParamInterface, where T is the type of the parameter -// values. Inheriting from TestWithParam satisfies that requirement because -// TestWithParam inherits from both Test and WithParamInterface. In more -// complicated hierarchies, however, it is occasionally useful to inherit -// separately from Test and WithParamInterface. For example: - -class BaseTest : public ::testing::Test { - // You can inherit all the usual members for a non-parameterized test - // fixture here. -}; - -class DerivedTest : public BaseTest, public ::testing::WithParamInterface { - // The usual test fixture members go here too. -}; - -TEST_F(BaseTest, HasFoo) { - // This is an ordinary non-parameterized test. -} - -TEST_P(DerivedTest, DoesBlah) { - // GetParam works just the same here as if you inherit from TestWithParam. - EXPECT_TRUE(foo.Blah(GetParam())); -} - -#endif // 0 - -#include -#include - -#include "gtest/internal/gtest-internal.h" -#include "gtest/internal/gtest-param-util.h" -#include "gtest/internal/gtest-port.h" - -namespace testing { - -// Functions producing parameter generators. -// -// Google Test uses these generators to produce parameters for value- -// parameterized tests. When a parameterized test suite is instantiated -// with a particular generator, Google Test creates and runs tests -// for each element in the sequence produced by the generator. -// -// In the following sample, tests from test suite FooTest are instantiated -// each three times with parameter values 3, 5, and 8: -// -// class FooTest : public TestWithParam { ... }; -// -// TEST_P(FooTest, TestThis) { -// } -// TEST_P(FooTest, TestThat) { -// } -// INSTANTIATE_TEST_SUITE_P(TestSequence, FooTest, Values(3, 5, 8)); -// - -// Range() returns generators providing sequences of values in a range. -// -// Synopsis: -// Range(start, end) -// - returns a generator producing a sequence of values {start, start+1, -// start+2, ..., }. -// Range(start, end, step) -// - returns a generator producing a sequence of values {start, start+step, -// start+step+step, ..., }. -// Notes: -// * The generated sequences never include end. For example, Range(1, 5) -// returns a generator producing a sequence {1, 2, 3, 4}. Range(1, 9, 2) -// returns a generator producing {1, 3, 5, 7}. -// * start and end must have the same type. That type may be any integral or -// floating-point type or a user defined type satisfying these conditions: -// * It must be assignable (have operator=() defined). -// * It must have operator+() (operator+(int-compatible type) for -// two-operand version). -// * It must have operator<() defined. -// Elements in the resulting sequences will also have that type. -// * Condition start < end must be satisfied in order for resulting sequences -// to contain any elements. -// -template -internal::ParamGenerator Range(T start, T end, IncrementT step) { - return internal::ParamGenerator( - new internal::RangeGenerator(start, end, step)); -} - -template -internal::ParamGenerator Range(T start, T end) { - return Range(start, end, 1); -} - -// ValuesIn() function allows generation of tests with parameters coming from -// a container. -// -// Synopsis: -// ValuesIn(const T (&array)[N]) -// - returns a generator producing sequences with elements from -// a C-style array. -// ValuesIn(const Container& container) -// - returns a generator producing sequences with elements from -// an STL-style container. -// ValuesIn(Iterator begin, Iterator end) -// - returns a generator producing sequences with elements from -// a range [begin, end) defined by a pair of STL-style iterators. These -// iterators can also be plain C pointers. -// -// Please note that ValuesIn copies the values from the containers -// passed in and keeps them to generate tests in RUN_ALL_TESTS(). -// -// Examples: -// -// This instantiates tests from test suite StringTest -// each with C-string values of "foo", "bar", and "baz": -// -// const char* strings[] = {"foo", "bar", "baz"}; -// INSTANTIATE_TEST_SUITE_P(StringSequence, StringTest, ValuesIn(strings)); -// -// This instantiates tests from test suite StlStringTest -// each with STL strings with values "a" and "b": -// -// ::std::vector< ::std::string> GetParameterStrings() { -// ::std::vector< ::std::string> v; -// v.push_back("a"); -// v.push_back("b"); -// return v; -// } -// -// INSTANTIATE_TEST_SUITE_P(CharSequence, -// StlStringTest, -// ValuesIn(GetParameterStrings())); -// -// -// This will also instantiate tests from CharTest -// each with parameter values 'a' and 'b': -// -// ::std::list GetParameterChars() { -// ::std::list list; -// list.push_back('a'); -// list.push_back('b'); -// return list; -// } -// ::std::list l = GetParameterChars(); -// INSTANTIATE_TEST_SUITE_P(CharSequence2, -// CharTest, -// ValuesIn(l.begin(), l.end())); -// -template -internal::ParamGenerator< - typename std::iterator_traits::value_type> -ValuesIn(ForwardIterator begin, ForwardIterator end) { - typedef typename std::iterator_traits::value_type ParamType; - return internal::ParamGenerator( - new internal::ValuesInIteratorRangeGenerator(begin, end)); -} - -template -internal::ParamGenerator ValuesIn(const T (&array)[N]) { - return ValuesIn(array, array + N); -} - -template -internal::ParamGenerator ValuesIn( - const Container& container) { - return ValuesIn(container.begin(), container.end()); -} - -// Values() allows generating tests from explicitly specified list of -// parameters. -// -// Synopsis: -// Values(T v1, T v2, ..., T vN) -// - returns a generator producing sequences with elements v1, v2, ..., vN. -// -// For example, this instantiates tests from test suite BarTest each -// with values "one", "two", and "three": -// -// INSTANTIATE_TEST_SUITE_P(NumSequence, -// BarTest, -// Values("one", "two", "three")); -// -// This instantiates tests from test suite BazTest each with values 1, 2, 3.5. -// The exact type of values will depend on the type of parameter in BazTest. -// -// INSTANTIATE_TEST_SUITE_P(FloatingNumbers, BazTest, Values(1, 2, 3.5)); -// -// -template -internal::ValueArray Values(T... v) { - return internal::ValueArray(std::move(v)...); -} - -// Bool() allows generating tests with parameters in a set of (false, true). -// -// Synopsis: -// Bool() -// - returns a generator producing sequences with elements {false, true}. -// -// It is useful when testing code that depends on Boolean flags. Combinations -// of multiple flags can be tested when several Bool()'s are combined using -// Combine() function. -// -// In the following example all tests in the test suite FlagDependentTest -// will be instantiated twice with parameters false and true. -// -// class FlagDependentTest : public testing::TestWithParam { -// virtual void SetUp() { -// external_flag = GetParam(); -// } -// } -// INSTANTIATE_TEST_SUITE_P(BoolSequence, FlagDependentTest, Bool()); -// -inline internal::ParamGenerator Bool() { return Values(false, true); } - -// Combine() allows the user to combine two or more sequences to produce -// values of a Cartesian product of those sequences' elements. -// -// Synopsis: -// Combine(gen1, gen2, ..., genN) -// - returns a generator producing sequences with elements coming from -// the Cartesian product of elements from the sequences generated by -// gen1, gen2, ..., genN. The sequence elements will have a type of -// std::tuple where T1, T2, ..., TN are the types -// of elements from sequences produces by gen1, gen2, ..., genN. -// -// Example: -// -// This will instantiate tests in test suite AnimalTest each one with -// the parameter values tuple("cat", BLACK), tuple("cat", WHITE), -// tuple("dog", BLACK), and tuple("dog", WHITE): -// -// enum Color { BLACK, GRAY, WHITE }; -// class AnimalTest -// : public testing::TestWithParam > {...}; -// -// TEST_P(AnimalTest, AnimalLooksNice) {...} -// -// INSTANTIATE_TEST_SUITE_P(AnimalVariations, AnimalTest, -// Combine(Values("cat", "dog"), -// Values(BLACK, WHITE))); -// -// This will instantiate tests in FlagDependentTest with all variations of two -// Boolean flags: -// -// class FlagDependentTest -// : public testing::TestWithParam > { -// virtual void SetUp() { -// // Assigns external_flag_1 and external_flag_2 values from the tuple. -// std::tie(external_flag_1, external_flag_2) = GetParam(); -// } -// }; -// -// TEST_P(FlagDependentTest, TestFeature1) { -// // Test your code using external_flag_1 and external_flag_2 here. -// } -// INSTANTIATE_TEST_SUITE_P(TwoBoolSequence, FlagDependentTest, -// Combine(Bool(), Bool())); -// -template -internal::CartesianProductHolder Combine(const Generator&... g) { - return internal::CartesianProductHolder(g...); -} - -#define TEST_P(test_suite_name, test_name) \ - class GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) \ - : public test_suite_name { \ - public: \ - GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() {} \ - void TestBody() override; \ - \ - private: \ - static int AddToRegistry() { \ - ::testing::UnitTest::GetInstance() \ - ->parameterized_test_registry() \ - .GetTestSuitePatternHolder( \ - GTEST_STRINGIFY_(test_suite_name), \ - ::testing::internal::CodeLocation(__FILE__, __LINE__)) \ - ->AddTestPattern( \ - GTEST_STRINGIFY_(test_suite_name), GTEST_STRINGIFY_(test_name), \ - new ::testing::internal::TestMetaFactory(), \ - ::testing::internal::CodeLocation(__FILE__, __LINE__)); \ - return 0; \ - } \ - static int gtest_registering_dummy_ GTEST_ATTRIBUTE_UNUSED_; \ - GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) \ - (const GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) &) = delete; \ - GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) & operator=( \ - const GTEST_TEST_CLASS_NAME_(test_suite_name, \ - test_name) &) = delete; /* NOLINT */ \ - }; \ - int GTEST_TEST_CLASS_NAME_(test_suite_name, \ - test_name)::gtest_registering_dummy_ = \ - GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)::AddToRegistry(); \ - void GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)::TestBody() - -// The last argument to INSTANTIATE_TEST_SUITE_P allows the user to specify -// generator and an optional function or functor that generates custom test name -// suffixes based on the test parameters. Such a function or functor should -// accept one argument of type testing::TestParamInfo, and -// return std::string. -// -// testing::PrintToStringParamName is a builtin test suffix generator that -// returns the value of testing::PrintToString(GetParam()). -// -// Note: test names must be non-empty, unique, and may only contain ASCII -// alphanumeric characters or underscore. Because PrintToString adds quotes -// to std::string and C strings, it won't work for these types. - -#define GTEST_EXPAND_(arg) arg -#define GTEST_GET_FIRST_(first, ...) first -#define GTEST_GET_SECOND_(first, second, ...) second - -#define INSTANTIATE_TEST_SUITE_P(prefix, test_suite_name, ...) \ - static ::testing::internal::ParamGenerator \ - gtest_##prefix##test_suite_name##_EvalGenerator_() { \ - return GTEST_EXPAND_(GTEST_GET_FIRST_(__VA_ARGS__, DUMMY_PARAM_)); \ - } \ - static ::std::string gtest_##prefix##test_suite_name##_EvalGenerateName_( \ - const ::testing::TestParamInfo& info) { \ - if (::testing::internal::AlwaysFalse()) { \ - ::testing::internal::TestNotEmpty(GTEST_EXPAND_(GTEST_GET_SECOND_( \ - __VA_ARGS__, \ - ::testing::internal::DefaultParamName, \ - DUMMY_PARAM_))); \ - auto t = std::make_tuple(__VA_ARGS__); \ - static_assert(std::tuple_size::value <= 2, \ - "Too Many Args!"); \ - } \ - return ((GTEST_EXPAND_(GTEST_GET_SECOND_( \ - __VA_ARGS__, \ - ::testing::internal::DefaultParamName, \ - DUMMY_PARAM_))))(info); \ - } \ - static int gtest_##prefix##test_suite_name##_dummy_ \ - GTEST_ATTRIBUTE_UNUSED_ = \ - ::testing::UnitTest::GetInstance() \ - ->parameterized_test_registry() \ - .GetTestSuitePatternHolder( \ - GTEST_STRINGIFY_(test_suite_name), \ - ::testing::internal::CodeLocation(__FILE__, __LINE__)) \ - ->AddTestSuiteInstantiation( \ - GTEST_STRINGIFY_(prefix), \ - >est_##prefix##test_suite_name##_EvalGenerator_, \ - >est_##prefix##test_suite_name##_EvalGenerateName_, \ - __FILE__, __LINE__) - -// Allow Marking a Parameterized test class as not needing to be instantiated. -#define GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(T) \ - namespace gtest_do_not_use_outside_namespace_scope {} \ - static const ::testing::internal::MarkAsIgnored gtest_allow_ignore_##T( \ - GTEST_STRINGIFY_(T)) - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -#define INSTANTIATE_TEST_CASE_P \ - static_assert(::testing::internal::InstantiateTestCase_P_IsDeprecated(), \ - ""); \ - INSTANTIATE_TEST_SUITE_P -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -} // namespace testing - -#endif // GOOGLETEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/gtest-printers.h b/libs/cpp-httplib/test/gtest/include/gtest/gtest-printers.h deleted file mode 100644 index a91e8b8..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/gtest-printers.h +++ /dev/null @@ -1,1048 +0,0 @@ -// Copyright 2007, 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. - -// Google Test - The Google C++ Testing and Mocking Framework -// -// This file implements a universal value printer that can print a -// value of any type T: -// -// void ::testing::internal::UniversalPrinter::Print(value, ostream_ptr); -// -// A user can teach this function how to print a class type T by -// defining either operator<<() or PrintTo() in the namespace that -// defines T. More specifically, the FIRST defined function in the -// following list will be used (assuming T is defined in namespace -// foo): -// -// 1. foo::PrintTo(const T&, ostream*) -// 2. operator<<(ostream&, const T&) defined in either foo or the -// global namespace. -// -// However if T is an STL-style container then it is printed element-wise -// unless foo::PrintTo(const T&, ostream*) is defined. Note that -// operator<<() is ignored for container types. -// -// If none of the above is defined, it will print the debug string of -// the value if it is a protocol buffer, or print the raw bytes in the -// value otherwise. -// -// To aid debugging: when T is a reference type, the address of the -// value is also printed; when T is a (const) char pointer, both the -// pointer value and the NUL-terminated string it points to are -// printed. -// -// We also provide some convenient wrappers: -// -// // Prints a value to a string. For a (const or not) char -// // pointer, the NUL-terminated string (but not the pointer) is -// // printed. -// std::string ::testing::PrintToString(const T& value); -// -// // Prints a value tersely: for a reference type, the referenced -// // value (but not the address) is printed; for a (const or not) char -// // pointer, the NUL-terminated string (but not the pointer) is -// // printed. -// void ::testing::internal::UniversalTersePrint(const T& value, ostream*); -// -// // Prints value using the type inferred by the compiler. The difference -// // from UniversalTersePrint() is that this function prints both the -// // pointer and the NUL-terminated string for a (const or not) char pointer. -// void ::testing::internal::UniversalPrint(const T& value, ostream*); -// -// // Prints the fields of a tuple tersely to a string vector, one -// // element for each field. Tuple support must be enabled in -// // gtest-port.h. -// std::vector UniversalTersePrintTupleFieldsToStrings( -// const Tuple& value); -// -// Known limitation: -// -// The print primitives print the elements of an STL-style container -// using the compiler-inferred type of *iter where iter is a -// const_iterator of the container. When const_iterator is an input -// iterator but not a forward iterator, this inferred type may not -// match value_type, and the print output may be incorrect. In -// practice, this is rarely a problem as for most containers -// const_iterator is a forward iterator. We'll fix this if there's an -// actual need for it. Note that this fix cannot rely on value_type -// being defined as many user-defined container types don't have -// value_type. - -// IWYU pragma: private, include "gtest/gtest.h" -// IWYU pragma: friend gtest/.* -// IWYU pragma: friend gmock/.* - -#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ -#define GOOGLETEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ - -#include -#include -#include // NOLINT -#include -#include -#include -#include -#include -#include - -#include "gtest/internal/gtest-internal.h" -#include "gtest/internal/gtest-port.h" - -namespace testing { - -// Definitions in the internal* namespaces are subject to change without notice. -// DO NOT USE THEM IN USER CODE! -namespace internal { - -template -void UniversalPrint(const T& value, ::std::ostream* os); - -// Used to print an STL-style container when the user doesn't define -// a PrintTo() for it. -struct ContainerPrinter { - template (0)) == sizeof(IsContainer)) && - !IsRecursiveContainer::value>::type> - static void PrintValue(const T& container, std::ostream* os) { - const size_t kMaxCount = 32; // The maximum number of elements to print. - *os << '{'; - size_t count = 0; - for (auto&& elem : container) { - if (count > 0) { - *os << ','; - if (count == kMaxCount) { // Enough has been printed. - *os << " ..."; - break; - } - } - *os << ' '; - // We cannot call PrintTo(elem, os) here as PrintTo() doesn't - // handle `elem` being a native array. - internal::UniversalPrint(elem, os); - ++count; - } - - if (count > 0) { - *os << ' '; - } - *os << '}'; - } -}; - -// Used to print a pointer that is neither a char pointer nor a member -// pointer, when the user doesn't define PrintTo() for it. (A member -// variable pointer or member function pointer doesn't really point to -// a location in the address space. Their representation is -// implementation-defined. Therefore they will be printed as raw -// bytes.) -struct FunctionPointerPrinter { - template ::value>::type> - static void PrintValue(T* p, ::std::ostream* os) { - if (p == nullptr) { - *os << "NULL"; - } else { - // T is a function type, so '*os << p' doesn't do what we want - // (it just prints p as bool). We want to print p as a const - // void*. - *os << reinterpret_cast(p); - } - } -}; - -struct PointerPrinter { - template - static void PrintValue(T* p, ::std::ostream* os) { - if (p == nullptr) { - *os << "NULL"; - } else { - // T is not a function type. We just call << to print p, - // relying on ADL to pick up user-defined << for their pointer - // types, if any. - *os << p; - } - } -}; - -namespace internal_stream_operator_without_lexical_name_lookup { - -// The presence of an operator<< here will terminate lexical scope lookup -// straight away (even though it cannot be a match because of its argument -// types). Thus, the two operator<< calls in StreamPrinter will find only ADL -// candidates. -struct LookupBlocker {}; -void operator<<(LookupBlocker, LookupBlocker); - -struct StreamPrinter { - template ::value>::type, - // Only accept types for which we can find a streaming operator via - // ADL (possibly involving implicit conversions). - typename = decltype(std::declval() - << std::declval())> - static void PrintValue(const T& value, ::std::ostream* os) { - // Call streaming operator found by ADL, possibly with implicit conversions - // of the arguments. - *os << value; - } -}; - -} // namespace internal_stream_operator_without_lexical_name_lookup - -struct ProtobufPrinter { - // We print a protobuf using its ShortDebugString() when the string - // doesn't exceed this many characters; otherwise we print it using - // DebugString() for better readability. - static const size_t kProtobufOneLinerMaxLength = 50; - - template ::value>::type> - static void PrintValue(const T& value, ::std::ostream* os) { - std::string pretty_str = value.ShortDebugString(); - if (pretty_str.length() > kProtobufOneLinerMaxLength) { - pretty_str = "\n" + value.DebugString(); - } - *os << ("<" + pretty_str + ">"); - } -}; - -struct ConvertibleToIntegerPrinter { - // Since T has no << operator or PrintTo() but can be implicitly - // converted to BiggestInt, we print it as a BiggestInt. - // - // Most likely T is an enum type (either named or unnamed), in which - // case printing it as an integer is the desired behavior. In case - // T is not an enum, printing it as an integer is the best we can do - // given that it has no user-defined printer. - static void PrintValue(internal::BiggestInt value, ::std::ostream* os) { - *os << value; - } -}; - -struct ConvertibleToStringViewPrinter { -#if GTEST_INTERNAL_HAS_STRING_VIEW - static void PrintValue(internal::StringView value, ::std::ostream* os) { - internal::UniversalPrint(value, os); - } -#endif -}; - -// Prints the given number of bytes in the given object to the given -// ostream. -GTEST_API_ void PrintBytesInObjectTo(const unsigned char* obj_bytes, - size_t count, ::std::ostream* os); -struct RawBytesPrinter { - // SFINAE on `sizeof` to make sure we have a complete type. - template - static void PrintValue(const T& value, ::std::ostream* os) { - PrintBytesInObjectTo( - static_cast( - // Load bearing cast to void* to support iOS - reinterpret_cast(std::addressof(value))), - sizeof(value), os); - } -}; - -struct FallbackPrinter { - template - static void PrintValue(const T&, ::std::ostream* os) { - *os << "(incomplete type)"; - } -}; - -// Try every printer in order and return the first one that works. -template -struct FindFirstPrinter : FindFirstPrinter {}; - -template -struct FindFirstPrinter< - T, decltype(Printer::PrintValue(std::declval(), nullptr)), - Printer, Printers...> { - using type = Printer; -}; - -// Select the best printer in the following order: -// - Print containers (they have begin/end/etc). -// - Print function pointers. -// - Print object pointers. -// - Use the stream operator, if available. -// - Print protocol buffers. -// - Print types convertible to BiggestInt. -// - Print types convertible to StringView, if available. -// - Fallback to printing the raw bytes of the object. -template -void PrintWithFallback(const T& value, ::std::ostream* os) { - using Printer = typename FindFirstPrinter< - T, void, ContainerPrinter, FunctionPointerPrinter, PointerPrinter, - internal_stream_operator_without_lexical_name_lookup::StreamPrinter, - ProtobufPrinter, ConvertibleToIntegerPrinter, - ConvertibleToStringViewPrinter, RawBytesPrinter, FallbackPrinter>::type; - Printer::PrintValue(value, os); -} - -// FormatForComparison::Format(value) formats a -// value of type ToPrint that is an operand of a comparison assertion -// (e.g. ASSERT_EQ). OtherOperand is the type of the other operand in -// the comparison, and is used to help determine the best way to -// format the value. In particular, when the value is a C string -// (char pointer) and the other operand is an STL string object, we -// want to format the C string as a string, since we know it is -// compared by value with the string object. If the value is a char -// pointer but the other operand is not an STL string object, we don't -// know whether the pointer is supposed to point to a NUL-terminated -// string, and thus want to print it as a pointer to be safe. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - -// The default case. -template -class FormatForComparison { - public: - static ::std::string Format(const ToPrint& value) { - return ::testing::PrintToString(value); - } -}; - -// Array. -template -class FormatForComparison { - public: - static ::std::string Format(const ToPrint* value) { - return FormatForComparison::Format(value); - } -}; - -// By default, print C string as pointers to be safe, as we don't know -// whether they actually point to a NUL-terminated string. - -#define GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(CharType) \ - template \ - class FormatForComparison { \ - public: \ - static ::std::string Format(CharType* value) { \ - return ::testing::PrintToString(static_cast(value)); \ - } \ - } - -GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(char); -GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const char); -GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(wchar_t); -GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const wchar_t); -#ifdef __cpp_lib_char8_t -GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(char8_t); -GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const char8_t); -#endif -GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(char16_t); -GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const char16_t); -GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(char32_t); -GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const char32_t); - -#undef GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_ - -// If a C string is compared with an STL string object, we know it's meant -// to point to a NUL-terminated string, and thus can print it as a string. - -#define GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(CharType, OtherStringType) \ - template <> \ - class FormatForComparison { \ - public: \ - static ::std::string Format(CharType* value) { \ - return ::testing::PrintToString(value); \ - } \ - } - -GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char, ::std::string); -GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char, ::std::string); -#ifdef __cpp_char8_t -GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char8_t, ::std::u8string); -GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char8_t, ::std::u8string); -#endif -GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char16_t, ::std::u16string); -GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char16_t, ::std::u16string); -GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char32_t, ::std::u32string); -GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char32_t, ::std::u32string); - -#if GTEST_HAS_STD_WSTRING -GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(wchar_t, ::std::wstring); -GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const wchar_t, ::std::wstring); -#endif - -#undef GTEST_IMPL_FORMAT_C_STRING_AS_STRING_ - -// Formats a comparison assertion (e.g. ASSERT_EQ, EXPECT_LT, and etc) -// operand to be used in a failure message. The type (but not value) -// of the other operand may affect the format. This allows us to -// print a char* as a raw pointer when it is compared against another -// char* or void*, and print it as a C string when it is compared -// against an std::string object, for example. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -template -std::string FormatForComparisonFailureMessage(const T1& value, - const T2& /* other_operand */) { - return FormatForComparison::Format(value); -} - -// UniversalPrinter::Print(value, ostream_ptr) prints the given -// value to the given ostream. The caller must ensure that -// 'ostream_ptr' is not NULL, or the behavior is undefined. -// -// We define UniversalPrinter as a class template (as opposed to a -// function template), as we need to partially specialize it for -// reference types, which cannot be done with function templates. -template -class UniversalPrinter; - -// Prints the given value using the << operator if it has one; -// otherwise prints the bytes in it. This is what -// UniversalPrinter::Print() does when PrintTo() is not specialized -// or overloaded for type T. -// -// A user can override this behavior for a class type Foo by defining -// an overload of PrintTo() in the namespace where Foo is defined. We -// give the user this option as sometimes defining a << operator for -// Foo is not desirable (e.g. the coding style may prevent doing it, -// or there is already a << operator but it doesn't do what the user -// wants). -template -void PrintTo(const T& value, ::std::ostream* os) { - internal::PrintWithFallback(value, os); -} - -// The following list of PrintTo() overloads tells -// UniversalPrinter::Print() how to print standard types (built-in -// types, strings, plain arrays, and pointers). - -// Overloads for various char types. -GTEST_API_ void PrintTo(unsigned char c, ::std::ostream* os); -GTEST_API_ void PrintTo(signed char c, ::std::ostream* os); -inline void PrintTo(char c, ::std::ostream* os) { - // When printing a plain char, we always treat it as unsigned. This - // way, the output won't be affected by whether the compiler thinks - // char is signed or not. - PrintTo(static_cast(c), os); -} - -// Overloads for other simple built-in types. -inline void PrintTo(bool x, ::std::ostream* os) { - *os << (x ? "true" : "false"); -} - -// Overload for wchar_t type. -// Prints a wchar_t as a symbol if it is printable or as its internal -// code otherwise and also as its decimal code (except for L'\0'). -// The L'\0' char is printed as "L'\\0'". The decimal code is printed -// as signed integer when wchar_t is implemented by the compiler -// as a signed type and is printed as an unsigned integer when wchar_t -// is implemented as an unsigned type. -GTEST_API_ void PrintTo(wchar_t wc, ::std::ostream* os); - -GTEST_API_ void PrintTo(char32_t c, ::std::ostream* os); -inline void PrintTo(char16_t c, ::std::ostream* os) { - PrintTo(ImplicitCast_(c), os); -} -#ifdef __cpp_char8_t -inline void PrintTo(char8_t c, ::std::ostream* os) { - PrintTo(ImplicitCast_(c), os); -} -#endif - -// gcc/clang __{u,}int128_t -#if defined(__SIZEOF_INT128__) -GTEST_API_ void PrintTo(__uint128_t v, ::std::ostream* os); -GTEST_API_ void PrintTo(__int128_t v, ::std::ostream* os); -#endif // __SIZEOF_INT128__ - -// Overloads for C strings. -GTEST_API_ void PrintTo(const char* s, ::std::ostream* os); -inline void PrintTo(char* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} - -// signed/unsigned char is often used for representing binary data, so -// we print pointers to it as void* to be safe. -inline void PrintTo(const signed char* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} -inline void PrintTo(signed char* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} -inline void PrintTo(const unsigned char* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} -inline void PrintTo(unsigned char* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} -#ifdef __cpp_char8_t -// Overloads for u8 strings. -GTEST_API_ void PrintTo(const char8_t* s, ::std::ostream* os); -inline void PrintTo(char8_t* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} -#endif -// Overloads for u16 strings. -GTEST_API_ void PrintTo(const char16_t* s, ::std::ostream* os); -inline void PrintTo(char16_t* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} -// Overloads for u32 strings. -GTEST_API_ void PrintTo(const char32_t* s, ::std::ostream* os); -inline void PrintTo(char32_t* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} - -// MSVC can be configured to define wchar_t as a typedef of unsigned -// short. It defines _NATIVE_WCHAR_T_DEFINED when wchar_t is a native -// type. When wchar_t is a typedef, defining an overload for const -// wchar_t* would cause unsigned short* be printed as a wide string, -// possibly causing invalid memory accesses. -#if !defined(_MSC_VER) || defined(_NATIVE_WCHAR_T_DEFINED) -// Overloads for wide C strings -GTEST_API_ void PrintTo(const wchar_t* s, ::std::ostream* os); -inline void PrintTo(wchar_t* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} -#endif - -// Overload for C arrays. Multi-dimensional arrays are printed -// properly. - -// Prints the given number of elements in an array, without printing -// the curly braces. -template -void PrintRawArrayTo(const T a[], size_t count, ::std::ostream* os) { - UniversalPrint(a[0], os); - for (size_t i = 1; i != count; i++) { - *os << ", "; - UniversalPrint(a[i], os); - } -} - -// Overloads for ::std::string. -GTEST_API_ void PrintStringTo(const ::std::string& s, ::std::ostream* os); -inline void PrintTo(const ::std::string& s, ::std::ostream* os) { - PrintStringTo(s, os); -} - -// Overloads for ::std::u8string -#ifdef __cpp_char8_t -GTEST_API_ void PrintU8StringTo(const ::std::u8string& s, ::std::ostream* os); -inline void PrintTo(const ::std::u8string& s, ::std::ostream* os) { - PrintU8StringTo(s, os); -} -#endif - -// Overloads for ::std::u16string -GTEST_API_ void PrintU16StringTo(const ::std::u16string& s, ::std::ostream* os); -inline void PrintTo(const ::std::u16string& s, ::std::ostream* os) { - PrintU16StringTo(s, os); -} - -// Overloads for ::std::u32string -GTEST_API_ void PrintU32StringTo(const ::std::u32string& s, ::std::ostream* os); -inline void PrintTo(const ::std::u32string& s, ::std::ostream* os) { - PrintU32StringTo(s, os); -} - -// Overloads for ::std::wstring. -#if GTEST_HAS_STD_WSTRING -GTEST_API_ void PrintWideStringTo(const ::std::wstring& s, ::std::ostream* os); -inline void PrintTo(const ::std::wstring& s, ::std::ostream* os) { - PrintWideStringTo(s, os); -} -#endif // GTEST_HAS_STD_WSTRING - -#if GTEST_INTERNAL_HAS_STRING_VIEW -// Overload for internal::StringView. -inline void PrintTo(internal::StringView sp, ::std::ostream* os) { - PrintTo(::std::string(sp), os); -} -#endif // GTEST_INTERNAL_HAS_STRING_VIEW - -inline void PrintTo(std::nullptr_t, ::std::ostream* os) { *os << "(nullptr)"; } - -#if GTEST_HAS_RTTI -inline void PrintTo(const std::type_info& info, std::ostream* os) { - *os << internal::GetTypeName(info); -} -#endif // GTEST_HAS_RTTI - -template -void PrintTo(std::reference_wrapper ref, ::std::ostream* os) { - UniversalPrinter::Print(ref.get(), os); -} - -inline const void* VoidifyPointer(const void* p) { return p; } -inline const void* VoidifyPointer(volatile const void* p) { - return const_cast(p); -} - -template -void PrintSmartPointer(const Ptr& ptr, std::ostream* os, char) { - if (ptr == nullptr) { - *os << "(nullptr)"; - } else { - // We can't print the value. Just print the pointer.. - *os << "(" << (VoidifyPointer)(ptr.get()) << ")"; - } -} -template ::value && - !std::is_array::value>::type> -void PrintSmartPointer(const Ptr& ptr, std::ostream* os, int) { - if (ptr == nullptr) { - *os << "(nullptr)"; - } else { - *os << "(ptr = " << (VoidifyPointer)(ptr.get()) << ", value = "; - UniversalPrinter::Print(*ptr, os); - *os << ")"; - } -} - -template -void PrintTo(const std::unique_ptr& ptr, std::ostream* os) { - (PrintSmartPointer)(ptr, os, 0); -} - -template -void PrintTo(const std::shared_ptr& ptr, std::ostream* os) { - (PrintSmartPointer)(ptr, os, 0); -} - -// Helper function for printing a tuple. T must be instantiated with -// a tuple type. -template -void PrintTupleTo(const T&, std::integral_constant, - ::std::ostream*) {} - -template -void PrintTupleTo(const T& t, std::integral_constant, - ::std::ostream* os) { - PrintTupleTo(t, std::integral_constant(), os); - GTEST_INTENTIONAL_CONST_COND_PUSH_() - if (I > 1) { - GTEST_INTENTIONAL_CONST_COND_POP_() - *os << ", "; - } - UniversalPrinter::type>::Print( - std::get(t), os); -} - -template -void PrintTo(const ::std::tuple& t, ::std::ostream* os) { - *os << "("; - PrintTupleTo(t, std::integral_constant(), os); - *os << ")"; -} - -// Overload for std::pair. -template -void PrintTo(const ::std::pair& value, ::std::ostream* os) { - *os << '('; - // We cannot use UniversalPrint(value.first, os) here, as T1 may be - // a reference type. The same for printing value.second. - UniversalPrinter::Print(value.first, os); - *os << ", "; - UniversalPrinter::Print(value.second, os); - *os << ')'; -} - -// Implements printing a non-reference type T by letting the compiler -// pick the right overload of PrintTo() for T. -template -class UniversalPrinter { - public: - // MSVC warns about adding const to a function type, so we want to - // disable the warning. - GTEST_DISABLE_MSC_WARNINGS_PUSH_(4180) - - // Note: we deliberately don't call this PrintTo(), as that name - // conflicts with ::testing::internal::PrintTo in the body of the - // function. - static void Print(const T& value, ::std::ostream* os) { - // By default, ::testing::internal::PrintTo() is used for printing - // the value. - // - // Thanks to Koenig look-up, if T is a class and has its own - // PrintTo() function defined in its namespace, that function will - // be visible here. Since it is more specific than the generic ones - // in ::testing::internal, it will be picked by the compiler in the - // following statement - exactly what we want. - PrintTo(value, os); - } - - GTEST_DISABLE_MSC_WARNINGS_POP_() -}; - -// Remove any const-qualifiers before passing a type to UniversalPrinter. -template -class UniversalPrinter : public UniversalPrinter {}; - -#if GTEST_INTERNAL_HAS_ANY - -// Printer for std::any / absl::any - -template <> -class UniversalPrinter { - public: - static void Print(const Any& value, ::std::ostream* os) { - if (value.has_value()) { - *os << "value of type " << GetTypeName(value); - } else { - *os << "no value"; - } - } - - private: - static std::string GetTypeName(const Any& value) { -#if GTEST_HAS_RTTI - return internal::GetTypeName(value.type()); -#else - static_cast(value); // possibly unused - return ""; -#endif // GTEST_HAS_RTTI - } -}; - -#endif // GTEST_INTERNAL_HAS_ANY - -#if GTEST_INTERNAL_HAS_OPTIONAL - -// Printer for std::optional / absl::optional - -template -class UniversalPrinter> { - public: - static void Print(const Optional& value, ::std::ostream* os) { - *os << '('; - if (!value) { - *os << "nullopt"; - } else { - UniversalPrint(*value, os); - } - *os << ')'; - } -}; - -template <> -class UniversalPrinter { - public: - static void Print(decltype(Nullopt()), ::std::ostream* os) { - *os << "(nullopt)"; - } -}; - -#endif // GTEST_INTERNAL_HAS_OPTIONAL - -#if GTEST_INTERNAL_HAS_VARIANT - -// Printer for std::variant / absl::variant - -template -class UniversalPrinter> { - public: - static void Print(const Variant& value, ::std::ostream* os) { - *os << '('; -#if GTEST_HAS_ABSL - absl::visit(Visitor{os, value.index()}, value); -#else - std::visit(Visitor{os, value.index()}, value); -#endif // GTEST_HAS_ABSL - *os << ')'; - } - - private: - struct Visitor { - template - void operator()(const U& u) const { - *os << "'" << GetTypeName() << "(index = " << index - << ")' with value "; - UniversalPrint(u, os); - } - ::std::ostream* os; - std::size_t index; - }; -}; - -#endif // GTEST_INTERNAL_HAS_VARIANT - -// UniversalPrintArray(begin, len, os) prints an array of 'len' -// elements, starting at address 'begin'. -template -void UniversalPrintArray(const T* begin, size_t len, ::std::ostream* os) { - if (len == 0) { - *os << "{}"; - } else { - *os << "{ "; - const size_t kThreshold = 18; - const size_t kChunkSize = 8; - // If the array has more than kThreshold elements, we'll have to - // omit some details by printing only the first and the last - // kChunkSize elements. - if (len <= kThreshold) { - PrintRawArrayTo(begin, len, os); - } else { - PrintRawArrayTo(begin, kChunkSize, os); - *os << ", ..., "; - PrintRawArrayTo(begin + len - kChunkSize, kChunkSize, os); - } - *os << " }"; - } -} -// This overload prints a (const) char array compactly. -GTEST_API_ void UniversalPrintArray(const char* begin, size_t len, - ::std::ostream* os); - -#ifdef __cpp_char8_t -// This overload prints a (const) char8_t array compactly. -GTEST_API_ void UniversalPrintArray(const char8_t* begin, size_t len, - ::std::ostream* os); -#endif - -// This overload prints a (const) char16_t array compactly. -GTEST_API_ void UniversalPrintArray(const char16_t* begin, size_t len, - ::std::ostream* os); - -// This overload prints a (const) char32_t array compactly. -GTEST_API_ void UniversalPrintArray(const char32_t* begin, size_t len, - ::std::ostream* os); - -// This overload prints a (const) wchar_t array compactly. -GTEST_API_ void UniversalPrintArray(const wchar_t* begin, size_t len, - ::std::ostream* os); - -// Implements printing an array type T[N]. -template -class UniversalPrinter { - public: - // Prints the given array, omitting some elements when there are too - // many. - static void Print(const T (&a)[N], ::std::ostream* os) { - UniversalPrintArray(a, N, os); - } -}; - -// Implements printing a reference type T&. -template -class UniversalPrinter { - public: - // MSVC warns about adding const to a function type, so we want to - // disable the warning. - GTEST_DISABLE_MSC_WARNINGS_PUSH_(4180) - - static void Print(const T& value, ::std::ostream* os) { - // Prints the address of the value. We use reinterpret_cast here - // as static_cast doesn't compile when T is a function type. - *os << "@" << reinterpret_cast(&value) << " "; - - // Then prints the value itself. - UniversalPrint(value, os); - } - - GTEST_DISABLE_MSC_WARNINGS_POP_() -}; - -// Prints a value tersely: for a reference type, the referenced value -// (but not the address) is printed; for a (const) char pointer, the -// NUL-terminated string (but not the pointer) is printed. - -template -class UniversalTersePrinter { - public: - static void Print(const T& value, ::std::ostream* os) { - UniversalPrint(value, os); - } -}; -template -class UniversalTersePrinter { - public: - static void Print(const T& value, ::std::ostream* os) { - UniversalPrint(value, os); - } -}; -template -class UniversalTersePrinter { - public: - static void Print(const T (&value)[N], ::std::ostream* os) { - UniversalPrinter::Print(value, os); - } -}; -template <> -class UniversalTersePrinter { - public: - static void Print(const char* str, ::std::ostream* os) { - if (str == nullptr) { - *os << "NULL"; - } else { - UniversalPrint(std::string(str), os); - } - } -}; -template <> -class UniversalTersePrinter : public UniversalTersePrinter { -}; - -#ifdef __cpp_char8_t -template <> -class UniversalTersePrinter { - public: - static void Print(const char8_t* str, ::std::ostream* os) { - if (str == nullptr) { - *os << "NULL"; - } else { - UniversalPrint(::std::u8string(str), os); - } - } -}; -template <> -class UniversalTersePrinter - : public UniversalTersePrinter {}; -#endif - -template <> -class UniversalTersePrinter { - public: - static void Print(const char16_t* str, ::std::ostream* os) { - if (str == nullptr) { - *os << "NULL"; - } else { - UniversalPrint(::std::u16string(str), os); - } - } -}; -template <> -class UniversalTersePrinter - : public UniversalTersePrinter {}; - -template <> -class UniversalTersePrinter { - public: - static void Print(const char32_t* str, ::std::ostream* os) { - if (str == nullptr) { - *os << "NULL"; - } else { - UniversalPrint(::std::u32string(str), os); - } - } -}; -template <> -class UniversalTersePrinter - : public UniversalTersePrinter {}; - -#if GTEST_HAS_STD_WSTRING -template <> -class UniversalTersePrinter { - public: - static void Print(const wchar_t* str, ::std::ostream* os) { - if (str == nullptr) { - *os << "NULL"; - } else { - UniversalPrint(::std::wstring(str), os); - } - } -}; -#endif - -template <> -class UniversalTersePrinter { - public: - static void Print(wchar_t* str, ::std::ostream* os) { - UniversalTersePrinter::Print(str, os); - } -}; - -template -void UniversalTersePrint(const T& value, ::std::ostream* os) { - UniversalTersePrinter::Print(value, os); -} - -// Prints a value using the type inferred by the compiler. The -// difference between this and UniversalTersePrint() is that for a -// (const) char pointer, this prints both the pointer and the -// NUL-terminated string. -template -void UniversalPrint(const T& value, ::std::ostream* os) { - // A workarond for the bug in VC++ 7.1 that prevents us from instantiating - // UniversalPrinter with T directly. - typedef T T1; - UniversalPrinter::Print(value, os); -} - -typedef ::std::vector<::std::string> Strings; - -// Tersely prints the first N fields of a tuple to a string vector, -// one element for each field. -template -void TersePrintPrefixToStrings(const Tuple&, std::integral_constant, - Strings*) {} -template -void TersePrintPrefixToStrings(const Tuple& t, - std::integral_constant, - Strings* strings) { - TersePrintPrefixToStrings(t, std::integral_constant(), - strings); - ::std::stringstream ss; - UniversalTersePrint(std::get(t), &ss); - strings->push_back(ss.str()); -} - -// Prints the fields of a tuple tersely to a string vector, one -// element for each field. See the comment before -// UniversalTersePrint() for how we define "tersely". -template -Strings UniversalTersePrintTupleFieldsToStrings(const Tuple& value) { - Strings result; - TersePrintPrefixToStrings( - value, std::integral_constant::value>(), - &result); - return result; -} - -} // namespace internal - -template -::std::string PrintToString(const T& value) { - ::std::stringstream ss; - internal::UniversalTersePrinter::Print(value, &ss); - return ss.str(); -} - -} // namespace testing - -// Include any custom printer added by the local installation. -// We must include this header at the end to make sure it can use the -// declarations from this file. -#include "gtest/internal/custom/gtest-printers.h" - -#endif // GOOGLETEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/gtest-spi.h b/libs/cpp-httplib/test/gtest/include/gtest/gtest-spi.h deleted file mode 100644 index bec8c48..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/gtest-spi.h +++ /dev/null @@ -1,248 +0,0 @@ -// Copyright 2007, 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. - -// Utilities for testing Google Test itself and code that uses Google Test -// (e.g. frameworks built on top of Google Test). - -#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_SPI_H_ -#define GOOGLETEST_INCLUDE_GTEST_GTEST_SPI_H_ - -#include "gtest/gtest.h" - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -namespace testing { - -// This helper class can be used to mock out Google Test failure reporting -// so that we can test Google Test or code that builds on Google Test. -// -// An object of this class appends a TestPartResult object to the -// TestPartResultArray object given in the constructor whenever a Google Test -// failure is reported. It can either intercept only failures that are -// generated in the same thread that created this object or it can intercept -// all generated failures. The scope of this mock object can be controlled with -// the second argument to the two arguments constructor. -class GTEST_API_ ScopedFakeTestPartResultReporter - : public TestPartResultReporterInterface { - public: - // The two possible mocking modes of this object. - enum InterceptMode { - INTERCEPT_ONLY_CURRENT_THREAD, // Intercepts only thread local failures. - INTERCEPT_ALL_THREADS // Intercepts all failures. - }; - - // The c'tor sets this object as the test part result reporter used - // by Google Test. The 'result' parameter specifies where to report the - // results. This reporter will only catch failures generated in the current - // thread. DEPRECATED - explicit ScopedFakeTestPartResultReporter(TestPartResultArray* result); - - // Same as above, but you can choose the interception scope of this object. - ScopedFakeTestPartResultReporter(InterceptMode intercept_mode, - TestPartResultArray* result); - - // The d'tor restores the previous test part result reporter. - ~ScopedFakeTestPartResultReporter() override; - - // Appends the TestPartResult object to the TestPartResultArray - // received in the constructor. - // - // This method is from the TestPartResultReporterInterface - // interface. - void ReportTestPartResult(const TestPartResult& result) override; - - private: - void Init(); - - const InterceptMode intercept_mode_; - TestPartResultReporterInterface* old_reporter_; - TestPartResultArray* const result_; - - ScopedFakeTestPartResultReporter(const ScopedFakeTestPartResultReporter&) = - delete; - ScopedFakeTestPartResultReporter& operator=( - const ScopedFakeTestPartResultReporter&) = delete; -}; - -namespace internal { - -// A helper class for implementing EXPECT_FATAL_FAILURE() and -// EXPECT_NONFATAL_FAILURE(). Its destructor verifies that the given -// TestPartResultArray contains exactly one failure that has the given -// type and contains the given substring. If that's not the case, a -// non-fatal failure will be generated. -class GTEST_API_ SingleFailureChecker { - public: - // The constructor remembers the arguments. - SingleFailureChecker(const TestPartResultArray* results, - TestPartResult::Type type, const std::string& substr); - ~SingleFailureChecker(); - - private: - const TestPartResultArray* const results_; - const TestPartResult::Type type_; - const std::string substr_; - - SingleFailureChecker(const SingleFailureChecker&) = delete; - SingleFailureChecker& operator=(const SingleFailureChecker&) = delete; -}; - -} // namespace internal - -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -// A set of macros for testing Google Test assertions or code that's expected -// to generate Google Test fatal failures (e.g. a failure from an ASSERT_EQ, but -// not a non-fatal failure, as from EXPECT_EQ). It verifies that the given -// statement will cause exactly one fatal Google Test failure with 'substr' -// being part of the failure message. -// -// There are two different versions of this macro. EXPECT_FATAL_FAILURE only -// affects and considers failures generated in the current thread and -// EXPECT_FATAL_FAILURE_ON_ALL_THREADS does the same but for all threads. -// -// The verification of the assertion is done correctly even when the statement -// throws an exception or aborts the current function. -// -// Known restrictions: -// - 'statement' cannot reference local non-static variables or -// non-static members of the current object. -// - 'statement' cannot return a value. -// - You cannot stream a failure message to this macro. -// -// Note that even though the implementations of the following two -// macros are much alike, we cannot refactor them to use a common -// helper macro, due to some peculiarity in how the preprocessor -// works. The AcceptsMacroThatExpandsToUnprotectedComma test in -// gtest_unittest.cc will fail to compile if we do that. -#define EXPECT_FATAL_FAILURE(statement, substr) \ - do { \ - class GTestExpectFatalFailureHelper { \ - public: \ - static void Execute() { statement; } \ - }; \ - ::testing::TestPartResultArray gtest_failures; \ - ::testing::internal::SingleFailureChecker gtest_checker( \ - >est_failures, ::testing::TestPartResult::kFatalFailure, (substr)); \ - { \ - ::testing::ScopedFakeTestPartResultReporter gtest_reporter( \ - ::testing::ScopedFakeTestPartResultReporter:: \ - INTERCEPT_ONLY_CURRENT_THREAD, \ - >est_failures); \ - GTestExpectFatalFailureHelper::Execute(); \ - } \ - } while (::testing::internal::AlwaysFalse()) - -#define EXPECT_FATAL_FAILURE_ON_ALL_THREADS(statement, substr) \ - do { \ - class GTestExpectFatalFailureHelper { \ - public: \ - static void Execute() { statement; } \ - }; \ - ::testing::TestPartResultArray gtest_failures; \ - ::testing::internal::SingleFailureChecker gtest_checker( \ - >est_failures, ::testing::TestPartResult::kFatalFailure, (substr)); \ - { \ - ::testing::ScopedFakeTestPartResultReporter gtest_reporter( \ - ::testing::ScopedFakeTestPartResultReporter::INTERCEPT_ALL_THREADS, \ - >est_failures); \ - GTestExpectFatalFailureHelper::Execute(); \ - } \ - } while (::testing::internal::AlwaysFalse()) - -// A macro for testing Google Test assertions or code that's expected to -// generate Google Test non-fatal failures (e.g. a failure from an EXPECT_EQ, -// but not from an ASSERT_EQ). It asserts that the given statement will cause -// exactly one non-fatal Google Test failure with 'substr' being part of the -// failure message. -// -// There are two different versions of this macro. EXPECT_NONFATAL_FAILURE only -// affects and considers failures generated in the current thread and -// EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS does the same but for all threads. -// -// 'statement' is allowed to reference local variables and members of -// the current object. -// -// The verification of the assertion is done correctly even when the statement -// throws an exception or aborts the current function. -// -// Known restrictions: -// - You cannot stream a failure message to this macro. -// -// Note that even though the implementations of the following two -// macros are much alike, we cannot refactor them to use a common -// helper macro, due to some peculiarity in how the preprocessor -// works. If we do that, the code won't compile when the user gives -// EXPECT_NONFATAL_FAILURE() a statement that contains a macro that -// expands to code containing an unprotected comma. The -// AcceptsMacroThatExpandsToUnprotectedComma test in gtest_unittest.cc -// catches that. -// -// For the same reason, we have to write -// if (::testing::internal::AlwaysTrue()) { statement; } -// instead of -// GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) -// to avoid an MSVC warning on unreachable code. -#define EXPECT_NONFATAL_FAILURE(statement, substr) \ - do { \ - ::testing::TestPartResultArray gtest_failures; \ - ::testing::internal::SingleFailureChecker gtest_checker( \ - >est_failures, ::testing::TestPartResult::kNonFatalFailure, \ - (substr)); \ - { \ - ::testing::ScopedFakeTestPartResultReporter gtest_reporter( \ - ::testing::ScopedFakeTestPartResultReporter:: \ - INTERCEPT_ONLY_CURRENT_THREAD, \ - >est_failures); \ - if (::testing::internal::AlwaysTrue()) { \ - statement; \ - } \ - } \ - } while (::testing::internal::AlwaysFalse()) - -#define EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(statement, substr) \ - do { \ - ::testing::TestPartResultArray gtest_failures; \ - ::testing::internal::SingleFailureChecker gtest_checker( \ - >est_failures, ::testing::TestPartResult::kNonFatalFailure, \ - (substr)); \ - { \ - ::testing::ScopedFakeTestPartResultReporter gtest_reporter( \ - ::testing::ScopedFakeTestPartResultReporter::INTERCEPT_ALL_THREADS, \ - >est_failures); \ - if (::testing::internal::AlwaysTrue()) { \ - statement; \ - } \ - } \ - } while (::testing::internal::AlwaysFalse()) - -#endif // GOOGLETEST_INCLUDE_GTEST_GTEST_SPI_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/gtest-test-part.h b/libs/cpp-httplib/test/gtest/include/gtest/gtest-test-part.h deleted file mode 100644 index 09cc8c3..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/gtest-test-part.h +++ /dev/null @@ -1,190 +0,0 @@ -// 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. - -// IWYU pragma: private, include "gtest/gtest.h" -// IWYU pragma: friend gtest/.* -// IWYU pragma: friend gmock/.* - -#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_TEST_PART_H_ -#define GOOGLETEST_INCLUDE_GTEST_GTEST_TEST_PART_H_ - -#include -#include - -#include "gtest/internal/gtest-internal.h" -#include "gtest/internal/gtest-string.h" - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -namespace testing { - -// A copyable object representing the result of a test part (i.e. an -// assertion or an explicit FAIL(), ADD_FAILURE(), or SUCCESS()). -// -// Don't inherit from TestPartResult as its destructor is not virtual. -class GTEST_API_ TestPartResult { - public: - // The possible outcomes of a test part (i.e. an assertion or an - // explicit SUCCEED(), FAIL(), or ADD_FAILURE()). - enum Type { - kSuccess, // Succeeded. - kNonFatalFailure, // Failed but the test can continue. - kFatalFailure, // Failed and the test should be terminated. - kSkip // Skipped. - }; - - // C'tor. TestPartResult does NOT have a default constructor. - // Always use this constructor (with parameters) to create a - // TestPartResult object. - TestPartResult(Type a_type, const char* a_file_name, int a_line_number, - const char* a_message) - : type_(a_type), - file_name_(a_file_name == nullptr ? "" : a_file_name), - line_number_(a_line_number), - summary_(ExtractSummary(a_message)), - message_(a_message) {} - - // Gets the outcome of the test part. - Type type() const { return type_; } - - // Gets the name of the source file where the test part took place, or - // NULL if it's unknown. - const char* file_name() const { - return file_name_.empty() ? nullptr : file_name_.c_str(); - } - - // Gets the line in the source file where the test part took place, - // or -1 if it's unknown. - int line_number() const { return line_number_; } - - // Gets the summary of the failure message. - const char* summary() const { return summary_.c_str(); } - - // Gets the message associated with the test part. - const char* message() const { return message_.c_str(); } - - // Returns true if and only if the test part was skipped. - bool skipped() const { return type_ == kSkip; } - - // Returns true if and only if the test part passed. - bool passed() const { return type_ == kSuccess; } - - // Returns true if and only if the test part non-fatally failed. - bool nonfatally_failed() const { return type_ == kNonFatalFailure; } - - // Returns true if and only if the test part fatally failed. - bool fatally_failed() const { return type_ == kFatalFailure; } - - // Returns true if and only if the test part failed. - bool failed() const { return fatally_failed() || nonfatally_failed(); } - - private: - Type type_; - - // Gets the summary of the failure message by omitting the stack - // trace in it. - static std::string ExtractSummary(const char* message); - - // The name of the source file where the test part took place, or - // "" if the source file is unknown. - std::string file_name_; - // The line in the source file where the test part took place, or -1 - // if the line number is unknown. - int line_number_; - std::string summary_; // The test failure summary. - std::string message_; // The test failure message. -}; - -// Prints a TestPartResult object. -std::ostream& operator<<(std::ostream& os, const TestPartResult& result); - -// An array of TestPartResult objects. -// -// Don't inherit from TestPartResultArray as its destructor is not -// virtual. -class GTEST_API_ TestPartResultArray { - public: - TestPartResultArray() {} - - // Appends the given TestPartResult to the array. - void Append(const TestPartResult& result); - - // Returns the TestPartResult at the given index (0-based). - const TestPartResult& GetTestPartResult(int index) const; - - // Returns the number of TestPartResult objects in the array. - int size() const; - - private: - std::vector array_; - - TestPartResultArray(const TestPartResultArray&) = delete; - TestPartResultArray& operator=(const TestPartResultArray&) = delete; -}; - -// This interface knows how to report a test part result. -class GTEST_API_ TestPartResultReporterInterface { - public: - virtual ~TestPartResultReporterInterface() {} - - virtual void ReportTestPartResult(const TestPartResult& result) = 0; -}; - -namespace internal { - -// This helper class is used by {ASSERT|EXPECT}_NO_FATAL_FAILURE to check if a -// statement generates new fatal failures. To do so it registers itself as the -// current test part result reporter. Besides checking if fatal failures were -// reported, it only delegates the reporting to the former result reporter. -// The original result reporter is restored in the destructor. -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -class GTEST_API_ HasNewFatalFailureHelper - : public TestPartResultReporterInterface { - public: - HasNewFatalFailureHelper(); - ~HasNewFatalFailureHelper() override; - void ReportTestPartResult(const TestPartResult& result) override; - bool has_new_fatal_failure() const { return has_new_fatal_failure_; } - - private: - bool has_new_fatal_failure_; - TestPartResultReporterInterface* original_reporter_; - - HasNewFatalFailureHelper(const HasNewFatalFailureHelper&) = delete; - HasNewFatalFailureHelper& operator=(const HasNewFatalFailureHelper&) = delete; -}; - -} // namespace internal - -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -#endif // GOOGLETEST_INCLUDE_GTEST_GTEST_TEST_PART_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/gtest-typed-test.h b/libs/cpp-httplib/test/gtest/include/gtest/gtest-typed-test.h deleted file mode 100644 index bd35a32..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/gtest-typed-test.h +++ /dev/null @@ -1,331 +0,0 @@ -// 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. - -// IWYU pragma: private, include "gtest/gtest.h" -// IWYU pragma: friend gtest/.* -// IWYU pragma: friend gmock/.* - -#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ -#define GOOGLETEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ - -// This header implements typed tests and type-parameterized tests. - -// Typed (aka type-driven) tests repeat the same test for types in a -// list. You must know which types you want to test with when writing -// typed tests. Here's how you do it: - -#if 0 - -// First, define a fixture class template. It should be parameterized -// by a type. Remember to derive it from testing::Test. -template -class FooTest : public testing::Test { - public: - ... - typedef std::list List; - static T shared_; - T value_; -}; - -// Next, associate a list of types with the test suite, which will be -// repeated for each type in the list. The typedef is necessary for -// the macro to parse correctly. -typedef testing::Types MyTypes; -TYPED_TEST_SUITE(FooTest, MyTypes); - -// If the type list contains only one type, you can write that type -// directly without Types<...>: -// TYPED_TEST_SUITE(FooTest, int); - -// Then, use TYPED_TEST() instead of TEST_F() to define as many typed -// tests for this test suite as you want. -TYPED_TEST(FooTest, DoesBlah) { - // Inside a test, refer to the special name TypeParam to get the type - // parameter. Since we are inside a derived class template, C++ requires - // us to visit the members of FooTest via 'this'. - TypeParam n = this->value_; - - // To visit static members of the fixture, add the TestFixture:: - // prefix. - n += TestFixture::shared_; - - // To refer to typedefs in the fixture, add the "typename - // TestFixture::" prefix. - typename TestFixture::List values; - values.push_back(n); - ... -} - -TYPED_TEST(FooTest, HasPropertyA) { ... } - -// TYPED_TEST_SUITE takes an optional third argument which allows to specify a -// class that generates custom test name suffixes based on the type. This should -// be a class which has a static template function GetName(int index) returning -// a string for each type. The provided integer index equals the index of the -// type in the provided type list. In many cases the index can be ignored. -// -// For example: -// class MyTypeNames { -// public: -// template -// static std::string GetName(int) { -// if (std::is_same()) return "char"; -// if (std::is_same()) return "int"; -// if (std::is_same()) return "unsignedInt"; -// } -// }; -// TYPED_TEST_SUITE(FooTest, MyTypes, MyTypeNames); - -#endif // 0 - -// Type-parameterized tests are abstract test patterns parameterized -// by a type. Compared with typed tests, type-parameterized tests -// allow you to define the test pattern without knowing what the type -// parameters are. The defined pattern can be instantiated with -// different types any number of times, in any number of translation -// units. -// -// If you are designing an interface or concept, you can define a -// suite of type-parameterized tests to verify properties that any -// valid implementation of the interface/concept should have. Then, -// each implementation can easily instantiate the test suite to verify -// that it conforms to the requirements, without having to write -// similar tests repeatedly. Here's an example: - -#if 0 - -// First, define a fixture class template. It should be parameterized -// by a type. Remember to derive it from testing::Test. -template -class FooTest : public testing::Test { - ... -}; - -// Next, declare that you will define a type-parameterized test suite -// (the _P suffix is for "parameterized" or "pattern", whichever you -// prefer): -TYPED_TEST_SUITE_P(FooTest); - -// Then, use TYPED_TEST_P() to define as many type-parameterized tests -// for this type-parameterized test suite as you want. -TYPED_TEST_P(FooTest, DoesBlah) { - // Inside a test, refer to TypeParam to get the type parameter. - TypeParam n = 0; - ... -} - -TYPED_TEST_P(FooTest, HasPropertyA) { ... } - -// Now the tricky part: you need to register all test patterns before -// you can instantiate them. The first argument of the macro is the -// test suite name; the rest are the names of the tests in this test -// case. -REGISTER_TYPED_TEST_SUITE_P(FooTest, - DoesBlah, HasPropertyA); - -// Finally, you are free to instantiate the pattern with the types you -// want. If you put the above code in a header file, you can #include -// it in multiple C++ source files and instantiate it multiple times. -// -// To distinguish different instances of the pattern, the first -// argument to the INSTANTIATE_* macro is a prefix that will be added -// to the actual test suite name. Remember to pick unique prefixes for -// different instances. -typedef testing::Types MyTypes; -INSTANTIATE_TYPED_TEST_SUITE_P(My, FooTest, MyTypes); - -// If the type list contains only one type, you can write that type -// directly without Types<...>: -// INSTANTIATE_TYPED_TEST_SUITE_P(My, FooTest, int); -// -// Similar to the optional argument of TYPED_TEST_SUITE above, -// INSTANTIATE_TEST_SUITE_P takes an optional fourth argument which allows to -// generate custom names. -// INSTANTIATE_TYPED_TEST_SUITE_P(My, FooTest, MyTypes, MyTypeNames); - -#endif // 0 - -#include "gtest/internal/gtest-internal.h" -#include "gtest/internal/gtest-port.h" -#include "gtest/internal/gtest-type-util.h" - -// Implements typed tests. - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Expands to the name of the typedef for the type parameters of the -// given test suite. -#define GTEST_TYPE_PARAMS_(TestSuiteName) gtest_type_params_##TestSuiteName##_ - -// Expands to the name of the typedef for the NameGenerator, responsible for -// creating the suffixes of the name. -#define GTEST_NAME_GENERATOR_(TestSuiteName) \ - gtest_type_params_##TestSuiteName##_NameGenerator - -#define TYPED_TEST_SUITE(CaseName, Types, ...) \ - typedef ::testing::internal::GenerateTypeList::type \ - GTEST_TYPE_PARAMS_(CaseName); \ - typedef ::testing::internal::NameGeneratorSelector<__VA_ARGS__>::type \ - GTEST_NAME_GENERATOR_(CaseName) - -#define TYPED_TEST(CaseName, TestName) \ - static_assert(sizeof(GTEST_STRINGIFY_(TestName)) > 1, \ - "test-name must not be empty"); \ - template \ - class GTEST_TEST_CLASS_NAME_(CaseName, TestName) \ - : public CaseName { \ - private: \ - typedef CaseName TestFixture; \ - typedef gtest_TypeParam_ TypeParam; \ - void TestBody() override; \ - }; \ - static bool gtest_##CaseName##_##TestName##_registered_ \ - GTEST_ATTRIBUTE_UNUSED_ = ::testing::internal::TypeParameterizedTest< \ - CaseName, \ - ::testing::internal::TemplateSel, \ - GTEST_TYPE_PARAMS_( \ - CaseName)>::Register("", \ - ::testing::internal::CodeLocation( \ - __FILE__, __LINE__), \ - GTEST_STRINGIFY_(CaseName), \ - GTEST_STRINGIFY_(TestName), 0, \ - ::testing::internal::GenerateNames< \ - GTEST_NAME_GENERATOR_(CaseName), \ - GTEST_TYPE_PARAMS_(CaseName)>()); \ - template \ - void GTEST_TEST_CLASS_NAME_(CaseName, \ - TestName)::TestBody() - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -#define TYPED_TEST_CASE \ - static_assert(::testing::internal::TypedTestCaseIsDeprecated(), ""); \ - TYPED_TEST_SUITE -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -// Implements type-parameterized tests. - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Expands to the namespace name that the type-parameterized tests for -// the given type-parameterized test suite are defined in. The exact -// name of the namespace is subject to change without notice. -#define GTEST_SUITE_NAMESPACE_(TestSuiteName) gtest_suite_##TestSuiteName##_ - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Expands to the name of the variable used to remember the names of -// the defined tests in the given test suite. -#define GTEST_TYPED_TEST_SUITE_P_STATE_(TestSuiteName) \ - gtest_typed_test_suite_p_state_##TestSuiteName##_ - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE DIRECTLY. -// -// Expands to the name of the variable used to remember the names of -// the registered tests in the given test suite. -#define GTEST_REGISTERED_TEST_NAMES_(TestSuiteName) \ - gtest_registered_test_names_##TestSuiteName##_ - -// The variables defined in the type-parameterized test macros are -// static as typically these macros are used in a .h file that can be -// #included in multiple translation units linked together. -#define TYPED_TEST_SUITE_P(SuiteName) \ - static ::testing::internal::TypedTestSuitePState \ - GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName) - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -#define TYPED_TEST_CASE_P \ - static_assert(::testing::internal::TypedTestCase_P_IsDeprecated(), ""); \ - TYPED_TEST_SUITE_P -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -#define TYPED_TEST_P(SuiteName, TestName) \ - namespace GTEST_SUITE_NAMESPACE_(SuiteName) { \ - template \ - class TestName : public SuiteName { \ - private: \ - typedef SuiteName TestFixture; \ - typedef gtest_TypeParam_ TypeParam; \ - void TestBody() override; \ - }; \ - static bool gtest_##TestName##_defined_ GTEST_ATTRIBUTE_UNUSED_ = \ - GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName).AddTestName( \ - __FILE__, __LINE__, GTEST_STRINGIFY_(SuiteName), \ - GTEST_STRINGIFY_(TestName)); \ - } \ - template \ - void GTEST_SUITE_NAMESPACE_( \ - SuiteName)::TestName::TestBody() - -// Note: this won't work correctly if the trailing arguments are macros. -#define REGISTER_TYPED_TEST_SUITE_P(SuiteName, ...) \ - namespace GTEST_SUITE_NAMESPACE_(SuiteName) { \ - typedef ::testing::internal::Templates<__VA_ARGS__> gtest_AllTests_; \ - } \ - static const char* const GTEST_REGISTERED_TEST_NAMES_( \ - SuiteName) GTEST_ATTRIBUTE_UNUSED_ = \ - GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName).VerifyRegisteredTestNames( \ - GTEST_STRINGIFY_(SuiteName), __FILE__, __LINE__, #__VA_ARGS__) - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -#define REGISTER_TYPED_TEST_CASE_P \ - static_assert(::testing::internal::RegisterTypedTestCase_P_IsDeprecated(), \ - ""); \ - REGISTER_TYPED_TEST_SUITE_P -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -#define INSTANTIATE_TYPED_TEST_SUITE_P(Prefix, SuiteName, Types, ...) \ - static_assert(sizeof(GTEST_STRINGIFY_(Prefix)) > 1, \ - "test-suit-prefix must not be empty"); \ - static bool gtest_##Prefix##_##SuiteName GTEST_ATTRIBUTE_UNUSED_ = \ - ::testing::internal::TypeParameterizedTestSuite< \ - SuiteName, GTEST_SUITE_NAMESPACE_(SuiteName)::gtest_AllTests_, \ - ::testing::internal::GenerateTypeList::type>:: \ - Register(GTEST_STRINGIFY_(Prefix), \ - ::testing::internal::CodeLocation(__FILE__, __LINE__), \ - >EST_TYPED_TEST_SUITE_P_STATE_(SuiteName), \ - GTEST_STRINGIFY_(SuiteName), \ - GTEST_REGISTERED_TEST_NAMES_(SuiteName), \ - ::testing::internal::GenerateNames< \ - ::testing::internal::NameGeneratorSelector< \ - __VA_ARGS__>::type, \ - ::testing::internal::GenerateTypeList::type>()) - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -#define INSTANTIATE_TYPED_TEST_CASE_P \ - static_assert( \ - ::testing::internal::InstantiateTypedTestCase_P_IsDeprecated(), ""); \ - INSTANTIATE_TYPED_TEST_SUITE_P -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -#endif // GOOGLETEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/gtest.h b/libs/cpp-httplib/test/gtest/include/gtest/gtest.h deleted file mode 100644 index d19a587..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/gtest.h +++ /dev/null @@ -1,2297 +0,0 @@ -// Copyright 2005, 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. - -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file defines the public API for Google Test. It should be -// included by any test program that uses Google Test. -// -// IMPORTANT NOTE: Due to limitation of the C++ language, we have to -// leave some internal implementation details in this header file. -// They are clearly marked by comments like this: -// -// // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -// -// Such code is NOT meant to be used by a user directly, and is subject -// to CHANGE WITHOUT NOTICE. Therefore DO NOT DEPEND ON IT in a user -// program! -// -// Acknowledgment: Google Test borrowed the idea of automatic test -// registration from Barthelemy Dagenais' (barthelemy@prologique.com) -// easyUnit framework. - -#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_H_ -#define GOOGLETEST_INCLUDE_GTEST_GTEST_H_ - -#include -#include -#include -#include -#include -#include - -#include "gtest/gtest-assertion-result.h" -#include "gtest/gtest-death-test.h" -#include "gtest/gtest-matchers.h" -#include "gtest/gtest-message.h" -#include "gtest/gtest-param-test.h" -#include "gtest/gtest-printers.h" -#include "gtest/gtest-test-part.h" -#include "gtest/gtest-typed-test.h" -#include "gtest/gtest_pred_impl.h" -#include "gtest/gtest_prod.h" -#include "gtest/internal/gtest-internal.h" -#include "gtest/internal/gtest-string.h" - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -// Declares the flags. - -// This flag temporary enables the disabled tests. -GTEST_DECLARE_bool_(also_run_disabled_tests); - -// This flag brings the debugger on an assertion failure. -GTEST_DECLARE_bool_(break_on_failure); - -// This flag controls whether Google Test catches all test-thrown exceptions -// and logs them as failures. -GTEST_DECLARE_bool_(catch_exceptions); - -// This flag enables using colors in terminal output. Available values are -// "yes" to enable colors, "no" (disable colors), or "auto" (the default) -// to let Google Test decide. -GTEST_DECLARE_string_(color); - -// This flag controls whether the test runner should continue execution past -// first failure. -GTEST_DECLARE_bool_(fail_fast); - -// This flag sets up the filter to select by name using a glob pattern -// the tests to run. If the filter is not given all tests are executed. -GTEST_DECLARE_string_(filter); - -// This flag controls whether Google Test installs a signal handler that dumps -// debugging information when fatal signals are raised. -GTEST_DECLARE_bool_(install_failure_signal_handler); - -// This flag causes the Google Test to list tests. None of the tests listed -// are actually run if the flag is provided. -GTEST_DECLARE_bool_(list_tests); - -// This flag controls whether Google Test emits a detailed XML report to a file -// in addition to its normal textual output. -GTEST_DECLARE_string_(output); - -// This flags control whether Google Test prints only test failures. -GTEST_DECLARE_bool_(brief); - -// This flags control whether Google Test prints the elapsed time for each -// test. -GTEST_DECLARE_bool_(print_time); - -// This flags control whether Google Test prints UTF8 characters as text. -GTEST_DECLARE_bool_(print_utf8); - -// This flag specifies the random number seed. -GTEST_DECLARE_int32_(random_seed); - -// This flag sets how many times the tests are repeated. The default value -// is 1. If the value is -1 the tests are repeating forever. -GTEST_DECLARE_int32_(repeat); - -// This flag controls whether Google Test Environments are recreated for each -// repeat of the tests. The default value is true. If set to false the global -// test Environment objects are only set up once, for the first iteration, and -// only torn down once, for the last. -GTEST_DECLARE_bool_(recreate_environments_when_repeating); - -// This flag controls whether Google Test includes Google Test internal -// stack frames in failure stack traces. -GTEST_DECLARE_bool_(show_internal_stack_frames); - -// When this flag is specified, tests' order is randomized on every iteration. -GTEST_DECLARE_bool_(shuffle); - -// This flag specifies the maximum number of stack frames to be -// printed in a failure message. -GTEST_DECLARE_int32_(stack_trace_depth); - -// When this flag is specified, a failed assertion will throw an -// exception if exceptions are enabled, or exit the program with a -// non-zero code otherwise. For use with an external test framework. -GTEST_DECLARE_bool_(throw_on_failure); - -// When this flag is set with a "host:port" string, on supported -// platforms test results are streamed to the specified port on -// the specified host machine. -GTEST_DECLARE_string_(stream_result_to); - -#if GTEST_USE_OWN_FLAGFILE_FLAG_ -GTEST_DECLARE_string_(flagfile); -#endif // GTEST_USE_OWN_FLAGFILE_FLAG_ - -namespace testing { - -// Silence C4100 (unreferenced formal parameter) and 4805 -// unsafe mix of type 'const int' and type 'const bool' -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable : 4805) -#pragma warning(disable : 4100) -#endif - -// The upper limit for valid stack trace depths. -const int kMaxStackTraceDepth = 100; - -namespace internal { - -class AssertHelper; -class DefaultGlobalTestPartResultReporter; -class ExecDeathTest; -class NoExecDeathTest; -class FinalSuccessChecker; -class GTestFlagSaver; -class StreamingListenerTest; -class TestResultAccessor; -class TestEventListenersAccessor; -class TestEventRepeater; -class UnitTestRecordPropertyTestHelper; -class WindowsDeathTest; -class FuchsiaDeathTest; -class UnitTestImpl* GetUnitTestImpl(); -void ReportFailureInUnknownLocation(TestPartResult::Type result_type, - const std::string& message); -std::set* GetIgnoredParameterizedTestSuites(); - -} // namespace internal - -// The friend relationship of some of these classes is cyclic. -// If we don't forward declare them the compiler might confuse the classes -// in friendship clauses with same named classes on the scope. -class Test; -class TestSuite; - -// Old API is still available but deprecated -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -using TestCase = TestSuite; -#endif -class TestInfo; -class UnitTest; - -// The abstract class that all tests inherit from. -// -// In Google Test, a unit test program contains one or many TestSuites, and -// each TestSuite contains one or many Tests. -// -// When you define a test using the TEST macro, you don't need to -// explicitly derive from Test - the TEST macro automatically does -// this for you. -// -// The only time you derive from Test is when defining a test fixture -// to be used in a TEST_F. For example: -// -// class FooTest : public testing::Test { -// protected: -// void SetUp() override { ... } -// void TearDown() override { ... } -// ... -// }; -// -// TEST_F(FooTest, Bar) { ... } -// TEST_F(FooTest, Baz) { ... } -// -// Test is not copyable. -class GTEST_API_ Test { - public: - friend class TestInfo; - - // The d'tor is virtual as we intend to inherit from Test. - virtual ~Test(); - - // Sets up the stuff shared by all tests in this test suite. - // - // Google Test will call Foo::SetUpTestSuite() before running the first - // test in test suite Foo. Hence a sub-class can define its own - // SetUpTestSuite() method to shadow the one defined in the super - // class. - static void SetUpTestSuite() {} - - // Tears down the stuff shared by all tests in this test suite. - // - // Google Test will call Foo::TearDownTestSuite() after running the last - // test in test suite Foo. Hence a sub-class can define its own - // TearDownTestSuite() method to shadow the one defined in the super - // class. - static void TearDownTestSuite() {} - - // Legacy API is deprecated but still available. Use SetUpTestSuite and - // TearDownTestSuite instead. -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - static void TearDownTestCase() {} - static void SetUpTestCase() {} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Returns true if and only if the current test has a fatal failure. - static bool HasFatalFailure(); - - // Returns true if and only if the current test has a non-fatal failure. - static bool HasNonfatalFailure(); - - // Returns true if and only if the current test was skipped. - static bool IsSkipped(); - - // Returns true if and only if the current test has a (either fatal or - // non-fatal) failure. - static bool HasFailure() { return HasFatalFailure() || HasNonfatalFailure(); } - - // Logs a property for the current test, test suite, or for the entire - // invocation of the test program when used outside of the context of a - // test suite. Only the last value for a given key is remembered. These - // are public static so they can be called from utility functions that are - // not members of the test fixture. Calls to RecordProperty made during - // lifespan of the test (from the moment its constructor starts to the - // moment its destructor finishes) will be output in XML as attributes of - // the element. Properties recorded from fixture's - // SetUpTestSuite or TearDownTestSuite are logged as attributes of the - // corresponding element. Calls to RecordProperty made in the - // global context (before or after invocation of RUN_ALL_TESTS and from - // SetUp/TearDown method of Environment objects registered with Google - // Test) will be output as attributes of the element. - static void RecordProperty(const std::string& key, const std::string& value); - static void RecordProperty(const std::string& key, int value); - - protected: - // Creates a Test object. - Test(); - - // Sets up the test fixture. - virtual void SetUp(); - - // Tears down the test fixture. - virtual void TearDown(); - - private: - // Returns true if and only if the current test has the same fixture class - // as the first test in the current test suite. - static bool HasSameFixtureClass(); - - // Runs the test after the test fixture has been set up. - // - // A sub-class must implement this to define the test logic. - // - // DO NOT OVERRIDE THIS FUNCTION DIRECTLY IN A USER PROGRAM. - // Instead, use the TEST or TEST_F macro. - virtual void TestBody() = 0; - - // Sets up, executes, and tears down the test. - void Run(); - - // Deletes self. We deliberately pick an unusual name for this - // internal method to avoid clashing with names used in user TESTs. - void DeleteSelf_() { delete this; } - - const std::unique_ptr gtest_flag_saver_; - - // Often a user misspells SetUp() as Setup() and spends a long time - // wondering why it is never called by Google Test. The declaration of - // the following method is solely for catching such an error at - // compile time: - // - // - The return type is deliberately chosen to be not void, so it - // will be a conflict if void Setup() is declared in the user's - // test fixture. - // - // - This method is private, so it will be another compiler error - // if the method is called from the user's test fixture. - // - // DO NOT OVERRIDE THIS FUNCTION. - // - // If you see an error about overriding the following function or - // about it being private, you have mis-spelled SetUp() as Setup(). - struct Setup_should_be_spelled_SetUp {}; - virtual Setup_should_be_spelled_SetUp* Setup() { return nullptr; } - - // We disallow copying Tests. - Test(const Test&) = delete; - Test& operator=(const Test&) = delete; -}; - -typedef internal::TimeInMillis TimeInMillis; - -// A copyable object representing a user specified test property which can be -// output as a key/value string pair. -// -// Don't inherit from TestProperty as its destructor is not virtual. -class TestProperty { - public: - // C'tor. TestProperty does NOT have a default constructor. - // Always use this constructor (with parameters) to create a - // TestProperty object. - TestProperty(const std::string& a_key, const std::string& a_value) - : key_(a_key), value_(a_value) {} - - // Gets the user supplied key. - const char* key() const { return key_.c_str(); } - - // Gets the user supplied value. - const char* value() const { return value_.c_str(); } - - // Sets a new value, overriding the one supplied in the constructor. - void SetValue(const std::string& new_value) { value_ = new_value; } - - private: - // The key supplied by the user. - std::string key_; - // The value supplied by the user. - std::string value_; -}; - -// The result of a single Test. This includes a list of -// TestPartResults, a list of TestProperties, a count of how many -// death tests there are in the Test, and how much time it took to run -// the Test. -// -// TestResult is not copyable. -class GTEST_API_ TestResult { - public: - // Creates an empty TestResult. - TestResult(); - - // D'tor. Do not inherit from TestResult. - ~TestResult(); - - // Gets the number of all test parts. This is the sum of the number - // of successful test parts and the number of failed test parts. - int total_part_count() const; - - // Returns the number of the test properties. - int test_property_count() const; - - // Returns true if and only if the test passed (i.e. no test part failed). - bool Passed() const { return !Skipped() && !Failed(); } - - // Returns true if and only if the test was skipped. - bool Skipped() const; - - // Returns true if and only if the test failed. - bool Failed() const; - - // Returns true if and only if the test fatally failed. - bool HasFatalFailure() const; - - // Returns true if and only if the test has a non-fatal failure. - bool HasNonfatalFailure() const; - - // Returns the elapsed time, in milliseconds. - TimeInMillis elapsed_time() const { return elapsed_time_; } - - // Gets the time of the test case start, in ms from the start of the - // UNIX epoch. - TimeInMillis start_timestamp() const { return start_timestamp_; } - - // Returns the i-th test part result among all the results. i can range from 0 - // to total_part_count() - 1. If i is not in that range, aborts the program. - const TestPartResult& GetTestPartResult(int i) const; - - // Returns the i-th test property. i can range from 0 to - // test_property_count() - 1. If i is not in that range, aborts the - // program. - const TestProperty& GetTestProperty(int i) const; - - private: - friend class TestInfo; - friend class TestSuite; - friend class UnitTest; - friend class internal::DefaultGlobalTestPartResultReporter; - friend class internal::ExecDeathTest; - friend class internal::TestResultAccessor; - friend class internal::UnitTestImpl; - friend class internal::WindowsDeathTest; - friend class internal::FuchsiaDeathTest; - - // Gets the vector of TestPartResults. - const std::vector& test_part_results() const { - return test_part_results_; - } - - // Gets the vector of TestProperties. - const std::vector& test_properties() const { - return test_properties_; - } - - // Sets the start time. - void set_start_timestamp(TimeInMillis start) { start_timestamp_ = start; } - - // Sets the elapsed time. - void set_elapsed_time(TimeInMillis elapsed) { elapsed_time_ = elapsed; } - - // Adds a test property to the list. The property is validated and may add - // a non-fatal failure if invalid (e.g., if it conflicts with reserved - // key names). If a property is already recorded for the same key, the - // value will be updated, rather than storing multiple values for the same - // key. xml_element specifies the element for which the property is being - // recorded and is used for validation. - void RecordProperty(const std::string& xml_element, - const TestProperty& test_property); - - // Adds a failure if the key is a reserved attribute of Google Test - // testsuite tags. Returns true if the property is valid. - // FIXME: Validate attribute names are legal and human readable. - static bool ValidateTestProperty(const std::string& xml_element, - const TestProperty& test_property); - - // Adds a test part result to the list. - void AddTestPartResult(const TestPartResult& test_part_result); - - // Returns the death test count. - int death_test_count() const { return death_test_count_; } - - // Increments the death test count, returning the new count. - int increment_death_test_count() { return ++death_test_count_; } - - // Clears the test part results. - void ClearTestPartResults(); - - // Clears the object. - void Clear(); - - // Protects mutable state of the property vector and of owned - // properties, whose values may be updated. - internal::Mutex test_properties_mutex_; - - // The vector of TestPartResults - std::vector test_part_results_; - // The vector of TestProperties - std::vector test_properties_; - // Running count of death tests. - int death_test_count_; - // The start time, in milliseconds since UNIX Epoch. - TimeInMillis start_timestamp_; - // The elapsed time, in milliseconds. - TimeInMillis elapsed_time_; - - // We disallow copying TestResult. - TestResult(const TestResult&) = delete; - TestResult& operator=(const TestResult&) = delete; -}; // class TestResult - -// A TestInfo object stores the following information about a test: -// -// Test suite name -// Test name -// Whether the test should be run -// A function pointer that creates the test object when invoked -// Test result -// -// The constructor of TestInfo registers itself with the UnitTest -// singleton such that the RUN_ALL_TESTS() macro knows which tests to -// run. -class GTEST_API_ TestInfo { - public: - // Destructs a TestInfo object. This function is not virtual, so - // don't inherit from TestInfo. - ~TestInfo(); - - // Returns the test suite name. - const char* test_suite_name() const { return test_suite_name_.c_str(); } - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - const char* test_case_name() const { return test_suite_name(); } -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Returns the test name. - const char* name() const { return name_.c_str(); } - - // Returns the name of the parameter type, or NULL if this is not a typed - // or a type-parameterized test. - const char* type_param() const { - if (type_param_.get() != nullptr) return type_param_->c_str(); - return nullptr; - } - - // Returns the text representation of the value parameter, or NULL if this - // is not a value-parameterized test. - const char* value_param() const { - if (value_param_.get() != nullptr) return value_param_->c_str(); - return nullptr; - } - - // Returns the file name where this test is defined. - const char* file() const { return location_.file.c_str(); } - - // Returns the line where this test is defined. - int line() const { return location_.line; } - - // Return true if this test should not be run because it's in another shard. - bool is_in_another_shard() const { return is_in_another_shard_; } - - // Returns true if this test should run, that is if the test is not - // disabled (or it is disabled but the also_run_disabled_tests flag has - // been specified) and its full name matches the user-specified filter. - // - // Google Test allows the user to filter the tests by their full names. - // The full name of a test Bar in test suite Foo is defined as - // "Foo.Bar". Only the tests that match the filter will run. - // - // A filter is a colon-separated list of glob (not regex) patterns, - // optionally followed by a '-' and a colon-separated list of - // negative patterns (tests to exclude). A test is run if it - // matches one of the positive patterns and does not match any of - // the negative patterns. - // - // For example, *A*:Foo.* is a filter that matches any string that - // contains the character 'A' or starts with "Foo.". - bool should_run() const { return should_run_; } - - // Returns true if and only if this test will appear in the XML report. - bool is_reportable() const { - // The XML report includes tests matching the filter, excluding those - // run in other shards. - return matches_filter_ && !is_in_another_shard_; - } - - // Returns the result of the test. - const TestResult* result() const { return &result_; } - - private: -#if GTEST_HAS_DEATH_TEST - friend class internal::DefaultDeathTestFactory; -#endif // GTEST_HAS_DEATH_TEST - friend class Test; - friend class TestSuite; - friend class internal::UnitTestImpl; - friend class internal::StreamingListenerTest; - friend TestInfo* internal::MakeAndRegisterTestInfo( - const char* test_suite_name, const char* name, const char* type_param, - const char* value_param, internal::CodeLocation code_location, - internal::TypeId fixture_class_id, internal::SetUpTestSuiteFunc set_up_tc, - internal::TearDownTestSuiteFunc tear_down_tc, - internal::TestFactoryBase* factory); - - // Constructs a TestInfo object. The newly constructed instance assumes - // ownership of the factory object. - TestInfo(const std::string& test_suite_name, const std::string& name, - const char* a_type_param, // NULL if not a type-parameterized test - const char* a_value_param, // NULL if not a value-parameterized test - internal::CodeLocation a_code_location, - internal::TypeId fixture_class_id, - internal::TestFactoryBase* factory); - - // Increments the number of death tests encountered in this test so - // far. - int increment_death_test_count() { - return result_.increment_death_test_count(); - } - - // Creates the test object, runs it, records its result, and then - // deletes it. - void Run(); - - // Skip and records the test result for this object. - void Skip(); - - static void ClearTestResult(TestInfo* test_info) { - test_info->result_.Clear(); - } - - // These fields are immutable properties of the test. - const std::string test_suite_name_; // test suite name - const std::string name_; // Test name - // Name of the parameter type, or NULL if this is not a typed or a - // type-parameterized test. - const std::unique_ptr type_param_; - // Text representation of the value parameter, or NULL if this is not a - // value-parameterized test. - const std::unique_ptr value_param_; - internal::CodeLocation location_; - const internal::TypeId fixture_class_id_; // ID of the test fixture class - bool should_run_; // True if and only if this test should run - bool is_disabled_; // True if and only if this test is disabled - bool matches_filter_; // True if this test matches the - // user-specified filter. - bool is_in_another_shard_; // Will be run in another shard. - internal::TestFactoryBase* const factory_; // The factory that creates - // the test object - - // This field is mutable and needs to be reset before running the - // test for the second time. - TestResult result_; - - TestInfo(const TestInfo&) = delete; - TestInfo& operator=(const TestInfo&) = delete; -}; - -// A test suite, which consists of a vector of TestInfos. -// -// TestSuite is not copyable. -class GTEST_API_ TestSuite { - public: - // Creates a TestSuite with the given name. - // - // TestSuite does NOT have a default constructor. Always use this - // constructor to create a TestSuite object. - // - // Arguments: - // - // name: name of the test suite - // a_type_param: the name of the test's type parameter, or NULL if - // this is not a type-parameterized test. - // set_up_tc: pointer to the function that sets up the test suite - // tear_down_tc: pointer to the function that tears down the test suite - TestSuite(const char* name, const char* a_type_param, - internal::SetUpTestSuiteFunc set_up_tc, - internal::TearDownTestSuiteFunc tear_down_tc); - - // Destructor of TestSuite. - virtual ~TestSuite(); - - // Gets the name of the TestSuite. - const char* name() const { return name_.c_str(); } - - // Returns the name of the parameter type, or NULL if this is not a - // type-parameterized test suite. - const char* type_param() const { - if (type_param_.get() != nullptr) return type_param_->c_str(); - return nullptr; - } - - // Returns true if any test in this test suite should run. - bool should_run() const { return should_run_; } - - // Gets the number of successful tests in this test suite. - int successful_test_count() const; - - // Gets the number of skipped tests in this test suite. - int skipped_test_count() const; - - // Gets the number of failed tests in this test suite. - int failed_test_count() const; - - // Gets the number of disabled tests that will be reported in the XML report. - int reportable_disabled_test_count() const; - - // Gets the number of disabled tests in this test suite. - int disabled_test_count() const; - - // Gets the number of tests to be printed in the XML report. - int reportable_test_count() const; - - // Get the number of tests in this test suite that should run. - int test_to_run_count() const; - - // Gets the number of all tests in this test suite. - int total_test_count() const; - - // Returns true if and only if the test suite passed. - bool Passed() const { return !Failed(); } - - // Returns true if and only if the test suite failed. - bool Failed() const { - return failed_test_count() > 0 || ad_hoc_test_result().Failed(); - } - - // Returns the elapsed time, in milliseconds. - TimeInMillis elapsed_time() const { return elapsed_time_; } - - // Gets the time of the test suite start, in ms from the start of the - // UNIX epoch. - TimeInMillis start_timestamp() const { return start_timestamp_; } - - // Returns the i-th test among all the tests. i can range from 0 to - // total_test_count() - 1. If i is not in that range, returns NULL. - const TestInfo* GetTestInfo(int i) const; - - // Returns the TestResult that holds test properties recorded during - // execution of SetUpTestSuite and TearDownTestSuite. - const TestResult& ad_hoc_test_result() const { return ad_hoc_test_result_; } - - private: - friend class Test; - friend class internal::UnitTestImpl; - - // Gets the (mutable) vector of TestInfos in this TestSuite. - std::vector& test_info_list() { return test_info_list_; } - - // Gets the (immutable) vector of TestInfos in this TestSuite. - const std::vector& test_info_list() const { - return test_info_list_; - } - - // Returns the i-th test among all the tests. i can range from 0 to - // total_test_count() - 1. If i is not in that range, returns NULL. - TestInfo* GetMutableTestInfo(int i); - - // Sets the should_run member. - void set_should_run(bool should) { should_run_ = should; } - - // Adds a TestInfo to this test suite. Will delete the TestInfo upon - // destruction of the TestSuite object. - void AddTestInfo(TestInfo* test_info); - - // Clears the results of all tests in this test suite. - void ClearResult(); - - // Clears the results of all tests in the given test suite. - static void ClearTestSuiteResult(TestSuite* test_suite) { - test_suite->ClearResult(); - } - - // Runs every test in this TestSuite. - void Run(); - - // Skips the execution of tests under this TestSuite - void Skip(); - - // Runs SetUpTestSuite() for this TestSuite. This wrapper is needed - // for catching exceptions thrown from SetUpTestSuite(). - void RunSetUpTestSuite() { - if (set_up_tc_ != nullptr) { - (*set_up_tc_)(); - } - } - - // Runs TearDownTestSuite() for this TestSuite. This wrapper is - // needed for catching exceptions thrown from TearDownTestSuite(). - void RunTearDownTestSuite() { - if (tear_down_tc_ != nullptr) { - (*tear_down_tc_)(); - } - } - - // Returns true if and only if test passed. - static bool TestPassed(const TestInfo* test_info) { - return test_info->should_run() && test_info->result()->Passed(); - } - - // Returns true if and only if test skipped. - static bool TestSkipped(const TestInfo* test_info) { - return test_info->should_run() && test_info->result()->Skipped(); - } - - // Returns true if and only if test failed. - static bool TestFailed(const TestInfo* test_info) { - return test_info->should_run() && test_info->result()->Failed(); - } - - // Returns true if and only if the test is disabled and will be reported in - // the XML report. - static bool TestReportableDisabled(const TestInfo* test_info) { - return test_info->is_reportable() && test_info->is_disabled_; - } - - // Returns true if and only if test is disabled. - static bool TestDisabled(const TestInfo* test_info) { - return test_info->is_disabled_; - } - - // Returns true if and only if this test will appear in the XML report. - static bool TestReportable(const TestInfo* test_info) { - return test_info->is_reportable(); - } - - // Returns true if the given test should run. - static bool ShouldRunTest(const TestInfo* test_info) { - return test_info->should_run(); - } - - // Shuffles the tests in this test suite. - void ShuffleTests(internal::Random* random); - - // Restores the test order to before the first shuffle. - void UnshuffleTests(); - - // Name of the test suite. - std::string name_; - // Name of the parameter type, or NULL if this is not a typed or a - // type-parameterized test. - const std::unique_ptr type_param_; - // The vector of TestInfos in their original order. It owns the - // elements in the vector. - std::vector test_info_list_; - // Provides a level of indirection for the test list to allow easy - // shuffling and restoring the test order. The i-th element in this - // vector is the index of the i-th test in the shuffled test list. - std::vector test_indices_; - // Pointer to the function that sets up the test suite. - internal::SetUpTestSuiteFunc set_up_tc_; - // Pointer to the function that tears down the test suite. - internal::TearDownTestSuiteFunc tear_down_tc_; - // True if and only if any test in this test suite should run. - bool should_run_; - // The start time, in milliseconds since UNIX Epoch. - TimeInMillis start_timestamp_; - // Elapsed time, in milliseconds. - TimeInMillis elapsed_time_; - // Holds test properties recorded during execution of SetUpTestSuite and - // TearDownTestSuite. - TestResult ad_hoc_test_result_; - - // We disallow copying TestSuites. - TestSuite(const TestSuite&) = delete; - TestSuite& operator=(const TestSuite&) = delete; -}; - -// An Environment object is capable of setting up and tearing down an -// environment. You should subclass this to define your own -// environment(s). -// -// An Environment object does the set-up and tear-down in virtual -// methods SetUp() and TearDown() instead of the constructor and the -// destructor, as: -// -// 1. You cannot safely throw from a destructor. This is a problem -// as in some cases Google Test is used where exceptions are enabled, and -// we may want to implement ASSERT_* using exceptions where they are -// available. -// 2. You cannot use ASSERT_* directly in a constructor or -// destructor. -class Environment { - public: - // The d'tor is virtual as we need to subclass Environment. - virtual ~Environment() {} - - // Override this to define how to set up the environment. - virtual void SetUp() {} - - // Override this to define how to tear down the environment. - virtual void TearDown() {} - - private: - // If you see an error about overriding the following function or - // about it being private, you have mis-spelled SetUp() as Setup(). - struct Setup_should_be_spelled_SetUp {}; - virtual Setup_should_be_spelled_SetUp* Setup() { return nullptr; } -}; - -#if GTEST_HAS_EXCEPTIONS - -// Exception which can be thrown from TestEventListener::OnTestPartResult. -class GTEST_API_ AssertionException - : public internal::GoogleTestFailureException { - public: - explicit AssertionException(const TestPartResult& result) - : GoogleTestFailureException(result) {} -}; - -#endif // GTEST_HAS_EXCEPTIONS - -// The interface for tracing execution of tests. The methods are organized in -// the order the corresponding events are fired. -class TestEventListener { - public: - virtual ~TestEventListener() {} - - // Fired before any test activity starts. - virtual void OnTestProgramStart(const UnitTest& unit_test) = 0; - - // Fired before each iteration of tests starts. There may be more than - // one iteration if GTEST_FLAG(repeat) is set. iteration is the iteration - // index, starting from 0. - virtual void OnTestIterationStart(const UnitTest& unit_test, - int iteration) = 0; - - // Fired before environment set-up for each iteration of tests starts. - virtual void OnEnvironmentsSetUpStart(const UnitTest& unit_test) = 0; - - // Fired after environment set-up for each iteration of tests ends. - virtual void OnEnvironmentsSetUpEnd(const UnitTest& unit_test) = 0; - - // Fired before the test suite starts. - virtual void OnTestSuiteStart(const TestSuite& /*test_suite*/) {} - - // Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - virtual void OnTestCaseStart(const TestCase& /*test_case*/) {} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Fired before the test starts. - virtual void OnTestStart(const TestInfo& test_info) = 0; - - // Fired when a test is disabled - virtual void OnTestDisabled(const TestInfo& /*test_info*/) {} - - // Fired after a failed assertion or a SUCCEED() invocation. - // If you want to throw an exception from this function to skip to the next - // TEST, it must be AssertionException defined above, or inherited from it. - virtual void OnTestPartResult(const TestPartResult& test_part_result) = 0; - - // Fired after the test ends. - virtual void OnTestEnd(const TestInfo& test_info) = 0; - - // Fired after the test suite ends. - virtual void OnTestSuiteEnd(const TestSuite& /*test_suite*/) {} - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - virtual void OnTestCaseEnd(const TestCase& /*test_case*/) {} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Fired before environment tear-down for each iteration of tests starts. - virtual void OnEnvironmentsTearDownStart(const UnitTest& unit_test) = 0; - - // Fired after environment tear-down for each iteration of tests ends. - virtual void OnEnvironmentsTearDownEnd(const UnitTest& unit_test) = 0; - - // Fired after each iteration of tests finishes. - virtual void OnTestIterationEnd(const UnitTest& unit_test, int iteration) = 0; - - // Fired after all test activities have ended. - virtual void OnTestProgramEnd(const UnitTest& unit_test) = 0; -}; - -// The convenience class for users who need to override just one or two -// methods and are not concerned that a possible change to a signature of -// the methods they override will not be caught during the build. For -// comments about each method please see the definition of TestEventListener -// above. -class EmptyTestEventListener : public TestEventListener { - public: - void OnTestProgramStart(const UnitTest& /*unit_test*/) override {} - void OnTestIterationStart(const UnitTest& /*unit_test*/, - int /*iteration*/) override {} - void OnEnvironmentsSetUpStart(const UnitTest& /*unit_test*/) override {} - void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) override {} - void OnTestSuiteStart(const TestSuite& /*test_suite*/) override {} -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - void OnTestCaseStart(const TestCase& /*test_case*/) override {} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - void OnTestStart(const TestInfo& /*test_info*/) override {} - void OnTestDisabled(const TestInfo& /*test_info*/) override {} - void OnTestPartResult(const TestPartResult& /*test_part_result*/) override {} - void OnTestEnd(const TestInfo& /*test_info*/) override {} - void OnTestSuiteEnd(const TestSuite& /*test_suite*/) override {} -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - void OnTestCaseEnd(const TestCase& /*test_case*/) override {} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - void OnEnvironmentsTearDownStart(const UnitTest& /*unit_test*/) override {} - void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) override {} - void OnTestIterationEnd(const UnitTest& /*unit_test*/, - int /*iteration*/) override {} - void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {} -}; - -// TestEventListeners lets users add listeners to track events in Google Test. -class GTEST_API_ TestEventListeners { - public: - TestEventListeners(); - ~TestEventListeners(); - - // Appends an event listener to the end of the list. Google Test assumes - // the ownership of the listener (i.e. it will delete the listener when - // the test program finishes). - void Append(TestEventListener* listener); - - // Removes the given event listener from the list and returns it. It then - // becomes the caller's responsibility to delete the listener. Returns - // NULL if the listener is not found in the list. - TestEventListener* Release(TestEventListener* listener); - - // Returns the standard listener responsible for the default console - // output. Can be removed from the listeners list to shut down default - // console output. Note that removing this object from the listener list - // with Release transfers its ownership to the caller and makes this - // function return NULL the next time. - TestEventListener* default_result_printer() const { - return default_result_printer_; - } - - // Returns the standard listener responsible for the default XML output - // controlled by the --gtest_output=xml flag. Can be removed from the - // listeners list by users who want to shut down the default XML output - // controlled by this flag and substitute it with custom one. Note that - // removing this object from the listener list with Release transfers its - // ownership to the caller and makes this function return NULL the next - // time. - TestEventListener* default_xml_generator() const { - return default_xml_generator_; - } - - private: - friend class TestSuite; - friend class TestInfo; - friend class internal::DefaultGlobalTestPartResultReporter; - friend class internal::NoExecDeathTest; - friend class internal::TestEventListenersAccessor; - friend class internal::UnitTestImpl; - - // Returns repeater that broadcasts the TestEventListener events to all - // subscribers. - TestEventListener* repeater(); - - // Sets the default_result_printer attribute to the provided listener. - // The listener is also added to the listener list and previous - // default_result_printer is removed from it and deleted. The listener can - // also be NULL in which case it will not be added to the list. Does - // nothing if the previous and the current listener objects are the same. - void SetDefaultResultPrinter(TestEventListener* listener); - - // Sets the default_xml_generator attribute to the provided listener. The - // listener is also added to the listener list and previous - // default_xml_generator is removed from it and deleted. The listener can - // also be NULL in which case it will not be added to the list. Does - // nothing if the previous and the current listener objects are the same. - void SetDefaultXmlGenerator(TestEventListener* listener); - - // Controls whether events will be forwarded by the repeater to the - // listeners in the list. - bool EventForwardingEnabled() const; - void SuppressEventForwarding(); - - // The actual list of listeners. - internal::TestEventRepeater* repeater_; - // Listener responsible for the standard result output. - TestEventListener* default_result_printer_; - // Listener responsible for the creation of the XML output file. - TestEventListener* default_xml_generator_; - - // We disallow copying TestEventListeners. - TestEventListeners(const TestEventListeners&) = delete; - TestEventListeners& operator=(const TestEventListeners&) = delete; -}; - -// A UnitTest consists of a vector of TestSuites. -// -// This is a singleton class. The only instance of UnitTest is -// created when UnitTest::GetInstance() is first called. This -// instance is never deleted. -// -// UnitTest is not copyable. -// -// This class is thread-safe as long as the methods are called -// according to their specification. -class GTEST_API_ UnitTest { - public: - // Gets the singleton UnitTest object. The first time this method - // is called, a UnitTest object is constructed and returned. - // Consecutive calls will return the same object. - static UnitTest* GetInstance(); - - // Runs all tests in this UnitTest object and prints the result. - // Returns 0 if successful, or 1 otherwise. - // - // This method can only be called from the main thread. - // - // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - int Run() GTEST_MUST_USE_RESULT_; - - // Returns the working directory when the first TEST() or TEST_F() - // was executed. The UnitTest object owns the string. - const char* original_working_dir() const; - - // Returns the TestSuite object for the test that's currently running, - // or NULL if no test is running. - const TestSuite* current_test_suite() const GTEST_LOCK_EXCLUDED_(mutex_); - -// Legacy API is still available but deprecated -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - const TestCase* current_test_case() const GTEST_LOCK_EXCLUDED_(mutex_); -#endif - - // Returns the TestInfo object for the test that's currently running, - // or NULL if no test is running. - const TestInfo* current_test_info() const GTEST_LOCK_EXCLUDED_(mutex_); - - // Returns the random seed used at the start of the current test run. - int random_seed() const; - - // Returns the ParameterizedTestSuiteRegistry object used to keep track of - // value-parameterized tests and instantiate and register them. - // - // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - internal::ParameterizedTestSuiteRegistry& parameterized_test_registry() - GTEST_LOCK_EXCLUDED_(mutex_); - - // Gets the number of successful test suites. - int successful_test_suite_count() const; - - // Gets the number of failed test suites. - int failed_test_suite_count() const; - - // Gets the number of all test suites. - int total_test_suite_count() const; - - // Gets the number of all test suites that contain at least one test - // that should run. - int test_suite_to_run_count() const; - - // Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - int successful_test_case_count() const; - int failed_test_case_count() const; - int total_test_case_count() const; - int test_case_to_run_count() const; -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Gets the number of successful tests. - int successful_test_count() const; - - // Gets the number of skipped tests. - int skipped_test_count() const; - - // Gets the number of failed tests. - int failed_test_count() const; - - // Gets the number of disabled tests that will be reported in the XML report. - int reportable_disabled_test_count() const; - - // Gets the number of disabled tests. - int disabled_test_count() const; - - // Gets the number of tests to be printed in the XML report. - int reportable_test_count() const; - - // Gets the number of all tests. - int total_test_count() const; - - // Gets the number of tests that should run. - int test_to_run_count() const; - - // Gets the time of the test program start, in ms from the start of the - // UNIX epoch. - TimeInMillis start_timestamp() const; - - // Gets the elapsed time, in milliseconds. - TimeInMillis elapsed_time() const; - - // Returns true if and only if the unit test passed (i.e. all test suites - // passed). - bool Passed() const; - - // Returns true if and only if the unit test failed (i.e. some test suite - // failed or something outside of all tests failed). - bool Failed() const; - - // Gets the i-th test suite among all the test suites. i can range from 0 to - // total_test_suite_count() - 1. If i is not in that range, returns NULL. - const TestSuite* GetTestSuite(int i) const; - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - const TestCase* GetTestCase(int i) const; -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Returns the TestResult containing information on test failures and - // properties logged outside of individual test suites. - const TestResult& ad_hoc_test_result() const; - - // Returns the list of event listeners that can be used to track events - // inside Google Test. - TestEventListeners& listeners(); - - private: - // Registers and returns a global test environment. When a test - // program is run, all global test environments will be set-up in - // the order they were registered. After all tests in the program - // have finished, all global test environments will be torn-down in - // the *reverse* order they were registered. - // - // The UnitTest object takes ownership of the given environment. - // - // This method can only be called from the main thread. - Environment* AddEnvironment(Environment* env); - - // Adds a TestPartResult to the current TestResult object. All - // Google Test assertion macros (e.g. ASSERT_TRUE, EXPECT_EQ, etc) - // eventually call this to report their results. The user code - // should use the assertion macros instead of calling this directly. - void AddTestPartResult(TestPartResult::Type result_type, - const char* file_name, int line_number, - const std::string& message, - const std::string& os_stack_trace) - GTEST_LOCK_EXCLUDED_(mutex_); - - // Adds a TestProperty to the current TestResult object when invoked from - // inside a test, to current TestSuite's ad_hoc_test_result_ when invoked - // from SetUpTestSuite or TearDownTestSuite, or to the global property set - // when invoked elsewhere. If the result already contains a property with - // the same key, the value will be updated. - void RecordProperty(const std::string& key, const std::string& value); - - // Gets the i-th test suite among all the test suites. i can range from 0 to - // total_test_suite_count() - 1. If i is not in that range, returns NULL. - TestSuite* GetMutableTestSuite(int i); - - // Accessors for the implementation object. - internal::UnitTestImpl* impl() { return impl_; } - const internal::UnitTestImpl* impl() const { return impl_; } - - // These classes and functions are friends as they need to access private - // members of UnitTest. - friend class ScopedTrace; - friend class Test; - friend class internal::AssertHelper; - friend class internal::StreamingListenerTest; - friend class internal::UnitTestRecordPropertyTestHelper; - friend Environment* AddGlobalTestEnvironment(Environment* env); - friend std::set* internal::GetIgnoredParameterizedTestSuites(); - friend internal::UnitTestImpl* internal::GetUnitTestImpl(); - friend void internal::ReportFailureInUnknownLocation( - TestPartResult::Type result_type, const std::string& message); - - // Creates an empty UnitTest. - UnitTest(); - - // D'tor - virtual ~UnitTest(); - - // Pushes a trace defined by SCOPED_TRACE() on to the per-thread - // Google Test trace stack. - void PushGTestTrace(const internal::TraceInfo& trace) - GTEST_LOCK_EXCLUDED_(mutex_); - - // Pops a trace from the per-thread Google Test trace stack. - void PopGTestTrace() GTEST_LOCK_EXCLUDED_(mutex_); - - // Protects mutable state in *impl_. This is mutable as some const - // methods need to lock it too. - mutable internal::Mutex mutex_; - - // Opaque implementation object. This field is never changed once - // the object is constructed. We don't mark it as const here, as - // doing so will cause a warning in the constructor of UnitTest. - // Mutable state in *impl_ is protected by mutex_. - internal::UnitTestImpl* impl_; - - // We disallow copying UnitTest. - UnitTest(const UnitTest&) = delete; - UnitTest& operator=(const UnitTest&) = delete; -}; - -// A convenient wrapper for adding an environment for the test -// program. -// -// You should call this before RUN_ALL_TESTS() is called, probably in -// main(). If you use gtest_main, you need to call this before main() -// starts for it to take effect. For example, you can define a global -// variable like this: -// -// testing::Environment* const foo_env = -// testing::AddGlobalTestEnvironment(new FooEnvironment); -// -// However, we strongly recommend you to write your own main() and -// call AddGlobalTestEnvironment() there, as relying on initialization -// of global variables makes the code harder to read and may cause -// problems when you register multiple environments from different -// translation units and the environments have dependencies among them -// (remember that the compiler doesn't guarantee the order in which -// global variables from different translation units are initialized). -inline Environment* AddGlobalTestEnvironment(Environment* env) { - return UnitTest::GetInstance()->AddEnvironment(env); -} - -// Initializes Google Test. This must be called before calling -// RUN_ALL_TESTS(). In particular, it parses a command line for the -// flags that Google Test recognizes. Whenever a Google Test flag is -// seen, it is removed from argv, and *argc is decremented. -// -// No value is returned. Instead, the Google Test flag variables are -// updated. -// -// Calling the function for the second time has no user-visible effect. -GTEST_API_ void InitGoogleTest(int* argc, char** argv); - -// This overloaded version can be used in Windows programs compiled in -// UNICODE mode. -GTEST_API_ void InitGoogleTest(int* argc, wchar_t** argv); - -// This overloaded version can be used on Arduino/embedded platforms where -// there is no argc/argv. -GTEST_API_ void InitGoogleTest(); - -namespace internal { - -// Separate the error generating code from the code path to reduce the stack -// frame size of CmpHelperEQ. This helps reduce the overhead of some sanitizers -// when calling EXPECT_* in a tight loop. -template -AssertionResult CmpHelperEQFailure(const char* lhs_expression, - const char* rhs_expression, const T1& lhs, - const T2& rhs) { - return EqFailure(lhs_expression, rhs_expression, - FormatForComparisonFailureMessage(lhs, rhs), - FormatForComparisonFailureMessage(rhs, lhs), false); -} - -// This block of code defines operator==/!= -// to block lexical scope lookup. -// It prevents using invalid operator==/!= defined at namespace scope. -struct faketype {}; -inline bool operator==(faketype, faketype) { return true; } -inline bool operator!=(faketype, faketype) { return false; } - -// The helper function for {ASSERT|EXPECT}_EQ. -template -AssertionResult CmpHelperEQ(const char* lhs_expression, - const char* rhs_expression, const T1& lhs, - const T2& rhs) { - if (lhs == rhs) { - return AssertionSuccess(); - } - - return CmpHelperEQFailure(lhs_expression, rhs_expression, lhs, rhs); -} - -class EqHelper { - public: - // This templatized version is for the general case. - template < - typename T1, typename T2, - // Disable this overload for cases where one argument is a pointer - // and the other is the null pointer constant. - typename std::enable_if::value || - !std::is_pointer::value>::type* = nullptr> - static AssertionResult Compare(const char* lhs_expression, - const char* rhs_expression, const T1& lhs, - const T2& rhs) { - return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs); - } - - // With this overloaded version, we allow anonymous enums to be used - // in {ASSERT|EXPECT}_EQ when compiled with gcc 4, as anonymous - // enums can be implicitly cast to BiggestInt. - // - // Even though its body looks the same as the above version, we - // cannot merge the two, as it will make anonymous enums unhappy. - static AssertionResult Compare(const char* lhs_expression, - const char* rhs_expression, BiggestInt lhs, - BiggestInt rhs) { - return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs); - } - - template - static AssertionResult Compare( - const char* lhs_expression, const char* rhs_expression, - // Handle cases where '0' is used as a null pointer literal. - std::nullptr_t /* lhs */, T* rhs) { - // We already know that 'lhs' is a null pointer. - return CmpHelperEQ(lhs_expression, rhs_expression, static_cast(nullptr), - rhs); - } -}; - -// Separate the error generating code from the code path to reduce the stack -// frame size of CmpHelperOP. This helps reduce the overhead of some sanitizers -// when calling EXPECT_OP in a tight loop. -template -AssertionResult CmpHelperOpFailure(const char* expr1, const char* expr2, - const T1& val1, const T2& val2, - const char* op) { - return AssertionFailure() - << "Expected: (" << expr1 << ") " << op << " (" << expr2 - << "), actual: " << FormatForComparisonFailureMessage(val1, val2) - << " vs " << FormatForComparisonFailureMessage(val2, val1); -} - -// A macro for implementing the helper functions needed to implement -// ASSERT_?? and EXPECT_??. It is here just to avoid copy-and-paste -// of similar code. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - -#define GTEST_IMPL_CMP_HELPER_(op_name, op) \ - template \ - AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \ - const T1& val1, const T2& val2) { \ - if (val1 op val2) { \ - return AssertionSuccess(); \ - } else { \ - return CmpHelperOpFailure(expr1, expr2, val1, val2, #op); \ - } \ - } - -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - -// Implements the helper function for {ASSERT|EXPECT}_NE -GTEST_IMPL_CMP_HELPER_(NE, !=) -// Implements the helper function for {ASSERT|EXPECT}_LE -GTEST_IMPL_CMP_HELPER_(LE, <=) -// Implements the helper function for {ASSERT|EXPECT}_LT -GTEST_IMPL_CMP_HELPER_(LT, <) -// Implements the helper function for {ASSERT|EXPECT}_GE -GTEST_IMPL_CMP_HELPER_(GE, >=) -// Implements the helper function for {ASSERT|EXPECT}_GT -GTEST_IMPL_CMP_HELPER_(GT, >) - -#undef GTEST_IMPL_CMP_HELPER_ - -// The helper function for {ASSERT|EXPECT}_STREQ. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult CmpHelperSTREQ(const char* s1_expression, - const char* s2_expression, - const char* s1, const char* s2); - -// The helper function for {ASSERT|EXPECT}_STRCASEEQ. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult CmpHelperSTRCASEEQ(const char* s1_expression, - const char* s2_expression, - const char* s1, const char* s2); - -// The helper function for {ASSERT|EXPECT}_STRNE. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult CmpHelperSTRNE(const char* s1_expression, - const char* s2_expression, - const char* s1, const char* s2); - -// The helper function for {ASSERT|EXPECT}_STRCASENE. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult CmpHelperSTRCASENE(const char* s1_expression, - const char* s2_expression, - const char* s1, const char* s2); - -// Helper function for *_STREQ on wide strings. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult CmpHelperSTREQ(const char* s1_expression, - const char* s2_expression, - const wchar_t* s1, const wchar_t* s2); - -// Helper function for *_STRNE on wide strings. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult CmpHelperSTRNE(const char* s1_expression, - const char* s2_expression, - const wchar_t* s1, const wchar_t* s2); - -} // namespace internal - -// IsSubstring() and IsNotSubstring() are intended to be used as the -// first argument to {EXPECT,ASSERT}_PRED_FORMAT2(), not by -// themselves. They check whether needle is a substring of haystack -// (NULL is considered a substring of itself only), and return an -// appropriate error message when they fail. -// -// The {needle,haystack}_expr arguments are the stringified -// expressions that generated the two real arguments. -GTEST_API_ AssertionResult IsSubstring(const char* needle_expr, - const char* haystack_expr, - const char* needle, - const char* haystack); -GTEST_API_ AssertionResult IsSubstring(const char* needle_expr, - const char* haystack_expr, - const wchar_t* needle, - const wchar_t* haystack); -GTEST_API_ AssertionResult IsNotSubstring(const char* needle_expr, - const char* haystack_expr, - const char* needle, - const char* haystack); -GTEST_API_ AssertionResult IsNotSubstring(const char* needle_expr, - const char* haystack_expr, - const wchar_t* needle, - const wchar_t* haystack); -GTEST_API_ AssertionResult IsSubstring(const char* needle_expr, - const char* haystack_expr, - const ::std::string& needle, - const ::std::string& haystack); -GTEST_API_ AssertionResult IsNotSubstring(const char* needle_expr, - const char* haystack_expr, - const ::std::string& needle, - const ::std::string& haystack); - -#if GTEST_HAS_STD_WSTRING -GTEST_API_ AssertionResult IsSubstring(const char* needle_expr, - const char* haystack_expr, - const ::std::wstring& needle, - const ::std::wstring& haystack); -GTEST_API_ AssertionResult IsNotSubstring(const char* needle_expr, - const char* haystack_expr, - const ::std::wstring& needle, - const ::std::wstring& haystack); -#endif // GTEST_HAS_STD_WSTRING - -namespace internal { - -// Helper template function for comparing floating-points. -// -// Template parameter: -// -// RawType: the raw floating-point type (either float or double) -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -template -AssertionResult CmpHelperFloatingPointEQ(const char* lhs_expression, - const char* rhs_expression, - RawType lhs_value, RawType rhs_value) { - const FloatingPoint lhs(lhs_value), rhs(rhs_value); - - if (lhs.AlmostEquals(rhs)) { - return AssertionSuccess(); - } - - ::std::stringstream lhs_ss; - lhs_ss << std::setprecision(std::numeric_limits::digits10 + 2) - << lhs_value; - - ::std::stringstream rhs_ss; - rhs_ss << std::setprecision(std::numeric_limits::digits10 + 2) - << rhs_value; - - return EqFailure(lhs_expression, rhs_expression, - StringStreamToString(&lhs_ss), StringStreamToString(&rhs_ss), - false); -} - -// Helper function for implementing ASSERT_NEAR. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult DoubleNearPredFormat(const char* expr1, - const char* expr2, - const char* abs_error_expr, - double val1, double val2, - double abs_error); - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// A class that enables one to stream messages to assertion macros -class GTEST_API_ AssertHelper { - public: - // Constructor. - AssertHelper(TestPartResult::Type type, const char* file, int line, - const char* message); - ~AssertHelper(); - - // Message assignment is a semantic trick to enable assertion - // streaming; see the GTEST_MESSAGE_ macro below. - void operator=(const Message& message) const; - - private: - // We put our data in a struct so that the size of the AssertHelper class can - // be as small as possible. This is important because gcc is incapable of - // re-using stack space even for temporary variables, so every EXPECT_EQ - // reserves stack space for another AssertHelper. - struct AssertHelperData { - AssertHelperData(TestPartResult::Type t, const char* srcfile, int line_num, - const char* msg) - : type(t), file(srcfile), line(line_num), message(msg) {} - - TestPartResult::Type const type; - const char* const file; - int const line; - std::string const message; - - private: - AssertHelperData(const AssertHelperData&) = delete; - AssertHelperData& operator=(const AssertHelperData&) = delete; - }; - - AssertHelperData* const data_; - - AssertHelper(const AssertHelper&) = delete; - AssertHelper& operator=(const AssertHelper&) = delete; -}; - -} // namespace internal - -// The pure interface class that all value-parameterized tests inherit from. -// A value-parameterized class must inherit from both ::testing::Test and -// ::testing::WithParamInterface. In most cases that just means inheriting -// from ::testing::TestWithParam, but more complicated test hierarchies -// may need to inherit from Test and WithParamInterface at different levels. -// -// This interface has support for accessing the test parameter value via -// the GetParam() method. -// -// Use it with one of the parameter generator defining functions, like Range(), -// Values(), ValuesIn(), Bool(), and Combine(). -// -// class FooTest : public ::testing::TestWithParam { -// protected: -// FooTest() { -// // Can use GetParam() here. -// } -// ~FooTest() override { -// // Can use GetParam() here. -// } -// void SetUp() override { -// // Can use GetParam() here. -// } -// void TearDown override { -// // Can use GetParam() here. -// } -// }; -// TEST_P(FooTest, DoesBar) { -// // Can use GetParam() method here. -// Foo foo; -// ASSERT_TRUE(foo.DoesBar(GetParam())); -// } -// INSTANTIATE_TEST_SUITE_P(OneToTenRange, FooTest, ::testing::Range(1, 10)); - -template -class WithParamInterface { - public: - typedef T ParamType; - virtual ~WithParamInterface() {} - - // The current parameter value. Is also available in the test fixture's - // constructor. - static const ParamType& GetParam() { - GTEST_CHECK_(parameter_ != nullptr) - << "GetParam() can only be called inside a value-parameterized test " - << "-- did you intend to write TEST_P instead of TEST_F?"; - return *parameter_; - } - - private: - // Sets parameter value. The caller is responsible for making sure the value - // remains alive and unchanged throughout the current test. - static void SetParam(const ParamType* parameter) { parameter_ = parameter; } - - // Static value used for accessing parameter during a test lifetime. - static const ParamType* parameter_; - - // TestClass must be a subclass of WithParamInterface and Test. - template - friend class internal::ParameterizedTestFactory; -}; - -template -const T* WithParamInterface::parameter_ = nullptr; - -// Most value-parameterized classes can ignore the existence of -// WithParamInterface, and can just inherit from ::testing::TestWithParam. - -template -class TestWithParam : public Test, public WithParamInterface {}; - -// Macros for indicating success/failure in test code. - -// Skips test in runtime. -// Skipping test aborts current function. -// Skipped tests are neither successful nor failed. -#define GTEST_SKIP() GTEST_SKIP_("") - -// ADD_FAILURE unconditionally adds a failure to the current test. -// SUCCEED generates a success - it doesn't automatically make the -// current test successful, as a test is only successful when it has -// no failure. -// -// EXPECT_* verifies that a certain condition is satisfied. If not, -// it behaves like ADD_FAILURE. In particular: -// -// EXPECT_TRUE verifies that a Boolean condition is true. -// EXPECT_FALSE verifies that a Boolean condition is false. -// -// FAIL and ASSERT_* are similar to ADD_FAILURE and EXPECT_*, except -// that they will also abort the current function on failure. People -// usually want the fail-fast behavior of FAIL and ASSERT_*, but those -// writing data-driven tests often find themselves using ADD_FAILURE -// and EXPECT_* more. - -// Generates a nonfatal failure with a generic message. -#define ADD_FAILURE() GTEST_NONFATAL_FAILURE_("Failed") - -// Generates a nonfatal failure at the given source file location with -// a generic message. -#define ADD_FAILURE_AT(file, line) \ - GTEST_MESSAGE_AT_(file, line, "Failed", \ - ::testing::TestPartResult::kNonFatalFailure) - -// Generates a fatal failure with a generic message. -#define GTEST_FAIL() GTEST_FATAL_FAILURE_("Failed") - -// Like GTEST_FAIL(), but at the given source file location. -#define GTEST_FAIL_AT(file, line) \ - GTEST_MESSAGE_AT_(file, line, "Failed", \ - ::testing::TestPartResult::kFatalFailure) - -// Define this macro to 1 to omit the definition of FAIL(), which is a -// generic name and clashes with some other libraries. -#if !GTEST_DONT_DEFINE_FAIL -#define FAIL() GTEST_FAIL() -#endif - -// Generates a success with a generic message. -#define GTEST_SUCCEED() GTEST_SUCCESS_("Succeeded") - -// Define this macro to 1 to omit the definition of SUCCEED(), which -// is a generic name and clashes with some other libraries. -#if !GTEST_DONT_DEFINE_SUCCEED -#define SUCCEED() GTEST_SUCCEED() -#endif - -// Macros for testing exceptions. -// -// * {ASSERT|EXPECT}_THROW(statement, expected_exception): -// Tests that the statement throws the expected exception. -// * {ASSERT|EXPECT}_NO_THROW(statement): -// Tests that the statement doesn't throw any exception. -// * {ASSERT|EXPECT}_ANY_THROW(statement): -// Tests that the statement throws an exception. - -#define EXPECT_THROW(statement, expected_exception) \ - GTEST_TEST_THROW_(statement, expected_exception, GTEST_NONFATAL_FAILURE_) -#define EXPECT_NO_THROW(statement) \ - GTEST_TEST_NO_THROW_(statement, GTEST_NONFATAL_FAILURE_) -#define EXPECT_ANY_THROW(statement) \ - GTEST_TEST_ANY_THROW_(statement, GTEST_NONFATAL_FAILURE_) -#define ASSERT_THROW(statement, expected_exception) \ - GTEST_TEST_THROW_(statement, expected_exception, GTEST_FATAL_FAILURE_) -#define ASSERT_NO_THROW(statement) \ - GTEST_TEST_NO_THROW_(statement, GTEST_FATAL_FAILURE_) -#define ASSERT_ANY_THROW(statement) \ - GTEST_TEST_ANY_THROW_(statement, GTEST_FATAL_FAILURE_) - -// Boolean assertions. Condition can be either a Boolean expression or an -// AssertionResult. For more information on how to use AssertionResult with -// these macros see comments on that class. -#define GTEST_EXPECT_TRUE(condition) \ - GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \ - GTEST_NONFATAL_FAILURE_) -#define GTEST_EXPECT_FALSE(condition) \ - GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \ - GTEST_NONFATAL_FAILURE_) -#define GTEST_ASSERT_TRUE(condition) \ - GTEST_TEST_BOOLEAN_(condition, #condition, false, true, GTEST_FATAL_FAILURE_) -#define GTEST_ASSERT_FALSE(condition) \ - GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \ - GTEST_FATAL_FAILURE_) - -// Define these macros to 1 to omit the definition of the corresponding -// EXPECT or ASSERT, which clashes with some users' own code. - -#if !GTEST_DONT_DEFINE_EXPECT_TRUE -#define EXPECT_TRUE(condition) GTEST_EXPECT_TRUE(condition) -#endif - -#if !GTEST_DONT_DEFINE_EXPECT_FALSE -#define EXPECT_FALSE(condition) GTEST_EXPECT_FALSE(condition) -#endif - -#if !GTEST_DONT_DEFINE_ASSERT_TRUE -#define ASSERT_TRUE(condition) GTEST_ASSERT_TRUE(condition) -#endif - -#if !GTEST_DONT_DEFINE_ASSERT_FALSE -#define ASSERT_FALSE(condition) GTEST_ASSERT_FALSE(condition) -#endif - -// Macros for testing equalities and inequalities. -// -// * {ASSERT|EXPECT}_EQ(v1, v2): Tests that v1 == v2 -// * {ASSERT|EXPECT}_NE(v1, v2): Tests that v1 != v2 -// * {ASSERT|EXPECT}_LT(v1, v2): Tests that v1 < v2 -// * {ASSERT|EXPECT}_LE(v1, v2): Tests that v1 <= v2 -// * {ASSERT|EXPECT}_GT(v1, v2): Tests that v1 > v2 -// * {ASSERT|EXPECT}_GE(v1, v2): Tests that v1 >= v2 -// -// When they are not, Google Test prints both the tested expressions and -// their actual values. The values must be compatible built-in types, -// or you will get a compiler error. By "compatible" we mean that the -// values can be compared by the respective operator. -// -// Note: -// -// 1. It is possible to make a user-defined type work with -// {ASSERT|EXPECT}_??(), but that requires overloading the -// comparison operators and is thus discouraged by the Google C++ -// Usage Guide. Therefore, you are advised to use the -// {ASSERT|EXPECT}_TRUE() macro to assert that two objects are -// equal. -// -// 2. The {ASSERT|EXPECT}_??() macros do pointer comparisons on -// pointers (in particular, C strings). Therefore, if you use it -// with two C strings, you are testing how their locations in memory -// are related, not how their content is related. To compare two C -// strings by content, use {ASSERT|EXPECT}_STR*(). -// -// 3. {ASSERT|EXPECT}_EQ(v1, v2) is preferred to -// {ASSERT|EXPECT}_TRUE(v1 == v2), as the former tells you -// what the actual value is when it fails, and similarly for the -// other comparisons. -// -// 4. Do not depend on the order in which {ASSERT|EXPECT}_??() -// evaluate their arguments, which is undefined. -// -// 5. These macros evaluate their arguments exactly once. -// -// Examples: -// -// EXPECT_NE(Foo(), 5); -// EXPECT_EQ(a_pointer, NULL); -// ASSERT_LT(i, array_size); -// ASSERT_GT(records.size(), 0) << "There is no record left."; - -#define EXPECT_EQ(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2) -#define EXPECT_NE(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperNE, val1, val2) -#define EXPECT_LE(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperLE, val1, val2) -#define EXPECT_LT(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperLT, val1, val2) -#define EXPECT_GE(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGE, val1, val2) -#define EXPECT_GT(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2) - -#define GTEST_ASSERT_EQ(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2) -#define GTEST_ASSERT_NE(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperNE, val1, val2) -#define GTEST_ASSERT_LE(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperLE, val1, val2) -#define GTEST_ASSERT_LT(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperLT, val1, val2) -#define GTEST_ASSERT_GE(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperGE, val1, val2) -#define GTEST_ASSERT_GT(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2) - -// Define macro GTEST_DONT_DEFINE_ASSERT_XY to 1 to omit the definition of -// ASSERT_XY(), which clashes with some users' own code. - -#if !GTEST_DONT_DEFINE_ASSERT_EQ -#define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2) -#endif - -#if !GTEST_DONT_DEFINE_ASSERT_NE -#define ASSERT_NE(val1, val2) GTEST_ASSERT_NE(val1, val2) -#endif - -#if !GTEST_DONT_DEFINE_ASSERT_LE -#define ASSERT_LE(val1, val2) GTEST_ASSERT_LE(val1, val2) -#endif - -#if !GTEST_DONT_DEFINE_ASSERT_LT -#define ASSERT_LT(val1, val2) GTEST_ASSERT_LT(val1, val2) -#endif - -#if !GTEST_DONT_DEFINE_ASSERT_GE -#define ASSERT_GE(val1, val2) GTEST_ASSERT_GE(val1, val2) -#endif - -#if !GTEST_DONT_DEFINE_ASSERT_GT -#define ASSERT_GT(val1, val2) GTEST_ASSERT_GT(val1, val2) -#endif - -// C-string Comparisons. All tests treat NULL and any non-NULL string -// as different. Two NULLs are equal. -// -// * {ASSERT|EXPECT}_STREQ(s1, s2): Tests that s1 == s2 -// * {ASSERT|EXPECT}_STRNE(s1, s2): Tests that s1 != s2 -// * {ASSERT|EXPECT}_STRCASEEQ(s1, s2): Tests that s1 == s2, ignoring case -// * {ASSERT|EXPECT}_STRCASENE(s1, s2): Tests that s1 != s2, ignoring case -// -// For wide or narrow string objects, you can use the -// {ASSERT|EXPECT}_??() macros. -// -// Don't depend on the order in which the arguments are evaluated, -// which is undefined. -// -// These macros evaluate their arguments exactly once. - -#define EXPECT_STREQ(s1, s2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTREQ, s1, s2) -#define EXPECT_STRNE(s1, s2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2) -#define EXPECT_STRCASEEQ(s1, s2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, s1, s2) -#define EXPECT_STRCASENE(s1, s2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2) - -#define ASSERT_STREQ(s1, s2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTREQ, s1, s2) -#define ASSERT_STRNE(s1, s2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2) -#define ASSERT_STRCASEEQ(s1, s2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, s1, s2) -#define ASSERT_STRCASENE(s1, s2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2) - -// Macros for comparing floating-point numbers. -// -// * {ASSERT|EXPECT}_FLOAT_EQ(val1, val2): -// Tests that two float values are almost equal. -// * {ASSERT|EXPECT}_DOUBLE_EQ(val1, val2): -// Tests that two double values are almost equal. -// * {ASSERT|EXPECT}_NEAR(v1, v2, abs_error): -// Tests that v1 and v2 are within the given distance to each other. -// -// Google Test uses ULP-based comparison to automatically pick a default -// error bound that is appropriate for the operands. See the -// FloatingPoint template class in gtest-internal.h if you are -// interested in the implementation details. - -#define EXPECT_FLOAT_EQ(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ, \ - val1, val2) - -#define EXPECT_DOUBLE_EQ(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ, \ - val1, val2) - -#define ASSERT_FLOAT_EQ(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ, \ - val1, val2) - -#define ASSERT_DOUBLE_EQ(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ, \ - val1, val2) - -#define EXPECT_NEAR(val1, val2, abs_error) \ - EXPECT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, val1, val2, \ - abs_error) - -#define ASSERT_NEAR(val1, val2, abs_error) \ - ASSERT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, val1, val2, \ - abs_error) - -// These predicate format functions work on floating-point values, and -// can be used in {ASSERT|EXPECT}_PRED_FORMAT2*(), e.g. -// -// EXPECT_PRED_FORMAT2(testing::DoubleLE, Foo(), 5.0); - -// Asserts that val1 is less than, or almost equal to, val2. Fails -// otherwise. In particular, it fails if either val1 or val2 is NaN. -GTEST_API_ AssertionResult FloatLE(const char* expr1, const char* expr2, - float val1, float val2); -GTEST_API_ AssertionResult DoubleLE(const char* expr1, const char* expr2, - double val1, double val2); - -#if GTEST_OS_WINDOWS - -// Macros that test for HRESULT failure and success, these are only useful -// on Windows, and rely on Windows SDK macros and APIs to compile. -// -// * {ASSERT|EXPECT}_HRESULT_{SUCCEEDED|FAILED}(expr) -// -// When expr unexpectedly fails or succeeds, Google Test prints the -// expected result and the actual result with both a human-readable -// string representation of the error, if available, as well as the -// hex result code. -#define EXPECT_HRESULT_SUCCEEDED(expr) \ - EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr)) - -#define ASSERT_HRESULT_SUCCEEDED(expr) \ - ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr)) - -#define EXPECT_HRESULT_FAILED(expr) \ - EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr)) - -#define ASSERT_HRESULT_FAILED(expr) \ - ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr)) - -#endif // GTEST_OS_WINDOWS - -// Macros that execute statement and check that it doesn't generate new fatal -// failures in the current thread. -// -// * {ASSERT|EXPECT}_NO_FATAL_FAILURE(statement); -// -// Examples: -// -// EXPECT_NO_FATAL_FAILURE(Process()); -// ASSERT_NO_FATAL_FAILURE(Process()) << "Process() failed"; -// -#define ASSERT_NO_FATAL_FAILURE(statement) \ - GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_FATAL_FAILURE_) -#define EXPECT_NO_FATAL_FAILURE(statement) \ - GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_NONFATAL_FAILURE_) - -// Causes a trace (including the given source file path and line number, -// and the given message) to be included in every test failure message generated -// by code in the scope of the lifetime of an instance of this class. The effect -// is undone with the destruction of the instance. -// -// The message argument can be anything streamable to std::ostream. -// -// Example: -// testing::ScopedTrace trace("file.cc", 123, "message"); -// -class GTEST_API_ ScopedTrace { - public: - // The c'tor pushes the given source file location and message onto - // a trace stack maintained by Google Test. - - // Template version. Uses Message() to convert the values into strings. - // Slow, but flexible. - template - ScopedTrace(const char* file, int line, const T& message) { - PushTrace(file, line, (Message() << message).GetString()); - } - - // Optimize for some known types. - ScopedTrace(const char* file, int line, const char* message) { - PushTrace(file, line, message ? message : "(null)"); - } - - ScopedTrace(const char* file, int line, const std::string& message) { - PushTrace(file, line, message); - } - - // The d'tor pops the info pushed by the c'tor. - // - // Note that the d'tor is not virtual in order to be efficient. - // Don't inherit from ScopedTrace! - ~ScopedTrace(); - - private: - void PushTrace(const char* file, int line, std::string message); - - ScopedTrace(const ScopedTrace&) = delete; - ScopedTrace& operator=(const ScopedTrace&) = delete; -} GTEST_ATTRIBUTE_UNUSED_; // A ScopedTrace object does its job in its - // c'tor and d'tor. Therefore it doesn't - // need to be used otherwise. - -// Causes a trace (including the source file path, the current line -// number, and the given message) to be included in every test failure -// message generated by code in the current scope. The effect is -// undone when the control leaves the current scope. -// -// The message argument can be anything streamable to std::ostream. -// -// In the implementation, we include the current line number as part -// of the dummy variable name, thus allowing multiple SCOPED_TRACE()s -// to appear in the same block - as long as they are on different -// lines. -// -// Assuming that each thread maintains its own stack of traces. -// Therefore, a SCOPED_TRACE() would (correctly) only affect the -// assertions in its own thread. -#define SCOPED_TRACE(message) \ - ::testing::ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)( \ - __FILE__, __LINE__, (message)) - -// Compile-time assertion for type equality. -// StaticAssertTypeEq() compiles if and only if type1 and type2 -// are the same type. The value it returns is not interesting. -// -// Instead of making StaticAssertTypeEq a class template, we make it a -// function template that invokes a helper class template. This -// prevents a user from misusing StaticAssertTypeEq by -// defining objects of that type. -// -// CAVEAT: -// -// When used inside a method of a class template, -// StaticAssertTypeEq() is effective ONLY IF the method is -// instantiated. For example, given: -// -// template class Foo { -// public: -// void Bar() { testing::StaticAssertTypeEq(); } -// }; -// -// the code: -// -// void Test1() { Foo foo; } -// -// will NOT generate a compiler error, as Foo::Bar() is never -// actually instantiated. Instead, you need: -// -// void Test2() { Foo foo; foo.Bar(); } -// -// to cause a compiler error. -template -constexpr bool StaticAssertTypeEq() noexcept { - static_assert(std::is_same::value, "T1 and T2 are not the same type"); - return true; -} - -// Defines a test. -// -// The first parameter is the name of the test suite, and the second -// parameter is the name of the test within the test suite. -// -// The convention is to end the test suite name with "Test". For -// example, a test suite for the Foo class can be named FooTest. -// -// Test code should appear between braces after an invocation of -// this macro. Example: -// -// TEST(FooTest, InitializesCorrectly) { -// Foo foo; -// EXPECT_TRUE(foo.StatusIsOK()); -// } - -// Note that we call GetTestTypeId() instead of GetTypeId< -// ::testing::Test>() here to get the type ID of testing::Test. This -// is to work around a suspected linker bug when using Google Test as -// a framework on Mac OS X. The bug causes GetTypeId< -// ::testing::Test>() to return different values depending on whether -// the call is from the Google Test framework itself or from user test -// code. GetTestTypeId() is guaranteed to always return the same -// value, as it always calls GetTypeId<>() from the Google Test -// framework. -#define GTEST_TEST(test_suite_name, test_name) \ - GTEST_TEST_(test_suite_name, test_name, ::testing::Test, \ - ::testing::internal::GetTestTypeId()) - -// Define this macro to 1 to omit the definition of TEST(), which -// is a generic name and clashes with some other libraries. -#if !GTEST_DONT_DEFINE_TEST -#define TEST(test_suite_name, test_name) GTEST_TEST(test_suite_name, test_name) -#endif - -// Defines a test that uses a test fixture. -// -// The first parameter is the name of the test fixture class, which -// also doubles as the test suite name. The second parameter is the -// name of the test within the test suite. -// -// A test fixture class must be declared earlier. The user should put -// the test code between braces after using this macro. Example: -// -// class FooTest : public testing::Test { -// protected: -// void SetUp() override { b_.AddElement(3); } -// -// Foo a_; -// Foo b_; -// }; -// -// TEST_F(FooTest, InitializesCorrectly) { -// EXPECT_TRUE(a_.StatusIsOK()); -// } -// -// TEST_F(FooTest, ReturnsElementCountCorrectly) { -// EXPECT_EQ(a_.size(), 0); -// EXPECT_EQ(b_.size(), 1); -// } -#define GTEST_TEST_F(test_fixture, test_name) \ - GTEST_TEST_(test_fixture, test_name, test_fixture, \ - ::testing::internal::GetTypeId()) -#if !GTEST_DONT_DEFINE_TEST_F -#define TEST_F(test_fixture, test_name) GTEST_TEST_F(test_fixture, test_name) -#endif - -// Returns a path to temporary directory. -// Tries to determine an appropriate directory for the platform. -GTEST_API_ std::string TempDir(); - -#ifdef _MSC_VER -#pragma warning(pop) -#endif - -// Dynamically registers a test with the framework. -// -// This is an advanced API only to be used when the `TEST` macros are -// insufficient. The macros should be preferred when possible, as they avoid -// most of the complexity of calling this function. -// -// The `factory` argument is a factory callable (move-constructible) object or -// function pointer that creates a new instance of the Test object. It -// handles ownership to the caller. The signature of the callable is -// `Fixture*()`, where `Fixture` is the test fixture class for the test. All -// tests registered with the same `test_suite_name` must return the same -// fixture type. This is checked at runtime. -// -// The framework will infer the fixture class from the factory and will call -// the `SetUpTestSuite` and `TearDownTestSuite` for it. -// -// Must be called before `RUN_ALL_TESTS()` is invoked, otherwise behavior is -// undefined. -// -// Use case example: -// -// class MyFixture : public ::testing::Test { -// public: -// // All of these optional, just like in regular macro usage. -// static void SetUpTestSuite() { ... } -// static void TearDownTestSuite() { ... } -// void SetUp() override { ... } -// void TearDown() override { ... } -// }; -// -// class MyTest : public MyFixture { -// public: -// explicit MyTest(int data) : data_(data) {} -// void TestBody() override { ... } -// -// private: -// int data_; -// }; -// -// void RegisterMyTests(const std::vector& values) { -// for (int v : values) { -// ::testing::RegisterTest( -// "MyFixture", ("Test" + std::to_string(v)).c_str(), nullptr, -// std::to_string(v).c_str(), -// __FILE__, __LINE__, -// // Important to use the fixture type as the return type here. -// [=]() -> MyFixture* { return new MyTest(v); }); -// } -// } -// ... -// int main(int argc, char** argv) { -// ::testing::InitGoogleTest(&argc, argv); -// std::vector values_to_test = LoadValuesFromConfig(); -// RegisterMyTests(values_to_test); -// ... -// return RUN_ALL_TESTS(); -// } -// -template -TestInfo* RegisterTest(const char* test_suite_name, const char* test_name, - const char* type_param, const char* value_param, - const char* file, int line, Factory factory) { - using TestT = typename std::remove_pointer::type; - - class FactoryImpl : public internal::TestFactoryBase { - public: - explicit FactoryImpl(Factory f) : factory_(std::move(f)) {} - Test* CreateTest() override { return factory_(); } - - private: - Factory factory_; - }; - - return internal::MakeAndRegisterTestInfo( - test_suite_name, test_name, type_param, value_param, - internal::CodeLocation(file, line), internal::GetTypeId(), - internal::SuiteApiResolver::GetSetUpCaseOrSuite(file, line), - internal::SuiteApiResolver::GetTearDownCaseOrSuite(file, line), - new FactoryImpl{std::move(factory)}); -} - -} // namespace testing - -// Use this function in main() to run all tests. It returns 0 if all -// tests are successful, or 1 otherwise. -// -// RUN_ALL_TESTS() should be invoked after the command line has been -// parsed by InitGoogleTest(). -// -// This function was formerly a macro; thus, it is in the global -// namespace and has an all-caps name. -int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_; - -inline int RUN_ALL_TESTS() { return ::testing::UnitTest::GetInstance()->Run(); } - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -#endif // GOOGLETEST_INCLUDE_GTEST_GTEST_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/gtest_pred_impl.h b/libs/cpp-httplib/test/gtest/include/gtest/gtest_pred_impl.h deleted file mode 100644 index 47a24aa..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/gtest_pred_impl.h +++ /dev/null @@ -1,279 +0,0 @@ -// Copyright 2006, 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. -// -// Implements a family of generic predicate assertion macros. - -// IWYU pragma: private, include "gtest/gtest.h" -// IWYU pragma: friend gtest/.* -// IWYU pragma: friend gmock/.* - -#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_ -#define GOOGLETEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_ - -#include "gtest/gtest-assertion-result.h" -#include "gtest/internal/gtest-internal.h" -#include "gtest/internal/gtest-port.h" - -namespace testing { - -// This header implements a family of generic predicate assertion -// macros: -// -// ASSERT_PRED_FORMAT1(pred_format, v1) -// ASSERT_PRED_FORMAT2(pred_format, v1, v2) -// ... -// -// where pred_format is a function or functor that takes n (in the -// case of ASSERT_PRED_FORMATn) values and their source expression -// text, and returns a testing::AssertionResult. See the definition -// of ASSERT_EQ in gtest.h for an example. -// -// If you don't care about formatting, you can use the more -// restrictive version: -// -// ASSERT_PRED1(pred, v1) -// ASSERT_PRED2(pred, v1, v2) -// ... -// -// where pred is an n-ary function or functor that returns bool, -// and the values v1, v2, ..., must support the << operator for -// streaming to std::ostream. -// -// We also define the EXPECT_* variations. -// -// For now we only support predicates whose arity is at most 5. -// Please email googletestframework@googlegroups.com if you need -// support for higher arities. - -// GTEST_ASSERT_ is the basic statement to which all of the assertions -// in this file reduce. Don't use this in your code. - -#define GTEST_ASSERT_(expression, on_failure) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (const ::testing::AssertionResult gtest_ar = (expression)) \ - ; \ - else \ - on_failure(gtest_ar.failure_message()) - -// Helper function for implementing {EXPECT|ASSERT}_PRED1. Don't use -// this in your code. -template -AssertionResult AssertPred1Helper(const char* pred_text, const char* e1, - Pred pred, const T1& v1) { - if (pred(v1)) return AssertionSuccess(); - - return AssertionFailure() - << pred_text << "(" << e1 << ") evaluates to false, where" - << "\n" - << e1 << " evaluates to " << ::testing::PrintToString(v1); -} - -// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT1. -// Don't use this in your code. -#define GTEST_PRED_FORMAT1_(pred_format, v1, on_failure) \ - GTEST_ASSERT_(pred_format(#v1, v1), on_failure) - -// Internal macro for implementing {EXPECT|ASSERT}_PRED1. Don't use -// this in your code. -#define GTEST_PRED1_(pred, v1, on_failure) \ - GTEST_ASSERT_(::testing::AssertPred1Helper(#pred, #v1, pred, v1), on_failure) - -// Unary predicate assertion macros. -#define EXPECT_PRED_FORMAT1(pred_format, v1) \ - GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_NONFATAL_FAILURE_) -#define EXPECT_PRED1(pred, v1) GTEST_PRED1_(pred, v1, GTEST_NONFATAL_FAILURE_) -#define ASSERT_PRED_FORMAT1(pred_format, v1) \ - GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_) -#define ASSERT_PRED1(pred, v1) GTEST_PRED1_(pred, v1, GTEST_FATAL_FAILURE_) - -// Helper function for implementing {EXPECT|ASSERT}_PRED2. Don't use -// this in your code. -template -AssertionResult AssertPred2Helper(const char* pred_text, const char* e1, - const char* e2, Pred pred, const T1& v1, - const T2& v2) { - if (pred(v1, v2)) return AssertionSuccess(); - - return AssertionFailure() - << pred_text << "(" << e1 << ", " << e2 - << ") evaluates to false, where" - << "\n" - << e1 << " evaluates to " << ::testing::PrintToString(v1) << "\n" - << e2 << " evaluates to " << ::testing::PrintToString(v2); -} - -// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT2. -// Don't use this in your code. -#define GTEST_PRED_FORMAT2_(pred_format, v1, v2, on_failure) \ - GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), on_failure) - -// Internal macro for implementing {EXPECT|ASSERT}_PRED2. Don't use -// this in your code. -#define GTEST_PRED2_(pred, v1, v2, on_failure) \ - GTEST_ASSERT_(::testing::AssertPred2Helper(#pred, #v1, #v2, pred, v1, v2), \ - on_failure) - -// Binary predicate assertion macros. -#define EXPECT_PRED_FORMAT2(pred_format, v1, v2) \ - GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_NONFATAL_FAILURE_) -#define EXPECT_PRED2(pred, v1, v2) \ - GTEST_PRED2_(pred, v1, v2, GTEST_NONFATAL_FAILURE_) -#define ASSERT_PRED_FORMAT2(pred_format, v1, v2) \ - GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_) -#define ASSERT_PRED2(pred, v1, v2) \ - GTEST_PRED2_(pred, v1, v2, GTEST_FATAL_FAILURE_) - -// Helper function for implementing {EXPECT|ASSERT}_PRED3. Don't use -// this in your code. -template -AssertionResult AssertPred3Helper(const char* pred_text, const char* e1, - const char* e2, const char* e3, Pred pred, - const T1& v1, const T2& v2, const T3& v3) { - if (pred(v1, v2, v3)) return AssertionSuccess(); - - return AssertionFailure() - << pred_text << "(" << e1 << ", " << e2 << ", " << e3 - << ") evaluates to false, where" - << "\n" - << e1 << " evaluates to " << ::testing::PrintToString(v1) << "\n" - << e2 << " evaluates to " << ::testing::PrintToString(v2) << "\n" - << e3 << " evaluates to " << ::testing::PrintToString(v3); -} - -// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT3. -// Don't use this in your code. -#define GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, on_failure) \ - GTEST_ASSERT_(pred_format(#v1, #v2, #v3, v1, v2, v3), on_failure) - -// Internal macro for implementing {EXPECT|ASSERT}_PRED3. Don't use -// this in your code. -#define GTEST_PRED3_(pred, v1, v2, v3, on_failure) \ - GTEST_ASSERT_( \ - ::testing::AssertPred3Helper(#pred, #v1, #v2, #v3, pred, v1, v2, v3), \ - on_failure) - -// Ternary predicate assertion macros. -#define EXPECT_PRED_FORMAT3(pred_format, v1, v2, v3) \ - GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, GTEST_NONFATAL_FAILURE_) -#define EXPECT_PRED3(pred, v1, v2, v3) \ - GTEST_PRED3_(pred, v1, v2, v3, GTEST_NONFATAL_FAILURE_) -#define ASSERT_PRED_FORMAT3(pred_format, v1, v2, v3) \ - GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, GTEST_FATAL_FAILURE_) -#define ASSERT_PRED3(pred, v1, v2, v3) \ - GTEST_PRED3_(pred, v1, v2, v3, GTEST_FATAL_FAILURE_) - -// Helper function for implementing {EXPECT|ASSERT}_PRED4. Don't use -// this in your code. -template -AssertionResult AssertPred4Helper(const char* pred_text, const char* e1, - const char* e2, const char* e3, - const char* e4, Pred pred, const T1& v1, - const T2& v2, const T3& v3, const T4& v4) { - if (pred(v1, v2, v3, v4)) return AssertionSuccess(); - - return AssertionFailure() - << pred_text << "(" << e1 << ", " << e2 << ", " << e3 << ", " << e4 - << ") evaluates to false, where" - << "\n" - << e1 << " evaluates to " << ::testing::PrintToString(v1) << "\n" - << e2 << " evaluates to " << ::testing::PrintToString(v2) << "\n" - << e3 << " evaluates to " << ::testing::PrintToString(v3) << "\n" - << e4 << " evaluates to " << ::testing::PrintToString(v4); -} - -// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT4. -// Don't use this in your code. -#define GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, on_failure) \ - GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, v1, v2, v3, v4), on_failure) - -// Internal macro for implementing {EXPECT|ASSERT}_PRED4. Don't use -// this in your code. -#define GTEST_PRED4_(pred, v1, v2, v3, v4, on_failure) \ - GTEST_ASSERT_(::testing::AssertPred4Helper(#pred, #v1, #v2, #v3, #v4, pred, \ - v1, v2, v3, v4), \ - on_failure) - -// 4-ary predicate assertion macros. -#define EXPECT_PRED_FORMAT4(pred_format, v1, v2, v3, v4) \ - GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, GTEST_NONFATAL_FAILURE_) -#define EXPECT_PRED4(pred, v1, v2, v3, v4) \ - GTEST_PRED4_(pred, v1, v2, v3, v4, GTEST_NONFATAL_FAILURE_) -#define ASSERT_PRED_FORMAT4(pred_format, v1, v2, v3, v4) \ - GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, GTEST_FATAL_FAILURE_) -#define ASSERT_PRED4(pred, v1, v2, v3, v4) \ - GTEST_PRED4_(pred, v1, v2, v3, v4, GTEST_FATAL_FAILURE_) - -// Helper function for implementing {EXPECT|ASSERT}_PRED5. Don't use -// this in your code. -template -AssertionResult AssertPred5Helper(const char* pred_text, const char* e1, - const char* e2, const char* e3, - const char* e4, const char* e5, Pred pred, - const T1& v1, const T2& v2, const T3& v3, - const T4& v4, const T5& v5) { - if (pred(v1, v2, v3, v4, v5)) return AssertionSuccess(); - - return AssertionFailure() - << pred_text << "(" << e1 << ", " << e2 << ", " << e3 << ", " << e4 - << ", " << e5 << ") evaluates to false, where" - << "\n" - << e1 << " evaluates to " << ::testing::PrintToString(v1) << "\n" - << e2 << " evaluates to " << ::testing::PrintToString(v2) << "\n" - << e3 << " evaluates to " << ::testing::PrintToString(v3) << "\n" - << e4 << " evaluates to " << ::testing::PrintToString(v4) << "\n" - << e5 << " evaluates to " << ::testing::PrintToString(v5); -} - -// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT5. -// Don't use this in your code. -#define GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, on_failure) \ - GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, #v5, v1, v2, v3, v4, v5), \ - on_failure) - -// Internal macro for implementing {EXPECT|ASSERT}_PRED5. Don't use -// this in your code. -#define GTEST_PRED5_(pred, v1, v2, v3, v4, v5, on_failure) \ - GTEST_ASSERT_(::testing::AssertPred5Helper(#pred, #v1, #v2, #v3, #v4, #v5, \ - pred, v1, v2, v3, v4, v5), \ - on_failure) - -// 5-ary predicate assertion macros. -#define EXPECT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5) \ - GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, GTEST_NONFATAL_FAILURE_) -#define EXPECT_PRED5(pred, v1, v2, v3, v4, v5) \ - GTEST_PRED5_(pred, v1, v2, v3, v4, v5, GTEST_NONFATAL_FAILURE_) -#define ASSERT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5) \ - GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, GTEST_FATAL_FAILURE_) -#define ASSERT_PRED5(pred, v1, v2, v3, v4, v5) \ - GTEST_PRED5_(pred, v1, v2, v3, v4, v5, GTEST_FATAL_FAILURE_) - -} // namespace testing - -#endif // GOOGLETEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/gtest_prod.h b/libs/cpp-httplib/test/gtest/include/gtest/gtest_prod.h deleted file mode 100644 index 1f37dc3..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/gtest_prod.h +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2006, 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. - -// Google C++ Testing and Mocking Framework definitions useful in production -// code. - -#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_PROD_H_ -#define GOOGLETEST_INCLUDE_GTEST_GTEST_PROD_H_ - -// When you need to test the private or protected members of a class, -// use the FRIEND_TEST macro to declare your tests as friends of the -// class. For example: -// -// class MyClass { -// private: -// void PrivateMethod(); -// FRIEND_TEST(MyClassTest, PrivateMethodWorks); -// }; -// -// class MyClassTest : public testing::Test { -// // ... -// }; -// -// TEST_F(MyClassTest, PrivateMethodWorks) { -// // Can call MyClass::PrivateMethod() here. -// } -// -// Note: The test class must be in the same namespace as the class being tested. -// For example, putting MyClassTest in an anonymous namespace will not work. - -#define FRIEND_TEST(test_case_name, test_name) \ - friend class test_case_name##_##test_name##_Test - -#endif // GOOGLETEST_INCLUDE_GTEST_GTEST_PROD_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/internal/custom/README.md b/libs/cpp-httplib/test/gtest/include/gtest/internal/custom/README.md deleted file mode 100644 index cb49e2c..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/internal/custom/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# Customization Points - -The custom directory is an injection point for custom user configurations. - -## Header `gtest.h` - -### The following macros can be defined: - -* `GTEST_OS_STACK_TRACE_GETTER_` - The name of an implementation of - `OsStackTraceGetterInterface`. -* `GTEST_CUSTOM_TEMPDIR_FUNCTION_` - An override for `testing::TempDir()`. See - `testing::TempDir` for semantics and signature. - -## Header `gtest-port.h` - -The following macros can be defined: - -### Logging: - -* `GTEST_LOG_(severity)` -* `GTEST_CHECK_(condition)` -* Functions `LogToStderr()` and `FlushInfoLog()` have to be provided too. - -### Threading: - -* `GTEST_HAS_NOTIFICATION_` - Enabled if Notification is already provided. -* `GTEST_HAS_MUTEX_AND_THREAD_LOCAL_` - Enabled if `Mutex` and `ThreadLocal` - are already provided. Must also provide `GTEST_DECLARE_STATIC_MUTEX_(mutex)` - and `GTEST_DEFINE_STATIC_MUTEX_(mutex)` -* `GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)` -* `GTEST_LOCK_EXCLUDED_(locks)` - -### Underlying library support features - -* `GTEST_HAS_CXXABI_H_` - -### Exporting API symbols: - -* `GTEST_API_` - Specifier for exported symbols. - -## Header `gtest-printers.h` - -* See documentation at `gtest/gtest-printers.h` for details on how to define a - custom printer. diff --git a/libs/cpp-httplib/test/gtest/include/gtest/internal/custom/gtest-port.h b/libs/cpp-httplib/test/gtest/include/gtest/internal/custom/gtest-port.h deleted file mode 100644 index db02881..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/internal/custom/gtest-port.h +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2015, 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. -// -// Injection point for custom user configurations. See README for details -// -// ** Custom implementation starts here ** - -#ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_ -#define GOOGLETEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_ - -#endif // GOOGLETEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/internal/custom/gtest-printers.h b/libs/cpp-httplib/test/gtest/include/gtest/internal/custom/gtest-printers.h deleted file mode 100644 index b9495d8..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/internal/custom/gtest-printers.h +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2015, 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. -// -// This file provides an injection point for custom printers in a local -// installation of gTest. -// It will be included from gtest-printers.h and the overrides in this file -// will be visible to everyone. -// -// Injection point for custom user configurations. See README for details -// -// ** Custom implementation starts here ** - -#ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PRINTERS_H_ -#define GOOGLETEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PRINTERS_H_ - -#endif // GOOGLETEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PRINTERS_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/internal/custom/gtest.h b/libs/cpp-httplib/test/gtest/include/gtest/internal/custom/gtest.h deleted file mode 100644 index afaaf17..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/internal/custom/gtest.h +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2015, 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. -// -// Injection point for custom user configurations. See README for details -// -// ** Custom implementation starts here ** - -#ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_H_ -#define GOOGLETEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_H_ - -#endif // GOOGLETEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-death-test-internal.h b/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-death-test-internal.h deleted file mode 100644 index 45580ae..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-death-test-internal.h +++ /dev/null @@ -1,306 +0,0 @@ -// Copyright 2005, 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. - -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file defines internal utilities needed for implementing -// death tests. They are subject to change without notice. - -// IWYU pragma: private, include "gtest/gtest.h" -// IWYU pragma: friend gtest/.* -// IWYU pragma: friend gmock/.* - -#ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_ -#define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_ - -#include - -#include - -#include "gtest/gtest-matchers.h" -#include "gtest/internal/gtest-internal.h" - -GTEST_DECLARE_string_(internal_run_death_test); - -namespace testing { -namespace internal { - -// Names of the flags (needed for parsing Google Test flags). -const char kDeathTestStyleFlag[] = "death_test_style"; -const char kDeathTestUseFork[] = "death_test_use_fork"; -const char kInternalRunDeathTestFlag[] = "internal_run_death_test"; - -#if GTEST_HAS_DEATH_TEST - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -// DeathTest is a class that hides much of the complexity of the -// GTEST_DEATH_TEST_ macro. It is abstract; its static Create method -// returns a concrete class that depends on the prevailing death test -// style, as defined by the --gtest_death_test_style and/or -// --gtest_internal_run_death_test flags. - -// In describing the results of death tests, these terms are used with -// the corresponding definitions: -// -// exit status: The integer exit information in the format specified -// by wait(2) -// exit code: The integer code passed to exit(3), _exit(2), or -// returned from main() -class GTEST_API_ DeathTest { - public: - // Create returns false if there was an error determining the - // appropriate action to take for the current death test; for example, - // if the gtest_death_test_style flag is set to an invalid value. - // The LastMessage method will return a more detailed message in that - // case. Otherwise, the DeathTest pointer pointed to by the "test" - // argument is set. If the death test should be skipped, the pointer - // is set to NULL; otherwise, it is set to the address of a new concrete - // DeathTest object that controls the execution of the current test. - static bool Create(const char* statement, Matcher matcher, - const char* file, int line, DeathTest** test); - DeathTest(); - virtual ~DeathTest() {} - - // A helper class that aborts a death test when it's deleted. - class ReturnSentinel { - public: - explicit ReturnSentinel(DeathTest* test) : test_(test) {} - ~ReturnSentinel() { test_->Abort(TEST_ENCOUNTERED_RETURN_STATEMENT); } - - private: - DeathTest* const test_; - ReturnSentinel(const ReturnSentinel&) = delete; - ReturnSentinel& operator=(const ReturnSentinel&) = delete; - } GTEST_ATTRIBUTE_UNUSED_; - - // An enumeration of possible roles that may be taken when a death - // test is encountered. EXECUTE means that the death test logic should - // be executed immediately. OVERSEE means that the program should prepare - // the appropriate environment for a child process to execute the death - // test, then wait for it to complete. - enum TestRole { OVERSEE_TEST, EXECUTE_TEST }; - - // An enumeration of the three reasons that a test might be aborted. - enum AbortReason { - TEST_ENCOUNTERED_RETURN_STATEMENT, - TEST_THREW_EXCEPTION, - TEST_DID_NOT_DIE - }; - - // Assumes one of the above roles. - virtual TestRole AssumeRole() = 0; - - // Waits for the death test to finish and returns its status. - virtual int Wait() = 0; - - // Returns true if the death test passed; that is, the test process - // exited during the test, its exit status matches a user-supplied - // predicate, and its stderr output matches a user-supplied regular - // expression. - // The user-supplied predicate may be a macro expression rather - // than a function pointer or functor, or else Wait and Passed could - // be combined. - virtual bool Passed(bool exit_status_ok) = 0; - - // Signals that the death test did not die as expected. - virtual void Abort(AbortReason reason) = 0; - - // Returns a human-readable outcome message regarding the outcome of - // the last death test. - static const char* LastMessage(); - - static void set_last_death_test_message(const std::string& message); - - private: - // A string containing a description of the outcome of the last death test. - static std::string last_death_test_message_; - - DeathTest(const DeathTest&) = delete; - DeathTest& operator=(const DeathTest&) = delete; -}; - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -// Factory interface for death tests. May be mocked out for testing. -class DeathTestFactory { - public: - virtual ~DeathTestFactory() {} - virtual bool Create(const char* statement, - Matcher matcher, const char* file, - int line, DeathTest** test) = 0; -}; - -// A concrete DeathTestFactory implementation for normal use. -class DefaultDeathTestFactory : public DeathTestFactory { - public: - bool Create(const char* statement, Matcher matcher, - const char* file, int line, DeathTest** test) override; -}; - -// Returns true if exit_status describes a process that was terminated -// by a signal, or exited normally with a nonzero exit code. -GTEST_API_ bool ExitedUnsuccessfully(int exit_status); - -// A string passed to EXPECT_DEATH (etc.) is caught by one of these overloads -// and interpreted as a regex (rather than an Eq matcher) for legacy -// compatibility. -inline Matcher MakeDeathTestMatcher( - ::testing::internal::RE regex) { - return ContainsRegex(regex.pattern()); -} -inline Matcher MakeDeathTestMatcher(const char* regex) { - return ContainsRegex(regex); -} -inline Matcher MakeDeathTestMatcher( - const ::std::string& regex) { - return ContainsRegex(regex); -} - -// If a Matcher is passed to EXPECT_DEATH (etc.), it's -// used directly. -inline Matcher MakeDeathTestMatcher( - Matcher matcher) { - return matcher; -} - -// Traps C++ exceptions escaping statement and reports them as test -// failures. Note that trapping SEH exceptions is not implemented here. -#if GTEST_HAS_EXCEPTIONS -#define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \ - try { \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - } catch (const ::std::exception& gtest_exception) { \ - fprintf( \ - stderr, \ - "\n%s: Caught std::exception-derived exception escaping the " \ - "death test statement. Exception message: %s\n", \ - ::testing::internal::FormatFileLocation(__FILE__, __LINE__).c_str(), \ - gtest_exception.what()); \ - fflush(stderr); \ - death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \ - } catch (...) { \ - death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \ - } - -#else -#define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) - -#endif - -// This macro is for implementing ASSERT_DEATH*, EXPECT_DEATH*, -// ASSERT_EXIT*, and EXPECT_EXIT*. -#define GTEST_DEATH_TEST_(statement, predicate, regex_or_matcher, fail) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::AlwaysTrue()) { \ - ::testing::internal::DeathTest* gtest_dt; \ - if (!::testing::internal::DeathTest::Create( \ - #statement, \ - ::testing::internal::MakeDeathTestMatcher(regex_or_matcher), \ - __FILE__, __LINE__, >est_dt)) { \ - goto GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__); \ - } \ - if (gtest_dt != nullptr) { \ - std::unique_ptr< ::testing::internal::DeathTest> gtest_dt_ptr(gtest_dt); \ - switch (gtest_dt->AssumeRole()) { \ - case ::testing::internal::DeathTest::OVERSEE_TEST: \ - if (!gtest_dt->Passed(predicate(gtest_dt->Wait()))) { \ - goto GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__); \ - } \ - break; \ - case ::testing::internal::DeathTest::EXECUTE_TEST: { \ - ::testing::internal::DeathTest::ReturnSentinel gtest_sentinel( \ - gtest_dt); \ - GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, gtest_dt); \ - gtest_dt->Abort(::testing::internal::DeathTest::TEST_DID_NOT_DIE); \ - break; \ - } \ - } \ - } \ - } else \ - GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__) \ - : fail(::testing::internal::DeathTest::LastMessage()) -// The symbol "fail" here expands to something into which a message -// can be streamed. - -// This macro is for implementing ASSERT/EXPECT_DEBUG_DEATH when compiled in -// NDEBUG mode. In this case we need the statements to be executed and the macro -// must accept a streamed message even though the message is never printed. -// The regex object is not evaluated, but it is used to prevent "unused" -// warnings and to avoid an expression that doesn't compile in debug mode. -#define GTEST_EXECUTE_STATEMENT_(statement, regex_or_matcher) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::AlwaysTrue()) { \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - } else if (!::testing::internal::AlwaysTrue()) { \ - ::testing::internal::MakeDeathTestMatcher(regex_or_matcher); \ - } else \ - ::testing::Message() - -// A class representing the parsed contents of the -// --gtest_internal_run_death_test flag, as it existed when -// RUN_ALL_TESTS was called. -class InternalRunDeathTestFlag { - public: - InternalRunDeathTestFlag(const std::string& a_file, int a_line, int an_index, - int a_write_fd) - : file_(a_file), line_(a_line), index_(an_index), write_fd_(a_write_fd) {} - - ~InternalRunDeathTestFlag() { - if (write_fd_ >= 0) posix::Close(write_fd_); - } - - const std::string& file() const { return file_; } - int line() const { return line_; } - int index() const { return index_; } - int write_fd() const { return write_fd_; } - - private: - std::string file_; - int line_; - int index_; - int write_fd_; - - InternalRunDeathTestFlag(const InternalRunDeathTestFlag&) = delete; - InternalRunDeathTestFlag& operator=(const InternalRunDeathTestFlag&) = delete; -}; - -// Returns a newly created InternalRunDeathTestFlag object with fields -// initialized from the GTEST_FLAG(internal_run_death_test) flag if -// the flag is specified; otherwise returns NULL. -InternalRunDeathTestFlag* ParseInternalRunDeathTestFlag(); - -#endif // GTEST_HAS_DEATH_TEST - -} // namespace internal -} // namespace testing - -#endif // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-filepath.h b/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-filepath.h deleted file mode 100644 index a2a60a9..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-filepath.h +++ /dev/null @@ -1,210 +0,0 @@ -// 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. - -// Google Test filepath utilities -// -// This header file declares classes and functions used internally by -// Google Test. They are subject to change without notice. -// -// This file is #included in gtest/internal/gtest-internal.h. -// Do not include this header file separately! - -// IWYU pragma: private, include "gtest/gtest.h" -// IWYU pragma: friend gtest/.* -// IWYU pragma: friend gmock/.* - -#ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_ -#define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_ - -#include "gtest/internal/gtest-string.h" - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -namespace testing { -namespace internal { - -// FilePath - a class for file and directory pathname manipulation which -// handles platform-specific conventions (like the pathname separator). -// Used for helper functions for naming files in a directory for xml output. -// Except for Set methods, all methods are const or static, which provides an -// "immutable value object" -- useful for peace of mind. -// A FilePath with a value ending in a path separator ("like/this/") represents -// a directory, otherwise it is assumed to represent a file. In either case, -// it may or may not represent an actual file or directory in the file system. -// Names are NOT checked for syntax correctness -- no checking for illegal -// characters, malformed paths, etc. - -class GTEST_API_ FilePath { - public: - FilePath() : pathname_("") {} - FilePath(const FilePath& rhs) : pathname_(rhs.pathname_) {} - - explicit FilePath(const std::string& pathname) : pathname_(pathname) { - Normalize(); - } - - FilePath& operator=(const FilePath& rhs) { - Set(rhs); - return *this; - } - - void Set(const FilePath& rhs) { pathname_ = rhs.pathname_; } - - const std::string& string() const { return pathname_; } - const char* c_str() const { return pathname_.c_str(); } - - // Returns the current working directory, or "" if unsuccessful. - static FilePath GetCurrentDir(); - - // Given directory = "dir", base_name = "test", number = 0, - // extension = "xml", returns "dir/test.xml". If number is greater - // than zero (e.g., 12), returns "dir/test_12.xml". - // On Windows platform, uses \ as the separator rather than /. - static FilePath MakeFileName(const FilePath& directory, - const FilePath& base_name, int number, - const char* extension); - - // Given directory = "dir", relative_path = "test.xml", - // returns "dir/test.xml". - // On Windows, uses \ as the separator rather than /. - static FilePath ConcatPaths(const FilePath& directory, - const FilePath& relative_path); - - // Returns a pathname for a file that does not currently exist. The pathname - // will be directory/base_name.extension or - // directory/base_name_.extension if directory/base_name.extension - // already exists. The number will be incremented until a pathname is found - // that does not already exist. - // Examples: 'dir/foo_test.xml' or 'dir/foo_test_1.xml'. - // There could be a race condition if two or more processes are calling this - // function at the same time -- they could both pick the same filename. - static FilePath GenerateUniqueFileName(const FilePath& directory, - const FilePath& base_name, - const char* extension); - - // Returns true if and only if the path is "". - bool IsEmpty() const { return pathname_.empty(); } - - // If input name has a trailing separator character, removes it and returns - // the name, otherwise return the name string unmodified. - // On Windows platform, uses \ as the separator, other platforms use /. - FilePath RemoveTrailingPathSeparator() const; - - // Returns a copy of the FilePath with the directory part removed. - // Example: FilePath("path/to/file").RemoveDirectoryName() returns - // FilePath("file"). If there is no directory part ("just_a_file"), it returns - // the FilePath unmodified. If there is no file part ("just_a_dir/") it - // returns an empty FilePath (""). - // On Windows platform, '\' is the path separator, otherwise it is '/'. - FilePath RemoveDirectoryName() const; - - // RemoveFileName returns the directory path with the filename removed. - // Example: FilePath("path/to/file").RemoveFileName() returns "path/to/". - // If the FilePath is "a_file" or "/a_file", RemoveFileName returns - // FilePath("./") or, on Windows, FilePath(".\\"). If the filepath does - // not have a file, like "just/a/dir/", it returns the FilePath unmodified. - // On Windows platform, '\' is the path separator, otherwise it is '/'. - FilePath RemoveFileName() const; - - // Returns a copy of the FilePath with the case-insensitive extension removed. - // Example: FilePath("dir/file.exe").RemoveExtension("EXE") returns - // FilePath("dir/file"). If a case-insensitive extension is not - // found, returns a copy of the original FilePath. - FilePath RemoveExtension(const char* extension) const; - - // Creates directories so that path exists. Returns true if successful or if - // the directories already exist; returns false if unable to create - // directories for any reason. Will also return false if the FilePath does - // not represent a directory (that is, it doesn't end with a path separator). - bool CreateDirectoriesRecursively() const; - - // Create the directory so that path exists. Returns true if successful or - // if the directory already exists; returns false if unable to create the - // directory for any reason, including if the parent directory does not - // exist. Not named "CreateDirectory" because that's a macro on Windows. - bool CreateFolder() const; - - // Returns true if FilePath describes something in the file-system, - // either a file, directory, or whatever, and that something exists. - bool FileOrDirectoryExists() const; - - // Returns true if pathname describes a directory in the file-system - // that exists. - bool DirectoryExists() const; - - // Returns true if FilePath ends with a path separator, which indicates that - // it is intended to represent a directory. Returns false otherwise. - // This does NOT check that a directory (or file) actually exists. - bool IsDirectory() const; - - // Returns true if pathname describes a root directory. (Windows has one - // root directory per disk drive.) - bool IsRootDirectory() const; - - // Returns true if pathname describes an absolute path. - bool IsAbsolutePath() const; - - private: - // Replaces multiple consecutive separators with a single separator. - // For example, "bar///foo" becomes "bar/foo". Does not eliminate other - // redundancies that might be in a pathname involving "." or "..". - // - // A pathname with multiple consecutive separators may occur either through - // user error or as a result of some scripts or APIs that generate a pathname - // with a trailing separator. On other platforms the same API or script - // may NOT generate a pathname with a trailing "/". Then elsewhere that - // pathname may have another "/" and pathname components added to it, - // without checking for the separator already being there. - // The script language and operating system may allow paths like "foo//bar" - // but some of the functions in FilePath will not handle that correctly. In - // particular, RemoveTrailingPathSeparator() only removes one separator, and - // it is called in CreateDirectoriesRecursively() assuming that it will change - // a pathname from directory syntax (trailing separator) to filename syntax. - // - // On Windows this method also replaces the alternate path separator '/' with - // the primary path separator '\\', so that for example "bar\\/\\foo" becomes - // "bar\\foo". - - void Normalize(); - - // Returns a pointer to the last occurrence of a valid path separator in - // the FilePath. On Windows, for example, both '/' and '\' are valid path - // separators. Returns NULL if no path separator was found. - const char* FindLastPathSeparator() const; - - std::string pathname_; -}; // class FilePath - -} // namespace internal -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -#endif // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-internal.h b/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-internal.h deleted file mode 100644 index 9b04e4c..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-internal.h +++ /dev/null @@ -1,1570 +0,0 @@ -// Copyright 2005, 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. - -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file declares functions and macros used internally by -// Google Test. They are subject to change without notice. - -// IWYU pragma: private, include "gtest/gtest.h" -// IWYU pragma: friend gtest/.* -// IWYU pragma: friend gmock/.* - -#ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_ -#define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_ - -#include "gtest/internal/gtest-port.h" - -#if GTEST_OS_LINUX -#include -#include -#include -#include -#endif // GTEST_OS_LINUX - -#if GTEST_HAS_EXCEPTIONS -#include -#endif - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "gtest/gtest-message.h" -#include "gtest/internal/gtest-filepath.h" -#include "gtest/internal/gtest-string.h" -#include "gtest/internal/gtest-type-util.h" - -// Due to C++ preprocessor weirdness, we need double indirection to -// concatenate two tokens when one of them is __LINE__. Writing -// -// foo ## __LINE__ -// -// will result in the token foo__LINE__, instead of foo followed by -// the current line number. For more details, see -// http://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.6 -#define GTEST_CONCAT_TOKEN_(foo, bar) GTEST_CONCAT_TOKEN_IMPL_(foo, bar) -#define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo##bar - -// Stringifies its argument. -// Work around a bug in visual studio which doesn't accept code like this: -// -// #define GTEST_STRINGIFY_(name) #name -// #define MACRO(a, b, c) ... GTEST_STRINGIFY_(a) ... -// MACRO(, x, y) -// -// Complaining about the argument to GTEST_STRINGIFY_ being empty. -// This is allowed by the spec. -#define GTEST_STRINGIFY_HELPER_(name, ...) #name -#define GTEST_STRINGIFY_(...) GTEST_STRINGIFY_HELPER_(__VA_ARGS__, ) - -namespace proto2 { -class MessageLite; -} - -namespace testing { - -// Forward declarations. - -class AssertionResult; // Result of an assertion. -class Message; // Represents a failure message. -class Test; // Represents a test. -class TestInfo; // Information about a test. -class TestPartResult; // Result of a test part. -class UnitTest; // A collection of test suites. - -template -::std::string PrintToString(const T& value); - -namespace internal { - -struct TraceInfo; // Information about a trace point. -class TestInfoImpl; // Opaque implementation of TestInfo -class UnitTestImpl; // Opaque implementation of UnitTest - -// The text used in failure messages to indicate the start of the -// stack trace. -GTEST_API_ extern const char kStackTraceMarker[]; - -// An IgnoredValue object can be implicitly constructed from ANY value. -class IgnoredValue { - struct Sink {}; - - public: - // This constructor template allows any value to be implicitly - // converted to IgnoredValue. The object has no data member and - // doesn't try to remember anything about the argument. We - // deliberately omit the 'explicit' keyword in order to allow the - // conversion to be implicit. - // Disable the conversion if T already has a magical conversion operator. - // Otherwise we get ambiguity. - template ::value, - int>::type = 0> - IgnoredValue(const T& /* ignored */) {} // NOLINT(runtime/explicit) -}; - -// Appends the user-supplied message to the Google-Test-generated message. -GTEST_API_ std::string AppendUserMessage(const std::string& gtest_msg, - const Message& user_msg); - -#if GTEST_HAS_EXCEPTIONS - -GTEST_DISABLE_MSC_WARNINGS_PUSH_( - 4275 /* an exported class was derived from a class that was not exported */) - -// This exception is thrown by (and only by) a failed Google Test -// assertion when GTEST_FLAG(throw_on_failure) is true (if exceptions -// are enabled). We derive it from std::runtime_error, which is for -// errors presumably detectable only at run time. Since -// std::runtime_error inherits from std::exception, many testing -// frameworks know how to extract and print the message inside it. -class GTEST_API_ GoogleTestFailureException : public ::std::runtime_error { - public: - explicit GoogleTestFailureException(const TestPartResult& failure); -}; - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4275 - -#endif // GTEST_HAS_EXCEPTIONS - -namespace edit_distance { -// Returns the optimal edits to go from 'left' to 'right'. -// All edits cost the same, with replace having lower priority than -// add/remove. -// Simple implementation of the Wagner-Fischer algorithm. -// See http://en.wikipedia.org/wiki/Wagner-Fischer_algorithm -enum EditType { kMatch, kAdd, kRemove, kReplace }; -GTEST_API_ std::vector CalculateOptimalEdits( - const std::vector& left, const std::vector& right); - -// Same as above, but the input is represented as strings. -GTEST_API_ std::vector CalculateOptimalEdits( - const std::vector& left, - const std::vector& right); - -// Create a diff of the input strings in Unified diff format. -GTEST_API_ std::string CreateUnifiedDiff(const std::vector& left, - const std::vector& right, - size_t context = 2); - -} // namespace edit_distance - -// Constructs and returns the message for an equality assertion -// (e.g. ASSERT_EQ, EXPECT_STREQ, etc) failure. -// -// The first four parameters are the expressions used in the assertion -// and their values, as strings. For example, for ASSERT_EQ(foo, bar) -// where foo is 5 and bar is 6, we have: -// -// expected_expression: "foo" -// actual_expression: "bar" -// expected_value: "5" -// actual_value: "6" -// -// The ignoring_case parameter is true if and only if the assertion is a -// *_STRCASEEQ*. When it's true, the string " (ignoring case)" will -// be inserted into the message. -GTEST_API_ AssertionResult EqFailure(const char* expected_expression, - const char* actual_expression, - const std::string& expected_value, - const std::string& actual_value, - bool ignoring_case); - -// Constructs a failure message for Boolean assertions such as EXPECT_TRUE. -GTEST_API_ std::string GetBoolAssertionFailureMessage( - const AssertionResult& assertion_result, const char* expression_text, - const char* actual_predicate_value, const char* expected_predicate_value); - -// This template class represents an IEEE floating-point number -// (either single-precision or double-precision, depending on the -// template parameters). -// -// The purpose of this class is to do more sophisticated number -// comparison. (Due to round-off error, etc, it's very unlikely that -// two floating-points will be equal exactly. Hence a naive -// comparison by the == operation often doesn't work.) -// -// Format of IEEE floating-point: -// -// The most-significant bit being the leftmost, an IEEE -// floating-point looks like -// -// sign_bit exponent_bits fraction_bits -// -// Here, sign_bit is a single bit that designates the sign of the -// number. -// -// For float, there are 8 exponent bits and 23 fraction bits. -// -// For double, there are 11 exponent bits and 52 fraction bits. -// -// More details can be found at -// http://en.wikipedia.org/wiki/IEEE_floating-point_standard. -// -// Template parameter: -// -// RawType: the raw floating-point type (either float or double) -template -class FloatingPoint { - public: - // Defines the unsigned integer type that has the same size as the - // floating point number. - typedef typename TypeWithSize::UInt Bits; - - // Constants. - - // # of bits in a number. - static const size_t kBitCount = 8 * sizeof(RawType); - - // # of fraction bits in a number. - static const size_t kFractionBitCount = - std::numeric_limits::digits - 1; - - // # of exponent bits in a number. - static const size_t kExponentBitCount = kBitCount - 1 - kFractionBitCount; - - // The mask for the sign bit. - static const Bits kSignBitMask = static_cast(1) << (kBitCount - 1); - - // The mask for the fraction bits. - static const Bits kFractionBitMask = ~static_cast(0) >> - (kExponentBitCount + 1); - - // The mask for the exponent bits. - static const Bits kExponentBitMask = ~(kSignBitMask | kFractionBitMask); - - // How many ULP's (Units in the Last Place) we want to tolerate when - // comparing two numbers. The larger the value, the more error we - // allow. A 0 value means that two numbers must be exactly the same - // to be considered equal. - // - // The maximum error of a single floating-point operation is 0.5 - // units in the last place. On Intel CPU's, all floating-point - // calculations are done with 80-bit precision, while double has 64 - // bits. Therefore, 4 should be enough for ordinary use. - // - // See the following article for more details on ULP: - // http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ - static const uint32_t kMaxUlps = 4; - - // Constructs a FloatingPoint from a raw floating-point number. - // - // On an Intel CPU, passing a non-normalized NAN (Not a Number) - // around may change its bits, although the new value is guaranteed - // to be also a NAN. Therefore, don't expect this constructor to - // preserve the bits in x when x is a NAN. - explicit FloatingPoint(const RawType& x) { u_.value_ = x; } - - // Static methods - - // Reinterprets a bit pattern as a floating-point number. - // - // This function is needed to test the AlmostEquals() method. - static RawType ReinterpretBits(const Bits bits) { - FloatingPoint fp(0); - fp.u_.bits_ = bits; - return fp.u_.value_; - } - - // Returns the floating-point number that represent positive infinity. - static RawType Infinity() { return ReinterpretBits(kExponentBitMask); } - - // Returns the maximum representable finite floating-point number. - static RawType Max(); - - // Non-static methods - - // Returns the bits that represents this number. - const Bits& bits() const { return u_.bits_; } - - // Returns the exponent bits of this number. - Bits exponent_bits() const { return kExponentBitMask & u_.bits_; } - - // Returns the fraction bits of this number. - Bits fraction_bits() const { return kFractionBitMask & u_.bits_; } - - // Returns the sign bit of this number. - Bits sign_bit() const { return kSignBitMask & u_.bits_; } - - // Returns true if and only if this is NAN (not a number). - bool is_nan() const { - // It's a NAN if the exponent bits are all ones and the fraction - // bits are not entirely zeros. - return (exponent_bits() == kExponentBitMask) && (fraction_bits() != 0); - } - - // Returns true if and only if this number is at most kMaxUlps ULP's away - // from rhs. In particular, this function: - // - // - returns false if either number is (or both are) NAN. - // - treats really large numbers as almost equal to infinity. - // - thinks +0.0 and -0.0 are 0 DLP's apart. - bool AlmostEquals(const FloatingPoint& rhs) const { - // The IEEE standard says that any comparison operation involving - // a NAN must return false. - if (is_nan() || rhs.is_nan()) return false; - - return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.u_.bits_) <= - kMaxUlps; - } - - private: - // The data type used to store the actual floating-point number. - union FloatingPointUnion { - RawType value_; // The raw floating-point number. - Bits bits_; // The bits that represent the number. - }; - - // Converts an integer from the sign-and-magnitude representation to - // the biased representation. More precisely, let N be 2 to the - // power of (kBitCount - 1), an integer x is represented by the - // unsigned number x + N. - // - // For instance, - // - // -N + 1 (the most negative number representable using - // sign-and-magnitude) is represented by 1; - // 0 is represented by N; and - // N - 1 (the biggest number representable using - // sign-and-magnitude) is represented by 2N - 1. - // - // Read http://en.wikipedia.org/wiki/Signed_number_representations - // for more details on signed number representations. - static Bits SignAndMagnitudeToBiased(const Bits& sam) { - if (kSignBitMask & sam) { - // sam represents a negative number. - return ~sam + 1; - } else { - // sam represents a positive number. - return kSignBitMask | sam; - } - } - - // Given two numbers in the sign-and-magnitude representation, - // returns the distance between them as an unsigned number. - static Bits DistanceBetweenSignAndMagnitudeNumbers(const Bits& sam1, - const Bits& sam2) { - const Bits biased1 = SignAndMagnitudeToBiased(sam1); - const Bits biased2 = SignAndMagnitudeToBiased(sam2); - return (biased1 >= biased2) ? (biased1 - biased2) : (biased2 - biased1); - } - - FloatingPointUnion u_; -}; - -// We cannot use std::numeric_limits::max() as it clashes with the max() -// macro defined by . -template <> -inline float FloatingPoint::Max() { - return FLT_MAX; -} -template <> -inline double FloatingPoint::Max() { - return DBL_MAX; -} - -// Typedefs the instances of the FloatingPoint template class that we -// care to use. -typedef FloatingPoint Float; -typedef FloatingPoint Double; - -// In order to catch the mistake of putting tests that use different -// test fixture classes in the same test suite, we need to assign -// unique IDs to fixture classes and compare them. The TypeId type is -// used to hold such IDs. The user should treat TypeId as an opaque -// type: the only operation allowed on TypeId values is to compare -// them for equality using the == operator. -typedef const void* TypeId; - -template -class TypeIdHelper { - public: - // dummy_ must not have a const type. Otherwise an overly eager - // compiler (e.g. MSVC 7.1 & 8.0) may try to merge - // TypeIdHelper::dummy_ for different Ts as an "optimization". - static bool dummy_; -}; - -template -bool TypeIdHelper::dummy_ = false; - -// GetTypeId() returns the ID of type T. Different values will be -// returned for different types. Calling the function twice with the -// same type argument is guaranteed to return the same ID. -template -TypeId GetTypeId() { - // The compiler is required to allocate a different - // TypeIdHelper::dummy_ variable for each T used to instantiate - // the template. Therefore, the address of dummy_ is guaranteed to - // be unique. - return &(TypeIdHelper::dummy_); -} - -// Returns the type ID of ::testing::Test. Always call this instead -// of GetTypeId< ::testing::Test>() to get the type ID of -// ::testing::Test, as the latter may give the wrong result due to a -// suspected linker bug when compiling Google Test as a Mac OS X -// framework. -GTEST_API_ TypeId GetTestTypeId(); - -// Defines the abstract factory interface that creates instances -// of a Test object. -class TestFactoryBase { - public: - virtual ~TestFactoryBase() {} - - // Creates a test instance to run. The instance is both created and destroyed - // within TestInfoImpl::Run() - virtual Test* CreateTest() = 0; - - protected: - TestFactoryBase() {} - - private: - TestFactoryBase(const TestFactoryBase&) = delete; - TestFactoryBase& operator=(const TestFactoryBase&) = delete; -}; - -// This class provides implementation of TeastFactoryBase interface. -// It is used in TEST and TEST_F macros. -template -class TestFactoryImpl : public TestFactoryBase { - public: - Test* CreateTest() override { return new TestClass; } -}; - -#if GTEST_OS_WINDOWS - -// Predicate-formatters for implementing the HRESULT checking macros -// {ASSERT|EXPECT}_HRESULT_{SUCCEEDED|FAILED} -// We pass a long instead of HRESULT to avoid causing an -// include dependency for the HRESULT type. -GTEST_API_ AssertionResult IsHRESULTSuccess(const char* expr, - long hr); // NOLINT -GTEST_API_ AssertionResult IsHRESULTFailure(const char* expr, - long hr); // NOLINT - -#endif // GTEST_OS_WINDOWS - -// Types of SetUpTestSuite() and TearDownTestSuite() functions. -using SetUpTestSuiteFunc = void (*)(); -using TearDownTestSuiteFunc = void (*)(); - -struct CodeLocation { - CodeLocation(const std::string& a_file, int a_line) - : file(a_file), line(a_line) {} - - std::string file; - int line; -}; - -// Helper to identify which setup function for TestCase / TestSuite to call. -// Only one function is allowed, either TestCase or TestSute but not both. - -// Utility functions to help SuiteApiResolver -using SetUpTearDownSuiteFuncType = void (*)(); - -inline SetUpTearDownSuiteFuncType GetNotDefaultOrNull( - SetUpTearDownSuiteFuncType a, SetUpTearDownSuiteFuncType def) { - return a == def ? nullptr : a; -} - -template -// Note that SuiteApiResolver inherits from T because -// SetUpTestSuite()/TearDownTestSuite() could be protected. This way -// SuiteApiResolver can access them. -struct SuiteApiResolver : T { - // testing::Test is only forward declared at this point. So we make it a - // dependent class for the compiler to be OK with it. - using Test = - typename std::conditional::type; - - static SetUpTearDownSuiteFuncType GetSetUpCaseOrSuite(const char* filename, - int line_num) { -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - SetUpTearDownSuiteFuncType test_case_fp = - GetNotDefaultOrNull(&T::SetUpTestCase, &Test::SetUpTestCase); - SetUpTearDownSuiteFuncType test_suite_fp = - GetNotDefaultOrNull(&T::SetUpTestSuite, &Test::SetUpTestSuite); - - GTEST_CHECK_(!test_case_fp || !test_suite_fp) - << "Test can not provide both SetUpTestSuite and SetUpTestCase, please " - "make sure there is only one present at " - << filename << ":" << line_num; - - return test_case_fp != nullptr ? test_case_fp : test_suite_fp; -#else - (void)(filename); - (void)(line_num); - return &T::SetUpTestSuite; -#endif - } - - static SetUpTearDownSuiteFuncType GetTearDownCaseOrSuite(const char* filename, - int line_num) { -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - SetUpTearDownSuiteFuncType test_case_fp = - GetNotDefaultOrNull(&T::TearDownTestCase, &Test::TearDownTestCase); - SetUpTearDownSuiteFuncType test_suite_fp = - GetNotDefaultOrNull(&T::TearDownTestSuite, &Test::TearDownTestSuite); - - GTEST_CHECK_(!test_case_fp || !test_suite_fp) - << "Test can not provide both TearDownTestSuite and TearDownTestCase," - " please make sure there is only one present at" - << filename << ":" << line_num; - - return test_case_fp != nullptr ? test_case_fp : test_suite_fp; -#else - (void)(filename); - (void)(line_num); - return &T::TearDownTestSuite; -#endif - } -}; - -// Creates a new TestInfo object and registers it with Google Test; -// returns the created object. -// -// Arguments: -// -// test_suite_name: name of the test suite -// name: name of the test -// type_param: the name of the test's type parameter, or NULL if -// this is not a typed or a type-parameterized test. -// value_param: text representation of the test's value parameter, -// or NULL if this is not a type-parameterized test. -// code_location: code location where the test is defined -// fixture_class_id: ID of the test fixture class -// set_up_tc: pointer to the function that sets up the test suite -// tear_down_tc: pointer to the function that tears down the test suite -// factory: pointer to the factory that creates a test object. -// The newly created TestInfo instance will assume -// ownership of the factory object. -GTEST_API_ TestInfo* MakeAndRegisterTestInfo( - const char* test_suite_name, const char* name, const char* type_param, - const char* value_param, CodeLocation code_location, - TypeId fixture_class_id, SetUpTestSuiteFunc set_up_tc, - TearDownTestSuiteFunc tear_down_tc, TestFactoryBase* factory); - -// If *pstr starts with the given prefix, modifies *pstr to be right -// past the prefix and returns true; otherwise leaves *pstr unchanged -// and returns false. None of pstr, *pstr, and prefix can be NULL. -GTEST_API_ bool SkipPrefix(const char* prefix, const char** pstr); - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -// State of the definition of a type-parameterized test suite. -class GTEST_API_ TypedTestSuitePState { - public: - TypedTestSuitePState() : registered_(false) {} - - // Adds the given test name to defined_test_names_ and return true - // if the test suite hasn't been registered; otherwise aborts the - // program. - bool AddTestName(const char* file, int line, const char* case_name, - const char* test_name) { - if (registered_) { - fprintf(stderr, - "%s Test %s must be defined before " - "REGISTER_TYPED_TEST_SUITE_P(%s, ...).\n", - FormatFileLocation(file, line).c_str(), test_name, case_name); - fflush(stderr); - posix::Abort(); - } - registered_tests_.insert( - ::std::make_pair(test_name, CodeLocation(file, line))); - return true; - } - - bool TestExists(const std::string& test_name) const { - return registered_tests_.count(test_name) > 0; - } - - const CodeLocation& GetCodeLocation(const std::string& test_name) const { - RegisteredTestsMap::const_iterator it = registered_tests_.find(test_name); - GTEST_CHECK_(it != registered_tests_.end()); - return it->second; - } - - // Verifies that registered_tests match the test names in - // defined_test_names_; returns registered_tests if successful, or - // aborts the program otherwise. - const char* VerifyRegisteredTestNames(const char* test_suite_name, - const char* file, int line, - const char* registered_tests); - - private: - typedef ::std::map RegisteredTestsMap; - - bool registered_; - RegisteredTestsMap registered_tests_; -}; - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -using TypedTestCasePState = TypedTestSuitePState; -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -// Skips to the first non-space char after the first comma in 'str'; -// returns NULL if no comma is found in 'str'. -inline const char* SkipComma(const char* str) { - const char* comma = strchr(str, ','); - if (comma == nullptr) { - return nullptr; - } - while (IsSpace(*(++comma))) { - } - return comma; -} - -// Returns the prefix of 'str' before the first comma in it; returns -// the entire string if it contains no comma. -inline std::string GetPrefixUntilComma(const char* str) { - const char* comma = strchr(str, ','); - return comma == nullptr ? str : std::string(str, comma); -} - -// Splits a given string on a given delimiter, populating a given -// vector with the fields. -void SplitString(const ::std::string& str, char delimiter, - ::std::vector<::std::string>* dest); - -// The default argument to the template below for the case when the user does -// not provide a name generator. -struct DefaultNameGenerator { - template - static std::string GetName(int i) { - return StreamableToString(i); - } -}; - -template -struct NameGeneratorSelector { - typedef Provided type; -}; - -template -void GenerateNamesRecursively(internal::None, std::vector*, int) {} - -template -void GenerateNamesRecursively(Types, std::vector* result, int i) { - result->push_back(NameGenerator::template GetName(i)); - GenerateNamesRecursively(typename Types::Tail(), result, - i + 1); -} - -template -std::vector GenerateNames() { - std::vector result; - GenerateNamesRecursively(Types(), &result, 0); - return result; -} - -// TypeParameterizedTest::Register() -// registers a list of type-parameterized tests with Google Test. The -// return value is insignificant - we just need to return something -// such that we can call this function in a namespace scope. -// -// Implementation note: The GTEST_TEMPLATE_ macro declares a template -// template parameter. It's defined in gtest-type-util.h. -template -class TypeParameterizedTest { - public: - // 'index' is the index of the test in the type list 'Types' - // specified in INSTANTIATE_TYPED_TEST_SUITE_P(Prefix, TestSuite, - // Types). Valid values for 'index' are [0, N - 1] where N is the - // length of Types. - static bool Register(const char* prefix, const CodeLocation& code_location, - const char* case_name, const char* test_names, int index, - const std::vector& type_names = - GenerateNames()) { - typedef typename Types::Head Type; - typedef Fixture FixtureClass; - typedef typename GTEST_BIND_(TestSel, Type) TestClass; - - // First, registers the first type-parameterized test in the type - // list. - MakeAndRegisterTestInfo( - (std::string(prefix) + (prefix[0] == '\0' ? "" : "/") + case_name + - "/" + type_names[static_cast(index)]) - .c_str(), - StripTrailingSpaces(GetPrefixUntilComma(test_names)).c_str(), - GetTypeName().c_str(), - nullptr, // No value parameter. - code_location, GetTypeId(), - SuiteApiResolver::GetSetUpCaseOrSuite( - code_location.file.c_str(), code_location.line), - SuiteApiResolver::GetTearDownCaseOrSuite( - code_location.file.c_str(), code_location.line), - new TestFactoryImpl); - - // Next, recurses (at compile time) with the tail of the type list. - return TypeParameterizedTest::Register(prefix, - code_location, - case_name, - test_names, - index + 1, - type_names); - } -}; - -// The base case for the compile time recursion. -template -class TypeParameterizedTest { - public: - static bool Register(const char* /*prefix*/, const CodeLocation&, - const char* /*case_name*/, const char* /*test_names*/, - int /*index*/, - const std::vector& = - std::vector() /*type_names*/) { - return true; - } -}; - -GTEST_API_ void RegisterTypeParameterizedTestSuite(const char* test_suite_name, - CodeLocation code_location); -GTEST_API_ void RegisterTypeParameterizedTestSuiteInstantiation( - const char* case_name); - -// TypeParameterizedTestSuite::Register() -// registers *all combinations* of 'Tests' and 'Types' with Google -// Test. The return value is insignificant - we just need to return -// something such that we can call this function in a namespace scope. -template -class TypeParameterizedTestSuite { - public: - static bool Register(const char* prefix, CodeLocation code_location, - const TypedTestSuitePState* state, const char* case_name, - const char* test_names, - const std::vector& type_names = - GenerateNames()) { - RegisterTypeParameterizedTestSuiteInstantiation(case_name); - std::string test_name = - StripTrailingSpaces(GetPrefixUntilComma(test_names)); - if (!state->TestExists(test_name)) { - fprintf(stderr, "Failed to get code location for test %s.%s at %s.", - case_name, test_name.c_str(), - FormatFileLocation(code_location.file.c_str(), code_location.line) - .c_str()); - fflush(stderr); - posix::Abort(); - } - const CodeLocation& test_location = state->GetCodeLocation(test_name); - - typedef typename Tests::Head Head; - - // First, register the first test in 'Test' for each type in 'Types'. - TypeParameterizedTest::Register( - prefix, test_location, case_name, test_names, 0, type_names); - - // Next, recurses (at compile time) with the tail of the test list. - return TypeParameterizedTestSuite::Register(prefix, code_location, - state, case_name, - SkipComma(test_names), - type_names); - } -}; - -// The base case for the compile time recursion. -template -class TypeParameterizedTestSuite { - public: - static bool Register(const char* /*prefix*/, const CodeLocation&, - const TypedTestSuitePState* /*state*/, - const char* /*case_name*/, const char* /*test_names*/, - const std::vector& = - std::vector() /*type_names*/) { - return true; - } -}; - -// Returns the current OS stack trace as an std::string. -// -// The maximum number of stack frames to be included is specified by -// the gtest_stack_trace_depth flag. The skip_count parameter -// specifies the number of top frames to be skipped, which doesn't -// count against the number of frames to be included. -// -// For example, if Foo() calls Bar(), which in turn calls -// GetCurrentOsStackTraceExceptTop(..., 1), Foo() will be included in -// the trace but Bar() and GetCurrentOsStackTraceExceptTop() won't. -GTEST_API_ std::string GetCurrentOsStackTraceExceptTop(UnitTest* unit_test, - int skip_count); - -// Helpers for suppressing warnings on unreachable code or constant -// condition. - -// Always returns true. -GTEST_API_ bool AlwaysTrue(); - -// Always returns false. -inline bool AlwaysFalse() { return !AlwaysTrue(); } - -// Helper for suppressing false warning from Clang on a const char* -// variable declared in a conditional expression always being NULL in -// the else branch. -struct GTEST_API_ ConstCharPtr { - ConstCharPtr(const char* str) : value(str) {} - operator bool() const { return true; } - const char* value; -}; - -// Helper for declaring std::string within 'if' statement -// in pre C++17 build environment. -struct TrueWithString { - TrueWithString() = default; - explicit TrueWithString(const char* str) : value(str) {} - explicit TrueWithString(const std::string& str) : value(str) {} - explicit operator bool() const { return true; } - std::string value; -}; - -// A simple Linear Congruential Generator for generating random -// numbers with a uniform distribution. Unlike rand() and srand(), it -// doesn't use global state (and therefore can't interfere with user -// code). Unlike rand_r(), it's portable. An LCG isn't very random, -// but it's good enough for our purposes. -class GTEST_API_ Random { - public: - static const uint32_t kMaxRange = 1u << 31; - - explicit Random(uint32_t seed) : state_(seed) {} - - void Reseed(uint32_t seed) { state_ = seed; } - - // Generates a random number from [0, range). Crashes if 'range' is - // 0 or greater than kMaxRange. - uint32_t Generate(uint32_t range); - - private: - uint32_t state_; - Random(const Random&) = delete; - Random& operator=(const Random&) = delete; -}; - -// Turns const U&, U&, const U, and U all into U. -#define GTEST_REMOVE_REFERENCE_AND_CONST_(T) \ - typename std::remove_const::type>::type - -// HasDebugStringAndShortDebugString::value is a compile-time bool constant -// that's true if and only if T has methods DebugString() and ShortDebugString() -// that return std::string. -template -class HasDebugStringAndShortDebugString { - private: - template - static auto CheckDebugString(C*) -> typename std::is_same< - std::string, decltype(std::declval().DebugString())>::type; - template - static std::false_type CheckDebugString(...); - - template - static auto CheckShortDebugString(C*) -> typename std::is_same< - std::string, decltype(std::declval().ShortDebugString())>::type; - template - static std::false_type CheckShortDebugString(...); - - using HasDebugStringType = decltype(CheckDebugString(nullptr)); - using HasShortDebugStringType = decltype(CheckShortDebugString(nullptr)); - - public: - static constexpr bool value = - HasDebugStringType::value && HasShortDebugStringType::value; -}; - -template -constexpr bool HasDebugStringAndShortDebugString::value; - -// When the compiler sees expression IsContainerTest(0), if C is an -// STL-style container class, the first overload of IsContainerTest -// will be viable (since both C::iterator* and C::const_iterator* are -// valid types and NULL can be implicitly converted to them). It will -// be picked over the second overload as 'int' is a perfect match for -// the type of argument 0. If C::iterator or C::const_iterator is not -// a valid type, the first overload is not viable, and the second -// overload will be picked. Therefore, we can determine whether C is -// a container class by checking the type of IsContainerTest(0). -// The value of the expression is insignificant. -// -// In C++11 mode we check the existence of a const_iterator and that an -// iterator is properly implemented for the container. -// -// For pre-C++11 that we look for both C::iterator and C::const_iterator. -// The reason is that C++ injects the name of a class as a member of the -// class itself (e.g. you can refer to class iterator as either -// 'iterator' or 'iterator::iterator'). If we look for C::iterator -// only, for example, we would mistakenly think that a class named -// iterator is an STL container. -// -// Also note that the simpler approach of overloading -// IsContainerTest(typename C::const_iterator*) and -// IsContainerTest(...) doesn't work with Visual Age C++ and Sun C++. -typedef int IsContainer; -template ().begin()), - class = decltype(::std::declval().end()), - class = decltype(++::std::declval()), - class = decltype(*::std::declval()), - class = typename C::const_iterator> -IsContainer IsContainerTest(int /* dummy */) { - return 0; -} - -typedef char IsNotContainer; -template -IsNotContainer IsContainerTest(long /* dummy */) { - return '\0'; -} - -// Trait to detect whether a type T is a hash table. -// The heuristic used is that the type contains an inner type `hasher` and does -// not contain an inner type `reverse_iterator`. -// If the container is iterable in reverse, then order might actually matter. -template -struct IsHashTable { - private: - template - static char test(typename U::hasher*, typename U::reverse_iterator*); - template - static int test(typename U::hasher*, ...); - template - static char test(...); - - public: - static const bool value = sizeof(test(nullptr, nullptr)) == sizeof(int); -}; - -template -const bool IsHashTable::value; - -template (0)) == sizeof(IsContainer)> -struct IsRecursiveContainerImpl; - -template -struct IsRecursiveContainerImpl : public std::false_type {}; - -// Since the IsRecursiveContainerImpl depends on the IsContainerTest we need to -// obey the same inconsistencies as the IsContainerTest, namely check if -// something is a container is relying on only const_iterator in C++11 and -// is relying on both const_iterator and iterator otherwise -template -struct IsRecursiveContainerImpl { - using value_type = decltype(*std::declval()); - using type = - std::is_same::type>::type, - C>; -}; - -// IsRecursiveContainer is a unary compile-time predicate that -// evaluates whether C is a recursive container type. A recursive container -// type is a container type whose value_type is equal to the container type -// itself. An example for a recursive container type is -// boost::filesystem::path, whose iterator has a value_type that is equal to -// boost::filesystem::path. -template -struct IsRecursiveContainer : public IsRecursiveContainerImpl::type {}; - -// Utilities for native arrays. - -// ArrayEq() compares two k-dimensional native arrays using the -// elements' operator==, where k can be any integer >= 0. When k is -// 0, ArrayEq() degenerates into comparing a single pair of values. - -template -bool ArrayEq(const T* lhs, size_t size, const U* rhs); - -// This generic version is used when k is 0. -template -inline bool ArrayEq(const T& lhs, const U& rhs) { - return lhs == rhs; -} - -// This overload is used when k >= 1. -template -inline bool ArrayEq(const T (&lhs)[N], const U (&rhs)[N]) { - return internal::ArrayEq(lhs, N, rhs); -} - -// This helper reduces code bloat. If we instead put its logic inside -// the previous ArrayEq() function, arrays with different sizes would -// lead to different copies of the template code. -template -bool ArrayEq(const T* lhs, size_t size, const U* rhs) { - for (size_t i = 0; i != size; i++) { - if (!internal::ArrayEq(lhs[i], rhs[i])) return false; - } - return true; -} - -// Finds the first element in the iterator range [begin, end) that -// equals elem. Element may be a native array type itself. -template -Iter ArrayAwareFind(Iter begin, Iter end, const Element& elem) { - for (Iter it = begin; it != end; ++it) { - if (internal::ArrayEq(*it, elem)) return it; - } - return end; -} - -// CopyArray() copies a k-dimensional native array using the elements' -// operator=, where k can be any integer >= 0. When k is 0, -// CopyArray() degenerates into copying a single value. - -template -void CopyArray(const T* from, size_t size, U* to); - -// This generic version is used when k is 0. -template -inline void CopyArray(const T& from, U* to) { - *to = from; -} - -// This overload is used when k >= 1. -template -inline void CopyArray(const T (&from)[N], U (*to)[N]) { - internal::CopyArray(from, N, *to); -} - -// This helper reduces code bloat. If we instead put its logic inside -// the previous CopyArray() function, arrays with different sizes -// would lead to different copies of the template code. -template -void CopyArray(const T* from, size_t size, U* to) { - for (size_t i = 0; i != size; i++) { - internal::CopyArray(from[i], to + i); - } -} - -// The relation between an NativeArray object (see below) and the -// native array it represents. -// We use 2 different structs to allow non-copyable types to be used, as long -// as RelationToSourceReference() is passed. -struct RelationToSourceReference {}; -struct RelationToSourceCopy {}; - -// Adapts a native array to a read-only STL-style container. Instead -// of the complete STL container concept, this adaptor only implements -// members useful for Google Mock's container matchers. New members -// should be added as needed. To simplify the implementation, we only -// support Element being a raw type (i.e. having no top-level const or -// reference modifier). It's the client's responsibility to satisfy -// this requirement. Element can be an array type itself (hence -// multi-dimensional arrays are supported). -template -class NativeArray { - public: - // STL-style container typedefs. - typedef Element value_type; - typedef Element* iterator; - typedef const Element* const_iterator; - - // Constructs from a native array. References the source. - NativeArray(const Element* array, size_t count, RelationToSourceReference) { - InitRef(array, count); - } - - // Constructs from a native array. Copies the source. - NativeArray(const Element* array, size_t count, RelationToSourceCopy) { - InitCopy(array, count); - } - - // Copy constructor. - NativeArray(const NativeArray& rhs) { - (this->*rhs.clone_)(rhs.array_, rhs.size_); - } - - ~NativeArray() { - if (clone_ != &NativeArray::InitRef) delete[] array_; - } - - // STL-style container methods. - size_t size() const { return size_; } - const_iterator begin() const { return array_; } - const_iterator end() const { return array_ + size_; } - bool operator==(const NativeArray& rhs) const { - return size() == rhs.size() && ArrayEq(begin(), size(), rhs.begin()); - } - - private: - static_assert(!std::is_const::value, "Type must not be const"); - static_assert(!std::is_reference::value, - "Type must not be a reference"); - - // Initializes this object with a copy of the input. - void InitCopy(const Element* array, size_t a_size) { - Element* const copy = new Element[a_size]; - CopyArray(array, a_size, copy); - array_ = copy; - size_ = a_size; - clone_ = &NativeArray::InitCopy; - } - - // Initializes this object with a reference of the input. - void InitRef(const Element* array, size_t a_size) { - array_ = array; - size_ = a_size; - clone_ = &NativeArray::InitRef; - } - - const Element* array_; - size_t size_; - void (NativeArray::*clone_)(const Element*, size_t); -}; - -// Backport of std::index_sequence. -template -struct IndexSequence { - using type = IndexSequence; -}; - -// Double the IndexSequence, and one if plus_one is true. -template -struct DoubleSequence; -template -struct DoubleSequence, sizeofT> { - using type = IndexSequence; -}; -template -struct DoubleSequence, sizeofT> { - using type = IndexSequence; -}; - -// Backport of std::make_index_sequence. -// It uses O(ln(N)) instantiation depth. -template -struct MakeIndexSequenceImpl - : DoubleSequence::type, - N / 2>::type {}; - -template <> -struct MakeIndexSequenceImpl<0> : IndexSequence<> {}; - -template -using MakeIndexSequence = typename MakeIndexSequenceImpl::type; - -template -using IndexSequenceFor = typename MakeIndexSequence::type; - -template -struct Ignore { - Ignore(...); // NOLINT -}; - -template -struct ElemFromListImpl; -template -struct ElemFromListImpl> { - // We make Ignore a template to solve a problem with MSVC. - // A non-template Ignore would work fine with `decltype(Ignore(I))...`, but - // MSVC doesn't understand how to deal with that pack expansion. - // Use `0 * I` to have a single instantiation of Ignore. - template - static R Apply(Ignore<0 * I>..., R (*)(), ...); -}; - -template -struct ElemFromList { - using type = - decltype(ElemFromListImpl::type>::Apply( - static_cast(nullptr)...)); -}; - -struct FlatTupleConstructTag {}; - -template -class FlatTuple; - -template -struct FlatTupleElemBase; - -template -struct FlatTupleElemBase, I> { - using value_type = typename ElemFromList::type; - FlatTupleElemBase() = default; - template - explicit FlatTupleElemBase(FlatTupleConstructTag, Arg&& t) - : value(std::forward(t)) {} - value_type value; -}; - -template -struct FlatTupleBase; - -template -struct FlatTupleBase, IndexSequence> - : FlatTupleElemBase, Idx>... { - using Indices = IndexSequence; - FlatTupleBase() = default; - template - explicit FlatTupleBase(FlatTupleConstructTag, Args&&... args) - : FlatTupleElemBase, Idx>(FlatTupleConstructTag{}, - std::forward(args))... {} - - template - const typename ElemFromList::type& Get() const { - return FlatTupleElemBase, I>::value; - } - - template - typename ElemFromList::type& Get() { - return FlatTupleElemBase, I>::value; - } - - template - auto Apply(F&& f) -> decltype(std::forward(f)(this->Get()...)) { - return std::forward(f)(Get()...); - } - - template - auto Apply(F&& f) const -> decltype(std::forward(f)(this->Get()...)) { - return std::forward(f)(Get()...); - } -}; - -// Analog to std::tuple but with different tradeoffs. -// This class minimizes the template instantiation depth, thus allowing more -// elements than std::tuple would. std::tuple has been seen to require an -// instantiation depth of more than 10x the number of elements in some -// implementations. -// FlatTuple and ElemFromList are not recursive and have a fixed depth -// regardless of T... -// MakeIndexSequence, on the other hand, it is recursive but with an -// instantiation depth of O(ln(N)). -template -class FlatTuple - : private FlatTupleBase, - typename MakeIndexSequence::type> { - using Indices = typename FlatTupleBase< - FlatTuple, typename MakeIndexSequence::type>::Indices; - - public: - FlatTuple() = default; - template - explicit FlatTuple(FlatTupleConstructTag tag, Args&&... args) - : FlatTuple::FlatTupleBase(tag, std::forward(args)...) {} - - using FlatTuple::FlatTupleBase::Apply; - using FlatTuple::FlatTupleBase::Get; -}; - -// Utility functions to be called with static_assert to induce deprecation -// warnings. -GTEST_INTERNAL_DEPRECATED( - "INSTANTIATE_TEST_CASE_P is deprecated, please use " - "INSTANTIATE_TEST_SUITE_P") -constexpr bool InstantiateTestCase_P_IsDeprecated() { return true; } - -GTEST_INTERNAL_DEPRECATED( - "TYPED_TEST_CASE_P is deprecated, please use " - "TYPED_TEST_SUITE_P") -constexpr bool TypedTestCase_P_IsDeprecated() { return true; } - -GTEST_INTERNAL_DEPRECATED( - "TYPED_TEST_CASE is deprecated, please use " - "TYPED_TEST_SUITE") -constexpr bool TypedTestCaseIsDeprecated() { return true; } - -GTEST_INTERNAL_DEPRECATED( - "REGISTER_TYPED_TEST_CASE_P is deprecated, please use " - "REGISTER_TYPED_TEST_SUITE_P") -constexpr bool RegisterTypedTestCase_P_IsDeprecated() { return true; } - -GTEST_INTERNAL_DEPRECATED( - "INSTANTIATE_TYPED_TEST_CASE_P is deprecated, please use " - "INSTANTIATE_TYPED_TEST_SUITE_P") -constexpr bool InstantiateTypedTestCase_P_IsDeprecated() { return true; } - -} // namespace internal -} // namespace testing - -namespace std { -// Some standard library implementations use `struct tuple_size` and some use -// `class tuple_size`. Clang warns about the mismatch. -// https://reviews.llvm.org/D55466 -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wmismatched-tags" -#endif -template -struct tuple_size> - : std::integral_constant {}; -#ifdef __clang__ -#pragma clang diagnostic pop -#endif -} // namespace std - -#define GTEST_MESSAGE_AT_(file, line, message, result_type) \ - ::testing::internal::AssertHelper(result_type, file, line, message) = \ - ::testing::Message() - -#define GTEST_MESSAGE_(message, result_type) \ - GTEST_MESSAGE_AT_(__FILE__, __LINE__, message, result_type) - -#define GTEST_FATAL_FAILURE_(message) \ - return GTEST_MESSAGE_(message, ::testing::TestPartResult::kFatalFailure) - -#define GTEST_NONFATAL_FAILURE_(message) \ - GTEST_MESSAGE_(message, ::testing::TestPartResult::kNonFatalFailure) - -#define GTEST_SUCCESS_(message) \ - GTEST_MESSAGE_(message, ::testing::TestPartResult::kSuccess) - -#define GTEST_SKIP_(message) \ - return GTEST_MESSAGE_(message, ::testing::TestPartResult::kSkip) - -// Suppress MSVC warning 4072 (unreachable code) for the code following -// statement if it returns or throws (or doesn't return or throw in some -// situations). -// NOTE: The "else" is important to keep this expansion to prevent a top-level -// "else" from attaching to our "if". -#define GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) \ - if (::testing::internal::AlwaysTrue()) { \ - statement; \ - } else /* NOLINT */ \ - static_assert(true, "") // User must have a semicolon after expansion. - -#if GTEST_HAS_EXCEPTIONS - -namespace testing { -namespace internal { - -class NeverThrown { - public: - const char* what() const noexcept { - return "this exception should never be thrown"; - } -}; - -} // namespace internal -} // namespace testing - -#if GTEST_HAS_RTTI - -#define GTEST_EXCEPTION_TYPE_(e) ::testing::internal::GetTypeName(typeid(e)) - -#else // GTEST_HAS_RTTI - -#define GTEST_EXCEPTION_TYPE_(e) \ - std::string { "an std::exception-derived error" } - -#endif // GTEST_HAS_RTTI - -#define GTEST_TEST_THROW_CATCH_STD_EXCEPTION_(statement, expected_exception) \ - catch (typename std::conditional< \ - std::is_same::type>::type, \ - std::exception>::value, \ - const ::testing::internal::NeverThrown&, const std::exception&>::type \ - e) { \ - gtest_msg.value = "Expected: " #statement \ - " throws an exception of type " #expected_exception \ - ".\n Actual: it throws "; \ - gtest_msg.value += GTEST_EXCEPTION_TYPE_(e); \ - gtest_msg.value += " with description \""; \ - gtest_msg.value += e.what(); \ - gtest_msg.value += "\"."; \ - goto GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__); \ - } - -#else // GTEST_HAS_EXCEPTIONS - -#define GTEST_TEST_THROW_CATCH_STD_EXCEPTION_(statement, expected_exception) - -#endif // GTEST_HAS_EXCEPTIONS - -#define GTEST_TEST_THROW_(statement, expected_exception, fail) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::TrueWithString gtest_msg{}) { \ - bool gtest_caught_expected = false; \ - try { \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - } catch (expected_exception const&) { \ - gtest_caught_expected = true; \ - } \ - GTEST_TEST_THROW_CATCH_STD_EXCEPTION_(statement, expected_exception) \ - catch (...) { \ - gtest_msg.value = "Expected: " #statement \ - " throws an exception of type " #expected_exception \ - ".\n Actual: it throws a different type."; \ - goto GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__); \ - } \ - if (!gtest_caught_expected) { \ - gtest_msg.value = "Expected: " #statement \ - " throws an exception of type " #expected_exception \ - ".\n Actual: it throws nothing."; \ - goto GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__); \ - } \ - } else /*NOLINT*/ \ - GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__) \ - : fail(gtest_msg.value.c_str()) - -#if GTEST_HAS_EXCEPTIONS - -#define GTEST_TEST_NO_THROW_CATCH_STD_EXCEPTION_() \ - catch (std::exception const& e) { \ - gtest_msg.value = "it throws "; \ - gtest_msg.value += GTEST_EXCEPTION_TYPE_(e); \ - gtest_msg.value += " with description \""; \ - gtest_msg.value += e.what(); \ - gtest_msg.value += "\"."; \ - goto GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__); \ - } - -#else // GTEST_HAS_EXCEPTIONS - -#define GTEST_TEST_NO_THROW_CATCH_STD_EXCEPTION_() - -#endif // GTEST_HAS_EXCEPTIONS - -#define GTEST_TEST_NO_THROW_(statement, fail) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::TrueWithString gtest_msg{}) { \ - try { \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - } \ - GTEST_TEST_NO_THROW_CATCH_STD_EXCEPTION_() \ - catch (...) { \ - gtest_msg.value = "it throws."; \ - goto GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__); \ - } \ - } else \ - GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__) \ - : fail(("Expected: " #statement " doesn't throw an exception.\n" \ - " Actual: " + \ - gtest_msg.value) \ - .c_str()) - -#define GTEST_TEST_ANY_THROW_(statement, fail) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::AlwaysTrue()) { \ - bool gtest_caught_any = false; \ - try { \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - } catch (...) { \ - gtest_caught_any = true; \ - } \ - if (!gtest_caught_any) { \ - goto GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__); \ - } \ - } else \ - GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__) \ - : fail("Expected: " #statement \ - " throws an exception.\n" \ - " Actual: it doesn't.") - -// Implements Boolean test assertions such as EXPECT_TRUE. expression can be -// either a boolean expression or an AssertionResult. text is a textual -// representation of expression as it was passed into the EXPECT_TRUE. -#define GTEST_TEST_BOOLEAN_(expression, text, actual, expected, fail) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (const ::testing::AssertionResult gtest_ar_ = \ - ::testing::AssertionResult(expression)) \ - ; \ - else \ - fail(::testing::internal::GetBoolAssertionFailureMessage( \ - gtest_ar_, text, #actual, #expected) \ - .c_str()) - -#define GTEST_TEST_NO_FATAL_FAILURE_(statement, fail) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::AlwaysTrue()) { \ - ::testing::internal::HasNewFatalFailureHelper gtest_fatal_failure_checker; \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - if (gtest_fatal_failure_checker.has_new_fatal_failure()) { \ - goto GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__); \ - } \ - } else \ - GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__) \ - : fail("Expected: " #statement \ - " doesn't generate new fatal " \ - "failures in the current thread.\n" \ - " Actual: it does.") - -// Expands to the name of the class that implements the given test. -#define GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) \ - test_suite_name##_##test_name##_Test - -// Helper macro for defining tests. -#define GTEST_TEST_(test_suite_name, test_name, parent_class, parent_id) \ - static_assert(sizeof(GTEST_STRINGIFY_(test_suite_name)) > 1, \ - "test_suite_name must not be empty"); \ - static_assert(sizeof(GTEST_STRINGIFY_(test_name)) > 1, \ - "test_name must not be empty"); \ - class GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) \ - : public parent_class { \ - public: \ - GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() = default; \ - ~GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() override = default; \ - GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) \ - (const GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) &) = delete; \ - GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) & operator=( \ - const GTEST_TEST_CLASS_NAME_(test_suite_name, \ - test_name) &) = delete; /* NOLINT */ \ - GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) \ - (GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) &&) noexcept = delete; \ - GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) & operator=( \ - GTEST_TEST_CLASS_NAME_(test_suite_name, \ - test_name) &&) noexcept = delete; /* NOLINT */ \ - \ - private: \ - void TestBody() override; \ - static ::testing::TestInfo* const test_info_ GTEST_ATTRIBUTE_UNUSED_; \ - }; \ - \ - ::testing::TestInfo* const GTEST_TEST_CLASS_NAME_(test_suite_name, \ - test_name)::test_info_ = \ - ::testing::internal::MakeAndRegisterTestInfo( \ - #test_suite_name, #test_name, nullptr, nullptr, \ - ::testing::internal::CodeLocation(__FILE__, __LINE__), (parent_id), \ - ::testing::internal::SuiteApiResolver< \ - parent_class>::GetSetUpCaseOrSuite(__FILE__, __LINE__), \ - ::testing::internal::SuiteApiResolver< \ - parent_class>::GetTearDownCaseOrSuite(__FILE__, __LINE__), \ - new ::testing::internal::TestFactoryImpl); \ - void GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)::TestBody() - -#endif // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-param-util.h b/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-param-util.h deleted file mode 100644 index e7af2f9..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-param-util.h +++ /dev/null @@ -1,956 +0,0 @@ -// 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. - -// Type and function utilities for implementing parameterized tests. - -// IWYU pragma: private, include "gtest/gtest.h" -// IWYU pragma: friend gtest/.* -// IWYU pragma: friend gmock/.* - -#ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_ -#define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "gtest/gtest-printers.h" -#include "gtest/gtest-test-part.h" -#include "gtest/internal/gtest-internal.h" -#include "gtest/internal/gtest-port.h" - -namespace testing { -// Input to a parameterized test name generator, describing a test parameter. -// Consists of the parameter value and the integer parameter index. -template -struct TestParamInfo { - TestParamInfo(const ParamType& a_param, size_t an_index) - : param(a_param), index(an_index) {} - ParamType param; - size_t index; -}; - -// A builtin parameterized test name generator which returns the result of -// testing::PrintToString. -struct PrintToStringParamName { - template - std::string operator()(const TestParamInfo& info) const { - return PrintToString(info.param); - } -}; - -namespace internal { - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// Utility Functions - -// Outputs a message explaining invalid registration of different -// fixture class for the same test suite. This may happen when -// TEST_P macro is used to define two tests with the same name -// but in different namespaces. -GTEST_API_ void ReportInvalidTestSuiteType(const char* test_suite_name, - CodeLocation code_location); - -template -class ParamGeneratorInterface; -template -class ParamGenerator; - -// Interface for iterating over elements provided by an implementation -// of ParamGeneratorInterface. -template -class ParamIteratorInterface { - public: - virtual ~ParamIteratorInterface() {} - // A pointer to the base generator instance. - // Used only for the purposes of iterator comparison - // to make sure that two iterators belong to the same generator. - virtual const ParamGeneratorInterface* BaseGenerator() const = 0; - // Advances iterator to point to the next element - // provided by the generator. The caller is responsible - // for not calling Advance() on an iterator equal to - // BaseGenerator()->End(). - virtual void Advance() = 0; - // Clones the iterator object. Used for implementing copy semantics - // of ParamIterator. - virtual ParamIteratorInterface* Clone() const = 0; - // Dereferences the current iterator and provides (read-only) access - // to the pointed value. It is the caller's responsibility not to call - // Current() on an iterator equal to BaseGenerator()->End(). - // Used for implementing ParamGenerator::operator*(). - virtual const T* Current() const = 0; - // Determines whether the given iterator and other point to the same - // element in the sequence generated by the generator. - // Used for implementing ParamGenerator::operator==(). - virtual bool Equals(const ParamIteratorInterface& other) const = 0; -}; - -// Class iterating over elements provided by an implementation of -// ParamGeneratorInterface. It wraps ParamIteratorInterface -// and implements the const forward iterator concept. -template -class ParamIterator { - public: - typedef T value_type; - typedef const T& reference; - typedef ptrdiff_t difference_type; - - // ParamIterator assumes ownership of the impl_ pointer. - ParamIterator(const ParamIterator& other) : impl_(other.impl_->Clone()) {} - ParamIterator& operator=(const ParamIterator& other) { - if (this != &other) impl_.reset(other.impl_->Clone()); - return *this; - } - - const T& operator*() const { return *impl_->Current(); } - const T* operator->() const { return impl_->Current(); } - // Prefix version of operator++. - ParamIterator& operator++() { - impl_->Advance(); - return *this; - } - // Postfix version of operator++. - ParamIterator operator++(int /*unused*/) { - ParamIteratorInterface* clone = impl_->Clone(); - impl_->Advance(); - return ParamIterator(clone); - } - bool operator==(const ParamIterator& other) const { - return impl_.get() == other.impl_.get() || impl_->Equals(*other.impl_); - } - bool operator!=(const ParamIterator& other) const { - return !(*this == other); - } - - private: - friend class ParamGenerator; - explicit ParamIterator(ParamIteratorInterface* impl) : impl_(impl) {} - std::unique_ptr> impl_; -}; - -// ParamGeneratorInterface is the binary interface to access generators -// defined in other translation units. -template -class ParamGeneratorInterface { - public: - typedef T ParamType; - - virtual ~ParamGeneratorInterface() {} - - // Generator interface definition - virtual ParamIteratorInterface* Begin() const = 0; - virtual ParamIteratorInterface* End() const = 0; -}; - -// Wraps ParamGeneratorInterface and provides general generator syntax -// compatible with the STL Container concept. -// This class implements copy initialization semantics and the contained -// ParamGeneratorInterface instance is shared among all copies -// of the original object. This is possible because that instance is immutable. -template -class ParamGenerator { - public: - typedef ParamIterator iterator; - - explicit ParamGenerator(ParamGeneratorInterface* impl) : impl_(impl) {} - ParamGenerator(const ParamGenerator& other) : impl_(other.impl_) {} - - ParamGenerator& operator=(const ParamGenerator& other) { - impl_ = other.impl_; - return *this; - } - - iterator begin() const { return iterator(impl_->Begin()); } - iterator end() const { return iterator(impl_->End()); } - - private: - std::shared_ptr> impl_; -}; - -// Generates values from a range of two comparable values. Can be used to -// generate sequences of user-defined types that implement operator+() and -// operator<(). -// This class is used in the Range() function. -template -class RangeGenerator : public ParamGeneratorInterface { - public: - RangeGenerator(T begin, T end, IncrementT step) - : begin_(begin), - end_(end), - step_(step), - end_index_(CalculateEndIndex(begin, end, step)) {} - ~RangeGenerator() override {} - - ParamIteratorInterface* Begin() const override { - return new Iterator(this, begin_, 0, step_); - } - ParamIteratorInterface* End() const override { - return new Iterator(this, end_, end_index_, step_); - } - - private: - class Iterator : public ParamIteratorInterface { - public: - Iterator(const ParamGeneratorInterface* base, T value, int index, - IncrementT step) - : base_(base), value_(value), index_(index), step_(step) {} - ~Iterator() override {} - - const ParamGeneratorInterface* BaseGenerator() const override { - return base_; - } - void Advance() override { - value_ = static_cast(value_ + step_); - index_++; - } - ParamIteratorInterface* Clone() const override { - return new Iterator(*this); - } - const T* Current() const override { return &value_; } - bool Equals(const ParamIteratorInterface& other) const override { - // Having the same base generator guarantees that the other - // iterator is of the same type and we can downcast. - GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) - << "The program attempted to compare iterators " - << "from different generators." << std::endl; - const int other_index = - CheckedDowncastToActualType(&other)->index_; - return index_ == other_index; - } - - private: - Iterator(const Iterator& other) - : ParamIteratorInterface(), - base_(other.base_), - value_(other.value_), - index_(other.index_), - step_(other.step_) {} - - // No implementation - assignment is unsupported. - void operator=(const Iterator& other); - - const ParamGeneratorInterface* const base_; - T value_; - int index_; - const IncrementT step_; - }; // class RangeGenerator::Iterator - - static int CalculateEndIndex(const T& begin, const T& end, - const IncrementT& step) { - int end_index = 0; - for (T i = begin; i < end; i = static_cast(i + step)) end_index++; - return end_index; - } - - // No implementation - assignment is unsupported. - void operator=(const RangeGenerator& other); - - const T begin_; - const T end_; - const IncrementT step_; - // The index for the end() iterator. All the elements in the generated - // sequence are indexed (0-based) to aid iterator comparison. - const int end_index_; -}; // class RangeGenerator - -// Generates values from a pair of STL-style iterators. Used in the -// ValuesIn() function. The elements are copied from the source range -// since the source can be located on the stack, and the generator -// is likely to persist beyond that stack frame. -template -class ValuesInIteratorRangeGenerator : public ParamGeneratorInterface { - public: - template - ValuesInIteratorRangeGenerator(ForwardIterator begin, ForwardIterator end) - : container_(begin, end) {} - ~ValuesInIteratorRangeGenerator() override {} - - ParamIteratorInterface* Begin() const override { - return new Iterator(this, container_.begin()); - } - ParamIteratorInterface* End() const override { - return new Iterator(this, container_.end()); - } - - private: - typedef typename ::std::vector ContainerType; - - class Iterator : public ParamIteratorInterface { - public: - Iterator(const ParamGeneratorInterface* base, - typename ContainerType::const_iterator iterator) - : base_(base), iterator_(iterator) {} - ~Iterator() override {} - - const ParamGeneratorInterface* BaseGenerator() const override { - return base_; - } - void Advance() override { - ++iterator_; - value_.reset(); - } - ParamIteratorInterface* Clone() const override { - return new Iterator(*this); - } - // We need to use cached value referenced by iterator_ because *iterator_ - // can return a temporary object (and of type other then T), so just - // having "return &*iterator_;" doesn't work. - // value_ is updated here and not in Advance() because Advance() - // can advance iterator_ beyond the end of the range, and we cannot - // detect that fact. The client code, on the other hand, is - // responsible for not calling Current() on an out-of-range iterator. - const T* Current() const override { - if (value_.get() == nullptr) value_.reset(new T(*iterator_)); - return value_.get(); - } - bool Equals(const ParamIteratorInterface& other) const override { - // Having the same base generator guarantees that the other - // iterator is of the same type and we can downcast. - GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) - << "The program attempted to compare iterators " - << "from different generators." << std::endl; - return iterator_ == - CheckedDowncastToActualType(&other)->iterator_; - } - - private: - Iterator(const Iterator& other) - // The explicit constructor call suppresses a false warning - // emitted by gcc when supplied with the -Wextra option. - : ParamIteratorInterface(), - base_(other.base_), - iterator_(other.iterator_) {} - - const ParamGeneratorInterface* const base_; - typename ContainerType::const_iterator iterator_; - // A cached value of *iterator_. We keep it here to allow access by - // pointer in the wrapping iterator's operator->(). - // value_ needs to be mutable to be accessed in Current(). - // Use of std::unique_ptr helps manage cached value's lifetime, - // which is bound by the lifespan of the iterator itself. - mutable std::unique_ptr value_; - }; // class ValuesInIteratorRangeGenerator::Iterator - - // No implementation - assignment is unsupported. - void operator=(const ValuesInIteratorRangeGenerator& other); - - const ContainerType container_; -}; // class ValuesInIteratorRangeGenerator - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Default parameterized test name generator, returns a string containing the -// integer test parameter index. -template -std::string DefaultParamName(const TestParamInfo& info) { - Message name_stream; - name_stream << info.index; - return name_stream.GetString(); -} - -template -void TestNotEmpty() { - static_assert(sizeof(T) == 0, "Empty arguments are not allowed."); -} -template -void TestNotEmpty(const T&) {} - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Stores a parameter value and later creates tests parameterized with that -// value. -template -class ParameterizedTestFactory : public TestFactoryBase { - public: - typedef typename TestClass::ParamType ParamType; - explicit ParameterizedTestFactory(ParamType parameter) - : parameter_(parameter) {} - Test* CreateTest() override { - TestClass::SetParam(¶meter_); - return new TestClass(); - } - - private: - const ParamType parameter_; - - ParameterizedTestFactory(const ParameterizedTestFactory&) = delete; - ParameterizedTestFactory& operator=(const ParameterizedTestFactory&) = delete; -}; - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// TestMetaFactoryBase is a base class for meta-factories that create -// test factories for passing into MakeAndRegisterTestInfo function. -template -class TestMetaFactoryBase { - public: - virtual ~TestMetaFactoryBase() {} - - virtual TestFactoryBase* CreateTestFactory(ParamType parameter) = 0; -}; - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// TestMetaFactory creates test factories for passing into -// MakeAndRegisterTestInfo function. Since MakeAndRegisterTestInfo receives -// ownership of test factory pointer, same factory object cannot be passed -// into that method twice. But ParameterizedTestSuiteInfo is going to call -// it for each Test/Parameter value combination. Thus it needs meta factory -// creator class. -template -class TestMetaFactory - : public TestMetaFactoryBase { - public: - using ParamType = typename TestSuite::ParamType; - - TestMetaFactory() {} - - TestFactoryBase* CreateTestFactory(ParamType parameter) override { - return new ParameterizedTestFactory(parameter); - } - - private: - TestMetaFactory(const TestMetaFactory&) = delete; - TestMetaFactory& operator=(const TestMetaFactory&) = delete; -}; - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// ParameterizedTestSuiteInfoBase is a generic interface -// to ParameterizedTestSuiteInfo classes. ParameterizedTestSuiteInfoBase -// accumulates test information provided by TEST_P macro invocations -// and generators provided by INSTANTIATE_TEST_SUITE_P macro invocations -// and uses that information to register all resulting test instances -// in RegisterTests method. The ParameterizeTestSuiteRegistry class holds -// a collection of pointers to the ParameterizedTestSuiteInfo objects -// and calls RegisterTests() on each of them when asked. -class ParameterizedTestSuiteInfoBase { - public: - virtual ~ParameterizedTestSuiteInfoBase() {} - - // Base part of test suite name for display purposes. - virtual const std::string& GetTestSuiteName() const = 0; - // Test suite id to verify identity. - virtual TypeId GetTestSuiteTypeId() const = 0; - // UnitTest class invokes this method to register tests in this - // test suite right before running them in RUN_ALL_TESTS macro. - // This method should not be called more than once on any single - // instance of a ParameterizedTestSuiteInfoBase derived class. - virtual void RegisterTests() = 0; - - protected: - ParameterizedTestSuiteInfoBase() {} - - private: - ParameterizedTestSuiteInfoBase(const ParameterizedTestSuiteInfoBase&) = - delete; - ParameterizedTestSuiteInfoBase& operator=( - const ParameterizedTestSuiteInfoBase&) = delete; -}; - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Report a the name of a test_suit as safe to ignore -// as the side effect of construction of this type. -struct GTEST_API_ MarkAsIgnored { - explicit MarkAsIgnored(const char* test_suite); -}; - -GTEST_API_ void InsertSyntheticTestCase(const std::string& name, - CodeLocation location, bool has_test_p); - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// ParameterizedTestSuiteInfo accumulates tests obtained from TEST_P -// macro invocations for a particular test suite and generators -// obtained from INSTANTIATE_TEST_SUITE_P macro invocations for that -// test suite. It registers tests with all values generated by all -// generators when asked. -template -class ParameterizedTestSuiteInfo : public ParameterizedTestSuiteInfoBase { - public: - // ParamType and GeneratorCreationFunc are private types but are required - // for declarations of public methods AddTestPattern() and - // AddTestSuiteInstantiation(). - using ParamType = typename TestSuite::ParamType; - // A function that returns an instance of appropriate generator type. - typedef ParamGenerator(GeneratorCreationFunc)(); - using ParamNameGeneratorFunc = std::string(const TestParamInfo&); - - explicit ParameterizedTestSuiteInfo(const char* name, - CodeLocation code_location) - : test_suite_name_(name), code_location_(code_location) {} - - // Test suite base name for display purposes. - const std::string& GetTestSuiteName() const override { - return test_suite_name_; - } - // Test suite id to verify identity. - TypeId GetTestSuiteTypeId() const override { return GetTypeId(); } - // TEST_P macro uses AddTestPattern() to record information - // about a single test in a LocalTestInfo structure. - // test_suite_name is the base name of the test suite (without invocation - // prefix). test_base_name is the name of an individual test without - // parameter index. For the test SequenceA/FooTest.DoBar/1 FooTest is - // test suite base name and DoBar is test base name. - void AddTestPattern(const char* test_suite_name, const char* test_base_name, - TestMetaFactoryBase* meta_factory, - CodeLocation code_location) { - tests_.push_back(std::shared_ptr(new TestInfo( - test_suite_name, test_base_name, meta_factory, code_location))); - } - // INSTANTIATE_TEST_SUITE_P macro uses AddGenerator() to record information - // about a generator. - int AddTestSuiteInstantiation(const std::string& instantiation_name, - GeneratorCreationFunc* func, - ParamNameGeneratorFunc* name_func, - const char* file, int line) { - instantiations_.push_back( - InstantiationInfo(instantiation_name, func, name_func, file, line)); - return 0; // Return value used only to run this method in namespace scope. - } - // UnitTest class invokes this method to register tests in this test suite - // right before running tests in RUN_ALL_TESTS macro. - // This method should not be called more than once on any single - // instance of a ParameterizedTestSuiteInfoBase derived class. - // UnitTest has a guard to prevent from calling this method more than once. - void RegisterTests() override { - bool generated_instantiations = false; - - for (typename TestInfoContainer::iterator test_it = tests_.begin(); - test_it != tests_.end(); ++test_it) { - std::shared_ptr test_info = *test_it; - for (typename InstantiationContainer::iterator gen_it = - instantiations_.begin(); - gen_it != instantiations_.end(); ++gen_it) { - const std::string& instantiation_name = gen_it->name; - ParamGenerator generator((*gen_it->generator)()); - ParamNameGeneratorFunc* name_func = gen_it->name_func; - const char* file = gen_it->file; - int line = gen_it->line; - - std::string test_suite_name; - if (!instantiation_name.empty()) - test_suite_name = instantiation_name + "/"; - test_suite_name += test_info->test_suite_base_name; - - size_t i = 0; - std::set test_param_names; - for (typename ParamGenerator::iterator param_it = - generator.begin(); - param_it != generator.end(); ++param_it, ++i) { - generated_instantiations = true; - - Message test_name_stream; - - std::string param_name = - name_func(TestParamInfo(*param_it, i)); - - GTEST_CHECK_(IsValidParamName(param_name)) - << "Parameterized test name '" << param_name - << "' is invalid, in " << file << " line " << line << std::endl; - - GTEST_CHECK_(test_param_names.count(param_name) == 0) - << "Duplicate parameterized test name '" << param_name << "', in " - << file << " line " << line << std::endl; - - test_param_names.insert(param_name); - - if (!test_info->test_base_name.empty()) { - test_name_stream << test_info->test_base_name << "/"; - } - test_name_stream << param_name; - MakeAndRegisterTestInfo( - test_suite_name.c_str(), test_name_stream.GetString().c_str(), - nullptr, // No type parameter. - PrintToString(*param_it).c_str(), test_info->code_location, - GetTestSuiteTypeId(), - SuiteApiResolver::GetSetUpCaseOrSuite(file, line), - SuiteApiResolver::GetTearDownCaseOrSuite(file, line), - test_info->test_meta_factory->CreateTestFactory(*param_it)); - } // for param_it - } // for gen_it - } // for test_it - - if (!generated_instantiations) { - // There are no generaotrs, or they all generate nothing ... - InsertSyntheticTestCase(GetTestSuiteName(), code_location_, - !tests_.empty()); - } - } // RegisterTests - - private: - // LocalTestInfo structure keeps information about a single test registered - // with TEST_P macro. - struct TestInfo { - TestInfo(const char* a_test_suite_base_name, const char* a_test_base_name, - TestMetaFactoryBase* a_test_meta_factory, - CodeLocation a_code_location) - : test_suite_base_name(a_test_suite_base_name), - test_base_name(a_test_base_name), - test_meta_factory(a_test_meta_factory), - code_location(a_code_location) {} - - const std::string test_suite_base_name; - const std::string test_base_name; - const std::unique_ptr> test_meta_factory; - const CodeLocation code_location; - }; - using TestInfoContainer = ::std::vector>; - // Records data received from INSTANTIATE_TEST_SUITE_P macros: - // - struct InstantiationInfo { - InstantiationInfo(const std::string& name_in, - GeneratorCreationFunc* generator_in, - ParamNameGeneratorFunc* name_func_in, const char* file_in, - int line_in) - : name(name_in), - generator(generator_in), - name_func(name_func_in), - file(file_in), - line(line_in) {} - - std::string name; - GeneratorCreationFunc* generator; - ParamNameGeneratorFunc* name_func; - const char* file; - int line; - }; - typedef ::std::vector InstantiationContainer; - - static bool IsValidParamName(const std::string& name) { - // Check for empty string - if (name.empty()) return false; - - // Check for invalid characters - for (std::string::size_type index = 0; index < name.size(); ++index) { - if (!IsAlNum(name[index]) && name[index] != '_') return false; - } - - return true; - } - - const std::string test_suite_name_; - CodeLocation code_location_; - TestInfoContainer tests_; - InstantiationContainer instantiations_; - - ParameterizedTestSuiteInfo(const ParameterizedTestSuiteInfo&) = delete; - ParameterizedTestSuiteInfo& operator=(const ParameterizedTestSuiteInfo&) = - delete; -}; // class ParameterizedTestSuiteInfo - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -template -using ParameterizedTestCaseInfo = ParameterizedTestSuiteInfo; -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// ParameterizedTestSuiteRegistry contains a map of -// ParameterizedTestSuiteInfoBase classes accessed by test suite names. TEST_P -// and INSTANTIATE_TEST_SUITE_P macros use it to locate their corresponding -// ParameterizedTestSuiteInfo descriptors. -class ParameterizedTestSuiteRegistry { - public: - ParameterizedTestSuiteRegistry() {} - ~ParameterizedTestSuiteRegistry() { - for (auto& test_suite_info : test_suite_infos_) { - delete test_suite_info; - } - } - - // Looks up or creates and returns a structure containing information about - // tests and instantiations of a particular test suite. - template - ParameterizedTestSuiteInfo* GetTestSuitePatternHolder( - const char* test_suite_name, CodeLocation code_location) { - ParameterizedTestSuiteInfo* typed_test_info = nullptr; - for (auto& test_suite_info : test_suite_infos_) { - if (test_suite_info->GetTestSuiteName() == test_suite_name) { - if (test_suite_info->GetTestSuiteTypeId() != GetTypeId()) { - // Complain about incorrect usage of Google Test facilities - // and terminate the program since we cannot guaranty correct - // test suite setup and tear-down in this case. - ReportInvalidTestSuiteType(test_suite_name, code_location); - posix::Abort(); - } else { - // At this point we are sure that the object we found is of the same - // type we are looking for, so we downcast it to that type - // without further checks. - typed_test_info = CheckedDowncastToActualType< - ParameterizedTestSuiteInfo>(test_suite_info); - } - break; - } - } - if (typed_test_info == nullptr) { - typed_test_info = new ParameterizedTestSuiteInfo( - test_suite_name, code_location); - test_suite_infos_.push_back(typed_test_info); - } - return typed_test_info; - } - void RegisterTests() { - for (auto& test_suite_info : test_suite_infos_) { - test_suite_info->RegisterTests(); - } - } -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - template - ParameterizedTestCaseInfo* GetTestCasePatternHolder( - const char* test_case_name, CodeLocation code_location) { - return GetTestSuitePatternHolder(test_case_name, code_location); - } - -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - private: - using TestSuiteInfoContainer = ::std::vector; - - TestSuiteInfoContainer test_suite_infos_; - - ParameterizedTestSuiteRegistry(const ParameterizedTestSuiteRegistry&) = - delete; - ParameterizedTestSuiteRegistry& operator=( - const ParameterizedTestSuiteRegistry&) = delete; -}; - -// Keep track of what type-parameterized test suite are defined and -// where as well as which are intatiated. This allows susequently -// identifying suits that are defined but never used. -class TypeParameterizedTestSuiteRegistry { - public: - // Add a suite definition - void RegisterTestSuite(const char* test_suite_name, - CodeLocation code_location); - - // Add an instantiation of a suit. - void RegisterInstantiation(const char* test_suite_name); - - // For each suit repored as defined but not reported as instantiation, - // emit a test that reports that fact (configurably, as an error). - void CheckForInstantiations(); - - private: - struct TypeParameterizedTestSuiteInfo { - explicit TypeParameterizedTestSuiteInfo(CodeLocation c) - : code_location(c), instantiated(false) {} - - CodeLocation code_location; - bool instantiated; - }; - - std::map suites_; -}; - -} // namespace internal - -// Forward declarations of ValuesIn(), which is implemented in -// include/gtest/gtest-param-test.h. -template -internal::ParamGenerator ValuesIn( - const Container& container); - -namespace internal { -// Used in the Values() function to provide polymorphic capabilities. - -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable : 4100) -#endif - -template -class ValueArray { - public: - explicit ValueArray(Ts... v) : v_(FlatTupleConstructTag{}, std::move(v)...) {} - - template - operator ParamGenerator() const { // NOLINT - return ValuesIn(MakeVector(MakeIndexSequence())); - } - - private: - template - std::vector MakeVector(IndexSequence) const { - return std::vector{static_cast(v_.template Get())...}; - } - - FlatTuple v_; -}; - -#ifdef _MSC_VER -#pragma warning(pop) -#endif - -template -class CartesianProductGenerator - : public ParamGeneratorInterface<::std::tuple> { - public: - typedef ::std::tuple ParamType; - - CartesianProductGenerator(const std::tuple...>& g) - : generators_(g) {} - ~CartesianProductGenerator() override {} - - ParamIteratorInterface* Begin() const override { - return new Iterator(this, generators_, false); - } - ParamIteratorInterface* End() const override { - return new Iterator(this, generators_, true); - } - - private: - template - class IteratorImpl; - template - class IteratorImpl> - : public ParamIteratorInterface { - public: - IteratorImpl(const ParamGeneratorInterface* base, - const std::tuple...>& generators, - bool is_end) - : base_(base), - begin_(std::get(generators).begin()...), - end_(std::get(generators).end()...), - current_(is_end ? end_ : begin_) { - ComputeCurrentValue(); - } - ~IteratorImpl() override {} - - const ParamGeneratorInterface* BaseGenerator() const override { - return base_; - } - // Advance should not be called on beyond-of-range iterators - // so no component iterators must be beyond end of range, either. - void Advance() override { - assert(!AtEnd()); - // Advance the last iterator. - ++std::get(current_); - // if that reaches end, propagate that up. - AdvanceIfEnd(); - ComputeCurrentValue(); - } - ParamIteratorInterface* Clone() const override { - return new IteratorImpl(*this); - } - - const ParamType* Current() const override { return current_value_.get(); } - - bool Equals(const ParamIteratorInterface& other) const override { - // Having the same base generator guarantees that the other - // iterator is of the same type and we can downcast. - GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) - << "The program attempted to compare iterators " - << "from different generators." << std::endl; - const IteratorImpl* typed_other = - CheckedDowncastToActualType(&other); - - // We must report iterators equal if they both point beyond their - // respective ranges. That can happen in a variety of fashions, - // so we have to consult AtEnd(). - if (AtEnd() && typed_other->AtEnd()) return true; - - bool same = true; - bool dummy[] = { - (same = same && std::get(current_) == - std::get(typed_other->current_))...}; - (void)dummy; - return same; - } - - private: - template - void AdvanceIfEnd() { - if (std::get(current_) != std::get(end_)) return; - - bool last = ThisI == 0; - if (last) { - // We are done. Nothing else to propagate. - return; - } - - constexpr size_t NextI = ThisI - (ThisI != 0); - std::get(current_) = std::get(begin_); - ++std::get(current_); - AdvanceIfEnd(); - } - - void ComputeCurrentValue() { - if (!AtEnd()) - current_value_ = std::make_shared(*std::get(current_)...); - } - bool AtEnd() const { - bool at_end = false; - bool dummy[] = { - (at_end = at_end || std::get(current_) == std::get(end_))...}; - (void)dummy; - return at_end; - } - - const ParamGeneratorInterface* const base_; - std::tuple::iterator...> begin_; - std::tuple::iterator...> end_; - std::tuple::iterator...> current_; - std::shared_ptr current_value_; - }; - - using Iterator = IteratorImpl::type>; - - std::tuple...> generators_; -}; - -template -class CartesianProductHolder { - public: - CartesianProductHolder(const Gen&... g) : generators_(g...) {} - template - operator ParamGenerator<::std::tuple>() const { - return ParamGenerator<::std::tuple>( - new CartesianProductGenerator(generators_)); - } - - private: - std::tuple generators_; -}; - -} // namespace internal -} // namespace testing - -#endif // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-port-arch.h b/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-port-arch.h deleted file mode 100644 index f025db7..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-port-arch.h +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright 2015, 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. - -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file defines the GTEST_OS_* macro. -// It is separate from gtest-port.h so that custom/gtest-port.h can include it. - -#ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_ -#define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_ - -// Determines the platform on which Google Test is compiled. -#ifdef __CYGWIN__ -#define GTEST_OS_CYGWIN 1 -#elif defined(__MINGW__) || defined(__MINGW32__) || defined(__MINGW64__) -#define GTEST_OS_WINDOWS_MINGW 1 -#define GTEST_OS_WINDOWS 1 -#elif defined _WIN32 -#define GTEST_OS_WINDOWS 1 -#ifdef _WIN32_WCE -#define GTEST_OS_WINDOWS_MOBILE 1 -#elif defined(WINAPI_FAMILY) -#include -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -#define GTEST_OS_WINDOWS_DESKTOP 1 -#elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP) -#define GTEST_OS_WINDOWS_PHONE 1 -#elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) -#define GTEST_OS_WINDOWS_RT 1 -#elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_TV_TITLE) -#define GTEST_OS_WINDOWS_PHONE 1 -#define GTEST_OS_WINDOWS_TV_TITLE 1 -#else -// WINAPI_FAMILY defined but no known partition matched. -// Default to desktop. -#define GTEST_OS_WINDOWS_DESKTOP 1 -#endif -#else -#define GTEST_OS_WINDOWS_DESKTOP 1 -#endif // _WIN32_WCE -#elif defined __OS2__ -#define GTEST_OS_OS2 1 -#elif defined __APPLE__ -#define GTEST_OS_MAC 1 -#include -#if TARGET_OS_IPHONE -#define GTEST_OS_IOS 1 -#endif -#elif defined __DragonFly__ -#define GTEST_OS_DRAGONFLY 1 -#elif defined __FreeBSD__ -#define GTEST_OS_FREEBSD 1 -#elif defined __Fuchsia__ -#define GTEST_OS_FUCHSIA 1 -#elif defined(__GNU__) -#define GTEST_OS_GNU_HURD 1 -#elif defined(__GLIBC__) && defined(__FreeBSD_kernel__) -#define GTEST_OS_GNU_KFREEBSD 1 -#elif defined __linux__ -#define GTEST_OS_LINUX 1 -#if defined __ANDROID__ -#define GTEST_OS_LINUX_ANDROID 1 -#endif -#elif defined __MVS__ -#define GTEST_OS_ZOS 1 -#elif defined(__sun) && defined(__SVR4) -#define GTEST_OS_SOLARIS 1 -#elif defined(_AIX) -#define GTEST_OS_AIX 1 -#elif defined(__hpux) -#define GTEST_OS_HPUX 1 -#elif defined __native_client__ -#define GTEST_OS_NACL 1 -#elif defined __NetBSD__ -#define GTEST_OS_NETBSD 1 -#elif defined __OpenBSD__ -#define GTEST_OS_OPENBSD 1 -#elif defined __QNX__ -#define GTEST_OS_QNX 1 -#elif defined(__HAIKU__) -#define GTEST_OS_HAIKU 1 -#elif defined ESP8266 -#define GTEST_OS_ESP8266 1 -#elif defined ESP32 -#define GTEST_OS_ESP32 1 -#elif defined(__XTENSA__) -#define GTEST_OS_XTENSA 1 -#endif // __CYGWIN__ - -#endif // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-port.h b/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-port.h deleted file mode 100644 index 0003d27..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-port.h +++ /dev/null @@ -1,2413 +0,0 @@ -// Copyright 2005, 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. - -// Low-level types and utilities for porting Google Test to various -// platforms. All macros ending with _ and symbols defined in an -// internal namespace are subject to change without notice. Code -// outside Google Test MUST NOT USE THEM DIRECTLY. Macros that don't -// end with _ are part of Google Test's public API and can be used by -// code outside Google Test. -// -// This file is fundamental to Google Test. All other Google Test source -// files are expected to #include this. Therefore, it cannot #include -// any other Google Test header. - -// IWYU pragma: private, include "gtest/gtest.h" -// IWYU pragma: friend gtest/.* -// IWYU pragma: friend gmock/.* - -#ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ -#define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ - -// Environment-describing macros -// ----------------------------- -// -// Google Test can be used in many different environments. Macros in -// this section tell Google Test what kind of environment it is being -// used in, such that Google Test can provide environment-specific -// features and implementations. -// -// Google Test tries to automatically detect the properties of its -// environment, so users usually don't need to worry about these -// macros. However, the automatic detection is not perfect. -// Sometimes it's necessary for a user to define some of the following -// macros in the build script to override Google Test's decisions. -// -// If the user doesn't define a macro in the list, Google Test will -// provide a default definition. After this header is #included, all -// macros in this list will be defined to either 1 or 0. -// -// Notes to maintainers: -// - Each macro here is a user-tweakable knob; do not grow the list -// lightly. -// - Use #if to key off these macros. Don't use #ifdef or "#if -// defined(...)", which will not work as these macros are ALWAYS -// defined. -// -// GTEST_HAS_CLONE - Define it to 1/0 to indicate that clone(2) -// is/isn't available. -// GTEST_HAS_EXCEPTIONS - Define it to 1/0 to indicate that exceptions -// are enabled. -// GTEST_HAS_POSIX_RE - Define it to 1/0 to indicate that POSIX regular -// expressions are/aren't available. -// GTEST_HAS_PTHREAD - Define it to 1/0 to indicate that -// is/isn't available. -// GTEST_HAS_RTTI - Define it to 1/0 to indicate that RTTI is/isn't -// enabled. -// GTEST_HAS_STD_WSTRING - Define it to 1/0 to indicate that -// std::wstring does/doesn't work (Google Test can -// be used where std::wstring is unavailable). -// GTEST_HAS_SEH - Define it to 1/0 to indicate whether the -// compiler supports Microsoft's "Structured -// Exception Handling". -// GTEST_HAS_STREAM_REDIRECTION -// - Define it to 1/0 to indicate whether the -// platform supports I/O stream redirection using -// dup() and dup2(). -// GTEST_LINKED_AS_SHARED_LIBRARY -// - Define to 1 when compiling tests that use -// Google Test as a shared library (known as -// DLL on Windows). -// GTEST_CREATE_SHARED_LIBRARY -// - Define to 1 when compiling Google Test itself -// as a shared library. -// GTEST_DEFAULT_DEATH_TEST_STYLE -// - The default value of --gtest_death_test_style. -// The legacy default has been "fast" in the open -// source version since 2008. The recommended value -// is "threadsafe", and can be set in -// custom/gtest-port.h. - -// Platform-indicating macros -// -------------------------- -// -// Macros indicating the platform on which Google Test is being used -// (a macro is defined to 1 if compiled on the given platform; -// otherwise UNDEFINED -- it's never defined to 0.). Google Test -// defines these macros automatically. Code outside Google Test MUST -// NOT define them. -// -// GTEST_OS_AIX - IBM AIX -// GTEST_OS_CYGWIN - Cygwin -// GTEST_OS_DRAGONFLY - DragonFlyBSD -// GTEST_OS_FREEBSD - FreeBSD -// GTEST_OS_FUCHSIA - Fuchsia -// GTEST_OS_GNU_HURD - GNU/Hurd -// GTEST_OS_GNU_KFREEBSD - GNU/kFreeBSD -// GTEST_OS_HAIKU - Haiku -// GTEST_OS_HPUX - HP-UX -// GTEST_OS_LINUX - Linux -// GTEST_OS_LINUX_ANDROID - Google Android -// GTEST_OS_MAC - Mac OS X -// GTEST_OS_IOS - iOS -// GTEST_OS_NACL - Google Native Client (NaCl) -// GTEST_OS_NETBSD - NetBSD -// GTEST_OS_OPENBSD - OpenBSD -// GTEST_OS_OS2 - OS/2 -// GTEST_OS_QNX - QNX -// GTEST_OS_SOLARIS - Sun Solaris -// GTEST_OS_WINDOWS - Windows (Desktop, MinGW, or Mobile) -// GTEST_OS_WINDOWS_DESKTOP - Windows Desktop -// GTEST_OS_WINDOWS_MINGW - MinGW -// GTEST_OS_WINDOWS_MOBILE - Windows Mobile -// GTEST_OS_WINDOWS_PHONE - Windows Phone -// GTEST_OS_WINDOWS_RT - Windows Store App/WinRT -// GTEST_OS_ZOS - z/OS -// -// Among the platforms, Cygwin, Linux, Mac OS X, and Windows have the -// most stable support. Since core members of the Google Test project -// don't have access to other platforms, support for them may be less -// stable. If you notice any problems on your platform, please notify -// googletestframework@googlegroups.com (patches for fixing them are -// even more welcome!). -// -// It is possible that none of the GTEST_OS_* macros are defined. - -// Feature-indicating macros -// ------------------------- -// -// Macros indicating which Google Test features are available (a macro -// is defined to 1 if the corresponding feature is supported; -// otherwise UNDEFINED -- it's never defined to 0.). Google Test -// defines these macros automatically. Code outside Google Test MUST -// NOT define them. -// -// These macros are public so that portable tests can be written. -// Such tests typically surround code using a feature with an #if -// which controls that code. For example: -// -// #if GTEST_HAS_DEATH_TEST -// EXPECT_DEATH(DoSomethingDeadly()); -// #endif -// -// GTEST_HAS_DEATH_TEST - death tests -// GTEST_HAS_TYPED_TEST - typed tests -// GTEST_HAS_TYPED_TEST_P - type-parameterized tests -// GTEST_IS_THREADSAFE - Google Test is thread-safe. -// GTEST_USES_RE2 - the RE2 regular expression library is used -// GTEST_USES_POSIX_RE - enhanced POSIX regex is used. Do not confuse with -// GTEST_HAS_POSIX_RE (see above) which users can -// define themselves. -// GTEST_USES_SIMPLE_RE - our own simple regex is used; -// the above RE\b(s) are mutually exclusive. - -// Misc public macros -// ------------------ -// -// GTEST_FLAG(flag_name) - references the variable corresponding to -// the given Google Test flag. - -// Internal utilities -// ------------------ -// -// The following macros and utilities are for Google Test's INTERNAL -// use only. Code outside Google Test MUST NOT USE THEM DIRECTLY. -// -// Macros for basic C++ coding: -// GTEST_AMBIGUOUS_ELSE_BLOCKER_ - for disabling a gcc warning. -// GTEST_ATTRIBUTE_UNUSED_ - declares that a class' instances or a -// variable don't have to be used. -// GTEST_MUST_USE_RESULT_ - declares that a function's result must be used. -// GTEST_INTENTIONAL_CONST_COND_PUSH_ - start code section where MSVC C4127 is -// suppressed (constant conditional). -// GTEST_INTENTIONAL_CONST_COND_POP_ - finish code section where MSVC C4127 -// is suppressed. -// GTEST_INTERNAL_HAS_ANY - for enabling UniversalPrinter or -// UniversalPrinter specializations. -// GTEST_INTERNAL_HAS_OPTIONAL - for enabling UniversalPrinter -// or -// UniversalPrinter -// specializations. -// GTEST_INTERNAL_HAS_STRING_VIEW - for enabling Matcher or -// Matcher -// specializations. -// GTEST_INTERNAL_HAS_VARIANT - for enabling UniversalPrinter or -// UniversalPrinter -// specializations. -// -// Synchronization: -// Mutex, MutexLock, ThreadLocal, GetThreadCount() -// - synchronization primitives. -// -// Regular expressions: -// RE - a simple regular expression class using -// 1) the RE2 syntax on all platforms when built with RE2 -// and Abseil as dependencies -// 2) the POSIX Extended Regular Expression syntax on -// UNIX-like platforms, -// 3) A reduced regular exception syntax on other platforms, -// including Windows. -// Logging: -// GTEST_LOG_() - logs messages at the specified severity level. -// LogToStderr() - directs all log messages to stderr. -// FlushInfoLog() - flushes informational log messages. -// -// Stdout and stderr capturing: -// CaptureStdout() - starts capturing stdout. -// GetCapturedStdout() - stops capturing stdout and returns the captured -// string. -// CaptureStderr() - starts capturing stderr. -// GetCapturedStderr() - stops capturing stderr and returns the captured -// string. -// -// Integer types: -// TypeWithSize - maps an integer to a int type. -// TimeInMillis - integers of known sizes. -// BiggestInt - the biggest signed integer type. -// -// Command-line utilities: -// GetInjectableArgvs() - returns the command line as a vector of strings. -// -// Environment variable utilities: -// GetEnv() - gets the value of an environment variable. -// BoolFromGTestEnv() - parses a bool environment variable. -// Int32FromGTestEnv() - parses an int32_t environment variable. -// StringFromGTestEnv() - parses a string environment variable. -// -// Deprecation warnings: -// GTEST_INTERNAL_DEPRECATED(message) - attribute marking a function as -// deprecated; calling a marked function -// should generate a compiler warning - -#include // for isspace, etc -#include // for ptrdiff_t -#include -#include -#include - -#include -// #include // Guarded by GTEST_IS_THREADSAFE below -#include -#include -#include -#include -#include -#include -// #include // Guarded by GTEST_IS_THREADSAFE below -#include -#include -#include - -#ifndef _WIN32_WCE -#include -#include -#endif // !_WIN32_WCE - -#if defined __APPLE__ -#include -#include -#endif - -#include "gtest/internal/custom/gtest-port.h" -#include "gtest/internal/gtest-port-arch.h" - -#if GTEST_HAS_ABSL -#include "absl/flags/declare.h" -#include "absl/flags/flag.h" -#include "absl/flags/reflection.h" -#endif - -#if !defined(GTEST_DEV_EMAIL_) -#define GTEST_DEV_EMAIL_ "googletestframework@@googlegroups.com" -#define GTEST_FLAG_PREFIX_ "gtest_" -#define GTEST_FLAG_PREFIX_DASH_ "gtest-" -#define GTEST_FLAG_PREFIX_UPPER_ "GTEST_" -#define GTEST_NAME_ "Google Test" -#define GTEST_PROJECT_URL_ "https://github.com/google/googletest/" -#endif // !defined(GTEST_DEV_EMAIL_) - -#if !defined(GTEST_INIT_GOOGLE_TEST_NAME_) -#define GTEST_INIT_GOOGLE_TEST_NAME_ "testing::InitGoogleTest" -#endif // !defined(GTEST_INIT_GOOGLE_TEST_NAME_) - -// Determines the version of gcc that is used to compile this. -#ifdef __GNUC__ -// 40302 means version 4.3.2. -#define GTEST_GCC_VER_ \ - (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) -#endif // __GNUC__ - -// Macros for disabling Microsoft Visual C++ warnings. -// -// GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 4385) -// /* code that triggers warnings C4800 and C4385 */ -// GTEST_DISABLE_MSC_WARNINGS_POP_() -#if defined(_MSC_VER) -#define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings) \ - __pragma(warning(push)) __pragma(warning(disable : warnings)) -#define GTEST_DISABLE_MSC_WARNINGS_POP_() __pragma(warning(pop)) -#else -// Not all compilers are MSVC -#define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings) -#define GTEST_DISABLE_MSC_WARNINGS_POP_() -#endif - -// Clang on Windows does not understand MSVC's pragma warning. -// We need clang-specific way to disable function deprecation warning. -#ifdef __clang__ -#define GTEST_DISABLE_MSC_DEPRECATED_PUSH_() \ - _Pragma("clang diagnostic push") \ - _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") \ - _Pragma("clang diagnostic ignored \"-Wdeprecated-implementations\"") -#define GTEST_DISABLE_MSC_DEPRECATED_POP_() _Pragma("clang diagnostic pop") -#else -#define GTEST_DISABLE_MSC_DEPRECATED_PUSH_() \ - GTEST_DISABLE_MSC_WARNINGS_PUSH_(4996) -#define GTEST_DISABLE_MSC_DEPRECATED_POP_() GTEST_DISABLE_MSC_WARNINGS_POP_() -#endif - -// Brings in definitions for functions used in the testing::internal::posix -// namespace (read, write, close, chdir, isatty, stat). We do not currently -// use them on Windows Mobile. -#if GTEST_OS_WINDOWS -#if !GTEST_OS_WINDOWS_MOBILE -#include -#include -#endif -// In order to avoid having to include , use forward declaration -#if GTEST_OS_WINDOWS_MINGW && !defined(__MINGW64_VERSION_MAJOR) -// MinGW defined _CRITICAL_SECTION and _RTL_CRITICAL_SECTION as two -// separate (equivalent) structs, instead of using typedef -typedef struct _CRITICAL_SECTION GTEST_CRITICAL_SECTION; -#else -// Assume CRITICAL_SECTION is a typedef of _RTL_CRITICAL_SECTION. -// This assumption is verified by -// WindowsTypesTest.CRITICAL_SECTIONIs_RTL_CRITICAL_SECTION. -typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION; -#endif -#elif GTEST_OS_XTENSA -#include -// Xtensa toolchains define strcasecmp in the string.h header instead of -// strings.h. string.h is already included. -#else -// This assumes that non-Windows OSes provide unistd.h. For OSes where this -// is not the case, we need to include headers that provide the functions -// mentioned above. -#include -#include -#endif // GTEST_OS_WINDOWS - -#if GTEST_OS_LINUX_ANDROID -// Used to define __ANDROID_API__ matching the target NDK API level. -#include // NOLINT -#endif - -// Defines this to true if and only if Google Test can use POSIX regular -// expressions. -#ifndef GTEST_HAS_POSIX_RE -#if GTEST_OS_LINUX_ANDROID -// On Android, is only available starting with Gingerbread. -#define GTEST_HAS_POSIX_RE (__ANDROID_API__ >= 9) -#else -#define GTEST_HAS_POSIX_RE (!GTEST_OS_WINDOWS && !GTEST_OS_XTENSA) -#endif -#endif - -// Select the regular expression implementation. -#if GTEST_HAS_ABSL -// When using Abseil, RE2 is required. -#include "absl/strings/string_view.h" -#include "re2/re2.h" -#define GTEST_USES_RE2 1 -#elif GTEST_HAS_POSIX_RE -#include // NOLINT -#define GTEST_USES_POSIX_RE 1 -#else -// Use our own simple regex implementation. -#define GTEST_USES_SIMPLE_RE 1 -#endif - -#ifndef GTEST_HAS_EXCEPTIONS -// The user didn't tell us whether exceptions are enabled, so we need -// to figure it out. -#if defined(_MSC_VER) && defined(_CPPUNWIND) -// MSVC defines _CPPUNWIND to 1 if and only if exceptions are enabled. -#define GTEST_HAS_EXCEPTIONS 1 -#elif defined(__BORLANDC__) -// C++Builder's implementation of the STL uses the _HAS_EXCEPTIONS -// macro to enable exceptions, so we'll do the same. -// Assumes that exceptions are enabled by default. -#ifndef _HAS_EXCEPTIONS -#define _HAS_EXCEPTIONS 1 -#endif // _HAS_EXCEPTIONS -#define GTEST_HAS_EXCEPTIONS _HAS_EXCEPTIONS -#elif defined(__clang__) -// clang defines __EXCEPTIONS if and only if exceptions are enabled before clang -// 220714, but if and only if cleanups are enabled after that. In Obj-C++ files, -// there can be cleanups for ObjC exceptions which also need cleanups, even if -// C++ exceptions are disabled. clang has __has_feature(cxx_exceptions) which -// checks for C++ exceptions starting at clang r206352, but which checked for -// cleanups prior to that. To reliably check for C++ exception availability with -// clang, check for -// __EXCEPTIONS && __has_feature(cxx_exceptions). -#define GTEST_HAS_EXCEPTIONS (__EXCEPTIONS && __has_feature(cxx_exceptions)) -#elif defined(__GNUC__) && __EXCEPTIONS -// gcc defines __EXCEPTIONS to 1 if and only if exceptions are enabled. -#define GTEST_HAS_EXCEPTIONS 1 -#elif defined(__SUNPRO_CC) -// Sun Pro CC supports exceptions. However, there is no compile-time way of -// detecting whether they are enabled or not. Therefore, we assume that -// they are enabled unless the user tells us otherwise. -#define GTEST_HAS_EXCEPTIONS 1 -#elif defined(__IBMCPP__) && __EXCEPTIONS -// xlC defines __EXCEPTIONS to 1 if and only if exceptions are enabled. -#define GTEST_HAS_EXCEPTIONS 1 -#elif defined(__HP_aCC) -// Exception handling is in effect by default in HP aCC compiler. It has to -// be turned of by +noeh compiler option if desired. -#define GTEST_HAS_EXCEPTIONS 1 -#else -// For other compilers, we assume exceptions are disabled to be -// conservative. -#define GTEST_HAS_EXCEPTIONS 0 -#endif // defined(_MSC_VER) || defined(__BORLANDC__) -#endif // GTEST_HAS_EXCEPTIONS - -#ifndef GTEST_HAS_STD_WSTRING -// The user didn't tell us whether ::std::wstring is available, so we need -// to figure it out. -// Cygwin 1.7 and below doesn't support ::std::wstring. -// Solaris' libc++ doesn't support it either. Android has -// no support for it at least as recent as Froyo (2.2). -#define GTEST_HAS_STD_WSTRING \ - (!(GTEST_OS_LINUX_ANDROID || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \ - GTEST_OS_HAIKU || GTEST_OS_ESP32 || GTEST_OS_ESP8266 || GTEST_OS_XTENSA)) - -#endif // GTEST_HAS_STD_WSTRING - -// Determines whether RTTI is available. -#ifndef GTEST_HAS_RTTI -// The user didn't tell us whether RTTI is enabled, so we need to -// figure it out. - -#ifdef _MSC_VER - -#ifdef _CPPRTTI // MSVC defines this macro if and only if RTTI is enabled. -#define GTEST_HAS_RTTI 1 -#else -#define GTEST_HAS_RTTI 0 -#endif - -// Starting with version 4.3.2, gcc defines __GXX_RTTI if and only if RTTI is -// enabled. -#elif defined(__GNUC__) - -#ifdef __GXX_RTTI -// When building against STLport with the Android NDK and with -// -frtti -fno-exceptions, the build fails at link time with undefined -// references to __cxa_bad_typeid. Note sure if STL or toolchain bug, -// so disable RTTI when detected. -#if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR) && !defined(__EXCEPTIONS) -#define GTEST_HAS_RTTI 0 -#else -#define GTEST_HAS_RTTI 1 -#endif // GTEST_OS_LINUX_ANDROID && __STLPORT_MAJOR && !__EXCEPTIONS -#else -#define GTEST_HAS_RTTI 0 -#endif // __GXX_RTTI - -// Clang defines __GXX_RTTI starting with version 3.0, but its manual recommends -// using has_feature instead. has_feature(cxx_rtti) is supported since 2.7, the -// first version with C++ support. -#elif defined(__clang__) - -#define GTEST_HAS_RTTI __has_feature(cxx_rtti) - -// Starting with version 9.0 IBM Visual Age defines __RTTI_ALL__ to 1 if -// both the typeid and dynamic_cast features are present. -#elif defined(__IBMCPP__) && (__IBMCPP__ >= 900) - -#ifdef __RTTI_ALL__ -#define GTEST_HAS_RTTI 1 -#else -#define GTEST_HAS_RTTI 0 -#endif - -#else - -// For all other compilers, we assume RTTI is enabled. -#define GTEST_HAS_RTTI 1 - -#endif // _MSC_VER - -#endif // GTEST_HAS_RTTI - -// It's this header's responsibility to #include when RTTI -// is enabled. -#if GTEST_HAS_RTTI -#include -#endif - -// Determines whether Google Test can use the pthreads library. -#ifndef GTEST_HAS_PTHREAD -// The user didn't tell us explicitly, so we make reasonable assumptions about -// which platforms have pthreads support. -// -// To disable threading support in Google Test, add -DGTEST_HAS_PTHREAD=0 -// to your compiler flags. -#define GTEST_HAS_PTHREAD \ - (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX || GTEST_OS_QNX || \ - GTEST_OS_FREEBSD || GTEST_OS_NACL || GTEST_OS_NETBSD || GTEST_OS_FUCHSIA || \ - GTEST_OS_DRAGONFLY || GTEST_OS_GNU_KFREEBSD || GTEST_OS_OPENBSD || \ - GTEST_OS_HAIKU || GTEST_OS_GNU_HURD) -#endif // GTEST_HAS_PTHREAD - -#if GTEST_HAS_PTHREAD -// gtest-port.h guarantees to #include when GTEST_HAS_PTHREAD is -// true. -#include // NOLINT - -// For timespec and nanosleep, used below. -#include // NOLINT -#endif - -// Determines whether clone(2) is supported. -// Usually it will only be available on Linux, excluding -// Linux on the Itanium architecture. -// Also see http://linux.die.net/man/2/clone. -#ifndef GTEST_HAS_CLONE -// The user didn't tell us, so we need to figure it out. - -#if GTEST_OS_LINUX && !defined(__ia64__) -#if GTEST_OS_LINUX_ANDROID -// On Android, clone() became available at different API levels for each 32-bit -// architecture. -#if defined(__LP64__) || (defined(__arm__) && __ANDROID_API__ >= 9) || \ - (defined(__mips__) && __ANDROID_API__ >= 12) || \ - (defined(__i386__) && __ANDROID_API__ >= 17) -#define GTEST_HAS_CLONE 1 -#else -#define GTEST_HAS_CLONE 0 -#endif -#else -#define GTEST_HAS_CLONE 1 -#endif -#else -#define GTEST_HAS_CLONE 0 -#endif // GTEST_OS_LINUX && !defined(__ia64__) - -#endif // GTEST_HAS_CLONE - -// Determines whether to support stream redirection. This is used to test -// output correctness and to implement death tests. -#ifndef GTEST_HAS_STREAM_REDIRECTION -// By default, we assume that stream redirection is supported on all -// platforms except known mobile ones. -#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || \ - GTEST_OS_WINDOWS_RT || GTEST_OS_ESP8266 || GTEST_OS_XTENSA -#define GTEST_HAS_STREAM_REDIRECTION 0 -#else -#define GTEST_HAS_STREAM_REDIRECTION 1 -#endif // !GTEST_OS_WINDOWS_MOBILE -#endif // GTEST_HAS_STREAM_REDIRECTION - -// Determines whether to support death tests. -// pops up a dialog window that cannot be suppressed programmatically. -#if (GTEST_OS_LINUX || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \ - (GTEST_OS_MAC && !GTEST_OS_IOS) || \ - (GTEST_OS_WINDOWS_DESKTOP && _MSC_VER) || GTEST_OS_WINDOWS_MINGW || \ - GTEST_OS_AIX || GTEST_OS_HPUX || GTEST_OS_OPENBSD || GTEST_OS_QNX || \ - GTEST_OS_FREEBSD || GTEST_OS_NETBSD || GTEST_OS_FUCHSIA || \ - GTEST_OS_DRAGONFLY || GTEST_OS_GNU_KFREEBSD || GTEST_OS_HAIKU || \ - GTEST_OS_GNU_HURD) -#define GTEST_HAS_DEATH_TEST 1 -#endif - -// Determines whether to support type-driven tests. - -// Typed tests need and variadic macros, which GCC, VC++ 8.0, -// Sun Pro CC, IBM Visual Age, and HP aCC support. -#if defined(__GNUC__) || defined(_MSC_VER) || defined(__SUNPRO_CC) || \ - defined(__IBMCPP__) || defined(__HP_aCC) -#define GTEST_HAS_TYPED_TEST 1 -#define GTEST_HAS_TYPED_TEST_P 1 -#endif - -// Determines whether the system compiler uses UTF-16 for encoding wide strings. -#define GTEST_WIDE_STRING_USES_UTF16_ \ - (GTEST_OS_WINDOWS || GTEST_OS_CYGWIN || GTEST_OS_AIX || GTEST_OS_OS2) - -// Determines whether test results can be streamed to a socket. -#if GTEST_OS_LINUX || GTEST_OS_GNU_KFREEBSD || GTEST_OS_DRAGONFLY || \ - GTEST_OS_FREEBSD || GTEST_OS_NETBSD || GTEST_OS_OPENBSD || \ - GTEST_OS_GNU_HURD -#define GTEST_CAN_STREAM_RESULTS_ 1 -#endif - -// Defines some utility macros. - -// The GNU compiler emits a warning if nested "if" statements are followed by -// an "else" statement and braces are not used to explicitly disambiguate the -// "else" binding. This leads to problems with code like: -// -// if (gate) -// ASSERT_*(condition) << "Some message"; -// -// The "switch (0) case 0:" idiom is used to suppress this. -#ifdef __INTEL_COMPILER -#define GTEST_AMBIGUOUS_ELSE_BLOCKER_ -#else -#define GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - switch (0) \ - case 0: \ - default: // NOLINT -#endif - -// Use this annotation at the end of a struct/class definition to -// prevent the compiler from optimizing away instances that are never -// used. This is useful when all interesting logic happens inside the -// c'tor and / or d'tor. Example: -// -// struct Foo { -// Foo() { ... } -// } GTEST_ATTRIBUTE_UNUSED_; -// -// Also use it after a variable or parameter declaration to tell the -// compiler the variable/parameter does not have to be used. -#if defined(__GNUC__) && !defined(COMPILER_ICC) -#define GTEST_ATTRIBUTE_UNUSED_ __attribute__((unused)) -#elif defined(__clang__) -#if __has_attribute(unused) -#define GTEST_ATTRIBUTE_UNUSED_ __attribute__((unused)) -#endif -#endif -#ifndef GTEST_ATTRIBUTE_UNUSED_ -#define GTEST_ATTRIBUTE_UNUSED_ -#endif - -// Use this annotation before a function that takes a printf format string. -#if (defined(__GNUC__) || defined(__clang__)) && !defined(COMPILER_ICC) -#if defined(__MINGW_PRINTF_FORMAT) -// MinGW has two different printf implementations. Ensure the format macro -// matches the selected implementation. See -// https://sourceforge.net/p/mingw-w64/wiki2/gnu%20printf/. -#define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) \ - __attribute__(( \ - __format__(__MINGW_PRINTF_FORMAT, string_index, first_to_check))) -#else -#define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) \ - __attribute__((__format__(__printf__, string_index, first_to_check))) -#endif -#else -#define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) -#endif - -// Tell the compiler to warn about unused return values for functions declared -// with this macro. The macro should be used on function declarations -// following the argument list: -// -// Sprocket* AllocateSprocket() GTEST_MUST_USE_RESULT_; -#if defined(__GNUC__) && !defined(COMPILER_ICC) -#define GTEST_MUST_USE_RESULT_ __attribute__((warn_unused_result)) -#else -#define GTEST_MUST_USE_RESULT_ -#endif // __GNUC__ && !COMPILER_ICC - -// MS C++ compiler emits warning when a conditional expression is compile time -// constant. In some contexts this warning is false positive and needs to be -// suppressed. Use the following two macros in such cases: -// -// GTEST_INTENTIONAL_CONST_COND_PUSH_() -// while (true) { -// GTEST_INTENTIONAL_CONST_COND_POP_() -// } -#define GTEST_INTENTIONAL_CONST_COND_PUSH_() \ - GTEST_DISABLE_MSC_WARNINGS_PUSH_(4127) -#define GTEST_INTENTIONAL_CONST_COND_POP_() GTEST_DISABLE_MSC_WARNINGS_POP_() - -// Determine whether the compiler supports Microsoft's Structured Exception -// Handling. This is supported by several Windows compilers but generally -// does not exist on any other system. -#ifndef GTEST_HAS_SEH -// The user didn't tell us, so we need to figure it out. - -#if defined(_MSC_VER) || defined(__BORLANDC__) -// These two compilers are known to support SEH. -#define GTEST_HAS_SEH 1 -#else -// Assume no SEH. -#define GTEST_HAS_SEH 0 -#endif - -#endif // GTEST_HAS_SEH - -#ifndef GTEST_IS_THREADSAFE - -#define GTEST_IS_THREADSAFE \ - (GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ || \ - (GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT) || \ - GTEST_HAS_PTHREAD) - -#endif // GTEST_IS_THREADSAFE - -#if GTEST_IS_THREADSAFE -// Some platforms don't support including these threading related headers. -#include // NOLINT -#include // NOLINT -#endif // GTEST_IS_THREADSAFE - -// GTEST_API_ qualifies all symbols that must be exported. The definitions below -// are guarded by #ifndef to give embedders a chance to define GTEST_API_ in -// gtest/internal/custom/gtest-port.h -#ifndef GTEST_API_ - -#ifdef _MSC_VER -#if GTEST_LINKED_AS_SHARED_LIBRARY -#define GTEST_API_ __declspec(dllimport) -#elif GTEST_CREATE_SHARED_LIBRARY -#define GTEST_API_ __declspec(dllexport) -#endif -#elif __GNUC__ >= 4 || defined(__clang__) -#define GTEST_API_ __attribute__((visibility("default"))) -#endif // _MSC_VER - -#endif // GTEST_API_ - -#ifndef GTEST_API_ -#define GTEST_API_ -#endif // GTEST_API_ - -#ifndef GTEST_DEFAULT_DEATH_TEST_STYLE -#define GTEST_DEFAULT_DEATH_TEST_STYLE "fast" -#endif // GTEST_DEFAULT_DEATH_TEST_STYLE - -#ifdef __GNUC__ -// Ask the compiler to never inline a given function. -#define GTEST_NO_INLINE_ __attribute__((noinline)) -#else -#define GTEST_NO_INLINE_ -#endif - -#if defined(__clang__) -// Nested ifs to avoid triggering MSVC warning. -#if __has_attribute(disable_tail_calls) -// Ask the compiler not to perform tail call optimization inside -// the marked function. -#define GTEST_NO_TAIL_CALL_ __attribute__((disable_tail_calls)) -#endif -#elif __GNUC__ -#define GTEST_NO_TAIL_CALL_ \ - __attribute__((optimize("no-optimize-sibling-calls"))) -#else -#define GTEST_NO_TAIL_CALL_ -#endif - -// _LIBCPP_VERSION is defined by the libc++ library from the LLVM project. -#if !defined(GTEST_HAS_CXXABI_H_) -#if defined(__GLIBCXX__) || (defined(_LIBCPP_VERSION) && !defined(_MSC_VER)) -#define GTEST_HAS_CXXABI_H_ 1 -#else -#define GTEST_HAS_CXXABI_H_ 0 -#endif -#endif - -// A function level attribute to disable checking for use of uninitialized -// memory when built with MemorySanitizer. -#if defined(__clang__) -#if __has_feature(memory_sanitizer) -#define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ __attribute__((no_sanitize_memory)) -#else -#define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ -#endif // __has_feature(memory_sanitizer) -#else -#define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ -#endif // __clang__ - -// A function level attribute to disable AddressSanitizer instrumentation. -#if defined(__clang__) -#if __has_feature(address_sanitizer) -#define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ \ - __attribute__((no_sanitize_address)) -#else -#define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ -#endif // __has_feature(address_sanitizer) -#else -#define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ -#endif // __clang__ - -// A function level attribute to disable HWAddressSanitizer instrumentation. -#if defined(__clang__) -#if __has_feature(hwaddress_sanitizer) -#define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ \ - __attribute__((no_sanitize("hwaddress"))) -#else -#define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ -#endif // __has_feature(hwaddress_sanitizer) -#else -#define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ -#endif // __clang__ - -// A function level attribute to disable ThreadSanitizer instrumentation. -#if defined(__clang__) -#if __has_feature(thread_sanitizer) -#define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ __attribute__((no_sanitize_thread)) -#else -#define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ -#endif // __has_feature(thread_sanitizer) -#else -#define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ -#endif // __clang__ - -namespace testing { - -class Message; - -// Legacy imports for backwards compatibility. -// New code should use std:: names directly. -using std::get; -using std::make_tuple; -using std::tuple; -using std::tuple_element; -using std::tuple_size; - -namespace internal { - -// A secret type that Google Test users don't know about. It has no -// definition on purpose. Therefore it's impossible to create a -// Secret object, which is what we want. -class Secret; - -// A helper for suppressing warnings on constant condition. It just -// returns 'condition'. -GTEST_API_ bool IsTrue(bool condition); - -// Defines RE. - -#if GTEST_USES_RE2 - -// This is almost `using RE = ::RE2`, except it is copy-constructible, and it -// needs to disambiguate the `std::string`, `absl::string_view`, and `const -// char*` constructors. -class GTEST_API_ RE { - public: - RE(absl::string_view regex) : regex_(regex) {} // NOLINT - RE(const char* regex) : RE(absl::string_view(regex)) {} // NOLINT - RE(const std::string& regex) : RE(absl::string_view(regex)) {} // NOLINT - RE(const RE& other) : RE(other.pattern()) {} - - const std::string& pattern() const { return regex_.pattern(); } - - static bool FullMatch(absl::string_view str, const RE& re) { - return RE2::FullMatch(str, re.regex_); - } - static bool PartialMatch(absl::string_view str, const RE& re) { - return RE2::PartialMatch(str, re.regex_); - } - - private: - RE2 regex_; -}; - -#elif GTEST_USES_POSIX_RE || GTEST_USES_SIMPLE_RE - -// A simple C++ wrapper for . It uses the POSIX Extended -// Regular Expression syntax. -class GTEST_API_ RE { - public: - // A copy constructor is required by the Standard to initialize object - // references from r-values. - RE(const RE& other) { Init(other.pattern()); } - - // Constructs an RE from a string. - RE(const ::std::string& regex) { Init(regex.c_str()); } // NOLINT - - RE(const char* regex) { Init(regex); } // NOLINT - ~RE(); - - // Returns the string representation of the regex. - const char* pattern() const { return pattern_; } - - // FullMatch(str, re) returns true if and only if regular expression re - // matches the entire str. - // PartialMatch(str, re) returns true if and only if regular expression re - // matches a substring of str (including str itself). - static bool FullMatch(const ::std::string& str, const RE& re) { - return FullMatch(str.c_str(), re); - } - static bool PartialMatch(const ::std::string& str, const RE& re) { - return PartialMatch(str.c_str(), re); - } - - static bool FullMatch(const char* str, const RE& re); - static bool PartialMatch(const char* str, const RE& re); - - private: - void Init(const char* regex); - const char* pattern_; - bool is_valid_; - -#if GTEST_USES_POSIX_RE - - regex_t full_regex_; // For FullMatch(). - regex_t partial_regex_; // For PartialMatch(). - -#else // GTEST_USES_SIMPLE_RE - - const char* full_pattern_; // For FullMatch(); - -#endif -}; - -#endif // ::testing::internal::RE implementation - -// Formats a source file path and a line number as they would appear -// in an error message from the compiler used to compile this code. -GTEST_API_ ::std::string FormatFileLocation(const char* file, int line); - -// Formats a file location for compiler-independent XML output. -// Although this function is not platform dependent, we put it next to -// FormatFileLocation in order to contrast the two functions. -GTEST_API_ ::std::string FormatCompilerIndependentFileLocation(const char* file, - int line); - -// Defines logging utilities: -// GTEST_LOG_(severity) - logs messages at the specified severity level. The -// message itself is streamed into the macro. -// LogToStderr() - directs all log messages to stderr. -// FlushInfoLog() - flushes informational log messages. - -enum GTestLogSeverity { GTEST_INFO, GTEST_WARNING, GTEST_ERROR, GTEST_FATAL }; - -// Formats log entry severity, provides a stream object for streaming the -// log message, and terminates the message with a newline when going out of -// scope. -class GTEST_API_ GTestLog { - public: - GTestLog(GTestLogSeverity severity, const char* file, int line); - - // Flushes the buffers and, if severity is GTEST_FATAL, aborts the program. - ~GTestLog(); - - ::std::ostream& GetStream() { return ::std::cerr; } - - private: - const GTestLogSeverity severity_; - - GTestLog(const GTestLog&) = delete; - GTestLog& operator=(const GTestLog&) = delete; -}; - -#if !defined(GTEST_LOG_) - -#define GTEST_LOG_(severity) \ - ::testing::internal::GTestLog(::testing::internal::GTEST_##severity, \ - __FILE__, __LINE__) \ - .GetStream() - -inline void LogToStderr() {} -inline void FlushInfoLog() { fflush(nullptr); } - -#endif // !defined(GTEST_LOG_) - -#if !defined(GTEST_CHECK_) -// INTERNAL IMPLEMENTATION - DO NOT USE. -// -// GTEST_CHECK_ is an all-mode assert. It aborts the program if the condition -// is not satisfied. -// Synopsis: -// GTEST_CHECK_(boolean_condition); -// or -// GTEST_CHECK_(boolean_condition) << "Additional message"; -// -// This checks the condition and if the condition is not satisfied -// it prints message about the condition violation, including the -// condition itself, plus additional message streamed into it, if any, -// and then it aborts the program. It aborts the program irrespective of -// whether it is built in the debug mode or not. -#define GTEST_CHECK_(condition) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::IsTrue(condition)) \ - ; \ - else \ - GTEST_LOG_(FATAL) << "Condition " #condition " failed. " -#endif // !defined(GTEST_CHECK_) - -// An all-mode assert to verify that the given POSIX-style function -// call returns 0 (indicating success). Known limitation: this -// doesn't expand to a balanced 'if' statement, so enclose the macro -// in {} if you need to use it as the only statement in an 'if' -// branch. -#define GTEST_CHECK_POSIX_SUCCESS_(posix_call) \ - if (const int gtest_error = (posix_call)) \ - GTEST_LOG_(FATAL) << #posix_call << "failed with error " << gtest_error - -// Transforms "T" into "const T&" according to standard reference collapsing -// rules (this is only needed as a backport for C++98 compilers that do not -// support reference collapsing). Specifically, it transforms: -// -// char ==> const char& -// const char ==> const char& -// char& ==> char& -// const char& ==> const char& -// -// Note that the non-const reference will not have "const" added. This is -// standard, and necessary so that "T" can always bind to "const T&". -template -struct ConstRef { - typedef const T& type; -}; -template -struct ConstRef { - typedef T& type; -}; - -// The argument T must depend on some template parameters. -#define GTEST_REFERENCE_TO_CONST_(T) \ - typename ::testing::internal::ConstRef::type - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Use ImplicitCast_ as a safe version of static_cast for upcasting in -// the type hierarchy (e.g. casting a Foo* to a SuperclassOfFoo* or a -// const Foo*). When you use ImplicitCast_, the compiler checks that -// the cast is safe. Such explicit ImplicitCast_s are necessary in -// surprisingly many situations where C++ demands an exact type match -// instead of an argument type convertible to a target type. -// -// The syntax for using ImplicitCast_ is the same as for static_cast: -// -// ImplicitCast_(expr) -// -// ImplicitCast_ would have been part of the C++ standard library, -// but the proposal was submitted too late. It will probably make -// its way into the language in the future. -// -// This relatively ugly name is intentional. It prevents clashes with -// similar functions users may have (e.g., implicit_cast). The internal -// namespace alone is not enough because the function can be found by ADL. -template -inline To ImplicitCast_(To x) { - return x; -} - -// When you upcast (that is, cast a pointer from type Foo to type -// SuperclassOfFoo), it's fine to use ImplicitCast_<>, since upcasts -// always succeed. When you downcast (that is, cast a pointer from -// type Foo to type SubclassOfFoo), static_cast<> isn't safe, because -// how do you know the pointer is really of type SubclassOfFoo? It -// could be a bare Foo, or of type DifferentSubclassOfFoo. Thus, -// when you downcast, you should use this macro. In debug mode, we -// use dynamic_cast<> to double-check the downcast is legal (we die -// if it's not). In normal mode, we do the efficient static_cast<> -// instead. Thus, it's important to test in debug mode to make sure -// the cast is legal! -// This is the only place in the code we should use dynamic_cast<>. -// In particular, you SHOULDN'T be using dynamic_cast<> in order to -// do RTTI (eg code like this: -// if (dynamic_cast(foo)) HandleASubclass1Object(foo); -// if (dynamic_cast(foo)) HandleASubclass2Object(foo); -// You should design the code some other way not to need this. -// -// This relatively ugly name is intentional. It prevents clashes with -// similar functions users may have (e.g., down_cast). The internal -// namespace alone is not enough because the function can be found by ADL. -template // use like this: DownCast_(foo); -inline To DownCast_(From* f) { // so we only accept pointers - // Ensures that To is a sub-type of From *. This test is here only - // for compile-time type checking, and has no overhead in an - // optimized build at run-time, as it will be optimized away - // completely. - GTEST_INTENTIONAL_CONST_COND_PUSH_() - if (false) { - GTEST_INTENTIONAL_CONST_COND_POP_() - const To to = nullptr; - ::testing::internal::ImplicitCast_(to); - } - -#if GTEST_HAS_RTTI - // RTTI: debug mode only! - GTEST_CHECK_(f == nullptr || dynamic_cast(f) != nullptr); -#endif - return static_cast(f); -} - -// Downcasts the pointer of type Base to Derived. -// Derived must be a subclass of Base. The parameter MUST -// point to a class of type Derived, not any subclass of it. -// When RTTI is available, the function performs a runtime -// check to enforce this. -template -Derived* CheckedDowncastToActualType(Base* base) { -#if GTEST_HAS_RTTI - GTEST_CHECK_(typeid(*base) == typeid(Derived)); -#endif - -#if GTEST_HAS_DOWNCAST_ - return ::down_cast(base); -#elif GTEST_HAS_RTTI - return dynamic_cast(base); // NOLINT -#else - return static_cast(base); // Poor man's downcast. -#endif -} - -#if GTEST_HAS_STREAM_REDIRECTION - -// Defines the stderr capturer: -// CaptureStdout - starts capturing stdout. -// GetCapturedStdout - stops capturing stdout and returns the captured string. -// CaptureStderr - starts capturing stderr. -// GetCapturedStderr - stops capturing stderr and returns the captured string. -// -GTEST_API_ void CaptureStdout(); -GTEST_API_ std::string GetCapturedStdout(); -GTEST_API_ void CaptureStderr(); -GTEST_API_ std::string GetCapturedStderr(); - -#endif // GTEST_HAS_STREAM_REDIRECTION -// Returns the size (in bytes) of a file. -GTEST_API_ size_t GetFileSize(FILE* file); - -// Reads the entire content of a file as a string. -GTEST_API_ std::string ReadEntireFile(FILE* file); - -// All command line arguments. -GTEST_API_ std::vector GetArgvs(); - -#if GTEST_HAS_DEATH_TEST - -std::vector GetInjectableArgvs(); -// Deprecated: pass the args vector by value instead. -void SetInjectableArgvs(const std::vector* new_argvs); -void SetInjectableArgvs(const std::vector& new_argvs); -void ClearInjectableArgvs(); - -#endif // GTEST_HAS_DEATH_TEST - -// Defines synchronization primitives. -#if GTEST_IS_THREADSAFE - -#if GTEST_OS_WINDOWS -// Provides leak-safe Windows kernel handle ownership. -// Used in death tests and in threading support. -class GTEST_API_ AutoHandle { - public: - // Assume that Win32 HANDLE type is equivalent to void*. Doing so allows us to - // avoid including in this header file. Including is - // undesirable because it defines a lot of symbols and macros that tend to - // conflict with client code. This assumption is verified by - // WindowsTypesTest.HANDLEIsVoidStar. - typedef void* Handle; - AutoHandle(); - explicit AutoHandle(Handle handle); - - ~AutoHandle(); - - Handle Get() const; - void Reset(); - void Reset(Handle handle); - - private: - // Returns true if and only if the handle is a valid handle object that can be - // closed. - bool IsCloseable() const; - - Handle handle_; - - AutoHandle(const AutoHandle&) = delete; - AutoHandle& operator=(const AutoHandle&) = delete; -}; -#endif - -#if GTEST_HAS_NOTIFICATION_ -// Notification has already been imported into the namespace. -// Nothing to do here. - -#else -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -// Allows a controller thread to pause execution of newly created -// threads until notified. Instances of this class must be created -// and destroyed in the controller thread. -// -// This class is only for testing Google Test's own constructs. Do not -// use it in user tests, either directly or indirectly. -// TODO(b/203539622): Replace unconditionally with absl::Notification. -class GTEST_API_ Notification { - public: - Notification() : notified_(false) {} - Notification(const Notification&) = delete; - Notification& operator=(const Notification&) = delete; - - // Notifies all threads created with this notification to start. Must - // be called from the controller thread. - void Notify() { - std::lock_guard lock(mu_); - notified_ = true; - cv_.notify_all(); - } - - // Blocks until the controller thread notifies. Must be called from a test - // thread. - void WaitForNotification() { - std::unique_lock lock(mu_); - cv_.wait(lock, [this]() { return notified_; }); - } - - private: - std::mutex mu_; - std::condition_variable cv_; - bool notified_; -}; -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 -#endif // GTEST_HAS_NOTIFICATION_ - -// On MinGW, we can have both GTEST_OS_WINDOWS and GTEST_HAS_PTHREAD -// defined, but we don't want to use MinGW's pthreads implementation, which -// has conformance problems with some versions of the POSIX standard. -#if GTEST_HAS_PTHREAD && !GTEST_OS_WINDOWS_MINGW - -// As a C-function, ThreadFuncWithCLinkage cannot be templated itself. -// Consequently, it cannot select a correct instantiation of ThreadWithParam -// in order to call its Run(). Introducing ThreadWithParamBase as a -// non-templated base class for ThreadWithParam allows us to bypass this -// problem. -class ThreadWithParamBase { - public: - virtual ~ThreadWithParamBase() {} - virtual void Run() = 0; -}; - -// pthread_create() accepts a pointer to a function type with the C linkage. -// According to the Standard (7.5/1), function types with different linkages -// are different even if they are otherwise identical. Some compilers (for -// example, SunStudio) treat them as different types. Since class methods -// cannot be defined with C-linkage we need to define a free C-function to -// pass into pthread_create(). -extern "C" inline void* ThreadFuncWithCLinkage(void* thread) { - static_cast(thread)->Run(); - return nullptr; -} - -// Helper class for testing Google Test's multi-threading constructs. -// To use it, write: -// -// void ThreadFunc(int param) { /* Do things with param */ } -// Notification thread_can_start; -// ... -// // The thread_can_start parameter is optional; you can supply NULL. -// ThreadWithParam thread(&ThreadFunc, 5, &thread_can_start); -// thread_can_start.Notify(); -// -// These classes are only for testing Google Test's own constructs. Do -// not use them in user tests, either directly or indirectly. -template -class ThreadWithParam : public ThreadWithParamBase { - public: - typedef void UserThreadFunc(T); - - ThreadWithParam(UserThreadFunc* func, T param, Notification* thread_can_start) - : func_(func), - param_(param), - thread_can_start_(thread_can_start), - finished_(false) { - ThreadWithParamBase* const base = this; - // The thread can be created only after all fields except thread_ - // have been initialized. - GTEST_CHECK_POSIX_SUCCESS_( - pthread_create(&thread_, nullptr, &ThreadFuncWithCLinkage, base)); - } - ~ThreadWithParam() override { Join(); } - - void Join() { - if (!finished_) { - GTEST_CHECK_POSIX_SUCCESS_(pthread_join(thread_, nullptr)); - finished_ = true; - } - } - - void Run() override { - if (thread_can_start_ != nullptr) thread_can_start_->WaitForNotification(); - func_(param_); - } - - private: - UserThreadFunc* const func_; // User-supplied thread function. - const T param_; // User-supplied parameter to the thread function. - // When non-NULL, used to block execution until the controller thread - // notifies. - Notification* const thread_can_start_; - bool finished_; // true if and only if we know that the thread function has - // finished. - pthread_t thread_; // The native thread object. - - ThreadWithParam(const ThreadWithParam&) = delete; - ThreadWithParam& operator=(const ThreadWithParam&) = delete; -}; -#endif // !GTEST_OS_WINDOWS && GTEST_HAS_PTHREAD || - // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ - -#if GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ -// Mutex and ThreadLocal have already been imported into the namespace. -// Nothing to do here. - -#elif GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT - -// Mutex implements mutex on Windows platforms. It is used in conjunction -// with class MutexLock: -// -// Mutex mutex; -// ... -// MutexLock lock(&mutex); // Acquires the mutex and releases it at the -// // end of the current scope. -// -// A static Mutex *must* be defined or declared using one of the following -// macros: -// GTEST_DEFINE_STATIC_MUTEX_(g_some_mutex); -// GTEST_DECLARE_STATIC_MUTEX_(g_some_mutex); -// -// (A non-static Mutex is defined/declared in the usual way). -class GTEST_API_ Mutex { - public: - enum MutexType { kStatic = 0, kDynamic = 1 }; - // We rely on kStaticMutex being 0 as it is to what the linker initializes - // type_ in static mutexes. critical_section_ will be initialized lazily - // in ThreadSafeLazyInit(). - enum StaticConstructorSelector { kStaticMutex = 0 }; - - // This constructor intentionally does nothing. It relies on type_ being - // statically initialized to 0 (effectively setting it to kStatic) and on - // ThreadSafeLazyInit() to lazily initialize the rest of the members. - explicit Mutex(StaticConstructorSelector /*dummy*/) {} - - Mutex(); - ~Mutex(); - - void Lock(); - - void Unlock(); - - // Does nothing if the current thread holds the mutex. Otherwise, crashes - // with high probability. - void AssertHeld(); - - private: - // Initializes owner_thread_id_ and critical_section_ in static mutexes. - void ThreadSafeLazyInit(); - - // Per https://blogs.msdn.microsoft.com/oldnewthing/20040223-00/?p=40503, - // we assume that 0 is an invalid value for thread IDs. - unsigned int owner_thread_id_; - - // For static mutexes, we rely on these members being initialized to zeros - // by the linker. - MutexType type_; - long critical_section_init_phase_; // NOLINT - GTEST_CRITICAL_SECTION* critical_section_; - - Mutex(const Mutex&) = delete; - Mutex& operator=(const Mutex&) = delete; -}; - -#define GTEST_DECLARE_STATIC_MUTEX_(mutex) \ - extern ::testing::internal::Mutex mutex - -#define GTEST_DEFINE_STATIC_MUTEX_(mutex) \ - ::testing::internal::Mutex mutex(::testing::internal::Mutex::kStaticMutex) - -// We cannot name this class MutexLock because the ctor declaration would -// conflict with a macro named MutexLock, which is defined on some -// platforms. That macro is used as a defensive measure to prevent against -// inadvertent misuses of MutexLock like "MutexLock(&mu)" rather than -// "MutexLock l(&mu)". Hence the typedef trick below. -class GTestMutexLock { - public: - explicit GTestMutexLock(Mutex* mutex) : mutex_(mutex) { mutex_->Lock(); } - - ~GTestMutexLock() { mutex_->Unlock(); } - - private: - Mutex* const mutex_; - - GTestMutexLock(const GTestMutexLock&) = delete; - GTestMutexLock& operator=(const GTestMutexLock&) = delete; -}; - -typedef GTestMutexLock MutexLock; - -// Base class for ValueHolder. Allows a caller to hold and delete a value -// without knowing its type. -class ThreadLocalValueHolderBase { - public: - virtual ~ThreadLocalValueHolderBase() {} -}; - -// Provides a way for a thread to send notifications to a ThreadLocal -// regardless of its parameter type. -class ThreadLocalBase { - public: - // Creates a new ValueHolder object holding a default value passed to - // this ThreadLocal's constructor and returns it. It is the caller's - // responsibility not to call this when the ThreadLocal instance already - // has a value on the current thread. - virtual ThreadLocalValueHolderBase* NewValueForCurrentThread() const = 0; - - protected: - ThreadLocalBase() {} - virtual ~ThreadLocalBase() {} - - private: - ThreadLocalBase(const ThreadLocalBase&) = delete; - ThreadLocalBase& operator=(const ThreadLocalBase&) = delete; -}; - -// Maps a thread to a set of ThreadLocals that have values instantiated on that -// thread and notifies them when the thread exits. A ThreadLocal instance is -// expected to persist until all threads it has values on have terminated. -class GTEST_API_ ThreadLocalRegistry { - public: - // Registers thread_local_instance as having value on the current thread. - // Returns a value that can be used to identify the thread from other threads. - static ThreadLocalValueHolderBase* GetValueOnCurrentThread( - const ThreadLocalBase* thread_local_instance); - - // Invoked when a ThreadLocal instance is destroyed. - static void OnThreadLocalDestroyed( - const ThreadLocalBase* thread_local_instance); -}; - -class GTEST_API_ ThreadWithParamBase { - public: - void Join(); - - protected: - class Runnable { - public: - virtual ~Runnable() {} - virtual void Run() = 0; - }; - - ThreadWithParamBase(Runnable* runnable, Notification* thread_can_start); - virtual ~ThreadWithParamBase(); - - private: - AutoHandle thread_; -}; - -// Helper class for testing Google Test's multi-threading constructs. -template -class ThreadWithParam : public ThreadWithParamBase { - public: - typedef void UserThreadFunc(T); - - ThreadWithParam(UserThreadFunc* func, T param, Notification* thread_can_start) - : ThreadWithParamBase(new RunnableImpl(func, param), thread_can_start) {} - virtual ~ThreadWithParam() {} - - private: - class RunnableImpl : public Runnable { - public: - RunnableImpl(UserThreadFunc* func, T param) : func_(func), param_(param) {} - virtual ~RunnableImpl() {} - virtual void Run() { func_(param_); } - - private: - UserThreadFunc* const func_; - const T param_; - - RunnableImpl(const RunnableImpl&) = delete; - RunnableImpl& operator=(const RunnableImpl&) = delete; - }; - - ThreadWithParam(const ThreadWithParam&) = delete; - ThreadWithParam& operator=(const ThreadWithParam&) = delete; -}; - -// Implements thread-local storage on Windows systems. -// -// // Thread 1 -// ThreadLocal tl(100); // 100 is the default value for each thread. -// -// // Thread 2 -// tl.set(150); // Changes the value for thread 2 only. -// EXPECT_EQ(150, tl.get()); -// -// // Thread 1 -// EXPECT_EQ(100, tl.get()); // In thread 1, tl has the original value. -// tl.set(200); -// EXPECT_EQ(200, tl.get()); -// -// The template type argument T must have a public copy constructor. -// In addition, the default ThreadLocal constructor requires T to have -// a public default constructor. -// -// The users of a TheadLocal instance have to make sure that all but one -// threads (including the main one) using that instance have exited before -// destroying it. Otherwise, the per-thread objects managed for them by the -// ThreadLocal instance are not guaranteed to be destroyed on all platforms. -// -// Google Test only uses global ThreadLocal objects. That means they -// will die after main() has returned. Therefore, no per-thread -// object managed by Google Test will be leaked as long as all threads -// using Google Test have exited when main() returns. -template -class ThreadLocal : public ThreadLocalBase { - public: - ThreadLocal() : default_factory_(new DefaultValueHolderFactory()) {} - explicit ThreadLocal(const T& value) - : default_factory_(new InstanceValueHolderFactory(value)) {} - - ~ThreadLocal() override { ThreadLocalRegistry::OnThreadLocalDestroyed(this); } - - T* pointer() { return GetOrCreateValue(); } - const T* pointer() const { return GetOrCreateValue(); } - const T& get() const { return *pointer(); } - void set(const T& value) { *pointer() = value; } - - private: - // Holds a value of T. Can be deleted via its base class without the caller - // knowing the type of T. - class ValueHolder : public ThreadLocalValueHolderBase { - public: - ValueHolder() : value_() {} - explicit ValueHolder(const T& value) : value_(value) {} - - T* pointer() { return &value_; } - - private: - T value_; - ValueHolder(const ValueHolder&) = delete; - ValueHolder& operator=(const ValueHolder&) = delete; - }; - - T* GetOrCreateValue() const { - return static_cast( - ThreadLocalRegistry::GetValueOnCurrentThread(this)) - ->pointer(); - } - - ThreadLocalValueHolderBase* NewValueForCurrentThread() const override { - return default_factory_->MakeNewHolder(); - } - - class ValueHolderFactory { - public: - ValueHolderFactory() {} - virtual ~ValueHolderFactory() {} - virtual ValueHolder* MakeNewHolder() const = 0; - - private: - ValueHolderFactory(const ValueHolderFactory&) = delete; - ValueHolderFactory& operator=(const ValueHolderFactory&) = delete; - }; - - class DefaultValueHolderFactory : public ValueHolderFactory { - public: - DefaultValueHolderFactory() {} - ValueHolder* MakeNewHolder() const override { return new ValueHolder(); } - - private: - DefaultValueHolderFactory(const DefaultValueHolderFactory&) = delete; - DefaultValueHolderFactory& operator=(const DefaultValueHolderFactory&) = - delete; - }; - - class InstanceValueHolderFactory : public ValueHolderFactory { - public: - explicit InstanceValueHolderFactory(const T& value) : value_(value) {} - ValueHolder* MakeNewHolder() const override { - return new ValueHolder(value_); - } - - private: - const T value_; // The value for each thread. - - InstanceValueHolderFactory(const InstanceValueHolderFactory&) = delete; - InstanceValueHolderFactory& operator=(const InstanceValueHolderFactory&) = - delete; - }; - - std::unique_ptr default_factory_; - - ThreadLocal(const ThreadLocal&) = delete; - ThreadLocal& operator=(const ThreadLocal&) = delete; -}; - -#elif GTEST_HAS_PTHREAD - -// MutexBase and Mutex implement mutex on pthreads-based platforms. -class MutexBase { - public: - // Acquires this mutex. - void Lock() { - GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_lock(&mutex_)); - owner_ = pthread_self(); - has_owner_ = true; - } - - // Releases this mutex. - void Unlock() { - // Since the lock is being released the owner_ field should no longer be - // considered valid. We don't protect writing to has_owner_ here, as it's - // the caller's responsibility to ensure that the current thread holds the - // mutex when this is called. - has_owner_ = false; - GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_unlock(&mutex_)); - } - - // Does nothing if the current thread holds the mutex. Otherwise, crashes - // with high probability. - void AssertHeld() const { - GTEST_CHECK_(has_owner_ && pthread_equal(owner_, pthread_self())) - << "The current thread is not holding the mutex @" << this; - } - - // A static mutex may be used before main() is entered. It may even - // be used before the dynamic initialization stage. Therefore we - // must be able to initialize a static mutex object at link time. - // This means MutexBase has to be a POD and its member variables - // have to be public. - public: - pthread_mutex_t mutex_; // The underlying pthread mutex. - // has_owner_ indicates whether the owner_ field below contains a valid thread - // ID and is therefore safe to inspect (e.g., to use in pthread_equal()). All - // accesses to the owner_ field should be protected by a check of this field. - // An alternative might be to memset() owner_ to all zeros, but there's no - // guarantee that a zero'd pthread_t is necessarily invalid or even different - // from pthread_self(). - bool has_owner_; - pthread_t owner_; // The thread holding the mutex. -}; - -// Forward-declares a static mutex. -#define GTEST_DECLARE_STATIC_MUTEX_(mutex) \ - extern ::testing::internal::MutexBase mutex - -// Defines and statically (i.e. at link time) initializes a static mutex. -// The initialization list here does not explicitly initialize each field, -// instead relying on default initialization for the unspecified fields. In -// particular, the owner_ field (a pthread_t) is not explicitly initialized. -// This allows initialization to work whether pthread_t is a scalar or struct. -// The flag -Wmissing-field-initializers must not be specified for this to work. -#define GTEST_DEFINE_STATIC_MUTEX_(mutex) \ - ::testing::internal::MutexBase mutex = {PTHREAD_MUTEX_INITIALIZER, false, 0} - -// The Mutex class can only be used for mutexes created at runtime. It -// shares its API with MutexBase otherwise. -class Mutex : public MutexBase { - public: - Mutex() { - GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, nullptr)); - has_owner_ = false; - } - ~Mutex() { GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_destroy(&mutex_)); } - - private: - Mutex(const Mutex&) = delete; - Mutex& operator=(const Mutex&) = delete; -}; - -// We cannot name this class MutexLock because the ctor declaration would -// conflict with a macro named MutexLock, which is defined on some -// platforms. That macro is used as a defensive measure to prevent against -// inadvertent misuses of MutexLock like "MutexLock(&mu)" rather than -// "MutexLock l(&mu)". Hence the typedef trick below. -class GTestMutexLock { - public: - explicit GTestMutexLock(MutexBase* mutex) : mutex_(mutex) { mutex_->Lock(); } - - ~GTestMutexLock() { mutex_->Unlock(); } - - private: - MutexBase* const mutex_; - - GTestMutexLock(const GTestMutexLock&) = delete; - GTestMutexLock& operator=(const GTestMutexLock&) = delete; -}; - -typedef GTestMutexLock MutexLock; - -// Helpers for ThreadLocal. - -// pthread_key_create() requires DeleteThreadLocalValue() to have -// C-linkage. Therefore it cannot be templatized to access -// ThreadLocal. Hence the need for class -// ThreadLocalValueHolderBase. -class ThreadLocalValueHolderBase { - public: - virtual ~ThreadLocalValueHolderBase() {} -}; - -// Called by pthread to delete thread-local data stored by -// pthread_setspecific(). -extern "C" inline void DeleteThreadLocalValue(void* value_holder) { - delete static_cast(value_holder); -} - -// Implements thread-local storage on pthreads-based systems. -template -class GTEST_API_ ThreadLocal { - public: - ThreadLocal() - : key_(CreateKey()), default_factory_(new DefaultValueHolderFactory()) {} - explicit ThreadLocal(const T& value) - : key_(CreateKey()), - default_factory_(new InstanceValueHolderFactory(value)) {} - - ~ThreadLocal() { - // Destroys the managed object for the current thread, if any. - DeleteThreadLocalValue(pthread_getspecific(key_)); - - // Releases resources associated with the key. This will *not* - // delete managed objects for other threads. - GTEST_CHECK_POSIX_SUCCESS_(pthread_key_delete(key_)); - } - - T* pointer() { return GetOrCreateValue(); } - const T* pointer() const { return GetOrCreateValue(); } - const T& get() const { return *pointer(); } - void set(const T& value) { *pointer() = value; } - - private: - // Holds a value of type T. - class ValueHolder : public ThreadLocalValueHolderBase { - public: - ValueHolder() : value_() {} - explicit ValueHolder(const T& value) : value_(value) {} - - T* pointer() { return &value_; } - - private: - T value_; - ValueHolder(const ValueHolder&) = delete; - ValueHolder& operator=(const ValueHolder&) = delete; - }; - - static pthread_key_t CreateKey() { - pthread_key_t key; - // When a thread exits, DeleteThreadLocalValue() will be called on - // the object managed for that thread. - GTEST_CHECK_POSIX_SUCCESS_( - pthread_key_create(&key, &DeleteThreadLocalValue)); - return key; - } - - T* GetOrCreateValue() const { - ThreadLocalValueHolderBase* const holder = - static_cast(pthread_getspecific(key_)); - if (holder != nullptr) { - return CheckedDowncastToActualType(holder)->pointer(); - } - - ValueHolder* const new_holder = default_factory_->MakeNewHolder(); - ThreadLocalValueHolderBase* const holder_base = new_holder; - GTEST_CHECK_POSIX_SUCCESS_(pthread_setspecific(key_, holder_base)); - return new_holder->pointer(); - } - - class ValueHolderFactory { - public: - ValueHolderFactory() {} - virtual ~ValueHolderFactory() {} - virtual ValueHolder* MakeNewHolder() const = 0; - - private: - ValueHolderFactory(const ValueHolderFactory&) = delete; - ValueHolderFactory& operator=(const ValueHolderFactory&) = delete; - }; - - class DefaultValueHolderFactory : public ValueHolderFactory { - public: - DefaultValueHolderFactory() {} - ValueHolder* MakeNewHolder() const override { return new ValueHolder(); } - - private: - DefaultValueHolderFactory(const DefaultValueHolderFactory&) = delete; - DefaultValueHolderFactory& operator=(const DefaultValueHolderFactory&) = - delete; - }; - - class InstanceValueHolderFactory : public ValueHolderFactory { - public: - explicit InstanceValueHolderFactory(const T& value) : value_(value) {} - ValueHolder* MakeNewHolder() const override { - return new ValueHolder(value_); - } - - private: - const T value_; // The value for each thread. - - InstanceValueHolderFactory(const InstanceValueHolderFactory&) = delete; - InstanceValueHolderFactory& operator=(const InstanceValueHolderFactory&) = - delete; - }; - - // A key pthreads uses for looking up per-thread values. - const pthread_key_t key_; - std::unique_ptr default_factory_; - - ThreadLocal(const ThreadLocal&) = delete; - ThreadLocal& operator=(const ThreadLocal&) = delete; -}; - -#endif // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ - -#else // GTEST_IS_THREADSAFE - -// A dummy implementation of synchronization primitives (mutex, lock, -// and thread-local variable). Necessary for compiling Google Test where -// mutex is not supported - using Google Test in multiple threads is not -// supported on such platforms. - -class Mutex { - public: - Mutex() {} - void Lock() {} - void Unlock() {} - void AssertHeld() const {} -}; - -#define GTEST_DECLARE_STATIC_MUTEX_(mutex) \ - extern ::testing::internal::Mutex mutex - -#define GTEST_DEFINE_STATIC_MUTEX_(mutex) ::testing::internal::Mutex mutex - -// We cannot name this class MutexLock because the ctor declaration would -// conflict with a macro named MutexLock, which is defined on some -// platforms. That macro is used as a defensive measure to prevent against -// inadvertent misuses of MutexLock like "MutexLock(&mu)" rather than -// "MutexLock l(&mu)". Hence the typedef trick below. -class GTestMutexLock { - public: - explicit GTestMutexLock(Mutex*) {} // NOLINT -}; - -typedef GTestMutexLock MutexLock; - -template -class GTEST_API_ ThreadLocal { - public: - ThreadLocal() : value_() {} - explicit ThreadLocal(const T& value) : value_(value) {} - T* pointer() { return &value_; } - const T* pointer() const { return &value_; } - const T& get() const { return value_; } - void set(const T& value) { value_ = value; } - - private: - T value_; -}; - -#endif // GTEST_IS_THREADSAFE - -// Returns the number of threads running in the process, or 0 to indicate that -// we cannot detect it. -GTEST_API_ size_t GetThreadCount(); - -#if GTEST_OS_WINDOWS -#define GTEST_PATH_SEP_ "\\" -#define GTEST_HAS_ALT_PATH_SEP_ 1 -#else -#define GTEST_PATH_SEP_ "/" -#define GTEST_HAS_ALT_PATH_SEP_ 0 -#endif // GTEST_OS_WINDOWS - -// Utilities for char. - -// isspace(int ch) and friends accept an unsigned char or EOF. char -// may be signed, depending on the compiler (or compiler flags). -// Therefore we need to cast a char to unsigned char before calling -// isspace(), etc. - -inline bool IsAlpha(char ch) { - return isalpha(static_cast(ch)) != 0; -} -inline bool IsAlNum(char ch) { - return isalnum(static_cast(ch)) != 0; -} -inline bool IsDigit(char ch) { - return isdigit(static_cast(ch)) != 0; -} -inline bool IsLower(char ch) { - return islower(static_cast(ch)) != 0; -} -inline bool IsSpace(char ch) { - return isspace(static_cast(ch)) != 0; -} -inline bool IsUpper(char ch) { - return isupper(static_cast(ch)) != 0; -} -inline bool IsXDigit(char ch) { - return isxdigit(static_cast(ch)) != 0; -} -#ifdef __cpp_char8_t -inline bool IsXDigit(char8_t ch) { - return isxdigit(static_cast(ch)) != 0; -} -#endif -inline bool IsXDigit(char16_t ch) { - const unsigned char low_byte = static_cast(ch); - return ch == low_byte && isxdigit(low_byte) != 0; -} -inline bool IsXDigit(char32_t ch) { - const unsigned char low_byte = static_cast(ch); - return ch == low_byte && isxdigit(low_byte) != 0; -} -inline bool IsXDigit(wchar_t ch) { - const unsigned char low_byte = static_cast(ch); - return ch == low_byte && isxdigit(low_byte) != 0; -} - -inline char ToLower(char ch) { - return static_cast(tolower(static_cast(ch))); -} -inline char ToUpper(char ch) { - return static_cast(toupper(static_cast(ch))); -} - -inline std::string StripTrailingSpaces(std::string str) { - std::string::iterator it = str.end(); - while (it != str.begin() && IsSpace(*--it)) it = str.erase(it); - return str; -} - -// The testing::internal::posix namespace holds wrappers for common -// POSIX functions. These wrappers hide the differences between -// Windows/MSVC and POSIX systems. Since some compilers define these -// standard functions as macros, the wrapper cannot have the same name -// as the wrapped function. - -namespace posix { - -// Functions with a different name on Windows. - -#if GTEST_OS_WINDOWS - -typedef struct _stat StatStruct; - -#ifdef __BORLANDC__ -inline int DoIsATTY(int fd) { return isatty(fd); } -inline int StrCaseCmp(const char* s1, const char* s2) { - return stricmp(s1, s2); -} -inline char* StrDup(const char* src) { return strdup(src); } -#else // !__BORLANDC__ -#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_ZOS || GTEST_OS_IOS || \ - GTEST_OS_WINDOWS_PHONE || GTEST_OS_WINDOWS_RT || defined(ESP_PLATFORM) -inline int DoIsATTY(int /* fd */) { return 0; } -#else -inline int DoIsATTY(int fd) { return _isatty(fd); } -#endif // GTEST_OS_WINDOWS_MOBILE -inline int StrCaseCmp(const char* s1, const char* s2) { - return _stricmp(s1, s2); -} -inline char* StrDup(const char* src) { return _strdup(src); } -#endif // __BORLANDC__ - -#if GTEST_OS_WINDOWS_MOBILE -inline int FileNo(FILE* file) { return reinterpret_cast(_fileno(file)); } -// Stat(), RmDir(), and IsDir() are not needed on Windows CE at this -// time and thus not defined there. -#else -inline int FileNo(FILE* file) { return _fileno(file); } -inline int Stat(const char* path, StatStruct* buf) { return _stat(path, buf); } -inline int RmDir(const char* dir) { return _rmdir(dir); } -inline bool IsDir(const StatStruct& st) { return (_S_IFDIR & st.st_mode) != 0; } -#endif // GTEST_OS_WINDOWS_MOBILE - -#elif GTEST_OS_ESP8266 -typedef struct stat StatStruct; - -inline int FileNo(FILE* file) { return fileno(file); } -inline int DoIsATTY(int fd) { return isatty(fd); } -inline int Stat(const char* path, StatStruct* buf) { - // stat function not implemented on ESP8266 - return 0; -} -inline int StrCaseCmp(const char* s1, const char* s2) { - return strcasecmp(s1, s2); -} -inline char* StrDup(const char* src) { return strdup(src); } -inline int RmDir(const char* dir) { return rmdir(dir); } -inline bool IsDir(const StatStruct& st) { return S_ISDIR(st.st_mode); } - -#else - -typedef struct stat StatStruct; - -inline int FileNo(FILE* file) { return fileno(file); } -inline int DoIsATTY(int fd) { return isatty(fd); } -inline int Stat(const char* path, StatStruct* buf) { return stat(path, buf); } -inline int StrCaseCmp(const char* s1, const char* s2) { - return strcasecmp(s1, s2); -} -inline char* StrDup(const char* src) { return strdup(src); } -inline int RmDir(const char* dir) { return rmdir(dir); } -inline bool IsDir(const StatStruct& st) { return S_ISDIR(st.st_mode); } - -#endif // GTEST_OS_WINDOWS - -inline int IsATTY(int fd) { - // DoIsATTY might change errno (for example ENOTTY in case you redirect stdout - // to a file on Linux), which is unexpected, so save the previous value, and - // restore it after the call. - int savedErrno = errno; - int isAttyValue = DoIsATTY(fd); - errno = savedErrno; - - return isAttyValue; -} - -// Functions deprecated by MSVC 8.0. - -GTEST_DISABLE_MSC_DEPRECATED_PUSH_() - -// ChDir(), FReopen(), FDOpen(), Read(), Write(), Close(), and -// StrError() aren't needed on Windows CE at this time and thus not -// defined there. - -#if !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_WINDOWS_PHONE && \ - !GTEST_OS_WINDOWS_RT && !GTEST_OS_ESP8266 && !GTEST_OS_XTENSA -inline int ChDir(const char* dir) { return chdir(dir); } -#endif -inline FILE* FOpen(const char* path, const char* mode) { -#if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MINGW - struct wchar_codecvt : public std::codecvt {}; - std::wstring_convert converter; - std::wstring wide_path = converter.from_bytes(path); - std::wstring wide_mode = converter.from_bytes(mode); - return _wfopen(wide_path.c_str(), wide_mode.c_str()); -#else // GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MINGW - return fopen(path, mode); -#endif // GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MINGW -} -#if !GTEST_OS_WINDOWS_MOBILE -inline FILE* FReopen(const char* path, const char* mode, FILE* stream) { - return freopen(path, mode, stream); -} -inline FILE* FDOpen(int fd, const char* mode) { return fdopen(fd, mode); } -#endif -inline int FClose(FILE* fp) { return fclose(fp); } -#if !GTEST_OS_WINDOWS_MOBILE -inline int Read(int fd, void* buf, unsigned int count) { - return static_cast(read(fd, buf, count)); -} -inline int Write(int fd, const void* buf, unsigned int count) { - return static_cast(write(fd, buf, count)); -} -inline int Close(int fd) { return close(fd); } -inline const char* StrError(int errnum) { return strerror(errnum); } -#endif -inline const char* GetEnv(const char* name) { -#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || \ - GTEST_OS_WINDOWS_RT || GTEST_OS_ESP8266 || GTEST_OS_XTENSA - // We are on an embedded platform, which has no environment variables. - static_cast(name); // To prevent 'unused argument' warning. - return nullptr; -#elif defined(__BORLANDC__) || defined(__SunOS_5_8) || defined(__SunOS_5_9) - // Environment variables which we programmatically clear will be set to the - // empty string rather than unset (NULL). Handle that case. - const char* const env = getenv(name); - return (env != nullptr && env[0] != '\0') ? env : nullptr; -#else - return getenv(name); -#endif -} - -GTEST_DISABLE_MSC_DEPRECATED_POP_() - -#if GTEST_OS_WINDOWS_MOBILE -// Windows CE has no C library. The abort() function is used in -// several places in Google Test. This implementation provides a reasonable -// imitation of standard behaviour. -[[noreturn]] void Abort(); -#else -[[noreturn]] inline void Abort() { abort(); } -#endif // GTEST_OS_WINDOWS_MOBILE - -} // namespace posix - -// MSVC "deprecates" snprintf and issues warnings wherever it is used. In -// order to avoid these warnings, we need to use _snprintf or _snprintf_s on -// MSVC-based platforms. We map the GTEST_SNPRINTF_ macro to the appropriate -// function in order to achieve that. We use macro definition here because -// snprintf is a variadic function. -#if _MSC_VER && !GTEST_OS_WINDOWS_MOBILE -// MSVC 2005 and above support variadic macros. -#define GTEST_SNPRINTF_(buffer, size, format, ...) \ - _snprintf_s(buffer, size, size, format, __VA_ARGS__) -#elif defined(_MSC_VER) -// Windows CE does not define _snprintf_s -#define GTEST_SNPRINTF_ _snprintf -#else -#define GTEST_SNPRINTF_ snprintf -#endif - -// The biggest signed integer type the compiler supports. -// -// long long is guaranteed to be at least 64-bits in C++11. -using BiggestInt = long long; // NOLINT - -// The maximum number a BiggestInt can represent. -constexpr BiggestInt kMaxBiggestInt = (std::numeric_limits::max)(); - -// This template class serves as a compile-time function from size to -// type. It maps a size in bytes to a primitive type with that -// size. e.g. -// -// TypeWithSize<4>::UInt -// -// is typedef-ed to be unsigned int (unsigned integer made up of 4 -// bytes). -// -// Such functionality should belong to STL, but I cannot find it -// there. -// -// Google Test uses this class in the implementation of floating-point -// comparison. -// -// For now it only handles UInt (unsigned int) as that's all Google Test -// needs. Other types can be easily added in the future if need -// arises. -template -class TypeWithSize { - public: - // This prevents the user from using TypeWithSize with incorrect - // values of N. - using UInt = void; -}; - -// The specialization for size 4. -template <> -class TypeWithSize<4> { - public: - using Int = std::int32_t; - using UInt = std::uint32_t; -}; - -// The specialization for size 8. -template <> -class TypeWithSize<8> { - public: - using Int = std::int64_t; - using UInt = std::uint64_t; -}; - -// Integer types of known sizes. -using TimeInMillis = int64_t; // Represents time in milliseconds. - -// Utilities for command line flags and environment variables. - -// Macro for referencing flags. -#if !defined(GTEST_FLAG) -#define GTEST_FLAG_NAME_(name) gtest_##name -#define GTEST_FLAG(name) FLAGS_gtest_##name -#endif // !defined(GTEST_FLAG) - -// Pick a command line flags implementation. -#if GTEST_HAS_ABSL - -// Macros for defining flags. -#define GTEST_DEFINE_bool_(name, default_val, doc) \ - ABSL_FLAG(bool, GTEST_FLAG_NAME_(name), default_val, doc) -#define GTEST_DEFINE_int32_(name, default_val, doc) \ - ABSL_FLAG(int32_t, GTEST_FLAG_NAME_(name), default_val, doc) -#define GTEST_DEFINE_string_(name, default_val, doc) \ - ABSL_FLAG(std::string, GTEST_FLAG_NAME_(name), default_val, doc) - -// Macros for declaring flags. -#define GTEST_DECLARE_bool_(name) \ - ABSL_DECLARE_FLAG(bool, GTEST_FLAG_NAME_(name)) -#define GTEST_DECLARE_int32_(name) \ - ABSL_DECLARE_FLAG(int32_t, GTEST_FLAG_NAME_(name)) -#define GTEST_DECLARE_string_(name) \ - ABSL_DECLARE_FLAG(std::string, GTEST_FLAG_NAME_(name)) - -#define GTEST_FLAG_SAVER_ ::absl::FlagSaver - -#define GTEST_FLAG_GET(name) ::absl::GetFlag(GTEST_FLAG(name)) -#define GTEST_FLAG_SET(name, value) \ - (void)(::absl::SetFlag(>EST_FLAG(name), value)) -#define GTEST_USE_OWN_FLAGFILE_FLAG_ 0 - -#else // GTEST_HAS_ABSL - -// Macros for defining flags. -#define GTEST_DEFINE_bool_(name, default_val, doc) \ - namespace testing { \ - GTEST_API_ bool GTEST_FLAG(name) = (default_val); \ - } \ - static_assert(true, "no-op to require trailing semicolon") -#define GTEST_DEFINE_int32_(name, default_val, doc) \ - namespace testing { \ - GTEST_API_ std::int32_t GTEST_FLAG(name) = (default_val); \ - } \ - static_assert(true, "no-op to require trailing semicolon") -#define GTEST_DEFINE_string_(name, default_val, doc) \ - namespace testing { \ - GTEST_API_ ::std::string GTEST_FLAG(name) = (default_val); \ - } \ - static_assert(true, "no-op to require trailing semicolon") - -// Macros for declaring flags. -#define GTEST_DECLARE_bool_(name) \ - namespace testing { \ - GTEST_API_ extern bool GTEST_FLAG(name); \ - } \ - static_assert(true, "no-op to require trailing semicolon") -#define GTEST_DECLARE_int32_(name) \ - namespace testing { \ - GTEST_API_ extern std::int32_t GTEST_FLAG(name); \ - } \ - static_assert(true, "no-op to require trailing semicolon") -#define GTEST_DECLARE_string_(name) \ - namespace testing { \ - GTEST_API_ extern ::std::string GTEST_FLAG(name); \ - } \ - static_assert(true, "no-op to require trailing semicolon") - -#define GTEST_FLAG_SAVER_ ::testing::internal::GTestFlagSaver - -#define GTEST_FLAG_GET(name) ::testing::GTEST_FLAG(name) -#define GTEST_FLAG_SET(name, value) (void)(::testing::GTEST_FLAG(name) = value) -#define GTEST_USE_OWN_FLAGFILE_FLAG_ 1 - -#endif // GTEST_HAS_ABSL - -// Thread annotations -#if !defined(GTEST_EXCLUSIVE_LOCK_REQUIRED_) -#define GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks) -#define GTEST_LOCK_EXCLUDED_(locks) -#endif // !defined(GTEST_EXCLUSIVE_LOCK_REQUIRED_) - -// Parses 'str' for a 32-bit signed integer. If successful, writes the result -// to *value and returns true; otherwise leaves *value unchanged and returns -// false. -GTEST_API_ bool ParseInt32(const Message& src_text, const char* str, - int32_t* value); - -// Parses a bool/int32_t/string from the environment variable -// corresponding to the given Google Test flag. -bool BoolFromGTestEnv(const char* flag, bool default_val); -GTEST_API_ int32_t Int32FromGTestEnv(const char* flag, int32_t default_val); -std::string OutputFlagAlsoCheckEnvVar(); -const char* StringFromGTestEnv(const char* flag, const char* default_val); - -} // namespace internal -} // namespace testing - -#if !defined(GTEST_INTERNAL_DEPRECATED) - -// Internal Macro to mark an API deprecated, for googletest usage only -// Usage: class GTEST_INTERNAL_DEPRECATED(message) MyClass or -// GTEST_INTERNAL_DEPRECATED(message) myFunction(); Every usage of -// a deprecated entity will trigger a warning when compiled with -// `-Wdeprecated-declarations` option (clang, gcc, any __GNUC__ compiler). -// For msvc /W3 option will need to be used -// Note that for 'other' compilers this macro evaluates to nothing to prevent -// compilations errors. -#if defined(_MSC_VER) -#define GTEST_INTERNAL_DEPRECATED(message) __declspec(deprecated(message)) -#elif defined(__GNUC__) -#define GTEST_INTERNAL_DEPRECATED(message) __attribute__((deprecated(message))) -#else -#define GTEST_INTERNAL_DEPRECATED(message) -#endif - -#endif // !defined(GTEST_INTERNAL_DEPRECATED) - -#if GTEST_HAS_ABSL -// Always use absl::any for UniversalPrinter<> specializations if googletest -// is built with absl support. -#define GTEST_INTERNAL_HAS_ANY 1 -#include "absl/types/any.h" -namespace testing { -namespace internal { -using Any = ::absl::any; -} // namespace internal -} // namespace testing -#else -#ifdef __has_include -#if __has_include() && __cplusplus >= 201703L -// Otherwise for C++17 and higher use std::any for UniversalPrinter<> -// specializations. -#define GTEST_INTERNAL_HAS_ANY 1 -#include -namespace testing { -namespace internal { -using Any = ::std::any; -} // namespace internal -} // namespace testing -// The case where absl is configured NOT to alias std::any is not -// supported. -#endif // __has_include() && __cplusplus >= 201703L -#endif // __has_include -#endif // GTEST_HAS_ABSL - -#if GTEST_HAS_ABSL -// Always use absl::optional for UniversalPrinter<> specializations if -// googletest is built with absl support. -#define GTEST_INTERNAL_HAS_OPTIONAL 1 -#include "absl/types/optional.h" -namespace testing { -namespace internal { -template -using Optional = ::absl::optional; -inline ::absl::nullopt_t Nullopt() { return ::absl::nullopt; } -} // namespace internal -} // namespace testing -#else -#ifdef __has_include -#if __has_include() && __cplusplus >= 201703L -// Otherwise for C++17 and higher use std::optional for UniversalPrinter<> -// specializations. -#define GTEST_INTERNAL_HAS_OPTIONAL 1 -#include -namespace testing { -namespace internal { -template -using Optional = ::std::optional; -inline ::std::nullopt_t Nullopt() { return ::std::nullopt; } -} // namespace internal -} // namespace testing -// The case where absl is configured NOT to alias std::optional is not -// supported. -#endif // __has_include() && __cplusplus >= 201703L -#endif // __has_include -#endif // GTEST_HAS_ABSL - -#if GTEST_HAS_ABSL -// Always use absl::string_view for Matcher<> specializations if googletest -// is built with absl support. -#define GTEST_INTERNAL_HAS_STRING_VIEW 1 -#include "absl/strings/string_view.h" -namespace testing { -namespace internal { -using StringView = ::absl::string_view; -} // namespace internal -} // namespace testing -#else -#ifdef __has_include -#if __has_include() && __cplusplus >= 201703L -// Otherwise for C++17 and higher use std::string_view for Matcher<> -// specializations. -#define GTEST_INTERNAL_HAS_STRING_VIEW 1 -#include -namespace testing { -namespace internal { -using StringView = ::std::string_view; -} // namespace internal -} // namespace testing -// The case where absl is configured NOT to alias std::string_view is not -// supported. -#endif // __has_include() && __cplusplus >= 201703L -#endif // __has_include -#endif // GTEST_HAS_ABSL - -#if GTEST_HAS_ABSL -// Always use absl::variant for UniversalPrinter<> specializations if googletest -// is built with absl support. -#define GTEST_INTERNAL_HAS_VARIANT 1 -#include "absl/types/variant.h" -namespace testing { -namespace internal { -template -using Variant = ::absl::variant; -} // namespace internal -} // namespace testing -#else -#ifdef __has_include -#if __has_include() && __cplusplus >= 201703L -// Otherwise for C++17 and higher use std::variant for UniversalPrinter<> -// specializations. -#define GTEST_INTERNAL_HAS_VARIANT 1 -#include -namespace testing { -namespace internal { -template -using Variant = ::std::variant; -} // namespace internal -} // namespace testing -// The case where absl is configured NOT to alias std::variant is not supported. -#endif // __has_include() && __cplusplus >= 201703L -#endif // __has_include -#endif // GTEST_HAS_ABSL - -#endif // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-string.h b/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-string.h deleted file mode 100644 index cca2e1f..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-string.h +++ /dev/null @@ -1,177 +0,0 @@ -// Copyright 2005, 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. - -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file declares the String class and functions used internally by -// Google Test. They are subject to change without notice. They should not used -// by code external to Google Test. -// -// This header file is #included by gtest-internal.h. -// It should not be #included by other files. - -// IWYU pragma: private, include "gtest/gtest.h" -// IWYU pragma: friend gtest/.* -// IWYU pragma: friend gmock/.* - -#ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ -#define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ - -#ifdef __BORLANDC__ -// string.h is not guaranteed to provide strcpy on C++ Builder. -#include -#endif - -#include - -#include -#include - -#include "gtest/internal/gtest-port.h" - -namespace testing { -namespace internal { - -// String - an abstract class holding static string utilities. -class GTEST_API_ String { - public: - // Static utility methods - - // Clones a 0-terminated C string, allocating memory using new. The - // caller is responsible for deleting the return value using - // delete[]. Returns the cloned string, or NULL if the input is - // NULL. - // - // This is different from strdup() in string.h, which allocates - // memory using malloc(). - static const char* CloneCString(const char* c_str); - -#if GTEST_OS_WINDOWS_MOBILE - // Windows CE does not have the 'ANSI' versions of Win32 APIs. To be - // able to pass strings to Win32 APIs on CE we need to convert them - // to 'Unicode', UTF-16. - - // Creates a UTF-16 wide string from the given ANSI string, allocating - // memory using new. The caller is responsible for deleting the return - // value using delete[]. Returns the wide string, or NULL if the - // input is NULL. - // - // The wide string is created using the ANSI codepage (CP_ACP) to - // match the behaviour of the ANSI versions of Win32 calls and the - // C runtime. - static LPCWSTR AnsiToUtf16(const char* c_str); - - // Creates an ANSI string from the given wide string, allocating - // memory using new. The caller is responsible for deleting the return - // value using delete[]. Returns the ANSI string, or NULL if the - // input is NULL. - // - // The returned string is created using the ANSI codepage (CP_ACP) to - // match the behaviour of the ANSI versions of Win32 calls and the - // C runtime. - static const char* Utf16ToAnsi(LPCWSTR utf16_str); -#endif - - // Compares two C strings. Returns true if and only if they have the same - // content. - // - // Unlike strcmp(), this function can handle NULL argument(s). A - // NULL C string is considered different to any non-NULL C string, - // including the empty string. - static bool CStringEquals(const char* lhs, const char* rhs); - - // Converts a wide C string to a String using the UTF-8 encoding. - // NULL will be converted to "(null)". If an error occurred during - // the conversion, "(failed to convert from wide string)" is - // returned. - static std::string ShowWideCString(const wchar_t* wide_c_str); - - // Compares two wide C strings. Returns true if and only if they have the - // same content. - // - // Unlike wcscmp(), this function can handle NULL argument(s). A - // NULL C string is considered different to any non-NULL C string, - // including the empty string. - static bool WideCStringEquals(const wchar_t* lhs, const wchar_t* rhs); - - // Compares two C strings, ignoring case. Returns true if and only if - // they have the same content. - // - // Unlike strcasecmp(), this function can handle NULL argument(s). - // A NULL C string is considered different to any non-NULL C string, - // including the empty string. - static bool CaseInsensitiveCStringEquals(const char* lhs, const char* rhs); - - // Compares two wide C strings, ignoring case. Returns true if and only if - // they have the same content. - // - // Unlike wcscasecmp(), this function can handle NULL argument(s). - // A NULL C string is considered different to any non-NULL wide C string, - // including the empty string. - // NB: The implementations on different platforms slightly differ. - // On windows, this method uses _wcsicmp which compares according to LC_CTYPE - // environment variable. On GNU platform this method uses wcscasecmp - // which compares according to LC_CTYPE category of the current locale. - // On MacOS X, it uses towlower, which also uses LC_CTYPE category of the - // current locale. - static bool CaseInsensitiveWideCStringEquals(const wchar_t* lhs, - const wchar_t* rhs); - - // Returns true if and only if the given string ends with the given suffix, - // ignoring case. Any string is considered to end with an empty suffix. - static bool EndsWithCaseInsensitive(const std::string& str, - const std::string& suffix); - - // Formats an int value as "%02d". - static std::string FormatIntWidth2(int value); // "%02d" for width == 2 - - // Formats an int value to given width with leading zeros. - static std::string FormatIntWidthN(int value, int width); - - // Formats an int value as "%X". - static std::string FormatHexInt(int value); - - // Formats an int value as "%X". - static std::string FormatHexUInt32(uint32_t value); - - // Formats a byte as "%02X". - static std::string FormatByte(unsigned char value); - - private: - String(); // Not meant to be instantiated. -}; // class String - -// Gets the content of the stringstream's buffer as an std::string. Each '\0' -// character in the buffer is replaced with "\\0". -GTEST_API_ std::string StringStreamToString(::std::stringstream* stream); - -} // namespace internal -} // namespace testing - -#endif // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ diff --git a/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-type-util.h b/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-type-util.h deleted file mode 100644 index 6bc02a7..0000000 --- a/libs/cpp-httplib/test/gtest/include/gtest/internal/gtest-type-util.h +++ /dev/null @@ -1,186 +0,0 @@ -// 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. - -// Type utilities needed for implementing typed and type-parameterized -// tests. - -// IWYU pragma: private, include "gtest/gtest.h" -// IWYU pragma: friend gtest/.* -// IWYU pragma: friend gmock/.* - -#ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ -#define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ - -#include "gtest/internal/gtest-port.h" - -// #ifdef __GNUC__ is too general here. It is possible to use gcc without using -// libstdc++ (which is where cxxabi.h comes from). -#if GTEST_HAS_CXXABI_H_ -#include -#elif defined(__HP_aCC) -#include -#endif // GTEST_HASH_CXXABI_H_ - -namespace testing { -namespace internal { - -// Canonicalizes a given name with respect to the Standard C++ Library. -// This handles removing the inline namespace within `std` that is -// used by various standard libraries (e.g., `std::__1`). Names outside -// of namespace std are returned unmodified. -inline std::string CanonicalizeForStdLibVersioning(std::string s) { - static const char prefix[] = "std::__"; - if (s.compare(0, strlen(prefix), prefix) == 0) { - std::string::size_type end = s.find("::", strlen(prefix)); - if (end != s.npos) { - // Erase everything between the initial `std` and the second `::`. - s.erase(strlen("std"), end - strlen("std")); - } - } - return s; -} - -#if GTEST_HAS_RTTI -// GetTypeName(const std::type_info&) returns a human-readable name of type T. -inline std::string GetTypeName(const std::type_info& type) { - const char* const name = type.name(); -#if GTEST_HAS_CXXABI_H_ || defined(__HP_aCC) - int status = 0; - // gcc's implementation of typeid(T).name() mangles the type name, - // so we have to demangle it. -#if GTEST_HAS_CXXABI_H_ - using abi::__cxa_demangle; -#endif // GTEST_HAS_CXXABI_H_ - char* const readable_name = __cxa_demangle(name, nullptr, nullptr, &status); - const std::string name_str(status == 0 ? readable_name : name); - free(readable_name); - return CanonicalizeForStdLibVersioning(name_str); -#else - return name; -#endif // GTEST_HAS_CXXABI_H_ || __HP_aCC -} -#endif // GTEST_HAS_RTTI - -// GetTypeName() returns a human-readable name of type T if and only if -// RTTI is enabled, otherwise it returns a dummy type name. -// NB: This function is also used in Google Mock, so don't move it inside of -// the typed-test-only section below. -template -std::string GetTypeName() { -#if GTEST_HAS_RTTI - return GetTypeName(typeid(T)); -#else - return ""; -#endif // GTEST_HAS_RTTI -} - -// A unique type indicating an empty node -struct None {}; - -#define GTEST_TEMPLATE_ \ - template \ - class - -// The template "selector" struct TemplateSel is used to -// represent Tmpl, which must be a class template with one type -// parameter, as a type. TemplateSel::Bind::type is defined -// as the type Tmpl. This allows us to actually instantiate the -// template "selected" by TemplateSel. -// -// This trick is necessary for simulating typedef for class templates, -// which C++ doesn't support directly. -template -struct TemplateSel { - template - struct Bind { - typedef Tmpl type; - }; -}; - -#define GTEST_BIND_(TmplSel, T) TmplSel::template Bind::type - -template -struct Templates { - using Head = TemplateSel; - using Tail = Templates; -}; - -template -struct Templates { - using Head = TemplateSel; - using Tail = None; -}; - -// Tuple-like type lists -template -struct Types { - using Head = Head_; - using Tail = Types; -}; - -template -struct Types { - using Head = Head_; - using Tail = None; -}; - -// Helper metafunctions to tell apart a single type from types -// generated by ::testing::Types -template -struct ProxyTypeList { - using type = Types; -}; - -template -struct is_proxy_type_list : std::false_type {}; - -template -struct is_proxy_type_list> : std::true_type {}; - -// Generator which conditionally creates type lists. -// It recognizes if a requested type list should be created -// and prevents creating a new type list nested within another one. -template -struct GenerateTypeList { - private: - using proxy = typename std::conditional::value, T, - ProxyTypeList>::type; - - public: - using type = typename proxy::type; -}; - -} // namespace internal - -template -using Types = internal::ProxyTypeList; - -} // namespace testing - -#endif // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ diff --git a/libs/cpp-httplib/test/gtest/src/gtest-all.cc b/libs/cpp-httplib/test/gtest/src/gtest-all.cc deleted file mode 100644 index 2a70ed8..0000000 --- a/libs/cpp-httplib/test/gtest/src/gtest-all.cc +++ /dev/null @@ -1,49 +0,0 @@ -// 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. - -// -// Google C++ Testing and Mocking Framework (Google Test) -// -// Sometimes it's desirable to build Google Test by compiling a single file. -// This file serves this purpose. - -// This line ensures that gtest.h can be compiled on its own, even -// when it's fused. -#include "gtest/gtest.h" - -// The following lines pull in the real gtest *.cc files. -#include "src/gtest-assertion-result.cc" -#include "src/gtest-death-test.cc" -#include "src/gtest-filepath.cc" -#include "src/gtest-matchers.cc" -#include "src/gtest-port.cc" -#include "src/gtest-printers.cc" -#include "src/gtest-test-part.cc" -#include "src/gtest-typed-test.cc" -#include "src/gtest.cc" diff --git a/libs/cpp-httplib/test/gtest/src/gtest-assertion-result.cc b/libs/cpp-httplib/test/gtest/src/gtest-assertion-result.cc deleted file mode 100644 index f1c0b10..0000000 --- a/libs/cpp-httplib/test/gtest/src/gtest-assertion-result.cc +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2005, 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. - -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This file defines the AssertionResult type. - -#include "gtest/gtest-assertion-result.h" - -#include -#include - -#include "gtest/gtest-message.h" - -namespace testing { - -// AssertionResult constructors. -// Used in EXPECT_TRUE/FALSE(assertion_result). -AssertionResult::AssertionResult(const AssertionResult& other) - : success_(other.success_), - message_(other.message_.get() != nullptr - ? new ::std::string(*other.message_) - : static_cast< ::std::string*>(nullptr)) {} - -// Swaps two AssertionResults. -void AssertionResult::swap(AssertionResult& other) { - using std::swap; - swap(success_, other.success_); - swap(message_, other.message_); -} - -// Returns the assertion's negation. Used with EXPECT/ASSERT_FALSE. -AssertionResult AssertionResult::operator!() const { - AssertionResult negation(!success_); - if (message_.get() != nullptr) negation << *message_; - return negation; -} - -// Makes a successful assertion result. -AssertionResult AssertionSuccess() { return AssertionResult(true); } - -// Makes a failed assertion result. -AssertionResult AssertionFailure() { return AssertionResult(false); } - -// Makes a failed assertion result with the given failure message. -// Deprecated; use AssertionFailure() << message. -AssertionResult AssertionFailure(const Message& message) { - return AssertionFailure() << message; -} - -} // namespace testing diff --git a/libs/cpp-httplib/test/gtest/src/gtest-death-test.cc b/libs/cpp-httplib/test/gtest/src/gtest-death-test.cc deleted file mode 100644 index e6abc62..0000000 --- a/libs/cpp-httplib/test/gtest/src/gtest-death-test.cc +++ /dev/null @@ -1,1620 +0,0 @@ -// Copyright 2005, 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. - -// -// This file implements death tests. - -#include "gtest/gtest-death-test.h" - -#include -#include - -#include "gtest/internal/custom/gtest.h" -#include "gtest/internal/gtest-port.h" - -#if GTEST_HAS_DEATH_TEST - -#if GTEST_OS_MAC -#include -#endif // GTEST_OS_MAC - -#include -#include -#include - -#if GTEST_OS_LINUX -#include -#endif // GTEST_OS_LINUX - -#include - -#if GTEST_OS_WINDOWS -#include -#else -#include -#include -#endif // GTEST_OS_WINDOWS - -#if GTEST_OS_QNX -#include -#endif // GTEST_OS_QNX - -#if GTEST_OS_FUCHSIA -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#endif // GTEST_OS_FUCHSIA - -#endif // GTEST_HAS_DEATH_TEST - -#include "gtest/gtest-message.h" -#include "gtest/internal/gtest-string.h" -#include "src/gtest-internal-inl.h" - -namespace testing { - -// Constants. - -// The default death test style. -// -// This is defined in internal/gtest-port.h as "fast", but can be overridden by -// a definition in internal/custom/gtest-port.h. The recommended value, which is -// used internally at Google, is "threadsafe". -static const char kDefaultDeathTestStyle[] = GTEST_DEFAULT_DEATH_TEST_STYLE; - -} // namespace testing - -GTEST_DEFINE_string_( - death_test_style, - testing::internal::StringFromGTestEnv("death_test_style", - testing::kDefaultDeathTestStyle), - "Indicates how to run a death test in a forked child process: " - "\"threadsafe\" (child process re-executes the test binary " - "from the beginning, running only the specific death test) or " - "\"fast\" (child process runs the death test immediately " - "after forking)."); - -GTEST_DEFINE_bool_( - death_test_use_fork, - testing::internal::BoolFromGTestEnv("death_test_use_fork", false), - "Instructs to use fork()/_exit() instead of clone() in death tests. " - "Ignored and always uses fork() on POSIX systems where clone() is not " - "implemented. Useful when running under valgrind or similar tools if " - "those do not support clone(). Valgrind 3.3.1 will just fail if " - "it sees an unsupported combination of clone() flags. " - "It is not recommended to use this flag w/o valgrind though it will " - "work in 99% of the cases. Once valgrind is fixed, this flag will " - "most likely be removed."); - -GTEST_DEFINE_string_( - internal_run_death_test, "", - "Indicates the file, line number, temporal index of " - "the single death test to run, and a file descriptor to " - "which a success code may be sent, all separated by " - "the '|' characters. This flag is specified if and only if the " - "current process is a sub-process launched for running a thread-safe " - "death test. FOR INTERNAL USE ONLY."); - -namespace testing { - -#if GTEST_HAS_DEATH_TEST - -namespace internal { - -// Valid only for fast death tests. Indicates the code is running in the -// child process of a fast style death test. -#if !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA -static bool g_in_fast_death_test_child = false; -#endif - -// Returns a Boolean value indicating whether the caller is currently -// executing in the context of the death test child process. Tools such as -// Valgrind heap checkers may need this to modify their behavior in death -// tests. IMPORTANT: This is an internal utility. Using it may break the -// implementation of death tests. User code MUST NOT use it. -bool InDeathTestChild() { -#if GTEST_OS_WINDOWS || GTEST_OS_FUCHSIA - - // On Windows and Fuchsia, death tests are thread-safe regardless of the value - // of the death_test_style flag. - return !GTEST_FLAG_GET(internal_run_death_test).empty(); - -#else - - if (GTEST_FLAG_GET(death_test_style) == "threadsafe") - return !GTEST_FLAG_GET(internal_run_death_test).empty(); - else - return g_in_fast_death_test_child; -#endif -} - -} // namespace internal - -// ExitedWithCode constructor. -ExitedWithCode::ExitedWithCode(int exit_code) : exit_code_(exit_code) {} - -// ExitedWithCode function-call operator. -bool ExitedWithCode::operator()(int exit_status) const { -#if GTEST_OS_WINDOWS || GTEST_OS_FUCHSIA - - return exit_status == exit_code_; - -#else - - return WIFEXITED(exit_status) && WEXITSTATUS(exit_status) == exit_code_; - -#endif // GTEST_OS_WINDOWS || GTEST_OS_FUCHSIA -} - -#if !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA -// KilledBySignal constructor. -KilledBySignal::KilledBySignal(int signum) : signum_(signum) {} - -// KilledBySignal function-call operator. -bool KilledBySignal::operator()(int exit_status) const { -#if defined(GTEST_KILLED_BY_SIGNAL_OVERRIDE_) - { - bool result; - if (GTEST_KILLED_BY_SIGNAL_OVERRIDE_(signum_, exit_status, &result)) { - return result; - } - } -#endif // defined(GTEST_KILLED_BY_SIGNAL_OVERRIDE_) - return WIFSIGNALED(exit_status) && WTERMSIG(exit_status) == signum_; -} -#endif // !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA - -namespace internal { - -// Utilities needed for death tests. - -// Generates a textual description of a given exit code, in the format -// specified by wait(2). -static std::string ExitSummary(int exit_code) { - Message m; - -#if GTEST_OS_WINDOWS || GTEST_OS_FUCHSIA - - m << "Exited with exit status " << exit_code; - -#else - - if (WIFEXITED(exit_code)) { - m << "Exited with exit status " << WEXITSTATUS(exit_code); - } else if (WIFSIGNALED(exit_code)) { - m << "Terminated by signal " << WTERMSIG(exit_code); - } -#ifdef WCOREDUMP - if (WCOREDUMP(exit_code)) { - m << " (core dumped)"; - } -#endif -#endif // GTEST_OS_WINDOWS || GTEST_OS_FUCHSIA - - return m.GetString(); -} - -// Returns true if exit_status describes a process that was terminated -// by a signal, or exited normally with a nonzero exit code. -bool ExitedUnsuccessfully(int exit_status) { - return !ExitedWithCode(0)(exit_status); -} - -#if !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA -// Generates a textual failure message when a death test finds more than -// one thread running, or cannot determine the number of threads, prior -// to executing the given statement. It is the responsibility of the -// caller not to pass a thread_count of 1. -static std::string DeathTestThreadWarning(size_t thread_count) { - Message msg; - msg << "Death tests use fork(), which is unsafe particularly" - << " in a threaded context. For this test, " << GTEST_NAME_ << " "; - if (thread_count == 0) { - msg << "couldn't detect the number of threads."; - } else { - msg << "detected " << thread_count << " threads."; - } - msg << " See " - "https://github.com/google/googletest/blob/master/docs/" - "advanced.md#death-tests-and-threads" - << " for more explanation and suggested solutions, especially if" - << " this is the last message you see before your test times out."; - return msg.GetString(); -} -#endif // !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA - -// Flag characters for reporting a death test that did not die. -static const char kDeathTestLived = 'L'; -static const char kDeathTestReturned = 'R'; -static const char kDeathTestThrew = 'T'; -static const char kDeathTestInternalError = 'I'; - -#if GTEST_OS_FUCHSIA - -// File descriptor used for the pipe in the child process. -static const int kFuchsiaReadPipeFd = 3; - -#endif - -// An enumeration describing all of the possible ways that a death test can -// conclude. DIED means that the process died while executing the test -// code; LIVED means that process lived beyond the end of the test code; -// RETURNED means that the test statement attempted to execute a return -// statement, which is not allowed; THREW means that the test statement -// returned control by throwing an exception. IN_PROGRESS means the test -// has not yet concluded. -enum DeathTestOutcome { IN_PROGRESS, DIED, LIVED, RETURNED, THREW }; - -// Routine for aborting the program which is safe to call from an -// exec-style death test child process, in which case the error -// message is propagated back to the parent process. Otherwise, the -// message is simply printed to stderr. In either case, the program -// then exits with status 1. -static void DeathTestAbort(const std::string& message) { - // On a POSIX system, this function may be called from a threadsafe-style - // death test child process, which operates on a very small stack. Use - // the heap for any additional non-minuscule memory requirements. - const InternalRunDeathTestFlag* const flag = - GetUnitTestImpl()->internal_run_death_test_flag(); - if (flag != nullptr) { - FILE* parent = posix::FDOpen(flag->write_fd(), "w"); - fputc(kDeathTestInternalError, parent); - fprintf(parent, "%s", message.c_str()); - fflush(parent); - _exit(1); - } else { - fprintf(stderr, "%s", message.c_str()); - fflush(stderr); - posix::Abort(); - } -} - -// A replacement for CHECK that calls DeathTestAbort if the assertion -// fails. -#define GTEST_DEATH_TEST_CHECK_(expression) \ - do { \ - if (!::testing::internal::IsTrue(expression)) { \ - DeathTestAbort(::std::string("CHECK failed: File ") + __FILE__ + \ - ", line " + \ - ::testing::internal::StreamableToString(__LINE__) + \ - ": " + #expression); \ - } \ - } while (::testing::internal::AlwaysFalse()) - -// This macro is similar to GTEST_DEATH_TEST_CHECK_, but it is meant for -// evaluating any system call that fulfills two conditions: it must return -// -1 on failure, and set errno to EINTR when it is interrupted and -// should be tried again. The macro expands to a loop that repeatedly -// evaluates the expression as long as it evaluates to -1 and sets -// errno to EINTR. If the expression evaluates to -1 but errno is -// something other than EINTR, DeathTestAbort is called. -#define GTEST_DEATH_TEST_CHECK_SYSCALL_(expression) \ - do { \ - int gtest_retval; \ - do { \ - gtest_retval = (expression); \ - } while (gtest_retval == -1 && errno == EINTR); \ - if (gtest_retval == -1) { \ - DeathTestAbort(::std::string("CHECK failed: File ") + __FILE__ + \ - ", line " + \ - ::testing::internal::StreamableToString(__LINE__) + \ - ": " + #expression + " != -1"); \ - } \ - } while (::testing::internal::AlwaysFalse()) - -// Returns the message describing the last system error in errno. -std::string GetLastErrnoDescription() { - return errno == 0 ? "" : posix::StrError(errno); -} - -// This is called from a death test parent process to read a failure -// message from the death test child process and log it with the FATAL -// severity. On Windows, the message is read from a pipe handle. On other -// platforms, it is read from a file descriptor. -static void FailFromInternalError(int fd) { - Message error; - char buffer[256]; - int num_read; - - do { - while ((num_read = posix::Read(fd, buffer, 255)) > 0) { - buffer[num_read] = '\0'; - error << buffer; - } - } while (num_read == -1 && errno == EINTR); - - if (num_read == 0) { - GTEST_LOG_(FATAL) << error.GetString(); - } else { - const int last_error = errno; - GTEST_LOG_(FATAL) << "Error while reading death test internal: " - << GetLastErrnoDescription() << " [" << last_error << "]"; - } -} - -// Death test constructor. Increments the running death test count -// for the current test. -DeathTest::DeathTest() { - TestInfo* const info = GetUnitTestImpl()->current_test_info(); - if (info == nullptr) { - DeathTestAbort( - "Cannot run a death test outside of a TEST or " - "TEST_F construct"); - } -} - -// Creates and returns a death test by dispatching to the current -// death test factory. -bool DeathTest::Create(const char* statement, - Matcher matcher, const char* file, - int line, DeathTest** test) { - return GetUnitTestImpl()->death_test_factory()->Create( - statement, std::move(matcher), file, line, test); -} - -const char* DeathTest::LastMessage() { - return last_death_test_message_.c_str(); -} - -void DeathTest::set_last_death_test_message(const std::string& message) { - last_death_test_message_ = message; -} - -std::string DeathTest::last_death_test_message_; - -// Provides cross platform implementation for some death functionality. -class DeathTestImpl : public DeathTest { - protected: - DeathTestImpl(const char* a_statement, Matcher matcher) - : statement_(a_statement), - matcher_(std::move(matcher)), - spawned_(false), - status_(-1), - outcome_(IN_PROGRESS), - read_fd_(-1), - write_fd_(-1) {} - - // read_fd_ is expected to be closed and cleared by a derived class. - ~DeathTestImpl() override { GTEST_DEATH_TEST_CHECK_(read_fd_ == -1); } - - void Abort(AbortReason reason) override; - bool Passed(bool status_ok) override; - - const char* statement() const { return statement_; } - bool spawned() const { return spawned_; } - void set_spawned(bool is_spawned) { spawned_ = is_spawned; } - int status() const { return status_; } - void set_status(int a_status) { status_ = a_status; } - DeathTestOutcome outcome() const { return outcome_; } - void set_outcome(DeathTestOutcome an_outcome) { outcome_ = an_outcome; } - int read_fd() const { return read_fd_; } - void set_read_fd(int fd) { read_fd_ = fd; } - int write_fd() const { return write_fd_; } - void set_write_fd(int fd) { write_fd_ = fd; } - - // Called in the parent process only. Reads the result code of the death - // test child process via a pipe, interprets it to set the outcome_ - // member, and closes read_fd_. Outputs diagnostics and terminates in - // case of unexpected codes. - void ReadAndInterpretStatusByte(); - - // Returns stderr output from the child process. - virtual std::string GetErrorLogs(); - - private: - // The textual content of the code this object is testing. This class - // doesn't own this string and should not attempt to delete it. - const char* const statement_; - // A matcher that's expected to match the stderr output by the child process. - Matcher matcher_; - // True if the death test child process has been successfully spawned. - bool spawned_; - // The exit status of the child process. - int status_; - // How the death test concluded. - DeathTestOutcome outcome_; - // Descriptor to the read end of the pipe to the child process. It is - // always -1 in the child process. The child keeps its write end of the - // pipe in write_fd_. - int read_fd_; - // Descriptor to the child's write end of the pipe to the parent process. - // It is always -1 in the parent process. The parent keeps its end of the - // pipe in read_fd_. - int write_fd_; -}; - -// Called in the parent process only. Reads the result code of the death -// test child process via a pipe, interprets it to set the outcome_ -// member, and closes read_fd_. Outputs diagnostics and terminates in -// case of unexpected codes. -void DeathTestImpl::ReadAndInterpretStatusByte() { - char flag; - int bytes_read; - - // The read() here blocks until data is available (signifying the - // failure of the death test) or until the pipe is closed (signifying - // its success), so it's okay to call this in the parent before - // the child process has exited. - do { - bytes_read = posix::Read(read_fd(), &flag, 1); - } while (bytes_read == -1 && errno == EINTR); - - if (bytes_read == 0) { - set_outcome(DIED); - } else if (bytes_read == 1) { - switch (flag) { - case kDeathTestReturned: - set_outcome(RETURNED); - break; - case kDeathTestThrew: - set_outcome(THREW); - break; - case kDeathTestLived: - set_outcome(LIVED); - break; - case kDeathTestInternalError: - FailFromInternalError(read_fd()); // Does not return. - break; - default: - GTEST_LOG_(FATAL) << "Death test child process reported " - << "unexpected status byte (" - << static_cast(flag) << ")"; - } - } else { - GTEST_LOG_(FATAL) << "Read from death test child process failed: " - << GetLastErrnoDescription(); - } - GTEST_DEATH_TEST_CHECK_SYSCALL_(posix::Close(read_fd())); - set_read_fd(-1); -} - -std::string DeathTestImpl::GetErrorLogs() { return GetCapturedStderr(); } - -// Signals that the death test code which should have exited, didn't. -// Should be called only in a death test child process. -// Writes a status byte to the child's status file descriptor, then -// calls _exit(1). -void DeathTestImpl::Abort(AbortReason reason) { - // The parent process considers the death test to be a failure if - // it finds any data in our pipe. So, here we write a single flag byte - // to the pipe, then exit. - const char status_ch = reason == TEST_DID_NOT_DIE ? kDeathTestLived - : reason == TEST_THREW_EXCEPTION ? kDeathTestThrew - : kDeathTestReturned; - - GTEST_DEATH_TEST_CHECK_SYSCALL_(posix::Write(write_fd(), &status_ch, 1)); - // We are leaking the descriptor here because on some platforms (i.e., - // when built as Windows DLL), destructors of global objects will still - // run after calling _exit(). On such systems, write_fd_ will be - // indirectly closed from the destructor of UnitTestImpl, causing double - // close if it is also closed here. On debug configurations, double close - // may assert. As there are no in-process buffers to flush here, we are - // relying on the OS to close the descriptor after the process terminates - // when the destructors are not run. - _exit(1); // Exits w/o any normal exit hooks (we were supposed to crash) -} - -// Returns an indented copy of stderr output for a death test. -// This makes distinguishing death test output lines from regular log lines -// much easier. -static ::std::string FormatDeathTestOutput(const ::std::string& output) { - ::std::string ret; - for (size_t at = 0;;) { - const size_t line_end = output.find('\n', at); - ret += "[ DEATH ] "; - if (line_end == ::std::string::npos) { - ret += output.substr(at); - break; - } - ret += output.substr(at, line_end + 1 - at); - at = line_end + 1; - } - return ret; -} - -// Assesses the success or failure of a death test, using both private -// members which have previously been set, and one argument: -// -// Private data members: -// outcome: An enumeration describing how the death test -// concluded: DIED, LIVED, THREW, or RETURNED. The death test -// fails in the latter three cases. -// status: The exit status of the child process. On *nix, it is in the -// in the format specified by wait(2). On Windows, this is the -// value supplied to the ExitProcess() API or a numeric code -// of the exception that terminated the program. -// matcher_: A matcher that's expected to match the stderr output by the child -// process. -// -// Argument: -// status_ok: true if exit_status is acceptable in the context of -// this particular death test, which fails if it is false -// -// Returns true if and only if all of the above conditions are met. Otherwise, -// the first failing condition, in the order given above, is the one that is -// reported. Also sets the last death test message string. -bool DeathTestImpl::Passed(bool status_ok) { - if (!spawned()) return false; - - const std::string error_message = GetErrorLogs(); - - bool success = false; - Message buffer; - - buffer << "Death test: " << statement() << "\n"; - switch (outcome()) { - case LIVED: - buffer << " Result: failed to die.\n" - << " Error msg:\n" - << FormatDeathTestOutput(error_message); - break; - case THREW: - buffer << " Result: threw an exception.\n" - << " Error msg:\n" - << FormatDeathTestOutput(error_message); - break; - case RETURNED: - buffer << " Result: illegal return in test statement.\n" - << " Error msg:\n" - << FormatDeathTestOutput(error_message); - break; - case DIED: - if (status_ok) { - if (matcher_.Matches(error_message)) { - success = true; - } else { - std::ostringstream stream; - matcher_.DescribeTo(&stream); - buffer << " Result: died but not with expected error.\n" - << " Expected: " << stream.str() << "\n" - << "Actual msg:\n" - << FormatDeathTestOutput(error_message); - } - } else { - buffer << " Result: died but not with expected exit code:\n" - << " " << ExitSummary(status()) << "\n" - << "Actual msg:\n" - << FormatDeathTestOutput(error_message); - } - break; - case IN_PROGRESS: - default: - GTEST_LOG_(FATAL) - << "DeathTest::Passed somehow called before conclusion of test"; - } - - DeathTest::set_last_death_test_message(buffer.GetString()); - return success; -} - -#if GTEST_OS_WINDOWS -// WindowsDeathTest implements death tests on Windows. Due to the -// specifics of starting new processes on Windows, death tests there are -// always threadsafe, and Google Test considers the -// --gtest_death_test_style=fast setting to be equivalent to -// --gtest_death_test_style=threadsafe there. -// -// A few implementation notes: Like the Linux version, the Windows -// implementation uses pipes for child-to-parent communication. But due to -// the specifics of pipes on Windows, some extra steps are required: -// -// 1. The parent creates a communication pipe and stores handles to both -// ends of it. -// 2. The parent starts the child and provides it with the information -// necessary to acquire the handle to the write end of the pipe. -// 3. The child acquires the write end of the pipe and signals the parent -// using a Windows event. -// 4. Now the parent can release the write end of the pipe on its side. If -// this is done before step 3, the object's reference count goes down to -// 0 and it is destroyed, preventing the child from acquiring it. The -// parent now has to release it, or read operations on the read end of -// the pipe will not return when the child terminates. -// 5. The parent reads child's output through the pipe (outcome code and -// any possible error messages) from the pipe, and its stderr and then -// determines whether to fail the test. -// -// Note: to distinguish Win32 API calls from the local method and function -// calls, the former are explicitly resolved in the global namespace. -// -class WindowsDeathTest : public DeathTestImpl { - public: - WindowsDeathTest(const char* a_statement, Matcher matcher, - const char* file, int line) - : DeathTestImpl(a_statement, std::move(matcher)), - file_(file), - line_(line) {} - - // All of these virtual functions are inherited from DeathTest. - virtual int Wait(); - virtual TestRole AssumeRole(); - - private: - // The name of the file in which the death test is located. - const char* const file_; - // The line number on which the death test is located. - const int line_; - // Handle to the write end of the pipe to the child process. - AutoHandle write_handle_; - // Child process handle. - AutoHandle child_handle_; - // Event the child process uses to signal the parent that it has - // acquired the handle to the write end of the pipe. After seeing this - // event the parent can release its own handles to make sure its - // ReadFile() calls return when the child terminates. - AutoHandle event_handle_; -}; - -// Waits for the child in a death test to exit, returning its exit -// status, or 0 if no child process exists. As a side effect, sets the -// outcome data member. -int WindowsDeathTest::Wait() { - if (!spawned()) return 0; - - // Wait until the child either signals that it has acquired the write end - // of the pipe or it dies. - const HANDLE wait_handles[2] = {child_handle_.Get(), event_handle_.Get()}; - switch (::WaitForMultipleObjects(2, wait_handles, - FALSE, // Waits for any of the handles. - INFINITE)) { - case WAIT_OBJECT_0: - case WAIT_OBJECT_0 + 1: - break; - default: - GTEST_DEATH_TEST_CHECK_(false); // Should not get here. - } - - // The child has acquired the write end of the pipe or exited. - // We release the handle on our side and continue. - write_handle_.Reset(); - event_handle_.Reset(); - - ReadAndInterpretStatusByte(); - - // Waits for the child process to exit if it haven't already. This - // returns immediately if the child has already exited, regardless of - // whether previous calls to WaitForMultipleObjects synchronized on this - // handle or not. - GTEST_DEATH_TEST_CHECK_(WAIT_OBJECT_0 == - ::WaitForSingleObject(child_handle_.Get(), INFINITE)); - DWORD status_code; - GTEST_DEATH_TEST_CHECK_( - ::GetExitCodeProcess(child_handle_.Get(), &status_code) != FALSE); - child_handle_.Reset(); - set_status(static_cast(status_code)); - return status(); -} - -// The AssumeRole process for a Windows death test. It creates a child -// process with the same executable as the current process to run the -// death test. The child process is given the --gtest_filter and -// --gtest_internal_run_death_test flags such that it knows to run the -// current death test only. -DeathTest::TestRole WindowsDeathTest::AssumeRole() { - const UnitTestImpl* const impl = GetUnitTestImpl(); - const InternalRunDeathTestFlag* const flag = - impl->internal_run_death_test_flag(); - const TestInfo* const info = impl->current_test_info(); - const int death_test_index = info->result()->death_test_count(); - - if (flag != nullptr) { - // ParseInternalRunDeathTestFlag() has performed all the necessary - // processing. - set_write_fd(flag->write_fd()); - return EXECUTE_TEST; - } - - // WindowsDeathTest uses an anonymous pipe to communicate results of - // a death test. - SECURITY_ATTRIBUTES handles_are_inheritable = {sizeof(SECURITY_ATTRIBUTES), - nullptr, TRUE}; - HANDLE read_handle, write_handle; - GTEST_DEATH_TEST_CHECK_(::CreatePipe(&read_handle, &write_handle, - &handles_are_inheritable, - 0) // Default buffer size. - != FALSE); - set_read_fd( - ::_open_osfhandle(reinterpret_cast(read_handle), O_RDONLY)); - write_handle_.Reset(write_handle); - event_handle_.Reset(::CreateEvent( - &handles_are_inheritable, - TRUE, // The event will automatically reset to non-signaled state. - FALSE, // The initial state is non-signalled. - nullptr)); // The even is unnamed. - GTEST_DEATH_TEST_CHECK_(event_handle_.Get() != nullptr); - const std::string filter_flag = std::string("--") + GTEST_FLAG_PREFIX_ + - "filter=" + info->test_suite_name() + "." + - info->name(); - const std::string internal_flag = - std::string("--") + GTEST_FLAG_PREFIX_ + - "internal_run_death_test=" + file_ + "|" + StreamableToString(line_) + - "|" + StreamableToString(death_test_index) + "|" + - StreamableToString(static_cast(::GetCurrentProcessId())) + - // size_t has the same width as pointers on both 32-bit and 64-bit - // Windows platforms. - // See http://msdn.microsoft.com/en-us/library/tcxf1dw6.aspx. - "|" + StreamableToString(reinterpret_cast(write_handle)) + "|" + - StreamableToString(reinterpret_cast(event_handle_.Get())); - - char executable_path[_MAX_PATH + 1]; // NOLINT - GTEST_DEATH_TEST_CHECK_(_MAX_PATH + 1 != ::GetModuleFileNameA(nullptr, - executable_path, - _MAX_PATH)); - - std::string command_line = std::string(::GetCommandLineA()) + " " + - filter_flag + " \"" + internal_flag + "\""; - - DeathTest::set_last_death_test_message(""); - - CaptureStderr(); - // Flush the log buffers since the log streams are shared with the child. - FlushInfoLog(); - - // The child process will share the standard handles with the parent. - STARTUPINFOA startup_info; - memset(&startup_info, 0, sizeof(STARTUPINFO)); - startup_info.dwFlags = STARTF_USESTDHANDLES; - startup_info.hStdInput = ::GetStdHandle(STD_INPUT_HANDLE); - startup_info.hStdOutput = ::GetStdHandle(STD_OUTPUT_HANDLE); - startup_info.hStdError = ::GetStdHandle(STD_ERROR_HANDLE); - - PROCESS_INFORMATION process_info; - GTEST_DEATH_TEST_CHECK_( - ::CreateProcessA( - executable_path, const_cast(command_line.c_str()), - nullptr, // Returned process handle is not inheritable. - nullptr, // Returned thread handle is not inheritable. - TRUE, // Child inherits all inheritable handles (for write_handle_). - 0x0, // Default creation flags. - nullptr, // Inherit the parent's environment. - UnitTest::GetInstance()->original_working_dir(), &startup_info, - &process_info) != FALSE); - child_handle_.Reset(process_info.hProcess); - ::CloseHandle(process_info.hThread); - set_spawned(true); - return OVERSEE_TEST; -} - -#elif GTEST_OS_FUCHSIA - -class FuchsiaDeathTest : public DeathTestImpl { - public: - FuchsiaDeathTest(const char* a_statement, Matcher matcher, - const char* file, int line) - : DeathTestImpl(a_statement, std::move(matcher)), - file_(file), - line_(line) {} - - // All of these virtual functions are inherited from DeathTest. - int Wait() override; - TestRole AssumeRole() override; - std::string GetErrorLogs() override; - - private: - // The name of the file in which the death test is located. - const char* const file_; - // The line number on which the death test is located. - const int line_; - // The stderr data captured by the child process. - std::string captured_stderr_; - - zx::process child_process_; - zx::channel exception_channel_; - zx::socket stderr_socket_; -}; - -// Utility class for accumulating command-line arguments. -class Arguments { - public: - Arguments() { args_.push_back(nullptr); } - - ~Arguments() { - for (std::vector::iterator i = args_.begin(); i != args_.end(); - ++i) { - free(*i); - } - } - void AddArgument(const char* argument) { - args_.insert(args_.end() - 1, posix::StrDup(argument)); - } - - template - void AddArguments(const ::std::vector& arguments) { - for (typename ::std::vector::const_iterator i = arguments.begin(); - i != arguments.end(); ++i) { - args_.insert(args_.end() - 1, posix::StrDup(i->c_str())); - } - } - char* const* Argv() { return &args_[0]; } - - int size() { return static_cast(args_.size()) - 1; } - - private: - std::vector args_; -}; - -// Waits for the child in a death test to exit, returning its exit -// status, or 0 if no child process exists. As a side effect, sets the -// outcome data member. -int FuchsiaDeathTest::Wait() { - const int kProcessKey = 0; - const int kSocketKey = 1; - const int kExceptionKey = 2; - - if (!spawned()) return 0; - - // Create a port to wait for socket/task/exception events. - zx_status_t status_zx; - zx::port port; - status_zx = zx::port::create(0, &port); - GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK); - - // Register to wait for the child process to terminate. - status_zx = - child_process_.wait_async(port, kProcessKey, ZX_PROCESS_TERMINATED, 0); - GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK); - - // Register to wait for the socket to be readable or closed. - status_zx = stderr_socket_.wait_async( - port, kSocketKey, ZX_SOCKET_READABLE | ZX_SOCKET_PEER_CLOSED, 0); - GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK); - - // Register to wait for an exception. - status_zx = exception_channel_.wait_async(port, kExceptionKey, - ZX_CHANNEL_READABLE, 0); - GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK); - - bool process_terminated = false; - bool socket_closed = false; - do { - zx_port_packet_t packet = {}; - status_zx = port.wait(zx::time::infinite(), &packet); - GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK); - - if (packet.key == kExceptionKey) { - // Process encountered an exception. Kill it directly rather than - // letting other handlers process the event. We will get a kProcessKey - // event when the process actually terminates. - status_zx = child_process_.kill(); - GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK); - } else if (packet.key == kProcessKey) { - // Process terminated. - GTEST_DEATH_TEST_CHECK_(ZX_PKT_IS_SIGNAL_ONE(packet.type)); - GTEST_DEATH_TEST_CHECK_(packet.signal.observed & ZX_PROCESS_TERMINATED); - process_terminated = true; - } else if (packet.key == kSocketKey) { - GTEST_DEATH_TEST_CHECK_(ZX_PKT_IS_SIGNAL_ONE(packet.type)); - if (packet.signal.observed & ZX_SOCKET_READABLE) { - // Read data from the socket. - constexpr size_t kBufferSize = 1024; - do { - size_t old_length = captured_stderr_.length(); - size_t bytes_read = 0; - captured_stderr_.resize(old_length + kBufferSize); - status_zx = - stderr_socket_.read(0, &captured_stderr_.front() + old_length, - kBufferSize, &bytes_read); - captured_stderr_.resize(old_length + bytes_read); - } while (status_zx == ZX_OK); - if (status_zx == ZX_ERR_PEER_CLOSED) { - socket_closed = true; - } else { - GTEST_DEATH_TEST_CHECK_(status_zx == ZX_ERR_SHOULD_WAIT); - status_zx = stderr_socket_.wait_async( - port, kSocketKey, ZX_SOCKET_READABLE | ZX_SOCKET_PEER_CLOSED, 0); - GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK); - } - } else { - GTEST_DEATH_TEST_CHECK_(packet.signal.observed & ZX_SOCKET_PEER_CLOSED); - socket_closed = true; - } - } - } while (!process_terminated && !socket_closed); - - ReadAndInterpretStatusByte(); - - zx_info_process_t buffer; - status_zx = child_process_.get_info(ZX_INFO_PROCESS, &buffer, sizeof(buffer), - nullptr, nullptr); - GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK); - - GTEST_DEATH_TEST_CHECK_(buffer.flags & ZX_INFO_PROCESS_FLAG_EXITED); - set_status(static_cast(buffer.return_code)); - return status(); -} - -// The AssumeRole process for a Fuchsia death test. It creates a child -// process with the same executable as the current process to run the -// death test. The child process is given the --gtest_filter and -// --gtest_internal_run_death_test flags such that it knows to run the -// current death test only. -DeathTest::TestRole FuchsiaDeathTest::AssumeRole() { - const UnitTestImpl* const impl = GetUnitTestImpl(); - const InternalRunDeathTestFlag* const flag = - impl->internal_run_death_test_flag(); - const TestInfo* const info = impl->current_test_info(); - const int death_test_index = info->result()->death_test_count(); - - if (flag != nullptr) { - // ParseInternalRunDeathTestFlag() has performed all the necessary - // processing. - set_write_fd(kFuchsiaReadPipeFd); - return EXECUTE_TEST; - } - - // Flush the log buffers since the log streams are shared with the child. - FlushInfoLog(); - - // Build the child process command line. - const std::string filter_flag = std::string("--") + GTEST_FLAG_PREFIX_ + - "filter=" + info->test_suite_name() + "." + - info->name(); - const std::string internal_flag = std::string("--") + GTEST_FLAG_PREFIX_ + - kInternalRunDeathTestFlag + "=" + file_ + - "|" + StreamableToString(line_) + "|" + - StreamableToString(death_test_index); - Arguments args; - args.AddArguments(GetInjectableArgvs()); - args.AddArgument(filter_flag.c_str()); - args.AddArgument(internal_flag.c_str()); - - // Build the pipe for communication with the child. - zx_status_t status; - zx_handle_t child_pipe_handle; - int child_pipe_fd; - status = fdio_pipe_half(&child_pipe_fd, &child_pipe_handle); - GTEST_DEATH_TEST_CHECK_(status == ZX_OK); - set_read_fd(child_pipe_fd); - - // Set the pipe handle for the child. - fdio_spawn_action_t spawn_actions[2] = {}; - fdio_spawn_action_t* add_handle_action = &spawn_actions[0]; - add_handle_action->action = FDIO_SPAWN_ACTION_ADD_HANDLE; - add_handle_action->h.id = PA_HND(PA_FD, kFuchsiaReadPipeFd); - add_handle_action->h.handle = child_pipe_handle; - - // Create a socket pair will be used to receive the child process' stderr. - zx::socket stderr_producer_socket; - status = zx::socket::create(0, &stderr_producer_socket, &stderr_socket_); - GTEST_DEATH_TEST_CHECK_(status >= 0); - int stderr_producer_fd = -1; - status = - fdio_fd_create(stderr_producer_socket.release(), &stderr_producer_fd); - GTEST_DEATH_TEST_CHECK_(status >= 0); - - // Make the stderr socket nonblocking. - GTEST_DEATH_TEST_CHECK_(fcntl(stderr_producer_fd, F_SETFL, 0) == 0); - - fdio_spawn_action_t* add_stderr_action = &spawn_actions[1]; - add_stderr_action->action = FDIO_SPAWN_ACTION_CLONE_FD; - add_stderr_action->fd.local_fd = stderr_producer_fd; - add_stderr_action->fd.target_fd = STDERR_FILENO; - - // Create a child job. - zx_handle_t child_job = ZX_HANDLE_INVALID; - status = zx_job_create(zx_job_default(), 0, &child_job); - GTEST_DEATH_TEST_CHECK_(status == ZX_OK); - zx_policy_basic_t policy; - policy.condition = ZX_POL_NEW_ANY; - policy.policy = ZX_POL_ACTION_ALLOW; - status = zx_job_set_policy(child_job, ZX_JOB_POL_RELATIVE, ZX_JOB_POL_BASIC, - &policy, 1); - GTEST_DEATH_TEST_CHECK_(status == ZX_OK); - - // Create an exception channel attached to the |child_job|, to allow - // us to suppress the system default exception handler from firing. - status = zx_task_create_exception_channel( - child_job, 0, exception_channel_.reset_and_get_address()); - GTEST_DEATH_TEST_CHECK_(status == ZX_OK); - - // Spawn the child process. - status = fdio_spawn_etc(child_job, FDIO_SPAWN_CLONE_ALL, args.Argv()[0], - args.Argv(), nullptr, 2, spawn_actions, - child_process_.reset_and_get_address(), nullptr); - GTEST_DEATH_TEST_CHECK_(status == ZX_OK); - - set_spawned(true); - return OVERSEE_TEST; -} - -std::string FuchsiaDeathTest::GetErrorLogs() { return captured_stderr_; } - -#else // We are neither on Windows, nor on Fuchsia. - -// ForkingDeathTest provides implementations for most of the abstract -// methods of the DeathTest interface. Only the AssumeRole method is -// left undefined. -class ForkingDeathTest : public DeathTestImpl { - public: - ForkingDeathTest(const char* statement, Matcher matcher); - - // All of these virtual functions are inherited from DeathTest. - int Wait() override; - - protected: - void set_child_pid(pid_t child_pid) { child_pid_ = child_pid; } - - private: - // PID of child process during death test; 0 in the child process itself. - pid_t child_pid_; -}; - -// Constructs a ForkingDeathTest. -ForkingDeathTest::ForkingDeathTest(const char* a_statement, - Matcher matcher) - : DeathTestImpl(a_statement, std::move(matcher)), child_pid_(-1) {} - -// Waits for the child in a death test to exit, returning its exit -// status, or 0 if no child process exists. As a side effect, sets the -// outcome data member. -int ForkingDeathTest::Wait() { - if (!spawned()) return 0; - - ReadAndInterpretStatusByte(); - - int status_value; - GTEST_DEATH_TEST_CHECK_SYSCALL_(waitpid(child_pid_, &status_value, 0)); - set_status(status_value); - return status_value; -} - -// A concrete death test class that forks, then immediately runs the test -// in the child process. -class NoExecDeathTest : public ForkingDeathTest { - public: - NoExecDeathTest(const char* a_statement, Matcher matcher) - : ForkingDeathTest(a_statement, std::move(matcher)) {} - TestRole AssumeRole() override; -}; - -// The AssumeRole process for a fork-and-run death test. It implements a -// straightforward fork, with a simple pipe to transmit the status byte. -DeathTest::TestRole NoExecDeathTest::AssumeRole() { - const size_t thread_count = GetThreadCount(); - if (thread_count != 1) { - GTEST_LOG_(WARNING) << DeathTestThreadWarning(thread_count); - } - - int pipe_fd[2]; - GTEST_DEATH_TEST_CHECK_(pipe(pipe_fd) != -1); - - DeathTest::set_last_death_test_message(""); - CaptureStderr(); - // When we fork the process below, the log file buffers are copied, but the - // file descriptors are shared. We flush all log files here so that closing - // the file descriptors in the child process doesn't throw off the - // synchronization between descriptors and buffers in the parent process. - // This is as close to the fork as possible to avoid a race condition in case - // there are multiple threads running before the death test, and another - // thread writes to the log file. - FlushInfoLog(); - - const pid_t child_pid = fork(); - GTEST_DEATH_TEST_CHECK_(child_pid != -1); - set_child_pid(child_pid); - if (child_pid == 0) { - GTEST_DEATH_TEST_CHECK_SYSCALL_(close(pipe_fd[0])); - set_write_fd(pipe_fd[1]); - // Redirects all logging to stderr in the child process to prevent - // concurrent writes to the log files. We capture stderr in the parent - // process and append the child process' output to a log. - LogToStderr(); - // Event forwarding to the listeners of event listener API mush be shut - // down in death test subprocesses. - GetUnitTestImpl()->listeners()->SuppressEventForwarding(); - g_in_fast_death_test_child = true; - return EXECUTE_TEST; - } else { - GTEST_DEATH_TEST_CHECK_SYSCALL_(close(pipe_fd[1])); - set_read_fd(pipe_fd[0]); - set_spawned(true); - return OVERSEE_TEST; - } -} - -// A concrete death test class that forks and re-executes the main -// program from the beginning, with command-line flags set that cause -// only this specific death test to be run. -class ExecDeathTest : public ForkingDeathTest { - public: - ExecDeathTest(const char* a_statement, Matcher matcher, - const char* file, int line) - : ForkingDeathTest(a_statement, std::move(matcher)), - file_(file), - line_(line) {} - TestRole AssumeRole() override; - - private: - static ::std::vector GetArgvsForDeathTestChildProcess() { - ::std::vector args = GetInjectableArgvs(); -#if defined(GTEST_EXTRA_DEATH_TEST_COMMAND_LINE_ARGS_) - ::std::vector extra_args = - GTEST_EXTRA_DEATH_TEST_COMMAND_LINE_ARGS_(); - args.insert(args.end(), extra_args.begin(), extra_args.end()); -#endif // defined(GTEST_EXTRA_DEATH_TEST_COMMAND_LINE_ARGS_) - return args; - } - // The name of the file in which the death test is located. - const char* const file_; - // The line number on which the death test is located. - const int line_; -}; - -// Utility class for accumulating command-line arguments. -class Arguments { - public: - Arguments() { args_.push_back(nullptr); } - - ~Arguments() { - for (std::vector::iterator i = args_.begin(); i != args_.end(); - ++i) { - free(*i); - } - } - void AddArgument(const char* argument) { - args_.insert(args_.end() - 1, posix::StrDup(argument)); - } - - template - void AddArguments(const ::std::vector& arguments) { - for (typename ::std::vector::const_iterator i = arguments.begin(); - i != arguments.end(); ++i) { - args_.insert(args_.end() - 1, posix::StrDup(i->c_str())); - } - } - char* const* Argv() { return &args_[0]; } - - private: - std::vector args_; -}; - -// A struct that encompasses the arguments to the child process of a -// threadsafe-style death test process. -struct ExecDeathTestArgs { - char* const* argv; // Command-line arguments for the child's call to exec - int close_fd; // File descriptor to close; the read end of a pipe -}; - -#if GTEST_OS_QNX -extern "C" char** environ; -#else // GTEST_OS_QNX -// The main function for a threadsafe-style death test child process. -// This function is called in a clone()-ed process and thus must avoid -// any potentially unsafe operations like malloc or libc functions. -static int ExecDeathTestChildMain(void* child_arg) { - ExecDeathTestArgs* const args = static_cast(child_arg); - GTEST_DEATH_TEST_CHECK_SYSCALL_(close(args->close_fd)); - - // We need to execute the test program in the same environment where - // it was originally invoked. Therefore we change to the original - // working directory first. - const char* const original_dir = - UnitTest::GetInstance()->original_working_dir(); - // We can safely call chdir() as it's a direct system call. - if (chdir(original_dir) != 0) { - DeathTestAbort(std::string("chdir(\"") + original_dir + - "\") failed: " + GetLastErrnoDescription()); - return EXIT_FAILURE; - } - - // We can safely call execv() as it's almost a direct system call. We - // cannot use execvp() as it's a libc function and thus potentially - // unsafe. Since execv() doesn't search the PATH, the user must - // invoke the test program via a valid path that contains at least - // one path separator. - execv(args->argv[0], args->argv); - DeathTestAbort(std::string("execv(") + args->argv[0] + ", ...) in " + - original_dir + " failed: " + GetLastErrnoDescription()); - return EXIT_FAILURE; -} -#endif // GTEST_OS_QNX - -#if GTEST_HAS_CLONE -// Two utility routines that together determine the direction the stack -// grows. -// This could be accomplished more elegantly by a single recursive -// function, but we want to guard against the unlikely possibility of -// a smart compiler optimizing the recursion away. -// -// GTEST_NO_INLINE_ is required to prevent GCC 4.6 from inlining -// StackLowerThanAddress into StackGrowsDown, which then doesn't give -// correct answer. -static void StackLowerThanAddress(const void* ptr, - bool* result) GTEST_NO_INLINE_; -// Make sure sanitizers do not tamper with the stack here. -// Ideally, we want to use `__builtin_frame_address` instead of a local variable -// address with sanitizer disabled, but it does not work when the -// compiler optimizes the stack frame out, which happens on PowerPC targets. -// HWAddressSanitizer add a random tag to the MSB of the local variable address, -// making comparison result unpredictable. -GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ -GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ -static void StackLowerThanAddress(const void* ptr, bool* result) { - int dummy = 0; - *result = std::less()(&dummy, ptr); -} - -// Make sure AddressSanitizer does not tamper with the stack here. -GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ -GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ -static bool StackGrowsDown() { - int dummy = 0; - bool result; - StackLowerThanAddress(&dummy, &result); - return result; -} -#endif // GTEST_HAS_CLONE - -// Spawns a child process with the same executable as the current process in -// a thread-safe manner and instructs it to run the death test. The -// implementation uses fork(2) + exec. On systems where clone(2) is -// available, it is used instead, being slightly more thread-safe. On QNX, -// fork supports only single-threaded environments, so this function uses -// spawn(2) there instead. The function dies with an error message if -// anything goes wrong. -static pid_t ExecDeathTestSpawnChild(char* const* argv, int close_fd) { - ExecDeathTestArgs args = {argv, close_fd}; - pid_t child_pid = -1; - -#if GTEST_OS_QNX - // Obtains the current directory and sets it to be closed in the child - // process. - const int cwd_fd = open(".", O_RDONLY); - GTEST_DEATH_TEST_CHECK_(cwd_fd != -1); - GTEST_DEATH_TEST_CHECK_SYSCALL_(fcntl(cwd_fd, F_SETFD, FD_CLOEXEC)); - // We need to execute the test program in the same environment where - // it was originally invoked. Therefore we change to the original - // working directory first. - const char* const original_dir = - UnitTest::GetInstance()->original_working_dir(); - // We can safely call chdir() as it's a direct system call. - if (chdir(original_dir) != 0) { - DeathTestAbort(std::string("chdir(\"") + original_dir + - "\") failed: " + GetLastErrnoDescription()); - return EXIT_FAILURE; - } - - int fd_flags; - // Set close_fd to be closed after spawn. - GTEST_DEATH_TEST_CHECK_SYSCALL_(fd_flags = fcntl(close_fd, F_GETFD)); - GTEST_DEATH_TEST_CHECK_SYSCALL_( - fcntl(close_fd, F_SETFD, fd_flags | FD_CLOEXEC)); - struct inheritance inherit = {0}; - // spawn is a system call. - child_pid = spawn(args.argv[0], 0, nullptr, &inherit, args.argv, environ); - // Restores the current working directory. - GTEST_DEATH_TEST_CHECK_(fchdir(cwd_fd) != -1); - GTEST_DEATH_TEST_CHECK_SYSCALL_(close(cwd_fd)); - -#else // GTEST_OS_QNX -#if GTEST_OS_LINUX - // When a SIGPROF signal is received while fork() or clone() are executing, - // the process may hang. To avoid this, we ignore SIGPROF here and re-enable - // it after the call to fork()/clone() is complete. - struct sigaction saved_sigprof_action; - struct sigaction ignore_sigprof_action; - memset(&ignore_sigprof_action, 0, sizeof(ignore_sigprof_action)); - sigemptyset(&ignore_sigprof_action.sa_mask); - ignore_sigprof_action.sa_handler = SIG_IGN; - GTEST_DEATH_TEST_CHECK_SYSCALL_( - sigaction(SIGPROF, &ignore_sigprof_action, &saved_sigprof_action)); -#endif // GTEST_OS_LINUX - -#if GTEST_HAS_CLONE - const bool use_fork = GTEST_FLAG_GET(death_test_use_fork); - - if (!use_fork) { - static const bool stack_grows_down = StackGrowsDown(); - const auto stack_size = static_cast(getpagesize() * 2); - // MMAP_ANONYMOUS is not defined on Mac, so we use MAP_ANON instead. - void* const stack = mmap(nullptr, stack_size, PROT_READ | PROT_WRITE, - MAP_ANON | MAP_PRIVATE, -1, 0); - GTEST_DEATH_TEST_CHECK_(stack != MAP_FAILED); - - // Maximum stack alignment in bytes: For a downward-growing stack, this - // amount is subtracted from size of the stack space to get an address - // that is within the stack space and is aligned on all systems we care - // about. As far as I know there is no ABI with stack alignment greater - // than 64. We assume stack and stack_size already have alignment of - // kMaxStackAlignment. - const size_t kMaxStackAlignment = 64; - void* const stack_top = - static_cast(stack) + - (stack_grows_down ? stack_size - kMaxStackAlignment : 0); - GTEST_DEATH_TEST_CHECK_( - static_cast(stack_size) > kMaxStackAlignment && - reinterpret_cast(stack_top) % kMaxStackAlignment == 0); - - child_pid = clone(&ExecDeathTestChildMain, stack_top, SIGCHLD, &args); - - GTEST_DEATH_TEST_CHECK_(munmap(stack, stack_size) != -1); - } -#else - const bool use_fork = true; -#endif // GTEST_HAS_CLONE - - if (use_fork && (child_pid = fork()) == 0) { - ExecDeathTestChildMain(&args); - _exit(0); - } -#endif // GTEST_OS_QNX -#if GTEST_OS_LINUX - GTEST_DEATH_TEST_CHECK_SYSCALL_( - sigaction(SIGPROF, &saved_sigprof_action, nullptr)); -#endif // GTEST_OS_LINUX - - GTEST_DEATH_TEST_CHECK_(child_pid != -1); - return child_pid; -} - -// The AssumeRole process for a fork-and-exec death test. It re-executes the -// main program from the beginning, setting the --gtest_filter -// and --gtest_internal_run_death_test flags to cause only the current -// death test to be re-run. -DeathTest::TestRole ExecDeathTest::AssumeRole() { - const UnitTestImpl* const impl = GetUnitTestImpl(); - const InternalRunDeathTestFlag* const flag = - impl->internal_run_death_test_flag(); - const TestInfo* const info = impl->current_test_info(); - const int death_test_index = info->result()->death_test_count(); - - if (flag != nullptr) { - set_write_fd(flag->write_fd()); - return EXECUTE_TEST; - } - - int pipe_fd[2]; - GTEST_DEATH_TEST_CHECK_(pipe(pipe_fd) != -1); - // Clear the close-on-exec flag on the write end of the pipe, lest - // it be closed when the child process does an exec: - GTEST_DEATH_TEST_CHECK_(fcntl(pipe_fd[1], F_SETFD, 0) != -1); - - const std::string filter_flag = std::string("--") + GTEST_FLAG_PREFIX_ + - "filter=" + info->test_suite_name() + "." + - info->name(); - const std::string internal_flag = std::string("--") + GTEST_FLAG_PREFIX_ + - "internal_run_death_test=" + file_ + "|" + - StreamableToString(line_) + "|" + - StreamableToString(death_test_index) + "|" + - StreamableToString(pipe_fd[1]); - Arguments args; - args.AddArguments(GetArgvsForDeathTestChildProcess()); - args.AddArgument(filter_flag.c_str()); - args.AddArgument(internal_flag.c_str()); - - DeathTest::set_last_death_test_message(""); - - CaptureStderr(); - // See the comment in NoExecDeathTest::AssumeRole for why the next line - // is necessary. - FlushInfoLog(); - - const pid_t child_pid = ExecDeathTestSpawnChild(args.Argv(), pipe_fd[0]); - GTEST_DEATH_TEST_CHECK_SYSCALL_(close(pipe_fd[1])); - set_child_pid(child_pid); - set_read_fd(pipe_fd[0]); - set_spawned(true); - return OVERSEE_TEST; -} - -#endif // !GTEST_OS_WINDOWS - -// Creates a concrete DeathTest-derived class that depends on the -// --gtest_death_test_style flag, and sets the pointer pointed to -// by the "test" argument to its address. If the test should be -// skipped, sets that pointer to NULL. Returns true, unless the -// flag is set to an invalid value. -bool DefaultDeathTestFactory::Create(const char* statement, - Matcher matcher, - const char* file, int line, - DeathTest** test) { - UnitTestImpl* const impl = GetUnitTestImpl(); - const InternalRunDeathTestFlag* const flag = - impl->internal_run_death_test_flag(); - const int death_test_index = - impl->current_test_info()->increment_death_test_count(); - - if (flag != nullptr) { - if (death_test_index > flag->index()) { - DeathTest::set_last_death_test_message( - "Death test count (" + StreamableToString(death_test_index) + - ") somehow exceeded expected maximum (" + - StreamableToString(flag->index()) + ")"); - return false; - } - - if (!(flag->file() == file && flag->line() == line && - flag->index() == death_test_index)) { - *test = nullptr; - return true; - } - } - -#if GTEST_OS_WINDOWS - - if (GTEST_FLAG_GET(death_test_style) == "threadsafe" || - GTEST_FLAG_GET(death_test_style) == "fast") { - *test = new WindowsDeathTest(statement, std::move(matcher), file, line); - } - -#elif GTEST_OS_FUCHSIA - - if (GTEST_FLAG_GET(death_test_style) == "threadsafe" || - GTEST_FLAG_GET(death_test_style) == "fast") { - *test = new FuchsiaDeathTest(statement, std::move(matcher), file, line); - } - -#else - - if (GTEST_FLAG_GET(death_test_style) == "threadsafe") { - *test = new ExecDeathTest(statement, std::move(matcher), file, line); - } else if (GTEST_FLAG_GET(death_test_style) == "fast") { - *test = new NoExecDeathTest(statement, std::move(matcher)); - } - -#endif // GTEST_OS_WINDOWS - - else { // NOLINT - this is more readable than unbalanced brackets inside #if. - DeathTest::set_last_death_test_message("Unknown death test style \"" + - GTEST_FLAG_GET(death_test_style) + - "\" encountered"); - return false; - } - - return true; -} - -#if GTEST_OS_WINDOWS -// Recreates the pipe and event handles from the provided parameters, -// signals the event, and returns a file descriptor wrapped around the pipe -// handle. This function is called in the child process only. -static int GetStatusFileDescriptor(unsigned int parent_process_id, - size_t write_handle_as_size_t, - size_t event_handle_as_size_t) { - AutoHandle parent_process_handle(::OpenProcess(PROCESS_DUP_HANDLE, - FALSE, // Non-inheritable. - parent_process_id)); - if (parent_process_handle.Get() == INVALID_HANDLE_VALUE) { - DeathTestAbort("Unable to open parent process " + - StreamableToString(parent_process_id)); - } - - GTEST_CHECK_(sizeof(HANDLE) <= sizeof(size_t)); - - const HANDLE write_handle = reinterpret_cast(write_handle_as_size_t); - HANDLE dup_write_handle; - - // The newly initialized handle is accessible only in the parent - // process. To obtain one accessible within the child, we need to use - // DuplicateHandle. - if (!::DuplicateHandle(parent_process_handle.Get(), write_handle, - ::GetCurrentProcess(), &dup_write_handle, - 0x0, // Requested privileges ignored since - // DUPLICATE_SAME_ACCESS is used. - FALSE, // Request non-inheritable handler. - DUPLICATE_SAME_ACCESS)) { - DeathTestAbort("Unable to duplicate the pipe handle " + - StreamableToString(write_handle_as_size_t) + - " from the parent process " + - StreamableToString(parent_process_id)); - } - - const HANDLE event_handle = reinterpret_cast(event_handle_as_size_t); - HANDLE dup_event_handle; - - if (!::DuplicateHandle(parent_process_handle.Get(), event_handle, - ::GetCurrentProcess(), &dup_event_handle, 0x0, FALSE, - DUPLICATE_SAME_ACCESS)) { - DeathTestAbort("Unable to duplicate the event handle " + - StreamableToString(event_handle_as_size_t) + - " from the parent process " + - StreamableToString(parent_process_id)); - } - - const int write_fd = - ::_open_osfhandle(reinterpret_cast(dup_write_handle), O_APPEND); - if (write_fd == -1) { - DeathTestAbort("Unable to convert pipe handle " + - StreamableToString(write_handle_as_size_t) + - " to a file descriptor"); - } - - // Signals the parent that the write end of the pipe has been acquired - // so the parent can release its own write end. - ::SetEvent(dup_event_handle); - - return write_fd; -} -#endif // GTEST_OS_WINDOWS - -// Returns a newly created InternalRunDeathTestFlag object with fields -// initialized from the GTEST_FLAG(internal_run_death_test) flag if -// the flag is specified; otherwise returns NULL. -InternalRunDeathTestFlag* ParseInternalRunDeathTestFlag() { - if (GTEST_FLAG_GET(internal_run_death_test) == "") return nullptr; - - // GTEST_HAS_DEATH_TEST implies that we have ::std::string, so we - // can use it here. - int line = -1; - int index = -1; - ::std::vector< ::std::string> fields; - SplitString(GTEST_FLAG_GET(internal_run_death_test), '|', &fields); - int write_fd = -1; - -#if GTEST_OS_WINDOWS - - unsigned int parent_process_id = 0; - size_t write_handle_as_size_t = 0; - size_t event_handle_as_size_t = 0; - - if (fields.size() != 6 || !ParseNaturalNumber(fields[1], &line) || - !ParseNaturalNumber(fields[2], &index) || - !ParseNaturalNumber(fields[3], &parent_process_id) || - !ParseNaturalNumber(fields[4], &write_handle_as_size_t) || - !ParseNaturalNumber(fields[5], &event_handle_as_size_t)) { - DeathTestAbort("Bad --gtest_internal_run_death_test flag: " + - GTEST_FLAG_GET(internal_run_death_test)); - } - write_fd = GetStatusFileDescriptor(parent_process_id, write_handle_as_size_t, - event_handle_as_size_t); - -#elif GTEST_OS_FUCHSIA - - if (fields.size() != 3 || !ParseNaturalNumber(fields[1], &line) || - !ParseNaturalNumber(fields[2], &index)) { - DeathTestAbort("Bad --gtest_internal_run_death_test flag: " + - GTEST_FLAG_GET(internal_run_death_test)); - } - -#else - - if (fields.size() != 4 || !ParseNaturalNumber(fields[1], &line) || - !ParseNaturalNumber(fields[2], &index) || - !ParseNaturalNumber(fields[3], &write_fd)) { - DeathTestAbort("Bad --gtest_internal_run_death_test flag: " + - GTEST_FLAG_GET(internal_run_death_test)); - } - -#endif // GTEST_OS_WINDOWS - - return new InternalRunDeathTestFlag(fields[0], line, index, write_fd); -} - -} // namespace internal - -#endif // GTEST_HAS_DEATH_TEST - -} // namespace testing diff --git a/libs/cpp-httplib/test/gtest/src/gtest-filepath.cc b/libs/cpp-httplib/test/gtest/src/gtest-filepath.cc deleted file mode 100644 index f6ee90c..0000000 --- a/libs/cpp-httplib/test/gtest/src/gtest-filepath.cc +++ /dev/null @@ -1,367 +0,0 @@ -// 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. - -#include "gtest/internal/gtest-filepath.h" - -#include - -#include "gtest/gtest-message.h" -#include "gtest/internal/gtest-port.h" - -#if GTEST_OS_WINDOWS_MOBILE -#include -#elif GTEST_OS_WINDOWS -#include -#include -#else -#include - -#include // Some Linux distributions define PATH_MAX here. -#endif // GTEST_OS_WINDOWS_MOBILE - -#include "gtest/internal/gtest-string.h" - -#if GTEST_OS_WINDOWS -#define GTEST_PATH_MAX_ _MAX_PATH -#elif defined(PATH_MAX) -#define GTEST_PATH_MAX_ PATH_MAX -#elif defined(_XOPEN_PATH_MAX) -#define GTEST_PATH_MAX_ _XOPEN_PATH_MAX -#else -#define GTEST_PATH_MAX_ _POSIX_PATH_MAX -#endif // GTEST_OS_WINDOWS - -namespace testing { -namespace internal { - -#if GTEST_OS_WINDOWS -// On Windows, '\\' is the standard path separator, but many tools and the -// Windows API also accept '/' as an alternate path separator. Unless otherwise -// noted, a file path can contain either kind of path separators, or a mixture -// of them. -const char kPathSeparator = '\\'; -const char kAlternatePathSeparator = '/'; -const char kAlternatePathSeparatorString[] = "/"; -#if GTEST_OS_WINDOWS_MOBILE -// Windows CE doesn't have a current directory. You should not use -// the current directory in tests on Windows CE, but this at least -// provides a reasonable fallback. -const char kCurrentDirectoryString[] = "\\"; -// Windows CE doesn't define INVALID_FILE_ATTRIBUTES -const DWORD kInvalidFileAttributes = 0xffffffff; -#else -const char kCurrentDirectoryString[] = ".\\"; -#endif // GTEST_OS_WINDOWS_MOBILE -#else -const char kPathSeparator = '/'; -const char kCurrentDirectoryString[] = "./"; -#endif // GTEST_OS_WINDOWS - -// Returns whether the given character is a valid path separator. -static bool IsPathSeparator(char c) { -#if GTEST_HAS_ALT_PATH_SEP_ - return (c == kPathSeparator) || (c == kAlternatePathSeparator); -#else - return c == kPathSeparator; -#endif -} - -// Returns the current working directory, or "" if unsuccessful. -FilePath FilePath::GetCurrentDir() { -#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || \ - GTEST_OS_WINDOWS_RT || GTEST_OS_ESP8266 || GTEST_OS_ESP32 || \ - GTEST_OS_XTENSA - // These platforms do not have a current directory, so we just return - // something reasonable. - return FilePath(kCurrentDirectoryString); -#elif GTEST_OS_WINDOWS - char cwd[GTEST_PATH_MAX_ + 1] = {'\0'}; - return FilePath(_getcwd(cwd, sizeof(cwd)) == nullptr ? "" : cwd); -#else - char cwd[GTEST_PATH_MAX_ + 1] = {'\0'}; - char* result = getcwd(cwd, sizeof(cwd)); -#if GTEST_OS_NACL - // getcwd will likely fail in NaCl due to the sandbox, so return something - // reasonable. The user may have provided a shim implementation for getcwd, - // however, so fallback only when failure is detected. - return FilePath(result == nullptr ? kCurrentDirectoryString : cwd); -#endif // GTEST_OS_NACL - return FilePath(result == nullptr ? "" : cwd); -#endif // GTEST_OS_WINDOWS_MOBILE -} - -// Returns a copy of the FilePath with the case-insensitive extension removed. -// Example: FilePath("dir/file.exe").RemoveExtension("EXE") returns -// FilePath("dir/file"). If a case-insensitive extension is not -// found, returns a copy of the original FilePath. -FilePath FilePath::RemoveExtension(const char* extension) const { - const std::string dot_extension = std::string(".") + extension; - if (String::EndsWithCaseInsensitive(pathname_, dot_extension)) { - return FilePath( - pathname_.substr(0, pathname_.length() - dot_extension.length())); - } - return *this; -} - -// Returns a pointer to the last occurrence of a valid path separator in -// the FilePath. On Windows, for example, both '/' and '\' are valid path -// separators. Returns NULL if no path separator was found. -const char* FilePath::FindLastPathSeparator() const { - const char* const last_sep = strrchr(c_str(), kPathSeparator); -#if GTEST_HAS_ALT_PATH_SEP_ - const char* const last_alt_sep = strrchr(c_str(), kAlternatePathSeparator); - // Comparing two pointers of which only one is NULL is undefined. - if (last_alt_sep != nullptr && - (last_sep == nullptr || last_alt_sep > last_sep)) { - return last_alt_sep; - } -#endif - return last_sep; -} - -// Returns a copy of the FilePath with the directory part removed. -// Example: FilePath("path/to/file").RemoveDirectoryName() returns -// FilePath("file"). If there is no directory part ("just_a_file"), it returns -// the FilePath unmodified. If there is no file part ("just_a_dir/") it -// returns an empty FilePath (""). -// On Windows platform, '\' is the path separator, otherwise it is '/'. -FilePath FilePath::RemoveDirectoryName() const { - const char* const last_sep = FindLastPathSeparator(); - return last_sep ? FilePath(last_sep + 1) : *this; -} - -// RemoveFileName returns the directory path with the filename removed. -// Example: FilePath("path/to/file").RemoveFileName() returns "path/to/". -// If the FilePath is "a_file" or "/a_file", RemoveFileName returns -// FilePath("./") or, on Windows, FilePath(".\\"). If the filepath does -// not have a file, like "just/a/dir/", it returns the FilePath unmodified. -// On Windows platform, '\' is the path separator, otherwise it is '/'. -FilePath FilePath::RemoveFileName() const { - const char* const last_sep = FindLastPathSeparator(); - std::string dir; - if (last_sep) { - dir = std::string(c_str(), static_cast(last_sep + 1 - c_str())); - } else { - dir = kCurrentDirectoryString; - } - return FilePath(dir); -} - -// Helper functions for naming files in a directory for xml output. - -// Given directory = "dir", base_name = "test", number = 0, -// extension = "xml", returns "dir/test.xml". If number is greater -// than zero (e.g., 12), returns "dir/test_12.xml". -// On Windows platform, uses \ as the separator rather than /. -FilePath FilePath::MakeFileName(const FilePath& directory, - const FilePath& base_name, int number, - const char* extension) { - std::string file; - if (number == 0) { - file = base_name.string() + "." + extension; - } else { - file = - base_name.string() + "_" + StreamableToString(number) + "." + extension; - } - return ConcatPaths(directory, FilePath(file)); -} - -// Given directory = "dir", relative_path = "test.xml", returns "dir/test.xml". -// On Windows, uses \ as the separator rather than /. -FilePath FilePath::ConcatPaths(const FilePath& directory, - const FilePath& relative_path) { - if (directory.IsEmpty()) return relative_path; - const FilePath dir(directory.RemoveTrailingPathSeparator()); - return FilePath(dir.string() + kPathSeparator + relative_path.string()); -} - -// Returns true if pathname describes something findable in the file-system, -// either a file, directory, or whatever. -bool FilePath::FileOrDirectoryExists() const { -#if GTEST_OS_WINDOWS_MOBILE - LPCWSTR unicode = String::AnsiToUtf16(pathname_.c_str()); - const DWORD attributes = GetFileAttributes(unicode); - delete[] unicode; - return attributes != kInvalidFileAttributes; -#else - posix::StatStruct file_stat{}; - return posix::Stat(pathname_.c_str(), &file_stat) == 0; -#endif // GTEST_OS_WINDOWS_MOBILE -} - -// Returns true if pathname describes a directory in the file-system -// that exists. -bool FilePath::DirectoryExists() const { - bool result = false; -#if GTEST_OS_WINDOWS - // Don't strip off trailing separator if path is a root directory on - // Windows (like "C:\\"). - const FilePath& path(IsRootDirectory() ? *this - : RemoveTrailingPathSeparator()); -#else - const FilePath& path(*this); -#endif - -#if GTEST_OS_WINDOWS_MOBILE - LPCWSTR unicode = String::AnsiToUtf16(path.c_str()); - const DWORD attributes = GetFileAttributes(unicode); - delete[] unicode; - if ((attributes != kInvalidFileAttributes) && - (attributes & FILE_ATTRIBUTE_DIRECTORY)) { - result = true; - } -#else - posix::StatStruct file_stat{}; - result = - posix::Stat(path.c_str(), &file_stat) == 0 && posix::IsDir(file_stat); -#endif // GTEST_OS_WINDOWS_MOBILE - - return result; -} - -// Returns true if pathname describes a root directory. (Windows has one -// root directory per disk drive.) -bool FilePath::IsRootDirectory() const { -#if GTEST_OS_WINDOWS - return pathname_.length() == 3 && IsAbsolutePath(); -#else - return pathname_.length() == 1 && IsPathSeparator(pathname_.c_str()[0]); -#endif -} - -// Returns true if pathname describes an absolute path. -bool FilePath::IsAbsolutePath() const { - const char* const name = pathname_.c_str(); -#if GTEST_OS_WINDOWS - return pathname_.length() >= 3 && - ((name[0] >= 'a' && name[0] <= 'z') || - (name[0] >= 'A' && name[0] <= 'Z')) && - name[1] == ':' && IsPathSeparator(name[2]); -#else - return IsPathSeparator(name[0]); -#endif -} - -// Returns a pathname for a file that does not currently exist. The pathname -// will be directory/base_name.extension or -// directory/base_name_.extension if directory/base_name.extension -// already exists. The number will be incremented until a pathname is found -// that does not already exist. -// Examples: 'dir/foo_test.xml' or 'dir/foo_test_1.xml'. -// There could be a race condition if two or more processes are calling this -// function at the same time -- they could both pick the same filename. -FilePath FilePath::GenerateUniqueFileName(const FilePath& directory, - const FilePath& base_name, - const char* extension) { - FilePath full_pathname; - int number = 0; - do { - full_pathname.Set(MakeFileName(directory, base_name, number++, extension)); - } while (full_pathname.FileOrDirectoryExists()); - return full_pathname; -} - -// Returns true if FilePath ends with a path separator, which indicates that -// it is intended to represent a directory. Returns false otherwise. -// This does NOT check that a directory (or file) actually exists. -bool FilePath::IsDirectory() const { - return !pathname_.empty() && - IsPathSeparator(pathname_.c_str()[pathname_.length() - 1]); -} - -// Create directories so that path exists. Returns true if successful or if -// the directories already exist; returns false if unable to create directories -// for any reason. -bool FilePath::CreateDirectoriesRecursively() const { - if (!this->IsDirectory()) { - return false; - } - - if (pathname_.length() == 0 || this->DirectoryExists()) { - return true; - } - - const FilePath parent(this->RemoveTrailingPathSeparator().RemoveFileName()); - return parent.CreateDirectoriesRecursively() && this->CreateFolder(); -} - -// Create the directory so that path exists. Returns true if successful or -// if the directory already exists; returns false if unable to create the -// directory for any reason, including if the parent directory does not -// exist. Not named "CreateDirectory" because that's a macro on Windows. -bool FilePath::CreateFolder() const { -#if GTEST_OS_WINDOWS_MOBILE - FilePath removed_sep(this->RemoveTrailingPathSeparator()); - LPCWSTR unicode = String::AnsiToUtf16(removed_sep.c_str()); - int result = CreateDirectory(unicode, nullptr) ? 0 : -1; - delete[] unicode; -#elif GTEST_OS_WINDOWS - int result = _mkdir(pathname_.c_str()); -#elif GTEST_OS_ESP8266 || GTEST_OS_XTENSA - // do nothing - int result = 0; -#else - int result = mkdir(pathname_.c_str(), 0777); -#endif // GTEST_OS_WINDOWS_MOBILE - - if (result == -1) { - return this->DirectoryExists(); // An error is OK if the directory exists. - } - return true; // No error. -} - -// If input name has a trailing separator character, remove it and return the -// name, otherwise return the name string unmodified. -// On Windows platform, uses \ as the separator, other platforms use /. -FilePath FilePath::RemoveTrailingPathSeparator() const { - return IsDirectory() ? FilePath(pathname_.substr(0, pathname_.length() - 1)) - : *this; -} - -// Removes any redundant separators that might be in the pathname. -// For example, "bar///foo" becomes "bar/foo". Does not eliminate other -// redundancies that might be in a pathname involving "." or "..". -void FilePath::Normalize() { - auto out = pathname_.begin(); - - for (const char character : pathname_) { - if (!IsPathSeparator(character)) { - *(out++) = character; - } else if (out == pathname_.begin() || *std::prev(out) != kPathSeparator) { - *(out++) = kPathSeparator; - } else { - continue; - } - } - - pathname_.erase(out, pathname_.end()); -} - -} // namespace internal -} // namespace testing diff --git a/libs/cpp-httplib/test/gtest/src/gtest-internal-inl.h b/libs/cpp-httplib/test/gtest/src/gtest-internal-inl.h deleted file mode 100644 index 0b9e929..0000000 --- a/libs/cpp-httplib/test/gtest/src/gtest-internal-inl.h +++ /dev/null @@ -1,1212 +0,0 @@ -// Copyright 2005, 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. - -// Utility functions and classes used by the Google C++ testing framework.// -// This file contains purely Google Test's internal implementation. Please -// DO NOT #INCLUDE IT IN A USER PROGRAM. - -#ifndef GOOGLETEST_SRC_GTEST_INTERNAL_INL_H_ -#define GOOGLETEST_SRC_GTEST_INTERNAL_INL_H_ - -#ifndef _WIN32_WCE -#include -#endif // !_WIN32_WCE -#include -#include // For strtoll/_strtoul64/malloc/free. -#include // For memmove. - -#include -#include -#include -#include -#include - -#include "gtest/internal/gtest-port.h" - -#if GTEST_CAN_STREAM_RESULTS_ -#include // NOLINT -#include // NOLINT -#endif - -#if GTEST_OS_WINDOWS -#include // NOLINT -#endif // GTEST_OS_WINDOWS - -#include "gtest/gtest-spi.h" -#include "gtest/gtest.h" - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -// Declares the flags. -// -// We don't want the users to modify this flag in the code, but want -// Google Test's own unit tests to be able to access it. Therefore we -// declare it here as opposed to in gtest.h. -GTEST_DECLARE_bool_(death_test_use_fork); - -namespace testing { -namespace internal { - -// The value of GetTestTypeId() as seen from within the Google Test -// library. This is solely for testing GetTestTypeId(). -GTEST_API_ extern const TypeId kTestTypeIdInGoogleTest; - -// A valid random seed must be in [1, kMaxRandomSeed]. -const int kMaxRandomSeed = 99999; - -// g_help_flag is true if and only if the --help flag or an equivalent form -// is specified on the command line. -GTEST_API_ extern bool g_help_flag; - -// Returns the current time in milliseconds. -GTEST_API_ TimeInMillis GetTimeInMillis(); - -// Returns true if and only if Google Test should use colors in the output. -GTEST_API_ bool ShouldUseColor(bool stdout_is_tty); - -// Formats the given time in milliseconds as seconds. -GTEST_API_ std::string FormatTimeInMillisAsSeconds(TimeInMillis ms); - -// Converts the given time in milliseconds to a date string in the ISO 8601 -// format, without the timezone information. N.B.: due to the use the -// non-reentrant localtime() function, this function is not thread safe. Do -// not use it in any code that can be called from multiple threads. -GTEST_API_ std::string FormatEpochTimeInMillisAsIso8601(TimeInMillis ms); - -// Parses a string for an Int32 flag, in the form of "--flag=value". -// -// On success, stores the value of the flag in *value, and returns -// true. On failure, returns false without changing *value. -GTEST_API_ bool ParseFlag(const char* str, const char* flag, int32_t* value); - -// Returns a random seed in range [1, kMaxRandomSeed] based on the -// given --gtest_random_seed flag value. -inline int GetRandomSeedFromFlag(int32_t random_seed_flag) { - const unsigned int raw_seed = - (random_seed_flag == 0) ? static_cast(GetTimeInMillis()) - : static_cast(random_seed_flag); - - // Normalizes the actual seed to range [1, kMaxRandomSeed] such that - // it's easy to type. - const int normalized_seed = - static_cast((raw_seed - 1U) % - static_cast(kMaxRandomSeed)) + - 1; - return normalized_seed; -} - -// Returns the first valid random seed after 'seed'. The behavior is -// undefined if 'seed' is invalid. The seed after kMaxRandomSeed is -// considered to be 1. -inline int GetNextRandomSeed(int seed) { - GTEST_CHECK_(1 <= seed && seed <= kMaxRandomSeed) - << "Invalid random seed " << seed << " - must be in [1, " - << kMaxRandomSeed << "]."; - const int next_seed = seed + 1; - return (next_seed > kMaxRandomSeed) ? 1 : next_seed; -} - -// This class saves the values of all Google Test flags in its c'tor, and -// restores them in its d'tor. -class GTestFlagSaver { - public: - // The c'tor. - GTestFlagSaver() { - also_run_disabled_tests_ = GTEST_FLAG_GET(also_run_disabled_tests); - break_on_failure_ = GTEST_FLAG_GET(break_on_failure); - catch_exceptions_ = GTEST_FLAG_GET(catch_exceptions); - color_ = GTEST_FLAG_GET(color); - death_test_style_ = GTEST_FLAG_GET(death_test_style); - death_test_use_fork_ = GTEST_FLAG_GET(death_test_use_fork); - fail_fast_ = GTEST_FLAG_GET(fail_fast); - filter_ = GTEST_FLAG_GET(filter); - internal_run_death_test_ = GTEST_FLAG_GET(internal_run_death_test); - list_tests_ = GTEST_FLAG_GET(list_tests); - output_ = GTEST_FLAG_GET(output); - brief_ = GTEST_FLAG_GET(brief); - print_time_ = GTEST_FLAG_GET(print_time); - print_utf8_ = GTEST_FLAG_GET(print_utf8); - random_seed_ = GTEST_FLAG_GET(random_seed); - repeat_ = GTEST_FLAG_GET(repeat); - recreate_environments_when_repeating_ = - GTEST_FLAG_GET(recreate_environments_when_repeating); - shuffle_ = GTEST_FLAG_GET(shuffle); - stack_trace_depth_ = GTEST_FLAG_GET(stack_trace_depth); - stream_result_to_ = GTEST_FLAG_GET(stream_result_to); - throw_on_failure_ = GTEST_FLAG_GET(throw_on_failure); - } - - // The d'tor is not virtual. DO NOT INHERIT FROM THIS CLASS. - ~GTestFlagSaver() { - GTEST_FLAG_SET(also_run_disabled_tests, also_run_disabled_tests_); - GTEST_FLAG_SET(break_on_failure, break_on_failure_); - GTEST_FLAG_SET(catch_exceptions, catch_exceptions_); - GTEST_FLAG_SET(color, color_); - GTEST_FLAG_SET(death_test_style, death_test_style_); - GTEST_FLAG_SET(death_test_use_fork, death_test_use_fork_); - GTEST_FLAG_SET(filter, filter_); - GTEST_FLAG_SET(fail_fast, fail_fast_); - GTEST_FLAG_SET(internal_run_death_test, internal_run_death_test_); - GTEST_FLAG_SET(list_tests, list_tests_); - GTEST_FLAG_SET(output, output_); - GTEST_FLAG_SET(brief, brief_); - GTEST_FLAG_SET(print_time, print_time_); - GTEST_FLAG_SET(print_utf8, print_utf8_); - GTEST_FLAG_SET(random_seed, random_seed_); - GTEST_FLAG_SET(repeat, repeat_); - GTEST_FLAG_SET(recreate_environments_when_repeating, - recreate_environments_when_repeating_); - GTEST_FLAG_SET(shuffle, shuffle_); - GTEST_FLAG_SET(stack_trace_depth, stack_trace_depth_); - GTEST_FLAG_SET(stream_result_to, stream_result_to_); - GTEST_FLAG_SET(throw_on_failure, throw_on_failure_); - } - - private: - // Fields for saving the original values of flags. - bool also_run_disabled_tests_; - bool break_on_failure_; - bool catch_exceptions_; - std::string color_; - std::string death_test_style_; - bool death_test_use_fork_; - bool fail_fast_; - std::string filter_; - std::string internal_run_death_test_; - bool list_tests_; - std::string output_; - bool brief_; - bool print_time_; - bool print_utf8_; - int32_t random_seed_; - int32_t repeat_; - bool recreate_environments_when_repeating_; - bool shuffle_; - int32_t stack_trace_depth_; - std::string stream_result_to_; - bool throw_on_failure_; -} GTEST_ATTRIBUTE_UNUSED_; - -// Converts a Unicode code point to a narrow string in UTF-8 encoding. -// code_point parameter is of type UInt32 because wchar_t may not be -// wide enough to contain a code point. -// If the code_point is not a valid Unicode code point -// (i.e. outside of Unicode range U+0 to U+10FFFF) it will be converted -// to "(Invalid Unicode 0xXXXXXXXX)". -GTEST_API_ std::string CodePointToUtf8(uint32_t code_point); - -// Converts a wide string to a narrow string in UTF-8 encoding. -// The wide string is assumed to have the following encoding: -// UTF-16 if sizeof(wchar_t) == 2 (on Windows, Cygwin) -// UTF-32 if sizeof(wchar_t) == 4 (on Linux) -// Parameter str points to a null-terminated wide string. -// Parameter num_chars may additionally limit the number -// of wchar_t characters processed. -1 is used when the entire string -// should be processed. -// If the string contains code points that are not valid Unicode code points -// (i.e. outside of Unicode range U+0 to U+10FFFF) they will be output -// as '(Invalid Unicode 0xXXXXXXXX)'. If the string is in UTF16 encoding -// and contains invalid UTF-16 surrogate pairs, values in those pairs -// will be encoded as individual Unicode characters from Basic Normal Plane. -GTEST_API_ std::string WideStringToUtf8(const wchar_t* str, int num_chars); - -// Reads the GTEST_SHARD_STATUS_FILE environment variable, and creates the file -// if the variable is present. If a file already exists at this location, this -// function will write over it. If the variable is present, but the file cannot -// be created, prints an error and exits. -void WriteToShardStatusFileIfNeeded(); - -// Checks whether sharding is enabled by examining the relevant -// environment variable values. If the variables are present, -// but inconsistent (e.g., shard_index >= total_shards), prints -// an error and exits. If in_subprocess_for_death_test, sharding is -// disabled because it must only be applied to the original test -// process. Otherwise, we could filter out death tests we intended to execute. -GTEST_API_ bool ShouldShard(const char* total_shards_str, - const char* shard_index_str, - bool in_subprocess_for_death_test); - -// Parses the environment variable var as a 32-bit integer. If it is unset, -// returns default_val. If it is not a 32-bit integer, prints an error and -// and aborts. -GTEST_API_ int32_t Int32FromEnvOrDie(const char* env_var, int32_t default_val); - -// Given the total number of shards, the shard index, and the test id, -// returns true if and only if the test should be run on this shard. The test id -// is some arbitrary but unique non-negative integer assigned to each test -// method. Assumes that 0 <= shard_index < total_shards. -GTEST_API_ bool ShouldRunTestOnShard(int total_shards, int shard_index, - int test_id); - -// STL container utilities. - -// Returns the number of elements in the given container that satisfy -// the given predicate. -template -inline int CountIf(const Container& c, Predicate predicate) { - // Implemented as an explicit loop since std::count_if() in libCstd on - // Solaris has a non-standard signature. - int count = 0; - for (auto it = c.begin(); it != c.end(); ++it) { - if (predicate(*it)) ++count; - } - return count; -} - -// Applies a function/functor to each element in the container. -template -void ForEach(const Container& c, Functor functor) { - std::for_each(c.begin(), c.end(), functor); -} - -// Returns the i-th element of the vector, or default_value if i is not -// in range [0, v.size()). -template -inline E GetElementOr(const std::vector& v, int i, E default_value) { - return (i < 0 || i >= static_cast(v.size())) ? default_value - : v[static_cast(i)]; -} - -// Performs an in-place shuffle of a range of the vector's elements. -// 'begin' and 'end' are element indices as an STL-style range; -// i.e. [begin, end) are shuffled, where 'end' == size() means to -// shuffle to the end of the vector. -template -void ShuffleRange(internal::Random* random, int begin, int end, - std::vector* v) { - const int size = static_cast(v->size()); - GTEST_CHECK_(0 <= begin && begin <= size) - << "Invalid shuffle range start " << begin << ": must be in range [0, " - << size << "]."; - GTEST_CHECK_(begin <= end && end <= size) - << "Invalid shuffle range finish " << end << ": must be in range [" - << begin << ", " << size << "]."; - - // Fisher-Yates shuffle, from - // http://en.wikipedia.org/wiki/Fisher-Yates_shuffle - for (int range_width = end - begin; range_width >= 2; range_width--) { - const int last_in_range = begin + range_width - 1; - const int selected = - begin + - static_cast(random->Generate(static_cast(range_width))); - std::swap((*v)[static_cast(selected)], - (*v)[static_cast(last_in_range)]); - } -} - -// Performs an in-place shuffle of the vector's elements. -template -inline void Shuffle(internal::Random* random, std::vector* v) { - ShuffleRange(random, 0, static_cast(v->size()), v); -} - -// A function for deleting an object. Handy for being used as a -// functor. -template -static void Delete(T* x) { - delete x; -} - -// A predicate that checks the key of a TestProperty against a known key. -// -// TestPropertyKeyIs is copyable. -class TestPropertyKeyIs { - public: - // Constructor. - // - // TestPropertyKeyIs has NO default constructor. - explicit TestPropertyKeyIs(const std::string& key) : key_(key) {} - - // Returns true if and only if the test name of test property matches on key_. - bool operator()(const TestProperty& test_property) const { - return test_property.key() == key_; - } - - private: - std::string key_; -}; - -// Class UnitTestOptions. -// -// This class contains functions for processing options the user -// specifies when running the tests. It has only static members. -// -// In most cases, the user can specify an option using either an -// environment variable or a command line flag. E.g. you can set the -// test filter using either GTEST_FILTER or --gtest_filter. If both -// the variable and the flag are present, the latter overrides the -// former. -class GTEST_API_ UnitTestOptions { - public: - // Functions for processing the gtest_output flag. - - // Returns the output format, or "" for normal printed output. - static std::string GetOutputFormat(); - - // Returns the absolute path of the requested output file, or the - // default (test_detail.xml in the original working directory) if - // none was explicitly specified. - static std::string GetAbsolutePathToOutputFile(); - - // Functions for processing the gtest_filter flag. - - // Returns true if and only if the user-specified filter matches the test - // suite name and the test name. - static bool FilterMatchesTest(const std::string& test_suite_name, - const std::string& test_name); - -#if GTEST_OS_WINDOWS - // Function for supporting the gtest_catch_exception flag. - - // Returns EXCEPTION_EXECUTE_HANDLER if Google Test should handle the - // given SEH exception, or EXCEPTION_CONTINUE_SEARCH otherwise. - // This function is useful as an __except condition. - static int GTestShouldProcessSEH(DWORD exception_code); -#endif // GTEST_OS_WINDOWS - - // Returns true if "name" matches the ':' separated list of glob-style - // filters in "filter". - static bool MatchesFilter(const std::string& name, const char* filter); -}; - -// Returns the current application's name, removing directory path if that -// is present. Used by UnitTestOptions::GetOutputFile. -GTEST_API_ FilePath GetCurrentExecutableName(); - -// The role interface for getting the OS stack trace as a string. -class OsStackTraceGetterInterface { - public: - OsStackTraceGetterInterface() {} - virtual ~OsStackTraceGetterInterface() {} - - // Returns the current OS stack trace as an std::string. Parameters: - // - // max_depth - the maximum number of stack frames to be included - // in the trace. - // skip_count - the number of top frames to be skipped; doesn't count - // against max_depth. - virtual std::string CurrentStackTrace(int max_depth, int skip_count) = 0; - - // UponLeavingGTest() should be called immediately before Google Test calls - // user code. It saves some information about the current stack that - // CurrentStackTrace() will use to find and hide Google Test stack frames. - virtual void UponLeavingGTest() = 0; - - // This string is inserted in place of stack frames that are part of - // Google Test's implementation. - static const char* const kElidedFramesMarker; - - private: - OsStackTraceGetterInterface(const OsStackTraceGetterInterface&) = delete; - OsStackTraceGetterInterface& operator=(const OsStackTraceGetterInterface&) = - delete; -}; - -// A working implementation of the OsStackTraceGetterInterface interface. -class OsStackTraceGetter : public OsStackTraceGetterInterface { - public: - OsStackTraceGetter() {} - - std::string CurrentStackTrace(int max_depth, int skip_count) override; - void UponLeavingGTest() override; - - private: -#if GTEST_HAS_ABSL - Mutex mutex_; // Protects all internal state. - - // We save the stack frame below the frame that calls user code. - // We do this because the address of the frame immediately below - // the user code changes between the call to UponLeavingGTest() - // and any calls to the stack trace code from within the user code. - void* caller_frame_ = nullptr; -#endif // GTEST_HAS_ABSL - - OsStackTraceGetter(const OsStackTraceGetter&) = delete; - OsStackTraceGetter& operator=(const OsStackTraceGetter&) = delete; -}; - -// Information about a Google Test trace point. -struct TraceInfo { - const char* file; - int line; - std::string message; -}; - -// This is the default global test part result reporter used in UnitTestImpl. -// This class should only be used by UnitTestImpl. -class DefaultGlobalTestPartResultReporter - : public TestPartResultReporterInterface { - public: - explicit DefaultGlobalTestPartResultReporter(UnitTestImpl* unit_test); - // Implements the TestPartResultReporterInterface. Reports the test part - // result in the current test. - void ReportTestPartResult(const TestPartResult& result) override; - - private: - UnitTestImpl* const unit_test_; - - DefaultGlobalTestPartResultReporter( - const DefaultGlobalTestPartResultReporter&) = delete; - DefaultGlobalTestPartResultReporter& operator=( - const DefaultGlobalTestPartResultReporter&) = delete; -}; - -// This is the default per thread test part result reporter used in -// UnitTestImpl. This class should only be used by UnitTestImpl. -class DefaultPerThreadTestPartResultReporter - : public TestPartResultReporterInterface { - public: - explicit DefaultPerThreadTestPartResultReporter(UnitTestImpl* unit_test); - // Implements the TestPartResultReporterInterface. The implementation just - // delegates to the current global test part result reporter of *unit_test_. - void ReportTestPartResult(const TestPartResult& result) override; - - private: - UnitTestImpl* const unit_test_; - - DefaultPerThreadTestPartResultReporter( - const DefaultPerThreadTestPartResultReporter&) = delete; - DefaultPerThreadTestPartResultReporter& operator=( - const DefaultPerThreadTestPartResultReporter&) = delete; -}; - -// The private implementation of the UnitTest class. We don't protect -// the methods under a mutex, as this class is not accessible by a -// user and the UnitTest class that delegates work to this class does -// proper locking. -class GTEST_API_ UnitTestImpl { - public: - explicit UnitTestImpl(UnitTest* parent); - virtual ~UnitTestImpl(); - - // There are two different ways to register your own TestPartResultReporter. - // You can register your own repoter to listen either only for test results - // from the current thread or for results from all threads. - // By default, each per-thread test result repoter just passes a new - // TestPartResult to the global test result reporter, which registers the - // test part result for the currently running test. - - // Returns the global test part result reporter. - TestPartResultReporterInterface* GetGlobalTestPartResultReporter(); - - // Sets the global test part result reporter. - void SetGlobalTestPartResultReporter( - TestPartResultReporterInterface* reporter); - - // Returns the test part result reporter for the current thread. - TestPartResultReporterInterface* GetTestPartResultReporterForCurrentThread(); - - // Sets the test part result reporter for the current thread. - void SetTestPartResultReporterForCurrentThread( - TestPartResultReporterInterface* reporter); - - // Gets the number of successful test suites. - int successful_test_suite_count() const; - - // Gets the number of failed test suites. - int failed_test_suite_count() const; - - // Gets the number of all test suites. - int total_test_suite_count() const; - - // Gets the number of all test suites that contain at least one test - // that should run. - int test_suite_to_run_count() const; - - // Gets the number of successful tests. - int successful_test_count() const; - - // Gets the number of skipped tests. - int skipped_test_count() const; - - // Gets the number of failed tests. - int failed_test_count() const; - - // Gets the number of disabled tests that will be reported in the XML report. - int reportable_disabled_test_count() const; - - // Gets the number of disabled tests. - int disabled_test_count() const; - - // Gets the number of tests to be printed in the XML report. - int reportable_test_count() const; - - // Gets the number of all tests. - int total_test_count() const; - - // Gets the number of tests that should run. - int test_to_run_count() const; - - // Gets the time of the test program start, in ms from the start of the - // UNIX epoch. - TimeInMillis start_timestamp() const { return start_timestamp_; } - - // Gets the elapsed time, in milliseconds. - TimeInMillis elapsed_time() const { return elapsed_time_; } - - // Returns true if and only if the unit test passed (i.e. all test suites - // passed). - bool Passed() const { return !Failed(); } - - // Returns true if and only if the unit test failed (i.e. some test suite - // failed or something outside of all tests failed). - bool Failed() const { - return failed_test_suite_count() > 0 || ad_hoc_test_result()->Failed(); - } - - // Gets the i-th test suite among all the test suites. i can range from 0 to - // total_test_suite_count() - 1. If i is not in that range, returns NULL. - const TestSuite* GetTestSuite(int i) const { - const int index = GetElementOr(test_suite_indices_, i, -1); - return index < 0 ? nullptr : test_suites_[static_cast(i)]; - } - - // Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - const TestCase* GetTestCase(int i) const { return GetTestSuite(i); } -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Gets the i-th test suite among all the test suites. i can range from 0 to - // total_test_suite_count() - 1. If i is not in that range, returns NULL. - TestSuite* GetMutableSuiteCase(int i) { - const int index = GetElementOr(test_suite_indices_, i, -1); - return index < 0 ? nullptr : test_suites_[static_cast(index)]; - } - - // Provides access to the event listener list. - TestEventListeners* listeners() { return &listeners_; } - - // Returns the TestResult for the test that's currently running, or - // the TestResult for the ad hoc test if no test is running. - TestResult* current_test_result(); - - // Returns the TestResult for the ad hoc test. - const TestResult* ad_hoc_test_result() const { return &ad_hoc_test_result_; } - - // Sets the OS stack trace getter. - // - // Does nothing if the input and the current OS stack trace getter - // are the same; otherwise, deletes the old getter and makes the - // input the current getter. - void set_os_stack_trace_getter(OsStackTraceGetterInterface* getter); - - // Returns the current OS stack trace getter if it is not NULL; - // otherwise, creates an OsStackTraceGetter, makes it the current - // getter, and returns it. - OsStackTraceGetterInterface* os_stack_trace_getter(); - - // Returns the current OS stack trace as an std::string. - // - // The maximum number of stack frames to be included is specified by - // the gtest_stack_trace_depth flag. The skip_count parameter - // specifies the number of top frames to be skipped, which doesn't - // count against the number of frames to be included. - // - // For example, if Foo() calls Bar(), which in turn calls - // CurrentOsStackTraceExceptTop(1), Foo() will be included in the - // trace but Bar() and CurrentOsStackTraceExceptTop() won't. - std::string CurrentOsStackTraceExceptTop(int skip_count) - GTEST_NO_INLINE_ GTEST_NO_TAIL_CALL_; - - // Finds and returns a TestSuite with the given name. If one doesn't - // exist, creates one and returns it. - // - // Arguments: - // - // test_suite_name: name of the test suite - // type_param: the name of the test's type parameter, or NULL if - // this is not a typed or a type-parameterized test. - // set_up_tc: pointer to the function that sets up the test suite - // tear_down_tc: pointer to the function that tears down the test suite - TestSuite* GetTestSuite(const char* test_suite_name, const char* type_param, - internal::SetUpTestSuiteFunc set_up_tc, - internal::TearDownTestSuiteFunc tear_down_tc); - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - TestCase* GetTestCase(const char* test_case_name, const char* type_param, - internal::SetUpTestSuiteFunc set_up_tc, - internal::TearDownTestSuiteFunc tear_down_tc) { - return GetTestSuite(test_case_name, type_param, set_up_tc, tear_down_tc); - } -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Adds a TestInfo to the unit test. - // - // Arguments: - // - // set_up_tc: pointer to the function that sets up the test suite - // tear_down_tc: pointer to the function that tears down the test suite - // test_info: the TestInfo object - void AddTestInfo(internal::SetUpTestSuiteFunc set_up_tc, - internal::TearDownTestSuiteFunc tear_down_tc, - TestInfo* test_info) { -#if GTEST_HAS_DEATH_TEST - // In order to support thread-safe death tests, we need to - // remember the original working directory when the test program - // was first invoked. We cannot do this in RUN_ALL_TESTS(), as - // the user may have changed the current directory before calling - // RUN_ALL_TESTS(). Therefore we capture the current directory in - // AddTestInfo(), which is called to register a TEST or TEST_F - // before main() is reached. - if (original_working_dir_.IsEmpty()) { - original_working_dir_.Set(FilePath::GetCurrentDir()); - GTEST_CHECK_(!original_working_dir_.IsEmpty()) - << "Failed to get the current working directory."; - } -#endif // GTEST_HAS_DEATH_TEST - - GetTestSuite(test_info->test_suite_name(), test_info->type_param(), - set_up_tc, tear_down_tc) - ->AddTestInfo(test_info); - } - - // Returns ParameterizedTestSuiteRegistry object used to keep track of - // value-parameterized tests and instantiate and register them. - internal::ParameterizedTestSuiteRegistry& parameterized_test_registry() { - return parameterized_test_registry_; - } - - std::set* ignored_parameterized_test_suites() { - return &ignored_parameterized_test_suites_; - } - - // Returns TypeParameterizedTestSuiteRegistry object used to keep track of - // type-parameterized tests and instantiations of them. - internal::TypeParameterizedTestSuiteRegistry& - type_parameterized_test_registry() { - return type_parameterized_test_registry_; - } - - // Sets the TestSuite object for the test that's currently running. - void set_current_test_suite(TestSuite* a_current_test_suite) { - current_test_suite_ = a_current_test_suite; - } - - // Sets the TestInfo object for the test that's currently running. If - // current_test_info is NULL, the assertion results will be stored in - // ad_hoc_test_result_. - void set_current_test_info(TestInfo* a_current_test_info) { - current_test_info_ = a_current_test_info; - } - - // Registers all parameterized tests defined using TEST_P and - // INSTANTIATE_TEST_SUITE_P, creating regular tests for each test/parameter - // combination. This method can be called more then once; it has guards - // protecting from registering the tests more then once. If - // value-parameterized tests are disabled, RegisterParameterizedTests is - // present but does nothing. - void RegisterParameterizedTests(); - - // Runs all tests in this UnitTest object, prints the result, and - // returns true if all tests are successful. If any exception is - // thrown during a test, this test is considered to be failed, but - // the rest of the tests will still be run. - bool RunAllTests(); - - // Clears the results of all tests, except the ad hoc tests. - void ClearNonAdHocTestResult() { - ForEach(test_suites_, TestSuite::ClearTestSuiteResult); - } - - // Clears the results of ad-hoc test assertions. - void ClearAdHocTestResult() { ad_hoc_test_result_.Clear(); } - - // Adds a TestProperty to the current TestResult object when invoked in a - // context of a test or a test suite, or to the global property set. If the - // result already contains a property with the same key, the value will be - // updated. - void RecordProperty(const TestProperty& test_property); - - enum ReactionToSharding { HONOR_SHARDING_PROTOCOL, IGNORE_SHARDING_PROTOCOL }; - - // Matches the full name of each test against the user-specified - // filter to decide whether the test should run, then records the - // result in each TestSuite and TestInfo object. - // If shard_tests == HONOR_SHARDING_PROTOCOL, further filters tests - // based on sharding variables in the environment. - // Returns the number of tests that should run. - int FilterTests(ReactionToSharding shard_tests); - - // Prints the names of the tests matching the user-specified filter flag. - void ListTestsMatchingFilter(); - - const TestSuite* current_test_suite() const { return current_test_suite_; } - TestInfo* current_test_info() { return current_test_info_; } - const TestInfo* current_test_info() const { return current_test_info_; } - - // Returns the vector of environments that need to be set-up/torn-down - // before/after the tests are run. - std::vector& environments() { return environments_; } - - // Getters for the per-thread Google Test trace stack. - std::vector& gtest_trace_stack() { - return *(gtest_trace_stack_.pointer()); - } - const std::vector& gtest_trace_stack() const { - return gtest_trace_stack_.get(); - } - -#if GTEST_HAS_DEATH_TEST - void InitDeathTestSubprocessControlInfo() { - internal_run_death_test_flag_.reset(ParseInternalRunDeathTestFlag()); - } - // Returns a pointer to the parsed --gtest_internal_run_death_test - // flag, or NULL if that flag was not specified. - // This information is useful only in a death test child process. - // Must not be called before a call to InitGoogleTest. - const InternalRunDeathTestFlag* internal_run_death_test_flag() const { - return internal_run_death_test_flag_.get(); - } - - // Returns a pointer to the current death test factory. - internal::DeathTestFactory* death_test_factory() { - return death_test_factory_.get(); - } - - void SuppressTestEventsIfInSubprocess(); - - friend class ReplaceDeathTestFactory; -#endif // GTEST_HAS_DEATH_TEST - - // Initializes the event listener performing XML output as specified by - // UnitTestOptions. Must not be called before InitGoogleTest. - void ConfigureXmlOutput(); - -#if GTEST_CAN_STREAM_RESULTS_ - // Initializes the event listener for streaming test results to a socket. - // Must not be called before InitGoogleTest. - void ConfigureStreamingOutput(); -#endif - - // Performs initialization dependent upon flag values obtained in - // ParseGoogleTestFlagsOnly. Is called from InitGoogleTest after the call to - // ParseGoogleTestFlagsOnly. In case a user neglects to call InitGoogleTest - // this function is also called from RunAllTests. Since this function can be - // called more than once, it has to be idempotent. - void PostFlagParsingInit(); - - // Gets the random seed used at the start of the current test iteration. - int random_seed() const { return random_seed_; } - - // Gets the random number generator. - internal::Random* random() { return &random_; } - - // Shuffles all test suites, and the tests within each test suite, - // making sure that death tests are still run first. - void ShuffleTests(); - - // Restores the test suites and tests to their order before the first shuffle. - void UnshuffleTests(); - - // Returns the value of GTEST_FLAG(catch_exceptions) at the moment - // UnitTest::Run() starts. - bool catch_exceptions() const { return catch_exceptions_; } - - private: - friend class ::testing::UnitTest; - - // Used by UnitTest::Run() to capture the state of - // GTEST_FLAG(catch_exceptions) at the moment it starts. - void set_catch_exceptions(bool value) { catch_exceptions_ = value; } - - // The UnitTest object that owns this implementation object. - UnitTest* const parent_; - - // The working directory when the first TEST() or TEST_F() was - // executed. - internal::FilePath original_working_dir_; - - // The default test part result reporters. - DefaultGlobalTestPartResultReporter default_global_test_part_result_reporter_; - DefaultPerThreadTestPartResultReporter - default_per_thread_test_part_result_reporter_; - - // Points to (but doesn't own) the global test part result reporter. - TestPartResultReporterInterface* global_test_part_result_repoter_; - - // Protects read and write access to global_test_part_result_reporter_. - internal::Mutex global_test_part_result_reporter_mutex_; - - // Points to (but doesn't own) the per-thread test part result reporter. - internal::ThreadLocal - per_thread_test_part_result_reporter_; - - // The vector of environments that need to be set-up/torn-down - // before/after the tests are run. - std::vector environments_; - - // The vector of TestSuites in their original order. It owns the - // elements in the vector. - std::vector test_suites_; - - // Provides a level of indirection for the test suite list to allow - // easy shuffling and restoring the test suite order. The i-th - // element of this vector is the index of the i-th test suite in the - // shuffled order. - std::vector test_suite_indices_; - - // ParameterizedTestRegistry object used to register value-parameterized - // tests. - internal::ParameterizedTestSuiteRegistry parameterized_test_registry_; - internal::TypeParameterizedTestSuiteRegistry - type_parameterized_test_registry_; - - // The set holding the name of parameterized - // test suites that may go uninstantiated. - std::set ignored_parameterized_test_suites_; - - // Indicates whether RegisterParameterizedTests() has been called already. - bool parameterized_tests_registered_; - - // Index of the last death test suite registered. Initially -1. - int last_death_test_suite_; - - // This points to the TestSuite for the currently running test. It - // changes as Google Test goes through one test suite after another. - // When no test is running, this is set to NULL and Google Test - // stores assertion results in ad_hoc_test_result_. Initially NULL. - TestSuite* current_test_suite_; - - // This points to the TestInfo for the currently running test. It - // changes as Google Test goes through one test after another. When - // no test is running, this is set to NULL and Google Test stores - // assertion results in ad_hoc_test_result_. Initially NULL. - TestInfo* current_test_info_; - - // Normally, a user only writes assertions inside a TEST or TEST_F, - // or inside a function called by a TEST or TEST_F. Since Google - // Test keeps track of which test is current running, it can - // associate such an assertion with the test it belongs to. - // - // If an assertion is encountered when no TEST or TEST_F is running, - // Google Test attributes the assertion result to an imaginary "ad hoc" - // test, and records the result in ad_hoc_test_result_. - TestResult ad_hoc_test_result_; - - // The list of event listeners that can be used to track events inside - // Google Test. - TestEventListeners listeners_; - - // The OS stack trace getter. Will be deleted when the UnitTest - // object is destructed. By default, an OsStackTraceGetter is used, - // but the user can set this field to use a custom getter if that is - // desired. - OsStackTraceGetterInterface* os_stack_trace_getter_; - - // True if and only if PostFlagParsingInit() has been called. - bool post_flag_parse_init_performed_; - - // The random number seed used at the beginning of the test run. - int random_seed_; - - // Our random number generator. - internal::Random random_; - - // The time of the test program start, in ms from the start of the - // UNIX epoch. - TimeInMillis start_timestamp_; - - // How long the test took to run, in milliseconds. - TimeInMillis elapsed_time_; - -#if GTEST_HAS_DEATH_TEST - // The decomposed components of the gtest_internal_run_death_test flag, - // parsed when RUN_ALL_TESTS is called. - std::unique_ptr internal_run_death_test_flag_; - std::unique_ptr death_test_factory_; -#endif // GTEST_HAS_DEATH_TEST - - // A per-thread stack of traces created by the SCOPED_TRACE() macro. - internal::ThreadLocal > gtest_trace_stack_; - - // The value of GTEST_FLAG(catch_exceptions) at the moment RunAllTests() - // starts. - bool catch_exceptions_; - - UnitTestImpl(const UnitTestImpl&) = delete; - UnitTestImpl& operator=(const UnitTestImpl&) = delete; -}; // class UnitTestImpl - -// Convenience function for accessing the global UnitTest -// implementation object. -inline UnitTestImpl* GetUnitTestImpl() { - return UnitTest::GetInstance()->impl(); -} - -#if GTEST_USES_SIMPLE_RE - -// Internal helper functions for implementing the simple regular -// expression matcher. -GTEST_API_ bool IsInSet(char ch, const char* str); -GTEST_API_ bool IsAsciiDigit(char ch); -GTEST_API_ bool IsAsciiPunct(char ch); -GTEST_API_ bool IsRepeat(char ch); -GTEST_API_ bool IsAsciiWhiteSpace(char ch); -GTEST_API_ bool IsAsciiWordChar(char ch); -GTEST_API_ bool IsValidEscape(char ch); -GTEST_API_ bool AtomMatchesChar(bool escaped, char pattern, char ch); -GTEST_API_ bool ValidateRegex(const char* regex); -GTEST_API_ bool MatchRegexAtHead(const char* regex, const char* str); -GTEST_API_ bool MatchRepetitionAndRegexAtHead(bool escaped, char ch, - char repeat, const char* regex, - const char* str); -GTEST_API_ bool MatchRegexAnywhere(const char* regex, const char* str); - -#endif // GTEST_USES_SIMPLE_RE - -// Parses the command line for Google Test flags, without initializing -// other parts of Google Test. -GTEST_API_ void ParseGoogleTestFlagsOnly(int* argc, char** argv); -GTEST_API_ void ParseGoogleTestFlagsOnly(int* argc, wchar_t** argv); - -#if GTEST_HAS_DEATH_TEST - -// Returns the message describing the last system error, regardless of the -// platform. -GTEST_API_ std::string GetLastErrnoDescription(); - -// Attempts to parse a string into a positive integer pointed to by the -// number parameter. Returns true if that is possible. -// GTEST_HAS_DEATH_TEST implies that we have ::std::string, so we can use -// it here. -template -bool ParseNaturalNumber(const ::std::string& str, Integer* number) { - // Fail fast if the given string does not begin with a digit; - // this bypasses strtoXXX's "optional leading whitespace and plus - // or minus sign" semantics, which are undesirable here. - if (str.empty() || !IsDigit(str[0])) { - return false; - } - errno = 0; - - char* end; - // BiggestConvertible is the largest integer type that system-provided - // string-to-number conversion routines can return. - using BiggestConvertible = unsigned long long; // NOLINT - - const BiggestConvertible parsed = strtoull(str.c_str(), &end, 10); // NOLINT - const bool parse_success = *end == '\0' && errno == 0; - - GTEST_CHECK_(sizeof(Integer) <= sizeof(parsed)); - - const Integer result = static_cast(parsed); - if (parse_success && static_cast(result) == parsed) { - *number = result; - return true; - } - return false; -} -#endif // GTEST_HAS_DEATH_TEST - -// TestResult contains some private methods that should be hidden from -// Google Test user but are required for testing. This class allow our tests -// to access them. -// -// This class is supplied only for the purpose of testing Google Test's own -// constructs. Do not use it in user tests, either directly or indirectly. -class TestResultAccessor { - public: - static void RecordProperty(TestResult* test_result, - const std::string& xml_element, - const TestProperty& property) { - test_result->RecordProperty(xml_element, property); - } - - static void ClearTestPartResults(TestResult* test_result) { - test_result->ClearTestPartResults(); - } - - static const std::vector& test_part_results( - const TestResult& test_result) { - return test_result.test_part_results(); - } -}; - -#if GTEST_CAN_STREAM_RESULTS_ - -// Streams test results to the given port on the given host machine. -class StreamingListener : public EmptyTestEventListener { - public: - // Abstract base class for writing strings to a socket. - class AbstractSocketWriter { - public: - virtual ~AbstractSocketWriter() {} - - // Sends a string to the socket. - virtual void Send(const std::string& message) = 0; - - // Closes the socket. - virtual void CloseConnection() {} - - // Sends a string and a newline to the socket. - void SendLn(const std::string& message) { Send(message + "\n"); } - }; - - // Concrete class for actually writing strings to a socket. - class SocketWriter : public AbstractSocketWriter { - public: - SocketWriter(const std::string& host, const std::string& port) - : sockfd_(-1), host_name_(host), port_num_(port) { - MakeConnection(); - } - - ~SocketWriter() override { - if (sockfd_ != -1) CloseConnection(); - } - - // Sends a string to the socket. - void Send(const std::string& message) override { - GTEST_CHECK_(sockfd_ != -1) - << "Send() can be called only when there is a connection."; - - const auto len = static_cast(message.length()); - if (write(sockfd_, message.c_str(), len) != static_cast(len)) { - GTEST_LOG_(WARNING) << "stream_result_to: failed to stream to " - << host_name_ << ":" << port_num_; - } - } - - private: - // Creates a client socket and connects to the server. - void MakeConnection(); - - // Closes the socket. - void CloseConnection() override { - GTEST_CHECK_(sockfd_ != -1) - << "CloseConnection() can be called only when there is a connection."; - - close(sockfd_); - sockfd_ = -1; - } - - int sockfd_; // socket file descriptor - const std::string host_name_; - const std::string port_num_; - - SocketWriter(const SocketWriter&) = delete; - SocketWriter& operator=(const SocketWriter&) = delete; - }; // class SocketWriter - - // Escapes '=', '&', '%', and '\n' characters in str as "%xx". - static std::string UrlEncode(const char* str); - - StreamingListener(const std::string& host, const std::string& port) - : socket_writer_(new SocketWriter(host, port)) { - Start(); - } - - explicit StreamingListener(AbstractSocketWriter* socket_writer) - : socket_writer_(socket_writer) { - Start(); - } - - void OnTestProgramStart(const UnitTest& /* unit_test */) override { - SendLn("event=TestProgramStart"); - } - - void OnTestProgramEnd(const UnitTest& unit_test) override { - // Note that Google Test current only report elapsed time for each - // test iteration, not for the entire test program. - SendLn("event=TestProgramEnd&passed=" + FormatBool(unit_test.Passed())); - - // Notify the streaming server to stop. - socket_writer_->CloseConnection(); - } - - void OnTestIterationStart(const UnitTest& /* unit_test */, - int iteration) override { - SendLn("event=TestIterationStart&iteration=" + - StreamableToString(iteration)); - } - - void OnTestIterationEnd(const UnitTest& unit_test, - int /* iteration */) override { - SendLn("event=TestIterationEnd&passed=" + FormatBool(unit_test.Passed()) + - "&elapsed_time=" + StreamableToString(unit_test.elapsed_time()) + - "ms"); - } - - // Note that "event=TestCaseStart" is a wire format and has to remain - // "case" for compatibility - void OnTestSuiteStart(const TestSuite& test_suite) override { - SendLn(std::string("event=TestCaseStart&name=") + test_suite.name()); - } - - // Note that "event=TestCaseEnd" is a wire format and has to remain - // "case" for compatibility - void OnTestSuiteEnd(const TestSuite& test_suite) override { - SendLn("event=TestCaseEnd&passed=" + FormatBool(test_suite.Passed()) + - "&elapsed_time=" + StreamableToString(test_suite.elapsed_time()) + - "ms"); - } - - void OnTestStart(const TestInfo& test_info) override { - SendLn(std::string("event=TestStart&name=") + test_info.name()); - } - - void OnTestEnd(const TestInfo& test_info) override { - SendLn("event=TestEnd&passed=" + - FormatBool((test_info.result())->Passed()) + "&elapsed_time=" + - StreamableToString((test_info.result())->elapsed_time()) + "ms"); - } - - void OnTestPartResult(const TestPartResult& test_part_result) override { - const char* file_name = test_part_result.file_name(); - if (file_name == nullptr) file_name = ""; - SendLn("event=TestPartResult&file=" + UrlEncode(file_name) + - "&line=" + StreamableToString(test_part_result.line_number()) + - "&message=" + UrlEncode(test_part_result.message())); - } - - private: - // Sends the given message and a newline to the socket. - void SendLn(const std::string& message) { socket_writer_->SendLn(message); } - - // Called at the start of streaming to notify the receiver what - // protocol we are using. - void Start() { SendLn("gtest_streaming_protocol_version=1.0"); } - - std::string FormatBool(bool value) { return value ? "1" : "0"; } - - const std::unique_ptr socket_writer_; - - StreamingListener(const StreamingListener&) = delete; - StreamingListener& operator=(const StreamingListener&) = delete; -}; // class StreamingListener - -#endif // GTEST_CAN_STREAM_RESULTS_ - -} // namespace internal -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -#endif // GOOGLETEST_SRC_GTEST_INTERNAL_INL_H_ diff --git a/libs/cpp-httplib/test/gtest/src/gtest-matchers.cc b/libs/cpp-httplib/test/gtest/src/gtest-matchers.cc deleted file mode 100644 index 7e3bcc0..0000000 --- a/libs/cpp-httplib/test/gtest/src/gtest-matchers.cc +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2007, 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. - -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This file implements just enough of the matcher interface to allow -// EXPECT_DEATH and friends to accept a matcher argument. - -#include "gtest/gtest-matchers.h" - -#include - -#include "gtest/internal/gtest-internal.h" -#include "gtest/internal/gtest-port.h" - -namespace testing { - -// Constructs a matcher that matches a const std::string& whose value is -// equal to s. -Matcher::Matcher(const std::string& s) { *this = Eq(s); } - -// Constructs a matcher that matches a const std::string& whose value is -// equal to s. -Matcher::Matcher(const char* s) { - *this = Eq(std::string(s)); -} - -// Constructs a matcher that matches a std::string whose value is equal to -// s. -Matcher::Matcher(const std::string& s) { *this = Eq(s); } - -// Constructs a matcher that matches a std::string whose value is equal to -// s. -Matcher::Matcher(const char* s) { *this = Eq(std::string(s)); } - -#if GTEST_INTERNAL_HAS_STRING_VIEW -// Constructs a matcher that matches a const StringView& whose value is -// equal to s. -Matcher::Matcher(const std::string& s) { - *this = Eq(s); -} - -// Constructs a matcher that matches a const StringView& whose value is -// equal to s. -Matcher::Matcher(const char* s) { - *this = Eq(std::string(s)); -} - -// Constructs a matcher that matches a const StringView& whose value is -// equal to s. -Matcher::Matcher(internal::StringView s) { - *this = Eq(std::string(s)); -} - -// Constructs a matcher that matches a StringView whose value is equal to -// s. -Matcher::Matcher(const std::string& s) { *this = Eq(s); } - -// Constructs a matcher that matches a StringView whose value is equal to -// s. -Matcher::Matcher(const char* s) { - *this = Eq(std::string(s)); -} - -// Constructs a matcher that matches a StringView whose value is equal to -// s. -Matcher::Matcher(internal::StringView s) { - *this = Eq(std::string(s)); -} -#endif // GTEST_INTERNAL_HAS_STRING_VIEW - -} // namespace testing diff --git a/libs/cpp-httplib/test/gtest/src/gtest-port.cc b/libs/cpp-httplib/test/gtest/src/gtest-port.cc deleted file mode 100644 index d797fe4..0000000 --- a/libs/cpp-httplib/test/gtest/src/gtest-port.cc +++ /dev/null @@ -1,1394 +0,0 @@ -// 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. - -#include "gtest/internal/gtest-port.h" - -#include -#include -#include -#include - -#include -#include -#include - -#if GTEST_OS_WINDOWS -#include -#include -#include - -#include // Used in ThreadLocal. -#ifdef _MSC_VER -#include -#endif // _MSC_VER -#else -#include -#endif // GTEST_OS_WINDOWS - -#if GTEST_OS_MAC -#include -#include -#include -#endif // GTEST_OS_MAC - -#if GTEST_OS_DRAGONFLY || GTEST_OS_FREEBSD || GTEST_OS_GNU_KFREEBSD || \ - GTEST_OS_NETBSD || GTEST_OS_OPENBSD -#include -#if GTEST_OS_DRAGONFLY || GTEST_OS_FREEBSD || GTEST_OS_GNU_KFREEBSD -#include -#endif -#endif - -#if GTEST_OS_QNX -#include -#include -#include -#endif // GTEST_OS_QNX - -#if GTEST_OS_AIX -#include -#include -#endif // GTEST_OS_AIX - -#if GTEST_OS_FUCHSIA -#include -#include -#endif // GTEST_OS_FUCHSIA - -#include "gtest/gtest-message.h" -#include "gtest/gtest-spi.h" -#include "gtest/internal/gtest-internal.h" -#include "gtest/internal/gtest-string.h" -#include "src/gtest-internal-inl.h" - -namespace testing { -namespace internal { - -#if GTEST_OS_LINUX || GTEST_OS_GNU_HURD - -namespace { -template -T ReadProcFileField(const std::string& filename, int field) { - std::string dummy; - std::ifstream file(filename.c_str()); - while (field-- > 0) { - file >> dummy; - } - T output = 0; - file >> output; - return output; -} -} // namespace - -// Returns the number of active threads, or 0 when there is an error. -size_t GetThreadCount() { - const std::string filename = - (Message() << "/proc/" << getpid() << "/stat").GetString(); - return ReadProcFileField(filename, 19); -} - -#elif GTEST_OS_MAC - -size_t GetThreadCount() { - const task_t task = mach_task_self(); - mach_msg_type_number_t thread_count; - thread_act_array_t thread_list; - const kern_return_t status = task_threads(task, &thread_list, &thread_count); - if (status == KERN_SUCCESS) { - // task_threads allocates resources in thread_list and we need to free them - // to avoid leaks. - vm_deallocate(task, reinterpret_cast(thread_list), - sizeof(thread_t) * thread_count); - return static_cast(thread_count); - } else { - return 0; - } -} - -#elif GTEST_OS_DRAGONFLY || GTEST_OS_FREEBSD || GTEST_OS_GNU_KFREEBSD || \ - GTEST_OS_NETBSD - -#if GTEST_OS_NETBSD -#undef KERN_PROC -#define KERN_PROC KERN_PROC2 -#define kinfo_proc kinfo_proc2 -#endif - -#if GTEST_OS_DRAGONFLY -#define KP_NLWP(kp) (kp.kp_nthreads) -#elif GTEST_OS_FREEBSD || GTEST_OS_GNU_KFREEBSD -#define KP_NLWP(kp) (kp.ki_numthreads) -#elif GTEST_OS_NETBSD -#define KP_NLWP(kp) (kp.p_nlwps) -#endif - -// Returns the number of threads running in the process, or 0 to indicate that -// we cannot detect it. -size_t GetThreadCount() { - int mib[] = { - CTL_KERN, - KERN_PROC, - KERN_PROC_PID, - getpid(), -#if GTEST_OS_NETBSD - sizeof(struct kinfo_proc), - 1, -#endif - }; - u_int miblen = sizeof(mib) / sizeof(mib[0]); - struct kinfo_proc info; - size_t size = sizeof(info); - if (sysctl(mib, miblen, &info, &size, NULL, 0)) { - return 0; - } - return static_cast(KP_NLWP(info)); -} -#elif GTEST_OS_OPENBSD - -// Returns the number of threads running in the process, or 0 to indicate that -// we cannot detect it. -size_t GetThreadCount() { - int mib[] = { - CTL_KERN, - KERN_PROC, - KERN_PROC_PID | KERN_PROC_SHOW_THREADS, - getpid(), - sizeof(struct kinfo_proc), - 0, - }; - u_int miblen = sizeof(mib) / sizeof(mib[0]); - - // get number of structs - size_t size; - if (sysctl(mib, miblen, NULL, &size, NULL, 0)) { - return 0; - } - - mib[5] = static_cast(size / static_cast(mib[4])); - - // populate array of structs - struct kinfo_proc info[mib[5]]; - if (sysctl(mib, miblen, &info, &size, NULL, 0)) { - return 0; - } - - // exclude empty members - size_t nthreads = 0; - for (size_t i = 0; i < size / static_cast(mib[4]); i++) { - if (info[i].p_tid != -1) nthreads++; - } - return nthreads; -} - -#elif GTEST_OS_QNX - -// Returns the number of threads running in the process, or 0 to indicate that -// we cannot detect it. -size_t GetThreadCount() { - const int fd = open("/proc/self/as", O_RDONLY); - if (fd < 0) { - return 0; - } - procfs_info process_info; - const int status = - devctl(fd, DCMD_PROC_INFO, &process_info, sizeof(process_info), nullptr); - close(fd); - if (status == EOK) { - return static_cast(process_info.num_threads); - } else { - return 0; - } -} - -#elif GTEST_OS_AIX - -size_t GetThreadCount() { - struct procentry64 entry; - pid_t pid = getpid(); - int status = getprocs64(&entry, sizeof(entry), nullptr, 0, &pid, 1); - if (status == 1) { - return entry.pi_thcount; - } else { - return 0; - } -} - -#elif GTEST_OS_FUCHSIA - -size_t GetThreadCount() { - int dummy_buffer; - size_t avail; - zx_status_t status = - zx_object_get_info(zx_process_self(), ZX_INFO_PROCESS_THREADS, - &dummy_buffer, 0, nullptr, &avail); - if (status == ZX_OK) { - return avail; - } else { - return 0; - } -} - -#else - -size_t GetThreadCount() { - // There's no portable way to detect the number of threads, so we just - // return 0 to indicate that we cannot detect it. - return 0; -} - -#endif // GTEST_OS_LINUX - -#if GTEST_IS_THREADSAFE && GTEST_OS_WINDOWS - -AutoHandle::AutoHandle() : handle_(INVALID_HANDLE_VALUE) {} - -AutoHandle::AutoHandle(Handle handle) : handle_(handle) {} - -AutoHandle::~AutoHandle() { Reset(); } - -AutoHandle::Handle AutoHandle::Get() const { return handle_; } - -void AutoHandle::Reset() { Reset(INVALID_HANDLE_VALUE); } - -void AutoHandle::Reset(HANDLE handle) { - // Resetting with the same handle we already own is invalid. - if (handle_ != handle) { - if (IsCloseable()) { - ::CloseHandle(handle_); - } - handle_ = handle; - } else { - GTEST_CHECK_(!IsCloseable()) - << "Resetting a valid handle to itself is likely a programmer error " - "and thus not allowed."; - } -} - -bool AutoHandle::IsCloseable() const { - // Different Windows APIs may use either of these values to represent an - // invalid handle. - return handle_ != nullptr && handle_ != INVALID_HANDLE_VALUE; -} - -Mutex::Mutex() - : owner_thread_id_(0), - type_(kDynamic), - critical_section_init_phase_(0), - critical_section_(new CRITICAL_SECTION) { - ::InitializeCriticalSection(critical_section_); -} - -Mutex::~Mutex() { - // Static mutexes are leaked intentionally. It is not thread-safe to try - // to clean them up. - if (type_ == kDynamic) { - ::DeleteCriticalSection(critical_section_); - delete critical_section_; - critical_section_ = nullptr; - } -} - -void Mutex::Lock() { - ThreadSafeLazyInit(); - ::EnterCriticalSection(critical_section_); - owner_thread_id_ = ::GetCurrentThreadId(); -} - -void Mutex::Unlock() { - ThreadSafeLazyInit(); - // We don't protect writing to owner_thread_id_ here, as it's the - // caller's responsibility to ensure that the current thread holds the - // mutex when this is called. - owner_thread_id_ = 0; - ::LeaveCriticalSection(critical_section_); -} - -// Does nothing if the current thread holds the mutex. Otherwise, crashes -// with high probability. -void Mutex::AssertHeld() { - ThreadSafeLazyInit(); - GTEST_CHECK_(owner_thread_id_ == ::GetCurrentThreadId()) - << "The current thread is not holding the mutex @" << this; -} - -namespace { - -#ifdef _MSC_VER -// Use the RAII idiom to flag mem allocs that are intentionally never -// deallocated. The motivation is to silence the false positive mem leaks -// that are reported by the debug version of MS's CRT which can only detect -// if an alloc is missing a matching deallocation. -// Example: -// MemoryIsNotDeallocated memory_is_not_deallocated; -// critical_section_ = new CRITICAL_SECTION; -// -class MemoryIsNotDeallocated { - public: - MemoryIsNotDeallocated() : old_crtdbg_flag_(0) { - old_crtdbg_flag_ = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG); - // Set heap allocation block type to _IGNORE_BLOCK so that MS debug CRT - // doesn't report mem leak if there's no matching deallocation. - (void)_CrtSetDbgFlag(old_crtdbg_flag_ & ~_CRTDBG_ALLOC_MEM_DF); - } - - ~MemoryIsNotDeallocated() { - // Restore the original _CRTDBG_ALLOC_MEM_DF flag - (void)_CrtSetDbgFlag(old_crtdbg_flag_); - } - - private: - int old_crtdbg_flag_; - - MemoryIsNotDeallocated(const MemoryIsNotDeallocated&) = delete; - MemoryIsNotDeallocated& operator=(const MemoryIsNotDeallocated&) = delete; -}; -#endif // _MSC_VER - -} // namespace - -// Initializes owner_thread_id_ and critical_section_ in static mutexes. -void Mutex::ThreadSafeLazyInit() { - // Dynamic mutexes are initialized in the constructor. - if (type_ == kStatic) { - switch ( - ::InterlockedCompareExchange(&critical_section_init_phase_, 1L, 0L)) { - case 0: - // If critical_section_init_phase_ was 0 before the exchange, we - // are the first to test it and need to perform the initialization. - owner_thread_id_ = 0; - { - // Use RAII to flag that following mem alloc is never deallocated. -#ifdef _MSC_VER - MemoryIsNotDeallocated memory_is_not_deallocated; -#endif // _MSC_VER - critical_section_ = new CRITICAL_SECTION; - } - ::InitializeCriticalSection(critical_section_); - // Updates the critical_section_init_phase_ to 2 to signal - // initialization complete. - GTEST_CHECK_(::InterlockedCompareExchange(&critical_section_init_phase_, - 2L, 1L) == 1L); - break; - case 1: - // Somebody else is already initializing the mutex; spin until they - // are done. - while (::InterlockedCompareExchange(&critical_section_init_phase_, 2L, - 2L) != 2L) { - // Possibly yields the rest of the thread's time slice to other - // threads. - ::Sleep(0); - } - break; - - case 2: - break; // The mutex is already initialized and ready for use. - - default: - GTEST_CHECK_(false) - << "Unexpected value of critical_section_init_phase_ " - << "while initializing a static mutex."; - } - } -} - -namespace { - -class ThreadWithParamSupport : public ThreadWithParamBase { - public: - static HANDLE CreateThread(Runnable* runnable, - Notification* thread_can_start) { - ThreadMainParam* param = new ThreadMainParam(runnable, thread_can_start); - DWORD thread_id; - HANDLE thread_handle = ::CreateThread( - nullptr, // Default security. - 0, // Default stack size. - &ThreadWithParamSupport::ThreadMain, - param, // Parameter to ThreadMainStatic - 0x0, // Default creation flags. - &thread_id); // Need a valid pointer for the call to work under Win98. - GTEST_CHECK_(thread_handle != nullptr) - << "CreateThread failed with error " << ::GetLastError() << "."; - if (thread_handle == nullptr) { - delete param; - } - return thread_handle; - } - - private: - struct ThreadMainParam { - ThreadMainParam(Runnable* runnable, Notification* thread_can_start) - : runnable_(runnable), thread_can_start_(thread_can_start) {} - std::unique_ptr runnable_; - // Does not own. - Notification* thread_can_start_; - }; - - static DWORD WINAPI ThreadMain(void* ptr) { - // Transfers ownership. - std::unique_ptr param(static_cast(ptr)); - if (param->thread_can_start_ != nullptr) - param->thread_can_start_->WaitForNotification(); - param->runnable_->Run(); - return 0; - } - - // Prohibit instantiation. - ThreadWithParamSupport(); - - ThreadWithParamSupport(const ThreadWithParamSupport&) = delete; - ThreadWithParamSupport& operator=(const ThreadWithParamSupport&) = delete; -}; - -} // namespace - -ThreadWithParamBase::ThreadWithParamBase(Runnable* runnable, - Notification* thread_can_start) - : thread_( - ThreadWithParamSupport::CreateThread(runnable, thread_can_start)) {} - -ThreadWithParamBase::~ThreadWithParamBase() { Join(); } - -void ThreadWithParamBase::Join() { - GTEST_CHECK_(::WaitForSingleObject(thread_.Get(), INFINITE) == WAIT_OBJECT_0) - << "Failed to join the thread with error " << ::GetLastError() << "."; -} - -// Maps a thread to a set of ThreadIdToThreadLocals that have values -// instantiated on that thread and notifies them when the thread exits. A -// ThreadLocal instance is expected to persist until all threads it has -// values on have terminated. -class ThreadLocalRegistryImpl { - public: - // Registers thread_local_instance as having value on the current thread. - // Returns a value that can be used to identify the thread from other threads. - static ThreadLocalValueHolderBase* GetValueOnCurrentThread( - const ThreadLocalBase* thread_local_instance) { -#ifdef _MSC_VER - MemoryIsNotDeallocated memory_is_not_deallocated; -#endif // _MSC_VER - DWORD current_thread = ::GetCurrentThreadId(); - MutexLock lock(&mutex_); - ThreadIdToThreadLocals* const thread_to_thread_locals = - GetThreadLocalsMapLocked(); - ThreadIdToThreadLocals::iterator thread_local_pos = - thread_to_thread_locals->find(current_thread); - if (thread_local_pos == thread_to_thread_locals->end()) { - thread_local_pos = - thread_to_thread_locals - ->insert(std::make_pair(current_thread, ThreadLocalValues())) - .first; - StartWatcherThreadFor(current_thread); - } - ThreadLocalValues& thread_local_values = thread_local_pos->second; - ThreadLocalValues::iterator value_pos = - thread_local_values.find(thread_local_instance); - if (value_pos == thread_local_values.end()) { - value_pos = - thread_local_values - .insert(std::make_pair( - thread_local_instance, - std::shared_ptr( - thread_local_instance->NewValueForCurrentThread()))) - .first; - } - return value_pos->second.get(); - } - - static void OnThreadLocalDestroyed( - const ThreadLocalBase* thread_local_instance) { - std::vector > value_holders; - // Clean up the ThreadLocalValues data structure while holding the lock, but - // defer the destruction of the ThreadLocalValueHolderBases. - { - MutexLock lock(&mutex_); - ThreadIdToThreadLocals* const thread_to_thread_locals = - GetThreadLocalsMapLocked(); - for (ThreadIdToThreadLocals::iterator it = - thread_to_thread_locals->begin(); - it != thread_to_thread_locals->end(); ++it) { - ThreadLocalValues& thread_local_values = it->second; - ThreadLocalValues::iterator value_pos = - thread_local_values.find(thread_local_instance); - if (value_pos != thread_local_values.end()) { - value_holders.push_back(value_pos->second); - thread_local_values.erase(value_pos); - // This 'if' can only be successful at most once, so theoretically we - // could break out of the loop here, but we don't bother doing so. - } - } - } - // Outside the lock, let the destructor for 'value_holders' deallocate the - // ThreadLocalValueHolderBases. - } - - static void OnThreadExit(DWORD thread_id) { - GTEST_CHECK_(thread_id != 0) << ::GetLastError(); - std::vector > value_holders; - // Clean up the ThreadIdToThreadLocals data structure while holding the - // lock, but defer the destruction of the ThreadLocalValueHolderBases. - { - MutexLock lock(&mutex_); - ThreadIdToThreadLocals* const thread_to_thread_locals = - GetThreadLocalsMapLocked(); - ThreadIdToThreadLocals::iterator thread_local_pos = - thread_to_thread_locals->find(thread_id); - if (thread_local_pos != thread_to_thread_locals->end()) { - ThreadLocalValues& thread_local_values = thread_local_pos->second; - for (ThreadLocalValues::iterator value_pos = - thread_local_values.begin(); - value_pos != thread_local_values.end(); ++value_pos) { - value_holders.push_back(value_pos->second); - } - thread_to_thread_locals->erase(thread_local_pos); - } - } - // Outside the lock, let the destructor for 'value_holders' deallocate the - // ThreadLocalValueHolderBases. - } - - private: - // In a particular thread, maps a ThreadLocal object to its value. - typedef std::map > - ThreadLocalValues; - // Stores all ThreadIdToThreadLocals having values in a thread, indexed by - // thread's ID. - typedef std::map ThreadIdToThreadLocals; - - // Holds the thread id and thread handle that we pass from - // StartWatcherThreadFor to WatcherThreadFunc. - typedef std::pair ThreadIdAndHandle; - - static void StartWatcherThreadFor(DWORD thread_id) { - // The returned handle will be kept in thread_map and closed by - // watcher_thread in WatcherThreadFunc. - HANDLE thread = - ::OpenThread(SYNCHRONIZE | THREAD_QUERY_INFORMATION, FALSE, thread_id); - GTEST_CHECK_(thread != nullptr); - // We need to pass a valid thread ID pointer into CreateThread for it - // to work correctly under Win98. - DWORD watcher_thread_id; - HANDLE watcher_thread = ::CreateThread( - nullptr, // Default security. - 0, // Default stack size - &ThreadLocalRegistryImpl::WatcherThreadFunc, - reinterpret_cast(new ThreadIdAndHandle(thread_id, thread)), - CREATE_SUSPENDED, &watcher_thread_id); - GTEST_CHECK_(watcher_thread != nullptr) - << "CreateThread failed with error " << ::GetLastError() << "."; - // Give the watcher thread the same priority as ours to avoid being - // blocked by it. - ::SetThreadPriority(watcher_thread, - ::GetThreadPriority(::GetCurrentThread())); - ::ResumeThread(watcher_thread); - ::CloseHandle(watcher_thread); - } - - // Monitors exit from a given thread and notifies those - // ThreadIdToThreadLocals about thread termination. - static DWORD WINAPI WatcherThreadFunc(LPVOID param) { - const ThreadIdAndHandle* tah = - reinterpret_cast(param); - GTEST_CHECK_(::WaitForSingleObject(tah->second, INFINITE) == WAIT_OBJECT_0); - OnThreadExit(tah->first); - ::CloseHandle(tah->second); - delete tah; - return 0; - } - - // Returns map of thread local instances. - static ThreadIdToThreadLocals* GetThreadLocalsMapLocked() { - mutex_.AssertHeld(); -#ifdef _MSC_VER - MemoryIsNotDeallocated memory_is_not_deallocated; -#endif // _MSC_VER - static ThreadIdToThreadLocals* map = new ThreadIdToThreadLocals(); - return map; - } - - // Protects access to GetThreadLocalsMapLocked() and its return value. - static Mutex mutex_; - // Protects access to GetThreadMapLocked() and its return value. - static Mutex thread_map_mutex_; -}; - -Mutex ThreadLocalRegistryImpl::mutex_(Mutex::kStaticMutex); // NOLINT -Mutex ThreadLocalRegistryImpl::thread_map_mutex_( - Mutex::kStaticMutex); // NOLINT - -ThreadLocalValueHolderBase* ThreadLocalRegistry::GetValueOnCurrentThread( - const ThreadLocalBase* thread_local_instance) { - return ThreadLocalRegistryImpl::GetValueOnCurrentThread( - thread_local_instance); -} - -void ThreadLocalRegistry::OnThreadLocalDestroyed( - const ThreadLocalBase* thread_local_instance) { - ThreadLocalRegistryImpl::OnThreadLocalDestroyed(thread_local_instance); -} - -#endif // GTEST_IS_THREADSAFE && GTEST_OS_WINDOWS - -#if GTEST_USES_POSIX_RE - -// Implements RE. Currently only needed for death tests. - -RE::~RE() { - if (is_valid_) { - // regfree'ing an invalid regex might crash because the content - // of the regex is undefined. Since the regex's are essentially - // the same, one cannot be valid (or invalid) without the other - // being so too. - regfree(&partial_regex_); - regfree(&full_regex_); - } - free(const_cast(pattern_)); -} - -// Returns true if and only if regular expression re matches the entire str. -bool RE::FullMatch(const char* str, const RE& re) { - if (!re.is_valid_) return false; - - regmatch_t match; - return regexec(&re.full_regex_, str, 1, &match, 0) == 0; -} - -// Returns true if and only if regular expression re matches a substring of -// str (including str itself). -bool RE::PartialMatch(const char* str, const RE& re) { - if (!re.is_valid_) return false; - - regmatch_t match; - return regexec(&re.partial_regex_, str, 1, &match, 0) == 0; -} - -// Initializes an RE from its string representation. -void RE::Init(const char* regex) { - pattern_ = posix::StrDup(regex); - - // Reserves enough bytes to hold the regular expression used for a - // full match. - const size_t full_regex_len = strlen(regex) + 10; - char* const full_pattern = new char[full_regex_len]; - - snprintf(full_pattern, full_regex_len, "^(%s)$", regex); - is_valid_ = regcomp(&full_regex_, full_pattern, REG_EXTENDED) == 0; - // We want to call regcomp(&partial_regex_, ...) even if the - // previous expression returns false. Otherwise partial_regex_ may - // not be properly initialized can may cause trouble when it's - // freed. - // - // Some implementation of POSIX regex (e.g. on at least some - // versions of Cygwin) doesn't accept the empty string as a valid - // regex. We change it to an equivalent form "()" to be safe. - if (is_valid_) { - const char* const partial_regex = (*regex == '\0') ? "()" : regex; - is_valid_ = regcomp(&partial_regex_, partial_regex, REG_EXTENDED) == 0; - } - EXPECT_TRUE(is_valid_) - << "Regular expression \"" << regex - << "\" is not a valid POSIX Extended regular expression."; - - delete[] full_pattern; -} - -#elif GTEST_USES_SIMPLE_RE - -// Returns true if and only if ch appears anywhere in str (excluding the -// terminating '\0' character). -bool IsInSet(char ch, const char* str) { - return ch != '\0' && strchr(str, ch) != nullptr; -} - -// Returns true if and only if ch belongs to the given classification. -// Unlike similar functions in , these aren't affected by the -// current locale. -bool IsAsciiDigit(char ch) { return '0' <= ch && ch <= '9'; } -bool IsAsciiPunct(char ch) { - return IsInSet(ch, "^-!\"#$%&'()*+,./:;<=>?@[\\]_`{|}~"); -} -bool IsRepeat(char ch) { return IsInSet(ch, "?*+"); } -bool IsAsciiWhiteSpace(char ch) { return IsInSet(ch, " \f\n\r\t\v"); } -bool IsAsciiWordChar(char ch) { - return ('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z') || - ('0' <= ch && ch <= '9') || ch == '_'; -} - -// Returns true if and only if "\\c" is a supported escape sequence. -bool IsValidEscape(char c) { - return (IsAsciiPunct(c) || IsInSet(c, "dDfnrsStvwW")); -} - -// Returns true if and only if the given atom (specified by escaped and -// pattern) matches ch. The result is undefined if the atom is invalid. -bool AtomMatchesChar(bool escaped, char pattern_char, char ch) { - if (escaped) { // "\\p" where p is pattern_char. - switch (pattern_char) { - case 'd': - return IsAsciiDigit(ch); - case 'D': - return !IsAsciiDigit(ch); - case 'f': - return ch == '\f'; - case 'n': - return ch == '\n'; - case 'r': - return ch == '\r'; - case 's': - return IsAsciiWhiteSpace(ch); - case 'S': - return !IsAsciiWhiteSpace(ch); - case 't': - return ch == '\t'; - case 'v': - return ch == '\v'; - case 'w': - return IsAsciiWordChar(ch); - case 'W': - return !IsAsciiWordChar(ch); - } - return IsAsciiPunct(pattern_char) && pattern_char == ch; - } - - return (pattern_char == '.' && ch != '\n') || pattern_char == ch; -} - -// Helper function used by ValidateRegex() to format error messages. -static std::string FormatRegexSyntaxError(const char* regex, int index) { - return (Message() << "Syntax error at index " << index - << " in simple regular expression \"" << regex << "\": ") - .GetString(); -} - -// Generates non-fatal failures and returns false if regex is invalid; -// otherwise returns true. -bool ValidateRegex(const char* regex) { - if (regex == nullptr) { - ADD_FAILURE() << "NULL is not a valid simple regular expression."; - return false; - } - - bool is_valid = true; - - // True if and only if ?, *, or + can follow the previous atom. - bool prev_repeatable = false; - for (int i = 0; regex[i]; i++) { - if (regex[i] == '\\') { // An escape sequence - i++; - if (regex[i] == '\0') { - ADD_FAILURE() << FormatRegexSyntaxError(regex, i - 1) - << "'\\' cannot appear at the end."; - return false; - } - - if (!IsValidEscape(regex[i])) { - ADD_FAILURE() << FormatRegexSyntaxError(regex, i - 1) - << "invalid escape sequence \"\\" << regex[i] << "\"."; - is_valid = false; - } - prev_repeatable = true; - } else { // Not an escape sequence. - const char ch = regex[i]; - - if (ch == '^' && i > 0) { - ADD_FAILURE() << FormatRegexSyntaxError(regex, i) - << "'^' can only appear at the beginning."; - is_valid = false; - } else if (ch == '$' && regex[i + 1] != '\0') { - ADD_FAILURE() << FormatRegexSyntaxError(regex, i) - << "'$' can only appear at the end."; - is_valid = false; - } else if (IsInSet(ch, "()[]{}|")) { - ADD_FAILURE() << FormatRegexSyntaxError(regex, i) << "'" << ch - << "' is unsupported."; - is_valid = false; - } else if (IsRepeat(ch) && !prev_repeatable) { - ADD_FAILURE() << FormatRegexSyntaxError(regex, i) << "'" << ch - << "' can only follow a repeatable token."; - is_valid = false; - } - - prev_repeatable = !IsInSet(ch, "^$?*+"); - } - } - - return is_valid; -} - -// Matches a repeated regex atom followed by a valid simple regular -// expression. The regex atom is defined as c if escaped is false, -// or \c otherwise. repeat is the repetition meta character (?, *, -// or +). The behavior is undefined if str contains too many -// characters to be indexable by size_t, in which case the test will -// probably time out anyway. We are fine with this limitation as -// std::string has it too. -bool MatchRepetitionAndRegexAtHead(bool escaped, char c, char repeat, - const char* regex, const char* str) { - const size_t min_count = (repeat == '+') ? 1 : 0; - const size_t max_count = (repeat == '?') ? 1 : static_cast(-1) - 1; - // We cannot call numeric_limits::max() as it conflicts with the - // max() macro on Windows. - - for (size_t i = 0; i <= max_count; ++i) { - // We know that the atom matches each of the first i characters in str. - if (i >= min_count && MatchRegexAtHead(regex, str + i)) { - // We have enough matches at the head, and the tail matches too. - // Since we only care about *whether* the pattern matches str - // (as opposed to *how* it matches), there is no need to find a - // greedy match. - return true; - } - if (str[i] == '\0' || !AtomMatchesChar(escaped, c, str[i])) return false; - } - return false; -} - -// Returns true if and only if regex matches a prefix of str. regex must -// be a valid simple regular expression and not start with "^", or the -// result is undefined. -bool MatchRegexAtHead(const char* regex, const char* str) { - if (*regex == '\0') // An empty regex matches a prefix of anything. - return true; - - // "$" only matches the end of a string. Note that regex being - // valid guarantees that there's nothing after "$" in it. - if (*regex == '$') return *str == '\0'; - - // Is the first thing in regex an escape sequence? - const bool escaped = *regex == '\\'; - if (escaped) ++regex; - if (IsRepeat(regex[1])) { - // MatchRepetitionAndRegexAtHead() calls MatchRegexAtHead(), so - // here's an indirect recursion. It terminates as the regex gets - // shorter in each recursion. - return MatchRepetitionAndRegexAtHead(escaped, regex[0], regex[1], regex + 2, - str); - } else { - // regex isn't empty, isn't "$", and doesn't start with a - // repetition. We match the first atom of regex with the first - // character of str and recurse. - return (*str != '\0') && AtomMatchesChar(escaped, *regex, *str) && - MatchRegexAtHead(regex + 1, str + 1); - } -} - -// Returns true if and only if regex matches any substring of str. regex must -// be a valid simple regular expression, or the result is undefined. -// -// The algorithm is recursive, but the recursion depth doesn't exceed -// the regex length, so we won't need to worry about running out of -// stack space normally. In rare cases the time complexity can be -// exponential with respect to the regex length + the string length, -// but usually it's must faster (often close to linear). -bool MatchRegexAnywhere(const char* regex, const char* str) { - if (regex == nullptr || str == nullptr) return false; - - if (*regex == '^') return MatchRegexAtHead(regex + 1, str); - - // A successful match can be anywhere in str. - do { - if (MatchRegexAtHead(regex, str)) return true; - } while (*str++ != '\0'); - return false; -} - -// Implements the RE class. - -RE::~RE() { - free(const_cast(pattern_)); - free(const_cast(full_pattern_)); -} - -// Returns true if and only if regular expression re matches the entire str. -bool RE::FullMatch(const char* str, const RE& re) { - return re.is_valid_ && MatchRegexAnywhere(re.full_pattern_, str); -} - -// Returns true if and only if regular expression re matches a substring of -// str (including str itself). -bool RE::PartialMatch(const char* str, const RE& re) { - return re.is_valid_ && MatchRegexAnywhere(re.pattern_, str); -} - -// Initializes an RE from its string representation. -void RE::Init(const char* regex) { - pattern_ = full_pattern_ = nullptr; - if (regex != nullptr) { - pattern_ = posix::StrDup(regex); - } - - is_valid_ = ValidateRegex(regex); - if (!is_valid_) { - // No need to calculate the full pattern when the regex is invalid. - return; - } - - const size_t len = strlen(regex); - // Reserves enough bytes to hold the regular expression used for a - // full match: we need space to prepend a '^', append a '$', and - // terminate the string with '\0'. - char* buffer = static_cast(malloc(len + 3)); - full_pattern_ = buffer; - - if (*regex != '^') - *buffer++ = '^'; // Makes sure full_pattern_ starts with '^'. - - // We don't use snprintf or strncpy, as they trigger a warning when - // compiled with VC++ 8.0. - memcpy(buffer, regex, len); - buffer += len; - - if (len == 0 || regex[len - 1] != '$') - *buffer++ = '$'; // Makes sure full_pattern_ ends with '$'. - - *buffer = '\0'; -} - -#endif // GTEST_USES_POSIX_RE - -const char kUnknownFile[] = "unknown file"; - -// Formats a source file path and a line number as they would appear -// in an error message from the compiler used to compile this code. -GTEST_API_ ::std::string FormatFileLocation(const char* file, int line) { - const std::string file_name(file == nullptr ? kUnknownFile : file); - - if (line < 0) { - return file_name + ":"; - } -#ifdef _MSC_VER - return file_name + "(" + StreamableToString(line) + "):"; -#else - return file_name + ":" + StreamableToString(line) + ":"; -#endif // _MSC_VER -} - -// Formats a file location for compiler-independent XML output. -// Although this function is not platform dependent, we put it next to -// FormatFileLocation in order to contrast the two functions. -// Note that FormatCompilerIndependentFileLocation() does NOT append colon -// to the file location it produces, unlike FormatFileLocation(). -GTEST_API_ ::std::string FormatCompilerIndependentFileLocation(const char* file, - int line) { - const std::string file_name(file == nullptr ? kUnknownFile : file); - - if (line < 0) - return file_name; - else - return file_name + ":" + StreamableToString(line); -} - -GTestLog::GTestLog(GTestLogSeverity severity, const char* file, int line) - : severity_(severity) { - const char* const marker = severity == GTEST_INFO ? "[ INFO ]" - : severity == GTEST_WARNING ? "[WARNING]" - : severity == GTEST_ERROR ? "[ ERROR ]" - : "[ FATAL ]"; - GetStream() << ::std::endl - << marker << " " << FormatFileLocation(file, line).c_str() - << ": "; -} - -// Flushes the buffers and, if severity is GTEST_FATAL, aborts the program. -GTestLog::~GTestLog() { - GetStream() << ::std::endl; - if (severity_ == GTEST_FATAL) { - fflush(stderr); - posix::Abort(); - } -} - -// Disable Microsoft deprecation warnings for POSIX functions called from -// this class (creat, dup, dup2, and close) -GTEST_DISABLE_MSC_DEPRECATED_PUSH_() - -#if GTEST_HAS_STREAM_REDIRECTION - -// Object that captures an output stream (stdout/stderr). -class CapturedStream { - public: - // The ctor redirects the stream to a temporary file. - explicit CapturedStream(int fd) : fd_(fd), uncaptured_fd_(dup(fd)) { -#if GTEST_OS_WINDOWS - char temp_dir_path[MAX_PATH + 1] = {'\0'}; // NOLINT - char temp_file_path[MAX_PATH + 1] = {'\0'}; // NOLINT - - ::GetTempPathA(sizeof(temp_dir_path), temp_dir_path); - const UINT success = ::GetTempFileNameA(temp_dir_path, "gtest_redir", - 0, // Generate unique file name. - temp_file_path); - GTEST_CHECK_(success != 0) - << "Unable to create a temporary file in " << temp_dir_path; - const int captured_fd = creat(temp_file_path, _S_IREAD | _S_IWRITE); - GTEST_CHECK_(captured_fd != -1) - << "Unable to open temporary file " << temp_file_path; - filename_ = temp_file_path; -#else - // There's no guarantee that a test has write access to the current - // directory, so we create the temporary file in a temporary directory. - std::string name_template; - -#if GTEST_OS_LINUX_ANDROID - // Note: Android applications are expected to call the framework's - // Context.getExternalStorageDirectory() method through JNI to get - // the location of the world-writable SD Card directory. However, - // this requires a Context handle, which cannot be retrieved - // globally from native code. Doing so also precludes running the - // code as part of a regular standalone executable, which doesn't - // run in a Dalvik process (e.g. when running it through 'adb shell'). - // - // The location /data/local/tmp is directly accessible from native code. - // '/sdcard' and other variants cannot be relied on, as they are not - // guaranteed to be mounted, or may have a delay in mounting. - name_template = "/data/local/tmp/"; -#elif GTEST_OS_IOS - char user_temp_dir[PATH_MAX + 1]; - - // Documented alternative to NSTemporaryDirectory() (for obtaining creating - // a temporary directory) at - // https://developer.apple.com/library/archive/documentation/Security/Conceptual/SecureCodingGuide/Articles/RaceConditions.html#//apple_ref/doc/uid/TP40002585-SW10 - // - // _CS_DARWIN_USER_TEMP_DIR (as well as _CS_DARWIN_USER_CACHE_DIR) is not - // documented in the confstr() man page at - // https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/confstr.3.html#//apple_ref/doc/man/3/confstr - // but are still available, according to the WebKit patches at - // https://trac.webkit.org/changeset/262004/webkit - // https://trac.webkit.org/changeset/263705/webkit - // - // The confstr() implementation falls back to getenv("TMPDIR"). See - // https://opensource.apple.com/source/Libc/Libc-1439.100.3/gen/confstr.c.auto.html - ::confstr(_CS_DARWIN_USER_TEMP_DIR, user_temp_dir, sizeof(user_temp_dir)); - - name_template = user_temp_dir; - if (name_template.back() != GTEST_PATH_SEP_[0]) - name_template.push_back(GTEST_PATH_SEP_[0]); -#else - name_template = "/tmp/"; -#endif - name_template.append("gtest_captured_stream.XXXXXX"); - - // mkstemp() modifies the string bytes in place, and does not go beyond the - // string's length. This results in well-defined behavior in C++17. - // - // The const_cast is needed below C++17. The constraints on std::string - // implementations in C++11 and above make assumption behind the const_cast - // fairly safe. - const int captured_fd = ::mkstemp(const_cast(name_template.data())); - if (captured_fd == -1) { - GTEST_LOG_(WARNING) - << "Failed to create tmp file " << name_template - << " for test; does the test have access to the /tmp directory?"; - } - filename_ = std::move(name_template); -#endif // GTEST_OS_WINDOWS - fflush(nullptr); - dup2(captured_fd, fd_); - close(captured_fd); - } - - ~CapturedStream() { remove(filename_.c_str()); } - - std::string GetCapturedString() { - if (uncaptured_fd_ != -1) { - // Restores the original stream. - fflush(nullptr); - dup2(uncaptured_fd_, fd_); - close(uncaptured_fd_); - uncaptured_fd_ = -1; - } - - FILE* const file = posix::FOpen(filename_.c_str(), "r"); - if (file == nullptr) { - GTEST_LOG_(FATAL) << "Failed to open tmp file " << filename_ - << " for capturing stream."; - } - const std::string content = ReadEntireFile(file); - posix::FClose(file); - return content; - } - - private: - const int fd_; // A stream to capture. - int uncaptured_fd_; - // Name of the temporary file holding the stderr output. - ::std::string filename_; - - CapturedStream(const CapturedStream&) = delete; - CapturedStream& operator=(const CapturedStream&) = delete; -}; - -GTEST_DISABLE_MSC_DEPRECATED_POP_() - -static CapturedStream* g_captured_stderr = nullptr; -static CapturedStream* g_captured_stdout = nullptr; - -// Starts capturing an output stream (stdout/stderr). -static void CaptureStream(int fd, const char* stream_name, - CapturedStream** stream) { - if (*stream != nullptr) { - GTEST_LOG_(FATAL) << "Only one " << stream_name - << " capturer can exist at a time."; - } - *stream = new CapturedStream(fd); -} - -// Stops capturing the output stream and returns the captured string. -static std::string GetCapturedStream(CapturedStream** captured_stream) { - const std::string content = (*captured_stream)->GetCapturedString(); - - delete *captured_stream; - *captured_stream = nullptr; - - return content; -} - -#if defined(_MSC_VER) || defined(__BORLANDC__) -// MSVC and C++Builder do not provide a definition of STDERR_FILENO. -const int kStdOutFileno = 1; -const int kStdErrFileno = 2; -#else -const int kStdOutFileno = STDOUT_FILENO; -const int kStdErrFileno = STDERR_FILENO; -#endif // defined(_MSC_VER) || defined(__BORLANDC__) - -// Starts capturing stdout. -void CaptureStdout() { - CaptureStream(kStdOutFileno, "stdout", &g_captured_stdout); -} - -// Starts capturing stderr. -void CaptureStderr() { - CaptureStream(kStdErrFileno, "stderr", &g_captured_stderr); -} - -// Stops capturing stdout and returns the captured string. -std::string GetCapturedStdout() { - return GetCapturedStream(&g_captured_stdout); -} - -// Stops capturing stderr and returns the captured string. -std::string GetCapturedStderr() { - return GetCapturedStream(&g_captured_stderr); -} - -#endif // GTEST_HAS_STREAM_REDIRECTION - -size_t GetFileSize(FILE* file) { - fseek(file, 0, SEEK_END); - return static_cast(ftell(file)); -} - -std::string ReadEntireFile(FILE* file) { - const size_t file_size = GetFileSize(file); - char* const buffer = new char[file_size]; - - size_t bytes_last_read = 0; // # of bytes read in the last fread() - size_t bytes_read = 0; // # of bytes read so far - - fseek(file, 0, SEEK_SET); - - // Keeps reading the file until we cannot read further or the - // pre-determined file size is reached. - do { - bytes_last_read = - fread(buffer + bytes_read, 1, file_size - bytes_read, file); - bytes_read += bytes_last_read; - } while (bytes_last_read > 0 && bytes_read < file_size); - - const std::string content(buffer, bytes_read); - delete[] buffer; - - return content; -} - -#if GTEST_HAS_DEATH_TEST -static const std::vector* g_injected_test_argvs = - nullptr; // Owned. - -std::vector GetInjectableArgvs() { - if (g_injected_test_argvs != nullptr) { - return *g_injected_test_argvs; - } - return GetArgvs(); -} - -void SetInjectableArgvs(const std::vector* new_argvs) { - if (g_injected_test_argvs != new_argvs) delete g_injected_test_argvs; - g_injected_test_argvs = new_argvs; -} - -void SetInjectableArgvs(const std::vector& new_argvs) { - SetInjectableArgvs( - new std::vector(new_argvs.begin(), new_argvs.end())); -} - -void ClearInjectableArgvs() { - delete g_injected_test_argvs; - g_injected_test_argvs = nullptr; -} -#endif // GTEST_HAS_DEATH_TEST - -#if GTEST_OS_WINDOWS_MOBILE -namespace posix { -void Abort() { - DebugBreak(); - TerminateProcess(GetCurrentProcess(), 1); -} -} // namespace posix -#endif // GTEST_OS_WINDOWS_MOBILE - -// Returns the name of the environment variable corresponding to the -// given flag. For example, FlagToEnvVar("foo") will return -// "GTEST_FOO" in the open-source version. -static std::string FlagToEnvVar(const char* flag) { - const std::string full_flag = - (Message() << GTEST_FLAG_PREFIX_ << flag).GetString(); - - Message env_var; - for (size_t i = 0; i != full_flag.length(); i++) { - env_var << ToUpper(full_flag.c_str()[i]); - } - - return env_var.GetString(); -} - -// Parses 'str' for a 32-bit signed integer. If successful, writes -// the result to *value and returns true; otherwise leaves *value -// unchanged and returns false. -bool ParseInt32(const Message& src_text, const char* str, int32_t* value) { - // Parses the environment variable as a decimal integer. - char* end = nullptr; - const long long_value = strtol(str, &end, 10); // NOLINT - - // Has strtol() consumed all characters in the string? - if (*end != '\0') { - // No - an invalid character was encountered. - Message msg; - msg << "WARNING: " << src_text - << " is expected to be a 32-bit integer, but actually" - << " has value \"" << str << "\".\n"; - printf("%s", msg.GetString().c_str()); - fflush(stdout); - return false; - } - - // Is the parsed value in the range of an int32_t? - const auto result = static_cast(long_value); - if (long_value == LONG_MAX || long_value == LONG_MIN || - // The parsed value overflows as a long. (strtol() returns - // LONG_MAX or LONG_MIN when the input overflows.) - result != long_value - // The parsed value overflows as an int32_t. - ) { - Message msg; - msg << "WARNING: " << src_text - << " is expected to be a 32-bit integer, but actually" - << " has value " << str << ", which overflows.\n"; - printf("%s", msg.GetString().c_str()); - fflush(stdout); - return false; - } - - *value = result; - return true; -} - -// Reads and returns the Boolean environment variable corresponding to -// the given flag; if it's not set, returns default_value. -// -// The value is considered true if and only if it's not "0". -bool BoolFromGTestEnv(const char* flag, bool default_value) { -#if defined(GTEST_GET_BOOL_FROM_ENV_) - return GTEST_GET_BOOL_FROM_ENV_(flag, default_value); -#else - const std::string env_var = FlagToEnvVar(flag); - const char* const string_value = posix::GetEnv(env_var.c_str()); - return string_value == nullptr ? default_value - : strcmp(string_value, "0") != 0; -#endif // defined(GTEST_GET_BOOL_FROM_ENV_) -} - -// Reads and returns a 32-bit integer stored in the environment -// variable corresponding to the given flag; if it isn't set or -// doesn't represent a valid 32-bit integer, returns default_value. -int32_t Int32FromGTestEnv(const char* flag, int32_t default_value) { -#if defined(GTEST_GET_INT32_FROM_ENV_) - return GTEST_GET_INT32_FROM_ENV_(flag, default_value); -#else - const std::string env_var = FlagToEnvVar(flag); - const char* const string_value = posix::GetEnv(env_var.c_str()); - if (string_value == nullptr) { - // The environment variable is not set. - return default_value; - } - - int32_t result = default_value; - if (!ParseInt32(Message() << "Environment variable " << env_var, string_value, - &result)) { - printf("The default value %s is used.\n", - (Message() << default_value).GetString().c_str()); - fflush(stdout); - return default_value; - } - - return result; -#endif // defined(GTEST_GET_INT32_FROM_ENV_) -} - -// As a special case for the 'output' flag, if GTEST_OUTPUT is not -// set, we look for XML_OUTPUT_FILE, which is set by the Bazel build -// system. The value of XML_OUTPUT_FILE is a filename without the -// "xml:" prefix of GTEST_OUTPUT. -// Note that this is meant to be called at the call site so it does -// not check that the flag is 'output' -// In essence this checks an env variable called XML_OUTPUT_FILE -// and if it is set we prepend "xml:" to its value, if it not set we return "" -std::string OutputFlagAlsoCheckEnvVar() { - std::string default_value_for_output_flag = ""; - const char* xml_output_file_env = posix::GetEnv("XML_OUTPUT_FILE"); - if (nullptr != xml_output_file_env) { - default_value_for_output_flag = std::string("xml:") + xml_output_file_env; - } - return default_value_for_output_flag; -} - -// Reads and returns the string environment variable corresponding to -// the given flag; if it's not set, returns default_value. -const char* StringFromGTestEnv(const char* flag, const char* default_value) { -#if defined(GTEST_GET_STRING_FROM_ENV_) - return GTEST_GET_STRING_FROM_ENV_(flag, default_value); -#else - const std::string env_var = FlagToEnvVar(flag); - const char* const value = posix::GetEnv(env_var.c_str()); - return value == nullptr ? default_value : value; -#endif // defined(GTEST_GET_STRING_FROM_ENV_) -} - -} // namespace internal -} // namespace testing diff --git a/libs/cpp-httplib/test/gtest/src/gtest-printers.cc b/libs/cpp-httplib/test/gtest/src/gtest-printers.cc deleted file mode 100644 index f3976d2..0000000 --- a/libs/cpp-httplib/test/gtest/src/gtest-printers.cc +++ /dev/null @@ -1,553 +0,0 @@ -// Copyright 2007, 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. - -// Google Test - The Google C++ Testing and Mocking Framework -// -// This file implements a universal value printer that can print a -// value of any type T: -// -// void ::testing::internal::UniversalPrinter::Print(value, ostream_ptr); -// -// It uses the << operator when possible, and prints the bytes in the -// object otherwise. A user can override its behavior for a class -// type Foo by defining either operator<<(::std::ostream&, const Foo&) -// or void PrintTo(const Foo&, ::std::ostream*) in the namespace that -// defines Foo. - -#include "gtest/gtest-printers.h" - -#include - -#include -#include -#include -#include // NOLINT -#include -#include - -#include "gtest/internal/gtest-port.h" -#include "src/gtest-internal-inl.h" - -namespace testing { - -namespace { - -using ::std::ostream; - -// Prints a segment of bytes in the given object. -GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ -GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ -GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ -GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ -void PrintByteSegmentInObjectTo(const unsigned char* obj_bytes, size_t start, - size_t count, ostream* os) { - char text[5] = ""; - for (size_t i = 0; i != count; i++) { - const size_t j = start + i; - if (i != 0) { - // Organizes the bytes into groups of 2 for easy parsing by - // human. - if ((j % 2) == 0) - *os << ' '; - else - *os << '-'; - } - GTEST_SNPRINTF_(text, sizeof(text), "%02X", obj_bytes[j]); - *os << text; - } -} - -// Prints the bytes in the given value to the given ostream. -void PrintBytesInObjectToImpl(const unsigned char* obj_bytes, size_t count, - ostream* os) { - // Tells the user how big the object is. - *os << count << "-byte object <"; - - const size_t kThreshold = 132; - const size_t kChunkSize = 64; - // If the object size is bigger than kThreshold, we'll have to omit - // some details by printing only the first and the last kChunkSize - // bytes. - if (count < kThreshold) { - PrintByteSegmentInObjectTo(obj_bytes, 0, count, os); - } else { - PrintByteSegmentInObjectTo(obj_bytes, 0, kChunkSize, os); - *os << " ... "; - // Rounds up to 2-byte boundary. - const size_t resume_pos = (count - kChunkSize + 1) / 2 * 2; - PrintByteSegmentInObjectTo(obj_bytes, resume_pos, count - resume_pos, os); - } - *os << ">"; -} - -// Helpers for widening a character to char32_t. Since the standard does not -// specify if char / wchar_t is signed or unsigned, it is important to first -// convert it to the unsigned type of the same width before widening it to -// char32_t. -template -char32_t ToChar32(CharType in) { - return static_cast( - static_cast::type>(in)); -} - -} // namespace - -namespace internal { - -// Delegates to PrintBytesInObjectToImpl() to print the bytes in the -// given object. The delegation simplifies the implementation, which -// uses the << operator and thus is easier done outside of the -// ::testing::internal namespace, which contains a << operator that -// sometimes conflicts with the one in STL. -void PrintBytesInObjectTo(const unsigned char* obj_bytes, size_t count, - ostream* os) { - PrintBytesInObjectToImpl(obj_bytes, count, os); -} - -// Depending on the value of a char (or wchar_t), we print it in one -// of three formats: -// - as is if it's a printable ASCII (e.g. 'a', '2', ' '), -// - as a hexadecimal escape sequence (e.g. '\x7F'), or -// - as a special escape sequence (e.g. '\r', '\n'). -enum CharFormat { kAsIs, kHexEscape, kSpecialEscape }; - -// Returns true if c is a printable ASCII character. We test the -// value of c directly instead of calling isprint(), which is buggy on -// Windows Mobile. -inline bool IsPrintableAscii(char32_t c) { return 0x20 <= c && c <= 0x7E; } - -// Prints c (of type char, char8_t, char16_t, char32_t, or wchar_t) as a -// character literal without the quotes, escaping it when necessary; returns how -// c was formatted. -template -static CharFormat PrintAsCharLiteralTo(Char c, ostream* os) { - const char32_t u_c = ToChar32(c); - switch (u_c) { - case L'\0': - *os << "\\0"; - break; - case L'\'': - *os << "\\'"; - break; - case L'\\': - *os << "\\\\"; - break; - case L'\a': - *os << "\\a"; - break; - case L'\b': - *os << "\\b"; - break; - case L'\f': - *os << "\\f"; - break; - case L'\n': - *os << "\\n"; - break; - case L'\r': - *os << "\\r"; - break; - case L'\t': - *os << "\\t"; - break; - case L'\v': - *os << "\\v"; - break; - default: - if (IsPrintableAscii(u_c)) { - *os << static_cast(c); - return kAsIs; - } else { - ostream::fmtflags flags = os->flags(); - *os << "\\x" << std::hex << std::uppercase << static_cast(u_c); - os->flags(flags); - return kHexEscape; - } - } - return kSpecialEscape; -} - -// Prints a char32_t c as if it's part of a string literal, escaping it when -// necessary; returns how c was formatted. -static CharFormat PrintAsStringLiteralTo(char32_t c, ostream* os) { - switch (c) { - case L'\'': - *os << "'"; - return kAsIs; - case L'"': - *os << "\\\""; - return kSpecialEscape; - default: - return PrintAsCharLiteralTo(c, os); - } -} - -static const char* GetCharWidthPrefix(char) { return ""; } - -static const char* GetCharWidthPrefix(signed char) { return ""; } - -static const char* GetCharWidthPrefix(unsigned char) { return ""; } - -#ifdef __cpp_char8_t -static const char* GetCharWidthPrefix(char8_t) { return "u8"; } -#endif - -static const char* GetCharWidthPrefix(char16_t) { return "u"; } - -static const char* GetCharWidthPrefix(char32_t) { return "U"; } - -static const char* GetCharWidthPrefix(wchar_t) { return "L"; } - -// Prints a char c as if it's part of a string literal, escaping it when -// necessary; returns how c was formatted. -static CharFormat PrintAsStringLiteralTo(char c, ostream* os) { - return PrintAsStringLiteralTo(ToChar32(c), os); -} - -#ifdef __cpp_char8_t -static CharFormat PrintAsStringLiteralTo(char8_t c, ostream* os) { - return PrintAsStringLiteralTo(ToChar32(c), os); -} -#endif - -static CharFormat PrintAsStringLiteralTo(char16_t c, ostream* os) { - return PrintAsStringLiteralTo(ToChar32(c), os); -} - -static CharFormat PrintAsStringLiteralTo(wchar_t c, ostream* os) { - return PrintAsStringLiteralTo(ToChar32(c), os); -} - -// Prints a character c (of type char, char8_t, char16_t, char32_t, or wchar_t) -// and its code. '\0' is printed as "'\\0'", other unprintable characters are -// also properly escaped using the standard C++ escape sequence. -template -void PrintCharAndCodeTo(Char c, ostream* os) { - // First, print c as a literal in the most readable form we can find. - *os << GetCharWidthPrefix(c) << "'"; - const CharFormat format = PrintAsCharLiteralTo(c, os); - *os << "'"; - - // To aid user debugging, we also print c's code in decimal, unless - // it's 0 (in which case c was printed as '\\0', making the code - // obvious). - if (c == 0) return; - *os << " (" << static_cast(c); - - // For more convenience, we print c's code again in hexadecimal, - // unless c was already printed in the form '\x##' or the code is in - // [1, 9]. - if (format == kHexEscape || (1 <= c && c <= 9)) { - // Do nothing. - } else { - *os << ", 0x" << String::FormatHexInt(static_cast(c)); - } - *os << ")"; -} - -void PrintTo(unsigned char c, ::std::ostream* os) { PrintCharAndCodeTo(c, os); } -void PrintTo(signed char c, ::std::ostream* os) { PrintCharAndCodeTo(c, os); } - -// Prints a wchar_t as a symbol if it is printable or as its internal -// code otherwise and also as its code. L'\0' is printed as "L'\\0'". -void PrintTo(wchar_t wc, ostream* os) { PrintCharAndCodeTo(wc, os); } - -// TODO(dcheng): Consider making this delegate to PrintCharAndCodeTo() as well. -void PrintTo(char32_t c, ::std::ostream* os) { - *os << std::hex << "U+" << std::uppercase << std::setfill('0') << std::setw(4) - << static_cast(c); -} - -// gcc/clang __{u,}int128_t -#if defined(__SIZEOF_INT128__) -void PrintTo(__uint128_t v, ::std::ostream* os) { - if (v == 0) { - *os << "0"; - return; - } - - // Buffer large enough for ceil(log10(2^128))==39 and the null terminator - char buf[40]; - char* p = buf + sizeof(buf); - - // Some configurations have a __uint128_t, but no support for built in - // division. Do manual long division instead. - - uint64_t high = static_cast(v >> 64); - uint64_t low = static_cast(v); - - *--p = 0; - while (high != 0 || low != 0) { - uint64_t high_mod = high % 10; - high = high / 10; - // This is the long division algorithm specialized for a divisor of 10 and - // only two elements. - // Notable values: - // 2^64 / 10 == 1844674407370955161 - // 2^64 % 10 == 6 - const uint64_t carry = 6 * high_mod + low % 10; - low = low / 10 + high_mod * 1844674407370955161 + carry / 10; - - char digit = static_cast(carry % 10); - *--p = '0' + digit; - } - *os << p; -} -void PrintTo(__int128_t v, ::std::ostream* os) { - __uint128_t uv = static_cast<__uint128_t>(v); - if (v < 0) { - *os << "-"; - uv = -uv; - } - PrintTo(uv, os); -} -#endif // __SIZEOF_INT128__ - -// Prints the given array of characters to the ostream. CharType must be either -// char, char8_t, char16_t, char32_t, or wchar_t. -// The array starts at begin, the length is len, it may include '\0' characters -// and may not be NUL-terminated. -template -GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ - GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ - GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ static CharFormat - PrintCharsAsStringTo(const CharType* begin, size_t len, ostream* os) { - const char* const quote_prefix = GetCharWidthPrefix(*begin); - *os << quote_prefix << "\""; - bool is_previous_hex = false; - CharFormat print_format = kAsIs; - for (size_t index = 0; index < len; ++index) { - const CharType cur = begin[index]; - if (is_previous_hex && IsXDigit(cur)) { - // Previous character is of '\x..' form and this character can be - // interpreted as another hexadecimal digit in its number. Break string to - // disambiguate. - *os << "\" " << quote_prefix << "\""; - } - is_previous_hex = PrintAsStringLiteralTo(cur, os) == kHexEscape; - // Remember if any characters required hex escaping. - if (is_previous_hex) { - print_format = kHexEscape; - } - } - *os << "\""; - return print_format; -} - -// Prints a (const) char/wchar_t array of 'len' elements, starting at address -// 'begin'. CharType must be either char or wchar_t. -template -GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ - GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ - GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ static void - UniversalPrintCharArray(const CharType* begin, size_t len, - ostream* os) { - // The code - // const char kFoo[] = "foo"; - // generates an array of 4, not 3, elements, with the last one being '\0'. - // - // Therefore when printing a char array, we don't print the last element if - // it's '\0', such that the output matches the string literal as it's - // written in the source code. - if (len > 0 && begin[len - 1] == '\0') { - PrintCharsAsStringTo(begin, len - 1, os); - return; - } - - // If, however, the last element in the array is not '\0', e.g. - // const char kFoo[] = { 'f', 'o', 'o' }; - // we must print the entire array. We also print a message to indicate - // that the array is not NUL-terminated. - PrintCharsAsStringTo(begin, len, os); - *os << " (no terminating NUL)"; -} - -// Prints a (const) char array of 'len' elements, starting at address 'begin'. -void UniversalPrintArray(const char* begin, size_t len, ostream* os) { - UniversalPrintCharArray(begin, len, os); -} - -#ifdef __cpp_char8_t -// Prints a (const) char8_t array of 'len' elements, starting at address -// 'begin'. -void UniversalPrintArray(const char8_t* begin, size_t len, ostream* os) { - UniversalPrintCharArray(begin, len, os); -} -#endif - -// Prints a (const) char16_t array of 'len' elements, starting at address -// 'begin'. -void UniversalPrintArray(const char16_t* begin, size_t len, ostream* os) { - UniversalPrintCharArray(begin, len, os); -} - -// Prints a (const) char32_t array of 'len' elements, starting at address -// 'begin'. -void UniversalPrintArray(const char32_t* begin, size_t len, ostream* os) { - UniversalPrintCharArray(begin, len, os); -} - -// Prints a (const) wchar_t array of 'len' elements, starting at address -// 'begin'. -void UniversalPrintArray(const wchar_t* begin, size_t len, ostream* os) { - UniversalPrintCharArray(begin, len, os); -} - -namespace { - -// Prints a null-terminated C-style string to the ostream. -template -void PrintCStringTo(const Char* s, ostream* os) { - if (s == nullptr) { - *os << "NULL"; - } else { - *os << ImplicitCast_(s) << " pointing to "; - PrintCharsAsStringTo(s, std::char_traits::length(s), os); - } -} - -} // anonymous namespace - -void PrintTo(const char* s, ostream* os) { PrintCStringTo(s, os); } - -#ifdef __cpp_char8_t -void PrintTo(const char8_t* s, ostream* os) { PrintCStringTo(s, os); } -#endif - -void PrintTo(const char16_t* s, ostream* os) { PrintCStringTo(s, os); } - -void PrintTo(const char32_t* s, ostream* os) { PrintCStringTo(s, os); } - -// MSVC compiler can be configured to define whar_t as a typedef -// of unsigned short. Defining an overload for const wchar_t* in that case -// would cause pointers to unsigned shorts be printed as wide strings, -// possibly accessing more memory than intended and causing invalid -// memory accesses. MSVC defines _NATIVE_WCHAR_T_DEFINED symbol when -// wchar_t is implemented as a native type. -#if !defined(_MSC_VER) || defined(_NATIVE_WCHAR_T_DEFINED) -// Prints the given wide C string to the ostream. -void PrintTo(const wchar_t* s, ostream* os) { PrintCStringTo(s, os); } -#endif // wchar_t is native - -namespace { - -bool ContainsUnprintableControlCodes(const char* str, size_t length) { - const unsigned char* s = reinterpret_cast(str); - - for (size_t i = 0; i < length; i++) { - unsigned char ch = *s++; - if (std::iscntrl(ch)) { - switch (ch) { - case '\t': - case '\n': - case '\r': - break; - default: - return true; - } - } - } - return false; -} - -bool IsUTF8TrailByte(unsigned char t) { return 0x80 <= t && t <= 0xbf; } - -bool IsValidUTF8(const char* str, size_t length) { - const unsigned char* s = reinterpret_cast(str); - - for (size_t i = 0; i < length;) { - unsigned char lead = s[i++]; - - if (lead <= 0x7f) { - continue; // single-byte character (ASCII) 0..7F - } - if (lead < 0xc2) { - return false; // trail byte or non-shortest form - } else if (lead <= 0xdf && (i + 1) <= length && IsUTF8TrailByte(s[i])) { - ++i; // 2-byte character - } else if (0xe0 <= lead && lead <= 0xef && (i + 2) <= length && - IsUTF8TrailByte(s[i]) && IsUTF8TrailByte(s[i + 1]) && - // check for non-shortest form and surrogate - (lead != 0xe0 || s[i] >= 0xa0) && - (lead != 0xed || s[i] < 0xa0)) { - i += 2; // 3-byte character - } else if (0xf0 <= lead && lead <= 0xf4 && (i + 3) <= length && - IsUTF8TrailByte(s[i]) && IsUTF8TrailByte(s[i + 1]) && - IsUTF8TrailByte(s[i + 2]) && - // check for non-shortest form - (lead != 0xf0 || s[i] >= 0x90) && - (lead != 0xf4 || s[i] < 0x90)) { - i += 3; // 4-byte character - } else { - return false; - } - } - return true; -} - -void ConditionalPrintAsText(const char* str, size_t length, ostream* os) { - if (!ContainsUnprintableControlCodes(str, length) && - IsValidUTF8(str, length)) { - *os << "\n As Text: \"" << str << "\""; - } -} - -} // anonymous namespace - -void PrintStringTo(const ::std::string& s, ostream* os) { - if (PrintCharsAsStringTo(s.data(), s.size(), os) == kHexEscape) { - if (GTEST_FLAG_GET(print_utf8)) { - ConditionalPrintAsText(s.data(), s.size(), os); - } - } -} - -#ifdef __cpp_char8_t -void PrintU8StringTo(const ::std::u8string& s, ostream* os) { - PrintCharsAsStringTo(s.data(), s.size(), os); -} -#endif - -void PrintU16StringTo(const ::std::u16string& s, ostream* os) { - PrintCharsAsStringTo(s.data(), s.size(), os); -} - -void PrintU32StringTo(const ::std::u32string& s, ostream* os) { - PrintCharsAsStringTo(s.data(), s.size(), os); -} - -#if GTEST_HAS_STD_WSTRING -void PrintWideStringTo(const ::std::wstring& s, ostream* os) { - PrintCharsAsStringTo(s.data(), s.size(), os); -} -#endif // GTEST_HAS_STD_WSTRING - -} // namespace internal - -} // namespace testing diff --git a/libs/cpp-httplib/test/gtest/src/gtest-test-part.cc b/libs/cpp-httplib/test/gtest/src/gtest-test-part.cc deleted file mode 100644 index eb7c8d1..0000000 --- a/libs/cpp-httplib/test/gtest/src/gtest-test-part.cc +++ /dev/null @@ -1,105 +0,0 @@ -// 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. - -// -// The Google C++ Testing and Mocking Framework (Google Test) - -#include "gtest/gtest-test-part.h" - -#include "gtest/internal/gtest-port.h" -#include "src/gtest-internal-inl.h" - -namespace testing { - -using internal::GetUnitTestImpl; - -// Gets the summary of the failure message by omitting the stack trace -// in it. -std::string TestPartResult::ExtractSummary(const char* message) { - const char* const stack_trace = strstr(message, internal::kStackTraceMarker); - return stack_trace == nullptr ? message : std::string(message, stack_trace); -} - -// Prints a TestPartResult object. -std::ostream& operator<<(std::ostream& os, const TestPartResult& result) { - return os << internal::FormatFileLocation(result.file_name(), - result.line_number()) - << " " - << (result.type() == TestPartResult::kSuccess ? "Success" - : result.type() == TestPartResult::kSkip ? "Skipped" - : result.type() == TestPartResult::kFatalFailure - ? "Fatal failure" - : "Non-fatal failure") - << ":\n" - << result.message() << std::endl; -} - -// Appends a TestPartResult to the array. -void TestPartResultArray::Append(const TestPartResult& result) { - array_.push_back(result); -} - -// Returns the TestPartResult at the given index (0-based). -const TestPartResult& TestPartResultArray::GetTestPartResult(int index) const { - if (index < 0 || index >= size()) { - printf("\nInvalid index (%d) into TestPartResultArray.\n", index); - internal::posix::Abort(); - } - - return array_[static_cast(index)]; -} - -// Returns the number of TestPartResult objects in the array. -int TestPartResultArray::size() const { - return static_cast(array_.size()); -} - -namespace internal { - -HasNewFatalFailureHelper::HasNewFatalFailureHelper() - : has_new_fatal_failure_(false), - original_reporter_( - GetUnitTestImpl()->GetTestPartResultReporterForCurrentThread()) { - GetUnitTestImpl()->SetTestPartResultReporterForCurrentThread(this); -} - -HasNewFatalFailureHelper::~HasNewFatalFailureHelper() { - GetUnitTestImpl()->SetTestPartResultReporterForCurrentThread( - original_reporter_); -} - -void HasNewFatalFailureHelper::ReportTestPartResult( - const TestPartResult& result) { - if (result.fatally_failed()) has_new_fatal_failure_ = true; - original_reporter_->ReportTestPartResult(result); -} - -} // namespace internal - -} // namespace testing diff --git a/libs/cpp-httplib/test/gtest/src/gtest-typed-test.cc b/libs/cpp-httplib/test/gtest/src/gtest-typed-test.cc deleted file mode 100644 index a2828b8..0000000 --- a/libs/cpp-httplib/test/gtest/src/gtest-typed-test.cc +++ /dev/null @@ -1,104 +0,0 @@ -// 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. - -#include "gtest/gtest-typed-test.h" - -#include "gtest/gtest.h" - -namespace testing { -namespace internal { - -// Skips to the first non-space char in str. Returns an empty string if str -// contains only whitespace characters. -static const char* SkipSpaces(const char* str) { - while (IsSpace(*str)) str++; - return str; -} - -static std::vector SplitIntoTestNames(const char* src) { - std::vector name_vec; - src = SkipSpaces(src); - for (; src != nullptr; src = SkipComma(src)) { - name_vec.push_back(StripTrailingSpaces(GetPrefixUntilComma(src))); - } - return name_vec; -} - -// Verifies that registered_tests match the test names in -// registered_tests_; returns registered_tests if successful, or -// aborts the program otherwise. -const char* TypedTestSuitePState::VerifyRegisteredTestNames( - const char* test_suite_name, const char* file, int line, - const char* registered_tests) { - RegisterTypeParameterizedTestSuite(test_suite_name, CodeLocation(file, line)); - - typedef RegisteredTestsMap::const_iterator RegisteredTestIter; - registered_ = true; - - std::vector name_vec = SplitIntoTestNames(registered_tests); - - Message errors; - - std::set tests; - for (std::vector::const_iterator name_it = name_vec.begin(); - name_it != name_vec.end(); ++name_it) { - const std::string& name = *name_it; - if (tests.count(name) != 0) { - errors << "Test " << name << " is listed more than once.\n"; - continue; - } - - if (registered_tests_.count(name) != 0) { - tests.insert(name); - } else { - errors << "No test named " << name - << " can be found in this test suite.\n"; - } - } - - for (RegisteredTestIter it = registered_tests_.begin(); - it != registered_tests_.end(); ++it) { - if (tests.count(it->first) == 0) { - errors << "You forgot to list test " << it->first << ".\n"; - } - } - - const std::string& errors_str = errors.GetString(); - if (errors_str != "") { - fprintf(stderr, "%s %s", FormatFileLocation(file, line).c_str(), - errors_str.c_str()); - fflush(stderr); - posix::Abort(); - } - - return registered_tests; -} - -} // namespace internal -} // namespace testing diff --git a/libs/cpp-httplib/test/gtest/src/gtest.cc b/libs/cpp-httplib/test/gtest/src/gtest.cc deleted file mode 100644 index 6f31dd2..0000000 --- a/libs/cpp-httplib/test/gtest/src/gtest.cc +++ /dev/null @@ -1,6795 +0,0 @@ -// Copyright 2005, 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. - -// -// The Google C++ Testing and Mocking Framework (Google Test) - -#include "gtest/gtest.h" - -#include -#include -#include -#include -#include -#include -#include - -#include -#include // NOLINT -#include -#include -#include -#include -#include -#include -#include -#include -#include // NOLINT -#include -#include -#include - -#include "gtest/gtest-assertion-result.h" -#include "gtest/gtest-spi.h" -#include "gtest/internal/custom/gtest.h" - -#if GTEST_OS_LINUX - -#include // NOLINT -#include // NOLINT -#include // NOLINT -// Declares vsnprintf(). This header is not available on Windows. -#include // NOLINT -#include // NOLINT -#include // NOLINT -#include // NOLINT - -#include - -#elif GTEST_OS_ZOS -#include // NOLINT - -// On z/OS we additionally need strings.h for strcasecmp. -#include // NOLINT - -#elif GTEST_OS_WINDOWS_MOBILE // We are on Windows CE. - -#include // NOLINT -#undef min - -#elif GTEST_OS_WINDOWS // We are on Windows proper. - -#include // NOLINT -#undef min - -#ifdef _MSC_VER -#include // NOLINT -#endif - -#include // NOLINT -#include // NOLINT -#include // NOLINT -#include // NOLINT - -#if GTEST_OS_WINDOWS_MINGW -#include // NOLINT -#endif // GTEST_OS_WINDOWS_MINGW - -#else - -// cpplint thinks that the header is already included, so we want to -// silence it. -#include // NOLINT -#include // NOLINT - -#endif // GTEST_OS_LINUX - -#if GTEST_HAS_EXCEPTIONS -#include -#endif - -#if GTEST_CAN_STREAM_RESULTS_ -#include // NOLINT -#include // NOLINT -#include // NOLINT -#include // NOLINT -#endif - -#include "src/gtest-internal-inl.h" - -#if GTEST_OS_WINDOWS -#define vsnprintf _vsnprintf -#endif // GTEST_OS_WINDOWS - -#if GTEST_OS_MAC -#ifndef GTEST_OS_IOS -#include -#endif -#endif - -#if GTEST_HAS_ABSL -#include "absl/debugging/failure_signal_handler.h" -#include "absl/debugging/stacktrace.h" -#include "absl/debugging/symbolize.h" -#include "absl/flags/parse.h" -#include "absl/flags/usage.h" -#include "absl/strings/str_cat.h" -#include "absl/strings/str_replace.h" -#endif // GTEST_HAS_ABSL - -namespace testing { - -using internal::CountIf; -using internal::ForEach; -using internal::GetElementOr; -using internal::Shuffle; - -// Constants. - -// A test whose test suite name or test name matches this filter is -// disabled and not run. -static const char kDisableTestFilter[] = "DISABLED_*:*/DISABLED_*"; - -// A test suite whose name matches this filter is considered a death -// test suite and will be run before test suites whose name doesn't -// match this filter. -static const char kDeathTestSuiteFilter[] = "*DeathTest:*DeathTest/*"; - -// A test filter that matches everything. -static const char kUniversalFilter[] = "*"; - -// The default output format. -static const char kDefaultOutputFormat[] = "xml"; -// The default output file. -static const char kDefaultOutputFile[] = "test_detail"; - -// The environment variable name for the test shard index. -static const char kTestShardIndex[] = "GTEST_SHARD_INDEX"; -// The environment variable name for the total number of test shards. -static const char kTestTotalShards[] = "GTEST_TOTAL_SHARDS"; -// The environment variable name for the test shard status file. -static const char kTestShardStatusFile[] = "GTEST_SHARD_STATUS_FILE"; - -namespace internal { - -// The text used in failure messages to indicate the start of the -// stack trace. -const char kStackTraceMarker[] = "\nStack trace:\n"; - -// g_help_flag is true if and only if the --help flag or an equivalent form -// is specified on the command line. -bool g_help_flag = false; - -// Utility function to Open File for Writing -static FILE* OpenFileForWriting(const std::string& output_file) { - FILE* fileout = nullptr; - FilePath output_file_path(output_file); - FilePath output_dir(output_file_path.RemoveFileName()); - - if (output_dir.CreateDirectoriesRecursively()) { - fileout = posix::FOpen(output_file.c_str(), "w"); - } - if (fileout == nullptr) { - GTEST_LOG_(FATAL) << "Unable to open file \"" << output_file << "\""; - } - return fileout; -} - -} // namespace internal - -// Bazel passes in the argument to '--test_filter' via the TESTBRIDGE_TEST_ONLY -// environment variable. -static const char* GetDefaultFilter() { - const char* const testbridge_test_only = - internal::posix::GetEnv("TESTBRIDGE_TEST_ONLY"); - if (testbridge_test_only != nullptr) { - return testbridge_test_only; - } - return kUniversalFilter; -} - -// Bazel passes in the argument to '--test_runner_fail_fast' via the -// TESTBRIDGE_TEST_RUNNER_FAIL_FAST environment variable. -static bool GetDefaultFailFast() { - const char* const testbridge_test_runner_fail_fast = - internal::posix::GetEnv("TESTBRIDGE_TEST_RUNNER_FAIL_FAST"); - if (testbridge_test_runner_fail_fast != nullptr) { - return strcmp(testbridge_test_runner_fail_fast, "1") == 0; - } - return false; -} - -} // namespace testing - -GTEST_DEFINE_bool_( - fail_fast, - testing::internal::BoolFromGTestEnv("fail_fast", - testing::GetDefaultFailFast()), - "True if and only if a test failure should stop further test execution."); - -GTEST_DEFINE_bool_( - also_run_disabled_tests, - testing::internal::BoolFromGTestEnv("also_run_disabled_tests", false), - "Run disabled tests too, in addition to the tests normally being run."); - -GTEST_DEFINE_bool_( - break_on_failure, - testing::internal::BoolFromGTestEnv("break_on_failure", false), - "True if and only if a failed assertion should be a debugger " - "break-point."); - -GTEST_DEFINE_bool_(catch_exceptions, - testing::internal::BoolFromGTestEnv("catch_exceptions", - true), - "True if and only if " GTEST_NAME_ - " should catch exceptions and treat them as test failures."); - -GTEST_DEFINE_string_( - color, testing::internal::StringFromGTestEnv("color", "auto"), - "Whether to use colors in the output. Valid values: yes, no, " - "and auto. 'auto' means to use colors if the output is " - "being sent to a terminal and the TERM environment variable " - "is set to a terminal type that supports colors."); - -GTEST_DEFINE_string_( - filter, - testing::internal::StringFromGTestEnv("filter", - testing::GetDefaultFilter()), - "A colon-separated list of glob (not regex) patterns " - "for filtering the tests to run, optionally followed by a " - "'-' and a : separated list of negative patterns (tests to " - "exclude). A test is run if it matches one of the positive " - "patterns and does not match any of the negative patterns."); - -GTEST_DEFINE_bool_( - install_failure_signal_handler, - testing::internal::BoolFromGTestEnv("install_failure_signal_handler", - false), - "If true and supported on the current platform, " GTEST_NAME_ - " should " - "install a signal handler that dumps debugging information when fatal " - "signals are raised."); - -GTEST_DEFINE_bool_(list_tests, false, "List all tests without running them."); - -// The net priority order after flag processing is thus: -// --gtest_output command line flag -// GTEST_OUTPUT environment variable -// XML_OUTPUT_FILE environment variable -// '' -GTEST_DEFINE_string_( - output, - testing::internal::StringFromGTestEnv( - "output", testing::internal::OutputFlagAlsoCheckEnvVar().c_str()), - "A format (defaults to \"xml\" but can be specified to be \"json\"), " - "optionally followed by a colon and an output file name or directory. " - "A directory is indicated by a trailing pathname separator. " - "Examples: \"xml:filename.xml\", \"xml::directoryname/\". " - "If a directory is specified, output files will be created " - "within that directory, with file-names based on the test " - "executable's name and, if necessary, made unique by adding " - "digits."); - -GTEST_DEFINE_bool_( - brief, testing::internal::BoolFromGTestEnv("brief", false), - "True if only test failures should be displayed in text output."); - -GTEST_DEFINE_bool_(print_time, - testing::internal::BoolFromGTestEnv("print_time", true), - "True if and only if " GTEST_NAME_ - " should display elapsed time in text output."); - -GTEST_DEFINE_bool_(print_utf8, - testing::internal::BoolFromGTestEnv("print_utf8", true), - "True if and only if " GTEST_NAME_ - " prints UTF8 characters as text."); - -GTEST_DEFINE_int32_( - random_seed, testing::internal::Int32FromGTestEnv("random_seed", 0), - "Random number seed to use when shuffling test orders. Must be in range " - "[1, 99999], or 0 to use a seed based on the current time."); - -GTEST_DEFINE_int32_( - repeat, testing::internal::Int32FromGTestEnv("repeat", 1), - "How many times to repeat each test. Specify a negative number " - "for repeating forever. Useful for shaking out flaky tests."); - -GTEST_DEFINE_bool_( - recreate_environments_when_repeating, - testing::internal::BoolFromGTestEnv("recreate_environments_when_repeating", - false), - "Controls whether global test environments are recreated for each repeat " - "of the tests. If set to false the global test environments are only set " - "up once, for the first iteration, and only torn down once, for the last. " - "Useful for shaking out flaky tests with stable, expensive test " - "environments. If --gtest_repeat is set to a negative number, meaning " - "there is no last run, the environments will always be recreated to avoid " - "leaks."); - -GTEST_DEFINE_bool_(show_internal_stack_frames, false, - "True if and only if " GTEST_NAME_ - " should include internal stack frames when " - "printing test failure stack traces."); - -GTEST_DEFINE_bool_(shuffle, - testing::internal::BoolFromGTestEnv("shuffle", false), - "True if and only if " GTEST_NAME_ - " should randomize tests' order on every run."); - -GTEST_DEFINE_int32_( - stack_trace_depth, - testing::internal::Int32FromGTestEnv("stack_trace_depth", - testing::kMaxStackTraceDepth), - "The maximum number of stack frames to print when an " - "assertion fails. The valid range is 0 through 100, inclusive."); - -GTEST_DEFINE_string_( - stream_result_to, - testing::internal::StringFromGTestEnv("stream_result_to", ""), - "This flag specifies the host name and the port number on which to stream " - "test results. Example: \"localhost:555\". The flag is effective only on " - "Linux."); - -GTEST_DEFINE_bool_( - throw_on_failure, - testing::internal::BoolFromGTestEnv("throw_on_failure", false), - "When this flag is specified, a failed assertion will throw an exception " - "if exceptions are enabled or exit the program with a non-zero code " - "otherwise. For use with an external test framework."); - -#if GTEST_USE_OWN_FLAGFILE_FLAG_ -GTEST_DEFINE_string_( - flagfile, testing::internal::StringFromGTestEnv("flagfile", ""), - "This flag specifies the flagfile to read command-line flags from."); -#endif // GTEST_USE_OWN_FLAGFILE_FLAG_ - -namespace testing { -namespace internal { - -// Generates a random number from [0, range), using a Linear -// Congruential Generator (LCG). Crashes if 'range' is 0 or greater -// than kMaxRange. -uint32_t Random::Generate(uint32_t range) { - // These constants are the same as are used in glibc's rand(3). - // Use wider types than necessary to prevent unsigned overflow diagnostics. - state_ = static_cast(1103515245ULL * state_ + 12345U) % kMaxRange; - - GTEST_CHECK_(range > 0) << "Cannot generate a number in the range [0, 0)."; - GTEST_CHECK_(range <= kMaxRange) - << "Generation of a number in [0, " << range << ") was requested, " - << "but this can only generate numbers in [0, " << kMaxRange << ")."; - - // Converting via modulus introduces a bit of downward bias, but - // it's simple, and a linear congruential generator isn't too good - // to begin with. - return state_ % range; -} - -// GTestIsInitialized() returns true if and only if the user has initialized -// Google Test. Useful for catching the user mistake of not initializing -// Google Test before calling RUN_ALL_TESTS(). -static bool GTestIsInitialized() { return GetArgvs().size() > 0; } - -// Iterates over a vector of TestSuites, keeping a running sum of the -// results of calling a given int-returning method on each. -// Returns the sum. -static int SumOverTestSuiteList(const std::vector& case_list, - int (TestSuite::*method)() const) { - int sum = 0; - for (size_t i = 0; i < case_list.size(); i++) { - sum += (case_list[i]->*method)(); - } - return sum; -} - -// Returns true if and only if the test suite passed. -static bool TestSuitePassed(const TestSuite* test_suite) { - return test_suite->should_run() && test_suite->Passed(); -} - -// Returns true if and only if the test suite failed. -static bool TestSuiteFailed(const TestSuite* test_suite) { - return test_suite->should_run() && test_suite->Failed(); -} - -// Returns true if and only if test_suite contains at least one test that -// should run. -static bool ShouldRunTestSuite(const TestSuite* test_suite) { - return test_suite->should_run(); -} - -// AssertHelper constructor. -AssertHelper::AssertHelper(TestPartResult::Type type, const char* file, - int line, const char* message) - : data_(new AssertHelperData(type, file, line, message)) {} - -AssertHelper::~AssertHelper() { delete data_; } - -// Message assignment, for assertion streaming support. -void AssertHelper::operator=(const Message& message) const { - UnitTest::GetInstance()->AddTestPartResult( - data_->type, data_->file, data_->line, - AppendUserMessage(data_->message, message), - UnitTest::GetInstance()->impl()->CurrentOsStackTraceExceptTop(1) - // Skips the stack frame for this function itself. - ); // NOLINT -} - -namespace { - -// When TEST_P is found without a matching INSTANTIATE_TEST_SUITE_P -// to creates test cases for it, a synthetic test case is -// inserted to report ether an error or a log message. -// -// This configuration bit will likely be removed at some point. -constexpr bool kErrorOnUninstantiatedParameterizedTest = true; -constexpr bool kErrorOnUninstantiatedTypeParameterizedTest = true; - -// A test that fails at a given file/line location with a given message. -class FailureTest : public Test { - public: - explicit FailureTest(const CodeLocation& loc, std::string error_message, - bool as_error) - : loc_(loc), - error_message_(std::move(error_message)), - as_error_(as_error) {} - - void TestBody() override { - if (as_error_) { - AssertHelper(TestPartResult::kNonFatalFailure, loc_.file.c_str(), - loc_.line, "") = Message() << error_message_; - } else { - std::cout << error_message_ << std::endl; - } - } - - private: - const CodeLocation loc_; - const std::string error_message_; - const bool as_error_; -}; - -} // namespace - -std::set* GetIgnoredParameterizedTestSuites() { - return UnitTest::GetInstance()->impl()->ignored_parameterized_test_suites(); -} - -// Add a given test_suit to the list of them allow to go un-instantiated. -MarkAsIgnored::MarkAsIgnored(const char* test_suite) { - GetIgnoredParameterizedTestSuites()->insert(test_suite); -} - -// If this parameterized test suite has no instantiations (and that -// has not been marked as okay), emit a test case reporting that. -void InsertSyntheticTestCase(const std::string& name, CodeLocation location, - bool has_test_p) { - const auto& ignored = *GetIgnoredParameterizedTestSuites(); - if (ignored.find(name) != ignored.end()) return; - - const char kMissingInstantiation[] = // - " is defined via TEST_P, but never instantiated. None of the test cases " - "will run. Either no INSTANTIATE_TEST_SUITE_P is provided or the only " - "ones provided expand to nothing." - "\n\n" - "Ideally, TEST_P definitions should only ever be included as part of " - "binaries that intend to use them. (As opposed to, for example, being " - "placed in a library that may be linked in to get other utilities.)"; - - const char kMissingTestCase[] = // - " is instantiated via INSTANTIATE_TEST_SUITE_P, but no tests are " - "defined via TEST_P . No test cases will run." - "\n\n" - "Ideally, INSTANTIATE_TEST_SUITE_P should only ever be invoked from " - "code that always depend on code that provides TEST_P. Failing to do " - "so is often an indication of dead code, e.g. the last TEST_P was " - "removed but the rest got left behind."; - - std::string message = - "Parameterized test suite " + name + - (has_test_p ? kMissingInstantiation : kMissingTestCase) + - "\n\n" - "To suppress this error for this test suite, insert the following line " - "(in a non-header) in the namespace it is defined in:" - "\n\n" - "GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(" + - name + ");"; - - std::string full_name = "UninstantiatedParameterizedTestSuite<" + name + ">"; - RegisterTest( // - "GoogleTestVerification", full_name.c_str(), - nullptr, // No type parameter. - nullptr, // No value parameter. - location.file.c_str(), location.line, [message, location] { - return new FailureTest(location, message, - kErrorOnUninstantiatedParameterizedTest); - }); -} - -void RegisterTypeParameterizedTestSuite(const char* test_suite_name, - CodeLocation code_location) { - GetUnitTestImpl()->type_parameterized_test_registry().RegisterTestSuite( - test_suite_name, code_location); -} - -void RegisterTypeParameterizedTestSuiteInstantiation(const char* case_name) { - GetUnitTestImpl()->type_parameterized_test_registry().RegisterInstantiation( - case_name); -} - -void TypeParameterizedTestSuiteRegistry::RegisterTestSuite( - const char* test_suite_name, CodeLocation code_location) { - suites_.emplace(std::string(test_suite_name), - TypeParameterizedTestSuiteInfo(code_location)); -} - -void TypeParameterizedTestSuiteRegistry::RegisterInstantiation( - const char* test_suite_name) { - auto it = suites_.find(std::string(test_suite_name)); - if (it != suites_.end()) { - it->second.instantiated = true; - } else { - GTEST_LOG_(ERROR) << "Unknown type parameterized test suit '" - << test_suite_name << "'"; - } -} - -void TypeParameterizedTestSuiteRegistry::CheckForInstantiations() { - const auto& ignored = *GetIgnoredParameterizedTestSuites(); - for (const auto& testcase : suites_) { - if (testcase.second.instantiated) continue; - if (ignored.find(testcase.first) != ignored.end()) continue; - - std::string message = - "Type parameterized test suite " + testcase.first + - " is defined via REGISTER_TYPED_TEST_SUITE_P, but never instantiated " - "via INSTANTIATE_TYPED_TEST_SUITE_P. None of the test cases will run." - "\n\n" - "Ideally, TYPED_TEST_P definitions should only ever be included as " - "part of binaries that intend to use them. (As opposed to, for " - "example, being placed in a library that may be linked in to get other " - "utilities.)" - "\n\n" - "To suppress this error for this test suite, insert the following line " - "(in a non-header) in the namespace it is defined in:" - "\n\n" - "GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(" + - testcase.first + ");"; - - std::string full_name = - "UninstantiatedTypeParameterizedTestSuite<" + testcase.first + ">"; - RegisterTest( // - "GoogleTestVerification", full_name.c_str(), - nullptr, // No type parameter. - nullptr, // No value parameter. - testcase.second.code_location.file.c_str(), - testcase.second.code_location.line, [message, testcase] { - return new FailureTest(testcase.second.code_location, message, - kErrorOnUninstantiatedTypeParameterizedTest); - }); - } -} - -// A copy of all command line arguments. Set by InitGoogleTest(). -static ::std::vector g_argvs; - -::std::vector GetArgvs() { -#if defined(GTEST_CUSTOM_GET_ARGVS_) - // GTEST_CUSTOM_GET_ARGVS_() may return a container of std::string or - // ::string. This code converts it to the appropriate type. - const auto& custom = GTEST_CUSTOM_GET_ARGVS_(); - return ::std::vector(custom.begin(), custom.end()); -#else // defined(GTEST_CUSTOM_GET_ARGVS_) - return g_argvs; -#endif // defined(GTEST_CUSTOM_GET_ARGVS_) -} - -// Returns the current application's name, removing directory path if that -// is present. -FilePath GetCurrentExecutableName() { - FilePath result; - -#if GTEST_OS_WINDOWS || GTEST_OS_OS2 - result.Set(FilePath(GetArgvs()[0]).RemoveExtension("exe")); -#else - result.Set(FilePath(GetArgvs()[0])); -#endif // GTEST_OS_WINDOWS - - return result.RemoveDirectoryName(); -} - -// Functions for processing the gtest_output flag. - -// Returns the output format, or "" for normal printed output. -std::string UnitTestOptions::GetOutputFormat() { - std::string s = GTEST_FLAG_GET(output); - const char* const gtest_output_flag = s.c_str(); - const char* const colon = strchr(gtest_output_flag, ':'); - return (colon == nullptr) - ? std::string(gtest_output_flag) - : std::string(gtest_output_flag, - static_cast(colon - gtest_output_flag)); -} - -// Returns the name of the requested output file, or the default if none -// was explicitly specified. -std::string UnitTestOptions::GetAbsolutePathToOutputFile() { - std::string s = GTEST_FLAG_GET(output); - const char* const gtest_output_flag = s.c_str(); - - std::string format = GetOutputFormat(); - if (format.empty()) format = std::string(kDefaultOutputFormat); - - const char* const colon = strchr(gtest_output_flag, ':'); - if (colon == nullptr) - return internal::FilePath::MakeFileName( - internal::FilePath( - UnitTest::GetInstance()->original_working_dir()), - internal::FilePath(kDefaultOutputFile), 0, format.c_str()) - .string(); - - internal::FilePath output_name(colon + 1); - if (!output_name.IsAbsolutePath()) - output_name = internal::FilePath::ConcatPaths( - internal::FilePath(UnitTest::GetInstance()->original_working_dir()), - internal::FilePath(colon + 1)); - - if (!output_name.IsDirectory()) return output_name.string(); - - internal::FilePath result(internal::FilePath::GenerateUniqueFileName( - output_name, internal::GetCurrentExecutableName(), - GetOutputFormat().c_str())); - return result.string(); -} - -// Returns true if and only if the wildcard pattern matches the string. Each -// pattern consists of regular characters, single-character wildcards (?), and -// multi-character wildcards (*). -// -// This function implements a linear-time string globbing algorithm based on -// https://research.swtch.com/glob. -static bool PatternMatchesString(const std::string& name_str, - const char* pattern, const char* pattern_end) { - const char* name = name_str.c_str(); - const char* const name_begin = name; - const char* const name_end = name + name_str.size(); - - const char* pattern_next = pattern; - const char* name_next = name; - - while (pattern < pattern_end || name < name_end) { - if (pattern < pattern_end) { - switch (*pattern) { - default: // Match an ordinary character. - if (name < name_end && *name == *pattern) { - ++pattern; - ++name; - continue; - } - break; - case '?': // Match any single character. - if (name < name_end) { - ++pattern; - ++name; - continue; - } - break; - case '*': - // Match zero or more characters. Start by skipping over the wildcard - // and matching zero characters from name. If that fails, restart and - // match one more character than the last attempt. - pattern_next = pattern; - name_next = name + 1; - ++pattern; - continue; - } - } - // Failed to match a character. Restart if possible. - if (name_begin < name_next && name_next <= name_end) { - pattern = pattern_next; - name = name_next; - continue; - } - return false; - } - return true; -} - -namespace { - -bool IsGlobPattern(const std::string& pattern) { - return std::any_of(pattern.begin(), pattern.end(), - [](const char c) { return c == '?' || c == '*'; }); -} - -class UnitTestFilter { - public: - UnitTestFilter() = default; - - // Constructs a filter from a string of patterns separated by `:`. - explicit UnitTestFilter(const std::string& filter) { - // By design "" filter matches "" string. - std::vector all_patterns; - SplitString(filter, ':', &all_patterns); - const auto exact_match_patterns_begin = std::partition( - all_patterns.begin(), all_patterns.end(), &IsGlobPattern); - - glob_patterns_.reserve(static_cast( - std::distance(all_patterns.begin(), exact_match_patterns_begin))); - std::move(all_patterns.begin(), exact_match_patterns_begin, - std::inserter(glob_patterns_, glob_patterns_.begin())); - std::move( - exact_match_patterns_begin, all_patterns.end(), - std::inserter(exact_match_patterns_, exact_match_patterns_.begin())); - } - - // Returns true if and only if name matches at least one of the patterns in - // the filter. - bool MatchesName(const std::string& name) const { - return exact_match_patterns_.count(name) > 0 || - std::any_of(glob_patterns_.begin(), glob_patterns_.end(), - [&name](const std::string& pattern) { - return PatternMatchesString( - name, pattern.c_str(), - pattern.c_str() + pattern.size()); - }); - } - - private: - std::vector glob_patterns_; - std::unordered_set exact_match_patterns_; -}; - -class PositiveAndNegativeUnitTestFilter { - public: - // Constructs a positive and a negative filter from a string. The string - // contains a positive filter optionally followed by a '-' character and a - // negative filter. In case only a negative filter is provided the positive - // filter will be assumed "*". - // A filter is a list of patterns separated by ':'. - explicit PositiveAndNegativeUnitTestFilter(const std::string& filter) { - std::vector positive_and_negative_filters; - - // NOTE: `SplitString` always returns a non-empty container. - SplitString(filter, '-', &positive_and_negative_filters); - const auto& positive_filter = positive_and_negative_filters.front(); - - if (positive_and_negative_filters.size() > 1) { - positive_filter_ = UnitTestFilter( - positive_filter.empty() ? kUniversalFilter : positive_filter); - - // TODO(b/214626361): Fail on multiple '-' characters - // For the moment to preserve old behavior we concatenate the rest of the - // string parts with `-` as separator to generate the negative filter. - auto negative_filter_string = positive_and_negative_filters[1]; - for (std::size_t i = 2; i < positive_and_negative_filters.size(); i++) - negative_filter_string = - negative_filter_string + '-' + positive_and_negative_filters[i]; - negative_filter_ = UnitTestFilter(negative_filter_string); - } else { - // In case we don't have a negative filter and positive filter is "" - // we do not use kUniversalFilter by design as opposed to when we have a - // negative filter. - positive_filter_ = UnitTestFilter(positive_filter); - } - } - - // Returns true if and only if test name (this is generated by appending test - // suit name and test name via a '.' character) matches the positive filter - // and does not match the negative filter. - bool MatchesTest(const std::string& test_suite_name, - const std::string& test_name) const { - return MatchesName(test_suite_name + "." + test_name); - } - - // Returns true if and only if name matches the positive filter and does not - // match the negative filter. - bool MatchesName(const std::string& name) const { - return positive_filter_.MatchesName(name) && - !negative_filter_.MatchesName(name); - } - - private: - UnitTestFilter positive_filter_; - UnitTestFilter negative_filter_; -}; -} // namespace - -bool UnitTestOptions::MatchesFilter(const std::string& name_str, - const char* filter) { - return UnitTestFilter(filter).MatchesName(name_str); -} - -// Returns true if and only if the user-specified filter matches the test -// suite name and the test name. -bool UnitTestOptions::FilterMatchesTest(const std::string& test_suite_name, - const std::string& test_name) { - // Split --gtest_filter at '-', if there is one, to separate into - // positive filter and negative filter portions - return PositiveAndNegativeUnitTestFilter(GTEST_FLAG_GET(filter)) - .MatchesTest(test_suite_name, test_name); -} - -#if GTEST_HAS_SEH -// Returns EXCEPTION_EXECUTE_HANDLER if Google Test should handle the -// given SEH exception, or EXCEPTION_CONTINUE_SEARCH otherwise. -// This function is useful as an __except condition. -int UnitTestOptions::GTestShouldProcessSEH(DWORD exception_code) { - // Google Test should handle a SEH exception if: - // 1. the user wants it to, AND - // 2. this is not a breakpoint exception, AND - // 3. this is not a C++ exception (VC++ implements them via SEH, - // apparently). - // - // SEH exception code for C++ exceptions. - // (see http://support.microsoft.com/kb/185294 for more information). - const DWORD kCxxExceptionCode = 0xe06d7363; - - bool should_handle = true; - - if (!GTEST_FLAG_GET(catch_exceptions)) - should_handle = false; - else if (exception_code == EXCEPTION_BREAKPOINT) - should_handle = false; - else if (exception_code == kCxxExceptionCode) - should_handle = false; - - return should_handle ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH; -} -#endif // GTEST_HAS_SEH - -} // namespace internal - -// The c'tor sets this object as the test part result reporter used by -// Google Test. The 'result' parameter specifies where to report the -// results. Intercepts only failures from the current thread. -ScopedFakeTestPartResultReporter::ScopedFakeTestPartResultReporter( - TestPartResultArray* result) - : intercept_mode_(INTERCEPT_ONLY_CURRENT_THREAD), result_(result) { - Init(); -} - -// The c'tor sets this object as the test part result reporter used by -// Google Test. The 'result' parameter specifies where to report the -// results. -ScopedFakeTestPartResultReporter::ScopedFakeTestPartResultReporter( - InterceptMode intercept_mode, TestPartResultArray* result) - : intercept_mode_(intercept_mode), result_(result) { - Init(); -} - -void ScopedFakeTestPartResultReporter::Init() { - internal::UnitTestImpl* const impl = internal::GetUnitTestImpl(); - if (intercept_mode_ == INTERCEPT_ALL_THREADS) { - old_reporter_ = impl->GetGlobalTestPartResultReporter(); - impl->SetGlobalTestPartResultReporter(this); - } else { - old_reporter_ = impl->GetTestPartResultReporterForCurrentThread(); - impl->SetTestPartResultReporterForCurrentThread(this); - } -} - -// The d'tor restores the test part result reporter used by Google Test -// before. -ScopedFakeTestPartResultReporter::~ScopedFakeTestPartResultReporter() { - internal::UnitTestImpl* const impl = internal::GetUnitTestImpl(); - if (intercept_mode_ == INTERCEPT_ALL_THREADS) { - impl->SetGlobalTestPartResultReporter(old_reporter_); - } else { - impl->SetTestPartResultReporterForCurrentThread(old_reporter_); - } -} - -// Increments the test part result count and remembers the result. -// This method is from the TestPartResultReporterInterface interface. -void ScopedFakeTestPartResultReporter::ReportTestPartResult( - const TestPartResult& result) { - result_->Append(result); -} - -namespace internal { - -// Returns the type ID of ::testing::Test. We should always call this -// instead of GetTypeId< ::testing::Test>() to get the type ID of -// testing::Test. This is to work around a suspected linker bug when -// using Google Test as a framework on Mac OS X. The bug causes -// GetTypeId< ::testing::Test>() to return different values depending -// on whether the call is from the Google Test framework itself or -// from user test code. GetTestTypeId() is guaranteed to always -// return the same value, as it always calls GetTypeId<>() from the -// gtest.cc, which is within the Google Test framework. -TypeId GetTestTypeId() { return GetTypeId(); } - -// The value of GetTestTypeId() as seen from within the Google Test -// library. This is solely for testing GetTestTypeId(). -extern const TypeId kTestTypeIdInGoogleTest = GetTestTypeId(); - -// This predicate-formatter checks that 'results' contains a test part -// failure of the given type and that the failure message contains the -// given substring. -static AssertionResult HasOneFailure(const char* /* results_expr */, - const char* /* type_expr */, - const char* /* substr_expr */, - const TestPartResultArray& results, - TestPartResult::Type type, - const std::string& substr) { - const std::string expected(type == TestPartResult::kFatalFailure - ? "1 fatal failure" - : "1 non-fatal failure"); - Message msg; - if (results.size() != 1) { - msg << "Expected: " << expected << "\n" - << " Actual: " << results.size() << " failures"; - for (int i = 0; i < results.size(); i++) { - msg << "\n" << results.GetTestPartResult(i); - } - return AssertionFailure() << msg; - } - - const TestPartResult& r = results.GetTestPartResult(0); - if (r.type() != type) { - return AssertionFailure() << "Expected: " << expected << "\n" - << " Actual:\n" - << r; - } - - if (strstr(r.message(), substr.c_str()) == nullptr) { - return AssertionFailure() - << "Expected: " << expected << " containing \"" << substr << "\"\n" - << " Actual:\n" - << r; - } - - return AssertionSuccess(); -} - -// The constructor of SingleFailureChecker remembers where to look up -// test part results, what type of failure we expect, and what -// substring the failure message should contain. -SingleFailureChecker::SingleFailureChecker(const TestPartResultArray* results, - TestPartResult::Type type, - const std::string& substr) - : results_(results), type_(type), substr_(substr) {} - -// The destructor of SingleFailureChecker verifies that the given -// TestPartResultArray contains exactly one failure that has the given -// type and contains the given substring. If that's not the case, a -// non-fatal failure will be generated. -SingleFailureChecker::~SingleFailureChecker() { - EXPECT_PRED_FORMAT3(HasOneFailure, *results_, type_, substr_); -} - -DefaultGlobalTestPartResultReporter::DefaultGlobalTestPartResultReporter( - UnitTestImpl* unit_test) - : unit_test_(unit_test) {} - -void DefaultGlobalTestPartResultReporter::ReportTestPartResult( - const TestPartResult& result) { - unit_test_->current_test_result()->AddTestPartResult(result); - unit_test_->listeners()->repeater()->OnTestPartResult(result); -} - -DefaultPerThreadTestPartResultReporter::DefaultPerThreadTestPartResultReporter( - UnitTestImpl* unit_test) - : unit_test_(unit_test) {} - -void DefaultPerThreadTestPartResultReporter::ReportTestPartResult( - const TestPartResult& result) { - unit_test_->GetGlobalTestPartResultReporter()->ReportTestPartResult(result); -} - -// Returns the global test part result reporter. -TestPartResultReporterInterface* -UnitTestImpl::GetGlobalTestPartResultReporter() { - internal::MutexLock lock(&global_test_part_result_reporter_mutex_); - return global_test_part_result_repoter_; -} - -// Sets the global test part result reporter. -void UnitTestImpl::SetGlobalTestPartResultReporter( - TestPartResultReporterInterface* reporter) { - internal::MutexLock lock(&global_test_part_result_reporter_mutex_); - global_test_part_result_repoter_ = reporter; -} - -// Returns the test part result reporter for the current thread. -TestPartResultReporterInterface* -UnitTestImpl::GetTestPartResultReporterForCurrentThread() { - return per_thread_test_part_result_reporter_.get(); -} - -// Sets the test part result reporter for the current thread. -void UnitTestImpl::SetTestPartResultReporterForCurrentThread( - TestPartResultReporterInterface* reporter) { - per_thread_test_part_result_reporter_.set(reporter); -} - -// Gets the number of successful test suites. -int UnitTestImpl::successful_test_suite_count() const { - return CountIf(test_suites_, TestSuitePassed); -} - -// Gets the number of failed test suites. -int UnitTestImpl::failed_test_suite_count() const { - return CountIf(test_suites_, TestSuiteFailed); -} - -// Gets the number of all test suites. -int UnitTestImpl::total_test_suite_count() const { - return static_cast(test_suites_.size()); -} - -// Gets the number of all test suites that contain at least one test -// that should run. -int UnitTestImpl::test_suite_to_run_count() const { - return CountIf(test_suites_, ShouldRunTestSuite); -} - -// Gets the number of successful tests. -int UnitTestImpl::successful_test_count() const { - return SumOverTestSuiteList(test_suites_, &TestSuite::successful_test_count); -} - -// Gets the number of skipped tests. -int UnitTestImpl::skipped_test_count() const { - return SumOverTestSuiteList(test_suites_, &TestSuite::skipped_test_count); -} - -// Gets the number of failed tests. -int UnitTestImpl::failed_test_count() const { - return SumOverTestSuiteList(test_suites_, &TestSuite::failed_test_count); -} - -// Gets the number of disabled tests that will be reported in the XML report. -int UnitTestImpl::reportable_disabled_test_count() const { - return SumOverTestSuiteList(test_suites_, - &TestSuite::reportable_disabled_test_count); -} - -// Gets the number of disabled tests. -int UnitTestImpl::disabled_test_count() const { - return SumOverTestSuiteList(test_suites_, &TestSuite::disabled_test_count); -} - -// Gets the number of tests to be printed in the XML report. -int UnitTestImpl::reportable_test_count() const { - return SumOverTestSuiteList(test_suites_, &TestSuite::reportable_test_count); -} - -// Gets the number of all tests. -int UnitTestImpl::total_test_count() const { - return SumOverTestSuiteList(test_suites_, &TestSuite::total_test_count); -} - -// Gets the number of tests that should run. -int UnitTestImpl::test_to_run_count() const { - return SumOverTestSuiteList(test_suites_, &TestSuite::test_to_run_count); -} - -// Returns the current OS stack trace as an std::string. -// -// The maximum number of stack frames to be included is specified by -// the gtest_stack_trace_depth flag. The skip_count parameter -// specifies the number of top frames to be skipped, which doesn't -// count against the number of frames to be included. -// -// For example, if Foo() calls Bar(), which in turn calls -// CurrentOsStackTraceExceptTop(1), Foo() will be included in the -// trace but Bar() and CurrentOsStackTraceExceptTop() won't. -std::string UnitTestImpl::CurrentOsStackTraceExceptTop(int skip_count) { - return os_stack_trace_getter()->CurrentStackTrace( - static_cast(GTEST_FLAG_GET(stack_trace_depth)), skip_count + 1 - // Skips the user-specified number of frames plus this function - // itself. - ); // NOLINT -} - -// A helper class for measuring elapsed times. -class Timer { - public: - Timer() : start_(std::chrono::steady_clock::now()) {} - - // Return time elapsed in milliseconds since the timer was created. - TimeInMillis Elapsed() { - return std::chrono::duration_cast( - std::chrono::steady_clock::now() - start_) - .count(); - } - - private: - std::chrono::steady_clock::time_point start_; -}; - -// Returns a timestamp as milliseconds since the epoch. Note this time may jump -// around subject to adjustments by the system, to measure elapsed time use -// Timer instead. -TimeInMillis GetTimeInMillis() { - return std::chrono::duration_cast( - std::chrono::system_clock::now() - - std::chrono::system_clock::from_time_t(0)) - .count(); -} - -// Utilities - -// class String. - -#if GTEST_OS_WINDOWS_MOBILE -// Creates a UTF-16 wide string from the given ANSI string, allocating -// memory using new. The caller is responsible for deleting the return -// value using delete[]. Returns the wide string, or NULL if the -// input is NULL. -LPCWSTR String::AnsiToUtf16(const char* ansi) { - if (!ansi) return nullptr; - const int length = strlen(ansi); - const int unicode_length = - MultiByteToWideChar(CP_ACP, 0, ansi, length, nullptr, 0); - WCHAR* unicode = new WCHAR[unicode_length + 1]; - MultiByteToWideChar(CP_ACP, 0, ansi, length, unicode, unicode_length); - unicode[unicode_length] = 0; - return unicode; -} - -// Creates an ANSI string from the given wide string, allocating -// memory using new. The caller is responsible for deleting the return -// value using delete[]. Returns the ANSI string, or NULL if the -// input is NULL. -const char* String::Utf16ToAnsi(LPCWSTR utf16_str) { - if (!utf16_str) return nullptr; - const int ansi_length = WideCharToMultiByte(CP_ACP, 0, utf16_str, -1, nullptr, - 0, nullptr, nullptr); - char* ansi = new char[ansi_length + 1]; - WideCharToMultiByte(CP_ACP, 0, utf16_str, -1, ansi, ansi_length, nullptr, - nullptr); - ansi[ansi_length] = 0; - return ansi; -} - -#endif // GTEST_OS_WINDOWS_MOBILE - -// Compares two C strings. Returns true if and only if they have the same -// content. -// -// Unlike strcmp(), this function can handle NULL argument(s). A NULL -// C string is considered different to any non-NULL C string, -// including the empty string. -bool String::CStringEquals(const char* lhs, const char* rhs) { - if (lhs == nullptr) return rhs == nullptr; - - if (rhs == nullptr) return false; - - return strcmp(lhs, rhs) == 0; -} - -#if GTEST_HAS_STD_WSTRING - -// Converts an array of wide chars to a narrow string using the UTF-8 -// encoding, and streams the result to the given Message object. -static void StreamWideCharsToMessage(const wchar_t* wstr, size_t length, - Message* msg) { - for (size_t i = 0; i != length;) { // NOLINT - if (wstr[i] != L'\0') { - *msg << WideStringToUtf8(wstr + i, static_cast(length - i)); - while (i != length && wstr[i] != L'\0') i++; - } else { - *msg << '\0'; - i++; - } - } -} - -#endif // GTEST_HAS_STD_WSTRING - -void SplitString(const ::std::string& str, char delimiter, - ::std::vector< ::std::string>* dest) { - ::std::vector< ::std::string> parsed; - ::std::string::size_type pos = 0; - while (::testing::internal::AlwaysTrue()) { - const ::std::string::size_type colon = str.find(delimiter, pos); - if (colon == ::std::string::npos) { - parsed.push_back(str.substr(pos)); - break; - } else { - parsed.push_back(str.substr(pos, colon - pos)); - pos = colon + 1; - } - } - dest->swap(parsed); -} - -} // namespace internal - -// Constructs an empty Message. -// We allocate the stringstream separately because otherwise each use of -// ASSERT/EXPECT in a procedure adds over 200 bytes to the procedure's -// stack frame leading to huge stack frames in some cases; gcc does not reuse -// the stack space. -Message::Message() : ss_(new ::std::stringstream) { - // By default, we want there to be enough precision when printing - // a double to a Message. - *ss_ << std::setprecision(std::numeric_limits::digits10 + 2); -} - -// These two overloads allow streaming a wide C string to a Message -// using the UTF-8 encoding. -Message& Message::operator<<(const wchar_t* wide_c_str) { - return *this << internal::String::ShowWideCString(wide_c_str); -} -Message& Message::operator<<(wchar_t* wide_c_str) { - return *this << internal::String::ShowWideCString(wide_c_str); -} - -#if GTEST_HAS_STD_WSTRING -// Converts the given wide string to a narrow string using the UTF-8 -// encoding, and streams the result to this Message object. -Message& Message::operator<<(const ::std::wstring& wstr) { - internal::StreamWideCharsToMessage(wstr.c_str(), wstr.length(), this); - return *this; -} -#endif // GTEST_HAS_STD_WSTRING - -// Gets the text streamed to this object so far as an std::string. -// Each '\0' character in the buffer is replaced with "\\0". -std::string Message::GetString() const { - return internal::StringStreamToString(ss_.get()); -} - -namespace internal { - -namespace edit_distance { -std::vector CalculateOptimalEdits(const std::vector& left, - const std::vector& right) { - std::vector > costs( - left.size() + 1, std::vector(right.size() + 1)); - std::vector > best_move( - left.size() + 1, std::vector(right.size() + 1)); - - // Populate for empty right. - for (size_t l_i = 0; l_i < costs.size(); ++l_i) { - costs[l_i][0] = static_cast(l_i); - best_move[l_i][0] = kRemove; - } - // Populate for empty left. - for (size_t r_i = 1; r_i < costs[0].size(); ++r_i) { - costs[0][r_i] = static_cast(r_i); - best_move[0][r_i] = kAdd; - } - - for (size_t l_i = 0; l_i < left.size(); ++l_i) { - for (size_t r_i = 0; r_i < right.size(); ++r_i) { - if (left[l_i] == right[r_i]) { - // Found a match. Consume it. - costs[l_i + 1][r_i + 1] = costs[l_i][r_i]; - best_move[l_i + 1][r_i + 1] = kMatch; - continue; - } - - const double add = costs[l_i + 1][r_i]; - const double remove = costs[l_i][r_i + 1]; - const double replace = costs[l_i][r_i]; - if (add < remove && add < replace) { - costs[l_i + 1][r_i + 1] = add + 1; - best_move[l_i + 1][r_i + 1] = kAdd; - } else if (remove < add && remove < replace) { - costs[l_i + 1][r_i + 1] = remove + 1; - best_move[l_i + 1][r_i + 1] = kRemove; - } else { - // We make replace a little more expensive than add/remove to lower - // their priority. - costs[l_i + 1][r_i + 1] = replace + 1.00001; - best_move[l_i + 1][r_i + 1] = kReplace; - } - } - } - - // Reconstruct the best path. We do it in reverse order. - std::vector best_path; - for (size_t l_i = left.size(), r_i = right.size(); l_i > 0 || r_i > 0;) { - EditType move = best_move[l_i][r_i]; - best_path.push_back(move); - l_i -= move != kAdd; - r_i -= move != kRemove; - } - std::reverse(best_path.begin(), best_path.end()); - return best_path; -} - -namespace { - -// Helper class to convert string into ids with deduplication. -class InternalStrings { - public: - size_t GetId(const std::string& str) { - IdMap::iterator it = ids_.find(str); - if (it != ids_.end()) return it->second; - size_t id = ids_.size(); - return ids_[str] = id; - } - - private: - typedef std::map IdMap; - IdMap ids_; -}; - -} // namespace - -std::vector CalculateOptimalEdits( - const std::vector& left, - const std::vector& right) { - std::vector left_ids, right_ids; - { - InternalStrings intern_table; - for (size_t i = 0; i < left.size(); ++i) { - left_ids.push_back(intern_table.GetId(left[i])); - } - for (size_t i = 0; i < right.size(); ++i) { - right_ids.push_back(intern_table.GetId(right[i])); - } - } - return CalculateOptimalEdits(left_ids, right_ids); -} - -namespace { - -// Helper class that holds the state for one hunk and prints it out to the -// stream. -// It reorders adds/removes when possible to group all removes before all -// adds. It also adds the hunk header before printint into the stream. -class Hunk { - public: - Hunk(size_t left_start, size_t right_start) - : left_start_(left_start), - right_start_(right_start), - adds_(), - removes_(), - common_() {} - - void PushLine(char edit, const char* line) { - switch (edit) { - case ' ': - ++common_; - FlushEdits(); - hunk_.push_back(std::make_pair(' ', line)); - break; - case '-': - ++removes_; - hunk_removes_.push_back(std::make_pair('-', line)); - break; - case '+': - ++adds_; - hunk_adds_.push_back(std::make_pair('+', line)); - break; - } - } - - void PrintTo(std::ostream* os) { - PrintHeader(os); - FlushEdits(); - for (std::list >::const_iterator it = - hunk_.begin(); - it != hunk_.end(); ++it) { - *os << it->first << it->second << "\n"; - } - } - - bool has_edits() const { return adds_ || removes_; } - - private: - void FlushEdits() { - hunk_.splice(hunk_.end(), hunk_removes_); - hunk_.splice(hunk_.end(), hunk_adds_); - } - - // Print a unified diff header for one hunk. - // The format is - // "@@ -, +, @@" - // where the left/right parts are omitted if unnecessary. - void PrintHeader(std::ostream* ss) const { - *ss << "@@ "; - if (removes_) { - *ss << "-" << left_start_ << "," << (removes_ + common_); - } - if (removes_ && adds_) { - *ss << " "; - } - if (adds_) { - *ss << "+" << right_start_ << "," << (adds_ + common_); - } - *ss << " @@\n"; - } - - size_t left_start_, right_start_; - size_t adds_, removes_, common_; - std::list > hunk_, hunk_adds_, hunk_removes_; -}; - -} // namespace - -// Create a list of diff hunks in Unified diff format. -// Each hunk has a header generated by PrintHeader above plus a body with -// lines prefixed with ' ' for no change, '-' for deletion and '+' for -// addition. -// 'context' represents the desired unchanged prefix/suffix around the diff. -// If two hunks are close enough that their contexts overlap, then they are -// joined into one hunk. -std::string CreateUnifiedDiff(const std::vector& left, - const std::vector& right, - size_t context) { - const std::vector edits = CalculateOptimalEdits(left, right); - - size_t l_i = 0, r_i = 0, edit_i = 0; - std::stringstream ss; - while (edit_i < edits.size()) { - // Find first edit. - while (edit_i < edits.size() && edits[edit_i] == kMatch) { - ++l_i; - ++r_i; - ++edit_i; - } - - // Find the first line to include in the hunk. - const size_t prefix_context = std::min(l_i, context); - Hunk hunk(l_i - prefix_context + 1, r_i - prefix_context + 1); - for (size_t i = prefix_context; i > 0; --i) { - hunk.PushLine(' ', left[l_i - i].c_str()); - } - - // Iterate the edits until we found enough suffix for the hunk or the input - // is over. - size_t n_suffix = 0; - for (; edit_i < edits.size(); ++edit_i) { - if (n_suffix >= context) { - // Continue only if the next hunk is very close. - auto it = edits.begin() + static_cast(edit_i); - while (it != edits.end() && *it == kMatch) ++it; - if (it == edits.end() || - static_cast(it - edits.begin()) - edit_i >= context) { - // There is no next edit or it is too far away. - break; - } - } - - EditType edit = edits[edit_i]; - // Reset count when a non match is found. - n_suffix = edit == kMatch ? n_suffix + 1 : 0; - - if (edit == kMatch || edit == kRemove || edit == kReplace) { - hunk.PushLine(edit == kMatch ? ' ' : '-', left[l_i].c_str()); - } - if (edit == kAdd || edit == kReplace) { - hunk.PushLine('+', right[r_i].c_str()); - } - - // Advance indices, depending on edit type. - l_i += edit != kAdd; - r_i += edit != kRemove; - } - - if (!hunk.has_edits()) { - // We are done. We don't want this hunk. - break; - } - - hunk.PrintTo(&ss); - } - return ss.str(); -} - -} // namespace edit_distance - -namespace { - -// The string representation of the values received in EqFailure() are already -// escaped. Split them on escaped '\n' boundaries. Leave all other escaped -// characters the same. -std::vector SplitEscapedString(const std::string& str) { - std::vector lines; - size_t start = 0, end = str.size(); - if (end > 2 && str[0] == '"' && str[end - 1] == '"') { - ++start; - --end; - } - bool escaped = false; - for (size_t i = start; i + 1 < end; ++i) { - if (escaped) { - escaped = false; - if (str[i] == 'n') { - lines.push_back(str.substr(start, i - start - 1)); - start = i + 1; - } - } else { - escaped = str[i] == '\\'; - } - } - lines.push_back(str.substr(start, end - start)); - return lines; -} - -} // namespace - -// Constructs and returns the message for an equality assertion -// (e.g. ASSERT_EQ, EXPECT_STREQ, etc) failure. -// -// The first four parameters are the expressions used in the assertion -// and their values, as strings. For example, for ASSERT_EQ(foo, bar) -// where foo is 5 and bar is 6, we have: -// -// lhs_expression: "foo" -// rhs_expression: "bar" -// lhs_value: "5" -// rhs_value: "6" -// -// The ignoring_case parameter is true if and only if the assertion is a -// *_STRCASEEQ*. When it's true, the string "Ignoring case" will -// be inserted into the message. -AssertionResult EqFailure(const char* lhs_expression, - const char* rhs_expression, - const std::string& lhs_value, - const std::string& rhs_value, bool ignoring_case) { - Message msg; - msg << "Expected equality of these values:"; - msg << "\n " << lhs_expression; - if (lhs_value != lhs_expression) { - msg << "\n Which is: " << lhs_value; - } - msg << "\n " << rhs_expression; - if (rhs_value != rhs_expression) { - msg << "\n Which is: " << rhs_value; - } - - if (ignoring_case) { - msg << "\nIgnoring case"; - } - - if (!lhs_value.empty() && !rhs_value.empty()) { - const std::vector lhs_lines = SplitEscapedString(lhs_value); - const std::vector rhs_lines = SplitEscapedString(rhs_value); - if (lhs_lines.size() > 1 || rhs_lines.size() > 1) { - msg << "\nWith diff:\n" - << edit_distance::CreateUnifiedDiff(lhs_lines, rhs_lines); - } - } - - return AssertionFailure() << msg; -} - -// Constructs a failure message for Boolean assertions such as EXPECT_TRUE. -std::string GetBoolAssertionFailureMessage( - const AssertionResult& assertion_result, const char* expression_text, - const char* actual_predicate_value, const char* expected_predicate_value) { - const char* actual_message = assertion_result.message(); - Message msg; - msg << "Value of: " << expression_text - << "\n Actual: " << actual_predicate_value; - if (actual_message[0] != '\0') msg << " (" << actual_message << ")"; - msg << "\nExpected: " << expected_predicate_value; - return msg.GetString(); -} - -// Helper function for implementing ASSERT_NEAR. -AssertionResult DoubleNearPredFormat(const char* expr1, const char* expr2, - const char* abs_error_expr, double val1, - double val2, double abs_error) { - const double diff = fabs(val1 - val2); - if (diff <= abs_error) return AssertionSuccess(); - - // Find the value which is closest to zero. - const double min_abs = std::min(fabs(val1), fabs(val2)); - // Find the distance to the next double from that value. - const double epsilon = - nextafter(min_abs, std::numeric_limits::infinity()) - min_abs; - // Detect the case where abs_error is so small that EXPECT_NEAR is - // effectively the same as EXPECT_EQUAL, and give an informative error - // message so that the situation can be more easily understood without - // requiring exotic floating-point knowledge. - // Don't do an epsilon check if abs_error is zero because that implies - // that an equality check was actually intended. - if (!(std::isnan)(val1) && !(std::isnan)(val2) && abs_error > 0 && - abs_error < epsilon) { - return AssertionFailure() - << "The difference between " << expr1 << " and " << expr2 << " is " - << diff << ", where\n" - << expr1 << " evaluates to " << val1 << ",\n" - << expr2 << " evaluates to " << val2 << ".\nThe abs_error parameter " - << abs_error_expr << " evaluates to " << abs_error - << " which is smaller than the minimum distance between doubles for " - "numbers of this magnitude which is " - << epsilon - << ", thus making this EXPECT_NEAR check equivalent to " - "EXPECT_EQUAL. Consider using EXPECT_DOUBLE_EQ instead."; - } - return AssertionFailure() - << "The difference between " << expr1 << " and " << expr2 << " is " - << diff << ", which exceeds " << abs_error_expr << ", where\n" - << expr1 << " evaluates to " << val1 << ",\n" - << expr2 << " evaluates to " << val2 << ", and\n" - << abs_error_expr << " evaluates to " << abs_error << "."; -} - -// Helper template for implementing FloatLE() and DoubleLE(). -template -AssertionResult FloatingPointLE(const char* expr1, const char* expr2, - RawType val1, RawType val2) { - // Returns success if val1 is less than val2, - if (val1 < val2) { - return AssertionSuccess(); - } - - // or if val1 is almost equal to val2. - const FloatingPoint lhs(val1), rhs(val2); - if (lhs.AlmostEquals(rhs)) { - return AssertionSuccess(); - } - - // Note that the above two checks will both fail if either val1 or - // val2 is NaN, as the IEEE floating-point standard requires that - // any predicate involving a NaN must return false. - - ::std::stringstream val1_ss; - val1_ss << std::setprecision(std::numeric_limits::digits10 + 2) - << val1; - - ::std::stringstream val2_ss; - val2_ss << std::setprecision(std::numeric_limits::digits10 + 2) - << val2; - - return AssertionFailure() - << "Expected: (" << expr1 << ") <= (" << expr2 << ")\n" - << " Actual: " << StringStreamToString(&val1_ss) << " vs " - << StringStreamToString(&val2_ss); -} - -} // namespace internal - -// Asserts that val1 is less than, or almost equal to, val2. Fails -// otherwise. In particular, it fails if either val1 or val2 is NaN. -AssertionResult FloatLE(const char* expr1, const char* expr2, float val1, - float val2) { - return internal::FloatingPointLE(expr1, expr2, val1, val2); -} - -// Asserts that val1 is less than, or almost equal to, val2. Fails -// otherwise. In particular, it fails if either val1 or val2 is NaN. -AssertionResult DoubleLE(const char* expr1, const char* expr2, double val1, - double val2) { - return internal::FloatingPointLE(expr1, expr2, val1, val2); -} - -namespace internal { - -// The helper function for {ASSERT|EXPECT}_STREQ. -AssertionResult CmpHelperSTREQ(const char* lhs_expression, - const char* rhs_expression, const char* lhs, - const char* rhs) { - if (String::CStringEquals(lhs, rhs)) { - return AssertionSuccess(); - } - - return EqFailure(lhs_expression, rhs_expression, PrintToString(lhs), - PrintToString(rhs), false); -} - -// The helper function for {ASSERT|EXPECT}_STRCASEEQ. -AssertionResult CmpHelperSTRCASEEQ(const char* lhs_expression, - const char* rhs_expression, const char* lhs, - const char* rhs) { - if (String::CaseInsensitiveCStringEquals(lhs, rhs)) { - return AssertionSuccess(); - } - - return EqFailure(lhs_expression, rhs_expression, PrintToString(lhs), - PrintToString(rhs), true); -} - -// The helper function for {ASSERT|EXPECT}_STRNE. -AssertionResult CmpHelperSTRNE(const char* s1_expression, - const char* s2_expression, const char* s1, - const char* s2) { - if (!String::CStringEquals(s1, s2)) { - return AssertionSuccess(); - } else { - return AssertionFailure() - << "Expected: (" << s1_expression << ") != (" << s2_expression - << "), actual: \"" << s1 << "\" vs \"" << s2 << "\""; - } -} - -// The helper function for {ASSERT|EXPECT}_STRCASENE. -AssertionResult CmpHelperSTRCASENE(const char* s1_expression, - const char* s2_expression, const char* s1, - const char* s2) { - if (!String::CaseInsensitiveCStringEquals(s1, s2)) { - return AssertionSuccess(); - } else { - return AssertionFailure() - << "Expected: (" << s1_expression << ") != (" << s2_expression - << ") (ignoring case), actual: \"" << s1 << "\" vs \"" << s2 << "\""; - } -} - -} // namespace internal - -namespace { - -// Helper functions for implementing IsSubString() and IsNotSubstring(). - -// This group of overloaded functions return true if and only if needle -// is a substring of haystack. NULL is considered a substring of -// itself only. - -bool IsSubstringPred(const char* needle, const char* haystack) { - if (needle == nullptr || haystack == nullptr) return needle == haystack; - - return strstr(haystack, needle) != nullptr; -} - -bool IsSubstringPred(const wchar_t* needle, const wchar_t* haystack) { - if (needle == nullptr || haystack == nullptr) return needle == haystack; - - return wcsstr(haystack, needle) != nullptr; -} - -// StringType here can be either ::std::string or ::std::wstring. -template -bool IsSubstringPred(const StringType& needle, const StringType& haystack) { - return haystack.find(needle) != StringType::npos; -} - -// This function implements either IsSubstring() or IsNotSubstring(), -// depending on the value of the expected_to_be_substring parameter. -// StringType here can be const char*, const wchar_t*, ::std::string, -// or ::std::wstring. -template -AssertionResult IsSubstringImpl(bool expected_to_be_substring, - const char* needle_expr, - const char* haystack_expr, - const StringType& needle, - const StringType& haystack) { - if (IsSubstringPred(needle, haystack) == expected_to_be_substring) - return AssertionSuccess(); - - const bool is_wide_string = sizeof(needle[0]) > 1; - const char* const begin_string_quote = is_wide_string ? "L\"" : "\""; - return AssertionFailure() - << "Value of: " << needle_expr << "\n" - << " Actual: " << begin_string_quote << needle << "\"\n" - << "Expected: " << (expected_to_be_substring ? "" : "not ") - << "a substring of " << haystack_expr << "\n" - << "Which is: " << begin_string_quote << haystack << "\""; -} - -} // namespace - -// IsSubstring() and IsNotSubstring() check whether needle is a -// substring of haystack (NULL is considered a substring of itself -// only), and return an appropriate error message when they fail. - -AssertionResult IsSubstring(const char* needle_expr, const char* haystack_expr, - const char* needle, const char* haystack) { - return IsSubstringImpl(true, needle_expr, haystack_expr, needle, haystack); -} - -AssertionResult IsSubstring(const char* needle_expr, const char* haystack_expr, - const wchar_t* needle, const wchar_t* haystack) { - return IsSubstringImpl(true, needle_expr, haystack_expr, needle, haystack); -} - -AssertionResult IsNotSubstring(const char* needle_expr, - const char* haystack_expr, const char* needle, - const char* haystack) { - return IsSubstringImpl(false, needle_expr, haystack_expr, needle, haystack); -} - -AssertionResult IsNotSubstring(const char* needle_expr, - const char* haystack_expr, const wchar_t* needle, - const wchar_t* haystack) { - return IsSubstringImpl(false, needle_expr, haystack_expr, needle, haystack); -} - -AssertionResult IsSubstring(const char* needle_expr, const char* haystack_expr, - const ::std::string& needle, - const ::std::string& haystack) { - return IsSubstringImpl(true, needle_expr, haystack_expr, needle, haystack); -} - -AssertionResult IsNotSubstring(const char* needle_expr, - const char* haystack_expr, - const ::std::string& needle, - const ::std::string& haystack) { - return IsSubstringImpl(false, needle_expr, haystack_expr, needle, haystack); -} - -#if GTEST_HAS_STD_WSTRING -AssertionResult IsSubstring(const char* needle_expr, const char* haystack_expr, - const ::std::wstring& needle, - const ::std::wstring& haystack) { - return IsSubstringImpl(true, needle_expr, haystack_expr, needle, haystack); -} - -AssertionResult IsNotSubstring(const char* needle_expr, - const char* haystack_expr, - const ::std::wstring& needle, - const ::std::wstring& haystack) { - return IsSubstringImpl(false, needle_expr, haystack_expr, needle, haystack); -} -#endif // GTEST_HAS_STD_WSTRING - -namespace internal { - -#if GTEST_OS_WINDOWS - -namespace { - -// Helper function for IsHRESULT{SuccessFailure} predicates -AssertionResult HRESULTFailureHelper(const char* expr, const char* expected, - long hr) { // NOLINT -#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_TV_TITLE - - // Windows CE doesn't support FormatMessage. - const char error_text[] = ""; - -#else - - // Looks up the human-readable system message for the HRESULT code - // and since we're not passing any params to FormatMessage, we don't - // want inserts expanded. - const DWORD kFlags = - FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS; - const DWORD kBufSize = 4096; - // Gets the system's human readable message string for this HRESULT. - char error_text[kBufSize] = {'\0'}; - DWORD message_length = ::FormatMessageA(kFlags, - 0, // no source, we're asking system - static_cast(hr), // the error - 0, // no line width restrictions - error_text, // output buffer - kBufSize, // buf size - nullptr); // no arguments for inserts - // Trims tailing white space (FormatMessage leaves a trailing CR-LF) - for (; message_length && IsSpace(error_text[message_length - 1]); - --message_length) { - error_text[message_length - 1] = '\0'; - } - -#endif // GTEST_OS_WINDOWS_MOBILE - - const std::string error_hex("0x" + String::FormatHexInt(hr)); - return ::testing::AssertionFailure() - << "Expected: " << expr << " " << expected << ".\n" - << " Actual: " << error_hex << " " << error_text << "\n"; -} - -} // namespace - -AssertionResult IsHRESULTSuccess(const char* expr, long hr) { // NOLINT - if (SUCCEEDED(hr)) { - return AssertionSuccess(); - } - return HRESULTFailureHelper(expr, "succeeds", hr); -} - -AssertionResult IsHRESULTFailure(const char* expr, long hr) { // NOLINT - if (FAILED(hr)) { - return AssertionSuccess(); - } - return HRESULTFailureHelper(expr, "fails", hr); -} - -#endif // GTEST_OS_WINDOWS - -// Utility functions for encoding Unicode text (wide strings) in -// UTF-8. - -// A Unicode code-point can have up to 21 bits, and is encoded in UTF-8 -// like this: -// -// Code-point length Encoding -// 0 - 7 bits 0xxxxxxx -// 8 - 11 bits 110xxxxx 10xxxxxx -// 12 - 16 bits 1110xxxx 10xxxxxx 10xxxxxx -// 17 - 21 bits 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - -// The maximum code-point a one-byte UTF-8 sequence can represent. -constexpr uint32_t kMaxCodePoint1 = (static_cast(1) << 7) - 1; - -// The maximum code-point a two-byte UTF-8 sequence can represent. -constexpr uint32_t kMaxCodePoint2 = (static_cast(1) << (5 + 6)) - 1; - -// The maximum code-point a three-byte UTF-8 sequence can represent. -constexpr uint32_t kMaxCodePoint3 = - (static_cast(1) << (4 + 2 * 6)) - 1; - -// The maximum code-point a four-byte UTF-8 sequence can represent. -constexpr uint32_t kMaxCodePoint4 = - (static_cast(1) << (3 + 3 * 6)) - 1; - -// Chops off the n lowest bits from a bit pattern. Returns the n -// lowest bits. As a side effect, the original bit pattern will be -// shifted to the right by n bits. -inline uint32_t ChopLowBits(uint32_t* bits, int n) { - const uint32_t low_bits = *bits & ((static_cast(1) << n) - 1); - *bits >>= n; - return low_bits; -} - -// Converts a Unicode code point to a narrow string in UTF-8 encoding. -// code_point parameter is of type uint32_t because wchar_t may not be -// wide enough to contain a code point. -// If the code_point is not a valid Unicode code point -// (i.e. outside of Unicode range U+0 to U+10FFFF) it will be converted -// to "(Invalid Unicode 0xXXXXXXXX)". -std::string CodePointToUtf8(uint32_t code_point) { - if (code_point > kMaxCodePoint4) { - return "(Invalid Unicode 0x" + String::FormatHexUInt32(code_point) + ")"; - } - - char str[5]; // Big enough for the largest valid code point. - if (code_point <= kMaxCodePoint1) { - str[1] = '\0'; - str[0] = static_cast(code_point); // 0xxxxxxx - } else if (code_point <= kMaxCodePoint2) { - str[2] = '\0'; - str[1] = static_cast(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx - str[0] = static_cast(0xC0 | code_point); // 110xxxxx - } else if (code_point <= kMaxCodePoint3) { - str[3] = '\0'; - str[2] = static_cast(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx - str[1] = static_cast(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx - str[0] = static_cast(0xE0 | code_point); // 1110xxxx - } else { // code_point <= kMaxCodePoint4 - str[4] = '\0'; - str[3] = static_cast(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx - str[2] = static_cast(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx - str[1] = static_cast(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx - str[0] = static_cast(0xF0 | code_point); // 11110xxx - } - return str; -} - -// The following two functions only make sense if the system -// uses UTF-16 for wide string encoding. All supported systems -// with 16 bit wchar_t (Windows, Cygwin) do use UTF-16. - -// Determines if the arguments constitute UTF-16 surrogate pair -// and thus should be combined into a single Unicode code point -// using CreateCodePointFromUtf16SurrogatePair. -inline bool IsUtf16SurrogatePair(wchar_t first, wchar_t second) { - return sizeof(wchar_t) == 2 && (first & 0xFC00) == 0xD800 && - (second & 0xFC00) == 0xDC00; -} - -// Creates a Unicode code point from UTF16 surrogate pair. -inline uint32_t CreateCodePointFromUtf16SurrogatePair(wchar_t first, - wchar_t second) { - const auto first_u = static_cast(first); - const auto second_u = static_cast(second); - const uint32_t mask = (1 << 10) - 1; - return (sizeof(wchar_t) == 2) - ? (((first_u & mask) << 10) | (second_u & mask)) + 0x10000 - : - // This function should not be called when the condition is - // false, but we provide a sensible default in case it is. - first_u; -} - -// Converts a wide string to a narrow string in UTF-8 encoding. -// The wide string is assumed to have the following encoding: -// UTF-16 if sizeof(wchar_t) == 2 (on Windows, Cygwin) -// UTF-32 if sizeof(wchar_t) == 4 (on Linux) -// Parameter str points to a null-terminated wide string. -// Parameter num_chars may additionally limit the number -// of wchar_t characters processed. -1 is used when the entire string -// should be processed. -// If the string contains code points that are not valid Unicode code points -// (i.e. outside of Unicode range U+0 to U+10FFFF) they will be output -// as '(Invalid Unicode 0xXXXXXXXX)'. If the string is in UTF16 encoding -// and contains invalid UTF-16 surrogate pairs, values in those pairs -// will be encoded as individual Unicode characters from Basic Normal Plane. -std::string WideStringToUtf8(const wchar_t* str, int num_chars) { - if (num_chars == -1) num_chars = static_cast(wcslen(str)); - - ::std::stringstream stream; - for (int i = 0; i < num_chars; ++i) { - uint32_t unicode_code_point; - - if (str[i] == L'\0') { - break; - } else if (i + 1 < num_chars && IsUtf16SurrogatePair(str[i], str[i + 1])) { - unicode_code_point = - CreateCodePointFromUtf16SurrogatePair(str[i], str[i + 1]); - i++; - } else { - unicode_code_point = static_cast(str[i]); - } - - stream << CodePointToUtf8(unicode_code_point); - } - return StringStreamToString(&stream); -} - -// Converts a wide C string to an std::string using the UTF-8 encoding. -// NULL will be converted to "(null)". -std::string String::ShowWideCString(const wchar_t* wide_c_str) { - if (wide_c_str == nullptr) return "(null)"; - - return internal::WideStringToUtf8(wide_c_str, -1); -} - -// Compares two wide C strings. Returns true if and only if they have the -// same content. -// -// Unlike wcscmp(), this function can handle NULL argument(s). A NULL -// C string is considered different to any non-NULL C string, -// including the empty string. -bool String::WideCStringEquals(const wchar_t* lhs, const wchar_t* rhs) { - if (lhs == nullptr) return rhs == nullptr; - - if (rhs == nullptr) return false; - - return wcscmp(lhs, rhs) == 0; -} - -// Helper function for *_STREQ on wide strings. -AssertionResult CmpHelperSTREQ(const char* lhs_expression, - const char* rhs_expression, const wchar_t* lhs, - const wchar_t* rhs) { - if (String::WideCStringEquals(lhs, rhs)) { - return AssertionSuccess(); - } - - return EqFailure(lhs_expression, rhs_expression, PrintToString(lhs), - PrintToString(rhs), false); -} - -// Helper function for *_STRNE on wide strings. -AssertionResult CmpHelperSTRNE(const char* s1_expression, - const char* s2_expression, const wchar_t* s1, - const wchar_t* s2) { - if (!String::WideCStringEquals(s1, s2)) { - return AssertionSuccess(); - } - - return AssertionFailure() - << "Expected: (" << s1_expression << ") != (" << s2_expression - << "), actual: " << PrintToString(s1) << " vs " << PrintToString(s2); -} - -// Compares two C strings, ignoring case. Returns true if and only if they have -// the same content. -// -// Unlike strcasecmp(), this function can handle NULL argument(s). A -// NULL C string is considered different to any non-NULL C string, -// including the empty string. -bool String::CaseInsensitiveCStringEquals(const char* lhs, const char* rhs) { - if (lhs == nullptr) return rhs == nullptr; - if (rhs == nullptr) return false; - return posix::StrCaseCmp(lhs, rhs) == 0; -} - -// Compares two wide C strings, ignoring case. Returns true if and only if they -// have the same content. -// -// Unlike wcscasecmp(), this function can handle NULL argument(s). -// A NULL C string is considered different to any non-NULL wide C string, -// including the empty string. -// NB: The implementations on different platforms slightly differ. -// On windows, this method uses _wcsicmp which compares according to LC_CTYPE -// environment variable. On GNU platform this method uses wcscasecmp -// which compares according to LC_CTYPE category of the current locale. -// On MacOS X, it uses towlower, which also uses LC_CTYPE category of the -// current locale. -bool String::CaseInsensitiveWideCStringEquals(const wchar_t* lhs, - const wchar_t* rhs) { - if (lhs == nullptr) return rhs == nullptr; - - if (rhs == nullptr) return false; - -#if GTEST_OS_WINDOWS - return _wcsicmp(lhs, rhs) == 0; -#elif GTEST_OS_LINUX && !GTEST_OS_LINUX_ANDROID - return wcscasecmp(lhs, rhs) == 0; -#else - // Android, Mac OS X and Cygwin don't define wcscasecmp. - // Other unknown OSes may not define it either. - wint_t left, right; - do { - left = towlower(static_cast(*lhs++)); - right = towlower(static_cast(*rhs++)); - } while (left && left == right); - return left == right; -#endif // OS selector -} - -// Returns true if and only if str ends with the given suffix, ignoring case. -// Any string is considered to end with an empty suffix. -bool String::EndsWithCaseInsensitive(const std::string& str, - const std::string& suffix) { - const size_t str_len = str.length(); - const size_t suffix_len = suffix.length(); - return (str_len >= suffix_len) && - CaseInsensitiveCStringEquals(str.c_str() + str_len - suffix_len, - suffix.c_str()); -} - -// Formats an int value as "%02d". -std::string String::FormatIntWidth2(int value) { - return FormatIntWidthN(value, 2); -} - -// Formats an int value to given width with leading zeros. -std::string String::FormatIntWidthN(int value, int width) { - std::stringstream ss; - ss << std::setfill('0') << std::setw(width) << value; - return ss.str(); -} - -// Formats an int value as "%X". -std::string String::FormatHexUInt32(uint32_t value) { - std::stringstream ss; - ss << std::hex << std::uppercase << value; - return ss.str(); -} - -// Formats an int value as "%X". -std::string String::FormatHexInt(int value) { - return FormatHexUInt32(static_cast(value)); -} - -// Formats a byte as "%02X". -std::string String::FormatByte(unsigned char value) { - std::stringstream ss; - ss << std::setfill('0') << std::setw(2) << std::hex << std::uppercase - << static_cast(value); - return ss.str(); -} - -// Converts the buffer in a stringstream to an std::string, converting NUL -// bytes to "\\0" along the way. -std::string StringStreamToString(::std::stringstream* ss) { - const ::std::string& str = ss->str(); - const char* const start = str.c_str(); - const char* const end = start + str.length(); - - std::string result; - result.reserve(static_cast(2 * (end - start))); - for (const char* ch = start; ch != end; ++ch) { - if (*ch == '\0') { - result += "\\0"; // Replaces NUL with "\\0"; - } else { - result += *ch; - } - } - - return result; -} - -// Appends the user-supplied message to the Google-Test-generated message. -std::string AppendUserMessage(const std::string& gtest_msg, - const Message& user_msg) { - // Appends the user message if it's non-empty. - const std::string user_msg_string = user_msg.GetString(); - if (user_msg_string.empty()) { - return gtest_msg; - } - if (gtest_msg.empty()) { - return user_msg_string; - } - return gtest_msg + "\n" + user_msg_string; -} - -} // namespace internal - -// class TestResult - -// Creates an empty TestResult. -TestResult::TestResult() - : death_test_count_(0), start_timestamp_(0), elapsed_time_(0) {} - -// D'tor. -TestResult::~TestResult() {} - -// Returns the i-th test part result among all the results. i can -// range from 0 to total_part_count() - 1. If i is not in that range, -// aborts the program. -const TestPartResult& TestResult::GetTestPartResult(int i) const { - if (i < 0 || i >= total_part_count()) internal::posix::Abort(); - return test_part_results_.at(static_cast(i)); -} - -// Returns the i-th test property. i can range from 0 to -// test_property_count() - 1. If i is not in that range, aborts the -// program. -const TestProperty& TestResult::GetTestProperty(int i) const { - if (i < 0 || i >= test_property_count()) internal::posix::Abort(); - return test_properties_.at(static_cast(i)); -} - -// Clears the test part results. -void TestResult::ClearTestPartResults() { test_part_results_.clear(); } - -// Adds a test part result to the list. -void TestResult::AddTestPartResult(const TestPartResult& test_part_result) { - test_part_results_.push_back(test_part_result); -} - -// Adds a test property to the list. If a property with the same key as the -// supplied property is already represented, the value of this test_property -// replaces the old value for that key. -void TestResult::RecordProperty(const std::string& xml_element, - const TestProperty& test_property) { - if (!ValidateTestProperty(xml_element, test_property)) { - return; - } - internal::MutexLock lock(&test_properties_mutex_); - const std::vector::iterator property_with_matching_key = - std::find_if(test_properties_.begin(), test_properties_.end(), - internal::TestPropertyKeyIs(test_property.key())); - if (property_with_matching_key == test_properties_.end()) { - test_properties_.push_back(test_property); - return; - } - property_with_matching_key->SetValue(test_property.value()); -} - -// The list of reserved attributes used in the element of XML -// output. -static const char* const kReservedTestSuitesAttributes[] = { - "disabled", "errors", "failures", "name", - "random_seed", "tests", "time", "timestamp"}; - -// The list of reserved attributes used in the element of XML -// output. -static const char* const kReservedTestSuiteAttributes[] = { - "disabled", "errors", "failures", "name", - "tests", "time", "timestamp", "skipped"}; - -// The list of reserved attributes used in the element of XML output. -static const char* const kReservedTestCaseAttributes[] = { - "classname", "name", "status", "time", - "type_param", "value_param", "file", "line"}; - -// Use a slightly different set for allowed output to ensure existing tests can -// still RecordProperty("result") or "RecordProperty(timestamp") -static const char* const kReservedOutputTestCaseAttributes[] = { - "classname", "name", "status", "time", "type_param", - "value_param", "file", "line", "result", "timestamp"}; - -template -std::vector ArrayAsVector(const char* const (&array)[kSize]) { - return std::vector(array, array + kSize); -} - -static std::vector GetReservedAttributesForElement( - const std::string& xml_element) { - if (xml_element == "testsuites") { - return ArrayAsVector(kReservedTestSuitesAttributes); - } else if (xml_element == "testsuite") { - return ArrayAsVector(kReservedTestSuiteAttributes); - } else if (xml_element == "testcase") { - return ArrayAsVector(kReservedTestCaseAttributes); - } else { - GTEST_CHECK_(false) << "Unrecognized xml_element provided: " << xml_element; - } - // This code is unreachable but some compilers may not realizes that. - return std::vector(); -} - -// TODO(jdesprez): Merge the two getReserved attributes once skip is improved -static std::vector GetReservedOutputAttributesForElement( - const std::string& xml_element) { - if (xml_element == "testsuites") { - return ArrayAsVector(kReservedTestSuitesAttributes); - } else if (xml_element == "testsuite") { - return ArrayAsVector(kReservedTestSuiteAttributes); - } else if (xml_element == "testcase") { - return ArrayAsVector(kReservedOutputTestCaseAttributes); - } else { - GTEST_CHECK_(false) << "Unrecognized xml_element provided: " << xml_element; - } - // This code is unreachable but some compilers may not realizes that. - return std::vector(); -} - -static std::string FormatWordList(const std::vector& words) { - Message word_list; - for (size_t i = 0; i < words.size(); ++i) { - if (i > 0 && words.size() > 2) { - word_list << ", "; - } - if (i == words.size() - 1) { - word_list << "and "; - } - word_list << "'" << words[i] << "'"; - } - return word_list.GetString(); -} - -static bool ValidateTestPropertyName( - const std::string& property_name, - const std::vector& reserved_names) { - if (std::find(reserved_names.begin(), reserved_names.end(), property_name) != - reserved_names.end()) { - ADD_FAILURE() << "Reserved key used in RecordProperty(): " << property_name - << " (" << FormatWordList(reserved_names) - << " are reserved by " << GTEST_NAME_ << ")"; - return false; - } - return true; -} - -// Adds a failure if the key is a reserved attribute of the element named -// xml_element. Returns true if the property is valid. -bool TestResult::ValidateTestProperty(const std::string& xml_element, - const TestProperty& test_property) { - return ValidateTestPropertyName(test_property.key(), - GetReservedAttributesForElement(xml_element)); -} - -// Clears the object. -void TestResult::Clear() { - test_part_results_.clear(); - test_properties_.clear(); - death_test_count_ = 0; - elapsed_time_ = 0; -} - -// Returns true off the test part was skipped. -static bool TestPartSkipped(const TestPartResult& result) { - return result.skipped(); -} - -// Returns true if and only if the test was skipped. -bool TestResult::Skipped() const { - return !Failed() && CountIf(test_part_results_, TestPartSkipped) > 0; -} - -// Returns true if and only if the test failed. -bool TestResult::Failed() const { - for (int i = 0; i < total_part_count(); ++i) { - if (GetTestPartResult(i).failed()) return true; - } - return false; -} - -// Returns true if and only if the test part fatally failed. -static bool TestPartFatallyFailed(const TestPartResult& result) { - return result.fatally_failed(); -} - -// Returns true if and only if the test fatally failed. -bool TestResult::HasFatalFailure() const { - return CountIf(test_part_results_, TestPartFatallyFailed) > 0; -} - -// Returns true if and only if the test part non-fatally failed. -static bool TestPartNonfatallyFailed(const TestPartResult& result) { - return result.nonfatally_failed(); -} - -// Returns true if and only if the test has a non-fatal failure. -bool TestResult::HasNonfatalFailure() const { - return CountIf(test_part_results_, TestPartNonfatallyFailed) > 0; -} - -// Gets the number of all test parts. This is the sum of the number -// of successful test parts and the number of failed test parts. -int TestResult::total_part_count() const { - return static_cast(test_part_results_.size()); -} - -// Returns the number of the test properties. -int TestResult::test_property_count() const { - return static_cast(test_properties_.size()); -} - -// class Test - -// Creates a Test object. - -// The c'tor saves the states of all flags. -Test::Test() : gtest_flag_saver_(new GTEST_FLAG_SAVER_) {} - -// The d'tor restores the states of all flags. The actual work is -// done by the d'tor of the gtest_flag_saver_ field, and thus not -// visible here. -Test::~Test() {} - -// Sets up the test fixture. -// -// A sub-class may override this. -void Test::SetUp() {} - -// Tears down the test fixture. -// -// A sub-class may override this. -void Test::TearDown() {} - -// Allows user supplied key value pairs to be recorded for later output. -void Test::RecordProperty(const std::string& key, const std::string& value) { - UnitTest::GetInstance()->RecordProperty(key, value); -} - -// Allows user supplied key value pairs to be recorded for later output. -void Test::RecordProperty(const std::string& key, int value) { - Message value_message; - value_message << value; - RecordProperty(key, value_message.GetString().c_str()); -} - -namespace internal { - -void ReportFailureInUnknownLocation(TestPartResult::Type result_type, - const std::string& message) { - // This function is a friend of UnitTest and as such has access to - // AddTestPartResult. - UnitTest::GetInstance()->AddTestPartResult( - result_type, - nullptr, // No info about the source file where the exception occurred. - -1, // We have no info on which line caused the exception. - message, - ""); // No stack trace, either. -} - -} // namespace internal - -// Google Test requires all tests in the same test suite to use the same test -// fixture class. This function checks if the current test has the -// same fixture class as the first test in the current test suite. If -// yes, it returns true; otherwise it generates a Google Test failure and -// returns false. -bool Test::HasSameFixtureClass() { - internal::UnitTestImpl* const impl = internal::GetUnitTestImpl(); - const TestSuite* const test_suite = impl->current_test_suite(); - - // Info about the first test in the current test suite. - const TestInfo* const first_test_info = test_suite->test_info_list()[0]; - const internal::TypeId first_fixture_id = first_test_info->fixture_class_id_; - const char* const first_test_name = first_test_info->name(); - - // Info about the current test. - const TestInfo* const this_test_info = impl->current_test_info(); - const internal::TypeId this_fixture_id = this_test_info->fixture_class_id_; - const char* const this_test_name = this_test_info->name(); - - if (this_fixture_id != first_fixture_id) { - // Is the first test defined using TEST? - const bool first_is_TEST = first_fixture_id == internal::GetTestTypeId(); - // Is this test defined using TEST? - const bool this_is_TEST = this_fixture_id == internal::GetTestTypeId(); - - if (first_is_TEST || this_is_TEST) { - // Both TEST and TEST_F appear in same test suite, which is incorrect. - // Tell the user how to fix this. - - // Gets the name of the TEST and the name of the TEST_F. Note - // that first_is_TEST and this_is_TEST cannot both be true, as - // the fixture IDs are different for the two tests. - const char* const TEST_name = - first_is_TEST ? first_test_name : this_test_name; - const char* const TEST_F_name = - first_is_TEST ? this_test_name : first_test_name; - - ADD_FAILURE() - << "All tests in the same test suite must use the same test fixture\n" - << "class, so mixing TEST_F and TEST in the same test suite is\n" - << "illegal. In test suite " << this_test_info->test_suite_name() - << ",\n" - << "test " << TEST_F_name << " is defined using TEST_F but\n" - << "test " << TEST_name << " is defined using TEST. You probably\n" - << "want to change the TEST to TEST_F or move it to another test\n" - << "case."; - } else { - // Two fixture classes with the same name appear in two different - // namespaces, which is not allowed. Tell the user how to fix this. - ADD_FAILURE() - << "All tests in the same test suite must use the same test fixture\n" - << "class. However, in test suite " - << this_test_info->test_suite_name() << ",\n" - << "you defined test " << first_test_name << " and test " - << this_test_name << "\n" - << "using two different test fixture classes. This can happen if\n" - << "the two classes are from different namespaces or translation\n" - << "units and have the same name. You should probably rename one\n" - << "of the classes to put the tests into different test suites."; - } - return false; - } - - return true; -} - -#if GTEST_HAS_SEH - -// Adds an "exception thrown" fatal failure to the current test. This -// function returns its result via an output parameter pointer because VC++ -// prohibits creation of objects with destructors on stack in functions -// using __try (see error C2712). -static std::string* FormatSehExceptionMessage(DWORD exception_code, - const char* location) { - Message message; - message << "SEH exception with code 0x" << std::setbase(16) << exception_code - << std::setbase(10) << " thrown in " << location << "."; - - return new std::string(message.GetString()); -} - -#endif // GTEST_HAS_SEH - -namespace internal { - -#if GTEST_HAS_EXCEPTIONS - -// Adds an "exception thrown" fatal failure to the current test. -static std::string FormatCxxExceptionMessage(const char* description, - const char* location) { - Message message; - if (description != nullptr) { - message << "C++ exception with description \"" << description << "\""; - } else { - message << "Unknown C++ exception"; - } - message << " thrown in " << location << "."; - - return message.GetString(); -} - -static std::string PrintTestPartResultToString( - const TestPartResult& test_part_result); - -GoogleTestFailureException::GoogleTestFailureException( - const TestPartResult& failure) - : ::std::runtime_error(PrintTestPartResultToString(failure).c_str()) {} - -#endif // GTEST_HAS_EXCEPTIONS - -// We put these helper functions in the internal namespace as IBM's xlC -// compiler rejects the code if they were declared static. - -// Runs the given method and handles SEH exceptions it throws, when -// SEH is supported; returns the 0-value for type Result in case of an -// SEH exception. (Microsoft compilers cannot handle SEH and C++ -// exceptions in the same function. Therefore, we provide a separate -// wrapper function for handling SEH exceptions.) -template -Result HandleSehExceptionsInMethodIfSupported(T* object, Result (T::*method)(), - const char* location) { -#if GTEST_HAS_SEH - __try { - return (object->*method)(); - } __except (internal::UnitTestOptions::GTestShouldProcessSEH( // NOLINT - GetExceptionCode())) { - // We create the exception message on the heap because VC++ prohibits - // creation of objects with destructors on stack in functions using __try - // (see error C2712). - std::string* exception_message = - FormatSehExceptionMessage(GetExceptionCode(), location); - internal::ReportFailureInUnknownLocation(TestPartResult::kFatalFailure, - *exception_message); - delete exception_message; - return static_cast(0); - } -#else - (void)location; - return (object->*method)(); -#endif // GTEST_HAS_SEH -} - -// Runs the given method and catches and reports C++ and/or SEH-style -// exceptions, if they are supported; returns the 0-value for type -// Result in case of an SEH exception. -template -Result HandleExceptionsInMethodIfSupported(T* object, Result (T::*method)(), - const char* location) { - // NOTE: The user code can affect the way in which Google Test handles - // exceptions by setting GTEST_FLAG(catch_exceptions), but only before - // RUN_ALL_TESTS() starts. It is technically possible to check the flag - // after the exception is caught and either report or re-throw the - // exception based on the flag's value: - // - // try { - // // Perform the test method. - // } catch (...) { - // if (GTEST_FLAG_GET(catch_exceptions)) - // // Report the exception as failure. - // else - // throw; // Re-throws the original exception. - // } - // - // However, the purpose of this flag is to allow the program to drop into - // the debugger when the exception is thrown. On most platforms, once the - // control enters the catch block, the exception origin information is - // lost and the debugger will stop the program at the point of the - // re-throw in this function -- instead of at the point of the original - // throw statement in the code under test. For this reason, we perform - // the check early, sacrificing the ability to affect Google Test's - // exception handling in the method where the exception is thrown. - if (internal::GetUnitTestImpl()->catch_exceptions()) { -#if GTEST_HAS_EXCEPTIONS - try { - return HandleSehExceptionsInMethodIfSupported(object, method, location); - } catch (const AssertionException&) { // NOLINT - // This failure was reported already. - } catch (const internal::GoogleTestFailureException&) { // NOLINT - // This exception type can only be thrown by a failed Google - // Test assertion with the intention of letting another testing - // framework catch it. Therefore we just re-throw it. - throw; - } catch (const std::exception& e) { // NOLINT - internal::ReportFailureInUnknownLocation( - TestPartResult::kFatalFailure, - FormatCxxExceptionMessage(e.what(), location)); - } catch (...) { // NOLINT - internal::ReportFailureInUnknownLocation( - TestPartResult::kFatalFailure, - FormatCxxExceptionMessage(nullptr, location)); - } - return static_cast(0); -#else - return HandleSehExceptionsInMethodIfSupported(object, method, location); -#endif // GTEST_HAS_EXCEPTIONS - } else { - return (object->*method)(); - } -} - -} // namespace internal - -// Runs the test and updates the test result. -void Test::Run() { - if (!HasSameFixtureClass()) return; - - internal::UnitTestImpl* const impl = internal::GetUnitTestImpl(); - impl->os_stack_trace_getter()->UponLeavingGTest(); - internal::HandleExceptionsInMethodIfSupported(this, &Test::SetUp, "SetUp()"); - // We will run the test only if SetUp() was successful and didn't call - // GTEST_SKIP(). - if (!HasFatalFailure() && !IsSkipped()) { - impl->os_stack_trace_getter()->UponLeavingGTest(); - internal::HandleExceptionsInMethodIfSupported(this, &Test::TestBody, - "the test body"); - } - - // However, we want to clean up as much as possible. Hence we will - // always call TearDown(), even if SetUp() or the test body has - // failed. - impl->os_stack_trace_getter()->UponLeavingGTest(); - internal::HandleExceptionsInMethodIfSupported(this, &Test::TearDown, - "TearDown()"); -} - -// Returns true if and only if the current test has a fatal failure. -bool Test::HasFatalFailure() { - return internal::GetUnitTestImpl()->current_test_result()->HasFatalFailure(); -} - -// Returns true if and only if the current test has a non-fatal failure. -bool Test::HasNonfatalFailure() { - return internal::GetUnitTestImpl() - ->current_test_result() - ->HasNonfatalFailure(); -} - -// Returns true if and only if the current test was skipped. -bool Test::IsSkipped() { - return internal::GetUnitTestImpl()->current_test_result()->Skipped(); -} - -// class TestInfo - -// Constructs a TestInfo object. It assumes ownership of the test factory -// object. -TestInfo::TestInfo(const std::string& a_test_suite_name, - const std::string& a_name, const char* a_type_param, - const char* a_value_param, - internal::CodeLocation a_code_location, - internal::TypeId fixture_class_id, - internal::TestFactoryBase* factory) - : test_suite_name_(a_test_suite_name), - name_(a_name), - type_param_(a_type_param ? new std::string(a_type_param) : nullptr), - value_param_(a_value_param ? new std::string(a_value_param) : nullptr), - location_(a_code_location), - fixture_class_id_(fixture_class_id), - should_run_(false), - is_disabled_(false), - matches_filter_(false), - is_in_another_shard_(false), - factory_(factory), - result_() {} - -// Destructs a TestInfo object. -TestInfo::~TestInfo() { delete factory_; } - -namespace internal { - -// Creates a new TestInfo object and registers it with Google Test; -// returns the created object. -// -// Arguments: -// -// test_suite_name: name of the test suite -// name: name of the test -// type_param: the name of the test's type parameter, or NULL if -// this is not a typed or a type-parameterized test. -// value_param: text representation of the test's value parameter, -// or NULL if this is not a value-parameterized test. -// code_location: code location where the test is defined -// fixture_class_id: ID of the test fixture class -// set_up_tc: pointer to the function that sets up the test suite -// tear_down_tc: pointer to the function that tears down the test suite -// factory: pointer to the factory that creates a test object. -// The newly created TestInfo instance will assume -// ownership of the factory object. -TestInfo* MakeAndRegisterTestInfo( - const char* test_suite_name, const char* name, const char* type_param, - const char* value_param, CodeLocation code_location, - TypeId fixture_class_id, SetUpTestSuiteFunc set_up_tc, - TearDownTestSuiteFunc tear_down_tc, TestFactoryBase* factory) { - TestInfo* const test_info = - new TestInfo(test_suite_name, name, type_param, value_param, - code_location, fixture_class_id, factory); - GetUnitTestImpl()->AddTestInfo(set_up_tc, tear_down_tc, test_info); - return test_info; -} - -void ReportInvalidTestSuiteType(const char* test_suite_name, - CodeLocation code_location) { - Message errors; - errors - << "Attempted redefinition of test suite " << test_suite_name << ".\n" - << "All tests in the same test suite must use the same test fixture\n" - << "class. However, in test suite " << test_suite_name << ", you tried\n" - << "to define a test using a fixture class different from the one\n" - << "used earlier. This can happen if the two fixture classes are\n" - << "from different namespaces and have the same name. You should\n" - << "probably rename one of the classes to put the tests into different\n" - << "test suites."; - - GTEST_LOG_(ERROR) << FormatFileLocation(code_location.file.c_str(), - code_location.line) - << " " << errors.GetString(); -} -} // namespace internal - -namespace { - -// A predicate that checks the test name of a TestInfo against a known -// value. -// -// This is used for implementation of the TestSuite class only. We put -// it in the anonymous namespace to prevent polluting the outer -// namespace. -// -// TestNameIs is copyable. -class TestNameIs { - public: - // Constructor. - // - // TestNameIs has NO default constructor. - explicit TestNameIs(const char* name) : name_(name) {} - - // Returns true if and only if the test name of test_info matches name_. - bool operator()(const TestInfo* test_info) const { - return test_info && test_info->name() == name_; - } - - private: - std::string name_; -}; - -} // namespace - -namespace internal { - -// This method expands all parameterized tests registered with macros TEST_P -// and INSTANTIATE_TEST_SUITE_P into regular tests and registers those. -// This will be done just once during the program runtime. -void UnitTestImpl::RegisterParameterizedTests() { - if (!parameterized_tests_registered_) { - parameterized_test_registry_.RegisterTests(); - type_parameterized_test_registry_.CheckForInstantiations(); - parameterized_tests_registered_ = true; - } -} - -} // namespace internal - -// Creates the test object, runs it, records its result, and then -// deletes it. -void TestInfo::Run() { - TestEventListener* repeater = UnitTest::GetInstance()->listeners().repeater(); - if (!should_run_) { - if (is_disabled_ && matches_filter_) repeater->OnTestDisabled(*this); - return; - } - - // Tells UnitTest where to store test result. - internal::UnitTestImpl* const impl = internal::GetUnitTestImpl(); - impl->set_current_test_info(this); - - // Notifies the unit test event listeners that a test is about to start. - repeater->OnTestStart(*this); - result_.set_start_timestamp(internal::GetTimeInMillis()); - internal::Timer timer; - impl->os_stack_trace_getter()->UponLeavingGTest(); - - // Creates the test object. - Test* const test = internal::HandleExceptionsInMethodIfSupported( - factory_, &internal::TestFactoryBase::CreateTest, - "the test fixture's constructor"); - - // Runs the test if the constructor didn't generate a fatal failure or invoke - // GTEST_SKIP(). - // Note that the object will not be null - if (!Test::HasFatalFailure() && !Test::IsSkipped()) { - // This doesn't throw as all user code that can throw are wrapped into - // exception handling code. - test->Run(); - } - - if (test != nullptr) { - // Deletes the test object. - impl->os_stack_trace_getter()->UponLeavingGTest(); - internal::HandleExceptionsInMethodIfSupported( - test, &Test::DeleteSelf_, "the test fixture's destructor"); - } - - result_.set_elapsed_time(timer.Elapsed()); - - // Notifies the unit test event listener that a test has just finished. - repeater->OnTestEnd(*this); - - // Tells UnitTest to stop associating assertion results to this - // test. - impl->set_current_test_info(nullptr); -} - -// Skip and records a skipped test result for this object. -void TestInfo::Skip() { - if (!should_run_) return; - - internal::UnitTestImpl* const impl = internal::GetUnitTestImpl(); - impl->set_current_test_info(this); - - TestEventListener* repeater = UnitTest::GetInstance()->listeners().repeater(); - - // Notifies the unit test event listeners that a test is about to start. - repeater->OnTestStart(*this); - - const TestPartResult test_part_result = - TestPartResult(TestPartResult::kSkip, this->file(), this->line(), ""); - impl->GetTestPartResultReporterForCurrentThread()->ReportTestPartResult( - test_part_result); - - // Notifies the unit test event listener that a test has just finished. - repeater->OnTestEnd(*this); - impl->set_current_test_info(nullptr); -} - -// class TestSuite - -// Gets the number of successful tests in this test suite. -int TestSuite::successful_test_count() const { - return CountIf(test_info_list_, TestPassed); -} - -// Gets the number of successful tests in this test suite. -int TestSuite::skipped_test_count() const { - return CountIf(test_info_list_, TestSkipped); -} - -// Gets the number of failed tests in this test suite. -int TestSuite::failed_test_count() const { - return CountIf(test_info_list_, TestFailed); -} - -// Gets the number of disabled tests that will be reported in the XML report. -int TestSuite::reportable_disabled_test_count() const { - return CountIf(test_info_list_, TestReportableDisabled); -} - -// Gets the number of disabled tests in this test suite. -int TestSuite::disabled_test_count() const { - return CountIf(test_info_list_, TestDisabled); -} - -// Gets the number of tests to be printed in the XML report. -int TestSuite::reportable_test_count() const { - return CountIf(test_info_list_, TestReportable); -} - -// Get the number of tests in this test suite that should run. -int TestSuite::test_to_run_count() const { - return CountIf(test_info_list_, ShouldRunTest); -} - -// Gets the number of all tests. -int TestSuite::total_test_count() const { - return static_cast(test_info_list_.size()); -} - -// Creates a TestSuite with the given name. -// -// Arguments: -// -// a_name: name of the test suite -// a_type_param: the name of the test suite's type parameter, or NULL if -// this is not a typed or a type-parameterized test suite. -// set_up_tc: pointer to the function that sets up the test suite -// tear_down_tc: pointer to the function that tears down the test suite -TestSuite::TestSuite(const char* a_name, const char* a_type_param, - internal::SetUpTestSuiteFunc set_up_tc, - internal::TearDownTestSuiteFunc tear_down_tc) - : name_(a_name), - type_param_(a_type_param ? new std::string(a_type_param) : nullptr), - set_up_tc_(set_up_tc), - tear_down_tc_(tear_down_tc), - should_run_(false), - start_timestamp_(0), - elapsed_time_(0) {} - -// Destructor of TestSuite. -TestSuite::~TestSuite() { - // Deletes every Test in the collection. - ForEach(test_info_list_, internal::Delete); -} - -// Returns the i-th test among all the tests. i can range from 0 to -// total_test_count() - 1. If i is not in that range, returns NULL. -const TestInfo* TestSuite::GetTestInfo(int i) const { - const int index = GetElementOr(test_indices_, i, -1); - return index < 0 ? nullptr : test_info_list_[static_cast(index)]; -} - -// Returns the i-th test among all the tests. i can range from 0 to -// total_test_count() - 1. If i is not in that range, returns NULL. -TestInfo* TestSuite::GetMutableTestInfo(int i) { - const int index = GetElementOr(test_indices_, i, -1); - return index < 0 ? nullptr : test_info_list_[static_cast(index)]; -} - -// Adds a test to this test suite. Will delete the test upon -// destruction of the TestSuite object. -void TestSuite::AddTestInfo(TestInfo* test_info) { - test_info_list_.push_back(test_info); - test_indices_.push_back(static_cast(test_indices_.size())); -} - -// Runs every test in this TestSuite. -void TestSuite::Run() { - if (!should_run_) return; - - internal::UnitTestImpl* const impl = internal::GetUnitTestImpl(); - impl->set_current_test_suite(this); - - TestEventListener* repeater = UnitTest::GetInstance()->listeners().repeater(); - - // Call both legacy and the new API - repeater->OnTestSuiteStart(*this); -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - repeater->OnTestCaseStart(*this); -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - impl->os_stack_trace_getter()->UponLeavingGTest(); - internal::HandleExceptionsInMethodIfSupported( - this, &TestSuite::RunSetUpTestSuite, "SetUpTestSuite()"); - - const bool skip_all = ad_hoc_test_result().Failed(); - - start_timestamp_ = internal::GetTimeInMillis(); - internal::Timer timer; - for (int i = 0; i < total_test_count(); i++) { - if (skip_all) { - GetMutableTestInfo(i)->Skip(); - } else { - GetMutableTestInfo(i)->Run(); - } - if (GTEST_FLAG_GET(fail_fast) && - GetMutableTestInfo(i)->result()->Failed()) { - for (int j = i + 1; j < total_test_count(); j++) { - GetMutableTestInfo(j)->Skip(); - } - break; - } - } - elapsed_time_ = timer.Elapsed(); - - impl->os_stack_trace_getter()->UponLeavingGTest(); - internal::HandleExceptionsInMethodIfSupported( - this, &TestSuite::RunTearDownTestSuite, "TearDownTestSuite()"); - - // Call both legacy and the new API - repeater->OnTestSuiteEnd(*this); -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - repeater->OnTestCaseEnd(*this); -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - impl->set_current_test_suite(nullptr); -} - -// Skips all tests under this TestSuite. -void TestSuite::Skip() { - if (!should_run_) return; - - internal::UnitTestImpl* const impl = internal::GetUnitTestImpl(); - impl->set_current_test_suite(this); - - TestEventListener* repeater = UnitTest::GetInstance()->listeners().repeater(); - - // Call both legacy and the new API - repeater->OnTestSuiteStart(*this); -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - repeater->OnTestCaseStart(*this); -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - for (int i = 0; i < total_test_count(); i++) { - GetMutableTestInfo(i)->Skip(); - } - - // Call both legacy and the new API - repeater->OnTestSuiteEnd(*this); - // Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - repeater->OnTestCaseEnd(*this); -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - impl->set_current_test_suite(nullptr); -} - -// Clears the results of all tests in this test suite. -void TestSuite::ClearResult() { - ad_hoc_test_result_.Clear(); - ForEach(test_info_list_, TestInfo::ClearTestResult); -} - -// Shuffles the tests in this test suite. -void TestSuite::ShuffleTests(internal::Random* random) { - Shuffle(random, &test_indices_); -} - -// Restores the test order to before the first shuffle. -void TestSuite::UnshuffleTests() { - for (size_t i = 0; i < test_indices_.size(); i++) { - test_indices_[i] = static_cast(i); - } -} - -// Formats a countable noun. Depending on its quantity, either the -// singular form or the plural form is used. e.g. -// -// FormatCountableNoun(1, "formula", "formuli") returns "1 formula". -// FormatCountableNoun(5, "book", "books") returns "5 books". -static std::string FormatCountableNoun(int count, const char* singular_form, - const char* plural_form) { - return internal::StreamableToString(count) + " " + - (count == 1 ? singular_form : plural_form); -} - -// Formats the count of tests. -static std::string FormatTestCount(int test_count) { - return FormatCountableNoun(test_count, "test", "tests"); -} - -// Formats the count of test suites. -static std::string FormatTestSuiteCount(int test_suite_count) { - return FormatCountableNoun(test_suite_count, "test suite", "test suites"); -} - -// Converts a TestPartResult::Type enum to human-friendly string -// representation. Both kNonFatalFailure and kFatalFailure are translated -// to "Failure", as the user usually doesn't care about the difference -// between the two when viewing the test result. -static const char* TestPartResultTypeToString(TestPartResult::Type type) { - switch (type) { - case TestPartResult::kSkip: - return "Skipped\n"; - case TestPartResult::kSuccess: - return "Success"; - - case TestPartResult::kNonFatalFailure: - case TestPartResult::kFatalFailure: -#ifdef _MSC_VER - return "error: "; -#else - return "Failure\n"; -#endif - default: - return "Unknown result type"; - } -} - -namespace internal { -namespace { -enum class GTestColor { kDefault, kRed, kGreen, kYellow }; -} // namespace - -// Prints a TestPartResult to an std::string. -static std::string PrintTestPartResultToString( - const TestPartResult& test_part_result) { - return (Message() << internal::FormatFileLocation( - test_part_result.file_name(), - test_part_result.line_number()) - << " " - << TestPartResultTypeToString(test_part_result.type()) - << test_part_result.message()) - .GetString(); -} - -// Prints a TestPartResult. -static void PrintTestPartResult(const TestPartResult& test_part_result) { - const std::string& result = PrintTestPartResultToString(test_part_result); - printf("%s\n", result.c_str()); - fflush(stdout); - // If the test program runs in Visual Studio or a debugger, the - // following statements add the test part result message to the Output - // window such that the user can double-click on it to jump to the - // corresponding source code location; otherwise they do nothing. -#if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MOBILE - // We don't call OutputDebugString*() on Windows Mobile, as printing - // to stdout is done by OutputDebugString() there already - we don't - // want the same message printed twice. - ::OutputDebugStringA(result.c_str()); - ::OutputDebugStringA("\n"); -#endif -} - -// class PrettyUnitTestResultPrinter -#if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_WINDOWS_PHONE && \ - !GTEST_OS_WINDOWS_RT && !GTEST_OS_WINDOWS_MINGW - -// Returns the character attribute for the given color. -static WORD GetColorAttribute(GTestColor color) { - switch (color) { - case GTestColor::kRed: - return FOREGROUND_RED; - case GTestColor::kGreen: - return FOREGROUND_GREEN; - case GTestColor::kYellow: - return FOREGROUND_RED | FOREGROUND_GREEN; - default: - return 0; - } -} - -static int GetBitOffset(WORD color_mask) { - if (color_mask == 0) return 0; - - int bitOffset = 0; - while ((color_mask & 1) == 0) { - color_mask >>= 1; - ++bitOffset; - } - return bitOffset; -} - -static WORD GetNewColor(GTestColor color, WORD old_color_attrs) { - // Let's reuse the BG - static const WORD background_mask = BACKGROUND_BLUE | BACKGROUND_GREEN | - BACKGROUND_RED | BACKGROUND_INTENSITY; - static const WORD foreground_mask = FOREGROUND_BLUE | FOREGROUND_GREEN | - FOREGROUND_RED | FOREGROUND_INTENSITY; - const WORD existing_bg = old_color_attrs & background_mask; - - WORD new_color = - GetColorAttribute(color) | existing_bg | FOREGROUND_INTENSITY; - static const int bg_bitOffset = GetBitOffset(background_mask); - static const int fg_bitOffset = GetBitOffset(foreground_mask); - - if (((new_color & background_mask) >> bg_bitOffset) == - ((new_color & foreground_mask) >> fg_bitOffset)) { - new_color ^= FOREGROUND_INTENSITY; // invert intensity - } - return new_color; -} - -#else - -// Returns the ANSI color code for the given color. GTestColor::kDefault is -// an invalid input. -static const char* GetAnsiColorCode(GTestColor color) { - switch (color) { - case GTestColor::kRed: - return "1"; - case GTestColor::kGreen: - return "2"; - case GTestColor::kYellow: - return "3"; - default: - return nullptr; - } -} - -#endif // GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MOBILE - -// Returns true if and only if Google Test should use colors in the output. -bool ShouldUseColor(bool stdout_is_tty) { - std::string c = GTEST_FLAG_GET(color); - const char* const gtest_color = c.c_str(); - - if (String::CaseInsensitiveCStringEquals(gtest_color, "auto")) { -#if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MINGW - // On Windows the TERM variable is usually not set, but the - // console there does support colors. - return stdout_is_tty; -#else - // On non-Windows platforms, we rely on the TERM variable. - const char* const term = posix::GetEnv("TERM"); - const bool term_supports_color = - String::CStringEquals(term, "xterm") || - String::CStringEquals(term, "xterm-color") || - String::CStringEquals(term, "xterm-256color") || - String::CStringEquals(term, "screen") || - String::CStringEquals(term, "screen-256color") || - String::CStringEquals(term, "tmux") || - String::CStringEquals(term, "tmux-256color") || - String::CStringEquals(term, "rxvt-unicode") || - String::CStringEquals(term, "rxvt-unicode-256color") || - String::CStringEquals(term, "linux") || - String::CStringEquals(term, "cygwin"); - return stdout_is_tty && term_supports_color; -#endif // GTEST_OS_WINDOWS - } - - return String::CaseInsensitiveCStringEquals(gtest_color, "yes") || - String::CaseInsensitiveCStringEquals(gtest_color, "true") || - String::CaseInsensitiveCStringEquals(gtest_color, "t") || - String::CStringEquals(gtest_color, "1"); - // We take "yes", "true", "t", and "1" as meaning "yes". If the - // value is neither one of these nor "auto", we treat it as "no" to - // be conservative. -} - -// Helpers for printing colored strings to stdout. Note that on Windows, we -// cannot simply emit special characters and have the terminal change colors. -// This routine must actually emit the characters rather than return a string -// that would be colored when printed, as can be done on Linux. - -GTEST_ATTRIBUTE_PRINTF_(2, 3) -static void ColoredPrintf(GTestColor color, const char* fmt, ...) { - va_list args; - va_start(args, fmt); - - static const bool in_color_mode = - ShouldUseColor(posix::IsATTY(posix::FileNo(stdout)) != 0); - const bool use_color = in_color_mode && (color != GTestColor::kDefault); - - if (!use_color) { - vprintf(fmt, args); - va_end(args); - return; - } - -#if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_WINDOWS_PHONE && \ - !GTEST_OS_WINDOWS_RT && !GTEST_OS_WINDOWS_MINGW - const HANDLE stdout_handle = GetStdHandle(STD_OUTPUT_HANDLE); - - // Gets the current text color. - CONSOLE_SCREEN_BUFFER_INFO buffer_info; - GetConsoleScreenBufferInfo(stdout_handle, &buffer_info); - const WORD old_color_attrs = buffer_info.wAttributes; - const WORD new_color = GetNewColor(color, old_color_attrs); - - // We need to flush the stream buffers into the console before each - // SetConsoleTextAttribute call lest it affect the text that is already - // printed but has not yet reached the console. - fflush(stdout); - SetConsoleTextAttribute(stdout_handle, new_color); - - vprintf(fmt, args); - - fflush(stdout); - // Restores the text color. - SetConsoleTextAttribute(stdout_handle, old_color_attrs); -#else - printf("\033[0;3%sm", GetAnsiColorCode(color)); - vprintf(fmt, args); - printf("\033[m"); // Resets the terminal to default. -#endif // GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MOBILE - va_end(args); -} - -// Text printed in Google Test's text output and --gtest_list_tests -// output to label the type parameter and value parameter for a test. -static const char kTypeParamLabel[] = "TypeParam"; -static const char kValueParamLabel[] = "GetParam()"; - -static void PrintFullTestCommentIfPresent(const TestInfo& test_info) { - const char* const type_param = test_info.type_param(); - const char* const value_param = test_info.value_param(); - - if (type_param != nullptr || value_param != nullptr) { - printf(", where "); - if (type_param != nullptr) { - printf("%s = %s", kTypeParamLabel, type_param); - if (value_param != nullptr) printf(" and "); - } - if (value_param != nullptr) { - printf("%s = %s", kValueParamLabel, value_param); - } - } -} - -// This class implements the TestEventListener interface. -// -// Class PrettyUnitTestResultPrinter is copyable. -class PrettyUnitTestResultPrinter : public TestEventListener { - public: - PrettyUnitTestResultPrinter() {} - static void PrintTestName(const char* test_suite, const char* test) { - printf("%s.%s", test_suite, test); - } - - // The following methods override what's in the TestEventListener class. - void OnTestProgramStart(const UnitTest& /*unit_test*/) override {} - void OnTestIterationStart(const UnitTest& unit_test, int iteration) override; - void OnEnvironmentsSetUpStart(const UnitTest& unit_test) override; - void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) override {} -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - void OnTestCaseStart(const TestCase& test_case) override; -#else - void OnTestSuiteStart(const TestSuite& test_suite) override; -#endif // OnTestCaseStart - - void OnTestStart(const TestInfo& test_info) override; - void OnTestDisabled(const TestInfo& test_info) override; - - void OnTestPartResult(const TestPartResult& result) override; - void OnTestEnd(const TestInfo& test_info) override; -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - void OnTestCaseEnd(const TestCase& test_case) override; -#else - void OnTestSuiteEnd(const TestSuite& test_suite) override; -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - void OnEnvironmentsTearDownStart(const UnitTest& unit_test) override; - void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) override {} - void OnTestIterationEnd(const UnitTest& unit_test, int iteration) override; - void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {} - - private: - static void PrintFailedTests(const UnitTest& unit_test); - static void PrintFailedTestSuites(const UnitTest& unit_test); - static void PrintSkippedTests(const UnitTest& unit_test); -}; - -// Fired before each iteration of tests starts. -void PrettyUnitTestResultPrinter::OnTestIterationStart( - const UnitTest& unit_test, int iteration) { - if (GTEST_FLAG_GET(repeat) != 1) - printf("\nRepeating all tests (iteration %d) . . .\n\n", iteration + 1); - - std::string f = GTEST_FLAG_GET(filter); - const char* const filter = f.c_str(); - - // Prints the filter if it's not *. This reminds the user that some - // tests may be skipped. - if (!String::CStringEquals(filter, kUniversalFilter)) { - ColoredPrintf(GTestColor::kYellow, "Note: %s filter = %s\n", GTEST_NAME_, - filter); - } - - if (internal::ShouldShard(kTestTotalShards, kTestShardIndex, false)) { - const int32_t shard_index = Int32FromEnvOrDie(kTestShardIndex, -1); - ColoredPrintf(GTestColor::kYellow, "Note: This is test shard %d of %s.\n", - static_cast(shard_index) + 1, - internal::posix::GetEnv(kTestTotalShards)); - } - - if (GTEST_FLAG_GET(shuffle)) { - ColoredPrintf(GTestColor::kYellow, - "Note: Randomizing tests' orders with a seed of %d .\n", - unit_test.random_seed()); - } - - ColoredPrintf(GTestColor::kGreen, "[==========] "); - printf("Running %s from %s.\n", - FormatTestCount(unit_test.test_to_run_count()).c_str(), - FormatTestSuiteCount(unit_test.test_suite_to_run_count()).c_str()); - fflush(stdout); -} - -void PrettyUnitTestResultPrinter::OnEnvironmentsSetUpStart( - const UnitTest& /*unit_test*/) { - ColoredPrintf(GTestColor::kGreen, "[----------] "); - printf("Global test environment set-up.\n"); - fflush(stdout); -} - -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -void PrettyUnitTestResultPrinter::OnTestCaseStart(const TestCase& test_case) { - const std::string counts = - FormatCountableNoun(test_case.test_to_run_count(), "test", "tests"); - ColoredPrintf(GTestColor::kGreen, "[----------] "); - printf("%s from %s", counts.c_str(), test_case.name()); - if (test_case.type_param() == nullptr) { - printf("\n"); - } else { - printf(", where %s = %s\n", kTypeParamLabel, test_case.type_param()); - } - fflush(stdout); -} -#else -void PrettyUnitTestResultPrinter::OnTestSuiteStart( - const TestSuite& test_suite) { - const std::string counts = - FormatCountableNoun(test_suite.test_to_run_count(), "test", "tests"); - ColoredPrintf(GTestColor::kGreen, "[----------] "); - printf("%s from %s", counts.c_str(), test_suite.name()); - if (test_suite.type_param() == nullptr) { - printf("\n"); - } else { - printf(", where %s = %s\n", kTypeParamLabel, test_suite.type_param()); - } - fflush(stdout); -} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -void PrettyUnitTestResultPrinter::OnTestStart(const TestInfo& test_info) { - ColoredPrintf(GTestColor::kGreen, "[ RUN ] "); - PrintTestName(test_info.test_suite_name(), test_info.name()); - printf("\n"); - fflush(stdout); -} - -void PrettyUnitTestResultPrinter::OnTestDisabled(const TestInfo& test_info) { - ColoredPrintf(GTestColor::kYellow, "[ DISABLED ] "); - PrintTestName(test_info.test_suite_name(), test_info.name()); - printf("\n"); - fflush(stdout); -} - -// Called after an assertion failure. -void PrettyUnitTestResultPrinter::OnTestPartResult( - const TestPartResult& result) { - switch (result.type()) { - // If the test part succeeded, we don't need to do anything. - case TestPartResult::kSuccess: - return; - default: - // Print failure message from the assertion - // (e.g. expected this and got that). - PrintTestPartResult(result); - fflush(stdout); - } -} - -void PrettyUnitTestResultPrinter::OnTestEnd(const TestInfo& test_info) { - if (test_info.result()->Passed()) { - ColoredPrintf(GTestColor::kGreen, "[ OK ] "); - } else if (test_info.result()->Skipped()) { - ColoredPrintf(GTestColor::kGreen, "[ SKIPPED ] "); - } else { - ColoredPrintf(GTestColor::kRed, "[ FAILED ] "); - } - PrintTestName(test_info.test_suite_name(), test_info.name()); - if (test_info.result()->Failed()) PrintFullTestCommentIfPresent(test_info); - - if (GTEST_FLAG_GET(print_time)) { - printf(" (%s ms)\n", - internal::StreamableToString(test_info.result()->elapsed_time()) - .c_str()); - } else { - printf("\n"); - } - fflush(stdout); -} - -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -void PrettyUnitTestResultPrinter::OnTestCaseEnd(const TestCase& test_case) { - if (!GTEST_FLAG_GET(print_time)) return; - - const std::string counts = - FormatCountableNoun(test_case.test_to_run_count(), "test", "tests"); - ColoredPrintf(GTestColor::kGreen, "[----------] "); - printf("%s from %s (%s ms total)\n\n", counts.c_str(), test_case.name(), - internal::StreamableToString(test_case.elapsed_time()).c_str()); - fflush(stdout); -} -#else -void PrettyUnitTestResultPrinter::OnTestSuiteEnd(const TestSuite& test_suite) { - if (!GTEST_FLAG_GET(print_time)) return; - - const std::string counts = - FormatCountableNoun(test_suite.test_to_run_count(), "test", "tests"); - ColoredPrintf(GTestColor::kGreen, "[----------] "); - printf("%s from %s (%s ms total)\n\n", counts.c_str(), test_suite.name(), - internal::StreamableToString(test_suite.elapsed_time()).c_str()); - fflush(stdout); -} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -void PrettyUnitTestResultPrinter::OnEnvironmentsTearDownStart( - const UnitTest& /*unit_test*/) { - ColoredPrintf(GTestColor::kGreen, "[----------] "); - printf("Global test environment tear-down\n"); - fflush(stdout); -} - -// Internal helper for printing the list of failed tests. -void PrettyUnitTestResultPrinter::PrintFailedTests(const UnitTest& unit_test) { - const int failed_test_count = unit_test.failed_test_count(); - ColoredPrintf(GTestColor::kRed, "[ FAILED ] "); - printf("%s, listed below:\n", FormatTestCount(failed_test_count).c_str()); - - for (int i = 0; i < unit_test.total_test_suite_count(); ++i) { - const TestSuite& test_suite = *unit_test.GetTestSuite(i); - if (!test_suite.should_run() || (test_suite.failed_test_count() == 0)) { - continue; - } - for (int j = 0; j < test_suite.total_test_count(); ++j) { - const TestInfo& test_info = *test_suite.GetTestInfo(j); - if (!test_info.should_run() || !test_info.result()->Failed()) { - continue; - } - ColoredPrintf(GTestColor::kRed, "[ FAILED ] "); - printf("%s.%s", test_suite.name(), test_info.name()); - PrintFullTestCommentIfPresent(test_info); - printf("\n"); - } - } - printf("\n%2d FAILED %s\n", failed_test_count, - failed_test_count == 1 ? "TEST" : "TESTS"); -} - -// Internal helper for printing the list of test suite failures not covered by -// PrintFailedTests. -void PrettyUnitTestResultPrinter::PrintFailedTestSuites( - const UnitTest& unit_test) { - int suite_failure_count = 0; - for (int i = 0; i < unit_test.total_test_suite_count(); ++i) { - const TestSuite& test_suite = *unit_test.GetTestSuite(i); - if (!test_suite.should_run()) { - continue; - } - if (test_suite.ad_hoc_test_result().Failed()) { - ColoredPrintf(GTestColor::kRed, "[ FAILED ] "); - printf("%s: SetUpTestSuite or TearDownTestSuite\n", test_suite.name()); - ++suite_failure_count; - } - } - if (suite_failure_count > 0) { - printf("\n%2d FAILED TEST %s\n", suite_failure_count, - suite_failure_count == 1 ? "SUITE" : "SUITES"); - } -} - -// Internal helper for printing the list of skipped tests. -void PrettyUnitTestResultPrinter::PrintSkippedTests(const UnitTest& unit_test) { - const int skipped_test_count = unit_test.skipped_test_count(); - if (skipped_test_count == 0) { - return; - } - - for (int i = 0; i < unit_test.total_test_suite_count(); ++i) { - const TestSuite& test_suite = *unit_test.GetTestSuite(i); - if (!test_suite.should_run() || (test_suite.skipped_test_count() == 0)) { - continue; - } - for (int j = 0; j < test_suite.total_test_count(); ++j) { - const TestInfo& test_info = *test_suite.GetTestInfo(j); - if (!test_info.should_run() || !test_info.result()->Skipped()) { - continue; - } - ColoredPrintf(GTestColor::kGreen, "[ SKIPPED ] "); - printf("%s.%s", test_suite.name(), test_info.name()); - printf("\n"); - } - } -} - -void PrettyUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test, - int /*iteration*/) { - ColoredPrintf(GTestColor::kGreen, "[==========] "); - printf("%s from %s ran.", - FormatTestCount(unit_test.test_to_run_count()).c_str(), - FormatTestSuiteCount(unit_test.test_suite_to_run_count()).c_str()); - if (GTEST_FLAG_GET(print_time)) { - printf(" (%s ms total)", - internal::StreamableToString(unit_test.elapsed_time()).c_str()); - } - printf("\n"); - ColoredPrintf(GTestColor::kGreen, "[ PASSED ] "); - printf("%s.\n", FormatTestCount(unit_test.successful_test_count()).c_str()); - - const int skipped_test_count = unit_test.skipped_test_count(); - if (skipped_test_count > 0) { - ColoredPrintf(GTestColor::kGreen, "[ SKIPPED ] "); - printf("%s, listed below:\n", FormatTestCount(skipped_test_count).c_str()); - PrintSkippedTests(unit_test); - } - - if (!unit_test.Passed()) { - PrintFailedTests(unit_test); - PrintFailedTestSuites(unit_test); - } - - int num_disabled = unit_test.reportable_disabled_test_count(); - if (num_disabled && !GTEST_FLAG_GET(also_run_disabled_tests)) { - if (unit_test.Passed()) { - printf("\n"); // Add a spacer if no FAILURE banner is displayed. - } - ColoredPrintf(GTestColor::kYellow, " YOU HAVE %d DISABLED %s\n\n", - num_disabled, num_disabled == 1 ? "TEST" : "TESTS"); - } - // Ensure that Google Test output is printed before, e.g., heapchecker output. - fflush(stdout); -} - -// End PrettyUnitTestResultPrinter - -// This class implements the TestEventListener interface. -// -// Class BriefUnitTestResultPrinter is copyable. -class BriefUnitTestResultPrinter : public TestEventListener { - public: - BriefUnitTestResultPrinter() {} - static void PrintTestName(const char* test_suite, const char* test) { - printf("%s.%s", test_suite, test); - } - - // The following methods override what's in the TestEventListener class. - void OnTestProgramStart(const UnitTest& /*unit_test*/) override {} - void OnTestIterationStart(const UnitTest& /*unit_test*/, - int /*iteration*/) override {} - void OnEnvironmentsSetUpStart(const UnitTest& /*unit_test*/) override {} - void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) override {} -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - void OnTestCaseStart(const TestCase& /*test_case*/) override {} -#else - void OnTestSuiteStart(const TestSuite& /*test_suite*/) override {} -#endif // OnTestCaseStart - - void OnTestStart(const TestInfo& /*test_info*/) override {} - void OnTestDisabled(const TestInfo& /*test_info*/) override {} - - void OnTestPartResult(const TestPartResult& result) override; - void OnTestEnd(const TestInfo& test_info) override; -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - void OnTestCaseEnd(const TestCase& /*test_case*/) override {} -#else - void OnTestSuiteEnd(const TestSuite& /*test_suite*/) override {} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - void OnEnvironmentsTearDownStart(const UnitTest& /*unit_test*/) override {} - void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) override {} - void OnTestIterationEnd(const UnitTest& unit_test, int iteration) override; - void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {} -}; - -// Called after an assertion failure. -void BriefUnitTestResultPrinter::OnTestPartResult( - const TestPartResult& result) { - switch (result.type()) { - // If the test part succeeded, we don't need to do anything. - case TestPartResult::kSuccess: - return; - default: - // Print failure message from the assertion - // (e.g. expected this and got that). - PrintTestPartResult(result); - fflush(stdout); - } -} - -void BriefUnitTestResultPrinter::OnTestEnd(const TestInfo& test_info) { - if (test_info.result()->Failed()) { - ColoredPrintf(GTestColor::kRed, "[ FAILED ] "); - PrintTestName(test_info.test_suite_name(), test_info.name()); - PrintFullTestCommentIfPresent(test_info); - - if (GTEST_FLAG_GET(print_time)) { - printf(" (%s ms)\n", - internal::StreamableToString(test_info.result()->elapsed_time()) - .c_str()); - } else { - printf("\n"); - } - fflush(stdout); - } -} - -void BriefUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test, - int /*iteration*/) { - ColoredPrintf(GTestColor::kGreen, "[==========] "); - printf("%s from %s ran.", - FormatTestCount(unit_test.test_to_run_count()).c_str(), - FormatTestSuiteCount(unit_test.test_suite_to_run_count()).c_str()); - if (GTEST_FLAG_GET(print_time)) { - printf(" (%s ms total)", - internal::StreamableToString(unit_test.elapsed_time()).c_str()); - } - printf("\n"); - ColoredPrintf(GTestColor::kGreen, "[ PASSED ] "); - printf("%s.\n", FormatTestCount(unit_test.successful_test_count()).c_str()); - - const int skipped_test_count = unit_test.skipped_test_count(); - if (skipped_test_count > 0) { - ColoredPrintf(GTestColor::kGreen, "[ SKIPPED ] "); - printf("%s.\n", FormatTestCount(skipped_test_count).c_str()); - } - - int num_disabled = unit_test.reportable_disabled_test_count(); - if (num_disabled && !GTEST_FLAG_GET(also_run_disabled_tests)) { - if (unit_test.Passed()) { - printf("\n"); // Add a spacer if no FAILURE banner is displayed. - } - ColoredPrintf(GTestColor::kYellow, " YOU HAVE %d DISABLED %s\n\n", - num_disabled, num_disabled == 1 ? "TEST" : "TESTS"); - } - // Ensure that Google Test output is printed before, e.g., heapchecker output. - fflush(stdout); -} - -// End BriefUnitTestResultPrinter - -// class TestEventRepeater -// -// This class forwards events to other event listeners. -class TestEventRepeater : public TestEventListener { - public: - TestEventRepeater() : forwarding_enabled_(true) {} - ~TestEventRepeater() override; - void Append(TestEventListener* listener); - TestEventListener* Release(TestEventListener* listener); - - // Controls whether events will be forwarded to listeners_. Set to false - // in death test child processes. - bool forwarding_enabled() const { return forwarding_enabled_; } - void set_forwarding_enabled(bool enable) { forwarding_enabled_ = enable; } - - void OnTestProgramStart(const UnitTest& unit_test) override; - void OnTestIterationStart(const UnitTest& unit_test, int iteration) override; - void OnEnvironmentsSetUpStart(const UnitTest& unit_test) override; - void OnEnvironmentsSetUpEnd(const UnitTest& unit_test) override; -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - void OnTestCaseStart(const TestSuite& parameter) override; -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - void OnTestSuiteStart(const TestSuite& parameter) override; - void OnTestStart(const TestInfo& test_info) override; - void OnTestDisabled(const TestInfo& test_info) override; - void OnTestPartResult(const TestPartResult& result) override; - void OnTestEnd(const TestInfo& test_info) override; -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - void OnTestCaseEnd(const TestCase& parameter) override; -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - void OnTestSuiteEnd(const TestSuite& parameter) override; - void OnEnvironmentsTearDownStart(const UnitTest& unit_test) override; - void OnEnvironmentsTearDownEnd(const UnitTest& unit_test) override; - void OnTestIterationEnd(const UnitTest& unit_test, int iteration) override; - void OnTestProgramEnd(const UnitTest& unit_test) override; - - private: - // Controls whether events will be forwarded to listeners_. Set to false - // in death test child processes. - bool forwarding_enabled_; - // The list of listeners that receive events. - std::vector listeners_; - - TestEventRepeater(const TestEventRepeater&) = delete; - TestEventRepeater& operator=(const TestEventRepeater&) = delete; -}; - -TestEventRepeater::~TestEventRepeater() { - ForEach(listeners_, Delete); -} - -void TestEventRepeater::Append(TestEventListener* listener) { - listeners_.push_back(listener); -} - -TestEventListener* TestEventRepeater::Release(TestEventListener* listener) { - for (size_t i = 0; i < listeners_.size(); ++i) { - if (listeners_[i] == listener) { - listeners_.erase(listeners_.begin() + static_cast(i)); - return listener; - } - } - - return nullptr; -} - -// Since most methods are very similar, use macros to reduce boilerplate. -// This defines a member that forwards the call to all listeners. -#define GTEST_REPEATER_METHOD_(Name, Type) \ - void TestEventRepeater::Name(const Type& parameter) { \ - if (forwarding_enabled_) { \ - for (size_t i = 0; i < listeners_.size(); i++) { \ - listeners_[i]->Name(parameter); \ - } \ - } \ - } -// This defines a member that forwards the call to all listeners in reverse -// order. -#define GTEST_REVERSE_REPEATER_METHOD_(Name, Type) \ - void TestEventRepeater::Name(const Type& parameter) { \ - if (forwarding_enabled_) { \ - for (size_t i = listeners_.size(); i != 0; i--) { \ - listeners_[i - 1]->Name(parameter); \ - } \ - } \ - } - -GTEST_REPEATER_METHOD_(OnTestProgramStart, UnitTest) -GTEST_REPEATER_METHOD_(OnEnvironmentsSetUpStart, UnitTest) -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -GTEST_REPEATER_METHOD_(OnTestCaseStart, TestSuite) -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -GTEST_REPEATER_METHOD_(OnTestSuiteStart, TestSuite) -GTEST_REPEATER_METHOD_(OnTestStart, TestInfo) -GTEST_REPEATER_METHOD_(OnTestDisabled, TestInfo) -GTEST_REPEATER_METHOD_(OnTestPartResult, TestPartResult) -GTEST_REPEATER_METHOD_(OnEnvironmentsTearDownStart, UnitTest) -GTEST_REVERSE_REPEATER_METHOD_(OnEnvironmentsSetUpEnd, UnitTest) -GTEST_REVERSE_REPEATER_METHOD_(OnEnvironmentsTearDownEnd, UnitTest) -GTEST_REVERSE_REPEATER_METHOD_(OnTestEnd, TestInfo) -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -GTEST_REVERSE_REPEATER_METHOD_(OnTestCaseEnd, TestSuite) -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -GTEST_REVERSE_REPEATER_METHOD_(OnTestSuiteEnd, TestSuite) -GTEST_REVERSE_REPEATER_METHOD_(OnTestProgramEnd, UnitTest) - -#undef GTEST_REPEATER_METHOD_ -#undef GTEST_REVERSE_REPEATER_METHOD_ - -void TestEventRepeater::OnTestIterationStart(const UnitTest& unit_test, - int iteration) { - if (forwarding_enabled_) { - for (size_t i = 0; i < listeners_.size(); i++) { - listeners_[i]->OnTestIterationStart(unit_test, iteration); - } - } -} - -void TestEventRepeater::OnTestIterationEnd(const UnitTest& unit_test, - int iteration) { - if (forwarding_enabled_) { - for (size_t i = listeners_.size(); i > 0; i--) { - listeners_[i - 1]->OnTestIterationEnd(unit_test, iteration); - } - } -} - -// End TestEventRepeater - -// This class generates an XML output file. -class XmlUnitTestResultPrinter : public EmptyTestEventListener { - public: - explicit XmlUnitTestResultPrinter(const char* output_file); - - void OnTestIterationEnd(const UnitTest& unit_test, int iteration) override; - void ListTestsMatchingFilter(const std::vector& test_suites); - - // Prints an XML summary of all unit tests. - static void PrintXmlTestsList(std::ostream* stream, - const std::vector& test_suites); - - private: - // Is c a whitespace character that is normalized to a space character - // when it appears in an XML attribute value? - static bool IsNormalizableWhitespace(unsigned char c) { - return c == '\t' || c == '\n' || c == '\r'; - } - - // May c appear in a well-formed XML document? - // https://www.w3.org/TR/REC-xml/#charsets - static bool IsValidXmlCharacter(unsigned char c) { - return IsNormalizableWhitespace(c) || c >= 0x20; - } - - // Returns an XML-escaped copy of the input string str. If - // is_attribute is true, the text is meant to appear as an attribute - // value, and normalizable whitespace is preserved by replacing it - // with character references. - static std::string EscapeXml(const std::string& str, bool is_attribute); - - // Returns the given string with all characters invalid in XML removed. - static std::string RemoveInvalidXmlCharacters(const std::string& str); - - // Convenience wrapper around EscapeXml when str is an attribute value. - static std::string EscapeXmlAttribute(const std::string& str) { - return EscapeXml(str, true); - } - - // Convenience wrapper around EscapeXml when str is not an attribute value. - static std::string EscapeXmlText(const char* str) { - return EscapeXml(str, false); - } - - // Verifies that the given attribute belongs to the given element and - // streams the attribute as XML. - static void OutputXmlAttribute(std::ostream* stream, - const std::string& element_name, - const std::string& name, - const std::string& value); - - // Streams an XML CDATA section, escaping invalid CDATA sequences as needed. - static void OutputXmlCDataSection(::std::ostream* stream, const char* data); - - // Streams a test suite XML stanza containing the given test result. - // - // Requires: result.Failed() - static void OutputXmlTestSuiteForTestResult(::std::ostream* stream, - const TestResult& result); - - // Streams an XML representation of a TestResult object. - static void OutputXmlTestResult(::std::ostream* stream, - const TestResult& result); - - // Streams an XML representation of a TestInfo object. - static void OutputXmlTestInfo(::std::ostream* stream, - const char* test_suite_name, - const TestInfo& test_info); - - // Prints an XML representation of a TestSuite object - static void PrintXmlTestSuite(::std::ostream* stream, - const TestSuite& test_suite); - - // Prints an XML summary of unit_test to output stream out. - static void PrintXmlUnitTest(::std::ostream* stream, - const UnitTest& unit_test); - - // Produces a string representing the test properties in a result as space - // delimited XML attributes based on the property key="value" pairs. - // When the std::string is not empty, it includes a space at the beginning, - // to delimit this attribute from prior attributes. - static std::string TestPropertiesAsXmlAttributes(const TestResult& result); - - // Streams an XML representation of the test properties of a TestResult - // object. - static void OutputXmlTestProperties(std::ostream* stream, - const TestResult& result); - - // The output file. - const std::string output_file_; - - XmlUnitTestResultPrinter(const XmlUnitTestResultPrinter&) = delete; - XmlUnitTestResultPrinter& operator=(const XmlUnitTestResultPrinter&) = delete; -}; - -// Creates a new XmlUnitTestResultPrinter. -XmlUnitTestResultPrinter::XmlUnitTestResultPrinter(const char* output_file) - : output_file_(output_file) { - if (output_file_.empty()) { - GTEST_LOG_(FATAL) << "XML output file may not be null"; - } -} - -// Called after the unit test ends. -void XmlUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test, - int /*iteration*/) { - FILE* xmlout = OpenFileForWriting(output_file_); - std::stringstream stream; - PrintXmlUnitTest(&stream, unit_test); - fprintf(xmlout, "%s", StringStreamToString(&stream).c_str()); - fclose(xmlout); -} - -void XmlUnitTestResultPrinter::ListTestsMatchingFilter( - const std::vector& test_suites) { - FILE* xmlout = OpenFileForWriting(output_file_); - std::stringstream stream; - PrintXmlTestsList(&stream, test_suites); - fprintf(xmlout, "%s", StringStreamToString(&stream).c_str()); - fclose(xmlout); -} - -// Returns an XML-escaped copy of the input string str. If is_attribute -// is true, the text is meant to appear as an attribute value, and -// normalizable whitespace is preserved by replacing it with character -// references. -// -// Invalid XML characters in str, if any, are stripped from the output. -// It is expected that most, if not all, of the text processed by this -// module will consist of ordinary English text. -// If this module is ever modified to produce version 1.1 XML output, -// most invalid characters can be retained using character references. -std::string XmlUnitTestResultPrinter::EscapeXml(const std::string& str, - bool is_attribute) { - Message m; - - for (size_t i = 0; i < str.size(); ++i) { - const char ch = str[i]; - switch (ch) { - case '<': - m << "<"; - break; - case '>': - m << ">"; - break; - case '&': - m << "&"; - break; - case '\'': - if (is_attribute) - m << "'"; - else - m << '\''; - break; - case '"': - if (is_attribute) - m << """; - else - m << '"'; - break; - default: - if (IsValidXmlCharacter(static_cast(ch))) { - if (is_attribute && - IsNormalizableWhitespace(static_cast(ch))) - m << "&#x" << String::FormatByte(static_cast(ch)) - << ";"; - else - m << ch; - } - break; - } - } - - return m.GetString(); -} - -// Returns the given string with all characters invalid in XML removed. -// Currently invalid characters are dropped from the string. An -// alternative is to replace them with certain characters such as . or ?. -std::string XmlUnitTestResultPrinter::RemoveInvalidXmlCharacters( - const std::string& str) { - std::string output; - output.reserve(str.size()); - for (std::string::const_iterator it = str.begin(); it != str.end(); ++it) - if (IsValidXmlCharacter(static_cast(*it))) - output.push_back(*it); - - return output; -} - -// The following routines generate an XML representation of a UnitTest -// object. -// -// This is how Google Test concepts map to the DTD: -// -// <-- corresponds to a UnitTest object -// <-- corresponds to a TestSuite object -// <-- corresponds to a TestInfo object -// ... -// ... -// ... -// <-- individual assertion failures -// -// -// - -// Formats the given time in milliseconds as seconds. -std::string FormatTimeInMillisAsSeconds(TimeInMillis ms) { - ::std::stringstream ss; - ss << (static_cast(ms) * 1e-3); - return ss.str(); -} - -static bool PortableLocaltime(time_t seconds, struct tm* out) { -#if defined(_MSC_VER) - return localtime_s(out, &seconds) == 0; -#elif defined(__MINGW32__) || defined(__MINGW64__) - // MINGW provides neither localtime_r nor localtime_s, but uses - // Windows' localtime(), which has a thread-local tm buffer. - struct tm* tm_ptr = localtime(&seconds); // NOLINT - if (tm_ptr == nullptr) return false; - *out = *tm_ptr; - return true; -#elif defined(__STDC_LIB_EXT1__) - // Uses localtime_s when available as localtime_r is only available from - // C23 standard. - return localtime_s(&seconds, out) != nullptr; -#else - return localtime_r(&seconds, out) != nullptr; -#endif -} - -// Converts the given epoch time in milliseconds to a date string in the ISO -// 8601 format, without the timezone information. -std::string FormatEpochTimeInMillisAsIso8601(TimeInMillis ms) { - struct tm time_struct; - if (!PortableLocaltime(static_cast(ms / 1000), &time_struct)) - return ""; - // YYYY-MM-DDThh:mm:ss.sss - return StreamableToString(time_struct.tm_year + 1900) + "-" + - String::FormatIntWidth2(time_struct.tm_mon + 1) + "-" + - String::FormatIntWidth2(time_struct.tm_mday) + "T" + - String::FormatIntWidth2(time_struct.tm_hour) + ":" + - String::FormatIntWidth2(time_struct.tm_min) + ":" + - String::FormatIntWidth2(time_struct.tm_sec) + "." + - String::FormatIntWidthN(static_cast(ms % 1000), 3); -} - -// Streams an XML CDATA section, escaping invalid CDATA sequences as needed. -void XmlUnitTestResultPrinter::OutputXmlCDataSection(::std::ostream* stream, - const char* data) { - const char* segment = data; - *stream << ""); - if (next_segment != nullptr) { - stream->write(segment, - static_cast(next_segment - segment)); - *stream << "]]>]]>"); - } else { - *stream << segment; - break; - } - } - *stream << "]]>"; -} - -void XmlUnitTestResultPrinter::OutputXmlAttribute( - std::ostream* stream, const std::string& element_name, - const std::string& name, const std::string& value) { - const std::vector& allowed_names = - GetReservedOutputAttributesForElement(element_name); - - GTEST_CHECK_(std::find(allowed_names.begin(), allowed_names.end(), name) != - allowed_names.end()) - << "Attribute " << name << " is not allowed for element <" << element_name - << ">."; - - *stream << " " << name << "=\"" << EscapeXmlAttribute(value) << "\""; -} - -// Streams a test suite XML stanza containing the given test result. -void XmlUnitTestResultPrinter::OutputXmlTestSuiteForTestResult( - ::std::ostream* stream, const TestResult& result) { - // Output the boilerplate for a minimal test suite with one test. - *stream << " "; - - // Output the boilerplate for a minimal test case with a single test. - *stream << " \n"; -} - -// Prints an XML representation of a TestInfo object. -void XmlUnitTestResultPrinter::OutputXmlTestInfo(::std::ostream* stream, - const char* test_suite_name, - const TestInfo& test_info) { - const TestResult& result = *test_info.result(); - const std::string kTestsuite = "testcase"; - - if (test_info.is_in_another_shard()) { - return; - } - - *stream << " \n"; - return; - } - - OutputXmlAttribute(stream, kTestsuite, "status", - test_info.should_run() ? "run" : "notrun"); - OutputXmlAttribute(stream, kTestsuite, "result", - test_info.should_run() - ? (result.Skipped() ? "skipped" : "completed") - : "suppressed"); - OutputXmlAttribute(stream, kTestsuite, "time", - FormatTimeInMillisAsSeconds(result.elapsed_time())); - OutputXmlAttribute( - stream, kTestsuite, "timestamp", - FormatEpochTimeInMillisAsIso8601(result.start_timestamp())); - OutputXmlAttribute(stream, kTestsuite, "classname", test_suite_name); - - OutputXmlTestResult(stream, result); -} - -void XmlUnitTestResultPrinter::OutputXmlTestResult(::std::ostream* stream, - const TestResult& result) { - int failures = 0; - int skips = 0; - for (int i = 0; i < result.total_part_count(); ++i) { - const TestPartResult& part = result.GetTestPartResult(i); - if (part.failed()) { - if (++failures == 1 && skips == 0) { - *stream << ">\n"; - } - const std::string location = - internal::FormatCompilerIndependentFileLocation(part.file_name(), - part.line_number()); - const std::string summary = location + "\n" + part.summary(); - *stream << " "; - const std::string detail = location + "\n" + part.message(); - OutputXmlCDataSection(stream, RemoveInvalidXmlCharacters(detail).c_str()); - *stream << "\n"; - } else if (part.skipped()) { - if (++skips == 1 && failures == 0) { - *stream << ">\n"; - } - const std::string location = - internal::FormatCompilerIndependentFileLocation(part.file_name(), - part.line_number()); - const std::string summary = location + "\n" + part.summary(); - *stream << " "; - const std::string detail = location + "\n" + part.message(); - OutputXmlCDataSection(stream, RemoveInvalidXmlCharacters(detail).c_str()); - *stream << "\n"; - } - } - - if (failures == 0 && skips == 0 && result.test_property_count() == 0) { - *stream << " />\n"; - } else { - if (failures == 0 && skips == 0) { - *stream << ">\n"; - } - OutputXmlTestProperties(stream, result); - *stream << " \n"; - } -} - -// Prints an XML representation of a TestSuite object -void XmlUnitTestResultPrinter::PrintXmlTestSuite(std::ostream* stream, - const TestSuite& test_suite) { - const std::string kTestsuite = "testsuite"; - *stream << " <" << kTestsuite; - OutputXmlAttribute(stream, kTestsuite, "name", test_suite.name()); - OutputXmlAttribute(stream, kTestsuite, "tests", - StreamableToString(test_suite.reportable_test_count())); - if (!GTEST_FLAG_GET(list_tests)) { - OutputXmlAttribute(stream, kTestsuite, "failures", - StreamableToString(test_suite.failed_test_count())); - OutputXmlAttribute( - stream, kTestsuite, "disabled", - StreamableToString(test_suite.reportable_disabled_test_count())); - OutputXmlAttribute(stream, kTestsuite, "skipped", - StreamableToString(test_suite.skipped_test_count())); - - OutputXmlAttribute(stream, kTestsuite, "errors", "0"); - - OutputXmlAttribute(stream, kTestsuite, "time", - FormatTimeInMillisAsSeconds(test_suite.elapsed_time())); - OutputXmlAttribute( - stream, kTestsuite, "timestamp", - FormatEpochTimeInMillisAsIso8601(test_suite.start_timestamp())); - *stream << TestPropertiesAsXmlAttributes(test_suite.ad_hoc_test_result()); - } - *stream << ">\n"; - for (int i = 0; i < test_suite.total_test_count(); ++i) { - if (test_suite.GetTestInfo(i)->is_reportable()) - OutputXmlTestInfo(stream, test_suite.name(), *test_suite.GetTestInfo(i)); - } - *stream << " \n"; -} - -// Prints an XML summary of unit_test to output stream out. -void XmlUnitTestResultPrinter::PrintXmlUnitTest(std::ostream* stream, - const UnitTest& unit_test) { - const std::string kTestsuites = "testsuites"; - - *stream << "\n"; - *stream << "<" << kTestsuites; - - OutputXmlAttribute(stream, kTestsuites, "tests", - StreamableToString(unit_test.reportable_test_count())); - OutputXmlAttribute(stream, kTestsuites, "failures", - StreamableToString(unit_test.failed_test_count())); - OutputXmlAttribute( - stream, kTestsuites, "disabled", - StreamableToString(unit_test.reportable_disabled_test_count())); - OutputXmlAttribute(stream, kTestsuites, "errors", "0"); - OutputXmlAttribute(stream, kTestsuites, "time", - FormatTimeInMillisAsSeconds(unit_test.elapsed_time())); - OutputXmlAttribute( - stream, kTestsuites, "timestamp", - FormatEpochTimeInMillisAsIso8601(unit_test.start_timestamp())); - - if (GTEST_FLAG_GET(shuffle)) { - OutputXmlAttribute(stream, kTestsuites, "random_seed", - StreamableToString(unit_test.random_seed())); - } - *stream << TestPropertiesAsXmlAttributes(unit_test.ad_hoc_test_result()); - - OutputXmlAttribute(stream, kTestsuites, "name", "AllTests"); - *stream << ">\n"; - - for (int i = 0; i < unit_test.total_test_suite_count(); ++i) { - if (unit_test.GetTestSuite(i)->reportable_test_count() > 0) - PrintXmlTestSuite(stream, *unit_test.GetTestSuite(i)); - } - - // If there was a test failure outside of one of the test suites (like in a - // test environment) include that in the output. - if (unit_test.ad_hoc_test_result().Failed()) { - OutputXmlTestSuiteForTestResult(stream, unit_test.ad_hoc_test_result()); - } - - *stream << "\n"; -} - -void XmlUnitTestResultPrinter::PrintXmlTestsList( - std::ostream* stream, const std::vector& test_suites) { - const std::string kTestsuites = "testsuites"; - - *stream << "\n"; - *stream << "<" << kTestsuites; - - int total_tests = 0; - for (auto test_suite : test_suites) { - total_tests += test_suite->total_test_count(); - } - OutputXmlAttribute(stream, kTestsuites, "tests", - StreamableToString(total_tests)); - OutputXmlAttribute(stream, kTestsuites, "name", "AllTests"); - *stream << ">\n"; - - for (auto test_suite : test_suites) { - PrintXmlTestSuite(stream, *test_suite); - } - *stream << "\n"; -} - -// Produces a string representing the test properties in a result as space -// delimited XML attributes based on the property key="value" pairs. -std::string XmlUnitTestResultPrinter::TestPropertiesAsXmlAttributes( - const TestResult& result) { - Message attributes; - for (int i = 0; i < result.test_property_count(); ++i) { - const TestProperty& property = result.GetTestProperty(i); - attributes << " " << property.key() << "=" - << "\"" << EscapeXmlAttribute(property.value()) << "\""; - } - return attributes.GetString(); -} - -void XmlUnitTestResultPrinter::OutputXmlTestProperties( - std::ostream* stream, const TestResult& result) { - const std::string kProperties = "properties"; - const std::string kProperty = "property"; - - if (result.test_property_count() <= 0) { - return; - } - - *stream << " <" << kProperties << ">\n"; - for (int i = 0; i < result.test_property_count(); ++i) { - const TestProperty& property = result.GetTestProperty(i); - *stream << " <" << kProperty; - *stream << " name=\"" << EscapeXmlAttribute(property.key()) << "\""; - *stream << " value=\"" << EscapeXmlAttribute(property.value()) << "\""; - *stream << "/>\n"; - } - *stream << " \n"; -} - -// End XmlUnitTestResultPrinter - -// This class generates an JSON output file. -class JsonUnitTestResultPrinter : public EmptyTestEventListener { - public: - explicit JsonUnitTestResultPrinter(const char* output_file); - - void OnTestIterationEnd(const UnitTest& unit_test, int iteration) override; - - // Prints an JSON summary of all unit tests. - static void PrintJsonTestList(::std::ostream* stream, - const std::vector& test_suites); - - private: - // Returns an JSON-escaped copy of the input string str. - static std::string EscapeJson(const std::string& str); - - //// Verifies that the given attribute belongs to the given element and - //// streams the attribute as JSON. - static void OutputJsonKey(std::ostream* stream, - const std::string& element_name, - const std::string& name, const std::string& value, - const std::string& indent, bool comma = true); - static void OutputJsonKey(std::ostream* stream, - const std::string& element_name, - const std::string& name, int value, - const std::string& indent, bool comma = true); - - // Streams a test suite JSON stanza containing the given test result. - // - // Requires: result.Failed() - static void OutputJsonTestSuiteForTestResult(::std::ostream* stream, - const TestResult& result); - - // Streams a JSON representation of a TestResult object. - static void OutputJsonTestResult(::std::ostream* stream, - const TestResult& result); - - // Streams a JSON representation of a TestInfo object. - static void OutputJsonTestInfo(::std::ostream* stream, - const char* test_suite_name, - const TestInfo& test_info); - - // Prints a JSON representation of a TestSuite object - static void PrintJsonTestSuite(::std::ostream* stream, - const TestSuite& test_suite); - - // Prints a JSON summary of unit_test to output stream out. - static void PrintJsonUnitTest(::std::ostream* stream, - const UnitTest& unit_test); - - // Produces a string representing the test properties in a result as - // a JSON dictionary. - static std::string TestPropertiesAsJson(const TestResult& result, - const std::string& indent); - - // The output file. - const std::string output_file_; - - JsonUnitTestResultPrinter(const JsonUnitTestResultPrinter&) = delete; - JsonUnitTestResultPrinter& operator=(const JsonUnitTestResultPrinter&) = - delete; -}; - -// Creates a new JsonUnitTestResultPrinter. -JsonUnitTestResultPrinter::JsonUnitTestResultPrinter(const char* output_file) - : output_file_(output_file) { - if (output_file_.empty()) { - GTEST_LOG_(FATAL) << "JSON output file may not be null"; - } -} - -void JsonUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test, - int /*iteration*/) { - FILE* jsonout = OpenFileForWriting(output_file_); - std::stringstream stream; - PrintJsonUnitTest(&stream, unit_test); - fprintf(jsonout, "%s", StringStreamToString(&stream).c_str()); - fclose(jsonout); -} - -// Returns an JSON-escaped copy of the input string str. -std::string JsonUnitTestResultPrinter::EscapeJson(const std::string& str) { - Message m; - - for (size_t i = 0; i < str.size(); ++i) { - const char ch = str[i]; - switch (ch) { - case '\\': - case '"': - case '/': - m << '\\' << ch; - break; - case '\b': - m << "\\b"; - break; - case '\t': - m << "\\t"; - break; - case '\n': - m << "\\n"; - break; - case '\f': - m << "\\f"; - break; - case '\r': - m << "\\r"; - break; - default: - if (ch < ' ') { - m << "\\u00" << String::FormatByte(static_cast(ch)); - } else { - m << ch; - } - break; - } - } - - return m.GetString(); -} - -// The following routines generate an JSON representation of a UnitTest -// object. - -// Formats the given time in milliseconds as seconds. -static std::string FormatTimeInMillisAsDuration(TimeInMillis ms) { - ::std::stringstream ss; - ss << (static_cast(ms) * 1e-3) << "s"; - return ss.str(); -} - -// Converts the given epoch time in milliseconds to a date string in the -// RFC3339 format, without the timezone information. -static std::string FormatEpochTimeInMillisAsRFC3339(TimeInMillis ms) { - struct tm time_struct; - if (!PortableLocaltime(static_cast(ms / 1000), &time_struct)) - return ""; - // YYYY-MM-DDThh:mm:ss - return StreamableToString(time_struct.tm_year + 1900) + "-" + - String::FormatIntWidth2(time_struct.tm_mon + 1) + "-" + - String::FormatIntWidth2(time_struct.tm_mday) + "T" + - String::FormatIntWidth2(time_struct.tm_hour) + ":" + - String::FormatIntWidth2(time_struct.tm_min) + ":" + - String::FormatIntWidth2(time_struct.tm_sec) + "Z"; -} - -static inline std::string Indent(size_t width) { - return std::string(width, ' '); -} - -void JsonUnitTestResultPrinter::OutputJsonKey(std::ostream* stream, - const std::string& element_name, - const std::string& name, - const std::string& value, - const std::string& indent, - bool comma) { - const std::vector& allowed_names = - GetReservedOutputAttributesForElement(element_name); - - GTEST_CHECK_(std::find(allowed_names.begin(), allowed_names.end(), name) != - allowed_names.end()) - << "Key \"" << name << "\" is not allowed for value \"" << element_name - << "\"."; - - *stream << indent << "\"" << name << "\": \"" << EscapeJson(value) << "\""; - if (comma) *stream << ",\n"; -} - -void JsonUnitTestResultPrinter::OutputJsonKey( - std::ostream* stream, const std::string& element_name, - const std::string& name, int value, const std::string& indent, bool comma) { - const std::vector& allowed_names = - GetReservedOutputAttributesForElement(element_name); - - GTEST_CHECK_(std::find(allowed_names.begin(), allowed_names.end(), name) != - allowed_names.end()) - << "Key \"" << name << "\" is not allowed for value \"" << element_name - << "\"."; - - *stream << indent << "\"" << name << "\": " << StreamableToString(value); - if (comma) *stream << ",\n"; -} - -// Streams a test suite JSON stanza containing the given test result. -void JsonUnitTestResultPrinter::OutputJsonTestSuiteForTestResult( - ::std::ostream* stream, const TestResult& result) { - // Output the boilerplate for a new test suite. - *stream << Indent(4) << "{\n"; - OutputJsonKey(stream, "testsuite", "name", "NonTestSuiteFailure", Indent(6)); - OutputJsonKey(stream, "testsuite", "tests", 1, Indent(6)); - if (!GTEST_FLAG_GET(list_tests)) { - OutputJsonKey(stream, "testsuite", "failures", 1, Indent(6)); - OutputJsonKey(stream, "testsuite", "disabled", 0, Indent(6)); - OutputJsonKey(stream, "testsuite", "skipped", 0, Indent(6)); - OutputJsonKey(stream, "testsuite", "errors", 0, Indent(6)); - OutputJsonKey(stream, "testsuite", "time", - FormatTimeInMillisAsDuration(result.elapsed_time()), - Indent(6)); - OutputJsonKey(stream, "testsuite", "timestamp", - FormatEpochTimeInMillisAsRFC3339(result.start_timestamp()), - Indent(6)); - } - *stream << Indent(6) << "\"testsuite\": [\n"; - - // Output the boilerplate for a new test case. - *stream << Indent(8) << "{\n"; - OutputJsonKey(stream, "testcase", "name", "", Indent(10)); - OutputJsonKey(stream, "testcase", "status", "RUN", Indent(10)); - OutputJsonKey(stream, "testcase", "result", "COMPLETED", Indent(10)); - OutputJsonKey(stream, "testcase", "timestamp", - FormatEpochTimeInMillisAsRFC3339(result.start_timestamp()), - Indent(10)); - OutputJsonKey(stream, "testcase", "time", - FormatTimeInMillisAsDuration(result.elapsed_time()), - Indent(10)); - OutputJsonKey(stream, "testcase", "classname", "", Indent(10), false); - *stream << TestPropertiesAsJson(result, Indent(10)); - - // Output the actual test result. - OutputJsonTestResult(stream, result); - - // Finish the test suite. - *stream << "\n" << Indent(6) << "]\n" << Indent(4) << "}"; -} - -// Prints a JSON representation of a TestInfo object. -void JsonUnitTestResultPrinter::OutputJsonTestInfo(::std::ostream* stream, - const char* test_suite_name, - const TestInfo& test_info) { - const TestResult& result = *test_info.result(); - const std::string kTestsuite = "testcase"; - const std::string kIndent = Indent(10); - - *stream << Indent(8) << "{\n"; - OutputJsonKey(stream, kTestsuite, "name", test_info.name(), kIndent); - - if (test_info.value_param() != nullptr) { - OutputJsonKey(stream, kTestsuite, "value_param", test_info.value_param(), - kIndent); - } - if (test_info.type_param() != nullptr) { - OutputJsonKey(stream, kTestsuite, "type_param", test_info.type_param(), - kIndent); - } - - OutputJsonKey(stream, kTestsuite, "file", test_info.file(), kIndent); - OutputJsonKey(stream, kTestsuite, "line", test_info.line(), kIndent, false); - if (GTEST_FLAG_GET(list_tests)) { - *stream << "\n" << Indent(8) << "}"; - return; - } else { - *stream << ",\n"; - } - - OutputJsonKey(stream, kTestsuite, "status", - test_info.should_run() ? "RUN" : "NOTRUN", kIndent); - OutputJsonKey(stream, kTestsuite, "result", - test_info.should_run() - ? (result.Skipped() ? "SKIPPED" : "COMPLETED") - : "SUPPRESSED", - kIndent); - OutputJsonKey(stream, kTestsuite, "timestamp", - FormatEpochTimeInMillisAsRFC3339(result.start_timestamp()), - kIndent); - OutputJsonKey(stream, kTestsuite, "time", - FormatTimeInMillisAsDuration(result.elapsed_time()), kIndent); - OutputJsonKey(stream, kTestsuite, "classname", test_suite_name, kIndent, - false); - *stream << TestPropertiesAsJson(result, kIndent); - - OutputJsonTestResult(stream, result); -} - -void JsonUnitTestResultPrinter::OutputJsonTestResult(::std::ostream* stream, - const TestResult& result) { - const std::string kIndent = Indent(10); - - int failures = 0; - for (int i = 0; i < result.total_part_count(); ++i) { - const TestPartResult& part = result.GetTestPartResult(i); - if (part.failed()) { - *stream << ",\n"; - if (++failures == 1) { - *stream << kIndent << "\"" - << "failures" - << "\": [\n"; - } - const std::string location = - internal::FormatCompilerIndependentFileLocation(part.file_name(), - part.line_number()); - const std::string message = EscapeJson(location + "\n" + part.message()); - *stream << kIndent << " {\n" - << kIndent << " \"failure\": \"" << message << "\",\n" - << kIndent << " \"type\": \"\"\n" - << kIndent << " }"; - } - } - - if (failures > 0) *stream << "\n" << kIndent << "]"; - *stream << "\n" << Indent(8) << "}"; -} - -// Prints an JSON representation of a TestSuite object -void JsonUnitTestResultPrinter::PrintJsonTestSuite( - std::ostream* stream, const TestSuite& test_suite) { - const std::string kTestsuite = "testsuite"; - const std::string kIndent = Indent(6); - - *stream << Indent(4) << "{\n"; - OutputJsonKey(stream, kTestsuite, "name", test_suite.name(), kIndent); - OutputJsonKey(stream, kTestsuite, "tests", test_suite.reportable_test_count(), - kIndent); - if (!GTEST_FLAG_GET(list_tests)) { - OutputJsonKey(stream, kTestsuite, "failures", - test_suite.failed_test_count(), kIndent); - OutputJsonKey(stream, kTestsuite, "disabled", - test_suite.reportable_disabled_test_count(), kIndent); - OutputJsonKey(stream, kTestsuite, "errors", 0, kIndent); - OutputJsonKey( - stream, kTestsuite, "timestamp", - FormatEpochTimeInMillisAsRFC3339(test_suite.start_timestamp()), - kIndent); - OutputJsonKey(stream, kTestsuite, "time", - FormatTimeInMillisAsDuration(test_suite.elapsed_time()), - kIndent, false); - *stream << TestPropertiesAsJson(test_suite.ad_hoc_test_result(), kIndent) - << ",\n"; - } - - *stream << kIndent << "\"" << kTestsuite << "\": [\n"; - - bool comma = false; - for (int i = 0; i < test_suite.total_test_count(); ++i) { - if (test_suite.GetTestInfo(i)->is_reportable()) { - if (comma) { - *stream << ",\n"; - } else { - comma = true; - } - OutputJsonTestInfo(stream, test_suite.name(), *test_suite.GetTestInfo(i)); - } - } - *stream << "\n" << kIndent << "]\n" << Indent(4) << "}"; -} - -// Prints a JSON summary of unit_test to output stream out. -void JsonUnitTestResultPrinter::PrintJsonUnitTest(std::ostream* stream, - const UnitTest& unit_test) { - const std::string kTestsuites = "testsuites"; - const std::string kIndent = Indent(2); - *stream << "{\n"; - - OutputJsonKey(stream, kTestsuites, "tests", unit_test.reportable_test_count(), - kIndent); - OutputJsonKey(stream, kTestsuites, "failures", unit_test.failed_test_count(), - kIndent); - OutputJsonKey(stream, kTestsuites, "disabled", - unit_test.reportable_disabled_test_count(), kIndent); - OutputJsonKey(stream, kTestsuites, "errors", 0, kIndent); - if (GTEST_FLAG_GET(shuffle)) { - OutputJsonKey(stream, kTestsuites, "random_seed", unit_test.random_seed(), - kIndent); - } - OutputJsonKey(stream, kTestsuites, "timestamp", - FormatEpochTimeInMillisAsRFC3339(unit_test.start_timestamp()), - kIndent); - OutputJsonKey(stream, kTestsuites, "time", - FormatTimeInMillisAsDuration(unit_test.elapsed_time()), kIndent, - false); - - *stream << TestPropertiesAsJson(unit_test.ad_hoc_test_result(), kIndent) - << ",\n"; - - OutputJsonKey(stream, kTestsuites, "name", "AllTests", kIndent); - *stream << kIndent << "\"" << kTestsuites << "\": [\n"; - - bool comma = false; - for (int i = 0; i < unit_test.total_test_suite_count(); ++i) { - if (unit_test.GetTestSuite(i)->reportable_test_count() > 0) { - if (comma) { - *stream << ",\n"; - } else { - comma = true; - } - PrintJsonTestSuite(stream, *unit_test.GetTestSuite(i)); - } - } - - // If there was a test failure outside of one of the test suites (like in a - // test environment) include that in the output. - if (unit_test.ad_hoc_test_result().Failed()) { - OutputJsonTestSuiteForTestResult(stream, unit_test.ad_hoc_test_result()); - } - - *stream << "\n" - << kIndent << "]\n" - << "}\n"; -} - -void JsonUnitTestResultPrinter::PrintJsonTestList( - std::ostream* stream, const std::vector& test_suites) { - const std::string kTestsuites = "testsuites"; - const std::string kIndent = Indent(2); - *stream << "{\n"; - int total_tests = 0; - for (auto test_suite : test_suites) { - total_tests += test_suite->total_test_count(); - } - OutputJsonKey(stream, kTestsuites, "tests", total_tests, kIndent); - - OutputJsonKey(stream, kTestsuites, "name", "AllTests", kIndent); - *stream << kIndent << "\"" << kTestsuites << "\": [\n"; - - for (size_t i = 0; i < test_suites.size(); ++i) { - if (i != 0) { - *stream << ",\n"; - } - PrintJsonTestSuite(stream, *test_suites[i]); - } - - *stream << "\n" - << kIndent << "]\n" - << "}\n"; -} -// Produces a string representing the test properties in a result as -// a JSON dictionary. -std::string JsonUnitTestResultPrinter::TestPropertiesAsJson( - const TestResult& result, const std::string& indent) { - Message attributes; - for (int i = 0; i < result.test_property_count(); ++i) { - const TestProperty& property = result.GetTestProperty(i); - attributes << ",\n" - << indent << "\"" << property.key() << "\": " - << "\"" << EscapeJson(property.value()) << "\""; - } - return attributes.GetString(); -} - -// End JsonUnitTestResultPrinter - -#if GTEST_CAN_STREAM_RESULTS_ - -// Checks if str contains '=', '&', '%' or '\n' characters. If yes, -// replaces them by "%xx" where xx is their hexadecimal value. For -// example, replaces "=" with "%3D". This algorithm is O(strlen(str)) -// in both time and space -- important as the input str may contain an -// arbitrarily long test failure message and stack trace. -std::string StreamingListener::UrlEncode(const char* str) { - std::string result; - result.reserve(strlen(str) + 1); - for (char ch = *str; ch != '\0'; ch = *++str) { - switch (ch) { - case '%': - case '=': - case '&': - case '\n': - result.append("%" + String::FormatByte(static_cast(ch))); - break; - default: - result.push_back(ch); - break; - } - } - return result; -} - -void StreamingListener::SocketWriter::MakeConnection() { - GTEST_CHECK_(sockfd_ == -1) - << "MakeConnection() can't be called when there is already a connection."; - - addrinfo hints; - memset(&hints, 0, sizeof(hints)); - hints.ai_family = AF_UNSPEC; // To allow both IPv4 and IPv6 addresses. - hints.ai_socktype = SOCK_STREAM; - addrinfo* servinfo = nullptr; - - // Use the getaddrinfo() to get a linked list of IP addresses for - // the given host name. - const int error_num = - getaddrinfo(host_name_.c_str(), port_num_.c_str(), &hints, &servinfo); - if (error_num != 0) { - GTEST_LOG_(WARNING) << "stream_result_to: getaddrinfo() failed: " - << gai_strerror(error_num); - } - - // Loop through all the results and connect to the first we can. - for (addrinfo* cur_addr = servinfo; sockfd_ == -1 && cur_addr != nullptr; - cur_addr = cur_addr->ai_next) { - sockfd_ = socket(cur_addr->ai_family, cur_addr->ai_socktype, - cur_addr->ai_protocol); - if (sockfd_ != -1) { - // Connect the client socket to the server socket. - if (connect(sockfd_, cur_addr->ai_addr, cur_addr->ai_addrlen) == -1) { - close(sockfd_); - sockfd_ = -1; - } - } - } - - freeaddrinfo(servinfo); // all done with this structure - - if (sockfd_ == -1) { - GTEST_LOG_(WARNING) << "stream_result_to: failed to connect to " - << host_name_ << ":" << port_num_; - } -} - -// End of class Streaming Listener -#endif // GTEST_CAN_STREAM_RESULTS__ - -// class OsStackTraceGetter - -const char* const OsStackTraceGetterInterface::kElidedFramesMarker = - "... " GTEST_NAME_ " internal frames ..."; - -std::string OsStackTraceGetter::CurrentStackTrace(int max_depth, int skip_count) - GTEST_LOCK_EXCLUDED_(mutex_) { -#if GTEST_HAS_ABSL - std::string result; - - if (max_depth <= 0) { - return result; - } - - max_depth = std::min(max_depth, kMaxStackTraceDepth); - - std::vector raw_stack(max_depth); - // Skips the frames requested by the caller, plus this function. - const int raw_stack_size = - absl::GetStackTrace(&raw_stack[0], max_depth, skip_count + 1); - - void* caller_frame = nullptr; - { - MutexLock lock(&mutex_); - caller_frame = caller_frame_; - } - - for (int i = 0; i < raw_stack_size; ++i) { - if (raw_stack[i] == caller_frame && - !GTEST_FLAG_GET(show_internal_stack_frames)) { - // Add a marker to the trace and stop adding frames. - absl::StrAppend(&result, kElidedFramesMarker, "\n"); - break; - } - - char tmp[1024]; - const char* symbol = "(unknown)"; - if (absl::Symbolize(raw_stack[i], tmp, sizeof(tmp))) { - symbol = tmp; - } - - char line[1024]; - snprintf(line, sizeof(line), " %p: %s\n", raw_stack[i], symbol); - result += line; - } - - return result; - -#else // !GTEST_HAS_ABSL - static_cast(max_depth); - static_cast(skip_count); - return ""; -#endif // GTEST_HAS_ABSL -} - -void OsStackTraceGetter::UponLeavingGTest() GTEST_LOCK_EXCLUDED_(mutex_) { -#if GTEST_HAS_ABSL - void* caller_frame = nullptr; - if (absl::GetStackTrace(&caller_frame, 1, 3) <= 0) { - caller_frame = nullptr; - } - - MutexLock lock(&mutex_); - caller_frame_ = caller_frame; -#endif // GTEST_HAS_ABSL -} - -// A helper class that creates the premature-exit file in its -// constructor and deletes the file in its destructor. -class ScopedPrematureExitFile { - public: - explicit ScopedPrematureExitFile(const char* premature_exit_filepath) - : premature_exit_filepath_( - premature_exit_filepath ? premature_exit_filepath : "") { - // If a path to the premature-exit file is specified... - if (!premature_exit_filepath_.empty()) { - // create the file with a single "0" character in it. I/O - // errors are ignored as there's nothing better we can do and we - // don't want to fail the test because of this. - FILE* pfile = posix::FOpen(premature_exit_filepath_.c_str(), "w"); - fwrite("0", 1, 1, pfile); - fclose(pfile); - } - } - - ~ScopedPrematureExitFile() { -#if !defined GTEST_OS_ESP8266 - if (!premature_exit_filepath_.empty()) { - int retval = remove(premature_exit_filepath_.c_str()); - if (retval) { - GTEST_LOG_(ERROR) << "Failed to remove premature exit filepath \"" - << premature_exit_filepath_ << "\" with error " - << retval; - } - } -#endif - } - - private: - const std::string premature_exit_filepath_; - - ScopedPrematureExitFile(const ScopedPrematureExitFile&) = delete; - ScopedPrematureExitFile& operator=(const ScopedPrematureExitFile&) = delete; -}; - -} // namespace internal - -// class TestEventListeners - -TestEventListeners::TestEventListeners() - : repeater_(new internal::TestEventRepeater()), - default_result_printer_(nullptr), - default_xml_generator_(nullptr) {} - -TestEventListeners::~TestEventListeners() { delete repeater_; } - -// Returns the standard listener responsible for the default console -// output. Can be removed from the listeners list to shut down default -// console output. Note that removing this object from the listener list -// with Release transfers its ownership to the user. -void TestEventListeners::Append(TestEventListener* listener) { - repeater_->Append(listener); -} - -// Removes the given event listener from the list and returns it. It then -// becomes the caller's responsibility to delete the listener. Returns -// NULL if the listener is not found in the list. -TestEventListener* TestEventListeners::Release(TestEventListener* listener) { - if (listener == default_result_printer_) - default_result_printer_ = nullptr; - else if (listener == default_xml_generator_) - default_xml_generator_ = nullptr; - return repeater_->Release(listener); -} - -// Returns repeater that broadcasts the TestEventListener events to all -// subscribers. -TestEventListener* TestEventListeners::repeater() { return repeater_; } - -// Sets the default_result_printer attribute to the provided listener. -// The listener is also added to the listener list and previous -// default_result_printer is removed from it and deleted. The listener can -// also be NULL in which case it will not be added to the list. Does -// nothing if the previous and the current listener objects are the same. -void TestEventListeners::SetDefaultResultPrinter(TestEventListener* listener) { - if (default_result_printer_ != listener) { - // It is an error to pass this method a listener that is already in the - // list. - delete Release(default_result_printer_); - default_result_printer_ = listener; - if (listener != nullptr) Append(listener); - } -} - -// Sets the default_xml_generator attribute to the provided listener. The -// listener is also added to the listener list and previous -// default_xml_generator is removed from it and deleted. The listener can -// also be NULL in which case it will not be added to the list. Does -// nothing if the previous and the current listener objects are the same. -void TestEventListeners::SetDefaultXmlGenerator(TestEventListener* listener) { - if (default_xml_generator_ != listener) { - // It is an error to pass this method a listener that is already in the - // list. - delete Release(default_xml_generator_); - default_xml_generator_ = listener; - if (listener != nullptr) Append(listener); - } -} - -// Controls whether events will be forwarded by the repeater to the -// listeners in the list. -bool TestEventListeners::EventForwardingEnabled() const { - return repeater_->forwarding_enabled(); -} - -void TestEventListeners::SuppressEventForwarding() { - repeater_->set_forwarding_enabled(false); -} - -// class UnitTest - -// Gets the singleton UnitTest object. The first time this method is -// called, a UnitTest object is constructed and returned. Consecutive -// calls will return the same object. -// -// We don't protect this under mutex_ as a user is not supposed to -// call this before main() starts, from which point on the return -// value will never change. -UnitTest* UnitTest::GetInstance() { - // CodeGear C++Builder insists on a public destructor for the - // default implementation. Use this implementation to keep good OO - // design with private destructor. - -#if defined(__BORLANDC__) - static UnitTest* const instance = new UnitTest; - return instance; -#else - static UnitTest instance; - return &instance; -#endif // defined(__BORLANDC__) -} - -// Gets the number of successful test suites. -int UnitTest::successful_test_suite_count() const { - return impl()->successful_test_suite_count(); -} - -// Gets the number of failed test suites. -int UnitTest::failed_test_suite_count() const { - return impl()->failed_test_suite_count(); -} - -// Gets the number of all test suites. -int UnitTest::total_test_suite_count() const { - return impl()->total_test_suite_count(); -} - -// Gets the number of all test suites that contain at least one test -// that should run. -int UnitTest::test_suite_to_run_count() const { - return impl()->test_suite_to_run_count(); -} - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -int UnitTest::successful_test_case_count() const { - return impl()->successful_test_suite_count(); -} -int UnitTest::failed_test_case_count() const { - return impl()->failed_test_suite_count(); -} -int UnitTest::total_test_case_count() const { - return impl()->total_test_suite_count(); -} -int UnitTest::test_case_to_run_count() const { - return impl()->test_suite_to_run_count(); -} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -// Gets the number of successful tests. -int UnitTest::successful_test_count() const { - return impl()->successful_test_count(); -} - -// Gets the number of skipped tests. -int UnitTest::skipped_test_count() const { - return impl()->skipped_test_count(); -} - -// Gets the number of failed tests. -int UnitTest::failed_test_count() const { return impl()->failed_test_count(); } - -// Gets the number of disabled tests that will be reported in the XML report. -int UnitTest::reportable_disabled_test_count() const { - return impl()->reportable_disabled_test_count(); -} - -// Gets the number of disabled tests. -int UnitTest::disabled_test_count() const { - return impl()->disabled_test_count(); -} - -// Gets the number of tests to be printed in the XML report. -int UnitTest::reportable_test_count() const { - return impl()->reportable_test_count(); -} - -// Gets the number of all tests. -int UnitTest::total_test_count() const { return impl()->total_test_count(); } - -// Gets the number of tests that should run. -int UnitTest::test_to_run_count() const { return impl()->test_to_run_count(); } - -// Gets the time of the test program start, in ms from the start of the -// UNIX epoch. -internal::TimeInMillis UnitTest::start_timestamp() const { - return impl()->start_timestamp(); -} - -// Gets the elapsed time, in milliseconds. -internal::TimeInMillis UnitTest::elapsed_time() const { - return impl()->elapsed_time(); -} - -// Returns true if and only if the unit test passed (i.e. all test suites -// passed). -bool UnitTest::Passed() const { return impl()->Passed(); } - -// Returns true if and only if the unit test failed (i.e. some test suite -// failed or something outside of all tests failed). -bool UnitTest::Failed() const { return impl()->Failed(); } - -// Gets the i-th test suite among all the test suites. i can range from 0 to -// total_test_suite_count() - 1. If i is not in that range, returns NULL. -const TestSuite* UnitTest::GetTestSuite(int i) const { - return impl()->GetTestSuite(i); -} - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -const TestCase* UnitTest::GetTestCase(int i) const { - return impl()->GetTestCase(i); -} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -// Returns the TestResult containing information on test failures and -// properties logged outside of individual test suites. -const TestResult& UnitTest::ad_hoc_test_result() const { - return *impl()->ad_hoc_test_result(); -} - -// Gets the i-th test suite among all the test suites. i can range from 0 to -// total_test_suite_count() - 1. If i is not in that range, returns NULL. -TestSuite* UnitTest::GetMutableTestSuite(int i) { - return impl()->GetMutableSuiteCase(i); -} - -// Returns the list of event listeners that can be used to track events -// inside Google Test. -TestEventListeners& UnitTest::listeners() { return *impl()->listeners(); } - -// Registers and returns a global test environment. When a test -// program is run, all global test environments will be set-up in the -// order they were registered. After all tests in the program have -// finished, all global test environments will be torn-down in the -// *reverse* order they were registered. -// -// The UnitTest object takes ownership of the given environment. -// -// We don't protect this under mutex_, as we only support calling it -// from the main thread. -Environment* UnitTest::AddEnvironment(Environment* env) { - if (env == nullptr) { - return nullptr; - } - - impl_->environments().push_back(env); - return env; -} - -// Adds a TestPartResult to the current TestResult object. All Google Test -// assertion macros (e.g. ASSERT_TRUE, EXPECT_EQ, etc) eventually call -// this to report their results. The user code should use the -// assertion macros instead of calling this directly. -void UnitTest::AddTestPartResult(TestPartResult::Type result_type, - const char* file_name, int line_number, - const std::string& message, - const std::string& os_stack_trace) - GTEST_LOCK_EXCLUDED_(mutex_) { - Message msg; - msg << message; - - internal::MutexLock lock(&mutex_); - if (impl_->gtest_trace_stack().size() > 0) { - msg << "\n" << GTEST_NAME_ << " trace:"; - - for (size_t i = impl_->gtest_trace_stack().size(); i > 0; --i) { - const internal::TraceInfo& trace = impl_->gtest_trace_stack()[i - 1]; - msg << "\n" - << internal::FormatFileLocation(trace.file, trace.line) << " " - << trace.message; - } - } - - if (os_stack_trace.c_str() != nullptr && !os_stack_trace.empty()) { - msg << internal::kStackTraceMarker << os_stack_trace; - } - - const TestPartResult result = TestPartResult( - result_type, file_name, line_number, msg.GetString().c_str()); - impl_->GetTestPartResultReporterForCurrentThread()->ReportTestPartResult( - result); - - if (result_type != TestPartResult::kSuccess && - result_type != TestPartResult::kSkip) { - // gtest_break_on_failure takes precedence over - // gtest_throw_on_failure. This allows a user to set the latter - // in the code (perhaps in order to use Google Test assertions - // with another testing framework) and specify the former on the - // command line for debugging. - if (GTEST_FLAG_GET(break_on_failure)) { -#if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT - // Using DebugBreak on Windows allows gtest to still break into a debugger - // when a failure happens and both the --gtest_break_on_failure and - // the --gtest_catch_exceptions flags are specified. - DebugBreak(); -#elif (!defined(__native_client__)) && \ - ((defined(__clang__) || defined(__GNUC__)) && \ - (defined(__x86_64__) || defined(__i386__))) - // with clang/gcc we can achieve the same effect on x86 by invoking int3 - asm("int3"); -#else - // Dereference nullptr through a volatile pointer to prevent the compiler - // from removing. We use this rather than abort() or __builtin_trap() for - // portability: some debuggers don't correctly trap abort(). - *static_cast(nullptr) = 1; -#endif // GTEST_OS_WINDOWS - } else if (GTEST_FLAG_GET(throw_on_failure)) { -#if GTEST_HAS_EXCEPTIONS - throw internal::GoogleTestFailureException(result); -#else - // We cannot call abort() as it generates a pop-up in debug mode - // that cannot be suppressed in VC 7.1 or below. - exit(1); -#endif - } - } -} - -// Adds a TestProperty to the current TestResult object when invoked from -// inside a test, to current TestSuite's ad_hoc_test_result_ when invoked -// from SetUpTestSuite or TearDownTestSuite, or to the global property set -// when invoked elsewhere. If the result already contains a property with -// the same key, the value will be updated. -void UnitTest::RecordProperty(const std::string& key, - const std::string& value) { - impl_->RecordProperty(TestProperty(key, value)); -} - -// Runs all tests in this UnitTest object and prints the result. -// Returns 0 if successful, or 1 otherwise. -// -// We don't protect this under mutex_, as we only support calling it -// from the main thread. -int UnitTest::Run() { - const bool in_death_test_child_process = - GTEST_FLAG_GET(internal_run_death_test).length() > 0; - - // Google Test implements this protocol for catching that a test - // program exits before returning control to Google Test: - // - // 1. Upon start, Google Test creates a file whose absolute path - // is specified by the environment variable - // TEST_PREMATURE_EXIT_FILE. - // 2. When Google Test has finished its work, it deletes the file. - // - // This allows a test runner to set TEST_PREMATURE_EXIT_FILE before - // running a Google-Test-based test program and check the existence - // of the file at the end of the test execution to see if it has - // exited prematurely. - - // If we are in the child process of a death test, don't - // create/delete the premature exit file, as doing so is unnecessary - // and will confuse the parent process. Otherwise, create/delete - // the file upon entering/leaving this function. If the program - // somehow exits before this function has a chance to return, the - // premature-exit file will be left undeleted, causing a test runner - // that understands the premature-exit-file protocol to report the - // test as having failed. - const internal::ScopedPrematureExitFile premature_exit_file( - in_death_test_child_process - ? nullptr - : internal::posix::GetEnv("TEST_PREMATURE_EXIT_FILE")); - - // Captures the value of GTEST_FLAG(catch_exceptions). This value will be - // used for the duration of the program. - impl()->set_catch_exceptions(GTEST_FLAG_GET(catch_exceptions)); - -#if GTEST_OS_WINDOWS - // Either the user wants Google Test to catch exceptions thrown by the - // tests or this is executing in the context of death test child - // process. In either case the user does not want to see pop-up dialogs - // about crashes - they are expected. - if (impl()->catch_exceptions() || in_death_test_child_process) { -#if !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT - // SetErrorMode doesn't exist on CE. - SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOALIGNMENTFAULTEXCEPT | - SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX); -#endif // !GTEST_OS_WINDOWS_MOBILE - -#if (defined(_MSC_VER) || GTEST_OS_WINDOWS_MINGW) && !GTEST_OS_WINDOWS_MOBILE - // Death test children can be terminated with _abort(). On Windows, - // _abort() can show a dialog with a warning message. This forces the - // abort message to go to stderr instead. - _set_error_mode(_OUT_TO_STDERR); -#endif - -#if defined(_MSC_VER) && !GTEST_OS_WINDOWS_MOBILE - // In the debug version, Visual Studio pops up a separate dialog - // offering a choice to debug the aborted program. We need to suppress - // this dialog or it will pop up for every EXPECT/ASSERT_DEATH statement - // executed. Google Test will notify the user of any unexpected - // failure via stderr. - if (!GTEST_FLAG_GET(break_on_failure)) - _set_abort_behavior( - 0x0, // Clear the following flags: - _WRITE_ABORT_MSG | _CALL_REPORTFAULT); // pop-up window, core dump. - - // In debug mode, the Windows CRT can crash with an assertion over invalid - // input (e.g. passing an invalid file descriptor). The default handling - // for these assertions is to pop up a dialog and wait for user input. - // Instead ask the CRT to dump such assertions to stderr non-interactively. - if (!IsDebuggerPresent()) { - (void)_CrtSetReportMode(_CRT_ASSERT, - _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); - (void)_CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR); - } -#endif - } -#endif // GTEST_OS_WINDOWS - - return internal::HandleExceptionsInMethodIfSupported( - impl(), &internal::UnitTestImpl::RunAllTests, - "auxiliary test code (environments or event listeners)") - ? 0 - : 1; -} - -// Returns the working directory when the first TEST() or TEST_F() was -// executed. -const char* UnitTest::original_working_dir() const { - return impl_->original_working_dir_.c_str(); -} - -// Returns the TestSuite object for the test that's currently running, -// or NULL if no test is running. -const TestSuite* UnitTest::current_test_suite() const - GTEST_LOCK_EXCLUDED_(mutex_) { - internal::MutexLock lock(&mutex_); - return impl_->current_test_suite(); -} - -// Legacy API is still available but deprecated -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -const TestCase* UnitTest::current_test_case() const - GTEST_LOCK_EXCLUDED_(mutex_) { - internal::MutexLock lock(&mutex_); - return impl_->current_test_suite(); -} -#endif - -// Returns the TestInfo object for the test that's currently running, -// or NULL if no test is running. -const TestInfo* UnitTest::current_test_info() const - GTEST_LOCK_EXCLUDED_(mutex_) { - internal::MutexLock lock(&mutex_); - return impl_->current_test_info(); -} - -// Returns the random seed used at the start of the current test run. -int UnitTest::random_seed() const { return impl_->random_seed(); } - -// Returns ParameterizedTestSuiteRegistry object used to keep track of -// value-parameterized tests and instantiate and register them. -internal::ParameterizedTestSuiteRegistry& -UnitTest::parameterized_test_registry() GTEST_LOCK_EXCLUDED_(mutex_) { - return impl_->parameterized_test_registry(); -} - -// Creates an empty UnitTest. -UnitTest::UnitTest() { impl_ = new internal::UnitTestImpl(this); } - -// Destructor of UnitTest. -UnitTest::~UnitTest() { delete impl_; } - -// Pushes a trace defined by SCOPED_TRACE() on to the per-thread -// Google Test trace stack. -void UnitTest::PushGTestTrace(const internal::TraceInfo& trace) - GTEST_LOCK_EXCLUDED_(mutex_) { - internal::MutexLock lock(&mutex_); - impl_->gtest_trace_stack().push_back(trace); -} - -// Pops a trace from the per-thread Google Test trace stack. -void UnitTest::PopGTestTrace() GTEST_LOCK_EXCLUDED_(mutex_) { - internal::MutexLock lock(&mutex_); - impl_->gtest_trace_stack().pop_back(); -} - -namespace internal { - -UnitTestImpl::UnitTestImpl(UnitTest* parent) - : parent_(parent), - GTEST_DISABLE_MSC_WARNINGS_PUSH_(4355 /* using this in initializer */) - default_global_test_part_result_reporter_(this), - default_per_thread_test_part_result_reporter_(this), - GTEST_DISABLE_MSC_WARNINGS_POP_() global_test_part_result_repoter_( - &default_global_test_part_result_reporter_), - per_thread_test_part_result_reporter_( - &default_per_thread_test_part_result_reporter_), - parameterized_test_registry_(), - parameterized_tests_registered_(false), - last_death_test_suite_(-1), - current_test_suite_(nullptr), - current_test_info_(nullptr), - ad_hoc_test_result_(), - os_stack_trace_getter_(nullptr), - post_flag_parse_init_performed_(false), - random_seed_(0), // Will be overridden by the flag before first use. - random_(0), // Will be reseeded before first use. - start_timestamp_(0), - elapsed_time_(0), -#if GTEST_HAS_DEATH_TEST - death_test_factory_(new DefaultDeathTestFactory), -#endif - // Will be overridden by the flag before first use. - catch_exceptions_(false) { - listeners()->SetDefaultResultPrinter(new PrettyUnitTestResultPrinter); -} - -UnitTestImpl::~UnitTestImpl() { - // Deletes every TestSuite. - ForEach(test_suites_, internal::Delete); - - // Deletes every Environment. - ForEach(environments_, internal::Delete); - - delete os_stack_trace_getter_; -} - -// Adds a TestProperty to the current TestResult object when invoked in a -// context of a test, to current test suite's ad_hoc_test_result when invoke -// from SetUpTestSuite/TearDownTestSuite, or to the global property set -// otherwise. If the result already contains a property with the same key, -// the value will be updated. -void UnitTestImpl::RecordProperty(const TestProperty& test_property) { - std::string xml_element; - TestResult* test_result; // TestResult appropriate for property recording. - - if (current_test_info_ != nullptr) { - xml_element = "testcase"; - test_result = &(current_test_info_->result_); - } else if (current_test_suite_ != nullptr) { - xml_element = "testsuite"; - test_result = &(current_test_suite_->ad_hoc_test_result_); - } else { - xml_element = "testsuites"; - test_result = &ad_hoc_test_result_; - } - test_result->RecordProperty(xml_element, test_property); -} - -#if GTEST_HAS_DEATH_TEST -// Disables event forwarding if the control is currently in a death test -// subprocess. Must not be called before InitGoogleTest. -void UnitTestImpl::SuppressTestEventsIfInSubprocess() { - if (internal_run_death_test_flag_.get() != nullptr) - listeners()->SuppressEventForwarding(); -} -#endif // GTEST_HAS_DEATH_TEST - -// Initializes event listeners performing XML output as specified by -// UnitTestOptions. Must not be called before InitGoogleTest. -void UnitTestImpl::ConfigureXmlOutput() { - const std::string& output_format = UnitTestOptions::GetOutputFormat(); - if (output_format == "xml") { - listeners()->SetDefaultXmlGenerator(new XmlUnitTestResultPrinter( - UnitTestOptions::GetAbsolutePathToOutputFile().c_str())); - } else if (output_format == "json") { - listeners()->SetDefaultXmlGenerator(new JsonUnitTestResultPrinter( - UnitTestOptions::GetAbsolutePathToOutputFile().c_str())); - } else if (output_format != "") { - GTEST_LOG_(WARNING) << "WARNING: unrecognized output format \"" - << output_format << "\" ignored."; - } -} - -#if GTEST_CAN_STREAM_RESULTS_ -// Initializes event listeners for streaming test results in string form. -// Must not be called before InitGoogleTest. -void UnitTestImpl::ConfigureStreamingOutput() { - const std::string& target = GTEST_FLAG_GET(stream_result_to); - if (!target.empty()) { - const size_t pos = target.find(':'); - if (pos != std::string::npos) { - listeners()->Append( - new StreamingListener(target.substr(0, pos), target.substr(pos + 1))); - } else { - GTEST_LOG_(WARNING) << "unrecognized streaming target \"" << target - << "\" ignored."; - } - } -} -#endif // GTEST_CAN_STREAM_RESULTS_ - -// Performs initialization dependent upon flag values obtained in -// ParseGoogleTestFlagsOnly. Is called from InitGoogleTest after the call to -// ParseGoogleTestFlagsOnly. In case a user neglects to call InitGoogleTest -// this function is also called from RunAllTests. Since this function can be -// called more than once, it has to be idempotent. -void UnitTestImpl::PostFlagParsingInit() { - // Ensures that this function does not execute more than once. - if (!post_flag_parse_init_performed_) { - post_flag_parse_init_performed_ = true; - -#if defined(GTEST_CUSTOM_TEST_EVENT_LISTENER_) - // Register to send notifications about key process state changes. - listeners()->Append(new GTEST_CUSTOM_TEST_EVENT_LISTENER_()); -#endif // defined(GTEST_CUSTOM_TEST_EVENT_LISTENER_) - -#if GTEST_HAS_DEATH_TEST - InitDeathTestSubprocessControlInfo(); - SuppressTestEventsIfInSubprocess(); -#endif // GTEST_HAS_DEATH_TEST - - // Registers parameterized tests. This makes parameterized tests - // available to the UnitTest reflection API without running - // RUN_ALL_TESTS. - RegisterParameterizedTests(); - - // Configures listeners for XML output. This makes it possible for users - // to shut down the default XML output before invoking RUN_ALL_TESTS. - ConfigureXmlOutput(); - - if (GTEST_FLAG_GET(brief)) { - listeners()->SetDefaultResultPrinter(new BriefUnitTestResultPrinter); - } - -#if GTEST_CAN_STREAM_RESULTS_ - // Configures listeners for streaming test results to the specified server. - ConfigureStreamingOutput(); -#endif // GTEST_CAN_STREAM_RESULTS_ - -#if GTEST_HAS_ABSL - if (GTEST_FLAG_GET(install_failure_signal_handler)) { - absl::FailureSignalHandlerOptions options; - absl::InstallFailureSignalHandler(options); - } -#endif // GTEST_HAS_ABSL - } -} - -// A predicate that checks the name of a TestSuite against a known -// value. -// -// This is used for implementation of the UnitTest class only. We put -// it in the anonymous namespace to prevent polluting the outer -// namespace. -// -// TestSuiteNameIs is copyable. -class TestSuiteNameIs { - public: - // Constructor. - explicit TestSuiteNameIs(const std::string& name) : name_(name) {} - - // Returns true if and only if the name of test_suite matches name_. - bool operator()(const TestSuite* test_suite) const { - return test_suite != nullptr && - strcmp(test_suite->name(), name_.c_str()) == 0; - } - - private: - std::string name_; -}; - -// Finds and returns a TestSuite with the given name. If one doesn't -// exist, creates one and returns it. It's the CALLER'S -// RESPONSIBILITY to ensure that this function is only called WHEN THE -// TESTS ARE NOT SHUFFLED. -// -// Arguments: -// -// test_suite_name: name of the test suite -// type_param: the name of the test suite's type parameter, or NULL if -// this is not a typed or a type-parameterized test suite. -// set_up_tc: pointer to the function that sets up the test suite -// tear_down_tc: pointer to the function that tears down the test suite -TestSuite* UnitTestImpl::GetTestSuite( - const char* test_suite_name, const char* type_param, - internal::SetUpTestSuiteFunc set_up_tc, - internal::TearDownTestSuiteFunc tear_down_tc) { - // Can we find a TestSuite with the given name? - const auto test_suite = - std::find_if(test_suites_.rbegin(), test_suites_.rend(), - TestSuiteNameIs(test_suite_name)); - - if (test_suite != test_suites_.rend()) return *test_suite; - - // No. Let's create one. - auto* const new_test_suite = - new TestSuite(test_suite_name, type_param, set_up_tc, tear_down_tc); - - const UnitTestFilter death_test_suite_filter(kDeathTestSuiteFilter); - // Is this a death test suite? - if (death_test_suite_filter.MatchesName(test_suite_name)) { - // Yes. Inserts the test suite after the last death test suite - // defined so far. This only works when the test suites haven't - // been shuffled. Otherwise we may end up running a death test - // after a non-death test. - ++last_death_test_suite_; - test_suites_.insert(test_suites_.begin() + last_death_test_suite_, - new_test_suite); - } else { - // No. Appends to the end of the list. - test_suites_.push_back(new_test_suite); - } - - test_suite_indices_.push_back(static_cast(test_suite_indices_.size())); - return new_test_suite; -} - -// Helpers for setting up / tearing down the given environment. They -// are for use in the ForEach() function. -static void SetUpEnvironment(Environment* env) { env->SetUp(); } -static void TearDownEnvironment(Environment* env) { env->TearDown(); } - -// Runs all tests in this UnitTest object, prints the result, and -// returns true if all tests are successful. If any exception is -// thrown during a test, the test is considered to be failed, but the -// rest of the tests will still be run. -// -// When parameterized tests are enabled, it expands and registers -// parameterized tests first in RegisterParameterizedTests(). -// All other functions called from RunAllTests() may safely assume that -// parameterized tests are ready to be counted and run. -bool UnitTestImpl::RunAllTests() { - // True if and only if Google Test is initialized before RUN_ALL_TESTS() is - // called. - const bool gtest_is_initialized_before_run_all_tests = GTestIsInitialized(); - - // Do not run any test if the --help flag was specified. - if (g_help_flag) return true; - - // Repeats the call to the post-flag parsing initialization in case the - // user didn't call InitGoogleTest. - PostFlagParsingInit(); - - // Even if sharding is not on, test runners may want to use the - // GTEST_SHARD_STATUS_FILE to query whether the test supports the sharding - // protocol. - internal::WriteToShardStatusFileIfNeeded(); - - // True if and only if we are in a subprocess for running a thread-safe-style - // death test. - bool in_subprocess_for_death_test = false; - -#if GTEST_HAS_DEATH_TEST - in_subprocess_for_death_test = - (internal_run_death_test_flag_.get() != nullptr); -#if defined(GTEST_EXTRA_DEATH_TEST_CHILD_SETUP_) - if (in_subprocess_for_death_test) { - GTEST_EXTRA_DEATH_TEST_CHILD_SETUP_(); - } -#endif // defined(GTEST_EXTRA_DEATH_TEST_CHILD_SETUP_) -#endif // GTEST_HAS_DEATH_TEST - - const bool should_shard = ShouldShard(kTestTotalShards, kTestShardIndex, - in_subprocess_for_death_test); - - // Compares the full test names with the filter to decide which - // tests to run. - const bool has_tests_to_run = - FilterTests(should_shard ? HONOR_SHARDING_PROTOCOL - : IGNORE_SHARDING_PROTOCOL) > 0; - - // Lists the tests and exits if the --gtest_list_tests flag was specified. - if (GTEST_FLAG_GET(list_tests)) { - // This must be called *after* FilterTests() has been called. - ListTestsMatchingFilter(); - return true; - } - - random_seed_ = GetRandomSeedFromFlag(GTEST_FLAG_GET(random_seed)); - - // True if and only if at least one test has failed. - bool failed = false; - - TestEventListener* repeater = listeners()->repeater(); - - start_timestamp_ = GetTimeInMillis(); - repeater->OnTestProgramStart(*parent_); - - // How many times to repeat the tests? We don't want to repeat them - // when we are inside the subprocess of a death test. - const int repeat = in_subprocess_for_death_test ? 1 : GTEST_FLAG_GET(repeat); - - // Repeats forever if the repeat count is negative. - const bool gtest_repeat_forever = repeat < 0; - - // Should test environments be set up and torn down for each repeat, or only - // set up on the first and torn down on the last iteration? If there is no - // "last" iteration because the tests will repeat forever, always recreate the - // environments to avoid leaks in case one of the environments is using - // resources that are external to this process. Without this check there would - // be no way to clean up those external resources automatically. - const bool recreate_environments_when_repeating = - GTEST_FLAG_GET(recreate_environments_when_repeating) || - gtest_repeat_forever; - - for (int i = 0; gtest_repeat_forever || i != repeat; i++) { - // We want to preserve failures generated by ad-hoc test - // assertions executed before RUN_ALL_TESTS(). - ClearNonAdHocTestResult(); - - Timer timer; - - // Shuffles test suites and tests if requested. - if (has_tests_to_run && GTEST_FLAG_GET(shuffle)) { - random()->Reseed(static_cast(random_seed_)); - // This should be done before calling OnTestIterationStart(), - // such that a test event listener can see the actual test order - // in the event. - ShuffleTests(); - } - - // Tells the unit test event listeners that the tests are about to start. - repeater->OnTestIterationStart(*parent_, i); - - // Runs each test suite if there is at least one test to run. - if (has_tests_to_run) { - // Sets up all environments beforehand. If test environments aren't - // recreated for each iteration, only do so on the first iteration. - if (i == 0 || recreate_environments_when_repeating) { - repeater->OnEnvironmentsSetUpStart(*parent_); - ForEach(environments_, SetUpEnvironment); - repeater->OnEnvironmentsSetUpEnd(*parent_); - } - - // Runs the tests only if there was no fatal failure or skip triggered - // during global set-up. - if (Test::IsSkipped()) { - // Emit diagnostics when global set-up calls skip, as it will not be - // emitted by default. - TestResult& test_result = - *internal::GetUnitTestImpl()->current_test_result(); - for (int j = 0; j < test_result.total_part_count(); ++j) { - const TestPartResult& test_part_result = - test_result.GetTestPartResult(j); - if (test_part_result.type() == TestPartResult::kSkip) { - const std::string& result = test_part_result.message(); - printf("%s\n", result.c_str()); - } - } - fflush(stdout); - } else if (!Test::HasFatalFailure()) { - for (int test_index = 0; test_index < total_test_suite_count(); - test_index++) { - GetMutableSuiteCase(test_index)->Run(); - if (GTEST_FLAG_GET(fail_fast) && - GetMutableSuiteCase(test_index)->Failed()) { - for (int j = test_index + 1; j < total_test_suite_count(); j++) { - GetMutableSuiteCase(j)->Skip(); - } - break; - } - } - } else if (Test::HasFatalFailure()) { - // If there was a fatal failure during the global setup then we know we - // aren't going to run any tests. Explicitly mark all of the tests as - // skipped to make this obvious in the output. - for (int test_index = 0; test_index < total_test_suite_count(); - test_index++) { - GetMutableSuiteCase(test_index)->Skip(); - } - } - - // Tears down all environments in reverse order afterwards. If test - // environments aren't recreated for each iteration, only do so on the - // last iteration. - if (i == repeat - 1 || recreate_environments_when_repeating) { - repeater->OnEnvironmentsTearDownStart(*parent_); - std::for_each(environments_.rbegin(), environments_.rend(), - TearDownEnvironment); - repeater->OnEnvironmentsTearDownEnd(*parent_); - } - } - - elapsed_time_ = timer.Elapsed(); - - // Tells the unit test event listener that the tests have just finished. - repeater->OnTestIterationEnd(*parent_, i); - - // Gets the result and clears it. - if (!Passed()) { - failed = true; - } - - // Restores the original test order after the iteration. This - // allows the user to quickly repro a failure that happens in the - // N-th iteration without repeating the first (N - 1) iterations. - // This is not enclosed in "if (GTEST_FLAG(shuffle)) { ... }", in - // case the user somehow changes the value of the flag somewhere - // (it's always safe to unshuffle the tests). - UnshuffleTests(); - - if (GTEST_FLAG_GET(shuffle)) { - // Picks a new random seed for each iteration. - random_seed_ = GetNextRandomSeed(random_seed_); - } - } - - repeater->OnTestProgramEnd(*parent_); - - if (!gtest_is_initialized_before_run_all_tests) { - ColoredPrintf( - GTestColor::kRed, - "\nIMPORTANT NOTICE - DO NOT IGNORE:\n" - "This test program did NOT call " GTEST_INIT_GOOGLE_TEST_NAME_ - "() before calling RUN_ALL_TESTS(). This is INVALID. Soon " GTEST_NAME_ - " will start to enforce the valid usage. " - "Please fix it ASAP, or IT WILL START TO FAIL.\n"); // NOLINT -#if GTEST_FOR_GOOGLE_ - ColoredPrintf(GTestColor::kRed, - "For more details, see http://wiki/Main/ValidGUnitMain.\n"); -#endif // GTEST_FOR_GOOGLE_ - } - - return !failed; -} - -// Reads the GTEST_SHARD_STATUS_FILE environment variable, and creates the file -// if the variable is present. If a file already exists at this location, this -// function will write over it. If the variable is present, but the file cannot -// be created, prints an error and exits. -void WriteToShardStatusFileIfNeeded() { - const char* const test_shard_file = posix::GetEnv(kTestShardStatusFile); - if (test_shard_file != nullptr) { - FILE* const file = posix::FOpen(test_shard_file, "w"); - if (file == nullptr) { - ColoredPrintf(GTestColor::kRed, - "Could not write to the test shard status file \"%s\" " - "specified by the %s environment variable.\n", - test_shard_file, kTestShardStatusFile); - fflush(stdout); - exit(EXIT_FAILURE); - } - fclose(file); - } -} - -// Checks whether sharding is enabled by examining the relevant -// environment variable values. If the variables are present, -// but inconsistent (i.e., shard_index >= total_shards), prints -// an error and exits. If in_subprocess_for_death_test, sharding is -// disabled because it must only be applied to the original test -// process. Otherwise, we could filter out death tests we intended to execute. -bool ShouldShard(const char* total_shards_env, const char* shard_index_env, - bool in_subprocess_for_death_test) { - if (in_subprocess_for_death_test) { - return false; - } - - const int32_t total_shards = Int32FromEnvOrDie(total_shards_env, -1); - const int32_t shard_index = Int32FromEnvOrDie(shard_index_env, -1); - - if (total_shards == -1 && shard_index == -1) { - return false; - } else if (total_shards == -1 && shard_index != -1) { - const Message msg = Message() << "Invalid environment variables: you have " - << kTestShardIndex << " = " << shard_index - << ", but have left " << kTestTotalShards - << " unset.\n"; - ColoredPrintf(GTestColor::kRed, "%s", msg.GetString().c_str()); - fflush(stdout); - exit(EXIT_FAILURE); - } else if (total_shards != -1 && shard_index == -1) { - const Message msg = Message() - << "Invalid environment variables: you have " - << kTestTotalShards << " = " << total_shards - << ", but have left " << kTestShardIndex << " unset.\n"; - ColoredPrintf(GTestColor::kRed, "%s", msg.GetString().c_str()); - fflush(stdout); - exit(EXIT_FAILURE); - } else if (shard_index < 0 || shard_index >= total_shards) { - const Message msg = - Message() << "Invalid environment variables: we require 0 <= " - << kTestShardIndex << " < " << kTestTotalShards - << ", but you have " << kTestShardIndex << "=" << shard_index - << ", " << kTestTotalShards << "=" << total_shards << ".\n"; - ColoredPrintf(GTestColor::kRed, "%s", msg.GetString().c_str()); - fflush(stdout); - exit(EXIT_FAILURE); - } - - return total_shards > 1; -} - -// Parses the environment variable var as an Int32. If it is unset, -// returns default_val. If it is not an Int32, prints an error -// and aborts. -int32_t Int32FromEnvOrDie(const char* var, int32_t default_val) { - const char* str_val = posix::GetEnv(var); - if (str_val == nullptr) { - return default_val; - } - - int32_t result; - if (!ParseInt32(Message() << "The value of environment variable " << var, - str_val, &result)) { - exit(EXIT_FAILURE); - } - return result; -} - -// Given the total number of shards, the shard index, and the test id, -// returns true if and only if the test should be run on this shard. The test id -// is some arbitrary but unique non-negative integer assigned to each test -// method. Assumes that 0 <= shard_index < total_shards. -bool ShouldRunTestOnShard(int total_shards, int shard_index, int test_id) { - return (test_id % total_shards) == shard_index; -} - -// Compares the name of each test with the user-specified filter to -// decide whether the test should be run, then records the result in -// each TestSuite and TestInfo object. -// If shard_tests == true, further filters tests based on sharding -// variables in the environment - see -// https://github.com/google/googletest/blob/master/googletest/docs/advanced.md -// . Returns the number of tests that should run. -int UnitTestImpl::FilterTests(ReactionToSharding shard_tests) { - const int32_t total_shards = shard_tests == HONOR_SHARDING_PROTOCOL - ? Int32FromEnvOrDie(kTestTotalShards, -1) - : -1; - const int32_t shard_index = shard_tests == HONOR_SHARDING_PROTOCOL - ? Int32FromEnvOrDie(kTestShardIndex, -1) - : -1; - - const PositiveAndNegativeUnitTestFilter gtest_flag_filter( - GTEST_FLAG_GET(filter)); - const UnitTestFilter disable_test_filter(kDisableTestFilter); - // num_runnable_tests are the number of tests that will - // run across all shards (i.e., match filter and are not disabled). - // num_selected_tests are the number of tests to be run on - // this shard. - int num_runnable_tests = 0; - int num_selected_tests = 0; - for (auto* test_suite : test_suites_) { - const std::string& test_suite_name = test_suite->name(); - test_suite->set_should_run(false); - - for (size_t j = 0; j < test_suite->test_info_list().size(); j++) { - TestInfo* const test_info = test_suite->test_info_list()[j]; - const std::string test_name(test_info->name()); - // A test is disabled if test suite name or test name matches - // kDisableTestFilter. - const bool is_disabled = - disable_test_filter.MatchesName(test_suite_name) || - disable_test_filter.MatchesName(test_name); - test_info->is_disabled_ = is_disabled; - - const bool matches_filter = - gtest_flag_filter.MatchesTest(test_suite_name, test_name); - test_info->matches_filter_ = matches_filter; - - const bool is_runnable = - (GTEST_FLAG_GET(also_run_disabled_tests) || !is_disabled) && - matches_filter; - - const bool is_in_another_shard = - shard_tests != IGNORE_SHARDING_PROTOCOL && - !ShouldRunTestOnShard(total_shards, shard_index, num_runnable_tests); - test_info->is_in_another_shard_ = is_in_another_shard; - const bool is_selected = is_runnable && !is_in_another_shard; - - num_runnable_tests += is_runnable; - num_selected_tests += is_selected; - - test_info->should_run_ = is_selected; - test_suite->set_should_run(test_suite->should_run() || is_selected); - } - } - return num_selected_tests; -} - -// Prints the given C-string on a single line by replacing all '\n' -// characters with string "\\n". If the output takes more than -// max_length characters, only prints the first max_length characters -// and "...". -static void PrintOnOneLine(const char* str, int max_length) { - if (str != nullptr) { - for (int i = 0; *str != '\0'; ++str) { - if (i >= max_length) { - printf("..."); - break; - } - if (*str == '\n') { - printf("\\n"); - i += 2; - } else { - printf("%c", *str); - ++i; - } - } - } -} - -// Prints the names of the tests matching the user-specified filter flag. -void UnitTestImpl::ListTestsMatchingFilter() { - // Print at most this many characters for each type/value parameter. - const int kMaxParamLength = 250; - - for (auto* test_suite : test_suites_) { - bool printed_test_suite_name = false; - - for (size_t j = 0; j < test_suite->test_info_list().size(); j++) { - const TestInfo* const test_info = test_suite->test_info_list()[j]; - if (test_info->matches_filter_) { - if (!printed_test_suite_name) { - printed_test_suite_name = true; - printf("%s.", test_suite->name()); - if (test_suite->type_param() != nullptr) { - printf(" # %s = ", kTypeParamLabel); - // We print the type parameter on a single line to make - // the output easy to parse by a program. - PrintOnOneLine(test_suite->type_param(), kMaxParamLength); - } - printf("\n"); - } - printf(" %s", test_info->name()); - if (test_info->value_param() != nullptr) { - printf(" # %s = ", kValueParamLabel); - // We print the value parameter on a single line to make the - // output easy to parse by a program. - PrintOnOneLine(test_info->value_param(), kMaxParamLength); - } - printf("\n"); - } - } - } - fflush(stdout); - const std::string& output_format = UnitTestOptions::GetOutputFormat(); - if (output_format == "xml" || output_format == "json") { - FILE* fileout = OpenFileForWriting( - UnitTestOptions::GetAbsolutePathToOutputFile().c_str()); - std::stringstream stream; - if (output_format == "xml") { - XmlUnitTestResultPrinter( - UnitTestOptions::GetAbsolutePathToOutputFile().c_str()) - .PrintXmlTestsList(&stream, test_suites_); - } else if (output_format == "json") { - JsonUnitTestResultPrinter( - UnitTestOptions::GetAbsolutePathToOutputFile().c_str()) - .PrintJsonTestList(&stream, test_suites_); - } - fprintf(fileout, "%s", StringStreamToString(&stream).c_str()); - fclose(fileout); - } -} - -// Sets the OS stack trace getter. -// -// Does nothing if the input and the current OS stack trace getter are -// the same; otherwise, deletes the old getter and makes the input the -// current getter. -void UnitTestImpl::set_os_stack_trace_getter( - OsStackTraceGetterInterface* getter) { - if (os_stack_trace_getter_ != getter) { - delete os_stack_trace_getter_; - os_stack_trace_getter_ = getter; - } -} - -// Returns the current OS stack trace getter if it is not NULL; -// otherwise, creates an OsStackTraceGetter, makes it the current -// getter, and returns it. -OsStackTraceGetterInterface* UnitTestImpl::os_stack_trace_getter() { - if (os_stack_trace_getter_ == nullptr) { -#ifdef GTEST_OS_STACK_TRACE_GETTER_ - os_stack_trace_getter_ = new GTEST_OS_STACK_TRACE_GETTER_; -#else - os_stack_trace_getter_ = new OsStackTraceGetter; -#endif // GTEST_OS_STACK_TRACE_GETTER_ - } - - return os_stack_trace_getter_; -} - -// Returns the most specific TestResult currently running. -TestResult* UnitTestImpl::current_test_result() { - if (current_test_info_ != nullptr) { - return ¤t_test_info_->result_; - } - if (current_test_suite_ != nullptr) { - return ¤t_test_suite_->ad_hoc_test_result_; - } - return &ad_hoc_test_result_; -} - -// Shuffles all test suites, and the tests within each test suite, -// making sure that death tests are still run first. -void UnitTestImpl::ShuffleTests() { - // Shuffles the death test suites. - ShuffleRange(random(), 0, last_death_test_suite_ + 1, &test_suite_indices_); - - // Shuffles the non-death test suites. - ShuffleRange(random(), last_death_test_suite_ + 1, - static_cast(test_suites_.size()), &test_suite_indices_); - - // Shuffles the tests inside each test suite. - for (auto& test_suite : test_suites_) { - test_suite->ShuffleTests(random()); - } -} - -// Restores the test suites and tests to their order before the first shuffle. -void UnitTestImpl::UnshuffleTests() { - for (size_t i = 0; i < test_suites_.size(); i++) { - // Unshuffles the tests in each test suite. - test_suites_[i]->UnshuffleTests(); - // Resets the index of each test suite. - test_suite_indices_[i] = static_cast(i); - } -} - -// Returns the current OS stack trace as an std::string. -// -// The maximum number of stack frames to be included is specified by -// the gtest_stack_trace_depth flag. The skip_count parameter -// specifies the number of top frames to be skipped, which doesn't -// count against the number of frames to be included. -// -// For example, if Foo() calls Bar(), which in turn calls -// GetCurrentOsStackTraceExceptTop(..., 1), Foo() will be included in -// the trace but Bar() and GetCurrentOsStackTraceExceptTop() won't. -GTEST_NO_INLINE_ GTEST_NO_TAIL_CALL_ std::string -GetCurrentOsStackTraceExceptTop(UnitTest* /*unit_test*/, int skip_count) { - // We pass skip_count + 1 to skip this wrapper function in addition - // to what the user really wants to skip. - return GetUnitTestImpl()->CurrentOsStackTraceExceptTop(skip_count + 1); -} - -// Used by the GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_ macro to -// suppress unreachable code warnings. -namespace { -class ClassUniqueToAlwaysTrue {}; -} // namespace - -bool IsTrue(bool condition) { return condition; } - -bool AlwaysTrue() { -#if GTEST_HAS_EXCEPTIONS - // This condition is always false so AlwaysTrue() never actually throws, - // but it makes the compiler think that it may throw. - if (IsTrue(false)) throw ClassUniqueToAlwaysTrue(); -#endif // GTEST_HAS_EXCEPTIONS - return true; -} - -// If *pstr starts with the given prefix, modifies *pstr to be right -// past the prefix and returns true; otherwise leaves *pstr unchanged -// and returns false. None of pstr, *pstr, and prefix can be NULL. -bool SkipPrefix(const char* prefix, const char** pstr) { - const size_t prefix_len = strlen(prefix); - if (strncmp(*pstr, prefix, prefix_len) == 0) { - *pstr += prefix_len; - return true; - } - return false; -} - -// Parses a string as a command line flag. The string should have -// the format "--flag=value". When def_optional is true, the "=value" -// part can be omitted. -// -// Returns the value of the flag, or NULL if the parsing failed. -static const char* ParseFlagValue(const char* str, const char* flag_name, - bool def_optional) { - // str and flag must not be NULL. - if (str == nullptr || flag_name == nullptr) return nullptr; - - // The flag must start with "--" followed by GTEST_FLAG_PREFIX_. - const std::string flag_str = - std::string("--") + GTEST_FLAG_PREFIX_ + flag_name; - const size_t flag_len = flag_str.length(); - if (strncmp(str, flag_str.c_str(), flag_len) != 0) return nullptr; - - // Skips the flag name. - const char* flag_end = str + flag_len; - - // When def_optional is true, it's OK to not have a "=value" part. - if (def_optional && (flag_end[0] == '\0')) { - return flag_end; - } - - // If def_optional is true and there are more characters after the - // flag name, or if def_optional is false, there must be a '=' after - // the flag name. - if (flag_end[0] != '=') return nullptr; - - // Returns the string after "=". - return flag_end + 1; -} - -// Parses a string for a bool flag, in the form of either -// "--flag=value" or "--flag". -// -// In the former case, the value is taken as true as long as it does -// not start with '0', 'f', or 'F'. -// -// In the latter case, the value is taken as true. -// -// On success, stores the value of the flag in *value, and returns -// true. On failure, returns false without changing *value. -static bool ParseFlag(const char* str, const char* flag_name, bool* value) { - // Gets the value of the flag as a string. - const char* const value_str = ParseFlagValue(str, flag_name, true); - - // Aborts if the parsing failed. - if (value_str == nullptr) return false; - - // Converts the string value to a bool. - *value = !(*value_str == '0' || *value_str == 'f' || *value_str == 'F'); - return true; -} - -// Parses a string for an int32_t flag, in the form of "--flag=value". -// -// On success, stores the value of the flag in *value, and returns -// true. On failure, returns false without changing *value. -bool ParseFlag(const char* str, const char* flag_name, int32_t* value) { - // Gets the value of the flag as a string. - const char* const value_str = ParseFlagValue(str, flag_name, false); - - // Aborts if the parsing failed. - if (value_str == nullptr) return false; - - // Sets *value to the value of the flag. - return ParseInt32(Message() << "The value of flag --" << flag_name, value_str, - value); -} - -// Parses a string for a string flag, in the form of "--flag=value". -// -// On success, stores the value of the flag in *value, and returns -// true. On failure, returns false without changing *value. -template -static bool ParseFlag(const char* str, const char* flag_name, String* value) { - // Gets the value of the flag as a string. - const char* const value_str = ParseFlagValue(str, flag_name, false); - - // Aborts if the parsing failed. - if (value_str == nullptr) return false; - - // Sets *value to the value of the flag. - *value = value_str; - return true; -} - -// Determines whether a string has a prefix that Google Test uses for its -// flags, i.e., starts with GTEST_FLAG_PREFIX_ or GTEST_FLAG_PREFIX_DASH_. -// If Google Test detects that a command line flag has its prefix but is not -// recognized, it will print its help message. Flags starting with -// GTEST_INTERNAL_PREFIX_ followed by "internal_" are considered Google Test -// internal flags and do not trigger the help message. -static bool HasGoogleTestFlagPrefix(const char* str) { - return (SkipPrefix("--", &str) || SkipPrefix("-", &str) || - SkipPrefix("/", &str)) && - !SkipPrefix(GTEST_FLAG_PREFIX_ "internal_", &str) && - (SkipPrefix(GTEST_FLAG_PREFIX_, &str) || - SkipPrefix(GTEST_FLAG_PREFIX_DASH_, &str)); -} - -// Prints a string containing code-encoded text. The following escape -// sequences can be used in the string to control the text color: -// -// @@ prints a single '@' character. -// @R changes the color to red. -// @G changes the color to green. -// @Y changes the color to yellow. -// @D changes to the default terminal text color. -// -static void PrintColorEncoded(const char* str) { - GTestColor color = GTestColor::kDefault; // The current color. - - // Conceptually, we split the string into segments divided by escape - // sequences. Then we print one segment at a time. At the end of - // each iteration, the str pointer advances to the beginning of the - // next segment. - for (;;) { - const char* p = strchr(str, '@'); - if (p == nullptr) { - ColoredPrintf(color, "%s", str); - return; - } - - ColoredPrintf(color, "%s", std::string(str, p).c_str()); - - const char ch = p[1]; - str = p + 2; - if (ch == '@') { - ColoredPrintf(color, "@"); - } else if (ch == 'D') { - color = GTestColor::kDefault; - } else if (ch == 'R') { - color = GTestColor::kRed; - } else if (ch == 'G') { - color = GTestColor::kGreen; - } else if (ch == 'Y') { - color = GTestColor::kYellow; - } else { - --str; - } - } -} - -static const char kColorEncodedHelpMessage[] = - "This program contains tests written using " GTEST_NAME_ - ". You can use the\n" - "following command line flags to control its behavior:\n" - "\n" - "Test Selection:\n" - " @G--" GTEST_FLAG_PREFIX_ - "list_tests@D\n" - " List the names of all tests instead of running them. The name of\n" - " TEST(Foo, Bar) is \"Foo.Bar\".\n" - " @G--" GTEST_FLAG_PREFIX_ - "filter=@YPOSITIVE_PATTERNS" - "[@G-@YNEGATIVE_PATTERNS]@D\n" - " Run only the tests whose name matches one of the positive patterns " - "but\n" - " none of the negative patterns. '?' matches any single character; " - "'*'\n" - " matches any substring; ':' separates two patterns.\n" - " @G--" GTEST_FLAG_PREFIX_ - "also_run_disabled_tests@D\n" - " Run all disabled tests too.\n" - "\n" - "Test Execution:\n" - " @G--" GTEST_FLAG_PREFIX_ - "repeat=@Y[COUNT]@D\n" - " Run the tests repeatedly; use a negative count to repeat forever.\n" - " @G--" GTEST_FLAG_PREFIX_ - "shuffle@D\n" - " Randomize tests' orders on every iteration.\n" - " @G--" GTEST_FLAG_PREFIX_ - "random_seed=@Y[NUMBER]@D\n" - " Random number seed to use for shuffling test orders (between 1 and\n" - " 99999, or 0 to use a seed based on the current time).\n" - " @G--" GTEST_FLAG_PREFIX_ - "recreate_environments_when_repeating@D\n" - " Sets up and tears down the global test environment on each repeat\n" - " of the test.\n" - "\n" - "Test Output:\n" - " @G--" GTEST_FLAG_PREFIX_ - "color=@Y(@Gyes@Y|@Gno@Y|@Gauto@Y)@D\n" - " Enable/disable colored output. The default is @Gauto@D.\n" - " @G--" GTEST_FLAG_PREFIX_ - "brief=1@D\n" - " Only print test failures.\n" - " @G--" GTEST_FLAG_PREFIX_ - "print_time=0@D\n" - " Don't print the elapsed time of each test.\n" - " @G--" GTEST_FLAG_PREFIX_ - "output=@Y(@Gjson@Y|@Gxml@Y)[@G:@YDIRECTORY_PATH@G" GTEST_PATH_SEP_ - "@Y|@G:@YFILE_PATH]@D\n" - " Generate a JSON or XML report in the given directory or with the " - "given\n" - " file name. @YFILE_PATH@D defaults to @Gtest_detail.xml@D.\n" -#if GTEST_CAN_STREAM_RESULTS_ - " @G--" GTEST_FLAG_PREFIX_ - "stream_result_to=@YHOST@G:@YPORT@D\n" - " Stream test results to the given server.\n" -#endif // GTEST_CAN_STREAM_RESULTS_ - "\n" - "Assertion Behavior:\n" -#if GTEST_HAS_DEATH_TEST && !GTEST_OS_WINDOWS - " @G--" GTEST_FLAG_PREFIX_ - "death_test_style=@Y(@Gfast@Y|@Gthreadsafe@Y)@D\n" - " Set the default death test style.\n" -#endif // GTEST_HAS_DEATH_TEST && !GTEST_OS_WINDOWS - " @G--" GTEST_FLAG_PREFIX_ - "break_on_failure@D\n" - " Turn assertion failures into debugger break-points.\n" - " @G--" GTEST_FLAG_PREFIX_ - "throw_on_failure@D\n" - " Turn assertion failures into C++ exceptions for use by an external\n" - " test framework.\n" - " @G--" GTEST_FLAG_PREFIX_ - "catch_exceptions=0@D\n" - " Do not report exceptions as test failures. Instead, allow them\n" - " to crash the program or throw a pop-up (on Windows).\n" - "\n" - "Except for @G--" GTEST_FLAG_PREFIX_ - "list_tests@D, you can alternatively set " - "the corresponding\n" - "environment variable of a flag (all letters in upper-case). For example, " - "to\n" - "disable colored text output, you can either specify " - "@G--" GTEST_FLAG_PREFIX_ - "color=no@D or set\n" - "the @G" GTEST_FLAG_PREFIX_UPPER_ - "COLOR@D environment variable to @Gno@D.\n" - "\n" - "For more information, please read the " GTEST_NAME_ - " documentation at\n" - "@G" GTEST_PROJECT_URL_ "@D. If you find a bug in " GTEST_NAME_ - "\n" - "(not one in your own code or tests), please report it to\n" - "@G<" GTEST_DEV_EMAIL_ ">@D.\n"; - -static bool ParseGoogleTestFlag(const char* const arg) { -#define GTEST_INTERNAL_PARSE_FLAG(flag_name) \ - do { \ - auto value = GTEST_FLAG_GET(flag_name); \ - if (ParseFlag(arg, #flag_name, &value)) { \ - GTEST_FLAG_SET(flag_name, value); \ - return true; \ - } \ - } while (false) - - GTEST_INTERNAL_PARSE_FLAG(also_run_disabled_tests); - GTEST_INTERNAL_PARSE_FLAG(break_on_failure); - GTEST_INTERNAL_PARSE_FLAG(catch_exceptions); - GTEST_INTERNAL_PARSE_FLAG(color); - GTEST_INTERNAL_PARSE_FLAG(death_test_style); - GTEST_INTERNAL_PARSE_FLAG(death_test_use_fork); - GTEST_INTERNAL_PARSE_FLAG(fail_fast); - GTEST_INTERNAL_PARSE_FLAG(filter); - GTEST_INTERNAL_PARSE_FLAG(internal_run_death_test); - GTEST_INTERNAL_PARSE_FLAG(list_tests); - GTEST_INTERNAL_PARSE_FLAG(output); - GTEST_INTERNAL_PARSE_FLAG(brief); - GTEST_INTERNAL_PARSE_FLAG(print_time); - GTEST_INTERNAL_PARSE_FLAG(print_utf8); - GTEST_INTERNAL_PARSE_FLAG(random_seed); - GTEST_INTERNAL_PARSE_FLAG(repeat); - GTEST_INTERNAL_PARSE_FLAG(recreate_environments_when_repeating); - GTEST_INTERNAL_PARSE_FLAG(shuffle); - GTEST_INTERNAL_PARSE_FLAG(stack_trace_depth); - GTEST_INTERNAL_PARSE_FLAG(stream_result_to); - GTEST_INTERNAL_PARSE_FLAG(throw_on_failure); - return false; -} - -#if GTEST_USE_OWN_FLAGFILE_FLAG_ -static void LoadFlagsFromFile(const std::string& path) { - FILE* flagfile = posix::FOpen(path.c_str(), "r"); - if (!flagfile) { - GTEST_LOG_(FATAL) << "Unable to open file \"" << GTEST_FLAG_GET(flagfile) - << "\""; - } - std::string contents(ReadEntireFile(flagfile)); - posix::FClose(flagfile); - std::vector lines; - SplitString(contents, '\n', &lines); - for (size_t i = 0; i < lines.size(); ++i) { - if (lines[i].empty()) continue; - if (!ParseGoogleTestFlag(lines[i].c_str())) g_help_flag = true; - } -} -#endif // GTEST_USE_OWN_FLAGFILE_FLAG_ - -// Parses the command line for Google Test flags, without initializing -// other parts of Google Test. The type parameter CharType can be -// instantiated to either char or wchar_t. -template -void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) { - std::string flagfile_value; - for (int i = 1; i < *argc; i++) { - const std::string arg_string = StreamableToString(argv[i]); - const char* const arg = arg_string.c_str(); - - using internal::ParseFlag; - - bool remove_flag = false; - if (ParseGoogleTestFlag(arg)) { - remove_flag = true; -#if GTEST_USE_OWN_FLAGFILE_FLAG_ - } else if (ParseFlag(arg, "flagfile", &flagfile_value)) { - GTEST_FLAG_SET(flagfile, flagfile_value); - LoadFlagsFromFile(flagfile_value); - remove_flag = true; -#endif // GTEST_USE_OWN_FLAGFILE_FLAG_ - } else if (arg_string == "--help" || HasGoogleTestFlagPrefix(arg)) { - // Both help flag and unrecognized Google Test flags (excluding - // internal ones) trigger help display. - g_help_flag = true; - } - - if (remove_flag) { - // Shift the remainder of the argv list left by one. Note - // that argv has (*argc + 1) elements, the last one always being - // NULL. The following loop moves the trailing NULL element as - // well. - for (int j = i; j != *argc; j++) { - argv[j] = argv[j + 1]; - } - - // Decrements the argument count. - (*argc)--; - - // We also need to decrement the iterator as we just removed - // an element. - i--; - } - } - - if (g_help_flag) { - // We print the help here instead of in RUN_ALL_TESTS(), as the - // latter may not be called at all if the user is using Google - // Test with another testing framework. - PrintColorEncoded(kColorEncodedHelpMessage); - } -} - -// Parses the command line for Google Test flags, without initializing -// other parts of Google Test. -void ParseGoogleTestFlagsOnly(int* argc, char** argv) { -#if GTEST_HAS_ABSL - if (*argc > 0) { - // absl::ParseCommandLine() requires *argc > 0. - auto positional_args = absl::flags_internal::ParseCommandLineImpl( - *argc, argv, absl::flags_internal::ArgvListAction::kRemoveParsedArgs, - absl::flags_internal::UsageFlagsAction::kHandleUsage, - absl::flags_internal::OnUndefinedFlag::kReportUndefined); - // Any command-line positional arguments not part of any command-line flag - // (or arguments to a flag) are copied back out to argv, with the program - // invocation name at position 0, and argc is resized. This includes - // positional arguments after the flag-terminating delimiter '--'. - // See https://abseil.io/docs/cpp/guides/flags. - std::copy(positional_args.begin(), positional_args.end(), argv); - if (static_cast(positional_args.size()) < *argc) { - argv[positional_args.size()] = nullptr; - *argc = static_cast(positional_args.size()); - } - } -#else - ParseGoogleTestFlagsOnlyImpl(argc, argv); -#endif - - // Fix the value of *_NSGetArgc() on macOS, but if and only if - // *_NSGetArgv() == argv - // Only applicable to char** version of argv -#if GTEST_OS_MAC -#ifndef GTEST_OS_IOS - if (*_NSGetArgv() == argv) { - *_NSGetArgc() = *argc; - } -#endif -#endif -} -void ParseGoogleTestFlagsOnly(int* argc, wchar_t** argv) { - ParseGoogleTestFlagsOnlyImpl(argc, argv); -} - -// The internal implementation of InitGoogleTest(). -// -// The type parameter CharType can be instantiated to either char or -// wchar_t. -template -void InitGoogleTestImpl(int* argc, CharType** argv) { - // We don't want to run the initialization code twice. - if (GTestIsInitialized()) return; - - if (*argc <= 0) return; - - g_argvs.clear(); - for (int i = 0; i != *argc; i++) { - g_argvs.push_back(StreamableToString(argv[i])); - } - -#if GTEST_HAS_ABSL - absl::InitializeSymbolizer(g_argvs[0].c_str()); - - // When using the Abseil Flags library, set the program usage message to the - // help message, but remove the color-encoding from the message first. - absl::SetProgramUsageMessage(absl::StrReplaceAll( - kColorEncodedHelpMessage, - {{"@D", ""}, {"@R", ""}, {"@G", ""}, {"@Y", ""}, {"@@", "@"}})); -#endif // GTEST_HAS_ABSL - - ParseGoogleTestFlagsOnly(argc, argv); - GetUnitTestImpl()->PostFlagParsingInit(); -} - -} // namespace internal - -// Initializes Google Test. This must be called before calling -// RUN_ALL_TESTS(). In particular, it parses a command line for the -// flags that Google Test recognizes. Whenever a Google Test flag is -// seen, it is removed from argv, and *argc is decremented. -// -// No value is returned. Instead, the Google Test flag variables are -// updated. -// -// Calling the function for the second time has no user-visible effect. -void InitGoogleTest(int* argc, char** argv) { -#if defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_) - GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_(argc, argv); -#else // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_) - internal::InitGoogleTestImpl(argc, argv); -#endif // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_) -} - -// This overloaded version can be used in Windows programs compiled in -// UNICODE mode. -void InitGoogleTest(int* argc, wchar_t** argv) { -#if defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_) - GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_(argc, argv); -#else // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_) - internal::InitGoogleTestImpl(argc, argv); -#endif // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_) -} - -// This overloaded version can be used on Arduino/embedded platforms where -// there is no argc/argv. -void InitGoogleTest() { - // Since Arduino doesn't have a command line, fake out the argc/argv arguments - int argc = 1; - const auto arg0 = "dummy"; - char* argv0 = const_cast(arg0); - char** argv = &argv0; - -#if defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_) - GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_(&argc, argv); -#else // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_) - internal::InitGoogleTestImpl(&argc, argv); -#endif // defined(GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_) -} - -#if !defined(GTEST_CUSTOM_TEMPDIR_FUNCTION_) -// Return value of first environment variable that is set and contains -// a non-empty string. If there are none, return the "fallback" string. -// Since we like the temporary directory to have a directory separator suffix, -// add it if not provided in the environment variable value. -static std::string GetTempDirFromEnv( - std::initializer_list environment_variables, - const char* fallback, char separator) { - for (const char* variable_name : environment_variables) { - const char* value = internal::posix::GetEnv(variable_name); - if (value != nullptr && value[0] != '\0') { - if (value[strlen(value) - 1] != separator) { - return std::string(value).append(1, separator); - } - return value; - } - } - return fallback; -} -#endif - -std::string TempDir() { -#if defined(GTEST_CUSTOM_TEMPDIR_FUNCTION_) - return GTEST_CUSTOM_TEMPDIR_FUNCTION_(); -#elif GTEST_OS_WINDOWS || GTEST_OS_WINDOWS_MOBILE - return GetTempDirFromEnv({"TEST_TMPDIR", "TEMP"}, "\\temp\\", '\\'); -#elif GTEST_OS_LINUX_ANDROID - return GetTempDirFromEnv({"TEST_TMPDIR", "TMPDIR"}, "/data/local/tmp/", '/'); -#else - return GetTempDirFromEnv({"TEST_TMPDIR", "TMPDIR"}, "/tmp/", '/'); -#endif -} - -// Class ScopedTrace - -// Pushes the given source file location and message onto a per-thread -// trace stack maintained by Google Test. -void ScopedTrace::PushTrace(const char* file, int line, std::string message) { - internal::TraceInfo trace; - trace.file = file; - trace.line = line; - trace.message.swap(message); - - UnitTest::GetInstance()->PushGTestTrace(trace); -} - -// Pops the info pushed by the c'tor. -ScopedTrace::~ScopedTrace() GTEST_LOCK_EXCLUDED_(&UnitTest::mutex_) { - UnitTest::GetInstance()->PopGTestTrace(); -} - -} // namespace testing diff --git a/libs/cpp-httplib/test/gtest/src/gtest_main.cc b/libs/cpp-httplib/test/gtest/src/gtest_main.cc deleted file mode 100644 index 4497637..0000000 --- a/libs/cpp-httplib/test/gtest/src/gtest_main.cc +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2006, 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. - -#include - -#include "gtest/gtest.h" - -#if GTEST_OS_ESP8266 || GTEST_OS_ESP32 -#if GTEST_OS_ESP8266 -extern "C" { -#endif -void setup() { testing::InitGoogleTest(); } - -void loop() { RUN_ALL_TESTS(); } - -#if GTEST_OS_ESP8266 -} -#endif - -#else - -GTEST_API_ int main(int argc, char **argv) { - printf("Running main() from %s\n", __FILE__); - testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} -#endif diff --git a/libs/cpp-httplib/test/image.jpg b/libs/cpp-httplib/test/image.jpg deleted file mode 100644 index f74b495..0000000 Binary files a/libs/cpp-httplib/test/image.jpg and /dev/null differ diff --git a/libs/cpp-httplib/test/include_httplib.cc b/libs/cpp-httplib/test/include_httplib.cc deleted file mode 100644 index fd38cb8..0000000 --- a/libs/cpp-httplib/test/include_httplib.cc +++ /dev/null @@ -1,5 +0,0 @@ -// The sole purpose of this file is to include httplib.h in a separate -// compilation unit, thus verifying that inline keywords have not been forgotten -// when linked together with test.cc. - -#include diff --git a/libs/cpp-httplib/test/include_windows_h.cc b/libs/cpp-httplib/test/include_windows_h.cc deleted file mode 100644 index 44f541f..0000000 --- a/libs/cpp-httplib/test/include_windows_h.cc +++ /dev/null @@ -1,6 +0,0 @@ -// Test if including windows.h conflicts with httplib.h - -#define WIN32_LEAN_AND_MEAN -#include - -#include diff --git a/libs/cpp-httplib/test/make-shared-library.sh b/libs/cpp-httplib/test/make-shared-library.sh deleted file mode 100644 index 04f2fc0..0000000 --- a/libs/cpp-httplib/test/make-shared-library.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash -if [ "$#" -ne 1 ]; then - echo "Usage: $0 build_dir" - exit 1 -fi - -BUILD_DIR=$1 - -# Make the build directory -rm -rf $BUILD_DIR -mkdir -p $BUILD_DIR/out - -cd $BUILD_DIR - -# Build the version -git checkout $BUILD_DIR -q - -cmake \ - -DCMAKE_BUILD_TYPE=Debug \ - -DCMAKE_CXX_FLAGS="-g -Og" \ - -DBUILD_SHARED_LIBS=ON \ - -DHTTPLIB_COMPILE=ON \ - -DCMAKE_INSTALL_PREFIX=./out \ - ../.. - -cmake --build . --target install -cmake --build . --target clean - diff --git a/libs/cpp-httplib/test/meson.build b/libs/cpp-httplib/test/meson.build deleted file mode 100644 index 745236b..0000000 --- a/libs/cpp-httplib/test/meson.build +++ /dev/null @@ -1,146 +0,0 @@ -# SPDX-FileCopyrightText: 2021 Andrea Pappacoda -# -# SPDX-License-Identifier: MIT - -gtest_dep = dependency('gtest', main: true) -libcurl_dep = dependency('libcurl') -openssl = find_program('openssl') -test_conf = files('test.conf') -req_x509_flag = openssl.version().version_compare('>=3.2.0') ? '-x509v1' : '-x509' - -key_pem = custom_target( - 'key_pem', - output: 'key.pem', - command: [openssl, 'genrsa', '-out', '@OUTPUT@', '2048'] -) - -temp_req = custom_target( - 'temp_req', - input: key_pem, - output: 'temp_req', - command: [openssl, 'req', '-new', '-batch', '-config', test_conf, '-key', '@INPUT@', '-out', '@OUTPUT@'] -) - -cert_pem = custom_target( - 'cert_pem', - input: [temp_req, key_pem], - output: 'cert.pem', - command: [openssl, 'x509', '-in', '@INPUT0@', '-days', '3650', '-req', '-signkey', '@INPUT1@', '-out', '@OUTPUT@'] -) - -cert2_pem = custom_target( - 'cert2_pem', - input: key_pem, - output: 'cert2.pem', - command: [openssl, 'req', req_x509_flag, '-config', test_conf, '-key', '@INPUT@', '-sha256', '-days', '3650', '-nodes', '-out', '@OUTPUT@', '-extensions', 'SAN'] -) - -key_encrypted_pem = custom_target( - 'key_encrypted_pem', - output: 'key_encrypted.pem', - command: [openssl, 'genrsa', '-passout', 'pass:test123!', '-out', '@OUTPUT@', '2048'] -) - -cert_encrypted_pem = custom_target( - 'cert_encrypted_pem', - input: key_encrypted_pem, - output: 'cert_encrypted.pem', - command: [openssl, 'req', req_x509_flag, '-config', test_conf, '-key', '@INPUT@', '-sha256', '-days', '3650', '-nodes', '-out', '@OUTPUT@', '-extensions', 'SAN'] -) - -rootca_key_pem = custom_target( - 'rootca_key_pem', - output: 'rootCA.key.pem', - command: [openssl, 'genrsa', '-out', '@OUTPUT@', '2048'] -) - -rootca_cert_pem = custom_target( - 'rootca_cert_pem', - input: rootca_key_pem, - output: 'rootCA.cert.pem', - command: [openssl, 'req', req_x509_flag, '-new', '-batch', '-config', files('test.rootCA.conf'), '-key', '@INPUT@', '-days', '1024', '-out', '@OUTPUT@'] -) - -client_key_pem = custom_target( - 'client_key_pem', - output: 'client.key.pem', - command: [openssl, 'genrsa', '-out', '@OUTPUT@', '2048'] -) - -client_temp_req = custom_target( - 'client_temp_req', - input: client_key_pem, - output: 'client_temp_req', - command: [openssl, 'req', '-new', '-batch', '-config', test_conf, '-key', '@INPUT@', '-out', '@OUTPUT@'] -) - -client_cert_pem = custom_target( - 'client_cert_pem', - input: [client_temp_req, rootca_cert_pem, rootca_key_pem], - output: 'client.cert.pem', - command: [openssl, 'x509', '-in', '@INPUT0@', '-days', '370', '-req', '-CA', '@INPUT1@', '-CAkey', '@INPUT2@', '-CAcreateserial', '-out', '@OUTPUT@'] -) - -client_encrypted_key_pem = custom_target( - 'client_encrypted_key_pem', - output: 'client_encrypted.key.pem', - command: [openssl, 'genrsa', '-aes256', '-passout', 'pass:test012!', '-out', '@OUTPUT@', '2048'] -) - -client_encrypted_temp_req = custom_target( - 'client_encrypted_temp_req', - input: client_encrypted_key_pem, - output: 'client_encrypted_temp_req', - command: [openssl, 'req', '-new', '-batch', '-config', test_conf, '-key', '@INPUT@', '-passin', 'pass:test012!', '-out', '@OUTPUT@'] -) - -client_encrypted_cert_pem = custom_target( - 'client_encrypted_cert_pem', - input: [client_encrypted_temp_req, rootca_cert_pem, rootca_key_pem], - output: 'client_encrypted.cert.pem', - command: [openssl, 'x509', '-in', '@INPUT0@', '-days', '370', '-req', '-CA', '@INPUT1@', '-CAkey', '@INPUT2@', '-CAcreateserial', '-out', '@OUTPUT@'] -) - -# Copy test files to the build directory -configure_file(input: 'ca-bundle.crt', output: 'ca-bundle.crt', copy: true) -configure_file(input: 'image.jpg', output: 'image.jpg', copy: true) -subdir('www') -subdir('www2'/'dir') -subdir('www3'/'dir') - -# New GoogleTest versions require new C++ standards -test_options = [] -if gtest_dep.version().version_compare('>=1.17.0') - test_options += 'cpp_std=c++17' -elif gtest_dep.version().version_compare('>=1.13.0') - test_options += 'cpp_std=c++14' -endif - -test( - 'main', - executable( - 'main', - 'test.cc', - dependencies: [ - cpp_httplib_dep, - gtest_dep, - libcurl_dep - ], - override_options: test_options - ), - depends: [ - key_pem, - cert_pem, - cert2_pem, - key_encrypted_pem, - cert_encrypted_pem, - rootca_key_pem, - rootca_cert_pem, - client_key_pem, - client_cert_pem, - client_encrypted_key_pem, - client_encrypted_cert_pem - ], - workdir: meson.current_build_dir(), - timeout: 300 -) diff --git a/libs/cpp-httplib/test/proxy/Dockerfile b/libs/cpp-httplib/test/proxy/Dockerfile deleted file mode 100644 index 2f39159..0000000 --- a/libs/cpp-httplib/test/proxy/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM alpine:latest - -ARG auth="basic" -ARG port="3128" - -RUN apk update && apk add --no-cache squid - -COPY ./${auth}_squid.conf /etc/squid/squid.conf -COPY ./${auth}_passwd /etc/squid/passwd - -EXPOSE ${port} - -CMD ["/usr/sbin/squid", "-N"] diff --git a/libs/cpp-httplib/test/proxy/basic_passwd b/libs/cpp-httplib/test/proxy/basic_passwd deleted file mode 100644 index bb1b709..0000000 --- a/libs/cpp-httplib/test/proxy/basic_passwd +++ /dev/null @@ -1 +0,0 @@ -hello:$apr1$O6S28OBL$8dr3ixl4Mohf97hgsYvLy/ diff --git a/libs/cpp-httplib/test/proxy/basic_squid.conf b/libs/cpp-httplib/test/proxy/basic_squid.conf deleted file mode 100644 index e9d1aeb..0000000 --- a/libs/cpp-httplib/test/proxy/basic_squid.conf +++ /dev/null @@ -1,81 +0,0 @@ -# -# Recommended minimum configuration: -# - -# Example rule allowing access from your local networks. -# Adapt to list your (internal) IP networks from where browsing -# should be allowed -acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN) -acl localnet src 10.0.0.0/8 # RFC 1918 local private network (LAN) -acl localnet src 100.64.0.0/10 # RFC 6598 shared address space (CGN) -acl localnet src 169.254.0.0/16 # RFC 3927 link-local (directly plugged) machines -acl localnet src 172.16.0.0/12 # RFC 1918 local private network (LAN) -acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN) -acl localnet src fc00::/7 # RFC 4193 local private network range -acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines - -acl SSL_ports port 443 -acl Safe_ports port 80 # http -acl Safe_ports port 21 # ftp -acl Safe_ports port 443 # https -acl Safe_ports port 70 # gopher -acl Safe_ports port 210 # wais -acl Safe_ports port 1025-65535 # unregistered ports -acl Safe_ports port 280 # http-mgmt -acl Safe_ports port 488 # gss-http -acl Safe_ports port 591 # filemaker -acl Safe_ports port 777 # multiling http -acl CONNECT method CONNECT - -auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd -auth_param basic realm proxy -acl authenticated proxy_auth REQUIRED -http_access allow authenticated - -# -# Recommended minimum Access Permission configuration: -# -# Deny requests to certain unsafe ports -http_access deny !Safe_ports - -# Deny CONNECT to other than secure SSL ports -http_access deny CONNECT !SSL_ports - -# Only allow cachemgr access from localhost -http_access allow localhost manager -http_access deny manager - -# We strongly recommend the following be uncommented to protect innocent -# web applications running on the proxy server who think the only -# one who can access services on "localhost" is a local user -#http_access deny to_localhost - -# -# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS -# - -# Example rule allowing access from your local networks. -# Adapt localnet in the ACL section to list your (internal) IP networks -# from where browsing should be allowed -http_access allow localnet -http_access allow localhost - -# And finally deny all other access to this proxy -http_access deny all - -# Squid normally listens to port 3128 -http_port 3128 - -# Uncomment and adjust the following to add a disk cache directory. -#cache_dir ufs /var/spool/squid 100 16 256 - -# Leave coredumps in the first cache dir -coredump_dir /var/spool/squid - -# -# Add any of your own refresh_pattern entries above these. -# -refresh_pattern ^ftp: 1440 20% 10080 -refresh_pattern ^gopher: 1440 0% 1440 -refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 -refresh_pattern . 0 20% 4320 diff --git a/libs/cpp-httplib/test/proxy/digest_passwd b/libs/cpp-httplib/test/proxy/digest_passwd deleted file mode 100644 index d45615f..0000000 --- a/libs/cpp-httplib/test/proxy/digest_passwd +++ /dev/null @@ -1 +0,0 @@ -hello:world diff --git a/libs/cpp-httplib/test/proxy/digest_squid.conf b/libs/cpp-httplib/test/proxy/digest_squid.conf deleted file mode 100644 index f38135f..0000000 --- a/libs/cpp-httplib/test/proxy/digest_squid.conf +++ /dev/null @@ -1,81 +0,0 @@ -# -# Recommended minimum configuration: -# - -# Example rule allowing access from your local networks. -# Adapt to list your (internal) IP networks from where browsing -# should be allowed -acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN) -acl localnet src 10.0.0.0/8 # RFC 1918 local private network (LAN) -acl localnet src 100.64.0.0/10 # RFC 6598 shared address space (CGN) -acl localnet src 169.254.0.0/16 # RFC 3927 link-local (directly plugged) machines -acl localnet src 172.16.0.0/12 # RFC 1918 local private network (LAN) -acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN) -acl localnet src fc00::/7 # RFC 4193 local private network range -acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines - -acl SSL_ports port 443 -acl Safe_ports port 80 # http -acl Safe_ports port 21 # ftp -acl Safe_ports port 443 # https -acl Safe_ports port 70 # gopher -acl Safe_ports port 210 # wais -acl Safe_ports port 1025-65535 # unregistered ports -acl Safe_ports port 280 # http-mgmt -acl Safe_ports port 488 # gss-http -acl Safe_ports port 591 # filemaker -acl Safe_ports port 777 # multiling http -acl CONNECT method CONNECT - -auth_param digest program /usr/lib/squid/digest_file_auth /etc/squid/passwd -auth_param digest realm proxy -acl authenticated proxy_auth REQUIRED -http_access allow authenticated - -# -# Recommended minimum Access Permission configuration: -# -# Deny requests to certain unsafe ports -http_access deny !Safe_ports - -# Deny CONNECT to other than secure SSL ports -http_access deny CONNECT !SSL_ports - -# Only allow cachemgr access from localhost -http_access allow localhost manager -http_access deny manager - -# We strongly recommend the following be uncommented to protect innocent -# web applications running on the proxy server who think the only -# one who can access services on "localhost" is a local user -#http_access deny to_localhost - -# -# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS -# - -# Example rule allowing access from your local networks. -# Adapt localnet in the ACL section to list your (internal) IP networks -# from where browsing should be allowed -http_access allow localnet -http_access allow localhost - -# And finally deny all other access to this proxy -http_access deny all - -# Squid normally listens to port 3128 -http_port 3129 - -# Uncomment and adjust the following to add a disk cache directory. -#cache_dir ufs /var/spool/squid 100 16 256 - -# Leave coredumps in the first cache dir -coredump_dir /var/spool/squid - -# -# Add any of your own refresh_pattern entries above these. -# -refresh_pattern ^ftp: 1440 20% 10080 -refresh_pattern ^gopher: 1440 0% 1440 -refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 -refresh_pattern . 0 20% 4320 diff --git a/libs/cpp-httplib/test/proxy/docker-compose.yml b/libs/cpp-httplib/test/proxy/docker-compose.yml deleted file mode 100644 index 8ffe81e..0000000 --- a/libs/cpp-httplib/test/proxy/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - squid_basic: - image: squid_basic - restart: always - ports: - - "3128:3128" - build: - context: ./ - args: - auth: basic - - squid_digest: - image: squid_digest - restart: always - ports: - - "3129:3129" - build: - context: ./ - args: - auth: digest diff --git a/libs/cpp-httplib/test/test.cc b/libs/cpp-httplib/test/test.cc deleted file mode 100644 index a9ac0d1..0000000 --- a/libs/cpp-httplib/test/test.cc +++ /dev/null @@ -1,10830 +0,0 @@ -// NOTE: This file should be saved as UTF-8 w/ BOM -#include -#include - -#ifndef _WIN32 -#include -#include -#include -#include -#include -#endif -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define SERVER_CERT_FILE "./cert.pem" -#define SERVER_CERT2_FILE "./cert2.pem" -#define SERVER_PRIVATE_KEY_FILE "./key.pem" -#define CA_CERT_FILE "./ca-bundle.crt" -#define CLIENT_CA_CERT_FILE "./rootCA.cert.pem" -#define CLIENT_CA_CERT_DIR "." -#define CLIENT_CERT_FILE "./client.cert.pem" -#define CLIENT_PRIVATE_KEY_FILE "./client.key.pem" -#define CLIENT_ENCRYPTED_CERT_FILE "./client_encrypted.cert.pem" -#define CLIENT_ENCRYPTED_PRIVATE_KEY_FILE "./client_encrypted.key.pem" -#define CLIENT_ENCRYPTED_PRIVATE_KEY_PASS "test012!" -#define SERVER_ENCRYPTED_CERT_FILE "./cert_encrypted.pem" -#define SERVER_ENCRYPTED_PRIVATE_KEY_FILE "./key_encrypted.pem" -#define SERVER_ENCRYPTED_PRIVATE_KEY_PASS "test123!" - -using namespace std; -using namespace httplib; - -const char *HOST = "localhost"; -const int PORT = 1234; - -const string LONG_QUERY_VALUE = string(25000, '@'); -const string LONG_QUERY_URL = "/long-query-value?key=" + LONG_QUERY_VALUE; - -const string TOO_LONG_QUERY_VALUE = string(35000, '@'); -const string TOO_LONG_QUERY_URL = - "/too-long-query-value?key=" + TOO_LONG_QUERY_VALUE; - -const std::string JSON_DATA = "{\"hello\":\"world\"}"; - -const string LARGE_DATA = string(1024 * 1024 * 100, '@'); // 100MB - -FormData &get_file_value(std::vector &items, const char *key) { - auto it = std::find_if(items.begin(), items.end(), [&](const FormData &file) { - return file.name == key; - }); -#ifdef CPPHTTPLIB_NO_EXCEPTIONS - return *it; -#else - if (it != items.end()) { return *it; } - throw std::runtime_error("invalid multipart form data name error"); -#endif -} - -static void read_file(const std::string &path, std::string &out) { - std::ifstream fs(path, std::ios_base::binary); - if (!fs) throw std::runtime_error("File not found: " + path); - fs.seekg(0, std::ios_base::end); - auto size = fs.tellg(); - fs.seekg(0); - out.resize(static_cast(size)); - fs.read(&out[0], static_cast(size)); -} - -class UnixSocketTest : public ::testing::Test { -protected: - void TearDown() override { std::remove(pathname_.c_str()); } - - void client_GET(const std::string &addr) { - httplib::Client cli{addr}; - cli.set_address_family(AF_UNIX); - ASSERT_TRUE(cli.is_valid()); - - const auto &result = cli.Get(pattern_); - ASSERT_TRUE(result) << "error: " << result.error(); - - const auto &resp = result.value(); - EXPECT_EQ(resp.status, StatusCode::OK_200); - EXPECT_EQ(resp.body, content_); - } - - const std::string pathname_{"./httplib-server.sock"}; - const std::string pattern_{"/hi"}; - const std::string content_{"Hello World!"}; -}; - -TEST_F(UnixSocketTest, pathname) { - httplib::Server svr; - svr.Get(pattern_, [&](const httplib::Request &, httplib::Response &res) { - res.set_content(content_, "text/plain"); - }); - - std::thread t{[&] { - ASSERT_TRUE(svr.set_address_family(AF_UNIX).listen(pathname_, 80)); - }}; - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - ASSERT_TRUE(svr.is_running()); - - client_GET(pathname_); -} - -#if defined(__linux__) || \ - /* __APPLE__ */ (defined(SOL_LOCAL) && defined(SO_PEERPID)) -TEST_F(UnixSocketTest, PeerPid) { - httplib::Server svr; - std::string remote_port_val; - svr.Get(pattern_, [&](const httplib::Request &req, httplib::Response &res) { - res.set_content(content_, "text/plain"); - remote_port_val = req.get_header_value("REMOTE_PORT"); - }); - - std::thread t{[&] { - ASSERT_TRUE(svr.set_address_family(AF_UNIX).listen(pathname_, 80)); - }}; - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - ASSERT_TRUE(svr.is_running()); - - client_GET(pathname_); - EXPECT_EQ(std::to_string(getpid()), remote_port_val); -} -#endif - -#ifdef __linux__ -TEST_F(UnixSocketTest, abstract) { - constexpr char svr_path[]{"\x00httplib-server.sock"}; - const std::string abstract_addr{svr_path, sizeof(svr_path) - 1}; - - httplib::Server svr; - svr.Get(pattern_, [&](const httplib::Request &, httplib::Response &res) { - res.set_content(content_, "text/plain"); - }); - - std::thread t{[&] { - ASSERT_TRUE(svr.set_address_family(AF_UNIX).listen(abstract_addr, 80)); - }}; - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - ASSERT_TRUE(svr.is_running()); - - client_GET(abstract_addr); -} -#endif - -TEST_F(UnixSocketTest, HostHeaderAutoSet) { - httplib::Server svr; - std::string received_host_header; - - svr.Get(pattern_, [&](const httplib::Request &req, httplib::Response &res) { - // Capture the Host header sent by the client - auto host_iter = req.headers.find("Host"); - if (host_iter != req.headers.end()) { - received_host_header = host_iter->second; - } - res.set_content(content_, "text/plain"); - }); - - std::thread t{[&] { - ASSERT_TRUE(svr.set_address_family(AF_UNIX).listen(pathname_, 80)); - }}; - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - ASSERT_TRUE(svr.is_running()); - - // Test that Host header is automatically set to "localhost" for Unix socket - // connections - httplib::Client cli{pathname_}; - cli.set_address_family(AF_UNIX); - ASSERT_TRUE(cli.is_valid()); - - const auto &result = cli.Get(pattern_); - ASSERT_TRUE(result) << "error: " << result.error(); - - const auto &resp = result.value(); - EXPECT_EQ(resp.status, StatusCode::OK_200); - EXPECT_EQ(resp.body, content_); - - // Verify that Host header was automatically set to "localhost" - EXPECT_EQ(received_host_header, "localhost"); -} - -#ifndef _WIN32 -TEST(SocketStream, wait_writable_UNIX) { - int fds[2]; - ASSERT_EQ(0, socketpair(AF_UNIX, SOCK_STREAM, 0, fds)); - - const auto asSocketStream = [&](socket_t fd, - std::function func) { - return detail::process_client_socket( - fd, 0, 0, 0, 0, 0, std::chrono::steady_clock::time_point::min(), func); - }; - asSocketStream(fds[0], [&](Stream &s0) { - EXPECT_EQ(s0.socket(), fds[0]); - EXPECT_TRUE(s0.wait_writable()); - - EXPECT_EQ(0, close(fds[1])); - EXPECT_FALSE(s0.wait_writable()); - - return true; - }); - EXPECT_EQ(0, close(fds[0])); -} - -TEST(SocketStream, wait_writable_INET) { - sockaddr_in addr; - memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; - addr.sin_port = htons(PORT + 1); - addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); - - int disconnected_svr_sock = -1; - std::thread svr{[&] { - const int s = socket(AF_INET, SOCK_STREAM, 0); - ASSERT_LE(0, s); - ASSERT_EQ(0, ::bind(s, reinterpret_cast(&addr), sizeof(addr))); - ASSERT_EQ(0, listen(s, 1)); - ASSERT_LE(0, disconnected_svr_sock = accept(s, nullptr, nullptr)); - ASSERT_EQ(0, close(s)); - }}; - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - - std::thread cli{[&] { - const int s = socket(AF_INET, SOCK_STREAM, 0); - ASSERT_LE(0, s); - ASSERT_EQ(0, connect(s, reinterpret_cast(&addr), sizeof(addr))); - ASSERT_EQ(0, close(s)); - }}; - cli.join(); - svr.join(); - ASSERT_NE(disconnected_svr_sock, -1); - - const auto asSocketStream = [&](socket_t fd, - std::function func) { - return detail::process_client_socket( - fd, 0, 0, 0, 0, 0, std::chrono::steady_clock::time_point::min(), func); - }; - asSocketStream(disconnected_svr_sock, [&](Stream &ss) { - EXPECT_EQ(ss.socket(), disconnected_svr_sock); - EXPECT_FALSE(ss.wait_writable()); - - return true; - }); - - ASSERT_EQ(0, close(disconnected_svr_sock)); -} -#endif // #ifndef _WIN32 - -TEST(ClientTest, MoveConstructible) { - EXPECT_FALSE(std::is_copy_constructible::value); - EXPECT_TRUE(std::is_nothrow_move_constructible::value); -} - -TEST(ClientTest, MoveAssignable) { - EXPECT_FALSE(std::is_copy_assignable::value); - EXPECT_TRUE(std::is_nothrow_move_assignable::value); -} - -#ifdef _WIN32 -TEST(StartupTest, WSAStartup) { - WSADATA wsaData; - int ret = WSAStartup(0x0002, &wsaData); - ASSERT_EQ(0, ret); -} -#endif - -TEST(DecodePathTest, PercentCharacter) { - EXPECT_EQ( - decode_path_component( - R"(descrip=Gastos%20%C3%A1%C3%A9%C3%AD%C3%B3%C3%BA%C3%B1%C3%91%206)"), - u8"descrip=Gastos áéíóúñÑ 6"); -} - -TEST(DecodePathTest, PercentCharacterNUL) { - string expected; - expected.push_back('x'); - expected.push_back('\0'); - expected.push_back('x'); - - EXPECT_EQ(decode_path_component("x%00x"), expected); -} - -TEST(EncodeQueryParamTest, ParseUnescapedChararactersTest) { - string unescapedCharacters = "-_.!~*'()"; - - EXPECT_EQ(httplib::encode_uri_component(unescapedCharacters), "-_.!~*'()"); -} - -TEST(EncodeQueryParamTest, ParseReservedCharactersTest) { - string reservedCharacters = ";,/?:@&=+$"; - - EXPECT_EQ(httplib::encode_uri_component(reservedCharacters), - "%3B%2C%2F%3F%3A%40%26%3D%2B%24"); -} - -TEST(EncodeQueryParamTest, TestUTF8Characters) { - string chineseCharacters = u8"中国語"; - string russianCharacters = u8"дом"; - string brazilianCharacters = u8"óculos"; - - EXPECT_EQ(httplib::encode_uri_component(chineseCharacters), - "%E4%B8%AD%E5%9B%BD%E8%AA%9E"); - - EXPECT_EQ(httplib::encode_uri_component(russianCharacters), - "%D0%B4%D0%BE%D0%BC"); - - EXPECT_EQ(httplib::encode_uri_component(brazilianCharacters), "%C3%B3culos"); -} - -TEST(EncodeUriComponentTest, ParseUnescapedChararactersTest) { - string unescapedCharacters = "-_.!~*'()"; - - EXPECT_EQ(httplib::encode_uri_component(unescapedCharacters), "-_.!~*'()"); -} - -TEST(EncodeUriComponentTest, ParseReservedCharactersTest) { - string reservedCharacters = ";,/?:@&=+$"; - - EXPECT_EQ(httplib::encode_uri_component(reservedCharacters), - "%3B%2C%2F%3F%3A%40%26%3D%2B%24"); -} - -TEST(EncodeUriComponentTest, TestUTF8Characters) { - string chineseCharacters = u8"中国語"; - string russianCharacters = u8"дом"; - string brazilianCharacters = u8"óculos"; - - EXPECT_EQ(httplib::encode_uri_component(chineseCharacters), - "%E4%B8%AD%E5%9B%BD%E8%AA%9E"); - - EXPECT_EQ(httplib::encode_uri_component(russianCharacters), - "%D0%B4%D0%BE%D0%BC"); - - EXPECT_EQ(httplib::encode_uri_component(brazilianCharacters), "%C3%B3culos"); -} - -TEST(EncodeUriComponentTest, TestPathComponentEncoding) { - // Issue #2082 use case: encoding path component with ampersand - string pathWithAmpersand = "Piri Tommy Villiers - on & on"; - - EXPECT_EQ(httplib::encode_uri_component(pathWithAmpersand), - "Piri%20Tommy%20Villiers%20-%20on%20%26%20on"); -} - -TEST(EncodeUriTest, ParseUnescapedChararactersTest) { - string unescapedCharacters = "-_.!~*'()"; - - EXPECT_EQ(httplib::encode_uri(unescapedCharacters), "-_.!~*'()"); -} - -TEST(EncodeUriTest, ParseReservedCharactersTest) { - string reservedCharacters = ";,/?:@&=+$#"; - - EXPECT_EQ(httplib::encode_uri(reservedCharacters), ";,/?:@&=+$#"); -} - -TEST(EncodeUriTest, TestUTF8Characters) { - string chineseCharacters = u8"中国語"; - string russianCharacters = u8"дом"; - string brazilianCharacters = u8"óculos"; - - EXPECT_EQ(httplib::encode_uri(chineseCharacters), - "%E4%B8%AD%E5%9B%BD%E8%AA%9E"); - - EXPECT_EQ(httplib::encode_uri(russianCharacters), "%D0%B4%D0%BE%D0%BC"); - - EXPECT_EQ(httplib::encode_uri(brazilianCharacters), "%C3%B3culos"); -} - -TEST(EncodeUriTest, TestCompleteUri) { - string uri = - "https://example.com/path/to/resource?query=value¶m=test#fragment"; - - EXPECT_EQ( - httplib::encode_uri(uri), - "https://example.com/path/to/resource?query=value¶m=test#fragment"); -} - -TEST(EncodeUriTest, TestUriWithSpacesAndSpecialChars) { - string uri = - "https://example.com/path with spaces/file name.html?q=hello world"; - - EXPECT_EQ(httplib::encode_uri(uri), - "https://example.com/path%20with%20spaces/" - "file%20name.html?q=hello%20world"); -} - -TEST(DecodeUriComponentTest, ParseEncodedChararactersTest) { - string encodedString = "%3B%2C%2F%3F%3A%40%26%3D%2B%24"; - - EXPECT_EQ(httplib::decode_uri_component(encodedString), ";,/?:@&=+$"); -} - -TEST(DecodeUriComponentTest, ParseUnescapedChararactersTest) { - string unescapedCharacters = "-_.!~*'()"; - - EXPECT_EQ(httplib::decode_uri_component(unescapedCharacters), "-_.!~*'()"); -} - -TEST(DecodeUriComponentTest, TestUTF8Characters) { - string encodedChinese = "%E4%B8%AD%E5%9B%BD%E8%AA%9E"; - string encodedRussian = "%D0%B4%D0%BE%D0%BC"; - string encodedBrazilian = "%C3%B3culos"; - - EXPECT_EQ(httplib::decode_uri_component(encodedChinese), u8"中国語"); - EXPECT_EQ(httplib::decode_uri_component(encodedRussian), u8"дом"); - EXPECT_EQ(httplib::decode_uri_component(encodedBrazilian), u8"óculos"); -} - -TEST(DecodeUriComponentTest, TestPathComponentDecoding) { - string encodedPath = "Piri%20Tommy%20Villiers%20-%20on%20%26%20on"; - - EXPECT_EQ(httplib::decode_uri_component(encodedPath), - "Piri Tommy Villiers - on & on"); -} - -TEST(DecodeUriTest, ParseEncodedChararactersTest) { - string encodedString = "%20%22%3C%3E%5C%5E%60%7B%7D%7C"; - - EXPECT_EQ(httplib::decode_uri(encodedString), " \"<>\\^`{}|"); -} - -TEST(DecodeUriTest, ParseUnescapedChararactersTest) { - string unescapedCharacters = "-_.!~*'();,/?:@&=+$#"; - - EXPECT_EQ(httplib::decode_uri(unescapedCharacters), "-_.!~*'();,/?:@&=+$#"); -} - -TEST(DecodeUriTest, TestUTF8Characters) { - string encodedChinese = "%E4%B8%AD%E5%9B%BD%E8%AA%9E"; - string encodedRussian = "%D0%B4%D0%BE%D0%BC"; - string encodedBrazilian = "%C3%B3culos"; - - EXPECT_EQ(httplib::decode_uri(encodedChinese), u8"中国語"); - EXPECT_EQ(httplib::decode_uri(encodedRussian), u8"дом"); - EXPECT_EQ(httplib::decode_uri(encodedBrazilian), u8"óculos"); -} - -TEST(DecodeUriTest, TestCompleteUri) { - string encodedUri = "https://example.com/path%20with%20spaces/" - "file%20name.html?q=hello%20world"; - - EXPECT_EQ( - httplib::decode_uri(encodedUri), - "https://example.com/path with spaces/file name.html?q=hello world"); -} - -TEST(DecodeUriTest, TestRoundTripWithEncodeUri) { - string original = - "https://example.com/path with spaces/file name.html?q=hello world"; - string encoded = httplib::encode_uri(original); - string decoded = httplib::decode_uri(encoded); - - EXPECT_EQ(decoded, original); -} - -TEST(DecodeUriComponentTest, TestRoundTripWithEncodeUriComponent) { - string original = "Piri Tommy Villiers - on & on"; - string encoded = httplib::encode_uri_component(original); - string decoded = httplib::decode_uri_component(encoded); - - EXPECT_EQ(decoded, original); -} - -TEST(TrimTests, TrimStringTests) { - EXPECT_EQ("abc", detail::trim_copy("abc")); - EXPECT_EQ("abc", detail::trim_copy(" abc ")); - EXPECT_TRUE(detail::trim_copy("").empty()); -} - -TEST(ParseAcceptHeaderTest, BasicAcceptParsing) { - // Simple case without quality values - std::vector result1; - EXPECT_TRUE(detail::parse_accept_header( - "text/html,application/json,text/plain", result1)); - EXPECT_EQ(result1.size(), 3U); - EXPECT_EQ(result1[0], "text/html"); - EXPECT_EQ(result1[1], "application/json"); - EXPECT_EQ(result1[2], "text/plain"); - - // With quality values - std::vector result2; - EXPECT_TRUE(detail::parse_accept_header( - "text/html;q=0.9,application/json;q=1.0,text/plain;q=0.8", result2)); - EXPECT_EQ(result2.size(), 3U); - EXPECT_EQ(result2[0], "application/json"); // highest q value - EXPECT_EQ(result2[1], "text/html"); - EXPECT_EQ(result2[2], "text/plain"); // lowest q value -} - -TEST(ParseAcceptHeaderTest, MixedQualityValues) { - // Mixed with and without quality values - std::vector result; - EXPECT_TRUE(detail::parse_accept_header( - "text/html,application/json;q=0.5,text/plain;q=0.8", result)); - EXPECT_EQ(result.size(), 3U); - EXPECT_EQ(result[0], "text/html"); // no q value means 1.0 - EXPECT_EQ(result[1], "text/plain"); // q=0.8 - EXPECT_EQ(result[2], "application/json"); // q=0.5 -} - -TEST(ParseAcceptHeaderTest, EdgeCases) { - // Empty header - std::vector empty_result; - EXPECT_TRUE(detail::parse_accept_header("", empty_result)); - EXPECT_TRUE(empty_result.empty()); - - // Single type - std::vector single_result; - EXPECT_TRUE(detail::parse_accept_header("application/json", single_result)); - EXPECT_EQ(single_result.size(), 1U); - EXPECT_EQ(single_result[0], "application/json"); - - // Wildcard types - std::vector wildcard_result; - EXPECT_TRUE(detail::parse_accept_header( - "text/*;q=0.5,*/*;q=0.1,application/json", wildcard_result)); - EXPECT_EQ(wildcard_result.size(), 3U); - EXPECT_EQ(wildcard_result[0], "application/json"); - EXPECT_EQ(wildcard_result[1], "text/*"); - EXPECT_EQ(wildcard_result[2], "*/*"); -} - -TEST(ParseAcceptHeaderTest, RealWorldExamples) { - // Common browser Accept header - std::vector browser_result; - EXPECT_TRUE( - detail::parse_accept_header("text/html,application/xhtml+xml,application/" - "xml;q=0.9,image/webp,image/apng,*/*;q=0.8", - browser_result)); - EXPECT_EQ(browser_result.size(), 6U); - EXPECT_EQ(browser_result[0], "text/html"); // q=1.0 (default) - EXPECT_EQ(browser_result[1], "application/xhtml+xml"); // q=1.0 (default) - EXPECT_EQ(browser_result[2], "image/webp"); // q=1.0 (default) - EXPECT_EQ(browser_result[3], "image/apng"); // q=1.0 (default) - EXPECT_EQ(browser_result[4], "application/xml"); // q=0.9 - EXPECT_EQ(browser_result[5], "*/*"); // q=0.8 - - // API client header - std::vector api_result; - EXPECT_TRUE(detail::parse_accept_header( - "application/json;q=0.9,application/xml;q=0.8,text/plain;q=0.1", - api_result)); - EXPECT_EQ(api_result.size(), 3U); - EXPECT_EQ(api_result[0], "application/json"); - EXPECT_EQ(api_result[1], "application/xml"); - EXPECT_EQ(api_result[2], "text/plain"); -} - -TEST(ParseAcceptHeaderTest, SpecialCases) { - // Quality value with 3 decimal places - std::vector decimal_result; - EXPECT_TRUE(detail::parse_accept_header( - "text/html;q=0.123,application/json;q=0.456", decimal_result)); - EXPECT_EQ(decimal_result.size(), 2U); - EXPECT_EQ(decimal_result[0], "application/json"); // Higher q value - EXPECT_EQ(decimal_result[1], "text/html"); - - // Zero quality (should still be included but with lowest priority) - std::vector zero_q_result; - EXPECT_TRUE(detail::parse_accept_header("text/html;q=0,application/json;q=1", - zero_q_result)); - EXPECT_EQ(zero_q_result.size(), 2U); - EXPECT_EQ(zero_q_result[0], "application/json"); // q=1 - EXPECT_EQ(zero_q_result[1], "text/html"); // q=0 - - // No spaces around commas - std::vector no_space_result; - EXPECT_TRUE(detail::parse_accept_header( - "text/html;q=0.9,application/json;q=0.8,text/plain;q=0.7", - no_space_result)); - EXPECT_EQ(no_space_result.size(), 3U); - EXPECT_EQ(no_space_result[0], "text/html"); - EXPECT_EQ(no_space_result[1], "application/json"); - EXPECT_EQ(no_space_result[2], "text/plain"); -} - -TEST(ParseAcceptHeaderTest, InvalidCases) { - std::vector result; - - // Invalid quality value (> 1.0) - EXPECT_FALSE( - detail::parse_accept_header("text/html;q=1.5,application/json", result)); - - // Invalid quality value (< 0.0) - EXPECT_FALSE( - detail::parse_accept_header("text/html;q=-0.1,application/json", result)); - - // Invalid quality value (not a number) - EXPECT_FALSE(detail::parse_accept_header( - "text/html;q=invalid,application/json", result)); - - // Empty quality value - EXPECT_FALSE( - detail::parse_accept_header("text/html;q=,application/json", result)); - - // Invalid media type format (no slash and not wildcard) - EXPECT_FALSE( - detail::parse_accept_header("invalidtype,application/json", result)); - - // Empty media type - result.clear(); - EXPECT_FALSE(detail::parse_accept_header(",application/json", result)); - - // Only commas - result.clear(); - EXPECT_FALSE(detail::parse_accept_header(",,,", result)); - - // Valid cases should still work - EXPECT_TRUE(detail::parse_accept_header("*/*", result)); - EXPECT_EQ(result.size(), 1U); - EXPECT_EQ(result[0], "*/*"); - - EXPECT_TRUE(detail::parse_accept_header("*", result)); - EXPECT_EQ(result.size(), 1U); - EXPECT_EQ(result[0], "*"); - - EXPECT_TRUE(detail::parse_accept_header("text/*", result)); - EXPECT_EQ(result.size(), 1U); - EXPECT_EQ(result[0], "text/*"); -} - -TEST(ParseAcceptHeaderTest, ContentTypesPopulatedAndInvalidHeaderHandling) { - Server svr; - - svr.Get("/accept_ok", [&](const Request &req, Response &res) { - EXPECT_EQ(req.accept_content_types.size(), 3U); - EXPECT_EQ(req.accept_content_types[0], "application/json"); - EXPECT_EQ(req.accept_content_types[1], "text/html"); - EXPECT_EQ(req.accept_content_types[2], "*/*"); - res.set_content("ok", "text/plain"); - }); - - svr.Get("/accept_bad_request", [&](const Request & /*req*/, Response &res) { - EXPECT_TRUE(false); - res.set_content("bad request", "text/plain"); - }); - - auto listen_thread = std::thread([&svr]() { svr.listen("localhost", PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli("localhost", PORT); - - { - auto res = - cli.Get("/accept_ok", - {{"Accept", "application/json, text/html;q=0.8, */*;q=0.1"}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - } - - { - auto res = cli.Get("/accept_bad_request", - {{"Accept", "text/html;q=abc,application/json"}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::BadRequest_400, res->status); - } -} - -TEST(DivideTest, DivideStringTests) { - auto divide = [](const std::string &str, char d) { - std::string lhs; - std::string rhs; - - detail::divide(str, d, - [&](const char *lhs_data, std::size_t lhs_size, - const char *rhs_data, std::size_t rhs_size) { - lhs.assign(lhs_data, lhs_size); - rhs.assign(rhs_data, rhs_size); - }); - - return std::make_pair(std::move(lhs), std::move(rhs)); - }; - - { - const auto res = divide("", '='); - EXPECT_EQ(res.first, ""); - EXPECT_EQ(res.second, ""); - } - - { - const auto res = divide("=", '='); - EXPECT_EQ(res.first, ""); - EXPECT_EQ(res.second, ""); - } - - { - const auto res = divide(" ", '='); - EXPECT_EQ(res.first, " "); - EXPECT_EQ(res.second, ""); - } - - { - const auto res = divide("a", '='); - EXPECT_EQ(res.first, "a"); - EXPECT_EQ(res.second, ""); - } - - { - const auto res = divide("a=", '='); - EXPECT_EQ(res.first, "a"); - EXPECT_EQ(res.second, ""); - } - - { - const auto res = divide("=b", '='); - EXPECT_EQ(res.first, ""); - EXPECT_EQ(res.second, "b"); - } - - { - const auto res = divide("a=b", '='); - EXPECT_EQ(res.first, "a"); - EXPECT_EQ(res.second, "b"); - } - - { - const auto res = divide("a=b=", '='); - EXPECT_EQ(res.first, "a"); - EXPECT_EQ(res.second, "b="); - } - - { - const auto res = divide("a=b=c", '='); - EXPECT_EQ(res.first, "a"); - EXPECT_EQ(res.second, "b=c"); - } -} - -TEST(SplitTest, ParseQueryString) { - string s = "key1=val1&key2=val2&key3=val3"; - Params dic; - - detail::split(s.c_str(), s.c_str() + s.size(), '&', - [&](const char *b, const char *e) { - string key, val; - detail::split(b, e, '=', [&](const char *b2, const char *e2) { - if (key.empty()) { - key.assign(b2, e2); - } else { - val.assign(b2, e2); - } - }); - dic.emplace(key, val); - }); - - EXPECT_EQ("val1", dic.find("key1")->second); - EXPECT_EQ("val2", dic.find("key2")->second); - EXPECT_EQ("val3", dic.find("key3")->second); -} - -TEST(SplitTest, ParseInvalidQueryTests) { - - { - string s = " "; - Params dict; - detail::parse_query_text(s, dict); - EXPECT_TRUE(dict.empty()); - } - - { - string s = " = ="; - Params dict; - detail::parse_query_text(s, dict); - EXPECT_TRUE(dict.empty()); - } -} - -TEST(ParseQueryTest, ParseQueryString) { - { - std::string s = "key1=val1&key2=val2&key3=val3"; - Params dic; - - detail::parse_query_text(s, dic); - - EXPECT_EQ("val1", dic.find("key1")->second); - EXPECT_EQ("val2", dic.find("key2")->second); - EXPECT_EQ("val3", dic.find("key3")->second); - } - - { - std::string s = "key1&key2=val1&key3=val1=val2&key4=val1=val2=val3"; - Params dic; - - detail::parse_query_text(s, dic); - - EXPECT_EQ("", dic.find("key1")->second); - EXPECT_EQ("val1", dic.find("key2")->second); - EXPECT_EQ("val1=val2", dic.find("key3")->second); - EXPECT_EQ("val1=val2=val3", dic.find("key4")->second); - } -} - -TEST(ParamsToQueryTest, ConvertParamsToQuery) { - Params dic; - - EXPECT_EQ(detail::params_to_query_str(dic), ""); - - dic.emplace("key1", "val1"); - - EXPECT_EQ(detail::params_to_query_str(dic), "key1=val1"); - - dic.emplace("key2", "val2"); - dic.emplace("key3", "val3"); - - EXPECT_EQ(detail::params_to_query_str(dic), "key1=val1&key2=val2&key3=val3"); -} - -TEST(ParseMultipartBoundaryTest, DefaultValue) { - string content_type = "multipart/form-data; boundary=something"; - string boundary; - auto ret = detail::parse_multipart_boundary(content_type, boundary); - EXPECT_TRUE(ret); - EXPECT_EQ(boundary, "something"); -} - -TEST(ParseMultipartBoundaryTest, ValueWithQuote) { - string content_type = "multipart/form-data; boundary=\"gc0pJq0M:08jU534c0p\""; - string boundary; - auto ret = detail::parse_multipart_boundary(content_type, boundary); - EXPECT_TRUE(ret); - EXPECT_EQ(boundary, "gc0pJq0M:08jU534c0p"); -} - -TEST(ParseMultipartBoundaryTest, ValueWithCharset) { - string content_type = - "multipart/mixed; boundary=THIS_STRING_SEPARATES;charset=UTF-8"; - string boundary; - auto ret = detail::parse_multipart_boundary(content_type, boundary); - EXPECT_TRUE(ret); - EXPECT_EQ(boundary, "THIS_STRING_SEPARATES"); -} - -TEST(ParseMultipartBoundaryTest, ValueWithQuotesAndCharset) { - string content_type = - "multipart/mixed; boundary=\"cpp-httplib-multipart-data\"; charset=UTF-8"; - string boundary; - auto ret = detail::parse_multipart_boundary(content_type, boundary); - EXPECT_TRUE(ret); - EXPECT_EQ(boundary, "cpp-httplib-multipart-data"); -} - -TEST(GetHeaderValueTest, DefaultValue) { - Headers headers = {{"Dummy", "Dummy"}}; - auto val = detail::get_header_value(headers, "Content-Type", "text/plain", 0); - EXPECT_STREQ("text/plain", val); -} - -TEST(GetHeaderValueTest, DefaultValueInt) { - Headers headers = {{"Dummy", "Dummy"}}; - auto val = detail::get_header_value_u64(headers, "Content-Length", 100, 0); - EXPECT_EQ(100ull, val); -} - -TEST(GetHeaderValueTest, RegularValue) { - Headers headers = {{"Content-Type", "text/html"}, {"Dummy", "Dummy"}}; - auto val = detail::get_header_value(headers, "Content-Type", "text/plain", 0); - EXPECT_STREQ("text/html", val); -} - -TEST(GetHeaderValueTest, RegularValueWithDifferentCase) { - Headers headers = {{"Content-Type", "text/html"}, {"Dummy", "Dummy"}}; - auto val = detail::get_header_value(headers, "content-type", "text/plain", 0); - EXPECT_STREQ("text/html", val); -} - -TEST(GetHeaderValueTest, SetContent) { - Response res; - - res.set_content("html", "text/html"); - EXPECT_EQ("text/html", res.get_header_value("Content-Type")); - - res.set_content("text", "text/plain"); - EXPECT_EQ(1U, res.get_header_value_count("Content-Type")); - EXPECT_EQ("text/plain", res.get_header_value("Content-Type")); -} - -TEST(GetHeaderValueTest, RegularValueInt) { - Headers headers = {{"Content-Length", "100"}, {"Dummy", "Dummy"}}; - auto val = detail::get_header_value_u64(headers, "Content-Length", 0, 0); - EXPECT_EQ(100ull, val); -} - -TEST(GetHeaderValueTest, RegularInvalidValueInt) { - Headers headers = {{"Content-Length", "x"}}; - auto is_invalid_value = false; - auto val = detail::get_header_value_u64(headers, "Content-Length", 0, 0, - is_invalid_value); - EXPECT_EQ(0ull, val); - EXPECT_TRUE(is_invalid_value); -} - -TEST(GetHeaderValueTest, Range) { - { - Headers headers = {make_range_header({{1, -1}})}; - auto val = detail::get_header_value(headers, "Range", 0, 0); - EXPECT_STREQ("bytes=1-", val); - } - - { - Headers headers = {make_range_header({{-1, 1}})}; - auto val = detail::get_header_value(headers, "Range", 0, 0); - EXPECT_STREQ("bytes=-1", val); - } - - { - Headers headers = {make_range_header({{1, 10}})}; - auto val = detail::get_header_value(headers, "Range", 0, 0); - EXPECT_STREQ("bytes=1-10", val); - } - - { - Headers headers = {make_range_header({{1, 10}, {100, -1}})}; - auto val = detail::get_header_value(headers, "Range", 0, 0); - EXPECT_STREQ("bytes=1-10, 100-", val); - } - - { - Headers headers = {make_range_header({{1, 10}, {100, 200}})}; - auto val = detail::get_header_value(headers, "Range", 0, 0); - EXPECT_STREQ("bytes=1-10, 100-200", val); - } - - { - Headers headers = {make_range_header({{0, 0}, {-1, 1}})}; - auto val = detail::get_header_value(headers, "Range", 0, 0); - EXPECT_STREQ("bytes=0-0, -1", val); - } -} - -TEST(ParseHeaderValueTest, Range) { - { - Ranges ranges; - auto ret = detail::parse_range_header("bytes=1-", ranges); - EXPECT_TRUE(ret); - EXPECT_EQ(1u, ranges.size()); - EXPECT_EQ(1u, ranges[0].first); - EXPECT_EQ(-1, ranges[0].second); - } - - { - Ranges ranges; - auto ret = detail::parse_range_header("bytes=-1", ranges); - EXPECT_TRUE(ret); - EXPECT_EQ(1u, ranges.size()); - EXPECT_EQ(-1, ranges[0].first); - EXPECT_EQ(1u, ranges[0].second); - } - - { - Ranges ranges; - auto ret = detail::parse_range_header("bytes=1-10", ranges); - EXPECT_TRUE(ret); - EXPECT_EQ(1u, ranges.size()); - EXPECT_EQ(1u, ranges[0].first); - EXPECT_EQ(10u, ranges[0].second); - } - - { - Ranges ranges; - auto ret = detail::parse_range_header("bytes=10-1", ranges); - EXPECT_FALSE(ret); - } - - { - Ranges ranges; - auto ret = detail::parse_range_header("bytes=1-10, 100-", ranges); - EXPECT_TRUE(ret); - EXPECT_EQ(2u, ranges.size()); - EXPECT_EQ(1u, ranges[0].first); - EXPECT_EQ(10u, ranges[0].second); - EXPECT_EQ(100u, ranges[1].first); - EXPECT_EQ(-1, ranges[1].second); - } - - { - Ranges ranges; - auto ret = - detail::parse_range_header("bytes=1-10, 100-200, 300-400", ranges); - EXPECT_TRUE(ret); - EXPECT_EQ(3u, ranges.size()); - EXPECT_EQ(1u, ranges[0].first); - EXPECT_EQ(10u, ranges[0].second); - EXPECT_EQ(100u, ranges[1].first); - EXPECT_EQ(200u, ranges[1].second); - EXPECT_EQ(300u, ranges[2].first); - EXPECT_EQ(400u, ranges[2].second); - } - - { - Ranges ranges; - - EXPECT_FALSE(detail::parse_range_header("bytes", ranges)); - EXPECT_FALSE(detail::parse_range_header("bytes=", ranges)); - EXPECT_FALSE(detail::parse_range_header("bytes=0", ranges)); - EXPECT_FALSE(detail::parse_range_header("bytes=-", ranges)); - EXPECT_FALSE(detail::parse_range_header("bytes= ", ranges)); - EXPECT_FALSE(detail::parse_range_header("bytes=,", ranges)); - EXPECT_FALSE(detail::parse_range_header("bytes=,,", ranges)); - EXPECT_FALSE(detail::parse_range_header("bytes=,,,", ranges)); - EXPECT_FALSE(detail::parse_range_header("bytes=a-b", ranges)); - EXPECT_FALSE(detail::parse_range_header("bytes=1-0", ranges)); - EXPECT_FALSE(detail::parse_range_header("bytes=0--1", ranges)); - EXPECT_FALSE(detail::parse_range_header("bytes=0- 1", ranges)); - EXPECT_FALSE(detail::parse_range_header("bytes=0 -1", ranges)); - EXPECT_TRUE(ranges.empty()); - } -} - -TEST(ParseAcceptEncoding1, AcceptEncoding) { - Request req; - req.set_header("Accept-Encoding", "gzip"); - - Response res; - res.set_header("Content-Type", "text/plain"); - - auto ret = detail::encoding_type(req, res); - -#ifdef CPPHTTPLIB_ZLIB_SUPPORT - EXPECT_TRUE(ret == detail::EncodingType::Gzip); -#else - EXPECT_TRUE(ret == detail::EncodingType::None); -#endif -} - -TEST(ParseAcceptEncoding2, AcceptEncoding) { - Request req; - req.set_header("Accept-Encoding", "gzip, deflate, br, zstd"); - - Response res; - res.set_header("Content-Type", "text/plain"); - - auto ret = detail::encoding_type(req, res); - -#ifdef CPPHTTPLIB_BROTLI_SUPPORT - EXPECT_TRUE(ret == detail::EncodingType::Brotli); -#elif CPPHTTPLIB_ZLIB_SUPPORT - EXPECT_TRUE(ret == detail::EncodingType::Gzip); -#elif CPPHTTPLIB_ZSTD_SUPPORT - EXPECT_TRUE(ret == detail::EncodingType::Zstd); -#else - EXPECT_TRUE(ret == detail::EncodingType::None); -#endif -} - -TEST(ParseAcceptEncoding3, AcceptEncoding) { - Request req; - req.set_header("Accept-Encoding", - "br;q=1.0, gzip;q=0.8, zstd;q=0.8, *;q=0.1"); - - Response res; - res.set_header("Content-Type", "text/plain"); - - auto ret = detail::encoding_type(req, res); - -#ifdef CPPHTTPLIB_BROTLI_SUPPORT - EXPECT_TRUE(ret == detail::EncodingType::Brotli); -#elif CPPHTTPLIB_ZLIB_SUPPORT - EXPECT_TRUE(ret == detail::EncodingType::Gzip); -#elif CPPHTTPLIB_ZSTD_SUPPORT - EXPECT_TRUE(ret == detail::EncodingType::Zstd); -#else - EXPECT_TRUE(ret == detail::EncodingType::None); -#endif -} - -TEST(BufferStreamTest, read) { - detail::BufferStream strm1; - Stream &strm = strm1; - - EXPECT_EQ(5, strm.write("hello")); - - char buf[512]; - EXPECT_EQ(2, strm.read(buf, 2)); - EXPECT_EQ('h', buf[0]); - EXPECT_EQ('e', buf[1]); - - EXPECT_EQ(2, strm.read(buf, 2)); - EXPECT_EQ('l', buf[0]); - EXPECT_EQ('l', buf[1]); - - EXPECT_EQ(1, strm.read(buf, 1)); - EXPECT_EQ('o', buf[0]); - - EXPECT_EQ(0, strm.read(buf, 1)); -} - -TEST(HostnameToIPConversionTest, HTTPWatch_Online) { - auto host = "www.httpwatch.com"; - - auto ip = hosted_at(host); - EXPECT_EQ("23.96.13.243", ip); - - std::vector addrs; - hosted_at(host, addrs); - EXPECT_EQ(1u, addrs.size()); -} - -#if 0 // It depends on each test environment... -TEST(HostnameToIPConversionTest, YouTube_Online) { - auto host = "www.youtube.com"; - - std::vector addrs; - hosted_at(host, addrs); - - EXPECT_EQ(20u, addrs.size()); - - auto it = std::find(addrs.begin(), addrs.end(), "2607:f8b0:4006:809::200e"); - EXPECT_TRUE(it != addrs.end()); -} -#endif - -class ChunkedEncodingTest : public ::testing::Test { -protected: - ChunkedEncodingTest() - : cli_(HOST, PORT) -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - , - svr_(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE) -#endif - { - cli_.set_connection_timeout(2); -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - cli_.enable_server_certificate_verification(false); -#endif - } - - virtual void SetUp() { - read_file("./image.jpg", image_data_); - - svr_.Get("/hi", [&](const Request & /*req*/, Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - - svr_.Get( - "/chunked", [this](const httplib::Request &, httplib::Response &res) { - res.set_chunked_content_provider( - "image/jpeg", [this](size_t offset, httplib::DataSink &sink) { - size_t remaining = image_data_.size() - offset; - if (remaining == 0) { - sink.done(); - } else { - constexpr size_t CHUNK_SIZE = 1024; - size_t send_size = std::min(CHUNK_SIZE, remaining); - sink.write(&image_data_[offset], send_size); - - std::this_thread::sleep_for(std::chrono::milliseconds(10)); - } - return true; - }); - }); - - t_ = thread([&]() { ASSERT_TRUE(svr_.listen(HOST, PORT)); }); - - svr_.wait_until_ready(); - } - - virtual void TearDown() { - svr_.stop(); - if (!request_threads_.empty()) { - std::this_thread::sleep_for(std::chrono::seconds(1)); - for (auto &t : request_threads_) { - t.join(); - } - } - t_.join(); - } - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLClient cli_; - SSLServer svr_; -#else - Client cli_; - Server svr_; -#endif - thread t_; - std::vector request_threads_; - std::string image_data_; -}; - -TEST_F(ChunkedEncodingTest, NormalGet) { - auto res = cli_.Get("/chunked"); - ASSERT_TRUE(res); - - std::string out; - read_file("./image.jpg", out); - - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(out, res->body); -} - -TEST_F(ChunkedEncodingTest, WithContentReceiver) { - std::string body; - auto res = cli_.Get("/chunked", [&](const char *data, size_t data_length) { - body.append(data, data_length); - return true; - }); - ASSERT_TRUE(res); - - std::string out; - read_file("./image.jpg", out); - - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(out, body); -} - -TEST_F(ChunkedEncodingTest, WithResponseHandlerAndContentReceiver) { - std::string body; - auto res = cli_.Get( - "/chunked", - [&](const Response &response) { - EXPECT_EQ(StatusCode::OK_200, response.status); - return true; - }, - [&](const char *data, size_t data_length) { - body.append(data, data_length); - return true; - }); - ASSERT_TRUE(res); - - std::string out; - read_file("./image.jpg", out); - - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(out, body); -} - -TEST(RangeTest, FromHTTPBin_Online) { -#ifdef CPPHTTPLIB_DEFAULT_HTTPBIN - auto host = "httpbin.org"; - auto path = std::string{"/range/32"}; -#else - auto host = "nghttp2.org"; - auto path = std::string{"/httpbin/range/32"}; -#endif - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - auto port = 443; - SSLClient cli(host, port); -#else - auto port = 80; - Client cli(host, port); -#endif - cli.set_connection_timeout(5); - - { - auto res = cli.Get(path); - ASSERT_TRUE(res); - EXPECT_EQ("abcdefghijklmnopqrstuvwxyzabcdef", res->body); - EXPECT_EQ(StatusCode::OK_200, res->status); - } - - { - Headers headers = {make_range_header({{1, -1}})}; - auto res = cli.Get(path, headers); - ASSERT_TRUE(res); - EXPECT_EQ("bcdefghijklmnopqrstuvwxyzabcdef", res->body); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - } - - { - Headers headers = {make_range_header({{1, 10}})}; - auto res = cli.Get(path, headers); - ASSERT_TRUE(res); - EXPECT_EQ("bcdefghijk", res->body); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - } - - { - Headers headers = {make_range_header({{0, 31}})}; - auto res = cli.Get(path, headers); - ASSERT_TRUE(res); - EXPECT_EQ("abcdefghijklmnopqrstuvwxyzabcdef", res->body); - EXPECT_EQ(StatusCode::OK_200, res->status); - } - - { - Headers headers = {make_range_header({{0, -1}})}; - auto res = cli.Get(path, headers); - ASSERT_TRUE(res); - EXPECT_EQ("abcdefghijklmnopqrstuvwxyzabcdef", res->body); - EXPECT_EQ(StatusCode::OK_200, res->status); - } - - { - Headers headers = {make_range_header({{0, 32}})}; - auto res = cli.Get(path, headers); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::RangeNotSatisfiable_416, res->status); - } -} - -TEST(GetAddrInfoDanglingRefTest, LongTimeout) { - auto host = "unresolvableaddress.local"; - auto path = std::string{"/"}; - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - auto port = 443; - SSLClient cli(host, port); -#else - auto port = 80; - Client cli(host, port); -#endif - cli.set_connection_timeout(1); - - { - auto res = cli.Get(path); - ASSERT_FALSE(res); - } - - std::this_thread::sleep_for(std::chrono::seconds(8)); -} - -TEST(ConnectionErrorTest, InvalidHost) { - auto host = "-abcde.com"; - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - auto port = 443; - SSLClient cli(host, port); -#else - auto port = 80; - Client cli(host, port); -#endif - cli.set_connection_timeout(std::chrono::seconds(2)); - - auto res = cli.Get("/"); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Connection, res.error()); -} - -TEST(ConnectionErrorTest, InvalidHost2) { - auto host = "httpbin.org/"; - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLClient cli(host); -#else - Client cli(host); -#endif - cli.set_connection_timeout(std::chrono::seconds(2)); - - auto res = cli.Get("/"); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Connection, res.error()); -} - -TEST(ConnectionErrorTest, InvalidHostCheckResultErrorToString) { - auto host = "httpbin.org/"; - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLClient cli(host); -#else - Client cli(host); -#endif - cli.set_connection_timeout(std::chrono::seconds(2)); - - auto res = cli.Get("/"); - ASSERT_TRUE(!res); - stringstream s; - s << "error code: " << res.error(); - EXPECT_EQ("error code: Could not establish connection (2)", s.str()); -} - -TEST(ConnectionErrorTest, InvalidPort) { - auto host = "localhost"; - auto port = 44380; - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLClient cli(host, port); -#else - Client cli(host, port); -#endif - cli.set_connection_timeout(std::chrono::seconds(2)); - - auto res = cli.Get("/"); - ASSERT_TRUE(!res); - EXPECT_TRUE(Error::Connection == res.error() || - Error::ConnectionTimeout == res.error()); -} - -TEST(ConnectionErrorTest, Timeout_Online) { - auto host = "google.com"; - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - auto port = 44380; - SSLClient cli(host, port); -#else - auto port = 8080; - Client cli(host, port); -#endif - cli.set_connection_timeout(std::chrono::seconds(2)); - - // only probe one address type so that the error reason - // correlates to the timed-out IPv4, not the unsupported - // IPv6 connection attempt - cli.set_address_family(AF_INET); - - auto res = cli.Get("/"); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::ConnectionTimeout, res.error()); -} - -TEST(CancelTest, NoCancel_Online) { -#ifdef CPPHTTPLIB_DEFAULT_HTTPBIN - auto host = "httpbin.org"; - auto path = std::string{"/range/32"}; -#else - auto host = "nghttp2.org"; - auto path = std::string{"/httpbin/range/32"}; -#endif - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - auto port = 443; - SSLClient cli(host, port); -#else - auto port = 80; - Client cli(host, port); -#endif - cli.set_connection_timeout(std::chrono::seconds(5)); - - auto res = cli.Get(path, [](uint64_t, uint64_t) { return true; }); - ASSERT_TRUE(res); - EXPECT_EQ("abcdefghijklmnopqrstuvwxyzabcdef", res->body); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST(CancelTest, WithCancelSmallPayload_Online) { -#ifdef CPPHTTPLIB_DEFAULT_HTTPBIN - auto host = "httpbin.org"; - auto path = std::string{"/range/32"}; -#else - auto host = "nghttp2.org"; - auto path = std::string{"/httpbin/range/32"}; -#endif - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - auto port = 443; - SSLClient cli(host, port); -#else - auto port = 80; - Client cli(host, port); -#endif - - auto res = cli.Get(path, [](uint64_t, uint64_t) { return false; }); - cli.set_connection_timeout(std::chrono::seconds(5)); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Canceled, res.error()); -} - -TEST(CancelTest, WithCancelLargePayload_Online) { -#ifdef CPPHTTPLIB_DEFAULT_HTTPBIN - auto host = "httpbin.org"; - auto path = std::string{"/range/65536"}; -#else - auto host = "nghttp2.org"; - auto path = std::string{"/httpbin/range/65536"}; -#endif - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - auto port = 443; - SSLClient cli(host, port); -#else - auto port = 80; - Client cli(host, port); -#endif - cli.set_connection_timeout(std::chrono::seconds(5)); - - uint32_t count = 0; - auto res = - cli.Get(path, [&count](uint64_t, uint64_t) { return (count++ == 0); }); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Canceled, res.error()); -} - -TEST(CancelTest, NoCancelPost) { - Server svr; - - svr.Post("/", [&](const Request & /*req*/, Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - cli.set_connection_timeout(std::chrono::seconds(5)); - - auto res = - cli.Post("/", Headers(), JSON_DATA.data(), JSON_DATA.size(), - "application/json", [](uint64_t, uint64_t) { return true; }); - ASSERT_TRUE(res); - EXPECT_EQ("Hello World!", res->body); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST(CancelTest, WithCancelSmallPayloadPost) { - Server svr; - - svr.Post("/", [&](const Request & /*req*/, Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - cli.set_connection_timeout(std::chrono::seconds(5)); - - auto res = - cli.Post("/", Headers(), JSON_DATA.data(), JSON_DATA.size(), - "application/json", [](uint64_t, uint64_t) { return false; }); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Canceled, res.error()); -} - -TEST(CancelTest, WithCancelLargePayloadPost) { - Server svr; - - svr.Post("/", [&](const Request & /*req*/, Response &res) { - res.set_content(LARGE_DATA, "text/plain"); - }); - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - cli.set_connection_timeout(std::chrono::seconds(5)); - - auto res = - cli.Post("/", Headers(), JSON_DATA.data(), JSON_DATA.size(), - "application/json", [](uint64_t, uint64_t) { return false; }); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Canceled, res.error()); -} - -TEST(CancelTest, NoCancelPut) { - Server svr; - - svr.Put("/", [&](const Request & /*req*/, Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - cli.set_connection_timeout(std::chrono::seconds(5)); - - auto res = - cli.Put("/", Headers(), JSON_DATA.data(), JSON_DATA.size(), - "application/json", [](uint64_t, uint64_t) { return true; }); - ASSERT_TRUE(res); - EXPECT_EQ("Hello World!", res->body); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST(CancelTest, WithCancelSmallPayloadPut) { - Server svr; - - svr.Put("/", [&](const Request & /*req*/, Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - cli.set_connection_timeout(std::chrono::seconds(5)); - - auto res = - cli.Put("/", Headers(), JSON_DATA.data(), JSON_DATA.size(), - "application/json", [](uint64_t, uint64_t) { return false; }); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Canceled, res.error()); -} - -TEST(CancelTest, WithCancelLargePayloadPut) { - Server svr; - - svr.Put("/", [&](const Request & /*req*/, Response &res) { - res.set_content(LARGE_DATA, "text/plain"); - }); - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - cli.set_connection_timeout(std::chrono::seconds(5)); - - auto res = - cli.Put("/", Headers(), JSON_DATA.data(), JSON_DATA.size(), - "application/json", [](uint64_t, uint64_t) { return false; }); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Canceled, res.error()); -} - -TEST(CancelTest, NoCancelPatch) { - Server svr; - - svr.Patch("/", [&](const Request & /*req*/, Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - cli.set_connection_timeout(std::chrono::seconds(5)); - - auto res = - cli.Patch("/", Headers(), JSON_DATA.data(), JSON_DATA.size(), - "application/json", [](uint64_t, uint64_t) { return true; }); - ASSERT_TRUE(res); - EXPECT_EQ("Hello World!", res->body); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST(CancelTest, WithCancelSmallPayloadPatch) { - Server svr; - - svr.Patch("/", [&](const Request & /*req*/, Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - cli.set_connection_timeout(std::chrono::seconds(5)); - - auto res = - cli.Patch("/", Headers(), JSON_DATA.data(), JSON_DATA.size(), - "application/json", [](uint64_t, uint64_t) { return false; }); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Canceled, res.error()); -} - -TEST(CancelTest, WithCancelLargePayloadPatch) { - Server svr; - - svr.Patch("/", [&](const Request & /*req*/, Response &res) { - res.set_content(LARGE_DATA, "text/plain"); - }); - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - cli.set_connection_timeout(std::chrono::seconds(5)); - - auto res = - cli.Patch("/", Headers(), JSON_DATA.data(), JSON_DATA.size(), - "application/json", [](uint64_t, uint64_t) { return false; }); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Canceled, res.error()); -} - -TEST(CancelTest, NoCancelDelete) { - Server svr; - - svr.Delete("/", [&](const Request & /*req*/, Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - cli.set_connection_timeout(std::chrono::seconds(5)); - - auto res = - cli.Delete("/", Headers(), JSON_DATA.data(), JSON_DATA.size(), - "application/json", [](uint64_t, uint64_t) { return true; }); - ASSERT_TRUE(res); - EXPECT_EQ("Hello World!", res->body); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST(CancelTest, WithCancelSmallPayloadDelete) { - Server svr; - - svr.Delete("/", [&](const Request & /*req*/, Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - cli.set_connection_timeout(std::chrono::seconds(5)); - - auto res = - cli.Delete("/", Headers(), JSON_DATA.data(), JSON_DATA.size(), - "application/json", [](uint64_t, uint64_t) { return false; }); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Canceled, res.error()); -} - -TEST(CancelTest, WithCancelLargePayloadDelete) { - Server svr; - - svr.Delete("/", [&](const Request & /*req*/, Response &res) { - res.set_content(LARGE_DATA, "text/plain"); - }); - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - cli.set_connection_timeout(std::chrono::seconds(5)); - - auto res = - cli.Delete("/", Headers(), JSON_DATA.data(), JSON_DATA.size(), - "application/json", [](uint64_t, uint64_t) { return false; }); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Canceled, res.error()); -} - -static std::string remove_whitespace(const std::string &input) { - std::string output; - output.reserve(input.size()); - std::copy_if(input.begin(), input.end(), std::back_inserter(output), - [](unsigned char c) { return !std::isspace(c); }); - return output; -} - -TEST(BaseAuthTest, FromHTTPWatch_Online) { -#ifdef CPPHTTPLIB_DEFAULT_HTTPBIN - auto host = "httpbin.org"; - auto path = std::string{"/basic-auth/hello/world"}; -#else - auto host = "nghttp2.org"; - auto path = std::string{"/httpbin/basic-auth/hello/world"}; -#endif - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - auto port = 443; - SSLClient cli(host, port); -#else - auto port = 80; - Client cli(host, port); -#endif - - { - auto res = cli.Get(path); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::Unauthorized_401, res->status); - } - - { - auto res = - cli.Get(path, {make_basic_authentication_header("hello", "world")}); - ASSERT_TRUE(res); - EXPECT_EQ("{\"authenticated\":true,\"user\":\"hello\"}", - remove_whitespace(res->body)); - EXPECT_EQ(StatusCode::OK_200, res->status); - } - - { - cli.set_basic_auth("hello", "world"); - auto res = cli.Get(path); - ASSERT_TRUE(res); - EXPECT_EQ("{\"authenticated\":true,\"user\":\"hello\"}", - remove_whitespace(res->body)); - EXPECT_EQ(StatusCode::OK_200, res->status); - } - - { - cli.set_basic_auth("hello", "bad"); - auto res = cli.Get(path); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::Unauthorized_401, res->status); - } - - { - cli.set_basic_auth("bad", "world"); - auto res = cli.Get(path); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::Unauthorized_401, res->status); - } -} - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT -TEST(DigestAuthTest, FromHTTPWatch_Online) { -#ifdef CPPHTTPLIB_DEFAULT_HTTPBIN - auto host = "httpbin.org"; - auto unauth_path = std::string{"/digest-auth/auth/hello/world"}; - auto paths = std::vector{ - "/digest-auth/auth/hello/world/MD5", - "/digest-auth/auth/hello/world/SHA-256", - "/digest-auth/auth/hello/world/SHA-512", - "/digest-auth/auth-int/hello/world/MD5", - }; -#else - auto host = "nghttp2.org"; - auto unauth_path = std::string{"/httpbin/digest-auth/auth/hello/world"}; - auto paths = std::vector{ - "/httpbin/digest-auth/auth/hello/world/MD5", - "/httpbin/digest-auth/auth/hello/world/SHA-256", - "/httpbin/digest-auth/auth/hello/world/SHA-512", - "/httpbin/digest-auth/auth-int/hello/world/MD5", - }; -#endif - - auto port = 443; - SSLClient cli(host, port); - - { - auto res = cli.Get(unauth_path); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::Unauthorized_401, res->status); - } - - { - - cli.set_digest_auth("hello", "world"); - for (const auto &path : paths) { - auto res = cli.Get(path.c_str()); - ASSERT_TRUE(res); - EXPECT_EQ("{\"authenticated\":true,\"user\":\"hello\"}", - remove_whitespace(res->body)); - EXPECT_EQ(StatusCode::OK_200, res->status); - } - - cli.set_digest_auth("hello", "bad"); - for (const auto &path : paths) { - auto res = cli.Get(path.c_str()); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::Unauthorized_401, res->status); - } - - // NOTE: Until httpbin.org fixes issue #46, the following test is commented - // out. Please see https://httpbin.org/digest-auth/auth/hello/world - // cli.set_digest_auth("bad", "world"); - // for (const auto& path : paths) { - // auto res = cli.Get(path.c_str()); - // ASSERT_TRUE(res); - // EXPECT_EQ(StatusCode::BadRequest_400, res->status); - // } - } -} -#endif - -TEST(SpecifyServerIPAddressTest, AnotherHostname_Online) { - auto host = "google.com"; - auto another_host = "example.com"; - auto wrong_ip = "0.0.0.0"; - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLClient cli(host); -#else - Client cli(host); -#endif - - cli.set_hostname_addr_map({{another_host, wrong_ip}}); - auto res = cli.Get("/"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::MovedPermanently_301, res->status); -} - -TEST(SpecifyServerIPAddressTest, RealHostname_Online) { - auto host = "google.com"; - auto wrong_ip = "0.0.0.0"; - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLClient cli(host); -#else - Client cli(host); -#endif - - cli.set_hostname_addr_map({{host, wrong_ip}}); - auto res = cli.Get("/"); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Connection, res.error()); -} - -TEST(AbsoluteRedirectTest, Redirect_Online) { - auto host = "nghttp2.org"; - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLClient cli(host); -#else - Client cli(host); -#endif - - cli.set_follow_location(true); - auto res = cli.Get("/httpbin/absolute-redirect/3"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST(RedirectTest, Redirect_Online) { - auto host = "nghttp2.org"; - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLClient cli(host); -#else - Client cli(host); -#endif - - cli.set_follow_location(true); - auto res = cli.Get("/httpbin/redirect/3"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST(RelativeRedirectTest, Redirect_Online) { - auto host = "nghttp2.org"; - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLClient cli(host); -#else - Client cli(host); -#endif - - cli.set_follow_location(true); - auto res = cli.Get("/httpbin/relative-redirect/3"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST(TooManyRedirectTest, Redirect_Online) { - auto host = "nghttp2.org"; - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLClient cli(host); -#else - Client cli(host); -#endif - - cli.set_follow_location(true); - auto res = cli.Get("/httpbin/redirect/21"); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::ExceedRedirectCount, res.error()); -} - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT -TEST(YahooRedirectTest, Redirect_Online) { - Client cli("yahoo.com"); - - auto res = cli.Get("/"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::MovedPermanently_301, res->status); - - cli.set_follow_location(true); - res = cli.Get("/"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("https://www.yahoo.com/", res->location); -} - -// Previously "nghttp2.org" "/httpbin/redirect-to" -#define REDIR_HOST "httpbingo.org" -#define REDIR_PATH "/redirect-to" - -TEST(HttpsToHttpRedirectTest, Redirect_Online) { - SSLClient cli(REDIR_HOST); - cli.set_follow_location(true); - auto res = - cli.Get(REDIR_PATH "?url=http%3A%2F%2Fexample.com&status_code=302"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST(HttpsToHttpRedirectTest2, Redirect_Online) { - SSLClient cli(REDIR_HOST); - cli.set_follow_location(true); - - Params params; - params.emplace("url", "http://example.com"); - params.emplace("status_code", "302"); - - auto res = cli.Get(REDIR_PATH, params, Headers{}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST(HttpsToHttpRedirectTest3, Redirect_Online) { - SSLClient cli(REDIR_HOST); - cli.set_follow_location(true); - - Params params; - params.emplace("url", "http://example.com"); - - auto res = cli.Get(REDIR_PATH "?status_code=302", params, Headers{}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST(UrlWithSpace, Redirect_Online) { - SSLClient cli("edge.forgecdn.net"); - cli.set_follow_location(true); - - auto res = cli.Get("/files/2595/310/Neat 1.4-17.jar"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(18527U, res->get_header_value_u64("Content-Length")); -} - -#endif - -#if !defined(_WIN32) && !defined(_WIN64) -TEST(ReceiveSignals, Signal) { - auto setupSignalHandlers = []() { - struct sigaction act; - - sigemptyset(&act.sa_mask); - act.sa_flags = SA_SIGINFO; - act.sa_sigaction = [](int sig, siginfo_t *, void *) { - switch (sig) { - case SIGINT: - default: break; - } - }; - ::sigaction(SIGINT, &act, nullptr); - }; - - Server svr; - int port = 0; - auto thread = std::thread([&]() { - setupSignalHandlers(); - port = svr.bind_to_any_port("localhost"); - svr.listen_after_bind(); - }); - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - ASSERT_TRUE(svr.is_running()); - pthread_kill(thread.native_handle(), SIGINT); - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - ASSERT_TRUE(svr.is_running()); -} -#endif - -TEST(RedirectToDifferentPort, Redirect) { - Server svr1; - svr1.Get("/1", [&](const Request & /*req*/, Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - - int svr1_port = 0; - auto thread1 = std::thread([&]() { - svr1_port = svr1.bind_to_any_port("localhost"); - svr1.listen_after_bind(); - }); - - Server svr2; - svr2.Get("/2", [&](const Request & /*req*/, Response &res) { - res.set_redirect("http://localhost:" + std::to_string(svr1_port) + "/1"); - }); - - int svr2_port = 0; - auto thread2 = std::thread([&]() { - svr2_port = svr2.bind_to_any_port("localhost"); - svr2.listen_after_bind(); - }); - auto se = detail::scope_exit([&] { - svr2.stop(); - thread2.join(); - svr1.stop(); - thread1.join(); - ASSERT_FALSE(svr2.is_running()); - ASSERT_FALSE(svr1.is_running()); - }); - - svr1.wait_until_ready(); - svr2.wait_until_ready(); - - Client cli("localhost", svr2_port); - cli.set_follow_location(true); - - auto res = cli.Get("/2"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("Hello World!", res->body); -} - -TEST(RedirectFromPageWithContent, Redirect) { - Server svr; - - svr.Get("/1", [&](const Request & /*req*/, Response &res) { - res.set_content("___", "text/plain"); - res.set_redirect("/2"); - }); - - svr.Get("/2", [&](const Request & /*req*/, Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - - auto th = std::thread([&]() { svr.listen("localhost", PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - th.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - Client cli("localhost", PORT); - cli.set_follow_location(true); - - std::string body; - auto res = cli.Get("/1", [&](const char *data, size_t data_length) { - body.append(data, data_length); - return true; - }); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("Hello World!", body); - } - - { - Client cli("localhost", PORT); - - std::string body; - auto res = cli.Get("/1", [&](const char *data, size_t data_length) { - body.append(data, data_length); - return true; - }); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::Found_302, res->status); - EXPECT_EQ("___", body); - } -} - -TEST(RedirectFromPageWithContentIP6, Redirect) { - Server svr; - - svr.Get("/1", [&](const Request & /*req*/, Response &res) { - res.set_content("___", "text/plain"); - // res.set_redirect("/2"); - res.set_redirect("http://[::1]:1234/2"); - }); - - svr.Get("/2", [&](const Request &req, Response &res) { - auto host_header = req.headers.find("Host"); - ASSERT_TRUE(host_header != req.headers.end()); - EXPECT_EQ("[::1]:1234", host_header->second); - - res.set_content("Hello World!", "text/plain"); - }); - - auto th = std::thread([&]() { svr.listen("::1", 1234); }); - auto se = detail::scope_exit([&] { - svr.stop(); - th.join(); - ASSERT_FALSE(svr.is_running()); - }); - - // When IPV6 support isn't available svr.listen("::1", 1234) never - // actually starts anything, so the condition !svr.is_running() will - // always remain true, and the loop never stops. - // This basically counts how many milliseconds have passed since the - // call to svr.listen(), and if after 5 seconds nothing started yet - // aborts the test. - for (unsigned int milliseconds = 0; !svr.is_running(); milliseconds++) { - std::this_thread::sleep_for(std::chrono::milliseconds(1)); - ASSERT_LT(milliseconds, 5000U); - } - - { - Client cli("http://[::1]:1234"); - cli.set_follow_location(true); - - std::string body; - auto res = cli.Get("/1", [&](const char *data, size_t data_length) { - body.append(data, data_length); - return true; - }); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("Hello World!", body); - } - - { - Client cli("http://[::1]:1234"); - - std::string body; - auto res = cli.Get("/1", [&](const char *data, size_t data_length) { - body.append(data, data_length); - return true; - }); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::Found_302, res->status); - EXPECT_EQ("___", body); - } -} - -TEST(PathUrlEncodeTest, PathUrlEncode) { - Server svr; - - svr.Get("/foo", [](const Request &req, Response &res) { - auto a = req.params.find("a"); - if (a != req.params.end()) { - res.set_content((*a).second, "text/plain"); - res.status = StatusCode::OK_200; - } else { - res.status = StatusCode::BadRequest_400; - } - }); - - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - Client cli(HOST, PORT); - cli.set_path_encode(false); - - auto res = cli.Get("/foo?a=explicitly+encoded"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - // This expects it back with a space, as the `+` won't have been - // url-encoded, and server-side the params get decoded turning `+` - // into spaces. - EXPECT_EQ("explicitly encoded", res->body); - } -} - -TEST(PathUrlEncodeTest, IncludePercentEncodingLF) { - Server svr; - - svr.Get("/", [](const Request &req, Response &) { - EXPECT_EQ("\x0A", req.get_param_value("something")); - }); - - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - Client cli(HOST, PORT); - cli.set_path_encode(false); - - auto res = cli.Get("/?something=%0A"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - } -} - -TEST(BindServerTest, DISABLED_BindDualStack) { - Server svr; - - svr.Get("/1", [&](const Request & /*req*/, Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - - auto thread = std::thread([&]() { svr.listen("::", PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - Client cli("127.0.0.1", PORT); - - auto res = cli.Get("/1"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("Hello World!", res->body); - } - { - Client cli("::1", PORT); - - auto res = cli.Get("/1"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("Hello World!", res->body); - } -} - -TEST(BindServerTest, BindAndListenSeparately) { - Server svr; - int port = svr.bind_to_any_port("0.0.0.0"); - ASSERT_TRUE(svr.is_valid()); - ASSERT_TRUE(port > 0); - svr.stop(); -} - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT -TEST(BindServerTest, BindAndListenSeparatelySSL) { - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE, CLIENT_CA_CERT_FILE, - CLIENT_CA_CERT_DIR); - int port = svr.bind_to_any_port("0.0.0.0"); - ASSERT_TRUE(svr.is_valid()); - ASSERT_TRUE(port > 0); - svr.stop(); -} -#endif - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT -TEST(BindServerTest, BindAndListenSeparatelySSLEncryptedKey) { - SSLServer svr(SERVER_ENCRYPTED_CERT_FILE, SERVER_ENCRYPTED_PRIVATE_KEY_FILE, - nullptr, nullptr, SERVER_ENCRYPTED_PRIVATE_KEY_PASS); - int port = svr.bind_to_any_port("0.0.0.0"); - ASSERT_TRUE(svr.is_valid()); - ASSERT_TRUE(port > 0); - svr.stop(); -} -#endif - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT -X509 *readCertificate(const std::string &strFileName) { - std::ifstream inStream(strFileName); - std::string strCertPEM((std::istreambuf_iterator(inStream)), - std::istreambuf_iterator()); - - if (strCertPEM.empty()) return (nullptr); - - BIO *pbCert = BIO_new(BIO_s_mem()); - BIO_write(pbCert, strCertPEM.c_str(), (int)strCertPEM.size()); - X509 *pCert = PEM_read_bio_X509(pbCert, NULL, 0, NULL); - BIO_free(pbCert); - - return (pCert); -} - -EVP_PKEY *readPrivateKey(const std::string &strFileName) { - std::ifstream inStream(strFileName); - std::string strPrivateKeyPEM((std::istreambuf_iterator(inStream)), - std::istreambuf_iterator()); - - if (strPrivateKeyPEM.empty()) return (nullptr); - - BIO *pbPrivKey = BIO_new(BIO_s_mem()); - BIO_write(pbPrivKey, strPrivateKeyPEM.c_str(), (int)strPrivateKeyPEM.size()); - EVP_PKEY *pPrivateKey = PEM_read_bio_PrivateKey(pbPrivKey, NULL, NULL, NULL); - BIO_free(pbPrivKey); - - return (pPrivateKey); -} - -TEST(BindServerTest, UpdateCerts) { - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE, CLIENT_CA_CERT_FILE); - int port = svr.bind_to_any_port("0.0.0.0"); - ASSERT_TRUE(svr.is_valid()); - ASSERT_TRUE(port > 0); - - X509 *cert = readCertificate(SERVER_CERT_FILE); - X509 *ca_cert = readCertificate(CLIENT_CA_CERT_FILE); - EVP_PKEY *key = readPrivateKey(SERVER_PRIVATE_KEY_FILE); - - ASSERT_TRUE(cert != nullptr); - ASSERT_TRUE(ca_cert != nullptr); - ASSERT_TRUE(key != nullptr); - - X509_STORE *cert_store = X509_STORE_new(); - - X509_STORE_add_cert(cert_store, ca_cert); - - svr.update_certs(cert, key, cert_store); - - ASSERT_TRUE(svr.is_valid()); - svr.stop(); - - X509_free(cert); - X509_free(ca_cert); - EVP_PKEY_free(key); -} -#endif - -TEST(ErrorHandlerTest, ContentLength) { - Server svr; - - svr.set_error_handler([](const Request & /*req*/, Response &res) { - res.status = StatusCode::OK_200; - res.set_content("abcdefghijklmnopqrstuvwxyz", - "text/html"); // <= Content-Length still 13 - }); - - svr.Get("/hi", [](const Request & /*req*/, Response &res) { - res.set_content("Hello World!\n", "text/plain"); - res.status = 524; - }); - - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - Client cli(HOST, PORT); - - auto res = cli.Get("/hi", {{"Accept-Encoding", ""}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/html", res->get_header_value("Content-Type")); - EXPECT_EQ("26", res->get_header_value("Content-Length")); - EXPECT_EQ("abcdefghijklmnopqrstuvwxyz", res->body); - } -} - -#ifndef CPPHTTPLIB_NO_EXCEPTIONS -TEST(ExceptionTest, WithoutExceptionHandler) { - Server svr; - - svr.Get("/exception", [&](const Request & /*req*/, Response & /*res*/) { - throw std::runtime_error("exception..."); - }); - - svr.Get("/unknown", [&](const Request & /*req*/, Response & /*res*/) { - throw std::runtime_error("exception\r\n..."); - }); - - auto listen_thread = std::thread([&svr]() { svr.listen("localhost", PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli("localhost", PORT); - - { - auto res = cli.Get("/exception"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::InternalServerError_500, res->status); - ASSERT_TRUE(res->has_header("EXCEPTION_WHAT")); - EXPECT_EQ("exception...", res->get_header_value("EXCEPTION_WHAT")); - } - - { - auto res = cli.Get("/unknown"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::InternalServerError_500, res->status); - ASSERT_TRUE(res->has_header("EXCEPTION_WHAT")); - EXPECT_EQ("exception\\r\\n...", res->get_header_value("EXCEPTION_WHAT")); - } -} - -TEST(ExceptionTest, WithExceptionHandler) { - Server svr; - - svr.set_exception_handler([](const Request & /*req*/, Response &res, - std::exception_ptr ep) { - EXPECT_FALSE(ep == nullptr); - try { - std::rethrow_exception(ep); - } catch (std::exception &e) { - EXPECT_EQ("abc", std::string(e.what())); - } catch (...) {} - res.status = StatusCode::InternalServerError_500; - res.set_content("abcdefghijklmnopqrstuvwxyz", - "text/html"); // <= Content-Length still 13 at this point - }); - - svr.Get("/hi", [](const Request & /*req*/, Response &res) { - res.set_content("Hello World!\n", "text/plain"); - throw std::runtime_error("abc"); - }); - - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - for (size_t i = 0; i < 10; i++) { - Client cli(HOST, PORT); - - for (size_t j = 0; j < 100; j++) { - auto res = cli.Get("/hi", {{"Accept-Encoding", ""}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::InternalServerError_500, res->status); - EXPECT_EQ("text/html", res->get_header_value("Content-Type")); - EXPECT_EQ("26", res->get_header_value("Content-Length")); - EXPECT_EQ("abcdefghijklmnopqrstuvwxyz", res->body); - } - - cli.set_keep_alive(true); - - for (size_t j = 0; j < 100; j++) { - auto res = cli.Get("/hi", {{"Accept-Encoding", ""}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::InternalServerError_500, res->status); - EXPECT_EQ("text/html", res->get_header_value("Content-Type")); - EXPECT_EQ("26", res->get_header_value("Content-Length")); - EXPECT_EQ("abcdefghijklmnopqrstuvwxyz", res->body); - } - } -} - -TEST(ExceptionTest, AndErrorHandler) { - Server svr; - - svr.set_error_handler([](const Request & /*req*/, Response &res) { - if (res.body.empty()) { res.set_content("NOT_FOUND", "text/html"); } - }); - - svr.set_exception_handler( - [](const Request & /*req*/, Response &res, std::exception_ptr ep) { - EXPECT_FALSE(ep == nullptr); - try { - std::rethrow_exception(ep); - } catch (std::exception &e) { - res.set_content(e.what(), "text/html"); - } catch (...) {} - res.status = StatusCode::InternalServerError_500; - }); - - svr.Get("/exception", [](const Request & /*req*/, Response & /*res*/) { - throw std::runtime_error("EXCEPTION"); - }); - - svr.Get("/error", [](const Request & /*req*/, Response &res) { - res.set_content("ERROR", "text/html"); - res.status = StatusCode::InternalServerError_500; - }); - - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - - { - auto res = cli.Get("/exception"); - ASSERT_TRUE(res); - EXPECT_EQ("text/html", res->get_header_value("Content-Type")); - EXPECT_EQ("EXCEPTION", res->body); - } - - { - auto res = cli.Get("/error"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::InternalServerError_500, res->status); - EXPECT_EQ("ERROR", res->body); - } - - { - auto res = cli.Get("/invalid"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); - EXPECT_EQ("NOT_FOUND", res->body); - } -} -#endif - -TEST(NoContentTest, ContentLength) { - Server svr; - - svr.Get("/hi", [](const Request & /*req*/, Response &res) { - res.status = StatusCode::NoContent_204; - }); - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - Client cli(HOST, PORT); - - auto res = cli.Get("/hi"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NoContent_204, res->status); - EXPECT_EQ("0", res->get_header_value("Content-Length")); - } -} - -TEST(RoutingHandlerTest, PreAndPostRoutingHandlers) { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE); - ASSERT_TRUE(svr.is_valid()); -#else - Server svr; -#endif - - svr.set_pre_routing_handler([](const Request &req, Response &res) { - if (req.path == "/routing_handler") { - res.set_header("PRE_ROUTING", "on"); - res.set_content("Routing Handler", "text/plain"); - return httplib::Server::HandlerResponse::Handled; - } - return httplib::Server::HandlerResponse::Unhandled; - }); - - svr.set_error_handler([](const Request & /*req*/, Response &res) { - res.set_content("Error", "text/html"); - }); - - svr.set_post_routing_handler([](const Request &req, Response &res) { - if (req.path == "/routing_handler") { - res.set_header("POST_ROUTING", "on"); - } - }); - - svr.Get("/hi", [](const Request & /*req*/, Response &res) { - res.set_content("Hello World!\n", "text/plain"); - }); - - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLClient cli(HOST, PORT); - cli.enable_server_certificate_verification(false); -#else - Client cli(HOST, PORT); -#endif - - auto res = cli.Get("/routing_handler"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("Routing Handler", res->body); - EXPECT_EQ(1U, res->get_header_value_count("PRE_ROUTING")); - EXPECT_EQ("on", res->get_header_value("PRE_ROUTING")); - EXPECT_EQ(1U, res->get_header_value_count("POST_ROUTING")); - EXPECT_EQ("on", res->get_header_value("POST_ROUTING")); - } - - { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLClient cli(HOST, PORT); - cli.enable_server_certificate_verification(false); -#else - Client cli(HOST, PORT); -#endif - - auto res = cli.Get("/hi"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("Hello World!\n", res->body); - EXPECT_EQ(0U, res->get_header_value_count("PRE_ROUTING")); - EXPECT_EQ(0U, res->get_header_value_count("POST_ROUTING")); - } - - { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLClient cli(HOST, PORT); - cli.enable_server_certificate_verification(false); -#else - Client cli(HOST, PORT); -#endif - - auto res = cli.Get("/aaa"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); - EXPECT_EQ("Error", res->body); - EXPECT_EQ(0U, res->get_header_value_count("PRE_ROUTING")); - EXPECT_EQ(0U, res->get_header_value_count("POST_ROUTING")); - } -} - -TEST(RequestHandlerTest, PreRequestHandler) { - auto route_path = "/user/:user"; - - Server svr; - - svr.Get("/hi", [](const Request &, Response &res) { - res.set_content("hi", "text/plain"); - }); - - svr.Get(route_path, [](const Request &req, Response &res) { - res.set_content(req.path_params.at("user"), "text/plain"); - }); - - svr.set_pre_request_handler([&](const Request &req, Response &res) { - if (req.matched_route == route_path) { - auto user = req.path_params.at("user"); - if (user != "john") { - res.status = StatusCode::Forbidden_403; - res.set_content("error", "text/html"); - return Server::HandlerResponse::Handled; - } - } - return Server::HandlerResponse::Unhandled; - }); - - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - { - auto res = cli.Get("/hi"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("hi", res->body); - } - - { - auto res = cli.Get("/user/john"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("john", res->body); - } - - { - auto res = cli.Get("/user/invalid-user"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::Forbidden_403, res->status); - EXPECT_EQ("error", res->body); - } -} - -TEST(InvalidFormatTest, StatusCode) { - Server svr; - - svr.Get("/hi", [](const Request & /*req*/, Response &res) { - res.set_content("Hello World!\n", "text/plain"); - res.status = 9999; // Status should be a three-digit code... - }); - - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - Client cli(HOST, PORT); - - auto res = cli.Get("/hi"); - ASSERT_FALSE(res); - } -} - -TEST(URLFragmentTest, WithFragment) { - Server svr; - - svr.Get("/hi", [](const Request &req, Response & /*res*/) { - EXPECT_TRUE(req.target == "/hi"); - }); - - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - Client cli(HOST, PORT); - - auto res = cli.Get("/hi#key1=val1=key2=val2"); - EXPECT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - - res = cli.Get("/hi%23key1=val1=key2=val2"); - EXPECT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); - } -} - -TEST(HeaderWriter, SetHeaderWriter) { - Server svr; - - svr.set_header_writer([](Stream &strm, Headers &hdrs) { - hdrs.emplace("CustomServerHeader", "CustomServerValue"); - return detail::write_headers(strm, hdrs); - }); - svr.Get("/hi", [](const Request &req, Response &res) { - auto it = req.headers.find("CustomClientHeader"); - EXPECT_TRUE(it != req.headers.end()); - EXPECT_EQ(it->second, "CustomClientValue"); - res.set_content("Hello World!\n", "text/plain"); - }); - - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - Client cli(HOST, PORT); - cli.set_header_writer([](Stream &strm, Headers &hdrs) { - hdrs.emplace("CustomClientHeader", "CustomClientValue"); - return detail::write_headers(strm, hdrs); - }); - - auto res = cli.Get("/hi"); - EXPECT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - - auto it = res->headers.find("CustomServerHeader"); - EXPECT_TRUE(it != res->headers.end()); - EXPECT_EQ(it->second, "CustomServerValue"); - } -} - -class ServerTest : public ::testing::Test { -protected: - ServerTest() - : cli_(HOST, PORT) -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - , - svr_(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE) -#endif - { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - cli_.enable_server_certificate_verification(false); -#endif - } - - virtual void SetUp() { - svr_.set_mount_point("/", "./www"); - svr_.set_mount_point("/mount", "./www2"); - svr_.set_file_extension_and_mimetype_mapping("abcde", "text/abcde"); - - svr_.Get("/hi", - [&](const Request & /*req*/, Response &res) { - res.set_content("Hello World!", "text/plain"); - }) - .Get("/file_content", - [&](const Request & /*req*/, Response &res) { - res.set_file_content("./www/dir/test.html"); - }) - .Get("/file_content_with_content_type", - [&](const Request & /*req*/, Response &res) { - res.set_file_content("./www/file", "text/plain"); - }) - .Get("/invalid_file_content", - [&](const Request & /*req*/, Response &res) { - res.set_file_content("./www/dir/invalid_file_path"); - }) - .Get("/http_response_splitting", - [&](const Request & /*req*/, Response &res) { - res.set_header("a", "1\r\nSet-Cookie: a=1"); - EXPECT_EQ(0U, res.headers.size()); - EXPECT_FALSE(res.has_header("a")); - - res.set_header("a", "1\nSet-Cookie: a=1"); - EXPECT_EQ(0U, res.headers.size()); - EXPECT_FALSE(res.has_header("a")); - - res.set_header("a", "1\rSet-Cookie: a=1"); - EXPECT_EQ(0U, res.headers.size()); - EXPECT_FALSE(res.has_header("a")); - - res.set_header("a\r\nb", "0"); - EXPECT_EQ(0U, res.headers.size()); - EXPECT_FALSE(res.has_header("a")); - - res.set_header("a\rb", "0"); - EXPECT_EQ(0U, res.headers.size()); - EXPECT_FALSE(res.has_header("a")); - - res.set_header("a\nb", "0"); - EXPECT_EQ(0U, res.headers.size()); - EXPECT_FALSE(res.has_header("a")); - - res.set_redirect("1\r\nSet-Cookie: a=1"); - EXPECT_EQ(0U, res.headers.size()); - EXPECT_FALSE(res.has_header("Location")); - }) - .Get("/slow", - [&](const Request & /*req*/, Response &res) { - std::this_thread::sleep_for(std::chrono::seconds(2)); - res.set_content("slow", "text/plain"); - }) -#if 0 - .Post("/slowpost", - [&](const Request & /*req*/, Response &res) { - std::this_thread::sleep_for(std::chrono::seconds(2)); - res.set_content("slow", "text/plain"); - }) -#endif - .Get("/remote_addr", - [&](const Request &req, Response &res) { - auto remote_addr = req.headers.find("REMOTE_ADDR")->second; - EXPECT_TRUE(req.has_header("REMOTE_PORT")); - EXPECT_EQ(req.remote_addr, req.get_header_value("REMOTE_ADDR")); - EXPECT_EQ(req.remote_port, - std::stoi(req.get_header_value("REMOTE_PORT"))); - res.set_content(remote_addr.c_str(), "text/plain"); - }) - .Get("/local_addr", - [&](const Request &req, Response &res) { - EXPECT_TRUE(req.has_header("LOCAL_PORT")); - EXPECT_TRUE(req.has_header("LOCAL_ADDR")); - auto local_addr = req.get_header_value("LOCAL_ADDR"); - auto local_port = req.get_header_value("LOCAL_PORT"); - EXPECT_EQ(req.local_addr, local_addr); - EXPECT_EQ(req.local_port, std::stoi(local_port)); - res.set_content(local_addr.append(":").append(local_port), - "text/plain"); - }) - .Get("/endwith%", - [&](const Request & /*req*/, Response &res) { - res.set_content("Hello World!", "text/plain"); - }) - .Get("/a\\+\\+b", - [&](const Request &req, Response &res) { - ASSERT_TRUE(req.has_param("a +b")); - auto val = req.get_param_value("a +b"); - res.set_content(val, "text/plain"); - }) - .Get("/", [&](const Request & /*req*/, - Response &res) { res.set_redirect("/hi"); }) - .Post("/1", - [](const Request & /*req*/, Response &res) { - res.set_redirect("/2", StatusCode::SeeOther_303); - }) - .Get("/2", - [](const Request & /*req*/, Response &res) { - res.set_content("redirected.", "text/plain"); - res.status = StatusCode::OK_200; - }) - .Post("/person", - [&](const Request &req, Response &res) { - if (req.has_param("name") && req.has_param("note")) { - persons_[req.get_param_value("name")] = - req.get_param_value("note"); - } else { - res.status = StatusCode::BadRequest_400; - } - }) - .Put("/person", - [&](const Request &req, Response &res) { - if (req.has_param("name") && req.has_param("note")) { - persons_[req.get_param_value("name")] = - req.get_param_value("note"); - } else { - res.status = StatusCode::BadRequest_400; - } - }) - .Get("/person/(.*)", - [&](const Request &req, Response &res) { - string name = req.matches[1]; - if (persons_.find(name) != persons_.end()) { - auto note = persons_[name]; - res.set_content(note, "text/plain"); - } else { - res.status = StatusCode::NotFound_404; - } - }) - .Delete("/person", - [&](const Request &req, Response &res) { - if (req.has_param("name")) { - string name = req.get_param_value("name"); - if (persons_.find(name) != persons_.end()) { - persons_.erase(name); - res.set_content("DELETED", "text/plain"); - } else { - res.status = StatusCode::NotFound_404; - } - } else { - res.status = StatusCode::BadRequest_400; - } - }) - .Post("/x-www-form-urlencoded-json", - [&](const Request &req, Response &res) { - auto json = req.get_param_value("json"); - ASSERT_EQ(JSON_DATA, json); - res.set_content(json, "appliation/json"); - res.status = StatusCode::OK_200; - }) - .Get("/streamed-chunked", - [&](const Request & /*req*/, Response &res) { - res.set_chunked_content_provider( - "text/plain", [](size_t /*offset*/, DataSink &sink) { - sink.os << "123"; - sink.os << "456"; - sink.os << "789"; - sink.done(); - return true; - }); - }) - .Get("/streamed-chunked2", - [&](const Request & /*req*/, Response &res) { - auto i = new int(0); - res.set_chunked_content_provider( - "text/plain", - [i](size_t /*offset*/, DataSink &sink) { - switch (*i) { - case 0: sink.os << "123"; break; - case 1: sink.os << "456"; break; - case 2: sink.os << "789"; break; - case 3: sink.done(); break; - } - (*i)++; - return true; - }, - [i](bool success) { - EXPECT_TRUE(success); - delete i; - }); - }) - .Get("/streamed-chunked-with-trailer", - [&](const Request & /*req*/, Response &res) { - auto i = new int(0); - res.set_header("Trailer", "Dummy1, Dummy2"); - res.set_chunked_content_provider( - "text/plain", - [i](size_t /*offset*/, DataSink &sink) { - switch (*i) { - case 0: sink.os << "123"; break; - case 1: sink.os << "456"; break; - case 2: sink.os << "789"; break; - case 3: { - sink.done_with_trailer( - {{"Dummy1", "DummyVal1"}, {"Dummy2", "DummyVal2"}}); - } break; - } - (*i)++; - return true; - }, - [i](bool success) { - EXPECT_TRUE(success); - delete i; - }); - }) - .Get("/streamed", - [&](const Request & /*req*/, Response &res) { - res.set_content_provider( - 6, "text/plain", - [](size_t offset, size_t /*length*/, DataSink &sink) { - sink.os << (offset < 3 ? "a" : "b"); - return true; - }); - }) - .Get("/streamed-with-range", - [&](const Request &req, Response &res) { - auto data = new std::string("abcdefg"); - res.set_content_provider( - data->size(), "text/plain", - [data](size_t offset, size_t length, DataSink &sink) { - size_t DATA_CHUNK_SIZE = 4; - const auto &d = *data; - auto out_len = - std::min(static_cast(length), DATA_CHUNK_SIZE); - auto ret = - sink.write(&d[static_cast(offset)], out_len); - EXPECT_TRUE(ret); - return true; - }, - [data, &req](bool success) { - EXPECT_EQ(success, !req.has_param("error")); - delete data; - }); - }) - .Get("/streamed-cancel", - [&](const Request & /*req*/, Response &res) { - res.set_content_provider( - size_t(-1), "text/plain", - [](size_t /*offset*/, size_t /*length*/, DataSink &sink) { - sink.os << "data_chunk"; - return true; - }); - }) - .Get("/regex-with-delimiter", - [&](const Request &req, Response & /*res*/) { - ASSERT_TRUE(req.has_param("key")); - EXPECT_EQ("^(?.*(value))", req.get_param_value("key")); - }) - .Get("/with-range", - [&](const Request & /*req*/, Response &res) { - res.set_content("abcdefg", "text/plain"); - }) - .Get("/test-start-time", - [&](const Request &req, Response & /*res*/) { - EXPECT_NE(req.start_time_, - std::chrono::steady_clock::time_point::min()); - }) - .Get("/with-range-customized-response", - [&](const Request & /*req*/, Response &res) { - res.status = StatusCode::BadRequest_400; - res.set_content(JSON_DATA, "application/json"); - }) - .Post("/chunked", - [&](const Request &req, Response & /*res*/) { - EXPECT_EQ(req.body, "dechunked post body"); - }) - .Post("/large-chunked", - [&](const Request &req, Response & /*res*/) { - std::string expected(6 * 30 * 1024u, 'a'); - EXPECT_EQ(req.body, expected); - }) - .Post("/multipart", - [&](const Request &req, Response & /*res*/) { - EXPECT_EQ(4u, req.form.get_field_count("text1") + - req.form.get_field_count("text2") + - req.form.get_field_count("file3") + - req.form.get_field_count("file4")); - EXPECT_EQ(2u, req.form.get_file_count("file1") + - req.form.get_file_count("file2")); - ASSERT_TRUE(!req.form.has_file("???")); - ASSERT_TRUE(!req.form.has_field("???")); - ASSERT_TRUE(req.body.empty()); - - { - const auto &text = req.form.get_field("text1"); - EXPECT_EQ("text default", text); - } - - { - const auto &text = req.form.get_field("text2"); - EXPECT_EQ("aωb", text); - } - - { - const auto &file = req.form.get_file("file1"); - EXPECT_EQ("hello.txt", file.filename); - EXPECT_EQ("text/plain", file.content_type); - EXPECT_EQ("h\ne\n\nl\nl\no\n", file.content); - } - - { - const auto &file = req.form.get_file("file2"); - EXPECT_EQ("world.json", file.filename); - EXPECT_EQ("application/json", file.content_type); - EXPECT_EQ("{\n \"world\", true\n}\n", file.content); - } - - { - const auto &text = req.form.get_field("file3"); - EXPECT_EQ(0u, text.size()); - } - - { - const auto &text = req.form.get_field("file4"); - EXPECT_EQ(0u, text.size()); - } - }) - .Post("/multipart/multi_file_values", - [&](const Request &req, Response & /*res*/) { - EXPECT_EQ(3u, req.form.get_field_count("text") + - req.form.get_field_count("multi_text1")); - EXPECT_EQ(2u, req.form.get_file_count("multi_file1")); - ASSERT_TRUE(!req.form.has_file("???")); - ASSERT_TRUE(!req.form.has_field("???")); - ASSERT_TRUE(req.body.empty()); - - { - const auto &text = req.form.get_field("text"); - EXPECT_EQ("default text", text); - } - { - const auto &text1_values = req.form.get_fields("multi_text1"); - EXPECT_EQ(2u, text1_values.size()); - EXPECT_EQ("aaaaa", text1_values[0]); - EXPECT_EQ("bbbbb", text1_values[1]); - } - - { - const auto &file1_values = req.form.get_files("multi_file1"); - EXPECT_EQ(2u, file1_values.size()); - auto file1 = file1_values[0]; - EXPECT_EQ(file1.filename, "hello.txt"); - EXPECT_EQ(file1.content_type, "text/plain"); - EXPECT_EQ("h\ne\n\nl\nl\no\n", file1.content); - - auto file2 = file1_values[1]; - EXPECT_EQ(file2.filename, "world.json"); - EXPECT_EQ(file2.content_type, "application/json"); - EXPECT_EQ("{\n \"world\", true\n}\n", file2.content); - } - }) - .Post("/empty", - [&](const Request &req, Response &res) { - EXPECT_EQ(req.body, ""); - EXPECT_EQ("text/plain", req.get_header_value("Content-Type")); - EXPECT_EQ("0", req.get_header_value("Content-Length")); - res.set_content("empty", "text/plain"); - }) - .Post("/empty-no-content-type", - [&](const Request &req, Response &res) { - EXPECT_EQ(req.body, ""); - EXPECT_FALSE(req.has_header("Content-Type")); - EXPECT_EQ("0", req.get_header_value("Content-Length")); - res.set_content("empty-no-content-type", "text/plain"); - }) - .Post("/path-only", - [&](const Request &req, Response &res) { - EXPECT_EQ(req.body, ""); - EXPECT_EQ("", req.get_header_value("Content-Type")); - EXPECT_EQ("0", req.get_header_value("Content-Length")); - res.set_content("path-only", "text/plain"); - }) - .Post("/path-headers-only", - [&](const Request &req, Response &res) { - EXPECT_EQ(req.body, ""); - EXPECT_EQ("", req.get_header_value("Content-Type")); - EXPECT_EQ("0", req.get_header_value("Content-Length")); - EXPECT_EQ("world", req.get_header_value("hello")); - EXPECT_EQ("world2", req.get_header_value("hello2")); - res.set_content("path-headers-only", "text/plain"); - }) - .Post("/post-large", - [&](const Request &req, Response &res) { - EXPECT_EQ(req.body, LARGE_DATA); - res.set_content(req.body, "text/plain"); - }) - .Put("/empty-no-content-type", - [&](const Request &req, Response &res) { - EXPECT_EQ(req.body, ""); - EXPECT_FALSE(req.has_header("Content-Type")); - EXPECT_EQ("0", req.get_header_value("Content-Length")); - res.set_content("empty-no-content-type", "text/plain"); - }) - .Put("/put", - [&](const Request &req, Response &res) { - EXPECT_EQ(req.body, "PUT"); - res.set_content(req.body, "text/plain"); - }) - .Put("/put-large", - [&](const Request &req, Response &res) { - EXPECT_EQ(req.body, LARGE_DATA); - res.set_content(req.body, "text/plain"); - }) - .Patch("/patch", - [&](const Request &req, Response &res) { - EXPECT_EQ(req.body, "PATCH"); - res.set_content(req.body, "text/plain"); - }) - .Delete("/delete", - [&](const Request & /*req*/, Response &res) { - res.set_content("DELETE", "text/plain"); - }) - .Delete("/delete-body", - [&](const Request &req, Response &res) { - EXPECT_EQ(req.body, "content"); - res.set_content(req.body, "text/plain"); - }) - .Options(R"(\*)", - [&](const Request & /*req*/, Response &res) { - res.set_header("Allow", "GET, POST, HEAD, OPTIONS"); - }) - .Get("/request-target", - [&](const Request &req, Response & /*res*/) { - EXPECT_EQ("/request-target?aaa=bbb&ccc=ddd", req.target); - EXPECT_EQ("bbb", req.get_param_value("aaa")); - EXPECT_EQ("ddd", req.get_param_value("ccc")); - }) - .Get("/long-query-value", - [&](const Request &req, Response & /*res*/) { - EXPECT_EQ(LONG_QUERY_URL, req.target); - EXPECT_EQ(LONG_QUERY_VALUE, req.get_param_value("key")); - }) - .Get("/too-long-query-value", - [&](const Request &req, Response & /*res*/) { - EXPECT_EQ(TOO_LONG_QUERY_URL, req.target); - EXPECT_EQ(TOO_LONG_QUERY_VALUE, req.get_param_value("key")); - }) - .Get("/array-param", - [&](const Request &req, Response & /*res*/) { - EXPECT_EQ(3u, req.get_param_value_count("array")); - EXPECT_EQ("value1", req.get_param_value("array", 0)); - EXPECT_EQ("value2", req.get_param_value("array", 1)); - EXPECT_EQ("value3", req.get_param_value("array", 2)); - }) - .Post("/validate-no-multiple-headers", - [&](const Request &req, Response & /*res*/) { - EXPECT_EQ(1u, req.get_header_value_count("Content-Length")); - EXPECT_EQ("5", req.get_header_value("Content-Length")); - }) - .Post("/content_receiver", - [&](const Request &req, Response &res, - const ContentReader &content_reader) { - if (req.is_multipart_form_data()) { - std::vector items; - content_reader( - [&](const FormData &file) { - items.push_back(file); - return true; - }, - [&](const char *data, size_t data_length) { - items.back().content.append(data, data_length); - return true; - }); - - EXPECT_EQ(5u, items.size()); - - { - const auto &file = get_file_value(items, "text1"); - EXPECT_TRUE(file.filename.empty()); - EXPECT_EQ("text default", file.content); - } - - { - const auto &file = get_file_value(items, "text2"); - EXPECT_TRUE(file.filename.empty()); - EXPECT_EQ("aωb", file.content); - } - - { - const auto &file = get_file_value(items, "file1"); - EXPECT_EQ("hello.txt", file.filename); - EXPECT_EQ("text/plain", file.content_type); - EXPECT_EQ("h\ne\n\nl\nl\no\n", file.content); - } - - { - const auto &file = get_file_value(items, "file2"); - EXPECT_EQ("world.json", file.filename); - EXPECT_EQ("application/json", file.content_type); - EXPECT_EQ(R"({\n "world": true\n}\n)", file.content); - } - - { - const auto &file = get_file_value(items, "file3"); - EXPECT_TRUE(file.filename.empty()); - EXPECT_EQ("application/octet-stream", file.content_type); - EXPECT_EQ(0u, file.content.size()); - } - } else { - std::string body; - content_reader([&](const char *data, size_t data_length) { - EXPECT_EQ(7U, data_length); - body.append(data, data_length); - return true; - }); - EXPECT_EQ(body, "content"); - res.set_content(body, "text/plain"); - } - }) - .Put("/content_receiver", - [&](const Request & /*req*/, Response &res, - const ContentReader &content_reader) { - std::string body; - content_reader([&](const char *data, size_t data_length) { - body.append(data, data_length); - return true; - }); - EXPECT_EQ(body, "content"); - res.set_content(body, "text/plain"); - }) - .Patch("/content_receiver", - [&](const Request & /*req*/, Response &res, - const ContentReader &content_reader) { - std::string body; - content_reader([&](const char *data, size_t data_length) { - body.append(data, data_length); - return true; - }); - EXPECT_EQ(body, "content"); - res.set_content(body, "text/plain"); - }) - .Post("/query-string-and-body", - [&](const Request &req, Response & /*res*/) { - ASSERT_TRUE(req.has_param("key")); - EXPECT_EQ(req.get_param_value("key"), "value"); - EXPECT_EQ(req.body, "content"); - }) - .Get("/last-request", - [&](const Request &req, Response & /*res*/) { - EXPECT_EQ("close", req.get_header_value("Connection")); - }) - .Get(R"(/redirect/(\d+))", - [&](const Request &req, Response &res) { - auto num = std::stoi(req.matches[1]) + 1; - std::string url = "/redirect/" + std::to_string(num); - res.set_redirect(url); - }) - .Post("/binary", - [&](const Request &req, Response &res) { - EXPECT_EQ(4U, req.body.size()); - EXPECT_EQ("application/octet-stream", - req.get_header_value("Content-Type")); - EXPECT_EQ("4", req.get_header_value("Content-Length")); - res.set_content(req.body, "application/octet-stream"); - }) - .Put("/binary", - [&](const Request &req, Response &res) { - EXPECT_EQ(4U, req.body.size()); - EXPECT_EQ("application/octet-stream", - req.get_header_value("Content-Type")); - EXPECT_EQ("4", req.get_header_value("Content-Length")); - res.set_content(req.body, "application/octet-stream"); - }) - .Patch("/binary", - [&](const Request &req, Response &res) { - EXPECT_EQ(4U, req.body.size()); - EXPECT_EQ("application/octet-stream", - req.get_header_value("Content-Type")); - EXPECT_EQ("4", req.get_header_value("Content-Length")); - res.set_content(req.body, "application/octet-stream"); - }) - .Delete("/binary", - [&](const Request &req, Response &res) { - EXPECT_EQ(4U, req.body.size()); - EXPECT_EQ("application/octet-stream", - req.get_header_value("Content-Type")); - EXPECT_EQ("4", req.get_header_value("Content-Length")); - res.set_content(req.body, "application/octet-stream"); - }) - .Get("/issue1772", - [&](const Request & /*req*/, Response &res) { - res.status = 401; - res.set_header("WWW-Authenticate", "Basic realm=123456"); - }) - .Delete("/issue609", - [](const httplib::Request &, httplib::Response &res, - const httplib::ContentReader &) { - res.set_content("ok", "text/plain"); - }) -#if defined(CPPHTTPLIB_ZLIB_SUPPORT) || defined(CPPHTTPLIB_BROTLI_SUPPORT) || \ - defined(CPPHTTPLIB_ZSTD_SUPPORT) - .Get("/compress", - [&](const Request & /*req*/, Response &res) { - res.set_content( - "12345678901234567890123456789012345678901234567890123456789" - "01234567890123456789012345678901234567890", - "text/plain"); - }) - .Get("/nocompress", - [&](const Request & /*req*/, Response &res) { - res.set_content( - "12345678901234567890123456789012345678901234567890123456789" - "01234567890123456789012345678901234567890", - "application/octet-stream"); - }) - .Post("/compress-multipart", - [&](const Request &req, Response & /*res*/) { - EXPECT_EQ(2u, req.form.fields.size()); - ASSERT_TRUE(!req.form.has_field("???")); - - { - const auto &text = req.form.get_field("key1"); - EXPECT_EQ("test", text); - } - - { - const auto &text = req.form.get_field("key2"); - EXPECT_EQ("--abcdefg123", text); - } - }) -#endif - ; - - persons_["john"] = "programmer"; - - t_ = thread([&]() { ASSERT_TRUE(svr_.listen(HOST, PORT)); }); - - svr_.wait_until_ready(); - } - - virtual void TearDown() { - svr_.stop(); - if (!request_threads_.empty()) { - std::this_thread::sleep_for(std::chrono::seconds(1)); - for (auto &t : request_threads_) { - t.join(); - } - } - t_.join(); - } - - map persons_; -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLClient cli_; - SSLServer svr_; -#else - Client cli_; - Server svr_; -#endif - thread t_; - std::vector request_threads_; -}; - -TEST_F(ServerTest, GetMethod200) { - auto res = cli_.Get("/hi"); - ASSERT_TRUE(res); - EXPECT_EQ("HTTP/1.1", res->version); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("OK", res->reason); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ(1U, res->get_header_value_count("Content-Type")); - EXPECT_EQ("Hello World!", res->body); -} - -void performance_test(const char *host) { - auto port = 1234; - - Server svr; - - svr.Get("/benchmark", [&](const Request & /*req*/, Response &res) { - res.set_content("Benchmark Response", "text/plain"); - }); - - auto listen_thread = std::thread([&]() { svr.listen(host, port); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(host, port); - - auto start = std::chrono::high_resolution_clock::now(); - - auto res = cli.Get("/benchmark"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - - auto end = std::chrono::high_resolution_clock::now(); - - auto elapsed = - std::chrono::duration_cast(end - start) - .count(); - - EXPECT_LE(elapsed, 5) << "Performance is too slow: " << elapsed - << "ms (Issue #1777)"; -} - -TEST(BenchmarkTest, localhost) { performance_test("localhost"); } - -TEST(BenchmarkTest, v6) { performance_test("::1"); } - -TEST_F(ServerTest, GetEmptyFile) { - auto res = cli_.Get("/empty_file"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("application/octet-stream", res->get_header_value("Content-Type")); - EXPECT_EQ(0, std::stoi(res->get_header_value("Content-Length"))); - EXPECT_EQ("", res->body); -} - -TEST_F(ServerTest, GetFileContent) { - auto res = cli_.Get("/file_content"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/html", res->get_header_value("Content-Type")); - EXPECT_EQ(9, std::stoi(res->get_header_value("Content-Length"))); - EXPECT_EQ("test.html", res->body); -} - -TEST_F(ServerTest, GetFileContentWithRange) { - auto res = cli_.Get("/file_content", {{make_range_header({{1, 3}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ("text/html", res->get_header_value("Content-Type")); - EXPECT_EQ("bytes 1-3/9", res->get_header_value("Content-Range")); - EXPECT_EQ(3, std::stoi(res->get_header_value("Content-Length"))); - EXPECT_EQ("est", res->body); -} - -TEST_F(ServerTest, GetFileContentWithContentType) { - auto res = cli_.Get("/file_content_with_content_type"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ(5, std::stoi(res->get_header_value("Content-Length"))); - EXPECT_EQ("file\n", res->body); -} - -TEST_F(ServerTest, GetInvalidFileContent) { - auto res = cli_.Get("/invalid_file_content"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST_F(ServerTest, GetMethod200withPercentEncoding) { - auto res = cli_.Get("/%68%69"); // auto res = cli_.Get("/hi"); - ASSERT_TRUE(res); - EXPECT_EQ("HTTP/1.1", res->version); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ(1U, res->get_header_value_count("Content-Type")); - EXPECT_EQ("Hello World!", res->body); -} - -TEST_F(ServerTest, GetMethod302) { - auto res = cli_.Get("/"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::Found_302, res->status); - EXPECT_EQ("/hi", res->get_header_value("Location")); -} - -TEST_F(ServerTest, GetMethod302Redirect) { - cli_.set_follow_location(true); - auto res = cli_.Get("/"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("Hello World!", res->body); - EXPECT_EQ("/hi", res->location); -} - -TEST_F(ServerTest, GetMethod404) { - auto res = cli_.Get("/invalid"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST_F(ServerTest, HeadMethod200) { - auto res = cli_.Head("/hi"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_TRUE(res->body.empty()); -} - -TEST_F(ServerTest, HeadMethod200Static) { - auto res = cli_.Head("/mount/dir/index.html"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/html", res->get_header_value("Content-Type")); - EXPECT_EQ(104, std::stoi(res->get_header_value("Content-Length"))); - EXPECT_TRUE(res->body.empty()); -} - -TEST_F(ServerTest, HeadMethod404) { - auto res = cli_.Head("/invalid"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); - EXPECT_TRUE(res->body.empty()); -} - -TEST_F(ServerTest, GetMethodPersonJohn) { - auto res = cli_.Get("/person/john"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("programmer", res->body); -} - -TEST_F(ServerTest, PostMethod1) { - auto res = cli_.Get("/person/john1"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::NotFound_404, res->status); - - res = cli_.Post("/person", "name=john1¬e=coder", - "application/x-www-form-urlencoded"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - - res = cli_.Get("/person/john1"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ("text/plain", res->get_header_value("Content-Type")); - ASSERT_EQ("coder", res->body); -} - -TEST_F(ServerTest, PostMethod2) { - auto res = cli_.Get("/person/john2"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::NotFound_404, res->status); - - Params params; - params.emplace("name", "john2"); - params.emplace("note", "coder"); - - res = cli_.Post("/person", params); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - - res = cli_.Get("/person/john2"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ("text/plain", res->get_header_value("Content-Type")); - ASSERT_EQ("coder", res->body); -} - -TEST_F(ServerTest, PutMethod3) { - auto res = cli_.Get("/person/john3"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::NotFound_404, res->status); - - Params params; - params.emplace("name", "john3"); - params.emplace("note", "coder"); - - res = cli_.Put("/person", params); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - - res = cli_.Get("/person/john3"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ("text/plain", res->get_header_value("Content-Type")); - ASSERT_EQ("coder", res->body); -} - -TEST_F(ServerTest, DeleteMethod1) { - auto res = cli_.Get("/person/john4"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::NotFound_404, res->status); - - Params params; - params.emplace("name", "john4"); - params.emplace("note", "coder"); - - res = cli_.Post("/person", params); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - - res = cli_.Get("/person/john4"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ("text/plain", res->get_header_value("Content-Type")); - ASSERT_EQ("coder", res->body); - - Params delete_params; - delete_params.emplace("name", "john4"); - - res = cli_.Delete("/person", delete_params); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ("DELETED", res->body); - - res = cli_.Get("/person/john4"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST_F(ServerTest, DeleteMethod2) { - auto res = cli_.Get("/person/john5"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::NotFound_404, res->status); - - Params params; - params.emplace("name", "john5"); - params.emplace("note", "developer"); - - res = cli_.Post("/person", params); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - - res = cli_.Get("/person/john5"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ("text/plain", res->get_header_value("Content-Type")); - ASSERT_EQ("developer", res->body); - - Params delete_params; - delete_params.emplace("name", "john5"); - - Headers headers; - headers.emplace("Custom-Header", "test-value"); - - res = cli_.Delete("/person", headers, delete_params); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ("DELETED", res->body); - - res = cli_.Get("/person/john5"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST_F(ServerTest, DeleteMethod3) { - auto res = cli_.Get("/person/john6"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::NotFound_404, res->status); - - Params params; - params.emplace("name", "john6"); - params.emplace("note", "tester"); - - res = cli_.Post("/person", params); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - - res = cli_.Get("/person/john6"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ("text/plain", res->get_header_value("Content-Type")); - ASSERT_EQ("tester", res->body); - - Params delete_params; - delete_params.emplace("name", "john6"); - - Headers headers; - headers.emplace("Custom-Header", "test-value"); - - res = cli_.Delete("/person", headers, delete_params, nullptr); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ("DELETED", res->body); - - res = cli_.Get("/person/john6"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST_F(ServerTest, PostWwwFormUrlEncodedJson) { - Params params; - params.emplace("json", JSON_DATA); - - auto res = cli_.Post("/x-www-form-urlencoded-json", params); - - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ(JSON_DATA, res->body); -} - -TEST_F(ServerTest, PostEmptyContent) { - auto res = cli_.Post("/empty", "", "text/plain"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ("empty", res->body); -} - -TEST_F(ServerTest, PostEmptyContentWithNoContentType) { - auto res = cli_.Post("/empty-no-content-type"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ("empty-no-content-type", res->body); -} - -TEST_F(ServerTest, PostPathOnly) { - auto res = cli_.Post("/path-only"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ("path-only", res->body); -} - -TEST_F(ServerTest, PostPathAndHeadersOnly) { - auto res = cli_.Post("/path-headers-only", - Headers({{"hello", "world"}, {"hello2", "world2"}})); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ("path-headers-only", res->body); -} - -TEST_F(ServerTest, PostLarge) { - auto res = cli_.Post("/post-large", LARGE_DATA, "text/plain"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(LARGE_DATA, res->body); -} - -TEST_F(ServerTest, PutEmptyContentWithNoContentType) { - auto res = cli_.Put("/empty-no-content-type"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ("empty-no-content-type", res->body); -} - -TEST_F(ServerTest, GetMethodDir) { - auto res = cli_.Get("/dir/"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/html", res->get_header_value("Content-Type")); - - auto body = R"( - - - - Test - hi - - -)"; - EXPECT_EQ(body, res->body); -} - -TEST_F(ServerTest, GetMethodDirTest) { - auto res = cli_.Get("/dir/test.html"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/html", res->get_header_value("Content-Type")); - EXPECT_EQ("test.html", res->body); -} - -TEST_F(ServerTest, GetMethodDirTestWithDoubleDots) { - auto res = cli_.Get("/dir/../dir/test.html"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/html", res->get_header_value("Content-Type")); - EXPECT_EQ("test.html", res->body); -} - -TEST_F(ServerTest, GetMethodInvalidPath) { - auto res = cli_.Get("/dir/../test.html"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST_F(ServerTest, GetMethodOutOfBaseDir) { - auto res = cli_.Get("/../www/dir/test.html"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST_F(ServerTest, GetMethodOutOfBaseDir2) { - auto res = cli_.Get("/dir/../../www/dir/test.html"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST_F(ServerTest, GetMethodDirMountTest) { - auto res = cli_.Get("/mount/dir/test.html"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/html", res->get_header_value("Content-Type")); - EXPECT_EQ("test.html", res->body); -} - -TEST_F(ServerTest, GetMethodDirMountTestWithDoubleDots) { - auto res = cli_.Get("/mount/dir/../dir/test.html"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/html", res->get_header_value("Content-Type")); - EXPECT_EQ("test.html", res->body); -} - -TEST_F(ServerTest, GetMethodInvalidMountPath) { - auto res = cli_.Get("/mount/dir/../test.html"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST_F(ServerTest, GetMethodEmbeddedNUL) { - auto res = cli_.Get("/mount/dir/test.html%00.js"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST_F(ServerTest, GetMethodOutOfBaseDirMount) { - auto res = cli_.Get("/mount/../www2/dir/test.html"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST_F(ServerTest, GetMethodOutOfBaseDirMount2) { - auto res = cli_.Get("/mount/dir/../../www2/dir/test.html"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST_F(ServerTest, GetMethodOutOfBaseDirMountWithBackslash) { - auto res = cli_.Get("/mount/%2e%2e%5c/www2/dir/test.html"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST_F(ServerTest, PostMethod303) { - auto res = cli_.Post("/1", "body", "text/plain"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::SeeOther_303, res->status); - EXPECT_EQ("/2", res->get_header_value("Location")); -} - -TEST_F(ServerTest, PostMethod303Redirect) { - cli_.set_follow_location(true); - auto res = cli_.Post("/1", "body", "text/plain"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("redirected.", res->body); - EXPECT_EQ("/2", res->location); -} - -TEST_F(ServerTest, UserDefinedMIMETypeMapping) { - auto res = cli_.Get("/dir/test.abcde"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/abcde", res->get_header_value("Content-Type")); - EXPECT_EQ("abcde", res->body); -} - -TEST_F(ServerTest, StaticFileRange) { - auto res = cli_.Get("/dir/test.abcde", {{make_range_header({{2, 3}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ("text/abcde", res->get_header_value("Content-Type")); - EXPECT_EQ("2", res->get_header_value("Content-Length")); - EXPECT_EQ(true, res->has_header("Content-Range")); - EXPECT_EQ("bytes 2-3/5", res->get_header_value("Content-Range")); - EXPECT_EQ(std::string("cd"), res->body); -} - -TEST_F(ServerTest, StaticFileRanges) { - auto res = - cli_.Get("/dir/test.abcde", {{make_range_header({{1, 2}, {4, -1}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_TRUE( - res->get_header_value("Content-Type") - .find( - "multipart/byteranges; boundary=--cpp-httplib-multipart-data-") == - 0); - EXPECT_EQ("266", res->get_header_value("Content-Length")); -} - -TEST_F(ServerTest, StaticFileRangeHead) { - auto res = cli_.Head("/dir/test.abcde", {{make_range_header({{2, 3}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ("text/abcde", res->get_header_value("Content-Type")); - EXPECT_EQ("2", res->get_header_value("Content-Length")); - EXPECT_EQ(true, res->has_header("Content-Range")); - EXPECT_EQ("bytes 2-3/5", res->get_header_value("Content-Range")); -} - -TEST_F(ServerTest, StaticFileRangeBigFile) { - auto res = cli_.Get("/dir/1MB.txt", {{make_range_header({{-1, 5}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("5", res->get_header_value("Content-Length")); - EXPECT_EQ(true, res->has_header("Content-Range")); - EXPECT_EQ("bytes 1048571-1048575/1048576", - res->get_header_value("Content-Range")); - EXPECT_EQ("LAST\n", res->body); -} - -TEST_F(ServerTest, StaticFileRangeBigFile2) { - auto res = cli_.Get("/dir/1MB.txt", {{make_range_header({{1, 4097}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("4097", res->get_header_value("Content-Length")); - EXPECT_EQ(true, res->has_header("Content-Range")); - EXPECT_EQ("bytes 1-4097/1048576", res->get_header_value("Content-Range")); -} - -TEST_F(ServerTest, StaticFileBigFile) { - auto res = cli_.Get("/dir/1MB.txt"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("1048576", res->get_header_value("Content-Length")); -} - -TEST_F(ServerTest, InvalidBaseDirMount) { - EXPECT_EQ(false, svr_.set_mount_point("invalid_mount_point", "./www3")); -} - -TEST_F(ServerTest, Binary) { - std::vector binary{0x00, 0x01, 0x02, 0x03}; - - auto res = cli_.Post("/binary", binary.data(), binary.size(), - "application/octet-stream"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ(4U, res->body.size()); - - res = cli_.Put("/binary", binary.data(), binary.size(), - "application/octet-stream"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ(4U, res->body.size()); - - res = cli_.Patch("/binary", binary.data(), binary.size(), - "application/octet-stream"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ(4U, res->body.size()); - - res = cli_.Delete("/binary", binary.data(), binary.size(), - "application/octet-stream"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ(4U, res->body.size()); -} - -TEST_F(ServerTest, BinaryString) { - auto binary = std::string("\x00\x01\x02\x03", 4); - - auto res = cli_.Post("/binary", binary, "application/octet-stream"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ(4U, res->body.size()); - - res = cli_.Put("/binary", binary, "application/octet-stream"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ(4U, res->body.size()); - - res = cli_.Patch("/binary", binary, "application/octet-stream"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ(4U, res->body.size()); - - res = cli_.Delete("/binary", binary, "application/octet-stream"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ(4U, res->body.size()); -} - -TEST_F(ServerTest, EmptyRequest) { - auto res = cli_.Get(""); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Connection, res.error()); -} - -TEST_F(ServerTest, LongRequest) { - std::string request; - for (size_t i = 0; i < 545; i++) { - request += "/TooLongRequest"; - } - request += "OK"; - - auto res = cli_.Get(request.c_str()); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST_F(ServerTest, TooLongRequest) { - std::string request; - for (size_t i = 0; i < 546; i++) { - request += "/TooLongRequest"; - } - request += "_NG"; - - auto res = cli_.Get(request.c_str()); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::UriTooLong_414, res->status); -} - -TEST_F(ServerTest, AlmostTooLongRequest) { - // test for #2046 - URI length check shouldn't include other content on req - // line URI is max URI length, minus 14 other chars in req line (GET, space, - // leading /, space, HTTP/1.1) - std::string request = - "/" + string(CPPHTTPLIB_REQUEST_URI_MAX_LENGTH - 14, 'A'); - - auto res = cli_.Get(request.c_str()); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST_F(ServerTest, LongHeader) { - Request req; - req.method = "GET"; - req.path = "/hi"; - - std::string host_and_port; - host_and_port += HOST; - host_and_port += ":"; - host_and_port += std::to_string(PORT); - - req.headers.emplace("Host", host_and_port.c_str()); - req.headers.emplace("Accept", "*/*"); - req.headers.emplace("User-Agent", "cpp-httplib/0.1"); - - req.headers.emplace( - "Header-Name", - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@"); - - auto res = std::make_shared(); - auto error = Error::Success; - auto ret = cli_.send(req, *res, error); - - ASSERT_TRUE(ret); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, LongQueryValue) { - auto res = cli_.Get(LONG_QUERY_URL.c_str()); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::UriTooLong_414, res->status); -} - -TEST_F(ServerTest, TooLongQueryValue) { - auto res = cli_.Get(TOO_LONG_QUERY_URL.c_str()); - - ASSERT_FALSE(res); - EXPECT_EQ(Error::Read, res.error()); -} - -TEST_F(ServerTest, TooLongHeader) { - Request req; - req.method = "GET"; - req.path = "/hi"; - - std::string host_and_port; - host_and_port += HOST; - host_and_port += ":"; - host_and_port += std::to_string(PORT); - - req.headers.emplace("Host", host_and_port.c_str()); - req.headers.emplace("Accept", "*/*"); - req.headers.emplace("User-Agent", "cpp-httplib/0.1"); - - req.headers.emplace( - "Header-Name", - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" - "@@@@@@@@@@@@@@@@@"); - - auto res = std::make_shared(); - auto error = Error::Success; - auto ret = cli_.send(req, *res, error); - - ASSERT_TRUE(ret); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, HeaderCountAtLimit) { - // Test with headers just under the 100 limit - httplib::Headers headers; - - // Add 95 custom headers (the client will add Host, User-Agent, Accept, etc.) - // This should keep us just under the 100 header limit - for (int i = 0; i < 95; i++) { - std::string name = "X-Test-Header-" + std::to_string(i); - std::string value = "value" + std::to_string(i); - headers.emplace(name, value); - } - - // This should work fine as we're under the limit - auto res = cli_.Get("/hi", headers); - EXPECT_TRUE(res); - if (res) { EXPECT_EQ(StatusCode::OK_200, res->status); } -} - -TEST_F(ServerTest, HeaderCountExceedsLimit) { - // Test with many headers to exceed the 100 limit - httplib::Headers headers; - - // Add 150 headers to definitely exceed the 100 limit - for (int i = 0; i < 150; i++) { - std::string name = "X-Test-Header-" + std::to_string(i); - std::string value = "value" + std::to_string(i); - headers.emplace(name, value); - } - - // This should fail due to exceeding header count limit - auto res = cli_.Get("/hi", headers); - - // The request should either fail or return 400 Bad Request - if (res) { - // If we get a response, it should be 400 Bad Request - EXPECT_EQ(StatusCode::BadRequest_400, res->status); - } else { - // Or the request should fail entirely - EXPECT_FALSE(res); - } -} - -TEST_F(ServerTest, PercentEncoding) { - auto res = cli_.Get("/e%6edwith%"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, PercentEncodingUnicode) { - auto res = cli_.Get("/e%u006edwith%"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, InvalidPercentEncoding) { - auto res = cli_.Get("/%endwith%"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST_F(ServerTest, InvalidPercentEncodingUnicode) { - auto res = cli_.Get("/%uendwith%"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST_F(ServerTest, EndWithPercentCharacterInQuery) { - auto res = cli_.Get("/hello?aaa=bbb%"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST_F(ServerTest, PlusSignEncoding) { - auto res = cli_.Get("/a+%2Bb?a %2bb=a %2Bb"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("a +b", res->body); -} - -TEST_F(ServerTest, HeaderCountSecurityTest) { - // This test simulates a potential DoS attack using many headers - // to verify our security fix prevents memory exhaustion - - httplib::Headers attack_headers; - - // Attempt to add many headers like an attacker would (200 headers to far - // exceed limit) - for (int i = 0; i < 200; i++) { - std::string name = "X-Attack-Header-" + std::to_string(i); - std::string value = "attack_payload_" + std::to_string(i); - attack_headers.emplace(name, value); - } - - // Try to POST with excessive headers - auto res = cli_.Post("/", attack_headers, "test_data", "text/plain"); - - // Should either fail or return 400 Bad Request due to security limit - if (res) { - // If we get a response, it should be 400 Bad Request - EXPECT_EQ(StatusCode::BadRequest_400, res->status); - } else { - // Request failed, which is the expected behavior for DoS protection - EXPECT_FALSE(res); - } -} - -TEST_F(ServerTest, MultipartFormData) { - UploadFormDataItems items = { - {"text1", "text default", "", ""}, - {"text2", "aωb", "", ""}, - {"file1", "h\ne\n\nl\nl\no\n", "hello.txt", "text/plain"}, - {"file2", "{\n \"world\", true\n}\n", "world.json", "application/json"}, - {"file3", "", "", "application/octet-stream"}, - {"file4", "", "", " application/json tmp-string "}}; - - auto res = cli_.Post("/multipart", items); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, MultipartFormDataMultiFileValues) { - UploadFormDataItems items = { - {"text", "default text", "", ""}, - - {"multi_text1", "aaaaa", "", ""}, - {"multi_text1", "bbbbb", "", ""}, - - {"multi_file1", "h\ne\n\nl\nl\no\n", "hello.txt", "text/plain"}, - {"multi_file1", "{\n \"world\", true\n}\n", "world.json", - "application/json"}, - }; - - auto res = cli_.Post("/multipart/multi_file_values", items); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, CaseInsensitiveHeaderName) { - auto res = cli_.Get("/hi"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/plain", res->get_header_value("content-type")); - EXPECT_EQ("Hello World!", res->body); -} - -TEST_F(ServerTest, CaseInsensitiveTransferEncoding) { - Request req; - req.method = "POST"; - req.path = "/chunked"; - - std::string host_and_port; - host_and_port += HOST; - host_and_port += ":"; - host_and_port += std::to_string(PORT); - - req.headers.emplace("Host", host_and_port.c_str()); - req.headers.emplace("Accept", "*/*"); - req.headers.emplace("User-Agent", "cpp-httplib/0.1"); - req.headers.emplace("Content-Type", "text/plain"); - req.headers.emplace("Content-Length", "0"); - req.headers.emplace( - "Transfer-Encoding", - "Chunked"); // Note, "Chunked" rather than typical "chunked". - - // Client does not chunk, so make a chunked body manually. - req.body = "4\r\ndech\r\nf\r\nunked post body\r\n0\r\n\r\n"; - - auto res = std::make_shared(); - auto error = Error::Success; - auto ret = cli_.send(req, *res, error); - - ASSERT_TRUE(ret); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, GetStreamed2) { - auto res = cli_.Get("/streamed", {{make_range_header({{2, 3}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ("2", res->get_header_value("Content-Length")); - EXPECT_EQ(true, res->has_header("Content-Range")); - EXPECT_EQ("bytes 2-3/6", res->get_header_value("Content-Range")); - EXPECT_EQ(std::string("ab"), res->body); -} - -TEST_F(ServerTest, GetStreamed) { - auto res = cli_.Get("/streamed"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("6", res->get_header_value("Content-Length")); - EXPECT_EQ(std::string("aaabbb"), res->body); -} - -TEST_F(ServerTest, GetStreamedWithRange1) { - auto res = cli_.Get("/streamed-with-range", {{make_range_header({{3, 5}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ("3", res->get_header_value("Content-Length")); - EXPECT_EQ(true, res->has_header("Content-Range")); - EXPECT_EQ("bytes 3-5/7", res->get_header_value("Content-Range")); - EXPECT_EQ(std::string("def"), res->body); -} - -TEST_F(ServerTest, GetStreamedWithRange2) { - auto res = cli_.Get("/streamed-with-range", {{make_range_header({{1, -1}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ("6", res->get_header_value("Content-Length")); - EXPECT_EQ(true, res->has_header("Content-Range")); - EXPECT_EQ("bytes 1-6/7", res->get_header_value("Content-Range")); - EXPECT_EQ(std::string("bcdefg"), res->body); -} - -TEST_F(ServerTest, GetStreamedWithRangeSuffix1) { - auto res = cli_.Get("/streamed-with-range", {{"Range", "bytes=-3"}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ("3", res->get_header_value("Content-Length")); - EXPECT_EQ(true, res->has_header("Content-Range")); - EXPECT_EQ("bytes 4-6/7", res->get_header_value("Content-Range")); - EXPECT_EQ(std::string("efg"), res->body); -} - -TEST_F(ServerTest, GetStreamedWithRangeSuffix2) { - auto res = cli_.Get("/streamed-with-range?error", {{"Range", "bytes=-9999"}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::RangeNotSatisfiable_416, res->status); - EXPECT_EQ("0", res->get_header_value("Content-Length")); - EXPECT_EQ(false, res->has_header("Content-Range")); - EXPECT_EQ(0U, res->body.size()); -} - -TEST_F(ServerTest, GetStreamedWithRangeError) { - auto res = cli_.Get("/streamed-with-range", - {{"Range", "bytes=92233720368547758079223372036854775806-" - "92233720368547758079223372036854775807"}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::RangeNotSatisfiable_416, res->status); - EXPECT_EQ("0", res->get_header_value("Content-Length")); - EXPECT_EQ(false, res->has_header("Content-Range")); - EXPECT_EQ(0U, res->body.size()); -} - -TEST_F(ServerTest, GetRangeWithMaxLongLength) { - auto res = cli_.Get( - "/with-range", - {{"Range", "bytes=0-" + std::to_string(std::numeric_limits::max())}, - {"Accept-Encoding", ""}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ("7", res->get_header_value("Content-Length")); - EXPECT_EQ(true, res->has_header("Content-Range")); - EXPECT_EQ("bytes 0-6/7", res->get_header_value("Content-Range")); - EXPECT_EQ(std::string("abcdefg"), res->body); -} - -TEST_F(ServerTest, GetRangeWithZeroToInfinite) { - auto res = cli_.Get("/with-range", { - {"Range", "bytes=0-"}, - {"Accept-Encoding", ""}, - }); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ("7", res->get_header_value("Content-Length")); - EXPECT_EQ(true, res->has_header("Content-Range")); - EXPECT_EQ("bytes 0-6/7", res->get_header_value("Content-Range")); - EXPECT_EQ(std::string("abcdefg"), res->body); -} - -TEST_F(ServerTest, GetStreamedWithRangeMultipart) { - auto res = - cli_.Get("/streamed-with-range", {{make_range_header({{1, 2}, {4, 5}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ("267", res->get_header_value("Content-Length")); - EXPECT_EQ(false, res->has_header("Content-Range")); - EXPECT_EQ(267U, res->body.size()); - - // Check that both range contents are present - EXPECT_TRUE(res->body.find("bc\r\n") != std::string::npos); - EXPECT_TRUE(res->body.find("ef\r\n") != std::string::npos); - - // Check that Content-Range headers are present for both ranges - EXPECT_TRUE(res->body.find("Content-Range: bytes 1-2/7") != - std::string::npos); - EXPECT_TRUE(res->body.find("Content-Range: bytes 4-5/7") != - std::string::npos); -} - -TEST_F(ServerTest, GetStreamedWithTooManyRanges) { - Ranges ranges; - for (size_t i = 0; i < CPPHTTPLIB_RANGE_MAX_COUNT + 1; i++) { - ranges.emplace_back(0, -1); - } - - auto res = - cli_.Get("/streamed-with-range?error", {{make_range_header(ranges)}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::RangeNotSatisfiable_416, res->status); - EXPECT_EQ("0", res->get_header_value("Content-Length")); - EXPECT_EQ(false, res->has_header("Content-Range")); - EXPECT_EQ(0U, res->body.size()); -} - -TEST_F(ServerTest, GetStreamedWithOverwrapping) { - auto res = - cli_.Get("/streamed-with-range", {{make_range_header({{1, 4}, {2, 5}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ(5U, res->body.size()); - - // Check that overlapping ranges are coalesced into a single range - EXPECT_EQ("bcdef", res->body); - EXPECT_EQ("bytes 1-5/7", res->get_header_value("Content-Range")); - - // Should be single range, not multipart - EXPECT_TRUE(res->has_header("Content-Range")); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); -} - -TEST_F(ServerTest, GetStreamedWithNonAscendingRanges) { - auto res = - cli_.Get("/streamed-with-range", {{make_range_header({{4, 5}, {0, 2}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ(268U, res->body.size()); - - // Check that both range contents are present - EXPECT_TRUE(res->body.find("ef\r\n") != std::string::npos); - EXPECT_TRUE(res->body.find("abc\r\n") != std::string::npos); - - // Check that Content-Range headers are present for both ranges - EXPECT_TRUE(res->body.find("Content-Range: bytes 4-5/7") != - std::string::npos); - EXPECT_TRUE(res->body.find("Content-Range: bytes 0-2/7") != - std::string::npos); -} - -TEST_F(ServerTest, GetStreamedWithDuplicateRanges) { - auto res = - cli_.Get("/streamed-with-range", {{make_range_header({{0, 2}, {0, 2}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ(269U, res->body.size()); - - // Check that both duplicate range contents are present - size_t first_abc = res->body.find("abc\r\n"); - EXPECT_TRUE(first_abc != std::string::npos); - size_t second_abc = res->body.find("abc\r\n", first_abc + 1); - EXPECT_TRUE(second_abc != std::string::npos); - - // Check that Content-Range headers are present for both ranges - size_t first_range = res->body.find("Content-Range: bytes 0-2/7"); - EXPECT_TRUE(first_range != std::string::npos); - size_t second_range = - res->body.find("Content-Range: bytes 0-2/7", first_range + 1); - EXPECT_TRUE(second_range != std::string::npos); -} - -TEST_F(ServerTest, GetStreamedWithRangesMoreThanTwoOverwrapping) { - auto res = cli_.Get("/streamed-with-range?error", - {{make_range_header({{0, 1}, {1, 2}, {2, 3}, {3, 4}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::RangeNotSatisfiable_416, res->status); - EXPECT_EQ("0", res->get_header_value("Content-Length")); - EXPECT_EQ(false, res->has_header("Content-Range")); - EXPECT_EQ(0U, res->body.size()); -} - -TEST_F(ServerTest, GetStreamedEndless) { - uint64_t offset = 0; - auto res = cli_.Get("/streamed-cancel", - [&](const char * /*data*/, uint64_t data_length) { - if (offset < 100) { - offset += data_length; - return true; - } - return false; - }); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Canceled, res.error()); -} - -TEST_F(ServerTest, ClientStop) { - std::atomic_size_t count{4}; - std::vector threads; - - for (auto i = count.load(); i != 0; --i) { - threads.emplace_back([&]() { - auto res = cli_.Get("/streamed-cancel", - [&](const char *, uint64_t) { return true; }); - - --count; - - ASSERT_TRUE(!res); - EXPECT_TRUE(res.error() == Error::Canceled || - res.error() == Error::Read || res.error() == Error::Write); - }); - } - - std::this_thread::sleep_for(std::chrono::seconds(2)); - while (count != 0) { - cli_.stop(); - std::this_thread::sleep_for(std::chrono::milliseconds(10)); - } - for (auto &t : threads) { - t.join(); - } -} - -TEST_F(ServerTest, GetWithRange1) { - auto res = cli_.Get("/with-range", { - make_range_header({{3, 5}}), - {"Accept-Encoding", ""}, - }); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ("3", res->get_header_value("Content-Length")); - EXPECT_EQ(true, res->has_header("Content-Range")); - EXPECT_EQ("bytes 3-5/7", res->get_header_value("Content-Range")); - EXPECT_EQ(std::string("def"), res->body); -} - -TEST_F(ServerTest, GetWithRange2) { - auto res = cli_.Get("/with-range", { - make_range_header({{1, -1}}), - {"Accept-Encoding", ""}, - }); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ("6", res->get_header_value("Content-Length")); - EXPECT_EQ(true, res->has_header("Content-Range")); - EXPECT_EQ("bytes 1-6/7", res->get_header_value("Content-Range")); - EXPECT_EQ(std::string("bcdefg"), res->body); -} - -TEST_F(ServerTest, GetWithRange3) { - auto res = cli_.Get("/with-range", { - make_range_header({{0, 0}}), - {"Accept-Encoding", ""}, - }); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ("1", res->get_header_value("Content-Length")); - EXPECT_EQ(true, res->has_header("Content-Range")); - EXPECT_EQ("bytes 0-0/7", res->get_header_value("Content-Range")); - EXPECT_EQ(std::string("a"), res->body); -} - -TEST_F(ServerTest, GetWithRange4) { - auto res = cli_.Get("/with-range", { - make_range_header({{-1, 2}}), - {"Accept-Encoding", ""}, - }); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ("2", res->get_header_value("Content-Length")); - EXPECT_EQ(true, res->has_header("Content-Range")); - EXPECT_EQ("bytes 5-6/7", res->get_header_value("Content-Range")); - EXPECT_EQ(std::string("fg"), res->body); -} - -TEST_F(ServerTest, GetWithRange5) { - auto res = cli_.Get("/with-range", { - make_range_header({{0, 5}}), - {"Accept-Encoding", ""}, - }); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ("6", res->get_header_value("Content-Length")); - EXPECT_EQ(true, res->has_header("Content-Range")); - EXPECT_EQ("bytes 0-5/7", res->get_header_value("Content-Range")); - EXPECT_EQ(std::string("abcdef"), res->body); -} - -TEST_F(ServerTest, GetWithRangeOffsetGreaterThanContent) { - auto res = cli_.Get("/with-range", {{make_range_header({{10000, 20000}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::RangeNotSatisfiable_416, res->status); -} - -TEST_F(ServerTest, GetWithRangeMultipart) { - auto res = cli_.Get("/with-range", {{make_range_header({{1, 2}, {4, 5}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - EXPECT_EQ("267", res->get_header_value("Content-Length")); - EXPECT_EQ(false, res->has_header("Content-Range")); - EXPECT_EQ(267U, res->body.size()); -} - -TEST_F(ServerTest, GetWithRangeMultipartOffsetGreaterThanContent) { - auto res = - cli_.Get("/with-range", {{make_range_header({{-1, 2}, {10000, 30000}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::RangeNotSatisfiable_416, res->status); -} - -TEST_F(ServerTest, GetWithRangeCustomizedResponse) { - auto res = cli_.Get("/with-range-customized-response", - {{make_range_header({{1, 2}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::BadRequest_400, res->status); - EXPECT_EQ(true, res->has_header("Content-Length")); - EXPECT_EQ(false, res->has_header("Content-Range")); - EXPECT_EQ(JSON_DATA, res->body); -} - -TEST_F(ServerTest, GetWithRangeMultipartCustomizedResponseMultipleRange) { - auto res = cli_.Get("/with-range-customized-response", - {{make_range_header({{1, 2}, {4, 5}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::BadRequest_400, res->status); - EXPECT_EQ(true, res->has_header("Content-Length")); - EXPECT_EQ(false, res->has_header("Content-Range")); - EXPECT_EQ(JSON_DATA, res->body); -} - -TEST_F(ServerTest, Issue1772) { - auto res = cli_.Get("/issue1772", {{make_range_header({{1000, -1}})}}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::Unauthorized_401, res->status); -} - -TEST_F(ServerTest, Issue609) { - auto res = cli_.Delete("/issue609"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(std::string("ok"), res->body); -} - -TEST_F(ServerTest, GetStreamedChunked) { - auto res = cli_.Get("/streamed-chunked"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(std::string("123456789"), res->body); -} - -TEST_F(ServerTest, GetStreamedChunked2) { - auto res = cli_.Get("/streamed-chunked2"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(std::string("123456789"), res->body); -} - -TEST_F(ServerTest, GetStreamedChunkedWithTrailer) { - auto res = cli_.Get("/streamed-chunked-with-trailer"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(std::string("123456789"), res->body); - - EXPECT_TRUE(res->has_header("Trailer")); - EXPECT_EQ(1U, res->get_header_value_count("Trailer")); - EXPECT_EQ(std::string("Dummy1, Dummy2"), res->get_header_value("Trailer")); - - // Trailers are now stored separately from headers (security fix) - EXPECT_EQ(2U, res->trailers.size()); - EXPECT_TRUE(res->has_trailer("Dummy1")); - EXPECT_TRUE(res->has_trailer("Dummy2")); - EXPECT_FALSE(res->has_trailer("Dummy3")); - EXPECT_EQ(std::string("DummyVal1"), res->get_trailer_value("Dummy1")); - EXPECT_EQ(std::string("DummyVal2"), res->get_trailer_value("Dummy2")); - - // Verify trailers are NOT in headers (security verification) - EXPECT_EQ(std::string(""), res->get_header_value("Dummy1")); - EXPECT_EQ(std::string(""), res->get_header_value("Dummy2")); -} - -TEST_F(ServerTest, LargeChunkedPost) { - Request req; - req.method = "POST"; - req.path = "/large-chunked"; - - std::string host_and_port; - host_and_port += HOST; - host_and_port += ":"; - host_and_port += std::to_string(PORT); - - req.headers.emplace("Host", host_and_port.c_str()); - req.headers.emplace("Accept", "*/*"); - req.headers.emplace("User-Agent", "cpp-httplib/0.1"); - req.headers.emplace("Content-Type", "text/plain"); - req.headers.emplace("Content-Length", "0"); - req.headers.emplace("Transfer-Encoding", "chunked"); - - std::string long_string(30 * 1024u, 'a'); - std::string chunk = "7800\r\n" + long_string + "\r\n"; - - // Attempt to make a large enough post to exceed OS buffers, to test that - // the server handles short reads if the full chunk data isn't available. - req.body = chunk + chunk + chunk + chunk + chunk + chunk + "0\r\n\r\n"; - - auto res = std::make_shared(); - auto error = Error::Success; - auto ret = cli_.send(req, *res, error); - - ASSERT_TRUE(ret); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, GetMethodRemoteAddr) { - auto res = cli_.Get("/remote_addr"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_TRUE(res->body == "::1" || res->body == "127.0.0.1"); -} - -TEST_F(ServerTest, GetMethodLocalAddr) { - auto res = cli_.Get("/local_addr"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_TRUE(res->body == std::string("::1:").append(to_string(PORT)) || - res->body == std::string("127.0.0.1:").append(to_string(PORT))); -} - -TEST_F(ServerTest, HTTPResponseSplitting) { - auto res = cli_.Get("/http_response_splitting"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, SlowRequest) { - request_threads_.emplace_back([this]() { auto res = cli_.Get("/slow"); }); - request_threads_.emplace_back([this]() { auto res = cli_.Get("/slow"); }); - request_threads_.emplace_back([this]() { auto res = cli_.Get("/slow"); }); -} - -#if 0 -TEST_F(ServerTest, SlowPost) { - char buffer[64 * 1024]; - memset(buffer, 0x42, sizeof(buffer)); - - auto res = cli_.Post( - "/slowpost", 64 * 1024 * 1024, - [&](size_t /*offset*/, size_t /*length*/, DataSink &sink) { - auto ret = sink.write(buffer, sizeof(buffer)); - EXPECT_TRUE(ret); - return true; - }, - "text/plain"); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, SlowPostFail) { - char buffer[64 * 1024]; - memset(buffer, 0x42, sizeof(buffer)); - - cli_.set_write_timeout(std::chrono::seconds(0)); - auto res = cli_.Post( - "/slowpost", 64 * 1024 * 1024, - [&](size_t /*offset*/, size_t /*length*/, DataSink &sink) { - sink.write(buffer, sizeof(buffer)); - return true; - }, - "text/plain"); - - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Write, res.error()); -} -#endif - -TEST_F(ServerTest, Put) { - auto res = cli_.Put("/put", "PUT", "text/plain"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("PUT", res->body); -} - -TEST_F(ServerTest, PutWithContentProvider) { - auto res = cli_.Put( - "/put", 3, - [](size_t /*offset*/, size_t /*length*/, DataSink &sink) { - sink.os << "PUT"; - return true; - }, - "text/plain"); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("PUT", res->body); -} - -TEST_F(ServerTest, PostWithContentProviderAbort) { - auto res = cli_.Post( - "/post", 42, - [](size_t /*offset*/, size_t /*length*/, DataSink & /*sink*/) { - return false; - }, - "text/plain"); - - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Canceled, res.error()); -} - -TEST_F(ServerTest, PutWithContentProviderWithoutLength) { - auto res = cli_.Put( - "/put", - [](size_t /*offset*/, DataSink &sink) { - sink.os << "PUT"; - sink.done(); - return true; - }, - "text/plain"); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("PUT", res->body); -} - -TEST_F(ServerTest, PostWithContentProviderWithoutLengthAbort) { - auto res = cli_.Post( - "/post", [](size_t /*offset*/, DataSink & /*sink*/) { return false; }, - "text/plain"); - - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Canceled, res.error()); -} - -#ifdef CPPHTTPLIB_ZLIB_SUPPORT -TEST_F(ServerTest, PutWithContentProviderWithGzip) { - cli_.set_compress(true); - auto res = cli_.Put( - "/put", 3, - [](size_t /*offset*/, size_t /*length*/, DataSink &sink) { - sink.os << "PUT"; - return true; - }, - "text/plain"); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("PUT", res->body); -} - -TEST_F(ServerTest, PostWithContentProviderWithGzipAbort) { - cli_.set_compress(true); - auto res = cli_.Post( - "/post", 42, - [](size_t /*offset*/, size_t /*length*/, DataSink & /*sink*/) { - return false; - }, - "text/plain"); - - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Canceled, res.error()); -} - -TEST_F(ServerTest, PutWithContentProviderWithoutLengthWithGzip) { - cli_.set_compress(true); - auto res = cli_.Put( - "/put", - [](size_t /*offset*/, DataSink &sink) { - sink.os << "PUT"; - sink.done(); - return true; - }, - "text/plain"); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("PUT", res->body); -} - -TEST_F(ServerTest, PostWithContentProviderWithoutLengthWithGzipAbort) { - cli_.set_compress(true); - auto res = cli_.Post( - "/post", [](size_t /*offset*/, DataSink & /*sink*/) { return false; }, - "text/plain"); - - ASSERT_TRUE(!res); - EXPECT_EQ(Error::Canceled, res.error()); -} - -TEST_F(ServerTest, PutLargeFileWithGzip) { - cli_.set_compress(true); - auto res = cli_.Put("/put-large", LARGE_DATA, "text/plain"); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(LARGE_DATA, res->body); -} - -TEST_F(ServerTest, PutLargeFileWithGzip2) { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - std::string s = std::string("https://") + HOST + ":" + std::to_string(PORT); - Client cli(s.c_str()); - cli.enable_server_certificate_verification(false); -#else - std::string s = std::string("http://") + HOST + ":" + std::to_string(PORT); - Client cli(s.c_str()); -#endif - cli.set_compress(true); - - auto res = cli.Put("/put-large", LARGE_DATA, "text/plain"); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(LARGE_DATA, res->body); - // The compressed size should be less than a 10th of the original. May vary - // depending on the zlib library. - EXPECT_LT(res.get_request_header_value_u64("Content-Length"), - static_cast(10 * 1024 * 1024)); - EXPECT_EQ("gzip", res.get_request_header_value("Content-Encoding")); -} - -TEST_F(ServerTest, PutContentWithDeflate) { - cli_.set_compress(false); - Headers headers; - headers.emplace("Content-Encoding", "deflate"); - // PUT in deflate format: - auto res = cli_.Put("/put", headers, - "\170\234\013\010\015\001\0\001\361\0\372", "text/plain"); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("PUT", res->body); -} - -TEST_F(ServerTest, GetStreamedChunkedWithGzip) { - Headers headers; - headers.emplace("Accept-Encoding", "gzip, deflate"); - - auto res = cli_.Get("/streamed-chunked", headers); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(std::string("123456789"), res->body); -} - -TEST_F(ServerTest, GetStreamedChunkedWithGzip2) { - Headers headers; - headers.emplace("Accept-Encoding", "gzip, deflate"); - - auto res = cli_.Get("/streamed-chunked2", headers); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(std::string("123456789"), res->body); -} - -TEST_F(ServerTest, SplitDelimiterInPathRegex) { - auto res = cli_.Get("/regex-with-delimiter?key=^(?.*(value))"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST(GzipDecompressor, ChunkedDecompression) { - std::string data; - for (size_t i = 0; i < 32 * 1024; ++i) { - data.push_back(static_cast('a' + i % 26)); - } - - std::string compressed_data; - { - httplib::detail::gzip_compressor compressor; - bool result = compressor.compress( - data.data(), data.size(), - /*last=*/true, - [&](const char *compressed_data_chunk, size_t compressed_data_size) { - compressed_data.insert(compressed_data.size(), compressed_data_chunk, - compressed_data_size); - return true; - }); - ASSERT_TRUE(result); - } - - std::string decompressed_data; - { - httplib::detail::gzip_decompressor decompressor; - - // Chunk size is chosen specifically to have a decompressed chunk size equal - // to 16384 bytes 16384 bytes is the size of decompressor output buffer - size_t chunk_size = 130; - for (size_t chunk_begin = 0; chunk_begin < compressed_data.size(); - chunk_begin += chunk_size) { - size_t current_chunk_size = - std::min(compressed_data.size() - chunk_begin, chunk_size); - bool result = decompressor.decompress( - compressed_data.data() + chunk_begin, current_chunk_size, - [&](const char *decompressed_data_chunk, - size_t decompressed_data_chunk_size) { - decompressed_data.insert(decompressed_data.size(), - decompressed_data_chunk, - decompressed_data_chunk_size); - return true; - }); - ASSERT_TRUE(result); - } - } - ASSERT_EQ(data, decompressed_data); -} - -TEST(GzipDecompressor, DeflateDecompression) { - std::string original_text = "Raw deflate without gzip"; - unsigned char data[32] = {0x78, 0x9C, 0x0B, 0x4A, 0x2C, 0x57, 0x48, 0x49, - 0x4D, 0xCB, 0x49, 0x2C, 0x49, 0x55, 0x28, 0xCF, - 0x2C, 0xC9, 0xC8, 0x2F, 0x2D, 0x51, 0x48, 0xAF, - 0xCA, 0x2C, 0x00, 0x00, 0x6F, 0x98, 0x09, 0x2E}; - std::string compressed_data(data, data + sizeof(data) / sizeof(data[0])); - - std::string decompressed_data; - { - httplib::detail::gzip_decompressor decompressor; - - bool result = decompressor.decompress( - compressed_data.data(), compressed_data.size(), - [&](const char *decompressed_data_chunk, - size_t decompressed_data_chunk_size) { - decompressed_data.insert(decompressed_data.size(), - decompressed_data_chunk, - decompressed_data_chunk_size); - return true; - }); - ASSERT_TRUE(result); - } - ASSERT_EQ(original_text, decompressed_data); -} - -TEST(GzipDecompressor, DeflateDecompressionTrailingBytes) { - std::string original_text = "Raw deflate without gzip"; - unsigned char data[40] = {0x78, 0x9C, 0x0B, 0x4A, 0x2C, 0x57, 0x48, 0x49, - 0x4D, 0xCB, 0x49, 0x2C, 0x49, 0x55, 0x28, 0xCF, - 0x2C, 0xC9, 0xC8, 0x2F, 0x2D, 0x51, 0x48, 0xAF, - 0xCA, 0x2C, 0x00, 0x00, 0x6F, 0x98, 0x09, 0x2E, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - std::string compressed_data(data, data + sizeof(data) / sizeof(data[0])); - - std::string decompressed_data; - { - httplib::detail::gzip_decompressor decompressor; - - bool result = decompressor.decompress( - compressed_data.data(), compressed_data.size(), - [&](const char *decompressed_data_chunk, - size_t decompressed_data_chunk_size) { - decompressed_data.insert(decompressed_data.size(), - decompressed_data_chunk, - decompressed_data_chunk_size); - return true; - }); - ASSERT_TRUE(result); - } - ASSERT_EQ(original_text, decompressed_data); -} - -#ifdef _WIN32 -TEST(GzipDecompressor, LargeRandomData) { - - // prepare large random data that is difficult to be compressed and is - // expected to have large size even when compressed - std::random_device seed_gen; - std::mt19937 random(seed_gen()); - constexpr auto large_size_byte = 4294967296UL; // 4GiB - constexpr auto data_size = large_size_byte + 134217728UL; // + 128MiB - std::vector data(data_size / sizeof(std::uint32_t)); - std::generate(data.begin(), data.end(), [&]() { return random(); }); - - // compress data over 4GiB - std::string compressed_data; - compressed_data.reserve(large_size_byte + 536870912UL); // + 512MiB reserved - httplib::detail::gzip_compressor compressor; - auto result = compressor.compress(reinterpret_cast(data.data()), - data.size() * sizeof(std::uint32_t), true, - [&](const char *data, size_t size) { - compressed_data.insert( - compressed_data.size(), data, size); - return true; - }); - ASSERT_TRUE(result); - - // FIXME: compressed data size is expected to be greater than 4GiB, - // but there is no guarantee - // ASSERT_TRUE(compressed_data.size() >= large_size_byte); - - // decompress data over 4GiB - std::string decompressed_data; - decompressed_data.reserve(data_size); - httplib::detail::gzip_decompressor decompressor; - result = decompressor.decompress( - compressed_data.data(), compressed_data.size(), - [&](const char *data, size_t size) { - decompressed_data.insert(decompressed_data.size(), data, size); - return true; - }); - ASSERT_TRUE(result); - - // compare - ASSERT_EQ(data_size, decompressed_data.size()); - ASSERT_TRUE(std::memcmp(data.data(), decompressed_data.data(), data_size) == - 0); -} -#endif -#endif - -#ifdef CPPHTTPLIB_BROTLI_SUPPORT -TEST_F(ServerTest, GetStreamedChunkedWithBrotli) { - Headers headers; - headers.emplace("Accept-Encoding", "br"); - - auto res = cli_.Get("/streamed-chunked", headers); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(std::string("123456789"), res->body); -} - -TEST_F(ServerTest, GetStreamedChunkedWithBrotli2) { - Headers headers; - headers.emplace("Accept-Encoding", "br"); - - auto res = cli_.Get("/streamed-chunked2", headers); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(std::string("123456789"), res->body); -} -#endif - -TEST_F(ServerTest, Patch) { - auto res = cli_.Patch("/patch", "PATCH", "text/plain"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("PATCH", res->body); -} - -TEST_F(ServerTest, Delete) { - auto res = cli_.Delete("/delete"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("DELETE", res->body); -} - -TEST_F(ServerTest, DeleteContentReceiver) { - auto res = cli_.Delete("/delete-body", "content", "text/plain"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("content", res->body); -} - -TEST_F(ServerTest, Options) { - auto res = cli_.Options("*"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("GET, POST, HEAD, OPTIONS", res->get_header_value("Allow")); - EXPECT_TRUE(res->body.empty()); -} - -TEST_F(ServerTest, URL) { - auto res = cli_.Get("/request-target?aaa=bbb&ccc=ddd"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, ArrayParam) { - auto res = cli_.Get("/array-param?array=value1&array=value2&array=value3"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, NoMultipleHeaders) { - Headers headers = {{"Content-Length", "5"}}; - auto res = cli_.Post("/validate-no-multiple-headers", headers, "hello", - "text/plain"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, PostContentReceiver) { - auto res = cli_.Post("/content_receiver", "content", "text/plain"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ("content", res->body); -} - -TEST_F(ServerTest, PostMultipartFileContentReceiver) { - UploadFormDataItems items = { - {"text1", "text default", "", ""}, - {"text2", "aωb", "", ""}, - {"file1", "h\ne\n\nl\nl\no\n", "hello.txt", "text/plain"}, - {"file2", R"({\n "world": true\n}\n)", "world.json", "application/json"}, - {"file3", "", "", "application/octet-stream"}, - }; - - auto res = cli_.Post("/content_receiver", items); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, PostMultipartPlusBoundary) { - UploadFormDataItems items = { - {"text1", "text default", "", ""}, - {"text2", "aωb", "", ""}, - {"file1", "h\ne\n\nl\nl\no\n", "hello.txt", "text/plain"}, - {"file2", R"({\n "world": true\n}\n)", "world.json", "application/json"}, - {"file3", "", "", "application/octet-stream"}, - }; - - auto boundary = std::string("+++++"); - - std::string body; - - for (const auto &item : items) { - body += "--" + boundary + "\r\n"; - body += "Content-Disposition: form-data; name=\"" + item.name + "\""; - if (!item.filename.empty()) { - body += "; filename=\"" + item.filename + "\""; - } - body += "\r\n"; - if (!item.content_type.empty()) { - body += "Content-Type: " + item.content_type + "\r\n"; - } - body += "\r\n"; - body += item.content + "\r\n"; - } - body += "--" + boundary + "--\r\n"; - - std::string content_type = "multipart/form-data; boundary=" + boundary; - auto res = cli_.Post("/content_receiver", body, content_type.c_str()); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, PostContentReceiverGzip) { - cli_.set_compress(true); - auto res = cli_.Post("/content_receiver", "content", "text/plain"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ("content", res->body); -} - -TEST_F(ServerTest, PutContentReceiver) { - auto res = cli_.Put("/content_receiver", "content", "text/plain"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ("content", res->body); -} - -TEST_F(ServerTest, PatchContentReceiver) { - auto res = cli_.Patch("/content_receiver", "content", "text/plain"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ("content", res->body); -} - -template -void TestWithHeadersAndContentReceiver( - ClientType &cli, - std::function - request_func) { - Headers headers; - headers.emplace("X-Custom-Header", "test-value"); - - std::string received_body; - auto res = request_func( - cli, "/content_receiver", headers, "content", "application/json", - [&](const char *data, size_t data_length) { - received_body.append(data, data_length); - return true; - }, - nullptr); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("content", received_body); -} - -TEST_F(ServerTest, PostWithHeadersAndContentReceiver) { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - using ClientT = SSLClient; -#else - using ClientT = Client; -#endif - TestWithHeadersAndContentReceiver( - cli_, [](ClientT &cli, const std::string &path, const Headers &headers, - const std::string &body, const std::string &content_type, - ContentReceiver receiver, DownloadProgress progress) { - return cli.Post(path, headers, body, content_type, receiver, progress); - }); -} - -TEST_F(ServerTest, PutWithHeadersAndContentReceiver) { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - using ClientT = SSLClient; -#else - using ClientT = Client; -#endif - TestWithHeadersAndContentReceiver( - cli_, [](ClientT &cli, const std::string &path, const Headers &headers, - const std::string &body, const std::string &content_type, - ContentReceiver receiver, DownloadProgress progress) { - return cli.Put(path, headers, body, content_type, receiver, progress); - }); -} - -TEST_F(ServerTest, PatchWithHeadersAndContentReceiver) { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - using ClientT = SSLClient; -#else - using ClientT = Client; -#endif - TestWithHeadersAndContentReceiver( - cli_, [](ClientT &cli, const std::string &path, const Headers &headers, - const std::string &body, const std::string &content_type, - ContentReceiver receiver, DownloadProgress progress) { - return cli.Patch(path, headers, body, content_type, receiver, progress); - }); -} - -template -void TestWithHeadersAndContentReceiverWithProgress( - ClientType &cli, - std::function - request_func) { - Headers headers; - headers.emplace("X-Test-Header", "progress-test"); - - std::string received_body; - auto progress_called = false; - - auto res = request_func( - cli, "/content_receiver", headers, "content", "text/plain", - [&](const char *data, size_t data_length) { - received_body.append(data, data_length); - return true; - }, - [&](uint64_t /*current*/, uint64_t /*total*/) { - progress_called = true; - return true; - }); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("content", received_body); - EXPECT_TRUE(progress_called); -} - -TEST_F(ServerTest, PostWithHeadersAndContentReceiverWithProgress) { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - using ClientT = SSLClient; -#else - using ClientT = Client; -#endif - TestWithHeadersAndContentReceiverWithProgress( - cli_, [](ClientT &cli, const std::string &path, const Headers &headers, - const std::string &body, const std::string &content_type, - ContentReceiver receiver, DownloadProgress progress) { - return cli.Post(path, headers, body, content_type, receiver, progress); - }); -} - -TEST_F(ServerTest, PutWithHeadersAndContentReceiverWithProgress) { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - using ClientT = SSLClient; -#else - using ClientT = Client; -#endif - TestWithHeadersAndContentReceiverWithProgress( - cli_, [](ClientT &cli, const std::string &path, const Headers &headers, - const std::string &body, const std::string &content_type, - ContentReceiver receiver, DownloadProgress progress) { - return cli.Put(path, headers, body, content_type, receiver, progress); - }); -} - -TEST_F(ServerTest, PatchWithHeadersAndContentReceiverWithProgress) { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - using ClientT = SSLClient; -#else - using ClientT = Client; -#endif - TestWithHeadersAndContentReceiverWithProgress( - cli_, [](ClientT &cli, const std::string &path, const Headers &headers, - const std::string &body, const std::string &content_type, - ContentReceiver receiver, DownloadProgress progress) { - return cli.Patch(path, headers, body, content_type, receiver, progress); - }); -} - -template -void TestWithHeadersAndContentReceiverError( - ClientType &cli, std::function - request_func) { - Headers headers; - headers.emplace("X-Error-Test", "true"); - - std::string received_body; - auto receiver_failed = false; - - auto res = - request_func(cli, "/content_receiver", headers, "content", "text/plain", - [&](const char *data, size_t data_length) { - received_body.append(data, data_length); - receiver_failed = true; - return false; - }); - - ASSERT_FALSE(res); - EXPECT_TRUE(receiver_failed); -} - -TEST_F(ServerTest, PostWithHeadersAndContentReceiverError) { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - using ClientT = SSLClient; -#else - using ClientT = Client; -#endif - TestWithHeadersAndContentReceiverError( - cli_, [](ClientT &cli, const std::string &path, const Headers &headers, - const std::string &body, const std::string &content_type, - ContentReceiver receiver) { - return cli.Post(path, headers, body, content_type, receiver); - }); -} - -TEST_F(ServerTest, PuttWithHeadersAndContentReceiverError) { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - using ClientT = SSLClient; -#else - using ClientT = Client; -#endif - TestWithHeadersAndContentReceiverError( - cli_, [](ClientT &cli, const std::string &path, const Headers &headers, - const std::string &body, const std::string &content_type, - ContentReceiver receiver) { - return cli.Put(path, headers, body, content_type, receiver); - }); -} - -TEST_F(ServerTest, PatchWithHeadersAndContentReceiverError) { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - using ClientT = SSLClient; -#else - using ClientT = Client; -#endif - TestWithHeadersAndContentReceiverError( - cli_, [](ClientT &cli, const std::string &path, const Headers &headers, - const std::string &body, const std::string &content_type, - ContentReceiver receiver) { - return cli.Patch(path, headers, body, content_type, receiver); - }); -} - -TEST_F(ServerTest, PostQueryStringAndBody) { - auto res = - cli_.Post("/query-string-and-body?key=value", "content", "text/plain"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, HTTP2Magic) { - Request req; - req.method = "PRI"; - req.path = "*"; - req.body = "SM"; - - auto res = std::make_shared(); - auto error = Error::Success; - auto ret = cli_.send(req, *res, error); - - ASSERT_TRUE(ret); - EXPECT_EQ(StatusCode::BadRequest_400, res->status); -} - -TEST_F(ServerTest, KeepAlive) { - auto res = cli_.Get("/hi"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("Hello World!", res->body); - - res = cli_.Get("/hi"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("Hello World!", res->body); - - res = cli_.Get("/hi"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("Hello World!", res->body); - - res = cli_.Get("/not-exist"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); - - res = cli_.Post("/empty", "", "text/plain"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("empty", res->body); - EXPECT_EQ("close", res->get_header_value("Connection")); - - res = cli_.Post( - "/empty", 0, [&](size_t, size_t, DataSink &) { return true; }, - "text/plain"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("empty", res->body); - - cli_.set_keep_alive(false); - res = cli_.Get("/last-request"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("close", res->get_header_value("Connection")); -} - -TEST_F(ServerTest, TooManyRedirect) { - cli_.set_follow_location(true); - auto res = cli_.Get("/redirect/0"); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::ExceedRedirectCount, res.error()); -} - -TEST_F(ServerTest, StartTime) { auto res = cli_.Get("/test-start-time"); } - -#ifdef CPPHTTPLIB_ZLIB_SUPPORT -TEST_F(ServerTest, Gzip) { - Headers headers; - headers.emplace("Accept-Encoding", "gzip, deflate"); - auto res = cli_.Get("/compress", headers); - - ASSERT_TRUE(res); - EXPECT_EQ("gzip", res->get_header_value("Content-Encoding")); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("33", res->get_header_value("Content-Length")); - EXPECT_EQ("123456789012345678901234567890123456789012345678901234567890123456" - "7890123456789012345678901234567890", - res->body); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, GzipWithoutAcceptEncoding) { - Headers headers; - headers.emplace("Accept-Encoding", ""); - auto res = cli_.Get("/compress", headers); - - ASSERT_TRUE(res); - EXPECT_TRUE(res->get_header_value("Content-Encoding").empty()); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("100", res->get_header_value("Content-Length")); - EXPECT_EQ("123456789012345678901234567890123456789012345678901234567890123456" - "7890123456789012345678901234567890", - res->body); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, GzipWithContentReceiver) { - Headers headers; - headers.emplace("Accept-Encoding", "gzip, deflate"); - std::string body; - auto res = cli_.Get("/compress", headers, - [&](const char *data, uint64_t data_length) { - EXPECT_EQ(100U, data_length); - body.append(data, data_length); - return true; - }); - - ASSERT_TRUE(res); - EXPECT_EQ("gzip", res->get_header_value("Content-Encoding")); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("33", res->get_header_value("Content-Length")); - EXPECT_EQ("123456789012345678901234567890123456789012345678901234567890123456" - "7890123456789012345678901234567890", - body); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, GzipWithoutDecompressing) { - Headers headers; - headers.emplace("Accept-Encoding", "gzip, deflate"); - - cli_.set_decompress(false); - auto res = cli_.Get("/compress", headers); - - ASSERT_TRUE(res); - EXPECT_EQ("gzip", res->get_header_value("Content-Encoding")); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("33", res->get_header_value("Content-Length")); - EXPECT_EQ(33U, res->body.size()); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, GzipWithContentReceiverWithoutAcceptEncoding) { - Headers headers; - headers.emplace("Accept-Encoding", ""); - - std::string body; - auto res = cli_.Get("/compress", headers, - [&](const char *data, uint64_t data_length) { - EXPECT_EQ(100U, data_length); - body.append(data, data_length); - return true; - }); - - ASSERT_TRUE(res); - EXPECT_TRUE(res->get_header_value("Content-Encoding").empty()); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("100", res->get_header_value("Content-Length")); - EXPECT_EQ("123456789012345678901234567890123456789012345678901234567890123456" - "7890123456789012345678901234567890", - body); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, NoGzip) { - Headers headers; - headers.emplace("Accept-Encoding", "gzip, deflate"); - auto res = cli_.Get("/nocompress", headers); - - ASSERT_TRUE(res); - EXPECT_EQ(false, res->has_header("Content-Encoding")); - EXPECT_EQ("application/octet-stream", res->get_header_value("Content-Type")); - EXPECT_EQ("100", res->get_header_value("Content-Length")); - EXPECT_EQ("123456789012345678901234567890123456789012345678901234567890123456" - "7890123456789012345678901234567890", - res->body); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, NoGzipWithContentReceiver) { - Headers headers; - headers.emplace("Accept-Encoding", "gzip, deflate"); - std::string body; - auto res = cli_.Get("/nocompress", headers, - [&](const char *data, uint64_t data_length) { - EXPECT_EQ(100U, data_length); - body.append(data, data_length); - return true; - }); - - ASSERT_TRUE(res); - EXPECT_EQ(false, res->has_header("Content-Encoding")); - EXPECT_EQ("application/octet-stream", res->get_header_value("Content-Type")); - EXPECT_EQ("100", res->get_header_value("Content-Length")); - EXPECT_EQ("123456789012345678901234567890123456789012345678901234567890123456" - "7890123456789012345678901234567890", - body); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, MultipartFormDataGzip) { - UploadFormDataItems items = { - {"key1", "test", "", ""}, - {"key2", "--abcdefg123", "", ""}, - }; - - cli_.set_compress(true); - auto res = cli_.Post("/compress-multipart", items); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} -#endif - -#ifdef CPPHTTPLIB_BROTLI_SUPPORT -TEST_F(ServerTest, Brotli) { - Headers headers; - headers.emplace("Accept-Encoding", "br"); - auto res = cli_.Get("/compress", headers); - - ASSERT_TRUE(res); - EXPECT_EQ("br", res->get_header_value("Content-Encoding")); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("19", res->get_header_value("Content-Length")); - EXPECT_EQ("123456789012345678901234567890123456789012345678901234567890123456" - "7890123456789012345678901234567890", - res->body); - EXPECT_EQ(StatusCode::OK_200, res->status); -} -#endif - -#ifdef CPPHTTPLIB_ZSTD_SUPPORT -TEST_F(ServerTest, Zstd) { - Headers headers; - headers.emplace("Accept-Encoding", "zstd"); - auto res = cli_.Get("/compress", headers); - - ASSERT_TRUE(res); - EXPECT_EQ("zstd", res->get_header_value("Content-Encoding")); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("26", res->get_header_value("Content-Length")); - EXPECT_EQ("123456789012345678901234567890123456789012345678901234567890123456" - "7890123456789012345678901234567890", - res->body); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, ZstdWithoutAcceptEncoding) { - Headers headers; - headers.emplace("Accept-Encoding", ""); - auto res = cli_.Get("/compress", headers); - - ASSERT_TRUE(res); - EXPECT_TRUE(res->get_header_value("Content-Encoding").empty()); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("100", res->get_header_value("Content-Length")); - EXPECT_EQ("123456789012345678901234567890123456789012345678901234567890123456" - "7890123456789012345678901234567890", - res->body); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, ZstdWithContentReceiver) { - Headers headers; - headers.emplace("Accept-Encoding", "zstd"); - std::string body; - auto res = cli_.Get("/compress", headers, - [&](const char *data, uint64_t data_length) { - EXPECT_EQ(100U, data_length); - body.append(data, data_length); - return true; - }); - - ASSERT_TRUE(res); - EXPECT_EQ("zstd", res->get_header_value("Content-Encoding")); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("26", res->get_header_value("Content-Length")); - EXPECT_EQ("123456789012345678901234567890123456789012345678901234567890123456" - "7890123456789012345678901234567890", - body); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, ZstdWithoutDecompressing) { - Headers headers; - headers.emplace("Accept-Encoding", "zstd"); - - cli_.set_decompress(false); - auto res = cli_.Get("/compress", headers); - - unsigned char compressed[26] = {0x28, 0xb5, 0x2f, 0xfd, 0x20, 0x64, 0x8d, - 0x00, 0x00, 0x50, 0x31, 0x32, 0x33, 0x34, - 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x01, - 0x00, 0xd7, 0xa9, 0x20, 0x01}; - - ASSERT_TRUE(res); - EXPECT_EQ("zstd", res->get_header_value("Content-Encoding")); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("26", res->get_header_value("Content-Length")); - EXPECT_EQ(StatusCode::OK_200, res->status); - ASSERT_EQ(26U, res->body.size()); - EXPECT_TRUE(std::memcmp(compressed, res->body.data(), sizeof(compressed)) == - 0); -} - -TEST_F(ServerTest, ZstdWithContentReceiverWithoutAcceptEncoding) { - Headers headers; - headers.emplace("Accept-Encoding", ""); - - std::string body; - auto res = cli_.Get("/compress", headers, - [&](const char *data, uint64_t data_length) { - EXPECT_EQ(100U, data_length); - body.append(data, data_length); - return true; - }); - - ASSERT_TRUE(res); - EXPECT_TRUE(res->get_header_value("Content-Encoding").empty()); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("100", res->get_header_value("Content-Length")); - EXPECT_EQ("123456789012345678901234567890123456789012345678901234567890123456" - "7890123456789012345678901234567890", - body); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, NoZstd) { - Headers headers; - headers.emplace("Accept-Encoding", "zstd"); - auto res = cli_.Get("/nocompress", headers); - - ASSERT_TRUE(res); - EXPECT_EQ(false, res->has_header("Content-Encoding")); - EXPECT_EQ("application/octet-stream", res->get_header_value("Content-Type")); - EXPECT_EQ("100", res->get_header_value("Content-Length")); - EXPECT_EQ("123456789012345678901234567890123456789012345678901234567890123456" - "7890123456789012345678901234567890", - res->body); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, NoZstdWithContentReceiver) { - Headers headers; - headers.emplace("Accept-Encoding", "zstd"); - std::string body; - auto res = cli_.Get("/nocompress", headers, - [&](const char *data, uint64_t data_length) { - EXPECT_EQ(100U, data_length); - body.append(data, data_length); - return true; - }); - - ASSERT_TRUE(res); - EXPECT_EQ(false, res->has_header("Content-Encoding")); - EXPECT_EQ("application/octet-stream", res->get_header_value("Content-Type")); - EXPECT_EQ("100", res->get_header_value("Content-Length")); - EXPECT_EQ("123456789012345678901234567890123456789012345678901234567890123456" - "7890123456789012345678901234567890", - body); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -// TODO: How to enable zstd ?? -TEST_F(ServerTest, MultipartFormDataZstd) { - UploadFormDataItems items = { - {"key1", "test", "", ""}, - {"key2", "--abcdefg123", "", ""}, - }; - Headers headers; - headers.emplace("Accept-Encoding", "zstd"); - - cli_.set_compress(true); - auto res = cli_.Post("/compress-multipart", headers, items); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(ServerTest, PutWithContentProviderWithZstd) { - Headers headers; - headers.emplace("Accept-Encoding", "zstd"); - - cli_.set_compress(true); - auto res = cli_.Put( - "/put", headers, 3, - [](size_t /*offset*/, size_t /*length*/, DataSink &sink) { - sink.os << "PUT"; - return true; - }, - "text/plain"); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("PUT", res->body); -} - -// Pre-compression logging tests -TEST_F(ServerTest, PreCompressionLogging) { - // Test data for compression (matches the actual /compress endpoint content) - const std::string test_content = - "123456789012345678901234567890123456789012345678901234567890123456789012" - "3456789012345678901234567890"; - - // Variables to capture logging data - std::string pre_compression_body; - std::string pre_compression_content_type; - std::string pre_compression_content_encoding; - - std::string post_compression_body; - std::string post_compression_content_type; - std::string post_compression_content_encoding; - - // Set up pre-compression logger - svr_.set_pre_compression_logger([&](const Request & /*req*/, - const Response &res) { - pre_compression_body = res.body; - pre_compression_content_type = res.get_header_value("Content-Type"); - pre_compression_content_encoding = res.get_header_value("Content-Encoding"); - }); - - // Set up post-compression logger - svr_.set_logger([&](const Request & /*req*/, const Response &res) { - post_compression_body = res.body; - post_compression_content_type = res.get_header_value("Content-Type"); - post_compression_content_encoding = - res.get_header_value("Content-Encoding"); - }); - - // Test with gzip compression - Headers headers; - headers.emplace("Accept-Encoding", "gzip"); - - auto res = cli_.Get("/compress", headers); - - // Verify response was compressed - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("gzip", res->get_header_value("Content-Encoding")); - - // Verify pre-compression logger captured uncompressed content - EXPECT_EQ(test_content, pre_compression_body); - EXPECT_EQ("text/plain", pre_compression_content_type); - EXPECT_TRUE(pre_compression_content_encoding - .empty()); // No encoding header before compression - - // Verify post-compression logger captured compressed content - EXPECT_NE(test_content, - post_compression_body); // Should be different after compression - EXPECT_EQ("text/plain", post_compression_content_type); - EXPECT_EQ("gzip", post_compression_content_encoding); - - // Verify compressed content is smaller - EXPECT_LT(post_compression_body.size(), pre_compression_body.size()); -} - -TEST_F(ServerTest, PreCompressionLoggingWithBrotli) { - const std::string test_content = - "123456789012345678901234567890123456789012345678901234567890123456789012" - "3456789012345678901234567890"; - - std::string pre_compression_body; - std::string post_compression_body; - - svr_.set_pre_compression_logger( - [&](const Request & /*req*/, const Response &res) { - pre_compression_body = res.body; - }); - - svr_.set_logger([&](const Request & /*req*/, const Response &res) { - post_compression_body = res.body; - }); - - Headers headers; - headers.emplace("Accept-Encoding", "br"); - - auto res = cli_.Get("/compress", headers); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("br", res->get_header_value("Content-Encoding")); - - // Verify pre-compression content is uncompressed - EXPECT_EQ(test_content, pre_compression_body); - - // Verify post-compression content is compressed - EXPECT_NE(test_content, post_compression_body); - EXPECT_LT(post_compression_body.size(), pre_compression_body.size()); -} - -TEST_F(ServerTest, PreCompressionLoggingWithoutCompression) { - const std::string test_content = - "123456789012345678901234567890123456789012345678901234567890123456789012" - "3456789012345678901234567890"; - - std::string pre_compression_body; - std::string post_compression_body; - - svr_.set_pre_compression_logger( - [&](const Request & /*req*/, const Response &res) { - pre_compression_body = res.body; - }); - - svr_.set_logger([&](const Request & /*req*/, const Response &res) { - post_compression_body = res.body; - }); - - // Request without compression (use /nocompress endpoint) - Headers headers; - auto res = cli_.Get("/nocompress", headers); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_TRUE(res->get_header_value("Content-Encoding").empty()); - - // Pre-compression logger should not be called when no compression is applied - EXPECT_TRUE( - pre_compression_body.empty()); // Pre-compression logger not called - EXPECT_EQ( - test_content, - post_compression_body); // Post-compression logger captures final content -} - -TEST_F(ServerTest, PreCompressionLoggingOnlyPreLogger) { - const std::string test_content = - "123456789012345678901234567890123456789012345678901234567890123456789012" - "3456789012345678901234567890"; - - std::string pre_compression_body; - bool pre_logger_called = false; - - // Set only pre-compression logger - svr_.set_pre_compression_logger( - [&](const Request & /*req*/, const Response &res) { - pre_compression_body = res.body; - pre_logger_called = true; - }); - - Headers headers; - headers.emplace("Accept-Encoding", "gzip"); - - auto res = cli_.Get("/compress", headers); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("gzip", res->get_header_value("Content-Encoding")); - - // Verify pre-compression logger was called - EXPECT_TRUE(pre_logger_called); - EXPECT_EQ(test_content, pre_compression_body); -} - -TEST(ZstdDecompressor, ChunkedDecompression) { - std::string data; - for (size_t i = 0; i < 32 * 1024; ++i) { - data.push_back(static_cast('a' + i % 26)); - } - - std::string compressed_data; - { - httplib::detail::zstd_compressor compressor; - bool result = compressor.compress( - data.data(), data.size(), - /*last=*/true, - [&](const char *compressed_data_chunk, size_t compressed_data_size) { - compressed_data.insert(compressed_data.size(), compressed_data_chunk, - compressed_data_size); - return true; - }); - ASSERT_TRUE(result); - } - - std::string decompressed_data; - { - httplib::detail::zstd_decompressor decompressor; - - // Chunk size is chosen specifically to have a decompressed chunk size equal - // to 16384 bytes 16384 bytes is the size of decompressor output buffer - size_t chunk_size = 130; - for (size_t chunk_begin = 0; chunk_begin < compressed_data.size(); - chunk_begin += chunk_size) { - size_t current_chunk_size = - std::min(compressed_data.size() - chunk_begin, chunk_size); - bool result = decompressor.decompress( - compressed_data.data() + chunk_begin, current_chunk_size, - [&](const char *decompressed_data_chunk, - size_t decompressed_data_chunk_size) { - decompressed_data.insert(decompressed_data.size(), - decompressed_data_chunk, - decompressed_data_chunk_size); - return true; - }); - ASSERT_TRUE(result); - } - } - ASSERT_EQ(data, decompressed_data); -} - -TEST(ZstdDecompressor, Decompress) { - std::string original_text = "Compressed with ZSTD"; - unsigned char data[29] = {0x28, 0xb5, 0x2f, 0xfd, 0x20, 0x14, 0xa1, 0x00, - 0x00, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x5a, 0x53, 0x54, 0x44}; - std::string compressed_data(data, data + sizeof(data) / sizeof(data[0])); - - std::string decompressed_data; - { - httplib::detail::zstd_decompressor decompressor; - - bool result = decompressor.decompress( - compressed_data.data(), compressed_data.size(), - [&](const char *decompressed_data_chunk, - size_t decompressed_data_chunk_size) { - decompressed_data.insert(decompressed_data.size(), - decompressed_data_chunk, - decompressed_data_chunk_size); - return true; - }); - ASSERT_TRUE(result); - } - ASSERT_EQ(original_text, decompressed_data); -} -#endif - -// Sends a raw request to a server listening at HOST:PORT. -static bool send_request(time_t read_timeout_sec, const std::string &req, - std::string *resp = nullptr) { - auto error = Error::Success; - - auto client_sock = detail::create_client_socket( - HOST, "", PORT, AF_UNSPEC, false, false, nullptr, - /*connection_timeout_sec=*/5, 0, - /*read_timeout_sec=*/5, 0, - /*write_timeout_sec=*/5, 0, std::string(), error); - - if (client_sock == INVALID_SOCKET) { return false; } - - auto ret = detail::process_client_socket( - client_sock, read_timeout_sec, 0, 0, 0, 0, - std::chrono::steady_clock::time_point::min(), [&](Stream &strm) { - if (req.size() != - static_cast(strm.write(req.data(), req.size()))) { - return false; - } - - char buf[512]; - - detail::stream_line_reader line_reader(strm, buf, sizeof(buf)); - while (line_reader.getline()) { - if (resp) { *resp += line_reader.ptr(); } - } - return true; - }); - - detail::close_socket(client_sock); - - return ret; -} - -TEST(ServerRequestParsingTest, TrimWhitespaceFromHeaderValues) { - Server svr; - std::string header_value; - svr.Get("/validate-ws-in-headers", [&](const Request &req, Response &res) { - header_value = req.get_header_value("foo"); - res.set_content("ok", "text/plain"); - }); - - thread t = thread([&] { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - // Only space and horizontal tab are whitespace. Make sure other whitespace- - // like characters are not treated the same - use vertical tab and escape. - const std::string req = "GET /validate-ws-in-headers HTTP/1.1\r\n" - "foo: \t \v bar \x1B\t \r\n" - "Connection: close\r\n" - "\r\n"; - - std::string res; - ASSERT_TRUE(send_request(5, req, &res)); - EXPECT_EQ(header_value, ""); - EXPECT_EQ("HTTP/1.1 400 Bad Request", res.substr(0, 24)); -} - -// Sends a raw request and verifies that there isn't a crash or exception. -static void test_raw_request(const std::string &req, - std::string *out = nullptr) { - Server svr; - svr.Get("/hi", [&](const Request & /*req*/, Response &res) { - res.set_content("ok", "text/plain"); - }); - svr.Put("/put_hi", [&](const Request & /*req*/, Response &res) { - res.set_content("ok", "text/plain"); - }); - svr.Get("/header_field_value_check", - [&](const Request & /*req*/, Response &res) { - res.set_content("ok", "text/plain"); - }); - - // Server read timeout must be longer than the client read timeout for the - // bug to reproduce, probably to force the server to process a request - // without a trailing blank line. - const time_t client_read_timeout_sec = 1; - svr.set_read_timeout(std::chrono::seconds(client_read_timeout_sec + 1)); - bool listen_thread_ok = false; - thread t = thread([&] { listen_thread_ok = svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - EXPECT_TRUE(listen_thread_ok); - }); - - svr.wait_until_ready(); - - ASSERT_TRUE(send_request(client_read_timeout_sec, req, out)); -} - -TEST(ServerRequestParsingTest, ReadHeadersRegexComplexity) { - // A certain header line causes an exception if the header property is parsed - // naively with a single regex. This occurs with libc++ but not libstdc++. - test_raw_request( - "GET /hi HTTP/1.1\r\n" - " : " - " " - " "); -} - -TEST(ServerRequestParsingTest, ReadHeadersRegexComplexity2) { - // A certain header line causes an exception if the header property *name* is - // parsed with a regular expression starting with "(.+?):" - this is a non- - // greedy matcher and requires backtracking when there are a lot of ":" - // characters. - // This occurs with libc++ but not libstdc++. - test_raw_request( - "GET /hi HTTP/1.1\r\n" - ":-:::::::::::::::::::::::::::-::::::::::::::::::::::::@-&&&&&&&&&&&" - "--:::::::-:::::::::::::::::::::::::::::-:::::::::::::::::@-&&&&&&&&" - "&&&--:::::::-:::::::::::::::::::::::::::::-:::::::::::::::::@-:::::" - "::-:::::::::::::::::@-&&&&&&&&&&&--:::::::-::::::::::::::::::::::::" - ":::::-:::::::::::::::::@-&&&&&&&&&&&--:::::::-:::::::::::::::::::::" - "::::::::-:::::::::::::::::@-&&&&&&&--:::::::-::::::::::::::::::::::" - ":::::::-:::::::::::::::::@-&&&&&&&&&&&--:::::::-:::::::::::::::::::" - "::::::::::-:::::::::::::::::@-&&&&&::::::::::::-:::::::::::::::::@-" - "&&&&&&&&&&&--:::::::-:::::::::::::::::::::::::::::-::::::::::::::::" - ":@-&&&&&&&&&&&--:::::::-:::::::::::::::::::::::::::::-:::::::::::::" - "::::@-&&&&&&&&&&&--:::::::-:::::::::::::::::::::::::::::-::::::@-&&" - "&&&&&&&&&--:::::::-:::::::::::::::::::::::::::::-:::::::::::::::::@" - "::::::-:::::::::::::::::::::::::::::-:::::::::::::::::@-&&&&&&&&&&&" - "--:::::::-:::::::::::::::::::::::::::::-:::::::::::::::::@-&&&&&&&&" - "&&&--:::::::-:::::::::::::::::::::::::::::-:::::::::::::::::@-&&&&&" - "&&&&&&--:::::::-:::::::::::::::::::::::::::::-:::::::::::::::::@-&&" - "&&&&&&&&&--:::::::-:::::::::::::::::::::::::::::-:::::::::::::::::@" - "-&&&&&&&&&&&--:::::::-:::::::::::::::::::::::::::::-:::::::::::::::" - "::@-&&&&&&&&&&&--:::::::-:::::::::::::::::::::::::::::-::::::::::::" - ":::::@-&&&&&&&&&&&::-:::::::::::::::::@-&&&&&&&&&&&--:::::::-::::::" - ":::::::::::::::::::::::-:::::::::::::::::@-&&&&&&&&&&&--:::::::-:::" - "::::::::::::::::::::::::::-:::::::::::::::::@-&&&&&&&&&&&--:::::::-" - ":::::::::::::::::::::::::::::-:::::::::::::::::@-&&&&&&&&&&&---&&:&" - "&&.0------------:-:::::::::::::::::::::::::::::-:::::::::::::::::@-" - "&&&&&&&&&&&--:::::::-:::::::::::::::::::::::::::::-::::::::::::::::" - ":@-&&&&&&&&&&&--:::::::-:::::::::::::::::::::::::::::-:::::::::::::" - "::::@-&&&&&&&&&&&---&&:&&&.0------------O--------\rH PUTHTTP/1.1\r\n" - "&&&%%%"); -} - -TEST(ServerRequestParsingTest, ExcessiveWhitespaceInUnparsableHeaderLine) { - // Make sure this doesn't crash the server. - // In a previous version of the header line regex, the "\r" rendered the line - // unparsable and the regex engine repeatedly backtracked, trying to look for - // a new position where the leading white space ended and the field value - // began. - // The crash occurs with libc++ but not libstdc++. - test_raw_request("GET /hi HTTP/1.1\r\n" - "a:" + - std::string(2000, ' ') + '\r' + std::string(20, 'z') + - "\r\n" - "\r\n"); -} - -TEST(ServerRequestParsingTest, InvalidFirstChunkLengthInRequest) { - std::string out; - - test_raw_request("PUT /put_hi HTTP/1.1\r\n" - "Content-Type: text/plain\r\n" - "Transfer-Encoding: chunked\r\n" - "\r\n" - "nothex\r\n", - &out); - EXPECT_EQ("HTTP/1.1 400 Bad Request", out.substr(0, 24)); -} - -TEST(ServerRequestParsingTest, InvalidSecondChunkLengthInRequest) { - std::string out; - - test_raw_request("PUT /put_hi HTTP/1.1\r\n" - "Content-Type: text/plain\r\n" - "Transfer-Encoding: chunked\r\n" - "\r\n" - "3\r\n" - "xyz\r\n" - "NaN\r\n", - &out); - EXPECT_EQ("HTTP/1.1 400 Bad Request", out.substr(0, 24)); -} - -TEST(ServerRequestParsingTest, ChunkLengthTooHighInRequest) { - std::string out; - - test_raw_request("PUT /put_hi HTTP/1.1\r\n" - "Content-Type: text/plain\r\n" - "Transfer-Encoding: chunked\r\n" - "\r\n" - // Length is too large for 64 bits. - "1ffffffffffffffff\r\n" - "xyz\r\n", - &out); - EXPECT_EQ("HTTP/1.1 400 Bad Request", out.substr(0, 24)); -} - -TEST(ServerRequestParsingTest, InvalidHeaderTextWithExtraCR) { - test_raw_request("GET /hi HTTP/1.1\r\n" - "Content-Type: text/plain\r\n\r"); -} - -TEST(ServerRequestParsingTest, InvalidSpaceInURL) { - std::string out; - test_raw_request("GET /h i HTTP/1.1\r\n\r\n", &out); - EXPECT_EQ("HTTP/1.1 400 Bad Request", out.substr(0, 24)); -} - -TEST(ServerRequestParsingTest, InvalidFieldValueContains_CR_LF_NUL) { - std::string out; - std::string request( - "GET /header_field_value_check HTTP/1.1\r\nTest: [\r\x00\n]\r\n\r\n", 55); - test_raw_request(request, &out); - EXPECT_EQ("HTTP/1.1 400 Bad Request", out.substr(0, 24)); -} - -TEST(ServerRequestParsingTest, InvalidFieldValueContains_LF) { - std::string out; - std::string request( - "GET /header_field_value_check HTTP/1.1\r\nTest: [\n\n\n]\r\n\r\n", 55); - test_raw_request(request, &out); - EXPECT_EQ("HTTP/1.1 400 Bad Request", out.substr(0, 24)); -} - -TEST(ServerRequestParsingTest, InvalidFieldNameContains_PreceedingSpaces) { - std::string out; - std::string request( - "GET /header_field_value_check HTTP/1.1\r\n Test: val\r\n\r\n", 55); - test_raw_request(request, &out); - EXPECT_EQ("HTTP/1.1 400 Bad Request", out.substr(0, 24)); -} - -TEST(ServerRequestParsingTest, EmptyFieldValue) { - std::string out; - - test_raw_request("GET /header_field_value_check HTTP/1.1\r\n" - "Test: \r\n\r\n", - &out); - EXPECT_EQ("HTTP/1.1 200 OK", out.substr(0, 15)); -} - -TEST(ServerStopTest, StopServerWithChunkedTransmission) { - Server svr; - - svr.Get("/events", [](const Request & /*req*/, Response &res) { - res.set_header("Cache-Control", "no-cache"); - res.set_chunked_content_provider( - "text/event-stream", [](size_t offset, DataSink &sink) { - std::string s = "data:"; - s += std::to_string(offset); - s += "\n\n"; - auto ret = sink.write(s.data(), s.size()); - EXPECT_TRUE(ret); - std::this_thread::sleep_for(std::chrono::seconds(1)); - return true; - }); - }); - - auto listen_thread = std::thread([&svr]() { svr.listen("localhost", PORT); }); - svr.wait_until_ready(); - - Client client(HOST, PORT); - const Headers headers = {{"Accept", "text/event-stream"}}; - - auto get_thread = std::thread([&client, &headers]() { - auto res = client.Get( - "/events", headers, - [](const char * /*data*/, size_t /*len*/) -> bool { return true; }); - }); - auto se = detail::scope_exit([&] { - svr.stop(); - get_thread.join(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - // Give GET time to get a few messages. - std::this_thread::sleep_for(std::chrono::seconds(2)); -} - -TEST(ServerStopTest, ClientAccessAfterServerDown) { - httplib::Server svr; - svr.Post("/hi", - [&](const httplib::Request & /*req*/, httplib::Response &res) { - res.status = StatusCode::OK_200; - }); - - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - svr.wait_until_ready(); - - Client cli(HOST, PORT); - - auto res = cli.Post("/hi", "data", "text/plain"); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - - res = cli.Post("/hi", "data", "text/plain"); - ASSERT_FALSE(res); -} - -TEST(ServerStopTest, ListenFailure) { - Server svr; - auto t = thread([&]() { - auto ret = svr.listen("????", PORT); - EXPECT_FALSE(ret); - }); - svr.wait_until_ready(); - svr.stop(); - t.join(); -} - -TEST(ServerStopTest, Decommision) { - Server svr; - - svr.Get("/hi", [&](const Request &, Response &res) { res.body = "hi..."; }); - - for (int i = 0; i < 4; i++) { - auto is_even = !(i % 2); - - std::thread t{[&] { - try { - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - - if (is_even) { - throw std::runtime_error("Some thing that happens to go wrong."); - } - - svr.listen(HOST, PORT); - } catch (...) { svr.decommission(); } - }}; - - svr.wait_until_ready(); - - // Server is up - { - Client cli(HOST, PORT); - auto res = cli.Get("/hi"); - if (is_even) { - EXPECT_FALSE(res); - } else { - EXPECT_TRUE(res); - EXPECT_EQ("hi...", res->body); - } - } - - svr.stop(); - t.join(); - - // Server is down... - { - Client cli(HOST, PORT); - auto res = cli.Get("/hi"); - EXPECT_FALSE(res); - } - } -} - -// Helper function for string body upload progress tests -template -void TestStringBodyUploadProgress(SetupHandler &&setup_handler, - ClientCall &&client_call, - const string &body) { - Server svr; - setup_handler(svr); - - thread t = thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - vector progress_values; - bool progress_called = false; - - auto res = - client_call(cli, body, [&](uint64_t current, uint64_t /*total*/) -> bool { - progress_values.push_back(current); - progress_called = true; - return true; - }); - - ASSERT_TRUE(res); - EXPECT_EQ(200, res->status); - EXPECT_TRUE(progress_called); -} - -TEST(UploadProgressTest, PostStringBodyBasic) { - TestStringBodyUploadProgress( - [](Server &svr) { - svr.Post("/test", [](const Request & /*req*/, Response &res) { - res.set_content("received", "text/plain"); - }); - }, - [](Client &cli, const string &body, UploadProgress progress_callback) { - return cli.Post("/test", body, "text/plain", progress_callback); - }, - "test data for upload progress"); -} - -TEST(UploadProgressTest, PutStringBodyBasic) { - TestStringBodyUploadProgress( - [](Server &svr) { - svr.Put("/test", [](const Request & /*req*/, Response &res) { - res.set_content("put received", "text/plain"); - }); - }, - [](Client &cli, const string &body, UploadProgress progress_callback) { - return cli.Put("/test", body, "text/plain", progress_callback); - }, - "put test data for upload progress"); -} - -TEST(UploadProgressTest, PatchStringBodyBasic) { - TestStringBodyUploadProgress( - [](Server &svr) { - svr.Patch("/test", [](const Request & /*req*/, Response &res) { - res.set_content("patch received", "text/plain"); - }); - }, - [](Client &cli, const string &body, UploadProgress progress_callback) { - return cli.Patch("/test", body, "text/plain", progress_callback); - }, - "patch test data for upload progress"); -} - -// Helper function for content provider upload progress tests -template -void TestContentProviderUploadProgress(SetupHandler &&setup_handler, - ClientCall &&client_call) { - Server svr; - setup_handler(svr); - - thread t = thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - }); - svr.wait_until_ready(); - - Client cli(HOST, PORT); - vector progress_values; - - auto res = - client_call(cli, [&](uint64_t current, uint64_t /*total*/) -> bool { - progress_values.push_back(current); - return true; - }); - - ASSERT_TRUE(res); - EXPECT_EQ(200, res->status); - EXPECT_FALSE(progress_values.empty()); -} - -TEST(UploadProgressTest, PostContentProviderProgress) { - TestContentProviderUploadProgress( - [](Server &svr) { - svr.Post("/test", [](const Request & /*req*/, Response &res) { - res.set_content("provider received", "text/plain"); - }); - }, - [](Client &cli, UploadProgress progress_callback) { - return cli.Post( - "/test", 10, - [](size_t /*offset*/, size_t /*length*/, DataSink &sink) -> bool { - sink.os << "test data"; - return true; - }, - "text/plain", progress_callback); - }); -} - -// Helper function for multipart upload progress tests -template -void TestMultipartUploadProgress(SetupHandler &&setup_handler, - ClientCall &&client_call, - const string &endpoint) { - Server svr; - setup_handler(svr); - - thread t = thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - }); - svr.wait_until_ready(); - - Client cli(HOST, PORT); - vector progress_values; - - UploadFormDataItems items = { - {"field1", "value1", "", ""}, - {"field2", "longer value for progress tracking test", "", ""}, - {"file1", "file content data for upload progress", "test.txt", - "text/plain"}}; - - auto res = client_call(cli, endpoint, items, - [&](uint64_t current, uint64_t /*total*/) -> bool { - progress_values.push_back(current); - return true; - }); - - ASSERT_TRUE(res); - EXPECT_EQ(200, res->status); - EXPECT_FALSE(progress_values.empty()); -} - -TEST(UploadProgressTest, PostMultipartProgress) { - TestMultipartUploadProgress( - [](Server &svr) { - svr.Post("/multipart", [](const Request &req, Response &res) { - EXPECT_TRUE(!req.form.files.empty() || !req.form.fields.empty()); - res.set_content("multipart received", "text/plain"); - }); - }, - [](Client &cli, const string &endpoint, const UploadFormDataItems &items, - UploadProgress progress_callback) { - return cli.Post(endpoint, items, progress_callback); - }, - "/multipart"); -} - -// Helper function for basic download progress tests -template -void TestBasicDownloadProgress(SetupHandler &&setup_handler, - ClientCall &&client_call, const string &endpoint, - size_t expected_content_size) { - Server svr; - setup_handler(svr); - - thread t = thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - }); - svr.wait_until_ready(); - - Client cli(HOST, PORT); - vector progress_values; - - auto res = client_call(cli, endpoint, - [&](uint64_t current, uint64_t /*total*/) -> bool { - progress_values.push_back(current); - return true; - }); - - ASSERT_TRUE(res); - EXPECT_EQ(200, res->status); - EXPECT_FALSE(progress_values.empty()); - EXPECT_EQ(expected_content_size, res->body.size()); -} - -TEST(DownloadProgressTest, GetBasic) { - TestBasicDownloadProgress( - [](Server &svr) { - svr.Get("/download", [](const Request & /*req*/, Response &res) { - string content(1000, 'D'); - res.set_content(content, "text/plain"); - }); - }, - [](Client &cli, const string &endpoint, - DownloadProgress progress_callback) { - return cli.Get(endpoint, progress_callback); - }, - "/download", 1000u); -} - -// Helper function for content receiver download progress tests -template -void TestContentReceiverDownloadProgress(SetupHandler &&setup_handler, - ClientCall &&client_call, - const string &endpoint, - size_t expected_content_size) { - Server svr; - setup_handler(svr); - - thread t = thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - }); - svr.wait_until_ready(); - - Client cli(HOST, PORT); - vector progress_values; - string received_body; - - auto res = client_call( - cli, endpoint, - [&](const char *data, size_t data_length) -> bool { - received_body.append(data, data_length); - return true; - }, - [&](uint64_t current, uint64_t /*total*/) -> bool { - progress_values.push_back(current); - return true; - }); - - ASSERT_TRUE(res); - EXPECT_EQ(200, res->status); - EXPECT_FALSE(progress_values.empty()); - EXPECT_EQ(expected_content_size, received_body.size()); - EXPECT_TRUE(res->body.empty()); -} - -TEST(DownloadProgressTest, GetWithContentReceiver) { - TestContentReceiverDownloadProgress( - [](Server &svr) { - svr.Get("/download-receiver", - [](const Request & /*req*/, Response &res) { - string content(2000, 'R'); - res.set_content(content, "text/plain"); - }); - }, - [](Client &cli, const string &endpoint, ContentReceiver content_receiver, - DownloadProgress progress_callback) { - return cli.Get(endpoint, content_receiver, progress_callback); - }, - "/download-receiver", 2000u); -} - -TEST(StreamingTest, NoContentLengthStreaming) { - Server svr; - - svr.Get("/stream", [](const Request & /*req*/, Response &res) { - res.set_content_provider("text/plain", [](size_t offset, DataSink &sink) { - if (offset < 6) { - sink.os << (offset < 3 ? "a" : "b"); - } else { - sink.done(); - } - return true; - }); - }); - - auto listen_thread = std::thread([&svr]() { svr.listen("localhost", PORT); }); - auto listen_se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client client(HOST, PORT); - - auto get_thread = std::thread([&client]() { - std::string s; - auto res = - client.Get("/stream", [&s](const char *data, size_t len) -> bool { - s += std::string(data, len); - return true; - }); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("aaabbb", s); - }); - auto get_se = detail::scope_exit([&] { get_thread.join(); }); - - // Give GET time to get a few messages. - std::this_thread::sleep_for(std::chrono::milliseconds(500)); -} - -TEST(MountTest, Unmount) { - Server svr; - - auto listen_thread = std::thread([&svr]() { svr.listen("localhost", PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli("localhost", PORT); - - svr.set_mount_point("/mount2", "./www2"); - - auto res = cli.Get("/"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); - - res = cli.Get("/mount2/dir/test.html"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - - svr.set_mount_point("/", "./www"); - - res = cli.Get("/dir/"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - - svr.remove_mount_point("/"); - res = cli.Get("/dir/"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); - - svr.remove_mount_point("/mount2"); - res = cli.Get("/mount2/dir/test.html"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); -} - -TEST(MountTest, Redicect) { - Server svr; - - auto listen_thread = std::thread([&svr]() { svr.listen("localhost", PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.set_mount_point("/", "./www"); - svr.wait_until_ready(); - - Client cli("localhost", PORT); - - auto res = cli.Get("/dir/"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - - res = cli.Get("/dir"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::MovedPermanently_301, res->status); - - res = cli.Get("/file"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - - res = cli.Get("/file/"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); - - cli.set_follow_location(true); - res = cli.Get("/dir"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST(MountTest, MultibytesPathName) { - Server svr; - - auto listen_thread = std::thread([&svr]() { svr.listen("localhost", PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.set_mount_point("/", "./www"); - svr.wait_until_ready(); - - Client cli("localhost", PORT); - - auto res = cli.Get(u8"/日本語Dir/日本語File.txt"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(u8"日本語コンテンツ", res->body); -} - -TEST(KeepAliveTest, ReadTimeout) { - Server svr; - - svr.Get("/a", [&](const Request & /*req*/, Response &res) { - std::this_thread::sleep_for(std::chrono::seconds(2)); - res.set_content("a", "text/plain"); - }); - - svr.Get("/b", [&](const Request & /*req*/, Response &res) { - res.set_content("b", "text/plain"); - }); - - auto listen_thread = std::thread([&svr]() { svr.listen("localhost", PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli("localhost", PORT); - cli.set_keep_alive(true); - cli.set_read_timeout(std::chrono::seconds(1)); - - auto resa = cli.Get("/a"); - ASSERT_FALSE(resa); - EXPECT_EQ(Error::Read, resa.error()); - - auto resb = cli.Get("/b"); - ASSERT_TRUE(resb); - EXPECT_EQ(StatusCode::OK_200, resb->status); - EXPECT_EQ("b", resb->body); -} - -TEST(KeepAliveTest, MaxCount) { - size_t keep_alive_max_count = 3; - - Server svr; - svr.set_keep_alive_max_count(keep_alive_max_count); - - svr.Get("/hi", [](const httplib::Request &, httplib::Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - - auto listen_thread = std::thread([&svr] { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - cli.set_keep_alive(true); - - for (size_t i = 0; i < 5; i++) { - auto result = cli.Get("/hi"); - ASSERT_TRUE(result); - EXPECT_EQ(StatusCode::OK_200, result->status); - - if (i == keep_alive_max_count - 1) { - EXPECT_EQ("close", result->get_header_value("Connection")); - } else { - EXPECT_FALSE(result->has_header("Connection")); - } - } -} - -TEST(KeepAliveTest, Issue1041) { - Server svr; - svr.set_keep_alive_timeout(3); - - svr.Get("/hi", [](const httplib::Request &, httplib::Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - - auto listen_thread = std::thread([&svr] { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - cli.set_keep_alive(true); - - auto result = cli.Get("/hi"); - ASSERT_TRUE(result); - EXPECT_EQ(StatusCode::OK_200, result->status); - - std::this_thread::sleep_for(std::chrono::seconds(5)); - - result = cli.Get("/hi"); - ASSERT_TRUE(result); - EXPECT_EQ(StatusCode::OK_200, result->status); -} - -TEST(KeepAliveTest, Issue1959) { - Server svr; - svr.set_keep_alive_timeout(5); - - svr.Get("/a", [&](const Request & /*req*/, Response &res) { - res.set_content("a", "text/plain"); - }); - - auto listen_thread = std::thread([&svr]() { svr.listen("localhost", PORT); }); - auto se = detail::scope_exit([&] { - if (!svr.is_running()) return; - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli("localhost", PORT); - cli.set_keep_alive(true); - - using namespace std::chrono; - auto start = steady_clock::now(); - - cli.Get("/a"); - - svr.stop(); - listen_thread.join(); - - auto end = steady_clock::now(); - auto elapsed = duration_cast(end - start).count(); - - EXPECT_LT(elapsed, 5000); -} - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT -TEST(KeepAliveTest, SSLClientReconnection) { - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE); - ASSERT_TRUE(svr.is_valid()); - svr.set_keep_alive_timeout(1); - - svr.Get("/hi", [](const httplib::Request &, httplib::Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - - auto listen_thread = std::thread([&svr] { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - SSLClient cli(HOST, PORT); - cli.enable_server_certificate_verification(false); - cli.set_keep_alive(true); - - auto result = cli.Get("/hi"); - ASSERT_TRUE(result); - EXPECT_EQ(StatusCode::OK_200, result->status); - - result = cli.Get("/hi"); - ASSERT_TRUE(result); - EXPECT_EQ(StatusCode::OK_200, result->status); - - std::this_thread::sleep_for(std::chrono::seconds(2)); - - // Recoonect - result = cli.Get("/hi"); - ASSERT_TRUE(result); - EXPECT_EQ(StatusCode::OK_200, result->status); - - result = cli.Get("/hi"); - ASSERT_TRUE(result); - EXPECT_EQ(StatusCode::OK_200, result->status); -} - -TEST(KeepAliveTest, SSLClientReconnectionPost) { - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE); - ASSERT_TRUE(svr.is_valid()); - svr.set_keep_alive_timeout(1); - std::string content = "reconnect"; - - svr.Post("/hi", [](const httplib::Request &, httplib::Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - - auto listen_thread = std::thread([&svr] { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - SSLClient cli(HOST, PORT); - cli.enable_server_certificate_verification(false); - cli.set_keep_alive(true); - - auto result = cli.Post( - "/hi", content.size(), - [&content](size_t /*offset*/, size_t /*length*/, DataSink &sink) { - sink.write(content.c_str(), content.size()); - return true; - }, - "text/plain"); - ASSERT_TRUE(result); - EXPECT_EQ(200, result->status); - - std::this_thread::sleep_for(std::chrono::seconds(2)); - - // Recoonect - result = cli.Post( - "/hi", content.size(), - [&content](size_t /*offset*/, size_t /*length*/, DataSink &sink) { - sink.write(content.c_str(), content.size()); - return true; - }, - "text/plain"); - ASSERT_TRUE(result); - EXPECT_EQ(200, result->status); - - result = cli.Post( - "/hi", content.size(), - [&content](size_t /*offset*/, size_t /*length*/, DataSink &sink) { - sink.write(content.c_str(), content.size()); - return true; - }, - "text/plain"); - ASSERT_TRUE(result); - EXPECT_EQ(200, result->status); -} - -TEST(SNI_AutoDetectionTest, SNI_Logic) { - { - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE); - ASSERT_TRUE(svr.is_valid()); - - svr.Get("/sni", [&](const Request &req, Response &res) { - std::string expected; - if (req.ssl) { - if (const char *sni = - SSL_get_servername(req.ssl, TLSEXT_NAMETYPE_host_name)) { - expected = sni; - } - } - EXPECT_EQ(expected, req.get_param_value("expected")); - res.set_content("ok", "text/plain"); - }); - - auto listen_thread = std::thread([&svr] { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - SSLClient cli("localhost", PORT); - cli.enable_server_certificate_verification(false); - auto res = cli.Get("/sni?expected=localhost"); - ASSERT_TRUE(res); - } - - { - SSLClient cli("::1", PORT); - cli.enable_server_certificate_verification(false); - auto res = cli.Get("/sni?expected="); - ASSERT_TRUE(res); - } - } -} -#endif - -TEST(ClientProblemDetectionTest, ContentProvider) { - Server svr; - - size_t content_length = 1024 * 1024; - - svr.Get("/hi", [&](const Request & /*req*/, Response &res) { - res.set_content_provider( - content_length, "text/plain", - [&](size_t offset, size_t length, DataSink &sink) { - auto out_len = std::min(length, static_cast(1024)); - std::string out(out_len, '@'); - sink.write(out.data(), out_len); - return offset < 4096; - }, - [](bool success) { ASSERT_FALSE(success); }); - }); - - svr.Get("/empty", [&](const Request & /*req*/, Response &res) { - res.set_content_provider( - 0, "text/plain", - [&](size_t /*offset*/, size_t /*length*/, DataSink & /*sink*/) -> bool { - EXPECT_TRUE(false); - return true; - }, - [](bool success) { ASSERT_FALSE(success); }); - }); - - auto listen_thread = std::thread([&svr]() { svr.listen("localhost", PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli("localhost", PORT); - - { - auto res = cli.Get("/hi", [&](const char * /*data*/, - size_t /*data_length*/) { return false; }); - ASSERT_FALSE(res); - } - - { - auto res = cli.Get("/empty", [&](const char * /*data*/, - size_t /*data_length*/) { return false; }); - ASSERT_TRUE(res); - } -} - -TEST(ErrorHandlerWithContentProviderTest, ErrorHandler) { - Server svr; - - svr.set_error_handler([](Request const &, Response &res) -> void { - res.set_chunked_content_provider( - "text/plain", [](std::size_t const, DataSink &sink) -> bool { - sink.os << "hello"; - sink.os << "world"; - sink.done(); - return true; - }); - }); - - auto listen_thread = std::thread([&svr]() { svr.listen("localhost", PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli("localhost", PORT); - - auto res = cli.Get("/"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::NotFound_404, res->status); - EXPECT_EQ("helloworld", res->body); -} - -TEST(LongPollingTest, ClientCloseDetection) { - Server svr; - - svr.Get("/events", [&](const Request & /*req*/, Response &res) { - res.set_chunked_content_provider( - "text/plain", [](std::size_t const, DataSink &sink) -> bool { - EXPECT_TRUE(sink.is_writable()); // the socket is alive - sink.os << "hello"; - - auto count = 10; - while (count > 0 && sink.is_writable()) { - this_thread::sleep_for(chrono::milliseconds(10)); - count--; - } - EXPECT_FALSE(sink.is_writable()); // the socket is closed - return true; - }); - }); - - auto listen_thread = std::thread([&svr]() { svr.listen("localhost", PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli("localhost", PORT); - - auto res = cli.Get("/events", [&](const char *data, size_t data_length) { - EXPECT_EQ("hello", string(data, data_length)); - return false; // close the socket immediately. - }); - - ASSERT_FALSE(res); -} - -TEST(GetWithParametersTest, GetWithParameters) { - Server svr; - - svr.Get("/", [&](const Request &req, Response &) { - EXPECT_EQ("world", req.get_param_value("hello")); - EXPECT_EQ("world2", req.get_param_value("hello2")); - EXPECT_EQ("world3", req.get_param_value("hello3")); - }); - - svr.Get("/params", [&](const Request &req, Response &) { - EXPECT_EQ("world", req.get_param_value("hello")); - EXPECT_EQ("world2", req.get_param_value("hello2")); - EXPECT_EQ("world3", req.get_param_value("hello3")); - }); - - svr.Get(R"(/resources/([a-z0-9\\-]+))", [&](const Request &req, Response &) { - EXPECT_EQ("resource-id", req.matches[1]); - EXPECT_EQ("foo", req.get_param_value("param1")); - EXPECT_EQ("bar", req.get_param_value("param2")); - }); - - svr.Get("/users/:id", [&](const Request &req, Response &) { - EXPECT_EQ("user-id", req.path_params.at("id")); - EXPECT_EQ("foo", req.get_param_value("param1")); - EXPECT_EQ("bar", req.get_param_value("param2")); - }); - - auto listen_thread = std::thread([&svr]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - Client cli(HOST, PORT); - - Params params; - params.emplace("hello", "world"); - params.emplace("hello2", "world2"); - params.emplace("hello3", "world3"); - auto res = cli.Get("/", params, Headers{}); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - } - - { - Client cli(HOST, PORT); - - auto res = cli.Get("/params?hello=world&hello2=world2&hello3=world3"); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - } - - { - Client cli(HOST, PORT); - - auto res = cli.Get("/resources/resource-id?param1=foo¶m2=bar"); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - } - - { - Client cli(HOST, PORT); - - auto res = cli.Get("/users/user-id?param1=foo¶m2=bar"); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - } -} - -TEST(GetWithParametersTest, GetWithParameters2) { - Server svr; - - svr.Get("/", [&](const Request &req, Response &res) { - auto text = req.get_param_value("hello"); - res.set_content(text, "text/plain"); - }); - - auto listen_thread = std::thread([&svr]() { svr.listen("localhost", PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli("localhost", PORT); - - Params params; - params.emplace("hello", "world"); - - std::string body; - auto res = cli.Get("/", params, Headers{}, - [&](const char *data, size_t data_length) { - body.append(data, data_length); - return true; - }); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("world", body); -} - -TEST(ClientDefaultHeadersTest, DefaultHeaders_Online) { -#ifdef CPPHTTPLIB_DEFAULT_HTTPBIN - auto host = "httpbin.org"; - auto path = std::string{"/range/32"}; -#else - auto host = "nghttp2.org"; - auto path = std::string{"/httpbin/range/32"}; -#endif - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLClient cli(host); -#else - Client cli(host); -#endif - - cli.set_default_headers({make_range_header({{1, 10}})}); - cli.set_connection_timeout(5); - - { - auto res = cli.Get(path); - ASSERT_TRUE(res); - EXPECT_EQ("bcdefghijk", res->body); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - } - - { - auto res = cli.Get(path); - ASSERT_TRUE(res); - EXPECT_EQ("bcdefghijk", res->body); - EXPECT_EQ(StatusCode::PartialContent_206, res->status); - } -} - -TEST(ServerDefaultHeadersTest, DefaultHeaders) { - Server svr; - svr.set_default_headers({{"Hello", "World"}}); - - svr.Get("/", [&](const Request & /*req*/, Response &res) { - res.set_content("ok", "text/plain"); - }); - - auto listen_thread = std::thread([&svr]() { svr.listen("localhost", PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli("localhost", PORT); - - auto res = cli.Get("/"); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("ok", res->body); - EXPECT_EQ("World", res->get_header_value("Hello")); -} - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT -TEST(KeepAliveTest, ReadTimeoutSSL) { - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE); - ASSERT_TRUE(svr.is_valid()); - - svr.Get("/a", [&](const Request & /*req*/, Response &res) { - std::this_thread::sleep_for(std::chrono::seconds(2)); - res.set_content("a", "text/plain"); - }); - - svr.Get("/b", [&](const Request & /*req*/, Response &res) { - res.set_content("b", "text/plain"); - }); - - auto listen_thread = std::thread([&svr]() { svr.listen("localhost", PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - SSLClient cli("localhost", PORT); - cli.enable_server_certificate_verification(false); - cli.set_keep_alive(true); - cli.set_read_timeout(std::chrono::seconds(1)); - - auto resa = cli.Get("/a"); - ASSERT_TRUE(!resa); - EXPECT_EQ(Error::Read, resa.error()); - - auto resb = cli.Get("/b"); - ASSERT_TRUE(resb); - EXPECT_EQ(StatusCode::OK_200, resb->status); - EXPECT_EQ("b", resb->body); -} -#endif - -class ServerTestWithAI_PASSIVE : public ::testing::Test { -protected: - ServerTestWithAI_PASSIVE() - : cli_(HOST, PORT) -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - , - svr_(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE) -#endif - { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - cli_.enable_server_certificate_verification(false); -#endif - } - - virtual void SetUp() { - svr_.Get("/hi", [&](const Request & /*req*/, Response &res) { - res.set_content("Hello World!", "text/plain"); - }); - - t_ = thread( - [&]() { ASSERT_TRUE(svr_.listen(std::string(), PORT, AI_PASSIVE)); }); - - svr_.wait_until_ready(); - } - - virtual void TearDown() { - svr_.stop(); - t_.join(); - } - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLClient cli_; - SSLServer svr_; -#else - Client cli_; - Server svr_; -#endif - thread t_; -}; - -TEST_F(ServerTestWithAI_PASSIVE, GetMethod200) { - auto res = cli_.Get("/hi"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("text/plain", res->get_header_value("Content-Type")); - EXPECT_EQ("Hello World!", res->body); -} - -class ServerUpDownTest : public ::testing::Test { -protected: - ServerUpDownTest() : cli_(HOST, PORT) {} - - virtual void SetUp() { - t_ = thread([&]() { - svr_.bind_to_any_port(HOST); - std::this_thread::sleep_for(std::chrono::milliseconds(500)); - ASSERT_TRUE(svr_.listen_after_bind()); - }); - - svr_.wait_until_ready(); - } - - virtual void TearDown() { - svr_.stop(); - t_.join(); - } - - Client cli_; - Server svr_; - thread t_; -}; - -TEST_F(ServerUpDownTest, QuickStartStop) { - // Should not crash, especially when run with - // --gtest_filter=ServerUpDownTest.QuickStartStop --gtest_repeat=1000 -} - -class PayloadMaxLengthTest : public ::testing::Test { -protected: - PayloadMaxLengthTest() - : cli_(HOST, PORT) -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - , - svr_(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE) -#endif - { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - cli_.enable_server_certificate_verification(false); -#endif - } - - virtual void SetUp() { - svr_.set_payload_max_length(8); - - svr_.Post("/test", [&](const Request & /*req*/, Response &res) { - res.set_content("test", "text/plain"); - }); - - t_ = thread([&]() { ASSERT_TRUE(svr_.listen(HOST, PORT)); }); - - svr_.wait_until_ready(); - } - - virtual void TearDown() { - svr_.stop(); - t_.join(); - } - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLClient cli_; - SSLServer svr_; -#else - Client cli_; - Server svr_; -#endif - thread t_; -}; - -TEST_F(PayloadMaxLengthTest, ExceedLimit) { - auto res = cli_.Post("/test", "123456789", "text/plain"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PayloadTooLarge_413, res->status); - - res = cli_.Post("/test", "12345678", "text/plain"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(PayloadMaxLengthTest, ChunkedEncodingSecurityTest) { - // Test chunked encoding with payload exceeding the 8-byte limit - std::string large_chunked_data(16, 'A'); // 16 bytes, exceeds 8-byte limit - - auto res = cli_.Post("/test", large_chunked_data, "text/plain"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PayloadTooLarge_413, res->status); -} - -TEST_F(PayloadMaxLengthTest, ChunkedEncodingWithinLimit) { - // Test chunked encoding with payload within the 8-byte limit - std::string small_chunked_data(4, 'B'); // 4 bytes, within 8-byte limit - - auto res = cli_.Post("/test", small_chunked_data, "text/plain"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(PayloadMaxLengthTest, RawSocketChunkedTest) { - // Test using send_request to send chunked data exceeding payload limit - std::string chunked_request = "POST /test HTTP/1.1\r\n" - "Host: " + - std::string(HOST) + ":" + std::to_string(PORT) + - "\r\n" - "Transfer-Encoding: chunked\r\n" - "Connection: close\r\n" - "\r\n" - "a\r\n" // 10 bytes chunk (exceeds 8-byte limit) - "0123456789\r\n" - "0\r\n" // End chunk - "\r\n"; - - std::string response; - bool result = send_request(1, chunked_request, &response); - - if (!result) { - // If send_request fails, it might be because the server closed the - // connection due to payload limit enforcement, which is acceptable - SUCCEED() - << "Server rejected oversized chunked request (connection closed)"; - } else { - // If we got a response, check if it's an error response or connection was - // closed early Short response length indicates connection was closed due to - // payload limit - if (response.length() <= 10) { - SUCCEED() << "Server closed connection for oversized chunked request"; - } else { - // Check for error status codes - EXPECT_TRUE(response.find("413") != std::string::npos || - response.find("Payload Too Large") != std::string::npos || - response.find("400") != std::string::npos); - } - } -} - -TEST_F(PayloadMaxLengthTest, NoContentLengthPayloadLimit) { - // Test request without Content-Length header exceeding payload limit - std::string request_without_content_length = "POST /test HTTP/1.1\r\n" - "Host: " + - std::string(HOST) + ":" + - std::to_string(PORT) + - "\r\n" - "Connection: close\r\n" - "\r\n"; - - // Add payload exceeding the 8-byte limit - std::string large_payload(16, 'X'); // 16 bytes, exceeds 8-byte limit - request_without_content_length += large_payload; - - std::string response; - bool result = send_request(1, request_without_content_length, &response); - - if (!result) { - // If send_request fails, server likely closed connection due to payload - // limit - SUCCEED() << "Server rejected oversized request without Content-Length " - "(connection closed)"; - } else { - // Check if server responded with error or closed connection early - if (response.length() <= 10) { - SUCCEED() << "Server closed connection for oversized request without " - "Content-Length"; - } else { - // Check for error status codes - EXPECT_TRUE(response.find("413") != std::string::npos || - response.find("Payload Too Large") != std::string::npos || - response.find("400") != std::string::npos); - } - } -} - -TEST_F(PayloadMaxLengthTest, NoContentLengthWithinLimit) { - // Test request without Content-Length header within payload limit - std::string request_without_content_length = "POST /test HTTP/1.1\r\n" - "Host: " + - std::string(HOST) + ":" + - std::to_string(PORT) + - "\r\n" - "Connection: close\r\n" - "\r\n"; - - // Add payload within the 8-byte limit - std::string small_payload(4, 'Y'); // 4 bytes, within 8-byte limit - request_without_content_length += small_payload; - - std::string response; - bool result = send_request(1, request_without_content_length, &response); - - // For requests without Content-Length, the server may have different behavior - // The key is that it should not reject due to payload limit for small - // payloads - if (result) { - // Check for any HTTP response (success or error, but not connection closed) - if (response.length() > 10) { - SUCCEED() - << "Server processed request without Content-Length within limit"; - } else { - // Short response might indicate connection closed, which is acceptable - SUCCEED() << "Server closed connection for request without " - "Content-Length (acceptable behavior)"; - } - } else { - // Connection failure might be due to protocol requirements - SUCCEED() << "Connection issue with request without Content-Length " - "(environment-specific)"; - } -} - -class LargePayloadMaxLengthTest : public ::testing::Test { -protected: - LargePayloadMaxLengthTest() - : cli_(HOST, PORT) -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - , - svr_(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE) -#endif - { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - cli_.enable_server_certificate_verification(false); -#endif - } - - virtual void SetUp() { - // Set 10MB payload limit - const size_t LARGE_PAYLOAD_LIMIT = 10 * 1024 * 1024; // 10MB - svr_.set_payload_max_length(LARGE_PAYLOAD_LIMIT); - - svr_.Post("/test", [&](const Request & /*req*/, Response &res) { - res.set_content("Large payload test", "text/plain"); - }); - - t_ = thread([&]() { ASSERT_TRUE(svr_.listen(HOST, PORT)); }); - svr_.wait_until_ready(); - } - - virtual void TearDown() { - svr_.stop(); - t_.join(); - } - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - SSLClient cli_; - SSLServer svr_; -#else - Client cli_; - Server svr_; -#endif - thread t_; -}; - -TEST_F(LargePayloadMaxLengthTest, ChunkedEncodingWithin10MB) { - // Test chunked encoding with payload within 10MB limit - std::string medium_payload(5 * 1024 * 1024, - 'A'); // 5MB payload, within 10MB limit - - auto res = cli_.Post("/test", medium_payload, "application/octet-stream"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST_F(LargePayloadMaxLengthTest, ChunkedEncodingExceeds10MB) { - // Test chunked encoding with payload exceeding 10MB limit - std::string large_payload(12 * 1024 * 1024, - 'B'); // 12MB payload, exceeds 10MB limit - - auto res = cli_.Post("/test", large_payload, "application/octet-stream"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::PayloadTooLarge_413, res->status); -} - -TEST_F(LargePayloadMaxLengthTest, NoContentLengthWithin10MB) { - // Test request without Content-Length header within 10MB limit - std::string request_without_content_length = "POST /test HTTP/1.1\r\n" - "Host: " + - std::string(HOST) + ":" + - std::to_string(PORT) + - "\r\n" - "Connection: close\r\n" - "\r\n"; - - // Add 1MB payload (within 10MB limit) - std::string medium_payload(1024 * 1024, 'C'); // 1MB payload - request_without_content_length += medium_payload; - - std::string response; - bool result = send_request(5, request_without_content_length, &response); - - if (result) { - // Should get a proper HTTP response for payloads within limit - if (response.length() > 10) { - SUCCEED() << "Server processed 1MB request without Content-Length within " - "10MB limit"; - } else { - SUCCEED() << "Server closed connection (acceptable behavior for no " - "Content-Length)"; - } - } else { - SUCCEED() << "Connection issue with 1MB payload (environment-specific)"; - } -} - -TEST_F(LargePayloadMaxLengthTest, NoContentLengthExceeds10MB) { - // Test request without Content-Length header exceeding 10MB limit - std::string request_without_content_length = "POST /test HTTP/1.1\r\n" - "Host: " + - std::string(HOST) + ":" + - std::to_string(PORT) + - "\r\n" - "Connection: close\r\n" - "\r\n"; - - // Add 12MB payload (exceeds 10MB limit) - std::string large_payload(12 * 1024 * 1024, 'D'); // 12MB payload - request_without_content_length += large_payload; - - std::string response; - bool result = send_request(10, request_without_content_length, &response); - - if (!result) { - // Server should close connection due to payload limit - SUCCEED() << "Server rejected 12MB request without Content-Length " - "(connection closed)"; - } else { - // Check for error response - if (response.length() <= 10) { - SUCCEED() - << "Server closed connection for 12MB request exceeding 10MB limit"; - } else { - EXPECT_TRUE(response.find("413") != std::string::npos || - response.find("Payload Too Large") != std::string::npos || - response.find("400") != std::string::npos); - } - } -} - -TEST(HostAndPortPropertiesTest, NoSSL) { - httplib::Client cli("www.google.com", 1234); - ASSERT_EQ("www.google.com", cli.host()); - ASSERT_EQ(1234, cli.port()); -} - -TEST(HostAndPortPropertiesTest, NoSSLWithSimpleAPI) { - httplib::Client cli("www.google.com:1234"); - ASSERT_EQ("www.google.com", cli.host()); - ASSERT_EQ(1234, cli.port()); -} - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT -TEST(HostAndPortPropertiesTest, SSL) { - httplib::SSLClient cli("www.google.com"); - ASSERT_EQ("www.google.com", cli.host()); - ASSERT_EQ(443, cli.port()); -} -#endif - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT -TEST(SSLClientTest, UpdateCAStore) { - httplib::SSLClient httplib_client("www.google.com"); - auto ca_store_1 = X509_STORE_new(); - X509_STORE_load_locations(ca_store_1, "/etc/ssl/certs/ca-certificates.crt", - nullptr); - httplib_client.set_ca_cert_store(ca_store_1); - - auto ca_store_2 = X509_STORE_new(); - X509_STORE_load_locations(ca_store_2, "/etc/ssl/certs/ca-certificates.crt", - nullptr); - httplib_client.set_ca_cert_store(ca_store_2); -} - -TEST(SSLClientTest, ServerNameIndication_Online) { -#ifdef CPPHTTPLIB_DEFAULT_HTTPBIN - auto host = "httpbin.org"; - auto path = std::string{"/get"}; -#else - auto host = "nghttp2.org"; - auto path = std::string{"/httpbin/get"}; -#endif - - SSLClient cli(host, 443); - auto res = cli.Get(path); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); -} - -TEST(SSLClientTest, ServerCertificateVerificationError_Online) { - // Use a site that will cause SSL verification failure due to self-signed cert - SSLClient cli("self-signed.badssl.com", 443); - cli.enable_server_certificate_verification(true); - auto res = cli.Get("/"); - - ASSERT_TRUE(!res); - EXPECT_EQ(Error::SSLServerVerification, res.error()); - - // For SSL server verification errors, ssl_error should be 0, only - // ssl_openssl_error should be set - EXPECT_EQ(0, res.ssl_error()); - - // Verify OpenSSL error is captured for SSLServerVerification - // This occurs when SSL_get_verify_result() returns a verification failure - EXPECT_EQ(static_cast(X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT), - res.ssl_openssl_error()); -} - -TEST(SSLClientTest, ServerHostnameVerificationError_Online) { - // Use a site where hostname doesn't match the certificate - // badssl.com provides wrong.host.badssl.com which has cert for *.badssl.com - SSLClient cli("wrong.host.badssl.com", 443); - cli.enable_server_certificate_verification(true); - cli.enable_server_hostname_verification(true); - - auto res = cli.Get("/"); - ASSERT_TRUE(!res); - - EXPECT_EQ(Error::SSLServerHostnameVerification, res.error()); - - // For SSL hostname verification errors, ssl_error should be 0, only - // ssl_openssl_error should be set - EXPECT_EQ(0, res.ssl_error()); - - // Verify OpenSSL error is captured for SSLServerHostnameVerification - // This occurs when verify_host() fails due to hostname mismatch - EXPECT_EQ(static_cast(X509_V_ERR_HOSTNAME_MISMATCH), - res.ssl_openssl_error()); -} - -TEST(SSLClientTest, ServerCertificateVerification1_Online) { - Client cli("https://google.com"); - auto res = cli.Get("/"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::MovedPermanently_301, res->status); -} - -TEST(SSLClientTest, ServerCertificateVerification2_Online) { - SSLClient cli("google.com"); - cli.set_ca_cert_path(CA_CERT_FILE); - auto res = cli.Get("/"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::MovedPermanently_301, res->status); -} - -TEST(SSLClientTest, ServerCertificateVerification3_Online) { - SSLClient cli("google.com"); - cli.enable_server_certificate_verification(true); - cli.set_ca_cert_path("hello"); - - auto res = cli.Get("/"); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::SSLLoadingCerts, res.error()); - - // For SSL_CTX operations, ssl_error should be 0, only ssl_openssl_error - // should be set - EXPECT_EQ(0, res.ssl_error()); - - // Verify OpenSSL error is captured for SSLLoadingCerts - // This error occurs when SSL_CTX_load_verify_locations() fails - // > openssl errstr 0x80000002 - // error:80000002:system library::No such file or directory - // > openssl errstr 0xA000126 - // error:0A000126:SSL routines::unexpected eof while reading - EXPECT_TRUE(res.ssl_openssl_error() == 0x80000002 || - res.ssl_openssl_error() == 0xA000126); -} - -TEST(SSLClientTest, ServerCertificateVerification4) { - SSLServer svr(SERVER_CERT2_FILE, SERVER_PRIVATE_KEY_FILE); - ASSERT_TRUE(svr.is_valid()); - - svr.Get("/test", [&](const Request &, Response &res) { - res.set_content("test", "text/plain"); - svr.stop(); - ASSERT_TRUE(true); - }); - - thread t = thread([&]() { ASSERT_TRUE(svr.listen("127.0.0.1", PORT)); }); - auto se = detail::scope_exit([&] { - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - SSLClient cli("127.0.0.1", PORT); - cli.set_ca_cert_path(SERVER_CERT2_FILE); - cli.enable_server_certificate_verification(true); - cli.set_connection_timeout(30); - - auto res = cli.Get("/test"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); -} - -TEST(SSLClientTest, ServerCertificateVerification5_Online) { - std::string cert; - read_file(CA_CERT_FILE, cert); - - SSLClient cli("google.com"); - cli.load_ca_cert_store(cert.data(), cert.size()); - const auto res = cli.Get("/"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::MovedPermanently_301, res->status); -} - -TEST(SSLClientTest, ServerCertificateVerification6_Online) { - // clang-format off - static constexpr char cert[] = - "GlobalSign Root CA\n" - "==================\n" - "-----BEGIN CERTIFICATE-----\n" - "MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx\n" - "GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds\n" - "b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV\n" - "BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD\n" - "VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa\n" - "DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc\n" - "THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb\n" - "Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP\n" - "c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX\n" - "gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV\n" - "HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF\n" - "AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj\n" - "Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG\n" - "j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH\n" - "hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC\n" - "X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==\n" - "-----END CERTIFICATE-----\n"; - // clang-format on - - SSLClient cli("google.com"); - cli.load_ca_cert_store(cert, sizeof(cert)); - const auto res = cli.Get("/"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::MovedPermanently_301, res->status); -} - -TEST(SSLClientTest, WildcardHostNameMatch_Online) { - SSLClient cli("www.youtube.com"); - - cli.set_ca_cert_path(CA_CERT_FILE); - cli.enable_server_certificate_verification(true); - cli.set_follow_location(true); - - auto res = cli.Get("/"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); -} - -TEST(SSLClientTest, Issue2004_Online) { - Client client("https://google.com"); - client.set_follow_location(true); - - auto res = client.Get("/"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - - auto body = res->body; - EXPECT_EQ(body.substr(0, 15), ""); -} - -#if 0 -TEST(SSLClientTest, SetInterfaceWithINET6) { - auto cli = std::make_shared("https://httpbin.org"); - ASSERT_TRUE(cli != nullptr); - - cli->set_address_family(AF_INET6); - cli->set_interface("en0"); - - auto res = cli->Get("/get"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); -} -#endif - -void ClientCertPresent( - const std::string &client_cert_file, - const std::string &client_private_key_file, - const std::string &client_encrypted_private_key_pass = std::string()) { - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE, CLIENT_CA_CERT_FILE, - CLIENT_CA_CERT_DIR); - ASSERT_TRUE(svr.is_valid()); - - svr.Get("/test", [&](const Request &req, Response &res) { - res.set_content("test", "text/plain"); - - auto peer_cert = SSL_get_peer_certificate(req.ssl); - ASSERT_TRUE(peer_cert != nullptr); - - auto subject_name = X509_get_subject_name(peer_cert); - ASSERT_TRUE(subject_name != nullptr); - - std::string common_name; - { - char name[BUFSIZ]; - auto name_len = X509_NAME_get_text_by_NID(subject_name, NID_commonName, - name, sizeof(name)); - common_name.assign(name, static_cast(name_len)); - } - - EXPECT_EQ("Common Name", common_name); - - X509_free(peer_cert); - }); - - thread t = thread([&]() { ASSERT_TRUE(svr.listen(HOST, PORT)); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - SSLClient cli(HOST, PORT, client_cert_file, client_private_key_file, - client_encrypted_private_key_pass); - cli.enable_server_certificate_verification(false); - cli.set_connection_timeout(30); - - auto res = cli.Get("/test"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); -} - -TEST(SSLClientServerTest, ClientCertPresent) { - ClientCertPresent(CLIENT_CERT_FILE, CLIENT_PRIVATE_KEY_FILE); -} - -TEST(SSLClientServerTest, ClientEncryptedCertPresent) { - ClientCertPresent(CLIENT_ENCRYPTED_CERT_FILE, - CLIENT_ENCRYPTED_PRIVATE_KEY_FILE, - CLIENT_ENCRYPTED_PRIVATE_KEY_PASS); -} - -#if !defined(_WIN32) || defined(OPENSSL_USE_APPLINK) -void MemoryClientCertPresent( - const std::string &client_cert_file, - const std::string &client_private_key_file, - const std::string &client_encrypted_private_key_pass = std::string()) { - auto f = fopen(SERVER_CERT_FILE, "r+"); - auto server_cert = PEM_read_X509(f, nullptr, nullptr, nullptr); - fclose(f); - - f = fopen(SERVER_PRIVATE_KEY_FILE, "r+"); - auto server_private_key = PEM_read_PrivateKey(f, nullptr, nullptr, nullptr); - fclose(f); - - f = fopen(CLIENT_CA_CERT_FILE, "r+"); - auto client_cert = PEM_read_X509(f, nullptr, nullptr, nullptr); - auto client_ca_cert_store = X509_STORE_new(); - X509_STORE_add_cert(client_ca_cert_store, client_cert); - X509_free(client_cert); - fclose(f); - - f = fopen(client_cert_file.c_str(), "r+"); - client_cert = PEM_read_X509(f, nullptr, nullptr, nullptr); - fclose(f); - - f = fopen(client_private_key_file.c_str(), "r+"); - auto client_private_key = PEM_read_PrivateKey( - f, nullptr, nullptr, (void *)client_encrypted_private_key_pass.c_str()); - fclose(f); - - SSLServer svr(server_cert, server_private_key, client_ca_cert_store); - ASSERT_TRUE(svr.is_valid()); - - svr.Get("/test", [&](const Request &req, Response &res) { - res.set_content("test", "text/plain"); - - auto peer_cert = SSL_get_peer_certificate(req.ssl); - ASSERT_TRUE(peer_cert != nullptr); - - auto subject_name = X509_get_subject_name(peer_cert); - ASSERT_TRUE(subject_name != nullptr); - - std::string common_name; - { - char name[BUFSIZ]; - auto name_len = X509_NAME_get_text_by_NID(subject_name, NID_commonName, - name, sizeof(name)); - common_name.assign(name, static_cast(name_len)); - } - - EXPECT_EQ("Common Name", common_name); - - X509_free(peer_cert); - }); - - thread t = thread([&]() { ASSERT_TRUE(svr.listen(HOST, PORT)); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - SSLClient cli(HOST, PORT, client_cert, client_private_key, - client_encrypted_private_key_pass); - cli.enable_server_certificate_verification(false); - cli.set_connection_timeout(30); - - auto res = cli.Get("/test"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - - X509_free(server_cert); - EVP_PKEY_free(server_private_key); - X509_free(client_cert); - EVP_PKEY_free(client_private_key); -} - -TEST(SSLClientServerTest, MemoryClientCertPresent) { - MemoryClientCertPresent(CLIENT_CERT_FILE, CLIENT_PRIVATE_KEY_FILE); -} - -TEST(SSLClientServerTest, MemoryClientEncryptedCertPresent) { - MemoryClientCertPresent(CLIENT_ENCRYPTED_CERT_FILE, - CLIENT_ENCRYPTED_PRIVATE_KEY_FILE, - CLIENT_ENCRYPTED_PRIVATE_KEY_PASS); -} -#endif - -TEST(SSLClientServerTest, ClientCertMissing) { - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE, CLIENT_CA_CERT_FILE, - CLIENT_CA_CERT_DIR); - ASSERT_TRUE(svr.is_valid()); - - svr.Get("/test", [&](const Request &, Response &) { ASSERT_TRUE(false); }); - - thread t = thread([&]() { ASSERT_TRUE(svr.listen(HOST, PORT)); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - SSLClient cli(HOST, PORT); - cli.set_connection_timeout(30); - - auto res = cli.Get("/test"); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::SSLServerVerification, res.error()); - - // For SSL server verification errors, ssl_error should be 0, only - // ssl_openssl_error should be set - EXPECT_EQ(0, res.ssl_error()); - - // Verify OpenSSL error is captured for SSLServerVerification - // Note: This test may have different error codes depending on the exact - // verification failure - EXPECT_NE(0UL, res.ssl_openssl_error()); -} - -TEST(SSLClientServerTest, TrustDirOptional) { - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE, CLIENT_CA_CERT_FILE); - ASSERT_TRUE(svr.is_valid()); - - svr.Get("/test", [&](const Request &, Response &res) { - res.set_content("test", "text/plain"); - }); - - thread t = thread([&]() { ASSERT_TRUE(svr.listen(HOST, PORT)); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - SSLClient cli(HOST, PORT, CLIENT_CERT_FILE, CLIENT_PRIVATE_KEY_FILE); - cli.enable_server_certificate_verification(false); - cli.set_connection_timeout(30); - - auto res = cli.Get("/test"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); -} - -TEST(SSLClientServerTest, SSLConnectTimeout) { - class NoListenSSLServer : public SSLServer { - public: - NoListenSSLServer(const char *cert_path, const char *private_key_path, - const char *client_ca_cert_file_path, - const char *client_ca_cert_dir_path = nullptr) - : SSLServer(cert_path, private_key_path, client_ca_cert_file_path, - client_ca_cert_dir_path), - stop_(false) {} - - std::atomic_bool stop_; - - private: - bool process_and_close_socket(socket_t /*sock*/) override { - // Don't create SSL context - while (!stop_.load()) { - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - } - return true; - } - }; - NoListenSSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE, - CLIENT_CA_CERT_FILE); - ASSERT_TRUE(svr.is_valid()); - - svr.Get("/test", [&](const Request &, Response &res) { - res.set_content("test", "text/plain"); - }); - - thread t = thread([&]() { ASSERT_TRUE(svr.listen(HOST, PORT)); }); - auto se = detail::scope_exit([&] { - svr.stop_ = true; - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - SSLClient cli(HOST, PORT, CLIENT_CERT_FILE, CLIENT_PRIVATE_KEY_FILE); - cli.enable_server_certificate_verification(false); - cli.set_connection_timeout(1); - - auto res = cli.Get("/test"); - ASSERT_TRUE(!res); - EXPECT_EQ(Error::SSLConnection, res.error()); - EXPECT_EQ(SSL_ERROR_WANT_READ, res.ssl_error()); -} - -TEST(SSLClientServerTest, CustomizeServerSSLCtx) { - auto setup_ssl_ctx_callback = [](SSL_CTX &ssl_ctx) { - SSL_CTX_set_options(&ssl_ctx, SSL_OP_NO_COMPRESSION); - SSL_CTX_set_options(&ssl_ctx, - SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION); - SSL_CTX_set_options(&ssl_ctx, SSL_OP_NO_SSLv2); - SSL_CTX_set_options(&ssl_ctx, SSL_OP_NO_SSLv3); - SSL_CTX_set_options(&ssl_ctx, SSL_OP_NO_TLSv1); - SSL_CTX_set_options(&ssl_ctx, SSL_OP_NO_TLSv1_1); - auto ciphers = "ECDHE-RSA-AES128-SHA256:" - "ECDHE-DSS-AES128-SHA256:" - "ECDHE-RSA-AES256-SHA256:" - "ECDHE-DSS-AES256-SHA256:"; - SSL_CTX_set_cipher_list(&ssl_ctx, ciphers); - if (SSL_CTX_use_certificate_chain_file(&ssl_ctx, SERVER_CERT_FILE) != 1 || - SSL_CTX_use_PrivateKey_file(&ssl_ctx, SERVER_PRIVATE_KEY_FILE, - SSL_FILETYPE_PEM) != 1) { - return false; - } - SSL_CTX_load_verify_locations(&ssl_ctx, CLIENT_CA_CERT_FILE, - CLIENT_CA_CERT_DIR); - SSL_CTX_set_verify( - &ssl_ctx, - SSL_VERIFY_PEER | - SSL_VERIFY_FAIL_IF_NO_PEER_CERT, // SSL_VERIFY_CLIENT_ONCE, - nullptr); - return true; - }; - - SSLServer svr(setup_ssl_ctx_callback); - ASSERT_TRUE(svr.is_valid()); - - svr.Get("/test", [&](const Request &req, Response &res) { - res.set_content("test", "text/plain"); - - auto peer_cert = SSL_get_peer_certificate(req.ssl); - ASSERT_TRUE(peer_cert != nullptr); - - auto subject_name = X509_get_subject_name(peer_cert); - ASSERT_TRUE(subject_name != nullptr); - - std::string common_name; - { - char name[BUFSIZ]; - auto name_len = X509_NAME_get_text_by_NID(subject_name, NID_commonName, - name, sizeof(name)); - common_name.assign(name, static_cast(name_len)); - } - - EXPECT_EQ("Common Name", common_name); - - X509_free(peer_cert); - }); - - thread t = thread([&]() { ASSERT_TRUE(svr.listen(HOST, PORT)); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - SSLClient cli(HOST, PORT, CLIENT_CERT_FILE, CLIENT_PRIVATE_KEY_FILE); - cli.enable_server_certificate_verification(false); - cli.set_connection_timeout(30); - - auto res = cli.Get("/test"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); -} - -// Disabled due to the out-of-memory problem on GitHub Actions Workflows -TEST(SSLClientServerTest, DISABLED_LargeDataTransfer) { - - // prepare large data - std::random_device seed_gen; - std::mt19937 random(seed_gen()); - constexpr auto large_size_byte = 2147483648UL + 1048576UL; // 2GiB + 1MiB - std::vector binary(large_size_byte / sizeof(std::uint32_t)); - std::generate(binary.begin(), binary.end(), [&random]() { return random(); }); - - // server - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE); - ASSERT_TRUE(svr.is_valid()); - - svr.Post("/binary", [&](const Request &req, Response &res) { - EXPECT_EQ(large_size_byte, req.body.size()); - EXPECT_EQ(0, std::memcmp(binary.data(), req.body.data(), large_size_byte)); - res.set_content(req.body, "application/octet-stream"); - }); - - auto listen_thread = std::thread([&svr]() { svr.listen("localhost", PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - // client POST - SSLClient cli("localhost", PORT); - cli.enable_server_certificate_verification(false); - cli.set_read_timeout(std::chrono::seconds(100)); - cli.set_write_timeout(std::chrono::seconds(100)); - auto res = cli.Post("/binary", reinterpret_cast(binary.data()), - large_size_byte, "application/octet-stream"); - - // compare - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(large_size_byte, res->body.size()); - EXPECT_EQ(0, std::memcmp(binary.data(), res->body.data(), large_size_byte)); -} -#endif - -#ifdef _WIN32 -TEST(CleanupTest, WSACleanup) { - int ret = WSACleanup(); - ASSERT_EQ(0, ret); -} -#endif - -#ifndef CPPHTTPLIB_OPENSSL_SUPPORT -TEST(NoSSLSupport, SimpleInterface) { - ASSERT_ANY_THROW(Client cli("https://yahoo.com")); -} -#endif - -#ifndef CPPHTTPLIB_NO_EXCEPTIONS -TEST(InvalidScheme, SimpleInterface) { - ASSERT_ANY_THROW(Client cli("scheme://yahoo.com")); -} -#endif - -TEST(NoScheme, SimpleInterface) { - Client cli("yahoo.com:80"); - ASSERT_TRUE(cli.is_valid()); -} - -TEST(SendAPI, SimpleInterface_Online) { - Client cli("http://yahoo.com"); - - Request req; - req.method = "GET"; - req.path = "/"; - auto res = cli.send(req); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::MovedPermanently_301, res->status); -} - -TEST(SendAPI, WithParamsInRequest) { - Server svr; - - svr.Get("/", [&](const Request &req, Response & /*res*/) { - EXPECT_TRUE(req.has_param("test")); - EXPECT_EQ("test_value", req.get_param_value("test")); - }); - - auto t = std::thread([&]() { svr.listen(HOST, PORT); }); - - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - - { - Request req; - req.method = "GET"; - req.path = "/"; - req.params.emplace("test", "test_value"); - auto res = cli.send(req); - ASSERT_TRUE(res); - } - { - auto res = cli.Get("/", {{"test", "test_value"}}, Headers{}); - ASSERT_TRUE(res); - } -} - -TEST(ClientImplMethods, GetSocketTest) { - httplib::Server svr; - svr.Get("/", [&](const httplib::Request & /*req*/, httplib::Response &res) { - res.status = StatusCode::OK_200; - }); - - auto thread = std::thread([&]() { svr.listen("127.0.0.1", 3333); }); - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - httplib::Client cli("http://127.0.0.1:3333"); - cli.set_keep_alive(true); - - // Use the behavior of cpp-httplib of opening the connection - // only when the first request happens. If that changes, - // this test would be obsolete. - - EXPECT_EQ(cli.socket(), INVALID_SOCKET); - - // This also implicitly tests the server. But other tests would fail much - // earlier than this one to be considered. - - auto res = cli.Get("/"); - ASSERT_TRUE(res); - - EXPECT_EQ(StatusCode::OK_200, res->status); - ASSERT_TRUE(cli.socket() != INVALID_SOCKET); - } -} - -// Disabled due to out-of-memory problem on GitHub Actions -#ifdef _WIN64 -TEST(ServerLargeContentTest, DISABLED_SendLargeContent) { - // allocate content size larger than 2GB in memory - const size_t content_size = 2LL * 1024LL * 1024LL * 1024LL + 1LL; - char *content = (char *)malloc(content_size); - ASSERT_TRUE(content); - - Server svr; - svr.Get("/foo", - [=](const httplib::Request & /*req*/, httplib::Response &res) { - res.set_content(content, content_size, "application/octet-stream"); - }); - - auto listen_thread = std::thread([&svr]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - if (content) free(content); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - auto res = cli.Get("/foo"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(content_size, res->body.length()); -} -#endif - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT -TEST(YahooRedirectTest2, SimpleInterface_Online) { - Client cli("http://yahoo.com"); - - auto res = cli.Get("/"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::MovedPermanently_301, res->status); - - cli.set_follow_location(true); - res = cli.Get("/"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("https://www.yahoo.com/", res->location); -} - -TEST(YahooRedirectTest3, SimpleInterface_Online) { - Client cli("https://yahoo.com"); - - auto res = cli.Get("/"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::MovedPermanently_301, res->status); - - cli.set_follow_location(true); - res = cli.Get("/"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("https://www.yahoo.com/", res->location); -} - -TEST(YahooRedirectTest3, NewResultInterface_Online) { - Client cli("https://yahoo.com"); - - auto res = cli.Get("/"); - ASSERT_TRUE(res); - ASSERT_FALSE(!res); - ASSERT_TRUE(res); - ASSERT_FALSE(res == nullptr); - ASSERT_TRUE(res != nullptr); - EXPECT_EQ(Error::Success, res.error()); - EXPECT_EQ(StatusCode::MovedPermanently_301, res.value().status); - EXPECT_EQ(StatusCode::MovedPermanently_301, (*res).status); - EXPECT_EQ(StatusCode::MovedPermanently_301, res->status); - - cli.set_follow_location(true); - res = cli.Get("/"); - ASSERT_TRUE(res); - EXPECT_EQ(Error::Success, res.error()); - EXPECT_EQ(StatusCode::OK_200, res.value().status); - EXPECT_EQ(StatusCode::OK_200, (*res).status); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("https://www.yahoo.com/", res->location); -} - -#ifdef CPPHTTPLIB_BROTLI_SUPPORT -TEST(DecodeWithChunkedEncoding, BrotliEncoding_Online) { - Client cli("https://cdnjs.cloudflare.com"); - auto res = - cli.Get("/ajax/libs/jquery/3.5.1/jquery.js", {{"Accept-Encoding", "br"}}); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(287630U, res->body.size()); - EXPECT_EQ("application/javascript; charset=utf-8", - res->get_header_value("Content-Type")); -} -#endif - -// Previously "https://nghttp2.org" "/httpbin/redirect-to" -#undef REDIR_HOST // Silence compiler warning -#define REDIR_HOST "https://httpbingo.org" - -TEST(HttpsToHttpRedirectTest, SimpleInterface_Online) { - Client cli(REDIR_HOST); - cli.set_follow_location(true); - auto res = - cli.Get(REDIR_PATH "?url=http%3A%2F%2Fexample.com&status_code=302"); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST(HttpsToHttpRedirectTest2, SimpleInterface_Online) { - Client cli(REDIR_HOST); - cli.set_follow_location(true); - - Params params; - params.emplace("url", "http://example.com"); - params.emplace("status_code", "302"); - - auto res = cli.Get(REDIR_PATH, params, Headers{}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST(HttpsToHttpRedirectTest3, SimpleInterface_Online) { - Client cli(REDIR_HOST); - cli.set_follow_location(true); - - Params params; - params.emplace("url", "http://example.com"); - - auto res = cli.Get(REDIR_PATH "?status_code=302", params, Headers{}); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST(HttpToHttpsRedirectTest, CertFile) { - Server svr; - ASSERT_TRUE(svr.is_valid()); - svr.Get("/index", [&](const Request &, Response &res) { - res.set_redirect("https://127.0.0.1:1235/index"); - svr.stop(); - }); - - SSLServer ssl_svr(SERVER_CERT2_FILE, SERVER_PRIVATE_KEY_FILE); - ASSERT_TRUE(ssl_svr.is_valid()); - ssl_svr.Get("/index", [&](const Request &, Response &res) { - res.set_content("test", "text/plain"); - ssl_svr.stop(); - }); - - thread t = thread([&]() { ASSERT_TRUE(svr.listen("127.0.0.1", PORT)); }); - thread t2 = thread([&]() { ASSERT_TRUE(ssl_svr.listen("127.0.0.1", 1235)); }); - auto se = detail::scope_exit([&] { - t2.join(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - ssl_svr.wait_until_ready(); - - Client cli("127.0.0.1", PORT); - cli.set_ca_cert_path(SERVER_CERT2_FILE); - cli.enable_server_certificate_verification(true); - cli.set_follow_location(true); - cli.set_connection_timeout(30); - - auto res = cli.Get("/index"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); -} - -TEST(SSLClientRedirectTest, CertFile) { - SSLServer ssl_svr1(SERVER_CERT2_FILE, SERVER_PRIVATE_KEY_FILE); - ASSERT_TRUE(ssl_svr1.is_valid()); - ssl_svr1.Get("/index", [&](const Request &, Response &res) { - res.set_redirect("https://127.0.0.1:1235/index"); - ssl_svr1.stop(); - }); - - SSLServer ssl_svr2(SERVER_CERT2_FILE, SERVER_PRIVATE_KEY_FILE); - ASSERT_TRUE(ssl_svr2.is_valid()); - ssl_svr2.Get("/index", [&](const Request &, Response &res) { - res.set_content("test", "text/plain"); - ssl_svr2.stop(); - }); - - thread t = thread([&]() { ASSERT_TRUE(ssl_svr1.listen("127.0.0.1", PORT)); }); - thread t2 = - thread([&]() { ASSERT_TRUE(ssl_svr2.listen("127.0.0.1", 1235)); }); - auto se = detail::scope_exit([&] { - t2.join(); - t.join(); - ASSERT_FALSE(ssl_svr1.is_running()); - }); - - ssl_svr1.wait_until_ready(); - ssl_svr2.wait_until_ready(); - - SSLClient cli("127.0.0.1", PORT); - std::string cert; - read_file(SERVER_CERT2_FILE, cert); - cli.load_ca_cert_store(cert.c_str(), cert.size()); - cli.enable_server_certificate_verification(true); - cli.set_follow_location(true); - cli.set_connection_timeout(30); - - auto res = cli.Get("/index"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); -} - -TEST(MultipartFormDataTest, LargeData) { - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE); - - svr.Post("/post", [&](const Request &req, Response & /*res*/, - const ContentReader &content_reader) { - if (req.is_multipart_form_data()) { - std::vector items; - content_reader( - [&](const FormData &file) { - items.push_back(file); - return true; - }, - [&](const char *data, size_t data_length) { - items.back().content.append(data, data_length); - return true; - }); - - EXPECT_TRUE(std::string(items[0].name) == "document"); - EXPECT_EQ(size_t(1024 * 1024 * 2), items[0].content.size()); - EXPECT_TRUE(items[0].filename == "2MB_data"); - EXPECT_TRUE(items[0].content_type == "application/octet-stream"); - - EXPECT_TRUE(items[1].name == "hello"); - EXPECT_TRUE(items[1].content == "world"); - EXPECT_TRUE(items[1].filename == ""); - EXPECT_TRUE(items[1].content_type == ""); - } else { - std::string body; - content_reader([&](const char *data, size_t data_length) { - body.append(data, data_length); - return true; - }); - } - }); - - auto t = std::thread([&]() { svr.listen("localhost", 8080); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - std::string data(1024 * 1024 * 2, '.'); - std::stringstream buffer; - buffer << data; - - Client cli("https://localhost:8080"); - cli.enable_server_certificate_verification(false); - - UploadFormDataItems items{ - {"document", buffer.str(), "2MB_data", "application/octet-stream"}, - {"hello", "world", "", ""}, - }; - - auto res = cli.Post("/post", items); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - } -} - -TEST(MultipartFormDataTest, DataProviderItems) { - - std::random_device seed_gen; - std::mt19937 random(seed_gen()); - - std::string rand1; - rand1.resize(1000); - std::generate(rand1.begin(), rand1.end(), [&]() { return random(); }); - - std::string rand2; - rand2.resize(3000); - std::generate(rand2.begin(), rand2.end(), [&]() { return random(); }); - - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE); - - svr.Post("/post-none", [&](const Request &req, Response & /*res*/, - const ContentReader &content_reader) { - ASSERT_FALSE(req.is_multipart_form_data()); - - std::string body; - content_reader([&](const char *data, size_t data_length) { - body.append(data, data_length); - return true; - }); - - EXPECT_EQ(body, ""); - }); - - svr.Post("/post-items", [&](const Request &req, Response & /*res*/, - const ContentReader &content_reader) { - ASSERT_TRUE(req.is_multipart_form_data()); - std::vector items; - content_reader( - [&](const FormData &file) { - items.push_back(file); - return true; - }, - [&](const char *data, size_t data_length) { - items.back().content.append(data, data_length); - return true; - }); - - ASSERT_TRUE(items.size() == 2); - - EXPECT_EQ(std::string(items[0].name), "name1"); - EXPECT_EQ(items[0].content, "Testing123"); - EXPECT_EQ(items[0].filename, "filename1"); - EXPECT_EQ(items[0].content_type, "application/octet-stream"); - - EXPECT_EQ(items[1].name, "name2"); - EXPECT_EQ(items[1].content, "Testing456"); - EXPECT_EQ(items[1].filename, ""); - EXPECT_EQ(items[1].content_type, ""); - }); - - svr.Post("/post-providers", [&](const Request &req, Response & /*res*/, - const ContentReader &content_reader) { - ASSERT_TRUE(req.is_multipart_form_data()); - std::vector items; - content_reader( - [&](const FormData &file) { - items.push_back(file); - return true; - }, - [&](const char *data, size_t data_length) { - items.back().content.append(data, data_length); - return true; - }); - - ASSERT_TRUE(items.size() == 2); - - EXPECT_EQ(items[0].name, "name3"); - EXPECT_EQ(items[0].content, rand1); - EXPECT_EQ(items[0].filename, "filename3"); - EXPECT_EQ(items[0].content_type, ""); - - EXPECT_EQ(items[1].name, "name4"); - EXPECT_EQ(items[1].content, rand2); - EXPECT_EQ(items[1].filename, "filename4"); - EXPECT_EQ(items[1].content_type, ""); - }); - - svr.Post("/post-both", [&](const Request &req, Response & /*res*/, - const ContentReader &content_reader) { - ASSERT_TRUE(req.is_multipart_form_data()); - std::vector items; - content_reader( - [&](const FormData &file) { - items.push_back(file); - return true; - }, - [&](const char *data, size_t data_length) { - items.back().content.append(data, data_length); - return true; - }); - - ASSERT_TRUE(items.size() == 4); - - EXPECT_EQ(std::string(items[0].name), "name1"); - EXPECT_EQ(items[0].content, "Testing123"); - EXPECT_EQ(items[0].filename, "filename1"); - EXPECT_EQ(items[0].content_type, "application/octet-stream"); - - EXPECT_EQ(items[1].name, "name2"); - EXPECT_EQ(items[1].content, "Testing456"); - EXPECT_EQ(items[1].filename, ""); - EXPECT_EQ(items[1].content_type, ""); - - EXPECT_EQ(items[2].name, "name3"); - EXPECT_EQ(items[2].content, rand1); - EXPECT_EQ(items[2].filename, "filename3"); - EXPECT_EQ(items[2].content_type, ""); - - EXPECT_EQ(items[3].name, "name4"); - EXPECT_EQ(items[3].content, rand2); - EXPECT_EQ(items[3].filename, "filename4"); - EXPECT_EQ(items[3].content_type, ""); - }); - - auto t = std::thread([&]() { svr.listen("localhost", 8080); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - Client cli("https://localhost:8080"); - cli.enable_server_certificate_verification(false); - - UploadFormDataItems items{ - {"name1", "Testing123", "filename1", "application/octet-stream"}, - {"name2", "Testing456", "", ""}, // not a file - }; - - { - auto res = cli.Post("/post-none", {}, {}, {}); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - } - - FormDataProviderItems providers; - - { - auto res = - cli.Post("/post-items", {}, items, providers); // empty providers - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - } - - providers.push_back({"name3", - [&](size_t offset, httplib::DataSink &sink) -> bool { - // test the offset is given correctly at each step - if (!offset) - sink.os.write(rand1.data(), 30); - else if (offset == 30) - sink.os.write(rand1.data() + 30, 300); - else if (offset == 330) - sink.os.write(rand1.data() + 330, 670); - else if (offset == rand1.size()) - sink.done(); - return true; - }, - "filename3", - {}}); - - providers.push_back({"name4", - [&](size_t offset, httplib::DataSink &sink) -> bool { - // test the offset is given correctly at each step - if (!offset) - sink.os.write(rand2.data(), 2000); - else if (offset == 2000) - sink.os.write(rand2.data() + 2000, 1); - else if (offset == 2001) - sink.os.write(rand2.data() + 2001, 999); - else if (offset == rand2.size()) - sink.done(); - return true; - }, - "filename4", - {}}); - - { - auto res = cli.Post("/post-providers", {}, {}, providers); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - } - - { - auto res = cli.Post("/post-both", {}, items, providers); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - } - } -} - -TEST(MultipartFormDataTest, BadHeader) { - Server svr; - svr.Post("/post", [&](const Request & /*req*/, Response &res) { - res.set_content("ok", "text/plain"); - }); - - thread t = thread([&] { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - const std::string body = - "This is the preamble. It is to be ignored, though it\r\n" - "is a handy place for composition agents to include an\r\n" - "explanatory note to non-MIME conformant readers.\r\n" - "\r\n" - "\r\n" - "--simple boundary\r\n" - "Content-Disposition: form-data; name=\"field1\"\r\n" - ": BAD...\r\n" - "\r\n" - "value1\r\n" - "--simple boundary\r\n" - "Content-Disposition: form-data; name=\"field2\"; " - "filename=\"example.txt\"\r\n" - "\r\n" - "value2\r\n" - "--simple boundary--\r\n" - "This is the epilogue. It is also to be ignored.\r\n"; - - std::string content_type = - R"(multipart/form-data; boundary="simple boundary")"; - - Client cli(HOST, PORT); - auto res = cli.Post("/post", body, content_type.c_str()); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::BadRequest_400, res->status); -} - -TEST(MultipartFormDataTest, WithPreamble) { - Server svr; - svr.Post("/post", [&](const Request & /*req*/, Response &res) { - res.set_content("ok", "text/plain"); - }); - - thread t = thread([&] { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - const std::string body = - "This is the preamble. It is to be ignored, though it\r\n" - "is a handy place for composition agents to include an\r\n" - "explanatory note to non-MIME conformant readers.\r\n" - "\r\n" - "\r\n" - "--simple boundary\r\n" - "Content-Disposition: form-data; name=\"field1\"\r\n" - "\r\n" - "value1\r\n" - "--simple boundary\r\n" - "Content-Disposition: form-data; name=\"field2\"; " - "filename=\"example.txt\"\r\n" - "\r\n" - "value2\r\n" - "--simple boundary--\r\n" - "This is the epilogue. It is also to be ignored.\r\n"; - - std::string content_type = - R"(multipart/form-data; boundary="simple boundary")"; - - Client cli(HOST, PORT); - auto res = cli.Post("/post", body, content_type.c_str()); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST(MultipartFormDataTest, PostCustomBoundary) { - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE); - - svr.Post("/post_customboundary", [&](const Request &req, Response & /*res*/, - const ContentReader &content_reader) { - if (req.is_multipart_form_data()) { - std::vector items; - content_reader( - [&](const FormData &file) { - items.push_back(file); - return true; - }, - [&](const char *data, size_t data_length) { - items.back().content.append(data, data_length); - return true; - }); - - EXPECT_TRUE(std::string(items[0].name) == "document"); - EXPECT_EQ(size_t(1024 * 1024 * 2), items[0].content.size()); - EXPECT_TRUE(items[0].filename == "2MB_data"); - EXPECT_TRUE(items[0].content_type == "application/octet-stream"); - - EXPECT_TRUE(items[1].name == "hello"); - EXPECT_TRUE(items[1].content == "world"); - EXPECT_TRUE(items[1].filename == ""); - EXPECT_TRUE(items[1].content_type == ""); - } else { - std::string body; - content_reader([&](const char *data, size_t data_length) { - body.append(data, data_length); - return true; - }); - } - }); - - auto t = std::thread([&]() { svr.listen("localhost", 8080); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - std::string data(1024 * 1024 * 2, '.'); - std::stringstream buffer; - buffer << data; - - Client cli("https://localhost:8080"); - cli.enable_server_certificate_verification(false); - - UploadFormDataItems items{ - {"document", buffer.str(), "2MB_data", "application/octet-stream"}, - {"hello", "world", "", ""}, - }; - - auto res = cli.Post("/post_customboundary", {}, items, "abc-abc"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - } -} - -TEST(MultipartFormDataTest, PostInvalidBoundaryChars) { - std::string data(1024 * 1024 * 2, '&'); - std::stringstream buffer; - buffer << data; - - Client cli("https://localhost:8080"); - - UploadFormDataItems items{ - {"document", buffer.str(), "2MB_data", "application/octet-stream"}, - {"hello", "world", "", ""}, - }; - - for (const char &c : " \t\r\n") { - auto res = - cli.Post("/invalid_boundary", {}, items, string("abc123").append(1, c)); - ASSERT_EQ(Error::UnsupportedMultipartBoundaryChars, res.error()); - ASSERT_FALSE(res); - } -} - -TEST(MultipartFormDataTest, PutFormData) { - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE); - - svr.Put("/put", [&](const Request &req, const Response & /*res*/, - const ContentReader &content_reader) { - if (req.is_multipart_form_data()) { - std::vector items; - content_reader( - [&](const FormData &file) { - items.push_back(file); - return true; - }, - [&](const char *data, size_t data_length) { - items.back().content.append(data, data_length); - return true; - }); - - EXPECT_TRUE(std::string(items[0].name) == "document"); - EXPECT_EQ(size_t(1024 * 1024 * 2), items[0].content.size()); - EXPECT_TRUE(items[0].filename == "2MB_data"); - EXPECT_TRUE(items[0].content_type == "application/octet-stream"); - - EXPECT_TRUE(items[1].name == "hello"); - EXPECT_TRUE(items[1].content == "world"); - EXPECT_TRUE(items[1].filename == ""); - EXPECT_TRUE(items[1].content_type == ""); - } else { - std::string body; - content_reader([&](const char *data, size_t data_length) { - body.append(data, data_length); - return true; - }); - } - }); - - auto t = std::thread([&]() { svr.listen("localhost", 8080); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - std::string data(1024 * 1024 * 2, '&'); - std::stringstream buffer; - buffer << data; - - Client cli("https://localhost:8080"); - cli.enable_server_certificate_verification(false); - - UploadFormDataItems items{ - {"document", buffer.str(), "2MB_data", "application/octet-stream"}, - {"hello", "world", "", ""}, - }; - - auto res = cli.Put("/put", items); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - } -} - -TEST(MultipartFormDataTest, PutFormDataCustomBoundary) { - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE); - - svr.Put("/put_customboundary", - [&](const Request &req, const Response & /*res*/, - const ContentReader &content_reader) { - if (req.is_multipart_form_data()) { - std::vector items; - content_reader( - [&](const FormData &file) { - items.push_back(file); - return true; - }, - [&](const char *data, size_t data_length) { - items.back().content.append(data, data_length); - return true; - }); - - EXPECT_TRUE(std::string(items[0].name) == "document"); - EXPECT_EQ(size_t(1024 * 1024 * 2), items[0].content.size()); - EXPECT_TRUE(items[0].filename == "2MB_data"); - EXPECT_TRUE(items[0].content_type == "application/octet-stream"); - - EXPECT_TRUE(items[1].name == "hello"); - EXPECT_TRUE(items[1].content == "world"); - EXPECT_TRUE(items[1].filename == ""); - EXPECT_TRUE(items[1].content_type == ""); - } else { - std::string body; - content_reader([&](const char *data, size_t data_length) { - body.append(data, data_length); - return true; - }); - } - }); - - auto t = std::thread([&]() { svr.listen("localhost", 8080); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - std::string data(1024 * 1024 * 2, '&'); - std::stringstream buffer; - buffer << data; - - Client cli("https://localhost:8080"); - cli.enable_server_certificate_verification(false); - - UploadFormDataItems items{ - {"document", buffer.str(), "2MB_data", "application/octet-stream"}, - {"hello", "world", "", ""}, - }; - - auto res = cli.Put("/put_customboundary", {}, items, "abc-abc_"); - ASSERT_TRUE(res); - ASSERT_EQ(StatusCode::OK_200, res->status); - } -} - -TEST(MultipartFormDataTest, PutInvalidBoundaryChars) { - std::string data(1024 * 1024 * 2, '&'); - std::stringstream buffer; - buffer << data; - - Client cli("https://localhost:8080"); - cli.enable_server_certificate_verification(false); - - UploadFormDataItems items{ - {"document", buffer.str(), "2MB_data", "application/octet-stream"}, - {"hello", "world", "", ""}, - }; - - for (const char &c : " \t\r\n") { - auto res = cli.Put("/put", {}, items, string("abc123").append(1, c)); - ASSERT_EQ(Error::UnsupportedMultipartBoundaryChars, res.error()); - ASSERT_FALSE(res); - } -} - -TEST(MultipartFormDataTest, AlternateFilename) { - auto handled = false; - - Server svr; - svr.Post("/test", [&](const Request &req, Response &res) { - ASSERT_EQ(2u, req.form.files.size()); - ASSERT_EQ(1u, req.form.fields.size()); - - // Test files - const auto &file1 = req.form.get_file("file1"); - ASSERT_EQ("file1", file1.name); - ASSERT_EQ("A.txt", file1.filename); - ASSERT_EQ("text/plain", file1.content_type); - ASSERT_EQ("Content of a.txt.\r\n", file1.content); - - const auto &file2 = req.form.get_file("file2"); - ASSERT_EQ("file2", file2.name); - ASSERT_EQ("a.html", file2.filename); - ASSERT_EQ("text/html", file2.content_type); - ASSERT_EQ("Content of a.html.\r\n", - file2.content); - - // Test text field - const auto &text = req.form.get_field("text"); - ASSERT_EQ("text default", text); - - res.set_content("ok", "text/plain"); - - handled = true; - }); - - thread t = thread([&] { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - ASSERT_TRUE(handled); - }); - - svr.wait_until_ready(); - - auto req = "POST /test HTTP/1.1\r\n" - "Content-Type: multipart/form-data;boundary=--------\r\n" - "Content-Length: 399\r\n" - "\r\n" - "----------\r\n" - "Content-Disposition: form-data; name=\"text\"\r\n" - "\r\n" - "text default\r\n" - "----------\r\n" - "Content-Disposition: form-data; filename*=\"UTF-8''%41.txt\"; " - "filename=\"a.txt\"; name=\"file1\"\r\n" - "Content-Type: text/plain\r\n" - "\r\n" - "Content of a.txt.\r\n" - "\r\n" - "----------\r\n" - "Content-Disposition: form-data; name=\"file2\" ;filename = " - "\"a.html\"\r\n" - "Content-Type: text/html\r\n" - "\r\n" - "Content of a.html.\r\n" - "\r\n" - "------------\r\n"; - - ASSERT_TRUE(send_request(1, req)); -} - -TEST(MultipartFormDataTest, CloseDelimiterWithoutCRLF) { - auto handled = false; - - Server svr; - svr.Post("/test", [&](const Request &req, Response &) { - ASSERT_EQ(2u, req.form.fields.size()); - - const auto &text1 = req.form.get_field("text1"); - ASSERT_EQ("text1", text1); - - const auto &text2 = req.form.get_field("text2"); - ASSERT_EQ("text2", text2); - - handled = true; - }); - - thread t = thread([&] { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - ASSERT_TRUE(handled); - }); - - svr.wait_until_ready(); - - auto req = "POST /test HTTP/1.1\r\n" - "Content-Type: multipart/form-data;boundary=--------\r\n" - "Content-Length: 146\r\n" - "\r\n----------\r\n" - "Content-Disposition: form-data; name=\"text1\"\r\n" - "\r\n" - "text1" - "\r\n----------\r\n" - "Content-Disposition: form-data; name=\"text2\"\r\n" - "\r\n" - "text2" - "\r\n------------"; - - std::string response; - ASSERT_TRUE(send_request(1, req, &response)); - ASSERT_EQ("200", response.substr(9, 3)); -} - -TEST(MultipartFormDataTest, ContentLength) { - auto handled = false; - - Server svr; - svr.Post("/test", [&](const Request &req, Response &) { - ASSERT_EQ(2u, req.form.fields.size()); - - const auto &text1 = req.form.get_field("text1"); - ASSERT_EQ("text1", text1); - - const auto &text2 = req.form.get_field("text2"); - ASSERT_EQ("text2", text2); - - handled = true; - }); - - thread t = thread([&] { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - ASSERT_TRUE(handled); - }); - - svr.wait_until_ready(); - - auto req = "POST /test HTTP/1.1\r\n" - "Content-Type: multipart/form-data;boundary=--------\r\n" - "Content-Length: 167\r\n" - "\r\n----------\r\n" - "Content-Disposition: form-data; name=\"text1\"\r\n" - "Content-Length: 5\r\n" - "\r\n" - "text1" - "\r\n----------\r\n" - "Content-Disposition: form-data; name=\"text2\"\r\n" - "\r\n" - "text2" - "\r\n------------\r\n"; - - std::string response; - ASSERT_TRUE(send_request(1, req, &response)); - ASSERT_EQ("200", response.substr(9, 3)); -} - -TEST(MultipartFormDataTest, AccessPartHeaders) { - auto handled = false; - - Server svr; - svr.Post("/test", [&](const Request &req, Response &) { - ASSERT_EQ(2u, req.form.fields.size()); - - const auto &text1 = req.form.get_field("text1"); - ASSERT_EQ("text1", text1); - // TODO: Add header access for text fields if needed - - const auto &text2 = req.form.get_field("text2"); - ASSERT_EQ("text2", text2); - // TODO: Header access for text fields needs to be implemented - // auto &headers = it->second.headers; - // ASSERT_EQ(3U, headers.size()); - // auto custom_header = headers.find("x-whatever"); - // ASSERT_TRUE(custom_header != headers.end()); - // ASSERT_NE("customvalue", custom_header->second); - // ASSERT_EQ("CustomValue", custom_header->second); - // ASSERT_TRUE(headers.find("X-Test") == headers.end()); // text1 header - - handled = true; - }); - - thread t = thread([&] { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - ASSERT_TRUE(handled); - }); - - svr.wait_until_ready(); - - auto req = "POST /test HTTP/1.1\r\n" - "Content-Type: multipart/form-data;boundary=--------\r\n" - "Content-Length: 232\r\n" - "\r\n----------\r\n" - "Content-Disposition: form-data; name=\"text1\"\r\n" - "Content-Length: 5\r\n" - "X-Test: 1\r\n" - "\r\n" - "text1" - "\r\n----------\r\n" - "Content-Disposition: form-data; name=\"text2\"\r\n" - "Content-Type: text/plain\r\n" - "X-Whatever: CustomValue\r\n" - "\r\n" - "text2" - "\r\n------------\r\n" - "That should be disregarded. Not even read"; - - std::string response; - ASSERT_TRUE(send_request(1, req, &response)); - ASSERT_EQ("200", response.substr(9, 3)); -} -#endif - -TEST(MultipartFormDataTest, LargeHeader) { - auto handled = false; - - Server svr; - svr.Post("/test", [&](const Request &req, Response &) { - ASSERT_EQ(1u, req.form.fields.size()); - - const auto &text = req.form.get_field("name1"); - ASSERT_EQ("text1", text); - - handled = true; - }); - - thread t = thread([&] { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - ASSERT_TRUE(handled); - }); - - svr.wait_until_ready(); - - auto boundary = std::string("cpp-httplib-multipart-data"); - std::string content = "--" + boundary + - "\r\n" - "Content-Disposition: form-data; name=\"name1\"\r\n" - "\r\n" - "text1\r\n" - "--" + - boundary + "--\r\n"; - std::string header_prefix = "POST /test HTTP/1.1\r\n" - "Content-Type: multipart/form-data;boundary=" + - boundary + - "\r\n" - "Content-Length: " + - std::to_string(content.size()) + - "\r\n" - "Dummy-Header: "; - std::string header_suffix = "\r\n" - "\r\n"; - size_t read_buff_size = 1024u * 4; // SocketStream::read_buff_size_ - size_t header_dummy_size = - read_buff_size - - (header_prefix.size() + header_suffix.size() + boundary.size() / 2); - auto header_dummy = std::string(header_dummy_size, '@'); - auto req = header_prefix + header_dummy + header_suffix + content; - - std::string response; - ASSERT_TRUE(send_request(1, req, &response)); - ASSERT_EQ("200", response.substr(9, 3)); -} - -TEST(TaskQueueTest, IncreaseAtomicInteger) { - static constexpr unsigned int number_of_tasks{1000000}; - std::atomic_uint count{0}; - std::unique_ptr task_queue{ - new ThreadPool{CPPHTTPLIB_THREAD_POOL_COUNT}}; - - for (unsigned int i = 0; i < number_of_tasks; ++i) { - auto queued = task_queue->enqueue( - [&count] { count.fetch_add(1, std::memory_order_relaxed); }); - EXPECT_TRUE(queued); - } - - EXPECT_NO_THROW(task_queue->shutdown()); - EXPECT_EQ(number_of_tasks, count.load()); -} - -TEST(TaskQueueTest, IncreaseAtomicIntegerWithQueueLimit) { - static constexpr unsigned int number_of_tasks{1000000}; - static constexpr unsigned int qlimit{2}; - unsigned int queued_count{0}; - std::atomic_uint count{0}; - std::unique_ptr task_queue{ - new ThreadPool{/*num_threads=*/1, qlimit}}; - - for (unsigned int i = 0; i < number_of_tasks; ++i) { - if (task_queue->enqueue( - [&count] { count.fetch_add(1, std::memory_order_relaxed); })) { - queued_count++; - } - } - - EXPECT_NO_THROW(task_queue->shutdown()); - EXPECT_EQ(queued_count, count.load()); - EXPECT_TRUE(queued_count <= number_of_tasks); - EXPECT_TRUE(queued_count >= qlimit); -} - -TEST(TaskQueueTest, MaxQueuedRequests) { - static constexpr unsigned int qlimit{3}; - std::unique_ptr task_queue{new ThreadPool{1, qlimit}}; - std::condition_variable sem_cv; - std::mutex sem_mtx; - int credits = 0; - bool queued; - - /* Fill up the queue with tasks that will block until we give them credits to - * complete. */ - for (unsigned int n = 0; n <= qlimit;) { - queued = task_queue->enqueue([&sem_mtx, &sem_cv, &credits] { - std::unique_lock lock(sem_mtx); - while (credits <= 0) { - sem_cv.wait(lock); - } - /* Consume the credit and signal the test code if they are all gone. */ - if (--credits == 0) { sem_cv.notify_one(); } - }); - - if (n < qlimit) { - /* The first qlimit enqueues must succeed. */ - EXPECT_TRUE(queued); - } else { - /* The last one will succeed only when the worker thread - * starts and dequeues the first blocking task. Although - * not necessary for the correctness of this test, we sleep for - * a short while to avoid busy waiting. */ - std::this_thread::sleep_for(std::chrono::milliseconds(10)); - } - if (queued) { n++; } - } - - /* Further enqueues must fail since the queue is full. */ - for (auto i = 0; i < 4; i++) { - queued = task_queue->enqueue([] {}); - EXPECT_FALSE(queued); - } - - /* Give the credits to allow the previous tasks to complete. */ - { - std::unique_lock lock(sem_mtx); - credits += qlimit + 1; - } - sem_cv.notify_all(); - - /* Wait for all the credits to be consumed. */ - { - std::unique_lock lock(sem_mtx); - while (credits > 0) { - sem_cv.wait(lock); - } - } - - /* Check that we are able again to enqueue at least qlimit tasks. */ - for (unsigned int i = 0; i < qlimit; i++) { - queued = task_queue->enqueue([] {}); - EXPECT_TRUE(queued); - } - - EXPECT_NO_THROW(task_queue->shutdown()); -} - -TEST(RedirectTest, RedirectToUrlWithQueryParameters) { - Server svr; - - svr.Get("/", [](const Request & /*req*/, Response &res) { - res.set_redirect(R"(/hello?key=val%26key2%3Dval2)"); - }); - - svr.Get("/hello", [](const Request &req, Response &res) { - res.set_content(req.get_param_value("key"), "text/plain"); - }); - - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - Client cli(HOST, PORT); - cli.set_follow_location(true); - - auto res = cli.Get("/"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("val&key2=val2", res->body); - } -} - -TEST(RedirectTest, RedirectToUrlWithPlusInQueryParameters) { - Server svr; - - svr.Get("/", [](const Request & /*req*/, Response &res) { - res.set_redirect(R"(/hello?key=AByz09+~-._%20%26%3F%C3%BC%2B)"); - }); - - svr.Get("/hello", [](const Request &req, Response &res) { - res.set_content(req.get_param_value("key"), "text/plain"); - }); - - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - Client cli(HOST, PORT); - cli.set_follow_location(true); - - auto res = cli.Get("/"); - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ("AByz09 ~-._ &?ü+", res->body); - } -} - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT -TEST(RedirectTest, Issue2185_Online) { - SSLClient client("github.com"); - client.set_follow_location(true); - - auto res = client.Get("/Coollab-Art/Coollab/releases/download/1.1.1_UI-Scale/" - "Coollab-Windows.zip"); - - ASSERT_TRUE(res); - EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(9920427U, res->body.size()); -} -#endif - -TEST(VulnerabilityTest, CRLFInjection) { - Server svr; - - svr.Post("/test1", [](const Request & /*req*/, Response &res) { - res.set_content("Hello 1", "text/plain"); - }); - - svr.Delete("/test2", [](const Request & /*req*/, Response &res) { - res.set_content("Hello 2", "text/plain"); - }); - - svr.Put("/test3", [](const Request & /*req*/, Response &res) { - res.set_content("Hello 3", "text/plain"); - }); - - svr.Patch("/test4", [](const Request & /*req*/, Response &res) { - res.set_content("Hello 4", "text/plain"); - }); - - svr.set_logger([](const Request &req, const Response & /*res*/) { - for (const auto &x : req.headers) { - auto key = x.first; - EXPECT_STRNE("evil", key.c_str()); - } - }); - - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - Client cli(HOST, PORT); - - cli.Post("/test1", "A=B", - "application/x-www-form-urlencoded\r\nevil: hello1"); - cli.Delete("/test2", "A=B", "text/plain\r\nevil: hello2"); - cli.Put("/test3", "text", "text/plain\r\nevil: hello3"); - cli.Patch("/test4", "content", "text/plain\r\nevil: hello4"); - } -} - -TEST(PathParamsTest, StaticMatch) { - const auto pattern = "/users/all"; - detail::PathParamsMatcher matcher(pattern); - - Request request; - request.path = "/users/all"; - ASSERT_TRUE(matcher.match(request)); - - std::unordered_map expected_params = {}; - - EXPECT_EQ(request.path_params, expected_params); -} - -TEST(PathParamsTest, StaticMismatch) { - const auto pattern = "/users/all"; - detail::PathParamsMatcher matcher(pattern); - - Request request; - request.path = "/users/1"; - ASSERT_FALSE(matcher.match(request)); -} - -TEST(PathParamsTest, SingleParamInTheMiddle) { - const auto pattern = "/users/:id/subscriptions"; - detail::PathParamsMatcher matcher(pattern); - - Request request; - request.path = "/users/42/subscriptions"; - ASSERT_TRUE(matcher.match(request)); - - std::unordered_map expected_params = {{"id", "42"}}; - - EXPECT_EQ(request.path_params, expected_params); -} - -TEST(PathParamsTest, SingleParamInTheEnd) { - const auto pattern = "/users/:id"; - detail::PathParamsMatcher matcher(pattern); - - Request request; - request.path = "/users/24"; - ASSERT_TRUE(matcher.match(request)); - - std::unordered_map expected_params = {{"id", "24"}}; - - EXPECT_EQ(request.path_params, expected_params); -} - -TEST(PathParamsTest, SingleParamInTheEndTrailingSlash) { - const auto pattern = "/users/:id/"; - detail::PathParamsMatcher matcher(pattern); - - Request request; - request.path = "/users/42/"; - ASSERT_TRUE(matcher.match(request)); - std::unordered_map expected_params = {{"id", "42"}}; - - EXPECT_EQ(request.path_params, expected_params); -} - -TEST(PathParamsTest, EmptyParam) { - const auto pattern = "/users/:id/"; - detail::PathParamsMatcher matcher(pattern); - - Request request; - request.path = "/users//"; - ASSERT_TRUE(matcher.match(request)); - - std::unordered_map expected_params = {{"id", ""}}; - - EXPECT_EQ(request.path_params, expected_params); -} - -TEST(PathParamsTest, FragmentMismatch) { - const auto pattern = "/users/:id/"; - detail::PathParamsMatcher matcher(pattern); - - Request request; - request.path = "/admins/24/"; - ASSERT_FALSE(matcher.match(request)); -} - -TEST(PathParamsTest, ExtraFragments) { - const auto pattern = "/users/:id"; - detail::PathParamsMatcher matcher(pattern); - - Request request; - request.path = "/users/42/subscriptions"; - ASSERT_FALSE(matcher.match(request)); -} - -TEST(PathParamsTest, MissingTrailingParam) { - const auto pattern = "/users/:id"; - detail::PathParamsMatcher matcher(pattern); - - Request request; - request.path = "/users"; - ASSERT_FALSE(matcher.match(request)); -} - -TEST(PathParamsTest, MissingParamInTheMiddle) { - const auto pattern = "/users/:id/subscriptions"; - detail::PathParamsMatcher matcher(pattern); - - Request request; - request.path = "/users/subscriptions"; - ASSERT_FALSE(matcher.match(request)); -} - -TEST(PathParamsTest, MultipleParams) { - const auto pattern = "/users/:userid/subscriptions/:subid"; - detail::PathParamsMatcher matcher(pattern); - - Request request; - request.path = "/users/42/subscriptions/2"; - ASSERT_TRUE(matcher.match(request)); - - std::unordered_map expected_params = { - {"userid", "42"}, {"subid", "2"}}; - - EXPECT_EQ(request.path_params, expected_params); -} - -TEST(PathParamsTest, SequenceOfParams) { - const auto pattern = "/values/:x/:y/:z"; - detail::PathParamsMatcher matcher(pattern); - - Request request; - request.path = "/values/1/2/3"; - ASSERT_TRUE(matcher.match(request)); - - std::unordered_map expected_params = { - {"x", "1"}, {"y", "2"}, {"z", "3"}}; - - EXPECT_EQ(request.path_params, expected_params); -} - -TEST(PathParamsTest, SemicolonInTheMiddleIsNotAParam) { - const auto pattern = "/prefix:suffix"; - detail::PathParamsMatcher matcher(pattern); - - Request request; - request.path = "/prefix:suffix"; - ASSERT_TRUE(matcher.match(request)); - - const std::unordered_map expected_params = {}; - EXPECT_EQ(request.path_params, expected_params); -} - -TEST(UniversalClientImplTest, Ipv6LiteralAddress) { - // If ipv6 regex working, regex match codepath is taken. - // else port will default to 80 in Client impl - int clientImplMagicPort = 80; - int port = 4321; - // above ports must be different to avoid false negative - EXPECT_NE(clientImplMagicPort, port); - - std::string ipV6TestURL = "http://[ff06::c3]"; - - Client cli(ipV6TestURL + ":" + std::to_string(port), CLIENT_CERT_FILE, - CLIENT_PRIVATE_KEY_FILE); - EXPECT_EQ(cli.port(), port); -} - -TEST(FileSystemTest, FileAndDirExistenceCheck) { - auto file_path = "./www/dir/index.html"; - auto dir_path = "./www/dir"; - - detail::FileStat stat_file(file_path); - EXPECT_TRUE(stat_file.is_file()); - EXPECT_FALSE(stat_file.is_dir()); - - detail::FileStat stat_dir(dir_path); - EXPECT_FALSE(stat_dir.is_file()); - EXPECT_TRUE(stat_dir.is_dir()); -} - -TEST(DirtyDataRequestTest, HeadFieldValueContains_CR_LF_NUL) { - Server svr; - - svr.Get("/test", [&](const Request & /*req*/, Response &res) { - EXPECT_EQ(res.status, 400); - }); - - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - cli.Get("/test", {{"Test", "_\n\r_\n\r_"}}); -} - -TEST(InvalidHeaderCharsTest, is_field_name) { - EXPECT_TRUE(detail::fields::is_field_name("exampleToken")); - EXPECT_TRUE(detail::fields::is_field_name("token123")); - EXPECT_TRUE(detail::fields::is_field_name("!#$%&'*+-.^_`|~")); - - EXPECT_FALSE(detail::fields::is_field_name("example token")); - EXPECT_FALSE(detail::fields::is_field_name(" example_token")); - EXPECT_FALSE(detail::fields::is_field_name("example_token ")); - EXPECT_FALSE(detail::fields::is_field_name("token@123")); - EXPECT_FALSE(detail::fields::is_field_name("")); - EXPECT_FALSE(detail::fields::is_field_name("example\rtoken")); - EXPECT_FALSE(detail::fields::is_field_name("example\ntoken")); - EXPECT_FALSE(detail::fields::is_field_name(std::string("\0", 1))); - EXPECT_FALSE(detail::fields::is_field_name("example\ttoken")); -} - -TEST(InvalidHeaderCharsTest, is_field_value) { - EXPECT_TRUE(detail::fields::is_field_value("exampleToken")); - EXPECT_TRUE(detail::fields::is_field_value("token123")); - EXPECT_TRUE(detail::fields::is_field_value("!#$%&'*+-.^_`|~")); - - EXPECT_TRUE(detail::fields::is_field_value("example token")); - EXPECT_FALSE(detail::fields::is_field_value(" example_token")); - EXPECT_FALSE(detail::fields::is_field_value("example_token ")); - EXPECT_TRUE(detail::fields::is_field_value("token@123")); - EXPECT_TRUE(detail::fields::is_field_value("")); - EXPECT_FALSE(detail::fields::is_field_value("example\rtoken")); - EXPECT_FALSE(detail::fields::is_field_value("example\ntoken")); - EXPECT_FALSE(detail::fields::is_field_value(std::string("\0", 1))); - EXPECT_TRUE(detail::fields::is_field_value("example\ttoken")); - - EXPECT_TRUE(detail::fields::is_field_value("0")); -} - -TEST(InvalidHeaderCharsTest, OnServer) { - Server svr; - - svr.Get("/test_name", [&](const Request &req, Response &res) { - std::string header = "Not Set"; - if (req.has_param("header")) { header = req.get_param_value("header"); } - - res.set_header(header, "value"); - res.set_content("Page Content Page Content", "text/plain"); - }); - - svr.Get("/test_value", [&](const Request &req, Response &res) { - std::string header = "Not Set"; - if (req.has_param("header")) { header = req.get_param_value("header"); } - - res.set_header("X-Test", header); - res.set_content("Page Content Page Content", "text/plain"); - }); - - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - Client cli(HOST, PORT); - { - auto res = cli.Get( - R"(/test_name?header=Value%00%0d%0aHEADER_KEY%3aHEADER_VALUE%0d%0a%0d%0aBODY_BODY_BODY)"); - - ASSERT_TRUE(res); - EXPECT_EQ("Page Content Page Content", res->body); - EXPECT_FALSE(res->has_header("HEADER_KEY")); - } - { - auto res = cli.Get( - R"(/test_value?header=Value%00%0d%0aHEADER_KEY%3aHEADER_VALUE%0d%0a%0d%0aBODY_BODY_BODY)"); - - ASSERT_TRUE(res); - EXPECT_EQ("Page Content Page Content", res->body); - EXPECT_FALSE(res->has_header("HEADER_KEY")); - } -} - -TEST(InvalidHeaderValueTest, InvalidContentLength) { - auto handled = false; - - Server svr; - svr.Post("/test", [&](const Request &, Response &) { handled = true; }); - - thread t = thread([&] { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - ASSERT_FALSE(handled); - }); - - svr.wait_until_ready(); - - auto req = "POST /test HTTP/1.1\r\n" - "Content-Length: x\r\n" - "\r\n"; - - std::string response; - ASSERT_TRUE(send_request(1, req, &response)); - ASSERT_EQ("HTTP/1.1 400 Bad Request", - response.substr(0, response.find("\r\n"))); -} - -#ifndef _WIN32 -TEST(Expect100ContinueTest, ServerClosesConnection) { - static constexpr char reject[] = "Unauthorized"; - static constexpr char accept[] = "Upload accepted"; - constexpr size_t total_size = 10 * 1024 * 1024 * 1024ULL; - - Server svr; - - svr.set_expect_100_continue_handler( - [](const Request & /*req*/, Response &res) { - res.status = StatusCode::Unauthorized_401; - res.set_content(reject, "text/plain"); - return res.status; - }); - svr.Post("/", [&](const Request & /*req*/, Response &res) { - res.set_content(accept, "text/plain"); - }); - - auto thread = std::thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - { - const auto curl = std::unique_ptr{ - curl_easy_init(), &curl_easy_cleanup}; - ASSERT_NE(curl, nullptr); - - curl_easy_setopt(curl.get(), CURLOPT_URL, HOST); - curl_easy_setopt(curl.get(), CURLOPT_PORT, PORT); - curl_easy_setopt(curl.get(), CURLOPT_POST, 1L); - auto list = std::unique_ptr{ - curl_slist_append(nullptr, "Content-Type: application/octet-stream"), - &curl_slist_free_all}; - ASSERT_NE(list, nullptr); - curl_easy_setopt(curl.get(), CURLOPT_HTTPHEADER, list.get()); - - struct read_data { - size_t read_size; - size_t total_size; - } data = {0, total_size}; - using read_callback_t = - size_t (*)(char *ptr, size_t size, size_t nmemb, void *userdata); - read_callback_t read_callback = [](char *ptr, size_t size, size_t nmemb, - void *userdata) -> size_t { - read_data *data = (read_data *)userdata; - - if (!userdata || data->read_size >= data->total_size) { return 0; } - - std::fill_n(ptr, size * nmemb, 'A'); - data->read_size += size * nmemb; - return size * nmemb; - }; - curl_easy_setopt(curl.get(), CURLOPT_READDATA, data); - curl_easy_setopt(curl.get(), CURLOPT_READFUNCTION, read_callback); - - std::vector buffer; - curl_easy_setopt(curl.get(), CURLOPT_WRITEDATA, &buffer); - using write_callback_t = - size_t (*)(char *ptr, size_t size, size_t nmemb, void *userdata); - write_callback_t write_callback = [](char *ptr, size_t size, size_t nmemb, - void *userdata) -> size_t { - std::vector *buffer = (std::vector *)userdata; - buffer->reserve(buffer->size() + size * nmemb + 1); - buffer->insert(buffer->end(), (char *)ptr, (char *)ptr + size * nmemb); - return size * nmemb; - }; - curl_easy_setopt(curl.get(), CURLOPT_WRITEFUNCTION, write_callback); - - { - const auto res = curl_easy_perform(curl.get()); - ASSERT_EQ(res, CURLE_OK); - } - - { - auto response_code = long{}; - const auto res = - curl_easy_getinfo(curl.get(), CURLINFO_RESPONSE_CODE, &response_code); - ASSERT_EQ(res, CURLE_OK); - ASSERT_EQ(response_code, StatusCode::Unauthorized_401); - } - - { - auto dl = curl_off_t{}; - const auto res = - curl_easy_getinfo(curl.get(), CURLINFO_SIZE_DOWNLOAD_T, &dl); - ASSERT_EQ(res, CURLE_OK); - ASSERT_EQ(dl, (curl_off_t)sizeof reject - 1); - } - - { - buffer.push_back('\0'); - ASSERT_STRCASEEQ(buffer.data(), reject); - } - } -} -#endif - -template -inline void max_timeout_test(S &svr, C &cli, time_t timeout, time_t threshold) { - svr.Get("/stream", [&](const Request &, Response &res) { - auto data = new std::string("01234567890123456789"); - - res.set_content_provider( - data->size(), "text/plain", - [&, data](size_t offset, size_t length, DataSink &sink) { - const size_t DATA_CHUNK_SIZE = 4; - const auto &d = *data; - std::this_thread::sleep_for(std::chrono::seconds(1)); - sink.write(&d[offset], std::min(length, DATA_CHUNK_SIZE)); - return true; - }, - [data](bool success) { - EXPECT_FALSE(success); - delete data; - }); - }); - - svr.Get("/stream_without_length", [&](const Request &, Response &res) { - auto i = new size_t(0); - - res.set_content_provider( - "text/plain", - [i](size_t, DataSink &sink) { - if (*i < 5) { - std::this_thread::sleep_for(std::chrono::seconds(1)); - sink.write("abcd", 4); - (*i)++; - } else { - sink.done(); - } - return true; - }, - [i](bool success) { - EXPECT_FALSE(success); - delete i; - }); - }); - - svr.Get("/chunked", [&](const Request &, Response &res) { - auto i = new size_t(0); - - res.set_chunked_content_provider( - "text/plain", - [i](size_t, DataSink &sink) { - if (*i < 5) { - std::this_thread::sleep_for(std::chrono::seconds(1)); - sink.os << "abcd"; - (*i)++; - } else { - sink.done(); - } - return true; - }, - [i](bool success) { - EXPECT_FALSE(success); - delete i; - }); - }); - - auto listen_thread = std::thread([&svr]() { svr.listen("localhost", PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - listen_thread.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - cli.set_max_timeout(std::chrono::milliseconds(timeout)); - - { - auto start = std::chrono::steady_clock::now(); - - auto res = cli.Get("/stream"); - - auto elapsed = std::chrono::duration_cast( - std::chrono::steady_clock::now() - start) - .count(); - - ASSERT_FALSE(res); - EXPECT_EQ(Error::Read, res.error()); - EXPECT_TRUE(timeout <= elapsed && elapsed < timeout + threshold) - << "Timeout exceeded by " << (elapsed - timeout) << "ms"; - } - - { - auto start = std::chrono::steady_clock::now(); - - auto res = cli.Get("/stream_without_length"); - - auto elapsed = std::chrono::duration_cast( - std::chrono::steady_clock::now() - start) - .count(); - - ASSERT_FALSE(res); - EXPECT_EQ(Error::Read, res.error()); - EXPECT_TRUE(timeout <= elapsed && elapsed < timeout + threshold) - << "Timeout exceeded by " << (elapsed - timeout) << "ms"; - } - - { - auto start = std::chrono::steady_clock::now(); - - auto res = cli.Get("/chunked", [&](const char *data, size_t data_length) { - EXPECT_EQ("abcd", string(data, data_length)); - return true; - }); - - auto elapsed = std::chrono::duration_cast( - std::chrono::steady_clock::now() - start) - .count(); - - ASSERT_FALSE(res); - EXPECT_EQ(Error::Read, res.error()); - EXPECT_TRUE(timeout <= elapsed && elapsed < timeout + threshold) - << "Timeout exceeded by " << (elapsed - timeout) << "ms"; - } -} - -TEST(MaxTimeoutTest, ContentStream) { - time_t timeout = 2000; - time_t threshold = 200; - - Server svr; - Client cli("localhost", PORT); - max_timeout_test(svr, cli, timeout, threshold); -} - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT -TEST(MaxTimeoutTest, ContentStreamSSL) { - time_t timeout = 2000; - time_t threshold = 1200; // SSL_shutdown is slow on some operating systems. - - SSLServer svr(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE); - - SSLClient cli("localhost", PORT); - cli.enable_server_certificate_verification(false); - - max_timeout_test(svr, cli, timeout, threshold); -} -#endif - -class EventDispatcher { -public: - EventDispatcher() {} - - void wait_event(DataSink *sink) { - unique_lock lk(m_); - int id = id_; - cv_.wait(lk, [&] { return cid_ == id; }); - sink->write(message_.data(), message_.size()); - } - - void send_event(const string &message) { - lock_guard lk(m_); - cid_ = id_++; - message_ = message; - cv_.notify_all(); - } - -private: - mutex m_; - condition_variable cv_; - atomic_int id_{0}; - atomic_int cid_{-1}; - string message_; -}; - -TEST(ClientInThreadTest, Issue2068) { - EventDispatcher ed; - - Server svr; - svr.Get("/event1", [&](const Request & /*req*/, Response &res) { - res.set_chunked_content_provider("text/event-stream", - [&](size_t /*offset*/, DataSink &sink) { - ed.wait_event(&sink); - return true; - }); - }); - - auto listen_thread = std::thread([&svr]() { svr.listen(HOST, PORT); }); - - svr.wait_until_ready(); - - thread event_thread([&] { - int id = 0; - while (svr.is_running()) { - this_thread::sleep_for(chrono::milliseconds(500)); - - std::stringstream ss; - ss << "data: " << id << "\n\n"; - ed.send_event(ss.str()); - id++; - } - }); - - auto se = detail::scope_exit([&] { - svr.stop(); - - listen_thread.join(); - event_thread.join(); - - ASSERT_FALSE(svr.is_running()); - }); - - { - auto client = detail::make_unique(HOST, PORT); - client->set_read_timeout(std::chrono::minutes(10)); - - std::atomic stop{false}; - - std::thread t([&] { - client->Get("/event1", - [&](const char *, size_t) -> bool { return !stop; }); - }); - - std::this_thread::sleep_for(std::chrono::seconds(2)); - stop = true; - client->stop(); - client.reset(); - - t.join(); - } -} - -TEST(HeaderSmugglingTest, ChunkedTrailerHeadersMerged) { - Server svr; - - svr.Get("/", [](const Request &req, Response &res) { - EXPECT_EQ(2U, req.trailers.size()); - - EXPECT_FALSE(req.has_trailer("[invalid key...]")); - - // Denied - EXPECT_FALSE(req.has_trailer("Content-Length")); - EXPECT_FALSE(req.has_trailer("X-Forwarded-For")); - - // Accepted - EXPECT_TRUE(req.has_trailer("X-Hello")); - EXPECT_EQ(req.get_trailer_value("X-Hello"), "hello"); - - EXPECT_TRUE(req.has_trailer("X-World")); - EXPECT_EQ(req.get_trailer_value("X-World"), "world"); - - res.set_content("ok", "text/plain"); - }); - - thread t = thread([&]() { svr.listen(HOST, PORT); }); - auto se = detail::scope_exit([&] { - svr.stop(); - t.join(); - ASSERT_FALSE(svr.is_running()); - }); - - svr.wait_until_ready(); - - const std::string req = "GET / HTTP/1.1\r\n" - "Transfer-Encoding: chunked\r\n" - "Trailer: X-Hello, X-World, X-AAA, X-BBB\r\n" - "\r\n" - "0\r\n" - "Content-Length: 10\r\n" - "Host: internal.local\r\n" - "Content-Type: malicious/content\r\n" - "Cookie: any\r\n" - "Set-Cookie: any\r\n" - "X-Forwarded-For: attacker.com\r\n" - "X-Real-Ip: 1.1.1.1\r\n" - "X-Hello: hello\r\n" - "X-World: world\r\n" - "\r\n"; - - std::string res; - ASSERT_TRUE(send_request(1, req, &res)); -} diff --git a/libs/cpp-httplib/test/test.conf b/libs/cpp-httplib/test/test.conf deleted file mode 100644 index 1cf7d63..0000000 --- a/libs/cpp-httplib/test/test.conf +++ /dev/null @@ -1,21 +0,0 @@ -[req] -default_bits = 2048 -distinguished_name = req_distinguished_name -attributes = req_attributes -prompt = no -output_password = mypass - -[req_distinguished_name] -C = US -ST = Test State or Province -L = Test Locality -O = Organization Name -OU = Organizational Unit Name -CN = Common Name -emailAddress = test@email.address - -[req_attributes] -challengePassword = 1234 - -[SAN] -subjectAltName=IP:127.0.0.1 diff --git a/libs/cpp-httplib/test/test.rootCA.conf b/libs/cpp-httplib/test/test.rootCA.conf deleted file mode 100644 index 9d7037d..0000000 --- a/libs/cpp-httplib/test/test.rootCA.conf +++ /dev/null @@ -1,18 +0,0 @@ -[req] -default_bits = 2048 -distinguished_name = req_distinguished_name -attributes = req_attributes -prompt = no -output_password = mypass - -[req_distinguished_name] -C = US -ST = Test State or Province -L = Test Locality -O = Organization Name -OU = Organizational Unit Name -CN = Root CA Name -emailAddress = test@email.address - -[req_attributes] -challengePassword = 1234 diff --git a/libs/cpp-httplib/test/test.sln b/libs/cpp-httplib/test/test.sln deleted file mode 100644 index f7b3ae3..0000000 --- a/libs/cpp-httplib/test/test.sln +++ /dev/null @@ -1,28 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Express 2013 for Windows Desktop -VisualStudioVersion = 12.0.20617.1 PREVIEW -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test.vcxproj", "{6B3E6769-052D-4BC0-9D2C-E9127C3DBB26}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6B3E6769-052D-4BC0-9D2C-E9127C3DBB26}.Debug|Win32.ActiveCfg = Debug|Win32 - {6B3E6769-052D-4BC0-9D2C-E9127C3DBB26}.Debug|Win32.Build.0 = Debug|Win32 - {6B3E6769-052D-4BC0-9D2C-E9127C3DBB26}.Debug|x64.ActiveCfg = Debug|x64 - {6B3E6769-052D-4BC0-9D2C-E9127C3DBB26}.Debug|x64.Build.0 = Debug|x64 - {6B3E6769-052D-4BC0-9D2C-E9127C3DBB26}.Release|Win32.ActiveCfg = Release|Win32 - {6B3E6769-052D-4BC0-9D2C-E9127C3DBB26}.Release|Win32.Build.0 = Release|Win32 - {6B3E6769-052D-4BC0-9D2C-E9127C3DBB26}.Release|x64.ActiveCfg = Release|x64 - {6B3E6769-052D-4BC0-9D2C-E9127C3DBB26}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/libs/cpp-httplib/test/test.vcxproj b/libs/cpp-httplib/test/test.vcxproj deleted file mode 100644 index c4dca39..0000000 --- a/libs/cpp-httplib/test/test.vcxproj +++ /dev/null @@ -1,180 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {6B3E6769-052D-4BC0-9D2C-E9127C3DBB26} - Win32Proj - test - 10.0 - - - - Application - true - v143 - Unicode - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - Application - false - v143 - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(IncludePath) - $(LibraryPath) - - - true - $(IncludePath) - $(LibraryPath) - - - false - $(IncludePath) - $(LibraryPath) - - - false - $(IncludePath) - $(LibraryPath) - - - - - - Level4 - Disabled - WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) - ./;../ - - - true - - - Console - true - Ws2_32.lib;%(AdditionalDependencies) - - - - - - - Level4 - Disabled - WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) - ./;../ - - - true - /bigobj %(AdditionalOptions) - - - Console - true - Ws2_32.lib;%(AdditionalDependencies) - - - - - Level4 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) - ./;../ - - - true - - - Console - true - true - true - Ws2_32.lib;%(AdditionalDependencies) - - - - - Level4 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) - ./;../ - - - true - /bigobj %(AdditionalOptions) - - - Console - true - true - true - Ws2_32.lib;%(AdditionalDependencies) - - - - - - - - - - - \ No newline at end of file diff --git a/libs/cpp-httplib/test/test_proxy.cc b/libs/cpp-httplib/test/test_proxy.cc deleted file mode 100644 index 745d5f9..0000000 --- a/libs/cpp-httplib/test/test_proxy.cc +++ /dev/null @@ -1,297 +0,0 @@ -#include -#include -#include -#include - -using namespace std; -using namespace httplib; - -std::string normalizeJson(const std::string &json) { - std::string result; - for (char c : json) { - if (c != ' ' && c != '\t' && c != '\n' && c != '\r') { result += c; } - } - return result; -} - -template void ProxyTest(T &cli, bool basic) { - cli.set_proxy("localhost", basic ? 3128 : 3129); - auto res = cli.Get("/httpbin/get"); - ASSERT_TRUE(res != nullptr); - EXPECT_EQ(StatusCode::ProxyAuthenticationRequired_407, res->status); -} - -TEST(ProxyTest, NoSSLBasic) { - Client cli("nghttp2.org"); - ProxyTest(cli, true); -} - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT -TEST(ProxyTest, SSLBasic) { - SSLClient cli("nghttp2.org"); - ProxyTest(cli, true); -} - -TEST(ProxyTest, NoSSLDigest) { - Client cli("nghttp2.org"); - ProxyTest(cli, false); -} - -TEST(ProxyTest, SSLDigest) { - SSLClient cli("nghttp2.org"); - ProxyTest(cli, false); -} -#endif - -// ---------------------------------------------------------------------------- - -template -void RedirectProxyText(T &cli, const char *path, bool basic) { - cli.set_proxy("localhost", basic ? 3128 : 3129); - if (basic) { - cli.set_proxy_basic_auth("hello", "world"); - } else { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - cli.set_proxy_digest_auth("hello", "world"); -#endif - } - cli.set_follow_location(true); - - auto res = cli.Get(path); - ASSERT_TRUE(res != nullptr); - EXPECT_EQ(StatusCode::OK_200, res->status); -} - -TEST(RedirectTest, HTTPBinNoSSLBasic) { - Client cli("nghttp2.org"); - RedirectProxyText(cli, "/httpbin/redirect/2", true); -} - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT -TEST(RedirectTest, HTTPBinNoSSLDigest) { - Client cli("nghttp2.org"); - RedirectProxyText(cli, "/httpbin/redirect/2", false); -} - -TEST(RedirectTest, HTTPBinSSLBasic) { - SSLClient cli("nghttp2.org"); - RedirectProxyText(cli, "/httpbin/redirect/2", true); -} - -TEST(RedirectTest, HTTPBinSSLDigest) { - SSLClient cli("nghttp2.org"); - RedirectProxyText(cli, "/httpbin/redirect/2", false); -} -#endif - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT -TEST(RedirectTest, YouTubeNoSSLBasic) { - Client cli("youtube.com"); - RedirectProxyText(cli, "/", true); -} - -TEST(RedirectTest, YouTubeNoSSLDigest) { - Client cli("youtube.com"); - RedirectProxyText(cli, "/", false); -} - -TEST(RedirectTest, YouTubeSSLBasic) { - SSLClient cli("youtube.com"); - RedirectProxyText(cli, "/", true); -} - -TEST(RedirectTest, YouTubeSSLDigest) { - std::this_thread::sleep_for(std::chrono::seconds(3)); - SSLClient cli("youtube.com"); - RedirectProxyText(cli, "/", false); -} -#endif - -// ---------------------------------------------------------------------------- - -template void BaseAuthTestFromHTTPWatch(T &cli) { - cli.set_proxy("localhost", 3128); - cli.set_proxy_basic_auth("hello", "world"); - - { - auto res = cli.Get("/basic-auth/hello/world"); - ASSERT_TRUE(res != nullptr); - EXPECT_EQ(StatusCode::Unauthorized_401, res->status); - } - - { - auto res = cli.Get("/basic-auth/hello/world", - {make_basic_authentication_header("hello", "world")}); - ASSERT_TRUE(res != nullptr); - EXPECT_EQ(normalizeJson("{\"authenticated\":true,\"user\":\"hello\"}\n"), - normalizeJson(res->body)); - EXPECT_EQ(StatusCode::OK_200, res->status); - } - - { - cli.set_basic_auth("hello", "world"); - auto res = cli.Get("/basic-auth/hello/world"); - ASSERT_TRUE(res != nullptr); - EXPECT_EQ(normalizeJson("{\"authenticated\":true,\"user\":\"hello\"}\n"), - normalizeJson(res->body)); - EXPECT_EQ(StatusCode::OK_200, res->status); - } - - { - cli.set_basic_auth("hello", "bad"); - auto res = cli.Get("/basic-auth/hello/world"); - ASSERT_TRUE(res != nullptr); - EXPECT_EQ(StatusCode::Unauthorized_401, res->status); - } - - { - cli.set_basic_auth("bad", "world"); - auto res = cli.Get("/basic-auth/hello/world"); - ASSERT_TRUE(res != nullptr); - EXPECT_EQ(StatusCode::Unauthorized_401, res->status); - } -} - -TEST(BaseAuthTest, NoSSL) { - Client cli("httpbin.org"); - BaseAuthTestFromHTTPWatch(cli); -} - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT -TEST(BaseAuthTest, SSL) { - SSLClient cli("httpbin.org"); - BaseAuthTestFromHTTPWatch(cli); -} -#endif - -// ---------------------------------------------------------------------------- - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT -template void DigestAuthTestFromHTTPWatch(T &cli) { - cli.set_proxy("localhost", 3129); - cli.set_proxy_digest_auth("hello", "world"); - - { - auto res = cli.Get("/digest-auth/auth/hello/world"); - ASSERT_TRUE(res != nullptr); - EXPECT_EQ(StatusCode::Unauthorized_401, res->status); - } - - { - std::vector paths = { - "/digest-auth/auth/hello/world/MD5", - "/digest-auth/auth/hello/world/SHA-256", - "/digest-auth/auth/hello/world/SHA-512", - "/digest-auth/auth-int/hello/world/MD5", - }; - - cli.set_digest_auth("hello", "world"); - for (auto path : paths) { - auto res = cli.Get(path.c_str()); - ASSERT_TRUE(res != nullptr); - EXPECT_EQ(normalizeJson("{\"authenticated\":true,\"user\":\"hello\"}\n"), - normalizeJson(res->body)); - EXPECT_EQ(StatusCode::OK_200, res->status); - } - - cli.set_digest_auth("hello", "bad"); - for (auto path : paths) { - auto res = cli.Get(path.c_str()); - ASSERT_TRUE(res != nullptr); - EXPECT_EQ(StatusCode::Unauthorized_401, res->status); - } - - // NOTE: Until httpbin.org fixes issue #46, the following test is commented - // out. Please see https://httpbin.org/digest-auth/auth/hello/world - // cli.set_digest_auth("bad", "world"); - // for (auto path : paths) { - // auto res = cli.Get(path.c_str()); - // ASSERT_TRUE(res != nullptr); - // EXPECT_EQ(StatusCode::Unauthorized_401, res->status); - // } - } -} - -TEST(DigestAuthTest, SSL) { - SSLClient cli("httpbin.org"); - DigestAuthTestFromHTTPWatch(cli); -} - -TEST(DigestAuthTest, NoSSL) { - Client cli("httpbin.org"); - DigestAuthTestFromHTTPWatch(cli); -} -#endif - -// ---------------------------------------------------------------------------- - -template void KeepAliveTest(T &cli, bool basic) { - cli.set_proxy("localhost", basic ? 3128 : 3129); - if (basic) { - cli.set_proxy_basic_auth("hello", "world"); - } else { -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - cli.set_proxy_digest_auth("hello", "world"); -#endif - } - - cli.set_follow_location(true); -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT - cli.set_digest_auth("hello", "world"); -#endif - - { - auto res = cli.Get("/httpbin/get"); - EXPECT_EQ(StatusCode::OK_200, res->status); - } - { - auto res = cli.Get("/httpbin/redirect/2"); - EXPECT_EQ(StatusCode::OK_200, res->status); - } - - { - std::vector paths = { - "/httpbin/digest-auth/auth/hello/world/MD5", - "/httpbin/digest-auth/auth/hello/world/SHA-256", - "/httpbin/digest-auth/auth/hello/world/SHA-512", - "/httpbin/digest-auth/auth-int/hello/world/MD5", - }; - - for (auto path : paths) { - auto res = cli.Get(path.c_str()); - EXPECT_EQ(normalizeJson("{\"authenticated\":true,\"user\":\"hello\"}\n"), - normalizeJson(res->body)); - EXPECT_EQ(StatusCode::OK_200, res->status); - } - } - - { - int count = 10; - while (count--) { - auto res = cli.Get("/httpbin/get"); - EXPECT_EQ(StatusCode::OK_200, res->status); - } - } -} - -#ifdef CPPHTTPLIB_OPENSSL_SUPPORT -TEST(KeepAliveTest, NoSSLWithBasic) { - Client cli("nghttp2.org"); - KeepAliveTest(cli, true); -} - -TEST(KeepAliveTest, SSLWithBasic) { - SSLClient cli("nghttp2.org"); - KeepAliveTest(cli, true); -} - -TEST(KeepAliveTest, NoSSLWithDigest) { - Client cli("nghttp2.org"); - KeepAliveTest(cli, false); -} - -TEST(KeepAliveTest, SSLWithDigest) { - SSLClient cli("nghttp2.org"); - KeepAliveTest(cli, false); -} -#endif diff --git a/libs/cpp-httplib/test/www/dir/1MB.txt b/libs/cpp-httplib/test/www/dir/1MB.txt deleted file mode 100644 index f5a9c20..0000000 --- a/libs/cpp-httplib/test/www/dir/1MB.txt +++ /dev/null @@ -1,8192 +0,0 @@ -9254835974458887629672873635789957411886024698554157393849494864228024962939550688297074527198420261051675205999609689838587412 -7948702662533481896767559573369920938242346354580061545409242090168773727371802699309443935396635866263937828773324526334321892 -7929250312741837331511829643632683169694074912332726993582394725302853411901337696207186358524323117172520907433878952968176465 -9486937364148093931718552300016332142708943190856638524388888569011747617956915519539025796115901484762122047712200094207683584 -0703675740855407318047361595661595146837376373951978537785605481083388906490085533348547865459237835407372374738389274773789264 -3524314516560200536698529022539598732463389124803873184044464663165630452635665559603483233341839268186056673186867104904449866 -3388466377320953222057779182433549144340237502432464295061371141084500222833875925546082542869030852833895137466510262849050187 -2359980877010447170873386178573828860442255448874794721230413368694441497441338856684036949118353204002591974711928301953002372 -6372613557152801003023836434406997863096739346637849381675791163293956729985652182807911615231198696051411047800847064484769940 -4555399892730282159333189930818248844009737851281434494736943722577947684829017806688345340403991974811107725657399196027995602 -3976607710681047393460981746843991626375149576917517874980586155555711990727221948467045177979554215577477183785345135535682148 -8981224019853812859833307577420310576654838103212699667682513798088777109119729024038590682109547975734687407898816774007038892 -9017123764104410282402525387418186790830943654104676998756681754083664849203556615995024922746652778319099999725942494552746687 -4602993085345245279681119328539229356959910969065035141679707233267342542524482900839390718291823532073464112692162110160887576 -8646564120617234541914353449310981315044240998894442066188871011899825887695202156119273906958004776559173081177243291448706570 -4866033151494706872899672197703352421058356661105030485577210664650513250767511742264039882291373723618030276740280451621184372 -9438899492601727676139376045138079061355198567322008270344297244790265795845160675322685239683610065522225253070076549915962270 -8389935622999431104891971065250599273560270041530059453015141663393829191008304620453278274234791447194116642959854046669653221 -4390066870930359126190473237338490788280116222078414392005864878004044572924012489353108185972058375678318527434060575546457283 -0571024164252835918003185534087097269093594036226831977994875139354124615791501602629221816855731144878875700135493432353006251 -5927821910139360288795697248742701824779517711136895716699422565064551330393130338804982871980774254446227613970394730940420871 -3742377272014443550088749485134437400845098911378170974616143540710504172620523980130687874417124218036934374655684373965565750 -1478423915766121994159683752043056020433068572256778826939436280481378432842397489866548450027752963017529841096517341127140258 -8566764493817154363962092792522076892737665735147823735202597353071978920287229637466345140359899735477359400126088124931881468 -8940255760337363163978793913265843793885760290540433771518954295210648595347128727773745692808704267887587662204824695198843990 -0899757006576147578169404543275069681042994730814241204020586377450354179962282687398746645565905502250948590090052580759060254 -6486974981051360582508378437652320531515639324364424491392656403886587101611394285202791775180181840494403192370521504242888310 -0832863857962097233772304981176182241414796661234070317886749751979535621508014316193777356696545211120669034308685700669047575 -1601920560631092775469657814901382577801938745924198963515833985856042317888652481510158158143597978988591350058772254540887509 -2132235148831014717469033542114409228818750252221985002159849994061876844567039235968616101425307518401162305005282076459564485 -3749005491254116003221964938075605607977980187695543266859111481060871108661145469674590183816636520815523589998805144183387552 -3454557776795930937812464849331806246436437524220402821725671887519345824588678830784061509096255092713692879753496348543679698 -6604711892156464428503873379368266697844691398807542828869396127474509499861163107833096454590997165019449027223124752455672795 -1464056065563451406292025100441586772081609300298880665395988771146415490692648836974652685280576941091682396423173897267646839 -0355383165630525414486907132932207574564820206814521900700480593494653392345246480522618317569197186894847097184780188176595384 -2234714652935409724403164799544553996270776652429105659472464101488105672623286713328942045106946821859926624587221567145826782 -0309935578008890373154226142294034025862773115052182464935233315361839771441799453095926400038395389556682588458216003237653863 -1061156071932484650516913321439215405043703716040614962270232640142284681169472791577978618224769535957766957086206741391709970 -7647351716205014294072195135184469100518783539374945598848168573993875333505334011212625117442647232720744618603822330582078365 -6190042304849971211815384939288709598033150233044255711655989057889996862762413082297341687788607689416591830790638752880761817 -3350993967482666602170935703513835999165561197161777938477157925978429670778105685120890113130859239045083522459241247368307415 -5460081669964922086720150722963115784946235169601550836667474277946931369187925788894576312382075479577915204545165252523196796 -9483728931707116749644793319165741326903913011722074179317419072713429472369240811255731316334667969479890293999075667048649131 -3479265891282260862086967904220845208360231245372151218473448305464967324382299780822943482467600298687513476936031155077963601 -5358607166888753271639287331221882667306965170073890751994864930247242443182503197751744519602399141153643026523167858853130538 -7454234112327473005509721991333469328638161495819890863131852055720398755713433050343878076412540696773945682790587599473898772 -1829500286670935139918198012253669665196719074234685642111242009658467409729732638466770339415767564217863874440642300491597266 -5585497029761221358413402963546931530898077983556347511671398790492531247609197801647309393017719703556474420667077635431137035 -8446511749461154540070308470454488783535318141900958816289412388611370858697615498746416636102261400237788596935028958347787028 -3125589335242227429164632721324285385335478344437654660712476162463759322956724441170491898597020350367163787012219584863841888 -6802337989299969519242898184367047999251583706804577726542893830886334416591927545136810611568115854449708934129157129519681281 -4502536799805954583144549032621959969753071050956941684132891200046324576389173182566153807220810192479638581311891427849367417 -6325541021938064574977797529368876421571303611445571554655335842928934553745122110842178236045825160364424732178843094315127909 -7416551206319999579172591987511489686313571898121634456963111089610744020435972487389528243640299599133169203384400119064268257 -5942558924368052900576494867848083529988242331335385049200017447913990221665638834941940132033114280719741451021709322013495656 -3034267296680277379429583962288582457402893052674209528241394670330734634693333770067544918231098413897817493181756172191761769 -4462568735945386723562623780129364617626340957792264088426814103842409805756856047587770203362285297182877719759239486173167134 -8181657858983878076788365457679611406051878073922935400724071002626732091440173091689286855430601190105542880854867957669944342 -1682764258327911438109776589215105175058720345720016147450773913501679216877023673201387960875767306750352156509386560915532694 -4168453046768399507263930483191895109159119018724369742162771101927944398681984030667327651300421681200981291741743361136642792 -5961214949092908589726506803431211408890378633711553535211419472586275853572210445315467622414789208830684013971300686277675328 -9269710543143964341467182430089608998710751826481978504336310277969086698368677287182389959721242273938854619109417313330166529 -8486459999966843090378171773263091325696386996545517566407679424699279968298703891528397394384066258625248890398189881141241156 -1449849546688513154852662654151484110306993368687380709636409815697889872688403677017676988174939843342948688833489247136945501 -3026821425662283243215241228426396875362999466310497066906176240972976192127107346129568606866349374029240104708104443230866441 -4888599832610923002904596161762304764008702325429097763470366526898011656507069583771589908698710318907474941536590688671464002 -2187786798670885931014137550230451723811271617853032443909991254363190383287294838940424051082728434647528986018234698035977262 -4010150476565439429491060857277549534561616385054516756344772776300804281913985317098584407945908254666687113999982299034911916 -9543106789274635042741853569705907409683466986445551664737067041728196021666244823741197574167419992584104093228192902092720801 -1102588771206288521669854794170734776396759389699841902844928003578465247527168100807066013305698109312645455547945036883046986 -3363256734764708042924448420459037705906529627671525144633382899415555101340497992824046104327698365969273385304329013580634534 -5814024400502542484138080303093675479908925878015957334513036393579080542663814740530799226052633254072603206379019404756963615 -8568459878266889844587337958272179244147420281407959235700418194754222652142770182396574372220705526302797889629403089542338729 -8226364273353855713782831639652716359809735693921459950536413341806490125092787610897542413754704628839004798504470781343226879 -9564108089806303912196187245286576464060313163695650258929860024346682416259472890719900060340274063102211811727469052257146328 -0723807096388817245239864356681843226170736144832701238842559718295427226555369395998370081796589238415142792914737246512392617 -4241424816471283201248965000004171003042756134627995493041482479770591013182623840449510466593158465328399081296605282376713554 -9973513220590332519460381924338347505856779256581376567327469745338170108702340101128824216183825500136464452346025348049667485 -8383897971629124447860057453350337067099519586684049058435585462779736095630666963739484221218567448740285624710665297561214099 -9964116268591382706460872763874878534297946361217165257274977145088020502651470013064060961213429959898581048432243027406481577 -4824315082578790346775943088343852549806522479147355182415674805204204673847884219703487656256651056490611337757236524094938348 -7062382447597254598729362880233858271292436951748099256624309342834053225940366427538355199347489811241328865453894894705029296 -9735693411211619628088603452483215272175364970550497151583596541206523461527332458408984429879086514102509879665768932131692226 -6961688387629152540756216546017259642317857065168508958573052496210655276891659756089714383999813015316305245290357709870563638 -3863034723721495784723589237391107262786771026496285596990386769945707595340965195448259401890929565886615037974745228156868323 -3287577904832967842610714371567414265151412481754216777139400930821306278453396427971928947503983582862250196984342590738386627 -1791128295449101351282899590128118669109794265058849951756999066974826947872800232214872176234126177766951584517353226892319930 -8805052099840613606036822579273082344123139982418321238213526119536401574939527633217151490658267375799590895845553195225375174 -1355928510541796297379079857922955866076933929404227257481153317061720856509437585235189609477388103725696248255380889259925943 -1402201875930840177564779603131963190398447445546273482826943610197406605496467698637182093544726028048446184407465904504733488 -1834037129267281181848805100644706716446934703366578946950288560270548606368029542736413168537166947783032181537827321728818305 -2399588088866368871684803227983829485917501647912319399696731866908470118289600881964063135888922021379521028829404789266368968 -5637489977535077950426899162426475829892339881113388204978816994197921201698140466319573566765752657389499556451516488232245559 -6112692169213605381302831305889438504096793315962284966459192757358537426473374519814657784899843476819443537896967951107338491 -7895505461382759098793722523795396339534176000429147383719128841803883949006205025948100090981495836498310874463726230844486437 -9522042614500829901321795525603265978871144309432521198633117362072879318547949126425751870262081563243482328537146079314556599 -5093542621599279420676140514142072884094585996707002095359240117940447064308608734332029368110977503867431654445743620282821742 -2074818355004815481495949283111185240895061522427508730372487670815127557063465146879286952537668866636765956480834805349247418 -0982616183770170277896101663961256388046096956303414645662042291995673037815635718874781061367093483701372208717092453548930045 -3197990341408426456860501773717322183556963874016603497159407408857792270849795326742052795163483613191779561704529979153717213 -0442381165605136382176204027769856937910886725474913822447353042136166362618403395513606165988761350028767809916274534709139581 -1546533500647539778292217072989397950692244341857345231008319214990106951110301762058019968223873956867021450221558460837271796 -1089583682950702039719953402978240768135379617758154644301927987331573523265837746123630494418924793748993674977892210713791382 -2010498095473532597719948269554932451554991652103201520706494302534512806373772862577948592827967992187111665796229241795272327 -4495947525239030494005205359163320911969546009892986032715554824732415447400580445227801191434206229755544175085033640445463730 -5799343664533857261737308836915890943267341995945607000250119768647338018370977116150224513412795224930773162810128318361091070 -2845165641335198012087900200223115487995666447653144922411381435396653532150893427712002942030941647409112450887593516206623257 -5995936189970345951128332927675055555031225056766626864377451946716279426300206796784320339236602175243416848009874418064376734 -2751388225971927284674719275737386426623723915170272496656834116124167598744380632642578314683658323664087930294748983479134152 -4463890675024338744201454760164930410895360686852249316115526602608580347281230566360947860956394767605509297995646286805155429 -3902535272296902694906404269870261097232828009262961508419387381919670436136425912908116240583462930917866834873246313946702767 -0171550221706917129701789274673785241823132172160837286626181116666263103300493781986590027327174868610919833041462749008446670 -1233446436949798212579086729206735034953949556045481891487880919889748751337486349345808929953562851746791383784762700811827813 -3273320169223863915019571833988285591541029709234409949795661766708317004888223115613777281294607726043777706813741640111212754 -2476840221289778122524588163601454015024966289209119530584971298419043747426874336591254749329149388984462650479516131162264547 -8321322112340265706034027413610131445579234122444443539849216325832257070066442940612976748450142222873158683339615189385385401 -2845301295555610107931163495080379964949955895954082606347174241430747973616106979000794362756653542557197433894470866065773098 -7002289110540946230118386265586199860767183813803128176222583812066464632835592487506968002253203796340562076570806978606547027 -0518614265711371822209002835579969441398099868205035333550662371029236766960492501859441092496004547436756442048667962205035734 -4662742623053069471722274771033535333247780680117662494001501801076484609461801093095512629224389725470873708072969419161134986 -8879423231727024904174405990021786946862967043559824446453539979244586561718968470449066018656109597862462444251052806647222165 -2462868109247823087920350263249330583062507248433983310105749602411182363633125913535849740456631462938827755069526554867046297 -0556317986368239387236732047607114173950737209007825151623731055762898522619516377121452352573813859619423710420648830645140602 -0693502619716624171936460417629499350461603844160041861287075322351538559343745415528939056080652464222483749575581089457335292 -4766904028429523888256867990946783862212788485169555738269492360138212802976905819698072914952002888319407814152289904290372830 -3063149485419553279766015944554584134585112055860455417890621924246024514671960271622075351843821409825893454426591239346175825 -4138071925467858356596514010874840756148724225545969356853427243328235466057330927837715365449101436095007553412409485033663473 -1718208277388066697955637942282188804022877425156297722332673824998500535568426990569492133060260476735245935911435663031104540 -7259896781146483425619092546253937377799155709431757305830799439617510543866635784180461435471514956432054478723110546701399601 -4212208190748800869765878332993087846354727233690197986460622890272309218632979045510485708917467310543076772888886969650697402 -5830555875156620379814707898244277917838097196097913596741388644704517369937389656755811401456911697429799824431768975340394565 -5218384019129708961023696421751573471619498755822698446106554346210228582416782419196987283985815988033363104751364948821321736 -1511408675805990625863697514171112598891753956197059919478438005392395089087719396999097527167894172833319566356364163919692543 -6760864061185222844062388472607262118669410742190580800609818458141651702885176634837319000673951554557807668749868767849900633 -4624693982782044541974663953840367719217355838087352148000020445830027606519679992919499646684217452676557562945022247829061975 -2885293059896283301736153794239325555898371313303885556968069349802848506212069388120502744705750493536808390340479824477084109 -4742565846910523167821445663540712005957374896244507720218360942226085109738527921622092099772083368812073433747682045449511884 -6164131243427554092783794384838205105688550227514505179310025715143470000166045228305059905780171994193190773288044579516190413 -6196746209214286300600159852801523856096528659384736317041341206058064233216653841144231397934288134905891354902685060365011048 -5888543435289034798476752259935453803961756168693460157400272434328483248778988626059542292033153708506682448981834226044225475 -3520105979519175798851693163134966793094384503981145911295918784323346445102768597120762535638265452619900970085082259502423098 -6023108133594199401032707688284772080067633191011227704160888217224741219472651134131857620995953537078628999627600457859691029 -7135355737374006279317910328897677569526320656280275576870747086734764513800879537763010892690268998504415888806085447064856828 -7067645951048993310751362481424429404370974532580270127897680271443323793244595619510531091473812713032955994538657114149409819 -4429631547566328842887647552139562050329710358137821590185444827892759275367380722401524911377817064992340751082835810723755618 -7949457580263990600187866192739809055130641391600646169338376355962933757309772135951086682561238922534649604316450790162767470 -6778696718174528127426896010544648198065903564137512038147927254912585276060875391066341248912566730098691603844487954144583289 -9567988530970013733492869819764508889770837509952069384446637448211216157716267753953316429209184585653933599673133926099458608 -3413492966631743395005504952764856687552734825362970605800032693220033767913422924066513158712050177343306017113090503548595910 -6782760373416377101401788671756172877579108677684185994928623883970442286211028728581037425407354811624955553337741266271223038 -4228769569080076083693265874897262718489495320015615486943453828550003614854151710616339504422293141400194809493593482338761720 -1275749976017493214306625272092330580872354604747422498275624636561377503079831465248194508227879655351358840776762816388383155 -4044611547062276323077587550347056464054608166550263311750875441257836393920920323092209759398994038142599127607649577377981910 -4521255521824521693676238300467676986666555950395922139641083951517880343036286546664953201729241686129223651162600610883998263 -4053431348518058012397818472045875672812077824208246071436792077005700411785602017912645840401853632467140385402691379589989961 -5296228207351306866595027867237475870719440724477597041700391443928732836085081541635185416372585087892465757549359102233343361 -5753047891155830333399279611743974102446066339908340811693445790222472707295688908858729491663915472040238337620182908302697924 -1508699849153464593476010736879669905272623521348097908417836104685217230447793112158735284635375208948973376371517941685224649 -0333224377446486130711894052961084313686306998844675785828086842465862992758130724435712277355911443550657464532883107599718794 -6835605634916383199967953082993703931572871914916373072477880100548805151438790628235173925034028725412169450381473208146789756 -5647596797800233744008641095874820885871714922036190240494729749620603436690380840330661337877272707920476284213555812599419547 -5513261332211064956118510684223202485323331553849116007081552356506786559518794150443263231676076605407451231256028775857402194 -0513233346964413426058663133294017428893643801135629939987380889256710071523164000264715556002787400893978524476668487881682249 -2238557041006601823583800792379249859430190860772025645499651325329407777431099926158122243379494002959281894688702064542524790 -5329597914788889055993063859757359411515855405549076867209561054324585069797183524577493085961561532791013967475565456058906425 -1727267651465421481105710991587303136944086691165624660300683125601416772368166283177444892976868345022274558919475820725390404 -9723590243421203442884921434798664645968065479222983928276913077586527562214486087189922112591555037425227530771384194025142882 -2491150360749458092334991769156796313818947278756674701926505201943095015129003490350920079450451251986198697962197375931585963 -3288323311745586996701741630221983319300390047571862205264349777484027201608059718085154305903308263735198400749807369566973087 -1513669962911297058622557295345513797998471626294474435337069062590410594233688469673875484253912558586263976338954760252676149 -5698941909248281308488717883921117273305117757034931046904729563167368375307728972002962702645828488935279252804415118514787991 -4226862654077359109954473957002792990601772994320272543965433892756039129932073592057677191275583708907760929447157089919000104 -5013015202975115790118348806423060224599193301855272198220793587287609415484559416236588999749109103840932649489845113026318936 -0096212754630289886604076288072412229982106747320501739034720205607227829189554712104511341545586461792092663001971581276075105 -1400830012525551115910295470153382076377587383792342868236429581401216573706230071139732339253271088253819425521718399148426972 -8130329129443141149308342972871751834898890054061408002066328617017958243761248655943163660366018684672224076482931610024551435 -1612470444029502611969134698674683976299405806211129021898957209691274647456212891723004609478869086828079731180673443147282673 -2207763612557030174078525394691981763423880246207823469307642881721011975478949627177448531469379452033830830547116487954748579 -8943550014526152971159374128630625318393391528677655228099671641521821415999666028671716937719971706453115362098995997004338463 -6633791090761145650463177053061879817237525424207069349153087084514135819202898699531517360951263097509259970351913296855368085 -3253556229437227815840782322932038842610282009077575504105765620857277275220518640524545781112378703944765595787111117088536490 -3612778048987899240807648365404713381232983899393777316948941796158037305227415310986733359795685540845368139757679718651388721 -0329656082303032301035960655149116897998069813522388783445067885544697734848160954106786926689147778838221235161040983098545023 -4949145925422482842946072091038603570358418034882170359973918018079551251028978485799644769497234033416966830413282850538365544 -9688715528548523732988559882524759509039740049260246259447423254924760566724656561201075170029641287177630144231062011355479091 -9326655743860681005816798142139776662356020296561383131825601205038606699757827396575776760705487871722516625005501108342115046 -4862493770761711413231246894538240278199950440029797832691068222332648670966923316771267216815856555063431665762362373752681261 -7759348913324715341816977430054410931106803880118579894939051307627827449748451051704548335839341424354678283555009009093334643 -5035504534504599464259968803145065603468459325562475588547886212145426779673200191888479107787688352706387961887120658923163596 -7064143605981003619608323632499268464142806140873807593464533126484595249138527994250140164063377300752448939069709418760740581 -3405460804222472492156715297971710492718005664789725902179902462523655008185987881883912400930038752420707768027434069222517179 -6201754337957471374021641947490208688904315801118730053700597398632018696041671232277781587402859428981324544384470959282694488 -6581501955752939978682011949909110724289175482558070539947143137365139752819830357605189104362596510417675677952395485738392629 -5415386438105335984223237131949793153812658394744575126207919072784736846230789712179591745207901814607314375532066326818332653 -3916132472388884065768704630042622537625667251509691545801542090771247404318802955070620862627476301969800427094218570764969521 -4673296443835065767694158631727161041961301871016507435883528289555722603890069782368970629525870136617529702747543702356107980 -3969736866659860369283152300636814307559050510391015595957669034065148689817184431746719346979216411505522453887905503375134993 -2033209673996359127998948182294581452192221728807476998740417776019537129643269360367751767407520936424856588589036363660084548 -8920359577043563701436228560312778025314413146903691717334802285060730546542075837699964573276987471415144914980259764316759773 -3627657012409360919929372833162804983136382545072275729679633045374976939117136265913209976809144657411039862524163682772934353 -7062667690768603813766580397495981633020198031283191319322060508875443418955017187814158494951274114076243932640382433951906100 -7089164714588749807180199878456232640504233132283953906601030144605887922753172274055475279148519962245834295034899100856266109 -6314588522281633268271129575999011547246790816567972537919142521521537511380072338334215014034228037819143744053883142669885047 -1533466041592069230562893355289214460798489775583299853132986367560533284715718053651634282346811547110422080041794519104713892 -4512970626101824923414591998781160477443695022763348614143799819070327746195782058463430126505518264262282025424239196981682678 -0616389983515682792619586855106396642118585620436668809283536133165065564894495800101984339481469054418070569566522216534870046 -3480404934288007401354060197932800798509063792079011642804930003377191431422069063134440047889535881274567178940747418743011151 -6923077833597121569133964233884887129884707102983051918568192593065049229148460460606709813558966649828440283419826988551789494 -7928629618912970441223379654942167876674509009329326197500704752789973531185610595644942798244043453568923441723724834770288101 -5686916225325175369639383018669733714398867749909229151589872339897763998251848983094518391124033198227341074940345064217565274 -6976813108342658294069521014494920511978448452850030848500379855545152314960261910035283177013574685072898109220517966532820914 -1235440485859974578507661524414185881273494203471328032423655298610228309217218895796957468358842309363210353318874365415441005 -4775757215064448647761305923181381380005564211124254441169985896444461359377488533806177746993363765363744834471832298666899659 -6549502546484198000053617666533373457701974326516846596770901748191355355442117405686714513545060992856554971022392931918431672 -7550521620433789157641377352042796699563142807992890238677899811145361588800069593324309664156547033893582449253982866608790396 -8335832703903786234598337454771069254394148676210696718885661839587950139009136903487221685179093872236368600881697661914186761 -6081423646547430855633909798819189360248786532594620983774708429259122445948885539867620755942089483824811916664871291112367965 -6763010129734054857751250818823088329080234337202140258490696882947562857997890963039131549439624749888135285626495741851799125 -3823814359862336359300824370629334246257087407174522366323576913384874982113357872199582879993086251942490130349296563220714459 -5201936494493880745125428463676510521663426683417020693977788479860674628237207703884747094987717754212968764024565059007572287 -5656800692578264688131164439239627529022443380780216659445516384845610830241501827976377913518196568744298647947111534785980646 -1465035810576162949068709350012676100595272189178329025511241633720229686245517256992739629981296918245960598907587127807526613 -3498649092457065189914681277177637039326561250640746889454833842625621406771442705555721525931725554548176228818511280348712812 -1526903631217370487596090586369687092431736602852047414002552907015226570166585529226164536775440508494117144839832365340311216 -7172800070700446830268660237981558246985408200103623671258540515214258800554645764441093416997150958224932045592907480540349584 -8145891984169127686107656905169532154735243264685794264058843466267191409417280492627793038318403119617408184518297221316412215 -3733585102819835157576236492205872180664881259553134950516961350305063296415930019908542524245430548400901559537444244647471710 -8919107817519795022023748231546623121376187758240479239499900553296636944913506176758776881811178925344276782657634277574411018 -0087408240115194690559689367771085179492160150159772172117583670772068640711181227707347785373406551286722418977845204918371862 -4087671496873156369239006050995430210075877655341012369255927938969111714405072240508066221092434986016434496634246773638497705 -3997764933956408083465951727938645280914517402927065500370134817839436837421504452664821784855528363909858322652715776945384928 -6358034140171396799781808478643680937510756584505346662094931360684566558016245219693809041873394197337373027746374913052226841 -3523525169184690915788330052438367441556380178099903982632705234888141866441214930597392851790874812046196446764134474357280196 -7912390044622498326943727559828557263667260605437809865126129166669886288145038860031004268429510310452514645934110806061259377 -8350389661397820495902304825219183306686077590455378114318515252557794852940943308375379300282537760761994418165168215848774199 -4335948571309322083199073879107610257555821153883090762370374143145191005083410872058977433580493717339726072170334542991808382 -0741068478360850873822704930167309345230781173492590875420659162725013692793497218747184011101436665668426379299561926131540226 -9684119382210299933488533355753954403421331470099036025961973755235128720357457186896140454721156015369426494838464841418224574 -2606550410151415944627360045368428365343042196701567415760981599314167562524281114850783881875311867997694821988388783550617647 -3906118902121264712371873625367711895188485445955724568729752600563482629569914020509331709891753567605376276818895453947988485 -1946035303735634882855442231649687139100528774921727985325887697840697252312164193587116219630593036960739462878472488751794288 -7553042934057050700594030020764349497635594011506182646429625749401961796662698874719407015328877341348471848266936805626731614 -3965083773308342246671432838925759649742042738645731254867213711401607696364783002153346490446057228458139827872431818981641456 -6290917282609648173484002432007182859707772380995362779354118181323028872604689080381882966273198128487451758287389558544864092 -5135412345654409193398015818933242323380089276961210614666090376540312839620184116491698184580875294639581135409937430385452967 -7814752714924949029739912516676992468879575093818117912716084850528773868618697654019734174399226706840162753982136880421595798 -8344230549785765490790122830425599688553302815508985004520791080241214227127540251939234623642895839337504147995870998311297157 -1312261536153577576475501063559792340822581967430971162124952202625290357772475691141555237352878643256411801046597748593662978 -5420113078044378326245454890074054926337548530109656935414953837202844128511917486560998089330806876653700112974245139455110655 -1446316293204894461498438056975498718142802987046646526458433588790266320884188848067627056955062757523352642280099730639892974 -8768410207973700878297712434460869178087366365740643368423050061014329802628323539796504787700469737820946806556379851425348409 -6903484946126406722104799612810275531016737884354336960835748710713062889887930835389522081146458095107803234373499389860789149 -6113798456809198989364723468291582407592480139088852307707256783165897446795918270682937158869421622443360894104220836046672216 -1297180429334742843324101908319081257574325368096788573404226330238491288173549545719251363488582787945804486932260991191153289 -6310060489009039954463983763054135671085760401926391779699811819750329003225671390731075907159344886944959170333579705985011394 -8928332308562582665591113793712076278529561597438667031252620919756801258278599576959931680328088876910755153375346545987026059 -6122799394738485298698282219069449469308864175448069521079405422190290510333027132055402559422290946776150886848955390869348557 -3298127120443406100122108547957183131539174057790900079286455780159808161628252012286085211125545510059619150351442374519647873 -7895547723969636832110890595697353438517639756208042458909186966958825057542753856885651750056062715953653156961335641588198051 -7242277604059435612451710438360700839539630420328128639238629662384680381167202360792624305492770524378775130253064094350170239 -6328910744252096963453975544360333319092492567496656064841933375445672717827688660311871137666274201081402086421470543791139037 -1263075806974163649200998435369614522606717804984408053096263479824896274273438278637073802016955266073407127338686266295417138 -3380472791463934939167548524939273036820154830243043930199471181363843017057589926197441097934643398001941245455025305275718778 -6053039097745341259474392045998222000183392630902077243215225896980913571132934688432219430448989534298905581203790323081204451 -9398618592749592673582297312578194153271726432191886003886455601016177152460729663034185278967994135744387261240974218700552874 -5660578626067455796320901716488860867842597868415619043285914590213707161427735661103212503097888685177044222466862770614738888 -7523554669658437443860955048187147707950298396691077287510802686031319997279006079308577219459278947413769480723164988814047848 -7728230896579900984081254526628677638403672817908586482917564357430378814260695955826428360637353362697491648099319657648279806 -1471506063396451021205086178083016198973053283515072407397794280863574093292850961361893442271480652011908263493969049518154719 -1271663389268841465526530211516124798508874084299647641127612963439336172485890973748223056840291177210000865573662838724859865 -1558003045612329244947071838328209194658672648215862136590055290358556159847830215232765640226279624286079243381635121169856392 -5235686772055013347630127336838697764880220575101940207293906989459723943700375632099865606791689918944793971999840022845627855 -3362608893556970872086765317357229622168187942063554148251194799624231946317410456787560024770536041305554794440402555379048363 -5400711312343982155393978124014413441498824140561950458826861214386401267011236483424009049988004220217832202185519723172983734 -4739966966771226209909624912450025675969022747113454805529677743180928548967947375791545038561055048316262023987945828187738406 -8806383430961455857801815047901978280522034447065757458634887588704123408758546678452281010485610787173222519794754395918755668 -1313032694820263690081002684124072214508820793025272277314613304407858220279657882431787747545642867929558977205831435007980692 -3821423807029286765485523471547535800355065560255771366935624333716101960889324812432465967939307158664437101875808531730514686 -0552828401027435473969844207309352000803571913860014776373394805498998489404828887974801011916107676224063398083299850490285852 -3252785594630414326772320135663653623232974740345887923006984684749440127689169558676316478796812920656203083787608388272541143 -0886829100701462879464273672433682081314775699581471366939184918943997271841997863805609882688632845996559926289731733309941773 -1588621110929737275611330049699746179538000510503020090443485760166202124848757232989323035029655555830280894064603577880623924 -9460393092105077041540924186306320293949908924617136654677663794806814239207321566509608838781326729111423409256038330560254768 -2457234134203393682333223194421969884096521962196051357781698196280191186003044231263105047089066125824374037625184294564841726 -1139020355104202113948476242624526315291276395095210708873598278111336130644448701938653730158050834519082575031500159059606323 -5508845274116902540996666349891489554638610844733883825695366107090243640688502082955261760220172087743405531646494097110373564 -6139164128879727447485151113660365410811051772254913947601863445614936478465117644061091010800284725353254306320280311126282508 -3691867968556520735423213939515627425003649240791159831598564334907098275550400308993911728901273767070664323401959466199812550 -4385285527314360012494827503644449196670340936661875727271329351754418864846693134514944138823292825239723190822861243721969511 -3358507325257641984977160116136111658256532073729689685425144586604492783647635836225848095839938544002404873700622644589011676 -0802250613087293781581129847507424374630865942136402236774163044580066760450481644654868348223850714885941401523519942001370346 -4033651642172702525694267019009943272304377112789600524789052835595443304754361088227651039992096267114223436584457492049115625 -1008702122009370555007456522799161340685826326521804374437361823776598365128302875870953921955751574077453333491368066562183540 -8297016982983877478208126579509560908805708870139177751490524014204560610778740303237644832086788493774257972604784310184677682 -6595999611158451837934955382339066842486744152636969464066220937412139592293869816659174158028425151865523439443968468476337116 -8189453034430471397425280708179774110697730501130625090567026833440338110187758034977661201862518966699911402128869207946665922 -2967301009332385012982602845125958037212145265901920840751275900004234804254302792404413397360100212415586648851954797337031843 -4621309795646253111797549932297844132545282162620476457572874699573469126157531277320612819758228011208417228396419529928921453 -8015689409373876308149147646698419734053674168732622753328286778805854267784590171527922720365829353861437404497654095122385810 -3928532819894452405285805315911246752486216644456327155370715615309647716023031992277092232949890587556921144870096925641170977 -8706990895052933118940892301863446619427769704201470123344557113277628075518257745853511560735206426541219526593186205677069195 -9323565048038756996967463636608859147371871703253988562924960678047445864387523330892542610569708364248757858563962167618047606 -7400110024724615888960177029937719273668926142229826804752461957263527604940620456908940268767529855383328656980509173310228171 -2961079316835291946492496420673777366632570317335815018560521820389694972648667220189874230520964455139599084822803458488491752 -2053325276467463411017022059798270225751157375504499399426618848961341529109405849259510473132610506746820731096435354555540869 -8022085653261752864363248353443911714595466837953116893617432029480864961559617145874891482509931363773686667586008577729590619 -9511531059462330034969446429670396910393858411286019648142180898913734931062268324002479006487407711948954747504728441451817299 -2402899664016344765585783952968436864461868976736500943447165022135283244224710415767003722013469693233516880183011359108783628 -3912070384615994999455640965424049848090544713337811655011624123059617272139004908000480810430015004300019350285545631530421459 -7040129421344930471792157420616841533490962354840490248534268666426427664847776443733801972606800005209711387678959754783758169 -4514744752921544867887197341433819468485319076219844212297689345457872671062595496333380534044033301910072934964202067332750929 -7744301249953061021059801665718252827169031698368805857673827901657376462120738712603816558346872095129968009454819539063410887 -6694959951385441493938996005094705323326365638007625755937236084671116883434472854253964886004560210329640317017985931432992507 -9830755088107356428137960573336610521897465624860840691251416368635190221352342520096074021567053917840102300469951496094532646 -0386151915867137989482068036180096232759486104299898530934407665433761886348452364475713105652919177827149093478062390353337982 -5026237611119968967543921268886408485214827943839163757065518470886816959612437396882015040264309844556286249899479340530273455 -3790585606726228419436731177762295480034329918020969162076958086843994331135466429174339242003665276457867681590462499745066166 -2010072822988771442333707800353630624045735130580706054631404185963369356383377732515576219388977808173711224814572042638811746 -7799862036041836103498954213010085023304912197271099528776247085017591855736447939941510010043072233516636490128682332435837718 -5444031310957599380550217779540801553000957068137470959947071825380695799288846148959315246034349773291226461068837384267657314 -2720831922046271298345192916201975278989464655822747470522487119845175483171802764985807888092086888555468865508558747670561030 -5037268239030155207644532217893862758398321608270496665238719184860604497280537678204406616537105359104541182047680859111844623 -4406453518829809819978030558459040108565356220631255519247977687593573153889331324518157228436273334635625807524985686484922311 -7999885151695902136577261421847256015439589971601084977870060297320803728853045230722764838994142711659330991658042253610623719 -7149325976325848648664235796296763337498794913699316628172271388813068172391895353748736320858783488531575015143960860926515250 -9988100123929774124197265328008141820710758495752123486181540545695574140507942678614702580850949656109084164982037643220132234 -0375655311441060929515636645306301671876166021260474227545267428349070029167644989380583812184485451805574601129180998157634256 -2128590561140195400524100610776393812855470570049174388092975612532917892277799041074366790055894057834557983976227857050864930 -3547444389508771568810075527864526064121655767293193457033048336615284399475478737509966968763107403398079684015244980874035979 -8519927849602061794266560801914694036469483013102023144973737181284943231700919734522079332185384045910178109811932848109276138 -3567893790780435626536700059643971391023938979188277544418757492427060624484762199641583855650960393640504524655219454811384399 -1735108417168233650163860054247929680595797171838825452321119827231787146560622246912322232224942016739093046379276365165998295 -2756695873865903361436041234030623662053438358924238813701743016813195378135003338279782291211315013357508842537428877943825850 -6550701509812921278785065189524058197762485207459987155095767921276575821627138362297358879947692406013849533700244092475658064 -1746417294003960060064872265575781963057635907396407260460748957479942537372418296161245217676807862873866767635894044939661427 -2752800199195253529712854754798642118106991591404644917342058968657791030752834046050164301961614256798982226629143783613672100 -0156432932446788502003627727688728508740309980174215347673828299641766130526832968939502574943042109833631744090112189289099293 -3949539215662926707735521667894130134427486982796357220482855624651559957655963754443694394481228836760254413314867991125537370 -0833694740794893624914563726494064663925162779653035815936273173351045298468454290966312347207985664544908635066940292067018215 -0068104260838913669470167249521001975928318786418160510709377212045134485178004263296128628173776672447600907854928188803969244 -5213186606414124173974080816812650470078589656434215381413340547874523982782714789910645183938314140377172417321651847315127943 -3831079213870153648590263375611549325132489817138611364392701108960231363751036773655982850004119077364131468986709426279928740 -0816735516514168218608953096598217254388061619583961807831532937684267549690578384517226873045647249368898189499267589557763196 -7614683199694761607567513771357320522896560891215582525317620218466204798420014498841517198000714225395529432437408592988810647 -6493791813371800888731383040408467219612486147146096499615909931691397312978653723829961950808111958324158561777510444489457609 -4673680562966535580522867179325650694242060572148395328716350087210015917993916484085808071728589768362522840828065262726854285 -9484597285206848463033004828740831651691831183702931423669671299973340807479819361399029066256705512283915649297270684923293120 -1714285317558703325551063623439102862882087552524008272992080310001454376923262343097189280399813634553559119888320098054640112 -6878492562141548781762151287184309582512789444294394903670308453724775992147414690794148922865626436020007876554089383158780819 -9151911784071444893456939300122542765400868095022473582458690303654492910301968711120089416900205538880607052645783814509878005 -1882377638793327163743947324933816937365677683669086577608915703348630259888777501270806753764247220631643679580537815123548411 -6272056421434812628524453496821198676269890972424881983781819205395093370536909259477553372703891212584194254740307122112225533 -9681870026283102041075727337579428100736459914910652574617863758549452931286799490040297351890738617979595875678774646214173033 -4185695124550535533485860637896723654154834853472854068710912474987668413470803105179616610921355620666097149488574561869489797 -3333789216162396397679204330436931257560768258425513267401621836728579265694014546537584859527037491359360764924746663506919770 -2081504393567373511045831331064517139188352171030907247345004840816407938277996907076471099879274974679268216987024065310558333 -4237450865130692858281322184224268516039222037739605355087614033374925113958908332718451900205100215886486089988991485524969556 -7929075290163499129098877300162688469599528046726233844196457006510599251899484746828484574667591829570772351512078305736672654 -9048657921163013454470683806356852138380411128268107788272256300715016144618475970710912738205043728268553865691241054834233600 -7029431095139361764456603528202380622931434502522594214209499225882330762428652317267948702623321489577844016464692915246359712 -1105356646640216883904536505154508223476242075189032231521222657818953039915135319911079058876034135094530224254031516149971890 -9040945596327638323723931073336767619159273652642403035784821558395849500879059623038153539774239738033911626241510146918039749 -5283073188137753905883236902928531799079492225443087557262624838420087547899455213109577396225125545248301841891417389453351792 -7168518951278682051937542342148124215459196543677153007216757499379420036959725544058917170458823956258437616459586004329579552 -5203183504391078070063471026373757432195663011756522268894506479810617330340549685777010011742133881536309636471645529762659089 -4854999787239813251707701121392165868052289429676407362096901868531485589830231940346048063593475645736706551014468995600111842 -4955763538748975069385515923948951672972674499411759026560381765340448515748581186486358853253830173480680063909301824002408127 -9640228631714593257928903905827590703526290377038235443447387587380382054598578561742893844220053769466029427853174638397427339 -7206862882358947361070854137919196014699723353543071743024301192848154276186984110546320724917862537765542130378492262094573104 -9132037902884622149627426018038745128067438979528182768862440252858820253995972446342211888009471423051493159698724414795710825 -4044729478097558603438562691316366082632115863305337165834502683246949426265600257894877978230675496217762990369003197560692400 -1914819988622085254720645203900712417397542695171367605811941681178792903669629925720096971822910923986744641852805301639652708 -2489879698662595408916009150319958484334649360641536805110449468835050783501013718256899380316883895243102069697127104742796718 -4988423693542042725154817443015091705766869067613353141088272355694386531680806067437655514967029170154529196712934789617792274 -9999952996574987268331116423939940247569869095269736111023291772144901858552922926558494336795934151397996022792048113880115874 -1453279672186008281192597269984891593458554070326190463606379023362133764652707672957322700161490484448540753367821464532839504 -8011800610118047251507565848810514239096971840458570325653839372359200258329325658866372171001058138732560340444368314621028592 -8193050742913890615185212677939019076499475354863399017606329114085259623153218920828787136128272822531407941969673998134066236 -6165032662878134088891598296730315347615307351518186514382605872591152954913301540364688295560996800081490449469152762525841628 -6574519924837827479315694440706135165231391744110344384147108151733208482344899812368417803491072197299164648305134049390042783 -4020778253016163495293946067531529520938183648436344477015365877950549136205835548741134429268197026979922853216037833912140076 -2560367110629307999607135522026567041549325633921424597293236948045008668100091755427842685667533245402093886980655601060106544 -8546203408136109675436916166218885966337393842202215612854795887800951672240495314500504099192631873269330473780375743830861472 -9788815056490265802740571039729926738317636325182129335295512619052159101153870121975439793577984106855088335077085584239297075 -0607830196004382404188902942190311303589870612777737359147435465863424442529799140567063628056860095478745600686399779891523221 -6451811221617351847394635729026502559474989696391694472537910902735717543356566711060840045900392940941333171363021277998101010 -5131780001821762931334985227662541898093578808808129086254438607279239181340438600040947973426848418990057822839591824881359023 -1781431927220093804299065870243095263893435123368341056371775420733487563878765425465471958566683414339834418118022714155686281 -7855784526694976383147640552245153733193000678558101047345867400675345449097722230036412101539440443445801673442840764573276547 -7277064664195765848534013590019916383557749169375559963951776576181466602296914352536749809247940247872302329782226925806468043 -7192135649991318277247808266477765244997880386860464765070023950465490749600254005312168230797058556941811885358619067264540155 -7745942254017380214048240376624237449522972214173349323588251697136718540827110673334670762835744617609275818957162829921297194 -9308025524075793350930587214905796399488049433256186463627589329393236892726854692113712455277309297788479077266643487682416715 -0884436213404481146144542589017779230742715119840784000653264872459751590076369675379177572780987987657953814990135600852985178 -3730124530298931373240431341115710398974380360265132276809345755075936226833617497570877144367390338090832665519341170114016004 -4487614165841966483390809601332500844989818602599615930254525814591372642009685306021109318297597415196166334778397096512192919 -9738135052767202788355804851260065753666213740432424577877433994081030576175406007197406894692674226624886870624390536370450115 -4972079333970854412711805268652812255100648740561624233549801666164086630826247751458218621070591048081789263645429911196722042 -6264477153602121971771346665126521727114186506364463613567938860398188315590497953212091430368302124372365408850328299694402187 -7096923163132078408222622634338258654575603652287595704602066710353019363339205986259588116309830845020074124235604674290929803 -8620319232582906151287500817533307221837336344013921731345438451489042597967502976685688377786979657248449082964352894633940456 -2338290774645460787964275902190755185934483199622353782037807590665967507775691698706742149485822727584225845398159573488959138 -9690411512559467787285374715845943612220011261976368220307963458032917206195128934924351124238497339947198608551639030163894645 -2522942273087160899325601687017261599086953489151039944965907240532011926664847298253352884442034273091440472287878013270485552 -1149024375555901235741559582840384810679491209306220816791833779666244374445454015124428345163452944670223052356961455086641846 -4911582198911887147216938492382715818668300238279079306283822841054803949022104243393368739761683072273825914099989412306146198 -9386705286204083264591504191247314048641049210231970001783669995174466309042384199881382505454205575494098905658585266777083412 -6597181522016787958122306510209743227930379650431716531860926286813430719462209935654406493573792531684209677728726902971780496 -7454713877871827759953186012939103462107245349313356776395316754209733644734837949073664445059496108161795213098031298387675255 -8608951097824554197185243937211248657800767047324365682759725200979621123783045604563185385990004228189141941283634284151650878 -5110742662179788336448957887870922104701629467080657819437644833165127617594897707891497065965495615130086622172410875337801320 -2393400609667414757827986008711153834467770780863121443973568354701559598965757992398836770293536284505657099974035105460765424 -5696578078800033701889220099620389665546740070731873354278406253021517777757298261519059116566359233204858968015644380662525991 -0719487243613892918578289524307174160805716406329931625803050285847534463223682481335815436403441752588538391995273084423051287 -6507583132575286651290896026205391515246827860101127710478694329951379556419208073957900692792049817183622267407642643093594278 -1377392380718866307096826670910831948575020464783957275980748872622490677834200043136176315679139636646826582155786548373039619 -6270395893591295820132189201839068186418319333704429754904087462921395570639063307809781688462251183623162844581418406608429879 -5043135604579355727135840436265306254474995931628655768285052525690960177800386175175072542969753822246288489006113161219380471 -2468870042718971405890990067722938578347935929978019468025646064389136067817188723296206441343678326386730657242344326326352583 -4850753963828793552300794217123706294629474328454245842829452531896699931041364932772984481884556840376569123447688057207356583 -7057042541510451935323810217032483925746383540989928451101483213770975125680075200108338616874937924879361446516778250185550748 -0832810498555353548220097752070786325088219810053096162098021215047558250904896030368053916311890910240442204298949146112466005 -6040761853883330139655359121858985041009457655416978338162675746762113717003221699855200571002086517873586911211646864010901906 -7256461701161490507120388412005575681572262509069280090655692691681966297281536854053796037221572903258227405845942489932658062 -8784119159896217889610742272823513831023300901198251714365380671379756902059751391678189474782942687418296669663414454093527211 -1713004342725426977027637006978967397759795215758374886596544583647960566243025979142738914314172995528789806147213520151545065 -6148932160477331319836946915602714548850688076504811022908366977684207197869071392739615383347277286078886115107459496844571114 -2443445647690017845788068401719782165485185661849045242867722200580611203950026796072201135775981201642969396670605705878495845 -1294371619212953132417647548708472622197636506856370676160451382994700324005284453279834375908065277166478082791508699598722770 -0053575986014268796134989286247216849523870686352637864684792640382519878279886269694672196689841813884729761559800125789968281 -4079017492141445585825743793710894771763718871198578437956220555470157513268225528361787107561094227364687598864249537846090985 -3335615421853085612471428388452383268898317706526014807014690533942186796242785098624189594771605450015209158202436565395838528 -6313851017796457232684831975868577197008285743175695149676285515896251363246115689779921987378115615609824156064808941150859547 -2765806218554516717364886537785391971358807028025829434420213828068755277959823238847926003687327479957197440099922200245318093 -0743837871847609090197592779267491068691643664874076633968061486254606691482824855693172784961663018432092989740850414577990750 -6025684120312451259686658587433694029989987324349789159690905104220972232002229613273265979326232104213906084669828970966380427 -6946689887211552778830098495751925653354785324514999092963991842666284889259310987400348941690948665027526678850288865496058905 -6762732711489921976841952967909655635081188142889946182277259409310226741889437458160117435942945024450654816897944448992096154 -5422044978529069360644478126257492572807446085424868838210351520631277115650603746786970481265582987466949165123354295111201812 -4211276624640084315612918421177060204230299421803486633824592006573340606615889580523464227765304350439006450951838160825473751 -1889210243603037535646067281045805960008570285172891727145769267831573879630019508324069996866828486890146852983707941528252170 -6433944896458400005722683036542919674416232401927258992043251760109983309622060221449241884161395267285324969554809613236559401 -5926828496890530602862162152396620975722541268836002211191264684743325984168877494942640619948750726132999624105124012640906283 -8437529190279374121273890161340277025282882572337700420322280964590810755716568643364840307879983400203857287989101011632690781 -5802276041061620122710926329386353739806320420710281218622737558209391349689462899753335081329268758815057487656715890733084223 -8915069186666442083922633115688459542249351209368361689010535548757066038294153139851377020698884275592572198938097053313533421 -3618393873597153740469607428584632822338908997205070091595456519416863149036488990139674096344263132753025929808588767591996177 -8414765535715090848046152050822658084473018911692025473276058620384118863100457752482347145023516317250246454398495927754913591 -4409298010504839698734131748484717641239465901635152376312170896985346043211365815426588368753012122770591860188057761705660735 -5937603186684235090583457539320837412342393238618817530913846014346149555309319385019839106489932216877734882102311404478731716 -7896182092904946306296521788524236999972318921384942071102716941043024956484573567729385887708261561271188936395359650621440543 -9381772394748371157597820184835066654518409316544350915121960781236322808659004922335381181699829103134517372303100027463245782 -2615260350961768130102419692323579521155005867350775325462551282112894826272075572040191002407099324856614539494210810480930402 -1838597774381264536500359028476517592435681239463143604712064430411599943084702827260512914320943321785685269655653280527187527 -6303497221483801786682166005068915785511014637493079986822276972242808097676862236960849777047832121671397043713182928176830651 -4198254431094795957177601291882860974299955452519675630067202852553365287181631847719984611318356336562220811004590160639271651 -2089050062014249099555113392986787327862396528284354504971691665000330719435672605372528268724943691397193582081997337212460855 -8717657741330116057938366732697730717547522872552360477855457981234742653137379848417305649320084599648948083741462795882532206 -9986804236567371664160082803763334644507241277854017370156980387812678877717978239570818728942909512587707736901227099845780710 -1187012467446764171881903676699687486363209718049359334271085642494010609014855350532206473984262423560106107436149534409159662 -2848539362765385732985316450544140366071147981646641820740677994697597799634870260463776941968992688323272637389950097251845343 -2181340059702615616436136969810778034448257219485660110664564303142589278244498041564775661983269433643752893242421364842071587 -6511475958145031560867412663572535560224504744829799500512261131519166232318015397419472829178929843115481631831351152969869230 -5907563295429072630722334129008428981723806690819380400545768764609783317272102244876794754684900328466037092277858030276039049 -6371121545042724094475375695524854871280733127714683231595927748253222937280791764025222016369882957071507439090065827190758754 -1326490274618829941454831367643360383905788459550667904893538378442057279259437234426288871318674319032806392619399812416955409 -2775275011488829091588325070565060813564196841900611728756018532857865700574781000487644896468359788252916194701281784442869238 -5475404321259151425741175250657761031096608313986258427026901467928877964154516924617882931075782136380173762818340243425882456 -8098506275539721604499982773326806644420333816118778369209316210417120818431663778002427348509174034183157653013145092651819004 -3184928471078890543345386093573923680647427432807794321314997911033358058808825224490515008557540951525337845495688169454435522 -2663993815050031607786993170355950506772886776860845172901406916363156294602197804936561148186445731375733299997098917913770308 -9652206542382536216286608096098963262843138133196068261154952924480494400928138047212132673039123404498669742532274932056703877 -0803886057269071094490544437295692503919136095718722047240291609927251689451657849380414877514143018375735518559305335464120670 -0151936480170888759767939879997438315844081206201757776198680712499035405650084830184555439755477818487911581690050566831394218 -6229367230673286153903588882341483871782570684557378319370079577894075314574849976163949953230620503498800993353619885098682722 -0775734990307483598683533921005381003594918538823910337693583925400749988570440308274068133400598419503446320537735625031687287 -2279164484478563946971740937436182665660391281989609876479617857522997660917074445342075564734477309946731477007826609533166522 -3758123683039815493345731508244661356741376276550143129350958441510802897891765417564525850067802663207435432004216770694226804 -5619370786333060777254420771287566622455383721762137194440628363338996839313233289419808657699323597544032060605130001017679348 -1117350732097568268814555936831091979923626150476679569711035279777989299558634893220687598099570940599334574372587146302188862 -7465078440908857228369280211059007709404158916443923372217270156208307015594931088483508995735817533317081734115339967063512432 -0277551433478001259984748926007853394677528181409165584238991766092184666080139589261333280556946872045412337141801061054086949 -0700754560549557192840941960533883683916477333049889110496053434388836650044089728945956844381845980096615663986249384912038818 -1729833498846421646108320742580046475400334773592611265395391377127688594599285540845684396076777993728243626683212706942573378 -4323511472129830807288869567946309250674678068275114664508496611904796208234885435751853338278854135085398181237686024172180393 -1312943548505486065871582599174831836548648084308970713256187466678464307897110260321658188877464727357499093515658589884692245 -7139584610276191442567513021000360376560327542398104492743671139951823728316211591532169872633220764756742780779371664542606277 -8013300125828426771757381146217871760111879193645766888697436656318066675243280906292568248974540959337990973627561398675008197 -5419373124232954726590126551016645137142696380830673731392642951542537238565961064580394978042654467730915963421765890733361548 -8922925533382884854249653772799918390864697404746308525228860651400300505857310156341812355891928439789989969029099008533806665 -0128219411137135309941467559688405403979836275303036131774092714874831957845954239946311223981403764141665925425006138193699503 -4023035360745761142363755560440975222622652382698883967356728120684964102122995320575139970015373461400690787473496703365503109 -2193654449177213661881030975620088565679413977376323484863510871705861613106991010472484286534395967108522932664799263272973605 -1651932770511765948726250021128129739307128956256839990590743197977037091662728274789578774568077274689428101918180304889077378 -5017924617218629587957879829522315523692604428645809008208520226544692314383658761425382226132125228054011492055441635314272210 -6749666157481037578188762106676697225815856020636806090419991079970372071289788209874954711658011019178097283297120172931963024 -3867624578607959056494862536265389313506274108084087969185322137028561490827818437756426384470803080867883480797295503488443754 -0266755732085811371635896735784706558323514361613693558482118358007540674486152236347627273339110326422500120960164943514979392 -5851591583094022546650594344855608619956936942520965617453776819147723734709318492888126759979035908706037791854416714517089588 -7488779820804386679237327683610073367094612676999550051056279635818725821831859618176236859057491859294403215135785905001415728 -3397867405536078184923760377846341551636533657104459673180071634565287960125731400588939475716477977856211995657191117602660471 -6368419292461966253403926350187375212915416793685707098775001247308325202429711397391995493844090131420300451991006099818565158 -3171884061798508018743336874067220372374917564318502076615548912819919624484325005878069566693150527749974672352053137075239471 -6765298415501192506923578604075674679460732604669110708523132941578157177568853063216936080050749029655642031375231708316371762 -3941656184595817536876952668926168956461631341364895778129612449325569155094729678326528659230305783051788455638170048468709384 -9344704062107618220092102502671070488066523904860951808964071896990152691743696929206393427492236495869384495623953241985933433 -2329954473357680885309244441022618801570174231106127708621760839070677029891079166854592191885991850284207932518637882898896696 -2253197905988134418498970803242763736997197997987724202146481273276883471048373064146605033007993208986500108914474101742235859 -4471673346443282932636516218151183887721959139730007987788845685281052854907139082610271978365656275535187015151917676999391516 -1490454357895502187362105850833658593130025904397280081248261243837433753996643256759896119495710470799362993945917928340275859 -4187480193910225053682324326478852139878506761849860931936128187212907303727615513834095500089467988300420504891523377586019041 -2552835341088538861109696869815032626256269959324139802181242249722241877212898021098564840649196902417063584333206994390607317 -1538928060054617317449920025668989345408124114562616395808759769278572186743963855933221653177548947045222630757626854233433755 -5185848360760696218717214816135397052477034052026614446970415328439572221368707488898468973353428786860987024947961924953899839 -2985590716831731870038599668250152561736463733069492744631154471689685148003517537536069537952391933185169671069870236035572482 -0858819385615354860719000425698572982937868475649379251912477519089804489107469755432874178918458772943168929318750385686530082 -4333886362870957848081259613648289163828064171655224322239708870842553708643760011978783227657321411272976905508646641961780912 -2833169683733846355069467452629978104797868384861004576520122658047677739451418977045812632716306848990938028931383957425588061 -6045777379942977654526927417023844498064089452756699867598470436037381168815462649457696613017471951809000988548875034178737874 -9160331824383077463591927113486291567227954453778702317129507491730495740733772073822607464672707613182092741352901404225499494 -2171629178354382148962537134449119312001738349076684871759101972177169632459401670960405086152157843086489006781537667287047896 -5465718260392150704046827088996611582230320415786650066647900151553492798388495126103785840394545507668150495076747239741124643 -1419544523318047856148530079232229449051190304992694484547233964026124081035121194889038106213961089629592355710172833338936041 -5735074574334557161220421706612819925561806730824425800383474349667304718298810588448596848386045836391940535442755152772209476 -4477743831927353467775816826229193246462805293097367869721250682503407993182691455177890744118461259199550137591872314970843570 -9614009267031215091375702771630372739884751484563943485109876681877458872527820916316860531787616767154557713108421464243252888 -5725244451595751926785755645396186934606833650722629688279447836080615920686865486122499155337740847620671316549690747377719416 -9886724243384291436035548475563689452903302006875551792856774087989888845839795026561561511158603968657727537570783565987096483 -4338269257625836943750609173139824275314999458619895874921046346622761766613817248643045610302260828228899586867769128173831852 -1927251435241586742325643335703829021262110618516121300640702167056777723519853174450793473043913595814696522118527504244796457 -3599578411448167894106533981801012494310659214850381649569414007781396645447499689729938374104814729448345077680781325687345087 -6129529633831819171439689515282408943585760656344118595138870514119273973014358876594274788901442968142994742135926265337385656 -2522744449484255252321589542733596606602045925005526885282459116039248444399754430448309551058351839870771919853241700908753171 -8095397674156020153025647112643503525783203561945051043117484225509753196255050991995918313572389826508756030729780202503607157 -0514732746209410237098921106270758705122238404358107693018072790601247661147289735400790334022315641411924147791473123654604067 -2183481353624169330708810250088442996270202852800382852132922090252387617856118236197486397057001588957700864557493511482566082 -0159554686938426672550427425422201760923684567404107605954807954862252513544057244716697622930133085009155635119267747535809775 -1603870374074406842079458547774759610733574985005768921583657069449807861035511349884403260777475545081121567326386609338253275 -2866478551802452645398860404273568244013340206033503958336009745540839717584645607628126532817660071722429335530485083943886111 -4372806755879104949087031501622642625790498233747556727536449464577828956704936323795941826197457122033168971930280473743209480 -3510521745467987614604622504324811929598409501462197588604391588467606320835512728358214802216357643065451820237801293132895101 -8869176817884529359989957422435201680723727230870849702923220814297956988224073755455624237386035731957272496882413670632312027 -4987041709615070926110617696999725204352784063869478762637421619822949085893727644701242995534552198616152209092394050930669848 -7400973738218421741284556096408600962957422728138542260382229658265717929340410249216494966480842797114656043729408022372140555 -5357622280419421430680077268491817179160449030679507850055675685514803114136633487732178706581280425610186327901499849008080553 -2063614935667238312237638365326101007587181929899519898020565403780654677915752203035463564958973934599571280127628650025231204 -7510339610097271890758575355760181313472729121504677949019841665976993380277166759244310422659174282752504901557558455360101043 -6704624590746564335785852066839780043541376118703961641315331313655337920280405840841448353766789935381787637277026193365826955 -5718584531080420228299782199614112550723022759714938401551695221278973774269123526563402857239118115571007974128747966574892058 -7406616537246908705363274038771943716880888382315653131428051669734785136535017075892856676521312977758275400592055721561155447 -8191030503034523458658590430731690106155340044400945735308786298326190302983231623869556707507267012762969572969229893222326020 -2781627756283482808592633115010135954787388098836449433663074354764942592857302479394320001436105974173300167981736974256889069 -0749889909665269146510382674032370824445149525831032970035921874308716508078712017288693000420564774687445800320014347768102977 -9500582955080504298493442003839451470653349230762999448413032412395803444854529134420395637374428892260393652466859653474793248 -5578683404816116099839255848388989533623282136956100112356341602163894219640627502458957004434668830525937659394378712613593339 -1328818081682559186294868249152029912791110338139114004470380993085670292745974492137182403037306610656137695392960137614180452 -9752978688889728250401766859342517990190156836045937377483717028864519242478723992053825465496992411244434140736698055778811865 -5764034558119091657996034001136138512460220698471156208113839665880299241195462026376651406117658603193270831455055313097779290 -8887190533917978952783942478895262358255953083684956216049958401478271139454139129915935858174062762845986202401574727546757519 -9965112384492455902741039666831644918325589401840520355227650968749201419553213336728867559952057316374095495633674649247673155 -6547477349678905420240149432846633096396537735337479158019850832661246628844505249719392841713290257003652108726047676880419068 -4709595063724483081528398865202332209399887790016225322294096330311019868576291990108551198704968033034014495019187100300731545 -3677983555491782274707240632393630038558613476413675438434221141668472183743225033730344641440692723378405837243484642959062746 -5604991163272359834040422515862505640037839519050818603112192411600677144216422234215431187611787844494127075718764452791848799 -4854476179924301594123281798645361490338402536310431288082224776520403651635476604940174850365038818289755315902382966023203577 -0810744335357702561567797304986145218660883831691187353402861163846458499952189536879044115452318681728624510324860015033788398 -3979771283995380891938289539381044182171976827997056764348788204187193621090041996206584024348644400402675325221299998818648561 -8560553235856018013965529605400965645682933039991913219712272084018424710938107420465401522172404020985846364794336906931979136 -4463662321945447989909156167276620401617659159053053338198477063314745749076987397606793494767276193523264007206178167936213596 -6945045570777520341473278974105523918485559285787445842507870137014286454851350178004328369233461521852484045058748849569462881 -7175394733133381132769602280613000317015438488548919976504824538838731947546613872200764083627777984989422833194236427886436510 -6841401583932488101726607361270514543381198032082148492961394207816779730163687527133913837138426969504533356370971942113680465 -7438297763442758000905394998453798098283316097089007654200747461809281986645383560583766595972712154827834692097585224878349332 -9365726487547590990433290508632050107564671461069290060500347861396555664994103630437491491318643117772003180597703910105848664 -6611643426610581687045714856705413399193072506247927181637882082436528718891021527134176567154185837899481317325358321239700678 -1557904502034099580005949862058754523860889792700842593217321816597173581797908357156234792521428404814333336278006477527454771 -5551300020237036342120897324580866490216118116991149735001002790662102209629270626643498774459628186650438561401066616780089887 -6490963755355736580386978526346909059361347064280111211229508805478817906115930155049278075845715671257641653870466615953910939 -5214778972551839841667874021257601195235129654518890488743898996335333591775608284908553206841411120044347642321931257964395096 -5963500480745033263837415489981452116756935833729630104233601643805643301868453891208377454731826714298746739883158478178624208 -8078825488224820778954240186836158374373671746556003072588357835036884385547573916766540198508057742745190671930027702184464479 -7807519854130748159210155879811678899722270728200599689770154189194726372412310007746266228667023082290285051427818296004435318 -8849779730758648974379073101178990211676693852201291929217145528640734853429497077571161674011066495817276757324157483849716817 -3827352998411927949530005101476246283441759897176637008058185334546170312583858564041585383266413483217734023667361663656510262 -4989459887640993845875939547459055523785574975836774839383442442772727790780196274204446558595371067248953971633261788681833422 -1430260652446882399259326117845029992780579944482914613560754920430392419419801174119306529200876322246749783122971752437529985 -1073402550916699040362018956704245437401832452382196705545206547444352132288265525961915924743830388330363555452775455714221746 -1446616034452999060536906307198084433181209978784238878045014349105221877679941993115397416711191417693894301857690745032510836 -2955390019036983033546377278387952218996955027373523655965784118029086980123579985775681000785897246210289721704232358897262443 -1116899333926038276430989136011993311064835969966384464160468735201645112827713375177166600414004561963808951457633980244174631 -3365167597668328545027411315066184915713562624842225290359331084124729347322094220584503855828183282959730835678676639554531692 -3703132630286521554741077336255711977522731641435705473997030102644612053700886241315456330580773390018414386585814426113751822 -9217494111509421272989272558690493322060649433443466464859990829891612802636240902558280843106767641519024486333577210250455758 -1991150751561946927232491146002439007601543254992434751580119323409611022604175456900099304707614992483865118197257172247468485 -4718289269042762658615396540607439436267108037664826892947523927247548349191063673761417193077849996352799507438421286155035753 -3670003174685490297784963434080516316824119943018705327982929605778412196093833118187456471893403114829335230172542023511761918 -3530299462397538994353624879221057016014513591355266971800473995195599575301873296387357918288523036075230002667564181209941862 -5652465756063919538830640228613516853681348031923008502389424015416629283480087157633179737963541694567718976270634283296698772 -0628398273786061322495772855081114777882254155541640367813109541283460927308493462443462004237680494256941289350455650052190389 -6530923425528750248516830645859529161548508001636146477492907827739674571658452569696309864671893300056851989854105052764500328 -6377838408857911124605696723808145124469491655188029699697020610066790779133275460162800601521823852930699312176096876169139587 -0939964825101402137367079294180090650010316165686145129739428563266232844352675969324123159076365905057635263730951535508592474 -1811804823447992196520518580949056544426238843325335935996032408627339563545875884333166832898448807558706376176980463476019811 -1853671195949445539340843650229575714750539986544526174232405759132358558190475375028485355385394868549681406717987759935904458 -0905656451763972780540932190579104438556329939472118207647554428546869843074735432587357981463196272333295652269129883611649971 -8081235587163561191593283995607470950948702816215035438010567011848029435878836700192088876498542980088266248768136664360732349 -9048395346539903256416069243232533610069691095414640231288922049229368354092313481960519237230458713935632653201847905841902926 -3586899375981532151071970206889742452371614510846757239619094223086588901204291404135214382914427118575565088049023826713070734 -2259183814776114935570816268571424671175423119794189492522671432476564901966405647187984087627618260356094922535155595764746633 -8775939779211866982932257974707044029673787248018990390269181484731175023868082868637570701885688930003111950730117366747034776 -7292037040878433775921745075599110933471784681597260046655966261287697859339714368407310137037826533774841074326027111292219013 -0255740507228750627788675142293353045696200562639503837065555027761345191438643278181859657112500994447007605647817675710357329 -2976075331061106900800437561657304517961915727589721564040507512613786451696450429048216474153539650176719572123959448008900012 -3408433706045747990792868143612079234278596536479367304972783738238238625919742682436942402201332632706821698633101418726786131 -8375660756604324838036937822438189146692980841058943655646096987446498055875487503182581651007976496878268593478897138465125407 -0302161625788138941756180586844882835162635784547013096553214201480525116709804815394793585124634598219195269074280104207728072 -4667838900407600665351205946634451166183916253892825653381319301710998507256107777186848085957403008238368100522944303632213848 -0568234978451633682200113830676859774853569376506354250671989943595147694543341125278943952146653132296950198184251693558754266 -0837997184654618266464229835853893240382511414642926848175904359357425914225875122515607126936089890130506925127703951001817058 -7698607971927804322206607636649779969047920064098738740542516881736563449825854806194526365935192809082449412467250570813092077 -7597321887811111154968364298503454292989382990719881362442172931187037500402048057328677657705369081382090672410230632333022578 -5702691344767100466202486216169170905325756285673048601355109036801723677816257513289352210067825399512675664902709627155754391 -9534899164623786842509061739505443727104012615679366121874758009252764781464695793453679090140639672566086270483355150124722338 -3629599380125790239429932208245186801604452556987851483665390481177058173633973798236252529147955843797090679456499291551397899 -1654839141753372209578242837530384383897899016697607163271741042796206564645006293555562819243718356635356102675076651792712069 -0330578183767799422174048823749345411130436371482070584047136107077445803065143356378310883097325525812461948426463818958359831 -0535837083229949247061916351323305805073161284351843348700635104127671026579915150619625693973299904452300157134992421628495782 -9135533592025422741289488252334208635046166354163256661447685205945401888767478319569656787569357811074256962118550453119004362 -9301751134736346294356523345255306657038167822211402293117443464784840025659169376501953957672727051530179579688902595680131766 -2105969846665539329882900056874716520798786759023512793122449365556804018453805656203040461898429839786920406056455733868681013 -8994359707951012841246179634189829024194191300675090705148350390247850109295388787831386650321294752877084504137894482370739618 -9241947230769626839032573755018849701961689378840022528468670515360403514925600595045782712624516468191893178057825723173315417 -0398704518600034083166938112120280977963993296425790225059839016038745051472686938943167918298644018861694001602670324180907739 -2829253174521666979009820015551029220993105373115142695444414232286946938928961493390386858301002697320226848958500348592987936 -4933376341875898717948810316592654389756790528913140902980810511129982071300880573916140408222881362220907631175682400695211957 -2728405831786952505365442116971677026094675638127255014104635321119617454191227198408175192550442007477181962648595382032863011 -3335513609023390087365324523236604049358730860336918649941016742564809500323096143070248679219333226141951672644858949079743290 -2564143013685722767288600853878709769356311565059463598251742499173323941411533573854915762183775988798690410191696639340413240 -0493448733483595346076056156947860868081377709049727106924154044343435604871736849228001533150906569243527614792377672885378205 -5757247991130415486385859064419869200094851432494013487858837812428585929428086640566084149796652609672519627454844564932256297 -4669558478660881121021903646645372020041434507907448258764267056511994202274610206718051374682457426295364768694292186976277202 -1564360996091464350826834839280932166253903015206256531264131271209638480781609315412345487344374301996139188255108960560840234 -9176534815648639973257109408451729832095062649822000160147163265683826755303899059727567592934572490764864402347275743547218198 -1866055495605517210298107031806201932208987305284317169767415130763125409722583393741250961695800822861253047933789380082578910 -7563809612558319699283127796207634523042191451596228205984495682290513031662522019531400901314878626864267750108819514332947951 -6013217317646435086018804719571761416592333129643806900438788455325630320446510012694647580590342912656641492584092556696246675 -0844610636935384963725961540456988648961187114742364338486232200258126457044861826644153851981432318719173242496404738484829592 -3080829363782082227074488901159023270312983944302028828324523976099006110195688729810726298266450333348633619065288392022236229 -8005690472921247866581261895577036104640057531331680489329654614207889686295106419176764455962025382611644995861348654828098933 -8502321967575148172006469677676125932579572402208147927471694132908710196626265784804209764246638587086749717612279459712731943 -8253507041283227562754413288994720899007749153170225893148651683553291625294974124954074490050789574119491844797138467527966227 -0130509196073119104402816135401821552059355465255575401457469499625193746950815086568670490180348072693785487568778765124602003 -0665248124119376664057125582265850335568981888916788294854156077917276025925880496268355143677289608433935345978812154208855268 -8995137970182597573167629723687168196388018417038021858197249313810312106750976993518701591284371821222304917627037046364482239 -3380163047424234535936046961259910243886634603953810906816744443879125914109276466757734603864050055610106148478096732039481501 -0050863632424997195774488430947153709833716798293363139764056905080948883372556055175360309201107604690863026027029304809129018 -3159045522676282622055741762907017038764983291766901157880220174438440331565498671114637842462602216932285417970008975756029800 -3552237063449291059014349162828946704972597219745549772402644156576458713144836954411568696563098211658803621586740322438123527 -8553792749167921622407818214329886287689794104816641507269131593430918574387850051670847355476478466155909359159406347347073422 -4529077230987714405406119382703861571668341576429308147647968381984164008665288474312273798880569173169482210427510225857144151 -6873466267196323702969428729542596817149488353193513581368049814798979078196465830515246880993440065883452528995023407220294628 -3423764900702625807926494346022071251875105005653050523263476206366063134157656968651581937910705560688575444683225925304492434 -2952113637739291573792177591055762311484591345740602655920022962868733639951191003783483933798477891209504511076833970415208477 -5918285063915228730571970492875778946493408022023485280196322884176264848374770469091671934052402742006902024842930375953314997 -0188283754328437589051211543538670804314085522712102214064193375644277314824255259794129098802312806481056628400349306174297818 -7400374465412082001463306963438819366261869661341067811137716763449961651069723995940239925017934226230532596999220744932707685 -6210672490680638537370704393760193333970297977253365672997212980801329671424210333810500664050546692669173806880821364438329547 -0441850655848799432631375117017035628999017015487913470494267041654835295714453029034648907258088418618148803149605119491595378 -0667709470097778550996561398901373747557627918533058120957567808028277879620594852014529739234370013800886373620787541449928329 -3125515897530266841998191196333295200100578758020333846745697177799969213733901430202219148194889600422499239512275441137216920 -5650415027342249979224454839045392096843643602822206652387425455763721764312986203030589819856297909492941454232871627676382600 -9334860923952422719693805188600329744718934283065130982713900165662458916981874159673444880197331666542991521443060535788337790 -2260464469972488038180467803562022523783671731570132720326212442908194344858555602668263231905684505806559421525279834670049624 -7792295078720351079690690721334629651981883246931635344717773193932081371713539221551527543695110154112122644215377568071412160 -9195473483543180179899660415512485164196998646076213127620507751563271324222304453084630241541418631528227182134165081602418516 -6107199131518105376224811112336028754695240510430182476876463353393744511821873843541677824666782764783493452855094114804483949 -4681701662176678506643507046144062278379351438997367570137464357422720669913574736380880061893275748247043675527436431955366100 -7149553832033242764660394022295041894654956152213899886346680985491273200086975419330405272293533518246991447255727068177450390 -3655198436587622677364860349928319378663047397528676907239140945275682820405657108502041392682979560846597921188888907265931036 -6476533442276806500783053564071177712515831376234094631885310570178318133342242810813665266902989059805523937906419013727894188 -5431372487274298724777517697230193875880937677668764659986523658830811826735084723524757461022654674192380627828684371745612348 -3820846618376083469895407196241963862417850743410179248545973893510278183277393709562656195366243761330452232662018800107769440 -2069720833072682115347026542393190511365870201586051736004598121210837565385863777323843786272509797134422300430192141780468920 -0442031082909423594641218252063553777303614020588281829250848330051744891712248697144729676289337492695365177253047051776547762 -7268639820077382077506959745238922291525171731315329144119549984484846531136030620064784882237444115815092112452964098100945835 -9872606636855509027099907122315750101939814965155251567403611737103452272009598076995597635176083234788901670535978209531433759 -1085327638195333244518594079295886331726523118261222009427508754702667381643585015276186491128806622593525832828640622269002176 -8000558812466886549021793247340135947691306446427709528028498200426365682563584527832696795214569479985794618339152398807896264 -6187988847312530289136504030984674599402925257102785831329312431749794271223626066515601194350356075536808657593446997124519277 -8221593778261506773470868068030158332034878924556789236087379527748372902142937754401272228850387450354124993708739623158789162 -0522225048132576688432285718958345124544338046135042578516691967468794904627442698787375554323557096004260191198734997094093259 -2462493092358156921232365706546429643442698260566011347797207644508552329524610339812245114706710736520675636593241151933904714 -8168806409481440220552654041925492552985114821706878419857282323004033916474011864732600044228285384350058041710798941857144196 -8456183927145192331984325229219292792322346278563254801756089348717336352552507588302857665733398806159165657708323657950532344 -7959027432654889449179694030583164431534165468437531025326379868797173494533488353046359898220027884040904102921916878818230634 -1572671474039612214962772842653777925720919829404267236601529791378862012346769450214240286963754895280462160430824808649254296 -2713235643749557564532205594282964657763877791499599519104896455051738725475670902079776954156280521778944415643098383791627273 -6105964254598123007279257593697900824845572590247120355844905046052760198392683039070579501029336629655707492386250995234644336 -2615762358163929247483738668566291188631481608731204506773561888479176007728316484171079619334578564058039995926257045933155309 -9915284962226636771930258072321745421222389817234966851925987744510291810977458517680205953227386190750476782698954854970577352 -5673578687374046860672064496277781044455548859373704110716891640260365042726694184132711815871762240294031220477588483951772686 -8668728817231201425334885333412781573848400038328099971193361147160493544335456580227648349461318031327984792185171580102807503 -0169567182553246331404084202997183149669206523460201655479386533242862563036582654644409484005992680312894606697548079677284436 -2408634459821807360135371085559754639951676453609356475891807606645289547821918227592956096670383760258316085039325249167270345 -0639753426126492725051857242781368140995333223012553263382165242568922620303770347983405643905206504900791961601071942284936427 -0871588895354801816598052309754202243843057099627863238724184518284044817748295192358320828895054008513930794283973928514112196 -9798654324310664456635488952439998180995428408476235283937134417681364575355417817510233366035067348678178856527757300827180944 -0038123007290989063863175985592778519488056333171045377703085872568160778246582018586168915869948568385646644298618780983546355 -7869384600764512734048062223566504717806018441987433044570169614606144975153300488119826197625737171672582011169222743563965980 -6977293818241046999651425289984525444775996710580402650890897413638457082477468109575400763448366802872239506128418904706794072 -5799904603862986594106662322483455329279349540532965537255861860553280872874108710364305979053889159756036410545175996560632213 -1905113425852351684154357685504469533745516493501062212340862826870385326709406031686063551224557399310052952422838419329227931 -7546871961833002037605725905779115533289685288706841277287949763530450546184456445185142124516259820881277398739985868903009290 -5390552777664596373149764240028438950449670876087502765011571015373476441820757391918243018050536384628502031771242890575429423 -5602898175403670523511959645093602460733826479169195731008780332981500631244059144423791577718260284080812356359230721779826632 -0282070388225563293057775488479437333861437827295440192975141284220068554470734762243654683900921775316128776798676828649464561 -7044919729960370651911034098935618095727733916533962937362197410606374931103363062973825850629444853848346339446960413652519614 -7923852433886365419446901963455158024361204561948757781294971510735411634498000899993250692952771388573089449720039510778006556 -6448339128502198442312788117252393804187619178631365039260121533649897690132658417974431016238776431953884429473283621621760928 -4796673454480093007496675559950785558242785307210144883418877108437084521237518409035829359990440607609053004656855467826840969 -2539967222010309449705096804270772495367746726394308555148839954759386392982542739753442093370829925036983594533194718249508227 -5349079635800249074525176724894658939051245265345143033311987922668779171808073614407324686649849960572890952798590407394876104 -8881074380416317599148271017700792806364855765066986663556628051754736630602571628284291106232498605571402693983906331712030753 -9874937506608818776772074340810498838067037288381814044995123846119534641571274807743575095446827709625774292925956993651483030 -1351712538266765203986454072646816009684736475838189392745470191271779327758375268068178391759551780428792430541942252314370156 -8407859484892460620078868667802179357348492180685724246644370230014476781983275135684947107880402240406891839259873980451085903 -4906163533191850256268583682454988749837419823578079473319346296433799092047235338380155019552271132115175763259341940167374009 -0058465924482070913500147064727037054124622100326796664614046484792704959337155884709332716325316023891570424872580884952438266 -2436800291590505288180953642913700972896437288014085488105811040747638787748114199225450616098949678241069300416404785919318926 -1934599170792002326313718708164205938810092585230289681773510059324899654472028348104884160918328871998687720554532160558923223 -2833310668093246151983045850009608661418327316614685260920047242208439507520352050936476946684777115573214252016051709311522733 -5806306154432125296361988853844471579270461201267503074861984238054921903008010783021332277527690547871326604862832931571535476 -6953887201338700880983597387777946758689636635028887005208234910693065403037992011989492126099118102129494636864406808581750418 -8449828487903174265578895543349223421139970247142747092518020699819810023484608128979286359504168816826179123882092074937458466 -8429190917143583035383484835202769619898592015997875633392860989349020465819040052129531463007708159553740489427112502433350259 -0015541288911157030703391088218525575081861192862772160417721389983310098584001488671913042391958271599517521875772879817883670 -8715721723667422477987285388090627370795114420296274720333968016528373376502351404697409435351445641183117232448408900877983999 -8085119600169893659072473239891529571989304915800525658372770589231187553832358134049724486998092398100951195327740893124363904 -6825971614998820258858203237294363381385260403003703481866209020749805588161211696398124406863222077112906818160524737133236376 -4791287439396340287050946270382309108183116290058907007033269789030152170762597022242414148156450382489069745048352057183456698 -7699407910303700018163871163387977417734630895740976320842794125644044206230844211892365927545147294624099819954065586859396532 -3131672188768311610064467750350104984282723151135474654890501043106825950749943883966630006426594607652504022624213316206819824 -2381097970942205624530028578508606408894416081148567879895026246182144217645044116693226312513033539646866882479709987958089969 -8906558060289356651604127285059333055318644242901255378341192868378040612451560944688746385088366187655524363293058496259834503 -6045783943499511329380195312503328218913377235931966010737751685331040259612353101709972563764048165640905281453608759750462107 -2697778235378791219808122722229257971170129904297461026446932149333464400232434190909889478146390656698937276924878791295257123 -2803907707992452534631676946969649948134841465957319668276815925648168701088565169944440306293458637327427324437179025248962792 -4731713616143649458304003973798123909714421863335575637937266819992047643342146589405067966192841049385855050988705354679370809 -5372002945727744156997261317197525282324231196500161732336217784763019914950265863384886596392669097800628799874734609235337063 -0503789478310331174915570738552836640716185310681333898360502850585012405514745303614418697185463616197057663173866523087604838 -0675037169916204490298120588020089851962810662807481941976840354009840553886735946987601156791667665686995459100468477453975696 -6834794049663185275577105102245452812771387897018848470724588835525127031721746222497385677737902506111966509521044773531500357 -5329174285407427305661763207997349560549428910454568831186538339414510256938492615597532037011523362904523476314189986503671291 -2718934812220309630578226399896956440076865897466517017205703733213982937662658920267819470286608114781834913036578565065677437 -0292082835411024840424424503720769844545589088751119682651139453690649901159394940442554457210310520610468908232856172200322893 -2168944494860484191151489757452268440986053558799687398611861491809004454116677153114993411395893222172780575772632409234094898 -0022046237220608888434835342573839194475118566063006131560443847533169495969846042538404623478526559762435571079702487933385421 -2451919192203771937523596048769324041291130793137730493766482430142235410357050813575163787479425148259744336129889104511577631 -4142550759732390528563707063152034344178846568888223418447224601319163578533878251799463243956174732623278426810354689051255154 -3970640202120158350260730117870456696154229567633606514596475612129033212370234978048801831781364493706668262862093481931515716 -6561924140099494620364526936808552193114041143469574838371934269300545161105733392695711211423415123016324534422409169998476243 -2456534483029530345127697481939835893243537886692901492470290039455511175154304300500928667293566968811328935461117311498383274 -7770989718625939764088550940976599710169478296655836026852130278698487150688281647540447530622442916288092929799874814879443957 -9848763764198437026743206591847265528425238321090574928951078930719540533808196681934811602035009442951951047723353414154858302 -5787946077159159168774450433330444862738778849768023490388074911496672265084989382578533753038885946437129868548176233233930301 -8580017107399342108923739552269357825947129658651850931301283981215557531809779053507136238066452267893979878894161383251981836 -9913766525707178278575810543038685579648619267169136094328824697618419625108889858389235878109542078438921757522374605654744287 -4829229647563208502985033637245591132219509835319418276937992741995767258780935271942567981080789563695276467555561800638017448 -1643138233933525491385701115282638884356620775214978523597941747167932566311974729439511528404991306505854174907409034566035713 -6143827997778747391148759316186369744390378766441792907186485522361511087226349625577289271875444080879557771349971812896783921 -8151037464162282243454432112145953184331053916340169687740205103102595400733446898088691425582734935373310066807019088114280263 -8729904943075565576008704186063345542320788733990798433124383054387825974302546390620173375209936756748717665874520884924479185 -9888909645307351789982700065033105216388788398262734159940626037880383673919937047828435841493103609687935677331602519191613414 -8850737384099163846794178899558085730334694261907207404022320796803770107876986360807427894048245601008966306481139963465178636 -9603978263464022093387313902323305847024620528667574592309994157800256182557220046954796119376040712963053063896476690374286989 -3405947975994172973640043088019552492100802303545308377567580689104604977659913539104938989315677959717470803854511462658064563 -3191162645413432233404183050706031855638390349798393321645475424393193065096426473922012746067572812705091078572123464528104522 -5754070330806062132016998542325199869791387417374085617357171312577717425296247007640670351991232446756043415004205160478899347 -1725194535387949369475223998736399458938442651506418282232173272224426998356393475616690357433350683532939697909185050724112276 -1531609961298179460965979011464443408544699180131732903518616680630569852510445519164321486062756903290742218453214665562625462 -4277461038526097907874522581743597670466704734455633690080575913829222964025366450929288253518473640288917518499198469245997685 -7420143434734074307744766434941598412413533864920547945213441905542326713457623437002740516606230037868321117285609425877483514 -5509703411252690324400121230820675240247540075031296148576782911392574907974824839505516956261324207298130826703943230789524466 -6235427271350178310739006810179034776823843871399578101065895786301705049659021548642844679899589499916930305008178597329009228 -8708376738514576473422684695199014327164139367786002985515660277291737951903297112627302613852418677997201436504553518932602363 -9576506417537859055584148204389221076679317163739081159093922729562344633399336320523856409926599959155324451664857304036979342 -7821519375657055506931717396389844553686714012907465431386872822303418480617283652851337727643122589592938283893016029851450741 -4046931470136635022512650864971382510668763279223722442081085741561189482186827034926915081819290103926309450155161557982601266 -4715454308438516658794722092196206636934007267582801367477453071665674490724227142539801920570519231994847446963269786268119916 -9168041401535492095223153393392138627537574429611826175866774713151956729343684934892542983754029148830727112711391973335239513 -6515970901191127073416539618442535739664555006336299291335206114647465786032988393861387837528101930282563813184667131516357399 -6965025115159934457674823672748261872585621777883115554117585206762204650484234255271173958058407125541367807442514328611570278 -4831064230665616198380860322957982656881003885916660535633639193463684058409926839010861838915803748651536627056017889319571392 -2850377483892889368048618651662404196455568541580082178826055899571765132140934322132515590245447090853398672580050380575567268 -3835035801788676880902622563977805200108581423258706942731469718506605351522050771195525463348620059942550507473397926975656075 -8170641249931936194409801838731827726032358290235160889838261562910412201128942409820711534658779929527668900047257962358847821 -3914141889006189906618830872826326907793134446571712010041037077410013305523598603376182060668984447359850821728080727595426748 -0524288363005399115153078597028593878897064055724890623451683531614421839812503951731500983120346087995189240459208148107096125 -4155453406508028056687037448768955586471685200246991147018630064209861444093780513311415335160348800209398873165630411940689888 -6507947702834259046810555837139361937816955993601288388902706347465220128545880169696095175041923698015462911423095653174399855 -3762547022058799188111929405215622052455625552628888943381861262479627747983891009023031983537685246888772136743333720092806316 -1214549690057757944760791464294073960482795674578197576015074847454616235022841464586043262062684847644609779311315421146732973 -8541338437296411555067873828147460205050118794445175546707442427376724688646895066999337376018755680130878200128406968859847082 -9053903102817499105181101245913670467308052365562812081988351351621302283720868904030918069105268441314194378171102376175885834 -7390879175657202991792721024454048282348887367327525251428650799473344325817058656761335824140200255463527106801978883972849023 -9114858631082305511415208423205161099795092979957887353079774012813446208145355233313207283275642795951235302177270570702859527 -9437270466650300884205636449007422609778006468400075137707364599220020468818147412256802671321760977139033664343323597425197602 -0302618076580610803854795974063518981909366239035024103586093127902225268380234904318024257226627138837362185766291678782029207 -3947830739969480621126671162942463986987058328256455824368521897685045168203062702288692030759860685197940546125045250168790201 -0514803654436570370324022741742361761085767189089724981006110323674867393784988265456553747645514420643289677440464150052019123 -5223236088122199447858422156052424410894574207990368063564291905403412016110145065374098953504598451976662453874666981008325424 -8373293703798267046749026333095880042002196112554036817370313956674653924174972808775910245525212215059736970917924397257890308 -2688275927997288192485396746573266295779844438202521819272050705543165472702597009969819708658965256689368204413111379773538064 -5084094239742086467203807611090720704742678798346329233433650521401666169943202745736920597870661200400002701183019652790391816 -9022357095836768187469229301323281507939417769215045474272231522798590708421786910823915726035891376298601448255283206715063088 -7293988737791411397897393109492140546674166871313197493347838700746175919251207836436115320719048184023218823514733017767389387 -7188783211699643174822974868235729901402276203893157987109644622416046761772620967723823455916506713613144614196470266830456333 -3793370001173936142455344055973062003252783611956485218268240522116090384604646513391487197827194186399975132117817107687082668 -3534299426891086746037016872943029880008565862091417500370811850667508670706496943938696062708498042156433801209832903518387378 -3612904603444715041436728628573199366360323396870491816934924984624193337784171063290043144432026274325167439913901462851257791 -8301153338470277907154944290430893973748596163892611069628643761048471308522954471189690031882490684526895423581669049412645780 -9532276724709021001315582137581907800630208033706211952374871095930264465397182584969831143514075753862615083949416688307055905 -8388236378283440896890187881320950399116639874885181013806820276432717798539692296166413239097562927693580121835296266376329989 -7227163697631743317865706478603326970676879690725149096075601615664615649563621319796915072035936935656249230727588009066864898 -4030193127531435008439718127581289588778728561167418433131262502679346011703797827534339742404719888498611315489306325294200918 -0822596041854995877122241367357937629640300673554434225279391124715516842541288461765835730255187409409295964047110843143360218 -8020810762143625695211304403500380226297593451193440072241550883222759127723312388393491431821749019440262383840735943032001195 -8318237479489554100626369597427649553987985282444811016365279010859228891440704149689826185729924642137537603090218575037482996 -5366847590778547088514990246112762636619967032116058526965593868078207507263589910269699995373744003756645473632293041062685541 -9610845056170949836472700450287286628803643135098265884778110832410350875689137416100768678349522724998316556986352522714663266 -1503726130267377258411268772164465860231491482249362263232011498460531343555282835085236658598989040170763967052694908347332552 -9494811816089738912922010509947751572303760145536902984045309394480942411502821839970060527331347541450194445987076121267053844 -0578064800062529101700072602908332148334858119123936457716348054959136175842817084891684097218981249238233949488256020176601607 -8655837084859592004656876506460130727405913211331057771278893395802267144808219629460783237220481671207469404413079770236276202 -2474357024202046544233057042050406320202093782109005795759352430295741395906001878748884723478079164300747108788119563090468194 -9729275772864119080887672349769974091030926766697899488139685369926038289554489717497100438993101868557613700320201349470541544 -9690121476368923069792412981332423045488814436625785624017824621004713254286195984412682695459029135822031307061078889173619865 -7378777371791906660635984844468930766958298884404755753328140351948727806677530013266236008432182713748064589578467419387451399 -5958115863312505525587296099572988051567717080297066945899741469832877228284562546192870097158128338501540449059947967484049806 -1525360297576645372782766370344139731393001666478941675207716176663153356185352097531952067180451056483850877049391450796637643 -0957180541118429393622724140553758348088782996643755097821436674434023381251140872906157549968145359578492278555879752671991774 -6216547228847936682579390485586625009476953902113956539812453553726263850745606267922068236416232274799633682965858910518609181 -9364762411101864870815658017284551581396524871993598349274914322101521556813705161096159781789698091708777511072561306773711005 -9372502462001712636254133123395734859574314940832644465721405982847453658518168263698099694805090947049141539874161892364044592 -2081215406680382103751369362572309567943724594570823605875011736925225634106628852644577321897191396835476563249653975626106030 -4349971249994089684132392481061788229278189139063384564147513903173876133019427848009965641301113400947275878225261721625731279 -0221661121010559617008273964451895647239826707650461656354872916410348912631911913485548662828141859786059545072528125011374221 -4423053386826713852263693496635804173362348029571154806846975163821408623542798104298751000786068795017683260714515841078366993 -8161127671355970070573405532186939626037976009760161070135615665381704277318637283166773287886342633146869956929128780714287331 -4724406673554759228867043031026142833731777584308969100843251135369865682593955020981079390823701606661557011686336153922127671 -6320174341401698137531688064847461308245007114188039688579142931690284251799997677320348583442367762054912291140917964811725137 -8202757825011219494192886746445679726841310275929718330630078072572216660349917135633404881654966136524906313940172149175596901 -4973259052196790674213907468121479716985489021755170094314094085515986880378978689367545392713051595516162518064260512413271805 -1589006020451052603264805726624921702203140540281094471735610296632014298925191276086205769087410850492910589262019474771202876 -5301512438781961299615681939122770744864098845659058825055415852695585895078281739508660406939859772275150311279745599614771126 -4288153404604175490400855789649207035885124038840820254085618553577028061229192741635233861987354455133991517534727391845052478 -6258955556704090814031626148938140929500657324155298474719121746871071846048890688770977276676240866370191127535467056926311394 -9986426460698287989606477786579619338308357811140009068302509875335795457387693847614672598016435455104290716649294340111672025 -5987575195605597807571132149058303080863960035941811196802177359118666488648716460574884370433012992324776906424681910784438914 -3212828929093079665577584834614675181147027766122500255332258719353578136517199306847607401381636227698622152320466280962873067 -4298697726297500762842637031315949284066464528353792900058970168170276550530718742305480231641988165044232612666352048235992340 -6528595274852601267138855685497658048124785482783676783853867479073934060681129115971059226209525138395957477851256838662435594 -6333253678417649760854615241319608105505866305579272971991684020242948061790638726814427247631657265086447512599362760504729659 -0050552281101516551597310571530814588813676939570968218933911952205870242379775297989531959401920856446210979962385790387518282 -8767289958783485919140054170755933223361121752964753574235200401049015889601531517259131960751322512615901642287582440268512260 -3451721805339224609531183820195682695971871204396323817335046115539455320833063731322682287797699412707522241064736997253801427 -9838095438421652946093122030638044112929662006537527680294782737078006325003341225082530500978086841673076833294743067222781678 -9343880589742192946487883613246357871516859764774916328816004546765194900049207055237803648799342279688804719689248327413730472 -0721971662815930264205326239766135366858450956630362245585637639859898001993676716328053273905567456704608882800064784850223773 -0571787432542029050900323916790197508546510517976343882254348928206749045986326975042209032481347983325984442399998495068210198 -6252008138898607709468342620809002496223471138515742069863151888069692871096460617937300581107228988473399264367167623204729419 -2797770513682558101443641688720044042871553905410373246365721075390692021825457052959920292945148726156660506042073326859993576 -9943199450035463537495910614331149365062244685626306093678223057245690588586113869249388996930139917906887631260478153521760102 -1950460426985566320913113822097771379876492753786278737646554639417059453209917138732302032256017931681335738155323404263671794 -2838332702415027792861677040542052438018840283865010592299818970494138350530560217854544968425238656792859418734080761867272852 -6010463746369529626569768506440616846423788144981864845682008740038225629815725166282753185272670640607060429451038753678650440 -3603428316928538153550803942955541314085414603075220414550257874931378714081625009020301955524753074400211685480928675879412454 -9843069053870715332522840750526561812419932672015609424516373833579891793837439080150576601064726524016745608185730860593580037 -4790338120349419657809887950279987231778879709683733319593125286240898651454362025515251496405484678061036071464115462928635106 -4812436174990135339020055889098969606774850114068102256726271424987296420443648067709292253692100724695627779636510134753572039 -8737165463831035630144985978697481580718872897801411679391604620458063323095158841009595789901639579062186093555920948550517282 -6684194497843892923374409974962663409557384721186689597945008117535697913915795350771799536776499659499378233933827449930665824 -7081582116471192658574426394048422901610749624872891986363877792779389085331435286663561611309448994925468965045010492951543901 -3680646340800173339218788077063204059241257097481947777145409084202800888856762009180382127277534304230302616826742040805136435 -8971885064485253090204122142512764196490013452340872579790701372873179615012971724582237981895972101835369658929642000295179467 -3378697466160221993719637822345980287088027594206423215053076460092623235649859970956549802453476198188280999027211336510921505 -2652711751748836279015697510746966396333400935969997511167766407036252126460465825405459671454621493581082715193532241502957665 -0853017906034458377960386056517204258262136080721053029202866891152909200067791240221407899628896204792320935757942824137109755 -1860549007099165197284140872678756594535459353075535851412365063078974696027557562375802944288504306767016261985686187927040312 -6976439902255838121317145194266076485068757990450059106045155783172858632535344129113251970702093415466811410640476211193415639 -0223864295074452283847305560600110714424512989818888930888094361164360320952698546375108408821282297940103191521862113682311023 -1062349856533324628662077342594233105268417141054370232872638557841382516201012169119621084906023902818960772903834214834404456 -6774964345965594961633616650657071025352025214474328041017041037485163730502274877992356272868337521422636796698369213270452116 -3863759791559426852045781221052728648632252466126078672480213084512794723010528131976170544126507023866299598547784848361822975 -6029193859923289086357438220756059069241393076481467455226491973473927966812070493726378405565631775752820893408930243604143389 -8322645429369121872596731546622494472770504292226778137537611049076304139170096181584862462563435300455143882748092410271989379 -5326365807733260201580801629433084263428632745627040818781791453399164548163815232430786017320082301681273560908524949863305250 -0127708812120756378948747377847983639315742195284498126386446424753766099623540522826797908737477298768890173160498925727449025 -2938525448223494002554985481215274772014195861665818544594199880542548809977177276693721985173829796357491362226406805154130568 -8969218337326188250536163628581836759650127208671515917790854163363077352794417610106050375787449708519147175922505361662892084 -9818570904194161360123724397774706465600642465735373239577049512865171271762814912171304543676985961805640424586977875904966200 -5504575938770959529220023577243022588499122259144158193746005510614090936240126010183628014128216077152330048541538274583951558 -1040854914239994126791549056393295346381943572230033663200164558894293446713116407420635913349055999596494259230893231105260703 -2206196014061006612340848198814409910794456229071521204012047591463330479752534343609457402515951279901699854399989958952429475 -7726196843265136180636204555752895156585913253117092477574090168474904085406088453119889514918675712220848883891583790692329162 -2932979781809321279966736276684170473868093894960203921581294390763273096543783962941941740885305313552176422059326344349963187 -7716303606885535604492911546074803956458411462697046763121884171908019143640932002882802971285171891988638807617682091180833424 -6415461043036191035529625558425951185907448251833755623616264167570352631169542482639741527208649286390063877760359771911261699 -2470130258381358062929085215957585938262216089039199788226601264737025509814505817029779107756588940453410080897136093992799084 -8707632659399021754985431789449236853018112947892026429638184953314257900880019675773825490255337783864219014358786450842397851 -5533932851049276649253727477601106534672571299541307151668502286973847937896722437084410916259029864044870523541806218077954614 -7765554877085157744714903505492619912731173476480412564678818534684847115861709661320561820994876787782948571629974821128726525 -4958648468242228861341995358858962307381366972784922066788447146487993304134477988625345942386711833780639553271598395688961584 -1195610154724201767373227499183087873970044260009821201260837039944092568903479517438262374212926002997007192595185854104973828 -1619364472726153539242937799692428699593667255284692675884347709702639988899768923848970457805127213116307471608615036594270036 -9983245059851562634241554611084024908123182475839572134087792577459483664336562817481606414919540980247553055009390347181343478 -6678203813070191242843917525205623295811411258351922528980269188922471356248950351834938277372740881478275242174992792567496074 -4143356634732380642139347869145766266914672583108623737574556686979737703412637109328384991661662700191639112734811399558605096 -1208518184191671627470570937029456222980556566946874634805220009038965108642318793927711482497435062563764442708954406150308502 -9023312095876743701169506435873830799968604505754154998579861924311377960500475654542205202570979796896262463835446621504771900 -1307938351217139321342488304983730107947723886674861520928741265078308049241789485663045316829261201640722069914290181463616514 -3662774552959414495906707805907185396346911240417542898771207054497319717662592108767592192807181086654802759806348618578837674 -1314737004679848142363776160351558775692327407524329957179113590512266999745499877585915362625510835561292623778541138597816039 -0237557760056059081432345998516737302912533244471786164779569231630397999149258259824248258872090314272651220971111732309368883 -6627477978424025488072609778273019056422203214910145966781125727030515618065001832071393756745595983343475497495207623260839724 -3342966216908293442342817978848639488604191273604917723840719378411000753792919755939336669416561658839344042868764649850515740 -4843734023345647692176295441180249482639581287413972097837107583698158034620661397371501344888180961705583629809207419852455696 -4443380077789857586353070023335893700728665808003439355680624696628418230215872552816714310195766329481088338871468994321119252 -9699439754749964974015300163681954912050318298048480045612220669380962262620582805353459791375378214164628533298845978013550599 -5105714350835688155081910384711576767489399113130569825483778697383765314872304014753426304269107388256780976698871683305123430 -7876749639965180153007689268468639912304158853044482532644498399416286758021429281245070574658924487014301816203665832428101533 -0785808281226435244861112112960701400035860271883263300268756398080488577467688265527817734331234380039587960227981962626600939 -3364281430281513574894870100381156896475296131097244720576919647275082387947394192830802845871083057512101147458345259973497437 -2352548478260815071941762637203003924467368412816659772061510861905396984310747338352315940227937768901334141297190271981978620 -7421497155149250772882271160825127041610751435166048440557936723442915599683580765855387190581730147042311189334715395286473607 -9469405090355283185848987802133089556363626275612421572132540664555746805117424373802421917096772214790891162942671883468819382 -1589417274385691408452755936967864047060787328586473526198572660582234669906554955441129992972950187613542002387015080229290084 -6570356377915672505761938151404215475617807815543585573009407518371861507851745477702147309937407690084987324419699405440825645 -0612011361559116532371585728822626979903698606786712794256913394582020905043090461211508518273342883931278463866340432838401156 -6760882395086214518227285005993629709889190889508417455761844997600135276044719721514847763212602718036483323892756763864051034 -9188515996754462022639889466629680669832215175040501200558563344456278764716592388326318156786971890684957626542747491478209927 -8987779229113917038185012511339563267826387201889188999106457112243660191988731669456871109523244231764354533555547239773405699 -6489667993193399907320056380302219372587627376810666191791189051092938301013845696380002825207303265588504074647639636023424359 -5972299897263342080767319345606033144822159869746010125714876643532020183420706758750193523599953077555495726481141414611132824 -5084488926501974380578938135730935789462111699625550813110845128956753975680460172778115855586076226024263960948204752675321380 -2481196609759725214010722486828189087368975741750919937794099496934509151874334791821893377695611203497436421390537165843568949 -5731231776297026471145248406339411301301972034255825750883890535679456779763247607668575953175369910078981695492172415999716775 -4579188403021146726016160128342968838235818738719371073259844121400672340573224465598262036627730489472180977859344538916635018 -4072803135751982897056486221080699066662076832459383392956264311706786163956015331215770418998634239350534320417157397046765970 -1201062381226118587752910736476250954770728984407318744902312031409265281863798225473350200683876473994417794886956931818743554 -4970302735301544243501924330552682090042743013078749961722848840311456198559231934700094783625178641374367971636230883796585194 -7528520099930871600504738859526542685454459947737830229008160696355714649737859829804718726706633142812661022345510571151124118 -8421496990755255433515708880870288195255467739826209142506221198099596830401844825962275951060431553735295340571732198670724017 -8936767354220444343191661460546264683941090169583805460925893859976635128662736335459378982086771782291262296836018682528094985 -2091822408378038044344571653062122443897076701230437493508375904957950547708046448886825832044918141237713293307448531246301325 -3809577056439308352524023850120731400555497421961772257434416551729487887916281181723448155709611102047050048200739035199609339 -3691135325949817192195090067443211343266627775946016712851865749742799362777412328641698096396095788341581675313236780103509391 -7728571205866997785438131913054881617576104163904406501238204339704104937888486853321561284077020503299289883355914615218277880 -1111888880906892863133264981628224969781528602979570581183128605546822078255116005933260161155631478832277334536041066268750461 -0079412603436706091984459336642210703864450821510237108480924013766858888811236465849216492858539373276328300134023520401083981 -9032711135936968864615808603415924938529404508326233015998723558019026312135753805702013665081865026922455487474085399902382380 -1925270181168851392094205156290625337733809503843149282248914199479920984244708969137863994130437975788618973591803506088013062 -5670224338144189138135191184201868809626683864671529567267492650290228767102161777058656146469480714765930525720049680179040530 -7230690280352425636146176530879993888167423730080287061127174186402752375468464868170738182852209838339454679149339529988407952 -5792512066685362806154726245973930382853685512688261188341000372263049656702777229779863118583825044769296407053427341340382043 -9064288699746230367766305172967912478546347888349770026780079432939827599619309710342120385387650986045115258506762134679333064 -0440596074705090759141142692292577561658123037036520266673482910698027486128518652316613594364723726387332531338654819095216165 -6586405699035556181676379611570196812319147084489164717015394853295535428378692362698265567241807453037131148384149957093387466 -9613627657031243653069021006489437859522461371334813124213550061172753326963975967858093098270917873153645156857962187738174651 -1136920419639517807349446907609250529925657860858085930986434051082566457439789550530915328824048952555143480521491002977432620 -9723285190605612751574356382595987410097040493290287438645066768564593720132821343589116869402530302205558307160327389977244390 -9364492329019171456987187525681281472110463501074399197748223709921114091308897093844593961700969890959904837552334397994454560 -3052838056301761186571362672662664380662089189821373489289767638693120179754848616628936578638481820222476538767896516701765186 -5650968841999476243265351662185220984505585094177664675790716289996388896832182868460012463094065416068468660526498381293391126 -9133890615055659775962704691788335028541094043193982847019337250184246131745395473435608325229593796115617156815138186553076713 -2129458246410892733861841029801352092648607760367150219892460311630359921628868730343711772190656001417014669173768985351029224 -1665772830534776231474157241609092342166046079774561656411248463883336203142778691223352454530469529359343352214726777533890124 -8331713345182730719576279806483123633260411891324365421657390996528436543606816818186451009421810586108827795803801756029033502 -1364037207944391495829014284717167206349222584053304291053816472070825719135329033244226893785498596526306122826589748158594087 -5166290726387661882217520391175991236803942524737711932725364262567914513184343152964650814367428507369519194246642124353850820 -0827084375654733169383428093676562471650179031999648254047083978351359301318312364388282400723012984805620892215650029052432539 -3941456090006715583530315193770635520541951076921761324088412023106545476103418543330517872032796586561611105128147089091776975 -1738857734263197422168561159954861725900337109733462635773133902960240600973009046170223803445433108730659547191448827977753217 -2930699447354813297267803165810088809944869393780407968089194813574507757841359950100327174854511476594508709317805723583889020 -7143123510044372032973820765560757174132206252079849711539375893206623268969901549499791778646394614259993009419795504303081399 -1805751816651443729216778302694093259724338799262345264750249439983832664270852123252647682716640466581767974713902148881103321 -8726470726559295990593930464431140413396151555993515614244807290113117258035592083195115356107951148992883803789239385817695980 -3921614672869622892796645795274584202330027636891305986908354816884938844639467554178364479042973665199423978535726526806853994 -1879696934764137925030122852767473404168885624623810742903886724883175975872670995314600387454933128918537822599476294544895031 -6035100939350635436051361083289099777664034736094529995818610825799950536521416106176327389907566363175789821848187634785837579 -9000534727303607788183270598866205796784604375642000912263136681354291802540390456321071569535579301082240092546052754082125140 -1036718094258942656960699558474884940333329012199962569808690163604756147670835128428656230386743308384472157735698077816035891 -6071364091704432824311172611510490775020204802190669441798310247002139209451209194509056421614671635249279135552841468497623698 -4388935023201010068076632458613446034376062184128689428896319432854524321580911853120662708261911385263651607882193115809188251 -7169742597495615052582018265793684790742777650121858370707225197495242787747124696863007018741360971574027831332907655096436810 -0422401456149077117264566129183248282220685815602963735110673297177754943137791219212563311879171990788150209340116758159767140 -2965862835354985730344339045722772376955873793360410786309094363480176270871774839639924049136780870709007238189898961666868275 -2861817902533679195525000340605947416733205573982037034681250485524002724047643727596821058644083422061496633576063860945664624 -2693808963859011255454082437160794171986401169181404558686995397058453911479501396355062702756373669284391335723793677898504528 -7653550559325583799147678302921854984957213549656349312970370601725315750255349048113259251600824306253788257181726835044331139 -2669198588461532129599972595504488308041821964826043635029559596161652526633086414778498340817442875389328897830361220046753460 -2464008866849845585427596306460289186014718930150794200485697147420894155928351507966633760981788686260275637265508592186109230 -8485080800308772606343366155948976547130610312843499421865489766584635822710314441085925235277117540126323440360094147819765072 -3284154124684872982729898726330863362356401302174583854830959819131037571458234265917476543549149369136036055331113709805046443 -6448518117737425864310082406263081225358862769781154236900286043306718901307704827192440877547054996291784365092391305036785917 -6937932081779624691771675203207782587255392167526245881985222450132700822827458180664476166098376639952639111122762216172733126 -4351428226863320079499951081487882664115198758192473811033557945313783704183329712942802900894464150489698398293843181571708391 -4008673285830233165375165239225902635382169451174378889470574573298752951780171507430341658864697744996790183195739971709305547 -3512291497844318467447674406573948587271898370849211096489030445902905335005315909627516994616160913716819045790842998532630215 -5522629798725110629827671497041697233370597035945650285606531591280806838835367751631589755667302233305861288279338186531242009 -4038072792258238775154639697267095650759428219766235775721809805667537846787229698544718121429627243715285966487077144477541907 -5934583620628679989854657650575271470278836721346368661646073065566282621355114101575479793022577251192819889432201758294108462 -4480564984351469882094948004921988867959440174254223793056014056869119031094103106976186436427858310194322489736576393894678612 -6908132113303990201784965196474475898344897609537622286517498106001289334026874927830753197509682053509801560482547631691338408 -9319954675495203754314132567507992211027517777636008035159464490278748417535817989110579370702464528694578198640300697978306801 -4761479515872183180982458008106034482409223233605055754850233921649363735633967021409784641062684672780275455212963103609820201 -2564622328254102204752883685136476152747302286902963024211546476863845751873654900973840371931652957066788857238841473470464835 -0397866053032166080589875219701391296400993039583315649582052801128849941725263617220137826074241870851980225112051857130648469 -8173011294494728142605327204039773210726054522101869637370867240485919811250566145341338527471719086407653593120324797075262800 -9276563059829040598662749592867289249306923572562392127787551507493862417784430100714677869547866344355462003505196714057035937 -3281114518664069193538073304543737277406653201799960331850340753228936196208065150992985287938425817855366760648223669372651097 -2101840795886669078503855800666686104431608113029414404488344962534581805317909553125776693807861855300451192405993773968098583 -6961316934095858314386858284332606626453618369372169846037717301254036577518610498824984225850477019844523165578520651885370736 -5674574044356298030636615794164061879134353864364329335297710010416084563498871752753647964277918366926080825456181880254954413 -1539836063070409136278143569348758593204080100329208721008698517483741296128676983168524689365145284941105915339931290444395066 -5870435438526474510831874542069716476806976094126759545431524918894521691790318139213265279009865120135936482961615836310836321 -2764563926650270576320235999861005882574146665848294584476765322933617549606955812826398821817999980232276039438569048353472002 -4681622264311366983045853037646736891614380849223091345272419576321258005567715693518336948951455962926248349277346106557405718 -8956877856487148384136234859130353374642270367915456930125213227196134161996004529594088595345226945903651779962975528996861250 -8929969605933523152819203271238663371252277051363612117118809528465712440154903065164514629518743371367297353604095710696093004 -7157581534746462952501632250334837099070591121491848742704449306300549604064489388204805910975177833999231196480535164260229721 -0485019965651431731437912577838502867419408108382589212055345268265256532718527981331506279373063176342764821347791812231845829 -7209745175723014456091749043194092299024100594164185069424964912279120968460389124726898963864775282217153874785467678332297469 -6065725443439620053836394925815928161931638271242410865193688681337289422879252019985383178533022928491349413174307090957339832 -4700128875271375466912640968373319232662860319940601106545249660353269122104137983304514576260940899048020820371598690778056227 -7730285573414592054013879878236163258148114953801223831916249666510471398921760574945529246282567489263612670937049902168944246 -9130285817898813367964618316152272977147568779205131506356566544347370722993791917334237866531951886887339933938523558239665651 -6324176517408834364349803908520408107012550850560156082064698531696664057881361151779666150135225685603149038329558618588277296 -8952307375129199935262885586527056730554419885668513403462367686079193825971303716999017662160537275706617381132201851911575059 -9097939471326158030329763386527360778246814576714519406324120582675890884898234797792200042538307916074737348191079713801271431 -3543558395840050080153435933135880595590305720081325097084551423268599148459068228435603649060705649929053840511309887473304515 -9764838954490408335606543556024437767253488401288444187782685927977837265995938637882104106333802927203512151240662538609957779 -2886694819124240943375973107339251767858923004989669776842476259662336587537006376705925903350515688363082070599436191295014286 -4373652465925317661858189411340138062597385913063993168012584788091469995881494867908911062927314918797351706279530078724029778 -2064997451678388426343449295809472909654204980492286328038224332702407992526584281413262450071832225709127884717383554674100721 -7539736814358108443787011442956856478411159063433502735600777534624427911961386455371172130290891500709946519469882478498227746 -6726050228227536316385485897543745820479149980410361188284581130022635250330849613983713225572081803265842903422696226592604564 -7194667876267325769087238008916325523655281922437602110657822708321617107090571364990182422106391457560890252879023326941272951 -8084067244599983014933199534424787256031530896533024441147175887371345390886210891424383817784357384520863399170708018540336261 -6756491974545573085147283999623619067108143004190487704098038956692693217789059190015343978239812814528286370354978428552071154 -7449780712548692282752907313327411787266027754878897309843460775599392567392973717717866266635813723308899529146352109375925165 -4589899290541494280337702591008141258629373350544520604291218705671399173981123075630121451176103241759370092474254377359262199 -6674505740657078583031897307527013973936077370107324719073133704686647880878285508608449940595668407790459295575945823755660650 -4398342537751131171214988271811959189579782716426212830903406974442463464257365397952526980356187741927953055943122410685033921 -0094907389935032343867848721405008172219352354700721989014087040463745373039712419507660947640188922848825854691917677041514246 -1508958586684510982818262867790308592204381251380001158886369026776930843982561684403451614590888186936500388011892045824866501 -5793657116945434882250299286723935630635472763043771513002492162136250578168782159984593375232995341440779322489270838200480406 -1528263927376996749090311110890532617677357745138138771708962614857985706783193215918275341078100860497124422089882672715412665 -8047862045380193284671628316345513578527766132655289631199372572297400350940186548315099505461109159626804827405877434015762079 -4497649985437114106619275583585240709212568170308750996103273375973255643809512987167799126855604592582070720993954457629607433 -4115202807426887388976298359856110123402007311986746450130132490988863002251413157990023529650615874660044346489668889392287152 -6927862701563682169262409452072639909156413247108366389659864970583248090206725794860315733927719571533833830245401473668394282 -6642155549542044431836970672852504846515539364245490047433571110732970388069323446548403285359639096781185191635964711812010789 -3758505500262572544806847683378518452890545811878275350915244958015902281380798955282380990829046266914505428380626717794710699 -8543173740869008063671194651581188030729498726094049008714991031352383511909957936902571701241692397622133551499445586152966454 -8558201709766887626106558682087493174247508346751479027758498057382070135663052096489680200478789301589881335174285636803583368 -4021046412548985259286576563116974009718144433360698911802741759233868394233863822972297994024437477811572624976113883122932672 -5381918891212001167216621281602456221735226414991801854696667000136111863626404844152191631832767778925457352443210000412625595 -5545489652781686362831418324972755141214447870296324256972282335912548489681306938005662008761939913552064594595349128397481698 -1089524707879456280414931183450523776892076608328015438392554074880142678157014194242067164456688702421957600153913700978618426 -8305117650117364060258714900356625435051024551440455926273115470939757929013176898347131589373525848240533670222323888613399302 -8471548092796793462446437655496090111004563242834114582368336961549825665258690557364306703617109594457055331363141186121145408 -2838670852038846380823335210551520468349670239701607224866707358833084563155287946007354912983177147283657585469121005219622389 -5789402261399916318681167359698620197070246205566424633235135391148334480479925501535906551354569207810065959398048065712057919 -7261986944279592176600370192037825062903228830667505762121478097517284917101606104242575975523312739096999493662697366954853560 -9155879998783130488358931786153797296783212124287955652349632245457365996542148509944356865191456587886152913113892875578626974 -9514039241881963923397516312505696923391431643577404694192615351139994947842245479233801981061807552927418310904314043203688694 -4614887134561403862531573523675942563015366589167507205886559178959551755768826801165790017789960028672209846259757000436195062 -6712756378314975481834508159845487505561014170818191973740730433116802799842074666829329785272494733308089058087919052323067808 -4343294134478763284253795500389053885558601278822120237277266312668433120502431917455874080753529426382802888951317455320771924 -2376278290758786366787499337556544479743289945243171688237218372051181305516529407353834157305915645651032848895215696121925178 -3277461207520288197080048258823569914990769314412444872094153856107817656040287107340131396038173497845042121242427193089822818 -0292406985223320173089591545488895576256166382750650552107291481212988120961054843360076945546651513119822979777064017606102333 -4155585975612603215642148373485509667928447809166188682093526614287990594479841858693261264552895318696996233565563963262273017 -3435051958110889869116245172555488932493678104217964596210912258968214519860568648927109250277169274770553939366194092044056400 -5580589234840522431968399852060022338678890148720329696753155804394492049184529967776995091977565256891476404577309506725891693 -7335500310521157522656023934693183042792687707804385279531540473816692277059506917018062802407212114266734977379325447178574076 -1771613660964024539818471437377426571013833744798577093945387086328616540439686380471290881092187502982926867793090143460960995 -2854310614938011180157233734163443946405910506035197343508210254223120818772340019254546366421372519708012585990732220553479817 -1257049653581939929259306981138171825335308854774522129783756061113569283775667916315356572397505175426434698580681752134340583 -0335808023777690523056395860773496290527877864032944037336174082899748170635967157534100283308552217210895819668943595660390141 -0793041940236886441234025927232106929006722186357450970274155143635586525537995503752589941375247670685666954666533793877981889 -5778831921482018016340449172209749049865029154730502990831586948434948616688177219302113345681124510479338999307531273610240254 -0006855309162866716967524960032543880915882390415328777432560766307982993890466192334347172872288555702927609941028091228916549 -7852480060739012387300892561223523799609034777867042713542472004721462831725545348869852796577495340595446292276187383478785958 -7959977096587753530877434044450370650017598273016702141156049535064683872702373865885204993323178473693440316927580843350832264 -5711255434828429627433858416873855046302807982520306738509536092504233877047237492422270856933123651986965389822895956478482440 -6861826464075028721520622101929991628946998804166738863536077306024363695385475918930843524639833318710346078946645157384213109 -3481268732060383732986016495680958177849607099558634081654518008026716403239770966732475944721762791451888118885285069414233963 -8027947110287197529845522807009685886470194904262452476975443162530080660974564750582146126181908103247560999247950332233807322 -7124796294345362297022824568300955114164662928041497399401450052218863148267186902693402640989732333727359655944286809966607247 -6673207022195790654496166749745020173181219341922393697843282922354805033819231485054350962234180921218558256719281039871046137 -9465616068877625982160091084356867655695114307535279252535857794074660077470905649500203254845487633889884403918357791957962609 -5439735864176545493786682348080515776951063552894497267405045766639566000474520462761676673185451169867195127044329565448901474 -4077128683528317505947720920671307017612997849640361880751590889728513950754717072470243203246494346250198972938371059265537757 -1744350487793132663117639969909905883135140378094636348689423577493817809958662291757247314354678873465246383300244542531431911 -4940086036767442787655065360411221974038277063722727918083568388107313711402640446340277014461054034344740215045925518041320283 -6681118829208967331321877862087707476476072276521025702668676229506021840555589912885589031283416146794110309804988142636941186 -2405582757418961820523544833021078187732693088350227346014916968640935524755515218365262141583526578487828351593275991676198367 -2826944841325179084380122395615301242526065149184196022148551459509194360014728846066978997793718470140240650758184827065285092 -2993193263125920746329597500608467852384071869621346018318097029329594882972558366328973665134862355812606060309541457130668022 -4276324020092753413044519728088179483413580580809338027992824022071273342649903541028827269643668077697566268171224024282173079 -3298668219738409681902878367215423318085688425654045440812819269643490157963034537370434474347979142141704582114328144364074548 -3331207723416487218945222041751113899922244456772815194220564328760009807415143846017951460454941724943113249362066483407691380 -6952116171208702291147492954583173797003314720166450613568401114973391179929136073418264108322111138297086137222772204563421106 -7600975435069311874768177860666996344740802287521757586619300995824931951698677022696322801985871429773970218124919477206966901 -3780912628061324155929062282119787356103921261553217430966183645130255649596951891774470507549609157651291460007364039518971745 -3378164561008341242097804088752883493567850412617992500593780122329644848355808639540910546811625908951376798420135130564695711 -1010690664052506424047390590878204998037797666671722315517689809912733797153349697357764209138638827429140983606619452818262145 -9300376547277559089699722018353829113301128665766029981150643108015654465357713345760938255089553063389045170395343438086345129 -5388574617722177598048137212627225252667251794017646238607267836072085293351506292982031628145496634572585511875570432312724337 -2949102931084425964911707872142235444671368657598878661624977383342922503912907622387561510392479663939836372865380891249214191 -4125450850629924708967370485579795410196136664949644795471576226816969360966521409006096786481214505471016659590219454123795063 -1052876846080196429866636468392224678653280363636952881423630013978399548705549755495939234226751546533383899311389616571394812 -4742555980388054447437326569075723750771475897619661025765632486508214470920970384046022812610698865095434736181621465694089157 -8053089116717921661140443537567547341019450706571788438437303262785839761518407332728972316994708287799676864196511854612689905 -9729609228443111962917503361177873795233721041675657438816948255161968110343038443890530223545306466481706693430767571885086143 -5688308264781028505036247702821583514666470671292172916350280224873269657299593653174145005772915708578064978186214186153683267 -2204744465132776025498386899741825318473763441099667987231878067919021578886769657107832299974638025812458213339029056421384587 -2941505567992035598339903647769230684834003209355669548196807243023989038563917277881744820709582631259852618961087166384306292 -8258024223124059927265905619693379087206675705618331236606891852566067360854244728445479329673501981619440816785961582356678690 -6012067901366243313604096658402361049393912691496270752442176761357212025454418262374116671287518874273805796136109140975751742 -1773101052368269774971707329316287503544657412042811119480548137588711677240886794469483314479010931714923252443537409707971115 -6673163431438354320152064250744844641052080216051967752388682876816416999627859168211126178210239748498710723469312339914116142 -5806996877521195102255361656866436538966669931939141317697197556942791721788110932577145668299881351690980272915197702021298156 -3837290410389303517128116353347856259353484969554892124616182205192313287433755106122400179494690010200326668121477882253979202 -4517266820218197081941589722796747209204288657893693887244618207431797169277035145695561271253339157663193312460041285285239201 -9619778362364427885644889878069243475033064627573715740274290928496163757241181156603865800841856421952950186816149922823346976 -2573799739461267334017539893388809186322465134575561495883735717608135099991766507451755547789018617434096932254961072365198882 -5105319049917763260343536285268328841500875349287045804710455434303605043562842410645690374572514107603618866501621709959657187 -7151556358315357415841531703618215410583915203575998268810030381640117079961254114904804786046065507943854733690644791284850608 -8204760879007736798651157366669090166543821998311590636584404376075249452086719646757979910467231964531015916233682304625227803 -7147573127581292166990486442215222962358403851938571275150035153036061725108691622876773795056511233146161151053768550862751540 -6784559304983902886590174698622574195988266824149602039534916660889368814614010342767085921580402597291566274193343471685906410 -7880113249001482900851888199979393787162065292926067710104923584703156779327643300580458887132435255065678627456912854660490039 -1350749751135031413626228320025567623412283741939627729115634082906593503710519533248918652855496972010878915554543211009367225 -0004322455171197190670578109680045148889288778920452116958832375230435697820421502377733900228528866659062527967209953101213734 -2911494504322931801753348544419729543749078880072226980969166346711819931480214331433779640233877327672317049984114641749562870 -2396528513460618041259531318301991286281693049268735199694175803321673323893916691134629842475605991446026813330356086230228330 -8981164060702124227875449453939249569083280933393885800497807219622718057632147355043854391102180378987437281964171835261740700 -4207084959173122310540889440071390175078165835125695056930143838697501277302913507401666310496334451392319525169760616015349520 -1210081234448921940981378280200458404260945592669718748037205896059223823726981351910671794263375996276697272684781727338912271 -0029168415827572351727213122061796310780992187543596747141643738703113178475108090159020344233281790182332311601803329178285993 -3777296404075934053174216751857062118469565443797038517380817156541529651488369770373411767683949249420334108704951789531604654 -0677478972172417855596910438873967997191564526032435944553932413671467038312980120163881839182106666575810117448701361229089668 -2906070251543291085920125260549397785656115356661440571177943054793731483489419102892567240649669779614310761600563474068066656 -8852394653036692892038076417261650066148179764783605637155006560905389777668215992491194523484007340075319390767759607804494192 -5467138831557823428775541689197797741887498255851810682591799669249141593216801183262480761866825456541084229589715596536290776 -7751352765591319462216158866914539056239902442050723154683435064019845231969816008347645334022334350198037412040594819924724593 -3021915992015948439763471750840891829476672656242373621059864369709314486194930162083489346397306741461969474457136306652660884 -3810149798323432950565012468358334053474435740399651150333513841619654716521117976746459459286758520929133377210685994781661011 -4783431510440557379639204082385220913253340902177656244399207972984745234341006126872839573292250089207868222847639289722379753 -7370438575710728204326451494061012215276912157251877502908542289047363288154325283991522374002173371912625950441590135539908011 -3066350412780717315157416276543477507139338679594873856557881443518665559120844101586947952288770461228629756299270909156776058 -0225437513080408599402290104732039265518603222598728765215485627157659513804399230415740373980117223389491501554877516067224969 -6906447098674865317783282853291741419024882827886344308680586123738306172623618313185104401579759220967002703474556768483264969 -7905688354362418737693115373990150326675244455866285863285017259126406290824772728738190085605025791061658351412473817132182003 -0647939692176384124068167344966453433916156302209336971942526032217331539621915101096729732974008611758025821638418841239335586 -8207612011209373495228760846993905535758093646702045474203894639020884032055233069612162464709714659219943117947340234145019206 -6685510574753704984128082407027684573335104766797904438216667655851315902097650094638260466258758906563426639941626773728838182 -2859725751851113943873234212381842264933438665075493160334098268584252964692288511136721035397358821669241681360772178239556283 -5410817225831141636647896001039576920297438613631278187702231335198482845481821124632157811564428311298381077638390915142518664 -5603082383902365441423743060726658870177085955695406252400018823076710944733837738608757044351867174051742821082475300834328708 -8478410686281696423470828758415498795393164508886616098722313596122431017415306773664281061410625509783895380848928242909573156 -1195618788186485122683528679683670597289650244657656876407897279500115335276331331011520690820997358881740005917663903217514124 -1469313024861648921401247135353735958071127626605430535836717325791385228578496115248025350543355198105506645012545576867598396 -4272483837056013890177205566878534986867897273483516131338967706119399325076036529394304714161849476343886942682280685872295940 -6971223873405564611431588388181753597862284579604627783908270991876509853907693857394999066866716324481756490631331601939564088 -8692753456851589867469578350330459046916706027508903379244973723114291207510039578602992677933126396343784500936297228340222600 -3596764762533798756045077959160866048043299983905049607435425529900440769757414376919342785743646389458775443875643589233861301 -9939277922617044929198368291152778217422406940588205287822196961674791811253436361915620783243520085430696637802610907731339802 -9987990017965498772438500667174890865212624587022291536612477503056361052627799082687991851074848222861818981269823302761583997 -8147838382210431535807715103935094271794068054691587562868334683152631170314268604516246803968415953907592500669227061338962852 -5229815249263579089803694020966160885001383014770540554119854860763174611534378849807683267399405523325826175066050422465261245 -3718808810539902175097435162693814660278935973946526145133557384972950132995651178561319774914749271123710684959722970432994100 -9959643168956842935132972702456973644474462349184166563719137832114600377784944150813295076399096859538689536653676932352320454 -3562313742471254053603374767998733448940422800590796399248016870732131873285978468485675936836421845482343165519443520207502472 -6212070810123317420939860915076451492474105989853395883410582273920108061505858814970010182505273303507369510379631126623445635 -0255217936242316574157324758578917396184805700986741727460755136645033816635143639164644674079087020280816581372010788765004026 -8089847944137656769780273194285160566134507215012061013579883469551314461311271302478380193931275275686279445049118291696625976 -5717365181365376852569097535965171977412985242766246364289767242179344339616335652390309582781287529277190209039953388689399517 -7041440160561255381091312862643936475613988744385378977312543669992877553324112750381702041222192086102659343479767405018249915 -2110051683946677346707980171411807954606467103478530131043035978033107947826868347943468663705645386376022529329242653151632937 -3379574154524802337331393517730441276946707038997138141465007355281465799683250899916025487713716291942082244114027843952458642 -5030312724644064165890328712593254449923448331621966613833157539215136234997090424298061395610381815885285290455631522924868317 -4994969373293084869354149476773798201740005462072247291096910619119410509333790774262072570461057954016819195195682237016634823 -4014617100181465701775054953697719420102573860376968588430229723536957418028396409863878695628364581200214130204435051219695552 -9995923662150908682939564279380158287700441111607726222291472481672861788611478655050339588555615320984584521234687823576281254 -7451463346941792082220143976579354392136627715379752529027471716966012381538802459409604897867012386933986500209811720725405141 -5447700282385988297313347229401494009078606483625633850809103068410968238448493407439403040224936061985927544263475630989480459 -1276956495071860259959641422731621493130581830343261790000300846232499293476144299954615667025912420799180581171607386310558493 -5072567626180671481702538305209899197776259094898315797269647260887831166441294066368414302707370453117631015362578331461379694 -1152681127657219064376008724117880126055071670561685874051473152694654802783634954044854697360607744867225915714681210070391625 -4963921877303857727536312369203728666152509364270556408792999159107647346567121427484742607873371889230959069964077737186080579 -2539117036539210376394880318723799879677288248068497337514544989379323165067241670457629058952981263712005132132192204500173772 -6813760519782616773952896216661044250831393786872842763541388164566337619519250295645333112400558661044316307967715017816016933 -2537593940009216399181185307950727066601997003943463162691283637037387944868769661465346762713541328987499170590124382561225808 -2775885197315288545943935069058879566010060299863101752754477420864624440405321494564586899592105748495227288314078895511070581 -5073590254176183749859074321316849201765757369989203202482670238574028719679448337609628523768999643298161243528454637871645997 -4654524903507892912886995134469509913539767744116890388991007614902224668150391846827264198768560243067636303891131378158227338 -0324734826151939630626306117202466456571054839140771329647402994885021118469683547773949974151585727386291916309232652285623776 -1825578079957905035730446040937650014976367810409736691475746813209385827351129150863065044732028040265416217520597270250595073 -3855654215693196726130528392601924163490164258356468808028166928343554047073423362885338439044483545871577569335583661986547054 -7793570955613127244841652451443245937038624291178210631123294830620894480548406463322651814043971289378075631025886964612359732 -2535751039273171851827163526482017707846468207349048105786558968816006070754676314714316763865097547820424829616783998998577881 -2844480806501005182020568712353744447818200854387376634450572497810731969576672980314852204195217762355809650187750497828976590 -0779679209849300532787708183193857610170295918273464149221680774855800423860839661690361920242424552243626034568783063475060030 -0715723560396890811677256708000602036818903166537471742271498254161510038321801193648871563911124555662395779532361864351019488 -0796637275901473841659277764647010680246421160415288649143217531307967149087210418850695712273237810379507829287822942082290828 -2503374558287484037225872566037347531382781922322502069198289211129714070730191986360007963273941619249637438751324038507743444 -1257552500220289953409007738059857241268432142060119245938800646680659562080913958426385782354999183544917531229451796428251407 -0627725746927523912542272514587614535547975158991752064909670083277315643027595358743280831654266470167938798514468394097718636 -8318980485800264189777412075113224818829974167411737699158537404003402647667510002613635249834073904159437111364326870286724933 -8736390761693005617348059895960699070609999931133577397987040270060440645814471436005094800905267014783073740415604380803498206 -5542024002024944354928529036523594800851472969896531771028010643441490945234844042008320398276632902810470392426566175025658836 -7031032484519885828134561441713514585691824451116624144085217816423547864679125010423917860268671111391465300826171047260397179 -8220783551779338773320989765886440391559510492663544076020535514257589749352990988564034320388602959557187208585104844145026439 -8020438087951116022977373383495534674635129594766601601387483705748972280627013851396530590121458524210171753315286548207527820 -8153810125605918943918826453140421737748512940456044065444292520385926730447939082216173702077609971171912049413332448203544586 -0886669881112435179401237673978622874656264303143999122578352317897806033193993865036799045024203333380525337357889563568831448 -3748676570310585965679075167577833926365276411040601559021494474638574451420952356408036362315997810486031449429712897242856220 -0680179178809075888645900355703866665848623566100723748395628721560414660071214664781095082893581316152736759533950009932003975 -0830073511229116156443164078334884149650348116571315260656550335371524295132896582152314795929439939447827419494358066689706173 -3038785789686019127115381229380791436051546935860047229508729818282744657378118473627065099573727853891404083449592265655152693 -7387679714798835215773140865910355708661822160467627107526217765214393654304740207983760504979185513943991488603347106187504836 -4959345618457216694880885929572868404119594959297665383045694122211724921300914575522725438253647266552305439505601459584619177 -0467037747326795908961510775114924268777468775918327644966642534544042676564308146590029193764372898938024544197186375500357840 -8285890907673262212647988009259010379723054727978121814340184295658072413264615156697842474728575585169324914900743103535246719 -8911662589073033021628854642652750279152366994152376376433694906661951714454207190114956328995857009825646477784015810868978338 -6105850627169563438884040914539421660727931317710596144077279839188308966168911142486835009941100149861369756674171355191560490 -2993431983320455272922883788672722733898158280538086533775288120030297726075605253307507669239723828996651212708874872223213527 -2383871203918607138972250186349539349163142546547549565946027359258489597478748862408648058675393278207850385093331126182621573 -9149363763947487276724850656041160743708661373179229186384365572255499194358074217364047819850970764281787263423869876082053909 -5827019270739581666492975342346328261479975112685223225619643483040396563898673337995672909483700478627244101352870984979237732 -6998285824391825859392150613924432428270654497491969804735086552708299672203935039153979762171440238901122660133544046138761976 -9253330844439113156612382643124565174653829532487393981769888635312756386927331059248556801164857640315799609889660186200071275 -5612390497528583434894505132668347409216226770741805847223173711771542665456899372500390460954330204857624315915587829701045748 -3597132578062559495102590042788395347495253649400865738509995118091093608521019322954235222572297567318636643867386469580449507 -8425515407736939284693677162137557410259923224830338231554842919234034510500493129925331580967001474100531060588153614511993338 -9601991297057389436503665001505251866564553593237174176487901010113004032749058341666775216970685449376017846133214652240838962 -1863773381844384208184694104858797647539515137932214592371546918752008772143433088976967184397882651789039128762093118018510138 -8436667156247339295567342218063358078249911156583296510351786615409192064411950727914656163850098232887122260394676405120111886 -7683313388786537579802951656666063632278774842670516448032010207156251926218292168775800210222391153956472045994503212219850049 -8209641417161775663979384085179876713787424866821458112247475298894421880117371699371735285979992519666751909878379569083863705 -5145614759445599831570000861590726100099887859826097034388914355367729544959518374514940678332048394297378845981970826760413852 -8761767120217732947982706113384060618324856798940745761981931692821487049372786616858603289668185012412091827806837321112104047 -9255297129664160944098264261547065105677964568103165093339743646349513755899758152316922927563473869566225326724560456097296052 -8120768832977744822631836021474402079390526097477803448973026451821196612519143995594879311933463926655409414749552006489267940 -7017154772060236322937445448043347707331947096778317016923510498198624836901896034874919545286197554142622789268469355512048260 -4180409321511968885143370514200618650235742405287713769661977834572569077057120974054874981770237845015640851329981775003008191 -2674007147813616401003929214576628097932821870524475792725335810151140502429235053500438517449175945097953478389066531072308154 -2478433215760250770512406042154394331540911914042172939884164584979797404189940441889258451913067147217070836370940898306980314 -1416691061574950251933857581530784660502363969157027453652188159283670553356947339926944472421121743170291855577403109297001923 -9846364489252978228078702013876774947354134510165101268064021721322665802683013959144338916544348159574015107727356473797086745 -5487580365242793847184389294498037980764980441864399341257536426029899353090372478661527651346349015000812904186890490170512422 -0317001187750772629199900746610544979042670580491329322209673449299816557793150957519344382208574308527216206006597313873698350 -3641287214039996737900834675182665853779449596351604582635503134884649233644728626688852457677654231608768591360986911023898427 -6414868015450446904060895609231719309486232701910101120865147273052264604064433289410480856555673255517305129013544577242362891 -0524147637426415811762515415524550268148125432394280267631328443360400295790051752698236429135771292548014257090019134991791562 -9227410989021340348714125220582535723860559138846179511512191891037914244234245126229571603923532773311387103298341477228375501 -4041581080402587294355936437638145699274625343476210354812865278292813236740766242635378473283614144250925302804707242340663339 -0724867859827673965725683173043844289022888248735884487800477685080844896245015920731492673699852061747889861151283779392092379 -5909276888786182094219448158615991460321912732697015860009933234510620643391119454097956755043612428806923128306819132701862789 -5863973408297121204616907602368353757254965361693796331036727921299882051062544545347637276552415740930878434572627384251645258 -2609867181490019825132280383807303218611438271972259358234476006167125808789720811193408861105326321587061359193074883011503250 -2053550365140441314774770422273440770268402358845803831349391590570354084402287239858709867448417600167758148787965827714400727 -7156914133575985423380170082307013620095209686338890246264669241382877333719091759478776099336392938215841439510174135934515390 -4831194527648288858829733221197151800308714018772578642206404911045931696147282373784233544435117870290316107286565703640910861 -3300965303400428799995252612196866095687126018105212822125411581947708785019993474053195560005697252054488325120896486904066095 -5685043938431323336868482886553258817526871549549389321696880672458619872963868160503420041705844727261813948644337640127844475 -8437858633093280150489850618743229089133908480393577494682517449743840953324665700848231841040716763791338769325607594504384201 -5092632498177396936492730922026153200701191354311511401621705191001018224605697557158822145660532720002740219521243300566753090 -0884695364629948365817606370132571392316227842180869160712531089788912972870842630687441550199592940590099216041036498458331435 -7030125885795773170445439886698551870214797580800884149092936799091801845209138388276070168782087225547258102113578759536143915 -8807215865608701057987377248776702944861046260230342503936276411275965656745488818885694005475308409675094846381271540973613956 -6869008153507650455021791206721217199858946589909935757514740552973399919912521587008600090842850454930346920106313925959869436 -8747302342382237757458390343882591560184411401946674013753631245032512422678856746902092711874356365404625893572768808561925896 -1816616401614372016489584185015076832989812362352963164309054653174766477426767816672229374164734973950570074316503361323429424 -1677262729710288413972124464110274430459973064690910792449284824422312855723898793069294265613363135307936039462077553033385323 -0904814204574628728334178723557725337676246503641550973591704771295724843533583760990530372617065538876854581885105724368370399 -5318034405787225786821497050581659615205871549939335953839157390829611482749151979571742480565357809673956661177238715716708421 -5050974915162203984880371984109598616980412684284404767484126024659745317958728060034806278671739980663056141392010690752871879 -3910704359349884254016812391071406772666793577154924194799659346664635964157482006918898999240501149700799097400684650477119203 -0922138102426301243886965897610590765176893150415296968278489084200960754236095696787157337789651225430707548067049568646321905 -9034532106902339573322445743023271918597056331210862099117907113669633072759130199009133076195985791779283506809079562559701881 -8961339360352958868430789580169262538709387737102199957461921100064868143051486287683576990974108237901843716454745741895109283 -3895519300319620380905559168583475674843131617139726705719237185238119833221024548683898215318859806049104445070815116282206901 -3205107673082159654286800880087962054713784047147807335322961266542952563116519811400145837980005316237797804651103815235446781 -4645211086556795731679627686638624553276782440503123281227932461374131645478394881186841410205689089468850242938656791425398127 -8527652116361873059872046061450470630778597394637649835734537239971727675715042761592888819669786191505268650105293343814467234 -4729851960520632361339165114787166123924351946142914574237488059076517558856540707604936767815825051810582920267228276662907034 -4922524498676764577221603274496474839043188887553906964245432382389882944444308052516105844797654740378920402689234115734188908 -5209597697295900954976185802188459574638626316316754990028635919463918798002460967253179124238772322245122243876066379489508079 -4508289933039159505453489164861720999217265104842659882479905333119333431390108947303039851217725991104705191344280222412086293 -8069168568134508776661939124641765187854999589971548041638843098203486147656735371454412494419404765242018465434846607552127178 -2927086453284193065980223266739988186690361081906781869605569767794118257589865157784413584255650425147523732344110338440580815 -1748049647890769557692421227727549481557775151410048868814718985045151061237011017099100528551045245586497019590105694556854099 -5925541326979395577276086387515399363166724218914221343444459910602377753889752768375789640169881596578910501727353216027189265 -0670300499827706283025120061244353545380543254798985391943205942681540582832008582661334249048815794102101737939011541318568554 -1807401946172440506670841188965007674553832019157741404977051650612570825055419487071388288683499429125090172081236081328128795 -1574208400432062514192736694804153587958619698259830513687209529110862276181211516095950235354568516040903749851761677661305637 -4121149896620030430814848794433445919918770329319490730619096312332656236065824412598168467443676868836685315118978623516376785 -7498488621509709129976594981432727530944618723741457356588286547102533914121132990321805599546945869002131411100756554367181741 -2582026542886480869734858959495104201677107827620049653093381222272376273695750172303884972292405628020932588645381010082785621 -4289447606077369793749546092089501817143072386741950941157247080345113014329756464038358626070033871947884567651488044623905631 -2542825564877135509885226287724296817068865459213301536696178082552402072123707396192496897302967815948042943248544343979991813 -2226470997115317096784601264496380718265218871198752715837658374418501244345114451866417686910079224568758319235433015428196960 -8662720543840647608329817530425275416788291903848716280076563958924728751343578053506896388100895823567897044421928057610378475 -4719351914296817015503837199703117466548446025449281302558021903566930798786374684451211437854302542934198900108681526080958767 -3447640954611982803365820977016952430036387460526610055495899354375691830575753318086903113772624764685535267168082007345740305 -1797213012073375178436558221355605782112077809669165249433528557235690262339894762165301931035587761808175461223039297448962130 -6950060736132243209446984212914140861957832417030579738364918001660026811196800334571314378298274260059705895036596817108824926 -9243829747951735931284002210476722019445511064984030772651417194277223668272106134988724834976681779756839767862454568373306618 -4177035873387789691442645602142232402697759139202124087044601161733861189197322918438352811683833924407803890384828993570282474 -4594126055178872656922618774167034354795564094725497124745719061896909861368756961278327080697512762579612758334700763137442983 -5295668887669717485226390123467973887358507953479829153694623729169375830523050788966597377361980793027344718171019365784257200 -9888285370457729318303943315282858750583399490083047557333008218529891417381026015175475841289968239416942724745429537867737999 -3215943066766119309004524839024701086312759322446215895076113158100056596170634794503064752363481133827922180405978563689758589 -5959944414411467463305736849422386192090664596675188756343645002538240622043092367067855848705606619349233737685916244645398642 -3415921462522850660711019463447810831161516098186857649733922254277645246597288489872824421913456035668900907466154510857353878 -0820770271351282269897729773480908180216209552917101530859717823023591831191252679348064887785178954716044181664367902784712050 -4837078657362119194233933526772924288995857318513107274934487922952892071107573280347076419494020490239809987105400407903583211 -4566520950673320089105623215464822027247924240083971798563728505499902175676964769999078225165976694000667473401833118202304025 -6860738161875565205941822290237567447513259073024464364524976929966835518792473395436546988594137222229184152759954076791794830 -3322947265984158060992158624663708425488918876383348951122905125836522038089874259881383269124957101134232722838965307585611944 -2514815461210894795746476799700740431234580399243562016925036790171527515771508119826976806830254109945111480181093741053447775 -5733504011133442490826886677777865571712956442700084777358932735387221216646199198889278425501261656719619101527490023033629983 -6816820665025994462583833453804933866931009904653183983658207938144775757074429801900721418490709180940459786270732207357575723 -8952696642268346283355069787962809893365964014926493914452473794524489554221368619837559042723108457610361497745820672215991860 -4686726618791630599619015305428791046600757619220375372642195506961581791667069381025833026424470965152344317512976704970780861 -7817535100493702359961847958187008692676255354707895369219620793484182638707169828174557995935583658475438688352992259510602626 -7874029548817067666626239631331985390475404826024086339339243583071276348104332609325698630718922399423989995185805657290031135 -2250809137006081215712604683009748641626154723738138936917095298080941105465629041740614734952469019573555032467949707456686827 -9015780860040863502309304151201467772727168204445161990634325579174702838004535428730659838209979201561616665321137059277802195 -7650185512550554196643188069669262493680280748343975919639135449289335914799374871448334387269516977974949025899212288538454112 -8893662379603774306702720358700430713868475310661351513479439829552220384722225613968805831874918699875259504799262267715048953 -6970047041565543406988313458814942522252185061892588920654751003945616453031191382091583403673677641380943374412110595010134653 -9871101512999920825593895837672777862350486799080847951285270490204712290524251977042420133385216867854292673426124017430550114 -4761750275074356557669956909154179090706612051478635506091941757942400068895124161242203046266249256221284982009220935209300242 -8708015446206142670623126732884105024418284851295914904738375122444129503796268180002105711502782904456582492253779456800326918 -0613210293625239057781585677639979950255289284707390038337154693725678298193172844000279478330485593483147704265272812526895779 -2716164189514060813320272610067774089300292554132648786501937337701166054949053895064937132503546260829302791728809439780621266 -7313188607076954454240146509025347232689443993903699487707438769611328865209183398377855897661913914996316621615825549781446347 -1784361684093575880030474001414660619024654155783784777347697077774197795864389624206377564266630250281594010870492871026068899 -1515638387019036333906018359538519902111800466842577317066502746814101599618916383605825219038858550204877062732542814333739145 -9220084992150752811004335287492444508585899566926596972214201784424729857471199982968054884285888711269768545472118962801716609 -3225729665605184922610258057387753797602084282592399424014307116412082926636660405157448703031528431483170813038850013412917589 -0896837209572767267939653527113544043129466184693048843785638628896239995824306624383959725609177449846462355536652421863726297 -6350549459745687058464464835566280558244152696093628407065101518502946110700562358545869437041517797874386126356678480069546762 -7437438880206605630925397821472561939196877744334362718590301519068712375301433711985727209285202108430567240861306104506294438 -3997013218626793371442945794751768102167128014691257491799130532817890787884088430906840628465718832537193051422942089432586522 -5767261809159521411906210527732505137517003452232973525892796163942363843586179566469412536807588910846358095073973053136806664 -3610420406657475104037145580225980872688624964111041381549594329404718245302720059446156211318636072750134363504069278172819616 -6203445793416289171078116228949526537345367573758934511473904862922585007326728074024526181186924979509692268351022430367531902 -6396903617968213357545062076755915835538061764765669442173658896006627193712410945197598872950553456423579139305216599382954077 -0380250815827704962815549731957552434336266476872009617222288199268494650352751383734703683895685962764217150385921949138345511 -8687569627504118278687806727964146837523838460065586633962532325989849682060922414609471208083225295893531164710651416235932804 -7419608622045901350837303269139752477969857182975189849619797931283834755645259685017775129366698872709262322484867769237487261 -2446574648357299934768068561355356119075191099390351323266829442188920299959413380468532819783426950868690325166385302101461953 -4690378580819708064900475904899019106498140395743178471011674929320871266333196561704778715716963538368801024314408279647276339 -2089232113041890885410086998151297290297216269518414003124742833718798363559663862672468722436254498875698485622178498338429914 -6550115139019878137719854465346267455296956376622672210869101826618943385242099068657285404811000189142469975735597865828978322 -5550336328979484745931555695487878550858216320770924583332798110114879836414978841309407295358874518788123614542792919395667790 -0067101966073227418786203809533671075851186310058420930636457857938955159488144881158165188969895896949949174391923269110027161 -8258211496051765933329722240348370716824091139227581167499651455166693356343053246387421021603939871942981451611393932490380081 -1143232998448167618984488431281685110452032295577636699995232387576558530063365443650214541186195345336376561664260667081107636 -9153874053518331378425571758003432585952239206770799268110257888073536748287123822972824857968518689632999374391956653833541643 -5746454771428065810576182766708428737462219904665952012954717596322305804801076045993811560187169208752861306869132853087960769 -9312948167988600676884786283729313554222793557251794907465964089218336400060941052967060271657136677975942167674352571570304004 -6999898093303477247632176216594681728525645905467929567402604064471637964034911185817952376210008390273053006469300379255866531 -1000632388106711156678341302292429215991586500122697419661097904387224375829260375948304920442750157857268831027577641937349960 -0561600453741069995026478401094735925203677529242298315347820295756013844421038599646676315356655360880496025651231310731701615 -2967967299264819933654047107088552569694325550743639578846283279457367587777819171468331383302126179626852498959303153806267304 -0993137404276474214149260182488025202243237418254946278036864473980040065830274036040054866953015031416924556900973301250401325 -0611401987313671825312920644599670850377089684826838922442681491359233283306670402386279700142617583474055662080523345059224691 -5939710996631567268204735821745742750433473750474145824948890280584535509141301239485088599010310179272128880118496394992466934 -3357460688499765569727929892732936606129832020628130664357730146150594561279515636082352905831482949527411745350155774277195108 -7138561333287682465057643618887421608272303910896561253448290571853039520359195699641420904384787139962581486218527455895010235 -5098065276517497532201660511210544476729427289544804994012760004734407796257346283172974549503877915741488118551582294732680387 -9918245303994525211620190522775746453648980603544567886385199869862202445674868474533709002221515555801308081350907650459178667 -8721390287975913893819238889792260446828081274233551710328471981963516819510944667867602212793558775770710289206007250029862895 -1280952122455041043530594319244152931145497436315530258653194357643115496210565410757613267156777417895715618326341142914815577 -7155758483619829149138641241642134167637824757268284393191488835351550697663275036059641871170325362834558782380774852273848821 -9812670602301209189800121141901793479005817704022886493550881027819499284489381378125534965938777548562514868791510874667018247 -0362874203793328000664031717659796956361927785166994482222033051420000873310315385500469809294516134684467763731164514267312822 -5076794324739899424289073581881385172449093717540058394689713271226423655501988369216296397971568827556688651950460247532081671 -2211691279142831153117347297369818334578478434502829176759746633980926915557525626263924160377780019382684610945724739361356924 -9219339881449560885105533284707871200679261887421531149034514599874409542178946360778835736536874753087132328398630153344208176 -1738323078966650030040964282424869456011617229198020575179773319844636313591780039750411848469791355249483448877218482996481058 -7662725242856974627520011178425574682734942204257582618062074645522175607162830607624141450906516065750218377963070171888324843 -4118042284044277227029777215730052173836438075783336538165120621022353806541561734384066342123951846452650796265263415816226504 -9577454228253953925531431429190317095770965424733462598360193026659796995068726322946365945449373804244913417484873047389958047 -2530447003714965976379236094037411278014717964765934254550861704945379408174897820528178412885512242072953354276409893858269606 -8161920683332117194434729439905850512943519462231619259091383414069915670154194411541846032268055950920748136328515080957772524 -4455001394112823835403683958904433147118332238523201500644925421808301905477707785391327088921953707802405649821266420465223561 -6446522347006213132203935166470869874136295692811490433897687621265910913874552752126752166818595258011990560857727236113871905 -9408818174849694926607806886600067803753381428797382723099805698620415041534972953179055866017711870699147517868454045402246335 -4135626065428509052074741682443536368971147858952760160985560880547769122981012756994845114634562103177568847660082033374741355 -6629483302659977998713743227246471116209038004192175569114510152669193408163108052671223081581651955384894038833735367319970945 -2019914369819713476232512996482094786229436696697562766992595975532622307992117773104105916821954959122045124593739046172932273 -1444770368011659028126820519729159232409884803442212877208399135578736969682832974964729860145229172744181374244786183467104294 -5285602663449673777986234552062489192832103368544537902433053581936823853505740285888319749907423551259460167786803225430704894 -0644806832972865011089771228494426041526498427256197014809301589227000243312341210098122668991020924989347084902763173739593342 -8397927825150753855181618641584202156450292633924809550510911217351590362959737037094558684222129548773410325105794129798697578 -2130742130526719507540424131716191473755652175799405630787752600339151530661377691130274509280084673031861647779131553466473489 -8949445645797314751748458206320095870152672752275260151260265707878555413048057771903238190200758654160960860864191150393477626 -1150155207111417862229200794999414320488018094694431946879621916439109486610009948685634866137188097525670175207351289611083094 -3459879841467541763732336521769192414341573430800023957612803685733924880739274791648569413015334203212412056584388583105695911 -4207107909576145869607620085461426361544959409669769028641359260476393776996951928885197026584290166920423018039379739461412804 -2471437021597594937922441016847924078362096363319644062767483944790539470640965768192086646725793415577156194561524796709562342 -2281835051710898850388364318434644955789879751829726732802303436684019874264646806723409567549761608858039525219541663231620839 -2007932711287625313296243751903200023005400873291491556838807519342296983784742524733445763971687078693207166472588686547509634 -7628738900800911617227705711930133205924637233313615650647097515124961199263711780307927527262674727498690057241315682922136505 -0493387404859274797132212785618181333173806092520644500400240017059008198178246301124430115868753110589721037771703980382573162 -1169775643061410030855660308847307357939679557417322697395889694976054211267593984893969933792226845025198715121269754643254572 -1728088919686607770305974714811474045083911324960307426887087611368014116902540202262357011208475439646884185432232498389602471 -9413509858059972641349538923181108900150612516616095667778909942463828217847216087159443807284569471198894585206492715160193699 -6728843665008266563029199158801993529576549886997200057517865461162768723429256920925422142043184781462681238742660537092344889 -1931599731390297037090231505612731169969829636622229470099002019655957459951531223643763907113518395449915860761987492535032339 -5034107674301251502545019517381773020837552557746624579624919732008873147762835295630900229992866373514578020722517390727520774 -8983019600230774694685639778625463724553591351398381775880431832781553934906986888770789153951456721760712116772577734503027958 -0722579888130638672105073329597090462417149082738030373661949401575813793082783579270436569787902655097641040401368636813371427 -7854245354370422693429496181630052949425191073877308843275368739572310979470712820505147110988781661197587183674125970895995542 -9743873036934859621564820909920160132335721185173809848423866981847229831790016569684947679721801847602901060080188329396305906 -3397337816832712119749817143233767742905059889912076656163289731022283191890667300707504214144077245819520343407565716275839778 -1635431146179533618869624816029047896887367730042516939278216433734900869272992829571445669607086349418935403567352277456520703 -6762725385281999872315155129365300727718531348063401770341896591345777984146395511533572557918080490707700609701643325567678181 -4555558906784569913680220888302706502231120206554070127879841389783669163314482027219519085496782129580409038602612227824819543 -4625553964652973015688630098326028308371988997070002772661734916972323600534194087341555003249709049635157603584665553841867805 -5469615145572204179649517877754736243473051237336198742915870594247954290354530866927776592105619674425818013502199456960100742 -0688295929947456127268347042202884584629259939771429635850789571181349570944477662818026788804604769581716692572546910654441173 -1781053017263760670442837500622338443773255350157040419311002126378320391255428265011649731680948453211623587016944241093429272 -4424881884807343597741531983608658269276205760340198024603987236049280398955549067330598233254907076437393855435114528768763737 -6402747544261459973943024136936806092529416389402993987239813694282531255632557296852083229095761340348625572700195393957513287 -1528386320984169104784676953231416483588713316281109988780398093348714641247346320098277064757682809088330401558069087928359793 -4836620934876383780592087107373057072272745160875663949786761387509864704698529847777036861011698566433232612309834845364039380 -3575337583851040701388845815054721473930456788213430385395140774983959957647809720764167375524924858966015899435919948180069180 -3727628368963430480869218342563326331182798677393171005831460902561217359479597768311004931085102290184621530025879576836660947 -3475800984573188366693910563609274312878602294132115102801727644998770488363543862638723091471157432089891694987852322137790631 -5023683657353497036212732071088147337120821028934424904568945720202766911488162370473709710449329167955152043455364639983165681 -4313458074953427422966761496213154547288857367926863109897916806997328848306557928981283734566043834603735209469550380544603011 -4769534552591442528339142072463485535584209788041390319662187991947284630203143273451030277553655546597381665676996289780792291 -8029659403865541723176070298858179302484672898090770785814054293418165410123040143090326214914018331298053460618863938939353357 -2504331261837289138046426704519324433487258219679900506483638261532541113835978749947580235779347318410118894160450785891787503 -9154332931976583483472163920590162126815140207546760699499178902132160947370072538150136322051659957346811166868803166980109050 -0222142484013400331297859576897114613785020913334195683798252363342695111135735081039945217905782047137997143182303582893239120 -9813120425348259494442258981684713118897639132890990099359593568005985530954284388860261356040562648449500126432442951864251191 -9491055336614888264152467342246996843863880300943314768116172425467094897669780084992632583894436406804533915530813948074710378 -5125880262000217074108251922916601396846452955978383367381037097928649700928330600429463193168987527289334840125068384753709726 -3250963913544985283516074025079436289530032965000091704733601456641384410110473920750483277883697522865698072624602352586775278 -6909533273650494192857472271669762600062165210442469141500817398520087420757013742072500281461753556164642072928308813935348280 -4807129228896091173010215184046472764333315290810434138260279373142369497015166184160402673619706065463269358547161491925056454 -7992119117554165493880872181423830045252323577778753354174393490633929436643377607848377532573742197373252323683113537849603683 -8841806293434459100805456108210596607134914383853585818153512788887296784056237782465358856155449499271949927041469376892328564 -1632152697497520229603928059316997370226452543375632335002549957119486189260078571706186257203470953055703949967851861921520731 -5864396596718182058160283419308429964136934231008821382389697128204242562370820069167753381761875728312424003987892871207159646 -3666084774918882500462621483992172725824109862896378199142479129987559328773744933469602552905906375001745899273316469658254151 -3498338535962144862096688449703329334091149790999664223656029226119319000718124150843673811902580542556051470065598276315050434 -2588642538822153267060185463367170199110995449008021906678609426788891572594252587471982661988824671301251499893937578926745391 -9319707795744627065170409664872689583830132047201026242383522246999299133923376128562725383185342894837098008031828134646969110 -0671702811161136021518386108886822361915633677386996222331112492876474384896788653692739997207795179082317779078270838374606210 -0529680562308620614160670757652951824510508056181488035417621544956335930822186390269360882386498654576366806627786546389748223 -7121344007162987446407144751532917923911603613369296361423444081791345960568825786153422255467670330488573438324604236300940295 -7856126749900534423962976560155869500794418586760356971148877729423323229897743690930063998855496652306786264023420507384957613 -1115472217398806310578221635364703110916537667405172225846214402717552527160481181622222803507823937807179294058810167262993525 -7733396618045594337624445678237438829647882527257597412143681872681853625778555809127382419530057648275810262641644934924071181 -3613929384294435871056622853422519700112176582857461049491276578382237331260522744886532614099866550813707901946900039411643678 -2471863854966531804604197010815017888282961247506056635263741803813648407515388558830396273074055989597305977778886391310447068 -5772682018682680181055188634541777077934406094474845232952841473576584969574909042981622739932442934509311768673906919851347223 -1971820335809415226886329944736554280331033759806916931583970783266805147633904060778157532814909009520404718412464333929846412 -9304789467519446866413824868897777103238294214707967726874145548954743749977770022421296628566823077488711722686581183789601459 -4520829387352906480220193366391017100275344244933837568936172706668016811057327408759076674979685576296077953383462420493700931 -8246906431343919288012465266462141639350962646993227082304804964566869105156074039984736745415005176673660764795387467919402546 -0186162998111273052854513690953012281012706484313894676418003816742150384731546652072390520748548343581415404883693106949598503 -7407453409468893649012012693295080963235028162714227398127099455397823529445343521263605978197734068303737481555026299674237511 -1229395187707069269668822522188040767339600015117257223444650130799671208076697307072988709360546665590067811729152682754853792 -2543283984004058807502208094435749036903952553879602762556029245920852075326946498509084553554503835502118795067551626235164267 -2007797747581357604343336945727914338356814330722751353631792234077965818274628997502349441503414970786616526353391356822676384 -5194656346701670632084824377074289402109258239302810982753490912710811175011533673266509733689435108026608580234617657393376969 -9037146495591802460947583581948869619219502922722697707400434384802310554421740985009894719409552319891457897233615461251631720 -3990697080273078766162376909117528749470352764935216917028329174981312070290561402015804824976866738329336998564205666524939715 -7848352778978178394189920640395834604512765967920164240559275230242580756053219581598506048812354481467677378211973577424576951 -9532477816991813127692436491685156204938010748592475096875883131377908630365761647389532075843048673325944084338736570456096797 -6164242821944626959915759190590818947629953857895701779138738262444662644883838599728736964664029753263536337011632748825080378 -2817015241236739478928849304183816788634913242150862112550226668153792859950263630837585979285928908928017849179569989536100198 -3188299380080735588065637018955883708261980780287989654193640067585824757814983887808561472404025858752559638368589207857289458 -2148159553153805396206627740954877447246881212999958661604167091735503989349952300666940107138834649908131455364478740204253214 -5183812867943299697018327767670320460762394440257519747758147645570356514775758990004394658301628734229570022912960712413921130 -2264795742893091605616321707447640168594382931899898384410937459110317820561426704161424031904340033048159158399357351652777596 -2139572365125527551258839222311219599103367463992672950511023648604600231272790630354961828455031402437496547839035832950304233 -5563173043827945218120288721053385228256759107947287607765533263965688120561373605092351078219345874822210656978425318969319770 -8518350618323036588967937820117667974812517069373788130975907844737917546000454481446588184420492343516807727330574227463796535 -2208092079415381688598883619322045535433174373692220944523386140424053570720154062384759984606718110454232154813303857905183459 -0403764445312406400743177177292964855962834587085077838226697948324657642954983884229554291774482754430895940798928630071520949 -1218078030268093244894387180566099112644808636942463725970271185753041625812549630461585448271241111674252623627152709755765524 -4640249030477405125378434884747349008061139769305596841781606951188241867017869136729477063722445205619856063985162910427240398 -2909590245662898324814954125183873527735419113049232565629860534526664160220755933343864533662307471463902405211409478015729764 -1532024154051612895466466141175266647835257739963433595273778351297990606120134172421391748505385924656782899507982823237116066 -7625676430217706141880242765715903813773188383257526213002250997251341961521914541749167347954676286972265765550795698115431540 -3971204449523415473814450392924406717851351635913252062373246080376997499866289003353070967905385783507116089156113219681812229 -7080951492315882179871809720207741914174481310077398153033680591523295504167580131795931815413662606081970038126846874489797367 -2964040579217611595547760234190477290346436427835968877980338437548172752209833653855504469466390943293257324156532489625950388 -3972616808815375498057586682316341344883202169607183819718037286789995473261003288017415010063837288806976576286819527639032681 -1290138051725002391039102512231630818525813814320415691425261417707087230623051869853213472687397101016144678883680930245168423 -3850834662586016207855419987088023334696460550057253060411826174208076438814838201928582833181083830814307068201908029863175971 -7944749902703521228274612063687297856087416799604592533936372400167341391775276233906976252493497295192482610468181988345091916 -7011096175582468584236690812621406307216715768647084636075068364924266221366474623044001441060540006895424513815585241978347109 -9612362696533734373153334851655466254197093486211639205861389987966709302035551682330490724447416578042696870553662285651851441 -0111552534765233442760444257765948564305822466469203165903339169326584537556214779726091179725355707166736526121645211226756106 -5885039259881836616302187141071464709494663689251644989212209295897461744225634984400183422383926438027326803031066696585257111 -5396579069429715251643225942479087285188610492026082322649552644481241838275988175206718743351678720472794668564948833054357449 -8688233606386980591001497882755114729508367160997540301693192893291539036951478433163921320714186025327605130043325851253234451 -4872214673472278544834646890891722960548978190052377730643946484747055518801507106492936171927846554906068388153908514485343068 -7214840374326612339276352609419398397127314205763710059777054421447567554750695002090543962570373028396055745121721373269382936 -4524482436241914482911352925071095921316760701089039169544052169552093783128384931032814298463081577630793680822839743941613795 -4223734008339327317027315036935919017365387705335808468598641390301926191406305147914145568155445735877807426352454856646393111 -5101170944379204574558835956241764204898906557725918071785044288986731351021322301083120247570462572136590876553271594974477165 -1498954940338463049076496039744592188429182308195708965464178219513192666612550201124332096109168498851228361187923717360547190 -2838593784210615507907908324852279814008797652951109874718831612968151452611605913542110950712021617053098075818112497307624799 -9381906333865113269293243176861228537211612376105763917319466803899016867981408631123044887142147183129506705177986309824780722 -5409043531218283220619747469806558139995337403975277796517573718341286548125289716392847076083882092014379916668361163684338425 -1904893321014375227674131798347455361695847285890504332145250525132622615658888584205703776156043946440538442055020240373771823 -1351830991497076875181168528408533516757044944191964801761366476485666222599596030732870772285002472325833568217236712614883027 -7315021210616605619597435420913698876375528968662848736161937624720303296895982028335232063555260929924269983942028091369465040 -5072200871530059327653441988927547294080741487165355628851444397293608964873155978474929308924899776875776153220999350338874781 -7297806144047991652107617589673777407092234699017295323732250434070279346790076112443512292202647551871470787944370705490593514 -8338680194506251068070541345811382066184901866943035469419313397753521282182668152084983612781310002659403231835343007351253055 -6114581775690037701739519471149107309520083450078485755172388779153808947468636573364766942355736298359796132744647242525151199 -7574059840087355237287159427555431111919013708861023222908038566164641505519732443177083128309239177653941203870945389834998157 -0673474392377001399825892148070125779937209491690893896089896421739180565135864053866800087116893052683453216209088258021309774 -4693630023596081716394525302256706650097913048822663453433130852833930985337805085115332988734054335391426675730296735748012109 -1093024463171151726057935490277564245957695353097684106836395483499057575855912524860400186656839768087931489404973303617192884 -7635877951810419014091014411375539957398983529537012020519286943703105851379947162885419241335326379003488660213681674994537920 -7313912009934610962402221459721660669217906503605255214027757570091733853488694769091622366303142874602414314687218525998341547 -1566050559171006939210753283371737704974135991991141945660050193578931524036467433476181347487862613613591250793557188528520720 -8176429431061693107924500762483197651311460029641913001176379201100638867103309766025948024030323914130084770751860668764418979 -1729648696441840023063291425166270194908270401060650039064514332458826292034060316832564595611388754933869606578691497545240684 -5096948893204927421293649874213362565576773971352082850459718459918977951318599802521678656926223913450782713343578245294043312 -3086541714606171194181739777107223773075014101828171109460641650405365226657056099487143258905930679574237317845176027548390939 -7740302926757091096782313708390498469422515280866564744352174072524950077317896546008807496266670386420521998084434771204151893 -5027934064208470666653625072824590692528078583512194513874229573957257382460729248431045517338285948895199087965965424240384379 -4571860754401274665671127939865476298997613160622025616980368067727347277864838846767268485621173877779887690613158095362529635 -6944876714447267999239762443038959101083236381747476636643523496718859843462703424789350147757356429745707937022796547995361159 -1608685279655308172831370710312433300754386599666997983340912162248117716366440489547493562293368632280675661325251959965144367 -0470115155279779686716584895721905617913807392365128663764858517955975388392843450401077964641050043314321327171303982059553970 -6215103349524529478271694130462996515027440018395285605756916821272681672383831564950333676633547276622946473458222960324229716 -5752661076880540890733587009248458903926085507327954333035749203073156883894621881819872469950016600034383209674501094959670531 -1945586770541986321354980385963397070039734408942633942296911586196737659678600361467268366772660352728384921986880900512427348 -0224298460720490332231265716874929497392701347632450314627063512555464017409367105505507132766860559659364230297395631822230539 -1702023132625842749699356356536784362975613947059773629978196487288877402990298821674431326788769352305708774873068640207819256 -0837874454109632180336808361233189153201698197837194960277668995755988025271886650717010166150668262322432532297058508033324759 -3169311626099247379274799980132948823347592107280599635475818048919814215035606030291543579920124429871014029266938736200412702 -1914619565140979302991699155094170839054951976790499833713849411741065459327090513567799966465721776223514774008243762437394273 -0284830262288056137733605741424808121279641702537891966081045603173960192239888264018200262442793489277094386722616393425116590 -1173151387211465492751444105592198529015440250049757464822160661232074007786672709170841572180341360083386765961004042180282066 -2747834197332941363146926817441453515366505571978984487189489275517487274745916049268403158626553738640115381387510687487708488 -1958762131814281375452347210594453320648975262319481726099981862965271971390001963271654018154213822420613244796687794506233768 -5861590138913305751605474142329109238465204802867089486028021810232894377402829167243953763417451369079334074531476305390636648 -6931736509544684644323440543056340368361669695138186889701847677102848670844548402669049251722131793379128120867567738961962646 -6821092152578736586590175476051687813270318648206546383329391485549308897384882743702278026541948728683530021908873051239269012 -3127870261792191598343155115866595959890760429348459173942873213248004394755219777755565345896164898508858847846745938219558572 -4104690546998169355396414252792133064383123628337383872945199098541769741499506855287626343383400914652705990644014540006261236 -8792100596328961741396764802811919634888917999468524631681735602589600555328679349075778614192998476904702613310979642799638155 -6734793674993705010403616483433595873080508573310753327845752574399663353072797746592366100412052447212721125322772808600316385 -0099515723538668132596125963466202152817452490708599517233532239221132293841708379481396652887673374586403485713968074564071453 -0083805755888358130747915433250146084164753782259744459712819051842998158461581619972310157769421457011089633907439164606444507 -7652876608005273562462370933960187647117519619868786042595158425921249718553500241273244226393132978251127763667423654542879946 -4405249132813172389850479368504130884719811118887711374371841091799443512801595585892341132692059703325567321860246290919547167 -6941199045895501309914547487559727954258599982156757774973817213033640726217789962907551298312065690327505399614397188477788050 -5358645453073717607933338901589045055393757684759513577031387645637409945004898936885098068574782470685593557377991753572387018 -4706013177574137609818422036943485331576839280415982210652357962891328244924452137995064340517319656166353370990119146719861836 -6329505987385677903166233247184756000826411332850477352758018273420949926789280244169127178212529891658087198774279941207714390 -1511370436371213645604523617727839098695940567432172783593724006252095799407942743832278211803447800402891197805298593983426545 -3022464264863164058488714249339098231034997516428008392896433897781383885524218363385806736382055438093644340647396074293733782 -4501101178543767329620885826562169899606635544112652117620964836027885674519772391619599940633712271697963657935450955634525900 -6375010018855545330452050093482150077359764898798182405456683026765532905675606074372556178229924063905296358938093169081598198 -8483257277634207523851089755598501951207216079577367620523344599612671928857960638762403403726285770712060711385777082614045533 -8256451384331378443868986535492407706512110875647453641525322621598498933275339800741719049869908400644823204415096675208523961 -9398321546440720870569872262936542811668490033035472870984698676634686438176528523891161540254323161470512628073841436944062388 -7797071423711013392162710663609589623668119033549706301015274145920933018984092472146696838533855941884096071158160204252589379 -4261414209517939560365542448209082777049757262017603674203052224119028323101718025778556206926756191607192650438859403548542695 -1466289085237622991161102650836935979121797669268051582725264475273671975785294342068745493084363600896894177743687712147368123 -9181597431483593985916614200861015600827448233462428138664038851972627461175903260548893373194383862378492912625568875647273959 -9257826929421951643418775488431746425388390160227055490497812088985726596130954189607412047036836095076045019637105980229125135 -0051088814685847441269344262748461773674703937437029964258894662753422844953047676499113437643607083551852374126649110465539183 -9719703193787962011022241398606941751940065229976379345648357311141518661729448144028369831751739729767389915436519514302519528 -4754705205114290966030322546625592332320235853494013451121235653943274561055976709436804717429731588488742125670116982095506624 -7915307785043160782062481393173682663021526076353055172054644485732609943157735268019683657488875580064373381138013382280006724 -1348120551409342824081918999927191374394809490457882851229963796819461455853157081977254041113267197827298870478281259789531341 -3812065821388690082091959389908490155933727232741583927718485507099116748923648769090644447688804257458798099398350465758474495 -2937863476645119756329442458144939324030284617554341982278719802555921010666415523070911564773110585363083165465312366738827231 -9179756558387423308702990244249813252311594585173041207944901196092166608366163256489844497165091829615643175666074910233765563 -6459378049219057988171618077989915820678435345205197081776728544947416949166191536837274889454949606246062308000247423136050336 -9590694274127077084581072678020481871509177233838867384578103147792423645131300534630220077747270144036126808318115046320973761 -0633314308759908977900550446703882605141401119276147159777634200043370016079844602659915203435729306675829065339742126589258345 -1889317316284541412519941066954231638054475095114130395821846044209964998882207473650227876029465587838652109009674311273487678 -1491201614697119361909884499515016131285970573442170426537294317539659125369759905519191669796894139802704690179128614455530965 -7312991894729010255958350913145958890797364015827373553097639087944419042322472672141767845335817123220952073258598944857610720 -1824787410780276399243095677626477613009119292679764840577779945279669981000204638159164277233130499426714911295485793124165881 -3599221696151384019695918691913331345308102473844702422853474390767392532790500021180165318933884607342905862054572886894689533 -7797578535955366187957171752724494492272818965402286074464704517072955420112819202222670121573771410655986788904078893257371168 -3476992235872213742357632857624847275225481432286353014243838356580086497628026465199448029895990288276361657184717108337186384 -7666621551208709893696388991140973902647787737649797506777580191326933697405674502023865297304974748640809764705859758691017754 -6544825495307606554357924631329747091007811292348124154567821317868772060770803350068486092232254680993513246201748613742385991 -6866165375349816659160016479507285079045466715841081115993221601429358066993308321907376618487248492349626318569998572862307928 -2954124850369537534496609519161469912394832203382444510628904117251662671751490677012621979800464348066614680001698354593940135 -0193499508454379205949576005154484505543366786538069430200252986165917146991374529470556848495722371613024998552648030029385354 -6300091436093722524653066330745577837674427424963685925900231612998930766803747751089009018089480544176580489192755004987058784 -0521904612577648015929532704786690696377674858853171421019639025087849558650954768145265982042719739087464082587058116910545924 -2995811242507764873679857631100733041164546962708369112790103328792294311269786039292022283070742012101949352297665947227182231 -0598910805263795572231168128611351576632001399408367899641814748409013513401170040370795100905848171920487777572798457368620639 -5688904469919555388263250672582090539068694827337359228605791133091700320455439594271216798892203930514646320638691425342088585 -8515424974655688512862245643897078195523156507477939116050565619183311712594098054858317849757764852624936019665610738326843069 -5113156995533534391502169817952742278838176530218998980784387996273419179922080679783505603663683376521615832986618021979492127 -1086319824275441488370793880965889728722603318901376609034648244802721809098732997770252918945517263258021059460064891744542026 -1590099478966776519298307952043122519324124336024594288380180094489716784777893529727657815697554594607079223393500535902031225 -7357641282650721485620638312466056185406173433791953981763404688139736645500991900862738958018055032882772556895285743906215162 -1650489828204176805947705046005072475080530548765982426627534295084219207983407930870882583588364915870597364960371942080426209 -4961456796449042167841011430036294492463136865448894885627513655748299627165496853898722132001299392052298889154231937053221092 -9292679093929935825812492666003758036634836903177775163898869080980492856814299385978432904050294518519563887081873640579238706 -3011512315941368814678516363524198263828364895022582836616309022291899256400386653229758118495144379060943664767132561955347093 -7994582030787878507087359159314617931782658556072425334054967106060186618004693028010903789497198319676911594575116984344480865 -6353605238667338186351983657599555627480760430658384201616896420757729940462911589836581183482303716623193619087127242146945823 -5587627832512661518234488087236957525879895860979271923639746468639388295216331627000259398878042734326931204663332399636686573 -0672965511904852366825996694902980930309250905369947812120763277890579450585046143580711709629358309790006863408567461111578107 -7579999047873643551313574662014234072727914277127742448350969386406545430650595860664380236476144348769728322529154001617830780 -7768720905776990806878980911933213548469388055876623124525549575902760321680062870410042191450149173795942693780209583496274718 -7500581851674961002356261345542689400915034872242480502581980604450197467020488142845109390383270729947278076491900579496982299 -2129690101587171429651661009917402506767801016536968984813683892465052790569498753467876499730105980696506174974591421872344509 -7047018820490212289369541715584056487037206133357581281018603240803633328043751106808274944483601431153046581012102597333076902 -8327884098495349573228357110403653478827808473415101824363258200250596339218554185491862934594792362506926494486378909931564949 -1740056330174856891125669279294923651309763604203532765617783458152533228430452541997637109088581841891669514331609715059758968 -4197367157825328214419156751555885819747937310581379204615061923091469679845199014292435432070508700023932922581376409143095993 -2165125379005342133424590972755612895768392827051354709297231877589314385116008084334202246281649011825694669304551295469244979 -4509728839111272144692019658264673559690649474179262646699331625117318888277703635865926266976720285188867979085670193580891875 -7275477166128052446741208082801962510905074668975005769114065221711777393514237422266031434604625793424024653464475330291262873 -0817046411197027445752205700663441451626769878011224256767794721900542448009071309280703954949009199107668829370562168637408040 -9787763619368655981881242490879775693879040221802840519661369579710229328600940826654427779387311550329699789056384531195194998 -2723448594543172549888888596962814780076107260643457934204621584814413545214573904777806106803313154411323713368897701260407449 -8000951726014956095448794689858919573269714659606606617498924039765372767236447524498222062645212525371056330185170891625286898 -7400634580995643373473457408678165048789850829161271772842260046851336944770097590727744202976687517001530085639423877373364847 -6131960772116097152434381501203781193864171006504601138647645912125860654370952251962787439280635180850121164508129160794934976 -8194796768491845741394186667260815254416308027847649620467735109219757947751470402197659639068665099777922925932497275155739813 -5209664008657449547795035193830830788192397569777052795318568835532699855624203558168754541268446171707037486010417690857467487 -8377976554519991606329945190868959375772837211176688945495596448296939525690240337764633216663866800325009183616688088580000528 -5192787146614999641495067302066620692218333148024412938301229255333067720338121642154391246693289222550082295681213541896998006 -8136852204722481664059335120578115477689164853072624921786692464359828604653937695373728935390680120663294293493176103289690254 -1144435038869128719771735108732844672639943553994309593207501141582954078007058121278827020008994616209652065957537243296195065 -0970656298377136326223895516660489631269402730038663872646787518014244370067321464425302758563853474605729399708299081361238244 -0240779629525661769222180612134943092596901392802155389763359378856115803129803025504659400407739325825079102512268146609621569 -1920020849630289059227598433172661405103577932866917079329997842631426173495463282180424424558897910324932519322784595681717233 -1144193327801538649747431966846093543676528159861420323208804005782998653152702827377592130780075570401214786834816747288844424 -7672000694647648348909906701159130777349487715893771185782393615180543175659863092467698777377397102350383295634648499503885338 -0495630306491592179663093479474155305629241895069310776977867647781537028272341913619281785471238537339471770501056143359192572 -7308837601725546836619910084602280257935558569169920782961917685472285154488319168403367545336906857013748237755825054290532894 -9661814404701500878628706398803486793202614438164625925828662516099882010742067149392493627954571934045651513234013334682059852 -0312168977557161126723210896500911203207572745509229840888786198868413208045541779692684493190694384662556740715047630385587973 -8520266389063839477339561111091620930884162729262785462465146299021058533677470756448900131157092740484913244873616221850614852 -2366892600338849323238354679971377016007007696850190096980341739336594207986799037588279474367471064265784394163814443326245256 -4911325423638475961054407270474262985635705119625522856108931080012973303196967168739739944802380176010145279834846779349851937 -4257810389850148158544144932315012034020829622092429506782620637342284858172415547207765264086812199822149360687311593339577078 -9708659858477940738903030251204629213359548332123829955153191520032561522000846708640602917979387525987407975336034837147466054 -8086930623135121532860695594083516763569498334428501641151038532550501591735570621442476271723263173645629791905305955098548029 -2777352200022791503781001509067591047738954816120020121065054036180446105221458464420759433938919480637654297994424050557216733 -4557327979787779116307153599001198923403057470538783746410924085722270113118125208362788921890249447415394699853853075390237309 -4365884384429048241521760483369109759203884801440475321881130286288789565265074980716663859447668954490193155283240957032437631 -2400761044210689572007006009552492603834440745618264315468884643834376009957185817870038205575856137576307667033965516109840180 -9737040417279915834911486990827520959476936502177184234720809847197612305989565105760154340868284644203521456078055612096029018 -9781808678278846885397125652129297898882169803910679237997846224593685450165476495607070948013373905740079438009246883252169515 -7739852920294363425633218123401420673829295163516060432640021373043583962110762867984429100483394773437741380363822754539046324 -0883431115446791272406513984118239461183841794345923431236238292749873478934884995894017966307053473725524062094771916898837907 -6139386014396316197310075826416043562421564641768733346779156742528616231256212666391070181857228107399708720583287723130892055 -8564495834035892079724353995520557131026025067703760714350598180164418444716168502414005579666385014431317699567383147791141861 -2311406885413424305003701677451722846677377710768986204839545491722958560065098823523147478261771908820851989126482817082569115 -9602340226869859614696378992497033778548537442058541618817057710375353486743749797455027651809309416058045995383235110379798461 -9628709222162680949961060074815226201933096277151174310696525731658668144988286362519156716805236829848685383992849148064465103 -9735346812240729849346428396581006547963793149866858949294858741576251512791660305611651687839731531035722282235292660633788691 -9538042061855430905977346502656421504814621398394569363683719060626568625659708532699356988708790883640172621307887407813836364 -6305019984976325257337569429166547690694053229542307273781369534773313407694544352991644928363693848808898178142342306260087117 -1805704646504085604801764484506100460470712673185793035853367748681894021658904030806253312188697070560965442489042489792077571 -2490985236219600794455119570755743690829793064352980492197865586952595298856978623488801799239792633697972577551080842006688049 -4451839628325290929728145285465077829042998419941805433824084767085375358192064592570165051059371791323138480645291403839150350 -2979438318932849641805788421308077401361414307061802172300131888869924632094305534351210554801463479850767128364891176166829465 -8872921500436141106816138238492673770588860037153870977927285412564501357209059187194899313386454964167921543412282921398037659 -7636485131279033828460677166640282160440679145358607334279812434544494120552175807283800350790566307285400625724030248887429340 -4680751592769547019498010899871228144441828285042700998685644394131763248290312908027689367430340488843863114128754770298553903 -7371408142591796865710653973046215109255786437157352313924442478531290092820677548020730647005559727973069973416903159076053104 -0296204614919758433624657596498376245793058852298819735885655373134544548701918947319286620768915718576221199382936906689136966 -4514861015660728180490886079334753171354215683899059435960727947953401618302867137487819801076786142685334483700384896695954037 -2862199178730357056510866292501440152986864077701674864131708177930481209373944027435441136206079828523990989033623289788521958 -3232125855905003070647322986167904784829417211608519129888545490992306400854811324029764732798696566611533605039116218287211064 -3328048087467522304174357185558580322486932881453149442008314359000540253074863751401069345083176437332910631591438430165816043 -6086110405144344067589331082608930355326779125945673110136783179380891079747539440654925994890579005806127474614509336396435324 -7215091301714414443069868776064064504395207482808517829405383379414684365187710912963053526301972343897304816484149722894728342 -2436471129882505774580140273945136647748090634204279933544155848974105586771383680141377892142181597367201114241681187884944773 -2048644482475865853030326358622959819676030401734261133906361439604280224652350627125083350512410927294034793877892580606553735 -3602935472072437248748601211519488988169731855279575778400706577254567463123219123896535430970244921999769114868734160215986062 -7783657628040022836086246510234417653915945131795351860293548640058155931582229824232337815003665382949403984933860425849161499 -7472148054410673792713655531708222900140217409627089428063743914621052166172358563633841329724840401144427912925448192355476917 -0347053733535476550133949622008506766494989314867137093489295258193336447136204549399148001892481820212852414088927422900419709 -9639078047884835538046942482094804161605891002036742318046907668105442784580061293938476627159719249453272549683221805416505790 -1032786228200415283294994910054729118848671075845281886209463073179728081317785205722424406468440642562912784973899656483223098 -6968595178017412521208376863115552570593292656764798517030930445070380603195697501931025439581550142699705302804245618724490111 -5453654356413064906966652124099905267347821364144623020142756809037695527255942562866173971391249170311659304510623511853516154 -2732536262071170918681622064325048337837520111884271935643287214208402090379942906531363266640024631740298714867728868944222573 -3147285446615157276563228822132897878376378847350594831988142529113309891139340761458000809351957235529902167556281922497506368 -4354478919601617063477169153215969873898414180925342349186710519974948744199229908589593712396666250201617868945303106857533139 -6882511013607261756622150246671069745871933132400620002505947164316958006187665439907383822926483113411891198332966708317599278 -5134964407461253261959522854559873663187547708050982034442691200555341283933873911454057728258698109359806239057894517156699836 -6450666103279081547887551782344908272320062944069880747023544207556937435206656509659651679103507702121341392065845820245893429 -0369780371537429488949966165797604230927289652620569227359744404503741546226260737989821878745670653730192856868459952515531054 -3093345869807819730548713734544643718538694047498494322996726007960107180939172720629651622711868833028333458719243526925076960 -7989599203565850572942150442657633965818968052176208211383992661670496993990824695668976291478797155039216428981397014999174383 -1307119242405531123217610464790254600437026788611070015681427406612197589802556879143899518155467294982590879340815458735590885 -7771734336463859132744468610337712969586326511610847632572701236574882685603506834926412287387742247547804989759024383729486919 -5271411219228882208040644078382620627789689028134461694434130394862996168758457553833289759810275955726724366779012750280404286 -9512730467284947060387240979546511277358650894416265360099607348235188428440048072383761268322342324845297508884228837212297345 -5520192598997086640709924048681358015575115024163991652287513881247554854286841200564378110057343645081513230448973403055902132 -7020240592700662201858752560247475343913953666111892278775820432145603140381127320826667055090149454135269196723432849201394471 -5046712344141591199667738249797803701007407397593500840656021101416075518278507896267944040576213675962509419570331142339223528 -5009173314040221242742971167778009936788547416346651832329001334847054317513290947080798012432976916063888435394522306337209156 -1366848096908460688950147484431870925661107449748979391978321496249695501280906214711588783547789400280700153426360634008817145 -5032320677216082097266187853807984797656213614647275198101803139086954569491022740666386321968921335192817122277500443048900363 -5004785469025981206660221297903847696398366951138307001168655587727211921402639926973173862035209940308951165885978641411045411 -8785398824958308479147867520302086574154227898640917802025901098713415060910391722736844682709559806414137007346900318504025652 -4829177039724412998798470463159506613910620057768809973408365008034259886542242550978070824664073713620021235802691404413458167 -9261226904113620784725763761828029554734562287674270893824453948307773514334280989553881807221303459863642843519335273228474128 -3311573735232406552245381370523373424363177967581228254334269537766809380288366330679697723673023553333593300509406940840178257 -5850353980111617800710390835159343131583882096987317262767588967118575624615788759557354550955443154249258491730584290096574346 -6058742867661098727133777961247323273097355895095662383648934730004254372357455111922489913009492093823561131792526688980983778 -7068373836217667990225856363415691473206022105532884987579074277226993152918608006384495892970483440333181267244554192632887695 -0375929236714973683664267906774009903162875936131255110025871545553310661098253000439303508717945000859600253447780364023263921 -3589236909622208939924919255987333064134666511205037102476749734554331712415072770445515704120917930961110839990243914307170158 -6795584768746356073781978623124211251870230688353778395309754364333319536742360245765209901147398777468379230149142523181377411 -2729948487677410474357762288343380948554393380782338431844676175646578459942584025062978984890983296713845183696219799180782039 -8853156389861615819589926505138052323380550759364020828050387019448769426662074170464533329827565869171293278882331249180195752 -5354617268287092363055229579924827016859348547054043349609066878817933385065188678139799271936447212380584467570750380867131343 -6669574812003056132820086160683395897628895296098843871784268115803999250621428898234509785779912888254113882189729913124138323 -1094710833263258542617692112795417986473641110466966207723302828445199198995397058382901854029835381782441946019335577334721714 -7084654187809403875061887873785967514836739155665927380077234732823032340675248478794617424267309726934964316167994411232825813 -8586810770368457480021270214945101098418804122645991758117744041940927633232985858835902473466474854825024480648895385708401183 -5596898921066046808429836093228050083092077217562084369964360104846761170405526779538921555848456229448715495096371173722462344 -5660195590159993019077789825004164832246820538076625410586718868028600352830449932992980717485232030870587444549082470943172077 -0821935416600837395349048851468072663127356309332941980901438793730151587795962214031501434310617749617534269164881521735791175 -3042072934705160703532059769445721283937901499649463824595439982424043872605434635393216517511777007087089174560510963232009367 -5464155662396168936608488040261163576038165196682279135320764015816698209508887367606848299565138365679605265583581996112669276 -6753095562768549798586933346781184629087517744898743057935941129179204236737611864578907720852163937289062427955626269555922129 -5716541079272109791401178359438691238957049044014297693164836859127158377764717929820749372762244199830728156908190474636597721 -6048348633690063166546832299456572409599753235001536610146572139811087134501881675589119526672410909520126024302026020371798099 -1171674402450497762501699459068107617561003253876215131387056282446344211385618131395030296408469586922564210025675216461987907 -9312371022806876440175927558224158477356755411023006311819103124252221341547172708634888791607917037276394431911343613744399883 -0922159956723896116809200304280546821592880397796462717485456950002852867129487923589665229233372270334774238944990617682919310 -7658709241655408916654408381196074058493866541161875193933692025333882777349795393761970679827330490202099389041851596493234215 -9234545178442642967566968436599668141535683259923279950462781030512766827071494181783393026832191674347556257505316419663487762 -0041257342453564273568929735796453624713683399848511617479340816490608890963355058355974856413150349382759095918170362098854394 -9592779304960316507865578967321355607760068698329045954497816675023927602619347677723250166350520531047186145206536424990428337 -4299316161376269795506896486995922307501710625151467203920818965364151628354223037516185750241653836563366411298238504451597789 -8841671421275735676647633262528681899530392131503705721695449652045887039670882496194478043622621695748874619557992717633215233 -2073059696519439089739646800449388322820261958926389800326850308700850275001529873409140035288149114816334962577827586268363961 -2490360047432436143344657376283381577226551875079136121637392911221073093866166045906272906769849919522908370281254710635409730 -4974848754591262059988003622570276863287575164608170178580822963208162146400835022943896925242423440936618793540028102479004702 -4372126595413379264526984770633204109208673880518625238463206225086878596008443858616399507133771134539070683384873925072702058 -0639171273649854719051709551224607779261350414555233764709993649110326667200717789312129165461963429321431418833445603440663689 -7186962822361873750181210266660607397813719262382253059434948056476254707273143420389570046116876618519383113357898774377253891 -4319529017033432347952439153798524883464591210553274851928717915148566352954737293867412627976883192261494139098284868083014649 -2622939111808623590774562258070588172127827495395694013730379591966886930134915200669202327099882207686441261515920355425526638 -1200973651071533307294108492132851108586204275141332635739794068695424575790972361088170979623763207458716935295604008671317983 -1251374850775260697268191392326213755565839271682628582402356668458562455145193885654924842502488021956636839087993338831884363 -2092679910172237700017761223090447686346621171455515944807634834063707579619074178681232780539980362324148874096831135359068248 -7059799025589703414119220067452626516006331839767724497907056535882707433149950178268364082722639297792594500281095862497786970 -4542905544332920101592075397986385645511891063856851014878633174032148021231620025882083670673312205077519194573640381350698919 -1312255205389657370322617251904525722465432117955235178041221031184821368449334584954069933722375723026079372281725777733909489 -8940234530803425309074547064952811642951856360280155612932727691967562499759113316867977300723413954039644096858319695187621995 -1667713304364140592650059312268785120415368020836414159057787321290823207568631669529330852196553357371986318924246623685192637 -0422089184234642438098080557484372830069143118691288742408958852833389685002956551956492581208496774233386094905265339874099483 -1677835356907666147956557529262732608196197501168021350247232245111279150809917571509855702652690905689682229523319549019678024 -3645155615476272052329623583943381582821256380614894465459876556622453836730749021655688760168012160726745987877981868221817319 -5647755640891329597098392215119820185325320967799221680909508299218493251878104661039386657485694867555315346235424508828545406 -2249500944046395955203873004372279572553883458895334843433140571043474669708074473381457065865063499709405786900325552248426583 -1230511579171467602223112925195512272958191569060831817009891427720423564097069405239471201694564617244826682098552152177059273 -8469866721000791525531110152439789939013289745066720962189402891838096512969001059723536174778699525713458075138245336864075519 -1296905270266717168150361331577154511349585629938472384230294812334459038517468323643620870384471376627488513753063864443527971 -8484849516117452587091720711551100043539596219785764133452403530020825880462282298393651618450654255243582938022557870602084123 -1944353914349184905366261486479354722961723711488366658700425467290309892874206605011693831609609440448499484127167958439545979 -1904342525350793098590501390656028964534129323617049186915074724786886755773131382892183343708636631327982725884104881408443775 -4047731221209068512782993439144246721190758070966515666060478086425710216870076434550244885851035049595368742260028400195490338 -3375747312957348876639595293489234210411377963219380216708693519698209655124852272292375830483071612875799792380567345928238534 -5110079232697543396393866568868109799067673989898575725771625847005572590499345721422620239447760726870678880204127450730489419 -1892883230935369730591390745517921975081616548082333381141791553938700817410468926449238904528671037503779324573001732065035519 -8395077376884962568002904176016991329810132526312963614723727626088091850321489438757392596606168596638103913778878129196298132 -3938927636631738411085232552592623008752473475775738216360990000223836611551924314564820835426069886741001153829625505334993487 -1299692449183332553204542348863840181665273246414104121624684776356638436277872632132123576236177751436546351690643540205371844 -9194356489958293805818668234623245496942584158879649161401045859846964460358471563904833418667460716546730472435403875780613403 -9275256836090272445757731146730052254532930338266683064726986679677894399506235508548851649563290194895324537517696553037056936 -6401315045565945782629076626066813595555038611734944119511046358367624104666208828448443470577765348785145599426526721185590575 -0586738484454531185743029468713911469676776854865676690022624209621140076731906638884334409090253652724218159918793965233464039 -3171209020852465810305033445747086308509991604961680580404820907479024353374887015602705890939142087700418451581794807689385348 -9424311150932643701645157338987499029528852262438813754400403069738023146915551968014972578206454343730343122265559473474927849 -7742146609950233423816671939328483772283214892322537597846916524424589673152890736557038920458731659652032921748569241119859976 -6687533180189782962288035952098447575892236672807319984532899523336137857362773056256776453970744401322852572058367357860586750 -5112973080188345114036362904396465766939815911981737447433859679102909113460170044475876180448426521815838110280974934802651453 -0141366660566071877771992446357332649851216791119528638672163150044856967323023760152081614645879961910911227845879654515023475 -2214123760185353539707121031098580866690882823675580600794715047520486504684525675655152270550399135886572417008928998130462848 -9223973656232181173590003292639341133004977532862200821270596930208889426180465089396056658959981954090935260888619248916061940 -6623578698318166136431412779326115216613003933902509874343492190835346614403255698238178964137991654202739789058288364219841871 -8291158969189181550110191401002122993337707939239499805961356987899937471416091612952104089354586248344316163672726189677077009 -2569911973118347742318591298716009672334442600647034815935927622454202539592391699029450660978546827587095337413939180709898411 -0899648100113650188435064875802395140965508050973328163902047496526339571954451436627138016940395531683176282436292339394573885 -3218116539223354243511329358754444736017570099304122222814440304223163469524526595019625005310578387024223128529473465323727623 -2903847495538482030544840551895363794476928236443136637630260470246965452066473119820100467512281726986329810864283236603867046 -4226586385557184936270267709088518321173404628666811633771213904835009960571786348833009556180773685058946093743512399598902672 -8536593915600232712348175092402812063615932808932457150254760365196790780020038688785606653890320304533826035350207715944668272 -7207307332779658122899268750088169215451053148485733154400660830345046074837509653982716901490942833776007996597381089382249055 -7354364139715042807616100729619187431380023428907586266528433249618278407719620456619422594117403277614144426686677487237152240 -7463017222778211045789643242204755641148330540930800826901784405753146374489626927527265867849180494980902054821139633747003818 -5151230162674659769071431499839596583910959703956345024479063722159584629356540852497161935430481786349464090482420412307760810 -9834488101241849496636150547202745300929538510953947644624667132590235877398283748992791388091916279125999482122365178401663101 -3799117737061812716778711014651789301773605485731280987694315010080752800132070053513995645594283497896886041897544784262244652 -7787706667573783951864085352707088626343810856713494836743287556709150843482692271254078127357988781374166954894723733919964351 -3850833609175684557920955809259004150766406752693874551692602542748508158101511651908521148570349768720243116655926752800025156 -0542333256075861408967459343438031423694963841751597298639419078331767590705140401244001636510150856151990464720632445051520472 -6303430699933496407768275797041897577889994294810383735293345544688537126863233465001327982318529841153751728223029693637728347 -5397568768462052741831355049132795323985421528118062025164276988946171985642590654143451292287062379578161283874235728279748519 -4640901822963272018953105436900070403241616145463711907565248533620946580204196365483196723416387548557874992063706490486368853 -2187665586968675889547896116950223441017696539693810802819756256217188102291391477467930773393197219210849036472348714939348493 -0530870138541801269405772003173391922440292694411582576482977240988452402062182324365937231322664832700142793000599915699446377 -3232764179605713808662558293727950897506959582972158149863534091415959234408922619772945504672047855130269189456164558749700864 -7976387712997851037838832161690498586021679479533477214488890351913481087239877288703362839723676811186594991567854176580725967 -8767096970476797579593159059506720944428573124512821132135870916546309651522551842044412513318859523946351494542237948488449896 -0718064204159475781113170590472579807866358541733298234646266805452325502205676982790448617382183104529620072495546016035798369 -6656888096932816475747398102488120987337320254949271905969490909227960204913812078261626642629009104843808070570261399892364887 -7197928827518406319220242665874355187232953000643123084932578105682719648228431872207900564999025910692470162420939628457406240 -9390054304943829673541677221189814900027963471043254648597886086990795714249446234111674340418457357710907778877224567169903636 -3047190706971324195888140547475741620358462920833528017528636158028581644462796976018091635090361132164631234849610385434473088 -1299169151001233913629789222426928990506746164121889744635941525381099603593944992448532482489564134843216370953945058018816372 -8022886634541463283701288620853613352158026264893049477075544241214340204041747957155846007535087712499320675089565208063975842 -8518974453812680488184297781261482966404248280615326837256707090751389480480211355208009414536208955423929547041219391948623885 -3604467721690594055924832819820324481035373705830034807313911053016213471052470202123999030910736617997566930544442854033269439 -0783963633104292458209399376532444272248160361826344666316224873723641667255667675127680227315908535163742986352235015659049712 -4004639628899564002311837850986616952858773518487977784208052701702476955042845648511721265262737849283604073030798668836277183 -0862408653011082563803132060254754932254909982790619138767168477417959797920610077885997837256974272446346326081237570982197007 -0940886136952306043500899870090754863364443344376526643707265847999796477272121932881155662360934605500536289044543909420287159 -9325468416880604404675394196786101658805312863903480479928341990160539724867416343519113232899201923506345096672360143197907320 -7602604379899247751883206653536848520843218205588950289513511227638017895858870330990465204694386615676242643330003217066315632 -0851199846447079085502271034855714656668178101657497639831079366789502032474686387227843449343312220724903806454747746782689424 -4098848471040002241791388735422021963275960354775258076923928679254165040693087908221190070756034164623860222301010088075103056 -3055192757629057465255631284293545235726639464473675957498678493846951810733281325747646636144880693592596312740548434768830767 -6731474905682791005984276464714844713588718904361218261812425686803684106123652431919970410078795392818111582997268429659349585 -7924410389518202685905806688713577803625532077879713115752972677622209346192681858566234259911076164694414416704969551453021886 -9355683562980634479815919874568756218379958083872036318959815690363034752884522901587704723069489938561066700856799286608658620 -0543220462343036193244858851552821480362000689940188453022451557344919396300863983139599553360452940548134852258624017234867371 -1067014527356580183151961289434647684360706506035600010429135039073802230973345888131418619960777100132646812026883383699827970 -5359069383361932605007503288578185157851793814788353694181498218990573049785293883804780055838358139459377587968253742572072043 -4573719136273381835268729540845328454994954362222395612112318303745157807658681724375200294326161779060096534923740884933625708 -3514458846264455850674231783280205705825729759163794635971944702176098831501306476593168602881301267771422854514181550204581778 -2814589926430879599930014687698610766303495462811227979670379853246555977897078815634814137435467174275073493314846601851573261 -9109412328394243903990091864894855454386078755925003658916610663445020722891205775398782367407839761338086985543481077581229638 -1491723826525165284311575346657279958318121038102570973778417404071686643040506005133105712555305338320966176072017676784923629 -5488218241739200538202629320385686355121297434909655261539604247574676965715827475716615737941607238002608903015929093309168488 -6222350309549145806267049598652344478433516262239158892817022906333942210072994901250459132730572231739319182532518293889630019 -8044072077285353283240535057997955717161542654506209603492744952552847242899140500411096612225095709028876598587942929972397072 -1885954490526928165806858149219735696470308645981279734404025197278823077339850867123073835557226495747843398970587652389656636 -3636990744440216604699149114584326945110057025978680402356462092308935861145193409488632679598241716104734129398885084544095857 -6069902893386332364062130016921517943943574898468298687528180638591233629526536463888804022514538460226447545474670300837773440 -0715242925233223925302043184620521073165032928562060926764419538572558168218946544243657541925010495652673050247406203961490742 -4163377094941935791929068796922863289449570870715728363127254502097952823099544701660693419650850191571787642058768071578191335 -2362149372830570291861457450525257727016337864275693314681112878356465000993320675510813633779009823896594571255519867010367760 -9335339409871128425332395511671431500329529218909754194982323897857550540930935004728114503428724192561034251245345901549129065 -0756506273973719264925319448914314432556471353593665242663682345436151888535592338801660197397976918922142540903105362128344221 -7296939654818049488767067190718755957947538340790260392001857532393622868997477129188922872359726386124323878376837617352814907 -4078579999111217939011699307760285871218819333972182125286903838312055662520500719903656687016759241817857273468272683917688574 -8726333004719198815434960721386959090224338905967680668744954339106442434132414526246207631805974218944345895924595868424575128 -8809968439523768418749746186037611280882890683322020074536396621763557542013569567593054212148112921735580176883820120783267348 -2537069038616920940158973428724068585048795501013293376681740631186566951229973336427931288891824421015980577224523633941036996 -7974808176187279818828936860482106588007126950454089943602952411737485839990023098877207814888492767150658782003308086338815157 -1588659669715002646102364063331711646691061797936643322785359527528662208821134749050337274899095692843563066296876088924734707 -4549130202526685872258479111021810868210332005793914145311147798812593113617843971880716197778981371491177307945521311901222788 -8560297570244477829694687977784621455987068942424983136944870380427057052887779787702603030649524780263375021654142024115901877 -2048774313776039429808088171712835186320571466269472744364892701622816406146475324290364012640387008030349061922998372137187474 -1958983930518040048400877463606239970518078952389442564587925608445408847664043055091202257080066087803944336882062127350978604 -4065348283423540496042896789726757274478123900698244046915478972359449728574613924262102889566496871444268574144572205450579978 -3629438124450409423602990222911509881985430704078927765904795404045938118161221397917848075421341126252805098426191320837834521 -8085534923914835313209677375813349364458599796275600866316693139878003025545882010477316042716780306226946838431532163667037127 -9898915134568321964545103764074604849670802062543079353666823915979509779221620608508897413582424170944308180311897168957048017 -5385323115399849956058889239701492340513864492761797303099763383900112373871513361204005145800948160917012448658958645510687464 -8637322858113048873422361029279103210946558131854412009103898341572774795544194370639320402689943405658836056138282160542993169 -3301482949893831756487465487869018898293856072780727019945397657149862423574816057140762598392679733606145316506298182753363157 -1989885295563430148607778298379580655148124775805236404809749482897588166275331919278290911157248463196182871139898936725797368 -8850340804158989499571102548588275214111587736824329752538481445797164191835592201791780416442465525643066854658921528683230761 -1421812723062059588410998478367550671697961940333154251595442093624642651562126033425248558504164225223871598921143098979968917 -2477995193068866106116650832975646638319811948342255800290956070421894468168681224145709091760495793451121243995417375669474096 -3150729646482352886032550446062928871539222609285098660402450856512727724053427921573737445175821849100475781418189174380995632 -7046750620615596575236877490285020288321290904270312430965440858488622217217317102253600290127052465317624607416177498383288106 -9945695686299042380678429305385240697039293151977430358157956385467140053019250720885367675692664936064594234820657654969335744 -5571751022714308898152825948152037875574841245733361004625842517428626308101356793475497881525020804091668118665745094943275801 -8608762448666074656196662829963227928222015907465782465504699762597437156318531429585635263586424089541092855892902609967867982 -1978685830753176969518395838040278058667840236176435782603960672407003909222439483538760352906908927302768494238355233209217253 -7074071920319953536604510843365153876170171633349491568232092272150542222706006804946809770825099582766752656052960983718114235 -3280496115751440895543554193849398007467023324006497516116534251153591572725745514291959829061315518724947165745450390160259001 -0601737046591989613120616719919874653529282948250689745032606820130735453268070027901333295387220734852357272804293331117523997 -6136958737937467562116926228263651346592589988767235293060122410789132148757897567424381946719333849272080001742385628150689944 -1891595701639675010992493605507619576155702842803896050077803395482631144748035073236453571286662875633494080865014296782405059 -6994138350962374748911276067098522195781999897499082597900135054301540799702368264182765273926228557006482725202228009397664985 -7788023609935244035749201882811852725625300846793646185552122933557882704452555648205100150340311907075711931570895497802594450 -2197653103798752067286172607092220822596982226247423576487125070944191009560709583893589326623076734376750057424185701225493266 -8863132327252007877822761700057804325184406486939470443703245734365105772001424789573894937476178130538608010471355446757855177 -8174190110749058109791874932401725786307915411703003043709908238217181652029602262116068758446055873309569311805547464496642142 -2490958747068677929992898459199669839140241121204680850335549077174567238373970308977898462513690749136086901700597984427253536 -5982357462083434284507903055152940486985159078049952746161034961672224995628192794860546561549979398991180455860037140923248338 -8926976775587697462174304166383030496921336111150196335640267063653243971405939737115496867091474614902122111713955464436671112 -2328015592752422584686538755738383160041067711192111211555671470860520931401458590260603642848665758765427324349701633338120285 -3238367054704111120178059574962944110115171398341904274585267575082605150464279484097073060481753901121878225454945359042570553 -3450237761306126967240618521993384597368444622149529677366929462149782561575513795963740446321127465963106959992420775690369312 -3448814725588587245567368751607825271329254275986408132599484784341832975302652140521158378926626072460485474580935278488412601 -9150780220021887436734602033408383688852530542191765389359753381850912455739194414678686576674855611507802645590418679170889751 -4835292344245385826099978982021385208338079311915794842181613685383986799333650292340449601221579759524765161463912861431586003 -8364091375971775721571844301438463624297900164446658688640976105663184901553656708363187917609334998277021278755741801258289094 -7084708048206234641953289421943297010794421803966656094223814335341165874897678668246105857901156960186097878571917343164253048 -1580091826012825586670694920435572709977363754508123881333362672498821977048126176623956391025928031884064853593246953559407401 -1343143393297933839473552543351834063051545756389274017156011730389906161525821950360013682370064447544881706475110217230969461 -3302514538150761859786668968377489515133804300482090273478961905590177116881654275768644498073647264106408418864420104945624333 -1455642109436975199690456185370628722356663838058282076416293074142932077562024273500214654758558303856335007961702080005015078 -8063031532965823241531821249811544926127012157501395220835632529512891602224510304171587094059291180949555426978545235398053558 -6792060710713434110654251175014016166953632439786838514140951524356192499726146571336067500056531834668571621898017480292338282 -1437695510093265077864080367192602710341444418961408220405302548941539890702354912153612054318858614633735009858764482449040861 -5181414865532338468286437374705876616670683310417100729198121447458573292151625305538384979133781114543503822301014850960361423 -0442509889959385737920714766510641471461284309092021412176656794047214218226892073311469169814612693044014585717564971417728218 -2325595356223658506960436649084028083363095352384800259697237546709925440654926883086116058532378827751785516901620186132035077 -5272017869427934924377297497212161665902064352062568107159660976294283182349751217848859566575424801083760720335160297859673425 -4927647302447341405487506286250768152116103802235113601574433911840768325925117428685709060725568588745725091307806563183578704 -6009173829226300709392490503960716312095637543299322573027471284752881663572097511651811613598957587604124624018835545870558611 -9874256128717490827444943646188644499417848153072863603454092200052312279880710501340245614763095671533551439274986414901802322 -0712116664532492284027602515056442554560965687688409213710573265303359796914199163349296608736358741384041138558244053035969858 -9693983191087651982342027390681525334777714170455444776207288727295047097906322701667199571113890318007616548536163726817679168 -6706523778360875477183129443881169868743369990013775836046887154518569535610947164990958856446973388802060554267647855673512269 -5862057420569669693068391429181291253874208771601116624815603880238130385298427887023332027652265710135551985724073597417285974 -1151313997638402328677281725415458206631525714244607205307139347412188214659490398369065819541976622293080801350270699351750349 -5489131825943276548129703872359273308252153537674522058679810049913479398153870812359217912596783251244700635734540612732369203 -3810123181289945953628771451906051867522552261199661987069529884844103683969181491185606510174695973406830793843872394354042162 -3346242314263710422512316433607417431578705396179309838772547308651613774189871178285455805352015354652802479496815910335754476 -5032059944587174601615131788722847272253927881072336845872496308794095355330608135957953660775615970673613290442946086962710905 -3407385896995114869865346803277241560730078573870063366755416777507927736959074993460049742600768481558296737228998922109024099 -0049052520096863687692070927701978011226142548782375715516453178031755305702747877694502859869129537906539333534520649523091710 -0991259574063512483397592194908683392249793361680299501959035992654866098958575700878621835330177239453007223378603834381079687 -1103177507554459538813745204571902700244177530864339036101223775180048578597548931452670546251696214644617674818880606435247986 -4019388020763636749355438098141001952281422670022244785922521428313256185545192914769702955966048643204981030086298329088086717 -1549239391810219717095199987772454895177623386763902046734720379092060908409042895882464384442634362486868518995850543330943745 -5263274887172899674152253042181056688293450964020128773142784973127071891058343458622006778652971493625047746423062870250661196 -2492300927820520335243072396524887229850551524757145264574209619185242101186100663595852135831547431534587842715149723823788454 -0239821705984933412196203741296576026949577895980132509651253316722691651055934018399445089497754941402505430183658650264000569 -4454480470480799484331207273048645656468167612178274351303856622687362159020726843169180682079344623827123515453025370828135970 -6142817374030811769491227966611452974299687874240073880283247099440633899922286466254504368749938286010203764066551001971357963 -9169371099648374900400474139097217260717487967105154156622253602791903705738661081630850020115390238371457432815879031763979788 -5560591117813511863922620504148281644660212448276865905578433181502848473767100143776780656617049797235772123812344362645447507 -7125601127543091335948203843174929841142906765885076202058923049770681372235738838189576737300366872775686393117885907972185950 -3813261893105186097817193647097680347436595910522013775725325978428043833139417789267610377229028363642103442485430761044994912 -3166100516390908023193075423476442023657276364366869002050485177701831320339505415669888608102030204859429175627661908828955978 -9494583112215459385851845969134725676775320276319447511947728695272882901489693777569547667119292451041697329224102769821139225 -7691777515996491255498611230620011375291757353871825879292337748953866037150788019954259501731583992956846734646612549716437169 -4674403391449814677760084246730522440833433795684947826674440906657230316614951017230444639014782979009506122819959837960185292 -0124355369267161692186629219979251945207193338015531285271750882020294586168274943975716404048435047057151424920598922068881892 -4259039872889979839195103377532319383985569925201669042943584292754218542022884377759029683915124413393419307275904131879991019 -1735669223208908684334277224397343396336961848404316449603849894027168642444303310792840158007116435560970914275701222063897926 -4461905512399641675513869110628312166872040099906116555152852234330620387342830937229572832948858700069818699059571737043133655 -2317566091257832110561031578973018527337285656514910017567896208598685109912802746001639928928505435442403312983994465299665281 -7100315234971800925514182498331922330287575769352512401970636582041663941571732261396082519132641394516031353060487765740093218 -9334108345710950934819716799864030596011645738530063495673802842261253827926601866855793893356025796840470669373855061371630452 -9938632519142602121728449903028585427271086908360215670337654867014624403654411514574585082225609074457979619906343109374814363 -8543685485409092161128411354085800792705928451605723409112677460751012429082851977989992688721655128865875431794910678786635771 -7286092726668793850700794820169050814700948490519583438078010079869324333131287831724247406778611721612540484173599614481822185 -4574626770701467258525092815137010178678255624898097602082268698327798870150981485054197815103745515005378748184630266101601233 -6996566956298539914158437280054873330111337840249130739283399579411421525420812145476940206933841167306808654076518530796691101 -8418268977140865314494741099167445020028244920345037125932530888607409097769183652295273473400544354104335924214164055029523702 -8653179301531871439574603212631671179611383475494609355467328013854637990353997237551580336715104250041179882078593885288177498 -6757096834181706624090949791934584516326051126444323415129234296822035888300651545387936037901447054120865724936805272897353272 -3719471070090385271298581540906250911443020297189549719410313905300350268160333497598330190662838247612158675798074496367653467 -7420546839654007142424912212795950734732168508855699265941182387494625335487354878640173067010282119575715050167662820992299427 -8999971488927790060730948508800281979058687995045352068109470869864835768781397747295222955822196732634803342790733054201967597 -6576480323890189237090109618880316708942469888066595108911237671288781962755118036472198419023002661197238821372958077703913188 -0030541257153278168215715641021711922462243607936192442241352641161941478602829260934238679472069149540374325351015851641339748 -2308535064234691761213175923993413124441933619616103905759452431159366446936203305785164404138919753229165645626046227853031827 -9274311478528593074600453989280243110143811549871941292371158642466286143077576823957560727090752083042241440289345317446749500 -1173344584450748636805732688311608479601983149113524409946668094326431976475189882181347248492781101482302481266734427266149348 -6919145353409181506683417908661000530570384104910516382895650835980412723990294313264588477866084060873540703108364930450237118 -5325748279790493246685409745464007302387808804042056122442284885720787803880628218787879564860434934892913815793329423983574457 -6453232382761168189611119093517182812167138336965744983593436983776900497001902946217406040709180061277827817549237791463409689 -5084186690867471312419665514325307095801242831316185457562663155798586037028408988187703062546161289787145296742552136882463426 -8870611874224684584815641540909217473850820482485529973916085066540438294865034479488663791703681082228740535939513197426568394 -3829342886981207956995705990631766515300196466846957375041259104048073176049856454632700433183856168388096468289412653196954791 -5561500767524576355366009997865394697845244227185393733933754620619491997202491015533470742012384145261633852618565246889880329 -6777844984653507188325486982839438152297369628419739121210603276755667853986365800165693953505799574103492924940759456778294070 -2214788746856145315547663790110177531050862742765653751073730521273798413515040644084618990342819820992718598911810035213540952 -8641245540354058813605493935866324134857506571449379897541736929598327494870227097960497570120553215541706501704428439721082223 -1700972466803583171420254007427289345043866532653318330426834471075577492940413011600530531542381075895357213715112384747031546 -4123673880740060770118806009141779021375877044026069684883815887385967786493701519196377144556351001736897028481481645941513408 -2662387772790420942409426074953672031980544055539694698764834339968798663047095391766181294233657281432203121874861027827377503 -3000685337077147654086746625753896686864534986031835702363775205640514651662788785826457436508900020141827996232430281971022030 -3024908258360292259670809665500668877816383415506517420287409766113445399746700536527732408780456759980633419485517682977905050 -7609884167715679957397855272558744514159873182477148797463658401514781751802711120892880095270644173320069885204433134067923423 -0014100455158046473463596055055311019866188559065450226001282429179589867255611231640796556419411721523548855378235369309657647 -9633011209397874287442661801560684815176053929256216322999478244794557838852723961384875065741787167826618848105863793521919749 -5428219888294008773249094303237486065991730028127620139643719301859855449270217745813940272539972852306476328220561773494939103 -4521537632739898925531910531504909038824924540851609471635849282948417316063275786486909546139512668787750779344864961591530650 -0285764732059028849862258838048464137495797174589639632732738487543884739338580280553036435526582504329979148309470441850901993 -3193744331770081476790157034764887938574991726583896870321256839758584043852505285610942913104942834651377543523173599555843275 -7417116084257040522072018694176431604709041564144995596676144624737792695410277079523480490262409478745371723464489814999444924 -0087200564277539488709914626916914001557170500699327915642055990350944184767970585140183066326636283502929299531353689075738930 -9142572663076266551791245195307340496553949814370587843903642543965453293671993338189766065010527351493298615638788367806472270 -3051117521339185890745759762693550854894691691802102995243849634880012010573871449566457109934687770743470466412945533888196288 -4158491602681925772695910708467090530134341332595220736564785569416215771589193350272179369165509097131151416084829009479740145 -1103853287929082360008599627015884781258703830958532256506076724299192350494313751000293453841630584783094561339455205657099017 -6669316988454995197629701325242327637911706551201433838323166461015137492273818007712193923739461699066479249555708713191227011 -2113634008934694195638896909191311796132499125975665209093925839375449400491235035672664100786917876149509780668632265414075514 -0126792384563810279878665722622429577480527747103593555729429055584348852183674740137123973052149872227487163624179929217676754 -0429035865573402523285948804441336965668748085575713483346016033116457998360922288296258888389027618101688101669309692510329301 -4327425318090553450075452219201170395108911828576562899226660479453870050953529030012653173886753094327406771671224243820895023 -5520772008782057192477714645125967892355088889936328957302124838926954775059515639556003228522011635026617680256545865946919398 -5091701805891827972817338370300267783615596474978619035655959815481776653782092336443749908777349150397039742672328322075757599 -5790089502501043722549854203882262801131152082075103693079735744546403353282880501020065196803852275180952587214373981006637291 -9796322418193084084142426874342342820014220995329829353218013607479946651207097461896332568716316883980489998209799290426511423 -2380307550005537574650358548246683232060877572246000949898947779365886734692122861965160733025000170093436288569747823376036955 -1082935962455046112099818942036953428151667543776795511944294244788427450015296441783391903107987172541886534905100146388519657 -8380489382633120509090625034073608336127658262734309778765867742476489991527857117594934853404329609845740341120593238746572358 -0633586457978329098387174811695256037738146638558272816343120362030421967763476640034051908578551893496813666553354240880945358 -5373098216766144042601726925416970539214195693276289721208185447267076741060153916852700809475592729479267755151190925441394762 -0437558873199426030384531618231327018631366219163826316141114912440580402838580312314548478509711368795320884000345769917178052 -5639423930316613774685180001977671844817204570499797609653987640525926925309564084656003072725353558374445587925969239833796829 -1210135977251946489323174272650887900867086890978166723808871820517325894679293066521051888521481265231417131690626664853728495 -0539462898410401286175566033379657439604282033567012883413399478842279156974842259796901368805265470365140797961756617874554244 -8867613639089241484274514628778139575529407010929548231466056716290533770512410612299882134379199476168691871070113322417352240 -4833451141363445314543208606007459133355986460223413209331799936622495058516670427933156376684533870032838911569984108849259357 -4227813092685468088212208364841572112496680733745196711345105782294865361331232982776705201607924522572931046426758698077037314 -3298920484699256928312414816543062270280813072616261084031990462638788100585936907797010649601422888227353971911450080527103430 -8677297821634129486433214400771371293863980023792460946229497228182272173859417196509074761854532992353908622744248599410546426 -6781620363930103389596792660725581404654123168036180688431615736861252151699433810032668453228299140054818608750957825124796595 -8122906022184441989524946520995601380863784338127264956306250128205898953341684941467474429559908562531894365353100792345598520 -0411240004527716081891095406341655736648076045216518268298111043258024354531159970495009766409513979584877788837540685928510096 -8110610731150417715423694936324187409013994345563727775716872413402896219029394300366269945656385788061342489896665541029423618 -3755150141442065122724114186286854845339699980415816422951602029278923264626041281480497555316143381278936597056953084064028022 -9997198501283363781790158682287440631540353151583792163912187892594225150451760679251039984200332891341466144376776153588743411 -8117278660244194155818259161232321467141273951036898758016163015261776236723767428479024530348209694127274271155128147667928805 -0936167378563389999940015556970429817708525142859666613441735283201399969921725036498088504412772933143791841603758820099231969 -1224164983307664154773003073878449221074064106296765689183370554165942272977254560731754387603794592725273703193699452227243648 -0945223186347621257574665017745770814803043072264123465865881332861490934432664674134678310921895127370062396231037904388566491 -5578757540264948131008953288936928142006135647005490612913881156326258717861846071301620618495929699330750590715333343381570370 -8766152138213724166896984751062466183413369758646701425025924527217037621942282338912065834670044626031344011383552551288896568 -3053487311706357675549287442389024758844523549667853410498690516184480612259764698839374235801509026206625335813997095967736808 -0878702145089270046099454388880300081151816870001049594773880813882330822460954086402671799804568587855965385027526964053573154 -4675804956846633737319204649690805027179329770063541964923158992410097311744090492573918964775287855196910884200372242948299414 -9493162547793763389979831614732404846665474684277822658912090008789913594349007683276852208398902139951370774691434150042517692 -7345730422542157756414350209374237744157462270676494668123673800976571405254566784526649041229590418069453350314530822807850416 -1964598394787617389494252382959463826235528571672258679974212194662236832005305369294264438079751870505403383373187745093885686 -8249944446042573821740194113388700642890510755384482816288425486723007601353010761537384611960083168099219424928983664383056396 -3337126174819661239061831213486837993026986769690178323635308622147431003839607372786324521326222541843059384926020501381139876 -3550125336344588588098791695947139914704682212688259894589141433972450950443922835504195392482891358587151935390940488550833886 -7749712101826086175922145824388719830543614893730681609524662863877518177721578349626789661635402530736054829364302745002369020 -7052231140791673822400576065079175225485411488088090330405642998541294857834801823806307475957421894499261138427284899379872160 -1843292586638145520787104685467083303977045950130084986120058743550949902430669077350548793220932862849879063881005931348774482 -1487754184031131275500703273842524528318488976791651801275003631033587218395976230647938697685183895874331282612016119932243681 -9443865463893265996646234621765924400556069796282223873874118161895663217586723720163197972926787252465189277090874867985305943 -0897354453697180183636362963351299526862015366834373289147517835099724224465741319067052046603751698502499127219361448464402391 -5704747041899601180624074915530540633028597706644514489974845238123048510465569828429534100611326273262355319658327363672387706 -8316996307878784269659645906887598359322978350217418291053466278096200407791776549885681670136754711514051366460206315185892069 -4722848610616728633370187439001656108169740264355894513804107426599369076853462061213905264840303368831514494760256744683488217 -3692367810726295806823047818393633700597950772879297341267237845287738595298116096169937443486203130496785989216239853131904645 -2667811751880900529395751251780403233472004508704751605995052039171718893677809009851286227285227934697321953881347551922850785 -6909280644240056221753293916337855667825910341176418724960272141306897770589964342155201798900696411923242239316269753447770119 -0999650808847959816984860421127802079006195715319055574680057716511026426618826912583374854994252722086849395905477181959336308 -6682428165643537701794115175085151859549462586484758294772142985146427091765603916714315410145159899524436580396471513525615313 -0287601495196877948543109041275994870460190783889596253917385102642407519701386785758190101150573237633840832279432894588540853 -8953039640516871936098610139590123074456039528834700886251621001651688622097083336798736244961699802438533721144359429291546962 -9090712409265567652916908423800558494486073728012853735882650836864723820428807816418262790577395429269519877994493798687893365 -1660175388130474812877157640023025667491901812382385258466335889928876299301453437354017152844077297406456989761054934994390342 -9934657654239690864626478281461559020855371564678749001531999572350068313050489634121119934441378970500982348402296361517516343 -6359086489575862410458280767790738382982543594459454924194612177893193423779790100018577922756855011303081967830570557786235066 -9627300155446988370785806212844429529453154177930814144914555470252140016234923123986998575098139584073958387735640106379021856 -1431322355214385540867355391544675004031897330982334142717560574603867105320387323557316017902469957357722433291210791176477230 -2894506203039713875024969465668820869708991702780944843854568441944017095189870471544531770235169544173059692732034123691090895 -9985087463071783533894010510378579436608410386134175083499511116916575290748570942191993555978994826375337547024070760036740444 -6261306132531269467443124232293674590069389935930085698373191334535132795190967480627467212037239181698443751352939224782894445 -2120942222786996279924477488386308186164427794112389492451650285444010405583566731254920895180572589153915684428013418667038463 -1430800636064677716455907326084896393465425867531959255704442690767435730899236888138775592453451717734356391997983296892276722 -6245887023168571979343600695324609549057431178812999538431044619282851448174071578424122279044132430998592688952289021834131681 -9674276988668745718949139392247616305459443871778443070291211471809698194880071407948810420513382171773670397147925755783987072 -8396960072488524616931349500116793025065793132740236508100883299116095620726458675309257154864629749532773543158061852267047338 -4708002781694658659895872218532749075225884113621393683821853677375696999740077965880387656889715948194663339565410394344347289 -5555870327192777337829881158886331270254424879662205835411641384434648950116158681537009743933205450514200494453854527945997900 -7477629425593340948832945986684831020436243430891488737957650425170704516063535499519492960538931301090427592749932503236484184 -8423876423875909116240287411777889735748877901032042101830839646783823015629217546200038215020201848216827890202734808048558954 -0807456230133883710789676060781653192722644571250120561750361830812875165496905115518629620725251203869040049714454953862738741 -5303451865971911125648060457840129182131488705975454818569283523145391216818437057554152537823305765736049257100852046148635621 -1261116302127532039373528605959266607418243283938981652100937053779793268699698358833723678904084230346993115051100507293779300 -8426944066403361349421019695464969608724905091684569968020665596067769625988182192985084507208329554219894020546830342373194912 -9836620096551496246720748973842622026481410313119306152287268352751048064398407415273133860155815754408933010180348795503748753 -4609338756911699625776639967309034003047928015509904888467025680057353339055998784262880963136510735792422530687128803685177960 -3794220657491630690779260465220147420857430753103256706506076703567632175129351004805264212916552247643663829004772139169350940 -7434241221131032055118140342385838086277269231509234123959703170231052929402882172699084758826526485094213048561191825363736939 -0904036155468367437756029547852649525568053491591721559536888529587622171812488273446127650656057211625693401063929504404510727 -8594239813337093390867462989975908087174105244731466049861585875653241923202495711120654077327719056153590078128352003621088112 -6550980939146114945715655019872060022635651047970499718424015515740106255804720532248662461951505100400404921280927158680583839 -6741404050546354494349489969507458195999859785965336806692031040435145352201853821004643353403220778871762826594034649052903693 -5050161106286616149825562707832775275340760357578872487646716309800665185049903572794595588208600449320559114964177323489795050 -7988668426398349050514452498533331732900030359537800440340518464659495823291497139184592287414133272356549392805616744235453149 -9266075338762306748845630416478232159198106165396768656800162018036519950819645985549720852139273704724379986117806399232175170 -5556988932197330115132604542704979085477903108338527639954740461587257180160289420796745117217674397152069207476864049579397740 -2173348172420527062990485233356407054265180085263061116024667765176353870469789794863489543966815025332527451848905334447400043 -2653295629344700441742575198328366052220017722996829827117810780652298604720896185508927603921863120335461979927552660891307644 -0066285895594775046166427188466940243950248922228033222148293913898651489477743932715196100030572189599370661700468278120150796 -9557220581453859816276169005234368536133383160153382159372481458293494645221000658600106273797363754949138070903261376602472730 -3805492311138707905865671027330890704509145113408439234581134791375788711343962876719164349282530634198140214550594966178264550 -1436926045326544742314469119616902325996600826173849367078861191857896132772006881206929709595222480758410968732831090627983535 -1444386260983859263563013696700221044836992640755935489313754181471481261753184503838050091200730279031416065367564840157446166 -2902149047863838396186395637335864504592375088936920775765866174611877001827681253531321463980847446832448377620176627133555161 -4791558390249335499772225358752569718358080171845842601137108723166037557543519329054572216953276760772287383669070062122544693 -3653096889815826831439877436629034472435210543189243295673175535474384447647824085044069839822212271287638158109858092072312186 -0748574544351788265285261914954044165932622710335856937231283900552445994528620171010664109729214838117784033934235805145199914 -5275894527081180465946457660332530286653207667782652877623355615488795343761394166684000047525776778529177571402318083997867530 -6467109418857304686760026137696284413841248686101454431645726165291910757652786986378480149853820055715870646485922893256858093 -6676215878298696393785441082359744916852977084427450114208277030042915360587042453548139647735771416607502451093388273522788649 -7671054706470997891661682369520143839129305382788490682363534839812789784359519127806453517900921204537766515545890569275307893 -1361042207361371441527086792533736691205317414847988400835638938786015770536113548366581806919926001472840811854920801842703777 -3513103534581691803636903931367504112887620002748826537288400922168108606124444688399865918353400722960622289440592437281395265 -7889386408564819031497565924192895193912656422791697412472168255473833561450568882333025985344661645666990267705103860364236866 -4138536431654239332667925068305482627915123154662709208870044077990559363503200410357003059370208164876016094801255094919175222 -8463391696176344840026735185830036495571599978819527559041511392555529527154011417043582657075386914403021244017762572439715299 -6162318218961162791019379824579408557803275130662824155987476456514181881477682742571553987831058318649000691189597142635269772 -0762970133488857814721372272166424064692356325030921377174309564434883115428450738561984323237757935361350713032425828308741123 -4714351982559489932236335028957017819906944707422172680018267561533474486226912008423131335876195206249325093723564894293512080 -2816500946584950779938046762589915909515704971018715869504032011106342871269261795583577290967260307340084652876419981696310087 -2895004364486838513889537109545822827678603850445221912466809759993491507875666091568956682275842225830234855225383245575493552 -2650099647818037615116956954341655646634963643235750472739733468509790968870462418042203958941068786618484819431710507936599802 -7533481270625343830151159727689285867369942408696652407015806894633372367355011778476566950994358633971847804532262002525341326 -6932860309305588424128816753568417315152512711756820693574982607856846643933251360676478873401876049759834996395397442053366771 -6368418934202491624332453410763014824694322271983857287392943327020965722037743354197029665328443075456374222598320483575376742 -4282586458471797802238473382178433687724169447427314412337761093512867942490521429740324461721167516599618126259885014134320111 -6677394682606606653900300409179091142196198876169170096213616729601352901860163965806655227312385454363306654134273762118341113 -7643573234932937551595703701897895283801028602846877296702625125220327139117379468939484216431057135643790896852072143295568124 -7835389220407382114018498622358193237717282193191181508848234026347203068182480302817923964772670420825100195578203841958774014 -0034680494236515185913110737330886189937723492058708152408147979713114102686546086347368499582981596157232052021983733385897893 -9959931900795867812310134476649406402976231824404571628106712844354935633442704883886435745579659139240624317737165693276684021 -7687653483916295211948300957846886688394120859824086212655110896478780014654869246794209169764271870284569926071280986536129686 -5389201304796699165935771717834181664385244359824248801827481372360749339940576454594000410357902778074011200874064037958889186 -2726930691205319100949599707692925525547420349048657283658532712722412081334373160958039199607974848481872853703890943042973921 -7254087398978104571457211604241039805468739560240953011032729779871018385163199958508492807104550542120182914215024552352099374 -0577915788776618918085672242537299536604399259342051743390425673863630842390420280176568564228989365174973256614738413491070038 -6830892093137210682654019600696831217364160874783778871977883927322860408992703263164973180938595498029716242874574648385670449 -5774283228582139254923100205140724149936447963980034063069342493084827233283799090727386532026590721266521634433539903773672657 -8489342339836233604189107412549422519166707342446243631744337172427688799797300485425305108241084447320396355017099790987982304 -5579039086144583780301772101084268454284211524135896968194358624225126732215388025582474957280102865197930121676550220972263090 -3389908879281737422526309759732063914252217622801815648828128392852505613143446838612931228798897371072027044252222238376051988 -3571583131629499703290168358948884937302565954157189422433659984916252703476429662770576623285862465399735505261324990848316694 -9423186355018278041568884367207433805709684366572651006506138520185260823230823570755489649379382727052958581331266615555167678 -6126444225712076374139461277391085492256424369818965208777930082776462483927136117628590877335005615182912506580467844672001776 -2323186582401204627524733122349298471005163415025134564249126647383086521203590734419048262603709759435997087128843414545136629 -1421280371866708001926278928901318288694248295906455469958649830300570517830927222281187526547437638030692046413330135004977193 -4201689423423687675024635448407327285565295542200018160703811061939134316388397382336397162201256369493787936488029791585101767 -1265877778847130342563633758037018164444481581498122824054055477037485608751037801526946223069038643514687690116234164514587643 -6465410554863527094647350795029177204941109231775452235798798372912591022108733306213831496272836341289051922220644943607370174 -4555709604071919166868299016817656945294419168762671940808165674695761877170460702219178063962280901485563918842254363745508105 -0013210837712837766354170359690869396554185818181209225721015219925108353810498389109811284979505591805687297968690234266672264 -3540066879463905504617792447842885657986052603128773981944573151451301111933677250259888942146768184470087035596773903177095378 -5526250295384032490751656419926139482444274162610961490517202317645513359417017299610996672882236901128269120411948696682951298 -1147928498844392902179227619628807696892271738030552398135463750372457058220840887917423404648021366673468670510142397314290816 -2022158104950164034675577261500173802135526124382488977804744045573154829053227880877248106935421683250032295002832455111826392 -8408395848784043250462314109208469565763023368052967204488715596813441318603486322106989843882974610129619714497130039489786739 -0214994088989310972413925550111779902382656332396702390689823464515504633177056625665996413210331231059059122014949611785985118 -5638643037266704666895115401268842632588292722777701463135298698439281447394022408579092978979422708178801226855288373349007705 -8326215915178072795379523340039085009563169070517125775679474479863606678664704404360480187047960485640111421757696617713004548 -7011793090984794876958820884434550749243106407550272966012525399145703465211673094494166304978135466245182409167311669917812035 -0646616697055433264306514791141300386873739412778313053422926573847874849306566154499488632029298944379782617421929711377514401 -9297384752555069074761141370510516463922575237795983591479132397584337422724053423993525662073888857524562744276272922807488244 -1675900193060201503933483483504265157956265823054822690157216718534136770295979836197494827206847083365905242438375193125219057 -1431083489513661032602020638770515681536739853677363483613015298018233407875797334225693452983166033993589897236847768729569036 -3412842920266990322594256412420427432972591970945387529406395749977856430023496367881365081011414676715347811993981995507454759 -5814144158348481510698013052752762134884248303529348153673229587940320030719465454064415732294560941869034046035698546780721067 -3694293937312762744233869259702927434016315955447360677690945403418821029256532787548058243155743890295919743842535871205350185 -8704385056392271497806649473016369833786145282019863224686988090496033200166054190979749241314009880507707963024916288921654292 -3157093902990992972624660747840907228349704051194371097267625916545775966277296334446546102566702460108399894331979790861994643 -6211141708601791603941445199717151439636201237385208163393264036156546491266459438443028650233309419884755515206198073403412631 -7609935217879726233731421923555596716242460372189351557516117275999330506730738459524772217152788164129973955538645698104965588 -9847824808961328798019186709647321679530290047204083126132050648182784705034270305452693472108814807665149578959595630309221057 -2336424726766825888588931956562955321343032371214572623650620016457504060828907233038750693736196960807811513112341914628133531 -9997503724107344142689181995651896815056436454295876248977561163594537358114242360861284248276610577578928061231272901007371912 -2013755472268039887671228509805013770238575064767125406070391538875450803622634669600191763159687914916440803301533482646017516 -5799981996920369911160876482866900908859555470100550461338722440379485926728401393736777675182480925560316384661340355950830168 -4131746820931543634876854491169439418699998977639325418048790558796894160516876451374044889060607036066881936080985211558198717 -8071462893187814119459304307555930509471933902061826760709069595504601694208191737856286699434878770893482761009503838844594596 -7181730908337307386590819037242463777795080011670425589895801753553643404874388537396185083285326538843075531064088612600268485 -7874226918011033625880877484768842271536701038369116084490113476976040281425980324472775723714911411152630252812320962593721057 -0414263983887707664017378501754926805713789236380580564348508099662975168539697702344553508537455836440798954696577079098427990 -5498272997168152869729083312401990047724554350008563240202328869525129660589507428406050419409546123885174117080636577540661417 -2321805983098426879552953451815149973073351984882483766093075912871745174124737636496091875961776384678278562342333189413446156 -7532047930885191527458749856036064187500060909405487710845907268217223665450938676158247000950256593423837838865029236735406065 -4326287344295297838879679103933460283015103512394382866450845885799711951741393486898208614864273534333346921541450681108663424 -8567495767845161425037712088656492510273651099963049803480674659806775332933320452431001042997191274150089937218301268747409008 -1892491166044214033213915009098534855928106088594182060850901874215590307570900626843004514029616915218847005161443909006676086 -3105173474201156958194039816160955452881468075916368040511971709028208813038518932050264340243550030216756906608101248802881284 -5437478863331533890468364414134511741947560918971502005022258558696334726057777326125552089511046269814814736730962698056311073 -4951554244048858298258123156812226947705933314291630536799208713986095914743504621255604040168912151175487398095913442501527517 -1612279415688868683265625113331706654838561784474685978138326507909792993504451472859581305912676732125668231491237540161852687 -1352117401098609459260904440848555453118498774861101544577811081137171667682199549961162875051222443028292136608108908775783291 -4668566015341904293075901042719184643021339885314119600028221153413672044545251474917661767760069310540295768155060202109602728 -2520334200236839012091693839792035322503068072072460065591632021254758742371667902074341537861212278319285847598815912703706243 -3175268051143981660033747106123282192419159048635214903634052864839951778255031756400562020446144172393222917501787673701002700 -6674523291734748122422773809147614700484318146175088254981107335895144969807349660283900516719746118645468637821636061386059378 -4188188277626583767786502184322569089569789412892621297176431619545847378700138574560707680259428721989759555839556974186233480 -7390532896972001905316907714622971854007628170763072962479615247643615622571558632228493177244362089074929594584800973845536848 -9849264610200952816901406520106384682505741852721568226048835135789532787094701294801848704745256861395407908649513920150263639 -7854370986367091444291966220372693018093730764321979930716154354135718272983430773038337101141108835455952869661500155683833074 -9808115836250545782744528663456612751035343126746511715032833222650951208562936847133894670903159578406935434899681616157157677 -5449933772771897148631641377562540641640474848389783754029100557570032554566006191465792063723092795517702238425793412416470001 -2937905058909924731783049378468003437910238645835264792097079136587087350442777867813702093887200643761896159097869017005937395 -7717133729012763683884090295651337537034023162131283487583227409327777370699292346651312872193008211062413650051860746533410200 -4095695950110108518764643338298928366182339223897361738328378044503564041168430011712729973754089101835569129650304327287404972 -1174584897511466194183788253926349029362049505536254582209201338252575420290164983455933289840278231035884030712260894346134552 -7761765877961955439161913415420485543948776016504802146528406434389546215574979243086360938551004600037990661153084242444222743 -4353062554304250531566068529474211745999775668076123932253052153101156786485645664269792342453816897835171506547074839704777091 -8193385707206057241016991296332616186095885707895014417445978963635638843413167453713147741250557894417823842378892716883564383 -4414701258878541571780503656512173574547903536405524255843710113697817741762054938128322216548020454736882148058230445988304376 -8363544420911047180282206501238156287142986596377518728647856328365181602387822102287895774281073353368828111014956911375392578 -5780430022747871965685716392391425352083934583867099701698503567269032511748940082003282777645389137257025389413017452674572537 -2606024393701221307694529871431154164540614164993497271619958131424791186768644684669356636777831879397734272673335705649633002 -4789715983933276471694982923444249864558464851612286765926229253919876317314926011029164829296322542092827015562884359904206642 -4213428153587165381335521523932052241841163300973801287138253226845490672931816978773941803990440278669979647051465348624079105 -3419168581475572983260190361701934633564914249990805271700921787735379441310149748846950460105295646015883522763651311765718139 -0643017584581435034370880134992336308617187531872808223433939732921528795419567765739615646487503731718827467059811489514462708 -8240926821672036119484675230474136343520006840157742512260506574754560864426113591474981060698558545401924390339201368669580151 -2180431409945375285121040004138946753923265119496541829137171528887590486854621739462433884861201148650039065347599969036034946 -1220794484575763660002325630268586558185893116790653322219525972500497727914800636242536069684827121496593553311794674511534108 -1435781606190730034271758074654507450242292934136120417582018758847558210750517197211614624177861297537749923102696299059068262 -0472496196020370020276610485121224239313415267755759579734483426439502592786733423472402917351281201878422928096327388672118427 -5664545446808704741371688000935805171339458791507069541059893057148797349299303009996748288669321167515451714205892864440743408 -3539189653746007637884781151821846130210806166359445842675385724193537198834368015119520365512286626859121785638758771673116936 -7228747311262908816869990638505266862436414983330364594232199408818881369887998094729811275091341031498735810192826600585848478 -0205817711643909986528303579098875467050350065610591795091066174715779956393527864740830714556714738435192795203670003124014759 -9197293866434029742096641108142225947219962019182256790387923893087254917713809995074288755692595202295289706002058647970706318 -5801028709225408662416729985040929435165270531028696258985082752391299922713342941633843800570338856731347298583819618303436452 -8554584149353583626116529209271190042567689752495849141906628210792514969913837494587223513509196504949988416482688661169416704 -1402557567228850127015457900783688564010064141030969351494178978419198543363884975731636660451573493841983931009293074401767946 -3030096749835569373371333947576923588432247404291305005146406298391452901679290153566364898274791521766815033709118309495674776 -5711698251707518922789190956913393869735623141004406498318629780886567378932420667481352170410684788247915724815490088304482484 -3076891999474110399724898312925906240059216711193634437769661170118805829580169752019184852464954183024109801959695130678652316 -5549698831705307512844145517641207234201273500862193514468462342310564088815360136277681192006596458241962992029526454841238730 -6411622599480809121036108851843289420809827360922656655734346202711742438003990222191272251022816208079113097900823895134384085 -8642218596518127375568301272202091207693967578318544987425186514107159773089906580986790334784827799489119999185876094206749612 -0920817351118635692704580562112859516048707763068110821230955827967708140350064043987570026933663880446183554485511010170742288 -6208781018246003491238792622187493762169792217017386868912187285653248963115594278272915569084370195923738619149855997663765716 -2725282513427928049648973662146630492856487618068183730067763515357833597788940914019736675580475997314248706127026547890194380 -0912098065082008833983417148631289829848433926717155189805055489641556714887595710925279228500591899600062727405015074732933183 -5895616117549258380703685066950990019495929210886386708101945826998030626417636766877015647925822567530097432835311405452851781 -3061662816058323226135782103379493145683394691280827163116839270882202901941521202335712663514020076981153846416619848715503675 -3704213022599283410938645199398840870678548274677230864636710751729466573816253072905154246398964963820890925958414003660031502 -4630926004977081614276851598024033198734821505047735799361816301169717640380369512425102474864033576302498992022080746889954455 -8300690807062719013236716321873014112140959900671073008576129360776883572345888774946590273926184154530838752149268349654124927 -3447912234767016528327462063192808290048544233618790028527492173810076784214345126091690768646666027973848294720038771161886178 -5457890600658613094704911994422834789695852986406564746776631261869186614541778685993675186223192485017919263967183543307324819 -5220338990377375643418843097310570471194246573225298484773451484736001523372710934922163010657077255170019875356114982042678628 -3627624529201855124798528837400884425278033564368552915095248122583917121126951781145851039073704399808416096566055979179720996 -6138215215437842405346946457258803271828305596332127664808930703097188386621950424243497121232196129953435128118553466623324068 -5920381194124220091735356882290501723032521874921419228504863143247804084726835859796865644318358484363167764149683837216715113 -9615036434361215242420376195665243628638184799766269042140156331651635843944014951375098750172039065463946417568449326243598402 -2848169979084951950982695318867752277301100025960923376831113692149385936857810916874319944880663028251022532340529140647508871 -9496200698078244875645144567349529530108679183666387943211721642572053750534478253516851058589093730399207634528878897274151362 -2928780676487223500661310045048476864951396027388478482164226318809641027170548978608486524888062863065934362652787878241515138 -6280140376322091582258435509210383633979192424770386485640747341583226684971908322655364759264755383681296473387197771187476598 -7993834385710389281257683754961049197160221786960013125265044154150064439440391405850545737192660609079271627770663100625583357 -6072190114323511020360786591498148692349156157375850747362774972374185937176303811511475665210532862701141979885066767496308496 -6809986728266957224821129384937931767139546739620244968569547174693124128355961928311295430759387663715690541708892900136725621 -8713302194814326105418406542612287987228114780045964567511737165272440568730052294690749670110950977545749571399774020053301568 -7216372973252354647766828421771297596834262561708247359782436050128141372353679212726164448161015103612893738264244644610968102 -5490158565324437536585310937019467679460278414170537463829112562515850928229747475007728895628087831498962809803771938282971625 -7508575669851979183836777758657815365989035447083239066619058708444094473391492540134970134555418935400444033568972945852753572 -2681051665685441434594259287440247146082524888648989023037549139977692642794573123372272447282566487899476245382067369090850227 -3516664349028783594652935471979981657724225297147289075312362875423752912404004312370632615551263897637065247961679885605652690 -9466216134195188009940680229231563219004828730503835830166900891639648098483491041893870240357033427709041628218884025561211450 -4848574180102172215721912201870496816515688173491866267900855346017402326765363320124474261873980008204988494006538252079431490 -0175523216285771758146998384814407339456495403123042145864725622594607160861096627528216923235632801268714390775921555811885643 -3472489136602420352765486727018974617090254641528435634640334942425890346384541194932965110314503859645146781896767507525832148 -3797532143892746774112201800929601204074380314303366575611389855222496601937222584569281001864863917059035591510412512996095572 -6540831912166873834974788036724952907724341969947205585823842409980011722639587514582627960169448155988074691268777322159243577 -8665277823830969067856126267665294223334216725032631778088124483157924821285251588520602045895388804877588758409591955378022156 -6073508435137376529408576041907918073738449051031545977935509368280423831551346121480713109837860058648169729195905582970167345 -3067341878979134838523394919669124325563435281537910461171499830549480992384643061189946199980549578258740383418503347009079843 -6535435940186811905537955923044494920097170641355108274375772163581055863892145187878626476077935978473720854007118125956368393 -7039488100826115931812511833016243383119511518291750301509797980336012158668128482275262947277553272940357496952990711563149829 -6786417640541461059254040553435360397444650993725507452127477820766859236159070974204514281362156361495968903161994222700825800 -2231234046323964842602361033236684311038633571563965762668970125159431168316364793191351729000958068187715242930876778118365126 -0967020148060045963966458121640283348948132407097784342111426011211692372274414489985481236783110642969061229593384194970583663 -0518863000584387454760957529314643812512823643579550158516331617073251164731368407116086238782619225015253603821594850218277314 -9500480699512272865605970060364505765826990178852739273720908237913877224017867775678563171957729835114722642208632758208282247 -9138815300684460564222550599375232818221500256241474012816587003367381334232108533309664763635997507997023730828738583077664669 -8788277264997082732015978733262501251796460091814731315709354222338224334551918351172940509755714499856609104221032539934398062 -5201268981606265439495692981057225390935909458631770334121087316181673897848115792408678690299457980695904707677321358225662858 -1753894444989509786731779001286291244699622264775676367978135041545186928742736879462156569826451402964970455781449463407937916 -0502111951096040580120210611615484977765606052460541731989539917916976249725653281972573849533515652151626503088059881052346467 -3880078154575290219658231687424062098862063067654268460424536569017374872824177081255701341783967148208402475928724455704261768 -4392256036256639333393028072709593018903870460743710545351823219115495656631234924513636506499865017761998475934414247147614073 -9879823269518650692917107025520590107178762204459762006129828636469652976104262657652867426597078219790167485035259125893130526 -4491505097353181156857564911252591317148670618490859288558887139051313551147429010258650026546020137477020225229299116254389267 -6985649712270923660498384674089852650962875340575045596604964662128408959309248980968270692814095597628820086983662450615030773 -6856393844414418123694511010327503283724147879193562418774164993500731367874976787177535887228795026180482876909284579667315939 -6933319890504711538399213021011090982613851985557386817639509779738587337666166285748238443831950809951451700040304637246662798 -8972237565184004138743415214250280650420991574154677063216686873786654244381615346208802365774879184715316421935088510122029692 -6620712954831004627906209308475373401688370427674946161939930227860450185388905612087218953668667006558048824549749639289702982 -2252979368901033426647735610872049783979382409247439935969647741186385842273253355085952551816588123321471149874812539836048112 -4296535534263007024565979896369915411490254323267398694533004344505948807352166933785377686738429645888455485219163542489241753 -3740204196364178691705296568637646938043711157073683455458837069839389554673644717418013786210053159123354215579725572298341488 -9402853270709855032434056268150751702914142055269816941745088351607954708943354365301302743628246326922883750858759728646811815 -7702984283703968225748705248163911320353463996186650929366431271533557842658056577524133407573715263399635592058138266058468047 -0714364441200044139354320382443415251209148277388628504182113543224388038221246572844030594506529807381529435302712895155562998 -0439249856337395882945730885613068512496256701244515252923706394988734280606704794447812748091162906835016774939625011625452587 -8701684848748737861671752322431955447724661967607517009813604790923987516158908955881849157986515334551799664962438730731109340 -1331695486624815425190823239475277990544123745272288937823732446789801006674641059010522745250663013852871097862751638189259629 -0016943722810447477028299392663967547809929491638369830715943306970577569121839921705532284065788504261357162084070598074698898 -8301370408134947453196729774027640676030589016291539644959237246218491449189371838582480346507102754824929019477369849852385466 -2141296007314745921128534279212951822200061786556429858733058886029876384472876002241385397319110771995753216118435172891077520 -9778033995372614700099511429265411943800576787023724043391866778854759353346452408608492285235768924255415140931221126895275706 -6825951183619818611745057594180574765846145064255544523604725057011807870654883273137368630387060066151211603237021909384345606 -6330524686796934177420756525152826921339672339044318925623881985016143335928837573713885535605018904858579244102576335089585010 -6476163553560279805504121578981537068558170447489713068606370855078339092366601341950660196338341527489856914865088585338744059 -9336566578276542977779339876759708356666986167810967015943735975240831465492474205336898814725322385265950743359319117386285955 -1003736656415305664502391530550831810874960043692083942495595913831106487788016650162073804988081719551806867379947943364891966 -4573789346107222063252149996048100164143705560186510044433851243141510350751823081763496713992637129016266999061673393254758192 -0532366470306788734368951439658028825164454629260106890282620855033982533015451546843353901652120510130789111458392221784617757 -3253852880221087799999614626290882768972817659832607861376923098885595639154736935283503251479471872499871522284582447822302040 -6285682722317206257124522813577367514121775302484636697810948128394195942996079881830875566043123925277038343926112033315427349 -3775226925665315936530276286731605375257672911376828473612175726312446039948354980701402997357293119532073936998664168131452515 -9033989479402366425600648174316259705202840220576987680353222246016330572206033521947195443476632332503203414941943726000075449 -3497459952076058462828783375726894554577596495151945532419592454939988268844456907659575363299273992966202955633347460395801503 -3425070812671430759768577458384150050234482462127557226191091262303333548668785285283704391650036078067518873006221217224813250 -1772566105841430765131974198596141137685703304393653624186537427347991201369580105964338526460016536799639038488848966636423096 -6770176829068426450217510320589346020757715335312260267538371974073805419798173049507293562584393319422383700569196675270010649 -8817107380879373164458511189191184591118659927137093795839429896643513855977855984835472389317216929700259038397397174527984545 -9182176191236023496232040243155433201447895622909243154991531577802143936144665255362367572046313372242799588041424257757065202 -6776868876338528332502171518394602792217092464624165442452676081627495348032268487133922812426314590277917132179444733559137458 -2894505940700668608956696393712351416879091173479440509500831009675626499007967467374789971290965256917798968433095199887640804 -2933556414955828193417995654373126786599609721238527340939127371332396349156901995803794360944816870450892560704118441975220867 -8553706670591731040619297656286157301262507708170329674504933402137245881090232925455937213553504830839742590855235282434383116 -9795978189578883639204205303262814903090980902741535992637415797011196591002116065669674171784371634354111486560182744790314795 -4119132103638186216017314646897106719838984255536083613903341238051086509058863316947216192276628486590741349320633205188806897 -5670698885913664671019828424294908157556037863822378418679559826760134301152250392322845741422553340998938758664406467756180798 -7800330341660310724142951110753435998016854748165017611258286920601003037645494210716339815788133485140202482683448446213209716 -8180605035942700911937960726293062276511453378796626425148211321573098417580088171144007867547815289216240544844126601589466966 -7821272307041782298994133562164496850666805515425583415056198384421212580796187662587737326754702942280674718201253410570348983 -1042240816866808878998548317060777151321655529169893824595029339588028328148179827446446643616423322057981572730612868764050015 -1252481771070461052389437601673649482439048233841755345725688472923079857771939132303119904339949419801565589936559095363036112 -9690992931777916802696331919514208983516033826094247916936120742724743873182994969726283601645253015955852055017097669830871832 -5020330232719825823684760306159154637346729706124058199917604069885798242234996370123942691457916122474221663868046994104598933 -3075139912987034850456516141324884611162536977850304751997334983975217864864834605427571083113425269670859785386338318467147612 -0588929507981854517277972648054247858977149919377574480251256787460673116218337687478964763305472549592601599187647039007311159 -8091499973422866102588159323886136790375349337327388200287148626779716184548302459458465936817938524771802569873742301251650117 -7114931231277684778417144640504976098202413303636808727117937611520910337365455884518757181692362707318939628346107928380267487 -4950235887683950624565704360578955553783208046483127644086525832912071037741169842458625817412278583829306158758057435134618696 -8199425955265652644399992914133529916068954186792582922740480043066932022166380883075792995446339961281184510898029007416993672 -9600726548050421231768431078919064425306219469503912968092554459127359674333330276775477837154780938957377807571696713004700625 -7295599369136487293154800206051955319915985280570186743302107975100582206721744471004980480977594771538574498512856521123216578 -6297798457301239668561079936581574605258366525996359269984364801565322122584365843225724581654618783605926367931879918225442452 -6533005631078137948109852121400341144965267577414971222703110484819122046478368287561575133762804019638669026806894198861867537 -9875087635268237028446411260770380453643015454432015279985047995719605753073640336797720945754884595273185611911133456865738261 -1289442162696753398201423924491482730765830984320927644525084976853458311031303193411990973143614781325043459014068347046089289 -5407587059442212092113638721767282263392344800170580359252927060347500966261590384053868270413268344224069405566567860000139705 -8360711621827142923632844470555921440996634627172367848310520969393805873503222609811062308946619951688125101610027026987846081 -0944723049476073716566027637737569127176067300129222186002435041592350356420231369282460258580648007773781925508162225156920162 -8475983626059931171149310298021646566523963848825823192493400102745845807108661239544077702836139330088359628977689491846874286 -9167471361458822389556369913209606973474148790242038515231761016355472551050907573614312829544645064709238887157780557241782741 -7014298247554687536486236050770971039248187073536082362810060976896826815113357515444053263548215504897920396644014795535941249 -0560999088691723682614108804238530988595549473233071643241045493910124491974900926784898185428410219894939857122959475910314078 -0706992135879838500099998224229773341412566822617554024599579881313516475013871821845580144033844736871959630619808210884015298 -3257284534077293882786787542863570138992146936142087051892058183105267975351672517356758026095332624891123361507959805527300464 -4074440343205139647276844490970010808052229358468787479224053850708044118534407822903344480715673998402733320764968913814756460 -7541792444051749131437550370667287159419463038893712135130829128921018730253201583423068101308427818790061823168162915307740555 -1517558628903132612936551305596370414201320454890625631435775037687907085643182588609436062805330988597026150223859036793476645 -6591140085443467002438387440547002194892167702007183254656681949652141186889776360123350307460795672547510863464622633652798129 -7586611318404573147896264171755514255213812732114705872658268827371541849326158561820698871403138855140301594042187495345343587 -8296969079616469879346007981374601146907653922591351081026313152884017339179855411584129459367820354848581380738645777750515335 -8731520753126192088044684618604970364839081511006806274832524720914395021711036520236353757973882463981033460910456305044738117 -8522729809358153390546384877141395094866223397312997581315815377215593011496352023911920483284381829852239261360027871178466434 -1761342609588366253125631150586581982113849076981180786682830283076537811478367306351425774976563602440271445970009753618288192 -2190966255981782407270090701820316391321596233574351800067587131465490412933509752425381764960420707947936543904169527628499764 -9513655081411394282745221856716659032453348163674130701896927299389413958771625248039619427975826651601280801943472380714643137 -0617514295978753057337209914173385759751936634152085643157967813155609425512280471102235144051790721763863647958187237685008587 -3639355491023500583172147594486316367021278514106274611239107265098592491987675254836995000835549078267373162122839134981244694 -3032030608995234928881439477961757003027720355891764881759463215674265954842081986273329762678139617217680974433220699552082278 -1162323720318256232198753258939220028085022540772566418699150206741508982674558652349158167206478285853624098497667218452569282 -5449383863141380776369123912608347050738601579475359170938129811063143046219515664348459639566915361115334890006657006031842097 -0352577524785516785715741803748070461694324222115473415680064156677430016348738412256655844328208932407174179588633693022145069 -3240824351920886083704779764410813380504193208597077988968552959949184540967132284829781189340533621232738907229081350464536533 -9963137564898255760485048365009768861444430624328428769392562608655048396702090989488644412080235346086820241525013306324575413 -6313120896902229376551555163469139342705609183907471905448131939609829452611107992213294654747615543541094148280055017927542670 -2193326928610645174628017287211712211408683079421721839813537852939457890561997238125898536070007981217325358023811789787011723 -8243869736268481951401784440593310926754240433539070013976127357814953175386685024013642745787559590618261612069606519053423542 -0179110493828168312231149822817828204338127248358983471224771340698766448231962762617835559498180861959832229135237920163613151 -4787386815157272287656433720722356482569671165537977997843012106191355180546649834098738516604856452092754246704403258051505371 -0634701773994997694376147550495812360818423051628930021511577756465075343321034591427451854134383867627150784580620161049855432 -0766676598258381037189024267219785521248498516810290597640526034223344261052531930836169758828566004912961881921058343147697444 -6482511785125094948376527886610692241647293945078604787929517099856009510498982203730650348969745313708621728477885759515338493 -5205196085155489849560658125068733947071196666550006357643461400687947338189762369344420067691692171235090223284004207347050790 -9809626775201561107404043309301598988061425083419682730787633868247584100867048954636838021112840948572297116645919603622359907 -0822943415366943321888436141210445288839456758217953163265370657515497810970631795622846252681104767475177503937782564413276889 -0099794234571476050102251924980186262893747705880229668101192044145818046711997376029940219465691893053496893208450200931362078 -7338980161503676399103395907119988361285887220551606875942870878016149229490400212073840391368478482151725734739290023095487410 -7899326915683751786630813196982092775796371026481722729931635095642264999233728389534905015911812126591048864589797672830096696 -2751118177471534985294175817313968889734356500489672942275914873801559720503551024017816293024629330339229860581633938440765263 -2579409952433198069628120504384999886282779583918285844878077794508256550262226622072460752726666294025165627679376513073930940 -1557518549380248705140615993858146675367318700594928368305022009826106738355680320673267541599976659073767016002316705812605118 -0706655774414337358133841048392051795234166451755892548200847217249090290629891786004054678210061272314883459040459769608941760 -1894242091014594788195514987048397793320863358408872612791768967887371355399390803287124928045545098723504490408131463760999333 -3060272094521186414251733828941054176318890330197109603090531231771409739699564694060282342629340263255630493316904735659002049 -1028815907660526325417480678219858187627208188992524766305787455603486273947607751634385261335594552079352038645485771077029993 -0683468157651545576501200944305620051155390867906355388005127965874177601579306536442110166029928489048442610212141268455617318 -0988081700313980006604864032962026305268670102163784987963985127384885587927642407664223367758558519122248185218742873483956807 -8435692954315269375984976106264988536738299966701776101047442064080401887709348151446333391726616352591853741366988778921917957 -8956328839854159854532673749984321247777028190876411555620913589749860701945785300696279975495557163768982684990843868186778431 -2520325381475441756157721367873710939223796803781885424158254911912476533014496257166233162377942526340788173572154209732321202 -8180099306765466453860728219641256442389031828386563717730489464926442454808958172470108839488494541309400369186661157251374638 -0628247148382602252920534144240581556722670156430583076620252695866327968997749969112676595494827895760196984828212360640034869 -1083401588117745555669152288505435653771338944376475705488767101152826312238533625308441022273664874833693060276780849703095095 -1156085057274283778724094356821366624982478225088443694900412624860954703963723162086763699442272343649549404340286403255643105 -7910121814653271873529362722249047841930063953194714561480180469523505989148782328178679381325533730833709002539304255163521040 -1625855113537607234401449098110230513476322963277630854102799933050565678807805089239388422442620697922678611315082884292068865 -4371620713456528072846857825011777710835705836437187394614071662418465730864540826899869210260117229659041798505650538477261368 -8985576750846387981996728278040998786610281073838965731512714567426037576813755214228497693635971824751946973019990502558550741 -3401249486943615979298276104790818107736649764729969044884395409904447217117866856126816079991915988836153438356752147841144170 -4762938795985970542856369222277414531064648102624695688826552014393694646959714635482411149329964264665288374841117934547255987 -8266183745098026650707351627828760547702165330658530132998099760473617506446329738701905894912433667123567916471538563863907720 -1749733602645901685261363936495062217041689057898136406969925562689807608184144495204588063954048062251421026224871438707736424 -8548102168448428644279598842714118177587767821370906237000294038845928905112282335030976267725288843840126116450813362024012439 -5938499597145637343173003399875431713125443282016722261731991805628239317480073706051380874344456692406363674536084190692646142 -0730500561374089587897509875647211800809704761282604727960645054003482860298243507208373227297725664305984934399424216469588628 -8419154111597746163254112932894914530620901371133608712199806376981269451117389112518987662727134188058972066300128519445766440 -7937806580759161251998478953470159484262859343028238192145225348422179576900021837242945100592904945106701907680168893307572302 -7516873429370795478978284132360296301129718931677825172903818753611017830921544550227392257770205145640364461713731347634995836 -4812445494938381664839724186613091405433366166945041207304600303147241282114042034521353097954231266436563888803937496834589712 -3378087498752524611421562976032943128888258876939559646852575538636633313807640898785156463287303741217790696080003514700600687 -2916828602935343245489574829087284839505734067476926451104496434541582983914416281292812699388088495707067652976139900162078153 -1962925444708479245069456050692574860960690835458249514553536707157865617717301444683893731781098151767222498616081872995504896 -8173903682609218746993851247188524280631112843215665762250628484523471921122641923241385617676960635551184550463145418449684690 -2919933149036430836155770474842583951453613631150982113752681626101371527818957365564134323888669717562193735500885632774199608 -1609040194815030093545138643057865379099082109649230423000768558709693305039551156969735710643672277845208035827493067182565724 -6908049177553254273158603203912637795720376483171212869602699514186725461068506421013630496115516175113680573200157037543353536 -7096806396941038667344905110986317666939904573544009284947400783005195693194103701914010433669991415780015087815639572682791514 -3680756978168727352707707927350530897842094443052210887958488018513662258743146529661558086974070289076864455883890457256934114 -1990854389059420349848505548169668954938843880071111806085356892226974097003547436768393216697877346132002814225746150600875921 -4374492277982018508835930955357380285574652568017468028145914088210165891776161047538281175076369924948661559170128551211440651 -6393090046195615488795758266312386404911848462625030168594274415704463604586947949625250757933039912135660379167156550736214014 -5728243934436503311699358540925223297549609990942386098315769782770878982264993140803173130768644963918006938211060093506696811 -8242993502087208931436768299544970974899425557012952209431499521399155627662162396837380424393929443574272383673835625796387465 -2907417733054963303298412175669470571774232019901402324926626651661243360954715973085766036500273697051651414938093042950467378 -6785894337286818807967188916007632157799934091531302525882785328964971157321099749451607078727217297793573097237856806946698841 -2698558719450879861393803875387234736047009367170703129862250880475805397892793129358764218650002148641764709592993056227677164 -0081971305438865752091446464085352177755237063190907377734114566649793616356658589817576855323559323530686449621884731840150788 -1826939540243947080817186653825740075444935631469715645767626335326860305087307127848152820195439244125563274241365606473310540 -8086243883958240578268878611599696204485799969418845316458163879163274209827292559109804125366908746820981499563030997204003905 -0386391010049409963011357239704626669689746915426124197111331235480408669200583724344735150698143659880232480059746405028850204 -7070621356175994235487518719187218494861976025281218293612423462113181646903473241591007825352754630207984555163787848738511210 -5746214941035113394857005157649321493185603337720914119128667915231061424163637568324581504110784614852811094476768652380182856 -9112517888906528267503001049949573135127874375506725576149307826638851599758326023611417494647191891545342374452874064341534379 -2427813650814077661287436979575407398921688136831196702246080880472345267198382221158754713144173467705458354166291752011017130 -3427037443878854401716449891823089902160247151232344993329995686205840347612271617101573796125148445827775208799719717001561364 -6663271105359323644532079372626792834540392816461024173260479629489907065371009161907255452160867279588979514640773444750654047 -5973386387254971355387042682264494417370956942797373987206113528047687059080572493246240752693790196755839336183495531383520500 -0786113322119991260636829390212550532753074849695602064584008995135867708856455125847634381213436388672553141147016113632022246 -5315245540985412852477846866194175059739189599584743384794049685678013782286205098025299864897730658726559776885622145372207093 -2947046237055804495388214736381241294012375243250351412075115454784594240484997746146442841037234277389231586332048832314609602 -4940560326735767175083614737052886039378277408442894735731934794992054788139312451587128497131293085948245032106415584594528368 -0132772291233611554088929401128017045937329980274933241381990578374018596495898631586186020586965351932668997510872004538098971 -6387651070790112849045385204698059096706128798635300671169181792420546539133767532896269735055635232257735434930885609585584847 -9016459024097607724588041340562451108743288014737496316921528251742165151671257409207041532182399287641327587310586187223956817 -7534883738445463926481692970148340291005837757179973259685921796789142441810657257829230854362459214897426800925224271446152113 -0560193061957298132549489635518745231685759631661778699250394638322691452161479836232887573811183208096513244778566157714733211 -1547430295477490963534296984638628258877576273566145152920369666682577588376652374130208299869130148553971805471715526321961195 -6131510592032893543765491267410178707297913936975805122290905928404238596549066769665229727337467790389337961037867643489553699 -0609065177988688342181444376437189336384085173474299503743870199156371216381879438127542687917993261590322648797772549606051885 -5486486858037007564853644084702405129390388809213365108089374357918264647019430516503970264903210163964653753490047274772902330 -0461300174226405350596681300475321223682365336534045385167141718398138848125986935473489411898994178547406946367385725330213907 -1293509274626976153463652826393079169386713361776443893666230924263947932847701762953659799461100689690446626123374959253884277 -1306373580520533113454583490110255646387329350405309931889447247185635126485724261288069862689556565591921946727772549017471108 -4575946994632942954732825619796920704805541065043930109567542878956936210283544264617080903536339854736947121491562648913229061 -3705434044613436537344272909123399762720035093491390444488810776264889843570633561219106570438196072991495500597843887820183050 -9436774296203905562085230110417550251074216179370977223886873788396051869595539699599654175540263842606847704783570758848289347 -8739544541060559735321933455321086474549444477666793232318769795339438758735396350156993223591143789407202109979058296632555075 -4292457420547255026544250001229816943682894619632431862491477990869504856164569154248439119907994750443837979614731379296026483 -7759359950784829354681821925764141180511597239315053998175532245470389364554510124781233539932768390441633522487434841829277108 -6460068597420725351564334958788443977520626552046510044910725038151710003467025913052244964411427404827820741380296783360351862 -5211054158075000733081570753562084145801231533068994378093380973748015206056523195741701721944088905307131000364624646104412959 -5581089920926259625216459931700561828077094118449960988240945610479754976194870306805076133937666171790939426378434449418282506 -6039057527913534217575393813423847928955750038761332266774182283692275076570170104686335201401167177077211434292507428463611621 -0405115165537284758792010216853186661681734615099607405177733845109910013152569350731884598363743840624814198617754273927011515 -1407618016023682414983073935592618659194377480743081488662206405541839291934958759003119610099774589701968015068594030177949217 -0790315691986911016674475309797543936300728937674591920985541138152579574295860682375269717640514911824203818306809998011275060 -4382117983381412972994275528147432373242673418215434465602805780063289348278856395267652713597654578622689358031371373016193682 -4971203890127140128708179164505005602256484886747097346823610758765747601150832737555748482400760746795103492345268624660081193 -1238474101549902789927134668369786012288633703563425355984226013256465916402333622807942597885223175366854363298056733781480165 -2475056989181989715935840837103963570756393472493139600699839539995767516688497969127775142807367604482540314805881080534085920 -5110483916952128964226635567750120557932419254741576165448818621280817929369091427028028668168593266857526132988629197479499338 -7382097529770364245616319813419439630747996451787212372784898440040645194051307376865641947314145623284843530906118562837024282 -1180719306858134644273288620402473339088866088558646666749328622134176944113672979075244216767608666882416653166422367766359934 -7454692494850748528168077614552490356358640467830959916873691009192683520419187156489031520981784955116022176529954332656159900 -5703126531777606205672012335960434796458742284617167876316278828807209603472901804370309819783462306443611963348173237324352923 -7622935915352142387734818536448742013947936195902370636105913778439778154319304174619967238291501475263405722167671985219327033 -4192469391918128902822325360387297654953797790226858555687025028458729211895927349803665945095655786671449147679921097155626406 -2780677237649339975622761955036413080116980723465856549727438471457957358521359815258203894427475417964365478268462653223640340 -6384355742271287800278025268983527483432389226283229170112845354988683227778986191910815226499442938779725664362022274661446656 -8983529286956750153487719136198257278584599062333134754547317517831680020077715886321603644059583997509690986046227389994861108 -7329782796097322937140185361853575699691754834694652931632748528792770060065607908729085140248378226282625852546158156687855610 -7542858690282896923167331772353246169388345238738453225427851985834084721866947550098641275435407170332769801857389664211235898 -5799583185812386717849837795175430854770749931463501139883970148364355569591352178627597816164651268936590016366615235430971843 -1626691744466309451182517845050907803525893409042451069687831523577743242687080029262942742968372360368621788807914146915526880 -5318459023686131069631243003764992320489381131276662425282581511713606116289353391248019203404378565007089996278162834011328054 -2940914263304203321901619997487124198689066488749388375440671721678381773728920019056941032982814050260828373786697860844945937 -0935106263610485636127316359361586585062460943315331019818757835533567856247177900197592421873824025425985298148601575872003838 -7678845567273084139170475285839065925039600025616987691701666903861540800590513965950744386259900437461673353720707990879400851 -8954549187260534626790030686600472676242184422173770737899202674956746463128211733652450269429272431346452882295888511514249530 -2678743312277245350760231139022995628706226321476561623183303095250671287742041881664219630594695703026351221927214229218759706 -8754746770599874955073426285210045733061478934256278154824723752843570542480374148666553082213624470594178380618511944338556770 -1258342170448502309847524118053510267304683961421264512188294654208652383435713573419843151024833136714917076044792376946554552 -2686790894179727162588194653073820095034068415445717821765878768235572220948743946189649565838289653662296142578461681042115408 -4979975702994756010947392018214486397764251254586716632357033001934850295130508675410334819960903160411122706650159720668896818 -3588969475934951426055953320940144471459990302441248110905750552714828775127383961567862284258836730043491152173444309138622805 -0885835602018492226235865580484440117123283431801851414462459989105042310153202450298431895243159623304698553633960555968674076 -2495404637338396778354332975443524901010204103490577360377282407257576116606492214532864036869380580423420924036214250605437552 -0273823801820228766960129999040441972228765926389245168282516822705610151382079832776017382538534107323345050070717318572440468 -3719693296470114077607298610532514071278447231443437795910351532332738448270051379404482177889663554053263746637709700053641967 -9828951429348008059079973550469791268813640030847883313731919419849614743360559828672182938947231250356355114573949483277719010 -8160147790535337222916241165963603517851503563087426894556730214593005608351479878086372777584308199478067490440060949884647159 -2948684894394971841029364986618911826288588400559264365297543464936912860908849309130216792677280193265598685884468366012698447 -3139146768567604514882268160880542261286448423327913447026774946542138981930662613526814753066924945383435581070740645979592320 -2648770517875200683345474598491811627153093170689853703611806314466352414707945002443742160480066256003350127740349411901099140 -3308592816806695381210143529051488111319581220479904092647583948868369653515446635908476209492392955841254295107008775348098134 -9546057832057661112548846778480873064251831646186943320977718022174333455691510572548784701482794043711785251965805930805124302 -9797598220825240487337675580868560618123083511865310119111306172185132317065154479238514833175902325985968356007574306322665172 -6169700545459665615556940263207457415925074513750097043236324790451429771342105725243301487094857682554118664272164353388631072 -2065773265591123476370674843120027879502951065822173174917589895449890375502164860452910893685397468281488262706240927914630538 -1707471421521563472417257512298478800552951214730430454446551411959701879859928077389843110236600965268158074916952323108191254 -2504020366275453319690764881376901720307904782764373433647976640867427413961893744590272111954111461916745192557787193817126040 -1588579151481338108756894573873934357158704669830936720767495898488860812251579113152660788061419535504615986627104261122375990 -7331623622011754370645778091243569467777379728540842719407347993337611435365175147413009114962875879124181378102542276566594108 -7484609326756980072187285780841286543812762762534587441056462410575222582806689121646585229111979073490526305371963936438467919 -5706586317647554978296224372749817614542161459685489294484897802898801747536653246958762657311576344225567199024088879682797895 -7982416710167868709570332702438980645861985176457876981357976675349506324625350574864591977896798566893422693217353865223434242 -4612810517637816971256206727690640808547458195070320671241318078156152911173576755031013652809873321281227880993755057868636257 -5869566853914426396407700744200965755799089377206196772845889331869496057116760154715122075783787728423594874902542137832225559 -9589225721722482637458883619679136109478999500918895037360018469933679740571642521146059558547268528193088694289457407297389417 -8114608149302113225536168603740452239048816211285413122470267658232185443153634579198429078537401989102386028340268733889611123 -1658771744647637356624539664960206812688702241127922503053926273465214516451739790546967335354319444825617690989800359892589856 -0053465651697302095039711511050038742810220818349852842019182724663703883278427036626489847521335203092583455303768771456368837 -9461783935995459315552854731516681231226811974225458662840484653357703794689886592991537310946084831023202899386375997693481512 -4533585921481186000403378289480817856084298244494770175994273545179036968044114231324393781909984894250047249639320078105176941 -0088337423065130496692628858394850230047403024636567775158827661121094757863694577077324592397639708861018849419374525563390572 -9433907825695888321692655143225283986904641901823924591220365135713855259383744336203797993519930945597887702113356326830645826 -6988446116797840398450853279454162958768243775646820798515687585868046231740714350466068297160555230698894793181661331483900976 -3228255598385373641636782196372646263654896275851591790742732186929071139789500558984105284755563028281035328678092579289714000 -4681011094010579149015425103883784622081638214345888273901960768244903621448040859732301956914911242855175944393888342553563087 -2560980412018398873410432462155957943116348971819529996430919042949095207925589612393187400930103605496273814170584912659092382 -9069469616610979589154787060025562176784632650316733720274832314981371020706161084351225782272365506817110974959084699634535788 -6765587755549143676480283034752182178980320308874937062805295265849032617917049285075020134633510431916668093086266525800515736 -1987129393090049213521579473208927794007157494973792406906256045288699283419276005662236119067885571670938877198469481410429981 -3722619269607651225319072582934109199126677644296125933160645018724047938190291886105626593185859522559253131444513872231301882 -3878903450400959596968323921819162239731394330071230682797573061816799122019281619186466630116704421984435128057686311537024574 -2171772674581440679441147914828465322671796713303729214917204516452594596558898159147461291026535836576291138961274078954494387 -1278996875658664588862768319875101010284199226028473900312140448349990579106956212227946883352757991736474264479730037979113425 -8251737524782800721142346398693390112514424073577724343296177123905498209033583895128953063498814237667366732979745537429555278 -0896743149526940034664390783553213882383502205749882093466354195761918368893140199641725113693740413564898871253806941096124190 -7796854830589872123486600630498401268330698814798157768931103798808711643064916232366065296644778046047073412187780619253278677 -6500537503531609708551372800808683958268146390074367413801774325497534682441389495398023074938743544207866592122064463211672009 -8374007659269318743410884141200642883663626493756879447578129358932170292700541285549708569643545027306452528039696051958912164 -5461313220523803049639223578843432913631643532704665479011316367050573380692644563882130994146341345324086855525040200238888685 -8089200828994642111859047971321583377842360402699515255215765930754030446170133309029861283548123601950771958367816928039501979 -4921861981592932540366839797291842409375656173168252866766746284441002285941098783812692417408647250610811303546299712956961745 -9167799975366484899208629064327399424255199740686280222254809555146344897012896217389558240697588684347940576269967072665683864 -9259388885200851860744997606520800745929512006692275733677005833780389985037437438896650034386964970221299725643606029624930990 -1923555984126235140744073661251739569863134027553494228555366490941034788475845541690058986834251129830243447779754071605873640 -8546321296959618681680784347875855095908171158196021873844044080735403609307093046577378976184646301996038465275795577308210631 -0292841602799520083981301964025702228115813520124006499666068950846030422607104364257191751077960220252620197225981403964787782 -1502322992487049171872430148257934075524270686852895414785698734102981748355080650539194240735935759095611779799454232906920170 -7645673745116807956634247517521534891766878215315481669195796109233157590171328181080639943010458633508897705148841450600988472 -5372622766288568973430030404326811200585106334044292931194542876927622884286129265334479806408440904927200146880239590676743160 -9737852886366125426992930022076166695307759649277919719824038921587655496096287480936269368326605698820270793854355939980396762 -3180790631743853089037422811844405317287386545411386410379668362987107109358079426452748318127402761332147799830440163526016129 -9051792458167155549317710812956107571797762247756516089487421498534083002847984096816239076561386593955153876706013822381927681 -4173095560231171732875361485159122658902814416236442472154640300288401422165407659115651941434514022078384640403200843998671972 -5966470556331046673745430553457883526280940892044422560744252802816860579980940340917982940500224988618235941234788610789509168 -0789375239650015659257828854233372959702664651151444414363942452653680312005125741160555543069598467797693116222658921071003474 -8906623899466461239060702070337224569185523906567051838309830757794131815206179504935357263945463042333252081048931892858013514 -2565946185596833054040544913117114680329109501977878093743966290348734278988799428312347727405020457211698124070822545220367599 -7887639027440626642608258462581197685627001806341140783071773706310063459682140433859377089948217599328491885205500920242752765 -9105042785087589492163764806502467978793005126850254340679666786999523605304678430709511644540488408967072195820451312364898977 -4806602335002501148210169758225301946374240051070758860058332659173580299590222924023022260764063882929324416573334085874519685 -8860484115578005776711551777005731510087855975894724843956874006078066036507250577776451260714027733005242056180700853839120022 -9972510062716845450929888769682540876602068670550887529330503339523242901354677312818632650357341649500497585776441604969459550 -2623606137079639076047135393717143616094073824102105929404170935516181957666178130675618698894069752882863773580174806425770058 -4036671892720176871088682314351824213287902597131301780764439176800136663620269901795969751693427552587437595932156820043424392 -0677294124292240149296066696637747776445858679559483174535961774585189431151122220911414705647847144029722579499169874681984001 -3515611659295600392682520429928899147250410034409210806506732173247308027181439461299331344368884698174936563300497600474483708 -0063773420552619484426050490136425686777123343387056930411442496315945289353053161802745807953399447036489317450479861853401831 -1025437802898670603956439520711493780674154126180902484921242469929281393551385642769157018539956452797615106532069322627218483 -8759796578568398063968102679425317647163292357375418469803494058822777510870684874739268000355169575539187937262850844553141671 -0520130761108166376660600783005143635657232142524978468353606381401953088627097253750920455395288123559132491257402067683088919 -2890887289996966535342242107315365601206035014159576380219737883962373302977227719789793402712556663655879816814402801231940391 -7075049290134330330911964129274745947329781151686133509827045508476840011833420977165532815261601339404747681713954176358695787 -4190862513692697255977164180664759574127822507052658315853043337010650269787647027656260221445450941719360532423677717036461514 -6908155746961875390092893184110336543104604423996158420042649680420697682015958655453176718660496277341803127921088518280061343 -8331309328194407889735199978235437818800306669005429636917360222653217191676841870581785131998034245906906399415366961802496511 -4025301862689940996141896458524993405457637230423945068131717803505952316603722440206101338781745994056920279938566008667957974 -8407156560172061727221211500538117499687747789630891734019549331980906693172176957439813668311313041124185359330130579817813671 -7466416959132373028000515440426004927338552129675365950832267054293724597329240325990928091976976797329108528262309484406803795 -7029882344252063506996455416881601769204928489785629548747090770306190718064516950313796925310576174715934481881905681054628070 -6880642279419324327941511209000580929409891074059158709439715032933825582097408872913695012908119133558817540571147731630417054 -0450976304961807996926719984418185237945644387146277128118939816965978556618267349869880710186417738649005061794411263100794703 -7430304052534898545934660709004803179571319216041424124846029027406133093839979267839656729246840664461817790155804024698154985 -7645544772776077953527747512204638297554270388027111651502874795299134795410937797070656228161921719694817879801901345933313665 -1313410076049663998827811921356048583498283359569530324863158193199961087225704771561935232487625934010979224924950123845221938 -5542450907649094312430747916423053695607417672358828335758664117685424978394617325307248658166202146920547925646776725087468720 -8125710483678181819120321493187443931435742819361342552711290450551262872707443639793745995943576289709507020621251828473114770 -5808995455056792083922234742431742082106369821885564948694790039533752228468465967393391425326441602867483086230714643155046641 -2407915004627569028579526596926110527896052886334582385573230907225818330304996992697006735418150830862621130034997989250568103 -4747836691209220024929494385208567863244371223110054782899030754719240501536232821233744154670656379727685527957774155672319475 -9632183735133215405359145903218054467186662532650851575633645907886287911612022173510068469813052313582577723168904869118582615 -1758443894147315526858202229285381300192667883978558926059924490571584269631902778078169815289434853467255533171050775547788250 -6827379725903576619807972215479471705793002981926808670091729392075163455575073588508765374074600361763199064144608650998814612 -1139348883195112842120618191199370895634072657781661691958053236883789482321308598352679539450892103726749423679416567117182472 -5628380449503846780627597266237186381426941668768981275727365655268389180764025467621494196092237996217033830813378898293373834 -6249982118767143075646051931844250281862161753132641089322013640269043322260625061753846454820580624883961230554153956989845603 -1506389246361534372134008198497771836659467625678409854914006570144648661265229365915719554541771143877999578976720337073985818 -7005263179523699177762675340194056182817188450058666203568903779623473238455975919469726862072009578002483873154457672262756142 -2974648493466373909300392298493641388947991203930909247567333382267233769728042131150238686456747730553128288781731025800074389 -5103801198075821222369482103926218823537252278659224466101143285542928579893855240568803378461857010249847636234366813910593321 -8255444368358914408018189587539831385866661807993390145935560791507824844153502737089683973595182396850151415917641412882278385 -6994623624086457510788033568938511176649748143257081559534249807952079088004873263643117220080770572410226081636499222544341556 -5868861827549149829709753995576140261303291609060728919357591890769431437067208298630183272025511291993873213366101172628545169 -3536668590020988868465523872067378130539719812107645831862475320339405404292929655894962610265222780223832442563481658864747632 -3855559579815655284020206856324714890689773172461142431850331038157366681406979208119201701019291754639995462477549126425391350 -8450291792039621077539436402960450989801386738795258875543765926494042577259109968714035988972694939518009619956412673656801521 -9433075795122748111293126771649210779744396506362417079033687912993766618349565561906099136133480366162159291355560623721579187 -3378797875509332216281558051343681937584540368139917115626876588840206579792879445323063696609803160334574023091211019696117960 -8286659856511129135392256673984667705469454940089344874655311260297659378259031305125448870028720171028350742267966605006358033 -1559883131888908511800248016547342952257309383028102249271256078844439208862517563884780187208616611438790446776997799461384713 -9213000700276768725565441947730287329227888200262127732583001595805481558214719061412862292967561082950848644790833398460564723 -1237463356367627789252505343790157426584837476951882453112990120548575795054118752744721410491509448371890573822392145256573546 -0705282244277315586839396249472907788988824858086668101214804950902161992883203183045693099700874860748969961552066568180233875 -3649804362910298143091615106831740058421008356128934335979284102172120855125136327683861035088765145754792315464262726624806783 -9434730144784579817482674138286237679514020123482574946846405367389289759453442305761634017866345369865209680919734485563877769 -7735810389258589718835809442124950108708303704945904199371845065484839372522859566124912994258804441548671551838820818437896075 -7383779025406555287701082383561184897642996999173556341153509465466385364878232088945280693653997350128318569872380406482923450 -0873625836034957145587001580511059464110231294763738687292419746897783167632026738408026265866915946594910670670203196220111099 -7591072259741426420367322902499121885937012842290323842004604562106110626665272233088406003591488022718144482545987747891823870 -9175117307974364573779518417573849521480439605413624062061689756346227400155445091604379572899069013192269044493766848399848392 -5240204070345240378009455038862456326732346785249576960346569277468135720674493354585769115025511723751059422380004118585409709 -3349173998694448270286501817135410477702569648480525937208264068896413487832339295364105296137401893118290448960552591536754124 -2721855377073042117183109540215181252714104113649070283807754222580162122302324470826848007123339852921541117150545915474905734 -4442237467667117475961916917266329385273400917266015718314637687934575915917583933649989627896013912399205012102463085560527584 -4091026285900629392132231811067909337191049861336953793421590084466340471776345574531068461460044327698926685026108185944785273 -5202568174541673346987530914965105932805689677456919213224331168071054852507039901870720345655716025476685968559834858758422493 -0614858796890361150654138608860068135509273139791153876597516417474596470901950497034522305572817639212080825359999795816120790 -4690019462662785935463711750437540580321430169890806355137538513325878535253326703788253684313085653375194280379587086774403636 -1192297531414960747356858854539457018921020998476941206542822005080405209643807598603349026957600933047420780702135587594220420 -6385879114957936148095665992720513226197859511089355764654052901972661068207137358088876405026746758171573905075146612191621724 -7225256074560068850195651541217829216290435321680622077492940113765770295891334808874940394348277026794361425754981697514840551 -6579386119350941004072171940171520374772062901476128261790580552298150743389764668933362002827319670377285437400224631386514541 -8225060930462866114265671430768226751533399557663700459188510439035058277166158167696828360029527807376628848000272330091576713 -0060985472860653127812993949032906458731116791182858234879179245998734711417931089452148679024170798661176089885161196837664106 -3722805008939449259124307009136610112592018063781886320098372656598331954054355261215122816645348365251690431718100984807641151 -7671563753475866652087409998956658850991352510305691362750704516857124752942784347614592502287785972007339688267613862027066735 -1058283061155393934892259910225706182663785747481861117691921311446649045132526185682558542054377226003665649454406375422089246 -9732227956822666337303879201449758438032098745926653063569926833474234804332766368153105341066282800778041496886005184241210550 -3671076559003594556531982936604847786145732585941552091406028722895252734130685947197552543811727116647815405252804851390263345 -6932108260738047486627928786730592183240725916073436786293871274003576099287405402166418657664483313714856186223383473022466647 -3109816045417430083537878210451471667742535838802468841651352736464574926057073048472886864367560530408263557356129708697457730 -5131047990674797494394562345612521219564146779615283892037401029449518064490250135341621616256327661631926681344727899774392825 -9793560539429965156147946048811944830887554283992612919784433839525971829092056423046384752108153956186882584119526879128063725 -4848894438740997315189560856906795393017681147097928684567412396811955257068230623390617279746246419592475583485164533349133972 -9247196347885177565475533963701634576057917406510305607776085697222055528129649096213092034549229625900854393776713393006598014 -0895574299458423626122169092017122327940337399418681543962293182652716019527292869659349372977261887962838657423721599638764034 -8069818312801265892359056947805299813404068292205524125399036272188934298155723014962611157660369164361085013693243392717540968 -1746313469892957608005716135870516847580996237870651257913684437466577959076954626426758903637186057505535214913540381448786350 -0826130380070802481888865468100577235559992056039751752075537240976306665243883422413804381659448597324700429367218879041686316 -8783969310605138136810926575209117557352903553802462523920408350875226887462880478648547408932195087998226093346126517623953622 -3655963588132204550439064715232312197339282921758181601943083078440247650220106399066615678880555199248431536315260442825292972 -2898418712339146920156618115849473564647025888554958680753487875973131958912468912448106432964749351366422577093050105438712807 -1852498129286540733225557917645869957332090278845330056842464816843083325044360873406582227952116884337704935341689726805650922 -3976284069253193914079828201683985526108157492968673193265258027640406409120387997580216531505549000204500196895696438933985023 -7344227386409800578949975082890327124630045606308364332447462178940410322375677488036092734345158152279018751575711953710675611 -1365860719506143953539467521806358327791893587420884033512557356449628421974197081525171097681451739962654458105945042338824044 -7339951041651291336434788317295707347631976285149811926440821662705811682404836418364754712250487175296474328282212659994274238 -0212161973979980092408896174977830808566631947896643996545492647236993898876722578200269918604906863319277003087190525085408577 -4872695328272197013637039406318385585335721591609046713028487734545081008963689929406578869624586103965589484238888590831714070 -3093781382852235095749474972285903266360882836791963595009076006750220113661602476802687021999748113402446232401462878936110934 -6435034693320558902105688910308538965196623309949466683973971294957981775446228096356658904951613108961843850602970532678592796 -9900412913465232057825708257994535036127184304885007026505543104350741668197223958911527343764741682299736861152999772201279599 -0514985184283479308437214277006973884479296109534451984897036545588323471166529442587769709637302971344236763633165248653048272 -2548677505362732783025625571327094753804197898599649990120724885114160782630110803234921618274764179324553264262464188071111602 -1490102219572319216164107062405778780633273426833137366869390517112371874174117264586848123441331500645236212846316718716883477 -6374557134532066647778099833443353940716636987739316642710720220881882944339283639205849477871629369917099561362221287484469397 -5537933700604880504714026554029166587597577826204845542181354963551493735767539318268321221914383282788245529093887530478824907 -4539736948571324006868573970323898689460869616752573795437663232396854974783326373421982301397494963660135114656842200560632231 -5417628879269942844019831356484605118567348015685889718110291011794547506306795984565230200245047127434730978214554859175571386 -5244295129306313578981901753289283565322938724988065200258490956019375699629296714989839545066652554067148655850643910689520282 -2971836240187409511885225271973597558472371014435493899110877817281998758924278138897958733963027723716372919312791817550414257 -3718036377547310037822620295119160273747183347935451508155041258644862468137971759991204189248362267356043409939280563151645203 -2059403653814048643066476915696010105560937121353588493219472721117585709084500577027269061641086537899045745026346755806963182 -4321247098580397470005864122314116779988792921164422171095663365610591552259489098505982208555327107941284015766148898178511334 -4129075760977557106793231123557041651779523250483585239932004312719534628408382643294636229121610127684366632908893383504173184 -2529072874533404417364878145806482135038499775952105421793815591456627903830117948809720387389717200574623969207051170720940841 -8319746694698707336604137199806790228573013581807699678418425604568242103303802544153333753105945256725487631110225791990763711 -3880160358558853965367146276153313624158725831047412244380280879089394407413109649993209520904697096729360273647396579418687376 -2091906829462709596208568404663223009844823381264480008433097662223468678702122339891481765380241818468489069582210313140199504 -7634167069455911451763369770809802453049016134384625283172635485682336911180471943157282346432504400241673963332048163371168819 -6945528084709716553738011980160563280642542751055915815221655609127228922438332498633425574184424076324567457335614537707491118 -6855985221224698806898182154405013337026345633363958698774698699505064139860586968819626692305575161911369355200549282693239574 -9661995161189339321012455875057211575581587182476156883528607442238967236926672903199283225630412167629967841892682077069456544 -5556977126081270383421853880021926196747677623279360503448724398127284807443362608046943892392030345708092629807650879718315338 -2008556770184273576766805643194174770708191017610672185545130733621276522353464775534219302741371801405182864900478774809576537 -3865082900785088869003731961311138273432940384506242628178208362272250891137755623037615929981020628600026015312604846649871045 -1810271541153370013506194385701474067688519311563701121092950023460871685900667973434789085894353689769155959515852286976707125 -9220855281244525680311255117572398240118776083069705246489217127641378521494501271090294888487837045515780398860147999941580644 -7341485956164711767365322167960284966203049807458284565556017984048646824943506319395879136232290301571995491168074801397213067 -5371405547126368328180403806382396944697802094247261778722922120527093199887586224288144259646007747572032786762234373440343768 -9641998676406552363362334096338343938226513712459780071504106769464358782102176567281764333076640338559714360625098972864983029 -5780224793125175832096440772460219675603258721147649221639684097269727175225573293185628479999177881598175668238919939024400140 -5871315749737173437146622211284749783435729572078139529891438562616324259909214610231102730312223921245301659630109254504380334 -6697637358599635782137313649853967748604644159075078379860391872979880640358744386814475406235163749464766557762029498100317344 -9260432917913444420430985635427292687992391436924828756222785655924726309271829922076362876173530631675597755661167920958784469 -8008272163146127952220122593079694523591964786341879588418492633364085713190449203278430539536800444410958318893570820694596913 -5865771428552651226808077349460469511350507824410126508014924137043903316541107301501243645730254790431504727160432598689746741 -0797866504326277547835398517451743711623314102885283925539211029404096358855485908679412360891989483761400122402649553985042303 -6315338269917337190802305575034003552890761126872174385267928282692687307003769845400327640284655468895977857113820663582843212 -5883143761391732179613778683464000760776952507578651405618216504779945736760856433526347237980076786027307666785673805176780505 -2608019170724255979187609288672429113478903050968752935506997075853793110328285209939065370268834945095553185289660445134585271 -5934178091636548622002305410563118241322636012045119794891759960583808782939464117247149044590174301040963274743429124451974081 -9822212841254646950102433569804383682318140936706127266382165162763534213426673482380144302560262856995513292329891211427952322 -4939074943058922639133209628604240951813644498408022254626546671648111368884617471264005460319454857408802054462873323814596304 -3567851550694955955743156890344607975932611999373517821856035756405925438219730313496771878294219292907299376903706456079314724 -4355891716120089571168867921156570013309057339164893294310027619061553640293850173132141828093723591781265620877693908024633891 -3432150765823697928455051347308237232788126878764759364421680111689906395962403729413891780224106047993476140159348719814489238 -0234684991575714928121012708547654894568292786765465546202194583822334911755447378931758555122045328265456840620648627956740582 -6213762564459648735386518381734716590458385722741140951208497160837103126054522292981022939593107580769282971517719856277138950 -9795430658880195944561326976463238641719113418421451290008508454179670774519228875316092692131997401436104108663905564902246214 -9652373982485787988119955149332007099514930250170109206849474570844779657182243727422415156736246473756296181666403081597210612 -6363221919442807657179269261813196315614323943076172547080772762082497876523976444410926957078802241443845971487934887307740781 -8442538716705496485993660458983193034639571775952652456130115624584796446966906201307091498198760859970990751619599499849168922 -7540755071266549940783200519568012630337075342163311989445430751720634069245959298519839175642543857453232073106471321794307960 -1699245059009156264426959609151370644710641713396754020166970217700932248280718651485571836633670709702375632170998942628345680 -0816396190588432801059693946646313280382672711087244012208759747817406868034578850546787526313820913242493648577159472787123381 -0759322746357530465987827894614798343895157467747058744481984104257507440485290934854164189380366013210043776529824930881371048 -6385658080000822018084506735695449199723297410443658699992360702264595362859622022028092450523165950738306668328519968101921178 -9290969633149036611961423129438616262578501454017560337962795366936304454531175225394994520495848281893733418969823834849646325 -4866905011511861701376543806753349151579844197278285044705460570867283644779510401658626041128258372474841328027560368075591684 -4097340967374048459759351247293757377219970623863320131555594933368226711740987383236414710324945367020743532195606500683770435 -8777289231702354648686196142357855572861820397757772835817870476148855333166772599103631182225390962911857675993162562793056451 -1643701292272316612682496492137369576459996136135417810378930005125534965897227946840522877611416279622753205256995171831362038 -0366738891350724663780781742018384952618867530073606447030185424566647732433327301660674858875240792034393577096349757765316310 -8289591408206074373434407333542355057011414872348953466323958988208406535831896578204946085981588003478321397316316325936083627 -9704718565559121039339280928457498417206123777131839564784077774260566019404908403357317188872113841441577298919813210986548633 -9293886303171570837540716535349361584600602170148405662530496205079833641395026663688854207586823003823193883976384903470625532 -1727675041270249998973772127828169098733155135266069947499638944765750528948036161984830730668217006998355034769138526948886812 -0092789759212121413625842309085282315688319684507180858726957280563112424218015623004324904038907228951254860936129174811193610 -7248502251808372373101361237612617365642190393287142805878594705588056326330546884029678052177636399750149538893582015648656691 -3367150919108114535725714981888781359653934702237037159199343298241562681613327166427987327289684634196866794561168570101129576 -3376393226054192039386172081865991731275655717454440752850294664224843539838937920883445641690602345087514795742186569107517414 -3623971382393048718491241619316545941650237621831224965329865224908967972818626887372855949653336237529478398264567160685068577 -4052813893095863733367924664141451148648087387776942749014403408537141959668060633169208644494300366994545481397333067992909358 -0667669402093903159518564734675653958529086910570255872008713355774046040785518290333034404789497402572158389475386895486868259 -7468963766629011848413788837165962853506507117471181320045844652746289086413801588758664510368868946415159144280007188633881726 -7244685543653493127669292847190750279258471265994953355225441242455255911176450067019362851931161106818923851255323971731656588 -5234890473800747514454607303289634698091529945347698407177688996229422965619449293992367330399443066079751703944482713291326343 -6459044264277571164204689989304404957960666476059760392612837445978755062781098058819661144475485054149528425812865761888665230 -4335062014272927898970122302854052906295227383275313276798239957308395793035503825814636802802824167294443473540831595897555019 -7272548964073946058176039524239703608785612474858328053422538963447385787828187985994849316214926394617015487472147004996421715 -5996250931763812814551030631847429127490485716717613966608339966170653265360723312151608339298980087240888475983661731432872181 -2297536852364764322872184823063403907099469015512172454623275616030363118664676670421610327708607480232788374190290021972622793 -6341746181410744070773088966325798253704849845010112635545932402181743821794042899160348845322610793015131752714444557452077603 -0974929188283489944704823132680006629007254931129889666199080416689925517182595848963795936091170595822025233402048475030835352 -6345563891720858751435127759306670956633219054037703933137927110019397801896389210768937954353107771885376564624836527498565777 -7406605189056950050564580620487220225704555865872099535962165458171814654057503675391062376917680202395298499820248250031013118 -9646002186451042668001138188414741520592517338749162144757726571293411846579111672780359450504540363461450479439757376293399965 -5620887367929571798109873216776069586763980872092222280624201174614361433514239488022226011723867237579885237366697226018636145 -7658816676965243906096876039909445364177324988679848256414790985301032302828151276736018655718069421805321528401722943260148087 -3504531887253350368429518151187892137924735559724530027941664978322897818820489478004391185810494126054267658700325358193119630 -6476950573687760010199531144942136546086284325150545828401223666989902218958065517474495615521528611225439578736181496123291235 -8141273699960775743878136458997315091877968088833966155435545803714212437024032432947661397098373986850161208575249088483734667 -7526564869781879172205819920641629162261070844597301726270751056013595355206013946667713217060767795442616244184317275433955181 -6807778755059399042252363801724898729347456888637350665052001794960468288523356956423878794195125458046129085019792922364372832 -9606605635909164393346308754559022246397895156754911940817409436883533684563312856180585298884265000503280045621922703129043223 -1353282688124152832117904166784884443448057703427122162928095824570260033806131301099883014390489674198929314751517488130229287 -3941712694041861559776002423763440625536805158907454771393762216105225325673929237051966211204216493810015246774275044495594616 -3694132772158289887311123798026659094603586436166517150338257882694213224057803554027693325965893134619716724281180373864668897 -0965421930380580362871564338408316626579345707567981028006568747619015807088576948951469852219385041334895298633260796214042764 -4365061209195177145333592267894941789748549729388820653503884365772532158665492262305741107905299439181875779535940222413616201 -7002692668339856374514202085788525299569973429859432424389034479629705876996023622182434169328690891870930429505413389490533136 -4295933444463189433951574721728951160043627069745406122977006157620687110134601604174649175489421916452229565760756130297102064 -1960368933597422050626608328849588309269037647433491188814133197810733941601294848194060829957660144812059760171213031036827489 -5163673581923411040228773859014781426438397455478270422462230943695383387244412044104565525899545629313341781559828594738866880 -9340062964014870509227099698887936675774112546104074153547361150335199188541340855227153532746778775047019132401967059701871242 -3486224254115155530038741441994666898680466167832566881940775772365423817200581937154559007068187829334117784945473428671685916 -6007443619236946702946484250753989318115938165448366527641686620981129998037010871500824063178061129082786722904909804168031283 -5077049104333703032159256335893142225775472800145797927383645074150506549583979834771372332786212436563421519736302401896553214 -9328253090460566002578048864828230612968529907510194421722878024618561333479693530779323192843841998003032594026649617397117033 -6902940885468724446328665796554679901999854957523032465138455983570952184108442966984143957137952183112915545991326476857170678 -1147940566264959316051371696041947904637481710293264721589819021588178200143221071704512368347198312678908673679523259812561827 -1664627873674389755627490418493705966611982979380988314739579220409030725477944088566536789756067951060713524593551031845158984 -3598081566704365022254984411009080907751257030857437625615151390400729972784657938585703465777027605245686537246903748184890274 -3743523412032108137414706768919475408652123860125336712812291505493576913938367683595349130153523703056997225766687176144402340 -0831940301479210349558229457276992358900461281585291044594812536347699257011182959431429011534075284989504481274394019519138849 -5294182590907051056305209676408046536522421503936187377406071503791132907536141109384530248717758304915645762984125835020638228 -2925263782209751558565689180869492270244285946019041108330056058905348740666223484108200048676063426609063511425234359377856803 -5066811579460770402822516077692569897555102184861090248580603480179709451447581598869819018321983813091599472628576647298283510 -6074763977940235151776420120127969582510026900568916108091774893522283047922950769687105424389690185426520673414305707753060144 -1829809239775426957360751626081187328513913192137296926783947378382044283754109795780048763911203026361961183033933012273700578 -6256148707335785289325167505290076615535370263567053348838880542975561767345020465640090418173271179915907484593965695502745441 -2416400711412329501943051474827325196149637971289654356289167838113336024091716837472756809029018726324544210527893716549434408 -2077670900805210878733285491095692143052856294682669529394939361462198474814099442765549871744436963471806447226559851872954947 -9082929602325709346337243734095265641562540772131425161193766826203999287761238275537747088073534676484013517045928815906520421 -5721840157618684926859754448303249283214882375060250302441861554867804071849460117284782240184817225436567120551507130457965054 -3640323862784940017360312940091490694469989530945043763136591022334344797040629558445856236949010602808244365211211804494530091 -6701192226260174575156745632984043284760428280836716963199179332091776863302070789290228857289693019520852953529236479717683160 -7117865720410815041230240613271283107726446255341876904224653305719269008887983911844926604802435682901331270611392890319564523 -6692783449614566649026808017316150504276465383033625466313163064737973819404507236614011588134611220037079763294452798973884759 -0914820111491787540225084826895277018554164459289529667607470230351077932208310255555375301186238522549530796497320559115264320 -5836662613656654780353360816866098001238641884282152191319830259179620144977780872729828947449487560906147944637380292807461055 -6561572680280173994959056296932010485999239763428796091258639640337313710982242786240160248574519338042692530967139936885572234 -2825509566854748807330632140109077953768464116764873006974740017020211637781546586566316927017884251448954820201170637677959988 -0832497323156260043765386414739221132824464852853436205409279663532624738981652928962852787063322728977472723705113895939816648 -3887836720640005567311856937351200913471468555895780989932698604802967755682558413334239668009044766569135994431992317817193615 -9488541867758126379374062288207207762501971013768400508156207999323493728384215408284344930017408986904527951285518045057193770 -1193456086093196883061110691053041347131507623254475732487481683124957212918787096719880296652189465479161772651216902388161935 -9023602670135872848924155417498176225830627494225163432154996996459879170929691453342113731711303819248475466023815067381174572 -2080493294756115922317931111866355542145263306791051695700043555158422272380979294286809277064163627702612725392431921737967789 -5506584820111354803017904304944193794950330337626863953844116710622843699200721933361001889997152111163384731679702997569228667 -4453953407265344555661480951607569587119336749659238396970668832430048807500071385571032957421002113212240607304287845329689873 -9400568404300352678168177542306869394633571699501805048687025644577243527012594817839631515308187464636399822139186673563109194 -0383996386779379889997394025888104236940479474160100383602505977089098334042031033748699121508022116963448387393566265472288965 -0847531693445140037287515174964594859379085364324835476807557964238229721804605800683718605401718393447954937423707976551995646 -8901279644569224520056558762822223149315014455057454435980383798016264269841766056870811144787284148299586773970705052525539895 -0256120889703056267161520334600912740468642740690884187820554569479971860126461193414499951106260376564440623032634236822171234 -9700910582776001785061958742334821043319568168457980526939228569330951842352229610659307009566518307187068255993195333178816924 -8084009439471986482548298108494644279210299285939700414080731141355145274821687079465639330167799278714667429384500519830074150 -7502762255088959326392982513450122047410180131292434743496089993750128169949631240918611287380175422097126458912263961350683605 -9825024574318602570230904976205086057242856859840660113304499069379218541308171998260227484149937812807157987838492362751492073 -5236013621279011602439272005713397632062733928777510296548649421999353087528124960783236699168282936749555076309059950538448044 -6316174264399599155501461815935271957641181470379962431535756895151732821144407472754664303419949275610161730902538833181412620 -4057262138394989003315257406621046570918156102356055537411042166653273066886196141130782850554134831168704085162214611295749827 -1728494807516097505065593608124398864640297391491113562997206711322054216710834884111534067711304959653237337706486015754839628 -5402941401919360128506367871554679221289967323748328989926516006333132440966780154068277893259475878724270654107817685397502294 -5331749302510962305291613004333202326722920832094875206002590142911609625146433305314091631233538797653208605364527924132244946 -6532771118816432093996083328883576769019322364788699903259151365484388584381218032915424365355589731770063912720956702509258388 -3882789530639893098899335537330679624810372563783381211488557543067129370526059579061942074775015254040779746533167078485769900 -3805020437690986060459807837031266916198079638277454221416718947378635541609908151334933790442634344916435987118766221380030868 -1492873283652410067454455812350782971829174602968575413579966330593167559586103530053302924740897504468176712345572924410751989 -1402681422012394852214397745855323854981769611609240399129690457712558487768725787104039715649959552365787249656873757201153712 -7034615208236270834171130441362610841044504351389336191409989539270321328989800821619371048375553928712514470949748975085093770 -4290878195796201049040671016672715493368576254144716365945552067883559930088219118750514982822693100430367769784775351909372687 -4911033872681823931983855759969195568792322301570737362071175550474999508803728901587248248809147697357896852570255543589500900 -1706971004869558605860088419347382200967993695904618287963224847080176675951145483137675636512072408162582506993137174472960694 -5573663486380813348973168761749599259962367833751791115712074445847171992391927789752756447549332777671869328971664763925290830 -3549115232652328982096333522858191070453865857146234126898896140406643330756492575988127393599824952457257137615690188707592890 -1525981890012719417710592274397314151142262744434946961995671692595224961001445969622314797497698000523423663899015096913051877 -5058249696800337974138653960205886721218275906496709288754537792787671454609339328245451684579097878838116584542322616579053187 -8462720851869420776547815997374420654356793047547706068426425982466357700923014078111329124212863212450480733486009748682342594 -8687099289779458763026259506520765785275805315714163404563447144528065795533004752634001703743154416316364697795177031670571395 -7862389886797621228571167458335190181377137309906389411269247283889070732381228453233824760431622453252798014077600435024553202 -9884611862481302466807813924732912660462964877829202613446787892509006450191623119538981968974508042576824347741032177030382425 -3275371888164672951716608075300420614160898739974183834737152799222716640347298255880801705875381815950138367820787575063612645 -9756093031018363423853254508819810837905492342390007409090686184553436757595124339753724654015162734521998021981012802729263275 -3427616385168365599989752741868814273183927471411894804297652680678085002922251517971806076560284843234235639397961184180625624 -1126099034992853577542894567722591646934072315106827450408752081909824273574814734547622072209980280969251694858199479989346866 -8324744163428589301098203537736106384602289116499145216551769186060030444438336222899526023763743834415207190662514180019708518 -9860319477002084962218177584666884101089885263708103715532250072465740590415811526551340778700948662719303811079801949032990730 -9442895797928578191430950680716135775881506952099465712614129706777971670822951940768332168877767587109595551931372470789023062 -9676406861977772053008009279919036888396717196766804819265649832410502497794545528956267262992497398344695416980354321065043902 -3430450368036376703613028439245508507778168871582511449294099014869582746432398446542812126358198966694091267937409209466063739 -3928978146389085853115437005111689057451518521401216175319263947818787743509560003599577334399518674836615112723186476720359894 -4447676769726440097553180938842032872197723469668279942479093598413513198335476789357764400869873866217837103053672831807359964 -9438439139166494727711797686854076602382501450775000543946895474100528401256910882752544466058353451178988269998012104071279388 -6796506900519353467866660536525382267232333410870940350598284296015115345501330091034294987205096937204489666809908368374224287 -2156069024262468587697645236488193119228612123037868983120993219205723939445417381491095019098927648926035392978843470867760614 -7821524721406495642677263766762922840188657758664683038649201210659149304382137313140079079190066786903508941027377579459577045 -2846438208088991099137843881611431007996513901288343001595074297103385844197112994321057890476648269334831505632974358825733750 -1231729513446989718094794150861322831069880594276720936717092445853573977523050237490193119260788535329095088882720971495287598 -6552792304258966749461747651069123750999083956204720301600561922121624443601785058830034234673249878353748610370038504030736047 -4350618220429461920496227812205841572163867546971596032105207072905191109123570652010474485250661135080242831754570708916683989 -3648963905128198988374985403745574043149005801382728738825016196793544318399117519577715497903566248991289200713376389062963733 -9079224255192675318799042558252967439629275533715026478752109034505102371733784051667760885774671501306079109448761994271014212 -1512159183483513720286072997122368280567403105173759926916954869853277451339001028186617037332009159449259382498277868408842981 -5560323178755830694146107056035341050323807669577457330458808700666012312546070466530820114714620579338594279601664840585122075 -1503852393417110615057020185323349829356846940778480270527833679702648854699330937650632301666517518142397830288536621388668145 -3710500442232649775196536006291799614616427004022039024161898799546077671371127704078583325133930080437162856065176543455363091 -9667028302235222877392627005222715604718844825560371250888081705125248380997161235203510947690674677658525524540413177350345055 -1651124581699981562124791312861972388295643691956825406823017359302629847041679857625842731954319702741028762561310737659882575 -7234973146912955319568057648697281752581304980681832088301794847222733894976160526360976917273669474157112988773823160903919773 -7236452528456462658486826400719408745377253190375111579049732814880300278553197889206203166333133501206064778109147665779882391 -7682375338032730875672864027350071637472437979382544031201751667224513438710165103834022186623616196654886225240056588996350179 -0853897451837131243025169955161135908558413022976148659863288496875873894764829106676107357256982339087954980489000376844916919 -8360603574420141848805577433559168689130304284043047944444385048148193572183817853604188280975779635124804366554607129505815592 -5620546941760373757081442569363535705009166704002199788324439031196454334794954999272772623824166956059123197810751221134756232 -8439866566091270892187388961159863817415914847036125600694319372852752155914048990490541073567566380258061226260248539927574844 -3029318850407273236073024405659942071591211229297986931569472429177060698779317028894343293006454758184946754805713329630249820 -2687678405796666588388227397973494711846620655765600330508932225839545844068520955016865194693435829894249625192750034081363961 -0826642719445444861688478619229100303043863369218122546764063288271554588608667295145429271395132923307142550915748046259216532 -0468573883399305338589054269280928735368128284996899601120318736730996079626128417354949909634397399033464297120851931573621836 -3410567460401768661525344506338831729399382001213762232285178082217011433200810491330007874531405259479829710109345021089321397 -4652171379208756546308171186440327278368902304830062446989533198226580273246735128676055302820200408293662986737676930578153746 -2150739333645551554065559172680067798805779396460259578671413082802669062176930977818789038399646027209326563780688854879437364 -5947149323195596075203471654735880096964253215673415065855952449622950653788545812330777657299303345667765138612882163698466977 -2308935140239438613941108953213493640813697893782475635075053824082277617694735156671731366529539638010664196515846143425205110 -8579861845970706058547725114635120976593327222009873742050798971923964666256857891243866172081317410728590091574945331275284201 -6824605749924142731964725200957618055202505975317938345133949930752079669713432776367891693447902213677009365812998801001720273 -9233059182009261025428591058709759978362385968915457411652886788541048883340218037203772730667179361924214082717915090369829831 -2313518106392278036401430877932921941234750269539064717318812526416633477902124303231275087598527988161235948020286385526463743 -3838476810771838510370563675061364260967203242139687527568417240328961372800287193798489828795160993501686735937478711295496291 -1519858055532723186083206022574209495517859134830555261865370844903580200999194798031588523243896559267197627522165919682799739 -9373974604821907639636032716761671130085088834596447375314712571767917652624045445822422980937123575808022402072804691330745798 -1179538903767384713618264919378659303577920743409425206952169277638505227558099310711226481165660388253070855325241107221381882 -1789290788643749161623308260296145948321831584631161915478987224126348775962249568727630631570400533850489485693171250304745466 -6433974998050768158826396562741859990471614366251286876757878787725794466582791436968613297526831824776182286993388108679611273 -6110623308937612049537824555231489221014173246666865428966654501963681680683054782880195354576356714786682961340119163196471017 -7065396261977852039518801715732959486507529242741135438482938793950709913003256496248997903954928882444470989824659787821204683 -9252764834270969572461432198412629509667322770306467304657216423067070489844755342237360066917220335677138645076622463524222641 -2863822477918798068216749348395676325852006154849615936810666235080045937062299799315963185719888255745874252084645488043646414 -7004033498629565919058730350299817723186869899372617107591275993421694639356397475575742082851089041949288607800654160534708316 -4190299271083535674187523239133194914262331993315335908926599556351517813335151871562105201268635100775530492262605262924734429 -9412474523205479108160235037378746252342301320435142535429384588026050874475919119800213524490595720796240406073642925771858154 -2913084106745765525951041794109785827673640207212541754087108553407118981892598453634040675583256537303820724542193091642590800 -6534476025728340988278166932729090239881218889572681282009000341783806869952125287383734393447529192404697677486779298438469322 -2829214412991708861478313576349293840205174852775802339069812401323737815710652651384534932732051408295532745074816386764349267 -7099631393624915897100017625766879968866232677413779562258136847735611193368355358377164844416154018729080207420593111993431521 -9679117084184583456113996444214687961259734088670459741393316532022602071869803421115792325270648228861169427886111180946003583 -9793622141632553469977231970499144123659775068372909299552862631976151882730222347477076919808461706462627308819362671717147651 -8286017842303147776294340423265613507963077365773181170674484922475010476392279295555883161702991597407378465228254838715678283 -7139981166981912432328248939664037584747665029041762831645786266577343138070260044935844528507385472563673503510303215480074901 -6952789894317576895242795097137355300336216988450939924501915977563360873810170551299455217264567889345472118057178061331257728 -1694193485067381935776175208128377412895577843695434073687471815717642677045054952476930977756497488385115713913555764776948263 -2231234433522295956531798985522781927112508008839457523109337600193193052076325806292222155384767900607744680674492935529295805 -7875818939048046279625548208487559794494231792862975497567734812838016356460114239167085114060525364762528245992233228644094327 -5021327908105698731349894818836329218148701613108177279681910593746940136925470307141167410364253643713010143547929247739518061 -9070977175221547245640857484222877237472955055880739878012461158071643167060432840330043982130511367475881160956788509827952621 -3413847694252380420294340031416724229995257917239755969134460592475590887547733435481300484633477930736275363875263891668995643 -6581430213176248276716948697514387283511867935196454364984608140452221982505162813367283133818168866214263555481101556955727420 -0078360325719735185976311476426092189177189796469613813653608015870137963763116020948507804890688620493269983909621885486957143 -5618073667256477516793467657312199638612399475873899685969826531992817695372605952175192740133201709617218497592077143464993595 -9686528263740598514413702973825670801929614448327903726180967797157579946183718568106283503561970266617924646393019216381949796 -7239480687825534075396618625255444191589146664116441837547061247242846107878949219756732241373337771333630723471570758001480280 -2126415066562760335451168640052256439621013367706107505889219639609857343988288214828754545448713238798703235273922756046005812 -0281498418252644767093639973704165385252675952065796869316299823450944375075913221341612192647317518382010547568017829174497579 -1057968057525848488438423398887379257534282986505898261044295544509349907137424691109525427205047296410961152317113953498675027 -8037990675600906293845109738467043233236225877257801109348395466430705164075214123065322814006154190811607337254708305938085250 -7210750787555252394437778367913891376849871377061775971887348544361550409572803722815881181222850658661431069707417398802536368 -3948215469610248733031315237243553696794016591253408216711885250561262516305255457076505242344244633141474145222490778655694723 -6617637025342831507631846476937783337058482960397621355078541340935495458638237325584632545957068938913331687735591931648307374 -8523372206558862816505119548118888594916440410353297374883874035661877591624592793870237386066600870369847319996357899821848884 -2706665246531670922861049993051412169291896643639078882262700663889473964251112689202969447822598990637782956377227324903867608 -4848299459820567898610921948177867341511272056149848749209193175952272681698383112955078617288403697439760095671946801857673079 -1356542472568516852079785586485413072353853487441642185000260635680413178133480855130718255056119475830508178140915142512386038 -6695877448601376560251771173382757011161242171039619918232438391997384640483554361477105518555170292200647684746099630559477876 -3728050473071484393708670159181207753885192509059591605951929761162380613874243004953769191772521075466929499282741107419333117 -7606734018487546777450475520310398974869459655169606480072758933265326533542081878074199816338268783853568241202511239916973258 -1633835831994903654810299535109070687398984404650301845605445387393310102422388713024846802629758902868815270339924811537344859 -8928571046801342106880818013492293682607259787490363620233716285093685649713330924728743681650501355104561967670012038426873625 -9125730098479474089046067867529096250921613432172766348896492595710398358975815806788579245423344223729093128465048555061302778 -3282236766431701005576011421891586267683372954054171332350103840612998244535378427127331925639537865313201470923709392166490250 -0060953065190643840375181038485605085116833098863859869877736596835368776079089936760138916464834786551291455693169964704950417 -7199761056487159527818318808980388404160177710661891595418127883387542011797165555082211982772990941128288012248134317959535274 -3151702008500412396300814816932022272142827209737059555958537947102106965289850740478085447869942031637107833939492398930644696 -5466978918720768258413199259613003866496795654264247159666752558539556973496507886748391341566752558990139978324598436936793928 -7875629494705039695595741518975797423129800053333398650746169290789301147238968164288511049704954808998463415048261417058627843 -3675014761845381637345570687526385375856012330298649384510964329070850231207976330807099687112778366295062201878036276787748707 -4186642715813159153197640948334883431130155154184492235081536887094317988019087470651733545171824399201735161775652002448517265 -4661100517204949080442753518341612732523752379970048081237708561434446413436675964518402865361477156495973338379138615279891674 -3104047228288563492721376497746751756302186258285396146017997376211045579689813619459200950120798719227167890408329425880640799 -8361120737152440781721610389840480574105404073477545436637229579684528270718993412816918987324414005130598864358095704485655816 -2635022304411690520549036888248912012839104866750669849182202670549996591599148236127250813538958602763034624939004690945598644 -7161693686069093177957527866565203934639363610988615731752113714098234889877144865056494208717095238090181742851725619039913679 -7926731919437873880030756176008264549114452715998481120029937345677673326677605995613852123446385084312717926880869469763207023 -2138495852046091769881664603146562927499752742224823433380060312750362684368906102817542844818392822621059272739767561472497448 -3487585927757204836571198808541456058695288628326581580540815649602826692062251298954681717253220499784757374087955966951533070 -4467286406109149470022526422047665420981641926169730080064026643952810388751979407214952628713107539097869076094466606508205808 -0329251645328585224993793572099403208481085245076448698022757086335438075955415420248533451214205820043135499362946801092902796 -0976117055234786919615481110380099853162437989837673156044051970682580784609511428623279845514623277521398030431160849037450740 -8697358783561542570626868871304762629606530282055602229180460161462702998318108546783149370269213126706148977779508293460733304 -5685401232626893164468498498310349947377219975132662081047738432680920912627837266028376099158214591714411685177672935669560017 -1991014855525662209159171891334726717439346791115150429082237201563017187579488089876803702248258879215762021955798945536843228 -3358779497231258973228903279307787602968091467986183211284685640196892409994105852728310998830904989480714242762651865855421586 -5348281152141939663360571564939207399533427205490276937846050282692131755481373457167966144301656498283646918663467663563230116 -0442219576879355438661813222738756969322895770177941048443578213219939881424295242319200710244313116242014329915750902609753298 -6880215129386746871145799105266743824027120004725079746962555401718867449525806260178086747751584880447035314395435465651034570 -5590819486053989106201536213480377379276227468376756122798396628016810991489235173054754920663273388709967201645610835786499004 -9939124283008389379680409146709896607754411605235108861950292912142332714272148567105156028757875660670111321491114463297009230 -2097548826892083113543893580713808393001576983724545670281722041343097928800752617116438879952016563025042978404320211936405203 -6082731184886898638758782020161455765775544117220425974704422223842521161418889571069655363278462600259872240060382048674290190 -2889620681353481574769346958935531281292735580442822115141047535414968598234054161580569343948696497621906027825367798221210232 -0975609392326975398368477771498401808897612300017559800926232766502316691201583773217274029458304062931758320244725915302928993 -2656060793106179140097207671393073878144623719159743370358884637219392258120064605880204498430784571518779561821815030688040645 -5261532754299991261842655852754335348627643855237017342819255089240352732014055394202970458645445920979909498339363437891353307 -2437642062562451324051185886722830951326647012880268770841964036842838215823451274151497274115272960818748924818830295293023164 -6427726746699539771500247174272715628837777269348318525014112099038948379809971189523179740600410427829712055609005231760641337 -2123549160662241455227582001148252334968910254759170985955722387116765936697038502260200822286774138322324033501219326909463806 -0821193700130194457116090490985590394866182284594574006494500813138155877966705322490599457628280712279954157952750704655060385 -3280391474844631197279842080980749627555722515522776772617462578270115902754706089142103829738218939451926197117850790818482759 -1294311329582945102206118794968530880988413255047180804846373165792608079444603588122636074961065406623564621335429415769062656 -8977139076449153307860216027207885939587708357239425724499000050811065643249463642868728678159848609219920477201880783130814232 -6033248813331250043643381559597258568598550852601730339407737331740193572873459479638405202147132462334764720678461849283231967 -5244706826495860145056785602766589976181173320167438082817365766859974115630195914700440671364272919565408159761417527099133015 -5244648245024168084347025892989203801674105350823195087890804798433093162301085522657402786073312465657131861678950736152896502 -7020998265858326008838932594312667517103689364315007929663379806725932670838335332530002316590322181497959301133051038639381171 -3173858772156448895864459261457987925785493055610741437909826143835126197998316368571824712159171580331713288750535891179500215 -2461289349520625956975133669730507522155477555105599302736241191876700580974296813158063100071375109901417730679844357856593047 -7673877787687493268983420698315905381260558449663590054448103444553449366277579160597491777336624754840213430260072450113764481 -2114017564926717940676432504294232477129802350412122813350795229854770687737407776153546967564248142801354985562159014016660409 -7639567903574424627121988012936196690968952173335045547572877439937623104537739475753166073603089257419976655666993295754279243 -5512010810515840583007802011584440810442039388430026796415104195890917308156926213851922793907826473532250186114497099571038088 -1090443322487112398586196562777035714693242567109619766467418285811180453954969091778067062185341924208029182725946749209676264 -9663462321929487207790152045012463956298339314526151434668136673612071349597053270833334450801647517402244793354108502290993012 -7465047517200443480317342789716535487720038254767800382013521445375492608318405493546080410946096145404154482214436078102318897 -3241343339884810074493047134584332154632775327907375423171218727031001503885369275032870180181698599353279959939076928392091092 -3566208126745756363429701058439360596278930537654250601183842796400352091131220495755538686838579076983412474092980588063067246 -4135280622573899686743659033428766204732217042537180031329938266218979406566474637509065330050474399644477629470645922989131608 -7243489726801527985565622807882110752891684081535249425920277363697188485817835521822988850811873532635201983418016593214492469 -8143017528502801938786431108109170005870927726570176129291655180782741998755590156671788445329312481442984040900285747284336895 -5565100360014106030272353666080827357535103165363399802552515662750922553611500390854921288593734087100792149327574407938377815 -4240318921296779247997230590857031671134516419731819431863267883435154179769593315054293181367248263035923946261410558920492931 -3065344926131172598974832603770803242453631170305261893085619634353617662701712503317939637731383890741691116709803904180847998 -9640635307154881695674450558215122808610162087865073261126743708282066313632270460083280371892143332906784831299555537946109939 -0645039315913940793949968013785570770789031780794104310782057130859521600859343415595288573910289771410236190253921849657190998 -2817116940059523621717397073394274259776453515913607417038665482821641102656240840561075406926383495205691566077252073640483438 -6876828215210014803339974347992473188369840859181281062746399956666218336920552262054357048613213862945863515439475503711072752 -1206178405392180823761458212656703549891855527651389518191357531805984535259972031066177734136716154598488260571189715523538978 -4990265766954047391630449528696946350646833442858182431131915610086870866589089866607870181211091256487223226710174280311854030 -6161821498017905298626518871081902325899313379230902725132275803649959728622670760552023317532682229232464170889758455581169141 -2416184842590677978922625659052895162548385411298782741233394356631320019382233371212037232115448059660819419247622831630454503 -8975030577721689746153882576268854827896373568358085985637110827886139292888578025729952622899410488518168089967179203288999038 -0077221628423351964468120440528719933928163566191359047160562478933063353123985611799118577768774930246047770557959247998776831 -1721135782157358288734205102478591394569267133297228431858377971925993589071779657700502192679741782178657102555324869244446359 -7869917278483084269980405860197759252589350638010408763257025389708116328761797581159680452123249311643134587279719495772936617 -8130672462738712860454774853313086658312258840823449860002088944658955778609509469061098214154416089413962879973327200377762688 -8704019840879290058261002736123709853095591291334597972059260229183193853550672628813904508834589255323455601476677738648315934 -3234707347670711573887321944356094703845291499731243740116195333742959154260950396149564697796845304852992191344817095433298019 -4556001053283765367945967785584518418747873282740299536406596053579536242035383267115157980628785476579854884310834210027387315 -3952399660098012461635956108592408478331533765191761940733106633178973207757390760027945616808844645166556348572120907508405281 -9620717181599113391181876705169833156639227504083941308593882555592005786644351550764764616222603704206370090556397818828816448 -1082150428965180471148236660642979232846204673076692680655912004876027643170213363695294926023526278443457817518033465638673749 -5350172689969152071949149368789531895369178652578561324968877842847433493285130074155790255799028895045897756190837543509860775 -8482306198938020753154634340975595193686061652677880586337892305604321362120530299145893988789835870281018804163394448979511499 -7488870885383052769468046156937025798795341295237597526911841052145121608390932943180983640617731865473642038426653712735002335 -9011612227214170561522052833657180847394409367216727282193072678838450183604374539578667642858779645471672950276478435834423943 -0042627888400396166577808028511674909710254329416152368725303977021338640330576476481308582201268866056584880471857573435293178 -9268879578435020158729300163317051184609265956929202720052876516659404370185319984314639348524347471621091689443144604058655054 -5852357719309697687694316961668030847489545691322959818739069805501234210837740692288860145679956618287254425865421435945272722 -7947183003454715593442541393266684657719476151125892217474788448864376694397034056195614730803146207684810002655419508268188406 -0212392708824827732017576889397138488570370042723523923833128481673477500325568912519958461261978143669880070457987816169424188 -1965090700335288348865794109082688653306331467742286624350702924857750689705564771477934006408695884251431946386364556639034176 -6475202723487206164676214732339055881658522754087991356304799053722702797567004357975452415295767243300651018833595864642447417 -4933751846153559955643592816488612142322342560545913045826692544542626150928640726729092043333739064265750508139974673275834713 -2427576527067163076789990338481516933446902541780767233056948866977560689363984682741766823172377515643032993191346658956321461 -7240324801931427740710853207105854320415521035336023346171992089619399728628105888007254180361185035803733126321368733856723085 -1503702321045090573654976317248889826950138261936742489712456263150062608622387827772363799121813242734818379753299053724286228 -5076095412377646585652542244868299631686826272014334350505998081702990345584728215380800687580035780236658004071510394469994071 -9933250676927268802066614172669848689165401909644815070604643321993975291059605403370117318954869373816750869659405704139511279 -1490487519262534395623800813247168885091994099496258142463552140723866858712657283749576144012562970919330051773400199590563572 -8265606609996094143464919138293434901647769730550988047626306005465014764814728223656959001378552960458572921902571777313119856 -0301901698751025073371353819870024706444286250847057963018585025053110220589734085318599463450687736352183212884401020231957087 -4456959908526601850236631528599915374848039675582388183944917813443948321814362879113998039695208714072018715891598727749400184 -7983572039054110543265312946188122716587941443406593149730482849110607363599698686119685785597056173835119438876589991354302327 -0157777305454082280716591110467065838967277498987788761274920512893356487762316080383017175970582934458813655903151031833258038 -6820568297362586686149767416323236376371752928724979488399337093603770184434877480032885947231535650930077949030676059598788698 -8108972963805156390445400882624903314064494634772981427763122632358977184343156109534055951999238879890515883719506599847044143 -5178486334616508289086769240536520705517396788807705586482419714104331671474772634945045486037353039747544411584344166691513962 -8343543694892040940224135766807400138072678909751563547074645700842179499138145819361180694589974178543789544801347334713872045 -9708545131525935820756667264787954116125739691093797584888706242100925330533736446977764101332858478855148268301440155677807429 -8363906279880507853775707450188819239306527160717217937065519073363784713378967477694756526571005707114651691767780955073859818 -5651083308096512159550753176200623584419958971162109603579598590262428369134046173758247656339396228143231420340091898293104843 -4302402395996304257050404831355580727247848379655438560342120245630874884033522016540414633929586663157231554069390318916865498 -2822530065271711681487170629161962249557718383135273443686990757846857063424817696146359531243469019949939521304535035359286967 -4074330918579124906980668220696463605660380759667033381676449310911291881680221895239419422515427861193964219305035700436309668 -3698935243696912496491762756802269973014707849066246048122302860046406677238810686973357352423777172732249145383686882436002629 -2170964033471347644711273905006241361125626168342597916481066003694402986372839549149179850327741026797871619199281396638967050 -3740578777458341247832731137954141104761544067127564384269992513879476807275980026551471675919580563967451050762083496336212971 -7234069436162575416758566662736313504628826119312240011212647893254386199394411434394192850902621006968244175625150393585420756 -0819505443586556219267270131584242241933754418772049304646166400049758424842433111724173775260453475529050201556290830854251309 -8694504279853225298817987700209881068598742151871017058490633074185456825579641586256200310473031416146096103034054724162968499 -1678422417003132262043356103744836118876129032014712571839148276942048121918851516621273265839886300177612597618998212159348375 -2526979362189085413641977979132635792430656327264789820332281372901762624494315668746921549021511066663733746233883697857770994 -0998995661761657851385372991367035240872501467476816162857262794643509591735415040438155899974797001865973911239317650890930815 -0189734426599237495702149267240934080052773268635893422129378135841786547348314154856133018855495625125449892981908291205858083 -1077322089308800545276469380562276682750368988122928137210856581036772006900205486477908581832538965073059726766472615915649559 -7595664231420716081656297104542741477179939201745233207227457362234020070465865805626851389405073254933773440235630530654929440 -4561326689796974026193323140357607026602878702428514108628434286473624453127013395116455824218643518830181373377505009554553648 -5175104916514700448781338224183451234036582197678358641053766734457042147404203339056493172875783393464733980674769043154128903 -9625053130166787806916253108452498110678784874573415439254136465274322837153616892957540974054903367967131773174510386204520192 -4708907023698793329968287054491892003035884220479471761449794976142360667172403302792534515419470234070842851218805657152102504 -5165815294615880424810698811972894519218327570376404414484865603951627216319921021460205245622341179697179353800333764741713858 -3375832459808523959735342163302977206974789134934574309888193442489681770595931407566150654834927560855722717629843449379732533 -0696873250701946777504053721122628669489758761941472800177248115996803185013999823071443413470671100299081264402635064626229095 -8025269049201568533557667082941257090329107268081485134499591411578665111542402290969079825247733361568938034890137999482482426 -8413571137578802277713985161717245739847221863546744280234586017009016274669615970285654793200770322063367655004275873714400764 -0799707402410991916198286689965775278824664119744877317308731118045964149958722032731308079677323234905411311426216785693702443 -4397846375057495792019955808977919911307473873070308655227892822037825751568866737076516050806909779275729314309462325310751161 -5878515311252357335941687228452716020488777361851148660668041257248641752627888839374533734775241618706657533250097255962909759 -7924103963089477116974416014956752830485444377913838660792557425488769129517146048639663168698011387132583363962130759916380103 -8854627858331158799334753893263279859800213644437374816465531701511843970386899153300191498875238863924442400115037208900760391 -6931077305054934679510399257137017692212293765671016977117885559987800112104522229358688690556795828786584220491722127422607686 -1161689224772384204986305992766453244735906304538266466175104130240871760142886069723737054629941552777930420547825827115890782 -1184882323411827620265622192040661772065557335415769691870166844416649885380327832148533301202237904520864333379649271453239928 -2427936123038564183450762355240415926776086706660362490151633725587501086167861442974904906015877742003232322938651897499721504 -7575735828907721001810713381085000197583517056663976862531026160720187808215284714716227545242555746984605470134836970810868686 -7690274030579086519662066594780770842382679015250578750543674207604336237491570959207826549369435808803521562398005006071237827 -1591235570232351829740515082573934645171861807176059621044839781347865804129548447089911918892970375115928184446756254541226685 -2615960213766977626603096139489045595459731295282305420627566186367919926990597793979775395219871115824222384407322704217828184 -7269890378837649922156673232477845852726935996940584696490442582150880559450498906939124023442999694271016368614887466665480687 -2492299648986452580995323839604907135499552296977074591849011346778726414701224990442027943081442825619102646860492552917507521 -1791849743502515995886083914654782544108637930226038487802556564179211481768559160141129157276978288393204371047755590042629364 -2476979194376897909780308753936290021359131405027064825271771828980164040364357335094434041723555965477129434483174161190644661 -8416023154844136801169958073248822091441560069684654659045233353502161929981208692256561137140555110119558013208216615513472071 -8088260724856516409808086622373800856820389920242427841076949364650960501816473316120878023138924750918248626057879988336142195 -8686116426096280530843620941389111299655341997827197141570086674404151699053951971920289530070752071000490045958486626799786432 -6549357623845124371617655875408646869879278421775346320373177073222854384021377119568271293703313232299103659136776571632693838 -6591886804108118051730248844194375009874244915537509136047158661056246282742880964703031154340229700891206754898355101039366979 -7268446901106376070498745112524561027602391892725887518917435705098580461006376837385629028194839014124169131891549609455012171 -2285131899533028794555938374512548939747904214953588004250694538667660139983891321230034509152717542342156366790660293952707870 -7433656872059365457021513060668191880971221287545847083471271690608548455879533083319220177538857519457319889888751900959653068 -9242848205306926609548172769597825608518368367889673409305233019839916718283755877093610440755381268416027885226989117854626319 -8543014996495123544046729990961256012932771211075541381188839964005105738775284593953696325073738652709607173130510895811417458 -1100281056074250163495442070917233405800039282178047058927490789657980634481405379098411400723381012395226453993698124096414583 -1497707784106353163476884094382224594079935684207379351580860836917141337699813295106036949622008098195962892923132082743352822 -0227639803444432864090266134712772762851750164363159986164200332551145986599690734005702172852457747000704439537884708919681464 -3297805927942628853699179019515733067501114704121488080361171310117107236329567894778609250864163044875868270159183178936230020 -5632160100910553597455671868785895773407892040726468337688933116567628214043646404787040937392191211462332257825317687874338725 -2296104873433207092085115555734422123208784998029195153841807872132818719198275132977492788603520666575735728468601968901331765 -8507664661851267844375807200747151263758160914796423476220162799279781135476440706809418288627923653896822426541736985486808537 -8804577755163112469882477676592666556395113447285604375941404675578061757730014398552781158003833295830499727417346600077947853 -5831914326747916706642066586312780276779650520761789440673709492335505292573240738337240722730985752273930258542997960743098240 -0068020053146252182779250786628431011150801984991349353593228652822215156799328870412166924618702218796377703357100331644399678 -8109188902158713215146842638263856459757440491023323555585167449490157093903282451159411558188534514053282926080246371635200972 -1083689238510925211444565358062724034393858074119865447872227462830480815166007221130324188970568012551002420122076677588668537 -8348566408824119448641450955381151117598257925347235252204110951120532544649854733446808547885490496232547849386772180981787081 -4560676276145414580213909440734926632475864478909927595616312861612204269485671554044668485757818928586611911258131650112268582 -6442754729881254198230970045300311192828701003356370115227215491493010569367089158620723231028014912810350816540331381099940995 -2865041663295338237509904105995789610569727200605222728767332785967873952215814407401152907766797309671425581760149058652925760 -4017820912206849712695013871311183547029336150750415340954915312119753021914893470116876327839429907255892388374033828544982922 -6915440546354439943941953788638484102813214756761743923515532313884486004173505190595536349294404018810183152351908266279594331 -2928244470990795144278024903861617956853603900951440210459677120550845092043556188794480813102688176816346489991301120405759270 -1186435866287315352826686449165308561598819563912734578580650689933009781657638259105653726859937343022833693021987646952723005 -8712542566252718904406054272317438859093977264257379132707981296910101101713844533871886378161442772031073848272459192591830784 -1058110999534770164492882010801967465978671453250245066874219221865094533085057504007502380425647847612715483754244102708112443 -1742666667868535721098914454487184166505673192687612783065836658057498575235907333228055857705494275550823062941047285844371213 -4854496575428807093051119901176270909165842784911651361479733219811770760153017103816762799215219103460967340988812865617828044 -1917561105792307812885764646858740340976693913696981626941718101122829669609931847477816007131803415395929587982744622533841587 -9667546614449025826471505952967761841638682554759010436234535597997076544716136876213634826200883843816631177929989595634824997 -9075236896089146108414434690485647098336762127620316996183949539422311636347004018452729032082455756224021955521110115243171929 -7022352504520236787549133408418756692328586206498166126138700604093881377702931259764322041155662852059678496015745189492835117 -7091800587591451755394603236816915477651467511713772374848670866752841854518597403280700140135675063538245814642015579501650431 -3475133641567131461159293976535068676192194831897897611380261311134218099223461446586431446131415308645022873899564559364425282 -3789965382702942084656483383865958903699057640653956948168423022124988840895696969117651267238844593486453639829783832289036588 -1651772364049655351227109534629863148340655489696054950189023140607819232747963074764923819690470465024081626771998338862194589 -8535421442026745607190566634422441543153174467912420591988970152959270609189415618141521453452531554132027545470737271909694248 -4266576066028018898848004953928316732798903447774832407967130237423961865629656870579836679541833228863492849112635373253768730 -9318620813778397458907750295204099889575365028367626038475757355404525059311775107234951920852829456542067713455662881377001712 -9660563316063581065664074432670545816492979485719464785114250983280531864483884025594604925138921571079067953012249664289286107 -4733006686229685087965270923863015490601420365854224908680910247314401508516820945614321593880289181386292705522860502467700146 -9595467875394655716250868523623848001720836247002935008259127820208612390799061964695134992188932480652490964335096936081240148 -1812489955447149372964288932685703059456499125726325849419752698359991222537673326627718506868098338620828381688669635638529284 -2277365318750471576552640984213353147488350298228497735938404810800516562727031985237579073707417430708173600319624539956749453 -8558865515990107426689500711926656694092773040192992037548490908808858324669008603563963750417300374317505710614289622964156217 -2457409596680804630516887336784028949728779145781319560216200606134423822190318186800036885710141555957030479473061434184735920 -9100569805069607595713477651532945125488629510591455102444809609662844669593112401315706794492448332303051585825039449951564890 -2934068975480357331702373570405176114572488785747724819226534222897314789801301206100799457068445592290174980265109976510186964 -6974436264361115896790352170073260547419486352304459996628335808264941225228110927615548124284539746249063361590443246656233810 -2022987197590236256417410387584617910709314684989417286318087666015073752226802244527631727840148104686143554769788772100971964 -3931314203567669848668014170818609543271827823841957939988437792149776879965413983671414699512124596470803895106449229017252962 -1646897058572253319802460817369397398067528887800488520057974357980724071070615260303277654527720835652573050782049698374251316 -0612949136289175984348022991134845911118529208723293255584972808307452158666230105816460375784187988904522880654792018341929152 -6230320383294577758148209875436786980246088588555018398742402423700033755813061790265512976391765915810238317924960933176044915 -6724326703636717615730930803229989144709304487765743249773045992631205387565818549594275877262188712201760168274734486308418567 -9793449160017973876181891146468573134118620184336387033315592292444997748610681437980592831049932965491128002640896459624743912 -4292773888056347657265747923515456543197563688072118373801968694939175467616839381912904118459023550508906592936405878500629369 -0726575398511990054804247570050536297610421442312874646372000460857738421341575986454091454129764640046210072544927787587872609 -6223497359073574286258812426783136238045789247117981734256875260415121593723556039489844073919163685845325053278772517808357882 -4805353931456319684552807410713836603840908704132137938671395582768618313934438378980539779778185823334069713366782891327854771 -6127074671224214243978383308821083055917752075116334068237357481944923919216084154202678626979129283869929664457025576182992309 -9095642603811777857467738034071749226163187428061948529437320054852470403172207781014210493833697169288095448800181203251014035 -4736481344099852996408105951657679269262847981157582390462101509329835494113215114942443801348682136828613264161536188227115466 -4003055863718708771225642500990071025833297545571403747979992978828908605722348616364122656556369792934466258936918430294297508 -0884716108700884651920742851823456839844922966806960079344733214332219603718719129110850475334654765668025057309956984350345154 -4885236271502923816983822161323233481126598003985902081480145736364185121032980985643061033399360057443356862260970037248156868 -9095109506937315402103438551736664529148909771957666146775454439817301965157339466426336556934667643823128218330998524081566484 -9554172468178139926024925040064147501158211448170728837042601105476806693933691272219558658718966118313273471191896511638062325 -9954369358233682690458005171274421730241048095790588467590844502525588085948164312745806267036443692262270244497152879755376313 -8540761990884030057918282213961331175575293790886064372121411245265558611444044299259702033859938015653338871057063134186390567 -2937295853774855369815055903708691070046531641376115545763368983982874877046797588826386810643172084809422213611867667864377575 -7456129086242673800167308357557286842740029636829456648911252509981444991813390655015368895052836323823418477931875989888413494 -7619903401290202996353920197163165845104216512134977822317453208086977782938058360962563863616931222677006031494617743246676098 -8619837607929254793532399964916863199570819754247459608169557658376643077622610923724449371091028101105519894212018425361113161 -0198232737234871539712619394554173033293046636313472444724663228704935678432306609229598127499957898688691002287353410535746129 -9160344825935915883479808009630827527538308033068458669327511758149831271072074138691690968888119139014429832927001663077896093 -6075520157463461341098226057137016444093714810741234441217965271334334440753561468859945005901907007749818800609799068435785758 -0546092246435123497159753904346692263278071121042508101131684892541656872975812647089730436015791483195690674123772749878087282 -6758449872382291050831212201949792798424861556134983601310627614120558124555112900385099751123167702480059628861813816928572678 -2294380967592455168636104873737766456888729486890507823276579714836828251933669783531511408873018452811541618386657467835047578 -9771964953738092240932562360117185595020635073758269035209960005817272212266420970453644822258523689081214708732161974226486482 -2078896042427351080221479050978223463317038184395717248909464597626365437809427793625231151897894098417132582150723722131356816 -2733651127665461066112679225653017158187022844835577848138599970119201959393371465576981148627618500453766449113619920556794832 -3098796406035170187586479893078215549068777188615428168013041309627717475700524281634638706348659216956344427373631234955931788 -8266607652077744997152631910857696622624195835857414262086680438204284388121731692389911117940177851680318293050972437430080491 -5263662912508589659968304863826115756592152285582835871560573052117732379831943224939230850768149596127803763098910581308889239 -1399259544384714811458348148272122374447108528351486026748375991519038080289258112233626298579932128994892803010854830711867003 -0120562601270662181088525907457246972630366755109340652778459673777734310903812432648671068725042051752322546900077059823883777 -1071975377081858251465844724729282629412278512504579575631776161691808267150394386844729953211628319505799528227342615586982667 -5142190253907427483211782117002935160362621628506088192922092212154140185826659904555543974037176549370222198088358512119912742 -7709122677369521964052899819214134971313049580616225982506654419124826044743127724976092244678406630989264402052401911579629855 -5241083294500875288635504487164898666527862404520007162909767182104068330196614730977680503144106835763690135404371824827295654 -6210246422372066059297630639990103921525353988425004032130811899385175353438423745075299078297982811812894692845392714907314914 -6639687154171290857100923298064297354897427312066201467165805288117452112109293854180789331988821851079333157010919824197308857 -2725453575267288288994357675260613771455378866560128031996095809604727908410382843600101001039972876558637948184365207490031492 -3022829447684501701771651529957077694566855215179433255048106574130176149607854191690519660804326926806696105896923466573489014 -2276500150756721393101309310240889850130747890241895231090329328679796493201088708899083812272168509412763541079565359287160502 -0441480433094880222135017379174984153891031352882663477623197838966247123264644246447696041370087767283894667315757217159981846 -6600209627389381111032923919248323966625789375205223637463959729585017236548352912218466643214096190786355523902607233701011308 -0879209770503108176937425508560832114089876275039410069927508813642206128497418765988069857902212785710790868994707145334746457 -1573213691519886100372421851125709104684878670999887084420803400476797705625591520633797149282934213606570900108998582064311163 -8676807063736715112005822408555267407647050728641117839753641320386536310057649950460984214505375532528456592558681408856748600 -0458633214841398749014431880145127111888700604235741500367092065118505389545560189317863466505700948103428117858933891140917600 -5132202176401630576193346962510769965520088034746560321030328807272795203005246723655044384670879356197070618995577734499503916 -6506939563329550580672846170456665825955418030610189100857896112174782009029170826779986506077333681379230762539236049071683000 -6370393487113254502942284063528147627172601717639450424195980075047464787096908959060881173708540962987133431304917906118868338 -9267746888420071021500735075663336736361717345091433424161991124952838871022030399503645263408791327784786086730026429717318657 -1672147391408891002327479016767689503494648768717682253138108661180075426978036916352251329255918145397491166698770599594009604 -1973656522713866421729264353952482643307862403936073686775977710379738331755646451684387173747099995521827339722863619385237499 -5408235756969453434913224193378329404979503566466468217232986076880098924660185616188785089771941834979789440134998311199906069 -2232778818840350786605080110308895419763433233707234872571290509162878857914634432096414764357358087088039057924071148091731175 -6015400792410124384152213047000568844879712268022351230585299428537516602169557527154990684330404034064121063393300034030430905 -2306055374539312465651241264233074065955242079361211680462145344554747450796349210759636113482252702608031612245403353997125476 -3803253691034432130798363413192595243576410393487613462409388440991106589264853952016023685661448176427389232941666704057678369 -8628747721532797463638681268551173019525973277356279608142072485533442125834239673920151827309537064739870526314899247429664781 -9025827660968538606553886333865132013576294269585884802265251611104643759277860774328243246331432389944537967831541391858902940 -1930816587488360252688732499160213070813273038333861895643529140656993608246150830322861238139209540926180077253222099793719072 -8959519042048720068153629627140256241685908963439182993973204720950662335620899080859042503691987552467007737450276337233761755 -6288965328635383011799009079228464765004787324704548708119617161002013632986577780042057914052383556753286042031709306907755664 -9921350932285357024268612614215975988614776231803905241441720250462994526451363159473639866331342141233807338499617054943944238 -0578049360816576019800945237402222592171684814088734743903979539564400529178521960883785173251341874550331866956766247772470369 -6083904254700701911630159329372053705191987684688500636724033475465777760911461588784110437867357713431148790643538763108521995 -0296263770538400456769346062348737783795801732870097577376952964730500440617573963135158364912865598645263299913463769215039071 -9483488255991073328145731534454837990839423394416473517085030613349147333787972449423197209621559003595529788900553100012406747 -6566884594766054381929553636693829055015384572992260492476307544253448277903698366356427152189807274375674035466963843196695551 -6323074679661834194813723642658721376145252523971723277400835325217197190050897668239821693181091121061162219401288326146881306 -1808318984353930429816050257400279035517547964016766257303295002919848213345027516727642354899576468006486504355233740324100211 -0373421583654094261005790222006220690243740321608605292144463259644370384862300052723119124037021639917903672109294422220446746 -0968367458627898019517765631253210766036998155063276402536135475040822567588712196840514962484791203840216962030611173316284918 -6730753402413401318179055308056338575836289967262947906669540139949663260817034924092055901733213326920487904492973772740252118 -6813399504142772729322264698007839309738863435169195740088479397131114450638902610593694986422730992468798340242051077542153965 -9094257292692469011371694239749935666279240094911204646416349941755315640280190692332906803301138668428433338486284139761451437 -4927696735702519573953727266824755919361553550569177388087634691983381789617481807188380885676894329271297374663349552211867549 -6214976348118306656535007501010457882239285954427884872811741042673638154912694956412208130004776408704809831151781445974935728 -0120629582751291565009219505554682954747176012178127728953108970378564330824283571745236870527703343674549433801104649142185888 -3235814158776446629647585300745371840827518705724793256416163401064594247074494980560274282618040988687418212805930332830675213 -9481691238337366800610093527436128723725108303743340453678113695806808341554588638276662497395500403037304969340369996972707032 -4082676737625354210464419813293767706297361241754982481007296169725698649583516782177058747437891980516222464440989464874961596 -6461961406394849542189779035893533584829634128015156718397540384299215958366542622049511074988966488475073248255117221338638960 -0142933164629079463406544918744481398396204306933357431841214352733485790844296470933212820449310522157583393441447538375216436 -3436698506912676403242337919492000906428711269510381173399936468041047249569064777837314598565623718618433285256806067639636763 -8460415932660725184337524946121929924205499042071794021186039050613143778222559008526610557979170270365704047948250328090311884 -8815703597819948360630939744751577068004694199231149936335126538352407733636909351409964233765563167198074923729461436493523959 -0713926842635856417640343723268323797389202591360887205782568996458244122502082280450763638212538223700620622044815212320168684 -9492871418408066338755969200124883796242190267635257673723366249954282292979482645457308347074754036142876356477739278675875440 -2183538168589813954235091042917215997797441009968993171615399263341109892414323128649997905799043937988646881424204624530006049 -7733957096488341212048475007904035717627062565794383079540365496869348281433928986222996400495215587152772750589584231009322321 -6967167721546910451512704467642578730007590171739084668065616508498732163764275594573615283985791091469103384452900988352107000 -6807413612465354023458660940481659053886101973060578770973513038430471528121342377174140575232152423951725002933862875035962993 -5491625968951170241792359320698419197951622254963187269169519754789130928703155856710378168285319433421425146672702276206900357 -6582314544521282948303668171056488977803778991914594073284490075274341682398796202525053587573368003492350674264590216915743030 -0229180917308822559423399370500197589688253700875858499871606888817412759424516191276640847554118760685723541416666202243509736 -9274208984682823732942979222927492539292245964003720945726994325795924579380001664666341956208236538074900737136200088724900215 -5814292572624892701632682972030886871485930705868231267185916589385811869703139406294452824977282139608709779376891002163708313 -4033763100173660376690182575379995726083861081926510802579785312647154456013703372795547129639766049095465742696104516613357933 -2568315805640894925038031436747677782703800879694535494046794349191040639680313707242709239136167699797774023104845097743799234 -6763080953224487156488442945555613963349180931811315907436001825754710792409694328952798340996992622252003347436512459358128857 -3954533989335010638156841066648473526011867397359480295694595402042037502438174479721797977373598413288286342098814213128179837 -2396433612158432510452891115965816912823381888049756989510546093247222344511226918341455435352327199403241839439420506108676964 -0795850610161143815844607948060775881656537958435083754755508315612517655376939244238451149176008256028242905067513932423707050 -3517402986146524008574508829340726577308717530546869694363472906429850377209335971237767032862995433224020904386089476753728648 -7922151222682324169544546785791039508552110735905147311483313421452486749631056709157326288104257728264776617306059521303067262 -9433265821676424821718658733270406951796862690935463256100330389699577509374904038151899940074906081844482171701461900939078601 -6186077218855804555456232441080881439587655776678203701080218698681846807414980313213113823373021577317623820418853903404980853 -2057729858963790488672801591735476430626710017313638370400064539747700089967564851982820372204387613607305955240060602392589527 -0383881550897793438940267029950019121382581949345028853214775595378737481122241954444306274659828618843592228475107234699152687 -5284798962706326315885441962112759776606317588723708150855167126722288961236786090248841992912344949773249220873179712041971922 -9678187960541674562218790198419395947752158216709587927827286969325482868753908887434457039802709422399284864987575179916747347 -5327838914777072714692085263368643404584146218804037383216974773265161119155906542869845216416813947477024304569196702936579095 -6268003933265575972147374394617649572960257762413423428779104569461013465964897200866208582709538990234194911357542427621601938 -8074876525846270711334089333528645517621667077382560706349198812216415510664481057225472908752257947691952856523071940619013694 -8017368030459649790293701927587307177007662644838805113977690349437913275410750363651007980050566471766249753077608880102272532 -1982797159364965178888531580373430260986522031868350608333752657707407931000254944024943348168140524874484514493735113742249981 -6288538584949755098193652659249807271937205648283720864311553381239244146100739200355642491916783137202534161705603274089556521 -9354739749045138253043275273268328367815186805183694069007675806235940663397422177024952828447038786641822001541524569479714913 -7698528117160783953905420058390896481011235446749390616223922774275291430828661119528466868454607218473820114505896776059375354 -1619019266174818706077047840193129831420498197596777970098691437675408999864116292704117680089265101055969410774137278714249866 -3704870678985840970113166302795462489950063082099943547515245655672648446079824717316402600594084559028770660910436751665528235 -4429408197253611572221699160867353954702111945889329273311821911416970564822252007768702453855504730931208682912670990901446785 -5056501125351085290367349611566587022633517744283896529455313187439470673480194626772000636195743336806541403680260332379718964 -4062991551971333412504544251310884322830607074386974123640580284992839293238984564989258127209764459890435786526862148574118080 -2625522665812777011614768650094518338934467618573508691312860257788451631146950375887371627144471854275002143114396671788841878 -2226696461215179698643658067033045890658991544538880319431666117259518073995053382607108900045909290904771038098705696699068324 -6726532088338857549906950143621062126429461929145317128221035122460444306074528944822699784500814789341052158726046904507897034 -6793037164285887325166583356411787362893236497739544799385622176244058491240539097656877256235845151279052346581850041111149908 -4093573044381701004333825958081420923185855648955716595548583153752167241574306747073123301312447687906770815027018933422227596 -6707271839374572454938209957923490292030537274459728356418336773458317286912917431092307541994164910938497543069009665010432516 -7241600538166073336929364870095691302789706058064621204209320909673557421090888354529446748882788614331747011940455844576764284 -7137143302702161225320499515565654830535431434870632910006167776519433451398361978770695152191140156154509207190258738746324525 -7177837461622149136708945368215880972643302158259696018853584758017706472295497707280871705217770629770641478542481671610250773 -5554013978114456033660343221358867604345109625580200393288313536168463029481940254044728394046188030569648323861618169629477000 -8748988786120543881188413407361779739580428614335192009085939766971185616502526635854198592751325209395171686208426924544564152 -6617729010736669611153048037379873649289970538055287963581277014784710903080627770559078145423490012308690390159447385760636617 -1396112919025930755072794022535421762089970913319020087082933809741223660404657644541118861471741622430838236195432385726159361 -7249197652757615950334012535738132798576509936889286629270864681020298782574659494783085110319815705595177485744225974776618676 -4858557343521566530159783491610288461205535017137620369901510860776505101408698469561089138749268742702921025433191359814405089 -1405508073047405874902803040100792069570430571449445778558936794822787960786336616853548170322337310425822658832018643837559079 -7255075818431908394615699437073631405701119134607024097267578921840611418622682373870814723883284591259922905738590072345115516 -4240694967339735201081972989105259182809574142617805837465112261091318429255228721568810181664317538777929819157212160575829023 -2748237669200464565992816533713130419647283186413179673011963172187269272224647869974262327569585442612854368077691269344188871 -1222760335817459965853292578856201576938118519312855304508610105281112231513426234814422228921425942855517206703964421120719762 -5224765636718330925202872259803187360837016560225525039097597027027310508724003400835919326880989701929146674585353105826375662 -4608686356759945389820261327877835956104857982859971343770150256738677287345081654437248462809898624047205228119203349515135144 -6762635128848980939500701402251709503914581106728361156687648893186497005364492516596632908393739083848785619442884628144162198 -9408219837678921746467927680318487696309519621970987584546154535257273988915610716263345779849862915767049642549659017655936977 -2878461866210176159858735856155729710212544372367962529421415383498942572742627275020994117127943578105501057737118382232121164 -6202970140395425040275648643808519609153095822076099220917958127812733404125781257612941188098229102786208245263355552763155862 -3412899983063072356219645639174430993848691176774827540248823520470123385464397586328853608924297363157128484769714643392030260 -7516335187749776239975100738544129195651952155894618035351972235899711941435830137791970183095848641340212385537760526454996975 -9326117473414458915105300842976184452176417489508025383214692364884363250764059076859137855740438113389750789393201920849913143 -8213713819060950631004232834986002902474872793703875917119551478078092258435100422531909399249521481966638648761188280089875780 -4759150755939784604117474362263502288999681621525995527689733138120086197663894427404346527959682389904515329738583325486736756 -9325978425209872464237977527958499931962722888446298443732493719892549369851302316811008601401750818556435135705126450083049922 -6347121675883203194927076244218929133933870815129366063255106247006180593262999464959953693728515646161688550961478583928288648 -1770297585530292141472219789662846895032928913171250259285237148388628954759446094661658933173846573153793706711301693991850474 -0792606603197595851399011444059807607822829889531316870539398964731417122727677982590799094547174678976545309066723508642538395 -7542251187115005568283732133757451228935803355815247833157647444961116649664568241618566131440468159056245333148920222556848970 -1686590915600101341570938724862037843381611006851337958368672209742162426192678307570447318588843817286911928534762475716887889 -5985898442600265569905129276649109155018541224177922670883691334985077196371351903258301592600475229763499481236752268688794381 -9908334038229937596478744640386393429233365920050089472460888907538665294038594595567391991275514366380037563916695381509760722 -6697176988394487279550132960940875716670256744139528862226095599316038741474608986574869723524996958686407456560239747388319182 -5272345146409276991368562911742268892736319679968918454777104809692672080906197146972033144703725807051487037561295160467451538 -3361581138752178146561886363234614574825214993383047665369152075131490893168140965966229773832573946751662445845244243875117807 -8497747825333018837277204487016088859935993376161231128402571833027091271675038762646104326773996163504827534262519513030402352 -2850247104178367791237021165640248127529302018809122924281078393572312164207913339929888292707995450264033189457174311609184073 -8924909933371581642458243436549195910810805622486372258791244747556044533591204446068293714215938334798650520367000310196349472 -4508128384366452869820524778886955415968833938807781198993008689473057745756213279992800316467476453813822465284911857999907387 -2023953430847273884483235864052375615320236609720705596526699723117087569499174093607783752368506950667179330339328300764225536 -2114055767363508202672868934173997107264743852817603394956504753530153541861401139621693806395357957937922300502759889840467545 -0621018093521434841220357944235687355230152336239627344725027296978480489999738827553268628247847786834042126152054295485896741 -1728177905254640772617413047936979080771772313470023078251325162582234445493894126314939244900306139362255151328277418578396047 -1792422884816727055970087290849551106652457784152258102530082023142369893647618177451355631227247379577671860849853688299849551 -1175037347149672092098074310747361251964753674884333700769847744830036555394374700856740987145924794681060765600644641697283847 -9174589667717240975144336198616364140632445180996668524271118863864525314244946497799850056518633949293612226613509484575056441 -3024489420602308444377762407441001512681502589345978196662197798484057230208048085644756143263157845710447555275495197040972213 -5990095737215350840694710792788564049039561363466293476205766559255673678361573392948770517450420686662337759686497763541080151 -5536095650185550909008740808818202276021308469567387829730017248451381382214473271435330569988489076831395673641296020100168963 -8691489605876605176450990544960425812802030262532258796192840475047025803288315858498575542856190938582743335067317105863072855 -8766959566097551451268355313989562707945501704157509911384107284566676448181401117485715830603954518469086610851712800284373857 -2622452939630203014872224939693671859800249164641618680985148159351811785234412541320836473437263872332827932949209391274805175 -6798235720998149184680985250493187047397164050502295623889415695762080775856311836882958794525078302171514915009308220188324579 -7404140736104785086437030648484406734008243907361526117865122472043884228991384547907143497695706699559582484787176857952820522 -8804256451428134606481551907263647977538193140987930551038510575189609463453621867637464848455610801693723759700181203650436839 -2454914648531519297448584075603475998203868332048006750382533505496359960760723675619846780966293281981298326598027774066580197 -7995861529357273876737015678397822856184868318896981667361295506177063218216975663372922918478316465965515092121524544927046347 -7075516111646427841984461388320881450094372462158722036978724530408790912720869813138049436688811195541657354372228803333585071 -6429445107361977048898774220057765467210817429170612447918756002833100352538329968035564836996813252177717820091122268457886430 -7174078917945962391527335388096356842601813618444449251961003226992399982772853124625379285502923443657958530018722098893816397 -4966136548214340660067711135963960273659031432856630667889996071606345454141323196469871177597395097849304859547230071866679596 -3726141431238995322616590363658851982624885785492321657227849247981548495242247508727680411775990290110420891478204977360853532 -1644317907061571688813615690182418379232646792079005297020445585096706983621152261491067330546246215457831060764875633375743540 -0260037498619368766791619780583839981870124397870392302778118229013764892065306663721631976910781105530817819103416467777655922 -1257160865985307861172892171513923812618825522832093610372208245587343312911128848417617475098350804052464802003464019493811163 -3766028847159301257741274325560482246090419451830573366629957679849625493927009484554531296839025641820596875488169323390321224 -8232388226007759579919663974563407506786051531271638328419810743863932368666194478382016978871056258046863096095307264426924960 -4549834654287891305590680957281622094960361243150054432811463994295196664383435297694301203486327605844830810715344529812950660 -5753311902123482227347291010505867923405362170620911512612976729652957268599586765352146177919457594239032123428411979879139233 -1756522666058959488542110121660842887596621268641851969762507171503624064440144225359791257651455405971257235743672383114242117 -3669744927951794530124706132421697781115421405857509254735757547057701496218013526040546290811670945415111481766033696065077908 -3743986898663416455838782244658330408591406810811925113737418608085893951934341548820971030074613077943621026895167359064570606 -9471978412930979202834282673808363212715221979769900548835760002508328425519756934140019511728229374555172954389643589129389588 -9455543651731906114795743817911783078297338344457513508249293073101170733009370971042675747320086133963697038647918247059612888 -8987238012717473365026512535048463787033301244418231940438539856074603360903070483058902057658066015083363248256775852399567354 -3364502373064620236820638615612559600453180311037005397530277541350185917242503038852432559174885033399595723295543954546558084 -9899331087165498351833150053347482195081440704956752507876144131532942935103436324218551370249739155812929164520262875021494783 -6908904643032400627041773579937621950623563067061899745276566450404645141582156514162192031414915906603166745603027411059622640 -6495757281070400862553880509625330137059949973388167457480215447233006890221821337932185784669081820552176614865399261551583475 -5214987707999082292941559306056717820096495439266384956685554643672988468125971218644583921446293636673793845912080991022068721 -9098075542650837679681095355197850211686123726685262897042587789900344672369748441583193738857149324437982999889236683375639656 -3454737499177458611505297150687929879276146562076664745364918792408073476880967147036390541767431864129948395331642282070602239 -6878237499611110425456520778926623547629857959652095556385934261653929146175223058776396057712180642186976052559776640567287939 -9117825842497962507655739795549675536045986355442960959176637564697703951624943028930326642942379066897205661256857648338706258 -5607249824040048715831055763915681630425710558796489860046207669351392908027930067134903067626066854044057840603625024212216072 -6132093035960157469992103741008683953459144927130308314821395510817197195888871912314613073270790771658400690547770532514734857 -2289766523163076031024159344583085122839051296194651927355671209701571188590931542840886950235609126079848243347538568462648984 -5766639281060869652151900461538022230554309323803322083408453315192390160247383316259588161796028371801133887539960085255308323 -9483650441565836194775795637439945189737766569777908677905305601319160962603730861873961369931413625520373523170442339205096446 -6397277751314562067770288602692729550017088466152598972362685935373861021657565974015373030623318967239986491125515528075018887 -5402601339014610197678055292860126657475597634829577844878918241260173909075027791997352414032212153167271561905364752619385786 -8491863948995147633786778542070447298998068007279647829967199136460489001972567744945790789456373114064713748773853626265799228 -2370209092117301003097542080527068882722669167429990641325299940901538545419032212913930826834352316812337709858765794889107909 -1398631884718147949515763634548480975677014453715972288924837802795200463595978496786857308537512388719226166051585776739717368 -6941189534316796817726911487247546420252712714875639017653467949442416805399033991555627055669486555645886651826109264153186819 -4940516166674720818220542130511334825103331157208156275492549414655335399338455554953498955587141484886410449146234826660024826 -6659792948006838082450272697160209259339168888357685416533244048793279607628259013570705943914832132649302220555803191155769678 -3450607770354143996892622745433805449122734203977711922327068576407370897444833149206827486642681899060356549533970828759001934 -5727275520263633514968976110225542746359061074870472786303946464842833869445090010825025879958856002949152638295200941043841906 -1327175710840731608371208629917959139504834096615996636184118498113010168900528468440699292352911245996048410672241669829930509 -5804872329617982647538232786144744032881485213965459136524837612293635959247462464117508493059931748287964717902656930987863246 -4277723315738568098484054986328302182182023008609946701266751039890388797338292226205365731416488922689962862442504898912370823 -0169167783207015850910326779335592201489472916428336283983741331168324385837589731443211700684040249551018329769335204931232483 -5298537282274168905097783252545295159931996045324669229561719918373117774516092756810950028198012718738992851067743291059615923 -9444851345487696935698137109913963152214976022384665735269814043959675847649595558507091607437770303094115672250928216923641250 -2149472592686716079768844857346451000286201002122320769034758020998927559101579776094371380910427183625784710226757782544230415 -0647876642293735785152692483992423954470320088754545909378609961100700126777198798362991474951795873563734734785888619665299138 -5849838488444430649533263787538811331357728938722568950445006777515651519234515285808516388251516110101450462227962034131202241 -7276104739525907372419126181186384546119321638501786879645354354875497667502927550069197442007577146458961731206493061524033007 -9422217503140335187736221742892478886207544102369268483447607791356773560830807813772377547585429918129160635826252418480968692 -4951724274446263780114357613049442315030582695389596800003586264063614032462365896162651936067640252887621519671734335954108739 -7454566191860852039559843736923834077952568697550937244831873949705841445761551247253789687164216518186201016215799884228535871 -8439893371971012000885553951535059948361302183174942319645796198457357286423328894929588756597087846522596101434099524110623679 -2208231333330844864465745363677908966068876448934931718761801046807820975248234034617078513450119384012451530340905431793537946 -2305572597375584599916270867173159433891169944691281508143382202813205881528811308590035206333627177252785229699333403132814188 -6581817307307772248849032636830370028521484024024459152842727518740380359881146898101434552487760886134249651169919754088451088 -9972253499037895070298514770518285390402914258598519025675691003304065496834156654347189749182550625905099172508363395356804877 -5758008808025624632351941198979018660594929305107322792450818499652772086629264781844489198081813129733546688788720899531192457 -2745675328488913480621264293304705435951452309540398654081411328496424730516137398740590505211615977997709945823736263422098774 -4319217301030265407335508264753089155109074707762624338354639950177679811707826932551029618948153019495825747590381756914645981 -9125342547489286004121333337059776054538539726153714180036823804029952720452919240063140345998373975940156807239544138619226508 -7242675874264000704878339896544038336920890771642735504973073959953113142490324395737352393349120127057115852252907686376626747 -3473321596354209308933007945651010752129252885281924230373167976919072240297072208573755175225599946410500654362886750707794528 -5727589543974524706691693259117706864773673979587751324354353742658357813584415514973239116989629743388388478173856874552697761 -1142418605095869987288446285147568178401344806595851658792922110020211362874700057924021743582095514290749364426026381491938886 -7017216586801442390706943294273005287782115442259090512088524168970016375416554459606914186390125156135455842825317699271637907 -0211233315441242280840462166926685973850749956345775689925242698347596240183158491250150173733543845430700552741593194555804750 -1797724078344241125893042060239537330994558786922162379383591805537659608535521283089375039292199790021670953442916099772863332 -6130652679697033488878720295305832453720948952785209088953761883766005724826476556165454243473790630572440696210857988190704713 -4744821686581324503785124383460438165434233854467259677279955943920755162775872557500679297287992727542016808831027373389642811 -8818850180176632238377551894120301699425047464434209428644888921239546400810384063448594908229208386662084553428371435016786566 -2565402723149127183692936818466510584042955514361987237908845951130503356391102529543147109435545190864583265738886354448729716 -2555888389438655691918145095510314610669012618591908132566801282747594112804817710376968735883323783155393749243633468461076212 -4037970808854790499072817736929400553034907676890898900783090149602127450205466513482819048073679969106848951996174948205730701 -0816030875372524859030697931442206128673990318458281042368684773151576092499288971063578724086458233384930941299441451767263066 -1664521612180858396451529620088930659358500352782541669595817923485051339758066634536721977274523994998146473981701939017205602 -2524104027099484717563367769361246592695182470261402965977193164101572566284710942794698915634141627566609476347965721168530986 -4359025426573155220274777012266852482447049345363636421786714781355224872652596955092178684933842367455487342490049229104686636 -1405127824749409497462184480237538519293466992317964479311951604897323056429690265101169427550747026874617333157171121236924703 -6018076627013550295381656119236991061160617457180144979226462876301063552180250667955529552359828561142316939674528337208856344 -4374830018868998904944977293261195517662546966324518234611103690143089662138017933662034152841911712239931096922875112835748433 -0236447221655510600424621887641222992324877860049632049076965940501963553949996895966286320389211270787434721126820780971624253 -1124118658886218410732481795333541469161905682578320893049989427979158879370075562912903672274463984603712619157580009287344826 -1490073439715132975375184719480763004789606934374075237219980119217402660147346676094869754304392997432951402325274930204871342 -7507088153751893726167389642050254715794421419546083151335746591084804700733010001661585164038391983336305667211157845088930512 -9454605864819889656904342091511833717539963300409957365660591244004512939427858955522107791635547956216918186634105330346773979 -0658593516322846162016300446203238142166026181710436615937557978420890524597354295972144917810824199008158678995080211427722929 -8980589661160288330719076634082892363742482807739228207426629330991685667550752678607146578792931470069849286956087928508404855 -0981420843325337105199162550260043516249035154228170027681913983488364730292863723816365277728171439162179656110789246164875870 -7235989772218476249654125554327002628917857770756363184283174214585030441232386973067535578285982100385381595377232095167172355 -8531968481709055316167180990447601481938541581517577911736493317452245372585792259012856477270057051421673563226983021870172320 -3966519268023261060863087111821082801296148611252172465597370204173800451852480272015584093876590792853690848377385063421097933 -4667059194375637666825712724740535719642601441210189891690016272378550854485280624499553958549215837331920055819015130335235748 -5180652276625067336617174370015460185337302241346649852510792894228685353669611675801310899772318114006268028233834332313504023 -1941303813100529733477333374209673305915978659212933725574700988773740701325826021523545062039757705261878074707241548966802269 -2746067443336418197240323253838643666106109625323987238695096142699993722607024221029583744572542375113816178166737688431737737 -1790082381839115387609873262982695752275538347088304949304931589485737690198187441832377091589179048950816796427590616885843542 -5552689266955858826481326722121453449315123458065490624658389457610909531278210069460670951157478754958271396713130819467585412 -8161144774814776141255994752061769287038765060690866140571952344698969957192475271081186838639007943816699743960034503332953194 -8789192141356424274503562578603345033063547574284980009602843989229909463071658256259561315235167835094522110712803401150014304 -2269120125327746733199585385420581800688978135760399189023545691870920243025811096318243711254873352522759304218250492540601301 -3220660009367443347579325094663071621014417170436158246461857082697811419327408184450532404128001876815109034413458694764955526 -4236810019612678173215181621403086283786465950563987195979676317579127299901400746488219293603220797858502005948349760508971512 -0842456999754267165377711495312735495780613161991580964945616998690779002045181519007002606802172925174094502143404195978695837 -4416749583760585438101952975396064089728080431113199590836008764153005621794368480547875309689843049490843783015113705286745691 -0795274682904383996694242263473123412015847505963674606830368047427506205910859669522416907398900276339485220277009294111636658 -0726660439712285671104280059752886748116228091939311944983809111670167487220776456879193368274819545300958924106260054971842623 -8150764216086897115298219326429987785009191738597276238467913392040684511353140756968540557235239878544391001829270153861846092 -4383222134341106409110971398373626248863354871646454326385144812872101996077996725153807549596115873770116755372384144360289549 -8170673501302124114120744895395545744756695363267571023745570418014263093634951684729982428233593809293841917967048459961199699 -9763136038244743451806991825890314924556837135102471133555361059824564665398157293669951119702184740695499289874076409711970682 -1422421956968116348857989939957276677533229421063047970708284154758036180433546990214632661390471026182712000805513222171655488 -0790454789270387069048408785812014404576158995323548751958890039523932351478622587142638056133836919868045535455845844392024399 -6828229983228262659292226957969701095193296498963956591476120614340834793473477949399153199148731691820887892496627505449096093 -8624492093374718033878604413583151815223479591147786368391299257097621796393142945746725700896309907581595691253852161958930992 -7107729406703783687280485106218574382700030054257355689626925093581880354626104182184797971451190514868852721286584413091561305 -8741987234103316893377380144344514006198840745678799814654988835056150781397439910157073114301452768509065135515533734967678598 -2735043292667576626222020726140529203825880750760734206750175908534901067729659839678099054130592189468939769616706044680647240 -2763006819383647925527431911808115681683993973822624367816274873450252222984650251537326892288304742295886859351709349425297650 -7134753100395351301348083365117683812003850761712390745630056031799089854945233811860729771699517948808663082113548033370410055 -2156718353193091760663949540389192861228968135157606923907872289234299014121301709409557692508414639141148641363055713300497167 -9323046502608972228620000366263176485575290223984881067717695579312796433503231136630486297616245185739116228913473000321724069 -3402413948021099348085449161508115950805641814124236561124067595528674925736958070838477983849773356429271615279624883406948406 -2586362309829746055325863292755259087415528960697154410026073785183365372343620398551768197389974234910915413966255239135166137 -6948141006945340339297784658800718813009858499271702100629421441689482806248257882748211373263608811093415305500022007093455945 -0842258683716404942736428616895358695656655266518974938995151040768012671515151979466768515865903424648012383400333040320383895 -5049269512019956300105561497239010604854186206683961343893764070138734690927147819767835829400814779254514025647466904224213470 -9569948375696342652641662102284605174592869950745185014008552719701570802715911338264166097617707320465336842190177333964575034 -9428680684767284183633020532362541285325879314896297017757679938122092115670160403478099811406505218708402491047782860144041267 -2048668363875460097326211666406188941409324970507852534507916458181293600129195542233794471499710031501087442970014489278431811 -3405993437193068750979763065800204417948705854493241428660974718747020128492308645680153785966021095932035295060527677641892559 -2814589083509652662902787080397228682431174828014560598681492336798258054680671382857806718386021239491601389601875295478518945 -5986699496572944083337074930929834075993621216590713141225309670719782429561351058677320246208472110574056384475102009208825158 -3701143845992716374497567663523592738178836225177899343548036997338523733500001300643656167477000925420983129066143726434092701 -7423291379038754262185514882391794604313384501082737513845672893062736061561920457702887522180551612186897189287428790772663945 -8038882462960387008399150903931548842040303337569963977574310341965170156166264463639669524288945874943197641758694114087360524 -6755427287648373311476510042437767363082433235534497669444705172475485394287772438817148371693824101932257743465051113814804574 -3302584529244780057393036854445554623243089576362550605055694156880682183315829897197741778897975736012282052319045886108088033 -8087176493289867561968800923375092924482419715512093174473694625106772042668885277666098646361898523510402733964872800445131037 -8320007995921770348498605128869111626930267035943426816435809551556518111290098800524644244409358410267473862764842446130048523 -1436098828025610017328979458386153232076446194265248731690143382189291992244935737904603822794261840119592775301158595671929956 -1859896675014716704798696047818739852245706249557223427847334266658566082156593745460337399765187932861285602937611319183698837 -8695387218535720582564065835479455701900416698839376472323627804365945785468346621682197696163783828936362978547295808542269445 -8279752484506847142094417985544033613129823835703913986703044915444548737906032583690923865665220094573089105884291792454719678 -1316169725449877686068579181522410565098719766530274437681078973112896904796812316498589687674134438686508004774642199962324204 -4690063619499878869524791692206588255254568407388459022366711747832387099104508881401463078787110967721065394141648606132537550 -1451429470869671002057789223158518659342906175930490990163086609677315590447420960904216338864582531646704745882645257996753003 -3594769224483393076962577578336775804994360716705648101110515582304099946203974654110102114903083901640907564773113403226112614 -7842811390980512417623967516307862595714647209118659868698680060437058188686064362842966029195804418885454481156401460457680810 -1353730331240432284758809177395482784888827256712163440645440749728289433010840369051942073911490213001477219496896397735829211 -4601945158211709423733169616586120219445506544455684681994448828365740758425856347182450418912396580393258871768216932273389644 -7546606883962070377792485250777570864737360035965255716590780907370097846008363755114568550428189781279182714576817370377989913 -5909871699164748481388103916215854782263584875652627145927520783000462057342075067627629231607264735052014948668522278967261465 -7789853062938105623444363261994088544665616630390123445507860288440231593034911635167838522597643333127458708364830418263896184 -1286144438352596484065325500754944308173042437315362632781599996019422261591416810474894175619846059414717720198222378370653571 -6971462477582470633206125394932199429053380382783796898399516803651438673139498531736021776634684941580638746309619120992683170 -8629432822993724963855361987882118654589234693568266212440633573606219295689682039033133123609808063033145394447533709295411896 -0281594967652261579794466637274919984182923757681634332365968310833409307348568763974412665592870158544818035335013012421932763 -7655826860692715418764005666669293766929001138134358352328235302135813053504743107776878655717896623753934484760219931500298692 -9290168663678775972562133999711785783179036668870829240738642007250789936063529444287722257668245891843786516368999364205453698 -1388094089899362163718773572230079214466119375080348978705038480095898940916060131319234067470176587422484787467679366538347868 -8017293664803927630769729168954945146012294840940686008911896485848777037133106837925465110245874730110174759001141830380040038 -0120439722450454617928179479243857705288134086458602893871161972846537382451740227055242495699985657918659780373398590814158015 -9185549346791665800883510913273745072991047690371888044204398878541170797025220849684634548447569944177523688037116487344544844 -3983330147768673814424552255794031561316294164196820680509267685360230979960997521617397764375675161021883986966830273621436840 -5559819786199323213875219658620019627595340113429135282821726501703289978583492131096279542835050405087347140325687712807079487 -9787946090092230362250195573096660493646419587912974580035697132589473417918325240116393969464922906025196729087774385693764553 -9860355320714920060965670358032280168554148297437945180860387882403591842300282814921233640661490871801402207762626482522032047 -3097025361491117451005377278198487212237099544908247111077372764356886263791448989161160949762415522639831639294698581458345985 -7119461403366321455704765813404706513096376229662175435103856904757065360840168635845572631764671801632765978886309611217770123 -2355725108730791813146700353437818727398062989969964100944171032459233591148110740093249920429111285758187817891195538479372333 -7717147589069034365041184332554553609756818941590171329038369697464604453126540943732615622700321916184110353125350100127752260 -5400719243883713007355805618610788516934976237500923767706894033322172234355015854525038569883308926393709084041999484656996753 -1283666031444516796129629651038339271512674202354596553588525167158551065999313761923723647718179391480101442800341777895133996 -0753973775383179955400385390016380992296547654995782315767306424246762945687075752145691419815405005932537449947304486849576643 -2979180958396224767297581462043320034127704743702992357878029772922817116999851784773690688789215232089766369127969016032601856 -3851573261415488209314332793330099314068046066211719044146103127781354079770099732602779302176734228288014045681315375260376275 -5613084622744138175415292879907528314309988380989805830104342547726499059288400078772029464667932988421246953056079406071204771 -4586730576036740853854978952480253788859203002939257757392716256983049436420156853771221502897572109716517239674204969203181474 -0982119350191052441755943123327258611832950316806139591389360751863567226397368531779203766930988225110737707276225086269268083 -1166609927459152345242074308503846915870742513191815496448329154263550697382001973332037653901875197894977220232463712982961473 -8742250538546251559619529217497793362557849446641056066254726761640756859174902719692841027963345440941200289292587371677456563 -1787473730619074666648808301286212846168364513813858291223488226257956569272198811926719725754005926219281926579718279777830444 -9964885779070155802556863992597887379404305287991864566420006473195804170299129414259096081893003248613986369776375193541122827 -8679261717535638702784929128089835277682571491318590535314932208130153018789998592505582846756436233025096155853923159667457622 -0064101062279216730164192200983393569735835140706754353527254528463606619322108164129797836707319607352924077829068257856221565 -4098966914598730293864163204728437998349124344700052324246741119119244973881766239805489297351925527481613098094358252765642656 -3256631812453399632987567720287450907847236484423613740997675264597104916297183865029408528402827703543717537820987540612308827 -9763193844988062420108359297687488837148328286540087218373263127565810612066788312087172343604520200144217517124505185828378183 -0839169941798971803467138716750724876136916222233258526467257984594030393990037357389464526262272705365500201964650768865692587 -6552250604997641261294087071350242489522328429130222914193744223497369981001341679952214443941383946458063259049876349424028513 -2213974436158368636025109248174911312580051245505113315795959437260475388392500593400331863318219524296806654096778830779216940 -4878685599516319690797457606707664358483790224825508827231099632903629838432588023623129489722939201221165328880348763488094404 -4425772854689128756512183299147748549960529805463272504802739617344094375960651486501133996216955411590283887952698362709773340 -3400068591062085249345178361745959828363146278918068111168494145377017234716441154409189698261322125169944980545699464089750536 -8846865398199885991570109728269877331973845988335052515573008133676441111176443077214835337189028637762538757833593083011292020 -5146028640720658045073881058022137119722140728994381646856170548927402303281330627742305686994941764560406751703346767750713886 -7209258975092391507951817856714755923161856176501059139093203502102911025009832983122251947751287786516716014787221574638939756 -4031047248735708744857275535082996528246946792080390060989384866585501142477546435169883331570932498501313613151748523824910672 -5636536308963660510951867259797466984603129916969819578084787382312187680895777499152465628258228314680156051454804934741689251 -0512085879302345402847429395015269085320583560263939898103230391420972595529857458723736782481282792113866713373594735837816637 -7989131244460061235927200538684991689192443600011394251966967305334141431951393722271395226793607939272662478632186079903315157 -4105861225129127048237596511466748710669457275423951266966241892139141936555720690437418563605034436351637331842274069357984239 -7714780490538701008702866992517751463558344819912101444037343071198346617249265664311758101747127784897043351442589412949637554 -0794058900554049165331519254294841158439399536633260010261808293322453935679510287405960977887161196498223064393352481611148599 -1300801876528225731545729262391681879452425698425569733040068970789105907778300649408653356394071182530765139660697696280006682 -9500403460028711452841481826687628011337250118712797471026118134978473459279189369396543791538899643830373887355243212938105191 -0873118171200026341001915337132116843336126642682077009436271005094613931653248785836179383736770204896797782028704969977499350 -0015763840495758341501065058600781266869591393444306380925176998016954972799133300711081355008885083487358653288976991291458433 -1182038281534129680784410839850542254891681906855217404657576532842299794168911463577129652659153953666202320168343676218151354 -4489515205537483086890747806185147028159038841561163491305751443503026033718219551299657596422184541173585136713789948319572208 -5427049518844513938239013971033113865769356316346953363872557559769111015332419532829697997722648255367995610629118024243751562 -2407474388820183495631279695253839995841338363502759887550630065930650395810552864219034911688436057782562693639597408091177372 -6597246835826333390472023469934087393575305915386587464255626374910540525559513620612895257369286541372428722814356277369790926 -0540482329932732167361734686964636330198342028336626252732092257904785101659859937597352536082164206650257784256989122547150860 -6958569549047812907458129176134743095874743438183862052347741885494624143736509130890665487847350948675120079666371405006768737 -8780431675373547960195603385932928721012510177772630104840609721475744144915357267790854338213160647630650329373129575638594956 -9496521524390891252020171500116808958864975665633521384560269916937417268750283135245520953900937858745308291830904258244389317 -0015367958131832930196538448945414897381505579147872992058659675192664335486653438990141847260783598099119731774723267313420147 -7668586967951300028516829535113315808229408687973080784960696295388250987543953394689424360452251573606982659417899250410280988 -0855610169950498351316129660470090096789046559977941298373823170600445713232790694833343261118257499105417238723309775430866295 -2330553865870284141777533356762036585595078938692432368606760459748846645365953536258322870084801797022785593339163737467833147 -6997226216417469287126591633487052682393389785830401431520389186301156111690874765557617527284900760279233718743071166517225051 -9560345000426728260399841368953209835209100487337639538936954570820031680886090876109665021023200759147113373797389077298422122 -8175155068276335352679806117326566700814346009488428499581701401590558929437455938924635624938224553855781741120788865291783407 -2295536946679503673362429092591476438921243024065802176610048872694278802256805275897901963915809617356852239830206442834187860 -1980560976965565165140981488552352620248220002599581191144636050647934285203553865821505084561426414945738261567792216102403148 -1151908591260497769379834919810177114427370448525005415075150280396616811812913926897078347185577604045023394052213732465977204 -5152624009308747654657296667409633669797187558140762249677298229159695566185953786763883703575683368256625993695568514289670471 -5898396239237604417219674285036697981388707533386023577734556605753254850219222927862511398982564982295186931657039590148578018 -5932796785525089331274908323688642021701636412080489905006446995970747450915290182470813258134915840332610387871533886024451368 -8138194206803987511384906150527820013265474338857553899093509868964543274546783521373587071739152356855552276377502435950664343 -6671221923018976396144288089085545597962326938710922261699996323322275457923099268605292778087753199123847741515682942101433343 -0553836973054122354894964985734607674790792609106461042226839499946875666977767744836458472114784382708675816804952000351499560 -2364997010884637465860014885474868656892220025469289156670808481103243684995557245150848863996066555128792257705475749161690025 -4110649532154387762250909130921439734079690118528643911754202049214907597563788601359791270067268169269560624171237553348861595 -5940616224028249469894892261151683448506705471885912971357007128279832881479611563158245452847817654715394431167451576558923691 -2701950548115303007534807474569747157173002064876638265966317419898895957065042960548048125830083650783906003217529190210069108 -9448438509033254495362865744281724512323137198768884725254104680523096628653622761003126111128301647813853623032837646549389708 -8800961571279179907403520239170262557803310568213744508717356574441764473623277516011904000012404016704294869157929203333991614 -5621867976685621217499877201966531190154493625522363719922688125680349437187226891224242675375445798588375405091275415995993660 -6776602064451444697704536229609651834393352676778641614610712731028707328894803760218379598569050464723477953936124087430950917 -8609350069628812265374110081821823052163446196500492527833170210965201939797385205224718774402651526872691305286672629217382035 -8488697066441224751559631066164022076293716903983024132971083317225244640782734589625800094058649006568726351629980984900472989 -5845746441409288197669763941632849306888745439411555999404218596367981143977695990224865577494042079971012624349908586273448094 -3944731944003065116712174476397673714373918870846441482703374457072218866041336694655582361341131880499845103050687313792470342 -7857292237476195260600973001695477364449307421802939526518179464787823934178232688755800049682688090660718430541383983270572304 -0611341821464316878794523833266573224644012837504558841156871904475125652999503438286924058574554384509785291956022252381864357 -0405626679943651292212678664558286589975871490755359605369624889948784641951887207653741241486219388021477385980747033128784838 -0349563685997861866328510113314436119201124870929479544327167409917885140426561670911266619220856732660355093308773694213795936 -3842271417777258599324767675283259950186722960735488702869088413460362934496727774403713216022454808579752649987147082209915211 -7262086846799716572297263071380322488276591389406786696601706848938742607301811413241169596156442149745813064652698654676224030 -5774876540806221409456713575924968982273367206175097023050483195829231424480633395579433434537883182331511499750784779245974304 -6819745509357317439429415625378554567362388569070215909977624507836378437106698876357999443207523376055325643289588788312580731 -7833148656904363694334569121139758945904938915660261426660062808527488257575416983895078937523942074734502850315306918181450849 -0874641305830980547277712020017148651915548171250649493853510014278214375521776229277631115079740388430042785920214556466053488 -8302249778400205215684880334891997915871809162392886542987069548288428411471154533517912205528047987025944754683578880543791606 -0358320982227642668267885208147099122293592290139450664586369209811129197752858004803010616081626472750567559363814707696436535 -0313506752837594147209139665385131531998918025147449755897149885365821721038971422038604629058413601987368885444084132780675032 -8698373618661979252204221364880007737028947769589369624595251994724054095272484618585409406539000761630748495654887039290015310 -0800818173175869261167775704612174999230343952148568401102639665953327107535357309312915124706207238389207300777172747117401698 -0640073150863859675544943154734483059715378564796905159762945298307365280446171698542814284025032267504158534248530901828343035 -0873201504993233632733239057534034773053022444340692497950449652566396669145334447109018793398061041589027430348848568737315985 -0702523531880691374404054678759180464956226260133696133658291458560416403819468440250477647013266610552428012647058409477074911 -2679888054788444461424298005407130238905755507645631966764120317200939342102226493489457200513433158963725232826211305616759400 -6659241756332251314783750854468182797311328498121933543014291040088680657858265588241030117849346100683667795040402222839296842 -8277427249362157833641670896337597700968219737912856460330555628526942419632625557211562429343845027815601523792180592076379859 -9754404607631948362062894438912954500557072195072644550642458309860663622333701157823267362150209715197912528880882392701349340 -9392967484360182578733939528902161701930343748675665636284278981486199253820383071398887821347218338053979003089742707812914379 -2904235361284953393462862403685101898073830804299574939556200135991635904384199077467177409693740584708928799458835571980205648 -8121614185438088992376830836290018683875444583668400234525664787649173577729566744205001928280399848363250846307170382670891227 -1379156561645180509829419293369128655964653490776933715927876086576622995107120980971557236204092369803081979966524323872401105 -8210634652239640140303181717302977441319086010060056823202877048062527278336721358234059108992008083109338742139836036323492605 -7384031376893772770300054085703713950658765604751229388016547464754511995220292088356538057488534591958960218276518555883565725 -4074775956662864334941163174462487475635543748972688834049926463696503634025310758502751556398690346342648412837461668031647927 -6365750302288055740676475554487791055706610049861824646116595120976061102018119073494765991803213702717674747175954421813209939 -8009331937511328151001411154015547213063838109162601512214845406533014265983012161008264010599651427488015290161524354573353234 -6470978945561557225050621564665550894387519941185513668617316911095236397590508616848692919250154411755818493336504839734750031 -3525111855377922515708294426372763399105358667430235504503228627410198905334837234851992023849271193012460177555030458178964902 -2832205291216922852095126506355099210740893308816704635379794133382523761361826241501772732710458333973916837834880210080414250 -9084082447350749526849475397900892283815818083030975632291741303292925823304366055091504295072069505478412237935230243114270458 -8733240614953524515745727759843129756538792646920469274157284227528661937418719037781765126256474601006075476554791323844619684 -1035243868690685092085007530104395247063420667025726455865466535541087734271159372906562129287612463548495628710375386966180600 -5440542501876451157868698528285357586655663503645304099842630588650168915815059917415278238955617758631802903768822104984447821 -2018849475721498910886528030895133588236820109040257215930892013189827568406433756483461049360024443491773721292902184969255790 -8822875627013591731684908728396697952056849491038175568000507526035874582989907019189676297477355884544173196568562596540184740 -6207027832469439408465681825635058880584562540284002435337574271598044807397129809411607354965616450909115426381853724556891033 -7221658030059861817521753782741366902139395897501991336285575875528980544038829626149666345302799699624831576475243396464744984 -1649540253799052538081391692469181324705607910980425515252483873483980593877409055481936471747872491282539042199279780879543216 -4236145733824367590860331474571745015558798839670826761096891349398910243527132904379844441054007921880393265550231971508677926 -9325201276405157061556423958329163005949768823959483768715570931105074676418085399720398268434277889429566019457186074673651582 -1556755082109554008455021604947841187746491317217027281220528571996910808491743715098726471698066342041982149950618417860098084 -9612051527440619756444098523237719085720236857461176953239899550769256325996619384467815272576473677824512425753715748473823644 -3293706412332532029368150574309147409666660955800738909802362577371939197344269404239579009973609254902956047445459161013030585 -3889810572293351817285095560307955387570122899356894847953368306309169743185951491528192204482516204225431961214922057114411745 -2466537795850541088028557343809549480793529110899163252329393397207265339963882361084755962562912216879860134066671514387618346 -7860354854395803331508980945959835169783983572284248855654573657487835485311040917221652836888254950796354469715116733559514443 -9649687850645361629683896013084952406507914922578933911589068814423571506614639956792270631464418346423540206296752844238915237 -6020288012912630828121914201273847417936995938147436941121877369382021368921214557882494996867880498498027992143690818597132057 -7464732232055318247290946075477625177092427701352448918522702341636498386700884661390140882325113012278493389309349523351396213 -9696483275515491260944768055252019253491922403588385357522280969636691193420388846988546363998678336385777443993831313531774583 -6282522032399446565965739736752150396232120722412203505719106262036358824681398508892551567229346012725815333843066908465157756 -9407628149379572734413508114861082667244920525693627019900560538557779908157912341364139167913811711711544677292025506854245811 -3464634373606321375959043076084467134891991975403488809906777158185809859079955799214529934428440394715803296141747865907907489 -9423993889790762040142434803114305323935291193328498665927373291227929076575533913306444776443880643225751481031179680675214923 -3368470912062297700011980465345274304044785588310672874869214201316579834207228249128013243107286248089143869069547088156308777 -1414590222708121116814503748513196371955339806257298864789960510451079590735116383580469454857965360874314128844784304143454069 -8766678394720390254448078037404671513243310605018703312189431738938607517130277658972087080448195787216475306011123823302381254 -3391550184839202307004590614178501644771630600861096494601392733266531850599404613838770697571965897048614790913072319558856284 -7803230787138777594218452988887094396749088370117209351285801556001096168575241228759515079363186428923678980339871398190852582 -4019696628533985636279505759337532628472390302841917324608852947709111244515112700445738982371253756187679740389512024539739520 -4770847899134941839230668652175028834007538603739876886601634289336067458758592877494727624461743546957277223347887135182085175 -9704365765485920770156655545282270424007413902597806432869012806155483311798101235310454409760720811406614955012826140011450968 -0313480515097495573412839063893028999786645804567919951099814820194282264604422806064547777371073192487100289094441987847150568 -1657543112009039941765308947835121413396501421019711136903259340105124014460634621836811024214292779775980478293474663062122820 -9705767650372955367904858685510440746508331239334572782478185604370866609254504064506288513924921428844442806366648997093161941 -3489214963851233247024856358669087681654387218345765317192165484089902190489810844772030255183904855574220071570304690043795231 -2065091959221855386411960322245401320421129454685844655947550889456851989959823948526569728196088066488438899595441765150072821 -4429114819428348855107669954324003559235452502739679008927728613312163086830142833511895866448006257958165946765071157730382695 -9882679827690443780755577550740154748999710142655073573245474660654485200341800425388615819101330831466686148830980748666684090 -7163405135812565179670235235614927720441373285793867065291904861238349709700184831060873375476942470039510660809272264903320798 -4462917767939061046448018044214701368685457860623889616757211734619696932095108903120448131130054208365085745531785639497736359 -8218165839330532616994196742532527473553555966673141549749982047712150106818828620285541917373915693522694719282613944281399835 -8674485087809037160526520795860814268331241546826667372648249043039257847644579120849321232434718628926179993145231262359579173 -6402705380929919120941181769537062173912605142768108201761013755197467816367902585985810911153925853453654100594647121313245913 -0666872833826033632401371436548685693080139022484100159022033636174658329127466366162032910540421919446428986161784748017789598 -4723199613767942411247930612753447325541505390129994382585659648148388692327147276519250190560063905452973361339890280400124358 -6913416888336681958297148217827338479648390575317941960750631878321348332412104016113215430987661026879407929196484877377640061 -8494663204235300224243052398541725825482919073092074355975063032796596426605495082752541621103997044605964809112021627153615430 -1932408491193512375077001954464823146678231602554522550896013165127235920096414910813761330938337552089472955671775628068540474 -8216732019553272236739723100215131535386354969462704414412180804694918899617675023795044921436432605559415902678545425651517812 -8025247190590822148102225680479409002058106823871348717740963812585351667254545007307100968605826752214724522314039708032085185 -2898242245907570507615621864533672777989484514162394933849338212142607118088404798508269488444104500180113716320167923336719325 -6087711919535546884547342110103435389748847458344462232091767124995184518172878034781269231230242533893228603793308922587510107 -4591474660599204864799066811331150365409997858447042372594886218949250820247279474918230135657009456785941687614114216570961562 -0712145092385555182611993058740320634997625075753366666542910024626577807784857468873721417913984050547176339602792705731039726 -5904226911569176720780206777188612328120845124057780320649670149526594811111907198960857717925291216166167928639613716137663067 -4307416456452371611701931195073322788105756639763524372948315105493615715372579618838296610933712476520491005806495650421658587 -8328103991782890592563008949384942150246156275152343753139757736003563406755966669814359044466955928045317799518086337670918431 -0138083133435376046718367707916060720252112445257291714225747183751131216668718597844623190537189131972377334685833227229634752 -6238721382625606157004023423898943602807707672999152909288657052128785368828226605301253816178238566671806542598902348311422328 -8320139586923410723937149546492213794676826048701166669784481756530412597915193651538414740148097847037639468257092287852640305 -5479022830982203377478476331811758576901670233527290215872232363518816501458927070562308753377018843087767143244104321568604135 -7369186061703793181459759961931363593408835426106781211446368072605366366571248851597783995945722926222426820630491316650527779 -8828573417201809585216027386210261861298732060253123609864528252840272478045882739663756003736716392199489082689850824432511971 -8111646983909651153366476446390221276039522740932580204249319217339578537772918571217444956420257260371077236650618481206170288 -2935054551970379324008798030984106801055948226939968902171687217907155340893582643366397894579369212912093597160438593641683669 -2485378257568528389277310889609277386833678172566456312002344737328227016110453362502908568225831332260414575845627976066579941 -3482852162228716106007258452673841400279159876124086723321209861347673279139378292982201754962295388660515249705755465339980807 -8586012495756212505119149505421333725699491270326513988475156468533804482583378661782959257850441126447111003717332538997317723 -1776086627675735007130894098661445494477133237650830139159997474669449285984774365441233470966013545796673243563388041724650925 -4871204375981896728514583939521811481161849278118060344334503543763509824336823270998963842004711517359429526921820434423765506 -4949119417418804810189631493303008698556136954410752013975187350631734375598695358460132019129899037320268439555839944615572946 -2352205983666568424098911534581381260867463768189900460175744875437666192115066390019086651996365032553554531097825841729484867 -6396761821871154925250940721334814793716957966097731930384514803099552848004844714015522077211735687647117734547230837853524693 -1596031648179998000220637673943792334209148422484797868537888852196932416293373918035158752836265069893009384789762509582269339 -9695024706050496247098862490788952376578622083442656866053965079277898118236124486093149364786379996025483226916387856904200464 -5207178534801739733741859262250257717063345689422848102283865760573174574242830519134626672907219548945944321186449133371889496 -8091522599148708961675484538617588113615426169855145369191110338586586013267131819054886276010519517578355159744969858769754154 -1409888192657898889323633959345553144675637666158270953101126274823625732454329591205013981131246606853736622675628645701807371 -9520905296639004266979383969455080705361676763621326243504360544161563837353776252465278766865244727756979870759572455920688699 -9581386171160687133121725147597447299189214610587624098233087649334093755829602691095533964193964555227483958747057992036054166 -8721053344317784071933338712749304229416314171955616978192540365793299631623144229526476496982594982691261090976385827573975900 -7821592310703338108652726889016577851582851275588755649801212540201927028394346407971389167170778763825909054893860501536766294 -1680216758688189041294684581042122535978201496230771039365667061380634389195094311357702877874169983055267901138828354564408227 -3161070157288336465271541894601581266294703722546655378330486847268915166615856440605517140340676687703279431660743947236511822 -7741994422834194190860106225475557703581613419594307564273066500384493526007784089212735294217591917854424698645245431154845570 -7453435530259083182485810144347944810673614929556646679467919668579911140259730381818980942598880746925296760172341499274790409 -2328005309406832991426090784212693827689769275846169654962563240745452602435209585710235753460014401490458336687380630135023071 -5366592739312999644456849006548399917819901894358497737731098338943033079178655254808256654806548883980302404456845406302737523 -7903862311453131512315977712627346676478344399846058399879029101474967706599628983635802084695117268292559579897221003598626395 -1226042367447825280036345293351132154926212820976803484997329381495188404459278925205516668444497544901886948777923893344531981 -6856828147900151315527595804653628550631963940129883617356848115429626055627960941822258407367220366681493979858804129725050531 -5342427449777364357294403483728929672993293331804282077540029002773232860603723492768689779320843055290078442091489307669129440 -2646993961014124319764296539370434958358249722078956842849671467698536721940846395173191197670777284048312934901527571955362838 -0198542559113109732314309858412233715215167131228324026800689688315670022802995393900835564840785241774828835077665262843753444 -9550183762744591451958276893980778053478437092327149970098767098796188062615518630585477187237482484844353645352242801527565339 -4554133259430221270883589344804016824319680145988501368070988742027201586296359667866696516024912143872664381709357471736498210 -5093801098192097809224518282804541968783581829389873304181998214634779593308644761544892301474532546795113168811568716153209669 -1410860371073926432124196875939453572716037044352794395231284292433400177009767688979893244784882963302195811252949131002020348 -1963827673323077855623143768105648991600618303185458508264555147286917125868559346485583695956446151749324530132278047444739067 -6874456031627491486993438537612795741124963717273593326065380547768578196708046010574823669488232340781667689355939847002297664 -9059011156256654537948571823030159169978023672567790424242785131594034312912382632898662220373433122635586320057460971136026042 -4324851680908243245093083193503431558790765585803419091388697495752260988154385332510991556891584925155976792883412406678432776 -5169890219592441180988843355694784180780002217839745830787310928598719082559628331291213329365294364549008762394123896795514907 -4029304916499522070046006091292088087865888798317559803991873835903034439822636248876206336683085957754970026069257438125567024 -5122833726152490145361691490840338977240905109443464507374230617046450541939205551391476680636725777819582830317640677472291259 -8887879121383290774133008351057610071339235010888965861277804156037797773751958774639837524541250075316907358014661336099985243 -8039061153806899718406603277773464956989757949717475056088907096202984062415028201715624897091896396812284772715615886727140592 -0697572299245622972158982736674917157478112408603912440899066443377237594315710291599368603222944799827489902803052151032150505 -7013603271652485049620063445001242816749693945247727354086779497318820787447165373787134099987577277741625609459410605718145900 -0792184428093364028147126779227116462983472771162905140500152025984437549037622220978921623538498863508150200422542729027788614 -4411728159030287378714419332373354590292666051672346415137756916116829485503628039118411108736302251425180386282192968531233608 -3508034331771430567756401746605566004814192531598982097023747313496871602413228109505959309225451717487757635602112764447022631 -3428939513944422073187530514913804210377096901814387277664055693937327821063211837805670103207586535472844416128884599982345779 -3765013258236529201610750246167509469405857415384290132571908547691847116538830356937781623544344792657443940779980096189839626 -9024565602139835552337325332903285437411134785405743434839219379066510469685518924233636921521087402359934033983973385991471002 -2649847962568274167726165208946386788572121523811142222528040146116227215917720262618074588389904637062666528544746561556536935 -2620030538510199023964637151697713281829456055441798954059894139613970616409824903577033806155241943903044175681019965795785283 -6461188416880024087073825761424480883587286299792763357082205040327994699188993856940062456204962545880583868705703598889787721 -5944413986797134250694896844973795638537262177510549522817774683727110576630405084332924025735617088037709220742387561124513292 -1615973751057225002195236737059699517585264539200525680337988614003524501832730480276366257598203042140690301023569755795697899 -9008200222469601333665860661780983941015300488620597776980944258674129973552734738060885268066420909348372616142102733523433267 -5003598890783029733738430164315966147920008508177297711130783619606431201578483617231981134136392404255762575061631480099367673 -4714080230392459893569173674100327560113467502678424574866012722633975629063693151545366570327641280682622355521718987259238801 -4739385038824895235096103000674296240229268577109938375885209481939108319170129231324096236414336990925757528939018270228944966 -2361210030668060864499350273214477998565800871680472680681932947260121232176894643185754378295528202618772690219192407686919753 -5156059412217536746848726448056144396547837914584560922069735882550291341190213498634134528385275982127813806960692781201779053 -7966885142214723811725348168549783205309168240872140544601559983829401790243561220385975487819401267336194223205730538148703619 -2086985085185073545036414851529838204481235650803097024838796015231330542654233028002529608154776678617456164886732320375739646 -0833105952434512974899609076351921948939569136092110228925816092118172001373677700416412487399777738494320581470807407424704877 -8185614688665309617727123329966574828512583312557787490171669059879359795468437113583190694186011613831079902014081217754134725 -7131783601536200912167420913195076409694857630710552837087267662216383925992631278943851251589580445676689967886327863559646484 -9888310805734900531289699098784350167801387862535778038559729898236704661594447329313866535642213694637004811239940871137589762 -8123715241748226553144892581245052850529932097715696995932059624924557269075540247991049472713937530723957720713793716760718395 -6093034172460809629440737053209815131819638726936540787299401716655839213840485847609031890782549934060830350478366179240604434 -6633327894940509763972045245237235718323112502675490128278367355639972323817271838806709048068724517131782516093900913433491465 -5582353019666679291426183344951264862654895560952921265198755899160545875749490172299073507227437486882523588711701507976499572 -7489002650231525223980434094738594856401532028510616419177773329613390523750901433006132084090755184848290450781826037290985462 -0539323854296447671459242043430937704073386171637825236119340677027183609466820564020370547139050173937355911835070350187485451 -6965582154750741810065288181652685394941853476132562873871859640024361243300296805283748325817168878484565585632754351908511680 -2886210467566660836736517150078351812871682359935951946868379376912994012664524203941072154686353570579681603704825530456774626 -9665362335544365210262820037867343620764616695075643840510926473275049084133707571284177399685539645626628023165977084111958392 -0177820463043321585863992470028736425683626513381632161117010851699245594406701811450201210813697392240877275493182279748367019 -7250981623715632368538564967386387747576695271655268440119068242579103997269027655460321699463398768768277613166901925556040578 -2730921762116366900155596821064099866827590787028023864778747307107976624095851829841563684215591447795700215410952638220148923 -8642501753068607515960160175361362264643558443610150876742595480796702902130477857992388072241713968623856298400849938588555032 -1187308644994319305723690746675187962892871980887310999328792568364489164541385679772588717510375815217942384186220430941913143 -7605854751867100384861067666196612302899049367936234596159545293447341885894031370313641111815396044152641244256403303821921174 -8006560725678932454993887223171401960145271946857211912769628951507047840598467703395747670926287903550867839502877316151413748 -5747061868485506527664044246509977629632520838572005928929416857628593497937173916677705472302579778727680532363758751491026938 -3023153622006915734476058970896478596388304728569523091701672491484313935627044876208043141561946195882862365574965158147452289 -8540852691422877019070250316861163162391778272197273383387116022030059687803664857766804536240988573448290819394431972776651275 -9021443311810736715901066501558981319880316837771114344162148017989800388690774710489918382047318311988709068050500771418272212 -7599513906333939122554708100671399521304710290565461919067937465641955962609388316053120501043224440969693966990639899533003437 -3190313864768728595063193176469208637792413542897116168001394022157595453909893711585707042678368387735204900683732630413423309 -6043003917729256108805619361421477310316625655437814740309514638761344462517487426501249646525209961899684542352037279524879981 -6813035487710494491438894246146083397270552071559892438473910394670225142289451782904407545380437720612171136664498766583513111 -5704425501897608539934816199146825064755643795555188152948142674213138361295684789361927194878162187162220359319096077044697338 -1170042273866788055113160203247185045523345121557337349823787766288071325865947069357672811750151752362658390610542086745537803 -0182650295086344086825098102966797093995388649163271139864646408250278380402342942834021881070263294572807189069134900984272374 -0906668841731928141540118014775032666661994283184008007242068962044782267000273516374045366478779586459658472979356032532424400 -9941559950477797261120283165043361871515058911345852440301289987592080477208449029732297262652194811701835630896804400526302181 -9586422168434769367306983212903836891536506488360440148109923788291834492143450307170521991049310812325101209435949795579328604 -8845618327364168114007785559410459235882830447965260478796725064238526247677648804067848274177910485949526784938820751326532317 -2508842138180368207641530038974478572707059622379262380563191970615374835570345785749767510398007047615953484581417608147080414 -6150921916969845997446844026937752931358496152526223613349123080269156525204842351030887676736715854630790139383298746726376238 -0031087628812333418550306049252849828620365883770156880965318518371047868891562748685920081560624079882621440888924178323074068 -8556547813934656680983629186991073869359264408784267940961601835440468005712703124932656473056207782384291231611143830784642169 -4764006946356475094019331519107580885428818699148255825445877812529420751612646315832517900095651843319599421976422128038327435 -6209251031135205676846184796239439073588798115331056299413787815047447544760251266043212878984345103105431840273907195809002871 -3654931993884850780377252970969582655676559449815451929264323578834644743068604576736541418957979028943061560532360261664725787 -1145330876015831126155307819990268909839073491920596329763420311698726840745194869089228905040694957988171983477254803375572985 -8257437969668449439729079801079379205727147223003815670652927114347162605507272520770488283403449339977650008075057150876981627 -8526350745722665602676982911174850303165259851752432760991481586280102205346134401601648981884690319798225175260769925489404224 -4638271898447020123724423300538195550321048052825314720561544239062181964769986570926083174181155377779882057584541395809301918 -6106817249634524848855511452769182264081765291797239837907787970553958190403210902425419707216288535844322802242224844682625560 -0987012833422099095295557450557916850795807069003361331869709388270541973078686998103429124404642889230735965872322730527661759 -0637705394090134454432592452488278594036085049343720666733736875565892704518648963039960363828210137149300479545174722900885474 -0438909745910598389431226270312843755719991811348892485728211852221096700168476622881940496574796916264512821293932878797623865 -5429545451401418793893535526425687987849470147455674595433976709030225358630706349020692453458568350635883987698939555558472630 -1147145098629672646090540159437091576295858909288901226882948677153091610088843747423989951237804279634707873305141146001310035 -1453067258355914230711608884942303119909820139748995292741299997309447939834224950618749891034712331269306844559292626045946290 -0350632260797112269078999525007760708741928859358707432624911128337604559525225243942115958112015615876335010570860522898738781 -1402978628312279477469329446037732401120697968328000813953667479029085290308524043626235410022744559135665074491331563473370347 -9337757755044278436081677756600946862635252212939271849678018763209718297572192696470355304192247185638719953361091249281203364 -5405880207322161294391822123973103190408090878564615457135856917654118957703067143223083955082019279925860379183853717628861577 -7799366841975673356259200026023839542055869990618462031135739235438635258865047764693545067810235010528954960166478294307447628 -2027467028086256924839310527875817129214597755080392073496545377860632428440004957401492609606750537328284161904594401425287572 -0946928415702129545673169191304792948477302426781915513863540380482590408165885780307409257801864775225156808756934724074392504 -6885597618942836774284752567772379904321306380471869189416734595292130350179577547119957964477389742383246612250778027835962842 -8375378564184742787926400597138354486910116541106048723078444753508902260690644823241797242756355368838174606975331846084479482 -3212968824505986851162688090961261899834237009593445525206396148505570975743205626589129717163778397732428341839974826649188402 -6250784433605236331523177619946160387836454523224441645894992796160653797716355919979290100324224314406791061386652716371890152 -4400989435392530316607884601954369502551234892963245103254821300716613610559994576020035792556553491043544497572846045958494663 -5437689141597501417826982456539318735177994543195003033035189307876601341936559142966278723819207128349590261078232012690448383 -2240565515565951781099043148895044873938264025267367187036427905278273314523689584565134739736805096906657362307932608184624022 -3576329018410785775670826940638079688618282322990520892260090365771287681416891560096002562633570097542699787911417555916230717 -2453291822907103982064112069025122300625453433920178638265846617355201994938801382944512864303440296743023682910689965580508346 -3275346241221900813564939920509014369583021411699796257800366335780055834288641882272217012847000156622653258224710526325808198 -1761823047477639207496107226016946214853880512328754599996142453344143869395811453079561049784458849323538032761380820785136205 -2258773098932947134988484220635633194802789720564239663961212480883691013756304617477696306260192353528126108628749643695576613 -6833244981505084786837439890389565039428783638198451342774797405426073205683183254178026538685346206428799444442723636136435573 -9080842459252171303872018490896413638818633597602353810855257937546412235233854346618680040369752485990328489156699457496819504 -5734956183309699603857071255358660306282081929816419207249476965467352584050195709593369245076183392383809049796820142290983389 -0663950400843838925251438784404925348605007257769726864605575147487057019983649102686292523010863667700171976798290888401737766 -3133554911232814826547253321321519762370231796859406653514455605268584403622162920523841843001241629651167179835787795168834729 -9915875102181929094696545619337694209374642713183714372607433054204210229685880508097695696888633628128273726076768020385810595 -2987095117021662238907432053186678763052465613665295736124815230360572136345177452861949998291445717212884676001873754746660396 -2589155650613427623626563286829473395485125944790254164155482476888221798281733050713864337019212875437294907722695910181965531 -8195108479458493218118347693154287549401864008165971140576262020179031350059154171267408221692360825699802778787719114529741055 -2994227854778559135194271668156980433699910463754412118741685322605625614010496732911474348010716497147621915462772990056635740 -9885103937597375812527288674502022238204092589207503781840088970784707532373479354579114899440649532568358342845263798451171893 -1120400390759648596081862269355864764100400822617213332109125827310532445408926542692499006220714769552811438530408840934868695 -9637352403752939344901814991765254063329438135234927589317161742716459240954818619945185528105201605559036407476820639345279573 -0967725725520221343652248725994878515580037117626550685849684690414565200284452932891511103030564811419601323232328459974123969 -5151667166514928638097099027082126182546856178488195923185506331245117707219875304117100373941938587261574361349595466933901648 -3122056019614029244775838489907181693402454194031630939340884628769127341314464687448572665248434305566402372170442289658220344 -7261444332642187051262725693834547125915901896179000263992637439997458766108204237403853459573909864356641282495892771557042023 -6977452997091657310159593635773017261586291897746068707373152247429150821576531204588421265308077483457611680883539505380780214 -3922860418447742388907173493206552834918162458673611316176697519544920126038326376534410690399328547067085820148163398020288911 -4131844303372153660043567296613439825919900174540571926796003444468128320273120297033737036976412016725245066800816469650561843 -0565592489986925533018758592782811877964316768421296500160427160146511217146432195095933744734673635804950107620352420106654863 -6645406729317349776240373018557665618972564221260681309297356903494539710063100566543717860365197783559220679304253096607594218 -8395581134093404449211217585032937525052183907591091053649490577579801329664352206258963567937765723904612138153463659172391420 -2858367788679710677058155486700833423902690944634848842142528244040019800469662248189870722506296487688337321695524703236140988 -9562335938642263288699025637860876864417622879634601222106055965060418025394207515941236354344664880329773638937529679471456359 -3869629127425084307826072099872319475018151572502025420028453624372211412720817771154291359747053407476074728284771551844057529 -1190185706672366345077026144989614660307994733718658435474012628808621940611349704306495070342196599139286091306151010932970462 -9675509101851273861946201556462769919002921112388488480221448504521451553534147109710141587683279463216951321945573166307639217 -6672697005271871616738575015318763914957713525828413258526916822948066768551357315714715932196912191677461856418144576263544333 -4907150429612203297659855554908990742757537394357200499303314336795187732766056993269698914296065846201908473023132752908744956 -6150083396086150456609926582054844276634569272470435640456573226419822868710777542210573165448531019738194685407995076708226492 -2678786284405544977160356904372320894983311525398796027674382539921414318300162458602130818377816924569056780073177178248997811 -1585303840969268907598807940355932272770894001504038659615940425154386157294260258784536698627961267225191113300660353374029144 -4866449090853757246935294981633041248861600653432843768265539085865624263955878975774708775312072236190746445124355521953038339 -0619885412382828558999175920193016334591402367369763220140054897008235791975355396141026004273210423619062237213937060537525842 -8976484958039104695613723977251336268561215466702146950426183444969792826975925369611735319989524615202694816932040830397174311 -9564951821673710247264553143623225237946783695563652359502341538660577772441234930760198015851060420035149363908475167289811549 -6152784468367404157734119802017549287296220448855141063864170092034156049229526992205564211402819767239639089903951267480899195 -1084349314003385023967647400823528491190700765335630550586981662116778098851626565057148602128362406840285312235675524872617927 -5940674859942896006453306875133525569054425493267698876245403823203215376527985578976643008721792339745957322665402353157011446 -1029563432263058113381593903721587363928336506888785654392441615160711392515188910321841843403492466442469739247826795396883496 -7172639941661127457144015058984534581536740542737103665437103773621233103380626067034160263026558390443198760839727420004712631 -9914873013707039718441199896815680469326923849342274027255430706708553663676894461369886145860075954707988128252410758852549672 -1551922530995012072301491677655182006822391780785787705916872826260151900149221019724939267128249948853451126842232399605725462 -6980483373104508461112547210954800274259585332622017453698311994963928004018795768275261593898964198667538969022507330787533788 -8940619208645823836214853361748146283829606466502798396069751370937123229891589445495370452889766339397264192786388083894708555 -7956574006856378561036342289467521536334236359576203113726730817643632648603038458281607027513534064039819509732524551295593096 -5939647576077639500586029620496592494701352335060993013958711501324112331829653462612315976140447947573865479895456805542744172 -8296423959232512165579460974983453693457497491285869113279013506974543084139634238126476293873284263151589338438860044240330996 -3782355276288558083473518137834514003242038994143031796041577911531844210313799581374155317783854201414730465792201716701206550 -7105406465035531748842630956573813909293101829709167100331101814849787778408887961527614275809837033921260676349397115972110690 -9643615107680266865840715334731751157919061855580521203957602157773380969437003086918579100512932764454793288187949797876169125 -3320437252833110321043772044039248321368660878095814104499448998676046985620748260108371162632325229365624907230743947154301806 -3552088981131531046172808385452694435204741530370783735986679874877536428004908486014008409001068550950540888673128998784481805 -7440503329453373467657006789991046671852958451887155184801369224781302834630349870843861530093008719949904514151022786314021716 -2709390621195321800279652002200952192418979261420927427122958490897500556999549527116421814590121223682055231817153659082402135 -8861992826208042869383343763880314283402643395875744203109296333659792215641368608715044344315779183133340656043459727198349780 -2734853139703811794155039071217208536677070354393864907407146911703003457454092806351920281851834356124440898064979131802059323 -1762234053491518617088128044036706357776327020285634889111113700954005526394521483443227952188980642686375398780347144135711592 -4027397751732022026309364751091606371427768246571192961054471672221120559486812200168063013361795376094462318094221786026438363 -0392038021743121561693528064882454352142444617962196680006981383051817202169379782864384242280286939946138589599414498933359730 -0182070858522164858867574874421689046928982559988292189961850204180007351631664423841067686122468503764793368632417463823286265 -0700191191614031195459835157848968083002627564348814468750050055060620960050671214092145749062318287857521361265309131257106421 -0309993332034066779054757057884677047198784197094514566927373158826040214788501636945490789604082561095662632988383214277496388 -8146430655840989789550968117320096504739356599535135443521661785643633703575650679430439992282453217709233862686803968241138826 -7498984628272507825242938050646337866580174070972879570659031107873223367860364402212183428942145402115290592836227443279445979 -6978276114539892419020829624768340474210713091442435775100177879638010349673639613552216581396012901447719087628078745824194120 -8522095336564609176473140966826492093656451125709888847406519188859548795021576488451306844892007565711047730272408121668647900 -8524767921694471514347227180326839537161579546977834075174921433329341884828393393398191832645952423890037661848882505051151043 -2944580067530192277404349067174032715610611074091485944569506105415953050308842454649185132382815370040650599793085560858695708 -1141032332340176333446374984947231196716478639118202128308413932621313966803046203929215874583358851861354789012133869833074749 -9480985593249065406361871874582636508161948209786505592954264261087303579799611153927773325602584185048591266936288024303976476 -7322835259534879703369663910307964057121123765236316839734559189401161415410496300232441653039670294405632163031483814775087095 -7887660928641822340331849719497888363217187995951806289777062854449559129016492535377000453799053164705981391283757823729876400 -6020813393115291018308864451756852473844549771230553274019875173525511163873500444811237248088951714603052752360262642567865853 -6201967072308522428055969416019910663232530141827188975690227560728650829855364963013282370083361622353100870401742620986225707 -2869802657723987122733883328526226736949680510879014974422147235169606191520933028844627505009715152702759247026991603640320467 -4241131697918560404418795016499808486429648304834823604182336854359989655705275261891160035233666029073733408580774645759107173 -6464198087662041784095710258475229347049766003901523983606673438365749432588484287371422883288614656304912471987516429205303532 -2029089639113957845701115097046043607676790299218866434022020078360708383436488957906770062559366765186955585351813372430895635 -6464504289920784076224333417714908863182256990967502428628619515039237321418833968508382684390570422398059844256244914931448759 -6529784435502409492045275382927262616866859838773431100600230894559679830532230924353989524323228472158682810144077054469603044 -1378563204070129032409938042343154208174485755861395799608824865872543930138962034925792279431758568493941395394754047686715676 -8867499345143102872671197738475892292486346568581939250404454964808538362896520373387072413955104371842316500056740851235207639 -2274346030168140429762079586632175197653839654847793978202115595048824365507532766797058257757822432716594523867292474757570615 -8116418268033688475580223253494948603537184329744599083311334953737050247127839879240255833527455107807664847505065047983484396 -2629458032033571400314592548790506246485500676837502841162113579334258598171571921210523629971864377357109335285657941548264619 -0524276024669364832317266608416143775893545796330992023551256594493130557067547024156422646526989759981543218213803553279470269 -7049845656048970965053022592938828183548869262256486091586477018991837255857719144475359084653581143521408001578287580561915936 -9529610539570129132154472887914287431871889778678946943105713104741010716248000242330469610192173796870030679714772937881344366 -0545264556901297919417188117578751509627881737016436472816406518703771084849520268761391513510275790321817000658619656930708957 -1126630442325657535785952978581421903165028332745161812379117711348541046986438165712940213350699237254925482467553006850919218 -5721411832634196862603413999653849373180502518946059378586343176647830400545625593156677745062236816423794840646924829283523696 -9566889818345214089079695756528442838502922581513940730675014653702918250796815796276266282500947845827720283326159797147319082 -9317560741024728849503640154852784294588264197172188120649331980986731376355567665746330692183280397742589194244588569542845631 -3577828329965372354724624706136258680035391223875847298805321085928193394693686066077198681054782793606636920380474314204706128 -3316822771568615892652610314018713244424614540516258058981790879447066097870072989300359291800915299516058342141748356513095635 -5061676595203394978368391202469283356586340799916518917181619890218937093078654617621002548811013022192072875054917226111499567 -2293159175827100175340065081112035701753220885751903235819929349733241991099088182499008327172200193308932710369190557345577793 -7287877879088510408061450710486988984638957628372307246581657037353807145126249736162916823230146250853818942298633104586163230 -7832024984477944259180948598164959684871867948848537597567339850852013498502229835859692193114794153895539003144519694217709429 -8852158774260606249546637223424939759148603134570091996953512424441839401422606873114052812717989308319825300637980593162367504 -4443868737007280155976070920335648272365458102007219456742917706885599061474160397874769568586074099945991122357965710810304405 -6905794745598083595623675442819199614676323588131811003338385631872023890221085694977414242799825541355735846812034684719203047 -0457011399186690441251124301781521567240706876614307067167646882762698974983127872249705063133235031055532098528898796399551640 -9652581539551646223682272835407450811885069347498654352393131589816331647166209087054200913809824196442611900896852634745826036 -6159069172552131589074592658415752799244670288018595097465086916954714517572062029793973193555030320732773860687445556056374048 -5349001165930930982732148212936887040004758525708856986464739067246746909509060364496603927468208068059374896651091078566710130 -6254982141720413268677308357696628123925721390150502950572640806864637896561429156063059840807574455370484872143372214422469569 -2175489787129382942852202790241971823638922108920609980574885762787573196139571654120370722438096597478384547338469999448759583 -5779677161907195059713244890541696081649739347821725617254499816041573948157136918495996244811587574062062152794567408848302587 -2529817818204143798110200493373689828340608796471631850589769739013205825657411890682974212480864416875107897957894840172709126 -8663943826538718474564967927014748693701498556781723819074861406711142155938775092841806948205850959520646877840367557220520678 -7792447422465445177106699668289442956655097062959653482152033676820332098951332376110889269353539366684304599313150351375802284 -0121046685822850120961765570267263832452267770816505513149214924261156051159905321694021977473033018289683251782668439030324894 -8869657128937432079954235872959567283205921860119040052090516147170061627077989260167387744379514761600478703309504193576305611 -5381561915778733491108127139487324618000049052071735127115368151009776782599438434551832876965146125033956869670863387976299721 -0949362683385697791271115461446907297573048650262795825751967646029677499691298037462050809938530416641818484223928338242122429 -9766820839983470977275951789763019956067562051439591397901411073621068841669094149499180916451056538781312613407170881646764399 -6524347269748594984863393554929474287488214701192085748591350202439606866037583191335302568028741994749726846505035406608976877 -2807315518903493816008029815670675803410749049697801438415798820359073479308467800153777926573033244523898966885887408576598556 -2253435971693966005243248611373406144205306206628977772254035623423592393288603285157497164481644751059433660694427679833172764 -2802621839144263944769655055452576122669485060013276462140874654840615169333830556593045220363613387004343762888697682047116295 -6079893975072940528060570984236651746363761678873252309931727588216926947288076839743652207728678149523270862367475616321714661 -6924992946415404337508448250054422067066309322273329866764351438985216249046429085623842949432537700067268248539671410894502789 -8240333706088312915806196572306355577223650119535205051323962302240268709606481125217437426747720173549677961990418013172593155 -6781963827534077258276934309689853954408488415498885594714929736965951139633336078246485722224486449322009472875775669311469575 -9358007010281073437748629060353526682504603164238126641900438090676758229061250503441387135871208008336678965627603224246244049 -5356708068957856933330346985639541006539430131114293957097055267024756313531830324556261486697384925986987181884646073628504968 -6088781492829096627570053299366443750840538654491246720498646497885473443660031433479078885663560146413659899024021823265546612 -4698755327188359177076358836200498034389012684305157808211750883923932482111066086636126223845187785757048164121301047675382008 -4187475464845783395113764420886751702440050366103999318308171948006157647282740757274766917041519563322385269555023048099709528 -0571195389552617367126852668538451980401879674162973150705011024259186076369903231002763667511763488135226006543931654677750804 -0619275562362999032336486727097255819748979447931027384044606019902431591438640635467977566427621673095319535200747603235302696 -4867604449981342383768009732025809614182230646572537976384930951101533738349930256172344711040076994914315737263468451025930022 -9527865696943210023342715736597334765710291291516121893348495349788313734498145749015674214471321122949483123539062028956769641 -9765176523721839937410174251025970316488964877877371126040698433360574265827174483074565633308845572364434646203497713132542776 -7378651477723436227947997821691317672343016210083663443777377182287912898006288444888091959123188074922030160615537818420033213 -8447189492947088531974966589067358589089364485475991918412867217338548681050492469752464750298772894247076136639226285280041834 -5454360318746876235873485912565983134779435530640178745325450114100396790737296942281564432762776663339965033474759509011312252 -1273643557029602462258772262515086262035743506025601400592823850215645680844288819770466248021756708616474262140257830085882080 -3749316335624058049683001015861489646556394155367973498744773935515065243970160613827515488862189910777219950612111041830333142 -8451480666232257772267491027370674681436846933893722515862731717525412660342458091112720313220482317659721562206466780128741773 -6590252632454850440238194247507400433748088629955607174486085725118788995595732312569896819608944355538496441101640124949497789 -1257684894384392174484251124503854845960148691603301944875996738800826596693185375085047729958430171553740436704869195063748372 -5735178593590752060263331193146970071579446804835972630866651058153595857973419849597143669821080829676089777998056446703836684 -9360907310859244502541304513473974522087020370096397612021384703925636952795854616525882877878108950663963286923299046586524224 -4736748114460524678435616682271235781989815828869520783049700875658488695718736121600271316948975177628944650186309894116256839 -0122265134749874764508072046641714144031116931952372994620287753392883858943809994533079487667165865233880719017940897178306317 -7314139776044966808676160030164847624119585864721750026892048897546015469276703858536945215709271741054424782569701147500084232 -7758065860697872155705967293772173137656465001477901257876428931468366029449777184812467116641975319314916341175480998066511678 -8213787357873005347083763974187729721493820664650580516006337664286359010259386041876040802392491656717630783835571533641496104 -1539726264552952565436503783866624559510200362458151625173082533487696535010112807775556729174429917223668593210128877186508887 -8321470309679685999475535888469479559195982218922599887296055650137375133750432460874145869352229391171673429325865805622380834 -2056541359048531447828515960692963929079449940672170706409337197174760052966541653050946881379320800572898168412293068662723053 -6860373992960297640329729816572073853997874011764757398797944036292846733897735820446934726176024024757470895603256455220029335 -4569926110072668348278664329257941057438032693980297647417188505086076585913708391932628924011735966680243663432137597450444007 -4011230494392556854932236273332089389934747612548401261998294903567663125297736568382740395489945640372131150054623072337132335 -6844595318925439547616931848005923901307170686601327728283791660587722758968622818978597514280133292570491476960507397213932185 -3642313707941792113315508020910489195204450745180517492522873324890987317406946100562361363175345008151634614618218325839525506 -2427692898230648928178646301964171781644216637535917410571457842164951317391990752953058484915364895813865613835337731245388877 -7010431184482412816244666073504621100130866578971286677458525711336280431605171233723698610913008947422033976946085031938114793 -0877515916454772093488878527862660314336276524158489551235818954456016892617227185085470522620693855915519816376238143161430319 -8799443736799287358483938545063592502641553678820618531061987381595925735003006045937462381053795139314188939327005235192961861 -6759340733723316487592044207138087167698990178309899096979902164464364089126370344350744470572331313727851480014896363857798812 -7052560097987652474276867365814450520379120040581256992867022098643876725081745248682691582583629292763400638018100065591005268 -3106774405492401515494177672517042073837303505772295474776502959089196445416987270369786947855131616223965006450641692994332025 -5855582574286277020845503779828089079164761761910842413066849248818854888626393445367304058754822066188520015897444131019700263 -9198472044843711981048071735258326011544302082682349755642269651044020224003915379747598044212429909878394016016714106491656407 -7815377808589332772544290119723706266101079820396212755543706404343739006942558946534655221133089320660150834947988585978442816 -5845893139549225714132593150193123229669033684893833205775336633241518807901847649594321897137880458298454663559120194776464523 -0400879116612606005027575801357996533825782630360057558670923510328348895013335023158934967383007297478557740608358705255176983 -7266683495403368714481550525556638200455893453737443660389337826017810731088543589057015038655883579293647540385262180527785917 -9515154749550773405200793344557941722519749405852747512969927332977178984307036495472318127241347248808326472175619457986406723 -9518368191888409210468669956186116750302181387390597344128917877355951593149853095697850106850745402883068932235000062455347402 -6771238670568019918070196745624606843885430053371888544619960477580892136283363206743364325496202732003423537704812210825777485 -6482929731992099113054720411204927077100453390882438863808021020983016716953161187024589380636187873278841457216002930842647147 -9086580408882584727439595283961649388079282398490521121307077379799427026353954996467076132654318458754445407020982965846766574 -9211933498567658239813690464315557516873798138696846826984940696375072209871675004339676866312551085733908702422475770451671522 -8116601759554721517887607233127079564923984623323605008410478991117346586220447102577578587384958136197341044972808673740184098 -7135146663669772129679997894669791690347234150535985440597324857772792781041329129123706810764665585549577867626836104138395091 -6171338134734949666403237923355751356314985925381428193696582138260452767497882006262979715518886220518431969713213052164146287 -0631430030464172255146123719714749762611746753803707576735960990848350628824677285326419791772891874510486806367078208015683527 -9792995724212035781617488647953282247761468865566020082106220151676123008979512284726786406279413459522157229217252165905352918 -2536766618340462486482122665210247152075138704341907443423031644884751559830028648873890163595496896608683668686938870179657834 -4207985050934314372862959059606329918091261977012574425026916852113090691158385845006538026326042605485030114114277066770366995 -0403083121980863784638665369135497943380554934143397132755814677874063414921737247611566476833724738395380308234640207731607371 -3017035318366003181883008020161130977715784016586015636467061595058652062869875350107267130020471568933409734170464250203156306 -7978597058687788859694752086622825044743069638461579429486476003366615826282892684888720644513019714307671128574626623134255754 -3225178060856930853571262377435203804205020419212526191171244624283460959473575918723283729545170705498401123341048944419740415 -9391613362743685159686501403436221835235931626375947101387495019232220333271032937655938586143908770909065649064710101953494614 -6134742532053652776330925214492259910738874571044952830222662538392022245336085949987893286559101791675451325204933710093660895 -3150091954112952712726674404458997796890860249938694466648235513572474974162093062356467502005784802581269257972393197375619808 -5518818055326965608441276354480052128774778908643152331498791242682676747511171669510551698928872813137576082004507231113018234 -1869442353797750668263237704646436989107574039444714294394574053634166211680018322567901718394177095139221750525981664718345874 -6533895638718548550755018968962814261467954303937753456123595613702977896395623181616704065331577434094624992851719491928609615 -0190398690201868871739512766894228210227318255924906586297140986714101681237768762073978231156784378903908446734627746278198818 -7031625744207762150055633900029138852849133531239672839021846058540394772383588961074862090538883314417964060795273709151209027 -9458808924606129446923894166510777560369040702494184195952257501705875876785777050661631817125173124207320372163502777664965913 -3571992627283246607384090417534713518631913006344389649603958134572814682981286787015904497353080342805307719694940285614675633 -2468021847965102322233545270789228088801077254585303970545296705237224231512698609584385993582329483075661032700231251161660423 -0192713398720255736106913269405387578211504390721637672765578917354808072397586108294538148319234789867624965197532780016350565 -3634551422633123938462201786680417505451646469018713382722643171537409460426340292141021655461958038710203141816197429713424286 -2547844227738650654059981449340163279595536790994781981453043554676804995664853696521066106987131049223085671186846778658607485 -8528870512517578936416926762107480564174061090150629794502095506665701012457777925443164598343164919674568006002249856403680494 -2627259489744462745552373437029184782032929858142986221112288622061305496355657681071521590855144706970497835664724912122006599 -6545391156443312660152544214378226475642958908136790116192718647739147551525217967757101506789062053773824320749961986081365820 -9807243716856995753119727006541625638999515827040154011379764506202860312616961954158869599676568905867509226176218277805150630 -2073942766462908233406965969896132634247796801676354098426177499898295515362604488579021522583028021857262554533983809115858178 -8347131968232485092731301472083865394183193666260253997648555077371404915951205500140212998582177455804377214724298329527661383 -1594405101691517143629153539833183982495777310394687166385933138800061962945009756356701243200756906586574077923344666352145020 -0197245967822981167194710233250484229803417371108743341686105467298388178153158024123847938905011673366872874417478036778662336 -7258512385396982458981727808434299320938547592708453258132441101938548683407696744955847650770224320115020029123283233005466171 -5842172497719189784583681309409508840094316855599405125810349460717428156132068389884811129531014665690641559952450142631134435 -3120882941134196144363251034342986015603525881548802680508329909569735321266175483509995349121263055144465010373367684170785550 -4158635639323481056067212351252293942485312028596582540399759383658505450921291350114073361212206891492359937785370602986743900 -3248674367436665982259747983227106329784209726320992248877150489251570771053020539956408865849029873307934125408634817191607873 -5454247998356721456240658773994350865596498454154991883699218368604475173834985657275975908620474089305230670921518592231403386 -7351062162946891390363227270397968233004651810177775309863584286429947693132180002624305405957468154601633114090431896806560396 -8578733043161456354664012245929168398575757646163138337526746639222181428391936995137008559247216584486677942670927998985802859 -9200314360845834380351667184778736242928721806415925103242410837162869501355174790557366226463713207146043374288777068201363073 -1884840380691470035098733943006470724355475360919052895346183170077857886208887006329282319454011758272954888828936243319780379 -5906121108044999002595816055500975401842454091232971454535066145382445630442880279299409925299375855072691591936952415415855608 -7427547736672177870270669416923472904176994726042270600865769556468182342137641250127961474267696372215125069986572926580684930 -1283565631209283359581543095011894542058022145233771315616803743285668523226044837411757706026740916352039927306329889089649349 -4270078841384513763036784211367232205576108266657423596077336951308763566593324577257390215814671195914760219863020884678789417 -1094797252284852472558752948074017934025826602284347674097641546447667688812462875419412834529814608042996511263599028929742238 -1967645060681138182820884931078366878249535027007771792225806188604957386423876036386080705880427884926800392921951044407013636 -3181566611581199324907272529442720663293855144200609139564151757908337725071341353176155541142076746946246524270499526229012582 -6539374062743440091085243475167651698361455560983223707251591133463685518000037795208788191244350973724875956194617703899137414 -1430821502040369247348912270128694893351423782952149316135243013570919313886614565161358637079094402119428463930234964822013013 -2907845492061431274313604396416192334514224786448855288597321564420931438182778758210128537309848899766746069430202195659612336 -4975634130177816916191624410591783555638901610254745557743055701024321622685828565315892206810167787457147305784539222040470909 -3426187794037654633853814952285180680406547839298481434679476618025289610702493051123252356926166123963245694601391065308079166 -1560694708414872555648575097110162943981198563540849019446854403562264846931619983425916923587136273462584821828465235074422917 -9261979271695865979574032703343588466946379682055875729180379739323087400969273393174411780309814669530363099378105348978942035 -6060070323917526453062047842877465074776912567111669196792162790002591482979059554932579116312700674668070694919873464603223754 -1894071532823340571620020715489409265478540234593867913381245139145940908648942949383027523114581382713294341230059675979933347 -0475001838386962980608799805753326787172142674741106499743819708928855603482127536974433291922816520616537305575646417283646800 -1407873654137191433607314317494815145886982224527312502679184216570574189580738684704012553837521804108283635888649341886347674 -0746298331021251518403002440748995086111379224255590828431961727677994867561042572035686044830391992128329363200090117946273786 -3394767633292754355096521352490384715569381533683416319072637548165685703657478638050012390155682264692286629389917053497837436 -4659095138863302858042866246863612004771584058240848977405503610643181773657781348444480569875240316081167661626347187543347285 -7911879124009359945066105568437670726515538210712672838972140937144499494198784053146413298370949806905102557089313540518536047 -2387001299041180490187017325756798839893484841126540625119691321202951445764540357103908077323391792392357443606419429134662703 -1311387664343269938420538390428981548672980222893983525849983661962674897972783374663857036358464131799985348402057774789061484 -8274461005931054626156020913275021215007841002783185917701579638808358640962009486666957046897388731341995785176631521816719220 -0104967747699292212229371707417874791998945791320492326714053322534677090261456035102963665329391198512545240166335302214953529 -6438295329258114463806507486440728873144766916788136148990852634546220929994618127547833759089567150425084541257262887419748944 -0763510822819190844430827630471119922358130707131670435790654181644862502449964467386506947657809851105256327118765427086936245 -2850131634530202363427136221800593088389014446941597649063703366121196898996686256705732620416208851855006823708510518951595042 -8751603030878422139220116631069675693727662503215348707642267571256820475012856064445690912370994140681017385311381651837184429 -8337808674514385942347760110022916345088925240957432454452424792146056100857933925448423669501901023480223134384961261737051238 -4413770733662528673309544847059059161282542697670213119975814848684886926540572546980353008826625285683672206383376561174283585 -2470179376522057019705141639334564346002921054122405868536589549939044185327352857788406922050956188186959812914331458433168181 -2179183768538040087965101925166314083741211822328135691819236749579736222030235331381929418960851621953749706426251383153679388 -6697638737127992949029219495456980219928837272379992149835670720157263752765848341694925460132961677719444757263352390287952092 -4093217437367696270862739890376907333913414784572650839225342564140670817115158483271922969611210426005659701735005263854191680 -0504868284114293941201391805305848644129473248052919285116546768968370400211720819698688057290313111673099410825833594935299522 -2193387285480585675810105037896679125123370546559641586098343943853768828725430307316784909701983568646060993578149869405653861 -2934591075689506327550526527978208181872636707486069235044785075612292358262482648814374144402086535106182407978781842722397427 -3764043018357659628728101790307107498150768318990432916850503907920600389618490690749145152636599605594698036095369786495988258 -6957155927715716313765479257750780421880426026172174055737331392383266819616843853222801559499877374057106670897236097150948636 -5427827682310804721340200045877249335498355065518235785095376215323629999016684789788057540796773407165234965827360566567682463 -0931247633662980846735922260231265500967979148521116776842985570907612389971711829938070907548905323760203422391349321697221760 -7882789193682587165711403864901445874796286061561018238012019307540878080647271091752229028944021330264150343818926048069144244 -3829234846305757977743751433953176195429230057570537421684266250781148509555390682508579644164157541082064669789683815095364787 -7604939164496265670478495045765555257915418238903189606069500034604107925625520169975834751123093859423683572718773062691097465 -9536565688839857043404968751102502068918401627692404156712144798677665827278179931457967293092502383995754188611043728483106278 -9597088053951878542145390264364113151329590157432302502341917977233379257169202042072712802096599668573120272798291944153363375 -7607153187541747861933137718609189822023639083176590969309128534131402001720049300131597786926920331444518080594310667529269598 -1927075329456693896562301483770530596686903351047943440879405951056391325510081534440975417269136288862213745763314617080452571 -4793088300460286258221203503876214260288694619740795021100096527276740956582412254816142704747725930689538001063488725674114094 -9964651944235263688993656306565044507502459642744800444126035956827838480470927964887269362894767336619648517065502062761621016 -6129875810846273188094595526245494198400294797450838878997940481886389039479255372079045644823922532826285987109316717080651452 -1158870497644577891842220310991400298247186591687353490986090963675370236688750155704648708257105452733670085922368068618952508 -3951586474153083065442516047977847063483146004542723388081748533379792081337808607910165722930346295608653437371334690508592931 -1348798137260798951844725481726752185101778730990513125012632961668430932041485231492712161518123487434868038690945449294611190 -6621726374054578571840509185550584952608718450715584685612358931363303426238432883301985179247942967408291991891183249754595852 -4638603540391846589823234253913403535906012903538328082937776681713183362324668976651509798060188640593955628086698902190682737 -1314136004568121579468174164410670114683609747309631647110337083615027244209788221757184880343776037559026360829925134683110860 -2743916110589248861852284646250771021137678508599837301158835778690463663553082493519868901155377573114305779992715972859595723 -2324106156194950900453760356879741607730365869344607490682695136931314492042609961479060353962654666877592314030242319785217157 -7037168535189901999950898708785124945709252827963059451445136357835564541820565609455192709322939082485154440865255543678569770 -9896528396971770400160528156211153078421941311469208430939294234515837583618887123400678449175339595403746664662044325400329517 -8261684885541466594581605303831216257932122772017718190045767780517645346911853652853978624682959833140344555022435113362676062 -7591075563360347900183625940068873872381827943795851765368024187038497412028598183964746465300474453614206176090307713158346489 -3374371123832409332000144159517441149498304308931146086397279524284139118811410468196667079250510555507523645907234786379143531 -0501327353064942573752656984727083020738199901757943687656464477159443799349546909245912076525128236088399431523118269843367482 -8613396151458427790408589367894556692924575676708650976493092298687011565830641071449135943255849354462437020422889320020232241 -9743887743932345248629409670762729564753828800124861494449000192569258881214737190612239921652995520457700328791744959299446113 -7181302058928852380763877100101757115044093853940723929209952955676211472249441292704903663335543383186649963257659728968301134 -0388255348661563721653151594456333702528830265445870529546222473972548233646402200780627751622560467191291529956825231887562559 -3526669851709736895997935055319638614407522325558293993145073133898821442020970359820377176459127571138998803488194418913023474 -8960318055715147737928173496291103297340011637615159200331936657806625012838282253984371770704650788787874077528191805071976481 -7124181681951361717176138891836878456339953961111533220751215226320942283255447821785246102801554680118941275936544271258524058 -6005709566240667298294089625210827175355499791073268532752944587487068732200218887976443970173147332812756704491687536620579417 -8523733324824779870890616722944885692254782796148238417811553337420218355790067774624307813310722411932853894530043351212104621 -4208314480849782328920489549263981924145677154566910149000272410262683233827903445768177081248117495913152923052663893776265183 -9942787773857699223811513925994334863462094677096830079955240744467436994912827703793978101340756041298804409547081408298801222 -9436460738640015479585458718857778968516432654013043215917075749663128588920464616671554576564466134592276012302780087016944245 -5682263919237157166619832653999221365676490237394196490562353201595416072759662040168607378605240879904649331264075658653944374 -3188760460625654041085468641256306887215807672289682883500357801180231951265973876967365453175824452139544361480252271534860563 -3489612971636788170285039991175495323686795856259626029428439316305263410995491370010061781397716962628385590075791887118786041 -5311327330508694662530309261695611418858308192623059112240071130884198746415297821301302430358551661316850076909001762997643991 -7081644935973288072050639441580584025029531691351232277986672643518925684337072256344249262810387549624475090299911463668556533 -2269997305729536278296569991307939885225827949212711278683260974334694618965859001446604029046584493463719653785353337281283459 -5669018591396191702482439366148219818778884802332484502882028894694251543216632761518648364549018220678109701293026473478656784 -5216611642715035439533559692613121139357309471021194983124318134640525984115565217254793009252347891534891058775512107043759248 -2075136627102497321632846769129196363043810766007725332614332304423370092169449259610020916402169233919813196199842388493441962 -5246508710864902175515674209765293421695856922741891032048768583212886538286815573096956696932708558353574597425799726517739782 -8036312671737074585001040104552777443725646270711497123342871845885341214930320018750607319709014145767035316932229927380726251 -0928548556204438876091471205246192546298228533150898999146677973522875037893164503792472130409496157160476844265385841682474739 -9233703771903675834839283547585483443926383504808637869079921199402511859863654798938168359018632590649252624952570683979540091 -1817221547279336881324191918747916105439761395909101897519754743532665651720607836479601826466707285601138161807075561528644357 -6507813758533570073431536118758351858756886547831285242021547001802317103965340085013359438004591048652288218222633904693766526 -5939230267672950104631374960137514687520839197558900123956846637455545802654473302741665702939840951606373658402834814254928601 -8899091999774572904211301414279903590789989799671058329810205159495566404297154849221520843334449344645035156970528552300030222 -6795649886498390391442973828383660673784035290138239807079635557460618362207456840361649348840778636144683493328779008559160150 -2312967328418841937893181097506584921132253955130661944022425054340098558673444397656011485902801524597729549862183491017801616 -8364392130149044788968141245875416756772094094121947877022476352773253705820364822300001844264751712000950605882778006252697459 -3173455702957684349309232875767407323242741753471239292204928826580888927330167241766284958168551480352850879501139241966892452 -3677753858072439789438100033278254013052115660199724677408997086225534466921024361672151595117485386004966423349406051295735713 -1033555069901179500855772626876468463729168610634688507726870943003645664213844575844814874933857419440136881531279514876328051 -6902431911053955232595350941009434993084829394137562877137241909400659809326832785642273291709998822359902244140526746390924526 -3598394230231172238038637497155035177663453584383356974229908339909881383831792443286626244348781344679035766390554002582686748 -1986522033280153369322100953745103819643767567342601672718065640720320991063977205827436045236651592119137181084201370425284749 -6005671239600468501156161076186950720461257574394357624099400895752471978287422522141370855745760936595412914180235254380961690 -1248432656688783102677099988123915947205672369413239452092262942922895352363751338938332396260328925306803441684111264080959934 -7043361968005295354938534781857472787124249512274641194624952254981027355960086055922235901916884500390183949326239914435749876 -5900769760705257904732141569222453308536443186947518812790214535222294555869866712002026766787105689583023017833746154510155688 -5602689240796761919744677404697558271913792067417789140292202440216539736230658588620970781000844620550456371994946471279052637 -6983815257060123566373254198705908764725007305820906210985164414734561111049679088421536404461082246253221142258100082860407483 -9787291977224975917546280204714841440857941451156318425600052380180319358748436390813045531423344721155836168161085909646309385 -4242317405737007113338681399774018133792533519976132559943781717607228562711266632582303687475696334211416518106220430942562440 -8001103370755032373531777436355301854609759653124445242732075706459884158212645376386153155459030396899392086527430085304137547 -7061352207839212087427452963168038388774060848015551117972221521512460122751953993512403134647980990954916284061921026824432536 -2639034110356917513777636397443311536328136804898636889890450733741495575783711662670202058347655591164148410498512181752116112 -8649347704311634713230582416874077536749261618798919119607870454970552954421518115988625118329175121493449500857931770229652333 -7998158841528743978260913418602919615786831528127648656825638874370061930628233997562266898051264651939263641927874506380487439 -1169319905978231587648398211672101766334393172127691275996797499245406750863796639040056909542250284633880406494091612313210866 -0317572128063301907416088057966656497607301508200217804677889135103287897506118599601843251561058377858126583470533794642274814 -4690147674695890988264540020570125563698789420115878750835681272646540842126992805764557197985389253255527910197264650144295636 -5798557941192958990661384529989091262630978788566879170732007097819131006336590152363030155153413704404260928053167322809868601 -6850987001199817141644762090308087270676753863496477045191783385382914059759989907264265980509298271071343239640773196627310409 -4389027546704283892663222266104915372633460042956234973983464977451929104395584092104280081159181521725125037452942372440981206 -6675905477554320026243055974304148345728455542853879050278442548087322107774875373656985055242105650999387599625064478196226162 -5421451962648003632206646262643905337837657920982111146977004270602922886008501562566012949545116457517171981566495094457953170 -2653749527617823956383177123455781619052217065408026747322738616321944929384445431993242259268884094539560852964142946672208945 -8593461023191475746268918563613277494098559522521079968069246435865433845367704112809898386514701303501214965468624316127309978 -1864190494247307693037266993358200097794635502447995520938928657994547718890764619887745240985736437934807473704761456024575292 -4959121097171972205063831718099245216438006228886790229146916547085014590026042332430672777678300137100806650898573540666242384 -3655898393459642632004541036291612193425851747783279795401104056847304510228417238922574433467131806129145867390315264166063875 -3665579208506648402815517926487551967245716952452342336509872884242496327353828450388024010049265610889985970803926589219237453 -1676400095916770050334175293677803863116549153471866784271105726012628596876429530293900006500470621643237024986843048814960581 -6303887230138382981362522022235864197895867379102358980372057655831897690287262572451017096062107356032913949946624176978299116 -5005151176823509060156202781958197462286719252108370751542425598689093613819219880986961622340717811406826396835254749852492414 -9810879199072089316354376552239141698257935918222963398002559226752773027118660428719265494441568442234264661966547139854597318 -7873099218250455002270603753696336287379126088262705830929170584620542532170428705348694262962278699570554235741942919271113853 -0853097378201921331418681617335834926523454159799372408812168044016229123296540289846574743942294543985242874224122532498334672 -1490594866688679908867416614545427520723745911612132408696699789261886952468259502210832466240663473598353736119026236378375966 -7870513434223037902717553793135590258545562641705185546860782749440609431080399391577848963291799745623426666134231053217546405 -9446201870461219368892707181895875357863356844636097852807754420432074309846001997057609966109454410826649254380546761753175861 -2761057480832813584246237846523502525922933474798627724801784019360724008460215340269094831023982649184534291701279975122991786 -6747259709148196213568727070749193520741364779274424639307959421349714799461578583982498969579857164144199424813392167578660320 -2903178417498559526330742642780679790900780361831699904848420604973586382034364851787093357442413598696765925470890327590522104 -1850819839601928427102795504066478105300817488452603819717168073205087377109510653761519361878295067555599575161123548496116519 -4527800014440544203257680309603709183834604758224679743597378438522340853371773245388147497516647805604078269186299047096706230 -6498133304861002880698895980139890714606455707071690798907848409609045542981039802321508092873754941535671659985239738644320953 -5988405032666743320254142929561597654494413403431947291535930103688912359712380841156852022207805099821357330225186728532082090 -5547768444839618341918220237864475011631317876613320699268333350020360283617553420136149953194413589978795210753934389762807735 -1597329107893662665482951708145282526843200385584016605115945831916977370397498490572333755725067314085934032787782477551454989 -8425608912417288932359069001529317862434139520899814966998471303722622773872512411876898983545914085663888123444680470167948505 -0434379133165396213883414761877309648582182115178764180968488658223225128338783723464562383576437566308911246233632408447704048 -9663996367177301008227471941256368607999821009483324708241288407336982656214907935931597532047696000543001055538357367423684843 -1080054249718909513852149584485289714580193379500564799748250805755830508642143351393106365614646908548224506838553676335276275 -3599779694595660288226660287150289204263669082115248096828431008225170485272045909181946378454893228880239576553739907190878426 -5885850036699891408378122906193395367309415591691241926759692588330412581784093438940668271882079466692153184239937668982303474 -7878175454828248795271539884473981581982185106585811627218428403581816331240364769920118073711196193240357920319448764087086718 -9383157433735677366088538314691739001878394272868474296524756761536638899101995873845026009993980779305151574599223381548532836 -3668859832227797331952981131294963911962283005597571432352599223356213488863688452877543275627906341710804574808946808990599277 -4561238331796792049632393877616772107198692076748218412457533127281687506143050581347703755397549089646358464889763941628738646 -4287040673613995225940479030356811166110299081667864088662964809883579567473005653984288637714354335572597312336813053771357145 -7067167172790181728147512916597493867072803164173683458648511730308061884633961295638170464699169569357249648229427546009552241 -2411562579887913980455816507682929933659712945876292627871263596090842188654178242939374681016381916432972311121058175582055725 -4171582020877122298082911042822107332503076877376941726903575210668249614607891518640837866322224789915987615341840992350582413 -4400620040237405249285698955673350511161843009038833792839643496604322064832266848854377214512824709405806535993728236489108631 -0795420398459113177519012283723869747981824916722015034363766243369266801152099213940570568038081676315926730528271844090048984 -8736235449371678977947912073661875499227319547901313273871106645387069884378420956151320072268281471236296252518071417869812398 -7190598905022008877003332225740349664805580192380729307470319849086922459614014566654582713365646665851557294353631593510036953 -6381552204220558217529826167930690334372579521383903206328505035888174852614555542283456959315756641772011982607288085297853686 -1349874783384878827773365548625629981523061054390679273761674753812182403462337719746346989770142792526923785272095298042279054 -8890444037528702976987014556298735324481383261103576223990679497009263015064472090831542516594399577027449370238294863246623636 -0336415324118608522678012840335823229090847361254516690870558705257294993006716462941193893800422308988102399798523789694443112 -1923359529945753787122624465725573807149022119989195390997561541611804328914617110055244794800371476974622186846094996027068986 -6556505900937451676724626863029277508817962303859724405355623034880805936586542708527460464895044273023827975806326940478307069 -8592969583414428893231495897818982129258755657382413367672348099201190652878055544751096757376276397486791497622706985221853529 -2908214067134856191896613437551307015999440525676444599333628882928075642102806483213033250837448355509306721853006604031173677 -5140214739575524129341946985893116412008106149871779041808900801409064849278864166852383463573647719274024968463791254976359299 -8847571119606652336355242986018768524604507411735194803338041421026584303361841828532589747052208612636774062068296366532983021 -8655354613872561646045351810915955927958378666435016019460717328781560793954138282423423334855186987151419088975164710160358441 -0049260799204162100696414303845623303274803491195157588921793903647526766706979672202295037308810197036167390246126788340972486 -6425819895447745350399433314412535917516434906996482513931003678441923085763619185652238830813722611071936854791527455947241273 -1522067822697883751451720158852174772439898925807262503934468921130385503850561421474472046621939053613032754307326343494446468 -0373529669975958588899685583408106767873002561071952257411549791159364132364256139331134266337194556486549929770686277721381623 -8699593258141567800940600698126100601323395696274203924322395263563919165964829715731584976772134953809087705318959395613991572 -4912970610760196588068419702343479920035578132234944550622679160245214714573304402887577273891607583288099465093463035431694610 -3905758432785910691737893861264914959634002377051354781210095863851654985098474884630562136246052330525659496807184083910344772 -6004796506916845030772132724200525430268203485146341239363234592583508467825890468047631822102162429469995405739029446103026786 -2936254882880449606977442748506803270167246097479977977827447584435796513203817330397221813580364844509174311882193765156654656 -6587840516915974691152625347076034414185867253449830309514472874859872212804040804281552578684775759016088925401886242253588410 -2136162082678649695650433358835719979490577896244051036608023014229544782516370023231616157535453095718156293168346470255374077 -7531511647981041419067438947595659704304601529630424537788677553031920743289991068705064547597248153946867352942473723492529159 -0056165493810107660174271077633956520600765977621759777545425851195592595759244720831020706108951012298629188421930844092200174 -6642191140454110070088900972029229475358599582028206307088525106506003848087788102905904900131739063517620939825620312143365317 -0312737363283798477941966380713988316123472457978241774897278441026567305606285826664686434652740990763564567342068867452842418 -0562084816143782025599524978888894444210155619376771675521151554796594041637061218094181094152665322539245369886205219847245940 -0029405789079825038952711651290857359659229927344229997950428696846444420150303484487905236128836752670607196713086924265912777 -9562937968844743614454574043893713056224816312429825464738549426759328345347674841205841958347360767579803402491577142236137115 -0533906692397009484027899629862953135204910641799594877569760336943034406380230261140675352675702660262675371335224685084951739 -1782949915965578201764231201307179274400901440982114344774078855036237671988151622145580473895458193522528339933303018706591388 -2624100076711766326191346479084275280944607050965314374143191066314104835834695035041295363869510686680641979042639548470149337 -7092183008459177550878010123635992307868170928762105253223870251579666192277376903965022436031647547645865700232025464698571152 -3958091554628717576397311569044621708700856680671753736603162545139430701751294444844592994780440200375396353670083705904818899 -1158314027781793782715830446196630725174972102720930236759032571130842037840584037988906905557214975416804249578167992887315936 -9206031432141826113994005343808438088835006886050009647865275969654889753018433197685269199002634601456210696285807629459472336 -4978328489062061200804108082671938204870858983057488740461332416429168822452529945581949038775475758752323372301506063733079805 -7738055653647518591404108351211994677622659177154884456890162864455435902069510745121823508583748140331565330826498449431014143 -0674653178829590152076432119041481195951363053106794226287750227106636545367810520707295978843237959311321898828560534345440055 -8038620990007430479290370430002421271720574168054663731040351369363896772189503927548376910184417619479114290519008175905383545 -7118330213438952390733597389988833345665275766596109498963112726494459652684601428898616858980054673653547857404417055361966561 -1587037091185968630608431240360245295772438686943763646925036642543820946055469856983284464996007864493360253900748905383563580 -8745104358873817076497065734218673552778861792932465886098953358042048623712145278501699290745480384052380874247143800362538370 -6251997645750683187872814541336341689788360883547457593458471177846675162375769376759272289262293759496680413378317765946726569 -9307054144320271279835934039640502070988256340708987512314880763049398513262419383032058404111149286657762258132166819869740391 -6208679111601546062938461491996426928719837110414091479969117767614499297075986816870114797028327349760763930021316392342344670 -6195338739848107103644806413130142942032473433624064988762100818410644021199176248704887358790343589713845228788844183335779186 -1206612776301905227273380391656909985775786692526546380296204581461396277505352115889617471623174433491331255641939009226704644 -2188221413330256108594133828534885890151834345250541767462459786862391647167810214086311680548340646481922395107065550293841987 -0422053725280997492804556037165046616311376881740818579026242231815216233417949738101116086586716392810175144442461269235250030 -1446402688506317648015492449267953446562377233978895904366659114613140191253374875252211719488638375761957759777329556920444079 -4742234209552120961058674900214350131325585573620862943651827639544267432934381233345762116672659741592229252195548093031985971 -2686838533752676886446680927399440863720061868372851834815109578907201299828776117754439315722227995606329153759209194448678185 -3375830903591078788002755338696975595441586005976260188707036346541857769978992173498220429575524475532930877665817876092460756 -9351987353933462923395374235495972847763917223789357531623204700947268441087397398182190787387926517802157283116535834305980686 -9492332135897364643664989358260446062172464533880475533980243165095186005367740562491795933632109829107385087893207785894397713 -6433768862702582156901779207532027093153001807004150434114821705300991777142257598550961217676112326241485864463713890885328141 -4370423630135664116118217486548726531069411489498186055038679029605744527511210064431632487827249384739496221986798075711280160 -4424010886610887880437216748921409021429656729228727372446155715321241952848523185619209556774687672654909818027324033748491821 -5647085557243826965464774431484515106691575517669395491646712200606275072075247550415886971532904779039992053369051837694948246 -4648536696394853995288135284563546131345084094639405448329957974626886591260968153163248670156108903690012016896947562864068947 -9335817025706673645248672808655206936988229988506868855512246059364735571373658692183981236508753893624162179393300884572562525 -8454550045708811850843967602772364889207411447386933113146884803720821905371224276398839301167373376393299604166530531671536817 -9469613971479940226446065344175803391558840869442680476409858979317446638566865770776832153252927434674599753345041690804354354 -6652209314699751202444785726308628207785053079762876873537555813669271605409315256570040001991644970781331622466129179499281915 -1961444894849498696928429106294385830964606511500699941607840002024216695044414216800293243595307021832292431154543081449089313 -1962091622249577961316459709116638715944104552499484128514903058588880092425282180366103208523455810521574844650965568635887113 -4368421159409460609897114428104781398719260897374658539676968461604386468189383954460163078825080336107872167576349496495408685 -9649536539795842583228826048018046721092374785553431643665884938389496673231436870435149786802809160883735413992798925929876704 -5235671264707293479931013726706891341489539237837731840177933783526465474894432047982015526419973235553573918270319559547403086 -4039735888376366609018757028506161014783678583356813250677778613982578318008203758267120384291005999279443777316382864592311739 -1217739163779382661260606469702245656794710548611797988738048091846590739807732824364552075368990683393959928284317293320069867 -4916615035875154768600732328677330949063202236875210951540534956404960395079564144372822026855682749788976197007630147709880516 -6877745432713411450666647170018266444463633969867263093231179811756276204043142296040101066040921365338143870829243201412736978 -5181332217031028793650384590762724542630876907198977592730043310368021901782721530053394250577461993296684728562642042745578204 -8059743569954838104598948856222744875810352375978155248926213114786009876969666524615446586588275065587752809296977777941299366 -4960623850950107986976011274245247425368704858396317272530283837294761704449561833295704741998045363670811422098828233894939307 -3391941685834457637274247913999521308752675840541536848418544996656831007389255133631777457133457716285009673478699826403200309 -4519130151833287959851246691876615538787874185186936205145712978930546123861640155395430711723899715676633532061887829247109590 -1676546877970973940392277995447472865522499015178996256227821980732651914936762181112328377073844485649563827098289006561421904 -4935465846415256812459944886042442740776629289289624483798607070666905637221701286036356829140962976615020452048228461943046845 -5324252244416512745242538847575585469682159371913734134263569496276780441518422322618507872746192259540742513974372774167973337 -4061947105362693262133270759088934938816594942342421443896871674922874493598103930292152723174036554995062078161445343075609331 -2764956618470182052214734830103729160245043907968784028181813618886443201986039333396356809943270121754709713915646568740151206 -3370863211220134665256513439944166456784396566762502427753466744044215577692010267595936563128872570057590311781066772952724628 -1434093271982951335221748052776429614044261679575670437872151960576974124250079774604982905427771724749469647670243244251475834 -1955236107353798168181042526280355939682930522521300010742221556820749544725933966041624888393993154502962490618839145486969576 -6290416028546495661266540757687391083370341491184427521635724821327522535027514382783824919995740288516481937621675853899158115 -1271233716574270260984632585239413670925887252984501086126979534236923438493445631129740540692858583194337904806381657298903618 -3300535021488010384891010505876121956740827701335944021678777354223576529240510607458801670448052514469687591418109583216371899 -3485417441989301906542262637698405742722722240100485896839477201597733807155335120248775000837222824525999750714790729423644465 -3411348746879651113262757268624543364109755847832677598538228869268434533167862688737780726486206863057323257234642767012961381 -2165814758833781311422742619981746792464126525574786109619341095871177233773859607236931880493129178559812250332066463408514532 -7726034975123054527871123751165334996022991283473243555448093241244802428165706217812562663617393968824053366244173854470750856 -6095264928940472527983481330401867205683258753243162756860090551147348417813873221392674935402798968661528287131244490650915944 -4846998428123345187768488062434480479219313046695253889842680691405315693254169660178067961065703759896641710892485894972873800 -1685615608144031413476448920807056587474093195656920132969415782126007882727463216577625078022336565533036012495150175153154793 -3655761747568001155088833871531145294046756206587264284578974630056937095900549928662096625015556765632408742933996850251895951 -0111954704076325038375601656210245491836721039674987643056715722213989286056097567862156918863302428121309646750177612394901330 -8415584072851574023474900634488379027144152280913594573298990276864512420566377677406310761330579752357658832083046689763512425 -5360991991088493887837058948075647761797269956784924198250160336333432026534756149206974204145691725795668303825556473066440146 -6308534942697410882776557732300657800112150355078878291669302663342797528117730903433654703116183867380240849386640798032108726 -1472159005438778436757327262797064431019220263757862409221343714482887707767271424863105342534371712556647665588514796238299461 -7911386503568215258552458522450938485043355503569972624134133652411157539448177529209200030556438822689089819514432813580599189 -2365679543813190286281972504483805742897733392239676734466218958339246807222637911353738424980809257547217933600526785327528737 -8206666715147505843269892459203855284050942439891047557154055608815102510800979065603928242478158845237310517156379667384978425 -8564365639950704666389094627317673103441553979461958229265682055180735168285879029143428791049454750378104825426147990982959332 -4829102499976584107337249497306375535937865662615510579219221293219668812136853030161705938471830225621587949094705819774556069 -5123783679768692703321434015951275136482214434898378095577232958805557078721200098045359198446613744587543829867662788092598136 -6929950567989350660377223378484336709625123004431484409297585830087971734242391343301362221372782329683381841402343240854937627 -3027430314645534840941417243615965839776590781088050407903488696621208213787375420065466391992905505392720776395628578270203968 -5561557545896908531566696290176040220677116087315281719465429326728445015278079287297460019260738872427151255654689514071849986 -1828538379287013993210377215462458395873947138158932974395044262987261065763556796656318930386507150893214229366028840942649836 -2063121041445493166725834460800448260568700963104181570946402318291105228818528098805135391601388005156357001178185451101272800 -3370800872347836800855502143109732296211615709327616533336180819117537969874343031967516246129400847851680499950308763513532698 -2261251707986576560067694894090522658489287994163408241552992222074332750687259975120713193581210288235466997453538082950570613 -5547333609592722700682015971929817349283991994515812388316385424977175852402318951978198762120074865379726347089860459367729850 -0402544338102912384265553136946539662518389179790301064640333604344279296879018653656722109731114774692564467347146643170192535 -8993673525857276993127971955065805434826324155448624528360859774191561165506877746667502530039089420897916681025323026574636061 -3901599392791219781553830625484740571991825540511807354859441733493239937466053566374517381465227962291796387571020809725382544 -7574422026948740113868646418886560822423385797395522913481336942061412395775696211559412859927044430059903817069457531153931671 -3666927872751409403909634814246127285265889024700225210198280286825210509773750861772507551910169158603017385059974490577083038 -6432266277247351230987806521470687675699096976848067098507903096237956371518053276015484587153777797643144785970196659271124201 -8805175031746648720776866745620376390338985825396413633102505797368825729966186841638401277578013322523402620704692665720430906 -8623786671348700175861755678175427019767971457395145977447813890266721740858466375677681653108760786751356531141090929913781526 -3195648380237469630693855838585465684458789117617495694729011729035913248141836338293691788762707190185659273515849140203833275 -0597402941284234251455344083137079916499435796408338558567042346638713911874856299057564768580158647502818908352952487514100356 -0970868650564875484386825809898953941148685658470222784359891344183429634142985332602653810091182805015332286021467238333362385 -4744217325804259157671625823323830396696824326946849733799160663706608011805733632306227156863544912264884279245494044730337851 -0084125575216079610672037870038502647338343776533232876650551512543864312081271558094734273891229896844012952524148474639077490 -3953838752044271045872553760612072547541462596253868540540395181295139378941954659771594736894686221229277026890071243182491089 -1570455075037097901528554345355410026197839647129067342374536771901052967778273115724862482455356615889491970844930623438114267 -1113425143150646440502818701009316634243943336310155606852136330886016200376990719743484314150050963993583980070237708157561869 -2850497678307680310432965409960545878246397108725852340253836659713228648432015357639072103145170515437738478376685162370275788 -3326664187179079200022042294919767104163644624649594061308737509813605056856101998334843842071022724849290393928923994480353310 -5498899160503467457596940573659595416916940383633806231810327042150722695852999362605105557507669885448657908253818192962915295 -7340742801283937313388827545354690848045358633204829321755059875964474925792234042792682433581007092726558257928146358188938017 -3788737611929951605093399738060446796551970972956586328702617346062935531918635358396384018139217900704517134300111877098173771 -6556088236400468643295262663772005261144129747959817416429151644418457406109514416151746327186627985567345268051259611187659664 -9265455725916581745797982714801820234080260053210177213938914050671185571980281286595729366143889579286214314682943150406601728 -0316466611292764222191535471075816173597528297677167091929792260801201488249926367457821134968651224754973624583045814966898991 -7240870813182642979734405654373311183972717838426383954790596720674570866884378092938010438980361304392635321123093916926377699 -1098769261784660364965755629864526449156402293650490776352458745073647855811975287018649518441512140869999035534937655163547223 -7318570673563180482204840468935262794048795191854962451038993504158655689641517360974735911839513301305317748540458018312631163 -0444738341332226086089060414609016104084271113844087095538006211914540457624942221411569773470678982159365460154412977671269730 -7214452687225977763650799051005862709711542484791447215218763058978813997928801482608042879518784727437915756166238817248827266 -6180378877242192988083619217841832407955378736448569454941330027911152317402955093457538120111385592095583433817050629741079340 -5629107620334905196700840557766414405147144002648539402508824797133924214385476958587576623195377053042403089302692454844253984 -3318554062977863170044352262420619308431178765567333623647941692615442475752129139395428889369180754179899164103774056228855177 -1724684496632837895268448877487345538070342201067523252247951553639414362390924781555578381060846820725528271757795755177666280 -3668536899528123873671104403554809934477255454000919778770432207141030247047304569687086172422809626838419879927821205317757198 -4281376208790055629568334266876725167967493231201019877577819781783383068774238210201096426961674885308966481435486534817275888 -7577712459257967273487604669410934219901389126865013214764147583539515778668315529487762810385482472159142915583111160208903283 -2092476036780853093515438486821087167147843243339127524062892009959789660882873649427006559335981769826686296878365166850602867 -3343172251567689761041900651298644580155321777412234282871319882978374041565615637937824367712999898962026386244164131814440583 -2523107617535787966332348997625949033914601433430397210697903069041012073594953603672415272693571514416319482962732360550203007 -2354311337820780136418582226046355285087018441007811818178174630131348892691010862349686382003869512529793089372921566890105315 -1170999065500729991421364651545352790769082161371433138736113416719659099975772914182032395782369105406892855739430280792570755 -1474708015575641879072739292610329996968899496702225715923818519908679748009454327877467225863186123383312506444593821059541320 -2519230317068471671990663024614062738285094805102560284217361596105049865919692357067522503590280759438003713619649669926160819 -8477593117311192072667283113407927363527106554972169624278711433088640030184820529565097341512033077210672824164404101920707697 -5928625658638382607550288328629457639763193426953494665267869864411489469568811023649446369996193687172148618677078694284120641 -1646459774821145583534736023501469753322215654392655710781868598002276354678420510784519315703507997622744075405271188494799548 -5604976454282399594837769165955324714117059445288436250408738807427315530171196984735484375626981702836635871509821590209332491 -1535805646302302016352504827863133089568000814854822798689081283591430708834238105002833054643250911507660006657799194089124227 -5554971708100609197716368094861383459498089313293558900360605415466184945588159656825590482066432370186681671169454435798038380 -3849073431364569441656271420494005561747519609440641325324675204133825604638188550112139476449622000662627992498117594394096623 -4191048491581987672722516757004987334900086209495744999112552193520096404679809481469054957100693375905822779214877756331765654 -3967826927260531495518865955487463010124395050606347758705435971911583515293152693887305102817702226005465633434328368776552721 -0431488077940753541035965504802229919911746684489825460131664577839381215244988219702491643455403072485117531612606199932108314 -9410075360076281631174487118204030545727872004911310355915647215932318325233997786962419782803117783722823043531791703707719546 -9979899286512850189031098302495325193753351855488331350658951722090011555997930787556662797780665452620638874492236108755984250 -0652520709290586245394513350104966676213533639227604453023649959625928591554435452582297988094318689720723128469217871904823318 -5154138924950867908591044177967760020371009497593629645137446770819235001454567589699623753759581616298742234368099793781827967 -3473470305718567484348272233839660441345062709145235638650446308235096448960992127705010353860654270452060145032963280540290644 -0926811026419214969150491345419181845874142492157134486078145329290631845342202476471135442659122079092431512088292118497802805 -9354612782399796245605885928858715130206027789349453872862552261402417530015360315458931199778666063128483794096976323329377872 -9050549362931470711847062862659110650055274307045585443522892077774880073956334195774718662309192081402741882514069042809280212 -3388599022582995822369209018970901943500870352576118339149315315976479926966165136544818295802570738444044829469770910136539354 -6564372944547448237407512632251508379320872549342100765184348768929229061655816110427490635344170087149155652249787176557737086 -9304726910793034348084164624446844756267779275838929154374342302538079381563499255177774157465080422281305646532991405754916981 -5079495135477953063596578815549589683659295982170939553637877137130071575921564130005951724009912627770427858856970687414583660 -6190459320672966822341653503087470382689354052580606552329874275327388332913948910878502521194902477705810238260537165258752153 -1741863988657791139389205030367955495311579034712194218460880036525975053623461402320730996642095747448443229185546281279794016 -4885628580837209961221029576497258511104739050257941549091025711288015307691459924906488083252587010968968824529177652581775801 -0763397108119317156892696282929270919177456927168774057189218655020688126030914415663313590555442617356391166888501048989509961 -5152773773826793584772678203560374056030587370542989568481592013810907285435722199937156448541686535030998055918516459522290076 -1305239048493423602262076973364789510528152271858803400583562336066393859447415629511735131940444974630579121650398527184965704 -6991327733592729480669828930382613428226140528036104065114673331048967012900401318314500711300298883332334369070527930012816139 -3452427216705740390119289172699570798671134046758624232397496740015824965414235594660630239994200610360038450127723765597890208 -5175730522105055786800808015853823181610779386663930878893825884556056314059074930365519187914921351319328315180621551748091601 -5714910102916106131414571159732353736678835156815504392107562506650484480968671954066774178137781734638792008562430877641109527 -5369362810620715036409904025968522864824364325482506902964133711312038294053559282742499233287959154156854383883148516152426070 -0230923585180985083743915234845529953134912525464096240500757424789301872897111680226897303301395426146920411464973830228585960 -2828878183082532630135919486366960583430058092282156338048743819662184574743797715878229822611358535700802659064501248149009579 -8877808967697355352896283886616902601338873980280498803907441157295597934158728665206373488691687917104704283343745205639622462 -3315755549989540644308207351384163575736340700335343877848915517455194885659684732058284726257857232622941934453881121004726782 -3002928241602670019659934407449689182082678896433504272332382719662522606641231869982252041696766531509399818750721950486163498 -7932472000788041651204426873094409270765907861252426634561030946897515784875744395710037381070458145660220907030271894709835605 -0606375828713960156150750275120802286593052131450659403286977242629895839703700510410871815684746087294738637398861554742127265 -0927164114710800842124744207418934599056137681039495980981311410777428870205405129624149605463522859752503128770836084491952252 -2931015631747347657009129018143774038849625686108045440606651923845534431071983109500879593401459457270781303275371634919948465 -0387570468949867854454498257661547651091256802128345749601432500529628510635061338338862610989893855279059054348321900538486115 -8602609964344200881430293688135456245345432239342905412584133371544661893209862399991442865006457440325878578391699643241518820 -0476780634258919055579958686158323045730786320160920071950074973087521728400869220442510810405620758553467843454120670874658001 -4611389884432116865691971525430161735365815156176932740053507703667082841676421694566703484160697073157865364859324160407900243 -7848340394578239725877088114075619051748487906575872632940285638137907126466280399912812673908953355586620975122613901023009092 -9989300098497815617534003740634757576144040056489564419015441642507944260710401355749819839918602861170379515547533183230261689 -2978159531889967729748526061427217809996789425967856884930963977509421860822261926488518659963801830737928324899351448743506636 -7739373703546853709971163541284486539624807396328266253157406157316793793115843617866707276779926556010088380028395990807722966 -5262595518780890084621315703653759393744008415536932695809891522083236025326969192829600448033930003810949789949558452866508165 -6709958307107045609075677759152351429582355756238261042407300818561928024091909129169346687529817528488405441096301840942497835 -7939846806218683995681953891663100594898796616302246789629809345268814966245162531052163166438108697094692065750286916247302592 -6376737923232528630569024819762238692074089057479592609265302063789788269041103846131589957468529143458603367428237467202691677 -1164704135075482622437354706246898083995113224930951841406301203169957259318901636559771075096487643893444519082342460614778341 -7571486167299822050740707597065176588093664070641995447134130614103674235649546121137008292829783010870775335672457433796269838 -0786000364088666248224822824647357946129181563136369891309362023665749511277214956791187825832905762312557124459238096857752088 -0224756578418586950260891776975306306690545499717256072289157907934175802791666439540405671709869057148319796761025632922961188 -4317800666800783644393485986576298736917563650897164304571720738720115271226750820847348337143207594067034889090129746637573061 -4992035733871695023603260755794332051946719932307664611429871720394241080075351265170984927835215008078524349098428854934511014 -7791275210894880460866040577708447085440157107534047266197077167838868317086743808903866856598023308194718747427381845326367182 -9440053603247145332820937897067937394376812799936768352012215925676355028026697201409962671443788824047418146714929473243964178 -4694097429621088759426437344831944205038778311615485599880533035443309753228841592516038076111818420993913946554412796041546011 -0591550477943256220239415601324460355602248522402154416815822080226505160015237485088369250676462054718340071691237191715854643 -3754782628510988470286589139121850755775569961153502324797466418949716647077195388880488321524207926209705534645689175931304390 -4293579894293631845176289384983754244067774813502510037057302019611329180738850594681778906215406264239719011424001198377631320 -9407877792875650325539404181214900230679005444970369243950847777718535539213759142124477926938032002586130641694624396314012506 -2378295522687601357905408069624354294555654221781438340067666919648970200524898545019520189688682193849864964964428853699551465 -7923565501350073769051751525297874085786148453411032926127268603914648170142127584914619282268063761170983684501064629044484389 -9840829700300902841805899697228329095218443610475399628627070805326825976451593789370050027841655892248443960659103428515769018 -7131899325280315528312838930296738263099442057104969325259438333829573217299432626262718217616786664813337230788868035555543551 -1613365891642882106953566519548821305418260262459032678151796367238313756913498686906585565640299870573937524634136703149075431 -9289249177275626622021358990349141206245802827466686634188302681734388914438573274476670571970132658340810522019108097685976679 -1999547679043388007539431538024419806104005321474063902499212939182657952169737390109212206767202350076020372910741798343053860 -0796380798378956338026387089364560910203624767639137927998294096484424294854533260048523991232484163916572752125119143647479084 -3312139471300109845789877486922941094495320192955690413961709171195278169767812527830359720778178037462244636938901054061989359 -6446495700380140348116004473224522745585963020017740642418321329101387653563805874445580561212083040164396327873544239022001568 -8221316129071405562026280838341093594207054207388991782744751735089766826502781865742057843922709134454840546015717044077633360 -8884079984504038495190808918953678045353356097676798230492279289061735280457857280913457619377057884683523850527395740839623992 -7553178237304616708890828475106185796221210507905405468874982714460646413397054645663825587287675092464040250385703334315092608 -4773590965589763472535194103574470410955536365729704648777555516672917330870335268784268577673152078292448804242825553568245947 -6215819528050303270969774851839361036143312160025453398613079612450766506304878967542263517886001609950018287965333798559597461 -2170641880151969257726247627112079520687196427192459411452224132231427774555020194976266757454256306589376845325708061001674166 -0808706168526831621497924679232450195651965661724083005213398910330404632324992737223126731122399064939390308377239660504899222 -3551818900906904056676616710573047283299775444456072812898768689067250392820375890588789819477340760813736549269624861064751893 -0906163675906901070688176210778473069828249578452605511950224714556564390138087101450788624170738723043479291100038259738176381 -8078282667536765535434830984808011662048300628237758542292327990288591220497965448597597894673766538440553768610799486540893085 -4239348796188542060619155351521608241401936444825596707153268722768490308653700045149495791462321531911996176024726025953987339 -4599085925561530429435581768120454911625188723603840101001827808010649207159239374191781479981311865586606666121770067310616172 -7104627786436327756821840719455701887978236563257187943017156401785911149438142292942970899875188032869983742209547431350943402 -3524068403178617373975067637980111980036408360680020858787573852832862969725456560160112278450433733839443039332972392923338691 -7361417128175114993261450629674608141894725708171510038678649037487846100911817687890240766440318417379790915067480509929873884 -4192563045095005960884279637612799513276543500165975164906153877957210268650229031342852943158004290795716146485254485943610979 -5527495850605424448537975358841328894172810067249914112763981461492106207569150714303562508512966364997576085520454249415595925 -7749567920199753428291369733514893066123672937987655345561072264405494064545300253825630928142777746597418333809686090132329222 -2347190729828800374979423249344630750463633445579902195914226451238506679798785890126552693482294276302768079721653123608475225 -0152265832264604743532240505688517479981918489770686750786602858928368893549157302414453807821089110756269039234757397043529808 -6533482130565176488100655388961819118126865617901005108218775489706817843329452026358354168685608881349897826461107138466301657 -1298673036456454794414764858082769061588499493558362877721489608505337579335664200621558841720543957496547716133300368539580407 -6422724558120550176442233652100893764139597343252110471726917934375351595018103999311490022927771281873120822851829841201522060 -8271532119297676915199374389042651216528118441258413260870365096855873207948565556782103615860771982841168346920959540519710060 -6184875439923588759440136066343058630113336838104030510817176224460276957688775424874821399346650313045479118572616668489003296 -2897490483936533080760701381789308980122333755911815060695347160990990030052801534871717538234667743972256918252210649169228903 -3655303333861985799802708736697214310308014845445976122762735834979387407451810326226050509201808567673064245381176975037733147 -9657194682720093768010430501297373816646166065617291768151706574173498067197264972548166688571305758669319121229890115185819057 -3103510865220902456203344829140970552995511866958564974902239021728149583173073409170941518663482580344763138822732758130711321 -2350688930344799523350604942490602629624759567547933020887009924743050812335493964555189623547661668513628841842940808414417517 -7886476590659571641831046458439879022628434419829165109717986460127979081642839919400368933401267954441646768446103515126565637 -1110171943300926097143589488105661141081024879644220948038639183302967863702059520939356184545779690411373217502283638534283105 -6427345179711846867068806487631152636131101160079927489950186169690439565446479010213897921064107507425078506360801250554414400 -9449471539328516576998441231176991412965843783160858329264144663894049487064693073174535162944480509103362252131259963289347661 -6448977729584408680822098278848838996541448014927561863895692613238880261580223887644439627676547583170203035028358611234118545 -5113424393568423046116537671317616837784363459294529414397028767453793820041115557136079295159075170242753593066820395440768961 -0357417280340583283641050541304196888459267811242609025317032935293813444330705702581551660482757892548218860632259447912758396 -8759325176891928932295819377731294216097307260061594553902071464538665097894582707057397147529275324299057601238957576630914051 -7741473646777114825234899359211272805439289189063644808522711602498268477174042815308766568204260129647306647359885729554656976 -9309329125552267123498982148765832181281490321112798033562587148057414223743472931562572470841497241968346307379573830843375864 -5689803719011022683494640589564528393539106647783122400405858218032186185463041208001667912281578057825422723357469418158669943 -4135592927602852287576618966571253116928765233133651892018881037343848794704599894714843595981667962009408311650894622157342917 -4255899203623494824224271003677968232634091967503097880844441755720576147137952557139636719564772738964156856519335241825543143 -3626415788714735175257556917344733999894086186508542273673131627361802049868502277018604195271807930087879067221107134172074310 -7958546281467926023449343568661101832138815620051349600621939712639392675220715111033777811540451328852498746778968470255323001 -5507407940398075053567751242109569783310327198481187906287038704370431459121242392319816826310134418784694594320070284603132253 -8500952612124145512973435903996934578404485074378319984371754538530064680891506823775364453662506914230333187130946894042814136 -0265665148790173017555028894292865406694173385138855281737615651927882128657965562089006870021634293021436977249028055567123606 -5915024874219893422458723773331806018064564044582475437209765195603359789772265483078502778595048000442697079452809908661825491 -9974005988977051807595272626225779862046223804794634926553502843630881070875123298869912614128545778960915871587536819171698115 -4134066090737503736509722416899089791584075227377094759873530554067748069082533106208531237181423743510501202120010884006504203 -2130661127717575197825945847274376219456565491166146558949366985214290031939401399735403160414646904595040915898139346351713694 -6324612167251656207707087624536097155449639896731425226748776831598133504224173609907231060039276944120772510687900080346884581 -6779168745096711200457711019042996058420593520557512225066879514823155886446534991145884583182566717602534510076749929656585763 -2645365584973687585388329644555202088022989110607367050144776537693714417352526613252012599647340542087230486009799844093446266 -3564846704113295525583758182164662009216216712683832484187612989237709031101278092921642250525269665257513687371728284688457875 -4269555170494408895577906466689197972679804550565920918614809933468304708581306933698168463484178291731316450813136298166976686 -7026547610376955852909877173580002842485362728362791349023862313373489864426541187364755041770087263084268647054320360965911322 -5647079585282992247752748756022346611926842984561046976951468976647765336240687959117772104657541464074764281634923169020133548 -6986017692163536989579104384975828200486159266813636401205178471888697579916647226641294586286142850042407781409124499578432265 -7557633520998487338874304841131912835862129914096167258884138035045133191763280844957441725806050932560746430226219247549692154 -2059549946818227720943211781526111003981250924876459433602235222747377311088585283118957625555745513105052583294040713888376552 -6312790236548842295363447664682859100743206688687480099078223631017589800121679494388116457487107923554186562511797306252062729 -9341961249268388400507893558690543848588537117611908256806356375473026278316829039260672100995233732139958201591529357001905122 -7622440629036046952745648171252074362090378664664601861125598525510174413032785951294400218362705244805632366004605852186841943 -5591402799903315324575404129541681549710964981665090508369906992078809669693743879553048600144250375936726479837822625004211533 -0078063724382242661885925388201522364426479724179540766386042648425409841158873221737967588237291116048440934261723138640261227 -7668975572438016377259095768317171394189060199749631603972553612209575383312005377253743770387375624576792404785414546299669225 -6702311775340274741303788836209727482858012234498189667215083952930215080983474097496335600683835003845218991908331419228161974 -5844861014709438146848025778890120727743982063500046236695299463240688553674143271469625051120980545361183599015488717404464199 -1417923931690244544999340897859985367002505948231379127672256195312588278402509195472407043750082438215262579893876014989408706 -0852865918577980935645894147403286685964996381094297648429648506192278067863183038777421574419694387317777907505729693297708412 -1477876485508630104652801640230580883493634454785840756974806839665717736338880683347432665781835143575902380330089255654038083 -1333574195103318490380293307280457872559202823396902837942959887393577658742570521479101307298105809134466724699237489092865507 -8231986011655928132234768712876079867027010505901813055232448036254614645338353115984374755578779894249199293331904818734171378 -5291198257745669262198453729172996916240029288161181812810389503650167962679364773038871747909175248874112616641407342566234542 -9827656930274121781454100476261391707245667711266140909114058056141317855910068833712824192869630959336254369672357008292856548 -5323877306540282063144065009953089367459505720096157841731259977506672262970125862602619551379971955654409939177527714243403057 -3533286954907536500237907021493132000340867715658050587581466366920687545465498963798769329374590369604149184427380755601882748 -2772451245387121398103687673837186367345979531432828052838695364605611707914643359500610696276887453665009271796449018655863587 -0698238146791660163022661497107232088142858713995181413650802098858185207125972232613318849001183174321522406825869523281989408 -8598554632732565974534400037249824032956321514858885348539735224820260572526802963756049116642833599682551125312131721936464816 -8777244479719589766354029439548567013317807112981262942768196141952117452742612964786718669561362298781178596889656657857438059 -5923903176580798552139931019374192553986137461354795191944498128759243022494357593594711086051327159717361960027267213667050902 -7713620888965717050672864796196500874403820011858648932283473719914877636081597753296264071668416201048071423687724652867885227 -1226026168424754948160701743250583052114587429759744035821120491264623002950973529144113414105707200986835221503669020815368719 -4301615723202468195623453039744894794833018107887889921748034816356630393443669846540007477652862272296203141137911353369865567 -3701305132741529846291547614776780687562767296077648285050793745319685122361946265802267010089656480989090754766793951985030256 -8873911333836369977427224870430320356503521006657767633627578973429639446804587551411591770027775298708856911679457385890346605 -1569544828599021231532143176442191013631066377985711192575263159095165119051577468547654466026788861257476052155683756383480477 -1570683253965182842006010673097287497172850525327662453055182206979693937570550092128731857505346441332074707878996538911947435 -7826422261424373910786428920393564290525228206911026303685173218951588837324122530045948404629473803092607834231045937648966971 -2638900097751822798368796230240210897707934867384226561665436456581464223307579261127638844885560109562036790807667670390644417 -4192581432555251427389363044896326951734847648428400345150360499669512737809145524003991223977279428592712065139442479960445332 -3942282183806384991949767715266661401310060486291440972343510267352817495541237489262806877081824812836064827724828303648923419 -9223072015234086234796090436383818568296143232241955872923081786551697504279591818923391084950971313678554302938168053766302337 -5040295146817500973605556893314901715843407186937767008367308307925199801486021624397893053770707845409279496052311813731054362 -1647014082822566848815080638989025226353949427396868720941862068805915405636344175116957293867502515550210403185422186297987101 -2299194118400856813156210708210682041625725297454205612569506042325388570654000072012600316753710747599029554756191357595113351 -9406123252615695607363852828573549803486496914881699175306276755265739836369938313041363024110056929623864023133434302918217876 -4012400092952627260881136088985623398889677549475347950880378929158923209470729028820934081657587476645444580153423943137551662 -7552074556799764537114289715930906335072549730926411552458159805302034148895295264056331531618830126090300007948842259905560480 -2034810936658458335936482208711459668407533754842615732173788255099444966005654249703291665433879743623245887203502319367176453 -2055826854912228554738248289886125490164761646368783638608966701408500405439745351176591154838568604792386814062201460103196028 -1704883259604470302949798965476058273811653448846315941108597287428362004683627667421915628743842382745845960365444382205614441 -8276093407998769926806805283999661528492618490261728950220171409852969042576745011296912080496971648424710213822281461166346433 -7954055459730823465679899905176049956104235683646988019468094197473567154076726095028250041409673376986848760985312614035795365 -3541288526820871183022785627606776202868249144458419432875958263707872906136295450220559956136362126175679096582857639739948725 -4938942457166622758688764402917253914836669353169972138509951712963418233559611193066044779423979184123891151058275415387004481 -0186693532983400032989768484986211599974215771878040648121115240600011282719832395142348174280309789242173034859607865458058836 -9693011226500711160574222437812022981161460007590617976243921827767353835606291414448435195278815539213466555449489307049996549 -9509118537609881549110785870137427018215479109414974529881125038407426313589072435487055670013225428915901526956102119247020213 -7469585110154725916486236087220807528982687428584047123899577899339622871539124688449741918490207266633825962457784296958609358 -2301098947514645707894405697878233655395086728296961354861714139621104988822145498752087551938260818588440041204929785479253335 -7195002791628422640170129886701270065601981205842819128758172220230767271007555891989535523140754390046908600193906165109046248 -2903714800754690075212414752414239844419261581404644710369810146988392192489474219249291646325601976712417376991598429990116224 -6657841194866308789835186691755481781807363317310203480516610021219245717136441915610841540149737012207330154276656421683007775 -6496393167312732418345038041143115847682160487308598451735321809667649213873941020106124895016322422646066096706495173559340273 -6190352286444996698010567042083025249630998980474746852300834243586692391358290885793710964591096599205367697354040455225748995 -3808084112830212575642888231806203048547309288414193348028410780142000603799742289999737003393558049032105240979729430950416734 -2055001806906934446231057752350125761310442613239626005937018173389749155377417284662314193484961591256165582045826903566815287 -1770910475516651085946142895420353886980271498962773028208448011256576219469415630937607816862320717646276543446021775437024856 -7317728070174544541281155663261784538153312462326658626789839195595942323601274570763560759947639040733318592217361764664122267 -5163497922629734181478583586735139172337995385407882365183581289857390438660661367597010604158349602523776584737697559311077546 -1232290524053006728473192557288773310853272463002083064021874545276391652038777534156787659533007696087737660972241935746823998 -4820797373925070252089423136204599368358477176708061478789645953897583587905165644362770501568086914083487441612509546270070041 -2710844937068669762717114936914428075765570984673461573362652998653398467217253506007120061287151708786386990808903587499291676 -1722239692416177387037629004556867021409013954231954955946248469232703827805268278720272112690685704443311442687874485358911812 -0696442461522918873003473056316397138103158503920758588244927506442635208935867088943853508413143951321019830428306333251201396 -5237490053651269730925587281174140512120043151663340911938612562084343250088788816613613533254540244890538135550921235569055235 -3652159735685467737870844804342436795620955533935479356452033442056822975104591188103222254197338188275216408256009062112739968 -7134994798879023357613115067249723046493042657115745023241318111461450746096281739377465898982050597074346498759749836646750845 -5435539953004427145646816313257688146440880667736243466005411373421754461366941715230523658976477672479751504847483760926576034 -1189232066364746161715297654667683387924489405288055983423309925216635045159783671997425077719999713937624968743960815866938439 -3458042402161473455431554634378956977066496820341904422146434258908727947177474383440746332129391825690966243498723403254667650 -8583588769346353411734495459871858141713721510897174001175951449320360912321580651780695549218819369972998610310409490019288172 -9334204527475060600189111850610268775609506754404225935699578359127242186303638934810994186504201384645847184324944047027889017 -9180203944559928543575350648779851174917364441299737433952437533215087774057147807226819191868491441590442039396662591808502513 -2164065534579878437699757090955883471447031879403082053258427608568820018565147466627486801491876503507730663614122066321703246 -1913587358432681308736116815399127159387589682764288441702400713256228014611237877207779478537639968530764623959147519370506561 -6235255735630858442517033591935698933960554844760005512206225607812740106611830794710056776637176558829867814913080368920324943 -5410646760661322485781048142156629014814968811323925705022272475371023640394527122828545405831491808608741154836760565505004928 -2033787078461763925201661733809116559798197426225447373091087213252755823492809148960852025727421510534412088471340160144342242 -4053406317407103820908867515275579307068390637321468991384194322089645112923727349244540751951979469134053290718220589958599078 -3285805403257089050405641613610899794397383496324785340103859171172319440876039603408630922409574370487373867533449326075083340 -2983815868763252323303322070522064853273357744420576029234853609842229699640881843769482230526051119476446187157115583149336835 -2361402646872012433986880843871560611945683230864891757700569780134284216871106221826645632387373922861192629580123373279881156 -3429998671996373176825887742582100895464377776504251588052739302345778540285554961799280437565093922440989079226166655301999596 -0886198944491737540229136497483278400920360475905860689648388002698383026711966163612310598810941558644533048630182341670726792 -3224790998309426141510868353814679975103849323867287287851298934668662832191399524482143116612939771691776186144211021701423317 -4793327096193585617231688937441621332297850907599875602232326960040073326201864681000919760060752937975322888247984232424151851 -0809471069558103959275275538388584472907830398322459954494433179596574461777867507710018713571052848608078849868820600263934936 -8295056327643509778568235977901421687599218957335038414287972297917509776356464814745628543893936365866982215021206066423916526 -0069175389099655621827463771703163016234772278712340002459468537149630573879420643113985870282366118625694647368265400040980694 -0185330675548785458492267177712810772887558224559469934081174511045410475070695699952516120170917198086628352522241811643698589 -3432240470257950810314775679834800845473620978487244838484905235351184086387166599707527028976915030731776500593580501517198631 -7221196580395629622683771151068414253703527355840765726766691589948635031125477445246126627685840897423930890628894585553998214 -0691851299476896761562326144030082656664005132402228246129440862040530711922127884942717942941321981606132599740710622690829340 -6387805954414104944165651355643971413515987568344486496225929165033526273702557885861628429072595508259134031569932407466556139 -1855370060311355098279801028503699206359780131940779590143641110125855998712927294283001777864930865688001454553164651367990176 -3395026397066375956526282504048669461521946610830298850923781230518236171386053536666469499692151678856847055919172630657325178 -3046849923385707165827109497171128710135811605592578271326373856764418443760349195924655728319788343802029428671675457416769456 -5261821042279220321036999746346900717107895012894353289951489320917708733388530368251182473743527841343292751660664418023250390 -8824252317744508579970406643025576979363288136493464811540150480851485119103480579103156985795448940762007262203877811330652870 -3204055616321408250954812676138625194951030184386810613892670161995606664768252471283913135456955545480933087872315934450481826 -0110599619290339021324056958678493559294456117665436489672772960474962839844256174658530179997209334133515553960451214172384426 -3123165163841681474367010429491835679876709672710839983993762107872490425945162980229932665274102783110995818120564672709048084 -2232035395926446390712487234338471590552947684994788621710474575654186707905435367680711475885293815543060949577152083169955046 -3350028292251658928286123588620947938740352179851517866242963626384508167950485172272074373493999323206780786225244298185666999 -4138239667749081340443940138823062129167164095346506708209137890234837357780622504863833649209158347489730999565991588612008781 -4664217286110698633018092758084011823559493288270590581425742146586929149871453186482768470820080489858199024057046533515257475 -1359038127174952081563588721035499113638671173404164924825530484539148472501653910385502837523160916070082537168043390775386612 -1436923728210391122200372504366645991744778858443244990595402772009992024820412617754275410349299293608939703285522116131987750 -7070475686255460177418547021473687579971194688396164244442299931146128832803904423667313289561781005593542663645306028982529133 -8234121263247251924212841508107137520536152642698580769661242285329043039771966387613256643214231439403217580461965950616775878 -5413104246474816660429811639531866004425878342745986000581091374331764631199000564830359002609727849512990017018293163945873976 -9271235506027321498393346844536657245544343198147802739604119444238511848559098921026630558834845589124777635275843923942487146 -6915026105020117228571904488841353205308577369931061433915716936274811913573096342546878245443525669417786920642396110509919680 -6739657651695868636149376334284237799146008295879768907577994879004415279621922483186516644311320818173589692203657526672858471 -9876510782436209693056682744986249105883882516043932138260023370268816469981968622627487020614107433825722570906101692145161092 -8947476576936475757290736092762279169953016586726757242391235235637432154172158901821960951603571049760362400377076037216546585 -2735502157822565784279289258228694712999190257163908804541511707522385665999422960150232894155188313507493238330302410605425296 -7940101946087505879550405973067848188833812225296523952905032878875050817047074123446017999571197850004230072472112763344801201 -6857142063692961406887982913011490273637829211932192499375592176104274764580285681098203860236999583984675192011342612589287803 -2211465020826460764614937570329924717346527293528447660776999654426823206473097384092520163892337570587601913303602876478051786 -5272016532080322083507311689593741698084734458418980219100525429302190098183573551213250917695957795596851135451614813138939428 -5194225250639639525068156399214932189538746207985167145356511964074580667075083175359149568969997574350520456153735083289658446 -1455560636188297319680331471565963722123437735473357325582592487841750254758281060767877781711667628353861132757458093517522296 -9590937580052253974622159164858580322392765535712215396895455529996073185392085906968002802221878982904887664044332656986715431 -9536212991471446618363328764237863492326635377747715439634427901843465449556160996406079848698687609807559175166455209276718369 -0962150554158891455114948237812845566152678283675857088563676954226626094608713709080121062121158536561703886898127526222898762 -8414892749163551177217490205399965970236826061221918459810953818518538232318451456451553658102845761329243527433596909757880804 -9825158812532083534774503272169600063323718458433952873310136391419269694767849055513012348666684447456130828029837154887287827 -4062509382360859964541627147185929761392475832974190883249337770970320052156457280268514718326951417528373787461693447362886601 -9802384514195519930363615938594105163103928246792737359775050266251933928460657553568168049147890604569802307087230082628479583 -5935332407364708394968146809867463424837289762388992341535259500067286459397511377634976747563308326968703921946360640378185893 -4569961338778055670213869684862788995924625160473819440389284613604453202763523485241482845106528449769880720371645531620509281 -4202560683681703431369153262516802980502196714639887848169937613326674387122996761898343353693436995583214395894151975156893071 -5332713363776927366695888962587179393484799105075109946348286416315933464459810857879632369155531524704654845441581407617245460 -1504145331569763505220832523847632508529957830567158287689592530569297300966404712183597770247546234814056520028432048220079902 -1149483717724666058290549158624685899733135096369862966589441778195807957291623190196664952975922610237417399523101511538417768 -0036082673459241242094083136368293175771615652653244493296672289353318399016588588663275146926170769838811055155231491519921092 -2671555423322348703897548437846131134228893160392027737396758641632859270434645917320325207654186499204544521705733245689882718 -2041837354468721403869880661989984614132154115011011100068745419042193490192096797533733270459341389726436281948139045659902298 -6287265676207191576589342058985373273830354712920659876843903556929428288343172794038913384089049546744993546672999661244015504 -7671119447680097893124176344032941210873441607294204020878536819662836852561652631058964593184756766213107639235733279668108014 -1503597944873319896726432783506968518844581130482208284211813252594573116879179483819354129815885419312761420721174077013349076 -2090575099698794920755209276799477214063322134870825766478922887601572992873375806104725864045048652936083491870937541080699093 -4276983494146036588052551210478424032928358829122542012906258904015903858342990969060460111480318597431250609578131562003677515 -9113189915457840484343399644582165727880755692052210886524470220995792925869536099894161015143779391596346691130912281801612173 -9319631208845800137369253760266414764140198516858735371828537522929558300406662683159046086394078157278265484925694452296859315 -8349237034176302850857262350204638637311808275176159745110236526981407472953488387189243977498778789698586980560479570319641349 -4582085067641332005668306046922050438876194786256238539902378554139808224133740244623740910175342259941720827473284689401445459 -7345697903120299815105938454414060402797077914470248272961589951135290709800128402376384567445478103311791196342258909767408438 -1687450542289596593441156541948105976556022804241843599203672068561696047317558154471118174352593930389361496742548511304322359 -6498489819476221747377877067530863799486747795199009866503783070729160667495759546595972752749803505545796148381282603736838562 -1116947692218975950285800049524721556053629253858269322416639882955425601685355611062823222776368062359326543474366782696365362 -1876190167722031024686917347027779070009896358771654643412669083054810506078866218417271851286420021860907338434817211204686529 -7526344148737332091666585836660697055361931941977353720336283268157952341498338628673162826343734542380046878989163995116270895 -0881257474139601407433704222324056930283355591807454770810061687372318085122818010133000433045729252354366007849932042280735696 -5414676249451280636930231638752958380804768673433252210159619334608464253621441055450445428123593855381938626029786836437726558 -1472864902858611995686957469529408189014561042091105708978737612763064100403995245584630738467933358860436751349270719679653915 -4154741684647123464440327863242393005522818718477064168160551024239993656696764829360125195215986845682299044548790324197334138 -3620127277527314655388754016922253350206555973782560191527034271929722748456430219013528002841930398470078939445946816067765376 -1722243978849829693580351795930973604730338879610427564825410468950337347468265193351290232895574144876817631258161159766300943 -7560827667474386459711757237346751568066838129529407855307314365209698298457841298119589066095648716960974765231576411494919727 -8647954673176727645450541867878958992452684388452058871232181090099976607265059152633077058376469186824930991444056731009872982 -2534991973200933430036026714058825873362205723979737750638944916727241098322793656977758591967127159597583155643556576943448135 -7155096296084695428953865082662825849460303226866978634425536379072621988021237204615220061198468810868414563936757985215986294 -0328355158636181420325206501518296045012302259181045466662110690600154986730477840865756276397313811576274178347247630894639601 -6488666618858920723988680761139802965152715427776544103393791345032803457282545151397254870010332315293514763142030945537580212 -8490792796508337321795619849060108983218521200268617175020002271232501077412217793566906763151880182142093233096870432790215644 -6497520222357920618391446425720257029473583117356819552842063897560547456381395533477059429635070000008137772848031720176668971 -8337012837324253697188573699623123203170708166950795276999966009577648906818828342730326847639721034032786616971040641824194318 -8936005757600971054320025253057644372313238443033194219596927715787049581460393528422411161050154583706800554645719354006707835 -4215727593152764210346931899527305466845340439034432649923099270817579403876601746194619933095404333412889852431784452755466843 -2088097487158522551752685495115047141137278634729729587648195891955992392424399063377394353752520259570862609415201408164480501 -3544474831228092443689968228780611679861586419457086393251353177701671796943515744580842421181721325756988105402798156643588821 -9778536795257051681439799124663145890473401144931092912457976024515106053860305458288529123695426810921506064347775651216836501 -8629179794286699832017474082041208054529672919556607496647432513709724969762646139135868191228785586347557306843431128687158014 -7106456703557605702232569911033196736598272397024373712296482733842097318351505429979256730289847489156750506335880609744614597 -9660558924487542734143121356331540689398560467085012517453390341732092436780513934245365179678624863881161450471818695381011735 -3612453516034902143796136205048511802780802772294479133906585232123112871839607661282061340027850740910859483338299107807956460 -7138724118583930096084405139356471004624454913317962414308274669136174812224878197906201370412577330455805945128690650516949333 -1730291821726950196206552159924266720782365385611242853448279354949948923432277012453511172303822029259754519038931979427529263 -0548575047242616318508715072515332204278272517306960109310804996719916332590161894788700070468159978743034429043329057033741956 -6780889499085964528861899269034340070621419803779139024411147795371750105312955245739852543595775978340360773771494478163557276 -8779458235824687171901362922249920581085853186181780124486013927395708657432957030172044779093473433280766667409407392636463029 -6492579411705822845905066201120652601308459859010659739650561022388466983198156117882306744218369432413488854001765063909641296 -8476320260631331607201248389753502857961661494677170435281685503191366884817616726638971291309647117085069726218509290967362859 -0810139343653776833125734038676243930878414416044335363929863448842581458674823745747264416650503948061405425537368655356993636 -5246772266327550199529567399996744188644213516458735587639817991224447177904904043235549503266714688854194981790228117033924563 -5461999291173972450770635507697104176866762020802521790899644748842731393628432841194003711839701487245460386154522697276378209 -5508101058683508523829079387008807816663732920071304290119836347773461806818814318630035261732455767269492882409702742637950576 -4599609444549117705097045766405200220153090927581307100167391516722145681413981100426906534790499705750570830947858845925010025 -1009651634984508835728715571045793550385433404603846489058904184111368085059460823145504327889561854662565906194985160507019989 -9357881999324778923494272780697498659881414033472270442304085245770043338219929173021287371666801815069695486701740310076529915 -4608279080766236606674170110085478654830337635040537744779366742642067739517988003498779451425063495418123468371481260706586708 -2700839483986172436829409192485873721128692643705335631914640430691426436305173498220746572777225402080014675196382731227699368 -0086136702746607717078625347234495013215002090165872533540039551264212687781885399476155438281141614343873696580481400589706298 -1705902722746414058890369373242227296762941970919549616605978259694120130539911344963309277369189903126883321693536398430654697 -5704737347400443449757566987270236468633966314353505101478851263083176174429030344023607680553018559157482487272502931014168203 -0929253853547791644998906236759598501768018124990991199353184644473283908513254590068607924929473380232470364424573291631346278 -7114456427076321654054593005258016944651062956332800845969220254804995756234489111294820165405880256529733135691041245584370134 -8553075127747556822577563288536391683930679292906640525736392953226223500696613649419343205087984527799731174525862937043354377 -7195787380049689624114711568372766827743368052980829823446372539589421589808988393401756593651612425875577606936738214349475949 -0181544697505469142362834711903740140759734959010974977126438624042186356553593244884210506676336566524109269413687671228874205 -2896686735795141476730158554607522934103668703053995570782216706155323744964613382384967846986182100960586040580173953854307263 -0286768549279297394586785263108063892918942908459235186623403809969114153282154910435594392237358132752498428484045697160025994 -5955615832427009939764606346259378692931215536161617155986791397037887173705219219646647075071165536665651942885935717666403172 -4276536421804556864922554676992233459439755861177568827029918375612999063128068548901725736512083925758415949098712083242055096 -1725062474106111957956927114735687646594918046204634711666975260667778901437761819647914937715436330233142512856404865653199627 -1291532637755334170692403451392823323540177224847012033326608939686606026939972956526341007272336243309559194347525857345975521 -4741600004754011316928740091902596508371266808717732973936254941000335221943249074812743110404969466723162046697491974991225004 -9085942759791031775731739206062635146158396893656161608173687371708987211298821225045306367484626014700868922039873009889166761 -2541340395518961317950998826785729636172355473248648132541946680948357368185423797382627281741493372551999786014593359188997484 -5815863362546532185070737662568520327034674676319716730206859041401224197894669598892125005912741187360523778711460345399659500 -5019261584110255017064950229895215051849707546749811603776445037494938571872346104053773024040213974077890562979334359709174595 -8333959703819799129975411673347762248495046754138982930023526377690018754531518740079491735091275401960400702618787889510076010 -4581333314409607030057543494344952121287231730028937956224706941567517833092451729648212810249480493474654543033507398453170912 -7852221502784071535646166335599143402394637641678513241517161191111016811759837825114453186940577300367319815188600287295217212 -2010730508881189649006207896145313350898015140508068016693226343978406558747353752836658017965545008809220423091595161424950648 -0496642867065050893136545829132837570390366632826974250747266589629788809643453838849392317508541173149110672931572489980731531 -5044656574615736195246481865299114510211631762807229391764826087155637720268154669986339615396192306621947657967460512382581862 -3895441416167225879629472693046552479446299590678533650004819143386099678646479751244788463147638567925169013110241886917506841 -2313203706796269432481996570645174678020808456857425673026366797683548661197668493887407113195800476443548512276825541513285096 -8842881585797604763305986235159142379357301472286513544030211227645270193019240287343188528847284806872333232004379253392212209 -2688409746134847438143178885250323822851284371547861492401669288415720100963691981973327453125586959600245064339903637953701615 -2157845883601129857682095395770985605599007238545319703595004924079346833281510603116153010794429037127659368861617341676777914 -4401447994414721274888256152671021736338924549726141907269816501834171190194745666679544881448528084111510223352357146390678748 -1598441987414496519030297478102458680201205753852279934039229453001433839642149793337137629917651258040708764206181523433254292 -8502235049697025555092849971402076674867464110183607528142090872909056796241616598564935589465706229822069262366265937628292137 -0055816249709410284431305701461181450452686881595061600026629505373443676670339321519731346337868758756244867546936430600344835 -2653221234894262976174352794968903515069018957828772393070009300269049849197795885320787480595346792949215526978359438371233230 -2573198395480105527983836130766181207518943018866225650015829519188519988960108721260257064720088842555685468531102293009893766 -7692694226464861550196190446675400547348832497307906496613188251375658889565533214610868096123194257835553142178169804139054021 -7725637998171173785445603097719118044612631181543666841703322233562489202164880099839601175940461517268783567897496005081890093 -1623476912740353658966890439792885600281612076194740147557413318421891935617196959684345685434629547787219047616918564873155095 -7025393340892141498709286165315521796432685307146924561201314330411100254047950443336104515273461423562157427134079178986568513 -3037051173501455568382307906695636378996155638857317043809314274578391987572790382804869815651855972786188467330565714827922500 -4074893387854201023525918388726764794855730871461446351512218023803177488574497502040250654764531910469820302411970861290475346 -4505685142400586418253034395353236203805450253479017801928704774791824048811941055335303586560686324885362705510247805420001343 -3089154219080968310703760534064569831009505236913263817236675143668487294264949278958590434251398242365729091805726174530517140 -0036394729791915199963247134854987262729782792900430729405932713576759938708525288045097625035200406357341027793528833641758308 -6352067888617175431411674423431768301646476262241768575619045274936408735985350498083851711439785845206739316196883719103192098 -4796246905383107193048562525408958439687461541231738438567101188983088993969984494129981508412118318349184613817013959589269737 -6278309646817389075935268193490507135536415367887824086765490270943493340352420279233033265958209197334685770879485799469719026 -6501644826983757753799478095020135205854302975462551896895597291920140799672078608383168757287535179491461326280401680688209269 -6878526040144420355891683769364803589616260114471471935609824723068550467740012749917856656207461894693384857525476785223522600 -9913533038664755944016342494625355616351591218888135528544319832829890186060691211822484503271002284261557646472978467535245524 -6548210843247451049422320528853823425570998217119732063096360026534131251690098102596630502775298567714836475115745947762170767 -8887884056401989307352068428168695321737823154308274924885994114161224059109503941221400198439058269599476104839310697936760947 -1499621302434101869959148741723191678491689696644090274728115214408462354277075304721665902694379966811617179086736989510478453 -4472180192689505631132593579798684787021607827033405644669077356547531106428251322335834054519860462918400592332567647993370324 -9048351300356674084399149618697303904545693491523593398209411550081390607196236295352104843258693200555492607047645055200473684 -3904033119579621911938196032662442953927339169769049079015529114126726770405396769752836907821633197786728940414757447592836029 -5698177775039384194905994353296325732870874582783505440992449252246418852133705888017732270642203555475460239299507823556669568 -4584762886535479770675275444567493237009137069030861149601485784515963297935895153471843170037858613325007001549210631837023209 -2986230798529869904729567059889517914570160421964137879893497645563877292347055745496295096825111567999357916375574494934291205 -7206470066816931559279891084092643447735267681920960477832257393262206090265312234429580381825327805715755696980240563671249333 -4975196191021868367044398019078519059684387790904063324517862970957096304027938042892083911602143438683752393325035772333502998 -1316065614559478287404397163400580119624302865064035828659428240183667221604845265166461282189820016614382937134407772850983969 -6172722824726265969836224691170018753182037736393837492582066024393428721754417142086323296047227886511163988288746175386143366 -3150098340574634288363424590978979671688129464997330011306067549875063142531548626552657667362582081599069751262734236839198246 -7320831408674583797739325661435931815687746601771458516299735930183747747803369077854960129285952199586802721391111341133770000 -9781649076575876416834626425635920411598588075542620127671675851163249442163030188821293485762987388143543674662920406406559708 -5939935563329383384304248329695829758747483676028520127505271048590567171170009956748249750276404393523654234793402435394531559 -0252668408043754647206021991183069125065854666835585971567158743285135342908676173306885768974453965943775589652707957703958897 -6941205372351396701250517551254482102589310971175662401605631499693168133844709297036538928165453987035113124871313193061665449 -9276802658913609967848115344605249848453532699908586062377147315012593156326148344297014110306443933718879254374138651819351013 -9358073205389217401007942156414789371666731131537345827743121944929460937083473364444624266082970336996459723671391030112788573 -1765411908158890001229050208942988203575712050271091972655376675898080722954958732806828573013490785204118792568609729781493352 -2380302146221749454886974990613671789801805162408638634096879268990438108120689272991357553079627023448340790990962415597084280 -4048096687228528057040549427950909321059124104059954691594133361792928522598487445722858314871353602305792037504518403367795101 -8791402885580812697264727719699410880547796108771833960539902147827417638408675493518018213254819498104814348795878620396366601 -0903924261354725492168290232167217374559865613331033632981304605379493456181688182582298294804821827770454840207003173905889439 -2319227785834038175693137220680318778454701304164120192954225359327542167556566637258412033259709183354710843065358146305555525 -8673917622829080548174920911891769587355766435165634787328419281721579009044997104872530471989859299305155593643127267879722422 -6682290955279007939673997760490906289041187907827046608623932479656002087546101920096135789193088482019418559812270396482968185 -2423495240985101912282160197226440146044901932777702865325863608790152621900419953459804469566930950992382020196553029673452779 -3436610407681610128962456711300906610774647139359864663150800708313215865508716982334525964257676579485350065609743793059790523 -8492723526317024179966715344536215615681812917282255110526575184184812878258269018344255337700911624857617809339928700208173945 -3637336636381056356070802698487403636259922727330027710606038599582455818066875278487848716217844022297313070587219989978367370 -0060775392327016214743079646392570709223503152196217613938079763344036433088567530057235155273916070612559581478927578508356337 -2980025169096765222953776328674278356394573802596587538549701911336821174109269755308129020228887624742741743790423872778133411 -4050821812671715448039700197323622949979651733365312936187264385591443824448095216098907529899820693216629857601750862463957125 -3142033473651787251598564785166706147991399595143208797800693772522221250290172822723884818192653997830457442015732513857367482 -2434227934816021841461320189923052035591521089170168079786149675686974463633607305584810474242944486308070058500812306124076610 -7715099107942733927512136192299373968619398158672679676087995950860231222104112656659877314698556942502196127845551909712373108 -4069114461731658732633727592893010579600135097271095735648535688306732518715682620335083055144068477571815102417990371455419096 -4513648336048758526599148974167943082379478315281923441623546714332454634302169701041016212788185513022911448815223921787570792 -3624469067047527512170727298754069896031789622645772484827952155406739967506695954077541651367850929296976343602998185574427928 -7941267068022945446692718780586230511573764935339043083147537297266971720289420223564631007244922385010298582167405543731618295 -6806852318072988521804655880278600099719660787055120319799397720389095148995402664025461591174050670273042539667806005860061500 -7207008027571345636661751333090766740919387017591058445443344334627123396031143577924484316316865139392646603641126628696936857 -3077564139261564206167503001531356981773542928052096642681673223984499732941393025220000573381152245673838328811500670802459159 -0948542799001533682410297780373013799791748346265940949566539377367731087302452174028989049580452869089162990037685957268273937 -0880681561126138584261480022891283215404751141789014380796409952816321543905013512146286826522138659411899727000462608467450535 -5880091566261256557011783504868257620770129211977999169370084785384096209807922714348396458806443353193445034311369641072095970 -0556656033549253864960039890721015883335372132680590369609602226419085993403091634173432095151442616233244407104672122152816903 -0104165883408627525444104591380562545622183558159751831249938218150151310276941351661814981521482974647621742382874619909936820 -7313501231477817301767451446702735705428503662442130539627888646852578831768325107739301527824363969429357121983438884878755269 -4393819179422351389843662394835319603450398553466130430331252873486799616761474948216299677793061438633632338236018231007238273 -7068094772817742176160590443426997804722265949259567119852638283512544860402755698118178658952516755701578554245375512654131546 -1929058509678608173068953824208364147161581285515961193245483567752314654578018433833005722739540799467152027333949229966280869 -6336730057716861143854645697201406300653307680945816167555425942108475384088151314617817926634797063108952284581676269870141278 -6513049997339587705695549544072595339278305253913271901919825663866146612507671581432953692087570028664604274026412331620371074 -8287494858287111672511595795429201499531492727612182441663719617940686643391436311349735908431637719847434127985592417043341276 -3683439281027866311263196237695664936547654237370870765012602749829825808040000867227133823847412406422822451359747985192576292 -8080745720999988790691750589159999510681935221965279452806039652949988754070864815196625235801191787296756531552141564212907151 -7193959478339407643118308465039555507133342674876808586706138734909756613087265895500010160295176435656450676824231321652261709 -0364925287385399527025737739685585498448664221812361858587254459582955070942164513804426958941634994463722930608065187062143205 -1510248350334956246451724384468817066713416535078509857129529545180481755289335535116009464206553367625156566677354615817653859 -7881465671702288772143540937915254400157725015862757578041600213873551218117006116952755764443062859739372284691117745149958234 -9088672142145404730278835893039966187590126325943635642412358143475145374782213403246198035026788070070178049812453881844272867 -0338668401687420146135473027030982411204915710337406365921420685513130184588295184291465724202435316806267038332889397443572598 -0839432579664022013756612378573508309364105293988945101718659897497738253028464952712017100629220365209543091962896609529479679 -3205960596777307708890129013560513946330763313564335478005273643120628824046289255031118424365183741647820073945909472936879735 -4620269579622752421433383654982653678424583328146692271652411473449919421964392617935515652881545262048907644967697133592449864 -4910971218311134291321139032124590602851436712963785978946343853100496072075735946195731359706831946181264874128557978861454843 -1011713617018211148846555458691095625992954032111035185714620653734574566700313717404927859717431081627049246861417661324499234 -5786110524543942705885896839017534087003537095772880970962648591315518710892525409209474091669813346069319857029093908507508520 -8853954861830714292944628596393329384568570114810794672937003168548384708307820733820193722197605410037476744326684584534487320 -8506177470614128104032179365484641505802789779285846461790237297261018747968281039195118146388862647365824837138881138267868859 -0627387322960768524871037409484459085875896325439489116621528742302285368082254073124593119410595219290194886865353532781155425 -6809698357496328576273024691628485594217747112697681983376999200098136183929376787562599199562809870612840417370015973807170130 -4180345838072561608049345847198586105129570485513244519517878528919531649387592676465860801665435795014078048815567745274248672 -3354246532695167434429089502120887783749962531689888071529106417054905309204892456124468634666345233412562908228212778433482865 -8025350198646920310690370174859009390241456508358264258699021020277939851249666503547743318751810595431556900870080845029269395 -5024287042925036023658377259430412863334903203075207016434236014370755084100466996153432751138550920390967655897565334875107985 -5140055633415509862050689677756134057716739901647883241169162784527852235725792016297971735177502489661133426961482215258022336 -8037402896490266221826083726250897311919802495381754225581047474087034884706618427848292889662240224463663278752931604522244404 -7043755425948194930791058610151488175614282166409617670305934153837246327320668633959913213103337798602482509159766659520973014 -8270324793209592396753604357772106280615543278837901728489074421806486555551552367821526140160754356205673704266414947144922428 -1799358966488711764366695558613904123247231097498677269788824167860157320461004934898696811210735916673092405907643647942161633 -2879051334510139198581358891368404052755328890835533066541217913121822938905792625249238474950146832344471977043224365781135389 -4792241156268785166424579695585412116561708898561202729978503519790831983242726846466172154727854320602695467825448826562117055 -6892572380716177090374320438112277052543379149328749706362112028296715205065873069869487739216648881329625482801871208985853567 -6373214964682547847971295488976163394711102004330268920420740567984995588029489900437674583804505907280376076761512694288533949 -5155665472119733684583254908202345934203146938766729952819115305923223221786312083916415057710647121628060022705929366547804604 -4979219068691159117673733260174579718275355270622127824048810725346461586407079827993239800649367405496829848031012026874839047 -5453326819721439241285068650662264327283806902040744362117833297041970217611203752467289267570303110513926750426867300123044678 -0552826491452886926336136137608744868267813981244854176639767832954709406334434073383918878421433694185303125198608436174948723 -8232804838617139276458679276053642834353480357742672915996943482707728711707722990226821986645110256211853787080947091570985448 -4530019597199416503606666321373773776661468897805635174486648284631882284913728030703703554479870389738113486662451982640555230 -7993338222145807140991352100542338400006637591961344296816299971822252698512532704506078851263452743784059409504687946969377470 -7050536882923788373466054136459774772814292349043369279413441771827357318562815124739087054575308713882488227553010491099772197 -6089909596225409017825449105685851204483516303044569069782656841637982677940745207225513250507661349031619934115869792030545534 -5623878938475449105483656355950820776480123283684344289877071474158657289092937164564108821983834915760732145489786160801928029 -4816804046415869731980026155380698391293302660706933603124933543082802974288753245590234004708950597141938648083597306991959548 -6285742091945356496670113754904503990748375484181907762641311090270050878330341468974330973619534202556739616012441626266016429 -9943182264167678058972498083665971330560261159232616995578303066019814909746442924781284268163340228187122534568268386331093065 -7152421562633124939028810156815250340969816324770306713467508016775028986746579511353296216202084745909078793312626258806625843 -1270211232086431110376182218366306020098067244906289836262668331857252429211967620796216066094322098532350592071668917821894836 -3845983140880841145716906938062904326623489852177531923802141898083667738472813358868563811996856141869924840103531518902763682 -6718003149619307421590918630236184183948486678786725981990313301354204177947073223184765980604578217913950986068011309908008603 -0928467335337181093723613708048071495790652643180583079182628211576154222901059273081503840088736880283912228917857747961420216 -2166551801482676965109266503314605693500879290753119500152110927158165273225738493344045059814681043424105403563256277265130147 -5602984870377735940956944951929383106107020907201382858387070933315397423879633043403789726957228735509198228676824257307906832 -4033785332705686886894233935205324983504447579271074658738235607798108047836471901273736322254888901735575902110174004577938609 -3402493343952267342344754443371491773245869528553143427384549726736187617570093360565939837511071410896535571400200988988962479 -0467384270228802505542012448307525976842449031499613137353277852822620338697586513075361354863064717799164245330603052561106892 -8842259346260183856170976867586760896719736933276441816021638614978497367736310097708762890208045248689587229972592272876387473 -3259167318440772369838882122021007960375389506141034220872992638686407702750133638151910546511598120704345383522282582904780462 -5442641858108090041720094339574637116216554948307838544047344475741751117118100567565238848037532377180455225898883679663375089 -9577142779120614628627441392665993338561362305904130927688924256501300629907368310744468665785794738752761659537261334710214003 -8036648554081009787955952496618722107214483438085877494384608581966978660817589075759692849806559360759821555215575625537328994 -6018332837847583031691963477349319171451400074031373390713717042745436212897138228273237021196246257873177739985799453366628180 -2105213797394649680881845019293842601907281739434203168302170068885354441461289080251599722778415734193180238772976142195797481 -8846734820754645249343903444980443492288225807913782286509632765370978666435328327850741457922220028478728899676269184885886857 -6241211337754447826883159708571545245319208827655835686933251362672810423079630739434073408653288828495537708526658804579257936 -6272761641480084516721023070052621557056643754854336674557368573875689625068313256900499409409105292963555938180247719262631692 -3370472297661265053196085477234369632895929368519546792630928565306505801718550038387422423219452220411081683199640562587649457 -3951837878713231474233482132735598466639480024677257398672432796607337555329635538613813318615303256000562507502749357845826125 -4701181391450803850270234592090970559917694412710413114961034587689766035663731463069166460549538653431143701866309605231883521 -5130066101866721176356898240445132440597653755333619647577387320361484004480200635865792415170670027337193740214918631143418262 -0808586953125247209833845490228639118624854066699258124848785165048528440583631961380212929557758370252911013779599196305478822 -5521493745858166529682225371969453760228060851280399420192708176554476472315839318021751905690807649055065100259488774569707365 -6158697507308922777896716663452883986126333631244914987739404979553039259206951208801722656773710392910263349735278566679339104 -5235852402635719195587338866742022182421541295397761869128302452896058848115769056351269147058952464962337808384290518791915445 -1541410356265877277120453080537595028913680044162125110791583969590059857305994592466475393255534238742387386696685456308459612 -0685998205305456113478494375669069867507303172663122574416432766684294168665147860680796606372059541989820238442687325132846277 -1106867923762001975234815885590982053876420748926951108789589029118783643675464846081587064829483161231369554788911064379449191 -5812396650186976221479400172298188629572727898176974211003232401377793666992976058114854815038333629709686365618467427463150786 -1384329026943982531591592399085803625354634016228493888015194258739954993856952956641410330220082208258103940975869674221124275 -0959625394390538490258630101489160874897384983747423071388118372125410613424612801559234232776779480366009970965890340120701045 -2667599636961907870724269931710369308622554291093494631427897956168577372077593727180133140549717498300507170013965255252092132 -1737339475235603869117715688789198413446311276950893765017909814539886259628403094769733766342691082854440546058895772248646612 -9197218961185262852748275379196855788331061390003979168135259363646749693751540875250641291188297420332987544882702271806564544 -5155345846357272505381130365306178806560153732924148036950818502559878423925856638459435711194956693467002588044226649914787035 -0339515088331009475687588955523954567747189933073011102332237830656095392839856108022616789694653613303860633782147528467869258 -0130375935586298049775383191407798098669127243484570035128574481514435908283974501169023065679639597582504503336586846159045241 -7077631278309415202815413204154287337150040264985085284229097360757947744868068694211304208527582045828778373828218901884299318 -9750268301116713110151838109753966293343621088077855224277949045570521139532153236249008822916991091102238861514323117478408697 -7155195645472829181908341253643812659814915997068241585467987778740169901860636348467280424257966646686476472265113081410661304 -3489215851493494198992712587668351276298911212514851702684901497030382245009336388185220072052801963314343348536393431861793824 -7433750102437336219240711853055477575713689475760799540383502439038522399381791672647025184537779822386053913810580122038174879 -3818754166719135070632269620576055650986227950584996452818776818068696309115722467830916362575260788613336625118633863774586835 -2178221238069038687341161131798367556148830622561463128345189400786005116148867892392990638096974925106944221425159061603022670 -5524790379877915422325982255364820388029995625235481186060304010456803568052174332647747736403777805245458180638361448671813038 -2561932270943099179760490101865479784716200934807733561691561384108933097340199742932516818080682737612322848740218966854945307 -9080116601255117121383041648878380955264484146894062161454022932953200141179550531168588724355886537447858132714146647197563370 -5582470235237288151308759910566681678927176948236130886004032182125845977161600117740547183580925791449145036400529238606663420 -7837033717084727015977259234033008100455368360038870286352550514822219714510463917848677542164460976523276256801252857727025894 -7130094419267655355009949375142847444276972876916939298289507233195397404513990497114810662137361054915518609388753530456478940 -5388394232615483120266638817714522427995662494049561316381620397442848359037023023824190702655956805505137789130807808295750670 -7728487145979981298300914926600023112696314252375455071809186812868701327870915067718357028716612327551252066278398582389353164 -7289773656445897637637801900198614044295973498998341687324987147175709042706190580765940871231724558042584698396691392833921161 -8657047381454227627618374146397069336202044856822409754902332810974380485722671719214725867693990943072348305834409116868276317 -2768386266640115552548464265203598491327266098674766891714414339959283543826573869249667218521183972556730897770799418342118136 -8189160219232646049490114563802577964294955901129433201250836705921020927053769046687178122894793267915461627258608458791264898 -0219476902780453916709467789696795567878369111867867605857135264741583700268708214119151342234570678050700247598575853332533925 -1642635008587172832360657829315478456525706956941480551250122576528755981779071461911390584857611720174162647873804473942063599 -4967685799379026281672422049403080588839491839093762962697369896023527084701530700159221622072624944257435732610627292851813751 -2044450251147619884660437582513822729870849508689036347657931033634388064328200140554626737296767003665386040440053850111272335 -9965191238699562685527207327106427173242624391995490667681457409129351701642801367806048618652102824703936861574242876103982267 -8167136500949575593721265813173669081199030452059803613088300447991271804667292549385675921231605005292459008477827396828396980 -6509840801282604124983554742769070687886591529251914833953844029743868619125159895774188014042708540332420119945175514865123729 -3692321786307153306613998657737637076488435978265420180472674598878806315670458550057067811482012301407908299677656750462270208 -3553454561634700149917505664871758279230385607072819176680565522193204640320948453398810380708601224770333475704117532694153974 -9739801831118688634434296635463933483606562392700839399728340475392493400599816097076262424865867680957927823749646379318466788 -8207485786494651396331129651303688013258032982874538569357681541288542572016965208057337584986821728683984473782485195031290559 -8109594698571552972881573904540885927360173123269475341745160895931951290769944326526035760450300948152494775976334153020903866 -1739268973385061826289687149889229189956753685868472054090051279828873221786295847959246538258862203254463138510475016160891729 -6472588945675080220223551738194925153786626106262423384260557370130433634861152559973124770729011313810073811203315002214957767 -6317904094534761856637133735479679945651270156668746266850573869850630241143818143990553888552953747865302101114447970138765661 -6050111904910844217007312990287283030132792651432799525258590083326102644255354794948740529248987597130140253327270495396985608 -7218279207220544832644649289313013019030346375149234023654949206605352146548635130815666273562950986058561700625454917451118233 -4591089295985815819108775507988478501559092837715809067331448086286924500664248339776158516774620654659269297333948779421651033 -0402389695369287676425439165311946884646996933164719659142031175373351707836712648952147263228223229642458870791042562919539663 -1663280408606348818705021370639699925355411336760403455952690546859354756234316710656534265824067538349235703012760994218438928 -7331947252166763395452202287514396143003916184577374680861816449247026988630652041781591100537950521820855164931956884346869156 -0167992341341885278124354492799177573677966259864026035120911925009272011711402759093945175436356249669782240856162554344304896 -4307297970448548637044676901410933338328417297377294558704310254387943692431491233869228400552419559003867252598836554809147959 -0400912691036342469718967629054695345164844205186330491298158594966799688436822836744333087245877645780438275466738783338029984 -1522719795609161172147875781283157496792619720043728981895906145341666050986634594495047649741152246939806507306609930123284981 -2105358148148398274033567712304765375367909977448660123752729616799410712586037852322616433905738649313626209308187391551045434 -8184050603718152729487919051152176341217780682835043432591401578282222377677030156609712538101741280977544353648960619498088312 -9780539921497865045552480951265192490326869876857256607893887668594821322177012473373977135212994227092237257692716960309499930 -8387530951877561556746885813088050059098237284649866946622347108029066952894002584214015925808803683837814966224683534722188788 -0980315065961365338422640630321175434205379462185984915822930473041804521924781482514510231643402826027992447752984590090815631 -8885215984427616592965846360943654237762984211426187791836287528989189066470173789608783423601639354776027707428728361921725733 -1713545761488733797112097100438352878478186093850974631628293903780866218943733017611561596620119895299713346283509695880279900 -7056694123692100328413045552536384469910897094450012862955826233283495356986105417266885152765210669772149818027501922143072697 -5044288331991180937483810266252299436099022518584143328384527105505463981298174129945339074070183868941494344473296478243433481 -4945558387028214187495664309036767910507538072289226775563326183770144119596728765797237537898375774364456608274929793323186859 -2322622760682958787774419794236441627708513520567224931868094563846705540632720743482044172976408519449985880794628778392723979 -7704734167762682724779119792543440260650654515136102295412021984201525761889238911775278953009856036983484297176809989345351898 -7538438504892134535588424111693601136717057553968849287415515571796218046474942306436018172239215803280193264125771352664266396 -7105221455394922182238669063185805229847494225913363125711170315190206996126469146603174629254473614090501455991736786538113046 -8157168667432314271904818365481089200297683424381896431649087725330131885687876217074390326660020019876852812089717929283102567 -5370154297245853419804188360942032243192631168128880436140877705786486797146832449934263947276552080089455965696884234934971523 -8611893045023888017310198960086212752413461499017699656702018998940525757023063840379418108573223175879013713671744193748767015 -1169024393509843272061563781622978325016779395605303924999369153283788827391502842037817134058668089767959752756676201396896441 -7712715405049463369575317556974267677998279848759269048895603544096481338768211601218741510541248300317436674252540127015114391 -4834430831243295519098671812863396000922057166207709070811235493720931115916983299692520931163380069504267039634742271991229413 -9287385557045725218161176454965763264083042136444478713449129334549410452033352200798030615759042237027156709457224173930955024 -9440754327156472541302944326043902553561785824204549770748860453197398189036670911169331773914895138408417009555757899645501252 -5832453847611197719596117303718224745254716796559500451686231076822545459079358621425609803998655831572289152307921157534370594 -6716617297863540993457906819123068181321563782640587142663699479729095230755403564453694626863314955875318305864016967285927449 -6751752585208130882471772146338918033811645841373896388668212294917320582400645793013617832138799866544853495551795042553770974 -7292062075462511235154219336433250111030971448383048960076039173673865773457243289124490997622252180509835724029497464904686356 -1703189532838988444479300672213603786659157307392869303094005510273480520540799882625565441527626460538592793551679614793917597 -5131469474921792991086626550504407821816558283404370799177646663722782715758886649389166252871185413421418269585717891891693033 -7009640276492618793739187876608008054508113875022453329081433650929497189681068056166559133270910556458288747450052550799593778 -3775026817449250262071158797005661647517869545017156045641434181332078515755353689003930497030264487465467676524742489128433074 -9510101337115987091584562788637829217924129844325702143952753831115106454935897717213086048464400730491846668741988349250815009 -0460642398157894924642248578767274436367563791950971068099635643161955689433389352445513881354534070645863359289997626236597102 -7422701275758347504612869999447090197900987293675125648746188541872170309069628366658720207642452150511782301406643296921604925 -5722148742542704368310731836532013521833785510008023772247459847917061172721772791747731176316362682231389997934194900072780568 -6833294401022288062004523032063979096666714062815023108654665205678873446818506366372748896978903704125253114795333767006805633 -0409503844899480726742485372066289542014116663615248040053134473634302073503009858583019797024883588714394669118201212140331049 -0801167094699960082079962007695468661043658656967418331551197267388919434693010620339366679098731235659707521841235334772751876 -6325143950028159251006278830542343903327924750282184108026273734472327418765244935721260982532015689685569244807990908472766627 -7594072557268049752783928609937336033485545218183637235406635759394992632389014311377829965838907592318760198667367240484412343 -5995370105199099659966025879437447340499996959986818273399469349454086733538293008250823125200112169460372394345464200255398128 -0278006855752348475839798168839058164956107248521078548181749550904031782397298429598863198195066959241173235250539525076363890 -2434406818995447305231609382502170967538696884871023912846712870860599713914006479152902091530717543673744437190057705732209450 -2049303158709878586595288112356673888760379702189055053773161541139894881284696826212357934526729889089168985110486922861784281 -1480496657855804936389615128385812000095228481966854328817796490269872553734151219601055960998715934877799282526137718284428232 -8638224569717329657108787802886111345753795000064618991042853502960039658407299390014418474102137277340588865538873397922966731 -2915504391345921079597753766165614369426311302871553494239227907927104755401277811135239511652090480469130728548314080193845714 -4662543498990058418814498281187250236958894998429926084397929019382124044722273292092351973221932689481754974738766719140738353 -4190409245555651289372817877351684664080842342410487693494611165285252514427042631380484145603968868053004939443493512729765220 -0119636369629430093021488300230179969441757666478935315483114992540843688913867607317956666306088259979412209337113112892142162 -0522344915049743379719646407210766405374162220565183535557053495876729008927029380341012939110046953015244548503515867668213581 -5545277258914067549098676802369675716209629211229823278440028400844384130766676038181293025311537464968008032689589725571813893 -7241917831784954432887951874113610869422570389407469506150472467208362227227524708480496950010505902724279188045395824562149045 -4536217193131427845613009167815485956442321803951137596941709381463070724725318338865720453796245623311051568325407640234609643 -4950000863730017668562367944404823933355943718044346155630933481082791520987136962663882167172001786426520967022022083855046918 -9948462347102121864710644896101448735320408682918327475914042821856145185407258575043429392954988610306816855047216892742882375 -7607463192368539597117886391111127498537601742711656094819081284338644518509840706151881140781291037342960935079170415736099697 -8170547034180787962131392617751093115453333934584190242119875787080041916215989194964046994229463391170868877473670939015394600 -4967067863801616048208692428984726982425267929231942089387972467090049190181520316912402532109719978404281158192349591335918000 -0182827511598856652325488782019351042712700704721955971553105284410000877214479216605042256842199795133210940783113951447780445 -2845448586343352856456977029480170139895515001400772533947791028664521178270989590999530566461508232129548565121491303912378773 -3186958087525040737796735368369363073980409705399259078085185801788329795473492605756831924612159181775569516279264645527914405 -3736227582287369825938099577236266512057139246043733096797986415476742434871074557767615701953628932757311718425644125724233706 -7173052386737821682078985950554267597062731307233678638341260916391599502956775154905191238402444341035490900454688563799626952 -5147641961470238255748645042116320141678230506441721302812017771332190399762353180889095100320685446894708468194573746305094928 -3469096230652662675602711465325424276546888133056279141284661309882996606616677713056958440903862720614419241163546636652676601 -4000176045790898594283018168562878609386243501149259496688481941480198035420169390431588952838073985685288362095448469635565752 -9472291341301030094187025146867336563674988987757598438413852630025766068250538948297399599973328446303590662904124689712678759 -5558918453683884045568116648619640982031099812596210893142179251292478971547413993326289821580230193948481450670535256195029562 -4928975689440726890177460501590676962108712941853309133182477027909307432937071388936253714931106477057738446899643424898539007 -8940244387920877438974129853648880036120882337129881652544245505645048735775452951748876363983239868801033134946650378020657016 -3701058033103724656733182793045707161803086804756890720227008032425755334349001190669627279911430274518624636020186433616060892 -5795048614649402340472644254299779685615196268626556186825992241948964494636129874107575230767378691185971658847979564205979820 -1236133846548113964258787812605512858795064801453710507748252434757524711761598464790831987938492943750974650361247007836117825 -8985069765244610015917016588371467517920803422724008738355002305222843175513547415525425623310272808519127269635589538855868669 -4866637881580384758530553032050127301271010383021829168699459836736308865544704254424297016793922754172114529453114659796809124 -3421197137282279783180092595776656118340512425979400729754872785822827951114365899638513626864234673281733350488813180030409671 -6116540261589173059806435182727298140303534088364505375974117730218290182662177594123794279119735348291936701406861588485281875 -0383388028538445842643371054045990749985217056001543711456417105050188186522673179186319252532355654228417953034579705914850138 -3589398737652268493665223622209314271095213796466114005222254738357264490629049957974234088293478306962011737255628545244120278 -9242006644961491221804556688452952473719954034253935879343918188942010496090705258446852742963029458182305909452754390287793730 -8783068031607497439341603800503578168008017096526972920750091440007773022446775696934539156855822636256531074692478856955931965 -8800823547223548709312492609422799167744315137636030763502283934241170303284109496261288800964950861563894408561284405190045969 -0236871653896771373931349637525093015261721424149322538581449425146949187109336492808412768678305259961228548229258526615055933 -6808296006076261647807027264924130647898638203490518417736498838185026931804266322409312178542687977048973852811639981510309567 -6711783212313531503601350937924384067635440627869411288664439772524317458074685185346606914709019186196743715338064452022403271 -1329461726620692353133812940387503225279782302791789101276394351197294472993751698133198738485236134603208512597461992464092534 -7712409812790062450698418919781788475967301395142101015147156004348821394973951402124816517835984222889123201533407163528809483 -8878866193884252627688867520926767781102452754391877549372235240772045942305940402248699505448319900090404392151869967674502128 -2483008370299951549301955588790277512316664972307031593695383033586616221934522732614016251454351893271188672805879216575868904 -8930668992950485150931537517355790279447532793020359504907584544928499659083716918240980733762266979363328381222043500384239731 -5449783313063957701679502215046202754515996947849788011011244404372242125949053935941173427778943061308870747330558976279745268 -0087442866677315281344307628368254568290685263159851300491709072441620656219856549470063530059686910247545618397733080267966459 -4275923776467144475919672663054261638444876359385278313589184049205522647886045588220547740175271213225571694335593813888699266 -5631076970562565479284442184748121529273149320713280238168313146627141356684124916604998541431548094125068927278902251637629771 -4049873854233479495273404123122985718709224211298472591495302249456292201698069758048348513785824572699432884088465158829077277 -6601450724720706904135791943277181797939378581152182984849501639363583354753791712537234399122836156611327530479415218232099189 -5823047280117680731777259023254262177630139266484401163220777646941723211983561493087099972956890435877152661438838138706007958 -3871525096685339470645850417153350859644241363604522957863652066029739101996436761253594694922069548250943637910124220796682359 -3789021225120290908842849945791566951268040039302726617891236371450848884685584694857899475642048623621033883942963333740640913 -3413392907322042998743788130668642581010260731658079311951196515199970920919298587850590756579979416052745401954692899254629962 -1834576186290812892686277778078188491493029363265052305832102758282145333131211542287672262899869561233857209736661910966320185 -8640618069436548861856298762841794920426604496493168277782652390652529026370866518863711574378563335650089395301480857411365309 -1062855694706861343683613721473054277513151272875708166067829305351279095564881057460121748427296483260938003342506900294399166 -6708351271129793412643921214770696882147428525507519544681246954889801321262715754608536636546303081680171501901796848282715773 -8170065360748835664225539865399039511547738151434626699419911223518847738407528346693417347838281049824633463358386526323379557 -9773283803239608948889044323843524447778250704201869489766199362127854167469574262448141201863158740882252497005327174568985690 -9629170341829493159540502281159419978757497174339132063688621315745991750554750919122418499757801567167615195540686775308036772 -6813737486648360157997154949184994770910737848857708594705159108226498818076724620595499835896899658135344576077658527954169440 -4916163367448740109143119472115171909713176429892100499193749017654102572161123098799425438195950481418848253249246794538567213 -1943648585194380435794184207380836831419456414164714608475465257187830071751668999365832434059345210749956754565801799757863175 -3687162724713568040156043932976576841434569787909011626375244300886516755159434297033774573216110685196819615175124148320455479 -3344419757198679638351706919063941845054040199124828713172593196435249592482470220242606177271518431150127043364815791934444495 -1400008065520008098162065199768125759577818782918099045365313282741980846275621548204708560469294053250492025107214712766610441 -4165080021198705915210786508550601653226551217888163799551833017968067846988341804528031533804959471453060256667445828562593413 -0316539921143167379344751397929218943090424282667061717675506492829683232765044382831375540458280475310930354270466628024378573 -4617204749069035253813713597661824629929473681227979210717594546338035842018470292109616982725985026372103084242143325201934501 -7628437040946835252535863570081482725836702391432238382009021257963849956941583278276159017021059243802411805222128391491555532 -7118276592277047948538579672067937116293934455417400255981648387252807293008272125197089405857447395662820745517911550198420495 -4817641036360381588057889324736649206689772293316553388319983835732003282890192751493367420760022776216834345866178180918425947 -4046762929816361002114402224273088310438847474234192226897299571581711857975564268312621600137920668387355607049886008638057179 -9349209580226030857313156556379575691164723527464611358492523658913876021766102463374095835678962118324213355237312840525047153 -4458386832215216090846608267034928117933000209670619365236847239547649406543272314067052926849866069213065858041288568227157782 -0323889725674406704675299432615839196837602006707700866051572397447613281818928460518366859474985370527579091269025122957262918 -8693066533952054034279975214015256982660363796184125831239795876267900616583623647519579472331003311428117914837252346650454796 -6978896914173575690746678387000060698232734806725458177123404206650082946025871125219582890983005045333389163168584620102734094 -0208343185195645077429621338459120990032615146936965171481121547620265509203707449471143882951101626839387108073423291107985197 -3806694565547588080124701297594558579857621291153844744163973871845300036486064506978169189349641947450555475680771354116721127 -7571370673293744335868791633492268450482890329783462471218711903016708619390949407758233183647172103050542587791975330523548939 -6895867004702083992837053115350359081392183348123057432804437516085126480426796559419343457573809103554769814374422319272987621 -0493741336702343083547043049060106406621621423866156744878463280624931631638757753907480473151395705318815364246326098575320029 -6546610394497897246218305493409122075422636049647756434404729742804710870898441487104017723846320578576625101570540009682146545 -1011863982645118776769923031005075048502898177517353081584252680645039932448249490068383719149012492191034530578466311073324350 -0940022141946663679361628444591959010381878575634668757912852707910261260983582304441366347012174417975464831931140858093450475 -0648068206853955526969735294213923796512233785864528730934169006767896899020079186828212231303729771906306615698951701782896040 -7705404267837637281673906483600597132329707232579985805240515664780686649377686946124141035632716982723408330472426681691722063 -5719449931034079305356439666263973565128713593058013796099786122163872295053911196817120195135137786906005302955333296169099953 -1565007759742421563846584208111412785562612780177121771600395311757381072903942514964351796547320888609281738762831301074727155 -4840914538717807330571774867536594427640229999158918266573255879619306849868398528582717693006558964074770743956975947230605506 -8434170706163547151705112191666162854461320116071520338539133193324696905732424568076770881016026396766250345270611437134977029 -7078829392513262023910437193357139649522860536333445198136202621793588265321546711781743395796073320028953300954811115494631443 -0358109781392845465184944557313417160881340633391419971812545527651450314512749202620144080637491419201752326439158460989691315 -6502021443239860929638929077452949976769441697009577432157105021271893283919677666379901876413440307841861569738215346309784385 -3775582600443257869423701993595504734055924868316007937741523410145241997102735147790121190918364977637486443176097526249923371 -4637116062887697972788560169232687166734847960365006931173635513798426534363094553967229788862861423059133919581108100325100963 -7530945856385218994386045042760138610248296085030904585153248074916348965900743636913197206787899808540051760130445456596005975 -0082651589864980975976353455996961471089119847766125021188045871260940417581575204228376995886410553255809049908515562710519369 -1760176651046607404619158827695196639809040360410321347276093208667279377323033464221881041272072298115933348047136279306992189 -4449900653089574942697877619922022124081013931968320543380925350254859461377805018823478776678186127822712476112142520129506611 -5360537273314488942383696459647239094488670283840872805432523968819547360255856276619301822761467290415157270983258323381158842 -4069470180647648022724489031315390330623675246416531426538288357194889582860078070141817901349890459635960185352818352346101741 -7844251807909360860529020528005655952345376045413861757127236316061244993838373872852044455049706576181912407467785016013363013 -9052782242469623627138305243693885375972159761715793565717369599576257075617300500868041008633881912456191819467065232604757474 -6257367548773919654525538912712606831341580701967173140576682703453195979358288347264315572356542410824096892368844905848969800 -0225531033632269859821449136659749178099595609866207288912288428688139123199517309089785003185562015618879502978274246919977195 -3412420395378666741269488926730591786905587902546167052955793049551854045851796515140844301739953615780488764468845360750173095 -5314569125098157310473890637519564038989130593324658307078574903372187794019987998391252363359372204089006276213106238012887639 -6663953749875926737127213800088216077686383881272422931892106536521390323291590624983492836817664288184016273391511477345251544 -8638673096407867791116469531963581105938614830552680798696429006418115851082700139624263097469936097502648484256024821946642846 -3261638416472717635495620507090713763983290274773473746283045337514051847664087913092670813304318998742601034170158553214610079 -8880759198069479182867513797991706527425937623927208476182273090404608783390855357409578977746370113730628533384722500327769010 -7964841863629197861004282115308229708980836184692237168958174288698996726561927516939282475998327300490824455643829853959878546 -4078550144875137620442196894251820235783690433882002285566789090860837373159507997956136455505729693351610325429624900264497493 -6050282912476085926950954499140111563620447106769829012752567207785593165136710295523078591701424407957863045561973215300362256 -7166661176552788865443610475451627720514979209097163741564119254519710530732032781304320231265321064373366029789454524964576034 -5731838949398822830420671258681703806386818639376155723888774861742977966282701086517327314375297715355669245126118723701881276 -1224558805186365369295742263213010659311742471260411491616914473284160243356280450620150570408750609913288411042993040473195864 -3965363040687291139829734658431286318462224708522925124414942719604612215357576250193871596416258769483377169469309016314582237 -6893425774786606424591335564336597467021697313261577560777519605605111465025332099784940659090512446671447989183060023172745349 -4463023117754025492704298169088346276715292811942385607520313996627188228077675005968319409041724080200894220147117291796736469 -2838367610734769148543248796176416656292040941138404572575878998139182976355595776291061040689581132913463002164503763638521768 -3585007037968899533646050958305472231296473689572926896126127396786068936357337467731293075452760614111507010520769025993887156 -3025256134722351463444782906552873128386686368275305328178049328442606382059696387241124580313700815579068965097895955058791706 -4888785355196252887855666442682481926655016587897905441501499624695729356509071382797002137717002280304447105900656692938689937 -7373767636755443505506466024295128010399690845976961083809222125377563226037530095320414396885247587842781981216438439176626761 -1467040097296217610154727986310524824930119662672041177376733844872215017687323322767179584613934704188382812120901100084067248 -0055261010703792927114582278798343530536332871891286962151403775103518820096790537756954678439988840466572934380472009105374277 -8745186553258777370952969850546252235196298235316976663904366268611878480055244838332857644576178557847556193922108941720480963 -7310291886872239579954842039199219595404202222951474277713284211951970030467647252785199038918806323250107496561396165925992981 -0269739665100112200470147709926216131752562563116766321854129961314938822821859829783043904077776487245854331065090150597583869 -6022034598022521394602277250974332652859372516801989113143038045232940829875622476147452690929605127893923207935810728978176813 -8336719184987758081413476270877983896287998313373933528191759149653154025750363065606417948489184358633308380877845477894994394 -2211461131853873156810302948765499385999974459433061226146423964769287619911252503115962272972255899290410107199334224556606196 -1402532784763926313823670409002705225482185592078872442217786835593632982577282903273472588503956076522785281354947952227775013 -4429564170373891691353053299293858952840011672714332817264920331107567378250030393312486800497701640449816183190591793478209061 -6696515680454660415306312055092012435204898424655900246268144415272389485588150485707845045690614308427142660270754614963190500 -2858971388307084324374434247865554208042477256400063151868591675576690659860039137955754547923321131572573666015058716528677560 -8082431519645786853787074095747644469767343409908775777981556502295146873300678603062293673505033125364497124824045616025095406 -7796338540952910648733467788030865929612271961440794230689497348772551503718356824778119200166125356293580937006896521596909494 -6623286777262305838866280436574493459341503722464731387299068764367690003490556552997864648359791608273875942027789979081747901 -2820762823681177751588883983434913077317012385982082727245344446265775140411273692313089468167013918322825570599659499017461253 -8261747834117161824733335000918969440857899686470868022119901936951959497914248555296472517607486195543086996762943719289544222 -9801799673583374329577712601117604429044210658931033348348701101269055569381455391166077387776701104476767458640618577366620088 -4812671524372167827325442166901095131227009588677251478248615586184246419258110774327904940522040756539440861199193515869861850 -8664636186261176234317788607818904273283245654628256017166703040583397980518196864696741148650137946657712844496351414683354360 -9233785042626900594870398424394786589093845861107111076865742457098507103631392813148996022790966610376381301013746723765671101 -5599585345939628248728616861490756773613146232759270658252490655694524473642364799716984131253156192355158951050342077829511934 -1018115413367504225955575347257464735373797464835594482025360169817251469418319729479090655145106287600720398462808509722342523 -6277929810316831402715379663360019513470321307271888286707156176722601290897267704973159272389968049881611196311224142002818283 -3935507653397356468132051961271044279593473480413318195705016813924079917284710536189206698836513833423232062305170527285530270 -5930541214728728710514258849354991541204981028873011695299038161284051747700208580498162480391834623057628739847088944321070540 -2131178112490366896971016249779880442716420462976316622931349965957507940779710818286842266030393060843328131735676772739856028 -5339433698747921036431228649318038784378241814872129036313002907877189828316605458939009159662654429547906907634851960924867766 -2725144295031618884966653121214453016640389429569724950019640175004023672074204183536974715285043574870846234625695507751624691 -1101023040899658835128880208200979236233784480432079242348382094125974376887755928733596001730428491870299057160651502141598807 -7529805201863368482438225714843876867695794742159176187308623091428831090441762886002331398279108448588579520003248961018841987 -8520639531359520492110038481387012497220545183327686786319255787574425654228049283708164761318908288816634942299623177967850311 -6808287068903794688768313922352685578188040716704660250946776133077382541811421559714303292759615754217647905753791800896114429 -5661937959933192849164004778980526700005624355990312125795014118394734147334017327033918908976463421944496702296931260093163478 -6866390898079223822127023182717821447021210719486206672090868302561371850042810557962915762631762160188811564644765871940463260 -1983784957124576912722518060888269293020694751991232003856484645400501387457614453894654158242083061986108255912461168024044362 -5023757063288290577909452112558045920010016969071712896564748738667312129264760935144195712725562634643903560619975222875598092 -0140266427651227095088902077296483470532188392053269670883135265668245606745264278532552540957167938303029227319042084398428852 -7212818706985477890259174108784143029357600406814727037979412733984989889987109358055090912357026404921211609781959966663957665 -3885309358663398776897062600124335478996053317484403001725157655044282776168453835403175508740651996708988152698983678588345737 -3549561496006579864153172902480324325137781423364931522958523431287424861594425297230970169266435951937028485126756644018421959 -2100522734881499893473520957404272588614489603694208305341205355969403603944823313607027770883562580199458807047182736184431355 -3558566826776678787162145637003470985297896846344237649664211727912542844807936273529611661291547660198761650362176216275159276 -1697273051970401823436818435327916444246809126780823246257873146180484087471375537086616586114897794676638646530157453530809297 -1877141731822379123458355749374949833686834219493808460922026220049948042459289931477172440353720942293259692771867444391010663 -0596114677690135744062023310258035439858771664427542203238516588128327906442218908975480077474481540939986337760369812161668739 -7140350695399428116941903267710113882542083290951701275369344655927910523637037185426739245384522097331905044898640671070017500 -7453482207139204385313210256702640687353020750058344407280878423180101848431141829884177527114462939147014281506261604724365378 -5747051408867537658614820169384534962462911220360124367460201651929905485919878430356918185750947336103425001412723806012420037 -7672418158298677361496394053891368709542765466425399242228084774006250993472472890952527381058062695609973430135097018848485375 -2721910797057123953879416244095325096151158592383520642643416351496904866623597785985406941433201519864328401275343395705908857 -0642983563496035432630122777955167888076028823131047975325063367604577001605053104073667764503079932854743114362110563627584697 -1737450520589955785122525243234607141022634008326290553045379074437558301788691892914015378729774742647378096844792864200227145 -8049477947243449894011256046326611511617306926576503154750985615770186729781372043096871431456514521234719945343529143211616132 -4060930164560164022219102032312173710730634459253495956116881900466752536260684001258460015562183214690371015163609148581576715 -4339672054138260157605312889148304084301210593319661500758836115820325521753635857005220500312010112221791048318710925629489360 -9098118884517110952549620567550824645268745886275953112452963794466205654973301959016969502644339312155829940467386423970146851 -2030422710629305679756784568188030405053813130034967510951876362126306529129246017456183221963883892572064857246348841309902207 -4014325197777088687588337561652558142332091500654763031260105487352116429628561906919380099545877339112314250562226830515084041 -3366554959465306038343578751837494403196208574534790117389855546409717054044483042532146409499847066640874035730246190276785027 -7784874865116514506998867941821004659533959527747303526874272093224628939120659783314979799979608075209344316698881835617720838 -6440603777916554902557821762272317634207749152011454338456295029524399535728380230269435936275288518444494136138485427687743672 -3697767429372731488197371169546304182440802429138205900920907076873491237616407487249087243231746614255961699354564621444166710 -1737116215657118949418096366707426664676852506304031637797388892083081543972250240515279155087924413491083737598642466601038186 -5943501997584026886556269657780895221836455524956899348998644491412008841758015117023754182242908647650511196372757530427844200 -7126098691386230123347928604422159107062602585844839531380975985325229120484080904014468470157441597070403077589128617082084491 -0277414078111008949169676840880976444791578133697866086476338429943906280786246925904505101785927908752510981120731146336711732 -5011921703942318242688882518650473013576715256957336272842712546671709676486379489552317943731327342059730625728957322661925103 -0879272542563908841343149899911945430473689164183260890378649854294324088836226655479509126988786763035689227450447066454969580 -3635797692910230406460094517526461454920959082159212413377990917407487877377494660930246389887432321322711771671714018210018244 -5496909568572645176488382324921312621177838539677336553279411765862833091060541060811106495286938550448561214644311877956532326 -1372848285800862888898722477263959718622329488994306400315469392140836614515990231729283982778367781183582185203884353672168533 -6002585963544294141850925971586001726265376264686412361898087738304610666926697454083310088708743790359728974336913706461189057 -9544994601782264143680659072037087516325897282651078850550946582804440990613134903404213391711941451230258293606634693846961977 -4294296739368718314807261871407488388139897913896057193551518458028526780686105950168593279489650803151515173510050942218207014 -4440222769538547178501749374936219442687195706297985586916321673062155148432380676822216859833618467359812508595764374585042802 -7090291929148830504311787542972555491835675686001439326827409601590115100758667523079283454747571560861565934370463671494879471 -6306207613636744929606340131323412825985507087453258431275338612289333774848983021189785244607159387364635876091430264215902551 -6978625947059991073203270373760209952614062079324674488242868605448441131389947105750784088354616643566884781392969415722350013 -6876895254868693830649346298281314621651851243964761424180528331393082774872122268180557991527876049313013835528942921722633863 -7994555257251266617368145187318488777925218911343096210380569645729516845387191015748935661281511118325824054860678678241487526 -0561712487759666786219959935849355827031795611802441457990195006279656115907452353501575006228849649556626967066612451740817401 -3065700444272921097020103095032561392189274167240364636985217260309148382438375007728649942200430100798750588348282135626863041 -6418290958339960432209597429802884987767056126860829761197583897408153172039938420304452769552704862796110442336483929988890230 -8411149220304441269312528476234638082926201849344380193272700895522547783655344727512614476846755120115181365390739989354909216 -0361827006206843386504436443633849307138803846456656207910374387223474485947474439419270873842802147250905121223284959187002960 -4561901942869500550331725452244098638243866570298342595884556094097612128702524209824571526031229091793929079092201659156014426 -2569784663225002575851412395224946857021846888745089626571792624047307039913201999491767773809090290291368272189546699726924662 -6874345054057523806453164208085928558404937408086499251394158950058605789150302667994062909598865360566447853006716951800116507 -1806892347177795837940597487685027448543886249836281858785204813002880073746279096873385938335081449362375954555853598273582800 -7280197984136582079744511307894765629896405494228558457447110951049222331477610433641974978714281803792968381573777298819652746 -1797088044067027854938520030542484156979879022746379761147066454374087806486473993175758842146367406488679492927645706548068169 -7653106688789014002295870215309142445613718219291306854675259348422471093504331308963443794325054200760084750801107789128152322 -9003923022817082834921721240788410357242843286036977355497738812382673303415071169601837346379966066053060156517838544048108090 -8927903196351477482460887787174517966173931425526452434853205934174795153124436599267973662874006233354646357728472499860554504 -3649137050137288600334652169002894564926317935052375328874723351133720379648102007752831671041946276927861278960706248758820299 -7881676548153486303936365019720006418330263108526672450012829414081940012783530554845066547004930367871816825750941800388750747 -5617499751970255706526710234532717339068075364068621300856559435412791685014748892438638038434662792832126729610856601828058978 -3609505162338640897172019393757051075698357002384746777463891780931828353562474692966266497051217520058712600221078906316845512 -4218942164849049619324701770389240864171286359070468568203895572380950389773235867347931266228357895243861158024586703415416725 -3286877811857113758575603255834974713137243819997694752214133530728139390482439967896436662426005413536915227299430206070281748 -2197090522718698504657769582076344098155286933671656794750871593655253531647336100969432683359373204499872727545324036411875127 -9266329520011965890398156813860326403682885444460637962832683571266360623432333340007962893574859386016733773045469648300215724 -9360218780816808197711206028145267393233058010562551036732947883280144516446467977991400621686114194941533328336858706301853920 -7975466727102526807928730597288066888928449183473417942716701022737828267407136547666947638756923213101355014521544864295487342 -5529807372773853881156331115996145600478892095295063408262502214227819442322854320893250029815358897498644974831455098851752144 -5217677466571168103885153319146030362086428120742099054171064034691470505077333070394007756131235288630142015715989289401952345 -3238751872112411965525172279795754140090657968922574492232135102357083597107656178253770512768121887161690539858563177051498031 -0621143235328817027584926551312004300826256116914067938452329926333908173348351478521275486940271058902772821984682443421901374 -8675029994765542582556780936437230200725353322681947577235834861538086815882331325782379515826004655685444830286018743065534290 -9009226484124905023296329465126310425464799999137557622919308471018246198151834136297559364600044830857980861753679005100073906 -4026810600660421971978121050945152770853655639964897333811108395111596792046176724058242259398267547036042717629901672105588823 -1701174760060091817941457573061071686086097383906657079983926029247083644956175901708832562604741667581501354921250883246878076 -9360121868675405580012858168094642670756925814930958722345840360155035939830719501362830202256115680429221284715437831407183230 -7627384360887381611002122676157337577850291681707758128451482725333215128574377639863228270429176470896652784523071172226399208 -5924717495388805188609979501739528551778957144375491268555383034743525334962407264117945701829683575948250702090310348063964292 -7285038571762987494406954123411340680613165769286304746181220668099890216085869650378284432589286853709759806525223094629118994 -9108371459503424585162428035918267612861106220506440110173672498423384456764491877643881942033565719022603374698498258614890281 -2119544835856779238923121210216240209691871364625727861760840643200609817224777039142791222829730821468075117365482012776292615 -0287625006985324113383256843550124431381565006783532108722669073077586017057966762263289920449445173729525567088605286164318499 -3802234646726929017573814267132203009806257343348973659561216577528599490870752429375293883854127262090614163544620710283467000 -7574267833171812189998339587827378487203820258567218738257171370030553714438406356225807045913475052445364294909346459733645424 -7057209974818106332836072380332490777736818456915022774135091028181738711236811811377666386715288877847647340595585098875240481 -9197215476954479756497624010576859326493604058234153493216522641384431342823687635555610194191608220091909666730522341780147856 -1119537820044774998504706322100346395055393450296026673688711639572331613882591716507869222690391102545737433635859812821586270 -2028121903848368987212538442391618102128444213522329584551212886903253244685970973210284229639689302832127513289597893485709871 -1139101840913818162477340055623563542434178020287614160741421605723686784042526943742745792272929328869556547712709877327596063 -9107408768006237961652791681788083610784715577214377191666576416371990600318918309907846332307177843177765073709224406749447169 -6733725726008450978073741092474719053157935773438091672305982444490248804288080650618594239161482780330596854243463318510550141 -4618707611170337857871421415147893285747404164961249246066409955331826510336908541776726066361511390478520619795261534651528646 -0029871423726184455790317017373341560382122160829511677232857909382425970016570928985722750518023888742942482674353399294113016 -5851677764630543407742209257890179166834894877003624901201481696534056706522332095998210032002750686323425734736641298781343895 -9906317458124808949504199178481097664951999312281141056844360268819241235749855328929404804574246937697891911753442746410513511 -0301178939436270473741478421267690206733306236983147974561800903978683929049444127508643906957999471564453966363638317098479091 -5695590670680910148994003236516725327853434675592633044599651978504490768012904279502213144296250305384458215615813612885360699 -1739488113025246606429350291878905105006718514335177675021282668693092738324431010591942084632165356255063331639570681777622822 -0452464599884896996261376953519588463160916217402746423924422154683861260191652961898971705302933158251417160490178433853439776 -4496351983750730650624656965901956261109512227868877661440793378743454026849129576683511149685514643006637302234104714172349199 -0650873766138283576167959756442091757660353703079228843249388294567585567331488037468607523624545996431350612623181744202876623 -9217884841612782253645748182653936757610046223059439143748083525756745987386187135434504743166765496977544377259895573270803669 -5233343431863155649799928568730055354198316775389815272387174921789883067246402571006054994197016258947251698092729387460016002 -6222471188835586754619063338314127078684770466144889169048987130424673328124774962008878054843463980934491177848530073946295466 -6092983987521059016788973113331515120050882840886284842856803861355854867424082016223127983920367739842939341557083529339357539 -9152847423135593002663232861455632334026991039822394086654099188131348343461957860123922177650787602787823148319677335222779269 -0688837540315420699495154888659745629289164825587079409113672585691726485783954257060693018031835646491154074592682796993759642 -1560331745546205131052821650865965767504353088368099838110467887791087910699782310016063819056506494246788726522788847044002972 -9843063757395851013539217226262322774482770252168515327930783086524549572291277963238718919614771432829552926078930464389873382 -5165503350814374626462147517304790280393184056104578516266158383058163824599464967401146483647756651293496532192439439145458877 -3334882919381143165661074051363092147447735703148534066554968559573383084492917940343234309775642206678952812922080261015609561 -4150090892422827778476783958648862075260361082863595155851728025658354185826522324370827070485157038772970922137249416500335139 -2270729610239360993359408455484013545432335012129825782822705159183112780581412024925958595707332590452541348227573704213342055 -8812698543571227460191878467610741003808872140196791243938096775905061169632652370417102797369863591037024610630210903737953654 -4650850571724314687005845773201562588529522607481288290365062000530992710204626283641702861862037299641210309359904939817933700 -1541143632255817063903213640253364698002930217355939377060114361273809860644552941254027110592936933650281526566113066201345129 -4904443218069061051090074486584977672087200091073688866301081198367118241651115030647481869824608967401802054144740280994709964 -6714819600988123781424031251846423957142678675252652218273564424036686308763026328451858255344930462603371376203101104448466961 -9509079835837547622180222314290215064732353288206452347849664411672496172109171750484558066698591320017336090478613367662057930 -4411722606999341112288605914814611482715323396030160357274723566603030739104369997016486251468461541345322418772128759607222696 -2948183785699572384084816055776039138878581148811752092336317365102276231176457487558011884744609026187961229782054619496985034 -6425095624545385534119498681567553265889108179726785664829530547971892685921754372850536788921833807429343926950424016846919855 -3908326069100657803588698889883675042505627231337237747168653314558267673583632726264839565017058848634863075879312565153073799 -0321367266050720934662774520376532661682212427124263069420126600109509081952403933716651001460064949865799766176759028464538738 -9741038058065551330442704073919666652946527397570055939551345839830820648016177629571594906346803356773604688620184511211636838 -5025402557710775296650014515224591309232698067998266520271098024189399721692010614452489061642157793190304607388980065831660161 -3865371756663396962706440110406172511579502225888432146828231479035598172810500698253040173626514931478221885791112009689705108 -2972286823839979161832311952971045738890113686974537517223372452946515286365656547601871718080007574659696313592727664057554794 -3671238913457833340723922452738592109309375009714705044237276003225833183922594035143870946960395880735557105535062577056078657 -5639824224660978396027300014663032753936090244783494976851962014859592152013834741021570506331633866559318037963618148063022083 -9565507482964988994686034476299289689477300610763650942914931588839058915298408270882723496065586551944274748829842524532900569 -2950174215698554483745941905548644387438215825109435969023495189379067472134512077000118600012988374494816155364721054534508820 -9518525904194943790633186346738672276318778362232864095452323156494968062204689793145701834333799109246633884847638921045253621 -6777489268860937675801194897856962853781999286279373198884776447439334574892992495036091872659389999472183722596570197112840487 -6940178173947556103657708676822035069381549630078448878860057242455764188710473335746627500154960475546070307022636234086868814 -9329686102999304427635999138246997518586345169303923543680994865014159368545564362656579126189568984209672180187596509411904289 -8400290546843033015441275084455799605870040808860666105081155326036596425585507607789010815662662324838353003534213828215099749 -6262731155067666934829202231823905666280056341904107277513506385716411353609764416145090669300953084810469016331307248958077392 -0982572667217714967858091868055542854621721843072461742877828288780619596753823464439165581485796328231801786913442847252641526 -4848655976411335420584575046674979122655105315200347515565901735274063028061587092460808297171218521824980966675211293241764354 -2938658446761945214970070404972488238286005305727629688975307477962234711112158327154676636619409638849544823620779316735831746 -9233723105727772276287999774922758635916582468201648663126732610340191585232715185516172590941978497752196971596838962424314214 -0715690795433694724565717518703035300373548926507910938888351542625042732566820561320308097626791527666632661894798286702091403 -4964320219506572216963601199129841376254539941692757336784083929771858734782219556315822673159169808692321828354292775097642159 -0335559611733921504268377474272853207366325430567729920137620204884173222566965027114331948190426982554186105784631841860371363 -8033508558384267940900957170710292773682470738089554833769290979485707252598489360936633550982291403202103393568639544279214517 -9104033203529399347159766145704434677301867369574628242547881760927798205454869510642633732888078982477565192220841911379788216 -7987660031763621257245807669247102344394837687835695594169011679441270384265326170270019240149525684618010449694008041756350062 -8151902440733357075969965129856431003770185569733670086864031515027203169324745948550070082363039150127359144961399154724592013 -3790327961179853157835883754649149214290489479319422066362773172577179735157530589191336297098156970651227770438081844185734307 -0727046673630137406560803707058042940068228879956058420026237531511228698088255979495039662974032046384364026969019919437568764 -4204578688546460366354226690592321231974552743860907666913839079477111780605991648504857092410645662298682793993079551732419876 -3756294405429570395559614676089322871628319405115443082409818445213875343993774082306018456892013141571878129826624772129903802 -1915879655542608031603048228973067523323417771894628549592585367737979812887089684899398996853836990904295238545782994463736003 -1862917064901509743356712523964887969381684280627429777002084722985720739317294453681605121270099743339673719320682461749376518 -5235629358000506017419756442938714321316730985284287276160530781176188912088650998156658168743552720877268116184356043543445755 -9443882656574676998601479646029201608533720364834332155558897088411735201080867283586900504743773546108777074700728937687647870 -1677493272605889337983961765432999426943110889282768474699096119469883217687878946342929523139815961885455260346054616901453447 -9942749715588817104901581207188857800673119328816832808571244811062495461360073125883981969697016073423707659358263862951164461 -7589849154636259255662987558451236625196817855393407896633655975124730683842916268495164065502043203437031707489979618651602416 -4877537573726160052953215845080536556910640218250727320033197474127755187683283945624270057808449225177808596236183681916214308 -6307674309759482316304083895463219733480617515657742063182272951154632706337489064696789783685482205360435876431996285794642684 -8643739931017169670588941204387320679922643218218094561807636190505893287798227669018730741719908408353128973453099243266062517 -9595878873331613803340153742041195527735780444717553915355354609332848505998881213100337678158719821578770031967558080136888152 -9826258075448305567391906666815695574763625260042694682673443923778013491658161518721464450500242508138338760627120693213553580 -5553946281220024617384962807582191448987025563460515052097885240434443584003120884005027893320006209592895012188176773812824397 -5351207991648894581591662853877103686069327469518295438143903554689747912914341445196157967066587607931175822601224101946313543 -4718020971952950496510335972370616351651238578779144226177776993578212091520634237018822715136461197024637982739115303152147863 -9502456279815158271330961578383078627663170821879138142148906444928946168505151984176109046790336568113096829851051335078064246 -6953240969636903319954311768057533966261755313567448194782711138760563765547507739230406557393058730942539222575666804143511119 -2069936646276438376676948110321617772893399556260252358509335079746651069969820285929369016951090713864814429938558082689945968 -1521371174145731236232976467624651809029170086344894245707746268123154057519935873219521049882236870962226595226944947282873198 -7819821085451992801895188229558460134173236266804505398682944828070031878272264470195089873005628963880175293100970223151449714 -5581893838568192200692899357118035029378571475716773858918510887575125236858310172913692992079179964473799145336381338174573764 -4769245956084317711076182507252518842194925936437279722455907758875435914157274173921143663890367325067229935879996805150485626 -3134946076248319258593699700301770098983689499295660906642311982752703674969335911328913636983282731424392564971128071529792186 -4653454953851844259383149899336223085116998954459207141602572224661191223836954928657358541085552778110770329785385935394034672 -1848527104180913477755119395683294511819189869818050532796513348646616780772576901429766012659310230873210004958312011164035296 -2958092156871189322732011639055425235756904126336215793291675441374713359747361020499385226744232860514052551561041374928704972 -2212834863497329670476581032210400927271310708293108228424935554688407632484416285274174812931270321948680850009808218617859705 -5759858970411718249018834966145654061840913712087092866138009251429104683711023685469060131756225674409696442152891897372343886 -9744590632172501257249804338242668855862458498369585009073080663432870189779358421204658237236159348444067179731646552147785093 -1487302286960634890703793800583916358993694233181958170067964772301899115902690629049952516027344747956086526751455372742400915 -8338876525824289493587802849949027999302785007312125533604872964433845704867828931952315117389601715858805797176205231916978863 -9771708561966315440823738672686475996359300091791133612159610896088743156170335643885163215910168604808694162494306049091846493 -4260246980990607411798428730055796631495823134395302589335824515261468702425017396399121744052394058025204383900792732372609031 -9971700068769073722960546542881880186840993544233005529300285659415785115249158554970710339057479784757811267863305208596232681 -2366740530644754206054437467535946438364093779279894170145358386159026725061074970741778654202207224942319105808241561149108640 -2131299570746273126264570482316141085118510380774029845237350007337531371596475771574171940133305454244596824947855809667756017 -5149174518393308544163272712602730988826876495407743839625377436405836969824290538418225557277170446225596736304939253815552458 -4121823510749511107366436348094783330267428964699228112245771169272372131739184081655990835742337126629817378548166241761588650 -7681892302838328396599913751062470874471102029977403036886581893796472818466025775981658918091981433719370508505357431231485600 -4066251794397726082230815863792863498887502338665772599923859722198014368910671442996024261604600584351270667582157099044750647 -2453319243126941865196218141928398513931210505017908632678271906294188175528244273588712226403525451579574075491526959814201424 -2165992720884571403675858895697135732268260556618466022757708781513389984131289376166641651464163701439701648503883511692095752 -0809953098069693344801057772787094818934098518685172639722513866511171301116371082267224802273430384579466957516125344869179896 -5481982401939122614289521472353637017126771394148320518526784723238206085981641590886685015768028048372274104457267692145673344 -2306442226244080959840391166046824665212018683995806330612693877379188175903847065416666586796553782166003940513860649019698449 -7839622245401117642004314710277578314230150041129278793586315748881510113272583096733556513373523207978534603403670731996254473 -8688617881383905361473235374450468814839809922748795968256897565635364988983320676159901781893744135189821124712699202769736139 -4654535121453878305432208653573696687720659331945282280482164376466643366264403854440410004602377849435849425047260830549050573 -5901354141130553186089991532215523080159611047438619487077531580624462005235622602720033994742060589665151566143947383285531360 -4404189049080879563477017517544794830939312853525609682809863259313640891722874703005379977055110211171023836236430564193209703 -7229494566794585131912570254848123871703487763830158261455284479338860024826943524410960337002804517176829321597236274083343832 -3895863444104818475102160062282466733057017625695711453552783055209411033854956586687106898952724582542873871156820426292736090 -8900114835631317986947314833806014993742344316565623294563018259706162592235301529753004421871816938486470617127313453996556895 -0571759514976034692556387423658377978720336611483511537576020419517170544073326612329641870061597096528288442406290336718658618 -5351965547349291678130305501394296379111242594063885471825143788366715324130022316640730177505334429253870301505302005277723169 -3916717817342560503418340716556896773392571317597234277462755462162266315055085507027881148045053452399408688937434362014420860 -1395787899840181514485743703752177228078579014380638280483962491760489212783979634460850686798659390084425828810746413759168217 -2135670387347630269927889910568863392759999570308499518950101510541542088393000686133918165399672601047703855590903413630319231 -5402756885639965603367270976348755948712799599490635951531639604227412641095043036804481527401401591963544493042050777198305908 -8529853370862945970036024025436607369800687358272778049961830381455619066198750162208786259673987188349784621840620855238037708 -0287160171661419657676846666977667625410411272514035315874978763125830094141664498713238305106795904657260444752711842879767089 -2429466318667908141926838367968922957966923427083942277132655834855250930739506120606993470384477050842837546690187842884625651 -0859078343456062742869073421013869747003592646292364644445549193378529859368317830004107789688729965524376290149979489394466571 -8035239664854439337661491633430612363668270550373199092404545748888325504908156365529288450637845828980854077097067322982777549 -3141023341289995552305686646515529412648513395018325323202158482204644747543553961230472458295893311161675174437937559470576749 -0847147233703839410907356117466248368234947493218430919253855840473886381053247491509943700747999091387943188137392889875056078 -9027561924408681103294230082697546064172946790782404069187548612190839473120786175725940158419889526634026805571973842865999326 -0264435567708660940819192568711718952454625290701063992984178907184987617554072919582117061061638475508286749372288750484810591 -3758876219081855315432362136232140221117526750802434000370402808679995451358803624973049460963970344708478212627401394392324314 -0737438132749076462394577606428117744360361527711020670066707010174337101948368515240770186600234895342764130573542724774509423 -9073624026312594849755836859839861773390790206872160912057185754009883091290659157623485315161215679742322663821620022079418138 -9512292856680689427009039672717710424584681275009917377139164236516131951125126982668253717705356666975977684408510117347264524 -1614244135791303269397434529358056292497647554306953362312956458703923199969180084694524758403500654442416064508250070732846804 -2519174085201627296034372830011366838603028175377849633378995386798621551863828217907888881997187873208215147973680227021049086 -1003834843003895903348617625671797354229539053440753237068065646834526921585552402882071062806329627104734866652786788079565348 -9629790405359972301542148043545627855421437234097522244411526361848299030888697549739412058687417924390455152178947938956747613 -1220334555078453153775416863741025226449115088431256895031662080047877074330240958104951191074477627437218425259277775462127879 -5330046177874455391020429152325102772616525806909792370732670726443060748075990477694277944732782581654693994482617923050984272 -3673634429035216620140695806733909073383802026068407079504394523147664262305135669486209989893714484828370038683949845972371071 -3708115456116104837959577481370904415573625213784335620684326306607428751455492651914598239687297810388689807875911114963544682 -6275078866641136241403805509431449819259498303907303571719921144438991991012377399643498948247855847742996423485083104296357966 -4819771171509939007698439213480827086866218725106376148904562704537146213203839362150271333692094168029380425896012121918182027 -2363813324380838896838697582331955348538206296702138518105826516120031079298034769024454364560040544650658193748994518844922761 -3584004325313624962617797426518359904557846265454464840046448902633251444504148633006804302389871871448461320891471777760471406 -7015140209188781023966520963877943044151556490498938297548114159848752913311985584190436463500622710986698476383835553548754022 -1839528400463687701674829536257273749291910270980698644016289075485436646251865330303505791679775487148849253452040305315948402 -3145765566550173415234672570838174821210069239627979798684879235063388281638855085067234894023172727303768990495108093511731814 -1483336663514861984292197260930161194717688304395281475857151745194230301582456092278030099203677396095385627051965960418965869 -2854504524032911241727059077016541586716790096641727786446371669834231656716324311341476302384390592511402123780357675520817756 -1896892000036214095213174483595939108751482199845439848320000109938495152786801921343185996467957081886861283697079441114823751 -1013835470696140967938560803552257866025556771879993212750495494783316985507407134125075415195171213975980403552113090097922014 -7515529295471634503543767654884408021479006972212507337901526368761975637401627838535557010674676502841359449244736451534979277 -6386148785910089568558317754358991974549956833481352102962872492406026696207774586778061183616357702706148878186924821100084521 -0786007793408177523760641643227040330556706874975301831960943949711205745890553620154847773954039608277686547389729917607939287 -6601065186724585869718286730900507361468222773067014813540248318802263981782312642062065066278538284353552795463948608367617264 -8710458632884006689061619016115234211820116439477889276589203755014121466655765492211482958675286327074722685854832241409593748 -9721061962175462432000129864627652688757814948302475172688435098625740068901878583888711851475071264973226898929358873311316683 -4174366427344989068552152924708427538956427143878190827546384412926545762544478791156448578168011030464548344644597978114749995 -7360922452061081711320164728509310349083463549987726136205083770590452623618881507969241810844776231293351721107321616807591790 -2550845118266461695500217220306235111000226441822451555820123914245682646337932826709632824811050296875427929721177340139400066 -0537242786569134793043366211458572528023713869510543400208763370329672141795438795279424345734151680580842314157723144187850297 -3691971167907808375655388036762185591921761050859435693988855587355710680373549562866421201047569372572737260475884900803372055 -1007691946206878968978529598838997374929069152901229662680626003917658157134099448777326028788327501120348629153653344792265032 -6789665338488546383152814125714262232923477122140534949024472459646083579525928155625268840134301323030935772657800235228310313 -4868298684968408834649240926318299142611007662477773878693177513443928825272512719998804017438032952107625783388477428012876908 -4309202213419885445857524725380221565049288409243087159437144931986513177158450201360308556789291053726105045930369784581421376 -4918602058560708246713982614793257938660065153424340512931090185661823200932451770267967499779255156975310512692435013776152000 -1110183674703280644653992907629380068789930715341891132020648458097673681456412608084277373854376969813158591776142390000280900 -0445144418946628205657456424237128264942955311965086380583598212294732021966933151948426543613378750502788733253601313302851775 -2374366628960975291734051077636704217339955444337088817734748627762386830985963672836557693273405067738105684469127912825361938 -2027506449534260776940737096467772483868296281393345078755987162674894542324936567113913899614190563606092238595769318736510014 -4601609459626193748838141934701193459914056226332390088463312165368986927729066528661188656389710831973546586554245180984726395 -8820641417137341791284188339243013012221967809583302454529489453970560570507033795822714618813232104921926392983794422966946716 -0917599289793082450351085959141123440985146982836878988204562375158569611940037966919396385952791842444219407364739497415459949 -9477416265026706394163032606799526520617258416558453349947010427060666346412817629143427886670549081801335758913070396959720115 -0666704035859146354165211453275694040361967505403921624893044875089069215309652369723945012113209887458307287755360555234673115 -0255440161315757825615697585801039525106439960924827488627325282298838888854341592966844608858745754258454784788330547612148950 -0874980077738428750262349348089941932765130462263947980854368723919615602845763694707934084120416138718231554631967803081258409 -8981164868907222146030105839525610946849494940635627162577865021292617220051659027789888586435753051650333546661672096178778980 -2620946901150871449077949420947077759285135192780733116251997439655441528374111538899479815498280668657556929167956071921060805 -9030260608320606358567118378046750979991657572292125217943471649264668431650823749458443029769965695844134676138947512285494656 -7911546964476705302214543959264572361084543166660831362636246720337948370592526588629297565497381903059061404007654352003582699 -8922075574627020723499343655693848239182605712427393497956424335482790840429881008002039906918138130808630673506435738463196394 -1030007563952008786387120762737476786971644512140825923263748032598127575949995761019498818566016398257609354069772389656925099 -4044422726596923902940860834745051450250943536191821985629944194928632102239101274072099618807513448554296724965250996986364924 -2354577685813636309146827729776859816069210424412883327405297035176569137490665953223528983078628177275666747947529655966331575 -5477299131598928984485290428357889109417137134680518227595002407302611193611761790018230013945563583265000510580955975339191446 -1619521324601562573756521193045609645344126519940152032470378539517720502293336186421186366939997498341179560168270447355950110 -4230306307869293075421899272149696843537151044956328729562855283491975528896006550623263787552206307775364239158496535813468780 -1611641802461249957884380478543784809385839965522996094364642447223105495756896318541934272292804367584843894271046287233761298 -1709756805199283313621618096481348781674012787506990084789188511001769795898381723775624988249883268986469361054705514036409475 -4042054305280705588082843156563390558519428096353822906407664058875561059644605482196547535261726903242582076817607377960964154 -4253860999746516433043460107715275174182573491654972680242324213294530205657678192111601960601634649905585928529798955700154076 -6676179068384501343541631038132044675296273720164020679619589492139981245074167783663095317254579357724910508792547067262588017 -6293884180622784793929874980896521285454501177558249542530377203281315652064795385736617567836645686619617679168909645709168097 -7743521550856066318163410468235782415369091035062393314878499152138458241235674642599783367386177248502506902767835896501146443 -0483794093371674252980588779386498050198274197464907995529503130294921702208337296889908183028360175355797035085155032755797134 -7360019231801705667141478490298073274830800662389220682649304818227754575701335947775670426238672520023046096705399683924718657 -1560373958818879850684156471739380073353650802319300382801718291634025935869130174150899754981641558303334317282125650661935271 -5092493350585336373714086054348812631829949972662091014907535609939068169965945723736778889287001972766703372105697934518100296 -4734257102525392916687039288087104774233931626636454683584533774360103845888157407165794111547584642769928525653912147278806542 -8822290823497972283964354496248019949369662678090787983018405519062148805449317563743875081526769207312318307346979280704726453 -8280283626279949899078861531461602097441638970306234787225062938541682486544091938804453769368426982357391305981842832099966845 -2217356720554468128605404764499852161966456502338368106620715847133295711653095826628517163144372167241765382757784888551945323 -3293984824292108860635484259719926152739335450946748798660592468126259449417195090268999500256639254414418461654750409028017288 -1675306289991237206693384004427250238261655808453706438418460194044272886240166511333039026240609926117492662156547022216935277 -3798683710262055280473341604637975853707715733359848491914615475081846941708688479067522988710484836724298291195075742855018190 -4581874216800089134728449476207100847781237572690983431502108191722970308605570690039979318708286697553630513952137757229594209 -9413803628857147469961583711007745023208883952507321209502032469098964348049914806057645578293300641835023243516073565578336233 -3421265017714445796604621284137835957308268098924387669789495349357687107880833828961898545436375036341306978848338980923182467 -9343222636188028392447876071807038373006670961664292112334770077234449906744690005047749541517081971030139237186089097495754677 -3197112368581263984569948101844452284212008325999133835851189833940770803601768180655910037983634430639371254776873860967944989 -7762428156063656052457140048976461668407455298961839410706956245596539166362271685772723545123147978715000469199290892122691240 -4878440976953031234401260269958754462435834653516282136155912652234992770322924693740152133726104201502258366755195941397981349 -5410566039278422394352444668313290032035427902945347706947962717669034134093986739640503933965401015646443482046077453432046184 -4739388878693555231586220110918786353416678121114400297535390976972658914130824675010539898056712966138526147925359029678913230 -5886358316255011245098615464017615182438190446564591019394412368509357681569397482568515821423340665852760995420364289038278484 -6311541503127681976206070117236931568310981280275285971795790489631417369196648946460067342315632515195328396495936094906795027 -8224055001487992245066819015245704964683485501844381492046566836373072408682020849321689488337660828971885175876650163928646965 -0254578793821590283140178222280457619069765363934967602749676534057099985483967828656474230988014165618526645571684624945648693 -0109665916508637725280874977575865530242997110923401414431409335639376452646452851515568924163798404754643876369338378812431753 -1218315801760060263870530314784967603071899867258461326183988209146000243519324558810891158838383484826158948667409186010480817 -7903203377696988414945216232421892536173370183150633896237853253925354364816894136252089105545529048726749085139508534886223860 -8148078797101770523716078377874332667044042558325146665083596936734559299430024125955358519934955785765198216278595449870598677 -1116539363983086722722201448783346777178486858969772190694450961667734803002682120934093453206868817575132463247817949468716367 -1637275206589839665316460804048412011573846372603155744795091025936193454883889805228527990919468358500076576823231506244498699 -0027621847956067398935694606560509614067216464874695482321462823676120479915649013012054108931749591716879497574932046754706928 -4550965358813639986179681154209780873107404530149950214180601478806568724333935291072801881538682786052141302073521529721130768 -1636835808005913985865949033373364692120504151732972595493618693947796782831116462924175961942781719381911750675622713009187832 -8144555119970713260660826605512619993205968791014438812251863090080817574324870955751027471809521051989383021792494139844493682 -1585931821612292754292414253292528827165768965683611240737666722015320896218326640019860760530517054982970340862863680710846055 -6536681595996347954437568694119184759342070677456835801973881107420392523103849305532249049602562479138323295711575175876515640 -3486443061013741439479986438866229511864021882422370923187276377158037668029544320414759066219016776345013936686773434186071692 -8652668214037751054395752355562459984977103091936105931037362668574357365575540736744748684242434859190554622399068882473374610 -8580093375714553964201167764812992676992679093090175449230495342109288752328986692009639151993677096258635370756684860954291469 -9964866699458956436463452444822527184213143978744043079921280767307287341419726065990023057954791661193301961189038570454182768 -5099791381798674690627429376704901489902412978407791536768610182213492340739402802196624950327768967894658802241237435134810216 -2644824029820305111520479567245295948221720974051912855629977767969256584700072624737697630748957013069006968156707232150642177 -4694014156265815259320275858444952794733981468869946419687206201356067556770447737925027827372686022309398793525531551762030508 -0692322520193661664579545021783669513925271024381519716157761278129858733071273401229450196329877841294994307214799190419756421 -2529925924690763185785959066401191385349387731434107358942442763904987402826148766868356311114428295259838898928666272489020921 -2079494677073945124622995106365273958525412410850501502163733379133554803716983972906533166904636077433873959124786425510691812 -5600448283577862312179623155268824754692832396408303848264207707120544301021495705368104362648456117090809527815889327217546635 -2343977389207774815138566905589371213682572216665369482458860895527700507201800331270809726620829481769123927780354816652809008 -3857604203317914309286408408516621032904248756858927009945259813983765983907916658284682954733130678932128039594166445571290526 -7783506576165023166951251072092917407173251744876214934915430447355544209919802690055207660666887916247859978935839016078615261 -7480703460843227445195199879222716960672528809567298037159358077924188280933697924269515298429095424116709060884750185401083226 -8717064476124069485152260308142874514219920880901182710267169211713742088964956637523570820108183570127357202528608391772392065 -0183762641286324428853776063863402233453633712505217167155150999046272831538702513532943824820006210590058738974696140094824531 -9112496681140545311761452054846654072950289614507391281868179377997604366151409215985425553727631766796511079991043874131555557 -4848466672408480575274846878733482332783913190570793476048801496992752228173129813319287139570412963303092066006377899503587208 -2004264846825219154033402067536124920004600149381068226608766267724446119288301005499297409144197426544971420258082942394022997 -0140320078386067723015618497818762945156815014583969278200840575341177014900417018827299383394638626203285185921061940008032865 -5962478195492396384491797383201234602669716423445444477699550016949258636112731978273213688262995924599283114955724957765374843 -8311990015515249068920407871121923281094596878515199867380540740586492915851905851867276732161963585489156521545932776243150499 -4592710682075197276504754152068206668838563346968654451648904363538719952128821973082368544846718432978965867108316589932428817 -3552163482893373255049569753046229304178905562057146740570805257427023711941189943044300807285165026750415508222049580394911287 -4596021173135544782173915901528349195173147664807647330846216356295629295015969380040305219923049284417801673254103299322068397 -3943524404368165203936926893260166313850279802117822440456770151714171409778904837544726372346574716859663114202887576413543801 -2969116285326615235890680734637608834483184611588075027596448992877129841445196831709848480423954210927050978003235143506132046 -0153071245386120635128957595884412738484038627307517440237760302728984006580096280602129668935036883924996553872412205753013658 -5621357475787817996023091217050008449865559719579810787563038126520104376758261418798236153692393962370203265309058313384060120 -5031974571476436448786217419749048851015183003367752606459920605017140928435866977820091890996541266633748940714886983142086133 -4562696779266374687250665129144508120768763103068669726719903362264420017240549417302081941962780048493798236161080017811934325 -4744441027688831600256636793504579543928756869184371127623452884135869811364793667736493944686083992892480103958881983194171487 -3993112528998853349337977120649249691278774025202103634228484270608254195748299845801769708524194520077695532568068092195962254 -2329576931503118880223192095103946522402558163495818627264589763485690044385772668639064805859345298816707780560479994433943363 -3218849814933855133187785331003935806771232881004238706522431511966088657254108552621744793383328388740747036182217129765309790 -7924052825089429554499360417535494167874442982520963688982831955472793462543386236218475310833559387701937594241052466519691317 -3120730387098471204669336934308519377296835486747153400369971745719675185172869103202802955453713945706425356726081359191431362 -5436861304614177525957519069526164638577548380287496823470807113570761415650401959363470580496567502232543408020661206474053266 -3120249944908567907826123413136257067078494146549111473184473022022655595636232845880738387277254397911665634549126629364411401 -4035843002062617386757564723259476788690970258752656414372739557004284974159497458955655696811845766981760932359601002427208626 -0779143969819344348002577455948300927630939121921547040685880544649850641595729872650264658050333293212488609440422250520307515 -1460705203029148369614787086632962281691805758071437499284040866802949156450922963941143029043912074471289441815938231327288667 -1549240739672667607945860219999638499322190035348564953406860715951588472937396572245559080251322668950418605324345241657646723 -6681600989234088565629106267156100053645378516406056877177467623317919074902879430656553383602319342476881970725454244483233156 -0192568263169645194866570376494013537343370202553601755904593727729559768993904298684689230055250228064310566719259142616384584 -2226698070135175270997371657677443976168753242911675302780266617573092075405498205119010526964247236701457645067756244640039560 -2411523124866541301070099168413071292074360672744530325093983003307829914552999628543032410966968534244029432252498124255869721 -2032148958117324274615176859919802414958436537913396718375158773684001583339324493639015775574550405787223527127839505198335838 -7873829779466960857655228261450384972633464601331098096364008012962199690499598210503782863578580915221775299630382906076523471 -1033617798236208613493443460691499481184470043787180389655899698166528830636916915480716417683921961582857940369278335021557721 -3570877773431086041166388678403654768190776468384892784896107473099172280071916265352211077124176187206981633533447143541466428 -9162337956051462461244081308639454192982414597589520706270659960902459420484545944118766172576927213645046647438580806130370976 -1679386001024741318115842266812215689927333532837813069949968390429571894735964678235628716093113797167330012932695772923859921 -8804168783787089493714870963570663419696958001331927763315516123670935571014222651056237882407840332672169785104960709919825245 -0497455776366854139775882322268590872937081090128717394425875756408043314452495438785765312873239203328867278937236653265323056 -6042409906538241575209979144212026252259767618647784026916367882392586982801406891358315499203056053321982052638011533498889270 -5665573721287635790869699668106163302621832934471963587290594671222971786422361537494624465628017639194877871599798228379718225 -7432584741479817366719910925645646541846360875945358928938495570674893693392242341873215005147647843928108951666723535877703443 -9626429137239096178611195842928172193314671253797016055524388530347610194243157336306488458466944807366840872517364192307199510 -8872554743012955139567705170988677634651238832225827058388116110755496007697973600003490415480515644505946637930188314840631970 -3992491991103767989877164315291928453885661238942961179632807297112992978760631966972677658662459086278724019257889314597469958 -6669007755891601840756776309575869340114031142955328946684465711503263349456097268207290469828978418533272473362080110971119500 -8033630970428066315841260643530102154382783569132687157611513276699429626479061706898110708339849619210276811595853043955446869 -9768070537230217029438684537825935225327148348372819431279340284261370618005491965480298943126300044774337991256135794900355667 -3657498279192720768668603975934793465689868735015232170607621866439453389115795388712792645934981304662545764256708338815562273 -4841652997648921227154354900004136760485517640549167386012657306424618486993618255961405066483542868908453734101505226047480448 -4390654153631921147807124887078770782524389315313338172327932505555766712042126014521672948387933863420403298182271156860089870 -3083699675349781049946715849913203260143681249018875435801318149856990157414011015651215483550403032096067120964528627647289771 -8136660832504574374548878451558509361941048418373428464399511971079202695299106137651197289051575362091446283996841312766684810 -3676236989934685487277460614965631287879882167402767160319121856718994264197563392677953816932994293095294646864998371569945650 -3049112960977618674809680978004704430920799039334511606915199457270782728770389854739859266964607398443304578468934206463864162 -4020319901840360451062762075624924661391286802372025413278593393390727656336661248466535685907382226627976102440776444559861524 -0166268182450996578449973258577137477283861283683233635300267518223499975003192269667287508860009509128730943175015750710725727 -1027094337033962463834235326303117245639527702316027545974140882034976571260270032549979726479017186330571896766878727628563084 -3735720519280562035416027535373646170800608954405500868661244053278717672230128154298018261865339340499855937060742071802179228 -4620909442780453001381207438741771581539126274686674694429903202199824281873555557550181182902700089108021432193493732079872184 -9458342180011256500005493355500078007350011604607303307732963471459637499551951642174991940916434214889720629725398539493831562 -1757418742866953045608344774690257090125548479597625280633090790836185148048976878560947512134108931123436802430288121604450838 -3439908217353866705662826605127180864607977834354266960510252404933627640585873170058624018410480482791416937234522273135497031 -2172788248827330880258621512418568877495834091216163584166603056260778255791670347944634914745463656259805211952460022859276063 -7062821874356395565274839950114991325558841496177484931811683058289009845398038339874364587482418953564120109998982642304471400 -3698346712015383293895452263862425925615594845734737899372976339855075694671913339207356770288208509103055437248670557197975416 -5731723926926739876475885511154531945948200793682997616742493659519964588297814245753251250515716831733713917292045440536017047 -2326213034490494256432217527368652272393723129996987975280491971552239548286262875444742346718137588580994530639159848308302488 -9664053981063208567695237243202681506536792559295775868533828506782791916794818915656227027388965683683700700077078525885858163 -5667625010472277345606381058073451841188387271842197689932469281333817846476853011214737420944488058943262260113307982047560323 -0376867635943376210756229949512175221086640268169558374511241311647850185329038766762763270981601390818540680562189733654333764 -4491518223112590691196826611428935302844272864063278173063473168207705976253698032183297470010465109985370388667131449602003018 -8802699827748011182168113988637297474486522040228085650948530427329245143454181410142916723537434758973564869412497956238710891 -0653015424586307910784932154517633495234468902775642895621562573878654050393509111804824221865060266482583193591594511748836623 -4094703884414114132180304529532880233548615595688135936066808466092184620343793991343848249436804401054149903884653644876865628 -2718370374189505315521628763517179672356494682994180239553818915110898807872150301279550476267769560111595428023012737770277809 -0983429088572418894311039932871928790123994971756838750348015397853262244219489154464202472581023076365814977799205726076421849 -2244581657719291754700709306659618001196719303854922152332583798578459941542447742263613733064435246505660395020395510382351759 -2371191845917148718985406337649548363315059193935226677398831831786300690640380203874437098924585872141781137278459673035181084 -6868095538827304671263059227883616117642085424440799227282508929248920781388666797060697845611588551792908329555898460456707821 -1192043306305230972108032344493739345654505538181410336224627870081996078504793311999388842368948858806146981869977786056189228 -1263564157432629856155576816827336520937607635620996781728277895852539790604285849253279394716497232033008275892868545867382681 -2337190119883945387644191032300914026172189976929618448527119917727894462635110227775485639758673866947701176216601761844984677 -1541725580846818676211322948610609824222332361334426723507920844056410476870968277509960759021044456134551342168799278225221031 -5808026746515835625867232790523509089624770846326913802756163972740615072842822135746471264238978131846218179577994033108366459 -7209194492748333961784669338759539252535168061991620450390411453076684475148292681430958283119646863377618784660018401847206388 -8164592842234101218973444204368622348477154717654721601252474279965258123105673927507866232148031414671644959483263113289777725 -9536506697075295060127905565119738004002490249111193299408907722018709064690369235720344207608369516256550493184611556526526774 -4560017960261564009218990204461419858845480963206874732488142599183336196461705771053123771553268404282868440226650446328616213 -0784979620602852570679351917990832385632423349482355239911158425540111723754138128518596135522138872178079847769857439148437200 -3065506422221326046922349934844525141835749289303921189806839691414799095653902814723672937020068076690809012734952484971091424 -7531639556490305149862508189711238391327019426642515502558468392326082589336113833462268524671249515158066960751008937821736410 -6252414527138677204351141055246475557495876614593229376289610072418141564580640343324426668169327302426458833085549654617933468 -8091658367794443766667336494599463493723421496560610375457662742614878721712215614199388402972271203457264117746009414601292472 -4908066830822438120188614160836549308604180994779262747990121233555704249867768081188552478880193430879502515548138613493765732 -5079293880539371206967935767115987717076965982796395512686484284292191272158775216705810765026584234552773076439527278292069704 -5164216628992440501162199298685532131413675395537593848742057924552014924010292705113677909421661221880801679108009584398377793 -4121418969859257717214261444608216079650826208617995799712962734646420115576080668425510442736110574190180643945326397724337600 -9884581544962427545759780318699856274991305713483502351242287264905051143111943618139482715140793163760250713362251924403750737 -5001181429052612807248790060512136898354370778167327719757330132811615985502470639866207141577372460429670627788129417134404406 -6178770653157619944192283152223652702640541977712224400210339303510432403323032560310805508239002669348396267104479169736023331 -1565506146888751623012576320991779119855864177643274705087893960131150916233068282254723459661688282729513190349028463435804527 -6845488200397241399013882436401994250911820745822241059508913459645459567274421896167243282273985655453126249904632199335837792 -6040683797579452107027216845343063524780614029426886935760791257030864245182939630838108471908303610357161096840181118609152193 -5867358422344899058837359139467062379239965703229659786120062948805736192330007221916713426793575162507137089954539396331620247 -9120519760679588392286105798236021559061854045122019266108300186277736886734969411204978788065566311792204801446141473355188648 -9729762487738362702158800023376627553944314549674371461896299198497056817939283617350417487984379973531521250384859390378780952 -5278728682099899168824382639886768910340224230494671557124611921288793461227571446099109231672351187529971910075105296077357641 -1730149007222759960804235202582288759192771252526372328644840575023003569331571124411309306137954892577214909905859437364845514 -6359722384817229880817656694157685568966235098606153131789136445509767178564237103959982917552413501317717319150118113725281168 -8331881891680259180368288807257087972744816443005083134263401722243486734946708091896751081947017218318643507133088446490502898 -1564672123742228001093857696640500357335628593848961899541997547484403147074041514838330205353223636545525633021798226061157975 -7577934224848992516208537526305362086756191009198436224096722971843979917310448903629548517759776409320845391838217575441202030 -5842023675100545856824292093806577194777854067803726567456782139496624136800515010149246416535077787552986449619329516458032493 -0373167808153255052885634740314278397690578953752487856466779556596486994777425942109945709709335720717497273570846620327341193 -5952530704523306889233492671665454303269886039975987299656234612350738474857467451882170147036566336312226535534145167519693735 -9607859559588540690534618223279700864577721437927651039992456828233467681820892987538385235563873550538138831743319323285816092 -1624406727909111147099641441681559414299104318980440722709754783222151032344202663364762643657625463452804121615256537142718557 -4340315496406729909696728430969897055002939519672286841554008064322610667892226345008617230358420658804502966997298469146129669 -0210625023915241926959138868143886129423564883883556915150345946486026490910420790564346970440390087533686122782420012907572301 -4721491005031549006749404748103949153294842924575427991607317267682247725581223721840333859898813958860082395329629494670433269 -8089333321693829301610669436388430107322213493559809633043551047784093889175488034859221042528763690657356439399119706918708269 -0081737607011167672164816311361636636595718748621290008823635691873373600228901339494989909273621908199424676593460415730887285 -4160520455923507310701763781457568843470746581847988497318956296776248312754405407533119008905656107514741346097573287623338123 -5386718227154603611476662828982111704301478482540378612558078862521675877095588029121004214011721936617184276464093409939658461 -1979208081789258362592059412017416272899419903367802069424612928998858612300695288310086571610845555893261171864325093713786916 -7319139333841813731995304531194319105663469219744020376897814143833856662869242932535917521586466923358318419175396557400347006 -5043921771833079685531325825310432807800223715751775658072562091646020835717475241682115604301178255769370561929846716138929898 -5795009540103191080406839616053879828656176434583781287476876321448232920090228345539065457933826027880057345811966575002039185 -8576153060956850521311077608763009793771506275720974549550420722202837108735329754654396372138014747847396055096136010954168085 -0509043015950572569270166347532451603412568949379675617083809175396443490772874366901432037667793377607725671409709046037414839 -5757807520296047868933446233650750653295440658940733452331643306076758589809542688132352958487696630197185077693771148210415488 -3493366273573202706880963127674882710949035853748406509260478202136097703296547394474710548706092731416204930859887260446245253 -1707539941222225775800658254639655291940922607284340086831234164821348634212665200587884346716985605251686416602230060503804746 -7119373075229566064030462457605177717171013246215489918839015056056006164706313041702800263980277171617607329962257981016326162 -6663813052725497188713444974040320318581428866821251405183260930030389032259911879414867761739508256774997369921307923003380224 -8543233997255243697045277479565692227756699494957952164631865806868110331658332715068585534381871375140656787606232565908699795 -1127161017080656837915924804407883971278108801828959672411183897706979458144168384325785293840525608900932906069101189576035960 -7746884054099676741518894156142307630763897600710799726835033615686726465390861737711082117067758069961050536090277623500309130 -5637631551447663652036022243883777403508274485804348060822361386569981574710776219228289288499523332852532323527986372935987772 -4799128874055082677319044677884361786887526377254867769810507962743180135340211433750487850964619355570684078365963703331785531 -0073682589254914802156389462761084682583678912826358978335933715271645287806405047356166648799977142475160038979372628423949010 -5037559719886724670132444119093240447382541873564218599313650731701908225623880448841585926824993839038111972019595929993742491 -3846935441857871521862191302228658206156991884533871767438656661539104499878809823997230034119838267962065754111334791148146756 -1506245754838722163589450414720903186576980445131544657545019758753225527419416112605350003805887953770147934624442363883801265 -7711965724693431682894274811945992120534708309601562503539815868676726704850890815034768784240539682384600476706665486329906626 -5956050270087533659778978762952993742209890928275529257391035690977242967921950083594415755279086778292240063613624273000623384 -5061387982251874414971585573609892535056862802605728035065909921406395624271235709374930413322182966464210152496167481038893673 -7793264955081367428964822852138933334974506780923885826935088471472828950440677885279984646325294353993045156334916727728658382 -1917731844388737433964393775321834810791126648863902100900130682254900663770885502300591056044829585219310561565900983432788348 -3993621103753371559559083065225969001381490024230870158740460349214225265354617541796726739208926003200650331011617584531364466 -6446975200293349558151403162258385505474942322796455463090381985898884153879810666921247678344495019592171989327800934238087607 -1116773012813841761179870425820266292137052144431441290909627977940969824030291459806507439794936788928214828707352139273391574 -6029232735235425403035383736905446200540026716844974571516139411975848154720481565143793111521425975198184192780712740114138327 -3438200310045736349450654856319455355471806503450945057852390828051199118282010495739738213447341204668213941183921897766832892 -9512957847613586351781261772535091586107882959218997758350989715296118346024725200133884012765597340862400507624462524830866480 -9478843365776113648646455826476363854336443473601804016310466451767185956320296981753166811182992550179769973329037834636002638 -1745421142947154461000688129964181745046963595109768527672990383210124171587972151958957748633651595231193536560491908213623383 -8381825139460307549572877031135183947681591383140425137518397676071788098018785187454915609863724531998066262732015118963304139 -9818630925621801216199389879103728134389152002296761687336537102178195168590959317811012194485775439363610537061412149495648268 -5576817033233193054333141148999572966012541792116109714940451926593836005748304065707002129553500879663495665687664101078961830 -4255249811578737819490016920102133439336759727576849642889727534022902117660385461887412305323198051682727105599743797538768483 -5664318936157823403995526721241574938566862585452228404066914834889748254113822291330168260243598542768358287033612921584775608 -0493408359374626915181620402845179233550927620380852963377274566085358451742815682206366209318504599243115355217504587070160767 -5099926458337087971802835525020183140934847289656680603935783200084783016975906879446974951582977123093907468193624294378414602 -4993211036037539293757401608261712055642333911428904305517543773653002323722539705273891988338327482438288308063770111207012273 -8875724448927612453412899117913683062983270974383158999932195926949387111141855398745328636343443301765332909049991525667183004 -6179446485196106673286301271613059516541037127280321853066460858041150601008945716021915010720764523897185471929927560029444239 -7849437984569538042541347312104898444874295714765888754190517892771505925662567504469022216257045253341087785885957187833718309 -9972288762936380366686950714951282499790474803745721728891585856096753079311064364081796195123806475478622506713826868777638697 -5194143783169339034131894869316961917794611019135131983101366014715857076410377619181633332553598229324447853163042312520962414 -7850854551539305001687198329060780010579189214774936469033426991594801002823836027328068965959941131816419243666581830678041716 -2062179831972241107526467338284038440066567441767013516710832064119073030278681905009991848241324570216334414105094116172288746 -4795251857046503954973485018229646234695366724410250031504983138843493652944866619750102836093665932368212191653037534272918686 -1825362974498797050137125577095725107017850998954189361286965048355333973664280494182300562942448127524039989758648090694962142 -7512994410145549835156679857014752505125401506747737470958447208937721056830032278112608932324610937928836512547690813007773206 -4386958625254464154906642431853347789932184826155599439488217117827733831342079710541861559451261895702289359997911170346503767 -9160582845194443225222601665399912946931088757458941216770145834719498890068834370787508728005299127862046720974369218083539582 -4881031377785621947067985825999914746359269429111016243690638440462655472434228579718379181809439967478754245522265321625889814 -7583391301685587265357562950095622866121830355803288828241373074939869852539741493888550714334780322503664271906152272539287229 -3706056275918240737054417094100085374094932331005897520832184041773254725650156202489186855782648043533132404772816727073155235 -8593562217884076811451277453364735377701544569033315203869164836320799479709306444027657854268527295924524538225997862678112859 -4570537859634341717395527618756161556420569519217630387646444203036568601265546935410843254883517475649241288633895824882290087 -1279603976070610116464640212199310166444520867245963242449012132718994226744403248200981139871780434324112903659101791778621066 -8744850384566117283317344846157583437411072049976031321951124766354609384768681179440522110424899002915456603055956128713981139 -2086242661312485180876173221212851654741063402662853918748324706267356051777749583559232529239969008936507197332763290031477120 -5741215520375853751719868036345389495144698592395029595732821924732143612679143914116460149908254801423378398341400612840255578 -3112678009802694849286559093313827681147182296039209347542924704088172807791962585025279313952354773038812296501897230865202710 -2464335074070148432312036647984428094369519448454963043288725321796755075626414550577697084871002645789785381682654641241100283 -4946700365473689782081952042866282556327651210752194953923594323433725250140138447685850292340132652464859222629234697220377811 -4116813834263078090553178959891950239969717708797371397856902146227502290357214553371450093318491311749632101080525636146301695 -2152016442288947698443136330933042135184223974200115803798042702098262975256411368585240157169341361695851434355296732786801088 -9469700239580500443632308541309983452163906017765379912144038775472527920834490565234287360219977902823838503195349727039831496 -2028576502159755428471922748239092215954614499408923132851493814161260002491760119779606365853853991681827617094579573055586297 -3640678920108595929213187711839271941417061119448282180155978731064884982006841462863880420761509974612500984423805360525276222 -9057118337335912039094779552592972943649024122835147704439083152493402341167911887606112405528052285968546122798145084807566159 -4304613049097528789015322647077710992450848025235239429386820053371823148160964657760192249248892087179211556970604610852657330 -1245963067779593226119382101475675796217312455063935339967592594066075071514347181089457321147516518204553844378465193273590500 -3560863140415397624008978961463819965678362699058645101497391867248986869781266285523093686811424022579360460735505488281520907 -2803810314481228865478572362393166113955034570401397318410902932552817985751479490450351950758398971928389088057335245044158094 -6904347745025056517093981246275608711548205826384671869194152526627350920208727208140128575295910227390194690418706771705356517 -6784445719916791606648643520294851397681933118673503958741728387886357271190905065762821681465016058740202568162846967243295973 -1820495748778970925066926664077661706850366307799032827973753165199895444172414611070770446635902894354703969177838887030507999 -0792366480532040444153327711554056488308633552915589047332411364711058132183546270866868018652349880999177379420796287072716088 -2231884404962985945388134094475613555762253572694848559208422137166239633417739879274457716224035685193748560132590653034477542 -9227302311116220471908055555125965124068362598930072116668063472712158786276348904469695948132587468164071579543544049342283942 -9611661683770276849635190630772488322125598419492636769106569145188958898006930644639421498885045868655337164693651551682789719 -8113170194159795409724804157277970216585110875118496676005194638884485314135820103479833056690555003499859437927213123666961409 -6776248629614262117061005539488708741664752240716973399951870993215840911122617246729216135676971155075389185544568368200715006 -8136621653681348621828391620654330376833126244814473075974634681828022721817501734663865372891778488609175456672709780494092424 -7509035477896901683836806362847630551058479464889625032860924968434340014421918549778761662492676219077042005549667470710873708 -2649270641258444022173705146602820338815565069036316996296828717613516424116147690610506944602495068800321856748967379303431711 -5231537094318273489411666006633698888790246462698166129109823556983405782712006150780252324827311704109848150151626541203089319 -5293239066624699492800648051071066181862007268310279648019183315312315154420858012591159812489763989269552995744386956174038764 -5180720261104219765835445462051189983679962609760132661239453035110340712611783326617205712026077627868902275865901764502746369 -4450386186789754245435591998462910276602998139642701382886884245787698610667584456364442583085157908011542453439257529663938908 -5226947020891494666123742174916211157087031239651884379910014927950876644487562604700114503798045681730239237952766587287565756 -3462320891328376981719619778327669975981463699579856289946252639770341221258397441894692753073255239973756891174514808164393544 -9266128730309970612623389424292152551017956433451773715730990286170012828117563840968654996015507568606746254308032751484010172 -9555122523637838569715536561794279389081447703619598960381475663155959964617699927258813445644496349054324074619586132556815203 -5221901221258703935673357600398356681976947446424967337708716326590353253394660639230448040100077013280765926948098493319213488 -7738313289310543436800301466124075949448435224583670124694327098481119456888840896351512543815188557251685118660772588456625224 -6115002819234894874533900222654850689485882307323315708374429887345170183105778321445910604513739852020875884337203588872923125 -4481043241227156956639553841037732426965917364470043436075190174090995043087977394594850901991029121373900633832712403510778230 -1122190232976475343331179295988355035324572960682589565916578492624347219825791452145522290660285362795514899273106419997278153 -1419535386080392454227188259532485710914908620105317213100011817889875764632911121751593887025644393163109071422951719422847110 -4026612711274029089236246041114948354793310083266181854689070097597525414068795108775947050469531123122537281180760454160254035 -2729212202223251132035733428110959851887971832113712091873626429082924950281013969697115103891338579818898846568239238607918122 -3944336153317752913161793886424178237035722936447760222478425805766217641600209813232221230340238786982394323446453582721990048 -7389193916919980057221104426235427350670234767999865432553198312811347361703697530913350075859737082487587469312736993623735804 -3544483515704686277538264527506961791275819582201516681389283444580314635355964056417380225809498367162186604237676145482322561 -8044600252747925830317760868421526571377975782889497428302869692743382713250361972424374300944696385157823203594995989063758674 -3762181316198228161833937930845505733610147834846550265056669736693282801787541130363631664735877621678425882651996823896571197 -4895759837384473598984792357851123553619562828621778670882704444499813426092540279529447104250292800981220546692084253328082420 -4664284555514464728238600094152484535233997991752935740228264651440639886242409459644164822259574135218995760166441434144147387 -3498021732532747332097779512063273078194846290742584872890698856916194513341236677884416300942002054144602101645686192153654576 -8855689629475186087358536061769600329981635356231999344927571715122048450556630571843667383074529954198709235538731487573715687 -0984316998018946399866843104618259659452795653432490384229487374720689309493558506727485555071518696965289338830868013877431679 -0444954460337393289812378506420855357215741077375742703669752012654590715324153275679920752247842054109194186158654335712157841 -2806861505564373354176276173563926841713871053400626160801979041772088503472612997224598155147542728678254353573523697935567654 -6201924274245126686318859488923564788418058568530778365444195042057133158737326264356888205129275667061366349202778458019010774 -2825177079603097543301363195546845866777243546459927001122927276132658961336248692066215766333309788747162494346240324193946246 -7328522607444197904276536531669234484641234327006749709725328245867037809150903161226855351918234564454937188245329779811527397 -1625377992337069927288579727970280388115743434164021261444485502332859966787759877144357204976585729746356637542057830900380879 -4756314028565636147037500545330319143265189233753100563686689461353510356901840785161069243491300815016067752040583292254841464 -0425017333645387838654294817531355494569985613245897735076448718279104158222119913920255342054852667882224523660815046839280651 -9062897569747184612738179958208393387812077029581124581459197624411283206076395360970022007778409057996215320186949888642491834 -2577588591174250273899408593063983438617592453792302359558473005206418002455294336176016723332413815891373160708758731967049062 -3790766334026767123109787766877375184100806711868340730414046922950551256206928850545228229670325982658231736019892656930961551 -5274543406306956723055597804421123472449821052046299950205504470231963135543548703265039753201973863356153745730092781664650899 -1020617263114480064430348590768589835423732129147820366131428529210137664442462332795234431300140813802687903923031421483099298 -3305606503022918455845722586154193433226668761115620627747430416848925633688922763380741392673785175993422375485098655310345526 -2853130953848078288453311632699255400113689129756388559283548184844635112023417531659479267970268571040812683475165664822794180 -2783222167931397034746003825257822695087707764404029816076797619920932960124572983887919479900468345097640119343412470086673322 -5063459185940735886394343828328918625032505938760162817991123725871771735016474675217009872180054875341819281047070252038306775 -0743585397605286027482664572990290216960312219499687628442325704541075906118067163819053997876546874075941147761887253181403133 -6865060056069818696891296915545023370983419980885799857058396262667622091719201948407642987224698259796247084724028705854417594 -5103827826152310417357275607217586307830343393236258610369278200854730301259212109525027296782910788706655437239982908254923137 -2959652192735329005701145454769790852470342092444456431448859896236135922540005403226570654335981197446157556763871319983952696 -0906069491801564153648838254163601062811138002404571553190646376754817601328289018602749191681199089353060650264442584766903530 -3785962322135501816792718661619323345882587573641791662855806452191640690223489872037123172150522718319643946771618053874607301 -2342704599377336428681571005102144288192803466969307063516540780329331225964749753260124769353818714585772490856102378132713276 -4346236542835966635872778222659462346707942811767870117146806978169322604045750387880280187005012616459999816635343308178563646 -2604219260434304257671433967264369756269802345023491459538543248359901859356108205297353830910989444923284454022447613985397264 -1822281949178892000423296707942037651472365683251029280064728588016134363373058610506594311454908111460545368768742973357987311 -2329670499086760430314104242828210716854904379725565610986919473143807393666799098016719544449077169306161547903571473642324181 -8934928646320239275117990276319738648757543739070170895539210951333884142223117539519009532014319073300363829125825739466521964 -5363386211310899141728954217940413318460520197666536176317994465965648033515827854532405714333529319178360920611572195490491843 -6452281693971710923703852296775814957821367584399432406445144322839651572894248840082293918339020670715780310479909368596480688 -6791949317913799774656284904153563675547018432823443924016298235065082832647707880299401729868016947630432394689913082273372425 -2712968598557679357916581334926350397464524640833937031346811806334561647348253048938805411658427143226876519485429485016393766 -3501555543617126115194082213265703065410803089224710636262686284845574699295863975355551722711478618786950261560124771603773061 -4778106677024357003045486275897639115668057170330533010873096634039731123238801834051871842868704307554039712015191582514954442 -5218459195255301650149970279364690486331464065970810654696223977244841051824600951397161627678662117382548039349844217280375193 -6369806374093253248520031657537241583648618465123745039819043766572718344368140639003289414418211436811709774570097952888487167 -3212569840247911007598018387084803647762488058555511319640016886915147136497977845568137947542869347226726490373484609221240787 -8115733543956480787117884715874295702599005706164646884593210924736152784838359510894224199377258864940900115663844969555460182 -2035968818201814843503316301816877369650620471604903993852843829395302301918155158237168629501277731356144310878037185323999107 -7016895419441126229181619830275636225832821520441765441532992753638148826237793875874434736200782222141244213180375828740996801 -5879711152250078980107885067914386728437059276590755707069830533352692084569773933300266007591174281283361187767672358396078896 -2103537195144138796197574043874859185879649977538344432422677102393984939164145250471907596342652013494773096173424264207508962 -0637450827987698515011845992398093937196147180755217329303542644463406470700019971836100495535322254679390620873420862364850762 -2242509562912546291760696517385259786276250406593124098460913531494124669973775469757781521279236307631066606896102762073078153 -8737688554624301439839538446862017884613896797755819281023174101498754986747558403862071766932594675733495440363990431783540137 -3643542527592425148722339107873667468772709136145667446671572809454163340131116640859776867285040887038441378816294697995941474 -4072206008606547388536544456067257224875289444010744788037863160664893445070574937489602184055019861155649531412106370948013649 -6183624181311379076807905566573341779391313360549851142539899794930473883081910943750299100861533261211231956101452244671916467 -4790552691647255291761946345206897704211085378644313837821311423673070233392146600975258580259558879486034230540380014801626096 -8493966397430159495762611418791059378501633459275242578770822154956094389019127421733416568122031957966837378624113082091125501 -0539497663700011903785013114734351822728368447618541431249895153026462750771721023669565811790420914410370442390790070707245463 -2527965030066432300857015457970368291786471653036513592059650961230415181073725654607900007084498257528783224577191374901431098 -5466092963804647249090725375187844347347973252108137441562290526430827908072841935677879142427224945383497721669674256500195118 -9408447458584058076150017650238543964665522204847767119461148283020725314993208318241105785737923682521127890161621980525163933 -7752816476751548314213662757572297632611588857400086488089795605852388674435780461993562784936271707018785480608983595358835686 -1627393802741824989025898363620676709684659912421866285079664625171969200262501658717867654051389804050637814037774619076628490 -9122449665202107140311875578301366613855230050319765976709818479408721612162782387682958793989254712472790259401394162587792903 -9264559273820216137804057886666471549044481178190332632113699758788705141611700544482989913381964978281793867160157791927781162 -7442806842403069859300613325533104981898816922110133255013384334075830779759933886533885733793824024671542171085144755776119332 -7374346360629846250873248611855740390376331086859870274251856769041575442564535703086946429812945653348220186072122845016274001 -8100158244663714389704533217051390472696914158612218153906542802690978033894796544874039962095788720080152937661496672600961913 -8620241055478925684985952252838411836616234675852362577897905957450930653087681187667293254151875334644179085362678160756183911 -7978254875299875225763061871403474457110245655385719997304830996169804380424203018555208820048813202142753962116252594621406974 -1364681806031729655441460904058555518845771287158086951978113218142925356256811479736849256168552051145501834683683179144053582 -2064837061784377038174422796078941972546986123715738128334902017019689407784830561790843652346745495974010607663653352384636987 -9087616048769273749416367719522093035127707930211676277159029972485006678648961483209994033836189245748110099847024086616545737 -2425064383233144306141397196556964739088709046393835346029594675076399505634895487000914867003535813058158157320486332684663652 -3641097021982425901903299759975001000185954507785071466003606303822049570876073457705939373716255467071337231807741213874106729 -2074354309025181421785407070622306037112442163872375219312465679573739444271473076859615411141496918260111756219972558400237414 -9209218175245343776137887607783882100053568632353169828579551734386860768832081473967959877027533280331064368843953279403791000 -7265829914895705780556070716875430476662014009364335116363868273301526498001345684876869560767489114942311375190271613882803603 -9073891388696315073189212242611726526377243973277573301675482213008892303352424672983354043608654230919446999369674504952411077 -2313808555572186833151976371065120343070868637724954931470642187595688232146689299510744666262728998553432846824564736716304195 -3769895001051711590090397709284289543423142627611293076964116196325536683515731394758243179761144577336943990391686351744541117 -1964012423430274286597296893918822905314758106425920575603004465793377045724816176059995632780349523671266024041147016652652055 -0559141307894322726836380567121144490621939523042182901839217710526781776038951549469639294413748250130589664480237146063632821 -2784427615240187672159066907559581170138189996990499287132279332580644422377771338142338877270406145886924306247277891647319839 -2650622840124168882146785089864582520075975814107450314378337065910303739372347881027629224527453006767239445485125470798573294 -3280112665923668502905138798645913537592166171499662307256909576761808318862002890184471250591748083711310397550032446473077789 -4839123297739060737950671029462682374736375690549900393153725695518603231578972526440776594614418742798429193873047497505681792 -2160244025080490634108186799676843921536142621408043650219395075800794132235618687434126288996783749492148526728267890467762275 -1151778651927614305188542555589072273825319471951036866487051470913760762080070986450018226884129812856690672034368570260461972 -9126667808863381235489349849691246557114377306076458702232805159967351257175416964221955677360994319567614203175199799743819984 -2789442446232943685597991603590204183390799819475475321518636276804097467590827293001641282750302064255269776064371623832516088 -9048597881455099698450226466082784483581892839976853703691711348479752784919013613635237082895964344395914096977829703979539035 -8807651873851261763689740610852384724724967281185663138373836249447037268804159569417135422054907833329936731832253007919797504 -9682114913920055259992108818897312911322686928213632559659016546514207889796765657343025470035022686294498921433293889021982807 -8817906539189722113102359692407543788732651010055394962852526688290033541790486992705883840600079101359528027208567808930305163 -9801041923433800395009066327257582729179435202758752590945790035180893649947139262456916818609204478389874916889421571462394032 -7712450051093466464431798727528046026835894856944238434402423528849559439733559946888997104896406027931037956349309616326923736 -7381318701427430852131274547674285844624653982181746045743742319196948480723763005752758284784444958915729789741525394299696626 -8012218598270213765952492120607042939337977067878086380794314818747633639449994732495580724511274417714861329582888877331906442 -2523903559053376560461999356914800460953183047966595580074070441846526092785101396532452282664986312641571216344907286853277587 -1243980803716723402043316042450038929890705999070870015541470833748745344879737850504389676782666386423839519311757255510240006 -0284528532586136580475966266604417479884520212063362364900502892825693493079279816397630592037794996982087214380723458893748385 -8491272727902175551882935376152929301347887913314101691264776996119552678466629354884721510455050616404890619695271496162337915 -4545341965713318896843475698632445949069586135305533687841423447686352614650216106958803696792920165610566274323872801678178779 -8253568664915132158211550322533453124118327929548882623091786963905677622475126883200587876894319717512008420758223683547396925 -4320222323998014931144025979173468123790086139354433220062005544015035220976182446830891814234515809043692298378909223491021578 -6069959232219660879097232566121384126364624848136634056377125102029351039021829959177114631501219753707218086851316623762802248 -1243816089430429483661271140945607300465854350055161784219266668283907250544685294916674983006906835039612884905549454140955379 -2940117682598404016293743763452820571055836767681621549318648097809089905651411870200800086998457828557152804031061902717793951 -0887454608619720066585775426385076124950271424460822511049331848391671487328356192926497422819817241814088663154002962024098217 -9444111199203225196678001748854632792810817288744330344130819478809411416720197937516411714390009340089903953898652786438479523 -7598508564858904067093707855688285940754985295788676773297431147947757643127210193954685014018553421494459901761944702436530765 -5554085843289054481441810390185341385291272744398367506999297552891321596456006697431455499740285520112057597547672427356435569 -0013578994633080338189924814677511395910036898885609486453589361725442884886155382037285922038189976648035996103250646536792347 -1883418355117695192895288397176362340054382375638457044029914555409870529840507997093953867543753807297378240486101911704147190 -2990020394219301141282427939313186733000711509741075546302432127423255702951507832353089573401235669455023017949653420450062207 -8315834094959817998047438269545055161942585493293325815723771181252407447320553420868080424394122133699301368250012158017016770 -9114429395330391270070591803725103499827663830583921855069504046749255370339126443177002479229837662039928889147633055859281868 -0939693955047378469672103416236905988750384823305338476710533963327706820167318110473623797427088982971507090747733464699600155 -8097749323633489883895572126941411948413387610953411492455863784508332803867377054591645781447379503035057961144435257072818355 -9192774536491861553570480071143726445650506118482951514380572367117987602662371433431531020944047345411439555055616659122572444 -2538272673224446791161100046059076794348690288664907501420986291128393194698926073716590796828226666658940692534781574652080599 -2296719356672708630298340102476096286223198315529342168688227248665999468122934752834636542066357602969267253948955801596039200 -6907553929212877794229661239340340054507529389112502857484240836627584226292443778415389852020999685448069205241033372399261985 -6092552080660661596415004237982747843962036754844362941207857067711980933061648692291784758051313128780610506614569982941900763 -6594390851938570829005416110125258734178056235062424322731777215369780823020661620803238711218728587137816612075854867828598400 -2369696331217866566447853409278304508453286888356285386844080814982619783652943626843027594633000036437577975836948042581832383 -0948885007237584172710171695745820012612068700229335944852613395850206862454317862915465465928827325249777743488489409096560811 -5495911603990067019527969794975740716100732404562122420639048240417867412633964511077857983711654955131598842753406211465747911 -5938576990907415666730959973171116867930776870120598849297289380213982472240243585128799882672536952585668000017332908127868142 -0055033948608802263653030525631019632385167453147504582749896613855370979829552517051177850239757173815628192095505002356755838 -1575006377951552426189315697593571157901434403253801500948115475871805154047796850271348643125694619380221648554282326550822126 -5246972276283601394823321357823533983734860648197127606415601325852813899044500843947933650765212255657169653289842270182408561 -2963795283400693969427927841410518920229478373496996799858803689356286312942605835353285929732637824507016592351551689198434905 -4524116354075005325609861714463374588743076763717669989113993414649241279740839454455938573607498636902929162122468763846383424 -2179849115762842803410844590988059861418931490923531363860515702620355825744742928541840867928398829472206209785674120570623101 -1132410047750617625576007081275570045071771592714539836172004355577617397790511943990307565673693827096029990088810389666652957 -3079203667265148591706387956264742397674809071114000619637965798572137055721279282178439992636758230593462657176883252897846130 -5344900606236775949063632708480760988922321343844454792539062870953446557548709705912512202634518627191679599405320534739710674 -4862620838291477498931509821859436769537924979388766030614053473312195673928520927507333262772931790461823017698325114264269689 -0377879474949535999373402143435358728101597553950835828260875850446040578864121150552326559433858342085551900119266465442357108 -4145382952202338626169521528905963930174893641795335885386219002691641231007259917968036502863440853204735639598211642320126801 -0053580536687636415170048134719028636721663473814357492351910729926031799390889508364212752500797332425619171871273560570543315 -8050888999124989277531284920879308536986968026163965044507397321505480674446271580916011349473678101309289578265591746813517726 -9127557909914237400136577868957543371638044740008283166851799275961511059368672159330761617818453900045874047935222126146402161 -4101481561011635460925901510238481810190290058999387022386961480571796642806735909558855831574016730200955930521599776711652022 -7452149234766310409197279968867850647491580237728049077688692166936015804308350068889158066597960097627065379539367797830770392 -6879895654050303365324517468233477011666079944449521630351405739029720149442284020545119121309386081120398471736260643772075320 -5115668578180735659993042798673877885823921120201277569914715190894516855160960884928665814998466370463245773786729580361126788 -8473676321663825127148201234179810956242584805477442480418075610556509294721684997709018216961441699698479559880791844442850980 -2548233794760268816189190401306088756408880212519056730724214290704225280819394151931727397286420914387903845669497115561372625 -3358354482836700948199493625980064917823071542164808097350543961229800125334834517703864655364546055166975880935305435123088821 -4029969129548193511513014303632741396672093205336941776475040363815521979058565558783096959704099250216961508907068930707743800 -1178228259948098596059380680409565881553234195364086559565498076952409655440130991639052974945372324956190156780171629355058755 -3717169015464986627001032179838523927735142460855957466743630432390818286505306791995379349323709241837876168544133279436428880 -0351514453291951960472553858319673428002898082287147987459621016579844258976392337653325512601241626465492005157367458123795393 -9131757913676253650480410533013952331883655576543674109012844727933443442812463625615079052305206439748070329783436962037461924 -2344960044770585240104572826430912626099098553793285442582298302002106108601045902079657749391794040816491373923940544837370962 -9188063701594180602103941124399234673973525989100931802175158910488942922514429931243842291939057260146437903218286048586526737 -3095726475590315515951883606439041451987645791724176078005404488548116509110488969805623639698399122683827452715501916665020036 -3403203657780121846439527513421356719526606981096988845264774034545984754667811956286997210908649753612024363260420418331459837 -6454363503953069085653959466382547762654112282647446898596667543948487517796676159860624750118940186171824534509979950086899125 -5534857215488234005757824538224541774649888325359087056984429790126545819871211147018201409980430263764262297169187413523924493 -9520167452539794941218775260774423444492261204451489938948286717754151689428746487424118400020813014135629700319029471552190487 -7649753857278617517384047446362214242830920706961544783469693002591616096695611398984815665331683937899607935227857197308530722 -7670636468635321903676766861271780561993826318676409654225250617146887843176296360469702345236373355189175304203166464435492803 -5456942248296553684603690989598415553795292969337585462669697131930121000520692716176831920728412650435826182698878423955991084 -2896202227362420166816298936702205787111522693592087473120377589659651412246131193859654870409149102874068068052947526362484606 -6206499177988103420772046456006763763163890633653756586913836205106440292257489426046140931638490258992453397047593430476263734 -8271727426541847240045919975482895895407596972876222349935866226855009736203327632117757403576107132386631830517560425145954967 -4982163925157138555939635994371164500846077564198212229817459032427881591645290463697023178851238007473163893076170963474781460 -5340106261127351887331618946742533731988940154583287036382074049074320856289664772105865760586792346984849386692407381048942810 -8539587910802062328556477423232706345676834247983911515809748455837801552264721412722228887311117555317778442883915233779797479 -1727978384302123967727306531882414560603798977850417620003458650086712045078303090511550979287673387880893466154163854646269635 -3674694578655904749986580598395421685146833662087197374056652325798896836233778806349388223093547068287833955056912724333066803 -2847637229990901535043145484946473452323017593046078412652932709449735113175295374406245481235052704111601101677970510368326922 -2791471564967916436181421827384161108238141389611296884460017859614820709694863977807620407661790121758211278587753750388535470 -1311682212671438808292446213587823526675524926735249896308087156166254699859676499961522597030531906137578453887072208144785351 -8861987970713845651946125749765842589051394459161283498525078704659636051445265425124710568264660637581231331333166906616781773 -3433773030784699549858220921642631039795495279596839707512577767723632096893086622754554818674187555230885034907077860457028892 -0456580053379968368017945695164763479833506838952019851181545387562584359601036032261663315698690958554540494006314322814695152 -0089934480486704619783110767294727013349926542271497056296250118282426029001430520413060977864809649544418723152448749796245164 -6374218433638081986774399897692332350976246009622586461188714603950733284096247572024844313234627483374886751903785440297788166 -1964624071497448806005939877571581081852368682713329198774704389508439970356078811686024907131424792844471710419031994307710495 -0920647722499203428391025133284362175932945797352824069655533852410541721344987923656955005597638885921881748026281505225146701 -3234051414875467310335184839402728147911090604477636334326355603404083470772369446633927746336105082555084803709873030579813182 -0797776807854225896647327655002411099428092825155001834564019066984990634531216819521296497699004639732085677368728818595315930 -7917485162442064658421046487728607879599371289976088757626588362451318559683586821768061531908102225442474938214076282479553260 -3281219759953705660325535461460598775637270570011648848817233301493712654518786509665608881437564458093540417006933366539835720 -1421309961668710980725741781573712344943061720229290458895090456489735933725778071381711038599743236066437961925604705889777444 -5346018484213473348778149540609702140487404833149084935132956734625173249282732560039608351835971014828152667004296001672327334 -7640982015534543149522949001287972675835062998825649759593191032854308472369740597155188057572429051521288244481472576347709112 -9082197142126709759172581677046792938596869866773476159806997279087695007866672568094682918889951065921351285356324461616422296 -1936662836367636814393593918150500159197921407091608653457518897602784067757706017281722377124420704953813373267377728149707235 -6165532554189463034890275736530147346375384892741034329027227244542906540148716547806611470041759808947343102903725834811540237 -9921590940060069893953324679767980790622906014798953371116800849894891003273141853411016879477894602450403366892842855960933978 -7315523767557595011955152358473653019805790165086637876204849356737581570450280098237545014539966107468231674446113357850428012 -0791096311925956512226765013630421811573099687378388596324590465120594475232654312603704526616319090075205150090415360289991719 -6209585520294606187513003055352209151687938901113926217849214203137326771247519247105616300171713950372822794825746012319922943 -9070419207282434237195104895273960005868745134822958234433238365905514670266360172103212277318139495451964580465731804042546085 -0338167338157532972668177758079386489083653270128069387600686406564818006155678752863600080494279043355117187180589834925431100 -6075857929007054805987361298779916735419742025429402324367885856941288459616727309405216361897524393233989298288583563658786859 -8295608945048628864124667559446303925571884604451666719475562297491635918267804843940029802361638899118153382320671609177821037 -2582167131471095203583988388775565537112236568527071226697464466863969482609071992299656322827744545682290545625251014139439495 -6711594101773826530320065101211025715415340393938808536071030195055575879765597974028194836866850448633781263352118203830334159 -1911464166497757327229347266491166768994040887477045432967042061773419808596553435219059712816623298485611786304164577509711093 -3950559965553312195375204426888631697136007142008473612408896359608938295800221018496826509159015008898585495437881710932385623 -9874188189105976892158996129334251306053998794609627074731940358792016931428037315501950874633599120688188498035110487709165641 -4173410887164627415991784444779118017795312676797160939963018529923226506062126935003504945358174169319649592822030532548902364 -8585536437904001642599877592181317351676828771494354438414987542591562928890147892012194379909967644778402105597291718886776458 -3150820435297838229930820366686733000243384455249980345366643081949584071763731857162948259797374460060553393333323596509856155 -2746510308210106138913961915766655928022321725147254596535903741506128248245569457512888067134893515592196316478265340857967148 -6054837822399734332369250046782008884610626357811684106025662192613352002782118381922758419491552146516596733810475017566505975 -6253444244691352274570036070483313882748278795425532524034702609588633374333913295809727607310412619066512211586460777396607177 -3167935626890486882612342937895694862011472784369829386553959207681859657350791878067764914715082125859929851130735487337849909 -5973912099248621614115761320919410184939653960557823675647875630413749948258747675478750350454945866579601771984960798194388016 -9736525221109913891380740014791803647462175891768280453619965529263318350088005137408675181210618289125588737889391858187625884 -5353369021308107059796622691343010568879776199002760578714065302617216068310095438159704609241785014319825155619864292170880710 -0495180914933316707105009248960814921465681956792191416760665299694180526760284922837494706424443747428740900047510907222820027 -4261167178860446527279234457781216359164057184535569399549566971774741437839602392078186827336187328588770123788484074481402098 -3638667122645479534954458961543608733857643210245423464371257036918768143627288762652953247716922315676522443004771243444008790 -3924515546743559568892457871009003770852048769643235894176832052809028875813896140562020415910166599360845331504914716199418304 -9539930208848580218543922990732130838884473458954810662182599563214576790823089949536669626168272941913640024171496275351316441 -6014586121604715045014833563011298445249992633905973084716393755263990314978408352185626630254184110544304520462563363100889663 -1480056209827971737404379030390423810733649879094610502529510552900145205746169635070607870308190199905737823014183804945008242 -0269907341608215559877018486447313197581053179139277368261940240899846162645640750726730556726252880111678045833842135360488520 -9452683639389882051701960541518755636274003173728067144992243393027569642308110984514593826650393132965688544590683455796310124 -7380252617100440281579567534384005518334110526934315682916800234325208500512344342386934373532140277510905603770493859349394883 -1640841298979540048287075269187639921568678590871873233480612103263772909669941767642148108401983790040311768132667513845995891 -0797228841202589730512673576721011566549518209931565777081305309555092032097475454967752699515363312040210695622598933787975405 -8668051227922162902176856358741680893763627061240389531754672702747011947735221029021238076999742096989024601711374129582948446 -1940517877834907351003862153234670764674347412348064152632718218140233582465116935278604919054339813155764852687263384383689198 -1258507121750424356317899666874328759136117897322624713333775442411946490404548479399911860814088039900005338783292400154353212 -3215026566497194921100428678498475477212368831513037002482731701747625115899231609161962690257412946823057745227816040916263135 -5553936624046126710513840693074241292678003250027162357678547764315313001417556750343221645935609713903330012474781806462752509 -0087160096352464233135718030584278086059148140723626725159134239250134423251753319043440628036779710209805517160099782393064078 -9318218498563579335348341700906218700126032521018782542069807548617891695409073329049001835630809969460708500370067751685336992 -4208076385552541906663566236770990347477457147392506695455104977958316161334777343709329582406111068678972797895379263213969728 -6469519015224118923867472889765223881558607274601638396572334489644055785283085612422941306760043896876352796674858662547224493 -7581545382840053688960159322695550231110088020621219817091426507061324686155465441741816208389678694769740607167732243171488972 -4513458865704194161496940570841680853750653077515467382681747134693802486964790650970100691348806372555667204130083389487834234 -8611747863343669889389552604708894518837779002018609033906535124466043777729170830388281007572831090596749539330676454829092268 -2614980773184238784409092097541705502166871511835967598046040179529035245968990886914099394023190993075959231506769917989928255 -5078404017663690714097396036195442424905417384596337491669874839339606038090162958546298191413554764614281624619030688715839038 -2641999347004416078674706237266340276545528202969242926658631976187485588763571283416465910176657402769591804490385811120607894 -1022069138109039758566977843736614783843237277066124548095396035264485535383579339344672494958836028783883577568562124831488748 -5036220302308126851203910148295691777409108647096999242270479109438402097077523126876642469999412297820631461204592271671208573 -3765990012871705693020962224239694872611037068970786438641717866334183625110030788667653078611800346467240202316395411589819234 -3782933301188992583378339987527190128332463154672014687853873904582770103495961273158433396887983077621367280840979561172209874 -3749199929332536186794255922364823419316096604597225233951718116228041916547239168206812159635533832324993459328359641335851160 -0949078067861678051433564861906686233060038981581529250289577929864989790385982845786299381823508035058298434160670694386088772 -8589603171909191258961043702444348933790044242468360895051180975009846570524502293795875915077460542906777905339916008769533025 -4696790001285278712597004232911565273828035212555295118585512821803987256554356248161862945364958160311031123882054615472804301 -2136763839544335242427199077661794515629181187002289822787279783807001282765862055208820154228904904403489678312786030757766407 -9614871264207972090235920749815254428999808582182551807788105640461738443833466880592889986393806973211194934814261892282034345 -1053682892737737957362804191027861071649489484546703968499730625323764928679998205513025454613668271807284174919717885935584552 -0107677739834015517323287238318659939175109001778305487593186279160892671682768468572465735391214037913879126299875773890935302 -1453192783717188719965961795655288342172822178539274975297334507529484119848624649135862288188339473719284880061285948938876451 -1104549929363155396273207050870222760506597442331198500643525825130190102095717730285667006432704158844993996831311067931052472 -0828794534801481162296313627002145147495573308897739685396596733882610495059540555269595443659894160127867987587635803471525887 -9824022973580621392509031573913634949593512565298787398230994893915219176490569710003371534856099636970419816555736516423169506 -9878869772576948330900142931880528301401489012367453237909670821957956278129934157555287021598067976133621454184066239649408611 -9449658706952732276667554753119961137301412966671524990966931464264571223338509226807775956572226631814170860570478467598493299 -6650524655470467246688640367290038855618731841663664529545949374735107916410687959478366394614227095766286594581538618985047713 -6086084723895749993359399578577946854255073324766404400181960974843071723540051597517023301307855898898894953430083847202358708 -4753978848939024247917094291054930385042551054372444060172056724142258138979831515270370976027807892767076899036493276499539268 -4888375835344223898032733332908158386194226863203069893727606532739301723911436149446573440019514355993413403576684311443713663 -8296174705195869577823179373277139184472357378750746123040139737885926265459733919518384739329034183096218738593256149149459218 -8744604285228489074099091055498838353604537087151030264581202847750393201247650508352763633370859358894270796201667489608183108 -4803757550419070833057341387873914307394706611793081307683075761521436160450412298883575182283341357874191269212976379223012176 -4435149804710266828206094765772134040146772381477199506975830561360349698395986931196641173574221626045221904844792851097031410 -0140901477445628979104022134212056527853288372076077175566962012356161842830489257088195443545165486451856025672191097292162212 -0064993358872969642733510540028442337052528489493327308542431944612538748472046808937048692371405185247438306806803215040744971 -5863180250517768423942955033295423284494978569038179153339219650484893674393537942959738721683811008504606623434622402463074587 -1057835094428515977317637880823368056821605598124838652727786262421298250352722448869673429472764531868054225289565474229567344 -3983238067434669068143443350182793359210352492378691479389127933138449974060689160199725860332928925347596191014918077016053014 -9909206404814481317875154662284644158413522012241871567063512207157398398808577747347614035401411443650498361772558269985219726 -7744531085141281581884696688318667987388073192993652661160923279555067568241657394706279105517300977887168465546838484164576246 -9611748410338839797298552575152326071882814435353560145135335186607329942289657269580962404267932188572721339477733166705898691 -7946378873728294158344802516673294879896454520313415594420541327407109273815189756012820920103635963852069701484919842956064247 -4874591841062298195410390631359369161750834793590724525846541010552709961171248502344146476896644307714211419632056930049968152 -0852013636597020207693222771451991722621240083418836922565030460173149090294177983564964216327697927947088353859239269055188074 -2400549504774664967997419613371907388057256285629514767888950107220270166626488534296499500671373046737811115964349503266901011 -7846949189277918675793279134349974486913260503583373441600579959916070999842932572749268240452265295033063113981992389359199980 -1807261813286492446582855762770791231541210822077548388510880369998042947014204967053843960432445968862263380028288322991265906 -2762645433260880544005259370505499891003063278739034550726117946384596067905756389481622864019774830490639904899687312014368603 -0877598939078117695418432932115534755404639291467885726434445252435059379183430846339103652602297046524638381772417363883263654 -8359730049870608112690328069372460928467332597727838745244400830648941526818883943362511766258737811338084111308530830389543560 -2410247474136168092178004494614768123474893065682802068994067272461583528237284734448787471492174143726629957921201303786784836 -3419244084207146670255645738668183101897287707313517219103923810981141387894446864639750358126083692639837682548305250192071549 -3436195357834369331471914469743643722462664355231433520254139779344070714371148189113613561574794491575113019678653016828154505 -4439128393642435861391888228862161582205771186938296499633571218847225435482241772976029740807151825694346388408247223423817081 -4171338859609192030035030504936231948955422469935021643277709598491047020926862755743386040228384976638566676326191183360208322 -3510862362886970176404175491659583359746924395962009940383204211293131363439339555697993521569537948812781342292800263161257581 -5726969821251892647951678196842942528264097032325730950425154233756415408461741348237674984518538018983212811201588754756679009 -4778823499024627173529601893322692810338013854983738107737211008580929848242105038076828712411467725165215358148210018424891037 -1496776225022474894349628318466731097093204838845621769757160832213029122420309244726997275518899114578190401052089674878889558 -2150627813505105989559012023523240177523105542484058646465606833626398767902073791909228024464129808047176621447241995834760361 -6052017973982660323612282677894938232580284277106494794233888932365369180563831962638387127741187828046331415436706723759407894 -5180894648613337149931873741726031450761346316713499884971063033267583243155357639761188673059015634957451632776491096066497095 -7359097724129074389636668836328680896804756391700054500433769926703593431467797993796585602417512809374217324038244052246360155 -0320127339112689809171849857331267778192107524355671645529083978652864384633410979534318842451250352236642968028403645196181521 -4118883887076525329129847815663385510560303081843081502700312066224535446821931779450723308317216723461024137619749777688133771 -6860925861993428345905718490095572908986315074234835981417267582301259888782018674341030424958141289788351602467046638469818924 -0143824935249223588362256342022083873670928848969341583470612068807101099916137780686058304339569283167254333748135808339800772 -9845042645815548051061661959342234028016893229602886364367950621055704775648720419681077874002883738984453187494339471937282961 -6185757617018491828131168967624272567910874050935111978401025105754755523134728391834040088198125315748002405260114662632225537 -0001356522238346600683651153474644012974963965580249070955634679932657691126596449770936543341015260416997826513343646145044283 -4828874167962259991499503673600129164632862005208870245173240873585329607224314026307889603968799682624300985376989091014318333 -4168596789573195113960639290119776051474016854378309232971533989042184885619296187870057410925857690307120789952188315701548184 -7815816015467871136014863206025674274535612873638378381437080759117487117954420502148760971346576864484963796596882357424854163 -7278776070084196458814159988413439534481041061939764299982929635630954177993909110795537307351830954498765311432170571984412940 -4866643127910829515007652463394937334032003939291631862785106424516937511685939908344347334073225050202328398177347110978277589 -8801678473026832588217149008639268101698714830248585119117348101801713106570301483277093069752495633755950440945309944552577536 -9617526174545226424763055218268088790352736241937230497521917254797890205799826169553805927031554132395993133419267021828416925 -0588595739388380595646159745519694245103070425108579498054959496392270944865180508024017295767451162258748775694293117545535076 -8702772928743292051022384687311462236447455075709507160040356608423402093661525464261088741775321017969842598962589897299430978 -6237136476697160214138655273076686746008630927947783830802379210660809805387482347921808311217785296709410669748246476297410657 -4956721962293257951828094615247811594706401567441027963919853253912294488061757086648296894406025064932611868738979275806148213 -9236140986639524620047147846000572917224921424609362686790157846221057427556655153843449488971368941339909014048314921826442675 -5366378038534835924469785482056822213525701444985254633404597205774596447015868437597513680309327466710395924280351223623339183 -9261759487436784234076954133371789265925256106206142125748755816777807349896143234487553341181444300315188799020606387261852065 -6449231339989879656134113568400091770993505914272783860814830316499113207580889761456971111735531955653301180535329421263128180 -9593132987957417462820592468596242875901632353771559986709766159903387546786798526051530972235857175987208754226458183961092508 -7166010270941368051527588903270384190676373547534758318035208065713808112773649467017099455130795910402044915843292687098488409 -1937469715418217414858420673158652244798733546985659728265347906685952080207655697652213278741491999837300249957163250199620558 -8228542398195856592161847035652366519403982135370687548941385579105164032051119406009514327346290711302155896619001736994882959 -3637688922930586118891425546901071630399830689323382607140358997300211646909715463890915726479319114588493474688432142961034974 -3846092487931514115420051603659542019430636869539365331821500084544038227936250365288930517356505814134292254191756084661422225 -7491630641568207270697424777290522332626816338241009039782131614678232351819731901409187134000842000166738975995925878926795417 -7070750968877352578247753117115107850387026880348329157736320326010941179590211312594408978595708610843851283204781916328035469 -9579425490712849875219973084577346692279033275981940434988363957383909743141776369454560267346747976256694629456374012164182136 -5715566001611830336152118124700907641876141203182109095013901373890817946278609009427237417191831719001170380251629245333691467 -3777911831700858846402803605902436628175309291503492499557547037759922326055839219601687167716391664999501580752878380637519910 -2345655297190543682328955031766959976133728834616422943753268441547260728586436316967787919247613972239277147037959837372479832 -1264917138428370036605146743753527478105136932962495735773676134552135849746496312485051160777893753074748519890909181403083444 -1019752269689676763134331558096188560591351764633604225395078892173960817806638672836991960044167937282088675278982806967963563 -1646009447412568269213391779579827953653829284427738902923460839464242874336523939561058096952551188341759036552715805796071087 -4514073980834947668053426086988984219335479873558292410478690803080693664498437799009591988658726439726875547569087833595254435 -9375888306479510358575648650751703046541164954438171217850843228076528589259852655316343249086105052230853543970799873699798265 -0497165101239642555970983822927664186264700494353584434852254137560612395432178721562325965038387864052788810184396252265391565 -9637587742861000445296706995627451301787108835157787393998256171661400401789319408568582769562951011299994449045177879050273430 -2769638085862574311449284998834663396793439445498698446119611616703979283028314824805123683773362437290195603306996434216889157 -9746240352274295235857973544138134283682808329702423798784675201114018293748073782256043515882634590777226313897991318556273667 -4701746730536780180098002090253702648694901490740529266632381315672027202981413355374788940709298520432491519903507229198264330 -8070148149525433117389602780506057744721609297582112109576333690538110175139908485162827329907610365996630627743121137187293998 -5104791573207818901442004558359267736381147580646586301522698902268860041597652832411905302035950359208853670857974818287006889 -8341316079342584982610662915730694074266548963632208359785240542883719157226848170269734749166834340935627403531307648991671361 -0980972555646214322144321439065894684434469993258702669138171566031352957356377641038155398195278908409758982420498643103410893 -4371601001168990355540734973104369357289155288304862691393888938344400557230712070949783924178880475136899894295722616103660902 -2650480054074532640486048424756932242389804525662345983096982594522899748828272298964877383316038674083325253436014966605240140 -3856519566975050055663208955514019483009113366052382153385562181732228724721105677879336134186949728875130780075511950816508916 -8078373724394599222427487550133729616625008462045077201670397039714132392823230257154531053190372696559721189464062559107218427 -5533555275076610788085420797340154399319379967237990930040901555785674670104205199936906742420190549652702261090687000720033243 -6220111323366364001766649253557628713894497231901067623752708357435827393686138195041002675760831950319558894058730884453262921 -2672277003207147557184524907281442713352109540367339513087567600977008089227949901291846746947778742548425956666175882640922513 -1341364992092721464190832131115386139839119999152547728030982443332120739263533376607896512917871745789498861904805336640005368 -7658494769549719799407250503812834345058648333149043237321838262779633765459673785919568562329102220327192186018538985265090758 -9891469225677893167626557199385256479464450147340948798817312917938176509424351376822942297600700655298360387396846679746727135 -5585419624514115780086956162546737430419445855772977848266264876064891998070796161296726855803937113862539594644902156882096859 -9369735292641205270247208512449851304357935258980017450069350537303506725253901558161348011161752800022469320895146408450548005 -0250792460158595347750598522833094847081172052676835161342784300572879217498951077354750791561533069799550859447965317570533329 -2215924262194811929293333565918894008757945953561673129802085846175034801490539407544733104736094736753035909391436637603434211 -3003828547025999647155773214469770001753156334255534694689533941988376812539304881256890976599139258146884644045613614613975749 -6800289970404751783592624836999186310592737935219914459902710041374388930994677919752362443845898391179354567028930335795630336 -8505759963363966237797610984127231223565214326257640335015223496586184791131912377414208061741646388077399037761412502229212389 -2367769534630970786705110465175915418118488516256049569042500049966228999665875815493320452276993289094558376973109778079159470 -6740493910513290939463082366133739451516673396242163998658427933891438988618879026121788841470475041492666218138874169322768351 -0357303411110414929271994301686020384849443986791255124503432672170825267728337655437754688169388290097504447359015466216468554 -8192240142847884347063706580178899765888936207019662263339819670804657575316021484690040614562949295841542317355852873318646994 -6622263158780477778507038872483270954479088649415292887077869603719840994025710565546888311161500807362774885446004022146890733 -5176307819234962298055575706826929453118700498832781969398229886642207165799263179818071674130902753482145042794765741675062383 -2751302275326116756435072977812989216925193208517438463427139377868288067976273977283764655073728859395428187073500573181560080 -1845833119022235738677681522695682631533441089840982284202257527507809093077654733824218731845673599302802574363126193666185391 -3166900131346963127277355530406427740614776135936937104096485949875917688047955787215898240293170537866227146364747857832752126 -4669645223062976703005533676266421855057200556768903274559944244985743499257659816488004923631139517399183550005987669212203452 -6297157628559223790562907965128004350109267209905657347407682698178194211365899319173140023292544735908289515011446104226422300 -8502054721545809152280155719799579471628904200160322267901551608506906168294064129630324866997658363940456422902104004108177137 -8611455694956943077268590839116881863962149614279260195002902444128093061737269752861412765172102748566330731758569318211290162 -2118077432186424807711637317365270035214176328074110410477259086405158562676552653953649314850972984909614735542131768665131395 -9130318975369645829745860603018652270421321400871933193989890358079853776989047665775272263249474986926107253991947206182591757 -4325629926598371530112760898633445089584186304063488458578614511450976053503391266403574144006236271752461276059535144816112805 -9310962691558816998084824217608875970240851404516558899699931821439837002656912679683111747809512293159335274051955163666587739 -3902386789985655245291475443305453851903636698632422663873769701394003436882941095444088054500028643416504275287739285414766428 -6731684059779922460344447840778233714899809573570342484286950672469381242333715669289828470432847009362616600780028432025743033 -2276600041430073716292091375271727222342465787797822281415644677410001912257463959430983836963509288786612692459635796134586826 -9782224784159961526251458006646854715817922665126779115397720973464372703397941849152840323345005890646175543131277561028472366 -6526167561528291467123805366888888939086346365110568387291388627679455761130295567840390067905361907699677554800553539940686367 -5318634933920742765367288875699774586510799452591417236786364826083325845867157040527831875773026806940962750032015566117391953 -7493598975572064199793468603272146721884132503560554819191261369489899329392181449153306365084506335645635211479940033483680033 -5666857577286998209607341637144223997808492861427974015972123407497307671199006287616123632355515817115708130939568369663610192 -1205647133800994070282776117664323692713443344045889466640364601504907846992739340462456897562574412472399343745023522153250853 -3330319212199788930516095800858918371890861157149091660451404495244272634139073531985568539542425087248882661841548689414190274 -9339962909966865014181214015249254327772461905399600921043142492498857240896128334661531817157722725029302364254696461600120855 -0275915123664954327692393323944686811113159039391999178218124646929218008261416648150717574114279175738099624550954907847794987 -7571438595941848638134927452374529897917662628583906227103605014116793319790628080501185855732090732338304609688113595225239617 -9130230309512350610529542991215174872450882806867068241227281773112095423160023040208987280292016395893990306260033588936149291 -3745658203217218584383948667226718968580182712181973947156555599253392240064780457939033740602796118129681262618905670233538489 -4412418271808065273371380680584774737632471892264742468899650839254371362867805781616736426407895133489629389395846145646724319 -8489210495984684333844268191310832723383161085211929007986759567690696951893569242504292424131665261321552489038411809330750578 -6574010925786704765333558400961864682658986685222505394734228960816617397028634600968531515638569668302469579752350128387282475 -7078834237219808682337835724461339925697109440081470255808977861161896407485691000442893960515108700590859410043250399284457162 -6826005017559754965121660973424054878627050600950197534543970583792709158920574211453104472613133226055927030752116724686804441 -3714997658728942284217722016417944347609973564690519305766123183125986230197933675112901682033357194516255841107152642532141304 -1057671755594723253182271537993425618933500230542903348744403011513962182314508888904498037845069539547674219152154472098348463 -4167698979868847784276420293320039606112408368549434641654634849595716003611837153708427260322734964264330233981684490094968636 -5842205187892994596332543353231430273153910962730263311288493948447613898642287416656513718409931065308355871917064045665758537 -9483067464396684153711784947324331651250593602460374159868530726671454450164268258494437853338327466263116015842104260460184775 -9918327983152500807062535153855232542858746567492036007943220587038833257219577445237712255513226337182088357385642452970244677 -7796979178949646284046620756567408638628381588842960380640158418933607236535455721736245193350129856456748190582611676103108397 -7474868470568488770868160856619425486013084529184753412392811134951027143914884376770407337322922148422893409126222728159404831 -4025970172900887552972543571216650363430374550536726543515591505239084581125341961497432836939375430662456975979411649814396281 -1376673671354389313333179969625064091561856231653660770117134131024861451548997992193443491241771601133879416546391689721119253 -7812382563778834433247309068407407067582779720037171842393136498269365501469642413788690972515921121053433102407538535462479581 -9706575053071949026852790205126415890557321745536935615519559505631029223517371185086529237733348358256190743027438758336144576 -9006414531022472111125196202814342278375571427110180645405421603811535358205031055882679708681076022342218218061708622772715466 -7014411937404524372862470846165036293398376604107823885481595132489354330681978934995519374885800444029796119672180751145597990 -2217635875626883098820646597303117864519547801664674186453314965253480085119898512655154794357106383983041271503641895125251110 -3512252235837181461231288315033867607629725036297297118913502488196313074376766607719647753171764776345290627421411392489636355 -9367329989873888631983207743830247822211335192876356701620415814984875713241717521999471919347104942898869901044085358319426464 -3886932632919049176756333953836633255259101098478704964812325499313834184343270599669768380535271527046781188364512125103089728 -9085400532850996923140563913725057699601728324308946983801623506065312434754540522710960789580013319731801582815683477412184104 -0482120489559053393661539069411739064074531226478250805786509477678364657275374151794004014104036094940006833641747026194721664 -6223030054108461763808112515000136243498515799834948548188322786124370768805042850586372228996897524679407164853720521651414447 -2045659821087414454414430804224189873085215197748925231475200893842348103097879724089151789730563882183249354356129862099874841 -1315828776287414001746118239879779806183081196189658013775774856212674965726153082362347461854112895332344854176341904165597409 -1213515137476784596057537684608135941219538557595828609988436459029859804112595309586038750020095414785054256852539919216535980 -4484140865975650257767631970278524142097436320367062170812973468859967284286099661751054315067110058820945519136720185944895374 -7742692644036659798892433853855040190699363942257261289132684570773772398269153067661790938476854192452194252168071064023197248 -0852041937859186893599452942342756186406516322350714595377388609314520833365297395472603829432190992959559426685189491282347057 -5433185143289951693194250541689460837628217616946850778491455755537650206858581434235195035172795441448516354831307931147174885 -0450942348007827481803050062279398301950579282155758680606572572109484512358059858330484516434220157350961537316843651345720503 -4380803663067690067136823238680695720389449212682650668097530448778728543739620300359368766106338322729357455486494754904098461 -3264642960305581246967575470210497486665490038206044077023048630121578302316138939937893860519106763145890200076403810118822241 -7107639168089983991587862527040150737165433796689810859573435301169366192576251898692883826389304101824844158348543802249127582 -0669598166832510431109943775944521732861864105283325341271770704933734103372804558821648326293865298432780241079718755089452707 -3568107971104085428061715527742724933050823192969880425640410593395489624255402189258495659521212800172822796344882503818407485 -4194972547530169348356862971069263077075953903800152306693089832494384056021498593498576727061441507427007792270872575143948044 -1172788991936383893646302947517752222941032857029795292428946787677455477081292410506859204482638074930525197495818984377516119 -8708727404823062734669585099177621030117278743659596151369099005394128728746425149879168020045121622056893025422397438542352826 -5536557575335193916360622332260209029723091397745281648820143235533928946294383911963312581783465260511469849131842805230470062 -9799128949323644060685917638538635211442541566486657515013727896653746677089071768007544683389875228688476415065723679786222857 -5615573863935839938823973115950563644124889855629743447770458847381603667537087961954383608440966294356327727154342428403717584 -6135719365304945156195903748702135001035781887797234160617684449358873860897697192990886253607384422197173334101390229305548708 -7355386834242660296627412137907269283682869702323709426719706244145140528071269497974044139621935732608883353990706800769609401 -4117824188478783409286690916041542923147052848706784080198351893505523979781915688089182588499549735693880215954821551279637108 -4670168752285459430877011145545186817108898834243886734027847064654587388165854257852169040893626949216503073312235415138548138 -8311486748387427946913806861679281620866414231742557923760474181682196182819449180979395793050862114181314437692082443568986323 -8048322367949325657177291617359572925594555792044926031542356556453504106573058251613848469630469333674263842694166478603019606 -2241419420107086119951172130953831261301246015464350985640311185360710868324911647982596380951605647282292847958812174415734380 -0207875370509633314857109554449234589264638078127939118196136645009058962335018366740029205503954796978369681506112588271652726 -5224125202089733016629542238144949897132285324338195131993745529968240465385054246763922445031407439625787648928055552616882109 -2793536617404132317781661381899391556171029177272445009604125493001682989300317084296686416290208482553512764370697922889547543 -8188433691033017668731418898412943576673580084814405684350547059200277266867531820522833168888834691511550304066275553413432816 -6069781060072723977215798057681530374205235352090719032425665651313169145801463663003622748057443073337332287692516062915866474 -0991144941963456299854456491439712458220412985735998277280486665724362417204461793739331274746630407706323572187551658131522029 -1128985384630705817449509424373236680198643102398192723995214101875334517122923435752591437827690137749416921444994412824571229 -0933149859869844034267514737213635247382994476023098139584524288805316943149032915781109345152673212416893459588048333327424649 -8431499800476711779747358632413776057189971388402676768615975922425552726845845057116844980552680355154340958763735731899549226 -8999746969039035522234132566990886859367771300359825363759150761208120895977530444860283076544729935781975800213516901282765869 -8578384564148446021966192696855640744733543364607326875346561423047230035981121889907856300901288650704791837601613641976512860 -4782737185453902550739147496508870329447551421595794641391271174654998339963075546317914475664543351090858707240517793471880344 -0532832780888888968522715514533732512924561999915854959906252640056974250958067417634581049729155174966017949852499049433553005 -1013570953208696598838952288133824762193269724513979589866416713036164401176767184475902330276700096926543877198993766233942302 -1558731482683686439823710758826362624215320659618968974586082717778992330445630506757688512508423035162517304559268454636939287 -0350643207571320038261933704850349754594287810435189119965241800581118358691680807766625340717143030794170306528880710869836401 -7542021244067320014248296046012617744009265286583021536650506535157160764351137973007620114482584140630719966828687210278471738 -3972594767241483050839240086921327315906881022442251582254034730627668558044239515436332898375100074941146541911588915186647677 -0697122022586499143860386882839929813751234590790881003673047769341255221587898768035294711863803910391010620206350075218304635 -0915512582808181894140392610882201933416172227163788895549745243551406730258634514282881847090763083210060265428731131498145196 -1501512625884967191270103224021116637844888067197984181082849059840793925774486252348044423174920237439188586936474269289045183 -9546757728181045784907692074408445085975750656689918729547020741600264958315888287557582915125013916814828453001978125724956413 -3762013269830490722798916645093224443451891592652341999436840113601558507630551284115296518475712532341410529593546552381421688 -0535075660768315265313017230395001783344059304089071262026544062275821507449160749765605530180854702975356649517426392492153632 -4462229922158652059017569592409947967925255644154395071833612619360534506981545280294824268624971434641426791536487863590137885 -4122860079882835156235088149203967906043976190683635109983922591971046404170885166646247578979128875141127938069850765269247014 -1129866849265718274907637855113066201183196338524085201233097892015346569822121339489136356302467977157281536251430774161642528 -4989929495806193845801738597980701228751796772240750395477795189154079611747433960930484756810247462060407330702869333431213592 -2584408285550889731205066850550890247663800179003073740079409662955268984464235081016863796902152306425169108972643255331837648 -1846495490902027499953838660575831876113795963871581292212984733841932116361051031722680807069640515568611052917719380714508500 -4730368154761060853591867016650935034777443474265562879400822197268954342492544791524055284219250660710445080227842874954141063 -2999165237216316240588784731941187402326266210523501276042349025855852110771327522344504598981978041650966736224822421754899433 -2237345937661408885897695793709671176319094949111986436639240560063478917538944076082940836147591761497957719533329126550091001 -7598999755791735199200904311392506066249434460145555306422386713523721542555336766166589674039359217816140532997872100172694264 -6085462229902194135463330821695657542854346332891821785703935541518889566865952336969577854576497261635473651422862788436766766 -9330926718781006335569837395334762725138935227106710853342363931868717426383038886351253414292607302835343171708502682390162568 -2759725885383603903963134803626246023341697535265756560586925977858745569648871684971845885034365173610581864076735566479105747 -1316975221277998480665738247654385735782940591833339656446094875845628844928541054371377477189441032462815404076598890156931227 -5084047857098057061549088214576495134500797236087647217879151791731034614882352668503598335757353547259171118367223224526235321 -0797097525215466425082977546510079918770199122108187284931098479825643355771575695825936128687263528517399780086601002282738464 -5882108977367740469432474363253310136350409797015594231680654761034810033039280285322415385168502267113255563957206593967018787 -3765499022319437900072126982943230712423709856742749800481145115762174065774560039072882469409389283337021169962653600686979665 -4601581997618072107980461792417647044978305789885381659804666757198975786036139854382381412304035407153678163339829269303413079 -4804720639771780250811522331538529037693400650190090078194406321327819886301852415216493527923345326577327202798642624789731981 -1262413264233591997549583133381940611046336903584987787247990058376502498817637376736904140547566821566316367905947287384644751 -5776817509537024183629053964111738625804577685331848301319393405578215972673272833105126341165662081776587402862223607527237841 -3028857137505052452119497280084550108942293030946862851209526606327291674235480503744471700882929025765105260116471991605614081 -9340100683840148792620022922546803909003134351687693370396127613819896251128556322124687119185535407506368947843781106277912265 -5837860085277971472343245356960717599185735265281223333386501908378356024658012834775741482445665420888316355875215276412206400 -1493889817668204302273257693995210600140074382228307911629842034054862116792315868260039297702147104111933826341459504324514560 -4753667010660505615221578575743422389046538837003732162433830910088895626144829160559920876420293005201234062697339903600869729 -6354021869352141987691776069755076073591529011311969753213483772524805097648788519425735403544963778868397356812064242294599252 -3007002284988957442402223796792807680185699679494949671140500739304141518373349678385232543712822588498429151363366914067465545 -8768505870421737992314357883218463757749966400771061631074878673057982116800200818694276568644501192730861238043718483873582182 -2517111306024948547742611078204983908881805478217286398022649611447119014425201196572509914583877236045184752832586045682283149 -1376425079937583047628837215348969478849396716756967260659465804416943561566523910593617918317955498182529845524570831173841723 -1739036166752846450279902298627287438597800774942709861167238037011909085160508767640035085875297386568223167138576660874567993 -2749444684052418908020211162253183694144723421354516311236418763218072849726536005435788876083510665834462678112083821685346156 -4979778261313034734593447279308534789267778320343662336147199781647935359075816167778411424508493052174895307203375091235720947 -7206632108909493796814807157234843620292819404196257674170712616419318834035027854762640349933755746419728237290445935893359476 -7972523340752476063451026561953128800722191374241698295085331249527419993680680244353440653002242129183827478637542127263140061 -6106361246560664390746249407209413785337414934577733325155578012914242942249188259728108681483189855141297703781608717770284437 -2459983080689617774602481236618573771655193699359105459132425259318658958293509205828433466503731104595644550263940782605577596 -7182234637562052669040625972588934688697821675314146092726738283785184154736418695256280074985786382718815935852352072100348316 -6798709996334119952629721938215622401513286500076236957073743607147857811179119661766817565585334251822559283874472847953361475 -8077368484549177973605286548826253514295310845993496549862916394171225254015547467894554807332772219846678815481086218479850253 -1557723569466563274008492657223419903746768944164337126986375831639044695750746490501676088871281694494821017358352031765251392 -3419994305802489285895038983304368890483549511884971605938842543322203428568381657097437964153561863023468226697072309642108698 -3155924019915150179568158859379848450337436841515789553391587979303261228659176045375192003213895824215877498665997186076059865 -2999137472267175701076913261675494050812219217526275916261893447733447516002165559492227300890776947227359067981526656072673696 -8601098495166116027734424221556221472614130194797807299983947972112789211510616421380969053402247170620773625487954585201101683 -3246912051329707460282887222043348831157339566467828142441386949856139091307353393247884498427787480035549002968948796358423112 -1150576199110861158548115562719716941558388002376600504843363323295796185489468606412792484061811432762347078760084900402466948 -4752997880608034066503743367113742314926769742881109939696550927489876774818149369014784149716022391683583701555271412269098049 -4122947315189371954201913791790379829165934721428116210038908501041491200253464990161405881080768468552171131345401309484164251 -2900730978305956981781132350165898118101889333020350831669690402919195278513062935410969054110767363793161548411520509850489790 -6317140142444713262780353377445709754525526526100220931420853524029521161445026020859823577131205174501439000115119816705181410 -4499991523210057790779337069784661258008182657881453125037535965670105347302421579889956188914279278573529309721593121892469205 -5508146256593369763940336135259800659809619929794178470062048041370071430831208645554427627646035391559292722312680898801625334 -1648967526716449029810215023304697906807519889979105852637730516484206305531886474058371893246706713362439898050285759339179316 -3759482577410685684593596493926547017312369150876917333521714609230709447558843397643743851645851153700140054595127571231949538 -3562024855350127743440468170916592187245116700044293261821848456699166330596624128415577062851344089770503995251522564366175797 -8477766635255068732724822778949890633417123111391309938080502220545229819981424955190249946666498348138015162432180329219887241 -8326147305998052694691664218432203744648063166741259109591553998325744681167769329433557902221338261010505326465825260282053606 -1089081066369978288230079958586716934294819087031912657105656191281125863299636207713663767265987214971817617524167760055475985 -5956659161052521449892118359418646820302358805073751690270525811449427458601574354728795417080178749838253936083489079736869589 -4756040554221482987126925729358987605986625930694194674956898248814661136244491613548633391179640626903451535330197156879634503 -5269657254348772763363513450959859105237330221730828709908803147787150002260299247932869706456162552333441429917744946610133738 -5165094570822740809419687589443353580562603424278039485215120717937567901150913213688361129548604982677760158365547321585786532 -5721986004191270987440236388972839714531938869537328769699467486823118683325371541953906389947764104960444262942308606574783420 -0825423274999976416479179163665065444342056794814403615470874263539258759123358841581177125724615901000777617590704389294753780 -6742419699812742131364238655136167729098672287631443854160975671169256136755724718145831652290376122821890697634805848496276496 -3900848450956356316829187800619138955746586281240305331127062820418337136267131988611645101253214320267600642044789378308027813 -7768142101816225544376840102775693516634889161775441232950103285109025549587962218777853283361116377890977393111956211092720773 -8166062372469258701826599477785259752674604446062893635372304334593302933414637458058589360745838888558751703330971096452276811 -2564850420537564339701047323195837094030546459418840734199428562634836997313660393990033302759129375346102025176996197579767609 -8872870135828449673289983810960029335233706075121561262257287764860415827304140209641297619500143080704997500176861691643727930 -3523914550868909381989245660265536145050317774721868915147125702074806836551953216452075481799528663908105214114354861340552001 -1593559589951778598427586959614078571783195940556392469576085221648989891950185568932203712798348499019366215767685195049047391 -3677450698912939130282894253043150590674429032380702463421683822229640128060377145549638924052619130706857319423374607432012118 -3201722283329551818782298921051193764095244804825793425784091160773607662095205922340014721050275267634431286245410339294369403 -2407761928636596422414810603411396624762992445889584536298033386878386163466235099237586521069756385945437909851885956052776101 -4551892967264629771755662186507262378960508623998075765778878560332855343021946501189553259398537769291592769103084773248272732 -9106997275950792264693136508466046590049216555344492329753333502148103978681698340982507624277442543719542272924397318970160593 -5003643337652703728951291818235842005801228735393820041591928726474748137284662169580644065969190131576241311478203049648965040 -8986752392715741495979561841249049222033021019539768600866686767034142327899022898431650915325022449300084738502689817549514938 -9360763437700859982761849014720209991738148978736994931574590369983794309597034958260372656270656787930070334337332515206838552 -4451175037964641122624713478708404279076794770827862704532161639277525181767823672699083856308324336587319988741595847500500923 -3042463864865181170367979354550819973787820266099597727415684485159423697903917044701020373206808416942704276522208882269559354 -3048080200899219985092787175219925954199186801590258882778436766885446862979938621696230463254471930200991285622531815432909506 -4494465194385245878424876179842789271630946260267264275467756829223006003558035998437034034758226419782837401641627699056717218 -4254906820448949384513753027180628971432660348348526219339979967375196656324459448972917993637121707012531419527163028051764969 -5795056709264059459045347065077313003930925374715251843125468051992798115117609874425243624614071216341941951333443769594712905 -9786422961702175763231201440570153261798473160575498751716552119467779736203318520988291431980397558340560735449110931384906041 -4425505790631864513694023511858116075339628625002969403915799344384754821079679161200533710912237340094421570796695940926114650 -7558163384552078162151051048460153091046870543482529259775071328325205703384361917997334121827387863984861026567298429845774499 -7024151222382954834390823993921385978213128615164507102313528814208567079688499912070171914927156859122712993045849060653099070 -9429307166946990362134229731057708239430020956417601592711428461279614801214510176796114831132813782448589275144006367262952407 -6718941975166588281116323921210724119843734085559061091993083658912394337924185488399990441930203011310984521684045028699686488 -1289068200800732284238439423123562064066343303384293220311845805205731603115472146721163687728630207002750751276592100892794448 -5346713601139175262412572458619231213504622828349869740030359059521925593845499598173510818770588358689016443776827808183107359 -0509643523301353915236067697449265692352443278187907371809463832094767055096167823904552345535023947977150405485951950799761287 -0296312146861071422545805752124301678869184550494728174693762162879350214577985621448093757895707899661121270041521839117379026 -8409726864010205799722565483699810469720898682668219634727965108320651761711145638969114309423068089263623838477654883333920986 -0701982653061769206880551891091640218809670563459796391962611157072335109465122237619770084725609181414534082646884976727487576 -3526106930335563839568672131933814040405238902124634964052890265269753914225841472646860370300002991439661062411618062909298184 -5489284594499017553239845981638823575689673477128445661568350850251951827238826810782941625211567718831490113495662231409070347 -0761858518186015339779421490664354210470217380607247145985104277374945800693689645130689632481933731656998223732805590077884069 -9539065740290512427091282228814664586680546652097563995149483899551962642839270109575078586841792310434801955703204357001468021 -8203312934682104375075307914019684558657139598128081066927393125488596174624606696359883862043330061635166484866461998328167370 -0125977272761404461319903866680344397363067561278546743044165247263103505646656505183679223334371532724158953424891372755170794 -6917119468055808943262561786048361427010843965462318965409483983665658166958859076133376429071237660115286920877219457193653148 -2210582961962854397595552344204221218872408837841098089244290975638461916790216426889841183579823514753626176299268639366257142 -6938938279494808076759108059141376006848614180404742864748925105751439953802762622388768762467629341123548099684486115445621424 -8751508911757378238494838354486964489105407120238937324611137021997266296685725619021335556120419627792798600024754767811910130 -8942964732151281745754352094851080075271176779020939272053185795856508342400932987956154784656391491859464794187568016580758549 -7093803490558017110343856896961686184727738060163871518042243290379067462803909424058805017311424240997471204900355661374314140 -1566736119124005628798032033275204642554171747963659618881718232992872787295516246973812659316873285663747257448232242034285446 -6562507237663679024109994426672469847713139656813945226527911495634070212834050520202668179078431355382392103665110926728808163 -7163337093376914471075674332970801236470473885515009415164064219689152465011362048740380213961234696943727976782304542628115287 -3743855222420028553131853842508021542825305338712873483864679766747424043976484573734764155416545908654414383080932700776375519 -7834242892295013548785979422302177591758705851513681511359120504187140172485698646885346881713211672798953029529425679446990175 -4633893183134377338289855331963450809211760110920084232081216223646405738494934518180959043407239414117561447413964700328518217 -5433662660787097930154056128793373805525457327147412372094936236754711564146018693671222546348461125048100620268398154557791577 -5116486674264823893675387799935762509658389400995246436075653037631158518006706329179420693907432583221559739906432889568752110 -1646689708083793966601961846963380825939768409816872372745312253381435289673316700861369097472435861788080748455563750632269991 -2394913678196583770021969391869849166343366172108313828891776494450171319520427070741615104344197304147604907461161478146821535 -6970220265997137270733854244424832298730380713169130932100655564124041223879414671509531965328454187192449944156019761861229509 -9043786409994994408835814038392730289274231805044666470305971162880140578631950679277309655392115372566040718447348800220519568 -0260472202194716089247619131312603168906540268723365507831041804698080034582459501938467511494620080710391206340388730610940838 -7326118518322238969330571001468796819573761190336351214992854388628577544497438052708919701742914513344327189122670316147267946 -6390506784888882547755768957113718192319906860888999507544967824165514074944084153555022322181782516106164395236293833936377054 -5714641021392941796626276072711028884736425391454865594302431453743809683815572479844749782164523410744380979378894640742103628 -6367297859579910614284261237130263461592389581599593438725404642412171244089574507753692124870352648825973497683300706972608091 -6528879643690843406788232137812536357500339309765626622435903074816275044864634059559694905228929605192781404349845940406623980 -6885914653705063359510874305420852766939519431522048421204491529430787666838710231728773489324489696476746687650429532899868255 -4233440617969212981294448839630057962261459110072028596849512767604956758310477460111261843845740348872559542671712436710774055 -1508618282454022497140169566835479909506224026572100667557407598641042136865104440157420255694196211078208396396117860451776365 -1507239834904105526832362883413042406464314583874137343256081467177503191240584039921334732134114272817444512404536172921303844 -1462051089737008115697275867129401567569051007638125298802754342170903145796642346081652330045536281219892265708368809837219879 -0453685864744973901237027525243434738854537803039815016737120599127474654581496567442710142699846446910049480896669404203340348 -9346689990227089014642019407223078337725269644715473933462904642091284492249290308972584444368741981346317066840314608857364424 -3692842182371137943388889815198380579665396475153546930512504814795832691928659417816231253704717088404598973194431677726441667 -2526815319204901006066476270701860537782781626529137506566276977867530476935375522834441559090476111355166836264357254224488482 -7009126058180938597916312502300245038383750490075362057823728327394777642420436778059817272275806207554818391187127829756177915 -5110816584935888048243109800031765306763187568267294316288420157299418121619714954580527036028226556975389796598626288986624596 -4019814997533165299992337612192568036796309043358811887855691200355299547444919142751489527995336846485123932685995757878474429 -6005599839728025790953582536623365308961400544193243119538823245141014368431208016452105852057876883877763572171550179791872562 -2500356597670124887859667877622171934055903916486360738831160634956448169247221568037938498171280531058898708454833291828495747 -3109569215216409575065435532987897643346725582420896049058159554867798859087403090846590114662541568279219050551516019161353868 -6185483127396494726368946515385004646852626975268477683334752638226219119476553266373574505398051454753329418244962919295715945 -5344724458607009080560091971792387153222793929070066348570583467465266923727598378490443838259560132593811322661974372369019403 -8458407692595863178782843772482279508788218196221474525584418608306184633515880367399229446502766746947115360332883675953446527 -3121980707768424272697486172479450164639268792099956499632892432254994295106673987928794494946432347077043928557939886000171261 -0577050269924549664323393933836052936324274196559262739026908246179444460993650264121746529145829029909925451248158087279201429 -1182711132849414035693613289891027291528838438771406387710865605582990490514444755922132927296236610194750925496351082081251878 -2109102647103389955876851996958955042517697886815050668367645651505615553003883543425993431580868653965842109551601532047774323 -0249085151080461985544466651926919056622702235431604488689367549402288274733008707563604434799848038664792491456040962095929365 -7278999875589390549123015596410656975040860435505974009899756364318118677742869501641184521884257988494124371969275324199080350 -2143525889485226056728303512644071737922673006177865168448238248795782597126416756968158704999395137061079007456174899879867776 -5408947704672811574519430929617541968994408425732774912564950806181733784295540418756875998713610000715279835936333399272549796 -0046618750251923685648324487668060245166359869535034556031423916249395766390348943983259976779662337330101459084587467420377611 -6066406518226332392745642377882173038406100184159399300600456331777383902825125059202230966872433187523955621780460854740743440 -8412271363530715396852912523334867927661153444730211881314493834485030033457029175684264387115709617680689679312093978999879040 -9657869183165570826073481937962858496613310115706782423102371799566041214554100144472536538085009196821977429400245149738069576 -0816241320499554734167424446072196247447636657341202004109886635882777290094614656786148313850718338218604613751038747577375251 -9117319836426478794488912868694112364734778843674655117850629082666869083673489067903986091210347641126774671760575626609401765 -1008118532396406153376026525242599592034858556342525818569312902010080131834952260460690347206525525021427489641699256115948329 -9403478796471636735520877378951136546880804020374976748551718084257630575582778549740221982719791953968237118454633169542490322 -1286802823239946142833722240859834876694232965252258418975725767245437772637447581851118844815831626565504328510567619469003430 -8292609187732000353612944093829468343729520826414837631688769850723905562968822078612443055462285102551209743540366646373935564 -6195307285792520347832027057354006551256656817339152300843201008404344101735346974655890347210090580920518304844457209111402489 -6224596631460367862650134161563558944936031773882670339156933695467888462978309028912902276648283451994600576418116774756356786 -5472438323418087607827579818345851863545677098783823512135936630219825008658803838212318120192887213931109375285743757983871070 -3462295993623789324823077363153428519235539388072977171154971504655245868325675529422838022778549930317329461099449011610221962 -5200838592621585186795894021330350557903923860725207306860907835414568816984390887997385942459848064357524983387010427408109850 -3373256185275744974070989354450321389766066372305525693275351316959271980719451196548752519719437550201627682282540860722912254 -5801613469773755028551251430496692677302091408721986707132740326731209806971448849117149983546378567141073671063743582525928527 -3697803453226110613863663691507092125649804560354539788548901908917360870034087584677937779281144785927759366742473292064354073 -9963717672138768910209602639579145502161357030053667109664830302862052329208650435316813897369377235565986275115675225384254363 -6761344873607397157287860030945733938977023836366529156220217899463330627464716487783276767734588772780285540219618726811099276 -2472361254288850026102274317845905290678407546967989656293686796378605109224367092391377532276351514638630925654015471910946545 -6893284960359512924679289275759756168128756913637757439682764283483027618435659261867805209746618113123871290501000298928987223 -4604230631532001258913408929361874112508575772563457725381109205712576762498230243782724863115387239822706836827854691589225919 -6353180226120522335706585585655463329450214403091956830465201717296254555917557791034667593584676865134148740185250129625269812 -7681527901091326113048786722462348325784769942754780702258059604458735745233803955056030921585788629283445553041509260093245352 -7309220586489676352977698261496440058970947266199089765873965038198042811288461602506269407874212537834374031596895817266480252 -5671380781713371554805278200673327258182545730441250958579106569242653773093761570049297046722445961242199585137608405012572007 -7828486850550976212754252064205756489990487555478160661135559387233240543781534504267534308047400112433806739577979094229507603 -1735652617764383585639984486995149658650155492118012228612717608699086389981358293860866276067465797190676060353147557719908880 -5809608466540093565672420660893504333126497209645992122475383330847359820073574627113129012380682929130905963299348891171922548 -5002869804918377770158242860178234038771989441187910348213084777623351555039769099812484337067510542127104020429900993982081671 -7709207109088318832932845793851072838104821066587277352066221192004565750065851231562111055731251503571280787745188052871173891 -1300675988020851714469995143129598445432183378365444739669948446307812357058373524561004834384315759687175675721550162755500065 -2986343436898030807360652672895860427883496016032784149587776588259863806298337541233639409877580883769111783951961729854269967 -1601823981755766290542611869833989750039385604668769648848238807861573337182702195579127745245081404264493592362053024115769418 -4107102716492675980158632893016973041072334043127798725365792088221597132425309628489541173280546793641323966773146909247868755 -3819683658930608253697914654878640066261793324512623727802178114862630064529284630973855427311675132424529284212748792990550668 -0736093271588205855246000014782826243591602482151161574269309829561758900770381929089531747951679154943426373942743857678907201 -2579391599623221851200754933465381040789651168701188912204464482208095449667962715138795642341183881460864419304811104815352329 -7570162647614550188694961496075537449438462429576197619766568228578156257291119319362788331980002153009584790725962518357588642 -2867301400919047583578998934993306274019943104502333712247027666654628326692485228040996686989047207277332133939435024962426111 -2800118335388070264161106773949228910777957160444174345990380796529948251126974186339060998840435346432168006747571320370538154 -4476893884627071583698402476874552862205711529686822374264860104226019597554331616506435529408791452032863624032022777509172662 -2387360521387922188586138212711962601419570169405135474539424296757638201501368935895796012267512214174579198583111876438042196 -3207944223864976640314026742675529342045001292563111065130367748865114709153385711357232421423093197866403543774881366812947410 -3024015733350974607130082705448223007580421749047845265584744661269361681112069541859763264352543531462633691003101294808859592 -1169692162436061367720119759930066692678060291627161481443668541634202666603165593913992477700731194838349007676531720171279849 -2751165267818731079924541076614810221037738242037928099580658966017244137214097278777683446450716576425458106456674343770827281 -0396856995901845858069688500739423611458585131275613789773338642449531843526049135797567793850609374983112677866381777610197584 -1531087534395262206112602286543697479767208631357778942636385138053327121554947922895001619615466561594121066079313165604153569 -2093692637556395792176696765614996657813671032355821221008345920651772816571893227375691474134293122057079026746734194976675858 -6656377492316720744820927448196522955924434793647944766092359157144753759050894426200065451501628415477521405487862719508590906 -8342026934212011048128231645702815266555959471653323962526192450377377432253217447538860983839942343996469379287531744331673799 -6119650763732836889688973448048471041648065382987440098529987344461076331072134069257926150018448979279801859696456939951283072 -3364756734455969829310248048507921203362218977909063710162344883654504743601191459570909322659994691353369156210663856657262211 -1878353636597017372001364702577584897453891661198546393569651046602221858825228640216854117340540870937305588763063713204215566 -7246416818039080901692045886943289879346943533530756863194707455582283075691686089441132581902594229725501704594144338085541945 -8508829844172609725721048474190455937918008659794137613216237230265268215971845365542440688734702896182248548131537748110574617 -9749837159931616345230389269791318525672049015765330922830030005687071010042562156668767526231766645728311230400611546831340883 -1042438692813477410787838927504883371438184111986343392632454033632895691282059130126453347410816312739668264804223203706756562 -6361009275683200524885847104957823290376975509915625274519396770442677593644815139040216252662268629183385844801360269251220612 -2229763646114181877287927118379174699532585850694835097303121614336315830870465640665166803477820913104310061050902102789844598 -0133060603914382154852269620976632642294770629603193082836985616373167078617561223317446714275063351779922957184196466970884767 -5219496051735919324804049698971068904312201333312370591154056704186542719979874616042547422134608890139798422893654424476506469 -5309445174646633737921041425428020908437429638540244462052129439971214228921839562115695079069371301404828066341916732725724068 -1929599109824380789046935363381838679112048207357698712063450869013602851026654755608800829647182811384855047709407638244169874 -8711156655539521674331213489806723157012020673218852893220562275184063123762927470825532953422135931696172529627131694897868313 -9146092529763359061139625016856546857269473202244951373230403084240273596615596144680054956193346943461881907308435567570589732 -4427806006379233157431109769793014446131865605460452718401487086503103098553754737499082181376863362004474070049162679495304786 -9908319411586467759323529251895892937674894302534759585448543523471481019079407250526711177578259561097423457479183321229451626 -1131371780154610377491766557592293428206914537775417828678921143427727968850975607814254333398412178045797967112746828184963972 -7463947060005178881443883529993444944563705484864960478232839522887114302507061077267547873033859704180182478601068253214443547 -6363654733262110562720880713693267188885990129857236073837004378034866347649760844198517835526780984480422568814264124396245788 -7422184144089713717140409869475766686474514248637954570906655127051840364408955207306296810118720773449322716315645914875117890 -0847277505961582786741295462154437342373825998662718119420520873688904858163025326891259732777158377960920534957757187301680750 -7127332835591365255818677928303920688285753363566564622227243735455708574607542891965353908456436608550001451776173990862992161 -3829054399301597187964270168808949938169540225900414534726047012413120885338161369990845308813286961059592718025627205221770817 -8092148297686870086401035932812080011392424084497972356658952923082172309746025699168011915919281009722984056602687718337362402 -3027398748877048907651150695381083835937725004446873842854430149618594741819924214123640276762016797602129360641044263480412772 -3710143070992584709931252199044234825397803955966283897640299886246679348943101389030142066287790993761176511866201467864299707 -8525777612726675246376342834401281272453399310074719106459898269090225065025922311415205451670630902470074176854745326883762644 -8262544278833799829033118364917993352082125138925496717970983928091600634758984244372250880458595883955890831596406628913521186 -6897853799297275638235876552327431216883341950745982036695977282177864189708565950522537254131161076036929940837531981536512451 -3213748658129585636531039879081929302798794268346651462737129452506002968774313717689240477017446831448952135158407313634350442 -2055874845167569647361541785365745319937172123917988776868257061731415878495755011208403654576322652419771761741735204486134128 -1873586980474608471307789365974467503495691071252149719435658541818854563735190343177059527503193288117651496365565656653307241 -4168177432498780914163093904219938645313613562804544457122557236850377399062589146156364240794704626265205228184552480787389528 -6002548119488363978641919486071068284491204688921592270835983882131004647117906646204653024128798598225163921424999116659512574 -2157407327085931030684434640191280950835140906873052295703366686157391470840100604628128222870118102675339834080247719766902753 -9516075696286688385617312294770633537786940805769023218236327039881513937432194699645278901401806327344576080861704678059497048 -6871189362548323056223946109945917378776965980493422695153032621053464957232674797346887230723234348508681395275248458966927875 -9336780663866116286377027773514857490216582712388958421219481975628619943979311778012113187699153459212550397452631591800634557 -1884225357321516913996913776484184458840279457439252830670922733976854064570789902403772321837879511792814698370553104269506613 -4608342183802630938543364752477985342180204673563980704638103829760160093636516325877632052705116775395863314477370432360214625 -3293602222611238360052445923968119215574068058661794694301159396049393023879006675439325347420522015724464971518661959121953285 -8043528468318108109054413534510021714964009352370382732039845180887830146914560592175998791412497342760924247174793888155615218 -9953136600515251517270114445026178472065320103271749951560132315486968402879259134348096557033081980214662985678737805295776016 -2082425869735558279582276249486763021868424618618158613101945224876744522204200404218768513612549469324132911065247448884834161 -2715300790048270780472694746992029478410340286154036701148546125752257415749783382221561686531788228065371707859970836437758369 -6586934570724918966767618089617174929582836792685611937969070528242452974277966964414407164887044841543253218406757856518905749 -6701113102105341541135759678684819193668388121785636742894877294681466156143067331027856246686661690573758062813040020779144644 -8573371736029851148801112116958518768083768805313811181481300256743484459392633904102235738743377368774016975057841718194084994 -0319902874585606893329741100525933056084182554392753427931707044407179198386674603799910970919558297811591565044725137884178871 -3211448717893811033719443147078575334620516368575812396883003880411447512133976398395409888756416803178312866623025053382610669 -4561353382089346913344316837392847914820218419836561651969690056195804908190155708078402986544580149409461279682788447362287221 -6541324108089851136771616890125941444979071358059045831564141967544312392874032082755961068514362364886944531733042486972382351 -1947537457345366294923388536623305727166280503481566200274732091551547741549840732121496504900782994752246247415294786133670139 -2790662270964346469038082957923935596601670431239525874522807293008957620170868585946546458722568195100218646703049798761457890 -7207291855021167963306163201383620528292099344156171536132565162121580753163039591601562538194503052311054883261440201088776719 -7081508994123346370534091387062163390235318525916429277771533969354167555829004274478142845946719915110847480617275074050516329 -3008933084371763781228021375479207498806120584984898188493731541257384657224732160257247009445015469067201744844463068899016846 -3400853085115213814503196501389761175483359326430453738990669485692964833263969136641748087708764716019323095274097377414065683 -3262060508094820191682139681063256834961825192399541866597766579614721818676700322392895466758698832928065782064894903472978312 -9760920512587884215163543988536526156574865982745337953096380337326849623081010538502752692990846114093305595114511445577198415 -4534258782640418619628264506406504403447005968106774436451122846867047076694261073542029684272737494317052196031968617018760037 -0005723042928179923030772189645554654702738582913437716383318676665447081003973531059059732707456286646505439805283337167567513 -6867755898727425848664558154624878031288945357600827739272457697556698844756274091214882872082839937589030308224565293706216309 -3727537228724168866963116807318580861851195574160478712150379828696545006021644250770529425526279645439265900826286791538135930 -3153997389799559939607422587882124977791743840140703583207584629133167628782910497529520542920062933572958127405711490497737856 -9067474435390875739488758031979945416769209293461704806750415570467527973320692921500611307072408238071671039355350126215323195 -3397087786775809367683818985726713074834263187298828458889483102002512283284602983872325517586754239568315454503146853407356331 -1156217453455804570907455838506537271360924924818686966590633031323668379608702859282734283827376245634390166587981939981633250 -3412106433453184147582934702569648764561354607002098617356742259624760387826342970038831595863063739528564750876654025034114351 -9541719290749487737141992118412804491779799111981476193385533300689670528815189491502637221085072487226634588032661043056759668 -2892064967147629869694614423619676513067951679311770744515022309616589783655846699918308471661872732172650395986258940991120106 -5144184865919978928920815222171229181997238748998964019938552954342118630154574987629428918689878418879411760377091395290416344 -6885105521575830610256425097707534533542028808834255387318107287078639558846084308180272966744285679093270081574095013341117481 -0825712842225983699546990461215024477130525988490880256409773994103713908818390693122587907689102651005737105310805023272218302 -5661584786775396459681434880691492087318430940497979741425101788956553140338175653002561188152737818909816437963790481976018401 -2333796064755969606150287094100220527676969430567702969130345130599373183629780646448254004373148786027781444947828389799036231 -2370159800594514645060430450080996614777495906387714719376787944968432214762676658329959973122495250133837956302119421564977403 -8812738504000258149359611948440268119800977088619535948947126735318099451090706379617772423943777604512120621890539370786597632 -1363253012488373680482054568974446439190725621429231276569324135313694462859720454323916583978487818838914751980359776090418942 -5309412448985837938866251311974802939648013868273488976753659392241870912692861488024484868367836148433592247524575436350374927 -9969514974899115014452925807661936280550953879875740514792224284344537632692977097082883985126798768022555743127429841568583436 -9127480468310694537875735497900079126170848463529624094796935948030072227221587835070990509651876620138981087391650544865276910 -0663274772751898865701481848764433338510687274568588217413099134231887382122648096865873338497066278774094796953376828006000126 -2223991886894820013487780739895880221686260123953688255289857284508367990146047269272253817887508457566736245360372546074724620 -9022913659536358863270572069247332195356175380482645548420742634480093147625717187780842180713151897503373416116801897541549813 -0040126272697263557284035143648280938089213881029883862911870694532327995219687847437429389232425351493591671711796587562791256 -4017430425461987380494086228031466897556783584467938250558585791601061306591861372175583299944343371927286490389555179774602318 -7872955211264709896492762009841470583148357109101357998512705454425930076065324016499469004837167664624659717653859578461687235 -9667310959423600740682018043806968632350609113790915003388710593533872466670325086871976600837835610439552558719613595783702236 -5280944927395295859052540423240381366808883628148042644568662154130067762884915257137995873057791352572012021048384019627522811 -6995106927652578556591681036413486142384921333996800868230237202393167717311762878194321699747706337864446498735182883503516810 -4894127087101054059360113153040095596503789486674685811347198640008673703554343464924312512011781208631600506972544379180978661 -3653914862578195810106428140030210938175294156340298752901536901851573154592330206774109827394766622168822827213223926407598523 -1752287994131637967328932739154812431240663561508299992489581255396838237199970478414918524473397520840434054432691053868383392 -4475254299662836002489198880413157763837585826054191105485073144949660180125415108179810953128183235091235263489809711965370068 -5618413924400018858280428271296438533254641173714166471746748160577329614446433367969692047250196643164558060988866789634419083 -1976673569829377798715474066924169354140929130742194843186922903877261219583485904128878654906618865153383966440192899927641018 -8533161119710252096705226091491715680664590252842043928311396400578644885931777054299394359376613317844464091496561469756448904 -8685184190096699452877940339075889148354699442923532123110999704074604303853725375307368452619373244845552599196580274471194639 -9829578543429362536437207266353476212156141077734490396691958840205815483098775874456262295189398128556239354143693110486242701 -9970409655619169147931181826146996933740442172396548865369872311637351974239103479278809874040155159335694067867509786798916993 -8934739229131395268686186934227620999682967502345755750450754377980375485746895673108969778424574385778481433357869228670933712 -6403853140387575318798294898252560753364466868740386419346298915926350400035543680556378607221479519818692502368546406996064171 -1053081251212324305626596587814428006013451031378599825941680949090154726066128761151070261252589982556578267160212779194125716 -2889755089191961889036525987804900491217472837363091046321293846058934856253393138783914577483067599584740608242898988136077107 -3871240659195668412257855781781704566864660291767024614816347476774763467463583115867939922590382680508695307915014840948963808 -2822134512303137695995007841922537885648949227095598324952993245073100048846948118672641286579492473549786447729014913418849577 -7115799710686817026544023974604506965289044028358314166807497671714007777434113787389629694840769613243261303424414900494011898 -7392257640112536311638754807439431161718219269700164766558394503991923942217206220355994391249150834799995352874004008637120732 -1738169836253384974782709569139552429502554327170357536474522232448622509720551967534903770682965229229310748674655279819812001 -1013488426299593714852536878758330763717657950972685023529624029812092380027913386862035092137102088651474613519196497838916967 -2365712331332348797178741500614741133803176085015200716152828860157706088237891249512432828832383523202673780925247731837609823 -8343543339820274706718254393402391405027365642281414672601521735599554959777377014041823630157212633295524276413560148004499161 -6041268421639300061742794731401962219148955309257726102832738599350862047986714418077392903665425072627420761149419742624568473 -5903163798089327161860705456299199357142261228683379549747158444438483324626130181126533716219751215937033507622299908730009529 -0388816251038799487192843352437014500990877413652618253793690269472286848421450299377527429839922951807455986611893857644960410 -6747097789593097432933016398117542211434597285816625911203020562919342940284869769635598001370921459163969583961849156409633978 -6058253598655377264266980145151402530578841715801191174134703632064724433621375404185347776838645447066321662228541280092856110 -8706460045506764337863851824656889505997963004840404222919355019179623835893581428684583324979366713626899343900308968866457307 -7217115588869155277775561876870949020701337732105962145058144137569073157203270186719489063643062743100706189008644101702506879 -2134117466607949382162669449831544904500037626615605917490932121868589822502449721652777432598078974018800021624932345792700743 -8772537472143251033025302537735317107162425743475413816038506301465925279856675607449722802889718409431120703912286958510209941 -4868004080038983558128526716248086993854257004538122139718459319434617070817759239833696965506062568522567601751636677225399970 -5772707421791629107161650375371738241195109244751411366251362152446624847548801413381446956815082676765934768156267696685640257 -3337783332137332131442737895629161974159375156476294489620941247396447219121871778030180022268049183913926389862808328015747496 -2718665162373177306261228085712460052227574664675638031209424855973371465310593845908878207798419801473033533102851536608498988 -8594650062259102571664509669089099570629940328720500583665382040942904077679708565306833479512196713193874213822763114277561821 -7763922398020531727099680865423760176807414153322182938644853758445162559723450312367220101572741122819976006288279862925391533 -0609418074163954317311535425632639460543917210847556877142776065667429208580080239400632276304974925905306867007809952150307911 -6324798067968629831501975773028726696101515750158909358262168518496428350181893495977033603403728917956907772455104980623840611 -3585603421384321409739580272281986370246357840985885096013164036482124665391931947880815558360671475167152552411643258730493458 -6674212278514790724079384829207583320586965949581600859999150201711417012504831581096750857003895316139028753798041233239967350 -0724838602272073110730847467620546382405164306488489590470927625949743749910925230346070277479842393578994351426637786933239473 -9758486324598916254826474547605389356962763994905059896268073096288839687527478615702716618454224618511400537520151578922366430 -0912492025822760544865884599694514920137845684369437041888556762598262707248611887100015044910247510922363893211117566916277207 -4970896832680655065722060515676245073680441413700428191825160119923053062012241474629435368642857468208602093702394160800952368 -0401643954061460061469538963715677841733067884978557675498904356226239814257513498478706711931106662782912959490144875688684392 -6427801429230014330280067244320390813250002494116054667882575684276220510978170909405937360209445943389405620264406898441269151 -4513961131947927648793953864754056606418638015682203461287515973198501950396575668694970608763112445843545620657603445132209084 -5756001157040952762796856519600056686459818285012859365932754153307811718432937457957972840218047257233193928872388202493970468 -5745171294650962698731398420701143198082563097452816181021021324846599968746630383827244381072653879098831871344995918422668994 -3440697357810684087609635992103602934958412129332726402190737073092334237927797275626663021730679412659760103153021222137031354 -2561873488408007135940986273685629006346887762950502897998328704241551747655409051903344700915847431066705228403387636950645457 -6677547618819900422307650673816956131536670246263056210725538571359966918216630406962626983531012334568659195035619701341684239 -2420112802529724475156900639848021386946999992189525298915178531829794178899375316321752347503745229384277622075513609101448077 -0978966580118766906719339709431650123507257526495690738543102142511117335171869720713914484644191091368983835287599510980274549 -7253035688826486175835885694607345249760996565501754434755643707038772708239856393717371875268895624588946691881982666455004955 -1229157575767360965832607989363181678043448764770403987112238108580504462888836301106969202711436540526584606392030520555629817 -4303800215068042550679859587110369621335305905151798020996167677493237088394878180209234115765088470219122388293468346691575131 -7160108019683761926270404198160152789263213718306724711634865022789627807005870451606075994736870542860235641292939358601690892 -1281304446363067443221484815128597038007892955460785907630142069752866701460026126386319238710932447939095864553352289508365136 -0314065667002957866858488765937097697311458242916562733459459218151551894102884025238852720369894804551004088501646041028776937 -6071040163745909418176019453877965601147459065352750105116872007917183143758403418504559900007858465882670700927317278238845262 -2057864431401330101261675645065867887669270980722933655585800822914522258771084932227437807465603988558837727049424395413086192 -0838403065062402417019069366493917705353727605973078124319419683057212743574597310780151384502291168595626908520023754345467963 -5237595147390251950945857498093768496867490339391087595954081288707206848402637964670896124834883491892023218043300933428536303 -9038575918527245239784697127935511565993493329345587370301152888215360283868124687096008034911588337723498130857892917083893566 -4326309213195337889918560482484162052931169753291241688638438611871045719430309380350737659700684663483713556511824284273648934 -4109675537859830665204217999322330504340383531423575355281348688917399955785319877102842092110480808916641344634371327017518067 -5976571379562477291805315122658077767583602698526304594638663614898936945525476463455648126285604724437435096863798048639029149 -6805684460338235182637901097297785029718931952225347991353757161498388530429639352729227333463916470311358261242265252454882149 -3713554069757475756235174202220726685159145970448234073615786797869189321230621988473892723703610057245772568034893831333824268 -6384329807418457095553971699330059290079181553384702995369891469896964859336812164228972258241580918221240870171611342340166996 -4238496467737330476039022845048701321182330582443048269767680094107459509184801830653831569366411726902088279531793681281083241 -1389317145760821195180078109186551396173257466092123382087137757380977821227017398905747777928583603397479220222412134551964141 -4172433396133877482307354312025003410197620920424049031355359918529883398507939057731022302176139038905017200234464598134643926 -3776455852500808911518410528880591214453698534859661007977301367112639128608957724121376845610991533136565527742397972171004531 -2169236758277228509207094221732914621136016542832442557119974462763405873279434363734315812872035133971702886820591857401769365 -0469858184126033613406108887661308724723319896168974862654713098974773391394034562612379275030863451007736429954454094411166680 -6170337864185847270755623945219598905895923685556701346236877669819713556924060508835912462997027984549870490684576221788467996 -2684567926478205893568909529013411584469062508988939792621227026970772272619563307265559984083650571137624804538833124458965412 -1535835911469765914801129303385752847166878267150358870063623206823946840223186885612380869419340578863726545596738437580294661 -1159345796279619020659424502037780228138063084481952522217422192474814460650570150288813492963026126513178935693001157815213888 -4115255308469968312956667592729481570942886979872098274544235236610800153069537830562688683755471055934166523033112817689423559 -9188936491751459321231439471707842349428821745374698747871010980962280880750506886802895843191246598782044554283344177438872823 -8347722755763795357915434510354216096329858917788023158970394599943300789945002208151468416849121549451743359325575523192943247 -0386458822265636778073946364464754663546374429692132747455551460488109624863176490317455770854516391720009905789081791014745242 -5441057113825577288143510443291415701276478572336349873718556812697918623782132025707841689574266907977935843620901112527314879 -0138974051576176017602134330816942995720273624834286549509110307443436271222852721817459586302582019304440451903755250893098006 -8714580715983710618302573323538613568787984646210126690769977327196476888780472811559022322326994280966501214045283109750894159 -1238724204438864658817267118920298143255297575901621515081809762078906592560699017605054545611366055292052387838303773046414151 -2117880548683675747162798543936995265803158300313026522266732130084089973850929862579530307924250791678839458713648131052866542 -8688866589649054666206289287368847639201089110726068276561807440633436849032550737263946103998593920752309241137169715090564726 -7992366978913349109203408811669845313806318145335482602504586472079577960741456598112230859758567892658655917499886892820156294 -9269289344377943028314943737975747440225464454099585770665233191895455121597963497469457088101021828673050970000696324467074275 -2620213720505096912466481021388401048520027588680889621938076715558063059090115474427731634806419367474059903683493740456083416 -0419258099585668206386510983923399175364308512576355916179825772896253917529784626455469847416203745543857585138629447495124687 -4926957394763419387802807256844093371043881188012601196274750577103452141865582262123425456983325248975618318937642166941469448 -7745531482212763608085822252151342022701776876422939982991937310338710298056659311711100694774221511805463875602371671771107991 -7622297042918195524581284988624821755976081656742322232878212092814401063399047757727446586120047765852193643525978220488403806 -7694553355731009082341963145016321622315287166497298675517840848325124707270827181601834343475566034855078916693975601380159131 -5691081048224248376219969516692299552551684485812747394911625377626308622713328149116932634160209525550974738125918251287523859 -0467965216958213222976523551707473542482226303543330237484038813545187688169900375790194437313184877958505335015185533760569003 -9313388170020500404223350587859029392425277844920011385363704844190916888907282100497715918895587428711392085764058004531043856 -4805593106127448601646584342013400666164278454947086863410933724954207481882298946080783397578430480735942749099815836074939980 -5829488935963766897295398693976065473334615080031996490066697080972996155867227149556928263586779745098746381741955988476480256 -5145688238158921108920160861540066499070337742408273263858244236306539277333029376512623358171655471201632148566471544471879593 -9921214229435926996318797357630113668084683534980450540625624914828693276400997437801995497337699991160179152196384869788686202 -5452970283364847951628816855350106161884215992345914720345452469417460755112437907196741570679787585797744951997013243245883760 -5291067302501955637725509930308800308821879902449540996764882569862895237545484938003965194362900224359317192536398128214213941 -6161982577027434530385173942460521391267875161999821213546453369930955209737128453903802184733420666743600784696394324963677611 -7259796660195828763104609417030954701404550411856256961919298349416990278446333820166279192694569999689157318159650815071786127 -1409252775006780923895660512761218733793242701073753044161926851887250329246949307610371367921483913476091276544943910212219648 -2024883815854805620725646102396569531338296559295702755514936293184048845778213281077499032309766928238274933799920207837132838 -8210747670883127249029109720500900846638073842072735692712299242482036224417598293305373767651397688387681839834164347629159924 -6849912340362293051521285112884702937904971535989594393302698489020568178389718625627324020502329354706893589619173731210032692 -7043789553739208010357759707009160597258827438739048435319844873364203025319025627611147486361041079291073784131340379802864271 -5630517567000455573262321447961724157507366377593234074637396775521413915860857523966422306759381837353927621547514858375348648 -3907374620037626404876010563369584978900791842626728009855287567645993864184962785602670934980414501849977057712840353440946698 -4146385141059123870591051497280881668008298341992956096236493101498703482256305064373982480667690632647788868461225656591267014 -1968850563894509480587740368883124473858275653505054105229249423142559298770511499954927552803754424222038587228379761857441343 -3593066522032907759239532950409720855609763959255411331452747381650146615224156577229227092417969990679672022642682488460230666 -4777284684581020086703554379926122352924845140673649610422757744893763657846499512591483929572896919893136740342514388775709356 -3278001195584405224574340518455727489287475412287946187833805383833415237459010850315390550944653852931708140442412147400013062 -4193626826135963841422031213601650476649922753686929704940497664287967482680127644394472418039840709944058706759350270065888771 -0496707764123239353916969348556102234417341754509205481354601177831190831135133718891421262586922485229955848858284322651713550 -2364211115463126546765721277139380044647678205497997698025656179147544409871931320460204274120159204240964415234469912669043171 -8252385686403049790333736390573303996823129984313927885511658858105668489196273816414521496403236288238282761677474764476093781 -1249545053006377773498004690990118213356171931577992909398589918937522320753583797192061779831406344206481621920250152295078939 -3709843278222111715104072968292537550135689257500851260250849491755576197121702408117922267107801447424437466479647604658838505 -9854374828488017805142065771759506637983062326803172669751646781389776006196509659848336558123328010610366919010236885546271093 -4449279473317813512456203547757437510023295240020059908269371826627596476653671730054696042131496333128833416321765418914320719 -3406255777740484368806154865989716577772954696365667763046622581695081667791363935783289021366520297269972594689838903064379670 -3971992965532938884360604600128828768832371480402617473079458005449743185395881312301575878592825423836990732749119210579499565 -4964414428994770524920627355735483099389790803639808833122768311697123316450497548024460387672711368021069867385676748771138907 -7272947208705814863061836555172890754692453812368615959884812383294177521377885043762530023437311935454983526848574910569784985 -9715236460972266941105456775641088939352379849288420663874812734503948765928906653066695278788734445614220395365589281481052985 -2219149571492569121653088856413977750911860290899252411873082297287513781665034941515671551141663335672214686872998009233611673 -3252445083210515790502427230581525204628936179674886617751355536540130374691771589975236704266655393863956951833668294842751553 -1066643170812591610511115847160870442604844517253754311969780356590045310298592533473063715395834561034249527692096332630663031 -6094678693574789972643719059293336351890222699519292906160704354339193005774875964485745420773135852897610846364640226020416376 -0078821325017540745977661794444919031229533952549930041702337654768594140134838827623154832919375367293846998623573154781662214 -7359805369711475680734455906157477769170543397898162106347663466476684547058977605857152935135397794083854436364067424905370520 -9053319467618246985715935346228519691376765059011804822695041370567668817595587435020117179808441224160004516561911764361051760 -5279785887324494559284533174001913906340668600486179364934683183133265522486775587610826495582037876134991475823478304604306409 -3941979376926208894324337577802341103192284179207690346815460983649049917703085665853453770292030524017689837132097566609313622 -0874696648882529341619751279943169854047021416531564941329234495433297775450795376776860235960754121606226960482122943806912723 -4403142549129181418798689888112583174439363438245360666469436690361242515845002333293117928704700704567851599171947638983428803 -3086178172887575667595570158882926151846562563832038255451988723965663322118638716096644911129577785347672668155756960077259260 -7016060211620447349613366392265953857687262706207804671997611538526738050334785125634177152240160503249217159499633364839660140 -5489512175142718110444335510020717260552562939322469369407097546446468340557730058147393474938996409762845800786386613781180803 -5316893398694618358236834304108186582233111640280225864142166804368748966281116139163914774116490280764125236118841244780654205 -7528194334785274348270807743401184076977359005808989097790847628594537909545137710117536079654129720175240043680499382931315617 -9670385576675265565821666921824539041489513174876467496206200652157451658908879498586135223489695875901066307973744711118179562 -9293554881752014067237144247792025493783429506129044867060712220683356640982811741139549073541449462843252209357539966735713385 -4766042719100373229390546845449462827735583320023428894346366740071025652090167656518273656932135482003817661060458673642777968 -6301526335239349282461856549816100522037177673330915447520746670914149246304276129215650553527297720437502141660843474787824161 -8981954968443818080133345527259601739419841565729583936192031325311804839597158161812415269217752774138988523259895019553556494 -1375817110090726843596408461202879175175450080051006863993971804570798947994555625585878024069026053117840656838335462247825434 -2951238989342425774096587516368372195370856662387116086488893532196578602234813604266303300411633704142608233959411992656817117 -1078366109359744038481314864313226318060249081213275603047710120330297564750748020015170091244280923403487005151336327967793644 -2590644710984063836471814396137903631095128763841800600303330827770204519245855428525596893191150792386804495821205935562805056 -7587927489845850917488079723623306056569190541982982580007185500509384196528055437763768159799054085157690272308144066104571631 -2716691447638059359782976991714931875589838509515317643963169052633209626064370311932621633892908726622398410656122098501462508 -2187341550744516068766043103052788709422923668066123030675357066234501008353745371362353282261896383609682551818558419836467474 -6386821883063127753430057004971408049021180273353275003607608462963509731380707112452702494852068512020333193164120541304971821 -6414619855917522699462290111082170337250489881403447602549155371621815281167692543542521085921503446688385053019234090686216914 -1514251753750908058132963706101498627247758343884090328099690893144318542740931341743091728225255850843917610568152776796003007 -0586747600603620622562637108763020672642036425806055677095355709416205188154703219135342081900691181922293308472380603914641966 -6943882703466448671671347942866066071729197097929636191832480851465967168936588557508460013143074231989501890259153468168582090 -5106944931177904690443492972535629421878279108027478056702348421231814228319595001969285380236108675594104178148223368821682505 -1013423077468134180344202453328649263556597230333389978398486618230751510288831048067335293062077986298410020248356624260186784 -9609742549854821633067526470397698241682366743287992123678759953855431672859515457048320102063982700799641338555460645670603233 -7227510683690963888209842085118318517866633639207568611885740247627869030070367221673493120062595703412511430540635725690733531 -4166904720216643652362019185541125336279973971095473810174484610634739482031555699998920445667293351815342116856019765913024721 -0204685598907595748165591866024787377707833163733227729761204199756529370097242687722444149797918578951904826714174399654373078 -0029695243252514591043935308120948291772608227171634548103690625246068887952914933102467669452782090604646361027594958463008648 -0606043910237689889945195721316745105694059044358961433889516172023390307325162841023925000976730946622777686367139699337140288 -6532770425227279669614506342121365572660042996371513972011473090716295756052824631404973053818570282987235859556502147507091296 -5784383703297394066201455976072965897350946662861440804630035111722516300582625065762906422553404492330383168345359661866546635 -7755352359361297136322168309187217709956128684689901207140385336402261861792474715981622821266358097679527860080999492143093132 -1766368206837633471921145548103904997241216165904015409300725066451342178028580494490424756975699571333186681161146526160888637 -6435676017243653308531673583521916536301571057843651379516536378840317706213255198563089909258098489728121633860286779010828363 -4431604721944445862183599288814310892377084499055111017374193726585680550914726436314439993180521094601524845475777232173548652 -8838913044786662722923315829866963645973025803566829523066407753524509752981118743428995908031509623037684132020735808440759714 -6831533201518779101708294838185079163952906812726056828622166710833228863087344104415454342957894082410432960146722394394312810 -0026750412265305432804678135281250107474394107101163961158631241381326874456825116424953228542574854725058161235809819422717951 -0530095666016377728309821374273950714947770494099333703734720428753672558560341529622248519497385032763976784920070775745998492 -9988103492323582802831123529566020729884479858348071107686123450154590877464099472518837056085048970237891379355375854402767816 -5730632914573233372640655739395224654373166501801926999740491530052469701082483441902155873112176686047852502749353152358488650 -2570177044053910045946498496953083595646140791798652856797075918041625426521730745013108556438270557756261535076617672897082024 -8070822196216776547306746987791806776779912117872036753101249436897151550298686891155685227497724326515850755173992122017730073 -8834834453446142095731369167693716173639921382555584546233080228430284169771661090869805523170856183199180807458939980812347666 -3374034628848110181967055896853894757362330956181597331342944383294532319770922905892283292682026888125967189041997170645906930 -2816796708896328193169753615809284330192400628212014852560752820595983573685822703155361815716715825780349446395688288981323009 -7068534005360767613192042797492589713014221879034298952445175191916602695770589539510033643533276163270684273301159972772079846 -0851847960381648176955810985408204753982844887706344041815181406997985867444440863020286602964269777581948956459433973575818007 -7244153065545137632239977736639101263396745129055793110973443976621943425823784182900120559207556057714294191011934647831514642 -6220112071917364308442903062123692544853904143920646475613405698807838684964691297033599042267911174717943845099876701146499041 -1997737579617455507368079950355247973464185824287192636611840482334933626092039322468638416062106707636638684831343949569888001 -9056473674062962705649948566947590595122246493016055906506275120659977645801864949778640366697230510631836906881678697914437413 -9851293934933351435860731679561845700615460829332071112719063019501427379839759911846192375852475742108532990355637732868083608 -1981670764831163220456625777162284911174669042984422665330847096514572430663915704539930674009046717718308791910081803605092076 -1436167228645743999726495063433059497403336540806399989879727825522625780324646087140141119024144101040594738802339934675234494 -4511331339256646611464785947970006064997210981736418145964184001849876673693526718038480153571548117761471182638795979792615062 -1795579829237064976093578272496505322533909223281608272636931019121795380635442871500788593701642237770643966129586714071750006 -2259558543726883196265093171148297545202455060457641437680621020678468079454735539167389894892674876922877875836968284903103240 -5190322659532635977759442475453937445078305277952610411039017125942798503797185204729242079034555967093953206391753749025286545 -3346586896166410527904055884469771043579999692960199777847808583456813215611676699557144873569764821207184084966272170201919310 -8492812746065013433267691323002027533207826063607337577540310499920611687417123621076705455447051576454279273880574231655581484 -7963980271743134112154087260650334248257065896933807620141668762775373128572470229135441642876072741306062133796013873900656717 -7155588355012012778870617504567123068873574015355543463865010611682540901252618661459039457810933495173848721472502301449759789 -6250342428228956319030041026630301654869718238658413832351916020529083012909954188736775565330222063260635143292678318707172682 -6306362489099506339243174369018743275045301435603437084640257826344578993743886263071878533536813315686531934206065891475930962 -7256078764576049009416184871748648772794832357694303718710674780587401830972226331756569564368514137449167545781329158975242668 -5137011302637382277771122596368810380574982751431852882121643844964841634725254405565914232138014950212916177841984286676442765 -0130766950573613943351861223297588274240988343477886895038747758639966388317215304568124673651393253970716618528199527580176531 -6359126988671940758748887099156058290162393017636744749307547677028026325587696225823070273928497980385751428178855356190336058 -1262747164602205208071416052898259778064629199619315166088744120423992672210748461774575909144208599043872184758764391922991513 -1637777143251220955861291729128344859755814246044289400356284088474702731048933137147907743901585132956196475715784684303014662 -2779656199507816022148661387875419531355613321583333187996164541556836852609250800638246651009398874732599973734012124894691052 -7354320128684821812105410562348993616339745664287363950112497961551242247169256027249678322546929448755022227225938009677843721 -8972855810687812606653074585753478301824708270260970161604946179349054120962204468271996990113102973342165999101606421899608935 -2427496334389700886512192278170872300796174251105207296701976843139085003204747190192754643836301630137058164840301068688355227 -3959418860712955101125551436177454788270598656333682307048221492143694319890230219738438292220497263359673419823698673057872078 -3013408623490314068776627587135426768753482653895410991590323095157887499728772798489129923069618646593123822639438579269538635 -1908216328408109211109195709992731650405613610224189255235529994289098765621895894667201782074632616819297670322225038809119550 -0817943537763128333901984566290468707429051150902489063403888015248830107015875323502758058360302496764604163625874755344905059 -7334562477121670573355518606105354751505482715112941146764597746549856497547302376364513456936736713783904762299121613461158516 -5283407076162674672773440443861453333470684691925760891504089347363035836279580135355221825821573398468104182485287843330909617 -7205284306122028970211792875328746564733992888131805747056055043004240391649557442465694153748887961289838987106491544764907052 -2500872325568857502281229098611844366313487869502518915819858430987626410127129066096878146872919622682973073559229804271266907 -8295782206872660046903141337058447164373782585028140797785111578071196136068281762757693333793450310851105370333208052458896958 -1725889330426145518489875923548346134621897254499345669060138933732620752098808224545684009099318550221718273960774029508377011 -6086360263760539829227685105382480409473035021789956560069988221518928563686053953426925951987832850158619577369793062706768043 -4352919017742582830329403068368693550555003865896903349651288061511525716234272382256062983241592888339539171693959034050993111 -7316775446918119981332285689855871890517757525471516688406003916733927585058269512316355228173253797483394637476145877140830653 -4449523419101039158408708904430347733804700552814623747680680614331040890499889250979677397459532347731846180044631683772954511 -8775927277284478472403620186389038850970249719140155845452372844321949705137084066166954690611328982193781479003940799798395822 -7036309001309751772232372080817838422988947200353430157955341599997125428100524596360021893214442902724490483771053395386266905 -2526553722458751882973801186174660169500936459737553375965211051557068305755252365586897544315025598670454207459745656417390706 -2637149880243542713228217652476736046313897745886197441813742086881967480415661410956495847064049122729695529600136287474175290 -1793795271658672504903869428016853432949018555098626397052181786382888682206907544219009649133780351002110388824693692103301828 -1084255129975610497399774428514444229695501619744314654316691842636967058501657387850037557822192693461604997872810120193484078 -1690635325513958119210187262311486075808664902577687177132226261921963946973671413085629761815694454894584772804358916692902290 -8584983060051303667121308176671074873807110361225378981139031261855126176018462516372607208578426174357538994152717337719252523 -4278036428830763724403099207458044021754910574858908048715320547117712294990028756794510860977637952837840922253254728458600984 -7883825345262132475931206135018623229949112586397174487649066363051114417355320278795734783658869193239014023523778761960029033 -8695026444117478979408146585926902316341504795145288358653821833800650855569985787340203101735816503203866669795526287437002033 -0245051742430260486282155254132179648064481192529358125651323989892545661828432074084630060930677773108561342125212783387281955 -1156534912244337917835348237158665382209292463641851049571853921423174805869049378131731211644957860891749912005458383867541676 -5778772564492822262562399502030821202632651082331648596186198421567114506013473886361019711381249854838415342169443696628858178 -4018937636066081000726527827443126701548588875106206226537909295887328559668190334839725133746234608966652449462868965060152769 -8173777546154775498367210355738304841393638757271541666703324260466614672029573295838066643359099243819511379078208545782984277 -3894531584135582441443997552974471433572355979512626259310899921004753808626563585592085956971397408889173848312206978387162122 -4249778224435541775834672279093907849532605623442929414275448734738794025759189569362602709330104719867391830325898742293638318 -5618458472230917207115381643121156657396683440299320861523898119230249426608095966989749077626813445096806473183743262392826169 -5141443017081978141752639960290174384446691905687453519079674615609648441987212131402698830771368709970102768419122745998384912 -2946562140012561122001343127839838295167741172616748608003211961781629115805578417306196780198449660660896672943032048541196007 -3488478058250138575080356458275864826075120035949332139371412714212223138848322951784969631050003335580101622399775487873990978 -4317860282593236100733831872685638869277432762005042347567404549772458118340256499688632865717895145858533810557576307974444603 -1928173630042126038543686101259940626688530747112695018229893249219604395612728537717051374474126617790845613836004135628746556 -6994181584676204860202674587876078621483635083475446039294576324194007589602377577833162510613729896861820149258590200450670657 -9591153201889299370958865743889668888080847094554165557463441635078117012681280739489741681606506751718013927402701136203548044 -1780167360508315641369667116901861812842526826720765686979668702075706357523197794146674984683061754983908320058757429657215020 -4621260027453785113729584439569855185620374311773708057945213037359358758689719104605870656508325190409944963614795797144191442 -6611412529823091494357371703456481103154272600004279607488151916951301067639113190114505272247774489140541745738078452548556834 -8106748866753253878302577929999224844368660368702977874939897082451513356653811013795048262545973632043664542271741351318143337 -0778069182951962287178555694626059563658908945272131830094793792647180018850962827338479100883010796179956428416377824203799082 -9473023880877077477396337686061036427727779399244945597262198872743579391652952681609513942805826872165303709494805916573728492 -6294092277154179951451094865452721844277717466377028709711650186357899779470166784063622634966195721705046717157464710442807466 -5804785796886616339545161571917895816310538794711393196665470438339980915686578699904466139950097093535760550147855823745768311 -4727439998296384114816286463820007469707513836075275400610242782096499770391027100262738743742494025582717951675320717526395925 -5770688225429387772370873623458820190254941682623110262393319797303540835367273621810830554446149103975368995431078077876936297 -2405529175616664747550451981407708416427503988134127731468009719622521436517602196339409678849267725633683568413854707742239684 -1747116986005191343502956460687122356601160408668274191052227378815062922961362392926820216609198684542476134407735883221896780 -2662260497987146574078784874203657867733135048405416920171958838688884627100473968981627006284094098910015991752992842055879818 -7034398681569535649106832499610645350629642323049347631261095876814181084980886779188444300173631359422796869708950194760718387 -6836733703618557086120703365229061728453720426186389529699692510071571231710123347703658534972106524417884249218380254553097325 -9819799847270574690752534052463450597318916271469886310284525865231260264874522733678980911253701800076986898602579299994595517 -9135488779985085378045629972341159746040904128068784460666062698063117787215014912137720162075250475265414449002077183911431414 -9809851736195297213683107966811862847637535801414773082875296684360754325074703853487298740359726050853338447561139214515571992 -1029599022890794387902179784268370369360935567144903247409435981421651841889958031240517172069175107596477581973881408689860362 -7400367259185579353010164869469689488102231791643828135531761198096403804156803391787688285965553218505121457658933398225058406 -5220283029470788325194233641742163486977117357701064964101876499830666046451739488161844284719262317454589282938926798508893597 -4856368375624850629404156042966360434746200563963426632219247842217835149470275034357811087591708435161482657165228727592100816 -6253772836778061529203496032750827006398455227451857109564867169437129073006140463432201664058302222335982176666409479667581160 -2936456922664809261586171438046311878472513284135606095783748274074803411461233988794425470611010249655925624921046206975885663 -7903340067868061097623144373319704434575514501755821812557204930865063397777392798291309341112700415633886191910088310537801960 -5573481392684970852911664492959855735295070104374454536083712417507044706607037494482191236686504544140731669546789850452790174 -0904993356742978486159542255719565213826027717277534463338027027906360296595539148861118855418724089346480767402189286985762676 -1005223076106599446960454896515318564456413560395537757983458843931854126284677517864393826744115625918435152244510791809692478 -2164405990650873094086602365842140190819719314893955030230888932507331906676191911961689961891255808931785984896260979975690681 -3253727014960636085246150995307788585817654532411113862158610700251523142672098671368947509829930523262641611496136611155754050 -5927873322526687970315921879739844277763573086829985560339421326548635360045717801382027508629836290928584431149151932663653210 -4760858192547745555268997678117732829237567270192822266668837972286266876280740550930386549524048812443132805094528566843643923 -0552200604353097511107833851418517885398565041104987050582967853637644070929822812409158588536557876274185029987107810161351297 -8488557995995493390642962339468082402922946581115285486581085810242830297673687274512734725802547502660334048415579446341045330 -5709356062023991965872528242196958896198910586431524813751700975464715731688842846588438403790663597080684309160359805580967928 -1809180118084899386382440090650505696513340627765123157216132637785703218992306349927445013022757227491085193637218705876572392 -0750092974015461540416097560544979024242793468547428554110331500932107320102022511854661891492261408877458706999860502548130498 -6089719190070430700600786193146021409101280174362984471307624705342744373049193769815102419864609660529369826990237068799451547 -9880823550824400406858764215681272127616403736552454898294728046365136835488231881807123019108941139138735003722461424915329488 -7529037321181887616470646776506017170053425836736636947752180676382271801340633168596956291990586642144447067879824547939050775 -0702265125795249993652978449111254341598591409462513412644706330823597010310419837016366205284525093508925291114478065520543206 -2486005489914656200352331842636430195667576175939710807407359823751196926836356542172998603833007594132689750457318477364742581 -7540614426291493245957654051180243018629278083258315716499682711339148507426602166172200768552170520220563426401305349960660512 -2404338617929580850851496148983728094122155851959629735499313721174625488662780908166750428714979229469660586277142190041914098 -2734970584167413642829413555542927092036718157943315563661250374551603827984602155759774285156429894221533968500275418633637182 -6560220052859607041833971976550951076186294969188109531953615241005064465315852535875503380591519469842863315620903120851882868 -4362109461838990069490474891539380133820330011017862518437725479693309451782697543824505868730424985500423739583859994419014638 -5084805381905175100929792755321577290419383142651436157340596535511027236705949268189435276570853108955493181266234603455114274 -8408563281709145363110504396918026400160693545535873614031123523353385515760396989543124701606521301192906747319853776998158894 -2312458699599599230972023213413420672303278131983854442962403875724144311681960596932014490316204359247402654596736629024793653 -9839221740989926513947745565345687824749236841443758276831531279631822480088615812410461505184335496692743570654981097859767887 -0148513962240941032376953093608164659349988907238073209903158402845914764726830224719377417036845150993399330628686012123441747 -5919614485617148484720530134538022911021657584302803306902527053421247675384565988567910916387370777305148589468626006026739483 -7159664152823325316769176118475149162428707398939203649766531576459678350978394525441052205823105345184421463902500121849981000 -8288659993085551546441461743163304405139009826361143974328223331967419739647241073571212327801960556484524118468883764120169524 -2246338306775029095975369446186770386599660011384020498379465046982275031718873753405808637548601707969197710675661519594764281 -9599700671171430778834023658375047244787074487357323294015535711745803913257607799601446000833932736200689998469969708376723008 -5081943791810860552689101511523648202214658112058332928346393590013555144813066914194030280115978731407804149764646197662984115 -8801177359464553557557965020150275317953374369713023241680758235462889780964894972416089799047047809594791811478533742030190073 -0665429844750818754679057503636454736605371676903157540119156106676570191787583727649819947468340786574584101743147082806534991 -3657977605543416424987117022654696293608374996078959363230667155054631271871981115488592293902083994811357408917297410729122498 -1862650934481731910956432936712254764601612734362801048040108459535230079759939514256093409449391542317896091270323008227781776 -6653398313274972684240408723778161592189390653041468423088421653090661249171357282254451145484842067919237970412388771640682294 -4059821256052393643115972017853583376641290368154419793622859038067932722073228138326697082834080833163668963795873824307443161 -4885945116785653293180979216652517189039102100870721593874386070396567484340764036310998065513336640289679790609291581823883333 -3428604720660372157112193405611757297738411485553283296939642822708738180393410023516446689646065368009275111140421244624003704 -5562960052258931350563961074454414104687746794788022658055770332756970270739126216170694306943534685894930524814764997593650416 -3008384543733504706776478261526614225467564069116098586935957253917385357687398588155803265872788670839186222042335779464643037 -3618994828725096012458832876031499829184389279845891008599618731986280732307102787004526300770299430819579608003697211024173693 -9217086377524454012913218100708405723232921242597498783314818967648121936298190307693812351239182876627690699979858904402641018 -6156985750875948360548164905855940506817600324843389599811157633619677210306664432514278405659673075559217581592839918628085400 -4764772987507938088705673246656764726283775492007659316410580014942504090614797117731679264296150069410102991752421283871178501 -9088021494611622294962362961658529846402973311983387998125910749644155422299932240783260368601058914444067830424352644504379196 -7142168355025888186137900382975205885091374237093915396552747486547739152007548268368634296637427030850473757422944218387854757 -7616183325502874293153395715965826837360328123096242771948215374071981140320994435687149135694129364024023152186261051421982087 -2832792230789485819847349814552874874835409931161612591863141976920380812857719621635320076324767599038119716738981834869773741 -2754959867605262800904073710237512445047870616662855713005574347858126481109562377143573312098011061313182520482126994274243272 -5944572495216446034342198294744331850728989442478427239279385418283344155306850003896073771784045248648249808863649089110085745 -4935039678346741118281854023639235666178336524231495974905785711915838245296715638301791203620715851604930385744033263165263809 -7601373980902035512868636064609722029939023536705525076519976556652492714730630698715244783359777077548960439099573621098774644 -6788103237769355632318040401274560065924878241545893694505228598734431875252964572555463844283713282670737691866931493869606535 -0416187164312031460323292595651046052380878338516759425813027437945468646970166296000101963391062426079829338723963248745406623 -0923089990664161924027191610177696764629811421643542437939862866986835556859764272302075103487218202328441244550298063164681875 -2019867260237068480077811032787819165579411546914115220954604696377168121100888419574969311251245311564544879246746582842436916 -6868613732260412990938531237301911324073055318005385120355972354500615925738636280898984348888758911483752216818128353784893125 -4877207978980281193491650735689287510067435635758992016711009033554062927257985428856499572775171602494384045603122508003854191 -5729531014485818371423575856151555802439384687195667542811436864469460636476071341511650757925855405897036006697261458329928553 -5460991959983883494783035364470651652782232918135295761659407906592669701830570881217510435070790362298581095301898060905173789 -7646351028988526172675924552809872541181626761125500157109077472362508995981523449708391893239705562284235588614429905027555758 -1619134181392874715654091932556140391724453901036282239744719175838602787922700433547863998561669814541630538374359332841359124 -0642132589359772875036014752032306706353508991088875094683831897858049315214902256977825841683325136398731544129046064024590934 -8005838235188541103906355513876550842936138467720245485620712847710339766152168792765762537490548824247757795430623230546063661 -1739498737086961685166983125262113774813358028871712079307291894391835363168962025939984050181882718770421839433587670806624476 -4755044069459609604971745446900378189205860081010611662569670882836262612421135453240273781870602310532514360568130085933991129 -7924290416111768289187834903766663006016528601174525638099383915633909474617753311810491476284105443999724682875652267118724896 -5850681695306617855936614324554272763867627188224507120915540200480120428647332751636414058742508052557803594703673781795569627 -5161939368398633733681924028671740682293310854421624725144685852406527972897380355105818239535806432392343196805358469063293155 -8819559114109771559602841216196553885494830284200973490048941610619985614867118986891106961906280843338752508763555675909702206 -6241566490588598271025864796744098875607062200785043619624462705052447512034382219094774621478633751781359662848610200184361678 -8704633729839925740538038689681271982506814499991016892558765319948519205733093865854380442216165127136281006009985719211033451 -5874590475603382790640233559612673482775953839089864470737210616394894296028059828241641608622138456309335058488482647911816483 -8528577480552717173959823507749229677977069134280953275629509898562844929982109573639706635205828305920402590508711781395835713 -0089930344552012906619817966789113931607542416094931145768127062728799915073397115668423507229674038044945322045301649766598530 -0236619236986319774758924493517372212562285619369190213778360087721105343106507409406716723533090029620699768530871602210981580 -4900295631035231554608058112293217835929574133906243363911069130644679986177379278388410792340109628431007635443781281483062060 -4988368133324357435318270787600078029431686121284484541827394881261897104701243599451161363480613963194743733844807088688115634 -5178871803932196297861340370803170767481272576611956494376594793113965439245117335478620700378039639755713637510132362926267306 -1973846871626730910248052978143950536530975380151232887509932339881071793647054810578672393058114957563604971882394961817835491 -8978209292630747251522017252062343300917165930874691119490642832557026684811610939173618238354559097444010525631775837097840951 -8326182506155413337881369137900095820346248710691175947937982923048432643166491650906416257503450243786283464120124419550826667 -6090914463028322098876359782808759824243499333411218847428154348072847658504046701534863522297418259623151406625685618209367317 -4253745664431692653592530190665547218310374995530293912340336697232683775175851639464892393461388136647485464789810252552522056 -9182156878387604674503124667923684369744370052287701241975705851689429509464670883347575783846313229293967680582071694204051095 -3321006971958449910630372247668837211034782309154572655303854890011708581736868651280877351904031869989741999700057554577154390 -1273067298313752548096207203603148138418750927315375729523637857281549085842436944573932481003443446922848528006413314412427332 -1441821872672191871420138772481289303458305298682170739045298765824678050356023853590500427850176428627107627730008396343350473 -1052326101498218606100898713263447573551827490516947668567656571319040829379674136592743558516074455124317265474909140902458087 -7834541971992916704455016525869622512851276565353916338983507230882585013003793323808346566693345857527479053033593116284574877 -6838252895614149905894777313466208709968773989472894570857815422084908815232548928189324969136065895039808122393702760781384523 -2929303794620328740393974372454877708805842222813897741603177439187185228877406834374147233014054610369299556729412885884560745 -4370856078387921623155622787671852014805409807299060561419288539719819906697663945124473843579383816264514077377269614977581685 -3394601383138607507974293429184042736065549935759370359893007688911547744095191909676349245026886870781533913476330551278360831 -5351259816322765307961191402595778339300322026355376338266384698585109900534462235764152505801492032987502080039176402011160649 -6015860540766825761905783450339596728965747988413885573654798343784315606643443103943694670901175274103478596479365688106195479 -9733596316022892971509096088392032363480840038385290255713310540683102401152243848292964926264212842555582110823197263253672828 -1062515708221923559386659794495097841198809034454364525085442636233669203446069926961726048176600711294973993391741061849180079 -9806127623797585819585111237146636415904332057123217989550966977692535517011996512651123910136604576120833852264076101548649068 -0894752723723477938861483316019471992063859736335516787664755140329957520633060255798252299793172160680450787189861312439796670 -3913142052442456614486902320774033281367626065329089488796925098543116615817296515061149179999137691128957532263158924327442783 -4918858536678070436088759702284980929577025191565900433342638171236644159755504144947154030057873677997786393398810399270491800 -8872734106335380929798217774610094691386997739307412068494969134661496618521118209935954632189343140189392135323738890270473225 -1245647673515237131109490917571703008777281273557596852732435015863930630266628924061119974383584899927931767742330245961719796 -6852379757973100072309834676038484260260899346508201154263890305770366822928200041404900931901074539015449894481478124870846606 -5288592940348602075775045536917167753748198797428454287343716300518081003013742004598309648467119358078992444950790157070897622 -6178224434793312241397484872165819485491096197408141733026367177440768594738187232231600889719889461459739097869779145699996070 -2192775687835295828387187709692569714086691619295450894879843196267448458847228413092057333128571855124524447189613776196209305 -6242914540023653075456224110675459930237745861318742551814072907467664681202170417286866153184100097311858010110265935844444511 -5209497239417620919469741474768380931492201661270471587341653498268177621359803201248700031595849957309397980724999380306103922 -0556894331856087053327675958304000445533946185075415894264871473185811965493131424842414390488954096468377128994425485984798739 -0196159676818515225003292466076872625799134390488404188280002687542570342770954127173812843410476595231005479765885421327808255 -2605242865388848411850848235973559236245406311003883744452617685164124063273300160172061005325886640047067612731170493761853684 -3723865217540793835273126631505051186346898929963194134815240955269409964826180214819749886514216356192979128714223656587784030 -1612652380049586827710856241890765244152817303616193799144244842589626119110544403111366867458976947676427002814778923808924618 -3631721504060950588384351554676808360758437911729833313655406741373502411393332262640744499827573245395519111703225362606878417 -1363409383247041202382518900846037480203513170344097014906470642027432914804792692599759592956926861572014354287205548305433650 -9938363167455625445680112095072694438021204263665499289036436205115409602435745285690360330318532747799997172095972559600945294 -3849224957526742255789376070484796163223388025899309472042686406132560940455845848040737742829859477224469824421878404438255777 -9153640594267832855398773722288983227094747426234571630063269545219291207342356377829705537624593717193629488670483397161337722 -4742683466675948276596206085950351177248268507712030644980189541847011659976997997291786802803131893537147312873666734632318013 -0962031832358588577470495716330583413563622072795533159442347186921867618325791765612531566938977664106322136330634216330706485 -3562792846227123177501866289549655646263423972314841727623087546398961182987448990222751356418413165373556965561892665216006475 -0506481362115739578595809306613922949438046074388531145186498774188751322860892046433870735773039483261252104554347599292426213 -6629076659887419139215806756640799939588104500582964705062365481405718348479866775939471858338157222844571173771380330117254323 -9427611277124624517129218643055712610406848999072749557192128496185603527876575966140152280783898310639896801498077008734557576 -4949349263979842274642964286301282439502057095606102606822710846752651420038445554041921101778203644249576817202379962365236644 -9000537778793090403522534841735088671708809700351632320108127651758914457761194719832533167517277944390073544087779452376879039 -2179620974987315833763764525622394287879156162214632089232065378247731638836108414730685627306496030775755582279275263164338314 -9850178620109230660864047257606734366763600031327072575073099542439779650618140023637464021494877439885488556217335419454669846 -7274436451730146692806124202594474275423757115268107978580315116832524063995327727093500514697813597360878942124695394787220781 -8077050800020141873083229149343719418506939350096709806686454834234546620350690053797423042331890117409969910833834635664137578 -4222569085314829230694422189066171115029353200770994620763730497186499678980036529016196644500138184587387164123266827728301061 -9140763168998745887384781477877234025340780171338591152461030018239430263211801503428946233869503372300942372235304400820946852 -8437399467538616927457301639250511729312614497619431195080809960619969552298634956256648869707957943168309430154835637684617202 -9927888920815679261894236713565064562156846670872463967287481642034739020192858148286147625951137420641797396365115772980951219 -3655403238951645285818609634851118279549531888817205406539748497770277166060720853420241694457643803188820531391415953932633187 -8096429698574955422724412934129163958768439154851606366794537099440778504483170647334793461803467077456150095540043989710581777 -2365201968161103470136827409580883843970089911974172408580391996075540014445987053836291636308746569551411995558157351658739831 -6950345059892537018933018077820506883809089865363951638996552650340293111131388149509355326175519823347067351884531383182623006 -9729692983578755541105852708900437725294440871971817004794137742625651321002377622365955498287088740364399525852759257372235252 -4593851734614428386795483124618557640086184414899615960895693770722697765927766996280493365204591488466719654529288305662919475 -0122479598904859751605583470001521191650223688479671370454989314043303051942287523649808609527628133476925823025842389422672084 -3056608819600468295745423499468437706122458751753728982506585826980159252966514250379765257256312249132321573973154317443215255 -1261003464887189939919598811711885508553376196973665253914113359871227784508364309872766800569364687529405313394507842277777341 -3335595614255964343357224505993110214988297629416503148121404268247459966936550735839779347369294370575468296662036041463516505 -7279136021331762991558929156754763672783232261635376259854674650491435829901582103560659803340084857348232939069746185793481086 -7001312755863777334623418958360382433258119385097977803059882470820602915102809159265450380632894446941317444541503087066649605 -8796169740654134032665098260784549928283316353597416172219489498769356834724310846396610790766934291348253075369200618334478026 -8802831163686839169667839421840117736653893219551959966388948111069365662007487678001136916755953605936920644573768537311349838 -9739545132806507773311726139940569054566559814706558048797461242055138311352937387308888484537481230253759123043684421386096698 -0953084370435253065135920609321712138864781756707944630525539032264477854921495176982483322151742604869890730064964430072465893 -8563889642871990807691809483723365775240608384031148556634799934500723149755352447233079304887498827996963939978814660785015524 -4422068594927829463105462477608520539620307156466022889708603842952278355035865136962605151617935839688034493508879959012432457 -1797597440197984699879058451944014171742351115567915351330880426124733117964473476818687526048324044778050824433512831279314278 -3544880014006914530017330247894174199038635755809673971423695196336512713364189925640866570283506889971990951009729565756092473 -7989020444450139152190142450813270776908916050703362005761467814560672206433992898775383186508883181569920382329721780736328572 -5963607248916565843748383716251646836534350100847190837736559193434644723784998135363197913246364668420334826697708573880522965 -3263484959293045146013061177283236124170085863131765193651484251463844732711431227375764646336930721004123585223994485289918901 -0583029668150873954157367992526151571563606918837234329358185868795166989340614129979830550547132857672143145949742222265113600 -7440572366306644814358767338023644569585694763643144805041668167574800647065193962831865616870056333413559981420227280146948103 -7295355536699420073390947523011459995035076225978883439577116325646324872851036992256964558891639573786018094493982547872559135 -7129457262838894246866292831053823350947068553550051302734533231301531811721807950765452389323781067242015285235015915373253500 -7003661686534989695171145431734885832337556123063280208162395256598378269110597151277334587048349487450140097618803853206266757 -9082217774055830430004211027285925285344275476747121049534781396260863522010542259349559050699781590339007899734612452403479287 -3191667292995301649109040619271406402727834137378627737752393244791408796163577067403946973388491815614922007647090321324522320 -2949712664738909367012483650928320008049914477514031653686312257788502415066119921871956279807885221949190218605724017500310920 -3169525625766817202209440542641629818384859195018848363928308881901815336912072399651202491194626625193357131514851165636605801 -7255316665553834762495164950088245569336300767957000036188227515262775800565384194139225891768802813443198621045801692291233140 -2574872647913296219947966169138393924496399035916640976364671914696565353222749621284958305509352891507065537978150518314618840 -1953749417768878991833661315137426428652077503145679920658786397955780176167247358992933014357557538701378753423037285649046608 -4668877807427263578702242652781568611601647436182495270690516771196062145719412914253392449657363828299691513193636571040444936 -6886803557429783411232920271165325523458164084362409904470754437138270784982746722601116409545759719688367256037780110379647023 -2300356518881462544550334413932731049376257074071686920169237332025867743966470152553906187385400688773328478685498436856277618 -3440412356699057087611095963196908710039931495043446625996426055839433344899946522222609944936452224313579344290272586318016202 -8993953982184479368753437594218699447584551919428710623167603425460525558734552005471227418138809891695708393142992004433396157 -1641364290874900167201473644758505077028954784718448987507776152112958786620272578580374033281627136838108776465262593788494546 -7335791534524477898748563122556395894974284747735359153516999217809354333772921832279669823385048414976444462237355621384907691 -2772845418405555209223672772048928810050444241654554863085813477997024445507615114437302354148041362541497074784257678291599777 -7178588655224708624898385615582303156928858845044700179599109039474166324676359828675085010955238472718587302252391630153958817 -7714350463980300266933000010667914572625520828229727411680133017980270989103849220980928606661613727680746076907445089175447948 -8959804988970943750240542329725780454835670277149205665534383835852603494258686925800889072070906952377561912949333090450610435 -9127584427822125708186685340454898072189100248623017561567872674357247419856515640720894591586135918230623264124957308938825903 -8565660274882658423962595807578322116479785809616786494557353542161430392650520437776730973491703217016387298185714704526578560 -9055899627055835280579204790473134990779700561942294557075688923514759353053304752653692669704340622777026507467115119994712711 -6401990429555126633982558874714554382951718476795179895512968275571839503381782370343773457772170386412634133151122279458473043 -0293309378136412704813380987793756861154395548470319616928895806731980671468030021029452883570696897386186564749939824907170573 -1417717547255789991707004411151265689787923836241613415526707758612724058279277154586299713815047231145490533591839466123670638 -8468716387126244026336620863493031193083664955579994896168486675960587844522828676215258682659462698160621004514607084416783102 -1449640886898263771104309544234611139764719954279503593908340282487665393419611852384397377672021450701130079538845214864162053 -8048887383017701836654298226594900075026630240187365178333016065699848058831083230977644940244574444820285738121188435273257549 -7734838976170306869973081121181660448148530318134255364556117593964696552501147168845028313551613495459270535042160362667658266 -1546639029308273692114824601121738207436726090786353640928151613146720401120659236951025944213817893334993036938357931276755092 -3794363877794105698247622335925064622343924657500773158672876932260234127197098205417204884907008074223982761704004122962430390 -2332227732674259579606138447783556533770663844706548255581644643545209413054398521429945056259218551425238380035190336407512204 -2377559578117061565563176922758264522313042429970112963159461355099505172026291216364090521544160711259708331105724128544891227 -6832428920554567726830569490691102432470549042227057932067103955101428247157515420358182404777567376342028775513115385366928419 -4241634693879583625259038169292585038330173637743744110426172931636984875802849325805759410994995655688205543970012859415471525 -4435409455307673255925091284402380740900794676435449835586381572908519616958395334196299914509777009013685912584824599000928046 -3987500940366892833785739644668889848240740024168650731790637517228616861342434915208852629849188021280517196274460956387434019 -9025408507685643206458885320228075047871187183125968258455419735129168110055303698970042275578099161589116560991845557669784646 -3366934559408606275260397226783303207383085083713447307195484607017198247596814686470103165356557218941037264416211493596219700 -9986983198296827970312097410216841561044999906047830934706495494099795173682393665158233220314878778675703926172446242051213291 -7327936388263057744394340969867975674336916032235104437222484250956772949755115175068343392125983148796915268153189466560134516 -4505129238068974615562203042384229709458199180125982048735704933556566236123385106774238252165050271569657572461570289000767894 -3255121682739504137653843468184029546420570010142268916658213975683507187608005044348538495082520951103601067607492368878206287 -4806852545996927533787451480123813559737763425204966730971472301392243492249231539770928832609537982396509758149828504617903683 -3852759316339548366895421554002413138488562983328873969801625973328318967409411308340716647240522981188392227872470754156065273 -9712297766053304902554018245083167928441148337025924749085910105658941917341095233228980927774840543348243226033787592995988515 -5229452832882947701986160360761878773430032426431930521890318903440689202842760168592576826646125537090631410703061420763990796 -9492775501530308620829606600311339640855706549659904872171618766544922435708097161505981598338090549562866490651446857290681656 -1678808597459616937537502211249586561665053229525645425138896011542471614595178170509581277828163045626690556829964393718215591 -7053324203154477437019031580603162546890080238913915157646559489429803976541625693989468806549155901365763128179885048681463067 -8903137465669354155616857417689085085205927330249024040964205952230818210265737328326102255377329508350857922236822007786665553 -2734904576394968648887628638128862963608976988414917192020797115239688653336018428937106985737003652208275177709699892675605393 -2387808386702882349280874532643852585858561738093225119093657885192947905905747402618285721157837466909047447734685099503267111 -4222155360968520550560237616569205752212233789555461181069785768415048417477169723562149137809030351670058489971512620085540222 -4298243051299268952240909211177826836030583513734437502197104884602882464340255753900393068054947046141922743129752936688868680 -1061375462364377985228292590232948700810225069864185759076897910654198361668411325978825417457852278989472721657536588031658991 -3940469338205826791620626804680412258933163753767218044848985297248760060861868407223928680948167632232230076213403901155993516 -4300489987649264460199719443525675282990880539122997731272161031062934060033770185574543151609533413639501738216215062848675971 -2177118188977585453528133388279985990921229278769939253605657684059131396416486258985713207176129279519783451725740599907936598 -5468202247459866994978249422059052436184697608003427416719037990135361500297493876720017894883453685240892163318994013086288251 -0775391987748089844439257445352687468561143051750745275017026626096588861151466861293340177217020485953364933966278607508804835 -1628141832107584076506487704333155316297016420320945282094351104594402285535278391969212402643994113779520387919087141691462578 -4568389047366302665905669107740203378971862242851210284195394536420153604497510004787197852478898999690840962496286253318550921 -5915870003274717803413556085627698745281531034825477926175968946204463905051355885851004345422507537344854894128229093755738123 -3106488353902440267975241920861283331388536648597182081274348906670754514090626662608509624737135193693712779860188833406087992 -7845555194352577902505815561879589158643398041086893321684441920278495085775044919835855368307051779503838399479822915036806084 -1432352323824143885623247262050454612927281487774810795510104248803405617391180050263987964438216016361064912733157137057008420 -8930414578064185485247400714821333921221435324501439994244285682760117301820424406392510602828280562393052749013520039103061655 -3173670884438194788166911165081056822054430147218290866655074231005149200684080014396687574505239932587314443974144267617007284 -1527450743968461168931869720925121234258369083166801029927251949358618661922498099466741377608784560458426370545741910023312926 -3234042028371733121222497619662259149254047701278276017559926645765011785573767542697475259020390524937117767929011666715323342 -4704564242794556338739787095791826301668604024597313082723259898622680965079684337190731792129157208207454560161440807617595099 -0586578102694447320030978034126807967366576180034644346378206991116172450484663474175770472979363179024738326934451423318607575 -6711140559239053730606360957739329179929007703740765446432207582934464258439308670322228705839599858462219965901802441668368441 -8135099406701400995240439771871466473527799329781080913941715241663698683730014850012873125772974693072458542177139084387995864 -6568179602365017697198231075678811557245910639538778108917663715366214082022315024791477373317009595760696873073681125441512291 -7907116539452577187506381898980888332568593365733396512784485641208492339371509014105839017197673863709466309379039960962534849 -4750829188061091962181509528044851805549096285740983094887975885868844208625379458016822827359147295255429793714493083753502809 -7458122759750053134279494636824383187336514214679539541415555708799139748870593845560799552363619897719534116667792275265497323 -5164505983084622666859401822913429103147582979952129213026773147211467590148787858747588041796556975884830210299871356341343674 -3017622046748766474496658478936400050960631692047289817971683454103138868538745678486924385845403439475522996310311537377432294 -4414433427221551082351019813726625491301604743637648323980649889708459225496111765515476857080238229389480546313915805440388154 -7128048414711368158025433805098117535633079017719775105234085215317610434688668866637527464933292899758107458405969861125706230 -3650863400245738680980130673926472854780296246906056457846071189797804208159343552552140320987399388241880735463419185645329289 -3725491818789741913366698889863185159632846810598378698135320769928269090296785595628838126516727088490704926873118733305049981 -1156989564178115063843077403158558596361694573121010738084003904783088187504126348616809589260761446819325657369704310082822306 -3039078554378698516122693013852039986103065748081512292985255853944982748397274910996825923066426171066912792454508578589756672 -1894849971820554276778681262205130604407309897326530536792905116831412406644096303796353324894146354102174288891383230945427806 -6519430441043631674771677332934701069341868125297788424647970576482950339536231483156528606063230103167532910086072700422834732 -5003294909621810744051481544451641763277370208048653102677095428677725528287642449117886584959778219864346164599848968697364087 -6751096317004399279893854072583230132666460132819591435600170059086840170914605351655306551416965997517899522960511150518237562 -5960953398400790636904166620422410033200069198453455057858306095484024517953196610901762809189095112424175853725058162186086849 -2378590573214575182954920757796313474094094261522041549359071498710995391605164191319908953433331128043052410209542459403183882 -6967512166626834760387377091334566417667045028443096775043889705526174743033818006933449908412813794430186357687977532151972724 -6459437209781961727829502811704779207375810741393525593812033931653583330049048561114949732748301604240502210577065589268424394 -5485945220569893838677587873427380906709988368671130490257845675526326075411511740051320570135507392241324306058959038656611327 -9867804575762976412063217986099462524791020332282964702449941371619543236717809914141667173375719858685004628965511347280443141 -2110798992334306839358051076527899985588107686694616660268331099137978416904137377280100977825535315137051402200610861241845328 -0363449860601942956031660094586702469467050513998615147930502263169980700379643465968570908871332692146680759419252634341789329 -4178175171299653546801324512595807182660716928201014996433033979566075147588628538125142107342090640143892070802843256418010103 -0456138779092213905930697158012877976499848878257289818896704580464918962127445564050766970246810568260512090191166877529968532 -5482828669997339487166576516726609979104834674845622909875424783106655102257236764736990686408975204793086071837965911886835119 -0267535380044835507754251971519271244598217325940244403179333727723642934577686643739339224195755654907218801997476469074206459 -0065138464529181013506268966674037435955704351830301533242369638335168171139259359713958529701206344946001165594755646272160394 -9247709545287060822576712084519151900147438436096859182537437687606226004692040127414633767616557761740535046385163645108196795 -3057714321815816843173779617852754091940306380163712243160807705160943819438940855547343479788687898931661575785126108832716960 -9533193667848378687611829528479562728893899352573352696025950207316753012731502558223567081292045437196069989946207141541601008 -2746003049129497733856902406986044430147897422219852413496236136281848127325893646312380454532608491203709112537348345922832907 -5956088319437370932773128721138395583820924421370173711672367829016504396575639303752597289231640106298414733655039838766441635 -6180360982212734271044173784836239476693843516863507994881855803639383910953492384867775507310386199169825014966152355545690080 -3474612962133776522839849256217894365224998226219581308883384099107152737580490415337430321380267679764659802341675603080689884 -8385214883553973286697705130178868327520836907858212929553123995458539418552809580075802670275820221517432874193060009661810485 -7635870550202301972338809565930908660230248958179738819097744222123891965883613360999839391218647211336772299291193850385713932 -0223196991899819000674224598203238140866873922543961390070945675722542943959098310960399662895718004978803705167927661114684329 -1353039351866220611077365279049149758286033094828313328435837478853295648033377121231092341833142961745552118705722131187887027 -0630837254454720024736805497864487627874608261900388501662821043624883721807437900259240409899471051510920617085099514167842832 -1988240186121860008928979530309334258534723646976027619874403865209331775508112215956780097468860667994721263707215073620406836 -6148969112241707992551262221756342003961909547272415999992255159101022681539848421608837594935060720460495066842999521680449846 -3457737254497423194650056810264127963010085423288394333781451846227050135758357730754076741230565869445804248143832527389323252 -9790762908682747953438433738621860423268309500095630988326150834401786630708761812852217486714179905608190957461442085387864531 -1522476382145618120242675473759696978079648715587754580423057134915914494338656294472760447616089310947302406703031809581038470 -0171535968526973835184507085581755238300981407341777890096801351412273999921818828858705625413157216884807494772810429053662454 -8619996360469711195123911341155232797961140155492488752604043466908848244534955186766472286479836154777737654804742176595782417 -0442287907416054215425872961111123258314536732740500399960690027024024360050777203631279476105577959878524421999307563248792796 -5348313098484066077132466864776966488466415145151104355092278471837179740560502130988667962911672913331290100002597980514807384 -6973148695771873711809347394667364106588642004523762177909283034839940053425839430616152779752491636974036365528618662576277264 -7738896628379276240988497456223829719984420682404133841162697625994660783140799400756439398245883415372300490612168611754778835 -2968155785628016494964773780830380372616577140688533547628672148913272007307142811840952334174750520152544790354169079912774158 -6160810488767205184519228782587106677087830138711937806611950216229418417002136640356986986424817853470899640679854298647927259 -7389645808720792658628388654675620007991152874617887911936239398213102595897949513877377839509375811277492184373982237380291082 -1922598786894089615133138929724905768857077536113336665514173213408958842847812824030198485744051056380839435865339196791176969 -2136038443877769241444454895223211664298720250012371885167260344691881420934862218782035849576910341176642258076960704001222187 -3619101830106431706477720342582912973276053324213930842322321478885278765764844239473581443510550046154371836075105045519367692 -6632620878175338782391713943229145276164648915620343082760668528508249819030769842115080099804055533615175586509178038716739002 -6375633941128896351976814553047937414266141967344986676911841486068926852092747499580940682140408121435982416523093436110154753 -3222139045759943847229548540511800241253979460730316619733573541964096618975921352811299052448712030457862855059140594007137487 -5542934473211875603591035637674955693033630753758706551752052733350020451305012112157194134893565133530552290159364523539238466 -9616750069420348886409611437053219761816707838644591613686536212537661191394262393089971240329521480448880783267163369576343597 -7663178436164222857814082876400941903973450706396969842174499622842764650335956819817450043712545807776915977745377365681672284 -2935635454175721831517097628434415466056776136240049950596242823574086540015840252558304179235526092054789562977490616481745276 -2672225222323108279006574534254983148801337991382313626787322270855974712894468368216489102586460739019744587910470428744488347 -4456074219727400675373619105257416175699861456100136151468602175897841754789156021282927447724373220233266891662271346817093855 -1945491471112632720796456775261728821202881302996527116048267476118823402662922873934255261349533307722895013671219044843545536 -3793064262773487395195026532854447589979023796935998929027789654646824047287035198327952786992674028615601422606183219879793442 -1630579923384492024946757118026605898057464509351571155868933384841116903091820066294965297665314366667361460313869589402652652 -5439801899827848778232404947415524928188533947410081530624338414230329436826968163987544645598294181482211511249572440955572589 -9020302797433585342712570197932059030880158484733343798115491391574065623327717092645488738835390428206014044345059915068656197 -6778633319862050630189473515487955936852231827578947650626369925629640725543661083890077620427798703103241551925751730707081567 -2865799458475868282589650599779702798567688820803000453419899694057649460056145012638522245118862822941880894081107383763766480 -9848357801406244621888791600769552120182014301160477310095737436308083268418063998275870777119923015945538580745005505737103338 -7945415897343252007659617183211493332054610541474762203740026194193724624943127621999433384183901217893204226254420212426063638 -7076158492133875552332779907935346207685056687613427451355599366014714317865416656614209291512293922523145859007589727797381122 -9946333250403836274494116934757202951674758307883028448572093526467181950556672615580772027423711017988838817957391185266051907 -2671612744740733351071730789204383122286756475831821553120581637533315869945628262846596800538216358815764391197830622296989405 -6992508792590965425974849365498446258624365117468171476061738700582645427331625361075430086525639161565604855405377972628830548 -1767000101633223839049666007882398066097691088797110243675124836228262533287561681535331091157763899063838214576189418367103407 -6457110670443987985620843280548984156731527065461755656723700576735027138342545097213504695717743645364185206786138748271882473 -1596890724976137980689991632152444686110535638170408866300049744279882252913535065665891060859035882361321345023887058337830307 -3373623078064203672049256820541947607511438489025503639693977760706696248117065715718091918113311545970967574977708709494235026 -3986923221612406956343410179388036231285096894778891156497956823154793926342464675477516471934158222112337889492119504249964378 -8383359661494890362436075780531143970408529612575647080037096675346333712031003814298042719987791032534165077846901212886629083 -1031714454907840175775311491859630739967098843327841882994334085317927475102526174618259645090436553276509976956833748682136561 -9064443423702201811261101290439334315411997283217810869669829733471939988609585312109817796812433049198581074521140984709783531 -1643172980645376942250431938106354165389537074459078140489244293256765030797030616074547245248075610258161012282504441637098927 -1963449744475973480042625489273145165780544076999525577661332442838969621507452441516783367746336168024894911875794707697541031 -7478540879501049129571343735300770536436533927260315165717247241849652331693508424305277324109605811185754598081962423629189840 -6683599827684293037220931133813347833193703737280727037200969748489983084498274135581120006138983726589125846483814619896382039 -1059986341689241962791022654106008362005402932907446471177268388894146241093638783546170660638544503679877547754823916693779241 -6066567318288101759879455792419222471083652734422111018558539534478864130071102091839803023165372816119391124984955696131849946 -6509143418752724874347225367749147359005862337831645120532349014908613153135844609402649987007336422813208143055617331460906483 -3354213199998376189921305928077126664201462525396049040175801721488556837349266500704234038852235700461088952452452884233498199 -4256488814582093977539133655050527294580364706253926894156976648375809383013472871520377935537449640402956782630405195205364082 -4477841383190587477839953144802218475017581377483593956131465077901385252056389226406917609350544701283827958845981175691165035 -9675317500791142255855936241556896374576355116352110763482014692288089584642987642868701466081788634493767773533747361856594926 -1789275548140948127853887574961649444778475578058016075475638253177323030087374164983465707068923303558558151943477905316462894 -6521653020185636533316557444077296865023590390333185648729621716717902230175881569862122737390334951189041533339830180227274093 -2241738740799072036341573074248811436322223477169424669409308388622966605065590062245566692647119962939155999944641570918974529 -1928105019305194521974392400885274260434232105024551451106931113484210411868649822559924165796213171984543031754090678126105970 -7223691850432923916423525460668413682740557862272946646859452084367199412001020057846809103738751744440123325432522452656213927 -3644451389904659220831784890291126628998096321970481352017638587386823902603865110497499248782547323024785254006989249949637036 -2368125490914853885015667449603549765164883918157991257417554348691174190395500642639268158971914968315411160008374937535704060 -2009275459811984599922767470947284560232970282990047819179940733002227635796160576632463265974978503386125557611307429312063703 -5284668210801338637743489600143584813073507148578726973558859500688227447435508050513188287747750741584385175252456997688110085 -3073679804770516059033436419747376347125944073396261678398209865762812539120718854779696622769273119321506920635555831381282691 -7090364017219499874566644997354338979508197792775841533060988865177458368657219876491035282278982441665265219245626731000939486 -0475155794230569303711742143247875808031690475413279208626652350784369479556492756708347931041817323940692567675398118277710202 -5987347394026084150071478790424131834854554229261815024383846088465079695373324503305612702444122591068763896541604539174335033 -4436269510455092220918525983424623113381645210225340601560482106077382634781965165780342556554085651205866195116920957396275838 -3995168889104032757269451494854524514321628575817645123299310077893411388042092201792884422861886303896708749182469953549119697 -4535001242830034769362884028681925364864771844433940737375296944979919237869503095436572944940055711115231301447509402025904715 -1800925216578304292056694261819970660613390371844516635237968892926502845404165792819051199273212724458326926182758338001776015 -5370775490948607047730587515100674887605918594533934598837391246334643161422435117919064366778561014958058716726561922586618810 -4628995498127197780734498354535034114170874670064085395510892816542000534421254922356138052258209965701576585535292854686090278 -3177671938008077658853731628156335766651218454783739782004804667103681002183460703859644141290605438413899770795832449230476552 -3025608055188815266778993615750176656164484757488579062995887277096944086284232725973634996318024169760316516668522315338538984 -6602875499695059755336245084768806035216324561236127708770615233130804510875618781547430556541215471796577953669434492812681721 -7882550875891690926234268000498082339514970368440072348061964280285302475222074394484586936518612822244399239424272459493452968 -5181563270479719492880854609815755784042683606603220498202601700410969538595041484423412424024708099469125521786037119075251369 -1248580037503075406711823500465872772309344548541150892813671393177549861436277865197182621221456420646870403987260426109411933 -8643731351640151069976036541617610531794845092323107755413601880551863223421905943669090586959614825141812500194544006658912658 -9742463384500880801343550699245637258131793581488832729126778269174701627529245091838528797596704702724365423027345604418154777 -1491976930735419986039574314558277854162840810698202905470921161004472351694186257157283632042119485754805929863758038770286999 -8776957710513013252382046879914405882388509080000643024892306629178763000752942096488188622280178608686752194263930907107345039 -7700223390484500013939160057722983340948636861897585123716556883603506625380447610584051517968188462287828774879778811063488262 -2795184513732482674790613434841545867779716565739406351364662664736206685645328526381352909903916053024580749353932896630696063 -4740510819037498201511535054658680017511924766740460699058893969064394902765714052038187304179100787141754044221407272788215435 -0593548885409678785621622325583756109305462458590848222639139506641697602853829884986982801690179238753218240401694408881886033 -7410128478642788707381845999570686789659413433178313527394929430353749262597920022866973734073910557598880611659693295671936482 -4050137980096982959463694663632299864309583041246448456720658864445243964035849113054975666938514766051492807225377478267946248 -9230953430893702870077668677812927912187053690817849571057339797969486866950088035191626753948056471063994773880460982770051756 -3412034824969056166032815703553100561028200933063775986905919463873509475321843375830242381162225467967586471609115452917543492 -2276619135566337663226716925555717587888015126203959605452287702197704113342129180746061351411545746680564903503675372305630554 -0286134594910134037086879568380122070111392862199290853114304309332761209262076794099989915249949904726721530928297666077629849 -4661032688517145326760870540723245614758880946406315180541283633369882854109153204199703802230512566561461752474068428161370873 -9985206963338598229560272298952476210547736996017303976951734650959079279082066159408637306110242916656383381032701493580216738 -5913923322753424774114001206375448829014685918194637698592895629614872898525330558761701771138709572823367430917528581806962699 -9424883011486160624035588850742276732199499002202807230209412116053419259700106808447590894864084149744926170960405759460241951 -0111713605391910548623870259046900302961074850779853822097709685279966809633918351283533571183917553534326378996150978977861347 -1050239621857569309671883851470643478606629045329299864518009651449122046063366124913574153087650803586812245327770871382994089 -7338464051366649209011968493386794592783056535912533194525947811637756396164788969037121048254365052840678648300844862166030403 -8244368111563457237764184604100489524090599993135317160344204589670504422777317128963386304474615794833181756194674508984426359 -6271679168658661069189900053139794326069244916803991726466041535821018909664293827288937825025439753702650278433431356713529954 -5346852690092871593686894605405997962260976572140748476453131018042391268683407218753909113662935434807662980531252367452071209 -0705634605741863631683627483540085543041836023190103343436641588904884705166081263630037435630150915106908441737355700766586129 -2154922713467232816471312647563953292047715226865590918846184574044421063130666383320555928376617359704955430293171097080231031 -6735370005980738361139146789749484206639522950848455336267649778629028940168072161013843975973729190308856690607301961044761977 -9897723534911105404785432577277586147477026587182509778621368216939584671433875920453602299697242616307976245807249371547062253 -3864808728722705732544842322660134226278752025136368637744919793216576700939583871247088670783610602247097814787263304145508390 -6389663947104499816842871432275844541634180937582381422116532840275365272420061136044394514594368541860114545782560162829849217 -6461508204689611076377900958964324912439197085219708917353896453831247651446957118893020342996847989755084869372230374673491989 -8433851389135866749479827490565035784654953912616746305746664585754447284795963325019971006496729330088735987747297399102902166 -1771497470275815103247219843409878702558703790756432271114114625912471360708464566558219993340028146304118900320024587821960404 -5976617030473732204037553918438169303047012033263099608437162902327180494837554619833899125897762143660304278719895133912883606 -7761343244919347585259429796353568917054332343654064758967248953925035366120514799510920191615767532119958355777106600079597516 -3095394058128591553990850297147880385815415033833458376807751479083131186229720635268920776120415936997418185983635572280182597 -6753076258298533536576760943150454522971260918131318703703785217592559654671733288977408306810194844570204346184368392179063403 -6769837756043399718259982003405678775173052005969429887545845745194588303371446514765027612890020128811539282517812340583382742 -1145447512453860943574015365970108349103036202936884373965378227317332374230149559079576915215507294569467043944303098203606050 -8331961563901986606916925958427127071602998579210529763507751756811409645017688889813292902535048662887095342609935463489041490 -9736668802244229960622339427799905563413901438749725163782080129777353814116461004513305940715905434522181472880934497720795747 -8089231465924779558459413345521275018800849869822143818873965081853887737597561843190118386215028657051186337416427295963183576 -5419828194392698210106536176184087551774670922454148544855468554475299499312061306599825835773673050247207685913286844665654322 -2029050617375681673334265164512497368276347055093268045529145666800867914194334235145959975127160210970603920222624846997715913 -3338289728310358326423356618856438897910927180875153967318427145237491006914876971227986916804404786999082347353908985698677388 -7003592673799641258705037230618030712653838166741113566125031462959628644295056269826492276245790120809269461415827782914919523 -7933808111352753578305022191116925704616734794703884497922451694274860316351759525772713769181944674741861315056661705956786856 -8984597543198443392303548683602615735750098545443867287028649374064105213301110278127297110019939173598045760404284726471910865 -7750264118815211285409646722851047280505065647360902845736489925465867330208651476223128001763893620074546763783343802324668030 -7948487261322735741590287466404743224701011374099821413313798593806289098955840277566381979282309078179393391191764372912784048 -2031963937573607333606298955675833689352959686316425308916957187087489102352532079680910868716368077096336327451835608150057007 -8744303746009770077282182559273953960324245388355803375849588763883535017206175431068707914836359928021715134879810455899706000 -5908433402194706392948327209167569206279605516036898586828659659699407482487006764800996251885333845684403771593097852947347762 -3484375963559500648211146100726353736952008101895174614070329067925003079219669004928157370633196400836866091467437872364498774 -2081484205640426298611707106538905461885148824043568864528394387116332857339440668358439402474410629912663441714724196706517933 -3644343088909312558175950443352757850056547896271926536743829402725583986356025290388997593791573353364649376090870755738159871 -3017618967565343354488657372318982952747583634309941675726567297969538505603943497976312767045820564276791044673865996984930840 -6755211147212352533715490737391598930938409102322563339784308800982635726297552669891177376792489264858203303571448544969284885 -7207413969560628720009738274631537646543552986672220301640499255496422838738773705028096119936179105477192211718065255929107570 -3952347918324244189239309810051132796520311457058379135751168560732193370931728585607246787585935133034431471433154073599431184 -5948122133173804973271249039138486246462418117000640467153032385374427588683813496957187641107568040808210363510174360369854945 -6331834561201934486343354906308493614367011264274134644391474781936706762560771237417922164625963715633624786284367782142544668 -7058988605827353891060874777352863740110376065711990117582066617633614262447752203022541270469488891576938820572417323582324874 -7650494373012942929901692837674976301695625545739424778268284160337186164992467580080040539595408395037645199431241659430435207 -8656919176134694488026966726643058582704520649434961668466021566505602068958240292321141423966866142697100141650705135865554164 -6074242737126300341900975693876422564450176547153341379638414445501488034596312318816964962988094532520846350286682968373824742 -4534503855120241805255426868718961329975641710164649957599487128347011734954984504486944932371682996864451326051197976215900771 -6630007989276431575068445405328391722701879448701430734576747641331918162377214794008905979133776103351215776077151862759310804 -6329412106193202180915032816114091690804553056071102324935636935651606678882718350090015499101515918794964067433252126478982521 -1507488089191785086302341745012119227252927110062837567351191646939013086128950794430586208439605756178768284242079693463131834 -5134585587442274519690540303774472196006421738851673713532054649167344075465437753885506375501473079004259777595528824429150142 -0167920777588082886922742091652852786107461336681294679615598036369318540905949328746327769828031291675250740935570893774610363 -0038129096989223899832722064059115068115632289006675498997130267266081648211647293457692956590546845542631469315045748487379716 -2520900382745986244596184110700770194581607346454171538723932383294827821673322365898338493511029865949821494463508742106545267 -0565722884026288308442559359348206336146522003909225136977382087745807490609842307769964489536237904153503877870475885643050177 -2879720936866676112852941496983745298612873646677215750883429056007867869583163799946103524454641087004812983861736126233920563 -2682472400392268500328620582825275316785330033129835929951831594780666869418979561874633816166907302039950903765570878767521214 -6000673278648346135978034734234778737168645117288730828023574501322757674622590092065551189918194137651428146720102471591456653 -5327338501961495043879408610895757013526179026139024561532644668711391863557108491473051168562266679950416482721536337117909482 -5138678303997976985493577927432562758408369467781462054517017307284536794110651849922852301352432225552398279721808418546811336 -5942090618633537593070786933293193872947689557210874049534803895058142797994756021217906395785182382696435144831868446840701054 -0805866230785777399683174946303367253262058687100298157860323746012789121984620953083069679370163347105957163924550067110548159 -4041789012854867563385153833627178486269852350526357948901776390770563029842109776450416321004402898078350462398525384367774030 -2665510818821145216742821558285899523213916502258403631925403804385199376750878427488901928524046342897043307449003184422505729 -2048478041171475190266068119919204384149581828382571880806118238802367751477551342088588974943077841775978105590373879036044712 -2582550167003327483543334770578776146465326561660371559249486818965320307377862762238777770099168908851119806663382875070424505 -5444680706893164832113072218288281376031594555136022935125966599054561592735752631698479935094668438169179747421550309847079353 -7876386229779167984882703960774028877296085268097204654180082218579776041301150186998163564389835397054336008319799363495236122 -3595623959964323543031266473552625582982574960453793645874949571464306599166850005238654688725079784506108930071723727021644099 -9904805562100105780931661247162991156577135587825115134266116050943890998432158388576995701892214120245792294717827415173723116 -3198902109416772023345787207073949684308452839612518670096056433197360112721221131290963458888501686457236376124484894557704239 -1439923839664744053843985184599889045003833780920311682293838839176055898856807867213644378338290067096258257324765963896543835 -5700918940980369141639579109635400284102047501766736959067637462699617150713985354772825179670276479720622682613542577452843978 -5832673606644924997743952540484980626339060224968813632527031664879549813855034184500405400404100621140495713672255224298990414 -7192889419886464319914820529555240869091567523179106161721958129392253172606561099507740238957725006168387598704764060094854671 -3309479510962185342022955705280901753250343720767822070179996628541199963151640899372621594086084748660799272108092321615608962 -4880909425016446720046143938905942262706584339160340379312192206890240470343647456683169242925461208146677458242299921836024115 -9112782389287307875231265914118831295892615090298799256818943475243201711378213965480178556028607894090008691361256922857338305 -7878997196220126636517126620736341433150726102479409458917297307599211520723041036260833938983460239182766740060701211352201191 -8683094774314359941970056128495804368612258860699432526379799515947600345795062224586289908023772808639146020665057226162935485 -9660235891943541046373003698737146580202165968722595524291168751596799140752064994627768069683240083731174671310320210501136516 -3952299801633659008575843631974719807086212606583728034228268635353770341290150958327244666611228164923899770204672751927925499 -1681865396625682674685451758504759903079794185779114689381923935911799262023419094458049787998569136087163049641052695527707434 -7051981372339577512946597699315700689964039969082898958542940125278978182609047860935808672479205043611404976983579300374284797 -9494276685604001130980581987978951663125638076896908522150813094023439651488500315910058707670482621722763754582892271598798239 -2297480620143752383199993430862475021936852109466853279971476608874530008450195147642064323768140191491557557914372058492369456 -3210874548598055876505562103390094444210433165591830328725710043504607452200463576289609058990598342445857989436858490154233543 -8132507672542987199374049904308113523835831443354290371614453927015873910762212637250354565826616538395197156337073925141693484 -6828640682510305462478950222772217556425645114511993512248969567524785308290443499084010706135805334321921588360262285590883409 -2594395457778771868965633838538089838472114546447151674569430202509411063873470113459762471547280714167783037132473173267526307 -1601839698883476534179701757004074668031433379390884724016658551011492507080285489891017007383477491584644025888213433125759305 -7523532561560703539946099285117454732843364985652611667389407913314960693543811095755855340427962780551780192610470189512825524 -0348247544916136977309530119407469259627024645454634138436438519986158560867875479423449700625816301245511994796229708771223160 -3917296084877555076938742844381232454610347414176454495292235478841999037736204668770470759408859717947445502249268193464913498 -9942815514474689741504492308012003642347161752400872994567873248383495234578303317585084447735662421098893789187005435875125952 -7400181919019490047282686705057224403673442901199627215721287263528829739748034312624985655044437343710362758307470148179539661 -8008829134593470730958751998114225068506458584106597781009501241738039124829892755451932663527484529522803117480503191650035801 -3220127286757997144992978308357689318213671314902934383221575508818519767526663815112777913873690474000419949051472231014820267 -1399894109901863236068753449286869832068943284626949416147238270002784106062189067937811371979896380361397172738949505933506481 -4254902873234171699063619785819122642732788292824537159169433666069361612397840595910726633660384383938078177403483650975568259 -2209368179438159444309719519784098123505334554409147220881995692904711982790135929098654648473758048308424437091906340638974131 -8784927854050511928452505266509077489186830632833630361379070849447072741785156478899585449175370978549268898176795868437582718 -3231975833056135924558298656515294400028803078329218944207863428380011023399283981167261222531969361122301223500410734344217228 -0958925958615134583645559459986109673563012970906230471133763988818583110841341249599399387466204289301186261815920165156578985 -1991110694748693828675086932988793084291818416422390423728768580762059411945640551530823790024178761601499474873560699371792162 -5361696020245404957765470178767621215479647553935020898244576640893571391546565492142211775010405579641149396961911772636411704 -5933641384834122776049822258585947581244135364908556513226296636775905866481756079367435635748095205281573764949264635941006411 -5041011491795017405240846374877784042033437774313006536528316953327476960247723830386371163515353865121506304361011426783525735 -5488997063517475914229301557438267886673740763412117613628897204796477231021684048588313466034859903879245472327441120566103502 -8530760385580859337137628786690355170400764087907594224462686544107056072485919968752489909254263413225447887894153248109175652 -6157903578937685041336967794345564722166007100607239958562466608483279980200607600350161886932405833906442195659498278360919430 -9828873150674702059652960737024831945705458855872859591267757719944168191278626072224244567244295799804168245158850647976515767 -6733614592966966657616990010769041211313964384427177615958783894640954404002730067938048093833284287697173874637222402450231077 -0815239310564450548270963278380227549898803833625140660969258768879529883774142739151346026790443492061196604908528916004363340 -4528891650268490704421594911777184311417838640306057034638291330148034732863406008674812263692977851302665645685305101437279625 -3233475352967519524983898638596372885741145463145393518228460271054338502613983364910024616107499752355701791207046590492672193 -1607766030654760272868975035371747266369258074306005268123601506826295532939956628851683606599198929232644016608548496393286833 -0164998823596400554560038697981327950512161089142533974519294883428101099674224630562022297926592367086936345609705271926077768 -7913025882622995728679690258052758137385077334095212932668418477051379462440145509778953697224292738907994604706710137743620276 -5951558921066718365814901585239666946472249768608440652585316569506390348051275814890810652375791805564478189249435436637972574 -9602716095164159166038408316037910403855288603710934148506742938423062837375851102966449162297207365844156933403348477083451353 -4627498098319599205600533412615626896664838788638148524473652142820739172777284703948483540298530565794965460580139030303425684 -1565284739336025065162908150482205331120001945515224141600855715524039864305366369748820024483450351626491054274468986093516231 -5340418952181086209554963565801571626818882174630725995663438985529129315572417340527118943747399687973820656682726051844769221 -4320926831481382140838060220194555123790396897025705923345941235597539508677805522059012930976097312217637965288298799051778479 -0908830534451543414307140854781014820685341080782566962124152921948070095677549807088847640541631088209567823713325266131951427 -6110373879023562027503964302970937405830359276112650695138428936697834271328145752116000081078410010751317037848623862138058557 -8822703971093401247422493922044598594234342733457558225718617586744418222085876701060696882821515543129744401944915912235798465 -6594559520819849307838207390295967732653907650649027886332594421647601798566341345946992510422578734064164433073111139225071621 -6354737391657731503659719583497860062575481051328877369003533126272128322177145084735337788672157007937391387995919117571678161 -6945608633872227095639320829071216249131553642307083427955811490415705093929385003029105106248578633207939138356220965510578956 -8875904572434922005652897358604531384916362396100014485333372047722658292461442588088931849935109173016445065149146280103138497 -6344250852997852406467930596512109372720069308708153172074632971208643949842907827125891877283714403480777088075917332714430078 -2141088112696908575603884902935424862191062652660730968192553423838776572288261313561512545353202622522229101786236940604077536 -5420581455921312988453042096323962394005097705232943223301112814607176607418563604729931333417412031473023307632699354685035657 -4904931609893963364651740622632458671635349731291306084872673976452365611310080979515796567705432384020374827307261624382593308 -4292701172515433578998040448234672894273087795215109333668233787741983605782088266764474905796649724673659270602807201042559641 -0405892711593975173584006410022813365106426354541842020523033260675160988528765885253376470412464249071597201808795790920249321 -2969506372363457771265917606965665281965775472879910780113511573805868748553670687571273946389007257215130433994049155446244186 -9422294818781445710760638755747391659377594672815933259737267891227254986222671631563563954141355946614955207418080860505944166 -0087286626782644309557643177400304492693387991339358406695023215774476540471075851900070969889709559625262772196723374356067617 -5897279697608188221125456894430238474410213921346239465846675042270793388259552491229704041982502727376305057500585797419096572 -9629126678093091084216993559586337141715599917690951379809444249525710962700663884823083705316885810747054287541385125785199583 -7595346119985543253389563272070967517963948640714499895302628870263490256644647992172402145011433583359949875045014139097383990 -7523156213061115787711878716816595972617134587220608008483487762219572353605120083032766155082751752855610567994430397014253895 -3701919959515768374982789437891830642750960645657994589236832995980797844253496076657711645006752860088626834982056251575040225 -0979950855271929320767873941275718754278787090305240807928650242101643623835476811933436063479233606315724201732634520101994785 -8113983065740845934933526321338302277547952641828910682131706421618856976337728051411744765715349602385454916896966865817502458 -3541043147303624444017398708391616664010004834339935228226187248791543655458437287589626370079460316930365464946671005586907844 -6467142906481062672351612846421358624595986748030105764102127849419935691001942740215832120384833855662335231988116688960608695 -2788530799703761722379561161257911074841314957231380008835616333860526518888348729384930186986891972631716493196919384541563044 -9960151488910951179842583784111062968107086150565586865326760613018375413860020781154310137687104793480739369654379775885629180 -5757125618091793590015555342485911625792045336449768530669665131967481618933921507464033442861020327590807013639300157233850794 -0108561117599044904729443235325450727345789731582292014742872599813512719247096059598721914318005872025916402947088829272312140 -0248866797650825595958204057508507830807476195084664283762933417519142347075582529326241506715718869000199121666869916905668032 -8723343677864688450245361288384636252992454056026441166941292835836423200070814147349431308408145782824860695919605646719597656 -4679974361161727145100641660878503281476844268161393833161261969965276371391589006952925603728082872969549646978882403423923010 -1471039994683623569789873331804012722815466719684852070254837711074357511238693361592620597284807521864906755820794891745584020 -0746324287724173135220206601559184495263174825463472438325932765982783597938536871848298666533763661034332204209283999095134727 -8847622479138729829083277482843135313544249094572861179333595590622772221061675396437819003622647477864448706978670376179646671 -2102601933270120920559135994545418775337484717153198432612404295706149728016561442479718981277683958181059597372600330224769132 -1259053282379608711992970881977405077810774056106800273103144031624467658496517236458989974966732962924668833215016485379965273 -8337096778081104941132624055977594869352911917306275484469902456879306916808789684303864335821138065913931420528939044385046271 -4299368276599609244497481316123376963837008957992736164808101728168540138407838646916364855310221850303575133697274394091619868 -2713682765289699129061431150379322274699877403663503040025037596762253721290401208216082436415144118858632156119324419976312546 -2881609371673910343032291044465003849815028985591391451188131927898325558643746240832264615980161723347980750483187867525894824 -1267916226042826987257806754004440337824069605413162886825139485042850988829975658205470396562194892003670768255291562747373670 -9234220033570807048609309912547070817083287541492891357818324994480536846132188820055694019487542207004276192292369053562016777 -0261127578143197454905032632100124793899615216318941692486325853609952184783830755458121912666549923939667928989436426770649961 -5323045993412285553048451071174802746049476412795340271320920389475261483664749025686760199917517732942380222819936015551403774 -9891352074356975839408670998973900071675970495889358565662068888386887973659152279951010618083877084169404988201568384833942255 -3238050166229051707803832286590198074734858215255713288528844554284335600396367554775218985201346513397387400209397068796825742 -5728107211476180762511967972657147473012924183544027968479506893336809289253531374220504641466496667214723927677602095165464315 -9011192930379184487659969643233786997863887173759888022579642343995986799605176120033884333316312893660726740709366636155465721 -8537171701432226276253255188614622965933151059377811653184802609155191205285178705789524447418786231655055288040171432169049130 -2707936970837574068569629371931407362409248401030806380356720552870356587923391333211272591561747393382939386843280495661244314 -1175509422804438381892148322240590701277543376729396595323849510597370466005945680426336918977914561211300792916203174309654171 -4042805192423544654158411198004453353597731647696727421911837745446359133507547657475484034048732290037678198364742205283336338 -9337695707833044354501853716373623356235483326284612569311911355595616206369186001725088755459930335959640295675396477063274478 -5056639209721879485672408789757891131387617511313947970994081160678454602320697412448491839531065552976208944273555314142041880 -4822378866853898824086257862623541730929040197220702007762078231078349736989651940081080724932828161588263934616036801731107678 -7042616549110273896023934480613769270956663187245804271172698934235574549161064775406631472230169390486643998381840493803484843 -4432695989367708020512810012276065008453086786966931783819054126557051679306430656639833606398733688366162720200084451796967553 -5350105131227057106985599834342048762794186401151883770272342638155104883645396726235498798575148882718582404327490926780130044 -5764192533929612390344710894456047465905143834205988681215996081613514814903908502795919703880401811242594826105306055481784823 -3081736917550671392293064759141270028494719167332097201455667940386826052104961288882027240309372922868375595753000121957263246 -4989894866974583276238356566258521642610551259726323252743986766553600472233437943119765905133915493843897768279428421555764861 -6801273161353076961494549671635819940275013580673219344227796480147357333556424794612960445706828140206119824948840749240399787 -1573785648039077385334262023034272384935398204989144292167011651539471971703585283557377107933951650497678725581455181207346698 -4874698339219730333194095651462069186623435369684882832433815952523247766685863473588031370751632910706819521148264821690235129 -1745856207579350369947762735836875634021204626000569901414064309006844235664625468595115296405455194740314530759379861609679354 -1263339035301388606388533163722497011371588322482095769750979879436887231718408664779720990691297703089437248834586600555339842 -6251850491772376275294393458209471528965471290147918965218220499155230361216164967212789860144972751525815583122397986208096706 -3484214175754929920259118693783510869997218078047468018854269713219002531566539459352397848678904622285083238008575450746485192 -5035485477939887603964624838580376893177633857009639663967781579876337080786152281286836780643711497334038142643551235377859312 -5770990490009748551131841465407612077195558195928231585911499648608018583508169531801015305515399706824738442071885239921251502 -5505962701249607762425096231287734763141665342862391398728642501706701840207749211087529147723821274132607543767155647569233366 -9531752996646776228330405381959650186056935054844849148234315573131250892996644098435195362019426286916985576819912113865830014 -1606555436659451432978242703284043412347220692073799660822918397493666695089541486316957331014765996271479614514099842437809535 -0289392478723841946498232349165923942701150815142311799644394965419544149980499852640646717021478951519649059011872310248139100 -5511032978947425845575588456445816057377640214105339473284188761415785249565799756251192934762389301520020016150949209737931857 -8405804800314504366659749363367231268121943183966514746661384830649579675620136873178912503421474419998605051121952540207826204 -7505457456876976664571641545260379929258562329503538400546169325488895767917670975295980264182906923671943997046060564087753548 -1274387949977098682446892314563863257816052408410571422114222854885606494860672338931736657657635104187063013087549529686451859 -5042755850832972022663213277248439000831269961224227718932272498745376713860758630276016079020855254056636945995345396441383249 -6344700532270890968181465829707309620564725384105716449055864407328703719779390283415257182087348958918979888739066384714906447 -2478502268884223599964876320836160710993832544375139942095572555604343446400261859797019349052899588226956407340248510969084412 -2858479499626608853379284122587510516464864248784114135053508629608620108109543831989223100900685873301894882329747241764687394 -3516073975240799285196283516667224035786957693305024409405170967493899593072209653378675045399225752043351688237909816464332488 -7045960591955279992811051225021192695063962021956994060992139199430008815112575669363055918094781304106258599283195179624447775 -8303548637737456436395221856298882133107004338700669993457647426042442520873552718504789607522324772936205923889075833787877983 -4528959091848677214793256254827374251508317477836642431769535470979890535339665561280184226951752824749258073794415152803073480 -1459998553825438645486213601892946519503789985188491129629213533576249295139024141113828276369687768834808863007813942900737363 -7827507025285847290454033855290419493832906414032145098230761761828468254431382777807611448800062745765313713732689219610038574 -3538625159483449646940178756166257692080479081424585343862543469052182432934925669284445293824171233112956439604122644220734705 -8884093066755275809492142335471176239144329953772128474695403479470145379846983260079920680227191033324315471442379828977213518 -8161874018859891048210600302227335518426279312266158906257386817733776024570411483770025016852705510503728654494429243801612182 -6746947553453295308964010256393213729923189009745905892535754926116629620973613924884980514744338995975237628963272677038960017 -2316979912101253225038374374358240155041996499533280966926264100171569427093110935120513047386276224147665309331079377719563345 -5252039218101191323619349210669314090591183299132043388783600602372822313158646436097466384432429894279310347011205483804258365 -8849078102378497326534646727789474466302897639756078400720546541976326397706257168948381071970398216623030217390426497155999023 -3271457271229858454657827770335612567349224212240695221407152662225083082143775459834013524692150107287815992741275927112028076 -6697268153473360409230969649314429281006253608637773637800129431557004336600687209561833649108523766841818697796052616713524406 -1264023927267188505910887476294511895228887727108862538027310305679469919872644028196540981088809214448552558389500274219570341 -2341820289505149961074855375132511787200836031120337305514546465652487797619606591322268017233923749079200060539286691098575276 -7095345917502068750136490067362248249806291619173145831611517423916491683475780750592775740226681145459237438975249038494918255 -5854207316691383141245954956380735287065353365324788816174156724268585661703068556010195412645633774843480772404581791184447848 -5983572806554767884384691619553163176913927916522767085440008009887977162986441335924089064521714048589756802500400756006764546 -8749074908864079527865640561432569820363365495585933467014689209329639785755338623694144042638210864919006966920756182400308068 -1488418928276481402385931315882264463640479342727038934158474806015143604448429971536086762337574137961555181782018130291223711 -7647631250366260770657650732694263292505761395977741171841175592881623563088242488954360090722844918014816525013438918815206919 -1155451667283610662459850201212152183408308503418856279359708202057227744768180593554527508439246428232801124311275672977637096 -3703563826897681685685127020250312031591544945988953353941140195645214477592978106315927871524898358121653801020581142274555566 -0502532594831295067422782714984502485832073390165137849670240378837997996971720348493993863606290066187249274244662460276318689 -0152755194697776938435286119441290637386200629628199446127743622173851669645911455169432495002024405765718643210153464143701889 -2562249212763374000591086405147643148598332714850654045728093130807693494090674026473297812238167578278207216049055667059931109 -1802942091998951751764726262310843905210614073350123667768202638105831131108058708767584753018377136585264570210097378501497188 -9619747156993809984322106521027559385156110152742577368251988283361064503255508785410345421538190771023025825991060075397692057 -7975279398046115700291300736456549463218759811012712333893946746580558137896237287869240420636891089058025806023431754219781359 -4988421426405962855719392598321200928497349040850013918965781094541442225330283536616202634976088463128589329235150833173556905 -8706200507172140856416642848813849966143817717503023224834106896623433469273328907429832511563972309658830234487588093651045739 -1804318877742597644565913208808319750885352430439083436497378247283858616368363127977363367800390625897013789449450637875537399 -6640589174553589654051256599633381120024749952650719727219130629373315456037578535279963334633963259335915488696463449646684320 -8032272830450718870582856393550555068150335019058461099968557096935808325051772579016403379075019846185741776197086257884683319 -9863845517847573376326098832507232200317675290516210661300649571154879306959674077908278504743343209243187243262639791806186829 -8260961262731301702271912238265956345814430445731867024044874570864287595912998480366912356847572447005441275362156399624494941 -9393142035376317879394642824057024278760474627041377093083443136837548371844421180440200277690935722486852916560800667873141543 -2707649253179074679795746660619684282278565191941032558500021642302377918384225264159606437430918854686420568233535916210590247 -3653446714468860199818770176822269463628134871277975181151133360475139855607198727163601307481114241837610243765527921963130342 -7740886414228885927181817969815506430494309276878003524396743847692333838266397442280441863182363662933711077420022986422070281 -1048387053761801939044385077721021658809540040018134673396554017098633248966461113346771441179046101247543088625644697892282167 -8354720955462557218106068480057094392968433715936618376234382444557134795213907950353329761280756136821666440990155365084581402 -3688937719186699342108738462217437423679733279917547383863629404136782590007047571508080094271518356483515978166149181632884691 -9910698753207335191315666777695731726998145344199523600464027456153460564479006998462380767579651598842317204792886070420998182 -9896983218119310999564732404427002821382477892511011450905458994448002735795600011464506066851494867367124445888153203962666112 -0874480478255387464724872537442210377291532518746867402289144019512477208223281547993390653821697806118478800205575150577662857 -4918888004811316598554705337363884151483714153627256672377291874950758530975380513235648385297027498654040181963476939202925535 -2944953053399838723025577285199841577289179795119166022276762443360574684698180143394617215098184693212410119796009072687729739 -9732016373361334253176297777291060712041712200359193577310902701783613655008446771602140682798342306314527926659629849329119883 -6451043591004466592393679872228794008130850294984708968342075888842891418002758594861642712850414025146690654543853793479725972 -3268929657246764345075224814644064768187234583627518324258659649632755014931180023989253455291331973610627056888949488127145955 -4261926089033087120812284628614836440477048559583788705295941729615760122728002946792084729956587080892613331345225489314812847 -1986796721026437522158295162217239471552249715846680613750709615232262912940447904521346670150883469709041492285328187488804299 -6628012528405245613161440847234508491425287943434287101928325272535635664307751412665147263964282878231211570769131706300759265 -7377088066364420743764402212273540338705138073396342307947494852950818207406971919647576428347904811456431944019834650692515506 -4705138654618320095006319217530505261916581737627651424491878629844356338877632449493703212698711863106207638016952512058495841 -3297864919576913522726817303334406976314952205292550373391722910736512885151802773872849953849211298237482028668331950499038336 -8974669281536290012748118151506739167431258730634523888446083432703773451432089051580445107667501300580071396777438663916505890 -6676388335245038478835892287014370527286751599266433016127479958260673956274510190770236842963946164980795747343439314929899367 -9777763357901635768971296015139054097237772494695148781717193551641896481882800982585569826367439263979611639005318235314749057 -2006174408272512048656262525906502452313110102817338015892638328650570498699472308145823254807565718645774486952361348150134146 -8820513608849516349458467726176340280776183307750894733331062785346417632047203675211923303269854905166452369376623717371465515 -0487090344893360730368974812186113379856699749061983876927406730979994152222167896194935782650684486995334925005887216364226178 -4428212757677682587368912604936275746129828292671231661463255473216528603314371364809318568990891647756504476074694167225494387 -6438298664776502895176225722692218937876815974395529173364685280466577427859435428997212680686584089016477667080112002827762955 -5372837358048305432426520203755641518748461432567909426155727245524828496289926253694681592910381964428484012886894327170000564 -0966786693488185832806410657062413915673905612790978639242251067404941406079608751238017548545457392976940768385484687626020964 -7081334569477079676309855956739406608641536536529136201573794386634730088085065014162237881535086131012737674806790302926845508 -3849506256608406770319555639552727023819412680964197246748248202159679944624779483651489821124252171233790787024388338169387126 -1220350189747959004534763654451835109235619957413590127042747161319131890755258681890420398880573552502186079819673130304226319 -7793578559294710797103985830517016163667215076322029333261233893714376644214340079810529332625249572639110330515277641165833848 -3375779071080037456833323971305312807921291040172365572121296035080033198190386403786992644365488916964829938879099337521148544 -2151885079681150752124200634430960212055491111062153428630936693865872096334814997531820067268121582290646921550422149642030109 -8613181778258533141158145972750085504588401393903967265445772834337987637418600396630528732934239316047591685154760079805548066 -6810794208813864500809678470319323448087878028803605043954670396669190693495990898866714597544374154361810960387728955757997027 -3780694542345726440651447280692129044592214402723296549397501233597057657590741164054767713089063618201384926245188297986421050 -8252358803202927045538322743598848427122577241918805031148056119515867274399187693181758263084888023518690338982779085780404769 -2424326538477152923084594002081423911440158206786241827087394911592939363042513317947630468078474296989628062484584400644343448 -6293560419015354447114147053377323271370974957505862615433195073799026219744354293045028357502721448147460831465672262899873109 -7387532795839583928982541818961799651808690944192536299119649406867938059084796080728700163640618737891537102681397327040310310 -8646371766907348023824656340748360066056892200614557523317897955392332090329097835097131487719957799594533173582638863081864212 -4986100049536290446290958993632891990045407747006838784207732735249166707023914891375926737812449203630774188546578985599909811 -1084402346707970131458723746814930784514195757804466199671002857316090262762516878154322011683754629425143857675752082486603247 -8761838577711280264766083372187992430863964477324546898292032760669740251929185543394862067810777754782525582117312630882437464 -0771509220114585291617227270613376384799093204219724418023916278133523270037263368542243169870229505561283586085433377009674011 -9820385787390786107677870809083528732710164474423943477332838364565199183957564959608617849089060421328797474250989472544417321 -7919326323563029775076417955118634250595776343877190502902725431786697484594693383405493496141691115991728752796848704617855725 -2558255581109821405634179872876958166347174474348761073684217931689004048682704410888017280103004988712033725528911209075578017 -9160863221896162516421424469589930231499714756713528296148018288586763465400454214603217797926981201646940396481239125062147650 -9840316514604720267572846195066141632646978531870664811024154364403354983561787177052598257504070314131100093324913554509718449 -9311775701841172266095504345180054522901312438857477399185382790126084433098439433269362739881218978298243657480689874068996355 -3022781945908762278768811002699224365141074026805076790548873962428543441756247033480754889441799694147133688175673557083134054 -5661203741867036406194178717036861247199166773801082533375613708479585773697108277538910907988050442661518792070910621436071059 -0690138478379736786396005725249615711997663990048585261495921831819669914145515073403200894318211855461357229650824823305525133 -1751585791160648049215935161043755494836647727651069321059714784747155745680573976254930604344088093264307898664770655705644210 -7624145261014687805152488774841289678583856425221410365164555890159519557132962343799732888357700797774204345288024762788982261 -7890710552868121263477187455194185399264846143513087916598365744278210315488246993448630198352186843484020444533061474327432896 -8206909625120146564482691781469049022430111838502858582644125909195387775957182358764356323550045553074686821737193044914677910 -8204337650424296695493149708468179951960014630538528111508141341188662936175939750414398867506644825258652647525390439239752201 -1219359010151342200692679606063626284788399861632782010310804100495631217242235430375489322644648855854345633079496117764048987 -6653697464408607985860924202927606340854610960203650555980002938739009437996650927711204711526682854187368829518663287620378635 -9615765538591556297112167827891749863300345638363300995749126057833117511099109253123549891887992882557489784541036449471882403 -5919028352049694001658038819829671235731815415745829048231249060308117257367536285634944658365311943856716917740139982945041953 -5779687741861700152585779009366027675558545586949850924189709461217199740749305528005166461978008407813915390937008493360553115 -5834977903061566139099870190655547716966444068581774636647968617674813198281268006404303675453751976888820043577600761967333881 -6972326585063978838443446520453713997506879344217941897803906052743968972254016142258731934881056702957790715642228115030783951 -1362425902796546798395679404782769752464205460307818179674687205006891103510168328363308032810297518997174255427908231022445396 -1509825900031470252867573280977984303757520410764668672441796612789584482854046983756780462029600563288455226754517497700564660 -7759844224301976256343546717305935453950775711909213261546888518009701479912670689049983757648821113680742909226880646315005569 -8295567234561669944338275143058695909726066802894545455268764288094686590468443329734647916141835949923568889966174907115365925 -8847804451408263609187211738763773284048172606546780028907522556324927271519705281526806470352840988271648499699486513703844773 -6679160425612818347335886820513491773906491628651444000288856405322740614920289642723221399498209432232637228104522990852837747 -4111012689294616788593607591102956684483592350971102538317426326909441395344097833084048144520705500574792401000355907792380226 -8347617047251388711302856164567942061715329050448779661635598992241168749527006373179435024773116055832951174916423963970112173 -9055087726497472517559694026453105136312139238988721622285684818285622456138820844308772825216777711338810456475617988242424162 -4197863232696784218000746661193362219301917851338032677667264033511098062281872897803087758355321546501532794013889570222549856 -6115749894285255554690322957000949336927917916709996337643587065466062558943015944180187981070089004992789679317730749848395116 -4787717685054333694149897473720745326568218218182852236278365043324649884567032268831086174748464582606382556519285049880278120 -3971535819215057024510844131306800637142690099398881617684362973207491682213220003762765264571054110883901103595485168757504333 -3733461701846483183011223494998710865469936261566419212369452729547931045469934427223536598514620405179798084202385746863975487 -6787515125117652836269017536232648894348703796120091034388135038967463209181552965632410604353037772756879239864709539921500366 -6197228209653401639582453147092770443022867307115583008238408014093437109999520308757528533277994723967340185717046004119026260 -0327403058251198538854684801262565688227840370906858688450070334229654311591524491257725374686504434311374381373826709761897189 -6320800720313217016667089641041343357180293991403820786439200978809209918586099663595021544518755767970175732723433500537775215 -8586605557740559261081287090127076957830333678084994220662406403052293892606977228772765289631860524156764537528844813070064403 -8457029064238615286786107279460798384585105993306593540395560420933072225512825677840166549704827482169925869109982598418898944 -0346460363516674840943211123653705144516811133167773396076974206411386351987012791478690845256647926914987854519697980693850902 -4071039292859550793054081697582930309815712485519665021072773643984757349601035844973218854642152867868823320985485836576692696 -3566944195916064023455915853671413519744116499257428302391059795726588226281448949481887857567458305547585518788070366283222643 -4475630384874509141748841479483575783195093285020751153893790442309506156006253308563119939383816229293457633418322795791651798 -2534236711768923060748330398823973796625511107263972895904532310389295669901143468746002992855700338033513519817927059960082258 -3266833442506157497412341209730995861476441931081314990884968759007025722755350805078872002993770048685210269397083340942969079 -3325013293836474893127556216824859727670678446693115589979109778870903809827936806876988266059842178470200459657153466761585276 -9339215768239697841992780261560272323641382940735693971437349481277136632058838727826902049882698280374121176916226254815769890 -0579266322319718076679029381516879866920214093645961826097287139995438556892638562807533592029177968784950961959651824138364712 -6905593271581094882293836027956049322801541013654133342099776388830151131142904625837046121178740403372359293970069573073460036 -1334657560229091661514767192486484034874814804158436588838115645203542626667263606421481459341052191296393864355597357106139612 -8983996484498008491962652081920903788269022697096829121085293173454864230335343930546161539206227982332409686050424799265682960 -5979943191308039044837616371196377606973368879788064283861010090419804092295381096855027541458106648574572073809903498794247525 -5748223869403535883463902896159174890497470441638233019825678773597770107171367867175754297335334571074534607008535043181405194 -8795353535341345876592035589428503364517129250540037247550521782811791666374510791517112671288737422099652323046937343991337828 -1845836116381331085732349956975527066319503790930145646064646988078457512408200058689118375881261700543344729871472397774510391 -9908840174753246368222566017712326787176851291551010131314349894185604484963390215007002796394968662213178018411586445058609354 -3648708782366479438386590662421575557958786432758515733410030956830742717789884410593667200352894830011183921069426063462365103 -0863636445701114598272155058937842933641739192649108654968863927721554489981493578009581287965498827240184001075889430327826948 -4493294744917241293353606762738125798775389304371272784848161045309965481110981617696456977856845295663146310544856961560395701 -5828350063875380289041787243953420472517640405923728557572182762701021146981223831971084235740009591348792854248246191617472390 -8142911427486019533916938360973756294199899650632305767565787069658787674361642673323286198646595884519076147156672045347769575 -6919034458315451231488534732525157456948587079445950850088410378838535977516348080551775162637211781455681436512037018188409356 -4896222628077283599302550538329307529265839416312577475209070966536398530653252477467412899117369638571925172776374288534229909 -2854126939661606237890723618332733028245947026454912620083338662672080884075389624244778233027185136679702658181696482687520771 -5486768970237811447646114465006645965128132304833174901323446834886512598955526763233636026886751282286763353050412483339880879 -9146149867375327619762240148102487012789152939324347118132416925423213349620444217738724989375651879154078406666532230695010261 -6432289704281535683765846177747137478857199113830933135896448323481180075359182281747819927805855289891296771338965010648932514 -3498778884149977137993362603088225708342761654666600988476000304267323094698652989046529561743798096047380169014973930605911712 -1555513950736376520645091335370846495268353191373549111643901821633347913274787967705297774512956543219272395543943905097818713 -9824515005207942672277682844175672734608049189360837751069564229080983682875340351162730595292836110710458156809584248318311829 -8644392801319979903321539224060850887494189887888933968978507838319574610389051812420770840579282228222004146980291262806411960 -7170669714045362254284955377287230002812263383500586848752066007279901210618595185664394253569437180949208007446172620486446640 -1197418824383226696240145317846075038217263309407432715400718235690780656588433075117078422196797078588171900080472556706089444 -6058081175983404316870378185108517992309376387807189465675421456144616633676191879370638648087281836756096354696164358804958793 -7175300097350528879964995120589418404250514397730435804307880003642423238815219743208925752113332762492815676234753855313749687 -2216821005143022212418811965038884804162533171952178272981773050431225972337066809470007006624527746167477143326209744916009321 -2874879795494394023670916234680048368860577149936343642623399857065876920729230526286990908222249218870734087284012928821855198 -4892669237695278094261059350844729450055740052868656916863083244548039117228735586420221099748057054754127348342899320517500476 -4913533064284953905878883623486045020791418669162484614426142342087782118817607434327885376004285685360966673400518425200903095 -5236853047264130432207807874987854720636307899392809936830966680235406253508899133299685304059306299982669510153104336419138281 -2635729217127660380760950574877790788724558832203965184259818062945607402185371541729168619518031385767332811305256686570812707 -2508693777459660048221434065348386546516873503781056818039736884680690592725066422073878336659156014383855199604525567079024098 -2527847075125720859307217125972603526269724367871881994978039745425984811500976939283305909268477371136914408464862183620857832 -0690848798245605847434249059051242459537031098176625887386313497201621005955291382938621297556760277294613833001841927601417783 -7028637829951952641999762601338035213911204478792655772152455046625599760300329777350980475951284319951538433620056110253564781 -6305383937871208842219397097772665248616270756493102017303010524320362272253687689906320569651514870191751716750048983549016387 -2503753802832702119325330648883246982515086513140942076923304514033686102637700160768687271319427097046984664384031053585769263 -8859227992404387206024381418823288245956367455432601449940099288001162654396819305512052575309088805570615034227083337938687529 -4650804026596773751781171691707686499798853858855531297662807643678150070418762900082986264876734988853277036828880591174772676 -9388499761915323706082278918760363181675840316081077581226482199990184463308418161663917171550066696858396843063924348798640785 -1339519437101345180144205804260788988338143185013195486237509665528555982435461459049630103016492555659996037806521222234571639 -4775406178328515482958996000719481194780201067828314313954411507309766697327602402398592936844052573242705274081653994583193860 -3528381321380368083594961454997422094241837847317957074543832643804670074418168234251527826193469648447514505161752970468032251 -5644398364843284455563221983222109730803753471463129763873997470655511240512635865533704491564823907699160432034740568090163512 -2019394829622861074339274739867648100223183661088275367604560854273519173101761322314118755022999112270121442893766921444175618 -1024961245677370458394203192048216519899540056189972652416007572725591801341729111029393594712226889998156435621046992279746041 -0271013842729391960551828591764938026380238772791709945105208575380084459912538928688891874547881085895537996185248760341022722 -6443644163751965239785936903668129878996022934136734635016147841655906985263150160687560568016130320940069489352717984945617017 -3980979401244807308375088961101007696165282732048547089807678715095196311609438432458589671418362252711116197050123998645160718 -5029882228039159089170628100687054725011048437854579104323727026278151658455314659996721845525056734089399419451901797673293081 -6285409273407838783004808714400055644398911907669583936293776767386307697838130877184976183405711337976463042849151509723365986 -3789116449777854153143327216807443418065067164460291516731014023725079965308205893342647719238044202553135045734641879985943779 -8298817649314977181973643591691453651364965447794449764965615478663842601481733390271221156996231579991946480360911957202482419 -9923477919534528913583979154285960230181626227828624997322864558028580882337999440750509388244247586570466385544276236851986673 -6266991152224272268084343794242067444247144028060688211987908624847699372423422643841707689624467016900013832905272766427426840 -1355067343839251713050029297274635544953158759007585898844352763675665452680269506694090597773786276467200134181329183129591894 -1203185079814519449730972616794089846681228932967991544425024262788862162483806670387321965112895932667954720701857303315356633 -3010223406691406448732071777784917670640450961064883921707223591238303897553076936064137492313930301276184114003498965768546700 -5055662053584872171686392213754554115803665951484341184481678793730256377197108916198950525496472627926989148952673813222574403 -9135301836957832126464142557708338619444651703425091454666943559384577035607172295502116858050756179608799326777436914985064677 -7849895476822416074994849352092796372963487124157171056152173017480389097568380804863683908585558640345480249639539155208814003 -9261731284405809837137712563712141454654064296465941789875748814378776568326711784539691121352690345339673695586510989770974288 -9504548640513288992288616894826847158596027709105403654435535528958145029279713253496007210603612311147571118952157286120765811 -3172019293671644099810154685400878900781863310226630973663196219151877477083273521217193649999031944551410361083160211498456657 -4584835039206895266033291139088493090671186991332152100943013968139485825629047583367832339953098893263224674847060194281239454 -0086703131238762939716791409510475698044261061184491246815071586146930458568320808697308895974335329174951890370629879266697586 -4531479959438670471013925537723663881523195629756820131576957595320119441034946472734403049979337927590688920672812290238838992 -4555784600301091463114748695085394421438230893318590726172334093673394223159678897396878630225087240466235943323892469006400425 -3181295825258212728965331361945064921751996326740368121061708410146864334211196041567878993280564094949434554682791503673171658 -0842856419453623298809261289857239402872945556557159985688775020115214582384781860334689651493902766220136835999359515682473907 -9925790212755349035787540271290598847673187935010889467948737594198142964082798741209190025028872359505393133888993203341623719 -6881035084279659821037463368291359288972809796102439700962259394869871767171237148065599497261891353342041591198086826562479936 -3071229176011336182119446125694433597177517266017496957596892485297788477134388949109492032269677674633006492819820954408939636 -2158505696670981583492100994722239785061126885782859457540392078035784726890160616966602169759722004423370966068470851220475055 -1608442432121043588281125489656099832629914426535320512741673998725277196703980523715247319219104260826637474643734228192860916 -4370675331345005605018147797477139808981239675873728794694700612511771169428567641131258023552337644203474230406734637422278712 -0072859216860622480346667080043679784914202926542586524758456470894276035984569755855670540260788837234221463158700441389231519 -5908942320852274627106540557811105888610228644494103402263750822407154871367868699882023311506835501899157241704189414346964284 -1936077419723541310264634055462791796583876957815065743467706393867078774982042343936087382789908364464848533080889495741496533 -7254584486083999860932338903788745031776193198150907253247533783144266741445178920158676792459480942978555519260352341102863868 -2324388659990555102109355727630603564463003730580206681960957998377155433799099008210231393030776738444219722412702108302468947 -9926613338642730749665937063588945780266089547872794933113744630542358661411190558266352099886620858549171525338223571617167711 -8986318093141580580876428982707764579287478469073583981696234648037808185140269756651566921560785874161230201920488349770275568 -1902800771331526181562098287158829944843731017880219524960324079005886150803168559590390474829249427791824941894802034999528722 -3088584384403360990907891602519470935005839028378253171884990772710302832296914348751708792698002306050160936562533914379396209 -1408310312115069530150233048818331378284637723150482392301602795737916335332815872089409379843010863320155338585218615794879180 -9677693345069319403701934383954872660888681515065440356051840106884171038792426226463129841417745680354406721408968771559961954 -4557539513449236642758101806291205473048350296831633561735117237579593752211878576489139742035316348287283326781007355249045447 -0883189604094854361797387824593448971971447378881204753543909216846733915206018358578418844775503490330084862478510316277108659 -4392550432502243314906975265564518025479113098902169136391369512817565837562370156090165943691065253900876426946219189578736203 -8435865573452195078786548417341611434423772217538030617156223901185493595765324312422048299670372764076523094427788078350076588 -8758192779916285126332006796232045283091922027709795938540004604312898200544114013208612412744965934919541932903174519980041254 -1905758872835083202758499042134848212716811095613617523820839042848090697442064092232729193928479222578050789364469898951584433 -2042272602260087723772848808702134767220173723358646135775389214656797340171301999623954978758165595263461874252751080813852370 -6274949154731112794816216220066048303875986872572001517499070940234617966182507743418989487331756345308613913050407521686762445 -6252730979488500452149052167583298496816203113490366754560247487872848255355376484138619549701240217905711665471993273764649239 -2281622687072260169420599936083131206454896277499378500769391609676460024680767553958496006032193910593446808391535507538458599 -2191010913898494379461759294973512837440625801801770581499807998348601134363013493664904191350527640096566620000395093356134597 -1660938804470213933500623938584649317535645503810385086838104030744441292813013981381095457570526776722828297499568794267530527 -0049591878181449823254506571309609592366697654558586847111232650386057621118329999460228856081046031697258812551653592183584022 -6258688415014551491572224840400910043380364244249549379338382107530054462860121947719561782286604468083436850199239844591653106 -2286199429292183729722721966817924988059655688863458946473056847154314312282407066615331874808857982581754086039286737461422747 -9602373046472185399409121350660074121130363291629972502459350277036971026440212505022927430609191673069989761094096992091670991 -7527879946650183351260678785085159093046180958175365176059942440628342275638429735328061936632746613485734744234236065653841137 -0853905941635849403951594887838110573652181835969202362039487221504242797299698627659839204874816529447544114385531980406666739 -8062623009337523311886378539061039298966733017052114071143987228104904834551295397466673191503750551657795489921304516776700376 -9007862096833941572335165844081198462047136819292917564132567522715598859947138927117299956642745110763969251319858190814717852 -8138958664951405431541453825461330550794221363483549976099721937150607149588852431715285804748382531904426919820630714135461983 -2082397885435139903190314072146037819079478576247984221600827812796545457214101194496220097049368103574832514769701472385466387 -6896832416290927778053721602166743175733725992261187904101998561355457754417056692268681305083190893002118259512241765998122185 -2636968504609327449982531058224266443456972154252698660084884189652857349507395676672582020179531698016039374573532855093674020 -1136026577034357822803043248989730467073666295507784903395493121839773911132783532427651934810756742564183961335402101819870313 -4917099632663820977131969667158301701831087873930909603855469814730542409624643679930249460380846245995843352815176947927777445 -7319944731827475004706218777611396753968431393783636860295774463198452128755272715443101250558014321901313052738593050746571261 -1707391395815003284391913583753339859531852184651610466904418403752429242924142601415582143805388089376849781779454300111958363 -9869108151029888337540428241180238714963181644033868424652184814249832670934245802862990793758097055499023243559198701686575666 -0187337650771748598070996214382876748717075026419386245187486192182726086987036097255846930650043060886509574171932845313409481 -6310275245723435456702127325230222604362757109683102954203602714184216564293906952316506569915992137104170152492029578927512300 -2305363922251604346990506838961419388192179030700159072409204210540634525740072656419492493606787180195424067534096459265589672 -9014680664163948601215499948895470475969838465633327315676059364457476028555130517706511356929094761498786703750352514595140558 -9277484889618105650227338993928615130344847104186489285414725102606461111639517477747291575877009412511989063198428666104065406 -5967555124952181729420151522869271680843682059283488086279627160865021360567069797183031645357984651583784813809428355166017913 -3607122306789653495447270140672966362274565501229973599229667563911606772081598572491953192767189192005766778789005815828610262 -2082222249317420567583150769393704141643717042001944511315146960110297197944325284159980684280693676403148609684883994123930097 -8731372124960991940185405379357412214932260280623846110357067671501251533776628907031655983387403452673941318358548346602760124 -1976021347697640428375581819297827333264016242688348297392388997119461967525771833238891591593742490277240125530759579876491077 -6072466888350935400785328899402008544459154165636826625026958037650740601926412225205263947146298128779293383020953022202454362 -8044034560774166401511114766914479073842481064943729623980836043134237110449322364783254518711575480004977127696613076710220521 -0564017571074921724777748862479718313010297525498781712387929033234996773668361156592993020275412793744070740135811199115493778 -8419964042103133610587792208097044601548949029168486670192222439144702607241592021192461521821947279760550828661220709620486303 -1088814982734131440185884327578226836944316287501836068430921447613687229952034388566585290882851495307655765844223170274340586 -9005799435401477659962899657617685769970912656575731463413483835844226203192655446200112583102919467583122082891247399200176783 -1851901588702515045318382295536798092875597244431065042731697266394552848998020859370638943554279437980607960337319274852691748 -4157648096188098267490705839256314766006302678665206847589272557754575914579199683296869793220703658904894112352768597742132369 -8723572441033421822131850984144065793127526826673880856427241209325971643349588168485181604003549286943794523645867631822180512 -9961788999122788832400015923298335447164102572685865228181427272076170219015236471640964326542574283167180040163937092128142732 -4937228274511747775697611764578391450794749466871545726021901964860582325608076362650424934625277209649989981489750831225970741 -5984541310271980053712817247539372152339967892775462123252335196274653874061592183413734875908267266920758029830479031847869228 -3871371830143074933411065987051697909188835376373962685096571028998970101211924718499411402849248202339306457377199877126871389 -0586547099952007576979285722825771295071780721616176263387445055392095793671230602073249233658371312728279604207471382798903479 -8923577166944872998618492077791653391106848257807366227129544881151900203904339062941439729248722161475876280041042987870134297 -6237224656556330445619379055992474217471454724969182529987949872722998015945413515067495314489889032179791415649686011073157477 -3003735334796840694489912665109880649358659073702150516968523096869480344821929684468744926264579118587187974938771984262183130 -9005753590334142936036827167253181517255166676962390793299722321456204920350620126047032582007457817410580787154332130609567063 -6768747081081207028623866855036005032042045118427663709885224327750939144410815093506371403873404919815687844934325487062884410 -9939375834444884922802271908890569123942112471025359287053666892829043053920922878243233005965596366467035614279935114942794959 -4228677728256796231027207112191813165638914358249269082781564785198933238543379292199026489661901488181239514397059686005148486 -9858539705692720243176916548886314393535919032096542151105543882501065636878211469917818253828853172821658378951042353768012326 -4422150194025015880156761058170304509425792379790006321176948407538912546088068547813798000277530779888405928477531694464231990 -9405650213736879289008838391184069127301195712710013925801226563743554996233482554161918019454022970208565224871459380574639835 -9130794172100568378934252595907690555743933712658951585006391044055921485334952756122241280828770097902109351842319381201019204 -5387985013440379266230518099534711152536460959269911655397255034626367231069408969413762813968064236154692333107664286960252886 -0837118680763800551465069959598175835527467398611671504215567143391659195926190188250898459493898805547983688580472819756799921 -3903220661160023222988830014776994424185300024466935537043911148899196047568212527843430862631973366330579525805431481011727438 -6908486037368642919233388174527626955887348839535505480142124695672332446751550909649591921180619995217291566458925431968029596 -5922782959375057616516378703156580986104482212435661177276107010237081047649806919032851751263569965116169589560831643100864715 -9530369870366296156375956282332841862206458152569867266578623568655520592049072587837930649946891321926334502571392866551701600 -2244120737959672078726164762991283327806243441107419508409939471693616693409630730506528517088302223393878360169050233927904848 -1173648771365582895309968552846929556758030253414605906336548466169612035971381029462786542081116525705113252983939162686385109 -3234155840835288921699357747660762996672264982174457829675917923339715647526557875639742064383339589189545825487931401530995501 -6887665436803180794927923177816956708553785264323074693008344374916559316617894764427215802134641031792988573701240438184249750 -3839539179042881405914564139952865952209303008409731497507386952470654995467985010268759732897359668659271914262252626200604099 -3901076984640950131960333781644223983532267536121313347358475229440208418673453842347657506344090138736051557656821297434982077 -1623302641135870181311409682200177224901019997404700215147219379739297672524540935209651730504196225871915072497095486880839456 -8525315354478812852093356397223120386907828133392270722811606375757983394361481913342296750609970915686272616757634461450159831 -1758237483830901977324883248068822612744747099358422855339260889327800667524049577373525949059825015390160043063670312221072626 -0817646239152869131112173902854770980862701701464607169211772950069653293230684510278012053087035337608494974396015461535406222 -8646346589715796030816122730522353992998487085588488148264344066530587174128544229529685414458831257128748560990578804587360715 -4892783957104711928531643465336739867007712821809759300577073458900066680389265377353301997705565938884080611069388312576416304 -2814927389151100129042633757615682635990656949553591616128856450443418496471442467646240189440950521511107482659253501599167684 -6135116334119022986012296077975055833220297155080260438551907096128989879928867449175546615606752828933549694825257606317586967 -7016532424149169529714586507287588315821039767281860867212525388739062009398857291177966375322314074508942295009826535646980545 -1130704846522761465358987904002837038112315864342341500267273512280490182439691698104185495677754466174462509539951393350430049 -6239545452060864474289817540605900770875649791603624701849860428246844860967392240963173839859434643202570338001444647069601535 -2892256768296868079082781775690843873409200886346998104928582896183217369070621962623861890767458984640863725872163427837396161 -1015987233236680540127175130575507867333440719260832000405122222181144252353002520085749044160442813319007733231316952017735844 -9207122991749764391450668652103974356514593013095625877412964336676292277200308352297929615022995501002585354045748416214004090 -5010570807508645991981283973843421015013551379801238469792061968346208698033924105198332080219826873915414042770997813678587105 -7079764317445013461353198084076807018884451655619023138435629015461147032511308684817994462582990789356614515379970417351047112 -9725881506883451817378068264565401988152381111185798791532824098438029254469346518084626414715068349480830207550031462251028658 -1504691090829009028694497048664643697386279163491642380984787314683252474807267403308118309227599112336474348292331546087385709 -8374045238326514850352601439525770150385106432876360117179641265901618172845807500617241643296725102357385086749024223414320695 -8751924711372854963768655608131773099674117966941670496696797649406607434691461307943445287152706412809962107879642575743136123 -0303974873561466480968743445273196900705427451656962370162651211903195479518829395352847623644931113876694882674530035776397562 -7062275706646629882491960277069009716984996924439240397590784333436313250958554553224460478301293892351431447612983420608299779 -4021998564670601304459878729468539224393130081394097452696802435298562203672631426231047502881058781296871522825905804208338252 -6603870763394362689777694406864771464497251023441752146535341971346977029094361489321326128197028616266687437237475295317363781 -9156020188117437220553660891624641158468448699614504995148457693527457205903178159270764484168386506020072977552224361333700137 -6800793585132251294965485406539737210356860431874461572263005112556102550605119443415354337340356018964066943951864924412299915 -9176918467253843792621229869758475550809947953676328982327607776920014653501974832672677357939313552991103607402118582223524673 -9686597280549256712036750220654564584483912204263497709158167656617008449221355316543489486938189978195357412962551710086697028 -0388429487175354035020158054103632924527177834523214082900849111108930893956355794346651605160826522047668675831813135358949190 -4345101694469873179969332042811556018423606297108948984557961826035019597070396285751114257989897953296299318364378614357933290 -4949793892609892089229851776026934561460317731511255552266868980253783700717106802153694611663582999276204920297363252094371934 -3674663375108601609896202396621130718019413744942494222052103933540452779973933501106619925311069127219850907767043719608829470 -2702622493254040904859153876396184987380395898007693621320399251663876437827374821903867019473977298529862021085159803043642262 -7628804430192406674682789691745692230306369379190920544277057351743344722619473702262372514469670378356778783948762245486971339 -0209360041654178829792127599208780855624409037374530019447406585398770659754872987726192651460619482209256452092276066423476738 -4709783672042319775995641852494077105915433063897114034300326610462577068371066683331006070063551265931785531029670403665686700 -4587667003896460717120912220270889981167563292172474600789871114756272885374551741764032376074283701965139574996577462686971467 -3848976224442081690472022609003207496720929495444016043645809920259850317579964113261377231461428538754038582648249855596427337 -6172335672098748490848298205075949543310509985651798361629655073050078700179132155025462638010290501496311312192593367695422649 -5726384573393389957861087954363684393648224844030047057212547523809090733733447320925926719918185564312722906061784825834541657 -4665490918503684461998203394016725914244105391374685986007968106627529172068516391306150797382538751326421691707344779240051404 -2641961236056444783029513171308212582932163735856854734301365261361011265730957017358847540597925397759304056715637265630175924 -3143119314616534179607705689766936638499515116711864605104806787742064610741185862931157231900890917045797092416341390041404007 -3447931172643093407899075956016941324761309449689246711224867235309324518097331543836073039264012951510199018054862544697302228 -1563566785164424421738528286186718541346261171578886688118979569809183215506908080307606078120020216388497864724764057557754295 -8570889786931244194585660557574434060147391448332058484468219132867607862446662006468299620134301595151046310252336800694251427 -0217713452224504960721091364387786965013258053103569599886166960333008816549340813042469646283329089138949995982273574974215868 -5241363057936964400802812697301682184281492778601196784957952838829973528993067785327299171845639921011068758599950934223980914 -3238619506166339720940794008445086813283016112070588367871958447351766426343723002443074101469688320695818179265745434758910694 -6296789680362763149161376071869217199662771928863547592423030630832336241218625794010606091635986342053359908043568336874619758 -5796450483018638379674081988788071939094611782491186354599577562913830254367966241420426194905385522339051453836242132016154075 -7739106134294761084702741107955615651072406250165155261201936784282832131480551569227393410480076418655073059966098939360374229 -2971567365547701845803783070635993312664824380381023912535236337973918393748125160984639017693662692774791712740599492208482304 -2270720904622266004044552929046382853488397030569658054130832432158967100326401536494483965188041727224259066348964879067583812 -3443273270836744114169351145812281297836105568675664537098362750380900035541986757124762712416133474277811013584828903165701857 -5742987445704693742780012691654778768416076035850059897986267208927114643299349752186944079949266040605774961616317552910045136 -1240573283641630694358812830029096031820509750547875205950719721469746524236951030334909216603563649107173637973757255912252238 -1182181309135378156725140117731218230316055150298076621940456444204177883491865113883523054776801063888819486505485385264913416 -5069068146388574137237425212952037225400371744975152454660711335647864580574001943714998326035983681508282903233341771279568745 -8467943310622656536228892538026964919357667642832630682651110048817452858559725652837991052187308635773654812551494387013316194 -6440134083862480163392226300450457593962112666903507568451147153007397865298280740371802995538252604177619078977124651051346524 -0537206772933648445348418297957633068071300723364120286017796847418742109018037795201017609886014503958468715621463005263787770 -3432430202920291906940764640954727327787760258258401409130943189103009317398784374181000619017547537895364515789076658241461815 -5914935373373404632064261928025631881068410722283620043865276873695737002786518062855969064577740316535280772509182462064465423 -4663807875203623784262624547123565729447932492414543360035449489544264792983057557527120665531457725601958452570287012086637115 -0847474551270439717567791117916716520890209772268515126243374020404961236068669964591032312120458856151122774707229179093256702 -2728583785414355071386563956562688209782901746373262288816864290881579324219562028197868974414398025024344306680144426091625030 -0910829767068265611067617086376443471268114912189289789288578161296371552096260414590275441364898692653660772972831143055685254 -6907552020126899986435407709381912657932246467804972165765350364308400598137400904853881086873855469475626923756560878726730206 -9692227748520363042215131444256441345425607520902904049752565589636006403442938604002826527897011684910364030121356648587505405 -4764025506989776287250936345001157192241256998927684892678268726606209680040843191546472014984020704327316352200558172668843000 -0564503985848436331698791790813182963520559967441699554268886929254925633860614440306175833628563304317763920599751129071094309 -0175566287557279025857970584297243285600759435104151831150200001725607992873593941524916608511725999483859291253760003734973775 -3039168535120967789573627753936889933310390638519872912077737282540474993630496322839461848810678646381314301370434612679202453 -5290955424609618789728513231303753525180260090737043547498273247450093929519045624882089783253628274100484171694237532423254859 -8186844862044986653314802892230697717326617551815053423012041608272398516591496440428962043914698069230013270892802838135287280 -2942112717174269473287862314996229628874313075502005461595688743732840097634991389852224318945641142059923309434297254976695326 -2444525231843962298275031069381314438305678331941237253189959661616931936428403908777740475422459580996785256969423138340880864 -3680179310627154010609137293613898326769365871171324366981855057912989303388559760676270131578093527806064422528032847530674921 -9355461118722504639190973677696806900807813249020915988601326357024391608006515894656601520223498473406143763133984605551760635 -2692839783034034225135191314183486878688437669767719161941937422862653760924569831725084821460846216076710658987697058689127356 -3364076178555288032798058397361297765867389733546080821420688209714329880465424718281983378741966307965647446727248970877582835 -5097154920011309551648620026419749934729546113147672841385317729841476832905993191729886098778334663461209723905553676387326787 -7544038203057755483948118938898802083672133837458011190981229303171157034238018580240354203030584798053880317332961525265980136 -1511152526450600575245224610801100379737911240153008627074626764499468695975779959724757934622234502314480579416277867481722879 -9208761275469748679977983637248710137550354113725122267268928582906191386758550109656015747293931779066403562806751200098816649 -2774371960428126935364571996703554555526862912399267217503390978028481995519553561409174881144281743002477593997449474113614320 -3283118387697337618913008345214573134792212133551845640272542182183565756097005950085429574121104212579366752791246087630740431 -2251626647794796903046417171601708089033102353726791435541243544024082843362831636356376144988414260766152555993385246920667885 -4120430579803988192186052185336786436260523534744839109920724061087523726726856003315563861271636470368332064799342319979701963 -1178460847308168095740461067148790390275190816124283621727277092177096823111400887004927669450338704196432823728793780107282726 -6147466566392578561700534815888328209861843963585876273190658740165656380640111544922854734365367040797352367883442096872576161 -0655254149992445465845820920429897376775083347655359252308973271695549200271712623988532809944592500421544522541040542744651771 -8895306524774577797925949127567789976094837338117657136712633080384090456221881872243825996086082147423517476054977573177854050 -4943011385246149882784947556915542478920754812582717541224558316858308474902436139789610336015128572291595765038163819815572793 -0059519490142292292642467486355644357871443222407272677363258010549846343690410511589487255437861629574221414317395258487976995 -6701428890977392343133134256358135045673673123158832116303929634062094950503008501398110339118434776130231986975400156621462276 -4809112204042804726404274446015570840535663272343219408139885535879522105193162064034829419212674983141334515042809663864776730 -3339872236842534294842100648778519220364381792736266281427277880995347117460315427394400908444602067720779504370559025897150525 -0666515892628240976196163023835072227181720931267205367481763695114784962335391370607825220441784558120081030826294430035145825 -5990171621923618467399400881105334235398291318764791324436841208478784739274728174080402657482105706012062680090302017358495564 -5800215155555227538662802534678916888507797284554941341847639680300462071370712985768701847640442454877861723356457893345549450 -0044372835991682943791367236860846326267985956993372513320157207230356385776345982286545530591945027191940491720657627496371424 -3896431871159669144163572836324937737933585239956934241358540063356296466656555165061326841756648545874963895216091891197215432 -1150436121846416639357239779525130732656046114770001886098939931426129354428928259723637803567803101198938817466591948073654097 -3680333838160206864509221215320873122528703603282455751545397796927467717336094169326962640299653768153008615924472102530867643 -6770050643269265320774249712789524649226429216132578192388680218997460246361157967129125548877818859824163987287642561738796200 -5254046150685030619784205850259746232647288005274167276588953501245671262327906633892459399349248665683674586756619925085832749 -8138659441098017401153449742392984232024716079021347321627336986000612605589176674195767657558188526805373912850372987580206973 -8191739475819996816485468724355025309335206345790673864079265551398839303546015301031614690697079405116794058344817857751170058 -5907733664187032783992586304169841870946162957846844623230375351751398150941213221188521406317499729525031329275753209552972135 -9176007624492506072188440485436086995355405038611315169617103420795642254487038087275622057368505174049950711687063028236514019 -2054382102455304130470152360854926810408620809647732343016107388521668970316223874173994646760209951211428665814705542349614124 -6010507266966547829863386841978029050310064720150129583679215294838434102788460967870976228374996605588773396271433676057289822 -7051841412308687295953020826737760628903413518500966433370038504670238126933304749517485860557144247313921158680957030845329616 -2360033770199629503223807832521648961131842719239878810835014788911969787608442436353630358920568228223028658040834409931217202 -8400997693934004696590555410764211165674028575041130093079293183383749718414250933932351869983505392135593326730456694681893830 -9601966479081797142729057700273038016579775812303462568369987589932810195102540708796028133906200420900692102185183676170434137 -3162497370959471401670744764602103343725945241209609871641803759642428128312023652491828868062451307296471228615569464816843941 -8764436487815154921343571706294950245330020417561336192910050884197950522678946771691143370350696790098631293864395203215663546 -2103973531056753606278933160819590888661208989653023859755262642075600795082475977389553769715231157147229187302967554388198370 -5511263147464601148510010944839861149087736327442223343582633059022202904665113422199247896714934045390179111585670544907398745 -6503691628140930095878935309503466424485388886339832328600458315631288162890181616057639363435222140281269282576385033650710680 -8454254370393439429040009560609022779619788056284224520991161927353411842168395626223590494290282053470410540843450407987926472 -1336825679355920509182270187363852809609898538144457557442453481966013998014732868105005901821373796606751500831791325616529203 -5075118330341336536977717509239821947081842843667207368538939749602952519028901304254002381236022047524790390418089280097834547 -7087002693940685994858725839374363930880942852293359924965925052590869503751762743229260822706873201650092697209849276502693145 -7306083000612674447155484200177291509744727003567573915026132438684216504412932709214471251820240604475149792423248249870477794 -1828750345492089414352178700274996717656637631789061874232476374372589026121784200003799632748786969419729627555600483655428983 -1419038605582900945308948756881180557106644399148478031842482768934058982366460243721966998715761966320233275607842960609086807 -8995674775072395937621113944922442969450956475559169579744736615353848691595206952225921509080923588771792361528472949801095259 -8071164393093218807836177998870397618178243287174730595843254576188688725044187468313573761652235487642008727514328298453902298 -0249472421551084408818726321837167660068433212182140863918498142778473568559604363644028430498972834010437189971676814372359835 -6326215711122626023900879284642848379045342532983675870120785391214889560676166670449442675798343547201651587376372310330260972 -7721128349367234491190961548434288775058240627555576639847795303346657927088312538298685663289068965153779510427872075661840307 -6404054826004851129562529146035965093659305313594131922007840749997852785915480413483418179403471734301385082608331943522033365 -9733723661694274986939415998932370600151791965983225598026282848806043753357041009447678948117256393500635321688798336983220809 -3023589135170563869561312040343087996767334919517638058142422305672311345678035221436322642357974773060658747505711133889241231 -1715152441111565992971519735514891973779991073609482568950260394204089469526267416519043590653468197703445241031998318436540928 -2571161687670398639649025206286059219618343667065497532146361041751088315806996390315937024865023472982359206847895714744923905 -5104856285757044366877940768642231044057490201353054349716001939164041109356173546969025877651803874584635636362767779008126317 -3656921864783698643075571406752016536758441120671704957195627803118074461526120679475816346733176098378409722349965248254591396 -1131443502066788861338718815939549028179403039813213172777877033453234020243883715396074872970863142546452822669185069959899184 -3828769910844736669658151259692028871696603091005326667495981150974845310134146991259645265882236097619326183020932698293809389 -4299190605742357746915386971343055529972124390299804481008342198376182446383261925929177219506772125075974364335839610948010146 -1147666764087177430198110110312435274731031579695008275499991697667495238558041459480531076474591001063866865437151222907417625 -3118583599222787818632900781019308738830040805599161996484071877144944130661026998282751748208682924005109173737574254051272267 -7248376535827628635806240316333585049198937287552863170331727642858039762809709721675292461634836370227092107000659180675306750 -5306506627623780068062337884640840561088552876565604494700675337745509144650468822636638698294453362040534422173031206225551013 -4252579308534696009946359817557643262143167696605231236359117810698816646524895198187607892477097108960784373761400944824549798 -6045449932335488814802338206074710052382801251742328755176048705595171441928353779134497634248965450262069632636038949744898591 -5048702418591439721957110373280102402968469372594873031440576890966279374555142674908990757259647232567240212811527932452059539 -6445116473158402926922663638150560761537491240522157144544441504700466911488897981059188305240921784775901100861995605851341634 -6426302952753103378949324692632848243080208624864503932730319385221633332864218296337728836033257029589381148577572779689079838 -8323351033213327371073881110283228611521471023685177945561596153462821296338506612181495253533007296541471850977144060198153791 -8612240193336900124220751825865213792796718254928148410457543169565765686381156512821242185857562689521331372459681870446271120 -2190046770619246800670427384048126037985607253433475697587520496744179478706647309818755439429545326720329201172200607765064227 -3736184856673482672738889087427014657874110745468152414492168023597661163943017362999706603380493625843592458433287608755926735 -4182865681401614720438201427164757077032257161772988732629306857669039790289782177374506368443513627759379215518499475202046737 -0697566863573366009839193988358046426820897141853585923998497091914817356341676241151406963597520055377063092845547594101697448 -9770510287164808256026738019695567751276805483623280478598925336381177794945569958800804342768914035606587017994256909693642474 -7259755154611086941695255874435534803016372667978524879504844920733928636400671846029963027849546724083520281554956394251995619 -1834558695670914755649864898844629047200426021450454765139131674876570357846943407935142270035129746721137853801869970041785717 -1163596604514706992103337640896730977362836499853948987124318776421720842943109071494096297915872890046802390417171851693498985 -6696873506860390067654571204036998680608912603658516851469732917336706912396900863519518863153116679969409193499475151912748965 -5772630153097284117632752487886616553301227224710840592032831301443809681968538716385350119500103381352429438906070006049324510 -7255320449590155185339594353774382542901912346562333365165993746566717810379624006716063017965110258762932735063223456498216112 -6248309487192090873881009634314790029246770378814629258114526635202683322798948006269443152846896870196478753064865917440440787 -1079237303256511529274839846470858035223497145513826461412560940325017754834231423361883666751693338383865225187216612119160015 -4861549012935871901840283860561328549067295489644918336638431557892707608901138017599623121810750153111482390969696067122547247 -2439131148441383234199376711842415663942174805857098114579871600691759196917341291603802573327405138562282722593414751206457843 -1973359935209045256671529911507316084304214657632392500349841226204006608244837820483129185333807659672251730206136609040933140 -8184943256874541309753395121370721662620513066937352652876771594490437810449353276322830929392380590748672786848276069239565457 -3348707026381104836690412750227080237859968000391150025633563394577801401905026748085615086352851413067595432050498561008571529 -1877075667972855586652155165911443897166143801340467259805712033287524340520335275436517702758812944056177253493418193171478211 -3774854369590560985587771159245595691913575127970445498501177157738494672527414527162836050852813684096791146417973149365483037 -6704552131555310027219368793280881514598163193897955852905718685913917573430057096937340959824715120372466589909944315684960960 -1012314375846207604646749185426484171598374093369935297204972798525329648052886568477644707532784462941904877487489747098535818 -7985674284714583813663198777955800874049562438949351977791559431711873042288148908962573859023348239888106006645129281470473018 -9254850687404139400561382825175974131012329412859199274634520950110017567085977669352012785318630525841745235957179742713982397 -5097303689162257167085390435448404263178199429357071875772715774544733708487138600770119134943129539543347602041901144161660698 -6953181183113203630678272715731094392489433607360104735402092320971396494926265205286840279679199637087859730680473846380532205 -7565033230336604389926974822292700950491849340699150720775179860790531037997637976970549940150909535407513425455328335706561853 -5335368312471755733760541805372968424193070274491865313428788002453279122401760512494622819480016105587606929438634932015824839 -5559016338160351661853688320039654018084969722536423822579994200012801736919709694310831609907486201946501673508356764142877308 -7309191546539260723637253628477957548575327772499530308454034050815650925443083418507106015799454347735223841084017225944595226 -4885590707691548323545253419048477650698836445425272829459034786263150039138385336170173040262385017882023012446601786508537725 -3159300795992899648874466508404624507417341674483549750138299511054547355595935184376005929821246479521411349307469101710751249 -2708412392547375974662585574062716099744667256888486220537125770970468132844596575936704205294434437646542619212125911160088350 -7671842861670510559275736664436986661209239228900436842961873275642777838933287515196746049787877411927981310119576400549956135 -8080578380146388148902757671260230173280743467984486835312292349158474503715607238743382799824745964056080082925917323860644616 -2120225379169780135148292573265658608927358543522142151484031366388491618786494744941370627406622031907792989518445311039563243 -6616422310981362438162790258221845503573731451992162868203601740290116853659138924079987226446597241351646843845278977024986205 -3662517640661488061073964114703410205367685498808240378692251201166863090113025726146269622096930731719426952075506480919216671 -4823643457908716999726557603223790753609939423361772712423018042932577115436095139459068730410826645568806300379584835433450946 -7837676208477360145796134097352072195957133041368812408314333472555459775670645841696822521516557015970698046160780950308863139 -5015658403765286649459660652152764801017680991103667912937430519322186712931073677796456215078436603241360959178629806771058487 -9139921128024002577938454673706047243620589115000240242563021016654786832806633509254081676514023612790990852595917560180876986 -9308821204883025320496874045455981233709125160954382611635568126874562312377547977111739040746530325193651004237373402504537024 -1600821697316131396065115975797494969376263815891380490449703227459763844691726208596151555303610430036532384862800860173068687 -1677749011530966588655330008218462556189908006964342216676682876215290543872066380630113889263010720992320394875173725292986311 -6989579261987669045792589013853182107944124182584456537044269091571439065320682853599165887592383283334586801282099984394392022 -9970108676029913047954776468886108937529661369633484559390003673582932372797656385704195055160295258401674267521236080828952316 -3273802761420937902459164150004835781371893878839475301617292925707508874975102558388990001315786419341804043737604037226331752 -6423865093791333509337877707981916567162340796885934470115945789596479789320653277617641131277451340371426117129794514423620761 -7417609321834214164793102707841568625675868448913528641242723253295495191476269874558175687931888576975179732585669568870748778 -5922089337143793314961512325922930026645734559888635155138481555659443901618808201784727019382947895019140665125084159195324704 -2832300412363246058905063308416630201890917641050411420603351067801736891124820850891397186056454796477918095532199343583413766 -3842538349880871712437577001398701888177344881522702272474861972439339253087204797211344636084653095826769076765966355059432859 -9877839498202302366738674681533509411775934456542381162185787945980551914209016996885507489310451917077029188324180322160260432 -2738878897545393488539641042595991720479279596803533846602159358145022104838297930283221202267258855473584700375502341592186375 -9062102173051107870783580788794675784912283028909776152369743147402812551267763802726764393893702046520930303504745751378996798 -1890158543698671287785156969862722836025364759849336645190863408137034806850238192071351320453303572785270717307117565718365448 -7734822410504169526033583218346170435610106103279145679136488844339942839493180608845290017442034674025577300763459944350044123 -6105040904995754702216898271414142776115817083443246834852579568391309141621714380298793479424942862844759389997283360409266478 -8207744090633188685115276563756960203356370566871533095111186389044186232441179082078908516925531610020829064403059153715127765 -4543411669625489070844963508370766554494552051662899693726257799474616282059274838670819153036396550543481066774790569529843561 -6679799651036598201198464287278166599830430479287605906552407498711145045497296895091710143423667516678729308766311555682391918 -9060618446032966067396024483927774799271013972963401931215359008050857228820472502367068320857075813753280582206475097498167537 -1091834892775689353192772704190529392359261014072163618697328287354942394830079331974933337512857161868992496906607708010073398 -5364177554337994653512816619520240821994073186844625407311661314696382001907220045017648487411581430791143507856735567122196867 -0716761726451434192525856251744493844256079661428358229774069510316066898590543756088198375973992063361152435222465923662351366 -0043075513893517349925411233398957648025096112448548886678072991181902374596438596256297098774636238148028169588473828501924259 -3228516645884143195864667466124866845099402543607000135666586926382976262509368071827459582454935921975303881150829096536404067 -4761157693052962556888050028734514069905365690844215214316263823173976897101122538440327270223709317772895230031391498145736860 -6385041084622772519780334652630409495229736116311103527030831268982936563366735822928512879378203876837625284271193343076105495 -8825229991999801614347782438381474867852878074358430022437396713162807802543161593009219312576950358519990247724194904234397934 -7703801976947027234960802861233790319790676821468496141323682139060568458559647230530529267618724263639883376817372167884440632 -1726382143017323548108870010820096752312836426102452450577004449101845698867822824844060001600494219691513701486376765683162295 -8567344046439933818792026021934172754782928648841755910876641284145941585066904498876784179002951113808421135227067381608911653 -2236981696764483162752804813037353468784452076739585261632267090804876266610444767882886160729217192498345880705115733282372008 -1313046830998564657547840785183730714291004250275503590948256987454019097344722968276149211207582987088443854985798581722550023 -9063006406664758572850022859344148370428972822517076773683529207252067208935050546823673576957790680951020623419459032466629849 -7938928170423206022080881849589066531884975323736816185913375521669990715327020849225286810140422793741838143465182856377816749 -1265756842388175742586708059491362377918488379984875832030848543287918941984050070389106581268802594158962582407355351035627049 -5900221712437059899622129468224343840497771816212975521659975058333318690798732737341876177817630804815720469182652538833483463 -5823081639915099173836211725045578069819187508359785075471465778986260818861591546963352470179514396250583548650281488440780418 -7451048170517299540822354367273854496577812259623792325601325690996083083112151683648900535783537568629739368276233311118065909 -9084734714613092289461178939653038690130944168935857129538400432419569476969252314501208058863985767404598559353985694589773895 -6277214607560240011967714168838143750302367595949536752213657372427124984199709048837186130780108450270594932950252051594320147 -3499572321088417920853211811454866152496225537457554175697449661675274675801653044218258736968600625898775131530277707042339508 -9914225219653958408220404955503421597988800462882509224240059485399789816322467527449242209991095322026817971575335077154317985 -5278081500892846628897442768350495212681297210154604830667333056587120720522354514329460517681155334733974540010110756237411297 -8210591237075811936724693019310304435150990235368637778807792760313222154371335709089813727563208995319466715986861635780866968 -7932415587435911762210037637958044637519791039364219987373646146500303943912999127265553435145017969397164413915816752545161718 -5633226031400350789184112011648210881013020831437183038308240362781644283374155015679893305443987813011631237184023671550613020 -5811978080228290171238069706605813947244025818423549831774560590994763911374360626408512454006214897383037052649605527910939842 -1578662832737601740265954708879993575835470810729170613732770615041114798158887175252200232752097837948350852301754510131346245 -6068409444406865116594371496646576550470605636603063539678037419994055698404550683594340710909264161990867009969259182486360989 -3207255402572128867597708386762297362519921843080894171603067736003753278183424031926979188196805787920726466251458690002582913 -5008569364534625206093594865389861974491057988729642501378201086357626134901180260883065306275795854872408871966970358994916566 -5260870280380960692056382943423819321600456629197713258529958092905135072192290151897612011642141070383635146934909632500071674 -5103943101344555719687493820066438065019249811470335254469779344109290667032018362593087359223818942995619770011635033602760781 -6090182191502983738438010896590866621707943859659299906860770756177151013807688207972939771298998138528654622092955429850905653 -1626336772125369872523005387925612023085181385255260458074393235131647700974860337649978590067937668268507156384372177447503498 -0983088220975640726485831380650348574527016263360984693517646111104451963030529155545125362875373684368744288268392996464031787 -1886577864886560438915496753180364296870396016073972814584707172757602216484353054194841318491639088652070784986581587056423963 -5791295955798452846006486957884980659241458306340044696019455166134558465794056766142717707049752847050948964499027310212291201 -3920118159051788842792018209898781792646763214510193250573669914454162275192491103856842226701566784572791940951044194717542411 -5568425247114245514540844570366702834465456557122445652286286614869534230920871827766118797945440453053831301603663599611151007 -9132285049335898106348530191639824752961756612096827245060794650887002292087021431444313048295402370831165699527783501924024187 -9094264576555332744996979181892440388769625070877328456545115444598432716233979462060670021904359658071557042696819752714761359 -2624335032983933790947468174067700780434730280286305837296068262033116687738482347338258135450536831314508366201724139587815922 -8450751384747855334597310320588125802084226440657572189418133991724784364158225409421748567123411489197359560319327166452150553 -0217315146965805878176534045386582646736519057669936823885725039838691917663928104666774688631639185290691596050519297245051431 -7940957013433199012061114563562278128253591876081307949974283942244584406336676182042124767131849195077146222822951756668914757 -6589005956437167623060683298552386150740712051896264556502825752701728084586373026820140301271827258402697782005508526864025995 -3287288894211530920495178421618385358928209601522908652144815977173646436635300032777312309529559530424309089857544514218168330 -6097483328468004536631471410495796391660358670051698715076410248502303660016161800128810231929174703618080502422800241933644130 -2956392224013095847029227680428083425620941588942686433369479814315411693725173853101111802188051631515982053459377355277916857 -3065681935968907368748287973480293783213808382487086015879418794067438804225330554229750223350574245985145312570124344685276455 -3489772935059313564818602631010215526615299221297140830316899208960430528821219213991899112889288129943720176337014173173174332 -4169981630658215328566362976636435099613640630157506404256612156966851420692144492745499377619802506248375541742742014068421649 -3723697831339666759125999969874386488250045997138226100381868783065151573396084764792101954730971063666073382268822664370648202 -7695739092394145422409597895972497681500338948172798211529024633083754418602669479252615594701113082363308526566375385313538692 -0362024243582700927996091721261779876357892824920462321831613846936511858949877169168914710103805138231321626700946199996026230 -0910370398336603134902288593437904852970471827636244578441003561376156126397047213862430430449454667576391124197185148345471598 -5028346423876572027639326365391106837855425740087158529449602646500698308039624506892347711322718143846562617911464289132024496 -9181010776426759091535139982513243227866023899159123168014651495554175929065144279128447458894513674919834462361991122972799428 -6472902683846165829490192503189706567753176937559527683694767361120216602239730653948099377610225798683453077405631209096231256 -0512986051426035486790488833906991553793296020140460296126591780195814787329857676072922129878562425136025882880600984983973989 -8577540121631192413042201337007929873227061283325668352988181356692287167551269236062168964313569524237889901244379824573640154 -5738145734013901847027973765976787682776812683421111101939034836663608749968365412229382487929512185391212964474327857768911300 -7562207836356806317921677823535902895646261255973726228824124734902468677105214682457780953879753523764199156291556619449942205 -6685144408630396033374384521831023348395708816803320958823787110609396335187767019703187308157675845831700883961350733812554544 -7576609828782901349340272529157644117188745883108516505970478068227119245704450471362770646680973620118556831550370068906691429 -7387998131808587529731801781598911046784196725282943998624870759033897379214694560999940160160935915403688360574784745832951209 -6248576464881189569842693329569180599977760906738941622134746107827192298531798906163755685774369390363347404463590563452485459 -0534570888244129725519284614466994594106901806409139995601464274045789187815608635654309801136434736637205014712781222746921224 -7852721958335248170761829133326246797700730414740667697834509581576475365734827900004460335634027879413672459976734498386195835 -5088370360545200433735093090688791665393907039059272593032100436084501418577206986549399579720624028466951070544585214365207165 -6435187129368614449937580538296933531792687165143536181239511296901417188887649499928950174527974591005214327286330726199831884 -5864261175041853165789209708620714822361777843032399821785843235985913827357647540975103877312914819841724359018056154229990484 -1936832320986190570216413377747783409617074645446275675504398782817281167330026961325947267465552277788937638823143961712338389 -6643014994016028760819796829700070956205113377466899907953033114796754643995517690305975245695734383895488045495784881027449542 -9277149772110266765516542199009389979979428729803481968242094114554310414335680714665255584623073310801300516821617747378223514 -5122582985363185134103472499467534154970594419472963412571152321765481331992341844237099548533622925469977982035402603376599366 -5702039170472823969912601643296899307773750835106819267275831078282467998094066465029472821615682366477091470622470049719032042 -0671010358945492991105729283517652015315441687350701252921272273957729883415005085140318681745681298665587818639399209287652478 -8504952151973256765543113775190946452315557877268395630007206112950274261280515123602637574614066439170518948486082023049534264 -8318785147359309244073883391968368385030412213804815219561275632927036049996919071912768810313118985299449822580618372563128123 -5447965794084022881336224721150430474622954063445132529997642171980649882452452874371660709010271333178089011623650142945593513 -7498570392070031176556263724838104407401975655807188803601068318852915004571680712468602581133705435004279673319305506280782318 -4235251770160613000830130983063100984485301111420207302571915861863284245935054969687285090784775829404258632032504825073887582 -6407248272722201582954889873840796724288126199508498948167917317499903480984445960848498060154084891463403285778107348687889003 -4953941330396268815099409977237615027521463257528034758197037642240947224961515275989640733601052280398818164960445717239008728 -4426630124553142687273205330644281511721380282097626819427510520776002629092574526215543555846304555626987349130475830717662512 -2679622415503744585776560549326024439456730222065789254179516934309405880579097989297964155354764447981652276792153719461894070 -6549452078295195952851972101892868752466073329081552637836554870868329745518970415001754631788228704301414087107528862687179382 -3095714010946058367115405111675588241660359378724218257897889232511664785827286570897205547229279697287663245465265895194075831 -9805465298621739062011152177896594580714703932025865262409510756369094551491315344002976208292437754134178483455044310999687172 -5635853083465443752399385809613532628000929554168679920157180193163062291041706935484519604033746044464716659982230583915172977 -1397085494342438160066950214161726216316797535747161972858218528442291370670389809452231490128596440810108729216233152926963393 -8718938957831579949398261083744948669476176529513240710990560722588644755296402086806852345746538236347718030640062631744819555 -9204989031916871283227517942830744003831314993547893753197955379403077174291901637842637655437310798500528596483721526174221178 -4510621681082500438705444746385938892179962383128718253236867948364044872547102979732643922151263657382171953178711857903512864 -3434625913079139632847162412927858083774910063803492872036606235419074389757800463882617655159555904544646003283714069095719127 -9422478480758793975004764634088848124200701219293815383644557399151474644429876593122326476162568364525117348282565684006439054 -6415412788931044743766779624337137193856769272687596658353208728053926044570228051289974744446738511898266628888688489033821326 -3857187055764486798882511807937125159502970249818799519647825055901143034107396715341111836431533491237288074873324479254847609 -1944275217447109672414805304798039892872048551668309961639053276921203694927946551682999672834794575568139407200344761188832584 -9228691574818073805866351085919567356330517627511140717776424135867621344167516969731782408297076690641510925488519425339786231 -2831239904815704920016412032913992948413502229392159186483640311971384616648328934218616172408437024641339341534952850417631408 -7800709599423404547224077175920136421077429331304204846667623312748910375272177983791546978316206296185604509872479031731294077 -6784795879386865023891006814459422181459242147354385223330262696056730516247499993593952360113613078289229711721789291466201911 -1558378948527819137236700414103122090944390583763494240148255786716027072401897565958932034145583789267171948650451004479200278 -5903365269957297061267790413012843976619330012086443873201405355132327717135407147467813950090532723390786355726062359803253439 -7629287528827946090011668159293077488731123501345393936384022425933097863996545653037874008416991412735073016080615679561676815 -3237960418959875052085168366152912866396485668534444686608623522780325138572281373258421046475238324527598957994900036953588632 -9883457218912143598750744649289916045155230666253998012127292069605955397882251577278616463161982956480851083203582599294132885 -8739605725967415654345383552272209454198363876790394143551885453633595477692847087747048445889713841117432214889427740276964122 -1808274594398149686259653460592417452536265711085053636183889817336547379067581749366999937190487929782077243956107305394452893 -2858306534503555758138192142342374976569912519114070071304001216131565171144485590883323767986065555672710513575942087665489357 -4757258115582473299797872077008431880804766429204591994348523186470015406253571125582684142251809933836340635261386229168816736 -9918555292750664784762306372865895993392873092492120139178044227677315162874458415577767229742354738329991177067335396671747156 -9915416169565774505455198608946138326580556663002878103141442158950284935423931276623631554768708518659417736110868144091121408 -7485024844800932215930566743200643612646843426043824587026297306446562930746643938917961270550045568670866510426684185886721448 -4920398501344484751530060228048138752162844188260697740262204586350188489261031255952257367650241279996726021255197979400713310 -0983903945365766675649828378701431579004857069167244696371192650313930100887222144395396003002837274898192175630515559492616368 -3277569441388072350944394279081011821982637576381780324461779633187405677617459795408379063310477462661505822241372624056397980 -2796195339856562934096874382820282192099707799004934067504550995736513197478848274092619553245513516215920528915358178045259427 -3947135872153511247151284668940911981933985156149720562664695031030349744372110088157223178406720212021960705751648342245477823 -8276198303392861443910819050105767637970397653898744484200995946877348235373325786715347188697829025445506211703973576651655150 -5882576032689008918318143363475006909501115410116941599853261283394744451901101910507633092078494500214632287815925595536310673 -7269241743888980922214944937348603959760552838607959592411748713582006971089673926445144319837129979120595791416170081356544964 -3311215693514569183444297282757452024106434743342415838798070572517431245405339373780763180400593713529558089381582197573125752 -4556878108283717136754864320383151773421100605854818531410424407658443836201366417280243912680383714161438889747985913112617159 -3825283938152818066103999819485641639048153915591788440799327104545750772861261496085802570014233362502408220258846139854490942 -3543037705426699624325696485612282411023745859388735341967646420985563945181345313960301854453402790876180716518598169356488497 -0055015399759018591540911328290609447855851641187622864276870240973176403939507548117764594583218172186919643238977138111158956 -2302146157347717928300258596580246250649908644352652697865369736710811431250945078622499892640698932203651495464626034751579299 -0465216581077322245370388400939469195489616593652097640401043603078806904801413336072374703228412879808024013691780444525050754 -9151727760868811886689437563229171390965138504950138407176506255752456724326383897323049258585289255126700265024238726662681731 -0098281899254404044904741984338800905867702052389334861534065540083641450439874866038625038945827791603161398328731872690722059 -6264530562489216043969280034408943083142765136686187837798682491792210809601751533837187815038112873969767271421029102693650921 -7670518311894906730059859298650685509520663627502700465860614043829130684092155123515969024766529965326820247830045239762876384 -1971827918374425559499103800305418434180845901819771222995898394549615763182780848478726307902754377493105414864115497763562067 -7293146824231836764324358936471102982745003549454252992884038807314576844595566006507289403671236553892547396334547842381936455 -3707012658412106034610065750021436552038057251146149724375405389299956024255098042568008242870114719254029045709055991603654930 -4543749521242879802728408392725236169206369176046813175364511678612424177154836269263324760122983569594445005273913013269664551 -5817700093174352547416009939112502133121085536020612539401905269863944981266637678387919942591042471679114800424206674615903746 -9928390417067700668674925186060124842260894166668581468768675095262594932684909013159566891337437296287921942274275342136808279 -1720526807320641693668140417766107453595978158154018754776221360462162393984770342801365549647871062173743896063916005240392253 -5161802386530577435326894842370519298812054283209695964545050386222673476579184628919106024296128426895608065795872894836272477 -9269809290510364760281346041981538977140734635535715877861564862122154561230471413453427434440292536928348809500100637413855174 -0657501300841813074935854851050163894991818276164751987873048063138250805404584707419292446697964047248725308217946641983844311 -8063478785147013188508380911686106501438761736788881545360437305874844044022285005421389985126661063912349587081288388003345466 -5080385912620164034274035663131591931589292314684519240800453976434478145811035864455399019210261903984106215732682395895799522 -0939020059406813121907073513079575778716665344964094359764782266431575550874973231091097656538411338304404129653958312868999842 -6732798933518323978985303323091966916070134400750942228988862433672654847071015762525448860254590537863809085645618465872667306 -0427846766351683194895724811056690695837239230026578986973494357639196637007765612283664140977141629336513743191474504552821790 -3228155682944358310924291228796943417467684350283874136741330013804595358442242749651649995689037646356343539795964269040555905 -6826145487746532059740843858150338835296508366342272235981293613561407683050389559856243442342524690245207486156018191382164551 -1327436225221742602074234993619036983345996345216008664910823535986496447271949044534929738194453356131648251656209560053354614 -0407290886807276555505472513777566509192309345071661761386510676177956004136233159240180697853305064135526857625954524710679122 -1431829687708285619275876929673787963838663779016128696006658789855078135858492072768308764926825429711165034052613724177837083 -7028553048202580189681827868563421125284289066186493489485470631057243002992982744971998313406439308961352814738730662842546474 -1661580089658576037549874036611720164076275368701553799369961428692585978010787204558502174932891500734632543309652429899761996 -9575856899639421670892327891209797029282817824375074240277705275435359082312316792956844954585652271368228646822716619012170165 -4690146795978834583378953218274128128954879679834962721495470431115747652300230454490265247933455376976025418712883919785265770 -4032584676449148273007032590154174755542691092611500872882432669889260868344191769763590664159630537010368972815582431630162563 -5692592732110530293190433213941741940871216528267789341138499704212959459631375151781937020467215223500973204249438057106028338 -1541214818072382006149334712979978351719934230083959861254175062060206728245934867359880240685020444293227864055618527079589472 -1439159705776204064690488345048299759772753492079024651663143703086754589449249599931908249754660757813918172727140178033198709 -7752381183500066741893133463291861429042158260704598873907314527361438231014952758222297919601552459311683576335125432073345960 -4158788096315630807867178963280856579732177587633674289101034755608242832707107748491269005626588055241208204418618388578035469 -1184416032139115028602210049000593619116279959516862765906011705138739437332038056873961010636018153261556031158803924660448426 -9834587809319862013631879808865489908412831755556199315250744409755028410760389172898604230817719091796600511778684843691064279 -7878372956127669698977302339079670592653146391325443980293253311254734925614678750486528888944734310378404782150993544089766813 -4482271911480681906845899905802627519765113355182171607609262740960268207890619067150293516596923655844247586174848972864721468 -9552003526630991149245651109495761934587784128507108647124483752936558263106644305431230364441437558819641682185001628863763328 -9406159315820904843204929487522677107941937076263988953382649335050929875295580457118791755887589396355358703932935557257606830 -2969493527901243167542109903168828628101917337300403325039813279857934939104326409957807201457446262732489661524241158979368142 -1833967145487476098973136162241392322964264292952490319901422154921305200229075272133864200487657774340560812039475075659326308 -1445298822625141627089594319278576573094647719202883678449230305616300998398218250958603519589651710614887336894157702428315107 -8911019753589361230572967964751571906635823516517521975275494263948066958905939807605210390275340148405377313480598158489558111 -3183749609096747980513864052412964607501407465024842349303716927046134047076464086834827581454812880653390898896534483223922702 -2047220404370553586495348686661844320582343653984119122227275984849504305399708851775077220602618170548438073982557547603633042 -5484875538490583169391720574953649919139069950121342298729189319935008363006908499817188567294646844902804708973781249800855552 -7421001424990409022663446235185073936721530809635245828159482916215742480785440259606637437758227633658889520747280770098045723 -6510075506635860479703887783619213078585799368504850589990946726994909109916359460180863720392604659818835051505356439580781411 -0959165291367850253561235537386721365762207442766902579631829064237987397582522884081947056330594794737026301952693630585102680 -6267281924773054128920399667616892395906931391070201721710734680164804934661829697133693962106573047827000567454860592220102084 -6351225785373403775734572811446819619019190839393144125015360556285521375890386016901082233720031340998488590003458019399286006 -8086983669350678861956334882898616321436714400384547300867927315159417274826609618496301870293049853960758679069277021904136960 -9865037759852510085988938641077600576537641357106366728530348981390205491195956901092388717027996104357442748303975082427786786 -7507248774842522159480897459767378325396763974897420116495369220388118224704985677597657612836164641593242643705906198310715923 -6020323897854469493762019753971728667497338537420217765895884555350482562903234559598367966289598307357713584270039680501758042 -2970682482901424731104641663111768757582340710358846705532647449734646971482108058532929343635001949578504462729212526976463810 -8406644630764947233594179128313043631264609165757699872474368034583055609364865453910940072958562666156078109884350362008700655 -9106501316131398908994689175684333822574784889714347654697727209736986308940910431037486363365667132654371414795819563310659169 -0137910472839714679161637852622472509459014895991142745425159229935069751019575455036034662579025492228994125955644298201357138 -2263663590472781654218931217059804728469684174302359039764853349702219977113201315914188584584955078222068657185984247622363558 -5695450824338155861977114741562006985207639935376048162114526556989656274727076392276059583216303897816482298413238883403403632 -0038975862485843345228895776545691226502347548540923009663654944132545600827380276828701039586345737400863528654887451057233197 -1285772332269416234665537910079978608222632602148452508934499816027147308767944385913555512454637610386856292966968437445496548 -1261330191618765210009782014085845073559775965093415001665110717532374517158996315004359428915981278340620344383170562473911188 -0755483943667647640579099438554263999127548734337936583257964438443463208543269429173892355146856191237124938489437234962714824 -9129303544439064208938552091032859116474732583566245269345387009587018850752964356086348467165770868170114265169858965115946288 -7279622065007376862875602615836848329672073134886504804366938182665036461895999032293214820132094992897811456738921945565996030 -4834236494451378286976564913106384851412866607459667235230175488097172277734513000370973157558689076209485032473704000163914074 -2906852713508769108670361019771730001144071549164484831831379004788411810506441972725735257048988599402331202363984166872400551 -4374843284474261559922201408952633150671870157517305411040726961843624607898601648184347808307024923212656070285299487288795732 -8117441033938778257340076295628604371272466046790715921004843853378457388333862596453687093388500288301007959254642621709441228 -8336419205482595246714478040728678515920231077940527413442313540990859460129785367310524821300597125039005330560255760446207185 -3407569957745240672748410048085824476146107644741791845367520753456514888607145322239479922742610070735465164422006326154369011 -8894279996606564122245246476739025836636961740221798143384506169709797876615015522415620193119156094455114077417058486277270353 -7131151035004395224877087554662361771017971918239145723682405673667071436258453271309611849685373102636336093172827546720740657 -8432145665345782054212385521456100690288045272048653500410117161030682916822394178179943934653293870095835416016828701651397729 -9807379993673315841883406823522043062628694861759093682354411179777001696451399181533177926653740164108712792568617753057780749 -7552198060883514609633356358462724322863739238474217533806217264897669042731651388657558396154686026363774639912794923252267503 -6291771443785740732590982981719905524567339994411151615939323485160260431350712239547320702908777027534814334898810771281406391 -8383725943909858701756050979518960102350055348726092344362770497395426060226252186716626586574811491995835598427931237638307288 -8507265667315900242180544608612147833573934012185340789193936346356941286917069481442515796977733286907179390046007293777378415 -8688298391307343027481331662068268845813946664921272848764804887244314914603468930763919183778517730411504413547554154855526591 -5310568546507610904043747230819248926074837842921381365456929822505503792963441504203788828448597610860322974517666735027993699 -8190512204618058514563016675739391233696406975567198996502543146118326981238682542313301537034074950744994938638623004424018628 -5962797353210542352910227068452267455627736914233254078275501019026029219977380762852165264848013890176220808626487330453830607 -1392715231741123546207682784414187261145744424815836598165304144212321073536110482416294352751979189695534837507189501132643925 -9547196873348778230662094351866444409683500705986806451682346762409749401895555972393170493498341109191510645940668680160665767 -9096955810744288162025152776265225979561511052982298941267330985571152782374720461772752985049704669084322641186449467889515212 -4360617959299125510229120098324080014685874269740158186892010379118371918256414709312045505595343772662619039003425826619680875 -8242651081630156918805572079983037638369031262141838260427869758050055377235638965872717517504788429694521145838583513263909672 -4433259455372438105974775408627724880736064277338137893108385178827104479149305047828800826485922049778207824411348676510055718 -8718825984885049258859271868511156347573558547616835487996237695354831720772501296121171500663173314753159506044722718279173640 -2709996430110563394535123371054969016136174141380219513450493806426805948941155396288218826477132071568170532718023856256400877 -4412955918580719390710872526700485018418160226844433869987075876676044792011973789419662798626013873183203506118837233134120481 -8772819562426148199715932002776622117594716096791960417797687467419822085071157480539482033047913473604918965910085487367720357 -4625085282706988812822930138218466374524023159847349699030998731244290316248877616127354994943514784160430249591960166158827428 -3012297335233487487686932791672504848939891571342804916267615897166810277253170819233520663757428230248104405100538854660927429 -9123919446207336590235297840044149569787830675448852079217813254125078565940555357151112153929694801251132171203795549941163920 -7476175369012980559938118310990110840174599144325883878065361105628152837782089093135806082805172562067617245231771061838879589 -4768469919871257284902195592516344833223851928691778696654759047583702848545509080899254152913598427216007302226235522358460750 -5223927757227044947866784478462919350895723643402842384138354740120256079056226884847266693352002580953694527348195695223607106 -4705073558122375415417200921965563405533347843275197814453910296613637292816403322858277400213988846375567124674868467361795016 -4745728385156852832029629080429064757351207656991841817680115495315482039644479548944488439788311653187692817074819840714497361 -5386314847182104599263810424039609228765878994123179215715094367283327303020988006589792974721368333841513658700314945433634456 -3685020221252259142980926069027074077129168059113331677771782227727933843623094566219277157186574916058687802285827552124321505 -0794558617931775588320039074320252238014802597836590634824227249703483529574186006183975509386000848443692647358501225142361167 -3942679708028160995866607265771564423203677879968679929985370044267348240320617033379072586756373490054605230219409903866795469 -7536599276764983130315949383875187945686502994166320326189211280377933687730984141460802381512939077916932152569652666724046409 -0292377825630966235158683241512971091944539929600065707699283877623772501033680549048220288927590692487589517712276010516389098 -4141777627623117777410741182897322646935774432337593489702909715834793849902052358894916963594941828827118210427424755222982593 -0263099400776234259640984881940007947968250580544744304077736076557953616095573458814306253535718606350692981623255928091096507 -0588327094996262431505059042095661828596107333578122924612340170790916991622052806671333685104366780235136494027277232872825498 -1523246308282008538061408160202517775966824053244715248653671495274650673682535042749033828795099010214859776685551489176975506 -5811209762314534687747281829159103097186141033482266881873367741901377849867980657673782571505747169485443159028925476795003998 -963436785863456565690613348237130676523955561372248056220702510606833697646989872355666869136182759934340379879840576201228LAST diff --git a/libs/cpp-httplib/test/www/dir/index.html b/libs/cpp-httplib/test/www/dir/index.html deleted file mode 100644 index be3c05f..0000000 --- a/libs/cpp-httplib/test/www/dir/index.html +++ /dev/null @@ -1,8 +0,0 @@ - - - - - Test - hi - - diff --git a/libs/cpp-httplib/test/www/dir/meson.build b/libs/cpp-httplib/test/www/dir/meson.build deleted file mode 100644 index e88ec79..0000000 --- a/libs/cpp-httplib/test/www/dir/meson.build +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-FileCopyrightText: 2021 Andrea Pappacoda -# -# SPDX-License-Identifier: MIT - -configure_file(input: 'index.html', output: 'index.html', copy: true) -configure_file(input: 'test.abcde', output: 'test.abcde', copy: true) -configure_file(input: 'test.html', output: 'test.html', copy: true) -configure_file(input: '1MB.txt', output: '1MB.txt', copy: true) diff --git a/libs/cpp-httplib/test/www/dir/test.abcde b/libs/cpp-httplib/test/www/dir/test.abcde deleted file mode 100644 index 6a81654..0000000 --- a/libs/cpp-httplib/test/www/dir/test.abcde +++ /dev/null @@ -1 +0,0 @@ -abcde \ No newline at end of file diff --git a/libs/cpp-httplib/test/www/dir/test.html b/libs/cpp-httplib/test/www/dir/test.html deleted file mode 100644 index 6d70cd0..0000000 --- a/libs/cpp-httplib/test/www/dir/test.html +++ /dev/null @@ -1 +0,0 @@ -test.html \ No newline at end of file diff --git a/libs/cpp-httplib/test/www/empty_file b/libs/cpp-httplib/test/www/empty_file deleted file mode 100644 index e69de29..0000000 diff --git a/libs/cpp-httplib/test/www/file b/libs/cpp-httplib/test/www/file deleted file mode 100644 index f73f309..0000000 --- a/libs/cpp-httplib/test/www/file +++ /dev/null @@ -1 +0,0 @@ -file diff --git a/libs/cpp-httplib/test/www/meson.build b/libs/cpp-httplib/test/www/meson.build deleted file mode 100644 index be2b047..0000000 --- a/libs/cpp-httplib/test/www/meson.build +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-FileCopyrightText: 2024 Andrea Pappacoda -# -# SPDX-License-Identifier: MIT - -configure_file(input: 'empty_file', output: 'empty_file', copy: true) -configure_file(input: 'file', output: 'file', copy: true) -subdir('dir') -subdir('日本語Dir') diff --git "a/libs/cpp-httplib/test/www/\346\227\245\346\234\254\350\252\236Dir/meson.build" "b/libs/cpp-httplib/test/www/\346\227\245\346\234\254\350\252\236Dir/meson.build" deleted file mode 100644 index 4cd4150..0000000 --- "a/libs/cpp-httplib/test/www/\346\227\245\346\234\254\350\252\236Dir/meson.build" +++ /dev/null @@ -1,4 +0,0 @@ -# SPDX-FileCopyrightText: 2025 Andrea Pappacoda -# SPDX-License-Identifier: MIT - -configure_file(input: '日本語File.txt', output: '日本語File.txt', copy: true) diff --git "a/libs/cpp-httplib/test/www/\346\227\245\346\234\254\350\252\236Dir/\346\227\245\346\234\254\350\252\236File.txt" "b/libs/cpp-httplib/test/www/\346\227\245\346\234\254\350\252\236Dir/\346\227\245\346\234\254\350\252\236File.txt" deleted file mode 100644 index 3cc1ce7..0000000 --- "a/libs/cpp-httplib/test/www/\346\227\245\346\234\254\350\252\236Dir/\346\227\245\346\234\254\350\252\236File.txt" +++ /dev/null @@ -1 +0,0 @@ -日本語コンテンツ \ No newline at end of file diff --git a/libs/cpp-httplib/test/www2/dir/index.html b/libs/cpp-httplib/test/www2/dir/index.html deleted file mode 100644 index be3c05f..0000000 --- a/libs/cpp-httplib/test/www2/dir/index.html +++ /dev/null @@ -1,8 +0,0 @@ - - - - - Test - hi - - diff --git a/libs/cpp-httplib/test/www2/dir/meson.build b/libs/cpp-httplib/test/www2/dir/meson.build deleted file mode 100644 index 74fe783..0000000 --- a/libs/cpp-httplib/test/www2/dir/meson.build +++ /dev/null @@ -1,6 +0,0 @@ -# SPDX-FileCopyrightText: 2021 Andrea Pappacoda -# -# SPDX-License-Identifier: MIT - -configure_file(input: 'index.html', output: 'index.html', copy: true) -configure_file(input: 'test.html', output: 'test.html', copy: true) diff --git a/libs/cpp-httplib/test/www2/dir/test.html b/libs/cpp-httplib/test/www2/dir/test.html deleted file mode 100644 index 6d70cd0..0000000 --- a/libs/cpp-httplib/test/www2/dir/test.html +++ /dev/null @@ -1 +0,0 @@ -test.html \ No newline at end of file diff --git a/libs/cpp-httplib/test/www3/dir/index.html b/libs/cpp-httplib/test/www3/dir/index.html deleted file mode 100644 index be3c05f..0000000 --- a/libs/cpp-httplib/test/www3/dir/index.html +++ /dev/null @@ -1,8 +0,0 @@ - - - - - Test - hi - - diff --git a/libs/cpp-httplib/test/www3/dir/meson.build b/libs/cpp-httplib/test/www3/dir/meson.build deleted file mode 100644 index 74fe783..0000000 --- a/libs/cpp-httplib/test/www3/dir/meson.build +++ /dev/null @@ -1,6 +0,0 @@ -# SPDX-FileCopyrightText: 2021 Andrea Pappacoda -# -# SPDX-License-Identifier: MIT - -configure_file(input: 'index.html', output: 'index.html', copy: true) -configure_file(input: 'test.html', output: 'test.html', copy: true) diff --git a/libs/cpp-httplib/test/www3/dir/test.html b/libs/cpp-httplib/test/www3/dir/test.html deleted file mode 100644 index 6d70cd0..0000000 --- a/libs/cpp-httplib/test/www3/dir/test.html +++ /dev/null @@ -1 +0,0 @@ -test.html \ No newline at end of file diff --git a/libs/greatest/.gitignore b/libs/greatest/.gitignore deleted file mode 100644 index 159eeef..0000000 --- a/libs/greatest/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -example -example_no_suite -example_no_runner -example_random -example_shuffle -example_trunc -example_cpp -*.o diff --git a/libs/greatest/CHANGELOG.md b/libs/greatest/CHANGELOG.md deleted file mode 100644 index 47f37ec..0000000 --- a/libs/greatest/CHANGELOG.md +++ /dev/null @@ -1,544 +0,0 @@ -# greatest Changes By Release - -## v1.5.0 - 2021-02-15 - -### API Changes - -Changed default: `GREATEST_USE_LONGJMP` now defaults to 0. This eliminates -a warning about variables that can possibly become stale/corrupt in the -presence of `longjmp`. Since `GREATEST_FAIL_WITH_LONGJMP` isn't frequently -used, it should probably be opt-in. - -Added `greatest_set_exact_name_match()` / `-e` flag, which changes the -name-based filtering from substring to exact match. Note that filtering -on an exact suite name will not skip tests run outside of any suite. - -Added `GREATEST_ASSERT_NEQ` and `GREATEST_ASSERT_NEQm`. (Thanks @tekknolagi.) - -Added `GREATEST_ASSERT_GT`, `GREATEST_ASSERT_GTE`, `GREATEST_ASSERT_LT`, -and `GREATEST_ASSERT_LTE`, along with their custom message (`m`) -variants. - - -### Bug Fixes - -Makefile: Fix targets so all files are rebuilt when `greatest.h` or the -`Makefile` are modified, but without potentially breaking the build due -to including `greatest.h` as a linker argument to `example_trunc` (which -could happen with clang). (Thanks @vemakereporter, @theosotr.) - -Calls to `GREATEST_RUN_TEST` from inside another test are now ignored. - -Other flags starting with `--` besides `--help` (print help) and `--` -(ignore rest of ARGV) now produce an "Unknown argument" message; -previously they were unintentionally handled like `--`. - - -### Other Improvements - -Added built `example_cpp` executable to `.gitignore`. - -Expanded on the role of `RUN_TEST`, `RUN_TEST1`, `RUN_TESTp`, -`PASS`, `SKIP`, and `FAIL` in the README. - -Addressed a `-Wimplicit-fallthrough` warning when building with clang -using `-Weverything`. - - -## v1.4.2 - 2019-03-24 - -### API Changes - -None. - - -### Other Improvements - -Fixed configuration parameters for the PRNG (used for shuffling). -Previously, certain rare combinations of test counts and input states -could prevent the linear congruential RNG from having its full period -before repeating values, which could cause tests to be run multiple -times or skipped during shuffling. - -Fixed an assertion in the example code where the expected annd actual -parameters were swapped. (Reported by @shaohuasong.) - -Updated a comment to reflect that `GREATEST_ASSERT_STR_EQm` compares -using `strncmp`, not `strcmp`. (Reported by @orangewait.) - -Minor formatting improvements in the README. - - -## v1.4.1 - 2018-12-30 - -### API Changes - -None. - - -### Other Improvements - -Fixed a warning when compiled with `-Wconversion`. (Thanks @HawkSK.) - -Replaced a remaining direct use of `fprintf` with `GREATEST_FPRINTF`. -(Thanks @ligurio.) - -Fixed typo in example code. (Thanks @ligurio.) - -Bugfix: Previously, a test failure in first-fail mode didn't prevent -later suites from running. - -Added a comment noting that the duplicated declaration inside the -`GREATEST_SUITE` macro is intentional. - -Renamed `exp` local variable to `expd`, to prevent a possible -warning about shadowing `exp(3)`. - -Updated the command line argument documentation in the README and -the usage message. - -Added a description of output behaviors for each test case -result type, and clarified that the custom message variants -(e.g. `SKIPm("TODO")`) can be used to set custom messages, but -do not affect whether or not the message is printed. - - -## v1.4.0 - 2018-03-05 - -### API Changes - -Added `greatest_abort_on_fail`, which sets a flag to call `abort()` on -the first test failure (`-a` in the CLI test runner). If tests are -running inside a debugger, this will break right on the failure. -Feature suggestion and initial implementation by @fsaintjacques. - -Added `greatest_list_only()`, which sets the same flag as the `-l` -option in the CLI test runner. - -Added `greatest_set_test_suffix(const char *suffix)`, which can -be used to add a suffix to the name printed for the next test. -This can be used to distinguish between tests when running -parametric tests (particularly when shuffled). Note that this -suffix is included in the matching for `-t` and `-x`. - -The `greatest_info` struct now allocates a `char` buffer for the test -name and optional '_' separator & suffix. The buffer size can be -configured by `#define`ing `GREATEST_TESTNAME_BUF_SIZE`. (See -`example_trunc.c`.) If the test name plus optional suffix does not fit -in the buffer, it will be truncated and `\0` terminated. - -Made a couple functions `static` that were previously exposed, but -explictly listed as being internal (`greatest_do_pass`, -`greatest_do_fail`, `greatest_do_skip`, `greatest_suite_pre`, -`greatest_suite_post`, `greatest_usage`). - - -### Other Improvements - -Fixed link to ISC license in README.md. (Thanks @vaibhavsagar.) - -Fixed issue link and whitespace in README.md and CONTRIBUTING.md. -(Thanks @bebehei.) - -Change a couple macros into functions: `GREATEST_INIT` and -`GREATEST_PRINT_REPORT`. Most of the macros have variable capture, -return from their call site, etc., but these two don't need to be -macros. - - -## v1.3.1 - 2017-09-22 - -### API Changes - -None. - - -### Other Improvements - -Bugfix: `GREATEST_SHUFFLE_TESTS` and `GREATEST_SHUFFLE_SUITES` -did not check for the `stop_at_first_fail` flag, and could get -stuck in an infinite loop. Now their loops stop as expected. - -Renamed `example_random.c` to `example_shuffle.c`, since its -focus is really on random shuffling of suites and tests. - - -## v1.3.0 - 2017-08-13 - -### API Changes - -Added `GREATEST_SHUFFLE_SUITES(SEED, BODY)` macro (and `SHUFFLE_SUITES` -abbreviation). This runs any suites within BODY in pseudorandom order, -seeded by SEED. - -Added `GREATEST_SHUFFLE_TESTS(SEED, BODY)` macro (and `SHUFFLE_TESTS` -abbreviation). This runs any tests within BODY in pseudorandom order, -seeded by SEED. - -If `GREATEST_NO_EXTERN_CPLUSPLUS` is `#define`d, then the C++ -`extern "C" { ... }` namespacing around greatest is disabled. - -All calls to `fprintf` have been wrapped in a macro, `GREATEST_FPRINTF`, -which can be `#define`d to substitute another function with the same -interface. Feature suggestion and initial implementation by -@AndreasMartin72. - -Added `greatest_stop_at_first_fail()`, to set the flag to stop the test -runner at the first failure (`-f` in the CLI test runner). - -Added `void greatest_test_exclude(const char *filter)`, which takes a -filter string and ignores all tests whose names contain the filter -string. This takes precedence over `greatest_test_filter` matches. - -Added a CLI test runner option, `-x`, which calls -`greatest_test_exclude` with its argument. - - -### Other Improvements - -Bugfix: `GREATEST_SAVE_CONTEXT()` was only used in `GREATEST_RUN_TEST`, -not `GREATEST_RUN_TEST1` or `GREATEST_RUN_TESTp`, which could cause -corruption when tests using them called `ASSERT_OR_LONGJMPm` or -`FAIL_WITH_LONGJMPm`. Reported and fixed by @tcarmelveilleux. - -Add `contrib/entapment` script, which converts a greatest test runner's -verbose-style output to TAP version 13 format. - -Add `contrib/testify` script, which converts calls to `RUN_TEST(test);` -to test functions with `SKIPm("TODO");`. - -Disabled `-Weverything` in Makefile: it isn't portable. - -Various improvements to the documentation. - -If list (`-l`) and test name filtering are both used, only tests that -would have run are printed. This can be used to test filter strings. - - -## v1.2.2 - 2017-04-26 - -### API Changes - -None. - - -### Other Improvements - -Explicitly mention ISC License in README. - -Always `fflush(GREATEST_STDOUT)` after tests, rather than checking -whether `GREATEST_STDOUT` expands to `stdout` (the default) first. This -avoids a tautological comparison warning. Reported by @jibsen and -@nemequ. - -Address warnings that can appear under `-Weverything`: padding in -`struct greatest_run_info`, a pointer cast that unintentionally removed -`const`, and a non-literal `printf` format string (caused by a literal -format string constructed and saved to a variable in a macro). Reported -by @kozross. - - -## v1.2.1 - 2016-06-25 - -### API Changes - -None. - - -### Other Improvements - -Accept "--help" as an alternate form of "-h" in command line test -runners. (Thanks @jibsen). - -Avoid redundant evaluation of arguments in `ASSERT_ENUM_EQ`. - -Clarify type of `ENUM_STR` argument in `ASSERT_ENUM_EQ`. Use a function -pointer typedef so the compiler can give better type errors. - -Warn about redundant evaluation of arguments in `ASSERT_EQ_FMT`. - -Prefix the variables used in the expansion of the `ASSERT_EQ_FMT`, -`ASSERT_ENUM_EQ`, and `ASSERT_IN_RANGE` macros, to avoid name clashes -that can cause confusing compiler errors. - - -## v1.2.0 - 2016-06-06 - -### API Changes - -Added `GREATEST_IGNORE_TEST`, which skips a test without warning about -the function being unused. - -Added `GREATEST_ASSERT_STRN_EQ`, which does a string comparison with an -explicit length (using `strncmp`, rather than `strcmp`). - -Added `GREATEST_ASSERT_MEM_EQ`, which does a memory comparison with an -explicit length (using `memcmp`). If the memory differs, it will print a -hexdump which highlights the lines and individual bytes which differ. -(The `greenest` script was also updated to colorize the hexdump's -difference markers.) - -Added `GREATEST_ASSERT_ENUM_EQ`, which compares two values and uses an -enum-specific function to convert them to strings before printing -failures. - -The `greenest` script has been moved into `contrib/`. - - -### Other Improvements - -Fixed a bug that kept the `-f` (stop after first failure) flag from -stopping the test runner immediately when a failure occured just -before running a new suite. - -Added `extern "C" { ... }` guards for improved C++ compatibility. - -Fixed a warning when compiling as C++. - -Several updates to the README. - -A file with contribution guidelines (`CONTRIBUTING.md`) was added. - - -## v1.1.1 - 2016-02-14 - -### API Changes - -Align "Expected:"/"Got:" messages, so it's easier to compare values. - - -### Other Improvements - -Fixed a bug that could lead to test suites running previous suites' -setup/teardown callbacks. This was a bug in the optional suite support, -so only v1.1.0 is affected. - -Updated the README to note that the `greenest` awk script expects -a Unix-like environment (i.e., it doesn't work on Windows). - - -## v1.1.0 - 2015-11-29 - -### API Changes - -Made suites optional, so that `RUN_TEST` works outside of any suites. -This reduces boilerplate in cases where there would only be one "main" -suite anyway. - -Added `greatest_get_report()`, to populate a struct with the pass, fail, -skip, and assertion counts, for cases where getting the counts directly -is preferable to printing them with `GREATEST_PRINT_REPORT()` or -`GREATEST_MAIN_END()` (i.e., without a CLI test runner). - -Added `greatest_set_test_filter(substring)` and -`greatest_set_suite_filter(substring)`, so only tests or suites matching a -filter substring can be run without using the CLI test runner. - -Added `greatest_set_flag()`, so the FIRST_FAIL flag can be set without -using the CLI test runner. - -Added `SUITE_EXTERN` macro, for declaring suites in other compilation units. -They could previously be declared using the `SUITE` macro, but this made a -redundant declaration that could cause warnings. - -Added multiple levels of verbosity. Can be checked and set with -`greatest_get_verbosity()`, and `greatest_set_verbosity()` respectively. -(`GREATEST_IS_VERBOSE()` remains in the API.) - -Stop parsing CLI options if `--` is reached, so user code can include -its own afterward. - - -### Other Improvements - -Added the "Key Features" section to the README, and updated the -tagline to reflect that greatest isn't specific to unit testing. - -Added this changelog. - -Added LICENSE file (ISC License), to match common project layouts. -greatest already had its license in the `greatest.h` header, but this -makes it easier to find at a glance. - -Added a URL for finding the newest version of greatest to the header. - -Updated the default report message: print "1 test", not "1 tests"; -print "X passed, Y failed," instead of "X pass, Y fail,", etc. - -Updated the CLI test runner's help message to reflect that the -`-s` and `-t` switches match by substring, not the full name. - -Fixed C89 error due to incrementing assertion count before -declaring variables (mixing declarations and code). - -Fixed warnings. - - -### Known Issues - -The `greatest_printf_cb` callback in `struct greatest_type_info` type -should have an extra `FILE *` argument (i.e., behave like fprintf, not -printf). This leads to cases where `GREATEST_STDOUT` has been customized -and `GREATEST_ASSERT_EQUAL_T`'s "Expected:", "Got:" messages are printed -to the correct stream, but the callback still prints the values on -stdout. Resolving this is an interface change, so it will have to wait -until release v2.0.0. (The actual code change will be minor -- adding an -extra f argument to the callback, and passing it to fprinf rather than -using printf.) - -The `greatest_type_info` struct is typedef'd, which is inconsistent with -the API otherwise not typedef-ing user facing structs. (It is also in the -struct namespace.) Fixing this will have to wait until v2.0.0. - - -## v1.0.0 - 2015-05-11 - -### API Changes - -Added `ASSERT_EQ_FMT(expected, actual, format)` to compare scalar values and -print them (if different) using the given format string (e.g. "0x%08x"). - -Added `ASSERT_IN_RANGE(expected, actual, tolerance)` to check whether the -actual value is within a +/- tolerance, as a floating point comparison, -and print the actual value if out of bounds. The floating point type used -can be configured by overriding GREATEST_FLOAT. - -Added `GREATEST_USE_TIME` compile-time #define, which can be set to 0 -to compile out all time.h / clock() related functionality. - -Added check for `_MSC_VER`, to detect C99 compatibility when built with -Visual Studio. - - -## v0.11.1 - 2015-01-17 - -Patch version, increased due to bug fixes (thanks @pmj): - -. Fix for issue #26 - must not longjmp to a context in an exited function. -. Corrected use of non-prefixed FAILm() macro in ASSERT macros. -. Avoid compile warnings about no previous definition of suite functions. - - -## v0.11.0 - 2015-01-02 - -### API Changes - -Added `CHECK_CALL()` macro, to wrap a function call that can fail a test. - -Added `ASSERT_OR_LONGJMP()` / `FAIL_WITH_LONGJMP()`, to longjmp(3) from -failing functions rather than returning. This is optional, and can be -compiled out by `#define`-ing `GREATEST_USE_LONGJMP` to 0. - -Restructured API so a CLI test runner is no longer necessary. -`GREATEST_INIT()` and `GREATEST_PRINT_REPORT()` can be called directly. - - -### Other Improvements - -Explicitly documented the protocol for calling functions from a test that -themselves call ASSERT(), SKIP(), FAIL(), etc. Added an enum for the -test return type. - -Fixed warnings, improved the documentation. - - -## v0.10.1 - 2014-11-16 - -Fixed error when compiled as C++ by adding `extern` to -`greatest_type_info` struct. - - -## v0.10.0 - 2014-10-12 - -### API Changes - -Added `ASSERT_EQUAL_T`, for comparing arbitrary structs and printing -them when they differ. - - -### Other Improvements - -Added `greenest` awk script, to color output. - - -## v0.9.4 - 2014-08-06 - -Started counting the total number of assertions. - -Fixed warnings. - - -## v0.9.3 - 2014-05-30 - -### API Changes - -Changed filters for test (`-t`) and suite (`-s`) names to use substring -search, rather than exact matches. - -Added `GREATEST_FAILURE_ABORT()`, to check whether the test runner is in -first-fail (`-f`) mode and there have been failures. - - -### Other Improvements - -Added check to always print a line break for "FAIL" messages, unless at -column 0. - - -## v0.9.2 - 2013-08-06 - -### API Changes - -Added a C89-compatible form of parametric testing (`GREATEST_RUN_TEST1`). - - -### Other Improvements - -Fixed warnings when compiled as C++. - - -## v0.9.1 - 2013-07-14 - -Added `-f` to usage line in documentation. - -Fixed warnings. - - -## v0.9.0 - 2013-03-02 - -### API Changes - -Added finish-at-first-failure (`-f`) to CLI test runner. - -Added suite-level setup/teardown hooks. - - -### Other Improvements - -Fixed warnings. - - -## v0.8 - 2012-04-08 - -### API Changes - -Added help (`-h`) and list (`-l`) options to CLI test runner. - -Added `GREATEST_RUN_TESTp` for parametric testing in C99. - -Added `GREATEST_IS_VERBOSE()`, to check whether the verbose (`-v`) flag -was set. - -Added `GREATEST_SET_TEARDOWN_CB()`, for setting a teardown callback. - -Added custom message forms of PASS, FAIL, SKIP, e.g. `PASSm()`. - - -### Other Improvements - -Fixed warnings. - - -## Pre-v0.8 - 2012-01-09 - -Initial public release of project. diff --git a/libs/greatest/CONTRIBUTING.md b/libs/greatest/CONTRIBUTING.md deleted file mode 100644 index a74a99b..0000000 --- a/libs/greatest/CONTRIBUTING.md +++ /dev/null @@ -1,73 +0,0 @@ -# Contributing to greatest - -Thanks for taking time to contribute to greatest! - -Please send patches or pull requests against the `develop` branch. This -makes it easier to avoid interface changes until they can be reflected -in version number updates. - -Sending changes via patch or pull request acknowledges that you are -willing and able to contribute it under this project's license. (Please -don't contribute code you aren't legally able to share.) - - -## Bug Reports - -Please report bugs at [the Issues page](https://github.com/silentbicycle/greatest/issues). - -If you are reporting a bug, please include: - -+ Your operating system name and version. - -+ Your compiler version and target platform. - -+ Any details about your local setup that might be helpful in - troubleshooting. - -+ Detailed steps to reproduce the bug. - - -## Documentation - -Improvements to the documentation are welcome. So are requests for -clarification -- if the docs are unclear or misleading, that's a -potential source of bugs. - - -## Portability - -greatest tries to assume little about its environment. It targets ANSI C -(C89) as a baseline, and features that are specific to C99 or later need -to be wrapped in a version check. - -It doesn't require a particular OS, or that there is an OS at all. (It -may be running tests on an embedded system without an RTOS.) It uses -`fprintf(3)` for reporting, that's about it. - -Improvements that don't fit the portability requirements can go in -`contrib/`, just not the main `greatest.h` header. - - -## contrib/: Extensions and Other Tools - -There is a `contrib/` directory for extensions. This could include -scripts that generate test templates, add formatting to the reports, or -better integrate greatest into build / continuous integration systems. -Extension libraries that depend on dynamic allocation or -platform-specific features can also go here. - -Please include a license in any standalone scripts or extensions. - - -## Versioning & Compatibility - -The versioning format is MAJOR.MINOR.PATCH. - -Improvements or minor bug fixes that do not break compatibility with -past releases lead to patch version increases. API changes that do not -break compatibility lead to minor version increases and reset the patch -version, and changes that do break compatibility lead to a major version -increase. - -The version will be increased during the merge to master, as part of -the release process. diff --git a/libs/greatest/Makefile b/libs/greatest/Makefile deleted file mode 100644 index 24c1881..0000000 --- a/libs/greatest/Makefile +++ /dev/null @@ -1,52 +0,0 @@ -# Warning flags for C and C++: -COMMON_FLAGS += -Wall -Wextra -pedantic -Werror -COMMON_FLAGS += -Wmissing-declarations -g -#COMMON_FLAGS += -Weverything - -CFLAGS += ${COMMON_FLAGS} -CPPFLAGS += ${COMMON_FLAGS} - -# These warnings are not valid for C++: -CFLAGS += -Wmissing-prototypes -CFLAGS += -Wstrict-prototypes - -PROGRAMS_C= example example_no_suite example_no_runner \ - example_shuffle example_trunc -PROGRAMS_CPP= example_cpp - -# Uncomment to demo c99 parametric testing. -#CFLAGS += -std=c99 - -# Uncomment to enable setjmp()/longjmp(). -#CFLAGS += -DGREATEST_USE_LONGJMP=1 - -# Uncomment to disable clock() / time.h. -#CFLAGS += -DGREATEST_USE_TIME=0 - -all: all_c - -all_c: ${PROGRAMS_C} -all_cpp: ${PROGRAMS_CPP} - -example: example.o example_suite.o -example_no_suite: example_no_suite.o -example_no_runner: example_no_runner.o -example_shuffle: example_shuffle.o -example_trunc: example_trunc.o - -*.o: greatest.h Makefile - -example_cpp: example_cpp.cpp greatest.h Makefile - ${CXX} -o $@ example_cpp.cpp ${CPPFLAGS} ${LDFLAGS} - -%.o: %.c - ${CC} -c -o $@ ${CFLAGS} $< - -%.o: %.cpp - ${CXX} -c -o $@ ${CPPFLAGS} $< - -%: %.o - ${CC} -o $@ ${LDFLAGS} $^ - -clean: - rm -f ${PROGRAMS_C} ${PROGRAMS_CPP} *.o *.core diff --git a/libs/greatest/contrib/entapment b/libs/greatest/contrib/entapment deleted file mode 100644 index 8221ff9..0000000 --- a/libs/greatest/contrib/entapment +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/awk -f -###################################################################### -# Copyright (c) 2017 Scott Vokes -# -# Permission to use, copy, modify, and/or distribute this software for any -# purpose with or without fee is hereby granted, provided that the above -# copyright notice and this permission notice appear in all copies. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -###################################################################### -# -# This script converts greatest verbose output to TAP version 13. -# -# Usage: -# test_runner -v | contrib/entapment -# -###################################################################### - -BEGIN { - diag_i = 1 - - PASS = 0 - FAIL = 1 - SKIP = 2 - TODO = 3 -} - -/^\* Suite/ { - suites[total_count] = $3 -} - -/^PASS/ { - total_count++ - pass_count++ - results[total_count] = PASS - $1 = "" - msg[total_count] = $0 - next -} - -/^FAIL/ { - total_count++ - fail_count++ - results[total_count] = FAIL - $1 = "" - msg[total_count] = $0 - next -} - -/^SKIP/ { - total_count++ - if (match($0, "TODO")) { - results[total_count] = TODO - } else { - results[total_count] = SKIP - } - $1 = "" - msg[total_count] = $0 - next -} - -{ - # Shift this by 1 so any test output is printed after ok/not ok line - if (diag_groups[total_count + 1] == 0) { - diag_groups[total_count + 1] = diag_lines - } - diag[diag_lines++] = $0 -} - -END { - diag_groups[total_count] = diag_lines - - printf("TAP version 13\n") - printf("%d..%d\n", 1, total_count) - - for (i = 1; i <= total_count; i++) { - if (suites[i] != "") { - printf("# suite %s\n", suites[i]) - } - if (results[i] == PASS) { - printf("ok %d -%s\n", i, msg[i]) - } else if (results[i] == FAIL) { - printf("not ok %d -%s\n", i, msg[i]) - } else if (results[i] == SKIP) { - printf("not ok %d # SKIP -%s\n", i, msg[i]) - } else if (results[i] == TODO) { - printf("not ok %d # TODO -%s\n", i, msg[i]) - } - - if (diag_groups[i]) { - for (d = diag_groups[i]; d < diag_groups[i + 1]; d++) { - printf("# %s\n", diag[d]) - } - } - } - if (total_count > 0) { - printf("# pass %d, fail %d, skip %d, %.2f%% okay\n", - pass_count, fail_count, total_count - (pass_count + fail_count), - 100 * (pass_count / total_count)) - } -} diff --git a/libs/greatest/contrib/greenest b/libs/greatest/contrib/greenest deleted file mode 100644 index 48d1218..0000000 --- a/libs/greatest/contrib/greenest +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/awk -f -# Copyright (c) 2016 Scott Vokes -# -# Permission to use, copy, modify, and/or distribute this software for any -# purpose with or without fee is hereby granted, provided that the above -# copyright notice and this permission notice appear in all copies. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -BEGIN { - GREEN = "\033[32m" - RED = "\033[31m" - YELLOW = "\033[33m" - RESET = "\033[m" -} - -/^PASS/ { sub("PASS", GREEN "PASS" RESET) } -/^SKIP/ { sub("SKIP", YELLOW "SKIP" RESET) } -/^FAIL/ { sub("FAIL", RED "FAIL" RESET) } - -# highlight hexdump difference markers -/^[0-9a-f]/ { - sub("X", GREEN "X" RESET, $2) - gsub("<", GREEN "<" RESET, $0) -} - -{ print($0) } diff --git a/libs/greatest/contrib/testify b/libs/greatest/contrib/testify deleted file mode 100644 index 9a65367..0000000 --- a/libs/greatest/contrib/testify +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/awk -f -# Copyright (c) 2017 Scott Vokes -# -# Permission to use, copy, modify, and/or distribute this software for any -# purpose with or without fee is hereby granted, provided that the above -# copyright notice and this permission notice appear in all copies. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -# -# This is a script that reads a bunch of lines like: -# RUN_TEST(test_name); -# RUN_TEST(other_name); -# -# and outputs -# TEST test_name(void) { -# SKIPm("TODO"); -# } -# -# TEST other_name(void) { -# SKIPm("TODO"); -# } - -/RUN_TEST\(/ { - split($1, test, /\(|\)/) - name = test[2] - printf("TEST %s(void) {\n SKIPm(\"TODO\");\n}\n\n", name) -} diff --git a/libs/greatest/package.json b/libs/greatest/package.json deleted file mode 100644 index 944ba3f..0000000 --- a/libs/greatest/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "greatest", - "version": "v1.5.0", - "repo": "silentbicycle/greatest", - "src": ["greatest.h"], - "description": "A C testing library in 1 file. No dependencies, no dynamic allocation.", - "license": "ISC", - "keywords": ["test", "unit", "testing"] -} diff --git a/libs/imgui-1.92.1/.editorconfig b/libs/imgui-1.92.1/.editorconfig deleted file mode 100644 index 5adfefa..0000000 --- a/libs/imgui-1.92.1/.editorconfig +++ /dev/null @@ -1,28 +0,0 @@ -# See http://editorconfig.org to read about the EditorConfig format. -# - In theory automatically supported by VS2017+ and most common IDE or text editors. -# - In practice VS2019-VS2022 stills don't trim trailing whitespaces correctly :( -# - Suggest installing this to trim whitespaces: -# GitHub https://github.com/madskristensen/TrailingWhitespace -# VS2019 https://marketplace.visualstudio.com/items?itemName=MadsKristensen.TrailingWhitespaceVisualizer -# VS2022 https://marketplace.visualstudio.com/items?itemName=MadsKristensen.TrailingWhitespace64 -# (in spite of its name doesn't only visualize but also trims) -# - Alternative for older VS2010 to VS2015: https://marketplace.visualstudio.com/items?itemName=EditorConfigTeam.EditorConfig - -# top-most EditorConfig file -root = true - -# Default settings: -# Use 4 spaces as indentation -[*] -indent_style = space -indent_size = 4 -insert_final_newline = true -trim_trailing_whitespace = true - -[imstb_*] -indent_size = 3 -trim_trailing_whitespace = false - -[Makefile] -indent_style = tab -indent_size = 4 diff --git a/libs/imgui-1.92.1/.gitattributes b/libs/imgui-1.92.1/.gitattributes deleted file mode 100644 index d48470e..0000000 --- a/libs/imgui-1.92.1/.gitattributes +++ /dev/null @@ -1,30 +0,0 @@ -* text=auto - -*.c text -*.cpp text -*.h text -*.m text -*.mm text -*.md text -*.txt text -*.html text -*.bat text -*.frag text -*.vert text -*.mkb text -*.icf text - -*.sln text eol=crlf -*.vcxproj text eol=crlf -*.vcxproj.filters text eol=crlf -*.natvis text eol=crlf - -Makefile text eol=lf -*.sh text eol=lf -*.pbxproj text eol=lf -*.storyboard text eol=lf -*.plist text eol=lf - -*.png binary -*.ttf binary -*.lib binary diff --git a/libs/imgui-1.92.1/.github/FUNDING.yml b/libs/imgui-1.92.1/.github/FUNDING.yml deleted file mode 100644 index df7d709..0000000 --- a/libs/imgui-1.92.1/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -custom: ['https://github.com/ocornut/imgui/wiki/Funding'] diff --git a/libs/imgui-1.92.1/.github/ISSUE_TEMPLATE/config.yml b/libs/imgui-1.92.1/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 3ba13e0..0000000 --- a/libs/imgui-1.92.1/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1 +0,0 @@ -blank_issues_enabled: false diff --git a/libs/imgui-1.92.1/.github/ISSUE_TEMPLATE/issue_template.yml b/libs/imgui-1.92.1/.github/ISSUE_TEMPLATE/issue_template.yml deleted file mode 100644 index 6ed6249..0000000 --- a/libs/imgui-1.92.1/.github/ISSUE_TEMPLATE/issue_template.yml +++ /dev/null @@ -1,92 +0,0 @@ -name: "Ask a question, report a bug, request a feature, etc." -description: "Ask any question, discuss best practices, report a bug, request a feature." -body: - - type: markdown - attributes: - value: | - FOR FIRST-TIME USERS ISSUES COMPILING/LINKING/RUNNING, please use [GitHub Discussions](https://github.com/ocornut/imgui/discussions) - For anything else: **we are happy to use 'GitHub Issues' for many types of open-ended questions**. We are encouraging 'Issues' becoming a large, centralized, tagged, cross-referenced database of Dear ImGui contents. - - Be mindful that messages are being sent to the e-mail box of "Watching" users. Try to proof-read your messages before sending them. Edits are not seen by those users. - - **If you are using Dear ImGui as part of a job that you are being well-paid for** and your company is not a sponsor. Please be mindful that this is a Free Software and you might be about to ask volunteers to help you doing your job. Please put extra effort describing your issue or question properly. If your company is wealthy, please read [Funding](https://github.com/ocornut/imgui/wiki/Funding) and consider getting in touch. - - type: markdown - attributes: - value: | - **Prerequisites:** - - I have read [Frequently Asked Questions](https://github.com/ocornut/imgui/blob/master/docs/FAQ.md). - - I have read [Contributing Guidelines -> General Advices](https://github.com/ocornut/imgui/blob/master/docs/CONTRIBUTING.md#getting-started--general-advice). - - I have read [Contributing Guidelines -> How to open an Issue](https://github.com/ocornut/imgui/blob/master/docs/CONTRIBUTING.md#how-to-open-an-issue). - - I have searched [Github Issues and PR](https://github.com/ocornut/imgui/issues?q=) for discussion of similar topics. - - ---- - - type: input - id: specs_version - attributes: - label: "Version/Branch of Dear ImGui:" - description: "(please specify if you have made substantial modifications to your copy)" - value: "Version 1.XX, Branch: XXX (master/docking/etc.)" - placeholder: "Version 1.XX, Branch: XXX (master/docking/etc.)" - validations: - required: true - - type: input - id: specs_backend - attributes: - label: "Back-ends:" - description: (or specify when using custom engine/back-ends) - value: "imgui_impl_XXX.cpp + imgui_impl_XXX.cpp" - placeholder: "imgui_impl_XXX.cpp + imgui_impl_XXX.cpp or n/a" - validations: - required: true - - type: input - id: specs_compiler_os - attributes: - label: "Compiler, OS:" - placeholder: "e.g. Windows 11 + MSVC 2022, macOS + Clang 12, Linux + GCC etc." - validations: - required: true - - type: textarea - id: specs_full - attributes: - label: "Full config/build information:" - placeholder: | - (If you can run, you may go to 'Demo->Tools->About Dear ImGui->Config/Build Info' to obtain detailed information that you can paste here) - validations: - required: false - - type: textarea - id: issue_description - attributes: - label: "Details:" - description: "Try to be explicit with your goals, your expectations and what you have tried. Be mindful of [The XY Problem](https://xyproblem.info). What you have in mind or in your code is not obvious to other people. People frequently discuss problems and suggest incorrect solutions without first clarifying their goals. When requesting a new feature, please describe the usage context (how you intend to use it, why you need it, etc.). If you tried something and it failed, show us what you tried. If you are reporting a bug, explain what's the bug, how does it occur, etc. If you are reporting a crash, please include a debugger callstack." - value: | - **My Issue/Question:** - - XXX _(please provide as much context as possible)_ - validations: - required: true - - type: textarea - id: screenshots - attributes: - label: "Screenshots/Video:" - description: "Attach screenshots or gif/videos to clarify the context. They often convey useful information that is omitted by the description." - placeholder: "(You can drag files here)" - validations: - required: false - - type: textarea - id: repro_code - attributes: - label: "Minimal, Complete and Verifiable Example code:" - description: "Provide an [MCVE](https://stackoverflow.com/help/mcve) to demonstrate your problem. An ideal submission includes a small piece of code that anyone can paste into one of the examples applications (examples/*/main.cpp) or the demo (imgui_demo.cpp) to understand and reproduce it. Narrowing your problem to its shortest and purest form is the easiest way to understand it, explain it and fix it. Please test your shortened code to ensure it exhibits the problem. Often while creating the MCVE you will solve the problem! Many questions that are missing a standalone verifiable example are missing the actual cause of their issue in the description, which ends up wasting everyone's time." - value: | - ```cpp - // Here's some code anyone can copy and paste to reproduce your issue - ImGui::Begin("Example Bug"); - MoreCodeToExplainMyIssue(); - ImGui::End(); - ``` - validations: - required: false - - type: markdown - attributes: - value: | - Thank you for taking the time to read prerequisites, filling this template and double-checking your message and your code! diff --git a/libs/imgui-1.92.1/.github/pull_request_template.md b/libs/imgui-1.92.1/.github/pull_request_template.md deleted file mode 100644 index 796ec0b..0000000 --- a/libs/imgui-1.92.1/.github/pull_request_template.md +++ /dev/null @@ -1,8 +0,0 @@ -(Click "Preview" to turn any http URL into a clickable link) - -1. PLEASE CAREFULLY READ: [Contributing Guidelines](https://github.com/ocornut/imgui/blob/master/docs/CONTRIBUTING.md) - -2. Make sure you're using a special branch just for this pull request. (Sometimes people unknowingly use a default branch, then later update that branch, which updates the pull request with the other changes if it hasn't been merged yet.) - -3. Clear this template before submitting your PR. - diff --git a/libs/imgui-1.92.1/.github/workflows/build.yml b/libs/imgui-1.92.1/.github/workflows/build.yml deleted file mode 100644 index 95bcf3e..0000000 --- a/libs/imgui-1.92.1/.github/workflows/build.yml +++ /dev/null @@ -1,559 +0,0 @@ -name: build - -on: - push: - pull_request: - workflow_run: - # Use a workflow as a trigger of scheduled builds. Forked repositories can disable scheduled builds by disabling - # "scheduled" workflow, while maintaining ability to perform local CI builds. - workflows: - - scheduled - - manual - branches: - - master - - docking - types: - - requested - -jobs: - Windows: - runs-on: windows-2025 - env: - VS_PATH: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\ - MSBUILD_PATH: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\ - steps: - - uses: actions/checkout@v4 - - - name: Install Dependencies - shell: powershell - run: | - Invoke-WebRequest -Uri "https://www.libsdl.org/release/SDL2-devel-2.26.3-VC.zip" -OutFile "SDL2-devel-2.26.3-VC.zip" - Expand-Archive -Path SDL2-devel-2.26.3-VC.zip - echo "SDL2_DIR=$(pwd)\SDL2-devel-2.26.3-VC\SDL2-2.26.3\" >>${env:GITHUB_ENV} - - Invoke-WebRequest -Uri "https://github.com/ocornut/imgui/files/3789205/vulkan-sdk-1.1.121.2.zip" -OutFile vulkan-sdk-1.1.121.2.zip - Expand-Archive -Path vulkan-sdk-1.1.121.2.zip - echo "VULKAN_SDK=$(pwd)\vulkan-sdk-1.1.121.2\" >>${env:GITHUB_ENV} - - - name: Fix Projects - shell: powershell - run: | - # CI workers do not supporter older Visual Studio versions. Fix projects to target newer available version. - gci -recurse -filter "*.vcxproj" | ForEach-Object { - (Get-Content $_.FullName) -Replace "v\d{3}","v143" | Set-Content -Path $_.FullName - (Get-Content $_.FullName) -Replace "[\d\.]+",'$(LatestTargetPlatformVersion)' | Set-Content -Path $_.FullName - } - - # Not using matrix here because it would inflate job count too much. Check out and setup is done for every job and that makes build times way too long. - - name: Build example_null (extra warnings, mingw 64-bit) - run: mingw32-make -C examples/example_null WITH_EXTRA_WARNINGS=1 - - - name: Build example_null (mingw 64-bit, as DLL) - shell: bash - run: | - echo '#define IMGUI_API __declspec(dllexport)' > example_single_file.cpp - echo '#define IMGUI_IMPLEMENTATION' >> example_single_file.cpp - echo '#include "misc/single_file/imgui_single_file.h"' >> example_single_file.cpp - g++ -I. -Wall -Wformat -shared -o libimgui.dll -Wl,--out-implib,libimgui.a example_single_file.cpp -limm32 - g++ -I. -Wall -Wformat -DIMGUI_API='__declspec(dllimport)' -o example_null.exe examples/example_null/main.cpp -L. -limgui - rm -f example_null.exe libimgui.* example_single_file.* - - - name: Build example_null (extra warnings, msvc 64-bit) - shell: cmd - run: | - cd examples\example_null - call "%VS_PATH%\VC\Auxiliary\Build\vcvars64.bat" - .\build_win32.bat /W4 - - - name: Build example_null (single file build) - shell: bash - run: | - cat > example_single_file.cpp <<'EOF' - - #define IMGUI_IMPLEMENTATION - #include "misc/single_file/imgui_single_file.h" - #include "examples/example_null/main.cpp" - - EOF - g++ -I. -Wall -Wformat -o example_single_file.exe example_single_file.cpp -limm32 - - - name: Build example_null (with IMGUI_DISABLE_WIN32_FUNCTIONS) - shell: bash - run: | - cat > example_single_file.cpp <<'EOF' - - #define IMGUI_DISABLE_WIN32_FUNCTIONS - #define IMGUI_IMPLEMENTATION - #include "misc/single_file/imgui_single_file.h" - #include "examples/example_null/main.cpp" - - EOF - g++ -I. -Wall -Wformat -o example_single_file.exe example_single_file.cpp -limm32 - - - name: Build example_null (as DLL) - shell: cmd - run: | - call "%VS_PATH%\VC\Auxiliary\Build\vcvars64.bat" - - echo #define IMGUI_API __declspec(dllexport) > example_single_file.cpp - echo #define IMGUI_IMPLEMENTATION >> example_single_file.cpp - echo #include "misc/single_file/imgui_single_file.h" >> example_single_file.cpp - - cl.exe /D_USRDLL /D_WINDLL /I. example_single_file.cpp /LD /FeImGui.dll /link - cl.exe /DIMGUI_API=__declspec(dllimport) /I. ImGui.lib /Feexample_null.exe examples/example_null/main.cpp - - - name: Build Win32 example_glfw_opengl2 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj /p:Platform=Win32 /p:Configuration=Release' - - - name: Build Win32 example_glfw_opengl3 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj /p:Platform=Win32 /p:Configuration=Release' - if: github.event_name == 'workflow_run' - - - name: Build Win32 example_glfw_vulkan - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj /p:Platform=Win32 /p:Configuration=Release' - if: github.event_name == 'workflow_run' - - - name: Build Win32 example_sdl2_sdlrenderer2 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2.vcxproj /p:Platform=Win32 /p:Configuration=Release' - if: github.event_name == 'workflow_run' - - - name: Build Win32 example_sdl2_vulkan - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj /p:Platform=Win32 /p:Configuration=Release' - if: github.event_name == 'workflow_run' - - - name: Build Win32 example_sdl2_opengl2 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj /p:Platform=Win32 /p:Configuration=Release' - if: github.event_name == 'workflow_run' - - - name: Build Win32 example_sdl2_opengl3 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj /p:Platform=Win32 /p:Configuration=Release' - - - name: Build Win32 example_sdl2_directx11 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl2_directx11/example_sdl2_directx11.vcxproj /p:Platform=Win32 /p:Configuration=Release' - if: github.event_name == 'workflow_run' - - - name: Build Win32 example_win32_directx9 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_win32_directx9/example_win32_directx9.vcxproj /p:Platform=Win32 /p:Configuration=Release' - - - name: Build Win32 example_win32_directx10 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_win32_directx10/example_win32_directx10.vcxproj /p:Platform=Win32 /p:Configuration=Release' - - - name: Build Win32 example_win32_directx11 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_win32_directx11/example_win32_directx11.vcxproj /p:Platform=Win32 /p:Configuration=Release' - if: github.event_name == 'workflow_run' - - - name: Build x64 example_glfw_opengl2 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj /p:Platform=x64 /p:Configuration=Release' - if: github.event_name == 'workflow_run' - - - name: Build x64 example_glfw_opengl3 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj /p:Platform=x64 /p:Configuration=Release' - - - name: Build x64 example_glfw_vulkan - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj /p:Platform=x64 /p:Configuration=Release' - - - name: Build x64 example_sdl2_sdlrenderer2 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2.vcxproj /p:Platform=x64 /p:Configuration=Release' - if: github.event_name == 'workflow_run' - - - name: Build x64 example_sdl2_vulkan - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj /p:Platform=x64 /p:Configuration=Release' - if: github.event_name == 'workflow_run' - - - name: Build x64 example_sdl2_opengl2 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj /p:Platform=x64 /p:Configuration=Release' - if: github.event_name == 'workflow_run' - - - name: Build x64 example_sdl2_opengl3 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj /p:Platform=x64 /p:Configuration=Release' - if: github.event_name == 'workflow_run' - - - name: Build x64 example_sdl2_directx11 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_sdl2_directx11/example_sdl2_directx11.vcxproj /p:Platform=x64 /p:Configuration=Release' - - - name: Build x64 example_win32_directx9 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_win32_directx9/example_win32_directx9.vcxproj /p:Platform=x64 /p:Configuration=Release' - if: github.event_name == 'workflow_run' - - - name: Build x64 example_win32_directx10 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_win32_directx10/example_win32_directx10.vcxproj /p:Platform=x64 /p:Configuration=Release' - if: github.event_name == 'workflow_run' - - - name: Build x64 example_win32_directx11 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_win32_directx11/example_win32_directx11.vcxproj /p:Platform=x64 /p:Configuration=Release' - if: github.event_name == 'workflow_run' - - - name: Build x64 example_win32_directx12 - shell: cmd - run: '"%MSBUILD_PATH%\MSBuild.exe" examples/example_win32_directx12/example_win32_directx12.vcxproj /p:Platform=x64 /p:Configuration=Release' - - Linux: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Install Dependencies - run: | - sudo apt-get update - sudo apt-get install -y libglfw3-dev libsdl2-dev gcc-multilib g++-multilib libfreetype6-dev libvulkan-dev - - - name: Build example_null (extra warnings, gcc 32-bit) - run: | - make -C examples/example_null clean - CXXFLAGS="$CXXFLAGS -m32 -Werror" make -C examples/example_null WITH_EXTRA_WARNINGS=1 - - - name: Build example_null (extra warnings, gcc 64-bit) - run: | - make -C examples/example_null clean - CXXFLAGS="$CXXFLAGS -m64 -Werror" make -C examples/example_null WITH_EXTRA_WARNINGS=1 - - - name: Build example_null (extra warnings, clang 32-bit) - run: | - make -C examples/example_null clean - CXXFLAGS="$CXXFLAGS -m32 -Werror" CXX=clang++ make -C examples/example_null WITH_EXTRA_WARNINGS=1 - - - name: Build example_null (extra warnings, clang 64-bit) - run: | - make -C examples/example_null clean - CXXFLAGS="$CXXFLAGS -m64 -Werror" CXX=clang++ make -C examples/example_null WITH_EXTRA_WARNINGS=1 - - - name: Build example_null (extra warnings, empty IM_ASSERT) - run: | - cat > example_single_file.cpp <<'EOF' - - #define IM_ASSERT(x) - #define IMGUI_IMPLEMENTATION - #include "misc/single_file/imgui_single_file.h" - #include "examples/example_null/main.cpp" - - EOF - g++ -I. -std=c++11 -Wall -Wformat -Wextra -Werror -Wno-zero-as-null-pointer-constant -Wno-double-promotion -Wno-variadic-macros -Wno-empty-body -o example_single_file example_single_file.cpp - - - name: Build example_null (freetype) - run: | - make -C examples/example_null clean - make -C examples/example_null WITH_FREETYPE=1 - - - name: Build example_null (single file build) - run: | - cat > example_single_file.cpp <<'EOF' - - #define IMGUI_IMPLEMENTATION - #include "misc/single_file/imgui_single_file.h" - #include "examples/example_null/main.cpp" - - EOF - g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp - - - name: Build example_null (with ImWchar32) - run: | - cat > example_single_file.cpp <<'EOF' - - #define IMGUI_USE_WCHAR32 - #define IMGUI_IMPLEMENTATION - #include "misc/single_file/imgui_single_file.h" - #include "examples/example_null/main.cpp" - - EOF - g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp - - - name: Build example_null (with large ImDrawIdx + pointer ImTextureID) - run: | - cat > example_single_file.cpp <<'EOF' - - #define ImTextureID void* - #define ImDrawIdx unsigned int - #define IMGUI_IMPLEMENTATION - #include "misc/single_file/imgui_single_file.h" - #include "examples/example_null/main.cpp" - - EOF - g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp - - - name: Build example_null (with IMGUI_DISABLE_OBSOLETE_FUNCTIONS) - run: | - cat > example_single_file.cpp <<'EOF' - - #define IMGUI_DISABLE_OBSOLETE_FUNCTIONS - #define IMGUI_IMPLEMENTATION - #include "misc/single_file/imgui_single_file.h" - #include "examples/example_null/main.cpp" - - EOF - g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp - - - name: Build example_null (with IMGUI_DISABLE_OBSOLETE_KEYIO) - run: | - cat > example_single_file.cpp <<'EOF' - - #define IMGUI_DISABLE_OBSOLETE_KEYIO - #define IMGUI_IMPLEMENTATION - #include "misc/single_file/imgui_single_file.h" - #include "examples/example_null/main.cpp" - - EOF - g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp - - - name: Build example_null (with C++20) - run: | - cat > example_single_file.cpp <<'EOF' - - #define IMGUI_DISABLE_OBSOLETE_KEYIO - #define IMGUI_IMPLEMENTATION - #include "misc/single_file/imgui_single_file.h" - #include "examples/example_null/main.cpp" - - EOF - g++ -I. -std=c++20 -Wall -Wformat -o example_single_file example_single_file.cpp - - - name: Build example_null (with IMGUI_DISABLE_DEMO_WINDOWS and IMGUI_DISABLE_DEBUG_TOOLS) - run: | - cat > example_single_file.cpp <<'EOF' - - #define IMGUI_DISABLE_DEMO_WINDOWS - #define IMGUI_DISABLE_DEBUG_TOOLS - #define IMGUI_IMPLEMENTATION - #include "misc/single_file/imgui_single_file.h" - #include "examples/example_null/main.cpp" - - EOF - g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp - - - name: Build example_null (with IMGUI_DISABLE_FILE_FUNCTIONS) - run: | - cat > example_single_file.cpp <<'EOF' - - #define IMGUI_DISABLE_FILE_FUNCTIONS - #define IMGUI_IMPLEMENTATION - #include "misc/single_file/imgui_single_file.h" - #include "examples/example_null/main.cpp" - - EOF - g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp - - - name: Build example_null (with IMGUI_USE_BGRA_PACKED_COLOR) - run: | - cat > example_single_file.cpp <<'EOF' - - #define IMGUI_USE_BGRA_PACKED_COLOR - #define IMGUI_IMPLEMENTATION - #include "misc/single_file/imgui_single_file.h" - #include "examples/example_null/main.cpp" - - EOF - g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp - - - name: Build example_null (with IM_VEC2_CLASS_EXTRA and IM_VEC4_CLASS_EXTRA) - run: | - cat > example_single_file.cpp <<'EOF' - - struct MyVec2 { float x; float y; MyVec2(float x, float y) : x(x), y(y) { } }; - struct MyVec4 { float x; float y; float z; float w; - MyVec4(float x, float y, float z, float w) : x(x), y(y), z(z), w(w) { } }; - #define IM_VEC2_CLASS_EXTRA \ - ImVec2(const MyVec2& f) { x = f.x; y = f.y; } \ - operator MyVec2() const { return MyVec2(x, y); } - #define IM_VEC4_CLASS_EXTRA \ - ImVec4(const MyVec4& f) { x = f.x; y = f.y; z = f.z; w = f.w; } \ - operator MyVec4() const { return MyVec4(x, y, z, w); } - #define IMGUI_IMPLEMENTATION - #include "misc/single_file/imgui_single_file.h" - #include "examples/example_null/main.cpp" - - EOF - g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp - - - name: Build example_null (C++26, Clang) - run: | - cat > example_single_file.cpp <<'EOF' - - #define IMGUI_IMPLEMENTATION - #define IMGUI_DISABLE_DEMO_WINDOWS - #include "misc/single_file/imgui_single_file.h" - #include "examples/example_null/main.cpp" - - EOF - clang++ -I. -std=c++26 -Wall -Wformat -fno-exceptions -fno-threadsafe-statics -lc -lm -o example_single_file example_single_file.cpp - - - name: Build example_null (without c++ runtime, Clang) - run: | - cat > example_single_file.cpp <<'EOF' - - #define IMGUI_IMPLEMENTATION - #define IMGUI_DISABLE_DEMO_WINDOWS - #include "misc/single_file/imgui_single_file.h" - #include "examples/example_null/main.cpp" - - EOF - clang++ -I. -std=c++11 -Wall -Wformat -nodefaultlibs -fno-rtti -fno-exceptions -fno-threadsafe-statics -lc -lm -o example_single_file example_single_file.cpp - - - name: Build example_glfw_opengl2 - run: make -C examples/example_glfw_opengl2 - - - name: Build example_glfw_opengl3 - run: make -C examples/example_glfw_opengl3 - if: github.event_name == 'workflow_run' - - - name: Build example_sdl2_opengl2 - run: make -C examples/example_sdl2_opengl2 - if: github.event_name == 'workflow_run' - - - name: Build example_sdl2_opengl3 - run: make -C examples/example_sdl2_opengl3 - - - name: Build with IMGUI_IMPL_VULKAN_NO_PROTOTYPES - run: g++ -c -I. -std=c++11 -DIMGUI_IMPL_VULKAN_NO_PROTOTYPES=1 backends/imgui_impl_vulkan.cpp - - MacOS: - runs-on: macos-latest - steps: - - uses: actions/checkout@v4 - - - name: Install Dependencies - run: | - brew install glfw3 sdl2 - - - name: Build example_null (extra warnings, clang 64-bit) - run: make -C examples/example_null WITH_EXTRA_WARNINGS=1 - - - name: Build example_null (single file build) - run: | - cat > example_single_file.cpp <<'EOF' - - #define IMGUI_IMPLEMENTATION - #include "misc/single_file/imgui_single_file.h" - #include "examples/example_null/main.cpp" - - EOF - clang++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp - - - name: Build example_null (single file build, c++20) - run: | - cat > example_single_file.cpp <<'EOF' - - #define IMGUI_IMPLEMENTATION - #include "misc/single_file/imgui_single_file.h" - #include "examples/example_null/main.cpp" - - EOF - clang++ -I. -std=c++20 -Wall -Wformat -o example_single_file example_single_file.cpp - - - name: Build example_null (without c++ runtime) - run: | - cat > example_single_file.cpp <<'EOF' - - #define IMGUI_IMPLEMENTATION - #include "misc/single_file/imgui_single_file.h" - #include "examples/example_null/main.cpp" - - EOF - clang++ -I. -std=c++11 -Wall -Wformat -nodefaultlibs -fno-rtti -fno-exceptions -fno-threadsafe-statics -lc -lm -o example_single_file example_single_file.cpp - - - name: Build example_glfw_opengl2 - run: make -C examples/example_glfw_opengl2 - - - name: Build example_glfw_opengl3 - run: make -C examples/example_glfw_opengl3 - if: github.event_name == 'workflow_run' - - - name: Build example_glfw_metal - run: make -C examples/example_glfw_metal - - - name: Build example_sdl2_metal - run: make -C examples/example_sdl2_metal - - - name: Build example_sdl2_opengl2 - run: make -C examples/example_sdl2_opengl2 - if: github.event_name == 'workflow_run' - - - name: Build example_sdl2_opengl3 - run: make -C examples/example_sdl2_opengl3 - - - name: Build example_apple_metal - run: xcodebuild -project examples/example_apple_metal/example_apple_metal.xcodeproj -target example_apple_metal_macos - - - name: Build example_apple_opengl2 - run: xcodebuild -project examples/example_apple_opengl2/example_apple_opengl2.xcodeproj -target example_osx_opengl2 - - iOS: - runs-on: macos-latest - steps: - - uses: actions/checkout@v4 - - - name: Build example_apple_metal - run: | - # Code signing is required, but we disable it because it is irrelevant for CI builds. - xcodebuild -project examples/example_apple_metal/example_apple_metal.xcodeproj -target example_apple_metal_ios CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO - - Emscripten: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Install Dependencies - run: | - wget -q https://github.com/emscripten-core/emsdk/archive/master.tar.gz - tar -xvf master.tar.gz - emsdk-master/emsdk update - emsdk-master/emsdk install latest - emsdk-master/emsdk activate latest - sudo apt-get install build-essential - - - name: Build example_sdl2_opengl3 with Emscripten - run: | - pushd emsdk-master - source ./emsdk_env.sh - popd - make -C examples/example_sdl2_opengl3 -f Makefile.emscripten - - # This build compiles example_glfw_wgpu using Makefile.emscripten and Emscripten GLFW built-in implementation (-sUSE_GLFW=3) - # This ensures 2 things: the make build works, and the GLFW built-in implementation is tested - - name: Build example_glfw_wgpu with Emscripten/Makefile - run: | - pushd emsdk-master - source ./emsdk_env.sh - popd - make -C examples/example_glfw_wgpu -f Makefile.emscripten - - # This build compiles example_glfw_wgpu using CMakeLists.txt and Emscripten GLFW contrib port (--use-port=contrib.glfw3) - # This ensures 2 things: the CMake build works, and the GLFW contrib port is tested - - name: Build example_glfw_wgpu with Emscripten/CMake - run: | - pushd emsdk-master - source ./emsdk_env.sh - popd - emcc -v - emcmake cmake -B build -DCMAKE_BUILD_TYPE=Release examples/example_glfw_wgpu - cmake --build build - - Android: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Build example_android_opengl3 - run: | - cd examples/example_android_opengl3/android - gradle assembleDebug --stacktrace diff --git a/libs/imgui-1.92.1/.github/workflows/manual.yml b/libs/imgui-1.92.1/.github/workflows/manual.yml deleted file mode 100644 index 3c472f1..0000000 --- a/libs/imgui-1.92.1/.github/workflows/manual.yml +++ /dev/null @@ -1,12 +0,0 @@ -# -# This is a dummy workflow used to trigger full builds manually. -# -name: manual - -on: workflow_dispatch - -jobs: - manual: - runs-on: ubuntu-latest - steps: - - run: exit 0 diff --git a/libs/imgui-1.92.1/.github/workflows/scheduled.yml b/libs/imgui-1.92.1/.github/workflows/scheduled.yml deleted file mode 100644 index 2a08578..0000000 --- a/libs/imgui-1.92.1/.github/workflows/scheduled.yml +++ /dev/null @@ -1,15 +0,0 @@ -# -# This is a dummy workflow used to trigger scheduled builds. Forked repositories most likely should disable this -# workflow to avoid daily builds of inactive repositories. -# -name: scheduled - -on: - schedule: - - cron: '0 9 * * *' - -jobs: - scheduled: - runs-on: ubuntu-latest - steps: - - run: exit 0 diff --git a/libs/imgui-1.92.1/.github/workflows/static-analysis.yml b/libs/imgui-1.92.1/.github/workflows/static-analysis.yml deleted file mode 100644 index 53db047..0000000 --- a/libs/imgui-1.92.1/.github/workflows/static-analysis.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: static-analysis - -on: - workflow_run: - # Perform static analysis together with build workflow. Build triggers of "build" workflow do not need to be repeated here. - workflows: - - build - types: - - requested - -jobs: - PVS-Studio: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 1 - - - name: Install Dependencies - env: - # The Secret variable setup in GitHub must be in format: "name_or_email key", on a single line - PVS_STUDIO_LICENSE: ${{ secrets.PVS_STUDIO_LICENSE }} - run: | - if [[ "$PVS_STUDIO_LICENSE" != "" ]]; - then - wget -q https://files.viva64.com/etc/pubkey.txt - sudo apt-key add pubkey.txt - sudo wget -O /etc/apt/sources.list.d/viva64.list https://files.viva64.com/etc/viva64.list - sudo apt-get update - sudo apt-get install -y pvs-studio - pvs-studio-analyzer credentials -o pvs-studio.lic $PVS_STUDIO_LICENSE - fi - - - name: PVS-Studio static analysis - run: | - if [[ ! -f pvs-studio.lic ]]; - then - echo "PVS Studio license is missing. No analysis will be performed." - echo "If you have a PVS Studio license please create a project secret named PVS_STUDIO_LICENSE with your license." - echo "You may use a free license. More information at https://www.viva64.com/en/b/0457/" - exit 0 - fi - cd examples/example_null - pvs-studio-analyzer trace -- make WITH_EXTRA_WARNINGS=1 - pvs-studio-analyzer analyze -e ../../imstb_rectpack.h -e ../../imstb_textedit.h -e ../../imstb_truetype.h -l ../../pvs-studio.lic -o pvs-studio.log - plog-converter -a 'GA:1,2;OP:1' -d V1071 -t errorfile -w pvs-studio.log diff --git a/libs/imgui-1.92.1/.gitignore b/libs/imgui-1.92.1/.gitignore deleted file mode 100644 index 6f6c50c..0000000 --- a/libs/imgui-1.92.1/.gitignore +++ /dev/null @@ -1,74 +0,0 @@ -## OSX artifacts -.DS_Store - -## Dear ImGui artifacts -imgui.ini -imgui*.ini - -## General build artifacts -*.o -*.obj -*.exe -examples/*/Debug/* -examples/*/Release/* -examples/*/x64/* - -## Visual Studio artifacts -.vs -ipch -*.opensdf -*.log -*.pdb -*.ilk -*.user -*.sdf -*.suo -*.VC.db -*.VC.VC.opendb - -## Getting files created in JSON/Schemas/Catalog/ from a VS2022 update -JSON/ - -## Commonly used CMake directories & CMake CPM cache -build*/ -.cache - -## Xcode & macOS artifacts -project.xcworkspace -xcuserdata -examples/*/*.dSYM - -## Emscripten artifacts -examples/*.o.tmp -examples/*.out.js -examples/*.out.wasm -examples/example_glfw_opengl3/web/* -examples/example_glfw_wgpu/web/* -examples/example_glfw_wgpu/external/* -examples/example_sdl2_opengl3/web/* - -## JetBrains IDE artifacts -.idea -cmake-build-* - -## VS code artifacts -.vscode - -## Unix executables from our example Makefiles -examples/example_apple_metal/example_apple_metal -examples/example_apple_opengl2/example_apple_opengl2 -examples/example_glfw_metal/example_glfw_metal -examples/example_glfw_opengl2/example_glfw_opengl2 -examples/example_glfw_opengl3/example_glfw_opengl3 -examples/example_glfw_vulkan/example_glfw_vulkan -examples/example_glut_opengl2/example_glut_opengl2 -examples/example_null/example_null -examples/example_sdl2_metal/example_sdl2_metal -examples/example_sdl2_opengl2/example_sdl2_opengl2 -examples/example_sdl2_opengl3/example_sdl2_opengl3 -examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2 -examples/example_sdl2_vulkan/example_sdl2_vulkan -examples/example_sdl3_opengl3/example_sdl3_opengl3 -examples/example_sdl3_sdlgpu3/example_sdl3_sdlgpu3 -examples/example_sdl3_sdlrenderer3/example_sdl3_sdlrenderer3 -examples/example_sdl3_vulkan/example_sdl3_vulkan diff --git a/libs/imgui-1.92.1/backends/imgui_impl_allegro5.cpp b/libs/imgui-1.92.1/backends/imgui_impl_allegro5.cpp deleted file mode 100644 index 5cbb893..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_allegro5.cpp +++ /dev/null @@ -1,670 +0,0 @@ -// dear imgui: Renderer + Platform Backend for Allegro 5 -// (Info: Allegro 5 is a cross-platform general purpose library for handling windows, inputs, graphics, etc.) - -// Implemented features: -// [X] Renderer: User texture binding. Use 'ALLEGRO_BITMAP*' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). -// [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy ALLEGRO_KEY_* values are obsolete since 1.87 and not supported since 1.91.5] -// [X] Platform: Clipboard support (from Allegro 5.1.12). -// [X] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. -// Missing features or Issues: -// [ ] Renderer: The renderer is suboptimal as we need to convert vertices manually. -// [ ] Platform: Missing gamepad support. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// CHANGELOG -// (minor and older changes stripped away, please see git history for details) -// 2025-07-07: Fixed texture update broken on some platforms where ALLEGRO_LOCK_WRITEONLY needed all texels to be rewritten. -// 2025-06-11: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas. Removed ImGui_ImplSDLGPU3_CreateFontsTexture() and ImGui_ImplSDLGPU3_DestroyFontsTexture(). -// 2025-02-18: Added ImGuiMouseCursor_Wait and ImGuiMouseCursor_Progress mouse cursor support. -// 2025-01-06: Avoid calling al_set_mouse_cursor() repeatedly since it appears to leak on on X11 (#8256). -// 2024-08-22: moved some OS/backend related function pointers from ImGuiIO to ImGuiPlatformIO: -// - io.GetClipboardTextFn -> platform_io.Platform_GetClipboardTextFn -// - io.SetClipboardTextFn -> platform_io.Platform_SetClipboardTextFn -// 2022-11-30: Renderer: Restoring using al_draw_indexed_prim() when Allegro version is >= 5.2.5. -// 2022-10-11: Using 'nullptr' instead of 'NULL' as per our switch to C++11. -// 2022-09-26: Inputs: Renamed ImGuiKey_ModXXX introduced in 1.87 to ImGuiMod_XXX (old names still supported). -// 2022-01-26: Inputs: replaced short-lived io.AddKeyModsEvent() (added two weeks ago) with io.AddKeyEvent() using ImGuiKey_ModXXX flags. Sorry for the confusion. -// 2022-01-17: Inputs: calling new io.AddMousePosEvent(), io.AddMouseButtonEvent(), io.AddMouseWheelEvent() API (1.87+). -// 2022-01-17: Inputs: always calling io.AddKeyModsEvent() next and before key event (not in NewFrame) to fix input queue with very low framerates. -// 2022-01-10: Inputs: calling new io.AddKeyEvent(), io.AddKeyModsEvent() + io.SetKeyEventNativeData() API (1.87+). Support for full ImGuiKey range. -// 2021-12-08: Renderer: Fixed mishandling of the ImDrawCmd::IdxOffset field! This is an old bug but it never had an effect until some internal rendering changes in 1.86. -// 2021-08-17: Calling io.AddFocusEvent() on ALLEGRO_EVENT_DISPLAY_SWITCH_OUT/ALLEGRO_EVENT_DISPLAY_SWITCH_IN events. -// 2021-06-29: Reorganized backend to pull data from a single structure to facilitate usage with multiple-contexts (all g_XXXX access changed to bd->XXXX). -// 2021-05-19: Renderer: Replaced direct access to ImDrawCmd::TextureId with a call to ImDrawCmd::GetTexID(). (will become a requirement) -// 2021-02-18: Change blending equation to preserve alpha in output buffer. -// 2020-08-10: Inputs: Fixed horizontal mouse wheel direction. -// 2019-12-05: Inputs: Added support for ImGuiMouseCursor_NotAllowed mouse cursor. -// 2019-07-21: Inputs: Added mapping for ImGuiKey_KeyPadEnter. -// 2019-05-11: Inputs: Don't filter character value from ALLEGRO_EVENT_KEY_CHAR before calling AddInputCharacter(). -// 2019-04-30: Renderer: Added support for special ImDrawCallback_ResetRenderState callback to reset render state. -// 2018-11-30: Platform: Added touchscreen support. -// 2018-11-30: Misc: Setting up io.BackendPlatformName/io.BackendRendererName so they can be displayed in the About Window. -// 2018-06-13: Platform: Added clipboard support (from Allegro 5.1.12). -// 2018-06-13: Renderer: Use draw_data->DisplayPos and draw_data->DisplaySize to setup projection matrix and clipping rectangle. -// 2018-06-13: Renderer: Stopped using al_draw_indexed_prim() as it is buggy in Allegro's DX9 backend. -// 2018-06-13: Renderer: Backup/restore transform and clipping rectangle. -// 2018-06-11: Misc: Setup io.BackendFlags ImGuiBackendFlags_HasMouseCursors flag + honor ImGuiConfigFlags_NoMouseCursorChange flag. -// 2018-04-18: Misc: Renamed file from imgui_impl_a5.cpp to imgui_impl_allegro5.cpp. -// 2018-04-18: Misc: Added support for 32-bit vertex indices to avoid conversion at runtime. Added imconfig_allegro5.h to enforce 32-bit indices when included from imgui.h. -// 2018-02-16: Misc: Obsoleted the io.RenderDrawListsFn callback and exposed ImGui_ImplAllegro5_RenderDrawData() in the .h file so you can call it yourself. -// 2018-02-06: Misc: Removed call to ImGui::Shutdown() which is not available from 1.60 WIP, user needs to call CreateContext/DestroyContext themselves. -// 2018-02-06: Inputs: Added mapping for ImGuiKey_Space. - -#include "imgui.h" -#ifndef IMGUI_DISABLE -#include "imgui_impl_allegro5.h" -#include // uint64_t -#include // memcpy - -// Allegro -#include -#include -#ifdef _WIN32 -#include -#endif -#define ALLEGRO_HAS_CLIPBOARD ((ALLEGRO_VERSION_INT & ~ALLEGRO_UNSTABLE_BIT) >= ((5 << 24) | (1 << 16) | (12 << 8))) // Clipboard only supported from Allegro 5.1.12 -#define ALLEGRO_HAS_DRAW_INDEXED_PRIM ((ALLEGRO_VERSION_INT & ~ALLEGRO_UNSTABLE_BIT) >= ((5 << 24) | (2 << 16) | ( 5 << 8))) // DX9 implementation of al_draw_indexed_prim() got fixed in Allegro 5.2.5 - -// Visual Studio warnings -#ifdef _MSC_VER -#pragma warning (disable: 4127) // condition expression is constant -#endif - -struct ImDrawVertAllegro -{ - ImVec2 pos; - ImVec2 uv; - ALLEGRO_COLOR col; -}; - -// FIXME-OPT: Unfortunately Allegro doesn't support 32-bit packed colors so we have to convert them to 4 float as well.. -// FIXME-OPT: Consider inlining al_map_rgba()? -// see https://github.com/liballeg/allegro5/blob/master/src/pixels.c#L554 -// and https://github.com/liballeg/allegro5/blob/master/include/allegro5/internal/aintern_pixels.h -#define DRAW_VERT_IMGUI_TO_ALLEGRO(DST, SRC) { (DST)->pos = (SRC)->pos; (DST)->uv = (SRC)->uv; unsigned char* c = (unsigned char*)&(SRC)->col; (DST)->col = al_map_rgba(c[0], c[1], c[2], c[3]); } - -// Allegro Data -struct ImGui_ImplAllegro5_Data -{ - ALLEGRO_DISPLAY* Display; - ALLEGRO_BITMAP* Texture; - double Time; - ALLEGRO_MOUSE_CURSOR* MouseCursorInvisible; - ALLEGRO_VERTEX_DECL* VertexDecl; - char* ClipboardTextData; - ImGuiMouseCursor LastCursor; - - ImVector BufVertices; - ImVector BufIndices; - - ImGui_ImplAllegro5_Data() { memset((void*)this, 0, sizeof(*this)); } -}; - -// Backend data stored in io.BackendPlatformUserData to allow support for multiple Dear ImGui contexts -// It is STRONGLY preferred that you use docking branch with multi-viewports (== single Dear ImGui context + multiple windows) instead of multiple Dear ImGui contexts. -// FIXME: multi-context support is not well tested and probably dysfunctional in this backend. -static ImGui_ImplAllegro5_Data* ImGui_ImplAllegro5_GetBackendData() { return ImGui::GetCurrentContext() ? (ImGui_ImplAllegro5_Data*)ImGui::GetIO().BackendPlatformUserData : nullptr; } - -static void ImGui_ImplAllegro5_SetupRenderState(ImDrawData* draw_data) -{ - // Setup blending - al_set_separate_blender(ALLEGRO_ADD, ALLEGRO_ALPHA, ALLEGRO_INVERSE_ALPHA, ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_INVERSE_ALPHA); - - // Setup orthographic projection matrix - // Our visible imgui space lies from draw_data->DisplayPos (top left) to draw_data->DisplayPos+data_data->DisplaySize (bottom right). - { - float L = draw_data->DisplayPos.x; - float R = draw_data->DisplayPos.x + draw_data->DisplaySize.x; - float T = draw_data->DisplayPos.y; - float B = draw_data->DisplayPos.y + draw_data->DisplaySize.y; - ALLEGRO_TRANSFORM transform; - al_identity_transform(&transform); - al_use_transform(&transform); - al_orthographic_transform(&transform, L, T, 1.0f, R, B, -1.0f); - al_use_projection_transform(&transform); - } -} - -// Render function. -void ImGui_ImplAllegro5_RenderDrawData(ImDrawData* draw_data) -{ - // Avoid rendering when minimized - if (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f) - return; - - // Catch up with texture updates. Most of the times, the list will have 1 element with an OK status, aka nothing to do. - // (This almost always points to ImGui::GetPlatformIO().Textures[] but is part of ImDrawData to allow overriding or disabling texture updates). - if (draw_data->Textures != nullptr) - for (ImTextureData* tex : *draw_data->Textures) - if (tex->Status != ImTextureStatus_OK) - ImGui_ImplAllegro5_UpdateTexture(tex); - - // Backup Allegro state that will be modified - ImGui_ImplAllegro5_Data* bd = ImGui_ImplAllegro5_GetBackendData(); - ALLEGRO_TRANSFORM last_transform = *al_get_current_transform(); - ALLEGRO_TRANSFORM last_projection_transform = *al_get_current_projection_transform(); - int last_clip_x, last_clip_y, last_clip_w, last_clip_h; - al_get_clipping_rectangle(&last_clip_x, &last_clip_y, &last_clip_w, &last_clip_h); - int last_blender_op, last_blender_src, last_blender_dst; - al_get_blender(&last_blender_op, &last_blender_src, &last_blender_dst); - - // Setup desired render state - ImGui_ImplAllegro5_SetupRenderState(draw_data); - - // Render command lists - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - - ImVector& vertices = bd->BufVertices; -#if ALLEGRO_HAS_DRAW_INDEXED_PRIM - vertices.resize(draw_list->VtxBuffer.Size); - for (int i = 0; i < draw_list->VtxBuffer.Size; i++) - { - const ImDrawVert* src_v = &draw_list->VtxBuffer[i]; - ImDrawVertAllegro* dst_v = &vertices[i]; - DRAW_VERT_IMGUI_TO_ALLEGRO(dst_v, src_v); - } - const int* indices = nullptr; - if (sizeof(ImDrawIdx) == 2) - { - // FIXME-OPT: Allegro doesn't support 16-bit indices. - // You can '#define ImDrawIdx int' in imconfig.h to request Dear ImGui to output 32-bit indices. - // Otherwise, we convert them from 16-bit to 32-bit at runtime here, which works perfectly but is a little wasteful. - bd->BufIndices.resize(draw_list->IdxBuffer.Size); - for (int i = 0; i < draw_list->IdxBuffer.Size; ++i) - bd->BufIndices[i] = (int)draw_list->IdxBuffer.Data[i]; - indices = bd->BufIndices.Data; - } - else if (sizeof(ImDrawIdx) == 4) - { - indices = (const int*)draw_list->IdxBuffer.Data; - } -#else - // Allegro's implementation of al_draw_indexed_prim() for DX9 was broken until 5.2.5. Unindex buffers ourselves while converting vertex format. - vertices.resize(draw_list->IdxBuffer.Size); - for (int i = 0; i < draw_list->IdxBuffer.Size; i++) - { - const ImDrawVert* src_v = &draw_list->VtxBuffer[draw_list->IdxBuffer[i]]; - ImDrawVertAllegro* dst_v = &vertices[i]; - DRAW_VERT_IMGUI_TO_ALLEGRO(dst_v, src_v); - } -#endif - - // Render command lists - ImVec2 clip_off = draw_data->DisplayPos; - for (int cmd_i = 0; cmd_i < draw_list->CmdBuffer.Size; cmd_i++) - { - const ImDrawCmd* pcmd = &draw_list->CmdBuffer[cmd_i]; - if (pcmd->UserCallback) - { - // User callback, registered via ImDrawList::AddCallback() - // (ImDrawCallback_ResetRenderState is a special callback value used by the user to request the renderer to reset render state.) - if (pcmd->UserCallback == ImDrawCallback_ResetRenderState) - ImGui_ImplAllegro5_SetupRenderState(draw_data); - else - pcmd->UserCallback(draw_list, pcmd); - } - else - { - // Project scissor/clipping rectangles into framebuffer space - ImVec2 clip_min(pcmd->ClipRect.x - clip_off.x, pcmd->ClipRect.y - clip_off.y); - ImVec2 clip_max(pcmd->ClipRect.z - clip_off.x, pcmd->ClipRect.w - clip_off.y); - if (clip_max.x <= clip_min.x || clip_max.y <= clip_min.y) - continue; - - // Apply scissor/clipping rectangle, Draw - ALLEGRO_BITMAP* texture = (ALLEGRO_BITMAP*)pcmd->GetTexID(); - al_set_clipping_rectangle(clip_min.x, clip_min.y, clip_max.x - clip_min.x, clip_max.y - clip_min.y); -#if ALLEGRO_HAS_DRAW_INDEXED_PRIM - al_draw_indexed_prim(&vertices[0], bd->VertexDecl, texture, &indices[pcmd->IdxOffset], pcmd->ElemCount, ALLEGRO_PRIM_TRIANGLE_LIST); -#else - al_draw_prim(&vertices[0], bd->VertexDecl, texture, pcmd->IdxOffset, pcmd->IdxOffset + pcmd->ElemCount, ALLEGRO_PRIM_TRIANGLE_LIST); -#endif - } - } - } - - // Restore modified Allegro state - al_set_blender(last_blender_op, last_blender_src, last_blender_dst); - al_set_clipping_rectangle(last_clip_x, last_clip_y, last_clip_w, last_clip_h); - al_use_transform(&last_transform); - al_use_projection_transform(&last_projection_transform); -} - -bool ImGui_ImplAllegro5_CreateDeviceObjects() -{ - ImGui_ImplAllegro5_Data* bd = ImGui_ImplAllegro5_GetBackendData(); - - // Create an invisible mouse cursor - // Because al_hide_mouse_cursor() seems to mess up with the actual inputs.. - ALLEGRO_BITMAP* mouse_cursor = al_create_bitmap(8, 8); - bd->MouseCursorInvisible = al_create_mouse_cursor(mouse_cursor, 0, 0); - al_destroy_bitmap(mouse_cursor); - - return true; -} - -void ImGui_ImplAllegro5_UpdateTexture(ImTextureData* tex) -{ - if (tex->Status == ImTextureStatus_WantCreate) - { - // Create and upload new texture to graphics system - //IMGUI_DEBUG_LOG("UpdateTexture #%03d: WantCreate %dx%d\n", tex->UniqueID, tex->Width, tex->Height); - IM_ASSERT(tex->TexID == ImTextureID_Invalid && tex->BackendUserData == nullptr); - IM_ASSERT(tex->Format == ImTextureFormat_RGBA32); - - // Create texture - // (Bilinear sampling is required by default. Set 'io.Fonts->Flags |= ImFontAtlasFlags_NoBakedLines' or 'style.AntiAliasedLinesUseTex = false' to allow point/nearest sampling) - const int new_bitmap_flags = al_get_new_bitmap_flags(); - int new_bitmap_format = al_get_new_bitmap_format(); - al_set_new_bitmap_flags(ALLEGRO_MEMORY_BITMAP | ALLEGRO_MIN_LINEAR | ALLEGRO_MAG_LINEAR); - al_set_new_bitmap_format(ALLEGRO_PIXEL_FORMAT_ABGR_8888_LE); - ALLEGRO_BITMAP* cpu_bitmap = al_create_bitmap(tex->Width, tex->Height); - al_set_new_bitmap_flags(new_bitmap_flags); - al_set_new_bitmap_format(new_bitmap_format); - IM_ASSERT(cpu_bitmap != nullptr && "Backend failed to create texture!"); - - // Upload pixels - ALLEGRO_LOCKED_REGION* locked_region = al_lock_bitmap(cpu_bitmap, al_get_bitmap_format(cpu_bitmap), ALLEGRO_LOCK_WRITEONLY); - IM_ASSERT(locked_region != nullptr && "Backend failed to create texture!"); - memcpy(locked_region->data, tex->GetPixels(), tex->GetSizeInBytes()); - al_unlock_bitmap(cpu_bitmap); - - // Convert software texture to hardware texture. - ALLEGRO_BITMAP* gpu_bitmap = al_clone_bitmap(cpu_bitmap); - al_destroy_bitmap(cpu_bitmap); - IM_ASSERT(gpu_bitmap != nullptr && "Backend failed to create texture!"); - - // Store identifiers - tex->SetTexID((ImTextureID)(intptr_t)gpu_bitmap); - tex->SetStatus(ImTextureStatus_OK); - } - else if (tex->Status == ImTextureStatus_WantUpdates) - { - // Update selected blocks. We only ever write to textures regions which have never been used before! - // This backend choose to use tex->Updates[] but you can use tex->UpdateRect to upload a single region. - ImTextureRect r = tex->UpdateRect; // Bounding box encompassing all individual updates - ALLEGRO_BITMAP* gpu_bitmap = (ALLEGRO_BITMAP*)(intptr_t)tex->TexID; - ALLEGRO_LOCKED_REGION* locked_region = al_lock_bitmap_region(gpu_bitmap, r.x, r.y, r.w, r.h, al_get_bitmap_format(gpu_bitmap), ALLEGRO_LOCK_WRITEONLY); - IM_ASSERT(locked_region && "Backend failed to update texture!"); - for (int y = 0; y < r.h; y++) - memcpy((unsigned char*)locked_region->data + locked_region->pitch * y, tex->GetPixelsAt(r.x, r.y + y), r.w * tex->BytesPerPixel); // dst, src, block pitch - al_unlock_bitmap(gpu_bitmap); - tex->SetStatus(ImTextureStatus_OK); - } - else if (tex->Status == ImTextureStatus_WantDestroy) - { - ALLEGRO_BITMAP* backend_tex = (ALLEGRO_BITMAP*)(intptr_t)tex->TexID; - if (backend_tex) - al_destroy_bitmap(backend_tex); - - // Clear identifiers and mark as destroyed (in order to allow e.g. calling InvalidateDeviceObjects while running) - tex->SetTexID(ImTextureID_Invalid); - tex->SetStatus(ImTextureStatus_Destroyed); - } -} - -void ImGui_ImplAllegro5_InvalidateDeviceObjects() -{ - ImGui_ImplAllegro5_Data* bd = ImGui_ImplAllegro5_GetBackendData(); - - // Destroy all textures - for (ImTextureData* tex : ImGui::GetPlatformIO().Textures) - if (tex->RefCount == 1) - { - tex->SetStatus(ImTextureStatus_WantDestroy); - ImGui_ImplAllegro5_UpdateTexture(tex); - } - - // Destroy mouse cursor - if (bd->MouseCursorInvisible) - { - al_destroy_mouse_cursor(bd->MouseCursorInvisible); - bd->MouseCursorInvisible = nullptr; - } -} - -#if ALLEGRO_HAS_CLIPBOARD -static const char* ImGui_ImplAllegro5_GetClipboardText(ImGuiContext*) -{ - ImGui_ImplAllegro5_Data* bd = ImGui_ImplAllegro5_GetBackendData(); - if (bd->ClipboardTextData) - al_free(bd->ClipboardTextData); - bd->ClipboardTextData = al_get_clipboard_text(bd->Display); - return bd->ClipboardTextData; -} - -static void ImGui_ImplAllegro5_SetClipboardText(ImGuiContext*, const char* text) -{ - ImGui_ImplAllegro5_Data* bd = ImGui_ImplAllegro5_GetBackendData(); - al_set_clipboard_text(bd->Display, text); -} -#endif - -// Not static to allow third-party code to use that if they want to (but undocumented) -ImGuiKey ImGui_ImplAllegro5_KeyCodeToImGuiKey(int key_code); -ImGuiKey ImGui_ImplAllegro5_KeyCodeToImGuiKey(int key_code) -{ - switch (key_code) - { - case ALLEGRO_KEY_TAB: return ImGuiKey_Tab; - case ALLEGRO_KEY_LEFT: return ImGuiKey_LeftArrow; - case ALLEGRO_KEY_RIGHT: return ImGuiKey_RightArrow; - case ALLEGRO_KEY_UP: return ImGuiKey_UpArrow; - case ALLEGRO_KEY_DOWN: return ImGuiKey_DownArrow; - case ALLEGRO_KEY_PGUP: return ImGuiKey_PageUp; - case ALLEGRO_KEY_PGDN: return ImGuiKey_PageDown; - case ALLEGRO_KEY_HOME: return ImGuiKey_Home; - case ALLEGRO_KEY_END: return ImGuiKey_End; - case ALLEGRO_KEY_INSERT: return ImGuiKey_Insert; - case ALLEGRO_KEY_DELETE: return ImGuiKey_Delete; - case ALLEGRO_KEY_BACKSPACE: return ImGuiKey_Backspace; - case ALLEGRO_KEY_SPACE: return ImGuiKey_Space; - case ALLEGRO_KEY_ENTER: return ImGuiKey_Enter; - case ALLEGRO_KEY_ESCAPE: return ImGuiKey_Escape; - case ALLEGRO_KEY_QUOTE: return ImGuiKey_Apostrophe; - case ALLEGRO_KEY_COMMA: return ImGuiKey_Comma; - case ALLEGRO_KEY_MINUS: return ImGuiKey_Minus; - case ALLEGRO_KEY_FULLSTOP: return ImGuiKey_Period; - case ALLEGRO_KEY_SLASH: return ImGuiKey_Slash; - case ALLEGRO_KEY_SEMICOLON: return ImGuiKey_Semicolon; - case ALLEGRO_KEY_EQUALS: return ImGuiKey_Equal; - case ALLEGRO_KEY_OPENBRACE: return ImGuiKey_LeftBracket; - case ALLEGRO_KEY_BACKSLASH: return ImGuiKey_Backslash; - case ALLEGRO_KEY_CLOSEBRACE: return ImGuiKey_RightBracket; - case ALLEGRO_KEY_TILDE: return ImGuiKey_GraveAccent; - case ALLEGRO_KEY_CAPSLOCK: return ImGuiKey_CapsLock; - case ALLEGRO_KEY_SCROLLLOCK: return ImGuiKey_ScrollLock; - case ALLEGRO_KEY_NUMLOCK: return ImGuiKey_NumLock; - case ALLEGRO_KEY_PRINTSCREEN: return ImGuiKey_PrintScreen; - case ALLEGRO_KEY_PAUSE: return ImGuiKey_Pause; - case ALLEGRO_KEY_PAD_0: return ImGuiKey_Keypad0; - case ALLEGRO_KEY_PAD_1: return ImGuiKey_Keypad1; - case ALLEGRO_KEY_PAD_2: return ImGuiKey_Keypad2; - case ALLEGRO_KEY_PAD_3: return ImGuiKey_Keypad3; - case ALLEGRO_KEY_PAD_4: return ImGuiKey_Keypad4; - case ALLEGRO_KEY_PAD_5: return ImGuiKey_Keypad5; - case ALLEGRO_KEY_PAD_6: return ImGuiKey_Keypad6; - case ALLEGRO_KEY_PAD_7: return ImGuiKey_Keypad7; - case ALLEGRO_KEY_PAD_8: return ImGuiKey_Keypad8; - case ALLEGRO_KEY_PAD_9: return ImGuiKey_Keypad9; - case ALLEGRO_KEY_PAD_DELETE: return ImGuiKey_KeypadDecimal; - case ALLEGRO_KEY_PAD_SLASH: return ImGuiKey_KeypadDivide; - case ALLEGRO_KEY_PAD_ASTERISK: return ImGuiKey_KeypadMultiply; - case ALLEGRO_KEY_PAD_MINUS: return ImGuiKey_KeypadSubtract; - case ALLEGRO_KEY_PAD_PLUS: return ImGuiKey_KeypadAdd; - case ALLEGRO_KEY_PAD_ENTER: return ImGuiKey_KeypadEnter; - case ALLEGRO_KEY_PAD_EQUALS: return ImGuiKey_KeypadEqual; - case ALLEGRO_KEY_LCTRL: return ImGuiKey_LeftCtrl; - case ALLEGRO_KEY_LSHIFT: return ImGuiKey_LeftShift; - case ALLEGRO_KEY_ALT: return ImGuiKey_LeftAlt; - case ALLEGRO_KEY_LWIN: return ImGuiKey_LeftSuper; - case ALLEGRO_KEY_RCTRL: return ImGuiKey_RightCtrl; - case ALLEGRO_KEY_RSHIFT: return ImGuiKey_RightShift; - case ALLEGRO_KEY_ALTGR: return ImGuiKey_RightAlt; - case ALLEGRO_KEY_RWIN: return ImGuiKey_RightSuper; - case ALLEGRO_KEY_MENU: return ImGuiKey_Menu; - case ALLEGRO_KEY_0: return ImGuiKey_0; - case ALLEGRO_KEY_1: return ImGuiKey_1; - case ALLEGRO_KEY_2: return ImGuiKey_2; - case ALLEGRO_KEY_3: return ImGuiKey_3; - case ALLEGRO_KEY_4: return ImGuiKey_4; - case ALLEGRO_KEY_5: return ImGuiKey_5; - case ALLEGRO_KEY_6: return ImGuiKey_6; - case ALLEGRO_KEY_7: return ImGuiKey_7; - case ALLEGRO_KEY_8: return ImGuiKey_8; - case ALLEGRO_KEY_9: return ImGuiKey_9; - case ALLEGRO_KEY_A: return ImGuiKey_A; - case ALLEGRO_KEY_B: return ImGuiKey_B; - case ALLEGRO_KEY_C: return ImGuiKey_C; - case ALLEGRO_KEY_D: return ImGuiKey_D; - case ALLEGRO_KEY_E: return ImGuiKey_E; - case ALLEGRO_KEY_F: return ImGuiKey_F; - case ALLEGRO_KEY_G: return ImGuiKey_G; - case ALLEGRO_KEY_H: return ImGuiKey_H; - case ALLEGRO_KEY_I: return ImGuiKey_I; - case ALLEGRO_KEY_J: return ImGuiKey_J; - case ALLEGRO_KEY_K: return ImGuiKey_K; - case ALLEGRO_KEY_L: return ImGuiKey_L; - case ALLEGRO_KEY_M: return ImGuiKey_M; - case ALLEGRO_KEY_N: return ImGuiKey_N; - case ALLEGRO_KEY_O: return ImGuiKey_O; - case ALLEGRO_KEY_P: return ImGuiKey_P; - case ALLEGRO_KEY_Q: return ImGuiKey_Q; - case ALLEGRO_KEY_R: return ImGuiKey_R; - case ALLEGRO_KEY_S: return ImGuiKey_S; - case ALLEGRO_KEY_T: return ImGuiKey_T; - case ALLEGRO_KEY_U: return ImGuiKey_U; - case ALLEGRO_KEY_V: return ImGuiKey_V; - case ALLEGRO_KEY_W: return ImGuiKey_W; - case ALLEGRO_KEY_X: return ImGuiKey_X; - case ALLEGRO_KEY_Y: return ImGuiKey_Y; - case ALLEGRO_KEY_Z: return ImGuiKey_Z; - case ALLEGRO_KEY_F1: return ImGuiKey_F1; - case ALLEGRO_KEY_F2: return ImGuiKey_F2; - case ALLEGRO_KEY_F3: return ImGuiKey_F3; - case ALLEGRO_KEY_F4: return ImGuiKey_F4; - case ALLEGRO_KEY_F5: return ImGuiKey_F5; - case ALLEGRO_KEY_F6: return ImGuiKey_F6; - case ALLEGRO_KEY_F7: return ImGuiKey_F7; - case ALLEGRO_KEY_F8: return ImGuiKey_F8; - case ALLEGRO_KEY_F9: return ImGuiKey_F9; - case ALLEGRO_KEY_F10: return ImGuiKey_F10; - case ALLEGRO_KEY_F11: return ImGuiKey_F11; - case ALLEGRO_KEY_F12: return ImGuiKey_F12; - default: return ImGuiKey_None; - } -} - -bool ImGui_ImplAllegro5_Init(ALLEGRO_DISPLAY* display) -{ - ImGuiIO& io = ImGui::GetIO(); - IMGUI_CHECKVERSION(); - IM_ASSERT(io.BackendPlatformUserData == nullptr && "Already initialized a platform backend!"); - - // Setup backend capabilities flags - ImGui_ImplAllegro5_Data* bd = IM_NEW(ImGui_ImplAllegro5_Data)(); - io.BackendPlatformUserData = (void*)bd; - io.BackendPlatformName = io.BackendRendererName = "imgui_impl_allegro5"; - io.BackendFlags |= ImGuiBackendFlags_HasMouseCursors; // We can honor GetMouseCursor() values (optional) - io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures; // We can honor ImGuiPlatformIO::Textures[] requests during render. - - bd->Display = display; - bd->LastCursor = ALLEGRO_SYSTEM_MOUSE_CURSOR_NONE; - - // Create custom vertex declaration. - // Unfortunately Allegro doesn't support 32-bit packed colors so we have to convert them to 4 floats. - // We still use a custom declaration to use 'ALLEGRO_PRIM_TEX_COORD' instead of 'ALLEGRO_PRIM_TEX_COORD_PIXEL' else we can't do a reliable conversion. - ALLEGRO_VERTEX_ELEMENT elems[] = - { - { ALLEGRO_PRIM_POSITION, ALLEGRO_PRIM_FLOAT_2, offsetof(ImDrawVertAllegro, pos) }, - { ALLEGRO_PRIM_TEX_COORD, ALLEGRO_PRIM_FLOAT_2, offsetof(ImDrawVertAllegro, uv) }, - { ALLEGRO_PRIM_COLOR_ATTR, 0, offsetof(ImDrawVertAllegro, col) }, - { 0, 0, 0 } - }; - bd->VertexDecl = al_create_vertex_decl(elems, sizeof(ImDrawVertAllegro)); - -#if ALLEGRO_HAS_CLIPBOARD - ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); - platform_io.Platform_SetClipboardTextFn = ImGui_ImplAllegro5_SetClipboardText; - platform_io.Platform_GetClipboardTextFn = ImGui_ImplAllegro5_GetClipboardText; -#endif - - return true; -} - -void ImGui_ImplAllegro5_Shutdown() -{ - ImGui_ImplAllegro5_Data* bd = ImGui_ImplAllegro5_GetBackendData(); - IM_ASSERT(bd != nullptr && "No platform backend to shutdown, or already shutdown?"); - ImGuiIO& io = ImGui::GetIO(); - - ImGui_ImplAllegro5_InvalidateDeviceObjects(); - if (bd->VertexDecl) - al_destroy_vertex_decl(bd->VertexDecl); - if (bd->ClipboardTextData) - al_free(bd->ClipboardTextData); - - io.BackendPlatformName = io.BackendRendererName = nullptr; - io.BackendPlatformUserData = nullptr; - io.BackendFlags &= ~(ImGuiBackendFlags_HasMouseCursors | ImGuiBackendFlags_RendererHasTextures); - IM_DELETE(bd); -} - -// ev->keyboard.modifiers seems always zero so using that... -static void ImGui_ImplAllegro5_UpdateKeyModifiers() -{ - ImGuiIO& io = ImGui::GetIO(); - ALLEGRO_KEYBOARD_STATE keys; - al_get_keyboard_state(&keys); - io.AddKeyEvent(ImGuiMod_Ctrl, al_key_down(&keys, ALLEGRO_KEY_LCTRL) || al_key_down(&keys, ALLEGRO_KEY_RCTRL)); - io.AddKeyEvent(ImGuiMod_Shift, al_key_down(&keys, ALLEGRO_KEY_LSHIFT) || al_key_down(&keys, ALLEGRO_KEY_RSHIFT)); - io.AddKeyEvent(ImGuiMod_Alt, al_key_down(&keys, ALLEGRO_KEY_ALT) || al_key_down(&keys, ALLEGRO_KEY_ALTGR)); - io.AddKeyEvent(ImGuiMod_Super, al_key_down(&keys, ALLEGRO_KEY_LWIN) || al_key_down(&keys, ALLEGRO_KEY_RWIN)); -} - -// You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. -// - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. -// - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. -// Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. -bool ImGui_ImplAllegro5_ProcessEvent(ALLEGRO_EVENT* ev) -{ - ImGui_ImplAllegro5_Data* bd = ImGui_ImplAllegro5_GetBackendData(); - IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplAllegro5_Init()?"); - ImGuiIO& io = ImGui::GetIO(); - - switch (ev->type) - { - case ALLEGRO_EVENT_MOUSE_AXES: - if (ev->mouse.display == bd->Display) - { - io.AddMousePosEvent(ev->mouse.x, ev->mouse.y); - io.AddMouseWheelEvent(-ev->mouse.dw, ev->mouse.dz); - } - return true; - case ALLEGRO_EVENT_MOUSE_BUTTON_DOWN: - case ALLEGRO_EVENT_MOUSE_BUTTON_UP: - if (ev->mouse.display == bd->Display && ev->mouse.button > 0 && ev->mouse.button <= 5) - io.AddMouseButtonEvent(ev->mouse.button - 1, ev->type == ALLEGRO_EVENT_MOUSE_BUTTON_DOWN); - return true; - case ALLEGRO_EVENT_TOUCH_MOVE: - if (ev->touch.display == bd->Display) - io.AddMousePosEvent(ev->touch.x, ev->touch.y); - return true; - case ALLEGRO_EVENT_TOUCH_BEGIN: - case ALLEGRO_EVENT_TOUCH_END: - case ALLEGRO_EVENT_TOUCH_CANCEL: - if (ev->touch.display == bd->Display && ev->touch.primary) - io.AddMouseButtonEvent(0, ev->type == ALLEGRO_EVENT_TOUCH_BEGIN); - return true; - case ALLEGRO_EVENT_MOUSE_LEAVE_DISPLAY: - if (ev->mouse.display == bd->Display) - io.AddMousePosEvent(-FLT_MAX, -FLT_MAX); - return true; - case ALLEGRO_EVENT_KEY_CHAR: - if (ev->keyboard.display == bd->Display) - if (ev->keyboard.unichar != 0) - io.AddInputCharacter((unsigned int)ev->keyboard.unichar); - return true; - case ALLEGRO_EVENT_KEY_DOWN: - case ALLEGRO_EVENT_KEY_UP: - if (ev->keyboard.display == bd->Display) - { - ImGui_ImplAllegro5_UpdateKeyModifiers(); - ImGuiKey key = ImGui_ImplAllegro5_KeyCodeToImGuiKey(ev->keyboard.keycode); - io.AddKeyEvent(key, (ev->type == ALLEGRO_EVENT_KEY_DOWN)); - io.SetKeyEventNativeData(key, ev->keyboard.keycode, -1); // To support legacy indexing (<1.87 user code) - } - return true; - case ALLEGRO_EVENT_DISPLAY_SWITCH_OUT: - if (ev->display.source == bd->Display) - io.AddFocusEvent(false); - return true; - case ALLEGRO_EVENT_DISPLAY_SWITCH_IN: - if (ev->display.source == bd->Display) - { - io.AddFocusEvent(true); -#if defined(ALLEGRO_UNSTABLE) - al_clear_keyboard_state(bd->Display); -#endif - } - return true; - } - return false; -} - -static void ImGui_ImplAllegro5_UpdateMouseCursor() -{ - ImGuiIO& io = ImGui::GetIO(); - if (io.ConfigFlags & ImGuiConfigFlags_NoMouseCursorChange) - return; - - ImGui_ImplAllegro5_Data* bd = ImGui_ImplAllegro5_GetBackendData(); - ImGuiMouseCursor imgui_cursor = ImGui::GetMouseCursor(); - - // Hide OS mouse cursor if imgui is drawing it - if (io.MouseDrawCursor) - imgui_cursor = ImGuiMouseCursor_None; - - if (bd->LastCursor == imgui_cursor) - return; - bd->LastCursor = imgui_cursor; - if (imgui_cursor == ImGuiMouseCursor_None) - { - al_set_mouse_cursor(bd->Display, bd->MouseCursorInvisible); - } - else - { - ALLEGRO_SYSTEM_MOUSE_CURSOR cursor_id = ALLEGRO_SYSTEM_MOUSE_CURSOR_DEFAULT; - switch (imgui_cursor) - { - case ImGuiMouseCursor_TextInput: cursor_id = ALLEGRO_SYSTEM_MOUSE_CURSOR_EDIT; break; - case ImGuiMouseCursor_ResizeAll: cursor_id = ALLEGRO_SYSTEM_MOUSE_CURSOR_MOVE; break; - case ImGuiMouseCursor_ResizeNS: cursor_id = ALLEGRO_SYSTEM_MOUSE_CURSOR_RESIZE_N; break; - case ImGuiMouseCursor_ResizeEW: cursor_id = ALLEGRO_SYSTEM_MOUSE_CURSOR_RESIZE_E; break; - case ImGuiMouseCursor_ResizeNESW: cursor_id = ALLEGRO_SYSTEM_MOUSE_CURSOR_RESIZE_NE; break; - case ImGuiMouseCursor_ResizeNWSE: cursor_id = ALLEGRO_SYSTEM_MOUSE_CURSOR_RESIZE_NW; break; - case ImGuiMouseCursor_Wait: cursor_id = ALLEGRO_SYSTEM_MOUSE_CURSOR_BUSY; break; - case ImGuiMouseCursor_Progress: cursor_id = ALLEGRO_SYSTEM_MOUSE_CURSOR_PROGRESS; break; - case ImGuiMouseCursor_NotAllowed: cursor_id = ALLEGRO_SYSTEM_MOUSE_CURSOR_UNAVAILABLE; break; - } - al_set_system_mouse_cursor(bd->Display, cursor_id); - } -} - -void ImGui_ImplAllegro5_NewFrame() -{ - ImGui_ImplAllegro5_Data* bd = ImGui_ImplAllegro5_GetBackendData(); - IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplAllegro5_Init()?"); - - if (!bd->MouseCursorInvisible) - ImGui_ImplAllegro5_CreateDeviceObjects(); - - // Setup display size (every frame to accommodate for window resizing) - ImGuiIO& io = ImGui::GetIO(); - int w, h; - w = al_get_display_width(bd->Display); - h = al_get_display_height(bd->Display); - io.DisplaySize = ImVec2((float)w, (float)h); - - // Setup time step - double current_time = al_get_time(); - io.DeltaTime = bd->Time > 0.0 ? (float)(current_time - bd->Time) : (float)(1.0f / 60.0f); - bd->Time = current_time; - - // Setup mouse cursor shape - ImGui_ImplAllegro5_UpdateMouseCursor(); -} - -//----------------------------------------------------------------------------- - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_allegro5.h b/libs/imgui-1.92.1/backends/imgui_impl_allegro5.h deleted file mode 100644 index 421bbf1..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_allegro5.h +++ /dev/null @@ -1,43 +0,0 @@ -// dear imgui: Renderer + Platform Backend for Allegro 5 -// (Info: Allegro 5 is a cross-platform general purpose library for handling windows, inputs, graphics, etc.) - -// Implemented features: -// [X] Renderer: User texture binding. Use 'ALLEGRO_BITMAP*' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). -// [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy ALLEGRO_KEY_* values are obsolete since 1.87 and not supported since 1.91.5] -// [X] Platform: Clipboard support (from Allegro 5.1.12). -// [X] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. -// Missing features or Issues: -// [ ] Renderer: The renderer is suboptimal as we need to unindex our buffers and convert vertices manually. -// [ ] Platform: Missing gamepad support. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#pragma once -#include "imgui.h" // IMGUI_IMPL_API -#ifndef IMGUI_DISABLE - -struct ALLEGRO_DISPLAY; -union ALLEGRO_EVENT; - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplAllegro5_Init(ALLEGRO_DISPLAY* display); -IMGUI_IMPL_API void ImGui_ImplAllegro5_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplAllegro5_NewFrame(); -IMGUI_IMPL_API void ImGui_ImplAllegro5_RenderDrawData(ImDrawData* draw_data); -IMGUI_IMPL_API bool ImGui_ImplAllegro5_ProcessEvent(ALLEGRO_EVENT* event); - -// Use if you want to reset your rendering device without losing Dear ImGui state. -IMGUI_IMPL_API bool ImGui_ImplAllegro5_CreateDeviceObjects(); -IMGUI_IMPL_API void ImGui_ImplAllegro5_InvalidateDeviceObjects(); - -// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = NULL to handle this manually. -IMGUI_IMPL_API void ImGui_ImplAllegro5_UpdateTexture(ImTextureData* tex); - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_android.cpp b/libs/imgui-1.92.1/backends/imgui_impl_android.cpp deleted file mode 100644 index a76de1c..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_android.cpp +++ /dev/null @@ -1,308 +0,0 @@ -// dear imgui: Platform Binding for Android native app -// This needs to be used along with the OpenGL 3 Renderer (imgui_impl_opengl3) - -// Implemented features: -// [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy AKEYCODE_* values are obsolete since 1.87 and not supported since 1.91.5] -// [X] Platform: Mouse support. Can discriminate Mouse/TouchScreen/Pen. -// Missing features or Issues: -// [ ] Platform: Clipboard support. -// [ ] Platform: Gamepad support. -// [ ] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. FIXME: Check if this is even possible with Android. -// Important: -// - Consider using SDL or GLFW backend on Android, which will be more full-featured than this. -// - FIXME: On-screen keyboard currently needs to be enabled by the application (see examples/ and issue #3446) -// - FIXME: Unicode character inputs needs to be passed by Dear ImGui by the application (see examples/ and issue #3446) - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// CHANGELOG -// (minor and older changes stripped away, please see git history for details) -// 2022-09-26: Inputs: Renamed ImGuiKey_ModXXX introduced in 1.87 to ImGuiMod_XXX (old names still supported). -// 2022-01-26: Inputs: replaced short-lived io.AddKeyModsEvent() (added two weeks ago) with io.AddKeyEvent() using ImGuiKey_ModXXX flags. Sorry for the confusion. -// 2022-01-17: Inputs: calling new io.AddMousePosEvent(), io.AddMouseButtonEvent(), io.AddMouseWheelEvent() API (1.87+). -// 2022-01-10: Inputs: calling new io.AddKeyEvent(), io.AddKeyModsEvent() + io.SetKeyEventNativeData() API (1.87+). Support for full ImGuiKey range. -// 2021-03-04: Initial version. - -#include "imgui.h" -#ifndef IMGUI_DISABLE -#include "imgui_impl_android.h" -#include -#include -#include -#include -#include - -// Android data -static double g_Time = 0.0; -static ANativeWindow* g_Window; -static char g_LogTag[] = "ImGuiExample"; - -static ImGuiKey ImGui_ImplAndroid_KeyCodeToImGuiKey(int32_t key_code) -{ - switch (key_code) - { - case AKEYCODE_TAB: return ImGuiKey_Tab; - case AKEYCODE_DPAD_LEFT: return ImGuiKey_LeftArrow; - case AKEYCODE_DPAD_RIGHT: return ImGuiKey_RightArrow; - case AKEYCODE_DPAD_UP: return ImGuiKey_UpArrow; - case AKEYCODE_DPAD_DOWN: return ImGuiKey_DownArrow; - case AKEYCODE_PAGE_UP: return ImGuiKey_PageUp; - case AKEYCODE_PAGE_DOWN: return ImGuiKey_PageDown; - case AKEYCODE_MOVE_HOME: return ImGuiKey_Home; - case AKEYCODE_MOVE_END: return ImGuiKey_End; - case AKEYCODE_INSERT: return ImGuiKey_Insert; - case AKEYCODE_FORWARD_DEL: return ImGuiKey_Delete; - case AKEYCODE_DEL: return ImGuiKey_Backspace; - case AKEYCODE_SPACE: return ImGuiKey_Space; - case AKEYCODE_ENTER: return ImGuiKey_Enter; - case AKEYCODE_ESCAPE: return ImGuiKey_Escape; - case AKEYCODE_APOSTROPHE: return ImGuiKey_Apostrophe; - case AKEYCODE_COMMA: return ImGuiKey_Comma; - case AKEYCODE_MINUS: return ImGuiKey_Minus; - case AKEYCODE_PERIOD: return ImGuiKey_Period; - case AKEYCODE_SLASH: return ImGuiKey_Slash; - case AKEYCODE_SEMICOLON: return ImGuiKey_Semicolon; - case AKEYCODE_EQUALS: return ImGuiKey_Equal; - case AKEYCODE_LEFT_BRACKET: return ImGuiKey_LeftBracket; - case AKEYCODE_BACKSLASH: return ImGuiKey_Backslash; - case AKEYCODE_RIGHT_BRACKET: return ImGuiKey_RightBracket; - case AKEYCODE_GRAVE: return ImGuiKey_GraveAccent; - case AKEYCODE_CAPS_LOCK: return ImGuiKey_CapsLock; - case AKEYCODE_SCROLL_LOCK: return ImGuiKey_ScrollLock; - case AKEYCODE_NUM_LOCK: return ImGuiKey_NumLock; - case AKEYCODE_SYSRQ: return ImGuiKey_PrintScreen; - case AKEYCODE_BREAK: return ImGuiKey_Pause; - case AKEYCODE_NUMPAD_0: return ImGuiKey_Keypad0; - case AKEYCODE_NUMPAD_1: return ImGuiKey_Keypad1; - case AKEYCODE_NUMPAD_2: return ImGuiKey_Keypad2; - case AKEYCODE_NUMPAD_3: return ImGuiKey_Keypad3; - case AKEYCODE_NUMPAD_4: return ImGuiKey_Keypad4; - case AKEYCODE_NUMPAD_5: return ImGuiKey_Keypad5; - case AKEYCODE_NUMPAD_6: return ImGuiKey_Keypad6; - case AKEYCODE_NUMPAD_7: return ImGuiKey_Keypad7; - case AKEYCODE_NUMPAD_8: return ImGuiKey_Keypad8; - case AKEYCODE_NUMPAD_9: return ImGuiKey_Keypad9; - case AKEYCODE_NUMPAD_DOT: return ImGuiKey_KeypadDecimal; - case AKEYCODE_NUMPAD_DIVIDE: return ImGuiKey_KeypadDivide; - case AKEYCODE_NUMPAD_MULTIPLY: return ImGuiKey_KeypadMultiply; - case AKEYCODE_NUMPAD_SUBTRACT: return ImGuiKey_KeypadSubtract; - case AKEYCODE_NUMPAD_ADD: return ImGuiKey_KeypadAdd; - case AKEYCODE_NUMPAD_ENTER: return ImGuiKey_KeypadEnter; - case AKEYCODE_NUMPAD_EQUALS: return ImGuiKey_KeypadEqual; - case AKEYCODE_CTRL_LEFT: return ImGuiKey_LeftCtrl; - case AKEYCODE_SHIFT_LEFT: return ImGuiKey_LeftShift; - case AKEYCODE_ALT_LEFT: return ImGuiKey_LeftAlt; - case AKEYCODE_META_LEFT: return ImGuiKey_LeftSuper; - case AKEYCODE_CTRL_RIGHT: return ImGuiKey_RightCtrl; - case AKEYCODE_SHIFT_RIGHT: return ImGuiKey_RightShift; - case AKEYCODE_ALT_RIGHT: return ImGuiKey_RightAlt; - case AKEYCODE_META_RIGHT: return ImGuiKey_RightSuper; - case AKEYCODE_MENU: return ImGuiKey_Menu; - case AKEYCODE_0: return ImGuiKey_0; - case AKEYCODE_1: return ImGuiKey_1; - case AKEYCODE_2: return ImGuiKey_2; - case AKEYCODE_3: return ImGuiKey_3; - case AKEYCODE_4: return ImGuiKey_4; - case AKEYCODE_5: return ImGuiKey_5; - case AKEYCODE_6: return ImGuiKey_6; - case AKEYCODE_7: return ImGuiKey_7; - case AKEYCODE_8: return ImGuiKey_8; - case AKEYCODE_9: return ImGuiKey_9; - case AKEYCODE_A: return ImGuiKey_A; - case AKEYCODE_B: return ImGuiKey_B; - case AKEYCODE_C: return ImGuiKey_C; - case AKEYCODE_D: return ImGuiKey_D; - case AKEYCODE_E: return ImGuiKey_E; - case AKEYCODE_F: return ImGuiKey_F; - case AKEYCODE_G: return ImGuiKey_G; - case AKEYCODE_H: return ImGuiKey_H; - case AKEYCODE_I: return ImGuiKey_I; - case AKEYCODE_J: return ImGuiKey_J; - case AKEYCODE_K: return ImGuiKey_K; - case AKEYCODE_L: return ImGuiKey_L; - case AKEYCODE_M: return ImGuiKey_M; - case AKEYCODE_N: return ImGuiKey_N; - case AKEYCODE_O: return ImGuiKey_O; - case AKEYCODE_P: return ImGuiKey_P; - case AKEYCODE_Q: return ImGuiKey_Q; - case AKEYCODE_R: return ImGuiKey_R; - case AKEYCODE_S: return ImGuiKey_S; - case AKEYCODE_T: return ImGuiKey_T; - case AKEYCODE_U: return ImGuiKey_U; - case AKEYCODE_V: return ImGuiKey_V; - case AKEYCODE_W: return ImGuiKey_W; - case AKEYCODE_X: return ImGuiKey_X; - case AKEYCODE_Y: return ImGuiKey_Y; - case AKEYCODE_Z: return ImGuiKey_Z; - case AKEYCODE_F1: return ImGuiKey_F1; - case AKEYCODE_F2: return ImGuiKey_F2; - case AKEYCODE_F3: return ImGuiKey_F3; - case AKEYCODE_F4: return ImGuiKey_F4; - case AKEYCODE_F5: return ImGuiKey_F5; - case AKEYCODE_F6: return ImGuiKey_F6; - case AKEYCODE_F7: return ImGuiKey_F7; - case AKEYCODE_F8: return ImGuiKey_F8; - case AKEYCODE_F9: return ImGuiKey_F9; - case AKEYCODE_F10: return ImGuiKey_F10; - case AKEYCODE_F11: return ImGuiKey_F11; - case AKEYCODE_F12: return ImGuiKey_F12; - default: return ImGuiKey_None; - } -} - -int32_t ImGui_ImplAndroid_HandleInputEvent(const AInputEvent* input_event) -{ - ImGuiIO& io = ImGui::GetIO(); - int32_t event_type = AInputEvent_getType(input_event); - switch (event_type) - { - case AINPUT_EVENT_TYPE_KEY: - { - int32_t event_key_code = AKeyEvent_getKeyCode(input_event); - int32_t event_scan_code = AKeyEvent_getScanCode(input_event); - int32_t event_action = AKeyEvent_getAction(input_event); - int32_t event_meta_state = AKeyEvent_getMetaState(input_event); - - io.AddKeyEvent(ImGuiMod_Ctrl, (event_meta_state & AMETA_CTRL_ON) != 0); - io.AddKeyEvent(ImGuiMod_Shift, (event_meta_state & AMETA_SHIFT_ON) != 0); - io.AddKeyEvent(ImGuiMod_Alt, (event_meta_state & AMETA_ALT_ON) != 0); - io.AddKeyEvent(ImGuiMod_Super, (event_meta_state & AMETA_META_ON) != 0); - - switch (event_action) - { - // FIXME: AKEY_EVENT_ACTION_DOWN and AKEY_EVENT_ACTION_UP occur at once as soon as a touch pointer - // goes up from a key. We use a simple key event queue/ and process one event per key per frame in - // ImGui_ImplAndroid_NewFrame()...or consider using IO queue, if suitable: https://github.com/ocornut/imgui/issues/2787 - case AKEY_EVENT_ACTION_DOWN: - case AKEY_EVENT_ACTION_UP: - { - ImGuiKey key = ImGui_ImplAndroid_KeyCodeToImGuiKey(event_key_code); - if (key != ImGuiKey_None) - { - io.AddKeyEvent(key, event_action == AKEY_EVENT_ACTION_DOWN); - io.SetKeyEventNativeData(key, event_key_code, event_scan_code); - } - - break; - } - default: - break; - } - break; - } - case AINPUT_EVENT_TYPE_MOTION: - { - int32_t event_action = AMotionEvent_getAction(input_event); - int32_t event_pointer_index = (event_action & AMOTION_EVENT_ACTION_POINTER_INDEX_MASK) >> AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT; - event_action &= AMOTION_EVENT_ACTION_MASK; - - switch (AMotionEvent_getToolType(input_event, event_pointer_index)) - { - case AMOTION_EVENT_TOOL_TYPE_MOUSE: - io.AddMouseSourceEvent(ImGuiMouseSource_Mouse); - break; - case AMOTION_EVENT_TOOL_TYPE_STYLUS: - case AMOTION_EVENT_TOOL_TYPE_ERASER: - io.AddMouseSourceEvent(ImGuiMouseSource_Pen); - break; - case AMOTION_EVENT_TOOL_TYPE_FINGER: - default: - io.AddMouseSourceEvent(ImGuiMouseSource_TouchScreen); - break; - } - - switch (event_action) - { - case AMOTION_EVENT_ACTION_DOWN: - case AMOTION_EVENT_ACTION_UP: - { - // Physical mouse buttons (and probably other physical devices) also invoke the actions AMOTION_EVENT_ACTION_DOWN/_UP, - // but we have to process them separately to identify the actual button pressed. This is done below via - // AMOTION_EVENT_ACTION_BUTTON_PRESS/_RELEASE. Here, we only process "FINGER" input (and "UNKNOWN", as a fallback). - int tool_type = AMotionEvent_getToolType(input_event, event_pointer_index); - if (tool_type == AMOTION_EVENT_TOOL_TYPE_FINGER || tool_type == AMOTION_EVENT_TOOL_TYPE_UNKNOWN) - { - io.AddMousePosEvent(AMotionEvent_getX(input_event, event_pointer_index), AMotionEvent_getY(input_event, event_pointer_index)); - io.AddMouseButtonEvent(0, event_action == AMOTION_EVENT_ACTION_DOWN); - } - break; - } - case AMOTION_EVENT_ACTION_BUTTON_PRESS: - case AMOTION_EVENT_ACTION_BUTTON_RELEASE: - { - int32_t button_state = AMotionEvent_getButtonState(input_event); - io.AddMouseButtonEvent(0, (button_state & AMOTION_EVENT_BUTTON_PRIMARY) != 0); - io.AddMouseButtonEvent(1, (button_state & AMOTION_EVENT_BUTTON_SECONDARY) != 0); - io.AddMouseButtonEvent(2, (button_state & AMOTION_EVENT_BUTTON_TERTIARY) != 0); - break; - } - case AMOTION_EVENT_ACTION_HOVER_MOVE: // Hovering: Tool moves while NOT pressed (such as a physical mouse) - case AMOTION_EVENT_ACTION_MOVE: // Touch pointer moves while DOWN - io.AddMousePosEvent(AMotionEvent_getX(input_event, event_pointer_index), AMotionEvent_getY(input_event, event_pointer_index)); - break; - case AMOTION_EVENT_ACTION_SCROLL: - io.AddMouseWheelEvent(AMotionEvent_getAxisValue(input_event, AMOTION_EVENT_AXIS_HSCROLL, event_pointer_index), AMotionEvent_getAxisValue(input_event, AMOTION_EVENT_AXIS_VSCROLL, event_pointer_index)); - break; - default: - break; - } - } - return 1; - default: - break; - } - - return 0; -} - -bool ImGui_ImplAndroid_Init(ANativeWindow* window) -{ - IMGUI_CHECKVERSION(); - - g_Window = window; - g_Time = 0.0; - - // Setup backend capabilities flags - ImGuiIO& io = ImGui::GetIO(); - io.BackendPlatformName = "imgui_impl_android"; - - return true; -} - -void ImGui_ImplAndroid_Shutdown() -{ - ImGuiIO& io = ImGui::GetIO(); - io.BackendPlatformName = nullptr; -} - -void ImGui_ImplAndroid_NewFrame() -{ - ImGuiIO& io = ImGui::GetIO(); - - // Setup display size (every frame to accommodate for window resizing) - int32_t window_width = ANativeWindow_getWidth(g_Window); - int32_t window_height = ANativeWindow_getHeight(g_Window); - int display_width = window_width; - int display_height = window_height; - - io.DisplaySize = ImVec2((float)window_width, (float)window_height); - if (window_width > 0 && window_height > 0) - io.DisplayFramebufferScale = ImVec2((float)display_width / window_width, (float)display_height / window_height); - - // Setup time step - struct timespec current_timespec; - clock_gettime(CLOCK_MONOTONIC, ¤t_timespec); - double current_time = (double)(current_timespec.tv_sec) + (current_timespec.tv_nsec / 1000000000.0); - io.DeltaTime = g_Time > 0.0 ? (float)(current_time - g_Time) : (float)(1.0f / 60.0f); - g_Time = current_time; -} - -//----------------------------------------------------------------------------- - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_android.h b/libs/imgui-1.92.1/backends/imgui_impl_android.h deleted file mode 100644 index f6e4103..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_android.h +++ /dev/null @@ -1,37 +0,0 @@ -// dear imgui: Platform Binding for Android native app -// This needs to be used along with the OpenGL 3 Renderer (imgui_impl_opengl3) - -// Implemented features: -// [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy AKEYCODE_* values are obsolete since 1.87 and not supported since 1.91.5] -// [X] Platform: Mouse support. Can discriminate Mouse/TouchScreen/Pen. -// Missing features or Issues: -// [ ] Platform: Clipboard support. -// [ ] Platform: Gamepad support. -// [ ] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. FIXME: Check if this is even possible with Android. -// Important: -// - Consider using SDL or GLFW backend on Android, which will be more full-featured than this. -// - FIXME: On-screen keyboard currently needs to be enabled by the application (see examples/ and issue #3446) -// - FIXME: Unicode character inputs needs to be passed by Dear ImGui by the application (see examples/ and issue #3446) - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#pragma once -#include "imgui.h" // IMGUI_IMPL_API -#ifndef IMGUI_DISABLE - -struct ANativeWindow; -struct AInputEvent; - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplAndroid_Init(ANativeWindow* window); -IMGUI_IMPL_API int32_t ImGui_ImplAndroid_HandleInputEvent(const AInputEvent* input_event); -IMGUI_IMPL_API void ImGui_ImplAndroid_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplAndroid_NewFrame(); - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_dx10.cpp b/libs/imgui-1.92.1/backends/imgui_impl_dx10.cpp deleted file mode 100644 index 6bc5215..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_dx10.cpp +++ /dev/null @@ -1,657 +0,0 @@ -// dear imgui: Renderer Backend for DirectX10 -// This needs to be used along with a Platform Backend (e.g. Win32) - -// Implemented features: -// [X] Renderer: User texture binding. Use 'ID3D10ShaderResourceView*' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// CHANGELOG -// (minor and older changes stripped away, please see git history for details) -// 2025-06-11: DirectX10: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas. -// 2025-05-07: DirectX10: Honor draw_data->FramebufferScale to allow for custom backends and experiment using it (consistently with other renderer backends, even though in normal condition it is not set under Windows). -// 2025-01-06: DirectX10: Expose selected render state in ImGui_ImplDX10_RenderState, which you can access in 'void* platform_io.Renderer_RenderState' during draw callbacks. -// 2024-10-07: DirectX10: Changed default texture sampler to Clamp instead of Repeat/Wrap. -// 2022-10-11: Using 'nullptr' instead of 'NULL' as per our switch to C++11. -// 2021-06-29: Reorganized backend to pull data from a single structure to facilitate usage with multiple-contexts (all g_XXXX access changed to bd->XXXX). -// 2021-05-19: DirectX10: Replaced direct access to ImDrawCmd::TextureId with a call to ImDrawCmd::GetTexID(). (will become a requirement) -// 2021-02-18: DirectX10: Change blending equation to preserve alpha in output buffer. -// 2019-07-21: DirectX10: Backup, clear and restore Geometry Shader is any is bound when calling ImGui_ImplDX10_RenderDrawData(). -// 2019-05-29: DirectX10: Added support for large mesh (64K+ vertices), enable ImGuiBackendFlags_RendererHasVtxOffset flag. -// 2019-04-30: DirectX10: Added support for special ImDrawCallback_ResetRenderState callback to reset render state. -// 2018-12-03: Misc: Added #pragma comment statement to automatically link with d3dcompiler.lib when using D3DCompile(). -// 2018-11-30: Misc: Setting up io.BackendRendererName so it can be displayed in the About Window. -// 2018-07-13: DirectX10: Fixed unreleased resources in Init and Shutdown functions. -// 2018-06-08: Misc: Extracted imgui_impl_dx10.cpp/.h away from the old combined DX10+Win32 example. -// 2018-06-08: DirectX10: Use draw_data->DisplayPos and draw_data->DisplaySize to setup projection matrix and clipping rectangle. -// 2018-04-09: Misc: Fixed erroneous call to io.Fonts->ClearInputData() + ClearTexData() that was left in DX10 example but removed in 1.47 (Nov 2015) on other backends. -// 2018-02-16: Misc: Obsoleted the io.RenderDrawListsFn callback and exposed ImGui_ImplDX10_RenderDrawData() in the .h file so you can call it yourself. -// 2018-02-06: Misc: Removed call to ImGui::Shutdown() which is not available from 1.60 WIP, user needs to call CreateContext/DestroyContext themselves. -// 2016-05-07: DirectX10: Disabling depth-write. - -#include "imgui.h" -#ifndef IMGUI_DISABLE -#include "imgui_impl_dx10.h" - -// DirectX -#include -#include -#include -#include -#ifdef _MSC_VER -#pragma comment(lib, "d3dcompiler") // Automatically link with d3dcompiler.lib as we are using D3DCompile() below. -#endif - -// Clang/GCC warnings with -Weverything -#if defined(__clang__) -#pragma clang diagnostic ignored "-Wold-style-cast" // warning: use of old-style cast // yes, they are more terse. -#pragma clang diagnostic ignored "-Wsign-conversion" // warning: implicit conversion changes signedness -#endif - -// DirectX10 data -struct ImGui_ImplDX10_Texture -{ - ID3D10Texture2D* pTexture; - ID3D10ShaderResourceView* pTextureView; -}; - -struct ImGui_ImplDX10_Data -{ - ID3D10Device* pd3dDevice; - IDXGIFactory* pFactory; - ID3D10Buffer* pVB; - ID3D10Buffer* pIB; - ID3D10VertexShader* pVertexShader; - ID3D10InputLayout* pInputLayout; - ID3D10Buffer* pVertexConstantBuffer; - ID3D10PixelShader* pPixelShader; - ID3D10SamplerState* pFontSampler; - ID3D10RasterizerState* pRasterizerState; - ID3D10BlendState* pBlendState; - ID3D10DepthStencilState* pDepthStencilState; - int VertexBufferSize; - int IndexBufferSize; - - ImGui_ImplDX10_Data() { memset((void*)this, 0, sizeof(*this)); VertexBufferSize = 5000; IndexBufferSize = 10000; } -}; - -struct VERTEX_CONSTANT_BUFFER_DX10 -{ - float mvp[4][4]; -}; - -// Backend data stored in io.BackendRendererUserData to allow support for multiple Dear ImGui contexts -// It is STRONGLY preferred that you use docking branch with multi-viewports (== single Dear ImGui context + multiple windows) instead of multiple Dear ImGui contexts. -static ImGui_ImplDX10_Data* ImGui_ImplDX10_GetBackendData() -{ - return ImGui::GetCurrentContext() ? (ImGui_ImplDX10_Data*)ImGui::GetIO().BackendRendererUserData : nullptr; -} - -// Functions -static void ImGui_ImplDX10_SetupRenderState(ImDrawData* draw_data, ID3D10Device* device) -{ - ImGui_ImplDX10_Data* bd = ImGui_ImplDX10_GetBackendData(); - - // Setup viewport - D3D10_VIEWPORT vp = {}; - vp.Width = (UINT)(draw_data->DisplaySize.x * draw_data->FramebufferScale.x); - vp.Height = (UINT)(draw_data->DisplaySize.y * draw_data->FramebufferScale.y); - vp.MinDepth = 0.0f; - vp.MaxDepth = 1.0f; - vp.TopLeftX = vp.TopLeftY = 0; - device->RSSetViewports(1, &vp); - - // Setup orthographic projection matrix into our constant buffer - // Our visible imgui space lies from draw_data->DisplayPos (top left) to draw_data->DisplayPos+data_data->DisplaySize (bottom right). DisplayPos is (0,0) for single viewport apps. - void* mapped_resource; - if (bd->pVertexConstantBuffer->Map(D3D10_MAP_WRITE_DISCARD, 0, &mapped_resource) == S_OK) - { - VERTEX_CONSTANT_BUFFER_DX10* constant_buffer = (VERTEX_CONSTANT_BUFFER_DX10*)mapped_resource; - float L = draw_data->DisplayPos.x; - float R = draw_data->DisplayPos.x + draw_data->DisplaySize.x; - float T = draw_data->DisplayPos.y; - float B = draw_data->DisplayPos.y + draw_data->DisplaySize.y; - float mvp[4][4] = - { - { 2.0f/(R-L), 0.0f, 0.0f, 0.0f }, - { 0.0f, 2.0f/(T-B), 0.0f, 0.0f }, - { 0.0f, 0.0f, 0.5f, 0.0f }, - { (R+L)/(L-R), (T+B)/(B-T), 0.5f, 1.0f }, - }; - memcpy(&constant_buffer->mvp, mvp, sizeof(mvp)); - bd->pVertexConstantBuffer->Unmap(); - } - - // Setup shader and vertex buffers - unsigned int stride = sizeof(ImDrawVert); - unsigned int offset = 0; - device->IASetInputLayout(bd->pInputLayout); - device->IASetVertexBuffers(0, 1, &bd->pVB, &stride, &offset); - device->IASetIndexBuffer(bd->pIB, sizeof(ImDrawIdx) == 2 ? DXGI_FORMAT_R16_UINT : DXGI_FORMAT_R32_UINT, 0); - device->IASetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST); - device->VSSetShader(bd->pVertexShader); - device->VSSetConstantBuffers(0, 1, &bd->pVertexConstantBuffer); - device->PSSetShader(bd->pPixelShader); - device->PSSetSamplers(0, 1, &bd->pFontSampler); - device->GSSetShader(nullptr); - - // Setup render state - const float blend_factor[4] = { 0.f, 0.f, 0.f, 0.f }; - device->OMSetBlendState(bd->pBlendState, blend_factor, 0xffffffff); - device->OMSetDepthStencilState(bd->pDepthStencilState, 0); - device->RSSetState(bd->pRasterizerState); -} - -// Render function -void ImGui_ImplDX10_RenderDrawData(ImDrawData* draw_data) -{ - // Avoid rendering when minimized - if (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f) - return; - - ImGui_ImplDX10_Data* bd = ImGui_ImplDX10_GetBackendData(); - ID3D10Device* device = bd->pd3dDevice; - - // Catch up with texture updates. Most of the times, the list will have 1 element with an OK status, aka nothing to do. - // (This almost always points to ImGui::GetPlatformIO().Textures[] but is part of ImDrawData to allow overriding or disabling texture updates). - if (draw_data->Textures != nullptr) - for (ImTextureData* tex : *draw_data->Textures) - if (tex->Status != ImTextureStatus_OK) - ImGui_ImplDX10_UpdateTexture(tex); - - // Create and grow vertex/index buffers if needed - if (!bd->pVB || bd->VertexBufferSize < draw_data->TotalVtxCount) - { - if (bd->pVB) { bd->pVB->Release(); bd->pVB = nullptr; } - bd->VertexBufferSize = draw_data->TotalVtxCount + 5000; - D3D10_BUFFER_DESC desc = {}; - desc.Usage = D3D10_USAGE_DYNAMIC; - desc.ByteWidth = bd->VertexBufferSize * sizeof(ImDrawVert); - desc.BindFlags = D3D10_BIND_VERTEX_BUFFER; - desc.CPUAccessFlags = D3D10_CPU_ACCESS_WRITE; - desc.MiscFlags = 0; - if (device->CreateBuffer(&desc, nullptr, &bd->pVB) < 0) - return; - } - - if (!bd->pIB || bd->IndexBufferSize < draw_data->TotalIdxCount) - { - if (bd->pIB) { bd->pIB->Release(); bd->pIB = nullptr; } - bd->IndexBufferSize = draw_data->TotalIdxCount + 10000; - D3D10_BUFFER_DESC desc = {}; - desc.Usage = D3D10_USAGE_DYNAMIC; - desc.ByteWidth = bd->IndexBufferSize * sizeof(ImDrawIdx); - desc.BindFlags = D3D10_BIND_INDEX_BUFFER; - desc.CPUAccessFlags = D3D10_CPU_ACCESS_WRITE; - if (device->CreateBuffer(&desc, nullptr, &bd->pIB) < 0) - return; - } - - // Copy and convert all vertices into a single contiguous buffer - ImDrawVert* vtx_dst = nullptr; - ImDrawIdx* idx_dst = nullptr; - bd->pVB->Map(D3D10_MAP_WRITE_DISCARD, 0, (void**)&vtx_dst); - bd->pIB->Map(D3D10_MAP_WRITE_DISCARD, 0, (void**)&idx_dst); - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - memcpy(vtx_dst, draw_list->VtxBuffer.Data, draw_list->VtxBuffer.Size * sizeof(ImDrawVert)); - memcpy(idx_dst, draw_list->IdxBuffer.Data, draw_list->IdxBuffer.Size * sizeof(ImDrawIdx)); - vtx_dst += draw_list->VtxBuffer.Size; - idx_dst += draw_list->IdxBuffer.Size; - } - bd->pVB->Unmap(); - bd->pIB->Unmap(); - - // Backup DX state that will be modified to restore it afterwards (unfortunately this is very ugly looking and verbose. Close your eyes!) - struct BACKUP_DX10_STATE - { - UINT ScissorRectsCount, ViewportsCount; - D3D10_RECT ScissorRects[D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE]; - D3D10_VIEWPORT Viewports[D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE]; - ID3D10RasterizerState* RS; - ID3D10BlendState* BlendState; - FLOAT BlendFactor[4]; - UINT SampleMask; - UINT StencilRef; - ID3D10DepthStencilState* DepthStencilState; - ID3D10ShaderResourceView* PSShaderResource; - ID3D10SamplerState* PSSampler; - ID3D10PixelShader* PS; - ID3D10VertexShader* VS; - ID3D10GeometryShader* GS; - D3D10_PRIMITIVE_TOPOLOGY PrimitiveTopology; - ID3D10Buffer* IndexBuffer, *VertexBuffer, *VSConstantBuffer; - UINT IndexBufferOffset, VertexBufferStride, VertexBufferOffset; - DXGI_FORMAT IndexBufferFormat; - ID3D10InputLayout* InputLayout; - }; - BACKUP_DX10_STATE old = {}; - old.ScissorRectsCount = old.ViewportsCount = D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE; - device->RSGetScissorRects(&old.ScissorRectsCount, old.ScissorRects); - device->RSGetViewports(&old.ViewportsCount, old.Viewports); - device->RSGetState(&old.RS); - device->OMGetBlendState(&old.BlendState, old.BlendFactor, &old.SampleMask); - device->OMGetDepthStencilState(&old.DepthStencilState, &old.StencilRef); - device->PSGetShaderResources(0, 1, &old.PSShaderResource); - device->PSGetSamplers(0, 1, &old.PSSampler); - device->PSGetShader(&old.PS); - device->VSGetShader(&old.VS); - device->VSGetConstantBuffers(0, 1, &old.VSConstantBuffer); - device->GSGetShader(&old.GS); - device->IAGetPrimitiveTopology(&old.PrimitiveTopology); - device->IAGetIndexBuffer(&old.IndexBuffer, &old.IndexBufferFormat, &old.IndexBufferOffset); - device->IAGetVertexBuffers(0, 1, &old.VertexBuffer, &old.VertexBufferStride, &old.VertexBufferOffset); - device->IAGetInputLayout(&old.InputLayout); - - // Setup desired DX state - ImGui_ImplDX10_SetupRenderState(draw_data, device); - // Setup render state structure (for callbacks and custom texture bindings) - ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); - ImGui_ImplDX10_RenderState render_state; - render_state.Device = bd->pd3dDevice; - render_state.SamplerDefault = bd->pFontSampler; - render_state.VertexConstantBuffer = bd->pVertexConstantBuffer; - platform_io.Renderer_RenderState = &render_state; - - // Render command lists - // (Because we merged all buffers into a single one, we maintain our own offset into them) - int global_vtx_offset = 0; - int global_idx_offset = 0; - ImVec2 clip_off = draw_data->DisplayPos; - ImVec2 clip_scale = draw_data->FramebufferScale; - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - for (int cmd_i = 0; cmd_i < draw_list->CmdBuffer.Size; cmd_i++) - { - const ImDrawCmd* pcmd = &draw_list->CmdBuffer[cmd_i]; - if (pcmd->UserCallback != nullptr) - { - // User callback, registered via ImDrawList::AddCallback() - // (ImDrawCallback_ResetRenderState is a special callback value used by the user to request the renderer to reset render state.) - if (pcmd->UserCallback == ImDrawCallback_ResetRenderState) - ImGui_ImplDX10_SetupRenderState(draw_data, device); - else - pcmd->UserCallback(draw_list, pcmd); - } - else - { - // Project scissor/clipping rectangles into framebuffer space - ImVec2 clip_min((pcmd->ClipRect.x - clip_off.x) * clip_scale.x, (pcmd->ClipRect.y - clip_off.y) * clip_scale.y); - ImVec2 clip_max((pcmd->ClipRect.z - clip_off.x) * clip_scale.x, (pcmd->ClipRect.w - clip_off.y) * clip_scale.y); - if (clip_max.x <= clip_min.x || clip_max.y <= clip_min.y) - continue; - - // Apply scissor/clipping rectangle - const D3D10_RECT r = { (LONG)clip_min.x, (LONG)clip_min.y, (LONG)clip_max.x, (LONG)clip_max.y }; - device->RSSetScissorRects(1, &r); - - // Bind texture, Draw - ID3D10ShaderResourceView* texture_srv = (ID3D10ShaderResourceView*)pcmd->GetTexID(); - device->PSSetShaderResources(0, 1, &texture_srv); - device->DrawIndexed(pcmd->ElemCount, pcmd->IdxOffset + global_idx_offset, pcmd->VtxOffset + global_vtx_offset); - } - } - global_idx_offset += draw_list->IdxBuffer.Size; - global_vtx_offset += draw_list->VtxBuffer.Size; - } - platform_io.Renderer_RenderState = nullptr; - - // Restore modified DX state - device->RSSetScissorRects(old.ScissorRectsCount, old.ScissorRects); - device->RSSetViewports(old.ViewportsCount, old.Viewports); - device->RSSetState(old.RS); if (old.RS) old.RS->Release(); - device->OMSetBlendState(old.BlendState, old.BlendFactor, old.SampleMask); if (old.BlendState) old.BlendState->Release(); - device->OMSetDepthStencilState(old.DepthStencilState, old.StencilRef); if (old.DepthStencilState) old.DepthStencilState->Release(); - device->PSSetShaderResources(0, 1, &old.PSShaderResource); if (old.PSShaderResource) old.PSShaderResource->Release(); - device->PSSetSamplers(0, 1, &old.PSSampler); if (old.PSSampler) old.PSSampler->Release(); - device->PSSetShader(old.PS); if (old.PS) old.PS->Release(); - device->VSSetShader(old.VS); if (old.VS) old.VS->Release(); - device->GSSetShader(old.GS); if (old.GS) old.GS->Release(); - device->VSSetConstantBuffers(0, 1, &old.VSConstantBuffer); if (old.VSConstantBuffer) old.VSConstantBuffer->Release(); - device->IASetPrimitiveTopology(old.PrimitiveTopology); - device->IASetIndexBuffer(old.IndexBuffer, old.IndexBufferFormat, old.IndexBufferOffset); if (old.IndexBuffer) old.IndexBuffer->Release(); - device->IASetVertexBuffers(0, 1, &old.VertexBuffer, &old.VertexBufferStride, &old.VertexBufferOffset); if (old.VertexBuffer) old.VertexBuffer->Release(); - device->IASetInputLayout(old.InputLayout); if (old.InputLayout) old.InputLayout->Release(); -} - -static void ImGui_ImplDX10_DestroyTexture(ImTextureData* tex) -{ - ImGui_ImplDX10_Texture* backend_tex = (ImGui_ImplDX10_Texture*)tex->BackendUserData; - if (backend_tex == nullptr) - return; - IM_ASSERT(backend_tex->pTextureView == (ID3D10ShaderResourceView*)(intptr_t)tex->TexID); - backend_tex->pTexture->Release(); - backend_tex->pTextureView->Release(); - IM_DELETE(backend_tex); - - // Clear identifiers and mark as destroyed (in order to allow e.g. calling InvalidateDeviceObjects while running) - tex->SetTexID(ImTextureID_Invalid); - tex->SetStatus(ImTextureStatus_Destroyed); - tex->BackendUserData = nullptr; -} - -void ImGui_ImplDX10_UpdateTexture(ImTextureData* tex) -{ - ImGui_ImplDX10_Data* bd = ImGui_ImplDX10_GetBackendData(); - if (tex->Status == ImTextureStatus_WantCreate) - { - // Create and upload new texture to graphics system - //IMGUI_DEBUG_LOG("UpdateTexture #%03d: WantCreate %dx%d\n", tex->UniqueID, tex->Width, tex->Height); - IM_ASSERT(tex->TexID == ImTextureID_Invalid && tex->BackendUserData == nullptr); - IM_ASSERT(tex->Format == ImTextureFormat_RGBA32); - unsigned int* pixels = (unsigned int*)tex->GetPixels(); - ImGui_ImplDX10_Texture* backend_tex = IM_NEW(ImGui_ImplDX10_Texture)(); - - // Create texture - D3D10_TEXTURE2D_DESC desc; - ZeroMemory(&desc, sizeof(desc)); - desc.Width = (UINT)tex->Width; - desc.Height = (UINT)tex->Height; - desc.MipLevels = 1; - desc.ArraySize = 1; - desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - desc.SampleDesc.Count = 1; - desc.Usage = D3D10_USAGE_DEFAULT; - desc.BindFlags = D3D10_BIND_SHADER_RESOURCE; - desc.CPUAccessFlags = 0; - - D3D10_SUBRESOURCE_DATA subResource; - subResource.pSysMem = pixels; - subResource.SysMemPitch = desc.Width * 4; - subResource.SysMemSlicePitch = 0; - bd->pd3dDevice->CreateTexture2D(&desc, &subResource, &backend_tex->pTexture); - IM_ASSERT(backend_tex->pTexture != nullptr && "Backend failed to create texture!"); - - // Create texture view - D3D10_SHADER_RESOURCE_VIEW_DESC srv_desc; - ZeroMemory(&srv_desc, sizeof(srv_desc)); - srv_desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - srv_desc.ViewDimension = D3D10_SRV_DIMENSION_TEXTURE2D; - srv_desc.Texture2D.MipLevels = desc.MipLevels; - srv_desc.Texture2D.MostDetailedMip = 0; - bd->pd3dDevice->CreateShaderResourceView(backend_tex->pTexture, &srv_desc, &backend_tex->pTextureView); - IM_ASSERT(backend_tex->pTextureView != nullptr && "Backend failed to create texture!"); - - // Store identifiers - tex->SetTexID((ImTextureID)(intptr_t)backend_tex->pTextureView); - tex->SetStatus(ImTextureStatus_OK); - tex->BackendUserData = backend_tex; - } - else if (tex->Status == ImTextureStatus_WantUpdates) - { - // Update selected blocks. We only ever write to textures regions which have never been used before! - // This backend choose to use tex->Updates[] but you can use tex->UpdateRect to upload a single region. - ImGui_ImplDX10_Texture* backend_tex = (ImGui_ImplDX10_Texture*)tex->BackendUserData; - IM_ASSERT(backend_tex->pTextureView == (ID3D10ShaderResourceView*)(intptr_t)tex->TexID); - for (ImTextureRect& r : tex->Updates) - { - D3D10_BOX box = { (UINT)r.x, (UINT)r.y, (UINT)0, (UINT)(r.x + r.w), (UINT)(r.y + r.h), (UINT)1 }; - bd->pd3dDevice->UpdateSubresource(backend_tex->pTexture, 0, &box, tex->GetPixelsAt(r.x, r.y), (UINT)tex->GetPitch(), 0); - } - tex->SetStatus(ImTextureStatus_OK); - } - if (tex->Status == ImTextureStatus_WantDestroy && tex->UnusedFrames > 0) - ImGui_ImplDX10_DestroyTexture(tex); -} - -bool ImGui_ImplDX10_CreateDeviceObjects() -{ - ImGui_ImplDX10_Data* bd = ImGui_ImplDX10_GetBackendData(); - if (!bd->pd3dDevice) - return false; - ImGui_ImplDX10_InvalidateDeviceObjects(); - - // By using D3DCompile() from / d3dcompiler.lib, we introduce a dependency to a given version of d3dcompiler_XX.dll (see D3DCOMPILER_DLL_A) - // If you would like to use this DX10 sample code but remove this dependency you can: - // 1) compile once, save the compiled shader blobs into a file or source code and pass them to CreateVertexShader()/CreatePixelShader() [preferred solution] - // 2) use code to detect any version of the DLL and grab a pointer to D3DCompile from the DLL. - // See https://github.com/ocornut/imgui/pull/638 for sources and details. - - // Create the vertex shader - { - static const char* vertexShader = - "cbuffer vertexBuffer : register(b0) \ - {\ - float4x4 ProjectionMatrix; \ - };\ - struct VS_INPUT\ - {\ - float2 pos : POSITION;\ - float4 col : COLOR0;\ - float2 uv : TEXCOORD0;\ - };\ - \ - struct PS_INPUT\ - {\ - float4 pos : SV_POSITION;\ - float4 col : COLOR0;\ - float2 uv : TEXCOORD0;\ - };\ - \ - PS_INPUT main(VS_INPUT input)\ - {\ - PS_INPUT output;\ - output.pos = mul( ProjectionMatrix, float4(input.pos.xy, 0.f, 1.f));\ - output.col = input.col;\ - output.uv = input.uv;\ - return output;\ - }"; - - ID3DBlob* vertexShaderBlob; - if (FAILED(D3DCompile(vertexShader, strlen(vertexShader), nullptr, nullptr, nullptr, "main", "vs_4_0", 0, 0, &vertexShaderBlob, nullptr))) - return false; // NB: Pass ID3DBlob* pErrorBlob to D3DCompile() to get error showing in (const char*)pErrorBlob->GetBufferPointer(). Make sure to Release() the blob! - if (bd->pd3dDevice->CreateVertexShader(vertexShaderBlob->GetBufferPointer(), vertexShaderBlob->GetBufferSize(), &bd->pVertexShader) != S_OK) - { - vertexShaderBlob->Release(); - return false; - } - - // Create the input layout - D3D10_INPUT_ELEMENT_DESC local_layout[] = - { - { "POSITION", 0, DXGI_FORMAT_R32G32_FLOAT, 0, (UINT)offsetof(ImDrawVert, pos), D3D10_INPUT_PER_VERTEX_DATA, 0 }, - { "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, (UINT)offsetof(ImDrawVert, uv), D3D10_INPUT_PER_VERTEX_DATA, 0 }, - { "COLOR", 0, DXGI_FORMAT_R8G8B8A8_UNORM, 0, (UINT)offsetof(ImDrawVert, col), D3D10_INPUT_PER_VERTEX_DATA, 0 }, - }; - if (bd->pd3dDevice->CreateInputLayout(local_layout, 3, vertexShaderBlob->GetBufferPointer(), vertexShaderBlob->GetBufferSize(), &bd->pInputLayout) != S_OK) - { - vertexShaderBlob->Release(); - return false; - } - vertexShaderBlob->Release(); - - // Create the constant buffer - { - D3D10_BUFFER_DESC desc = {}; - desc.ByteWidth = sizeof(VERTEX_CONSTANT_BUFFER_DX10); - desc.Usage = D3D10_USAGE_DYNAMIC; - desc.BindFlags = D3D10_BIND_CONSTANT_BUFFER; - desc.CPUAccessFlags = D3D10_CPU_ACCESS_WRITE; - desc.MiscFlags = 0; - bd->pd3dDevice->CreateBuffer(&desc, nullptr, &bd->pVertexConstantBuffer); - } - } - - // Create the pixel shader - { - static const char* pixelShader = - "struct PS_INPUT\ - {\ - float4 pos : SV_POSITION;\ - float4 col : COLOR0;\ - float2 uv : TEXCOORD0;\ - };\ - sampler sampler0;\ - Texture2D texture0;\ - \ - float4 main(PS_INPUT input) : SV_Target\ - {\ - float4 out_col = input.col * texture0.Sample(sampler0, input.uv); \ - return out_col; \ - }"; - - ID3DBlob* pixelShaderBlob; - if (FAILED(D3DCompile(pixelShader, strlen(pixelShader), nullptr, nullptr, nullptr, "main", "ps_4_0", 0, 0, &pixelShaderBlob, nullptr))) - return false; // NB: Pass ID3DBlob* pErrorBlob to D3DCompile() to get error showing in (const char*)pErrorBlob->GetBufferPointer(). Make sure to Release() the blob! - if (bd->pd3dDevice->CreatePixelShader(pixelShaderBlob->GetBufferPointer(), pixelShaderBlob->GetBufferSize(), &bd->pPixelShader) != S_OK) - { - pixelShaderBlob->Release(); - return false; - } - pixelShaderBlob->Release(); - } - - // Create the blending setup - { - D3D10_BLEND_DESC desc; - ZeroMemory(&desc, sizeof(desc)); - desc.AlphaToCoverageEnable = false; - desc.BlendEnable[0] = true; - desc.SrcBlend = D3D10_BLEND_SRC_ALPHA; - desc.DestBlend = D3D10_BLEND_INV_SRC_ALPHA; - desc.BlendOp = D3D10_BLEND_OP_ADD; - desc.SrcBlendAlpha = D3D10_BLEND_ONE; - desc.DestBlendAlpha = D3D10_BLEND_INV_SRC_ALPHA; - desc.BlendOpAlpha = D3D10_BLEND_OP_ADD; - desc.RenderTargetWriteMask[0] = D3D10_COLOR_WRITE_ENABLE_ALL; - bd->pd3dDevice->CreateBlendState(&desc, &bd->pBlendState); - } - - // Create the rasterizer state - { - D3D10_RASTERIZER_DESC desc; - ZeroMemory(&desc, sizeof(desc)); - desc.FillMode = D3D10_FILL_SOLID; - desc.CullMode = D3D10_CULL_NONE; - desc.ScissorEnable = true; - desc.DepthClipEnable = true; - bd->pd3dDevice->CreateRasterizerState(&desc, &bd->pRasterizerState); - } - - // Create depth-stencil State - { - D3D10_DEPTH_STENCIL_DESC desc; - ZeroMemory(&desc, sizeof(desc)); - desc.DepthEnable = false; - desc.DepthWriteMask = D3D10_DEPTH_WRITE_MASK_ALL; - desc.DepthFunc = D3D10_COMPARISON_ALWAYS; - desc.StencilEnable = false; - desc.FrontFace.StencilFailOp = desc.FrontFace.StencilDepthFailOp = desc.FrontFace.StencilPassOp = D3D10_STENCIL_OP_KEEP; - desc.FrontFace.StencilFunc = D3D10_COMPARISON_ALWAYS; - desc.BackFace = desc.FrontFace; - bd->pd3dDevice->CreateDepthStencilState(&desc, &bd->pDepthStencilState); - } - - // Create texture sampler - // (Bilinear sampling is required by default. Set 'io.Fonts->Flags |= ImFontAtlasFlags_NoBakedLines' or 'style.AntiAliasedLinesUseTex = false' to allow point/nearest sampling) - { - D3D10_SAMPLER_DESC desc; - ZeroMemory(&desc, sizeof(desc)); - desc.Filter = D3D10_FILTER_MIN_MAG_MIP_LINEAR; - desc.AddressU = D3D10_TEXTURE_ADDRESS_CLAMP; - desc.AddressV = D3D10_TEXTURE_ADDRESS_CLAMP; - desc.AddressW = D3D10_TEXTURE_ADDRESS_CLAMP; - desc.MipLODBias = 0.f; - desc.ComparisonFunc = D3D10_COMPARISON_ALWAYS; - desc.MinLOD = 0.f; - desc.MaxLOD = 0.f; - bd->pd3dDevice->CreateSamplerState(&desc, &bd->pFontSampler); - } - - return true; -} - -void ImGui_ImplDX10_InvalidateDeviceObjects() -{ - ImGui_ImplDX10_Data* bd = ImGui_ImplDX10_GetBackendData(); - if (!bd->pd3dDevice) - return; - - // Destroy all textures - for (ImTextureData* tex : ImGui::GetPlatformIO().Textures) - if (tex->RefCount == 1) - ImGui_ImplDX10_DestroyTexture(tex); - if (bd->pFontSampler) { bd->pFontSampler->Release(); bd->pFontSampler = nullptr; } - if (bd->pIB) { bd->pIB->Release(); bd->pIB = nullptr; } - if (bd->pVB) { bd->pVB->Release(); bd->pVB = nullptr; } - if (bd->pBlendState) { bd->pBlendState->Release(); bd->pBlendState = nullptr; } - if (bd->pDepthStencilState) { bd->pDepthStencilState->Release(); bd->pDepthStencilState = nullptr; } - if (bd->pRasterizerState) { bd->pRasterizerState->Release(); bd->pRasterizerState = nullptr; } - if (bd->pPixelShader) { bd->pPixelShader->Release(); bd->pPixelShader = nullptr; } - if (bd->pVertexConstantBuffer) { bd->pVertexConstantBuffer->Release(); bd->pVertexConstantBuffer = nullptr; } - if (bd->pInputLayout) { bd->pInputLayout->Release(); bd->pInputLayout = nullptr; } - if (bd->pVertexShader) { bd->pVertexShader->Release(); bd->pVertexShader = nullptr; } -} - -bool ImGui_ImplDX10_Init(ID3D10Device* device) -{ - ImGuiIO& io = ImGui::GetIO(); - IMGUI_CHECKVERSION(); - IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); - - // Setup backend capabilities flags - ImGui_ImplDX10_Data* bd = IM_NEW(ImGui_ImplDX10_Data)(); - io.BackendRendererUserData = (void*)bd; - io.BackendRendererName = "imgui_impl_dx10"; - io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset; // We can honor the ImDrawCmd::VtxOffset field, allowing for large meshes. - io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures; // We can honor ImGuiPlatformIO::Textures[] requests during render. - - ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); - platform_io.Renderer_TextureMaxWidth = platform_io.Renderer_TextureMaxHeight = D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION; - - // Get factory from device - IDXGIDevice* pDXGIDevice = nullptr; - IDXGIAdapter* pDXGIAdapter = nullptr; - IDXGIFactory* pFactory = nullptr; - if (device->QueryInterface(IID_PPV_ARGS(&pDXGIDevice)) == S_OK) - if (pDXGIDevice->GetParent(IID_PPV_ARGS(&pDXGIAdapter)) == S_OK) - if (pDXGIAdapter->GetParent(IID_PPV_ARGS(&pFactory)) == S_OK) - { - bd->pd3dDevice = device; - bd->pFactory = pFactory; - } - if (pDXGIDevice) pDXGIDevice->Release(); - if (pDXGIAdapter) pDXGIAdapter->Release(); - bd->pd3dDevice->AddRef(); - - return true; -} - -void ImGui_ImplDX10_Shutdown() -{ - ImGui_ImplDX10_Data* bd = ImGui_ImplDX10_GetBackendData(); - IM_ASSERT(bd != nullptr && "No renderer backend to shutdown, or already shutdown?"); - ImGuiIO& io = ImGui::GetIO(); - - ImGui_ImplDX10_InvalidateDeviceObjects(); - if (bd->pFactory) { bd->pFactory->Release(); } - if (bd->pd3dDevice) { bd->pd3dDevice->Release(); } - io.BackendRendererName = nullptr; - io.BackendRendererUserData = nullptr; - io.BackendFlags &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures); - IM_DELETE(bd); -} - -void ImGui_ImplDX10_NewFrame() -{ - ImGui_ImplDX10_Data* bd = ImGui_ImplDX10_GetBackendData(); - IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplDX10_Init()?"); - - if (!bd->pVertexShader) - if (!ImGui_ImplDX10_CreateDeviceObjects()) - IM_ASSERT(0 && "ImGui_ImplDX10_CreateDeviceObjects() failed!"); -} - -//----------------------------------------------------------------------------- - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_dx10.h b/libs/imgui-1.92.1/backends/imgui_impl_dx10.h deleted file mode 100644 index 38ecbdf..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_dx10.h +++ /dev/null @@ -1,48 +0,0 @@ -// dear imgui: Renderer Backend for DirectX10 -// This needs to be used along with a Platform Backend (e.g. Win32) - -// Implemented features: -// [X] Renderer: User texture binding. Use 'ID3D10ShaderResourceView*' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#pragma once -#include "imgui.h" // IMGUI_IMPL_API -#ifndef IMGUI_DISABLE - -struct ID3D10Device; -struct ID3D10SamplerState; -struct ID3D10Buffer; - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplDX10_Init(ID3D10Device* device); -IMGUI_IMPL_API void ImGui_ImplDX10_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplDX10_NewFrame(); -IMGUI_IMPL_API void ImGui_ImplDX10_RenderDrawData(ImDrawData* draw_data); - -// Use if you want to reset your rendering device without losing Dear ImGui state. -IMGUI_IMPL_API bool ImGui_ImplDX10_CreateDeviceObjects(); -IMGUI_IMPL_API void ImGui_ImplDX10_InvalidateDeviceObjects(); - -// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = NULL to handle this manually. -IMGUI_IMPL_API void ImGui_ImplDX10_UpdateTexture(ImTextureData* tex); - -// [BETA] Selected render state data shared with callbacks. -// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplDX10_RenderDrawData() call. -// (Please open an issue if you feel you need access to more data) -struct ImGui_ImplDX10_RenderState -{ - ID3D10Device* Device; - ID3D10SamplerState* SamplerDefault; - ID3D10Buffer* VertexConstantBuffer; -}; - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_dx11.cpp b/libs/imgui-1.92.1/backends/imgui_impl_dx11.cpp deleted file mode 100644 index 1b28745..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_dx11.cpp +++ /dev/null @@ -1,677 +0,0 @@ -// dear imgui: Renderer Backend for DirectX11 -// This needs to be used along with a Platform Backend (e.g. Win32) - -// Implemented features: -// [X] Renderer: User texture binding. Use 'ID3D11ShaderResourceView*' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). -// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// CHANGELOG -// (minor and older changes stripped away, please see git history for details) -// 2025-06-11: DirectX11: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas. -// 2025-05-07: DirectX11: Honor draw_data->FramebufferScale to allow for custom backends and experiment using it (consistently with other renderer backends, even though in normal condition it is not set under Windows). -// 2025-01-06: DirectX11: Expose VertexConstantBuffer in ImGui_ImplDX11_RenderState. Reset projection matrix in ImDrawCallback_ResetRenderState handler. -// 2024-10-07: DirectX11: Changed default texture sampler to Clamp instead of Repeat/Wrap. -// 2024-10-07: DirectX11: Expose selected render state in ImGui_ImplDX11_RenderState, which you can access in 'void* platform_io.Renderer_RenderState' during draw callbacks. -// 2022-10-11: Using 'nullptr' instead of 'NULL' as per our switch to C++11. -// 2021-06-29: Reorganized backend to pull data from a single structure to facilitate usage with multiple-contexts (all g_XXXX access changed to bd->XXXX). -// 2021-05-19: DirectX11: Replaced direct access to ImDrawCmd::TextureId with a call to ImDrawCmd::GetTexID(). (will become a requirement) -// 2021-02-18: DirectX11: Change blending equation to preserve alpha in output buffer. -// 2019-08-01: DirectX11: Fixed code querying the Geometry Shader state (would generally error with Debug layer enabled). -// 2019-07-21: DirectX11: Backup, clear and restore Geometry Shader is any is bound when calling ImGui_ImplDX11_RenderDrawData. Clearing Hull/Domain/Compute shaders without backup/restore. -// 2019-05-29: DirectX11: Added support for large mesh (64K+ vertices), enable ImGuiBackendFlags_RendererHasVtxOffset flag. -// 2019-04-30: DirectX11: Added support for special ImDrawCallback_ResetRenderState callback to reset render state. -// 2018-12-03: Misc: Added #pragma comment statement to automatically link with d3dcompiler.lib when using D3DCompile(). -// 2018-11-30: Misc: Setting up io.BackendRendererName so it can be displayed in the About Window. -// 2018-08-01: DirectX11: Querying for IDXGIFactory instead of IDXGIFactory1 to increase compatibility. -// 2018-07-13: DirectX11: Fixed unreleased resources in Init and Shutdown functions. -// 2018-06-08: Misc: Extracted imgui_impl_dx11.cpp/.h away from the old combined DX11+Win32 example. -// 2018-06-08: DirectX11: Use draw_data->DisplayPos and draw_data->DisplaySize to setup projection matrix and clipping rectangle. -// 2018-02-16: Misc: Obsoleted the io.RenderDrawListsFn callback and exposed ImGui_ImplDX11_RenderDrawData() in the .h file so you can call it yourself. -// 2018-02-06: Misc: Removed call to ImGui::Shutdown() which is not available from 1.60 WIP, user needs to call CreateContext/DestroyContext themselves. -// 2016-05-07: DirectX11: Disabling depth-write. - -#include "imgui.h" -#ifndef IMGUI_DISABLE -#include "imgui_impl_dx11.h" - -// DirectX -#include -#include -#include -#ifdef _MSC_VER -#pragma comment(lib, "d3dcompiler") // Automatically link with d3dcompiler.lib as we are using D3DCompile() below. -#endif - -// Clang/GCC warnings with -Weverything -#if defined(__clang__) -#pragma clang diagnostic ignored "-Wold-style-cast" // warning: use of old-style cast // yes, they are more terse. -#pragma clang diagnostic ignored "-Wsign-conversion" // warning: implicit conversion changes signedness -#endif - -// DirectX11 data -struct ImGui_ImplDX11_Texture -{ - ID3D11Texture2D* pTexture; - ID3D11ShaderResourceView* pTextureView; -}; - -struct ImGui_ImplDX11_Data -{ - ID3D11Device* pd3dDevice; - ID3D11DeviceContext* pd3dDeviceContext; - IDXGIFactory* pFactory; - ID3D11Buffer* pVB; - ID3D11Buffer* pIB; - ID3D11VertexShader* pVertexShader; - ID3D11InputLayout* pInputLayout; - ID3D11Buffer* pVertexConstantBuffer; - ID3D11PixelShader* pPixelShader; - ID3D11SamplerState* pFontSampler; - ID3D11RasterizerState* pRasterizerState; - ID3D11BlendState* pBlendState; - ID3D11DepthStencilState* pDepthStencilState; - int VertexBufferSize; - int IndexBufferSize; - - ImGui_ImplDX11_Data() { memset((void*)this, 0, sizeof(*this)); VertexBufferSize = 5000; IndexBufferSize = 10000; } -}; - -struct VERTEX_CONSTANT_BUFFER_DX11 -{ - float mvp[4][4]; -}; - -// Backend data stored in io.BackendRendererUserData to allow support for multiple Dear ImGui contexts -// It is STRONGLY preferred that you use docking branch with multi-viewports (== single Dear ImGui context + multiple windows) instead of multiple Dear ImGui contexts. -static ImGui_ImplDX11_Data* ImGui_ImplDX11_GetBackendData() -{ - return ImGui::GetCurrentContext() ? (ImGui_ImplDX11_Data*)ImGui::GetIO().BackendRendererUserData : nullptr; -} - -// Functions -static void ImGui_ImplDX11_SetupRenderState(ImDrawData* draw_data, ID3D11DeviceContext* device_ctx) -{ - ImGui_ImplDX11_Data* bd = ImGui_ImplDX11_GetBackendData(); - - // Setup viewport - D3D11_VIEWPORT vp = {}; - vp.Width = draw_data->DisplaySize.x * draw_data->FramebufferScale.x; - vp.Height = draw_data->DisplaySize.y * draw_data->FramebufferScale.y; - vp.MinDepth = 0.0f; - vp.MaxDepth = 1.0f; - vp.TopLeftX = vp.TopLeftY = 0; - device_ctx->RSSetViewports(1, &vp); - - // Setup orthographic projection matrix into our constant buffer - // Our visible imgui space lies from draw_data->DisplayPos (top left) to draw_data->DisplayPos+data_data->DisplaySize (bottom right). DisplayPos is (0,0) for single viewport apps. - D3D11_MAPPED_SUBRESOURCE mapped_resource; - if (device_ctx->Map(bd->pVertexConstantBuffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_resource) == S_OK) - { - VERTEX_CONSTANT_BUFFER_DX11* constant_buffer = (VERTEX_CONSTANT_BUFFER_DX11*)mapped_resource.pData; - float L = draw_data->DisplayPos.x; - float R = draw_data->DisplayPos.x + draw_data->DisplaySize.x; - float T = draw_data->DisplayPos.y; - float B = draw_data->DisplayPos.y + draw_data->DisplaySize.y; - float mvp[4][4] = - { - { 2.0f/(R-L), 0.0f, 0.0f, 0.0f }, - { 0.0f, 2.0f/(T-B), 0.0f, 0.0f }, - { 0.0f, 0.0f, 0.5f, 0.0f }, - { (R+L)/(L-R), (T+B)/(B-T), 0.5f, 1.0f }, - }; - memcpy(&constant_buffer->mvp, mvp, sizeof(mvp)); - device_ctx->Unmap(bd->pVertexConstantBuffer, 0); - } - - // Setup shader and vertex buffers - unsigned int stride = sizeof(ImDrawVert); - unsigned int offset = 0; - device_ctx->IASetInputLayout(bd->pInputLayout); - device_ctx->IASetVertexBuffers(0, 1, &bd->pVB, &stride, &offset); - device_ctx->IASetIndexBuffer(bd->pIB, sizeof(ImDrawIdx) == 2 ? DXGI_FORMAT_R16_UINT : DXGI_FORMAT_R32_UINT, 0); - device_ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); - device_ctx->VSSetShader(bd->pVertexShader, nullptr, 0); - device_ctx->VSSetConstantBuffers(0, 1, &bd->pVertexConstantBuffer); - device_ctx->PSSetShader(bd->pPixelShader, nullptr, 0); - device_ctx->PSSetSamplers(0, 1, &bd->pFontSampler); - device_ctx->GSSetShader(nullptr, nullptr, 0); - device_ctx->HSSetShader(nullptr, nullptr, 0); // In theory we should backup and restore this as well.. very infrequently used.. - device_ctx->DSSetShader(nullptr, nullptr, 0); // In theory we should backup and restore this as well.. very infrequently used.. - device_ctx->CSSetShader(nullptr, nullptr, 0); // In theory we should backup and restore this as well.. very infrequently used.. - - // Setup render state - const float blend_factor[4] = { 0.f, 0.f, 0.f, 0.f }; - device_ctx->OMSetBlendState(bd->pBlendState, blend_factor, 0xffffffff); - device_ctx->OMSetDepthStencilState(bd->pDepthStencilState, 0); - device_ctx->RSSetState(bd->pRasterizerState); -} - -// Render function -void ImGui_ImplDX11_RenderDrawData(ImDrawData* draw_data) -{ - // Avoid rendering when minimized - if (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f) - return; - - ImGui_ImplDX11_Data* bd = ImGui_ImplDX11_GetBackendData(); - ID3D11DeviceContext* device = bd->pd3dDeviceContext; - - // Catch up with texture updates. Most of the times, the list will have 1 element with an OK status, aka nothing to do. - // (This almost always points to ImGui::GetPlatformIO().Textures[] but is part of ImDrawData to allow overriding or disabling texture updates). - if (draw_data->Textures != nullptr) - for (ImTextureData* tex : *draw_data->Textures) - if (tex->Status != ImTextureStatus_OK) - ImGui_ImplDX11_UpdateTexture(tex); - - // Create and grow vertex/index buffers if needed - if (!bd->pVB || bd->VertexBufferSize < draw_data->TotalVtxCount) - { - if (bd->pVB) { bd->pVB->Release(); bd->pVB = nullptr; } - bd->VertexBufferSize = draw_data->TotalVtxCount + 5000; - D3D11_BUFFER_DESC desc = {}; - desc.Usage = D3D11_USAGE_DYNAMIC; - desc.ByteWidth = bd->VertexBufferSize * sizeof(ImDrawVert); - desc.BindFlags = D3D11_BIND_VERTEX_BUFFER; - desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE; - desc.MiscFlags = 0; - if (bd->pd3dDevice->CreateBuffer(&desc, nullptr, &bd->pVB) < 0) - return; - } - if (!bd->pIB || bd->IndexBufferSize < draw_data->TotalIdxCount) - { - if (bd->pIB) { bd->pIB->Release(); bd->pIB = nullptr; } - bd->IndexBufferSize = draw_data->TotalIdxCount + 10000; - D3D11_BUFFER_DESC desc = {}; - desc.Usage = D3D11_USAGE_DYNAMIC; - desc.ByteWidth = bd->IndexBufferSize * sizeof(ImDrawIdx); - desc.BindFlags = D3D11_BIND_INDEX_BUFFER; - desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE; - if (bd->pd3dDevice->CreateBuffer(&desc, nullptr, &bd->pIB) < 0) - return; - } - - // Upload vertex/index data into a single contiguous GPU buffer - D3D11_MAPPED_SUBRESOURCE vtx_resource, idx_resource; - if (device->Map(bd->pVB, 0, D3D11_MAP_WRITE_DISCARD, 0, &vtx_resource) != S_OK) - return; - if (device->Map(bd->pIB, 0, D3D11_MAP_WRITE_DISCARD, 0, &idx_resource) != S_OK) - return; - ImDrawVert* vtx_dst = (ImDrawVert*)vtx_resource.pData; - ImDrawIdx* idx_dst = (ImDrawIdx*)idx_resource.pData; - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - memcpy(vtx_dst, draw_list->VtxBuffer.Data, draw_list->VtxBuffer.Size * sizeof(ImDrawVert)); - memcpy(idx_dst, draw_list->IdxBuffer.Data, draw_list->IdxBuffer.Size * sizeof(ImDrawIdx)); - vtx_dst += draw_list->VtxBuffer.Size; - idx_dst += draw_list->IdxBuffer.Size; - } - device->Unmap(bd->pVB, 0); - device->Unmap(bd->pIB, 0); - - // Backup DX state that will be modified to restore it afterwards (unfortunately this is very ugly looking and verbose. Close your eyes!) - struct BACKUP_DX11_STATE - { - UINT ScissorRectsCount, ViewportsCount; - D3D11_RECT ScissorRects[D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE]; - D3D11_VIEWPORT Viewports[D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE]; - ID3D11RasterizerState* RS; - ID3D11BlendState* BlendState; - FLOAT BlendFactor[4]; - UINT SampleMask; - UINT StencilRef; - ID3D11DepthStencilState* DepthStencilState; - ID3D11ShaderResourceView* PSShaderResource; - ID3D11SamplerState* PSSampler; - ID3D11PixelShader* PS; - ID3D11VertexShader* VS; - ID3D11GeometryShader* GS; - UINT PSInstancesCount, VSInstancesCount, GSInstancesCount; - ID3D11ClassInstance *PSInstances[256], *VSInstances[256], *GSInstances[256]; // 256 is max according to PSSetShader documentation - D3D11_PRIMITIVE_TOPOLOGY PrimitiveTopology; - ID3D11Buffer* IndexBuffer, *VertexBuffer, *VSConstantBuffer; - UINT IndexBufferOffset, VertexBufferStride, VertexBufferOffset; - DXGI_FORMAT IndexBufferFormat; - ID3D11InputLayout* InputLayout; - }; - BACKUP_DX11_STATE old = {}; - old.ScissorRectsCount = old.ViewportsCount = D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE; - device->RSGetScissorRects(&old.ScissorRectsCount, old.ScissorRects); - device->RSGetViewports(&old.ViewportsCount, old.Viewports); - device->RSGetState(&old.RS); - device->OMGetBlendState(&old.BlendState, old.BlendFactor, &old.SampleMask); - device->OMGetDepthStencilState(&old.DepthStencilState, &old.StencilRef); - device->PSGetShaderResources(0, 1, &old.PSShaderResource); - device->PSGetSamplers(0, 1, &old.PSSampler); - old.PSInstancesCount = old.VSInstancesCount = old.GSInstancesCount = 256; - device->PSGetShader(&old.PS, old.PSInstances, &old.PSInstancesCount); - device->VSGetShader(&old.VS, old.VSInstances, &old.VSInstancesCount); - device->VSGetConstantBuffers(0, 1, &old.VSConstantBuffer); - device->GSGetShader(&old.GS, old.GSInstances, &old.GSInstancesCount); - - device->IAGetPrimitiveTopology(&old.PrimitiveTopology); - device->IAGetIndexBuffer(&old.IndexBuffer, &old.IndexBufferFormat, &old.IndexBufferOffset); - device->IAGetVertexBuffers(0, 1, &old.VertexBuffer, &old.VertexBufferStride, &old.VertexBufferOffset); - device->IAGetInputLayout(&old.InputLayout); - - // Setup desired DX state - ImGui_ImplDX11_SetupRenderState(draw_data, device); - - // Setup render state structure (for callbacks and custom texture bindings) - ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); - ImGui_ImplDX11_RenderState render_state; - render_state.Device = bd->pd3dDevice; - render_state.DeviceContext = bd->pd3dDeviceContext; - render_state.SamplerDefault = bd->pFontSampler; - render_state.VertexConstantBuffer = bd->pVertexConstantBuffer; - platform_io.Renderer_RenderState = &render_state; - - // Render command lists - // (Because we merged all buffers into a single one, we maintain our own offset into them) - int global_idx_offset = 0; - int global_vtx_offset = 0; - ImVec2 clip_off = draw_data->DisplayPos; - ImVec2 clip_scale = draw_data->FramebufferScale; - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - for (int cmd_i = 0; cmd_i < draw_list->CmdBuffer.Size; cmd_i++) - { - const ImDrawCmd* pcmd = &draw_list->CmdBuffer[cmd_i]; - if (pcmd->UserCallback != nullptr) - { - // User callback, registered via ImDrawList::AddCallback() - // (ImDrawCallback_ResetRenderState is a special callback value used by the user to request the renderer to reset render state.) - if (pcmd->UserCallback == ImDrawCallback_ResetRenderState) - ImGui_ImplDX11_SetupRenderState(draw_data, device); - else - pcmd->UserCallback(draw_list, pcmd); - } - else - { - // Project scissor/clipping rectangles into framebuffer space - ImVec2 clip_min((pcmd->ClipRect.x - clip_off.x) * clip_scale.x, (pcmd->ClipRect.y - clip_off.y) * clip_scale.y); - ImVec2 clip_max((pcmd->ClipRect.z - clip_off.x) * clip_scale.x, (pcmd->ClipRect.w - clip_off.y) * clip_scale.y); - if (clip_max.x <= clip_min.x || clip_max.y <= clip_min.y) - continue; - - // Apply scissor/clipping rectangle - const D3D11_RECT r = { (LONG)clip_min.x, (LONG)clip_min.y, (LONG)clip_max.x, (LONG)clip_max.y }; - device->RSSetScissorRects(1, &r); - - // Bind texture, Draw - ID3D11ShaderResourceView* texture_srv = (ID3D11ShaderResourceView*)pcmd->GetTexID(); - device->PSSetShaderResources(0, 1, &texture_srv); - device->DrawIndexed(pcmd->ElemCount, pcmd->IdxOffset + global_idx_offset, pcmd->VtxOffset + global_vtx_offset); - } - } - global_idx_offset += draw_list->IdxBuffer.Size; - global_vtx_offset += draw_list->VtxBuffer.Size; - } - platform_io.Renderer_RenderState = nullptr; - - // Restore modified DX state - device->RSSetScissorRects(old.ScissorRectsCount, old.ScissorRects); - device->RSSetViewports(old.ViewportsCount, old.Viewports); - device->RSSetState(old.RS); if (old.RS) old.RS->Release(); - device->OMSetBlendState(old.BlendState, old.BlendFactor, old.SampleMask); if (old.BlendState) old.BlendState->Release(); - device->OMSetDepthStencilState(old.DepthStencilState, old.StencilRef); if (old.DepthStencilState) old.DepthStencilState->Release(); - device->PSSetShaderResources(0, 1, &old.PSShaderResource); if (old.PSShaderResource) old.PSShaderResource->Release(); - device->PSSetSamplers(0, 1, &old.PSSampler); if (old.PSSampler) old.PSSampler->Release(); - device->PSSetShader(old.PS, old.PSInstances, old.PSInstancesCount); if (old.PS) old.PS->Release(); - for (UINT i = 0; i < old.PSInstancesCount; i++) if (old.PSInstances[i]) old.PSInstances[i]->Release(); - device->VSSetShader(old.VS, old.VSInstances, old.VSInstancesCount); if (old.VS) old.VS->Release(); - device->VSSetConstantBuffers(0, 1, &old.VSConstantBuffer); if (old.VSConstantBuffer) old.VSConstantBuffer->Release(); - device->GSSetShader(old.GS, old.GSInstances, old.GSInstancesCount); if (old.GS) old.GS->Release(); - for (UINT i = 0; i < old.VSInstancesCount; i++) if (old.VSInstances[i]) old.VSInstances[i]->Release(); - device->IASetPrimitiveTopology(old.PrimitiveTopology); - device->IASetIndexBuffer(old.IndexBuffer, old.IndexBufferFormat, old.IndexBufferOffset); if (old.IndexBuffer) old.IndexBuffer->Release(); - device->IASetVertexBuffers(0, 1, &old.VertexBuffer, &old.VertexBufferStride, &old.VertexBufferOffset); if (old.VertexBuffer) old.VertexBuffer->Release(); - device->IASetInputLayout(old.InputLayout); if (old.InputLayout) old.InputLayout->Release(); -} - -static void ImGui_ImplDX11_DestroyTexture(ImTextureData* tex) -{ - ImGui_ImplDX11_Texture* backend_tex = (ImGui_ImplDX11_Texture*)tex->BackendUserData; - if (backend_tex == nullptr) - return; - IM_ASSERT(backend_tex->pTextureView == (ID3D11ShaderResourceView*)(intptr_t)tex->TexID); - backend_tex->pTextureView->Release(); - backend_tex->pTexture->Release(); - IM_DELETE(backend_tex); - - // Clear identifiers and mark as destroyed (in order to allow e.g. calling InvalidateDeviceObjects while running) - tex->SetTexID(ImTextureID_Invalid); - tex->SetStatus(ImTextureStatus_Destroyed); - tex->BackendUserData = nullptr; -} - -void ImGui_ImplDX11_UpdateTexture(ImTextureData* tex) -{ - ImGui_ImplDX11_Data* bd = ImGui_ImplDX11_GetBackendData(); - if (tex->Status == ImTextureStatus_WantCreate) - { - // Create and upload new texture to graphics system - //IMGUI_DEBUG_LOG("UpdateTexture #%03d: WantCreate %dx%d\n", tex->UniqueID, tex->Width, tex->Height); - IM_ASSERT(tex->TexID == ImTextureID_Invalid && tex->BackendUserData == nullptr); - IM_ASSERT(tex->Format == ImTextureFormat_RGBA32); - unsigned int* pixels = (unsigned int*)tex->GetPixels(); - ImGui_ImplDX11_Texture* backend_tex = IM_NEW(ImGui_ImplDX11_Texture)(); - - // Create texture - D3D11_TEXTURE2D_DESC desc; - ZeroMemory(&desc, sizeof(desc)); - desc.Width = (UINT)tex->Width; - desc.Height = (UINT)tex->Height; - desc.MipLevels = 1; - desc.ArraySize = 1; - desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - desc.SampleDesc.Count = 1; - desc.Usage = D3D11_USAGE_DEFAULT; - desc.BindFlags = D3D11_BIND_SHADER_RESOURCE; - desc.CPUAccessFlags = 0; - D3D11_SUBRESOURCE_DATA subResource; - subResource.pSysMem = pixels; - subResource.SysMemPitch = desc.Width * 4; - subResource.SysMemSlicePitch = 0; - bd->pd3dDevice->CreateTexture2D(&desc, &subResource, &backend_tex->pTexture); - IM_ASSERT(backend_tex->pTexture != nullptr && "Backend failed to create texture!"); - - // Create texture view - D3D11_SHADER_RESOURCE_VIEW_DESC srvDesc; - ZeroMemory(&srvDesc, sizeof(srvDesc)); - srvDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; - srvDesc.Texture2D.MipLevels = desc.MipLevels; - srvDesc.Texture2D.MostDetailedMip = 0; - bd->pd3dDevice->CreateShaderResourceView(backend_tex->pTexture, &srvDesc, &backend_tex->pTextureView); - IM_ASSERT(backend_tex->pTextureView != nullptr && "Backend failed to create texture!"); - - // Store identifiers - tex->SetTexID((ImTextureID)(intptr_t)backend_tex->pTextureView); - tex->SetStatus(ImTextureStatus_OK); - tex->BackendUserData = backend_tex; - } - else if (tex->Status == ImTextureStatus_WantUpdates) - { - // Update selected blocks. We only ever write to textures regions which have never been used before! - // This backend choose to use tex->Updates[] but you can use tex->UpdateRect to upload a single region. - ImGui_ImplDX11_Texture* backend_tex = (ImGui_ImplDX11_Texture*)tex->BackendUserData; - IM_ASSERT(backend_tex->pTextureView == (ID3D11ShaderResourceView*)(intptr_t)tex->TexID); - for (ImTextureRect& r : tex->Updates) - { - D3D11_BOX box = { (UINT)r.x, (UINT)r.y, (UINT)0, (UINT)(r.x + r.w), (UINT)(r.y + r .h), (UINT)1 }; - bd->pd3dDeviceContext->UpdateSubresource(backend_tex->pTexture, 0, &box, tex->GetPixelsAt(r.x, r.y), (UINT)tex->GetPitch(), 0); - } - tex->SetStatus(ImTextureStatus_OK); - } - if (tex->Status == ImTextureStatus_WantDestroy && tex->UnusedFrames > 0) - ImGui_ImplDX11_DestroyTexture(tex); -} - -bool ImGui_ImplDX11_CreateDeviceObjects() -{ - ImGui_ImplDX11_Data* bd = ImGui_ImplDX11_GetBackendData(); - if (!bd->pd3dDevice) - return false; - ImGui_ImplDX11_InvalidateDeviceObjects(); - - // By using D3DCompile() from / d3dcompiler.lib, we introduce a dependency to a given version of d3dcompiler_XX.dll (see D3DCOMPILER_DLL_A) - // If you would like to use this DX11 sample code but remove this dependency you can: - // 1) compile once, save the compiled shader blobs into a file or source code and pass them to CreateVertexShader()/CreatePixelShader() [preferred solution] - // 2) use code to detect any version of the DLL and grab a pointer to D3DCompile from the DLL. - // See https://github.com/ocornut/imgui/pull/638 for sources and details. - - // Create the vertex shader - { - static const char* vertexShader = - "cbuffer vertexBuffer : register(b0) \ - {\ - float4x4 ProjectionMatrix; \ - };\ - struct VS_INPUT\ - {\ - float2 pos : POSITION;\ - float4 col : COLOR0;\ - float2 uv : TEXCOORD0;\ - };\ - \ - struct PS_INPUT\ - {\ - float4 pos : SV_POSITION;\ - float4 col : COLOR0;\ - float2 uv : TEXCOORD0;\ - };\ - \ - PS_INPUT main(VS_INPUT input)\ - {\ - PS_INPUT output;\ - output.pos = mul( ProjectionMatrix, float4(input.pos.xy, 0.f, 1.f));\ - output.col = input.col;\ - output.uv = input.uv;\ - return output;\ - }"; - - ID3DBlob* vertexShaderBlob; - if (FAILED(D3DCompile(vertexShader, strlen(vertexShader), nullptr, nullptr, nullptr, "main", "vs_4_0", 0, 0, &vertexShaderBlob, nullptr))) - return false; // NB: Pass ID3DBlob* pErrorBlob to D3DCompile() to get error showing in (const char*)pErrorBlob->GetBufferPointer(). Make sure to Release() the blob! - if (bd->pd3dDevice->CreateVertexShader(vertexShaderBlob->GetBufferPointer(), vertexShaderBlob->GetBufferSize(), nullptr, &bd->pVertexShader) != S_OK) - { - vertexShaderBlob->Release(); - return false; - } - - // Create the input layout - D3D11_INPUT_ELEMENT_DESC local_layout[] = - { - { "POSITION", 0, DXGI_FORMAT_R32G32_FLOAT, 0, (UINT)offsetof(ImDrawVert, pos), D3D11_INPUT_PER_VERTEX_DATA, 0 }, - { "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, (UINT)offsetof(ImDrawVert, uv), D3D11_INPUT_PER_VERTEX_DATA, 0 }, - { "COLOR", 0, DXGI_FORMAT_R8G8B8A8_UNORM, 0, (UINT)offsetof(ImDrawVert, col), D3D11_INPUT_PER_VERTEX_DATA, 0 }, - }; - if (bd->pd3dDevice->CreateInputLayout(local_layout, 3, vertexShaderBlob->GetBufferPointer(), vertexShaderBlob->GetBufferSize(), &bd->pInputLayout) != S_OK) - { - vertexShaderBlob->Release(); - return false; - } - vertexShaderBlob->Release(); - - // Create the constant buffer - { - D3D11_BUFFER_DESC desc = {}; - desc.ByteWidth = sizeof(VERTEX_CONSTANT_BUFFER_DX11); - desc.Usage = D3D11_USAGE_DYNAMIC; - desc.BindFlags = D3D11_BIND_CONSTANT_BUFFER; - desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE; - desc.MiscFlags = 0; - bd->pd3dDevice->CreateBuffer(&desc, nullptr, &bd->pVertexConstantBuffer); - } - } - - // Create the pixel shader - { - static const char* pixelShader = - "struct PS_INPUT\ - {\ - float4 pos : SV_POSITION;\ - float4 col : COLOR0;\ - float2 uv : TEXCOORD0;\ - };\ - sampler sampler0;\ - Texture2D texture0;\ - \ - float4 main(PS_INPUT input) : SV_Target\ - {\ - float4 out_col = input.col * texture0.Sample(sampler0, input.uv); \ - return out_col; \ - }"; - - ID3DBlob* pixelShaderBlob; - if (FAILED(D3DCompile(pixelShader, strlen(pixelShader), nullptr, nullptr, nullptr, "main", "ps_4_0", 0, 0, &pixelShaderBlob, nullptr))) - return false; // NB: Pass ID3DBlob* pErrorBlob to D3DCompile() to get error showing in (const char*)pErrorBlob->GetBufferPointer(). Make sure to Release() the blob! - if (bd->pd3dDevice->CreatePixelShader(pixelShaderBlob->GetBufferPointer(), pixelShaderBlob->GetBufferSize(), nullptr, &bd->pPixelShader) != S_OK) - { - pixelShaderBlob->Release(); - return false; - } - pixelShaderBlob->Release(); - } - - // Create the blending setup - { - D3D11_BLEND_DESC desc; - ZeroMemory(&desc, sizeof(desc)); - desc.AlphaToCoverageEnable = false; - desc.RenderTarget[0].BlendEnable = true; - desc.RenderTarget[0].SrcBlend = D3D11_BLEND_SRC_ALPHA; - desc.RenderTarget[0].DestBlend = D3D11_BLEND_INV_SRC_ALPHA; - desc.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD; - desc.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_ONE; - desc.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_INV_SRC_ALPHA; - desc.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD; - desc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL; - bd->pd3dDevice->CreateBlendState(&desc, &bd->pBlendState); - } - - // Create the rasterizer state - { - D3D11_RASTERIZER_DESC desc; - ZeroMemory(&desc, sizeof(desc)); - desc.FillMode = D3D11_FILL_SOLID; - desc.CullMode = D3D11_CULL_NONE; - desc.ScissorEnable = true; - desc.DepthClipEnable = true; - bd->pd3dDevice->CreateRasterizerState(&desc, &bd->pRasterizerState); - } - - // Create depth-stencil State - { - D3D11_DEPTH_STENCIL_DESC desc; - ZeroMemory(&desc, sizeof(desc)); - desc.DepthEnable = false; - desc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL; - desc.DepthFunc = D3D11_COMPARISON_ALWAYS; - desc.StencilEnable = false; - desc.FrontFace.StencilFailOp = desc.FrontFace.StencilDepthFailOp = desc.FrontFace.StencilPassOp = D3D11_STENCIL_OP_KEEP; - desc.FrontFace.StencilFunc = D3D11_COMPARISON_ALWAYS; - desc.BackFace = desc.FrontFace; - bd->pd3dDevice->CreateDepthStencilState(&desc, &bd->pDepthStencilState); - } - - // Create texture sampler - // (Bilinear sampling is required by default. Set 'io.Fonts->Flags |= ImFontAtlasFlags_NoBakedLines' or 'style.AntiAliasedLinesUseTex = false' to allow point/nearest sampling) - { - D3D11_SAMPLER_DESC desc; - ZeroMemory(&desc, sizeof(desc)); - desc.Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR; - desc.AddressU = D3D11_TEXTURE_ADDRESS_CLAMP; - desc.AddressV = D3D11_TEXTURE_ADDRESS_CLAMP; - desc.AddressW = D3D11_TEXTURE_ADDRESS_CLAMP; - desc.MipLODBias = 0.f; - desc.ComparisonFunc = D3D11_COMPARISON_ALWAYS; - desc.MinLOD = 0.f; - desc.MaxLOD = 0.f; - bd->pd3dDevice->CreateSamplerState(&desc, &bd->pFontSampler); - } - - return true; -} - -void ImGui_ImplDX11_InvalidateDeviceObjects() -{ - ImGui_ImplDX11_Data* bd = ImGui_ImplDX11_GetBackendData(); - if (!bd->pd3dDevice) - return; - - // Destroy all textures - for (ImTextureData* tex : ImGui::GetPlatformIO().Textures) - if (tex->RefCount == 1) - ImGui_ImplDX11_DestroyTexture(tex); - - if (bd->pFontSampler) { bd->pFontSampler->Release(); bd->pFontSampler = nullptr; } - if (bd->pIB) { bd->pIB->Release(); bd->pIB = nullptr; } - if (bd->pVB) { bd->pVB->Release(); bd->pVB = nullptr; } - if (bd->pBlendState) { bd->pBlendState->Release(); bd->pBlendState = nullptr; } - if (bd->pDepthStencilState) { bd->pDepthStencilState->Release(); bd->pDepthStencilState = nullptr; } - if (bd->pRasterizerState) { bd->pRasterizerState->Release(); bd->pRasterizerState = nullptr; } - if (bd->pPixelShader) { bd->pPixelShader->Release(); bd->pPixelShader = nullptr; } - if (bd->pVertexConstantBuffer) { bd->pVertexConstantBuffer->Release(); bd->pVertexConstantBuffer = nullptr; } - if (bd->pInputLayout) { bd->pInputLayout->Release(); bd->pInputLayout = nullptr; } - if (bd->pVertexShader) { bd->pVertexShader->Release(); bd->pVertexShader = nullptr; } -} - -bool ImGui_ImplDX11_Init(ID3D11Device* device, ID3D11DeviceContext* device_context) -{ - ImGuiIO& io = ImGui::GetIO(); - IMGUI_CHECKVERSION(); - IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); - - // Setup backend capabilities flags - ImGui_ImplDX11_Data* bd = IM_NEW(ImGui_ImplDX11_Data)(); - io.BackendRendererUserData = (void*)bd; - io.BackendRendererName = "imgui_impl_dx11"; - io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset; // We can honor the ImDrawCmd::VtxOffset field, allowing for large meshes. - io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures; // We can honor ImGuiPlatformIO::Textures[] requests during render. - - ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); - platform_io.Renderer_TextureMaxWidth = platform_io.Renderer_TextureMaxHeight = D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION; - - // Get factory from device - IDXGIDevice* pDXGIDevice = nullptr; - IDXGIAdapter* pDXGIAdapter = nullptr; - IDXGIFactory* pFactory = nullptr; - - if (device->QueryInterface(IID_PPV_ARGS(&pDXGIDevice)) == S_OK) - if (pDXGIDevice->GetParent(IID_PPV_ARGS(&pDXGIAdapter)) == S_OK) - if (pDXGIAdapter->GetParent(IID_PPV_ARGS(&pFactory)) == S_OK) - { - bd->pd3dDevice = device; - bd->pd3dDeviceContext = device_context; - bd->pFactory = pFactory; - } - if (pDXGIDevice) pDXGIDevice->Release(); - if (pDXGIAdapter) pDXGIAdapter->Release(); - bd->pd3dDevice->AddRef(); - bd->pd3dDeviceContext->AddRef(); - - return true; -} - -void ImGui_ImplDX11_Shutdown() -{ - ImGui_ImplDX11_Data* bd = ImGui_ImplDX11_GetBackendData(); - IM_ASSERT(bd != nullptr && "No renderer backend to shutdown, or already shutdown?"); - ImGuiIO& io = ImGui::GetIO(); - - ImGui_ImplDX11_InvalidateDeviceObjects(); - if (bd->pFactory) { bd->pFactory->Release(); } - if (bd->pd3dDevice) { bd->pd3dDevice->Release(); } - if (bd->pd3dDeviceContext) { bd->pd3dDeviceContext->Release(); } - io.BackendRendererName = nullptr; - io.BackendRendererUserData = nullptr; - io.BackendFlags &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures); - IM_DELETE(bd); -} - -void ImGui_ImplDX11_NewFrame() -{ - ImGui_ImplDX11_Data* bd = ImGui_ImplDX11_GetBackendData(); - IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplDX11_Init()?"); - - if (!bd->pVertexShader) - if (!ImGui_ImplDX11_CreateDeviceObjects()) - IM_ASSERT(0 && "ImGui_ImplDX11_CreateDeviceObjects() failed!"); -} - -//----------------------------------------------------------------------------- - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_dx11.h b/libs/imgui-1.92.1/backends/imgui_impl_dx11.h deleted file mode 100644 index c120bf0..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_dx11.h +++ /dev/null @@ -1,51 +0,0 @@ -// dear imgui: Renderer Backend for DirectX11 -// This needs to be used along with a Platform Backend (e.g. Win32) - -// Implemented features: -// [X] Renderer: User texture binding. Use 'ID3D11ShaderResourceView*' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). -// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#pragma once -#include "imgui.h" // IMGUI_IMPL_API -#ifndef IMGUI_DISABLE - -struct ID3D11Device; -struct ID3D11DeviceContext; -struct ID3D11SamplerState; -struct ID3D11Buffer; - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplDX11_Init(ID3D11Device* device, ID3D11DeviceContext* device_context); -IMGUI_IMPL_API void ImGui_ImplDX11_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplDX11_NewFrame(); -IMGUI_IMPL_API void ImGui_ImplDX11_RenderDrawData(ImDrawData* draw_data); - -// Use if you want to reset your rendering device without losing Dear ImGui state. -IMGUI_IMPL_API bool ImGui_ImplDX11_CreateDeviceObjects(); -IMGUI_IMPL_API void ImGui_ImplDX11_InvalidateDeviceObjects(); - -// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = NULL to handle this manually. -IMGUI_IMPL_API void ImGui_ImplDX11_UpdateTexture(ImTextureData* tex); - -// [BETA] Selected render state data shared with callbacks. -// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplDX11_RenderDrawData() call. -// (Please open an issue if you feel you need access to more data) -struct ImGui_ImplDX11_RenderState -{ - ID3D11Device* Device; - ID3D11DeviceContext* DeviceContext; - ID3D11SamplerState* SamplerDefault; - ID3D11Buffer* VertexConstantBuffer; -}; - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_dx12.cpp b/libs/imgui-1.92.1/backends/imgui_impl_dx12.cpp deleted file mode 100644 index 5578509..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_dx12.cpp +++ /dev/null @@ -1,934 +0,0 @@ -// dear imgui: Renderer Backend for DirectX12 -// This needs to be used along with a Platform Backend (e.g. Win32) - -// Implemented features: -// [X] Renderer: User texture binding. Use 'D3D12_GPU_DESCRIPTOR_HANDLE' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). -// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'. - -// The aim of imgui_impl_dx12.h/.cpp is to be usable in your engine without any modification. -// IF YOU FEEL YOU NEED TO MAKE ANY CHANGE TO THIS CODE, please share them and your feedback at https://github.com/ocornut/imgui/ - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// CHANGELOG -// (minor and older changes stripped away, please see git history for details) -// 2025-06-19: Fixed build on MinGW. (#8702, #4594) -// 2025-06-11: DirectX12: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas. -// 2025-05-07: DirectX12: Honor draw_data->FramebufferScale to allow for custom backends and experiment using it (consistently with other renderer backends, even though in normal condition it is not set under Windows). -// 2025-02-24: DirectX12: Fixed an issue where ImGui_ImplDX12_Init() signature change from 2024-11-15 combined with change from 2025-01-15 made legacy ImGui_ImplDX12_Init() crash. (#8429) -// 2025-01-15: DirectX12: Texture upload use the command queue provided in ImGui_ImplDX12_InitInfo instead of creating its own. -// 2024-12-09: DirectX12: Let user specifies the DepthStencilView format by setting ImGui_ImplDX12_InitInfo::DSVFormat. -// 2024-11-15: DirectX12: *BREAKING CHANGE* Changed ImGui_ImplDX12_Init() signature to take a ImGui_ImplDX12_InitInfo struct. Legacy ImGui_ImplDX12_Init() signature is still supported (will obsolete). -// 2024-11-15: DirectX12: *BREAKING CHANGE* User is now required to pass function pointers to allocate/free SRV Descriptors. We provide convenience legacy fields to pass a single descriptor, matching the old API, but upcoming features will want multiple. -// 2024-10-23: DirectX12: Unmap() call specify written range. The range is informational and may be used by debug tools. -// 2024-10-07: DirectX12: Changed default texture sampler to Clamp instead of Repeat/Wrap. -// 2024-10-07: DirectX12: Expose selected render state in ImGui_ImplDX12_RenderState, which you can access in 'void* platform_io.Renderer_RenderState' during draw callbacks. -// 2024-10-07: DirectX12: Compiling with '#define ImTextureID=ImU64' is unnecessary now that dear imgui defaults ImTextureID to u64 instead of void*. -// 2022-10-11: Using 'nullptr' instead of 'NULL' as per our switch to C++11. -// 2021-06-29: Reorganized backend to pull data from a single structure to facilitate usage with multiple-contexts (all g_XXXX access changed to bd->XXXX). -// 2021-05-19: DirectX12: Replaced direct access to ImDrawCmd::TextureId with a call to ImDrawCmd::GetTexID(). (will become a requirement) -// 2021-02-18: DirectX12: Change blending equation to preserve alpha in output buffer. -// 2021-01-11: DirectX12: Improve Windows 7 compatibility (for D3D12On7) by loading d3d12.dll dynamically. -// 2020-09-16: DirectX12: Avoid rendering calls with zero-sized scissor rectangle since it generates a validation layer warning. -// 2020-09-08: DirectX12: Clarified support for building on 32-bit systems by redefining ImTextureID. -// 2019-10-18: DirectX12: *BREAKING CHANGE* Added extra ID3D12DescriptorHeap parameter to ImGui_ImplDX12_Init() function. -// 2019-05-29: DirectX12: Added support for large mesh (64K+ vertices), enable ImGuiBackendFlags_RendererHasVtxOffset flag. -// 2019-04-30: DirectX12: Added support for special ImDrawCallback_ResetRenderState callback to reset render state. -// 2019-03-29: Misc: Various minor tidying up. -// 2018-12-03: Misc: Added #pragma comment statement to automatically link with d3dcompiler.lib when using D3DCompile(). -// 2018-11-30: Misc: Setting up io.BackendRendererName so it can be displayed in the About Window. -// 2018-06-12: DirectX12: Moved the ID3D12GraphicsCommandList* parameter from NewFrame() to RenderDrawData(). -// 2018-06-08: Misc: Extracted imgui_impl_dx12.cpp/.h away from the old combined DX12+Win32 example. -// 2018-06-08: DirectX12: Use draw_data->DisplayPos and draw_data->DisplaySize to setup projection matrix and clipping rectangle (to ease support for future multi-viewport). -// 2018-02-22: Merged into master with all Win32 code synchronized to other examples. - -#include "imgui.h" -#ifndef IMGUI_DISABLE -#include "imgui_impl_dx12.h" - -// DirectX -#include -#include -#include -#ifdef _MSC_VER -#pragma comment(lib, "d3dcompiler") // Automatically link with d3dcompiler.lib as we are using D3DCompile() below. -#endif - -// Clang/GCC warnings with -Weverything -#if defined(__clang__) -#pragma clang diagnostic ignored "-Wold-style-cast" // warning: use of old-style cast // yes, they are more terse. -#pragma clang diagnostic ignored "-Wsign-conversion" // warning: implicit conversion changes signedness -#endif - -// MinGW workaround, see #4594 -typedef decltype(D3D12SerializeRootSignature) *_PFN_D3D12_SERIALIZE_ROOT_SIGNATURE; - -// DirectX12 data -struct ImGui_ImplDX12_RenderBuffers; - -struct ImGui_ImplDX12_Texture -{ - ID3D12Resource* pTextureResource; - D3D12_CPU_DESCRIPTOR_HANDLE hFontSrvCpuDescHandle; - D3D12_GPU_DESCRIPTOR_HANDLE hFontSrvGpuDescHandle; - - ImGui_ImplDX12_Texture() { memset((void*)this, 0, sizeof(*this)); } -}; - -struct ImGui_ImplDX12_Data -{ - ImGui_ImplDX12_InitInfo InitInfo; - ID3D12Device* pd3dDevice; - ID3D12RootSignature* pRootSignature; - ID3D12PipelineState* pPipelineState; - ID3D12CommandQueue* pCommandQueue; - bool commandQueueOwned; - DXGI_FORMAT RTVFormat; - DXGI_FORMAT DSVFormat; - ID3D12DescriptorHeap* pd3dSrvDescHeap; - UINT numFramesInFlight; - - ImGui_ImplDX12_RenderBuffers* pFrameResources; - UINT frameIndex; - - ImGui_ImplDX12_Texture FontTexture; - bool LegacySingleDescriptorUsed; - - ImGui_ImplDX12_Data() { memset((void*)this, 0, sizeof(*this)); frameIndex = UINT_MAX; } -}; - -// Backend data stored in io.BackendRendererUserData to allow support for multiple Dear ImGui contexts -// It is STRONGLY preferred that you use docking branch with multi-viewports (== single Dear ImGui context + multiple windows) instead of multiple Dear ImGui contexts. -static ImGui_ImplDX12_Data* ImGui_ImplDX12_GetBackendData() -{ - return ImGui::GetCurrentContext() ? (ImGui_ImplDX12_Data*)ImGui::GetIO().BackendRendererUserData : nullptr; -} - -// Buffers used during the rendering of a frame -struct ImGui_ImplDX12_RenderBuffers -{ - ID3D12Resource* IndexBuffer; - ID3D12Resource* VertexBuffer; - int IndexBufferSize; - int VertexBufferSize; -}; - -struct VERTEX_CONSTANT_BUFFER_DX12 -{ - float mvp[4][4]; -}; - -// Functions -static void ImGui_ImplDX12_SetupRenderState(ImDrawData* draw_data, ID3D12GraphicsCommandList* command_list, ImGui_ImplDX12_RenderBuffers* fr) -{ - ImGui_ImplDX12_Data* bd = ImGui_ImplDX12_GetBackendData(); - - // Setup orthographic projection matrix into our constant buffer - // Our visible imgui space lies from draw_data->DisplayPos (top left) to draw_data->DisplayPos+data_data->DisplaySize (bottom right). - VERTEX_CONSTANT_BUFFER_DX12 vertex_constant_buffer; - { - float L = draw_data->DisplayPos.x; - float R = draw_data->DisplayPos.x + draw_data->DisplaySize.x; - float T = draw_data->DisplayPos.y; - float B = draw_data->DisplayPos.y + draw_data->DisplaySize.y; - float mvp[4][4] = - { - { 2.0f/(R-L), 0.0f, 0.0f, 0.0f }, - { 0.0f, 2.0f/(T-B), 0.0f, 0.0f }, - { 0.0f, 0.0f, 0.5f, 0.0f }, - { (R+L)/(L-R), (T+B)/(B-T), 0.5f, 1.0f }, - }; - memcpy(&vertex_constant_buffer.mvp, mvp, sizeof(mvp)); - } - - // Setup viewport - D3D12_VIEWPORT vp = {}; - vp.Width = draw_data->DisplaySize.x * draw_data->FramebufferScale.x; - vp.Height = draw_data->DisplaySize.y * draw_data->FramebufferScale.y; - vp.MinDepth = 0.0f; - vp.MaxDepth = 1.0f; - vp.TopLeftX = vp.TopLeftY = 0.0f; - command_list->RSSetViewports(1, &vp); - - // Bind shader and vertex buffers - unsigned int stride = sizeof(ImDrawVert); - unsigned int offset = 0; - D3D12_VERTEX_BUFFER_VIEW vbv = {}; - vbv.BufferLocation = fr->VertexBuffer->GetGPUVirtualAddress() + offset; - vbv.SizeInBytes = fr->VertexBufferSize * stride; - vbv.StrideInBytes = stride; - command_list->IASetVertexBuffers(0, 1, &vbv); - D3D12_INDEX_BUFFER_VIEW ibv = {}; - ibv.BufferLocation = fr->IndexBuffer->GetGPUVirtualAddress(); - ibv.SizeInBytes = fr->IndexBufferSize * sizeof(ImDrawIdx); - ibv.Format = sizeof(ImDrawIdx) == 2 ? DXGI_FORMAT_R16_UINT : DXGI_FORMAT_R32_UINT; - command_list->IASetIndexBuffer(&ibv); - command_list->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); - command_list->SetPipelineState(bd->pPipelineState); - command_list->SetGraphicsRootSignature(bd->pRootSignature); - command_list->SetGraphicsRoot32BitConstants(0, 16, &vertex_constant_buffer, 0); - - // Setup blend factor - const float blend_factor[4] = { 0.f, 0.f, 0.f, 0.f }; - command_list->OMSetBlendFactor(blend_factor); -} - -template -static inline void SafeRelease(T*& res) -{ - if (res) - res->Release(); - res = nullptr; -} - -// Render function -void ImGui_ImplDX12_RenderDrawData(ImDrawData* draw_data, ID3D12GraphicsCommandList* command_list) -{ - // Avoid rendering when minimized - if (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f) - return; - - // Catch up with texture updates. Most of the times, the list will have 1 element with an OK status, aka nothing to do. - // (This almost always points to ImGui::GetPlatformIO().Textures[] but is part of ImDrawData to allow overriding or disabling texture updates). - if (draw_data->Textures != nullptr) - for (ImTextureData* tex : *draw_data->Textures) - if (tex->Status != ImTextureStatus_OK) - ImGui_ImplDX12_UpdateTexture(tex); - - // FIXME: We are assuming that this only gets called once per frame! - ImGui_ImplDX12_Data* bd = ImGui_ImplDX12_GetBackendData(); - bd->frameIndex = bd->frameIndex + 1; - ImGui_ImplDX12_RenderBuffers* fr = &bd->pFrameResources[bd->frameIndex % bd->numFramesInFlight]; - - // Create and grow vertex/index buffers if needed - if (fr->VertexBuffer == nullptr || fr->VertexBufferSize < draw_data->TotalVtxCount) - { - SafeRelease(fr->VertexBuffer); - fr->VertexBufferSize = draw_data->TotalVtxCount + 5000; - D3D12_HEAP_PROPERTIES props = {}; - props.Type = D3D12_HEAP_TYPE_UPLOAD; - props.CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN; - props.MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN; - D3D12_RESOURCE_DESC desc = {}; - desc.Dimension = D3D12_RESOURCE_DIMENSION_BUFFER; - desc.Width = fr->VertexBufferSize * sizeof(ImDrawVert); - desc.Height = 1; - desc.DepthOrArraySize = 1; - desc.MipLevels = 1; - desc.Format = DXGI_FORMAT_UNKNOWN; - desc.SampleDesc.Count = 1; - desc.Layout = D3D12_TEXTURE_LAYOUT_ROW_MAJOR; - desc.Flags = D3D12_RESOURCE_FLAG_NONE; - if (bd->pd3dDevice->CreateCommittedResource(&props, D3D12_HEAP_FLAG_NONE, &desc, D3D12_RESOURCE_STATE_GENERIC_READ, nullptr, IID_PPV_ARGS(&fr->VertexBuffer)) < 0) - return; - } - if (fr->IndexBuffer == nullptr || fr->IndexBufferSize < draw_data->TotalIdxCount) - { - SafeRelease(fr->IndexBuffer); - fr->IndexBufferSize = draw_data->TotalIdxCount + 10000; - D3D12_HEAP_PROPERTIES props = {}; - props.Type = D3D12_HEAP_TYPE_UPLOAD; - props.CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN; - props.MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN; - D3D12_RESOURCE_DESC desc = {}; - desc.Dimension = D3D12_RESOURCE_DIMENSION_BUFFER; - desc.Width = fr->IndexBufferSize * sizeof(ImDrawIdx); - desc.Height = 1; - desc.DepthOrArraySize = 1; - desc.MipLevels = 1; - desc.Format = DXGI_FORMAT_UNKNOWN; - desc.SampleDesc.Count = 1; - desc.Layout = D3D12_TEXTURE_LAYOUT_ROW_MAJOR; - desc.Flags = D3D12_RESOURCE_FLAG_NONE; - if (bd->pd3dDevice->CreateCommittedResource(&props, D3D12_HEAP_FLAG_NONE, &desc, D3D12_RESOURCE_STATE_GENERIC_READ, nullptr, IID_PPV_ARGS(&fr->IndexBuffer)) < 0) - return; - } - - // Upload vertex/index data into a single contiguous GPU buffer - // During Map() we specify a null read range (as per DX12 API, this is informational and for tooling only) - void* vtx_resource, *idx_resource; - D3D12_RANGE range = { 0, 0 }; - if (fr->VertexBuffer->Map(0, &range, &vtx_resource) != S_OK) - return; - if (fr->IndexBuffer->Map(0, &range, &idx_resource) != S_OK) - return; - ImDrawVert* vtx_dst = (ImDrawVert*)vtx_resource; - ImDrawIdx* idx_dst = (ImDrawIdx*)idx_resource; - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - memcpy(vtx_dst, draw_list->VtxBuffer.Data, draw_list->VtxBuffer.Size * sizeof(ImDrawVert)); - memcpy(idx_dst, draw_list->IdxBuffer.Data, draw_list->IdxBuffer.Size * sizeof(ImDrawIdx)); - vtx_dst += draw_list->VtxBuffer.Size; - idx_dst += draw_list->IdxBuffer.Size; - } - - // During Unmap() we specify the written range (as per DX12 API, this is informational and for tooling only) - range.End = (SIZE_T)((intptr_t)vtx_dst - (intptr_t)vtx_resource); - IM_ASSERT(range.End == draw_data->TotalVtxCount * sizeof(ImDrawVert)); - fr->VertexBuffer->Unmap(0, &range); - range.End = (SIZE_T)((intptr_t)idx_dst - (intptr_t)idx_resource); - IM_ASSERT(range.End == draw_data->TotalIdxCount * sizeof(ImDrawIdx)); - fr->IndexBuffer->Unmap(0, &range); - - // Setup desired DX state - ImGui_ImplDX12_SetupRenderState(draw_data, command_list, fr); - - // Setup render state structure (for callbacks and custom texture bindings) - ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); - ImGui_ImplDX12_RenderState render_state; - render_state.Device = bd->pd3dDevice; - render_state.CommandList = command_list; - platform_io.Renderer_RenderState = &render_state; - - // Render command lists - // (Because we merged all buffers into a single one, we maintain our own offset into them) - int global_vtx_offset = 0; - int global_idx_offset = 0; - ImVec2 clip_off = draw_data->DisplayPos; - ImVec2 clip_scale = draw_data->FramebufferScale; - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - for (int cmd_i = 0; cmd_i < draw_list->CmdBuffer.Size; cmd_i++) - { - const ImDrawCmd* pcmd = &draw_list->CmdBuffer[cmd_i]; - if (pcmd->UserCallback != nullptr) - { - // User callback, registered via ImDrawList::AddCallback() - // (ImDrawCallback_ResetRenderState is a special callback value used by the user to request the renderer to reset render state.) - if (pcmd->UserCallback == ImDrawCallback_ResetRenderState) - ImGui_ImplDX12_SetupRenderState(draw_data, command_list, fr); - else - pcmd->UserCallback(draw_list, pcmd); - } - else - { - // Project scissor/clipping rectangles into framebuffer space - ImVec2 clip_min((pcmd->ClipRect.x - clip_off.x) * clip_scale.x, (pcmd->ClipRect.y - clip_off.y) * clip_scale.y); - ImVec2 clip_max((pcmd->ClipRect.z - clip_off.x) * clip_scale.x, (pcmd->ClipRect.w - clip_off.y) * clip_scale.y); - if (clip_max.x <= clip_min.x || clip_max.y <= clip_min.y) - continue; - - // Apply scissor/clipping rectangle - const D3D12_RECT r = { (LONG)clip_min.x, (LONG)clip_min.y, (LONG)clip_max.x, (LONG)clip_max.y }; - command_list->RSSetScissorRects(1, &r); - - // Bind texture, Draw - D3D12_GPU_DESCRIPTOR_HANDLE texture_handle = {}; - texture_handle.ptr = (UINT64)pcmd->GetTexID(); - command_list->SetGraphicsRootDescriptorTable(1, texture_handle); - command_list->DrawIndexedInstanced(pcmd->ElemCount, 1, pcmd->IdxOffset + global_idx_offset, pcmd->VtxOffset + global_vtx_offset, 0); - } - } - global_idx_offset += draw_list->IdxBuffer.Size; - global_vtx_offset += draw_list->VtxBuffer.Size; - } - platform_io.Renderer_RenderState = nullptr; -} - -static void ImGui_ImplDX12_DestroyTexture(ImTextureData* tex) -{ - ImGui_ImplDX12_Texture* backend_tex = (ImGui_ImplDX12_Texture*)tex->BackendUserData; - if (backend_tex == nullptr) - return; - IM_ASSERT(backend_tex->hFontSrvGpuDescHandle.ptr == (UINT64)tex->TexID); - ImGui_ImplDX12_Data* bd = ImGui_ImplDX12_GetBackendData(); - bd->InitInfo.SrvDescriptorFreeFn(&bd->InitInfo, backend_tex->hFontSrvCpuDescHandle, backend_tex->hFontSrvGpuDescHandle); - SafeRelease(backend_tex->pTextureResource); - backend_tex->hFontSrvCpuDescHandle.ptr = 0; - backend_tex->hFontSrvGpuDescHandle.ptr = 0; - IM_DELETE(backend_tex); - - // Clear identifiers and mark as destroyed (in order to allow e.g. calling InvalidateDeviceObjects while running) - tex->SetTexID(ImTextureID_Invalid); - tex->SetStatus(ImTextureStatus_Destroyed); - tex->BackendUserData = nullptr; -} - -void ImGui_ImplDX12_UpdateTexture(ImTextureData* tex) -{ - ImGui_ImplDX12_Data* bd = ImGui_ImplDX12_GetBackendData(); - bool need_barrier_before_copy = true; // Do we need a resource barrier before we copy new data in? - - if (tex->Status == ImTextureStatus_WantCreate) - { - // Create and upload new texture to graphics system - //IMGUI_DEBUG_LOG("UpdateTexture #%03d: WantCreate %dx%d\n", tex->UniqueID, tex->Width, tex->Height); - IM_ASSERT(tex->TexID == ImTextureID_Invalid && tex->BackendUserData == nullptr); - IM_ASSERT(tex->Format == ImTextureFormat_RGBA32); - ImGui_ImplDX12_Texture* backend_tex = IM_NEW(ImGui_ImplDX12_Texture)(); - bd->InitInfo.SrvDescriptorAllocFn(&bd->InitInfo, &backend_tex->hFontSrvCpuDescHandle, &backend_tex->hFontSrvGpuDescHandle); // Allocate a desctriptor handle - - D3D12_HEAP_PROPERTIES props = {}; - props.Type = D3D12_HEAP_TYPE_DEFAULT; - props.CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN; - props.MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN; - - D3D12_RESOURCE_DESC desc; - ZeroMemory(&desc, sizeof(desc)); - desc.Dimension = D3D12_RESOURCE_DIMENSION_TEXTURE2D; - desc.Alignment = 0; - desc.Width = tex->Width; - desc.Height = tex->Height; - desc.DepthOrArraySize = 1; - desc.MipLevels = 1; - desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - desc.SampleDesc.Count = 1; - desc.SampleDesc.Quality = 0; - desc.Layout = D3D12_TEXTURE_LAYOUT_UNKNOWN; - desc.Flags = D3D12_RESOURCE_FLAG_NONE; - - ID3D12Resource* pTexture = nullptr; - bd->pd3dDevice->CreateCommittedResource(&props, D3D12_HEAP_FLAG_NONE, &desc, - D3D12_RESOURCE_STATE_COPY_DEST, nullptr, IID_PPV_ARGS(&pTexture)); - - // Create SRV - D3D12_SHADER_RESOURCE_VIEW_DESC srvDesc; - ZeroMemory(&srvDesc, sizeof(srvDesc)); - srvDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - srvDesc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2D; - srvDesc.Texture2D.MipLevels = desc.MipLevels; - srvDesc.Texture2D.MostDetailedMip = 0; - srvDesc.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING; - bd->pd3dDevice->CreateShaderResourceView(pTexture, &srvDesc, backend_tex->hFontSrvCpuDescHandle); - SafeRelease(backend_tex->pTextureResource); - backend_tex->pTextureResource = pTexture; - - // Store identifiers - tex->SetTexID((ImTextureID)backend_tex->hFontSrvGpuDescHandle.ptr); - tex->BackendUserData = backend_tex; - need_barrier_before_copy = false; // Because this is a newly-created texture it will be in D3D12_RESOURCE_STATE_COMMON and thus we don't need a barrier - // We don't set tex->Status to ImTextureStatus_OK to let the code fallthrough below. - } - - if (tex->Status == ImTextureStatus_WantCreate || tex->Status == ImTextureStatus_WantUpdates) - { - ImGui_ImplDX12_Texture* backend_tex = (ImGui_ImplDX12_Texture*)tex->BackendUserData; - IM_ASSERT(tex->Format == ImTextureFormat_RGBA32); - - // We could use the smaller rect on _WantCreate but using the full rect allows us to clear the texture. - // FIXME-OPT: Uploading single box even when using ImTextureStatus_WantUpdates. Could use tex->Updates[] - // - Copy all blocks contiguously in upload buffer. - // - Barrier before copy, submit all CopyTextureRegion(), barrier after copy. - const int upload_x = (tex->Status == ImTextureStatus_WantCreate) ? 0 : tex->UpdateRect.x; - const int upload_y = (tex->Status == ImTextureStatus_WantCreate) ? 0 : tex->UpdateRect.y; - const int upload_w = (tex->Status == ImTextureStatus_WantCreate) ? tex->Width : tex->UpdateRect.w; - const int upload_h = (tex->Status == ImTextureStatus_WantCreate) ? tex->Height : tex->UpdateRect.h; - - // Update full texture or selected blocks. We only ever write to textures regions which have never been used before! - // This backend choose to use tex->UpdateRect but you can use tex->Updates[] to upload individual regions. - UINT upload_pitch_src = upload_w * tex->BytesPerPixel; - UINT upload_pitch_dst = (upload_pitch_src + D3D12_TEXTURE_DATA_PITCH_ALIGNMENT - 1u) & ~(D3D12_TEXTURE_DATA_PITCH_ALIGNMENT - 1u); - UINT upload_size = upload_pitch_dst * upload_h; - - D3D12_RESOURCE_DESC desc; - ZeroMemory(&desc, sizeof(desc)); - desc.Dimension = D3D12_RESOURCE_DIMENSION_BUFFER; - desc.Alignment = 0; - desc.Width = upload_size; - desc.Height = 1; - desc.DepthOrArraySize = 1; - desc.MipLevels = 1; - desc.Format = DXGI_FORMAT_UNKNOWN; - desc.SampleDesc.Count = 1; - desc.SampleDesc.Quality = 0; - desc.Layout = D3D12_TEXTURE_LAYOUT_ROW_MAJOR; - desc.Flags = D3D12_RESOURCE_FLAG_NONE; - - D3D12_HEAP_PROPERTIES props; - memset(&props, 0, sizeof(D3D12_HEAP_PROPERTIES)); - props.Type = D3D12_HEAP_TYPE_UPLOAD; - props.CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN; - props.MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN; - - // FIXME-OPT: Can upload buffer be reused? - ID3D12Resource* uploadBuffer = nullptr; - HRESULT hr = bd->pd3dDevice->CreateCommittedResource(&props, D3D12_HEAP_FLAG_NONE, &desc, - D3D12_RESOURCE_STATE_GENERIC_READ, nullptr, IID_PPV_ARGS(&uploadBuffer)); - IM_ASSERT(SUCCEEDED(hr)); - - // Create temporary command list and execute immediately - ID3D12Fence* fence = nullptr; - hr = bd->pd3dDevice->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&fence)); - IM_ASSERT(SUCCEEDED(hr)); - - HANDLE event = ::CreateEvent(0, 0, 0, 0); - IM_ASSERT(event != nullptr); - - // FIXME-OPT: Create once and reuse? - ID3D12CommandAllocator* cmdAlloc = nullptr; - hr = bd->pd3dDevice->CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE_DIRECT, IID_PPV_ARGS(&cmdAlloc)); - IM_ASSERT(SUCCEEDED(hr)); - - // FIXME-OPT: Can be use the one from user? (pass ID3D12GraphicsCommandList* to ImGui_ImplDX12_UpdateTextures) - ID3D12GraphicsCommandList* cmdList = nullptr; - hr = bd->pd3dDevice->CreateCommandList(0, D3D12_COMMAND_LIST_TYPE_DIRECT, cmdAlloc, nullptr, IID_PPV_ARGS(&cmdList)); - IM_ASSERT(SUCCEEDED(hr)); - - // Copy to upload buffer - void* mapped = nullptr; - D3D12_RANGE range = { 0, upload_size }; - hr = uploadBuffer->Map(0, &range, &mapped); - IM_ASSERT(SUCCEEDED(hr)); - for (int y = 0; y < upload_h; y++) - memcpy((void*)((uintptr_t)mapped + y * upload_pitch_dst), tex->GetPixelsAt(upload_x, upload_y + y), upload_pitch_src); - uploadBuffer->Unmap(0, &range); - - if (need_barrier_before_copy) - { - D3D12_RESOURCE_BARRIER barrier = {}; - barrier.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION; - barrier.Flags = D3D12_RESOURCE_BARRIER_FLAG_NONE; - barrier.Transition.pResource = backend_tex->pTextureResource; - barrier.Transition.Subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES; - barrier.Transition.StateBefore = D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE; - barrier.Transition.StateAfter = D3D12_RESOURCE_STATE_COPY_DEST; - cmdList->ResourceBarrier(1, &barrier); - } - - D3D12_TEXTURE_COPY_LOCATION srcLocation = {}; - D3D12_TEXTURE_COPY_LOCATION dstLocation = {}; - { - srcLocation.pResource = uploadBuffer; - srcLocation.Type = D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT; - srcLocation.PlacedFootprint.Footprint.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - srcLocation.PlacedFootprint.Footprint.Width = upload_w; - srcLocation.PlacedFootprint.Footprint.Height = upload_h; - srcLocation.PlacedFootprint.Footprint.Depth = 1; - srcLocation.PlacedFootprint.Footprint.RowPitch = upload_pitch_dst; - dstLocation.pResource = backend_tex->pTextureResource; - dstLocation.Type = D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX; - dstLocation.SubresourceIndex = 0; - } - cmdList->CopyTextureRegion(&dstLocation, upload_x, upload_y, 0, &srcLocation, nullptr); - - { - D3D12_RESOURCE_BARRIER barrier = {}; - barrier.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION; - barrier.Flags = D3D12_RESOURCE_BARRIER_FLAG_NONE; - barrier.Transition.pResource = backend_tex->pTextureResource; - barrier.Transition.Subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES; - barrier.Transition.StateBefore = D3D12_RESOURCE_STATE_COPY_DEST; - barrier.Transition.StateAfter = D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE; - cmdList->ResourceBarrier(1, &barrier); - } - - hr = cmdList->Close(); - IM_ASSERT(SUCCEEDED(hr)); - - ID3D12CommandQueue* cmdQueue = bd->pCommandQueue; - cmdQueue->ExecuteCommandLists(1, (ID3D12CommandList* const*)&cmdList); - hr = cmdQueue->Signal(fence, 1); - IM_ASSERT(SUCCEEDED(hr)); - - // FIXME-OPT: Suboptimal? - // - To remove this may need to create NumFramesInFlight x ImGui_ImplDX12_FrameContext in backend data (mimick docking version) - // - Store per-frame in flight: upload buffer? - // - Where do cmdList and cmdAlloc fit? - fence->SetEventOnCompletion(1, event); - ::WaitForSingleObject(event, INFINITE); - - cmdList->Release(); - cmdAlloc->Release(); - ::CloseHandle(event); - fence->Release(); - uploadBuffer->Release(); - tex->SetStatus(ImTextureStatus_OK); - } - - if (tex->Status == ImTextureStatus_WantDestroy && tex->UnusedFrames >= (int)bd->numFramesInFlight) - ImGui_ImplDX12_DestroyTexture(tex); -} - -bool ImGui_ImplDX12_CreateDeviceObjects() -{ - ImGui_ImplDX12_Data* bd = ImGui_ImplDX12_GetBackendData(); - if (!bd || !bd->pd3dDevice) - return false; - if (bd->pPipelineState) - ImGui_ImplDX12_InvalidateDeviceObjects(); - - // Create the root signature - { - D3D12_DESCRIPTOR_RANGE descRange = {}; - descRange.RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_SRV; - descRange.NumDescriptors = 1; - descRange.BaseShaderRegister = 0; - descRange.RegisterSpace = 0; - descRange.OffsetInDescriptorsFromTableStart = 0; - - D3D12_ROOT_PARAMETER param[2] = {}; - - param[0].ParameterType = D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS; - param[0].Constants.ShaderRegister = 0; - param[0].Constants.RegisterSpace = 0; - param[0].Constants.Num32BitValues = 16; - param[0].ShaderVisibility = D3D12_SHADER_VISIBILITY_VERTEX; - - param[1].ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; - param[1].DescriptorTable.NumDescriptorRanges = 1; - param[1].DescriptorTable.pDescriptorRanges = &descRange; - param[1].ShaderVisibility = D3D12_SHADER_VISIBILITY_PIXEL; - - // Bilinear sampling is required by default. Set 'io.Fonts->Flags |= ImFontAtlasFlags_NoBakedLines' or 'style.AntiAliasedLinesUseTex = false' to allow point/nearest sampling. - D3D12_STATIC_SAMPLER_DESC staticSampler = {}; - staticSampler.Filter = D3D12_FILTER_MIN_MAG_MIP_LINEAR; - staticSampler.AddressU = D3D12_TEXTURE_ADDRESS_MODE_CLAMP; - staticSampler.AddressV = D3D12_TEXTURE_ADDRESS_MODE_CLAMP; - staticSampler.AddressW = D3D12_TEXTURE_ADDRESS_MODE_CLAMP; - staticSampler.MipLODBias = 0.f; - staticSampler.MaxAnisotropy = 0; - staticSampler.ComparisonFunc = D3D12_COMPARISON_FUNC_ALWAYS; - staticSampler.BorderColor = D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK; - staticSampler.MinLOD = 0.f; - staticSampler.MaxLOD = D3D12_FLOAT32_MAX; - staticSampler.ShaderRegister = 0; - staticSampler.RegisterSpace = 0; - staticSampler.ShaderVisibility = D3D12_SHADER_VISIBILITY_PIXEL; - - D3D12_ROOT_SIGNATURE_DESC desc = {}; - desc.NumParameters = _countof(param); - desc.pParameters = param; - desc.NumStaticSamplers = 1; - desc.pStaticSamplers = &staticSampler; - desc.Flags = - D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT | - D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS | - D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS | - D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS; - - // Load d3d12.dll and D3D12SerializeRootSignature() function address dynamically to facilitate using with D3D12On7. - // See if any version of d3d12.dll is already loaded in the process. If so, give preference to that. - static HINSTANCE d3d12_dll = ::GetModuleHandleA("d3d12.dll"); - if (d3d12_dll == nullptr) - { - // Attempt to load d3d12.dll from local directories. This will only succeed if - // (1) the current OS is Windows 7, and - // (2) there exists a version of d3d12.dll for Windows 7 (D3D12On7) in one of the following directories. - // See https://github.com/ocornut/imgui/pull/3696 for details. - const char* localD3d12Paths[] = { ".\\d3d12.dll", ".\\d3d12on7\\d3d12.dll", ".\\12on7\\d3d12.dll" }; // A. current directory, B. used by some games, C. used in Microsoft D3D12On7 sample - for (int i = 0; i < IM_ARRAYSIZE(localD3d12Paths); i++) - if ((d3d12_dll = ::LoadLibraryA(localD3d12Paths[i])) != nullptr) - break; - - // If failed, we are on Windows >= 10. - if (d3d12_dll == nullptr) - d3d12_dll = ::LoadLibraryA("d3d12.dll"); - - if (d3d12_dll == nullptr) - return false; - } - - _PFN_D3D12_SERIALIZE_ROOT_SIGNATURE D3D12SerializeRootSignatureFn = (_PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(void*)::GetProcAddress(d3d12_dll, "D3D12SerializeRootSignature"); - if (D3D12SerializeRootSignatureFn == nullptr) - return false; - - ID3DBlob* blob = nullptr; - if (D3D12SerializeRootSignatureFn(&desc, D3D_ROOT_SIGNATURE_VERSION_1, &blob, nullptr) != S_OK) - return false; - - bd->pd3dDevice->CreateRootSignature(0, blob->GetBufferPointer(), blob->GetBufferSize(), IID_PPV_ARGS(&bd->pRootSignature)); - blob->Release(); - } - - // By using D3DCompile() from / d3dcompiler.lib, we introduce a dependency to a given version of d3dcompiler_XX.dll (see D3DCOMPILER_DLL_A) - // If you would like to use this DX12 sample code but remove this dependency you can: - // 1) compile once, save the compiled shader blobs into a file or source code and assign them to psoDesc.VS/PS [preferred solution] - // 2) use code to detect any version of the DLL and grab a pointer to D3DCompile from the DLL. - // See https://github.com/ocornut/imgui/pull/638 for sources and details. - - D3D12_GRAPHICS_PIPELINE_STATE_DESC psoDesc = {}; - psoDesc.NodeMask = 1; - psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; - psoDesc.pRootSignature = bd->pRootSignature; - psoDesc.SampleMask = UINT_MAX; - psoDesc.NumRenderTargets = 1; - psoDesc.RTVFormats[0] = bd->RTVFormat; - psoDesc.DSVFormat = bd->DSVFormat; - psoDesc.SampleDesc.Count = 1; - psoDesc.Flags = D3D12_PIPELINE_STATE_FLAG_NONE; - - ID3DBlob* vertexShaderBlob; - ID3DBlob* pixelShaderBlob; - - // Create the vertex shader - { - static const char* vertexShader = - "cbuffer vertexBuffer : register(b0) \ - {\ - float4x4 ProjectionMatrix; \ - };\ - struct VS_INPUT\ - {\ - float2 pos : POSITION;\ - float4 col : COLOR0;\ - float2 uv : TEXCOORD0;\ - };\ - \ - struct PS_INPUT\ - {\ - float4 pos : SV_POSITION;\ - float4 col : COLOR0;\ - float2 uv : TEXCOORD0;\ - };\ - \ - PS_INPUT main(VS_INPUT input)\ - {\ - PS_INPUT output;\ - output.pos = mul( ProjectionMatrix, float4(input.pos.xy, 0.f, 1.f));\ - output.col = input.col;\ - output.uv = input.uv;\ - return output;\ - }"; - - if (FAILED(D3DCompile(vertexShader, strlen(vertexShader), nullptr, nullptr, nullptr, "main", "vs_5_0", 0, 0, &vertexShaderBlob, nullptr))) - return false; // NB: Pass ID3DBlob* pErrorBlob to D3DCompile() to get error showing in (const char*)pErrorBlob->GetBufferPointer(). Make sure to Release() the blob! - psoDesc.VS = { vertexShaderBlob->GetBufferPointer(), vertexShaderBlob->GetBufferSize() }; - - // Create the input layout - static D3D12_INPUT_ELEMENT_DESC local_layout[] = - { - { "POSITION", 0, DXGI_FORMAT_R32G32_FLOAT, 0, (UINT)offsetof(ImDrawVert, pos), D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }, - { "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, (UINT)offsetof(ImDrawVert, uv), D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }, - { "COLOR", 0, DXGI_FORMAT_R8G8B8A8_UNORM, 0, (UINT)offsetof(ImDrawVert, col), D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }, - }; - psoDesc.InputLayout = { local_layout, 3 }; - } - - // Create the pixel shader - { - static const char* pixelShader = - "struct PS_INPUT\ - {\ - float4 pos : SV_POSITION;\ - float4 col : COLOR0;\ - float2 uv : TEXCOORD0;\ - };\ - SamplerState sampler0 : register(s0);\ - Texture2D texture0 : register(t0);\ - \ - float4 main(PS_INPUT input) : SV_Target\ - {\ - float4 out_col = input.col * texture0.Sample(sampler0, input.uv); \ - return out_col; \ - }"; - - if (FAILED(D3DCompile(pixelShader, strlen(pixelShader), nullptr, nullptr, nullptr, "main", "ps_5_0", 0, 0, &pixelShaderBlob, nullptr))) - { - vertexShaderBlob->Release(); - return false; // NB: Pass ID3DBlob* pErrorBlob to D3DCompile() to get error showing in (const char*)pErrorBlob->GetBufferPointer(). Make sure to Release() the blob! - } - psoDesc.PS = { pixelShaderBlob->GetBufferPointer(), pixelShaderBlob->GetBufferSize() }; - } - - // Create the blending setup - { - D3D12_BLEND_DESC& desc = psoDesc.BlendState; - desc.AlphaToCoverageEnable = false; - desc.RenderTarget[0].BlendEnable = true; - desc.RenderTarget[0].SrcBlend = D3D12_BLEND_SRC_ALPHA; - desc.RenderTarget[0].DestBlend = D3D12_BLEND_INV_SRC_ALPHA; - desc.RenderTarget[0].BlendOp = D3D12_BLEND_OP_ADD; - desc.RenderTarget[0].SrcBlendAlpha = D3D12_BLEND_ONE; - desc.RenderTarget[0].DestBlendAlpha = D3D12_BLEND_INV_SRC_ALPHA; - desc.RenderTarget[0].BlendOpAlpha = D3D12_BLEND_OP_ADD; - desc.RenderTarget[0].RenderTargetWriteMask = D3D12_COLOR_WRITE_ENABLE_ALL; - } - - // Create the rasterizer state - { - D3D12_RASTERIZER_DESC& desc = psoDesc.RasterizerState; - desc.FillMode = D3D12_FILL_MODE_SOLID; - desc.CullMode = D3D12_CULL_MODE_NONE; - desc.FrontCounterClockwise = FALSE; - desc.DepthBias = D3D12_DEFAULT_DEPTH_BIAS; - desc.DepthBiasClamp = D3D12_DEFAULT_DEPTH_BIAS_CLAMP; - desc.SlopeScaledDepthBias = D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS; - desc.DepthClipEnable = true; - desc.MultisampleEnable = FALSE; - desc.AntialiasedLineEnable = FALSE; - desc.ForcedSampleCount = 0; - desc.ConservativeRaster = D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF; - } - - // Create depth-stencil State - { - D3D12_DEPTH_STENCIL_DESC& desc = psoDesc.DepthStencilState; - desc.DepthEnable = false; - desc.DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ALL; - desc.DepthFunc = D3D12_COMPARISON_FUNC_ALWAYS; - desc.StencilEnable = false; - desc.FrontFace.StencilFailOp = desc.FrontFace.StencilDepthFailOp = desc.FrontFace.StencilPassOp = D3D12_STENCIL_OP_KEEP; - desc.FrontFace.StencilFunc = D3D12_COMPARISON_FUNC_ALWAYS; - desc.BackFace = desc.FrontFace; - } - - HRESULT result_pipeline_state = bd->pd3dDevice->CreateGraphicsPipelineState(&psoDesc, IID_PPV_ARGS(&bd->pPipelineState)); - vertexShaderBlob->Release(); - pixelShaderBlob->Release(); - if (result_pipeline_state != S_OK) - return false; - - return true; -} - -void ImGui_ImplDX12_InvalidateDeviceObjects() -{ - ImGui_ImplDX12_Data* bd = ImGui_ImplDX12_GetBackendData(); - if (!bd || !bd->pd3dDevice) - return; - - if (bd->commandQueueOwned) - SafeRelease(bd->pCommandQueue); - bd->commandQueueOwned = false; - SafeRelease(bd->pRootSignature); - SafeRelease(bd->pPipelineState); - - // Destroy all textures - for (ImTextureData* tex : ImGui::GetPlatformIO().Textures) - if (tex->RefCount == 1) - ImGui_ImplDX12_DestroyTexture(tex); - - for (UINT i = 0; i < bd->numFramesInFlight; i++) - { - ImGui_ImplDX12_RenderBuffers* fr = &bd->pFrameResources[i]; - SafeRelease(fr->IndexBuffer); - SafeRelease(fr->VertexBuffer); - } -} - -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS -static void ImGui_ImplDX12_InitLegacySingleDescriptorMode(ImGui_ImplDX12_InitInfo* init_info) -{ - // Wrap legacy behavior of passing space for a single descriptor - IM_ASSERT(init_info->LegacySingleSrvCpuDescriptor.ptr != 0 && init_info->LegacySingleSrvGpuDescriptor.ptr != 0); - init_info->SrvDescriptorAllocFn = [](ImGui_ImplDX12_InitInfo*, D3D12_CPU_DESCRIPTOR_HANDLE* out_cpu_handle, D3D12_GPU_DESCRIPTOR_HANDLE* out_gpu_handle) - { - ImGui_ImplDX12_Data* bd = ImGui_ImplDX12_GetBackendData(); - IM_ASSERT(bd->LegacySingleDescriptorUsed == false && "Only 1 simultaneous texture allowed with legacy ImGui_ImplDX12_Init() signature!"); - *out_cpu_handle = bd->InitInfo.LegacySingleSrvCpuDescriptor; - *out_gpu_handle = bd->InitInfo.LegacySingleSrvGpuDescriptor; - bd->LegacySingleDescriptorUsed = true; - }; - init_info->SrvDescriptorFreeFn = [](ImGui_ImplDX12_InitInfo*, D3D12_CPU_DESCRIPTOR_HANDLE, D3D12_GPU_DESCRIPTOR_HANDLE) - { - ImGui_ImplDX12_Data* bd = ImGui_ImplDX12_GetBackendData(); - IM_ASSERT(bd->LegacySingleDescriptorUsed == true); - bd->LegacySingleDescriptorUsed = false; - }; -} -#endif - -bool ImGui_ImplDX12_Init(ImGui_ImplDX12_InitInfo* init_info) -{ - ImGuiIO& io = ImGui::GetIO(); - IMGUI_CHECKVERSION(); - IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); - - // Setup backend capabilities flags - ImGui_ImplDX12_Data* bd = IM_NEW(ImGui_ImplDX12_Data)(); - bd->InitInfo = *init_info; // Deep copy - init_info = &bd->InitInfo; - - bd->pd3dDevice = init_info->Device; - IM_ASSERT(init_info->CommandQueue != NULL); - bd->pCommandQueue = init_info->CommandQueue; - bd->RTVFormat = init_info->RTVFormat; - bd->DSVFormat = init_info->DSVFormat; - bd->numFramesInFlight = init_info->NumFramesInFlight; - bd->pd3dSrvDescHeap = init_info->SrvDescriptorHeap; - - io.BackendRendererUserData = (void*)bd; - io.BackendRendererName = "imgui_impl_dx12"; - io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset; // We can honor the ImDrawCmd::VtxOffset field, allowing for large meshes. - io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures; // We can honor ImGuiPlatformIO::Textures[] requests during render. - -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - if (init_info->SrvDescriptorAllocFn == nullptr) - ImGui_ImplDX12_InitLegacySingleDescriptorMode(init_info); -#endif - IM_ASSERT(init_info->SrvDescriptorAllocFn != nullptr && init_info->SrvDescriptorFreeFn != nullptr); - - // Create buffers with a default size (they will later be grown as needed) - bd->frameIndex = UINT_MAX; - bd->pFrameResources = new ImGui_ImplDX12_RenderBuffers[bd->numFramesInFlight]; - for (int i = 0; i < (int)bd->numFramesInFlight; i++) - { - ImGui_ImplDX12_RenderBuffers* fr = &bd->pFrameResources[i]; - fr->IndexBuffer = nullptr; - fr->VertexBuffer = nullptr; - fr->IndexBufferSize = 10000; - fr->VertexBufferSize = 5000; - } - - return true; -} - -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS -// Legacy initialization API Obsoleted in 1.91.5 -// font_srv_cpu_desc_handle and font_srv_gpu_desc_handle are handles to a single SRV descriptor to use for the internal font texture, they must be in 'srv_descriptor_heap' -bool ImGui_ImplDX12_Init(ID3D12Device* device, int num_frames_in_flight, DXGI_FORMAT rtv_format, ID3D12DescriptorHeap* srv_descriptor_heap, D3D12_CPU_DESCRIPTOR_HANDLE font_srv_cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE font_srv_gpu_desc_handle) -{ - ImGui_ImplDX12_InitInfo init_info; - init_info.Device = device; - init_info.NumFramesInFlight = num_frames_in_flight; - init_info.RTVFormat = rtv_format; - init_info.SrvDescriptorHeap = srv_descriptor_heap; - init_info.LegacySingleSrvCpuDescriptor = font_srv_cpu_desc_handle; - init_info.LegacySingleSrvGpuDescriptor = font_srv_gpu_desc_handle; - - D3D12_COMMAND_QUEUE_DESC queueDesc = {}; - queueDesc.Type = D3D12_COMMAND_LIST_TYPE_DIRECT; - queueDesc.Flags = D3D12_COMMAND_QUEUE_FLAG_NONE; - queueDesc.NodeMask = 1; - HRESULT hr = device->CreateCommandQueue(&queueDesc, IID_PPV_ARGS(&init_info.CommandQueue)); - IM_ASSERT(SUCCEEDED(hr)); - - bool ret = ImGui_ImplDX12_Init(&init_info); - ImGui_ImplDX12_Data* bd = ImGui_ImplDX12_GetBackendData(); - bd->commandQueueOwned = true; - ImGuiIO& io = ImGui::GetIO(); - io.BackendFlags &= ~ImGuiBackendFlags_RendererHasTextures; // Using legacy ImGui_ImplDX12_Init() call with 1 SRV descriptor we cannot support multiple textures. - - return ret; -} -#endif - -void ImGui_ImplDX12_Shutdown() -{ - ImGui_ImplDX12_Data* bd = ImGui_ImplDX12_GetBackendData(); - IM_ASSERT(bd != nullptr && "No renderer backend to shutdown, or already shutdown?"); - ImGuiIO& io = ImGui::GetIO(); - - // Clean up windows and device objects - ImGui_ImplDX12_InvalidateDeviceObjects(); - delete[] bd->pFrameResources; - - io.BackendRendererName = nullptr; - io.BackendRendererUserData = nullptr; - io.BackendFlags &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures); - IM_DELETE(bd); -} - -void ImGui_ImplDX12_NewFrame() -{ - ImGui_ImplDX12_Data* bd = ImGui_ImplDX12_GetBackendData(); - IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplDX12_Init()?"); - - if (!bd->pPipelineState) - if (!ImGui_ImplDX12_CreateDeviceObjects()) - IM_ASSERT(0 && "ImGui_ImplDX12_CreateDeviceObjects() failed!"); -} - -//----------------------------------------------------------------------------- - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_dx12.h b/libs/imgui-1.92.1/backends/imgui_impl_dx12.h deleted file mode 100644 index 4ff5104..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_dx12.h +++ /dev/null @@ -1,79 +0,0 @@ -// dear imgui: Renderer Backend for DirectX12 -// This needs to be used along with a Platform Backend (e.g. Win32) - -// Implemented features: -// [X] Renderer: User texture binding. Use 'D3D12_GPU_DESCRIPTOR_HANDLE' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). -// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'. - -// The aim of imgui_impl_dx12.h/.cpp is to be usable in your engine without any modification. -// IF YOU FEEL YOU NEED TO MAKE ANY CHANGE TO THIS CODE, please share them and your feedback at https://github.com/ocornut/imgui/ - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#pragma once -#include "imgui.h" // IMGUI_IMPL_API -#ifndef IMGUI_DISABLE -#include // DXGI_FORMAT -#include // D3D12_CPU_DESCRIPTOR_HANDLE - -// Initialization data, for ImGui_ImplDX12_Init() -struct ImGui_ImplDX12_InitInfo -{ - ID3D12Device* Device; - ID3D12CommandQueue* CommandQueue; // Command queue used for queuing texture uploads. - int NumFramesInFlight; - DXGI_FORMAT RTVFormat; // RenderTarget format. - DXGI_FORMAT DSVFormat; // DepthStencilView format. - void* UserData; - - // Allocating SRV descriptors for textures is up to the application, so we provide callbacks. - // (current version of the backend will only allocate one descriptor, from 1.92 the backend will need to allocate more) - ID3D12DescriptorHeap* SrvDescriptorHeap; - void (*SrvDescriptorAllocFn)(ImGui_ImplDX12_InitInfo* info, D3D12_CPU_DESCRIPTOR_HANDLE* out_cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE* out_gpu_desc_handle); - void (*SrvDescriptorFreeFn)(ImGui_ImplDX12_InitInfo* info, D3D12_CPU_DESCRIPTOR_HANDLE cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE gpu_desc_handle); -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - D3D12_CPU_DESCRIPTOR_HANDLE LegacySingleSrvCpuDescriptor; // To facilitate transition from single descriptor to allocator callback, you may use those. - D3D12_GPU_DESCRIPTOR_HANDLE LegacySingleSrvGpuDescriptor; -#endif - - ImGui_ImplDX12_InitInfo() { memset((void*)this, 0, sizeof(*this)); } -}; - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplDX12_Init(ImGui_ImplDX12_InitInfo* info); -IMGUI_IMPL_API void ImGui_ImplDX12_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplDX12_NewFrame(); -IMGUI_IMPL_API void ImGui_ImplDX12_RenderDrawData(ImDrawData* draw_data, ID3D12GraphicsCommandList* graphics_command_list); - -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS -// Legacy initialization API Obsoleted in 1.91.5 -// - font_srv_cpu_desc_handle and font_srv_gpu_desc_handle are handles to a single SRV descriptor to use for the internal font texture, they must be in 'srv_descriptor_heap' -// - When we introduced the ImGui_ImplDX12_InitInfo struct we also added a 'ID3D12CommandQueue* CommandQueue' field. -IMGUI_IMPL_API bool ImGui_ImplDX12_Init(ID3D12Device* device, int num_frames_in_flight, DXGI_FORMAT rtv_format, ID3D12DescriptorHeap* srv_descriptor_heap, D3D12_CPU_DESCRIPTOR_HANDLE font_srv_cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE font_srv_gpu_desc_handle); -#endif - -// Use if you want to reset your rendering device without losing Dear ImGui state. -IMGUI_IMPL_API bool ImGui_ImplDX12_CreateDeviceObjects(); -IMGUI_IMPL_API void ImGui_ImplDX12_InvalidateDeviceObjects(); - -// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = NULL to handle this manually. -IMGUI_IMPL_API void ImGui_ImplDX12_UpdateTexture(ImTextureData* tex); - -// [BETA] Selected render state data shared with callbacks. -// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplDX12_RenderDrawData() call. -// (Please open an issue if you feel you need access to more data) -struct ImGui_ImplDX12_RenderState -{ - ID3D12Device* Device; - ID3D12GraphicsCommandList* CommandList; -}; - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_dx9.cpp b/libs/imgui-1.92.1/backends/imgui_impl_dx9.cpp deleted file mode 100644 index b0159bf..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_dx9.cpp +++ /dev/null @@ -1,478 +0,0 @@ -// dear imgui: Renderer Backend for DirectX9 -// This needs to be used along with a Platform Backend (e.g. Win32) - -// Implemented features: -// [X] Renderer: User texture binding. Use 'LPDIRECT3DTEXTURE9' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). -// [X] Renderer: IMGUI_USE_BGRA_PACKED_COLOR support, as this is the optimal color encoding for DirectX9. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// CHANGELOG -// (minor and older changes stripped away, please see git history for details) -// 2025-06-11: DirectX9: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas. -// 2024-10-07: DirectX9: Changed default texture sampler to Clamp instead of Repeat/Wrap. -// 2024-02-12: DirectX9: Using RGBA format when supported by the driver to avoid CPU side conversion. (#6575) -// 2022-10-11: Using 'nullptr' instead of 'NULL' as per our switch to C++11. -// 2021-06-29: Reorganized backend to pull data from a single structure to facilitate usage with multiple-contexts (all g_XXXX access changed to bd->XXXX). -// 2021-06-25: DirectX9: Explicitly disable texture state stages after >= 1. -// 2021-05-19: DirectX9: Replaced direct access to ImDrawCmd::TextureId with a call to ImDrawCmd::GetTexID(). (will become a requirement) -// 2021-04-23: DirectX9: Explicitly setting up more graphics states to increase compatibility with unusual non-default states. -// 2021-03-18: DirectX9: Calling IDirect3DStateBlock9::Capture() after CreateStateBlock() as a workaround for state restoring issues (see #3857). -// 2021-03-03: DirectX9: Added support for IMGUI_USE_BGRA_PACKED_COLOR in user's imconfig file. -// 2021-02-18: DirectX9: Change blending equation to preserve alpha in output buffer. -// 2019-05-29: DirectX9: Added support for large mesh (64K+ vertices), enable ImGuiBackendFlags_RendererHasVtxOffset flag. -// 2019-04-30: DirectX9: Added support for special ImDrawCallback_ResetRenderState callback to reset render state. -// 2019-03-29: Misc: Fixed erroneous assert in ImGui_ImplDX9_InvalidateDeviceObjects(). -// 2019-01-16: Misc: Disabled fog before drawing UI's. Fixes issue #2288. -// 2018-11-30: Misc: Setting up io.BackendRendererName so it can be displayed in the About Window. -// 2018-06-08: Misc: Extracted imgui_impl_dx9.cpp/.h away from the old combined DX9+Win32 example. -// 2018-06-08: DirectX9: Use draw_data->DisplayPos and draw_data->DisplaySize to setup projection matrix and clipping rectangle. -// 2018-05-07: Render: Saving/restoring Transform because they don't seem to be included in the StateBlock. Setting shading mode to Gouraud. -// 2018-02-16: Misc: Obsoleted the io.RenderDrawListsFn callback and exposed ImGui_ImplDX9_RenderDrawData() in the .h file so you can call it yourself. -// 2018-02-06: Misc: Removed call to ImGui::Shutdown() which is not available from 1.60 WIP, user needs to call CreateContext/DestroyContext themselves. - -#include "imgui.h" -#ifndef IMGUI_DISABLE -#include "imgui_impl_dx9.h" - -// DirectX -#include - -// Clang/GCC warnings with -Weverything -#if defined(__clang__) -#pragma clang diagnostic ignored "-Wold-style-cast" // warning: use of old-style cast // yes, they are more terse. -#pragma clang diagnostic ignored "-Wsign-conversion" // warning: implicit conversion changes signedness -#endif - -// DirectX data -struct ImGui_ImplDX9_Data -{ - LPDIRECT3DDEVICE9 pd3dDevice; - LPDIRECT3DVERTEXBUFFER9 pVB; - LPDIRECT3DINDEXBUFFER9 pIB; - int VertexBufferSize; - int IndexBufferSize; - bool HasRgbaSupport; - - ImGui_ImplDX9_Data() { memset((void*)this, 0, sizeof(*this)); VertexBufferSize = 5000; IndexBufferSize = 10000; } -}; - -struct CUSTOMVERTEX -{ - float pos[3]; - D3DCOLOR col; - float uv[2]; -}; -#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE|D3DFVF_TEX1) - -#ifdef IMGUI_USE_BGRA_PACKED_COLOR -#define IMGUI_COL_TO_DX9_ARGB(_COL) (_COL) -#else -#define IMGUI_COL_TO_DX9_ARGB(_COL) (((_COL) & 0xFF00FF00) | (((_COL) & 0xFF0000) >> 16) | (((_COL) & 0xFF) << 16)) -#endif - -// Backend data stored in io.BackendRendererUserData to allow support for multiple Dear ImGui contexts -// It is STRONGLY preferred that you use docking branch with multi-viewports (== single Dear ImGui context + multiple windows) instead of multiple Dear ImGui contexts. -static ImGui_ImplDX9_Data* ImGui_ImplDX9_GetBackendData() -{ - return ImGui::GetCurrentContext() ? (ImGui_ImplDX9_Data*)ImGui::GetIO().BackendRendererUserData : nullptr; -} - -// Functions -static void ImGui_ImplDX9_SetupRenderState(ImDrawData* draw_data) -{ - ImGui_ImplDX9_Data* bd = ImGui_ImplDX9_GetBackendData(); - - // Setup viewport - D3DVIEWPORT9 vp; - vp.X = vp.Y = 0; - vp.Width = (DWORD)draw_data->DisplaySize.x; - vp.Height = (DWORD)draw_data->DisplaySize.y; - vp.MinZ = 0.0f; - vp.MaxZ = 1.0f; - - LPDIRECT3DDEVICE9 device = bd->pd3dDevice; - device->SetViewport(&vp); - - // Setup render state: fixed-pipeline, alpha-blending, no face culling, no depth testing, shade mode (for gradient), bilinear sampling. - device->SetPixelShader(nullptr); - device->SetVertexShader(nullptr); - device->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID); - device->SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD); - device->SetRenderState(D3DRS_ZWRITEENABLE, FALSE); - device->SetRenderState(D3DRS_ALPHATESTENABLE, FALSE); - device->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); - device->SetRenderState(D3DRS_ZENABLE, FALSE); - device->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE); - device->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD); - device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA); - device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA); - device->SetRenderState(D3DRS_SEPARATEALPHABLENDENABLE, TRUE); - device->SetRenderState(D3DRS_SRCBLENDALPHA, D3DBLEND_ONE); - device->SetRenderState(D3DRS_DESTBLENDALPHA, D3DBLEND_INVSRCALPHA); - device->SetRenderState(D3DRS_SCISSORTESTENABLE, TRUE); - device->SetRenderState(D3DRS_FOGENABLE, FALSE); - device->SetRenderState(D3DRS_RANGEFOGENABLE, FALSE); - device->SetRenderState(D3DRS_SPECULARENABLE, FALSE); - device->SetRenderState(D3DRS_STENCILENABLE, FALSE); - device->SetRenderState(D3DRS_CLIPPING, TRUE); - device->SetRenderState(D3DRS_LIGHTING, FALSE); - device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE); - device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE); - device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE); - device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE); - device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE); - device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE); - device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE); - device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_DISABLE); - device->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR); - device->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR); - device->SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP); - device->SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP); - - // Setup orthographic projection matrix - // Our visible imgui space lies from draw_data->DisplayPos (top left) to draw_data->DisplayPos+data_data->DisplaySize (bottom right). DisplayPos is (0,0) for single viewport apps. - // Being agnostic of whether or can be used, we aren't relying on D3DXMatrixIdentity()/D3DXMatrixOrthoOffCenterLH() or DirectX::XMMatrixIdentity()/DirectX::XMMatrixOrthographicOffCenterLH() - { - float L = draw_data->DisplayPos.x + 0.5f; - float R = draw_data->DisplayPos.x + draw_data->DisplaySize.x + 0.5f; - float T = draw_data->DisplayPos.y + 0.5f; - float B = draw_data->DisplayPos.y + draw_data->DisplaySize.y + 0.5f; - D3DMATRIX mat_identity = { { { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f } } }; - D3DMATRIX mat_projection = - { { { - 2.0f/(R-L), 0.0f, 0.0f, 0.0f, - 0.0f, 2.0f/(T-B), 0.0f, 0.0f, - 0.0f, 0.0f, 0.5f, 0.0f, - (L+R)/(L-R), (T+B)/(B-T), 0.5f, 1.0f - } } }; - device->SetTransform(D3DTS_WORLD, &mat_identity); - device->SetTransform(D3DTS_VIEW, &mat_identity); - device->SetTransform(D3DTS_PROJECTION, &mat_projection); - } -} - -// Render function. -void ImGui_ImplDX9_RenderDrawData(ImDrawData* draw_data) -{ - // Avoid rendering when minimized - if (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f) - return; - - ImGui_ImplDX9_Data* bd = ImGui_ImplDX9_GetBackendData(); - LPDIRECT3DDEVICE9 device = bd->pd3dDevice; - - // Catch up with texture updates. Most of the times, the list will have 1 element with an OK status, aka nothing to do. - // (This almost always points to ImGui::GetPlatformIO().Textures[] but is part of ImDrawData to allow overriding or disabling texture updates). - if (draw_data->Textures != nullptr) - for (ImTextureData* tex : *draw_data->Textures) - if (tex->Status != ImTextureStatus_OK) - ImGui_ImplDX9_UpdateTexture(tex); - - // Create and grow buffers if needed - if (!bd->pVB || bd->VertexBufferSize < draw_data->TotalVtxCount) - { - if (bd->pVB) { bd->pVB->Release(); bd->pVB = nullptr; } - bd->VertexBufferSize = draw_data->TotalVtxCount + 5000; - if (device->CreateVertexBuffer(bd->VertexBufferSize * sizeof(CUSTOMVERTEX), D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, &bd->pVB, nullptr) < 0) - return; - } - if (!bd->pIB || bd->IndexBufferSize < draw_data->TotalIdxCount) - { - if (bd->pIB) { bd->pIB->Release(); bd->pIB = nullptr; } - bd->IndexBufferSize = draw_data->TotalIdxCount + 10000; - if (device->CreateIndexBuffer(bd->IndexBufferSize * sizeof(ImDrawIdx), D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY, sizeof(ImDrawIdx) == 2 ? D3DFMT_INDEX16 : D3DFMT_INDEX32, D3DPOOL_DEFAULT, &bd->pIB, nullptr) < 0) - return; - } - - // Backup the DX9 state - IDirect3DStateBlock9* state_block = nullptr; - if (device->CreateStateBlock(D3DSBT_ALL, &state_block) < 0) - return; - if (state_block->Capture() < 0) - { - state_block->Release(); - return; - } - - // Backup the DX9 transform (DX9 documentation suggests that it is included in the StateBlock but it doesn't appear to) - D3DMATRIX last_world, last_view, last_projection; - device->GetTransform(D3DTS_WORLD, &last_world); - device->GetTransform(D3DTS_VIEW, &last_view); - device->GetTransform(D3DTS_PROJECTION, &last_projection); - - // Allocate buffers - CUSTOMVERTEX* vtx_dst; - ImDrawIdx* idx_dst; - if (bd->pVB->Lock(0, (UINT)(draw_data->TotalVtxCount * sizeof(CUSTOMVERTEX)), (void**)&vtx_dst, D3DLOCK_DISCARD) < 0) - { - state_block->Release(); - return; - } - if (bd->pIB->Lock(0, (UINT)(draw_data->TotalIdxCount * sizeof(ImDrawIdx)), (void**)&idx_dst, D3DLOCK_DISCARD) < 0) - { - bd->pVB->Unlock(); - state_block->Release(); - return; - } - - // Copy and convert all vertices into a single contiguous buffer, convert colors to DX9 default format. - // FIXME-OPT: This is a minor waste of resource, the ideal is to use imconfig.h and - // 1) to avoid repacking colors: #define IMGUI_USE_BGRA_PACKED_COLOR - // 2) to avoid repacking vertices: #define IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT struct ImDrawVert { ImVec2 pos; float z; ImU32 col; ImVec2 uv; } - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - const ImDrawVert* vtx_src = draw_list->VtxBuffer.Data; - for (int i = 0; i < draw_list->VtxBuffer.Size; i++) - { - vtx_dst->pos[0] = vtx_src->pos.x; - vtx_dst->pos[1] = vtx_src->pos.y; - vtx_dst->pos[2] = 0.0f; - vtx_dst->col = IMGUI_COL_TO_DX9_ARGB(vtx_src->col); - vtx_dst->uv[0] = vtx_src->uv.x; - vtx_dst->uv[1] = vtx_src->uv.y; - vtx_dst++; - vtx_src++; - } - memcpy(idx_dst, draw_list->IdxBuffer.Data, draw_list->IdxBuffer.Size * sizeof(ImDrawIdx)); - idx_dst += draw_list->IdxBuffer.Size; - } - bd->pVB->Unlock(); - bd->pIB->Unlock(); - device->SetStreamSource(0, bd->pVB, 0, sizeof(CUSTOMVERTEX)); - device->SetIndices(bd->pIB); - device->SetFVF(D3DFVF_CUSTOMVERTEX); - - // Setup desired DX state - ImGui_ImplDX9_SetupRenderState(draw_data); - - // Render command lists - // (Because we merged all buffers into a single one, we maintain our own offset into them) - int global_vtx_offset = 0; - int global_idx_offset = 0; - ImVec2 clip_off = draw_data->DisplayPos; - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - for (int cmd_i = 0; cmd_i < draw_list->CmdBuffer.Size; cmd_i++) - { - const ImDrawCmd* pcmd = &draw_list->CmdBuffer[cmd_i]; - if (pcmd->UserCallback != nullptr) - { - // User callback, registered via ImDrawList::AddCallback() - // (ImDrawCallback_ResetRenderState is a special callback value used by the user to request the renderer to reset render state.) - if (pcmd->UserCallback == ImDrawCallback_ResetRenderState) - ImGui_ImplDX9_SetupRenderState(draw_data); - else - pcmd->UserCallback(draw_list, pcmd); - } - else - { - // Project scissor/clipping rectangles into framebuffer space - ImVec2 clip_min(pcmd->ClipRect.x - clip_off.x, pcmd->ClipRect.y - clip_off.y); - ImVec2 clip_max(pcmd->ClipRect.z - clip_off.x, pcmd->ClipRect.w - clip_off.y); - if (clip_max.x <= clip_min.x || clip_max.y <= clip_min.y) - continue; - - // Apply scissor/clipping rectangle - const RECT r = { (LONG)clip_min.x, (LONG)clip_min.y, (LONG)clip_max.x, (LONG)clip_max.y }; - device->SetScissorRect(&r); - - // Bind texture, Draw - const LPDIRECT3DTEXTURE9 texture = (LPDIRECT3DTEXTURE9)pcmd->GetTexID(); - device->SetTexture(0, texture); - device->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, pcmd->VtxOffset + global_vtx_offset, 0, (UINT)draw_list->VtxBuffer.Size, pcmd->IdxOffset + global_idx_offset, pcmd->ElemCount / 3); - } - } - global_idx_offset += draw_list->IdxBuffer.Size; - global_vtx_offset += draw_list->VtxBuffer.Size; - } - - // Restore the DX9 transform - device->SetTransform(D3DTS_WORLD, &last_world); - device->SetTransform(D3DTS_VIEW, &last_view); - device->SetTransform(D3DTS_PROJECTION, &last_projection); - - // Restore the DX9 state - state_block->Apply(); - state_block->Release(); -} - -static bool ImGui_ImplDX9_CheckFormatSupport(LPDIRECT3DDEVICE9 pDevice, D3DFORMAT format) -{ - LPDIRECT3D9 pd3d = nullptr; - if (pDevice->GetDirect3D(&pd3d) != D3D_OK) - return false; - D3DDEVICE_CREATION_PARAMETERS param = {}; - D3DDISPLAYMODE mode = {}; - if (pDevice->GetCreationParameters(¶m) != D3D_OK || pDevice->GetDisplayMode(0, &mode) != D3D_OK) - { - pd3d->Release(); - return false; - } - // Font texture should support linear filter, color blend and write to render-target - bool support = (pd3d->CheckDeviceFormat(param.AdapterOrdinal, param.DeviceType, mode.Format, D3DUSAGE_DYNAMIC | D3DUSAGE_QUERY_FILTER | D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING, D3DRTYPE_TEXTURE, format)) == D3D_OK; - pd3d->Release(); - return support; -} - -bool ImGui_ImplDX9_Init(IDirect3DDevice9* device) -{ - ImGuiIO& io = ImGui::GetIO(); - IMGUI_CHECKVERSION(); - IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); - - // Setup backend capabilities flags - ImGui_ImplDX9_Data* bd = IM_NEW(ImGui_ImplDX9_Data)(); - io.BackendRendererUserData = (void*)bd; - io.BackendRendererName = "imgui_impl_dx9"; - io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset; // We can honor the ImDrawCmd::VtxOffset field, allowing for large meshes. - io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures; // We can honor ImGuiPlatformIO::Textures[] requests during render. - - ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); - platform_io.Renderer_TextureMaxWidth = platform_io.Renderer_TextureMaxHeight = 4096; - - bd->pd3dDevice = device; - bd->pd3dDevice->AddRef(); - bd->HasRgbaSupport = ImGui_ImplDX9_CheckFormatSupport(bd->pd3dDevice, D3DFMT_A8B8G8R8); - - return true; -} - -void ImGui_ImplDX9_Shutdown() -{ - ImGui_ImplDX9_Data* bd = ImGui_ImplDX9_GetBackendData(); - IM_ASSERT(bd != nullptr && "No renderer backend to shutdown, or already shutdown?"); - ImGuiIO& io = ImGui::GetIO(); - - ImGui_ImplDX9_InvalidateDeviceObjects(); - if (bd->pd3dDevice) { bd->pd3dDevice->Release(); } - io.BackendRendererName = nullptr; - io.BackendRendererUserData = nullptr; - io.BackendFlags &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures); - IM_DELETE(bd); -} - -// Convert RGBA32 to BGRA32 (because RGBA32 is not well supported by DX9 devices) -static void ImGui_ImplDX9_CopyTextureRegion(bool tex_use_colors, const ImU32* src, int src_pitch, ImU32* dst, int dst_pitch, int w, int h) -{ -#ifndef IMGUI_USE_BGRA_PACKED_COLOR - ImGui_ImplDX9_Data* bd = ImGui_ImplDX9_GetBackendData(); - const bool convert_rgba_to_bgra = (!bd->HasRgbaSupport && tex_use_colors); -#else - const bool convert_rgba_to_bgra = false; - IM_UNUSED(tex_use_colors); -#endif - for (int y = 0; y < h; y++) - { - const ImU32* src_p = (const ImU32*)(const void*)((const unsigned char*)src + src_pitch * y); - ImU32* dst_p = (ImU32*)(void*)((unsigned char*)dst + dst_pitch * y); - if (convert_rgba_to_bgra) - for (int x = w; x > 0; x--, src_p++, dst_p++) // Convert copy - *dst_p = IMGUI_COL_TO_DX9_ARGB(*src_p); - else - memcpy(dst_p, src_p, w * 4); // Raw copy - } -} - -void ImGui_ImplDX9_UpdateTexture(ImTextureData* tex) -{ - ImGui_ImplDX9_Data* bd = ImGui_ImplDX9_GetBackendData(); - - if (tex->Status == ImTextureStatus_WantCreate) - { - // Create and upload new texture to graphics system - //IMGUI_DEBUG_LOG("UpdateTexture #%03d: WantCreate %dx%d\n", tex->UniqueID, tex->Width, tex->Height); - IM_ASSERT(tex->TexID == ImTextureID_Invalid && tex->BackendUserData == nullptr); - IM_ASSERT(tex->Format == ImTextureFormat_RGBA32); - LPDIRECT3DTEXTURE9 dx_tex = nullptr; - HRESULT hr = bd->pd3dDevice->CreateTexture(tex->Width, tex->Height, 1, D3DUSAGE_DYNAMIC, bd->HasRgbaSupport ? D3DFMT_A8B8G8R8 : D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &dx_tex, nullptr); - if (hr < 0) - { - IM_ASSERT(hr >= 0 && "Backend failed to create texture!"); - return; - } - - D3DLOCKED_RECT locked_rect; - if (dx_tex->LockRect(0, &locked_rect, nullptr, 0) == D3D_OK) - { - ImGui_ImplDX9_CopyTextureRegion(tex->UseColors, (ImU32*)tex->GetPixels(), tex->Width * 4, (ImU32*)locked_rect.pBits, (ImU32)locked_rect.Pitch, tex->Width, tex->Height); - dx_tex->UnlockRect(0); - } - - // Store identifiers - tex->SetTexID((ImTextureID)(intptr_t)dx_tex); - tex->SetStatus(ImTextureStatus_OK); - } - else if (tex->Status == ImTextureStatus_WantUpdates) - { - // Update selected blocks. We only ever write to textures regions which have never been used before! - // This backend choose to use tex->Updates[] but you can use tex->UpdateRect to upload a single region. - LPDIRECT3DTEXTURE9 backend_tex = (LPDIRECT3DTEXTURE9)(intptr_t)tex->TexID; - RECT update_rect = { (LONG)tex->UpdateRect.x, (LONG)tex->UpdateRect.y, (LONG)(tex->UpdateRect.x + tex->UpdateRect.w), (LONG)(tex->UpdateRect.y + tex->UpdateRect.h) }; - D3DLOCKED_RECT locked_rect; - if (backend_tex->LockRect(0, &locked_rect, &update_rect, 0) == D3D_OK) - for (ImTextureRect& r : tex->Updates) - ImGui_ImplDX9_CopyTextureRegion(tex->UseColors, (ImU32*)tex->GetPixelsAt(r.x, r.y), tex->Width * 4, - (ImU32*)locked_rect.pBits + (r.x - update_rect.left) + (r.y - update_rect.top) * (locked_rect.Pitch / 4), (int)locked_rect.Pitch, r.w, r.h); - backend_tex->UnlockRect(0); - tex->SetStatus(ImTextureStatus_OK); - } - else if (tex->Status == ImTextureStatus_WantDestroy) - { - LPDIRECT3DTEXTURE9 backend_tex = (LPDIRECT3DTEXTURE9)tex->TexID; - if (backend_tex == nullptr) - return; - IM_ASSERT(tex->TexID == (ImTextureID)(intptr_t)backend_tex); - backend_tex->Release(); - - // Clear identifiers and mark as destroyed (in order to allow e.g. calling InvalidateDeviceObjects while running) - tex->SetTexID(ImTextureID_Invalid); - tex->SetStatus(ImTextureStatus_Destroyed); - } -} - -bool ImGui_ImplDX9_CreateDeviceObjects() -{ - ImGui_ImplDX9_Data* bd = ImGui_ImplDX9_GetBackendData(); - if (!bd || !bd->pd3dDevice) - return false; - return true; -} - -void ImGui_ImplDX9_InvalidateDeviceObjects() -{ - ImGui_ImplDX9_Data* bd = ImGui_ImplDX9_GetBackendData(); - if (!bd || !bd->pd3dDevice) - return; - - // Destroy all textures - for (ImTextureData* tex : ImGui::GetPlatformIO().Textures) - if (tex->RefCount == 1) - { - tex->SetStatus(ImTextureStatus_WantDestroy); - ImGui_ImplDX9_UpdateTexture(tex); - } - if (bd->pVB) { bd->pVB->Release(); bd->pVB = nullptr; } - if (bd->pIB) { bd->pIB->Release(); bd->pIB = nullptr; } -} - -void ImGui_ImplDX9_NewFrame() -{ - ImGui_ImplDX9_Data* bd = ImGui_ImplDX9_GetBackendData(); - IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplDX9_Init()?"); - IM_UNUSED(bd); -} - -//----------------------------------------------------------------------------- - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_dx9.h b/libs/imgui-1.92.1/backends/imgui_impl_dx9.h deleted file mode 100644 index 600f0a7..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_dx9.h +++ /dev/null @@ -1,37 +0,0 @@ -// dear imgui: Renderer Backend for DirectX9 -// This needs to be used along with a Platform Backend (e.g. Win32) - -// Implemented features: -// [X] Renderer: User texture binding. Use 'LPDIRECT3DTEXTURE9' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). -// [X] Renderer: IMGUI_USE_BGRA_PACKED_COLOR support, as this is the optimal color encoding for DirectX9. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#pragma once -#include "imgui.h" // IMGUI_IMPL_API -#ifndef IMGUI_DISABLE - -struct IDirect3DDevice9; - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplDX9_Init(IDirect3DDevice9* device); -IMGUI_IMPL_API void ImGui_ImplDX9_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplDX9_NewFrame(); -IMGUI_IMPL_API void ImGui_ImplDX9_RenderDrawData(ImDrawData* draw_data); - -// Use if you want to reset your rendering device without losing Dear ImGui state. -IMGUI_IMPL_API bool ImGui_ImplDX9_CreateDeviceObjects(); -IMGUI_IMPL_API void ImGui_ImplDX9_InvalidateDeviceObjects(); - -// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = NULL to handle this manually. -IMGUI_IMPL_API void ImGui_ImplDX9_UpdateTexture(ImTextureData* tex); - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_glut.cpp b/libs/imgui-1.92.1/backends/imgui_impl_glut.cpp deleted file mode 100644 index a68f9db..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_glut.cpp +++ /dev/null @@ -1,309 +0,0 @@ -// dear imgui: Platform Backend for GLUT/FreeGLUT -// This needs to be used along with a Renderer (e.g. OpenGL2) - -// !!! GLUT/FreeGLUT IS OBSOLETE PREHISTORIC SOFTWARE. Using GLUT is not recommended unless you really miss the 90's. !!! -// !!! If someone or something is teaching you GLUT today, you are being abused. Please show some resistance. !!! -// !!! Nowadays, prefer using GLFW or SDL instead! - -// Implemented features: -// [X] Platform: Partial keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy GLUT values are obsolete since 1.87 and not supported since 1.91.5] -// Missing features or Issues: -// [ ] Platform: GLUT is unable to distinguish e.g. Backspace from CTRL+H or TAB from CTRL+I -// [ ] Platform: Missing horizontal mouse wheel support. -// [ ] Platform: Missing mouse cursor shape/visibility support. -// [ ] Platform: Missing clipboard support (not supported by Glut). -// [ ] Platform: Missing gamepad support. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// CHANGELOG -// (minor and older changes stripped away, please see git history for details) -// 2023-04-17: BREAKING: Removed call to ImGui::NewFrame() from ImGui_ImplGLUT_NewFrame(). Needs to be called from the main application loop, like with every other backends. -// 2022-09-26: Inputs: Renamed ImGuiKey_ModXXX introduced in 1.87 to ImGuiMod_XXX (old names still supported). -// 2022-01-26: Inputs: replaced short-lived io.AddKeyModsEvent() (added two weeks ago) with io.AddKeyEvent() using ImGuiKey_ModXXX flags. Sorry for the confusion. -// 2022-01-17: Inputs: calling new io.AddMousePosEvent(), io.AddMouseButtonEvent(), io.AddMouseWheelEvent() API (1.87+). -// 2022-01-10: Inputs: calling new io.AddKeyEvent(), io.AddKeyModsEvent() + io.SetKeyEventNativeData() API (1.87+). Support for full ImGuiKey range. -// 2019-04-03: Misc: Renamed imgui_impl_freeglut.cpp/.h to imgui_impl_glut.cpp/.h. -// 2019-03-25: Misc: Made io.DeltaTime always above zero. -// 2018-11-30: Misc: Setting up io.BackendPlatformName so it can be displayed in the About Window. -// 2018-03-22: Added GLUT Platform binding. - -#include "imgui.h" -#ifndef IMGUI_DISABLE -#include "imgui_impl_glut.h" -#define GL_SILENCE_DEPRECATION -#ifdef __APPLE__ -#include -#else -#include -#endif - -#ifdef _MSC_VER -#pragma warning (disable: 4505) // unreferenced local function has been removed (stb stuff) -#endif - -static int g_Time = 0; // Current time, in milliseconds - -// Glut has one function for characters and one for "special keys". We map the characters in the 0..255 range and the keys above. -static ImGuiKey ImGui_ImplGLUT_KeyToImGuiKey(int key) -{ - switch (key) - { - case '\t': return ImGuiKey_Tab; - case 256 + GLUT_KEY_LEFT: return ImGuiKey_LeftArrow; - case 256 + GLUT_KEY_RIGHT: return ImGuiKey_RightArrow; - case 256 + GLUT_KEY_UP: return ImGuiKey_UpArrow; - case 256 + GLUT_KEY_DOWN: return ImGuiKey_DownArrow; - case 256 + GLUT_KEY_PAGE_UP: return ImGuiKey_PageUp; - case 256 + GLUT_KEY_PAGE_DOWN: return ImGuiKey_PageDown; - case 256 + GLUT_KEY_HOME: return ImGuiKey_Home; - case 256 + GLUT_KEY_END: return ImGuiKey_End; - case 256 + GLUT_KEY_INSERT: return ImGuiKey_Insert; - case 127: return ImGuiKey_Delete; - case 8: return ImGuiKey_Backspace; - case ' ': return ImGuiKey_Space; - case 13: return ImGuiKey_Enter; - case 27: return ImGuiKey_Escape; - case 39: return ImGuiKey_Apostrophe; - case 44: return ImGuiKey_Comma; - case 45: return ImGuiKey_Minus; - case 46: return ImGuiKey_Period; - case 47: return ImGuiKey_Slash; - case 59: return ImGuiKey_Semicolon; - case 61: return ImGuiKey_Equal; - case 91: return ImGuiKey_LeftBracket; - case 92: return ImGuiKey_Backslash; - case 93: return ImGuiKey_RightBracket; - case 96: return ImGuiKey_GraveAccent; - //case 0: return ImGuiKey_CapsLock; - //case 0: return ImGuiKey_ScrollLock; - case 256 + 0x006D: return ImGuiKey_NumLock; - //case 0: return ImGuiKey_PrintScreen; - //case 0: return ImGuiKey_Pause; - //case '0': return ImGuiKey_Keypad0; - //case '1': return ImGuiKey_Keypad1; - //case '2': return ImGuiKey_Keypad2; - //case '3': return ImGuiKey_Keypad3; - //case '4': return ImGuiKey_Keypad4; - //case '5': return ImGuiKey_Keypad5; - //case '6': return ImGuiKey_Keypad6; - //case '7': return ImGuiKey_Keypad7; - //case '8': return ImGuiKey_Keypad8; - //case '9': return ImGuiKey_Keypad9; - //case 46: return ImGuiKey_KeypadDecimal; - //case 47: return ImGuiKey_KeypadDivide; - case 42: return ImGuiKey_KeypadMultiply; - //case 45: return ImGuiKey_KeypadSubtract; - case 43: return ImGuiKey_KeypadAdd; - //case 13: return ImGuiKey_KeypadEnter; - //case 0: return ImGuiKey_KeypadEqual; - case 256 + 0x0072: return ImGuiKey_LeftCtrl; - case 256 + 0x0070: return ImGuiKey_LeftShift; - case 256 + 0x0074: return ImGuiKey_LeftAlt; - //case 0: return ImGuiKey_LeftSuper; - case 256 + 0x0073: return ImGuiKey_RightCtrl; - case 256 + 0x0071: return ImGuiKey_RightShift; - case 256 + 0x0075: return ImGuiKey_RightAlt; - //case 0: return ImGuiKey_RightSuper; - //case 0: return ImGuiKey_Menu; - case '0': return ImGuiKey_0; - case '1': return ImGuiKey_1; - case '2': return ImGuiKey_2; - case '3': return ImGuiKey_3; - case '4': return ImGuiKey_4; - case '5': return ImGuiKey_5; - case '6': return ImGuiKey_6; - case '7': return ImGuiKey_7; - case '8': return ImGuiKey_8; - case '9': return ImGuiKey_9; - case 'A': case 'a': return ImGuiKey_A; - case 'B': case 'b': return ImGuiKey_B; - case 'C': case 'c': return ImGuiKey_C; - case 'D': case 'd': return ImGuiKey_D; - case 'E': case 'e': return ImGuiKey_E; - case 'F': case 'f': return ImGuiKey_F; - case 'G': case 'g': return ImGuiKey_G; - case 'H': case 'h': return ImGuiKey_H; - case 'I': case 'i': return ImGuiKey_I; - case 'J': case 'j': return ImGuiKey_J; - case 'K': case 'k': return ImGuiKey_K; - case 'L': case 'l': return ImGuiKey_L; - case 'M': case 'm': return ImGuiKey_M; - case 'N': case 'n': return ImGuiKey_N; - case 'O': case 'o': return ImGuiKey_O; - case 'P': case 'p': return ImGuiKey_P; - case 'Q': case 'q': return ImGuiKey_Q; - case 'R': case 'r': return ImGuiKey_R; - case 'S': case 's': return ImGuiKey_S; - case 'T': case 't': return ImGuiKey_T; - case 'U': case 'u': return ImGuiKey_U; - case 'V': case 'v': return ImGuiKey_V; - case 'W': case 'w': return ImGuiKey_W; - case 'X': case 'x': return ImGuiKey_X; - case 'Y': case 'y': return ImGuiKey_Y; - case 'Z': case 'z': return ImGuiKey_Z; - case 256 + GLUT_KEY_F1: return ImGuiKey_F1; - case 256 + GLUT_KEY_F2: return ImGuiKey_F2; - case 256 + GLUT_KEY_F3: return ImGuiKey_F3; - case 256 + GLUT_KEY_F4: return ImGuiKey_F4; - case 256 + GLUT_KEY_F5: return ImGuiKey_F5; - case 256 + GLUT_KEY_F6: return ImGuiKey_F6; - case 256 + GLUT_KEY_F7: return ImGuiKey_F7; - case 256 + GLUT_KEY_F8: return ImGuiKey_F8; - case 256 + GLUT_KEY_F9: return ImGuiKey_F9; - case 256 + GLUT_KEY_F10: return ImGuiKey_F10; - case 256 + GLUT_KEY_F11: return ImGuiKey_F11; - case 256 + GLUT_KEY_F12: return ImGuiKey_F12; - default: return ImGuiKey_None; - } -} - -bool ImGui_ImplGLUT_Init() -{ - ImGuiIO& io = ImGui::GetIO(); - IMGUI_CHECKVERSION(); - -#ifdef FREEGLUT - io.BackendPlatformName = "imgui_impl_glut (freeglut)"; -#else - io.BackendPlatformName = "imgui_impl_glut"; -#endif - g_Time = 0; - - return true; -} - -void ImGui_ImplGLUT_InstallFuncs() -{ - glutReshapeFunc(ImGui_ImplGLUT_ReshapeFunc); - glutMotionFunc(ImGui_ImplGLUT_MotionFunc); - glutPassiveMotionFunc(ImGui_ImplGLUT_MotionFunc); - glutMouseFunc(ImGui_ImplGLUT_MouseFunc); -#ifdef __FREEGLUT_EXT_H__ - glutMouseWheelFunc(ImGui_ImplGLUT_MouseWheelFunc); -#endif - glutKeyboardFunc(ImGui_ImplGLUT_KeyboardFunc); - glutKeyboardUpFunc(ImGui_ImplGLUT_KeyboardUpFunc); - glutSpecialFunc(ImGui_ImplGLUT_SpecialFunc); - glutSpecialUpFunc(ImGui_ImplGLUT_SpecialUpFunc); -} - -void ImGui_ImplGLUT_Shutdown() -{ - ImGuiIO& io = ImGui::GetIO(); - io.BackendPlatformName = nullptr; -} - -void ImGui_ImplGLUT_NewFrame() -{ - // Setup time step - ImGuiIO& io = ImGui::GetIO(); - int current_time = glutGet(GLUT_ELAPSED_TIME); - int delta_time_ms = (current_time - g_Time); - if (delta_time_ms <= 0) - delta_time_ms = 1; - io.DeltaTime = delta_time_ms / 1000.0f; - g_Time = current_time; -} - -static void ImGui_ImplGLUT_UpdateKeyModifiers() -{ - ImGuiIO& io = ImGui::GetIO(); - int glut_key_mods = glutGetModifiers(); - io.AddKeyEvent(ImGuiMod_Ctrl, (glut_key_mods & GLUT_ACTIVE_CTRL) != 0); - io.AddKeyEvent(ImGuiMod_Shift, (glut_key_mods & GLUT_ACTIVE_SHIFT) != 0); - io.AddKeyEvent(ImGuiMod_Alt, (glut_key_mods & GLUT_ACTIVE_ALT) != 0); -} - -static void ImGui_ImplGLUT_AddKeyEvent(ImGuiKey key, bool down, int native_keycode) -{ - ImGuiIO& io = ImGui::GetIO(); - io.AddKeyEvent(key, down); - io.SetKeyEventNativeData(key, native_keycode, -1); // To support legacy indexing (<1.87 user code) -} - -void ImGui_ImplGLUT_KeyboardFunc(unsigned char c, int x, int y) -{ - // Send character to imgui - //printf("char_down_func %d '%c'\n", c, c); - ImGuiIO& io = ImGui::GetIO(); - if (c >= 32) - io.AddInputCharacter((unsigned int)c); - - ImGuiKey key = ImGui_ImplGLUT_KeyToImGuiKey(c); - ImGui_ImplGLUT_AddKeyEvent(key, true, c); - ImGui_ImplGLUT_UpdateKeyModifiers(); - (void)x; (void)y; // Unused -} - -void ImGui_ImplGLUT_KeyboardUpFunc(unsigned char c, int x, int y) -{ - //printf("char_up_func %d '%c'\n", c, c); - ImGuiKey key = ImGui_ImplGLUT_KeyToImGuiKey(c); - ImGui_ImplGLUT_AddKeyEvent(key, false, c); - ImGui_ImplGLUT_UpdateKeyModifiers(); - (void)x; (void)y; // Unused -} - -void ImGui_ImplGLUT_SpecialFunc(int key, int x, int y) -{ - //printf("key_down_func %d\n", key); - ImGuiKey imgui_key = ImGui_ImplGLUT_KeyToImGuiKey(key + 256); - ImGui_ImplGLUT_AddKeyEvent(imgui_key, true, key + 256); - ImGui_ImplGLUT_UpdateKeyModifiers(); - (void)x; (void)y; // Unused -} - -void ImGui_ImplGLUT_SpecialUpFunc(int key, int x, int y) -{ - //printf("key_up_func %d\n", key); - ImGuiKey imgui_key = ImGui_ImplGLUT_KeyToImGuiKey(key + 256); - ImGui_ImplGLUT_AddKeyEvent(imgui_key, false, key + 256); - ImGui_ImplGLUT_UpdateKeyModifiers(); - (void)x; (void)y; // Unused -} - -void ImGui_ImplGLUT_MouseFunc(int glut_button, int state, int x, int y) -{ - ImGuiIO& io = ImGui::GetIO(); - io.AddMousePosEvent((float)x, (float)y); - int button = -1; - if (glut_button == GLUT_LEFT_BUTTON) button = 0; - if (glut_button == GLUT_RIGHT_BUTTON) button = 1; - if (glut_button == GLUT_MIDDLE_BUTTON) button = 2; - if (button != -1 && (state == GLUT_DOWN || state == GLUT_UP)) - io.AddMouseButtonEvent(button, state == GLUT_DOWN); -} - -#ifdef __FREEGLUT_EXT_H__ -void ImGui_ImplGLUT_MouseWheelFunc(int button, int dir, int x, int y) -{ - ImGuiIO& io = ImGui::GetIO(); - io.AddMousePosEvent((float)x, (float)y); - if (dir != 0) - io.AddMouseWheelEvent(0.0f, dir > 0 ? 1.0f : -1.0f); - (void)button; // Unused -} -#endif - -void ImGui_ImplGLUT_ReshapeFunc(int w, int h) -{ - ImGuiIO& io = ImGui::GetIO(); - io.DisplaySize = ImVec2((float)w, (float)h); -} - -void ImGui_ImplGLUT_MotionFunc(int x, int y) -{ - ImGuiIO& io = ImGui::GetIO(); - io.AddMousePosEvent((float)x, (float)y); -} - -//----------------------------------------------------------------------------- - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_glut.h b/libs/imgui-1.92.1/backends/imgui_impl_glut.h deleted file mode 100644 index 20e77db..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_glut.h +++ /dev/null @@ -1,47 +0,0 @@ -// dear imgui: Platform Backend for GLUT/FreeGLUT -// This needs to be used along with a Renderer (e.g. OpenGL2) - -// !!! GLUT/FreeGLUT IS OBSOLETE PREHISTORIC SOFTWARE. Using GLUT is not recommended unless you really miss the 90's. !!! -// !!! If someone or something is teaching you GLUT today, you are being abused. Please show some resistance. !!! -// !!! Nowadays, prefer using GLFW or SDL instead! - -// Implemented features: -// [X] Platform: Partial keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy GLUT values are obsolete since 1.87 and not supported since 1.91.5] -// Missing features or Issues: -// [ ] Platform: GLUT is unable to distinguish e.g. Backspace from CTRL+H or TAB from CTRL+I -// [ ] Platform: Missing horizontal mouse wheel support. -// [ ] Platform: Missing mouse cursor shape/visibility support. -// [ ] Platform: Missing clipboard support (not supported by Glut). -// [ ] Platform: Missing gamepad support. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#pragma once -#ifndef IMGUI_DISABLE -#include "imgui.h" // IMGUI_IMPL_API - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplGLUT_Init(); -IMGUI_IMPL_API void ImGui_ImplGLUT_InstallFuncs(); -IMGUI_IMPL_API void ImGui_ImplGLUT_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplGLUT_NewFrame(); - -// You can call ImGui_ImplGLUT_InstallFuncs() to get all those functions installed automatically, -// or call them yourself from your own GLUT handlers. We are using the same weird names as GLUT for consistency.. -//------------------------------------ GLUT name ---------------------------------------------- Decent Name --------- -IMGUI_IMPL_API void ImGui_ImplGLUT_ReshapeFunc(int w, int h); // ~ ResizeFunc -IMGUI_IMPL_API void ImGui_ImplGLUT_MotionFunc(int x, int y); // ~ MouseMoveFunc -IMGUI_IMPL_API void ImGui_ImplGLUT_MouseFunc(int button, int state, int x, int y); // ~ MouseButtonFunc -IMGUI_IMPL_API void ImGui_ImplGLUT_MouseWheelFunc(int button, int dir, int x, int y); // ~ MouseWheelFunc -IMGUI_IMPL_API void ImGui_ImplGLUT_KeyboardFunc(unsigned char c, int x, int y); // ~ CharPressedFunc -IMGUI_IMPL_API void ImGui_ImplGLUT_KeyboardUpFunc(unsigned char c, int x, int y); // ~ CharReleasedFunc -IMGUI_IMPL_API void ImGui_ImplGLUT_SpecialFunc(int key, int x, int y); // ~ KeyPressedFunc -IMGUI_IMPL_API void ImGui_ImplGLUT_SpecialUpFunc(int key, int x, int y); // ~ KeyReleasedFunc - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_metal.h b/libs/imgui-1.92.1/backends/imgui_impl_metal.h deleted file mode 100644 index 2a9a26a..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_metal.h +++ /dev/null @@ -1,78 +0,0 @@ -// dear imgui: Renderer Backend for Metal -// This needs to be used along with a Platform Backend (e.g. OSX) - -// Implemented features: -// [X] Renderer: User texture binding. Use 'MTLTexture' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#pragma once -#include "imgui.h" // IMGUI_IMPL_API -#ifndef IMGUI_DISABLE - -//----------------------------------------------------------------------------- -// ObjC API -//----------------------------------------------------------------------------- - -#ifdef __OBJC__ - -@class MTLRenderPassDescriptor; -@protocol MTLDevice, MTLCommandBuffer, MTLRenderCommandEncoder; - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplMetal_Init(id device); -IMGUI_IMPL_API void ImGui_ImplMetal_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplMetal_NewFrame(MTLRenderPassDescriptor* renderPassDescriptor); -IMGUI_IMPL_API void ImGui_ImplMetal_RenderDrawData(ImDrawData* drawData, - id commandBuffer, - id commandEncoder); - -// Called by Init/NewFrame/Shutdown -IMGUI_IMPL_API bool ImGui_ImplMetal_CreateDeviceObjects(id device); -IMGUI_IMPL_API void ImGui_ImplMetal_DestroyDeviceObjects(); - -// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = NULL to handle this manually. -IMGUI_IMPL_API void ImGui_ImplMetal_UpdateTexture(ImTextureData* tex); - -#endif - -//----------------------------------------------------------------------------- -// C++ API -//----------------------------------------------------------------------------- - -// Enable Metal C++ binding support with '#define IMGUI_IMPL_METAL_CPP' in your imconfig.h file -// More info about using Metal from C++: https://developer.apple.com/metal/cpp/ - -#ifdef IMGUI_IMPL_METAL_CPP -#include -#ifndef __OBJC__ - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplMetal_Init(MTL::Device* device); -IMGUI_IMPL_API void ImGui_ImplMetal_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplMetal_NewFrame(MTL::RenderPassDescriptor* renderPassDescriptor); -IMGUI_IMPL_API void ImGui_ImplMetal_RenderDrawData(ImDrawData* draw_data, - MTL::CommandBuffer* commandBuffer, - MTL::RenderCommandEncoder* commandEncoder); - -// Called by Init/NewFrame/Shutdown -IMGUI_IMPL_API bool ImGui_ImplMetal_CreateDeviceObjects(MTL::Device* device); -IMGUI_IMPL_API void ImGui_ImplMetal_DestroyDeviceObjects(); - -// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = NULL to handle this manually. -IMGUI_IMPL_API void ImGui_ImplMetal_UpdateTexture(ImTextureData* tex); - -#endif -#endif - -//----------------------------------------------------------------------------- - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_metal.mm b/libs/imgui-1.92.1/backends/imgui_impl_metal.mm deleted file mode 100644 index b1decb2..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_metal.mm +++ /dev/null @@ -1,652 +0,0 @@ -// dear imgui: Renderer Backend for Metal -// This needs to be used along with a Platform Backend (e.g. OSX) - -// Implemented features: -// [X] Renderer: User texture binding. Use 'MTLTexture' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// CHANGELOG -// (minor and older changes stripped away, please see git history for details) -// 2025-06-11: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas. Removed ImGui_ImplMetal_CreateFontsTexture() and ImGui_ImplMetal_DestroyFontsTexture(). -// 2025-02-03: Metal: Crash fix. (#8367) -// 2024-01-08: Metal: Fixed memory leaks when using metal-cpp (#8276, #8166) or when using multiple contexts (#7419). -// 2022-08-23: Metal: Update deprecated property 'sampleCount'->'rasterSampleCount'. -// 2022-07-05: Metal: Add dispatch synchronization. -// 2022-06-30: Metal: Use __bridge for ARC based systems. -// 2022-06-01: Metal: Fixed null dereference on exit inside command buffer completion handler. -// 2022-04-27: Misc: Store backend data in a per-context struct, allowing to use this backend with multiple contexts. -// 2022-01-03: Metal: Ignore ImDrawCmd where ElemCount == 0 (very rare but can technically be manufactured by user code). -// 2021-12-30: Metal: Added Metal C++ support. Enable with '#define IMGUI_IMPL_METAL_CPP' in your imconfig.h file. -// 2021-08-24: Metal: Fixed a crash when clipping rect larger than framebuffer is submitted. (#4464) -// 2021-05-19: Metal: Replaced direct access to ImDrawCmd::TextureId with a call to ImDrawCmd::GetTexID(). (will become a requirement) -// 2021-02-18: Metal: Change blending equation to preserve alpha in output buffer. -// 2021-01-25: Metal: Fixed texture storage mode when building on Mac Catalyst. -// 2019-05-29: Metal: Added support for large mesh (64K+ vertices), enable ImGuiBackendFlags_RendererHasVtxOffset flag. -// 2019-04-30: Metal: Added support for special ImDrawCallback_ResetRenderState callback to reset render state. -// 2019-02-11: Metal: Projecting clipping rectangles correctly using draw_data->FramebufferScale to allow multi-viewports for retina display. -// 2018-11-30: Misc: Setting up io.BackendRendererName so it can be displayed in the About Window. -// 2018-07-05: Metal: Added new Metal backend implementation. - -#include "imgui.h" -#ifndef IMGUI_DISABLE -#include "imgui_impl_metal.h" -#import -#import - -#pragma mark - Support classes - -// A wrapper around a MTLBuffer object that knows the last time it was reused -@interface MetalBuffer : NSObject -@property (nonatomic, strong) id buffer; -@property (nonatomic, assign) double lastReuseTime; -- (instancetype)initWithBuffer:(id)buffer; -@end - -// An object that encapsulates the data necessary to uniquely identify a -// render pipeline state. These are used as cache keys. -@interface FramebufferDescriptor : NSObject -@property (nonatomic, assign) unsigned long sampleCount; -@property (nonatomic, assign) MTLPixelFormat colorPixelFormat; -@property (nonatomic, assign) MTLPixelFormat depthPixelFormat; -@property (nonatomic, assign) MTLPixelFormat stencilPixelFormat; -- (instancetype)initWithRenderPassDescriptor:(MTLRenderPassDescriptor*)renderPassDescriptor; -@end - -@interface MetalTexture : NSObject -@property (nonatomic, strong) id metalTexture; -- (instancetype)initWithTexture:(id)metalTexture; -@end - -// A singleton that stores long-lived objects that are needed by the Metal -// renderer backend. Stores the render pipeline state cache and the default -// font texture, and manages the reusable buffer cache. -@interface MetalContext : NSObject -@property (nonatomic, strong) id device; -@property (nonatomic, strong) id depthStencilState; -@property (nonatomic, strong) FramebufferDescriptor* framebufferDescriptor; // framebuffer descriptor for current frame; transient -@property (nonatomic, strong) NSMutableDictionary* renderPipelineStateCache; // pipeline cache; keyed on framebuffer descriptors -@property (nonatomic, strong) NSMutableArray* bufferCache; -@property (nonatomic, assign) double lastBufferCachePurge; -- (MetalBuffer*)dequeueReusableBufferOfLength:(NSUInteger)length device:(id)device; -- (id)renderPipelineStateForFramebufferDescriptor:(FramebufferDescriptor*)descriptor device:(id)device; -@end - -struct ImGui_ImplMetal_Data -{ - MetalContext* SharedMetalContext; - - ImGui_ImplMetal_Data() { memset((void*)this, 0, sizeof(*this)); } -}; - -static ImGui_ImplMetal_Data* ImGui_ImplMetal_GetBackendData() { return ImGui::GetCurrentContext() ? (ImGui_ImplMetal_Data*)ImGui::GetIO().BackendRendererUserData : nullptr; } -static void ImGui_ImplMetal_DestroyBackendData(){ IM_DELETE(ImGui_ImplMetal_GetBackendData()); } - -static inline CFTimeInterval GetMachAbsoluteTimeInSeconds() { return (CFTimeInterval)(double)(clock_gettime_nsec_np(CLOCK_UPTIME_RAW) / 1e9); } - -#ifdef IMGUI_IMPL_METAL_CPP - -#pragma mark - Dear ImGui Metal C++ Backend API - -bool ImGui_ImplMetal_Init(MTL::Device* device) -{ - return ImGui_ImplMetal_Init((__bridge id)(device)); -} - -void ImGui_ImplMetal_NewFrame(MTL::RenderPassDescriptor* renderPassDescriptor) -{ - ImGui_ImplMetal_NewFrame((__bridge MTLRenderPassDescriptor*)(renderPassDescriptor)); -} - -void ImGui_ImplMetal_RenderDrawData(ImDrawData* draw_data, - MTL::CommandBuffer* commandBuffer, - MTL::RenderCommandEncoder* commandEncoder) -{ - ImGui_ImplMetal_RenderDrawData(draw_data, - (__bridge id)(commandBuffer), - (__bridge id)(commandEncoder)); - -} - -bool ImGui_ImplMetal_CreateDeviceObjects(MTL::Device* device) -{ - return ImGui_ImplMetal_CreateDeviceObjects((__bridge id)(device)); -} - -#endif // #ifdef IMGUI_IMPL_METAL_CPP - -#pragma mark - Dear ImGui Metal Backend API - -bool ImGui_ImplMetal_Init(id device) -{ - ImGuiIO& io = ImGui::GetIO(); - IMGUI_CHECKVERSION(); - IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); - - ImGui_ImplMetal_Data* bd = IM_NEW(ImGui_ImplMetal_Data)(); - io.BackendRendererUserData = (void*)bd; - io.BackendRendererName = "imgui_impl_metal"; - io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset; // We can honor the ImDrawCmd::VtxOffset field, allowing for large meshes. - io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures; // We can honor ImGuiPlatformIO::Textures[] requests during render. - - bd->SharedMetalContext = [[MetalContext alloc] init]; - bd->SharedMetalContext.device = device; - - return true; -} - -void ImGui_ImplMetal_Shutdown() -{ - ImGui_ImplMetal_Data* bd = ImGui_ImplMetal_GetBackendData(); - IM_UNUSED(bd); - IM_ASSERT(bd != nullptr && "No renderer backend to shutdown, or already shutdown?"); - ImGui_ImplMetal_DestroyDeviceObjects(); - ImGui_ImplMetal_DestroyBackendData(); - - ImGuiIO& io = ImGui::GetIO(); - io.BackendRendererName = nullptr; - io.BackendRendererUserData = nullptr; - io.BackendFlags &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures); -} - -void ImGui_ImplMetal_NewFrame(MTLRenderPassDescriptor* renderPassDescriptor) -{ - ImGui_ImplMetal_Data* bd = ImGui_ImplMetal_GetBackendData(); - IM_ASSERT(bd != nil && "Context or backend not initialized! Did you call ImGui_ImplMetal_Init()?"); -#ifdef IMGUI_IMPL_METAL_CPP - bd->SharedMetalContext.framebufferDescriptor = [[[FramebufferDescriptor alloc] initWithRenderPassDescriptor:renderPassDescriptor]autorelease]; -#else - bd->SharedMetalContext.framebufferDescriptor = [[FramebufferDescriptor alloc] initWithRenderPassDescriptor:renderPassDescriptor]; -#endif - if (bd->SharedMetalContext.depthStencilState == nil) - ImGui_ImplMetal_CreateDeviceObjects(bd->SharedMetalContext.device); -} - -static void ImGui_ImplMetal_SetupRenderState(ImDrawData* draw_data, id commandBuffer, - id commandEncoder, id renderPipelineState, - MetalBuffer* vertexBuffer, size_t vertexBufferOffset) -{ - IM_UNUSED(commandBuffer); - ImGui_ImplMetal_Data* bd = ImGui_ImplMetal_GetBackendData(); - [commandEncoder setCullMode:MTLCullModeNone]; - [commandEncoder setDepthStencilState:bd->SharedMetalContext.depthStencilState]; - - // Setup viewport, orthographic projection matrix - // Our visible imgui space lies from draw_data->DisplayPos (top left) to - // draw_data->DisplayPos+data_data->DisplaySize (bottom right). DisplayMin is typically (0,0) for single viewport apps. - MTLViewport viewport = - { - .originX = 0.0, - .originY = 0.0, - .width = (double)(draw_data->DisplaySize.x * draw_data->FramebufferScale.x), - .height = (double)(draw_data->DisplaySize.y * draw_data->FramebufferScale.y), - .znear = 0.0, - .zfar = 1.0 - }; - [commandEncoder setViewport:viewport]; - - float L = draw_data->DisplayPos.x; - float R = draw_data->DisplayPos.x + draw_data->DisplaySize.x; - float T = draw_data->DisplayPos.y; - float B = draw_data->DisplayPos.y + draw_data->DisplaySize.y; - float N = (float)viewport.znear; - float F = (float)viewport.zfar; - const float ortho_projection[4][4] = - { - { 2.0f/(R-L), 0.0f, 0.0f, 0.0f }, - { 0.0f, 2.0f/(T-B), 0.0f, 0.0f }, - { 0.0f, 0.0f, 1/(F-N), 0.0f }, - { (R+L)/(L-R), (T+B)/(B-T), N/(F-N), 1.0f }, - }; - [commandEncoder setVertexBytes:&ortho_projection length:sizeof(ortho_projection) atIndex:1]; - - [commandEncoder setRenderPipelineState:renderPipelineState]; - - [commandEncoder setVertexBuffer:vertexBuffer.buffer offset:0 atIndex:0]; - [commandEncoder setVertexBufferOffset:vertexBufferOffset atIndex:0]; -} - -// Metal Render function. -void ImGui_ImplMetal_RenderDrawData(ImDrawData* draw_data, id commandBuffer, id commandEncoder) -{ - ImGui_ImplMetal_Data* bd = ImGui_ImplMetal_GetBackendData(); - MetalContext* ctx = bd->SharedMetalContext; - - // Avoid rendering when minimized, scale coordinates for retina displays (screen coordinates != framebuffer coordinates) - int fb_width = (int)(draw_data->DisplaySize.x * draw_data->FramebufferScale.x); - int fb_height = (int)(draw_data->DisplaySize.y * draw_data->FramebufferScale.y); - if (fb_width <= 0 || fb_height <= 0 || draw_data->CmdListsCount == 0) - return; - - // Catch up with texture updates. Most of the times, the list will have 1 element with an OK status, aka nothing to do. - // (This almost always points to ImGui::GetPlatformIO().Textures[] but is part of ImDrawData to allow overriding or disabling texture updates). - if (draw_data->Textures != nullptr) - for (ImTextureData* tex : *draw_data->Textures) - if (tex->Status != ImTextureStatus_OK) - ImGui_ImplMetal_UpdateTexture(tex); - - // Try to retrieve a render pipeline state that is compatible with the framebuffer config for this frame - // The hit rate for this cache should be very near 100%. - id renderPipelineState = ctx.renderPipelineStateCache[ctx.framebufferDescriptor]; - if (renderPipelineState == nil) - { - // No luck; make a new render pipeline state - renderPipelineState = [ctx renderPipelineStateForFramebufferDescriptor:ctx.framebufferDescriptor device:commandBuffer.device]; - - // Cache render pipeline state for later reuse - ctx.renderPipelineStateCache[ctx.framebufferDescriptor] = renderPipelineState; - } - - size_t vertexBufferLength = (size_t)draw_data->TotalVtxCount * sizeof(ImDrawVert); - size_t indexBufferLength = (size_t)draw_data->TotalIdxCount * sizeof(ImDrawIdx); - MetalBuffer* vertexBuffer = [ctx dequeueReusableBufferOfLength:vertexBufferLength device:commandBuffer.device]; - MetalBuffer* indexBuffer = [ctx dequeueReusableBufferOfLength:indexBufferLength device:commandBuffer.device]; - - ImGui_ImplMetal_SetupRenderState(draw_data, commandBuffer, commandEncoder, renderPipelineState, vertexBuffer, 0); - - // Will project scissor/clipping rectangles into framebuffer space - ImVec2 clip_off = draw_data->DisplayPos; // (0,0) unless using multi-viewports - ImVec2 clip_scale = draw_data->FramebufferScale; // (1,1) unless using retina display which are often (2,2) - - // Render command lists - size_t vertexBufferOffset = 0; - size_t indexBufferOffset = 0; - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - - memcpy((char*)vertexBuffer.buffer.contents + vertexBufferOffset, draw_list->VtxBuffer.Data, (size_t)draw_list->VtxBuffer.Size * sizeof(ImDrawVert)); - memcpy((char*)indexBuffer.buffer.contents + indexBufferOffset, draw_list->IdxBuffer.Data, (size_t)draw_list->IdxBuffer.Size * sizeof(ImDrawIdx)); - - for (int cmd_i = 0; cmd_i < draw_list->CmdBuffer.Size; cmd_i++) - { - const ImDrawCmd* pcmd = &draw_list->CmdBuffer[cmd_i]; - if (pcmd->UserCallback) - { - // User callback, registered via ImDrawList::AddCallback() - // (ImDrawCallback_ResetRenderState is a special callback value used by the user to request the renderer to reset render state.) - if (pcmd->UserCallback == ImDrawCallback_ResetRenderState) - ImGui_ImplMetal_SetupRenderState(draw_data, commandBuffer, commandEncoder, renderPipelineState, vertexBuffer, vertexBufferOffset); - else - pcmd->UserCallback(draw_list, pcmd); - } - else - { - // Project scissor/clipping rectangles into framebuffer space - ImVec2 clip_min((pcmd->ClipRect.x - clip_off.x) * clip_scale.x, (pcmd->ClipRect.y - clip_off.y) * clip_scale.y); - ImVec2 clip_max((pcmd->ClipRect.z - clip_off.x) * clip_scale.x, (pcmd->ClipRect.w - clip_off.y) * clip_scale.y); - - // Clamp to viewport as setScissorRect() won't accept values that are off bounds - if (clip_min.x < 0.0f) { clip_min.x = 0.0f; } - if (clip_min.y < 0.0f) { clip_min.y = 0.0f; } - if (clip_max.x > fb_width) { clip_max.x = (float)fb_width; } - if (clip_max.y > fb_height) { clip_max.y = (float)fb_height; } - if (clip_max.x <= clip_min.x || clip_max.y <= clip_min.y) - continue; - if (pcmd->ElemCount == 0) // drawIndexedPrimitives() validation doesn't accept this - continue; - - // Apply scissor/clipping rectangle - MTLScissorRect scissorRect = - { - .x = NSUInteger(clip_min.x), - .y = NSUInteger(clip_min.y), - .width = NSUInteger(clip_max.x - clip_min.x), - .height = NSUInteger(clip_max.y - clip_min.y) - }; - [commandEncoder setScissorRect:scissorRect]; - - // Bind texture, Draw - if (ImTextureID tex_id = pcmd->GetTexID()) - [commandEncoder setFragmentTexture:(__bridge id)(void*)(intptr_t)(tex_id) atIndex:0]; - - [commandEncoder setVertexBufferOffset:(vertexBufferOffset + pcmd->VtxOffset * sizeof(ImDrawVert)) atIndex:0]; - [commandEncoder drawIndexedPrimitives:MTLPrimitiveTypeTriangle - indexCount:pcmd->ElemCount - indexType:sizeof(ImDrawIdx) == 2 ? MTLIndexTypeUInt16 : MTLIndexTypeUInt32 - indexBuffer:indexBuffer.buffer - indexBufferOffset:indexBufferOffset + pcmd->IdxOffset * sizeof(ImDrawIdx)]; - } - } - - vertexBufferOffset += (size_t)draw_list->VtxBuffer.Size * sizeof(ImDrawVert); - indexBufferOffset += (size_t)draw_list->IdxBuffer.Size * sizeof(ImDrawIdx); - } - - MetalContext* sharedMetalContext = bd->SharedMetalContext; - [commandBuffer addCompletedHandler:^(id) - { - dispatch_async(dispatch_get_main_queue(), ^{ - @synchronized(sharedMetalContext.bufferCache) - { - [sharedMetalContext.bufferCache addObject:vertexBuffer]; - [sharedMetalContext.bufferCache addObject:indexBuffer]; - } - }); - }]; -} - -static void ImGui_ImplMetal_DestroyTexture(ImTextureData* tex) -{ - MetalTexture* backend_tex = (__bridge_transfer MetalTexture*)(tex->BackendUserData); - if (backend_tex == nullptr) - return; - IM_ASSERT(backend_tex.metalTexture == (__bridge id)(void*)(intptr_t)tex->TexID); - backend_tex.metalTexture = nil; - - // Clear identifiers and mark as destroyed (in order to allow e.g. calling InvalidateDeviceObjects while running) - tex->SetTexID(ImTextureID_Invalid); - tex->SetStatus(ImTextureStatus_Destroyed); - tex->BackendUserData = nullptr; -} - -void ImGui_ImplMetal_UpdateTexture(ImTextureData* tex) -{ - ImGui_ImplMetal_Data* bd = ImGui_ImplMetal_GetBackendData(); - if (tex->Status == ImTextureStatus_WantCreate) - { - // Create and upload new texture to graphics system - //IMGUI_DEBUG_LOG("UpdateTexture #%03d: WantCreate %dx%d\n", tex->UniqueID, tex->Width, tex->Height); - IM_ASSERT(tex->TexID == ImTextureID_Invalid && tex->BackendUserData == nullptr); - IM_ASSERT(tex->Format == ImTextureFormat_RGBA32); - - // We are retrieving and uploading the font atlas as a 4-channels RGBA texture here. - // In theory we could call GetTexDataAsAlpha8() and upload a 1-channel texture to save on memory access bandwidth. - // However, using a shader designed for 1-channel texture would make it less obvious to use the ImTextureID facility to render users own textures. - // You can make that change in your implementation. - MTLTextureDescriptor* textureDescriptor = [MTLTextureDescriptor texture2DDescriptorWithPixelFormat:MTLPixelFormatRGBA8Unorm - width:(NSUInteger)tex->Width - height:(NSUInteger)tex->Height - mipmapped:NO]; - textureDescriptor.usage = MTLTextureUsageShaderRead; - #if TARGET_OS_OSX || TARGET_OS_MACCATALYST - textureDescriptor.storageMode = MTLStorageModeManaged; - #else - textureDescriptor.storageMode = MTLStorageModeShared; - #endif - id texture = [bd->SharedMetalContext.device newTextureWithDescriptor:textureDescriptor]; - [texture replaceRegion:MTLRegionMake2D(0, 0, (NSUInteger)tex->Width, (NSUInteger)tex->Height) mipmapLevel:0 withBytes:tex->Pixels bytesPerRow:(NSUInteger)tex->Width * 4]; - MetalTexture* backend_tex = [[MetalTexture alloc] initWithTexture:texture]; - - // Store identifiers - tex->SetTexID((ImTextureID)(intptr_t)texture); - tex->SetStatus(ImTextureStatus_OK); - tex->BackendUserData = (__bridge_retained void*)(backend_tex); - } - else if (tex->Status == ImTextureStatus_WantUpdates) - { - // Update selected blocks. We only ever write to textures regions which have never been used before! - // This backend choose to use tex->Updates[] but you can use tex->UpdateRect to upload a single region. - MetalTexture* backend_tex = (__bridge MetalTexture*)(tex->BackendUserData); - for (ImTextureRect& r : tex->Updates) - { - [backend_tex.metalTexture replaceRegion:MTLRegionMake2D((NSUInteger)r.x, (NSUInteger)r.y, (NSUInteger)r.w, (NSUInteger)r.h) - mipmapLevel:0 - withBytes:tex->GetPixelsAt(r.x, r.y) - bytesPerRow:(NSUInteger)tex->Width * 4]; - } - tex->SetStatus(ImTextureStatus_OK); - } - else if (tex->Status == ImTextureStatus_WantDestroy && tex->UnusedFrames > 0) - { - ImGui_ImplMetal_DestroyTexture(tex); - } -} - -bool ImGui_ImplMetal_CreateDeviceObjects(id device) -{ - ImGui_ImplMetal_Data* bd = ImGui_ImplMetal_GetBackendData(); - MTLDepthStencilDescriptor* depthStencilDescriptor = [[MTLDepthStencilDescriptor alloc] init]; - depthStencilDescriptor.depthWriteEnabled = NO; - depthStencilDescriptor.depthCompareFunction = MTLCompareFunctionAlways; - bd->SharedMetalContext.depthStencilState = [device newDepthStencilStateWithDescriptor:depthStencilDescriptor]; -#ifdef IMGUI_IMPL_METAL_CPP - [depthStencilDescriptor release]; -#endif - - return true; -} - -void ImGui_ImplMetal_DestroyDeviceObjects() -{ - ImGui_ImplMetal_Data* bd = ImGui_ImplMetal_GetBackendData(); - - // Destroy all textures - for (ImTextureData* tex : ImGui::GetPlatformIO().Textures) - if (tex->RefCount == 1) - ImGui_ImplMetal_DestroyTexture(tex); - - [bd->SharedMetalContext.renderPipelineStateCache removeAllObjects]; -} - -#pragma mark - MetalBuffer implementation - -@implementation MetalBuffer -- (instancetype)initWithBuffer:(id)buffer -{ - if ((self = [super init])) - { - _buffer = buffer; - _lastReuseTime = GetMachAbsoluteTimeInSeconds(); - } - return self; -} -@end - -#pragma mark - FramebufferDescriptor implementation - -@implementation FramebufferDescriptor -- (instancetype)initWithRenderPassDescriptor:(MTLRenderPassDescriptor*)renderPassDescriptor -{ - if ((self = [super init])) - { - _sampleCount = renderPassDescriptor.colorAttachments[0].texture.sampleCount; - _colorPixelFormat = renderPassDescriptor.colorAttachments[0].texture.pixelFormat; - _depthPixelFormat = renderPassDescriptor.depthAttachment.texture.pixelFormat; - _stencilPixelFormat = renderPassDescriptor.stencilAttachment.texture.pixelFormat; - } - return self; -} - -- (nonnull id)copyWithZone:(nullable NSZone*)zone -{ - FramebufferDescriptor* copy = [[FramebufferDescriptor allocWithZone:zone] init]; - copy.sampleCount = self.sampleCount; - copy.colorPixelFormat = self.colorPixelFormat; - copy.depthPixelFormat = self.depthPixelFormat; - copy.stencilPixelFormat = self.stencilPixelFormat; - return copy; -} - -- (NSUInteger)hash -{ - NSUInteger sc = _sampleCount & 0x3; - NSUInteger cf = _colorPixelFormat & 0x3FF; - NSUInteger df = _depthPixelFormat & 0x3FF; - NSUInteger sf = _stencilPixelFormat & 0x3FF; - NSUInteger hash = (sf << 22) | (df << 12) | (cf << 2) | sc; - return hash; -} - -- (BOOL)isEqual:(id)object -{ - FramebufferDescriptor* other = object; - if (![other isKindOfClass:[FramebufferDescriptor class]]) - return NO; - return other.sampleCount == self.sampleCount && - other.colorPixelFormat == self.colorPixelFormat && - other.depthPixelFormat == self.depthPixelFormat && - other.stencilPixelFormat == self.stencilPixelFormat; -} - -@end - -#pragma mark - MetalTexture implementation - -@implementation MetalTexture -- (instancetype)initWithTexture:(id)metalTexture -{ - if ((self = [super init])) - self.metalTexture = metalTexture; - return self; -} - -@end - -#pragma mark - MetalContext implementation - -@implementation MetalContext -- (instancetype)init -{ - if ((self = [super init])) - { - self.renderPipelineStateCache = [NSMutableDictionary dictionary]; - self.bufferCache = [NSMutableArray array]; - _lastBufferCachePurge = GetMachAbsoluteTimeInSeconds(); - } - return self; -} - -- (MetalBuffer*)dequeueReusableBufferOfLength:(NSUInteger)length device:(id)device -{ - uint64_t now = GetMachAbsoluteTimeInSeconds(); - - @synchronized(self.bufferCache) - { - // Purge old buffers that haven't been useful for a while - if (now - self.lastBufferCachePurge > 1.0) - { - NSMutableArray* survivors = [NSMutableArray array]; - for (MetalBuffer* candidate in self.bufferCache) - if (candidate.lastReuseTime > self.lastBufferCachePurge) - [survivors addObject:candidate]; - self.bufferCache = [survivors mutableCopy]; - self.lastBufferCachePurge = now; - } - - // See if we have a buffer we can reuse - MetalBuffer* bestCandidate = nil; - for (MetalBuffer* candidate in self.bufferCache) - if (candidate.buffer.length >= length && (bestCandidate == nil || bestCandidate.lastReuseTime > candidate.lastReuseTime)) - bestCandidate = candidate; - - if (bestCandidate != nil) - { - [self.bufferCache removeObject:bestCandidate]; - bestCandidate.lastReuseTime = now; - return bestCandidate; - } - } - - // No luck; make a new buffer - id backing = [device newBufferWithLength:length options:MTLResourceStorageModeShared]; - return [[MetalBuffer alloc] initWithBuffer:backing]; -} - -// Bilinear sampling is required by default. Set 'io.Fonts->Flags |= ImFontAtlasFlags_NoBakedLines' or 'style.AntiAliasedLinesUseTex = false' to allow point/nearest sampling. -- (id)renderPipelineStateForFramebufferDescriptor:(FramebufferDescriptor*)descriptor device:(id)device -{ - NSError* error = nil; - - NSString* shaderSource = @"" - "#include \n" - "using namespace metal;\n" - "\n" - "struct Uniforms {\n" - " float4x4 projectionMatrix;\n" - "};\n" - "\n" - "struct VertexIn {\n" - " float2 position [[attribute(0)]];\n" - " float2 texCoords [[attribute(1)]];\n" - " uchar4 color [[attribute(2)]];\n" - "};\n" - "\n" - "struct VertexOut {\n" - " float4 position [[position]];\n" - " float2 texCoords;\n" - " float4 color;\n" - "};\n" - "\n" - "vertex VertexOut vertex_main(VertexIn in [[stage_in]],\n" - " constant Uniforms &uniforms [[buffer(1)]]) {\n" - " VertexOut out;\n" - " out.position = uniforms.projectionMatrix * float4(in.position, 0, 1);\n" - " out.texCoords = in.texCoords;\n" - " out.color = float4(in.color) / float4(255.0);\n" - " return out;\n" - "}\n" - "\n" - "fragment half4 fragment_main(VertexOut in [[stage_in]],\n" - " texture2d texture [[texture(0)]]) {\n" - " constexpr sampler linearSampler(coord::normalized, min_filter::linear, mag_filter::linear, mip_filter::linear);\n" - " half4 texColor = texture.sample(linearSampler, in.texCoords);\n" - " return half4(in.color) * texColor;\n" - "}\n"; - - id library = [device newLibraryWithSource:shaderSource options:nil error:&error]; - if (library == nil) - { - NSLog(@"Error: failed to create Metal library: %@", error); - return nil; - } - - id vertexFunction = [library newFunctionWithName:@"vertex_main"]; - id fragmentFunction = [library newFunctionWithName:@"fragment_main"]; - - if (vertexFunction == nil || fragmentFunction == nil) - { - NSLog(@"Error: failed to find Metal shader functions in library: %@", error); - return nil; - } - - MTLVertexDescriptor* vertexDescriptor = [MTLVertexDescriptor vertexDescriptor]; - vertexDescriptor.attributes[0].offset = offsetof(ImDrawVert, pos); - vertexDescriptor.attributes[0].format = MTLVertexFormatFloat2; // position - vertexDescriptor.attributes[0].bufferIndex = 0; - vertexDescriptor.attributes[1].offset = offsetof(ImDrawVert, uv); - vertexDescriptor.attributes[1].format = MTLVertexFormatFloat2; // texCoords - vertexDescriptor.attributes[1].bufferIndex = 0; - vertexDescriptor.attributes[2].offset = offsetof(ImDrawVert, col); - vertexDescriptor.attributes[2].format = MTLVertexFormatUChar4; // color - vertexDescriptor.attributes[2].bufferIndex = 0; - vertexDescriptor.layouts[0].stepRate = 1; - vertexDescriptor.layouts[0].stepFunction = MTLVertexStepFunctionPerVertex; - vertexDescriptor.layouts[0].stride = sizeof(ImDrawVert); - - MTLRenderPipelineDescriptor* pipelineDescriptor = [[MTLRenderPipelineDescriptor alloc] init]; - pipelineDescriptor.vertexFunction = vertexFunction; - pipelineDescriptor.fragmentFunction = fragmentFunction; - pipelineDescriptor.vertexDescriptor = vertexDescriptor; - pipelineDescriptor.rasterSampleCount = self.framebufferDescriptor.sampleCount; - pipelineDescriptor.colorAttachments[0].pixelFormat = self.framebufferDescriptor.colorPixelFormat; - pipelineDescriptor.colorAttachments[0].blendingEnabled = YES; - pipelineDescriptor.colorAttachments[0].rgbBlendOperation = MTLBlendOperationAdd; - pipelineDescriptor.colorAttachments[0].sourceRGBBlendFactor = MTLBlendFactorSourceAlpha; - pipelineDescriptor.colorAttachments[0].destinationRGBBlendFactor = MTLBlendFactorOneMinusSourceAlpha; - pipelineDescriptor.colorAttachments[0].alphaBlendOperation = MTLBlendOperationAdd; - pipelineDescriptor.colorAttachments[0].sourceAlphaBlendFactor = MTLBlendFactorOne; - pipelineDescriptor.colorAttachments[0].destinationAlphaBlendFactor = MTLBlendFactorOneMinusSourceAlpha; - pipelineDescriptor.depthAttachmentPixelFormat = self.framebufferDescriptor.depthPixelFormat; - pipelineDescriptor.stencilAttachmentPixelFormat = self.framebufferDescriptor.stencilPixelFormat; - - id renderPipelineState = [device newRenderPipelineStateWithDescriptor:pipelineDescriptor error:&error]; - if (error != nil) - NSLog(@"Error: failed to create Metal pipeline state: %@", error); - - return renderPipelineState; -} - -@end - -//----------------------------------------------------------------------------- - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_opengl3.cpp b/libs/imgui-1.92.1/backends/imgui_impl_opengl3.cpp deleted file mode 100644 index 40b3be6..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_opengl3.cpp +++ /dev/null @@ -1,1038 +0,0 @@ -// dear imgui: Renderer Backend for modern OpenGL with shaders / programmatic pipeline -// - Desktop GL: 2.x 3.x 4.x -// - Embedded GL: ES 2.0 (WebGL 1.0), ES 3.0 (WebGL 2.0) -// This needs to be used along with a Platform Backend (e.g. GLFW, SDL, Win32, custom..) - -// Implemented features: -// [X] Renderer: User texture binding. Use 'GLuint' OpenGL texture as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! -// [x] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset) [Desktop OpenGL only!] -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). - -// About WebGL/ES: -// - You need to '#define IMGUI_IMPL_OPENGL_ES2' or '#define IMGUI_IMPL_OPENGL_ES3' to use WebGL or OpenGL ES. -// - This is done automatically on iOS, Android and Emscripten targets. -// - For other targets, the define needs to be visible from the imgui_impl_opengl3.cpp compilation unit. If unsure, define globally or in imconfig.h. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// CHANGELOG -// (minor and older changes stripped away, please see git history for details) -// 2025-06-11: OpenGL: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas. Removed ImGui_ImplOpenGL3_CreateFontsTexture() and ImGui_ImplOpenGL3_DestroyFontsTexture(). -// 2025-06-04: OpenGL: Made GLES 3.20 contexts not access GL_CONTEXT_PROFILE_MASK nor GL_PRIMITIVE_RESTART. (#8664) -// 2025-02-18: OpenGL: Lazily reinitialize embedded GL loader for when calling backend from e.g. other DLL boundaries. (#8406) -// 2024-10-07: OpenGL: Changed default texture sampler to Clamp instead of Repeat/Wrap. -// 2024-06-28: OpenGL: ImGui_ImplOpenGL3_NewFrame() recreates font texture if it has been destroyed by ImGui_ImplOpenGL3_DestroyFontsTexture(). (#7748) -// 2024-05-07: OpenGL: Update loader for Linux to support EGL/GLVND. (#7562) -// 2024-04-16: OpenGL: Detect ES3 contexts on desktop based on version string, to e.g. avoid calling glPolygonMode() on them. (#7447) -// 2024-01-09: OpenGL: Update GL3W based imgui_impl_opengl3_loader.h to load "libGL.so" and variants, fixing regression on distros missing a symlink. -// 2023-11-08: OpenGL: Update GL3W based imgui_impl_opengl3_loader.h to load "libGL.so" instead of "libGL.so.1", accommodating for NetBSD systems having only "libGL.so.3" available. (#6983) -// 2023-10-05: OpenGL: Rename symbols in our internal loader so that LTO compilation with another copy of gl3w is possible. (#6875, #6668, #4445) -// 2023-06-20: OpenGL: Fixed erroneous use glGetIntegerv(GL_CONTEXT_PROFILE_MASK) on contexts lower than 3.2. (#6539, #6333) -// 2023-05-09: OpenGL: Support for glBindSampler() backup/restore on ES3. (#6375) -// 2023-04-18: OpenGL: Restore front and back polygon mode separately when supported by context. (#6333) -// 2023-03-23: OpenGL: Properly restoring "no shader program bound" if it was the case prior to running the rendering function. (#6267, #6220, #6224) -// 2023-03-15: OpenGL: Fixed GL loader crash when GL_VERSION returns NULL. (#6154, #4445, #3530) -// 2023-03-06: OpenGL: Fixed restoration of a potentially deleted OpenGL program, by calling glIsProgram(). (#6220, #6224) -// 2022-11-09: OpenGL: Reverted use of glBufferSubData(), too many corruptions issues + old issues seemingly can't be reproed with Intel drivers nowadays (revert 2021-12-15 and 2022-05-23 changes). -// 2022-10-11: Using 'nullptr' instead of 'NULL' as per our switch to C++11. -// 2022-09-27: OpenGL: Added ability to '#define IMGUI_IMPL_OPENGL_DEBUG'. -// 2022-05-23: OpenGL: Reworking 2021-12-15 "Using buffer orphaning" so it only happens on Intel GPU, seems to cause problems otherwise. (#4468, #4825, #4832, #5127). -// 2022-05-13: OpenGL: Fixed state corruption on OpenGL ES 2.0 due to not preserving GL_ELEMENT_ARRAY_BUFFER_BINDING and vertex attribute states. -// 2021-12-15: OpenGL: Using buffer orphaning + glBufferSubData(), seems to fix leaks with multi-viewports with some Intel HD drivers. -// 2021-08-23: OpenGL: Fixed ES 3.0 shader ("#version 300 es") use normal precision floats to avoid wobbly rendering at HD resolutions. -// 2021-08-19: OpenGL: Embed and use our own minimal GL loader (imgui_impl_opengl3_loader.h), removing requirement and support for third-party loader. -// 2021-06-29: Reorganized backend to pull data from a single structure to facilitate usage with multiple-contexts (all g_XXXX access changed to bd->XXXX). -// 2021-06-25: OpenGL: Use OES_vertex_array extension on Emscripten + backup/restore current state. -// 2021-06-21: OpenGL: Destroy individual vertex/fragment shader objects right after they are linked into the main shader. -// 2021-05-24: OpenGL: Access GL_CLIP_ORIGIN when "GL_ARB_clip_control" extension is detected, inside of just OpenGL 4.5 version. -// 2021-05-19: OpenGL: Replaced direct access to ImDrawCmd::TextureId with a call to ImDrawCmd::GetTexID(). (will become a requirement) -// 2021-04-06: OpenGL: Don't try to read GL_CLIP_ORIGIN unless we're OpenGL 4.5 or greater. -// 2021-02-18: OpenGL: Change blending equation to preserve alpha in output buffer. -// 2021-01-03: OpenGL: Backup, setup and restore GL_STENCIL_TEST state. -// 2020-10-23: OpenGL: Backup, setup and restore GL_PRIMITIVE_RESTART state. -// 2020-10-15: OpenGL: Use glGetString(GL_VERSION) instead of glGetIntegerv(GL_MAJOR_VERSION, ...) when the later returns zero (e.g. Desktop GL 2.x) -// 2020-09-17: OpenGL: Fix to avoid compiling/calling glBindSampler() on ES or pre-3.3 context which have the defines set by a loader. -// 2020-07-10: OpenGL: Added support for glad2 OpenGL loader. -// 2020-05-08: OpenGL: Made default GLSL version 150 (instead of 130) on OSX. -// 2020-04-21: OpenGL: Fixed handling of glClipControl(GL_UPPER_LEFT) by inverting projection matrix. -// 2020-04-12: OpenGL: Fixed context version check mistakenly testing for 4.0+ instead of 3.2+ to enable ImGuiBackendFlags_RendererHasVtxOffset. -// 2020-03-24: OpenGL: Added support for glbinding 2.x OpenGL loader. -// 2020-01-07: OpenGL: Added support for glbinding 3.x OpenGL loader. -// 2019-10-25: OpenGL: Using a combination of GL define and runtime GL version to decide whether to use glDrawElementsBaseVertex(). Fix building with pre-3.2 GL loaders. -// 2019-09-22: OpenGL: Detect default GL loader using __has_include compiler facility. -// 2019-09-16: OpenGL: Tweak initialization code to allow application calling ImGui_ImplOpenGL3_CreateFontsTexture() before the first NewFrame() call. -// 2019-05-29: OpenGL: Desktop GL only: Added support for large mesh (64K+ vertices), enable ImGuiBackendFlags_RendererHasVtxOffset flag. -// 2019-04-30: OpenGL: Added support for special ImDrawCallback_ResetRenderState callback to reset render state. -// 2019-03-29: OpenGL: Not calling glBindBuffer more than necessary in the render loop. -// 2019-03-15: OpenGL: Added a GL call + comments in ImGui_ImplOpenGL3_Init() to detect uninitialized GL function loaders early. -// 2019-03-03: OpenGL: Fix support for ES 2.0 (WebGL 1.0). -// 2019-02-20: OpenGL: Fix for OSX not supporting OpenGL 4.5, we don't try to read GL_CLIP_ORIGIN even if defined by the headers/loader. -// 2019-02-11: OpenGL: Projecting clipping rectangles correctly using draw_data->FramebufferScale to allow multi-viewports for retina display. -// 2019-02-01: OpenGL: Using GLSL 410 shaders for any version over 410 (e.g. 430, 450). -// 2018-11-30: Misc: Setting up io.BackendRendererName so it can be displayed in the About Window. -// 2018-11-13: OpenGL: Support for GL 4.5's glClipControl(GL_UPPER_LEFT) / GL_CLIP_ORIGIN. -// 2018-08-29: OpenGL: Added support for more OpenGL loaders: glew and glad, with comments indicative that any loader can be used. -// 2018-08-09: OpenGL: Default to OpenGL ES 3 on iOS and Android. GLSL version default to "#version 300 ES". -// 2018-07-30: OpenGL: Support for GLSL 300 ES and 410 core. Fixes for Emscripten compilation. -// 2018-07-10: OpenGL: Support for more GLSL versions (based on the GLSL version string). Added error output when shaders fail to compile/link. -// 2018-06-08: Misc: Extracted imgui_impl_opengl3.cpp/.h away from the old combined GLFW/SDL+OpenGL3 examples. -// 2018-06-08: OpenGL: Use draw_data->DisplayPos and draw_data->DisplaySize to setup projection matrix and clipping rectangle. -// 2018-05-25: OpenGL: Removed unnecessary backup/restore of GL_ELEMENT_ARRAY_BUFFER_BINDING since this is part of the VAO state. -// 2018-05-14: OpenGL: Making the call to glBindSampler() optional so 3.2 context won't fail if the function is a nullptr pointer. -// 2018-03-06: OpenGL: Added const char* glsl_version parameter to ImGui_ImplOpenGL3_Init() so user can override the GLSL version e.g. "#version 150". -// 2018-02-23: OpenGL: Create the VAO in the render function so the setup can more easily be used with multiple shared GL context. -// 2018-02-16: Misc: Obsoleted the io.RenderDrawListsFn callback and exposed ImGui_ImplSdlGL3_RenderDrawData() in the .h file so you can call it yourself. -// 2018-01-07: OpenGL: Changed GLSL shader version from 330 to 150. -// 2017-09-01: OpenGL: Save and restore current bound sampler. Save and restore current polygon mode. -// 2017-05-01: OpenGL: Fixed save and restore of current blend func state. -// 2017-05-01: OpenGL: Fixed save and restore of current GL_ACTIVE_TEXTURE. -// 2016-09-05: OpenGL: Fixed save and restore of current scissor rectangle. -// 2016-07-29: OpenGL: Explicitly setting GL_UNPACK_ROW_LENGTH to reduce issues because SDL changes it. (#752) - -//---------------------------------------- -// OpenGL GLSL GLSL -// version version string -//---------------------------------------- -// 2.0 110 "#version 110" -// 2.1 120 "#version 120" -// 3.0 130 "#version 130" -// 3.1 140 "#version 140" -// 3.2 150 "#version 150" -// 3.3 330 "#version 330 core" -// 4.0 400 "#version 400 core" -// 4.1 410 "#version 410 core" -// 4.2 420 "#version 410 core" -// 4.3 430 "#version 430 core" -// ES 2.0 100 "#version 100" = WebGL 1.0 -// ES 3.0 300 "#version 300 es" = WebGL 2.0 -//---------------------------------------- - -#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include "imgui.h" -#ifndef IMGUI_DISABLE -#include "imgui_impl_opengl3.h" -#include -#include // intptr_t -#if defined(__APPLE__) -#include -#endif - -// Clang/GCC warnings with -Weverything -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wunknown-warning-option" // warning: ignore unknown flags -#pragma clang diagnostic ignored "-Wold-style-cast" // warning: use of old-style cast -#pragma clang diagnostic ignored "-Wsign-conversion" // warning: implicit conversion changes signedness -#pragma clang diagnostic ignored "-Wunused-macros" // warning: macro is not used -#pragma clang diagnostic ignored "-Wnonportable-system-include-path" -#pragma clang diagnostic ignored "-Wcast-function-type" // warning: cast between incompatible function types (for loader) -#endif -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wpragmas" // warning: unknown option after '#pragma GCC diagnostic' kind -#pragma GCC diagnostic ignored "-Wunknown-warning-option" // warning: unknown warning group 'xxx' -#pragma GCC diagnostic ignored "-Wcast-function-type" // warning: cast between incompatible function types (for loader) -#pragma GCC diagnostic ignored "-Wstrict-overflow" // warning: assuming signed overflow does not occur when simplifying division / ..when changing X +- C1 cmp C2 to X cmp C2 -+ C1 -#endif - -// GL includes -#if defined(IMGUI_IMPL_OPENGL_ES2) -#if (defined(__APPLE__) && (TARGET_OS_IOS || TARGET_OS_TV)) -#include // Use GL ES 2 -#else -#include // Use GL ES 2 -#endif -#if defined(__EMSCRIPTEN__) -#ifndef GL_GLEXT_PROTOTYPES -#define GL_GLEXT_PROTOTYPES -#endif -#include -#endif -#elif defined(IMGUI_IMPL_OPENGL_ES3) -#if (defined(__APPLE__) && (TARGET_OS_IOS || TARGET_OS_TV)) -#include // Use GL ES 3 -#else -#include // Use GL ES 3 -#endif -#elif !defined(IMGUI_IMPL_OPENGL_LOADER_CUSTOM) -// Modern desktop OpenGL doesn't have a standard portable header file to load OpenGL function pointers. -// Helper libraries are often used for this purpose! Here we are using our own minimal custom loader based on gl3w. -// In the rest of your app/engine, you can use another loader of your choice (gl3w, glew, glad, glbinding, glext, glLoadGen, etc.). -// If you happen to be developing a new feature for this backend (imgui_impl_opengl3.cpp): -// - You may need to regenerate imgui_impl_opengl3_loader.h to add new symbols. See https://github.com/dearimgui/gl3w_stripped -// Typically you would run: python3 ./gl3w_gen.py --output ../imgui/backends/imgui_impl_opengl3_loader.h --ref ../imgui/backends/imgui_impl_opengl3.cpp ./extra_symbols.txt -// - You can temporarily use an unstripped version. See https://github.com/dearimgui/gl3w_stripped/releases -// Changes to this backend using new APIs should be accompanied by a regenerated stripped loader version. -#define IMGL3W_IMPL -#define IMGUI_IMPL_OPENGL_LOADER_IMGL3W -#include "imgui_impl_opengl3_loader.h" -#endif - -// Vertex arrays are not supported on ES2/WebGL1 unless Emscripten which uses an extension -#ifndef IMGUI_IMPL_OPENGL_ES2 -#define IMGUI_IMPL_OPENGL_USE_VERTEX_ARRAY -#elif defined(__EMSCRIPTEN__) -#define IMGUI_IMPL_OPENGL_USE_VERTEX_ARRAY -#define glBindVertexArray glBindVertexArrayOES -#define glGenVertexArrays glGenVertexArraysOES -#define glDeleteVertexArrays glDeleteVertexArraysOES -#define GL_VERTEX_ARRAY_BINDING GL_VERTEX_ARRAY_BINDING_OES -#endif - -// Desktop GL 2.0+ has extension and glPolygonMode() which GL ES and WebGL don't have.. -// A desktop ES context can technically compile fine with our loader, so we also perform a runtime checks -#if !defined(IMGUI_IMPL_OPENGL_ES2) && !defined(IMGUI_IMPL_OPENGL_ES3) -#define IMGUI_IMPL_OPENGL_HAS_EXTENSIONS // has glGetIntegerv(GL_NUM_EXTENSIONS) -#define IMGUI_IMPL_OPENGL_MAY_HAVE_POLYGON_MODE // may have glPolygonMode() -#endif - -// Desktop GL 2.1+ and GL ES 3.0+ have glBindBuffer() with GL_PIXEL_UNPACK_BUFFER target. -#if !defined(IMGUI_IMPL_OPENGL_ES2) -#define IMGUI_IMPL_OPENGL_MAY_HAVE_BIND_BUFFER_PIXEL_UNPACK -#endif - -// Desktop GL 3.1+ has GL_PRIMITIVE_RESTART state -#if !defined(IMGUI_IMPL_OPENGL_ES2) && !defined(IMGUI_IMPL_OPENGL_ES3) && defined(GL_VERSION_3_1) -#define IMGUI_IMPL_OPENGL_MAY_HAVE_PRIMITIVE_RESTART -#endif - -// Desktop GL 3.2+ has glDrawElementsBaseVertex() which GL ES and WebGL don't have. -#if !defined(IMGUI_IMPL_OPENGL_ES2) && !defined(IMGUI_IMPL_OPENGL_ES3) && defined(GL_VERSION_3_2) -#define IMGUI_IMPL_OPENGL_MAY_HAVE_VTX_OFFSET -#endif - -// Desktop GL 3.3+ and GL ES 3.0+ have glBindSampler() -#if !defined(IMGUI_IMPL_OPENGL_ES2) && (defined(IMGUI_IMPL_OPENGL_ES3) || defined(GL_VERSION_3_3)) -#define IMGUI_IMPL_OPENGL_MAY_HAVE_BIND_SAMPLER -#endif - -// [Debugging] -//#define IMGUI_IMPL_OPENGL_DEBUG -#ifdef IMGUI_IMPL_OPENGL_DEBUG -#include -#define GL_CALL(_CALL) do { _CALL; GLenum gl_err = glGetError(); if (gl_err != 0) fprintf(stderr, "GL error 0x%x returned from '%s'.\n", gl_err, #_CALL); } while (0) // Call with error check -#else -#define GL_CALL(_CALL) _CALL // Call without error check -#endif - -// OpenGL Data -struct ImGui_ImplOpenGL3_Data -{ - GLuint GlVersion; // Extracted at runtime using GL_MAJOR_VERSION, GL_MINOR_VERSION queries (e.g. 320 for GL 3.2) - char GlslVersionString[32]; // Specified by user or detected based on compile time GL settings. - bool GlProfileIsES2; - bool GlProfileIsES3; - bool GlProfileIsCompat; - GLint GlProfileMask; - GLint MaxTextureSize; - GLuint ShaderHandle; - GLint AttribLocationTex; // Uniforms location - GLint AttribLocationProjMtx; - GLuint AttribLocationVtxPos; // Vertex attributes location - GLuint AttribLocationVtxUV; - GLuint AttribLocationVtxColor; - unsigned int VboHandle, ElementsHandle; - GLsizeiptr VertexBufferSize; - GLsizeiptr IndexBufferSize; - bool HasPolygonMode; - bool HasClipOrigin; - bool UseBufferSubData; - ImVector TempBuffer; - - ImGui_ImplOpenGL3_Data() { memset((void*)this, 0, sizeof(*this)); } -}; - -// Backend data stored in io.BackendRendererUserData to allow support for multiple Dear ImGui contexts -// It is STRONGLY preferred that you use docking branch with multi-viewports (== single Dear ImGui context + multiple windows) instead of multiple Dear ImGui contexts. -static ImGui_ImplOpenGL3_Data* ImGui_ImplOpenGL3_GetBackendData() -{ - return ImGui::GetCurrentContext() ? (ImGui_ImplOpenGL3_Data*)ImGui::GetIO().BackendRendererUserData : nullptr; -} - -// OpenGL vertex attribute state (for ES 1.0 and ES 2.0 only) -#ifndef IMGUI_IMPL_OPENGL_USE_VERTEX_ARRAY -struct ImGui_ImplOpenGL3_VtxAttribState -{ - GLint Enabled, Size, Type, Normalized, Stride; - GLvoid* Ptr; - - void GetState(GLint index) - { - glGetVertexAttribiv(index, GL_VERTEX_ATTRIB_ARRAY_ENABLED, &Enabled); - glGetVertexAttribiv(index, GL_VERTEX_ATTRIB_ARRAY_SIZE, &Size); - glGetVertexAttribiv(index, GL_VERTEX_ATTRIB_ARRAY_TYPE, &Type); - glGetVertexAttribiv(index, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, &Normalized); - glGetVertexAttribiv(index, GL_VERTEX_ATTRIB_ARRAY_STRIDE, &Stride); - glGetVertexAttribPointerv(index, GL_VERTEX_ATTRIB_ARRAY_POINTER, &Ptr); - } - void SetState(GLint index) - { - glVertexAttribPointer(index, Size, Type, (GLboolean)Normalized, Stride, Ptr); - if (Enabled) glEnableVertexAttribArray(index); else glDisableVertexAttribArray(index); - } -}; -#endif - -// Not static to allow third-party code to use that if they want to (but undocumented) -bool ImGui_ImplOpenGL3_InitLoader(); -bool ImGui_ImplOpenGL3_InitLoader() -{ - // Initialize our loader -#ifdef IMGUI_IMPL_OPENGL_LOADER_IMGL3W - if (glGetIntegerv == nullptr && imgl3wInit() != 0) - { - fprintf(stderr, "Failed to initialize OpenGL loader!\n"); - return false; - } -#endif - return true; -} - -// Functions -bool ImGui_ImplOpenGL3_Init(const char* glsl_version) -{ - ImGuiIO& io = ImGui::GetIO(); - IMGUI_CHECKVERSION(); - IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); - - // Initialize loader - if (!ImGui_ImplOpenGL3_InitLoader()) - return false; - - // Setup backend capabilities flags - ImGui_ImplOpenGL3_Data* bd = IM_NEW(ImGui_ImplOpenGL3_Data)(); - io.BackendRendererUserData = (void*)bd; - io.BackendRendererName = "imgui_impl_opengl3"; - - // Query for GL version (e.g. 320 for GL 3.2) - const char* gl_version_str = (const char*)glGetString(GL_VERSION); -#if defined(IMGUI_IMPL_OPENGL_ES2) - // GLES 2 - bd->GlVersion = 200; - bd->GlProfileIsES2 = true; - IM_UNUSED(gl_version_str); -#else - // Desktop or GLES 3 - GLint major = 0; - GLint minor = 0; - glGetIntegerv(GL_MAJOR_VERSION, &major); - glGetIntegerv(GL_MINOR_VERSION, &minor); - if (major == 0 && minor == 0) - sscanf(gl_version_str, "%d.%d", &major, &minor); // Query GL_VERSION in desktop GL 2.x, the string will start with "." - bd->GlVersion = (GLuint)(major * 100 + minor * 10); - glGetIntegerv(GL_MAX_TEXTURE_SIZE, &bd->MaxTextureSize); - -#if defined(IMGUI_IMPL_OPENGL_ES3) - bd->GlProfileIsES3 = true; -#else - if (strncmp(gl_version_str, "OpenGL ES 3", 11) == 0) - bd->GlProfileIsES3 = true; -#endif - -#if defined(GL_CONTEXT_PROFILE_MASK) - if (!bd->GlProfileIsES3 && bd->GlVersion >= 320) - glGetIntegerv(GL_CONTEXT_PROFILE_MASK, &bd->GlProfileMask); - bd->GlProfileIsCompat = (bd->GlProfileMask & GL_CONTEXT_COMPATIBILITY_PROFILE_BIT) != 0; -#endif - - bd->UseBufferSubData = false; - /* - // Query vendor to enable glBufferSubData kludge -#ifdef _WIN32 - if (const char* vendor = (const char*)glGetString(GL_VENDOR)) - if (strncmp(vendor, "Intel", 5) == 0) - bd->UseBufferSubData = true; -#endif - */ -#endif - -#ifdef IMGUI_IMPL_OPENGL_DEBUG - printf("GlVersion = %d, \"%s\"\nGlProfileIsCompat = %d\nGlProfileMask = 0x%X\nGlProfileIsES2/IsEs3 = %d/%d\nGL_VENDOR = '%s'\nGL_RENDERER = '%s'\n", bd->GlVersion, gl_version_str, bd->GlProfileIsCompat, bd->GlProfileMask, bd->GlProfileIsES2, bd->GlProfileIsES3, (const char*)glGetString(GL_VENDOR), (const char*)glGetString(GL_RENDERER)); // [DEBUG] -#endif - -#ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_VTX_OFFSET - if (bd->GlVersion >= 320) - io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset; // We can honor the ImDrawCmd::VtxOffset field, allowing for large meshes. -#endif - io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures; // We can honor ImGuiPlatformIO::Textures[] requests during render. - - ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); - platform_io.Renderer_TextureMaxWidth = platform_io.Renderer_TextureMaxHeight = (int)bd->MaxTextureSize; - - // Store GLSL version string so we can refer to it later in case we recreate shaders. - // Note: GLSL version is NOT the same as GL version. Leave this to nullptr if unsure. - if (glsl_version == nullptr) - { -#if defined(IMGUI_IMPL_OPENGL_ES2) - glsl_version = "#version 100"; -#elif defined(IMGUI_IMPL_OPENGL_ES3) - glsl_version = "#version 300 es"; -#elif defined(__APPLE__) - glsl_version = "#version 150"; -#else - glsl_version = "#version 130"; -#endif - } - IM_ASSERT((int)strlen(glsl_version) + 2 < IM_ARRAYSIZE(bd->GlslVersionString)); - strcpy(bd->GlslVersionString, glsl_version); - strcat(bd->GlslVersionString, "\n"); - - // Make an arbitrary GL call (we don't actually need the result) - // IF YOU GET A CRASH HERE: it probably means the OpenGL function loader didn't do its job. Let us know! - GLint current_texture; - glGetIntegerv(GL_TEXTURE_BINDING_2D, ¤t_texture); - - // Detect extensions we support -#ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_POLYGON_MODE - bd->HasPolygonMode = (!bd->GlProfileIsES2 && !bd->GlProfileIsES3); -#endif - bd->HasClipOrigin = (bd->GlVersion >= 450); -#ifdef IMGUI_IMPL_OPENGL_HAS_EXTENSIONS - GLint num_extensions = 0; - glGetIntegerv(GL_NUM_EXTENSIONS, &num_extensions); - for (GLint i = 0; i < num_extensions; i++) - { - const char* extension = (const char*)glGetStringi(GL_EXTENSIONS, i); - if (extension != nullptr && strcmp(extension, "GL_ARB_clip_control") == 0) - bd->HasClipOrigin = true; - } -#endif - - return true; -} - -void ImGui_ImplOpenGL3_Shutdown() -{ - ImGui_ImplOpenGL3_Data* bd = ImGui_ImplOpenGL3_GetBackendData(); - IM_ASSERT(bd != nullptr && "No renderer backend to shutdown, or already shutdown?"); - ImGuiIO& io = ImGui::GetIO(); - - ImGui_ImplOpenGL3_DestroyDeviceObjects(); - io.BackendRendererName = nullptr; - io.BackendRendererUserData = nullptr; - io.BackendFlags &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures); - IM_DELETE(bd); -} - -void ImGui_ImplOpenGL3_NewFrame() -{ - ImGui_ImplOpenGL3_Data* bd = ImGui_ImplOpenGL3_GetBackendData(); - IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplOpenGL3_Init()?"); - - ImGui_ImplOpenGL3_InitLoader(); // Lazily init loader if not already done for e.g. DLL boundaries. - - if (!bd->ShaderHandle) - if (!ImGui_ImplOpenGL3_CreateDeviceObjects()) - IM_ASSERT(0 && "ImGui_ImplOpenGL3_CreateDeviceObjects() failed!"); -} - -static void ImGui_ImplOpenGL3_SetupRenderState(ImDrawData* draw_data, int fb_width, int fb_height, GLuint vertex_array_object) -{ - ImGui_ImplOpenGL3_Data* bd = ImGui_ImplOpenGL3_GetBackendData(); - - // Setup render state: alpha-blending enabled, no face culling, no depth testing, scissor enabled, polygon fill - glEnable(GL_BLEND); - glBlendEquation(GL_FUNC_ADD); - glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA); - glDisable(GL_CULL_FACE); - glDisable(GL_DEPTH_TEST); - glDisable(GL_STENCIL_TEST); - glEnable(GL_SCISSOR_TEST); -#ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_PRIMITIVE_RESTART - if (!bd->GlProfileIsES3 && bd->GlVersion >= 310) - glDisable(GL_PRIMITIVE_RESTART); -#endif -#ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_POLYGON_MODE - if (bd->HasPolygonMode) - glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); -#endif - - // Support for GL 4.5 rarely used glClipControl(GL_UPPER_LEFT) -#if defined(GL_CLIP_ORIGIN) - bool clip_origin_lower_left = true; - if (bd->HasClipOrigin) - { - GLenum current_clip_origin = 0; glGetIntegerv(GL_CLIP_ORIGIN, (GLint*)¤t_clip_origin); - if (current_clip_origin == GL_UPPER_LEFT) - clip_origin_lower_left = false; - } -#endif - - // Setup viewport, orthographic projection matrix - // Our visible imgui space lies from draw_data->DisplayPos (top left) to draw_data->DisplayPos+data_data->DisplaySize (bottom right). DisplayPos is (0,0) for single viewport apps. - GL_CALL(glViewport(0, 0, (GLsizei)fb_width, (GLsizei)fb_height)); - float L = draw_data->DisplayPos.x; - float R = draw_data->DisplayPos.x + draw_data->DisplaySize.x; - float T = draw_data->DisplayPos.y; - float B = draw_data->DisplayPos.y + draw_data->DisplaySize.y; -#if defined(GL_CLIP_ORIGIN) - if (!clip_origin_lower_left) { float tmp = T; T = B; B = tmp; } // Swap top and bottom if origin is upper left -#endif - const float ortho_projection[4][4] = - { - { 2.0f/(R-L), 0.0f, 0.0f, 0.0f }, - { 0.0f, 2.0f/(T-B), 0.0f, 0.0f }, - { 0.0f, 0.0f, -1.0f, 0.0f }, - { (R+L)/(L-R), (T+B)/(B-T), 0.0f, 1.0f }, - }; - glUseProgram(bd->ShaderHandle); - glUniform1i(bd->AttribLocationTex, 0); - glUniformMatrix4fv(bd->AttribLocationProjMtx, 1, GL_FALSE, &ortho_projection[0][0]); - -#ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_BIND_SAMPLER - if (bd->GlVersion >= 330 || bd->GlProfileIsES3) - glBindSampler(0, 0); // We use combined texture/sampler state. Applications using GL 3.3 and GL ES 3.0 may set that otherwise. -#endif - - (void)vertex_array_object; -#ifdef IMGUI_IMPL_OPENGL_USE_VERTEX_ARRAY - glBindVertexArray(vertex_array_object); -#endif - - // Bind vertex/index buffers and setup attributes for ImDrawVert - GL_CALL(glBindBuffer(GL_ARRAY_BUFFER, bd->VboHandle)); - GL_CALL(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, bd->ElementsHandle)); - GL_CALL(glEnableVertexAttribArray(bd->AttribLocationVtxPos)); - GL_CALL(glEnableVertexAttribArray(bd->AttribLocationVtxUV)); - GL_CALL(glEnableVertexAttribArray(bd->AttribLocationVtxColor)); - GL_CALL(glVertexAttribPointer(bd->AttribLocationVtxPos, 2, GL_FLOAT, GL_FALSE, sizeof(ImDrawVert), (GLvoid*)offsetof(ImDrawVert, pos))); - GL_CALL(glVertexAttribPointer(bd->AttribLocationVtxUV, 2, GL_FLOAT, GL_FALSE, sizeof(ImDrawVert), (GLvoid*)offsetof(ImDrawVert, uv))); - GL_CALL(glVertexAttribPointer(bd->AttribLocationVtxColor, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(ImDrawVert), (GLvoid*)offsetof(ImDrawVert, col))); -} - -// OpenGL3 Render function. -// Note that this implementation is little overcomplicated because we are saving/setting up/restoring every OpenGL state explicitly. -// This is in order to be able to run within an OpenGL engine that doesn't do so. -void ImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data) -{ - // Avoid rendering when minimized, scale coordinates for retina displays (screen coordinates != framebuffer coordinates) - int fb_width = (int)(draw_data->DisplaySize.x * draw_data->FramebufferScale.x); - int fb_height = (int)(draw_data->DisplaySize.y * draw_data->FramebufferScale.y); - if (fb_width <= 0 || fb_height <= 0) - return; - - ImGui_ImplOpenGL3_InitLoader(); // Lazily init loader if not already done for e.g. DLL boundaries. - - ImGui_ImplOpenGL3_Data* bd = ImGui_ImplOpenGL3_GetBackendData(); - - // Catch up with texture updates. Most of the times, the list will have 1 element with an OK status, aka nothing to do. - // (This almost always points to ImGui::GetPlatformIO().Textures[] but is part of ImDrawData to allow overriding or disabling texture updates). - if (draw_data->Textures != nullptr) - for (ImTextureData* tex : *draw_data->Textures) - if (tex->Status != ImTextureStatus_OK) - ImGui_ImplOpenGL3_UpdateTexture(tex); - - // Backup GL state - GLenum last_active_texture; glGetIntegerv(GL_ACTIVE_TEXTURE, (GLint*)&last_active_texture); - glActiveTexture(GL_TEXTURE0); - GLuint last_program; glGetIntegerv(GL_CURRENT_PROGRAM, (GLint*)&last_program); - GLuint last_texture; glGetIntegerv(GL_TEXTURE_BINDING_2D, (GLint*)&last_texture); -#ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_BIND_SAMPLER - GLuint last_sampler; if (bd->GlVersion >= 330 || bd->GlProfileIsES3) { glGetIntegerv(GL_SAMPLER_BINDING, (GLint*)&last_sampler); } else { last_sampler = 0; } -#endif - GLuint last_array_buffer; glGetIntegerv(GL_ARRAY_BUFFER_BINDING, (GLint*)&last_array_buffer); -#ifndef IMGUI_IMPL_OPENGL_USE_VERTEX_ARRAY - // This is part of VAO on OpenGL 3.0+ and OpenGL ES 3.0+. - GLint last_element_array_buffer; glGetIntegerv(GL_ELEMENT_ARRAY_BUFFER_BINDING, &last_element_array_buffer); - ImGui_ImplOpenGL3_VtxAttribState last_vtx_attrib_state_pos; last_vtx_attrib_state_pos.GetState(bd->AttribLocationVtxPos); - ImGui_ImplOpenGL3_VtxAttribState last_vtx_attrib_state_uv; last_vtx_attrib_state_uv.GetState(bd->AttribLocationVtxUV); - ImGui_ImplOpenGL3_VtxAttribState last_vtx_attrib_state_color; last_vtx_attrib_state_color.GetState(bd->AttribLocationVtxColor); -#endif -#ifdef IMGUI_IMPL_OPENGL_USE_VERTEX_ARRAY - GLuint last_vertex_array_object; glGetIntegerv(GL_VERTEX_ARRAY_BINDING, (GLint*)&last_vertex_array_object); -#endif -#ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_POLYGON_MODE - GLint last_polygon_mode[2]; if (bd->HasPolygonMode) { glGetIntegerv(GL_POLYGON_MODE, last_polygon_mode); } -#endif - GLint last_viewport[4]; glGetIntegerv(GL_VIEWPORT, last_viewport); - GLint last_scissor_box[4]; glGetIntegerv(GL_SCISSOR_BOX, last_scissor_box); - GLenum last_blend_src_rgb; glGetIntegerv(GL_BLEND_SRC_RGB, (GLint*)&last_blend_src_rgb); - GLenum last_blend_dst_rgb; glGetIntegerv(GL_BLEND_DST_RGB, (GLint*)&last_blend_dst_rgb); - GLenum last_blend_src_alpha; glGetIntegerv(GL_BLEND_SRC_ALPHA, (GLint*)&last_blend_src_alpha); - GLenum last_blend_dst_alpha; glGetIntegerv(GL_BLEND_DST_ALPHA, (GLint*)&last_blend_dst_alpha); - GLenum last_blend_equation_rgb; glGetIntegerv(GL_BLEND_EQUATION_RGB, (GLint*)&last_blend_equation_rgb); - GLenum last_blend_equation_alpha; glGetIntegerv(GL_BLEND_EQUATION_ALPHA, (GLint*)&last_blend_equation_alpha); - GLboolean last_enable_blend = glIsEnabled(GL_BLEND); - GLboolean last_enable_cull_face = glIsEnabled(GL_CULL_FACE); - GLboolean last_enable_depth_test = glIsEnabled(GL_DEPTH_TEST); - GLboolean last_enable_stencil_test = glIsEnabled(GL_STENCIL_TEST); - GLboolean last_enable_scissor_test = glIsEnabled(GL_SCISSOR_TEST); -#ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_PRIMITIVE_RESTART - GLboolean last_enable_primitive_restart = (!bd->GlProfileIsES3 && bd->GlVersion >= 310) ? glIsEnabled(GL_PRIMITIVE_RESTART) : GL_FALSE; -#endif - - // Setup desired GL state - // Recreate the VAO every time (this is to easily allow multiple GL contexts to be rendered to. VAO are not shared among GL contexts) - // The renderer would actually work without any VAO bound, but then our VertexAttrib calls would overwrite the default one currently bound. - GLuint vertex_array_object = 0; -#ifdef IMGUI_IMPL_OPENGL_USE_VERTEX_ARRAY - GL_CALL(glGenVertexArrays(1, &vertex_array_object)); -#endif - ImGui_ImplOpenGL3_SetupRenderState(draw_data, fb_width, fb_height, vertex_array_object); - - // Will project scissor/clipping rectangles into framebuffer space - ImVec2 clip_off = draw_data->DisplayPos; // (0,0) unless using multi-viewports - ImVec2 clip_scale = draw_data->FramebufferScale; // (1,1) unless using retina display which are often (2,2) - - // Render command lists - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - - // Upload vertex/index buffers - // - OpenGL drivers are in a very sorry state nowadays.... - // During 2021 we attempted to switch from glBufferData() to orphaning+glBufferSubData() following reports - // of leaks on Intel GPU when using multi-viewports on Windows. - // - After this we kept hearing of various display corruptions issues. We started disabling on non-Intel GPU, but issues still got reported on Intel. - // - We are now back to using exclusively glBufferData(). So bd->UseBufferSubData IS ALWAYS FALSE in this code. - // We are keeping the old code path for a while in case people finding new issues may want to test the bd->UseBufferSubData path. - // - See https://github.com/ocornut/imgui/issues/4468 and please report any corruption issues. - const GLsizeiptr vtx_buffer_size = (GLsizeiptr)draw_list->VtxBuffer.Size * (int)sizeof(ImDrawVert); - const GLsizeiptr idx_buffer_size = (GLsizeiptr)draw_list->IdxBuffer.Size * (int)sizeof(ImDrawIdx); - if (bd->UseBufferSubData) - { - if (bd->VertexBufferSize < vtx_buffer_size) - { - bd->VertexBufferSize = vtx_buffer_size; - GL_CALL(glBufferData(GL_ARRAY_BUFFER, bd->VertexBufferSize, nullptr, GL_STREAM_DRAW)); - } - if (bd->IndexBufferSize < idx_buffer_size) - { - bd->IndexBufferSize = idx_buffer_size; - GL_CALL(glBufferData(GL_ELEMENT_ARRAY_BUFFER, bd->IndexBufferSize, nullptr, GL_STREAM_DRAW)); - } - GL_CALL(glBufferSubData(GL_ARRAY_BUFFER, 0, vtx_buffer_size, (const GLvoid*)draw_list->VtxBuffer.Data)); - GL_CALL(glBufferSubData(GL_ELEMENT_ARRAY_BUFFER, 0, idx_buffer_size, (const GLvoid*)draw_list->IdxBuffer.Data)); - } - else - { - GL_CALL(glBufferData(GL_ARRAY_BUFFER, vtx_buffer_size, (const GLvoid*)draw_list->VtxBuffer.Data, GL_STREAM_DRAW)); - GL_CALL(glBufferData(GL_ELEMENT_ARRAY_BUFFER, idx_buffer_size, (const GLvoid*)draw_list->IdxBuffer.Data, GL_STREAM_DRAW)); - } - - for (int cmd_i = 0; cmd_i < draw_list->CmdBuffer.Size; cmd_i++) - { - const ImDrawCmd* pcmd = &draw_list->CmdBuffer[cmd_i]; - if (pcmd->UserCallback != nullptr) - { - // User callback, registered via ImDrawList::AddCallback() - // (ImDrawCallback_ResetRenderState is a special callback value used by the user to request the renderer to reset render state.) - if (pcmd->UserCallback == ImDrawCallback_ResetRenderState) - ImGui_ImplOpenGL3_SetupRenderState(draw_data, fb_width, fb_height, vertex_array_object); - else - pcmd->UserCallback(draw_list, pcmd); - } - else - { - // Project scissor/clipping rectangles into framebuffer space - ImVec2 clip_min((pcmd->ClipRect.x - clip_off.x) * clip_scale.x, (pcmd->ClipRect.y - clip_off.y) * clip_scale.y); - ImVec2 clip_max((pcmd->ClipRect.z - clip_off.x) * clip_scale.x, (pcmd->ClipRect.w - clip_off.y) * clip_scale.y); - if (clip_max.x <= clip_min.x || clip_max.y <= clip_min.y) - continue; - - // Apply scissor/clipping rectangle (Y is inverted in OpenGL) - GL_CALL(glScissor((int)clip_min.x, (int)((float)fb_height - clip_max.y), (int)(clip_max.x - clip_min.x), (int)(clip_max.y - clip_min.y))); - - // Bind texture, Draw - GL_CALL(glBindTexture(GL_TEXTURE_2D, (GLuint)(intptr_t)pcmd->GetTexID())); -#ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_VTX_OFFSET - if (bd->GlVersion >= 320) - GL_CALL(glDrawElementsBaseVertex(GL_TRIANGLES, (GLsizei)pcmd->ElemCount, sizeof(ImDrawIdx) == 2 ? GL_UNSIGNED_SHORT : GL_UNSIGNED_INT, (void*)(intptr_t)(pcmd->IdxOffset * sizeof(ImDrawIdx)), (GLint)pcmd->VtxOffset)); - else -#endif - GL_CALL(glDrawElements(GL_TRIANGLES, (GLsizei)pcmd->ElemCount, sizeof(ImDrawIdx) == 2 ? GL_UNSIGNED_SHORT : GL_UNSIGNED_INT, (void*)(intptr_t)(pcmd->IdxOffset * sizeof(ImDrawIdx)))); - } - } - } - - // Destroy the temporary VAO -#ifdef IMGUI_IMPL_OPENGL_USE_VERTEX_ARRAY - GL_CALL(glDeleteVertexArrays(1, &vertex_array_object)); -#endif - - // Restore modified GL state - // This "glIsProgram()" check is required because if the program is "pending deletion" at the time of binding backup, it will have been deleted by now and will cause an OpenGL error. See #6220. - if (last_program == 0 || glIsProgram(last_program)) glUseProgram(last_program); - glBindTexture(GL_TEXTURE_2D, last_texture); -#ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_BIND_SAMPLER - if (bd->GlVersion >= 330 || bd->GlProfileIsES3) - glBindSampler(0, last_sampler); -#endif - glActiveTexture(last_active_texture); -#ifdef IMGUI_IMPL_OPENGL_USE_VERTEX_ARRAY - glBindVertexArray(last_vertex_array_object); -#endif - glBindBuffer(GL_ARRAY_BUFFER, last_array_buffer); -#ifndef IMGUI_IMPL_OPENGL_USE_VERTEX_ARRAY - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, last_element_array_buffer); - last_vtx_attrib_state_pos.SetState(bd->AttribLocationVtxPos); - last_vtx_attrib_state_uv.SetState(bd->AttribLocationVtxUV); - last_vtx_attrib_state_color.SetState(bd->AttribLocationVtxColor); -#endif - glBlendEquationSeparate(last_blend_equation_rgb, last_blend_equation_alpha); - glBlendFuncSeparate(last_blend_src_rgb, last_blend_dst_rgb, last_blend_src_alpha, last_blend_dst_alpha); - if (last_enable_blend) glEnable(GL_BLEND); else glDisable(GL_BLEND); - if (last_enable_cull_face) glEnable(GL_CULL_FACE); else glDisable(GL_CULL_FACE); - if (last_enable_depth_test) glEnable(GL_DEPTH_TEST); else glDisable(GL_DEPTH_TEST); - if (last_enable_stencil_test) glEnable(GL_STENCIL_TEST); else glDisable(GL_STENCIL_TEST); - if (last_enable_scissor_test) glEnable(GL_SCISSOR_TEST); else glDisable(GL_SCISSOR_TEST); -#ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_PRIMITIVE_RESTART - if (!bd->GlProfileIsES3 && bd->GlVersion >= 310) { if (last_enable_primitive_restart) glEnable(GL_PRIMITIVE_RESTART); else glDisable(GL_PRIMITIVE_RESTART); } -#endif - -#ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_POLYGON_MODE - // Desktop OpenGL 3.0 and OpenGL 3.1 had separate polygon draw modes for front-facing and back-facing faces of polygons - if (bd->HasPolygonMode) { if (bd->GlVersion <= 310 || bd->GlProfileIsCompat) { glPolygonMode(GL_FRONT, (GLenum)last_polygon_mode[0]); glPolygonMode(GL_BACK, (GLenum)last_polygon_mode[1]); } else { glPolygonMode(GL_FRONT_AND_BACK, (GLenum)last_polygon_mode[0]); } } -#endif // IMGUI_IMPL_OPENGL_MAY_HAVE_POLYGON_MODE - - glViewport(last_viewport[0], last_viewport[1], (GLsizei)last_viewport[2], (GLsizei)last_viewport[3]); - glScissor(last_scissor_box[0], last_scissor_box[1], (GLsizei)last_scissor_box[2], (GLsizei)last_scissor_box[3]); - (void)bd; // Not all compilation paths use this -} - -static void ImGui_ImplOpenGL3_DestroyTexture(ImTextureData* tex) -{ - GLuint gl_tex_id = (GLuint)(intptr_t)tex->TexID; - glDeleteTextures(1, &gl_tex_id); - - // Clear identifiers and mark as destroyed (in order to allow e.g. calling InvalidateDeviceObjects while running) - tex->SetTexID(ImTextureID_Invalid); - tex->SetStatus(ImTextureStatus_Destroyed); -} - -void ImGui_ImplOpenGL3_UpdateTexture(ImTextureData* tex) -{ - if (tex->Status == ImTextureStatus_WantCreate) - { - // Create and upload new texture to graphics system - //IMGUI_DEBUG_LOG("UpdateTexture #%03d: WantCreate %dx%d\n", tex->UniqueID, tex->Width, tex->Height); - IM_ASSERT(tex->TexID == 0 && tex->BackendUserData == nullptr); - IM_ASSERT(tex->Format == ImTextureFormat_RGBA32); - const void* pixels = tex->GetPixels(); - GLuint gl_texture_id = 0; - - // Upload texture to graphics system - // (Bilinear sampling is required by default. Set 'io.Fonts->Flags |= ImFontAtlasFlags_NoBakedLines' or 'style.AntiAliasedLinesUseTex = false' to allow point/nearest sampling) - GLint last_texture; - GL_CALL(glGetIntegerv(GL_TEXTURE_BINDING_2D, &last_texture)); - GL_CALL(glGenTextures(1, &gl_texture_id)); - GL_CALL(glBindTexture(GL_TEXTURE_2D, gl_texture_id)); - GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); - GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); - GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE)); - GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE)); -#ifdef GL_UNPACK_ROW_LENGTH // Not on WebGL/ES - GL_CALL(glPixelStorei(GL_UNPACK_ROW_LENGTH, 0)); -#endif - GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, tex->Width, tex->Height, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels)); - - // Store identifiers - tex->SetTexID((ImTextureID)(intptr_t)gl_texture_id); - tex->SetStatus(ImTextureStatus_OK); - - // Restore state - GL_CALL(glBindTexture(GL_TEXTURE_2D, last_texture)); - } - else if (tex->Status == ImTextureStatus_WantUpdates) - { - // Update selected blocks. We only ever write to textures regions which have never been used before! - // This backend choose to use tex->Updates[] but you can use tex->UpdateRect to upload a single region. - GLint last_texture; - GL_CALL(glGetIntegerv(GL_TEXTURE_BINDING_2D, &last_texture)); - - GLuint gl_tex_id = (GLuint)(intptr_t)tex->TexID; - GL_CALL(glBindTexture(GL_TEXTURE_2D, gl_tex_id)); -#if 0// GL_UNPACK_ROW_LENGTH // Not on WebGL/ES - GL_CALL(glPixelStorei(GL_UNPACK_ROW_LENGTH, tex->Width)); - for (ImTextureRect& r : tex->Updates) - GL_CALL(glTexSubImage2D(GL_TEXTURE_2D, 0, r.x, r.y, r.w, r.h, GL_RGBA, GL_UNSIGNED_BYTE, tex->GetPixelsAt(r.x, r.y))); - GL_CALL(glPixelStorei(GL_UNPACK_ROW_LENGTH, 0)); -#else - // GL ES doesn't have GL_UNPACK_ROW_LENGTH, so we need to (A) copy to a contiguous buffer or (B) upload line by line. - ImGui_ImplOpenGL3_Data* bd = ImGui_ImplOpenGL3_GetBackendData(); - for (ImTextureRect& r : tex->Updates) - { - const int src_pitch = r.w * tex->BytesPerPixel; - bd->TempBuffer.resize(r.h * src_pitch); - char* out_p = bd->TempBuffer.Data; - for (int y = 0; y < r.h; y++, out_p += src_pitch) - memcpy(out_p, tex->GetPixelsAt(r.x, r.y + y), src_pitch); - IM_ASSERT(out_p == bd->TempBuffer.end()); - GL_CALL(glTexSubImage2D(GL_TEXTURE_2D, 0, r.x, r.y, r.w, r.h, GL_RGBA, GL_UNSIGNED_BYTE, bd->TempBuffer.Data)); - } -#endif - tex->SetStatus(ImTextureStatus_OK); - GL_CALL(glBindTexture(GL_TEXTURE_2D, last_texture)); // Restore state - } - else if (tex->Status == ImTextureStatus_WantDestroy && tex->UnusedFrames > 0) - ImGui_ImplOpenGL3_DestroyTexture(tex); -} - -// If you get an error please report on github. You may try different GL context version or GLSL version. See GL<>GLSL version table at the top of this file. -static bool CheckShader(GLuint handle, const char* desc) -{ - ImGui_ImplOpenGL3_Data* bd = ImGui_ImplOpenGL3_GetBackendData(); - GLint status = 0, log_length = 0; - glGetShaderiv(handle, GL_COMPILE_STATUS, &status); - glGetShaderiv(handle, GL_INFO_LOG_LENGTH, &log_length); - if ((GLboolean)status == GL_FALSE) - fprintf(stderr, "ERROR: ImGui_ImplOpenGL3_CreateDeviceObjects: failed to compile %s! With GLSL: %s\n", desc, bd->GlslVersionString); - if (log_length > 1) - { - ImVector buf; - buf.resize((int)(log_length + 1)); - glGetShaderInfoLog(handle, log_length, nullptr, (GLchar*)buf.begin()); - fprintf(stderr, "%s\n", buf.begin()); - } - return (GLboolean)status == GL_TRUE; -} - -// If you get an error please report on GitHub. You may try different GL context version or GLSL version. -static bool CheckProgram(GLuint handle, const char* desc) -{ - ImGui_ImplOpenGL3_Data* bd = ImGui_ImplOpenGL3_GetBackendData(); - GLint status = 0, log_length = 0; - glGetProgramiv(handle, GL_LINK_STATUS, &status); - glGetProgramiv(handle, GL_INFO_LOG_LENGTH, &log_length); - if ((GLboolean)status == GL_FALSE) - fprintf(stderr, "ERROR: ImGui_ImplOpenGL3_CreateDeviceObjects: failed to link %s! With GLSL %s\n", desc, bd->GlslVersionString); - if (log_length > 1) - { - ImVector buf; - buf.resize((int)(log_length + 1)); - glGetProgramInfoLog(handle, log_length, nullptr, (GLchar*)buf.begin()); - fprintf(stderr, "%s\n", buf.begin()); - } - return (GLboolean)status == GL_TRUE; -} - -bool ImGui_ImplOpenGL3_CreateDeviceObjects() -{ - ImGui_ImplOpenGL3_Data* bd = ImGui_ImplOpenGL3_GetBackendData(); - - // Backup GL state - GLint last_texture, last_array_buffer; - glGetIntegerv(GL_TEXTURE_BINDING_2D, &last_texture); - glGetIntegerv(GL_ARRAY_BUFFER_BINDING, &last_array_buffer); -#ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_BIND_BUFFER_PIXEL_UNPACK - GLint last_pixel_unpack_buffer = 0; - if (bd->GlVersion >= 210) { glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &last_pixel_unpack_buffer); glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0); } -#endif -#ifdef IMGUI_IMPL_OPENGL_USE_VERTEX_ARRAY - GLint last_vertex_array; - glGetIntegerv(GL_VERTEX_ARRAY_BINDING, &last_vertex_array); -#endif - - // Parse GLSL version string - int glsl_version = 130; - sscanf(bd->GlslVersionString, "#version %d", &glsl_version); - - const GLchar* vertex_shader_glsl_120 = - "uniform mat4 ProjMtx;\n" - "attribute vec2 Position;\n" - "attribute vec2 UV;\n" - "attribute vec4 Color;\n" - "varying vec2 Frag_UV;\n" - "varying vec4 Frag_Color;\n" - "void main()\n" - "{\n" - " Frag_UV = UV;\n" - " Frag_Color = Color;\n" - " gl_Position = ProjMtx * vec4(Position.xy,0,1);\n" - "}\n"; - - const GLchar* vertex_shader_glsl_130 = - "uniform mat4 ProjMtx;\n" - "in vec2 Position;\n" - "in vec2 UV;\n" - "in vec4 Color;\n" - "out vec2 Frag_UV;\n" - "out vec4 Frag_Color;\n" - "void main()\n" - "{\n" - " Frag_UV = UV;\n" - " Frag_Color = Color;\n" - " gl_Position = ProjMtx * vec4(Position.xy,0,1);\n" - "}\n"; - - const GLchar* vertex_shader_glsl_300_es = - "precision highp float;\n" - "layout (location = 0) in vec2 Position;\n" - "layout (location = 1) in vec2 UV;\n" - "layout (location = 2) in vec4 Color;\n" - "uniform mat4 ProjMtx;\n" - "out vec2 Frag_UV;\n" - "out vec4 Frag_Color;\n" - "void main()\n" - "{\n" - " Frag_UV = UV;\n" - " Frag_Color = Color;\n" - " gl_Position = ProjMtx * vec4(Position.xy,0,1);\n" - "}\n"; - - const GLchar* vertex_shader_glsl_410_core = - "layout (location = 0) in vec2 Position;\n" - "layout (location = 1) in vec2 UV;\n" - "layout (location = 2) in vec4 Color;\n" - "uniform mat4 ProjMtx;\n" - "out vec2 Frag_UV;\n" - "out vec4 Frag_Color;\n" - "void main()\n" - "{\n" - " Frag_UV = UV;\n" - " Frag_Color = Color;\n" - " gl_Position = ProjMtx * vec4(Position.xy,0,1);\n" - "}\n"; - - const GLchar* fragment_shader_glsl_120 = - "#ifdef GL_ES\n" - " precision mediump float;\n" - "#endif\n" - "uniform sampler2D Texture;\n" - "varying vec2 Frag_UV;\n" - "varying vec4 Frag_Color;\n" - "void main()\n" - "{\n" - " gl_FragColor = Frag_Color * texture2D(Texture, Frag_UV.st);\n" - "}\n"; - - const GLchar* fragment_shader_glsl_130 = - "uniform sampler2D Texture;\n" - "in vec2 Frag_UV;\n" - "in vec4 Frag_Color;\n" - "out vec4 Out_Color;\n" - "void main()\n" - "{\n" - " Out_Color = Frag_Color * texture(Texture, Frag_UV.st);\n" - "}\n"; - - const GLchar* fragment_shader_glsl_300_es = - "precision mediump float;\n" - "uniform sampler2D Texture;\n" - "in vec2 Frag_UV;\n" - "in vec4 Frag_Color;\n" - "layout (location = 0) out vec4 Out_Color;\n" - "void main()\n" - "{\n" - " Out_Color = Frag_Color * texture(Texture, Frag_UV.st);\n" - "}\n"; - - const GLchar* fragment_shader_glsl_410_core = - "in vec2 Frag_UV;\n" - "in vec4 Frag_Color;\n" - "uniform sampler2D Texture;\n" - "layout (location = 0) out vec4 Out_Color;\n" - "void main()\n" - "{\n" - " Out_Color = Frag_Color * texture(Texture, Frag_UV.st);\n" - "}\n"; - - // Select shaders matching our GLSL versions - const GLchar* vertex_shader = nullptr; - const GLchar* fragment_shader = nullptr; - if (glsl_version < 130) - { - vertex_shader = vertex_shader_glsl_120; - fragment_shader = fragment_shader_glsl_120; - } - else if (glsl_version >= 410) - { - vertex_shader = vertex_shader_glsl_410_core; - fragment_shader = fragment_shader_glsl_410_core; - } - else if (glsl_version == 300) - { - vertex_shader = vertex_shader_glsl_300_es; - fragment_shader = fragment_shader_glsl_300_es; - } - else - { - vertex_shader = vertex_shader_glsl_130; - fragment_shader = fragment_shader_glsl_130; - } - - // Create shaders - const GLchar* vertex_shader_with_version[2] = { bd->GlslVersionString, vertex_shader }; - GLuint vert_handle; - GL_CALL(vert_handle = glCreateShader(GL_VERTEX_SHADER)); - glShaderSource(vert_handle, 2, vertex_shader_with_version, nullptr); - glCompileShader(vert_handle); - if (!CheckShader(vert_handle, "vertex shader")) - return false; - - const GLchar* fragment_shader_with_version[2] = { bd->GlslVersionString, fragment_shader }; - GLuint frag_handle; - GL_CALL(frag_handle = glCreateShader(GL_FRAGMENT_SHADER)); - glShaderSource(frag_handle, 2, fragment_shader_with_version, nullptr); - glCompileShader(frag_handle); - if (!CheckShader(frag_handle, "fragment shader")) - return false; - - // Link - bd->ShaderHandle = glCreateProgram(); - glAttachShader(bd->ShaderHandle, vert_handle); - glAttachShader(bd->ShaderHandle, frag_handle); - glLinkProgram(bd->ShaderHandle); - if (!CheckProgram(bd->ShaderHandle, "shader program")) - return false; - - glDetachShader(bd->ShaderHandle, vert_handle); - glDetachShader(bd->ShaderHandle, frag_handle); - glDeleteShader(vert_handle); - glDeleteShader(frag_handle); - - bd->AttribLocationTex = glGetUniformLocation(bd->ShaderHandle, "Texture"); - bd->AttribLocationProjMtx = glGetUniformLocation(bd->ShaderHandle, "ProjMtx"); - bd->AttribLocationVtxPos = (GLuint)glGetAttribLocation(bd->ShaderHandle, "Position"); - bd->AttribLocationVtxUV = (GLuint)glGetAttribLocation(bd->ShaderHandle, "UV"); - bd->AttribLocationVtxColor = (GLuint)glGetAttribLocation(bd->ShaderHandle, "Color"); - - // Create buffers - glGenBuffers(1, &bd->VboHandle); - glGenBuffers(1, &bd->ElementsHandle); - - // Restore modified GL state - glBindTexture(GL_TEXTURE_2D, last_texture); - glBindBuffer(GL_ARRAY_BUFFER, last_array_buffer); -#ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_BIND_BUFFER_PIXEL_UNPACK - if (bd->GlVersion >= 210) { glBindBuffer(GL_PIXEL_UNPACK_BUFFER, last_pixel_unpack_buffer); } -#endif -#ifdef IMGUI_IMPL_OPENGL_USE_VERTEX_ARRAY - glBindVertexArray(last_vertex_array); -#endif - - return true; -} - -void ImGui_ImplOpenGL3_DestroyDeviceObjects() -{ - ImGui_ImplOpenGL3_Data* bd = ImGui_ImplOpenGL3_GetBackendData(); - if (bd->VboHandle) { glDeleteBuffers(1, &bd->VboHandle); bd->VboHandle = 0; } - if (bd->ElementsHandle) { glDeleteBuffers(1, &bd->ElementsHandle); bd->ElementsHandle = 0; } - if (bd->ShaderHandle) { glDeleteProgram(bd->ShaderHandle); bd->ShaderHandle = 0; } - - // Destroy all textures - for (ImTextureData* tex : ImGui::GetPlatformIO().Textures) - if (tex->RefCount == 1) - ImGui_ImplOpenGL3_DestroyTexture(tex); -} - -//----------------------------------------------------------------------------- - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif -#if defined(__clang__) -#pragma clang diagnostic pop -#endif - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_opengl3.h b/libs/imgui-1.92.1/backends/imgui_impl_opengl3.h deleted file mode 100644 index b72b5c8..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_opengl3.h +++ /dev/null @@ -1,68 +0,0 @@ -// dear imgui: Renderer Backend for modern OpenGL with shaders / programmatic pipeline -// - Desktop GL: 2.x 3.x 4.x -// - Embedded GL: ES 2.0 (WebGL 1.0), ES 3.0 (WebGL 2.0) -// This needs to be used along with a Platform Backend (e.g. GLFW, SDL, Win32, custom..) - -// Implemented features: -// [X] Renderer: User texture binding. Use 'GLuint' OpenGL texture as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! -// [x] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset) [Desktop OpenGL only!] -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). - -// About WebGL/ES: -// - You need to '#define IMGUI_IMPL_OPENGL_ES2' or '#define IMGUI_IMPL_OPENGL_ES3' to use WebGL or OpenGL ES. -// - This is done automatically on iOS, Android and Emscripten targets. -// - For other targets, the define needs to be visible from the imgui_impl_opengl3.cpp compilation unit. If unsure, define globally or in imconfig.h. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// About GLSL version: -// The 'glsl_version' initialization parameter should be nullptr (default) or a "#version XXX" string. -// On computer platform the GLSL version default to "#version 130". On OpenGL ES 3 platform it defaults to "#version 300 es" -// Only override if your GL version doesn't handle this GLSL version. See GLSL version table at the top of imgui_impl_opengl3.cpp. - -#pragma once -#include "imgui.h" // IMGUI_IMPL_API -#ifndef IMGUI_DISABLE - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplOpenGL3_Init(const char* glsl_version = nullptr); -IMGUI_IMPL_API void ImGui_ImplOpenGL3_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplOpenGL3_NewFrame(); -IMGUI_IMPL_API void ImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data); - -// (Optional) Called by Init/NewFrame/Shutdown -IMGUI_IMPL_API bool ImGui_ImplOpenGL3_CreateDeviceObjects(); -IMGUI_IMPL_API void ImGui_ImplOpenGL3_DestroyDeviceObjects(); - -// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = NULL to handle this manually. -IMGUI_IMPL_API void ImGui_ImplOpenGL3_UpdateTexture(ImTextureData* tex); - -// Configuration flags to add in your imconfig file: -//#define IMGUI_IMPL_OPENGL_ES2 // Enable ES 2 (Auto-detected on Emscripten) -//#define IMGUI_IMPL_OPENGL_ES3 // Enable ES 3 (Auto-detected on iOS/Android) - -// You can explicitly select GLES2 or GLES3 API by using one of the '#define IMGUI_IMPL_OPENGL_LOADER_XXX' in imconfig.h or compiler command-line. -#if !defined(IMGUI_IMPL_OPENGL_ES2) \ - && !defined(IMGUI_IMPL_OPENGL_ES3) - -// Try to detect GLES on matching platforms -#if defined(__APPLE__) -#include -#endif -#if (defined(__APPLE__) && (TARGET_OS_IOS || TARGET_OS_TV)) || (defined(__ANDROID__)) -#define IMGUI_IMPL_OPENGL_ES3 // iOS, Android -> GL ES 3, "#version 300 es" -#elif defined(__EMSCRIPTEN__) || defined(__amigaos4__) -#define IMGUI_IMPL_OPENGL_ES2 // Emscripten -> GL ES 2, "#version 100" -#else -// Otherwise imgui_impl_opengl3_loader.h will be used. -#endif - -#endif - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_opengl3_loader.h b/libs/imgui-1.92.1/backends/imgui_impl_opengl3_loader.h deleted file mode 100644 index 4ca0536..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_opengl3_loader.h +++ /dev/null @@ -1,922 +0,0 @@ -//----------------------------------------------------------------------------- -// About imgui_impl_opengl3_loader.h: -// -// We embed our own OpenGL loader to not require user to provide their own or to have to use ours, -// which proved to be endless problems for users. -// Our loader is custom-generated, based on gl3w but automatically filtered to only include -// enums/functions that we use in our imgui_impl_opengl3.cpp source file in order to be small. -// -// YOU SHOULD NOT NEED TO INCLUDE/USE THIS DIRECTLY. THIS IS USED BY imgui_impl_opengl3.cpp ONLY. -// THE REST OF YOUR APP SHOULD USE A DIFFERENT GL LOADER: ANY GL LOADER OF YOUR CHOICE. -// -// IF YOU GET BUILD ERRORS IN THIS FILE (commonly macro redefinitions or function redefinitions): -// IT LIKELY MEANS THAT YOU ARE BUILDING 'imgui_impl_opengl3.cpp' OR INCLUDING 'imgui_impl_opengl3_loader.h' -// IN THE SAME COMPILATION UNIT AS ONE OF YOUR FILE WHICH IS USING A THIRD-PARTY OPENGL LOADER. -// (e.g. COULD HAPPEN IF YOU ARE DOING A UNITY/JUMBO BUILD, OR INCLUDING .CPP FILES FROM OTHERS) -// YOU SHOULD NOT BUILD BOTH IN THE SAME COMPILATION UNIT. -// BUT IF YOU REALLY WANT TO, you can '#define IMGUI_IMPL_OPENGL_LOADER_CUSTOM' and imgui_impl_opengl3.cpp -// WILL NOT BE USING OUR LOADER, AND INSTEAD EXPECT ANOTHER/YOUR LOADER TO BE AVAILABLE IN THE COMPILATION UNIT. -// -// Regenerate with: -// python3 gl3w_gen.py --output ../imgui/backends/imgui_impl_opengl3_loader.h --ref ../imgui/backends/imgui_impl_opengl3.cpp ./extra_symbols.txt -// -// More info: -// https://github.com/dearimgui/gl3w_stripped -// https://github.com/ocornut/imgui/issues/4445 -//----------------------------------------------------------------------------- - -/* - * This file was generated with gl3w_gen.py, part of imgl3w - * (hosted at https://github.com/dearimgui/gl3w_stripped) - * - * This is free and unencumbered software released into the public domain. - * - * Anyone is free to copy, modify, publish, use, compile, sell, or - * distribute this software, either in source code form or as a compiled - * binary, for any purpose, commercial or non-commercial, and by any - * means. - * - * In jurisdictions that recognize copyright laws, the author or authors - * of this software dedicate any and all copyright interest in the - * software to the public domain. We make this dedication for the benefit - * of the public at large and to the detriment of our heirs and - * successors. We intend this dedication to be an overt act of - * relinquishment in perpetuity of all present and future rights to this - * software under copyright law. - * - * 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 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 __gl3w_h_ -#define __gl3w_h_ - -// Adapted from KHR/khrplatform.h to avoid including entire file. -#ifndef __khrplatform_h_ -typedef float khronos_float_t; -typedef signed char khronos_int8_t; -typedef unsigned char khronos_uint8_t; -typedef signed short int khronos_int16_t; -typedef unsigned short int khronos_uint16_t; -#ifdef _WIN64 -typedef signed long long int khronos_intptr_t; -typedef signed long long int khronos_ssize_t; -#else -typedef signed long int khronos_intptr_t; -typedef signed long int khronos_ssize_t; -#endif - -#if defined(_MSC_VER) && !defined(__clang__) -typedef signed __int64 khronos_int64_t; -typedef unsigned __int64 khronos_uint64_t; -#elif (defined(__clang__) || defined(__GNUC__)) && (__cplusplus < 201100) -#include -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; -#else -typedef signed long long khronos_int64_t; -typedef unsigned long long khronos_uint64_t; -#endif -#endif // __khrplatform_h_ - -#ifndef __gl_glcorearb_h_ -#define __gl_glcorearb_h_ 1 -#ifdef __cplusplus -extern "C" { -#endif -/* -** Copyright 2013-2020 The Khronos Group Inc. -** SPDX-License-Identifier: MIT -** -** This header is generated from the Khronos OpenGL / OpenGL ES XML -** API Registry. The current version of the Registry, generator scripts -** used to make the header, and the header can be found at -** https://github.com/KhronosGroup/OpenGL-Registry -*/ -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN 1 -#endif -#include -#endif -#ifndef APIENTRY -#define APIENTRY -#endif -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif -#ifndef GLAPI -#define GLAPI extern -#endif -/* glcorearb.h is for use with OpenGL core profile implementations. -** It should should be placed in the same directory as gl.h and -** included as . -** -** glcorearb.h includes only APIs in the latest OpenGL core profile -** implementation together with APIs in newer ARB extensions which -** can be supported by the core profile. It does not, and never will -** include functionality removed from the core profile, such as -** fixed-function vertex and fragment processing. -** -** Do not #include both and either of or -** in the same source file. -*/ -/* Generated C header for: - * API: gl - * Profile: core - * Versions considered: .* - * Versions emitted: .* - * Default extensions included: glcore - * Additional extensions included: _nomatch_^ - * Extensions removed: _nomatch_^ - */ -#ifndef GL_VERSION_1_0 -typedef void GLvoid; -typedef unsigned int GLenum; - -typedef khronos_float_t GLfloat; -typedef int GLint; -typedef int GLsizei; -typedef unsigned int GLbitfield; -typedef double GLdouble; -typedef unsigned int GLuint; -typedef unsigned char GLboolean; -typedef khronos_uint8_t GLubyte; -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_FALSE 0 -#define GL_TRUE 1 -#define GL_TRIANGLES 0x0004 -#define GL_ONE 1 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_POLYGON_MODE 0x0B40 -#define GL_CULL_FACE 0x0B44 -#define GL_DEPTH_TEST 0x0B71 -#define GL_STENCIL_TEST 0x0B90 -#define GL_VIEWPORT 0x0BA2 -#define GL_BLEND 0x0BE2 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_RGBA 0x1908 -#define GL_FILL 0x1B02 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_LINEAR 0x2601 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_REPEAT 0x2901 -typedef void (APIENTRYP PFNGLPOLYGONMODEPROC) (GLenum face, GLenum mode); -typedef void (APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (APIENTRYP PFNGLDISABLEPROC) (GLenum cap); -typedef void (APIENTRYP PFNGLENABLEPROC) (GLenum cap); -typedef void (APIENTRYP PFNGLFLUSHPROC) (void); -typedef void (APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef GLenum (APIENTRYP PFNGLGETERRORPROC) (void); -typedef void (APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); -typedef const GLubyte *(APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); -typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); -typedef void (APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPolygonMode (GLenum face, GLenum mode); -GLAPI void APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glClear (GLbitfield mask); -GLAPI void APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GLAPI void APIENTRY glDisable (GLenum cap); -GLAPI void APIENTRY glEnable (GLenum cap); -GLAPI void APIENTRY glFlush (void); -GLAPI void APIENTRY glPixelStorei (GLenum pname, GLint param); -GLAPI void APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -GLAPI GLenum APIENTRY glGetError (void); -GLAPI void APIENTRY glGetIntegerv (GLenum pname, GLint *data); -GLAPI const GLubyte *APIENTRY glGetString (GLenum name); -GLAPI GLboolean APIENTRY glIsEnabled (GLenum cap); -GLAPI void APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); -#endif -#endif /* GL_VERSION_1_0 */ -#ifndef GL_VERSION_1_1 -typedef khronos_float_t GLclampf; -typedef double GLclampd; -#define GL_TEXTURE_BINDING_2D 0x8069 -typedef void (APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void (APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); -typedef void (APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); -typedef void (APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); -GLAPI void APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -GLAPI void APIENTRY glBindTexture (GLenum target, GLuint texture); -GLAPI void APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GLAPI void APIENTRY glGenTextures (GLsizei n, GLuint *textures); -#endif -#endif /* GL_VERSION_1_1 */ -#ifndef GL_VERSION_1_2 -#define GL_CLAMP_TO_EDGE 0x812F -#endif /* GL_VERSION_1_2 */ -#ifndef GL_VERSION_1_3 -#define GL_TEXTURE0 0x84C0 -#define GL_ACTIVE_TEXTURE 0x84E0 -typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveTexture (GLenum texture); -#endif -#endif /* GL_VERSION_1_3 */ -#ifndef GL_VERSION_1_4 -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_FUNC_ADD 0x8006 -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GLAPI void APIENTRY glBlendEquation (GLenum mode); -#endif -#endif /* GL_VERSION_1_4 */ -#ifndef GL_VERSION_1_5 -typedef khronos_ssize_t GLsizeiptr; -typedef khronos_intptr_t GLintptr; -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_STREAM_DRAW 0x88E0 -typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GLAPI void APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GLAPI void APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GLAPI void APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); -GLAPI void APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -#endif -#endif /* GL_VERSION_1_5 */ -#ifndef GL_VERSION_2_0 -typedef char GLchar; -typedef khronos_int16_t GLshort; -typedef khronos_int8_t GLbyte; -typedef khronos_uint16_t GLushort; -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_COMPILE_STATUS 0x8B81 -#define GL_LINK_STATUS 0x8B82 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_UPPER_LEFT 0x8CA2 -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GLAPI void APIENTRY glAttachShader (GLuint program, GLuint shader); -GLAPI void APIENTRY glCompileShader (GLuint shader); -GLAPI GLuint APIENTRY glCreateProgram (void); -GLAPI GLuint APIENTRY glCreateShader (GLenum type); -GLAPI void APIENTRY glDeleteProgram (GLuint program); -GLAPI void APIENTRY glDeleteShader (GLuint shader); -GLAPI void APIENTRY glDetachShader (GLuint program, GLuint shader); -GLAPI void APIENTRY glDisableVertexAttribArray (GLuint index); -GLAPI void APIENTRY glEnableVertexAttribArray (GLuint index); -GLAPI GLint APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GLAPI void APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GLAPI void APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GLAPI GLint APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GLAPI void APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); -GLAPI GLboolean APIENTRY glIsProgram (GLuint program); -GLAPI void APIENTRY glLinkProgram (GLuint program); -GLAPI void APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); -GLAPI void APIENTRY glUseProgram (GLuint program); -GLAPI void APIENTRY glUniform1i (GLint location, GLint v0); -GLAPI void APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -#endif -#endif /* GL_VERSION_2_0 */ -#ifndef GL_VERSION_2_1 -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#endif /* GL_VERSION_2_1 */ -#ifndef GL_VERSION_3_0 -typedef khronos_uint16_t GLhalf; -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_FRAMEBUFFER_SRGB 0x8DB9 -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); -typedef const GLubyte *(APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); -typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI const GLubyte *APIENTRY glGetStringi (GLenum name, GLuint index); -GLAPI void APIENTRY glBindVertexArray (GLuint array); -GLAPI void APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); -GLAPI void APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); -#endif -#endif /* GL_VERSION_3_0 */ -#ifndef GL_VERSION_3_1 -#define GL_VERSION_3_1 1 -#define GL_PRIMITIVE_RESTART 0x8F9D -#endif /* GL_VERSION_3_1 */ -#ifndef GL_VERSION_3_2 -#define GL_VERSION_3_2 1 -typedef struct __GLsync *GLsync; -typedef khronos_uint64_t GLuint64; -typedef khronos_int64_t GLint64; -#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 -#define GL_CONTEXT_PROFILE_MASK 0x9126 -typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -#endif -#endif /* GL_VERSION_3_2 */ -#ifndef GL_VERSION_3_3 -#define GL_VERSION_3_3 1 -#define GL_SAMPLER_BINDING 0x8919 -typedef void (APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindSampler (GLuint unit, GLuint sampler); -#endif -#endif /* GL_VERSION_3_3 */ -#ifndef GL_VERSION_4_1 -typedef void (APIENTRYP PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat *data); -typedef void (APIENTRYP PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble *data); -#endif /* GL_VERSION_4_1 */ -#ifndef GL_VERSION_4_3 -typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); -#endif /* GL_VERSION_4_3 */ -#ifndef GL_VERSION_4_5 -#define GL_CLIP_ORIGIN 0x935C -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKI_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint *param); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKI64_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint64 *param); -#endif /* GL_VERSION_4_5 */ -#ifndef GL_ARB_bindless_texture -typedef khronos_uint64_t GLuint64EXT; -#endif /* GL_ARB_bindless_texture */ -#ifndef GL_ARB_cl_event -struct _cl_context; -struct _cl_event; -#endif /* GL_ARB_cl_event */ -#ifndef GL_ARB_clip_control -#define GL_ARB_clip_control 1 -#endif /* GL_ARB_clip_control */ -#ifndef GL_ARB_debug_output -typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); -#endif /* GL_ARB_debug_output */ -#ifndef GL_EXT_EGL_image_storage -typedef void *GLeglImageOES; -#endif /* GL_EXT_EGL_image_storage */ -#ifndef GL_EXT_direct_state_access -typedef void (APIENTRYP PFNGLGETFLOATI_VEXTPROC) (GLenum pname, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETDOUBLEI_VEXTPROC) (GLenum pname, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPOINTERI_VEXTPROC) (GLenum pname, GLuint index, void **params); -typedef void (APIENTRYP PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint *param); -typedef void (APIENTRYP PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, void **param); -#endif /* GL_EXT_direct_state_access */ -#ifndef GL_NV_draw_vulkan_image -typedef void (APIENTRY *GLVULKANPROCNV)(void); -#endif /* GL_NV_draw_vulkan_image */ -#ifndef GL_NV_gpu_shader5 -typedef khronos_int64_t GLint64EXT; -#endif /* GL_NV_gpu_shader5 */ -#ifndef GL_NV_vertex_buffer_unified_memory -typedef void (APIENTRYP PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT *result); -#endif /* GL_NV_vertex_buffer_unified_memory */ -#ifdef __cplusplus -} -#endif -#endif - -#ifndef GL3W_API -#define GL3W_API -#endif - -#ifndef __gl_h_ -#define __gl_h_ -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#define GL3W_OK 0 -#define GL3W_ERROR_INIT -1 -#define GL3W_ERROR_LIBRARY_OPEN -2 -#define GL3W_ERROR_OPENGL_VERSION -3 - -typedef void (*GL3WglProc)(void); -typedef GL3WglProc (*GL3WGetProcAddressProc)(const char *proc); - -/* gl3w api */ -GL3W_API int imgl3wInit(void); -GL3W_API int imgl3wInit2(GL3WGetProcAddressProc proc); -GL3W_API int imgl3wIsSupported(int major, int minor); -GL3W_API GL3WglProc imgl3wGetProcAddress(const char *proc); - -/* gl3w internal state */ -union ImGL3WProcs { - GL3WglProc ptr[60]; - struct { - PFNGLACTIVETEXTUREPROC ActiveTexture; - PFNGLATTACHSHADERPROC AttachShader; - PFNGLBINDBUFFERPROC BindBuffer; - PFNGLBINDSAMPLERPROC BindSampler; - PFNGLBINDTEXTUREPROC BindTexture; - PFNGLBINDVERTEXARRAYPROC BindVertexArray; - PFNGLBLENDEQUATIONPROC BlendEquation; - PFNGLBLENDEQUATIONSEPARATEPROC BlendEquationSeparate; - PFNGLBLENDFUNCSEPARATEPROC BlendFuncSeparate; - PFNGLBUFFERDATAPROC BufferData; - PFNGLBUFFERSUBDATAPROC BufferSubData; - PFNGLCLEARPROC Clear; - PFNGLCLEARCOLORPROC ClearColor; - PFNGLCOMPILESHADERPROC CompileShader; - PFNGLCREATEPROGRAMPROC CreateProgram; - PFNGLCREATESHADERPROC CreateShader; - PFNGLDELETEBUFFERSPROC DeleteBuffers; - PFNGLDELETEPROGRAMPROC DeleteProgram; - PFNGLDELETESHADERPROC DeleteShader; - PFNGLDELETETEXTURESPROC DeleteTextures; - PFNGLDELETEVERTEXARRAYSPROC DeleteVertexArrays; - PFNGLDETACHSHADERPROC DetachShader; - PFNGLDISABLEPROC Disable; - PFNGLDISABLEVERTEXATTRIBARRAYPROC DisableVertexAttribArray; - PFNGLDRAWELEMENTSPROC DrawElements; - PFNGLDRAWELEMENTSBASEVERTEXPROC DrawElementsBaseVertex; - PFNGLENABLEPROC Enable; - PFNGLENABLEVERTEXATTRIBARRAYPROC EnableVertexAttribArray; - PFNGLFLUSHPROC Flush; - PFNGLGENBUFFERSPROC GenBuffers; - PFNGLGENTEXTURESPROC GenTextures; - PFNGLGENVERTEXARRAYSPROC GenVertexArrays; - PFNGLGETATTRIBLOCATIONPROC GetAttribLocation; - PFNGLGETERRORPROC GetError; - PFNGLGETINTEGERVPROC GetIntegerv; - PFNGLGETPROGRAMINFOLOGPROC GetProgramInfoLog; - PFNGLGETPROGRAMIVPROC GetProgramiv; - PFNGLGETSHADERINFOLOGPROC GetShaderInfoLog; - PFNGLGETSHADERIVPROC GetShaderiv; - PFNGLGETSTRINGPROC GetString; - PFNGLGETSTRINGIPROC GetStringi; - PFNGLGETUNIFORMLOCATIONPROC GetUniformLocation; - PFNGLGETVERTEXATTRIBPOINTERVPROC GetVertexAttribPointerv; - PFNGLGETVERTEXATTRIBIVPROC GetVertexAttribiv; - PFNGLISENABLEDPROC IsEnabled; - PFNGLISPROGRAMPROC IsProgram; - PFNGLLINKPROGRAMPROC LinkProgram; - PFNGLPIXELSTOREIPROC PixelStorei; - PFNGLPOLYGONMODEPROC PolygonMode; - PFNGLREADPIXELSPROC ReadPixels; - PFNGLSCISSORPROC Scissor; - PFNGLSHADERSOURCEPROC ShaderSource; - PFNGLTEXIMAGE2DPROC TexImage2D; - PFNGLTEXPARAMETERIPROC TexParameteri; - PFNGLTEXSUBIMAGE2DPROC TexSubImage2D; - PFNGLUNIFORM1IPROC Uniform1i; - PFNGLUNIFORMMATRIX4FVPROC UniformMatrix4fv; - PFNGLUSEPROGRAMPROC UseProgram; - PFNGLVERTEXATTRIBPOINTERPROC VertexAttribPointer; - PFNGLVIEWPORTPROC Viewport; - } gl; -}; - -GL3W_API extern union ImGL3WProcs imgl3wProcs; - -/* OpenGL functions */ -#define glActiveTexture imgl3wProcs.gl.ActiveTexture -#define glAttachShader imgl3wProcs.gl.AttachShader -#define glBindBuffer imgl3wProcs.gl.BindBuffer -#define glBindSampler imgl3wProcs.gl.BindSampler -#define glBindTexture imgl3wProcs.gl.BindTexture -#define glBindVertexArray imgl3wProcs.gl.BindVertexArray -#define glBlendEquation imgl3wProcs.gl.BlendEquation -#define glBlendEquationSeparate imgl3wProcs.gl.BlendEquationSeparate -#define glBlendFuncSeparate imgl3wProcs.gl.BlendFuncSeparate -#define glBufferData imgl3wProcs.gl.BufferData -#define glBufferSubData imgl3wProcs.gl.BufferSubData -#define glClear imgl3wProcs.gl.Clear -#define glClearColor imgl3wProcs.gl.ClearColor -#define glCompileShader imgl3wProcs.gl.CompileShader -#define glCreateProgram imgl3wProcs.gl.CreateProgram -#define glCreateShader imgl3wProcs.gl.CreateShader -#define glDeleteBuffers imgl3wProcs.gl.DeleteBuffers -#define glDeleteProgram imgl3wProcs.gl.DeleteProgram -#define glDeleteShader imgl3wProcs.gl.DeleteShader -#define glDeleteTextures imgl3wProcs.gl.DeleteTextures -#define glDeleteVertexArrays imgl3wProcs.gl.DeleteVertexArrays -#define glDetachShader imgl3wProcs.gl.DetachShader -#define glDisable imgl3wProcs.gl.Disable -#define glDisableVertexAttribArray imgl3wProcs.gl.DisableVertexAttribArray -#define glDrawElements imgl3wProcs.gl.DrawElements -#define glDrawElementsBaseVertex imgl3wProcs.gl.DrawElementsBaseVertex -#define glEnable imgl3wProcs.gl.Enable -#define glEnableVertexAttribArray imgl3wProcs.gl.EnableVertexAttribArray -#define glFlush imgl3wProcs.gl.Flush -#define glGenBuffers imgl3wProcs.gl.GenBuffers -#define glGenTextures imgl3wProcs.gl.GenTextures -#define glGenVertexArrays imgl3wProcs.gl.GenVertexArrays -#define glGetAttribLocation imgl3wProcs.gl.GetAttribLocation -#define glGetError imgl3wProcs.gl.GetError -#define glGetIntegerv imgl3wProcs.gl.GetIntegerv -#define glGetProgramInfoLog imgl3wProcs.gl.GetProgramInfoLog -#define glGetProgramiv imgl3wProcs.gl.GetProgramiv -#define glGetShaderInfoLog imgl3wProcs.gl.GetShaderInfoLog -#define glGetShaderiv imgl3wProcs.gl.GetShaderiv -#define glGetString imgl3wProcs.gl.GetString -#define glGetStringi imgl3wProcs.gl.GetStringi -#define glGetUniformLocation imgl3wProcs.gl.GetUniformLocation -#define glGetVertexAttribPointerv imgl3wProcs.gl.GetVertexAttribPointerv -#define glGetVertexAttribiv imgl3wProcs.gl.GetVertexAttribiv -#define glIsEnabled imgl3wProcs.gl.IsEnabled -#define glIsProgram imgl3wProcs.gl.IsProgram -#define glLinkProgram imgl3wProcs.gl.LinkProgram -#define glPixelStorei imgl3wProcs.gl.PixelStorei -#define glPolygonMode imgl3wProcs.gl.PolygonMode -#define glReadPixels imgl3wProcs.gl.ReadPixels -#define glScissor imgl3wProcs.gl.Scissor -#define glShaderSource imgl3wProcs.gl.ShaderSource -#define glTexImage2D imgl3wProcs.gl.TexImage2D -#define glTexParameteri imgl3wProcs.gl.TexParameteri -#define glTexSubImage2D imgl3wProcs.gl.TexSubImage2D -#define glUniform1i imgl3wProcs.gl.Uniform1i -#define glUniformMatrix4fv imgl3wProcs.gl.UniformMatrix4fv -#define glUseProgram imgl3wProcs.gl.UseProgram -#define glVertexAttribPointer imgl3wProcs.gl.VertexAttribPointer -#define glViewport imgl3wProcs.gl.Viewport - -#ifdef __cplusplus -} -#endif - -#endif - -#ifdef IMGL3W_IMPL -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#define GL3W_ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) - -#if defined(_WIN32) -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN 1 -#endif -#include - -static HMODULE libgl; -typedef PROC(__stdcall* GL3WglGetProcAddr)(LPCSTR); -static GL3WglGetProcAddr wgl_get_proc_address; - -static int open_libgl(void) -{ - libgl = LoadLibraryA("opengl32.dll"); - if (!libgl) - return GL3W_ERROR_LIBRARY_OPEN; - wgl_get_proc_address = (GL3WglGetProcAddr)GetProcAddress(libgl, "wglGetProcAddress"); - return GL3W_OK; -} - -static void close_libgl(void) { FreeLibrary(libgl); } -static GL3WglProc get_proc(const char *proc) -{ - GL3WglProc res; - res = (GL3WglProc)wgl_get_proc_address(proc); - if (!res) - res = (GL3WglProc)GetProcAddress(libgl, proc); - return res; -} -#elif defined(__APPLE__) -#include - -static void *libgl; -static int open_libgl(void) -{ - libgl = dlopen("/System/Library/Frameworks/OpenGL.framework/OpenGL", RTLD_LAZY | RTLD_LOCAL); - if (!libgl) - return GL3W_ERROR_LIBRARY_OPEN; - return GL3W_OK; -} - -static void close_libgl(void) { dlclose(libgl); } - -static GL3WglProc get_proc(const char *proc) -{ - GL3WglProc res; - *(void **)(&res) = dlsym(libgl, proc); - return res; -} -#else -#include - -static void* libgl; // OpenGL library -static void* libglx; // GLX library -static void* libegl; // EGL library -static GL3WGetProcAddressProc gl_get_proc_address; - -static void close_libgl(void) -{ - if (libgl) { - dlclose(libgl); - libgl = NULL; - } - if (libegl) { - dlclose(libegl); - libegl = NULL; - } - if (libglx) { - dlclose(libglx); - libglx = NULL; - } -} - -static int is_library_loaded(const char* name, void** lib) -{ - *lib = dlopen(name, RTLD_LAZY | RTLD_LOCAL | RTLD_NOLOAD); - return *lib != NULL; -} - -static int open_libs(void) -{ - // On Linux we have two APIs to get process addresses: EGL and GLX. - // EGL is supported under both X11 and Wayland, whereas GLX is X11-specific. - - libgl = NULL; - libegl = NULL; - libglx = NULL; - - // First check what's already loaded, the windowing library might have - // already loaded either EGL or GLX and we want to use the same one. - - if (is_library_loaded("libEGL.so.1", &libegl) || - is_library_loaded("libGLX.so.0", &libglx)) { - libgl = dlopen("libOpenGL.so.0", RTLD_LAZY | RTLD_LOCAL); - if (libgl) - return GL3W_OK; - else - close_libgl(); - } - - if (is_library_loaded("libGL.so", &libgl)) - return GL3W_OK; - if (is_library_loaded("libGL.so.1", &libgl)) - return GL3W_OK; - if (is_library_loaded("libGL.so.3", &libgl)) - return GL3W_OK; - - // Neither is already loaded, so we have to load one. Try EGL first - // because it is supported under both X11 and Wayland. - - // Load OpenGL + EGL - libgl = dlopen("libOpenGL.so.0", RTLD_LAZY | RTLD_LOCAL); - libegl = dlopen("libEGL.so.1", RTLD_LAZY | RTLD_LOCAL); - if (libgl && libegl) - return GL3W_OK; - else - close_libgl(); - - // Fall back to legacy libGL, which includes GLX - // While most systems use libGL.so.1, NetBSD seems to use that libGL.so.3. See https://github.com/ocornut/imgui/issues/6983 - libgl = dlopen("libGL.so", RTLD_LAZY | RTLD_LOCAL); - if (!libgl) - libgl = dlopen("libGL.so.1", RTLD_LAZY | RTLD_LOCAL); - if (!libgl) - libgl = dlopen("libGL.so.3", RTLD_LAZY | RTLD_LOCAL); - - if (libgl) - return GL3W_OK; - - return GL3W_ERROR_LIBRARY_OPEN; -} - -static int open_libgl(void) -{ - int res = open_libs(); - if (res) - return res; - - if (libegl) - *(void**)(&gl_get_proc_address) = dlsym(libegl, "eglGetProcAddress"); - else if (libglx) - *(void**)(&gl_get_proc_address) = dlsym(libglx, "glXGetProcAddressARB"); - else - *(void**)(&gl_get_proc_address) = dlsym(libgl, "glXGetProcAddressARB"); - - if (!gl_get_proc_address) { - close_libgl(); - return GL3W_ERROR_LIBRARY_OPEN; - } - - return GL3W_OK; -} - -static GL3WglProc get_proc(const char* proc) -{ - GL3WglProc res = NULL; - - // Before EGL version 1.5, eglGetProcAddress doesn't support querying core - // functions and may return a dummy function if we try, so try to load the - // function from the GL library directly first. - if (libegl) - *(void**)(&res) = dlsym(libgl, proc); - - if (!res) - res = gl_get_proc_address(proc); - - if (!libegl && !res) - *(void**)(&res) = dlsym(libgl, proc); - - return res; -} -#endif - -static struct { int major, minor; } version; - -static int parse_version(void) -{ - if (!glGetIntegerv) - return GL3W_ERROR_INIT; - glGetIntegerv(GL_MAJOR_VERSION, &version.major); - glGetIntegerv(GL_MINOR_VERSION, &version.minor); - if (version.major == 0 && version.minor == 0) - { - // Query GL_VERSION in desktop GL 2.x, the string will start with "." - if (const char* gl_version = (const char*)glGetString(GL_VERSION)) - sscanf(gl_version, "%d.%d", &version.major, &version.minor); - } - if (version.major < 2) - return GL3W_ERROR_OPENGL_VERSION; - return GL3W_OK; -} - -static void load_procs(GL3WGetProcAddressProc proc); - -int imgl3wInit(void) -{ - int res = open_libgl(); - if (res) - return res; - atexit(close_libgl); - return imgl3wInit2(get_proc); -} - -int imgl3wInit2(GL3WGetProcAddressProc proc) -{ - load_procs(proc); - return parse_version(); -} - -int imgl3wIsSupported(int major, int minor) -{ - if (major < 2) - return 0; - if (version.major == major) - return version.minor >= minor; - return version.major >= major; -} - -GL3WglProc imgl3wGetProcAddress(const char *proc) { return get_proc(proc); } - -static const char *proc_names[] = { - "glActiveTexture", - "glAttachShader", - "glBindBuffer", - "glBindSampler", - "glBindTexture", - "glBindVertexArray", - "glBlendEquation", - "glBlendEquationSeparate", - "glBlendFuncSeparate", - "glBufferData", - "glBufferSubData", - "glClear", - "glClearColor", - "glCompileShader", - "glCreateProgram", - "glCreateShader", - "glDeleteBuffers", - "glDeleteProgram", - "glDeleteShader", - "glDeleteTextures", - "glDeleteVertexArrays", - "glDetachShader", - "glDisable", - "glDisableVertexAttribArray", - "glDrawElements", - "glDrawElementsBaseVertex", - "glEnable", - "glEnableVertexAttribArray", - "glFlush", - "glGenBuffers", - "glGenTextures", - "glGenVertexArrays", - "glGetAttribLocation", - "glGetError", - "glGetIntegerv", - "glGetProgramInfoLog", - "glGetProgramiv", - "glGetShaderInfoLog", - "glGetShaderiv", - "glGetString", - "glGetStringi", - "glGetUniformLocation", - "glGetVertexAttribPointerv", - "glGetVertexAttribiv", - "glIsEnabled", - "glIsProgram", - "glLinkProgram", - "glPixelStorei", - "glPolygonMode", - "glReadPixels", - "glScissor", - "glShaderSource", - "glTexImage2D", - "glTexParameteri", - "glTexSubImage2D", - "glUniform1i", - "glUniformMatrix4fv", - "glUseProgram", - "glVertexAttribPointer", - "glViewport", -}; - -GL3W_API union ImGL3WProcs imgl3wProcs; - -static void load_procs(GL3WGetProcAddressProc proc) -{ - size_t i; - for (i = 0; i < GL3W_ARRAY_SIZE(proc_names); i++) - imgl3wProcs.ptr[i] = proc(proc_names[i]); -} - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/imgui-1.92.1/backends/imgui_impl_osx.h b/libs/imgui-1.92.1/backends/imgui_impl_osx.h deleted file mode 100644 index ea2b4f4..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_osx.h +++ /dev/null @@ -1,54 +0,0 @@ -// dear imgui: Platform Backend for OSX / Cocoa -// This needs to be used along with a Renderer (e.g. OpenGL2, OpenGL3, Vulkan, Metal..) -// - Not well tested. If you want a portable application, prefer using the GLFW or SDL platform Backends on Mac. -// - Requires linking with the GameController framework ("-framework GameController"). - -// Implemented features: -// [X] Platform: Clipboard support is part of core Dear ImGui (no specific code in this backend). -// [X] Platform: Mouse support. Can discriminate Mouse/Pen. -// [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy kVK_* values are obsolete since 1.87 and not supported since 1.91.5] -// [X] Platform: Gamepad support. -// [X] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. -// [X] Platform: IME support. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#pragma once -#include "imgui.h" // IMGUI_IMPL_API -#ifndef IMGUI_DISABLE - -#ifdef __OBJC__ - -@class NSEvent; -@class NSView; - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplOSX_Init(NSView* _Nonnull view); -IMGUI_IMPL_API void ImGui_ImplOSX_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplOSX_NewFrame(NSView* _Nullable view); - -#endif - -//----------------------------------------------------------------------------- -// C++ API -//----------------------------------------------------------------------------- - -#ifdef IMGUI_IMPL_METAL_CPP_EXTENSIONS -// #include -#ifndef __OBJC__ - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplOSX_Init(void* _Nonnull view); -IMGUI_IMPL_API void ImGui_ImplOSX_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplOSX_NewFrame(void* _Nullable view); - -#endif -#endif - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_osx.mm b/libs/imgui-1.92.1/backends/imgui_impl_osx.mm deleted file mode 100644 index 06a6aff..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_osx.mm +++ /dev/null @@ -1,832 +0,0 @@ -// dear imgui: Platform Backend for OSX / Cocoa -// This needs to be used along with a Renderer (e.g. OpenGL2, OpenGL3, Vulkan, Metal..) -// - Not well tested. If you want a portable application, prefer using the GLFW or SDL platform Backends on Mac. -// - Requires linking with the GameController framework ("-framework GameController"). - -// Implemented features: -// [X] Platform: Clipboard support is part of core Dear ImGui (no specific code in this backend). -// [X] Platform: Mouse support. Can discriminate Mouse/Pen. -// [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy kVK_* values are obsolete since 1.87 and not supported since 1.91.5] -// [X] Platform: Gamepad support. -// [X] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. -// [X] Platform: IME support. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#import "imgui.h" -#ifndef IMGUI_DISABLE -#import "imgui_impl_osx.h" -#import -#import -#import -#import - -// CHANGELOG -// (minor and older changes stripped away, please see git history for details) -// 2025-06-27: Added ImGuiMouseCursor_Wait and ImGuiMouseCursor_Progress mouse cursor support. -// 2025-06-12: ImGui_ImplOSX_HandleEvent() only process event for window containing our view. (#8644) -// 2025-03-21: Fill gamepad inputs and set ImGuiBackendFlags_HasGamepad regardless of ImGuiConfigFlags_NavEnableGamepad being set. -// 2025-01-20: Removed notification observer when shutting down. (#8331) -// 2024-08-22: moved some OS/backend related function pointers from ImGuiIO to ImGuiPlatformIO: -// - io.GetClipboardTextFn -> platform_io.Platform_GetClipboardTextFn -// - io.SetClipboardTextFn -> platform_io.Platform_SetClipboardTextFn -// - io.PlatformSetImeDataFn -> platform_io.Platform_SetImeDataFn -// 2024-07-02: Update for io.SetPlatformImeDataFn() -> io.PlatformSetImeDataFn() renaming in main library. -// 2023-10-05: Inputs: Added support for extra ImGuiKey values: F13 to F20 function keys. Stopped mapping F13 into PrintScreen. -// 2023-04-09: Inputs: Added support for io.AddMouseSourceEvent() to discriminate ImGuiMouseSource_Mouse/ImGuiMouseSource_Pen. -// 2023-02-01: Fixed scroll wheel scaling for devices emitting events with hasPreciseScrollingDeltas==false (e.g. non-Apple mice). -// 2022-11-02: Fixed mouse coordinates before clicking the host window. -// 2022-10-06: Fixed mouse inputs on flipped views. -// 2022-09-26: Inputs: Renamed ImGuiKey_ModXXX introduced in 1.87 to ImGuiMod_XXX (old names still supported). -// 2022-05-03: Inputs: Removed ImGui_ImplOSX_HandleEvent() from backend API in favor of backend automatically handling event capture. -// 2022-04-27: Misc: Store backend data in a per-context struct, allowing to use this backend with multiple contexts. -// 2022-03-22: Inputs: Monitor NSKeyUp events to catch missing keyUp for key when user press Cmd + key -// 2022-02-07: Inputs: Forward keyDown/keyUp events to OS when unused by dear imgui. -// 2022-01-31: Fixed building with old Xcode versions that are missing gamepad features. -// 2022-01-26: Inputs: replaced short-lived io.AddKeyModsEvent() (added two weeks ago) with io.AddKeyEvent() using ImGuiKey_ModXXX flags. Sorry for the confusion. -// 2021-01-20: Inputs: calling new io.AddKeyAnalogEvent() for gamepad support, instead of writing directly to io.NavInputs[]. -// 2022-01-17: Inputs: calling new io.AddMousePosEvent(), io.AddMouseButtonEvent(), io.AddMouseWheelEvent() API (1.87+). -// 2022-01-12: Inputs: Added basic Platform IME support, hooking the io.SetPlatformImeDataFn() function. -// 2022-01-10: Inputs: calling new io.AddKeyEvent(), io.AddKeyModsEvent() + io.SetKeyEventNativeData() API (1.87+). Support for full ImGuiKey range. -// 2021-12-13: *BREAKING CHANGE* Add NSView parameter to ImGui_ImplOSX_Init(). Generally fix keyboard support. Using kVK_* codes for keyboard keys. -// 2021-12-13: Add game controller support. -// 2021-09-21: Use mach_absolute_time as CFAbsoluteTimeGetCurrent can jump backwards. -// 2021-08-17: Calling io.AddFocusEvent() on NSApplicationDidBecomeActiveNotification/NSApplicationDidResignActiveNotification events. -// 2021-06-23: Inputs: Added a fix for shortcuts using CTRL key instead of CMD key. -// 2021-04-19: Inputs: Added a fix for keys remaining stuck in pressed state when CMD-tabbing into different application. -// 2021-01-27: Inputs: Added a fix for mouse position not being reported when mouse buttons other than left one are down. -// 2020-10-28: Inputs: Added a fix for handling keypad-enter key. -// 2020-05-25: Inputs: Added a fix for missing trackpad clicks when done with "soft tap". -// 2019-12-05: Inputs: Added support for ImGuiMouseCursor_NotAllowed mouse cursor. -// 2019-10-11: Inputs: Fix using Backspace key. -// 2019-07-21: Re-added clipboard handlers as they are not enabled by default in core imgui.cpp (reverted 2019-05-18 change). -// 2019-05-28: Inputs: Added mouse cursor shape and visibility support. -// 2019-05-18: Misc: Removed clipboard handlers as they are now supported by core imgui.cpp. -// 2019-05-11: Inputs: Don't filter character values before calling AddInputCharacter() apart from 0xF700..0xFFFF range. -// 2018-11-30: Misc: Setting up io.BackendPlatformName so it can be displayed in the About Window. -// 2018-07-07: Initial version. - -#define APPLE_HAS_BUTTON_OPTIONS (__IPHONE_OS_VERSION_MIN_REQUIRED >= 130000 || __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500 || __TV_OS_VERSION_MIN_REQUIRED >= 130000) -#define APPLE_HAS_CONTROLLER (__IPHONE_OS_VERSION_MIN_REQUIRED >= 140000 || __MAC_OS_X_VERSION_MIN_REQUIRED >= 110000 || __TV_OS_VERSION_MIN_REQUIRED >= 140000) -#define APPLE_HAS_THUMBSTICKS (__IPHONE_OS_VERSION_MIN_REQUIRED >= 120100 || __MAC_OS_X_VERSION_MIN_REQUIRED >= 101401 || __TV_OS_VERSION_MIN_REQUIRED >= 120100) - -@class ImGuiObserver; -@class KeyEventResponder; - -// Data -struct ImGui_ImplOSX_Data -{ - CFTimeInterval Time; - NSCursor* MouseCursors[ImGuiMouseCursor_COUNT]; - bool MouseCursorHidden; - ImGuiObserver* Observer; - KeyEventResponder* KeyEventResponder; - NSTextInputContext* InputContext; - id Monitor; - NSWindow* Window; - - ImGui_ImplOSX_Data() { memset((void*)this, 0, sizeof(*this)); } -}; - -static ImGui_ImplOSX_Data* ImGui_ImplOSX_GetBackendData() { return (ImGui_ImplOSX_Data*)ImGui::GetIO().BackendPlatformUserData; } -static void ImGui_ImplOSX_DestroyBackendData() { IM_DELETE(ImGui_ImplOSX_GetBackendData()); } - -static inline CFTimeInterval GetMachAbsoluteTimeInSeconds() { return (CFTimeInterval)(double)(clock_gettime_nsec_np(CLOCK_UPTIME_RAW) / 1e9); } - -// Forward Declarations -static void ImGui_ImplOSX_AddTrackingArea(NSView* _Nonnull view); -static bool ImGui_ImplOSX_HandleEvent(NSEvent* event, NSView* view); - -// Undocumented methods for creating cursors. -@interface NSCursor() -+ (id)_windowResizeNorthWestSouthEastCursor; -+ (id)_windowResizeNorthEastSouthWestCursor; -+ (id)_windowResizeNorthSouthCursor; -+ (id)_windowResizeEastWestCursor; -+ (id)busyButClickableCursor; -@end - -/** - KeyEventResponder implements the NSTextInputClient protocol as is required by the macOS text input manager. - - The macOS text input manager is invoked by calling the interpretKeyEvents method from the keyDown method. - Keyboard events are then evaluated by the macOS input manager and valid text input is passed back via the - insertText:replacementRange method. - - This is the same approach employed by other cross-platform libraries such as SDL2: - https://github.com/spurious/SDL-mirror/blob/e17aacbd09e65a4fd1e166621e011e581fb017a8/src/video/cocoa/SDL_cocoakeyboard.m#L53 - and GLFW: - https://github.com/glfw/glfw/blob/b55a517ae0c7b5127dffa79a64f5406021bf9076/src/cocoa_window.m#L722-L723 - */ -@interface KeyEventResponder: NSView -@end - -@implementation KeyEventResponder -{ - float _posX; - float _posY; - NSRect _imeRect; -} - -#pragma mark - Public - -- (void)setImePosX:(float)posX imePosY:(float)posY -{ - _posX = posX; - _posY = posY; -} - -- (void)updateImePosWithView:(NSView *)view -{ - NSWindow* window = view.window; - if (!window) - return; - NSRect contentRect = [window contentRectForFrameRect:window.frame]; - NSRect rect = NSMakeRect(_posX, contentRect.size.height - _posY, 0, 0); - _imeRect = [window convertRectToScreen:rect]; -} - -- (void)viewDidMoveToWindow -{ - // Ensure self is a first responder to receive the input events. - [self.window makeFirstResponder:self]; -} - -- (void)keyDown:(NSEvent*)event -{ - if (!ImGui_ImplOSX_HandleEvent(event, self)) - [super keyDown:event]; - - // Call to the macOS input manager system. - [self interpretKeyEvents:@[event]]; -} - -- (void)keyUp:(NSEvent*)event -{ - if (!ImGui_ImplOSX_HandleEvent(event, self)) - [super keyUp:event]; -} - -- (void)insertText:(id)aString replacementRange:(NSRange)replacementRange -{ - ImGuiIO& io = ImGui::GetIO(); - - NSString* characters; - if ([aString isKindOfClass:[NSAttributedString class]]) - characters = [aString string]; - else - characters = (NSString*)aString; - - io.AddInputCharactersUTF8(characters.UTF8String); -} - -- (BOOL)acceptsFirstResponder -{ - return YES; -} - -- (void)doCommandBySelector:(SEL)myselector -{ -} - -- (nullable NSAttributedString*)attributedSubstringForProposedRange:(NSRange)range actualRange:(nullable NSRangePointer)actualRange -{ - return nil; -} - -- (NSUInteger)characterIndexForPoint:(NSPoint)point -{ - return 0; -} - -- (NSRect)firstRectForCharacterRange:(NSRange)range actualRange:(nullable NSRangePointer)actualRange -{ - return _imeRect; -} - -- (BOOL)hasMarkedText -{ - return NO; -} - -- (NSRange)markedRange -{ - return NSMakeRange(NSNotFound, 0); -} - -- (NSRange)selectedRange -{ - return NSMakeRange(NSNotFound, 0); -} - -- (void)setMarkedText:(nonnull id)string selectedRange:(NSRange)selectedRange replacementRange:(NSRange)replacementRange -{ -} - -- (void)unmarkText -{ -} - -- (nonnull NSArray*)validAttributesForMarkedText -{ - return @[]; -} - -@end - -@interface ImGuiObserver : NSObject - -- (void)onApplicationBecomeActive:(NSNotification*)aNotification; -- (void)onApplicationBecomeInactive:(NSNotification*)aNotification; - -@end - -@implementation ImGuiObserver - -- (void)onApplicationBecomeActive:(NSNotification*)aNotification -{ - ImGuiIO& io = ImGui::GetIO(); - io.AddFocusEvent(true); -} - -- (void)onApplicationBecomeInactive:(NSNotification*)aNotification -{ - ImGuiIO& io = ImGui::GetIO(); - io.AddFocusEvent(false); -} - -@end - -// Functions - -// Not static to allow third-party code to use that if they want to (but undocumented) -ImGuiKey ImGui_ImplOSX_KeyCodeToImGuiKey(int key_code); -ImGuiKey ImGui_ImplOSX_KeyCodeToImGuiKey(int key_code) -{ - switch (key_code) - { - case kVK_ANSI_A: return ImGuiKey_A; - case kVK_ANSI_S: return ImGuiKey_S; - case kVK_ANSI_D: return ImGuiKey_D; - case kVK_ANSI_F: return ImGuiKey_F; - case kVK_ANSI_H: return ImGuiKey_H; - case kVK_ANSI_G: return ImGuiKey_G; - case kVK_ANSI_Z: return ImGuiKey_Z; - case kVK_ANSI_X: return ImGuiKey_X; - case kVK_ANSI_C: return ImGuiKey_C; - case kVK_ANSI_V: return ImGuiKey_V; - case kVK_ANSI_B: return ImGuiKey_B; - case kVK_ANSI_Q: return ImGuiKey_Q; - case kVK_ANSI_W: return ImGuiKey_W; - case kVK_ANSI_E: return ImGuiKey_E; - case kVK_ANSI_R: return ImGuiKey_R; - case kVK_ANSI_Y: return ImGuiKey_Y; - case kVK_ANSI_T: return ImGuiKey_T; - case kVK_ANSI_1: return ImGuiKey_1; - case kVK_ANSI_2: return ImGuiKey_2; - case kVK_ANSI_3: return ImGuiKey_3; - case kVK_ANSI_4: return ImGuiKey_4; - case kVK_ANSI_6: return ImGuiKey_6; - case kVK_ANSI_5: return ImGuiKey_5; - case kVK_ANSI_Equal: return ImGuiKey_Equal; - case kVK_ANSI_9: return ImGuiKey_9; - case kVK_ANSI_7: return ImGuiKey_7; - case kVK_ANSI_Minus: return ImGuiKey_Minus; - case kVK_ANSI_8: return ImGuiKey_8; - case kVK_ANSI_0: return ImGuiKey_0; - case kVK_ANSI_RightBracket: return ImGuiKey_RightBracket; - case kVK_ANSI_O: return ImGuiKey_O; - case kVK_ANSI_U: return ImGuiKey_U; - case kVK_ANSI_LeftBracket: return ImGuiKey_LeftBracket; - case kVK_ANSI_I: return ImGuiKey_I; - case kVK_ANSI_P: return ImGuiKey_P; - case kVK_ANSI_L: return ImGuiKey_L; - case kVK_ANSI_J: return ImGuiKey_J; - case kVK_ANSI_Quote: return ImGuiKey_Apostrophe; - case kVK_ANSI_K: return ImGuiKey_K; - case kVK_ANSI_Semicolon: return ImGuiKey_Semicolon; - case kVK_ANSI_Backslash: return ImGuiKey_Backslash; - case kVK_ANSI_Comma: return ImGuiKey_Comma; - case kVK_ANSI_Slash: return ImGuiKey_Slash; - case kVK_ANSI_N: return ImGuiKey_N; - case kVK_ANSI_M: return ImGuiKey_M; - case kVK_ANSI_Period: return ImGuiKey_Period; - case kVK_ANSI_Grave: return ImGuiKey_GraveAccent; - case kVK_ANSI_KeypadDecimal: return ImGuiKey_KeypadDecimal; - case kVK_ANSI_KeypadMultiply: return ImGuiKey_KeypadMultiply; - case kVK_ANSI_KeypadPlus: return ImGuiKey_KeypadAdd; - case kVK_ANSI_KeypadClear: return ImGuiKey_NumLock; - case kVK_ANSI_KeypadDivide: return ImGuiKey_KeypadDivide; - case kVK_ANSI_KeypadEnter: return ImGuiKey_KeypadEnter; - case kVK_ANSI_KeypadMinus: return ImGuiKey_KeypadSubtract; - case kVK_ANSI_KeypadEquals: return ImGuiKey_KeypadEqual; - case kVK_ANSI_Keypad0: return ImGuiKey_Keypad0; - case kVK_ANSI_Keypad1: return ImGuiKey_Keypad1; - case kVK_ANSI_Keypad2: return ImGuiKey_Keypad2; - case kVK_ANSI_Keypad3: return ImGuiKey_Keypad3; - case kVK_ANSI_Keypad4: return ImGuiKey_Keypad4; - case kVK_ANSI_Keypad5: return ImGuiKey_Keypad5; - case kVK_ANSI_Keypad6: return ImGuiKey_Keypad6; - case kVK_ANSI_Keypad7: return ImGuiKey_Keypad7; - case kVK_ANSI_Keypad8: return ImGuiKey_Keypad8; - case kVK_ANSI_Keypad9: return ImGuiKey_Keypad9; - case kVK_Return: return ImGuiKey_Enter; - case kVK_Tab: return ImGuiKey_Tab; - case kVK_Space: return ImGuiKey_Space; - case kVK_Delete: return ImGuiKey_Backspace; - case kVK_Escape: return ImGuiKey_Escape; - case kVK_CapsLock: return ImGuiKey_CapsLock; - case kVK_Control: return ImGuiKey_LeftCtrl; - case kVK_Shift: return ImGuiKey_LeftShift; - case kVK_Option: return ImGuiKey_LeftAlt; - case kVK_Command: return ImGuiKey_LeftSuper; - case kVK_RightControl: return ImGuiKey_RightCtrl; - case kVK_RightShift: return ImGuiKey_RightShift; - case kVK_RightOption: return ImGuiKey_RightAlt; - case kVK_RightCommand: return ImGuiKey_RightSuper; -// case kVK_Function: return ImGuiKey_; -// case kVK_VolumeUp: return ImGuiKey_; -// case kVK_VolumeDown: return ImGuiKey_; -// case kVK_Mute: return ImGuiKey_; - case kVK_F1: return ImGuiKey_F1; - case kVK_F2: return ImGuiKey_F2; - case kVK_F3: return ImGuiKey_F3; - case kVK_F4: return ImGuiKey_F4; - case kVK_F5: return ImGuiKey_F5; - case kVK_F6: return ImGuiKey_F6; - case kVK_F7: return ImGuiKey_F7; - case kVK_F8: return ImGuiKey_F8; - case kVK_F9: return ImGuiKey_F9; - case kVK_F10: return ImGuiKey_F10; - case kVK_F11: return ImGuiKey_F11; - case kVK_F12: return ImGuiKey_F12; - case kVK_F13: return ImGuiKey_F13; - case kVK_F14: return ImGuiKey_F14; - case kVK_F15: return ImGuiKey_F15; - case kVK_F16: return ImGuiKey_F16; - case kVK_F17: return ImGuiKey_F17; - case kVK_F18: return ImGuiKey_F18; - case kVK_F19: return ImGuiKey_F19; - case kVK_F20: return ImGuiKey_F20; - case 0x6E: return ImGuiKey_Menu; - case kVK_Help: return ImGuiKey_Insert; - case kVK_Home: return ImGuiKey_Home; - case kVK_PageUp: return ImGuiKey_PageUp; - case kVK_ForwardDelete: return ImGuiKey_Delete; - case kVK_End: return ImGuiKey_End; - case kVK_PageDown: return ImGuiKey_PageDown; - case kVK_LeftArrow: return ImGuiKey_LeftArrow; - case kVK_RightArrow: return ImGuiKey_RightArrow; - case kVK_DownArrow: return ImGuiKey_DownArrow; - case kVK_UpArrow: return ImGuiKey_UpArrow; - default: return ImGuiKey_None; - } -} - -#ifdef IMGUI_IMPL_METAL_CPP_EXTENSIONS - -IMGUI_IMPL_API bool ImGui_ImplOSX_Init(void* _Nonnull view) { - return ImGui_ImplOSX_Init((__bridge NSView*)(view)); -} - -IMGUI_IMPL_API void ImGui_ImplOSX_NewFrame(void* _Nullable view) { - return ImGui_ImplOSX_NewFrame((__bridge NSView*)(view)); -} - -#endif - - -bool ImGui_ImplOSX_Init(NSView* view) -{ - ImGuiIO& io = ImGui::GetIO(); - ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); - IMGUI_CHECKVERSION(); - IM_ASSERT(io.BackendPlatformUserData == nullptr && "Already initialized a platform backend!"); - - // Setup backend capabilities flags - ImGui_ImplOSX_Data* bd = IM_NEW(ImGui_ImplOSX_Data)(); - io.BackendPlatformUserData = (void*)bd; - io.BackendPlatformName = "imgui_impl_osx"; - io.BackendFlags |= ImGuiBackendFlags_HasMouseCursors; // We can honor GetMouseCursor() values (optional) - //io.BackendFlags |= ImGuiBackendFlags_HasSetMousePos; // We can honor io.WantSetMousePos requests (optional, rarely used) - - bd->Observer = [ImGuiObserver new]; - bd->Window = view.window ?: NSApp.orderedWindows.firstObject; - ImGuiViewport* main_viewport = ImGui::GetMainViewport(); - main_viewport->PlatformHandle = main_viewport->PlatformHandleRaw = (__bridge_retained void*)bd->Window; - - // Load cursors. Some of them are undocumented. - bd->MouseCursorHidden = false; - bd->MouseCursors[ImGuiMouseCursor_Arrow] = [NSCursor arrowCursor]; - bd->MouseCursors[ImGuiMouseCursor_TextInput] = [NSCursor IBeamCursor]; - bd->MouseCursors[ImGuiMouseCursor_ResizeAll] = [NSCursor closedHandCursor]; - bd->MouseCursors[ImGuiMouseCursor_ResizeNS] = [NSCursor respondsToSelector:@selector(_windowResizeNorthSouthCursor)] ? [NSCursor _windowResizeNorthSouthCursor] : [NSCursor resizeUpDownCursor]; - bd->MouseCursors[ImGuiMouseCursor_ResizeEW] = [NSCursor respondsToSelector:@selector(_windowResizeEastWestCursor)] ? [NSCursor _windowResizeEastWestCursor] : [NSCursor resizeLeftRightCursor]; - bd->MouseCursors[ImGuiMouseCursor_ResizeNESW] = [NSCursor respondsToSelector:@selector(_windowResizeNorthEastSouthWestCursor)] ? [NSCursor _windowResizeNorthEastSouthWestCursor] : [NSCursor closedHandCursor]; - bd->MouseCursors[ImGuiMouseCursor_ResizeNWSE] = [NSCursor respondsToSelector:@selector(_windowResizeNorthWestSouthEastCursor)] ? [NSCursor _windowResizeNorthWestSouthEastCursor] : [NSCursor closedHandCursor]; - bd->MouseCursors[ImGuiMouseCursor_Hand] = [NSCursor pointingHandCursor]; - bd->MouseCursors[ImGuiMouseCursor_Wait] = bd->MouseCursors[ImGuiMouseCursor_Progress] = [NSCursor respondsToSelector:@selector(busyButClickableCursor)] ? [NSCursor busyButClickableCursor] : [NSCursor arrowCursor]; - bd->MouseCursors[ImGuiMouseCursor_NotAllowed] = [NSCursor operationNotAllowedCursor]; - - // Note that imgui.cpp also include default OSX clipboard handlers which can be enabled - // by adding '#define IMGUI_ENABLE_OSX_DEFAULT_CLIPBOARD_FUNCTIONS' in imconfig.h and adding '-framework ApplicationServices' to your linker command-line. - // Since we are already in ObjC land here, it is easy for us to add a clipboard handler using the NSPasteboard api. - platform_io.Platform_SetClipboardTextFn = [](ImGuiContext*, const char* str) -> void - { - NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; - [pasteboard declareTypes:[NSArray arrayWithObject:NSPasteboardTypeString] owner:nil]; - [pasteboard setString:[NSString stringWithUTF8String:str] forType:NSPasteboardTypeString]; - }; - - platform_io.Platform_GetClipboardTextFn = [](ImGuiContext*) -> const char* - { - NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; - NSString* available = [pasteboard availableTypeFromArray: [NSArray arrayWithObject:NSPasteboardTypeString]]; - if (![available isEqualToString:NSPasteboardTypeString]) - return nullptr; - - NSString* string = [pasteboard stringForType:NSPasteboardTypeString]; - if (string == nil) - return nullptr; - - const char* string_c = (const char*)[string UTF8String]; - size_t string_len = strlen(string_c); - static ImVector s_clipboard; - s_clipboard.resize((int)string_len + 1); - strcpy(s_clipboard.Data, string_c); - return s_clipboard.Data; - }; - - [[NSNotificationCenter defaultCenter] addObserver:bd->Observer - selector:@selector(onApplicationBecomeActive:) - name:NSApplicationDidBecomeActiveNotification - object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:bd->Observer - selector:@selector(onApplicationBecomeInactive:) - name:NSApplicationDidResignActiveNotification - object:nil]; - - // Add the NSTextInputClient to the view hierarchy, - // to receive keyboard events and translate them to input text. - bd->KeyEventResponder = [[KeyEventResponder alloc] initWithFrame:NSZeroRect]; - bd->InputContext = [[NSTextInputContext alloc] initWithClient:bd->KeyEventResponder]; - [view addSubview:bd->KeyEventResponder]; - ImGui_ImplOSX_AddTrackingArea(view); - - platform_io.Platform_SetImeDataFn = [](ImGuiContext*, ImGuiViewport*, ImGuiPlatformImeData* data) -> void - { - ImGui_ImplOSX_Data* bd = ImGui_ImplOSX_GetBackendData(); - if (data->WantVisible) - { - [bd->InputContext activate]; - } - else - { - [bd->InputContext discardMarkedText]; - [bd->InputContext invalidateCharacterCoordinates]; - [bd->InputContext deactivate]; - } - [bd->KeyEventResponder setImePosX:data->InputPos.x imePosY:data->InputPos.y + data->InputLineHeight]; - }; - - return true; -} - -void ImGui_ImplOSX_Shutdown() -{ - ImGui_ImplOSX_Data* bd = ImGui_ImplOSX_GetBackendData(); - IM_ASSERT(bd != nullptr && "No platform backend to shutdown, or already shutdown?"); - - [[NSNotificationCenter defaultCenter] removeObserver:bd->Observer]; - bd->Observer = nullptr; - if (bd->Monitor != nullptr) - { - [NSEvent removeMonitor:bd->Monitor]; - bd->Monitor = nullptr; - } - - ImGui_ImplOSX_DestroyBackendData(); - - ImGuiIO& io = ImGui::GetIO(); - io.BackendPlatformName = nullptr; - io.BackendPlatformUserData = nullptr; - io.BackendFlags &= ~(ImGuiBackendFlags_HasMouseCursors | ImGuiBackendFlags_HasGamepad); -} - -static void ImGui_ImplOSX_UpdateMouseCursor() -{ - ImGui_ImplOSX_Data* bd = ImGui_ImplOSX_GetBackendData(); - ImGuiIO& io = ImGui::GetIO(); - if (io.ConfigFlags & ImGuiConfigFlags_NoMouseCursorChange) - return; - - ImGuiMouseCursor imgui_cursor = ImGui::GetMouseCursor(); - if (io.MouseDrawCursor || imgui_cursor == ImGuiMouseCursor_None) - { - // Hide OS mouse cursor if imgui is drawing it or if it wants no cursor - if (!bd->MouseCursorHidden) - { - bd->MouseCursorHidden = true; - [NSCursor hide]; - } - } - else - { - NSCursor* desired = bd->MouseCursors[imgui_cursor] ?: bd->MouseCursors[ImGuiMouseCursor_Arrow]; - // -[NSCursor set] generates measurable overhead if called unconditionally. - if (desired != NSCursor.currentCursor) - { - [desired set]; - } - if (bd->MouseCursorHidden) - { - bd->MouseCursorHidden = false; - [NSCursor unhide]; - } - } -} - -static void ImGui_ImplOSX_UpdateGamepads() -{ - ImGuiIO& io = ImGui::GetIO(); - -#if APPLE_HAS_CONTROLLER - GCController* controller = GCController.current; -#else - GCController* controller = GCController.controllers.firstObject; -#endif - if (controller == nil || controller.extendedGamepad == nil) - { - io.BackendFlags &= ~ImGuiBackendFlags_HasGamepad; - return; - } - - GCExtendedGamepad* gp = controller.extendedGamepad; - - // Update gamepad inputs - #define IM_SATURATE(V) (V < 0.0f ? 0.0f : V > 1.0f ? 1.0f : V) - #define MAP_BUTTON(KEY_NO, BUTTON_NAME) { io.AddKeyEvent(KEY_NO, gp.BUTTON_NAME.isPressed); } - #define MAP_ANALOG(KEY_NO, AXIS_NAME, V0, V1) { float vn = (float)(gp.AXIS_NAME.value - V0) / (float)(V1 - V0); vn = IM_SATURATE(vn); io.AddKeyAnalogEvent(KEY_NO, vn > 0.1f, vn); } - const float thumb_dead_zone = 0.0f; - -#if APPLE_HAS_BUTTON_OPTIONS - MAP_BUTTON(ImGuiKey_GamepadBack, buttonOptions); -#endif - MAP_BUTTON(ImGuiKey_GamepadFaceLeft, buttonX); // Xbox X, PS Square - MAP_BUTTON(ImGuiKey_GamepadFaceRight, buttonB); // Xbox B, PS Circle - MAP_BUTTON(ImGuiKey_GamepadFaceUp, buttonY); // Xbox Y, PS Triangle - MAP_BUTTON(ImGuiKey_GamepadFaceDown, buttonA); // Xbox A, PS Cross - MAP_BUTTON(ImGuiKey_GamepadDpadLeft, dpad.left); - MAP_BUTTON(ImGuiKey_GamepadDpadRight, dpad.right); - MAP_BUTTON(ImGuiKey_GamepadDpadUp, dpad.up); - MAP_BUTTON(ImGuiKey_GamepadDpadDown, dpad.down); - MAP_ANALOG(ImGuiKey_GamepadL1, leftShoulder, 0.0f, 1.0f); - MAP_ANALOG(ImGuiKey_GamepadR1, rightShoulder, 0.0f, 1.0f); - MAP_ANALOG(ImGuiKey_GamepadL2, leftTrigger, 0.0f, 1.0f); - MAP_ANALOG(ImGuiKey_GamepadR2, rightTrigger, 0.0f, 1.0f); -#if APPLE_HAS_THUMBSTICKS - MAP_BUTTON(ImGuiKey_GamepadL3, leftThumbstickButton); - MAP_BUTTON(ImGuiKey_GamepadR3, rightThumbstickButton); -#endif - MAP_ANALOG(ImGuiKey_GamepadLStickLeft, leftThumbstick.xAxis, -thumb_dead_zone, -1.0f); - MAP_ANALOG(ImGuiKey_GamepadLStickRight, leftThumbstick.xAxis, +thumb_dead_zone, +1.0f); - MAP_ANALOG(ImGuiKey_GamepadLStickUp, leftThumbstick.yAxis, +thumb_dead_zone, +1.0f); - MAP_ANALOG(ImGuiKey_GamepadLStickDown, leftThumbstick.yAxis, -thumb_dead_zone, -1.0f); - MAP_ANALOG(ImGuiKey_GamepadRStickLeft, rightThumbstick.xAxis, -thumb_dead_zone, -1.0f); - MAP_ANALOG(ImGuiKey_GamepadRStickRight, rightThumbstick.xAxis, +thumb_dead_zone, +1.0f); - MAP_ANALOG(ImGuiKey_GamepadRStickUp, rightThumbstick.yAxis, +thumb_dead_zone, +1.0f); - MAP_ANALOG(ImGuiKey_GamepadRStickDown, rightThumbstick.yAxis, -thumb_dead_zone, -1.0f); - #undef MAP_BUTTON - #undef MAP_ANALOG - - io.BackendFlags |= ImGuiBackendFlags_HasGamepad; -} - -static void ImGui_ImplOSX_UpdateImePosWithView(NSView* view) -{ - ImGui_ImplOSX_Data* bd = ImGui_ImplOSX_GetBackendData(); - ImGuiIO& io = ImGui::GetIO(); - if (io.WantTextInput) - [bd->KeyEventResponder updateImePosWithView:view]; -} - -void ImGui_ImplOSX_NewFrame(NSView* view) -{ - ImGui_ImplOSX_Data* bd = ImGui_ImplOSX_GetBackendData(); - IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplOSX_Init()?"); - ImGuiIO& io = ImGui::GetIO(); - - // Setup display size - if (view) - { - const float dpi = (float)[view.window backingScaleFactor]; - io.DisplaySize = ImVec2((float)view.bounds.size.width, (float)view.bounds.size.height); - io.DisplayFramebufferScale = ImVec2(dpi, dpi); - } - - // Setup time step - if (bd->Time == 0.0) - bd->Time = GetMachAbsoluteTimeInSeconds(); - - double current_time = GetMachAbsoluteTimeInSeconds(); - io.DeltaTime = (float)(current_time - bd->Time); - bd->Time = current_time; - - ImGui_ImplOSX_UpdateMouseCursor(); - ImGui_ImplOSX_UpdateGamepads(); - ImGui_ImplOSX_UpdateImePosWithView(view); -} - -// Must only be called for a mouse event, otherwise an exception occurs -// (Note that NSEventTypeScrollWheel is considered "other input". Oddly enough an exception does not occur with it, but the value will sometimes be wrong!) -static ImGuiMouseSource GetMouseSource(NSEvent* event) -{ - switch (event.subtype) - { - case NSEventSubtypeTabletPoint: - return ImGuiMouseSource_Pen; - // macOS considers input from relative touch devices (like the trackpad or Apple Magic Mouse) to be touch input. - // This doesn't really make sense for Dear ImGui, which expects absolute touch devices only. - // There does not seem to be a simple way to disambiguate things here so we consider NSEventSubtypeTouch events to always come from mice. - // See https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/EventOverview/HandlingTouchEvents/HandlingTouchEvents.html#//apple_ref/doc/uid/10000060i-CH13-SW24 - //case NSEventSubtypeTouch: - // return ImGuiMouseSource_TouchScreen; - case NSEventSubtypeMouseEvent: - default: - return ImGuiMouseSource_Mouse; - } -} - -static bool ImGui_ImplOSX_HandleEvent(NSEvent* event, NSView* view) -{ - // Only process events from the window containing ImGui view - if (event.window != view.window) - return false; - ImGuiIO& io = ImGui::GetIO(); - - if (event.type == NSEventTypeLeftMouseDown || event.type == NSEventTypeRightMouseDown || event.type == NSEventTypeOtherMouseDown) - { - int button = (int)[event buttonNumber]; - if (button >= 0 && button < ImGuiMouseButton_COUNT) - { - io.AddMouseSourceEvent(GetMouseSource(event)); - io.AddMouseButtonEvent(button, true); - } - return io.WantCaptureMouse; - } - - if (event.type == NSEventTypeLeftMouseUp || event.type == NSEventTypeRightMouseUp || event.type == NSEventTypeOtherMouseUp) - { - int button = (int)[event buttonNumber]; - if (button >= 0 && button < ImGuiMouseButton_COUNT) - { - io.AddMouseSourceEvent(GetMouseSource(event)); - io.AddMouseButtonEvent(button, false); - } - return io.WantCaptureMouse; - } - - if (event.type == NSEventTypeMouseMoved || event.type == NSEventTypeLeftMouseDragged || event.type == NSEventTypeRightMouseDragged || event.type == NSEventTypeOtherMouseDragged) - { - NSPoint mousePoint = event.locationInWindow; - if (event.window == nil) - mousePoint = [[view window] convertPointFromScreen:mousePoint]; - mousePoint = [view convertPoint:mousePoint fromView:nil]; - if ([view isFlipped]) - mousePoint = NSMakePoint(mousePoint.x, mousePoint.y); - else - mousePoint = NSMakePoint(mousePoint.x, view.bounds.size.height - mousePoint.y); - io.AddMouseSourceEvent(GetMouseSource(event)); - io.AddMousePosEvent((float)mousePoint.x, (float)mousePoint.y); - return io.WantCaptureMouse; - } - - if (event.type == NSEventTypeScrollWheel) - { - // Ignore canceled events. - // - // From macOS 12.1, scrolling with two fingers and then decelerating - // by tapping two fingers results in two events appearing: - // - // 1. A scroll wheel NSEvent, with a phase == NSEventPhaseMayBegin, when the user taps - // two fingers to decelerate or stop the scroll events. - // - // 2. A scroll wheel NSEvent, with a phase == NSEventPhaseCancelled, when the user releases the - // two-finger tap. It is this event that sometimes contains large values for scrollingDeltaX and - // scrollingDeltaY. When these are added to the current x and y positions of the scrolling view, - // it appears to jump up or down. It can be observed in Preview, various JetBrains IDEs and here. - if (event.phase == NSEventPhaseCancelled) - return false; - - double wheel_dx = 0.0; - double wheel_dy = 0.0; - - #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 - if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_6) - { - wheel_dx = [event scrollingDeltaX]; - wheel_dy = [event scrollingDeltaY]; - if ([event hasPreciseScrollingDeltas]) - { - wheel_dx *= 0.01; - wheel_dy *= 0.01; - } - } - else - #endif // MAC_OS_X_VERSION_MAX_ALLOWED - { - wheel_dx = [event deltaX] * 0.1; - wheel_dy = [event deltaY] * 0.1; - } - if (wheel_dx != 0.0 || wheel_dy != 0.0) - io.AddMouseWheelEvent((float)wheel_dx, (float)wheel_dy); - - return io.WantCaptureMouse; - } - - if (event.type == NSEventTypeKeyDown || event.type == NSEventTypeKeyUp) - { - if ([event isARepeat]) - return io.WantCaptureKeyboard; - - int key_code = (int)[event keyCode]; - ImGuiKey key = ImGui_ImplOSX_KeyCodeToImGuiKey(key_code); - io.AddKeyEvent(key, event.type == NSEventTypeKeyDown); - io.SetKeyEventNativeData(key, key_code, -1); // To support legacy indexing (<1.87 user code) - - return io.WantCaptureKeyboard; - } - - if (event.type == NSEventTypeFlagsChanged) - { - unsigned short key_code = [event keyCode]; - NSEventModifierFlags modifier_flags = [event modifierFlags]; - - io.AddKeyEvent(ImGuiMod_Shift, (modifier_flags & NSEventModifierFlagShift) != 0); - io.AddKeyEvent(ImGuiMod_Ctrl, (modifier_flags & NSEventModifierFlagControl) != 0); - io.AddKeyEvent(ImGuiMod_Alt, (modifier_flags & NSEventModifierFlagOption) != 0); - io.AddKeyEvent(ImGuiMod_Super, (modifier_flags & NSEventModifierFlagCommand) != 0); - - ImGuiKey key = ImGui_ImplOSX_KeyCodeToImGuiKey(key_code); - if (key != ImGuiKey_None) - { - // macOS does not generate down/up event for modifiers. We're trying - // to use hardware dependent masks to extract that information. - // 'imgui_mask' is left as a fallback. - NSEventModifierFlags mask = 0; - switch (key) - { - case ImGuiKey_LeftCtrl: mask = 0x0001; break; - case ImGuiKey_RightCtrl: mask = 0x2000; break; - case ImGuiKey_LeftShift: mask = 0x0002; break; - case ImGuiKey_RightShift: mask = 0x0004; break; - case ImGuiKey_LeftSuper: mask = 0x0008; break; - case ImGuiKey_RightSuper: mask = 0x0010; break; - case ImGuiKey_LeftAlt: mask = 0x0020; break; - case ImGuiKey_RightAlt: mask = 0x0040; break; - default: - return io.WantCaptureKeyboard; - } - io.AddKeyEvent(key, (modifier_flags & mask) != 0); - io.SetKeyEventNativeData(key, key_code, -1); // To support legacy indexing (<1.87 user code) - } - - return io.WantCaptureKeyboard; - } - - return false; -} - -static void ImGui_ImplOSX_AddTrackingArea(NSView* _Nonnull view) -{ - // If we want to receive key events, we either need to be in the responder chain of the key view, - // or else we can install a local monitor. The consequence of this heavy-handed approach is that - // we receive events for all controls, not just Dear ImGui widgets. If we had native controls in our - // window, we'd want to be much more careful than just ingesting the complete event stream. - // To match the behavior of other backends, we pass every event down to the OS. - ImGui_ImplOSX_Data* bd = ImGui_ImplOSX_GetBackendData(); - if (bd->Monitor) - return; - NSEventMask eventMask = 0; - eventMask |= NSEventMaskMouseMoved | NSEventMaskScrollWheel; - eventMask |= NSEventMaskLeftMouseDown | NSEventMaskLeftMouseUp | NSEventMaskLeftMouseDragged; - eventMask |= NSEventMaskRightMouseDown | NSEventMaskRightMouseUp | NSEventMaskRightMouseDragged; - eventMask |= NSEventMaskOtherMouseDown | NSEventMaskOtherMouseUp | NSEventMaskOtherMouseDragged; - eventMask |= NSEventMaskKeyDown | NSEventMaskKeyUp | NSEventMaskFlagsChanged; - bd->Monitor = [NSEvent addLocalMonitorForEventsMatchingMask:eventMask - handler:^NSEvent* _Nullable(NSEvent* event) - { - ImGui_ImplOSX_HandleEvent(event, view); - return event; - }]; -} - -//----------------------------------------------------------------------------- - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_sdl2.cpp b/libs/imgui-1.92.1/backends/imgui_impl_sdl2.cpp deleted file mode 100644 index 291edb8..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_sdl2.cpp +++ /dev/null @@ -1,894 +0,0 @@ -// dear imgui: Platform Backend for SDL2 -// This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..) -// (Info: SDL2 is a cross-platform general purpose library for handling windows, inputs, graphics context creation, etc.) -// (Prefer SDL 2.0.5+ for full feature support.) - -// Implemented features: -// [X] Platform: Clipboard support. -// [X] Platform: Mouse support. Can discriminate Mouse/TouchScreen. -// [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy SDL_SCANCODE_* values are obsolete since 1.87 and not supported since 1.91.5] -// [X] Platform: Gamepad support. -// [X] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. -// [X] Platform: Basic IME support. App needs to call 'SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1");' before SDL_CreateWindow()!. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// CHANGELOG -// (minor and older changes stripped away, please see git history for details) -// 2025-07-08: Made ImGui_ImplSDL2_GetContentScaleForWindow(), ImGui_ImplSDL2_GetContentScaleForDisplay() helpers return 1.0f on Emscripten and Android platforms, matching macOS logic. (#8742, #8733) -// 2025-06-11: Added ImGui_ImplSDL2_GetContentScaleForWindow(SDL_Window* window) and ImGui_ImplSDL2_GetContentScaleForDisplay(int display_index) helper to facilitate making DPI-aware apps. -// 2025-04-09: Don't attempt to call SDL_CaptureMouse() on drivers where we don't call SDL_GetGlobalMouseState(). (#8561) -// 2025-03-21: Fill gamepad inputs and set ImGuiBackendFlags_HasGamepad regardless of ImGuiConfigFlags_NavEnableGamepad being set. -// 2025-03-10: When dealing with OEM keys, use scancodes instead of translated keycodes to choose ImGuiKey values. (#7136, #7201, #7206, #7306, #7670, #7672, #8468) -// 2025-02-26: Only start SDL_CaptureMouse() when mouse is being dragged, to mitigate issues with e.g.Linux debuggers not claiming capture back. (#6410, #3650) -// 2025-02-24: Avoid calling SDL_GetGlobalMouseState() when mouse is in relative mode. -// 2025-02-18: Added ImGuiMouseCursor_Wait and ImGuiMouseCursor_Progress mouse cursor support. -// 2025-02-10: Using SDL_OpenURL() in platform_io.Platform_OpenInShellFn handler. -// 2025-01-20: Made ImGui_ImplSDL2_SetGamepadMode(ImGui_ImplSDL2_GamepadMode_Manual) accept an empty array. -// 2024-10-24: Emscripten: from SDL 2.30.9, SDL_EVENT_MOUSE_WHEEL event doesn't require dividing by 100.0f. -// 2024-09-09: use SDL_Vulkan_GetDrawableSize() when available. (#7967, #3190) -// 2024-08-22: moved some OS/backend related function pointers from ImGuiIO to ImGuiPlatformIO: -// - io.GetClipboardTextFn -> platform_io.Platform_GetClipboardTextFn -// - io.SetClipboardTextFn -> platform_io.Platform_SetClipboardTextFn -// - io.PlatformOpenInShellFn -> platform_io.Platform_OpenInShellFn -// - io.PlatformSetImeDataFn -> platform_io.Platform_SetImeDataFn -// 2024-08-19: Storing SDL's Uint32 WindowID inside ImGuiViewport::PlatformHandle instead of SDL_Window*. -// 2024-08-19: ImGui_ImplSDL2_ProcessEvent() now ignores events intended for other SDL windows. (#7853) -// 2024-07-02: Emscripten: Added io.PlatformOpenInShellFn() handler for Emscripten versions. -// 2024-07-02: Update for io.SetPlatformImeDataFn() -> io.PlatformSetImeDataFn() renaming in main library. -// 2024-02-14: Inputs: Handle gamepad disconnection. Added ImGui_ImplSDL2_SetGamepadMode(). -// 2023-10-05: Inputs: Added support for extra ImGuiKey values: F13 to F24 function keys, app back/forward keys. -// 2023-04-06: Inputs: Avoid calling SDL_StartTextInput()/SDL_StopTextInput() as they don't only pertain to IME. It's unclear exactly what their relation is to IME. (#6306) -// 2023-04-04: Inputs: Added support for io.AddMouseSourceEvent() to discriminate ImGuiMouseSource_Mouse/ImGuiMouseSource_TouchScreen. (#2702) -// 2023-02-23: Accept SDL_GetPerformanceCounter() not returning a monotonically increasing value. (#6189, #6114, #3644) -// 2023-02-07: Implement IME handler (io.SetPlatformImeDataFn will call SDL_SetTextInputRect()/SDL_StartTextInput()). -// 2023-02-07: *BREAKING CHANGE* Renamed this backend file from imgui_impl_sdl.cpp/.h to imgui_impl_sdl2.cpp/.h in prevision for the future release of SDL3. -// 2023-02-02: Avoid calling SDL_SetCursor() when cursor has not changed, as the function is surprisingly costly on Mac with latest SDL (may be fixed in next SDL version). -// 2023-02-02: Added support for SDL 2.0.18+ preciseX/preciseY mouse wheel data for smooth scrolling + Scaling X value on Emscripten (bug?). (#4019, #6096) -// 2023-02-02: Removed SDL_MOUSEWHEEL value clamping, as values seem correct in latest Emscripten. (#4019) -// 2023-02-01: Flipping SDL_MOUSEWHEEL 'wheel.x' value to match other backends and offer consistent horizontal scrolling direction. (#4019, #6096, #1463) -// 2022-10-11: Using 'nullptr' instead of 'NULL' as per our switch to C++11. -// 2022-09-26: Inputs: Disable SDL 2.0.22 new "auto capture" (SDL_HINT_MOUSE_AUTO_CAPTURE) which prevents drag and drop across windows for multi-viewport support + don't capture when drag and dropping. (#5710) -// 2022-09-26: Inputs: Renamed ImGuiKey_ModXXX introduced in 1.87 to ImGuiMod_XXX (old names still supported). -// 2022-03-22: Inputs: Fix mouse position issues when dragging outside of boundaries. SDL_CaptureMouse() erroneously still gives out LEAVE events when hovering OS decorations. -// 2022-03-22: Inputs: Added support for extra mouse buttons (SDL_BUTTON_X1/SDL_BUTTON_X2). -// 2022-02-04: Added SDL_Renderer* parameter to ImGui_ImplSDL2_InitForSDLRenderer(), so we can use SDL_GetRendererOutputSize() instead of SDL_GL_GetDrawableSize() when bound to a SDL_Renderer. -// 2022-01-26: Inputs: replaced short-lived io.AddKeyModsEvent() (added two weeks ago) with io.AddKeyEvent() using ImGuiKey_ModXXX flags. Sorry for the confusion. -// 2021-01-20: Inputs: calling new io.AddKeyAnalogEvent() for gamepad support, instead of writing directly to io.NavInputs[]. -// 2022-01-17: Inputs: calling new io.AddMousePosEvent(), io.AddMouseButtonEvent(), io.AddMouseWheelEvent() API (1.87+). -// 2022-01-17: Inputs: always update key mods next and before key event (not in NewFrame) to fix input queue with very low framerates. -// 2022-01-12: Update mouse inputs using SDL_MOUSEMOTION/SDL_WINDOWEVENT_LEAVE + fallback to provide it when focused but not hovered/captured. More standard and will allow us to pass it to future input queue API. -// 2022-01-12: Maintain our own copy of MouseButtonsDown mask instead of using ImGui::IsAnyMouseDown() which will be obsoleted. -// 2022-01-10: Inputs: calling new io.AddKeyEvent(), io.AddKeyModsEvent() + io.SetKeyEventNativeData() API (1.87+). Support for full ImGuiKey range. -// 2021-08-17: Calling io.AddFocusEvent() on SDL_WINDOWEVENT_FOCUS_GAINED/SDL_WINDOWEVENT_FOCUS_LOST. -// 2021-07-29: Inputs: MousePos is correctly reported when the host platform window is hovered but not focused (using SDL_GetMouseFocus() + SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH, requires SDL 2.0.5+) -// 2021-06-29: *BREAKING CHANGE* Removed 'SDL_Window* window' parameter to ImGui_ImplSDL2_NewFrame() which was unnecessary. -// 2021-06-29: Reorganized backend to pull data from a single structure to facilitate usage with multiple-contexts (all g_XXXX access changed to bd->XXXX). -// 2021-03-22: Rework global mouse pos availability check listing supported platforms explicitly, effectively fixing mouse access on Raspberry Pi. (#2837, #3950) -// 2020-05-25: Misc: Report a zero display-size when window is minimized, to be consistent with other backends. -// 2020-02-20: Inputs: Fixed mapping for ImGuiKey_KeyPadEnter (using SDL_SCANCODE_KP_ENTER instead of SDL_SCANCODE_RETURN2). -// 2019-12-17: Inputs: On Wayland, use SDL_GetMouseState (because there is no global mouse state). -// 2019-12-05: Inputs: Added support for ImGuiMouseCursor_NotAllowed mouse cursor. -// 2019-07-21: Inputs: Added mapping for ImGuiKey_KeyPadEnter. -// 2019-04-23: Inputs: Added support for SDL_GameController (if ImGuiConfigFlags_NavEnableGamepad is set by user application). -// 2019-03-12: Misc: Preserve DisplayFramebufferScale when main window is minimized. -// 2018-12-21: Inputs: Workaround for Android/iOS which don't seem to handle focus related calls. -// 2018-11-30: Misc: Setting up io.BackendPlatformName so it can be displayed in the About Window. -// 2018-11-14: Changed the signature of ImGui_ImplSDL2_ProcessEvent() to take a 'const SDL_Event*'. -// 2018-08-01: Inputs: Workaround for Emscripten which doesn't seem to handle focus related calls. -// 2018-06-29: Inputs: Added support for the ImGuiMouseCursor_Hand cursor. -// 2018-06-08: Misc: Extracted imgui_impl_sdl.cpp/.h away from the old combined SDL2+OpenGL/Vulkan examples. -// 2018-06-08: Misc: ImGui_ImplSDL2_InitForOpenGL() now takes a SDL_GLContext parameter. -// 2018-05-09: Misc: Fixed clipboard paste memory leak (we didn't call SDL_FreeMemory on the data returned by SDL_GetClipboardText). -// 2018-03-20: Misc: Setup io.BackendFlags ImGuiBackendFlags_HasMouseCursors flag + honor ImGuiConfigFlags_NoMouseCursorChange flag. -// 2018-02-16: Inputs: Added support for mouse cursors, honoring ImGui::GetMouseCursor() value. -// 2018-02-06: Misc: Removed call to ImGui::Shutdown() which is not available from 1.60 WIP, user needs to call CreateContext/DestroyContext themselves. -// 2018-02-06: Inputs: Added mapping for ImGuiKey_Space. -// 2018-02-05: Misc: Using SDL_GetPerformanceCounter() instead of SDL_GetTicks() to be able to handle very high framerate (1000+ FPS). -// 2018-02-05: Inputs: Keyboard mapping is using scancodes everywhere instead of a confusing mixture of keycodes and scancodes. -// 2018-01-20: Inputs: Added Horizontal Mouse Wheel support. -// 2018-01-19: Inputs: When available (SDL 2.0.4+) using SDL_CaptureMouse() to retrieve coordinates outside of client area when dragging. Otherwise (SDL 2.0.3 and before) testing for SDL_WINDOW_INPUT_FOCUS instead of SDL_WINDOW_MOUSE_FOCUS. -// 2018-01-18: Inputs: Added mapping for ImGuiKey_Insert. -// 2017-08-25: Inputs: MousePos set to -FLT_MAX,-FLT_MAX when mouse is unavailable/missing (instead of -1,-1). -// 2016-10-15: Misc: Added a void* user_data parameter to Clipboard function handlers. - -#include "imgui.h" -#ifndef IMGUI_DISABLE -#include "imgui_impl_sdl2.h" - -// Clang warnings with -Weverything -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wold-style-cast" // warning: use of old-style cast -#pragma clang diagnostic ignored "-Wimplicit-int-float-conversion" // warning: implicit conversion from 'xxx' to 'float' may lose precision -#endif - -// SDL -#include -#include -#include // for snprintf() -#ifdef __APPLE__ -#include -#endif -#ifdef __EMSCRIPTEN__ -#include -#endif -#undef Status // X11 headers are leaking this. - -#if SDL_VERSION_ATLEAST(2,0,4) && !defined(__EMSCRIPTEN__) && !defined(__ANDROID__) && !(defined(__APPLE__) && TARGET_OS_IOS) && !defined(__amigaos4__) -#define SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE 1 -#else -#define SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE 0 -#endif -#define SDL_HAS_PER_MONITOR_DPI SDL_VERSION_ATLEAST(2,0,4) -#define SDL_HAS_VULKAN SDL_VERSION_ATLEAST(2,0,6) -#define SDL_HAS_OPEN_URL SDL_VERSION_ATLEAST(2,0,14) -#if SDL_HAS_VULKAN -#include -#endif - -// SDL Data -struct ImGui_ImplSDL2_Data -{ - SDL_Window* Window; - Uint32 WindowID; - SDL_Renderer* Renderer; - Uint64 Time; - char* ClipboardTextData; - char BackendPlatformName[48]; - - // Mouse handling - Uint32 MouseWindowID; - int MouseButtonsDown; - SDL_Cursor* MouseCursors[ImGuiMouseCursor_COUNT]; - SDL_Cursor* MouseLastCursor; - int MouseLastLeaveFrame; - bool MouseCanUseGlobalState; - bool MouseCanUseCapture; - - // Gamepad handling - ImVector Gamepads; - ImGui_ImplSDL2_GamepadMode GamepadMode; - bool WantUpdateGamepadsList; - - ImGui_ImplSDL2_Data() { memset((void*)this, 0, sizeof(*this)); } -}; - -// Backend data stored in io.BackendPlatformUserData to allow support for multiple Dear ImGui contexts -// It is STRONGLY preferred that you use docking branch with multi-viewports (== single Dear ImGui context + multiple windows) instead of multiple Dear ImGui contexts. -// FIXME: multi-context support is not well tested and probably dysfunctional in this backend. -// FIXME: some shared resources (mouse cursor shape, gamepad) are mishandled when using multi-context. -static ImGui_ImplSDL2_Data* ImGui_ImplSDL2_GetBackendData() -{ - return ImGui::GetCurrentContext() ? (ImGui_ImplSDL2_Data*)ImGui::GetIO().BackendPlatformUserData : nullptr; -} - -// Functions -static const char* ImGui_ImplSDL2_GetClipboardText(ImGuiContext*) -{ - ImGui_ImplSDL2_Data* bd = ImGui_ImplSDL2_GetBackendData(); - if (bd->ClipboardTextData) - SDL_free(bd->ClipboardTextData); - bd->ClipboardTextData = SDL_GetClipboardText(); - return bd->ClipboardTextData; -} - -static void ImGui_ImplSDL2_SetClipboardText(ImGuiContext*, const char* text) -{ - SDL_SetClipboardText(text); -} - -// Note: native IME will only display if user calls SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1") _before_ SDL_CreateWindow(). -static void ImGui_ImplSDL2_PlatformSetImeData(ImGuiContext*, ImGuiViewport*, ImGuiPlatformImeData* data) -{ - if (data->WantVisible) - { - SDL_Rect r; - r.x = (int)data->InputPos.x; - r.y = (int)data->InputPos.y; - r.w = 1; - r.h = (int)data->InputLineHeight; - SDL_SetTextInputRect(&r); - } -} - -// Not static to allow third-party code to use that if they want to (but undocumented) -ImGuiKey ImGui_ImplSDL2_KeyEventToImGuiKey(SDL_Keycode keycode, SDL_Scancode scancode); -ImGuiKey ImGui_ImplSDL2_KeyEventToImGuiKey(SDL_Keycode keycode, SDL_Scancode scancode) -{ - switch (keycode) - { - case SDLK_TAB: return ImGuiKey_Tab; - case SDLK_LEFT: return ImGuiKey_LeftArrow; - case SDLK_RIGHT: return ImGuiKey_RightArrow; - case SDLK_UP: return ImGuiKey_UpArrow; - case SDLK_DOWN: return ImGuiKey_DownArrow; - case SDLK_PAGEUP: return ImGuiKey_PageUp; - case SDLK_PAGEDOWN: return ImGuiKey_PageDown; - case SDLK_HOME: return ImGuiKey_Home; - case SDLK_END: return ImGuiKey_End; - case SDLK_INSERT: return ImGuiKey_Insert; - case SDLK_DELETE: return ImGuiKey_Delete; - case SDLK_BACKSPACE: return ImGuiKey_Backspace; - case SDLK_SPACE: return ImGuiKey_Space; - case SDLK_RETURN: return ImGuiKey_Enter; - case SDLK_ESCAPE: return ImGuiKey_Escape; - //case SDLK_QUOTE: return ImGuiKey_Apostrophe; - case SDLK_COMMA: return ImGuiKey_Comma; - //case SDLK_MINUS: return ImGuiKey_Minus; - case SDLK_PERIOD: return ImGuiKey_Period; - //case SDLK_SLASH: return ImGuiKey_Slash; - case SDLK_SEMICOLON: return ImGuiKey_Semicolon; - //case SDLK_EQUALS: return ImGuiKey_Equal; - //case SDLK_LEFTBRACKET: return ImGuiKey_LeftBracket; - //case SDLK_BACKSLASH: return ImGuiKey_Backslash; - //case SDLK_RIGHTBRACKET: return ImGuiKey_RightBracket; - //case SDLK_BACKQUOTE: return ImGuiKey_GraveAccent; - case SDLK_CAPSLOCK: return ImGuiKey_CapsLock; - case SDLK_SCROLLLOCK: return ImGuiKey_ScrollLock; - case SDLK_NUMLOCKCLEAR: return ImGuiKey_NumLock; - case SDLK_PRINTSCREEN: return ImGuiKey_PrintScreen; - case SDLK_PAUSE: return ImGuiKey_Pause; - case SDLK_KP_0: return ImGuiKey_Keypad0; - case SDLK_KP_1: return ImGuiKey_Keypad1; - case SDLK_KP_2: return ImGuiKey_Keypad2; - case SDLK_KP_3: return ImGuiKey_Keypad3; - case SDLK_KP_4: return ImGuiKey_Keypad4; - case SDLK_KP_5: return ImGuiKey_Keypad5; - case SDLK_KP_6: return ImGuiKey_Keypad6; - case SDLK_KP_7: return ImGuiKey_Keypad7; - case SDLK_KP_8: return ImGuiKey_Keypad8; - case SDLK_KP_9: return ImGuiKey_Keypad9; - case SDLK_KP_PERIOD: return ImGuiKey_KeypadDecimal; - case SDLK_KP_DIVIDE: return ImGuiKey_KeypadDivide; - case SDLK_KP_MULTIPLY: return ImGuiKey_KeypadMultiply; - case SDLK_KP_MINUS: return ImGuiKey_KeypadSubtract; - case SDLK_KP_PLUS: return ImGuiKey_KeypadAdd; - case SDLK_KP_ENTER: return ImGuiKey_KeypadEnter; - case SDLK_KP_EQUALS: return ImGuiKey_KeypadEqual; - case SDLK_LCTRL: return ImGuiKey_LeftCtrl; - case SDLK_LSHIFT: return ImGuiKey_LeftShift; - case SDLK_LALT: return ImGuiKey_LeftAlt; - case SDLK_LGUI: return ImGuiKey_LeftSuper; - case SDLK_RCTRL: return ImGuiKey_RightCtrl; - case SDLK_RSHIFT: return ImGuiKey_RightShift; - case SDLK_RALT: return ImGuiKey_RightAlt; - case SDLK_RGUI: return ImGuiKey_RightSuper; - case SDLK_APPLICATION: return ImGuiKey_Menu; - case SDLK_0: return ImGuiKey_0; - case SDLK_1: return ImGuiKey_1; - case SDLK_2: return ImGuiKey_2; - case SDLK_3: return ImGuiKey_3; - case SDLK_4: return ImGuiKey_4; - case SDLK_5: return ImGuiKey_5; - case SDLK_6: return ImGuiKey_6; - case SDLK_7: return ImGuiKey_7; - case SDLK_8: return ImGuiKey_8; - case SDLK_9: return ImGuiKey_9; - case SDLK_a: return ImGuiKey_A; - case SDLK_b: return ImGuiKey_B; - case SDLK_c: return ImGuiKey_C; - case SDLK_d: return ImGuiKey_D; - case SDLK_e: return ImGuiKey_E; - case SDLK_f: return ImGuiKey_F; - case SDLK_g: return ImGuiKey_G; - case SDLK_h: return ImGuiKey_H; - case SDLK_i: return ImGuiKey_I; - case SDLK_j: return ImGuiKey_J; - case SDLK_k: return ImGuiKey_K; - case SDLK_l: return ImGuiKey_L; - case SDLK_m: return ImGuiKey_M; - case SDLK_n: return ImGuiKey_N; - case SDLK_o: return ImGuiKey_O; - case SDLK_p: return ImGuiKey_P; - case SDLK_q: return ImGuiKey_Q; - case SDLK_r: return ImGuiKey_R; - case SDLK_s: return ImGuiKey_S; - case SDLK_t: return ImGuiKey_T; - case SDLK_u: return ImGuiKey_U; - case SDLK_v: return ImGuiKey_V; - case SDLK_w: return ImGuiKey_W; - case SDLK_x: return ImGuiKey_X; - case SDLK_y: return ImGuiKey_Y; - case SDLK_z: return ImGuiKey_Z; - case SDLK_F1: return ImGuiKey_F1; - case SDLK_F2: return ImGuiKey_F2; - case SDLK_F3: return ImGuiKey_F3; - case SDLK_F4: return ImGuiKey_F4; - case SDLK_F5: return ImGuiKey_F5; - case SDLK_F6: return ImGuiKey_F6; - case SDLK_F7: return ImGuiKey_F7; - case SDLK_F8: return ImGuiKey_F8; - case SDLK_F9: return ImGuiKey_F9; - case SDLK_F10: return ImGuiKey_F10; - case SDLK_F11: return ImGuiKey_F11; - case SDLK_F12: return ImGuiKey_F12; - case SDLK_F13: return ImGuiKey_F13; - case SDLK_F14: return ImGuiKey_F14; - case SDLK_F15: return ImGuiKey_F15; - case SDLK_F16: return ImGuiKey_F16; - case SDLK_F17: return ImGuiKey_F17; - case SDLK_F18: return ImGuiKey_F18; - case SDLK_F19: return ImGuiKey_F19; - case SDLK_F20: return ImGuiKey_F20; - case SDLK_F21: return ImGuiKey_F21; - case SDLK_F22: return ImGuiKey_F22; - case SDLK_F23: return ImGuiKey_F23; - case SDLK_F24: return ImGuiKey_F24; - case SDLK_AC_BACK: return ImGuiKey_AppBack; - case SDLK_AC_FORWARD: return ImGuiKey_AppForward; - default: break; - } - - // Fallback to scancode - switch (scancode) - { - case SDL_SCANCODE_GRAVE: return ImGuiKey_GraveAccent; - case SDL_SCANCODE_MINUS: return ImGuiKey_Minus; - case SDL_SCANCODE_EQUALS: return ImGuiKey_Equal; - case SDL_SCANCODE_LEFTBRACKET: return ImGuiKey_LeftBracket; - case SDL_SCANCODE_RIGHTBRACKET: return ImGuiKey_RightBracket; - case SDL_SCANCODE_NONUSBACKSLASH: return ImGuiKey_Oem102; - case SDL_SCANCODE_BACKSLASH: return ImGuiKey_Backslash; - case SDL_SCANCODE_SEMICOLON: return ImGuiKey_Semicolon; - case SDL_SCANCODE_APOSTROPHE: return ImGuiKey_Apostrophe; - case SDL_SCANCODE_COMMA: return ImGuiKey_Comma; - case SDL_SCANCODE_PERIOD: return ImGuiKey_Period; - case SDL_SCANCODE_SLASH: return ImGuiKey_Slash; - default: break; - } - return ImGuiKey_None; -} - -static void ImGui_ImplSDL2_UpdateKeyModifiers(SDL_Keymod sdl_key_mods) -{ - ImGuiIO& io = ImGui::GetIO(); - io.AddKeyEvent(ImGuiMod_Ctrl, (sdl_key_mods & KMOD_CTRL) != 0); - io.AddKeyEvent(ImGuiMod_Shift, (sdl_key_mods & KMOD_SHIFT) != 0); - io.AddKeyEvent(ImGuiMod_Alt, (sdl_key_mods & KMOD_ALT) != 0); - io.AddKeyEvent(ImGuiMod_Super, (sdl_key_mods & KMOD_GUI) != 0); -} - -static ImGuiViewport* ImGui_ImplSDL2_GetViewportForWindowID(Uint32 window_id) -{ - ImGui_ImplSDL2_Data* bd = ImGui_ImplSDL2_GetBackendData(); - return (window_id == bd->WindowID) ? ImGui::GetMainViewport() : nullptr; -} - -// You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. -// - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. -// - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. -// Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. -// If you have multiple SDL events and some of them are not meant to be used by dear imgui, you may need to filter events based on their windowID field. -bool ImGui_ImplSDL2_ProcessEvent(const SDL_Event* event) -{ - ImGui_ImplSDL2_Data* bd = ImGui_ImplSDL2_GetBackendData(); - IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplSDL2_Init()?"); - ImGuiIO& io = ImGui::GetIO(); - - switch (event->type) - { - case SDL_MOUSEMOTION: - { - if (ImGui_ImplSDL2_GetViewportForWindowID(event->motion.windowID) == nullptr) - return false; - ImVec2 mouse_pos((float)event->motion.x, (float)event->motion.y); - io.AddMouseSourceEvent(event->motion.which == SDL_TOUCH_MOUSEID ? ImGuiMouseSource_TouchScreen : ImGuiMouseSource_Mouse); - io.AddMousePosEvent(mouse_pos.x, mouse_pos.y); - return true; - } - case SDL_MOUSEWHEEL: - { - if (ImGui_ImplSDL2_GetViewportForWindowID(event->wheel.windowID) == nullptr) - return false; - //IMGUI_DEBUG_LOG("wheel %.2f %.2f, precise %.2f %.2f\n", (float)event->wheel.x, (float)event->wheel.y, event->wheel.preciseX, event->wheel.preciseY); -#if SDL_VERSION_ATLEAST(2,0,18) // If this fails to compile on Emscripten: update to latest Emscripten! - float wheel_x = -event->wheel.preciseX; - float wheel_y = event->wheel.preciseY; -#else - float wheel_x = -(float)event->wheel.x; - float wheel_y = (float)event->wheel.y; -#endif -#if defined(__EMSCRIPTEN__) && !SDL_VERSION_ATLEAST(2,31,0) - wheel_x /= 100.0f; -#endif - io.AddMouseSourceEvent(event->wheel.which == SDL_TOUCH_MOUSEID ? ImGuiMouseSource_TouchScreen : ImGuiMouseSource_Mouse); - io.AddMouseWheelEvent(wheel_x, wheel_y); - return true; - } - case SDL_MOUSEBUTTONDOWN: - case SDL_MOUSEBUTTONUP: - { - if (ImGui_ImplSDL2_GetViewportForWindowID(event->button.windowID) == nullptr) - return false; - int mouse_button = -1; - if (event->button.button == SDL_BUTTON_LEFT) { mouse_button = 0; } - if (event->button.button == SDL_BUTTON_RIGHT) { mouse_button = 1; } - if (event->button.button == SDL_BUTTON_MIDDLE) { mouse_button = 2; } - if (event->button.button == SDL_BUTTON_X1) { mouse_button = 3; } - if (event->button.button == SDL_BUTTON_X2) { mouse_button = 4; } - if (mouse_button == -1) - break; - io.AddMouseSourceEvent(event->button.which == SDL_TOUCH_MOUSEID ? ImGuiMouseSource_TouchScreen : ImGuiMouseSource_Mouse); - io.AddMouseButtonEvent(mouse_button, (event->type == SDL_MOUSEBUTTONDOWN)); - bd->MouseButtonsDown = (event->type == SDL_MOUSEBUTTONDOWN) ? (bd->MouseButtonsDown | (1 << mouse_button)) : (bd->MouseButtonsDown & ~(1 << mouse_button)); - return true; - } - case SDL_TEXTINPUT: - { - if (ImGui_ImplSDL2_GetViewportForWindowID(event->text.windowID) == nullptr) - return false; - io.AddInputCharactersUTF8(event->text.text); - return true; - } - case SDL_KEYDOWN: - case SDL_KEYUP: - { - if (ImGui_ImplSDL2_GetViewportForWindowID(event->key.windowID) == nullptr) - return false; - ImGui_ImplSDL2_UpdateKeyModifiers((SDL_Keymod)event->key.keysym.mod); - //IMGUI_DEBUG_LOG("SDL_KEY_%s : key=%d ('%s'), scancode=%d ('%s'), mod=%X\n", - // (event->type == SDL_KEYDOWN) ? "DOWN" : "UP ", event->key.keysym.sym, SDL_GetKeyName(event->key.keysym.sym), event->key.keysym.scancode, SDL_GetScancodeName(event->key.keysym.scancode), event->key.keysym.mod); - ImGuiKey key = ImGui_ImplSDL2_KeyEventToImGuiKey(event->key.keysym.sym, event->key.keysym.scancode); - io.AddKeyEvent(key, (event->type == SDL_KEYDOWN)); - io.SetKeyEventNativeData(key, (int)event->key.keysym.sym, (int)event->key.keysym.scancode, (int)event->key.keysym.scancode); // To support legacy indexing (<1.87 user code). Legacy backend uses SDLK_*** as indices to IsKeyXXX() functions. - return true; - } - case SDL_WINDOWEVENT: - { - if (ImGui_ImplSDL2_GetViewportForWindowID(event->window.windowID) == nullptr) - return false; - // - When capturing mouse, SDL will send a bunch of conflicting LEAVE/ENTER event on every mouse move, but the final ENTER tends to be right. - // - However we won't get a correct LEAVE event for a captured window. - // - In some cases, when detaching a window from main viewport SDL may send SDL_WINDOWEVENT_ENTER one frame too late, - // causing SDL_WINDOWEVENT_LEAVE on previous frame to interrupt drag operation by clear mouse position. This is why - // we delay process the SDL_WINDOWEVENT_LEAVE events by one frame. See issue #5012 for details. - Uint8 window_event = event->window.event; - if (window_event == SDL_WINDOWEVENT_ENTER) - { - bd->MouseWindowID = event->window.windowID; - bd->MouseLastLeaveFrame = 0; - } - if (window_event == SDL_WINDOWEVENT_LEAVE) - bd->MouseLastLeaveFrame = ImGui::GetFrameCount() + 1; - if (window_event == SDL_WINDOWEVENT_FOCUS_GAINED) - io.AddFocusEvent(true); - else if (event->window.event == SDL_WINDOWEVENT_FOCUS_LOST) - io.AddFocusEvent(false); - return true; - } - case SDL_CONTROLLERDEVICEADDED: - case SDL_CONTROLLERDEVICEREMOVED: - { - bd->WantUpdateGamepadsList = true; - return true; - } - default: - break; - } - return false; -} - -#ifdef __EMSCRIPTEN__ -EM_JS(void, ImGui_ImplSDL2_EmscriptenOpenURL, (char const* url), { url = url ? UTF8ToString(url) : null; if (url) window.open(url, '_blank'); }); -#endif - -static bool ImGui_ImplSDL2_Init(SDL_Window* window, SDL_Renderer* renderer, void* sdl_gl_context) -{ - ImGuiIO& io = ImGui::GetIO(); - IMGUI_CHECKVERSION(); - IM_ASSERT(io.BackendPlatformUserData == nullptr && "Already initialized a platform backend!"); - - // Obtain compiled and runtime versions - SDL_version ver_compiled; - SDL_version ver_runtime; - SDL_VERSION(&ver_compiled); - SDL_GetVersion(&ver_runtime); - - // Setup backend capabilities flags - ImGui_ImplSDL2_Data* bd = IM_NEW(ImGui_ImplSDL2_Data)(); - snprintf(bd->BackendPlatformName, sizeof(bd->BackendPlatformName), "imgui_impl_sdl2 (%u.%u.%u, %u.%u.%u)", - ver_compiled.major, ver_compiled.minor, ver_compiled.patch, ver_runtime.major, ver_runtime.minor, ver_runtime.patch); - io.BackendPlatformUserData = (void*)bd; - io.BackendPlatformName = bd->BackendPlatformName; - io.BackendFlags |= ImGuiBackendFlags_HasMouseCursors; // We can honor GetMouseCursor() values (optional) - io.BackendFlags |= ImGuiBackendFlags_HasSetMousePos; // We can honor io.WantSetMousePos requests (optional, rarely used) - - bd->Window = window; - bd->WindowID = SDL_GetWindowID(window); - bd->Renderer = renderer; - - // Check and store if we are on a SDL backend that supports SDL_GetGlobalMouseState() and SDL_CaptureMouse() - // ("wayland" and "rpi" don't support it, but we chose to use a white-list instead of a black-list) - bd->MouseCanUseGlobalState = false; - bd->MouseCanUseCapture = false; -#if SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE - const char* sdl_backend = SDL_GetCurrentVideoDriver(); - const char* capture_and_global_state_whitelist[] = { "windows", "cocoa", "x11", "DIVE", "VMAN" }; - for (const char* item : capture_and_global_state_whitelist) - if (strncmp(sdl_backend, item, strlen(item)) == 0) - bd->MouseCanUseGlobalState = bd->MouseCanUseCapture = true; -#endif - - ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); - platform_io.Platform_SetClipboardTextFn = ImGui_ImplSDL2_SetClipboardText; - platform_io.Platform_GetClipboardTextFn = ImGui_ImplSDL2_GetClipboardText; - platform_io.Platform_ClipboardUserData = nullptr; - platform_io.Platform_SetImeDataFn = ImGui_ImplSDL2_PlatformSetImeData; -#ifdef __EMSCRIPTEN__ - platform_io.Platform_OpenInShellFn = [](ImGuiContext*, const char* url) { ImGui_ImplSDL2_EmscriptenOpenURL(url); return true; }; -#elif SDL_HAS_OPEN_URL - platform_io.Platform_OpenInShellFn = [](ImGuiContext*, const char* url) { return SDL_OpenURL(url) == 0; }; -#endif - - // Gamepad handling - bd->GamepadMode = ImGui_ImplSDL2_GamepadMode_AutoFirst; - bd->WantUpdateGamepadsList = true; - - // Load mouse cursors - bd->MouseCursors[ImGuiMouseCursor_Arrow] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_ARROW); - bd->MouseCursors[ImGuiMouseCursor_TextInput] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_IBEAM); - bd->MouseCursors[ImGuiMouseCursor_ResizeAll] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_SIZEALL); - bd->MouseCursors[ImGuiMouseCursor_ResizeNS] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_SIZENS); - bd->MouseCursors[ImGuiMouseCursor_ResizeEW] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_SIZEWE); - bd->MouseCursors[ImGuiMouseCursor_ResizeNESW] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_SIZENESW); - bd->MouseCursors[ImGuiMouseCursor_ResizeNWSE] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_SIZENWSE); - bd->MouseCursors[ImGuiMouseCursor_Hand] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_HAND); - bd->MouseCursors[ImGuiMouseCursor_Wait] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_WAIT); - bd->MouseCursors[ImGuiMouseCursor_Progress] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_WAITARROW); - bd->MouseCursors[ImGuiMouseCursor_NotAllowed] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_NO); - - // Set platform dependent data in viewport - // Our mouse update function expect PlatformHandle to be filled for the main viewport - ImGuiViewport* main_viewport = ImGui::GetMainViewport(); - main_viewport->PlatformHandle = (void*)(intptr_t)bd->WindowID; - main_viewport->PlatformHandleRaw = nullptr; - SDL_SysWMinfo info; - SDL_VERSION(&info.version); - if (SDL_GetWindowWMInfo(window, &info)) - { -#if defined(SDL_VIDEO_DRIVER_WINDOWS) - main_viewport->PlatformHandleRaw = (void*)info.info.win.window; -#elif defined(__APPLE__) && defined(SDL_VIDEO_DRIVER_COCOA) - main_viewport->PlatformHandleRaw = (void*)info.info.cocoa.window; -#endif - } - - // From 2.0.5: Set SDL hint to receive mouse click events on window focus, otherwise SDL doesn't emit the event. - // Without this, when clicking to gain focus, our widgets wouldn't activate even though they showed as hovered. - // (This is unfortunately a global SDL setting, so enabling it might have a side-effect on your application. - // It is unlikely to make a difference, but if your app absolutely needs to ignore the initial on-focus click: - // you can ignore SDL_MOUSEBUTTONDOWN events coming right after a SDL_WINDOWEVENT_FOCUS_GAINED) -#ifdef SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH - SDL_SetHint(SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH, "1"); -#endif - - // From 2.0.18: Enable native IME. - // IMPORTANT: This is used at the time of SDL_CreateWindow() so this will only affects secondary windows, if any. - // For the main window to be affected, your application needs to call this manually before calling SDL_CreateWindow(). -#ifdef SDL_HINT_IME_SHOW_UI - SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1"); -#endif - - // From 2.0.22: Disable auto-capture, this is preventing drag and drop across multiple windows (see #5710) -#ifdef SDL_HINT_MOUSE_AUTO_CAPTURE - SDL_SetHint(SDL_HINT_MOUSE_AUTO_CAPTURE, "0"); -#endif - - (void)sdl_gl_context; // Unused in 'master' branch. - return true; -} - -bool ImGui_ImplSDL2_InitForOpenGL(SDL_Window* window, void* sdl_gl_context) -{ - return ImGui_ImplSDL2_Init(window, nullptr, sdl_gl_context); -} - -bool ImGui_ImplSDL2_InitForVulkan(SDL_Window* window) -{ -#if !SDL_HAS_VULKAN - IM_ASSERT(0 && "Unsupported"); -#endif - return ImGui_ImplSDL2_Init(window, nullptr, nullptr); -} - -bool ImGui_ImplSDL2_InitForD3D(SDL_Window* window) -{ -#if !defined(_WIN32) - IM_ASSERT(0 && "Unsupported"); -#endif - return ImGui_ImplSDL2_Init(window, nullptr, nullptr); -} - -bool ImGui_ImplSDL2_InitForMetal(SDL_Window* window) -{ - return ImGui_ImplSDL2_Init(window, nullptr, nullptr); -} - -bool ImGui_ImplSDL2_InitForSDLRenderer(SDL_Window* window, SDL_Renderer* renderer) -{ - return ImGui_ImplSDL2_Init(window, renderer, nullptr); -} - -bool ImGui_ImplSDL2_InitForOther(SDL_Window* window) -{ - return ImGui_ImplSDL2_Init(window, nullptr, nullptr); -} - -static void ImGui_ImplSDL2_CloseGamepads(); - -void ImGui_ImplSDL2_Shutdown() -{ - ImGui_ImplSDL2_Data* bd = ImGui_ImplSDL2_GetBackendData(); - IM_ASSERT(bd != nullptr && "No platform backend to shutdown, or already shutdown?"); - ImGuiIO& io = ImGui::GetIO(); - - if (bd->ClipboardTextData) - SDL_free(bd->ClipboardTextData); - for (ImGuiMouseCursor cursor_n = 0; cursor_n < ImGuiMouseCursor_COUNT; cursor_n++) - SDL_FreeCursor(bd->MouseCursors[cursor_n]); - ImGui_ImplSDL2_CloseGamepads(); - - io.BackendPlatformName = nullptr; - io.BackendPlatformUserData = nullptr; - io.BackendFlags &= ~(ImGuiBackendFlags_HasMouseCursors | ImGuiBackendFlags_HasSetMousePos | ImGuiBackendFlags_HasGamepad); - IM_DELETE(bd); -} - -static void ImGui_ImplSDL2_UpdateMouseData() -{ - ImGui_ImplSDL2_Data* bd = ImGui_ImplSDL2_GetBackendData(); - ImGuiIO& io = ImGui::GetIO(); - - // We forward mouse input when hovered or captured (via SDL_MOUSEMOTION) or when focused (below) -#if SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE - // - SDL_CaptureMouse() let the OS know e.g. that our drags can extend outside of parent boundaries (we want updated position) and shouldn't trigger other operations outside. - // - Debuggers under Linux tends to leave captured mouse on break, which may be very inconvenient, so to mitigate the issue we wait until mouse has moved to begin capture. - if (bd->MouseCanUseCapture) - { - bool want_capture = false; - for (int button_n = 0; button_n < ImGuiMouseButton_COUNT && !want_capture; button_n++) - if (ImGui::IsMouseDragging(button_n, 1.0f)) - want_capture = true; - SDL_CaptureMouse(want_capture ? SDL_TRUE : SDL_FALSE); - } - - SDL_Window* focused_window = SDL_GetKeyboardFocus(); - const bool is_app_focused = (bd->Window == focused_window); -#else - const bool is_app_focused = (SDL_GetWindowFlags(bd->Window) & SDL_WINDOW_INPUT_FOCUS) != 0; // SDL 2.0.3 and non-windowed systems: single-viewport only -#endif - if (is_app_focused) - { - // (Optional) Set OS mouse position from Dear ImGui if requested (rarely used, only when io.ConfigNavMoveSetMousePos is enabled by user) - if (io.WantSetMousePos) - SDL_WarpMouseInWindow(bd->Window, (int)io.MousePos.x, (int)io.MousePos.y); - - // (Optional) Fallback to provide mouse position when focused (SDL_MOUSEMOTION already provides this when hovered or captured) - const bool is_relative_mouse_mode = SDL_GetRelativeMouseMode() != 0; - if (bd->MouseCanUseGlobalState && bd->MouseButtonsDown == 0 && !is_relative_mouse_mode) - { - // Single-viewport mode: mouse position in client window coordinates (io.MousePos is (0,0) when the mouse is on the upper-left corner of the app window) - int window_x, window_y, mouse_x_global, mouse_y_global; - SDL_GetGlobalMouseState(&mouse_x_global, &mouse_y_global); - SDL_GetWindowPosition(bd->Window, &window_x, &window_y); - io.AddMousePosEvent((float)(mouse_x_global - window_x), (float)(mouse_y_global - window_y)); - } - } -} - -static void ImGui_ImplSDL2_UpdateMouseCursor() -{ - ImGuiIO& io = ImGui::GetIO(); - if (io.ConfigFlags & ImGuiConfigFlags_NoMouseCursorChange) - return; - ImGui_ImplSDL2_Data* bd = ImGui_ImplSDL2_GetBackendData(); - - ImGuiMouseCursor imgui_cursor = ImGui::GetMouseCursor(); - if (io.MouseDrawCursor || imgui_cursor == ImGuiMouseCursor_None) - { - // Hide OS mouse cursor if imgui is drawing it or if it wants no cursor - SDL_ShowCursor(SDL_FALSE); - } - else - { - // Show OS mouse cursor - SDL_Cursor* expected_cursor = bd->MouseCursors[imgui_cursor] ? bd->MouseCursors[imgui_cursor] : bd->MouseCursors[ImGuiMouseCursor_Arrow]; - if (bd->MouseLastCursor != expected_cursor) - { - SDL_SetCursor(expected_cursor); // SDL function doesn't have an early out (see #6113) - bd->MouseLastCursor = expected_cursor; - } - SDL_ShowCursor(SDL_TRUE); - } -} - -// - On Windows the process needs to be marked DPI-aware!! SDL2 doesn't do it by default. You can call ::SetProcessDPIAware() or call ImGui_ImplWin32_EnableDpiAwareness() from Win32 backend. -// - Apple platforms use FramebufferScale so we always return 1.0f. -// - Some accessibility applications are declaring virtual monitors with a DPI of 0.0f, see #7902. We preserve this value for caller to handle. -float ImGui_ImplSDL2_GetContentScaleForWindow(SDL_Window* window) -{ - return ImGui_ImplSDL2_GetContentScaleForDisplay(SDL_GetWindowDisplayIndex(window)); -} - -float ImGui_ImplSDL2_GetContentScaleForDisplay(int display_index) -{ -#if SDL_HAS_PER_MONITOR_DPI -#if !defined(__APPLE__) && !defined(__EMSCRIPTEN__) && !defined(__ANDROID__) - float dpi = 0.0f; - if (SDL_GetDisplayDPI(display_index, &dpi, nullptr, nullptr) == 0) - return dpi / 96.0f; -#endif -#endif - IM_UNUSED(display_index); - return 1.0f; -} - -static void ImGui_ImplSDL2_CloseGamepads() -{ - ImGui_ImplSDL2_Data* bd = ImGui_ImplSDL2_GetBackendData(); - if (bd->GamepadMode != ImGui_ImplSDL2_GamepadMode_Manual) - for (SDL_GameController* gamepad : bd->Gamepads) - SDL_GameControllerClose(gamepad); - bd->Gamepads.resize(0); -} - -void ImGui_ImplSDL2_SetGamepadMode(ImGui_ImplSDL2_GamepadMode mode, struct _SDL_GameController** manual_gamepads_array, int manual_gamepads_count) -{ - ImGui_ImplSDL2_Data* bd = ImGui_ImplSDL2_GetBackendData(); - ImGui_ImplSDL2_CloseGamepads(); - if (mode == ImGui_ImplSDL2_GamepadMode_Manual) - { - IM_ASSERT(manual_gamepads_array != nullptr || manual_gamepads_count <= 0); - for (int n = 0; n < manual_gamepads_count; n++) - bd->Gamepads.push_back(manual_gamepads_array[n]); - } - else - { - IM_ASSERT(manual_gamepads_array == nullptr && manual_gamepads_count <= 0); - bd->WantUpdateGamepadsList = true; - } - bd->GamepadMode = mode; -} - -static void ImGui_ImplSDL2_UpdateGamepadButton(ImGui_ImplSDL2_Data* bd, ImGuiIO& io, ImGuiKey key, SDL_GameControllerButton button_no) -{ - bool merged_value = false; - for (SDL_GameController* gamepad : bd->Gamepads) - merged_value |= SDL_GameControllerGetButton(gamepad, button_no) != 0; - io.AddKeyEvent(key, merged_value); -} - -static inline float Saturate(float v) { return v < 0.0f ? 0.0f : v > 1.0f ? 1.0f : v; } -static void ImGui_ImplSDL2_UpdateGamepadAnalog(ImGui_ImplSDL2_Data* bd, ImGuiIO& io, ImGuiKey key, SDL_GameControllerAxis axis_no, float v0, float v1) -{ - float merged_value = 0.0f; - for (SDL_GameController* gamepad : bd->Gamepads) - { - float vn = Saturate((float)(SDL_GameControllerGetAxis(gamepad, axis_no) - v0) / (float)(v1 - v0)); - if (merged_value < vn) - merged_value = vn; - } - io.AddKeyAnalogEvent(key, merged_value > 0.1f, merged_value); -} - -static void ImGui_ImplSDL2_UpdateGamepads() -{ - ImGui_ImplSDL2_Data* bd = ImGui_ImplSDL2_GetBackendData(); - ImGuiIO& io = ImGui::GetIO(); - - // Update list of controller(s) to use - if (bd->WantUpdateGamepadsList && bd->GamepadMode != ImGui_ImplSDL2_GamepadMode_Manual) - { - ImGui_ImplSDL2_CloseGamepads(); - int joystick_count = SDL_NumJoysticks(); - for (int n = 0; n < joystick_count; n++) - if (SDL_IsGameController(n)) - if (SDL_GameController* gamepad = SDL_GameControllerOpen(n)) - { - bd->Gamepads.push_back(gamepad); - if (bd->GamepadMode == ImGui_ImplSDL2_GamepadMode_AutoFirst) - break; - } - bd->WantUpdateGamepadsList = false; - } - - io.BackendFlags &= ~ImGuiBackendFlags_HasGamepad; - if (bd->Gamepads.Size == 0) - return; - io.BackendFlags |= ImGuiBackendFlags_HasGamepad; - - // Update gamepad inputs - const int thumb_dead_zone = 8000; // SDL_gamecontroller.h suggests using this value. - ImGui_ImplSDL2_UpdateGamepadButton(bd, io, ImGuiKey_GamepadStart, SDL_CONTROLLER_BUTTON_START); - ImGui_ImplSDL2_UpdateGamepadButton(bd, io, ImGuiKey_GamepadBack, SDL_CONTROLLER_BUTTON_BACK); - ImGui_ImplSDL2_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceLeft, SDL_CONTROLLER_BUTTON_X); // Xbox X, PS Square - ImGui_ImplSDL2_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceRight, SDL_CONTROLLER_BUTTON_B); // Xbox B, PS Circle - ImGui_ImplSDL2_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceUp, SDL_CONTROLLER_BUTTON_Y); // Xbox Y, PS Triangle - ImGui_ImplSDL2_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceDown, SDL_CONTROLLER_BUTTON_A); // Xbox A, PS Cross - ImGui_ImplSDL2_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadLeft, SDL_CONTROLLER_BUTTON_DPAD_LEFT); - ImGui_ImplSDL2_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadRight, SDL_CONTROLLER_BUTTON_DPAD_RIGHT); - ImGui_ImplSDL2_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadUp, SDL_CONTROLLER_BUTTON_DPAD_UP); - ImGui_ImplSDL2_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadDown, SDL_CONTROLLER_BUTTON_DPAD_DOWN); - ImGui_ImplSDL2_UpdateGamepadButton(bd, io, ImGuiKey_GamepadL1, SDL_CONTROLLER_BUTTON_LEFTSHOULDER); - ImGui_ImplSDL2_UpdateGamepadButton(bd, io, ImGuiKey_GamepadR1, SDL_CONTROLLER_BUTTON_RIGHTSHOULDER); - ImGui_ImplSDL2_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadL2, SDL_CONTROLLER_AXIS_TRIGGERLEFT, 0.0f, 32767); - ImGui_ImplSDL2_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadR2, SDL_CONTROLLER_AXIS_TRIGGERRIGHT, 0.0f, 32767); - ImGui_ImplSDL2_UpdateGamepadButton(bd, io, ImGuiKey_GamepadL3, SDL_CONTROLLER_BUTTON_LEFTSTICK); - ImGui_ImplSDL2_UpdateGamepadButton(bd, io, ImGuiKey_GamepadR3, SDL_CONTROLLER_BUTTON_RIGHTSTICK); - ImGui_ImplSDL2_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickLeft, SDL_CONTROLLER_AXIS_LEFTX, -thumb_dead_zone, -32768); - ImGui_ImplSDL2_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickRight, SDL_CONTROLLER_AXIS_LEFTX, +thumb_dead_zone, +32767); - ImGui_ImplSDL2_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickUp, SDL_CONTROLLER_AXIS_LEFTY, -thumb_dead_zone, -32768); - ImGui_ImplSDL2_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickDown, SDL_CONTROLLER_AXIS_LEFTY, +thumb_dead_zone, +32767); - ImGui_ImplSDL2_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickLeft, SDL_CONTROLLER_AXIS_RIGHTX, -thumb_dead_zone, -32768); - ImGui_ImplSDL2_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickRight, SDL_CONTROLLER_AXIS_RIGHTX, +thumb_dead_zone, +32767); - ImGui_ImplSDL2_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickUp, SDL_CONTROLLER_AXIS_RIGHTY, -thumb_dead_zone, -32768); - ImGui_ImplSDL2_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickDown, SDL_CONTROLLER_AXIS_RIGHTY, +thumb_dead_zone, +32767); -} - -static void ImGui_ImplSDL2_GetWindowSizeAndFramebufferScale(SDL_Window* window, SDL_Renderer* renderer, ImVec2* out_size, ImVec2* out_framebuffer_scale) -{ - int w, h; - int display_w, display_h; - SDL_GetWindowSize(window, &w, &h); - if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED) - w = h = 0; - if (renderer != nullptr) - SDL_GetRendererOutputSize(renderer, &display_w, &display_h); -#if SDL_HAS_VULKAN - else if (SDL_GetWindowFlags(window) & SDL_WINDOW_VULKAN) - SDL_Vulkan_GetDrawableSize(window, &display_w, &display_h); -#endif - else - SDL_GL_GetDrawableSize(window, &display_w, &display_h); - if (out_size != nullptr) - *out_size = ImVec2((float)w, (float)h); - if (out_framebuffer_scale != nullptr) - *out_framebuffer_scale = (w > 0 && h > 0) ? ImVec2((float)display_w / w, (float)display_h / h) : ImVec2(1.0f, 1.0f); -} - -void ImGui_ImplSDL2_NewFrame() -{ - ImGui_ImplSDL2_Data* bd = ImGui_ImplSDL2_GetBackendData(); - IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplSDL2_Init()?"); - ImGuiIO& io = ImGui::GetIO(); - - // Setup main viewport size (every frame to accommodate for window resizing) - ImGui_ImplSDL2_GetWindowSizeAndFramebufferScale(bd->Window, bd->Renderer, &io.DisplaySize, &io.DisplayFramebufferScale); - - // Setup time step (we don't use SDL_GetTicks() because it is using millisecond resolution) - // (Accept SDL_GetPerformanceCounter() not returning a monotonically increasing value. Happens in VMs and Emscripten, see #6189, #6114, #3644) - static Uint64 frequency = SDL_GetPerformanceFrequency(); - Uint64 current_time = SDL_GetPerformanceCounter(); - if (current_time <= bd->Time) - current_time = bd->Time + 1; - io.DeltaTime = bd->Time > 0 ? (float)((double)(current_time - bd->Time) / frequency) : (float)(1.0f / 60.0f); - bd->Time = current_time; - - if (bd->MouseLastLeaveFrame && bd->MouseLastLeaveFrame >= ImGui::GetFrameCount() && bd->MouseButtonsDown == 0) - { - bd->MouseWindowID = 0; - bd->MouseLastLeaveFrame = 0; - io.AddMousePosEvent(-FLT_MAX, -FLT_MAX); - } - - ImGui_ImplSDL2_UpdateMouseData(); - ImGui_ImplSDL2_UpdateMouseCursor(); - - // Update game controllers (if enabled and available) - ImGui_ImplSDL2_UpdateGamepads(); -} - -//----------------------------------------------------------------------------- - -#if defined(__clang__) -#pragma clang diagnostic pop -#endif - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_sdl2.h b/libs/imgui-1.92.1/backends/imgui_impl_sdl2.h deleted file mode 100644 index 3c0a4a7..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_sdl2.h +++ /dev/null @@ -1,50 +0,0 @@ -// dear imgui: Platform Backend for SDL2 -// This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..) -// (Info: SDL2 is a cross-platform general purpose library for handling windows, inputs, graphics context creation, etc.) - -// Implemented features: -// [X] Platform: Clipboard support. -// [X] Platform: Mouse support. Can discriminate Mouse/TouchScreen. -// [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy SDL_SCANCODE_* values are obsolete since 1.87 and not supported since 1.91.5] -// [X] Platform: Gamepad support. -// [X] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. -// [X] Platform: Basic IME support. App needs to call 'SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1");' before SDL_CreateWindow()!. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#pragma once -#include "imgui.h" // IMGUI_IMPL_API -#ifndef IMGUI_DISABLE - -struct SDL_Window; -struct SDL_Renderer; -struct _SDL_GameController; -typedef union SDL_Event SDL_Event; - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplSDL2_InitForOpenGL(SDL_Window* window, void* sdl_gl_context); -IMGUI_IMPL_API bool ImGui_ImplSDL2_InitForVulkan(SDL_Window* window); -IMGUI_IMPL_API bool ImGui_ImplSDL2_InitForD3D(SDL_Window* window); -IMGUI_IMPL_API bool ImGui_ImplSDL2_InitForMetal(SDL_Window* window); -IMGUI_IMPL_API bool ImGui_ImplSDL2_InitForSDLRenderer(SDL_Window* window, SDL_Renderer* renderer); -IMGUI_IMPL_API bool ImGui_ImplSDL2_InitForOther(SDL_Window* window); -IMGUI_IMPL_API void ImGui_ImplSDL2_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplSDL2_NewFrame(); -IMGUI_IMPL_API bool ImGui_ImplSDL2_ProcessEvent(const SDL_Event* event); - -// DPI-related helpers (optional) -IMGUI_IMPL_API float ImGui_ImplSDL2_GetContentScaleForWindow(SDL_Window* window); -IMGUI_IMPL_API float ImGui_ImplSDL2_GetContentScaleForDisplay(int display_index); - -// Gamepad selection automatically starts in AutoFirst mode, picking first available SDL_Gamepad. You may override this. -// When using manual mode, caller is responsible for opening/closing gamepad. -enum ImGui_ImplSDL2_GamepadMode { ImGui_ImplSDL2_GamepadMode_AutoFirst, ImGui_ImplSDL2_GamepadMode_AutoAll, ImGui_ImplSDL2_GamepadMode_Manual }; -IMGUI_IMPL_API void ImGui_ImplSDL2_SetGamepadMode(ImGui_ImplSDL2_GamepadMode mode, struct _SDL_GameController** manual_gamepads_array = nullptr, int manual_gamepads_count = -1); - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_sdl3.cpp b/libs/imgui-1.92.1/backends/imgui_impl_sdl3.cpp deleted file mode 100644 index 48e766b..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_sdl3.cpp +++ /dev/null @@ -1,830 +0,0 @@ -// dear imgui: Platform Backend for SDL3 -// This needs to be used along with a Renderer (e.g. SDL_GPU, DirectX11, OpenGL3, Vulkan..) -// (Info: SDL3 is a cross-platform general purpose library for handling windows, inputs, graphics context creation, etc.) - -// Implemented features: -// [X] Platform: Clipboard support. -// [X] Platform: Mouse support. Can discriminate Mouse/TouchScreen. -// [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy SDL_SCANCODE_* values are obsolete since 1.87 and not supported since 1.91.5] -// [X] Platform: Gamepad support. -// [X] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. -// [X] Platform: IME support. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// CHANGELOG -// (minor and older changes stripped away, please see git history for details) -// 2025-06-27: IME: avoid calling SDL_StartTextInput() again if already active. (#8727) -// 2025-04-22: IME: honor ImGuiPlatformImeData->WantTextInput as an alternative way to call SDL_StartTextInput(), without IME being necessarily visible. -// 2025-04-09: Don't attempt to call SDL_CaptureMouse() on drivers where we don't call SDL_GetGlobalMouseState(). (#8561) -// 2025-03-30: Update for SDL3 api changes: Revert SDL_GetClipboardText() memory ownership change. (#8530, #7801) -// 2025-03-21: Fill gamepad inputs and set ImGuiBackendFlags_HasGamepad regardless of ImGuiConfigFlags_NavEnableGamepad being set. -// 2025-03-10: When dealing with OEM keys, use scancodes instead of translated keycodes to choose ImGuiKey values. (#7136, #7201, #7206, #7306, #7670, #7672, #8468) -// 2025-02-26: Only start SDL_CaptureMouse() when mouse is being dragged, to mitigate issues with e.g.Linux debuggers not claiming capture back. (#6410, #3650) -// 2025-02-24: Avoid calling SDL_GetGlobalMouseState() when mouse is in relative mode. -// 2025-02-18: Added ImGuiMouseCursor_Wait and ImGuiMouseCursor_Progress mouse cursor support. -// 2025-02-10: Using SDL_OpenURL() in platform_io.Platform_OpenInShellFn handler. -// 2025-01-20: Made ImGui_ImplSDL3_SetGamepadMode(ImGui_ImplSDL3_GamepadMode_Manual) accept an empty array. -// 2024-10-24: Emscripten: SDL_EVENT_MOUSE_WHEEL event doesn't require dividing by 100.0f on Emscripten. -// 2024-09-03: Update for SDL3 api changes: SDL_GetGamepads() memory ownership revert. (#7918, #7898, #7807) -// 2024-08-22: moved some OS/backend related function pointers from ImGuiIO to ImGuiPlatformIO: -// - io.GetClipboardTextFn -> platform_io.Platform_GetClipboardTextFn -// - io.SetClipboardTextFn -> platform_io.Platform_SetClipboardTextFn -// - io.PlatformSetImeDataFn -> platform_io.Platform_SetImeDataFn -// 2024-08-19: Storing SDL_WindowID inside ImGuiViewport::PlatformHandle instead of SDL_Window*. -// 2024-08-19: ImGui_ImplSDL3_ProcessEvent() now ignores events intended for other SDL windows. (#7853) -// 2024-07-22: Update for SDL3 api changes: SDL_GetGamepads() memory ownership change. (#7807) -// 2024-07-18: Update for SDL3 api changes: SDL_GetClipboardText() memory ownership change. (#7801) -// 2024-07-15: Update for SDL3 api changes: SDL_GetProperty() change to SDL_GetPointerProperty(). (#7794) -// 2024-07-02: Update for SDL3 api changes: SDLK_x renames and SDLK_KP_x removals (#7761, #7762). -// 2024-07-01: Update for SDL3 api changes: SDL_SetTextInputRect() changed to SDL_SetTextInputArea(). -// 2024-06-26: Update for SDL3 api changes: SDL_StartTextInput()/SDL_StopTextInput()/SDL_SetTextInputRect() functions signatures. -// 2024-06-24: Update for SDL3 api changes: SDL_EVENT_KEY_DOWN/SDL_EVENT_KEY_UP contents. -// 2024-06-03; Update for SDL3 api changes: SDL_SYSTEM_CURSOR_ renames. -// 2024-05-15: Update for SDL3 api changes: SDLK_ renames. -// 2024-04-15: Inputs: Re-enable calling SDL_StartTextInput()/SDL_StopTextInput() as SDL3 no longer enables it by default and should play nicer with IME. -// 2024-02-13: Inputs: Fixed gamepad support. Handle gamepad disconnection. Added ImGui_ImplSDL3_SetGamepadMode(). -// 2023-11-13: Updated for recent SDL3 API changes. -// 2023-10-05: Inputs: Added support for extra ImGuiKey values: F13 to F24 function keys, app back/forward keys. -// 2023-05-04: Fixed build on Emscripten/iOS/Android. (#6391) -// 2023-04-06: Inputs: Avoid calling SDL_StartTextInput()/SDL_StopTextInput() as they don't only pertain to IME. It's unclear exactly what their relation is to IME. (#6306) -// 2023-04-04: Inputs: Added support for io.AddMouseSourceEvent() to discriminate ImGuiMouseSource_Mouse/ImGuiMouseSource_TouchScreen. (#2702) -// 2023-02-23: Accept SDL_GetPerformanceCounter() not returning a monotonically increasing value. (#6189, #6114, #3644) -// 2023-02-07: Forked "imgui_impl_sdl2" into "imgui_impl_sdl3". Removed version checks for old feature. Refer to imgui_impl_sdl2.cpp for older changelog. - -#include "imgui.h" -#ifndef IMGUI_DISABLE -#include "imgui_impl_sdl3.h" - -// Clang warnings with -Weverything -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wold-style-cast" // warning: use of old-style cast -#pragma clang diagnostic ignored "-Wimplicit-int-float-conversion" // warning: implicit conversion from 'xxx' to 'float' may lose precision -#endif - -// SDL -#include -#include // for snprintf() -#if defined(__APPLE__) -#include -#endif -#ifdef _WIN32 -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#endif - -#if !defined(__EMSCRIPTEN__) && !defined(__ANDROID__) && !(defined(__APPLE__) && TARGET_OS_IOS) && !defined(__amigaos4__) -#define SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE 1 -#else -#define SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE 0 -#endif - -// FIXME-LEGACY: remove when SDL 3.1.3 preview is released. -#ifndef SDLK_APOSTROPHE -#define SDLK_APOSTROPHE SDLK_QUOTE -#endif -#ifndef SDLK_GRAVE -#define SDLK_GRAVE SDLK_BACKQUOTE -#endif - -// SDL Data -struct ImGui_ImplSDL3_Data -{ - SDL_Window* Window; - SDL_WindowID WindowID; - SDL_Renderer* Renderer; - Uint64 Time; - char* ClipboardTextData; - char BackendPlatformName[48]; - - // IME handling - SDL_Window* ImeWindow; - - // Mouse handling - Uint32 MouseWindowID; - int MouseButtonsDown; - SDL_Cursor* MouseCursors[ImGuiMouseCursor_COUNT]; - SDL_Cursor* MouseLastCursor; - int MousePendingLeaveFrame; - bool MouseCanUseGlobalState; - bool MouseCanUseCapture; - - // Gamepad handling - ImVector Gamepads; - ImGui_ImplSDL3_GamepadMode GamepadMode; - bool WantUpdateGamepadsList; - - ImGui_ImplSDL3_Data() { memset((void*)this, 0, sizeof(*this)); } -}; - -// Backend data stored in io.BackendPlatformUserData to allow support for multiple Dear ImGui contexts -// It is STRONGLY preferred that you use docking branch with multi-viewports (== single Dear ImGui context + multiple windows) instead of multiple Dear ImGui contexts. -// FIXME: multi-context support is not well tested and probably dysfunctional in this backend. -// FIXME: some shared resources (mouse cursor shape, gamepad) are mishandled when using multi-context. -static ImGui_ImplSDL3_Data* ImGui_ImplSDL3_GetBackendData() -{ - return ImGui::GetCurrentContext() ? (ImGui_ImplSDL3_Data*)ImGui::GetIO().BackendPlatformUserData : nullptr; -} - -// Functions -static const char* ImGui_ImplSDL3_GetClipboardText(ImGuiContext*) -{ - ImGui_ImplSDL3_Data* bd = ImGui_ImplSDL3_GetBackendData(); - if (bd->ClipboardTextData) - SDL_free(bd->ClipboardTextData); - bd->ClipboardTextData = SDL_GetClipboardText(); - return bd->ClipboardTextData; -} - -static void ImGui_ImplSDL3_SetClipboardText(ImGuiContext*, const char* text) -{ - SDL_SetClipboardText(text); -} - -static void ImGui_ImplSDL3_PlatformSetImeData(ImGuiContext*, ImGuiViewport* viewport, ImGuiPlatformImeData* data) -{ - ImGui_ImplSDL3_Data* bd = ImGui_ImplSDL3_GetBackendData(); - SDL_WindowID window_id = (SDL_WindowID)(intptr_t)viewport->PlatformHandle; - SDL_Window* window = SDL_GetWindowFromID(window_id); - if ((!(data->WantVisible || data->WantTextInput) || bd->ImeWindow != window) && bd->ImeWindow != nullptr) - { - SDL_StopTextInput(bd->ImeWindow); - bd->ImeWindow = nullptr; - } - if (data->WantVisible) - { - SDL_Rect r; - r.x = (int)data->InputPos.x; - r.y = (int)data->InputPos.y; - r.w = 1; - r.h = (int)data->InputLineHeight; - SDL_SetTextInputArea(window, &r, 0); - bd->ImeWindow = window; - } - if (!SDL_TextInputActive(window) && (data->WantVisible || data->WantTextInput)) - SDL_StartTextInput(window); -} - -// Not static to allow third-party code to use that if they want to (but undocumented) -ImGuiKey ImGui_ImplSDL3_KeyEventToImGuiKey(SDL_Keycode keycode, SDL_Scancode scancode); -ImGuiKey ImGui_ImplSDL3_KeyEventToImGuiKey(SDL_Keycode keycode, SDL_Scancode scancode) -{ - // Keypad doesn't have individual key values in SDL3 - switch (scancode) - { - case SDL_SCANCODE_KP_0: return ImGuiKey_Keypad0; - case SDL_SCANCODE_KP_1: return ImGuiKey_Keypad1; - case SDL_SCANCODE_KP_2: return ImGuiKey_Keypad2; - case SDL_SCANCODE_KP_3: return ImGuiKey_Keypad3; - case SDL_SCANCODE_KP_4: return ImGuiKey_Keypad4; - case SDL_SCANCODE_KP_5: return ImGuiKey_Keypad5; - case SDL_SCANCODE_KP_6: return ImGuiKey_Keypad6; - case SDL_SCANCODE_KP_7: return ImGuiKey_Keypad7; - case SDL_SCANCODE_KP_8: return ImGuiKey_Keypad8; - case SDL_SCANCODE_KP_9: return ImGuiKey_Keypad9; - case SDL_SCANCODE_KP_PERIOD: return ImGuiKey_KeypadDecimal; - case SDL_SCANCODE_KP_DIVIDE: return ImGuiKey_KeypadDivide; - case SDL_SCANCODE_KP_MULTIPLY: return ImGuiKey_KeypadMultiply; - case SDL_SCANCODE_KP_MINUS: return ImGuiKey_KeypadSubtract; - case SDL_SCANCODE_KP_PLUS: return ImGuiKey_KeypadAdd; - case SDL_SCANCODE_KP_ENTER: return ImGuiKey_KeypadEnter; - case SDL_SCANCODE_KP_EQUALS: return ImGuiKey_KeypadEqual; - default: break; - } - switch (keycode) - { - case SDLK_TAB: return ImGuiKey_Tab; - case SDLK_LEFT: return ImGuiKey_LeftArrow; - case SDLK_RIGHT: return ImGuiKey_RightArrow; - case SDLK_UP: return ImGuiKey_UpArrow; - case SDLK_DOWN: return ImGuiKey_DownArrow; - case SDLK_PAGEUP: return ImGuiKey_PageUp; - case SDLK_PAGEDOWN: return ImGuiKey_PageDown; - case SDLK_HOME: return ImGuiKey_Home; - case SDLK_END: return ImGuiKey_End; - case SDLK_INSERT: return ImGuiKey_Insert; - case SDLK_DELETE: return ImGuiKey_Delete; - case SDLK_BACKSPACE: return ImGuiKey_Backspace; - case SDLK_SPACE: return ImGuiKey_Space; - case SDLK_RETURN: return ImGuiKey_Enter; - case SDLK_ESCAPE: return ImGuiKey_Escape; - //case SDLK_APOSTROPHE: return ImGuiKey_Apostrophe; - case SDLK_COMMA: return ImGuiKey_Comma; - //case SDLK_MINUS: return ImGuiKey_Minus; - case SDLK_PERIOD: return ImGuiKey_Period; - //case SDLK_SLASH: return ImGuiKey_Slash; - case SDLK_SEMICOLON: return ImGuiKey_Semicolon; - //case SDLK_EQUALS: return ImGuiKey_Equal; - //case SDLK_LEFTBRACKET: return ImGuiKey_LeftBracket; - //case SDLK_BACKSLASH: return ImGuiKey_Backslash; - //case SDLK_RIGHTBRACKET: return ImGuiKey_RightBracket; - //case SDLK_GRAVE: return ImGuiKey_GraveAccent; - case SDLK_CAPSLOCK: return ImGuiKey_CapsLock; - case SDLK_SCROLLLOCK: return ImGuiKey_ScrollLock; - case SDLK_NUMLOCKCLEAR: return ImGuiKey_NumLock; - case SDLK_PRINTSCREEN: return ImGuiKey_PrintScreen; - case SDLK_PAUSE: return ImGuiKey_Pause; - case SDLK_LCTRL: return ImGuiKey_LeftCtrl; - case SDLK_LSHIFT: return ImGuiKey_LeftShift; - case SDLK_LALT: return ImGuiKey_LeftAlt; - case SDLK_LGUI: return ImGuiKey_LeftSuper; - case SDLK_RCTRL: return ImGuiKey_RightCtrl; - case SDLK_RSHIFT: return ImGuiKey_RightShift; - case SDLK_RALT: return ImGuiKey_RightAlt; - case SDLK_RGUI: return ImGuiKey_RightSuper; - case SDLK_APPLICATION: return ImGuiKey_Menu; - case SDLK_0: return ImGuiKey_0; - case SDLK_1: return ImGuiKey_1; - case SDLK_2: return ImGuiKey_2; - case SDLK_3: return ImGuiKey_3; - case SDLK_4: return ImGuiKey_4; - case SDLK_5: return ImGuiKey_5; - case SDLK_6: return ImGuiKey_6; - case SDLK_7: return ImGuiKey_7; - case SDLK_8: return ImGuiKey_8; - case SDLK_9: return ImGuiKey_9; - case SDLK_A: return ImGuiKey_A; - case SDLK_B: return ImGuiKey_B; - case SDLK_C: return ImGuiKey_C; - case SDLK_D: return ImGuiKey_D; - case SDLK_E: return ImGuiKey_E; - case SDLK_F: return ImGuiKey_F; - case SDLK_G: return ImGuiKey_G; - case SDLK_H: return ImGuiKey_H; - case SDLK_I: return ImGuiKey_I; - case SDLK_J: return ImGuiKey_J; - case SDLK_K: return ImGuiKey_K; - case SDLK_L: return ImGuiKey_L; - case SDLK_M: return ImGuiKey_M; - case SDLK_N: return ImGuiKey_N; - case SDLK_O: return ImGuiKey_O; - case SDLK_P: return ImGuiKey_P; - case SDLK_Q: return ImGuiKey_Q; - case SDLK_R: return ImGuiKey_R; - case SDLK_S: return ImGuiKey_S; - case SDLK_T: return ImGuiKey_T; - case SDLK_U: return ImGuiKey_U; - case SDLK_V: return ImGuiKey_V; - case SDLK_W: return ImGuiKey_W; - case SDLK_X: return ImGuiKey_X; - case SDLK_Y: return ImGuiKey_Y; - case SDLK_Z: return ImGuiKey_Z; - case SDLK_F1: return ImGuiKey_F1; - case SDLK_F2: return ImGuiKey_F2; - case SDLK_F3: return ImGuiKey_F3; - case SDLK_F4: return ImGuiKey_F4; - case SDLK_F5: return ImGuiKey_F5; - case SDLK_F6: return ImGuiKey_F6; - case SDLK_F7: return ImGuiKey_F7; - case SDLK_F8: return ImGuiKey_F8; - case SDLK_F9: return ImGuiKey_F9; - case SDLK_F10: return ImGuiKey_F10; - case SDLK_F11: return ImGuiKey_F11; - case SDLK_F12: return ImGuiKey_F12; - case SDLK_F13: return ImGuiKey_F13; - case SDLK_F14: return ImGuiKey_F14; - case SDLK_F15: return ImGuiKey_F15; - case SDLK_F16: return ImGuiKey_F16; - case SDLK_F17: return ImGuiKey_F17; - case SDLK_F18: return ImGuiKey_F18; - case SDLK_F19: return ImGuiKey_F19; - case SDLK_F20: return ImGuiKey_F20; - case SDLK_F21: return ImGuiKey_F21; - case SDLK_F22: return ImGuiKey_F22; - case SDLK_F23: return ImGuiKey_F23; - case SDLK_F24: return ImGuiKey_F24; - case SDLK_AC_BACK: return ImGuiKey_AppBack; - case SDLK_AC_FORWARD: return ImGuiKey_AppForward; - default: break; - } - - // Fallback to scancode - switch (scancode) - { - case SDL_SCANCODE_GRAVE: return ImGuiKey_GraveAccent; - case SDL_SCANCODE_MINUS: return ImGuiKey_Minus; - case SDL_SCANCODE_EQUALS: return ImGuiKey_Equal; - case SDL_SCANCODE_LEFTBRACKET: return ImGuiKey_LeftBracket; - case SDL_SCANCODE_RIGHTBRACKET: return ImGuiKey_RightBracket; - case SDL_SCANCODE_NONUSBACKSLASH: return ImGuiKey_Oem102; - case SDL_SCANCODE_BACKSLASH: return ImGuiKey_Backslash; - case SDL_SCANCODE_SEMICOLON: return ImGuiKey_Semicolon; - case SDL_SCANCODE_APOSTROPHE: return ImGuiKey_Apostrophe; - case SDL_SCANCODE_COMMA: return ImGuiKey_Comma; - case SDL_SCANCODE_PERIOD: return ImGuiKey_Period; - case SDL_SCANCODE_SLASH: return ImGuiKey_Slash; - default: break; - } - return ImGuiKey_None; -} - -static void ImGui_ImplSDL3_UpdateKeyModifiers(SDL_Keymod sdl_key_mods) -{ - ImGuiIO& io = ImGui::GetIO(); - io.AddKeyEvent(ImGuiMod_Ctrl, (sdl_key_mods & SDL_KMOD_CTRL) != 0); - io.AddKeyEvent(ImGuiMod_Shift, (sdl_key_mods & SDL_KMOD_SHIFT) != 0); - io.AddKeyEvent(ImGuiMod_Alt, (sdl_key_mods & SDL_KMOD_ALT) != 0); - io.AddKeyEvent(ImGuiMod_Super, (sdl_key_mods & SDL_KMOD_GUI) != 0); -} - - -static ImGuiViewport* ImGui_ImplSDL3_GetViewportForWindowID(SDL_WindowID window_id) -{ - ImGui_ImplSDL3_Data* bd = ImGui_ImplSDL3_GetBackendData(); - return (window_id == bd->WindowID) ? ImGui::GetMainViewport() : nullptr; -} - -// You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. -// - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. -// - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. -// Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. -// If you have multiple SDL events and some of them are not meant to be used by dear imgui, you may need to filter events based on their windowID field. -bool ImGui_ImplSDL3_ProcessEvent(const SDL_Event* event) -{ - ImGui_ImplSDL3_Data* bd = ImGui_ImplSDL3_GetBackendData(); - IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplSDL3_Init()?"); - ImGuiIO& io = ImGui::GetIO(); - - switch (event->type) - { - case SDL_EVENT_MOUSE_MOTION: - { - if (ImGui_ImplSDL3_GetViewportForWindowID(event->motion.windowID) == nullptr) - return false; - ImVec2 mouse_pos((float)event->motion.x, (float)event->motion.y); - io.AddMouseSourceEvent(event->motion.which == SDL_TOUCH_MOUSEID ? ImGuiMouseSource_TouchScreen : ImGuiMouseSource_Mouse); - io.AddMousePosEvent(mouse_pos.x, mouse_pos.y); - return true; - } - case SDL_EVENT_MOUSE_WHEEL: - { - if (ImGui_ImplSDL3_GetViewportForWindowID(event->wheel.windowID) == nullptr) - return false; - //IMGUI_DEBUG_LOG("wheel %.2f %.2f, precise %.2f %.2f\n", (float)event->wheel.x, (float)event->wheel.y, event->wheel.preciseX, event->wheel.preciseY); - float wheel_x = -event->wheel.x; - float wheel_y = event->wheel.y; - io.AddMouseSourceEvent(event->wheel.which == SDL_TOUCH_MOUSEID ? ImGuiMouseSource_TouchScreen : ImGuiMouseSource_Mouse); - io.AddMouseWheelEvent(wheel_x, wheel_y); - return true; - } - case SDL_EVENT_MOUSE_BUTTON_DOWN: - case SDL_EVENT_MOUSE_BUTTON_UP: - { - if (ImGui_ImplSDL3_GetViewportForWindowID(event->button.windowID) == nullptr) - return false; - int mouse_button = -1; - if (event->button.button == SDL_BUTTON_LEFT) { mouse_button = 0; } - if (event->button.button == SDL_BUTTON_RIGHT) { mouse_button = 1; } - if (event->button.button == SDL_BUTTON_MIDDLE) { mouse_button = 2; } - if (event->button.button == SDL_BUTTON_X1) { mouse_button = 3; } - if (event->button.button == SDL_BUTTON_X2) { mouse_button = 4; } - if (mouse_button == -1) - break; - io.AddMouseSourceEvent(event->button.which == SDL_TOUCH_MOUSEID ? ImGuiMouseSource_TouchScreen : ImGuiMouseSource_Mouse); - io.AddMouseButtonEvent(mouse_button, (event->type == SDL_EVENT_MOUSE_BUTTON_DOWN)); - bd->MouseButtonsDown = (event->type == SDL_EVENT_MOUSE_BUTTON_DOWN) ? (bd->MouseButtonsDown | (1 << mouse_button)) : (bd->MouseButtonsDown & ~(1 << mouse_button)); - return true; - } - case SDL_EVENT_TEXT_INPUT: - { - if (ImGui_ImplSDL3_GetViewportForWindowID(event->text.windowID) == nullptr) - return false; - io.AddInputCharactersUTF8(event->text.text); - return true; - } - case SDL_EVENT_KEY_DOWN: - case SDL_EVENT_KEY_UP: - { - if (ImGui_ImplSDL3_GetViewportForWindowID(event->key.windowID) == nullptr) - return false; - ImGui_ImplSDL3_UpdateKeyModifiers((SDL_Keymod)event->key.mod); - //IMGUI_DEBUG_LOG("SDL_EVENT_KEY_%s : key=%d ('%s'), scancode=%d ('%s'), mod=%X\n", - // (event->type == SDL_EVENT_KEY_DOWN) ? "DOWN" : "UP ", event->key.key, SDL_GetKeyName(event->key.key), event->key.scancode, SDL_GetScancodeName(event->key.scancode), event->key.mod); - ImGuiKey key = ImGui_ImplSDL3_KeyEventToImGuiKey(event->key.key, event->key.scancode); - io.AddKeyEvent(key, (event->type == SDL_EVENT_KEY_DOWN)); - io.SetKeyEventNativeData(key, (int)event->key.key, (int)event->key.scancode, (int)event->key.scancode); // To support legacy indexing (<1.87 user code). Legacy backend uses SDLK_*** as indices to IsKeyXXX() functions. - return true; - } - case SDL_EVENT_WINDOW_MOUSE_ENTER: - { - if (ImGui_ImplSDL3_GetViewportForWindowID(event->window.windowID) == nullptr) - return false; - bd->MouseWindowID = event->window.windowID; - bd->MousePendingLeaveFrame = 0; - return true; - } - // - In some cases, when detaching a window from main viewport SDL may send SDL_WINDOWEVENT_ENTER one frame too late, - // causing SDL_WINDOWEVENT_LEAVE on previous frame to interrupt drag operation by clear mouse position. This is why - // we delay process the SDL_WINDOWEVENT_LEAVE events by one frame. See issue #5012 for details. - // FIXME: Unconfirmed whether this is still needed with SDL3. - case SDL_EVENT_WINDOW_MOUSE_LEAVE: - { - if (ImGui_ImplSDL3_GetViewportForWindowID(event->window.windowID) == nullptr) - return false; - bd->MousePendingLeaveFrame = ImGui::GetFrameCount() + 1; - return true; - } - case SDL_EVENT_WINDOW_FOCUS_GAINED: - case SDL_EVENT_WINDOW_FOCUS_LOST: - { - if (ImGui_ImplSDL3_GetViewportForWindowID(event->window.windowID) == nullptr) - return false; - io.AddFocusEvent(event->type == SDL_EVENT_WINDOW_FOCUS_GAINED); - return true; - } - case SDL_EVENT_GAMEPAD_ADDED: - case SDL_EVENT_GAMEPAD_REMOVED: - { - bd->WantUpdateGamepadsList = true; - return true; - } - default: - break; - } - return false; -} - -static void ImGui_ImplSDL3_SetupPlatformHandles(ImGuiViewport* viewport, SDL_Window* window) -{ - viewport->PlatformHandle = (void*)(intptr_t)SDL_GetWindowID(window); - viewport->PlatformHandleRaw = nullptr; -#if defined(_WIN32) && !defined(__WINRT__) - viewport->PlatformHandleRaw = (HWND)SDL_GetPointerProperty(SDL_GetWindowProperties(window), SDL_PROP_WINDOW_WIN32_HWND_POINTER, nullptr); -#elif defined(__APPLE__) - viewport->PlatformHandleRaw = SDL_GetPointerProperty(SDL_GetWindowProperties(window), SDL_PROP_WINDOW_COCOA_WINDOW_POINTER, nullptr); -#endif -} - -static bool ImGui_ImplSDL3_Init(SDL_Window* window, SDL_Renderer* renderer, void* sdl_gl_context) -{ - ImGuiIO& io = ImGui::GetIO(); - IMGUI_CHECKVERSION(); - IM_ASSERT(io.BackendPlatformUserData == nullptr && "Already initialized a platform backend!"); - IM_UNUSED(sdl_gl_context); // Unused in this branch - - const int ver_linked = SDL_GetVersion(); - - // Setup backend capabilities flags - ImGui_ImplSDL3_Data* bd = IM_NEW(ImGui_ImplSDL3_Data)(); - snprintf(bd->BackendPlatformName, sizeof(bd->BackendPlatformName), "imgui_impl_sdl3 (%d.%d.%d; %d.%d.%d)", - SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_MICRO_VERSION, SDL_VERSIONNUM_MAJOR(ver_linked), SDL_VERSIONNUM_MINOR(ver_linked), SDL_VERSIONNUM_MICRO(ver_linked)); - io.BackendPlatformUserData = (void*)bd; - io.BackendPlatformName = bd->BackendPlatformName; - io.BackendFlags |= ImGuiBackendFlags_HasMouseCursors; // We can honor GetMouseCursor() values (optional) - io.BackendFlags |= ImGuiBackendFlags_HasSetMousePos; // We can honor io.WantSetMousePos requests (optional, rarely used) - - bd->Window = window; - bd->WindowID = SDL_GetWindowID(window); - bd->Renderer = renderer; - - // Check and store if we are on a SDL backend that supports SDL_GetGlobalMouseState() and SDL_CaptureMouse() - // ("wayland" and "rpi" don't support it, but we chose to use a white-list instead of a black-list) - bd->MouseCanUseGlobalState = false; - bd->MouseCanUseCapture = false; -#if SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE - const char* sdl_backend = SDL_GetCurrentVideoDriver(); - const char* capture_and_global_state_whitelist[] = { "windows", "cocoa", "x11", "DIVE", "VMAN" }; - for (const char* item : capture_and_global_state_whitelist) - if (strncmp(sdl_backend, item, strlen(item)) == 0) - bd->MouseCanUseGlobalState = bd->MouseCanUseCapture = true; -#endif - - ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); - platform_io.Platform_SetClipboardTextFn = ImGui_ImplSDL3_SetClipboardText; - platform_io.Platform_GetClipboardTextFn = ImGui_ImplSDL3_GetClipboardText; - platform_io.Platform_SetImeDataFn = ImGui_ImplSDL3_PlatformSetImeData; - platform_io.Platform_OpenInShellFn = [](ImGuiContext*, const char* url) { return SDL_OpenURL(url) == 0; }; - - // Gamepad handling - bd->GamepadMode = ImGui_ImplSDL3_GamepadMode_AutoFirst; - bd->WantUpdateGamepadsList = true; - - // Load mouse cursors - bd->MouseCursors[ImGuiMouseCursor_Arrow] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_DEFAULT); - bd->MouseCursors[ImGuiMouseCursor_TextInput] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_TEXT); - bd->MouseCursors[ImGuiMouseCursor_ResizeAll] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_MOVE); - bd->MouseCursors[ImGuiMouseCursor_ResizeNS] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_NS_RESIZE); - bd->MouseCursors[ImGuiMouseCursor_ResizeEW] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_EW_RESIZE); - bd->MouseCursors[ImGuiMouseCursor_ResizeNESW] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_NESW_RESIZE); - bd->MouseCursors[ImGuiMouseCursor_ResizeNWSE] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_NWSE_RESIZE); - bd->MouseCursors[ImGuiMouseCursor_Hand] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_POINTER); - bd->MouseCursors[ImGuiMouseCursor_Wait] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_WAIT); - bd->MouseCursors[ImGuiMouseCursor_Progress] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_PROGRESS); - bd->MouseCursors[ImGuiMouseCursor_NotAllowed] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_NOT_ALLOWED); - - // Set platform dependent data in viewport - // Our mouse update function expect PlatformHandle to be filled for the main viewport - ImGuiViewport* main_viewport = ImGui::GetMainViewport(); - ImGui_ImplSDL3_SetupPlatformHandles(main_viewport, window); - - // From 2.0.5: Set SDL hint to receive mouse click events on window focus, otherwise SDL doesn't emit the event. - // Without this, when clicking to gain focus, our widgets wouldn't activate even though they showed as hovered. - // (This is unfortunately a global SDL setting, so enabling it might have a side-effect on your application. - // It is unlikely to make a difference, but if your app absolutely needs to ignore the initial on-focus click: - // you can ignore SDL_EVENT_MOUSE_BUTTON_DOWN events coming right after a SDL_WINDOWEVENT_FOCUS_GAINED) -#ifdef SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH - SDL_SetHint(SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH, "1"); -#endif - - // From 2.0.22: Disable auto-capture, this is preventing drag and drop across multiple windows (see #5710) -#ifdef SDL_HINT_MOUSE_AUTO_CAPTURE - SDL_SetHint(SDL_HINT_MOUSE_AUTO_CAPTURE, "0"); -#endif - - return true; -} - -bool ImGui_ImplSDL3_InitForOpenGL(SDL_Window* window, void* sdl_gl_context) -{ - IM_UNUSED(sdl_gl_context); // Viewport branch will need this. - return ImGui_ImplSDL3_Init(window, nullptr, sdl_gl_context); -} - -bool ImGui_ImplSDL3_InitForVulkan(SDL_Window* window) -{ - return ImGui_ImplSDL3_Init(window, nullptr, nullptr); -} - -bool ImGui_ImplSDL3_InitForD3D(SDL_Window* window) -{ -#if !defined(_WIN32) - IM_ASSERT(0 && "Unsupported"); -#endif - return ImGui_ImplSDL3_Init(window, nullptr, nullptr); -} - -bool ImGui_ImplSDL3_InitForMetal(SDL_Window* window) -{ - return ImGui_ImplSDL3_Init(window, nullptr, nullptr); -} - -bool ImGui_ImplSDL3_InitForSDLRenderer(SDL_Window* window, SDL_Renderer* renderer) -{ - return ImGui_ImplSDL3_Init(window, renderer, nullptr); -} - -bool ImGui_ImplSDL3_InitForSDLGPU(SDL_Window* window) -{ - return ImGui_ImplSDL3_Init(window, nullptr, nullptr); -} - -bool ImGui_ImplSDL3_InitForOther(SDL_Window* window) -{ - return ImGui_ImplSDL3_Init(window, nullptr, nullptr); -} - -static void ImGui_ImplSDL3_CloseGamepads(); - -void ImGui_ImplSDL3_Shutdown() -{ - ImGui_ImplSDL3_Data* bd = ImGui_ImplSDL3_GetBackendData(); - IM_ASSERT(bd != nullptr && "No platform backend to shutdown, or already shutdown?"); - ImGuiIO& io = ImGui::GetIO(); - - if (bd->ClipboardTextData) - SDL_free(bd->ClipboardTextData); - for (ImGuiMouseCursor cursor_n = 0; cursor_n < ImGuiMouseCursor_COUNT; cursor_n++) - SDL_DestroyCursor(bd->MouseCursors[cursor_n]); - ImGui_ImplSDL3_CloseGamepads(); - - io.BackendPlatformName = nullptr; - io.BackendPlatformUserData = nullptr; - io.BackendFlags &= ~(ImGuiBackendFlags_HasMouseCursors | ImGuiBackendFlags_HasSetMousePos | ImGuiBackendFlags_HasGamepad); - IM_DELETE(bd); -} - -static void ImGui_ImplSDL3_UpdateMouseData() -{ - ImGui_ImplSDL3_Data* bd = ImGui_ImplSDL3_GetBackendData(); - ImGuiIO& io = ImGui::GetIO(); - - // We forward mouse input when hovered or captured (via SDL_EVENT_MOUSE_MOTION) or when focused (below) -#if SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE - // - SDL_CaptureMouse() let the OS know e.g. that our drags can extend outside of parent boundaries (we want updated position) and shouldn't trigger other operations outside. - // - Debuggers under Linux tends to leave captured mouse on break, which may be very inconvenient, so to mitigate the issue we wait until mouse has moved to begin capture. - if (bd->MouseCanUseCapture) - { - bool want_capture = false; - for (int button_n = 0; button_n < ImGuiMouseButton_COUNT && !want_capture; button_n++) - if (ImGui::IsMouseDragging(button_n, 1.0f)) - want_capture = true; - SDL_CaptureMouse(want_capture); - } - - SDL_Window* focused_window = SDL_GetKeyboardFocus(); - const bool is_app_focused = (bd->Window == focused_window); -#else - SDL_Window* focused_window = bd->Window; - const bool is_app_focused = (SDL_GetWindowFlags(bd->Window) & SDL_WINDOW_INPUT_FOCUS) != 0; // SDL 2.0.3 and non-windowed systems: single-viewport only -#endif - if (is_app_focused) - { - // (Optional) Set OS mouse position from Dear ImGui if requested (rarely used, only when io.ConfigNavMoveSetMousePos is enabled by user) - if (io.WantSetMousePos) - SDL_WarpMouseInWindow(bd->Window, io.MousePos.x, io.MousePos.y); - - // (Optional) Fallback to provide mouse position when focused (SDL_EVENT_MOUSE_MOTION already provides this when hovered or captured) - const bool is_relative_mouse_mode = SDL_GetWindowRelativeMouseMode(bd->Window); - if (bd->MouseCanUseGlobalState && bd->MouseButtonsDown == 0 && !is_relative_mouse_mode) - { - // Single-viewport mode: mouse position in client window coordinates (io.MousePos is (0,0) when the mouse is on the upper-left corner of the app window) - float mouse_x_global, mouse_y_global; - int window_x, window_y; - SDL_GetGlobalMouseState(&mouse_x_global, &mouse_y_global); - SDL_GetWindowPosition(focused_window, &window_x, &window_y); - io.AddMousePosEvent(mouse_x_global - window_x, mouse_y_global - window_y); - } - } -} - -static void ImGui_ImplSDL3_UpdateMouseCursor() -{ - ImGuiIO& io = ImGui::GetIO(); - if (io.ConfigFlags & ImGuiConfigFlags_NoMouseCursorChange) - return; - ImGui_ImplSDL3_Data* bd = ImGui_ImplSDL3_GetBackendData(); - - ImGuiMouseCursor imgui_cursor = ImGui::GetMouseCursor(); - if (io.MouseDrawCursor || imgui_cursor == ImGuiMouseCursor_None) - { - // Hide OS mouse cursor if imgui is drawing it or if it wants no cursor - SDL_HideCursor(); - } - else - { - // Show OS mouse cursor - SDL_Cursor* expected_cursor = bd->MouseCursors[imgui_cursor] ? bd->MouseCursors[imgui_cursor] : bd->MouseCursors[ImGuiMouseCursor_Arrow]; - if (bd->MouseLastCursor != expected_cursor) - { - SDL_SetCursor(expected_cursor); // SDL function doesn't have an early out (see #6113) - bd->MouseLastCursor = expected_cursor; - } - SDL_ShowCursor(); - } -} - -static void ImGui_ImplSDL3_CloseGamepads() -{ - ImGui_ImplSDL3_Data* bd = ImGui_ImplSDL3_GetBackendData(); - if (bd->GamepadMode != ImGui_ImplSDL3_GamepadMode_Manual) - for (SDL_Gamepad* gamepad : bd->Gamepads) - SDL_CloseGamepad(gamepad); - bd->Gamepads.resize(0); -} - -void ImGui_ImplSDL3_SetGamepadMode(ImGui_ImplSDL3_GamepadMode mode, SDL_Gamepad** manual_gamepads_array, int manual_gamepads_count) -{ - ImGui_ImplSDL3_Data* bd = ImGui_ImplSDL3_GetBackendData(); - ImGui_ImplSDL3_CloseGamepads(); - if (mode == ImGui_ImplSDL3_GamepadMode_Manual) - { - IM_ASSERT(manual_gamepads_array != nullptr || manual_gamepads_count <= 0); - for (int n = 0; n < manual_gamepads_count; n++) - bd->Gamepads.push_back(manual_gamepads_array[n]); - } - else - { - IM_ASSERT(manual_gamepads_array == nullptr && manual_gamepads_count <= 0); - bd->WantUpdateGamepadsList = true; - } - bd->GamepadMode = mode; -} - -static void ImGui_ImplSDL3_UpdateGamepadButton(ImGui_ImplSDL3_Data* bd, ImGuiIO& io, ImGuiKey key, SDL_GamepadButton button_no) -{ - bool merged_value = false; - for (SDL_Gamepad* gamepad : bd->Gamepads) - merged_value |= SDL_GetGamepadButton(gamepad, button_no) != 0; - io.AddKeyEvent(key, merged_value); -} - -static inline float Saturate(float v) { return v < 0.0f ? 0.0f : v > 1.0f ? 1.0f : v; } -static void ImGui_ImplSDL3_UpdateGamepadAnalog(ImGui_ImplSDL3_Data* bd, ImGuiIO& io, ImGuiKey key, SDL_GamepadAxis axis_no, float v0, float v1) -{ - float merged_value = 0.0f; - for (SDL_Gamepad* gamepad : bd->Gamepads) - { - float vn = Saturate((float)(SDL_GetGamepadAxis(gamepad, axis_no) - v0) / (float)(v1 - v0)); - if (merged_value < vn) - merged_value = vn; - } - io.AddKeyAnalogEvent(key, merged_value > 0.1f, merged_value); -} - -static void ImGui_ImplSDL3_UpdateGamepads() -{ - ImGuiIO& io = ImGui::GetIO(); - ImGui_ImplSDL3_Data* bd = ImGui_ImplSDL3_GetBackendData(); - - // Update list of gamepads to use - if (bd->WantUpdateGamepadsList && bd->GamepadMode != ImGui_ImplSDL3_GamepadMode_Manual) - { - ImGui_ImplSDL3_CloseGamepads(); - int sdl_gamepads_count = 0; - SDL_JoystickID* sdl_gamepads = SDL_GetGamepads(&sdl_gamepads_count); - for (int n = 0; n < sdl_gamepads_count; n++) - if (SDL_Gamepad* gamepad = SDL_OpenGamepad(sdl_gamepads[n])) - { - bd->Gamepads.push_back(gamepad); - if (bd->GamepadMode == ImGui_ImplSDL3_GamepadMode_AutoFirst) - break; - } - bd->WantUpdateGamepadsList = false; - SDL_free(sdl_gamepads); - } - - io.BackendFlags &= ~ImGuiBackendFlags_HasGamepad; - if (bd->Gamepads.Size == 0) - return; - io.BackendFlags |= ImGuiBackendFlags_HasGamepad; - - // Update gamepad inputs - const int thumb_dead_zone = 8000; // SDL_gamepad.h suggests using this value. - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadStart, SDL_GAMEPAD_BUTTON_START); - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadBack, SDL_GAMEPAD_BUTTON_BACK); - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceLeft, SDL_GAMEPAD_BUTTON_WEST); // Xbox X, PS Square - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceRight, SDL_GAMEPAD_BUTTON_EAST); // Xbox B, PS Circle - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceUp, SDL_GAMEPAD_BUTTON_NORTH); // Xbox Y, PS Triangle - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceDown, SDL_GAMEPAD_BUTTON_SOUTH); // Xbox A, PS Cross - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadLeft, SDL_GAMEPAD_BUTTON_DPAD_LEFT); - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadRight, SDL_GAMEPAD_BUTTON_DPAD_RIGHT); - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadUp, SDL_GAMEPAD_BUTTON_DPAD_UP); - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadDown, SDL_GAMEPAD_BUTTON_DPAD_DOWN); - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadL1, SDL_GAMEPAD_BUTTON_LEFT_SHOULDER); - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadR1, SDL_GAMEPAD_BUTTON_RIGHT_SHOULDER); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadL2, SDL_GAMEPAD_AXIS_LEFT_TRIGGER, 0.0f, 32767); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadR2, SDL_GAMEPAD_AXIS_RIGHT_TRIGGER, 0.0f, 32767); - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadL3, SDL_GAMEPAD_BUTTON_LEFT_STICK); - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadR3, SDL_GAMEPAD_BUTTON_RIGHT_STICK); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickLeft, SDL_GAMEPAD_AXIS_LEFTX, -thumb_dead_zone, -32768); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickRight, SDL_GAMEPAD_AXIS_LEFTX, +thumb_dead_zone, +32767); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickUp, SDL_GAMEPAD_AXIS_LEFTY, -thumb_dead_zone, -32768); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickDown, SDL_GAMEPAD_AXIS_LEFTY, +thumb_dead_zone, +32767); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickLeft, SDL_GAMEPAD_AXIS_RIGHTX, -thumb_dead_zone, -32768); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickRight, SDL_GAMEPAD_AXIS_RIGHTX, +thumb_dead_zone, +32767); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickUp, SDL_GAMEPAD_AXIS_RIGHTY, -thumb_dead_zone, -32768); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickDown, SDL_GAMEPAD_AXIS_RIGHTY, +thumb_dead_zone, +32767); -} - -static void ImGui_ImplSDL3_GetWindowSizeAndFramebufferScale(SDL_Window* window, ImVec2* out_size, ImVec2* out_framebuffer_scale) -{ - int w, h; - int display_w, display_h; - SDL_GetWindowSize(window, &w, &h); - if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED) - w = h = 0; - SDL_GetWindowSizeInPixels(window, &display_w, &display_h); - if (out_size != nullptr) - *out_size = ImVec2((float)w, (float)h); - if (out_framebuffer_scale != nullptr) - *out_framebuffer_scale = (w > 0 && h > 0) ? ImVec2((float)display_w / w, (float)display_h / h) : ImVec2(1.0f, 1.0f); -} - -void ImGui_ImplSDL3_NewFrame() -{ - ImGui_ImplSDL3_Data* bd = ImGui_ImplSDL3_GetBackendData(); - IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplSDL3_Init()?"); - ImGuiIO& io = ImGui::GetIO(); - - // Setup main viewport size (every frame to accommodate for window resizing) - ImGui_ImplSDL3_GetWindowSizeAndFramebufferScale(bd->Window, &io.DisplaySize, &io.DisplayFramebufferScale); - - // Setup time step (we could also use SDL_GetTicksNS() available since SDL3) - // (Accept SDL_GetPerformanceCounter() not returning a monotonically increasing value. Happens in VMs and Emscripten, see #6189, #6114, #3644) - static Uint64 frequency = SDL_GetPerformanceFrequency(); - Uint64 current_time = SDL_GetPerformanceCounter(); - if (current_time <= bd->Time) - current_time = bd->Time + 1; - io.DeltaTime = bd->Time > 0 ? (float)((double)(current_time - bd->Time) / frequency) : (float)(1.0f / 60.0f); - bd->Time = current_time; - - if (bd->MousePendingLeaveFrame && bd->MousePendingLeaveFrame >= ImGui::GetFrameCount() && bd->MouseButtonsDown == 0) - { - bd->MouseWindowID = 0; - bd->MousePendingLeaveFrame = 0; - io.AddMousePosEvent(-FLT_MAX, -FLT_MAX); - } - - ImGui_ImplSDL3_UpdateMouseData(); - ImGui_ImplSDL3_UpdateMouseCursor(); - - // Update game controllers (if enabled and available) - ImGui_ImplSDL3_UpdateGamepads(); -} - -//----------------------------------------------------------------------------- - -#if defined(__clang__) -#pragma clang diagnostic pop -#endif - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_sdl3.h b/libs/imgui-1.92.1/backends/imgui_impl_sdl3.h deleted file mode 100644 index a822a25..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_sdl3.h +++ /dev/null @@ -1,47 +0,0 @@ -// dear imgui: Platform Backend for SDL3 -// This needs to be used along with a Renderer (e.g. SDL_GPU, DirectX11, OpenGL3, Vulkan..) -// (Info: SDL3 is a cross-platform general purpose library for handling windows, inputs, graphics context creation, etc.) - -// Implemented features: -// [X] Platform: Clipboard support. -// [X] Platform: Mouse support. Can discriminate Mouse/TouchScreen. -// [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy SDL_SCANCODE_* values are obsolete since 1.87 and not supported since 1.91.5] -// [X] Platform: Gamepad support. -// [X] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. -// [X] Platform: IME support. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#pragma once -#include "imgui.h" // IMGUI_IMPL_API -#ifndef IMGUI_DISABLE - -struct SDL_Window; -struct SDL_Renderer; -struct SDL_Gamepad; -typedef union SDL_Event SDL_Event; - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplSDL3_InitForOpenGL(SDL_Window* window, void* sdl_gl_context); -IMGUI_IMPL_API bool ImGui_ImplSDL3_InitForVulkan(SDL_Window* window); -IMGUI_IMPL_API bool ImGui_ImplSDL3_InitForD3D(SDL_Window* window); -IMGUI_IMPL_API bool ImGui_ImplSDL3_InitForMetal(SDL_Window* window); -IMGUI_IMPL_API bool ImGui_ImplSDL3_InitForSDLRenderer(SDL_Window* window, SDL_Renderer* renderer); -IMGUI_IMPL_API bool ImGui_ImplSDL3_InitForSDLGPU(SDL_Window* window); -IMGUI_IMPL_API bool ImGui_ImplSDL3_InitForOther(SDL_Window* window); -IMGUI_IMPL_API void ImGui_ImplSDL3_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplSDL3_NewFrame(); -IMGUI_IMPL_API bool ImGui_ImplSDL3_ProcessEvent(const SDL_Event* event); - -// Gamepad selection automatically starts in AutoFirst mode, picking first available SDL_Gamepad. You may override this. -// When using manual mode, caller is responsible for opening/closing gamepad. -enum ImGui_ImplSDL3_GamepadMode { ImGui_ImplSDL3_GamepadMode_AutoFirst, ImGui_ImplSDL3_GamepadMode_AutoAll, ImGui_ImplSDL3_GamepadMode_Manual }; -IMGUI_IMPL_API void ImGui_ImplSDL3_SetGamepadMode(ImGui_ImplSDL3_GamepadMode mode, SDL_Gamepad** manual_gamepads_array = nullptr, int manual_gamepads_count = -1); - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_sdlgpu3.cpp b/libs/imgui-1.92.1/backends/imgui_impl_sdlgpu3.cpp deleted file mode 100644 index 927e511..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_sdlgpu3.cpp +++ /dev/null @@ -1,661 +0,0 @@ -// dear imgui: Renderer Backend for SDL_GPU -// This needs to be used along with the SDL3 Platform Backend - -// Implemented features: -// [X] Renderer: User texture binding. Use simply cast a reference to your SDL_GPUTextureSamplerBinding to ImTextureID. -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). - -// The aim of imgui_impl_sdlgpu3.h/.cpp is to be usable in your engine without any modification. -// IF YOU FEEL YOU NEED TO MAKE ANY CHANGE TO THIS CODE, please share them and your feedback at https://github.com/ocornut/imgui/ - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// Important note to the reader who wish to integrate imgui_impl_sdlgpu3.cpp/.h in their own engine/app. -// - Unlike other backends, the user must call the function ImGui_ImplSDLGPU3_PrepareDrawData() BEFORE issuing a SDL_GPURenderPass containing ImGui_ImplSDLGPU3_RenderDrawData. -// Calling the function is MANDATORY, otherwise the ImGui will not upload neither the vertex nor the index buffer for the GPU. See imgui_impl_sdlgpu3.cpp for more info. - -// CHANGELOG -// 2025-06-25: Mapping transfer buffer for texture update use cycle=true. Fixes artifacts e.g. on Metal backend. -// 2025-06-11: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas. Removed ImGui_ImplSDLGPU3_CreateFontsTexture() and ImGui_ImplSDLGPU3_DestroyFontsTexture(). -// 2025-04-28: Added support for special ImDrawCallback_ResetRenderState callback to reset render state. -// 2025-03-30: Made ImGui_ImplSDLGPU3_PrepareDrawData() reuse GPU Transfer Buffers which were unusually slow to recreate every frame. Much faster now. -// 2025-03-21: Fixed typo in function name Imgui_ImplSDLGPU3_PrepareDrawData() -> ImGui_ImplSDLGPU3_PrepareDrawData(). -// 2025-01-16: Renamed ImGui_ImplSDLGPU3_InitInfo::GpuDevice to Device. -// 2025-01-09: SDL_GPU: Added the SDL_GPU3 backend. - -#include "imgui.h" -#ifndef IMGUI_DISABLE -#include "imgui_impl_sdlgpu3.h" -#include "imgui_impl_sdlgpu3_shaders.h" - -// SDL_GPU Data -struct ImGui_ImplSDLGPU3_Texture -{ - SDL_GPUTexture* Texture = nullptr; - SDL_GPUTextureSamplerBinding TextureSamplerBinding = { nullptr, nullptr }; -}; - -// Reusable buffers used for rendering 1 current in-flight frame, for ImGui_ImplSDLGPU3_RenderDrawData() -struct ImGui_ImplSDLGPU3_FrameData -{ - SDL_GPUBuffer* VertexBuffer = nullptr; - SDL_GPUTransferBuffer* VertexTransferBuffer = nullptr; - uint32_t VertexBufferSize = 0; - SDL_GPUBuffer* IndexBuffer = nullptr; - SDL_GPUTransferBuffer* IndexTransferBuffer = nullptr; - uint32_t IndexBufferSize = 0; -}; - -struct ImGui_ImplSDLGPU3_Data -{ - ImGui_ImplSDLGPU3_InitInfo InitInfo; - - // Graphics pipeline & shaders - SDL_GPUShader* VertexShader = nullptr; - SDL_GPUShader* FragmentShader = nullptr; - SDL_GPUGraphicsPipeline* Pipeline = nullptr; - SDL_GPUSampler* TexSampler = nullptr; - SDL_GPUTransferBuffer* TexTransferBuffer = nullptr; - uint32_t TexTransferBufferSize = 0; - - // Frame data for main window - ImGui_ImplSDLGPU3_FrameData MainWindowFrameData; -}; - -// Forward Declarations -static void ImGui_ImplSDLGPU3_DestroyFrameData(); - -//----------------------------------------------------------------------------- -// FUNCTIONS -//----------------------------------------------------------------------------- - -// Backend data stored in io.BackendRendererUserData to allow support for multiple Dear ImGui contexts -// It is STRONGLY preferred that you use docking branch with multi-viewports (== single Dear ImGui context + multiple windows) instead of multiple Dear ImGui contexts. -// FIXME: multi-context support has never been tested. -static ImGui_ImplSDLGPU3_Data* ImGui_ImplSDLGPU3_GetBackendData() -{ - return ImGui::GetCurrentContext() ? (ImGui_ImplSDLGPU3_Data*)ImGui::GetIO().BackendRendererUserData : nullptr; -} - -static void ImGui_ImplSDLGPU3_SetupRenderState(ImDrawData* draw_data, SDL_GPUGraphicsPipeline* pipeline, SDL_GPUCommandBuffer* command_buffer, SDL_GPURenderPass * render_pass, ImGui_ImplSDLGPU3_FrameData* fd, uint32_t fb_width, uint32_t fb_height) -{ - //ImGui_ImplSDLGPU3_Data* bd = ImGui_ImplSDLGPU3_GetBackendData(); - - // Bind graphics pipeline - SDL_BindGPUGraphicsPipeline(render_pass,pipeline); - - // Bind Vertex And Index Buffers - if (draw_data->TotalVtxCount > 0) - { - SDL_GPUBufferBinding vertex_buffer_binding = {}; - vertex_buffer_binding.buffer = fd->VertexBuffer; - vertex_buffer_binding.offset = 0; - SDL_GPUBufferBinding index_buffer_binding = {}; - index_buffer_binding.buffer = fd->IndexBuffer; - index_buffer_binding.offset = 0; - SDL_BindGPUVertexBuffers(render_pass,0, &vertex_buffer_binding, 1); - SDL_BindGPUIndexBuffer(render_pass, &index_buffer_binding, sizeof(ImDrawIdx) == 2 ? SDL_GPU_INDEXELEMENTSIZE_16BIT : SDL_GPU_INDEXELEMENTSIZE_32BIT); - } - - // Setup viewport - SDL_GPUViewport viewport = {}; - viewport.x = 0; - viewport.y = 0; - viewport.w = (float)fb_width; - viewport.h = (float)fb_height; - viewport.min_depth = 0.0f; - viewport.max_depth = 1.0f; - SDL_SetGPUViewport(render_pass, &viewport); - - // Setup scale and translation - // Our visible imgui space lies from draw_data->DisplayPps (top left) to draw_data->DisplayPos+data_data->DisplaySize (bottom right). DisplayPos is (0,0) for single viewport apps. - struct UBO { float scale[2]; float translation[2]; } ubo; - ubo.scale[0] = 2.0f / draw_data->DisplaySize.x; - ubo.scale[1] = 2.0f / draw_data->DisplaySize.y; - ubo.translation[0] = -1.0f - draw_data->DisplayPos.x * ubo.scale[0]; - ubo.translation[1] = -1.0f - draw_data->DisplayPos.y * ubo.scale[1]; - SDL_PushGPUVertexUniformData(command_buffer, 0, &ubo, sizeof(UBO)); -} - -static void CreateOrResizeBuffers(SDL_GPUBuffer** buffer, SDL_GPUTransferBuffer** transferbuffer, uint32_t* old_size, uint32_t new_size, SDL_GPUBufferUsageFlags usage) -{ - ImGui_ImplSDLGPU3_Data* bd = ImGui_ImplSDLGPU3_GetBackendData(); - ImGui_ImplSDLGPU3_InitInfo* v = &bd->InitInfo; - - // FIXME-OPT: Not optimal, but this is fairly rarely called. - SDL_WaitForGPUIdle(v->Device); - SDL_ReleaseGPUBuffer(v->Device, *buffer); - SDL_ReleaseGPUTransferBuffer(v->Device, *transferbuffer); - - SDL_GPUBufferCreateInfo buffer_info = {}; - buffer_info.usage = usage; - buffer_info.size = new_size; - buffer_info.props = 0; - *buffer = SDL_CreateGPUBuffer(v->Device, &buffer_info); - *old_size = new_size; - IM_ASSERT(*buffer != nullptr && "Failed to create GPU Buffer, call SDL_GetError() for more information"); - - SDL_GPUTransferBufferCreateInfo transferbuffer_info = {}; - transferbuffer_info.usage = SDL_GPU_TRANSFERBUFFERUSAGE_UPLOAD; - transferbuffer_info.size = new_size; - *transferbuffer = SDL_CreateGPUTransferBuffer(v->Device, &transferbuffer_info); - IM_ASSERT(*transferbuffer != nullptr && "Failed to create GPU Transfer Buffer, call SDL_GetError() for more information"); -} - -// SDL_GPU doesn't allow copy passes to occur while a render or compute pass is bound! -// The only way to allow a user to supply their own RenderPass (to render to a texture instead of the window for example), -// is to split the upload part of ImGui_ImplSDLGPU3_RenderDrawData() to another function that needs to be called by the user before rendering. -void ImGui_ImplSDLGPU3_PrepareDrawData(ImDrawData* draw_data, SDL_GPUCommandBuffer* command_buffer) -{ - // Avoid rendering when minimized, scale coordinates for retina displays (screen coordinates != framebuffer coordinates) - int fb_width = (int)(draw_data->DisplaySize.x * draw_data->FramebufferScale.x); - int fb_height = (int)(draw_data->DisplaySize.y * draw_data->FramebufferScale.y); - if (fb_width <= 0 || fb_height <= 0 || draw_data->TotalVtxCount <= 0) - return; - - // Catch up with texture updates. Most of the times, the list will have 1 element with an OK status, aka nothing to do. - // (This almost always points to ImGui::GetPlatformIO().Textures[] but is part of ImDrawData to allow overriding or disabling texture updates). - if (draw_data->Textures != nullptr) - for (ImTextureData* tex : *draw_data->Textures) - if (tex->Status != ImTextureStatus_OK) - ImGui_ImplSDLGPU3_UpdateTexture(tex); - - ImGui_ImplSDLGPU3_Data* bd = ImGui_ImplSDLGPU3_GetBackendData(); - ImGui_ImplSDLGPU3_InitInfo* v = &bd->InitInfo; - ImGui_ImplSDLGPU3_FrameData* fd = &bd->MainWindowFrameData; - - uint32_t vertex_size = draw_data->TotalVtxCount * sizeof(ImDrawVert); - uint32_t index_size = draw_data->TotalIdxCount * sizeof(ImDrawIdx); - if (fd->VertexBuffer == nullptr || fd->VertexBufferSize < vertex_size) - CreateOrResizeBuffers(&fd->VertexBuffer, &fd->VertexTransferBuffer, &fd->VertexBufferSize, vertex_size, SDL_GPU_BUFFERUSAGE_VERTEX); - if (fd->IndexBuffer == nullptr || fd->IndexBufferSize < index_size) - CreateOrResizeBuffers(&fd->IndexBuffer, &fd->IndexTransferBuffer, &fd->IndexBufferSize, index_size, SDL_GPU_BUFFERUSAGE_INDEX); - - ImDrawVert* vtx_dst = (ImDrawVert*)SDL_MapGPUTransferBuffer(v->Device, fd->VertexTransferBuffer, true); - ImDrawIdx* idx_dst = (ImDrawIdx*)SDL_MapGPUTransferBuffer(v->Device, fd->IndexTransferBuffer, true); - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - memcpy(vtx_dst, draw_list->VtxBuffer.Data, draw_list->VtxBuffer.Size * sizeof(ImDrawVert)); - memcpy(idx_dst, draw_list->IdxBuffer.Data, draw_list->IdxBuffer.Size * sizeof(ImDrawIdx)); - vtx_dst += draw_list->VtxBuffer.Size; - idx_dst += draw_list->IdxBuffer.Size; - } - SDL_UnmapGPUTransferBuffer(v->Device, fd->VertexTransferBuffer); - SDL_UnmapGPUTransferBuffer(v->Device, fd->IndexTransferBuffer); - - SDL_GPUTransferBufferLocation vertex_buffer_location = {}; - vertex_buffer_location.offset = 0; - vertex_buffer_location.transfer_buffer = fd->VertexTransferBuffer; - SDL_GPUTransferBufferLocation index_buffer_location = {}; - index_buffer_location.offset = 0; - index_buffer_location.transfer_buffer = fd->IndexTransferBuffer; - - SDL_GPUBufferRegion vertex_buffer_region = {}; - vertex_buffer_region.buffer = fd->VertexBuffer; - vertex_buffer_region.offset = 0; - vertex_buffer_region.size = vertex_size; - - SDL_GPUBufferRegion index_buffer_region = {}; - index_buffer_region.buffer = fd->IndexBuffer; - index_buffer_region.offset = 0; - index_buffer_region.size = index_size; - - SDL_GPUCopyPass* copy_pass = SDL_BeginGPUCopyPass(command_buffer); - SDL_UploadToGPUBuffer(copy_pass, &vertex_buffer_location, &vertex_buffer_region, true); - SDL_UploadToGPUBuffer(copy_pass, &index_buffer_location, &index_buffer_region, true); - SDL_EndGPUCopyPass(copy_pass); -} - -void ImGui_ImplSDLGPU3_RenderDrawData(ImDrawData* draw_data, SDL_GPUCommandBuffer* command_buffer, SDL_GPURenderPass* render_pass, SDL_GPUGraphicsPipeline* pipeline) -{ - // Avoid rendering when minimized, scale coordinates for retina displays (screen coordinates != framebuffer coordinates) - int fb_width = (int)(draw_data->DisplaySize.x * draw_data->FramebufferScale.x); - int fb_height = (int)(draw_data->DisplaySize.y * draw_data->FramebufferScale.y); - if (fb_width <= 0 || fb_height <= 0) - return; - - ImGui_ImplSDLGPU3_Data* bd = ImGui_ImplSDLGPU3_GetBackendData(); - ImGui_ImplSDLGPU3_FrameData* fd = &bd->MainWindowFrameData; - - if (pipeline == nullptr) - pipeline = bd->Pipeline; - - ImGui_ImplSDLGPU3_SetupRenderState(draw_data, pipeline, command_buffer, render_pass, fd, fb_width, fb_height); - - // Will project scissor/clipping rectangles into framebuffer space - ImVec2 clip_off = draw_data->DisplayPos; // (0,0) unless using multi-viewports - ImVec2 clip_scale = draw_data->FramebufferScale; // (1,1) unless using retina display which are often (2,2) - - // Render command lists - // (Because we merged all buffers into a single one, we maintain our own offset into them) - int global_vtx_offset = 0; - int global_idx_offset = 0; - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - for (int cmd_i = 0; cmd_i < draw_list->CmdBuffer.Size; cmd_i++) - { - const ImDrawCmd* pcmd = &draw_list->CmdBuffer[cmd_i]; - if (pcmd->UserCallback != nullptr) - { - // User callback, registered via ImDrawList::AddCallback() - // (ImDrawCallback_ResetRenderState is a special callback value used by the user to request the renderer to reset render state.) - if (pcmd->UserCallback == ImDrawCallback_ResetRenderState) - ImGui_ImplSDLGPU3_SetupRenderState(draw_data, pipeline, command_buffer, render_pass, fd, fb_width, fb_height); - else - pcmd->UserCallback(draw_list, pcmd); - } - else - { - // Project scissor/clipping rectangles into framebuffer space - ImVec2 clip_min((pcmd->ClipRect.x - clip_off.x) * clip_scale.x, (pcmd->ClipRect.y - clip_off.y) * clip_scale.y); - ImVec2 clip_max((pcmd->ClipRect.z - clip_off.x) * clip_scale.x, (pcmd->ClipRect.w - clip_off.y) * clip_scale.y); - - // Clamp to viewport as SDL_SetGPUScissor() won't accept values that are off bounds - if (clip_min.x < 0.0f) { clip_min.x = 0.0f; } - if (clip_min.y < 0.0f) { clip_min.y = 0.0f; } - if (clip_max.x > fb_width) { clip_max.x = (float)fb_width; } - if (clip_max.y > fb_height) { clip_max.y = (float)fb_height; } - if (clip_max.x <= clip_min.x || clip_max.y <= clip_min.y) - continue; - - // Apply scissor/clipping rectangle - SDL_Rect scissor_rect = {}; - scissor_rect.x = (int)clip_min.x; - scissor_rect.y = (int)clip_min.y; - scissor_rect.w = (int)(clip_max.x - clip_min.x); - scissor_rect.h = (int)(clip_max.y - clip_min.y); - SDL_SetGPUScissor(render_pass,&scissor_rect); - - // Bind DescriptorSet with font or user texture - SDL_BindGPUFragmentSamplers(render_pass, 0, (SDL_GPUTextureSamplerBinding*)pcmd->GetTexID(), 1); - - // Draw - SDL_DrawGPUIndexedPrimitives(render_pass, pcmd->ElemCount, 1, pcmd->IdxOffset + global_idx_offset, pcmd->VtxOffset + global_vtx_offset, 0); - } - } - global_idx_offset += draw_list->IdxBuffer.Size; - global_vtx_offset += draw_list->VtxBuffer.Size; - } - - // Note: at this point both SDL_SetGPUViewport() and SDL_SetGPUScissor() have been called. - // Our last values will leak into user/application rendering if you forgot to call SDL_SetGPUViewport() and SDL_SetGPUScissor() yourself to explicitly set that state - // In theory we should aim to backup/restore those values but I am not sure this is possible. - // We perform a call to SDL_SetGPUScissor() to set back a full viewport which is likely to fix things for 99% users but technically this is not perfect. (See github #4644) - SDL_Rect scissor_rect { 0, 0, fb_width, fb_height }; - SDL_SetGPUScissor(render_pass, &scissor_rect); -} - -static void ImGui_ImplSDLGPU3_DestroyTexture(ImTextureData* tex) -{ - ImGui_ImplSDLGPU3_Data* bd = ImGui_ImplSDLGPU3_GetBackendData(); - ImGui_ImplSDLGPU3_Texture* backend_tex = (ImGui_ImplSDLGPU3_Texture*)tex->BackendUserData; - if (backend_tex == nullptr) - return; - SDL_GPUTextureSamplerBinding* binding = (SDL_GPUTextureSamplerBinding*)(intptr_t)tex->BackendUserData; - IM_ASSERT(backend_tex->Texture == binding->texture); - SDL_ReleaseGPUTexture(bd->InitInfo.Device, backend_tex->Texture); - IM_DELETE(backend_tex); - - // Clear identifiers and mark as destroyed (in order to allow e.g. calling InvalidateDeviceObjects while running) - tex->SetTexID(ImTextureID_Invalid); - tex->SetStatus(ImTextureStatus_Destroyed); - tex->BackendUserData = nullptr; -} - -void ImGui_ImplSDLGPU3_UpdateTexture(ImTextureData* tex) -{ - ImGui_ImplSDLGPU3_Data* bd = ImGui_ImplSDLGPU3_GetBackendData(); - ImGui_ImplSDLGPU3_InitInfo* v = &bd->InitInfo; - - if (tex->Status == ImTextureStatus_WantCreate) - { - // Create and upload new texture to graphics system - //IMGUI_DEBUG_LOG("UpdateTexture #%03d: WantCreate %dx%d\n", tex->UniqueID, tex->Width, tex->Height); - IM_ASSERT(tex->TexID == ImTextureID_Invalid && tex->BackendUserData == nullptr); - IM_ASSERT(tex->Format == ImTextureFormat_RGBA32); - ImGui_ImplSDLGPU3_Texture* backend_tex = IM_NEW(ImGui_ImplSDLGPU3_Texture)(); - - // Create texture - SDL_GPUTextureCreateInfo texture_info = {}; - texture_info.type = SDL_GPU_TEXTURETYPE_2D; - texture_info.format = SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM; - texture_info.usage = SDL_GPU_TEXTUREUSAGE_SAMPLER; - texture_info.width = tex->Width; - texture_info.height = tex->Height; - texture_info.layer_count_or_depth = 1; - texture_info.num_levels = 1; - texture_info.sample_count = SDL_GPU_SAMPLECOUNT_1; - - backend_tex->Texture = SDL_CreateGPUTexture(v->Device, &texture_info); - backend_tex->TextureSamplerBinding.texture = backend_tex->Texture; - backend_tex->TextureSamplerBinding.sampler = bd->TexSampler; - IM_ASSERT(backend_tex->Texture && "Failed to create font texture, call SDL_GetError() for more info"); - - // Store identifiers - tex->SetTexID((ImTextureID)(intptr_t)&backend_tex->TextureSamplerBinding); - tex->BackendUserData = backend_tex; - } - - if (tex->Status == ImTextureStatus_WantCreate || tex->Status == ImTextureStatus_WantUpdates) - { - ImGui_ImplSDLGPU3_Texture* backend_tex = (ImGui_ImplSDLGPU3_Texture*)tex->BackendUserData; - IM_ASSERT(tex->Format == ImTextureFormat_RGBA32); - - // Update full texture or selected blocks. We only ever write to textures regions which have never been used before! - // This backend choose to use tex->UpdateRect but you can use tex->Updates[] to upload individual regions. - // We could use the smaller rect on _WantCreate but using the full rect allows us to clear the texture. - const int upload_x = (tex->Status == ImTextureStatus_WantCreate) ? 0 : tex->UpdateRect.x; - const int upload_y = (tex->Status == ImTextureStatus_WantCreate) ? 0 : tex->UpdateRect.y; - const int upload_w = (tex->Status == ImTextureStatus_WantCreate) ? tex->Width : tex->UpdateRect.w; - const int upload_h = (tex->Status == ImTextureStatus_WantCreate) ? tex->Height : tex->UpdateRect.h; - uint32_t upload_pitch = upload_w * tex->BytesPerPixel; - uint32_t upload_size = upload_w * upload_h * tex->BytesPerPixel; - - // Create transfer buffer - if (bd->TexTransferBufferSize < upload_size) - { - SDL_ReleaseGPUTransferBuffer(v->Device, bd->TexTransferBuffer); - SDL_GPUTransferBufferCreateInfo transferbuffer_info = {}; - transferbuffer_info.usage = SDL_GPU_TRANSFERBUFFERUSAGE_UPLOAD; - transferbuffer_info.size = upload_size + 1024; - bd->TexTransferBufferSize = upload_size + 1024; - bd->TexTransferBuffer = SDL_CreateGPUTransferBuffer(v->Device, &transferbuffer_info); - IM_ASSERT(bd->TexTransferBuffer != nullptr && "Failed to create font transfer buffer, call SDL_GetError() for more information"); - } - - // Copy to transfer buffer - { - void* texture_ptr = SDL_MapGPUTransferBuffer(v->Device, bd->TexTransferBuffer, true); - for (int y = 0; y < upload_h; y++) - memcpy((void*)((uintptr_t)texture_ptr + y * upload_pitch), tex->GetPixelsAt(upload_x, upload_y + y), upload_pitch); - SDL_UnmapGPUTransferBuffer(v->Device, bd->TexTransferBuffer); - } - - SDL_GPUTextureTransferInfo transfer_info = {}; - transfer_info.offset = 0; - transfer_info.transfer_buffer = bd->TexTransferBuffer; - - SDL_GPUTextureRegion texture_region = {}; - texture_region.texture = backend_tex->Texture; - texture_region.x = (Uint32)upload_x; - texture_region.y = (Uint32)upload_y; - texture_region.w = (Uint32)upload_w; - texture_region.h = (Uint32)upload_h; - texture_region.d = 1; - - // Upload - { - SDL_GPUCommandBuffer* cmd = SDL_AcquireGPUCommandBuffer(v->Device); - SDL_GPUCopyPass* copy_pass = SDL_BeginGPUCopyPass(cmd); - SDL_UploadToGPUTexture(copy_pass, &transfer_info, &texture_region, false); - SDL_EndGPUCopyPass(copy_pass); - SDL_SubmitGPUCommandBuffer(cmd); - } - - tex->SetStatus(ImTextureStatus_OK); - } - if (tex->Status == ImTextureStatus_WantDestroy && tex->UnusedFrames > 0) - ImGui_ImplSDLGPU3_DestroyTexture(tex); -} - -static void ImGui_ImplSDLGPU3_CreateShaders() -{ - // Create the shader modules - ImGui_ImplSDLGPU3_Data* bd = ImGui_ImplSDLGPU3_GetBackendData(); - ImGui_ImplSDLGPU3_InitInfo* v = &bd->InitInfo; - - const char* driver = SDL_GetGPUDeviceDriver(v->Device); - - SDL_GPUShaderCreateInfo vertex_shader_info = {}; - vertex_shader_info.entrypoint = "main"; - vertex_shader_info.stage = SDL_GPU_SHADERSTAGE_VERTEX; - vertex_shader_info.num_uniform_buffers = 1; - vertex_shader_info.num_storage_buffers = 0; - vertex_shader_info.num_storage_textures = 0; - vertex_shader_info.num_samplers = 0; - - SDL_GPUShaderCreateInfo fragment_shader_info = {}; - fragment_shader_info.entrypoint = "main"; - fragment_shader_info.stage = SDL_GPU_SHADERSTAGE_FRAGMENT; - fragment_shader_info.num_samplers = 1; - fragment_shader_info.num_storage_buffers = 0; - fragment_shader_info.num_storage_textures = 0; - fragment_shader_info.num_uniform_buffers = 0; - - if (strcmp(driver, "vulkan") == 0) - { - vertex_shader_info.format = SDL_GPU_SHADERFORMAT_SPIRV; - vertex_shader_info.code = spirv_vertex; - vertex_shader_info.code_size = sizeof(spirv_vertex); - fragment_shader_info.format = SDL_GPU_SHADERFORMAT_SPIRV; - fragment_shader_info.code = spirv_fragment; - fragment_shader_info.code_size = sizeof(spirv_fragment); - } - else if (strcmp(driver, "direct3d12") == 0) - { - vertex_shader_info.format = SDL_GPU_SHADERFORMAT_DXBC; - vertex_shader_info.code = dxbc_vertex; - vertex_shader_info.code_size = sizeof(dxbc_vertex); - fragment_shader_info.format = SDL_GPU_SHADERFORMAT_DXBC; - fragment_shader_info.code = dxbc_fragment; - fragment_shader_info.code_size = sizeof(dxbc_fragment); - } -#ifdef __APPLE__ - else - { - vertex_shader_info.entrypoint = "main0"; - vertex_shader_info.format = SDL_GPU_SHADERFORMAT_METALLIB; - vertex_shader_info.code = metallib_vertex; - vertex_shader_info.code_size = sizeof(metallib_vertex); - fragment_shader_info.entrypoint = "main0"; - fragment_shader_info.format = SDL_GPU_SHADERFORMAT_METALLIB; - fragment_shader_info.code = metallib_fragment; - fragment_shader_info.code_size = sizeof(metallib_fragment); - } -#endif - bd->VertexShader = SDL_CreateGPUShader(v->Device, &vertex_shader_info); - bd->FragmentShader = SDL_CreateGPUShader(v->Device, &fragment_shader_info); - IM_ASSERT(bd->VertexShader != nullptr && "Failed to create vertex shader, call SDL_GetError() for more information"); - IM_ASSERT(bd->FragmentShader != nullptr && "Failed to create fragment shader, call SDL_GetError() for more information"); -} - -static void ImGui_ImplSDLGPU3_CreateGraphicsPipeline() -{ - ImGui_ImplSDLGPU3_Data* bd = ImGui_ImplSDLGPU3_GetBackendData(); - ImGui_ImplSDLGPU3_InitInfo* v = &bd->InitInfo; - ImGui_ImplSDLGPU3_CreateShaders(); - - SDL_GPUVertexBufferDescription vertex_buffer_desc[1]; - vertex_buffer_desc[0].slot = 0; - vertex_buffer_desc[0].input_rate = SDL_GPU_VERTEXINPUTRATE_VERTEX; - vertex_buffer_desc[0].instance_step_rate = 0; - vertex_buffer_desc[0].pitch = sizeof(ImDrawVert); - - SDL_GPUVertexAttribute vertex_attributes[3]; - vertex_attributes[0].buffer_slot = 0; - vertex_attributes[0].format = SDL_GPU_VERTEXELEMENTFORMAT_FLOAT2; - vertex_attributes[0].location = 0; - vertex_attributes[0].offset = offsetof(ImDrawVert,pos); - - vertex_attributes[1].buffer_slot = 0; - vertex_attributes[1].format = SDL_GPU_VERTEXELEMENTFORMAT_FLOAT2; - vertex_attributes[1].location = 1; - vertex_attributes[1].offset = offsetof(ImDrawVert, uv); - - vertex_attributes[2].buffer_slot = 0; - vertex_attributes[2].format = SDL_GPU_VERTEXELEMENTFORMAT_UBYTE4_NORM; - vertex_attributes[2].location = 2; - vertex_attributes[2].offset = offsetof(ImDrawVert, col); - - SDL_GPUVertexInputState vertex_input_state = {}; - vertex_input_state.num_vertex_attributes = 3; - vertex_input_state.vertex_attributes = vertex_attributes; - vertex_input_state.num_vertex_buffers = 1; - vertex_input_state.vertex_buffer_descriptions = vertex_buffer_desc; - - SDL_GPURasterizerState rasterizer_state = {}; - rasterizer_state.fill_mode = SDL_GPU_FILLMODE_FILL; - rasterizer_state.cull_mode = SDL_GPU_CULLMODE_NONE; - rasterizer_state.front_face = SDL_GPU_FRONTFACE_COUNTER_CLOCKWISE; - rasterizer_state.enable_depth_bias = false; - rasterizer_state.enable_depth_clip = false; - - SDL_GPUMultisampleState multisample_state = {}; - multisample_state.sample_count = v->MSAASamples; - multisample_state.enable_mask = false; - - SDL_GPUDepthStencilState depth_stencil_state = {}; - depth_stencil_state.enable_depth_test = false; - depth_stencil_state.enable_depth_write = false; - depth_stencil_state.enable_stencil_test = false; - - SDL_GPUColorTargetBlendState blend_state = {}; - blend_state.enable_blend = true; - blend_state.src_color_blendfactor = SDL_GPU_BLENDFACTOR_SRC_ALPHA; - blend_state.dst_color_blendfactor = SDL_GPU_BLENDFACTOR_ONE_MINUS_SRC_ALPHA; - blend_state.color_blend_op = SDL_GPU_BLENDOP_ADD; - blend_state.src_alpha_blendfactor = SDL_GPU_BLENDFACTOR_ONE; - blend_state.dst_alpha_blendfactor = SDL_GPU_BLENDFACTOR_ONE_MINUS_SRC_ALPHA; - blend_state.alpha_blend_op = SDL_GPU_BLENDOP_ADD; - blend_state.color_write_mask = SDL_GPU_COLORCOMPONENT_R | SDL_GPU_COLORCOMPONENT_G | SDL_GPU_COLORCOMPONENT_B | SDL_GPU_COLORCOMPONENT_A; - - SDL_GPUColorTargetDescription color_target_desc[1]; - color_target_desc[0].format = v->ColorTargetFormat; - color_target_desc[0].blend_state = blend_state; - - SDL_GPUGraphicsPipelineTargetInfo target_info = {}; - target_info.num_color_targets = 1; - target_info.color_target_descriptions = color_target_desc; - target_info.has_depth_stencil_target = false; - - SDL_GPUGraphicsPipelineCreateInfo pipeline_info = {}; - pipeline_info.vertex_shader = bd->VertexShader; - pipeline_info.fragment_shader = bd->FragmentShader; - pipeline_info.vertex_input_state = vertex_input_state; - pipeline_info.primitive_type = SDL_GPU_PRIMITIVETYPE_TRIANGLELIST; - pipeline_info.rasterizer_state = rasterizer_state; - pipeline_info.multisample_state = multisample_state; - pipeline_info.depth_stencil_state = depth_stencil_state; - pipeline_info.target_info = target_info; - - bd->Pipeline = SDL_CreateGPUGraphicsPipeline(v->Device, &pipeline_info); - IM_ASSERT(bd->Pipeline != nullptr && "Failed to create graphics pipeline, call SDL_GetError() for more information"); -} - -void ImGui_ImplSDLGPU3_CreateDeviceObjects() -{ - ImGui_ImplSDLGPU3_Data* bd = ImGui_ImplSDLGPU3_GetBackendData(); - ImGui_ImplSDLGPU3_InitInfo* v = &bd->InitInfo; - - ImGui_ImplSDLGPU3_DestroyDeviceObjects(); - - if (bd->TexSampler == nullptr) - { - // Bilinear sampling is required by default. Set 'io.Fonts->Flags |= ImFontAtlasFlags_NoBakedLines' or 'style.AntiAliasedLinesUseTex = false' to allow point/nearest sampling. - SDL_GPUSamplerCreateInfo sampler_info = {}; - sampler_info.min_filter = SDL_GPU_FILTER_LINEAR; - sampler_info.mag_filter = SDL_GPU_FILTER_LINEAR; - sampler_info.mipmap_mode = SDL_GPU_SAMPLERMIPMAPMODE_LINEAR; - sampler_info.address_mode_u = SDL_GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE; - sampler_info.address_mode_v = SDL_GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE; - sampler_info.address_mode_w = SDL_GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE; - sampler_info.mip_lod_bias = 0.0f; - sampler_info.min_lod = -1000.0f; - sampler_info.max_lod = 1000.0f; - sampler_info.enable_anisotropy = false; - sampler_info.max_anisotropy = 1.0f; - sampler_info.enable_compare = false; - - bd->TexSampler = SDL_CreateGPUSampler(v->Device, &sampler_info); - IM_ASSERT(bd->TexSampler != nullptr && "Failed to create font sampler, call SDL_GetError() for more information"); - } - - ImGui_ImplSDLGPU3_CreateGraphicsPipeline(); -} - -void ImGui_ImplSDLGPU3_DestroyFrameData() -{ - ImGui_ImplSDLGPU3_Data* bd = ImGui_ImplSDLGPU3_GetBackendData(); - ImGui_ImplSDLGPU3_InitInfo* v = &bd->InitInfo; - - ImGui_ImplSDLGPU3_FrameData* fd = &bd->MainWindowFrameData; - SDL_ReleaseGPUBuffer(v->Device, fd->VertexBuffer); - SDL_ReleaseGPUBuffer(v->Device, fd->IndexBuffer); - SDL_ReleaseGPUTransferBuffer(v->Device, fd->VertexTransferBuffer); - SDL_ReleaseGPUTransferBuffer(v->Device, fd->IndexTransferBuffer); - fd->VertexBuffer = fd->IndexBuffer = nullptr; - fd->VertexTransferBuffer = fd->IndexTransferBuffer = nullptr; - fd->VertexBufferSize = fd->IndexBufferSize = 0; -} - -void ImGui_ImplSDLGPU3_DestroyDeviceObjects() -{ - ImGui_ImplSDLGPU3_Data* bd = ImGui_ImplSDLGPU3_GetBackendData(); - ImGui_ImplSDLGPU3_InitInfo* v = &bd->InitInfo; - - ImGui_ImplSDLGPU3_DestroyFrameData(); - - // Destroy all textures - for (ImTextureData* tex : ImGui::GetPlatformIO().Textures) - if (tex->RefCount == 1) - ImGui_ImplSDLGPU3_DestroyTexture(tex); - if (bd->TexTransferBuffer) { SDL_ReleaseGPUTransferBuffer(v->Device, bd->TexTransferBuffer); bd->TexTransferBuffer = nullptr; } - if (bd->VertexShader) { SDL_ReleaseGPUShader(v->Device, bd->VertexShader); bd->VertexShader = nullptr; } - if (bd->FragmentShader) { SDL_ReleaseGPUShader(v->Device, bd->FragmentShader); bd->FragmentShader = nullptr; } - if (bd->TexSampler) { SDL_ReleaseGPUSampler(v->Device, bd->TexSampler); bd->TexSampler = nullptr; } - if (bd->Pipeline) { SDL_ReleaseGPUGraphicsPipeline(v->Device, bd->Pipeline); bd->Pipeline = nullptr; } -} - -bool ImGui_ImplSDLGPU3_Init(ImGui_ImplSDLGPU3_InitInfo* info) -{ - ImGuiIO& io = ImGui::GetIO(); - IMGUI_CHECKVERSION(); - IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); - - // Setup backend capabilities flags - ImGui_ImplSDLGPU3_Data* bd = IM_NEW(ImGui_ImplSDLGPU3_Data)(); - io.BackendRendererUserData = (void*)bd; - io.BackendRendererName = "imgui_impl_sdlgpu3"; - io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset; // We can honor the ImDrawCmd::VtxOffset field, allowing for large meshes. - io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures; // We can honor ImGuiPlatformIO::Textures[] requests during render. - - IM_ASSERT(info->Device != nullptr); - IM_ASSERT(info->ColorTargetFormat != SDL_GPU_TEXTUREFORMAT_INVALID); - - bd->InitInfo = *info; - - return true; -} - -void ImGui_ImplSDLGPU3_Shutdown() -{ - ImGui_ImplSDLGPU3_Data* bd = ImGui_ImplSDLGPU3_GetBackendData(); - IM_ASSERT(bd != nullptr && "No renderer backend to shutdown, or already shutdown?"); - ImGuiIO& io = ImGui::GetIO(); - - ImGui_ImplSDLGPU3_DestroyDeviceObjects(); - io.BackendRendererName = nullptr; - io.BackendRendererUserData = nullptr; - io.BackendFlags &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures); - IM_DELETE(bd); -} - -void ImGui_ImplSDLGPU3_NewFrame() -{ - ImGui_ImplSDLGPU3_Data* bd = ImGui_ImplSDLGPU3_GetBackendData(); - IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplSDLGPU3_Init()?"); - - if (!bd->TexSampler) - ImGui_ImplSDLGPU3_CreateDeviceObjects(); -} - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_sdlgpu3.h b/libs/imgui-1.92.1/backends/imgui_impl_sdlgpu3.h deleted file mode 100644 index 826767a..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_sdlgpu3.h +++ /dev/null @@ -1,52 +0,0 @@ -// dear imgui: Renderer Backend for SDL_GPU -// This needs to be used along with the SDL3 Platform Backend - -// Implemented features: -// [X] Renderer: User texture binding. Use simply cast a reference to your SDL_GPUTextureSamplerBinding to ImTextureID. -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). - -// The aim of imgui_impl_sdlgpu3.h/.cpp is to be usable in your engine without any modification. -// IF YOU FEEL YOU NEED TO MAKE ANY CHANGE TO THIS CODE, please share them and your feedback at https://github.com/ocornut/imgui/ - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// Important note to the reader who wish to integrate imgui_impl_sdlgpu3.cpp/.h in their own engine/app. -// - Unlike other backends, the user must call the function ImGui_ImplSDLGPU_PrepareDrawData BEFORE issuing a SDL_GPURenderPass containing ImGui_ImplSDLGPU_RenderDrawData. -// Calling the function is MANDATORY, otherwise the ImGui will not upload neither the vertex nor the index buffer for the GPU. See imgui_impl_sdlgpu3.cpp for more info. - -#pragma once -#include "imgui.h" // IMGUI_IMPL_API -#ifndef IMGUI_DISABLE -#include - -// Initialization data, for ImGui_ImplSDLGPU_Init() -// - Remember to set ColorTargetFormat to the correct format. If you're rendering to the swapchain, call SDL_GetGPUSwapchainTextureFormat to query the right value -struct ImGui_ImplSDLGPU3_InitInfo -{ - SDL_GPUDevice* Device = nullptr; - SDL_GPUTextureFormat ColorTargetFormat = SDL_GPU_TEXTUREFORMAT_INVALID; - SDL_GPUSampleCount MSAASamples = SDL_GPU_SAMPLECOUNT_1; -}; - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplSDLGPU3_Init(ImGui_ImplSDLGPU3_InitInfo* info); -IMGUI_IMPL_API void ImGui_ImplSDLGPU3_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplSDLGPU3_NewFrame(); -IMGUI_IMPL_API void ImGui_ImplSDLGPU3_PrepareDrawData(ImDrawData* draw_data, SDL_GPUCommandBuffer* command_buffer); -IMGUI_IMPL_API void ImGui_ImplSDLGPU3_RenderDrawData(ImDrawData* draw_data, SDL_GPUCommandBuffer* command_buffer, SDL_GPURenderPass* render_pass, SDL_GPUGraphicsPipeline* pipeline = nullptr); - -// Use if you want to reset your rendering device without losing Dear ImGui state. -IMGUI_IMPL_API void ImGui_ImplSDLGPU3_CreateDeviceObjects(); -IMGUI_IMPL_API void ImGui_ImplSDLGPU3_DestroyDeviceObjects(); - -// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = NULL to handle this manually. -IMGUI_IMPL_API void ImGui_ImplSDLGPU3_UpdateTexture(ImTextureData* tex); - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_sdlgpu3_shaders.h b/libs/imgui-1.92.1/backends/imgui_impl_sdlgpu3_shaders.h deleted file mode 100644 index f792aa6..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_sdlgpu3_shaders.h +++ /dev/null @@ -1,372 +0,0 @@ -#pragma once -#ifndef IMGUI_DISABLE -#include - -// Data exported using -// misc/fonts/binary_to_compressed_c.exe -u8 -nocompress filename symbolname >filename.h -// With some manual pasting. - -// Check sdlgpu3/ folder for the shaders' source code and instruction on how to build them -const uint8_t spirv_vertex[1732] = { - 3,2,35,7,0,0,1,0,11,0,13,0,55,0,0,0,0,0,0,0,17,0,2,0,1,0,0,0,11,0,6,0,1,0,0,0,71,76,83,76,46,115,116,100,46,52,53,48,0,0,0,0,14,0,3,0,0,0,0,0,1,0,0,0,15,0,10,0,0,0,0,0,4,0,0,0,109, - 97,105,110,0,0,0,0,11,0,0,0,15,0,0,0,21,0,0,0,30,0,0,0,31,0,0,0,3,0,3,0,2,0,0,0,194,1,0,0,4,0,10,0,71,76,95,71,79,79,71,76,69,95,99,112,112,95,115,116,121,108,101,95,108,105,110,101, - 95,100,105,114,101,99,116,105,118,101,0,0,4,0,8,0,71,76,95,71,79,79,71,76,69,95,105,110,99,108,117,100,101,95,100,105,114,101,99,116,105,118,101,0,5,0,4,0,4,0,0,0,109,97,105,110,0, - 0,0,0,5,0,3,0,9,0,0,0,0,0,0,0,6,0,5,0,9,0,0,0,0,0,0,0,67,111,108,111,114,0,0,0,6,0,4,0,9,0,0,0,1,0,0,0,85,86,0,0,5,0,3,0,11,0,0,0,79,117,116,0,5,0,4,0,15,0,0,0,97,67,111,108,111,114, - 0,0,5,0,3,0,21,0,0,0,97,85,86,0,5,0,6,0,28,0,0,0,103,108,95,80,101,114,86,101,114,116,101,120,0,0,0,0,6,0,6,0,28,0,0,0,0,0,0,0,103,108,95,80,111,115,105,116,105,111,110,0,6,0,7,0,28, - 0,0,0,1,0,0,0,103,108,95,80,111,105,110,116,83,105,122,101,0,0,0,0,6,0,7,0,28,0,0,0,2,0,0,0,103,108,95,67,108,105,112,68,105,115,116,97,110,99,101,0,6,0,7,0,28,0,0,0,3,0,0,0,103,108, - 95,67,117,108,108,68,105,115,116,97,110,99,101,0,5,0,3,0,30,0,0,0,0,0,0,0,5,0,4,0,31,0,0,0,97,80,111,115,0,0,0,0,5,0,6,0,33,0,0,0,117,80,117,115,104,67,111,110,115,116,97,110,116,0, - 0,0,6,0,5,0,33,0,0,0,0,0,0,0,117,83,99,97,108,101,0,0,6,0,6,0,33,0,0,0,1,0,0,0,117,84,114,97,110,115,108,97,116,101,0,0,5,0,3,0,35,0,0,0,112,99,0,0,71,0,4,0,11,0,0,0,30,0,0,0,0,0,0, - 0,71,0,4,0,15,0,0,0,30,0,0,0,2,0,0,0,71,0,4,0,21,0,0,0,30,0,0,0,1,0,0,0,71,0,3,0,28,0,0,0,2,0,0,0,72,0,5,0,28,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,72,0,5,0,28,0,0,0,1,0,0,0,11,0,0,0,1,0, - 0,0,72,0,5,0,28,0,0,0,2,0,0,0,11,0,0,0,3,0,0,0,72,0,5,0,28,0,0,0,3,0,0,0,11,0,0,0,4,0,0,0,71,0,4,0,31,0,0,0,30,0,0,0,0,0,0,0,71,0,3,0,33,0,0,0,2,0,0,0,72,0,5,0,33,0,0,0,0,0,0,0,35, - 0,0,0,0,0,0,0,72,0,5,0,33,0,0,0,1,0,0,0,35,0,0,0,8,0,0,0,71,0,4,0,35,0,0,0,33,0,0,0,0,0,0,0,71,0,4,0,35,0,0,0,34,0,0,0,1,0,0,0,19,0,2,0,2,0,0,0,33,0,3,0,3,0,0,0,2,0,0,0,22,0,3,0,6, - 0,0,0,32,0,0,0,23,0,4,0,7,0,0,0,6,0,0,0,4,0,0,0,23,0,4,0,8,0,0,0,6,0,0,0,2,0,0,0,30,0,4,0,9,0,0,0,7,0,0,0,8,0,0,0,32,0,4,0,10,0,0,0,3,0,0,0,9,0,0,0,59,0,4,0,10,0,0,0,11,0,0,0,3,0,0, - 0,21,0,4,0,12,0,0,0,32,0,0,0,1,0,0,0,43,0,4,0,12,0,0,0,13,0,0,0,0,0,0,0,32,0,4,0,14,0,0,0,1,0,0,0,7,0,0,0,59,0,4,0,14,0,0,0,15,0,0,0,1,0,0,0,32,0,4,0,17,0,0,0,3,0,0,0,7,0,0,0,43,0, - 4,0,12,0,0,0,19,0,0,0,1,0,0,0,32,0,4,0,20,0,0,0,1,0,0,0,8,0,0,0,59,0,4,0,20,0,0,0,21,0,0,0,1,0,0,0,32,0,4,0,23,0,0,0,3,0,0,0,8,0,0,0,21,0,4,0,25,0,0,0,32,0,0,0,0,0,0,0,43,0,4,0,25, - 0,0,0,26,0,0,0,1,0,0,0,28,0,4,0,27,0,0,0,6,0,0,0,26,0,0,0,30,0,6,0,28,0,0,0,7,0,0,0,6,0,0,0,27,0,0,0,27,0,0,0,32,0,4,0,29,0,0,0,3,0,0,0,28,0,0,0,59,0,4,0,29,0,0,0,30,0,0,0,3,0,0,0, - 59,0,4,0,20,0,0,0,31,0,0,0,1,0,0,0,30,0,4,0,33,0,0,0,8,0,0,0,8,0,0,0,32,0,4,0,34,0,0,0,2,0,0,0,33,0,0,0,59,0,4,0,34,0,0,0,35,0,0,0,2,0,0,0,32,0,4,0,36,0,0,0,2,0,0,0,8,0,0,0,43,0,4, - 0,6,0,0,0,43,0,0,0,0,0,0,0,43,0,4,0,6,0,0,0,44,0,0,0,0,0,128,63,43,0,4,0,6,0,0,0,49,0,0,0,0,0,128,191,32,0,4,0,50,0,0,0,3,0,0,0,6,0,0,0,54,0,5,0,2,0,0,0,4,0,0,0,0,0,0,0,3,0,0,0,248, - 0,2,0,5,0,0,0,61,0,4,0,7,0,0,0,16,0,0,0,15,0,0,0,65,0,5,0,17,0,0,0,18,0,0,0,11,0,0,0,13,0,0,0,62,0,3,0,18,0,0,0,16,0,0,0,61,0,4,0,8,0,0,0,22,0,0,0,21,0,0,0,65,0,5,0,23,0,0,0,24,0,0, - 0,11,0,0,0,19,0,0,0,62,0,3,0,24,0,0,0,22,0,0,0,61,0,4,0,8,0,0,0,32,0,0,0,31,0,0,0,65,0,5,0,36,0,0,0,37,0,0,0,35,0,0,0,13,0,0,0,61,0,4,0,8,0,0,0,38,0,0,0,37,0,0,0,133,0,5,0,8,0,0,0, - 39,0,0,0,32,0,0,0,38,0,0,0,65,0,5,0,36,0,0,0,40,0,0,0,35,0,0,0,19,0,0,0,61,0,4,0,8,0,0,0,41,0,0,0,40,0,0,0,129,0,5,0,8,0,0,0,42,0,0,0,39,0,0,0,41,0,0,0,81,0,5,0,6,0,0,0,45,0,0,0,42, - 0,0,0,0,0,0,0,81,0,5,0,6,0,0,0,46,0,0,0,42,0,0,0,1,0,0,0,80,0,7,0,7,0,0,0,47,0,0,0,45,0,0,0,46,0,0,0,43,0,0,0,44,0,0,0,65,0,5,0,17,0,0,0,48,0,0,0,30,0,0,0,13,0,0,0,62,0,3,0,48,0,0, - 0,47,0,0,0,65,0,6,0,50,0,0,0,51,0,0,0,30,0,0,0,13,0,0,0,26,0,0,0,61,0,4,0,6,0,0,0,52,0,0,0,51,0,0,0,133,0,5,0,6,0,0,0,53,0,0,0,52,0,0,0,49,0,0,0,65,0,6,0,50,0,0,0,54,0,0,0,30,0,0,0, - 13,0,0,0,26,0,0,0,62,0,3,0,54,0,0,0,53,0,0,0,253,0,1,0,56,0,1,0, -}; -const uint8_t spirv_fragment[844] = { - 3,2,35,7,0,0,1,0,11,0,13,0,30,0,0,0,0,0,0,0,17,0,2,0,1,0,0,0,11,0,6,0,1,0,0,0,71,76,83,76,46,115,116,100,46,52,53,48,0,0,0,0,14,0,3,0,0,0,0,0,1,0,0,0,15,0,7,0,4,0,0,0,4,0,0,0,109,97, - 105,110,0,0,0,0,9,0,0,0,13,0,0,0,16,0,3,0,4,0,0,0,7,0,0,0,3,0,3,0,2,0,0,0,194,1,0,0,4,0,10,0,71,76,95,71,79,79,71,76,69,95,99,112,112,95,115,116,121,108,101,95,108,105,110,101,95,100, - 105,114,101,99,116,105,118,101,0,0,4,0,8,0,71,76,95,71,79,79,71,76,69,95,105,110,99,108,117,100,101,95,100,105,114,101,99,116,105,118,101,0,5,0,4,0,4,0,0,0,109,97,105,110,0,0,0,0,5, - 0,4,0,9,0,0,0,102,67,111,108,111,114,0,0,5,0,3,0,11,0,0,0,0,0,0,0,6,0,5,0,11,0,0,0,0,0,0,0,67,111,108,111,114,0,0,0,6,0,4,0,11,0,0,0,1,0,0,0,85,86,0,0,5,0,3,0,13,0,0,0,73,110,0,0,5, - 0,5,0,22,0,0,0,115,84,101,120,116,117,114,101,0,0,0,0,71,0,4,0,9,0,0,0,30,0,0,0,0,0,0,0,71,0,4,0,13,0,0,0,30,0,0,0,0,0,0,0,71,0,4,0,22,0,0,0,33,0,0,0,0,0,0,0,71,0,4,0,22,0,0,0,34,0, - 0,0,2,0,0,0,19,0,2,0,2,0,0,0,33,0,3,0,3,0,0,0,2,0,0,0,22,0,3,0,6,0,0,0,32,0,0,0,23,0,4,0,7,0,0,0,6,0,0,0,4,0,0,0,32,0,4,0,8,0,0,0,3,0,0,0,7,0,0,0,59,0,4,0,8,0,0,0,9,0,0,0,3,0,0,0,23, - 0,4,0,10,0,0,0,6,0,0,0,2,0,0,0,30,0,4,0,11,0,0,0,7,0,0,0,10,0,0,0,32,0,4,0,12,0,0,0,1,0,0,0,11,0,0,0,59,0,4,0,12,0,0,0,13,0,0,0,1,0,0,0,21,0,4,0,14,0,0,0,32,0,0,0,1,0,0,0,43,0,4,0, - 14,0,0,0,15,0,0,0,0,0,0,0,32,0,4,0,16,0,0,0,1,0,0,0,7,0,0,0,25,0,9,0,19,0,0,0,6,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,27,0,3,0,20,0,0,0,19,0,0,0,32,0,4,0,21,0,0,0,0, - 0,0,0,20,0,0,0,59,0,4,0,21,0,0,0,22,0,0,0,0,0,0,0,43,0,4,0,14,0,0,0,24,0,0,0,1,0,0,0,32,0,4,0,25,0,0,0,1,0,0,0,10,0,0,0,54,0,5,0,2,0,0,0,4,0,0,0,0,0,0,0,3,0,0,0,248,0,2,0,5,0,0,0,65, - 0,5,0,16,0,0,0,17,0,0,0,13,0,0,0,15,0,0,0,61,0,4,0,7,0,0,0,18,0,0,0,17,0,0,0,61,0,4,0,20,0,0,0,23,0,0,0,22,0,0,0,65,0,5,0,25,0,0,0,26,0,0,0,13,0,0,0,24,0,0,0,61,0,4,0,10,0,0,0,27,0, - 0,0,26,0,0,0,87,0,5,0,7,0,0,0,28,0,0,0,23,0,0,0,27,0,0,0,133,0,5,0,7,0,0,0,29,0,0,0,18,0,0,0,28,0,0,0,62,0,3,0,9,0,0,0,29,0,0,0,253,0,1,0,56,0,1,0, -}; - -const uint8_t dxbc_vertex[1064] = { - 68,88,66,67,32,50,127,204,241,196,165,104,216,114,216,116,220,164,29,45,1,0,0,0,40,4,0,0,5,0,0,0,52,0,0,0,136,1,0,0,236,1,0,0,92,2,0,0,140,3,0,0,82,68,69,70,76,1,0,0,1,0,0,0,116,0, - 0,0,1,0,0,0,60,0,0,0,1,5,254,255,0,5,0,0,34,1,0,0,19,19,68,37,60,0,0,0,24,0,0,0,40,0,0,0,40,0,0,0,36,0,0,0,12,0,0,0,0,0,0,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, - 0,1,0,0,0,1,0,0,0,0,0,0,0,117,80,117,115,104,67,111,110,115,116,97,110,116,0,171,171,100,0,0,0,2,0,0,0,140,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,220,0,0,0,0,0,0,0,8,0,0,0,2,0,0,0,240,0,0, - 0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,20,1,0,0,8,0,0,0,8,0,0,0,2,0,0,0,240,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,112,99,95,117,83,99,97, - 108,101,0,102,108,111,97,116,50,0,171,171,171,1,0,3,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,0,0,0,112,99,95,117,84,114,97,110,115,108,97,116,101,0,77,105,99,114, - 111,115,111,102,116,32,40,82,41,32,72,76,83,76,32,83,104,97,100,101,114,32,67,111,109,112,105,108,101,114,32,49,48,46,49,0,171,171,73,83,71,78,92,0,0,0,3,0,0,0,8,0,0,0,80,0,0,0,0,0, - 0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,3,0,0,80,0,0,0,1,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,3,3,0,0,80,0,0,0,2,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,15,15,0,0,84,69,88,67,79,79,82,68,0,171,171,171,79,83, - 71,78,104,0,0,0,3,0,0,0,8,0,0,0,80,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,15,0,0,0,80,0,0,0,1,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,3,12,0,0,89,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,2,0,0,0,15,0,0, - 0,84,69,88,67,79,79,82,68,0,83,86,95,80,111,115,105,116,105,111,110,0,171,171,171,83,72,69,88,40,1,0,0,81,0,1,0,74,0,0,0,106,8,0,1,89,0,0,7,70,142,48,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, - 0,0,1,0,0,0,95,0,0,3,50,16,16,0,0,0,0,0,95,0,0,3,50,16,16,0,1,0,0,0,95,0,0,3,242,16,16,0,2,0,0,0,101,0,0,3,242,32,16,0,0,0,0,0,101,0,0,3,50,32,16,0,1,0,0,0,103,0,0,4,242,32,16,0,2, - 0,0,0,1,0,0,0,104,0,0,2,1,0,0,0,50,0,0,13,50,0,16,0,0,0,0,0,70,16,16,0,0,0,0,0,70,128,48,0,0,0,0,0,0,0,0,0,0,0,0,0,230,138,48,0,0,0,0,0,0,0,0,0,0,0,0,0,54,0,0,6,34,32,16,0,2,0,0,0, - 26,0,16,128,65,0,0,0,0,0,0,0,54,0,0,5,242,32,16,0,0,0,0,0,70,30,16,0,2,0,0,0,54,0,0,5,18,32,16,0,2,0,0,0,10,0,16,0,0,0,0,0,54,0,0,8,194,32,16,0,2,0,0,0,2,64,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,128,63,54,0,0,5,50,32,16,0,1,0,0,0,70,16,16,0,1,0,0,0,62,0,0,1,83,84,65,84,148,0,0,0,7,0,0,0,1,0,0,0,0,0,0,0,6,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0, -}; -const uint8_t dxbc_fragment[744] = { - 68,88,66,67,235,219,43,109,38,151,39,223,98,41,193,28,215,98,67,110,1,0,0,0,232,2,0,0,5,0,0,0,52,0,0,0,12,1,0,0,88,1,0,0,140,1,0,0,76,2,0,0,82,68,69,70,208,0,0,0,0,0,0,0,0,0,0,0,2, - 0,0,0,60,0,0,0,1,5,255,255,0,5,0,0,167,0,0,0,19,19,68,37,60,0,0,0,24,0,0,0,40,0,0,0,40,0,0,0,36,0,0,0,12,0,0,0,0,0,0,0,140,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, - 0,0,2,0,0,0,0,0,0,0,158,0,0,0,2,0,0,0,5,0,0,0,4,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,12,0,0,0,2,0,0,0,0,0,0,0,95,115,84,101,120,116,117,114,101,95,115,97,109,112,108,101,114,0,115, - 84,101,120,116,117,114,101,0,77,105,99,114,111,115,111,102,116,32,40,82,41,32,72,76,83,76,32,83,104,97,100,101,114,32,67,111,109,112,105,108,101,114,32,49,48,46,49,0,171,73,83,71,78, - 68,0,0,0,2,0,0,0,8,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,15,15,0,0,56,0,0,0,1,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,3,3,0,0,84,69,88,67,79,79,82,68,0,171,171,171,79,83,71,78,44,0, - 0,0,1,0,0,0,8,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,15,0,0,0,83,86,95,84,97,114,103,101,116,0,171,171,83,72,69,88,184,0,0,0,81,0,0,0,46,0,0,0,106,8,0,1,90,0,0,6,70,110,48, - 0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,88,24,0,7,70,126,48,0,0,0,0,0,0,0,0,0,0,0,0,0,85,85,0,0,2,0,0,0,98,16,0,3,242,16,16,0,0,0,0,0,98,16,0,3,50,16,16,0,1,0,0,0,101,0,0,3,242,32,16,0,0, - 0,0,0,104,0,0,2,1,0,0,0,69,0,0,11,242,0,16,0,0,0,0,0,70,16,16,0,1,0,0,0,70,126,32,0,0,0,0,0,0,0,0,0,0,96,32,0,0,0,0,0,0,0,0,0,56,0,0,7,242,32,16,0,0,0,0,0,70,14,16,0,0,0,0,0,70,30, - 16,0,0,0,0,0,62,0,0,1,83,84,65,84,148,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -}; - -#ifdef __APPLE__ -#include -#if TARGET_OS_MAC -const uint8_t metallib_vertex[3892] = { - 77,84,76,66,1,128,2,0,7,0,0,129,14,0,0,0,52,15,0,0,0,0,0,0,88,0,0,0,0,0,0,0,123,0,0,0,0,0,0,0,219,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,12,1,0,0,0,0,0,0,8,0,0,0,0,0,0,0,20,1,0,0,0,0,0,0,32, - 14,0,0,0,0,0,0,1,0,0,0,123,0,0,0,78,65,77,69,6,0,109,97,105,110,48,0,84,89,80,69,1,0,0,72,65,83,72,32,0,62,81,190,157,8,240,236,158,164,213,65,62,170,226,96,136,231,243,238,160,100, - 26,13,254,254,64,19,129,180,3,149,75,77,68,83,90,8,0,32,14,0,0,0,0,0,0,79,70,70,84,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,86,69,82,83,8,0,2,0,6,0,3,0,1,0,69,78,68,84, - 69,78,68,84,45,0,0,0,86,65,84,84,24,0,3,0,97,80,111,115,0,0,128,97,85,86,0,1,128,97,67,111,108,111,114,0,2,128,86,65,84,89,5,0,3,0,4,4,6,69,78,68,84,4,0,0,0,69,78,68,84,222,192,23, - 11,0,0,0,0,20,0,0,0,8,14,0,0,255,255,255,255,66,67,192,222,53,20,0,0,3,0,0,0,98,12,48,36,128,16,5,200,20,0,0,0,33,12,0,0,74,3,0,0,11,2,33,0,2,0,0,0,22,0,0,0,7,129,35,145,65,200,4,73, - 6,16,50,57,146,1,132,12,37,5,8,25,30,4,139,98,128,16,69,2,66,146,11,66,132,16,50,20,56,8,24,75,10,50,66,136,72,112,196,33,35,68,18,135,140,16,65,146,2,100,200,8,177,20,32,67,70,136, - 32,201,1,50,66,132,24,42,40,42,144,49,124,176,92,145,32,196,200,0,0,0,137,32,0,0,24,0,0,0,50,34,8,9,32,98,70,0,33,43,36,152,16,33,37,36,152,16,25,39,12,133,164,144,96,66,100,92,32, - 36,100,130,224,153,1,24,70,32,128,97,4,1,184,67,72,32,37,77,17,37,76,62,149,82,210,193,57,141,52,1,205,148,4,145,65,4,66,48,197,136,68,145,13,4,204,17,128,129,10,228,28,1,40,12,34, - 8,194,48,2,145,140,0,0,0,0,0,81,24,0,0,100,0,0,0,27,246,35,248,255,255,255,255,1,48,5,192,15,0,56,0,254,0,144,0,10,232,3,34,28,224,1,30,228,225,29,240,161,13,204,161,30,220,97,28,218, - 192,28,224,161,13,218,33,28,232,1,29,0,122,144,135,122,40,7,128,48,7,121,8,135,118,40,135,54,128,135,119,72,7,119,160,135,114,144,7,32,28,216,129,29,0,162,29,210,193,29,218,128,29, - 202,225,28,194,129,29,218,192,30,202,97,28,232,225,29,228,161,13,238,33,29,200,129,30,208,1,136,3,57,192,3,96,112,135,119,104,3,113,168,135,116,96,7,122,72,7,119,152,7,128,112,135, - 119,104,131,116,112,7,115,152,135,54,48,7,120,104,131,118,8,7,122,64,7,128,30,228,161,30,202,1,32,220,225,29,218,192,29,194,193,29,230,161,13,204,1,30,218,160,29,194,129,30,208,1,160, - 7,121,168,135,114,0,8,119,120,135,54,152,135,116,56,7,119,40,7,114,104,3,125,40,7,121,120,135,121,104,3,115,128,135,54,104,135,112,160,7,116,0,232,65,30,234,161,28,0,194,29,222,161, - 13,232,65,30,194,1,30,224,33,29,220,225,28,218,160,29,194,129,30,208,1,160,7,121,168,135,114,0,136,121,160,135,112,24,135,117,104,3,120,144,135,119,160,135,114,24,7,122,120,7,121,104, - 3,113,168,7,115,48,135,114,144,135,54,152,135,116,208,135,114,0,240,0,32,234,193,29,230,33,28,204,161,28,218,192,28,224,161,13,218,33,28,232,1,29,0,122,144,135,122,40,7,96,195,24,8, - 4,176,0,164,0,84,65,128,4,105,0,13,225,144,14,242,208,6,226,80,15,230,96,14,229,32,15,109,224,14,239,208,6,225,192,14,233,16,14,243,0,0,0,73,24,0,0,1,0,0,0,19,132,64,0,19,176,112,72, - 7,121,176,3,58,104,131,112,128,7,120,96,135,114,104,131,118,8,135,113,120,135,121,192,135,56,160,3,55,128,3,55,128,131,13,183,81,14,109,0,15,122,96,7,116,160,7,118,64,7,122,96,7,116, - 208,6,233,16,7,122,128,7,122,128,7,109,144,14,120,160,7,120,160,7,120,208,6,233,16,7,118,160,7,113,96,7,122,16,7,118,208,6,233,48,7,114,160,7,115,32,7,122,48,7,114,208,6,233,96,7,116, - 160,7,118,64,7,122,96,7,116,208,6,230,48,7,114,160,7,115,32,7,122,48,7,114,208,6,230,96,7,116,160,7,118,64,7,122,96,7,116,208,6,246,16,7,118,160,7,113,96,7,122,16,7,118,208,6,246,32, - 7,116,160,7,115,32,7,122,48,7,114,208,6,246,48,7,114,160,7,115,32,7,122,48,7,114,208,6,246,64,7,120,160,7,118,64,7,122,96,7,116,208,6,246,96,7,116,160,7,118,64,7,122,96,7,116,208,6, - 246,144,7,118,160,7,113,32,7,120,160,7,113,32,7,120,208,6,246,16,7,114,128,7,122,16,7,114,128,7,122,16,7,114,128,7,109,96,15,113,144,7,114,160,7,114,80,7,118,160,7,114,80,7,118,208, - 6,246,32,7,117,96,7,122,32,7,117,96,7,122,32,7,117,96,7,109,96,15,117,16,7,114,160,7,117,16,7,114,160,7,117,16,7,114,208,6,246,16,7,112,32,7,116,160,7,113,0,7,114,64,7,122,16,7,112, - 32,7,116,208,6,238,128,7,122,16,7,118,160,7,115,32,7,26,33,12,89,48,0,210,208,67,42,160,48,0,0,8,0,0,0,4,0,0,0,0,0,10,64,98,131,64,81,166,1,0,128,44,16,0,11,0,0,0,50,30,152,16,25,17, - 76,144,140,9,38,71,198,4,67,202,34,40,129,66,40,135,242,41,64,129,130,40,144,98,24,1,40,3,218,17,0,210,177,132,39,0,0,0,177,24,0,0,165,0,0,0,51,8,128,28,196,225,28,102,20,1,61,136, - 67,56,132,195,140,66,128,7,121,120,7,115,152,113,12,230,0,15,237,16,14,244,128,14,51,12,66,30,194,193,29,206,161,28,102,48,5,61,136,67,56,132,131,27,204,3,61,200,67,61,140,3,61,204, - 120,140,116,112,7,123,8,7,121,72,135,112,112,7,122,112,3,118,120,135,112,32,135,25,204,17,14,236,144,14,225,48,15,110,48,15,227,240,14,240,80,14,51,16,196,29,222,33,28,216,33,29,194, - 97,30,102,48,137,59,188,131,59,208,67,57,180,3,60,188,131,60,132,3,59,204,240,20,118,96,7,123,104,7,55,104,135,114,104,7,55,128,135,112,144,135,112,96,7,118,40,7,118,248,5,118,120, - 135,119,128,135,95,8,135,113,24,135,114,152,135,121,152,129,44,238,240,14,238,224,14,245,192,14,236,48,3,98,200,161,28,228,161,28,204,161,28,228,161,28,220,97,28,202,33,28,196,129, - 29,202,97,6,214,144,67,57,200,67,57,152,67,57,200,67,57,184,195,56,148,67,56,136,3,59,148,195,47,188,131,60,252,130,59,212,3,59,176,195,12,199,105,135,112,88,135,114,112,131,116,104, - 7,120,96,135,116,24,135,116,160,135,25,206,83,15,238,0,15,242,80,14,228,144,14,227,64,15,225,32,14,236,80,14,51,32,40,29,220,193,30,194,65,30,210,33,28,220,129,30,220,224,28,228,225, - 29,234,1,30,102,24,81,56,176,67,58,156,131,59,204,80,36,118,96,7,123,104,7,55,96,135,119,120,7,120,152,81,76,244,144,15,240,80,14,51,30,106,30,202,97,28,232,33,29,222,193,29,126,1, - 30,228,161,28,204,33,29,240,97,6,84,133,131,56,204,195,59,176,67,61,208,67,57,252,194,60,228,67,59,136,195,59,176,195,140,197,10,135,121,152,135,119,24,135,116,8,7,122,40,7,114,152, - 129,92,227,16,14,236,192,14,229,80,14,243,48,35,193,210,65,30,228,225,23,216,225,29,222,1,30,102,72,25,59,176,131,61,180,131,27,132,195,56,140,67,57,204,195,60,184,193,57,200,195,59, - 212,3,60,204,72,180,113,8,7,118,96,7,113,8,135,113,88,135,25,219,198,14,236,96,15,237,224,6,240,32,15,229,48,15,229,32,15,246,80,14,110,16,14,227,48,14,229,48,15,243,224,6,233,224, - 14,228,80,14,248,48,35,226,236,97,28,194,129,29,216,225,23,236,33,29,230,33,29,196,33,29,216,33,29,232,33,31,102,32,157,59,188,67,61,184,3,57,148,131,57,204,88,188,112,112,7,119,120, - 7,122,8,7,122,72,135,119,112,135,25,206,135,14,229,16,14,240,16,14,236,192,14,239,48,14,243,144,14,244,80,14,51,40,48,8,135,116,144,7,55,48,135,122,112,135,113,160,135,116,120,7,119, - 248,133,115,144,135,119,168,7,120,152,7,0,0,0,0,121,32,0,0,26,1,0,0,114,30,72,32,67,136,12,25,9,114,50,72,32,35,129,140,145,145,209,68,160,16,40,100,60,49,50,66,142,144,33,163,152, - 6,100,208,82,0,0,0,139,210,88,216,6,109,80,28,20,27,71,6,209,18,25,76,178,24,6,179,64,18,49,24,202,131,68,148,161,68,87,35,0,0,0,0,83,68,75,32,86,101,114,115,105,111,110,119,99,104, - 97,114,95,115,105,122,101,102,114,97,109,101,45,112,111,105,110,116,101,114,97,105,114,46,109,97,120,95,100,101,118,105,99,101,95,98,117,102,102,101,114,115,97,105,114,46,109,97,120, - 95,99,111,110,115,116,97,110,116,95,98,117,102,102,101,114,115,97,105,114,46,109,97,120,95,116,104,114,101,97,100,103,114,111,117,112,95,98,117,102,102,101,114,115,97,105,114,46,109, - 97,120,95,116,101,120,116,117,114,101,115,97,105,114,46,109,97,120,95,114,101,97,100,95,119,114,105,116,101,95,116,101,120,116,117,114,101,115,97,105,114,46,109,97,120,95,115,97,109, - 112,108,101,114,115,65,112,112,108,101,32,109,101,116,97,108,32,118,101,114,115,105,111,110,32,51,50,48,50,51,46,51,54,56,32,40,109,101,116,97,108,102,101,45,51,50,48,50,51,46,51,54, - 56,41,77,101,116,97,108,97,105,114,46,99,111,109,112,105,108,101,46,100,101,110,111,114,109,115,95,100,105,115,97,98,108,101,97,105,114,46,99,111,109,112,105,108,101,46,102,97,115, - 116,95,109,97,116,104,95,101,110,97,98,108,101,97,105,114,46,99,111,109,112,105,108,101,46,102,114,97,109,101,98,117,102,102,101,114,95,102,101,116,99,104,95,101,110,97,98,108,101, - 97,105,114,46,118,101,114,116,101,120,95,111,117,116,112,117,116,117,115,101,114,40,108,111,99,110,48,41,97,105,114,46,97,114,103,95,116,121,112,101,95,110,97,109,101,102,108,111,97, - 116,52,97,105,114,46,97,114,103,95,110,97,109,101,79,117,116,95,67,111,108,111,114,117,115,101,114,40,108,111,99,110,49,41,102,108,111,97,116,50,79,117,116,95,85,86,97,105,114,46,112, - 111,115,105,116,105,111,110,103,108,95,80,111,115,105,116,105,111,110,97,105,114,46,118,101,114,116,101,120,95,105,110,112,117,116,97,105,114,46,108,111,99,97,116,105,111,110,95,105, - 110,100,101,120,97,80,111,115,97,85,86,97,67,111,108,111,114,97,105,114,46,98,117,102,102,101,114,97,105,114,46,98,117,102,102,101,114,95,115,105,122,101,97,105,114,46,114,101,97,100, - 97,105,114,46,97,100,100,114,101,115,115,95,115,112,97,99,101,97,105,114,46,115,116,114,117,99,116,95,116,121,112,101,95,105,110,102,111,117,83,99,97,108,101,117,84,114,97,110,115, - 108,97,116,101,97,105,114,46,97,114,103,95,116,121,112,101,95,115,105,122,101,97,105,114,46,97,114,103,95,116,121,112,101,95,97,108,105,103,110,95,115,105,122,101,117,80,117,115,104, - 67,111,110,115,116,97,110,116,112,99,0,0,0,166,119,0,0,0,0,0,0,48,130,144,4,35,8,74,51,130,144,8,35,8,201,48,130,144,16,35,8,73,49,130,144,24,35,8,201,49,130,144,32,35,8,73,50,130, - 144,40,35,8,201,50,130,112,0,51,12,106,16,172,193,12,3,27,8,109,48,195,224,6,131,26,204,48,184,1,241,6,51,12,110,80,188,193,12,131,27,24,111,48,195,224,6,7,28,204,48,184,1,18,7,51, - 12,110,144,200,193,12,129,50,195,160,6,115,64,7,51,16,75,29,176,1,29,204,16,48,51,4,205,12,129,51,131,241,64,145,52,81,51,24,79,21,89,211,53,67,129,69,210,148,205,48,152,194,41,160, - 194,12,9,29,104,27,29,176,65,100,77,220,12,9,27,104,27,27,176,65,100,77,221,12,137,26,104,155,26,176,65,36,77,222,12,10,29,196,1,29,88,100,16,7,113,64,7,86,25,204,64,213,193,7,6,114, - 176,209,1,27,132,129,24,168,193,24,180,130,25,200,193,25,196,65,132,6,83,26,204,64,168,194,42,176,130,43,204,48,216,65,42,188,194,157,1,192,113,28,199,113,28,199,113,28,199,185,129, - 27,184,129,27,184,129,27,184,129,27,184,129,69,7,122,96,89,22,29,208,129,27,208,1,46,224,2,46,240,3,122,128,130,140,4,38,40,35,54,54,187,54,151,182,55,178,58,182,50,23,51,182,176,179, - 185,81,18,59,184,3,60,200,3,61,216,3,62,232,3,63,72,133,141,205,174,205,37,141,172,204,141,110,148,224,15,114,9,75,147,115,177,43,147,155,75,123,115,27,37,0,133,164,194,210,228,92, - 216,194,220,206,234,194,206,202,190,236,202,228,230,210,222,220,70,9,66,33,167,176,52,57,151,177,183,54,184,52,182,178,175,55,56,186,180,55,183,185,81,6,81,24,5,82,72,37,44,77,206, - 197,174,76,142,174,12,111,148,224,21,0,0,0,169,24,0,0,37,0,0,0,11,10,114,40,135,119,128,7,122,88,112,152,67,61,184,195,56,176,67,57,208,195,130,230,28,198,161,13,232,65,30,194,193, - 29,230,33,29,232,33,29,222,193,29,22,52,227,96,14,231,80,15,225,32,15,228,64,15,225,32,15,231,80,14,244,176,128,129,7,121,40,135,112,96,7,118,120,135,113,8,7,122,40,7,114,88,112,156, - 195,56,180,1,59,164,131,61,148,195,2,107,28,216,33,28,220,225,28,220,32,28,228,97,28,220,32,28,232,129,30,194,97,28,208,161,28,200,97,28,194,129,29,216,97,193,1,15,244,32,15,225,80, - 15,244,128,14,0,0,0,0,209,16,0,0,6,0,0,0,7,204,60,164,131,59,156,3,59,148,3,61,160,131,60,148,67,56,144,195,1,0,0,0,97,32,0,0,68,0,0,0,19,4,65,44,16,0,0,0,11,0,0,0,148,51,0,180,37, - 64,61,7,161,72,146,52,7,161,72,9,65,48,26,48,2,48,70,0,130,32,136,127,20,115,16,150,117,97,36,163,1,52,51,0,0,0,0,0,241,48,0,0,32,0,0,0,34,71,200,144,81,18,196,43,0,0,0,0,207,115,89, - 0,111,109,110,105,112,111,116,101,110,116,32,99,104,97,114,83,105,109,112,108,101,32,67,43,43,32,84,66,65,65,97,105,114,45,97,108,105,97,115,45,115,99,111,112,101,115,40,109,97,105, - 110,48,41,97,105,114,45,97,108,105,97,115,45,115,99,111,112,101,45,97,114,103,40,51,41,0,19,132,133,89,33,216,194,44,172,24,110,193,22,104,97,67,32,11,27,134,88,192,133,90,216,48,228, - 66,46,212,194,134,224,22,0,0,157,134,5,146,40,16,130,1,36,254,157,6,103,234,40,16,130,67,0,254,131,12,1,226,12,50,4,138,51,134,48,68,22,128,255,28,195,16,76,179,13,204,5,204,54,4,89, - 48,219,16,12,194,6,1,49,0,4,0,0,0,91,138,32,200,133,67,23,182,20,68,144,11,135,46,0,0,0,0,0,0,113,32,0,0,3,0,0,0,50,14,16,34,132,0,134,6,0,0,0,0,0,0,0,0,101,12,0,0,31,0,0,0,18,3,148, - 240,0,0,0,0,3,0,0,0,5,0,0,0,9,0,0,0,76,0,0,0,1,0,0,0,88,0,0,0,0,0,0,0,88,0,0,0,1,0,0,0,112,0,0,0,0,0,0,0,14,0,0,0,24,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0, - 1,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,255,255,255,255,0,36,0,0,0,0,0,0,93,12,0,0,13,0,0,0,18,3,148,102,0,0,0,0,109,97,105,110,48,51,50,48,50,51,46,51,54,56,97,105,114,54, - 52,45,97,112,112,108,101,45,109,97,99,111,115,120,49,52,46,48,46,48,0,0,0,0,0,0,0,0,0,0, -}; -const uint8_t metallib_fragment[3787] = { - 77,84,76,66,1,128,2,0,7,0,0,129,14,0,0,0,203,14,0,0,0,0,0,0,88,0,0,0,0,0,0,0,123,0,0,0,0,0,0,0,219,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,227,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,235,0,0,0,0,0,0,0, - 224,13,0,0,0,0,0,0,1,0,0,0,123,0,0,0,78,65,77,69,6,0,109,97,105,110,48,0,84,89,80,69,1,0,1,72,65,83,72,32,0,201,103,233,140,10,95,185,107,79,93,85,82,78,218,248,8,95,184,8,139,191, - 155,174,56,51,95,203,135,255,117,44,62,77,68,83,90,8,0,224,13,0,0,0,0,0,0,79,70,70,84,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,86,69,82,83,8,0,2,0,6,0,3,0,1,0,69,78,68, - 84,69,78,68,84,4,0,0,0,69,78,68,84,4,0,0,0,69,78,68,84,222,192,23,11,0,0,0,0,20,0,0,0,196,13,0,0,255,255,255,255,66,67,192,222,53,20,0,0,3,0,0,0,98,12,48,36,128,16,5,200,20,0,0,0,33, - 12,0,0,44,3,0,0,11,2,33,0,2,0,0,0,22,0,0,0,7,129,35,145,65,200,4,73,6,16,50,57,146,1,132,12,37,5,8,25,30,4,139,98,128,20,69,2,66,146,11,66,164,16,50,20,56,8,24,75,10,50,82,136,72,112, - 196,33,35,68,18,135,140,16,65,146,2,100,200,8,177,20,32,67,70,136,32,201,1,50,82,132,24,42,40,42,144,49,124,176,92,145,32,197,200,0,0,0,137,32,0,0,31,0,0,0,50,34,72,9,32,98,70,0,33, - 43,36,152,20,33,37,36,152,20,25,39,12,133,164,144,96,82,100,92,32,36,101,130,128,154,1,24,70,32,128,27,132,97,4,1,64,74,154,34,74,152,252,127,34,174,137,138,136,223,30,254,105,140, - 0,24,68,32,2,140,164,41,162,132,201,255,37,128,121,22,34,250,167,49,2,96,16,193,16,76,33,194,40,135,208,28,1,114,132,160,230,8,130,57,2,48,24,70,16,26,163,172,114,6,115,12,128,70,111, - 32,64,5,218,8,0,0,81,24,0,0,105,0,0,0,27,246,35,248,255,255,255,255,1,104,3,96,13,0,83,0,252,0,144,128,10,232,3,34,28,224,1,30,228,225,29,240,161,13,204,161,30,220,97,28,218,192,28, - 224,161,13,218,33,28,232,1,29,0,122,144,135,122,40,7,128,48,7,121,8,135,118,40,135,54,128,135,119,72,7,119,160,135,114,144,7,32,28,216,129,29,0,162,29,210,193,29,218,128,29,202,225, - 28,194,129,29,218,192,30,202,97,28,232,225,29,228,161,13,238,33,29,200,129,30,208,1,136,3,57,192,3,96,112,135,119,104,3,113,168,135,116,96,7,122,72,7,119,152,7,128,112,135,119,104, - 131,116,112,7,115,152,135,54,48,7,120,104,131,118,8,7,122,64,7,128,30,228,161,30,202,1,32,220,225,29,218,192,29,194,193,29,230,161,13,204,1,30,218,160,29,194,129,30,208,1,160,7,121, - 168,135,114,0,8,119,120,135,54,152,135,116,56,7,119,40,7,114,104,3,125,40,7,121,120,135,121,104,3,115,128,135,54,104,135,112,160,7,116,0,232,65,30,234,161,28,0,194,29,222,161,13,232, - 65,30,194,1,30,224,33,29,220,225,28,218,160,29,194,129,30,208,1,160,7,121,168,135,114,0,136,121,160,135,112,24,135,117,104,3,120,144,135,119,160,135,114,24,7,122,120,7,121,104,3,113, - 168,7,115,48,135,114,144,135,54,152,135,116,208,135,114,0,240,0,32,234,193,29,230,33,28,204,161,28,218,192,28,224,161,13,218,33,28,232,1,29,0,122,144,135,122,40,7,96,131,33,12,192, - 2,84,27,140,129,0,22,160,218,0,17,255,255,255,255,63,0,109,0,172,1,96,10,128,31,0,18,80,1,125,176,193,40,2,96,1,170,13,134,33,0,11,80,109,96,142,255,255,255,255,31,128,54,0,214,0,144, - 128,10,232,3,0,73,24,0,0,4,0,0,0,19,134,64,24,38,12,68,97,76,24,142,194,0,0,0,0,19,176,112,72,7,121,176,3,58,104,131,112,128,7,120,96,135,114,104,131,118,8,135,113,120,135,121,192, - 135,56,160,3,55,128,3,55,128,131,13,183,81,14,109,0,15,122,96,7,116,160,7,118,64,7,122,96,7,116,208,6,233,16,7,122,128,7,122,128,7,109,144,14,120,160,7,120,160,7,120,208,6,233,16,7, - 118,160,7,113,96,7,122,16,7,118,208,6,233,48,7,114,160,7,115,32,7,122,48,7,114,208,6,233,96,7,116,160,7,118,64,7,122,96,7,116,208,6,230,48,7,114,160,7,115,32,7,122,48,7,114,208,6,230, - 96,7,116,160,7,118,64,7,122,96,7,116,208,6,246,16,7,118,160,7,113,96,7,122,16,7,118,208,6,246,32,7,116,160,7,115,32,7,122,48,7,114,208,6,246,48,7,114,160,7,115,32,7,122,48,7,114,208, - 6,246,64,7,120,160,7,118,64,7,122,96,7,116,208,6,246,96,7,116,160,7,118,64,7,122,96,7,116,208,6,246,144,7,118,160,7,113,32,7,120,160,7,113,32,7,120,208,6,246,16,7,114,128,7,122,16, - 7,114,128,7,122,16,7,114,128,7,109,96,15,113,144,7,114,160,7,114,80,7,118,160,7,114,80,7,118,208,6,246,32,7,117,96,7,122,32,7,117,96,7,122,32,7,117,96,7,109,96,15,117,16,7,114,160, - 7,117,16,7,114,160,7,117,16,7,114,208,6,246,16,7,112,32,7,116,160,7,113,0,7,114,64,7,122,16,7,112,32,7,116,208,6,238,128,7,122,16,7,118,160,7,115,32,7,26,33,12,89,48,0,210,208,67,42, - 160,64,0,0,8,0,0,0,4,0,0,0,0,0,10,96,72,85,108,15,16,0,2,0,0,128,0,0,0,0,0,64,1,72,108,16,40,234,50,0,0,144,5,2,0,0,0,10,0,0,0,50,30,152,16,25,17,76,144,140,9,38,71,198,4,67,106,69, - 80,2,133,80,14,229,83,128,2,5,81,32,197,48,2,80,6,36,199,18,158,0,0,177,24,0,0,165,0,0,0,51,8,128,28,196,225,28,102,20,1,61,136,67,56,132,195,140,66,128,7,121,120,7,115,152,113,12, - 230,0,15,237,16,14,244,128,14,51,12,66,30,194,193,29,206,161,28,102,48,5,61,136,67,56,132,131,27,204,3,61,200,67,61,140,3,61,204,120,140,116,112,7,123,8,7,121,72,135,112,112,7,122, - 112,3,118,120,135,112,32,135,25,204,17,14,236,144,14,225,48,15,110,48,15,227,240,14,240,80,14,51,16,196,29,222,33,28,216,33,29,194,97,30,102,48,137,59,188,131,59,208,67,57,180,3,60, - 188,131,60,132,3,59,204,240,20,118,96,7,123,104,7,55,104,135,114,104,7,55,128,135,112,144,135,112,96,7,118,40,7,118,248,5,118,120,135,119,128,135,95,8,135,113,24,135,114,152,135,121, - 152,129,44,238,240,14,238,224,14,245,192,14,236,48,3,98,200,161,28,228,161,28,204,161,28,228,161,28,220,97,28,202,33,28,196,129,29,202,97,6,214,144,67,57,200,67,57,152,67,57,200,67, - 57,184,195,56,148,67,56,136,3,59,148,195,47,188,131,60,252,130,59,212,3,59,176,195,12,199,105,135,112,88,135,114,112,131,116,104,7,120,96,135,116,24,135,116,160,135,25,206,83,15,238, - 0,15,242,80,14,228,144,14,227,64,15,225,32,14,236,80,14,51,32,40,29,220,193,30,194,65,30,210,33,28,220,129,30,220,224,28,228,225,29,234,1,30,102,24,81,56,176,67,58,156,131,59,204,80, - 36,118,96,7,123,104,7,55,96,135,119,120,7,120,152,81,76,244,144,15,240,80,14,51,30,106,30,202,97,28,232,33,29,222,193,29,126,1,30,228,161,28,204,33,29,240,97,6,84,133,131,56,204,195, - 59,176,67,61,208,67,57,252,194,60,228,67,59,136,195,59,176,195,140,197,10,135,121,152,135,119,24,135,116,8,7,122,40,7,114,152,129,92,227,16,14,236,192,14,229,80,14,243,48,35,193,210, - 65,30,228,225,23,216,225,29,222,1,30,102,72,25,59,176,131,61,180,131,27,132,195,56,140,67,57,204,195,60,184,193,57,200,195,59,212,3,60,204,72,180,113,8,7,118,96,7,113,8,135,113,88, - 135,25,219,198,14,236,96,15,237,224,6,240,32,15,229,48,15,229,32,15,246,80,14,110,16,14,227,48,14,229,48,15,243,224,6,233,224,14,228,80,14,248,48,35,226,236,97,28,194,129,29,216,225, - 23,236,33,29,230,33,29,196,33,29,216,33,29,232,33,31,102,32,157,59,188,67,61,184,3,57,148,131,57,204,88,188,112,112,7,119,120,7,122,8,7,122,72,135,119,112,135,25,206,135,14,229,16, - 14,240,16,14,236,192,14,239,48,14,243,144,14,244,80,14,51,40,48,8,135,116,144,7,55,48,135,122,112,135,113,160,135,116,120,7,119,248,133,115,144,135,119,168,7,120,152,7,0,0,0,0,121, - 32,0,0,252,0,0,0,114,30,72,32,67,136,12,25,9,114,50,72,32,35,129,140,145,145,209,68,160,16,40,100,60,49,50,66,142,144,33,163,56,6,220,41,1,0,0,0,139,210,88,216,6,109,80,28,20,27,71, - 6,81,100,48,134,180,40,15,178,24,197,34,41,24,178,28,13,83,68,75,32,86,101,114,115,105,111,110,119,99,104,97,114,95,115,105,122,101,102,114,97,109,101,45,112,111,105,110,116,101,114, - 97,105,114,46,109,97,120,95,100,101,118,105,99,101,95,98,117,102,102,101,114,115,97,105,114,46,109,97,120,95,99,111,110,115,116,97,110,116,95,98,117,102,102,101,114,115,97,105,114, - 46,109,97,120,95,116,104,114,101,97,100,103,114,111,117,112,95,98,117,102,102,101,114,115,97,105,114,46,109,97,120,95,116,101,120,116,117,114,101,115,97,105,114,46,109,97,120,95,114, - 101,97,100,95,119,114,105,116,101,95,116,101,120,116,117,114,101,115,97,105,114,46,109,97,120,95,115,97,109,112,108,101,114,115,65,112,112,108,101,32,109,101,116,97,108,32,118,101, - 114,115,105,111,110,32,51,50,48,50,51,46,51,54,56,32,40,109,101,116,97,108,102,101,45,51,50,48,50,51,46,51,54,56,41,77,101,116,97,108,97,105,114,46,99,111,109,112,105,108,101,46,100, - 101,110,111,114,109,115,95,100,105,115,97,98,108,101,97,105,114,46,99,111,109,112,105,108,101,46,102,97,115,116,95,109,97,116,104,95,101,110,97,98,108,101,97,105,114,46,99,111,109, - 112,105,108,101,46,102,114,97,109,101,98,117,102,102,101,114,95,102,101,116,99,104,95,101,110,97,98,108,101,97,105,114,46,114,101,110,100,101,114,95,116,97,114,103,101,116,97,105,114, - 46,97,114,103,95,116,121,112,101,95,110,97,109,101,102,108,111,97,116,52,97,105,114,46,97,114,103,95,110,97,109,101,102,67,111,108,111,114,97,105,114,46,102,114,97,103,109,101,110, - 116,95,105,110,112,117,116,117,115,101,114,40,108,111,99,110,48,41,97,105,114,46,99,101,110,116,101,114,97,105,114,46,112,101,114,115,112,101,99,116,105,118,101,73,110,95,67,111,108, - 111,114,117,115,101,114,40,108,111,99,110,49,41,102,108,111,97,116,50,73,110,95,85,86,97,105,114,46,116,101,120,116,117,114,101,97,105,114,46,108,111,99,97,116,105,111,110,95,105,110, - 100,101,120,97,105,114,46,115,97,109,112,108,101,116,101,120,116,117,114,101,50,100,60,102,108,111,97,116,44,32,115,97,109,112,108,101,62,115,84,101,120,116,117,114,101,97,105,114, - 46,115,97,109,112,108,101,114,115,97,109,112,108,101,114,115,84,101,120,116,117,114,101,83,109,112,108,114,0,198,96,0,0,0,0,0,0,48,130,208,8,35,8,82,51,130,208,12,35,8,13,49,130,208, - 20,35,8,141,49,130,208,28,35,8,13,50,130,208,36,35,8,141,50,130,208,44,35,8,13,51,130,144,0,51,12,100,16,148,193,12,131,25,8,103,48,195,128,6,3,25,204,48,160,1,145,6,51,12,104,80,164, - 193,12,3,26,24,105,48,195,128,6,135,26,204,48,160,1,178,6,51,12,104,144,176,193,12,129,50,195,64,6,109,224,6,51,16,203,27,152,129,27,204,16,48,51,4,205,12,129,51,195,241,184,129,27, - 64,145,52,205,16,128,194,12,137,27,80,149,117,65,145,132,205,144,152,1,149,89,23,164,73,219,12,10,25,112,157,27,152,129,7,125,18,24,204,144,188,65,24,116,110,96,6,144,24,72,99,48,3, - 33,10,163,64,10,165,48,195,0,7,161,96,10,71,6,0,199,113,28,199,113,28,199,113,28,231,6,110,224,6,110,224,6,110,224,6,110,224,6,22,29,232,129,101,89,166,192,177,2,43,144,131,58,128, - 130,140,4,38,40,35,54,54,187,54,151,182,55,178,58,182,50,23,51,182,176,179,185,81,18,56,136,3,57,152,3,58,168,3,59,184,3,60,72,133,141,205,174,205,37,141,172,204,141,110,148,32,15, - 114,9,75,147,115,177,43,147,155,75,123,115,27,37,208,131,164,194,210,228,92,216,194,220,206,234,194,206,202,190,236,202,228,230,210,222,220,70,9,246,32,167,176,52,57,151,177,183,54, - 184,52,182,178,175,55,56,186,180,55,183,185,81,6,62,232,3,63,72,38,44,77,206,197,76,46,236,172,173,204,141,110,148,192,20,0,0,0,0,169,24,0,0,37,0,0,0,11,10,114,40,135,119,128,7,122, - 88,112,152,67,61,184,195,56,176,67,57,208,195,130,230,28,198,161,13,232,65,30,194,193,29,230,33,29,232,33,29,222,193,29,22,52,227,96,14,231,80,15,225,32,15,228,64,15,225,32,15,231, - 80,14,244,176,128,129,7,121,40,135,112,96,7,118,120,135,113,8,7,122,40,7,114,88,112,156,195,56,180,1,59,164,131,61,148,195,2,107,28,216,33,28,220,225,28,220,32,28,228,97,28,220,32, - 28,232,129,30,194,97,28,208,161,28,200,97,28,194,129,29,216,97,193,1,15,244,32,15,225,80,15,244,128,14,0,0,0,0,209,16,0,0,6,0,0,0,7,204,60,164,131,59,156,3,59,148,3,61,160,131,60,148, - 67,56,144,195,1,0,0,0,97,32,0,0,49,0,0,0,19,4,65,44,16,0,0,0,4,0,0,0,196,106,96,4,128,220,8,0,129,17,0,18,51,0,0,0,241,48,0,0,28,0,0,0,34,71,200,144,81,14,196,42,0,0,0,0,23,134,1,0, - 97,105,114,45,97,108,105,97,115,45,115,99,111,112,101,115,40,109,97,105,110,48,41,97,105,114,45,97,108,105,97,115,45,115,99,111,112,101,45,115,97,109,112,108,101,114,115,97,105,114, - 45,97,108,105,97,115,45,115,99,111,112,101,45,116,101,120,116,117,114,101,115,0,43,132,85,64,133,21,3,43,172,66,42,172,24,90,97,21,84,97,131,208,10,172,0,0,35,6,205,16,130,96,240,88, - 135,129,20,3,33,8,204,104,66,0,96,176,136,255,108,3,17,0,27,4,196,0,0,0,2,0,0,0,91,6,224,104,5,0,0,0,0,0,0,0,113,32,0,0,3,0,0,0,50,14,16,34,132,0,251,5,0,0,0,0,0,0,0,0,101,12,0,0,37, - 0,0,0,18,3,148,40,1,0,0,0,3,0,0,0,32,0,0,0,9,0,0,0,76,0,0,0,1,0,0,0,88,0,0,0,0,0,0,0,88,0,0,0,2,0,0,0,136,0,0,0,0,0,0,0,41,0,0,0,24,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,136,0,0,0, - 0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,255,255,255,255,0,36,0,0,5,0,0,0,27,0,0,0,5,0,0,0,27,0,0,0,255,255,255,255,8,36,0,0,0,0,0,0,93,12,0,0,20,0,0,0,18,3, - 148,161,0,0,0,0,109,97,105,110,48,97,105,114,46,115,97,109,112,108,101,95,116,101,120,116,117,114,101,95,50,100,46,118,52,102,51,50,51,50,48,50,51,46,51,54,56,97,105,114,54,52,45,97, - 112,112,108,101,45,109,97,99,111,115,120,49,52,46,48,46,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -}; -#elif TARGET_OS_IPHONE -const uint8_t metallib_vertex[3876] = { - 77,84,76,66,1,0,2,0,7,0,0,130,18,0,1,0,36,15,0,0,0,0,0,0,88,0,0,0,0,0,0,0,123,0,0,0,0,0,0,0,219,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,12,1,0,0,0,0,0,0,8,0,0,0,0,0,0,0,20,1,0,0,0,0,0,0,16, - 14,0,0,0,0,0,0,1,0,0,0,123,0,0,0,78,65,77,69,6,0,109,97,105,110,48,0,84,89,80,69,1,0,0,72,65,83,72,32,0,240,54,230,217,232,66,102,78,35,5,77,235,101,252,229,192,148,96,126,162,111, - 77,253,247,211,52,17,198,182,137,68,244,77,68,83,90,8,0,16,14,0,0,0,0,0,0,79,70,70,84,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,86,69,82,83,8,0,2,0,7,0,3,0,2,0,69,78,68, - 84,69,78,68,84,45,0,0,0,86,65,84,84,24,0,3,0,97,80,111,115,0,0,128,97,85,86,0,1,128,97,67,111,108,111,114,0,2,128,86,65,84,89,5,0,3,0,4,4,6,69,78,68,84,4,0,0,0,69,78,68,84,222,192, - 23,11,0,0,0,0,20,0,0,0,252,13,0,0,255,255,255,255,66,67,192,222,53,20,0,0,3,0,0,0,98,12,48,36,128,16,5,200,20,0,0,0,33,12,0,0,72,3,0,0,11,2,33,0,2,0,0,0,22,0,0,0,7,129,35,145,65,200, - 4,73,6,16,50,57,146,1,132,12,37,5,8,25,30,4,139,98,128,16,69,2,66,146,11,66,132,16,50,20,56,8,24,75,10,50,66,136,72,112,196,33,35,68,18,135,140,16,65,146,2,100,200,8,177,20,32,67,70, - 136,32,201,1,50,66,132,24,42,40,42,144,49,124,176,92,145,32,196,200,0,0,0,137,32,0,0,24,0,0,0,50,34,8,9,32,98,70,0,33,43,36,152,16,33,37,36,152,16,25,39,12,133,164,144,96,66,100,92, - 32,36,100,130,224,153,1,24,70,32,128,97,4,1,184,67,72,32,37,77,17,37,76,62,149,82,210,193,57,141,52,1,205,148,4,145,65,4,66,48,197,136,68,145,13,4,204,17,128,129,10,228,28,1,40,12, - 34,8,194,48,2,145,140,0,0,0,0,0,81,24,0,0,100,0,0,0,27,246,35,248,255,255,255,255,1,48,5,192,15,0,56,0,254,0,144,0,10,232,3,34,28,224,1,30,228,225,29,240,161,13,204,161,30,220,97,28, - 218,192,28,224,161,13,218,33,28,232,1,29,0,122,144,135,122,40,7,128,48,7,121,8,135,118,40,135,54,128,135,119,72,7,119,160,135,114,144,7,32,28,216,129,29,0,162,29,210,193,29,218,128, - 29,202,225,28,194,129,29,218,192,30,202,97,28,232,225,29,228,161,13,238,33,29,200,129,30,208,1,136,3,57,192,3,96,112,135,119,104,3,113,168,135,116,96,7,122,72,7,119,152,7,128,112,135, - 119,104,131,116,112,7,115,152,135,54,48,7,120,104,131,118,8,7,122,64,7,128,30,228,161,30,202,1,32,220,225,29,218,192,29,194,193,29,230,161,13,204,1,30,218,160,29,194,129,30,208,1,160, - 7,121,168,135,114,0,8,119,120,135,54,152,135,116,56,7,119,40,7,114,104,3,125,40,7,121,120,135,121,104,3,115,128,135,54,104,135,112,160,7,116,0,232,65,30,234,161,28,0,194,29,222,161, - 13,232,65,30,194,1,30,224,33,29,220,225,28,218,160,29,194,129,30,208,1,160,7,121,168,135,114,0,136,121,160,135,112,24,135,117,104,3,120,144,135,119,160,135,114,24,7,122,120,7,121,104, - 3,113,168,7,115,48,135,114,144,135,54,152,135,116,208,135,114,0,240,0,32,234,193,29,230,33,28,204,161,28,218,192,28,224,161,13,218,33,28,232,1,29,0,122,144,135,122,40,7,96,195,24,8, - 4,176,0,164,0,84,65,128,4,105,0,13,225,144,14,242,208,6,226,80,15,230,96,14,229,32,15,109,224,14,239,208,6,225,192,14,233,16,14,243,0,0,0,73,24,0,0,1,0,0,0,19,132,64,0,19,170,112,72, - 7,121,176,3,58,104,131,112,128,7,120,96,135,114,104,131,116,120,135,121,136,3,60,112,131,56,112,3,56,216,112,27,229,208,6,240,160,7,118,64,7,122,96,7,116,160,7,118,64,7,109,144,14, - 113,160,7,120,160,7,120,208,6,233,128,7,122,128,7,122,128,7,109,144,14,113,96,7,122,16,7,118,160,7,113,96,7,109,144,14,115,32,7,122,48,7,114,160,7,115,32,7,109,144,14,118,64,7,122, - 96,7,116,160,7,118,64,7,109,96,14,115,32,7,122,48,7,114,160,7,115,32,7,109,96,14,118,64,7,122,96,7,116,160,7,118,64,7,109,96,15,113,96,7,122,16,7,118,160,7,113,96,7,109,96,15,114,64, - 7,122,48,7,114,160,7,115,32,7,109,96,15,115,32,7,122,48,7,114,160,7,115,32,7,109,96,15,116,128,7,122,96,7,116,160,7,118,64,7,109,96,15,118,64,7,122,96,7,116,160,7,118,64,7,109,96,15, - 121,96,7,122,16,7,114,128,7,122,16,7,114,128,7,109,96,15,113,32,7,120,160,7,113,32,7,120,160,7,113,32,7,120,208,6,246,16,7,121,32,7,122,32,7,117,96,7,122,32,7,117,96,7,109,96,15,114, - 80,7,118,160,7,114,80,7,118,160,7,114,80,7,118,208,6,246,80,7,113,32,7,122,80,7,113,32,7,122,80,7,113,32,7,109,96,15,113,0,7,114,64,7,122,16,7,112,32,7,116,160,7,113,0,7,114,64,7,109, - 224,14,120,160,7,113,96,7,122,48,7,114,160,17,194,144,5,3,32,13,61,164,2,10,3,0,128,0,0,0,64,0,0,0,0,0,160,0,36,54,8,20,85,26,0,0,200,2,1,0,11,0,0,0,50,30,152,16,25,17,76,144,140,9, - 38,71,198,4,67,202,34,40,129,66,40,135,242,41,64,129,130,40,144,17,128,50,160,29,1,32,29,75,144,2,0,0,0,0,177,24,0,0,165,0,0,0,51,8,128,28,196,225,28,102,20,1,61,136,67,56,132,195, - 140,66,128,7,121,120,7,115,152,113,12,230,0,15,237,16,14,244,128,14,51,12,66,30,194,193,29,206,161,28,102,48,5,61,136,67,56,132,131,27,204,3,61,200,67,61,140,3,61,204,120,140,116,112, - 7,123,8,7,121,72,135,112,112,7,122,112,3,118,120,135,112,32,135,25,204,17,14,236,144,14,225,48,15,110,48,15,227,240,14,240,80,14,51,16,196,29,222,33,28,216,33,29,194,97,30,102,48,137, - 59,188,131,59,208,67,57,180,3,60,188,131,60,132,3,59,204,240,20,118,96,7,123,104,7,55,104,135,114,104,7,55,128,135,112,144,135,112,96,7,118,40,7,118,248,5,118,120,135,119,128,135,95, - 8,135,113,24,135,114,152,135,121,152,129,44,238,240,14,238,224,14,245,192,14,236,48,3,98,200,161,28,228,161,28,204,161,28,228,161,28,220,97,28,202,33,28,196,129,29,202,97,6,214,144, - 67,57,200,67,57,152,67,57,200,67,57,184,195,56,148,67,56,136,3,59,148,195,47,188,131,60,252,130,59,212,3,59,176,195,12,199,105,135,112,88,135,114,112,131,116,104,7,120,96,135,116,24, - 135,116,160,135,25,206,83,15,238,0,15,242,80,14,228,144,14,227,64,15,225,32,14,236,80,14,51,32,40,29,220,193,30,194,65,30,210,33,28,220,129,30,220,224,28,228,225,29,234,1,30,102,24, - 81,56,176,67,58,156,131,59,204,80,36,118,96,7,123,104,7,55,96,135,119,120,7,120,152,81,76,244,144,15,240,80,14,51,30,106,30,202,97,28,232,33,29,222,193,29,126,1,30,228,161,28,204,33, - 29,240,97,6,84,133,131,56,204,195,59,176,67,61,208,67,57,252,194,60,228,67,59,136,195,59,176,195,140,197,10,135,121,152,135,119,24,135,116,8,7,122,40,7,114,152,129,92,227,16,14,236, - 192,14,229,80,14,243,48,35,193,210,65,30,228,225,23,216,225,29,222,1,30,102,72,25,59,176,131,61,180,131,27,132,195,56,140,67,57,204,195,60,184,193,57,200,195,59,212,3,60,204,72,180, - 113,8,7,118,96,7,113,8,135,113,88,135,25,219,198,14,236,96,15,237,224,6,240,32,15,229,48,15,229,32,15,246,80,14,110,16,14,227,48,14,229,48,15,243,224,6,233,224,14,228,80,14,248,48, - 35,226,236,97,28,194,129,29,216,225,23,236,33,29,230,33,29,196,33,29,216,33,29,232,33,31,102,32,157,59,188,67,61,184,3,57,148,131,57,204,88,188,112,112,7,119,120,7,122,8,7,122,72,135, - 119,112,135,25,206,135,14,229,16,14,240,16,14,236,192,14,239,48,14,243,144,14,244,80,14,51,40,48,8,135,116,144,7,55,48,135,122,112,135,113,160,135,116,120,7,119,248,133,115,144,135, - 119,168,7,120,152,7,0,0,0,0,121,32,0,0,25,1,0,0,114,30,72,32,67,136,12,25,9,114,50,72,32,35,129,140,145,145,209,68,160,16,40,100,60,49,50,66,142,144,33,163,152,6,100,208,82,0,0,0,139, - 210,88,216,6,109,80,28,20,27,71,6,209,18,25,76,178,24,6,179,64,18,49,24,202,131,68,148,161,68,87,35,0,0,0,0,83,68,75,32,86,101,114,115,105,111,110,119,99,104,97,114,95,115,105,122, - 101,102,114,97,109,101,45,112,111,105,110,116,101,114,97,105,114,46,109,97,120,95,100,101,118,105,99,101,95,98,117,102,102,101,114,115,97,105,114,46,109,97,120,95,99,111,110,115,116, - 97,110,116,95,98,117,102,102,101,114,115,97,105,114,46,109,97,120,95,116,104,114,101,97,100,103,114,111,117,112,95,98,117,102,102,101,114,115,97,105,114,46,109,97,120,95,116,101,120, - 116,117,114,101,115,97,105,114,46,109,97,120,95,114,101,97,100,95,119,114,105,116,101,95,116,101,120,116,117,114,101,115,97,105,114,46,109,97,120,95,115,97,109,112,108,101,114,115, - 65,112,112,108,101,32,109,101,116,97,108,32,118,101,114,115,105,111,110,32,51,50,48,50,51,46,51,54,56,32,40,109,101,116,97,108,102,101,45,51,50,48,50,51,46,51,54,56,41,77,101,116,97, - 108,97,105,114,46,99,111,109,112,105,108,101,46,100,101,110,111,114,109,115,95,100,105,115,97,98,108,101,97,105,114,46,99,111,109,112,105,108,101,46,102,97,115,116,95,109,97,116,104, - 95,101,110,97,98,108,101,97,105,114,46,99,111,109,112,105,108,101,46,102,114,97,109,101,98,117,102,102,101,114,95,102,101,116,99,104,95,101,110,97,98,108,101,97,105,114,46,118,101, - 114,116,101,120,95,111,117,116,112,117,116,117,115,101,114,40,108,111,99,110,48,41,97,105,114,46,97,114,103,95,116,121,112,101,95,110,97,109,101,102,108,111,97,116,52,97,105,114,46, - 97,114,103,95,110,97,109,101,79,117,116,95,67,111,108,111,114,117,115,101,114,40,108,111,99,110,49,41,102,108,111,97,116,50,79,117,116,95,85,86,97,105,114,46,112,111,115,105,116,105, - 111,110,103,108,95,80,111,115,105,116,105,111,110,97,105,114,46,118,101,114,116,101,120,95,105,110,112,117,116,97,105,114,46,108,111,99,97,116,105,111,110,95,105,110,100,101,120,97, - 80,111,115,97,85,86,97,67,111,108,111,114,97,105,114,46,98,117,102,102,101,114,97,105,114,46,98,117,102,102,101,114,95,115,105,122,101,97,105,114,46,114,101,97,100,97,105,114,46,97, - 100,100,114,101,115,115,95,115,112,97,99,101,97,105,114,46,115,116,114,117,99,116,95,116,121,112,101,95,105,110,102,111,117,83,99,97,108,101,117,84,114,97,110,115,108,97,116,101,97, - 105,114,46,97,114,103,95,116,121,112,101,95,115,105,122,101,97,105,114,46,97,114,103,95,116,121,112,101,95,97,108,105,103,110,95,115,105,122,101,117,80,117,115,104,67,111,110,115,116, - 97,110,116,112,99,0,0,0,230,117,0,0,0,0,0,0,48,130,144,4,35,8,10,51,130,144,8,35,8,201,48,130,144,16,35,8,73,49,130,144,24,35,8,201,49,130,144,32,35,8,73,50,130,144,40,35,8,7,48,195, - 160,6,193,26,204,48,176,129,208,6,51,12,110,48,168,193,12,131,27,16,111,48,195,224,6,197,27,204,48,184,129,241,6,51,12,110,112,192,193,12,131,27,32,113,48,195,224,6,137,28,204,16,40, - 51,12,106,224,6,115,48,3,177,208,129,26,204,193,12,1,51,67,208,204,16,56,51,24,15,20,73,19,53,131,241,84,145,53,93,51,20,88,36,77,217,12,67,41,152,194,41,204,144,204,129,182,205,1, - 27,68,214,196,205,144,176,129,182,177,1,27,68,214,212,205,144,168,129,182,169,1,27,68,210,228,205,160,204,65,28,204,129,69,6,113,16,7,115,96,149,193,12,20,29,124,96,32,7,219,28,176, - 65,24,136,129,26,140,1,43,152,129,28,156,65,28,68,104,48,165,193,12,68,42,168,194,42,180,194,12,67,29,160,130,43,156,25,0,28,199,113,28,199,113,28,199,113,110,224,6,110,224,6,110,224, - 6,110,224,6,110,96,209,129,30,88,150,69,7,116,224,6,116,128,11,184,128,11,252,128,30,160,32,35,129,9,202,136,141,205,174,205,165,237,141,172,142,173,204,197,140,45,236,108,110,148, - 164,14,236,224,14,240,32,15,244,96,15,248,160,15,82,97,99,179,107,115,73,35,43,115,163,27,37,240,131,92,194,210,228,92,236,202,228,230,210,222,220,70,9,254,32,169,176,52,57,23,182, - 48,183,179,186,176,179,178,47,187,50,185,185,180,55,183,81,2,80,200,41,44,77,206,101,236,173,13,46,141,173,236,235,13,142,46,237,205,109,110,148,33,20,68,97,20,82,9,75,147,115,177, - 43,147,163,43,195,27,37,112,5,0,0,0,169,24,0,0,37,0,0,0,11,10,114,40,135,119,128,7,122,88,112,152,67,61,184,195,56,176,67,57,208,195,130,230,28,198,161,13,232,65,30,194,193,29,230, - 33,29,232,33,29,222,193,29,22,52,227,96,14,231,80,15,225,32,15,228,64,15,225,32,15,231,80,14,244,176,128,129,7,121,40,135,112,96,7,118,120,135,113,8,7,122,40,7,114,88,112,156,195,56, - 180,1,59,164,131,61,148,195,2,107,28,216,33,28,220,225,28,220,32,28,228,97,28,220,32,28,232,129,30,194,97,28,208,161,28,200,97,28,194,129,29,216,97,193,1,15,244,32,15,225,80,15,244, - 128,14,0,0,0,0,209,16,0,0,6,0,0,0,7,204,60,164,131,59,156,3,59,148,3,61,160,131,60,148,67,56,144,195,1,0,0,0,97,32,0,0,68,0,0,0,19,4,65,44,16,0,0,0,11,0,0,0,148,51,0,197,64,91,2,212, - 115,16,73,20,69,115,16,73,36,17,4,163,1,35,0,99,4,32,8,130,248,71,49,7,97,89,23,70,50,26,64,51,3,0,0,0,241,48,0,0,32,0,0,0,34,71,200,144,81,18,196,43,0,0,0,0,207,115,89,0,111,109,110, - 105,112,111,116,101,110,116,32,99,104,97,114,83,105,109,112,108,101,32,67,43,43,32,84,66,65,65,97,105,114,45,97,108,105,97,115,45,115,99,111,112,101,115,40,109,97,105,110,48,41,97, - 105,114,45,97,108,105,97,115,45,115,99,111,112,101,45,97,114,103,40,51,41,0,19,132,101,89,33,212,130,44,172,24,108,161,22,102,97,67,16,11,27,6,88,184,5,90,216,48,224,2,46,208,194,134, - 192,22,0,0,157,6,38,154,40,16,130,65,36,254,157,134,135,234,40,16,130,67,0,254,131,12,1,226,12,50,4,138,51,134,48,68,22,128,255,28,195,16,76,179,13,12,6,204,54,4,90,48,219,16,12,194, - 6,1,49,0,4,0,0,0,91,138,32,192,133,35,23,182,20,68,128,11,71,46,0,0,0,0,0,0,113,32,0,0,3,0,0,0,50,14,16,34,132,0,132,6,0,0,0,0,0,0,0,0,101,12,0,0,31,0,0,0,18,3,148,240,0,0,0,0,3,0, - 0,0,5,0,0,0,9,0,0,0,76,0,0,0,1,0,0,0,88,0,0,0,0,0,0,0,88,0,0,0,1,0,0,0,112,0,0,0,0,0,0,0,14,0,0,0,21,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, - 0,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,255,255,255,255,0,36,0,0,0,0,0,0,93,12,0,0,12,0,0,0,18,3,148,99,0,0,0,0,109,97,105,110,48,51,50,48,50,51,46,51,54,56,97,105,114,54,52,45,97,112,112, - 108,101,45,105,111,115,49,56,46,49,46,48,0,0,0,0,0, -}; -const uint8_t metallib_fragment[3771] = { - 77,84,76,66,1,0,2,0,7,0,0,130,18,0,1,0,187,14,0,0,0,0,0,0,88,0,0,0,0,0,0,0,123,0,0,0,0,0,0,0,219,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,227,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,235,0,0,0,0,0,0,0,208, - 13,0,0,0,0,0,0,1,0,0,0,123,0,0,0,78,65,77,69,6,0,109,97,105,110,48,0,84,89,80,69,1,0,1,72,65,83,72,32,0,167,26,51,31,140,153,203,226,66,149,243,47,185,58,96,202,28,176,71,121,86,159, - 244,234,235,69,155,58,121,67,241,212,77,68,83,90,8,0,208,13,0,0,0,0,0,0,79,70,70,84,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,86,69,82,83,8,0,2,0,7,0,3,0,2,0,69,78,68,84, - 69,78,68,84,4,0,0,0,69,78,68,84,4,0,0,0,69,78,68,84,222,192,23,11,0,0,0,0,20,0,0,0,180,13,0,0,255,255,255,255,66,67,192,222,53,20,0,0,3,0,0,0,98,12,48,36,128,16,5,200,20,0,0,0,33,12, - 0,0,41,3,0,0,11,2,33,0,2,0,0,0,22,0,0,0,7,129,35,145,65,200,4,73,6,16,50,57,146,1,132,12,37,5,8,25,30,4,139,98,128,20,69,2,66,146,11,66,164,16,50,20,56,8,24,75,10,50,82,136,72,112, - 196,33,35,68,18,135,140,16,65,146,2,100,200,8,177,20,32,67,70,136,32,201,1,50,82,132,24,42,40,42,144,49,124,176,92,145,32,197,200,0,0,0,137,32,0,0,31,0,0,0,50,34,72,9,32,98,70,0,33, - 43,36,152,20,33,37,36,152,20,25,39,12,133,164,144,96,82,100,92,32,36,101,130,128,154,1,24,70,32,128,27,132,97,4,1,64,74,154,34,74,152,252,127,34,174,137,138,136,223,30,254,105,140, - 0,24,68,32,2,140,164,41,162,132,201,255,37,128,121,22,34,250,167,49,2,96,16,193,16,76,33,194,40,135,208,28,1,114,132,160,230,8,130,57,2,48,24,70,16,26,163,172,114,6,115,12,128,70,111, - 32,64,5,218,8,0,0,81,24,0,0,105,0,0,0,27,246,35,248,255,255,255,255,1,104,3,96,13,0,83,0,252,0,144,128,10,232,3,34,28,224,1,30,228,225,29,240,161,13,204,161,30,220,97,28,218,192,28, - 224,161,13,218,33,28,232,1,29,0,122,144,135,122,40,7,128,48,7,121,8,135,118,40,135,54,128,135,119,72,7,119,160,135,114,144,7,32,28,216,129,29,0,162,29,210,193,29,218,128,29,202,225, - 28,194,129,29,218,192,30,202,97,28,232,225,29,228,161,13,238,33,29,200,129,30,208,1,136,3,57,192,3,96,112,135,119,104,3,113,168,135,116,96,7,122,72,7,119,152,7,128,112,135,119,104, - 131,116,112,7,115,152,135,54,48,7,120,104,131,118,8,7,122,64,7,128,30,228,161,30,202,1,32,220,225,29,218,192,29,194,193,29,230,161,13,204,1,30,218,160,29,194,129,30,208,1,160,7,121, - 168,135,114,0,8,119,120,135,54,152,135,116,56,7,119,40,7,114,104,3,125,40,7,121,120,135,121,104,3,115,128,135,54,104,135,112,160,7,116,0,232,65,30,234,161,28,0,194,29,222,161,13,232, - 65,30,194,1,30,224,33,29,220,225,28,218,160,29,194,129,30,208,1,160,7,121,168,135,114,0,136,121,160,135,112,24,135,117,104,3,120,144,135,119,160,135,114,24,7,122,120,7,121,104,3,113, - 168,7,115,48,135,114,144,135,54,152,135,116,208,135,114,0,240,0,32,234,193,29,230,33,28,204,161,28,218,192,28,224,161,13,218,33,28,232,1,29,0,122,144,135,122,40,7,96,131,33,12,192, - 2,84,27,140,129,0,22,160,218,0,17,255,255,255,255,63,0,109,0,172,1,96,10,128,31,0,18,80,1,125,176,193,40,2,96,1,170,13,134,33,0,11,80,109,96,142,255,255,255,255,31,128,54,0,214,0,144, - 128,10,232,3,0,73,24,0,0,4,0,0,0,19,134,64,24,38,12,68,97,76,24,142,194,0,0,0,0,19,170,112,72,7,121,176,3,58,104,131,112,128,7,120,96,135,114,104,131,116,120,135,121,136,3,60,112,131, - 56,112,3,56,216,112,27,229,208,6,240,160,7,118,64,7,122,96,7,116,160,7,118,64,7,109,144,14,113,160,7,120,160,7,120,208,6,233,128,7,122,128,7,122,128,7,109,144,14,113,96,7,122,16,7, - 118,160,7,113,96,7,109,144,14,115,32,7,122,48,7,114,160,7,115,32,7,109,144,14,118,64,7,122,96,7,116,160,7,118,64,7,109,96,14,115,32,7,122,48,7,114,160,7,115,32,7,109,96,14,118,64,7, - 122,96,7,116,160,7,118,64,7,109,96,15,113,96,7,122,16,7,118,160,7,113,96,7,109,96,15,114,64,7,122,48,7,114,160,7,115,32,7,109,96,15,115,32,7,122,48,7,114,160,7,115,32,7,109,96,15,116, - 128,7,122,96,7,116,160,7,118,64,7,109,96,15,118,64,7,122,96,7,116,160,7,118,64,7,109,96,15,121,96,7,122,16,7,114,128,7,122,16,7,114,128,7,109,96,15,113,32,7,120,160,7,113,32,7,120, - 160,7,113,32,7,120,208,6,246,16,7,121,32,7,122,32,7,117,96,7,122,32,7,117,96,7,109,96,15,114,80,7,118,160,7,114,80,7,118,160,7,114,80,7,118,208,6,246,80,7,113,32,7,122,80,7,113,32, - 7,122,80,7,113,32,7,109,96,15,113,0,7,114,64,7,122,16,7,112,32,7,116,160,7,113,0,7,114,64,7,109,224,14,120,160,7,113,96,7,122,48,7,114,160,17,194,144,5,3,32,13,61,164,2,10,4,0,128, - 0,0,0,64,0,0,0,0,0,160,0,134,84,197,246,0,1,32,0,0,0,8,0,0,0,0,0,20,128,196,6,129,162,43,3,0,0,89,32,10,0,0,0,50,30,152,16,25,17,76,144,140,9,38,71,198,4,67,106,69,80,2,133,80,14,229, - 83,128,2,5,81,32,35,0,101,64,114,44,65,10,0,0,0,177,24,0,0,165,0,0,0,51,8,128,28,196,225,28,102,20,1,61,136,67,56,132,195,140,66,128,7,121,120,7,115,152,113,12,230,0,15,237,16,14,244, - 128,14,51,12,66,30,194,193,29,206,161,28,102,48,5,61,136,67,56,132,131,27,204,3,61,200,67,61,140,3,61,204,120,140,116,112,7,123,8,7,121,72,135,112,112,7,122,112,3,118,120,135,112,32, - 135,25,204,17,14,236,144,14,225,48,15,110,48,15,227,240,14,240,80,14,51,16,196,29,222,33,28,216,33,29,194,97,30,102,48,137,59,188,131,59,208,67,57,180,3,60,188,131,60,132,3,59,204, - 240,20,118,96,7,123,104,7,55,104,135,114,104,7,55,128,135,112,144,135,112,96,7,118,40,7,118,248,5,118,120,135,119,128,135,95,8,135,113,24,135,114,152,135,121,152,129,44,238,240,14, - 238,224,14,245,192,14,236,48,3,98,200,161,28,228,161,28,204,161,28,228,161,28,220,97,28,202,33,28,196,129,29,202,97,6,214,144,67,57,200,67,57,152,67,57,200,67,57,184,195,56,148,67, - 56,136,3,59,148,195,47,188,131,60,252,130,59,212,3,59,176,195,12,199,105,135,112,88,135,114,112,131,116,104,7,120,96,135,116,24,135,116,160,135,25,206,83,15,238,0,15,242,80,14,228, - 144,14,227,64,15,225,32,14,236,80,14,51,32,40,29,220,193,30,194,65,30,210,33,28,220,129,30,220,224,28,228,225,29,234,1,30,102,24,81,56,176,67,58,156,131,59,204,80,36,118,96,7,123,104, - 7,55,96,135,119,120,7,120,152,81,76,244,144,15,240,80,14,51,30,106,30,202,97,28,232,33,29,222,193,29,126,1,30,228,161,28,204,33,29,240,97,6,84,133,131,56,204,195,59,176,67,61,208,67, - 57,252,194,60,228,67,59,136,195,59,176,195,140,197,10,135,121,152,135,119,24,135,116,8,7,122,40,7,114,152,129,92,227,16,14,236,192,14,229,80,14,243,48,35,193,210,65,30,228,225,23,216, - 225,29,222,1,30,102,72,25,59,176,131,61,180,131,27,132,195,56,140,67,57,204,195,60,184,193,57,200,195,59,212,3,60,204,72,180,113,8,7,118,96,7,113,8,135,113,88,135,25,219,198,14,236, - 96,15,237,224,6,240,32,15,229,48,15,229,32,15,246,80,14,110,16,14,227,48,14,229,48,15,243,224,6,233,224,14,228,80,14,248,48,35,226,236,97,28,194,129,29,216,225,23,236,33,29,230,33, - 29,196,33,29,216,33,29,232,33,31,102,32,157,59,188,67,61,184,3,57,148,131,57,204,88,188,112,112,7,119,120,7,122,8,7,122,72,135,119,112,135,25,206,135,14,229,16,14,240,16,14,236,192, - 14,239,48,14,243,144,14,244,80,14,51,40,48,8,135,116,144,7,55,48,135,122,112,135,113,160,135,116,120,7,119,248,133,115,144,135,119,168,7,120,152,7,0,0,0,0,121,32,0,0,251,0,0,0,114, - 30,72,32,67,136,12,25,9,114,50,72,32,35,129,140,145,145,209,68,160,16,40,100,60,49,50,66,142,144,33,163,56,6,220,41,1,0,0,0,139,210,88,216,6,109,80,28,20,27,71,6,81,100,48,134,180, - 40,15,178,24,197,34,41,24,178,28,13,83,68,75,32,86,101,114,115,105,111,110,119,99,104,97,114,95,115,105,122,101,102,114,97,109,101,45,112,111,105,110,116,101,114,97,105,114,46,109, - 97,120,95,100,101,118,105,99,101,95,98,117,102,102,101,114,115,97,105,114,46,109,97,120,95,99,111,110,115,116,97,110,116,95,98,117,102,102,101,114,115,97,105,114,46,109,97,120,95,116, - 104,114,101,97,100,103,114,111,117,112,95,98,117,102,102,101,114,115,97,105,114,46,109,97,120,95,116,101,120,116,117,114,101,115,97,105,114,46,109,97,120,95,114,101,97,100,95,119,114, - 105,116,101,95,116,101,120,116,117,114,101,115,97,105,114,46,109,97,120,95,115,97,109,112,108,101,114,115,65,112,112,108,101,32,109,101,116,97,108,32,118,101,114,115,105,111,110,32, - 51,50,48,50,51,46,51,54,56,32,40,109,101,116,97,108,102,101,45,51,50,48,50,51,46,51,54,56,41,77,101,116,97,108,97,105,114,46,99,111,109,112,105,108,101,46,100,101,110,111,114,109,115, - 95,100,105,115,97,98,108,101,97,105,114,46,99,111,109,112,105,108,101,46,102,97,115,116,95,109,97,116,104,95,101,110,97,98,108,101,97,105,114,46,99,111,109,112,105,108,101,46,102,114, - 97,109,101,98,117,102,102,101,114,95,102,101,116,99,104,95,101,110,97,98,108,101,97,105,114,46,114,101,110,100,101,114,95,116,97,114,103,101,116,97,105,114,46,97,114,103,95,116,121, - 112,101,95,110,97,109,101,102,108,111,97,116,52,97,105,114,46,97,114,103,95,110,97,109,101,102,67,111,108,111,114,97,105,114,46,102,114,97,103,109,101,110,116,95,105,110,112,117,116, - 117,115,101,114,40,108,111,99,110,48,41,97,105,114,46,99,101,110,116,101,114,97,105,114,46,112,101,114,115,112,101,99,116,105,118,101,73,110,95,67,111,108,111,114,117,115,101,114,40, - 108,111,99,110,49,41,102,108,111,97,116,50,73,110,95,85,86,97,105,114,46,116,101,120,116,117,114,101,97,105,114,46,108,111,99,97,116,105,111,110,95,105,110,100,101,120,97,105,114,46, - 115,97,109,112,108,101,116,101,120,116,117,114,101,50,100,60,102,108,111,97,116,44,32,115,97,109,112,108,101,62,115,84,101,120,116,117,114,101,97,105,114,46,115,97,109,112,108,101, - 114,115,97,109,112,108,101,114,115,84,101,120,116,117,114,101,83,109,112,108,114,0,6,95,0,0,0,0,0,0,48,130,208,8,35,8,18,51,130,208,12,35,8,13,49,130,208,20,35,8,141,49,130,208,28, - 35,8,13,50,130,208,36,35,8,141,50,130,208,44,35,8,9,48,195,64,6,65,25,204,48,152,129,112,6,51,12,104,48,144,193,12,3,26,16,105,48,195,128,6,69,26,204,48,160,129,145,6,51,12,104,112, - 168,193,12,3,26,32,107,48,195,128,6,9,27,204,16,40,51,12,100,128,6,109,48,3,177,184,1,25,180,193,12,1,51,67,208,204,16,56,51,28,79,27,180,1,20,73,211,12,193,31,204,144,180,1,85,89, - 23,20,73,216,12,137,25,80,153,117,65,154,180,205,160,144,1,215,181,129,25,120,208,39,129,193,12,137,27,132,65,215,6,102,0,137,129,52,6,51,16,161,32,10,163,64,10,51,12,111,0,10,165, - 112,99,0,112,28,199,113,28,199,113,28,199,185,129,27,184,129,27,184,129,27,184,129,27,184,129,69,7,122,96,89,150,41,112,172,192,10,228,160,14,160,32,35,129,9,202,136,141,205,174,205, - 165,237,141,172,142,173,204,197,140,45,236,108,110,148,228,13,224,32,14,228,96,14,232,160,14,236,224,14,82,97,99,179,107,115,73,35,43,115,163,27,37,192,131,92,194,210,228,92,236,202, - 228,230,210,222,220,70,9,242,32,169,176,52,57,23,182,48,183,179,186,176,179,178,47,187,50,185,185,180,55,183,81,2,61,200,41,44,77,206,101,236,173,13,46,141,173,236,235,13,142,46,237, - 205,109,110,148,97,15,248,160,15,146,9,75,147,115,49,147,11,59,107,43,115,163,27,37,40,5,0,0,0,0,169,24,0,0,37,0,0,0,11,10,114,40,135,119,128,7,122,88,112,152,67,61,184,195,56,176, - 67,57,208,195,130,230,28,198,161,13,232,65,30,194,193,29,230,33,29,232,33,29,222,193,29,22,52,227,96,14,231,80,15,225,32,15,228,64,15,225,32,15,231,80,14,244,176,128,129,7,121,40,135, - 112,96,7,118,120,135,113,8,7,122,40,7,114,88,112,156,195,56,180,1,59,164,131,61,148,195,2,107,28,216,33,28,220,225,28,220,32,28,228,97,28,220,32,28,232,129,30,194,97,28,208,161,28, - 200,97,28,194,129,29,216,97,193,1,15,244,32,15,225,80,15,244,128,14,0,0,0,0,209,16,0,0,6,0,0,0,7,204,60,164,131,59,156,3,59,148,3,61,160,131,60,148,67,56,144,195,1,0,0,0,97,32,0,0, - 49,0,0,0,19,4,65,44,16,0,0,0,4,0,0,0,196,106,96,4,128,220,8,0,129,17,0,18,51,0,0,0,241,48,0,0,28,0,0,0,34,71,200,144,81,14,196,42,0,0,0,0,23,134,1,0,97,105,114,45,97,108,105,97,115, - 45,115,99,111,112,101,115,40,109,97,105,110,48,41,97,105,114,45,97,108,105,97,115,45,115,99,111,112,101,45,115,97,109,112,108,101,114,115,97,105,114,45,97,108,105,97,115,45,115,99, - 111,112,101,45,116,101,120,116,117,114,101,115,0,43,4,85,56,133,21,195,42,168,2,42,172,24,88,65,21,82,97,131,192,10,171,0,0,35,6,205,16,130,96,240,84,135,129,20,3,33,8,204,104,66,0, - 96,176,136,255,108,3,17,0,27,4,196,0,0,0,2,0,0,0,91,6,224,96,5,0,0,0,0,0,0,0,113,32,0,0,3,0,0,0,50,14,16,34,132,0,248,5,0,0,0,0,0,0,0,0,101,12,0,0,37,0,0,0,18,3,148,40,1,0,0,0,3,0, - 0,0,32,0,0,0,9,0,0,0,76,0,0,0,1,0,0,0,88,0,0,0,0,0,0,0,88,0,0,0,2,0,0,0,136,0,0,0,0,0,0,0,41,0,0,0,21,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,136,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,255,255,255,255,0,36,0,0,5,0,0,0,27,0,0,0,5,0,0,0,27,0,0,0,255,255,255,255,8,36,0,0,0,0,0,0,93,12,0,0,19,0,0,0,18,3,148,126,0,0,0,0,109,97,105,110, - 48,97,105,114,46,115,97,109,112,108,101,95,116,101,120,116,117,114,101,95,50,100,46,118,52,102,51,50,51,50,48,50,51,46,51,54,56,97,105,114,54,52,45,97,112,112,108,101,45,105,111,115, - 49,56,46,49,46,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -}; -#elif TARGET_IPHONE_SIMULATOR -#error "SDL_GPU does not support the iphone simulator" -#endif -#endif - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_sdlrenderer2.cpp b/libs/imgui-1.92.1/backends/imgui_impl_sdlrenderer2.cpp deleted file mode 100644 index a39360f..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_sdlrenderer2.cpp +++ /dev/null @@ -1,300 +0,0 @@ -// dear imgui: Renderer Backend for SDL_Renderer for SDL2 -// (Requires: SDL 2.0.17+) - -// Note that SDL_Renderer is an _optional_ component of SDL2, which IMHO is now largely obsolete. -// For a multi-platform app consider using other technologies: -// - SDL3+SDL_GPU: SDL_GPU is SDL3 new graphics abstraction API. You will need to update to SDL3. -// - SDL2+DirectX, SDL2+OpenGL, SDL2+Vulkan: combine SDL with dedicated renderers. -// If your application wants to render any non trivial amount of graphics other than UI, -// please be aware that SDL_Renderer currently offers a limited graphic API to the end-user -// and it might be difficult to step out of those boundaries. - -// Implemented features: -// [X] Renderer: User texture binding. Use 'SDL_Texture*' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). -// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'. - -// You can copy and use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// CHANGELOG -// 2025-06-11: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas. Removed ImGui_ImplSDLRenderer2_CreateFontsTexture() and ImGui_ImplSDLRenderer2_DestroyFontsTexture(). -// 2025-01-18: Use endian-dependent RGBA32 texture format, to match SDL_Color. -// 2024-10-09: Expose selected render state in ImGui_ImplSDLRenderer2_RenderState, which you can access in 'void* platform_io.Renderer_RenderState' during draw callbacks. -// 2024-05-14: *BREAKING CHANGE* ImGui_ImplSDLRenderer3_RenderDrawData() requires SDL_Renderer* passed as parameter. -// 2023-05-30: Renamed imgui_impl_sdlrenderer.h/.cpp to imgui_impl_sdlrenderer2.h/.cpp to accommodate for upcoming SDL3. -// 2022-10-11: Using 'nullptr' instead of 'NULL' as per our switch to C++11. -// 2021-12-21: Update SDL_RenderGeometryRaw() format to work with SDL 2.0.19. -// 2021-12-03: Added support for large mesh (64K+ vertices), enable ImGuiBackendFlags_RendererHasVtxOffset flag. -// 2021-10-06: Backup and restore modified ClipRect/Viewport. -// 2021-09-21: Initial version. - -#include "imgui.h" -#ifndef IMGUI_DISABLE -#include "imgui_impl_sdlrenderer2.h" -#include // intptr_t - -// Clang warnings with -Weverything -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wsign-conversion" // warning: implicit conversion changes signedness -#elif defined(__GNUC__) -#pragma GCC diagnostic ignored "-Wfloat-equal" // warning: comparing floating-point with '==' or '!=' is unsafe -#endif - -// SDL -#include -#if !SDL_VERSION_ATLEAST(2,0,17) -#error This backend requires SDL 2.0.17+ because of SDL_RenderGeometry() function -#endif - -// SDL_Renderer data -struct ImGui_ImplSDLRenderer2_Data -{ - SDL_Renderer* Renderer; // Main viewport's renderer - - ImGui_ImplSDLRenderer2_Data() { memset((void*)this, 0, sizeof(*this)); } -}; - -// Backend data stored in io.BackendRendererUserData to allow support for multiple Dear ImGui contexts -// It is STRONGLY preferred that you use docking branch with multi-viewports (== single Dear ImGui context + multiple windows) instead of multiple Dear ImGui contexts. -static ImGui_ImplSDLRenderer2_Data* ImGui_ImplSDLRenderer2_GetBackendData() -{ - return ImGui::GetCurrentContext() ? (ImGui_ImplSDLRenderer2_Data*)ImGui::GetIO().BackendRendererUserData : nullptr; -} - -// Functions -bool ImGui_ImplSDLRenderer2_Init(SDL_Renderer* renderer) -{ - ImGuiIO& io = ImGui::GetIO(); - IMGUI_CHECKVERSION(); - IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); - IM_ASSERT(renderer != nullptr && "SDL_Renderer not initialized!"); - - // Setup backend capabilities flags - ImGui_ImplSDLRenderer2_Data* bd = IM_NEW(ImGui_ImplSDLRenderer2_Data)(); - io.BackendRendererUserData = (void*)bd; - io.BackendRendererName = "imgui_impl_sdlrenderer2"; - io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset; // We can honor the ImDrawCmd::VtxOffset field, allowing for large meshes. - io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures; // We can honor ImGuiPlatformIO::Textures[] requests during render. - - bd->Renderer = renderer; - - return true; -} - -void ImGui_ImplSDLRenderer2_Shutdown() -{ - ImGui_ImplSDLRenderer2_Data* bd = ImGui_ImplSDLRenderer2_GetBackendData(); - IM_ASSERT(bd != nullptr && "No renderer backend to shutdown, or already shutdown?"); - ImGuiIO& io = ImGui::GetIO(); - - ImGui_ImplSDLRenderer2_DestroyDeviceObjects(); - - io.BackendRendererName = nullptr; - io.BackendRendererUserData = nullptr; - io.BackendFlags &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures); - IM_DELETE(bd); -} - -static void ImGui_ImplSDLRenderer2_SetupRenderState(SDL_Renderer* renderer) -{ - // Clear out any viewports and cliprect set by the user - // FIXME: Technically speaking there are lots of other things we could backup/setup/restore during our render process. - SDL_RenderSetViewport(renderer, nullptr); - SDL_RenderSetClipRect(renderer, nullptr); -} - -void ImGui_ImplSDLRenderer2_NewFrame() -{ - ImGui_ImplSDLRenderer2_Data* bd = ImGui_ImplSDLRenderer2_GetBackendData(); - IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplSDLRenderer2_Init()?"); - IM_UNUSED(bd); -} - -void ImGui_ImplSDLRenderer2_RenderDrawData(ImDrawData* draw_data, SDL_Renderer* renderer) -{ - // If there's a scale factor set by the user, use that instead - // If the user has specified a scale factor to SDL_Renderer already via SDL_RenderSetScale(), SDL will scale whatever we pass - // to SDL_RenderGeometryRaw() by that scale factor. In that case we don't want to be also scaling it ourselves here. - float rsx = 1.0f; - float rsy = 1.0f; - SDL_RenderGetScale(renderer, &rsx, &rsy); - ImVec2 render_scale; - render_scale.x = (rsx == 1.0f) ? draw_data->FramebufferScale.x : 1.0f; - render_scale.y = (rsy == 1.0f) ? draw_data->FramebufferScale.y : 1.0f; - - // Avoid rendering when minimized, scale coordinates for retina displays (screen coordinates != framebuffer coordinates) - int fb_width = (int)(draw_data->DisplaySize.x * render_scale.x); - int fb_height = (int)(draw_data->DisplaySize.y * render_scale.y); - if (fb_width == 0 || fb_height == 0) - return; - - // Catch up with texture updates. Most of the times, the list will have 1 element with an OK status, aka nothing to do. - // (This almost always points to ImGui::GetPlatformIO().Textures[] but is part of ImDrawData to allow overriding or disabling texture updates). - if (draw_data->Textures != nullptr) - for (ImTextureData* tex : *draw_data->Textures) - if (tex->Status != ImTextureStatus_OK) - ImGui_ImplSDLRenderer2_UpdateTexture(tex); - - // Backup SDL_Renderer state that will be modified to restore it afterwards - struct BackupSDLRendererState - { - SDL_Rect Viewport; - bool ClipEnabled; - SDL_Rect ClipRect; - }; - BackupSDLRendererState old = {}; - old.ClipEnabled = SDL_RenderIsClipEnabled(renderer) == SDL_TRUE; - SDL_RenderGetViewport(renderer, &old.Viewport); - SDL_RenderGetClipRect(renderer, &old.ClipRect); - - // Setup desired state - ImGui_ImplSDLRenderer2_SetupRenderState(renderer); - - // Setup render state structure (for callbacks and custom texture bindings) - ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); - ImGui_ImplSDLRenderer2_RenderState render_state; - render_state.Renderer = renderer; - platform_io.Renderer_RenderState = &render_state; - - // Will project scissor/clipping rectangles into framebuffer space - ImVec2 clip_off = draw_data->DisplayPos; // (0,0) unless using multi-viewports - ImVec2 clip_scale = render_scale; - - // Render command lists - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - const ImDrawVert* vtx_buffer = draw_list->VtxBuffer.Data; - const ImDrawIdx* idx_buffer = draw_list->IdxBuffer.Data; - - for (int cmd_i = 0; cmd_i < draw_list->CmdBuffer.Size; cmd_i++) - { - const ImDrawCmd* pcmd = &draw_list->CmdBuffer[cmd_i]; - if (pcmd->UserCallback) - { - // User callback, registered via ImDrawList::AddCallback() - // (ImDrawCallback_ResetRenderState is a special callback value used by the user to request the renderer to reset render state.) - if (pcmd->UserCallback == ImDrawCallback_ResetRenderState) - ImGui_ImplSDLRenderer2_SetupRenderState(renderer); - else - pcmd->UserCallback(draw_list, pcmd); - } - else - { - // Project scissor/clipping rectangles into framebuffer space - ImVec2 clip_min((pcmd->ClipRect.x - clip_off.x) * clip_scale.x, (pcmd->ClipRect.y - clip_off.y) * clip_scale.y); - ImVec2 clip_max((pcmd->ClipRect.z - clip_off.x) * clip_scale.x, (pcmd->ClipRect.w - clip_off.y) * clip_scale.y); - if (clip_min.x < 0.0f) { clip_min.x = 0.0f; } - if (clip_min.y < 0.0f) { clip_min.y = 0.0f; } - if (clip_max.x > (float)fb_width) { clip_max.x = (float)fb_width; } - if (clip_max.y > (float)fb_height) { clip_max.y = (float)fb_height; } - if (clip_max.x <= clip_min.x || clip_max.y <= clip_min.y) - continue; - - SDL_Rect r = { (int)(clip_min.x), (int)(clip_min.y), (int)(clip_max.x - clip_min.x), (int)(clip_max.y - clip_min.y) }; - SDL_RenderSetClipRect(renderer, &r); - - const float* xy = (const float*)(const void*)((const char*)(vtx_buffer + pcmd->VtxOffset) + offsetof(ImDrawVert, pos)); - const float* uv = (const float*)(const void*)((const char*)(vtx_buffer + pcmd->VtxOffset) + offsetof(ImDrawVert, uv)); -#if SDL_VERSION_ATLEAST(2,0,19) - const SDL_Color* color = (const SDL_Color*)(const void*)((const char*)(vtx_buffer + pcmd->VtxOffset) + offsetof(ImDrawVert, col)); // SDL 2.0.19+ -#else - const int* color = (const int*)(const void*)((const char*)(vtx_buffer + pcmd->VtxOffset) + offsetof(ImDrawVert, col)); // SDL 2.0.17 and 2.0.18 -#endif - - // Bind texture, Draw - SDL_Texture* tex = (SDL_Texture*)pcmd->GetTexID(); - SDL_RenderGeometryRaw(renderer, tex, - xy, (int)sizeof(ImDrawVert), - color, (int)sizeof(ImDrawVert), - uv, (int)sizeof(ImDrawVert), - draw_list->VtxBuffer.Size - pcmd->VtxOffset, - idx_buffer + pcmd->IdxOffset, pcmd->ElemCount, sizeof(ImDrawIdx)); - } - } - } - platform_io.Renderer_RenderState = nullptr; - - // Restore modified SDL_Renderer state - SDL_RenderSetViewport(renderer, &old.Viewport); - SDL_RenderSetClipRect(renderer, old.ClipEnabled ? &old.ClipRect : nullptr); -} - -void ImGui_ImplSDLRenderer2_UpdateTexture(ImTextureData* tex) -{ - ImGui_ImplSDLRenderer2_Data* bd = ImGui_ImplSDLRenderer2_GetBackendData(); - - if (tex->Status == ImTextureStatus_WantCreate) - { - // Create and upload new texture to graphics system - //IMGUI_DEBUG_LOG("UpdateTexture #%03d: WantCreate %dx%d\n", tex->UniqueID, tex->Width, tex->Height); - IM_ASSERT(tex->TexID == ImTextureID_Invalid && tex->BackendUserData == nullptr); - IM_ASSERT(tex->Format == ImTextureFormat_RGBA32); - - // Create texture - // (Bilinear sampling is required by default. Set 'io.Fonts->Flags |= ImFontAtlasFlags_NoBakedLines' or 'style.AntiAliasedLinesUseTex = false' to allow point/nearest sampling) - SDL_Texture* sdl_texture = SDL_CreateTexture(bd->Renderer, SDL_PIXELFORMAT_RGBA32, SDL_TEXTUREACCESS_STATIC, tex->Width, tex->Height); - IM_ASSERT(sdl_texture != nullptr && "Backend failed to create texture!"); - SDL_UpdateTexture(sdl_texture, nullptr, tex->GetPixels(), tex->GetPitch()); - SDL_SetTextureBlendMode(sdl_texture, SDL_BLENDMODE_BLEND); - SDL_SetTextureScaleMode(sdl_texture, SDL_ScaleModeLinear); - - // Store identifiers - tex->SetTexID((ImTextureID)(intptr_t)sdl_texture); - tex->SetStatus(ImTextureStatus_OK); - } - else if (tex->Status == ImTextureStatus_WantUpdates) - { - // Update selected blocks. We only ever write to textures regions which have never been used before! - // This backend choose to use tex->Updates[] but you can use tex->UpdateRect to upload a single region. - SDL_Texture* sdl_texture = (SDL_Texture*)(intptr_t)tex->TexID; - for (ImTextureRect& r : tex->Updates) - { - SDL_Rect sdl_r = { r.x, r.y, r.w, r.h }; - SDL_UpdateTexture(sdl_texture, &sdl_r, tex->GetPixelsAt(r.x, r.y), tex->GetPitch()); - } - tex->SetStatus(ImTextureStatus_OK); - } - else if (tex->Status == ImTextureStatus_WantDestroy) - { - SDL_Texture* sdl_texture = (SDL_Texture*)(intptr_t)tex->TexID; - if (sdl_texture == nullptr) - return; - SDL_DestroyTexture(sdl_texture); - - // Clear identifiers and mark as destroyed (in order to allow e.g. calling InvalidateDeviceObjects while running) - tex->SetTexID(ImTextureID_Invalid); - tex->SetStatus(ImTextureStatus_Destroyed); - } -} - -void ImGui_ImplSDLRenderer2_CreateDeviceObjects() -{ -} - -void ImGui_ImplSDLRenderer2_DestroyDeviceObjects() -{ - // Destroy all textures - for (ImTextureData* tex : ImGui::GetPlatformIO().Textures) - if (tex->RefCount == 1) - { - tex->SetStatus(ImTextureStatus_WantDestroy); - ImGui_ImplSDLRenderer2_UpdateTexture(tex); - } -} - -//----------------------------------------------------------------------------- - -#if defined(__clang__) -#pragma clang diagnostic pop -#endif - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_sdlrenderer2.h b/libs/imgui-1.92.1/backends/imgui_impl_sdlrenderer2.h deleted file mode 100644 index a62e609..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_sdlrenderer2.h +++ /dev/null @@ -1,53 +0,0 @@ -// dear imgui: Renderer Backend for SDL_Renderer for SDL2 -// (Requires: SDL 2.0.17+) - -// Note that SDL_Renderer is an _optional_ component of SDL2, which IMHO is now largely obsolete. -// For a multi-platform app consider using other technologies: -// - SDL3+SDL_GPU: SDL_GPU is SDL3 new graphics abstraction API. You will need to update to SDL3. -// - SDL2+DirectX, SDL2+OpenGL, SDL2+Vulkan: combine SDL with dedicated renderers. -// If your application wants to render any non trivial amount of graphics other than UI, -// please be aware that SDL_Renderer currently offers a limited graphic API to the end-user -// and it might be difficult to step out of those boundaries. - -// Implemented features: -// [X] Renderer: User texture binding. Use 'SDL_Texture*' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). -// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#pragma once -#ifndef IMGUI_DISABLE -#include "imgui.h" // IMGUI_IMPL_API - -struct SDL_Renderer; - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplSDLRenderer2_Init(SDL_Renderer* renderer); -IMGUI_IMPL_API void ImGui_ImplSDLRenderer2_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplSDLRenderer2_NewFrame(); -IMGUI_IMPL_API void ImGui_ImplSDLRenderer2_RenderDrawData(ImDrawData* draw_data, SDL_Renderer* renderer); - -// Called by Init/NewFrame/Shutdown -IMGUI_IMPL_API void ImGui_ImplSDLRenderer2_CreateDeviceObjects(); -IMGUI_IMPL_API void ImGui_ImplSDLRenderer2_DestroyDeviceObjects(); - -// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = NULL to handle this manually. -IMGUI_IMPL_API void ImGui_ImplSDLRenderer2_UpdateTexture(ImTextureData* tex); - -// [BETA] Selected render state data shared with callbacks. -// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplSDLRenderer2_RenderDrawData() call. -// (Please open an issue if you feel you need access to more data) -struct ImGui_ImplSDLRenderer2_RenderState -{ - SDL_Renderer* Renderer; -}; - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_sdlrenderer3.cpp b/libs/imgui-1.92.1/backends/imgui_impl_sdlrenderer3.cpp deleted file mode 100644 index f629491..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_sdlrenderer3.cpp +++ /dev/null @@ -1,316 +0,0 @@ -// dear imgui: Renderer Backend for SDL_Renderer for SDL3 -// (Requires: SDL 3.1.8+) - -// Note that SDL_Renderer is an _optional_ component of SDL3, which IMHO is now largely obsolete. -// For a multi-platform app consider using other technologies: -// - SDL3+SDL_GPU: SDL_GPU is SDL3 new graphics abstraction API. -// - SDL3+DirectX, SDL3+OpenGL, SDL3+Vulkan: combine SDL with dedicated renderers. -// If your application wants to render any non trivial amount of graphics other than UI, -// please be aware that SDL_Renderer currently offers a limited graphic API to the end-user -// and it might be difficult to step out of those boundaries. - -// Implemented features: -// [X] Renderer: User texture binding. Use 'SDL_Texture*' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). -// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'. - -// You can copy and use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// CHANGELOG -// 2025-06-11: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas. Removed ImGui_ImplSDLRenderer3_CreateFontsTexture() and ImGui_ImplSDLRenderer3_DestroyFontsTexture(). -// 2025-01-18: Use endian-dependent RGBA32 texture format, to match SDL_Color. -// 2024-10-09: Expose selected render state in ImGui_ImplSDLRenderer3_RenderState, which you can access in 'void* platform_io.Renderer_RenderState' during draw callbacks. -// 2024-07-01: Update for SDL3 api changes: SDL_RenderGeometryRaw() uint32 version was removed (SDL#9009). -// 2024-05-14: *BREAKING CHANGE* ImGui_ImplSDLRenderer3_RenderDrawData() requires SDL_Renderer* passed as parameter. -// 2024-02-12: Amend to query SDL_RenderViewportSet() and restore viewport accordingly. -// 2023-05-30: Initial version. - -#include "imgui.h" -#ifndef IMGUI_DISABLE -#include "imgui_impl_sdlrenderer3.h" -#include // intptr_t - -// Clang warnings with -Weverything -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wsign-conversion" // warning: implicit conversion changes signedness -#elif defined(__GNUC__) -#pragma GCC diagnostic ignored "-Wfloat-equal" // warning: comparing floating-point with '==' or '!=' is unsafe -#endif - -// SDL -#include -#if !SDL_VERSION_ATLEAST(3,0,0) -#error This backend requires SDL 3.0.0+ -#endif - -// SDL_Renderer data -struct ImGui_ImplSDLRenderer3_Data -{ - SDL_Renderer* Renderer; // Main viewport's renderer - ImVector ColorBuffer; - - ImGui_ImplSDLRenderer3_Data() { memset((void*)this, 0, sizeof(*this)); } -}; - -// Backend data stored in io.BackendRendererUserData to allow support for multiple Dear ImGui contexts -// It is STRONGLY preferred that you use docking branch with multi-viewports (== single Dear ImGui context + multiple windows) instead of multiple Dear ImGui contexts. -static ImGui_ImplSDLRenderer3_Data* ImGui_ImplSDLRenderer3_GetBackendData() -{ - return ImGui::GetCurrentContext() ? (ImGui_ImplSDLRenderer3_Data*)ImGui::GetIO().BackendRendererUserData : nullptr; -} - -// Functions -bool ImGui_ImplSDLRenderer3_Init(SDL_Renderer* renderer) -{ - ImGuiIO& io = ImGui::GetIO(); - IMGUI_CHECKVERSION(); - IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); - IM_ASSERT(renderer != nullptr && "SDL_Renderer not initialized!"); - - // Setup backend capabilities flags - ImGui_ImplSDLRenderer3_Data* bd = IM_NEW(ImGui_ImplSDLRenderer3_Data)(); - io.BackendRendererUserData = (void*)bd; - io.BackendRendererName = "imgui_impl_sdlrenderer3"; - io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset; // We can honor the ImDrawCmd::VtxOffset field, allowing for large meshes. - io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures; // We can honor ImGuiPlatformIO::Textures[] requests during render. - - bd->Renderer = renderer; - - return true; -} - -void ImGui_ImplSDLRenderer3_Shutdown() -{ - ImGui_ImplSDLRenderer3_Data* bd = ImGui_ImplSDLRenderer3_GetBackendData(); - IM_ASSERT(bd != nullptr && "No renderer backend to shutdown, or already shutdown?"); - ImGuiIO& io = ImGui::GetIO(); - - ImGui_ImplSDLRenderer3_DestroyDeviceObjects(); - - io.BackendRendererName = nullptr; - io.BackendRendererUserData = nullptr; - io.BackendFlags &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures); - IM_DELETE(bd); -} - -static void ImGui_ImplSDLRenderer3_SetupRenderState(SDL_Renderer* renderer) -{ - // Clear out any viewports and cliprect set by the user - // FIXME: Technically speaking there are lots of other things we could backup/setup/restore during our render process. - SDL_SetRenderViewport(renderer, nullptr); - SDL_SetRenderClipRect(renderer, nullptr); -} - -void ImGui_ImplSDLRenderer3_NewFrame() -{ - ImGui_ImplSDLRenderer3_Data* bd = ImGui_ImplSDLRenderer3_GetBackendData(); - IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplSDLRenderer3_Init()?"); - IM_UNUSED(bd); -} - -// https://github.com/libsdl-org/SDL/issues/9009 -static int SDL_RenderGeometryRaw8BitColor(SDL_Renderer* renderer, ImVector& colors_out, SDL_Texture* texture, const float* xy, int xy_stride, const SDL_Color* color, int color_stride, const float* uv, int uv_stride, int num_vertices, const void* indices, int num_indices, int size_indices) -{ - const Uint8* color2 = (const Uint8*)color; - colors_out.resize(num_vertices); - SDL_FColor* color3 = colors_out.Data; - for (int i = 0; i < num_vertices; i++) - { - color3[i].r = color->r / 255.0f; - color3[i].g = color->g / 255.0f; - color3[i].b = color->b / 255.0f; - color3[i].a = color->a / 255.0f; - color2 += color_stride; - color = (const SDL_Color*)color2; - } - return SDL_RenderGeometryRaw(renderer, texture, xy, xy_stride, color3, sizeof(*color3), uv, uv_stride, num_vertices, indices, num_indices, size_indices); -} - -void ImGui_ImplSDLRenderer3_RenderDrawData(ImDrawData* draw_data, SDL_Renderer* renderer) -{ - ImGui_ImplSDLRenderer3_Data* bd = ImGui_ImplSDLRenderer3_GetBackendData(); - - // If there's a scale factor set by the user, use that instead - // If the user has specified a scale factor to SDL_Renderer already via SDL_RenderSetScale(), SDL will scale whatever we pass - // to SDL_RenderGeometryRaw() by that scale factor. In that case we don't want to be also scaling it ourselves here. - float rsx = 1.0f; - float rsy = 1.0f; - SDL_GetRenderScale(renderer, &rsx, &rsy); - ImVec2 render_scale; - render_scale.x = (rsx == 1.0f) ? draw_data->FramebufferScale.x : 1.0f; - render_scale.y = (rsy == 1.0f) ? draw_data->FramebufferScale.y : 1.0f; - - // Avoid rendering when minimized, scale coordinates for retina displays (screen coordinates != framebuffer coordinates) - int fb_width = (int)(draw_data->DisplaySize.x * render_scale.x); - int fb_height = (int)(draw_data->DisplaySize.y * render_scale.y); - if (fb_width == 0 || fb_height == 0) - return; - - // Catch up with texture updates. Most of the times, the list will have 1 element with an OK status, aka nothing to do. - // (This almost always points to ImGui::GetPlatformIO().Textures[] but is part of ImDrawData to allow overriding or disabling texture updates). - if (draw_data->Textures != nullptr) - for (ImTextureData* tex : *draw_data->Textures) - if (tex->Status != ImTextureStatus_OK) - ImGui_ImplSDLRenderer3_UpdateTexture(tex); - - // Backup SDL_Renderer state that will be modified to restore it afterwards - struct BackupSDLRendererState - { - SDL_Rect Viewport; - bool ViewportEnabled; - bool ClipEnabled; - SDL_Rect ClipRect; - }; - BackupSDLRendererState old = {}; - old.ViewportEnabled = SDL_RenderViewportSet(renderer); - old.ClipEnabled = SDL_RenderClipEnabled(renderer); - SDL_GetRenderViewport(renderer, &old.Viewport); - SDL_GetRenderClipRect(renderer, &old.ClipRect); - - // Setup desired state - ImGui_ImplSDLRenderer3_SetupRenderState(renderer); - - // Setup render state structure (for callbacks and custom texture bindings) - ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); - ImGui_ImplSDLRenderer3_RenderState render_state; - render_state.Renderer = renderer; - platform_io.Renderer_RenderState = &render_state; - - // Will project scissor/clipping rectangles into framebuffer space - ImVec2 clip_off = draw_data->DisplayPos; // (0,0) unless using multi-viewports - ImVec2 clip_scale = render_scale; - - // Render command lists - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - const ImDrawVert* vtx_buffer = draw_list->VtxBuffer.Data; - const ImDrawIdx* idx_buffer = draw_list->IdxBuffer.Data; - - for (int cmd_i = 0; cmd_i < draw_list->CmdBuffer.Size; cmd_i++) - { - const ImDrawCmd* pcmd = &draw_list->CmdBuffer[cmd_i]; - if (pcmd->UserCallback) - { - // User callback, registered via ImDrawList::AddCallback() - // (ImDrawCallback_ResetRenderState is a special callback value used by the user to request the renderer to reset render state.) - if (pcmd->UserCallback == ImDrawCallback_ResetRenderState) - ImGui_ImplSDLRenderer3_SetupRenderState(renderer); - else - pcmd->UserCallback(draw_list, pcmd); - } - else - { - // Project scissor/clipping rectangles into framebuffer space - ImVec2 clip_min((pcmd->ClipRect.x - clip_off.x) * clip_scale.x, (pcmd->ClipRect.y - clip_off.y) * clip_scale.y); - ImVec2 clip_max((pcmd->ClipRect.z - clip_off.x) * clip_scale.x, (pcmd->ClipRect.w - clip_off.y) * clip_scale.y); - if (clip_min.x < 0.0f) { clip_min.x = 0.0f; } - if (clip_min.y < 0.0f) { clip_min.y = 0.0f; } - if (clip_max.x > (float)fb_width) { clip_max.x = (float)fb_width; } - if (clip_max.y > (float)fb_height) { clip_max.y = (float)fb_height; } - if (clip_max.x <= clip_min.x || clip_max.y <= clip_min.y) - continue; - - SDL_Rect r = { (int)(clip_min.x), (int)(clip_min.y), (int)(clip_max.x - clip_min.x), (int)(clip_max.y - clip_min.y) }; - SDL_SetRenderClipRect(renderer, &r); - - const float* xy = (const float*)(const void*)((const char*)(vtx_buffer + pcmd->VtxOffset) + offsetof(ImDrawVert, pos)); - const float* uv = (const float*)(const void*)((const char*)(vtx_buffer + pcmd->VtxOffset) + offsetof(ImDrawVert, uv)); - const SDL_Color* color = (const SDL_Color*)(const void*)((const char*)(vtx_buffer + pcmd->VtxOffset) + offsetof(ImDrawVert, col)); // SDL 2.0.19+ - - // Bind texture, Draw - SDL_Texture* tex = (SDL_Texture*)pcmd->GetTexID(); - SDL_RenderGeometryRaw8BitColor(renderer, bd->ColorBuffer, tex, - xy, (int)sizeof(ImDrawVert), - color, (int)sizeof(ImDrawVert), - uv, (int)sizeof(ImDrawVert), - draw_list->VtxBuffer.Size - pcmd->VtxOffset, - idx_buffer + pcmd->IdxOffset, pcmd->ElemCount, sizeof(ImDrawIdx)); - } - } - } - platform_io.Renderer_RenderState = nullptr; - - // Restore modified SDL_Renderer state - SDL_SetRenderViewport(renderer, old.ViewportEnabled ? &old.Viewport : nullptr); - SDL_SetRenderClipRect(renderer, old.ClipEnabled ? &old.ClipRect : nullptr); -} - -void ImGui_ImplSDLRenderer3_UpdateTexture(ImTextureData* tex) -{ - ImGui_ImplSDLRenderer3_Data* bd = ImGui_ImplSDLRenderer3_GetBackendData(); - - if (tex->Status == ImTextureStatus_WantCreate) - { - // Create and upload new texture to graphics system - //IMGUI_DEBUG_LOG("UpdateTexture #%03d: WantCreate %dx%d\n", tex->UniqueID, tex->Width, tex->Height); - IM_ASSERT(tex->TexID == 0 && tex->BackendUserData == nullptr); - IM_ASSERT(tex->Format == ImTextureFormat_RGBA32); - - // Create texture - // (Bilinear sampling is required by default. Set 'io.Fonts->Flags |= ImFontAtlasFlags_NoBakedLines' or 'style.AntiAliasedLinesUseTex = false' to allow point/nearest sampling) - SDL_Texture* sdl_texture = SDL_CreateTexture(bd->Renderer, SDL_PIXELFORMAT_RGBA32, SDL_TEXTUREACCESS_STATIC, tex->Width, tex->Height); - IM_ASSERT(sdl_texture != nullptr && "Backend failed to create texture!"); - SDL_UpdateTexture(sdl_texture, nullptr, tex->GetPixels(), tex->GetPitch()); - SDL_SetTextureBlendMode(sdl_texture, SDL_BLENDMODE_BLEND); - SDL_SetTextureScaleMode(sdl_texture, SDL_SCALEMODE_LINEAR); - - // Store identifiers - tex->SetTexID((ImTextureID)(intptr_t)sdl_texture); - tex->SetStatus(ImTextureStatus_OK); - } - else if (tex->Status == ImTextureStatus_WantUpdates) - { - // Update selected blocks. We only ever write to textures regions which have never been used before! - // This backend choose to use tex->Updates[] but you can use tex->UpdateRect to upload a single region. - SDL_Texture* sdl_texture = (SDL_Texture*)(intptr_t)tex->TexID; - for (ImTextureRect& r : tex->Updates) - { - SDL_Rect sdl_r = { r.x, r.y, r.w, r.h }; - SDL_UpdateTexture(sdl_texture, &sdl_r, tex->GetPixelsAt(r.x, r.y), tex->GetPitch()); - } - tex->SetStatus(ImTextureStatus_OK); - } - else if (tex->Status == ImTextureStatus_WantDestroy) - { - SDL_Texture* sdl_texture = (SDL_Texture*)(intptr_t)tex->TexID; - if (sdl_texture == nullptr) - return; - SDL_DestroyTexture(sdl_texture); - - // Clear identifiers and mark as destroyed (in order to allow e.g. calling InvalidateDeviceObjects while running) - tex->SetTexID(ImTextureID_Invalid); - tex->SetStatus(ImTextureStatus_Destroyed); - } -} - -void ImGui_ImplSDLRenderer3_CreateDeviceObjects() -{ -} - -void ImGui_ImplSDLRenderer3_DestroyDeviceObjects() -{ - // Destroy all textures - for (ImTextureData* tex : ImGui::GetPlatformIO().Textures) - if (tex->RefCount == 1) - { - tex->SetStatus(ImTextureStatus_WantDestroy); - ImGui_ImplSDLRenderer3_UpdateTexture(tex); - } -} - -//----------------------------------------------------------------------------- - -#if defined(__clang__) -#pragma clang diagnostic pop -#endif - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_sdlrenderer3.h b/libs/imgui-1.92.1/backends/imgui_impl_sdlrenderer3.h deleted file mode 100644 index 618cc24..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_sdlrenderer3.h +++ /dev/null @@ -1,53 +0,0 @@ -// dear imgui: Renderer Backend for SDL_Renderer for SDL3 -// (Requires: SDL 3.1.8+) - -// Note that SDL_Renderer is an _optional_ component of SDL3, which IMHO is now largely obsolete. -// For a multi-platform app consider using other technologies: -// - SDL3+SDL_GPU: SDL_GPU is SDL3 new graphics abstraction API. -// - SDL3+DirectX, SDL3+OpenGL, SDL3+Vulkan: combine SDL with dedicated renderers. -// If your application wants to render any non trivial amount of graphics other than UI, -// please be aware that SDL_Renderer currently offers a limited graphic API to the end-user -// and it might be difficult to step out of those boundaries. - -// Implemented features: -// [X] Renderer: User texture binding. Use 'SDL_Texture*' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). -// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'. - -// You can copy and use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#pragma once -#include "imgui.h" // IMGUI_IMPL_API -#ifndef IMGUI_DISABLE - -struct SDL_Renderer; - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplSDLRenderer3_Init(SDL_Renderer* renderer); -IMGUI_IMPL_API void ImGui_ImplSDLRenderer3_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplSDLRenderer3_NewFrame(); -IMGUI_IMPL_API void ImGui_ImplSDLRenderer3_RenderDrawData(ImDrawData* draw_data, SDL_Renderer* renderer); - -// Called by Init/NewFrame/Shutdown -IMGUI_IMPL_API void ImGui_ImplSDLRenderer3_CreateDeviceObjects(); -IMGUI_IMPL_API void ImGui_ImplSDLRenderer3_DestroyDeviceObjects(); - -// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = NULL to handle this manually. -IMGUI_IMPL_API void ImGui_ImplSDLRenderer3_UpdateTexture(ImTextureData* tex); - -// [BETA] Selected render state data shared with callbacks. -// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplSDLRenderer3_RenderDrawData() call. -// (Please open an issue if you feel you need access to more data) -struct ImGui_ImplSDLRenderer3_RenderState -{ - SDL_Renderer* Renderer; -}; - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_vulkan.cpp b/libs/imgui-1.92.1/backends/imgui_impl_vulkan.cpp deleted file mode 100644 index a5dd75c..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_vulkan.cpp +++ /dev/null @@ -1,1849 +0,0 @@ -// dear imgui: Renderer Backend for Vulkan -// This needs to be used along with a Platform Backend (e.g. GLFW, SDL, Win32, custom..) - -// Implemented features: -// [!] Renderer: User texture binding. Use 'VkDescriptorSet' as texture identifier. Call ImGui_ImplVulkan_AddTexture() to register one. Read the FAQ about ImTextureID/ImTextureRef + https://github.com/ocornut/imgui/pull/914 for discussions. -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). -// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'. - -// The aim of imgui_impl_vulkan.h/.cpp is to be usable in your engine without any modification. -// IF YOU FEEL YOU NEED TO MAKE ANY CHANGE TO THIS CODE, please share them and your feedback at https://github.com/ocornut/imgui/ - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// Important note to the reader who wish to integrate imgui_impl_vulkan.cpp/.h in their own engine/app. -// - Common ImGui_ImplVulkan_XXX functions and structures are used to interface with imgui_impl_vulkan.cpp/.h. -// You will use those if you want to use this rendering backend in your engine/app. -// - Helper ImGui_ImplVulkanH_XXX functions and structures are only used by this example (main.cpp) and by -// the backend itself (imgui_impl_vulkan.cpp), but should PROBABLY NOT be used by your own engine/app code. -// Read comments in imgui_impl_vulkan.h. - -// CHANGELOG -// (minor and older changes stripped away, please see git history for details) -// 2025-07-07: Vulkan: Fixed texture synchronization issue introduced on 2025-06-11. (#8772) -// 2025-06-27: Vulkan: Fixed validation errors during texture upload/update by aligning upload size to 'nonCoherentAtomSize'. (#8743, #8744) -// 2025-06-11: Vulkan: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas. Removed ImGui_ImplVulkan_CreateFontsTexture() and ImGui_ImplVulkan_DestroyFontsTexture(). -// 2025-05-07: Vulkan: Fixed validation errors during window detach in multi-viewport mode. (#8600, #8176) -// 2025-05-07: Vulkan: Load dynamic rendering functions using vkGetDeviceProcAddr() + try both non-KHR and KHR versions. (#8600, #8326, #8365) -// 2025-04-07: Vulkan: Deep-copy ImGui_ImplVulkan_InitInfo::PipelineRenderingCreateInfo's pColorAttachmentFormats buffer when set, in order to reduce common user-error of specifying a pointer to data that gets out of scope. (#8282) -// 2025-02-14: *BREAKING CHANGE*: Added uint32_t api_version to ImGui_ImplVulkan_LoadFunctions(). -// 2025-02-13: Vulkan: Added ApiVersion field in ImGui_ImplVulkan_InitInfo. Default to header version if unspecified. Dynamic rendering path loads "vkCmdBeginRendering/vkCmdEndRendering" (without -KHR suffix) on API 1.3. (#8326) -// 2025-01-09: Vulkan: Added IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE to clarify how many image sampler descriptors are expected to be available in descriptor pool. (#6642) -// 2025-01-06: Vulkan: Added more ImGui_ImplVulkanH_XXXX helper functions to simplify our examples. -// 2024-12-11: Vulkan: Fixed setting VkSwapchainCreateInfoKHR::preTransform for platforms not supporting VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR. (#8222) -// 2024-11-27: Vulkan: Make user-provided descriptor pool optional. As a convenience, when setting init_info->DescriptorPoolSize the backend will create one itself. (#8172, #4867) -// 2024-10-07: Vulkan: Changed default texture sampler to Clamp instead of Repeat/Wrap. -// 2024-10-07: Vulkan: Expose selected render state in ImGui_ImplVulkan_RenderState, which you can access in 'void* platform_io.Renderer_RenderState' during draw callbacks. -// 2024-10-07: Vulkan: Compiling with '#define ImTextureID=ImU64' is unnecessary now that dear imgui defaults ImTextureID to u64 instead of void*. -// 2024-04-19: Vulkan: Added convenience support for Volk via IMGUI_IMPL_VULKAN_USE_VOLK define (you can also use IMGUI_IMPL_VULKAN_NO_PROTOTYPES + wrap Volk via ImGui_ImplVulkan_LoadFunctions().) -// 2024-02-14: *BREAKING CHANGE*: Moved RenderPass parameter from ImGui_ImplVulkan_Init() function to ImGui_ImplVulkan_InitInfo structure. Not required when using dynamic rendering. -// 2024-02-12: *BREAKING CHANGE*: Dynamic rendering now require filling PipelineRenderingCreateInfo structure. -// 2024-01-19: Vulkan: Fixed vkAcquireNextImageKHR() validation errors in VulkanSDK 1.3.275 by allocating one extra semaphore than in-flight frames. (#7236) -// 2024-01-11: Vulkan: Fixed vkMapMemory() calls unnecessarily using full buffer size (#3957). Fixed MinAllocationSize handing (#7189). -// 2024-01-03: Vulkan: Added MinAllocationSize field in ImGui_ImplVulkan_InitInfo to workaround zealous "best practice" validation layer. (#7189, #4238) -// 2024-01-03: Vulkan: Stopped creating command pools with VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT as we don't reset them. -// 2023-11-29: Vulkan: Fixed mismatching allocator passed to vkCreateCommandPool() vs vkDestroyCommandPool(). (#7075) -// 2023-11-10: *BREAKING CHANGE*: Removed parameter from ImGui_ImplVulkan_CreateFontsTexture(): backend now creates its own command-buffer to upload fonts. -// *BREAKING CHANGE*: Removed ImGui_ImplVulkan_DestroyFontUploadObjects() which is now unnecessary as we create and destroy those objects in the backend. -// ImGui_ImplVulkan_CreateFontsTexture() is automatically called by NewFrame() the first time. -// You can call ImGui_ImplVulkan_CreateFontsTexture() again to recreate the font atlas texture. -// Added ImGui_ImplVulkan_DestroyFontsTexture() but you probably never need to call this. -// 2023-07-04: Vulkan: Added optional support for VK_KHR_dynamic_rendering. User needs to set init_info->UseDynamicRendering = true and init_info->ColorAttachmentFormat. -// 2023-01-02: Vulkan: Fixed sampler passed to ImGui_ImplVulkan_AddTexture() not being honored + removed a bunch of duplicate code. -// 2022-10-11: Using 'nullptr' instead of 'NULL' as per our switch to C++11. -// 2022-10-04: Vulkan: Added experimental ImGui_ImplVulkan_RemoveTexture() for api symmetry. (#914, #5738). -// 2022-01-20: Vulkan: Added support for ImTextureID as VkDescriptorSet. User need to call ImGui_ImplVulkan_AddTexture(). Building for 32-bit targets requires '#define ImTextureID ImU64'. (#914). -// 2021-10-15: Vulkan: Call vkCmdSetScissor() at the end of render a full-viewport to reduce likelihood of issues with people using VK_DYNAMIC_STATE_SCISSOR in their app without calling vkCmdSetScissor() explicitly every frame. -// 2021-06-29: Reorganized backend to pull data from a single structure to facilitate usage with multiple-contexts (all g_XXXX access changed to bd->XXXX). -// 2021-03-22: Vulkan: Fix mapped memory validation error when buffer sizes are not multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize. -// 2021-02-18: Vulkan: Change blending equation to preserve alpha in output buffer. -// 2021-01-27: Vulkan: Added support for custom function load and IMGUI_IMPL_VULKAN_NO_PROTOTYPES by using ImGui_ImplVulkan_LoadFunctions(). -// 2020-11-11: Vulkan: Added support for specifying which subpass to reference during VkPipeline creation. -// 2020-09-07: Vulkan: Added VkPipeline parameter to ImGui_ImplVulkan_RenderDrawData (default to one passed to ImGui_ImplVulkan_Init). -// 2020-05-04: Vulkan: Fixed crash if initial frame has no vertices. -// 2020-04-26: Vulkan: Fixed edge case where render callbacks wouldn't be called if the ImDrawData didn't have vertices. -// 2019-08-01: Vulkan: Added support for specifying multisample count. Set ImGui_ImplVulkan_InitInfo::MSAASamples to one of the VkSampleCountFlagBits values to use, default is non-multisampled as before. -// 2019-05-29: Vulkan: Added support for large mesh (64K+ vertices), enable ImGuiBackendFlags_RendererHasVtxOffset flag. -// 2019-04-30: Vulkan: Added support for special ImDrawCallback_ResetRenderState callback to reset render state. -// 2019-04-04: *BREAKING CHANGE*: Vulkan: Added ImageCount/MinImageCount fields in ImGui_ImplVulkan_InitInfo, required for initialization (was previously a hard #define IMGUI_VK_QUEUED_FRAMES 2). Added ImGui_ImplVulkan_SetMinImageCount(). -// 2019-04-04: Vulkan: Added VkInstance argument to ImGui_ImplVulkanH_CreateWindow() optional helper. -// 2019-04-04: Vulkan: Avoid passing negative coordinates to vkCmdSetScissor, which debug validation layers do not like. -// 2019-04-01: Vulkan: Support for 32-bit index buffer (#define ImDrawIdx unsigned int). -// 2019-02-16: Vulkan: Viewport and clipping rectangles correctly using draw_data->FramebufferScale to allow retina display. -// 2018-11-30: Misc: Setting up io.BackendRendererName so it can be displayed in the About Window. -// 2018-08-25: Vulkan: Fixed mishandled VkSurfaceCapabilitiesKHR::maxImageCount=0 case. -// 2018-06-22: Inverted the parameters to ImGui_ImplVulkan_RenderDrawData() to be consistent with other backends. -// 2018-06-08: Misc: Extracted imgui_impl_vulkan.cpp/.h away from the old combined GLFW+Vulkan example. -// 2018-06-08: Vulkan: Use draw_data->DisplayPos and draw_data->DisplaySize to setup projection matrix and clipping rectangle. -// 2018-03-03: Vulkan: Various refactor, created a couple of ImGui_ImplVulkanH_XXX helper that the example can use and that viewport support will use. -// 2018-03-01: Vulkan: Renamed ImGui_ImplVulkan_Init_Info to ImGui_ImplVulkan_InitInfo and fields to match more closely Vulkan terminology. -// 2018-02-16: Misc: Obsoleted the io.RenderDrawListsFn callback, ImGui_ImplVulkan_Render() calls ImGui_ImplVulkan_RenderDrawData() itself. -// 2018-02-06: Misc: Removed call to ImGui::Shutdown() which is not available from 1.60 WIP, user needs to call CreateContext/DestroyContext themselves. -// 2017-05-15: Vulkan: Fix scissor offset being negative. Fix new Vulkan validation warnings. Set required depth member for buffer image copy. -// 2016-11-13: Vulkan: Fix validation layer warnings and errors and redeclare gl_PerVertex. -// 2016-10-18: Vulkan: Add location decorators & change to use structs as in/out in glsl, update embedded spv (produced with glslangValidator -x). Null the released resources. -// 2016-08-27: Vulkan: Fix Vulkan example for use when a depth buffer is active. - -#include "imgui.h" -#ifndef IMGUI_DISABLE -#include "imgui_impl_vulkan.h" -#include -#ifndef IM_MAX -#define IM_MAX(A, B) (((A) >= (B)) ? (A) : (B)) -#endif -#undef Status // X11 headers are leaking this. - -// Visual Studio warnings -#ifdef _MSC_VER -#pragma warning (disable: 4127) // condition expression is constant -#endif - -// Forward Declarations -struct ImGui_ImplVulkan_FrameRenderBuffers; -struct ImGui_ImplVulkan_WindowRenderBuffers; -bool ImGui_ImplVulkan_CreateDeviceObjects(); -void ImGui_ImplVulkan_DestroyDeviceObjects(); -void ImGui_ImplVulkan_DestroyFrameRenderBuffers(VkDevice device, ImGui_ImplVulkan_FrameRenderBuffers* buffers, const VkAllocationCallbacks* allocator); -void ImGui_ImplVulkan_DestroyWindowRenderBuffers(VkDevice device, ImGui_ImplVulkan_WindowRenderBuffers* buffers, const VkAllocationCallbacks* allocator); -void ImGui_ImplVulkanH_DestroyFrame(VkDevice device, ImGui_ImplVulkanH_Frame* fd, const VkAllocationCallbacks* allocator); -void ImGui_ImplVulkanH_DestroyFrameSemaphores(VkDevice device, ImGui_ImplVulkanH_FrameSemaphores* fsd, const VkAllocationCallbacks* allocator); -void ImGui_ImplVulkanH_CreateWindowSwapChain(VkPhysicalDevice physical_device, VkDevice device, ImGui_ImplVulkanH_Window* wd, const VkAllocationCallbacks* allocator, int w, int h, uint32_t min_image_count); -void ImGui_ImplVulkanH_CreateWindowCommandBuffers(VkPhysicalDevice physical_device, VkDevice device, ImGui_ImplVulkanH_Window* wd, uint32_t queue_family, const VkAllocationCallbacks* allocator); - -// Vulkan prototypes for use with custom loaders -// (see description of IMGUI_IMPL_VULKAN_NO_PROTOTYPES in imgui_impl_vulkan.h -#if defined(VK_NO_PROTOTYPES) && !defined(VOLK_H_) -#define IMGUI_IMPL_VULKAN_USE_LOADER -static bool g_FunctionsLoaded = false; -#else -static bool g_FunctionsLoaded = true; -#endif -#ifdef IMGUI_IMPL_VULKAN_USE_LOADER -#define IMGUI_VULKAN_FUNC_MAP(IMGUI_VULKAN_FUNC_MAP_MACRO) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkAllocateCommandBuffers) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkAllocateDescriptorSets) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkAllocateMemory) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkBeginCommandBuffer) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkBindBufferMemory) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkBindImageMemory) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCmdBindDescriptorSets) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCmdBindIndexBuffer) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCmdBindPipeline) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCmdBindVertexBuffers) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCmdCopyBufferToImage) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCmdDrawIndexed) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCmdPipelineBarrier) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCmdPushConstants) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCmdSetScissor) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCmdSetViewport) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCreateBuffer) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCreateCommandPool) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCreateDescriptorPool) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCreateDescriptorSetLayout) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCreateFence) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCreateFramebuffer) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCreateGraphicsPipelines) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCreateImage) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCreateImageView) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCreatePipelineLayout) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCreateRenderPass) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCreateSampler) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCreateSemaphore) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCreateShaderModule) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkCreateSwapchainKHR) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkDestroyBuffer) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkDestroyCommandPool) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkDestroyDescriptorPool) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkDestroyDescriptorSetLayout) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkDestroyFence) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkDestroyFramebuffer) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkDestroyImage) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkDestroyImageView) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkDestroyPipeline) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkDestroyPipelineLayout) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkDestroyRenderPass) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkDestroySampler) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkDestroySemaphore) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkDestroyShaderModule) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkDestroySurfaceKHR) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkDestroySwapchainKHR) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkDeviceWaitIdle) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkEnumeratePhysicalDevices) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkEndCommandBuffer) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkFlushMappedMemoryRanges) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkFreeCommandBuffers) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkFreeDescriptorSets) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkFreeMemory) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkGetBufferMemoryRequirements) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkGetDeviceQueue) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkGetImageMemoryRequirements) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkGetPhysicalDeviceProperties) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkGetPhysicalDeviceMemoryProperties) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkGetPhysicalDeviceQueueFamilyProperties) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkGetPhysicalDeviceSurfaceCapabilitiesKHR) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkGetPhysicalDeviceSurfaceFormatsKHR) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkGetPhysicalDeviceSurfacePresentModesKHR) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkGetSwapchainImagesKHR) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkMapMemory) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkQueueSubmit) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkQueueWaitIdle) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkResetCommandPool) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkResetFences) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkUnmapMemory) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkUpdateDescriptorSets) \ - IMGUI_VULKAN_FUNC_MAP_MACRO(vkWaitForFences) - -// Define function pointers -#define IMGUI_VULKAN_FUNC_DEF(func) static PFN_##func func; -IMGUI_VULKAN_FUNC_MAP(IMGUI_VULKAN_FUNC_DEF) -#undef IMGUI_VULKAN_FUNC_DEF -#endif // IMGUI_IMPL_VULKAN_USE_LOADER - -#ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING -static PFN_vkCmdBeginRenderingKHR ImGuiImplVulkanFuncs_vkCmdBeginRenderingKHR; -static PFN_vkCmdEndRenderingKHR ImGuiImplVulkanFuncs_vkCmdEndRenderingKHR; -#endif - -// Reusable buffers used for rendering 1 current in-flight frame, for ImGui_ImplVulkan_RenderDrawData() -// [Please zero-clear before use!] -struct ImGui_ImplVulkan_FrameRenderBuffers -{ - VkDeviceMemory VertexBufferMemory; - VkDeviceMemory IndexBufferMemory; - VkDeviceSize VertexBufferSize; - VkDeviceSize IndexBufferSize; - VkBuffer VertexBuffer; - VkBuffer IndexBuffer; -}; - -// Each viewport will hold 1 ImGui_ImplVulkanH_WindowRenderBuffers -// [Please zero-clear before use!] -struct ImGui_ImplVulkan_WindowRenderBuffers -{ - uint32_t Index; - uint32_t Count; - ImVector FrameRenderBuffers; -}; - -struct ImGui_ImplVulkan_Texture -{ - VkDeviceMemory Memory; - VkImage Image; - VkImageView ImageView; - VkDescriptorSet DescriptorSet; - - ImGui_ImplVulkan_Texture() { memset((void*)this, 0, sizeof(*this)); } -}; - -// Vulkan data -struct ImGui_ImplVulkan_Data -{ - ImGui_ImplVulkan_InitInfo VulkanInitInfo; - VkDeviceSize BufferMemoryAlignment; - VkDeviceSize NonCoherentAtomSize; - VkPipelineCreateFlags PipelineCreateFlags; - VkDescriptorSetLayout DescriptorSetLayout; - VkPipelineLayout PipelineLayout; - VkPipeline Pipeline; - VkShaderModule ShaderModuleVert; - VkShaderModule ShaderModuleFrag; - VkDescriptorPool DescriptorPool; - - // Texture management - VkSampler TexSampler; - VkCommandPool TexCommandPool; - VkCommandBuffer TexCommandBuffer; - - // Render buffers for main window - ImGui_ImplVulkan_WindowRenderBuffers MainWindowRenderBuffers; - - ImGui_ImplVulkan_Data() - { - memset((void*)this, 0, sizeof(*this)); - BufferMemoryAlignment = 256; - NonCoherentAtomSize = 64; - } -}; - -//----------------------------------------------------------------------------- -// SHADERS -//----------------------------------------------------------------------------- - -// backends/vulkan/glsl_shader.vert, compiled with: -// # glslangValidator -V -x -o glsl_shader.vert.u32 glsl_shader.vert -/* -#version 450 core -layout(location = 0) in vec2 aPos; -layout(location = 1) in vec2 aUV; -layout(location = 2) in vec4 aColor; -layout(push_constant) uniform uPushConstant { vec2 uScale; vec2 uTranslate; } pc; - -out gl_PerVertex { vec4 gl_Position; }; -layout(location = 0) out struct { vec4 Color; vec2 UV; } Out; - -void main() -{ - Out.Color = aColor; - Out.UV = aUV; - gl_Position = vec4(aPos * pc.uScale + pc.uTranslate, 0, 1); -} -*/ -static uint32_t __glsl_shader_vert_spv[] = -{ - 0x07230203,0x00010000,0x00080001,0x0000002e,0x00000000,0x00020011,0x00000001,0x0006000b, - 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, - 0x000a000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x0000000b,0x0000000f,0x00000015, - 0x0000001b,0x0000001c,0x00030003,0x00000002,0x000001c2,0x00040005,0x00000004,0x6e69616d, - 0x00000000,0x00030005,0x00000009,0x00000000,0x00050006,0x00000009,0x00000000,0x6f6c6f43, - 0x00000072,0x00040006,0x00000009,0x00000001,0x00005655,0x00030005,0x0000000b,0x0074754f, - 0x00040005,0x0000000f,0x6c6f4361,0x0000726f,0x00030005,0x00000015,0x00565561,0x00060005, - 0x00000019,0x505f6c67,0x65567265,0x78657472,0x00000000,0x00060006,0x00000019,0x00000000, - 0x505f6c67,0x7469736f,0x006e6f69,0x00030005,0x0000001b,0x00000000,0x00040005,0x0000001c, - 0x736f5061,0x00000000,0x00060005,0x0000001e,0x73755075,0x6e6f4368,0x6e617473,0x00000074, - 0x00050006,0x0000001e,0x00000000,0x61635375,0x0000656c,0x00060006,0x0000001e,0x00000001, - 0x61725475,0x616c736e,0x00006574,0x00030005,0x00000020,0x00006370,0x00040047,0x0000000b, - 0x0000001e,0x00000000,0x00040047,0x0000000f,0x0000001e,0x00000002,0x00040047,0x00000015, - 0x0000001e,0x00000001,0x00050048,0x00000019,0x00000000,0x0000000b,0x00000000,0x00030047, - 0x00000019,0x00000002,0x00040047,0x0000001c,0x0000001e,0x00000000,0x00050048,0x0000001e, - 0x00000000,0x00000023,0x00000000,0x00050048,0x0000001e,0x00000001,0x00000023,0x00000008, - 0x00030047,0x0000001e,0x00000002,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002, - 0x00030016,0x00000006,0x00000020,0x00040017,0x00000007,0x00000006,0x00000004,0x00040017, - 0x00000008,0x00000006,0x00000002,0x0004001e,0x00000009,0x00000007,0x00000008,0x00040020, - 0x0000000a,0x00000003,0x00000009,0x0004003b,0x0000000a,0x0000000b,0x00000003,0x00040015, - 0x0000000c,0x00000020,0x00000001,0x0004002b,0x0000000c,0x0000000d,0x00000000,0x00040020, - 0x0000000e,0x00000001,0x00000007,0x0004003b,0x0000000e,0x0000000f,0x00000001,0x00040020, - 0x00000011,0x00000003,0x00000007,0x0004002b,0x0000000c,0x00000013,0x00000001,0x00040020, - 0x00000014,0x00000001,0x00000008,0x0004003b,0x00000014,0x00000015,0x00000001,0x00040020, - 0x00000017,0x00000003,0x00000008,0x0003001e,0x00000019,0x00000007,0x00040020,0x0000001a, - 0x00000003,0x00000019,0x0004003b,0x0000001a,0x0000001b,0x00000003,0x0004003b,0x00000014, - 0x0000001c,0x00000001,0x0004001e,0x0000001e,0x00000008,0x00000008,0x00040020,0x0000001f, - 0x00000009,0x0000001e,0x0004003b,0x0000001f,0x00000020,0x00000009,0x00040020,0x00000021, - 0x00000009,0x00000008,0x0004002b,0x00000006,0x00000028,0x00000000,0x0004002b,0x00000006, - 0x00000029,0x3f800000,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, - 0x00000005,0x0004003d,0x00000007,0x00000010,0x0000000f,0x00050041,0x00000011,0x00000012, - 0x0000000b,0x0000000d,0x0003003e,0x00000012,0x00000010,0x0004003d,0x00000008,0x00000016, - 0x00000015,0x00050041,0x00000017,0x00000018,0x0000000b,0x00000013,0x0003003e,0x00000018, - 0x00000016,0x0004003d,0x00000008,0x0000001d,0x0000001c,0x00050041,0x00000021,0x00000022, - 0x00000020,0x0000000d,0x0004003d,0x00000008,0x00000023,0x00000022,0x00050085,0x00000008, - 0x00000024,0x0000001d,0x00000023,0x00050041,0x00000021,0x00000025,0x00000020,0x00000013, - 0x0004003d,0x00000008,0x00000026,0x00000025,0x00050081,0x00000008,0x00000027,0x00000024, - 0x00000026,0x00050051,0x00000006,0x0000002a,0x00000027,0x00000000,0x00050051,0x00000006, - 0x0000002b,0x00000027,0x00000001,0x00070050,0x00000007,0x0000002c,0x0000002a,0x0000002b, - 0x00000028,0x00000029,0x00050041,0x00000011,0x0000002d,0x0000001b,0x0000000d,0x0003003e, - 0x0000002d,0x0000002c,0x000100fd,0x00010038 -}; - -// backends/vulkan/glsl_shader.frag, compiled with: -// # glslangValidator -V -x -o glsl_shader.frag.u32 glsl_shader.frag -/* -#version 450 core -layout(location = 0) out vec4 fColor; -layout(set=0, binding=0) uniform sampler2D sTexture; -layout(location = 0) in struct { vec4 Color; vec2 UV; } In; -void main() -{ - fColor = In.Color * texture(sTexture, In.UV.st); -} -*/ -static uint32_t __glsl_shader_frag_spv[] = -{ - 0x07230203,0x00010000,0x00080001,0x0000001e,0x00000000,0x00020011,0x00000001,0x0006000b, - 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, - 0x0007000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000009,0x0000000d,0x00030010, - 0x00000004,0x00000007,0x00030003,0x00000002,0x000001c2,0x00040005,0x00000004,0x6e69616d, - 0x00000000,0x00040005,0x00000009,0x6c6f4366,0x0000726f,0x00030005,0x0000000b,0x00000000, - 0x00050006,0x0000000b,0x00000000,0x6f6c6f43,0x00000072,0x00040006,0x0000000b,0x00000001, - 0x00005655,0x00030005,0x0000000d,0x00006e49,0x00050005,0x00000016,0x78655473,0x65727574, - 0x00000000,0x00040047,0x00000009,0x0000001e,0x00000000,0x00040047,0x0000000d,0x0000001e, - 0x00000000,0x00040047,0x00000016,0x00000022,0x00000000,0x00040047,0x00000016,0x00000021, - 0x00000000,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006, - 0x00000020,0x00040017,0x00000007,0x00000006,0x00000004,0x00040020,0x00000008,0x00000003, - 0x00000007,0x0004003b,0x00000008,0x00000009,0x00000003,0x00040017,0x0000000a,0x00000006, - 0x00000002,0x0004001e,0x0000000b,0x00000007,0x0000000a,0x00040020,0x0000000c,0x00000001, - 0x0000000b,0x0004003b,0x0000000c,0x0000000d,0x00000001,0x00040015,0x0000000e,0x00000020, - 0x00000001,0x0004002b,0x0000000e,0x0000000f,0x00000000,0x00040020,0x00000010,0x00000001, - 0x00000007,0x00090019,0x00000013,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, - 0x00000001,0x00000000,0x0003001b,0x00000014,0x00000013,0x00040020,0x00000015,0x00000000, - 0x00000014,0x0004003b,0x00000015,0x00000016,0x00000000,0x0004002b,0x0000000e,0x00000018, - 0x00000001,0x00040020,0x00000019,0x00000001,0x0000000a,0x00050036,0x00000002,0x00000004, - 0x00000000,0x00000003,0x000200f8,0x00000005,0x00050041,0x00000010,0x00000011,0x0000000d, - 0x0000000f,0x0004003d,0x00000007,0x00000012,0x00000011,0x0004003d,0x00000014,0x00000017, - 0x00000016,0x00050041,0x00000019,0x0000001a,0x0000000d,0x00000018,0x0004003d,0x0000000a, - 0x0000001b,0x0000001a,0x00050057,0x00000007,0x0000001c,0x00000017,0x0000001b,0x00050085, - 0x00000007,0x0000001d,0x00000012,0x0000001c,0x0003003e,0x00000009,0x0000001d,0x000100fd, - 0x00010038 -}; - -//----------------------------------------------------------------------------- -// FUNCTIONS -//----------------------------------------------------------------------------- - -// Backend data stored in io.BackendRendererUserData to allow support for multiple Dear ImGui contexts -// It is STRONGLY preferred that you use docking branch with multi-viewports (== single Dear ImGui context + multiple windows) instead of multiple Dear ImGui contexts. -// FIXME: multi-context support is not tested and probably dysfunctional in this backend. -static ImGui_ImplVulkan_Data* ImGui_ImplVulkan_GetBackendData() -{ - return ImGui::GetCurrentContext() ? (ImGui_ImplVulkan_Data*)ImGui::GetIO().BackendRendererUserData : nullptr; -} - -static uint32_t ImGui_ImplVulkan_MemoryType(VkMemoryPropertyFlags properties, uint32_t type_bits) -{ - ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData(); - ImGui_ImplVulkan_InitInfo* v = &bd->VulkanInitInfo; - VkPhysicalDeviceMemoryProperties prop; - vkGetPhysicalDeviceMemoryProperties(v->PhysicalDevice, &prop); - for (uint32_t i = 0; i < prop.memoryTypeCount; i++) - if ((prop.memoryTypes[i].propertyFlags & properties) == properties && type_bits & (1 << i)) - return i; - return 0xFFFFFFFF; // Unable to find memoryType -} - -static void check_vk_result(VkResult err) -{ - ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData(); - if (!bd) - return; - ImGui_ImplVulkan_InitInfo* v = &bd->VulkanInitInfo; - if (v->CheckVkResultFn) - v->CheckVkResultFn(err); -} - -// Same as IM_MEMALIGN(). 'alignment' must be a power of two. -static inline VkDeviceSize AlignBufferSize(VkDeviceSize size, VkDeviceSize alignment) -{ - return (size + alignment - 1) & ~(alignment - 1); -} - -static void CreateOrResizeBuffer(VkBuffer& buffer, VkDeviceMemory& buffer_memory, VkDeviceSize& buffer_size, VkDeviceSize new_size, VkBufferUsageFlagBits usage) -{ - ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData(); - ImGui_ImplVulkan_InitInfo* v = &bd->VulkanInitInfo; - VkResult err; - if (buffer != VK_NULL_HANDLE) - vkDestroyBuffer(v->Device, buffer, v->Allocator); - if (buffer_memory != VK_NULL_HANDLE) - vkFreeMemory(v->Device, buffer_memory, v->Allocator); - - VkDeviceSize buffer_size_aligned = AlignBufferSize(IM_MAX(v->MinAllocationSize, new_size), bd->BufferMemoryAlignment); - VkBufferCreateInfo buffer_info = {}; - buffer_info.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO; - buffer_info.size = buffer_size_aligned; - buffer_info.usage = usage; - buffer_info.sharingMode = VK_SHARING_MODE_EXCLUSIVE; - err = vkCreateBuffer(v->Device, &buffer_info, v->Allocator, &buffer); - check_vk_result(err); - - VkMemoryRequirements req; - vkGetBufferMemoryRequirements(v->Device, buffer, &req); - bd->BufferMemoryAlignment = (bd->BufferMemoryAlignment > req.alignment) ? bd->BufferMemoryAlignment : req.alignment; - VkMemoryAllocateInfo alloc_info = {}; - alloc_info.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; - alloc_info.allocationSize = req.size; - alloc_info.memoryTypeIndex = ImGui_ImplVulkan_MemoryType(VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, req.memoryTypeBits); - err = vkAllocateMemory(v->Device, &alloc_info, v->Allocator, &buffer_memory); - check_vk_result(err); - - err = vkBindBufferMemory(v->Device, buffer, buffer_memory, 0); - check_vk_result(err); - buffer_size = buffer_size_aligned; -} - -static void ImGui_ImplVulkan_SetupRenderState(ImDrawData* draw_data, VkPipeline pipeline, VkCommandBuffer command_buffer, ImGui_ImplVulkan_FrameRenderBuffers* rb, int fb_width, int fb_height) -{ - ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData(); - - // Bind pipeline: - { - vkCmdBindPipeline(command_buffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline); - } - - // Bind Vertex And Index Buffer: - if (draw_data->TotalVtxCount > 0) - { - VkBuffer vertex_buffers[1] = { rb->VertexBuffer }; - VkDeviceSize vertex_offset[1] = { 0 }; - vkCmdBindVertexBuffers(command_buffer, 0, 1, vertex_buffers, vertex_offset); - vkCmdBindIndexBuffer(command_buffer, rb->IndexBuffer, 0, sizeof(ImDrawIdx) == 2 ? VK_INDEX_TYPE_UINT16 : VK_INDEX_TYPE_UINT32); - } - - // Setup viewport: - { - VkViewport viewport; - viewport.x = 0; - viewport.y = 0; - viewport.width = (float)fb_width; - viewport.height = (float)fb_height; - viewport.minDepth = 0.0f; - viewport.maxDepth = 1.0f; - vkCmdSetViewport(command_buffer, 0, 1, &viewport); - } - - // Setup scale and translation: - // Our visible imgui space lies from draw_data->DisplayPps (top left) to draw_data->DisplayPos+data_data->DisplaySize (bottom right). DisplayPos is (0,0) for single viewport apps. - { - float scale[2]; - scale[0] = 2.0f / draw_data->DisplaySize.x; - scale[1] = 2.0f / draw_data->DisplaySize.y; - float translate[2]; - translate[0] = -1.0f - draw_data->DisplayPos.x * scale[0]; - translate[1] = -1.0f - draw_data->DisplayPos.y * scale[1]; - vkCmdPushConstants(command_buffer, bd->PipelineLayout, VK_SHADER_STAGE_VERTEX_BIT, sizeof(float) * 0, sizeof(float) * 2, scale); - vkCmdPushConstants(command_buffer, bd->PipelineLayout, VK_SHADER_STAGE_VERTEX_BIT, sizeof(float) * 2, sizeof(float) * 2, translate); - } -} - -// Render function -void ImGui_ImplVulkan_RenderDrawData(ImDrawData* draw_data, VkCommandBuffer command_buffer, VkPipeline pipeline) -{ - // Avoid rendering when minimized, scale coordinates for retina displays (screen coordinates != framebuffer coordinates) - int fb_width = (int)(draw_data->DisplaySize.x * draw_data->FramebufferScale.x); - int fb_height = (int)(draw_data->DisplaySize.y * draw_data->FramebufferScale.y); - if (fb_width <= 0 || fb_height <= 0) - return; - - // Catch up with texture updates. Most of the times, the list will have 1 element with an OK status, aka nothing to do. - // (This almost always points to ImGui::GetPlatformIO().Textures[] but is part of ImDrawData to allow overriding or disabling texture updates). - if (draw_data->Textures != nullptr) - for (ImTextureData* tex : *draw_data->Textures) - if (tex->Status != ImTextureStatus_OK) - ImGui_ImplVulkan_UpdateTexture(tex); - - ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData(); - ImGui_ImplVulkan_InitInfo* v = &bd->VulkanInitInfo; - if (pipeline == VK_NULL_HANDLE) - pipeline = bd->Pipeline; - - // Allocate array to store enough vertex/index buffers - ImGui_ImplVulkan_WindowRenderBuffers* wrb = &bd->MainWindowRenderBuffers; - if (wrb->FrameRenderBuffers.Size == 0) - { - wrb->Index = 0; - wrb->Count = v->ImageCount; - wrb->FrameRenderBuffers.resize(wrb->Count); - memset((void*)wrb->FrameRenderBuffers.Data, 0, wrb->FrameRenderBuffers.size_in_bytes()); - } - IM_ASSERT(wrb->Count == v->ImageCount); - wrb->Index = (wrb->Index + 1) % wrb->Count; - ImGui_ImplVulkan_FrameRenderBuffers* rb = &wrb->FrameRenderBuffers[wrb->Index]; - - if (draw_data->TotalVtxCount > 0) - { - // Create or resize the vertex/index buffers - VkDeviceSize vertex_size = AlignBufferSize(draw_data->TotalVtxCount * sizeof(ImDrawVert), bd->BufferMemoryAlignment); - VkDeviceSize index_size = AlignBufferSize(draw_data->TotalIdxCount * sizeof(ImDrawIdx), bd->BufferMemoryAlignment); - if (rb->VertexBuffer == VK_NULL_HANDLE || rb->VertexBufferSize < vertex_size) - CreateOrResizeBuffer(rb->VertexBuffer, rb->VertexBufferMemory, rb->VertexBufferSize, vertex_size, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT); - if (rb->IndexBuffer == VK_NULL_HANDLE || rb->IndexBufferSize < index_size) - CreateOrResizeBuffer(rb->IndexBuffer, rb->IndexBufferMemory, rb->IndexBufferSize, index_size, VK_BUFFER_USAGE_INDEX_BUFFER_BIT); - - // Upload vertex/index data into a single contiguous GPU buffer - ImDrawVert* vtx_dst = nullptr; - ImDrawIdx* idx_dst = nullptr; - VkResult err = vkMapMemory(v->Device, rb->VertexBufferMemory, 0, vertex_size, 0, (void**)&vtx_dst); - check_vk_result(err); - err = vkMapMemory(v->Device, rb->IndexBufferMemory, 0, index_size, 0, (void**)&idx_dst); - check_vk_result(err); - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - memcpy(vtx_dst, draw_list->VtxBuffer.Data, draw_list->VtxBuffer.Size * sizeof(ImDrawVert)); - memcpy(idx_dst, draw_list->IdxBuffer.Data, draw_list->IdxBuffer.Size * sizeof(ImDrawIdx)); - vtx_dst += draw_list->VtxBuffer.Size; - idx_dst += draw_list->IdxBuffer.Size; - } - VkMappedMemoryRange range[2] = {}; - range[0].sType = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE; - range[0].memory = rb->VertexBufferMemory; - range[0].size = VK_WHOLE_SIZE; - range[1].sType = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE; - range[1].memory = rb->IndexBufferMemory; - range[1].size = VK_WHOLE_SIZE; - err = vkFlushMappedMemoryRanges(v->Device, 2, range); - check_vk_result(err); - vkUnmapMemory(v->Device, rb->VertexBufferMemory); - vkUnmapMemory(v->Device, rb->IndexBufferMemory); - } - - // Setup desired Vulkan state - ImGui_ImplVulkan_SetupRenderState(draw_data, pipeline, command_buffer, rb, fb_width, fb_height); - - // Setup render state structure (for callbacks and custom texture bindings) - ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); - ImGui_ImplVulkan_RenderState render_state; - render_state.CommandBuffer = command_buffer; - render_state.Pipeline = pipeline; - render_state.PipelineLayout = bd->PipelineLayout; - platform_io.Renderer_RenderState = &render_state; - - // Will project scissor/clipping rectangles into framebuffer space - ImVec2 clip_off = draw_data->DisplayPos; // (0,0) unless using multi-viewports - ImVec2 clip_scale = draw_data->FramebufferScale; // (1,1) unless using retina display which are often (2,2) - - // Render command lists - // (Because we merged all buffers into a single one, we maintain our own offset into them) - int global_vtx_offset = 0; - int global_idx_offset = 0; - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - for (int cmd_i = 0; cmd_i < draw_list->CmdBuffer.Size; cmd_i++) - { - const ImDrawCmd* pcmd = &draw_list->CmdBuffer[cmd_i]; - if (pcmd->UserCallback != nullptr) - { - // User callback, registered via ImDrawList::AddCallback() - // (ImDrawCallback_ResetRenderState is a special callback value used by the user to request the renderer to reset render state.) - if (pcmd->UserCallback == ImDrawCallback_ResetRenderState) - ImGui_ImplVulkan_SetupRenderState(draw_data, pipeline, command_buffer, rb, fb_width, fb_height); - else - pcmd->UserCallback(draw_list, pcmd); - } - else - { - // Project scissor/clipping rectangles into framebuffer space - ImVec2 clip_min((pcmd->ClipRect.x - clip_off.x) * clip_scale.x, (pcmd->ClipRect.y - clip_off.y) * clip_scale.y); - ImVec2 clip_max((pcmd->ClipRect.z - clip_off.x) * clip_scale.x, (pcmd->ClipRect.w - clip_off.y) * clip_scale.y); - - // Clamp to viewport as vkCmdSetScissor() won't accept values that are off bounds - if (clip_min.x < 0.0f) { clip_min.x = 0.0f; } - if (clip_min.y < 0.0f) { clip_min.y = 0.0f; } - if (clip_max.x > fb_width) { clip_max.x = (float)fb_width; } - if (clip_max.y > fb_height) { clip_max.y = (float)fb_height; } - if (clip_max.x <= clip_min.x || clip_max.y <= clip_min.y) - continue; - - // Apply scissor/clipping rectangle - VkRect2D scissor; - scissor.offset.x = (int32_t)(clip_min.x); - scissor.offset.y = (int32_t)(clip_min.y); - scissor.extent.width = (uint32_t)(clip_max.x - clip_min.x); - scissor.extent.height = (uint32_t)(clip_max.y - clip_min.y); - vkCmdSetScissor(command_buffer, 0, 1, &scissor); - - // Bind DescriptorSet with font or user texture - VkDescriptorSet desc_set = (VkDescriptorSet)pcmd->GetTexID(); - vkCmdBindDescriptorSets(command_buffer, VK_PIPELINE_BIND_POINT_GRAPHICS, bd->PipelineLayout, 0, 1, &desc_set, 0, nullptr); - - // Draw - vkCmdDrawIndexed(command_buffer, pcmd->ElemCount, 1, pcmd->IdxOffset + global_idx_offset, pcmd->VtxOffset + global_vtx_offset, 0); - } - } - global_idx_offset += draw_list->IdxBuffer.Size; - global_vtx_offset += draw_list->VtxBuffer.Size; - } - platform_io.Renderer_RenderState = nullptr; - - // Note: at this point both vkCmdSetViewport() and vkCmdSetScissor() have been called. - // Our last values will leak into user/application rendering IF: - // - Your app uses a pipeline with VK_DYNAMIC_STATE_VIEWPORT or VK_DYNAMIC_STATE_SCISSOR dynamic state - // - And you forgot to call vkCmdSetViewport() and vkCmdSetScissor() yourself to explicitly set that state. - // If you use VK_DYNAMIC_STATE_VIEWPORT or VK_DYNAMIC_STATE_SCISSOR you are responsible for setting the values before rendering. - // In theory we should aim to backup/restore those values but I am not sure this is possible. - // We perform a call to vkCmdSetScissor() to set back a full viewport which is likely to fix things for 99% users but technically this is not perfect. (See github #4644) - VkRect2D scissor = { { 0, 0 }, { (uint32_t)fb_width, (uint32_t)fb_height } }; - vkCmdSetScissor(command_buffer, 0, 1, &scissor); -} - -static void ImGui_ImplVulkan_DestroyTexture(ImTextureData* tex) -{ - ImGui_ImplVulkan_Texture* backend_tex = (ImGui_ImplVulkan_Texture*)tex->BackendUserData; - if (backend_tex == nullptr) - return; - IM_ASSERT(backend_tex->DescriptorSet == (VkDescriptorSet)tex->TexID); - ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData(); - ImGui_ImplVulkan_InitInfo* v = &bd->VulkanInitInfo; - ImGui_ImplVulkan_RemoveTexture(backend_tex->DescriptorSet); - vkDestroyImageView(v->Device, backend_tex->ImageView, v->Allocator); - vkDestroyImage(v->Device, backend_tex->Image, v->Allocator); - vkFreeMemory(v->Device, backend_tex->Memory, v->Allocator); - IM_DELETE(backend_tex); - - // Clear identifiers and mark as destroyed (in order to allow e.g. calling InvalidateDeviceObjects while running) - tex->SetTexID(ImTextureID_Invalid); - tex->SetStatus(ImTextureStatus_Destroyed); - tex->BackendUserData = nullptr; -} - -void ImGui_ImplVulkan_UpdateTexture(ImTextureData* tex) -{ - if (tex->Status == ImTextureStatus_OK) - return; - ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData(); - ImGui_ImplVulkan_InitInfo* v = &bd->VulkanInitInfo; - VkResult err; - - if (tex->Status == ImTextureStatus_WantCreate) - { - // Create and upload new texture to graphics system - //IMGUI_DEBUG_LOG("UpdateTexture #%03d: WantCreate %dx%d\n", tex->UniqueID, tex->Width, tex->Height); - IM_ASSERT(tex->TexID == ImTextureID_Invalid && tex->BackendUserData == nullptr); - IM_ASSERT(tex->Format == ImTextureFormat_RGBA32); - ImGui_ImplVulkan_Texture* backend_tex = IM_NEW(ImGui_ImplVulkan_Texture)(); - - // Create the Image: - { - VkImageCreateInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; - info.imageType = VK_IMAGE_TYPE_2D; - info.format = VK_FORMAT_R8G8B8A8_UNORM; - info.extent.width = tex->Width; - info.extent.height = tex->Height; - info.extent.depth = 1; - info.mipLevels = 1; - info.arrayLayers = 1; - info.samples = VK_SAMPLE_COUNT_1_BIT; - info.tiling = VK_IMAGE_TILING_OPTIMAL; - info.usage = VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT; - info.sharingMode = VK_SHARING_MODE_EXCLUSIVE; - info.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; - err = vkCreateImage(v->Device, &info, v->Allocator, &backend_tex->Image); - check_vk_result(err); - VkMemoryRequirements req; - vkGetImageMemoryRequirements(v->Device, backend_tex->Image, &req); - VkMemoryAllocateInfo alloc_info = {}; - alloc_info.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; - alloc_info.allocationSize = IM_MAX(v->MinAllocationSize, req.size); - alloc_info.memoryTypeIndex = ImGui_ImplVulkan_MemoryType(VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, req.memoryTypeBits); - err = vkAllocateMemory(v->Device, &alloc_info, v->Allocator, &backend_tex->Memory); - check_vk_result(err); - err = vkBindImageMemory(v->Device, backend_tex->Image, backend_tex->Memory, 0); - check_vk_result(err); - } - - // Create the Image View: - { - VkImageViewCreateInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; - info.image = backend_tex->Image; - info.viewType = VK_IMAGE_VIEW_TYPE_2D; - info.format = VK_FORMAT_R8G8B8A8_UNORM; - info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - info.subresourceRange.levelCount = 1; - info.subresourceRange.layerCount = 1; - err = vkCreateImageView(v->Device, &info, v->Allocator, &backend_tex->ImageView); - check_vk_result(err); - } - - // Create the Descriptor Set - backend_tex->DescriptorSet = ImGui_ImplVulkan_AddTexture(bd->TexSampler, backend_tex->ImageView, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); - - // Store identifiers - tex->SetTexID((ImTextureID)backend_tex->DescriptorSet); - tex->BackendUserData = backend_tex; - } - - if (tex->Status == ImTextureStatus_WantCreate || tex->Status == ImTextureStatus_WantUpdates) - { - ImGui_ImplVulkan_Texture* backend_tex = (ImGui_ImplVulkan_Texture*)tex->BackendUserData; - - // Update full texture or selected blocks. We only ever write to textures regions which have never been used before! - // This backend choose to use tex->UpdateRect but you can use tex->Updates[] to upload individual regions. - // We could use the smaller rect on _WantCreate but using the full rect allows us to clear the texture. - const int upload_x = (tex->Status == ImTextureStatus_WantCreate) ? 0 : tex->UpdateRect.x; - const int upload_y = (tex->Status == ImTextureStatus_WantCreate) ? 0 : tex->UpdateRect.y; - const int upload_w = (tex->Status == ImTextureStatus_WantCreate) ? tex->Width : tex->UpdateRect.w; - const int upload_h = (tex->Status == ImTextureStatus_WantCreate) ? tex->Height : tex->UpdateRect.h; - - // Create the Upload Buffer: - VkDeviceMemory upload_buffer_memory; - - VkBuffer upload_buffer; - VkDeviceSize upload_pitch = upload_w * tex->BytesPerPixel; - VkDeviceSize upload_size = AlignBufferSize(upload_h * upload_pitch, bd->NonCoherentAtomSize); - { - VkBufferCreateInfo buffer_info = {}; - buffer_info.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO; - buffer_info.size = upload_size; - buffer_info.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT; - buffer_info.sharingMode = VK_SHARING_MODE_EXCLUSIVE; - err = vkCreateBuffer(v->Device, &buffer_info, v->Allocator, &upload_buffer); - check_vk_result(err); - VkMemoryRequirements req; - vkGetBufferMemoryRequirements(v->Device, upload_buffer, &req); - bd->BufferMemoryAlignment = (bd->BufferMemoryAlignment > req.alignment) ? bd->BufferMemoryAlignment : req.alignment; - VkMemoryAllocateInfo alloc_info = {}; - alloc_info.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; - alloc_info.allocationSize = IM_MAX(v->MinAllocationSize, req.size); - alloc_info.memoryTypeIndex = ImGui_ImplVulkan_MemoryType(VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, req.memoryTypeBits); - err = vkAllocateMemory(v->Device, &alloc_info, v->Allocator, &upload_buffer_memory); - check_vk_result(err); - err = vkBindBufferMemory(v->Device, upload_buffer, upload_buffer_memory, 0); - check_vk_result(err); - } - - // Upload to Buffer: - { - char* map = nullptr; - err = vkMapMemory(v->Device, upload_buffer_memory, 0, upload_size, 0, (void**)(&map)); - check_vk_result(err); - for (int y = 0; y < upload_h; y++) - memcpy(map + upload_pitch * y, tex->GetPixelsAt(upload_x, upload_y + y), (size_t)upload_pitch); - VkMappedMemoryRange range[1] = {}; - range[0].sType = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE; - range[0].memory = upload_buffer_memory; - range[0].size = upload_size; - err = vkFlushMappedMemoryRanges(v->Device, 1, range); - check_vk_result(err); - vkUnmapMemory(v->Device, upload_buffer_memory); - } - - // Start command buffer - { - err = vkResetCommandPool(v->Device, bd->TexCommandPool, 0); - check_vk_result(err); - VkCommandBufferBeginInfo begin_info = {}; - begin_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; - begin_info.flags |= VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT; - err = vkBeginCommandBuffer(bd->TexCommandBuffer, &begin_info); - check_vk_result(err); - } - - // Copy to Image: - { - VkBufferMemoryBarrier upload_barrier[1] = {}; - upload_barrier[0].sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER; - upload_barrier[0].srcAccessMask = VK_ACCESS_HOST_WRITE_BIT; - upload_barrier[0].dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT; - upload_barrier[0].srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; - upload_barrier[0].dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; - upload_barrier[0].buffer = upload_buffer; - upload_barrier[0].offset = 0; - upload_barrier[0].size = upload_size; - - VkImageMemoryBarrier copy_barrier[1] = {}; - copy_barrier[0].sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER; - copy_barrier[0].dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; - copy_barrier[0].oldLayout = VK_IMAGE_LAYOUT_UNDEFINED; - copy_barrier[0].newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL; - copy_barrier[0].srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; - copy_barrier[0].dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; - copy_barrier[0].image = backend_tex->Image; - copy_barrier[0].subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - copy_barrier[0].subresourceRange.levelCount = 1; - copy_barrier[0].subresourceRange.layerCount = 1; - vkCmdPipelineBarrier(bd->TexCommandBuffer, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | VK_PIPELINE_STAGE_HOST_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0, 0, nullptr, 1, upload_barrier, 1, copy_barrier); - - VkBufferImageCopy region = {}; - region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - region.imageSubresource.layerCount = 1; - region.imageExtent.width = upload_w; - region.imageExtent.height = upload_h; - region.imageExtent.depth = 1; - region.imageOffset.x = upload_x; - region.imageOffset.y = upload_y; - vkCmdCopyBufferToImage(bd->TexCommandBuffer, upload_buffer, backend_tex->Image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion); - - VkImageMemoryBarrier use_barrier[1] = {}; - use_barrier[0].sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER; - use_barrier[0].srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; - use_barrier[0].dstAccessMask = VK_ACCESS_SHADER_READ_BIT; - use_barrier[0].oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL; - use_barrier[0].newLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; - use_barrier[0].srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; - use_barrier[0].dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; - use_barrier[0].image = backend_tex->Image; - use_barrier[0].subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - use_barrier[0].subresourceRange.levelCount = 1; - use_barrier[0].subresourceRange.layerCount = 1; - vkCmdPipelineBarrier(bd->TexCommandBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, 0, 0, nullptr, 0, nullptr, 1, use_barrier); - } - - // End command buffer - { - VkSubmitInfo end_info = {}; - end_info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; - end_info.commandBufferCount = 1; - end_info.pCommandBuffers = &bd->TexCommandBuffer; - err = vkEndCommandBuffer(bd->TexCommandBuffer); - check_vk_result(err); - err = vkQueueSubmit(v->Queue, 1, &end_info, VK_NULL_HANDLE); - check_vk_result(err); - } - - err = vkQueueWaitIdle(v->Queue); // FIXME-OPT: Suboptimal! - check_vk_result(err); - vkDestroyBuffer(v->Device, upload_buffer, v->Allocator); - vkFreeMemory(v->Device, upload_buffer_memory, v->Allocator); - - tex->SetStatus(ImTextureStatus_OK); - } - - if (tex->Status == ImTextureStatus_WantDestroy && tex->UnusedFrames >= (int)bd->VulkanInitInfo.ImageCount) - ImGui_ImplVulkan_DestroyTexture(tex); -} - -static void ImGui_ImplVulkan_CreateShaderModules(VkDevice device, const VkAllocationCallbacks* allocator) -{ - // Create the shader modules - ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData(); - if (bd->ShaderModuleVert == VK_NULL_HANDLE) - { - VkShaderModuleCreateInfo vert_info = {}; - vert_info.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO; - vert_info.codeSize = sizeof(__glsl_shader_vert_spv); - vert_info.pCode = (uint32_t*)__glsl_shader_vert_spv; - VkResult err = vkCreateShaderModule(device, &vert_info, allocator, &bd->ShaderModuleVert); - check_vk_result(err); - } - if (bd->ShaderModuleFrag == VK_NULL_HANDLE) - { - VkShaderModuleCreateInfo frag_info = {}; - frag_info.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO; - frag_info.codeSize = sizeof(__glsl_shader_frag_spv); - frag_info.pCode = (uint32_t*)__glsl_shader_frag_spv; - VkResult err = vkCreateShaderModule(device, &frag_info, allocator, &bd->ShaderModuleFrag); - check_vk_result(err); - } -} - -static void ImGui_ImplVulkan_CreatePipeline(VkDevice device, const VkAllocationCallbacks* allocator, VkPipelineCache pipelineCache, VkRenderPass renderPass, VkSampleCountFlagBits MSAASamples, VkPipeline* pipeline, uint32_t subpass) -{ - ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData(); - ImGui_ImplVulkan_CreateShaderModules(device, allocator); - - VkPipelineShaderStageCreateInfo stage[2] = {}; - stage[0].sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO; - stage[0].stage = VK_SHADER_STAGE_VERTEX_BIT; - stage[0].module = bd->ShaderModuleVert; - stage[0].pName = "main"; - stage[1].sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO; - stage[1].stage = VK_SHADER_STAGE_FRAGMENT_BIT; - stage[1].module = bd->ShaderModuleFrag; - stage[1].pName = "main"; - - VkVertexInputBindingDescription binding_desc[1] = {}; - binding_desc[0].stride = sizeof(ImDrawVert); - binding_desc[0].inputRate = VK_VERTEX_INPUT_RATE_VERTEX; - - VkVertexInputAttributeDescription attribute_desc[3] = {}; - attribute_desc[0].location = 0; - attribute_desc[0].binding = binding_desc[0].binding; - attribute_desc[0].format = VK_FORMAT_R32G32_SFLOAT; - attribute_desc[0].offset = offsetof(ImDrawVert, pos); - attribute_desc[1].location = 1; - attribute_desc[1].binding = binding_desc[0].binding; - attribute_desc[1].format = VK_FORMAT_R32G32_SFLOAT; - attribute_desc[1].offset = offsetof(ImDrawVert, uv); - attribute_desc[2].location = 2; - attribute_desc[2].binding = binding_desc[0].binding; - attribute_desc[2].format = VK_FORMAT_R8G8B8A8_UNORM; - attribute_desc[2].offset = offsetof(ImDrawVert, col); - - VkPipelineVertexInputStateCreateInfo vertex_info = {}; - vertex_info.sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO; - vertex_info.vertexBindingDescriptionCount = 1; - vertex_info.pVertexBindingDescriptions = binding_desc; - vertex_info.vertexAttributeDescriptionCount = 3; - vertex_info.pVertexAttributeDescriptions = attribute_desc; - - VkPipelineInputAssemblyStateCreateInfo ia_info = {}; - ia_info.sType = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO; - ia_info.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST; - - VkPipelineViewportStateCreateInfo viewport_info = {}; - viewport_info.sType = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO; - viewport_info.viewportCount = 1; - viewport_info.scissorCount = 1; - - VkPipelineRasterizationStateCreateInfo raster_info = {}; - raster_info.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO; - raster_info.polygonMode = VK_POLYGON_MODE_FILL; - raster_info.cullMode = VK_CULL_MODE_NONE; - raster_info.frontFace = VK_FRONT_FACE_COUNTER_CLOCKWISE; - raster_info.lineWidth = 1.0f; - - VkPipelineMultisampleStateCreateInfo ms_info = {}; - ms_info.sType = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO; - ms_info.rasterizationSamples = (MSAASamples != 0) ? MSAASamples : VK_SAMPLE_COUNT_1_BIT; - - VkPipelineColorBlendAttachmentState color_attachment[1] = {}; - color_attachment[0].blendEnable = VK_TRUE; - color_attachment[0].srcColorBlendFactor = VK_BLEND_FACTOR_SRC_ALPHA; - color_attachment[0].dstColorBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA; - color_attachment[0].colorBlendOp = VK_BLEND_OP_ADD; - color_attachment[0].srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE; - color_attachment[0].dstAlphaBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA; - color_attachment[0].alphaBlendOp = VK_BLEND_OP_ADD; - color_attachment[0].colorWriteMask = VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT; - - VkPipelineDepthStencilStateCreateInfo depth_info = {}; - depth_info.sType = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO; - - VkPipelineColorBlendStateCreateInfo blend_info = {}; - blend_info.sType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO; - blend_info.attachmentCount = 1; - blend_info.pAttachments = color_attachment; - - VkDynamicState dynamic_states[2] = { VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR }; - VkPipelineDynamicStateCreateInfo dynamic_state = {}; - dynamic_state.sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO; - dynamic_state.dynamicStateCount = (uint32_t)IM_ARRAYSIZE(dynamic_states); - dynamic_state.pDynamicStates = dynamic_states; - - VkGraphicsPipelineCreateInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO; - info.flags = bd->PipelineCreateFlags; - info.stageCount = 2; - info.pStages = stage; - info.pVertexInputState = &vertex_info; - info.pInputAssemblyState = &ia_info; - info.pViewportState = &viewport_info; - info.pRasterizationState = &raster_info; - info.pMultisampleState = &ms_info; - info.pDepthStencilState = &depth_info; - info.pColorBlendState = &blend_info; - info.pDynamicState = &dynamic_state; - info.layout = bd->PipelineLayout; - info.renderPass = renderPass; - info.subpass = subpass; - -#ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING - if (bd->VulkanInitInfo.UseDynamicRendering) - { - IM_ASSERT(bd->VulkanInitInfo.PipelineRenderingCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR && "PipelineRenderingCreateInfo sType must be VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR"); - IM_ASSERT(bd->VulkanInitInfo.PipelineRenderingCreateInfo.pNext == nullptr && "PipelineRenderingCreateInfo pNext must be nullptr"); - info.pNext = &bd->VulkanInitInfo.PipelineRenderingCreateInfo; - info.renderPass = VK_NULL_HANDLE; // Just make sure it's actually nullptr. - } -#endif - - VkResult err = vkCreateGraphicsPipelines(device, pipelineCache, 1, &info, allocator, pipeline); - check_vk_result(err); -} - -bool ImGui_ImplVulkan_CreateDeviceObjects() -{ - ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData(); - ImGui_ImplVulkan_InitInfo* v = &bd->VulkanInitInfo; - VkResult err; - - if (!bd->TexSampler) - { - // Bilinear sampling is required by default. Set 'io.Fonts->Flags |= ImFontAtlasFlags_NoBakedLines' or 'style.AntiAliasedLinesUseTex = false' to allow point/nearest sampling. - VkSamplerCreateInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO; - info.magFilter = VK_FILTER_LINEAR; - info.minFilter = VK_FILTER_LINEAR; - info.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR; - info.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; - info.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; - info.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; - info.minLod = -1000; - info.maxLod = 1000; - info.maxAnisotropy = 1.0f; - err = vkCreateSampler(v->Device, &info, v->Allocator, &bd->TexSampler); - check_vk_result(err); - } - - if (!bd->DescriptorSetLayout) - { - VkDescriptorSetLayoutBinding binding[1] = {}; - binding[0].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; - binding[0].descriptorCount = 1; - binding[0].stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT; - VkDescriptorSetLayoutCreateInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO; - info.bindingCount = 1; - info.pBindings = binding; - err = vkCreateDescriptorSetLayout(v->Device, &info, v->Allocator, &bd->DescriptorSetLayout); - check_vk_result(err); - } - - if (v->DescriptorPoolSize != 0) - { - IM_ASSERT(v->DescriptorPoolSize >= IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE); - VkDescriptorPoolSize pool_size = { VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, v->DescriptorPoolSize }; - VkDescriptorPoolCreateInfo pool_info = {}; - pool_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO; - pool_info.flags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT; - pool_info.maxSets = v->DescriptorPoolSize; - pool_info.poolSizeCount = 1; - pool_info.pPoolSizes = &pool_size; - - err = vkCreateDescriptorPool(v->Device, &pool_info, v->Allocator, &bd->DescriptorPool); - check_vk_result(err); - } - - if (!bd->PipelineLayout) - { - // Constants: we are using 'vec2 offset' and 'vec2 scale' instead of a full 3d projection matrix - VkPushConstantRange push_constants[1] = {}; - push_constants[0].stageFlags = VK_SHADER_STAGE_VERTEX_BIT; - push_constants[0].offset = sizeof(float) * 0; - push_constants[0].size = sizeof(float) * 4; - VkDescriptorSetLayout set_layout[1] = { bd->DescriptorSetLayout }; - VkPipelineLayoutCreateInfo layout_info = {}; - layout_info.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO; - layout_info.setLayoutCount = 1; - layout_info.pSetLayouts = set_layout; - layout_info.pushConstantRangeCount = 1; - layout_info.pPushConstantRanges = push_constants; - err = vkCreatePipelineLayout(v->Device, &layout_info, v->Allocator, &bd->PipelineLayout); - check_vk_result(err); - } - - ImGui_ImplVulkan_CreatePipeline(v->Device, v->Allocator, v->PipelineCache, v->RenderPass, v->MSAASamples, &bd->Pipeline, v->Subpass); - - // Create command pool/buffer for texture upload - if (!bd->TexCommandPool) - { - VkCommandPoolCreateInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO; - info.flags = 0; - info.queueFamilyIndex = v->QueueFamily; - err = vkCreateCommandPool(v->Device, &info, v->Allocator, &bd->TexCommandPool); - check_vk_result(err); - } - if (!bd->TexCommandBuffer) - { - VkCommandBufferAllocateInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO; - info.commandPool = bd->TexCommandPool; - info.commandBufferCount = 1; - err = vkAllocateCommandBuffers(v->Device, &info, &bd->TexCommandBuffer); - check_vk_result(err); - } - - return true; -} - -void ImGui_ImplVulkan_DestroyDeviceObjects() -{ - ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData(); - ImGui_ImplVulkan_InitInfo* v = &bd->VulkanInitInfo; - ImGui_ImplVulkan_DestroyWindowRenderBuffers(v->Device, &bd->MainWindowRenderBuffers, v->Allocator); - - // Destroy all textures - for (ImTextureData* tex : ImGui::GetPlatformIO().Textures) - if (tex->RefCount == 1) - ImGui_ImplVulkan_DestroyTexture(tex); - - if (bd->TexCommandBuffer) { vkFreeCommandBuffers(v->Device, bd->TexCommandPool, 1, &bd->TexCommandBuffer); bd->TexCommandBuffer = VK_NULL_HANDLE; } - if (bd->TexCommandPool) { vkDestroyCommandPool(v->Device, bd->TexCommandPool, v->Allocator); bd->TexCommandPool = VK_NULL_HANDLE; } - if (bd->TexSampler) { vkDestroySampler(v->Device, bd->TexSampler, v->Allocator); bd->TexSampler = VK_NULL_HANDLE; } - if (bd->ShaderModuleVert) { vkDestroyShaderModule(v->Device, bd->ShaderModuleVert, v->Allocator); bd->ShaderModuleVert = VK_NULL_HANDLE; } - if (bd->ShaderModuleFrag) { vkDestroyShaderModule(v->Device, bd->ShaderModuleFrag, v->Allocator); bd->ShaderModuleFrag = VK_NULL_HANDLE; } - if (bd->DescriptorSetLayout) { vkDestroyDescriptorSetLayout(v->Device, bd->DescriptorSetLayout, v->Allocator); bd->DescriptorSetLayout = VK_NULL_HANDLE; } - if (bd->PipelineLayout) { vkDestroyPipelineLayout(v->Device, bd->PipelineLayout, v->Allocator); bd->PipelineLayout = VK_NULL_HANDLE; } - if (bd->Pipeline) { vkDestroyPipeline(v->Device, bd->Pipeline, v->Allocator); bd->Pipeline = VK_NULL_HANDLE; } - if (bd->DescriptorPool) { vkDestroyDescriptorPool(v->Device, bd->DescriptorPool, v->Allocator); bd->DescriptorPool = VK_NULL_HANDLE; } -} - -#ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING -static void ImGui_ImplVulkan_LoadDynamicRenderingFunctions(uint32_t api_version, PFN_vkVoidFunction(*loader_func)(const char* function_name, void* user_data), void* user_data) -{ - IM_UNUSED(api_version); - - // Manually load those two (see #5446, #8326, #8365, #8600) - // - Try loading core (non-KHR) versions first (this will work for Vulkan 1.3+ and the device supports dynamic rendering) - ImGuiImplVulkanFuncs_vkCmdBeginRenderingKHR = reinterpret_cast(loader_func("vkCmdBeginRendering", user_data)); - ImGuiImplVulkanFuncs_vkCmdEndRenderingKHR = reinterpret_cast(loader_func("vkCmdEndRendering", user_data)); - - // - Fallback to KHR versions if core not available (this will work if KHR extension is available and enabled and also the device supports dynamic rendering) - if (ImGuiImplVulkanFuncs_vkCmdBeginRenderingKHR == nullptr || ImGuiImplVulkanFuncs_vkCmdEndRenderingKHR == nullptr) - { - ImGuiImplVulkanFuncs_vkCmdBeginRenderingKHR = reinterpret_cast(loader_func("vkCmdBeginRenderingKHR", user_data)); - ImGuiImplVulkanFuncs_vkCmdEndRenderingKHR = reinterpret_cast(loader_func("vkCmdEndRenderingKHR", user_data)); - } -} -#endif - -// If unspecified by user, assume that ApiVersion == HeaderVersion - // We don't care about other versions than 1.3 for our checks, so don't need to make this exhaustive (e.g. with all #ifdef VK_VERSION_1_X checks) -static uint32_t ImGui_ImplVulkan_GetDefaultApiVersion() -{ -#ifdef VK_HEADER_VERSION_COMPLETE - return VK_HEADER_VERSION_COMPLETE; -#else - return VK_API_VERSION_1_0; -#endif -} - -bool ImGui_ImplVulkan_LoadFunctions(uint32_t api_version, PFN_vkVoidFunction(*loader_func)(const char* function_name, void* user_data), void* user_data) -{ - // Load function pointers - // You can use the default Vulkan loader using: - // ImGui_ImplVulkan_LoadFunctions(VK_API_VERSION_1_3, [](const char* function_name, void*) { return vkGetInstanceProcAddr(your_vk_isntance, function_name); }); - // But this would be roughly equivalent to not setting VK_NO_PROTOTYPES. - if (api_version == 0) - api_version = ImGui_ImplVulkan_GetDefaultApiVersion(); - -#ifdef IMGUI_IMPL_VULKAN_USE_LOADER -#define IMGUI_VULKAN_FUNC_LOAD(func) \ - func = reinterpret_cast(loader_func(#func, user_data)); \ - if (func == nullptr) \ - return false; - IMGUI_VULKAN_FUNC_MAP(IMGUI_VULKAN_FUNC_LOAD) -#undef IMGUI_VULKAN_FUNC_LOAD - -#ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING - ImGui_ImplVulkan_LoadDynamicRenderingFunctions(api_version, loader_func, user_data); -#endif -#else - IM_UNUSED(loader_func); - IM_UNUSED(user_data); -#endif - - g_FunctionsLoaded = true; - return true; -} - -bool ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info) -{ - IM_ASSERT(g_FunctionsLoaded && "Need to call ImGui_ImplVulkan_LoadFunctions() if IMGUI_IMPL_VULKAN_NO_PROTOTYPES or VK_NO_PROTOTYPES are set!"); - - if (info->ApiVersion == 0) - info->ApiVersion = ImGui_ImplVulkan_GetDefaultApiVersion(); - - if (info->UseDynamicRendering) - { -#ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING -#ifndef IMGUI_IMPL_VULKAN_USE_LOADER - ImGui_ImplVulkan_LoadDynamicRenderingFunctions(info->ApiVersion, [](const char* function_name, void* user_data) { return vkGetDeviceProcAddr((VkDevice)user_data, function_name); }, (void*)info->Device); -#endif - IM_ASSERT(ImGuiImplVulkanFuncs_vkCmdBeginRenderingKHR != nullptr); - IM_ASSERT(ImGuiImplVulkanFuncs_vkCmdEndRenderingKHR != nullptr); -#else - IM_ASSERT(0 && "Can't use dynamic rendering when neither VK_VERSION_1_3 or VK_KHR_dynamic_rendering is defined."); -#endif - } - - ImGuiIO& io = ImGui::GetIO(); - IMGUI_CHECKVERSION(); - IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); - - // Setup backend capabilities flags - ImGui_ImplVulkan_Data* bd = IM_NEW(ImGui_ImplVulkan_Data)(); - io.BackendRendererUserData = (void*)bd; - io.BackendRendererName = "imgui_impl_vulkan"; - io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset; // We can honor the ImDrawCmd::VtxOffset field, allowing for large meshes. - io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures; // We can honor ImGuiPlatformIO::Textures[] requests during render. - - IM_ASSERT(info->Instance != VK_NULL_HANDLE); - IM_ASSERT(info->PhysicalDevice != VK_NULL_HANDLE); - IM_ASSERT(info->Device != VK_NULL_HANDLE); - IM_ASSERT(info->Queue != VK_NULL_HANDLE); - if (info->DescriptorPool != VK_NULL_HANDLE) // Either DescriptorPool or DescriptorPoolSize must be set, not both! - IM_ASSERT(info->DescriptorPoolSize == 0); - else - IM_ASSERT(info->DescriptorPoolSize > 0); - IM_ASSERT(info->MinImageCount >= 2); - IM_ASSERT(info->ImageCount >= info->MinImageCount); - if (info->UseDynamicRendering == false) - IM_ASSERT(info->RenderPass != VK_NULL_HANDLE); - - bd->VulkanInitInfo = *info; - - VkPhysicalDeviceProperties properties; - vkGetPhysicalDeviceProperties(info->PhysicalDevice, &properties); - bd->NonCoherentAtomSize = properties.limits.nonCoherentAtomSize; - -#ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING - ImGui_ImplVulkan_InitInfo* v = &bd->VulkanInitInfo; - if (v->PipelineRenderingCreateInfo.pColorAttachmentFormats != NULL) - { - // Deep copy buffer to reduce error-rate for end user (#8282) - VkFormat* formats_copy = (VkFormat*)IM_ALLOC(sizeof(VkFormat) * v->PipelineRenderingCreateInfo.colorAttachmentCount); - memcpy(formats_copy, v->PipelineRenderingCreateInfo.pColorAttachmentFormats, sizeof(VkFormat) * v->PipelineRenderingCreateInfo.colorAttachmentCount); - v->PipelineRenderingCreateInfo.pColorAttachmentFormats = formats_copy; - } -#endif - - if (!ImGui_ImplVulkan_CreateDeviceObjects()) - IM_ASSERT(0 && "ImGui_ImplVulkan_CreateDeviceObjects() failed!"); // <- Can't be hit yet. - - return true; -} - -void ImGui_ImplVulkan_Shutdown() -{ - ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData(); - IM_ASSERT(bd != nullptr && "No renderer backend to shutdown, or already shutdown?"); - ImGuiIO& io = ImGui::GetIO(); - - ImGui_ImplVulkan_DestroyDeviceObjects(); -#ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING - IM_FREE((void*)const_cast(bd->VulkanInitInfo.PipelineRenderingCreateInfo.pColorAttachmentFormats)); -#endif - - io.BackendRendererName = nullptr; - io.BackendRendererUserData = nullptr; - io.BackendFlags &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures); - IM_DELETE(bd); -} - -void ImGui_ImplVulkan_NewFrame() -{ - ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData(); - IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplVulkan_Init()?"); - IM_UNUSED(bd); -} - -void ImGui_ImplVulkan_SetMinImageCount(uint32_t min_image_count) -{ - ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData(); - IM_ASSERT(min_image_count >= 2); - if (bd->VulkanInitInfo.MinImageCount == min_image_count) - return; - - ImGui_ImplVulkan_InitInfo* v = &bd->VulkanInitInfo; - VkResult err = vkDeviceWaitIdle(v->Device); - check_vk_result(err); - ImGui_ImplVulkan_DestroyWindowRenderBuffers(v->Device, &bd->MainWindowRenderBuffers, v->Allocator); - bd->VulkanInitInfo.MinImageCount = min_image_count; -} - -// Register a texture by creating a descriptor -// FIXME: This is experimental in the sense that we are unsure how to best design/tackle this problem, please post to https://github.com/ocornut/imgui/pull/914 if you have suggestions. -VkDescriptorSet ImGui_ImplVulkan_AddTexture(VkSampler sampler, VkImageView image_view, VkImageLayout image_layout) -{ - ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData(); - ImGui_ImplVulkan_InitInfo* v = &bd->VulkanInitInfo; - VkDescriptorPool pool = bd->DescriptorPool ? bd->DescriptorPool : v->DescriptorPool; - - // Create Descriptor Set: - VkDescriptorSet descriptor_set; - { - VkDescriptorSetAllocateInfo alloc_info = {}; - alloc_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO; - alloc_info.descriptorPool = pool; - alloc_info.descriptorSetCount = 1; - alloc_info.pSetLayouts = &bd->DescriptorSetLayout; - VkResult err = vkAllocateDescriptorSets(v->Device, &alloc_info, &descriptor_set); - check_vk_result(err); - } - - // Update the Descriptor Set: - { - VkDescriptorImageInfo desc_image[1] = {}; - desc_image[0].sampler = sampler; - desc_image[0].imageView = image_view; - desc_image[0].imageLayout = image_layout; - VkWriteDescriptorSet write_desc[1] = {}; - write_desc[0].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; - write_desc[0].dstSet = descriptor_set; - write_desc[0].descriptorCount = 1; - write_desc[0].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; - write_desc[0].pImageInfo = desc_image; - vkUpdateDescriptorSets(v->Device, 1, write_desc, 0, nullptr); - } - return descriptor_set; -} - -void ImGui_ImplVulkan_RemoveTexture(VkDescriptorSet descriptor_set) -{ - ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData(); - ImGui_ImplVulkan_InitInfo* v = &bd->VulkanInitInfo; - VkDescriptorPool pool = bd->DescriptorPool ? bd->DescriptorPool : v->DescriptorPool; - vkFreeDescriptorSets(v->Device, pool, 1, &descriptor_set); -} - -void ImGui_ImplVulkan_DestroyFrameRenderBuffers(VkDevice device, ImGui_ImplVulkan_FrameRenderBuffers* buffers, const VkAllocationCallbacks* allocator) -{ - if (buffers->VertexBuffer) { vkDestroyBuffer(device, buffers->VertexBuffer, allocator); buffers->VertexBuffer = VK_NULL_HANDLE; } - if (buffers->VertexBufferMemory) { vkFreeMemory(device, buffers->VertexBufferMemory, allocator); buffers->VertexBufferMemory = VK_NULL_HANDLE; } - if (buffers->IndexBuffer) { vkDestroyBuffer(device, buffers->IndexBuffer, allocator); buffers->IndexBuffer = VK_NULL_HANDLE; } - if (buffers->IndexBufferMemory) { vkFreeMemory(device, buffers->IndexBufferMemory, allocator); buffers->IndexBufferMemory = VK_NULL_HANDLE; } - buffers->VertexBufferSize = 0; - buffers->IndexBufferSize = 0; -} - -void ImGui_ImplVulkan_DestroyWindowRenderBuffers(VkDevice device, ImGui_ImplVulkan_WindowRenderBuffers* buffers, const VkAllocationCallbacks* allocator) -{ - for (uint32_t n = 0; n < buffers->Count; n++) - ImGui_ImplVulkan_DestroyFrameRenderBuffers(device, &buffers->FrameRenderBuffers[n], allocator); - buffers->FrameRenderBuffers.clear(); - buffers->Index = 0; - buffers->Count = 0; -} - -//------------------------------------------------------------------------- -// Internal / Miscellaneous Vulkan Helpers -// (Used by example's main.cpp. Used by multi-viewport features. PROBABLY NOT used by your own app.) -//------------------------------------------------------------------------- -// You probably do NOT need to use or care about those functions. -// Those functions only exist because: -// 1) they facilitate the readability and maintenance of the multiple main.cpp examples files. -// 2) the upcoming multi-viewport feature will need them internally. -// Generally we avoid exposing any kind of superfluous high-level helpers in the backends, -// but it is too much code to duplicate everywhere so we exceptionally expose them. -// -// Your engine/app will likely _already_ have code to setup all that stuff (swap chain, render pass, frame buffers, etc.). -// You may read this code to learn about Vulkan, but it is recommended you use you own custom tailored code to do equivalent work. -// (The ImGui_ImplVulkanH_XXX functions do not interact with any of the state used by the regular ImGui_ImplVulkan_XXX functions) -//------------------------------------------------------------------------- - -VkSurfaceFormatKHR ImGui_ImplVulkanH_SelectSurfaceFormat(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkFormat* request_formats, int request_formats_count, VkColorSpaceKHR request_color_space) -{ - IM_ASSERT(g_FunctionsLoaded && "Need to call ImGui_ImplVulkan_LoadFunctions() if IMGUI_IMPL_VULKAN_NO_PROTOTYPES or VK_NO_PROTOTYPES are set!"); - IM_ASSERT(request_formats != nullptr); - IM_ASSERT(request_formats_count > 0); - - // Per Spec Format and View Format are expected to be the same unless VK_IMAGE_CREATE_MUTABLE_BIT was set at image creation - // Assuming that the default behavior is without setting this bit, there is no need for separate Swapchain image and image view format - // Additionally several new color spaces were introduced with Vulkan Spec v1.0.40, - // hence we must make sure that a format with the mostly available color space, VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, is found and used. - uint32_t avail_count; - vkGetPhysicalDeviceSurfaceFormatsKHR(physical_device, surface, &avail_count, nullptr); - ImVector avail_format; - avail_format.resize((int)avail_count); - vkGetPhysicalDeviceSurfaceFormatsKHR(physical_device, surface, &avail_count, avail_format.Data); - - // First check if only one format, VK_FORMAT_UNDEFINED, is available, which would imply that any format is available - if (avail_count == 1) - { - if (avail_format[0].format == VK_FORMAT_UNDEFINED) - { - VkSurfaceFormatKHR ret; - ret.format = request_formats[0]; - ret.colorSpace = request_color_space; - return ret; - } - else - { - // No point in searching another format - return avail_format[0]; - } - } - else - { - // Request several formats, the first found will be used - for (int request_i = 0; request_i < request_formats_count; request_i++) - for (uint32_t avail_i = 0; avail_i < avail_count; avail_i++) - if (avail_format[avail_i].format == request_formats[request_i] && avail_format[avail_i].colorSpace == request_color_space) - return avail_format[avail_i]; - - // If none of the requested image formats could be found, use the first available - return avail_format[0]; - } -} - -VkPresentModeKHR ImGui_ImplVulkanH_SelectPresentMode(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkPresentModeKHR* request_modes, int request_modes_count) -{ - IM_ASSERT(g_FunctionsLoaded && "Need to call ImGui_ImplVulkan_LoadFunctions() if IMGUI_IMPL_VULKAN_NO_PROTOTYPES or VK_NO_PROTOTYPES are set!"); - IM_ASSERT(request_modes != nullptr); - IM_ASSERT(request_modes_count > 0); - - // Request a certain mode and confirm that it is available. If not use VK_PRESENT_MODE_FIFO_KHR which is mandatory - uint32_t avail_count = 0; - vkGetPhysicalDeviceSurfacePresentModesKHR(physical_device, surface, &avail_count, nullptr); - ImVector avail_modes; - avail_modes.resize((int)avail_count); - vkGetPhysicalDeviceSurfacePresentModesKHR(physical_device, surface, &avail_count, avail_modes.Data); - //for (uint32_t avail_i = 0; avail_i < avail_count; avail_i++) - // printf("[vulkan] avail_modes[%d] = %d\n", avail_i, avail_modes[avail_i]); - - for (int request_i = 0; request_i < request_modes_count; request_i++) - for (uint32_t avail_i = 0; avail_i < avail_count; avail_i++) - if (request_modes[request_i] == avail_modes[avail_i]) - return request_modes[request_i]; - - return VK_PRESENT_MODE_FIFO_KHR; // Always available -} - -VkPhysicalDevice ImGui_ImplVulkanH_SelectPhysicalDevice(VkInstance instance) -{ - uint32_t gpu_count; - VkResult err = vkEnumeratePhysicalDevices(instance, &gpu_count, nullptr); - check_vk_result(err); - IM_ASSERT(gpu_count > 0); - - ImVector gpus; - gpus.resize(gpu_count); - err = vkEnumeratePhysicalDevices(instance, &gpu_count, gpus.Data); - check_vk_result(err); - - // If a number >1 of GPUs got reported, find discrete GPU if present, or use first one available. This covers - // most common cases (multi-gpu/integrated+dedicated graphics). Handling more complicated setups (multiple - // dedicated GPUs) is out of scope of this sample. - for (VkPhysicalDevice& device : gpus) - { - VkPhysicalDeviceProperties properties; - vkGetPhysicalDeviceProperties(device, &properties); - if (properties.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU) - return device; - } - - // Use first GPU (Integrated) is a Discrete one is not available. - if (gpu_count > 0) - return gpus[0]; - return VK_NULL_HANDLE; -} - - -uint32_t ImGui_ImplVulkanH_SelectQueueFamilyIndex(VkPhysicalDevice physical_device) -{ - uint32_t count; - vkGetPhysicalDeviceQueueFamilyProperties(physical_device, &count, nullptr); - ImVector queues_properties; - queues_properties.resize((int)count); - vkGetPhysicalDeviceQueueFamilyProperties(physical_device, &count, queues_properties.Data); - for (uint32_t i = 0; i < count; i++) - if (queues_properties[i].queueFlags & VK_QUEUE_GRAPHICS_BIT) - return i; - return (uint32_t)-1; -} - -void ImGui_ImplVulkanH_CreateWindowCommandBuffers(VkPhysicalDevice physical_device, VkDevice device, ImGui_ImplVulkanH_Window* wd, uint32_t queue_family, const VkAllocationCallbacks* allocator) -{ - IM_ASSERT(physical_device != VK_NULL_HANDLE && device != VK_NULL_HANDLE); - IM_UNUSED(physical_device); - - // Create Command Buffers - VkResult err; - for (uint32_t i = 0; i < wd->ImageCount; i++) - { - ImGui_ImplVulkanH_Frame* fd = &wd->Frames[i]; - { - VkCommandPoolCreateInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO; - info.flags = 0; - info.queueFamilyIndex = queue_family; - err = vkCreateCommandPool(device, &info, allocator, &fd->CommandPool); - check_vk_result(err); - } - { - VkCommandBufferAllocateInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO; - info.commandPool = fd->CommandPool; - info.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY; - info.commandBufferCount = 1; - err = vkAllocateCommandBuffers(device, &info, &fd->CommandBuffer); - check_vk_result(err); - } - { - VkFenceCreateInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO; - info.flags = VK_FENCE_CREATE_SIGNALED_BIT; - err = vkCreateFence(device, &info, allocator, &fd->Fence); - check_vk_result(err); - } - } - - for (uint32_t i = 0; i < wd->SemaphoreCount; i++) - { - ImGui_ImplVulkanH_FrameSemaphores* fsd = &wd->FrameSemaphores[i]; - { - VkSemaphoreCreateInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO; - err = vkCreateSemaphore(device, &info, allocator, &fsd->ImageAcquiredSemaphore); - check_vk_result(err); - err = vkCreateSemaphore(device, &info, allocator, &fsd->RenderCompleteSemaphore); - check_vk_result(err); - } - } -} - -int ImGui_ImplVulkanH_GetMinImageCountFromPresentMode(VkPresentModeKHR present_mode) -{ - if (present_mode == VK_PRESENT_MODE_MAILBOX_KHR) - return 3; - if (present_mode == VK_PRESENT_MODE_FIFO_KHR || present_mode == VK_PRESENT_MODE_FIFO_RELAXED_KHR) - return 2; - if (present_mode == VK_PRESENT_MODE_IMMEDIATE_KHR) - return 1; - IM_ASSERT(0); - return 1; -} - -// Also destroy old swap chain and in-flight frames data, if any. -void ImGui_ImplVulkanH_CreateWindowSwapChain(VkPhysicalDevice physical_device, VkDevice device, ImGui_ImplVulkanH_Window* wd, const VkAllocationCallbacks* allocator, int w, int h, uint32_t min_image_count) -{ - VkResult err; - VkSwapchainKHR old_swapchain = wd->Swapchain; - wd->Swapchain = VK_NULL_HANDLE; - err = vkDeviceWaitIdle(device); - check_vk_result(err); - - // We don't use ImGui_ImplVulkanH_DestroyWindow() because we want to preserve the old swapchain to create the new one. - // Destroy old Framebuffer - for (uint32_t i = 0; i < wd->ImageCount; i++) - ImGui_ImplVulkanH_DestroyFrame(device, &wd->Frames[i], allocator); - for (uint32_t i = 0; i < wd->SemaphoreCount; i++) - ImGui_ImplVulkanH_DestroyFrameSemaphores(device, &wd->FrameSemaphores[i], allocator); - wd->Frames.clear(); - wd->FrameSemaphores.clear(); - wd->ImageCount = 0; - if (wd->RenderPass) - vkDestroyRenderPass(device, wd->RenderPass, allocator); - if (wd->Pipeline) - vkDestroyPipeline(device, wd->Pipeline, allocator); - - // If min image count was not specified, request different count of images dependent on selected present mode - if (min_image_count == 0) - min_image_count = ImGui_ImplVulkanH_GetMinImageCountFromPresentMode(wd->PresentMode); - - // Create Swapchain - { - VkSurfaceCapabilitiesKHR cap; - err = vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physical_device, wd->Surface, &cap); - check_vk_result(err); - - VkSwapchainCreateInfoKHR info = {}; - info.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR; - info.surface = wd->Surface; - info.minImageCount = min_image_count; - info.imageFormat = wd->SurfaceFormat.format; - info.imageColorSpace = wd->SurfaceFormat.colorSpace; - info.imageArrayLayers = 1; - info.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; - info.imageSharingMode = VK_SHARING_MODE_EXCLUSIVE; // Assume that graphics family == present family - info.preTransform = (cap.supportedTransforms & VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR) ? VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR : cap.currentTransform; - info.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; - info.presentMode = wd->PresentMode; - info.clipped = VK_TRUE; - info.oldSwapchain = old_swapchain; - if (info.minImageCount < cap.minImageCount) - info.minImageCount = cap.minImageCount; - else if (cap.maxImageCount != 0 && info.minImageCount > cap.maxImageCount) - info.minImageCount = cap.maxImageCount; - if (cap.currentExtent.width == 0xffffffff) - { - info.imageExtent.width = wd->Width = w; - info.imageExtent.height = wd->Height = h; - } - else - { - info.imageExtent.width = wd->Width = cap.currentExtent.width; - info.imageExtent.height = wd->Height = cap.currentExtent.height; - } - err = vkCreateSwapchainKHR(device, &info, allocator, &wd->Swapchain); - check_vk_result(err); - err = vkGetSwapchainImagesKHR(device, wd->Swapchain, &wd->ImageCount, nullptr); - check_vk_result(err); - VkImage backbuffers[16] = {}; - IM_ASSERT(wd->ImageCount >= min_image_count); - IM_ASSERT(wd->ImageCount < IM_ARRAYSIZE(backbuffers)); - err = vkGetSwapchainImagesKHR(device, wd->Swapchain, &wd->ImageCount, backbuffers); - check_vk_result(err); - - wd->SemaphoreCount = wd->ImageCount + 1; - wd->Frames.resize(wd->ImageCount); - wd->FrameSemaphores.resize(wd->SemaphoreCount); - memset(wd->Frames.Data, 0, wd->Frames.size_in_bytes()); - memset(wd->FrameSemaphores.Data, 0, wd->FrameSemaphores.size_in_bytes()); - for (uint32_t i = 0; i < wd->ImageCount; i++) - wd->Frames[i].Backbuffer = backbuffers[i]; - } - if (old_swapchain) - vkDestroySwapchainKHR(device, old_swapchain, allocator); - - // Create the Render Pass - if (wd->UseDynamicRendering == false) - { - VkAttachmentDescription attachment = {}; - attachment.format = wd->SurfaceFormat.format; - attachment.samples = VK_SAMPLE_COUNT_1_BIT; - attachment.loadOp = wd->ClearEnable ? VK_ATTACHMENT_LOAD_OP_CLEAR : VK_ATTACHMENT_LOAD_OP_DONT_CARE; - attachment.storeOp = VK_ATTACHMENT_STORE_OP_STORE; - attachment.stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; - attachment.stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; - attachment.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; - attachment.finalLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; - VkAttachmentReference color_attachment = {}; - color_attachment.attachment = 0; - color_attachment.layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - VkSubpassDescription subpass = {}; - subpass.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS; - subpass.colorAttachmentCount = 1; - subpass.pColorAttachments = &color_attachment; - VkSubpassDependency dependency = {}; - dependency.srcSubpass = VK_SUBPASS_EXTERNAL; - dependency.dstSubpass = 0; - dependency.srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - dependency.dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - dependency.srcAccessMask = 0; - dependency.dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; - VkRenderPassCreateInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO; - info.attachmentCount = 1; - info.pAttachments = &attachment; - info.subpassCount = 1; - info.pSubpasses = &subpass; - info.dependencyCount = 1; - info.pDependencies = &dependency; - err = vkCreateRenderPass(device, &info, allocator, &wd->RenderPass); - check_vk_result(err); - - // We do not create a pipeline by default as this is also used by examples' main.cpp, - // but secondary viewport in multi-viewport mode may want to create one with: - //ImGui_ImplVulkan_CreatePipeline(device, allocator, VK_NULL_HANDLE, wd->RenderPass, VK_SAMPLE_COUNT_1_BIT, &wd->Pipeline, v->Subpass); - } - - // Create The Image Views - { - VkImageViewCreateInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; - info.viewType = VK_IMAGE_VIEW_TYPE_2D; - info.format = wd->SurfaceFormat.format; - info.components.r = VK_COMPONENT_SWIZZLE_R; - info.components.g = VK_COMPONENT_SWIZZLE_G; - info.components.b = VK_COMPONENT_SWIZZLE_B; - info.components.a = VK_COMPONENT_SWIZZLE_A; - VkImageSubresourceRange image_range = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 }; - info.subresourceRange = image_range; - for (uint32_t i = 0; i < wd->ImageCount; i++) - { - ImGui_ImplVulkanH_Frame* fd = &wd->Frames[i]; - info.image = fd->Backbuffer; - err = vkCreateImageView(device, &info, allocator, &fd->BackbufferView); - check_vk_result(err); - } - } - - // Create Framebuffer - if (wd->UseDynamicRendering == false) - { - VkImageView attachment[1]; - VkFramebufferCreateInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; - info.renderPass = wd->RenderPass; - info.attachmentCount = 1; - info.pAttachments = attachment; - info.width = wd->Width; - info.height = wd->Height; - info.layers = 1; - for (uint32_t i = 0; i < wd->ImageCount; i++) - { - ImGui_ImplVulkanH_Frame* fd = &wd->Frames[i]; - attachment[0] = fd->BackbufferView; - err = vkCreateFramebuffer(device, &info, allocator, &fd->Framebuffer); - check_vk_result(err); - } - } -} - -// Create or resize window -void ImGui_ImplVulkanH_CreateOrResizeWindow(VkInstance instance, VkPhysicalDevice physical_device, VkDevice device, ImGui_ImplVulkanH_Window* wd, uint32_t queue_family, const VkAllocationCallbacks* allocator, int width, int height, uint32_t min_image_count) -{ - IM_ASSERT(g_FunctionsLoaded && "Need to call ImGui_ImplVulkan_LoadFunctions() if IMGUI_IMPL_VULKAN_NO_PROTOTYPES or VK_NO_PROTOTYPES are set!"); - (void)instance; - ImGui_ImplVulkanH_CreateWindowSwapChain(physical_device, device, wd, allocator, width, height, min_image_count); - ImGui_ImplVulkanH_CreateWindowCommandBuffers(physical_device, device, wd, queue_family, allocator); - - // FIXME: to submit the command buffer, we need a queue. In the examples folder, the ImGui_ImplVulkanH_CreateOrResizeWindow function is called - // before the ImGui_ImplVulkan_Init function, so we don't have access to the queue yet. Here we have the queue_family that we can use to grab - // a queue from the device and submit the command buffer. It would be better to have access to the queue as suggested in the FIXME below. - VkCommandPool command_pool; - VkCommandPoolCreateInfo pool_info = {}; - pool_info.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO; - pool_info.queueFamilyIndex = queue_family; - pool_info.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT; - VkResult err = vkCreateCommandPool(device, &pool_info, allocator, &command_pool); - check_vk_result(err); - - VkFenceCreateInfo fence_info = {}; - fence_info.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO; - VkFence fence; - err = vkCreateFence(device, &fence_info, allocator, &fence); - check_vk_result(err); - - VkCommandBufferAllocateInfo alloc_info = {}; - alloc_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO; - alloc_info.commandPool = command_pool; - alloc_info.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY; - alloc_info.commandBufferCount = 1; - VkCommandBuffer command_buffer; - err = vkAllocateCommandBuffers(device, &alloc_info, &command_buffer); - check_vk_result(err); - - VkCommandBufferBeginInfo begin_info = {}; - begin_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; - begin_info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT; - err = vkBeginCommandBuffer(command_buffer, &begin_info); - check_vk_result(err); - - // Transition the images to the correct layout for rendering - for (uint32_t i = 0; i < wd->ImageCount; i++) - { - VkImageMemoryBarrier barrier = {}; - barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER; - barrier.image = wd->Frames[i].Backbuffer; - barrier.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED; - barrier.newLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; - barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; - barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; - barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - barrier.subresourceRange.levelCount = 1; - barrier.subresourceRange.layerCount = 1; - vkCmdPipelineBarrier(command_buffer, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, 0, 0, nullptr, 0, nullptr, 1, &barrier); - } - - err = vkEndCommandBuffer(command_buffer); - check_vk_result(err); - VkSubmitInfo submit_info = {}; - submit_info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; - submit_info.commandBufferCount = 1; - submit_info.pCommandBuffers = &command_buffer; - - VkQueue queue; - vkGetDeviceQueue(device, queue_family, 0, &queue); - err = vkQueueSubmit(queue, 1, &submit_info, fence); - check_vk_result(err); - err = vkWaitForFences(device, 1, &fence, VK_TRUE, UINT64_MAX); - check_vk_result(err); - err = vkResetFences(device, 1, &fence); - check_vk_result(err); - - err = vkResetCommandPool(device, command_pool, 0); - check_vk_result(err); - - // Destroy command buffer and fence and command pool - vkFreeCommandBuffers(device, command_pool, 1, &command_buffer); - vkDestroyCommandPool(device, command_pool, allocator); - vkDestroyFence(device, fence, allocator); - command_pool = VK_NULL_HANDLE; - command_buffer = VK_NULL_HANDLE; - fence = VK_NULL_HANDLE; - queue = VK_NULL_HANDLE; -} - -void ImGui_ImplVulkanH_DestroyWindow(VkInstance instance, VkDevice device, ImGui_ImplVulkanH_Window* wd, const VkAllocationCallbacks* allocator) -{ - vkDeviceWaitIdle(device); // FIXME: We could wait on the Queue if we had the queue in wd-> (otherwise VulkanH functions can't use globals) - //vkQueueWaitIdle(bd->Queue); - - for (uint32_t i = 0; i < wd->ImageCount; i++) - ImGui_ImplVulkanH_DestroyFrame(device, &wd->Frames[i], allocator); - for (uint32_t i = 0; i < wd->SemaphoreCount; i++) - ImGui_ImplVulkanH_DestroyFrameSemaphores(device, &wd->FrameSemaphores[i], allocator); - wd->Frames.clear(); - wd->FrameSemaphores.clear(); - vkDestroyPipeline(device, wd->Pipeline, allocator); - vkDestroyRenderPass(device, wd->RenderPass, allocator); - vkDestroySwapchainKHR(device, wd->Swapchain, allocator); - vkDestroySurfaceKHR(instance, wd->Surface, allocator); - - *wd = ImGui_ImplVulkanH_Window(); -} - -void ImGui_ImplVulkanH_DestroyFrame(VkDevice device, ImGui_ImplVulkanH_Frame* fd, const VkAllocationCallbacks* allocator) -{ - vkDestroyFence(device, fd->Fence, allocator); - vkFreeCommandBuffers(device, fd->CommandPool, 1, &fd->CommandBuffer); - vkDestroyCommandPool(device, fd->CommandPool, allocator); - fd->Fence = VK_NULL_HANDLE; - fd->CommandBuffer = VK_NULL_HANDLE; - fd->CommandPool = VK_NULL_HANDLE; - - vkDestroyImageView(device, fd->BackbufferView, allocator); - vkDestroyFramebuffer(device, fd->Framebuffer, allocator); -} - -void ImGui_ImplVulkanH_DestroyFrameSemaphores(VkDevice device, ImGui_ImplVulkanH_FrameSemaphores* fsd, const VkAllocationCallbacks* allocator) -{ - vkDestroySemaphore(device, fsd->ImageAcquiredSemaphore, allocator); - vkDestroySemaphore(device, fsd->RenderCompleteSemaphore, allocator); - fsd->ImageAcquiredSemaphore = fsd->RenderCompleteSemaphore = VK_NULL_HANDLE; -} - -//----------------------------------------------------------------------------- - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_vulkan.h b/libs/imgui-1.92.1/backends/imgui_impl_vulkan.h deleted file mode 100644 index 4baa983..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_vulkan.h +++ /dev/null @@ -1,223 +0,0 @@ -// dear imgui: Renderer Backend for Vulkan -// This needs to be used along with a Platform Backend (e.g. GLFW, SDL, Win32, custom..) - -// Implemented features: -// [!] Renderer: User texture binding. Use 'VkDescriptorSet' as texture identifier. Call ImGui_ImplVulkan_AddTexture() to register one. Read the FAQ about ImTextureID/ImTextureRef + https://github.com/ocornut/imgui/pull/914 for discussions. -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures). -// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'. - -// The aim of imgui_impl_vulkan.h/.cpp is to be usable in your engine without any modification. -// IF YOU FEEL YOU NEED TO MAKE ANY CHANGE TO THIS CODE, please share them and your feedback at https://github.com/ocornut/imgui/ - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// Important note to the reader who wish to integrate imgui_impl_vulkan.cpp/.h in their own engine/app. -// - Common ImGui_ImplVulkan_XXX functions and structures are used to interface with imgui_impl_vulkan.cpp/.h. -// You will use those if you want to use this rendering backend in your engine/app. -// - Helper ImGui_ImplVulkanH_XXX functions and structures are only used by this example (main.cpp) and by -// the backend itself (imgui_impl_vulkan.cpp), but should PROBABLY NOT be used by your own engine/app code. -// Read comments in imgui_impl_vulkan.h. - -#pragma once -#ifndef IMGUI_DISABLE -#include "imgui.h" // IMGUI_IMPL_API - -// [Configuration] in order to use a custom Vulkan function loader: -// (1) You'll need to disable default Vulkan function prototypes. -// We provide a '#define IMGUI_IMPL_VULKAN_NO_PROTOTYPES' convenience configuration flag. -// In order to make sure this is visible from the imgui_impl_vulkan.cpp compilation unit: -// - Add '#define IMGUI_IMPL_VULKAN_NO_PROTOTYPES' in your imconfig.h file -// - Or as a compilation flag in your build system -// - Or uncomment here (not recommended because you'd be modifying imgui sources!) -// - Do not simply add it in a .cpp file! -// (2) Call ImGui_ImplVulkan_LoadFunctions() before ImGui_ImplVulkan_Init() with your custom function. -// If you have no idea what this is, leave it alone! -//#define IMGUI_IMPL_VULKAN_NO_PROTOTYPES - -// Convenience support for Volk -// (you can also technically use IMGUI_IMPL_VULKAN_NO_PROTOTYPES + wrap Volk via ImGui_ImplVulkan_LoadFunctions().) -//#define IMGUI_IMPL_VULKAN_USE_VOLK - -#if defined(IMGUI_IMPL_VULKAN_NO_PROTOTYPES) && !defined(VK_NO_PROTOTYPES) -#define VK_NO_PROTOTYPES -#endif -#if defined(VK_USE_PLATFORM_WIN32_KHR) && !defined(NOMINMAX) -#define NOMINMAX -#endif - -// Vulkan includes -#ifdef IMGUI_IMPL_VULKAN_USE_VOLK -#include -#else -#include -#endif -#if defined(VK_VERSION_1_3) || defined(VK_KHR_dynamic_rendering) -#define IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING -#endif - -// Backend uses a small number of descriptors per font atlas + as many as additional calls done to ImGui_ImplVulkan_AddTexture(). -#define IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE (8) // Minimum per atlas - -// Initialization data, for ImGui_ImplVulkan_Init() -// [Please zero-clear before use!] -// - About descriptor pool: -// - A VkDescriptorPool should be created with VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, -// and must contain a pool size large enough to hold a small number of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER descriptors. -// - As an convenience, by setting DescriptorPoolSize > 0 the backend will create one for you. -// - About dynamic rendering: -// - When using dynamic rendering, set UseDynamicRendering=true and fill PipelineRenderingCreateInfo structure. -struct ImGui_ImplVulkan_InitInfo -{ - uint32_t ApiVersion; // Fill with API version of Instance, e.g. VK_API_VERSION_1_3 or your value of VkApplicationInfo::apiVersion. May be lower than header version (VK_HEADER_VERSION_COMPLETE) - VkInstance Instance; - VkPhysicalDevice PhysicalDevice; - VkDevice Device; - uint32_t QueueFamily; - VkQueue Queue; - VkDescriptorPool DescriptorPool; // See requirements in note above; ignored if using DescriptorPoolSize > 0 - VkRenderPass RenderPass; // Ignored if using dynamic rendering - uint32_t MinImageCount; // >= 2 - uint32_t ImageCount; // >= MinImageCount - VkSampleCountFlagBits MSAASamples; // 0 defaults to VK_SAMPLE_COUNT_1_BIT - - // (Optional) - VkPipelineCache PipelineCache; - uint32_t Subpass; - - // (Optional) Set to create internal descriptor pool instead of using DescriptorPool - uint32_t DescriptorPoolSize; - - // (Optional) Dynamic Rendering - // Need to explicitly enable VK_KHR_dynamic_rendering extension to use this, even for Vulkan 1.3. - bool UseDynamicRendering; -#ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING - VkPipelineRenderingCreateInfoKHR PipelineRenderingCreateInfo; -#endif - - // (Optional) Allocation, Debugging - const VkAllocationCallbacks* Allocator; - void (*CheckVkResultFn)(VkResult err); - VkDeviceSize MinAllocationSize; // Minimum allocation size. Set to 1024*1024 to satisfy zealous best practices validation layer and waste a little memory. -}; - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info); -IMGUI_IMPL_API void ImGui_ImplVulkan_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplVulkan_NewFrame(); -IMGUI_IMPL_API void ImGui_ImplVulkan_RenderDrawData(ImDrawData* draw_data, VkCommandBuffer command_buffer, VkPipeline pipeline = VK_NULL_HANDLE); -IMGUI_IMPL_API void ImGui_ImplVulkan_SetMinImageCount(uint32_t min_image_count); // To override MinImageCount after initialization (e.g. if swap chain is recreated) - -// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = NULL to handle this manually. -IMGUI_IMPL_API void ImGui_ImplVulkan_UpdateTexture(ImTextureData* tex); - -// Register a texture (VkDescriptorSet == ImTextureID) -// FIXME: This is experimental in the sense that we are unsure how to best design/tackle this problem -// Please post to https://github.com/ocornut/imgui/pull/914 if you have suggestions. -IMGUI_IMPL_API VkDescriptorSet ImGui_ImplVulkan_AddTexture(VkSampler sampler, VkImageView image_view, VkImageLayout image_layout); -IMGUI_IMPL_API void ImGui_ImplVulkan_RemoveTexture(VkDescriptorSet descriptor_set); - -// Optional: load Vulkan functions with a custom function loader -// This is only useful with IMGUI_IMPL_VULKAN_NO_PROTOTYPES / VK_NO_PROTOTYPES -IMGUI_IMPL_API bool ImGui_ImplVulkan_LoadFunctions(uint32_t api_version, PFN_vkVoidFunction(*loader_func)(const char* function_name, void* user_data), void* user_data = nullptr); - -// [BETA] Selected render state data shared with callbacks. -// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplVulkan_RenderDrawData() call. -// (Please open an issue if you feel you need access to more data) -struct ImGui_ImplVulkan_RenderState -{ - VkCommandBuffer CommandBuffer; - VkPipeline Pipeline; - VkPipelineLayout PipelineLayout; -}; - -//------------------------------------------------------------------------- -// Internal / Miscellaneous Vulkan Helpers -//------------------------------------------------------------------------- -// Used by example's main.cpp. Used by multi-viewport features. PROBABLY NOT used by your own engine/app. -// -// You probably do NOT need to use or care about those functions. -// Those functions only exist because: -// 1) they facilitate the readability and maintenance of the multiple main.cpp examples files. -// 2) the multi-viewport / platform window implementation needs them internally. -// Generally we avoid exposing any kind of superfluous high-level helpers in the backends, -// but it is too much code to duplicate everywhere so we exceptionally expose them. -// -// Your engine/app will likely _already_ have code to setup all that stuff (swap chain, -// render pass, frame buffers, etc.). You may read this code if you are curious, but -// it is recommended you use you own custom tailored code to do equivalent work. -// -// We don't provide a strong guarantee that we won't change those functions API. -// -// The ImGui_ImplVulkanH_XXX functions should NOT interact with any of the state used -// by the regular ImGui_ImplVulkan_XXX functions). -//------------------------------------------------------------------------- - -struct ImGui_ImplVulkanH_Frame; -struct ImGui_ImplVulkanH_Window; - -// Helpers -IMGUI_IMPL_API void ImGui_ImplVulkanH_CreateOrResizeWindow(VkInstance instance, VkPhysicalDevice physical_device, VkDevice device, ImGui_ImplVulkanH_Window* wnd, uint32_t queue_family, const VkAllocationCallbacks* allocator, int w, int h, uint32_t min_image_count); -IMGUI_IMPL_API void ImGui_ImplVulkanH_DestroyWindow(VkInstance instance, VkDevice device, ImGui_ImplVulkanH_Window* wnd, const VkAllocationCallbacks* allocator); -IMGUI_IMPL_API VkSurfaceFormatKHR ImGui_ImplVulkanH_SelectSurfaceFormat(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkFormat* request_formats, int request_formats_count, VkColorSpaceKHR request_color_space); -IMGUI_IMPL_API VkPresentModeKHR ImGui_ImplVulkanH_SelectPresentMode(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkPresentModeKHR* request_modes, int request_modes_count); -IMGUI_IMPL_API VkPhysicalDevice ImGui_ImplVulkanH_SelectPhysicalDevice(VkInstance instance); -IMGUI_IMPL_API uint32_t ImGui_ImplVulkanH_SelectQueueFamilyIndex(VkPhysicalDevice physical_device); -IMGUI_IMPL_API int ImGui_ImplVulkanH_GetMinImageCountFromPresentMode(VkPresentModeKHR present_mode); - -// Helper structure to hold the data needed by one rendering frame -// (Used by example's main.cpp. Used by multi-viewport features. Probably NOT used by your own engine/app.) -// [Please zero-clear before use!] -struct ImGui_ImplVulkanH_Frame -{ - VkCommandPool CommandPool; - VkCommandBuffer CommandBuffer; - VkFence Fence; - VkImage Backbuffer; - VkImageView BackbufferView; - VkFramebuffer Framebuffer; -}; - -struct ImGui_ImplVulkanH_FrameSemaphores -{ - VkSemaphore ImageAcquiredSemaphore; - VkSemaphore RenderCompleteSemaphore; -}; - -// Helper structure to hold the data needed by one rendering context into one OS window -// (Used by example's main.cpp. Used by multi-viewport features. Probably NOT used by your own engine/app.) -struct ImGui_ImplVulkanH_Window -{ - int Width; - int Height; - VkSwapchainKHR Swapchain; - VkSurfaceKHR Surface; - VkSurfaceFormatKHR SurfaceFormat; - VkPresentModeKHR PresentMode; - VkRenderPass RenderPass; - VkPipeline Pipeline; // The window pipeline may uses a different VkRenderPass than the one passed in ImGui_ImplVulkan_InitInfo - bool UseDynamicRendering; - bool ClearEnable; - VkClearValue ClearValue; - uint32_t FrameIndex; // Current frame being rendered to (0 <= FrameIndex < FrameInFlightCount) - uint32_t ImageCount; // Number of simultaneous in-flight frames (returned by vkGetSwapchainImagesKHR, usually derived from min_image_count) - uint32_t SemaphoreCount; // Number of simultaneous in-flight frames + 1, to be able to use it in vkAcquireNextImageKHR - uint32_t SemaphoreIndex; // Current set of swapchain wait semaphores we're using (needs to be distinct from per frame data) - ImVector Frames; - ImVector FrameSemaphores; - - ImGui_ImplVulkanH_Window() - { - memset((void*)this, 0, sizeof(*this)); - PresentMode = (VkPresentModeKHR)~0; // Ensure we get an error if user doesn't set this. - ClearEnable = true; - } -}; - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_wgpu.cpp b/libs/imgui-1.92.1/backends/imgui_impl_wgpu.cpp deleted file mode 100644 index c0ec2e3..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_wgpu.cpp +++ /dev/null @@ -1,910 +0,0 @@ -// dear imgui: Renderer for WebGPU -// This needs to be used along with a Platform Binding (e.g. GLFW) -// (Please note that WebGPU is currently experimental, will not run on non-beta browsers, and may break.) - -// Implemented features: -// [X] Renderer: User texture binding. Use 'WGPUTextureView' as ImTextureID. Read the FAQ about ImTextureID/ImTextureRef! -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'. -// [X] Renderer: Texture updates support for dynamic font system (ImGuiBackendFlags_RendererHasTextures). - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// CHANGELOG -// (minor and older changes stripped away, please see git history for details) -// 2025-06-12: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas. (#8465) -// 2025-02-26: Recreate image bind groups during render. (#8426, #8046, #7765, #8027) + Update for latest webgpu-native changes. -// 2024-10-14: Update Dawn support for change of string usages. (#8082, #8083) -// 2024-10-07: Expose selected render state in ImGui_ImplWGPU_RenderState, which you can access in 'void* platform_io.Renderer_RenderState' during draw callbacks. -// 2024-10-07: Changed default texture sampler to Clamp instead of Repeat/Wrap. -// 2024-09-16: Added support for optional IMGUI_IMPL_WEBGPU_BACKEND_DAWN / IMGUI_IMPL_WEBGPU_BACKEND_WGPU define to handle ever-changing native implementations. (#7977) -// 2024-01-22: Added configurable PipelineMultisampleState struct. (#7240) -// 2024-01-22: (Breaking) ImGui_ImplWGPU_Init() now takes a ImGui_ImplWGPU_InitInfo structure instead of variety of parameters, allowing for easier further changes. -// 2024-01-22: Fixed pipeline layout leak. (#7245) -// 2024-01-17: Explicitly fill all of WGPUDepthStencilState since standard removed defaults. -// 2023-07-13: Use WGPUShaderModuleWGSLDescriptor's code instead of source. use WGPUMipmapFilterMode_Linear instead of WGPUFilterMode_Linear. (#6602) -// 2023-04-11: Align buffer sizes. Use WGSL shaders instead of precompiled SPIR-V. -// 2023-04-11: Reorganized backend to pull data from a single structure to facilitate usage with multiple-contexts (all g_XXXX access changed to bd->XXXX). -// 2023-01-25: Revert automatic pipeline layout generation (see https://github.com/gpuweb/gpuweb/issues/2470) -// 2022-11-24: Fixed validation error with default depth buffer settings. -// 2022-11-10: Fixed rendering when a depth buffer is enabled. Added 'WGPUTextureFormat depth_format' parameter to ImGui_ImplWGPU_Init(). -// 2022-10-11: Using 'nullptr' instead of 'NULL' as per our switch to C++11. -// 2021-11-29: Passing explicit buffer sizes to wgpuRenderPassEncoderSetVertexBuffer()/wgpuRenderPassEncoderSetIndexBuffer(). -// 2021-08-24: Fixed for latest specs. -// 2021-05-24: Add support for draw_data->FramebufferScale. -// 2021-05-19: Replaced direct access to ImDrawCmd::TextureId with a call to ImDrawCmd::GetTexID(). (will become a requirement) -// 2021-05-16: Update to latest WebGPU specs (compatible with Emscripten 2.0.20 and Chrome Canary 92). -// 2021-02-18: Change blending equation to preserve alpha in output buffer. -// 2021-01-28: Initial version. - -#include "imgui.h" - -// When targeting native platforms (i.e. NOT emscripten), one of IMGUI_IMPL_WEBGPU_BACKEND_DAWN -// or IMGUI_IMPL_WEBGPU_BACKEND_WGPU must be provided. See imgui_impl_wgpu.h for more details. -#ifndef __EMSCRIPTEN__ - #if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) == defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU) - #error exactly one of IMGUI_IMPL_WEBGPU_BACKEND_DAWN or IMGUI_IMPL_WEBGPU_BACKEND_WGPU must be defined! - #endif -#else - #if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) || defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU) - #error neither IMGUI_IMPL_WEBGPU_BACKEND_DAWN nor IMGUI_IMPL_WEBGPU_BACKEND_WGPU may be defined if targeting emscripten! - #endif -#endif - -#ifndef IMGUI_DISABLE -#include "imgui_impl_wgpu.h" -#include -#include - -#ifdef IMGUI_IMPL_WEBGPU_BACKEND_DAWN -// Dawn renamed WGPUProgrammableStageDescriptor to WGPUComputeState (see: https://github.com/webgpu-native/webgpu-headers/pull/413) -// Using type alias until WGPU adopts the same naming convention (#8369) -using WGPUProgrammableStageDescriptor = WGPUComputeState; -#endif - -// Dear ImGui prototypes from imgui_internal.h -extern ImGuiID ImHashData(const void* data_p, size_t data_size, ImU32 seed); -#define MEMALIGN(_SIZE,_ALIGN) (((_SIZE) + ((_ALIGN) - 1)) & ~((_ALIGN) - 1)) // Memory align (copied from IM_ALIGN() macro). - -// WebGPU data -struct ImGui_ImplWGPU_Texture -{ - WGPUTexture Texture = nullptr; - WGPUTextureView TextureView = nullptr; -}; - -struct RenderResources -{ - WGPUSampler Sampler = nullptr; // Sampler for textures - WGPUBuffer Uniforms = nullptr; // Shader uniforms - WGPUBindGroup CommonBindGroup = nullptr; // Resources bind-group to bind the common resources to pipeline - ImGuiStorage ImageBindGroups; // Resources bind-group to bind the font/image resources to pipeline (this is a key->value map) - WGPUBindGroupLayout ImageBindGroupLayout = nullptr; // Cache layout used for the image bind group. Avoids allocating unnecessary JS objects when working with WebASM -}; - -struct FrameResources -{ - WGPUBuffer IndexBuffer; - WGPUBuffer VertexBuffer; - ImDrawIdx* IndexBufferHost; - ImDrawVert* VertexBufferHost; - int IndexBufferSize; - int VertexBufferSize; -}; - -struct Uniforms -{ - float MVP[4][4]; - float Gamma; -}; - -struct ImGui_ImplWGPU_Data -{ - ImGui_ImplWGPU_InitInfo initInfo; - WGPUDevice wgpuDevice = nullptr; - WGPUQueue defaultQueue = nullptr; - WGPUTextureFormat renderTargetFormat = WGPUTextureFormat_Undefined; - WGPUTextureFormat depthStencilFormat = WGPUTextureFormat_Undefined; - WGPURenderPipeline pipelineState = nullptr; - - RenderResources renderResources; - FrameResources* pFrameResources = nullptr; - unsigned int numFramesInFlight = 0; - unsigned int frameIndex = UINT_MAX; -}; - -// Backend data stored in io.BackendRendererUserData to allow support for multiple Dear ImGui contexts -// It is STRONGLY preferred that you use docking branch with multi-viewports (== single Dear ImGui context + multiple windows) instead of multiple Dear ImGui contexts. -static ImGui_ImplWGPU_Data* ImGui_ImplWGPU_GetBackendData() -{ - return ImGui::GetCurrentContext() ? (ImGui_ImplWGPU_Data*)ImGui::GetIO().BackendRendererUserData : nullptr; -} - -//----------------------------------------------------------------------------- -// SHADERS -//----------------------------------------------------------------------------- - -static const char __shader_vert_wgsl[] = R"( -struct VertexInput { - @location(0) position: vec2, - @location(1) uv: vec2, - @location(2) color: vec4, -}; - -struct VertexOutput { - @builtin(position) position: vec4, - @location(0) color: vec4, - @location(1) uv: vec2, -}; - -struct Uniforms { - mvp: mat4x4, - gamma: f32, -}; - -@group(0) @binding(0) var uniforms: Uniforms; - -@vertex -fn main(in: VertexInput) -> VertexOutput { - var out: VertexOutput; - out.position = uniforms.mvp * vec4(in.position, 0.0, 1.0); - out.color = in.color; - out.uv = in.uv; - return out; -} -)"; - -static const char __shader_frag_wgsl[] = R"( -struct VertexOutput { - @builtin(position) position: vec4, - @location(0) color: vec4, - @location(1) uv: vec2, -}; - -struct Uniforms { - mvp: mat4x4, - gamma: f32, -}; - -@group(0) @binding(0) var uniforms: Uniforms; -@group(0) @binding(1) var s: sampler; -@group(1) @binding(0) var t: texture_2d; - -@fragment -fn main(in: VertexOutput) -> @location(0) vec4 { - let color = in.color * textureSample(t, s, in.uv); - let corrected_color = pow(color.rgb, vec3(uniforms.gamma)); - return vec4(corrected_color, color.a); -} -)"; - -static void SafeRelease(ImDrawIdx*& res) -{ - if (res) - delete[] res; - res = nullptr; -} -static void SafeRelease(ImDrawVert*& res) -{ - if (res) - delete[] res; - res = nullptr; -} -static void SafeRelease(WGPUBindGroupLayout& res) -{ - if (res) - wgpuBindGroupLayoutRelease(res); - res = nullptr; -} -static void SafeRelease(WGPUBindGroup& res) -{ - if (res) - wgpuBindGroupRelease(res); - res = nullptr; -} -static void SafeRelease(WGPUBuffer& res) -{ - if (res) - wgpuBufferRelease(res); - res = nullptr; -} -static void SafeRelease(WGPUPipelineLayout& res) -{ - if (res) - wgpuPipelineLayoutRelease(res); - res = nullptr; -} -static void SafeRelease(WGPURenderPipeline& res) -{ - if (res) - wgpuRenderPipelineRelease(res); - res = nullptr; -} -static void SafeRelease(WGPUSampler& res) -{ - if (res) - wgpuSamplerRelease(res); - res = nullptr; -} -static void SafeRelease(WGPUShaderModule& res) -{ - if (res) - wgpuShaderModuleRelease(res); - res = nullptr; -} -static void SafeRelease(RenderResources& res) -{ - SafeRelease(res.Sampler); - SafeRelease(res.Uniforms); - SafeRelease(res.CommonBindGroup); - SafeRelease(res.ImageBindGroupLayout); -}; - -static void SafeRelease(FrameResources& res) -{ - SafeRelease(res.IndexBuffer); - SafeRelease(res.VertexBuffer); - SafeRelease(res.IndexBufferHost); - SafeRelease(res.VertexBufferHost); -} - -static WGPUProgrammableStageDescriptor ImGui_ImplWGPU_CreateShaderModule(const char* wgsl_source) -{ - ImGui_ImplWGPU_Data* bd = ImGui_ImplWGPU_GetBackendData(); - -#if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) || defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU) - WGPUShaderSourceWGSL wgsl_desc = {}; - wgsl_desc.chain.sType = WGPUSType_ShaderSourceWGSL; - wgsl_desc.code = { wgsl_source, WGPU_STRLEN }; -#else - WGPUShaderModuleWGSLDescriptor wgsl_desc = {}; - wgsl_desc.chain.sType = WGPUSType_ShaderModuleWGSLDescriptor; - wgsl_desc.code = wgsl_source; -#endif - - WGPUShaderModuleDescriptor desc = {}; - desc.nextInChain = reinterpret_cast(&wgsl_desc); - - WGPUProgrammableStageDescriptor stage_desc = {}; - stage_desc.module = wgpuDeviceCreateShaderModule(bd->wgpuDevice, &desc); - -#if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) || defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU) - stage_desc.entryPoint = { "main", WGPU_STRLEN }; -#else - stage_desc.entryPoint = "main"; -#endif - return stage_desc; -} - -static WGPUBindGroup ImGui_ImplWGPU_CreateImageBindGroup(WGPUBindGroupLayout layout, WGPUTextureView texture) -{ - ImGui_ImplWGPU_Data* bd = ImGui_ImplWGPU_GetBackendData(); - WGPUBindGroupEntry image_bg_entries[] = { { nullptr, 0, 0, 0, 0, 0, texture } }; - - WGPUBindGroupDescriptor image_bg_descriptor = {}; - image_bg_descriptor.layout = layout; - image_bg_descriptor.entryCount = sizeof(image_bg_entries) / sizeof(WGPUBindGroupEntry); - image_bg_descriptor.entries = image_bg_entries; - return wgpuDeviceCreateBindGroup(bd->wgpuDevice, &image_bg_descriptor); -} - -static void ImGui_ImplWGPU_SetupRenderState(ImDrawData* draw_data, WGPURenderPassEncoder ctx, FrameResources* fr) -{ - ImGui_ImplWGPU_Data* bd = ImGui_ImplWGPU_GetBackendData(); - - // Setup orthographic projection matrix into our constant buffer - // Our visible imgui space lies from draw_data->DisplayPos (top left) to draw_data->DisplayPos+data_data->DisplaySize (bottom right). - { - float L = draw_data->DisplayPos.x; - float R = draw_data->DisplayPos.x + draw_data->DisplaySize.x; - float T = draw_data->DisplayPos.y; - float B = draw_data->DisplayPos.y + draw_data->DisplaySize.y; - float mvp[4][4] = - { - { 2.0f/(R-L), 0.0f, 0.0f, 0.0f }, - { 0.0f, 2.0f/(T-B), 0.0f, 0.0f }, - { 0.0f, 0.0f, 0.5f, 0.0f }, - { (R+L)/(L-R), (T+B)/(B-T), 0.5f, 1.0f }, - }; - wgpuQueueWriteBuffer(bd->defaultQueue, bd->renderResources.Uniforms, offsetof(Uniforms, MVP), mvp, sizeof(Uniforms::MVP)); - float gamma; - switch (bd->renderTargetFormat) - { - case WGPUTextureFormat_ASTC10x10UnormSrgb: - case WGPUTextureFormat_ASTC10x5UnormSrgb: - case WGPUTextureFormat_ASTC10x6UnormSrgb: - case WGPUTextureFormat_ASTC10x8UnormSrgb: - case WGPUTextureFormat_ASTC12x10UnormSrgb: - case WGPUTextureFormat_ASTC12x12UnormSrgb: - case WGPUTextureFormat_ASTC4x4UnormSrgb: - case WGPUTextureFormat_ASTC5x5UnormSrgb: - case WGPUTextureFormat_ASTC6x5UnormSrgb: - case WGPUTextureFormat_ASTC6x6UnormSrgb: - case WGPUTextureFormat_ASTC8x5UnormSrgb: - case WGPUTextureFormat_ASTC8x6UnormSrgb: - case WGPUTextureFormat_ASTC8x8UnormSrgb: - case WGPUTextureFormat_BC1RGBAUnormSrgb: - case WGPUTextureFormat_BC2RGBAUnormSrgb: - case WGPUTextureFormat_BC3RGBAUnormSrgb: - case WGPUTextureFormat_BC7RGBAUnormSrgb: - case WGPUTextureFormat_BGRA8UnormSrgb: - case WGPUTextureFormat_ETC2RGB8A1UnormSrgb: - case WGPUTextureFormat_ETC2RGB8UnormSrgb: - case WGPUTextureFormat_ETC2RGBA8UnormSrgb: - case WGPUTextureFormat_RGBA8UnormSrgb: - gamma = 2.2f; - break; - default: - gamma = 1.0f; - } - wgpuQueueWriteBuffer(bd->defaultQueue, bd->renderResources.Uniforms, offsetof(Uniforms, Gamma), &gamma, sizeof(Uniforms::Gamma)); - } - - // Setup viewport - wgpuRenderPassEncoderSetViewport(ctx, 0, 0, draw_data->FramebufferScale.x * draw_data->DisplaySize.x, draw_data->FramebufferScale.y * draw_data->DisplaySize.y, 0, 1); - - // Bind shader and vertex buffers - wgpuRenderPassEncoderSetVertexBuffer(ctx, 0, fr->VertexBuffer, 0, fr->VertexBufferSize * sizeof(ImDrawVert)); - wgpuRenderPassEncoderSetIndexBuffer(ctx, fr->IndexBuffer, sizeof(ImDrawIdx) == 2 ? WGPUIndexFormat_Uint16 : WGPUIndexFormat_Uint32, 0, fr->IndexBufferSize * sizeof(ImDrawIdx)); - wgpuRenderPassEncoderSetPipeline(ctx, bd->pipelineState); - wgpuRenderPassEncoderSetBindGroup(ctx, 0, bd->renderResources.CommonBindGroup, 0, nullptr); - - // Setup blend factor - WGPUColor blend_color = { 0.f, 0.f, 0.f, 0.f }; - wgpuRenderPassEncoderSetBlendConstant(ctx, &blend_color); -} - -// Render function -// (this used to be set in io.RenderDrawListsFn and called by ImGui::Render(), but you can now call this directly from your main loop) -void ImGui_ImplWGPU_RenderDrawData(ImDrawData* draw_data, WGPURenderPassEncoder pass_encoder) -{ - // Avoid rendering when minimized - int fb_width = (int)(draw_data->DisplaySize.x * draw_data->FramebufferScale.x); - int fb_height = (int)(draw_data->DisplaySize.y * draw_data->FramebufferScale.y); - if (fb_width <= 0 || fb_height <= 0 || draw_data->CmdListsCount == 0) - return; - - // Catch up with texture updates. Most of the times, the list will have 1 element with an OK status, aka nothing to do. - // (This almost always points to ImGui::GetPlatformIO().Textures[] but is part of ImDrawData to allow overriding or disabling texture updates). - if (draw_data->Textures != nullptr) - for (ImTextureData* tex : *draw_data->Textures) - if (tex->Status != ImTextureStatus_OK) - ImGui_ImplWGPU_UpdateTexture(tex); - - // FIXME: Assuming that this only gets called once per frame! - // If not, we can't just re-allocate the IB or VB, we'll have to do a proper allocator. - ImGui_ImplWGPU_Data* bd = ImGui_ImplWGPU_GetBackendData(); - bd->frameIndex = bd->frameIndex + 1; - FrameResources* fr = &bd->pFrameResources[bd->frameIndex % bd->numFramesInFlight]; - - // Create and grow vertex/index buffers if needed - if (fr->VertexBuffer == nullptr || fr->VertexBufferSize < draw_data->TotalVtxCount) - { - if (fr->VertexBuffer) - { - wgpuBufferDestroy(fr->VertexBuffer); - wgpuBufferRelease(fr->VertexBuffer); - } - SafeRelease(fr->VertexBufferHost); - fr->VertexBufferSize = draw_data->TotalVtxCount + 5000; - - WGPUBufferDescriptor vb_desc = - { - nullptr, - "Dear ImGui Vertex buffer", -#if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) || defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU) - WGPU_STRLEN, -#endif - WGPUBufferUsage_CopyDst | WGPUBufferUsage_Vertex, - MEMALIGN(fr->VertexBufferSize * sizeof(ImDrawVert), 4), - false - }; - fr->VertexBuffer = wgpuDeviceCreateBuffer(bd->wgpuDevice, &vb_desc); - if (!fr->VertexBuffer) - return; - - fr->VertexBufferHost = new ImDrawVert[fr->VertexBufferSize]; - } - if (fr->IndexBuffer == nullptr || fr->IndexBufferSize < draw_data->TotalIdxCount) - { - if (fr->IndexBuffer) - { - wgpuBufferDestroy(fr->IndexBuffer); - wgpuBufferRelease(fr->IndexBuffer); - } - SafeRelease(fr->IndexBufferHost); - fr->IndexBufferSize = draw_data->TotalIdxCount + 10000; - - WGPUBufferDescriptor ib_desc = - { - nullptr, - "Dear ImGui Index buffer", -#if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) || defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU) - WGPU_STRLEN, -#endif - WGPUBufferUsage_CopyDst | WGPUBufferUsage_Index, - MEMALIGN(fr->IndexBufferSize * sizeof(ImDrawIdx), 4), - false - }; - fr->IndexBuffer = wgpuDeviceCreateBuffer(bd->wgpuDevice, &ib_desc); - if (!fr->IndexBuffer) - return; - - fr->IndexBufferHost = new ImDrawIdx[fr->IndexBufferSize]; - } - - // Upload vertex/index data into a single contiguous GPU buffer - ImDrawVert* vtx_dst = (ImDrawVert*)fr->VertexBufferHost; - ImDrawIdx* idx_dst = (ImDrawIdx*)fr->IndexBufferHost; - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - memcpy(vtx_dst, draw_list->VtxBuffer.Data, draw_list->VtxBuffer.Size * sizeof(ImDrawVert)); - memcpy(idx_dst, draw_list->IdxBuffer.Data, draw_list->IdxBuffer.Size * sizeof(ImDrawIdx)); - vtx_dst += draw_list->VtxBuffer.Size; - idx_dst += draw_list->IdxBuffer.Size; - } - int64_t vb_write_size = MEMALIGN((char*)vtx_dst - (char*)fr->VertexBufferHost, 4); - int64_t ib_write_size = MEMALIGN((char*)idx_dst - (char*)fr->IndexBufferHost, 4); - wgpuQueueWriteBuffer(bd->defaultQueue, fr->VertexBuffer, 0, fr->VertexBufferHost, vb_write_size); - wgpuQueueWriteBuffer(bd->defaultQueue, fr->IndexBuffer, 0, fr->IndexBufferHost, ib_write_size); - - // Setup desired render state - ImGui_ImplWGPU_SetupRenderState(draw_data, pass_encoder, fr); - - // Setup render state structure (for callbacks and custom texture bindings) - ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); - ImGui_ImplWGPU_RenderState render_state; - render_state.Device = bd->wgpuDevice; - render_state.RenderPassEncoder = pass_encoder; - platform_io.Renderer_RenderState = &render_state; - - // Render command lists - // (Because we merged all buffers into a single one, we maintain our own offset into them) - int global_vtx_offset = 0; - int global_idx_offset = 0; - ImVec2 clip_scale = draw_data->FramebufferScale; - ImVec2 clip_off = draw_data->DisplayPos; - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* draw_list = draw_data->CmdLists[n]; - for (int cmd_i = 0; cmd_i < draw_list->CmdBuffer.Size; cmd_i++) - { - const ImDrawCmd* pcmd = &draw_list->CmdBuffer[cmd_i]; - if (pcmd->UserCallback != nullptr) - { - // User callback, registered via ImDrawList::AddCallback() - // (ImDrawCallback_ResetRenderState is a special callback value used by the user to request the renderer to reset render state.) - if (pcmd->UserCallback == ImDrawCallback_ResetRenderState) - ImGui_ImplWGPU_SetupRenderState(draw_data, pass_encoder, fr); - else - pcmd->UserCallback(draw_list, pcmd); - } - else - { - // Bind custom texture - ImTextureID tex_id = pcmd->GetTexID(); - ImGuiID tex_id_hash = ImHashData(&tex_id, sizeof(tex_id), 0); - WGPUBindGroup bind_group = (WGPUBindGroup)bd->renderResources.ImageBindGroups.GetVoidPtr(tex_id_hash); - if (!bind_group) - { - bind_group = ImGui_ImplWGPU_CreateImageBindGroup(bd->renderResources.ImageBindGroupLayout, (WGPUTextureView)tex_id); - bd->renderResources.ImageBindGroups.SetVoidPtr(tex_id_hash, bind_group); - } - wgpuRenderPassEncoderSetBindGroup(pass_encoder, 1, (WGPUBindGroup)bind_group, 0, nullptr); - - // Project scissor/clipping rectangles into framebuffer space - ImVec2 clip_min((pcmd->ClipRect.x - clip_off.x) * clip_scale.x, (pcmd->ClipRect.y - clip_off.y) * clip_scale.y); - ImVec2 clip_max((pcmd->ClipRect.z - clip_off.x) * clip_scale.x, (pcmd->ClipRect.w - clip_off.y) * clip_scale.y); - - // Clamp to viewport as wgpuRenderPassEncoderSetScissorRect() won't accept values that are off bounds - if (clip_min.x < 0.0f) { clip_min.x = 0.0f; } - if (clip_min.y < 0.0f) { clip_min.y = 0.0f; } - if (clip_max.x > fb_width) { clip_max.x = (float)fb_width; } - if (clip_max.y > fb_height) { clip_max.y = (float)fb_height; } - if (clip_max.x <= clip_min.x || clip_max.y <= clip_min.y) - continue; - - // Apply scissor/clipping rectangle, Draw - wgpuRenderPassEncoderSetScissorRect(pass_encoder, (uint32_t)clip_min.x, (uint32_t)clip_min.y, (uint32_t)(clip_max.x - clip_min.x), (uint32_t)(clip_max.y - clip_min.y)); - wgpuRenderPassEncoderDrawIndexed(pass_encoder, pcmd->ElemCount, 1, pcmd->IdxOffset + global_idx_offset, pcmd->VtxOffset + global_vtx_offset, 0); - } - } - global_idx_offset += draw_list->IdxBuffer.Size; - global_vtx_offset += draw_list->VtxBuffer.Size; - } - - // Remove all ImageBindGroups - ImGuiStorage& image_bind_groups = bd->renderResources.ImageBindGroups; - for (int i = 0; i < image_bind_groups.Data.Size; i++) - { - WGPUBindGroup bind_group = (WGPUBindGroup)image_bind_groups.Data[i].val_p; - SafeRelease(bind_group); - } - image_bind_groups.Data.resize(0); - - platform_io.Renderer_RenderState = nullptr; -} - -static void ImGui_ImplWGPU_DestroyTexture(ImTextureData* tex) -{ - ImGui_ImplWGPU_Texture* backend_tex = (ImGui_ImplWGPU_Texture*)tex->BackendUserData; - if (backend_tex == nullptr) - return; - - IM_ASSERT(backend_tex->TextureView == (WGPUTextureView)(intptr_t)tex->TexID); - wgpuTextureViewRelease(backend_tex->TextureView); - wgpuTextureRelease(backend_tex->Texture); - IM_DELETE(backend_tex); - - // Clear identifiers and mark as destroyed (in order to allow e.g. calling InvalidateDeviceObjects while running) - tex->SetTexID(ImTextureID_Invalid); - tex->SetStatus(ImTextureStatus_Destroyed); - tex->BackendUserData = nullptr; -} - -void ImGui_ImplWGPU_UpdateTexture(ImTextureData* tex) -{ - ImGui_ImplWGPU_Data* bd = ImGui_ImplWGPU_GetBackendData(); - if (tex->Status == ImTextureStatus_WantCreate) - { - // Create and upload new texture to graphics system - //IMGUI_DEBUG_LOG("UpdateTexture #%03d: WantCreate %dx%d\n", tex->UniqueID, tex->Width, tex->Height); - IM_ASSERT(tex->TexID == ImTextureID_Invalid && tex->BackendUserData == nullptr); - IM_ASSERT(tex->Format == ImTextureFormat_RGBA32); - ImGui_ImplWGPU_Texture* backend_tex = IM_NEW(ImGui_ImplWGPU_Texture)(); - - // Create texture - WGPUTextureDescriptor tex_desc = {}; -#if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) || defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU) - tex_desc.label = { "Dear ImGui Texture", WGPU_STRLEN }; -#else - tex_desc.label = "Dear ImGui Texture"; -#endif - tex_desc.dimension = WGPUTextureDimension_2D; - tex_desc.size.width = tex->Width; - tex_desc.size.height = tex->Height; - tex_desc.size.depthOrArrayLayers = 1; - tex_desc.sampleCount = 1; - tex_desc.format = WGPUTextureFormat_RGBA8Unorm; - tex_desc.mipLevelCount = 1; - tex_desc.usage = WGPUTextureUsage_CopyDst | WGPUTextureUsage_TextureBinding; - backend_tex->Texture = wgpuDeviceCreateTexture(bd->wgpuDevice, &tex_desc); - - // Create texture view - WGPUTextureViewDescriptor tex_view_desc = {}; - tex_view_desc.format = WGPUTextureFormat_RGBA8Unorm; - tex_view_desc.dimension = WGPUTextureViewDimension_2D; - tex_view_desc.baseMipLevel = 0; - tex_view_desc.mipLevelCount = 1; - tex_view_desc.baseArrayLayer = 0; - tex_view_desc.arrayLayerCount = 1; - tex_view_desc.aspect = WGPUTextureAspect_All; - backend_tex->TextureView = wgpuTextureCreateView(backend_tex->Texture, &tex_view_desc); - - // Store identifiers - tex->SetTexID((ImTextureID)(intptr_t)backend_tex->TextureView); - tex->BackendUserData = backend_tex; - // We don't set tex->Status to ImTextureStatus_OK to let the code fallthrough below. - } - - if (tex->Status == ImTextureStatus_WantCreate || tex->Status == ImTextureStatus_WantUpdates) - { - ImGui_ImplWGPU_Texture* backend_tex = (ImGui_ImplWGPU_Texture*)tex->BackendUserData; - IM_ASSERT(tex->Format == ImTextureFormat_RGBA32); - - // We could use the smaller rect on _WantCreate but using the full rect allows us to clear the texture. - const int upload_x = (tex->Status == ImTextureStatus_WantCreate) ? 0 : tex->UpdateRect.x; - const int upload_y = (tex->Status == ImTextureStatus_WantCreate) ? 0 : tex->UpdateRect.y; - const int upload_w = (tex->Status == ImTextureStatus_WantCreate) ? tex->Width : tex->UpdateRect.w; - const int upload_h = (tex->Status == ImTextureStatus_WantCreate) ? tex->Height : tex->UpdateRect.h; - - // Update full texture or selected blocks. We only ever write to textures regions which have never been used before! - // This backend choose to use tex->UpdateRect but you can use tex->Updates[] to upload individual regions. -#if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) || defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU) - WGPUTexelCopyTextureInfo dst_view = {}; -#else - WGPUImageCopyTexture dst_view = {}; -#endif - dst_view.texture = backend_tex->Texture; - dst_view.mipLevel = 0; - dst_view.origin = { (uint32_t)upload_x, (uint32_t)upload_y, 0 }; - dst_view.aspect = WGPUTextureAspect_All; -#if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) || defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU) - WGPUTexelCopyBufferLayout layout = {}; -#else - WGPUTextureDataLayout layout = {}; -#endif - layout.offset = 0; - layout.bytesPerRow = tex->Width * tex->BytesPerPixel; - layout.rowsPerImage = upload_h; - WGPUExtent3D write_size = { (uint32_t)upload_w, (uint32_t)upload_h, 1 }; - wgpuQueueWriteTexture(bd->defaultQueue, &dst_view, tex->GetPixelsAt(upload_x, upload_y), (uint32_t)(tex->Width * upload_h * tex->BytesPerPixel), &layout, &write_size); - tex->SetStatus(ImTextureStatus_OK); - } - if (tex->Status == ImTextureStatus_WantDestroy && tex->UnusedFrames > 0) - ImGui_ImplWGPU_DestroyTexture(tex); -} - -static void ImGui_ImplWGPU_CreateUniformBuffer() -{ - ImGui_ImplWGPU_Data* bd = ImGui_ImplWGPU_GetBackendData(); - WGPUBufferDescriptor ub_desc = - { - nullptr, - "Dear ImGui Uniform buffer", -#if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) || defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU) - WGPU_STRLEN, -#endif - WGPUBufferUsage_CopyDst | WGPUBufferUsage_Uniform, - MEMALIGN(sizeof(Uniforms), 16), - false - }; - bd->renderResources.Uniforms = wgpuDeviceCreateBuffer(bd->wgpuDevice, &ub_desc); -} - -bool ImGui_ImplWGPU_CreateDeviceObjects() -{ - ImGui_ImplWGPU_Data* bd = ImGui_ImplWGPU_GetBackendData(); - if (!bd->wgpuDevice) - return false; - if (bd->pipelineState) - ImGui_ImplWGPU_InvalidateDeviceObjects(); - - // Create render pipeline - WGPURenderPipelineDescriptor graphics_pipeline_desc = {}; - graphics_pipeline_desc.primitive.topology = WGPUPrimitiveTopology_TriangleList; - graphics_pipeline_desc.primitive.stripIndexFormat = WGPUIndexFormat_Undefined; - graphics_pipeline_desc.primitive.frontFace = WGPUFrontFace_CW; - graphics_pipeline_desc.primitive.cullMode = WGPUCullMode_None; - graphics_pipeline_desc.multisample = bd->initInfo.PipelineMultisampleState; - - // Bind group layouts - WGPUBindGroupLayoutEntry common_bg_layout_entries[2] = {}; - common_bg_layout_entries[0].binding = 0; - common_bg_layout_entries[0].visibility = WGPUShaderStage_Vertex | WGPUShaderStage_Fragment; - common_bg_layout_entries[0].buffer.type = WGPUBufferBindingType_Uniform; - common_bg_layout_entries[1].binding = 1; - common_bg_layout_entries[1].visibility = WGPUShaderStage_Fragment; - common_bg_layout_entries[1].sampler.type = WGPUSamplerBindingType_Filtering; - - WGPUBindGroupLayoutEntry image_bg_layout_entries[1] = {}; - image_bg_layout_entries[0].binding = 0; - image_bg_layout_entries[0].visibility = WGPUShaderStage_Fragment; - image_bg_layout_entries[0].texture.sampleType = WGPUTextureSampleType_Float; - image_bg_layout_entries[0].texture.viewDimension = WGPUTextureViewDimension_2D; - - WGPUBindGroupLayoutDescriptor common_bg_layout_desc = {}; - common_bg_layout_desc.entryCount = 2; - common_bg_layout_desc.entries = common_bg_layout_entries; - - WGPUBindGroupLayoutDescriptor image_bg_layout_desc = {}; - image_bg_layout_desc.entryCount = 1; - image_bg_layout_desc.entries = image_bg_layout_entries; - - WGPUBindGroupLayout bg_layouts[2]; - bg_layouts[0] = wgpuDeviceCreateBindGroupLayout(bd->wgpuDevice, &common_bg_layout_desc); - bg_layouts[1] = wgpuDeviceCreateBindGroupLayout(bd->wgpuDevice, &image_bg_layout_desc); - - WGPUPipelineLayoutDescriptor layout_desc = {}; - layout_desc.bindGroupLayoutCount = 2; - layout_desc.bindGroupLayouts = bg_layouts; - graphics_pipeline_desc.layout = wgpuDeviceCreatePipelineLayout(bd->wgpuDevice, &layout_desc); - - // Create the vertex shader - WGPUProgrammableStageDescriptor vertex_shader_desc = ImGui_ImplWGPU_CreateShaderModule(__shader_vert_wgsl); - graphics_pipeline_desc.vertex.module = vertex_shader_desc.module; - graphics_pipeline_desc.vertex.entryPoint = vertex_shader_desc.entryPoint; - - // Vertex input configuration - WGPUVertexAttribute attribute_desc[] = - { -#ifdef IMGUI_IMPL_WEBGPU_BACKEND_DAWN - { nullptr, WGPUVertexFormat_Float32x2, (uint64_t)offsetof(ImDrawVert, pos), 0 }, - { nullptr, WGPUVertexFormat_Float32x2, (uint64_t)offsetof(ImDrawVert, uv), 1 }, - { nullptr, WGPUVertexFormat_Unorm8x4, (uint64_t)offsetof(ImDrawVert, col), 2 }, -#else - { WGPUVertexFormat_Float32x2, (uint64_t)offsetof(ImDrawVert, pos), 0 }, - { WGPUVertexFormat_Float32x2, (uint64_t)offsetof(ImDrawVert, uv), 1 }, - { WGPUVertexFormat_Unorm8x4, (uint64_t)offsetof(ImDrawVert, col), 2 }, -#endif - }; - - WGPUVertexBufferLayout buffer_layouts[1]; - buffer_layouts[0].arrayStride = sizeof(ImDrawVert); - buffer_layouts[0].stepMode = WGPUVertexStepMode_Vertex; - buffer_layouts[0].attributeCount = 3; - buffer_layouts[0].attributes = attribute_desc; - - graphics_pipeline_desc.vertex.bufferCount = 1; - graphics_pipeline_desc.vertex.buffers = buffer_layouts; - - // Create the pixel shader - WGPUProgrammableStageDescriptor pixel_shader_desc = ImGui_ImplWGPU_CreateShaderModule(__shader_frag_wgsl); - - // Create the blending setup - WGPUBlendState blend_state = {}; - blend_state.alpha.operation = WGPUBlendOperation_Add; - blend_state.alpha.srcFactor = WGPUBlendFactor_One; - blend_state.alpha.dstFactor = WGPUBlendFactor_OneMinusSrcAlpha; - blend_state.color.operation = WGPUBlendOperation_Add; - blend_state.color.srcFactor = WGPUBlendFactor_SrcAlpha; - blend_state.color.dstFactor = WGPUBlendFactor_OneMinusSrcAlpha; - - WGPUColorTargetState color_state = {}; - color_state.format = bd->renderTargetFormat; - color_state.blend = &blend_state; - color_state.writeMask = WGPUColorWriteMask_All; - - WGPUFragmentState fragment_state = {}; - fragment_state.module = pixel_shader_desc.module; - fragment_state.entryPoint = pixel_shader_desc.entryPoint; - fragment_state.targetCount = 1; - fragment_state.targets = &color_state; - - graphics_pipeline_desc.fragment = &fragment_state; - - // Create depth-stencil State - WGPUDepthStencilState depth_stencil_state = {}; - depth_stencil_state.format = bd->depthStencilFormat; -#if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) || defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU) - depth_stencil_state.depthWriteEnabled = WGPUOptionalBool_False; -#else - depth_stencil_state.depthWriteEnabled = false; -#endif - depth_stencil_state.depthCompare = WGPUCompareFunction_Always; - depth_stencil_state.stencilFront.compare = WGPUCompareFunction_Always; - depth_stencil_state.stencilFront.failOp = WGPUStencilOperation_Keep; - depth_stencil_state.stencilFront.depthFailOp = WGPUStencilOperation_Keep; - depth_stencil_state.stencilFront.passOp = WGPUStencilOperation_Keep; - depth_stencil_state.stencilBack.compare = WGPUCompareFunction_Always; - depth_stencil_state.stencilBack.failOp = WGPUStencilOperation_Keep; - depth_stencil_state.stencilBack.depthFailOp = WGPUStencilOperation_Keep; - depth_stencil_state.stencilBack.passOp = WGPUStencilOperation_Keep; - - // Configure disabled depth-stencil state - graphics_pipeline_desc.depthStencil = (bd->depthStencilFormat == WGPUTextureFormat_Undefined) ? nullptr : &depth_stencil_state; - - bd->pipelineState = wgpuDeviceCreateRenderPipeline(bd->wgpuDevice, &graphics_pipeline_desc); - - ImGui_ImplWGPU_CreateUniformBuffer(); - - // Create sampler - // (Bilinear sampling is required by default. Set 'io.Fonts->Flags |= ImFontAtlasFlags_NoBakedLines' or 'style.AntiAliasedLinesUseTex = false' to allow point/nearest sampling) - WGPUSamplerDescriptor sampler_desc = {}; - sampler_desc.minFilter = WGPUFilterMode_Linear; - sampler_desc.magFilter = WGPUFilterMode_Linear; - sampler_desc.mipmapFilter = WGPUMipmapFilterMode_Linear; - sampler_desc.addressModeU = WGPUAddressMode_ClampToEdge; - sampler_desc.addressModeV = WGPUAddressMode_ClampToEdge; - sampler_desc.addressModeW = WGPUAddressMode_ClampToEdge; - sampler_desc.maxAnisotropy = 1; - bd->renderResources.Sampler = wgpuDeviceCreateSampler(bd->wgpuDevice, &sampler_desc); - - // Create resource bind group - WGPUBindGroupEntry common_bg_entries[] = - { - { nullptr, 0, bd->renderResources.Uniforms, 0, MEMALIGN(sizeof(Uniforms), 16), 0, 0 }, - { nullptr, 1, 0, 0, 0, bd->renderResources.Sampler, 0 }, - }; - WGPUBindGroupDescriptor common_bg_descriptor = {}; - common_bg_descriptor.layout = bg_layouts[0]; - common_bg_descriptor.entryCount = sizeof(common_bg_entries) / sizeof(WGPUBindGroupEntry); - common_bg_descriptor.entries = common_bg_entries; - bd->renderResources.CommonBindGroup = wgpuDeviceCreateBindGroup(bd->wgpuDevice, &common_bg_descriptor); - bd->renderResources.ImageBindGroupLayout = bg_layouts[1]; - - SafeRelease(vertex_shader_desc.module); - SafeRelease(pixel_shader_desc.module); - SafeRelease(graphics_pipeline_desc.layout); - SafeRelease(bg_layouts[0]); - - return true; -} - -void ImGui_ImplWGPU_InvalidateDeviceObjects() -{ - ImGui_ImplWGPU_Data* bd = ImGui_ImplWGPU_GetBackendData(); - if (!bd->wgpuDevice) - return; - - SafeRelease(bd->pipelineState); - SafeRelease(bd->renderResources); - - // Destroy all textures - for (ImTextureData* tex : ImGui::GetPlatformIO().Textures) - if (tex->RefCount == 1) - ImGui_ImplWGPU_DestroyTexture(tex); - - for (unsigned int i = 0; i < bd->numFramesInFlight; i++) - SafeRelease(bd->pFrameResources[i]); -} - -bool ImGui_ImplWGPU_Init(ImGui_ImplWGPU_InitInfo* init_info) -{ - ImGuiIO& io = ImGui::GetIO(); - IMGUI_CHECKVERSION(); - IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); - - // Setup backend capabilities flags - ImGui_ImplWGPU_Data* bd = IM_NEW(ImGui_ImplWGPU_Data)(); - io.BackendRendererUserData = (void*)bd; -#if defined(__EMSCRIPTEN__) - io.BackendRendererName = "imgui_impl_webgpu_emscripten"; -#elif defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) - io.BackendRendererName = "imgui_impl_webgpu_dawn"; -#elif defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU) - io.BackendRendererName = "imgui_impl_webgpu_wgpu"; -#else - io.BackendRendererName = "imgui_impl_webgpu"; -#endif - io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset; // We can honor the ImDrawCmd::VtxOffset field, allowing for large meshes. - io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures; // We can honor ImGuiPlatformIO::Textures[] requests during render. - - bd->initInfo = *init_info; - bd->wgpuDevice = init_info->Device; - bd->defaultQueue = wgpuDeviceGetQueue(bd->wgpuDevice); - bd->renderTargetFormat = init_info->RenderTargetFormat; - bd->depthStencilFormat = init_info->DepthStencilFormat; - bd->numFramesInFlight = init_info->NumFramesInFlight; - bd->frameIndex = UINT_MAX; - - bd->renderResources.Sampler = nullptr; - bd->renderResources.Uniforms = nullptr; - bd->renderResources.CommonBindGroup = nullptr; - bd->renderResources.ImageBindGroups.Data.reserve(100); - bd->renderResources.ImageBindGroupLayout = nullptr; - - // Create buffers with a default size (they will later be grown as needed) - bd->pFrameResources = new FrameResources[bd->numFramesInFlight]; - for (unsigned int i = 0; i < bd->numFramesInFlight; i++) - { - FrameResources* fr = &bd->pFrameResources[i]; - fr->IndexBuffer = nullptr; - fr->VertexBuffer = nullptr; - fr->IndexBufferHost = nullptr; - fr->VertexBufferHost = nullptr; - fr->IndexBufferSize = 10000; - fr->VertexBufferSize = 5000; - } - - return true; -} - -void ImGui_ImplWGPU_Shutdown() -{ - ImGui_ImplWGPU_Data* bd = ImGui_ImplWGPU_GetBackendData(); - IM_ASSERT(bd != nullptr && "No renderer backend to shutdown, or already shutdown?"); - ImGuiIO& io = ImGui::GetIO(); - - ImGui_ImplWGPU_InvalidateDeviceObjects(); - delete[] bd->pFrameResources; - bd->pFrameResources = nullptr; - wgpuQueueRelease(bd->defaultQueue); - bd->wgpuDevice = nullptr; - bd->numFramesInFlight = 0; - bd->frameIndex = UINT_MAX; - - io.BackendRendererName = nullptr; - io.BackendRendererUserData = nullptr; - io.BackendFlags &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures); - IM_DELETE(bd); -} - -void ImGui_ImplWGPU_NewFrame() -{ - ImGui_ImplWGPU_Data* bd = ImGui_ImplWGPU_GetBackendData(); - if (!bd->pipelineState) - if (!ImGui_ImplWGPU_CreateDeviceObjects()) - IM_ASSERT(0 && "ImGui_ImplWGPU_CreateDeviceObjects() failed!"); -} - -//----------------------------------------------------------------------------- - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_wgpu.h b/libs/imgui-1.92.1/backends/imgui_impl_wgpu.h deleted file mode 100644 index 61d2d23..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_wgpu.h +++ /dev/null @@ -1,71 +0,0 @@ -// dear imgui: Renderer for WebGPU -// This needs to be used along with a Platform Binding (e.g. GLFW) -// (Please note that WebGPU is currently experimental, will not run on non-beta browsers, and may break.) - -// Important note to dawn and/or wgpu users: when targeting native platforms (i.e. NOT emscripten), -// one of IMGUI_IMPL_WEBGPU_BACKEND_DAWN or IMGUI_IMPL_WEBGPU_BACKEND_WGPU must be provided. -// Add #define to your imconfig.h file, or as a compilation flag in your build system. -// This requirement will be removed once WebGPU stabilizes and backends converge on a unified interface. -//#define IMGUI_IMPL_WEBGPU_BACKEND_DAWN -//#define IMGUI_IMPL_WEBGPU_BACKEND_WGPU - -// Implemented features: -// [X] Renderer: User texture binding. Use 'WGPUTextureView' as ImTextureID. Read the FAQ about ImTextureID/ImTextureRef! -// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset). -// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'. -// [X] Renderer: Texture updates support for dynamic font system (ImGuiBackendFlags_RendererHasTextures). - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#pragma once -#include "imgui.h" // IMGUI_IMPL_API -#ifndef IMGUI_DISABLE - -#include - -// Initialization data, for ImGui_ImplWGPU_Init() -struct ImGui_ImplWGPU_InitInfo -{ - WGPUDevice Device; - int NumFramesInFlight = 3; - WGPUTextureFormat RenderTargetFormat = WGPUTextureFormat_Undefined; - WGPUTextureFormat DepthStencilFormat = WGPUTextureFormat_Undefined; - WGPUMultisampleState PipelineMultisampleState = {}; - - ImGui_ImplWGPU_InitInfo() - { - PipelineMultisampleState.count = 1; - PipelineMultisampleState.mask = UINT32_MAX; - PipelineMultisampleState.alphaToCoverageEnabled = false; - } -}; - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplWGPU_Init(ImGui_ImplWGPU_InitInfo* init_info); -IMGUI_IMPL_API void ImGui_ImplWGPU_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplWGPU_NewFrame(); -IMGUI_IMPL_API void ImGui_ImplWGPU_RenderDrawData(ImDrawData* draw_data, WGPURenderPassEncoder pass_encoder); - -// Use if you want to reset your rendering device without losing Dear ImGui state. -IMGUI_IMPL_API bool ImGui_ImplWGPU_CreateDeviceObjects(); -IMGUI_IMPL_API void ImGui_ImplWGPU_InvalidateDeviceObjects(); - -// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = NULL to handle this manually. -IMGUI_IMPL_API void ImGui_ImplWGPU_UpdateTexture(ImTextureData* tex); - -// [BETA] Selected render state data shared with callbacks. -// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplWGPU_RenderDrawData() call. -// (Please open an issue if you feel you need access to more data) -struct ImGui_ImplWGPU_RenderState -{ - WGPUDevice Device; - WGPURenderPassEncoder RenderPassEncoder; -}; - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_win32.cpp b/libs/imgui-1.92.1/backends/imgui_impl_win32.cpp deleted file mode 100644 index d7206b9..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_win32.cpp +++ /dev/null @@ -1,969 +0,0 @@ -// dear imgui: Platform Backend for Windows (standard windows API for 32-bits AND 64-bits applications) -// This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..) - -// Implemented features: -// [X] Platform: Clipboard support (for Win32 this is actually part of core dear imgui) -// [X] Platform: Mouse support. Can discriminate Mouse/TouchScreen/Pen. -// [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy VK_* values are obsolete since 1.87 and not supported since 1.91.5] -// [X] Platform: Gamepad support. -// [X] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// Configuration flags to add in your imconfig file: -//#define IMGUI_IMPL_WIN32_DISABLE_GAMEPAD // Disable gamepad support. This was meaningful before <1.81 but we now load XInput dynamically so the option is now less relevant. - -// CHANGELOG -// (minor and older changes stripped away, please see git history for details) -// 2025-04-30: Inputs: Fixed an issue where externally losing mouse capture (due to e.g. focus loss) would fail to claim it again the next subsequent click. (#8594) -// 2025-03-10: When dealing with OEM keys, use scancodes instead of translated keycodes to choose ImGuiKey values. (#7136, #7201, #7206, #7306, #7670, #7672, #8468) -// 2025-02-18: Added ImGuiMouseCursor_Wait and ImGuiMouseCursor_Progress mouse cursor support. -// 2024-07-08: Inputs: Fixed ImGuiMod_Super being mapped to VK_APPS instead of VK_LWIN||VK_RWIN. (#7768) -// 2023-10-05: Inputs: Added support for extra ImGuiKey values: F13 to F24 function keys, app back/forward keys. -// 2023-09-25: Inputs: Synthesize key-down event on key-up for VK_SNAPSHOT / ImGuiKey_PrintScreen as Windows doesn't emit it (same behavior as GLFW/SDL). -// 2023-09-07: Inputs: Added support for keyboard codepage conversion for when application is compiled in MBCS mode and using a non-Unicode window. -// 2023-04-19: Added ImGui_ImplWin32_InitForOpenGL() to facilitate combining raw Win32/Winapi with OpenGL. (#3218) -// 2023-04-04: Inputs: Added support for io.AddMouseSourceEvent() to discriminate ImGuiMouseSource_Mouse/ImGuiMouseSource_TouchScreen/ImGuiMouseSource_Pen. (#2702) -// 2023-02-15: Inputs: Use WM_NCMOUSEMOVE / WM_NCMOUSELEAVE to track mouse position over non-client area (e.g. OS decorations) when app is not focused. (#6045, #6162) -// 2023-02-02: Inputs: Flipping WM_MOUSEHWHEEL (horizontal mouse-wheel) value to match other backends and offer consistent horizontal scrolling direction. (#4019, #6096, #1463) -// 2022-10-11: Using 'nullptr' instead of 'NULL' as per our switch to C++11. -// 2022-09-28: Inputs: Convert WM_CHAR values with MultiByteToWideChar() when window class was registered as MBCS (not Unicode). -// 2022-09-26: Inputs: Renamed ImGuiKey_ModXXX introduced in 1.87 to ImGuiMod_XXX (old names still supported). -// 2022-01-26: Inputs: replaced short-lived io.AddKeyModsEvent() (added two weeks ago) with io.AddKeyEvent() using ImGuiKey_ModXXX flags. Sorry for the confusion. -// 2021-01-20: Inputs: calling new io.AddKeyAnalogEvent() for gamepad support, instead of writing directly to io.NavInputs[]. -// 2022-01-17: Inputs: calling new io.AddMousePosEvent(), io.AddMouseButtonEvent(), io.AddMouseWheelEvent() API (1.87+). -// 2022-01-17: Inputs: always update key mods next and before a key event (not in NewFrame) to fix input queue with very low framerates. -// 2022-01-12: Inputs: Update mouse inputs using WM_MOUSEMOVE/WM_MOUSELEAVE + fallback to provide it when focused but not hovered/captured. More standard and will allow us to pass it to future input queue API. -// 2022-01-12: Inputs: Maintain our own copy of MouseButtonsDown mask instead of using ImGui::IsAnyMouseDown() which will be obsoleted. -// 2022-01-10: Inputs: calling new io.AddKeyEvent(), io.AddKeyModsEvent() + io.SetKeyEventNativeData() API (1.87+). Support for full ImGuiKey range. -// 2021-12-16: Inputs: Fill VK_LCONTROL/VK_RCONTROL/VK_LSHIFT/VK_RSHIFT/VK_LMENU/VK_RMENU for completeness. -// 2021-08-17: Calling io.AddFocusEvent() on WM_SETFOCUS/WM_KILLFOCUS messages. -// 2021-08-02: Inputs: Fixed keyboard modifiers being reported when host window doesn't have focus. -// 2021-07-29: Inputs: MousePos is correctly reported when the host platform window is hovered but not focused (using TrackMouseEvent() to receive WM_MOUSELEAVE events). -// 2021-06-29: Reorganized backend to pull data from a single structure to facilitate usage with multiple-contexts (all g_XXXX access changed to bd->XXXX). -// 2021-06-08: Fixed ImGui_ImplWin32_EnableDpiAwareness() and ImGui_ImplWin32_GetDpiScaleForMonitor() to handle Windows 8.1/10 features without a manifest (per-monitor DPI, and properly calls SetProcessDpiAwareness() on 8.1). -// 2021-03-23: Inputs: Clearing keyboard down array when losing focus (WM_KILLFOCUS). -// 2021-02-18: Added ImGui_ImplWin32_EnableAlphaCompositing(). Non Visual Studio users will need to link with dwmapi.lib (MinGW/gcc: use -ldwmapi). -// 2021-02-17: Fixed ImGui_ImplWin32_EnableDpiAwareness() attempting to get SetProcessDpiAwareness from shcore.dll on Windows 8 whereas it is only supported on Windows 8.1. -// 2021-01-25: Inputs: Dynamically loading XInput DLL. -// 2020-12-04: Misc: Fixed setting of io.DisplaySize to invalid/uninitialized data when after hwnd has been closed. -// 2020-03-03: Inputs: Calling AddInputCharacterUTF16() to support surrogate pairs leading to codepoint >= 0x10000 (for more complete CJK inputs) -// 2020-02-17: Added ImGui_ImplWin32_EnableDpiAwareness(), ImGui_ImplWin32_GetDpiScaleForHwnd(), ImGui_ImplWin32_GetDpiScaleForMonitor() helper functions. -// 2020-01-14: Inputs: Added support for #define IMGUI_IMPL_WIN32_DISABLE_GAMEPAD/IMGUI_IMPL_WIN32_DISABLE_LINKING_XINPUT. -// 2019-12-05: Inputs: Added support for ImGuiMouseCursor_NotAllowed mouse cursor. -// 2019-05-11: Inputs: Don't filter value from WM_CHAR before calling AddInputCharacter(). -// 2019-01-17: Misc: Using GetForegroundWindow()+IsChild() instead of GetActiveWindow() to be compatible with windows created in a different thread or parent. -// 2019-01-17: Inputs: Added support for mouse buttons 4 and 5 via WM_XBUTTON* messages. -// 2019-01-15: Inputs: Added support for XInput gamepads (if ImGuiConfigFlags_NavEnableGamepad is set by user application). -// 2018-11-30: Misc: Setting up io.BackendPlatformName so it can be displayed in the About Window. -// 2018-06-29: Inputs: Added support for the ImGuiMouseCursor_Hand cursor. -// 2018-06-10: Inputs: Fixed handling of mouse wheel messages to support fine position messages (typically sent by track-pads). -// 2018-06-08: Misc: Extracted imgui_impl_win32.cpp/.h away from the old combined DX9/DX10/DX11/DX12 examples. -// 2018-03-20: Misc: Setup io.BackendFlags ImGuiBackendFlags_HasMouseCursors and ImGuiBackendFlags_HasSetMousePos flags + honor ImGuiConfigFlags_NoMouseCursorChange flag. -// 2018-02-20: Inputs: Added support for mouse cursors (ImGui::GetMouseCursor() value and WM_SETCURSOR message handling). -// 2018-02-06: Inputs: Added mapping for ImGuiKey_Space. -// 2018-02-06: Inputs: Honoring the io.WantSetMousePos by repositioning the mouse (when using navigation and ImGuiConfigFlags_NavMoveMouse is set). -// 2018-02-06: Misc: Removed call to ImGui::Shutdown() which is not available from 1.60 WIP, user needs to call CreateContext/DestroyContext themselves. -// 2018-01-20: Inputs: Added Horizontal Mouse Wheel support. -// 2018-01-08: Inputs: Added mapping for ImGuiKey_Insert. -// 2018-01-05: Inputs: Added WM_LBUTTONDBLCLK double-click handlers for window classes with the CS_DBLCLKS flag. -// 2017-10-23: Inputs: Added WM_SYSKEYDOWN / WM_SYSKEYUP handlers so e.g. the VK_MENU key can be read. -// 2017-10-23: Inputs: Using Win32 ::SetCapture/::GetCapture() to retrieve mouse positions outside the client area when dragging. -// 2016-11-12: Inputs: Only call Win32 ::SetCursor(nullptr) when io.MouseDrawCursor is set. - -#include "imgui.h" -#ifndef IMGUI_DISABLE -#include "imgui_impl_win32.h" -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include // GET_X_LPARAM(), GET_Y_LPARAM() -#include -#include - -// Using XInput for gamepad (will load DLL dynamically) -#ifndef IMGUI_IMPL_WIN32_DISABLE_GAMEPAD -#include -typedef DWORD(WINAPI* PFN_XInputGetCapabilities)(DWORD, DWORD, XINPUT_CAPABILITIES*); -typedef DWORD(WINAPI* PFN_XInputGetState)(DWORD, XINPUT_STATE*); -#endif - -// Clang/GCC warnings with -Weverything -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wcast-function-type" // warning: cast between incompatible function types (for loader) -#endif -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wpragmas" // warning: unknown option after '#pragma GCC diagnostic' kind -#pragma GCC diagnostic ignored "-Wcast-function-type" // warning: cast between incompatible function types (for loader) -#endif - -struct ImGui_ImplWin32_Data -{ - HWND hWnd; - HWND MouseHwnd; - int MouseTrackedArea; // 0: not tracked, 1: client area, 2: non-client area - int MouseButtonsDown; - INT64 Time; - INT64 TicksPerSecond; - ImGuiMouseCursor LastMouseCursor; - UINT32 KeyboardCodePage; - -#ifndef IMGUI_IMPL_WIN32_DISABLE_GAMEPAD - bool HasGamepad; - bool WantUpdateHasGamepad; - HMODULE XInputDLL; - PFN_XInputGetCapabilities XInputGetCapabilities; - PFN_XInputGetState XInputGetState; -#endif - - ImGui_ImplWin32_Data() { memset((void*)this, 0, sizeof(*this)); } -}; - -// Backend data stored in io.BackendPlatformUserData to allow support for multiple Dear ImGui contexts -// It is STRONGLY preferred that you use docking branch with multi-viewports (== single Dear ImGui context + multiple windows) instead of multiple Dear ImGui contexts. -// FIXME: multi-context support is not well tested and probably dysfunctional in this backend. -// FIXME: some shared resources (mouse cursor shape, gamepad) are mishandled when using multi-context. -static ImGui_ImplWin32_Data* ImGui_ImplWin32_GetBackendData() -{ - return ImGui::GetCurrentContext() ? (ImGui_ImplWin32_Data*)ImGui::GetIO().BackendPlatformUserData : nullptr; -} -static ImGui_ImplWin32_Data* ImGui_ImplWin32_GetBackendData(ImGuiIO& io) -{ - return (ImGui_ImplWin32_Data*)io.BackendPlatformUserData; -} - -// Functions -static void ImGui_ImplWin32_UpdateKeyboardCodePage(ImGuiIO& io) -{ - // Retrieve keyboard code page, required for handling of non-Unicode Windows. - ImGui_ImplWin32_Data* bd = ImGui_ImplWin32_GetBackendData(io); - HKL keyboard_layout = ::GetKeyboardLayout(0); - LCID keyboard_lcid = MAKELCID(HIWORD(keyboard_layout), SORT_DEFAULT); - if (::GetLocaleInfoA(keyboard_lcid, (LOCALE_RETURN_NUMBER | LOCALE_IDEFAULTANSICODEPAGE), (LPSTR)&bd->KeyboardCodePage, sizeof(bd->KeyboardCodePage)) == 0) - bd->KeyboardCodePage = CP_ACP; // Fallback to default ANSI code page when fails. -} - -static bool ImGui_ImplWin32_InitEx(void* hwnd, bool platform_has_own_dc) -{ - ImGuiIO& io = ImGui::GetIO(); - IMGUI_CHECKVERSION(); - IM_ASSERT(io.BackendPlatformUserData == nullptr && "Already initialized a platform backend!"); - - INT64 perf_frequency, perf_counter; - if (!::QueryPerformanceFrequency((LARGE_INTEGER*)&perf_frequency)) - return false; - if (!::QueryPerformanceCounter((LARGE_INTEGER*)&perf_counter)) - return false; - - // Setup backend capabilities flags - ImGui_ImplWin32_Data* bd = IM_NEW(ImGui_ImplWin32_Data)(); - io.BackendPlatformUserData = (void*)bd; - io.BackendPlatformName = "imgui_impl_win32"; - io.BackendFlags |= ImGuiBackendFlags_HasMouseCursors; // We can honor GetMouseCursor() values (optional) - io.BackendFlags |= ImGuiBackendFlags_HasSetMousePos; // We can honor io.WantSetMousePos requests (optional, rarely used) - - bd->hWnd = (HWND)hwnd; - bd->TicksPerSecond = perf_frequency; - bd->Time = perf_counter; - bd->LastMouseCursor = ImGuiMouseCursor_COUNT; - ImGui_ImplWin32_UpdateKeyboardCodePage(io); - - // Set platform dependent data in viewport - ImGuiViewport* main_viewport = ImGui::GetMainViewport(); - main_viewport->PlatformHandle = main_viewport->PlatformHandleRaw = (void*)bd->hWnd; - IM_UNUSED(platform_has_own_dc); // Used in 'docking' branch - - // Dynamically load XInput library -#ifndef IMGUI_IMPL_WIN32_DISABLE_GAMEPAD - bd->WantUpdateHasGamepad = true; - const char* xinput_dll_names[] = - { - "xinput1_4.dll", // Windows 8+ - "xinput1_3.dll", // DirectX SDK - "xinput9_1_0.dll", // Windows Vista, Windows 7 - "xinput1_2.dll", // DirectX SDK - "xinput1_1.dll" // DirectX SDK - }; - for (int n = 0; n < IM_ARRAYSIZE(xinput_dll_names); n++) - if (HMODULE dll = ::LoadLibraryA(xinput_dll_names[n])) - { - bd->XInputDLL = dll; - bd->XInputGetCapabilities = (PFN_XInputGetCapabilities)::GetProcAddress(dll, "XInputGetCapabilities"); - bd->XInputGetState = (PFN_XInputGetState)::GetProcAddress(dll, "XInputGetState"); - break; - } -#endif // IMGUI_IMPL_WIN32_DISABLE_GAMEPAD - - return true; -} - -IMGUI_IMPL_API bool ImGui_ImplWin32_Init(void* hwnd) -{ - return ImGui_ImplWin32_InitEx(hwnd, false); -} - -IMGUI_IMPL_API bool ImGui_ImplWin32_InitForOpenGL(void* hwnd) -{ - // OpenGL needs CS_OWNDC - return ImGui_ImplWin32_InitEx(hwnd, true); -} - -void ImGui_ImplWin32_Shutdown() -{ - ImGui_ImplWin32_Data* bd = ImGui_ImplWin32_GetBackendData(); - IM_ASSERT(bd != nullptr && "No platform backend to shutdown, or already shutdown?"); - ImGuiIO& io = ImGui::GetIO(); - - // Unload XInput library -#ifndef IMGUI_IMPL_WIN32_DISABLE_GAMEPAD - if (bd->XInputDLL) - ::FreeLibrary(bd->XInputDLL); -#endif // IMGUI_IMPL_WIN32_DISABLE_GAMEPAD - - io.BackendPlatformName = nullptr; - io.BackendPlatformUserData = nullptr; - io.BackendFlags &= ~(ImGuiBackendFlags_HasMouseCursors | ImGuiBackendFlags_HasSetMousePos | ImGuiBackendFlags_HasGamepad); - IM_DELETE(bd); -} - -static bool ImGui_ImplWin32_UpdateMouseCursor(ImGuiIO& io, ImGuiMouseCursor imgui_cursor) -{ - if (io.ConfigFlags & ImGuiConfigFlags_NoMouseCursorChange) - return false; - - if (imgui_cursor == ImGuiMouseCursor_None || io.MouseDrawCursor) - { - // Hide OS mouse cursor if imgui is drawing it or if it wants no cursor - ::SetCursor(nullptr); - } - else - { - // Show OS mouse cursor - LPTSTR win32_cursor = IDC_ARROW; - switch (imgui_cursor) - { - case ImGuiMouseCursor_Arrow: win32_cursor = IDC_ARROW; break; - case ImGuiMouseCursor_TextInput: win32_cursor = IDC_IBEAM; break; - case ImGuiMouseCursor_ResizeAll: win32_cursor = IDC_SIZEALL; break; - case ImGuiMouseCursor_ResizeEW: win32_cursor = IDC_SIZEWE; break; - case ImGuiMouseCursor_ResizeNS: win32_cursor = IDC_SIZENS; break; - case ImGuiMouseCursor_ResizeNESW: win32_cursor = IDC_SIZENESW; break; - case ImGuiMouseCursor_ResizeNWSE: win32_cursor = IDC_SIZENWSE; break; - case ImGuiMouseCursor_Hand: win32_cursor = IDC_HAND; break; - case ImGuiMouseCursor_Wait: win32_cursor = IDC_WAIT; break; - case ImGuiMouseCursor_Progress: win32_cursor = IDC_APPSTARTING; break; - case ImGuiMouseCursor_NotAllowed: win32_cursor = IDC_NO; break; - } - ::SetCursor(::LoadCursor(nullptr, win32_cursor)); - } - return true; -} - -static bool IsVkDown(int vk) -{ - return (::GetKeyState(vk) & 0x8000) != 0; -} - -static void ImGui_ImplWin32_AddKeyEvent(ImGuiIO& io, ImGuiKey key, bool down, int native_keycode, int native_scancode = -1) -{ - io.AddKeyEvent(key, down); - io.SetKeyEventNativeData(key, native_keycode, native_scancode); // To support legacy indexing (<1.87 user code) - IM_UNUSED(native_scancode); -} - -static void ImGui_ImplWin32_ProcessKeyEventsWorkarounds(ImGuiIO& io) -{ - // Left & right Shift keys: when both are pressed together, Windows tend to not generate the WM_KEYUP event for the first released one. - if (ImGui::IsKeyDown(ImGuiKey_LeftShift) && !IsVkDown(VK_LSHIFT)) - ImGui_ImplWin32_AddKeyEvent(io, ImGuiKey_LeftShift, false, VK_LSHIFT); - if (ImGui::IsKeyDown(ImGuiKey_RightShift) && !IsVkDown(VK_RSHIFT)) - ImGui_ImplWin32_AddKeyEvent(io, ImGuiKey_RightShift, false, VK_RSHIFT); - - // Sometimes WM_KEYUP for Win key is not passed down to the app (e.g. for Win+V on some setups, according to GLFW). - if (ImGui::IsKeyDown(ImGuiKey_LeftSuper) && !IsVkDown(VK_LWIN)) - ImGui_ImplWin32_AddKeyEvent(io, ImGuiKey_LeftSuper, false, VK_LWIN); - if (ImGui::IsKeyDown(ImGuiKey_RightSuper) && !IsVkDown(VK_RWIN)) - ImGui_ImplWin32_AddKeyEvent(io, ImGuiKey_RightSuper, false, VK_RWIN); -} - -static void ImGui_ImplWin32_UpdateKeyModifiers(ImGuiIO& io) -{ - io.AddKeyEvent(ImGuiMod_Ctrl, IsVkDown(VK_CONTROL)); - io.AddKeyEvent(ImGuiMod_Shift, IsVkDown(VK_SHIFT)); - io.AddKeyEvent(ImGuiMod_Alt, IsVkDown(VK_MENU)); - io.AddKeyEvent(ImGuiMod_Super, IsVkDown(VK_LWIN) || IsVkDown(VK_RWIN)); -} - -static void ImGui_ImplWin32_UpdateMouseData(ImGuiIO& io) -{ - ImGui_ImplWin32_Data* bd = ImGui_ImplWin32_GetBackendData(io); - IM_ASSERT(bd->hWnd != 0); - - HWND focused_window = ::GetForegroundWindow(); - const bool is_app_focused = (focused_window == bd->hWnd); - if (is_app_focused) - { - // (Optional) Set OS mouse position from Dear ImGui if requested (rarely used, only when io.ConfigNavMoveSetMousePos is enabled by user) - if (io.WantSetMousePos) - { - POINT pos = { (int)io.MousePos.x, (int)io.MousePos.y }; - if (::ClientToScreen(bd->hWnd, &pos)) - ::SetCursorPos(pos.x, pos.y); - } - - // (Optional) Fallback to provide mouse position when focused (WM_MOUSEMOVE already provides this when hovered or captured) - // This also fills a short gap when clicking non-client area: WM_NCMOUSELEAVE -> modal OS move -> gap -> WM_NCMOUSEMOVE - if (!io.WantSetMousePos && bd->MouseTrackedArea == 0) - { - POINT pos; - if (::GetCursorPos(&pos) && ::ScreenToClient(bd->hWnd, &pos)) - io.AddMousePosEvent((float)pos.x, (float)pos.y); - } - } -} - -// Gamepad navigation mapping -static void ImGui_ImplWin32_UpdateGamepads(ImGuiIO& io) -{ -#ifndef IMGUI_IMPL_WIN32_DISABLE_GAMEPAD - ImGui_ImplWin32_Data* bd = ImGui_ImplWin32_GetBackendData(io); - - // Calling XInputGetState() every frame on disconnected gamepads is unfortunately too slow. - // Instead we refresh gamepad availability by calling XInputGetCapabilities() _only_ after receiving WM_DEVICECHANGE. - if (bd->WantUpdateHasGamepad) - { - XINPUT_CAPABILITIES caps = {}; - bd->HasGamepad = bd->XInputGetCapabilities ? (bd->XInputGetCapabilities(0, XINPUT_FLAG_GAMEPAD, &caps) == ERROR_SUCCESS) : false; - bd->WantUpdateHasGamepad = false; - } - - io.BackendFlags &= ~ImGuiBackendFlags_HasGamepad; - XINPUT_STATE xinput_state; - XINPUT_GAMEPAD& gamepad = xinput_state.Gamepad; - if (!bd->HasGamepad || bd->XInputGetState == nullptr || bd->XInputGetState(0, &xinput_state) != ERROR_SUCCESS) - return; - io.BackendFlags |= ImGuiBackendFlags_HasGamepad; - - #define IM_SATURATE(V) (V < 0.0f ? 0.0f : V > 1.0f ? 1.0f : V) - #define MAP_BUTTON(KEY_NO, BUTTON_ENUM) { io.AddKeyEvent(KEY_NO, (gamepad.wButtons & BUTTON_ENUM) != 0); } - #define MAP_ANALOG(KEY_NO, VALUE, V0, V1) { float vn = (float)(VALUE - V0) / (float)(V1 - V0); io.AddKeyAnalogEvent(KEY_NO, vn > 0.10f, IM_SATURATE(vn)); } - MAP_BUTTON(ImGuiKey_GamepadStart, XINPUT_GAMEPAD_START); - MAP_BUTTON(ImGuiKey_GamepadBack, XINPUT_GAMEPAD_BACK); - MAP_BUTTON(ImGuiKey_GamepadFaceLeft, XINPUT_GAMEPAD_X); - MAP_BUTTON(ImGuiKey_GamepadFaceRight, XINPUT_GAMEPAD_B); - MAP_BUTTON(ImGuiKey_GamepadFaceUp, XINPUT_GAMEPAD_Y); - MAP_BUTTON(ImGuiKey_GamepadFaceDown, XINPUT_GAMEPAD_A); - MAP_BUTTON(ImGuiKey_GamepadDpadLeft, XINPUT_GAMEPAD_DPAD_LEFT); - MAP_BUTTON(ImGuiKey_GamepadDpadRight, XINPUT_GAMEPAD_DPAD_RIGHT); - MAP_BUTTON(ImGuiKey_GamepadDpadUp, XINPUT_GAMEPAD_DPAD_UP); - MAP_BUTTON(ImGuiKey_GamepadDpadDown, XINPUT_GAMEPAD_DPAD_DOWN); - MAP_BUTTON(ImGuiKey_GamepadL1, XINPUT_GAMEPAD_LEFT_SHOULDER); - MAP_BUTTON(ImGuiKey_GamepadR1, XINPUT_GAMEPAD_RIGHT_SHOULDER); - MAP_ANALOG(ImGuiKey_GamepadL2, gamepad.bLeftTrigger, XINPUT_GAMEPAD_TRIGGER_THRESHOLD, 255); - MAP_ANALOG(ImGuiKey_GamepadR2, gamepad.bRightTrigger, XINPUT_GAMEPAD_TRIGGER_THRESHOLD, 255); - MAP_BUTTON(ImGuiKey_GamepadL3, XINPUT_GAMEPAD_LEFT_THUMB); - MAP_BUTTON(ImGuiKey_GamepadR3, XINPUT_GAMEPAD_RIGHT_THUMB); - MAP_ANALOG(ImGuiKey_GamepadLStickLeft, gamepad.sThumbLX, -XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE, -32768); - MAP_ANALOG(ImGuiKey_GamepadLStickRight, gamepad.sThumbLX, +XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE, +32767); - MAP_ANALOG(ImGuiKey_GamepadLStickUp, gamepad.sThumbLY, +XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE, +32767); - MAP_ANALOG(ImGuiKey_GamepadLStickDown, gamepad.sThumbLY, -XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE, -32768); - MAP_ANALOG(ImGuiKey_GamepadRStickLeft, gamepad.sThumbRX, -XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE, -32768); - MAP_ANALOG(ImGuiKey_GamepadRStickRight, gamepad.sThumbRX, +XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE, +32767); - MAP_ANALOG(ImGuiKey_GamepadRStickUp, gamepad.sThumbRY, +XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE, +32767); - MAP_ANALOG(ImGuiKey_GamepadRStickDown, gamepad.sThumbRY, -XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE, -32768); - #undef MAP_BUTTON - #undef MAP_ANALOG -#else // #ifndef IMGUI_IMPL_WIN32_DISABLE_GAMEPAD - IM_UNUSED(io); -#endif -} - -void ImGui_ImplWin32_NewFrame() -{ - ImGui_ImplWin32_Data* bd = ImGui_ImplWin32_GetBackendData(); - IM_ASSERT(bd != nullptr && "Context or backend not initialized? Did you call ImGui_ImplWin32_Init()?"); - ImGuiIO& io = ImGui::GetIO(); - - // Setup display size (every frame to accommodate for window resizing) - RECT rect = { 0, 0, 0, 0 }; - ::GetClientRect(bd->hWnd, &rect); - io.DisplaySize = ImVec2((float)(rect.right - rect.left), (float)(rect.bottom - rect.top)); - - // Setup time step - INT64 current_time = 0; - ::QueryPerformanceCounter((LARGE_INTEGER*)¤t_time); - io.DeltaTime = (float)(current_time - bd->Time) / bd->TicksPerSecond; - bd->Time = current_time; - - // Update OS mouse position - ImGui_ImplWin32_UpdateMouseData(io); - - // Process workarounds for known Windows key handling issues - ImGui_ImplWin32_ProcessKeyEventsWorkarounds(io); - - // Update OS mouse cursor with the cursor requested by imgui - ImGuiMouseCursor mouse_cursor = io.MouseDrawCursor ? ImGuiMouseCursor_None : ImGui::GetMouseCursor(); - if (bd->LastMouseCursor != mouse_cursor) - { - bd->LastMouseCursor = mouse_cursor; - ImGui_ImplWin32_UpdateMouseCursor(io, mouse_cursor); - } - - // Update game controllers (if enabled and available) - ImGui_ImplWin32_UpdateGamepads(io); -} - -// Map VK_xxx to ImGuiKey_xxx. -// Not static to allow third-party code to use that if they want to (but undocumented) -ImGuiKey ImGui_ImplWin32_KeyEventToImGuiKey(WPARAM wParam, LPARAM lParam); -ImGuiKey ImGui_ImplWin32_KeyEventToImGuiKey(WPARAM wParam, LPARAM lParam) -{ - // There is no distinct VK_xxx for keypad enter, instead it is VK_RETURN + KF_EXTENDED. - if ((wParam == VK_RETURN) && (HIWORD(lParam) & KF_EXTENDED)) - return ImGuiKey_KeypadEnter; - - const int scancode = (int)LOBYTE(HIWORD(lParam)); - //IMGUI_DEBUG_LOG("scancode %3d, keycode = 0x%02X\n", scancode, wParam); - switch (wParam) - { - case VK_TAB: return ImGuiKey_Tab; - case VK_LEFT: return ImGuiKey_LeftArrow; - case VK_RIGHT: return ImGuiKey_RightArrow; - case VK_UP: return ImGuiKey_UpArrow; - case VK_DOWN: return ImGuiKey_DownArrow; - case VK_PRIOR: return ImGuiKey_PageUp; - case VK_NEXT: return ImGuiKey_PageDown; - case VK_HOME: return ImGuiKey_Home; - case VK_END: return ImGuiKey_End; - case VK_INSERT: return ImGuiKey_Insert; - case VK_DELETE: return ImGuiKey_Delete; - case VK_BACK: return ImGuiKey_Backspace; - case VK_SPACE: return ImGuiKey_Space; - case VK_RETURN: return ImGuiKey_Enter; - case VK_ESCAPE: return ImGuiKey_Escape; - //case VK_OEM_7: return ImGuiKey_Apostrophe; - case VK_OEM_COMMA: return ImGuiKey_Comma; - //case VK_OEM_MINUS: return ImGuiKey_Minus; - case VK_OEM_PERIOD: return ImGuiKey_Period; - //case VK_OEM_2: return ImGuiKey_Slash; - //case VK_OEM_1: return ImGuiKey_Semicolon; - //case VK_OEM_PLUS: return ImGuiKey_Equal; - //case VK_OEM_4: return ImGuiKey_LeftBracket; - //case VK_OEM_5: return ImGuiKey_Backslash; - //case VK_OEM_6: return ImGuiKey_RightBracket; - //case VK_OEM_3: return ImGuiKey_GraveAccent; - case VK_CAPITAL: return ImGuiKey_CapsLock; - case VK_SCROLL: return ImGuiKey_ScrollLock; - case VK_NUMLOCK: return ImGuiKey_NumLock; - case VK_SNAPSHOT: return ImGuiKey_PrintScreen; - case VK_PAUSE: return ImGuiKey_Pause; - case VK_NUMPAD0: return ImGuiKey_Keypad0; - case VK_NUMPAD1: return ImGuiKey_Keypad1; - case VK_NUMPAD2: return ImGuiKey_Keypad2; - case VK_NUMPAD3: return ImGuiKey_Keypad3; - case VK_NUMPAD4: return ImGuiKey_Keypad4; - case VK_NUMPAD5: return ImGuiKey_Keypad5; - case VK_NUMPAD6: return ImGuiKey_Keypad6; - case VK_NUMPAD7: return ImGuiKey_Keypad7; - case VK_NUMPAD8: return ImGuiKey_Keypad8; - case VK_NUMPAD9: return ImGuiKey_Keypad9; - case VK_DECIMAL: return ImGuiKey_KeypadDecimal; - case VK_DIVIDE: return ImGuiKey_KeypadDivide; - case VK_MULTIPLY: return ImGuiKey_KeypadMultiply; - case VK_SUBTRACT: return ImGuiKey_KeypadSubtract; - case VK_ADD: return ImGuiKey_KeypadAdd; - case VK_LSHIFT: return ImGuiKey_LeftShift; - case VK_LCONTROL: return ImGuiKey_LeftCtrl; - case VK_LMENU: return ImGuiKey_LeftAlt; - case VK_LWIN: return ImGuiKey_LeftSuper; - case VK_RSHIFT: return ImGuiKey_RightShift; - case VK_RCONTROL: return ImGuiKey_RightCtrl; - case VK_RMENU: return ImGuiKey_RightAlt; - case VK_RWIN: return ImGuiKey_RightSuper; - case VK_APPS: return ImGuiKey_Menu; - case '0': return ImGuiKey_0; - case '1': return ImGuiKey_1; - case '2': return ImGuiKey_2; - case '3': return ImGuiKey_3; - case '4': return ImGuiKey_4; - case '5': return ImGuiKey_5; - case '6': return ImGuiKey_6; - case '7': return ImGuiKey_7; - case '8': return ImGuiKey_8; - case '9': return ImGuiKey_9; - case 'A': return ImGuiKey_A; - case 'B': return ImGuiKey_B; - case 'C': return ImGuiKey_C; - case 'D': return ImGuiKey_D; - case 'E': return ImGuiKey_E; - case 'F': return ImGuiKey_F; - case 'G': return ImGuiKey_G; - case 'H': return ImGuiKey_H; - case 'I': return ImGuiKey_I; - case 'J': return ImGuiKey_J; - case 'K': return ImGuiKey_K; - case 'L': return ImGuiKey_L; - case 'M': return ImGuiKey_M; - case 'N': return ImGuiKey_N; - case 'O': return ImGuiKey_O; - case 'P': return ImGuiKey_P; - case 'Q': return ImGuiKey_Q; - case 'R': return ImGuiKey_R; - case 'S': return ImGuiKey_S; - case 'T': return ImGuiKey_T; - case 'U': return ImGuiKey_U; - case 'V': return ImGuiKey_V; - case 'W': return ImGuiKey_W; - case 'X': return ImGuiKey_X; - case 'Y': return ImGuiKey_Y; - case 'Z': return ImGuiKey_Z; - case VK_F1: return ImGuiKey_F1; - case VK_F2: return ImGuiKey_F2; - case VK_F3: return ImGuiKey_F3; - case VK_F4: return ImGuiKey_F4; - case VK_F5: return ImGuiKey_F5; - case VK_F6: return ImGuiKey_F6; - case VK_F7: return ImGuiKey_F7; - case VK_F8: return ImGuiKey_F8; - case VK_F9: return ImGuiKey_F9; - case VK_F10: return ImGuiKey_F10; - case VK_F11: return ImGuiKey_F11; - case VK_F12: return ImGuiKey_F12; - case VK_F13: return ImGuiKey_F13; - case VK_F14: return ImGuiKey_F14; - case VK_F15: return ImGuiKey_F15; - case VK_F16: return ImGuiKey_F16; - case VK_F17: return ImGuiKey_F17; - case VK_F18: return ImGuiKey_F18; - case VK_F19: return ImGuiKey_F19; - case VK_F20: return ImGuiKey_F20; - case VK_F21: return ImGuiKey_F21; - case VK_F22: return ImGuiKey_F22; - case VK_F23: return ImGuiKey_F23; - case VK_F24: return ImGuiKey_F24; - case VK_BROWSER_BACK: return ImGuiKey_AppBack; - case VK_BROWSER_FORWARD: return ImGuiKey_AppForward; - default: break; - } - - // Fallback to scancode - // https://handmade.network/forums/t/2011-keyboard_inputs_-_scancodes,_raw_input,_text_input,_key_names - switch (scancode) - { - case 41: return ImGuiKey_GraveAccent; // VK_OEM_8 in EN-UK, VK_OEM_3 in EN-US, VK_OEM_7 in FR, VK_OEM_5 in DE, etc. - case 12: return ImGuiKey_Minus; - case 13: return ImGuiKey_Equal; - case 26: return ImGuiKey_LeftBracket; - case 27: return ImGuiKey_RightBracket; - case 86: return ImGuiKey_Oem102; - case 43: return ImGuiKey_Backslash; - case 39: return ImGuiKey_Semicolon; - case 40: return ImGuiKey_Apostrophe; - case 51: return ImGuiKey_Comma; - case 52: return ImGuiKey_Period; - case 53: return ImGuiKey_Slash; - default: break; - } - - return ImGuiKey_None; -} - -// Allow compilation with old Windows SDK. MinGW doesn't have default _WIN32_WINNT/WINVER versions. -#ifndef WM_MOUSEHWHEEL -#define WM_MOUSEHWHEEL 0x020E -#endif -#ifndef DBT_DEVNODES_CHANGED -#define DBT_DEVNODES_CHANGED 0x0007 -#endif - -// Helper to obtain the source of mouse messages. -// See https://learn.microsoft.com/en-us/windows/win32/tablet/system-events-and-mouse-messages -// Prefer to call this at the top of the message handler to avoid the possibility of other Win32 calls interfering with this. -static ImGuiMouseSource ImGui_ImplWin32_GetMouseSourceFromMessageExtraInfo() -{ - LPARAM extra_info = ::GetMessageExtraInfo(); - if ((extra_info & 0xFFFFFF80) == 0xFF515700) - return ImGuiMouseSource_Pen; - if ((extra_info & 0xFFFFFF80) == 0xFF515780) - return ImGuiMouseSource_TouchScreen; - return ImGuiMouseSource_Mouse; -} - -// Win32 message handler (process Win32 mouse/keyboard inputs, etc.) -// Call from your application's message handler. Keep calling your message handler unless this function returns TRUE. -// When implementing your own backend, you can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if Dear ImGui wants to use your inputs. -// - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. -// - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. -// Generally you may always pass all inputs to Dear ImGui, and hide them from your application based on those two flags. -// PS: We treat DBLCLK messages as regular mouse down messages, so this code will work on windows classes that have the CS_DBLCLKS flag set. Our own example app code doesn't set this flag. - -// Copy either line into your .cpp file to forward declare the function: -extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); // Use ImGui::GetCurrentContext() -extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandlerEx(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, ImGuiIO& io); // Doesn't use ImGui::GetCurrentContext() - -IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - // Most backends don't have silent checks like this one, but we need it because WndProc are called early in CreateWindow(). - // We silently allow both context or just only backend data to be nullptr. - if (ImGui::GetCurrentContext() == nullptr) - return 0; - return ImGui_ImplWin32_WndProcHandlerEx(hwnd, msg, wParam, lParam, ImGui::GetIO()); -} - -// This version is in theory thread-safe in the sense that no path should access ImGui::GetCurrentContext(). -IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandlerEx(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, ImGuiIO& io) -{ - ImGui_ImplWin32_Data* bd = ImGui_ImplWin32_GetBackendData(io); - if (bd == nullptr) - return 0; - switch (msg) - { - case WM_MOUSEMOVE: - case WM_NCMOUSEMOVE: - { - // We need to call TrackMouseEvent in order to receive WM_MOUSELEAVE events - ImGuiMouseSource mouse_source = ImGui_ImplWin32_GetMouseSourceFromMessageExtraInfo(); - const int area = (msg == WM_MOUSEMOVE) ? 1 : 2; - bd->MouseHwnd = hwnd; - if (bd->MouseTrackedArea != area) - { - TRACKMOUSEEVENT tme_cancel = { sizeof(tme_cancel), TME_CANCEL, hwnd, 0 }; - TRACKMOUSEEVENT tme_track = { sizeof(tme_track), (DWORD)((area == 2) ? (TME_LEAVE | TME_NONCLIENT) : TME_LEAVE), hwnd, 0 }; - if (bd->MouseTrackedArea != 0) - ::TrackMouseEvent(&tme_cancel); - ::TrackMouseEvent(&tme_track); - bd->MouseTrackedArea = area; - } - POINT mouse_pos = { (LONG)GET_X_LPARAM(lParam), (LONG)GET_Y_LPARAM(lParam) }; - if (msg == WM_NCMOUSEMOVE && ::ScreenToClient(hwnd, &mouse_pos) == FALSE) // WM_NCMOUSEMOVE are provided in absolute coordinates. - return 0; - io.AddMouseSourceEvent(mouse_source); - io.AddMousePosEvent((float)mouse_pos.x, (float)mouse_pos.y); - return 0; - } - case WM_MOUSELEAVE: - case WM_NCMOUSELEAVE: - { - const int area = (msg == WM_MOUSELEAVE) ? 1 : 2; - if (bd->MouseTrackedArea == area) - { - if (bd->MouseHwnd == hwnd) - bd->MouseHwnd = nullptr; - bd->MouseTrackedArea = 0; - io.AddMousePosEvent(-FLT_MAX, -FLT_MAX); - } - return 0; - } - case WM_DESTROY: - if (bd->MouseHwnd == hwnd && bd->MouseTrackedArea != 0) - { - TRACKMOUSEEVENT tme_cancel = { sizeof(tme_cancel), TME_CANCEL, hwnd, 0 }; - ::TrackMouseEvent(&tme_cancel); - bd->MouseHwnd = nullptr; - bd->MouseTrackedArea = 0; - io.AddMousePosEvent(-FLT_MAX, -FLT_MAX); - } - return 0; - case WM_LBUTTONDOWN: case WM_LBUTTONDBLCLK: - case WM_RBUTTONDOWN: case WM_RBUTTONDBLCLK: - case WM_MBUTTONDOWN: case WM_MBUTTONDBLCLK: - case WM_XBUTTONDOWN: case WM_XBUTTONDBLCLK: - { - ImGuiMouseSource mouse_source = ImGui_ImplWin32_GetMouseSourceFromMessageExtraInfo(); - int button = 0; - if (msg == WM_LBUTTONDOWN || msg == WM_LBUTTONDBLCLK) { button = 0; } - if (msg == WM_RBUTTONDOWN || msg == WM_RBUTTONDBLCLK) { button = 1; } - if (msg == WM_MBUTTONDOWN || msg == WM_MBUTTONDBLCLK) { button = 2; } - if (msg == WM_XBUTTONDOWN || msg == WM_XBUTTONDBLCLK) { button = (GET_XBUTTON_WPARAM(wParam) == XBUTTON1) ? 3 : 4; } - HWND hwnd_with_capture = ::GetCapture(); - if (bd->MouseButtonsDown != 0 && hwnd_with_capture != hwnd) // Did we externally lost capture? - bd->MouseButtonsDown = 0; - if (bd->MouseButtonsDown == 0 && hwnd_with_capture == nullptr) - ::SetCapture(hwnd); // Allow us to read mouse coordinates when dragging mouse outside of our window bounds. - bd->MouseButtonsDown |= 1 << button; - io.AddMouseSourceEvent(mouse_source); - io.AddMouseButtonEvent(button, true); - return 0; - } - case WM_LBUTTONUP: - case WM_RBUTTONUP: - case WM_MBUTTONUP: - case WM_XBUTTONUP: - { - ImGuiMouseSource mouse_source = ImGui_ImplWin32_GetMouseSourceFromMessageExtraInfo(); - int button = 0; - if (msg == WM_LBUTTONUP) { button = 0; } - if (msg == WM_RBUTTONUP) { button = 1; } - if (msg == WM_MBUTTONUP) { button = 2; } - if (msg == WM_XBUTTONUP) { button = (GET_XBUTTON_WPARAM(wParam) == XBUTTON1) ? 3 : 4; } - bd->MouseButtonsDown &= ~(1 << button); - if (bd->MouseButtonsDown == 0 && ::GetCapture() == hwnd) - ::ReleaseCapture(); - io.AddMouseSourceEvent(mouse_source); - io.AddMouseButtonEvent(button, false); - return 0; - } - case WM_MOUSEWHEEL: - io.AddMouseWheelEvent(0.0f, (float)GET_WHEEL_DELTA_WPARAM(wParam) / (float)WHEEL_DELTA); - return 0; - case WM_MOUSEHWHEEL: - io.AddMouseWheelEvent(-(float)GET_WHEEL_DELTA_WPARAM(wParam) / (float)WHEEL_DELTA, 0.0f); - return 0; - case WM_KEYDOWN: - case WM_KEYUP: - case WM_SYSKEYDOWN: - case WM_SYSKEYUP: - { - const bool is_key_down = (msg == WM_KEYDOWN || msg == WM_SYSKEYDOWN); - if (wParam < 256) - { - // Submit modifiers - ImGui_ImplWin32_UpdateKeyModifiers(io); - - // Obtain virtual key code and convert to ImGuiKey - const ImGuiKey key = ImGui_ImplWin32_KeyEventToImGuiKey(wParam, lParam); - const int vk = (int)wParam; - const int scancode = (int)LOBYTE(HIWORD(lParam)); - - // Special behavior for VK_SNAPSHOT / ImGuiKey_PrintScreen as Windows doesn't emit the key down event. - if (key == ImGuiKey_PrintScreen && !is_key_down) - ImGui_ImplWin32_AddKeyEvent(io, key, true, vk, scancode); - - // Submit key event - if (key != ImGuiKey_None) - ImGui_ImplWin32_AddKeyEvent(io, key, is_key_down, vk, scancode); - - // Submit individual left/right modifier events - if (vk == VK_SHIFT) - { - // Important: Shift keys tend to get stuck when pressed together, missing key-up events are corrected in ImGui_ImplWin32_ProcessKeyEventsWorkarounds() - if (IsVkDown(VK_LSHIFT) == is_key_down) { ImGui_ImplWin32_AddKeyEvent(io, ImGuiKey_LeftShift, is_key_down, VK_LSHIFT, scancode); } - if (IsVkDown(VK_RSHIFT) == is_key_down) { ImGui_ImplWin32_AddKeyEvent(io, ImGuiKey_RightShift, is_key_down, VK_RSHIFT, scancode); } - } - else if (vk == VK_CONTROL) - { - if (IsVkDown(VK_LCONTROL) == is_key_down) { ImGui_ImplWin32_AddKeyEvent(io, ImGuiKey_LeftCtrl, is_key_down, VK_LCONTROL, scancode); } - if (IsVkDown(VK_RCONTROL) == is_key_down) { ImGui_ImplWin32_AddKeyEvent(io, ImGuiKey_RightCtrl, is_key_down, VK_RCONTROL, scancode); } - } - else if (vk == VK_MENU) - { - if (IsVkDown(VK_LMENU) == is_key_down) { ImGui_ImplWin32_AddKeyEvent(io, ImGuiKey_LeftAlt, is_key_down, VK_LMENU, scancode); } - if (IsVkDown(VK_RMENU) == is_key_down) { ImGui_ImplWin32_AddKeyEvent(io, ImGuiKey_RightAlt, is_key_down, VK_RMENU, scancode); } - } - } - return 0; - } - case WM_SETFOCUS: - case WM_KILLFOCUS: - io.AddFocusEvent(msg == WM_SETFOCUS); - return 0; - case WM_INPUTLANGCHANGE: - ImGui_ImplWin32_UpdateKeyboardCodePage(io); - return 0; - case WM_CHAR: - if (::IsWindowUnicode(hwnd)) - { - // You can also use ToAscii()+GetKeyboardState() to retrieve characters. - if (wParam > 0 && wParam < 0x10000) - io.AddInputCharacterUTF16((unsigned short)wParam); - } - else - { - wchar_t wch = 0; - ::MultiByteToWideChar(bd->KeyboardCodePage, MB_PRECOMPOSED, (char*)&wParam, 1, &wch, 1); - io.AddInputCharacter(wch); - } - return 0; - case WM_SETCURSOR: - // This is required to restore cursor when transitioning from e.g resize borders to client area. - if (LOWORD(lParam) == HTCLIENT && ImGui_ImplWin32_UpdateMouseCursor(io, bd->LastMouseCursor)) - return 1; - return 0; - case WM_DEVICECHANGE: -#ifndef IMGUI_IMPL_WIN32_DISABLE_GAMEPAD - if ((UINT)wParam == DBT_DEVNODES_CHANGED) - bd->WantUpdateHasGamepad = true; -#endif - return 0; - } - return 0; -} - - -//-------------------------------------------------------------------------------------------------------- -// DPI-related helpers (optional) -//-------------------------------------------------------------------------------------------------------- -// - Use to enable DPI awareness without having to create an application manifest. -// - Your own app may already do this via a manifest or explicit calls. This is mostly useful for our examples/ apps. -// - In theory we could call simple functions from Windows SDK such as SetProcessDPIAware(), SetProcessDpiAwareness(), etc. -// but most of the functions provided by Microsoft require Windows 8.1/10+ SDK at compile time and Windows 8/10+ at runtime, -// neither we want to require the user to have. So we dynamically select and load those functions to avoid dependencies. -//--------------------------------------------------------------------------------------------------------- -// This is the scheme successfully used by GLFW (from which we borrowed some of the code) and other apps aiming to be highly portable. -// ImGui_ImplWin32_EnableDpiAwareness() is just a helper called by main.cpp, we don't call it automatically. -// If you are trying to implement your own backend for your own engine, you may ignore that noise. -//--------------------------------------------------------------------------------------------------------- - -// Perform our own check with RtlVerifyVersionInfo() instead of using functions from as they -// require a manifest to be functional for checks above 8.1. See https://github.com/ocornut/imgui/issues/4200 -static BOOL _IsWindowsVersionOrGreater(WORD major, WORD minor, WORD) -{ - typedef LONG(WINAPI* PFN_RtlVerifyVersionInfo)(OSVERSIONINFOEXW*, ULONG, ULONGLONG); - static PFN_RtlVerifyVersionInfo RtlVerifyVersionInfoFn = nullptr; - if (RtlVerifyVersionInfoFn == nullptr) - if (HMODULE ntdllModule = ::GetModuleHandleA("ntdll.dll")) - RtlVerifyVersionInfoFn = (PFN_RtlVerifyVersionInfo)GetProcAddress(ntdllModule, "RtlVerifyVersionInfo"); - if (RtlVerifyVersionInfoFn == nullptr) - return FALSE; - - RTL_OSVERSIONINFOEXW versionInfo = { }; - ULONGLONG conditionMask = 0; - versionInfo.dwOSVersionInfoSize = sizeof(RTL_OSVERSIONINFOEXW); - versionInfo.dwMajorVersion = major; - versionInfo.dwMinorVersion = minor; - VER_SET_CONDITION(conditionMask, VER_MAJORVERSION, VER_GREATER_EQUAL); - VER_SET_CONDITION(conditionMask, VER_MINORVERSION, VER_GREATER_EQUAL); - return (RtlVerifyVersionInfoFn(&versionInfo, VER_MAJORVERSION | VER_MINORVERSION, conditionMask) == 0) ? TRUE : FALSE; -} - -#define _IsWindowsVistaOrGreater() _IsWindowsVersionOrGreater(HIBYTE(0x0600), LOBYTE(0x0600), 0) // _WIN32_WINNT_VISTA -#define _IsWindows8OrGreater() _IsWindowsVersionOrGreater(HIBYTE(0x0602), LOBYTE(0x0602), 0) // _WIN32_WINNT_WIN8 -#define _IsWindows8Point1OrGreater() _IsWindowsVersionOrGreater(HIBYTE(0x0603), LOBYTE(0x0603), 0) // _WIN32_WINNT_WINBLUE -#define _IsWindows10OrGreater() _IsWindowsVersionOrGreater(HIBYTE(0x0A00), LOBYTE(0x0A00), 0) // _WIN32_WINNT_WINTHRESHOLD / _WIN32_WINNT_WIN10 - -#ifndef DPI_ENUMS_DECLARED -typedef enum { PROCESS_DPI_UNAWARE = 0, PROCESS_SYSTEM_DPI_AWARE = 1, PROCESS_PER_MONITOR_DPI_AWARE = 2 } PROCESS_DPI_AWARENESS; -typedef enum { MDT_EFFECTIVE_DPI = 0, MDT_ANGULAR_DPI = 1, MDT_RAW_DPI = 2, MDT_DEFAULT = MDT_EFFECTIVE_DPI } MONITOR_DPI_TYPE; -#endif -#ifndef _DPI_AWARENESS_CONTEXTS_ -DECLARE_HANDLE(DPI_AWARENESS_CONTEXT); -#define DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE (DPI_AWARENESS_CONTEXT)-3 -#endif -#ifndef DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 -#define DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 (DPI_AWARENESS_CONTEXT)-4 -#endif -typedef HRESULT(WINAPI* PFN_SetProcessDpiAwareness)(PROCESS_DPI_AWARENESS); // Shcore.lib + dll, Windows 8.1+ -typedef HRESULT(WINAPI* PFN_GetDpiForMonitor)(HMONITOR, MONITOR_DPI_TYPE, UINT*, UINT*); // Shcore.lib + dll, Windows 8.1+ -typedef DPI_AWARENESS_CONTEXT(WINAPI* PFN_SetThreadDpiAwarenessContext)(DPI_AWARENESS_CONTEXT); // User32.lib + dll, Windows 10 v1607+ (Creators Update) - -// Helper function to enable DPI awareness without setting up a manifest -void ImGui_ImplWin32_EnableDpiAwareness() -{ - if (_IsWindows10OrGreater()) - { - static HINSTANCE user32_dll = ::LoadLibraryA("user32.dll"); // Reference counted per-process - if (PFN_SetThreadDpiAwarenessContext SetThreadDpiAwarenessContextFn = (PFN_SetThreadDpiAwarenessContext)::GetProcAddress(user32_dll, "SetThreadDpiAwarenessContext")) - { - SetThreadDpiAwarenessContextFn(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2); - return; - } - } - if (_IsWindows8Point1OrGreater()) - { - static HINSTANCE shcore_dll = ::LoadLibraryA("shcore.dll"); // Reference counted per-process - if (PFN_SetProcessDpiAwareness SetProcessDpiAwarenessFn = (PFN_SetProcessDpiAwareness)::GetProcAddress(shcore_dll, "SetProcessDpiAwareness")) - { - SetProcessDpiAwarenessFn(PROCESS_PER_MONITOR_DPI_AWARE); - return; - } - } -#if _WIN32_WINNT >= 0x0600 - ::SetProcessDPIAware(); -#endif -} - -#if defined(_MSC_VER) && !defined(NOGDI) -#pragma comment(lib, "gdi32") // Link with gdi32.lib for GetDeviceCaps(). MinGW will require linking with '-lgdi32' -#endif - -float ImGui_ImplWin32_GetDpiScaleForMonitor(void* monitor) -{ - UINT xdpi = 96, ydpi = 96; - if (_IsWindows8Point1OrGreater()) - { - static HINSTANCE shcore_dll = ::LoadLibraryA("shcore.dll"); // Reference counted per-process - static PFN_GetDpiForMonitor GetDpiForMonitorFn = nullptr; - if (GetDpiForMonitorFn == nullptr && shcore_dll != nullptr) - GetDpiForMonitorFn = (PFN_GetDpiForMonitor)::GetProcAddress(shcore_dll, "GetDpiForMonitor"); - if (GetDpiForMonitorFn != nullptr) - { - GetDpiForMonitorFn((HMONITOR)monitor, MDT_EFFECTIVE_DPI, &xdpi, &ydpi); - IM_ASSERT(xdpi == ydpi); // Please contact me if you hit this assert! - return xdpi / 96.0f; - } - } -#ifndef NOGDI - const HDC dc = ::GetDC(nullptr); - xdpi = ::GetDeviceCaps(dc, LOGPIXELSX); - ydpi = ::GetDeviceCaps(dc, LOGPIXELSY); - IM_ASSERT(xdpi == ydpi); // Please contact me if you hit this assert! - ::ReleaseDC(nullptr, dc); -#endif - return xdpi / 96.0f; -} - -float ImGui_ImplWin32_GetDpiScaleForHwnd(void* hwnd) -{ - HMONITOR monitor = ::MonitorFromWindow((HWND)hwnd, MONITOR_DEFAULTTONEAREST); - return ImGui_ImplWin32_GetDpiScaleForMonitor(monitor); -} - -//--------------------------------------------------------------------------------------------------------- -// Transparency related helpers (optional) -//-------------------------------------------------------------------------------------------------------- - -#if defined(_MSC_VER) -#pragma comment(lib, "dwmapi") // Link with dwmapi.lib. MinGW will require linking with '-ldwmapi' -#endif - -// [experimental] -// Borrowed from GLFW's function updateFramebufferTransparency() in src/win32_window.c -// (the Dwm* functions are Vista era functions but we are borrowing logic from GLFW) -void ImGui_ImplWin32_EnableAlphaCompositing(void* hwnd) -{ - if (!_IsWindowsVistaOrGreater()) - return; - - BOOL composition; - if (FAILED(::DwmIsCompositionEnabled(&composition)) || !composition) - return; - - BOOL opaque; - DWORD color; - if (_IsWindows8OrGreater() || (SUCCEEDED(::DwmGetColorizationColor(&color, &opaque)) && !opaque)) - { - HRGN region = ::CreateRectRgn(0, 0, -1, -1); - DWM_BLURBEHIND bb = {}; - bb.dwFlags = DWM_BB_ENABLE | DWM_BB_BLURREGION; - bb.hRgnBlur = region; - bb.fEnable = TRUE; - ::DwmEnableBlurBehindWindow((HWND)hwnd, &bb); - ::DeleteObject(region); - } - else - { - DWM_BLURBEHIND bb = {}; - bb.dwFlags = DWM_BB_ENABLE; - ::DwmEnableBlurBehindWindow((HWND)hwnd, &bb); - } -} - -//--------------------------------------------------------------------------------------------------------- - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif -#if defined(__clang__) -#pragma clang diagnostic pop -#endif - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/imgui_impl_win32.h b/libs/imgui-1.92.1/backends/imgui_impl_win32.h deleted file mode 100644 index 5ae399e..0000000 --- a/libs/imgui-1.92.1/backends/imgui_impl_win32.h +++ /dev/null @@ -1,53 +0,0 @@ -// dear imgui: Platform Backend for Windows (standard windows API for 32-bits AND 64-bits applications) -// This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..) - -// Implemented features: -// [X] Platform: Clipboard support (for Win32 this is actually part of core dear imgui) -// [X] Platform: Mouse support. Can discriminate Mouse/TouchScreen/Pen. -// [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy VK_* values are obsolete since 1.87 and not supported since 1.91.5] -// [X] Platform: Gamepad support. -// [X] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. - -// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. -// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#pragma once -#include "imgui.h" // IMGUI_IMPL_API -#ifndef IMGUI_DISABLE - -// Follow "Getting Started" link and check examples/ folder to learn about using backends! -IMGUI_IMPL_API bool ImGui_ImplWin32_Init(void* hwnd); -IMGUI_IMPL_API bool ImGui_ImplWin32_InitForOpenGL(void* hwnd); -IMGUI_IMPL_API void ImGui_ImplWin32_Shutdown(); -IMGUI_IMPL_API void ImGui_ImplWin32_NewFrame(); - -// Win32 message handler your application need to call. -// - Intentionally commented out in a '#if 0' block to avoid dragging dependencies on from this helper. -// - You should COPY the line below into your .cpp code to forward declare the function and then you can call it. -// - Call from your application's message handler. Keep calling your message handler unless this function returns TRUE. - -#if 0 -extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); -#endif - -// DPI-related helpers (optional) -// - Use to enable DPI awareness without having to create an application manifest. -// - Your own app may already do this via a manifest or explicit calls. This is mostly useful for our examples/ apps. -// - In theory we could call simple functions from Windows SDK such as SetProcessDPIAware(), SetProcessDpiAwareness(), etc. -// but most of the functions provided by Microsoft require Windows 8.1/10+ SDK at compile time and Windows 8/10+ at runtime, -// neither we want to require the user to have. So we dynamically select and load those functions to avoid dependencies. -IMGUI_IMPL_API void ImGui_ImplWin32_EnableDpiAwareness(); -IMGUI_IMPL_API float ImGui_ImplWin32_GetDpiScaleForHwnd(void* hwnd); // HWND hwnd -IMGUI_IMPL_API float ImGui_ImplWin32_GetDpiScaleForMonitor(void* monitor); // HMONITOR monitor - -// Transparency related helpers (optional) [experimental] -// - Use to enable alpha compositing transparency with the desktop. -// - Use together with e.g. clearing your framebuffer with zero-alpha. -IMGUI_IMPL_API void ImGui_ImplWin32_EnableAlphaCompositing(void* hwnd); // HWND hwnd - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/backends/sdlgpu3/build_instructions.txt b/libs/imgui-1.92.1/backends/sdlgpu3/build_instructions.txt deleted file mode 100644 index 25f4a5d..0000000 --- a/libs/imgui-1.92.1/backends/sdlgpu3/build_instructions.txt +++ /dev/null @@ -1,40 +0,0 @@ - -Instructions to rebuild imgui_impl_sdlgpu3_shaders.h -(You don't need to copy this folder if you are using the backend as-is) - -1) Compile the raw shader files to SPIRV: - - glslc -o vertex.spv -c shader.vert - glslc -o fragment.spv -c shader.frag - - -2) Build SDL_shadercross (https://github.com/libsdl-org/SDL_shadercross) - - -3-A) Compiling for the Vulkan Driver: - - Nothing to do, you just need the previous vertex.spv/fragment.spv, proceed to step 4 - - -3-B) Compiling for the DirectX 12 Driver: - - ./shadercross vertex.spv -s SPIRV -d DXBC -t vertex -e main -o vertex.dxbc - ./shadercross fragment.spv -s SPIRV -d DXBC -t fragment -e main -o fragment.dxbc - - Proceed to step 4 - - -3-C) Compiling for Metal (On windows you'll need the Metal Developer Tools for Windows, on linux you might use wine, but I never tested it): - - ./shadercross vertex.spv -s SPIRV -d MSL -t vertex -e main -o vertex.metal - ./shadercross fragment.spv -s SPIRV -d MSL -t fragment -e main -o fragment.metal - - xcrun -sdk macosx metal -o vertex.ir -c vertex.metal - xcrun -sdk macosx metal -o fragment.ir -c fragment.metal - xcrun -sdk macosx metallib -o vertex.metallib -c vertex.ir - xcrun -sdk macosx metallib -o fragment.metallib -c fragment.ir - - Proceed to step 4 - - -4) Use a tool like https://notisrac.github.io/FileToCArray/ or misc/fonts/binary_to_compressed_c.cpp in imgui repository to convert the file to a uint8_t array. diff --git a/libs/imgui-1.92.1/backends/sdlgpu3/shader.frag b/libs/imgui-1.92.1/backends/sdlgpu3/shader.frag deleted file mode 100644 index ab9ce18..0000000 --- a/libs/imgui-1.92.1/backends/sdlgpu3/shader.frag +++ /dev/null @@ -1,15 +0,0 @@ -#version 450 core -layout(location = 0) out vec4 fColor; - -layout(set=2, binding=0) uniform sampler2D sTexture; - -layout(location = 0) in struct -{ - vec4 Color; - vec2 UV; -} In; - -void main() -{ - fColor = In.Color * texture(sTexture, In.UV.st); -} diff --git a/libs/imgui-1.92.1/backends/sdlgpu3/shader.vert b/libs/imgui-1.92.1/backends/sdlgpu3/shader.vert deleted file mode 100644 index 3a85a90..0000000 --- a/libs/imgui-1.92.1/backends/sdlgpu3/shader.vert +++ /dev/null @@ -1,24 +0,0 @@ -#version 450 core -layout(location = 0) in vec2 aPos; -layout(location = 1) in vec2 aUV; -layout(location = 2) in vec4 aColor; - -layout(set=1,binding=0) uniform UBO -{ - vec2 uScale; - vec2 uTranslate; -} ubo; - -layout(location = 0) out struct -{ - vec4 Color; - vec2 UV; -} Out; - -void main() -{ - Out.Color = aColor; - Out.UV = aUV; - gl_Position = vec4(aPos * ubo.uScale + ubo.uTranslate, 0, 1); - gl_Position.y *= -1.0f; -} diff --git a/libs/imgui-1.92.1/backends/vulkan/build_instructions.txt b/libs/imgui-1.92.1/backends/vulkan/build_instructions.txt deleted file mode 100644 index 1f028d9..0000000 --- a/libs/imgui-1.92.1/backends/vulkan/build_instructions.txt +++ /dev/null @@ -1,4 +0,0 @@ - -Script to rebuild shaders stored inside imgui_impl_vulkan.h -(You don't need to copy this folder if you are using the backend as-is) - diff --git a/libs/imgui-1.92.1/backends/vulkan/generate_spv.sh b/libs/imgui-1.92.1/backends/vulkan/generate_spv.sh deleted file mode 100644 index 948ef77..0000000 --- a/libs/imgui-1.92.1/backends/vulkan/generate_spv.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -## -V: create SPIR-V binary -## -x: save binary output as text-based 32-bit hexadecimal numbers -## -o: output file -glslangValidator -V -x -o glsl_shader.frag.u32 glsl_shader.frag -glslangValidator -V -x -o glsl_shader.vert.u32 glsl_shader.vert diff --git a/libs/imgui-1.92.1/backends/vulkan/glsl_shader.frag b/libs/imgui-1.92.1/backends/vulkan/glsl_shader.frag deleted file mode 100644 index ce7e6f7..0000000 --- a/libs/imgui-1.92.1/backends/vulkan/glsl_shader.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 core -layout(location = 0) out vec4 fColor; - -layout(set=0, binding=0) uniform sampler2D sTexture; - -layout(location = 0) in struct { - vec4 Color; - vec2 UV; -} In; - -void main() -{ - fColor = In.Color * texture(sTexture, In.UV.st); -} diff --git a/libs/imgui-1.92.1/backends/vulkan/glsl_shader.vert b/libs/imgui-1.92.1/backends/vulkan/glsl_shader.vert deleted file mode 100644 index 9425365..0000000 --- a/libs/imgui-1.92.1/backends/vulkan/glsl_shader.vert +++ /dev/null @@ -1,25 +0,0 @@ -#version 450 core -layout(location = 0) in vec2 aPos; -layout(location = 1) in vec2 aUV; -layout(location = 2) in vec4 aColor; - -layout(push_constant) uniform uPushConstant { - vec2 uScale; - vec2 uTranslate; -} pc; - -out gl_PerVertex { - vec4 gl_Position; -}; - -layout(location = 0) out struct { - vec4 Color; - vec2 UV; -} Out; - -void main() -{ - Out.Color = aColor; - Out.UV = aUV; - gl_Position = vec4(aPos * pc.uScale + pc.uTranslate, 0, 1); -} diff --git a/libs/imgui-1.92.1/docs/BACKENDS.md b/libs/imgui-1.92.1/docs/BACKENDS.md deleted file mode 100644 index fa05d55..0000000 --- a/libs/imgui-1.92.1/docs/BACKENDS.md +++ /dev/null @@ -1,378 +0,0 @@ -_(You may browse this at https://github.com/ocornut/imgui/blob/master/docs/BACKENDS.md or view this file with any Markdown viewer)_ - -# Dear ImGui: Backends - -## Index - -- [Introduction](#introduction) - - [Getting Started](#getting-started) - - [What are Backends?](#what-are-backends) -- [Using standard Backends](#using-standard-backends) -- [Using third-party Backends](#using-third-party-backends) -- [Writing your own Backend](#writing-your-own-backend) - - [Using a custom engine?](#using-a-custom-engine) - - [Platform: Implementing your Platform Backend](#platform-implementing-your-platform-backend) - - [Rendering: Implementing your RenderDrawData function](#rendering-implementing-your-renderdrawdata-function) - - [Rendering: Adding support for `ImGuiBackendFlags_RendererHasTextures` (1.92+)](#rendering-adding-support-for-imguibackendflags_rendererhastextures-192) - -## Introduction - -### Getting Started - -💡 The **[Getting Started](https://github.com/ocornut/imgui/wiki/Getting-Started) wiki guide** has examples of how to integrate Dear ImGui into an existing application. -
The [EXAMPLES.MD](https://github.com/ocornut/imgui/blob/master/docs/EXAMPLES.md) documentation may also be worth a read. - -### What are Backends? - -Dear ImGui is highly portable and only requires a few things to run and render, typically: - - - Required: providing mouse/keyboard inputs (fed into the `ImGuiIO` structure). - - Required: creating, updating and destroying textures. - - Required: rendering indexed textured triangles with a clipping rectangle. - - Extra features are opt-in, our backends try to support as many as possible: - - - Optional: custom texture binding support. - - Optional: clipboard support. - - Optional: gamepad support. - - Optional: mouse cursor shape support. - - Optional: IME support. - - Optional: multi-viewports support. - etc. - -This is essentially what each backend is doing + obligatory portability cruft. Using standard backends ensure you can get all those features including the ones that would be harder to implement on your side (e.g. multi-viewports support). - -It is important to understand the difference between the core Dear ImGui library (files in the root folder) -and the backends which we are describing here (backends/ folder). - -- Some issues may only be backend or platform specific. -- You should be able to write backends for pretty much any platform and any 3D graphics API. - e.g. you can get creative and use software rendering or render remotely on a different machine. - -## Using standard Backends - -**The [backends/](https://github.com/ocornut/imgui/blob/master/backends) folder contains backends for popular platforms/graphics API, which you can use in -your application or engine to easily integrate Dear ImGui.** Each backend is typically self-contained in a pair of files: imgui_impl_XXXX.cpp + imgui_impl_XXXX.h. - -- The 'Platform' backends are in charge of: mouse/keyboard/gamepad inputs, cursor shape, timing, and windowing.
- e.g. Windows ([imgui_impl_win32.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_win32.cpp)), SDL3 ([imgui_impl_sdl3.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_sdl3.cpp)), GLFW ([imgui_impl_glfw.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_glfw.cpp)), etc. - -- The 'Renderer' backends are in charge of: creating atlas texture, and rendering imgui draw data.
- e.g. DirectX11 ([imgui_impl_dx11.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_dx11.cpp)), OpenGL/WebGL ([imgui_impl_opengl3.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_opengl3.cpp)), Vulkan ([imgui_impl_vulkan.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_vulkan.cpp)), etc. - -- For some high-level frameworks, a single backend usually handles both 'Platform' and 'Renderer' parts.
- e.g. Allegro 5 ([imgui_impl_allegro5.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_allegro5.cpp)). If you end up creating a custom backend for your engine, you may want to do the same. - -An application usually combines one Platform backend + one Renderer backend + main Dear ImGui sources. -For example, the [example_win32_directx11](https://github.com/ocornut/imgui/tree/master/examples/example_win32_directx11) application combines imgui_impl_win32.cpp + imgui_impl_dx11.cpp. There are 20+ examples in the [examples/](https://github.com/ocornut/imgui/blob/master/examples/) folder. See [EXAMPLES.MD](https://github.com/ocornut/imgui/blob/master/docs/EXAMPLES.md) for details. - -**Once Dear ImGui is setup and running, run and refer to `ImGui::ShowDemoWindow()` in imgui_demo.cpp for usage of the end-user API.** - -### List of standard Backends - -In the [backends/](https://github.com/ocornut/imgui/blob/master/backends) folder: - -List of Platforms Backends: - - imgui_impl_android.cpp ; Android native app API - imgui_impl_glfw.cpp ; GLFW (Windows, macOS, Linux, etc.) http://www.glfw.org/ - imgui_impl_osx.mm ; macOS native API (not as feature complete as glfw/sdl backends) - imgui_impl_sdl2.cpp ; SDL2 (Windows, macOS, Linux, iOS, Android) https://www.libsdl.org - imgui_impl_sdl3.cpp ; SDL3 (Windows, macOS, Linux, iOS, Android) https://www.libsdl.org - imgui_impl_win32.cpp ; Win32 native API (Windows) - imgui_impl_glut.cpp ; GLUT/FreeGLUT (this is prehistoric software and absolutely not recommended today!) - -List of Renderer Backends: - - imgui_impl_dx9.cpp ; DirectX9 - imgui_impl_dx10.cpp ; DirectX10 - imgui_impl_dx11.cpp ; DirectX11 - imgui_impl_dx12.cpp ; DirectX12 - imgui_impl_metal.mm ; Metal (ObjC or C++) - imgui_impl_opengl2.cpp ; OpenGL 2 (legacy fixed pipeline. Don't use with modern OpenGL code!) - imgui_impl_opengl3.cpp ; OpenGL 3/4, OpenGL ES 2/3, WebGL - imgui_impl_sdlgpu3.cpp ; SDL_GPU (portable 3D graphics API of SDL3) - imgui_impl_sdlrenderer2.cpp ; SDL_Renderer (optional component of SDL2 available from SDL 2.0.18+) - imgui_impl_sdlrenderer3.cpp ; SDL_Renderer (optional component of SDL3. Prefer using SDL_GPU!). - imgui_impl_vulkan.cpp ; Vulkan - imgui_impl_wgpu.cpp ; WebGPU (web + desktop) - -List of high-level Frameworks Backends (combining Platform + Renderer): - - imgui_impl_allegro5.cpp - -Emscripten is also supported! -The SDL2+GL, SDL3+GL, GLFW+GL and GLFW+WebGPU examples are all ready to build and run with Emscripten. - -### Recommended Backends - -If you are not sure which backend to use, the recommended platform/frameworks for portable applications: - -|Library |Website |Backend |Note | -|--------|--------|--------|-----| -| SDL3 | https://www.libsdl.org | imgui_impl_sdl3.cpp | Recommended | -| SDL2 | https://www.libsdl.org | imgui_impl_sdl2.cpp | | -| GLFW | https://github.com/glfw/glfw | imgui_impl_glfw.cpp | | -| Sokol | https://github.com/floooh/sokol | [util/sokol_imgui.h](https://github.com/floooh/sokol/blob/master/util/sokol_imgui.h) | Lower-level than GLFW/SDL | - -If your application runs on Windows or if you are using multi-viewport, the win32 backend handles some details a little better than other backends. - -## Using third-party Backends - -See https://github.com/ocornut/imgui/wiki/Bindings for the full list (e.g. Adventure Game Studio, Cinder, Cocos2d-x, Game Maker Studio2, Godot, LÖVE+LUA, Magnum, Monogame, Ogre, openFrameworks, OpenSceneGraph, SFML, Sokol, Unity, Unreal Engine and many others). - -## Writing your own Backend - -### Using a custom engine? - -You will likely be tempted to start by rewrite your own backend using your own custom/high-level facilities...
-Think twice! - -TL;DR; -- Writing your own Renderer Backend is easy. -- Writing your own Platform Backend is harder and you are more likely to introduce bugs. -- **It is unlikely you will add value to your project by creating your own backend.** - -**Consider using the existing backends as-is**. -You will save lots of time integrating the library. -Standard backends are battle-tested and handle subtleties that you are likely to implement incorrectly. -You can LATER decide to rewrite yourself a custom backend if you really need to. -In most situations, custom backends have fewer features and more bugs than the standard backends we provide. -If you want portability, you can use multiple backends and choose between them either at compile time -or at runtime. - -**Example A**: your engine is built over Windows + DirectX11 but you have your own high-level rendering -system layered over DirectX11.
-Suggestion: try using imgui_impl_win32.cpp + imgui_impl_dx11.cpp first. -Once it works, if you really need it, you can replace the imgui_impl_dx11.cpp code with a -custom renderer using your own rendering functions, and keep using the standard Win32 code etc. - -**Example B**: your engine runs on Windows, Mac, Linux and uses DirectX11, Metal, and Vulkan respectively.
-Suggestion: use multiple generic backends! -Once it works, if you really need it, you can replace parts of backends with your own abstractions. - -**Example C**: your engine runs on platforms we can't provide public backends for (e.g. PS4/PS5, Switch), -and you have high-level systems everywhere.
-Suggestion: try using a non-portable backend first (e.g. win32 + underlying graphics API) to get -your desktop builds working first. This will get you running faster and get your acquainted with -how Dear ImGui works and is setup. You can then rewrite a custom backend using your own engine API... - -Also: -The [multi-viewports feature](https://github.com/ocornut/imgui/wiki/Multi-Viewports) of the 'docking' branch allows -Dear ImGui windows to be seamlessly detached from the main application window. This is achieved using an -extra layer to the Platform and Renderer backends, which allows Dear ImGui to communicate platform-specific -requests such as: "create an additional OS window", "create a render context", "get the OS position of this -window", but some things are more difficult "find OS window under mouse position BUT with some windows marked as passthrough". See 'ImGuiPlatformIO' for details. -Supporting the multi-viewports feature correctly using 100% of your own abstractions is more difficult -than supporting single-viewport. -If you decide to use unmodified imgui_impl_XXXX.cpp files, you can automatically benefit from -improvements and fixes related to viewports and platform windows without extra work on your side. - -### Platform: Implementing your Platform Backend - -The Platform backends in impl_impl_XXX.cpp files contain many implementations. - -**In your `ImGui_ImplXXX_Init()` function:** -- You can allocate your backend data and use `io.BackendPlatformUserData` to store/retrieve it later. -- Set `io.BackendPlatformName` to a name `"imgui_impl_xxxx"` which will be available in e.g. About box. -- Set `io.BackendPlatformUserData` to your backend data. -- Set `io.BackendFlags` with supported optional features: - - `ImGuiBackendFlags_HasGamepad`: supports gamepad and currently has one connected. - - `ImGuiBackendFlags_HasMouseCursors`: supports honoring GetMouseCursor() value to change the OS cursor shape. - - `ImGuiBackendFlags_HasSetMousePos`: supports io.WantSetMousePos requests to reposition the OS mouse position (only used if io.ConfigNavMoveSetMousePos is set). - - `ImGuiBackendFlags_PlatformHasViewports` supports multiple viewports. (multi-viewports only) - - `ImGuiBackendFlags_HasMouseHoveredViewport` supports calling io.AddMouseViewportEvent() with the viewport under the mouse. IF POSSIBLE, ignore viewports with the ImGuiViewportFlags_NoInputs flag. If this cannot be done, Dear ImGui needs to use a flawed heuristic to find the viewport under mouse position, as it doesn't know about foreign windows. (multi-viewports only) - -**In your `ImGui_ImplXXX_NewFrame()` function:** -- Set `io.DeltaTime` to the time elapsed (in seconds) since last frame. -- Set `io.DisplaySize` to your window size. -- Set `io.DisplayFrameBufferSize` to your window pixel density (macOS/iOS only). -- Update mouse cursor shape is supported. - -**In your `ImGui_ImplXXX_NewFrame()` function or event handlers:** -- **Mouse Support** - - Use `io.AddMousePosEvent()`, `io.AddMouseButtonEvent()`, `io.AddMouseWheelEvent()` to pass mouse events. - - Use `io.AddMouseSourceEvent()` if you are able to distinguish Mouse from TouchScreen from Pen inputs. TouchScreen and Pen inputs requires different logic for some Dear ImGui features. - - Use `io.AddMouseViewportEvent()` to specify which viewport/OS window is being hovered by the mouse. Read instructions carefully as this is not as simple as it seems! (multi-viewports only) -- **Keyboard Support** - - Use `io.AddKeyEvent()` to pass key events. - - Use `io.AddInputCharacter()` to pass text/character events. -- **Gamepad Support** - - Use `io.AddKeyEvent()` and `io.AddKeyAnalogEvent()` to pass gamepad events, using `ImGuiKey_GamepadXXX` values. -- **Miscellaneous** - - Clipboard Support: setup `Platform_GetClipboardTextFn()`, `Platform_SetClipboardTextFn()` handlers in `ImGuiPlatformIO`. - - Open in Shell support: setup `Platform_OpenInShellFn()` handler in `ImGuiPlatformIO`. - - IME Support: setup `Platform_SetImeDataFn()` handler in `ImGuiPlatformIO`. - - Use `io.AddFocusEvent()` to notify when application window gets focused/unfocused. -- **Multi-viewport Support** - - Update monitor list if supported. - - Setup all required handlers in `ImGuiPlatformIO` to create/destroy/move/resize/title/focus/etc. windows. - -### Rendering: Implementing your RenderDrawData function - -Note: set `ImGuiBackendFlags_RendererHasVtxOffset` to signify your backend can handle rendering with a vertex offset (`ImDrawCmd::VtxOffset` field). -Otherwise, rendering will be limited to 64K vertices per window, which may be limiting for advanced plot. -As an alternative, you may also use `#define ImDrawIdx unsigned int` in your `imconfig.h` file to support 32-bit indices. - -```cpp -void MyImGuiBackend_RenderDrawData(ImDrawData* draw_data) -{ - // TODO: Update textures. - // - Most of the times, the list will have 1 element with an OK status, aka nothing to do. - // - This almost always points to ImGui::GetPlatformIO().Textures[] but is part of ImDrawData to allow overriding or disabling texture updates. - if (draw_data->Textures != nullptr) - for (ImTextureData* tex : *draw_data->Textures) - if (tex->Status != ImTextureStatus_OK) - MyImGuiBackend_UpdateTexture(tex); - - // TODO: Setup render state: - // - Alpha-blending enabled - // - No backface culling - // - No depth testing, no depth writing - // - Scissor enabled - MyEngineSetupenderState(); - - // TODO: Setup texture sampling state - // - Sample with bilinear filtering (NOT point/nearest filtering). - // - Use 'io.Fonts->Flags |= ImFontAtlasFlags_NoBakedLines;' to allow point/nearest filtering. - - // TODO: Setup viewport covering draw_data->DisplayPos to draw_data->DisplayPos + draw_data->DisplaySize - - // TODO: Setup orthographic projection matrix cover draw_data->DisplayPos to draw_data->DisplayPos + draw_data->DisplaySize - - // TODO: Setup shader: vertex { float2 pos, float2 uv, u32 color }, fragment shader sample color from 1 texture, multiply by vertex color. - - // Render command lists - ImVec2 clip_off = draw_data->DisplayPos; - ImVec2 clip_scale = draw_data->FramebufferScale; - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* cmd_list = draw_data->CmdLists[n]; - const ImDrawVert* vtx_buffer = cmd_list->VtxBuffer.Data; // vertex buffer generated by Dear ImGui - const ImDrawIdx* idx_buffer = cmd_list->IdxBuffer.Data; // index buffer generated by Dear ImGui - for (int cmd_i = 0; cmd_i < cmd_list->CmdBuffer.Size; cmd_i++) - { - const ImDrawCmd* pcmd = &cmd_list->CmdBuffer[cmd_i]; - if (pcmd->UserCallback) - { - if (pcmd->UserCallback == ImDrawCallback_ResetRenderState) - MyEngineSetupenderState(); - else - pcmd->UserCallback(cmd_list, pcmd); - } - else - { - // Project scissor/clipping rectangles into framebuffer space - // - Clipping coordinates are provided in imgui coordinates space: - // - For a given viewport, draw_data->DisplayPos == viewport->Pos and draw_data->DisplaySize == viewport->Size - // - In a single viewport application, draw_data->DisplayPos == (0,0) and draw_data->DisplaySize == io.DisplaySize, but always use GetMainViewport()->Pos/Size instead of hardcoding those values. - // - In the interest of supporting multi-viewport applications (see 'docking' branch on github), - // always subtract draw_data->DisplayPos from clipping bounds to convert them to your viewport space. - // - Note that pcmd->ClipRect contains Min+Max bounds. Some graphics API may use Min+Max, other may use Min+Size (size being Max-Min) - ImVec2 clip_min((pcmd->ClipRect.x - clip_off.x) * clip_scale.x, (pcmd->ClipRect.y - clip_off.y) * clip_scale.y); - ImVec2 clip_max((pcmd->ClipRect.z - clip_off.x) * clip_scale.x, (pcmd->ClipRect.w - clip_off.y) * clip_scale.y); - if (clip_max.x <= clip_min.x || clip_max.y <= clip_min.y) - continue; - - // We are using scissoring to clip some objects. All low-level graphics API should support it. - // - If your engine doesn't support scissoring yet, you may ignore this at first. You will get some small glitches - // (some elements visible outside their bounds) but you can fix that once everything else works! - MyEngineSetScissor(clip_min.x, clip_min.y, clip_max.x, clip_max.y); - - // The texture for the draw call is specified by pcmd->GetTexID(). - // The vast majority of draw calls will use the Dear ImGui texture atlas, which value you have set yourself during initialization. - MyEngineBindTexture((MyTexture*)pcmd->GetTexID()); - - // Render 'pcmd->ElemCount/3' indexed triangles. - // By default the indices ImDrawIdx are 16-bit, you can change them to 32-bit in imconfig.h if your engine doesn't support 16-bit indices. - MyEngineDrawIndexedTriangles(pcmd->ElemCount, sizeof(ImDrawIdx) == 2 ? GL_UNSIGNED_SHORT : GL_UNSIGNED_INT, idx_buffer + pcmd->IdxOffset, vtx_buffer, pcmd->VtxOffset); - } - } - } -} -``` - -### Rendering: Adding support for `ImGuiBackendFlags_RendererHasTextures` (1.92+) - -Version [1.92.0](https://github.com/ocornut/imgui/releases/tag/v1.92.0) (June 2025), added texture support in Rendering Backends, which is the backbone for supporting dynamic font scaling among other things. - -**In order to move forward and take advantage of all new features, support for `ImGuiBackendFlags_RendererHasTextures` will likely be REQUIRED for all backends before June 2026.** - -`ImFontAtlas` functions such as `Build()`, `GetTexDataAsRGBA32()`, `GetTexDataAsAlpha8()`, `SetTexID()`, `IsBuilt()` were obsoleted in favor if iterating a `Textures[]` array and updating their state when requested by Dear ImGui. - -**TD;DR: List of commits which added support for `ImGuiBackendFlags_RendererHasTextures` in standard backends:** - -- Allegro5: [ee8941e](https://github.com/ocornut/imgui/commit/ee8941e) (+35 lines) -- DirectX9: [75efba7](https://github.com/ocornut/imgui/commit/75efba7) (+48 lines) -- DirectX10: [2d2b1bc](https://github.com/ocornut/imgui/commit/2d2b1bc) (+40 lines) -- DirectX11: [372fd27](https://github.com/ocornut/imgui/commit/372fd27) (+40 lines) -- DirectX12: [eefe5d5](https://github.com/ocornut/imgui/commit/eefe5d5) (+87 lines) -- Metal: [26c017d](https://github.com/ocornut/imgui/commit/26c017d) (+55 lines) -- OpenGL Legacy: [0430c55](https://github.com/ocornut/imgui/commit/0430c55) (+25 lines) -- OpenGL3/WebGL/ES: [dbb91a5](https://github.com/ocornut/imgui/commit/dbb91a5) (+47 lines) -- SDL_Renderer2: [9fa65cd](https://github.com/ocornut/imgui/commit/9fa65cd) (+20 lines) -- SDL_Renderer3: [e538883](https://github.com/ocornut/imgui/commit/e538883) (+19 lines) -- SDL_GPU: [16fe666](https://github.com/ocornut/imgui/commit/16fe666) (+41 lines) -- Vulkan: [abe294b](https://github.com/ocornut/imgui/commit/abe294b) (+33 lines) -- WGPU: [571dae9](https://github.com/ocornut/imgui/commit/571dae9) (+30 lines) - -**Instructions:** - -- Set `ImGuiBackendFlags_RendererHasTextures` to signify your backend can handle the feature. -- During rendering, e.g. in your RenderDrawData function, iterate `ImDrawData->Textures` array and process all textures. -- During shutdown, iterate the `ImGui::GetPlatformIO().Textures` and destroy all textures. -- (Both arrays are `ImVector`. They are only in different location because: to allow advanced users to perform multi-threaded rendering, we store a pointer to the texture list in ImDrawData, with the aim that multi-threaded rendering users replace it with their own pointer.) - -Pseudo-code for processing a texture: -```cpp -if (draw_data->Textures != nullptr) - for (ImTextureData* tex : *draw_data->Textures) - if (tex->Status != ImTextureStatus_OK) - MyImGuiBackend_UpdateTexture(tex); -``` -```cpp -void MyImGuiBackend_UpdateTexture(ImTextureData* tex) -{ - if (tex->Status == ImTextureStatus_WantCreate) - { - // Create texture based on tex->Width, tex->Height. - // - Most backends only support tex->Format == ImTextureFormat_RGBA32. - // - Backends for particularly memory constrainted platforms may support tex->Format == ImTextureFormat_Alpha8. - - // Upload all texture pixels - // - Read from our CPU-side copy of the texture and copy to your graphics API. - // - Use tex->Width, tex->Height, tex->GetPixels(), tex->GetPixelsAt(), tex->GetPitch() as needed. - - // Store your data, and acknowledge creation. - tex->SetTexID(xxxx); // Specify backend-specific ImTextureID identifier which will be stored in ImDrawCmd. - tex->SetStatus(ImTextureStatus_OK); - tex->BackendUserData = xxxx; // Store more backend data if needed (most backend allocate a small texture to store data in there) - } - if (tex->Status == ImTextureStatus_WantUpdates) - { - // Upload a rectangle of pixels to the existing texture - // - We only ever write to textures regions which have never been used before! - // - Use tex->TexID or tex->BackendUserData to retrieve your stored data. - // - Use tex->UpdateRect.x/y, tex->UpdateRect.w/h to obtain the block position and size. - // - Use tex->Updates[] to obtain individual sub-regions within tex->UpdateRect. Not recommended. - // - Read from our CPU-side copy of the texture and copy to your graphics API. - // - Use tex->Width, tex->Height, tex->GetPixels(), tex->GetPixelsAt(), tex->GetPitch() as needed. - - // Acknowledge update - tex->SetStatus(ImTextureStatus_OK); - } - if (tex->Status == ImTextureStatus_WantDestroy && tex->UnusedFrames > 0) - { - // If you use staged rendering and have in-flight renders, changed tex->UnusedFrames > 0 check to higher count as needed e.g. > 2 - - // Destroy texture - // - Use tex->TexID or tex->BackendUserData to retrieve your stored data. - // - Destroy texture in your graphics API. - - // Acknowledge destruction - tex->SetTexID(ImTextureID_Invalid); - tex->SetStatus(ImTextureStatus_Destroyed); - } -} -``` -Refer to "List of commits which added support for `ImGuiBackendFlags_RendererHasTextures` in standard backends" above for concrete examples of this. diff --git a/libs/imgui-1.92.1/docs/CHANGELOG.txt b/libs/imgui-1.92.1/docs/CHANGELOG.txt deleted file mode 100644 index 2241825..0000000 --- a/libs/imgui-1.92.1/docs/CHANGELOG.txt +++ /dev/null @@ -1,7573 +0,0 @@ -dear imgui -CHANGELOG - -This document holds the user-facing changelog that we also use in release notes. -We generally fold multiple commits pertaining to the same topic as a single entry. -Changes to backends are also included within the individual .cpp files of each backend. - -FAQ https://www.dearimgui.com/faq/ -RELEASE NOTES: https://github.com/ocornut/imgui/releases -WIKI https://github.com/ocornut/imgui/wiki -GETTING STARTED https://github.com/ocornut/imgui/wiki/Getting-Started -GLOSSARY https://github.com/ocornut/imgui/wiki/Glossary -ISSUES & SUPPORT https://github.com/ocornut/imgui/issues - -WHEN TO UPDATE? - -- Keeping your copy of Dear ImGui updated regularly is recommended. -- It is generally safe and recommended to sync to the latest commit in 'master' or 'docking' - branches. The library is fairly stable and regressions tends to be fixed fast when reported. - -HOW TO UPDATE? - -- Update submodule or copy/overwrite every file. -- About imconfig.h: - - You may modify your copy of imconfig.h, in this case don't overwrite it. - - or you may locally branch to modify imconfig.h and merge/rebase latest. - - or you may '#define IMGUI_USER_CONFIG "my_config_file.h"' globally from your build system to - specify a custom path for your imconfig.h file and instead not have to modify the default one. -- Read the `Breaking Changes` section (in imgui.cpp or here in the Changelog). -- If you have a problem with a missing function/symbols, search for its name in the code, there will likely be a comment about it. -- If you are copying this repository in your codebase, please leave the demo and documentations files in there, they will be useful. -- You may diff your previous Changelog with the one you just copied and read that diff. -- You may enable `IMGUI_DISABLE_OBSOLETE_FUNCTIONS` in imconfig.h to forcefully disable legacy names and symbols. - Doing it every once in a while is a good way to make sure you are not using obsolete symbols. Dear ImGui is in active development, - and API updates have been a little more frequent lately. They are documented below and in imgui.cpp and should not affect all users. -- Please report any issue! - ------------------------------------------------------------------------ - VERSION 1.92.1 (Released 2025-07-09) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.92.1 - -Changes: - -- Fonts: added ImFontAtlas::SetFontLoader() to dynamically change font - loader at runtime without using internal API. (#8752, #8465) -- Fonts: fixed a bug where dynamically changing font loader would lose - the Fallback and Ellipsis glyphs under some circumstance. (#8763) -- Fonts: for large size fonts, layout/size calculation only load glyphs metrics. - Actual glyphs are renderer+packed when used by drawing functions. (#8758, #8465) -- Fonts: set a maximum font size of 512.0f at ImGui:: API level to reduce - edge cases (e.g. out of memory errors). ImDrawList:: API doesn't have the - constraint. (#8758) -- Fonts: Restore ImFontConfig::FontNo being a 32-bits value as this is needed - to pass full range of information into e.g. FreeType's face_index, as higher - bits are used from FreeType 2.6.1. (#8775) [@Valakor] - (the field has been erroneously reduced from 32-bits to 8-bit in 1.92.0) -- Textures: Fixed support for `#define ImTextureID_Invalid` to non-zero value: - ImTextureData() was incorrectly cleared with zeroes. (#8745) [@rachit7645] -- Demo: Added "Text -> Font Size" demo section. (#8738) [@Demonese] -- CI: Fixed dllimport/dllexport tests. (#8757) [@AidanSun05] -- CI: Updated to use latest Windows image + VS2022. -- Debug Tools: added IMGUI_DEBUG_HIGHLIGHT_ALL_ID_CONFLICTS to detect - id conflicts _before_ hovering. This is very slow and should only be used - temporarily. (#8651, #7961, #7669) -- Examples: GLFW+OpenGL3, GLFW+WGPU: Emscripten Makefiles uses GLFW port - 'contrib.glfw3' which offers better HiDPI support. (#8742) [@pthom] -- Backends: GLFW, SDL2 made ImGui_ImplGLFW_GetContentScaleXXX() and - ImGui_ImplSDL2_GetContentScaleXXXX() helpers return 1.0f on Emscripten - and Android platforms, matching macOS logic. (#8742, #8733) [@pthom] -- Backends: SDL3: avoid calling SDL_StartTextInput() again if already active. - (fixes e.g.: an issue on iOS where the keyboard animation will popup every - time the user types a key + probably other things) (#8727) [@morrazzzz] -- Backends: OSX: added ImGuiMouseCursor_Wait and ImGuiMouseCursor_Progress - mouse cursor support. (#8739) [@cfillion] -- Backends: Allegro5: fixed texture update broken on some platforms where - ALLEGRO_LOCK_WRITEONLY needed all texels to be rewritten. (#8770) -- Backends: Vulkan: use nonCoherentAtomSize to align upload_size, fixing - validation error on some setups. (#8743, #8744) [@tquante] -- Backends: Vulkan: fixed texture synchronization issue introduced in 1.92.0, - leading to validation layers reacting. (#8772) [@Majora320] - - ------------------------------------------------------------------------ - VERSION 1.92.0 (Released 2025-06-25) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.92.0 - -THIS VERSION CONTAINS THE LARGEST AMOUNT OF BREAKING CHANGES SINCE 2015! -I TRIED REALLY HARD TO KEEP THEM TO A MINIMUM, REDUCE THE AMOUNT OF INTERFERENCE, -BUT INEVITABLY SOME USERS OR THIRD-PARTY EXTENSIONS WILL BE AFFECTED. - -For instructions to upgrade your custom backend: ---> See https://github.com/ocornut/imgui/blob/master/docs/BACKENDS.md - -IN ORDER TO HELP US IMPROVE THE TRANSITION PROCESS, INCL. DOCUMENTATION AND COMMENTS, -PLEASE REPORT **ANY** DOUBT, CONFUSION, QUESTIONS, FEEDBACK TO: - https://github.com/ocornut/imgui/issues/ -If you are using custom widgets, internals or third-party extension that are somehow -breaking and aren't obvious how to solve, please post in Issues so we can gather -data and share solutions that may help others. - -As part of the plan to reduce impact of API breaking changes, several unfinished -changes/features/refactors related to font and text systems and scaling will be -part of subsequent releases (1.92.1+). - -If you are updating from an old version, and expecting a massive or difficult update, -consider first updating to 1.91.9 to reduce the amount of changes. - -Breaking changes: - -- Fonts: **IMPORTANT**: if your app was solving the OSX/iOS Retina screen specific - logical vs display scale problem by setting io.DisplayFramebufferScale (e.g. to 2.0f) - + setting io.FontGlobalScale (e.g. to 1.0f/2.0f) + loading fonts at scaled sizes (e.g. size X * 2.0f): - - This WILL NOT map correctly to the new system! Because font will rasterize as requested size. - - With a legacy backend (< 1.92): - - Instead of setting io.FontGlobalScale = 1.0f/N -> set ImFontCfg::RasterizerDensity = N. - - This already worked before, but is now pretty much required. - - With a new backend (1.92+), - - This should be all automatic. - - FramebufferScale is automatically used to set current font RasterizerDensity. - - FramebufferScale is a per-viewport property provided by backend through the - Platform_GetWindowFramebufferScale() handler in 'docking' branch. -- Fonts: **IMPORTANT** on Font Sizing: - - Before 1.92, fonts were of a single size. They can now be dynamically sized. - - PushFont() API now has a REQUIRED size parameter. - void PushFont(ImFont* font) --> void PushFont(ImFont* font, float size); - - PushFont(font, 0.0f) // Change font and keep current size - - PushFont(NULL, 20.0f) // Keep font and change current size - - PushFont(font, 20.0f) // Change font and set size to 20.0f - - PushFont(font, style.FontSizeBase * 2.0f) // Change font and set size to be twice bigger than current size. - - PushFont(font, font->LegacySize) // Change font and set size to size passed to AddFontXXX() function. Same as pre-1.92 behavior, for fixed size fonts. - - To use old behavior use 'ImGui::PushFont(font, font->LegacySize)' at call site. - We intentionally didn't add a default parameter because it would make the long-term - transition more difficult. - - Kept inline redirection font. Will obsolete. - - Global scale factors may be applied over the provided size. - This is why it is called 'FontSizeBase' in the style structure. - - Global scale factors are: 'style.FontScaleMain', 'style.FontScaleDpi' and maybe more. - - ImFont::FontSize was removed and does not make sense anymore. - - ImFont::LegacySize is the size passed to AddFont(). - - Removed support for old PushFont(NULL) which was a shortcut for "revert to default font". - `PushFont(NULL, some_size)` now keeps current change and changes size. - - Renamed/moved 'io.FontGlobalScale' to 'style.FontScaleMain'. -- Fonts: **IMPORTANT** on Font Merging: - - When searching for a glyph in multiple merged fonts: we search for the FIRST font source - which contains the desired glyph. Because the user doesn't need to provide glyph ranges - any more, it is possible that a glyph that you expected to fetch from a secondary/merged - icon font may be erroneously fetched from the primary font. - - We added `ImFontConfig::GlyphExcludeRanges[]` to specify ranges to exclude from a given font source: - // Add Font Source 1 but ignore ICON_MIN_FA..ICON_MAX_FA range - static ImWchar exclude_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 }; - ImFontConfig cfg1; - cfg1.GlyphExcludeRanges = exclude_ranges; - io.Fonts->AddFontFromFileTTF("segoeui.ttf", 0.0f, &cfg1); - // Add Font Source 2, which expects to use the range above - ImFontConfig cfg2; - cfg2.MergeMode = true; - io.Fonts->AddFontFromFileTTF("FontAwesome4.ttf", 0.0f, &cfg2); - - You can use `Metrics/Debugger->Fonts->Font->Input Glyphs Overlap Detection Tool` to - see list of glyphs available in multiple font sources. This can facilitate understanding - which font input is providing which glyph. - -- Textures: - - All API functions taking a 'ImTextureID' parameter are now taking a 'ImTextureRef': - - ImTextureRef ais small composite structure which may be constructed from a ImTextureID. - (or constructed from a ImTextureData* which represent a texture which will generally - be ready by the time of rendering). - - Affected functions are: - - ImGui::Image(), ImGui::ImageWithBg(), ImGui::ImageButton(), - - ImDrawList::AddImage(), ImDrawList::AddImageQuad(), ImDrawList::AddImageRounded(). - - We suggest that C users and any higher-level language bindings generators may - facilitate converting this in some way, aka emulating the trivial C++ constructor. -- Fonts: obsoleted ImFontAtlas::GetTexDataAsRGBA32(), GetTexDataAsAlpha8(), Build(), SetTexID() - and IsBuilt() functions. The new protocol for backends to handle textures doesn't need them. - Kept redirection functions (will obsolete). - - A majority of old backends should still work with new code (behaving like they did before). - - For instructions to upgrade your custom backend: - https://github.com/ocornut/imgui/blob/master/docs/BACKENDS.md - - Calling ImFontAtlas::Build() before initializing new backends will erroneously trigger - preloading all glyphs. Will be detected with an assertion after the backend is initialized. -- Fonts: ImFontConfig::OversampleH/OversampleV default to automatic (== 0) - since v1.91.8. It is quite important you keep it automatic until we decide if we want - to provide a way to express finer policy, otherwise you will likely waste texture space - when using large glyphs. Note that the imgui_freetype backend doesn't use and does not - need oversampling. -- Fonts: specifying glyph ranges is now unnecessary. - - The value of ImFontConfig::GlyphRanges[] is only useful for legacy backends. - - All GetGlyphRangesXXXX() functions are now marked obsolete: - - GetGlyphRangesDefault(), GetGlyphRangesGreek(), GetGlyphRangesKorean(), - GetGlyphRangesJapanese(), GetGlyphRangesChineseSimplifiedCommon(), - GetGlyphRangesChineseFull(), GetGlyphRangesCyrillic(), - GetGlyphRangesThai(), GetGlyphRangesVietnamese(). -- Fonts: removed ImFontAtlas::TexDesiredWidth to enforce a texture width. (#327) - (it vaguely made sense with the old system as if unspecified textures width maxed up - to 4096 but that limit isn't necessary anymore, and Renderer_TextureMaxWidth covers this) - However you may set TexMinWidth = TexMaxWidth for the same effect. -- Fonts: if you create and manage ImFontAtlas instances yourself (instead of relying on - ImGuiContext to create one, you'll need to call ImFontAtlasUpdateNewFrame() yourself. - An assert will trigger if you don't. -- Fonts: obsoleted ImGui::SetWindowFontScale() which is not useful anymore. Prefer using - PushFont(NULL, style.FontSizeBase * factor) or to manipulate other scaling factors. -- Fonts: obsoleted ImFont::Scale which is not useful anymore. -- Fonts: changed ImFont::CalcWordWrapPositionA() to ImFont::CalcWordWrapPosition(): - - old: const char* CalcWordWrapPositionA(float scale, const char* text, ....); - - new: const char* CalcWordWrapPosition (float size, const char* text, ....); - The leading 'float scale' parameters was changed to 'float size'. - This was necessary as 'scale' is assuming a unique font size. - Kept inline redirection function assuming using font->LegacySize. -- Fonts: generally reworked Internals of ImFontAtlas and ImFont. - While in theory a vast majority of users shouldn't be affected, some use cases or - extensions might be. Among other things: - - ImDrawCmd::TextureId has been changed to ImDrawCmd::TexRef. - - ImFontAtlas::TexID has been changed to ImFontAtlas::TexRef. - - ImFontAtlas::ConfigData[] has been renamed to ImFontAtlas::Sources[]. - - ImFont::ConfigData[], ConfigDataCount has been renamed to Sources[], SourceCount. - - Each ImFont has a number of ImFontBaked instances corresponding to actively used - sizes. ImFont::GetFontBaked(size) retrieves the one for a given size. - - Fields moved from ImFont to ImFontBaked: - - ImFont::IndexAdvanceX[] -> ImFontBaked::IndexAdvanceX[] - - ImFont::Glyphs[] -> ImFontBaked::Glyphs[] - - ImFont::Ascent, Descent -> ImFontBaked::Ascent, Descent - - ImFont::FindGlyph() -> ImFontBaked::FindGlyph() - - ImFont::FindGlyphNoFallback() -> ImFontBaked::FindGlyphNoFallback() - - ImFont::GetCharAdvance() -> ImFontBaked::GetCharAdvance() - - Widget code may use ImGui::GetFontBaked() instead of ImGui::GetFont() to - access font data for current font at current font size. - (and you may use font->GetFontBaked(size) to access it for any other size.) - g.Font == ImGui::GetFont() - g.FontSize == ImGui::GetFontSize() - g.FontBaked == ImGui::GetFontBaked() == ImGui::GetFont()->GetFontBaked(ImGui::GetFontSize()) - - Fields moved from ImFontAtlas to ImTextureData - - ImFontAtlas->TexWidth -> ImFontAtlas->TexData->Width - - ImFontAtlas->TexHeight -> ImFontAtlas->TexData->Height - - ImFontAtlas->TexPixelsAlpha8 -> ImFontAtlas->TexData->GetPixels() (when ImFontAtlas::TexDesiredFormat == ImTextureFormat_Alpha8) - - ImFontAtlas->TexPixelsRGBA32 -> ImFontAtlas->TexData->GetPixels() (when ImFontAtlas::TexDesiredFormat == ImTextureFormat_RGBA32) - Please report if you are affected! -- Fonts: (users of imgui_freetype) - - renamed ImFontAtlas::FontBuilderFlags to ImFontAtlas::FontLoaderFlags. - - renamed ImFontConfig::FontBuilderFlags to ImFontConfig::FontLoaderFlags. - - renamed ImGuiFreeTypeBuilderFlags to ImGuiFreeTypeLoaderFlags. - - if you used runtime imgui_freetype selection rather than the default compile-time - option provided by IMGUI_ENABLE_FREETYPE: - - renamed/reworked ImFontBuilderIO into ImFontLoader, - - renamed ImGuiFreeType::GetBuilderForFreeType() to ImGuiFreeType::GetFontLoader() - - old: io.Fonts->FontBuilderIO = ImGuiFreeType::GetBuilderForFreeType() - - new: io.Fonts->FontLoader = ImGuiFreeType::GetFontLoader() -- DrawList: Renamed ImDrawList::PushTextureID()/PopTextureID() to PushTexture()/PopTexture(). -- Fonts: (users of custom rectangles) - - Renamed AddCustomRectRegular() to AddCustomRect(). (#8466) - - Added GetCustomRect() as a replacement for GetCustomRectByIndex() + CalcCustomRectUV(). (#8466) - - The output type of GetCustomRect() is now ImFontAtlasRect, which include UV coordinates. - - ImFontAtlasCustomRect::X --> ImFontAtlasRect::x - - ImFontAtlasCustomRect::Y --> ImFontAtlasRect::y - - ImFontAtlasCustomRect::Width --> ImFontAtlasRect::w - - ImFontAtlasCustomRect::Height --> ImFontAtlasRect::h - Before: - const ImFontAtlasCustomRect* r = atlas->GetCustomRectByIndex(custom_rect_id); - ImVec2 uv0, uv1; - atlas->GetCustomRectUV(r, &uv0, &uv1); - ImGui::Image(atlas->TexRef, ImVec2(r->w, r->h), uv0, uv1); - After: - ImFontAtlasRect r; - atlas->GetCustomRect(custom_rect_id, &r); - ImGui::Image(atlas->TexRef, ImVec2(r.w, r.h), r.uv0, r.uv1); - We added a redirecting typedef but haven't attempted to magically redirect - the field names, as this API is rarely used and the fix is simple. - - Obsoleted AddCustomRectFontGlyph() as the API does not make sense for scalable fonts: - - Kept existing function which uses the font "default size" (Sources[0]->LegacySize). - - Added a helper AddCustomRectFontGlyphForSize() which is immediately marked obsolete, - but can facilitate transitioning old code. - - Prefer adding a font source (ImFontConfig) using a custom/procedural loader. -- Backends: removed ImGui_ImplXXXX_CreateFontsTexture()/ImGui_ImplXXXX_DestroyFontsTexture() - for all backends that had them. They should not be necessary any more. - - removed ImGui_ImplMetal_CreateFontsTexture(), ImGui_ImplMetal_DestroyFontsTexture(). - - removed ImGui_ImplOpenGL2_CreateFontsTexture(), ImGui_ImplOpenGL2_DestroyFontsTexture(). - - removed ImGui_ImplOpenGL3_CreateFontsTexture(), ImGui_ImplOpenGL3_DestroyFontsTexture(). - - removed ImGui_ImplSDLGPU3_CreateFontsTexture(), ImGui_ImplSDLGPU3_DestroyFontsTexture(). - - removed ImGui_ImplSDLRenderer2_CreateFontsTexture(), ImGui_ImplSDLRenderer2_DestroyFontsTexture(). - - removed ImGui_ImplSDLRenderer3_CreateFontsTexture(), ImGui_ImplSDLRenderer3_DestroyFontsTexture(). - - removed ImGui_ImplVulkan_CreateFontsTexture(), ImGui_ImplVulkan_DestroyFontsTexture(). -- Layout: commented out legacy ErrorCheckUsingSetCursorPosToExtendParentBoundaries() fallback - obsoleted in 1.89 (August 2022) which allowed a SetCursorPos()/SetCursorScreenPos() call WITHOUT AN ITEM - to extend parent window/cell boundaries. Replaced with assert/tooltip that would already happens if - previously using IMGUI_DISABLE_OBSOLETE_FUNCTIONS. (#5548, #4510, #3355, #1760, #1490, #4152, #150) - - Incorrect way to make a window content size 200x200: - Begin(...) + SetCursorScreenPos(GetCursorScreenPos() + ImVec2(200,200)) + End(); - - Correct ways to make a window content size 200x200: - Begin(...) + SetCursorScreenPos(GetCursorScreenPos() + ImVec2(200,200)) + Dummy(ImVec2(0,0)) + End(); - Begin(...) + Dummy(ImVec2(200,200)) + End(); - - TL;DR; if the assert triggers, you can add a Dummy({0,0}) call to validate extending parent boundaries. -- TreeNode: renamed ImGuiTreeNodeFlags_NavLeftJumpsBackHere to ImGuiTreeNodeFlags_NavLeftJumpsToParent - for clarity. Kept inline redirection enum (will obsolete). (#1079, #8639) -- Commented out PushAllowKeyboardFocus()/PopAllowKeyboardFocus() which was obsoleted - in 1.89.4 (March 2023). (#3092) - - PushAllowKeyboardFocus(bool tab_stop) --> PushItemFlag(ImGuiItemFlags_NoTabStop, !tab_stop); - - PopAllowKeyboardFocus() --> PopItemFlag(). -- Commented out ImGuiListClipper::ForceDisplayRangeByIndices() which was obsoleted - in 1.89.6 (June 2023). - - ForceDisplayRangeByIndices() --> IncludeItemsByIndex() -- Backends: SDL3: Fixed casing typo in function name: (#8509, #8163, #7998, #7988) [@puugz] - - Imgui_ImplSDLGPU3_PrepareDrawData() --> ImGui_ImplSDLGPU3_PrepareDrawData() -- Internals: RenderTextEllipsis() function removed the 'float clip_max_x' parameter directly - preceding 'float ellipsis_max_x'. Values were identical for a vast majority of users. (#8387) - -Non-breaking Fonts/Textures related changes: - -- Textures: added partial texture update protocol. (#8465, #3761) - - The Renderer Backend needs to set io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures - and handle texture updates requests. - - New structs: ImTextureData, ImTextureRect. - - New enums: ImTextureStatus, ImTextureFormat. - - During its ImGui_ImplXXXX_RenderDrawData() call, the backend can now access a texture list - in ImDrawData::Textures[]. Textures may have four distinct states: - - ImTextureStatus_WantCreate: requesting backend to create a texture. - - ImTextureStatus_WantUpdates: requesting backend to copy given blocks from the CPU side - copy of the texture to your graphics pipeline. - A 'tex->Updates[]' list of update is provided as well as a single 'tex->UpdatesRect' bounding box. - - ImTextureStatus_WantDestroy: requesting backend to destroy the texture. - - A 'int UnusedFrames' value is provided to conveniently defer destroying. - - Backend is generally free to destroy textures whenever they like. - - ImTextureStatus_OK: nothing to do. - - Almost all standard backends have been updated to support this. - - Backends have allowed to destroy textures at any time if they desire so. - A list is available in platform_io.Textures[] for this purpose and for backend shutdown. - - Both stb_truetype and FreeType backends have been updated to work with the new - system, and they now share more code than before. - - Added '#define IMGUI_HAS_TEXTURES' to facilitate compile-time checks for third-party - extensions until this is merged with a definitive version number to check. -- Fonts: font backend/loader may easily be changed dynamically, allowing users to compare - rasterizers outputs and features. imgui_freetype is generally beneficial. -- Fonts: ImFontAtlas::AddFontXXX() functions may be called at any time during the frame. -- Fonts: ImFontAtlas::AddFontXXX() can fail more gracefully if error handling is configured - to not assert (this will be better exposed via future font flags). -- Fonts: added style.FontScaleBase scaling factor (previously called io.FontGlobalScale). -- Fonts: added style.FontScaleDpi scaling factor. This is designed to be be changed on - per-monitor/per-viewport basis, which `io.ConfigDpiScaleFonts` does automatically. - (which is why it is separate from FontScaleBase). -- Fonts: added optional font_size parameter to ImGui::PushFont() function. -- Fonts: added ImFontAtlas::RemoveFont() function. -- Fonts: added ImFontAtlas::CompactCache() function. -- Fonts: added ImFontAtlas::TexDesiredFormat field (default to ImTextureFormat_RGBA32, - can be changed to ImTextureFormat_Alpha8). -- Fonts: added ImFontAtlas::TexMinWidth, TexMinHeight, TexMaxWidth, TexMaxHeight fields. -- Fonts: added ImFontConfig::PixelSnapV to align scaled GlyphOffset.y to pixel boundaries. -- Fonts: added ImFontConfig::GlyphExcludeRanges[], which behave similarly to - ImFontConfig::GlyphRanges[], but has the opposite meaning. It is tailored to situations - where merged fonts have overlapping characters. -- Fonts: added "Input Glyphs Overlap Detection Tool" which dumps a list of glyphs - provided by merged sources, which may help setting up a GlyphExcludeRanges[] filter. -- Fonts: added ImFontAtlas::FontBackendName (which is surfaced in the "About Dear ImGui" - window and other locations). -- Fonts: added ImFontFlags (currently needs to be passed through ImFontConfig until - we revamp font loading API): - - ImFontFlags_NoLoadError: disable erroring/assert when calling AddFontXXX() - with missing file/data. Calling code is expected to check AddFontXXX() return value. - - ImFontFlags_NoLoadGlyphs: disable loading new glyphs. - - ImFontFlags_LockBakedSizes: disable loading new baked sizes, disable garbage - collecting current ones. e.g. if you want to lock a font to a single size. -- Fonts: the general design has changed toward meaning that a ImFont doesn't have - have a specific size: it may be bound and drawn with any size. - - We store ImFontBaked structures internally, which are a cache of information - for a given size being drawn. You should not need to deal with ImFontBaked directly. - - ImFontBaked structures may be cleaned up between frames when unused, pointers - to them are only valid for the current frame. - - Added ImFontBaked::IsGlyphLoaded() function. -- Fonts: Custom Rect packing has generally been reworked. (#8107, #7962, #1282) - - ImFontAtlas::AddCustomRect() (previously AddCustomRectRegular()/AddCustomRectFontGlyph()) - functions will immediately return a packed rectangle identifier, and you can write your - pixels immediately - previously had to wait for Build() to be called. - This is also the case when using a legacy backend. - - Custom packed rectangles may be moved during a texture change, aka practically anytime. - Always refer to latest uvs/position returned by GetCustomRect(). - - AddCustomRect() returns ImFontAtlasRectId_Invalid on failure. - - Added ImFontAtlas::RemoveCustomRect() function. - - GetCustomRect() can safely return false and not crash when passed an invalid or removed id. -- Fonts: texture is now stored in a single format CPU side (save ~25% when using RGBA). -- Fonts: changing current font to one from a different atlas is supported. (#8080) -- Fonts: automatic baking of an "..." ellipsis works better with monospace fonts. -- Fonts: each ImFontConfig font source may provide a custom backend/loader. -- Fonts: added platform_io.Renderer_TextureMaxWidth/Renderer_TextureMaxHeight fields - for Renderer Backend to specify if there is a maximum accepted texture size (not yet used). -- Fonts: added compile-time overridable '#define ImTextureID_Invalid 0' if you need 0 - to be a valid low-level texture identifier. -- Fonts: reworked text ellipsis logic to ensure a "..." is always displayed instead - of a single character. (#7024) -- Fonts: word-wrapping code handle ideographic comma & full stop (U+3001, U+3002). (#8540) -- Fonts: fixed CalcWordWrapPosition() fallback when width is too small to wrap: - would use a +1 offset instead of advancing to the next UTF-8 codepoint. (#8540) -- Debug Tools: Fonts section: add font preview, add "Remove" button, add "Load all glyphs" - button, add selection to change font backend when both are compiled in. -- Renderer Backends: - - Backends: DX9/DX10/DX11/DX12, Vulkan, OpenGL2/3, Metal, SDLGPU3, SDLRenderer2/3, WebGPU, Allegro5: - - Added ImGuiBackendFlags_RendererHasTextures support for all backends. (#8465, #3761, #3471) - [@ocornut, @ShironekoBen, @thedmd] - - Added ImGui_ImplXXXX_UpdateTexture(ImTextureData* tex) functions for all backends. - Available if you want to start uploading textures right after ImGui::Render() and without - waiting for the call to ImGui_ImplXXXX_RenderDrawData(). Also useful if you use a staged or - multi-threaded rendering schemes, where you might want to set ImDrawData::Textures = NULL. (#8597, #1860) -- Special thanks for fonts/texture related feedback to: @thedmd, @ShironekoBen, @rodrigorc, - @pathogendavid, @itamago, @rokups, @DucaRii, @Aarkham, @cyfewlp. - -Other Changes: - -- IO: variations in analog-only components of gamepad events do not interfere - with trickling of mouse position events (#4921, #8508) -- Windows: fixed SetNextWindowCollapsed()/SetWindowCollapsed() bypassing the - codepath that preserve last contents size when collapsed, resulting in - programmatically uncollapsing auto-sizing windows having them flicker size - for a frame. (#7691) [@achabense] -- Windows: clicking on a window close button doesn't claim focus and bring to front. (#8683) -- Windows: loosened code to allow hovering of resize grips, borders, and table - borders while hovering a sibling child window, so that the code in master matches - one in docking (they accidentally diverged). (#8554) -- Windows: BeginChild(): fixed being unable to combine manual resize on one axis - and automatic resize on the other axis. (#8690) - e.g. neither ImGuiChildFlags_ResizeX | ImGuiChildFlags_AutoResizeY - or ImGuiChildFlags_ResizeY | ImGuiChildFlags_AutoResizeX worked before. -- TreeNode: added experimental flags to draw tree hierarchy outlines linking - parent and tree nodes: (#2920) - - ImGuiTreeNodeFlags_DrawLinesNone: No lines drawn (default value in style.TreeLinesFlags). - - ImGuiTreeNodeFlags_DrawLinesFull: Horizontal lines to child nodes. Vertical line drawn down to TreePop() position: cover full contents. - - ImGuiTreeNodeFlags_DrawLinesToNodes: Horizontal lines to child nodes. Vertical line drawn down to bottom-most child node. - - Added style.TreeLinesFlags which stores the default setting, - which may be overridden in individual TreeNode() calls. - - Added style.TreeLinesSize (default to 1.0f). - - Added style.TreeLinesRadius (default to 0.0f). - - Added ImGuiCol_TreeLines (in default styles this is the same as ImGuiCol_Border). - - Caveats: - - Tree nodes may be used in many creative ways (manually positioning openable - nodes in unusual ways, using indent to create tree-looking structures, etc.) - and the feature may not accurately represent them in every cases. - - The feature adds a little cost as extra data needs to be stored. - (ImGuiTreeNodeFlags_DrawLinesToNodes is slower than ImGuiTreeNodeFlags_DrawLinesFull - which may be meaningful on very large trees, as it needs to record bottom-most - Y position even for clipped nodes). - - The feature is unlikely to ever work properly when using a coarse clipper - such as ImGuiListClipper. -- TreeNode: fixed incorrect clipping of arrow/bullet when using ImGuiTreeNodeFlags_SpanAllColumns. -- InputText: fixed cursor positioning issue using up/down keys near end of lines while - editing non-ASCII text. (Regression from 1.91.2) (#8635, #7925) -- InputText: fixed a buffer overrun that could happen when using dynamically resizing - buffers (e.g. imgui_stdlib.cpp for std::string, or ImGuiInputTextFlags_CallbackRezize) - and programmatically making an insertion. (#8689) [@ocornut, @m9710797] -- Tables: fixed TableHeader() eager vertical clipping of text which may be noticeable - with FramePadding.y was too small. (#6236) -- Tables: fixed an assert when combining Tables, Frozen Rows, Clipper and BeginMultiSelect() - in a certain order. (#8595, #8250) -- Tabs: fixes small issues with how "..." ellipsis moved depending on visibility - of Close Button or Unsaved Document marker. (#8387) -- Tooltips: tooltips have a maximum size corresponding to host display/monitor size, - which mitigates edge case issues in multi-viewport scenarios where abnormally large - windows (e.g. determined programmatically) can lead to renderer backend trying to - create abnormally large framebuffers. -- TextLinkOpenURL(): added bool return value on click. (#8645, #8451, #7660) -- Scroll: fixed contents size, scrollbar visibility and scrolling resetting issues - with abnormally large contents ranges. (#3609, #8215) -- Clipper: some mitigation/improvements for abnormally large contents ranges. (#3609, #8215) -- Nav: fixed assertion when holding gamepad FaceLeft/West button to open - CTRL+Tab windowing + pressing a keyboard key. (#8525) -- Nav: fixed scroll fallback (when there are no interactive widgets to jump to) not - being enabled on windows with menu or title bar. -- Nav: fixed an issue handling PageUp/PageDown on windows with abnormally large contents - range which could lead to clipper requesting very large ranges. -- Error Handling: added better error report and recovery for extraneous - EndPopup() call. (#1651, #8499) -- Error Handling: added better error report and recovery when calling EndFrame() - or Render() without NewFrame(). Was previously only an assert. -- Style, InputText: added ImGuiCol_InputTextCursor to configure color of - the InputText cursor/caret. (#7031) -- Platform IME: added ImGuiPlatformImeData::ViewportId info (backported from Docking branch). -- Platform IME: added ImGuiPlatformImeData::WantTextInput which might set independently - of WantVisible. This is set in the same structure because activating text input generally - requires providing a window to the backend. (#8584, #6341) -- DrawList: Fixed a regression from 1.91.1 where a Begin()/PushFont()/AddImage() sequence - would not restore the correct atlas Texture Identifier when the PushFont() call used - a font from a different atlas. (#8694, caused by #3224, #3875, #6398, #7903) -- Misc: added extra operators to ImVec4 in IMGUI_DEFINE_MATH_OPERATORS block. (#8510) [@gan74] -- Misc: removed static linkage from operators to facilitate using in C++ modules. (#8682, #8358) [@johmani] -- Demo: changed default framed item width to use Min(GetFontSize() * 12, GetContentRegionAvail().x * 0.40f). -- Renderer Backends: - - Backends: SDLGPU3: Fixed creating atlas texture earlier than other backends, preventing - to load fonts between the Init and NewFrames calls. - - Backends: SDLGPU3: Made ImGui_ImplSDLGPU3_PrepareDrawData() reuse GPU Transfer Buffers which - were unusually slow to recreate every frame. Much faster now. (#8534) [@ocornut, @TheMode] - - Backends: SDLGPU3: added support for ImDrawCallback_ResetRenderState. (#8599) - - Backends: OpenGL3: made GLES 3.20 contexts not access GL_CONTEXT_PROFILE_MASK nor - GL_PRIMITIVE_RESTART. (#8664) [@DyXel] - - Backends: DirectX12: Fixed build on MinGW. (#8702, #4594) [@playday3008] - - Backends: DirectX10, DirectX11, DirectX12: Honor FramebufferScale to allow for custom - platform backends and experiments using it (consistently with other renderer backends, - even though in normal condition it is not set under Windows). (#8412) [@WSSDude] - - Backends: Vulkan: Deep-copy ImGui_ImplVulkan_InitInfo::PipelineRenderingCreateInfo's - pColorAttachmentFormats buffer when set, in order to reduce common user-error of - specifying a pointer to data that gets out of scope. (#8282) - - Backends: Vulkan: Load dynamic rendering functions using vkGetDeviceProcAddr() - + try both non-KHR and KHR versions. (#8600, #8326, #8365) [@ChrisTom-94] - - Backends: Vulkan: fixed validation errors in window create/resize helpers used by examples - and by multi-viewports implementation, which would typically trigger errors while detaching - secondary viewports. (#8600, #8176) [@ChrisTom-94] -- Platform Backends: - - Backends: GLFW: added ImGui_ImplGlfw_GetContentScaleForMonitor(), ImGui_ImplGlfw_GetContentScaleForWindow() - helpers. They are wrappers to glfwGetMonitorContentScale()/glfwGetWindowContentScale(), with compile-time - GLFW version checks + returning 1.0f on Apple platform. - - Backends: GLFW: Added support for multiple Dear ImGui contexts. (#8676, #8239, #8069) - - Backends: SDL2: added ImGui_ImplSDL2_GetDpiScaleForDisplay() and ImGui_ImplSDL2_GetContentScaleForWindow() - helpers. They are wrappers to SDL_GetDisplayDPI(), with compile-time SDL version checks + returning 1.0f - on Apple platforms. SDL3 already does this by default. - - Backends: Win32: Fixed an issue where externally losing mouse capture (due to e.g. focus loss) - would fail to claim it again the next subsequent click. (#8594) - - Backends: SDL2, SDL3, OSX: Fill gamepad inputs and set ImGuiBackendFlags_HasGamepad - regardless of ImGuiConfigFlags_NavEnableGamepad being set. (#8508) - - Backends: SDL2, SDL3: don't attempt to call SDL_CaptureMouse() on drivers where we don't - call SDL_GetGlobalMouseState(). This is specifically for Wayland but we currently use - the same white-list as SDL_GetGlobalMouseState(). (#8561) [@vs49688] - - Backends: GLFW, SDL2, SDL3: include GLFW/SDL version number in io.BackendPlatformName. - - Backends: SDL3: Update for SDL3 api changes: revert SDL_GetClipboardText() - memory ownership change. (#8530, #7801) [@Green-Sky] - - Backends: SDL3: honor ImGuiPlatformImeData::WantTextInput as an alternative - way to call SDL_StartTextInput(), without IME being necessarily visible. (#8584) - - Backends: SDL3: fixed pulling SDL_PROP_WINDOW_COCOA_WINDOW_POINTER into - viewport->PlatformHandleRaw. (#8725, #8726) [@eertbleyen] - - Backends: OSX: ImGui_ImplOSX_HandleEvent() only process event for window containing - our view. (#8644) [@BingoXuan] -- Examples: - - Examples: Made many examples DPI aware by default. - The single-viewport is basically: - - Query monitor DPI scale. Helpers are provided in some backends. - - Call style.ScaleAllSizes() and set style.FontScaleDpi with this factor. - Multi-viewport applications may set both of those flags: - - io.ConfigDpiScaleFonts = true; - - io.ConfigDpiScaleViewports = true; - Which will scale fonts but NOT style padding/spacings/thicknesses yet. - - Examples: Apple+Metal, Apple+OpenGL: add Makefile (CLion opens them nicely). (#8637) [@pthom] - - Examples: DirectX12+Win32: also test for IsIconic() for sleeping since we don't seem to - get a DXGI_STATUS_OCCLUDED signal when minimized. (#8603) [@dooann] - - ------------------------------------------------------------------------ - VERSION 1.91.9b (Released 2025-03-17) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.91.9b - -- Tables: Fixed assert when loading .ini settings with reordered columns. (#8496, #7934) -- Tables: Fixed issues when loading .ini settings for a table with columns using - ImGuiTableColumnFlags_DefaultHide or ImGuiTableColumnFlags_DefaultSort. (#8496, #7934) - - ------------------------------------------------------------------------ - VERSION 1.91.9 (Released 2025-03-14) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.91.9 - -Breaking changes: - -- Image: removed 'tint_col' and 'border_col' parameter from Image() function. (#8131, #8238) - - Old function signature: - void Image (ImTextureID tex_id, ImVec2 image_size, ImVec2 uv0 = (0,0), ImVec2 uv1 = (1,1), ImVec4 tint_col = (1,1,1,1), ImVec4 border_col = (0,0,0,0)); - - New function signatures: - void Image (ImTextureID tex_id, ImVec2 image_size, ImVec2 uv0 = (0,0), ImVec2 uv1 = (1,1)); - void ImageWithBg(ImTextureID tex_id, ImVec2 image_size, ImVec2 uv0 = (0,0), ImVec2 uv1 = (1,1), ImVec4 bg_col = (0,0,0,0), ImVec4 tint_col = (1,1,1,1)); - - TL;DR: 'border_col' had misleading side-effect on layout, 'bg_col' was missing, parameter order couldn't be consistent with ImageButton(). - - New behavior always use ImGuiCol_Border color + style.ImageBorderSize / ImGuiStyleVar_ImageBorderSize. - - Old behavior altered border size (and therefore layout) based on border color's - alpha, which caused variety of problems. - - Old behavior used a fixed value of 1.0f for border size which was not tweakable. - - Kept legacy signature (will obsolete), which mimics the old behavior, - but uses Max(1.0f, style.ImageBorderSize) when border_col is specified. - - Added ImageWithBg() function which has both 'bg_col' (which was missing) and 'tint_col'. - It was impossible to add 'bg_col' to Image() with a parameter order consistent with - other functions, so we decided to remove 'tint_col' and introduce ImageWithBg(). -- Renamed ImFontConfig::GlyphExtraSpacing.x option to GlyphExtraAdvanceX. (#242) -- Renamed style.TabMinWidthForCloseButton to style.TabCloseButtonMinWidthUnselected. -- Backends: Vulkan: Added 'uint32_t api_version' argument to ImGui_ImplVulkan_LoadFunctions(). - Note that it was also added to ImGui_ImplVulkan_InitInfo but for the later it is optional. - (#8326, #8365, #8400) -- Internals: Fonts: ImFontAtlas::ConfigData[] has been renamed to ImFontAtlas::Sources[], -- Internals: Fonts: ImFont::ConfigData[], ConfigDataCount has been renamed to Sources[], SourcesCount. -- Internals: Menus: reworked mangling of menu windows to use "###Menu_00" etc. instead - of "##Menu_00", allowing them to also store the menu name before it. This shouldn't - affect code unless directly accessing menu window from their mangled name. - -Other changes: - -- Fixed IsItemDeactivatedAfterEdit() signal being broken for Checkbox(), - RadioButton(), Selectable(). Regression from 2025/01/13. (#8370) -- Windows: Fixed an issue where BeginChild() inside a collapsed Begin() - wouldn't inherit the SkipItems flag, resulting in missing coarse clipping - opportunities for code not checking the BeginChild() return value. -- Windows, Style: Added style.WindowBorderHoverPadding setting to configure - inner/outer padding applied to hit-testing of windows borders and detection - of hovered window. -- InputText: Allow CTRL+Shift+Z to redo even outside of OSX. (#8389) [@tanksdude] -- InputText: Pasting a multi-line buffer into a single-line edit replaces - carriage return by spaces. (#8459) -- InputTextWithHint(): Fixed buffer-overflow (luckily often with no visible effect) - when a user callback modified the buffer contents in a way that altered the - visibility of the preview/hint buffer. (#8368) [@m9710797, @ocornut] -- Scrollbar: Rework logic that fades-out scrollbar when it becomes too small, - which amusingly made it disappear when using very big font/frame size. -- Scrollbar: Automatically stabilize ScrollbarX visibility when detecting a - feedback loop manifesting with ScrollbarX visibility toggling on and off - repeatedly. (#8488, #3285, #4539) - (feedback loops of this sort can manifest in various situations, but combining - horizontal + vertical scrollbar + using a clipper with varying width items is - one frequent cause. The better solution is to, either: (1) enforce visibility - by using ImGuiWindowFlags_AlwaysHorizontalScrollbar or (2) declare stable - contents width with SetNextWindowContentSize(), if you can compute it.) -- Tables: fixed calling SetNextWindowScroll() on clipped scrolling table - to not leak the value into a subsequent window. (#8196) -- Tables: fixed an issue where Columns Visible/Width state wouldn't be correctly - restored when hot-reloading .ini state. (#7934) -- Tables: tamed some .ini settings optimizations to more accurately allow - overwriting/hot-reloading settings in more situations. (#7934) -- Tables, Error Handling: Recovery from invalid index in TableSetColumnIndex(). (#1651) -- Image: Added ImageWithBg() variant with bg color and tint color. (#8131, #8238) -- Image, Style: Added style.ImageBorderSize, ImGuiStyleVar_ImageBorderSize. (#8131, #8238) -- Selectable: Fixed horizontal label alignment with SelectableTextAlign.x > 0 and - specifying a selectable size. (#8338) -- Tabs, Style: made the Close Button of selected tabs always visible by default, - without requiring to hover the tab. (#8387) - - Added style.TabCloseButtonMinWidthSelected/TabCloseButtonMinWidthUnselected settings - to configure visibility of the Close Button for selected and unselected tabs. - (-1: always visible. 0.0f: visible when hovered. >0.0f: visible when hovered if minimum width) - - Default for selected tabs: TabCloseButtonMinWidthSelected = -1.0f (always visible) - - Default for unselected tabs: TabCloseButtonMinWidthUnselected = 0.0f (visible when hovered) -- Tabs: fixed middle-mouse-button to close tab not checking that close button - is hovered, merely its visibility. (#8399, #8387) [@nicovanbentum] -- TextLink(), TextLinkOpenURL(): fixed honoring text baseline alignment. - (#8451, #7660) [@achabense] -- TextLinkOpenURL(): fixed default Win32 io.PlatformOpenInShellFn handler to - handle UTF-8 regardless of system regional settings. (#7660) [@achabense] -- Disabled: Fixed an issue restoring Alpha in EndDisabled() when using nested - BeginDisabled() calls with PushStyleVar(ImGuiStyleVar_DisabledAlpha) within. (#8454, #7640) -- Clipper: Fixed an issue where passing an out of bound index to IncludeItemByIndex() - could incorrectly offset the final cursor, even if that index was not iterated through. - One case where it would manifest was calling Combo() with an out of range index. (#8450) -- Debug Tools: Added io.ConfigDebugHighlightIdConflictsShowItemPicker (defaults to true) - to allow disabled Item Picker suggestion in user facing builds. (#7961, #7669) -- Debug Tools: Tweaked layout of ID Stack Tool and always display full path. (#4631) -- imgui_freetype: update lunasvg API to support v3.0+. (#8656, #6842, #6591) [@moretromain] -- Misc: Various zealous warning fixes for newer version of Clang. -- Misc: Added ImGuiMouseCursor_Wait and ImGuiMouseCursor_Progress mouse cursors - (busy/wait/hourglass shape, with or without an arrow cursor). -- Demo: Reorganized "Widgets" section to be alphabetically ordered and split in more functions. -- Demo: Combos: demonstrate a very simple way to add a filter to a combo, - by showing the filter inside the combo contents. (#718) -- Examples: SDL3: Added comments to clarify setup for users of the unfortunate - SDL_MAIN_USE_CALLBACKS feature. (#8455) -- IO: Added ImGuiKey_Oem102 to ImGuiKey enum. (#7136, #7201, #7206, #7306, #8468) -- Backends: reworked key handlers to use/prioritize untranslated scancodes instead of - translated keycodes when dealing with OEM keys which are too difficult to find a reliable - translated mapping on all systems, backends and keyboard layout. - (#7136, #7201, #7206, #7306, #7670, #7672, #8468) - - The affected keys are: ImGuiKey_Apostrophe, ImGuiKey_Comma, ImGuiKey_Minus, ImGuiKey_Period, - ImGuiKey_Slash, ImGuiKey_Semicolon, ImGuiKey_Equal, ImGuiKey_LeftBracket, ImGuiKey_RightBracket, - ImGuiKey_Backslash, ImGuiKey_GraveAccent, and newly introduced ImGuiKey_Oem102. - - This is NOT affecting characters used the text inputs. - - Fixes many cases of keys not emitting a ImGuiKey value with certain keyboard layouts. - - Makes emitted ImGuiKey values more consistent regardless of keyboard mapping, - but you may be getting different values as before. - - Win32, SDL2, SDL3: Use scancodes for OEM keys. - - GLFW: GLFW_KEY_WORLD_1 and GLFW_KEY_WORLD_2 are emitting ImGuiKey_Oem102. -- Backends: GLFW: Fixed clipboard handler assertion when using GLFW <= 3.2.1 compiled - with asserts enabled. (#8452) -- Backends: SDL2, SDL3: Using SDL_OpenURL() in platform_io.Platform_OpenInShellFn - handler. (#7660) [@achabense] -- Backends: SDL2, SDL3, Win32, Allegro5: Added support for ImGuiMouseCursor_Wait - and ImGuiMouseCursor_Progress cursors. -- Backends: SDL2, SDL3: Avoid calling SDL_GetGlobalMouseState() when mouse is in - relative mode. (#8425, #8407) [@TheMode] -- Backends: SDL2, SDL3: Only start SDL_CaptureMouse() when mouse is being dragged, - to mitigate issues with e.g. Linux debuggers not claiming capture back on debug - break. (#6410, #3650) -- Backends: OpenGL3: Lazily reinitialize embedded GL loader for when calling backend - from e.g. other DLL boundaries. (#8406) -- Backends: DirectX12: Fixed an issue where pre-1.91.5 legacy ImGui_ImplDX12_Init() - signature started breaking in 1.91.8 due to missing command queue. (#8429) -- Backends: Metal: Fixed a crash on application resources. (#8367, #7419) [@anszom] -- Backends: Vulkan: Added ApiVersion field in ImGui_ImplVulkan_InitInfo. - Default to header version if unspecified. (#8326, #8365) [@mklefrancois] -- Backends: Vulkan: Dynamic rendering path loads "vkCmdBeginRendering/vkCmdEndRendering" - (without -KHR suffix) on API 1.3. (#8326, #8365) [@mklefrancois] -- Backends: WebGPU: Recreate image bind groups during render to allow reuse of - WGPUTextureView pointers. (#8426, #8046, #7765, #8027) [@pplux, @Jairard] -- Backends: WebGPU: Fix for DAWN API change WGPUProgrammableStageDescriptor -> WGPUComputeState. - [@PhantomCloak] (#8369) -- Backends: WebGPU: Fix for webgpu-native API changes. (#8426) [@pplux] - - ------------------------------------------------------------------------ - VERSION 1.91.8 (Released 2025-01-31) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.91.8 - -Breaking changes: - -- ColorEdit, ColorPicker: redesigned how alpha is displayed in the preview - square. (#8335, #1578, #346) - - Removed ImGuiColorEditFlags_AlphaPreview (made value 0): it is now the default behavior. - - Prior to 1.91.8: alpha was made opaque in the preview by default _unless_ using ImGuiColorEditFlags_AlphaPreview. - - We now display the preview as transparent by default. You can use ImGuiColorEditFlags_AlphaOpaque to use old behavior. - - The new flags may be combined better and allow finer controls: - - ImGuiColorEditFlags_AlphaOpaque: disable alpha in the preview, but alpha value still editable. - - ImGuiColorEditFlags_AlphaNoBg: disable rendering a checkerboard background behind transparent color. - - ImGuiColorEditFlags_AlphaPreviewHalf: display half opaque / half transparent preview. -- Backends: SDLGPU3: Renamed ImGui_ImplSDLGPU3_InitInfo::GpuDevice to Device - for consistency. (#8163, #7998, #7988) - -Other changes: - -- imgui_freetype: fixed issue where glyph advances would incorrectly be - snapped to pixels. Effectively it would only be noticeable when hinting - is disabled with ImGuiFreeTypeBuilderFlags_NoHinting, as hinting itself - snaps glyph advances. -- Inputs: added IsMouseReleasedWithDelay() helper. (#8337, #8320) - Use if you absolutely need to distinguish single-click from double-clicks - by introducing a delay. This is a very rarely used UI idiom, but some apps - use this: e.g. MS Explorer single-click on an icon triggers a rename. - Generally use with 'delay >= io.MouseDoubleClickTime' + combine with a - 'GetMouseClickedCount() == 1' check. -- Windows: legacy SetWindowFontScale() is properly inherited by nested child - windows. Note that an upcoming major release should make this obsolete, - but in the meanwhile it works better now. (#2701, #8138, #1018) -- Windows, Style: Fixed small rendering issues with menu bar, resize grip and - scrollbar when using thick border sizes. (#8267, #7887) -- Windows: Fixed IsItemXXXX() functions not working on append-version of EndChild(). (#8350) - Also made some of the fields accessible after BeginChild() to match Begin() logic. -- Error Handling: Recovery from missing EndMenuBar() call. (#1651) -- Tables, Menus: Fixed using BeginTable() in menu layer (any menu bar). (#8355) - It previously overrode the current layer back to main layer, which caused an issue - with MainMenuBar attempted to release focus when leaving the menu layer. -- Tables, Menus: Fixed tables or child windows submitted inside BeginMainMenuBar() - being unable to save their settings, as the main menu bar uses _NoSavedSettings. (#8356) -- ColorEdit, ColorPicker: Fixed alpha preview broken in 1.91.7. (#8336, #8241). [@PathogenDavid] -- Tabs, Style: reworked selected overline rendering to better accommodate - for rounded tabs. Reduced default thickness (style.TabBarOverlineSize), - increased default rounding (style.TabRounding). (#8334) [@Kian738, @ocornut] -- Debug Tools: Tweaked font preview. -- ImDrawList: texture baked storage for thick line reduced from ~64x64 to ~32x32. (#3245) -- Fonts: IndexLookup[] table hold 16-bit values even in ImWchar32 mode, - as it accounts for number of glyphs in same font. This is favorable to - CalcTextSize() calls touching less memory. -- Fonts: OversampleH/OversampleV defaults to 0 for automatic selection. - - OversampleH == 0 --> use 1 or 2 depending on font size and use of PixelSnapH. - - OversampleV == 0 --> always use 1. -- ImFontAtlas: made calling ClearFonts() call ClearInputData(), as calling - one without the other is never correct. (#8174, #6556, #6336, #4723) -- Examples: DirectX12: Reduced number of frame in flight from 3 to 2 in - provided example, to reduce latency. -- Examples: Vulkan: better handle VK_SUBOPTIMAL_KHR being returned by - vkAcquireNextImageKHR() or vkQueuePresentKHR(). (#7825, #7831) [@NostraMagister] -- Backends: SDL2: removed assert preventing using ImGui_ImplSDL2_SetGamepadMode() - with ImGui_ImplSDL2_GamepadMode_Manual and an empty array. (#8329) -- Backends: SDL3: removed assert preventing using ImGui_ImplSDL3_SetGamepadMode() - with ImGui_ImplSDL3_GamepadMode_Manual and an empty array. (#8329) -- Backends: SDLGPU3: Exposed ImGui_ImplSDLGPU3_CreateDeviceObjects()/_DestroyDeviceObjects(). - Removed return value from ImGui_ImplSDLGPU3_CreateFontsTexture(). (#8163, #7998, #7988) -- Backends: SDL_Renderer2/3: Use endian-dependent RGBA32 texture format, to match - SDL_Color. (#8327) [@dkosmari] -- Backends: DirectX12: Texture upload use the command queue provided in - ImGui_ImplDX12_InitInfo instead of creating its own. -- Backends: OSX: Removed notification observer when shutting down. (#8331) [@jrachele] - - ------------------------------------------------------------------------ - VERSION 1.91.7 (Released 2025-01-14) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.91.7 - -Breaking changes: - -- TreeNode: renamed ImGuiTreeNodeFlags_SpanTextWidth to ImGuiTreeNodeFlags_SpanLabelWidth - for consistency with other names. Kept redirection enum (will obsolete). (#6937) - -Other changes: - -- Fixed issues with IsItemDeactivated() and IsItemDeactivatedAfterEdit() not - emitting a reliable signal when an item is deactivated externally: e.g. - via an explicit clear of focus, clear of active id, opening of modal etc. - (#5184, #5904, #6766, #8303, #8004) - - It used to work when the interruption happened in the frame before the - active item as submitted, but not after. It should work in both cases now. - - While this is not specific to a certain widgets, typically it would - mostly be noticeable on InputText() because it keeps ActiveId for a - longer time while allowing other interaction to happen. -- Error Handling: Fixed bugs recovering from within a table that created - a child window, and from nested child windows. (#1651) -- Error Handling: Turned common EndTable() and other TableXXX functions - fail cases into a recoverable error. (#1651, #8314) -- Error Handling: Basic error handling options in Demo->Tools->Debug Options. (#1651) -- InputText: Fixed a bug where character replacements performed from a callback - were not applied when pasting from clipboard. (#8229) -- InputText: Fixed issue when activating a ReadOnly field when the underlying - value is being modified. (#8242) -- InputText: Added sanity check to detect some cases of passing a non - zero-terminated input buffer. -- InputText: Fixed not calling CallbackEdit on revert/clear with Escape key, - although IsItemEdited() was behaving correctly. (#8273) -- Tables: Fixed TableAngledHeadersRow() creating an infinite horizontal - scrolling region when the table is hosted in a viewport with negative - coordinates (left of primary monitor, with multi-viewports enabled). -- Tables, MultiSelect: Fixed an issue where column width may be mismeasured - when calling BeginMultiSelect() while inside a table. (#8250) -- TreeNode, Tables: Added ImGuiTreeNodeFlags_LabelSpanAllColumns to make - the label (not only the highlight/frame) also spans all columns. This is - useful for table rows where you know nothing else is submitted. (#8318, #3565) - Obviously best used with ImGuiTableFlags_NoBordersInBodyUntilResize. -- Selectable: Fixed horizontal label alignment when combined with using - ImGuiSelectableFlags_SpanAllColumns. (#8338) -- Drags: Added ImGuiSliderFlags_NoSpeedTweaks flag to disable keyboard - modifiers altering the tweak speed. Useful if you want to alter tweak speed - yourself based on your own logic. (#8223) -- Nav: Fixed an issue where Alt key would clear current active item on - windows with the ImGuiWindowFlags_NoNavInputs flag. (#8231) -- Debug Tools: Debug Log: hovering 0xXXXXXXXX values in log is allowed even - if a popup is blocking mouse access to the debug log window. (#5855) -- Debug Tools: Item Picker: Always available in Tools menu regardless of value - of io.ConfigDebugIsDebuggerPresent. (#2673) -- Fonts: Fixed miscalculation of Ellipsis ("...") character width when automatically - created from a single comma character, affecting some fonts/settings (not all). -- Demo: Added label edition to Property Editor demo + fix an ID issue. (#8266) [@moritz-h] -- Misc: Fixed misc/cpp/imgui_stdlib.h/.cpp not supporting IMGUI_DISABLE. (#8294) [@juur] -- Misc: Fixed MinGW builds not using UTF-8 friendly _wfopen(). (#8300) -- Backends: SDLGPU3 for SDL3: Added backend for SDL_GPU! (#8163, #7998, #7988) [@DeltaW0x]. -- Backends: SDL3: Added ImGui_ImplSDL3_InitForSDLGPU() for consistency, even - though it is currently not doing anything particular. (#8163, #7998, #7988) -- Backends: Allegro5: Avoid calling al_set_mouse_cursor() repeatedly since it appears - to leak on on X11 (#8256). [@Helodity] -- Backends: Metal: Fixed leaks when using metal-cpp. (#8276, #8166) [@selimsandal] -- Backends: Metal: Fixed resource leak when using multiple contexts. (#7419) [@anszom] -- Backends: Vulkan: Fixed setting VkSwapchainCreateInfoKHR::preTransform for - platforms not supporting VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR. (#8222) [@Zer0xFF] -- Backends: Vulkan: Added a few more ImGui_ImplVulkanH_XXX helper functions - primarily for the purpose of making our examples simpler. -- Backends: Vulkan: Added IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE to clarify - how many image sampler descriptors are expected to be available in the provided - descriptor pool. Current backend needs 1 but it is expected that by end of Q1 2025 - this number will grow (will stay a small number). (#6642) -- Backends: DX11: Expose vertex constant buffer in ImGui_ImplDX11_RenderState. - Reset projection matrix in ImDrawCallback_ResetRenderState handlers. (#6969, #5834, #7468, #3590) -- Backends: DX10: Expose ImGui_ImplDX10_RenderState for completeness. (#6969, #5834, #7468, #3590) -- Examples: Added Win32+Vulkan example for completeness. (#8180) [@jristic] - - ------------------------------------------------------------------------ - VERSION 1.91.6 (Released 2024-12-11) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.91.6 - -Breaking changes: - -- Backends: DX12: Changed ImGui_ImplDX12_Init() signature to take a - ImGui_ImplDX12_InitInfo struct. - - Using the new API, application is now required to pass function pointers - to allocate/free SRV Descriptors. - - We provide convenience legacy fields to pass a single descriptor, - matching the old API, but upcoming features will want multiple. - - Legacy ImGui_ImplDX12_Init() signature is still supported (will obsolete). -- Misc: changed CRC32 table from CRC32-adler to CRC32c polynomial in order to - be compatible with the result of SSE 4.2 instructions. (#8169, #4933) [@Teselka] - - As a result, some .ini data may be partially lost when storing checksums - (docking and tables information particularly). - - Because some users have crafted and storing .ini data as a way to workaround - limitations of the docking API, we are providing a '#define IMGUI_USE_LEGACY_CRC32_ADLER' - compile-time option to keep using old CRC32 tables if you cannot afford invalidating - old .ini data. - -Other changes: - -- Error Handling: fixed cases where recoverable error handling would crash when - processing errors outside of the NewFrame()..EndFrame() scope. (#1651) -- Tables: fixed SetNextWindowScroll() value being ignored by BeginTable() during - the first frame or when scrolling flags have changed. (#8196) -- InputText: added ImGuiInputTextFlags_ElideLeft to elide left side and ensure right side - of contents is visible when whole text is not fitting (useful for paths/filenames). - (#1442, #1440, #4391, #7208, #8216) [@kucoman, @ocornut] -- InputText: reactivating last activated InputText() doesn't restore horizontal scrolling - (which was disabled during deactivation anyway). -- Misc: changed embedded ProggyClean encoding to save a bit of binary space (~12kb to 9.5kb). -- Misc: added IMGUI_DISABLE_DEFAULT_FONT to strip embedded font from binary. (#8161) - [@demonese] -- Demo: example tree used by Property Editor & Selection demos properly freed - on application closure. (#8158) [@Legulysse] -- Fonts: fixed AddCustomRect() not being packed with TexGlyphPadding + not accounted - for surface area used to determine best-guess texture size. (#8107) [@YarikTH, @ocornut] -- Misc: use SSE 4.2 crc32 instructions when available. (#8169, #4933) [@Teselka] -- Tools: binary_to_compressed_c: added -u8/-u32/-base85 export options. -- Backends: DirectX12: Let user specifies the DepthStencilView format by setting - ImGui_ImplDX12_InitInfo::DSVFormat. (#8217) [@bmarques1995] -- Backends: Vulkan: Make user-provided descriptor pool optional. As a convenience, - when setting init_info->DescriptorPoolSize then the backend will create and manage - one itself. (#8172, #4867) [@zeux] -- Examples: Win32+DX12: Using a basic free-list allocator to manage multiple - SRV descriptors. - - ------------------------------------------------------------------------ - VERSION 1.91.5 (Released 2024-11-07) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.91.5 - -Breaking changes: - -- Commented out pre-1.87 IO system (equivalent to using IMGUI_DISABLE_OBSOLETE_KEYIO or IMGUI_DISABLE_OBSOLETE_FUNCTIONS before). - - io.KeyMap[] and io.KeysDown[] are removed (obsoleted February 2022). Use IsKeyDown() instead. - - io.NavInputs[] and ImGuiNavInput are removed (obsoleted July 2022). - - Pre-1.87 backends are not supported: - - backends need to call io.AddKeyEvent(), io.AddMouseEvent() instead of writing to io.KeysDown[], io.MouseDown[] fields. - - backends need to call io.AddKeyAnalogEvent() for gamepad values instead of writing to io.NavInputs[] fields. - - you can use IsKeyDown() instead of reading from io.KeysDown[]. - - For more references: - - read 1.87 and 1.88 part of API BREAKING CHANGES in imgui.cpp or read Changelog for 1.87 and 1.88. - - read https://github.com/ocornut/imgui/issues/4921 - - If you have trouble updating a very old codebase using legacy backend-specific key codes: - consider updating to 1.91.4 first, then #define IMGUI_DISABLE_OBSOLETE_KEYIO, then update to latest. - - Obsoleted ImGuiKey_COUNT (it is unusually error-prone/misleading since valid keys don't start at 0). - Probably use ImGuiKey_NamedKey_BEGIN/ImGuiKey_NamedKey_END? -- Fonts: removed const qualifiers from most font functions in prevision for upcoming fonts improvements. - -Other changes: - -- Selectable: selected Selectables use ImGuiCol_Header instead of an arbitrary lerp - between _Header and _HeaderHovered which was introduced v1.91 (#8106, #1861) -- Buttons: using ImGuiItemFlags_ButtonRepeat makes default button behavior use - PressedOnClick instead of PressedOnClickRelease when unspecified. - - This is intended to make the +/- buttons of InputInt/InputFloat react on the - initial mouse down event. - - Note that it may reveal incorrect usage if you were using InputInt/InputFloat - without persistent storage by relying solely on e.g. IsItemDeactivatedAfterEdit(): - this was never supported and didn't work consistently (see #8149). -- InputText: fixed a bug (regression in 1.91.2) where modifying text buffer within - a callback would sometimes prevents further appending to the buffer. -- Tabs, Style: made ImGuiCol_TabDimmedSelectedOverline alpha 0 (not visible) in default - styles as the current look is not right (but ImGuiCol_TabSelectedOverline stays the same). -- Log/Capture: added experimental io.ConfigWindowsCopyContentsWithCtrlC option to - automatically copy window contents into clipboard using CTRL+C. This is experimental - because (1) it currently breaks on nested Begin/End, (2) text output quality varies, - and (3) text output comes in submission order rather than spatial order. -- Log/Capture: better decorating of BeginMenu() and TabItem() output. -- Log/Capture: a non terminated log ends automatically in the window which called it. -- imgui_freetype: Fixed a crash in build font atlas when using merged fonts and the - first font in a merged set has no loaded glyph. (#8081) -- Backends: DX12: Unmap() call specify written range. The range is informational and - may be used by debug tools. -- Backends: SDL2: Replace SDL_Vulkan_GetDrawableSize() forward declaration with the - actual include. (#8095, #7967, #3190) [@sev-] -- Backends: SDL2, SDL3: SDL_EVENT_MOUSE_WHEEL event doesn't require dividing - by 100.0f on Emscripten target. (#4019, #6096, #1463) -- Examples: SDL3+Vulkan: Added example. (#8084, #8085) -- Examples: Android+OpenGL: Using ALooper_pollOnce() instead of ALooper_pollAll() - which has been deprecated. (#8013) [@feather179] - - ------------------------------------------------------------------------ - VERSION 1.91.4 (Released 2024-10-18) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.91.4 - -Breaking changes: - -- Style: renamed ImGuiCol_NavHighlight to ImGuiCol_NavCursor, for consistency with - newly exposed and reworked features. Kept inline redirection enum (will obsolete). -- The typedef for ImTextureID now defaults to ImU64 instead of void*. (#1641) - - This removes the requirement to redefine it for backends which are e.g. storing - descriptor sets or other 64-bits structures when building on 32-bits archs - (namely our DX12 and Vulkan backends). It therefore simplify various building scripts/helpers. - - You may have compile-time warnings if you were casting to 'void*' instead of 'ImTextureID' - when passing your types to functions taking ImTextureID values, e.g. ImGui::Image(). - In doubt it is almost always better to do an intermediate intptr_t cast, since it - allows casting any pointer/integer type without warning: - - May warn: ImGui::Image((void*)MyTextureData, ...); - - May warn: ImGui::Image((void*)(intptr_t)MyTextureData, ...); - - Won't warn: ImGui::Image((ImTextureID)(intptr_t)MyTextureData), ...); - - Note that you can always define ImTextureID to be your own high-level structures - (with dedicated constructors and extra render parameters) if you like. -- IO: moved ImGuiConfigFlags_NavEnableSetMousePos to standalone io.ConfigNavMoveSetMousePos bool. -- IO: moved ImGuiConfigFlags_NavNoCaptureKeyboard to standalone io.ConfigNavCaptureKeyboard bool - (note the inverted value!). (#2517, #2009) - Kept legacy names (will obsolete) + code that copies settings once the first time. - Dynamically changing the old value won't work. Switch to using the new value! - -Other changes: - -- IO: added 'void* platform_io.Renderer_RenderState' which is set during the - ImGui_ImplXXXX_RenderDrawData() of standard backends to expose selected render - states to your draw callbacks. (#6969, #5834, #7468, #3590) -- IO: io.WantCaptureKeyboard is never set when ImGuiConfigFlags_NoKeyboard is enabled. (#4921) -- Error Handling: turned a few more functions into recoverable errors. (#1651) -- Nav (Keyboard/Gamepad navigation): - - Nav: added io.ConfigNavCursorVisibleAuto and io.ConfigNavCursorVisibleAlways to configure - visibility of navigation cursor. (#1074, #2048, #7237, #8059, #3200, #787) - - Set io.ConfigNavCursorVisibleAuto = true (default) to enable automatic toggling - of cursor visibility (mouse click hide the cursor, arrow keys makes it visible). - - Set io.ConfigNavCursorVisibleAlways to keep cursor always visible. - - Nav: added SetNavCursorVisible(bool visible) function to manipulate visibility of - navigation cursor (e.g. set default state, or after some actions). (#1074, #2048, #7237, #8059) - - Nav: added io.ConfigNavEscapeClearFocusItem and io.ConfigNavEscapeClearFocusWindow to change - how pressing Escape affects navigation. (#8059, #2048, #1074, #3200) - - Set io.ConfigNavEscapeClearFocusItem = true (default) to clear focused item and highlight. - - Set io.ConfigNavEscapeClearFocusItem = false for Escape to not have an effect. - - Set io.ConfigNavEscapeClearFocusWindow = true to completely unfocus the dear imgui window, - is for some reason your app relies on imgui focus to take other decisions. - - Nav: pressing escape to hide the navigation cursor doesn't clear location, so it may be - restored when Ctrl+Tabbing back into the same window later. - - Nav: fixed Ctrl+Tab initiated with no focused window from skipping the top-most window. (#3200) - - Nav: navigation cursor is not rendered for items with `ImGuiItemFlags_NoNav`. Can be relevant - when e.g activating a _NoNav item with mouse, then Ctrl+Tabbing back and forth. -- Disabled: clicking a disabled item focuses parent window. (#8064) -- InvisibleButton, Nav: fixed an issue when InvisibleButton() would be navigable into but - not display navigation highlight. Properly navigation on it by default. (#8057) -- InvisibleButton: added ImGuiButtonFlags_EnableNav to enable navigation. (#8057) -- Tooltips: fixed incorrect tooltip positioning when using keyboard/gamepad navigation - (1.91.3 regression). (#8036) -- DrawList: AddCallback() added an optional size parameter allowing to copy and - store any amount of user data for usage by callbacks: (#6969, #4770, #7665) - - If userdata_size == 0: we copy/store the 'userdata' argument as-is (existing behavior). - It will be available unmodified in ImDrawCmd::UserCallbackData during render. - - If userdata_size > 0, we copy/store 'userdata_size' bytes pointed to by 'userdata' (new behavior). - We store them in a buffer stored inside the drawlist. ImDrawCmd::UserCallbackData - will point inside that buffer so you have to retrieve data from there. Your callback - may need to use ImDrawCmd::UserCallbackDataSize if you expect dynamically-sized data. - - Note that we use a raw type-less copy. -- Tables: fixed initial auto-sizing issue with synced-instances. (#8045, #7218) -- InputText: fixed an issue with not declaring ownership of Delete/Backspace/Arrow keys, - preventing use of external shortcuts that are not guarded by an ActiveId check. (#8048) - [@geertbleyen] -- InputText: ensure mouse cursor shape is set regardless of whether keyboard mode is - enabled or not. (#6417) -- InputScalar: added an assert to clarify that ImGuiInputTextFlags_EnterReturnsTrue is not - supported by InputFloat, InputInt, InputScalar etc. widgets. It actually never was. (#8065, #3946) -- imgui_freetype: Added support for plutosvg (as an alternative to lunasvg) to render - OpenType SVG fonts. Requires defining IMGUI_ENABLE_FREETYPE_PLUTOSVG along with IMGUI_ENABLE_FREETYPE. - Providing headers/libraries for plutosvg + plutovg is up to you (see #7927 for help). - (#7927, #7187, #6591, #6607) [@pthom] -- Backends: DX11, DX12, SDLRenderer2/3. Vulkan, WGPU: expose selected state in - ImGui_ImplXXXX_RenderState structures during render loop user draw callbacks. - (#6969, #5834, #7468, #3590) -- Backends: DX9, DX10, DX11, DX12, OpenGL, Vulkan, WGPU: Changed default texture sampler - to Clamp instead of Repeat/Wrap. (#7468, #7511, #5999, #5502, #7230) - - ------------------------------------------------------------------------ - VERSION 1.91.3 (Released 2024-10-04) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.91.3 - -Breaking changes: - -- Drags: treat v_min==v_max as a valid clamping range when != 0.0f. Zero is still a special - value due to legacy reasons, unless using ImGuiSliderFlags_ClampZeroRange. (#7968, #3361, #76) -- Drags: extended behavior of ImGuiSliderFlags_AlwaysClamp to include _ClampZeroRange. - It considers v_min==v_max==0.0f as a valid clamping range (aka edits not allowed). - Although unlikely, it you wish to only clamp on text input but want v_min==v_max==0.0f - to mean unclamped drags, you can use _ClampOnInput instead of _AlwaysClamp. (#7968, #3361, #76) - -Other changes: - -- Error Handling: Enabled/improved error recovery systems. (#1651, #5654) - - Error recovery is provided as a way to facilitate: - - Recovery after a programming error. Native code or scripting language (the later - tends to facilitate iterating on code while running). - - Recovery after running an exception handler or any error processing which may skip code - after an error has been detected. - - Error recovery is not perfect nor guaranteed! It is a feature to ease development. - You not are not supposed to rely on it in the course of a normal application run. - - Functions that support error recovery are using IM_ASSERT_USER_ERROR() instead of IM_ASSERT(). - - By design, we do not allow error recovery to be 100% silent. One of the options needs to be enabled! - - Possible usage: facilitate recovery from errors triggered from a scripting language or - after specific exceptions handlers. Surface errors to programmers in less aggressive ways. - - Always ensure that on programmers seats you have at minimum Asserts or Tooltips enabled - when making direct imgui API calls! Otherwise it would severely hinder your ability to - catch and correct mistakes! - - Added io.ConfigErrorRecovery to enable error recovery support. - - Added io.ConfigErrorRecoveryEnableAssert to assert on recoverable errors. - - Added io.ConfigErrorRecoveryEnableDebugLog to output to debug log on recoverable errors. - - Added io.ConfigErrorRecoveryEnableTooltip to enable displaying an error tooltip on recoverable errors. - The tooltip include a way to enable asserts if they were disabled. - - All options are enabled by default. - - Read https://github.com/ocornut/imgui/wiki/Error-Handling for a bit more details. -- Windows: BeginChild(): made it possible to call SetNextWindowSize() on a child window - using ImGuiChildFlags_ResizeX,ImGuiChildFlags_ResizeY in order to override its current - size. (#1710, #8020) -- Scrollbar: Shift+Click scroll to clicked location (pre-1.90.8 default). (#8002, #7328) -- Scrollbar: added io.ConfigScrollbarScrollByPage setting (default to true). (#8002, #7328) - Set io.ConfigScrollbarScrollByPage=false to enforce always scrolling to clicked location. -- Drags: split ImGuiSliderFlags_AlwaysClamp into two distinct flags: (#7968, #3361, #76) - - ImGuiSliderFlags_AlwaysClamp = ImGuiSliderFlags_ClampOnInput + ImGuiSliderFlags_ClampZeroRange. - - Previously _AlwaysClamp only did the equivalent of _ClampOnInput. - - Added ImGuiSliderFlags_ClampOnInput which is now a subset of AlwaysClamp. - (note that it was the old name of AlwaysClamp, but we are reintroducing that name). - - Added ImGuiSliderFlags_ClampZeroRange to enforce clamping even when v_min==v_max==0.0f - in drag functions. Sliders are not affected. -- Tooltips, Drag and Drop: Fixed an issue where the fallback drag and drop payload tooltip - appeared during drag and drop release. -- Tooltips, Drag and Drop: Stabilized name of drag and drop tooltip window so that - transitioning from an item tooltip to a drag tooltip doesn't leak window auto-sizing - info from one to the other. (#8036) -- Tooltips: Tooltips triggered from touch inputs are positioned above the item. (#8036) -- Backends: SDL3: Update for API changes: SDL_bool removal. SDL_INIT_TIMER removal. -- Backends: WebGPU: Fixed DAWN api change using WGPUStringView in WGPUShaderSourceWGSL. - (#8009, #8010) [@blitz-research] - ------------------------------------------------------------------------ - VERSION 1.91.2 (Released 2024-09-19) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.91.2 - -Breaking changes: - - - Internals: using multiple overlaid ButtonBehavior() with same ID will now have the - io.ConfigDebugHighlightIdConflicts=true feature emit a warning. (#8030) - It was one of the rare case where using same ID is legal. Workarounds: - - use single ButtonBehavior() call with multiple _MouseButton flags - - or surround the calls with PushItemFlag(ImGuiItemFlags_AllowDuplicateId, true); ... PopItemFlag() - -Other changes: - -- Added io.ConfigDebugHighlightIdConflicts debug feature! (#7961, #7669) - THIS DETECTS THE MOST COMMON USER ERROR BY FIRST-TIME DEAR IMGUI PROGRAMMERS! - - The tool detects when multiple items are sharing the same identifier, due to not - using PushID/PopID in loops, or not using ID stack facilities such as "##" suffixes. - Very frequently it happens when using empty "" labels. - - When hovering an item with a conflicting ID, all visible items with the same ID will - be highlighted and an explanatory tooltip is made visible. - - The feature may be disabled and is exposed in Demo->Tools menu. - - I've been wanting to add this tool for a long time, but was stalled by finding a way to - not make it spammy + make it practically zero cost. After @pthom made various proposals to - solve the same problem (thanks for pushing me!), I decided it was time to finish it. - - Added ImGuiItemFlags_AllowDuplicateId to use with PushItemFlag()/PopItemFlag() if for some - reason you intend to have duplicate identifiers. - - (#74, #96, #480, #501, #647, #654, #719, #843, #894, #1057, #1173, #1390, #1414, #1556, #1768, - #2041, #2116, #2330, #2475, #2562, #2667, #2807, #2885, #3102, #3375, #3526, #3964, #4008, - #4070, #4158, #4172, #4199, #4375, #4395, #4471, #4548, #4612, #4631, #4657, #4796, #5210, - #5303, #5360, #5393, #5533, #5692, #5707, #5729, #5773, #5787, #5884, #6046, #6093, #6186, - #6223, #6364, #6387, #6567, #6692, #6724, #6939, #6984, #7246, #7270, #7375, #7421, #7434, - #7472, #7581, #7724, #7926, #7937 and probably more..) -- Nav: pressing any keyboard key while holding Alt disable toggling nav layer on Alt release. (#4439) -- MultiSelect+Tables: fixed an issue where box-select would skip items while drag-scrolling - in a table with outer borders. (#7970, #7821). -- Inputs: SetNextItemShortcut() with ImGuiInputFlags_Tooltip doesn't show tooltip when item is active. -- InputText: internal refactoring to simplify and optimize the code. The ImWchar buffer has been - removed. Simplifications allowed to implement new optimizations for handling very large text buffers - (e.g. in our testing, handling of a 1 MB text buffer is now 3 times faster in VS2022 Debug build). - This is the first step toward more refactoring. (#7925) [@alektron, @ocornut] -- InputText: added CJK double-width punctuation to list of separators considered for CTRL+Arrow. -- Tables: fixed auto-width columns when using synced-instances of same table. The previous fix - done in v1.90.5 was incomplete. (#7218) -- Tables: fixed assertion related to inconsistent outer clipping when sizes are not rounded. (#7957) [@eclbtownsend] -- Tables: fixed assertion with tables with borders when clipped by parent. (#6765, #3752, #7428) -- Windows: fixed an issue where double-click to collapse could be triggered even while another - item is active, if the item didn't use the left mouse button. (#7841) -- Misc: Made it accepted to call SetMouseCursor() with any out-of-bound value, as a way to allow - hacking in custom cursors if desirable. -- Fonts: fixed ellipsis "..." rendering width miscalculation bug introduced in 1.91.0. (#7976) [@DDeimos] -- TextLinkOpenURL(): modified tooltip to display a verb "Open 'xxxx'". (#7885, #7660) -- Backends: SDL2: use SDL_Vulkan_GetDrawableSize() when available. (#7967, #3190) [@scribam] -- Backends: GLFW+Emscripten: use OSX behaviors automatically when using contrib glfw port. (#7965, #7915) - [@ypujante] -- Backends: WebGPU: Added support for optional IMGUI_IMPL_WEBGPU_BACKEND_DAWN / IMGUI_IMPL_WEBGPU_BACKEND_WGPU - defines to handle ever-changing native implementations. (#7977, #7969, #6602, #6188, #7523) [@acgaudette] - ------------------------------------------------------------------------ - VERSION 1.91.1 (Released 2024-09-04) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.91.1 - -Breaking changes: - -- BeginChild(): renamed ImGuiChildFlags_Border to ImGuiChildFlags_Borders for consistency. [@cfillion] - Kept inline redirection flag (will obsolete). -- IO: moved clipboard functions from ImGuiIO to ImGuiPlatformIO: - - io.GetClipboardTextFn -> platform_io.Platform_GetClipboardTextFn - - io.SetClipboardTextFn -> platform_io.Platform_SetClipboardTextFn - - in function signatures, changed 'void* user_data' to 'ImGuiContext* ctx' for consistency - with other functions. Pull your user data from platform_io.ClipboardUserData if used. - - as this is will affect all users of custom engines/backends, we are providing proper - legacy redirection (will obsolete). -- IO: moved other functions from ImGuiIO to ImGuiPlatformIO: - - io.PlatformOpenInShellFn -> platform_io.Platform_OpenInShellFn (#7660) - - io.PlatformSetImeDataFn -> platform_io.Platform_SetImeDataFn - - io.PlatformLocaleDecimalPoint -> platform_io.Platform_LocaleDecimalPoint (#7389, #6719, #2278) - - access those via GetPlatformIO() instead of GetIO(). - (Because PlatformOpenInShellFn and PlatformSetImeDataFn were introduced very recently and - often automatically set by core library and backends, we are exceptionally not maintaining - a legacy redirection symbol for those two.) -- Commented the old ImageButton() signature obsoleted in 1.89 (~August 2022). (#5533, #4471, #2464, #1390) - - old ImageButton() used ImTextureId as item id (created issue with e.g. multiple buttons in same scope, transient texture id values, opaque computation of ID) - - new ImageButton() requires an explicit 'const char* str_id' - - old ImageButton() had frame_padding' override argument. - - new ImageButton() always use style.FramePadding, which you can modify using PushStyleVar()/PopStyleVar(). - -Other changes: - -- IO: Added GetPlatformIO() and ImGuiPlatformIO, pulled from 'docking' branch, which - is a centralized spot to connect os/platform/renderer related functions. - Clipboard, IME and OpenInShell hooks are moved here. (#7660) -- IO, InputText: fixed an issue where typing text in an InputText() would defer character - processing by one frame, because of the trickling input queue. Reworked interleaved - keys<>char trickling to take account for keys known to input characters. (#7889, #4921, #4858) -- Windows: adjust default ClipRect to better match rendering of thick borders (which are in - theory not supported). Compensate for the fact that borders are centered around the windows - edge rather than inner. (#7887, #7888 + #3312, #7540, #3756, #6170, #6365) -- Made BeginItemTooltip() and IsItemHovered() with delay flag infer an implicit ID (for - ID-less items such as Text element) in a way that works when item resizes. (#7945, #1485) -- MultiSelect+TreeNode+Drag and Drop: fixed an issue where carrying a drag and drop payload - over an already open tree node using multi-select would incorrectly select it. (#7850) -- MultiSelect+TreeNode: default open behavior is _OpenOnDoubleClick + _OpenOnArrow when - used in a multi-select context without any ImGuiTreeNode_OpenOnXXX flags set. (#7850) -- Tables: fixes/revert a 1.90 change were outer border would be moved bottom and right - by an extra pixel + rework the change so that contents doesn't overlap the bottom and - right border in a scrolling table. (#6765, #3752, #7428) -- Tables: fixed an issue resizing columns or querying hovered column/row when using multiple - synced instances that are laid out at different X positions. (#7933) -- Tabs: avoid queuing a refocus when tab is already focused, which would have the - side-effect of e.g. closing popup on a mouse release. (#7914) -- InputText: allow callback to update buffer while in read-only mode. (imgui_club/#46) -- InputText: fixed an issue programmatically refocusing a multi-line input which was just active. (#4761, #7870) -- TextLink(), TextLinkOpenURL(): change mouse cursor to Hand shape when hovered. (#7885, #7660) -- Tooltips, Drag and Drop: made it possible to override BeginTooltip() position while inside - a drag and drop source or target: a SetNextWindowPos() call won't be overridden. (#6973) -- PlotHistogram, PlotLines: register item ID and use button behavior in a more idiomatic manner, - fixes preventing e.g. GetItemID() and other ID-based helper to work. (#7935, #3072) -- Style: added PushStyleVarX(), PushStyleVarY() helpers to conveniently modify only - one component of a ImVec2 var. -- Fonts: made it possible to use PushFont()/PopFont() calls across Begin() calls. (#3224, #3875, #6398, #7903) -- Backends: - - Backends: GLFW: added ImGui_ImplGlfw_Sleep() helper function because GLFW does not - provide a way to do a portable sleep. (#7844) - - Backends: GLFW+Emscripten: Use OpenURL() from GLFW3 contrib port when available and using - the contrib port instead of Emscripten own GLFW3 implementation. (#7647, #7915, #7660) [@ypujante] - - Backends: SDL2, SDL3: ignore events of other SDL windows. (#7853) [@madebr, @ocornut] - - Backends: SDL2, SDL3: storing SDL_WindowID inside ImGuiViewport::PlatformHandle instead of SDL_Window*. - - Backends: SDL3: Update for API changes: SDL_GetGamepads() memory ownership logic was reverted back - by SDL3 on July 27. (#7918, #7898, #7807) [@cheyao, @MattGuerrette] - - Backends: GLFW: passing null window to glfwGetClipboardString()/glfwSetClipboardString() - since GLFW own tests are doing that and it seems unnecessary. - - Backends: SDL2, SDL3, GLFW, OSX, Allegro: update to set function handlers in ImGuiPlatformIO - instead of ImGuiIO. -- Examples: - - Examples: GLFW (all), SDL2 (all), SDL3 (all), Win32+OpenGL3: rework examples main loop - to handle minimization without burning CPU or GPU by running unthrottled code. (#7844) - - Examples: SDL3: Update for API changes: SDL_Init() returns 0 on failure. - ------------------------------------------------------------------------ - VERSION 1.91.0 (Released 2024-07-30) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.91.0 - -Breaking changes: - -- IO, IME: renamed platform IME hook and added explicit context for consistency and future-proofness. - - old: io.SetPlatformImeDataFn(ImGuiViewport* viewport, ImGuiPlatformImeData* data); - - new: io.PlatformSetImeDataFn(ImGuiContext* ctx, ImGuiViewport* viewport, ImGuiPlatformImeData* data); - It is expected that for a vast majority of users this is automatically set by core - library and/or platform backend so it won't have any effect. -- Obsoleted GetContentRegionMax(), GetWindowContentRegionMin() and GetWindowContentRegionMax(). (#7838) - You should never need those functions! You can do everything in less a confusing manner by only - using GetCursorScreenPos() and GetContentRegionAvail(). Also always consider that if you are using - GetWindowPos() and GetCursorPos() you may also be making things unnecessarily complicated. - I repeat: You can do everything with GetCursorScreenPos() and GetContentRegionAvail()! - - GetWindowContentRegionMax().x - GetCursorPos().x --> GetContentRegionAvail().x - - GetWindowContentRegionMax().x + GetWindowPos().x --> GetCursorScreenPos().x + GetContentRegionAvail().x // when called from left edge of window - - GetContentRegionMax() --> GetContentRegionAvail() + GetCursorScreenPos() - GetWindowPos() // right edge in local coordinates - - GetWindowContentRegionMax().x - GetWindowContentRegionMin().x --> GetContentRegionAvail() // when called from left edge of window -- Item flag changes: - - Obsoleted PushButtonRepeat()/PopButtonRepeat() in favor of using new PushItemFlag()/PopItemFlag() - with ImGuiItemFlags_ButtonRepeat. Kept inline redirecting functions (will obsolete). - - Obsoleted PushTabStop()/PopTabStop() in favor of using new PushItemFlag()/PopItemFlag() - with ImGuiItemFlags_NoTabStop. Kept inline redirecting functions (will obsolete). - - Renamed ImGuiSelectableFlags_DontClosePopups to ImGuiSelectableFlags_NoAutoClosePopups for - consistency. Kept inline redirecting functions (will obsolete). - + Internals: changed/inverted ImGuiItemFlags_SelectableDontClosePopup (default==false) to - ImGuiItemFlags_AutoClosePopups (default==true), same logic, only inverted behavior. - (#1379, #1468, #2200, #4936, #5216, #7302, #7573) -- Commented out obsolete ImGuiModFlags (renamed to ImGuiKeyChord in 1.89). (#4921, #456) -- Commented out obsolete ImGuiModFlags_XXX values (renamed to ImGuiMod_XXX in 1.89). (#4921, #456) - - ImGuiModFlags_Ctrl -> ImGuiMod_Ctrl, ImGuiModFlags_Shift -> ImGuiMod_Shift etc. -- Backends: GLFW+Emscripten: Renamed ImGui_ImplGlfw_InstallEmscriptenCanvasResizeCallback() to - ImGui_ImplGlfw_InstallEmscriptenCallbacks(), with an additional GLFWWindow* parameter. (#7647) [@ypujante] - -Other changes: - -- Added TextLink(), TextLinkOpenURL() hyperlink widgets. (#7660) -- IO: added io.PlatformOpenInShellFn handler to open a link/folder/file in OS shell. (#7660) - (*EDIT* From next version 1.91.1 we moved this to platform_io.Platform_OpenInShellFn *EDIT**) - Added IMGUI_DISABLE_DEFAULT_SHELL_FUNCTIONS to disable default Windows/Linux/Mac implementations. -- IO: added io.ConfigNavSwapGamepadButtons to swap Activate/Cancel (A<>B) buttons, to match the - typical "Nintendo/Japanese consoles" button layout when using Gamepad navigation. (#787, #5723) -- Added PushItemFlag()/PopItemFlags(), ImGuiItemFlags to modify shared item flags: - - Added ImGuiItemFlags_NoTabStop to disable tabbing through items. - - Added ImGuiItemFlags_NoNav to disable any navigation and focus of items. (#787) - - Added ImGuiItemFlags_NoNavDefaultFocus to disable item being default focus. (#787) - - Added ImGuiItemFlags_ButtonRepeat to enable repeat on any button-like behavior. - - Added ImGuiItemFlags_AutoClosePopups to disable menu items/selection auto closing parent popups. - Disabling this was previously possible for Selectable() via a direct flag but not for MenuItem(). - (#1379, #1468, #2200, #4936, #5216, #7302, #7573) - - This was mostly all previously in imgui_internal.h. -- Multi-Select: added multi-select API and demos. (#1861, #6518) - - This system implements standard multi-selection idioms (CTRL+mouse click, CTRL+keyboard moves, - SHIFT+mouse click, SHIFT+keyboard moves, etc.) with support for clipper (not submitting non-visible - items), box-selection with scrolling, and many other details. - - In the spirit of Dear ImGui design, your code owns both items and actual selection data. - This is designed to allow all kinds of selection storage you may use in your application - (e.g. set/map/hash, intrusive selection, interval trees, up to you). - - The supported widgets are Selectable(), Checkbox(). TreeNode() is also technically supported but... - using this correctly is more complicated. You need some sort of linear/random access to your tree, - which is suited to advanced trees setups already implementing filters and clipper. - We will work toward simplifying our existing demo for trees. - - A helper ImGuiSelectionBasicStorage is provided to facilitate getting started in a typical app - (likely to suit a majority of users). - - Documentation: - - Wiki page https://github.com/ocornut/imgui/wiki/Multi-Select for API overview. - - Demo code + headers are well commented. - - Added BeginMultiSelect(), EndMultiSelect(), SetNextItemSelectionUserData(). - - Added IsItemToggledSelection() for use if you need latest selection update during current iteration. - - Added ImGuiMultiSelectIO and ImGuiSelectionRequest structures: - - BeginMultiSelect() and EndMultiSelect() return a ImGuiMultiSelectIO structure, which - is mostly an array of ImGuiSelectionRequest actions (clear, select all, set range, etc.) - - Other fields are helpful when using a clipper, or wanting to handle deletion nicely. - - Added ImGuiSelectionBasicStorage helper to store and maintain a selection (optional): - - This is similar to if you used e.g. a std::set to store a selection, with all the right - glue to honor ImGuiMultiSelectIO requests. Most applications can use that. - - Added ImGuiSelectionExternalStorage helper to maintain an externally stored selection (optional): - - Helpful to easily bind multi-selection to e.g. an array of checkboxes. - - Added ImGuiMultiSelectFlags options: - - ImGuiMultiSelectFlags_SingleSelect - - ImGuiMultiSelectFlags_NoSelectAll - - ImGuiMultiSelectFlags_NoRangeSelect - - ImGuiMultiSelectFlags_NoAutoSelect - - ImGuiMultiSelectFlags_NoAutoClear - - ImGuiMultiSelectFlags_NoAutoClearOnReselect (#7424) - - ImGuiMultiSelectFlags_BoxSelect1d - - ImGuiMultiSelectFlags_BoxSelect2d - - ImGuiMultiSelectFlags_BoxSelectNoScroll - - ImGuiMultiSelectFlags_ClearOnEscape - - ImGuiMultiSelectFlags_ClearOnClickVoid - - ImGuiMultiSelectFlags_ScopeWindow (default), ImGuiMultiSelectFlags_ScopeRect - - ImGuiMultiSelectFlags_SelectOnClick (default), ImGuiMultiSelectFlags_SelectOnClickRelease - - ImGuiMultiSelectFlags_NavWrapX - - Demo: Added "Examples->Assets Browser" demo. - - Demo: Added "Widgets->Selection State & Multi-Select" section, with: - - Multi-Select - - Multi-Select (with clipper) - - Multi-Select (with deletion) - - Multi-Select (dual list box) (#6648) - - Multi-Select (in a table) - - Multi-Select (checkboxes) - - Multi-Select (multiple scopes) - - Multi-Select (tiled assert browser) - - Multi-Select (trees) (#1861) - - Multi-Select (advanced) -- Inputs: added SetItemKeyOwner(ImGuiKey key) in public API. - This is a simplified version of a more complete set of function available in imgui_internal.h. - One common use-case for this is to allow your widgets to disable standard inputs behaviors such - as Tab or Alt handling, Mouse Wheel scrolling, etc. - (#456, #2637, #2620, #2891, #3370, #3724, #4828, #5108, #5242, #5641) - // Hovering or activating the button will disable mouse wheel default behavior to scroll - InvisibleButton(...); - SetItemKeyOwner(ImGuiKey_MouseWheelY); -- Nav: fixed clicking window decorations (e.g. resize borders) from losing focused item when - within a child window using ImGuiChildFlags_NavFlattened. -- InputText: added '\' and '/' as word separator. (#7824, #7704) [@reduf] -- TreeNode: added SetNextItemStorageID() to specify/override the identifier used for persisting - open/close storage. Useful if needing to often read/write from storage without manipulating - the ID stack. (#7553, #6990, #3823, #1131) -- Selectable: added ImGuiSelectableFlags_Highlight flag to highlight items independently from - the hovered state. (#7820) [@rerilier] -- Clipper: added SeekCursorForItem() function. When using ImGuiListClipper::Begin(INT_MAX) you can - can use the clipper without knowing the amount of items beforehand. (#1311) - In this situation, call ImGuiListClipper::SeekCursorForItem(items_count) at the end of your iteration - loop to position the layout cursor correctly. This is done automatically if provided a count to Begin(). -- Groups, Tables: fixed EndGroup() failing to correctly capture current table occupied size. (#7543) -- Style, TabBar: added style.TabBarOverlineSize / ImGuiStyleVar_TabBarOverlineSize to manipulate - thickness of the horizontal line over selected tabs. [@DctrNoob] -- Style: close button and collapse/window-menu button hover highlight made rectangular instead of round. -- Misc: added GetID(int) variant for consistency. (#7111) -- Debug Tools: - - Debug Log: Added IMGUI_DEBUG_LOG(), ImGui::DebugLog() in public API. (#5855) - Printed entries include imgui frame counter prefix + are redirected to ShowDebugLogWindow() and - other configurable locations. Always call IMGUI_DEBUG_LOG() for maximum stripping in caller code. - - Debug Log: Added "Configure Outputs.." button. (#5855) - - Debug Log: Fixed incorrect checkbox layout when partially clipped. -- Demo: Reworked "Property Editor" demo in a manner that more resemble the tree data and - struct description data that a real application would want to use. -- Backends: - - Backends: Win32: Fixed ImGuiMod_Super being mapped to VK_APPS instead of (VK_LWIN || VK_RWIN). - (#7768, #4858, #2622) [@Aemony] - - Backends: SDL3: Update for API changes: SDL_GetGamepads() memory ownership change. (#7807) - - Backends: SDL3: Update for API changes: SDL_GetClipboardText() memory ownership change. (#7801) - - Backends: SDL3: Update for API changes: SDLK_x renames and SDLK_KP_x removals (#7761, #7762) - - Backends: SDL3: Update for API changes: SDL_GetProperty() change to SDL_GetPointerProperty(). (#7794) [@wermipls] - - Backends: SDL2,SDL3,OSX: Update for io.SetPlatformImeDataFn() -> io.PlatformSetImeDataFn() rename. - - Backends: GLFW,SDL2: Added io.PlatformOpenInShellFn handler for web/Emscripten versions. (#7660) - [@ypujante, @ocornut] - - Backends: GLFW+Emscripten: Added support for GLFW3 contrib port which fixes many of the things - not supported by the embedded GLFW: gamepad support, mouse cursor shapes, copy to clipboard, - workaround for Super/Meta key, different ways of resizing, multi-window (glfw/canvas) support. - (#7647) [@ypujante] - - Backends: GLFW+Emscripten: Fixed Emscripten warning when using mouse wheel on some setups - "Unable to preventDefault inside passive event listener". (#7647, #7600) [@ypujante] - - ------------------------------------------------------------------------ - VERSION 1.90.9 (Released 2024-07-01) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.90.9 - -Breaking changes: - -- Removed old nested structure: renaming ImGuiStorage::ImGuiStoragePair type to - ImGuiStoragePair (simpler for many languages). No significant nested type left. -- BeginChild: added ImGuiChildFlags_NavFlattened as a replacement for the window - flag ImGuiWindowFlags_NavFlattened: the feature only ever made sense for - BeginChild() calls anyhow. (#7687) [@cfillion] - - old: BeginChild("Name", size, 0, ImGuiWindowFlags_NavFlattened); - - new: BeginChild("Name", size, ImGuiChildFlags_NavFlattened, 0) - Kept inline redirection flag (will obsolete). -- Style: renamed tab colors for clarity and consistency with other changes: (#261, #351) - - ImGuiCol_TabActive -> ImGuiCol_TabSelected - - ImGuiCol_TabUnfocused -> ImGuiCol_TabDimmed - - ImGuiCol_TabUnfocusedActive -> ImGuiCol_TabDimmedSelected - Kept inline redirecting enums (will obsolete). -- IO: io.ClearInputKeys() (first exposed in 1.89.8) doesn't clear mouse data. - Newly added io.ClearInputMouse() does. (#4921) -- Drag and Drop: renamed ImGuiDragDropFlags_SourceAutoExpirePayload to - ImGuiDragDropFlags_PayloadAutoExpire. Kept inline redirecting enum (will obsolete). (#1725, #143) - -Other changes: - -- IO: do not disable io.ConfigWindowsResizeFromEdges (which allow resizing from borders - and lower-left corner) when ImGuiBackendFlags_HasMouseCursors is not set by backend. - The initial reasoning is that resizing from borders feels better when correct mouse cursor - shape change as honored by backends. Keeping this enabling will hopefully increase pressure - on third-party backends to set ImGuiBackendFlags_HasMouseCursors and honor changes of - ImGui::GetMouseCursor() value. (#1495) -- IO: do not claim io.WantCaptureMouse=true on the mouse release frame of a button - which was pressed over void/underlying app, which is consistent/needed to allow the - mouse up event of a drag over void/underlying app to catch release. (#1392) [@Moka42] -- IO: Added io.ClearInputMouse() to clear mouse state. (#4921) -- IO: Added ImGuiConfigFlags_NoKeyboard for consistency and convenience. (#4921) -- Windows: BeginChild(): fixed a glitch when during a resize of a child window which is - tightly close to the boundaries of its parent (e.g. with zero WindowPadding), the child - position could have temporarily be moved around by erroneous padding application. (#7706) -- TabBar, Style: added ImGuiTabBarFlags_DrawSelectedOverline option to draw a horizontal - line over selected tabs to increase visibility. This is used by docking. - Added corresponding ImGuiCol_TabSelectedOverline and ImGuiCol_TabDimmedSelectedOverline colors. -- Tables: added TableGetHoveredColumn() to public API, as an alternative to testing for - 'TableGetColumnFlags(column) & ImGuiTableColumnFlags_IsHovered' on each column. (#3740) -- Disabled, Inputs: fixed using Shortcut() or SetNextItemShortcut() within a disabled block - bypassing the disabled state. (#7726) -- Disabled: Reworked 1.90.8 behavior of Begin() not inheriting current BeginDisabled() state, - to make it that only tooltip windows are temporarily clearing it. (#211, #7640) -- Drags: added ImGuiSliderFlags_WrapAround flag for DragInt(), DragFloat() etc. (#7749) -- Drag and Drop: BeginDragDropSource() with ImGuiDragDropFlags_SourceExtern sets - active id so a multi-frame extern source doesn't interfere with hovered widgets. (#143) -- Drag and Drop: BeginDragDropSource() with ImGuiDragDropFlags_SourceExtern does not assume - a mouse button being pressed. Facilitate implementing cross-context drag and drop. (#143) -- Drag and Drop: Added ImGuiDragDropFlags_PayloadNoCrossContext/_PayloadNoCrossProcess flags - as metadata to specify that a payload may not be copied outside the context/process by - some logic aiming to copy payloads around. -- Drag and Drop: Fixes an issue when elapsing payload would be based on last payload - frame instead of last drag source frame, which makes a difference if not resubmitting - payload every frame. (#143) -- Debug Tools: Metrics/Debugger: Browsing a Storage perform hover lookup on identifier. -- Viewports: Backported 'void* ImGuiViewport::PlatformHandle' from docking branch for - use by backends. -- imgui_freetype: Fixed divide by zero while handling FT_PIXEL_MODE_BGRA glyphs. (#7267, #3369) -- Backends: OpenGL2, OpenGL3: ImGui_ImplOpenGL3_NewFrame() recreates font texture if it - has been destroyed by ImGui_ImplOpenGL3_DestroyFontsTexture(). (#7748) [@mlauss2] -- Backends: SDL3: Update for API removal of keysym field in SDL_KeyboardEvent. (#7728) -- Backends: SDL3: Update for SDL_StartTextInput()/SDL_StopTextInput() API changes. (#7735) -- Backends: SDL3: Update for SDL_SetTextInputRect() API rename. (#7760, #7754) [@maxortner01] -- Backends: SDLRenderer3: Update for SDL_RenderGeometryRaw() API changes. (SDL#9009). -- Backends: Vulkan: Remove Volk/ from volk.h #include directives. (#7722, #6582, #4854) - [@martin-ejdestig] -- Examples: SDL3: Remove use of SDL_HINT_IME_NATIVE_UI since new SDL_HINT_IME_IMPLEMENTED_UI - values has a more suitable default for our case case. -- Examples: GLFW+Vulkan, SDL+Vulkan: handle swap chain resize even without Vulkan - returning VK_SUBOPTIMAL_KHR, which doesn't seem to happen on Wayland. (#7671) - [@AndreiNego, @ocornut] - - ------------------------------------------------------------------------ - VERSION 1.90.8 (Released 2024-06-06) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.90.8 - -Breaking changes: - -- Reordered various ImGuiInputTextFlags values. This should NOT be breaking unless - you are using generated headers that have values not matching the main library. -- Removed ImGuiButtonFlags_MouseButtonDefault_ = ImGuiButtonFlags_MouseButtonLeft - from imgui.h, was mostly unused and misleading. - -Other changes: - -- Inputs: fixed IsMouseClicked(..., repeat=true); broken in 1.90.7 on 2024/05/22. - (due to an internal api parameter swap, repeat wouldn't be honored and - ownership would be accidentally checked even though this api is meant to not - check ownership). (#7657) [@korenkonder] -- Windows: fixed altering FramePadding mid-frame not correctly affecting logic - responsible for honoring io.ConfigWindowsMoveFromTitleBarOnly. (#7576, #899) -- Scrollbar: made scrolling logic more standard: clicking above or below the - grab scrolls by one page, holding mouse button repeats scrolling. (#7328, #150) -- Scrollbar: fixed miscalculation of vertical scrollbar visibility when required - solely by the presence of a horizontal scrollbar. (#1574) -- InputScalar, InputInt, InputFloat: added ImGuiInputTextFlags_ParseEmptyRefVal - to parse an empty field as zero-value. (#7305) [@supermerill, @ocornut] -- InputScalar, InputInt, InputFloat: added ImGuiInputTextFlags_DisplayEmptyRefVal - to display a zero-value as empty. (#7305) [@supermerill, @ocornut] -- Popups: fixed an issue preventing to close a popup opened over a modal by clicking - over void (it required clicking over the visible part of the modal). (#7654) -- Tables: fixed an issue where ideal size reported to parent container wouldn't - correctly take account of inner scrollbar, affecting potential auto-resize of - parent container. (#7651) -- Tables: fixed a bug where after disabling the ScrollY flag for a table, - previous scrollbar width would be accounted for. (#5920) -- Combo: simplified Combo() API uses a list clipper (due to its api it wasn't - previously trivial before we added clipper.IncludeItemByIndex() function). -- Disabled: nested tooltips or other non-child window within a BeginDisabled() - block disable the disabled state. (#211, #7640) -- Misc: made ImGuiDir and ImGuiSortDirection stronger-typed enums. -- Backends: SDL3: Update for SDL_SYSTEM_CURSOR_xxx api renames. (#7653) - - ------------------------------------------------------------------------ - VERSION 1.90.7 (Released 2024-05-27) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.90.7 - -Breaking changes: - -- Inputs: on macOS X, Cmd and Ctrl keys are now automatically swapped by io.AddKeyEvent(), - as this naturally align with how macOS X uses those keys. (#2343, #4084, #5923, #456) - - Effectively it means that e.g. ImGuiMod_Ctrl | ImGuiKey_C is a valid idiomatic shortcut - for both Windows and Mac style users. - - It shouldn't really affect your code unless you had explicit/custom shortcut swapping in - place for macOS X apps in your input logic. - - Removed ImGuiMod_Shortcut which was previously dynamically remapping to Ctrl or Cmd/Super. - It is now unnecessary to specific cross-platform idiomatic shortcuts. - Kept symbols redirecting ImGuiMod_Shortcut to ImGuiMod_Ctrl (will obsolete). -- Commented out obsolete symbols renamed in 1.88 (May 2022): - CaptureKeyboardFromApp() -> SetNextFrameWantCaptureKeyboard() - CaptureMouseFromApp() -> SetNextFrameWantCaptureMouse() -- Backends: SDL_Renderer2/SDL_Renderer3: ImGui_ImplSDLRenderer2_RenderDrawData() and - ImGui_ImplSDLRenderer3_RenderDrawData() now takes a SDL_Renderer* parameter. This was previously - overlooked from the API but it will allow eventual support for multi-viewports. - -Other changes: - -- Windows: BeginChild(): fixed visibility of fully clipped child windows and tables to Test Engine. -- Windows: BeginChild(): fixed auto-fit calculation when using either (not both) ResizeX/ResizeY - and double-clicking on a border. Calculation incorrectly didn't always account for scrollbar as - it assumed the other axis would also be auto-fit. (#1710) -- Inputs: added shortcut and routing system in public API. (#456, #2637) [BETA] - - The general idea is that several callers may register interest in a shortcut, and only one owner gets it. - - in Parent: call Shortcut(Ctrl+S) // When Parent is focused, Parent gets the shortcut. - - in Child1: call Shortcut(Ctrl+S) // When Child1 is focused, Child1 gets the shortcut (Child1 overrides Parent shortcuts) - - in Child2: no call // When Child2 is focused, Parent gets the shortcut. - The whole system is order independent, so if Child1 makes its calls before Parent, results will be identical. - This is an important property as it facilitate working with foreign code or larger codebase. - - Added Shortcut() function: - e.g. Using ImGui::Shortcut(ImGuiMod_Ctrl | ImGuiKey_C); with default policy: - - checks that CTRL+C is pressed, - - and that current window is in focus stack, - - and that no other requests for CTRL+C have been made from higher priority locations - (e.g. deeper in the window/item stack). - - Added SetNextItemShortcut() to set a shortcut to locally or remotely press or activate - an item (depending on specified routing policy: using ImGuiInputFlags_RouteGlobal the item - shortcut may be executed even if its window is not in focus stack). - Items like buttons are not fully activated, in the sense that they get pressed but another - active item, e.g. InputText() won't be deactivated. - - Added routing policies for Shortcut(), SetNextItemShortcut(): (#456, #2637) - - ImGuiInputFlags_RouteFocused: focus stack route (default) - - ImGuiInputFlags_RouteActive: only route to active item - - ImGuiInputFlags_RouteGlobal: route globally, unless a focus route claim shame shortcut. - - ImGuiInputFlags_RouteAlways: no routing submission, no routing check. - - Added other shortcut/routing options: (#456, #2637) - - ImGuiInputFlags_Repeat: for use by Shortcut() and by upcoming rework of various - input functions (which are still internal for now). - - ImGuiInputFlags_Tooltip: for SetNextItemShortcut() to show a tooltip when hovering item. - - ImGuiInputFlags_RouteOverFocused: global route takes priority over focus route. - - ImGuiInputFlags_RouteOverActive: global route takes priority over active item. - - ImGuiInputFlags_RouteUnlessBgFocused: global route disabled if no imgui window focused. - - ImGuiInputFlags_RouteFromRootWindow: route evaluated from the point of view of root window rather than current window. -- Inputs: (OSX) Fixes variety of code which inconsistently required using Ctrl instead of Cmd. - - e.g. Drags/Sliders now use Cmd+Click to input a value. (#4084) - - Some shortcuts still uses Ctrl on Mac: e.g. Ctrl+Tab to switch windows. (#4828) -- Inputs: (OSX) Ctrl+Left Click alias as a Right click. (#2343) [@haldean, @ocornut] -- Inputs: Fixed ImGui::GetKeyName(ImGuiKey_None) from returning "N/A" or "None" depending - on value of IMGUI_DISABLE_OBSOLETE_KEYIO. It always returns "None". -- Nav: fixed holding Ctrl or gamepad L1 from not slowing down keyboard/gamepad tweak speed. - Broken during a refactor refactor for 1.89. Holding Shift/R1 to speed up wasn't broken. -- Tables: fixed cell background of fully clipped row overlapping with header. (#7575, #7041) [@prabuinet] -- Demo: Added "Inputs & Focus -> Shortcuts" section. (#456, #2637) -- Demo: Documents: Added shortcuts and renaming tabs/documents. (#7233) -- Examples: Win32+DX9,DX10,DX11,DX12: rework main loop to handle minimization and screen - locking without burning resources by running unthrottled code. (#2496, #3907, #6308, #7615) -- Backends: all backends + demo now call IMGUI_CHECKVERSION() to verify ABI compatibility between caller - code and compiled version of Dear ImGui. If you get an assert it most likely mean you have a build issue, - read comments near the assert. (#7568) -- Backends: Win32: undo an assert introduced in 1.90.6 which didn't allow WndProc - handler to be called before backend initialization. Because of how ::CreateWindow() - calls in WndProc this is facilitating. (#6275) [@MennoVink] -- Backends, Examples: SDL3: updates for latest SDL3 API changes. (#7580) [@kuvaus, @ocornut] - -Breaking changes IF you were using imgui_internal.h versions of Shortcut() or owner-aware -versions of IsKeyPressed(), IsKeyChordPressed(), IsMouseClicked() prior to this version: - -- Inputs (Internals): Renamed ImGuiKeyOwner_None to ImGuiKeyOwner_NoOwner, to make use more - explicit and reduce confusion with the fact it is a non-zero value and cannot be a default. -- Inputs (Internals): Renamed symbols global routes: - Renamed ImGuiInputFlags_RouteGlobalLow -> ImGuiInputFlags_RouteGlobal (this is the suggested global route) - Renamed ImGuiInputFlags_RouteGlobal -> ImGuiInputFlags_RouteGlobal | ImGuiInputFlags_RouteOverFocused - Renamed ImGuiInputFlags_RouteGlobalHigh -> ImGuiInputFlags_RouteGlobal | ImGuiInputFlags_RouteOverFocused | ImGuiInputFlags_RouteOverActive -- Inputs (Internals): Shortcut(), SetShortcutRouting(): swapped last two parameters order - in function signatures: - Before: Shortcut(ImGuiKeyChord key_chord, ImGuiID owner_id = 0, ImGuiInputFlags flags = 0); - After: Shortcut(ImGuiKeyChord key_chord, ImGuiInputFlags flags = 0, ImGuiID owner_id = 0); -- Inputs (Internals): owner-aware versions of IsKeyPressed(), IsKeyChordPressed(), IsMouseClicked(): - swapped last two parameters order in function signatures: - Before: IsKeyPressed(ImGuiKey key, ImGuiID owner_id, ImGuiInputFlags flags = 0); - After: IsKeyPressed(ImGuiKey key, ImGuiInputFlags flags, ImGuiID owner_id = 0); - Before: IsMouseClicked(ImGuiMouseButton button, ImGuiID owner_id, ImGuiInputFlags flags = 0); - After: IsMouseClicked(ImGuiMouseButton button, ImGuiInputFlags flags, ImGuiID owner_id = 0); -- For several reasons those changes makes sense. They were all made before making some of - those API public. Only past users of imgui_internal.h with the extra parameters will be affected. - Added asserts for valid flags in various functions to detect _some_ misuses, BUT NOT ALL. - - ------------------------------------------------------------------------ - VERSION 1.90.6 (Released 2024-05-08) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.90.6 - -Breaking changes: - -- TreeNode: Fixed a layout inconsistency when using an empty/hidden label followed - by a SameLine() call. (#7505, #282) - Before: TreeNode("##Hidden"); SameLine(); Text("Hello"); - // This was actually incorrect! BUT appeared to look ok with the default style - // where ItemSpacing.x == FramePadding.x * 2 (it didn't look aligned otherwise). - After: TreeNode("##Hidden"); SameLine(0, 0); Text("Hello"); - // This is correct for all values in style. - With the fix, IF you were successfully using TreeNode("")+SameLine(); you will now - have extra spacing between your TreeNode and the following item. You'll need to change - the SameLine() call to SameLine(0,0) to remove this extraneous spacing. - This seemed like the more sensible fix that's not making things less consistent. - (Note: when using this idiom you are likely to also use ImGuiTreeNodeFlags_SpanAvailWidth). - -Other changes: - -- Windows: Changed default ClipRect to extend to windows' left and right borders, - instead of adding arbitrary WindowPadding.x * 0.5f space on left and right. - That ClipRect half-padding was arbitrary/confusing and inconsistent with Y axis. - It also made it harder to draw items covering whole window without pushing an - extended ClipRect. Some items near windows left and right edge that used to be clipped - may be partly more visible. (#3312, #7540, #3756, #6170, #6365) -- Windows: Fixed subsequent Begin() append calls from setting last item information - for title bar, making it impossible to use IsItemHovered() on a Begin()-to-append, - and causing issue bypassing hover detection on collapsed windows. (#7506, #823) -- Fonts: Fixed font ascent and descent calculation when a font hits exact integer values. - It is possible that some prior manual use of ImFontConfig::GlyphOffset may become - duplicate with this fix. (#7399, #7404) [@GamingMinds-DanielC] -- TreeNode: Added ImGuiTreeNodeFlags_SpanTextWidth to make hitbox and highlight only - cover the label. (#6937) [@dimateos] -- Tables: Angled headers: fixed multi-line label display when angle is flipped. (#6917) -- Tables: Angled headers: added style.TableAngledHeadersTextAlign and corresponding - ImGuiStyleVar_TableAngledHeadersTextAlign variable. Default to horizontal center. (#6917) - [@thedmd, @ocornut] -- ProgressBar: Added support for indeterminate progress bar by passing an animated - negative fraction, e.g. ProgressBar(-1.0f * GetTime()). (#5316, #5370, #1901)[@gan74] -- Text, DrawList: Improved handling of long single-line wrapped text. Faster and - mitigate issues with reading vertex indexing limits with 16-bit indices. (#7496, #5720) -- Backends: OpenGL3: Detect ES3 contexts on desktop based on version string, - to e.g. avoid calling glPolygonMode() on them. (#7447) [@afraidofdark, @ocornut] -- Backends: OpenGL3: Update loader for Linux to support EGL/GLVND. (#7562) [@ShadowNinja, @vanfanel] -- Backends: Vulkan: Added convenience support for Volk via IMGUI_IMPL_VULKAN_USE_VOLK define. - (you could always use IMGUI_IMPL_VULKAN_NO_PROTOTYPES + ImGui_ImplVulkan_LoadFunctions() as well). - (#6582, #4854) [@adalsteinnh, @kennyalive, @ocornut] -- Backends: SDL3: Fixed text inputs. Re-enable calling SDL_StartTextInput()/SDL_StopTextInput() - as SDL3 no longer enables it by default. (#7452, #6306, #6071, #1953) [@Green-Sky] -- Examples: GLFW+Vulkan, SDL+Vulkan: Added optional support for Volk. (#6582, #4854) -- Examples: GLFW+WebGPU: Added support for WebGPU-native/Dawn (#7435, #7132) [@eliasdaler, @Zelif] -- Examples: GLFW+WebGPU: Renamed example_emscripten_wgpu/ to example_glfw_wgpu/. (#7435, #7132) - - ------------------------------------------------------------------------ - VERSION 1.90.5 (Released 2024-04-11) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.90.5 - -Breaking changes: - -- More formally obsoleted GetKeyIndex() when IMGUI_DISABLE_OBSOLETE_FUNCTIONS is set. - It has been unnecessary and a no-op since 1.87 (it returns the same value as passed - when used with a 1.87+ backend using io.AddKeyEvent() function). (#4921) - - IsKeyPressed(GetKeyIndex(ImGuiKey_XXX)) --> IsKeyPressed(ImGuiKey_XXX) -- ImDrawList: Merged the radius_x/radius_y parameters in AddEllipse(), AddEllipseFilled() - and PathEllipticalArcTo() into a single ImVec2 parameter. Exceptionally, because those - functions were added recently in 1.90, we are not adding inline redirection functions. - The transition is easy and should affect few users. (#2743, #7417) [@cfillion] - -Other changes: - -- Windows: Scrollbar visibility decision uses current size when both size and contents - size are submitted by API. (#7252) -- Windows: Double-click to collapse may be disabled via key-ownership mechanism. (#7369) -- Windows: BeginChild(): Extend outer resize borders to the edges when there are no corner - grips. Essentially affects resizable child windows. (#7440, #1710) [@cfillion] -- Windows: BeginChild(): Resizing logic for child windows evaluates whether per-axis clamping - should be applied based on parent scrollbars, not child scrollbars. (#7440, #1710) [@cfillion] - Adjust those resizing limits to match window padding rather than inner clipping rectangle. -- Tables: Fixed auto-width columns when using synced-instances of same table, width of - one instance would bleed into next one instead of sharing their widths. (#7218) -- Tables: Angled headers: fixed border hit box extending beyond when used within - non-scrollable tables. (#7416) [@cfillion] -- Tables: Angled headers: fixed borders not moving back up after TableAngleHeadersRow() - stops being called. (#7416) [@cfillion] -- Tables: Angled headers: rounding header size to nearest integers, fixes some issues - when using clipper. -- Menus, Popups: Fixed an issue where sibling menu popups re-opening in successive - frames would erroneously close the window. While it is technically a popup issue - it would generally manifest when fast moving the mouse bottom to top in a sub-menu. - (#7325, #7287, #7063) -- ProgressBar: Fixed passing fraction==NaN from leading to a crash. (#7451) -- ListBox: Fixed text-baseline offset when using SameLine()+Text() after a labeled ListBox(). -- Drags, Sliders, Inputs: Fixed io.PlatformLocaleDecimalPoint decimal point localization - feature not working regression from 1.90.1. (#7389, #6719, #2278) [@GamingMinds-DanielC] -- Style: Added ImGuiStyleVar_TabBorderSize, ImGuiStyleVar_TableAngledHeadersAngle for - consistency. (#7411) [@cfillion] -- DrawList: Added AddConcavePolyFilled(), PathFillConcave() concave filling. (#760) [@thedmd] - Note that only simple polygons (no self-intersections, no holes) are supported. -- DrawList: Allow AddText() to accept null ranges. (#3615, 7391) -- Docs: added more wiki links to headers of imgui.h/imgui.cpp to facilitate discovery - of interesting resources, because GitHub doesn't allow Wiki to be crawled by search engines. - - This is the main wiki: https://github.com/ocornut/imgui/wiki - - This is the crawlable version: https://github-wiki-see.page/m/ocornut/imgui/wiki - Adding a link to the crawlable version, even though it is not intended for humans, - to increase its search rank. - - ------------------------------------------------------------------------ - VERSION 1.90.4 (Released 2024-02-22) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.90.4 - -Other changes: - -- Nav: Fixed SetKeyboardFocusHere() or programmatic tabbing API from not working on - windows with the ImGuiWindowFlags_NoNavInputs flag (regression in 1.90.2, which - among other things broke imgui_memory_editor). -- Menus, Popups: Fixed an issue where hovering a parent-menu upward would - erroneously close the window. (#7325, #7287, #7063) -- Popups: Fixed resizable popup minimum size being too small. Standardized minimum - size logic. (#7329). -- Modals: Temporary changes of ImGuiCol_ModalWindowDimBg are properly handled by - BeginPopupModal(). (#7340) -- Tables: Angled headers: fixed support for multi-line labels. (#6917) -- Tables: Angled headers: various fixes to accurately handle CellPadding changes. (#6917) -- Tables: Angled headers: properly registers horizontal component of angled headers - for auto-resizing of columns. (#6917) -- Tables: Angled headers: fixed TableAngledHeadersRow() incorrect background fill - drawn too low, particularly visible with tables that have no scrolling. (#6917) -- ProgressBar: Fixed a minor tessellation issue when rendering rounded progress bars, - where in some situations the rounded section wouldn't follow regular tessellation rules. -- Debug Tools: Item Picker: Promoted ImGui::DebugStartItemPicker() to public API. (#2673) -- Debug Tools: Item Picker: Menu entry visible in Demo->Tools but greyed out unless - io.ConfigDebugIsDebuggerPresent is set. (#2673) -- Misc: Added optional alpha multiplier parameter to GetColorU32(ImU32) variant. -- Demo: Custom Rendering: better demonstrate PathArcTo(), PathBezierQuadraticCurveTo(), - PathBezierCubicCurveTo(), PathStroke(), PathFillConvex() functions. - - ------------------------------------------------------------------------ - VERSION 1.90.3 (Released 2024-02-14) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.90.3 - -Breaking changes: - -- Backends: SDL2: Removed obsolete ImGui_ImplSDL2_NewFrame(SDL_Window*) signature which - was obsoleted in 1.84. Calling ImGui_ImplSDL2_NewFrame() is fine. -- Backends: Vulkan: Moved RenderPass parameter from ImGui_ImplVulkan_Init() function to - ImGui_ImplVulkan_InitInfo structure. Not required when using dynamic rendering. (#7308) [@shawnhatori] -- Backends: Vulkan: Using dynamic rendering now require filling the PipelineRenderingCreateInfo - structure in ImGui_ImplVulkan_InitInfo, allowing to configure color/depth/stencil formats. - Removed ColorAttachmentFormat field previously provided for dynamic rendering. - (#7166, #6855, #5446, #5037) [@shawnhatori] - -Other changes: - -- Menus, Popups: Fixed menus and popups with ChildWindow flag erroneously not displaying - a scrollbar when contents is over parent viewport size. (#7287, #7063) [@ZingBallyhoo] -- Backends: SDL2, SDL3: Handle gamepad disconnection + fixed increasing gamepad reference - counter continuously. Added support for multiple simultaneous gamepads. - Added ImGui_ImplSDL2_SetGamepadMode()) function to select whether to automatically pick - first available gamepad, all gamepads, or specific gamepads. - (#3884, #6559, #6890, #7180) [@ocornut, @lethal-guitar, @wn2000, @bog-dan-ro] -- Backends: SDL3: Fixed gamepad handling. (#7180) [@bog-dan-ro] -- Backends: SDLRenderer3: query newly added SDL_RenderViewportSet() to not restore - a wrong viewport if none was initially set. -- Backends: DirectX9: Using RGBA format when allowed by the driver to avoid CPU side - conversion. (#6575) [@Demonese] -- Internals: Fixed ImFileOpen not working before context is created, preventing creation - of a font atlas before main context creation. (#7314, #7315) [@PathogenDavid, @ocornut] - - ------------------------------------------------------------------------ - VERSION 1.90.2 (Released 2024-02-09) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.90.2 - -Breaking changes: - -- Commented out ImGuiIO::ImeWindowHandle obsoleted in 1.87 in favor of writing - to 'void* ImGuiViewport::PlatformHandleRaw'. -- Backends: WebGPU: ImGui_ImplWGPU_Init() now takes a ImGui_ImplWGPU_InitInfo structure - instead of variety of parameters, allowing for easier further changes. (#7240) - -Other changes: - -- Nav: keyboard/gamepad activation mark widgets as held to give better visual feedback. -- Nav: tweak to logic marking navigated item as hovered when using keyboard, allowing - the hover highlight to stay even while another item is activated. -- Nav: Fixed SetKeyboardFocusHere() not working when current nav focus is in different scope, - regression from 1.90.1 related to code scoping Tab presses to local scope. (#7226) [@bratpilz] -- Nav: Fixed pressing Escape while in a child window with _NavFlattened flag. (#7237) -- Nav: Improve handling of Alt key to toggle menu so that key ownership may be claimed on - individual left/right alt key without interfering with the other. -- Nav, Menus: Fixed click on a BeginMenu() followed by right-arrow from making the child menu - reopen and flicker (using ImGuiPopupFlags_NoReopen). -- Nav: ImGuiWindowFlags_NoNavInputs is tested during scoring so NavFlattened windows can use it. -- Popups: OpenPopup(): added ImGuiPopupFlags_NoReopen flag to specifically not close and reopen - a popup when it is already open. (#1497, #1533) - (Note that this differs from specific handling we already have in place for the case of calling - OpenPopup() repeatedly every frame: we already didn't reopen in that specific situation, otherwise - the effect would be very disastrous in term of confusion, as reopening would steal focus). -- Popups: Slight change to popup closing logic (e.g. after focusing another window) which skipped - over popups that are also child windows. -- Combo: Fixed not reusing windows optimally when used inside a popup stack. -- Debug Tools: Metrics: Fixed debug break in SetShortcutRouting() not handling ImGuiMod_Shortcut redirect. -- Debug Tools: Metrics: Improved Monitors and Viewports minimap display. Highlight on hover. -- Debug Tools: Debug Log: Added "Input Routing" logging. -- Debug Tools: Added "nop" to IM_DEBUG_BREAK macro on GCC to work around GDB bug (#7266) [@Peter0x44] -- Backends: Vulkan: Fixed vkAcquireNextImageKHR() validation errors in VulkanSDK 1.3.275 by - allocating one extra semaphore than in-flight frames. (#7236) [@mklefrancois] -- Backends: Vulkan: Fixed vkMapMemory() calls unnecessarily using full buffer size. (#3957) -- Backends: Vulkan: Fixed handling of ImGui_ImplVulkan_InitInfo::MinAllocationSize field. (#7189, #4238) -- Backends: WebGPU: Added ImGui_ImplWGPU_InitInfo::PipelineMultisampleState. (#7240) -- Backends: WebGPU: Filling all WGPUDepthStencilState fields explicitly as a recent Dawn - update stopped setting default values. (#7232) [@GrigoryGraborenko] -- Backends: WebGPU: Fixed pipeline layout leak. (#7245) [@rajveermalviya] -- Backends: OpenGL3: Backup and restore GL_PIXEL_UNPACK_BUFFER. (#7253) -- Internals: Many improvements related to yet unpublicized shortcut routing and input ownership systems. -- Internals: InputText: Added internal helpers to force reload of user-buf when active. (#2890) [@kudaba, @ocornut] - Often requested in some form (#6962, #5219, #3290, #4627, #5054, #3878, #2881, #1506, #1216, #968), - and useful for interactive completion/suggestions popups (#2057, #718) - - ------------------------------------------------------------------------ - VERSION 1.90.1 (Released 2024-01-10) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.90.1 - -Breaking changes: - -- imgui_freetype: commented out ImGuiFreeType::BuildFontAtlas() obsoleted in 1.81. - Prefer using #define IMGUI_ENABLE_FREETYPE or see commented code for manual calls. -- Removed CalcListClipping() marked obsolete in 1.86. (#3841) - Prefer using ImGuiListClipper which can return non-contiguous ranges. -- Internals, Columns: commented out legacy ImGuiColumnsFlags_XXX symbols redirecting - to ImGuiOldColumnsFlags_XXX, obsoleted from imgui_internal.h in 1.80. -- Commented out obsolete ImGuiKey_KeyPadEnter redirection to ImGuiKey_KeypadEnter. (#2625, #7143) - -Other changes: - -- Windows: - - BeginChild(): Fixed auto-resizing erroneously limiting size to host viewport - minus padding. There are no limit to a child width/height. (#7063) [@Devyre] - - BeginChild(): Resize borders rendered even when ImGuiWindowFlags_NoBackground - is specified. (#1710, #7194) - - Fixed some auto-resizing path using style.WindowMinSize.x (instead of x/y) - for both axes since 1.90. (#7106) [@n0bodysec] - - Scrolling: internal scrolling value is rounded instead of truncated, as a way to reduce - speed asymmetry when (incorrectly) attempting to scroll by non-integer amount. (#6677) -- Navigation (Keyboard/gamepad): - - Nav, IO: SetNextFrameWantCaptureKeyboard(false) calls are not overridden back to true when - navigation is enabled. SetNextFrameWantCaptureKeyboard() is always higher priority. (#6997) - - Nav: Activation can also be performed with Keypad Enter. (#5606) -- Drag and Drop: - - Fixed drop target highlight on items temporarily pushing a widened clip rect - (namely Selectables and Treenodes using SpanAllColumn flag) so the highlight properly covers - all columns. (#7049, #4281, #3272) -- InputText: - - InputTextMultiline: Fixed Tab character input not repeating (1.89.4 regression). - - InputTextMultiline: Tabbing through a multi-line text editor which allows Tab character inputs - (using the ImGuiInputTextFlags_AllowTabInput flag) doesn't automatically activate it, in order - to allow passing through multiple widgets easily. (#3092, #5759, #787) -- Drags, Sliders, Inputs: - - DragScalarN, SliderScalarN, InputScalarN: Fixed incorrect pushes into ItemWidth - stack when number of components is 1. [#7095] [@Nahor] - - Drags, Sliders, Inputs: removed all attempts to filter non-numerical characters during text - editing. Invalid inputs not applied to value, visibly reverted after validation. (#6810, #7096) - - Drags, Sliders, Inputs: removal of filter means that "nan" and "inf" values may be input. (#7096) - - DragScalarN, SliderScalarN, InputScalarN, PushMultiItemsWidths: improve multi-components - width computation to better distribute the error. (#7120, #7121) [@Nahor] -- Menus: - - Tweaked hover slack logic, adding an extra timeout to avoid situations where a slow vertical - movements toward another parent BeginMenu() can keep the wrong child menu open. (#6671, #6926) -- Color Editors: - - ColorEdit: Layout tweaks for very small sizes. (#7120, #7121) - - ColorPicker: Fixed saturation/value cursor radius not scaling properly. -- Tabs: Added ImGuiTabItemFlags_NoAssumedClosure to enable app to react on closure attempt, - without having to draw an unsaved document marker (ImGuiTabItemFlags_UnsavedDocument sets - _NoAssumedClosure automatically). (#7084) -- Debug Tools: - - Added io.ConfigDebugIsDebuggerPresent option. When enabled, this adds buttons in various - locations of Metrics/Debugger to manually request a debugger break: - - Request a debug break in a Begin() call. - - Request a debug break in a ItemAdd() call via debug log and hovering 0xXXXXXX identifiers. - - Request a debug break in a BeginTable() call. - - Request a debug break in a SetShortcutRouting()/Shortcut() call. [Internal] - - Metrics: Reorganize Tools menu. - - Added DebugFlashStyleColor() to identify a style color. Added to Style Editor. - - Debug Log: Hide its own clipper log to reduce noise in the output. (#5855) - - Debug Log: Clicking any filter with SHIFT held enables it for 2 frames only, - making it easier when dealing with spammy logs. (#5855) -- Settings: Fixed an issue marking settings as dirty when merely clicking on a border or resize - grip without moving it. -- Misc: Added IMGUI_USER_H_FILENAME to change the path included when using - IMGUI_INCLUDE_IMGUI_USER_H. (#7039) [@bryceberger] -- Misc: Rework debug display of texture id in Metrics window to avoid compile-error when - ImTextureID is defined to be larger than 64-bits. (#7090) -- Misc: Added extra courtesy ==/!= operators when IMGUI_DEFINE_MATH_OPERATORS is defined. -- Misc: Fixed text functions fast-path for handling "%s" and "%.*s" to handle null pointers gracefully, - like most printf implementations. (#7016, #3466, #6846) [@codefrog2002] -- Misc: Renamed some defines in imstb_textedit.h to avoid conflicts when using unity/jumbo builds - on a codebase where another copy of the library is used. -- Misc: During shutdown, check that io.BackendPlatformUserData and io.BackendRendererUserData are NULL - in order to catch cases where backend was not shut down. (#7175) -- Misc: Reworked Issue Template to a shinier and better form. (#5927) [@Panquesito7, @PathogenDavid, @ocornut] -- Backends: - - GLFW, Emscripten: Added ImGui_ImplGlfw_InstallEmscriptenCanvasResizeCallback() to - register canvas selector and auto-resize GLFW window. (#6751) [@Traveller23, @ypujante] - - GLFW: Fixed Windows specific hooks to use Unicode version of WndProc even when - compiling in MBCS mode. (#7174) [@kimidaisuki22] - - OpenGL3: Update GL3W based imgui_impl_opengl3_loader.h to load libGL.so variants in - case of missing symlink. Fix 1.90 regression for some distros. (#6983) - - Vulkan: Fixed mismatching allocator passed to vkCreateCommandPool() vs - vkDestroyCommandPool(). (#7075) [@FoonTheRaccoon] - - Vulkan: Added MinAllocationSize field in ImGui_ImplVulkan_InitInfo to workaround zealous - "best practice" validation layer. (#7189, #4238) [@philae-ael] - - Vulkan: Stopped creating command pools with VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT - as we don't reset them. - - WebGPU: Fixed wgpuRenderPassEncoderSetScissorRect() crash when rendering modal window's - dimming layer, which has an unclipped value in ImDrawCmd::ClipRect. (#7191) [@aparis69] -- Examples: - - Examples: GLFW+Emscripten: Fixed examples not consistently resizing according to host canvas. - (#6751) [@Traveller23, @ypujante] - - Examples: SDL3: Minor fixes following recent SDL3 in-progress development. - - ------------------------------------------------------------------------ - VERSION 1.90.0 (Released 2023-11-15) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.90 - -Breaking changes: - - - BeginChild(): Upgraded 'bool border = false' parameter to 'ImGuiChildFlags flags = 0'. - Added ImGuiChildFlags_Border value. As with our prior "bool-to-flags" API updates, - the ImGuiChildFlags_Border value is guaranteed to be == true forever to ensure a - smoother transition, meaning all existing calls will still work. - If you want to neatly transition your call sites: - Before: BeginChild("Name", size, true) - After: BeginChild("Name", size, ImGuiChildFlags_Border) - Before: BeginChild("Name", size, false) - After: BeginChild("Name", size) or BeginChild("Name", 0) or BeginChild("Name", size, ImGuiChildFlags_None) - Existing code will still work as 'ImGuiChildFlags_Border == true', but you are encouraged to update call sites. - **AMEND FROM THE FUTURE: from 1.91.1, 'ImGuiChildFlags_Border' is called 'ImGuiChildFlags_Borders'** - - BeginChild(): Added child-flag ImGuiChildFlags_AlwaysUseWindowPadding as a replacement for - the window-flag ImGuiWindowFlags_AlwaysUseWindowPadding: the feature only ever made sense - for use with BeginChild() anyhow, passing it to Begin() had no effect. Now that we accept - child-flags we are moving it there. (#462) - Before: BeginChild("Name", size, 0, ImGuiWindowFlags_AlwaysUseWindowPadding); - After: BeginChild("Name", size, ImGuiChildFlags_AlwaysUseWindowPadding, 0); - Kept inline redirection enum (will obsolete later) so existing code will work. - - BeginChildFrame()/EndChildFrame(): removed functions in favor of using BeginChild() with - the ImGuiChildFlags_FrameStyle flag. Kept inline redirection function (will obsolete). - Those functions were merely PushStyle/PopStyle helpers and custom versions are easy to create. - (The removal isn't so much motivated by needing to add the feature in BeginChild(), but by the - necessity to avoid BeginChildFrame() signature mismatching BeginChild() signature and features.) - - Debug Tools: Renamed ShowStackToolWindow() ("Stack Tool") to ShowIDStackToolWindow() ("ID Stack Tool"), - as earlier name was misleading. Kept inline redirection function. (#4631) - - IO: Removed io.MetricsActiveAllocations introduced in 1.63, was displayed in Metrics and unlikely to - be accessed by end-user. Value still visible in the UI and easily to recompute from a delta. - - Defining IMGUI_DISABLE_OBSOLETE_FUNCTIONS now automatically defines IMGUI_DISABLE_OBSOLETE_KEYIO. (#4921) - - Removed IM_OFFSETOF() macro in favor of using offsetof() available in C++11. Kept redirection define. (#4537) - - ListBox, Combo: Changed signature of "name getter" callback in old one-liner ListBox()/Combo() apis. - Before: - getter type: bool (*getter)(void* user_data, int idx, const char** out_text) - function: bool Combo(const char* label, int* current_item, bool (*getter)(void* user_data, int idx, const char** out_text), ...); - function: bool ListBox(const char* label, int* current_item, bool (*getting)(void* user_data, int idx, const char** out_text), ...); - After: - getter type: const char* (*getter)(void* user_data, int idx) - function: bool Combo(const char* label, int* current_item, const char* (*getter)(void* user_data, int idx), ...); - function: bool ListBox(const char* label, int* current_item, const char* (*getter)(void* user_data, int idx), ...); - Old type was unnecessarily complex and harder to wrap in e.g. a lambda. Kept inline redirection function (will obsolete). - - Commented out obsolete redirecting enums/functions that were marked obsolete two years ago: - - GetWindowContentRegionWidth() -> use GetWindowContentRegionMax().x - GetWindowContentRegionMin().x. - Consider that generally 'GetContentRegionAvail().x' is often more correct and more useful. - - ImDrawCornerFlags_XXX -> use ImDrawFlags_RoundCornersXXX names. - Read 1.82 changelog for details + grep commented names in sources. - - Commented out runtime support for hardcoded ~0 or 0x01..0x0F rounding flags values for - AddRect()/AddRectFilled()/PathRect()/AddImageRounded(). -> Use ImDrawFlags_RoundCornersXXX flags. - Read 1.82 changelog for details. - - Backends: Vulkan: Removed parameter from ImGui_ImplVulkan_CreateFontsTexture(): backend now creates its own - command-buffer to upload fonts. Removed ImGui_ImplVulkan_DestroyFontUploadObjects() which is now unnecessary. - No need to call ImGui_ImplVulkan_CreateFontsTexture() as it is done automatically in ImGui_ImplVulkan_NewFrame(). - You can call ImGui_ImplVulkan_CreateFontsTexture() manually if you need to reload the font atlas texture. - (#6943, #6715, #6327, #3743, #4618) - -Other changes: - -- Windows: - - BeginChild(): Added ImGuiChildFlags_ResizeX and ImGuiChildFlags_ResizeY to allow resizing - child windows from the bottom/right border (toward layout direction). Resized child windows - settings are saved and persistent in .ini file. (#1710) - - BeginChild(): Added ImGuiChildFlags_Border as a replacement for 'bool border = true' parameter. - **AMEND FROM THE FUTURE: from 1.91.1, 'ImGuiChildFlags_Border' is called 'ImGuiChildFlags_Borders'** - - BeginChild(): Added ImGuiChildFlags_AutoResizeX and ImGuiChildFlags_AutoResizeY to auto-resize - on one axis, while generally providing a size on the other axis. (#1666, #1395, #1496, #1710) - e.g. BeginChild("name", {-FLT_MIN, 0.0f}, ImGuiChildFlags_AutoResizeY); - - Size is only reevaluated if the child window is within visible boundaries or just appearing. - This allows coarse clipping to be performed and auto-resizing childs to return false when - hidden because of being scrolled out. - - Combining this with also specifying ImGuiChildFlags_AlwaysAutoResize disables - this optimization, meaning child contents will never be clipped (not recommended). - - Please be considerate that child are full windows and carry significant overhead: - combining auto-resizing for both axes to create a non-scrolling child to merely draw - a border would be better more optimally using BeginGroup(). (see #1496) - (until we come up with new helpers for framed groups and work-rect adjustments). - - BeginChild(): made it possible to use SetNextWindowSizeConstraints() rectangle, often - useful when ImGuiChildFlags_AutoResizeX or ImGuiChildFlags_AutoResizeY. (#1666, #1395, #1496) - Custom constraint callback are not supported with child window. - - BeginChild(): Added ImGuiChildFlags_FrameStyle as a replacement for BeginChildFrame(), - use it to make child window use FrameBg, FrameRounding, FrameBorderSize, FramePadding - instead of ChildBg, ChildRounding, ChildBorderSize, WindowPadding. - - Popups: clarified meaning of 'p_open != NULL' in BeginPopupModal() + set back user value - to false when popup is closed in ways other than clicking the close button. (#6900) - - Double-clicking lower-left resize grip auto-resize (like lower-right one). - - Double-clicking bottom or right window border auto-resize on a singles axis. - - Use relative mouse movement for border resize when the border geometry has moved - (e.g. resizing a child window triggering parent scroll) in order to avoid resizing - feedback loops. Unless manually mouse-wheeling while border resizing. (#1710) -- Separators: - - Altered end-points to use more standard boundaries. (#205, #4787, #1643) - Left position is always current cursor X position, right position is always work-rect - rightmost edge. It effectively means that: - - A separator in the root of a window will end up a little more distant from edges - than previously (essentially following WindowPadding instead of clipping edges). - - A separator inside a table cell end up a little distance from edges instead of - touching them (essentially following CellPadding instead of clipping edges). - - Matches tree indentation (was not the case before). - - Matches SeparatorText(). (#1643) - - Makes things correct inside groups without specific/hard-coded handling. (#205) - - Support legacy behavior when used inside old Columns(), as we favored that idiom back then, - only different is left position follows indentation level, to match calling a Separator() - inside or outside Columns(). -- Tooltips: - - Made using SetItemTooltip()/IsItemHovered(ImGuiHoveredFlags_ForTooltip) defaults to - activate tooltips on disabled items. This is done by adding ImGuiHoveredFlags_AllowWhenDisabled - to the default value of style.HoverFlagsForTooltipMouse/HoverFlagsForTooltipNav. (#1485) - - Made is possible to combine ImGuiHoveredFlags_ForTooltip with a ImGuiHoveredFlags_DelayXXX - override. (#1485) -- Drag and Drop: - - Reworked drop target highlight: reduce rectangle to its visible portion, and then expand - slightly. A full rectangle is always visible and it may protrude slightly. (#4281, #3272) - - Fixed submitting a tooltip from drop target location when using AcceptDragDropPayload() - with ImGuiDragDropFlags_AcceptNoPreviewTooltip and submitting a tooltip manually. -- Tables: - - Added angled headers support. You need to set ImGuiTableColumnFlags_AngledHeader on selected - columns and call TableAngledHeadersRow(). Added style.TableAngledHeadersAngle style option. (#6917) - - Added ImGuiTableFlags_HighlightHoveredColumn flag, currently highlighting column header. - - Fixed an edge-case when no columns are visible + table scrollbar is visible + user - code is always testing return value of TableSetColumnIndex() to coarse clip. With an active - clipper it would have asserted. Without a clipper, the scrollbar range would be wrong. - - Request user to submit contents when outer host-window is requesting auto-resize, - so a scrolling table can contribute to initial window size. (#6510) - - Fixed subtle drawing overlap between borders in some situations. - - Fixed bottom-most and right-most outer border offset by one. (#6765, #3752) [@v-ein] - - Fixed top-most and left-most outer border overlapping inner clip-rect when scrolling. (#6765) - - Fixed top-most outer border being drawn with both TableBorderLight and TableBorderStrong - in some situations, causing the earlier to be visible underneath when alpha is not 1.0f. - - Fixed right-clicking right-most section (past right-most column) from highlighting a column. - - Fixed an issue with ScrollX enabled where an extraneous draw command would be created. -- Menus: - - Menus: Fixed a bug where activating an item in a child-menu and dragging mouse over the - parent-menu would erroneously close the child-menu. (Regression from 1.88). (#6869) - - MenuBar: Fixed an issue where layouting an item in the menu-bar would erroneously - register contents size in a way that would affect the scrolling layer. - Was most often noticeable when using a horizontal scrollbar. (#6789) -- InputText: - - InputTextMultiline: Fixed a crash pressing Down on last empty line of a multi-line buffer. - (regression from 1.89.2, only happened in some states). (#6783, #6000) - - InputTextMultiline: Fixed Tabbing cycle leading to a situation where Enter key wouldn't - be accepted by the widget when navigation highlight is visible. (#6802, #3092, #5759, #787) -- Nav: Tabbing always enable nav highlight when ImGuiConfigFlags_NavEnableKeyboard is set. - Previously was inconsistent and only enabled when stepping through a non-input item. - (#6802, #3092, #5759, #787) -- TreeNode: Added ImGuiTreeNodeFlags_SpanAllColumns for use in tables. (#3151, #3565, #2451, #2438) -- TabBar: Fixed position of unsaved document marker (ImGuiTabItemFlags_UnsavedDocument) which was - accidentally offset in 1.89.9. (#6862) [@alektron] -- ColorPicker4(): Fixed ImGuiColorEditFlags_NoTooltip not being forwarded to individual DragFloat3 - sub-widgets which have a visible color preview when ImGuiColorEditFlags_NoSidePreview is also set. (#6957) -- BeginGroup(): Fixed a bug pushing line lower extent too far down when called after a call - to SameLine() followed by manual cursor manipulation. -- BeginCombo(): Added ImGuiComboFlags_WidthFitPreview flag. (#6881) [@mpv-enjoyer] -- BeginListBox(): Fixed not consuming SetNextWindowXXX() data when returning false. -- Fonts: - - Argument 'float size_pixels' passed to AddFontXXX() functions is now rounded to lowest integer. - This is because our layout/font system currently doesn't fully support non-integer sizes. Until - it does, this has been a common pitfall leading to more or less subtle issues. (#3164, #3309, #6800) - - Better assert during load when passing truncated font data or wrong data size. (#6822) - - Ensure calling AddFontXXX function doesn't invalidates ImFont's ConfigData pointers - prior to building again. (#6825) - - Added ImFontConfig::RasterizerDensity field to increase texture size of rendered glyphs - without altering other metrics. Among other things, this makes it easier to have zooming code - swapping between 2 fonts (e.g. a 100% and a 400% fonts) depending on current scale. (#6925) [@thedmd] - Important: if you increase this it is expected that you would render the font with a scale of - similar value or magnitude. Merely increasing this without increasing scale may lower quality. - - imgui_freetype: Added support for RasterizerDensity. (#6925) [@thedmd] - - imgui_freetype: Fixed a warning and leak in IMGUI_ENABLE_FREETYPE_LUNASVG support. (#6842, #6591) -- Inputs: Added IsKeyChordPressed() helper function e.g. IsKeyChordPressed(ImGuiMod_Ctrl | ImGuiKey_S). - (note that ImGuiMod_Shortcut may be used as an alias for Cmd on OSX and Ctrl on other systems). -- Misc: Most text functions also treat "%.*s" (along with "%s") specially to bypass formatting. (#3466, #6846) -- IO: Add extra keys to ImGuiKey enum: ImGuiKey_F13 to ImGuiKey_F24. (#6891, #4921) -- IO: Add extra keys to ImGuiKey enum: ImGuiKey_AppBack, ImGuiKey_AppForward. (#4921) -- IO: Setting io.WantSetMousePos ignores incoming MousePos events. (#6837, #228) [@bertaye] -- Debug Tools: Metrics: Added log of recent alloc/free calls. -- Debug Tools: Metrics: Added "Show groups rectangles" in tools. -- ImDrawList: Added AddEllipse(), AddEllipseFilled(), PathEllipticalArcTo(). (#2743) [@Doohl] -- ImVector: Added find_index() helper. -- Demo: Added "Drag and Drop -> Tooltip at target location" demo. -- Demo: Added "Layout -> Child Windows -> Manual-resize" demo. (#1710) -- Demo: Added "Layout -> Child Windows -> Auto-resize with constraints" demo. (#1666, #1395, #1496, #1710) -- Demo: Partly fixed "Examples -> Constrained-resizing window" custom constrains demo. (#6210) [@cfillion] -- Backends: Vulkan: Removed parameter from ImGui_ImplVulkan_CreateFontsTexture(): backend now creates its own - command-buffer to upload fonts. Removed ImGui_ImplVulkan_DestroyFontUploadObjects() which is now unnecessary. - No need to call ImGui_ImplVulkan_CreateFontsTexture() as it is done automatically in ImGui_ImplVulkan_NewFrame(). - You can call ImGui_ImplVulkan_CreateFontsTexture() manually if you need to reload font atlas texture. - Fixed leaks, and added ImGui_ImplVulkan_DestroyFontsTexture() (probably no need to call this directly). - (#6943, #6715, #6327, #3743, #4618) - [@helynranta, @thomasherzog, @guybrush77, @albin-johansson, @MiroKaku, @benbatya-fb, @ocornut] -- Backends: GLFW: Clear emscripten's MouseWheel callback before shutdown. (#6790, #6096, #4019) [@halx99] -- Backends: GLFW: Added support for F13 to F24 function keys. (#6891) -- Backends: SDL2, SDL3: Added support for F13 to F24 function keys, AppBack, AppForward. (#6891) -- Backends: SDL3: Updates for recent API changes. (#7000, #6974) -- Backends: Win32: Added support for F13 to F24 function keys, AppBack, AppForward. (#6891) -- Backends: Win32: Added support for keyboard codepage conversion for when application - is compiled in MBCS mode and using a non-Unicode window. (#6785, #6782, #5725, #5961) [@sneakyevil] -- Backends: Win32: Synthesize key-down event on key-up for VK_SNAPSHOT / ImGuiKey_PrintScreen as Windows - doesn't emit it (same behavior as GLFW/SDL). (#6859) [@thedmd, @SuperWangKai] -- Backends: OpenGL3: rename symbols in our internal loader so that LTO compilation with another - copy of gl3w becomes possible. (#6875, #6668, #4445) [@nicolasnoble] -- Backends: OpenGL3: Update GL3W based imgui_impl_opengl3_loader.h to load "libGL.so" instead - of "libGL.so.1", accommodating for NetBSD systems having only "libGL.so.3" available. (#6983) -- Backends: OSX: Added support for F13 to F20 function keys. Support mapping F13 to PrintScreen. (#6891) -- Examples: GLFW+Vulkan, SDL+Vulkan: Simplified and removed code due to backend improvements. -- Internals: Renamed ImFloor() to ImTrunc(). Renamed ImFloorSigned() to ImFloor(). (#6861) - - ------------------------------------------------------------------------ - VERSION 1.89.9 (Released 2023-09-04) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.89.9 - -Breaking changes: - -- Clipper: Renamed IncludeRangeByIndices(), also called ForceDisplayRangeByIndices() - before 1.89.6, to IncludeItemsByIndex(). Kept inline redirection function. (#6424, #3841) - -Other changes: - -- Tables: Made it possible to use SameLine(0,0) after TableNextColumn() or - TableSetColumnIndex() in order to reuse line pos/height from previous cell. (#3740) -- Tables: Made it possible to change style.CellPadding.y between rows. (#3740) -- Nav, TreeNode: Pressing Left with ImGuiTreeNodeFlags_NavLeftJumpsBackHere now goes - through proper navigation logic: honor scrolling and selection. (#1079, #1131) -- Sliders: Fixed an integer overflow and div-by-zero in SliderInt() when - v_max=INT_MAX (#6675, #6679) [@jbarthelmes] -- Windows: Layout of Close/Collapse buttons uses style.ItemInnerSpacing.x between items, - stopped incorrectly using FramePadding in a way where hit-boxes could overlap when - setting large values. (#6749) -- TabBar, Style: added style.TabBarBorderSize and associated ImGuiStyleVar_TabBarBorderSize. - Tweaked rendering of that separator to allow thicker values. (#6820, #4859, #5022, #5239) -- InputFloat, SliderFloat, DragFloat: always turn both '.' and ',' into the current decimal - point character when using Decimal/Scientific character filter. (#6719, #2278) [@adamsepp] -- ColorEdit, ColorPicker: Manipulating options popup don't mark item as edited. (#6722) - (Note that they may still be marked as Active/Hovered.) -- Clipper: Added IncludeItemByIndex() helper to include a single item. (#6424, #3841) -- Clipper: Fixed a bug if attempt to force-include a range which matches an already - included range, clipper would end earlier. (#3841) -- ImDrawData: Fixed an issue where TotalVtxCount/TotalIdxCount does not match the sum - of individual ImDrawList's buffer sizes when a dimming/modal background is rendered. (#6716) -- ImDrawList: Automatically calling ChannelsMerge() if not done after a split. -- ImDrawList: Fixed OOB access in _CalcCircleAutoSegmentCount when passing excessively - large radius to AddCircle(). (#6657, #5317) [@EggsyCRO, @jdpatdiscord] -- IO: Exposed io.PlatformLocaleDecimalPoint to configure decimal point ('.' or ',') for - languages needing it. Should ideally be set to the value of '*localeconv()->decimal_point' - but our backends don't do it yet. (#6719, #2278) -- IO: Fixed io.AddMousePosEvent() and io.AddMouseButtonEvent() writing MouseSource to - wrong union section. Was semantically incorrect and accidentally had no side-effects - with default compiler alignment settings. (#6727) [@RickHuang2001] -- Misc: Made multiple calls to Render() during the same frame early out faster. -- Debug Tools: Metrics: Fixed "Drawlists" section and per-viewport equivalent - appearing empty (regression in 1.89.8). -- Demo: Reorganized "Examples" menu. -- Demo: Tables: Demonstrate using SameLine() between cells. (#3740) -- Demo: Tables: Demonstrate altering CellPadding.y between rows. (#3740) -- Demo: Custom Rendering: Demonstrate out-of-order rendering using ImDrawListSplitter. -- Backends: SDL2,SDL3: added ImGui_ImplSDL2_InitForOther()/ImGui_ImplSDL3_InitForOther() - for consistency (matching GLFW backend) and as most initialization paths don't actually - need to care about rendering backend. -- Examples: Emscripten+WebGPU: Fixed WGPUInstance creation process + use preferred - framebuffer format. (#6640, #6748) [@smileorigin] - - ------------------------------------------------------------------------ - VERSION 1.89.8 (Released 2023-08-01) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.89.8 - -Breaking changes: - -- IO: Obsoleted io.ClearInputCharacters() (added in 1.47) as it now ambiguous - and often incorrect/misleading considering the existence of a higher-level - input queue. This is automatically cleared by io.ClearInputKeys(). (#4921) -- ImDrawData: CmdLists[] array is now owned, changed from 'ImDrawList**' to - 'ImVector'. Majority of users shouldn't be affected, but you - cannot compare to NULL nor reassign manually anymore. - Instead use AddDrawList(). Allocation count are identical. (#6406, #4879, #1878) - -Other changes: - -- Fonts: ImFontConfig::OversampleH now defaults to 2 instead of 3, since the - quality increase is largely minimal. -- Fonts, imgui_freetype: Added support to render OpenType SVG fonts using lunasvg. - Requires enabling IMGUI_ENABLE_FREETYPE_LUNASVG along with IMGUI_ENABLE_FREETYPE, - and providing headers/libraries for lunasvg. (#6591, #6607) [@sakiodre] -- ImDrawData: CmdLists[] array is now an ImVector<> owned by ImDrawData rather - than a pointer to internal state. - - This makes it easier for user to create their own or append to an existing draw data. - Added a ImDrawData::AddDrawList() helper function to do that. (#6406, #4879, #1878) - - This makes it easier to perform a deep-swap instead of a deep-copy, as array - ownership is now clear. (#6597, #6475, #6167, #5776, #5109, #4763, #3515, #1860) - - Syntax and allocation count are otherwise identical. -- Fixed CTRL+Tab dimming background assert when target window has a callback - in the last ImDrawCmd. (#4857, #5937) -- IsItemHovered: Fixed ImGuiHoveredFlags_ForTooltip for Keyboard/Gamepad navigation, - got broken prior to 1.89.7 due to an unrelated change making flags conflict. (#6622, #1485) -- InputText: Fixed a case where deactivation frame would write to underlying - buffer or call CallbackResize although unnecessary, in a frame where the - return value was false. -- Tables: fixed GetContentRegionAvail().y report not taking account of lower cell - padding or of using ImGuiTableFlags_NoHostExtendY. Not taking it into account - would make the idiom of creating vertically bottom-aligned content (e.g. a child - window) inside a table make the parent window erroneously have a scrollbar. (#6619) -- Tables: fixed calculation of multi-instance shared decoration/scrollbar width of - scrolling tables, to avoid flickering width variation when resizing down a table - hosting a child window. (#5920, #6619) -- Scrollbar: layout needs to take account of window border size, so a border size - will slightly reduce scrollbar size. Generally we tried to make it that window - border size has no incidence on layout but this can't work with thick borders. (#2522) -- IO: Added io.ClearEventsQueue() to clear incoming inputs events. (#4921) - May be useful in conjunction with io.ClearInputKeys() if you need to clear - both current inputs state and queued events (e.g. when using blocking native - dialogs such as Windows's ::MessageBox() or ::GetOpenFileName()). -- IO: Changed io.ClearInputKeys() specs to also clear current frame character buffer - (what now obsoleted io.ClearInputCharacters() did), as this is effectively the - desirable behavior. -- Misc: Added IMGUI_DISABLE_STB_SPRINTF_IMPLEMENTATION config macro to disable - stb_sprintf implementation when using IMGUI_USE_STB_SPRINTF. (#6626) [@septag] -- Misc: Avoid stb_textedit.h reincluding string.h while in a namespace, which - messes up with building with Clang Modules. (#6653, #4791) [@JohelEGP] -- Demo: Better showcase use of SetNextItemAllowOverlap(). (#6574, #6512, #3909, #517) -- Demo: Showcase a few more InputText() flags. -- Backends: Made all backends sources files support global IMGUI_DISABLE. (#6601) -- Backends: GLFW: Revert ignoring mouse data on GLFW_CURSOR_DISABLED as it can be used - differently. User may set ImGuiConfigFlags_NoMouse if desired. (#5625, #6609) [@scorpion-26] -- Backends: WebGPU: Update for changes in Dawn. (#6602, #6188) [@williamhCode] -- Examples: Vulkan: Creating minimal descriptor pools to fit only what is needed by - example. (#6642) [@SaschaWillem] - - ------------------------------------------------------------------------ - VERSION 1.89.7 (Released 2023-07-04) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.89.7 - -Breaking changes: - -- Moved io.HoverDelayShort/io.HoverDelayNormal to style.HoverDelayShort/style.HoverDelayNormal. - As the fields were added in 1.89 and expected to be left unchanged by most users, or only - tweaked once during app initialization, we are exceptionally accepting the breakage. - Majority of users should not even notice. -- Overlapping items: (#6512, #3909, #517) - - Added 'SetNextItemAllowOverlap()' (called before an item) as a replacement for using - 'SetItemAllowOverlap()' (called after an item). This is roughly equivalent to using the - legacy 'SetItemAllowOverlap()' call (public API) + ImGuiButtonFlags_AllowOverlap (internal). - - Obsoleted 'SetItemAllowOverlap()': it didn't and couldn't work reliably since 1.89 (2022-11-15), - and relied on ambiguously defined design. Use 'SetNextItemAllowOverlap()' before item instead. - - Selectable, TreeNode: When using ImGuiSelectableFlags_AllowOverlap/ImGuiTreeNodeFlags_AllowOverlap - and holding item held, overlapping widgets won't appear as hovered. (#6512, #3909) - While this fixes a common small visual issue, it also means that calling IsItemHovered() - after a non-reactive elements - e.g. Text() - overlapping an active one may fail if you don't - use IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem). (#6610) - - Renamed 'ImGuiTreeNodeFlags_AllowItemOverlap' to 'ImGuiTreeNodeFlags_AllowOverlap'. - - Renamed 'ImGuiSelectableFlags_AllowItemOverlap' to 'ImGuiSelectableFlags_AllowOverlap' - - Kept redirecting enums (will obsolete). - -Other changes: - -- Tooltips/IsItemHovered() related changes: - - Tooltips: Added SetItemTooltip() and BeginItemTooltip() functions. - They are shortcuts for the common idiom of using IsItemHovered(). - - SetItemTooltip("Hello") == if (IsItemHovered(ImGuiHoveredFlags_Tooltip)) { SetTooltip("Hello"); } - - BeginItemTooltip() == IsItemHovered(ImGuiHoveredFlags_Tooltip) && BeginTooltip() - The newly added ImGuiHoveredFlags_Tooltip is meant to facilitate standardizing - mouse hovering delays and rules for a given application. - The previously common idiom of using 'if (IsItemHovered()) { SetTooltip(...); }' - won't use delay or stationary test. - - IsItemHovered: Added ImGuiHoveredFlags_Stationary to require mouse being - stationary when hovering a new item. Added style.HoverStationaryDelay (~0.15 sec). - Once the mouse has been stationary once the state is preserved for same item. (#1485) - - IsItemHovered: Added ImGuiHoveredFlags_ForTooltip as a shortcut for pulling flags - from style.HoverFlagsForTooltipMouse or style.HoverFlagsForTooltipNav depending - on active inputs (#1485) - - style.HoverFlagsForTooltipMouse defaults to 'ImGuiHoveredFlags_Stationary | ImGuiHoveredFlags_DelayShort' - - style.HoverFlagsForTooltipNav defaults to 'ImGuiHoveredFlags_NoSharedDelay | ImGuiHoveredFlags_DelayNormal'. - - Tooltips: Tweak default offset for non-drag and drop tooltips so underlying items - isn't covered as much. (Match offset for drag and drop tooltips) - - IsItemHovered: Tweaked default value of style.HoverDelayNormal from 0.30 to 0.40, - Tweaked default value of style.HoverDelayShort from 0.10 to 0.15. (#1485) - - IsItemHovered: Added ImGuiHoveredFlags_AllowWhenOverlappedByWindow to ignore window-overlap only. - Option ImGuiHoveredFlags_AllowWhenOverlapped now expand into a combination of both - _AllowWhenOverlappedByWindow + _AllowWhenOverlappedByItem, matching old behavior. -- Overlapping items: (#6512, #3909, #517) - - Most item types should now work with SetNextItemAllowOverlap(). (#6512, #3909, #517) - - Fixed first frame of an overlap highlighting underlying item if previous frame didn't hover anything. - - IsItemHovered: Changed to return false when querying an item using AllowOverlap mode which - is being overlapped. Added ImGuiHoveredFlags_AllowWhenOverlappedByItem to opt-out. (#6512, #3909, #517) -- IsWindowHovered: Added support for ImGuiHoveredFlags_Stationary. -- IsWindowHovered, IsItemHovered: Assert when passed any unsupported flags. -- Tables: Fixed a regression in 1.89.6 leading to the first column of tables with either - ScrollX or ScrollY flags from being impossible to resize. (#6503) -- CollapsingHeader/TreeNode: Fixed text padding when using _Framed+_Leaf flags. (#6549) [@BobbyAnguelov] -- InputText: Fixed not returning true when buffer is cleared while using the - ImGuiInputTextFlags_EscapeClearsAll flag. (#5688, #2620) -- InputText: Fixed a crash on deactivating a ReadOnly buffer. (#6570, #6292, #4714) -- InputText: ImGuiInputTextCallbackData::InsertChars() accept (NULL,NULL) range, in order to conform - to common idioms (e.g. passing .data(), .data() + .size() from a null string). (#6565, #6566, #3615) -- Combo: Made simple/legacy Combo() function not returns true when picking already selected item. - This is consistent with other widgets. If you need something else, you can use BeginCombo(). (#1182) -- Clipper: Rework inner logic to allow functioning with a zero-clear constructor. - This is order to facilitate usage for language bindings (e.g cimgui or dear_binding) - where user may not be calling a constructor manually. (#5856) -- Drag and Drop: Apply default behavior of drag source not reporting itself as hovered - at lower-level, so DragXXX, SliderXXX, InputXXX, Plot widgets are fulfilling it. - (Behavior doesn't apply when ImGuiDragDropFlags_SourceNoDisableHover is set). -- Modals: In the case of nested modal, made sure that focused or appearing windows are - moved below the lowest blocking modal (rather than the highest one). (#4317) -- GetKeyName(): Fixed assert with ImGuiMod_XXX values when IMGUI_DISABLE_OBSOLETE_KEYIO is set. -- Debug Tools: Added 'io.ConfigDebugIniSettings' option to save .ini data with extra - comments. Currently mainly for inspecting Docking .ini data, but makes saving slower. -- Demo: Added more developed "Widgets->Tooltips" section. (#1485) -- Backends: OpenGL3: Fixed support for glBindSampler() backup/restore on ES3. (#6375, #6508) [@jsm174] -- Backends: OpenGL3: Fixed erroneous use glGetIntegerv(GL_CONTEXT_PROFILE_MASK) on contexts - lower than 3.2. (#6539, #6333) [@krumelmonster] -- Backends: Vulkan: Added optional support for VK_KHR_dynamic_rendering (Vulkan 1.3+) in the - backend for applications using it. User needs to set 'init_info->UseDynamicRendering = true' - and 'init_info->ColorAttachmentFormat'. RenderPass becomes unused. (#5446, #5037) [@spnda, @cmarcelo] -- Backends: GLFW: Accept glfwGetTime() not returning a monotonically increasing value. - This seems to happens on some Windows setup when peripherals disconnect, and is likely - to also happen on browser+Emscripten. Matches similar 1.89.4 fix in SDL backend. (#6491) -- Examples: Win32+OpenGL3: Changed DefWindowProc() to DefWindowProcW() to match other examples - and support the example app being compiled without UNICODE. (#6516, #5725, #5961, #5975) [@yenixing] - - ------------------------------------------------------------------------ - VERSION 1.89.6 (Released 2023-05-31) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.89.6 - -Breaking changes: - -- Clipper: Commented out obsolete redirection constructor which was marked obsolete in 1.79: - 'ImGuiListClipper(int items_count, float items_height)' --> Use 'ImGuiListClipper() + clipper.Begin()'. -- Clipper: Renamed ForceDisplayRangeByIndices() to IncludeRangeByIndices(), kept - inline redirection function (introduced in 1.86 and rarely used). (#6424, #3841) -- Commented out obsolete/redirecting functions that were marked obsolete more than two years ago: - - ListBoxHeader() -> use BeginListBox() - - ListBoxFooter() -> use EndListBox() - - Note how two variants of ListBoxHeader() existed. Check commented versions in imgui.h for reference. -- Backends: SDL_Renderer: Renamed 'imgui_impl_sdlrenderer.h/cpp' to 'imgui_impl_sdlrenderer2.h/cpp', - in order to accommodate for upcoming SDL3 and change in its SDL_Renderer API. (#6286) -- Backends: GLUT: Removed call to ImGui::NewFrame() from ImGui_ImplGLUT_NewFrame(). - It needs to be called from the main app loop, like with every other backends. (#6337) [@GereonV] - -Other changes: - -- Window: Fixed resizing from upper border when io.ConfigWindowsMoveFromTitleBarOnly is set. (#6390) -- Tables: Fixed a small miscalculation in TableHeader() leading to an empty tooltip - showing when a sorting column has no visible name. (#6342) [@lukaasm] -- Tables: Fixed command merging when compiling with VS2013 (one array on stack was not - initialized on VS2013. Unsure if due to a bug or UB/standard conformance). (#6377) -- InputText: Avoid setting io.WantTextInputNextFrame during the deactivation frame. - (#6341) [@lukaasm] -- Drag, Sliders: if the format string doesn't contain any %, CTRL+Click to input text will - use the default format specifier for the type. Allow display/input of raw value when using - "enums" patterns (display label instead of value) + allow using when value is hidden. (#6405) -- Nav: Record/restore preferred position on each given axis after a movement on that axis, - then score movement on the other axis using this as a bias. This allows going up and down - between e.g. a large header spanning horizontal space and three-ways-columns, landing - on the same column as before. -- Nav: Fixed navigation within tables/columns where item boundaries goes beyond columns limits, - unclipped bounding boxes would interfere with other columns. (#2221) [@zzzyap, @ocornut] -- Nav: Fixed CTRL+Tab into a root window with only childs with _NavFlattened flags - erroneously initializing default nav layer to menu layer. -- Menus: Fixed an issue when opening a menu hierarchy in a given menu-bar would allow - opening another via simple hovering. (#3496, #4797) -- Fonts: Fixed crash when merging fonts and the first font has no valid glyph. (#6446) [@JaedanC] -- Fonts: Fixed crash when manually specifying an EllipsisChar that doesn't exist. (#6480) -- Misc: Added ImVec2 unary minus operator. (#6368) [@Koostosh] -- Debug Tools: Debug Log: Fixed not parsing 0xXXXXXXXX values for geo-locating on mouse - hover hover when the identifier is at the end of the line. (#5855) -- Debug Tools: Added 'io.ConfigDebugIgnoreFocusLoss' option to disable 'io.AddFocusEvent(false)' - handling. May facilitate interactions with a debugger when focus loss leads to clearing - inputs data. (#4388, #4921) -- Backends: Clear bits sets io.BackendFlags on backend Shutdown(). (#6334, #6335] [@GereonV] - Potentially this would facilitate switching runtime backend mid-session. -- Backends: Win32: Added ImGui_ImplWin32_InitForOpenGL() to facilitate combining raw - Win32/Winapi with OpenGL. (#3218) -- Backends: OpenGL3: Restore front and back polygon mode separately when supported - by context (Desktop 3.0, 3.1, or 3.2+ with compat bit). (#6333) [@GereonV] -- Backends: OpenGL3: Support for glBindSampler() backup/restore on ES3. (#6375) [@jsm174] -- Backends: SDL3: Fixed build on Emscripten/iOS/Android. (#6391) [@jo-codegirl] -- Backends: SDLRenderer3: Added SDL_Renderer for SDL3 backend. (#6286) [@Carcons, @ocornut] -- Examples: Added native Win32+OpenGL3 example. We don't recommend using this setup but we - provide it for completeness. (#3218, #5170, #6086, #2772, #2600, #2359, #2022, #1553) [@learn-more] -- Examples: Vulkan: Use integrated GPU if nothing else is available. (#6359) [@kimidaisuki22] -- Examples: DX9, DX10, DX11: Queue framebuffer resize instead of processing in WM_SIZE, - as some drivers tends to only cleanup after existing the native resize modal loop. (#6374) -- Examples: Added SDL3+SDL_Renderer example. (#6286) -- Examples: Updated all Visual Studio projects and batches to use /utf-8 argument. - - ------------------------------------------------------------------------ - VERSION 1.89.5 (Released 2023-04-13) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.89.5 - -Other changes: - -- InputText: Reworked prev/next-word behavior to more closely match Visual Studio - text editor. Include '.' as a delimiter and alter varying subtle behavior with how - blanks and separators are treated when skipping words. (#6067) [@ajweeks] -- InputText: Fixed a tricky edge case, ensuring value is always written back on the - frame where IsItemDeactivated() returns true, in order to allow usage without user - retaining underlying data. While we don't really want to encourage user not retaining - underlying data, in the absence of a "late commit" behavior/flag we understand it may - be desirable to take advantage of this trick. (#4714) -- Drag, Sliders: Fixed parsing of text input when '+' or '#' format flags are used - in the format string. (#6259) [@idbrii] -- Nav: Made Ctrl+Tab/Ctrl+Shift+Tab windowing register ownership to held modifier so - it doesn't interfere with other code when remapping those actions. (#4828, #3255, #5641) -- Nav: Made PageUp/PageDown/Home/End navigation also scroll parent windows when - necessary to make the target location fully visible (same as e.g. arrow keys). -- ColorEdit: Fixed shading of S/V triangle in Hue Wheel mode. (#5200, #6254) [@jamesthomasgriffin] -- TabBar: Tab-bars with ImGuiTabBarFlags_FittingPolicyScroll can be scrolled with - horizontal mouse-wheel (or Shift + WheelY). (#2702) -- Rendering: Using adaptive tessellation for RadioButton, ColorEdit preview circles, - Windows Close and Collapse Buttons. -- ButtonBehavior: Fixed an edge case where changing widget type/behavior while active - and using same id could lead to an assert. (#6304) -- Misc: Fixed ImVec2 operator[] violating aliasing rules causing issue with Intel C++ - compiler. (#6272) [@BayesBug] -- IO: Input queue trickling adjustment for touch screens. (#2702, #4921) - This fixes single-tapping to move simulated mouse and immediately click on a widget - that is using the ImGuiButtonFlags_AllowItemOverlap policy. - - This only works if the backend can distinguish TouchScreen vs Mouse. - See 'Demo->Tools->Metrics->Inputs->Mouse Source' to verify. - - Fixed tapping on BeginTabItem() on a touch-screen. (#2702) - - Fixed tapping on CollapsingHeader() with a close button on a touch-screen. - - Fixed tapping on TreeNode() using ImGuiTreeNodeFlags_AllowItemOverlap on a touch-screen. - - Fixed tapping on Selectable() using ImGuiSelectableFlags_AllowItemOverlap on a touch-screen. - - Fixed tapping on TableHeader() on a touch-screen. -- IO: Added io.AddMouseSourceEvent() and ImGuiMouseSource enum. This is to allow backend to - specify actual event source between Mouse/TouchScreen/Pen. (#2702, #2334, #2372, #3453, #5693) -- IO: Fixed support for calling io.AddXXXX functions from inactive context (wrongly - advertised as supported in 1.89.4). (#6199, #6256, #5856) [@cfillion] -- Backends: OpenGL3: Fixed GL loader crash when GL_VERSION returns NULL. (#6154, #4445, #3530) -- Backends: OpenGL3: Properly restoring "no shader program bound" if it was the case prior to - running the rendering function. (#6267, #6220, #6224) [@BrunoLevy] -- Backends: Win32: Added support for io.AddMouseSourceEvent() to discriminate Mouse/TouchScreen/Pen. (#2334, #2702) -- Backends: SDL2/SDL3: Added support for io.AddMouseSourceEvent() to discriminate Mouse/TouchScreen. - This is relying on SDL passing SDL_TOUCH_MOUSEID in the event's 'which' field. (#2334, #2702) -- Backends: SDL2/SDL3: Avoid calling SDL_StartTextInput()/SDL_StopTextInput() as they actually - block text input input and don't only pertain to IME. It's unclear exactly what their relation - is to other IME function such as SDL_SetTextInputRect(). (#6306, #6071, #1953) -- Backends: GLFW: Added support on Win32 only for io.AddMouseSourceEvent() to discriminate - Mouse/TouchScreen/Pen. (#2334, #2702) -- Backends: GLFW: Fixed key modifiers handling on secondary viewports. (#6248, #6034) [@aiekick] -- Backends: Android: Added support for io.AddMouseSourceEvent() to discriminate Mouse/TouchScreen/Pen. - (#6315) [@PathogenDavid] -- Backends: OSX: Added support for io.AddMouseSourceEvent() to discriminate Mouse/Pen. - (#6314) [@PathogenDavid] -- Backends: WebGPU: Align buffers. Use WGSL shaders instead of SPIR-V. Add gamma uniform. (#6188) [@eliemichel] -- Backends: WebGPU: Reorganized to store data in io.BackendRendererUserData like other backends. -- Examples: Vulkan: Fixed validation errors with newer VulkanSDK by explicitly querying and enabling - "VK_KHR_get_physical_device_properties2", "VK_KHR_portability_enumeration", and - VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR. (#6109, #6172, #6101) -- Examples: Windows: Added 'misc/debuggers/imgui.natstepfilter' file to all Visual Studio projects, - now that VS 2022 17.6 Preview 2 support adding Debug Step Filter spec files into projects. -- Examples: SDL3: Updated for latest WIP SDL3 branch. (#6243) -- TestSuite: Added variety of new regression tests and improved/amended existing ones - in imgui_test_engine/ repo. [@PathogenDavid, @ocornut] - - ------------------------------------------------------------------------ - VERSION 1.89.4 (Released 2023-03-14) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.89.4 - -Breaking Changes: - -- Renamed PushAllowKeyboardFocus()/PopAllowKeyboardFocus() to PushTabStop()/PopTabStop(). - Kept inline redirection functions (will obsolete). -- Moved the optional "courtesy maths operators" implementation from imgui_internal.h in imgui.h. - Even though we encourage using your own maths types and operators by setting up IM_VEC2_CLASS_EXTRA, - it has been frequently requested by people to use our own. We had an opt-in define which was - previously fulfilled by imgui_internal.h. It is now fulfilled by imgui.h. (#6164, #6137, #5966, #2832) - OK: #define IMGUI_DEFINE_MATH_OPERATORS / #include "imgui.h" / #include "imgui_internal.h" - Error: #include "imgui.h" / #define IMGUI_DEFINE_MATH_OPERATORS / #include "imgui_internal.h" - Added a dedicated compile-time check message to help diagnose this. -- Tooltips: Added 'bool' return value to BeginTooltip() for API consistency. - Please only submit contents and call EndTooltip() if BeginTooltip() returns true. - In reality the function will _currently_ always return true, but further changes down the - line may change this, best to clarify API sooner. Updated demo code accordingly. -- Commented out redirecting enums/functions names that were marked obsolete two years ago: - - ImGuiSliderFlags_ClampOnInput -> use ImGuiSliderFlags_AlwaysClamp - - ImGuiInputTextFlags_AlwaysInsertMode -> use ImGuiInputTextFlags_AlwaysOverwrite - - ImDrawList::AddBezierCurve() -> use ImDrawList::AddBezierCubic() - - ImDrawList::PathBezierCurveTo() -> use ImDrawList::PathBezierCubicCurveTo() - -Other changes: - -- Nav: Tabbing now cycles through all items when ImGuiConfigFlags_NavEnableKeyboard is set. - (#3092, #5759, #787) - While this was generally desired and requested by many, note that its addition means - that some types of UI may become more fastidious to use TAB key with, if the navigation - cursor cycles through too many items. You can mark items items as not tab-spottable: - - Public API: PushTabStop(false) / PopTabStop() - - Internal: PushItemFlag(ImGuiItemFlags_NoTabStop, true); - - Internal: Directly pass ImGuiItemFlags_NoTabStop to ItemAdd() for custom widgets. -- Nav: Tabbing/Shift+Tabbing can more reliably be used to step out of an item that is not - tab-stoppable. (#3092, #5759, #787) -- Nav: Made Enter key submit the same type of Activation event as Space key, - allowing to press buttons with Enter. (#5606) - (Enter emulates a "prefer text input" activation vs. - Space emulates a "prefer tweak" activation which is to closer to gamepad controls). -- Nav: Fixed an issue with Gamepad navigation when the movement lead to a scroll and - frame time > repeat rate. Triggering a new move request on the same frame as a move - result lead to an incorrect calculation and loss of navigation id. (#6171) -- Nav: Fixed SetItemDefaultFocus() from not scrolling when item is partially visible. - (#2814, #2812) [@DomGries] -- Tables: Fixed an issue where user's Y cursor movement within a hidden column would - have side-effects. -- IO: Lifted constraint to call io.AddEventXXX functions from current context. (#4921, #5856, #6199) -- InputText: Fixed not being able to use CTRL+Tab while an InputText() using Tab - for completion or text data is active (regression from 1.89). -- Drag and Drop: Fixed handling of overlapping targets when smaller one is submitted - before and can accept the same data type. (#6183). -- Drag and Drop: Clear drag and drop state as soon as delivery is accepted in order to - avoid interferences. (#5817, #6183) [@DimaKoltun] -- Debug Tools: Added io.ConfigDebugBeginReturnValueOnce / io.ConfigDebugBeginReturnValueLoop - options to simulate Begin/BeginChild returning false to facilitate debugging user behavior. -- Demo: Updated to test return value of BeginTooltip(). -- Backends: OpenGL3: Fixed restoration of a potentially deleted OpenGL program. If an active - program was pending deletion, attempting to restore it would error. (#6220, #6224) [@Cyphall] -- Backends: Win32: Use WM_NCMOUSEMOVE / WM_NCMOUSELEAVE to track mouse positions over - non-client area (e.g. OS decorations) when app is not focused. (#6045, #6162) -- Backends: SDL2, SDL3: Accept SDL_GetPerformanceCounter() not returning a monotonically - increasing value. (#6189, #6114, #3644) [@adamkewley] -- Backends: GLFW: Avoid using glfwGetError() and glfwGetGamepadState() on Emscripten, which - recently updated its GLFW emulation layer to GLFW 3.3 without supporting those. (#6240) -- Examples: Android: Fixed example build for Gradle 8. (#6229, #6227) [@duddel] -- Examples: Updated all examples application to enable ImGuiConfigFlags_NavEnableKeyboard - and ImGuiConfigFlags_NavEnableGamepad by default. (#787) -- Internals: Misc tweaks to facilitate applying an explicit-context patch. (#5856) [@Dragnalith] - - ------------------------------------------------------------------------ - VERSION 1.89.3 (Released 2023-02-14) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.89.3 - -Breaking Changes: - -- Backends+Examples: SDL2: renamed all unnumbered references to "sdl" to "sdl2". - This is in prevision for the future release of SDL3 and its associated backend. (#6146) - - imgui_impl_sdl.cpp -> imgui_impl_sdl2.cpp - - imgui_impl_sdl.h -> imgui_impl_sdl2.h - - example_sdl_xxxx/ -> example_sdl2_xxxx/ (folders and projects) - -Other changes: - -- SeparatorText(): Added SeparatorText() widget. (#1643) [@phed, @ocornut] - - Added to style: float SeparatorTextBorderSize. - - Added to style: ImVec2 SeparatorTextAlign, SeparatorTextPadding. -- Tables: Raised max Columns count from 64 to 512. (#6094, #5305, #4876, #3572) - The previous limit was due to using 64-bit integers but we moved to bits-array - and tweaked the system enough to ensure no performance loss. -- Tables: Solved an ID conflict issue with multiple-instances of a same table, - due to how unique table instance id was generated. (#6140) [@ocornut, @rodrigorc] -- Inputs, Scrolling: Made horizontal scroll wheel and horizontal scroll direction consistent - across backends/os. (#4019, #6096, #1463) [@PathogenDavid, @ocornut, @rokups] - - Clarified that 'wheel_y > 0.0f' scrolls Up, 'wheel_y < 0.0f' scrolls Down. - Clarified that 'wheel_x > 0.0f' scrolls Left, 'wheel_x < 0.0f' scrolls Right. - - Backends: Fixed horizontal scroll direction for Win32 and SDL backends. (#4019) - - Shift+WheelY support on non-OSX machines was already correct. (#2424, #1463) - (whereas on OSX machines Shift+WheelY turns into WheelX at the OS level). - - If you use a custom backend, you should verify horizontal wheel direction. - - Axes are flipped by OSX for mouse & touch-pad when 'Natural Scrolling' is on. - - Axes are flipped by Windows for touch-pad when 'Settings->Touchpad->Down motion scrolls up' is on. - - You can use 'Demo->Tools->Debug Log->IO" to visualize values submitted to Dear ImGui. - - Known issues remaining with Emscripten: - - The magnitude of wheeling values on Emscripten was improved but isn't perfect. (#6096) - - When running the Emscripten app on a Mac with a mouse, SHIFT+WheelY doesn't turn into WheelX. - This is because we don't know that we are running on Mac and apply our own Shift+swapping - on top of OSX's own swapping, so wheel axes are swapped twice. Emscripten apps may need - to find a way to detect this and set io.ConfigMacOSXBehaviors manually (if you know a way - let us know!), or offer the "OSX-style behavior" option to their user. -- Window: Avoid rendering shapes for hidden resize grips. -- Text: Fixed layouting of wrapped-text block skipping successive empty lines, - regression from the fix in 1.89.2. (#5720, #5919) -- Text: Fixed clipping of single-character "..." ellipsis (U+2026 or U+0085) when font - is scaled. Scaling wasn't taken into account, leading to ellipsis character straying - slightly out of its expected boundaries. (#2775) -- Text: Tweaked rendering of three-dots "..." ellipsis variant. (#2775, #4269) -- InputText: Added support for Ctrl+Delete to delete up to end-of-word. (#6067) [@ajweeks] - (Not adding Super+Delete to delete to up to end-of-line on OSX, as OSX doesn't have it) -- InputText: On OSX, inhibit usage of Alt key to toggle menu when active (used for work skip). -- Menus: Fixed layout of MenuItem()/BeginMenu() when label contains a '\n'. (#6116) [@imkcy9] -- ColorEdit, ColorPicker: Fixed hue/saturation preservation logic from interfering with - the displayed value (but not stored value) of others widgets instances. (#6155) -- PlotHistogram, PlotLines: Passing negative sizes honor alignment like other widgets. -- Combo: Allow SetNextWindowSize() to alter combo popup size. (#6130) -- Fonts: Assert that in each GlyphRanges[] pairs first is <= second. -- ImDrawList: Added missing early-out in AddPolyline() and AddConvexPolyFilled() when - color alpha is zero. -- Misc: Most text functions treat "%s" as a shortcut to no-formatting. (#3466) -- Misc: Tolerate zero delta-time under Emscripten as backends are imprecise in their - values for io.DeltaTime, and browser features such as "privacy.resistFingerprinting=true" - can exacerbate that. (#6114, #3644) -- Backends: OSX: Fixed scroll/wheel scaling for devices emitting events with - hasPreciseScrollingDeltas==false (e.g. non-Apple mice). -- Backends: Win32: flipping WM_MOUSEHWHEEL horizontal value to match other backends and - offer consistent horizontal scrolling direction. (#4019) -- Backends: SDL2: flipping SDL_MOUSEWHEEL horizontal value to match other backends and - offer consistent horizontal scrolling direction. (#4019) -- Backends: SDL2: Removed SDL_MOUSEWHEEL value clamping. (#4019, #6096, #6081) -- Backends: SDL2: Added support for SDL 2.0.18+ preciseX/preciseY mouse wheel data - for smooth scrolling as reported by SDL. (#4019, #6096) -- Backends: SDL2: Avoid calling SDL_SetCursor() when cursor has not changed, as the function - is surprisingly costly on Mac with latest SDL (already fixed in SDL latest trunk). (#6113) -- Backends: SDL2: Implement IME handler to call SDL_SetTextInputRect()/SDL_StartTextInput(). - It will only works with SDL 2.0.18+ if your code calls 'SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1")' - prior to calling SDL_CreateWindow(). Updated all examples accordingly. (#6071, #1953) -- Backends: SDL3: Added experimental imgui_impl_sdl3.cpp backend. (#6146) [@dovker, @ocornut] - SDL 3.0.0 has not yet been released, so it is possible that its specs/api will change before - release. This backend is provided as a convenience for early adopters etc. We don't recommend - switching to SDL3 before it is released. -- Backends: GLFW: Registering custom low-level mouse wheel handler to get more accurate - scrolling impulses on Emscripten. (#4019, #6096) [@ocornut, @wolfpld, @tolopolarity] -- Backends: GLFW: Added ImGui_ImplGlfw_SetCallbacksChainForAllWindows() to instruct backend - to chain callbacks even for secondary viewports/windows. User callbacks may need to test - the 'window' parameter. (#6142) -- Backends: OpenGL3: Fixed GL loader compatibility with 2.x profiles. (#6154, #4445, #3530) [@grauw] -- Backends: WebGPU: Fixed building for latest WebGPU specs (remove implicit layout generation). - (#6117, #4116, #3632) [@tonygrue, @bfierz] -- Examples: refactored SDL2+GL and GLFW+GL examples to compile with Emscripten. - (#2492, #2494, #3699, #3705) [@ocornut, @nicolasnoble] - The dedicated example_emscripten_opengl3/ has been removed. -- Examples: Added SDL3+GL experimental example. (#6146) -- Examples: Win32: Fixed examples using RegisterClassW() since 1.89 to also call - DefWindowProcW() instead of DefWindowProc() so that title text are correctly converted - when application is compiled without /DUNICODE. (#5725, #5961, #5975) [@markreidvfx] -- Examples: SDL2+SDL_Renderer: Added call to SDL_RenderSetScale() to fix display on a - Retina display (albeit lower-res as our other unmodified examples). (#6121, #6065, #5931). - - ------------------------------------------------------------------------ - VERSION 1.89.2 (Released 2023-01-05) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.89.2 - -All changes: - -- Tables, Nav, Scrolling: fixed scrolling functions and focus tracking with frozen rows and - frozen columns. Windows now have a better understanding of outer/inner decoration sizes, - which should later lead us toward more flexible uses of menu/status bars. (#5143, #3692) -- Tables, Nav: frozen columns are not part of menu layer and can be crossed over. (#5143, #3692) -- Tables, Columns: fixed cases where empty columns may lead to empty ImDrawCmd. (#4857, #5937) -- Tables: fixed matching width of synchronized tables (multiple tables with same id) when only - some instances have a vertical scrollbar and not all. (#5920) -- Fixed cases where CTRL+Tab or Modal can occasionally lead to the creation of ImDrawCmd with - zero triangles, which would makes the render loop of some backends assert (e.g. Metal with - debugging, Allegro). (#4857, #5937) -- Inputs, IO: reworked ImGuiMod_Shortcut to redirect to Ctrl/Super at runtime instead of - compile-time, being consistent with our support for io.ConfigMacOSXBehaviors and making it - easier for bindings generators to process that value. (#5923, #456) -- Inputs, Scrolling: better selection of scrolling window when hovering nested windows - and when backend/OS is emitting dual-axis wheeling inputs (typically touch pads on macOS). - We now select a primary axis based on recent events, and select a target window based on it. - We expect this behavior to be further improved/tweaked. (#3795, #4559) [@ocornut, @folays] -- InputText: fixed cursor navigation when pressing Up Arrow on the last character of a - multiline buffer which doesn't end with a carriage return. (#6000) -- Text: fixed layouting of wrapped-text block when the last source line is above the - clipping region. Regression added in 1.89. (#5720, #5919) -- Misc: added GetItemID() in public API. It is not often expected that you would use this, - but it is useful for Shortcut() and upcoming owner-aware input functions which wants to - be implemented with public API. -- Fonts: imgui_freetype: fixed a packing issue which in some occurrences would prevent large - amount of glyphs from being packed correctly. (#5788, #5829) -- Fonts: added a 'void* UserData' field in ImFontAtlas, as a convenience for use by - applications using multiple font atlases. -- Demo: simplified "Inputs" section, moved contents to Metrics->Inputs. -- Debug Tools: Metrics: added "Inputs" section, moved from Demo for consistency. -- Misc: fixed parameters to IMGUI_DEBUG_LOG() not being dead-stripped when building - with IMGUI_DISABLE_DEBUG_TOOLS is used. (#5901) [@Teselka] -- Misc: fixed compile-time detection of SSE features on MSVC 32-bits builds. (#5943) [@TheMostDiligent] -- Examples: DirectX10, DirectX11: try WARP software driver if hardware driver is not available. (#5924, #5562) -- Backends: GLFW: Fixed mods state on Linux when using Alt-GR text input (e.g. German keyboard layout), which - could lead to broken text input. Revert a 2022/01/17 change were we resumed using mods provided by GLFW, - turns out they are faulty in this specific situation. (#6034) -- Backends: Allegro5: restoring using al_draw_indexed_prim() when Allegro version is >= 5.2.5. (#5937) [@Espyo] -- Backends: Vulkan: Fixed sampler passed to ImGui_ImplVulkan_AddTexture() not being honored as we were using - an immutable sampler. (#5502, #6001, #914) [@martin-ejdestig, @rytisss] - - ------------------------------------------------------------------------ - VERSION 1.89.1 (Released 2022-11-24) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.89.1 - -Other changes: - -- Scrolling, Focus: fixed SetKeyboardFocusHere()/SetItemDefaultFocus() during a window-appearing - frame (and associated lower-level functions e.g. ScrollToRectEx()) from not centering item. (#5902) -- Inputs: fixed moving a window or drag and dropping from preventing input-owner-unaware code - from accessing keys. (#5888, #4921, #456) -- Inputs: fixed moving a window or drag and dropping from capturing mods. (#5888, #4921, #456) -- Layout: fixed End()/EndChild() incorrectly asserting if users manipulates cursor position - inside a collapsed/culled window and IMGUI_DISABLE_OBSOLETE_FUNCTIONS is enabled. (#5548, #5911) -- Combo: fixed selected item (marked with SetItemDefaultFocus()) from not being centered when - the combo window initially appears. (#5902). -- ColorEdit: fixed label overlapping when using style.ColorButtonPosition == ImGuiDir_Left to - move the color button on the left side (regression introduced in 1.88 WIP 2022/02/28). (#5912) -- Drag and Drop: fixed GetDragDropPayload() returning a non-NULL value if a drag source is - active but a payload hasn't been submitted yet. This is convenient to detect new payload - from within a drag source handler. (#5910, #143) -- Backends: GLFW: cancel out errors emitted by glfwGetKeyName() when a name is missing. (#5908) -- Backends: WebGPU: fixed validation error with default depth buffer settings. (#5869, #5914) [@kdchambers] - - ------------------------------------------------------------------------ - VERSION 1.89 (Released 2022-11-15) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.89 - -Breaking changes: - -- Layout: Obsoleted using SetCursorPos()/SetCursorScreenPos() to extend parent window/cell boundaries. (#5548) - This relates to when moving the cursor position beyond current boundaries WITHOUT submitting an item. - - Previously this would make the window content size ~200x200: - Begin(...) + SetCursorScreenPos(GetCursorScreenPos() + ImVec2(200,200)) + End(); - - Instead, please submit an item: - Begin(...) + SetCursorScreenPos(GetCursorScreenPos() + ImVec2(200,200)) + Dummy(ImVec2(0,0)) + End(); - - Alternative: - Begin(...) + Dummy(ImVec2(200,200)) + End(); - Content size is now only extended when submitting an item. - With '#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS' this will now be detected and assert. - Without '#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS' this will silently be fixed until we obsolete it. - (This incorrect pattern has been mentioned or suggested in: #4510, #3355, #1760, #1490, #4152, #150, - threads have been amended to refer to this issue). -- Inputs: ImGuiKey is now a typed enum, allowing ImGuiKey_XXX symbols to be named in debuggers. (#4921) - This will require uses of legacy backend-dependent indices to be casted, e.g. - - with imgui_impl_glfw: IsKeyPressed(GLFW_KEY_A) -> IsKeyPressed((ImGuiKey)GLFW_KEY_A); - - with imgui_impl_win32: IsKeyPressed('A') -> IsKeyPressed((ImGuiKey)'A') - - etc. however if you are upgrading code you might as well use the backend-agnostic IsKeyPressed(ImGuiKey_A) now. -- Renamed and merged keyboard modifiers key enums and flags into a same set: (#4921, #456) - - ImGuiKey_ModCtrl and ImGuiModFlags_Ctrl -> ImGuiMod_Ctrl - - ImGuiKey_ModShift and ImGuiModFlags_Shift -> ImGuiMod_Shift - - ImGuiKey_ModAlt and ImGuiModFlags_Alt -> ImGuiMod_Alt - - ImGuiKey_ModSuper and ImGuiModFlags_Super -> ImGuiMod_Super - Kept inline redirection enums (will obsolete). - This change simplifies a few things, reduces confusion, and will facilitate upcoming - shortcut/input ownership apis. - - The ImGuiKey_ModXXX were introduced in 1.87 and mostly used by backends. - - The ImGuiModFlags_XXX have been exposed in imgui.h but not really used by any public api, - only by third-party extensions. They were however subject to a recent rename - (ImGuiKeyModFlags_XXX -> ImGuiModFlags_XXX) and we are exceptionally commenting out - the older ImGuiKeyModFlags_XXX names ahead of obsolescence schedule to reduce confusion - and because they were not meant to be used anyway. -- Removed io.NavInputs[] and ImGuiNavInput enum that were used to feed gamepad inputs. - Basically 1.87 already obsoleted them from the backend's point of view, but internally - our navigation code still used this array and enum, so they were still present. - Not anymore! (#4921, #4858, #787, #1599, #323) - Transition guide: - - Official backends from 1.87+ -> no issue. - - Official backends from 1.60 to 1.86 -> will build and convert gamepad inputs, unless IMGUI_DISABLE_OBSOLETE_KEYIO is defined. Need updating! - - Custom backends not writing to io.NavInputs[] -> no issue. - - Custom backends writing to io.NavInputs[] -> will build and convert gamepad inputs, unless IMGUI_DISABLE_OBSOLETE_KEYIO is defined. Need fixing! - - TL;DR: Backends should call io.AddKeyEvent()/io.AddKeyAnalogEvent() with ImGuiKey_GamepadXXX values instead of filling io.NavInput[]. - The ImGuiNavInput enum was essentially 1.60's attempt to combine keyboard and gamepad inputs with named - semantic, but the additional indirection and copy added complexity and got in the way of other - incoming work. User's code (other than backends) should not be affected, unless you have custom - widgets intercepting navigation events via the named enums (in which case you can upgrade your code). -- DragInt()/SliderInt(): Removed runtime patching of invalid "%f"/"%.0f" types of format strings. - This was obsoleted in 1.61 (May 2018). See 1.61 changelog for details. -- Changed signature of ImageButton() function: (#5533, #4471, #2464, #1390) - - Added 'const char* str_id' parameter + removed 'int frame_padding = -1' parameter. - - Old signature: bool ImageButton(ImTextureID tex_id, ImVec2 size, ImVec2 uv0 = ImVec2(0,0), ImVec2 uv1 = ImVec2(1,1), int frame_padding = -1, ImVec4 bg_col = ImVec4(0,0,0,0), ImVec4 tint_col = ImVec4(1,1,1,1)); - - used the ImTextureID value to create an ID. This was inconsistent with other functions, led to ID conflicts, and caused problems with engines using transient ImTextureID values. - - had a FramePadding override which was inconsistent with other functions and made the already-long signature even longer. - - New signature: bool ImageButton(const char* str_id, ImTextureID tex_id, ImVec2 size, ImVec2 uv0 = ImVec2(0,0), ImVec2 uv1 = ImVec2(1,1), ImVec4 bg_col = ImVec4(0,0,0,0), ImVec4 tint_col = ImVec4(1,1,1,1)); - - requires an explicit identifier. You may still use e.g. PushID() calls and then pass an empty identifier. - - always uses style.FramePadding for padding, to be consistent with other buttons. You may use PushStyleVar() to alter this. - - As always we are keeping a redirection function available (will obsolete later). -- Removed the bizarre legacy default argument for 'TreePush(const void* ptr = NULL)'. (#1057) - Must always pass a pointer value explicitly, NULL/nullptr is ok but require cast, e.g. TreePush((void*)nullptr); - If you used TreePush() replace with TreePush((void*)NULL); -- Removed support for 1.42-era IMGUI_DISABLE_INCLUDE_IMCONFIG_H / IMGUI_INCLUDE_IMCONFIG_H. (#255) - They only made sense before we could use IMGUI_USER_CONFIG. - -Other Changes: - -- Popups & Modals: fixed nested Begin() inside a popup being erroneously input-inhibited. - While it is unusual, you can nest a Begin() inside a popup or modal, it is occasionally - useful to achieve certain things (e.g. to implement suggestion popups #718, #4461). -- Inputs: Standard widgets now claim for key/button ownership and test for them. - - Fixes scenario where e.g. a Popup with a Selectable() reacting on mouse down - (e.g. double click) closes, and behind it is another window with an item reacting - on mouse up. Previously this would lead to both items reacting, now the item in the - window behind won't react on the mouse up since the mouse button ownership has already - been claimed earlier. - - Internals: There are MANY more aspects to this changes. Added experimental/internal APIs - to allow handling input/shorting routing and key ownership. Things will be moved into - public APIs over time. For now this release is a way to test the solidity of underlying - systems while letting early adopters adopters toy with internals. - (#456, #2637, #2620, #2891, #3370, #3724, #4828, #5108, #5242, #5641) -- Scrolling: Tweak mouse-wheel locked window timer so it is shorter but also gets reset - whenever scrolling again. Modulate for small (sub-pixel) amounts. (#2604) -- Scrolling: Mitigated issue where multi-axis mouse-wheel inputs (usually from touch pad - events) are incorrectly locking scrolling in a parent window. (#4559, #3795, #2604) -- Scrolling: Exposed SetNextWindowScroll() in public API. Useful to remove a scrolling - delay in some situations where e.g. windows need to be synced. (#1526) -- InputText: added experimental io.ConfigInputTextEnterKeepActive feature to make pressing - Enter keep the input active and select all text. -- InputText: numerical fields automatically accept full-width characters (U+FF01..U+FF5E) - by converting them to half-width (U+0021..U+007E). -- InputText: added ImGuiInputTextFlags_EscapeClearsAll flag: first press on Escape clears - text if any, second press deactivate the InputText(). (#5688, #2620) -- InputText: added support for shift+click style selection. (#5619) [@procedural] -- InputText: clarified that callbacks cannot modify buffer when using the ReadOnly flag. -- InputText: fixed minor one-frame selection glitch when reverting with Escape. -- ColorEdit3: fixed id collision leading to an assertion. (#5707) -- IsItemHovered: Added ImGuiHoveredFlags_DelayNormal and ImGuiHoveredFlags_DelayShort flags, - allowing to introduce a shared delay for tooltip idioms. The delays are respectively - io.HoverDelayNormal (default to 0.30f) and io.HoverDelayShort (default to 0.10f). (#1485) -- IsItemHovered: Added ImGuiHoveredFlags_NoSharedDelay to disable sharing delays between items, - so moving from one item to a nearby one will requires delay to elapse again. (#1485) -- Tables: activating an ID (e.g. clicking button inside) column doesn't prevent columns - output flags from having ImGuiTableColumnFlags_IsHovered set. (#2957) -- Tables,Columns: fixed a layout issue where SameLine() prior to a row change would set the - next row in such state where subsequent SameLine() would move back to previous row. -- Tabs: Fixed a crash when closing multiple windows (possible with docking only) with an - appended TabItemButton(). (#5515, #3291) [@rokups] -- Tabs: Fixed shrinking policy leading to infinite loops when fed unrounded tab widths. (#5652) -- Tabs: Fixed shrinking policy sometimes erroneously making right-most tabs stray a little out - bar boundaries (bug in 1.88). (#5652). -- Tabs: Enforcing minimum size of 1.0f, fixed asserting on zero-tab widths. (#5572) -- Window: Fixed a potential crash when appending to a child window. (#5515, #3496, #4797) [@rokups] -- Window: Fixed an issue where uncollapsed a window would show a scrollbar for a frame. -- Window: Auto-fit size takes account of work rectangle (menu bars eating from viewport). (#5843) -- Window: Fixed position not being clamped while auto-resizing (fixes appearing windows without - .ini data from moving for a frame when using io.ConfigWindowsMoveFromTitleBarOnly). (#5843) -- IO: Added ImGuiMod_Shortcut which is ImGuiMod_Super on Mac and ImGuiMod_Ctrl otherwise. (#456) -- IO: Added ImGuiKey_MouseXXX aliases for mouse buttons/wheel so all operations done on ImGuiKey - can apply to mouse data as well. (#4921) -- IO: Filter duplicate input events during the AddXXX() calls. (#5599, #4921) -- IO: Fixed AddFocusEvent(false) to also clear MouseDown[] state. (#4921) -- Menus: Fixed incorrect sub-menu parent association when opening a menu by closing another. - Among other things, it would accidentally break part of the closing heuristic logic when moving - towards a sub-menu. (#2517, #5614). [@rokups] -- Menus: Fixed gaps in closing logic which would make child-menu erroneously close when crossing - the gap between a menu item inside a window and a child-menu in a secondary viewport. (#5614) -- Menus: Fixed using IsItemHovered()/IsItemClicked() on BeginMenu(). (#5775) -- Menus, Popups: Experimental fix for issue where clicking on an open BeginMenu() item called from - a window which is neither a popup neither a menu used to incorrectly close and reopen the menu - (the fix may have side-effect and is labelled as experimental as we may need to revert). (#5775) -- Menus, Nav: Fixed keyboard/gamepad navigation occasionally erroneously landing on menu-item - in parent window when the parent is not a popup. (#5730) -- Menus, Nav: Fixed not being able to close a menu with Left arrow when parent is not a popup. (#5730) -- Menus, Nav: Fixed using left/right navigation when appending to an existing menu (multiple - BeginMenu() call with same names). (#1207) -- Menus: Fixed a one-frame issue where SetNextWindowXXX data are not consumed by a BeginMenu() - returning false. -- Nav: Fixed moving/resizing window with gamepad or keyboard when running at very high framerate. -- Nav: Pressing Space/GamepadFaceDown on a repeating button uses the same repeating rate as a mouse hold. -- Nav: Fixed an issue opening a menu with Right key from a non-menu window. -- Text: Fixed wrapped-text not doing a fast-forward on lines above the clipping region, - which would result in an abnormal number of vertices created (was slower and more likely to - asserts with 16-bits ImDrawVtx). (#5720) -- Fonts: Added GetGlyphRangesGreek() helper for Greek & Coptic glyph range. (#5676, #5727) [@azonenberg] -- ImDrawList: Not using alloca() anymore, lift single polygon size limits. (#5704, #1811) - - Note: now using a temporary buffer stored in ImDrawListSharedData. - This change made it more visible than you cannot append to multiple ImDrawList from multiple - threads if they share the same ImDrawListSharedData. Previously it was a little more likely - for this to "accidentally" work, but was already incorrect. (#6167) -- Platform IME: [Windows] Removed call to ImmAssociateContextEx() leading to freeze on some setups. - (#2589, #5535, #5264, #4972) -- Misc: better error reporting for PopStyleColor()/PopStyleVar() + easier to recover. (#1651) -- Misc: io.Framerate moving average now converge in 60 frames instead of 120. (#5236, #4138) -- Debug Tools: Debug Log: Visually locate items when hovering a 0xXXXXXXXX value. (#5855) -- Debug Tools: Debug Log: Added 'IO' and 'Clipper' events logging. (#5855) -- Debug Tools: Metrics: Visually locate items when hovering a 0xXXXXXXXX value (in most places). -- Debug Tools: Item Picker: Mouse button can be changed by holding Ctrl+Shift, making it easier - to use the Item Picker in e.g. menus. (#2673) -- Docs: Fixed various typos in comments and documentations. (#5649, #5675, #5679) [@tocic, @lessigsx] -- Demo: Improved "Constrained-resizing window" example, more clearly showcase aspect-ratio. (#5627) -- Demo: Added more explicit "Center window" mode to "Overlay example". (#5618) -- Demo: Fixed Log & Console from losing scrolling position with Auto-Scroll when child is clipped. (#5721) -- Examples: Added all SDL examples to default VS solution. -- Examples: Win32: Always use RegisterClassW() to ensure windows are Unicode. (#5725) -- Examples: Android: Enable .ini file loading/saving into application internal data folder. (#5836) [@rewtio] -- Backends: GLFW: Honor GLFW_CURSOR_DISABLED by not setting mouse position. (#5625) [@scorpion-26] -- Backends: GLFW: Add glfwGetError() call on GLFW 3.3 to inhibit missing mouse cursor errors. (#5785) [@mitchellh] -- Backends: SDL: Disable SDL 2.0.22 new "auto capture" which prevents drag and drop across windows - (e.g. for multi-viewport support) and don't capture mouse when drag and dropping. (#5710) -- Backends: Win32: Convert WM_CHAR values with MultiByteToWideChar() when window class was - registered as MBCS (not Unicode). (#5725, #1807, #471, #2815, #1060) [@or75, @ocornut] -- Backends: OSX: Fixed mouse inputs on flipped views. (#5756) [@Nemirtingas] -- Backends: OSX: Fixed mouse coordinate before clicking on the host window. (#5842) [@maezawa-akira] -- Backends: OSX: Fixes to support full app creation in C++. (#5403) [@stack] -- Backends: OpenGL3: Reverted use of glBufferSubData(), too many corruptions issues were reported, - and old leaks issues seemingly can't be reproed with Intel drivers nowadays (revert earlier changes). - (#4468, #4504, #3381, #2981, #4825, #4832, #5127). -- Backends: Metal: Use __bridge for ARC based systems. (#5403) [@stack] -- Backends: Metal: Add dispatch synchronization. (#5447) [@luigifcruz] -- Backends: Metal: Update deprecated property 'sampleCount'->'rasterSampleCount'. (#5603) [@dcvz] -- Backends: Vulkan: Added experimental ImGui_ImplVulkan_RemoveTexture() for api symmetry. (#914, #5738). -- Backends: WebGPU: fixed rendering when a depth buffer is enabled. (#5869) [@brainlag] - - ------------------------------------------------------------------------ - VERSION 1.88 (Released 2022-06-21) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.88 - -Breaking changes: - -- Renamed IMGUI_DISABLE_METRICS_WINDOW to IMGUI_DISABLE_DEBUG_TOOLS for correctness. - Kept support for old define (will obsolete). -- Renamed CaptureMouseFromApp() and CaptureKeyboardFromApp() to SetNextFrameWantCaptureMouse() - and SetNextFrameWantCaptureKeyboard() to clarify purpose, old name was too misleading. - Kept inline redirection functions (will obsolete). -- Renamed ImGuiKeyModFlags to ImGuiModFlags. Kept inline redirection enums (will obsolete). - (This was never used in public API functions but technically present in imgui.h and ImGuiIO). -- Backends: OSX: Removed ImGui_ImplOSX_HandleEvent() from backend API in favor of backend - automatically handling event capture. Examples that are using the OSX backend have removed - all the now-unnecessary calls to ImGui_ImplOSX_HandleEvent(), applications can do as well. - [@stuartcarnie] (#4821) -- Internals: calling ButtonBehavior() without calling ItemAdd() now requires a KeepAliveID() - call. This is because the KeepAliveID() call was moved from GetID() to ItemAdd(). (#5181) - -Other Changes: - -- IO: Fixed backward-compatibility regression introduced in 1.87: (#4921, #4858) - - Direct accesses to io.KeysDown[] with legacy indices didn't work (with new backends). - - Direct accesses to io.KeysDown[GetKeyIndex(XXX)] would access invalid data (with old/new backends). - - Calling IsKeyDown() didn't have those problems, and is recommended as io.KeysDown[] is obsolete. -- IO: Fixed input queue trickling of interleaved keys/chars events (which are frequent especially - when holding down a key as OS submits chars repeat events) delaying key presses and mouse movements. - In particular, using the input system for fast game-like actions (e.g. WASD camera move) would - typically have been impacted, as well as holding a key while dragging mouse. Constraints have - been lifted and are now only happening when e.g. an InputText() widget is active. (#4921, #4858) - Note that even thought you shouldn't need to disable io.ConfigInputTrickleEventQueue, you can - technically dynamically change its setting based on the context (e.g. disable only when hovering - or interacting with a game/3D view). -- IO: Fixed input queue trickling of mouse wheel events: multiple wheel events are merged, while - a mouse pos followed by a mouse wheel are now trickled. (#4921, #4821) -- IO: Added io.SetAppAcceptingEvents() to set a master flag for accepting key/mouse/characters - events (default to true). Useful if you have native dialog boxes that are interrupting your - application loop/refresh, and you want to disable events being queued while your app is frozen. -- Windows: Fixed first-time windows appearing in negative coordinates from being initialized - with a wrong size. This would most often be noticeable in multi-viewport mode (docking branch) - when spawning a window in a monitor with negative coordinates. (#5215, #3414) [@DimaKoltun] -- Clipper: Fixed a regression in 1.86 when not calling clipper.End() and late destructing the - clipper instance. High-level languages (Lua,Rust etc.) would typically be affected. (#4822) -- Layout: Fixed mixing up SameLine() and SetCursorPos() together from creating situations where line - height would be emitted from the wrong location (e.g. 'ItemA+SameLine()+SetCursorPos()+ItemB' would - emit ItemA worth of height from the position of ItemB, which is not necessarily aligned with ItemA). -- Sliders: An initial click within the knob/grab doesn't shift its position. (#1946, #5328) -- Sliders, Drags: Fixed dragging when using hexadecimal display format string. (#5165, #3133) -- Sliders, Drags: Fixed manual input when using hexadecimal display format string. (#5165, #3133) -- InputScalar: Fixed manual input when using %03d style width in display format string. (#5165, #3133) -- InputScalar: Automatically allow hexadecimal input when format is %X (without extra flag). -- InputScalar: Automatically allow scientific input when format is float/double (without extra flag). -- Nav: Fixed nav movement in a scope with only one disabled item from focusing the disabled item. (#5189) -- Nav: Fixed issues with nav request being transferred to another window when calling SetKeyboardFocusHere() - and simultaneous changing window focus. (#4449) -- Nav: Changed SetKeyboardFocusHere() to not behave if a drag or window moving is in progress. -- Nav: Fixed inability to cancel nav in modal popups. (#5400) [@rokups] -- IsItemHovered(): added ImGuiHoveredFlags_NoNavOverride to disable the behavior where the - return value is overridden by focus when gamepad/keyboard navigation is active. -- InputText: Fixed pressing Tab emitting two tabs characters because of dual Keys/Chars events being - trickled with the new input queue (happened on some backends only). (#2467, #1336) -- InputText: Fixed a one-frame display glitch where pressing Escape to revert after a deletion - would lead to small garbage being displayed for one frame. Curiously a rather old bug! (#3008) -- InputText: Fixed an undo-state corruption issue when editing main buffer before reactivating item. (#4947) -- InputText: Fixed an undo-state corruption issue when editing in-flight buffer in user callback. - (#4947, #4949] [@JoshuaWebb] -- Tables: Fixed incorrect border height used for logic when resizing one of several synchronized - instance of a same table ID, when instances have a different height. (#3955). -- Tables: Fixed incorrect auto-fit of parent windows when using non-resizable weighted columns. (#5276) -- Tables: Fixed draw-call merging of last column. Depending on some unrelated settings (e.g. BorderH) - merging draw-call of the last column didn't always work (regression since 1.87). (#4843, #4844) [@rokups] -- Inputs: Fixed IsMouseClicked() repeat mode rate being half of keyboard repeat rate. -- ColorEdit: Fixed text baseline alignment after a SameLine() after a ColorEdit() with visible label. -- Tabs: BeginTabItem() now reacts to SetNextItemWidth(). (#5262) -- Tabs: Tweak shrinking policy so that while resizing tabs that don't need shrinking keep their - initial width more precisely (without the occasional +1 worth of width). -- Menus: Adjusted BeginMenu() closing logic so hovering void or non-MenuItem() in parent window - always lead to menu closure. Fixes using items that are not MenuItem() or BeginItem() at the root - level of a popup with a child menu opened. -- Menus: Menus emitted from the main/scrolling layer are not part of the same menu-set as menus emitted - from the menu-bar, avoiding accidental hovering from one to the other. (#3496, #4797) [@rokups] -- Style: Adjust default value of GrabMinSize from 10.0f to 12.0f. -- Stack Tool: Added option to copy item path to clipboard. (#4631) -- Settings: Fixed out-of-bounds read when .ini file on disk is empty. (#5351) [@quantum5] -- Settings: Fixed some SetNextWindowPos/SetNextWindowSize API calls not marking settings as dirty. -- DrawList: Fixed PathArcTo() emitting terminating vertices too close to arc vertices. (#4993) [@thedmd] -- DrawList: Fixed texture-based anti-aliasing path with RGBA textures (#5132, #3245) [@cfillion] -- DrawList: Fixed divide-by-zero or glitches with Radius/Rounding values close to zero. (#5249, #5293, #3491) -- DrawList: Circle with a radius smaller than 0.5f won't appear, to be consistent with other primitives. [@thedmd] -- Debug Tools: Debug Log: Added ShowDebugLogWindow() showing an opt-in synthetic log of principal events - (focus, popup, active id changes) helping to diagnose issues. -- Debug Tools: Added DebugTextEncoding() function to facilitate diagnosing issues when not sure about - whether you have a UTF-8 text encoding issue or a font loading issue. [@LaMarche05, @ocornut] -- Demo: Add better demo of how to use SetNextFrameWantCaptureMouse()/SetNextFrameWantCaptureKeyboard(). -- Metrics: Added a "UTF-8 Encoding Viewer" section using the aforementioned DebugTextEncoding() function. -- Metrics: Added "InputText" section to visualize internal state (#4947, #4949). -- Misc: Fixed calling GetID("label") _before_ a widget emitting this item inside a group (such as InputInt()) - from causing an assertion when closing the group. (#5181). -- Misc: Fixed IsAnyItemHovered() returning false when using navigation. -- Misc: Allow redefining IM_COL32_XXX layout macros to facilitate use on big-endian systems. (#5190, #767, #844) -- Misc: Added IMGUI_STB_SPRINTF_FILENAME to support custom path to stb_sprintf. (#5068, #2954) [@jakubtomsu] -- Misc: Added constexpr to ImVec2/ImVec4 inline constructors. (#4995) [@Myriachan] -- Misc: Updated stb_truetype.h from 1.20 to 1.26 (many fixes). (#5075) -- Misc: Updated stb_textedit.h from 1.13 to 1.14 (our changes so this effectively is a no-op). (#5075) -- Misc: Updated stb_rect_pack.h from 1.00 to 1.01 (minor). (#5075) -- Misc: binary_to_compressed_c tool: Added -nostatic option. (#5021) [@podsvirov] -- ImVector: Fixed erase() with empty range. (#5009) [@thedmd] -- Backends: Vulkan: Don't use VK_PRESENT_MODE_MAX_ENUM_KHR as specs state it isn't part of the API. (#5254) -- Backends: GLFW: Fixed a regression in 1.87 which resulted in keyboard modifiers events being - reported incorrectly on Linux/X11, due to a bug in GLFW. [@rokups] -- Backends: GLFW: Fixed untranslated keys when pressing lower case letters on OSX (#5260, #5261) [@cpichard] -- Backends: SDL: Fixed dragging out viewport broken on some SDL setups. (#5012) [@rokups] -- Backends: SDL: Added support for extra mouse buttons (SDL_BUTTON_X1/SDL_BUTTON_X2). (#5125) [@sgiurgiu] -- Backends: SDL, OpenGL3: Fixes to facilitate building on AmigaOS4. (#5190) [@afxgroup] -- Backends: OSX: Monitor NSKeyUp events to catch missing keyUp for key when user press Cmd + key (#5128) [@thedmd] -- Backends: OSX, Metal: Store backend data in a per-context struct, allowing to use these backends with - multiple contexts. (#5203, #5221, #4141) [@noisewuwei] -- Backends: Metal: Fixed null dereference on exit inside command buffer completion handler. (#5363, #5365) [@warrenm] -- Backends: OpenGL3: Partially revert 1.86 change of using glBufferSubData(): now only done on Windows and - Intel GPU, based on querying glGetString(GL_VENDOR). Essentially we got report of accumulating leaks on Intel - with multi-viewports when using simple glBufferData() without orphaning, and report of corruptions on other - GPUs with multi-viewports when using orphaning and glBufferSubData(), so currently switching technique based - on GPU vendor, which unfortunately reinforce the cargo-cult nature of dealing with OpenGL drivers. - Navigating the space of mysterious OpenGL drivers is particularly difficult as they are known to rely on - application specific whitelisting. (#4468, #3381, #2981, #4825, #4832, #5127). -- Backends: OpenGL3: Fix state corruption on OpenGL ES 2.0 due to not preserving GL_ELEMENT_ARRAY_BUFFER_BINDING - and vertex attribute states. [@rokups] -- Examples: Emscripten+WebGPU: Fix building for latest WebGPU specs. (#3632) -- Examples: OSX+Metal, OSX+OpenGL: Removed now-unnecessary calls to ImGui_ImplOSX_HandleEvent(). (#4821) - - ------------------------------------------------------------------------ - VERSION 1.87 (Released 2022-02-07) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.87 - -Breaking Changes: - -- Removed support for pre-C++11 compilers. We'll stop supporting VS2010. (#4537) -- Reworked IO mouse input API: (#4921, #4858) [@thedmd, @ocornut] - - Added io.AddMousePosEvent(), io.AddMouseButtonEvent(), io.AddMouseWheelEvent() functions, - obsoleting writing directly to io.MousePos, io.MouseDown[], io.MouseWheel, etc. - - This enable input queue trickling to support low framerates. (#2787, #1992, #3383, #2525, #1320) - - For all calls to IO new functions, the Dear ImGui context should be bound/current. -- Reworked IO keyboard input API: (#4921, #2625, #3724) [@thedmd, @ocornut] - - Added io.AddKeyEvent() function, obsoleting writing directly to io.KeyMap[], io.KeysDown[] arrays. - - You can use IsKeyDown() instead of reading from io.KeysDown[]. - - For keyboard modifiers, you can call io.AddKeyEvent() with ImGuiKey_ModXXX values, - obsoleting writing directly to io.KeyCtrl, io.KeyShift etc. - - Added io.SetKeyEventNativeData() function (optional) to pass native and old legacy indices. - - Added full range of key enums in ImGuiKey (e.g. ImGuiKey_F1). - - Added GetKeyName() helper function. - - Obsoleted GetKeyIndex(): it is now unnecessary and will now return the same value. - - All keyboard related functions taking 'int user_key_index' now take 'ImGuiKey key': - - IsKeyDown(), IsKeyPressed(), IsKeyReleased(), GetKeyPressedAmount(). - - Added io.ConfigInputTrickleEventQueue (defaulting to true) to disable input queue trickling. - - Backward compatibility: - - All backends updated to use new functions. - - Old backends populating those arrays should still work! - - Calling e.g. IsKeyPressed(MY_NATIVE_KEY_XXX) will still work! (for a while) - - Those legacy arrays will only be disabled if '#define IMGUI_DISABLE_OBSOLETE_KEYIO' is set in your imconfig. - In a few versions, IMGUI_DISABLE_OBSOLETE_FUNCTIONS will automatically enable IMGUI_DISABLE_OBSOLETE_KEYIO, - so this will be moved into the regular obsolescence path. - - BREAKING: If your custom backend used ImGuiKey as mock native indices (e.g. "io.KeyMap[ImGuiKey_A] = ImGuiKey_A") - this is a use case that will now assert and be breaking for your old backend. - - Transition guide: - - IsKeyPressed(MY_NATIVE_KEY_XXX) -> use IsKeyPressed(ImGuiKey_XXX) - - IsKeyPressed(GetKeyIndex(ImGuiKey_XXX)) -> use IsKeyPressed(ImGuiKey_XXX) - - Backend writing to io.KeyMap[],KeysDown[] -> backend should call io.AddKeyEvent(), if legacy indexing is desired, call io.SetKeyEventNativeData() - - Basically the trick we took advantage of is that we previously only supported native keycode from 0 to 511, - so ImGuiKey values can still express a legacy native keycode, and new named keys are all >= 512. - - This will enable a few things in the future: - - Access to portable keys allows for backend-agnostic keyboard input code. Until now it was difficult - to share code using keyboard across project because of this gap. (#2625, #3724) - - Access to full key ranges will allow us to develop a proper keyboard shortcut system. (#456) - - io.SetKeyEventNativeData() include native keycode/scancode which may later be exposed. (#3141, #2959) -- Reworked IO nav/gamepad input API and unifying inputs sources: (#4921, #4858, #787) - - Added full range of ImGuiKey_GamepadXXXX enums (e.g. ImGuiKey_GamepadDpadUp, ImGuiKey_GamepadR2) to use with - io.AddKeyEvent(), io.AddKeyAnalogEvent(). - - Added io.AddKeyAnalogEvent() function, obsoleting writing directly to io.NavInputs[] arrays. -- Renamed ImGuiKey_KeyPadEnter to ImGuiKey_KeypadEnter to align with new symbols. Kept redirection enum. (#2625) -- Removed support for legacy arithmetic operators (+,+-,*,/) when inputting text into a slider/drag. (#4917, #3184) - This doesn't break any api/code but a feature that was accessible by end-users (which seemingly no one used). - (Instead you may implement custom expression evaluators to provide a better version of this). -- Backends: GLFW: backend now uses glfwSetCursorPosCallback(). - - If calling ImGui_ImplGlfw_InitXXX with install_callbacks=true: nothing to do. is already done for you. - - If calling ImGui_ImplGlfw_InitXXX with install_callbacks=false: you WILL NEED to register the GLFW callback - using glfwSetCursorPosCallback() and forward it to the backend function ImGui_ImplGlfw_CursorPosCallback(). -- Backends: SDL: Added SDL_Renderer* parameter to ImGui_ImplSDL2_InitForSDLRenderer(), so backend can call - SDL_GetRendererOutputSize() to obtain framebuffer size valid for hi-dpi. (#4927) [@Clownacy] -- Commented out redirecting functions/enums names that were marked obsolete in 1.69, 1.70, 1.71, 1.72 (March-July 2019) - - ImGui::SetNextTreeNodeOpen() -> use ImGui::SetNextItemOpen() - - ImGui::GetContentRegionAvailWidth() -> use ImGui::GetContentRegionAvail().x - - ImGui::TreeAdvanceToLabelPos() -> use ImGui::SetCursorPosX(ImGui::GetCursorPosX() + ImGui::GetTreeNodeToLabelSpacing()); - - ImFontAtlas::CustomRect -> use ImFontAtlasCustomRect - - ImGuiColorEditFlags_RGB/HSV/HEX -> use ImGuiColorEditFlags_DisplayRGB/HSV/Hex -- Removed io.ImeSetInputScreenPosFn() in favor of more flexible io.SetPlatformImeDataFn() for IME support. - Because this field was mostly only ever used by Dear ImGui internally, not by backends nor the vast majority - of user code, this should only affect a very small fraction for users who are already very IME-aware. -- Obsoleted 'void* io.ImeWindowHandle' in favor of writing to 'void* ImGuiViewport::PlatformHandleRaw'. - This removes an incompatibility between 'master' and 'multi-viewports' backends and toward enabling - better support for IME. Updated backends accordingly. Because the old field is set by existing backends, - we are keeping it (marked as obsolete). - -Other Changes: - -- IO: Added event based input queue API, which now trickles events to support low framerates. [@thedmd, @ocornut] - Previously the most common issue case (button presses in low framerates) was handled by backend. This is now - handled by core automatically for all kind of inputs. (#4858, #2787, #1992, #3383, #2525, #1320) - - New IO functions for keyboard/gamepad: AddKeyEvent(), AddKeyAnalogEvent(). - - New IO functions for mouse: AddMousePosEvent(), AddMouseButtonEvent(), AddMouseWheelEvent(). -- IO: Unified key enums allow using key functions on key mods and gamepad values. -- Fixed CTRL+Tab into an empty window causing artifacts on the highlight rectangle due to bad reordering on ImDrawCmd. -- Fixed a situation where CTRL+Tab or Modal can occasionally lead to the creation of ImDrawCmd with zero triangles, - which would makes the draw operation of some backends assert (e.g. Metal with debugging). (#4857) -- Popups: Fixed a regression crash when a new window is created after a modal on the same frame. (#4920) [@rokups] -- Popups: Fixed an issue when reopening a same popup multiple times would offset them by 1 pixel on the right. (#4936) -- Tables, ImDrawListSplitter: Fixed erroneously stripping trailing ImDrawList::AddCallback() when submitted in - last column or last channel and when there are no other drawing operation. (#4843, #4844) [@hoffstadt] -- Tables: Fixed positioning of Sort icon on right-most column with some settings (not resizable + no borders). (#4918). -- Nav: Fixed gamepad navigation in wrapping popups not wrapping all the way. (#4365) -- Sliders, Drags: Fixed text input of values with a leading sign, common when using a format enforcing sign. (#4917) -- Demo: draw a section of keyboard in "Inputs > Keyboard, Gamepad & Navigation state" to visualize keys. [@thedmd] -- Platform IME: changed io.ImeSetInputScreenPosFn() to io.SetPlatformImeDataFn() API, - now taking a ImGuiPlatformImeData structure which we can more easily extend in the future. -- Platform IME: moved io.ImeWindowHandle to GetMainViewport()->PlatformHandleRaw. -- Platform IME: add ImGuiPlatformImeData::WantVisible, hide IME composition window when not used. (#2589) [@actboy168] -- Platform IME: add ImGuiPlatformImeData::InputLineHeight. (#3113) [@liuliu] -- Platform IME: [windows] call ImmSetCandidateWindow() to position candidate window. -- Backends: GLFW: Pass locale::getd keys (matching keyboard layout). Fix e.g. CTRL+A, CTRL+Z, CTRL+Y shortcuts. - We are now converting GLFW untranslated keycodes back to translated keycodes in order to match the behavior of - other backend, and facilitate the use of GLFW with lettered-shortcuts API. (#456, #2625) -- Backends: GLFW: Submit keys and key mods using io.AddKeyEvent(). (#2625, #4921) -- Backends: GLFW: Submit mouse data using io.AddMousePosEvent(), io.AddMouseButtonEvent(), io.AddMouseWheelEvent() functions. (#4921) -- Backends: GLFW: Retrieve mouse position using glfwSetCursorPosCallback() + fallback when focused but not hovered/captured. -- Backends: GLFW: Submit gamepad data using io.AddKeyEvent/AddKeyAnalogEvent() functions, stopped writing to io.NavInputs[]. (#4921) -- Backends: GLFW: Added ImGui_ImplGlfw_InstallCallbacks()/ImGui_ImplGlfw_RestoreCallbacks() helpers to facilitate user installing - callbacks after initializing backend. (#4981) -- Backends: Win32: Submit keys and key mods using io.AddKeyEvent(). (#2625, #4921) -- Backends: Win32: Retrieve mouse position using WM_MOUSEMOVE/WM_MOUSELEAVE + fallback when focused but not hovered/captured. -- Backends: Win32: Submit mouse data using io.AddMousePosEvent(), AddMouseButtonEvent(), AddMouseWheelEvent() functions. (#4921) -- Backends: Win32: Maintain a MouseButtonsDown mask instead of using ImGui::IsAnyMouseDown() which will be obsoleted. -- Backends: Win32: Submit gamepad data using io.AddKeyEvent/AddKeyAnalogEvent() functions, stopped writing to io.NavInputs[]. (#4921) -- Backends: SDL: Pass locale::getd keys (matching keyboard layout). Fix e.g. CTRL+A, CTRL+Z, CTRL+Y shortcuts. (#456, #2625) -- Backends: SDL: Submit key data using io.AddKeyEvent(). Submit keymods using io.AddKeyModsEvent() at the same time. (#2625) -- Backends: SDL: Retrieve mouse position using SDL_MOUSEMOTION/SDL_WINDOWEVENT_LEAVE + fallback when focused but not hovered/captured. -- Backends: SDL: Submit mouse data using io.AddMousePosEvent(), AddMouseButtonEvent(), AddMouseWheelEvent() functions. (#4921) -- Backends: SDL: Maintain a MouseButtonsDown mask instead of using ImGui::IsAnyMouseDown() which will be obsoleted. -- Backends: SDL: Submit gamepad data using io.AddKeyEvent/AddKeyAnalogEvent() functions, stopped writing to io.NavInputs[]. (#4921) -- Backends: Allegro5: Submit keys using io.AddKeyEvent(). Submit keymods using io.AddKeyModsEvent() at the same time. (#2625) -- Backends: Allegro5: Submit mouse data using io.AddMousePosEvent(), AddMouseButtonEvent(), AddMouseWheelEvent() functions. (#4921) -- Backends: OSX: Submit keys using io.AddKeyEvent(). Submit keymods using io.AddKeyModsEvent() at the same time. (#2625) -- Backends: OSX: Submit mouse data using io.AddMousePosEvent(), AddMouseButtonEvent(), AddMouseWheelEvent() functions. (#4921) -- Backends: OSX: Submit gamepad data using io.AddKeyEvent/AddKeyAnalogEvent() functions, stopped writing to io.NavInputs[]. (#4921) -- Backends: OSX: Added basic Platform IME support. (#3108, #2598) [@liuliu] -- Backends: OSX: Fix Game Controller nav mapping to use shoulder for both focusing and tweak speed. (#4759) -- Backends: OSX: Fix building with old Xcode versions that are missing gamepad features. [@rokups] -- Backends: OSX: Forward keyDown/keyUp events to OS when unused by Dear ImGui. -- Backends: Android, GLUT: Submit keys using io.AddKeyEvent(). Submit keymods using io.AddKeyModsEvent() at the same time. (#2625) -- Backends: Android, GLUT: Submit mouse data using io.AddMousePosEvent(), AddMouseButtonEvent(), AddMouseWheelEvent() functions. (#4858) -- Backends: OpenGL3: Fixed a buffer overflow in imgui_impl_opengl3_loader.h init (added in 1.86). (#4468, #4830) [@dymk] - It would generally not have noticeable side-effect at runtime but would be detected by runtime checkers. -- Backends: OpenGL3: Fix OpenGL ES2 includes on Apple systems. [@rokups] -- Backends: Metal: Added Apple Metal C++ API support. (#4824, #4746) [@luigifcruz] - Enable with '#define IMGUI_IMPL_METAL_CPP' in your imconfig.h file. -- Backends: Metal: Ignore ImDrawCmd where ElemCount == 0, which are normally not emitted by the library but - can theoretically be created by user code manipulating a ImDrawList. (#4857) -- Backends: Vulkan: Added support for ImTextureID as VkDescriptorSet, add ImGui_ImplVulkan_AddTexture(). (#914) [@martty] -- Backends: SDL_Renderer: Fix texture atlas format on big-endian hardware (#4927) [@Clownacy] -- Backends: WebGPU: Fixed incorrect size parameters in wgpuRenderPassEncoderSetIndexBuffer() and - wgpuRenderPassEncoderSetVertexBuffer() calls. (#4891) [@FeepsDev] - - ------------------------------------------------------------------------ - VERSION 1.86 (Released 2021-12-22) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.86 - -Breaking Changes: - -- Removed CalcListClipping() function. Prefer using ImGuiListClipper which can return non-contiguous ranges. - Please open an issue if you think you really need this function. (#3841) -- Backends: OSX: Added NSView* parameter to ImGui_ImplOSX_Init(). (#4759) [@stuartcarnie] -- Backends: Marmalade: Removed obsolete Marmalade backend (imgui_impl_marmalade.cpp) + example app. (#368, #375) - Find last supported version at https://github.com/ocornut/imgui/wiki/Bindings - -Other Changes: - -- Added an assertion for the common user mistake of using "" as an identifier at the root level of a window - instead of using "##something". Empty identifiers are valid and useful in a very small amount of cases, - but 99.9% of the time if you need an empty label you should use "##something". (#1414, #2562, #2807, #4008, - #4158, #4375, #4548, #4657, #4796). READ THE FAQ ABOUT HOW THE ID STACK WORKS -> https://dearimgui.com/faq -- Added GetMouseClickedCount() function, returning the number of successive clicks. (#3229) [@kudaba] - (so IsMouseDoubleClicked(ImGuiMouseButton_Left) is same as GetMouseClickedCount(ImGuiMouseButton_Left) == 2, - but it allows testing for triple clicks and more). -- Modals: fixed issue hovering popups inside a child windows inside a modal. (#4676, #4527) -- Modals, Popups, Windows: changes how appearing windows are interrupting popups and modals. (#4317) [@rokups] - - appearing windows created from within the begin stack of a popup/modal will no longer close it. - - appearing windows created not within the begin stack of a modal will no longer close the modal, - and automatically appear behind it. -- Fixed IsWindowFocused()/IsWindowHovered() issues with child windows inside popups. (#4676) -- Nav: Ctrl+tabbing to cycle through windows is now enabled regardless of using the _NavEnableKeyboard - configuration flag. This is part of an effort to generalize the use of keyboard inputs. (#4023, #787). - Note that while this is active you can also moving windows (with arrow) and resize (shift+arrows). -- Nav: tabbing now cycles through clipped items and scroll accordingly. (#4449) -- Nav: pressing PageUp/PageDown/Home/End when in Menu layer automatically moves back to Main layer. -- Nav: fixed resizing window from borders setting navigation to Menu layer. -- Nav: prevent child from clipping items when using _NavFlattened and parent has a pending request. -- Nav: pressing Esc to exit a child window reactivates the Nav highlight if it was disabled by mouse. -- Nav: with ImGuiConfigFlags_NavEnableSetMousePos enabled: Fixed absolute mouse position when using - Home/End leads to scrolling. Fixed not setting mouse position when a failed move request (e.g. when - already at edge) reactivates the navigation highlight. -- Menus: fixed closing a menu inside a popup/modal by clicking on the popup/modal. (#3496, #4797) -- Menus: fixed closing a menu by clicking on its menu-bar item when inside a popup. (#3496, #4797) [@xndcn] -- Menus: fixed menu inside a popup/modal not inhibiting hovering of items in the popup/modal. (#3496, #4797) -- Menus: fixed sub-menu items inside a popups from closing the popup. -- Menus: fixed top-level menu from not consistently using style.PopupRounding. (#4788) -- InputText, Nav: fixed repeated calls to SetKeyboardFocusHere() preventing to use InputText(). (#4682) -- InputText, Nav: fixed using SetKeyboardFocusHere() on InputTextMultiline(). (#4761) -- InputText: made double-click select word, triple-line select line. Word delimitation logic differs - slightly from the one used by CTRL+arrows. (#2244) -- InputText: fixed ReadOnly flag preventing callbacks from receiving the text buffer. (#4762) [@actondev] -- InputText: fixed Shift+Delete from not cutting into clipboard. (#4818, #1541) [@corporateshark] -- InputTextMultiline: fixed incorrect padding when FrameBorder > 0. (#3781, #4794) -- InputTextMultiline: fixed vertical tracking with large values of FramePadding.y. (#3781, #4794) -- Separator: fixed cover all columns while called inside a table. (#4787) -- Clipper: currently focused item is automatically included in clipper range. - Fixes issue where e.g. drag and dropping an item and scrolling ensure the item source location is - still submitted. (#3841, #1725) [@GamingMinds-DanielC, @ocornut] -- Clipper: added ForceDisplayRangeByIndices() to force a given item (or several) to be stepped out - during a clipping operation. (#3841) [@GamingMinds-DanielC] -- Clipper: rework so gamepad/keyboard navigation doesn't create spikes in number of items requested - by the clipper to display. (#3841) -- Clipper: fixed content height declaration slightly mismatching the value of when not using a clipper. - (an additional ItemSpacing.y was declared, affecting scrollbar range). -- Clipper: various and incomplete changes to tame down scrolling and precision issues on very large ranges. - Passing an explicit height to the clipper now allows larger ranges. (#3609, #3962). -- Clipper: fixed invalid state when number of frozen table row is smaller than ItemCount. -- Drag and Drop: BeginDragDropSource() with ImGuiDragDropFlags_SourceAllowNullID doesn't lose - tooltip when scrolling. (#143) -- Fonts: fixed infinite loop in ImFontGlyphRangesBuilder::AddRanges() when passing UINT16_MAX or UINT32_MAX - without the IMGUI_USE_WCHAR32 compile-time option. (#4802) [@SlavicPotato] -- Metrics: Added a node showing windows in submission order and showing the Begin() stack. -- Misc: Added missing ImGuiMouseCursor_NotAllowed cursor for software rendering (when the - io.MouseDrawCursor flag is enabled). (#4713) [@nobody-special666] -- Misc: Fixed software mouse cursor being rendered multiple times if Render() is called more than once. -- Misc: Fix MinGW DLL build issue (when IMGUI_API is defined). [@rokups] -- CI: Add MinGW DLL build to test suite. [@rokups] -- Backends: Vulkan: Call vkCmdSetScissor() at the end of render with a full-viewport to reduce - likelihood of issues with people using VK_DYNAMIC_STATE_SCISSOR in their app without calling - vkCmdSetScissor() explicitly every frame. (#4644) -- Backends: OpenGL3: Using buffer orphaning + glBufferSubData(), seems to fix leaks with multi-viewports - with some Intel HD drivers, and perhaps improve performances. (#4468, #4504, #2981, #3381) [@parbo] -- Backends: OpenGL2, Allegro5, Marmalade: Fixed mishandling of the ImDrawCmd::IdxOffset field. - This is an old bug, but due to the way we created drawlists, it never had any visible side-effect before. - The new code for handling Modal and CTRL+Tab dimming/whitening recently made the bug surface. (#4790) -- Backends: Win32: Store left/right variants of Ctrl/Shift/Alt mods in KeysDown[] array. (#2625) [@thedmd] -- Backends: DX12: Fixed DRAW_EMPTY_SCISSOR_RECTANGLE warnings. (#4775) -- Backends: SDL_Renderer: Added support for large meshes (64k+ vertices) with 16-bit indices, - enabling 'ImGuiBackendFlags_RendererHasVtxOffset' in the backend. (#3926) [@rokups] -- Backends: SDL_Renderer: Fix for SDL 2.0.19+ RenderGeometryRaw() API signature change. (#4819) [@sridenour] -- Backends: OSX: Generally fix keyboard support. Keyboard arrays indexed using kVK_* codes, e.g. - ImGui::IsKeyPressed(kVK_Space). Don't set mouse cursor shape unconditionally. Handle two fingers scroll - cancel event. (#4759, #4253, #1873) [@stuartcarnie] -- Backends: OSX: Add Game Controller support (need linking GameController framework) (#4759) [@stuartcarnie] -- Backends: WebGPU: Passing explicit buffer sizes to wgpuRenderPassEncoderSetVertexBuffer() and - wgpuRenderPassEncoderSetIndexBuffer() functions as validation layers appears to not do what the - in-flux specs says. (#4766) [@meshula] - - ------------------------------------------------------------------------ - VERSION 1.85 (Released 2021-10-12) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.85 - -This is the last release officially supporting C++03 and Visual Studio 2008/2010. (#4537) -We expect that the next release will require a subset of the C++11 language (VS 2012~, GCC 4.8.1, Clang 3.3). -We may use some C++11 language features but we will not use any C++ library headers. -If you are stuck on ancient compiler you may need to stay at this version onward. - -Breaking Changes: - -- Removed GetWindowContentRegionWidth() function. Kept inline redirection helper. - Can use 'GetWindowContentRegionMax().x - GetWindowContentRegionMin().x' instead but it's not - very useful in practice, and the only use of it in the demo was illfit. - Using 'GetContentRegionAvail().x' is generally a better choice. - -Other Changes: - -- Debug: Stack Tool: Added "Stack Tool" available in "Demo->Tools->Stack Tool", "Metrics->Tools", - or by calling the ShowStackToolWindow() function. The tool run queries on hovered id to display - details about individual components that were hashed to create an ID. It helps understanding - the ID stack system and debugging potential ID collisions. (#4631) [@ocornut, @rokups] -- Windows: Fixed background order of overlapping childs submitted sequentially. (#4493) -- IsWindowFocused: Added ImGuiFocusedFlags_NoPopupHierarchy flag allowing to exclude child popups - from the tested windows when combined with _ChildWindows. -- IsWindowHovered: Added ImGuiHoveredFlags_NoPopupHierarchy flag allowing to exclude child popups - from the tested windows when combined with _ChildWindows. -- InputTextMultiline: Fixed label size not being included into window contents rect unless - the whole widget is clipped. -- InputText: Allow activating/cancelling/validating input with gamepad nav events. (#2321, #4552) -- InputText: Fixed selection rectangle appearing one frame late when selecting all. -- TextUnformatted: Accept null ranges including (NULL,NULL) without asserting, in order to conform - to common idioms (e.g. passing .data(), .data() + .size() from a null string). (#3615) -- Disabled: Added assert guard for mismatching BeginDisabled()/EndDisabled() blocks. (#211) -- Nav: Fixed using SetKeyboardFocusHere() on non-visible/clipped items. It now works and will scroll - toward the item. When called during a frame where the parent window is appearing, scrolling will - aim to center the item in the window. When calling during a frame where the parent window is already - visible, scrolling will aim to scroll as little as possible to make the item visible. We will later - expose scroll functions and flags in public API to select those behaviors. (#343, #4079, #2352) -- Nav: Fixed using SetKeyboardFocusHere() from activating a different item on the next frame if - submitted items have changed during that frame. (#432) -- Nav: Fixed toggling menu layer with Alt or exiting menu layer with Esc not moving mouse when - the ImGuiConfigFlags_NavEnableSetMousePos config flag is set. -- Nav: Fixed a few widgets from not setting reference keyboard/gamepad navigation ID when - activated with mouse. More specifically: BeginTabItem(), the scrolling arrows of BeginTabBar(), - the arrow section of TreeNode(), the +/- buttons of InputInt()/InputFloat(), Selectable() with - ImGuiSelectableFlags_SelectOnRelease. More generally: any direct use of ButtonBehavior() with - the PressedOnClick/PressedOnDoubleClick/PressedOnRelease button policy. -- Nav: Fixed an issue with losing focus on docked windows when pressing Alt while keyboard navigation - is disabled. (#4547, #4439) [@PathogenDavid] -- Nav: Fixed vertical scoring offset when wrapping on Y in a decorated window. -- Nav: Improve scrolling behavior when navigating to an item larger than view. -- TreePush(): removed unnecessary/inconsistent legacy behavior where passing a NULL value to - the TreePush(const char*) and TreePush(const void*) functions would use a hard-coded replacement. - The only situation where that change would make a meaningful difference is TreePush((const char*)NULL) - (_explicitly_ casting a null pointer to const char*), which is unlikely and will now crash. - You may replace it with anything else. -- ColorEdit4: Fixed not being able to change hue when saturation is 0. (#4014) [@rokups] -- ColorEdit4: Fixed hue resetting to 0 when it is set to 255. [@rokups] -- ColorEdit4: Fixed hue value jitter when source color is stored as RGB in 32-bit integer and perform - RGB<>HSV round trips every frames. [@rokups] -- ColorPicker4: Fixed picker being unable to select exact 1.0f color when dragging toward the edges - of the SV square (previously picked 0.999989986f). (#3517) [@rokups] -- Menus: Fixed vertical alignments of MenuItem() calls within a menu bar (broken in 1.84). (#4538) -- Menus: Improve closing logic when moving diagonally in empty between between parent and child menus to - accommodate for varying font size and dpi. -- Menus: Fixed crash when navigating left inside a child window inside a sub-menu. (#4510). -- Menus: Fixed an assertion happening in some situations when closing nested menus (broken in 1.83). (#4640) -- Drag and Drop: Fixed using BeginDragDropSource() inside a BeginChild() that returned false. (#4515) -- PlotHistogram: Fixed zero-line position when manually specifying min<0 and max>0. (#4349) [@filippocrocchini] -- Misc: Added asserts for missing PopItemFlag() calls. -- Misc: Fixed printf-style format checks on Clang+MinGW. (#4626, #4183, #3592) [@guusw] -- IO: Added 'io.WantCaptureMouseUnlessPopupClose' alternative to `io.WantCaptureMouse'. (#4480) - This allows apps to receive the click on void when that click is used to close popup (by default, - clicking on a void when a popup is open will close the popup but not release io.WantCaptureMouse). -- Fonts: imgui_freetype: Fixed crash when FT_Render_Glyph() fails to render a glyph and returns NULL - (which apparently happens with Freetype 2.11). (#4394, #4145?). -- Fonts: Fixed ImFontAtlas::ClearInputData() marking atlas as not built. (#4455, #3487) -- Backends: Added more implicit asserts to detect invalid/redundant calls to Shutdown functions. (#4562) -- Backends: OpenGL3: Fixed our custom GL loader conflicting with user using GL3W. (#4445) [@rokups] -- Backends: WebGPU: Fixed for latest specs. (#4472, #4512) [@Kangz, @bfierz] -- Backends: SDL_Renderer: Added SDL_Renderer backend compatible with upcoming SDL 2.0.18. (#3926) [@1bsyl] -- Backends: Metal: Fixed a crash when clipping rect larger than framebuffer is submitted via - a direct unclipped PushClipRect() call. (#4464) -- Backends: OSX: Use mach_absolute_time as CFAbsoluteTimeGetCurrent can jump backwards. (#4557, #4563) [@lfnoise] -- Backends: All renderers: Normalize clipping rect handling across backends. (#4464) -- Examples: Added SDL + SDL_Renderer example in "examples/example_sdl_sdlrenderer/" folder. (#3926) [@1bsyl] - - ------------------------------------------------------------------------ - VERSION 1.84.2 (Released 2021-08-23) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.84.2 - -- Disabled: Fixed nested BeginDisabled()/EndDisabled() calls. (#211, #4452, #4453, #4462) [@Legulysse] -- Backends: OpenGL3: OpenGL: Fixed ES 3.0 shader ("#version 300 es") to use normal precision - floats. Avoid wobbly rendering at HD resolutions. (#4463) [@nicolasnoble] - - ------------------------------------------------------------------------ - VERSION 1.84.1 (Released 2021-08-20) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.84.1 - -- Disabled: Fixed BeginDisabled(false) - BeginDisabled(true) was working. (#211, #4452, #4453) - - ------------------------------------------------------------------------ - VERSION 1.84 (Released 2021-08-20) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.84 - -Breaking Changes: - -- Commented out redirecting functions/enums names that were marked obsolete in 1.67 and 1.69 (March 2019): - - ImGui::GetOverlayDrawList() -> use ImGui::GetForegroundDrawList() - - ImFont::GlyphRangesBuilder -> use ImFontGlyphRangesBuilder -- Backends: OpenGL3: added a third source file "imgui_impl_opengl3_loader.h". (#4445) [@rokups] -- Backends: GLFW: backend now uses glfwSetCursorEnterCallback(). (#3751, #4377, #2445) -- Backends: GLFW: backend now uses glfwSetWindowFocusCallback(). (#4388) [@thedmd] - - If calling ImGui_ImplGlfw_InitXXX with install_callbacks=true: this is already done for you. - - If calling ImGui_ImplGlfw_InitXXX with install_callbacks=false: you WILL NEED to register the GLFW callbacks - and forward them to the backend: - - Register glfwSetCursorEnterCallback, forward events to ImGui_ImplGlfw_CursorEnterCallback(). - - Register glfwSetWindowFocusCallback, forward events to ImGui_ImplGlfw_WindowFocusCallback(). -- Backends: SDL2: removed unnecessary SDL_Window* parameter from ImGui_ImplSDL2_NewFrame(). (#3244) [@funchal] - Kept inline redirection function (will obsolete). -- Backends: SDL2: backend needs to set 'SDL_SetHint(SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH, "1")' in order to - receive mouse clicks events on window focus, otherwise SDL doesn't emit the event. (#3751, #4377, #2445) - This is unfortunately a global SDL setting, so enabling it _might_ have a side-effect on your application. - It is unlikely to make a difference, but if your app absolutely needs to ignore the initial on-focus click: - you can ignore SDL_MOUSEBUTTONDOWN events coming right after a SDL_WINDOWEVENT_FOCUS_GAINED event). -- Internals: (for custom widgets): because disabled items now sets HoveredId, if you want custom widgets to - not react as hovered when disabled, in the majority of use cases it is preferable to check the "hovered" - return value of ButtonBehavior() rather than (HoveredId == id). - -Other Changes: - -- IO: Added io.AddFocusEvent() api for backend to tell when host window has gained/lost focus. (#4388) [@thedmd] - If you use a custom backend, consider adding support for this! -- Disabled: added BeginDisabled()/EndDisabled() api to create a scope where interactions are disabled. (#211) - - Added style.DisabledAlpha (default to 0.60f) and ImGuiStyleVar_DisabledAlpha. (#211) - - Unlike the internal-and-undocumented-but-somehow-known PushItemFlag(ImGuiItemFlags_Disabled), this also alters - visuals. Currently this is done by lowering alpha of all widgets. Future styling system may do that differently. - - Disabled items set HoveredId, allowing e.g. HoveredIdTimer to run. (#211, #3419) [@rokups] - - Disabled items more consistently release ActiveId if the active item got disabled. (#211) - - Nav: Fixed disabled items from being candidate for default focus. (#211, #787) - - Fixed Selectable() selection not showing when disabled. (#211) - - Fixed IsItemHovered() returning true on disabled item when navigated to. (#211) - - Fixed IsItemHovered() when popping disabled state after item, or when using Selectable_Disabled. (#211) -- Windows: ImGuiWindowFlags_UnsavedDocument/ImGuiTabItemFlags_UnsavedDocument displays a dot instead of a '*' so it - is independent from font style. When in a tab, the dot is displayed at the same position as the close button. - Added extra comments to clarify the purpose of this flag in the context of docked windows. -- Tables: Added ImGuiTableColumnFlags_Disabled acting a master disable over (hidden from user/context menu). (#3935) -- Tables: Clarified that TableSetColumnEnabled() requires the table to use the ImGuiTableFlags_Hideable flag, - because it manipulates the user-accessible show/hide state. (#3935) -- Tables: Added ImGuiTableColumnFlags_NoHeaderLabel to request TableHeadersRow() to not submit label for a column. - Convenient for some small columns. Name will still appear in context menu. (#4206). -- Tables: Fixed columns order on TableSetupScrollFreeze() if previous data got frozen columns out of their section. -- Tables: Fixed invalid data in TableGetSortSpecs() when SpecsDirty flag is unset. (#4233) -- Tabs: Fixed using more than 32 KB-worth of tab names. (#4176) -- InputInt/InputFloat: When used with Steps values and _ReadOnly flag, the step button look disabled. (#211) -- InputText: Fixed named filtering flags disabling newline or tabs in multiline inputs (#4409, #4410) [@kfsone] -- Drag and Drop: drop target highlight doesn't try to bypass host clipping rectangle. (#4281, #3272) -- Drag and Drop: Fixed using AcceptDragDropPayload() with ImGuiDragDropFlags_AcceptNoPreviewTooltip. [@JeffM2501] -- Menus: MenuItem() and BeginMenu() are not affected/overlapping when style.SelectableTextAlign is altered. -- Menus: Fixed hovering a disabled menu or menu item not closing other menus. (#211) -- Popups: Fixed BeginPopup/OpenPopup sequence failing when there are no focused windows. (#4308) [@rokups] -- Nav: Alt doesn't toggle menu layer if other modifiers are held. (#4439) -- Fixed printf-style format checks on non-MinGW flavors. (#4183, #3592) -- Fonts: Functions with a 'float size_pixels' parameter can accept zero if it is set in ImFontSize::SizePixels. -- Fonts: Prefer using U+FFFD character for fallback instead of '?', if available. (#4269) -- Fonts: Use U+FF0E dot character to construct an ellipsis if U+002E '.' is not available. (#4269) -- Fonts: Added U+FFFD ("replacement character") to default Asian glyphs ranges. (#4269) -- Fonts: Fixed calling ClearTexData() (clearing CPU side font data) triggering an assert in NewFrame(). (#3487) -- DrawList: Fixed AddCircle/AddCircleFilled() with auto-tessellation not using accelerated paths for small circles. - Fixed AddCircle/AddCircleFilled() with 12 segments which had a broken edge. (#4419, #4421) [@thedmd] -- Demo: Fixed requirement in 1.83 to link with imgui_demo.cpp if IMGUI_DISABLE_METRICS_WINDOW is not set. (#4171) - Normally the right way to disable compiling the demo is to set IMGUI_DISABLE_DEMO_WINDOWS, but we want to avoid - implying that the file is required. -- Metrics: Fixed a crash when inspecting the individual draw command of a foreground drawlist. [@rokups] -- Backends: Reorganized most backends (Win32, SDL, GLFW, OpenGL2/3, DX9/10/11/12, Vulkan, Allegro) to pull their - data from a single structure stored inside the main Dear ImGui context. This facilitate/allow usage of standard - backends with multiple-contexts BUT is only partially tested and not well supported. It is generally advised to - instead use the multi-viewports feature of docking branch where a single Dear ImGui context can be used across - multiple windows. (#586, #1851, #2004, #3012, #3934, #4141) -- Backends: Win32: Rework to handle certain Windows 8.1/10 features without a manifest. (#4200, #4191) - - ImGui_ImplWin32_GetDpiScaleForMonitor() will handle per-monitor DPI on Windows 10 without a manifest. - - ImGui_ImplWin32_EnableDpiAwareness() will call SetProcessDpiAwareness() fallback on Windows 8.1 without a manifest. -- Backends: Win32: IME functions are disabled by default for non-Visual Studio compilers (MinGW etc.). Enable with - '#define IMGUI_ENABLE_WIN32_DEFAULT_IME_FUNCTIONS' for those compilers. Undo change from 1.82. (#2590, #738, #4185, #4301) -- Backends: Win32: Mouse position is correctly reported when the host window is hovered but not focused. (#2445, #2696, #3751, #4377) -- Backends: Win32, SDL2, GLFW, OSX, Allegro: now calling io.AddFocusEvent() on focus gain/loss. (#4388) [@thedmd] - This allow us to ignore certain inputs on focus loss (previously relied on mouse loss but backends are now - reporting mouse even when host window is unfocused, as per #2445, #2696, #3751, #4377) -- Backends: Fixed keyboard modifiers being reported when host window doesn't have focus. (#2622) -- Backends: GLFW: Mouse position is correctly reported when the host window is hovered but not focused. (#3751, #4377, #2445) - (backend now uses glfwSetCursorEnterCallback(). If you called ImGui_ImplGlfw_InitXXX with install_callbacks=false, you will - need to install this callback and forward the data to the backend via ImGui_ImplGlfw_CursorEnterCallback). -- Backends: SDL2: Mouse position is correctly reported when the host window is hovered but not focused. (#3751, #4377, #2445) - (enabled with SDL 2.0.5+ as SDL_GetMouseFocus() is only usable with SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH). -- Backends: DX9: Explicitly disable texture state stages after >= 1. (#4268) [@NZJenkins] -- Backends: DX12: Fix texture casting crash on 32-bit systems (introduced on 2021/05/19 and v1.83) + added comments - about building on 32-bit systems. (#4225) [@kingofthebongo2008] -- Backends: OpenGL3: Embed our own minimal GL headers/loader (imgui_impl_opengl3_loader.h) based on gl3w. - Reduces the frequent issues and confusion coming from having to support multiple loaders and requiring users to use and - initialize the same loader as the backend. (#4445) [@rokups] - Removed support for gl3w, glew, glad, glad2, glbinding2, glbinding3 (all now unnecessary). -- Backends: OpenGL3: Handle GL_CLIP_ORIGIN on <4.5 contexts if "GL_ARB_clip_control" extension is detected. (#4170, #3998) -- Backends: OpenGL3: Destroy vertex/fragment shader objects right after they are linked into main shader. (#4244) [@Crowbarous] -- Backends: OpenGL3: Use OES_vertex_array extension on Emscripten + backup/restore current state. (#4266, #4267) [@harry75369] -- Backends: GLFW: Installing and exposed ImGui_ImplGlfw_MonitorCallback() for forward compatibility with docking branch. -- Backends: OSX: Added a fix for shortcuts using CTRL key instead of CMD key. (#4253) [@rokups] -- Examples: DX12: Fixed handling of Alt+Enter in example app (using swapchain's ResizeBuffers). (#4346) [@PathogenDavid] -- Examples: DX12: Removed unnecessary recreation of backend-owned device objects when window is resized. (#4347) [@PathogenDavid] -- Examples: OpenGL3+GLFW,SDL: Remove include cruft to support variety of GL loaders (no longer necessary). [@rokups] -- Examples: OSX+OpenGL2: Fix event forwarding (fix key remaining stuck when using shortcuts with Cmd/Super key). - Other OSX examples were not affected. (#4253, #1873) [@rokups] -- Examples: Updated all .vcxproj to VS2015 (toolset v140) to facilitate usage with vcpkg. -- Examples: SDL2: Accommodate for vcpkg install having headers in SDL2/SDL.h vs SDL.h. - - ------------------------------------------------------------------------ - VERSION 1.83 (Released 2021-05-24) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.83 - -Breaking Changes: - -- Backends: Obsoleted direct access to ImDrawCmd::TextureId in favor of calling ImDrawCmd::GetTexID(). (#3761) [@thedmd] - - If you are using official backends from the source tree: you have nothing to do. - - If you copied old backend code or using your own: change access to draw_cmd->TextureId to draw_cmd->GetTexID(). - Why are we doing this? - - This change will be required in the future when adding support for incremental texture atlas updates. - - Please note this won't break soon, but we are making the change ahead of time. - -Other Changes: - -- Scrolling: Fix scroll tracking with e.g. SetScrollHereX/Y() when WindowPadding < ItemSpacing. -- Scrolling: Fix scroll snapping on edge of scroll region when both scrollbars are enabled. -- Scrolling: Fix mouse wheel axis swap when using SHIFT on macOS (system already does it). (#4010) -- Window: Fix IsWindowAppearing() from returning true twice in most cases. (#3982, #1497, #1061) -- Nav: Fixed toggling menu layer while an InputText() is active not stealing active id. (#787) -- Nav: Fixed pressing Escape to leave menu layer while in a popup or child window. (#787) -- Nav, InputText: Fixed accidental menu toggling while typing non-ascii characters using AltGR. [@rokups] (#370) -- Nav: Fixed using SetItemDefaultFocus() on windows with _NavFlattened flag. (#787) -- Nav: Fixed Tabbing initial activation from skipping the first item if it is tabbable through. (#787) -- Nav: Fixed fast CTRL+Tab (where keys are only held for one single frame) from properly enabling the - menu layer of target window if it doesn't have other active layers. -- Tables: Expose TableSetColumnEnabled() in public api. (#3935) -- Tables: Better preserve widths when columns count changes. (#4046) -- Tables: Sharing more memory buffers between tables, reducing general memory footprints. (#3740) -- Tabs: Fixed mouse reordering with very fast movements (e.g. crossing multiple tabs in a single - frame and then immediately standing still (would only affect automation/bots). [@rokups] -- Menus: made MenuItem() in a menu bar reflect the 'selected' argument with a highlight. (#4128) [@mattelegende] -- Drags, Sliders, Inputs: Specifying a NULL format to Float functions default them to "%.3f" to be - consistent with the compile-time default. (#3922) -- DragScalar: Add default value for v_speed argument to match higher-level functions. (#3922) [@eliasdaler] -- ColorEdit4: Alpha default to 255 (instead of 0) when omitted in hex input. (#3973) [@squadack] -- InputText: Fix handling of paste failure (buffer full) which in some cases could corrupt the undo stack. (#4038) - (fix submitted to https://github.com/nothings/stb/pull/1158) [@Unit2Ed, @ocornut] -- InputText: Do not filter private unicode codepoints (e.g. icons) when pasted from clipboard. (#4005) [@dougbinks] -- InputText: Align caret/cursor to pixel coordinates. (#4080) [@elvissteinjr] -- InputText: Fixed CTRL+Arrow or OSX double-click leaking the presence of spaces when ImGuiInputTextFlags_Password - is used. (#4155, #4156) [@michael-swan] -- LabelText: Fixed clipping of multi-line value text when label is single-line. (#4004) -- LabelText: Fixed vertical alignment of single-line value text when label is multi-line. (#4004) -- Combos: Changed the combo popup to use a different id to also using a context menu with the default item id. - Fixed using BeginPopupContextItem() with no parameter after a combo. (#4167) -- Popups: Added 'OpenPopup(ImGuiID id)' overload to facilitate calling from nested stacks. (#3993, #331) [@zlash] -- Tweak computation of io.Framerate so it is less biased toward high-values in the first 120 frames. (#4138) -- Optimization: Disabling some of MSVC most aggressive Debug runtime checks for some simple/low-level functions - (e.g. ImVec2, ImVector) leading to a 10-20% increase of performances with MSVC "default" Debug settings. -- ImDrawList: Add and use SSE-enabled ImRsqrt() in place of 1.0f / ImSqrt(). (#4091) [@wolfpld] -- ImDrawList: Fixed/improved thickness of thick strokes with sharp angles. (#4053, #3366, #2964, #2868, #2518, #2183) - Effectively introduced a regression in 1.67 (Jan 2019), and a fix in 1.70 (Apr 2019) but the fix wasn't actually on - par with original version. Now incorporating the correct revert. -- ImDrawList: Fixed PathArcTo() regression from 1.82 preventing use of counter-clockwise angles. (#4030, #3491) [@thedmd] -- Demo: Improved popups demo and comments. -- Metrics: Added "Fonts" section with same information as available in "Style Editor">"Fonts". -- Backends: SDL2: Rework global mouse pos availability check listing supported platforms explicitly, - effectively fixing mouse access on Raspberry Pi. (#2837, #3950) [@lethal-guitar, @hinxx] -- Backends: Win32: Clearing keyboard down array when losing focus (WM_KILLFOCUS). (#2062, #3532, #3961) - [@1025798851] -- Backends: OSX: Fix keys remaining stuck when CMD-tabbing to a different application. (#3832) [@rokups] -- Backends: DirectX9: calling IDirect3DStateBlock9::Capture() after CreateStateBlock() which appears to - workaround/fix state restoring issues. Unknown exactly why so, bit of a cargo-cult fix. (#3857) -- Backends: DirectX9: explicitly setting up more graphics states to increase compatibility with unusual - non-default states. (#4063) -- Backends: DirectX10, DirectX11: fixed a crash when backing/restoring state if nothing is bound when - entering the rendering function. (#4045) [@Nemirtingas] -- Backends: GLFW: Adding bound check in KeyCallback because GLFW appears to send -1 on some setups. [#4124] -- Backends: Vulkan: Fix mapped memory Vulkan validation error when buffer sizes are not multiple of - VkPhysicalDeviceLimits::nonCoherentAtomSize. (#3957) [@AgentX1994] -- Backends: WebGPU: Update to latest specs (Chrome Canary 92 and Emscripten 2.0.20). (#4116, #3632) [@bfierz, @Kangz] -- Backends: OpenGL3: Don't try to read GL_CLIP_ORIGIN unless we're OpenGL 4.5. (#3998, #2366, #2186) [@s7jones] -- Examples: OpenGL: Add OpenGL ES 2.0 support to modern GL examples. (#2837, #3951) [@lethal-guitar, @hinxx] -- Examples: Vulkan: Rebuild swapchain on VK_SUBOPTIMAL_KHR. (#3881) -- Examples: Vulkan: Prefer using discrete GPU if there are more than one available. (#4012) [@rokups] -- Examples: SDL2: Link with shell32.lib required by SDL2main.lib since SDL 2.0.12. [#3988] -- Examples: Android: Make Android example build compatible with Gradle 7.0. (#3446) -- Docs: Improvements to description of using colored glyphs/emojis. (#4169, #3369) -- Docs: Improvements to minor mistakes in documentation comments (#3923) [@ANF-Studios] - - ------------------------------------------------------------------------ - VERSION 1.82 (Released 2021-02-15) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.82 - -Breaking Changes: - -- Removed redirecting functions/enums names that were marked obsolete in 1.66 (September 2018): - - ImGui::SetScrollHere() --> use ImGui::SetScrollHereY() -- ImDrawList: upgraded AddPolyline()/PathStroke()'s "bool closed" parameter to use "ImDrawFlags flags". - - bool closed = false --> use ImDrawFlags_None, or 0 - - bool closed = true --> use ImDrawFlags_Closed - The matching ImDrawFlags_Closed value is guaranteed to always stay == 1 in the future. - Difference may not be noticeable for most but zealous type-checking tools may report a need to change. -- ImDrawList: upgraded AddRect(), AddRectFilled(), PathRect() to use ImDrawFlags instead of ImDrawCornersFlags. - - ImDrawCornerFlags_TopLeft --> use ImDrawFlags_RoundCornersTopLeft - - ImDrawCornerFlags_BotRight --> use ImDrawFlags_RoundCornersBottomRight - - ImDrawCornerFlags_None --> use ImDrawFlags_RoundCornersNone etc. - Flags now sanely defaults to 0 instead of 0x0F, consistent with all other flags in the API. - IMPORTANT: The default with rounding > 0.0f is now "round all corners" vs old implicit "round no corners": - - rounding == 0.0f + flags == 0 --> meant no rounding --> unchanged (common use) - - rounding > 0.0f + flags != 0 --> meant rounding --> unchanged (common use) - - rounding == 0.0f + flags != 0 --> meant no rounding --> unchanged (unlikely use) - - rounding > 0.0f + flags == 0 --> meant no rounding --> BREAKING (unlikely use)! - - this ONLY matters for hardcoded use of 0 with rounding > 0.0f. - - fix by using named ImDrawFlags_RoundCornersNone or rounding == 0.0f! - - this is technically the only real breaking change which we can't solve automatically (it's also uncommon). - The old ImDrawCornersFlags used awkward default values of ~0 or 0xF (4 lower bits set) to signify "round all corners" - and we sometimes encouraged using them as shortcuts. As a result the legacy path still support use of hardcoded ~0 - or any value from 0x1 or 0xF. They will behave the same with legacy paths enabled (will assert otherwise). - Courtesy of legacy untangling commity: [@rokups, @ocornut, @thedmd] -- ImDrawList: clarified that PathArcTo()/PathArcToFast() won't render with radius < 0.0f. Previously it sorts - of accidentally worked but would lead to counter-clockwise paths which and have an effect on anti-aliasing. -- InputText: renamed ImGuiInputTextFlags_AlwaysInsertMode to ImGuiInputTextFlags_AlwaysOverwrite, old name was an - incorrect description of behavior. Was mostly used by memory editor. Kept inline redirection function. (#2863) -- Moved 'misc/natvis/imgui.natvis' to 'misc/debuggers/imgui.natvis' as we will provide scripts for other debuggers. -- Style: renamed rarely used style.CircleSegmentMaxError (old default = 1.60f) - to style.CircleTessellationMaxError (new default = 0.30f) as its meaning changed. (#3808) [@thedmd] -- Win32+MinGW: Re-enabled IME functions by default even under MinGW. In July 2016, issue #738 had me incorrectly - disable those default functions for MinGW. MinGW users should: either link with -limm32, either set their - imconfig file with '#define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS'. (#2590, #738) [@actboy168] - *EDIT* Undid in 1.84. -- Backends: Win32: Pragma linking with dwmapi.lib (Vista-era, ~9 kb). MinGW users will need to link with -ldwmapi. - -Other Changes: - -- Window, Nav: Fixed crash when calling SetWindowFocus(NULL) at the time a new window appears. (#3865) [@nem0] -- Window: Shrink close button hit-testing region when it covers an abnormally high portion of the window visible - area (e.g. when window is collapsed + moved in a corner) to facilitate moving the window away. (#3825) -- Nav: Various fixes for losing gamepad/keyboard navigation reference point when a window reappears or - when it appears while gamepad/keyboard are not being used. (#787) -- Drags: Fixed crash when using DragScalar() directly (not via common wrapper like DragFloat() etc.) - with ImGuiSliderFlags_AlwaysClamp + only one of either p_min or p_max set. (#3824) [@harry75369] -- Drags, Sliders: Fixed a bug where editing value would use wrong number if there were digits right after - format specifier (e.g. using "%f123" as a format string). [@rokups] -- Drags, Sliders: Fixed a bug where using custom formatting flags (',$,_) supported by stb_sprintf.h - would cause incorrect value to be displayed. (#3604) [@rokups] -- Drags, Sliders: Support ImGuiSliderFlags_Logarithmic flag with integers. Because why not? (#3786) -- Tables: Fixed unaligned accesses when using TableSetBgColor(ImGuiTableBgTarget_CellBg). (#3872) -- IsItemHovered(): fixed return value false positive when used after EndChild(), EndGroup() or widgets using - either of them, when the hovered location is located within a child window, e.g. InputTextMultiline(). - This is intended to have no side effects, but brace yourself for the possible comeback.. (#3851, #1370) -- Drag and Drop: can use BeginDragDropSource() for other than the left mouse button as long as the item - has an ID (for ID-less items will add new functionalities later). (#1637, #3885) -- ImFontAtlas: Added 'bool TexPixelsUseColors' output to help backend decide of underlying texture format. (#3369) - This can currently only ever be set by the Freetype renderer. -- imgui_freetype: Added ImGuiFreeTypeBuilderFlags_Bitmap flag to request Freetype loading bitmap data. - This may have an effect on size and must be called with correct size values. (#3879) [@metarutaiga] -- ImDrawList: PathArcTo() now supports "int num_segments = 0" (new default) and adaptively tessellate. - The adaptive tessellation uses look up tables, tends to be faster than old PathArcTo() while maintaining - quality for large arcs (tessellation quality derived from "style.CircleTessellationMaxError") (#3491) [@thedmd] -- ImDrawList: PathArcToFast() also adaptively tessellate efficiently. This means that large rounded corners - in e.g. hi-dpi settings will generally look better. (#3491) [@thedmd] -- ImDrawList: AddCircle, AddCircleFilled(): Tweaked default segment count calculation to honor MaxError - with more accuracy. Made default segment count always even for better looking result. (#3808) [@thedmd] -- Misc: Added GetAllocatorFunctions() to facilitate sharing allocators across DLL boundaries. (#3836) -- Misc: Added 'debuggers/imgui.gdb' and 'debuggers/imgui.natstepfilter' (along with existing 'imgui.natvis') - scripts to configure popular debuggers into skipping trivial functions when using StepInto. [@rokups] -- Backends: Android: Added native Android backend. (#3446) [@duddel] -- Backends: Win32: Added ImGui_ImplWin32_EnableAlphaCompositing() to facilitate experimenting with - alpha compositing and transparent windows. (#2766, #3447 etc.). -- Backends: OpenGL, Vulkan, DX9, DX10, DX11, DX12, Metal, WebGPU, Allegro: Rework blending equation to - preserve alpha in output buffer (using SrcBlendAlpha = ONE, DstBlendAlpha = ONE_MINUS_SRC_ALPHA consistently - across all backends), facilitating compositing of the output buffer with another buffer. - (#2693, #2764, #2766, #2873, #3447, #3813, #3816) [@ocornut, @thedmd, @ShawnM427, @Ubpa, @aiekick] -- Backends: DX9: Fix to support IMGUI_USE_BGRA_PACKED_COLOR. (#3844) [@Xiliusha] -- Backends: DX9: Fix to support colored glyphs, using newly introduced 'TexPixelsUseColors' info. (#3844) -- Examples: Android: Added Android + GL ES3 example. (#3446) [@duddel] -- Examples: Reworked setup of clear color to be compatible with transparent values. -- CI: Use a dedicated "scheduled" workflow to trigger scheduled builds. Forks may disable this workflow if - scheduled builds builds are not required. [@rokups] -- Log/Capture: Added LogTextV, a va_list variant of LogText. [@PathogenDavid] - - ------------------------------------------------------------------------ - VERSION 1.81 (Released 2021-02-10) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.81 - -Breaking Changes: - -- ListBox helpers: - - Renamed ListBoxHeader(const char* label, ImVec2 size) to BeginListBox(). - - Renamed ListBoxFooter() to EndListBox(). - - Removed ListBoxHeader(const char* label, int items_count, int height_in_items = -1) in favor of specifying size. - In the redirection function, made vertical padding consistent regardless of (items_count <= height_in_items) or not. - - Kept inline redirection function for all threes (will obsolete). -- imgui_freetype: - - Removed ImGuiFreeType::BuildFontAtlas(). Kept inline redirection function. - Prefer using '#define IMGUI_ENABLE_FREETYPE', but there's a runtime selection path available too. - - The shared extra flags parameters (very rarely used) are now stored in ImFontAtlas::FontBuilderFlags. - - Renamed ImFontConfig::RasterizerFlags (used by FreeType) to ImFontConfig::FontBuilderFlags. - - Renamed ImGuiFreeType::XXX flags to ImGuiFreeTypeBuilderFlags_XXX for consistency with other API. - -Other Changes: - -- Viewports Added ImGui::GetMainViewport() as a way to get the bounds and work area of the host display. (#3789, #1542) - - In 'master' branch or without multi-viewports feature enabled: - - GetMainViewport()->Pos is always == (0,0) - - GetMainViewport()->Size is always == io.DisplaySize - - In 'docking' branch and with the multi-viewports feature enabled: - - GetMainViewport() will return information from your host Platform Window. - - In the future, we will support a "no main viewport" mode and this may return bounds of your main monitor. - - For forward compatibility with multi-viewports/multi-monitors: - - Code using (0,0) as a way to signify "upper-left of the host window" should use GetMainViewport()->Pos. - - Code using io.DisplaySize as a way to signify "size of the host window" should use GetMainViewport()->Size. - - We are also exposing a work area in ImGuiViewport ('WorkPos', 'WorkSize' vs 'Pos', 'Size' for full area): - - For a Platform Window, the work area is generally the full area minus space used by menu-bars. - - For a Platform Monitor, the work area is generally the full area minus space used by task-bars. - - All of this has been the case in 'docking' branch for a long time. What we've done is merely merging - a small chunk of the multi-viewport logic into 'master' to standardize some concepts ahead of time. -- Tables: Fixed PopItemWidth() or multi-components items not restoring per-column ItemWidth correctly. (#3760) -- Window: Fixed minor title bar text clipping issue when FramePadding is small/zero and there are no - close button in the window. (#3731) -- SliderInt: Fixed click/drag when v_min==v_max from setting the value to zero. (#3774) [@erwincoumans] - Would also repro with DragFloat() when using ImGuiSliderFlags_Logarithmic with v_min==v_max. -- Menus: Fixed an issue with child-menu auto sizing (issue introduced in 1.80 on 2021/01/25) (#3779) -- InputText: Fixed slightly off ScrollX tracking, noticeable with large values of FramePadding.x. (#3781) -- InputText: Multiline: Fixed padding/cliprect not precisely matching single-line version. (#3781) -- InputText: Multiline: Fixed FramePadding.y worth of vertical offset when aiming with mouse. -- ListBox: Tweaked default height calculation. -- Fonts: imgui_freetype: Facilitated using FreeType integration: [@Xipiryon, @ocornut] - - Use '#define IMGUI_ENABLE_FREETYPE' in imconfig.h should make it work with no other modifications - other than compiling misc/freetype/imgui_freetype.cpp and linking with FreeType. - - Use '#define IMGUI_ENABLE_STB_TRUETYPE' if you somehow need the stb_truetype rasterizer to be - compiled in along with the FreeType one, otherwise it is enabled by default. -- Fonts: imgui_freetype: Added support for colored glyphs as supported by Freetype 2.10+ (for .ttf using CPAL/COLR - tables only). Enable the ImGuiFreeTypeBuilderFlags_LoadColor on a given font. Atlas always output directly - as RGBA8 in this situation. Likely to make sense with IMGUI_USE_WCHAR32. (#3369) [@pshurgal] -- Fonts: Fixed CalcTextSize() width rounding so it behaves more like a ceil. This is in order for text wrapping - to have enough space when provided width precisely calculated with CalcTextSize().x. (#3776) - Note that the rounding of either positions and widths are technically undesirable (e.g. #3437, #791) but - variety of code is currently on it so we are first fixing current behavior before we'll eventually change it. -- Log/Capture: Fix various new line/spacing issue when logging widgets. [@Xipiryon, @ocornut] -- Log/Capture: Improved the ASCII look of various widgets, making large dumps more easily human readable. -- ImDrawList: Fixed AddCircle()/AddCircleFilled() with (rad > 0.0f && rad < 1.0f && num_segments == 0). (#3738) - Would lead to a buffer read overflow. -- ImDrawList: Clarified PathArcTo() need for a_min <= a_max with an assert. -- ImDrawList: Fixed PathArcToFast() handling of a_min > a_max. -- Metrics: Back-ported "Viewports" debug visualizer from 'docking' branch. -- Demo: Added 'Examples->Fullscreen Window' demo using GetMainViewport() values. (#3789) -- Demo: 'Simple Overlay' demo now moves under main menu-bar (if any) using GetMainViewport()'s work area. -- Backends: Win32: Dynamically loading XInput DLL instead of linking with it, facilitate compiling with - old WindowSDK versions or running on Windows 7. (#3646, #3645, #3248, #2716) [@Demonese] -- Backends: Vulkan: Add support for custom Vulkan function loader and VK_NO_PROTOTYPES. (#3759, #3227) [@Hossein-Noroozpour] - User needs to call ImGui_ImplVulkan_LoadFunctions() with their custom loader prior to other functions. -- Backends: Metal: Fixed texture storage mode when building on Mac Catalyst. (#3748) [@Belinsky-L-V] -- Backends: OSX: Fixed mouse position not being reported when mouse buttons other than left one are down. (#3762) [@rokups] -- Backends: WebGPU: Added renderer backend for WebGPU support (imgui_impl_wgpu.cpp) (#3632) [@bfierz] - Please note that WebGPU is currently experimental, will not run on non-beta browsers, and may break. -- Examples: WebGPU: Added Emscripten+WebGPU example. (#3632) [@bfierz] -- Backends: GLFW: Added ImGui_ImplGlfw_InitForOther() initialization call to use with non OpenGL API. (#3632) - - ------------------------------------------------------------------------ - VERSION 1.80 (Released 2021-01-21) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.80 - -Breaking Changes: - -- Added imgui_tables.cpp file! Manually constructed project files will need the new file added! (#3740) -- Backends: moved all backends files (imgui_impl_XXXX.cpp, imgui_impl_XXXX.h) from examples/ to backends/. (#3513) -- Renamed ImDrawList::AddBezierCurve() to ImDrawList::AddBezierCubic(). Kept inline redirection function (will obsolete). -- Renamed ImDrawList::PathBezierCurveTo() to ImDrawList::PathBezierCubicCurveTo(). Kept inline redirection function (will obsolete). -- Removed redirecting functions/enums names that were marked obsolete in 1.60 (April 2018): - - io.RenderDrawListsFn pointer -> use ImGui::GetDrawData() value and call the render function of your backend - - ImGui::IsAnyWindowFocused() -> use ImGui::IsWindowFocused(ImGuiFocusedFlags_AnyWindow) - - ImGui::IsAnyWindowHovered() -> use ImGui::IsWindowHovered(ImGuiHoveredFlags_AnyWindow) - - ImGuiStyleVar_Count_ -> use ImGuiStyleVar_COUNT - - ImGuiMouseCursor_Count_ -> use ImGuiMouseCursor_COUNT -- Removed redirecting functions/enums names that were marked obsolete in 1.61 (May 2018): - - InputFloat (... int decimal_precision ...) -> use InputFloat (... const char* format ...) with format = "%.Xf" where X was value for decimal_precision. - - same for InputFloat2()/InputFloat3()/InputFloat4() variants taking a `int decimal_precision` parameter. -- Removed redirecting functions/enums names that were marked obsolete in 1.63 (August 2018): - - ImGui::IsItemDeactivatedAfterChange() -> use ImGui::IsItemDeactivatedAfterEdit(). - - ImGuiCol_ModalWindowDarkening -> use ImGuiCol_ModalWindowDimBg - - ImGuiInputTextCallback -> use ImGuiTextEditCallback - - ImGuiInputTextCallbackData -> use ImGuiTextEditCallbackData -- If you were still using the old names, while you are cleaning up, considering enabling - IMGUI_DISABLE_OBSOLETE_FUNCTIONS in imconfig.h even temporarily to have a pass at finding - and removing up old API calls, if any remaining. -- Internals: Columns: renamed undocumented/internals ImGuiColumnsFlags_* to ImGuiOldColumnFlags_* to reduce - confusion with Tables API. Keep redirection enums (will obsolete). (#125, #513, #913, #1204, #1444, #2142, #2707) -- Renamed io.ConfigWindowsMemoryCompactTimer to io.ConfigMemoryCompactTimer as the feature now applies - to other data structures. (#2636) - -Other Changes: - -- Tables: added new Tables Beta API as a replacement for old Columns. (#3740, #2957, #125) - Check out 'Demo->Tables' for many demos. - Read API comments in imgui.h for details. Read extra commentary in imgui_tables.cpp. - - Added 16 functions: - - BeginTable(), EndTable() - - TableNextRow(), TableNextColumn(), TableSetColumnIndex() - - TableSetupColumn(), TableSetupScrollFreeze() - - TableHeadersRow(), TableHeader() - - TableGetRowIndex(), TableGetColumnCount(), TableGetColumnIndex(), TableGetColumnName(), TableGetColumnFlags() - - TableGetSortSpecs(), TableSetBgColor() - - Added 3 flags sets: - - ImGuiTableFlags (29 flags for: features, decorations, sizing policies, padding, clipping, scrolling, sorting etc.) - - ImGuiTableColumnFlags (24 flags for: width policies, default settings, sorting options, indentation options etc.) - - ImGuiTableRowFlags (1 flag for: header row) - - Added 2 structures: ImGuiTableSortSpecs, ImGuiTableColumnSortSpecs - - Added 2 enums: ImGuiSortDirection, ImGuiTableBgTarget - - Added 1 style variable: ImGuiStyleVar_CellPadding - - Added 5 style colors: ImGuiCol_TableHeaderBg, ImGuiCol_TableBorderStrong, ImGuiCol_TableBorderLight, ImGuiCol_TableRowBg, ImGuiCol_TableRowBgAlt. -- Tabs: Made it possible to append to an existing tab bar by calling BeginTabBar()/EndTabBar() again. -- Tabs: Fixed using more than 128 tabs in a tab bar (scrolling policy recommended). -- Tabs: Do not display a tooltip if the name already fits over a given tab. (#3521) -- Tabs: Fixed minor/unlikely bug skipping over a button when scrolling left with arrows. -- Tabs: Requested ideal content size (for auto-fit) doesn't affect horizontal scrolling. (#3414) -- Drag and Drop: Fix losing drop source ActiveID (and often source tooltip) when opening a TreeNode() - or CollapsingHeader() while dragging. (#1738) -- Drag and Drop: Fix drag and drop to tie same-size drop targets by chosen the later one. Fixes dragging - into a full-window-sized dockspace inside a zero-padded window. (#3519, #2717) [@Black-Cat] -- Checkbox: Added CheckboxFlags() helper with int* type (internals have a template version, not exposed). -- Clipper: Fixed incorrect end-list positioning when using ImGuiListClipper with 1 item (bug in 1.79). (#3663) [@nyorain] -- InputText: Fixed updating cursor/selection position when a callback altered the buffer in a way - where the byte count is unchanged but the decoded character count changes. (#3587) [@gqw] -- InputText: Fixed switching from single to multi-line while preserving same ID. -- Combo: Fixed using IsItemEdited() after Combo() not matching the return value from Combo(). (#2034) -- DragFloat, DragInt: very slightly increased mouse drag threshold + expressing it as a factor of default value. -- DragFloat, DragInt: added experimental io.ConfigDragClickToInputText feature to enable turning DragXXX widgets - into text input with a simple mouse click-release (without moving). (#3737) -- Nav: Fixed IsItemFocused() from returning false when Nav highlight is hidden because mouse has moved. - It's essentially been always the case but it doesn't make much sense. Instead we will aim at exposing - feedback and control of keyboard/gamepad navigation highlight and mouse hover disable flag. (#787, #2048) -- Metrics: Fixed mishandling of ImDrawCmd::VtxOffset in wireframe mesh renderer. -- Metrics: Rebranded as "Dear ImGui Metrics/Debugger" to clarify its purpose. -- ImDrawList: Added ImDrawList::AddQuadBezierCurve(), ImDrawList::PathQuadBezierCurveTo() quadratic bezier - helpers. (#3127, #3664, #3665) [@aiekick] -- Fonts: Updated GetGlyphRangesJapanese() to include a larger 2999 ideograms selection of Joyo/Jinmeiyo - kanjis, from the previous 1946 ideograms selection. This will consume a some more memory but be generally - much more fitting for Japanese display, until we switch to a more dynamic atlas. (#3627) [@vaiorabbit] -- Log/Capture: fix capture to work on clipped child windows. -- Misc: Made the ItemFlags stack shared, so effectively the ButtonRepeat/AllowKeyboardFocus states - (and others exposed in internals such as PushItemFlag) are inherited by stacked Begin/End pairs, - vs previously a non-child stacked Begin() would reset those flags back to zero for the stacked window. -- Misc: Replaced UTF-8 decoder with one based on branchless one by Christopher Wellons. [@rokups] - Super minor fix handling incomplete UTF-8 contents: if input does not contain enough bytes, decoder - returns IM_UNICODE_CODEPOINT_INVALID and consume remaining bytes (vs old decoded consumed only 1 byte). -- Misc: Fix format warnings when using gnu printf extensions in a setup that supports them (gcc/mingw). (#3592) -- Misc: Made EndFrame() assertion for key modifiers being unchanged during the frame (added in 1.76) more - lenient, allowing full mid-frame releases. This is to accommodate the use of mid-frame modal native - windows calls, which leads backends such as GLFW to send key clearing events on focus loss. (#3575) -- Style: Changed default style.WindowRounding value to 0.0f (matches default for multi-viewports). -- Style: Reduced the size of the resizing grip, made alpha less prominent. -- Style: Classic: Increase the default alpha value of WindowBg to be closer to other styles. -- Demo: Clarify usage of right-aligned items in Demo>Layout>Widgets Width. -- Backends: OpenGL3: Use glGetString(GL_VERSION) query instead of glGetIntegerv(GL_MAJOR_VERSION, ...) - when the later returns zero (e.g. Desktop GL 2.x). (#3530) [@xndcn] -- Backends: OpenGL2: Backup and restore GL_SHADE_MODEL and disable GL_NORMAL_ARRAY state to increase - compatibility with legacy code. (#3671) -- Backends: OpenGL3: Backup and restore GL_PRIMITIVE_RESTART state. (#3544) [@Xipiryon] -- Backends: OpenGL2, OpenGL3: Backup and restore GL_STENCIL_TEST enable state. (#3668) -- Backends: Vulkan: Added support for specifying which sub-pass to reference during VkPipeline creation. (@3579) [@bdero] -- Backends: DX12: Improve Windows 7 compatibility (for D3D12On7) by loading d3d12.dll dynamically. (#3696) [@Mattiwatti] -- Backends: Win32: Fix setting of io.DisplaySize to invalid/uninitialized data after hwnd has been closed. -- Backends: OSX: Fix keypad-enter key not working on MacOS. (#3554) [@rokups, @lfnoise] -- Examples: Apple+Metal: Consolidated/simplified to get closer to other examples. (#3543) [@warrenm] -- Examples: Apple+Metal: Forward events down so OS key combination like Cmd+Q can work. (#3554) [@rokups] -- Examples: Emscripten: Renamed example_emscripten/ to example_emscripten_opengl3/. (#3632) -- Examples: Emscripten: Added 'make serve' helper to spawn a web-server on localhost. (#3705) [@Horki] -- Examples: DirectX12: Move ImGui::Render() call above the first barrier to clarify its lack of effect on the graphics pipe. -- CI: Fix testing for Windows DLL builds. (#3603, #3601) [@iboB] -- Docs: Improved the wiki and added a https://github.com/ocornut/imgui/wiki/Useful-Widgets page. [@Xipiryon] - [2021/05/20: moved to https://github.com/ocornut/imgui/wiki/Useful-Extensions] -- Docs: Split examples/README.txt into docs/BACKENDS.md and docs/EXAMPLES.md, and improved them. -- Docs: Consistently renamed all occurrences of "binding" and "back-end" to "backend" in comments and docs. - - ------------------------------------------------------------------------ - VERSION 1.79 (Released 2020-10-08) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.79 - -Breaking Changes: - -- Fonts: Removed ImFont::DisplayOffset in favor of ImFontConfig::GlyphOffset. DisplayOffset was applied - after scaling and not very meaningful/useful outside of being needed by the default ProggyClean font. - It was also getting in the way of better font scaling, so let's get rid of it now! - If you used DisplayOffset it was probably in association to rasterizing a font at a specific size, - in which case the corresponding offset may be reported into GlyphOffset. (#1619) - If you scaled this value after calling AddFontDefault(), this is now done automatically. -- ImGuiListClipper: Renamed constructor parameters which created an ambiguous alternative to using - the ImGuiListClipper::Begin() function, with misleading edge cases. Always use ImGuiListClipper::Begin()! - Kept inline redirection function (will obsolete). - (note: imgui_memory_editor <0.40 from imgui_club/ used this old clipper API. Update your copy if needed). -- Style: Renamed style.TabMinWidthForUnselectedCloseButton to style.TabMinWidthForCloseButton. -- Renamed ImGuiSliderFlags_ClampOnInput to ImGuiSliderFlags_AlwaysClamp. Kept redirection enum (will obsolete). -- Renamed OpenPopupContextItem() back to OpenPopupOnItemClick(), REVERTED CHANGE FROM 1.77. - For variety of reason this is more self-explanatory and less error-prone. Kept inline redirection function. -- Removed return value from OpenPopupOnItemClick() - returned true on mouse release on an item - because it - is inconsistent with other popups API and makes others misleading. It's also and unnecessary: you can - use IsWindowAppearing() after BeginPopup() for a similar result. - -Other Changes: - -- Window: Fixed using non-zero pivot in SetNextWindowPos() when the window is collapsed. (#3433) -- Nav: Fixed navigation resuming on first visible item when using gamepad. [@rokups] -- Nav: Fixed using Alt to toggle the Menu layer when inside a Modal window. (#787) -- Scrolling: Fixed SetScrollHere(0) functions edge snapping when called during a frame where - ContentSize is changing (issue introduced in 1.78). (#3452). -- InputText: Added support for Page Up/Down in InputTextMultiline(). (#3430) [@Xipiryon] -- InputText: Added selection helpers in ImGuiInputTextCallbackData(). -- InputText: Added ImGuiInputTextFlags_CallbackEdit to modify internally owned buffer after an edit. - (note that InputText() already returns true on edit, the callback is useful mainly to manipulate the - underlying buffer while focus is active). -- InputText: Fixed using ImGuiInputTextFlags_Password with InputTextMultiline(). (#3427, #3428) - It is a rather unusual or useless combination of features but no reason it shouldn't work! -- InputText: Fixed minor scrolling glitch when erasing trailing lines in InputTextMultiline(). -- InputText: Fixed cursor being partially covered after using Ctrl+End key. -- InputText: Fixed callback's helper DeleteChars() function when cursor is inside the deleted block. (#3454) -- InputText: Made pressing Down arrow on the last line when it doesn't have a carriage return not move to - the end of the line (so it is consistent with Up arrow, and behave same as Notepad and Visual Studio. - Note that some other text editors instead would move the cursor to the end of the line). [@Xipiryon] -- DragFloat, DragScalar: Fixed ImGuiSliderFlags_ClampOnInput not being honored in the special case - where v_min == v_max. (#3361) -- SliderInt, SliderScalar: Fixed reaching of maximum value with inverted integer min/max ranges, both - with signed and unsigned types. Added reverse Sliders to Demo. (#3432, #3449) [@rokups] -- Text: Bypass unnecessary formatting when using the TextColored()/TextWrapped()/TextDisabled() helpers - with a "%s" format string. (#3466) -- CheckboxFlags: Display mixed-value/tristate marker when passed flags that have multiple bits set and - stored value matches neither zero neither the full set. -- BeginMenuBar: Fixed minor bug where CursorPosMax gets pushed to CursorPos prior to calling BeginMenuBar(), - so e.g. calling the function at the end of a window would often add +ItemSpacing.y to scrolling range. -- TreeNode, CollapsingHeader: Made clicking on arrow toggle toggle the open state on the Mouse Down event - rather than the Mouse Down+Up sequence, even if the _OpenOnArrow flag isn't set. This is standard behavior - and amends the change done in 1.76 which only affected cases were _OpenOnArrow flag was set. - (This is also necessary to support full multi/range-select/drag and drop operations.) -- Tabs: Added TabItemButton() to submit tab that behave like a button. (#3291) [@Xipiryon] -- Tabs: Added ImGuiTabItemFlags_Leading and ImGuiTabItemFlags_Trailing flags to position tabs or button - at either end of the tab bar. Those tabs won't be part of the scrolling region, and when reordering cannot - be moving outside of their section. Most often used with TabItemButton(). (#3291) [@Xipiryon] -- Tabs: Added ImGuiTabItemFlags_NoReorder flag to disable reordering a given tab. -- Tabs: Keep tab item close button visible while dragging a tab (independent of hovering state). -- Tabs: Fixed a small bug where closing a tab that is not selected would leave a tab hole for a frame. -- Tabs: Fixed a small bug where scrolling buttons (with ImGuiTabBarFlags_FittingPolicyScroll) would - generate an unnecessary extra draw call. -- Tabs: Fixed a small bug where toggling a tab bar from Reorderable to not Reorderable would leave - tabs reordered in the tab list popup. [@Xipiryon] -- Columns: Fix inverted ClipRect being passed to renderer when using certain primitives inside of - a fully clipped column. (#3475) [@szreder] -- Popups, Tooltips: Fix edge cases issues with positioning popups and tooltips when they are larger than - viewport on either or both axes. [@Rokups] -- Fonts: AddFontDefault() adjust its vertical offset based on floor(size/13) instead of always +1. - Was previously done by altering DisplayOffset.y but wouldn't work for DPI scaled font. -- Metrics: Various tweaks, listing windows front-to-back, greying inactive items when possible. -- Demo: Add simple InputText() callbacks demo (aside from the more elaborate ones in 'Examples->Console'). -- Backends: OpenGL3: Fix to avoid compiling/calling glBindSampler() on ES or pre-3.3 contexts which have - the defines set by a loader. (#3467, #1985) [@jjwebb] -- Backends: Vulkan: Some internal refactor aimed at allowing multi-viewport feature to create their - own render pass. (#3455, #3459) [@FunMiles] -- Backends: DX12: Clarified that imgui_impl_dx12 can be compiled on 32-bit systems by redefining - the ImTextureID to be 64-bit (e.g. '#define ImTextureID ImU64' in imconfig.h). (#301) -- Backends: DX12: Fix debug layer warning when scissor rect is zero-sized. (#3472, #3462) [@StoneWolf] -- Examples: Vulkan: Reworked buffer resize handling, fix for Linux/X11. (#3390, #2626) [@RoryO] -- Examples: Vulkan: Switch validation layer to use "VK_LAYER_KHRONOS_validation" instead of - "VK_LAYER_LUNARG_standard_validation" which is deprecated (#3459) [@FunMiles] -- Examples: DX12: Enable breaking on any warning/error when debug interface is enabled. -- Examples: DX12: Added '#define ImTextureID ImU64' in project and build files to also allow building - on 32-bit systems. Added project to default Visual Studio solution file. (#301) - - ------------------------------------------------------------------------ - VERSION 1.78 (Released 2020-08-18) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.78 - -Breaking Changes: - -- Obsoleted use of the trailing 'float power=1.0f' parameter for those functions: [@Shironekoben, @ocornut] - - DragFloat(), DragFloat2(), DragFloat3(), DragFloat4(), DragFloatRange2(), DragScalar(), DragScalarN() - - SliderFloat(), SliderFloat2(), SliderFloat3(), SliderFloat4(), SliderScalar(), SliderScalarN() - - VSliderFloat(), VSliderScalar() - Replaced the final 'float power=1.0f' argument with ImGuiSliderFlags defaulting to 0 (as with all our flags). - Worked out a backward-compatibility scheme so hopefully most C++ codebase should not be affected. - In short, when calling those functions: - - If you omitted the 'power' parameter (likely!), you are not affected. - - If you set the 'power' parameter to 1.0f (same as previous default value): - - Your compiler may warn on float>int conversion. - - Everything else will work (but will assert if IMGUI_DISABLE_OBSOLETE_FUNCTIONS is defined). - - You can replace the 1.0f value with 0 to fix the warning, and be technically correct. - - If you set the 'power' parameter to >1.0f (to enable non-linear editing): - - Your compiler may warn on float>int conversion. - - Code will assert at runtime for IM_ASSERT(power == 1.0f) with the following assert description: - "Call Drag function with ImGuiSliderFlags_Logarithmic instead of using the old 'float power' function!". - - In case asserts are disabled, the code will not crash and enable the _Logarithmic flag. - - You can replace the >1.0f value with ImGuiSliderFlags_Logarithmic to fix the warning/assert - and get a _similar_ effect as previous uses of power >1.0f. - See https://github.com/ocornut/imgui/issues/3361 for all details. - For shared code, you can version check at compile-time with `#if IMGUI_VERSION_NUM >= 17704`. - Kept inline redirection functions (will obsolete) apart for: DragFloatRange2(), VSliderFloat(), VSliderScalar(). - For those three the 'float power=1.0f' version was removed directly as they were most unlikely ever used. -- DragInt, DragFloat, DragScalar: Obsoleted use of v_min > v_max to lock edits (introduced in 1.73, this was not - demoed nor documented much, will be replaced a more generic ReadOnly feature). - -Other Changes: - -- Nav: Fixed clicking on void (behind any windows) from not clearing the focused window. - This would be problematic e.g. in situation where the application relies on io.WantCaptureKeyboard - flag being cleared accordingly. (bug introduced in 1.77 WIP on 2020/06/16) (#3344, #2880) -- Window: Fixed clicking over an item which hovering has been disabled (e.g inhibited by a popup) - from marking the window as moved. -- Drag, Slider: Added ImGuiSliderFlags parameters. - - For float functions they replace the old trailing 'float power=1.0' parameter. - (See #3361 and the "Breaking Changes" block above for all details). - - Added ImGuiSliderFlags_Logarithmic flag to enable logarithmic editing - (generally more precision around zero), as a replacement to the old 'float power' parameter - which was obsoleted. (#1823, #1316, #642) [@Shironekoben, @AndrewBelt] - - Added ImGuiSliderFlags_ClampOnInput flag to force clamping value when using - CTRL+Click to type in a value manually. (#1829, #3209, #946, #413). - [note: RENAMED to ImGuiSliderFlags_AlwaysClamp in 1.79]. - - Added ImGuiSliderFlags_NoRoundToFormat flag to disable rounding underlying - value to match precision of the display format string. (#642) - - Added ImGuiSliderFlags_NoInput flag to disable turning widget into a text input - with CTRL+Click or Nav Enter. -- Nav, Slider: Fix using keyboard/gamepad controls with certain logarithmic sliders where - pushing a direction near zero values would be cancelled out. [@Shironekoben] -- DragFloatRange2, DragIntRange2: Fixed an issue allowing to drag out of bounds when both - min and max value are on the same value. (#1441) -- InputText, ImDrawList: Fixed assert triggering when drawing single line of text with more - than ~16 KB characters. (Note that current code is going to show corrupted display if after - clipping, more than 16 KB characters are visible in the same low-level ImDrawList::RenderText() - call. ImGui-level functions such as TextUnformatted() are not affected. This is quite rare - but it will be addressed later). (#3349) -- Selectable: Fixed highlight/hit extent when used with horizontal scrolling (in or outside columns). - Also fixed related text clipping when used in a column after the first one. (#3187, #3386) -- Scrolling: Avoid SetScroll, SetScrollFromPos functions from snapping on the edge of scroll - limits when close-enough by (WindowPadding - ItemPadding), which was a tweak with too many - side-effects. The behavior is still present in SetScrollHere functions as they are more explicitly - aiming at making widgets visible. May later be moved to a flag. -- Tabs: Allow calling SetTabItemClosed() after a tab has been submitted (will process next frame). -- InvisibleButton: Made public a small selection of ImGuiButtonFlags (previously in imgui_internal.h) - and allowed to pass them to InvisibleButton(): ImGuiButtonFlags_MouseButtonLeft/Right/Middle. - This is a small but rather important change because lots of multi-button behaviors could previously - only be achieved using lower-level/internal API. Now also available via high-level InvisibleButton() - with is a de facto versatile building block to creating custom widgets with the public API. -- Fonts: Fixed ImFontConfig::GlyphExtraSpacing and ImFontConfig::PixelSnapH settings being pulled - from the merged/target font settings when merging fonts, instead of being pulled from the source - font settings. -- ImDrawList: Thick anti-aliased strokes (> 1.0f) with integer thickness now use a texture-based - path, reducing the amount of vertices/indices and CPU/GPU usage. (#3245) [@Shironekoben] - - This change will facilitate the wider use of thick borders in future style changes. - - Requires an extra bit of texture space (~64x64 by default), relies on GPU bilinear filtering. - - Set `io.AntiAliasedLinesUseTex = false` to disable rendering using this method. - - Clear `ImFontAtlasFlags_NoBakedLines` in ImFontAtlas::Flags to disable baking data in texture. -- ImDrawList: changed AddCircle(), AddCircleFilled() default num_segments from 12 to 0, effectively - enabling auto-tessellation by default. Tweak tessellation in Style Editor->Rendering section, or - by modifying the 'style.CircleSegmentMaxError' value. [@ShironekoBen] -- ImDrawList: Fixed minor bug introduced in 1.75 where AddCircle() with 12 segments would generate - an extra vertex. (This bug was mistakenly marked as fixed in earlier 1.77 release). [@ShironekoBen] -- Demo: Improved "Custom Rendering"->"Canvas" demo with a grid, scrolling and context menu. - Also showcase using InvisibleButton() with multiple mouse buttons flags. -- Demo: Improved "Layout & Scrolling" -> "Clipping" section. -- Demo: Improved "Layout & Scrolling" -> "Child Windows" section. -- Style Editor: Added preview of circle auto-tessellation when editing the corresponding value. -- Backends: OpenGL3: Added support for glad2 loader. (#3330) [@moritz-h] -- Backends: Allegro 5: Fixed horizontal scrolling direction with mouse wheel / touch pads (it seems - like Allegro 5 reports it differently from GLFW and SDL). (#3394, #2424, #1463) [@nobody-special666] -- Examples: Vulkan: Fixed GLFW+Vulkan and SDL+Vulkan clear color not being set. (#3390) [@RoryO] -- CI: Emscripten has stopped their support for their fastcomp backend, switching to latest sdk [@Xipiryon] - - ------------------------------------------------------------------------ - VERSION 1.77 (Released 2020-06-29) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.77 - -Breaking Changes: - -- Removed unnecessary ID (first arg) of ImFontAtlas::AddCustomRectRegular() function. Please - note that this is a Beta api and will likely be reworked in order to support multi-DPI across - multiple monitors. -- Renamed OpenPopupOnItemClick() to OpenPopupContextItem(). Kept inline redirection function (will obsolete). - [NOTE: THIS WAS REVERTED IN 1.79] -- Removed BeginPopupContextWindow(const char*, int mouse_button, bool also_over_items) in favor - of BeginPopupContextWindow(const char*, ImGuiPopupFlags flags) with ImGuiPopupFlags_NoOverItems. - Kept inline redirection function (will obsolete). -- Removed obsoleted CalcItemRectClosestPoint() entry point (has been asserting since December 2017). - -Other Changes: - -- TreeNode: Fixed bug where BeginDragDropSource() failed when the _OpenOnDoubleClick flag is - enabled (bug introduced in 1.76, but pre-1.76 it would also fail unless the _OpenOnArrow - flag was also set, and _OpenOnArrow is frequently set along with _OpenOnDoubleClick). -- TreeNode: Fixed bug where dragging a payload over a TreeNode() with either _OpenOnDoubleClick - or _OpenOnArrow would open the node. (#143) -- Windows: Fix unintended feedback loops when resizing windows close to main viewport edges. [@rokups] -- Tabs: Added style.TabMinWidthForUnselectedCloseButton settings: - - Set to 0.0f (default) to always make a close button appear on hover (same as Chrome, VS). - - Set to FLT_MAX to only display a close button when selected (merely hovering is not enough). - - Set to an intermediary value to toggle behavior based on width (same as Firefox). -- Tabs: Added a ImGuiTabItemFlags_NoTooltip flag to disable the tooltip for individual tab item - (vs ImGuiTabBarFlags_NoTooltip for entire tab bar). [@Xipiryon] -- Popups: All functions capable of opening popups (OpenPopup*, BeginPopupContext*) now take a new - ImGuiPopupFlags sets of flags instead of a mouse button index. The API is automatically backward - compatible as ImGuiPopupFlags is guaranteed to hold mouse button index in the lower bits. -- Popups: Added ImGuiPopupFlags_NoOpenOverExistingPopup for OpenPopup*/BeginPopupContext* functions - to first test for the presence of another popup at the same level. -- Popups: Added ImGuiPopupFlags_NoOpenOverItems for BeginPopupContextWindow() - similar to testing - for !IsAnyItemHovered() prior to doing an OpenPopup(). -- Popups: Added ImGuiPopupFlags_AnyPopupId and ImGuiPopupFlags_AnyPopupLevel flags for IsPopupOpen(), - allowing to check if any popup is open at the current level, if a given popup is open at any popup - level, if any popup is open at all. -- Popups: Fix an edge case where programmatically closing a popup while clicking on its empty space - would attempt to focus it and close other popups. (#2880) -- Popups: Fix BeginPopupContextVoid() when clicking over the area made unavailable by a modal. (#1636) -- Popups: Clarified some of the comments and function prototypes. -- Modals: BeginPopupModal() doesn't set the ImGuiWindowFlags_NoSavedSettings flag anymore, and will - not always be auto-centered. Note that modals are more similar to regular windows than they are to - popups, so api and behavior may evolve further toward embracing this. (#915, #3091) - Enforce centering using e.g. SetNextWindowPos(io.DisplaySize * 0.5f, ImGuiCond_Appearing, ImVec2(0.5f,0.5f)). -- Metrics: Added a "Settings" section with some details about persistent ini settings. -- Nav, Menus: Fix vertical wrap-around in menus or popups created with multiple appending calls to - BeginMenu()/EndMenu() or BeginPopup(0/EndPopup(). (#3223, #1207) [@rokups] -- Drag and Drop: Fixed unintended fallback "..." tooltip display during drag operation when - drag source uses _SourceNoPreviewTooltip flags. (#3160) [@rokups] -- Columns: Lower overhead on column switches and switching to background channel. - Benefits Columns but was primarily made with Tables in mind! -- Fonts: Fix GetGlyphRangesKorean() end-range to end at 0xD7A3 (instead of 0xD79D). (#348, #3217) [@marukrap] -- ImDrawList: Fixed an issue where draw command merging or primitive unreserve while crossing the - VtxOffset boundary would lead to draw commands with wrong VtxOffset. (#3129, #3163, #3232, #2591) - [@thedmd, @Shironekoben, @sergeyn, @ocornut] -- ImDrawList, ImDrawListSplitter, Columns: Fixed an issue where changing channels with different - TextureId, VtxOffset would incorrectly apply new settings to draw channels. (#3129, #3163) - [@ocornut, @thedmd, @Shironekoben] -- ImDrawList, ImDrawListSplitter, Columns: Fixed an issue where starting a split when current - VtxOffset was not zero would lead to draw commands with wrong VtxOffset. (#2591) -- ImDrawList, ImDrawListSplitter, Columns: Fixed an issue where starting a split right after - a callback draw command would incorrectly override the callback draw command. -- Misc, Freetype: Fix for rare case where FT_Get_Char_Index() succeeds but FT_Load_Glyph() fails. -- Docs: Improved and moved font documentation to docs/FONTS.md so it can be readable on the web. - Updated various links/wiki accordingly. Added FAQ entry about DPI. (#2861) [@ButternCream, @ocornut] -- CI: Added CI test to verify we're never accidentally dragging libstdc++ (on some compiler setups, - static constructors for non-pod data seems to drag in libstdc++ due to thread-safety concerns). - Fixed a static constructor which led to this dependency on some compiler setups. [@rokups] -- Backends: Win32: Support for #define NOGDI, won't try to call GetDeviceCaps(). (#3137, #2327) -- Backends: Win32: Fix _WIN32_WINNT < 0x0600 (MinGW defaults to 0x502 == Windows 2003). (#3183) -- Backends: SDL: Report a zero display-size when window is minimized, consistent with other backends, - making more render/clipping code use an early out path. -- Backends: OpenGL: Fixed handling of GL 4.5+ glClipControl(GL_UPPER_LEFT) by inverting the - projection matrix top and bottom values. (#3143, #3146) [@u3shit] -- Backends: OpenGL: On OSX, if unspecified by app, made default GLSL version 150. (#3199) [@albertvaka] -- Backends: OpenGL: Fixed loader auto-detection to not interfere with ES2/ES3 defines. (#3246) [@funchal] -- Backends: Vulkan: Fixed error in if initial frame has no vertices. (#3177) -- Backends: Vulkan: Fixed edge case where render callbacks wouldn't be called if the ImDrawData - structure didn't have any vertices. (#2697) [@kudaba] -- Backends: OSX: Added workaround to avoid fast mouse clicks. (#3261, #1992, #2525) [@nburrus] -- Examples: GLFW+Vulkan, SDL+Vulkan: Fix for handling of minimized windows. (#3259) -- Examples: Apple: Fixed example_apple_metal and example_apple_opengl2 using imgui_impl_osx.mm - not forwarding right and center mouse clicks. (#3260) [@nburrus] - - ------------------------------------------------------------------------ - VERSION 1.76 (Released 2020-04-12) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.76 - -Other Changes: - -- Drag and Drop, Nav: Disabling navigation arrow keys when drag and drop is active. In the docking - branch pressing arrow keys while dragging a window from a tab could trigger an assert. (#3025) -- BeginMenu: Using same ID multiple times appends content to a menu. (#1207) [@rokups] -- BeginMenu: Fixed a bug where SetNextWindowXXX data before a BeginMenu() would not be cleared - when the menu is not open. (#3030) -- InputText: Fixed password fields displaying ASCII spaces as blanks instead of using the '*' - glyph. (#2149, #515) -- Selectable: Fixed honoring style.SelectableTextAlign with unspecified size. (#2347, #2601) -- Selectable: Allow using ImGuiSelectableFlags_SpanAllColumns in other columns than first. (#125) -- TreeNode: Made clicking on arrow with _OpenOnArrow toggle the open state on the Mouse Down - event rather than the Mouse Down+Up sequence (this is rather standard behavior). -- ColorButton: Added ImGuiColorEditFlags_NoBorder flag to remove the border normally enforced - by default for standalone ColorButton. -- Nav: Fixed interactions with ImGuiListClipper, so e.g. Home/End result would not clip the - landing item on the landing frame. (#787) -- Nav: Fixed currently focused item from ever being clipped by ItemAdd(). (#787) -- Scrolling: Fixed scrolling centering API leading to non-integer scrolling values and initial - cursor position. This would often get fixed after the fix item submission, but using the - ImGuiListClipper as the first thing after Begin() could largely break size calculations. (#3073) -- Added optional support for Unicode plane 1-16 (#2538, #2541, #2815) [@cloudwu, @samhocevar] - - Compile-time enable with '#define IMGUI_USE_WCHAR32' in imconfig.h. - - More consistent handling of unsupported code points (0xFFFD). - - Surrogate pairs are supported when submitting UTF-16 data via io.AddInputCharacterUTF16(), - allowing for more complete CJK input. - - sizeof(ImWchar) goes from 2 to 4. IM_UNICODE_CODEPOINT_MAX goes from 0xFFFF to 0x10FFFF. - - Various structures such as ImFont, ImFontGlyphRangesBuilder will use more memory, this - is currently not particularly efficient. -- Columns: undid the change in 1.75 were Columns()/BeginColumns() were preemptively limited - to 64 columns with an assert. (#3037, #125) -- Window: Fixed a bug with child window inheriting ItemFlags from their parent when the child - window also manipulate the ItemFlags stack. (#3024) [@Stanbroek] -- Font: Fixed non-ASCII space occasionally creating unnecessary empty looking polygons. -- Misc: Added an explicit compile-time test for non-scoped IM_ASSERT() macros to redirect users - to a solution rather than encourage people to add braces in the codebase. -- Misc: Added additional checks in EndFrame() to verify that io.KeyXXX values have not been - tampered with between NewFrame() and EndFrame(). -- Misc: Made default clipboard handlers for Win32 and OSX use a buffer inside the main context - instead of a static buffer, so it can be freed properly on Shutdown. (#3110) -- Misc, Freetype: Fixed support for IMGUI_STB_RECT_PACK_FILENAME compile time directive - in imgui_freetype.cpp (matching support in the regular code path). (#3062) [@DonKult] -- Metrics: Made Tools section more prominent. Showing wire-frame mesh directly hovering the ImDrawCmd - instead of requiring to open it. Added options to disable bounding box and mesh display. - Added notes on inactive/gc-ed windows. -- Demo: Added black and white and color gradients to Demo>Examples>Custom Rendering. -- CI: Added more tests on the continuous-integration server: extra warnings for Clang/GCC, building - SDL+Metal example, building imgui_freetype.cpp, more compile-time imconfig.h settings: disabling - obsolete functions, enabling 32-bit ImDrawIdx, enabling 32-bit ImWchar, disabling demo. [@rokups] -- Backends: OpenGL3: Fixed version check mistakenly testing for GL 4.0+ instead of 3.2+ to enable - ImGuiBackendFlags_RendererHasVtxOffset, leaving 3.2 contexts without it. (#3119, #2866) [@wolfpld] -- Backends: OpenGL3: Added include support for older glbinding 2.x loader. (#3061) [@DonKult] -- Backends: Win32: Added ImGui_ImplWin32_EnableDpiAwareness(), ImGui_ImplWin32_GetDpiScaleForHwnd(), - ImGui_ImplWin32_GetDpiScaleForMonitor() helpers functions (backported from the docking branch). - Those functions makes it easier for example apps to support hi-dpi features without setting up - a manifest. -- Backends: Win32: Calling AddInputCharacterUTF16() from WM_CHAR message handler in order to support - high-plane surrogate pairs. (#2815) [@cloudwu, @samhocevar] -- Backends: SDL: Added ImGui_ImplSDL2_InitForMetal() for API consistency (even though the function - currently does nothing). -- Backends: SDL: Fixed mapping for ImGuiKey_KeyPadEnter. (#3031) [@Davido71] -- Examples: Win32+DX12: Fixed resizing main window, enabled debug layer. (#3087, #3115) [@sergeyn] -- Examples: SDL+DX11: Fixed resizing main window. (#3057) [@joeslay] -- Examples: Added SDL+Metal example application. (#3017) [@coding-jackalope] - - ------------------------------------------------------------------------ - VERSION 1.75 (Released 2020-02-10) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.75 - -Breaking Changes: - -- Removed redirecting functions/enums names that were marked obsolete in 1.53 (December 2017): - - ShowTestWindow() -> use ShowDemoWindow() - - IsRootWindowFocused() -> use IsWindowFocused(ImGuiFocusedFlags_RootWindow) - - IsRootWindowOrAnyChildFocused() -> use IsWindowFocused(ImGuiFocusedFlags_RootAndChildWindows) - - SetNextWindowContentWidth(w) -> use SetNextWindowContentSize(ImVec2(w, 0.0f) - - GetItemsLineHeightWithSpacing() -> use GetFrameHeightWithSpacing() - - ImGuiCol_ChildWindowBg -> use ImGuiCol_ChildBg - - ImGuiStyleVar_ChildWindowRounding -> use ImGuiStyleVar_ChildRounding - - ImGuiTreeNodeFlags_AllowOverlapMode -> use ImGuiTreeNodeFlags_AllowItemOverlap - - IMGUI_DISABLE_TEST_WINDOWS -> use IMGUI_DISABLE_DEMO_WINDOWS - If you were still using the old names, while you are cleaning up, considering enabling - IMGUI_DISABLE_OBSOLETE_FUNCTIONS in imconfig.h even temporarily to have a pass at finding - and removing up old API calls, if any remaining. -- Removed implicit default parameter to IsMouseDragging(int button = 0) to be consistent - with other mouse functions (none of the other functions have it). -- Obsoleted calling ImDrawList::PrimReserve() with a negative count (which was vaguely - documented and rarely if ever used). Instead we added an explicit PrimUnreserve() API - which can be implemented faster. Also clarified pre-existing constraints which weren't - documented (can only unreserve from the last reserve call). If you suspect you ever - used that feature before (very unlikely, but grep for call to PrimReserve in your code), - you can #define IMGUI_DEBUG_PARANOID in imconfig.h to catch existing calls. [@ShironekoBen] -- ImDrawList::AddCircle()/AddCircleFilled() functions don't accept negative radius. -- Limiting Columns()/BeginColumns() api to 64 columns with an assert. While the current code - technically supports it, future code may not so we're putting the restriction ahead. - [Undid that change in 1.76] -- imgui_internal.h: changed ImRect() default constructor initializes all fields to 0.0f instead - of (FLT_MAX,FLT_MAX,-FLT_MAX,-FLT_MAX). If you used ImRect::Add() to create bounding boxes by - adding points into it without explicit initialization, you may need to fix your initial value. - -Other Changes: - -- Inputs: Added ImGuiMouseButton enum for convenience (e.g. ImGuiMouseButton_Right=1). - We forever guarantee that the existing value will not changes so existing code is free to use 0/1/2. -- Nav: Fixed a bug where the initial CTRL+Tab press while in a child window sometimes selected - the current root window instead of always selecting the previous root window. (#787) -- ColorEdit: Fix label alignment when using ImGuiColorEditFlags_NoInputs. (#2955) [@rokups] -- ColorEdit: In HSV display of a RGB stored value, attempt to locally preserve Saturation - when Value==0.0 (similar to changes done in 1.73 for Hue). Removed Hue editing lock since - those improvements in 1.73 makes them unnecessary. (#2722, #2770). [@rokups] -- ColorEdit: "Copy As" context-menu tool shows hex values with a '#' prefix instead of '0x'. -- ColorEdit: "Copy As" content-menu tool shows hex values both with/without alpha when available. -- InputText: Fix corruption or crash when executing undo after clearing input with ESC, as a - byproduct we are allowing to later undo the revert with a CTRL+Z. (#3008). -- InputText: Fix using a combination of _CallbackResize (e.g. for std::string binding), along with the - _EnterReturnsTrue flag along with the rarely used property of using an InputText without persisting - user-side storage. Previously if you had e.g. a local unsaved std::string and reading result back - from the widget, the user string object wouldn't be resized when Enter key was pressed. (#3009) -- MenuBar: Fix minor clipping issue where occasionally a menu text can overlap the right-most border. -- Window: Fix SetNextWindowBgAlpha(1.0f) failing to override alpha component. (#3007) [@Albog] -- Window: When testing for the presence of the ImGuiWindowFlags_NoBringToFrontOnFocus flag we - test both the focused/clicked window (which could be a child window) and the root window. -- ImDrawList: AddCircle(), AddCircleFilled() API can now auto-tessellate when provided a segment - count of zero. Alter tessellation quality with 'style.CircleSegmentMaxError'. [@ShironekoBen] -- ImDrawList: Add AddNgon(), AddNgonFilled() API with a guarantee on the explicit segment count. - In the current branch they are essentially the same as AddCircle(), AddCircleFilled() but as - we will rework the circle rendering functions to use textures and automatic segment count - selection, those new api can fill a gap. [@ShironekoBen] -- Columns: ImDrawList::Channels* functions now work inside columns. Added extra comments to - suggest using user-owned ImDrawListSplitter instead of ImDrawList functions. [@rokups] -- Misc: Added ImGuiMouseCursor_NotAllowed enum so it can be used by more shared widgets. [@rokups] -- Misc: Added IMGUI_DISABLE compile-time definition to make all headers and sources empty. -- Misc: Disable format checks when using stb_printf, to allow using extra formats. - Made IMGUI_USE_STB_SPRINTF a properly documented imconfig.h flag. (#2954) [@loicmolinari] -- Misc: Added misc/single_file/imgui_single_file.h, We use this to validate compiling all *.cpp - files in a same compilation unit. Actual users of that technique (also called "Unity builds") - can generally provide this themselves, so we don't really recommend you use this. [@rokups] -- CI: Added PVS-Studio static analysis on the continuous-integration server. [@rokups] -- Backends: GLFW, SDL, Win32, OSX, Allegro: Added support for ImGuiMouseCursor_NotAllowed. [@rokups] -- Backends: GLFW: Added support for the missing mouse cursors newly added in GLFW 3.4+. [@rokups] -- Backends: SDL: Wayland: use SDL_GetMouseState (because there is no global mouse state available - on Wayland). (#2800, #2802) [@NeroBurner] -- Backends: GLFW, SDL: report Windows key (io.KeySuper) as always released. Neither GLFW nor SDL can - correctly report the key release in every cases (e.g. when using Win+V) causing problems with some - widgets. The next release of GLFW (3.4+) will have a fix for it. However since it is both difficult - and discouraged to make use of this key for Windows application anyway, we just hide it. (#2976) -- Backends: Win32: Added support for #define IMGUI_IMPL_WIN32_DISABLE_GAMEPAD to disable all - XInput using code, and IMGUI_IMPL_WIN32_DISABLE_LINKING_XINPUT to disable linking with XInput, - the later may be problematic if compiling with recent Windows SDK and you want your app to run - on Windows 7. You can instead try linking with Xinput9_1_0.lib instead. (#2716) -- Backends: Glut: Improved FreeGLUT support for MinGW. (#3004) [@podsvirov] -- Backends: Emscripten: Avoid forcefully setting IMGUI_DISABLE_FILE_FUNCTIONS. (#3005) [@podsvirov] -- Examples: OpenGL: Explicitly adding -DIMGUI_IMPL_OPENGL_LOADER_GL3W to Makefile to match linking - settings (otherwise if another loader such as Glew is accessible, the OpenGL3 backend might - automatically use it). (#2919, #2798) -- Examples: OpenGL: Added support for glbinding OpenGL loader. (#2870) [@rokups] -- Examples: Emscripten: Demonstrating embedding fonts in Makefile and code. (#2953) [@Oipo] -- Examples: Metal: Wrapped main loop in @autoreleasepool block to ensure allocations get freed - even if underlying system event loop gets paused due to app nap. (#2910, #2917) [@bear24rw] - - ------------------------------------------------------------------------ - VERSION 1.74 (Released 2019-11-25) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.74 - -Breaking Changes: - -- Removed redirecting functions/enums names that were marked obsolete in 1.52 (October 2017): - - Begin() [old 5 args version] -> use Begin() [3 args], use SetNextWindowSize() SetNextWindowBgAlpha() if needed - - IsRootWindowOrAnyChildHovered() -> use IsWindowHovered(ImGuiHoveredFlags_RootAndChildWindows) - - AlignFirstTextHeightToWidgets() -> use AlignTextToFramePadding() - - SetNextWindowPosCenter() -> use SetNextWindowPos() with a pivot of (0.5f, 0.5f) - - ImFont::Glyph -> use ImFontGlyph - If you were still using the old names, read "API Breaking Changes" section of imgui.cpp to find out - the new names or equivalent features, or see how they were implemented until 1.73. -- Inputs: Fixed a miscalculation in the keyboard/mouse "typematic" repeat delay/rate calculation, used - by keys and e.g. repeating mouse buttons as well as the GetKeyPressedAmount() function. - If you were using a non-default value for io.KeyRepeatRate (previous default was 0.250), you can - add +io.KeyRepeatDelay to it to compensate for the fix. - The function was triggering on: 0.0 and (delay+rate*N) where (N>=1). Fixed formula responds to (N>=0). - Effectively it made io.KeyRepeatRate behave like it was set to (io.KeyRepeatRate + io.KeyRepeatDelay). - Fixed the code and altered default io.KeyRepeatRate,Delay from 0.250,0.050 to 0.300,0.050 to compensate. - If you never altered io.KeyRepeatRate nor used GetKeyPressedAmount() this won't affect you. -- Misc: Renamed IMGUI_DISABLE_FORMAT_STRING_FUNCTIONS to IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS. (#1038) -- Misc: Renamed IMGUI_DISABLE_MATH_FUNCTIONS to IMGUI_DISABLE_DEFAULT_MATH_FUNCTIONS. -- Fonts: ImFontAtlas::AddCustomRectRegular() now requires an ID larger than 0x110000 (instead of 0x10000) to - conform with supporting Unicode planes 1-16 in a future update. ID below 0x110000 will now assert. -- Backends: DX12: Added extra ID3D12DescriptorHeap parameter to ImGui_ImplDX12_Init() function. - The value is unused in master branch but will be used by the multi-viewport feature. (#2851) [@obfuscate] - -Other Changes: - -- InputText, Nav: Fixed Home/End key broken when activating Keyboard Navigation. (#787) -- InputText: Filter out ASCII 127 (DEL) emitted by low-level OSX layer, as we are using the Key value. (#2578) -- Layout: Fixed a couple of subtle bounding box vertical positioning issues relating to the handling of text - baseline alignment. The issue would generally manifest when laying out multiple items on a same line, - with varying heights and text baseline offsets. - Some specific examples, e.g. a button with regular frame padding followed by another item with a - multi-line label and no frame padding, such as: multi-line text, small button, tree node item, etc. - The second item was correctly offset to match text baseline, and would interact/display correctly, - but it wouldn't push the contents area boundary low enough. -- Scrollbar: Fixed an issue where scrollbars wouldn't display on the frame following a frame where - all child window contents would be culled. -- ColorPicker: Fixed SV triangle gradient to block (broken in 1.73). (#2864, #2711). [@lewa-j] -- TreeNode: Fixed combination of ImGuiTreeNodeFlags_SpanFullWidth and ImGuiTreeNodeFlags_OpenOnArrow - incorrectly locating the arrow hit position to the left of the frame. (#2451, #2438, #1897) -- TreeNode: The collapsing arrow accepts click even if modifier keys are being held, facilitating - interactions with custom multi-selections patterns. (#2886, #1896, #1861) -- TreeNode: Added IsItemToggledOpen() to explicitly query if item was just open/closed, facilitating - interactions with custom multi-selections patterns. (#1896, #1861) -- DragScalar, SliderScalar, InputScalar: Added p_ prefix to parameter that are pointers to the data - to clarify how they are used, and more comments redirecting to the demo code. (#2844) -- Error handling: Assert if user mistakenly calls End() instead of EndChild() on a child window. (#1651) -- Misc: Optimized storage of window settings data (reducing allocation count). -- Misc: Windows: Do not use _wfopen() if IMGUI_DISABLE_WIN32_FUNCTIONS is defined. (#2815) -- Misc: Windows: Disabled win32 function by default when building with UWP. (#2892, #2895) -- Misc: Using static_assert() when using C++11, instead of our own construct (avoid zealous Clang warnings). -- Misc: Added IMGUI_DISABLE_FILE_FUNCTIONS/IMGUI_DISABLE_DEFAULT_FILE_FUNCTION to nullify or disable - default implementation of ImFileXXX functions linking with fopen/fclose/fread/fwrite. (#2734) -- Docs: Improved and moved FAQ to docs/FAQ.md so it can be readable on the web. [@ButternCream, @ocornut] -- Docs: Moved misc/fonts/README.txt to docs/FONTS.txt. -- Docs: Added permanent redirect from https://www.dearimgui.com/faq to FAQ page. -- Demo: Added simple item reordering demo in Widgets -> Drag and Drop section. (#2823, #143) [@rokups] -- Metrics: Show wire-frame mesh and approximate surface area when hovering ImDrawCmd. [@ShironekoBen] -- Metrics: Expose basic details of each window key/value state storage. -- Examples: DX12: Using IDXGIDebug1::ReportLiveObjects() when DX12_ENABLE_DEBUG_LAYER is enabled. -- Examples: Emscripten: Removed BINARYEN_TRAP_MODE=clamp from Makefile which was removed in Emscripten 1.39.0 - but required prior to 1.39.0, making life easier for absolutely no-one. (#2877, #2878) [@podsvirov] -- Backends: OpenGL2: Explicitly backup, setup and restore GL_TEXTURE_ENV to increase compatibility with - legacy OpenGL applications. (#3000) -- Backends: OpenGL3: Fix building with pre-3.2 GL loaders which do not expose glDrawElementsBaseVertex(), - using runtime GL version to decide if we set ImGuiBackendFlags_RendererHasVtxOffset. (#2866, #2852) [@dpilawa] -- Backends: OSX: Fix using Backspace key. (#2578, #2817, #2818) [@DiligentGraphics] -- Backends: GLFW: Previously installed user callbacks are now restored on shutdown. (#2836) [@malte-v] -- CI: Set up a bunch of continuous-integration tests using GitHub Actions. We now compile many of the example - applications on Windows, Linux, MacOS, iOS, Emscripten. Removed Travis integration. (#2865) [@rokups] - - ------------------------------------------------------------------------ - VERSION 1.73 (Released 2019-09-24) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.73 - -Other Changes: - -- Nav, Scrolling: Added support for Home/End key. (#787) -- ColorEdit: Disable Hue edit when Saturation==0 instead of letting Hue values jump around. -- ColorEdit, ColorPicker: In HSV display of a RGB stored value, attempt to locally preserve Hue - when Saturation==0, which reduces accidentally lossy interactions. (#2722, #2770) [@rokups] -- ColorPicker: Made rendering aware of global style alpha of the picker can be faded out. (#2711) - Note that some elements won't accurately fade down with the same intensity, and the color wheel - when enabled will have small overlap glitches with (style.Alpha < 1.0). -- Tabs: Fixed single-tab not shrinking their width down. -- Tabs: Fixed clicking on a tab larger than tab-bar width creating a bouncing feedback loop. -- Tabs: Feed desired width (sum of unclipped tabs width) into layout system to allow for auto-resize. (#2768) - (before 1.71 tab bars fed the sum of current width which created feedback loops in certain situations). -- Tabs: Improved shrinking for large number of tabs to avoid leaving extraneous space on the right side. - Individuals tabs are given integer-rounded width and remainder is spread between tabs left-to-right. -- Columns, Separator: Fixed a bug where non-visible separators within columns would alter the next row position - differently than visible ones. -- SliderScalar: Improved assert when using U32 or U64 types with a large v_max value. (#2765) [@loicmouton] -- DragInt, DragFloat, DragScalar: Using (v_min > v_max) allows locking any edits to the value. -- DragScalar: Fixed dragging of unsigned values on ARM cpu (float to uint cast is undefined). (#2780) [@dBagrat] -- TreeNode: Added ImGuiTreeNodeFlags_SpanAvailWidth flag. (#2451, #2438, #1897) [@Melix19, @PathogenDavid] - This extends the hit-box to the right-most edge, even if the node is not framed. - (Note: this is not the default in order to allow adding other items on the same line. In the future we will - aim toward refactoring the hit-system to be front-to-back, allowing more natural overlapping of items, - and then we will be able to make this the default.) -- TreeNode: Added ImGuiTreeNodeFlags_SpanFullWidth flag. This extends the hit-box to both the left-most and - right-most edge of the working area, bypassing indentation. -- CollapsingHeader: Added support for ImGuiTreeNodeFlags_Bullet and ImGuiTreeNodeFlags_Leaf on framed nodes, - mostly for consistency. (#2159, #2160) [@goran-w] -- Selectable: Added ImGuiSelectableFlags_AllowItemOverlap flag in public api (was previously internal only). -- Style: Allow style.WindowMenuButtonPosition to be set to ImGuiDir_None to hide the collapse button. (#2634, #2639) -- Font: Better ellipsis ("...") drawing implementation. Instead of drawing three pixely dots (which was glaringly - unfitting with many types of fonts) we first attempt to find a standard ellipsis glyphs within the loaded set. - Otherwise we render ellipsis using '.' from the font from where we trim excessive spacing to make it as narrow - as possible. (#2775) [@rokups] -- ImDrawList: Clarified the name of many parameters so reading the code is a little easier. (#2740) -- ImDrawListSplitter: Fixed merging channels if the last submitted draw command used a different texture. (#2506) -- Using offsetof() when available in C++11. Avoids Clang sanitizer complaining about old-style macros. (#94) -- ImVector: Added find(), find_erase(), find_erase_unsorted() helpers. -- Added a mechanism to compact/free the larger allocations of unused windows (buffers are compacted when - a window is unused for 60 seconds, as per io.ConfigWindowsMemoryCompactTimer = 60.0f). Note that memory - usage has never been reported as a problem, so this is merely a touch of overzealous luxury. (#2636) -- Documentation: Various tweaks and improvements to the README page. [@ker0chan] -- Backends: OpenGL3: Tweaked initialization code allow application calling ImGui_ImplOpenGL3_CreateFontsTexture() - before ImGui_ImplOpenGL3_NewFrame(), which sometimes can be convenient. -- Backends: OpenGL3: Attempt to automatically detect default GL loader by using __has_include. (#2798) [@o-micron] -- Backends: DX11: Fixed GSGetShader() call not passing an initialized instance count, which would - generally make the DX11 debug layer complain (bug added in 1.72). -- Backends: Vulkan: Added support for specifying multisample count. Set 'ImGui_ImplVulkan_InitInfo::MSAASamples' to - one of the VkSampleCountFlagBits values to use, default is non-multisampled as before. (#2705, #2706) [@vilya] -- Examples: OSX: Fix example_apple_opengl2/main.mm not forwarding mouse clicks and drags correctly. (#1961, #2710) - [@intonarumori, @ElectricMagic] -- Misc: Updated stb_rect_pack.h from 0.99 to 1.00 (fixes by @rygorous: off-by-1 bug in best-fit heuristic, - fix handling of rectangles too large to fit inside texture). (#2762) [@tido64] - - ------------------------------------------------------------------------ - VERSION 1.72b (Released 2019-07-31) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.72b - -Other Changes: - -- Nav, Scrolling: Fixed programmatic scroll leading to a slightly incorrect scroll offset when - the window has decorations or a menu-bar (broken in 1.71). This was mostly noticeable when - a keyboard/gamepad movement led to scrolling the view, or using e.g. SetScrollHereY() function. -- Nav: Made hovering non-MenuItem Selectable not re-assign the source item for keyboard navigation. -- Nav: Fixed an issue with NavFlattened window flag (beta) where widgets not entirely fitting - in child window (often selectables because of their protruding sides) would be not considered - as entry points to to navigate toward the child window. (#787) - - ------------------------------------------------------------------------ - VERSION 1.72 (Released 2019-07-27) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.72 - -Breaking Changes: - -- Removed redirecting functions/enums names that were marked obsolete in 1.51 (June 2017): - - ImGuiCol_Column*, ImGuiSetCond_* enums. - - IsItemHoveredRect(), IsPosHoveringAnyWindow(), IsMouseHoveringAnyWindow(), IsMouseHoveringWindow() functions. - - IMGUI_ONCE_UPON_A_FRAME macro. - If you were still using the old names, read "API Breaking Changes" section of imgui.cpp to find out - the new names or equivalent features. -- Renamed ImFontAtlas::CustomRect to ImFontAtlasCustomRect. Kept redirection typedef (will obsolete). -- Removed TreeAdvanceToLabelPos() which is rarely used and only does SetCursorPosX(GetCursorPosX() + GetTreeNodeToLabelSpacing()). - Kept redirection function (will obsolete). (#581, #324) - -Other Changes: - -- Scrolling: Made mouse-wheel scrolling lock the underlying window until the mouse is moved again or - until a short delay expires (~2 seconds). This allow uninterrupted scroll even if child windows are - passing under the mouse cursor. (#2604) -- Scrolling: Made it possible for mouse wheel and navigation-triggered scrolling to override a call to - SetScrollX()/SetScrollY(), making it possible to use a simpler stateless pattern for auto-scrolling: - // (Submit items..) - if (ImGui::GetScrollY() >= ImGui::GetScrollMaxY()) // If scrolling at the already at the bottom.. - ImGui::SetScrollHereY(1.0f); // ..make last item fully visible -- Scrolling: Added SetScrollHereX(), SetScrollFromPosX() for completeness. (#1580) [@kevreco] -- Scrolling: Mouse wheel scrolling while hovering a child window is automatically forwarded to parent window - if ScrollMax is zero on the scrolling axis. - Also still the case if ImGuiWindowFlags_NoScrollWithMouse is set (not new), but previously the forwarding - would be disabled if ImGuiWindowFlags_NoScrollbar was set on the child window, which is not the case - any more. Forwarding can still be disabled by setting ImGuiWindowFlags_NoInputs. (amend #1502, #1380). -- Window: Fixed InnerClipRect right-most coordinates using wrong padding setting (introduced in 1.71). -- Window: Fixed old SetWindowFontScale() api value from not being inherited by child window. Added - comments about the right way to scale your UI (load a font at the right side, rebuild atlas, scale style). -- Scrollbar: Avoid overlapping the opposite side when window (often a child window) is forcibly too small. -- Combo: Hide arrow when there's not enough space even for the square button. -- InputText: Testing for newly added ImGuiKey_KeyPadEnter key. (#2677, #2005) [@amc522] -- Tabs: Fixed unfocused tab bar separator color (was using ImGuiCol_Tab, should use ImGuiCol_TabUnfocusedActive). -- Columns: Fixed a regression from 1.71 where the right-side of the contents rectangle within each column - would wrongly use a WindowPadding.x instead of ItemSpacing.x like it always did. (#125, #2666) -- Columns: Made the right-most edge reaches up to the clipping rectangle (removing half of WindowPadding.x - worth of asymmetrical/extraneous padding, note that there's another half that conservatively has to offset - the right-most column, otherwise it's clipping width won't match the other columns). (#125, #2666) -- Columns: Improved honoring alignment with various values of ItemSpacing.x and WindowPadding.x. (#125, #2666) -- Columns: Made GetColumnOffset() and GetColumnWidth() behave when there's no column set, consistently with - other column functions. (#2683) -- InputTextMultiline: Fixed vertical scrolling tracking glitch. -- Word-wrapping: Fixed overzealous word-wrapping when glyph edge lands exactly on the limit. Because - of this, auto-fitting exactly unwrapped text would make it wrap. (fixes initial 1.15 commit, 78645a7d). -- Style: Attenuated default opacity of ImGuiCol_Separator in Classic and Light styles. -- Style: Added style.ColorButtonPosition (left/right, defaults to ImGuiDir_Right) to move the color button - of ColorEdit3/ColorEdit4 functions to either side of the inputs. -- IO: Added ImGuiKey_KeyPadEnter and support in various backends (previously backends would need to - specifically redirect key-pad keys to their regular counterpart). This is a temporary attenuating measure - until we actually refactor and add whole sets of keys into the ImGuiKey enum. (#2677, #2005) [@amc522] -- Misc: Made Button(), ColorButton() not trigger an "edited" event leading to IsItemDeactivatedAfterEdit() - returning true. This also effectively make ColorEdit4() not incorrect trigger IsItemDeactivatedAfterEdit() - when clicking the color button to open the picker popup. (#1875) -- Misc: Added IMGUI_DISABLE_METRICS_WINDOW imconfig.h setting to explicitly compile out ShowMetricsWindow(). -- Debug Tools: Added "Metrics->Tools->Item Picker" tool which allow clicking on a widget to break in the - debugger within the item code. The tool calls IM_DEBUG_BREAK() which can be redefined in imconfig.h. -- ImDrawList: Fixed CloneOutput() helper crashing. (#1860) [@gviot] -- ImDrawList::ChannelsSplit(), ImDrawListSplitter: Fixed an issue with merging draw commands between - channel 0 and 1. (#2624) -- ImDrawListSplitter: Fixed memory leak when using low-level split api (was not affecting ImDrawList api, - also this type was added in 1.71 and not advertised as a public-facing feature). -- Fonts: binary_to_compressed_c.cpp: Display an error message if failing to open/read the input font file. -- Demo: Log, Console: Using a simpler stateless pattern for auto-scrolling. -- Demo: Widgets: Showing how to use the format parameter of Slider/Drag functions to display the name - of an enum value instead of the underlying integer value. -- Demo: Renamed the "Help" menu to "Tools" (more accurate). -- Backends: DX10/DX11: Backup, clear and restore Geometry Shader is any is bound when calling renderer. -- Backends: DX11: Clear Hull Shader, Domain Shader, Compute Shader before rendering. Not backing/restoring them. -- Backends: OSX: Disabled default native Mac clipboard copy/paste implementation in core library (added in 1.71), - because it needs application to be linked with '-framework ApplicationServices'. It can be explicitly - enabled back by using '#define IMGUI_ENABLE_OSX_DEFAULT_CLIPBOARD_FUNCTIONS' in imconfig.h. Re-added - equivalent using NSPasteboard api in the imgui_impl_osx.mm experimental backend. (#2546) -- Backends: SDL2: Added ImGui_ImplSDL2_InitForD3D() function to make D3D support more visible. - (#2482, #2632) [@josiahmanson] -- Examples: Added SDL2+DirectX11 example application. (#2632, #2612, #2482) [@vincenthamm] - - ------------------------------------------------------------------------ - VERSION 1.71 (Released 2019-06-12) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.71 - -Breaking Changes: - -- IO: changed AddInputCharacter(unsigned short c) signature to AddInputCharacter(unsigned int c). -- Renamed SetNextTreeNodeOpen() to SetNextItemOpen(). Kept inline redirection function (will obsolete). -- Window: rendering of child windows outer decorations (e.g. bg color, border, scrollbars) is now - performed as part of their parent window, avoiding the creation of an extraneous draw commands. - If you have overlapping child windows with decorations, and relied on their relative z-order to be - mapped to submission their order, this will affect your rendering. The optimization is disabled - if the parent window has no visual output because it appears to be the most common situation leading - to the creation of overlapping child windows. Please reach out if you are affected by this change! - -Other Changes: - -- Window: clarified behavior of SetNextWindowContentSize(). Content size is defined as the size available - after removal of WindowPadding on each sides. So SetNextWindowContentSize(ImVec2(100,100)) + auto-resize - will always allow submitting a 100x100 item without creating a scrollbar, regarding of WindowPadding. - The exact meaning of ContentSize for decorated windows was previously ill-defined. -- Window: Fixed auto-resize with AlwaysVerticalScrollbar or AlwaysHorizontalScrollbar flags. -- Window: Fixed one case where auto-resize by double-clicking the resize grip would make either scrollbar - appear for a single frame after the resize. -- Separator: Revert 1.70 "Declare its thickness (1.0f) to the layout" change. It's not incorrect - but it breaks existing some layout patterns. Will return back to it when we expose Separator flags. -- Fixed InputScalar, InputScalarN, SliderScalarN, DragScalarN with non-visible label from inserting - style.ItemInnerSpacing.x worth of trailing spacing. -- Fixed InputFloatX, SliderFloatX, DragFloatX functions erroneously reporting IsItemEdited() multiple - times when the text input doesn't match the formatted output value (e.g. input "1" shows "1.000"). - It wasn't much of a problem because we typically use the return value instead of IsItemEdited() here. -- Fixed uses of IsItemDeactivated(), IsItemDeactivatedAfterEdit() on multi-components widgets and - after EndGroup(). (#2550, #1875) -- Fixed crash when appending with BeginMainMenuBar() more than once and no other window are showing. (#2567) -- ColorEdit: Fixed the color picker popup only displaying inputs as HSV instead of showing multiple - options. (#2587, broken in 1.69 by #2384). -- CollapsingHeader: Better clipping when a close button is enabled and it overlaps the label. (#600) -- Scrollbar: Minor bounding box adjustment to cope with various border size. -- Scrollbar, Style: Changed default style.ScrollbarSize from 16 to 14. -- Combo: Fixed rounding not applying with the ImGuiComboFlags_NoArrowButton flag. (#2607) [@DucaRii] -- Nav: Fixed gamepad/keyboard moving of window affecting contents size incorrectly, sometimes leading - to scrollbars appearing during the movement. -- Nav: Fixed rare crash when e.g. releasing Alt-key while focusing a window with a menu at the same - frame as clearing the focus. This was in most noticeable in backends such as Glfw and SDL which - emits key release events when focusing another viewport, leading to Alt+clicking on void on another - viewport triggering the issue. (#2609) -- TreeNode, CollapsingHeader: Fixed highlight frame not covering horizontal area fully when using - horizontal scrolling. (#2211, #2579) -- Tabs: Fixed BeginTabBar() within a window with horizontal scrolling from creating a feedback - loop with the horizontal contents size. -- Columns: Fixed Columns() within a window with horizontal scrolling from not covering the full - horizontal area (previously only worked with an explicit contents size). (#125) -- Columns: Fixed Separator from creating an extraneous draw command. (#125) -- Columns: Fixed Selectable with SpanAllColumns flag from creating an extraneous draw command. (#125) -- Style: Added style.WindowMenuButtonPosition (left/right, defaults to ImGuiDir_Left) to move the - collapsing/docking button to the other side of the title bar. -- Style: Made window close button cross slightly smaller. -- Log/Capture: Fixed BeginTabItem() label not being included in a text log/capture. -- ImDrawList: Added ImDrawCmd::VtxOffset value to support large meshes (64k+ vertices) using 16-bit indices. - The renderer backend needs to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' to enable - this, and honor the ImDrawCmd::VtxOffset field. Otherwise the value will always be zero. (#2591) - This has the advantage of preserving smaller index buffers and allowing to execute on hardware that do not - support 32-bit indices. Most examples backends have been modified to support the VtxOffset field. -- ImDrawList: Added ImDrawCmd::IdxOffset value, equivalent to summing element count for each draw command. - This is provided for convenience and consistency with VtxOffset. (#2591) -- ImDrawCallback: Allow to override the signature of ImDrawCallback by #define-ing it. This is meant to - facilitate custom rendering backends passing local render-specific data to the draw callback. -- ImFontAtlas: FreeType: Added RasterizerFlags::Monochrome flag to disable font anti-aliasing. Combine - with RasterizerFlags::MonoHinting for best results. (#2545) [@HolyBlackCat] -- ImFontGlyphRangesBuilder: Fixed unnecessarily over-sized buffer, which incidentally was also not - fully cleared. Fixed edge-case overflow when adding character 0xFFFF. (#2568). [@NIKE3500] -- Demo: Added full "Dear ImGui" prefix to the title of "Dear ImGui Demo" and "Dear ImGui Metrics" windows. -- Backends: Add native Mac clipboard copy/paste default implementation in core library to match what we are - dealing with Win32, and to facilitate integration in custom engines. (#2546) [@andrewwillmott] -- Backends: OSX: imgui_impl_osx: Added mouse cursor support. (#2585, #1873) [@actboy168] -- Examples/Backends: DirectX9/10/11/12, Metal, Vulkan, OpenGL3 (Desktop GL only): Added support for large meshes - (64k+ vertices) with 16-bit indices, enable 'ImGuiBackendFlags_RendererHasVtxOffset' in those backends. (#2591) -- Examples/Backends: Don't filter characters under 0x10000 before calling io.AddInputCharacter(), - the filtering is done in io.AddInputCharacter() itself. This is in prevision for fuller Unicode - support. (#2538, #2541) - - ------------------------------------------------------------------------ - VERSION 1.70 (Released 2019-05-06) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.70 - -Breaking Changes: - -- ImDrawList: Improved algorithm for mitre joints on thick lines, preserving correct thickness - up to 90 degrees angles (e.g. rectangles). If you have custom rendering using thick lines, - they will appear a little thicker now. (#2518) [@rmitton] -- Obsoleted GetContentRegionAvailWidth(), use GetContentRegionAvail().x instead. - Kept inline redirection function. -- Examples: Vulkan: Added MinImageCount/ImageCount fields in ImGui_ImplVulkan_InitInfo, required - during initialization to specify the number of in-flight image requested by swap chains. - (was previously a hard #define IMGUI_VK_QUEUED_FRAMES 2). (#2071, #1677) [@nathanvoglsam] -- Examples: Vulkan: Tidying up the demo/internals helpers (most engine/app should not rely - on them but it is possible you have!). - -Other Changes: - -- ImDrawList: Added ImDrawCallback_ResetRenderState, a special ImDrawList::AddCallback() value - to request the renderer backend to reset its render state. (#2037, #1639, #2452) - Examples: Added support for ImDrawCallback_ResetRenderState in all renderer backends. Each - renderer code setting up initial render state has been moved to a function so it could be - called at the start of rendering and when a ResetRenderState is requested. [@ocornut, @bear24rw] -- InputText: Fixed selection background rendering one frame after the cursor movement when - first transitioning from no-selection to has-selection. (Bug in 1.69) (#2436) [@Nazg-Gul] -- InputText: Work-around for buggy standard libraries where isprint('\t') returns true. (#2467, #1336) -- InputText: Fixed ImGuiInputTextFlags_AllowTabInput leading to two tabs characters being inserted - if the backend provided both Key and Character input. (#2467, #1336) -- Layout: Added SetNextItemWidth() helper to avoid using PushItemWidth/PopItemWidth() for single items. - Note that SetNextItemWidth() currently only affect the same subset of items as PushItemWidth(), - generally referred to as the large framed+labeled items. Because the new SetNextItemWidth() - function is explicit we may later extend its effect to more items. -- Layout: Fixed PushItemWidth(-width) for right-side alignment laying out some items (button, listbox, etc.) - with negative sizes if the 'width' argument was smaller than the available width at the time of item - submission. -- Window: Fixed window with the AlwaysAutoResize flag unnecessarily extending their hovering boundaries - by a few pixels (this is used to facilitate resizing from borders when available for a given window). - One of the noticeable minor side effect was that navigating menus would have had a tendency to disable - highlight from parent menu items earlier than necessary while approaching the child menu. -- Window: Close button is horizontally aligned with style.FramePadding.x. -- Window: Fixed contents region being off by WindowBorderSize amount on the right when scrollbar is active. -- Window: Fixed SetNextWindowSizeConstraints() with non-rounded positions making windows drift. (#2067, #2530) -- Popups: Closing a popup restores the focused/nav window in place at the time of the popup opening, - instead of restoring the window that was in the window stack at the time of the OpenPopup call. (#2517) - Among other things, this allows opening a popup while no window are focused, and pressing Escape to - clear the focus again. -- Popups: Fixed right-click from closing all popups instead of aiming at the hovered popup level - (regression in 1.67). -- Selectable: With ImGuiSelectableFlags_AllowDoubleClick doesn't return true on the mouse button release - following the double-click. Only first mouse release + second mouse down (double-click) returns true. - Likewise for internal ButtonBehavior() with both _PressedOnClickRelease | _PressedOnDoubleClick. (#2503) -- GetMouseDragDelta(): also returns the delta on the mouse button released frame. (#2419) -- GetMouseDragDelta(): verify that mouse positions are valid otherwise returns zero. -- Inputs: Also add support for horizontal scroll with Shift+Mouse Wheel. (#2424, #1463) [@LucaRood] -- PlotLines, PlotHistogram: Ignore NaN values when calculating min/max bounds. (#2485) -- Columns: Fixed boundary of clipping being off by 1 pixel within the left column. (#125) -- Separator: Declare its thickness (1.0f) to the layout, making items around separator more symmetrical. -- Combo, Slider, Scrollbar: Improve rendering in situation when there's only a few pixels available (<3 pixels). -- Nav: Fixed Drag/Slider functions going into text input mode when keyboard CTRL is held while pressing NavActivate. -- Drag and Drop: Fixed drag source with ImGuiDragDropFlags_SourceAllowNullID and null ID from receiving click - regardless of being covered by another window (it didn't honor correct hovering rules). (#2521) -- ImDrawList: Improved algorithm for mitre joints on thick lines, preserving correct thickness up to 90 degrees - angles, also faster to output. (#2518) [@rmitton] -- Misc: Added IM_MALLOC/IM_FREE macros mimicking IM_NEW/IM_DELETE so user doesn't need to revert - to using the ImGui::MemAlloc()/MemFree() calls directly. -- Misc: Made IMGUI_CHECKVERSION() macro also check for matching size of ImDrawIdx. -- Metrics: Added "Show windows rectangles" tool to visualize the different rectangles. -- Demo: Improved trees in columns demo. -- Examples: OpenGL: Added a test GL call + comments in ImGui_ImplOpenGL3_Init() to detect uninitialized - GL function loaders early, and help users understand what they are missing. (#2421) -- Examples: SDL: Added support for SDL_GameController gamepads (enable with ImGuiConfigFlags_NavEnableGamepad). (#2509) [@DJLink] -- Examples: Emscripten: Added Emscripten+SDL+GLES2 example. (#2494, #2492, #2351, #336) [@nicolasnoble, @redblobgames] -- Examples: Metal: Added Glfw+Metal example. (#2527) [@bear24rw] -- Examples: OpenGL3: Minor tweaks + not calling glBindBuffer more than necessary in the render loop. -- Examples: Vulkan: Fixed in-flight buffers issues when using multi-viewports. (#2461, #2348, #2378, #2097) -- Examples: Vulkan: Added missing support for 32-bit indices (#define ImDrawIdx unsigned int). -- Examples: Vulkan: Avoid passing negative coordinates to vkCmdSetScissor, which debug validation layers do not like. -- Examples: Vulkan: Added ImGui_ImplVulkan_SetMinImageCount() to change min image count at runtime. (#2071) [@nathanvoglsam] -- Examples: DirectX9: Fixed erroneous assert in ImGui_ImplDX9_InvalidateDeviceObjects(). (#2454) -- Examples: DirectX10/11/12, Allegro, Marmalade: Render functions early out when display size is zero (minimized). (#2496) -- Examples: GLUT: Fixed existing FreeGLUT example to work with regular GLUT. (#2465) [@andrewwillmott] -- Examples: GLUT: Renamed imgui_impl_freeglut.cpp/.h to imgui_impl_glut.cpp/.h. (#2465) [@andrewwillmott] -- Examples: GLUT: Made io.DeltaTime always > 0. (#2430) -- Examples: Visual Studio: Updated default platform toolset+sdk in vcproj files from v100+sdk7 (vs2010) - to v110+sdk8 (vs2012). This is mostly so we can remove reliance on DXSDK_DIR for the DX10/DX11 example, - which if existing and when switching to recent SDK ends up conflicting and creating warnings. - - ------------------------------------------------------------------------ - VERSION 1.69 (Released 2019-03-13) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.69 - -Breaking Changes: - -- Renamed ColorEdit/ColorPicker's ImGuiColorEditFlags_RGB/_HSV/_HEX flags to respectively - ImGuiColorEditFlags_DisplayRGB/_DisplayHSV/_DisplayHex. This is because the addition of - new flag ImGuiColorEditFlags_InputHSV makes the earlier one ambiguous. - Kept redirection enum values (will obsolete). (#2384) [@haldean] -- Renamed GetOverlayDrawList() to GetForegroundDrawList(). Kept redirection function (will obsolete). (#2391) - -Other Changes: - -- Added GetBackgroundDrawList() helper to quickly get access to a ImDrawList that will be rendered - behind every other windows. (#2391, #545) -- DragScalar, InputScalar, SliderScalar: Added support for u8/s8/u16/s16 data types (ImGuiDataType_S8, etc.) - We are reusing function instances of larger types to reduce code size. (#643, #320, #708, #1011) -- Added InputTextWithHint() to display a description/hint in the text box when no text - has been entered. (#2400) [@Organic-Code, @ocornut] -- Nav: Fixed a tap on AltGR (e.g. German keyboard) from navigating to the menu layer. -- Nav: Fixed Ctrl+Tab keeping active InputText() of a previous window active after the switch. (#2380) -- Fixed IsItemDeactivated()/IsItemDeactivatedAfterEdit() from not correctly returning true - when tabbing out of a focusable widget (Input/Slider/Drag) in most situations. (#2215, #1875) -- InputInt, InputFloat, InputScalar: Fix to keep the label of the +/- buttons centered when - style.FramePadding.x is abnormally larger than style.FramePadding.y. Since the buttons are - meant to be square (to align with e.g. color button) we always use FramePadding.y. (#2367) -- InputInt, InputScalar: +/- buttons now respects the natural type limits instead of - overflowing or underflowing the value. -- InputText: Fixed an edge case crash that would happen if another widget sharing the same ID - is being swapped with an InputText that has yet to be activated. -- InputText: Fixed various display corruption related to swapping the underlying buffer while - an input widget is active (both for writable and read-only paths). Often they would manifest - when manipulating the scrollbar of a multi-line input text. -- ColorEdit, ColorPicker, ColorButton: Added ImGuiColorEditFlags_InputHSV to manipulate color - values encoded as HSV (in order to avoid HSV<>RGB round trips and associated singularities). - (#2383, #2384) [@haldean] -- ColorPicker: Fixed a bug/assertion when displaying a color picker in a collapsed window - while dragging its title bar. (#2389) -- ColorEdit: Fixed tooltip not honoring the ImGuiColorEditFlags_NoAlpha contract of never - reading the 4th float in the array (value was read and discarded). (#2384) [@haldean] -- MenuItem, Selectable: Fixed disabled widget interfering with navigation (fix c2db7f63 in 1.67). -- Tabs: Fixed a crash when using many BeginTabBar() recursively (didn't affect docking). (#2371) -- Tabs: Added extra misusage error recovery. Past the assert, common misusage don't lead to - hard crashes any more, facilitating integration with scripting languages. (#1651) -- Tabs: Fixed ImGuiTabItemFlags_SetSelected being ignored if the tab is not visible (with - scrolling policy enabled) or if is currently appearing. -- Tabs: Fixed Tab tooltip code making drag and drop tooltip disappear during the frame where - the drag payload activate a tab. -- Tabs: Reworked scrolling policy (when ImGuiTabBarFlags_FittingPolicyScroll is set) to - teleport the view when aiming at a tab far away the visible section, and otherwise accelerate - the scrolling speed to cap the scrolling time to 0.3 seconds. -- Text: Fixed large Text/TextUnformatted calls not feeding their size into layout when starting - below the lower point of the current clipping rectangle. This bug has been there since v1.0! - It was hardly noticeable but would affect the scrolling range, which in turn would affect - some scrolling request functions when called during the appearing frame of a window. -- Plot: Fixed divide-by-zero in PlotLines() when passing a count of 1. (#2387) [@Lectem] -- Log/Capture: Fixed LogXXX functions emitting extraneous leading carriage return. -- Log/Capture: Fixed an issue when empty string on a new line would not emit a carriage return. -- Log/Capture: Fixed LogXXX functions 'auto_open_depth' parameter being treated as an absolute - tree depth instead of a relative one. -- Log/Capture: Fixed CollapsingHeader trailing ascii representation being "#" instead of "##". -- ImFont: Added GetGlyphRangesVietnamese() helper. (#2403) -- Misc: Asserting in NewFrame() if style.WindowMinSize is zero or smaller than (1.0f,1.0f). -- Demo: Using GetBackgroundDrawList() and GetForegroundDrawList() in "Custom Rendering" demo. -- Demo: InputText: Demonstrating use of ImGuiInputTextFlags_CallbackResize. (#2006, #1443, #1008). -- Examples: GLFW, SDL: Preserve DisplayFramebufferScale when main viewport is minimized. - (This is particularly useful for the viewport branch because we are not supporting per-viewport - frame-buffer scale. It fixes windows not refreshing when main viewport is minimized.) (#2416) -- Examples: OpenGL: Fix to be able to run on ES 2.0 / WebGL 1.0. [@rmitton, @gabrielcuvillier] -- Examples: OpenGL: Fix for OSX not supporting OpenGL 4.5, we don't try to read GL_CLIP_ORIGIN - even if the OpenGL headers/loader happens to define the value. (#2366, #2186) -- Examples: Allegro: Added support for touch events (emulating mouse). (#2219) [@dos1] -- Examples: DirectX9: Minor changes to match the other DirectX examples more closely. (#2394) - - ------------------------------------------------------------------------ - VERSION 1.68 (Released 2019-02-19) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.68 - -Breaking Changes: - -- Removed io.DisplayVisibleMin/DisplayVisibleMax (which were marked obsolete and removed from viewport/docking branch already). -- Made it illegal/assert when io.DisplayTime == 0.0f (with an exception for the first frame). - If for some reason your time step calculation gives you a zero value, replace it with an arbitrarily small value! - -Other Changes: - -- Added .editorconfig file for text editors to standardize using spaces. (#2038) [@kudaba] -- ImDrawData: Added FramebufferScale field (currently a copy of the value from io.DisplayFramebufferScale). - This is to allow render functions being written without pulling any data from ImGuiIO, allowing incoming - multi-viewport feature to behave on Retina display and with multiple displays. - If you are not using a custom backend, please update your render function code ahead of time, - and use draw_data->FramebufferScale instead of io.DisplayFramebufferScale. (#2306, #1676) -- Added IsItemActivated() as an extension to the IsItemDeactivated/IsItemDeactivatedAfterEdit functions - which are useful to implement variety of undo patterns. (#820, #956, #1875) -- InputText: Fixed a bug where ESCAPE would not restore the initial value in all situations. (#2321) [@relick] -- InputText: Fixed a bug where ESCAPE would be first captured by the Keyboard Navigation code. (#2321, #787) -- InputText: Fixed redo buffer exhaustion handling (rare) which could corrupt the undo character buffer. (#2333) - The way the redo/undo buffers work would have made it generally unnoticeable to the user. -- Fixed range-version of PushID() and GetID() not honoring the ### operator to restart from the seed value. -- Fixed CloseCurrentPopup() on a child-menu of a modal incorrectly closing the modal. (#2308) -- Tabs: Added ImGuiTabBarFlags_TabListPopupButton flag to show a popup button on manual tab bars. (#261, #351) -- Tabs: Removed ImGuiTabBarFlags_NoTabListPopupButton which was available in 1.67 but actually had zero use. -- Tabs: Fixed a minor clipping glitch when changing style's FramePadding from frame to frame. -- Tabs: Fixed border (when enabled) so it is aligned correctly mid-pixel and appears as bright as other borders. -- Style, Selectable: Added ImGuiStyle::SelectableTextAlign and ImGuiStyleVar_SelectableTextAlign. (#2347) [@haldean] -- Menus: Tweaked horizontal overlap between parent and child menu (to help convey relative depth) - from using style.ItemSpacing.x to style.ItemInnerSpacing.x, the later being expected to be smaller. (#1086) -- RadioButton: Fixed label horizontal alignment to precisely match Checkbox(). -- Window: When resizing from an edge, the border is more visible and better follow the rounded corners. -- Window: Fixed initial width of collapsed windows not taking account of contents width (broken in 1.67). (#2336, #176) -- Scrollbar: Fade out and disable interaction when too small, in order to facilitate using the resize grab on very - small window, as well as reducing visual noise/overlap. -- ListBox: Better optimized when clipped / non-visible. -- InputTextMultiline: Better optimized when clipped / non-visible. -- Font: Fixed high-level ImGui::CalcTextSize() used by most widgets from erroneously subtracting 1.0f*scale to - calculated text width. Among noticeable side-effects, it would make sequences of repeated Text/SameLine calls - not align the same as a single call, and create mismatch between high-level size calculation and those performed - with the lower-level ImDrawList api. (#792) [@SlNPacifist] -- Font: Fixed building atlas when specifying duplicate/overlapping ranges within a same font. (#2353, #2233) -- ImDrawList: Fixed AddCircle(), AddCircleFilled() angle step being off, which was visible when drawing a "circle" - with a small number of segments (e.g. an hexagon). (#2287) [@baktery] -- ImGuiTextBuffer: Added append() function (unformatted). -- ImFontAtlas: Added 0x2000-0x206F general punctuation range to default ChineseFull/ChineseSimplifiedCommon ranges. (#2093) -- ImFontAtlas: FreeType: Added support for imgui allocators + custom FreeType only SetAllocatorFunctions. (#2285) [@Vuhdo] -- ImFontAtlas: FreeType: Fixed using imgui_freetype.cpp in unity builds. (#2302) -- Demo: Fixed "Log" demo not initializing properly, leading to the first line not showing before a Clear. (#2318) [@bluescan] -- Demo: Added "Auto-scroll" option in Log/Console demos. (#2300) [@nicolasnoble, @ocornut] -- Examples: Metal, OpenGL2, OpenGL3, Vulkan: Fixed offsetting of clipping rectangle with ImDrawData::DisplayPos != (0,0) - when the display frame-buffer scale scale is not (1,1). While this doesn't make a difference when using master branch, - this is effectively fixing support for multi-viewport with Mac Retina Displays on those examples. (#2306) [@rasky, @ocornut] - Also using ImDrawData::FramebufferScale instead of io.DisplayFramebufferScale. -- Examples: Clarified the use the ImDrawData::DisplayPos to offset clipping rectangles. -- Examples: Win32: Using GetForegroundWindow()+IsChild() instead of GetActiveWindow() to be compatible with windows created - in a different thread or parent. (#1951, #2087, #2156, #2232) [many people] -- Examples: SDL: Using the SDL_WINDOW_ALLOW_HIGHDPI flag. (#2306, #1676) [@rasky] -- Examples: Win32: Added support for XInput gamepads (if ImGuiConfigFlags_NavEnableGamepad is enabled). -- Examples: Win32: Added support for mouse buttons 4 and 5 via WM_XBUTTON* messages. (#2264) -- Examples: DirectX9: Explicitly disable fog (D3DRS_FOGENABLE) before drawing in case user state has it set. (#2288, #2230) -- Examples: OpenGL2: Added #define GL_SILENCE_DEPRECATION to cope with newer XCode warnings. -- Examples: OpenGL3: Using GLSL 4.10 shaders for any GLSL version over 410 (e.g. 430, 450). (#2329) [@BrutPitt] - - ------------------------------------------------------------------------ - VERSION 1.67 (Released 2019-01-14) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.67 - -Breaking Changes: - -- Made it illegal to call Begin("") with an empty string. This somehow half-worked before but had various undesirable - side-effect because the window would have ID zero. In particular it is causing problems in viewport/docking branches. -- Renamed io.ConfigResizeWindowsFromEdges to io.ConfigWindowsResizeFromEdges and removed its [Beta] mark. - The addition of new configuration options in the Docking branch is pushing for a little reorganization of those names. -- Renamed ImFontAtlas::GlyphRangesBuilder to ImFontGlyphRangesBuilder. Kept redirection typedef (will obsolete). - -Other Changes: -- Added BETA api for Tab Bar/Tabs widgets: (#261, #351) - - Added BeginTabBar(), EndTabBar(), BeginTabItem(), EndTabItem(), SetTabItemClosed() API. - - Added ImGuiTabBarFlags flags for BeginTabBar(). - - Added ImGuiTabItemFlags flags for BeginTabItem(). - - Style: Added ImGuiCol_Tab, ImGuiCol_TabHovered, ImGuiCol_TabActive, ImGuiCol_TabUnfocused, ImGuiCol_TabUnfocusedActive colors. - - Demo: Added Layout->Tabs demo code. - - Demo: Added "Documents" example app showcasing possible use for tabs. - This feature was merged from the Docking branch in order to allow the use of regular tabs in your code. - (It does not provide the docking/splitting/merging of windows available in the Docking branch) -- Added ImGuiWindowFlags_UnsavedDocument window flag to append '*' to title without altering the ID, as a convenience - to avoid using the ### operator. In the Docking branch this also has an effect on tab closing behavior. -- Window, Focus, Popup: Fixed an issue where closing a popup by clicking another window with the _NoMove flag would refocus - the parent window of the popup instead of the newly clicked window. -- Window: Contents size is preserved while a window collapsed. Fix auto-resizing window losing their size for one frame when uncollapsed. -- Window: Contents size is preserved while a window contents is hidden (unless it is hidden for resizing purpose). -- Window: Resizing windows from edge is now enabled by default (io.ConfigWindowsResizeFromEdges=true). Note that - it only works _if_ the backend sets ImGuiBackendFlags_HasMouseCursors, which the standard backends do. -- Window: Added io.ConfigWindowsMoveFromTitleBarOnly option. This is ignored by window with no title bars (often popups). - This affects clamping window within the visible area: with this option enabled title bars need to be visible. (#899) -- Window: Fixed using SetNextWindowPos() on a child window (which wasn't really documented) position the cursor as expected - in the parent window, so there is no mismatch between the layout in parent and the position of the child window. -- InputFloat: When using ImGuiInputTextFlags_ReadOnly the step buttons are disabled. (#2257) -- DragFloat: Fixed broken mouse direction change with power!=1.0. (#2174, #2206) [@Joshhua5] -- Nav: Fixed a keyboard issue where holding Activate/Space for longer than two frames on a button would unnecessary - keep the focus on the parent window, which could steal it from newly appearing windows. (#787) -- Nav: Fixed animated window titles from being updated when displayed in the CTRL+Tab list. (#787) -- Error recovery: Extraneous/undesired calls to End() are now being caught by an assert in the End() function closer - to the user call site (instead of being reported in EndFrame). Past the assert, they don't lead to crashes any more. (#1651) - Missing calls to End(), past the assert, should not lead to crashes or to the fallback Debug window appearing on screen. - Those changes makes it easier to integrate dear imgui with a scripting language allowing, given asserts are redirected - into e.g. an error log and stopping the script execution. -- ImFontAtlas: Stb and FreeType: Atlas width is now properly based on total surface rather than glyph count (unless overridden with TexDesiredWidth). -- ImFontAtlas: Stb and FreeType: Fixed atlas builder so missing glyphs won't influence the atlas texture width. (#2233) -- ImFontAtlas: Stb and FreeType: Fixed atlas builder so duplicate glyphs (when merging fonts) won't be included in the rasterized atlas. -- ImFontAtlas: FreeType: Fixed abnormally high atlas height. -- ImFontAtlas: FreeType: Fixed support for any values of TexGlyphPadding (not just only 1). -- ImDrawList: Optimized some of the functions for performance of debug builds where non-inline function call cost are non-negligible. - (Our test UI scene on VS2015 Debug Win64 with /RTC1 went ~5.9 ms -> ~4.9 ms. In Release same scene stays at ~0.3 ms.) -- IO: Added BackendPlatformUserData, BackendRendererUserData, BackendLanguageUserData void* for storage use by backends. -- IO: Renamed InputCharacters[], marked internal as was always intended. Please don't access directly, and use AddInputCharacter() instead! -- IO: AddInputCharacter() goes into a queue which can receive as many characters as needed during the frame. This is useful - for automation to not have an upper limit on typing speed. Will later transition key/mouse to use the event queue later. -- Style: Tweaked default value of style.DisplayWindowPadding from (20,20) to (19,19) so the default style as a value - which is the same as the title bar height. -- Demo: "Simple Layout" and "Style Editor" are now using tabs. -- Demo: Added a few more things under "Child windows" (changing ImGuiCol_ChildBg, positioning child, using IsItemHovered after a child). -- Examples: DirectX10/11/12: Made imgui_impl_dx10/dx11/dx12.cpp link d3dcompiler.lib from the .cpp file to ease integration. -- Examples: Allegro 5: Properly destroy globals on shutdown to allow for restart. (#2262) [@DomRe] - - ------------------------------------------------------------------------ - VERSION 1.66b (Released 2018-12-01) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.66b - -Other Changes: - -- Fixed a text rendering/clipping bug introduced in 1.66 (on 2018-10-12, commit ede3a3b9) that affect single ImDrawList::AddText() - calls with single strings larger than 10k. Text/TextUnformatted() calls were not affected, but e.g. InputText() was. [@pdoane] -- When the focused window become inactive don't restore focus to a window with the ImGuiWindowFlags_NoInputs flag. (#2213) [@zzzyap] -- Separator: Fixed Separator() outputting an extraneous empty line when captured into clipboard/text/file. -- Demo: Added ShowAboutWindow() call, previously was only accessible from the demo window. -- Demo: ShowAboutWindow() now display various Build/Config Information (compiler, os, etc.) that can easily be copied into bug reports. -- Fixed build issue with osxcross and macOS. (#2218) [@dos1] -- Examples: Setting up 'io.BackendPlatformName'/'io.BackendRendererName' fields to the current backend can be displayed in the About window. -- Examples: SDL: changed the signature of ImGui_ImplSDL2_ProcessEvent() to use a const SDL_Event*. (#2187) - - ------------------------------------------------------------------------ - VERSION 1.66 (Released 2018-11-22) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.66 - -Breaking Changes: - -- Renamed SetScrollHere() to SetScrollHereY(). Kept redirection function (will obsolete). -- Renamed misc/stl/imgui_stl.* to misc/cpp/imgui_stdlib.* in prevision for other C++ helper files. (#2035, #2096) - -Other Changes: - -- Fixed calling SetNextWindowSize()/SetWindowSize() with non-integer values leading to - accidental alteration of window position. We now round the provided size. (#2067) -- Fixed calling DestroyContext() always saving .ini data with the current context instead - of the supplied context pointer. (#2066) -- Nav, Focus: Fixed ImGuiWindowFlags_NoBringToFrontOnFocus windows not being restoring focus - properly after the main menu bar or last focused window is deactivated. -- Nav: Fixed an assert in certain circumstance (mostly when using popups) when mouse positions stop being valid. (#2168) -- Nav: Fixed explicit directional input not re-highlighting current nav item if there is a single item in the window - and highlight has been previously disabled by the mouse. (#787) -- DragFloat: Fixed a situation where dragging with value rounding enabled or with a power curve - erroneously wrapped the value to one of the min/max edge. (#2024, #708, #320, #2075). -- DragFloat: Disabled using power curve when one edge is FLT_MAX (broken in 1.61). (#2024) -- DragFloat: Disabled setting a default drag speed when one edge is FLT_MAX. (#2024) -- SliderAngle: Added optional format argument to alter precision or locale::get the string. (#2150) [@podsvirov] -- Window: Resizing from edges (with io.ConfigResizeWindowsFromEdges Beta flag) extends the hit region - of root floating windows outside the window, making it easier to resize windows. Resize grips are also - extended accordingly so there are no discontinuity when hovering between borders and corners. (#1495, #822) -- Window: Added ImGuiWindowFlags_NoBackground flag to avoid rendering window background. This is mostly to allow - the creation of new flag combinations, as we could already use SetNextWindowBgAlpha(0.0f). (#1660) [@biojppm, @ocornut] -- Window: Added ImGuiWindowFlags_NoDecoration helper flag which is essentially NoTitleBar+NoResize+NoScrollbar+NoCollapse. -- Window: Added ImGuiWindowFlags_NoMouseInputs which is basically the old ImGuiWindowFlags_NoInputs (essentially - we have renamed ImGuiWindowFlags_NoInputs to ImGuiWindowFlags_NoMouseInputs). Made the new ImGuiWindowFlags_NoInputs - encompass both NoMouseInputs+NoNav, which is consistent with its description. (#1660, #787) -- Window, Inputs: Fixed resizing from edges when io.MousePos is not pixel-rounded by rounding mouse position input. (#2110) -- BeginChild(): Fixed BeginChild(const char*, ...) variation erroneously not applying the ID stack - to the provided string to uniquely identify the child window. This was undoing an intentional change - introduced in 1.50 and broken in 1.60. (#1698, #894, #713). -- TextUnformatted(): Fixed a case where large-text path would read bytes past the text_end marker depending - on the position of new lines in the buffer (it wasn't affecting the output but still not the right thing to do!) -- ListBox(): Fixed frame sizing when items_count==1 unnecessarily showing a scrollbar. (#2173) [@luk1337, @ocornut] -- ListBox(): Tweaked frame sizing so list boxes will look more consistent when FramePadding is far from ItemSpacing. -- RenderText(): Some optimization for very large text buffers, useful for non-optimized builds. -- BeginMenu(): Fixed menu popup horizontal offset being off the item in the menu bar when WindowPadding=0.0f. -- ArrowButton(): Fixed arrow shape being horizontally misaligned by (FramePadding.y-FramePadding.x) if they are different. -- Demo: Split the contents of ShowDemoWindow() into smaller functions as it appears to speed up link time with VS. (#2152) -- Drag and Drop: Added GetDragDropPayload() to peek directly into the payload (if any) from anywhere. (#143) -- ImGuiTextBuffer: Avoid heap allocation when empty. -- ImDrawList: Fixed AddConvexPolyFilled() undefined behavior when passing points_count smaller than 3, - in particular, points_count==0 could lead to a memory stomp if the draw list was previously empty. -- Examples: DirectX10, DirectX11: Removed seemingly unnecessary calls to invalidate and recreate device objects - in the WM_SIZE handler. (#2088) [@ice1000] -- Examples: GLFW: User previously installed GLFW callbacks are now saved and chain-called by the default callbacks. (#1759) -- Examples: OpenGL3: Added support for GL 4.5's glClipControl(GL_UPPER_LEFT). (#2186) -- Examples: OpenGL3+GLFW: Fixed error condition when using the GLAD loader. (#2157) [@blackball] -- Examples: OpenGL3+GLFW/SDL: Made main.cpp compile with IMGUI_IMPL_OPENGL_LOADER_CUSTOM (may be missing init). (#2178) [@doug-moen] -- Examples: SDL2+Vulkan: Fixed application shutdown which could deadlock on Linux + Xorg. (#2181) [@eRabbit0] - - ------------------------------------------------------------------------ - VERSION 1.65 (Released 2018-09-06) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.65 - -Breaking Changes: - -- Renamed stb_truetype.h to imstb_truetype.h, stb_textedit.h to imstb_textedit.h, and - stb_rect_pack.h to imstb_rectpack.h. If you were conveniently using the imgui copy of those - STB headers in your project, you will have to update your include paths. (#1718, #2036) - The reason for this change is to avoid conflicts for projects that may also be importing - their own copy of the STB libraries. Note that imgui's copy of stb_textedit.h is modified. -- Renamed io.ConfigCursorBlink to io.ConfigInputTextCursorBlink. (#1427) - -Other Changes: - -- This is a minor release following the 1.64 refactor, with a little more shuffling of code. -- Clarified and improved the source code sectioning in all files (easier to search or browse sections). -- Nav: Removed the [Beta] tag from various descriptions of the gamepad/keyboard navigation system. - Although it is not perfect and will keep being improved, it is fairly functional and used by many. (#787) -- Fixed a build issue with non-Cygwin GCC under Windows. -- Demo: Added a "Configuration" block to make io.ConfigFlags/io.BackendFlags more prominent. -- Examples: OpenGL3+SDL2: Fixed error condition when using the GLAD loader. (#2059, #2002) [@jiri] - - ------------------------------------------------------------------------ - VERSION 1.64 (Released 2018-08-31) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.64 - -Changes: - -- Moved README, CHANGELOG and TODO files to the docs/ folder. - If you are updating dear imgui by copying files, take the chance to delete the old files. -- Added imgui_widgets.cpp file, extracted and moved widgets code out of imgui.cpp into imgui_widgets.cpp. - Re-ordered some of the code remaining in imgui.cpp. - NONE OF THE FUNCTIONS HAVE CHANGED. THE CODE IS SEMANTICALLY 100% IDENTICAL, BUT _EVERY_ FUNCTIONS HAS BEEN MOVED. - Because of this, any local modifications to imgui.cpp will likely conflict when you update. - If you have any modifications to imgui.cpp, it is suggested that you first update to 1.63, then - isolate your patches. You can peak at imgui_widgets.cpp from 1.64 to get a sense of what is included in it, - then separate your changes into several patches that can more easily be applied to 1.64 on a per-file basis. - What I found worked nicely for me, was to open the diff of the old patches in an interactive merge/diff tool, - search for the corresponding function in the new code and apply the chunks manually. -- As a reminder, if you have any change to imgui.cpp it is a good habit to discuss them on the GitHub, - so a solution applicable on the Master branch can be found. If your company has changes that you cannot - disclose you may also contact me privately. - - ------------------------------------------------------------------------ - VERSION 1.63 (Released 2018-08-29) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.63 - -Breaking Changes: - -- Style: Renamed ImGuiCol_ModalWindowDarkening to ImGuiCol_ModalWindowDimBg for consistency with other features. - Kept redirection enum (will obsolete). -- Changed ImGui::GetTime() return value from float to double to avoid accumulating floating point imprecision over time. -- Removed per-window ImGuiWindowFlags_ResizeFromAnySide Beta flag in favor `io.ConfigResizeWindowsFromEdges=true` to - enable the feature globally. (#1495) - The feature is not currently enabled by default because it is not satisfying enough, but will eventually be. -- InputText: Renamed ImGuiTextEditCallback to ImGuiInputTextCallback, ImGuiTextEditCallbackData to ImGuiInputTextCallbackData - for consistency. Kept redirection types (will obsolete). -- InputText: Removed ImGuiTextEditCallbackData::ReadOnly because it is a duplication of (::Flags & ImGuiInputTextFlags_ReadOnly). -- Renamed IsItemDeactivatedAfterChange() to IsItemDeactivatedAfterEdit() for consistency with new IsItemEdited() API. - Kept redirection function (will obsolete soonish as IsItemDeactivatedAfterChange() is very recent). -- Renamed io.OptCursorBlink to io.ConfigCursorBlink [-> io.ConfigInputTextCursorBlink in 1.65], io.OptMacOSXBehaviors to - io.ConfigMacOSXBehaviors for consistency. (#1427, #473) -- Removed obsolete redirection functions: CollapsingHeader() variation with 2 bools - marked obsolete in v1.49, May 2016. - -Other Changes: - -- ArrowButton: Fixed to honor PushButtonRepeat() setting (and internals' ImGuiItemFlags_ButtonRepeat). -- ArrowButton: Setup current line text baseline so that ArrowButton() + SameLine() + Text() are aligned properly. -- Nav: Added a CTRL+TAB window list and changed the highlight system accordingly. The change is motivated by upcoming - Docking features. (#787) -- Nav: Made CTRL+TAB skip menus + skip the current navigation window if is has the ImGuiWindow_NoNavFocus set. (#787) - While it was previously possible, you won't be able to CTRL+TAB out and immediately back in a window with the - ImGuiWindow_NoNavFocus flag. -- Window: Allow menu and popups windows from ignoring the style.WindowMinSize values so short menus/popups are not padded. (#1909) -- Window: Added global io.ConfigResizeWindowsFromEdges option to enable resizing windows from their edges and from - the lower-left corner. (#1495) -- Window: Collapse button shows hovering highlight + clicking and dragging on it allows to drag the window as well. -- Added IsItemEdited() to query if the last item modified its value (or was pressed). This is equivalent to the bool - returned by most widgets. - It is useful in some situation e.g. using InputText() with ImGuiInputTextFlags_EnterReturnsTrue. (#2034) -- InputText: Added support for buffer size/capacity changes via the ImGuiInputTextFlags_CallbackResize flag. (#2006, #1443, #1008). -- InputText: Fixed not tracking the cursor horizontally when modifying the text buffer through a callback. -- InputText: Fixed minor off-by-one issue when submitting a buffer size smaller than the initial zero-terminated buffer contents. -- InputText: Fixed a few pathological crash cases on single-line InputText widget with multiple millions characters worth of contents. - Because the current text drawing function reserve for a worst-case amount of vertices and how we handle horizontal clipping, - we currently just avoid displaying those single-line widgets when they are over a threshold of 2 millions characters, - until a better solution is found. -- Drag and Drop: Fixed an incorrect assert when dropping a source that is submitted after the target (bug introduced with 1.62 changes - related to the addition of IsItemDeactivated()). (#1875, #143) -- Drag and Drop: Fixed ImGuiDragDropFlags_SourceNoDisableHover to affect hovering state prior to calling IsItemHovered() + fixed description. (#143) -- Drag and Drop: Calling BeginTooltip() between a BeginDragSource()/EndDragSource() or BeginDropTarget()/EndDropTarget() uses adjusted tooltip - settings matching the one created when calling BeginDragSource() without the ImGuiDragDropFlags_SourceNoPreviewTooltip flag. (#143) -- Drag and Drop: Payload stays available and under the mouse if the source stops being submitted, however the tooltip is replaced by "...". (#1725) -- Drag and Drop: Added ImGuiDragDropFlags_SourceAutoExpirePayload flag to force payload to expire if the source stops being submitted. (#1725, #143). -- IsItemHovered(): Added ImGuiHoveredFlags_AllowWhenDisabled flag to query hovered status on disabled items. (#1940, #211) -- Selectable: Added ImGuiSelectableFlags_Disabled flag in the public API. (#211) -- ColorEdit4: Fixed a bug when text input or drag and drop leading to unsaturated HSV values would erroneously alter the resulting color. (#2050) -- Misc: Added optional misc/stl/imgui_stl.h wrapper to use with STL types (e.g. InputText with std::string). (#2006, #1443, #1008) - [*EDIT* renamed to misc/std/imgui_stdlib.h in 1.66] -- Misc: Added IMGUI_VERSION_NUM for easy compile-time testing. (#2025) -- Misc: Added ImGuiMouseCursor_Hand cursor enum + corresponding software cursor. (#1913, 1914) [@aiekick, @ocornut] -- Misc: Tweaked software mouse cursor offset to match the offset of the corresponding Windows 10 cursors. -- Made assertion more clear when trying to call Begin() outside of the NewFrame()..EndFrame() scope. (#1987) -- Fixed assertion when transitioning from an active ID to another within a group, affecting ColorPicker (broken in 1.62). (#2023, #820, #956, #1875). -- Fixed PushID() from keeping alive the new ID Stack top value (if a previously active widget shared the ID it would be erroneously kept alive). -- Fixed horizontal mouse wheel not forwarding the request to the parent window if ImGuiWindowFlags_NoScrollWithMouse is set. (#1463, #1380, #1502) -- Fixed an include build issue for Cygwin in non-POSIX (Win32) mode. (#1917, #1319, #276) -- ImDrawList: Improved handling for worst-case vertices reservation policy when large amount of text (e.g. 1+ million character strings) - are being submitted in a single call. It would typically have crashed InputTextMultiline(). (#200) -- OS/Windows: Fixed missing ImmReleaseContext() call in the default Win32 IME handler. (#1932) [@vby] -- Metrics: Changed io.MetricsActiveWindows to reflect the number of active windows (!= from visible windows), which is useful - for lazy/idle render mechanisms as new windows are typically not visible for one frame. -- Metrics: Added io.MetricsRenderWindow to reflect the number of visible windows. -- Metrics: Added io.MetricsActiveAllocations, moving away from the cross-context global counters than we previously used. (#1565, #1599, #586) -- Demo: Added basic Drag and Drop demo. (#143) -- Demo: Modified the Console example to use InsertChars() in the input text callback instead of poking directly into the buffer. - Although this won't make a difference in the example itself, using InsertChars() will honor the resizing callback properly. (#2006, #1443, #1008). -- Demo: Clarified the use of IsItemHovered()/IsItemActive() right after being in the "Active, Focused, Hovered & Focused Tests" section. -- Examples: Tweaked the main.cpp of each example. -- Examples: Metal: Added Metal rendering backend. (#1929, #1873) [@warrenm] -- Examples: OSX: Added early raw OSX platform backend. (#1873) [@pagghiu, @itamago, @ocornut] -- Examples: Added mac OSX & iOS + Metal example in example_apple_metal/. (#1929, #1873) [@warrenm] -- Examples: Added mac OSX + OpenGL2 example in example_apple_opengl2/. (#1873) -- Examples: OpenGL3: Added shaders more versions of GLSL. (#1938, #1941, #1900, #1513, #1466, etc.) -- Examples: OpenGL3: Tweaked the imgui_impl_opengl3.cpp to work as-is with Emscripten + WebGL 2.0. (#1941). [@o-micron] -- Examples: OpenGL3: Made the example app default to GL 3.0 + GLSL 130 (instead of GL 3.2 + GLSL 150) unless on Mac. -- Examples: OpenGL3: Added error output when shaders fail to compile/link. -- Examples: OpenGL3: Added support for glew and glad OpenGL loaders out of the box. (#2001, #2002) [@jdumas] -- Examples: OpenGL2: Disabling/restoring GL_LIGHTING and GL_COLOR_MATERIAL to increase compatibility with legacy OpenGL applications. (#1996) -- Examples: DirectX10, DirectX11: Fixed unreleased resources in Init and Shutdown functions. (#1944) -- Examples: DirectX11: Querying for IDXGIFactory instead of IDXGIFactory1 to increase compatibility. (#1989) [@matt77hias] -- Examples: Vulkan: Fixed handling of VkSurfaceCapabilitiesKHR::maxImageCount = 0 case. Tweaked present mode selections. -- Examples: Win32, Glfw, SDL: Added support for the ImGuiMouseCursor_Hand cursor. - - ------------------------------------------------------------------------ - VERSION 1.62 (Released 2018-06-22) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.62 - -Breaking Changes: - -- TreeNodeEx(): The helper ImGuiTreeNodeFlags_CollapsingHeader flag now include ImGuiTreeNodeFlags_NoTreePushOnOpen. - The flag was already set by CollapsingHeader(). - The only difference is if you were using TreeNodeEx() manually with ImGuiTreeNodeFlags_CollapsingHeader and without - ImGuiTreeNodeFlags_NoTreePushOnOpen. In this case you can remove the ImGuiTreeNodeFlags_NoTreePushOnOpen flag from - your call (ImGuiTreeNodeFlags_CollapsingHeader & ~ImGuiTreeNodeFlags_NoTreePushOnOpen). (#1864) - This also apply if you were using internal's TreeNodeBehavior() with the ImGuiTreeNodeFlags_CollapsingHeader flag directly. -- ImFontAtlas: Renamed GetGlyphRangesChinese() to GetGlyphRangesChineseFull() to distinguish new smaller variants and - discourage using the full set. (#1859) - -Other Changes: - -- Examples backends have been refactored to separate the platform code (e.g. Win32, Glfw, SDL2) from the renderer code (e.g. DirectX11, OpenGL3, Vulkan). - The "Platform" backends are in charge of: mouse/keyboard/gamepad inputs, cursor shape, timing, etc. - The "Renderer" backends are in charge of: creating the main font texture, rendering imgui draw data. - before: imgui_impl_dx11.cpp --> after: imgui_impl_win32.cpp + imgui_impl_dx11.cpp - before: imgui_impl_dx12.cpp --> after: imgui_impl_win32.cpp + imgui_impl_dx12.cpp - before: imgui_impl_glfw_gl3.cpp --> after: imgui_impl_glfw.cpp + imgui_impl_opengl2.cpp - before: imgui_impl_glfw_vulkan.cpp --> after: imgui_impl_glfw.cpp + imgui_impl_vulkan.cpp - before: imgui_impl_sdl_gl3.cpp --> after: imgui_impl_sdl2.cpp + imgui_impl_opengl2.cpp - before: imgui_impl_sdl_gl3.cpp --> after: imgui_impl_sdl2.cpp + imgui_impl_opengl3.cpp etc. - - The idea is what we can now easily combine and maintain backends and reduce code redundancy. Individual files are - smaller and more reusable. Integration of imgui into a new/custom engine may also be easier as there is less overlap - between "windowing / inputs" and "rendering" code, so you may study or grab one half of the code and not the other. - - This change was motivated by the fact that adding support for the upcoming multi-viewport feature requires more work - from the Platform and Renderer backends, and the amount of redundancy across files was becoming too difficult to - maintain. If you use default backends, you'll benefit from an easy update path to support multi-viewports later - (for future ImGui 1.7x). - - This is not strictly a breaking change if you keep your old backends, but when you'll want to fully update your backends, - expect to have to reshuffle a few things. - - Each example still has its own main.cpp which you may refer you to understand how to initialize and glue everything together. - - Some frameworks (such as the Allegro, Marmalade) handle both the "platform" and "rendering" part, and your custom engine may as well. - - Read examples/README.txt for details. -- Added IsItemDeactivated() to query if the last item was active previously and isn't anymore. Useful for Undo/Redo patterns. (#820, #956, #1875) -- Added IsItemDeactivatedAfterChange() [*EDIT* renamed to IsItemDeactivatedAfterEdit() in 1.63] if the last item was active previously, - is not anymore, and during its active state modified a value. Note that you may still get false positive (e.g. drag value and while - holding return on the same value). (#820, #956, #1875) -- Nav: Added support for PageUp/PageDown (explorer-style: first aim at bottom/top most item, when scroll a page worth of contents). (#787) -- Nav: To keep the navigated item in view we also attempt to scroll the parent window as well as the current window. (#787) -- ColorEdit3, ColorEdit4, ColorButton: Added ImGuiColorEditFlags_NoDragDrop flag to disable ColorEditX as drag target and ColorButton as drag source. (#1826) -- BeginDragDropSource(): Offset tooltip position so it is off the mouse cursor, but also closer to it than regular tooltips, - and not clamped by viewport. (#1739) -- BeginDragDropTarget(): Added ImGuiDragDropFlags_AcceptNoPreviewTooltip flag to request hiding the drag source tooltip - from the target site. (#143) -- BeginCombo(), BeginMainMenuBar(), BeginChildFrame(): Temporary style modification are restored at the end of BeginXXX - instead of EndXXX, to not affect tooltips and child windows. -- Popup: Improved handling of (erroneously) repeating calls to OpenPopup() to not close the popup's child popups. (#1497, #1533, #1865). -- InputTextMultiline(): Fixed double navigation highlight when scrollbar is active. (#787) -- InputText(): Fixed Undo corruption after pasting large amount of text (Redo will still fail when undo buffers are exhausted, - but text won't be corrupted). -- SliderFloat(): When using keyboard/gamepad and a zero precision format string (e.g. "%.0f"), always step in integer units. (#1866) -- ImFontConfig: Added GlyphMinAdvanceX/GlyphMaxAdvanceX settings useful to make a font appears monospaced, particularly useful - for icon fonts. (#1869) -- ImFontAtlas: Added GetGlyphRangesChineseSimplifiedCommon() helper that returns a list of ~2500 most common Simplified Chinese - characters. (#1859) [@JX-Master, @ocornut] -- Examples: OSX: Added imgui_impl_osx.mm backend to be used along with e.g. imgui_impl_opengl2.cpp. (#281, #1870) [@pagghiu, @itamago, @ocornut] -- Examples: GLFW: Made it possible to Shutdown/Init the backend again (by resetting the time storage properly). (#1827) [@ice1000] -- Examples: Win32: Fixed handling of mouse wheel messages to support sub-unit scrolling messages (typically sent by track-pads). (#1874) [@zx64] -- Examples: SDL+Vulkan: Added SDL+Vulkan example. -- Examples: Allegro5: Added support for ImGuiConfigFlags_NoMouseCursorChange flag. Added clipboard support. -- Examples: Allegro5: Unindexing buffers ourselves as Allegro indexed drawing primitives are buggy in the DirectX9 backend - (will be fixed in Allegro 5.2.5+). -- Examples: DirectX12: Moved the ID3D12GraphicsCommandList* parameter from ImGui_ImplDX12_NewFrame() to ImGui_ImplDX12_RenderDrawData() which makes a lots more sense. (#301) -- Examples: Vulkan: Reordered parameters ImGui_ImplVulkan_RenderDrawData() to be consistent with other backends, - a good occasion since we refactored the code. -- Examples: FreeGLUT: Added FreeGLUT backends. Added FreeGLUT+OpenGL2 example. (#801) -- Examples: The functions in imgui_impl_xxx.cpp are prefixed with IMGUI_IMPL_API (which defaults to IMGUI_API) to facilitate - some uses. (#1888) -- Examples: Fixed backends to use ImGuiMouseCursor_COUNT instead of old name ImGuiMouseCursor_Count_ so they can compile - with IMGUI_DISABLE_OBSOLETE_FUNCTIONS. (#1887) -- Misc: Updated stb_textedit from 1.09 + patches to 1.12 + minor patches. -- Internals: PushItemFlag() flags are inherited by BeginChild(). - - ------------------------------------------------------------------------ - VERSION 1.61 (Released 2018-05-14) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.61 - -Breaking Changes: - -- DragInt(): The default compile-time format string has been changed from "%.0f" to "%d", as we are not using integers internally - any more. If you used DragInt() with custom format strings, make sure you change them to use %d or an integer-compatible format. - To honor backward-compatibility, the DragInt() code will currently parse and modify format strings to replace %*f with %d, - giving time to users to upgrade their code. - If you have IMGUI_DISABLE_OBSOLETE_FUNCTIONS enabled, the code will instead assert! You may run a reg-exp search on your - codebase for e.g. "DragInt.*%f" to you find them. -- InputFloat(): Obsoleted InputFloat() functions taking an optional "int decimal_precision" in favor of an equivalent and more - flexible "const char* format", consistent with other functions. Kept redirection functions (will obsolete). -- Misc: IM_DELETE() helper function added in 1.60 doesn't set the input pointer to NULL, more consistent with standard - expectation and allows passing r-values. - -Other Changes: - -- Added DragScalar, DragScalarN: supports signed/unsigned, 32/64 bits, float/double data types. (#643, #320, #708, #1011) -- Added InputScalar, InputScalarN: supports signed/unsigned, 32/64 bits, float/double data types. (#643, #320, #708, #1011) -- Added SliderScalar, SliderScalarN: supports signed/unsigned, 32/64 bits, float/double data types. (#643, #320, #708, #1011) -- Window: Fixed pop-ups/tooltips/menus not honoring style.DisplaySafeAreaPadding as well as it should have (part of menus - displayed outside the safe area, etc.). -- Window: Fixed windows using the ImGuiWindowFlags_NoSavedSettings flag from not using the same default position as other windows. (#1760) -- Window: Relaxed the internal stack size checker to allow Push/Begin/Pop/.../End patterns to be used with PushStyleColor, PushStyleVar, PushFont without causing a false positive assert. (#1767) -- Window: Fixed the default proportional item width lagging by one frame on resize. -- Columns: Fixed a bug introduced in 1.51 where columns would affect the contents size of their container, often creating - feedback loops when ImGuiWindowFlags_AlwaysAutoResize was used. (#1760) -- Settings: Fixed saving an empty .ini file if CreateContext/DestroyContext are called without a single call to NewFrame(). (#1741) -- Settings: Added LoadIniSettingsFromDisk(), LoadIniSettingsFromMemory(), SaveIniSettingsToDisk(), SaveIniSettingsToMemory() - to manually load/save .ini settings. (#923, #993) -- Settings: Added io.WantSaveIniSettings flag, which is set to notify the application that e.g. SaveIniSettingsToMemory() - should be called. (#923, #993) -- Scrolling: Fixed a case where using SetScrollHere(1.0f) at the bottom of a window on the same frame the window height - has been growing would have the scroll clamped using the previous height. (#1804) -- MenuBar: Made BeginMainMenuBar() honor style.DisplaySafeAreaPadding so the text can be made visible on TV settings that - don't display all pixels. (#1439) [@dougbinks] -- InputText: On Mac OS X, filter out characters when the CMD modifier is held. (#1747) [@sivu] -- InputText: On Mac OS X, support CMD+SHIFT+Z for Redo. CMD+Y is also supported as major apps seems to default to support both. (#1765) [@lfnoise] -- InputText: Fixed returning true when edition is cancelled with ESC and the current buffer matches the initial value. -- InputFloat,InputFloat2,InputFloat3,InputFloat4: Added variations taking a more flexible and consistent optional - "const char* format" parameter instead of "int decimal_precision". This allow using custom formats to display values - in scientific notation, and is generally more consistent with other API. - Obsoleted functions using the optional "int decimal_precision" parameter. (#648, #712) -- DragFloat, DragInt: Cancel mouse tweak when current value is initially past the min/max boundaries and mouse is pushing - in the same direction (keyboard/gamepad version already did this). -- DragFloat, DragInt: Honor natural type limits (e.g. INT_MAX, FLT_MAX) instead of wrapping around. (#708, #320) -- DragFloat, SliderFloat: Fixes to allow input of scientific notation numbers when using CTRL+Click to input the value. (~#648, #1011) -- DragFloat, SliderFloat: Rounding-on-write uses the provided format string instead of parsing the precision from the string, - which allows for finer uses of %e %g etc. (#648, #642) -- DragFloat: Improved computation when using the power curve. Improved lost of input precision with very small steps. - Added an assert than power-curve requires a min/max range. (~#642) -- DragFloat: The 'power' parameter is only honored if the min/max parameter are also setup. -- DragInt, SliderInt: Fixed handling of large integers (we previously passed data around internally as float, which reduced - the range of valid integers). -- ColorEdit: Fixed not being able to pass the ImGuiColorEditFlags_NoAlpha or ImGuiColorEditFlags_HDR flags to SetColorEditOptions(). -- Nav: Fixed hovering a Selectable() with the mouse so that it update the navigation cursor (as it happened in the pre-1.60 navigation branch). (#787) -- Style: Changed default style.DisplaySafeAreaPadding values from (4,4) to (3,3) so it is smaller than FramePadding and has no effect on main menu bar on a computer. (#1439) -- Fonts: When building font atlas, glyphs that are missing in the fonts are not using the glyph slot to render the default glyph. Saves space and allow merging fonts with - overlapping font ranges such as FontAwesome5 which split out the Brands separately from the Solid fonts. (#1703, #1671) -- Misc: Added IMGUI_CHECKVERSION() macro to compare version string and data structure sizes in order to catch issues with mismatching compilation unit settings. (#1695, #1769) -- Misc: Added IMGUI_DISABLE_MATH_FUNCTIONS in imconfig.h to make it easier to redefine wrappers for std/crt math functions. -- Misc: Fix to allow compiling in unity builds where stb_rectpack/stb_truetype may be already included in the same compilation unit. -- Demo: Simple Overlay: Added a context menu item to enable freely moving the window. -- Demo: Added demo for DragScalar(), InputScalar(), SliderScalar(). (#643) -- Examples: Calling IMGUI_CHECKVERSION() in the main.cpp of every example application. -- Examples: Allegro 5: Added support for 32-bit indices setup via defining ImDrawIdx, to avoid an unnecessary conversion (Allegro 5 doesn't support 16-bit indices). -- Examples: Allegro 5: Renamed backend from imgui_impl_a5.cpp to imgui_impl_allegro5.cpp. -- Examples: DirectX 9: Saving/restoring Transform because they don't seem to be included in the StateBlock. Setting shading mode to Gouraud. (#1790, #1687) [@sr-tream] -- Examples: SDL: Fixed clipboard paste memory leak in the SDL backend code. (#1803) [@eliasdaler] -- Various minor fixes, tweaks, refactoring, comments. - - ------------------------------------------------------------------------ - VERSION 1.60 (Released 2018-04-07) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.60 - -The gamepad/keyboard navigation branch (which has been in the work since July 2016) has been merged. -Gamepad/keyboard navigation is still marked as Beta and has to be enabled explicitly. -Various internal refactoring have also been done, as part of the navigation work and as part of the upcoming viewport/docking work. - -Breaking Changes: - -- Obsoleted the io.RenderDrawListsFn callback, you can call your graphics engine render function after ImGui::Render(). - e.g. with example backends, call ImDrawData* draw_data = ImGui::GetDrawData(); ImGui_ImplXXXX_RenderDrawData(draw_data). -- Reorganized context handling to be more explicit: (#1599) - - YOU NOW NEED TO CALL ImGui::CreateContext() AT THE BEGINNING OF YOUR APP, AND CALL ImGui::DestroyContext() AT THE END. - - removed Shutdown() function, as DestroyContext() serve this purpose. If you are using an old backend from the examples/ folder, remove the line that calls Shutdown(). - - you may pass a ImFontAtlas* pointer to CreateContext() to share a font atlas between contexts. Otherwise CreateContext() will create its own font atlas instance. - - removed allocator parameters from CreateContext(), they are now setup with SetAllocatorFunctions(), and shared by all contexts. - - removed the default global context and font atlas instance, which were confusing for users of DLL reloading and users of multiple contexts. -- Renamed ImGuiStyleVar_Count_ to ImGuiStyleVar_COUNT and ImGuiMouseCursor_Count_ to ImGuiMouseCursor_COUNT for consistency with other public enums. -- Fonts: Moved sample TTF files from extra_fonts/ to misc/fonts/. If you loaded files directly from the imgui repo you may need to update your paths. -- Fonts: Changed ImFont::DisplayOffset.y to defaults to 0 instead of +1. Fixed vertical rounding of Ascent/Descent to match TrueType renderer. - If you were adding or subtracting (not assigning) to ImFont::DisplayOffset check if your fonts are correctly aligned vertically. (#1619) -- BeginDragDropSource(): temporarily removed the optional mouse_button=0 parameter because it is not really usable in many situations at the moment. -- Obsoleted IsAnyWindowHovered() in favor of IsWindowHovered(ImGuiHoveredFlags_AnyWindow). Kept redirection function (will obsolete). -- Obsoleted IsAnyWindowFocused() in favor of IsWindowFocused(ImGuiFocusedFlags_AnyWindow). Kept redirection function (will obsolete). -- Renamed io.WantMoveMouse to io.WantSetMousePos for consistency and ease of understanding (was added in 1.52, not used by core, and honored by some backend ahead of merging the Nav branch). -- Removed ImGuiCol_CloseButton, ImGuiCol_CloseButtonActive, ImGuiCol_CloseButtonHovered style colors as the closing cross uses regular button colors now. -- Renamed ImGuiSizeConstraintCallback to ImGuiSizeCallback, ImGuiSizeConstraintCallbackData to ImGuiSizeCallbackData. -- Removed CalcItemRectClosestPoint() which was weird and not really used by anyone except demo code. If you need it should be easy to replicate on your side (you can find the code in 1.53). -- [EDITED] Window: BeginChild() with an explicit name doesn't include the hash within the internal window name. (#1698) - This change was erroneously introduced, undoing the change done for #894, #713, and not documented properly in the original - 1.60 release Changelog. It was fixed on 2018-09-28 (1.66) and I wrote this paragraph the same day. - -Other Changes: - -- Doc: Added a Changelog file in the repository to ease comparing versions (it goes back to dear imgui 1.48), until now it was only on GitHub. -- Navigation: merged in the gamepad/keyboard navigation (about a million changes!). (#787, #323) - The initial focus was to support game controllers, but keyboard is becoming increasingly and decently usable. -- To use Gamepad Navigation: - - Set io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad to enable. - - Backend: Set io.BackendFlags |= ImGuiBackendFlags_HasGamepad + fill the io.NavInputs[] fields before calling NewFrame(). Read imgui.cpp for more details. - - See https://github.com/ocornut/imgui/issues/1599 for recommended gamepad mapping or download PNG/PSD at http://goo.gl/9LgVZW - - See 'enum ImGuiNavInput_' in imgui.h for a description of inputs. Read imgui.cpp for more details. -- To use Keyboard Navigation: - - Set io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard to enable. NewFrame() will automatically - fill io.NavInputs[] based on your io.KeysDown[] + io.KeyMap[] arrays. - - Basic controls: arrows to navigate, Alt to enter menus, Space to activate item, Enter to edit text, - Escape to cancel/close, Ctrl+Tab to focus windows, etc. - - When keyboard navigation is active (io.NavActive + ImGuiConfigFlags_NavEnableKeyboard), - the io.WantCaptureKeyboard flag will be set. - - For more advanced uses, you may want to read from io.NavActive or io.NavVisible. Read imgui.cpp for more details. -- Navigation: SetItemDefaultFocus() sets the navigation position in addition to scrolling. (#787) -- Navigation: Added IsItemFocused(), added IsAnyItemFocused(). (#787) -- Navigation: Added window flags: ImGuiWindowFlags_NoNav (== ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus). -- Navigation: Style: Added ImGuiCol_NavHighlight, ImGuiCol_NavWindowingHighlight colors. (#787) -- Navigation: TreeNode: Added ImGuiTreeNodeFlags_NavLeftJumpsBackHere flag to allow Nav Left direction to jump back to parent tree node from any of its child. (#1079) -- Navigation: IO: Added io.ConfigFlags (input), io.NavActive (output), io.NavVisible (output). (#787) -- Context: Removed the default global context and font atlas instances, which caused various - problems to users of multiple contexts and DLL users. (#1565, #1599) YOU NOW NEED TO CALL - ImGui::CreateContext() AT THE BEGINNING OF YOUR APP, AND CALL ImGui::DestroyContext() AT THE END. - Existing apps will assert/crash without it. -- Context: Added SetAllocatorFunctions() to rewire memory allocators (as a replacement to previous - parameters to CreateContext()). Allocators are shared by all contexts and imgui helpers. (#1565, #586, #992, #1007, #1558) -- Context: You may pass a ImFontAtlas to CreateContext() to specify a font atlas to share. - Shared font atlas are not owned by the context and not destroyed along with it. (#1599) -- Context: Added IMGUI_DISABLE_DEFAULT_ALLOCATORS to disable linking with malloc/free. (#1565, #586, #992, #1007, #1558) -- IO: Added io.ConfigFlags for user application to store settings for imgui and for the backend: - - ImGuiConfigFlags_NavEnableKeyboard: Enable keyboard navigation. - - ImGuiConfigFlags_NavEnableGamepad: Enable gamepad navigation (provided ImGuiBackendFlags_HasGamepad is also set by backend). - - ImGuiConfigFlags_NavEnableSetMousePos: Instruct navigation to move the mouse cursor. May be useful on TV/console systems where moving a virtual mouse is awkward. - - ImGuiConfigFlags_NoMouseCursorChange: Instruct backend to not alter mouse cursor shape and visibility (by default the example backend use mouse cursor API of the platform when available) - - ImGuiConfigFlags_NoMouse: Instruct imgui to clear mouse position/buttons in NewFrame(). This allows ignoring the mouse information passed by the backend. - - ImGuiConfigFlags_IsSRGB, ImGuiConfigFlags_IsTouchScreen: Flags for general application use. -- IO: Added io.BackendFlags for backend to store its capabilities (currently: _HasGamepad, - _HasMouseCursors, _HasSetMousePos). This will be used more in the next version. -- IO: Added ImGuiKey_Insert, ImGuiKey_Space keys. Setup in all example backends. (#1541) -- IO: Added Horizontal Mouse Wheel support for horizontal scrolling. (#1463) [@tseeker] -- IO: Added IsAnyMouseDown() helper which is helpful for backends to handle mouse capturing. -- Window: Clicking on a window with the ImGuiWIndowFlags_NoMove flags takes an ActiveId so - we can't hover something else when dragging afterwards. (#1381, #1337) -- Window: IsWindowHovered(): Added ImGuiHoveredFlags_AnyWindow, ImGuiFocusedFlags_AnyWindow flags - (See Breaking Changes). Added to demo. (#1382) -- Window: Added SetNextWindowBgAlpha() helper. Particularly helpful since the legacy 5-parameters - version of Begin() has been marked as obsolete in 1.53. (#1567) -- Window: Fixed SetNextWindowContentSize() with 0.0f on Y axis (or SetNextWindowContentWidth()) - overwriting the contents size. Got broken on Dec 10 (1.53). (#1363) -- ArrowButton: Added ArrowButton() given a cardinal direction (e.g. ImGuiDir_Left). -- InputText: Added alternative clipboard shortcuts: Shift+Delete (cut), CTRL+Insert (copy), Shift+Insert (paste). (#1541) -- InputText: Fixed losing Cursor X position when clicking outside on an item that's submitted - after the InputText(). It was only noticeable when restoring focus programmatically. (#1418, #1554) -- InputText: Added ImGuiInputTextFlags_CharsScientific flag to also allow 'e'/'E' for input of values - using scientific notation. Automatically used by InputFloat. -- Style: Default style is now StyleColorsDark(), instead of the old StyleColorsClassic(). (#707) -- Style: Enable window border by default. (#707) -- Style: Exposed ImGuiStyleVar_WindowTitleAlign, ImGuiStyleVar_ScrollbarSize, ImGuiStyleVar_ScrollbarRounding, - ImGuiStyleVar_GrabRounding + added an assert to reduce accidental breakage. (#1181) -- Style: Added style.MouseCursorScale help when using the software mouse cursor facility. (#939). -- Style: Close buttons now display a cross before hovering. Fixed cross positioning being a little off. Uses button colors for highlight when hovering. (#707) -- Popup: OpenPopup() Always reopen existing pop-ups. (Removed imgui_internal.h's OpenPopupEx() which was used for this.) (#1497, #1533). -- Popup: BeginPopupContextItem(), BeginPopupContextWindow(), BeginPopupContextVoid(), OpenPopupOnItemClick() all react on mouse release instead of mouse press. (~#439) -- Popup: Better handling of user mistakenly calling OpenPopup() every frame (with the 'reopen_existing' option). - The error will now be more visible and easier to understand. (#1497) -- Popup: BeginPopup(): Exposed extra_flags parameter that are passed through to Begin(). (#1533) -- Popup: BeginPopupModal: fixed the conditional test for SetNextWindowPos() which was polling - the wrong window, which in practice made the test succeed all the time. -- Tooltip: BeginTooltip() sets ImGuiWindowFlags_NoInputs flag. -- Scrollbar: Fixed ScrollbarY enable test after ScrollbarX has been enabled being a little - off (small regression from Nov 2017). (#1574) -- Scrollbar: Fixed ScrollbarX enable test subtracting WindowPadding.x (this has been there - since the addition of horizontal scroll bar!). -- Columns: Clear offsets data when columns count changed. (#1525) -- Columns: Fixed a memory leak of ImGuiColumnsSet's Columns vector. (#1529) [@unprompted] -- Columns: Fixed resizing a window very small breaking some columns positioning (broken in 1.53). -- Columns: The available column extent takes consideration of the right-most clipped pixel, - so the right-most column may look a little wider but will contain the same amount of visible contents. -- MenuBar: Fixed menu bar pushing a clipping rect outside of its allocated bound (usually unnoticeable). -- TreeNode: nodes with the ImGuiTreeNodeFlags_Leaf flag correctly disable highlight when DragDrop is active. (#143, #581) -- Drag and Drop: Increased payload type string to 32 characters instead of 8. (#143) -- Drag and Drop: TreeNode as drop target displays rectangle over full frame. (#1597, #143) -- DragFloat: Fix/workaround for backends which do not preserve a valid mouse position when dragged out of bounds. (#1559) -- InputFloat: Allow inputting value using scientific notation e.g. "1e+10". -- InputDouble: Added InputDouble() function. We use a format string instead of a 'decimal_precision' - parameter to also for "%e" and variants. (#1011) -- Slider, Combo: Use ImGuiCol_FrameBgHovered color when hovered. (#1456) [@stfx] -- Combo: BeginCombo(): Added ImGuiComboFlags_NoArrowButton to disable the arrow button and - only display the wide value preview box. -- Combo: BeginCombo(): Added ImGuiComboFlags_NoPreview to disable the preview and only - display a square arrow button. -- Combo: Arrow button isn't displayed over frame background so its blended color matches other buttons. Left side of the button isn't rounded. -- PlotLines: plot a flat line if scale_min==scale_max. (#1621) -- Fonts: Changed DisplayOffset.y to defaults to 0 instead of +1. Fixed rounding of Ascent/Descent - to match TrueType renderer. If you were adding or subtracting (not assigning) to ImFont::DisplayOffset - check if your fonts are correctly aligned vertically. (#1619) -- Fonts: Updated stb_truetype from 1.14 to stb_truetype 1.19. (w/ include fix from some platforms #1622) -- Fonts: Added optional FreeType rasterizer in misc/freetype. Moved from imgui_club repo. (#618) [@Vuhdo, @mikesart, @ocornut] -- Fonts: Moved extra_fonts/ to misc/fonts/. -- ImFontAtlas: Fixed cfg.MergeMode not reusing existing glyphs if available (always overwrote). -- ImFontAtlas: Handle stb_truetype stbtt_InitFont() and stbtt_PackBegin() possible failures - more gracefully, GetTexDataAsRGBA32() won't crash during conversion. (#1527) -- ImFontAtlas: Moved mouse cursor data out of ImGuiContext, fix drawing them with multiple contexts. - Also remove the last remaining undesirable dependency on ImGui in imgui_draw.cpp. (#939) -- ImFontAtlas: Added ImFontAtlasFlags_NoPowerOfTwoHeight flag to disable padding font height - to nearest power of two. (#1613) -- ImFontAtlas: Added ImFontAtlasFlags_NoMouseCursors flag to disable baking software mouse cursors, - mostly to save texture memory on very low end hardware. (#1613) -- ImDrawList: Fixed AddRect() with anti-aliasing disabled (lower-right corner pixel was often - missing, rounding looks a little better.) (#1646) -- ImDrawList: Added CloneOutput() helper to facilitate the cloning of ImDrawData or ImDrawList for multi-threaded rendering. -- Misc: Functions passed to libc qsort are explicitly marked cdecl to support compiling with - vectorcall as the default calling convention. (#1230, #1611) [@RandyGaul] -- Misc: ImVec2: added [] operator. This is becoming desirable for some code working of either - axes independently. Better adding it sooner than later. -- Misc: NewFrame(): Added an assert to detect incorrect filling of the io.KeyMap[] array earlier. (#1555) -- Misc: Added IM_OFFSETOF() helper in imgui.h (previously was in imgui_internal.h) -- Misc: Added IM_NEW(), IM_DELETE() helpers in imgui.h (previously were in imgui_internal.h) -- Misc: Added obsolete redirection function GetItemsLineHeightWithSpacing() (which redirects to GetFrameHeightWithSpacing()), as intended and stated in docs of 1.53. -- Misc: Added misc/natvis/imgui.natvis for visual studio debugger users to easily visualize imgui internal types. Added to examples projects. -- Misc: Added IMGUI_USER_CONFIG to define a custom configuration filename. (#255, #1573, #1144, #41) -- Misc: Added IMGUI_STB_TRUETYPE_FILENAME and IMGUI_STB_RECT_PACK_FILENAME compile time directives to use another version of the stb_ files. -- Misc: Updated stb_rect_pack from 0.10 to 0.11 (minor changes). - (Those flags are not used by ImGui itself, they only exists to make it easy for the engine/backend to pass information to the application in a standard manner.) -- Metrics: Added display of Columns state. -- Demo: Improved Selectable() examples. (#1528) -- Demo: Tweaked the Child demos, added a menu bar to the second child to test some navigation functions. -- Demo: Console: Using ImGuiCol_Text to be more friendly to color changes. -- Demo: Using IM_COL32() instead of ImColor() in ImDrawList-centric contexts. Trying to phase out use of the ImColor helper whenever possible. -- Examples: Files in examples/ now include their own changelog so it is easier to occasionally update your backends if needed. -- Examples: Using Dark theme by default. (#707). Tweaked demo code. -- Examples: Added support for horizontal mouse wheel for API that allows it. (#1463) [@tseeker] -- Examples: All examples now setup the io.BackendFlags to signify they can honor mouse cursors, gamepad, etc. -- Examples: DirectX10: Fixed erroneous call to io.Fonts->ClearInputData() + ClearTexData() that - was left in DX10 example but removed in 1.47 (Nov 2015) in every other backends. (#1733) -- Examples: DirectX12: Added DirectX 12 example. (#301) [@jdm3] -- Examples: OpenGL3+GLFW,SDL: Changed GLSL shader version from 330 to 150. (#1466, #1504) -- Examples: OpenGL3+GLFW,SDL: Added a way to override the GLSL version string in the Init function. (#1466, #1504). -- Examples: OpenGL3+GLFW,SDL: Creating VAO in the render function so it can be more easily used by multiple shared OpenGL contexts. (#1217) -- Examples: OpenGL3+GLFW: Using 3.2 context instead of 3.3. (#1466) -- Examples: OpenGL: Setting up glPixelStorei() explicitly before uploading texture. -- Examples: OpenGL: Calls to glPolygonMode() are casting parameters as GLEnum to not fail with more strict backends. (#1628) [@ilia-glushchenko] -- Examples: Win32 (DirectX9,10,11,12): Added support for mouse cursor shapes. (#1495) -- Examples: Win32 (DirectX9,10,11,12: Support for windows using the CS_DBLCLKS class flag by handling the double-click messages (WM_LBUTTONDBLCLK etc.). (#1538, #754) [@ndandoulakis] -- Examples: Win32 (DirectX9,10,11,12): Made the Win32 proc handlers not assert if there is no active context yet, to be more flexible with creation order. (#1565) -- Examples: GLFW: Added support for mouse cursor shapes (the diagonal resize cursors are unfortunately not supported by GLFW at the moment. (#1495) -- Examples: GLFW: Don't attempt to change the mouse cursor input mode if it is set to GLFW_CURSOR_DISABLED by the application. (#1202) [@PhilCK] -- Examples: SDL: Added support for mouse cursor shapes. (#1626) [@olls] -- Examples: SDL: Using SDL_CaptureMouse() to retrieve coordinates outside of client area when dragging - (SDL 2.0.4+ only, otherwise using SDL_WINDOW_INPUT_FOCUS instead of previously SDL_WINDOW_MOUSE_FOCUS). (#1559) -- Examples: SDL: Enabled vsync by default so people don't come at us when the examples are running at 2000 FPS and burning a CPU core. -- Examples: SDL: Using SDL_GetPerformanceCounter() / SDL_GetPerformanceFrequency() to handle frame-rate over 1000 FPS properly. (#996) -- Examples: SDL: Using scan-code exclusively instead of a confusing mixture of scan-codes and key-codes. -- Examples: SDL: Visual Studio: Added .vcxproj file. Using %SDL2_DIR% in the default .vcxproj - and build files instead of %SDL_DIR%, the earlier being more standard. -- Examples: Vulkan: Visual Studio: Added .vcxproj file. -- Examples: Apple: Fixed filenames in OSX xcode project. Various other Mac friendly fixes. [@gerryhernandez etc.] -- Examples: Visual Studio: Disabled extraneous function-level check in Release build. -- Various fixes, tweaks, internal refactoring, optimizations, comments. - - ------------------------------------------------------------------------ - VERSION 1.53 (Released 2017-12-25) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.53 - -Breaking Changes: - -- Renamed the emblematic `ShowTestWindow()` function to `ShowDemoWindow()`. Kept redirection function (will obsolete). -- Renamed `GetItemsLineHeightWithSpacing()` to `GetFrameHeightWithSpacing()` for consistency. Kept redirection function (will obsolete). -- Renamed `ImGuiTreeNodeFlags_AllowOverlapMode` flag to `ImGuiTreeNodeFlags_AllowItemOverlap`. Kept redirection enum (will obsolete). -- Obsoleted `IsRootWindowFocused()` in favor of using `IsWindowFocused(ImGuiFocusedFlags_RootWindow)`. Kept redirection function (will obsolete). (#1382) -- Obsoleted `IsRootWindowOrAnyChildFocused()` in favor of using `IsWindowFocused(ImGuiFocusedFlags_RootAndChildWindows)`. Kept redirection function (will obsolete). (#1382) -- Obsoleted `IsRootWindowOrAnyChildHovered()` in favor of using `IsWindowHovered(ImGuiHoveredFlags_RootAndChildWindows)`. Kept redirection function (will obsolete). (#1382) -- Obsoleted `SetNextWindowContentWidth() in favor of using `SetNextWindowContentSize()`. Kept redirection function (will obsolete). -- Renamed `ImGuiTextBuffer::append()` helper to `appendf()`, and `appendv()` to `appendfv()` for consistency. If you copied the 'Log' demo in your code, it uses appendv() so that needs to be renamed. -- ImDrawList: Removed 'bool anti_aliased = true' final parameter of `ImDrawList::AddPolyline()` and `ImDrawList::AddConvexPolyFilled()`. Prefer manipulating ImDrawList::Flags if you need to toggle them during the frame. -- Style, ImDrawList: Renamed `style.AntiAliasedShapes` to `style.AntiAliasedFill` for consistency and as a way to explicitly break code that manipulate those flag at runtime. You can now manipulate ImDrawList::Flags. -- Style, Begin: Removed `ImGuiWindowFlags_ShowBorders` window flag. Borders are now fully set up in the ImGuiStyle structure (see e.g. `style.FrameBorderSize`, `style.WindowBorderSize`, `style.PopupBorderSize`). - Use `ImGui::ShowStyleEditor()` to look them up. - Please note that the style system will keep evolving (hopefully stabilizing in Q1 2018), and so custom styles will probably subtly break over time. - It is recommended that you use the `StyleColorsClassic()`, `StyleColorsDark()`, `StyleColorsLight()` functions. Also see `ShowStyleSelector()`. -- Style: Removed `ImGuiCol_ComboBg` in favor of combo boxes using `ImGuiCol_PopupBg` for consistency. Combo are normal pop-ups. -- Style: Renamed `ImGuiCol_ChildWindowBg` to `ImGuiCol_ChildBg`. -- Style: Renamed `style.ChildWindowRounding` to `style.ChildRounding`, `ImGuiStyleVar_ChildWindowRounding` to `ImGuiStyleVar_ChildRounding`. -- Removed obsolete redirection functions: SetScrollPosHere() - marked obsolete in v1.42, July 2015. -- Removed obsolete redirection functions: GetWindowFont(), GetWindowFontSize() - marked obsolete in v1.48, March 2016. - -Other Changes: - -- Added `io.OptCursorBlink` option to allow disabling cursor blinking. (#1427) [renamed to io.ConfigCursorBlink in 1.63] -- Added `GetOverlayDrawList()` helper to quickly get access to a ImDrawList that will be rendered in front of every windows. -- Added `GetFrameHeight()` helper which returns `(FontSize + style.FramePadding.y * 2)`. -- Drag and Drop: Added Beta API to easily use drag and drop patterns between imgui widgets. - - Setup a source on a widget with `BeginDragDropSource()`, `SetDragDropPayload()`, `EndDragDropSource()` functions. - - Receive data with `BeginDragDropTarget()`, `AcceptDragDropPayload()`, `EndDragDropTarget()`. - - See ImGuiDragDropFlags for various options. - - The ColorEdit4() and ColorButton() widgets now support Drag and Drop. - - The API is tagged as Beta as it still may be subject to small changes. -- Drag and Drop: When drag and drop is active, tree nodes and collapsing header can be opened - by hovering on them for 0.7 seconds. -- Renamed io.OSXBehaviors to io.OptMacOSXBehaviors. Should not affect users as the compile-time - default is usually enough. (#473, #650) -- Style: Added StyleColorsDark() style. (#707) [@dougbinks] -- Style: Added StyleColorsLight() style. Best used with frame borders + thicker font than the default font. (#707) -- Style: Added style.PopupRounding setting. (#1112) -- Style: Added style.FrameBorderSize, style.WindowBorderSize, style.PopupBorderSize. - Removed ImGuiWindowFlags_ShowBorders window flag! - Borders are now fully set up in the ImGuiStyle structure. Use ImGui::ShowStyleEditor() to look them up. (#707, fix #819, #1031) -- Style: Various small changes to the classic style (most noticeably, buttons are now using blue shades). (#707) -- Style: Renamed ImGuiCol_ChildWindowBg to ImGuiCol_ChildBg. -- Style: Renamed style.ChildWindowRounding to style.ChildRounding, ImGuiStyleVar_ChildWindowRounding to ImGuiStyleVar_ChildRounding. -- Style: Removed ImGuiCol_ComboBg in favor of combo boxes using ImGuiCol_PopupBg for consistency. (#707) -- Style: Made the ScaleAllSizes() helper rounds down every values so they are aligned on integers. -- Focus: Added SetItemDefaultFocus(), which in the current (master) branch behave the same - as doing `if (IsWindowAppearing()) SetScrollHere()`. In the navigation branch this will also - set the default focus. Prefer using this when creating combo boxes with `BeginCombo()` so your - code will be forward-compatible with gamepad/keyboard navigation features. (#787) -- Combo: Pop-up grows horizontally to accommodate for contents that is larger then the parent - combo button. -- Combo: Added BeginCombo()/EndCombo() API which allows use to submit content of any form and - manage your selection state without relying on indices. -- Combo: Added ImGuiComboFlags_PopupAlignLeft flag to BeginCombo() to prioritize keeping the - pop-up on the left side (for small-button-looking combos). -- Combo: Added ImGuiComboFlags_HeightSmall, ImGuiComboFlags_HeightLarge, ImGuiComboFlags_HeightLargest - to easily provide desired pop-up height. -- Combo: You can use SetNextWindowSizeConstraints() before BeginCombo() to specify specific - pop-up width/height constraints. -- Combo: Offset popup position by border size so that a double border isn't so visible. (#707) -- Combo: Recycling windows by using a stack number instead of a unique id, wasting less memory (like menus do). -- InputText: Added ImGuiInputTextFlags_NoUndoRedo flag. (#1506, #1508) [@ibachar] -- Window: Fixed auto-resize allocating too much space for scrollbar when SizeContents is - bigger than maximum window size (fixes c0547d3). (#1417) -- Window: Child windows with MenuBar use regular WindowPadding.y so layout look consistent as - child or as a regular window. -- Window: Begin(): Fixed appending into a child window with a second Begin() from a different - window stack querying the wrong window for the window->Collapsed test. -- Window: Calling IsItemActive(), IsItemHovered() etc. after a call to Begin() provides item - data for the title bar, so you can easily test if the title bar is being hovered, etc. (#823) -- Window: Made it possible to use SetNextWindowPos() on a child window. -- Window: Fixed a one frame glitch. When an appearing window claimed the focus themselves, the - title bar wouldn't use the focused color for one frame. -- Window: Added ImGuiWindowFlags_ResizeFromAnySide flag to resize from any borders or from the - lower-left corner of a window. This requires your backend to honor GetMouseCursor() requests - for full usability. (#822) -- Window: Sizing fixes when using SetNextWindowSize() on individual axes. -- Window: Hide new window for one frame until they calculate their size. - Also fixes SetNextWindowPos() given a non-zero pivot. (#1694) -- Window: Made mouse wheel scrolling accommodate better to windows that are smaller than the scroll step. -- Window: SetNextWindowContentSize() adjust for the size of decorations (title bar/menu bar), - but _not_ for borders are we consistently make borders not affect layout. - If you need a non-child window of an exact size with border enabled but zero window padding, - you'll need to accommodate for the border size yourself. -- Window: Using the ImGuiWindowFlags_NoScrollWithMouse flag on a child window forwards the mouse wheel - event to the parent window, unless either ImGuiWindowFlags_NoInputs or ImGuiWindowFlags_NoScrollbar - are also set. (#1380, #1502) -- Window: Active Modal window always set the WantCaptureKeyboard flag. (#744) -- Window: Moving window doesn't use accumulating MouseDelta so straying out of imgui boundaries keeps moved imgui window at the same cursor-relative position. -- IsWindowFocused(): Added ImGuiFocusedFlags_ChildWindows flag to include child windows in the focused test. (#1382). -- IsWindowFocused(): Added ImGuiFocusedFlags_RootWindow flag to start focused test from the root (top-most) window. Obsolete IsRootWindowFocused(). (#1382) -- IsWindowHovered(): Added ImGuiHoveredFlags_ChildWindows flag to include child windows in the hovered test. (#1382). -- IsWindowHovered(): Added ImGuiHoveredFlags_RootWindow flag to start hovered test from the root (top-most) window. The combination of both flags obsoletes IsRootWindowOrAnyChildHovered(). (#1382) -- IsWindowHovered(): Fixed return value when an item is active to use the same logic as IsItemHovered(). (#1382, #1404) -- IsWindowHovered(): Always return true when current window is being moved. (#1382) -- Scrollbar: Fixed issues with vertical scrollbar flickering/appearing, typically when manually - resizing and using a pattern of filling available height (e.g. full sized BeginChild). -- Scrollbar: Minor graphical fix for when scrollbar don't have enough visible space to display the full grab. -- Scrolling: Fixed padding and scrolling asymmetry where lower/right sides of a window wouldn't - use WindowPadding properly + causing minor scrolling glitches. -- Tree: TreePush with zero arguments was ambiguous. Resolved by making it call TreePush(const void*). [@JasonWilkins] -- Tree: Renamed ImGuiTreeNodeFlags_AllowOverlapMode to ImGuiTreeNodeFlags_AllowItemOverlap. (#600, #1330) -- MenuBar: Fixed minor rendering issues on the right size when resizing a window very small and using rounded window corners. -- MenuBar: better software clipping to handle small windows, in particular child window don't have - minimum constraints so we need to render clipped menus better. -- BeginMenu(): Tweaked the Arrow/Triangle displayed on child menu items. -- Columns: Clipping columns borders on Y axis on CPU because some Linux GPU drivers appears to - be unhappy with triangle spanning large regions. (#125) -- Columns: Added ImGuiColumnsFlags_GrowParentContentsSize to internal API to restore old content - sizes behavior (may be obsolete). (#1444, #125) -- Columns: Columns width is no longer lost when dragging a column to the right side of the window, - until releasing the mouse button you have a chance to save them. (#1499, #125). [@ggtucker] -- Columns: Fixed dragging when using a same of columns multiple times in the frame. (#125) -- Indent(), Unindent(): Allow passing negative values. -- ColorEdit4(): Made IsItemActive() return true when picker pop-up is active. (#1489) -- ColorEdit4(): Tweaked tooltip so that the color button aligns more correctly with text. -- ColorEdit4(): Support drag and drop. Color buttons can be used as drag sources, and ColorEdit - widgets as drag targets. (#143) -- ColorPicker4(): Fixed continuously returning true when holding mouse button on the sat/value/alpha - locations. We only return true on value change. (#1489) -- NewFrame(): using literal strings in the most-frequently firing IM_ASSERT expressions to - increase the odd of programmers seeing them (especially those who don't use a debugger). -- NewFrame() now asserts if neither Render or EndFrame have been called. Exposed EndFrame(). - Made it legal to call EndFrame() more than one. (#1423) -- ImGuiStorage: Added BuildSortByKey() helper to rebuild storage from scratch. -- ImFont: Added GetDebugName() helper. -- ImFontAtlas: Added missing Thai punctuation in the GetGlyphRangesThai() ranges. (#1396) [@nProtect] -- ImDrawList: Removed 'bool anti_aliased = true' final parameter of ImDrawList::AddPolyline() and ImDrawList::AddConvexPolyFilled(). Anti-aliasing is controlled via the regular style.AntiAliased flags. -- ImDrawList: Added ImDrawList::AddImageRounded() helper. (#845) [@thedmd] -- ImDrawList: Refactored to make ImDrawList independent of ImGui. Removed static variable in PathArcToFast() which caused linking issues to some. -- ImDrawList: Exposed ImDrawCornerFlags, replaced occurrences of ~0 with an explicit ImDrawCornerFlags_All. - NB: Inversed BotLeft (prev 1<<3, now 1<<2) and BotRight (prev 1<<2, now 1<<3). -- ImVector: Added ImVector::push_front() helper. -- ImVector: Added ImVector::contains() helper. -- ImVector: insert() uses grow_capacity() instead of using grow policy inconsistent with push_back(). -- Internals: Remove requirement to define IMGUI_DEFINE_PLACEMENT_NEW to use the IM_PLACEMENT_NEW macro. (#1103) -- Internals: ButtonBehavior: Fixed ImGuiButtonFlags_NoHoldingActiveID flag from incorrectly - setting the ActiveIdClickOffset field. This had no known effect within imgui code but could have - affected custom drag and drop patterns. And it is more correct this way! (#1418) -- Internals: ButtonBehavior: Fixed ImGuiButtonFlags_AllowOverlapMode to avoid temporarily activating -widgets on click before they have been correctly double-hovered. (#319, #600) -- Internals: Added SplitterBehavior() helper. (#319) -- Internals: Added IM_NEW(), IM_DELETE() helpers. (#484, #504, #1517) -- Internals: Basic refactor of the settings API which now allows external elements to be loaded/saved. -- Demo: Added ShowFontSelector() showing loaded fonts. -- Demo: Added ShowStyleSelector() to select among default styles. (#707) -- Demo: Renamed the emblematic ShowTestWindow() function to ShowDemoWindow(). -- Demo: Style Editor: Added a "Simplified settings" sections with check-boxes for border size and frame rounding. (#707, #1019) -- Demo: Style Editor: Added combo box to select stock styles and select current font when multiple are loaded. (#707) -- Demo: Style Editor: Using local storage so Save/Revert button makes more sense without code passing - its storage. Added horizontal scroll bar. Fixed Save/Revert button to be always accessible. (#1211) -- Demo: Console: Fixed context menu issue. (#1404) -- Demo: Console: Fixed incorrect positioning which was hidden by a minor scroll issue (this would - affect people who copied the Console code as is). -- Demo: Constrained Resize: Added more test cases. (#1417) -- Demo: Custom Rendering: Fixed clipping rectangle extruding out of parent window. -- Demo: Layout: Removed unnecessary and misleading BeginChild/EndChild calls. -- Demo: The "Color Picker with Palette" demo supports drag and drop. (#143) -- Demo: Display better mouse cursor info for debugging backends. -- Demo: Stopped using rand() function in demo code. -- Examples: Added a handful of extra comments (about fonts, third-party libraries used in the examples, etc.). -- Examples: DirectX9: Handle loss of D3D9 device (D3DERR_DEVICELOST). (#1464) -- Examples: Added null_example/ which is helpful for quick testing on multiple compilers/settings without relying on graphics library. -- Fix for using alloca() in "Clang with Microsoft Codechain" mode. -- Various fixes, optimizations, comments. - - ------------------------------------------------------------------------ - VERSION 1.52 (2017-10-27) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.52 - -Breaking Changes: - -- IO: `io.MousePos` needs to be set to ImVec2(-FLT_MAX,-FLT_MAX) when mouse is unavailable/missing, - instead of ImVec2(-1,-1) as previously) This is needed so we can clear `io.MouseDelta` field when - the mouse is made available again. -- Renamed `AlignFirstTextHeightToWidgets()` to `AlignTextToFramePadding()`. - Kept inline redirection function (will obsolete). -- Obsoleted the legacy 5 parameters version of Begin(). Please avoid using it. If you need a - transparent window background, uses `PushStyleColor()`. The old size parameter there was also - misleading and equivalent to calling `SetNextWindowSize(size, ImGuiCond_FirstTimeEver)`. - Kept inline redirection function (will obsolete). -- Obsoleted `IsItemHoveredRect()`, `IsMouseHoveringWindow()` in favor of using the newly introduced - flags of `IsItemHovered()` and `IsWindowHovered()`. Kept inline redirection function (will obsolete). (#1382) -- Obsoleted 'SetNextWindowPosCenter()' in favor of using 1SetNextWindowPos()` with a pivot value which - allows to do the same and more. Keep inline redirection function. -- Removed `IsItemRectHovered()`, `IsWindowRectHovered()` recently introduced in 1.51 which were merely - the more consistent/correct names for the above functions which are now obsolete anyway. (#1382) -- Changed `IsWindowHovered()` default parameters behavior to return false if an item is active in - another window (e.g. click-dragging item from another window to this window). You can use the newly - introduced IsWindowHovered() flags to requests this specific behavior if you need it. (#1382) -- Renamed imconfig.h's `IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCS`/`IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS` - to `IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS`/`IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS` for consistency. -- Renamed ImFont::Glyph to ImFontGlyph. Kept redirection typedef (will obsolete). - -Other Changes: - -- ProgressBar: fixed rendering when straddling rounded area. (#1296) -- SliderFloat, DragFloat: Using scientific notation e.g. "%.1e" in the displayed format string doesn't - mistakenly trigger rounding of the value. [@MomentsInGraphics] -- Combo, InputFloat, InputInt: Made the small button on the right side align properly with the - equivalent colored button of ColorEdit4(). -- IO: Tweaked logic for `io.WantCaptureMouse` so it now outputs false when e.g. hovering over void - while an InputText() is active. (#621) [@pdoane] -- IO: Fixed `io.WantTextInput` from mistakenly outputting true when an activated Drag or Slider was - previously turned into an InputText(). (#1317) -- Misc: Added flags to `IsItemHovered()`, `IsWindowHovered()` to access advanced hovering-test behavior. - Generally useful for pop-ups and drag and drop behaviors: (relates to ~#439, #1013, #143, #925) - - `ImGuiHoveredFlags_AllowWhenBlockedByPopup` - - `ImGuiHoveredFlags_AllowWhenBlockedByActiveItem` - - `ImGuiHoveredFlags_AllowWhenOverlapped` - - `ImGuiHoveredFlags_RectOnly` -- Input: Added `IsMousePosValid()` helper. -- Input: Added `GetKeyPressedAmount()` to easily measure press count when the repeat rate is faster than the frame rate. -- Input/Focus: Disabled TAB and Shift+TAB when CTRL key is held. -- CheckBox: Now rendering a tick mark instead of a full square. -- ColorEdit4: Added "Copy as..." option in context menu. (#346) -- ColorPicker: Improved ColorPicker hue wheel color interpolation. (#1313) [@thevaber] -- ColorButton: Reduced bordering artifact that would be particularly visible with an opaque - Col_FrameBg and FrameRounding enabled. -- ColorButton: Fixed rendering color button with a checkerboard if the transparency comes from the global - style.Alpha and not from the actual source color. -- TreeNode: Added `ImGuiTreeNodeFlags_FramePadding` flag to conveniently create a tree node with full - padding at the beginning of a line, without having to call `AlignTextToFramePadding()`. -- Trees: Fixed calling `SetNextTreeNodeOpen()` on a collapsed window leaking to the first tree node item of the next frame. -- Layout: Horizontal layout is automatically enforced in a menu bar, so you can use non-MenuItem elements - without calling SameLine(). -- Separator: Output a vertical separator when used inside a menu bar (or in general when horizontal layout - is active, but that isn't exposed yet!). -- Window: Added `IsWindowAppearing()` helper (helpful e.g. as a condition before initializing some of your own things.). -- Window: Added pivot parameter to `SetNextWindowPos()`, making it possible to center or right align a window. Obsoleted `SetNextWindowPosCenter()`. -- Window: Fixed title bar color of top-most window under a modal window. -- Window: Fixed not being able to move a window by clicking on one of its child window. (#1337, #635) -- Window: Fixed `Begin()` auto-fit calculation code that predict the presence of a scrollbar so it works - better when window size constraints are used. -- Window: Fixed calling `Begin()` more than once per frame setting `window_just_activated_by_user` which - in turn would set enable the Appearing condition for that frame. -- Window: The implicit "Debug" window now uses a "Debug##Default" identifier instead of "Debug" to allow - user creating a window called "Debug" without losing their custom flags. -- Window: Made the `ImGuiWindowFlags_NoMove` flag properly inherited from parent to child. In a setup - with ParentWindow (no flag) -> Child (NoMove) -> SubChild (no flag), the user won't be able to move - the parent window by clicking on SubChild. (#1381) -- Popups: Pop-ups can be closed with a right-click anywhere, without altering focus under the pop-up. (~#439) -- Popups: `BeginPopupContextItem()`, `BeginPopupContextWindow()` are now setup to allow reopening - a context menu by right-clicking again. (~#439) -- Popups: `BeginPopupContextItem()` now supports a NULL string identifier and uses the last item ID if available. -- Popups: Added `OpenPopupOnItemClick()` helper which mimic `BeginPopupContextItem()` but doesn't do the BeginPopup(). -- MenuItem: Only activating on mouse release. [@Urmeli0815] (was already fixed in nav branch). -- MenuItem: Made tick mark thicker (thick mark?). -- MenuItem: Tweaks to be usable inside a menu bar (nb: it looks like a regular menu and thus is misleading, - prefer using Button() and regular widgets in menu bar if you need to). (#1387) -- ImDrawList: Fixed a rare draw call merging bug which could lead to undisplayed triangles. (#1172, #1368) -- ImDrawList: Fixed a rare bug in `ChannelsMerge()` when all contents has been clipped, leading to - an extraneous draw call being created. (#1172, #1368) -- ImFont: Added `AddGlyph()` building helper for use by custom atlas builders. -- ImFontAtlas: Added support for CustomRect API to submit custom rectangles to be packed into the atlas. - You can map them as font glyphs, or use them for custom purposes. - After the atlas is built you can query the position of your rectangles in the texture and then copy - your data there. You can use this features to create e.g. full color font-mapped icons. -- ImFontAtlas: Fixed fall-back handling when merging fonts, if a glyph was missing from the second font - input it could have used a glyph from the first one. (#1349) [@inolen] -- ImFontAtlas: Fixed memory leak on build failure case when stbtt_InitFont failed (generally due to - incorrect or supported font type). (#1391) (@Moka42) -- ImFontConfig: Added `RasterizerMultiply` option to alter the brightness of individual fonts at - rasterization time, which may help increasing readability for some. -- ImFontConfig: Added `RasterizerFlags` to pass options to custom rasterizer (e.g. the - [imgui_freetype](https://github.com/ocornut/imgui_club/tree/master/imgui_freetype) rasterizer in imgui_club has such options). -- ImVector: added resize() variant with initialization value. -- Misc: Changed the internal name formatting of child windows identifier to use slashes - (instead of dots) as separator, more readable. -- Misc: Fixed compilation with `IMGUI_DISABLE_OBSOLETE_FUNCTIONS` defined. -- Misc: Marked all format+va_list functions with format attribute so GCC/Clang can warn about misuses. -- Misc: Fixed compilation on NetBSD due to missing alloca.h (#1319) [@RyuKojiro] -- Misc: Improved warnings compilation for newer versions of Clang. (#1324) (@waywardmonkeys) -- Misc: Added `io.WantMoveMouse flags` (from Nav branch) and honored in Examples applications. - Currently unused but trying to spread Examples applications code that supports it. -- Misc: Added `IMGUI_DISABLE_FORMAT_STRING_FUNCTIONS` support in imconfig.h to allow user - reimplementing the `ImFormatString()` functions e.g. to use stb_printf(). (#1038) -- Misc: [Windows] Fixed default Win32 `SetClipboardText()` handler leaving the Win32 clipboard - handler unclosed on failure. [@pdoane] -- Style: Added `ImGuiStyle::ScaleAllSizes(float)` helper to make it easier to have application - transition e.g. from low to high DPI with a matching style. -- Metrics: Draw window bounding boxes when hovering Pos/Size; List all draw layers; Trimming empty commands like Render() does. -- Examples: OpenGL3: Save and restore sampler state. (#1145) [@nlguillemot] -- Examples: OpenGL2, OpenGL3: Save and restore polygon mode. (#1307) [@JJscott] -- Examples: DirectX11: Allow creating device with feature level 10 since we don't really need much for that example. (#1333) -- Examples: DirectX9/10/12: Using the Win32 SetCapture/ReleaseCapture API to read mouse coordinates - when they are out of bounds. (#1375) [@Gargaj, @ocornut] -- Tools: Fixed binary_to_compressed_c tool to return 0 when successful. (#1350) [@benvanik] -- Internals: Exposed more helpers and unfinished features in imgui_internal.h. (use at your own risk!). -- Internals: A bunch of internal refactoring, hopefully haven't broken anything! - Merged a bunch of internal changes from the upcoming Navigation branch. -- Various tweaks, fixes and documentation changes. - -Beta Navigation Branch: -(Lots of work has been done toward merging the Beta Gamepad/Keyboard Navigation branch (#787) in master.) -(Please note that this branch is always kept up to date with master. If you are using the navigation branch, some of the changes include:) -- Nav: Added `#define IMGUI_HAS_NAV` in imgui.h to ease sharing code between both branches. (#787) -- Nav: MainMenuBar now releases focus when user gets out of the menu layer. (#787) -- Nav: When applying focus to a window with only menus, the menu layer is automatically activated. (#787) -- Nav: Added `ImGuiNavInput_KeyMenu` (~Alt key) aside from ImGuiNavInput_PadMenu input as it is - one differentiator of pad vs keyboard that was detrimental to the keyboard experience. - Although isn't officially supported, it makes the current experience better. (#787) -- Nav: Move requests now wrap vertically inside Menus and Pop-ups. (#787) -- Nav: Allow to collapse tree nodes with NavLeft and open them with NavRight. (#787, #1079). -- Nav: It's now possible to navigate sibling of a menu-bar while navigating inside one of their child. - If a Left<>Right navigation request fails to find a match we forward the request to the root menu. (#787, #126) -- Nav: Fixed `SetItemDefaultFocus` from stealing default focus when we are initializing default focus for a menu bar layer. (#787) -- Nav: Support for fall-back horizontal scrolling with PadLeft/PadRight (nb: fall-back scrolling - is only used to navigate windows that have no interactive items). (#787) -- Nav: Fixed tool-tip from being selectable in the window selection list. (#787) -- Nav: `CollapsingHeader(bool*)` variant: fixed for `IsItemHovered()` not working properly in the nav branch. (#600, #787) -- Nav: InputText: Fixed using Up/Down history callback feature when Nav is enabled. (#787) -- Nav: InputTextMultiline: Fixed navigation/selection. Disabled selecting all when activating a multi-line text editor. (#787) -- Nav: More consistently drawing a (thin) navigation rectangle hover filled frames such as tree nodes, collapsing header, menus. (#787) -- Nav: Various internal refactoring. - - ------------------------------------------------------------------------ - VERSION 1.51 (2017-08-24) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.51 - -Breaking Changes: - -Work on dear imgui has been gradually resuming. It means that fixes and new features should be tackled at -a faster rate than last year. However, in order to move forward with the library and get rid of some cruft, -I have taken the liberty to be a little bit more aggressive than usual with API breaking changes. -Read the details below and search for those names in your code! In the grand scheme of things, -those changes are small and should not affect everyone, but this is technically our most aggressive -release so far in term of API breakage. -If you want to be extra forward-facing, you can enable `#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS` in -your imconfig.h to disable the obsolete names/redirection. - -- Renamed `IsItemHoveredRect()` to `IsItemRectHovered()`. Kept inline redirection function (will obsolete). -- Renamed `IsMouseHoveringWindow()` to `IsWindowRectHovered()` for consistency. Kept inline redirection function (will obsolete). -- Renamed `IsMouseHoveringAnyWindow()` to `IsAnyWindowHovered()` for consistency. Kept inline redirection function (will obsolete). -- Renamed `ImGuiCol_Columns***` enums to `ImGuiCol_Separator***`. Kept redirection enums (will obsolete). -- Renamed `ImGuiSetCond***` types and enums to `ImGuiCond***`. Kept redirection enums (will obsolete). -- Renamed `GetStyleColName()` to `GetStyleColorName()` for consistency. Unlikely to be used by end-user! -- Added `PushStyleColor(ImGuiCol idx, ImU32 col)` overload, which _might_ cause an "ambiguous call" - compilation error if you are using ImColor() with implicit cast. Cast to ImU32 or ImVec4 explicitly to fix. -- Marked the weird `IMGUI_ONCE_UPON_A_FRAME` helper macro as obsolete. Prefer using the more explicit `ImGuiOnceUponAFrame`. -- Changed `ColorEdit4(const char* label, float col[4], bool show_alpha = true)` signature to - `ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flags = 0)`, where flags 0x01 is a safe no-op - (hello dodgy backward compatibility!). The new `ColorEdit4`/`ColorPicker4` functions have lots of available flags! - Check and run the demo window, under "Color/Picker Widgets", to understand the various new options. -- Changed signature of `ColorButton(ImVec4 col, bool small_height = false, bool outline_border = true)` - to `ColorButton(const char* desc_id, ImVec4 col, ImGuiColorEditFlags flags = 0, ImVec2 size = ImVec2(0,0))`. - This function was rarely used and was very dodgy (no explicit ID!). -- Changed `BeginPopupContextWindow(bool also_over_items=true, const char* str_id=NULL, int mouse_button=1)` - signature to `(const char* str_id=NULL, int mouse_button=1, bool also_over_items=true)`. - This is perhaps the most aggressive change in this update, but note that the majority of users relied - on default parameters completely, so this will affect only a fraction of users of this already rarely - used function. -- Removed `IsPosHoveringAnyWindow()`, which was partly broken and misleading. In the vast majority of cases, - people using that function wanted to use `io.WantCaptureMouse` flag. Replaced with IM_ASSERT + a comment - redirecting user to `io.WantCaptureMouse`. (#1237) -- Removed the old `ValueColor()` helpers, they are equivalent to calling `Text(label)` + `SameLine()` + `ColorButton()`. -- Removed `ColorEditMode()` and `ImGuiColorEditMode` type in favor of `ImGuiColorEditFlags` and - parameters to the various Color*() functions. The `SetColorEditOptions()` function allows to - initialize default but the user can still change them with right-click context menu. - Commenting out your old call to `ColorEditMode()` may just be fine! - -Other Changes: - -- Added flags to `ColorEdit3()`, `ColorEdit4()`. The color edit widget now has a context-menu - and access to the color picker. (#346) -- Added flags to `ColorButton()`. (#346) -- Added `ColorPicker3()`, `ColorPicker4()`. (#346) [@r-lyeh, @nem0, @thennequin, @dariomanesku and @ocornut] - The API along with those of the updated `ColorEdit4()` was designed so you may use them in various - situation and hopefully compose your own picker if required. There are a bunch of available flags, - check the Demo window and comment for `ImGuiColorEditFlags_`. - Some of the options it supports are: two color picker types (hue bar + sat/val rectangle, - hue wheel + rotating sat/val triangle), display as u8 or float, lifting 0.0..1.0 constraints - (currently rgba only), context menus, alpha bar, background checkerboard options, preview tooltip, - basic revert. For simple use, calling the existing `ColorEdit4()` function as you did before - will be enough, as you can now open the color picker from there. -- Added `SetColorEditOptions()` to set default color options (e.g. if you want HSV over RGBA, - float over u8, select a default picker mode etc. at startup time without a user intervention. - Note that the user can still change options with the context menu unless disabled with - `ImGuiColorFlags_NoOptions` or explicitly enforcing a display type/picker mode etc.). -- Added user-facing `IsPopupOpen()` function. (#891) [@mkeeter] -- Added `GetColorU32(u32)` variant that perform the style alpha multiply without a floating-point - round trip, and helps makes code more consistent when using ImDrawList APIs. -- Added `PushStyleColor(ImGuiCol idx, ImU32 col)` overload. -- Added `GetStyleColorVec4(ImGuiCol idx)` which is equivalent to accessing `ImGui::GetStyle().Colors[idx]` - (aka return the raw style color without alpha alteration). -- ImFontAtlas: Added `GlyphRangesBuilder` helper class, which makes it easier to build custom glyph ranges - from your app/game localization data, or add into existing glyph ranges. -- ImFontAtlas: Added `TexGlyphPadding` option. (#1282) [@jadwallis] -- ImFontAtlas: Made it possible to override size of AddFontDefault() (even if it isn't really recommended!). -- ImDrawList: Added `GetClipRectMin()`, `GetClipRectMax()` helpers. -- Fixed Ini saving crash if the ImGuiWindowFlags_NoSavedSettings gets removed from a window after its creation (unlikely!). (#1000) -- Fixed `PushID()`/`PopID()` from marking parent window as Accessed (which needlessly woke up the - root "Debug" window when used outside of a regular window). (#747) -- Fixed an assert when calling `CloseCurrentPopup()` twice in a row. [@nem0] -- Window size can be loaded from .ini data even if ImGuiWindowFlags_NoResize flag is set. (#1048, #1056) -- Columns: Added `SetColumnWidth()`. (#913) [@ggtucker] -- Columns: Dragging a column preserve its width by default. (#913) [@ggtucker] -- Columns: Fixed first column appearing wider than others. (#1266) -- Columns: Fixed allocating space on the right-most side with the assumption of a vertical scrollbar. - The space is only allocated when needed. (#125, #913, #893, #1138) -- Columns: Fixed the right-most column from registering its content width to the parent window, - which led to various issues when using auto-resizing window or e.g. horizontal scrolling. (#519, #125, #913) -- Columns: Refactored some of the columns code internally toward a better API (not yet exposed) + minor optimizations. (#913) [@ggtucker, @ocornut] -- Popups: Most pop-ups windows can be moved by the user after appearing (if they don't have explicit - positions provided by caller, or e.g. sub-menu pop-up). The previous restriction was totally arbitrary. (#1252) -- Tooltip: `SetTooltip()` is expanded immediately into a window, honoring current font / styling setting. - Add internal mechanism to override tooltips. (#862) -- PlotHistogram: bars are drawn based on zero-line, so negative values are going under. (#828) -- Scrolling: Fixed return values of `GetScrollMaxX()`, `GetScrollMaxY()` when both scrollbars were enabled. - Tweak demo to display more data. (#1271) [@degracode] -- Scrolling: Fixes for Vertical Scrollbar not automatically getting enabled if enabled Horizontal Scrollbar straddle the vertical limit. (#1271, #246) -- Scrolling: `SetScrollHere()`, `SetScrollFromPosY()`: Fixed Y scroll aiming when Horizontal Scrollbar is enabled. (#665). -- [Windows] Clipboard: Fixed not closing Win32 clipboard on early open failure path. (#1264) -- Removed an unnecessary dependency on int64_t which failed on some older compilers. -- Demo: Rearranged everything under Widgets in a more consistent way. -- Demo: Columns: Added Horizontal Scrolling demo. Tweaked another Columns demo. (#519, #125, #913) -- Examples: OpenGL: Various makefiles for MINGW, Linux. (#1209, #1229, #1209) [@fr500, @acda] -- Examples: Enabled vsync by default in example applications, so it doesn't confuse people that - the sample run at 2000+ fps and waste an entire CPU. (#1213, #1151). -- Various other small fixes, tweaks, comments, optimizations. - - ------------------------------------------------------------------------ - VERSION 1.50 (2017-06-02) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.50 - -Breaking Changes: - -- Added a void* user_data parameter to Clipboard function handlers. (#875) -- SameLine(x) with x>0.0f is now relative to left of column/group if any, and not always to left of window. - This was sort of always the intent and hopefully breakage should be minimal. -- Renamed ImDrawList::PathFill() - rarely used directly - to ImDrawList::PathFillConvex() for clarity and consistency. -- Removed ImFontConfig::MergeGlyphCenterV in favor of a more multipurpose ImFontConfig::GlyphOffset. -- Style: style.WindowTitleAlign is now a ImVec2 (ImGuiAlign enum was removed). set to (0.5f,0.5f) - for horizontal+vertical centering, (0.0f,0.0f) for upper-left, etc. -- BeginChild(const char*) now applies the stack id to the provided label, consistently with other functions - as it should always have been. It shouldn't affect you unless (extremely unlikely) you were appending multiple - times to a same child from different locations of the stack id. If that's the case, generate an id with GetId() - and use it instead of passing string to BeginChild(). - -Other Changes: - -- InputText(): Added support for CTRL+Backspace (delete word). -- InputText(): OSX uses Super+Arrows for home/end. Add Shortcut+Backspace support. (#650) [@michaelbartnett] -- InputText(): Got rid of individual OSX-specific options in ImGuiIO, added a single io.OSXBehaviors flag. (#473, #650) -- InputText(): Fixed pressing home key on last character when it isn't a trailing \n (#588, #815) -- InputText(): Fixed state corruption/crash bug in stb_textedit.h redo logic when exhausting undo/redo char buffer. (#715. #681) -- InputTextMultiline(): Fixed CTRL+DownArrow moving scrolling out of bounds. -- InputTextMultiline(): Scrollbar fix for when input and latched internal buffers differs in - a way that affects vertical scrollbar existence. (#725) -- ImFormatString(): Fixed an overflow handling bug with implementation of vsnprintf() that do not return -1. (#793) -- BeginChild(const char*) now applies stack id to provided label, consistent with other widgets. (#894, #713) -- SameLine() with explicit X position is relative to left of group/columns. (ref #746, #125, #630) -- SliderInt(), SliderFloat() supports reverse direction (where v_min > v_max). (#854) -- SliderInt(), SliderFloat() better support for when v_min==v_max. (#919) -- SliderInt(), SliderFloat() enforces writing back value when interacting, to be consistent with other widgets. (#919) -- SliderInt, SliderFloat(): Fixed edge case where style.GrabMinSize being bigger than slider width can lead to a division by zero. (#919) -- Added IsRectVisible() variation with explicit start-end positions. (#768) [@thedmd] -- Fixed TextUnformatted() clipping bug in the large-text path when horizontal scroll has been applied. (#692, #246) -- Fixed minor text clipping issue in window title when using font straying above usual line. (#699) -- Fixed SetCursorScreenPos() fixed not adjusting CursorMaxPos as well. -- Fixed scrolling offset when using SetScrollY(), SetScrollFromPosY(), SetScrollHere() with menu bar. -- Fixed using IsItemActive() after EndGroup() or any widget using groups. (#840, #479) -- Fixed IsItemActive() lagging by one frame on initial widget activation. (#840) -- Fixed Separator() zero-height bounding box resulting in clipping when laying exactly on top line of clipping rectangle (#860) -- Fixed PlotLines() PlotHistogram() calling with values_count == 0. -- Fixed clicking on a window's void while staying still overzealously marking .ini settings as dirty. (#923) -- Fixed assert triggering when a window has zero rendering but has a callback. (#810) -- Scrollbar: Fixed rendering when sizes are negative to reduce glitches (which can happen with - certain style settings and zero WindowMinSize). -- EndGroup(): Made IsItemHovered() work when an item was activated within the group. (#849) -- BulletText(): Fixed stopping to display formatted string after the '##' mark. -- Closing the focused window restore focus to the first active root window in descending z-order. (part of #727) -- Word-wrapping: Fixed a bug where we never wrapped after a 1 character word. [@sronsse] -- Word-wrapping: Fixed TextWrapped() overriding wrap position if one is already set. (#690) -- Word-wrapping: Fixed incorrect testing for negative wrap coordinates, they are perfectly legal. (#706) -- ImGuiListClipper: Fixed automatic-height calc path dumbly having user display element 0 twice. (#661, #716) -- ImGuiListClipper: Fix to behave within column. (#661, #662, #716) -- ImDrawList: Renamed ImDrawList::PathFill() to ImDrawList::PathFillConvex() for clarity. (BREAKING API) -- Columns: End() avoid calling Columns(1) if no columns set is open, not sure why it wasn't the - case already (pros: faster, cons: exercise less code). -- ColorButton(): Fix ColorButton showing wrong hex value for alpha. (#1068) [@codecat] -- ColorEdit4(): better preserve inputting value out of 0..255 range, display then clamped in Hexadecimal form. -- Shutdown() clear out some remaining pointers for sanity. (#836) -- Added IMGUI_USE_BGRA_PACKED_COLOR option in imconfig.h (#767, #844) [@thedmd] -- Style: Removed the inconsistent shadow under RenderCollapseTriangle() (~#707) -- Style: Added ButtonTextAlign, ImGuiStyleVar_ButtonTextAlign. (#842) -- ImFont: Allowing to use up to 0xFFFE glyphs in same font (increased from previous 0x8000). -- ImFont: Added GetGlyphRangesThai() helper. [@nProtect] -- ImFont: CalcWordWrapPositionA() fixed font scaling with fallback character. -- ImFont: Calculate and store the approximate texture surface to get an idea of how costly each source font is. -- ImFontConfig: Added GlyphOffset to explicitly offset glyphs at font build time, useful for merged fonts. - Removed MergeGlyphCenterV. (BREAKING API) -- Clarified asserts in CheckStacksSize() when there is a stack mismatch. -- Context: Support for #define-ing GImGui and IMGUI_SET_CURRENT_CONTEXT_FUNC to enable custom thread-based hackery (#586) -- Updated stb_truetype.h to 1.14 (added OTF support, removed warnings). (#883, #976) -- Updated stb_rect_pack.h to 0.10 (removed warnings). (#883) -- Added ImGuiMouseCursor_None enum value for convenient usage by app/backends. -- Clipboard: Added a void* user_data parameter to Clipboard function handlers. (#875) (BREAKING API) -- Internals: Refactor internal text alignment options to use ImVec2, removed ImGuiAlign. (#842, #222) -- Internals: Renamed ImLoadFileToMemory to ImFileLoadToMemory to be consistent with ImFileOpen + fix mismatching .h name. (#917) -- OS/Windows: Fixed Windows default clipboard handler leaving its buffer unfreed on application's exit. (#714) -- OS/Windows: No default IME handler when compiling for Windows using GCC. (#738) -- OS/Windows: Now using _wfopen() instead of fopen() to allow passing in paths/filenames with UTF-8 characters. (#917) -- Tools: binary_to_compressed_c: Avoid ?? trigraphs sequences in string outputs which break some older compilers. (#839) -- Demo: Added an extra 3-way columns demo. -- Demo: ShowStyleEditor: show font character map / grid in more details. -- Demo: Console: Fixed a completion bug when multiple candidates are equals and match until the end. -- Demo: Fixed 1-byte off overflow in the ShowStyleEditor() combo usage. (#783) [@bear24rw] -- Examples: Accessing ImVector fields directly, feel less stl-y. (#810) -- Examples: OpenGL*: Saving/restoring existing scissor rectangle for completeness. (#807) -- Examples: OpenGL*: Saving/restoring active texture number (the value modified by glActiveTexture). (#1087, #1088, #1116) -- Examples: OpenGL*: Saving/restoring separate color/alpha blend functions correctly. (#1120) [@greggman] -- Examples: OpenGL2: Uploading font texture as RGBA32 to increase compatibility with users shaders for beginners. (#824) -- Examples: Vulkan: Countless fixes and improvements. (#785, #804, #910, #1017, #1039, #1041, - #1042, #1043, #1080) [@martty, @Loftilus, @ParticlePeter, @SaschaWillems] -- Examples: DirectX9/10/10: Only call SetCursor(NULL) is io.MouseDrawCursor is set. (#585, #909) -- Examples: DirectX9: Explicitly setting viewport to match that other examples are doing. (#937) -- Examples: GLFW+OpenGL3: Fixed Shutdown() calling GL functions with NULL parameters if NewFrame was never called. (#800) -- Examples: GLFW+OpenGL2: Renaming opengl_example/ to opengl2_example/ for clarity. -- Examples: SDL+OpenGL: explicitly setting GL_UNPACK_ROW_LENGTH to reduce issues because SDL changes it. (#752) -- Examples: SDL2: Added build .bat files for Win32. -- Added various links to language/engine bindings. -- Various other minor fixes, tweaks, comments, optimizations. - - ------------------------------------------------------------------------ - VERSION 1.49 (2016-05-09) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.49 - -Breaking Changes: - -- Renamed `SetNextTreeNodeOpened()` to `SetNextTreeNodeOpen()` for consistency, no redirection. -- Removed confusing set of `GetInternalState()`, `GetInternalStateSize()`, `SetInternalState()` functions. - Now using `CreateContext()`, `DestroyContext()`, `GetCurrentContext()`, `SetCurrentContext()`. - If you were using multiple contexts the change should be obvious and trivial. -- Obsoleted old signature of `CollapsingHeader(const char* label, const char* str_id = NULL, bool display_frame = true, bool default_open = false)`, - as extra parameters were badly designed and rarely used. Most uses were using 1 parameter and shouldn't affect you. - You can replace the "default_open = true" flag in new API with `CollapsingHeader(label, ImGuiTreeNodeFlags_DefaultOpen)`. -- Changed `ImDrawList::PushClipRect(ImVec4 rect)` to `ImDraw::PushClipRect(ImVec2 min,ImVec2 max,bool intersect_with_current_clip_rect=false)`. - Note that higher-level `ImGui::PushClipRect()` is preferable because it will clip at logic/widget level, whereas `ImDrawList::PushClipRect()` only affect your renderer. -- Title bar (using ImGuiCol_TitleBg/ImGuiCol_TitleBgActive colors) isn't rendered over a window background - (ImGuiCol_WindowBg color) anymore (see #655). If your TitleBg/TitleBgActive alpha was 1.0f or you are using - the default theme it will not affect you. However if your TitleBg/TitleBgActive alpha was <1.0f you need to - tweak your custom theme to readjust for the fact that we don't draw a WindowBg background behind the title bar. - This helper function will convert an old TitleBg/TitleBgActive color into a new one with the same visual output, - given the OLD color and the OLD WindowBg color. (Or If this is confusing, just pick the RGB value from - title bar from an old screenshot and apply this as TitleBg/TitleBgActive. Or you may just create - TitleBgActive from a tweaked TitleBg color.) - - ImVec4 ConvertTitleBgCol(const ImVec4& win_bg_col, const ImVec4& title_bg_col) - { - float new_a = 1.0f - ((1.0f - win_bg_col.w) * (1.0f - title_bg_col.w)); - float k = title_bg_col.w / new_a; - return ImVec4((win_bg_col.x * win_bg_col.w + title_bg_col.x) * k, (win_bg_col.y * win_bg_col.w + title_bg_col.y) * k, (win_bg_col.z * win_bg_col.w + title_bg_col.z) * k, new_a); - } - -Other changes: - -- New version of ImGuiListClipper helper calculates item height automatically. - See comments and demo code. (#662, #661, #660) -- Added SetNextWindowSizeConstraints() to enable basic min/max and programmatic size constraints on window. Added demo. (#668) -- Added PushClipRect()/PopClipRect() (previously part of imgui_internal.h). - Changed ImDrawList::PushClipRect() prototype. (#610) -- Added IsRootWindowOrAnyChildHovered() helper. (#615) -- Added TreeNodeEx() functions. (#581, #600, #190) -- Added ImGuiTreeNodeFlags_Selected flag to display TreeNode as "selected". (#581, #190) -- Added ImGuiTreeNodeFlags_AllowOverlapMode flag. (#600) -- Added ImGuiTreeNodeFlags_NoTreePushOnOpen flag (#590). -- Added ImGuiTreeNodeFlags_NoAutoOpenOnLog flag (previously private). -- Added ImGuiTreeNodeFlags_DefaultOpen flag (previously private). -- Added ImGuiTreeNodeFlags_OpenOnDoubleClick flag. -- Added ImGuiTreeNodeFlags_OpenOnArrow flag. -- Added ImGuiTreeNodeFlags_Leaf flag, always opened, no arrow, for convenience. - For simple use case prefer using TreeAdvanceToLabelPos()+Text(). -- Added ImGuiTreeNodeFlags_Bullet flag, to add a bullet to Leaf node or replace Arrow with a bullet. -- Added TreeAdvanceToLabelPos(), GetTreeNodeToLabelSpacing() helpers. (#581, #324) -- Added CreateContext()/DestroyContext()/GetCurrentContext()/SetCurrentContext(). - Obsoleted nearly identical GetInternalState()/SetInternalState() functions. (#586, #269) -- Added NewLine() to undo a SameLine() and as a shy reminder that horizontal layout support hasn't been implemented yet. -- Added IsItemClicked() helper. (#581) -- Added CollapsingHeader() variant with close button. (#600) -- Fixed MenuBar missing lower border when borders are enabled. -- InputText(): Fixed clipping of cursor rendering in case it gets out of the box (which can be forced w/ ImGuiInputTextFlags_NoHorizontalScroll. (#601) -- Style: Changed default IndentSpacing from 22 to 21. (#581, #324) -- Style: Fixed TitleBg/TitleBgActive color being rendered above WindowBg color, which was - inconsistent and causing visual artifact. (#655) - This broke the meaning of TitleBg and TitleBgActive. Only affect values where Alpha<1.0f. - Fixed default theme. Read comments in "API BREAKING CHANGES" section to convert. -- Relative rendering of order of Child windows creation is preserved, to allow more control with overlapping children. (#595) -- Fixed GetWindowContentRegionMax() being off by ScrollbarSize amount when explicit SizeContents is set. -- Indent(), Unindent(): optional non-default indenting width. (#324, #581) -- Bullet(), BulletText(): Slightly bigger. Less polygons. -- ButtonBehavior(): fixed subtle old bug when a repeating button would also return true on mouse - release (barely noticeable unless RepeatRate is set to be very slow). (#656) -- BeginMenu(): a menu that becomes disabled while open gets closed down, facilitate user's code. (#126) -- BeginGroup(): fixed using within Columns set. (#630) -- Fixed a lag in reading the currently hovered window when dragging a window. (#635) -- Obsoleted 4 parameters version of CollapsingHeader(). Refactored code into TreeNodeBehavior. (#600, #579) -- Scrollbar: minor fix for top-right rounding of scrollbar background when window has menu bar but no title bar. -- MenuItem(): the check mark renders in disabled color when menu item is disabled. -- Fixed clipping rectangle floating point representation to ensure renderer-side floating-point - operations yield correct results in typical DirectX/GL settings. (#582, 597) -- Fixed GetFrontMostModalRootWindow(), fixing missing fade-out when a combo pop was used stacked - over a modal window. (#604) -- ImDrawList: Added AddQuad(), AddQuadFilled() helpers. -- ImDrawList: AddText() refactor, moving some code to ImFont, reserving less unused vertices when large vertical clipping occurs. -- ImFont: Added RenderChar() helper. -- ImFont: Added AddRemapChar() helper. (#609) -- ImFontConfig: Clarified persistence requirement of GlyphRanges array. (#651) -- ImGuiStorage: Added bool helper functions for completeness. -- AddFontFromMemoryCompressedTTF(): Fix ImFontConfig propagation. (#587) -- Renamed majority of use of the word "opened" to "open" for clarity. Renamed SetNextTreeNodeOpened() to SetNextTreeNodeOpen(). (#625, #579) -- Examples: OpenGL3: Saving/restoring glActiveTexture() state. (#602) -- Examples: DirectX9: save/restore all device state. -- Examples: DirectX9: Removed dependency on d3dx9.h, d3dx9.lib, dxguid.lib so it can be used in - a DirectXMath.h only environment. (#611) -- Examples: DirectX10/X11: Apply depth-stencil state (no use of depth buffer). (#640, #636) -- Examples: DirectX11/X11: Added comments on removing dependency on D3DCompiler. (#638) -- Examples: SDL: Initialize video+timer subsystem only. -- Examples: Apple/iOS: lowered XCode project deployment target from 10.7 to 10.11. (#598, #575) - - ------------------------------------------------------------------------ - VERSION 1.48 (2016-04-09) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.48 - -Breaking Changes: - -- Consistently honoring exact width passed to PushItemWidth() (when positive), previously it would - add extra FramePadding.x*2 over that width. Some hand-tuned layout may be affected slightly. (#346) -- Style: removed `style.WindowFillAlphaDefault` which was confusing and redundant, baked alpha into - `ImGuiCol_WindowBg` color. If you had a custom WindowBg color but didn't change WindowFillAlphaDefault, - multiply WindowBg alpha component by 0.7. Renamed `ImGuiCol_TooltipBg` to `ImGuiCol_PopupBG`, - applies to other types of pop-ups. `bg_alpha` parameter of 5-parameters version of Begin() is an override. (#337) -- InputText(): Added BufTextLen field in ImGuiTextEditCallbackData. Requesting user to update it - if the buffer is modified in the callback. Added a temporary length-check assert to minimize panic - for the 3 people using the callback. (#541) -- Renamed GetWindowFont() to GetFont(), GetWindowFontSize() to GetFontSize(). - Kept inline redirection function (will obsolete). (#340) - -Other Changes: - -- Consistently honoring exact width passed to PushItemWidth(), previously it would add extra - FramePadding.x*2 over that width. Some hand-tuned layout may be affected slightly. (#346) -- Fixed clipping of child windows within parent not taking account of child outer clipping - boundaries (including scrollbar, etc.). (#506) -- TextUnformatted(): Fixed rare crash bug with large blurb of text (2k+) not finished with - a '\n' and fully above the clipping Y line. (#535) -- IO: Added 'KeySuper' field to hold CMD keyboard modifiers for OS X. Updated all examples accordingly. (#473) -- Added ImGuiWindowFlags_ForceVerticalScrollbar, ImGuiWindowFlags_ForceHorizontalScrollbar flags. (#476) -- Added IM_COL32 macros to generate a U32 packed color, convenient for direct use of ImDrawList api. (#346) -- Added GetFontTexUvWhitePixel() helper, convenient for direct use of ImDrawList api. -- Selectable(): Added ImGuiSelectableFlags_AllowDoubleClick flag to allow user reacting - on double-click. (@zapolnov) (#516) -- Begin(): made the close button explicitly set the boolean to false instead of toggling it. (#499) -- BeginChild()/EndChild(): fixed incorrect layout to allow widgets submitted after an auto-fitted child window. (#540) -- BeginChild(): Added ImGuiWindowFlags_AlwaysUseWindowPadding flag to ensure non-bordered child window - uses window padding. (#462) -- Fixed InputTextMultiLine(), ListBox(), BeginChildFrame(), ProgressBar(): outer frame not - honoring bordering. (#462, #503) -- Fixed Image(), ImageButtion() rendering a rectangle 1 px too large on each axis. (#457) -- SetItemAllowOverlap(): Promoted from imgui_internal.h to public imgui.h api. (#517) -- Combo(): Right-most button stays highlighted when pop-up is open. -- Combo(): Display pop-up above if there's isn't enough space below / or select largest side. (#505) -- DragFloat(), SliderFloat(), InputFloat(): fixed cases of erroneously returning true repeatedly - after a text input modification (e.g. "0.0" --> "0.000" would keep returning true). (#564) -- DragFloat(): Always apply value when mouse is held/widget active, so that an always-resetting - variable (e.g. non saved local) can be passed. -- InputText(): OS X friendly behaviors: (@zhiayang), (#473) - - Word movement uses ALT key; - - Shortcuts uses CMD key; - - Double-clicking text select a single word; - - Jumping to next word sets cursor to end of current word instead of beginning of current word. -- InputText(): Added BufTextLen in ImGuiTextEditCallbackData. Requesting user to maintain it - if buffer is modified. Zero-ing structure properly before use. (#541) -- CheckboxFlags(): Added support for testing/setting multiple flags at the same time. (@DMartinek) (#555) -- TreeNode(), CollapsingHeader() fixed not being able to use "##" sequence in a formatted label. -- ColorEdit4(): Empty label doesn't add InnerSpacing.x, matching behavior of other widgets. (#346) -- ColorEdit4(): Removed unnecessary calls to scanf() when idle in hexadecimal edit mode. -- BeginPopupContextItem(), BeginPopupContextWindow(): added early out optimization. -- CaptureKeyboardFromApp() / CaptureMouseFromApp(): added argument to allow clearing the capture flag. (#533) -- ImDrawList: Fixed index-overflow check broken by AddText() casting current index back to ImDrawIdx. (#514) -- ImDrawList: Fixed incorrect removal of trailing draw command if it is a callback command. -- ImDrawList: Allow windows with only a callback only to be functional. (#524) -- ImDrawList: Fixed ImDrawList::AddRect() which used to render a rectangle 1 px too large on each axis. (#457) -- ImDrawList: Fixed ImDrawList::AddCircle() to fit precisely within bounding box like AddCircleFilled() and AddRectFilled(). (#457) -- ImDrawList: AddCircle(), AddRect() takes optional thickness parameter. -- ImDrawList: Added AddTriangle(). -- ImDrawList: Added PrimQuadUV() helper to ease custom rendering of textured quads (require primitive reserve). -- ImDrawList: Allow AddText(ImFont\* font, float font_size, ...) variant to take NULL/0.0f as default. -- ImFontAtlas: heuristic increase default texture width up for large number of glyphs. (#491) -- ImTextBuffer: Fixed empty() helper which was utterly broken. -- Metrics: allow to inspect individual triangles in draw calls. -- Demo: added more draw primitives in the Custom Rendering example. (#457) -- Demo: extra comments and example for PushItemWidth(-1) patterns. -- Demo: InputText password demo filters out blanks. (#515) -- Demo: Fixed malloc/free mismatch and leak when destructing demo console, if it has been used. (@fungos) (#536) -- Demo: plot code doesn't use ImVector to avoid heap allocation and be more friendly to custom allocator users. (#538) -- Fixed compilation on DragonFly BSD (@mneumann) (#563) -- Examples: Vulkan: Added a Vulkan example (@Loftilus) (#549) -- Examples: DX10, DX11: Saving/restoring most device state so dropping render function in your - codebase shouldn't have DX device side-effects. (#570) -- Examples: DX10, DX11: Fixed ImGui_ImplDX??_NewFrame() from recreating device objects if render isn't called (g_pVB not set). -- Examples: OpenGL3: Fix BindVertexArray/BindBuffer order. (@nlguillemot) (#527) -- Examples: OpenGL: skip rendering and calling glViewport() if we have zero-fixed buffer. (#486) -- Examples: SDL2+OpenGL3: Fix context creation options. Made ImGui_ImplSdlGL3_NewFrame() signature - match GL2 one. (#468, #463) -- Examples: SDL2+OpenGL2/3: Fix for high-dpi displays. (@nickgravelyn) -- Various extra comments and clarification in the code. -- Various other fixes and optimizations. - - ------------------------------------------------------------------------ - VERSION 1.47 (2015-12-25) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.47 - -Changes: - -- Rebranding "ImGui" -> "dear imgui" as an optional first name to reduce ambiguity with IMGUI term. (#21) -- Added ProgressBar(). (#333) -- InputText(): Added ImGuiInputTextFlags_Password mode: hide display, disable logging/copying to clipboard. (#237, #363, #374) -- Added GetColorU32() helper to retrieve color given enum with global alpha and extra applied. -- Added ImGuiIO::ClearInputCharacters() superfluous helper. -- Fixed ImDrawList draw command merging bug where using PopClipRect() along with PushTextureID()/PopTextureID() functions - would occasionally restore an incorrect clipping rectangle. -- Fixed ImDrawList draw command merging so PushTextureID(XXX)/PopTextureID()/PushTextureID(XXX) sequence are now properly merged. -- Fixed large popups positioning issues when their contents on either axis is larger than DisplaySize, - and WindowPadding < DisplaySafeAreaPadding. -- Fixed border rendering in various situations when using non-pixel aligned glyphs. -- Fixed border rendering of windows to always contain the border within the window. -- Fixed Shutdown() leaking font atlas data if NewFrame() was never called. (#396, #303) -- Fixed int>void\* warnings for 64-bit architectures with fancy warnings enabled. -- Renamed the dubious Color() helpers to ValueColor() - dangerously named, rarely used and probably to be made obsolete. -- InputText(): Fixed and better handling of using keyboard while mouse button if being held and dragging. (#429) -- InputText(): Replace OS IME (Input Method Editor) cursor on top-left when we are not text editing. -- TreeNode(), CollapsingHeader(), Bullet(), BulletText(): various sizing and layout fixes to better support laying out - multiple item with different height on same line. (#414, #282) -- Begin(): Initial window creation with ImGuiWindowFlags_NoBringToFrontOnFocus flag pushes it at the front of global window list. -- BeginPopupContextWindow() and BeginPopupContextVoid() reopen window on subsequent click. (#439) -- ColorEdit4(): Fixed broken tooltip on hovering the color button. (actually fixes #373, #380) -- ImageButton(): uses FrameRounding up to a maximum of available framing size. (#394) -- Columns: Fixed bug with indentation within columns, also making code a bit shorter/faster. (#414, #125) -- Columns: Columns set with no implicit id include the columns count within the id to reduce collisions. (#125) -- Columns: Removed one unnecessary allocation when columns are not used by a window. (#125) -- ImFontAtlas: Tweaked GetGlyphRangesJapanese() so it is easier to modify. -- ImFontAtlas: Updated stb_rect_pack.h to 0.08. -- Metrics: Fixed computing ImDrawCmd bounding box when the draw buffer have been unindexed. -- Demo: Added a simple "Property Editor" demo applet. (#125, #414) -- Demo: Fixed assertion in "Custom Rendering" demo when holding both mouse buttons. (#393) -- Demo: Lots of extra comments, fixes. -- Demo: Tweaks to Style Editor. -- Examples: Not clearing input data/tex data in atlas (will be required for dynamic atlas anyway). -- Examples: Added /Zi (output debug information) to Win32 batch files. -- Examples: Various fixes for resizing window and recreating graphic context. -- Examples: OpenGL2/3: Save/restore viewport as part of default render function. (#392, #441). -- Examples; OpenGL3: Fixed gl3w.c for Linux when compiled with a C++ compiler. (#411) -- Examples: DirectX: Removed assumption about Unicode build in example main.cpp. (#399) -- Examples: DirectX10: Added DirectX10 example. (#424) -- Examples: DirectX11: Downgraded requirement from shader model 5.0 to 4.0. (#420) -- Examples: DirectX11: Removed Debug flag from graphics context. (#415) -- Examples: Added SDL+OpenGL3 example. (#356) - - ------------------------------------------------------------------------ - VERSION 1.46 (2015-10-18) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.46 - -Changes: - -- Begin*(): added ImGuiWindowFlags_NoFocusOnAppearing flag. (#314) -- Begin*(): added ImGuiWindowFlags_NoBringToFrontOnFocus flag. -- Added GetDrawData() alternative to setting a Render function pointer in ImGuiIO structure. -- Added SetClipboardText(), GetClipboardText() helper shortcuts that user code can call directly without reading - from the ImGuiIO structure (to match MemAlloc/MemFree) -- Fixed handling of malformed UTF-8 at the end of a non-zero terminated string range. -- Fixed mouse click detection when passing DeltaTime 0.0. (#338) -- Fixed IsKeyReleased() and IsMouseReleased() returning true on the first frame. -- Fixed using SetNextWindow\* functions on Modal windows with a ImGuiSetCond_Appearing condition. (#377) -- IsMouseHoveringRect(): Added 'bool clip' parameter to disable clipping provided rectangle. (#316) -- InputText(): added ImGuiInputTextFlags_ReadOnly flag. (#211) -- InputText(): lose cursor/undo-stack when reactivating focus is buffer has changed size. -- InputText(): fixed ignoring text inputs when ALT or ALTGR are pressed. (#334) -- InputText(): fixed mouse-dragging not tracking the cursor when text doesn't fit. (#339) -- InputText(): fixed cursor pixel-perfect alignment when horizontally scrolling. -- InputText(): fixed crash when passing a buf_size==0 (which can be of use for read-only selectable text boxes). (#360) -- InputFloat() fixed explicit precision modifier, both display and input were broken. -- PlotHistogram(): improved rendering of histogram with a lot of values. -- Dummy(): creates an item so functions such as IsItemHovered() can be used. -- BeginChildFrame() helper: added the extra_flags parameter. -- Scrollbar: fixed rounding of background + child window consistently have ChildWindowBg color under ScrollbarBg fill. (#355). -- Scrollbar: background color less translucent in default style so it works better when changing background color. -- Scrollbar: fixed minor rendering offset when borders are enabled. (#365) -- ImDrawList: fixed 1 leak per ImDrawList using the ChannelsSplit() API (via Columns). (#318) -- ImDrawList: fixed rectangle rendering glitches with width/height <= 1/2 and rounding enabled. -- ImDrawList: AddImage() uv parameters default to (0,0) and (1,1). -- ImFontAtlas: Added TexDesiredWidth and tweaked default cheapo best-width choice. (#327) -- ImFontAtlas: Added GetGlyphRangesKorean() helper to retrieve unicode ranges for Korean. (#348) -- ImGuiTextFilter::Draw() helper return bool and build when filter is modified. -- ImGuiTextBuffer: added c_str() helper. -- ColorEdit4(): fixed hovering the color button always showing 1.0 alpha. (#373) -- ColorConvertFloat4ToU32() round the floats instead of truncating them. -- Window: Fixed window lower-right clipping limit so it plays more friendly with both OpenGL and DirectX coordinates. -- Internal: Extracted a EndFrame() function out of Render() but kept it internal/private + clarified some asserts. (#335) -- Internal: Added missing IMGUI_API definitions in imgui_internal.h (#326) -- Internal: ImLoadFileToMemory() return void\* instead of taking void*\* + allow optional int\* file_size. -- Demo: Horizontal scrollbar demo allows to enable simultaneous scrollbars on both axes. -- Tools: binary_to_compressed_c.cpp: added -nocompress option. -- Examples: Added example for the Marmalade platform. -- Examples: Added batch files to build Windows examples with VS. -- Examples: OpenGL3: Saving/restoring more GL state correctly. (#347) -- Examples: OpenGL2/3: Added msys2/mingw64 target to Makefiles. - - ------------------------------------------------------------------------ - VERSION 1.45 (2015-09-01) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.45 - -Breaking Changes: - -- With the addition of better horizontal scrolling primitives I had to make some consistency fixes. - `GetCursorPos()` `SetCursorPos()` `GetContentRegionMax()` `GetWindowContentRegionMin()` `GetWindowContentRegionMax()` - are now incorporating the scrolling amount. They were incorrectly not incorporating this amount previously. - It PROBABLY shouldn't break anything, but that depends on how you used them. Namely: - - If you always used SetCursorPos() with values relative to GetCursorPos() there shouldn't be a problem. - However if you used absolute coordinates, note that SetCursorPosY(100.0f) will put you at +100 from the - initial Y position (which may be scrolled out of the view), NOT at +100 from the window top border. - Since there wasn't any official scrolling value on X axis (past just manually moving the cursor) this can - only affect you if you used to set absolute coordinates on the Y axis which is hopefully rare/unlikely, - and trivial to fix. - - The value of GetWindowContentRegionMax() isn't necessarily close to GetWindowWidth() if horizontally scrolling. - Previously they were roughly interchangeable (roughly because the content region exclude window padding). - -Other Changes: - -- Added Horizontal Scrollbar via ImGuiWindowFlags_HorizontalScroll (#246). -- Added GetScrollX(), GetScrollX(), GetScrollMaxX() apis (#246). -- Added SetNextWindowContentSize(), SetNextWindowContentWidth() to explicitly set the content size of a window, which - define the range of scrollbar. When set explicitly it also define the base value from which widget width are derived. -- Added IO.WantTextInput telling when ImGui is expecting text input, so that e.g. OS on-screen keyboard can be enabled. -- Added printf attribute to printf-like text formatting functions (Clang/GCC). -- Added GetMousePosOnOpeningCurrentPopup() helper. -- Added GetContentRegionAvailWidth() helper. -- Malformed UTF-8 data don't terminate string, output 0xFFFD instead (#307). -- ImDrawList: Added AddBezierCurve(), PathBezierCurveTo() API for cubic bezier curves (#311). -- ImDrawList: Allow to override ImDrawIdx type (#292). -- ImDrawList: Added an assert on overflowing index value (#292). -- ImDrawList: Fixed issues with channels split/merge. Now functional without manually adding a draw cmd. Added comments. -- ImDrawData: Added ScaleClipRects() helper useful when rendering scaled. (#287). -- Fixed Bullet() inconsistent layout behavior when clipped. -- Fixed IsWindowHovered() not taking account of window hoverability (may be disabled because of a popup). -- Fixed InvisibleButton() not honoring negative size consistently with other widgets that do so. -- Fixed OpenPopup() accessing current window, effectively opening "Debug" when called from an empty window stack. -- TreeNode(): Fixed IsItemHovered() result being inconsistent with interaction visuals (#282). -- TreeNode(): Fixed mouse interaction padding past the node label being accounted for in layout (#282). -- BeginChild(): Passing a ImGuiWindowFlags_NoMove inhibits moving parent window from this child. -- BeginChild() fixed missing rounding for child sizes which leaked into layout and have items misaligned. -- Begin(): Removed default name = "Debug" parameter. We already have a "Debug" window pushed to the stack in - the first place so it's not really a useful default. -- Begin(): Minor fixes with windows main clipping rectangle (e.g. child window with border). -- Begin(): Window flags are only read on the first call of the frame. Subsequent calls ignore flags, which allows - appending to a window without worrying about flags. -- InputText(): ignore character input when ctrl/alt are held. (Normally those text input are ignored by most wrappers.) (#279). -- Demo: Fixed incorrectly formed string passed to Combo (#298). -- Demo: Added simple Log demo. -- Demo: Added horizontal scrolling example + enabled in console, log and child examples (#246). -- Style: made scrollbars rounded by default. Because nice. Minor menu bar background alpha tweak. (#246) -- Metrics: display indices along with triangles count (#299) and some internal state. -- ImGuiTextFilter::PassFilter() supports string range. Added [] helper to ImGuiTextBuffer. -- ImGuiTextFilter::Draw() default parameter width=0.0f for no override, allow override with negative values. -- Examples: OpenGL2/OpenGL3: fix for retina displays. Default font current lack crispness. -- Examples: OpenGL2/OpenGL3: save/restore more GL state correctly. -- Examples: DirectX9/DirectX11: resizing buffers dynamically (#299). -- Examples: DirectX9/DirectX11: added missing middle mouse button to Windows event handler. -- Examples: DirectX11: fix for Visual Studio 2015 presumably shipping with an updated version of DX11. -- Examples: iOS: fixed missing files in project. - - ------------------------------------------------------------------------ - VERSION 1.44 (2015-08-08) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.44 - -Breaking Changes: - -- imgui.cpp has been split intro extra files: imgui_demo.cpp, imgui_draw.cpp, imgui_internal.h. - Add the two extra .cpp to your project or #include them from another .cpp file. (#219) - -Other Changes: - -- Internal data structure and several useful functions are now exposed in imgui_internal.h. This should make it easier - and more natural to extend ImGui. However please note that none of the content in imgui_internal.h is guaranteed - for forward-compatibility and code using those types/functions may occasionally break. (#219) -- All sample code is in imgui_demo.cpp. Please keep this file in your project and consider allowing your code to call - the ShowTestWindow() function as de facto guide to ImGui features. It will be stripped out by the linker when unused. -- Added GetContentRegionAvail() helper (basically GetContentRegionMax() - GetCursorPos()). -- Added ImGuiWindowFlags_NoInputs for totally input-passthru window. -- Button(): honor negative size consistently with other widgets that do so (width -100 to align the button 100 pixels - before the right-most position of the contents region). -- InputTextMultiline(): honor negative size consistently with other widgets that do so. -- Combo() clamp popup to lower edge of visible area. -- InputInt(): value doesn't pass through an int>float>int casting chain, fix handling lost of precision with "large" integer. -- InputInt() allow hexadecimal input (awkwardly via ImGuiInputTextFlags_CharsHexadecimal but we will allow format - string in InputInt* later). -- Checkbox(), RadioButton(): fixed scaling of checkbox and radio button for the filling of "active" visual. -- Columns: never assume horizontal space for scrollbar if NoScrollbar flag is explicitly set. -- Slider: fixed using FramePadding between frame and grab visual. Scaling that spacing would look odd. -- Fixed lower-right resize grip hit box not scaling along with its rendered size (#287) -- ImDrawList: Fixed angles in ImDrawList::PathArcTo(), PathArcToFast() (v1.43) being off by an extra PI for no reason. -- ImDrawList: Added ImDrawList::AddText() shorthand helper. -- ImDrawList: Add missing support for anti-aliased thick-lines (#133, also ref #288) -- ImFontAtlas: Added AddFontFromMemoryCompressedBase85TTF() to load base85 encoded font string. Default font encoded - as base85 saves ~100 lines / 26 KB of source code. Added base85 output to the binary_to_compressed_c tool. -- Build fix for MinGW (#276). -- Examples: OpenGL3: Fixed running on script core profiles for OSX (#277). -- Examples: OpenGL3: Simplified code using glBufferData for vertices as well (#277, #278) -- Examples: DirectX11: Clear font texture view to ensure Release() doesn't get called twice (#290). -- Updated to stb_truetype 1.07 (back to vanilla version as our minor changes are now in master & fix unlikely assert - with odd fonts (#280) - - ------------------------------------------------------------------------ - VERSION 1.43 (2015-07-17) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.43 - -Breaking Changes: - -- This is a rather important release and we unfortunately had to break the rendering API. - ImGui now requires you to render indexed vertices instead of non-indexed ones. The fix should be very easy. - Sorry for that! This change is saving a fair amount of CPU/GPU and enables us to get anti-aliasing for a marginal cost. - Each ImDrawList now contains both a vertex buffer and an index buffer. For each command, render ElemCount/3 triangles - using indices from the index buffer. -- If you are using a vanilla copy of one of the imgui_impl_XXXX.cpp provided in the example, you just need to update - your copy and you can ignore the rest. -- The signature of the io.RenderDrawListsFn handler has changed - From: ImGui_XXXX_RenderDrawLists(ImDrawList** const cmd_lists, int cmd_lists_count) - To: ImGui_XXXX_RenderDrawLists(ImDrawData* draw_data) - With: argument 'cmd_lists' -> 'draw_data->CmdLists' - argument 'cmd_lists_count' -> 'draw_data->CmdListsCount' - ImDrawList 'commands' -> 'CmdBuffer' - ImDrawList 'vtx_buffer' -> 'VtxBuffer' - ImDrawList n/a -> 'IdxBuffer' (new) - ImDrawCmd 'vtx_count' -> 'ElemCount' - ImDrawCmd 'clip_rect' -> 'ClipRect' - ImDrawCmd 'user_callback' -> 'UserCallback' - ImDrawCmd 'texture_id' -> 'TextureId' -- If you REALLY cannot render indexed primitives, you can call the draw_data->DeIndexAllBuffers() method to de-index - the buffers. This is slow and a waste of CPU/GPU. Prefer using indexed rendering! - Refer to code in the examples/ folder or ask on the GitHub if you are unsure of how to upgrade. Please upgrade! - -Other Changes: - -- Added anti-aliasing on lines and shapes based on primitives by @MikkoMononen (#133). - Between the use of indexed-rendering and the fact that the entire rendering codebase has been optimized and massaged - enough, with anti-aliasing enabled ImGui 1.43 is now running FASTER than 1.41. - Made some extra effort in making the code run faster in your typical Debug build. -- Anti-aliasing can be disabled in the ImGuiStyle structure via the AntiAliasedLines/AntiAliasedShapes fields for further gains. -- ImDrawList: Added AddPolyline(), AddConvexPolyFilled() with optional anti-aliasing. -- ImDrawList: Added stateful path building and stroking API. PathLineTo(), PathArcTo(), PathRect(), PathFill(), PathStroke() - with optional anti-aliasing. -- ImDrawList: Added AddRectFilledMultiColor() helper. -- ImDrawList: Added multi-channel rendering so out of order elements can be rendered in separate channels and then merged - back together (used by columns). -- ImDrawList: Fixed merging draw commands when equal clip rectangles are in the two first commands. -- ImDrawList: Fixed window draw lists not destructed properly on Shutdown(). -- ImDrawData: Added DeIndexAllBuffers() helper. -- Added lots of new font options ImFontAtlas::AddFont() and the new ImFontConfig structure. - - Added support for oversampling (ImFontConfig: OversampleH, OversampleV) and sub-pixel positioning (ImFontConfig: PixelSnapH). - Oversampling allows sub-pixel positioning but can also be used as a way to get some leeway with scaling fonts without re-rasterizing. - - Added GlyphExtraSpacing option to add extra horizontal spacing between characters (#242). - - Added MergeMode option to merge glyphs from different font inputs into a same font (#182, #232). - - Added FontDataOwnedByAtlas option to keep ownership from the TTF data buffer and request the atlas to make a copy (#220). -- Updated to stb_truetype 1.06 (+ minor mods) with better font rasterization. -- InputText: Added ImGuiInputTextFlags_NoHorizontalScroll flag. -- InputText: Added ImGuiInputTextFlags_AlwaysInsertMode flag. -- InputText: Added HasSelection() helper in ImGuiTextEditCallbackData as a clarification. -- InputText: Fix for using END key on a multi-line text editor (#275) -- Columns: Dispatch render of each column in a sub-draw list and merge on closure, saving a lot of draw calls! (#125) -- Popups: Fixed Combo boxes inside menus. (#272) -- Style: Added GrabRounding setting to make the sliders etc. grabs rounded. -- Changed SameLine() parameters from int to float. -- Fixed incorrect assert triggering when code stole ActiveID from user moving a window by calling e.g. SetKeyboardFocusHere(). -- Fixed CollapsingHeader() label rendering outside its frame in columns context where ClipRect max isn't aligned with the - right-side of the header. -- Metrics window: calculate bounding box of actual vertices when hovering a draw list. -- Examples: Showing more information in the Fonts section. -- Examples: Added a gratuitous About window. -- Examples: Updated all examples code (OpenGL/DX9/DX11/SDL/Allegro/iOS) to use indexed rendering. -- Examples: Fixed the SDL2 example to support Unicode text input (#274). - - ------------------------------------------------------------------------ - VERSION 1.42 (2015-07-08) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.42 - -Breaking Changes: - -- Renamed SetScrollPosHere() to SetScrollHere(). Kept inline redirection function (will obsolete). -- Renamed GetScrollPosY() to GetScrollY(). Necessary to reduce confusion and make scrolling API consistent, - because positions (e.g. cursor position) are not equivalent to scrolling amount. -- Removed obsolete GetDefaultFontData() function that would assert anyway. - If you are updating from <1.30 you'll get a compile error instead of an assertion. (obsoleted 2015/01/11) - -Other Changes: - -- Added SDL2 example application (courtesy of @CedricGuillemet) -- Added iOS example application (courtesy of @joeld42) -- Added Allegro 5 example application (courtesy of @bggd) -- Added TitleBgActive color in style so focused window is made visible. (#253) -- Added CaptureKeyboardFromApp() / CaptureMouseFromApp() to manually enforce inputs capturing. -- Added DragFloatRange2() DragIntRange2() helpers. (#76) -- Added a Y centering ratio to SetScrollFromCursorPos() which can be used to aim the top - or bottom of the window. (#150) -- Added SetScrollY(), SetScrollFromPos(), GetCursorStartPos() for manual scrolling manipulations. (#150). -- Added GetKeyIndex() helper for converting from ImGuiKey_\* enum to user's keycodes. - Basically pulls from io.KeysMap[]. -- Added missing ImGuiKey_PageUp, ImGuiKey_PageDown so more UI code can be written without - referring to implementation-side keycodes. -- MenuItem() can be activated on release. (#245) -- Allowing NewFrame() with DeltaTime==0.0f to not assert. -- Fixed IsMouseDragging(). (#260) -- Fixed PlotLines(), PlotHistogram() using incorrect hovering test so they would show their tooltip even when there is - a popup between mouse and the graph. -- Fixed window padding being reported incorrectly for child windows with borders when parent have no borders. -- Fixed a bug with TextUnformatted() clipping of long text blob when clipping y1 line sits on the first line of text. (#257) -- Fixed text baseline alignment of small button (no padding) after regular buttons. -- Fixed ListBoxHeader() not honoring negative sizes the same way as BeginChild() or BeginChildFrame(). (#263) -- Fixed warnings for more pedantic compiler settings (#258). -- ImVector<> cannot be re-defined anymore, cannot be replaced with std::vector<>. - Allowed us to clean up and optimize lots of code. Yeah! (#262) -- ImDrawList: store pointer to their owner name for easier auditing/debugging. -- Examples: added scroll tracking example with SetScrollFromCursorPos(). -- Examples: metrics windows render clip rectangle when hovering over a draw call. -- Lots of small optimization (particularly to run faster on unoptimized builds) and tidying up. -- Added font links in extra_fonts/ + instructions for using compressed fonts in C array. - - ------------------------------------------------------------------------ - VERSION 1.41 (2015-06-26) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.41 - -Breaking Changes: - -- Changed ImageButton() default bg_col parameter from (0,0,0,1) (black) to (0,0,0,0) (transparent). - Only makes a difference when texture have transparency. -- Changed Selectable() API from (label, selected, size) to (label, selected, flags, size). - Size override should be used very rarely so hopefully it doesn't affect many people. Sorry! - -Other Changes: - -- Added InputTextMultiline() multi-line text editor, vertical scrolling, selection, optimized - enough to handle rather big chunks of text in stateless context (thousands of lines are ok), - option for allowing Tab to be input, option for validating with Return or Ctrl+Return (#200). -- Added modal window API, BeginPopupModal(), follows the popup api scheme. Modal windows can be closed - by clicking outside. By default the rest of the screen is dimmed (using ImGuiCol_ModalWindowDarkening). - Modal windows can be stacked. -- Added GetGlyphRangesCyrillic() helper (#237). -- Added SetNextWindowPosCenter() to center a window prior to knowing its size. (#249) -- Added IsWindowHovered() helper. -- Added IsMouseReleased(), IsKeyReleased() helpers to allow to user to avoid tracking them. (#248) -- Allow Set*WindowSize() calls to be used with popups. -- Window: AutoFit can be triggered on each axis separately via SetNextWindowSize(), etc. -- Window: fixed scrolling with mouse wheel while window was collapsed. -- Window: fixed mouse wheel scroll issues. -- DragFloat(), SliderFloat(): Fixed rounding of negative numbers which sometime made the negative lower bound unreachable. -- InputText(): lifted character count limit. -- InputText(): fixes in case of using per-window font scaling. -- Selectable(), MenuItem(): do not use frame rounding for hovering/selection. -- Selectable(): Added flag ImGuiSelectableFlags_DontClosePopups. -- Selectable(): Added flag ImGuiSelectableFlags_SpanAllColumns (#125). -- Combo(): Fixed issue with activating a Combo() not taking active id (#241). -- ColorButton(), ColorEdit4(): fix to ensure that the colored square stays square when - non-default padding settings are used. -- BeginChildFrame(): returns bool like BeginChild() for clipping. -- SetScrollPosHere(): takes account of item height + more accurate centering + fixed precision issue. -- ImFont: ignoring '\r'. -- ImFont: added GetCharAdvance() helper. Exposed font Ascent and font Descent. -- ImFont: additional rendering optimizations. -- Metrics windows display storage size. - - ------------------------------------------------------------------------ - VERSION 1.40 (2015-05-31) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.40 - -Breaking Changes: - -- The BeginPopup() API (introduced in 1.37) had to be changed to allow for stacked popups and menus. - Use OpenPopup() to toggle the opened state and BeginPopup() to append.** -- The third parameter of Button(), 'repeat_if_held' has been removed. While it's been very rarely used, - some code will possibly break if you didn't rely on the default parameter. - Use PushButtonRepeat()/PopButtonRepeat() to configure repeat. -- Renamed IsRectClipped() to !IsRectVisible() for consistency (opposite return value!). - Kept inline redirection function (will obsolete) -- Renamed GetWindowCollapsed() to IsWindowCollapsed() for consistency. - Kept inline indirection function (will obsolete). - -Other Changes: - -- Menus: Added a menu system! Menus are typically populated with menu items and sub-menus, - but you can add any sort of widgets in them (buttons, text inputs, sliders, etc.). (#126) -- Menus: Added MenuItem() to append a menu item. Optional shortcut display, acts a button & toggle - with checked/unchecked state, disabled mode. Menu items can be used in any window. -- Menus: Added BeginMenu() to append a sub-menu. Note that you generally want to add sub-menu inside a popup or a menu-bar. - They will work inside a normal window but it will be a bit unusual. -- Menus: Added BeginMenuBar() to append to window menu-bar (set ImGuiWindowFlags_MenuBar to enable). -- Menus: Added BeginMainMenuBar() helper to append to a fullscreen main menu-bar. -- Popups: Support for stacked popups. Each popup level inhibit inputs to lower levels. The menus system is based on this. (#126). -- Popups: Added BeginPopupContextItem(), BeginPopupContextWindow(), BeginPopupContextVoid() to - create a popup window on mouse-click. -- Popups: Popups have borders by default (#197), attenuated border alpha in default theme. -- Popups & Tooltip: Fit within display. Handling various positioning/sizing/scrolling edge - cases. Better hysteresis when moving in corners. Tooltip always tries to stay away from mouse-cursor. -- Added ImGuiStorage::GetVoidPtrRef() for manipulating stored void*. -- Added IsKeyDown() IsMouseDown() as convenience and for consistency with existing functions - (instead of reading them from IO structures). -- Added Dummy() helper to advance layout by a given size. Unlike InvisibleButton() this doesn't catch any click. -- Added configurable io.KeyRepeatDelay, io.KeyRepeatRate keyboard and mouse repeat rate. -- Added PushButtonRepeat() / PopButtonRepeat() to enable hold-button-to-repeat press on any button. -- Removed the third 'repeat' parameter of Button(). -- Added IsAnyItemHovered() helper. -- Added GetItemsLineHeightWithSpacing() helper. -- Added ImGuiListClipper helper for clipping large list of evenly sized items, to avoid using CalcListClipping() directly. -- Separator: within group start on group horizontal offset. (#205) -- InputText: Fixed incorrect edit state after text buffer is appended to by user via the callback. (#206) -- InputText: CTRL+letter-key shortcuts (e.g. CTRL+C/V/X) makes sure only CTRL is pressed. (#214) -- InputText: Fixed cursor generating a zero-width wire-frame rectangle turning into a division by zero (would go unnoticed - unless you trapped exceptions). -- InputFloatN/InputIntN: Flags parameter added to match scalar versions. (#218) -- Selectable: Horizontal filling not declared to ItemSize() so Selectable(),SameLine() works and we can better auto-fit the window. -- Selectable: Handling text baseline alignment for line that aren't of text height. -- Combo: Empty label doesn't add ItemInnerSpacing alignment, matching other widgets. -- EndGroup: Carries the text base offset from the last line of the group (sort of incorrect but better than nothing, - should use the first line of the group, will implement in the future). -- Columns: distinguish columns-set ID from other widgets as a convenience, added asserts and sailors. -- ListBox: ListBox() function only use public API to encourage creating custom versions. ListBoxHeader() can return false. -- ListBox: Uses ImGuiListClipper and assume items of matching height, so large lists can be handled. -- Plot: overlay label clipped within frame when not fitting. -- Window: Added ImGuiSetCond_Appearing to test the hidden->visible transition in SetWindow***/SetNextWindow*** functions. -- Window: Auto-fitting cancel out one worth of vertical spacing for vertical symmetry (like what group and tooltip do). -- Window: Default item width for auto-resizing windows expressed as a factor of font height, scales better with different font. -- Window: Fixed auto-fit calculation mismatch of whether a scrollbar will be added by maximum height - clamping. Also honor NoScrollBar in the case of height clamping, not adding extra horizontal space. -- Window: Hovering require to hover same child window. Reverted 860cf57 (December 3). Might break something if you have - child overlapping items in parent window. -- Window: Fixed appending multiple times to an existing child via multiple BeginChild/EndChild calls to same child name. - Allows a simple form of out-of-order appending. -- Window: Fixed auto-filling child window using WindowMinSize at their minimum size, irrelevant. -- Metrics: Added io.MetricsActiveWindows counter. (#213. -- Metrics: Added io.MetricsAllocs counter (number of active memory allocations). -- Metrics: ShowMetricsWindow() shows popups stack, allocations. -- Style: Added style.DisplayWindowPadding to prevent windows from reaching edges of display - (similar to style.DisplaySafeAreaPadding which is still in effect and also affect popups/tooltips). -- Style: Removed style.AutoFitPadding, using style.WindowPadding makes more sense (the default values were already the same). -- Style: Added style.ScrollbarRounding. (#212) -- Style: Added ImGuiCol_TextDisabled for disabled text. Added TextDisabled() helper. -- Style: Added style.WindowTitleAlign alignment options, to e.g. center title on windows. (#222) -- ImVector: tweak growth strategy, matches vector from VS2010. -- ImFontAtlas: Added ClearFonts(), making the different clear funcs more explicit. (#224) -- ImFontAtlas: Fixed appending new fonts without clearing existing fonts. Clearing input data left to application. (#224) -- ImDrawList: Merge draw command better, cases of multiple Begin/End gets merged properly. -- Store common stacked settings contiguously in memory to avoid heap allocation for unused features, and reduce cache misses. -- Shutdown() tests for g.IO.Fonts not being NULL to ease use of multiple ImGui contexts. (#207) -- Added IMGUI_DISABLE_OBSOLETE_FUNCTIONS define to disable the functions that are meant to be removed. -- Examples: Added ? marks with tooltips next to various widgets. Added more comments in the demo window. -- Examples: Added Menu-bar example. -- Examples: Added Simple Layout example. -- Examples: AutoResize demo doesn't use TextWrapped(). -- Examples: Console example uses standard malloc/free, makes more sense as a copy & pastable example. -- Examples: DirectX9/11: Fixed key mapping for down arrow. -- Examples: DirectX9/11: hide OS cursor if ImGui is drawing it. (#155) -- Examples: DirectX11: explicitly set rasterizer state. -- Examples: OpenGL3: Add conditional compilation of forward compat as required by glfw on OSX. (#229) -- Fixed build with Visual Studio 2008 (possibly earlier versions as well). -- Other fixes, comments, tweaks. - - ------------------------------------------------------------------------ - VERSION 1.38 (2015-04-20) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.38 - -Breaking Changes: - -- Renamed IsClipped() to IsRectClipped(). Kept inline redirection function (will obsolete). -- Renamed ImDrawList::AddArc() to ImDrawList::AddArcFast(). - -Other Changes: - -- Added DragFloat(), DragInt() widget, click and drag to adjust value with given step. - Hold SHIFT/ALT to speed-up/slow-down. Double-click or CTRL+click to input text. - Passing min >= max makes the widget unbounded. -- Added DragFloat2(), DragFloat3(), DragFloat4(), DragInt2(), DragInt3(), DragInt4() helper variants. -- Added ShowMetricsWindow() which is mainly useful to debug ImGui internals. -- Added IO.MetricsRenderVertices counter. -- Added ResetMouseDragDelta() for iterative dragging operations. -- Added ImFontAtlas::AddFontFromCompressedTTF() helper + binary_to_compressed_c.cpp tool to - compress a file and create a .c array from it. -- Added PushId() GetId() variants that takes string range to avoid user making unnecessary copies. -- Added IsItemVisible(). -- Fixed IsRectClipped() incorrectly returning false when log is enabled. -- Slider: visual fix in the unlikely that style.GrabMinSize is larger than a slider. -- SliderFloat: removed support for unbound slider (using FLT_MAX), caused various inconsistency. Use InputFloat()/DragFloat(). -- ColorEdit4: hide components prefix if there's no space for them. -- Combo: adding frame padding inside the combo box. -- Columns: mouse dragging uses absolute mouse coordinates.Fixed dragging left-most column of an auto-resizable window. #125 -- Selectable: render highlight into AutoFitPadding region but do not extend it, fixing visual gap. -- Focus: Allow SetWindowFocus(NULL) to remove focus. -- Focus: Clicking on void (outside an ImGui windows) loses keyboard-focus so application can use TAB. -- Popup: Fixed hovering over a popup's child (popups disable hovering on other windows but not their childs) #197 -- Fixed active widget not releasing its active state while being clipped. -- Fixed user-facing version of IsItemHovered() ignoring overlapping windows. -- Fixed label vertical alignment for InputInt2(), InputInt3(), InputInt4(). -- Fixed new collapsed auto-resizing window with saved .ini settings not calculating their initial width #176 -- Fixed Begin() returning true on collapsed windows that had loaded settings #176 -- Fixed style.DisplaySafeAreaPadding handling from being applied on window prior to them auto-fitting. -- ShowTestWindow(): added examples for DragFloat, DragInt and only custom label embedded in format strings. -- ShowTestWindow(): fixed "manipulating titles" example not doing the right thing, broken in ff35d24 -- Examples: OpenGL/GLFW: Fixed modifier key state setting in GLFW callbacks. -- Examples: OpenGL/GLFW: Added glBindTexture(0) in OpenGL fixed pipeline examples. - Save restore current program and texture in the OpenGL3 example. -- Examples: DirectX11: Removed unnecessary vertices conversion and CUSTOMVERTEX types. -- Comments, fixes, tweaks. - - ------------------------------------------------------------------------ - VERSION 1.37 (2015-03-26) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.37 - -Other Changes: - -- Added a more convenient three parameters version of Begin() which covers the common uses better. -- Added mouse cursor types handling (resize, move, text input cursors, etc.) that user - can query with GetMouseCursor(). Added demo and instructions in ShowTestWindow(). -- Added embedded mouse cursor data for MouseDrawCursor software cursor rendering, for consoles/tablets/etc. (#155). -- Added first version of BeginPopup/EndPopup() helper API to create popup menus. Popups automatically - lock their position to the mouse cursor when first appearing. They close automatically when clicking - outside, and inhibit hovering items from other windows when active (to allow for clicking outside). (#126) -- Added thickness parameter to ImDrawList::AddLine(). -- Added ImDrawList::PushClipRectFullScreen() helper. -- Added style.DisplaySafeAreaPadding which was previously hard-coded. - (useful if you can't see the edges of your display, e.g. TV screens). -- Added CalcItemRectClosestPoint() helper. -- Added GetMouseDragDelta(), IsMouseDragging() helpers, given a mouse button and an optional - "unlock" threshold. Added io.MouseDragThreshold setting. (#167) -- IsItemHovered() return false if another widget is active, aka we can't use what we are hovering now. -- Added IsItemHoveredRect() if old behavior of IsItemHovered() is needed (e.g. for implementing - the drop side of a drag'n drop operation). -- IsItemHovered() include space taken by label and behave consistently for all widgets (#145) -- Auto-filling child window feed their content size to parent (#170) -- InputText() removed the odd ~ characters when clipping. -- InputText() update its width in case of resize initiated programmatically while the widget is active. -- InputText() last active preserve scrolling position. Reset scroll if widget size becomes bigger than contents. -- Selectable(): not specifying a width defaults to using max of label width and remaining width. -- Selectable(const char*, bool) version has bool defaulting to false. -- Selectable(): fixed misusage of GetContentRegionMax().x leaking into auto-fitting. -- Windows starting Collapsed runs initial auto-fit to retrieve a width for their title bar (#175) -- Fixed new window from having an incorrect content size on their first frame, if queried by user. - Fixed SetWindowPos/SetNextWindowPos having a side-effect size computation (#175) -- InputFloat(): fixed label alignment if total widget width forcefully bigger than space available. -- Auto contents size aware of enforced vertical scrollbar if window is larger than display size. -- Fixed new windows auto-fitting bigger than their .ini saved size. - This was a bug but it may be a desirable effect sometimes, may reconsider it. -- Fixed negative clipping rectangle when collapsing windows that could affect manual - submission to ImDrawList and end-user rendering function if unhandled (#177) -- Fixed bounding measurement of empty groups (fix #162) -- Fixed assignment order in Begin() making auto-fit size effectively lag by one frame. Also disabling - "clamp into view" while windows are auto-fitting so that auto-fitting window in corners don't get pushed away. -- Fixed MouseClickedPos not updated on double-click update (#167) -- Fixed MouseDrawCursor feature submitting an empty trailing command in the draw list. - Fixed unmerged draw calls for software mouse cursor. -- Fixed double-clicking on resize grip keeping the grip active if mouse button is kept held. -- Bounding box tests exclude higher bound, so touching items (zero spacing) don't report double hover when cursor is on edge. -- Setting io.LogFilename to NULL disable default LogToFile() (part of #175) -- Tweak stb_textedit integration to be lenient if another piece of code are leaking their STB_TEXTEDIT definitions/symbols. -- Shutdown() freeing a few extra vectors so they don't have to freed by destruction (#169) -- Examples: OpenGL2/3 examples automatically hide the OS mouse cursor if software cursor rendering is used. -- ShowTestWindow: Added Widgets Alignment demo under Layout section -- ShowTestWindow: Added simple dragging widget example. -- ShowTestWindow: Graph has checkbox under the label, also demo using BeginGroup/EndGroup(). -- ShowTestWindow: Using SetNextWindowSize() in examples to encourage its use. -- Fixes, tweaks, comments. - - ------------------------------------------------------------------------ - VERSION 1.36 (2015-03-18) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.36 - -Other Changes: - -- Added ImGui::GetVersion(), IMGUI_VERSION (#127) -- Added BeginGroup()/EndGroup() layout tools (#160). -- Added Indent() / Unindent(). -- Added InputInt2(), InputInt3(), InputInt4() for completeness. -- Added GetItemRectSize(). -- Added VSliderFloat(), VSliderInt(), vertical sliders. -- Added IsRootWindowFocused(), IsRootWindowOrAnyChildFocused(). -- Added io.KeyAlt + support in examples apps, in prevision for future usage of Alt modifier (was missing). -- Added ImGuiStyleVar_GrabMinSize enum value for PushStyleVar(). -- Various fixes related to vertical alignment of text after widget of varied sizes. - Allow for multiple blocks of multiple lines text on the same "line". Added demos. -- Explicit size passed to Plot*(), Button() includes the frame padding. -- Style: Changed default Border and Column border colors to be most subtle. -- Renamed style.TreeNodeSpacing to style.IndentSpacing, ImGuiStyleVar_TreeNodeSpacing to ImGuiStyleVar_IndentSpacing. -- Renamed GetWindowIsFocused() to IsWindowFocused(), kept inline redirection with old name (will obsolete). -- Renamed GetItemRectMin()/GetItemRectMax() to GetItemRectMin()/GetItemRectMax(), kept inline redirection with old name (will obsolete). -- Sliders: Fast-path when power=1.0f, also makes code easier to read. -- Sliders: Fixed parsing of decimal precision back from format string when using %%. -- Sliders: Fixed hovering bounding test excluding padding between outer frame and grab (there was a few pixels dead-zone). -- Separator() logs itself as text when passing through text log. -- Optimization: TreeNodeV() early out if SkipItems is set without formatting. -- Moved various static buffers into state. Increase the formatted string buffer from 1K to 3K. -- Examples: Example console keeps focus on input box at all times. -- Examples: Updated to GLFW 3.1. Moved to examples/libs/ folder. -- Examples: Added 64-bit projects for MSVC. -- Examples: Increase warning level from /W3 to /W4 for MSVC. -- Examples: DirectX9: fixed duplicate creation of vertex buffer. -- Renamed internal type ImGuiAabb to ImRect. Changed mentions of 'box' or 'aabb' to say 'rect'. -- Tweaks, minor fixes and comments. - - ------------------------------------------------------------------------ - VERSION 1.35 (2015-03-09) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.35 - -Other Changes: - -- Examples: refactored all examples application to make it easier to isolate and grab the - code you need for OpenGL 2/3, DirectX 9/11, and toward a more sensible format for samples. -- Scrollbar grab have a minimum size (style.GrabSizeMin), always visible even with huge - scroll amount. (#150). -- Scrollbar: Clicking inside the grab box doesn't modify scroll value. Subsequent movement always relative. -- Added "###" labelling syntax to pass a label that isn't part of the hashed ID (#107), e.g. ("%d###static_id",rand()). -- Added GetColumnIndex(), GetColumnsCount() (#154) -- Added GetScrollPosY(), GetScrollMaxY(). -- Fixed the Chinese/Japanese glyph ranges; include missing punctuations (#156) -- Fixed Combo() and ListBox() labels not included in declared size, for use with SameLine(), etc. (fix #149, #151). -- Fixed ListBoxHeader() incorrect handling of SkipItems early out when window is collapsed. -- Fixed using IsItemHovered() after EndChild() (#151) -- Fixed malformed UTF-8 decoding errors leading to infinite loops (#158) -- InputText() handles buffer limit correctly for multi-byte UTF-8 characters, won't insert - an incomplete UTF-8 character when reaching buffer limit (fix #158) -- Handle double-width space (0x3000) in various places the same as single-width spaces, - for Chinese/Japanese users. -- Collapse triangle uses text color (not border color). -- Fixed font fallback glyph width. -- Renamed style.ScrollBarWidth to style.ScrollbarWidth to be consistent with other casing. -- Windows: setup a default handler for ImeSetInputScreenPosFn so the IME dialog - (for Japanese/Chinese, etc.) is positioned correctly as you input text. -- Windows: default clipboard handlers for Windows handle UTF-8. -- Examples: Fixed DirectX 9/11 examples applications handling of Microsoft IME. -- Examples: Allow DirectX 9/11 examples applications to resize the window. -- ShowTestWindow: Fixed "undo" button of custom rendering applet. -- ShowTestWindow: Added "Manipulating Window Title" example. - - ------------------------------------------------------------------------ - VERSION 1.34 (2015-03-02) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.34 - -Other Changes: - -- Added Bullet() helper - equivalent to BulletText(""), SameLine(). -- Added SetWindowFocus(), SetWindowFocus(const char*), SetNextWindowFocus() (#146) -- Added SetWindowPos(), SetWindowSize(), SetWindowCollaposed() given a window name. -- Added SetNextTreeNodeOpened() with optional condition flag in replacement of OpenNextNode() - and consistent with other API. -- Renamed ImGuiSetCondition_* to ImGuiSetCond_* and ImGuiCondition_FirstUseThisSession to ImGuiCond_Once. -- Added missing definition for ImGui::GetWindowCollapsed(). -- Fixed GetGlyphRangesJapanese() actually missing katakana ranges and a few useful extensions. -- Fixed clicking on a widget in a child window not focusing the parent window (#147). -- Fixed clicking on empty space of child window not setting keyboard focus for the child window (#147). -- Fixed IsItemHovered() behaving differently on Combo() (#145) -- Fixed ColumnOffsets storage not honoring SetStateStorage() (not very useful but consistent). -- Examples: Removed dependency on Glew for OpenGL examples. Removed Glew binaries for Windows. -- Examples: Fixed link warning for OpenGL windows examples. -- Comments, tweaks. - ------------------------------------------------------------------------ - VERSION 1.33b (2015-02-23) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.33b - -Other Changes: - -- Fixed resizing columns. - - ------------------------------------------------------------------------ - VERSION 1.33 (2015-02-22) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.33 - -Other Changes: - -- InputText: having a InputText widget active doesn't steal mouse inputs from clicking on - a button before losing focus (relate to #134) -- InputText: cursor/selection/undo stack persist when using other widgets and getting back to same (#134). -- InputText: fix effective buffer size being smaller than necessary by 1 byte (so if you give - 3 bytes you can input 2 ascii chars + zero terminator, which is correct). -- Added IsAnyItemActive(). -- Child window explicitly inherit collapse state from parent (so if user keeps submitting items - even thought Begin has returned 'false' the child items will be clipped faster). -- BeginChild() return a bool the same way Begin() does. if true you can skip submitting content. -- Removed extraneous (1,1) padding on child window (pointed out in #125) -- Columns: doesn't bail out when SkipItems is set (fix #136) -- Columns: Separator() within column correctly vertical offset all cells (pointed out in #125) -- GetColumnOffset() / SetColumnOffset() handles padding values more correctly so matching columns - can be lined up between a parent and a child window (cf. #125) -- Fix ImFont::BuildLookupTable() potential dangling pointer dereference (fix #131) -- Fix hovering of child window extending past their parent not taking account of parent clipping - rectangle (fix #137) -- Sliders: value text is clipped inside the frame when resizing sliders to be small. -- ImGuITextFilter::Draw() use regular width call rather than computing its own arbitrary width. -- ImGuiTextFilter: can take a default filter string during construction. - - ------------------------------------------------------------------------ - VERSION 1.32 (2015-02-11) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.32 - -Other Changes: - -- Added Selectable() building block for various list boxes, combo boxes, etc. -- Added ListBox() (#129). -- Added ListBoxHeader(), ListBoxFooter() for customized list traversal and creating multi-selection boxes. -- Fixed title bar text clipping issue (fix #128). -- InputText: added ImGuiInputTextFlags_CallbackCharFilter system for filtering/replacement (#130). - Callback now passed an "EventFlag" parameter. -- InputText: Added ImGuiInputTextFlags_CharsUppercase and ImGuiInputTextFlags_CharsNoBlank stock filters. -- PushItemWidth() can take negative value to right-align items. -- Optimization: Columns offsets cached to avoid unnecessary binary search. -- Optimization: Optimized CalcTextSize() function by about 25% (they are often the bottleneck when - submitting thousands of clipped items). -- Added ImGuiCol_ChildWindowBg, ImGuiStyleVar_ChildWindowRounding for completeness and flexibility. -- Added BeginChild() variant that takes an ImGuiID. -- Tweak default ImGuiCol_HeaderActive color to be less bright. -- Calculate framerate for the user (IO.Framerate), as a purely luxurious feature and to reduce sample code size a little. - - ------------------------------------------------------------------------ - VERSION 1.31 (2015-02-08) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.31 - -Other Changes: - -- Added ImGuiWindowFlags_NoCollapse flag. -- Added a way to replace the internal state pointer so that we can optionally share it between - modules (e.g. multiple DLLs). -- Added tint_col parameter to ImageButton(). -- Added CalcListClipping() helper to perform faster/coarse clipping on user side - (when manipulating lists with thousands of items). -- Added GetCursorPosX() / GetCursorPosY() shortcuts. -- Renamed GetTextLineSpacing() to GetTextLineHeightWithSpacing(). -- Combo box always appears above other child windows of a same parent. -- Combo/Label: label is properly clipped inside the frame (#23). -- Added cpu-side text clipping functions which are used in some instances to avoid extra draw calls. -- InputText: Filtering private Unicode range 0xE000-0xF8FF. -- Fixed holding button over scrollbar creating a small feedback loop with calculation of contents size. -- Calling SetCursorPos() automatically extends the contents size. -- Track ownership of mouse clicks. Avoid requesting IO.WantCaptureMouse if initial click was outside of ImGui. -- Removed the dependency on realloc(). -- Other fixes, tweaks and comments. - - ------------------------------------------------------------------------ - VERSION 1.30 (2015-02-01) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.30 - -Breaking Changes: - -- Big update! Initialization had to be changed. You don't need to load PNG data anymore. The - new system gives you uncompressed texture data. - - This sequence: - const void* png_data; - unsigned int png_size; - ImGui::GetDefaultFontData(NULL, NULL, &png_data, &png_size); - // - - Became: - unsigned char* pixels; - int width, height; - // io.Fonts->AddFontFromFileTTF("myfontfile.ttf", 24.0f); // Optionally load another font - io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height); - // - io.Fonts->TexID = (your_texture_identifier); - - PixelCenterOffset has been removed and isn't a necessary setting anymore. Offset your - projection matrix by 0.5 if you have rendering problems. - -Other Changes: - -- Loading TTF files with stb_truetype.h. -- We still embed a compressed pixel-perfect TTF version of ProggyClean for convenience. -- Runtime font rendering is a little faster than previously. -- You can load multiple fonts with multiple size inside the font atlas. Rendering with multiple - fonts are still merged into a single draw call whenever possible. -- The system handles UTF-8 and provide ranges to easily load e.g. characters for Japanese display. -- Added PushFont() / PopFont(). -- Added Image() and ImageButton() to display your own texture data. -- Added callback system in command-list. This can be used if you want to do your own rendering - (e.g. render a 3D scene) inside ImGui widgets. -- Added IsItemActive() to tell if last widget is being held / modified (as opposed to just - being hovered). Useful for custom dragging behaviors. -- Style: Added FrameRounding setting for a more rounded look (default to 0 for now). -- Window: Fixed using multiple Begin/End pair on the same window. -- Window: Fixed style.WindowMinSize not being honored properly. -- Window: Added SetCursorScreenPos() helper (WindowPos+CursorPos = ScreenPos). -- ColorEdit3: clicking on color square change the edition. The toggle button is hidden by default. -- Clipboard: Fixed logging to clipboard on architectures where va_list are passed by reference to vsnprintf. -- Clipboard: Improve memory reserve policy for Clipboard / ImGuiTextBuffer. -- Tooltip: Always auto-resize. -- Tooltip: Fixed TooltigBg color not being honored properly. -- Tooltip: Allow SetNextWindowPos() to be used on tooltips. -- Added io.DisplayVisibleMin / io.DisplayVisibleMax to ease integration of virtual / scrolling display. -- Added Set/GetVoidPtr in ImGuiStorage. -- Added ColorConvertHSVtoRGB, ColorConvertRGBtoHSV, ColorConvertFloat4ToU32 helpers. -- Added ImColor() inline helper to easily convert colors to packed 4x1 byte or 4x1 float formats. -- Added io.MouseDrawCursor option to draw a mouse cursor for now (on systems that don't have one) -- Examples: Added custom drawing app example for using ImDrawList api. -- Lots of others fixes, tweaks and comments! - - ------------------------------------------------------------------------ - VERSION 1.20 (2015-01-07) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.20 - -- Fixed InputInt() InputFloat() label not declaring their width, breaking usage of SameLine(). -- Fixed hovering of combo boxes that extend beyond the parent window limits. -- Fixed text input of Unicode character in the 128-255 range. -- Fixed clipboard pasting into an InputText box not filtering the characters according to contents semantic. -- Dragging outside area of a widget while it is active doesn't trigger hover on other widgets. -- Activating widget bring parent window to front if not already. -- Checkbox and Radio buttons activate on click-release to be consistent with other widgets and most UI. -- InputText() now consumes input characters immediately so they cannot be reused if - ImGui::Update is called again with a call to ImGui::Render(). (fixes #105) -- Examples: Console: added support for History callbacks + some cleanup. -- Various small optimizations. -- Cleanup and other fixes. - - ------------------------------------------------------------------------ - VERSION 1.19 (2014-12-30) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.19 - -- Tightening default style a little. -- Added ImGuiStyleVar_WindowRounding enum for PushStyleVar() API. -- Added SliderInt2(), SliderInt3(), SliderInt4() for consistency. -- Widgets more consistently handle empty labels (starting with ## mark) for their size calculation. -- Fixed crashing with zero sized frame-buffer. -- Fixed ImGui::Combo() not registering its size properly when clipped out of screen. -- Renamed second parameter to Begin() to 'bool* p_opened' to be a little more self-explanatory. - Added more comments on the use of Begin(). -- Logging: Added LogText() to pass text straight to the log output (tty/clipboard/file) without rendering it. -- Logging: Added LogFinish() to stop logging at an arbitrary point. -- Logging: Log depth padding relative to start depth. -- Logging: Tree nodes and headers looking better when logged to text. -- Logging: Log outputs \r\n under Windows to play it nicely with \n unaware tools such as Notepad. -- Style editor: added a button to output colors to clipboard/tty. -- OpenGL3 example: fix growing of VBO. -- Cleanup and other minor fixes. - - ------------------------------------------------------------------------ - VERSION 1.18 (2014-12-11) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.18 - -- Added ImGuiWindowFlags_NoScrollWithMouse, disable mouse wheel scrolling on a window. -- Added ImGuiWindowFlags_NoSavedSettings, disable loading/saving window state to .ini file. -- Added SetNextWindowPos(), SetNextWindowSize(), SetNextWindowCollapsed() API along - with SetWindowPos(), SetWindowSize(), SetWindowCollapsed(). All functions include an - optional second parameter to easily set current value vs session default value vs. - persistent default value. -- Removed rarely useful SetNewWindowDefaultPos() in favor of new API. -- Fixed hovering of lower-right resize grip when it is above a child window. -- Fixed InputInt() writing to output when it doesn't need to. -- Added IMGUI_INCLUDE_IMGUI_USER_H define to include user file at the bottom of imgui.h without modifying the vanilla distribution. -- ImGuiStorage helper can store float + added helpers to get pointer to stored data. -- Setup Travis CI integration. Builds the OpenGL examples on Linux with GCC and Clang. -- Examples: Added a "Fixed overlay" example in ShowTestWindow(). -- Examples: Re-added OpenGL 3 programmable-pipeline example (along with the existing fixed pipeline example). -- Examples: OpenGL examples can now resize the application window. -- Other minor fixes and comments. - - ------------------------------------------------------------------------ - VERSION 1.17 (2014-12-03) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.17 - -- Added ImGuiWindowFlags_AlwaysAutoResize + example app. -- Calling ImGui::SetWindowSize(0,0) force an autofit without zero-sizing first. -- ImGui::InputText() support for completion/history/custom callback + added fancy completion example in the console demo app. -- Not word-wrapping on apostrophes. -- Increased visibility of check box and radio button with smaller size. -- Smooth mouse scrolling on OSX (uses floating point scroll/wheel input). -- New version of IMGUI_ONCE_UPON_A_FRAME helper macro that works with all compilers. -- Moved IO.Font*** options to inside the IO.Font-> structure. -- Added IO.FontGlobalScale setting (in addition to Font->Scale per individual font). -- Fixed more Clang -Weverything warnings. -- Examples: Added DirectX11 example application. -- Examples: Created single .sln solution for all example projects. -- Examples: Fixed DirectX9 example window initially showing an hourglass cursor. -- Examples: Removed Microsoft IME handler in examples, too niche/confusing. Moved equivalent code to imgui.cpp instruction block. - - ------------------------------------------------------------------------ - VERSION 1.16b (2014-11-21) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.16b - -- Fix broken PopStyleVar() crashing. - - ------------------------------------------------------------------------ - VERSION 1.16 (2014-11-21) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.16 - -- General fixing of Columns API to allow filling a cell with multiple widgets before switching to the next column. -- Added documentation INDEX to top of imgui.cpp. -- Fixed unaligned memory access for Emscripten compatibility. -- Various pedantic warning fixes (now testing with Clang). -- Added extra asserts to catch incorrect usage. -- PushStyleColor() / PushStyleVar() can be used outside the scope of a window (namely to change - variables that are used within the Begin() call). -- PushTextWrapPos() defaults to 0.0 (right-end of current drawing region). -- Fixed compatibility with std::vector if user decide to #define ImVector. -- MouseWheel input is now normalized. -- Added IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT compile-time option to redefine the vertex layout. -- Style editor: colors listed inside a scrolling region. -- Examples: tweaks and fixes. - - ------------------------------------------------------------------------ - VERSION 1.15 (2014-11-07) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.15 - -- Renamed IsHovered() to IsItemHovered(). -- Added word-wrapping API: TextWrapped(), PushTextWrapPos(), PopTextWrapPos(). -- Added IsItemFocused() to tell if last widget is being focused for keyboard input. -- Added overloads of ImGui::PlotLines() and ImGui::PlotHistogram() taking a function pointer to get values. -- Added SetWindowSize(). -- Added GetContentRegionMax() supporting columns. Some bug fixes with using columns. -- Added PushStyleVar(),PopStyleVar() helpers to modify style from user code. -- Added dummy IMGUI_API definition in front of all entry-points for silly DLL action. -- Allowing BeginChild() allows to specify negative sizes to specify "use remaining minus xx". -- Windows with the NoResize flag can still use auto-fitting. -- Added a simple example console into the demo window. -- Comments and fixes. - - ------------------------------------------------------------------------ - VERSION 1.14 (2014-10-25) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.14 - -- Comments and fixes. -- Added SetKeyboardFocusHere() to set input focus from code. -- Added GetWindowFont(), GetWindowFontSize() for users of the low-level ImDrawList API. -- Added a UserData void *pointer so that the callback functions can access user state - "Just in case a project has adverse reactions to adding globals or statics in their own code." -- Renamed IMGUI_INCLUDE_IMGUI_USER_CPP to IMGUI_INCLUDE_IMGUI_USER_INL - - ----------------------------------------------------------------------- - VERSION 1.13 (2014-09-30) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.13 - -- Added support for UTF-8 for international text display and text edition/input (if the font supports it). -- Added sample "M+ font" by Coji Morishita in extra_fonts/ to display Japanese text. -- Added IO.ImeSetInputScreenPosFn callback for positioning OS IME input. -- Added IO.FontFallbackGlyph (default to '?'). -- OpenGL example: added commented code to load custom font from file-system. -- OpenGL example: shared makefile for Linux and MacOSX. - - ----------------------------------------------------------------------- - VERSION 1.12 (2014-09-24) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.12 - -- Added IO.FontBaseScale value for easy scaling of all windows. -- Added IsMouseHoveringWindow(), IsMouseHoveringAnyWindow(), IsPosHoveringAnyWindow() helpers. -- Added va_list variations of all functions taking ellipsis (...) parameters. -- Added section in documentation to explicitly document cases of API breaking changes (e.g. renamed IM_MALLOC below). -- Moved IM_MALLOC / IM_FREE defines. to IO structure members that can be set at runtime - (also allowing precompiled ImGui to cover more use cases). -- Fixed OpenGL samples for Retina display. -- Comments and minor fixes. - - ----------------------------------------------------------------------- - VERSION 1.11 (2014-09-10) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.11 - -- Added more comments in the code. -- Made radio buttons render ascii when logged into tty/file/clipboard. -- Added ImGuiInputTextFlags_EnterReturnsTrue flag to InputText() and variants. -- Added #define IMGUI_INCLUDE_IMGUI_USER_CPP to optionally include imgui_user.cpp from the end of imgui.cpp -- Fixed file-descriptor leak if ImBitmapFont::LoadFromFile() calls to fseek/ftell fails. - - ----------------------------------------------------------------------- - VERSION 1.10 (2014-08-31) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.10 - -- User can override memory allocators by #define-ing IM_MALLOC, IM_FREE, IM_REALLOC, -- Added SetCursorPosX(), SetCursorPosY() shortcuts. -- Checkbox() returns true when pressed. -- Added optional external fonts data in extra_fonts/ for reference. -- Removed the need to setup IO.FontHeight when using a custom font. -- Added comments on external fonts usage. - - ----------------------------------------------------------------------- - VERSION 1.09 (2014-08-28) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.09 - -Breaking Changes: - -- The behavior of PixelCenterOffset changed! You may need to change your value if you had set - it to non-default in your code and/or offset your projection matrix by 0.5 pixels. It is - likely that the default PixelCenterOffset value of 0.0 is now suitable unless your rendering - uses some form of multisampling. - -Other Changes: - -- Various minor render tweaks and fixes. Better support for renderers using multisampling. -- Moved IMGUI_FONT_TEX_UV_FOR_WHITE #define to a variable in the IO structure so font can be changed at runtime. -- Minor other fixes, tweaks, comments. - - ----------------------------------------------------------------------- - VERSION 1.08 (2014-08-25) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.08 - -- Fixed ImGuiTextFilter trimming of leading/trailing blanks. -- Fixed file descriptor leak on LoadSettings() failure. -- Fix type conversion compiler warnings. -- Added basic sizes edition in the style editor. -- Added CalcTextSize(), GetCursorScreenPos() functions. -- Disable client state in OpenGL example after rendering. -- Converted all Tabs to Spaces in sources. - - ----------------------------------------------------------------------- - VERSION 1.07 (2014-08-18) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.07 - -- Added InputFloat4(), SliderFloat4() helpers. -- Added global Alpha in ImGuiStyle structure. When Alpha=0.0, ImGui skips most of logic - and all rendering processing. -- Fix clipping of title bar text. -- Fix to allow the user to call NewFrame() multiple times without calling Render(). -- Reduce inner window clipping to take account for the extend of CollapsingHeader() - share - same clipping rectangle. -- Fix for child windows with inverted clip rectangles (when scrolled and out of screen, Etc.). -- Minor fixes, tweaks, comments. - - ----------------------------------------------------------------------- - VERSION 1.06 (2014-08-15) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.06 - -- Added BeginTooltip()/EndTooltip() helpers to create tooltips with custom contents. -- Added TextColored() helper. -- Added a 'stride' parameter to PlotLines() / PlotHistogram(). -- Fixed PlotLines() / PlotHistogram() from occasionally wrapping back to the most-left value. -- TreeNode() / CollapsingHeader() ignore clicks when CTRL or SHIFT are held. -- Slowed down mouse wheel scrolling inside combo boxes. -- Minor tweaks. -- Fixed trailing '\n' in text strings reporting extra line height. -- Fixed tooltip position needlessly leaking into .ini file. -- Fixed invalid .ini file data persistently being saved back into the file. - - ----------------------------------------------------------------------- - VERSION 1.05 (2014-08-14) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.05 - -- Added default clipboard functions for Windows + "private" clipboard on other systems (user can still override). -- Fixed logarithmic sliders and HSV conversions on Mac/Linux. -- Tidying up example applications so it looks easier to just grab code. -- Added GetItemBoxMin(), GetItemBoxMax(). -- Tweaks, more consistent #define names. -- Fix for doing multiple Begin()/End() during the same frame. - - ----------------------------------------------------------------------- - VERSION 1.04 (2014-08-13) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.04 - -- Fixes (v1.03 introduced a bug with combo box & scissoring bug OpenGL sample). -- Added ImGui::InputFloat2() and ImGui::SliderFloat2() functions. - - ----------------------------------------------------------------------- - VERSION 1.03 (2014-08-13) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.03 - -- OpenGL example now use the fixed function-pipeline + cleanups, down by 150 lines. -- Added quick & dirty Makefiles for MacOSX and Linux. -- Simplified the DrawList system, ImDrawCmd include the clipping rectangle + some optimizations. -- Fixed warnings for more stringent compilation settings. - - ----------------------------------------------------------------------- - VERSION 1.02 (2014-08-12) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.02 - -- Comments. -- Portability fixes. -- Fixing and tidying up sample applications. -- Checkboxes and radio buttons can be clicked on their labels as well as their icon. -- Checkboxes and radio buttons display in a different color when hovered. - - ----------------------------------------------------------------------- - VERSION 1.01 (2014-08-11) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.01 - -- Added PixelCenterOffset for OpenGL/DirectX compatibility. -- Commented and tweaked samples. -- Added Git ignore list. - - ----------------------------------------------------------------------- - VERSION 1.00 (2014-08-10) ------------------------------------------------------------------------ - -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.00 - -- Initial release. - diff --git a/libs/imgui-1.92.1/docs/CONTRIBUTING.md b/libs/imgui-1.92.1/docs/CONTRIBUTING.md deleted file mode 100644 index fb946c4..0000000 --- a/libs/imgui-1.92.1/docs/CONTRIBUTING.md +++ /dev/null @@ -1,81 +0,0 @@ -# Contributing Guidelines - -## Index - -- [Getting Started & General Advice](#getting-started--general-advice) -- [Issues vs Discussions](#issues-vs-discussions) -- [How to open an Issue](#how-to-open-an-issue) -- [How to open a Pull Request](#how-to-open-a-pull-request) -- [Copyright / Contributor License Agreement](#copyright--contributor-license-agreement) - -## Getting Started & General Advice - -- Article: [How To Ask Good Questions](https://bit.ly/3nwRnx1). -- Please browse the [Wiki](https://github.com/ocornut/imgui/wiki) to find code snippets, links and other resources (e.g. [Getting Started](https://github.com/ocornut/imgui/wiki/Getting-Started), [Useful extensions](https://github.com/ocornut/imgui/wiki/Useful-Extensions)). -- Please read [Getting Started](https://github.com/ocornut/imgui/wiki/Getting-Started) if your question relates to setting up Dear ImGui. -- Please read [docs/FAQ.md](https://github.com/ocornut/imgui/blob/master/docs/FAQ.md). -- Please read [docs/FONTS.md](https://github.com/ocornut/imgui/blob/master/docs/FONTS.md) if your question relates to fonts or text. -- Please run `ImGui::ShowDemoWindow()` to explore the demo and its sources. -- Please use the search function of your IDE to search for symbols and comments related to your situation. -- Please use the search function of GitHub to look for similar topics (always include 'Closed' issues/pr in your search). -- You may [browse issues by Labels](https://github.com/ocornut/imgui/labels). -- Please use a web search engine to look for similar issues. -- If you get a crash or assert, use a debugger to locate the line triggering it and read the comments around. -- Please don't be a [Help Vampire](https://slash7.com/2006/12/22/vampires/). - -## 'Issues' vs 'Discussions' - -We are happy to use 'Issues' for many type of open-ended questions. We are encouraging 'Issues' becoming an enormous, centralized and cross-referenced database of Dear ImGui contents. - -Only if you: -- Cannot BUILD or LINK examples. -- Cannot BUILD, or LINK, or RUN Dear ImGui in your application or custom engine. -- Cannot LOAD a font. - -Then please [use the Discussions forums](https://github.com/ocornut/imgui/discussions) instead of opening an issue. - -If Dear ImGui is successfully showing in your app and you have used Dear ImGui before, you can open an Issue. Any form of discussions is welcome as a new issue. - -## How to open an issue - -You may use the Issue Tracker to submit bug reports, feature requests or suggestions. You may ask for help or advice as well. But **PLEASE CAREFULLY READ THIS WALL OF TEXT. ISSUES IGNORING THOSE GUIDELINES MAY BE CLOSED. USERS IGNORING THOSE GUIDELINES MIGHT BE BLOCKED.** - -Please do your best to clarify your request. The amount of incomplete or ambiguous requests due to people not following those guidelines is often overwhelming. Issues created without the requested information may be closed prematurely. Exceptionally entitled, impolite, or lazy requests may lead to bans. - -**PLEASE UNDERSTAND THAT OPEN-SOURCE SOFTWARE LIVES OR DIES BY THE AMOUNT OF ENERGY MAINTAINERS CAN SPARE. WE HAVE LOTS OF STUFF TO DO. THIS IS AN ATTENTION ECONOMY AND MANY LAZY OR MINOR ISSUES ARE HOGGING OUR ATTENTION AND DRAINING ENERGY, TAKING US AWAY FROM MORE IMPORTANT WORK.** - -Steps: - -- Article: [How To Ask Good Questions](https://bit.ly/3nwRnx1). -- **PLEASE DO FILL THE REQUESTED NEW ISSUE TEMPLATE.** Including Dear ImGui version number, branch name, platform/renderer back-ends (imgui_impl_XXX files), operating system. -- **Try to be explicit with your GOALS, your EXPECTATIONS and what you have tried**. Be mindful of [The XY Problem](http://xyproblem.info/). What you have in mind or in your code is not obvious to other people. People frequently discuss problems and suggest incorrect solutions without first clarifying their goals. When requesting a new feature, please describe the usage context (how you intend to use it, why you need it, etc.). If you tried something and it failed, show us what you tried. -- **Please INCLUDE CODE. Provide a Minimal, Complete, and Verifiable Example ([MCVE](https://stackoverflow.com/help/mcve)) to demonstrate your problem**. An ideal submission includes a small piece of code that anyone can paste into one of the examples applications (examples/../main.cpp) or demo (imgui_demo.cpp) to understand and reproduce it. **Narrowing your problem to its shortest and purest form is the easiest way to understand it, explain it and fix it**. Please test your shortened code to ensure it exhibits the problem. **Often while creating the MCVE you will solve the problem!** Many questions that are missing a standalone verifiable example are missing the actual cause of their issue in the description, which ends up wasting everyone's time. -- **Attach screenshots (or GIF/video) to clarify the context**. They often convey useful information that is omitted by the description. You can drag pictures/files in the message edit box. Avoid using 3rd party image hosting services, prefer the long-term longevity of GitHub attachments (you can drag pictures into your post). On Windows, you can use [ScreenToGif](https://www.screentogif.com/) to easily capture .gif files. -- **If you are discussing an assert or a crash, please provide a debugger callstack**. Never state "it crashes" without additional information. If you don't know how to use a debugger and retrieve a callstack, learning about it will be useful. -- **Please make sure that your project has asserts enabled.** Calls to IM_ASSERT() are scattered in the code to help catch common issues. When an assert is triggered read the comments around it. By default IM_ASSERT() calls the standard assert() function. To verify that your asserts are enabled, add the line `IM_ASSERT(false);` in your main() function. Your application should display an error message and abort. If your application doesn't report an error, your asserts are disabled. -- Please state if you have made substantial modifications to your copy of Dear ImGui or the back-end. -- If you are not calling Dear ImGui directly from C++, please provide information about your Language and the wrapper/binding you are using. -- Be mindful that messages are being sent to the mailbox of "Watching" users. Try to proofread your messages before sending them. Edits are not seen by those users unless they browse the site. - -**Some unfortunate words of warning** -- If you are involved in cheating schemes (e.g. DLL injection) for competitive online multiplayer games, please don't post here. We won't answer and you will be blocked. It doesn't matter if your question relates to said project. We've had too many of you and need to protect our time and sanity. -- Due to frequent abuse of this service from the aforementioned users, if your GitHub account is anonymous and was created five minutes ago please understand that your post will receive more scrutiny and incomplete questions will be harshly dismissed. - -If you have been using Dear ImGui for a while or have been using C/C++ for several years or have demonstrated good behavior here, it is ok to not fulfill every item to the letter. Those are guidelines and experienced users or members of the community will know which information is useful in a given context. - -## How to open a Pull Request - -- **Please understand that by submitting a PR you are also submitting a request for the maintainer to review your code and then take over its maintenance.** PR should be crafted both in the interest of the end-users and also to ease the maintainer into understanding and accepting it. -- Many PRs are useful to demonstrate a need and a possible solution but aren't adequate for merging (causing other issues, not seeing other aspects of the big picture, etc.). In doubt, don't hesitate to push a PR because that is always the first step toward pointing toward a problem, and finding the mergeable solution! Even if a PR stays unmerged for a long time, its presence can be useful for other users and helps toward finding a general solution. -- **When adding a feature,** please describe the usage context (how you intend to use it, why you need it, etc.). Be mindful of [The XY Problem](http://xyproblem.info/). -- **When fixing a warning or compilation problem,** please post the compiler log and specify the compiler version and platform you are using. -- **Attach screenshots (or GIF/video) to clarify the context and demonstrate the feature at a glance.** You can drag pictures/files in the message edit box. Prefer the long-term longevity of GitHub attachments over 3rd party hosting (you can drag pictures into your post). -- **Make sure your code follows the coding style already used in the codebase:** 4 spaces indentations (no tabs), `local_variable`, `FunctionName()`, `MemberName`, `// Text Comment`, `//CodeComment();`, C-style casts, etc.. We don't use modern C++ idioms and tend to use only a minimum of C++11 features. The applications under examples/ are generally less consistent because they sometimes try to mimic the coding style often adopted by a certain ecosystem (e.g. DirectX-related code tend to use the style of their sample). -- **Make sure you create a branch dedicated to the pull request**. In Git, 1 PR is associated to 1 branch. If you keep pushing to the same branch after you submitted the PR, your new commits will appear in the PR (we can still cherry-pick individual commits). - -## Copyright / Contributor License Agreement - -Any code you submit will become part of the repository and be distributed under the [Dear ImGui license](https://github.com/ocornut/imgui/blob/master/LICENSE.txt). By submitting code to the project you agree that the code is your work and that you can give it to the project. - -You also agree by submitting your code that you grant all transferable rights to the code to the project maintainer, including for example re-licensing the code, modifying the code, and distributing it in source or binary forms. Specifically, this includes a requirement that you assign copyright to the project maintainer. For this reason, do not modify any copyright statements in files in any PRs. - diff --git a/libs/imgui-1.92.1/docs/EXAMPLES.md b/libs/imgui-1.92.1/docs/EXAMPLES.md deleted file mode 100644 index 20851c1..0000000 --- a/libs/imgui-1.92.1/docs/EXAMPLES.md +++ /dev/null @@ -1,236 +0,0 @@ -_(You may browse this at https://github.com/ocornut/imgui/blob/master/docs/EXAMPLES.md or view this file with any Markdown viewer)_ - -## Dear ImGui: Examples - -**The [examples/](https://github.com/ocornut/imgui/blob/master/examples) folder example applications (standalone, ready-to-build) for variety of -platforms and graphics APIs.** They all use standard backends from the [backends/](https://github.com/ocornut/imgui/blob/master/backends) folder (see [docs/BACKENDS.md](https://github.com/ocornut/imgui/blob/master/docs/BACKENDS.md)). - -The purpose of Examples is to showcase integration with backends, let you try Dear ImGui, and guide you toward -integrating Dear ImGui in your own application/game/engine. -**Once Dear ImGui is setup and running, run and refer to `ImGui::ShowDemoWindow()` in imgui_demo.cpp for usage of the end-user API.** - -You can find Windows binaries for some of those example applications at: - https://www.dearimgui.com/binaries - - -### Getting Started - -Integration in a typical existing application, should take <20 lines when using standard backends. - -```cpp -At initialization: - call ImGui::CreateContext() - call ImGui_ImplXXXX_Init() for each backend. - -At the beginning of your frame: - call ImGui_ImplXXXX_NewFrame() for each backend. - call ImGui::NewFrame() - -At the end of your frame: - call ImGui::Render() - call ImGui_ImplXXXX_RenderDrawData() for your Renderer backend. - -At shutdown: - call ImGui_ImplXXXX_Shutdown() for each backend. - call ImGui::DestroyContext() -``` - -Main resource: -- Read **[Getting Started](https://github.com/ocornut/imgui/wiki/Getting-Started) wiki guide** for detailed examples of how to integrate Dear ImGui in an existing application. - -Additional resources: -- Read FAQ at https://www.dearimgui.com/faq -- Read 'PROGRAMMER GUIDE' section in imgui.cpp. -- Read the comments and instruction at the top of each file. - -If you are using any of the backends provided here, you can add the backends/imgui_impl_xxxx(.cpp,.h) -files to your project and use as-in. Each imgui_impl_xxxx.cpp file comes with its own individual -Changelog, so if you want to update them later it will be easier to catch up with what changed. - - -### Examples Applications - -[example_allegro5/](https://github.com/ocornut/imgui/blob/master/examples/example_allegro5/)
-Allegro 5 example.
-= main.cpp + imgui_impl_allegro5.cpp - -[example_android_opengl3/](https://github.com/ocornut/imgui/blob/master/examples/example_android_opengl3/)
-Android + OpenGL3 (ES) example.
-= main.cpp + imgui_impl_android.cpp + imgui_impl_opengl3.cpp - -[example_apple_metal/](https://github.com/ocornut/imgui/tree/master/examples/example_apple_metal/)
-OSX & iOS + Metal example.
-= main.m + imgui_impl_osx.mm + imgui_impl_metal.mm
-It is based on the "cross-platform" game template provided with Xcode as of Xcode 9. -(NB: imgui_impl_osx.mm is currently not as feature complete as other platforms backends. -You may prefer to use the GLFW Or SDL backends, which will also support Windows and Linux.) - -[example_apple_opengl2/](https://github.com/ocornut/imgui/blob/master/examples/example_apple_opengl2/)
-OSX + OpenGL2 example.
-= main.mm + imgui_impl_osx.mm + imgui_impl_opengl2.cpp
-(NB: imgui_impl_osx.mm is currently not as feature complete as other platforms backends. - You may prefer to use the GLFW Or SDL backends, which will also support Windows and Linux.) - -[example_glfw_wgpu/](https://github.com/ocornut/imgui/blob/master/examples/example_glfw_wgpu/)
-GLFW + WebGPU example. Supports Emscripten (web) or Dawn (desktop)
-= main.cpp + imgui_impl_glfw.cpp + imgui_impl_wgpu.cpp -Note that the 'example_glfw_opengl3' and 'example_sdl2_opengl3' examples also supports Emscripten! - -[example_glfw_metal/](https://github.com/ocornut/imgui/blob/master/examples/example_glfw_metal/)
-GLFW (Mac) + Metal example.
-= main.mm + imgui_impl_glfw.cpp + imgui_impl_metal.mm - -[example_glfw_opengl2/](https://github.com/ocornut/imgui/blob/master/examples/example_glfw_opengl2/)
-GLFW + OpenGL2 example (legacy, fixed pipeline).
-= main.cpp + imgui_impl_glfw.cpp + imgui_impl_opengl2.cpp
-**DO NOT USE THIS IF YOUR CODE/ENGINE IS USING MODERN GL or WEBGL (SHADERS, VBO, VAO, etc.)**
-This code is mostly provided as a reference to learn about Dear ImGui integration, because it is shorter. -If your code is using GL3+ context or any semi modern GL calls, using this renderer is likely to -make things more complicated, will require your code to reset many GL attributes to their initial -state, and might confuse your GPU driver. One star, not recommended. - -[example_glfw_opengl3/](https://github.com/ocornut/imgui/blob/master/examples/example_glfw_opengl3/)
-GLFW (Win32, Mac, Linux) + OpenGL3+/ES2/ES3 example (modern, programmable pipeline).
-= main.cpp + imgui_impl_glfw.cpp + imgui_impl_opengl3.cpp
-This uses more modern GL calls and custom shaders.
-This support building with Emscripten and targeting WebGL.
-Prefer using that if you are using modern GL or WebGL in your application. - -[example_glfw_vulkan/](https://github.com/ocornut/imgui/blob/master/examples/example_glfw_vulkan/)
-GLFW (Win32, Mac, Linux) + Vulkan example.
-= main.cpp + imgui_impl_glfw.cpp + imgui_impl_vulkan.cpp
-This is quite long and tedious, because: Vulkan. -For this example, the main.cpp file exceptionally use helpers function from imgui_impl_vulkan.h/cpp. - -[example_glut_opengl2/](https://github.com/ocornut/imgui/blob/master/examples/example_glut_opengl2/)
-GLUT (e.g., FreeGLUT on Linux/Windows, GLUT framework on OSX) + OpenGL2 example.
-= main.cpp + imgui_impl_glut.cpp + imgui_impl_opengl2.cpp
-Note that GLUT/FreeGLUT is largely obsolete software, prefer using GLFW or SDL. - -[example_null/](https://github.com/ocornut/imgui/blob/master/examples/example_null/)
-Null example, compile and link imgui, create context, run headless with no inputs and no graphics output.
-= main.cpp
-This is used to quickly test compilation of core imgui files in as many setups as possible. -Because this application doesn't create a window nor a graphic context, there's no graphics output. - -[example_sdl2_directx11/](https://github.com/ocornut/imgui/blob/master/examples/example_sdl2_directx11/)
-SDL2 + DirectX11 example, Windows only.
-= main.cpp + imgui_impl_sdl2.cpp + imgui_impl_dx11.cpp
-This to demonstrate usage of DirectX with SDL2. - -[example_sdl2_metal/](https://github.com/ocornut/imgui/blob/master/examples/example_sdl2_metal/)
-SDL2 + Metal example, Mac only.
-= main.mm + imgui_impl_sdl2.cpp + imgui_impl_metal.mm - -[example_sdl2_opengl2/](https://github.com/ocornut/imgui/blob/master/examples/example_sdl2_opengl2/)
-SDL2 (Win32, Mac, Linux etc.) + OpenGL example (legacy, fixed pipeline).
-= main.cpp + imgui_impl_sdl2.cpp + imgui_impl_opengl2.cpp
-**DO NOT USE OPENGL2 CODE IF YOUR CODE/ENGINE IS USING GL OR WEBGL (SHADERS, VBO, VAO, etc.)**
-This code is mostly provided as a reference to learn about Dear ImGui integration, because it is shorter. -If your code is using GL3+ context or any semi modern GL calls, using this renderer is likely to -make things more complicated, will require your code to reset many GL attributes to their initial -state, and might confuse your GPU driver. One star, not recommended. - -[example_sdl2_opengl3/](https://github.com/ocornut/imgui/blob/master/examples/example_sdl2_opengl3/)
-SDL2 (Win32, Mac, Linux, etc.) + OpenGL3+/ES2/ES3 example.
-= main.cpp + imgui_impl_sdl2.cpp + imgui_impl_opengl3.cpp
-This uses more modern GL calls and custom shaders.
-This support building with Emscripten and targeting WebGL.
-Prefer using that if you are using modern GL or WebGL in your application. - -[example_sdl2_sdlrenderer2/](https://github.com/ocornut/imgui/blob/master/examples/example_sdl2_sdlrenderer2/)
-SDL2 (Win32, Mac, Linux, etc.) + SDL_Renderer for SDL2 example.
-= main.cpp + imgui_impl_sdl2.cpp + imgui_impl_sdlrenderer2.cpp
-This requires SDL 2.0.18+ (released November 2021)
- -[example_sdl2_vulkan/](https://github.com/ocornut/imgui/blob/master/examples/example_sdl2_vulkan/)
-SDL2 (Win32, Mac, Linux, etc.) + Vulkan example.
-= main.cpp + imgui_impl_sdl2.cpp + imgui_impl_vulkan.cpp
-This is quite long and tedious, because: Vulkan.
-For this example, the main.cpp file exceptionally use helpers function from imgui_impl_vulkan.h/cpp. - -[example_sdl3_opengl3/](https://github.com/ocornut/imgui/blob/master/examples/example_sdl3_opengl3/)
-SDL3 (Win32, Mac, Linux, etc.) + OpenGL3+/ES2/ES3 example.
-= main.cpp + imgui_impl_sdl3.cpp + imgui_impl_opengl3.cpp
-This uses more modern GL calls and custom shaders.
-This support building with Emscripten and targeting WebGL.
- -[example_sdl3_sdlgpu3/](https://github.com/ocornut/imgui/blob/master/examples/example_sdl3_sdlgpu3/)
-SDL3 (Win32, Mac, Linux, etc.) + SDL_GPU for SDL3 example.
-= main.cpp + imgui_impl_sdl3.cpp + imgui_impl_sdlrenderer3.cpp
- -[example_sdl3_sdlrenderer3/](https://github.com/ocornut/imgui/blob/master/examples/example_sdl3_sdlrenderer3/)
-SDL3 (Win32, Mac, Linux, etc.) + SDL_Renderer for SDL3 example.
-= main.cpp + imgui_impl_sdl3.cpp + imgui_impl_sdlrenderer3.cpp
- -[example_sdl3_vulkan/](https://github.com/ocornut/imgui/blob/master/examples/example_sdl3_vulkan/)
-SDL3 (Win32, Mac, Linux, etc.) + Vulkan example.
-= main.cpp + imgui_impl_sdl3.cpp + imgui_impl_vulkan.cpp
-This is quite long and tedious, because: Vulkan.
-For this example, the main.cpp file exceptionally use helpers function from imgui_impl_vulkan.h/cpp. - -[example_win32_directx9/](https://github.com/ocornut/imgui/blob/master/examples/example_win32_directx9/)
-DirectX9 example, Windows only.
-= main.cpp + imgui_impl_win32.cpp + imgui_impl_dx9.cpp - -[example_win32_directx10/](https://github.com/ocornut/imgui/blob/master/examples/example_win32_directx10/)
-DirectX10 example, Windows only.
-= main.cpp + imgui_impl_win32.cpp + imgui_impl_dx10.cpp - -[example_win32_directx11/](https://github.com/ocornut/imgui/blob/master/examples/example_win32_directx11/)
-DirectX11 example, Windows only.
-= main.cpp + imgui_impl_win32.cpp + imgui_impl_dx11.cpp - -[example_win32_directx12/](https://github.com/ocornut/imgui/blob/master/examples/example_win32_directx12/)
-DirectX12 example, Windows only.
-= main.cpp + imgui_impl_win32.cpp + imgui_impl_dx12.cpp
-This is quite long and tedious, because: DirectX12. - -[example_win32_opengl3/](https://github.com/ocornut/imgui/blob/master/examples/example_win32_opengl3/)
-Raw Windows + OpenGL3 example (modern, programmable pipeline)
-= main.cpp + imgui_impl_win32.cpp + imgui_impl_opengl3.cpp
- -[example_win32_vulkan/](https://github.com/ocornut/imgui/blob/master/examples/example_win32_vulkan/)
-Raw Windows + Vulkan example
-= main.cpp + imgui_impl_win32.cpp + imgui_impl_vulkan.cpp
- - -### Miscellaneous - -**Building** - -Unfortunately, nowadays it is still tedious to create and maintain portable build files using external -libraries (the kind we're using here to create a window and render 3D triangles) without relying on -third party software and build systems. For most examples here we choose to provide: - - Makefiles for Linux/OSX - - Batch files for Visual Studio 2008+ - - A .sln project file for Visual Studio 2012+ - - Xcode project files for the Apple examples -Please let us know if they don't work with your setup! -You can probably just import the imgui_impl_xxx.cpp/.h files into your own codebase or compile those -directly with a command-line compiler. - -If you are interested in using Cmake to build and links examples, see: - https://github.com/ocornut/imgui/pull/1713 and https://github.com/ocornut/imgui/pull/3027 - -**About mouse cursor latency** - -Dear ImGui does not introduce significant extra lag for most behaviors, -e.g. the last value passed to 'io.AddMousePosEvent()' before NewFrame() will result in windows being moved -to the right spot at the time of EndFrame()/Render(). At 60 FPS your experience should be pleasant. - -However, consider that OS mouse cursors are typically rendered through a very specific hardware-accelerated -path, which makes them feel smoother than the majority of content rendered via regular graphics API (including, -but not limited to Dear ImGui windows). Because UI rendering and interaction happens on the same plane -as the mouse, that disconnect may be jarring to particularly sensitive users. -You may experiment with enabling the io.MouseDrawCursor flag to request Dear ImGui to draw a mouse cursor -using the regular graphics API, to help you visualize the difference between a "hardware" cursor and a -regularly rendered software cursor. -However, rendering a mouse cursor at 60 FPS will feel sluggish, so you likely won't want to enable that at -all times. It might be beneficial for the user experience to switch to a software rendered cursor _only_ -when an interactive drag is in progress. - -Note that some setup configurations or GPU drivers may introduce additional display lag depending on their settings. -If you notice that dragging windows is laggy and you are not sure what the cause is: try drawing a simple -2D shape directly under the mouse cursor to help identify the issue! - diff --git a/libs/imgui-1.92.1/docs/FAQ.md b/libs/imgui-1.92.1/docs/FAQ.md deleted file mode 100644 index 10fb603..0000000 --- a/libs/imgui-1.92.1/docs/FAQ.md +++ /dev/null @@ -1,768 +0,0 @@ -# FAQ (Frequently Asked Questions) - -You may link to this document using short form: - https://www.dearimgui.com/faq -or its real address: - https://github.com/ocornut/imgui/blob/master/docs/FAQ.md -or view this file with any Markdown viewer. - - -## Index - -| **Q&A: Basics** | -:---------------------------------------------------------- | -| [Where is the documentation?](#q-where-is-the-documentation) | -| [What is this library called?](#q-what-is-this-library-called) | -| [Which version should I get?](#q-which-version-should-i-get) | -| **Q&A: Integration** | -| **[How to get started?](#q-how-to-get-started)** | -| **[How can I tell whether to dispatch mouse/keyboard to Dear ImGui or my application?](#q-how-can-i-tell-whether-to-dispatch-mousekeyboard-to-dear-imgui-or-my-application)** | -| [How can I enable keyboard or gamepad controls?](#q-how-can-i-enable-keyboard-or-gamepad-controls) | -| [How can I use this on a machine without mouse, keyboard or screen? (input share, remote display)](#q-how-can-i-use-this-on-a-machine-without-mouse-keyboard-or-screen-input-share-remote-display) | -| [How can I create my own backend?](q-how-can-i-create-my-own-backend) -| [I integrated Dear ImGui in my engine and little squares are showing instead of text...](#q-i-integrated-dear-imgui-in-my-engine-and-little-squares-are-showing-instead-of-text) | -| [I integrated Dear ImGui in my engine and some elements are clipping or disappearing when I move windows around...](#q-i-integrated-dear-imgui-in-my-engine-and-some-elements-are-clipping-or-disappearing-when-i-move-windows-around) | -| [I integrated Dear ImGui in my engine and some elements are displaying outside their expected windows boundaries...](#q-i-integrated-dear-imgui-in-my-engine-and-some-elements-are-displaying-outside-their-expected-windows-boundaries) | -| **Q&A: Usage** | -| **[About the ID Stack system..
Why is my widget not reacting when I click on it?
Why is the wrong widget reacting when I click on one?
How can I have widgets with an empty label?
How can I have multiple widgets with the same label?
How can I have multiple windows with the same label?](#q-about-the-id-stack-system)** | -| [How can I display an image?](#q-how-can-i-display-an-image)
[What are ImTextureID/ImTextureRef?](#q-what-are-imtextureidimtextureref)| -| [How can I use maths operators with ImVec2?](#q-how-can-i-use-maths-operators-with-imvec2) | -| [How can I use my own maths types instead of ImVec2/ImVec4?](#q-how-can-i-use-my-own-maths-types-instead-of-imvec2imvec4) | -| [How can I interact with standard C++ types (such as std::string and std::vector)?](#q-how-can-i-interact-with-standard-c-types-such-as-stdstring-and-stdvector) | -| [How can I display custom shapes? (using low-level ImDrawList API)](#q-how-can-i-display-custom-shapes-using-low-level-imdrawlist-api) | -| **Q&A: Fonts, Text** | -| [How should I handle DPI in my application?](#q-how-should-i-handle-dpi-in-my-application) | -| [How can I load a different font than the default?](#q-how-can-i-load-a-different-font-than-the-default) | -| [How can I easily use icons in my application?](#q-how-can-i-easily-use-icons-in-my-application) | -| [How can I load multiple fonts?](#q-how-can-i-load-multiple-fonts) | -| [How can I display and input non-Latin characters such as Chinese, Japanese, Korean, Cyrillic?](#q-how-can-i-display-and-input-non-latin-characters-such-as-chinese-japanese-korean-cyrillic) | -| **Q&A: Concerns** | -| [Who uses Dear ImGui?](#q-who-uses-dear-imgui) | -| [Can you create elaborate/serious tools with Dear ImGui?](#q-can-you-create-elaborateserious-tools-with-dear-imgui) | -| [Can you reskin the look of Dear ImGui?](#q-can-you-reskin-the-look-of-dear-imgui) | -| [Why using C++ (as opposed to C)?](#q-why-using-c-as-opposed-to-c) | -| **Q&A: Community** | -| [How can I help?](#q-how-can-i-help) | - - -# Q&A: Basics - -### Q: Where is the documentation? - -**This library is poorly documented at the moment and expects the user to be acquainted with C/C++.** -- The [Wiki](https://github.com/ocornut/imgui/wiki) is a hub to many resources and links. -- Handy [Getting Started](https://github.com/ocornut/imgui/wiki/Getting-Started) guide to integrate Dear ImGui in an existing application. -- 20+ standalone example applications using e.g. OpenGL/DirectX are provided in the [examples/](https://github.com/ocornut/imgui/blob/master/examples/) folder to explain how to integrate Dear ImGui with your own engine/application. You can run those applications and explore them. -- See demo code in [imgui_demo.cpp](https://github.com/ocornut/imgui/blob/master/imgui_demo.cpp) and particularly the `ImGui::ShowDemoWindow()` function. The demo covers most features of Dear ImGui, so you can read the code and see its output. -- See documentation: [Backends](https://github.com/ocornut/imgui/blob/master/docs/BACKENDS.md), [Examples](https://github.com/ocornut/imgui/blob/master/docs/EXAMPLES.md), [Fonts](https://github.com/ocornut/imgui/blob/master/docs/FONTS.md). -- See documentation and comments at the top of [imgui.cpp](https://github.com/ocornut/imgui/blob/master/imgui.cpp) + general API comments in [imgui.h](https://github.com/ocornut/imgui/blob/master/imgui.h). -- The [Glossary](https://github.com/ocornut/imgui/wiki/Glossary) page may be useful. -- The [Issues](https://github.com/ocornut/imgui/issues) and [Discussions](https://github.com/ocornut/imgui/discussions) sections can be searched for past questions and issues. -- Your programming IDE is your friend, find the type or function declaration to find comments associated with it. -- The `ImGui::ShowMetricsWindow()` function exposes lots of internal information and tools. Although it is primarily designed as a debugging tool, having access to that information tends to help understands concepts. - -##### [Return to Index](#index) - ---- - -### Q. What is this library called? - -**This library is called Dear ImGui**. Please refer to it as Dear ImGui (not ImGui, not IMGUI). - -(The library misleadingly started its life in 2014 as "ImGui" due to the fact that I didn't give it a proper name when I released 1.0, and had no particular expectation that it would take off. However, the term IMGUI (immediate-mode graphical user interface) was coined before and is being used in variety of other situations e.g. Unity uses it own implementation of the IMGUI paradigm. To reduce the ambiguity without affecting existing code bases, I have decided in December 2015 a fully qualified name "Dear ImGui" for this library. - -##### [Return to Index](#index) - ---- - -### Q: Which version should I get? -I occasionally tag [Releases](https://github.com/ocornut/imgui/releases) but it is generally safe and recommended to sync to master/latest. The library is fairly stable and regressions tend to be fixed fast when reported. - -You may use the ['docking'](https://github.com/ocornut/imgui/tree/docking) branch which includes: -- [Docking features](https://github.com/ocornut/imgui/wiki/Docking) -- [Multi-viewport features](https://github.com/ocornut/imgui/wiki/Multi-Viewports) - -Many projects are using this branch and it is kept in sync with master regularly. - -##### [Return to Index](#index) - ----- - -# Q&A: Integration - -### Q: How to get started? - -Read [Getting Started](https://github.com/ocornut/imgui/wiki/Getting-Started).
-Read [docs/EXAMPLES.md](https://github.com/ocornut/imgui/blob/master/docs/EXAMPLES.md).
-Read [docs/BACKENDS.md](https://github.com/ocornut/imgui/blob/master/docs/BACKENDS.md).
-Read `PROGRAMMER GUIDE` section of [imgui.cpp](https://github.com/ocornut/imgui/blob/master/imgui.cpp).
-The [Wiki](https://github.com/ocornut/imgui/wiki) is a hub to many resources and links. - -For first-time users having issues compiling/linking/running or issues loading fonts, please use [GitHub Discussions](https://github.com/ocornut/imgui/discussions). - -##### [Return to Index](#index) - ---- - -### Q: How can I tell whether to dispatch mouse/keyboard to Dear ImGui or my application? - -You can read the `io.WantCaptureMouse`, `io.WantCaptureKeyboard` and `io.WantTextInput` flags from the ImGuiIO structure. -- When `io.WantCaptureMouse` is set, you need to discard/hide the mouse inputs from your underlying application. -- When `io.WantCaptureKeyboard` is set, you need to discard/hide the keyboard inputs from your underlying application. -- When `io.WantTextInput` is set, you can notify your OS/engine to popup an on-screen keyboard, if available (e.g. on a mobile phone, or console OS). - -Important: you should always pass your mouse/keyboard inputs to Dear ImGui, regardless of the value `io.WantCaptureMouse`/`io.WantCaptureKeyboard`. This is because e.g. we need to detect that you clicked in the void to unfocus its own windows, and other reasons. - -```cpp -void MyLowLevelMouseButtonHandler(int button, bool down) -{ - // (1) ALWAYS forward mouse data to ImGui! This is automatic with default backends. With your own backend: - ImGuiIO& io = ImGui::GetIO(); - io.AddMouseButtonEvent(button, down); - - // (2) ONLY forward mouse data to your underlying app/game. - if (!io.WantCaptureMouse) - my_game->HandleMouseData(...); -} -``` - -**Note:** The `io.WantCaptureMouse` is more correct that any manual attempt to "check if the mouse is hovering a window" (don't do that!). It handles mouse dragging correctly (both dragging that started over your application or over a Dear ImGui window) and handle e.g. popup and modal windows blocking inputs. - -**Note:** Text input widget releases focus on the "KeyDown" event of the Return key, so the subsequent "KeyUp" event that your application receive will typically have `io.WantCaptureKeyboard == false`. Depending on your application logic it may or not be inconvenient to receive that KeyUp event. You might want to track which key-downs were targeted for Dear ImGui, e.g. with an array of bool, and filter out the corresponding key-ups.) - -##### [Return to Index](#index) - ---- - -### Q: How can I enable keyboard or gamepad controls? -- The gamepad/keyboard navigation is fairly functional and keeps being improved. The initial focus was to support game controllers, but keyboard is becoming increasingly and decently usable. Gamepad support is particularly useful to use Dear ImGui on a game console (e.g. PS4, Switch, XB1) without a mouse connected! -- Keyboard: set `io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard` to enable. -- Gamepad: set `io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad` to enable (with a supporting backend). -- See [Control Sheets for Gamepads](https://www.dearimgui.com/controls_sheets) (reference PNG/PSD for PS4, XB1, Switch gamepads). -- See `USING GAMEPAD/KEYBOARD NAVIGATION CONTROLS` section of [imgui.cpp](https://github.com/ocornut/imgui/blob/master/imgui.cpp) for more details. - -##### [Return to Index](#index) - ---- - -### Q: How can I use this on a machine without mouse, keyboard or screen? (input share, remote display) -- You can share your computer mouse seamlessly with your console/tablet/phone using solutions such as [Synergy](https://symless.com/synergy) -This is the preferred solution for developer productivity. -In particular, the [micro-synergy-client repository](https://github.com/symless/micro-synergy-client) has simple -and portable source code (uSynergy.c/.h) for a small embeddable client that you can use on any platform to connect -to your host computer, based on the Synergy 1.x protocol. Make sure you download the Synergy 1 server on your computer. -Console SDK also sometimes provide equivalent tooling or wrapper for Synergy-like protocols. -- Game console users: consider emulating a mouse cursor with DualShock4 touch pad or a spare analog stick as a mouse-emulation fallback. -- You may also use a third party solution such as [netImgui](https://github.com/sammyfreg/netImgui), [Remote ImGui](https://github.com/JordiRos/remoteimgui) or [imgui-ws](https://github.com/ggerganov/imgui-ws) which sends the vertices to render over the local network, allowing you to use Dear ImGui even on a screen-less machine. See [Wiki](https://github.com/ocornut/imgui/wiki) index for most details. -- For touch inputs, you can increase the hit box of widgets (via the `style.TouchPadding` setting) to accommodate for the lack of precision of touch inputs, but it is recommended you use a mouse or gamepad to allow optimizing for screen real-estate and precision. - -##### [Return to Index](#index) - ---- - -### Q: How can I create my own backend? -- See [docs/BACKENDS.md](https://github.com/ocornut/imgui/blob/master/docs/BACKENDS.md). -- See Documentation at the top of imgui.cpp. - -##### [Return to Index](#index) - ---- - -### Q: I integrated Dear ImGui in my engine and little squares are showing instead of text... -Your renderer backend is not using the font texture correctly or it hasn't been uploaded to the GPU. -- If this happens using standard backends (before 1.92): A) have you modified the font atlas after `ImGui_ImplXXX_NewFrame()`? B) maybe the texture failed to upload, which **can if your texture atlas is too big**. Also see [docs/FONTS.md](https://github.com/ocornut/imgui/blob/master/docs/FONTS.md). -- If this happens using standard backends (after 1.92): please report. -- If this happens with a custom backend: make sure you have uploaded the font texture to the GPU, that all shaders are rendering states are setup properly (e.g. texture is bound). Compare your code to existing backends and use a graphics debugger such as [RenderDoc](https://renderdoc.org) to debug your rendering states. - -##### [Return to Index](#index) - ---- - -### Q: I integrated Dear ImGui in my engine and some elements are clipping or disappearing when I move windows around... -### Q: I integrated Dear ImGui in my engine and some elements are displaying outside their expected windows boundaries... -You are probably mishandling the clipping rectangles in your render function. -Each draw command needs the triangle rendered using the clipping rectangle provided in the ImDrawCmd structure (`ImDrawCmd->CllipRect`). -Rectangles provided by Dear ImGui are defined as -`(x1=left,y1=top,x2=right,y2=bottom)` -and **NOT** as -`(x1,y1,width,height)`. -Refer to rendering backends in the [backends/](https://github.com/ocornut/imgui/tree/master/backends) folder for references of how to handle the `ClipRect` field. -For example, the [DirectX11 backend](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_dx11.cpp) does this: -```cpp -// Project scissor/clipping rectangles into framebuffer space -ImVec2 clip_off = draw_data->DisplayPos; -ImVec2 clip_min(pcmd->ClipRect.x - clip_off.x, pcmd->ClipRect.y - clip_off.y); -ImVec2 clip_max(pcmd->ClipRect.z - clip_off.x, pcmd->ClipRect.w - clip_off.y); -if (clip_max.x <= clip_min.x || clip_max.y <= clip_min.y) - continue; - -// Apply scissor/clipping rectangle -const D3D11_RECT r = { (LONG)clip_min.x, (LONG)clip_min.y, (LONG)clip_max.x, (LONG)clip_max.y }; -ctx->RSSetScissorRects(1, &r); -``` - -##### [Return to Index](#index) - ---- - -# Q&A: Usage - -### Q: About the ID Stack system... -### Q: Why is my widget not reacting when I click on it? -### Q: Why is the wrong widget reacting when I click on one? -### Q: How can I have widgets with an empty label? -### Q: How can I have multiple widgets with the same label? -### Q: How can I have multiple windows with the same label? - -**USING THE SAME LABEL+ID IS THE MOST COMMON USER MISTAKE!** -
**USING AN EMPTY LABEL IS THE SAME AS USING THE SAME LABEL AS YOUR PARENT WIDGET!** - - - - - -
-
-ImGui::Begin("Incorrect!");
-ImGui::DragFloat2("My value", &objects[0]->pos.x);
-ImGui::DragFloat2("My value", &objects[1]->pos.x);
-ImGui::DragFloat2("My value", &objects[2]->pos.x);
-ImGui::End();
- 
-ImGui::Begin("Correct!");
-ImGui::DragFloat2("My value", &objects[0]->pos.x);
-ImGui::DragFloat2("My value##2", &objects[1]->pos.x);
-ImGui::DragFloat2("My value##3", &objects[2]->pos.x);
-ImGui::End();
- 
-ImGui::Begin("Also Correct!");
-for (int n = 0; n < 3; n++)
-{
-    ImGui::PushID(n);
-    ImGui::DragFloat2("My value", &objects[n]->pos.x);
-    ImGui::PopID();
-}
-ImGui::End();
-
-
- -A primer on labels and the ID Stack... - -Dear ImGui internally needs to uniquely identify UI elements. -Elements that are typically not clickable (such as calls to the Text functions) don't need an ID. -Interactive widgets (such as calls to Button buttons) need a unique ID. - -**Unique IDs are used internally to track active widgets and occasionally associate state to widgets.
-Unique IDs are implicitly built from the hash of multiple elements that identify the "path" to the UI element.** - -Since Dear ImGui 1.85, you can use `Demo>Tools>ID Stack Tool` or call `ImGui::ShowIDStackToolWindow()`. The tool display intermediate values leading to the creation of a unique ID, making things easier to debug and understand. - -![Stack tool](https://user-images.githubusercontent.com/8225057/136235657-a0ea5665-dcd1-423f-9be6-dc3f8ced8f12.png) - -- Unique ID are often derived from a string label and at minimum scoped within their host window: -```cpp -Begin("MyWindow"); -Button("OK"); // Label = "OK", ID = hash of ("MyWindow", "OK") -Button("Cancel"); // Label = "Cancel", ID = hash of ("MyWindow", "Cancel") -End(); -``` -- Other elements such as tree nodes, etc. also pushes to the ID stack: -```cpp -Begin("MyWindow"); -if (TreeNode("MyTreeNode")) -{ - Button("OK"); // Label = "OK", ID = hash of ("MyWindow", "MyTreeNode", "OK") - TreePop(); -} -End(); -``` -- Two items labeled "OK" in different windows or different tree locations won't collide: -```cpp -Begin("MyFirstWindow"); -Button("OK"); // Label = "OK", ID = hash of ("MyFirstWindow", "OK") -End(); -Begin("MyOtherWindow"); -Button("OK"); // Label = "OK", ID = hash of ("MyOtherWindow", "OK") -End(); -``` - -- If you have a same ID twice in the same location, you'll have a conflict: -```cpp -Begin("MyWindow"); -Button("OK"); -Button("OK"); // ERROR: ID collision with the first button! Interacting with either button will trigger the first one. -Button(""); // ERROR: ID collision with Begin("MyWindow")! -End(); -``` -Fear not! This is easy to solve and there are many ways to solve it! - -- Solving ID conflict in a simple/local context: -When passing a label you can optionally specify extra ID information within the string itself. -Use "##" to pass a complement to the ID that won't be visible to the end-user. -This helps solve the simple collision cases when you know e.g. at compilation time which items -are going to be created: -```cpp -Begin("MyWindow"); -Button("Play"); // Label = "Play", ID = hash of ("MyWindow", "Play") -Button("Play##foo1"); // Label = "Play", ID = hash of ("MyWindow", "Play##foo1") // Different from other buttons -Button("Play##foo2"); // Label = "Play", ID = hash of ("MyWindow", "Play##foo2") // Different from other buttons -Button("##foo"); // Label = "", ID = hash of ("MyWindow", "##foo") // Different from window -End(); -``` -- If you want to completely hide the label, but still need an ID: -```cpp -Checkbox("##On", &b); // Label = "", ID = hash of (..., "##On") // No visible label, just a checkbox! -``` -- Occasionally/rarely you might want to change a label while preserving a constant ID. This allows -you to animate labels. For example, you may want to include varying information in a window title bar, -but windows are uniquely identified by their ID. Use "###" to pass a label that isn't part of ID: -```cpp -Button("Hello###ID"); // Label = "Hello", ID = hash of (..., "###ID") -Button("World###ID"); // Label = "World", ID = hash of (..., "###ID") // Same ID, different label - -sprintf(buf, "My game (%f FPS)###MyGame", fps); -Begin(buf); // Variable title, ID = hash of "MyGame" -``` -- Solving ID conflict in a more general manner: -Use `PushID()` / `PopID()` to create scopes and manipulate the ID stack, as to avoid ID conflicts -within the same window. This is the most convenient way of distinguishing ID when iterating and -creating many UI elements programmatically. -You can push a pointer, a string, or an integer value into the ID stack. -Remember that IDs are formed from the concatenation of _everything_ pushed into the ID stack. -At each level of the stack, we store the seed used for items at this level of the ID stack. -```cpp -Begin("Window"); -for (int i = 0; i < 100; i++) -{ - PushID(i); // Push i to the id tack - Button("Click"); // Label = "Click", ID = hash of ("Window", i, "Click") - PopID(); -} -for (int i = 0; i < 100; i++) -{ - MyObject* obj = Objects[i]; - PushID(obj); - Button("Click"); // Label = "Click", ID = hash of ("Window", obj pointer, "Click") - PopID(); -} -for (int i = 0; i < 100; i++) -{ - MyObject* obj = Objects[i]; - PushID(obj->Name); - Button("Click"); // Label = "Click", ID = hash of ("Window", obj->Name, "Click") - PopID(); -} -End(); -``` -- You can stack multiple prefixes into the ID stack: -```cpp -Button("Click"); // Label = "Click", ID = hash of (..., "Click") -PushID("node"); - Button("Click"); // Label = "Click", ID = hash of (..., "node", "Click") - PushID(my_ptr); - Button("Click"); // Label = "Click", ID = hash of (..., "node", my_ptr, "Click") - PopID(); -PopID(); -``` -- Tree nodes implicitly create a scope for you by calling `PushID()`: -```cpp -Button("Click"); // Label = "Click", ID = hash of (..., "Click") -if (TreeNode("node")) // <-- this function call will do a PushID() for you (unless instructed not to, with a special flag) -{ - Button("Click"); // Label = "Click", ID = hash of (..., "node", "Click") - TreePop(); -} -``` - -When working with trees, IDs are used to preserve the open/close state of each tree node. -Depending on your use cases you may want to use strings, indices, or pointers as ID. -- e.g. when following a single pointer that may change over time, using a static string as ID -will preserve your node open/closed state when the targeted object change. -- e.g. when displaying a list of objects, using indices or pointers as ID will preserve the -node open/closed state differently. See what makes more sense in your situation! - -##### [Return to Index](#index) - ---- - -### Q: How can I display an image? -### Q: What are ImTextureID/ImTextureRef? - -**Short explanation:** -- Refer to [Image Loading and Displaying Examples](https://github.com/ocornut/imgui/wiki/Image-Loading-and-Displaying-Examples) on the [Wiki](https://github.com/ocornut/imgui/wiki). -- You may use functions such as `ImGui::Image()`, `ImGui::ImageButton()` or lower-level `ImDrawList::AddImage()` to emit draw calls that will use your own textures. -- Actual textures are identified in a way that is up to the user/engine. Those identifiers are stored and passed as an opaque ImTextureID value. -- By default ImTextureID can store up to 64-bits. You may `#define` it to a custom type/structure if you need. -- Loading image files from the disk and turning them into a texture is not within the scope of Dear ImGui (for a good reason), but the examples linked above may be useful references. - -**Details:** - -1.92 introduced `ImTextureRef` in June 2025. -- Most drawing functions using ImTextureID were changed to use ImTextureRef. -- We intentionally do not provide an implicit ImTextureRef -> ImTextureID cast operator because it is technically lossy to convert ImTextureRef to ImTextureID before rendering. - -**ImTextureID = backend specific, low-level identifier for a texture uploaded in GPU/graphics system.** -- When a Rendered Backend creates a texture, it store its native identifier into a ImTextureID value (e.g. Used by DX11 backend to a `ID3D11ShaderResourceView*`; Used by OpenGL backends to store `GLuint`; Used by SDLGPU backend to store a `SDL_GPUTextureSamplerBinding*`, etc.). -- User may submit their own textures to e.g. ImGui::Image() function by passing the same type. -- During the rendering loop, the Renderer Backend retrieve the ImTextureID, which stored inside a ImTextureRef, which is stored inside ImDrawCmd. -- Compile-time type configuration: - - To use something other than a 64-bit value: add '#define ImTextureID MyTextureType*' in your imconfig.h file. - - This can be whatever to you want it to be! read the FAQ entry about textures for details. - - You may decide to store a higher-level structure containing texture, sampler, shader etc. with various constructors if you like. You will need to implement ==/!= operators. - -**ImTextureRef = higher-level identifier for a texture.** -- The identifier is valid even before the texture has been uploaded to the GPU/graphics system. -- This is what gets passed to functions such as `ImGui::Image()`, `ImDrawList::AddImage()`. -- This is what gets stored in draw commands (`ImDrawCmd`) to identify a texture during rendering. - - When a texture is created by user code (e.g. custom images), we directly stores the low-level `ImTextureID`. - - When a texture is created by the backend, we stores a `ImTextureData*` which becomes an indirection to extract the `ImTextureID` value during rendering, after texture upload has happened. - - There is no constructor to create a `ImTextureID` from a `ImTextureData*` as we don't expect this to be useful to the end-user, and it would be erroneously called by many legacy code. - - If you want to bind the current atlas when using custom rectangle, you can use `io.Fonts->TexRef`. - - Binding generators for languages such as C (which don't have constructors), should provide a helper, e.g. `inline ImTextureRef ImTextureRefFromID(ImTextureID tex_id) { ImTextureRef tex_ref = { ._TexData = NULL, .TexID = tex_id }; return tex_ref; }` - -**Please read documentations or tutorials on your graphics API to understand how to display textures on the screen before moving onward.** - -Long explanation: -- Dear ImGui's job is to create "meshes", defined in a renderer-agnostic format made of draw commands and vertices. At the end of the frame, those meshes (ImDrawList) will be displayed by your rendering function. They are made up of textured polygons and the code to render them is generally fairly short (a few dozen lines). In the examples/ folder, we provide functions for popular graphics APIs (OpenGL, DirectX, etc.). -- Each rendering function decides on a data type to represent "textures". The concept of what is a "texture" is entirely tied to your underlying engine/graphics API. -We carry the information to identify a "texture" in the ImTextureID type, which itself tends to be stored inside a ImTextureRef. -ImTextureID default to ImU64 aka 8 bytes worth of data: just enough to store one pointer or integer of your choice. -Dear ImGui doesn't know or understand what you are storing in ImTextureID, it merely passes values until they reach your rendering function. -- In the [examples/](https://github.com/ocornut/imgui/tree/master/examples) backends, for each graphics API we decided on a type that is likely to be a good representation for specifying an image from the end-user perspective. This is what the _examples_ rendering functions are using: -```cpp -OpenGL: -- ImTextureID should contains 'GLuint' (GL texture identifier). -- See ImGui_ImplOpenGL3_RenderDrawData() function in imgui_impl_opengl3.cpp -``` -```cpp -DirectX9: -- ImTextureID should contain a 'LPDIRECT3DTEXTURE9' (pointer). -- See ImGui_ImplDX9_RenderDrawData() function in imgui_impl_dx9.cpp -``` -```cpp -DirectX11: -- ImTextureID should contain a 'ID3D11ShaderResourceView*' (pointer) -- See ImGui_ImplDX11_RenderDrawData() function in imgui_impl_dx11.cpp -``` -```cpp -DirectX12: -- ImTextureID should contain a 'D3D12_GPU_DESCRIPTOR_HANDLE' (always 64-bits) -- See ImGui_ImplDX12_RenderDrawData() function in imgui_impl_dx12.cpp -``` -For example, in the OpenGL example backend we store raw OpenGL texture identifier (GLuint) inside ImTextureID. -Whereas in the DirectX11 example backend we store a pointer to ID3D11ShaderResourceView inside ImTextureID, which is a higher-level structure tying together both the texture and information about its format and how to read it. - -- If you have a custom engine built over e.g. OpenGL, instead of passing GLuint around you may decide to use a high-level data type to carry information about the texture as well as how to display it (shaders, etc.). The decision of what to use as ImTextureID can always be made better by knowing how your codebase is designed. If your engine has high-level data types for "textures" and "material" then you may want to use them. -If you are starting with OpenGL or DirectX or Vulkan and haven't built much of a rendering engine over them, keeping the default ImTextureID representation suggested by the example backends is probably the best choice. -(Advanced users may also decide to keep a low-level type in ImTextureID, use ImDrawList callback and pass information to their renderer) - -User code may do: -```cpp -// Cast our texture type to ImTextureID -MyTexture* texture = g_CoffeeTableTexture; -ImGui::Image((ImTextureID)(intptr_t)texture, ImVec2(texture->Width, texture->Height)); -``` -The renderer function called after ImGui::Render() will receive that same value that the user code passed: -```cpp -// Cast ImTextureID stored in the draw command as our texture type -MyTexture* texture = (MyTexture*)(intptr_t)pcmd->GetTexID(); -MyEngineBindTexture2D(texture); -``` -Once you understand this design, you will understand that loading image files and turning them into displayable textures is not within the scope of Dear ImGui. -This is by design and is a good thing because it means your code has full control over your data types and how you display them. -If you want to display an image file (e.g. PNG file) on the screen, please refer to documentation and tutorials for the graphics API you are using. - -Refer to [Image Loading and Displaying Examples](https://github.com/ocornut/imgui/wiki/Image-Loading-and-Displaying-Examples) on the [Wiki](https://github.com/ocornut/imgui/wiki) to find simplified examples for loading textures with OpenGL, DirectX9 and DirectX11. - -C/C++ tip: a u64 is 8 bytes. You may safely store any pointer or integer into it by casting your value to ImTextureID, and vice-versa. -Because both end-points (user code and rendering function) are under your control, you know exactly what is stored inside the ImTextureID. -Here are some examples: -```cpp -GLuint my_tex = XXX; -ImTextureID my_imtexid; -my_imtexid = (ImTextureID)(intptr_t)my_tex; // cast a GLuint into a ImTextureID (we don't take its address! we just copy the address) -my_tex = (GLuint)(intptr_t)my_imtexid; // cast a ImTextureID into a GLuint - -ID3D11ShaderResourceView* my_dx11_srv = XXX; -ImTextureID my_imtexid; -my_imtexid = (ImTextureID)(intptr_t)my_dx11_srv; // cast a ID3D11ShaderResourceView* into an opaque ImTextureID -my_dx11_srv = (ID3D11ShaderResourceView*)(intptr_t)_my_imtexid; // cast a ImTextureID into a ID3D11ShaderResourceView* -``` -Finally, you may call `ImGui::ShowMetricsWindow()` to explore/visualize/understand how the ImDrawList are generated. - -##### [Return to Index](#index) - ---- - -### Q: How can I use maths operators with ImVec2? - -We do not export maths operators by default in imgui.h in order to not conflict with the use of your own maths types and maths operators. As a convenience, you may use `#define IMGUI_DEFINE_MATH_OPERATORS` + `#include "imgui.h"` to access our basic maths operators. - -##### [Return to Index](#index) - ---- - -### Q: How can I use my own maths types instead of ImVec2/ImVec4? - -You can setup your [imconfig.h](https://github.com/ocornut/imgui/blob/master/imconfig.h) file with `IM_VEC2_CLASS_EXTRA`/`IM_VEC4_CLASS_EXTRA` macros to add implicit type conversions to our own maths types. -This way you will be able to use your own types everywhere, e.g. passing `MyVector2` or `glm::vec2` to ImGui functions instead of `ImVec2`. - -##### [Return to Index](#index) - ---- - -### Q: How can I interact with standard C++ types (such as std::string and std::vector)? -- Being highly portable (backends/bindings for several languages, frameworks, programming styles, obscure or older platforms/compilers), and aiming for compatibility & performance suitable for every modern real-time game engine, Dear ImGui does not use any of std C++ types. We use raw types (e.g. char* instead of std::string) because they adapt to more use cases. -- To use ImGui::InputText() with a std::string or any resizable string class, see [misc/cpp/imgui_stdlib.h](https://github.com/ocornut/imgui/blob/master/misc/cpp/imgui_stdlib.h). -- To use combo boxes and list boxes with `std::vector` or any other data structure: the `BeginCombo()/EndCombo()` API -lets you iterate and submit items yourself, so does the `ListBoxHeader()/ListBoxFooter()` API. -Prefer using them over the old and awkward `Combo()/ListBox()` api. -- Generally for most high-level types you should be able to access the underlying data type. -You may write your own one-liner wrappers to facilitate user code (tip: add new functions in ImGui:: namespace from your code). -- Dear ImGui applications often need to make intensive use of strings. It is expected that many of the strings you will pass -to the API are raw literals (free in C/C++) or allocated in a manner that won't incur a large cost on your application. -Please bear in mind that using `std::string` on applications with a large amount of UI may incur unsatisfactory performances. -Modern implementations of `std::string` often include small-string optimization (which is often a local buffer) but those -are not configurable and not the same across implementations. -- If you are finding your UI traversal cost to be too large, make sure your string usage is not leading to an excessive amount -of heap allocations. Consider using literals, statically sized buffers, and your own helper functions. A common pattern -is that you will need to build lots of strings on the fly, and their maximum length can be easily scoped ahead. -One possible implementation of a helper to facilitate printf-style building of strings: https://github.com/ocornut/Str -This is a small helper where you can instance strings with configurable local buffers length. Many game engines will -provide similar or better string helpers. - -##### [Return to Index](#index) - ---- - -### Q: How can I display custom shapes? (using low-level ImDrawList API) - -- You can use the low-level `ImDrawList` api to render shapes within a window. -```cpp -ImGui::Begin("My shapes"); - -ImDrawList* draw_list = ImGui::GetWindowDrawList(); - -// Get the current ImGui cursor position -ImVec2 p = ImGui::GetCursorScreenPos(); - -// Draw a red circle -draw_list->AddCircleFilled(ImVec2(p.x + 50, p.y + 50), 30.0f, IM_COL32(255, 0, 0, 255)); - -// Draw a 3 pixel thick yellow line -draw_list->AddLine(ImVec2(p.x, p.y), ImVec2(p.x + 100.0f, p.y + 100.0f), IM_COL32(255, 255, 0, 255), 3.0f); - -// Advance the ImGui cursor to claim space in the window (otherwise the window will appear small and needs to be resized) -ImGui::Dummy(ImVec2(200, 200)); - -ImGui::End(); -``` -![ImDrawList usage](https://raw.githubusercontent.com/wiki/ocornut/imgui/tutorials/CustomRendering01.png) - -- Refer to "Demo > Examples > Custom Rendering" in the demo window and read the code of `ShowExampleAppCustomRendering()` in `imgui_demo.cpp` from more examples. -- To generate colors: you can use the macro `IM_COL32(255,255,255,255)` to generate them at compile time, or use `ImGui::GetColorU32(IM_COL32(255,255,255,255))` or `ImGui::GetColorU32(ImVec4(1.0f,1.0f,1.0f,1.0f))` to generate a color that is multiplied by the current value of `style.Alpha`. -- Math operators: if you have setup `IM_VEC2_CLASS_EXTRA` in `imconfig.h` to bind your own math types, you can use your own math types and their natural operators instead of ImVec2. ImVec2 by default doesn't export any math operators in the public API. You may use `#define IMGUI_DEFINE_MATH_OPERATORS` `#include "imgui.h"` to use our math operators, but instead prefer using your own math library and set it up in `imconfig.h`. -- You can use `ImGui::GetBackgroundDrawList()` or `ImGui::GetForegroundDrawList()` to access draw lists which will be displayed behind and over every other Dear ImGui window (one bg/fg drawlist per viewport). This is very convenient if you need to quickly display something on the screen that is not associated with a Dear ImGui window. -- You can also create your own empty window and draw inside it. Call Begin() with the NoBackground | NoDecoration | NoSavedSettings | NoInputs flags (The `ImGuiWindowFlags_NoDecoration` flag itself is a shortcut for NoTitleBar | NoResize | NoScrollbar | NoCollapse). Then you can retrieve the ImDrawList* via `GetWindowDrawList()` and draw to it in any way you like. -- You can create your own ImDrawList instance. You'll need to initialize them with `ImGui::GetDrawListSharedData()`, or create your own instancing `ImDrawListSharedData`, and then call your renderer function with your own ImDrawList or ImDrawData data. -- Looking for fun? The [ImDrawList coding party 2020](https://github.com/ocornut/imgui/issues/3606) thread is full of "don't do this at home" extreme uses of the ImDrawList API. - -##### [Return to Index](#index) - ---- - -# Q&A: Fonts, Text - -### Q: How should I handle DPI in my application? - -Since 1.92 (June 2025) fonts may be dynamically used at any size. - -**Scaling fonts** - -To change font size: -```cpp -ImGui::PushFont(NULL, 42.0f); -``` -To change font and font size: -```cpp -ImGui::PushFont(new_font, 42.0f); -``` -To scale all fonts: -```cpp -style.FontScaleDpi = 2.0f; -``` -In `docking` branch or with multi-viewports: -```cpp -io.ConfigDpiScaleFonts = true; // [Experimental] Automatically overwrite style.FontScaleDpi in Begin() when Monitor DPI changes. This will scale fonts but _NOT_ scale sizes/padding for now. -io.ConfigDpiScaleViewports = true; // [Experimental] Scale Dear ImGui and Platform Windows when Monitor DPI changes. -``` - -**Scaling style** (paddings, spacings, thicknesses) - -This is still massively work in progress, expect turbulence. -Style values are currently not easily scalable dynamically. -For single viewport application you can call once: -```cpp -style.ScaleAllSizes(factor); // call once! -``` -If you need to change the scaling factor, it is currently most practical to reset the style and call this again with a new value. - -Your UI code should avoid using hardcoded constants for size and positioning. Prefer to express values as multiple of reference values such as `ImGui::GetFontSize()` or `ImGui::GetFrameHeight()`. So e.g. instead of seeing a hardcoded height of 500 for a given item/window, you may want to use `30*ImGui::GetFontSize()` instead. - -Down the line Dear ImGui will provide a variety of standardized reference values to facilitate using this. This is expected to happen during subsequent 1.92.x releases. - -Applications in the `examples/` folder are partly DPI aware but they are unable to load a custom font from the file-system, so they look ugly (may change that in the future). - -The reason DPI is not auto-magically solved in stock examples is that we don't yet have a satisfying solution for the "multi-dpi" problem (using the `docking` branch: when multiple viewport windows are over multiple monitors using different DPI scales) specifically for the `ImGuiStyle` structure. Fonts are however now perfectly scalable. - -**On Windows, you need to inform Windows that your application is DPI aware!** -If this is not done, Windows will scale the application window and the UI text will be blurry. Potential solutions to indicate DPI awareness on Windows are: -- For SDL2: the flag `SDL_WINDOW_ALLOW_HIGHDPI` needs to be passed to `SDL_CreateWindow()` + call `::SetProcessDPIAware()`. -- For SDL3: the flag `SDL_WINDOW_HIGH_PIXEL_DENSITY` needs to be passed to `SDL_CreateWindow()`. -- For GLFW: this is done automatically. -- For other Windows projects with other backends, or wrapper projects: - - We provide a `ImGui_ImplWin32_EnableDpiAwareness()` helper method in the Win32 backend. - - Use an [application manifest file](https://learn.microsoft.com/en-us/windows/win32/hidpi/setting-the-default-dpi-awareness-for-a-process) to set the `` property. - -### Q: How can I load a different font than the default? -Use the font atlas to load the TTF/OTF file you want: - -```cpp -ImGuiIO& io = ImGui::GetIO(); -io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels); -io.Fonts->GetTexDataAsRGBA32() or GetTexDataAsAlpha8() -``` - -Default is ProggyClean.ttf, monospace, rendered at size 13, embedded in dear imgui's source code. - -(Tip: monospace fonts are convenient because they allow to facilitate horizontal alignment directly at the string level.) - -(Read the [docs/FONTS.md](https://github.com/ocornut/imgui/blob/master/docs/FONTS.md) file for more details about font loading.) - -New programmers: remember that in C/C++ and most programming languages if you want to use a -backslash \ within a string literal, you need to write it double backslash "\\": - -```cpp -io.Fonts->AddFontFromFileTTF("MyFolder\MyFont.ttf", size); // WRONG (you are escaping the M here!) -io.Fonts->AddFontFromFileTTF("MyFolder\\MyFont.ttf", size); // CORRECT (Windows only) -io.Fonts->AddFontFromFileTTF("MyFolder/MyFont.ttf", size); // ALSO CORRECT -``` - -##### [Return to Index](#index) - ---- - -### Q: How can I easily use icons in my application? -The most convenient and practical way is to merge an icon font such as FontAwesome inside your -main font. Then you can refer to icons within your strings. -Read the [docs/FONTS.md](https://github.com/ocornut/imgui/blob/master/docs/FONTS.md) file for more details about icons font loading. - -##### [Return to Index](#index) - ---- - -### Q: How can I load multiple fonts? - -Use the font atlas to pack them into a single texture. Read [docs/FONTS.md](https://github.com/ocornut/imgui/blob/master/docs/FONTS.md) for more details. - -##### [Return to Index](#index) - ---- - -### Q: How can I display and input non-Latin characters such as Chinese, Japanese, Korean, Cyrillic? - -Since 1.92 (June 2025) and with an updated backend, it is not necessary to specify glyph ranges at all. - -Before 1.92, when loading a font, pass custom Unicode ranges to specify the glyphs to load. -```cpp -// [BEFORE 1.92] -// Add default Japanese ranges -io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, nullptr, io.Fonts->GetGlyphRangesJapanese()); - -// Or create your own custom ranges (e.g. for a game you can feed your entire game script and only build the characters the game need) -ImVector ranges; -ImFontGlyphRangesBuilder builder; -builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters) -builder.AddChar(0x7262); // Add a specific character -builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges -builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted) -io.Fonts->AddFontFromFileTTF("myfontfile.ttf", 16.0f, nullptr, ranges.Data); -``` - -All your strings need to use UTF-8 encoding. -You need to tell your compiler to use UTF-8, or in C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. -Specifying literal in your source code using a local code page (such as CP-923 for Japanese or CP-1251 for Cyrillic) will NOT work! -See [About UTF-8 Encoding](https://github.com/ocornut/imgui/blob/master/docs/FONTS.md#about-utf-8-encoding) section -of [FONTS.md](https://github.com/ocornut/imgui/blob/master/docs/FONTS.md) for details about UTF-8 Encoding. - -Text input: it is up to your application to pass the right character code by calling `io.AddInputCharacter()`. -The applications in examples/ are doing that. -Windows: you can use the WM_CHAR or WM_UNICHAR or WM_IME_CHAR message (depending if your app is built using Unicode or MultiByte mode). -You may also use `MultiByteToWideChar()` or `ToUnicode()` to retrieve Unicode codepoints from MultiByte characters or keyboard state. -Windows: if your language is relying on an Input Method Editor (IME), you can write your HWND to `ImGui::GetMainViewport()->PlatformHandleRaw` -for the default implementation of `GetPlatformIO().Platform_SetImeDataFn()` to set your Microsoft IME position correctly. - -##### [Return to Index](#index) - ---- - -# Q&A: Concerns - -### Q: Who uses Dear ImGui? - -You may take a look at: - -- [Quotes](https://github.com/ocornut/imgui/wiki/Quotes) -- [Software using Dear ImGui](https://github.com/ocornut/imgui/wiki/Software-using-dear-imgui) -- [Funding & Sponsors](https://github.com/ocornut/imgui/wiki/Funding) -- [Gallery](https://github.com/ocornut/imgui/issues?q=label%3Agallery) - -##### [Return to Index](#index) - ---- - -### Q: Can you create elaborate/serious tools with Dear ImGui? - -Yes. People have written game editors, data browsers, debuggers, profilers, and all sorts of non-trivial tools with the library. In my experience, the simplicity of the API is very empowering. Your UI runs close to your live data. Make the tools always-on and everybody in the team will be inclined to create new tools (as opposed to more "offline" UI toolkits where only a fraction of your team effectively creates tools). The list of sponsors below is also an indicator that serious game teams have been using the library. - -Dear ImGui is very programmer-centric and the immediate-mode GUI paradigm might require you to readjust some habits before you can realize its full potential. Dear ImGui is about making things that are simple, efficient, and powerful. - -Dear ImGui is built to be efficient and scalable toward the needs for AAA-quality applications running all day. The IMGUI paradigm offers different opportunities for optimization than the more typical RMGUI paradigm. - -##### [Return to Index](#index) - ---- - -### Q: Can you reskin the look of Dear ImGui? - -Somewhat. You can alter the look of the interface to some degree: changing colors, sizes, padding, rounding, and fonts. However, as Dear ImGui is designed and optimized to create debug tools, the amount of skinning you can apply is limited. There is only so much you can stray away from the default look and feel of the interface. Dear ImGui is NOT designed to create a user interface for games, although with ingenious use of the low-level API you can do it. - -A reasonably skinned application may look like (screenshot from [#2529](https://github.com/ocornut/imgui/issues/2529#issuecomment-524281119)): -![minipars](https://user-images.githubusercontent.com/314805/63589441-d9794f00-c5b1-11e9-8d96-cfc1b93702f7.png) - -##### [Return to Index](#index) - ---- - -### Q: Why using C++ (as opposed to C)? - -Dear ImGui takes advantage of a few C++ language features for convenience but nothing anywhere Boost insanity/quagmire. Dear ImGui doesn't use any C++ header file. Dear ImGui uses a very small subset of C++11 features. In particular, function overloading and default parameters are used to make the API easier to use and code terser. Doing so I believe the API is sitting on a sweet spot and giving up on those features would make the API more cumbersome. Other features such as namespace, constructors, and templates (in the case of the ImVector<> class) are also relied on as a convenience. - -There is an auto-generated [c-api for Dear ImGui (cimgui)](https://github.com/cimgui/cimgui) by Sonoro1234 and Stephan Dilly. It is designed for creating bindings to other languages. If possible, I would suggest using your target language functionalities to try replicating the function overloading and default parameters used in C++ else the API may be harder to use. Also see [Bindings](https://github.com/ocornut/imgui/wiki/Bindings) for various third-party bindings. - -##### [Return to Index](#index) - ---- - -# Q&A: Community - -### Q: How can I help? -- Businesses: please reach out to `omar AT dearimgui.com` if you work in a place using Dear ImGui! We can discuss ways for your company to fund development via invoiced technical support, maintenance, or sponsoring contacts. This is among the most useful thing you can do for Dear ImGui. With increased funding, we can hire more people to work on this project. Please see [Funding](https://github.com/ocornut/imgui/wiki/Funding) page. -- Individuals: you can support continued maintenance and development via PayPal donations. See [README](https://github.com/ocornut/imgui/blob/master/docs/README.md). -- If you are experienced with Dear ImGui and C++, look at [GitHub Issues](https://github.com/ocornut/imgui/issues), [GitHub Discussions](https://github.com/ocornut/imgui/discussions), the [Wiki](https://github.com/ocornut/imgui/wiki), read [docs/TODO.txt](https://github.com/ocornut/imgui/blob/master/docs/TODO.txt), and see how you want to help and can help! -- Disclose your usage of Dear ImGui via a dev blog post, a tweet, a screenshot, a mention somewhere, etc. -You may post screenshots or links in the [gallery threads](https://github.com/ocornut/imgui/issues?q=label%3Agallery). Visuals are ideal as they inspire other programmers. Disclosing your use of Dear ImGui helps the library grow credibility, and helps other teams and programmers with taking decisions. -- If you have issues or if you need to hack into the library, even if you don't expect any support it is useful that you share your issues or sometimes incomplete PR. - -##### [Return to Index](#index) - diff --git a/libs/imgui-1.92.1/docs/FONTS.md b/libs/imgui-1.92.1/docs/FONTS.md deleted file mode 100644 index ce08f17..0000000 --- a/libs/imgui-1.92.1/docs/FONTS.md +++ /dev/null @@ -1,605 +0,0 @@ -_(You may browse this at https://github.com/ocornut/imgui/blob/master/docs/FONTS.md or view this file with any Markdown viewer)_ - -## Dear ImGui: Using Fonts - -The code in imgui.cpp embeds a copy of [ProggyClean.ttf](http://proggyfonts.net) (by Tristan Grimmer), -a 13 pixels high, pixel-perfect font used by default. We embed it in the source code so you can use Dear ImGui without any file system access. ProggyClean does not scale smoothly, therefore it is recommended that you load your own file when using Dear ImGui in an application aiming to look nice and wanting to support multiple resolutions. - -You may also load external .TTF/.OTF files. -In the [misc/fonts/](https://github.com/ocornut/imgui/tree/master/misc/fonts) folder you can find a few suggested fonts, provided as a convenience. - -**Also read the FAQ:** https://www.dearimgui.com/faq (there is a Fonts section!) - -## Index -- [Troubleshooting](#troubleshooting) -- [New! Dynamic Fonts system in 1.92 (June 2025)](#new-dynamic-fonts-system-in-192-june-2025) -- [How should I handle DPI in my application?](#how-should-i-handle-dpi-in-my-application) -- [Fonts Loading Instructions](#fonts-loading-instructions) -- [Loading Font Data from Memory](#loading-font-data-from-memory) -- [Loading Font Data Embedded In Source Code](#loading-font-data-embedded-in-source-code) -- [Using Icon Fonts](#using-icon-fonts) - - [Excluding Overlapping Ranges](#excluding-overlapping-ranges) -- [Using FreeType Rasterizer (imgui_freetype)](#using-freetype-rasterizer-imgui_freetype) -- [Using Colorful Glyphs/Emojis](#using-colorful-glyphsemojis) -- [Using Custom Glyph Ranges](#using-custom-glyph-ranges) -- [Using Custom Colorful Icons](#using-custom-colorful-icons) -- [About Filenames](#about-filenames) -- [About UTF-8 Encoding](#about-utf-8-encoding) -- [Debug Tools](#debug-tools) -- [Credits/Licenses For Fonts Included In Repository](#creditslicenses-for-fonts-included-in-repository) -- [Font Links](#font-links) - ---------------------------------------- - -## Troubleshooting - -**A vast majority of font and text related issues encountered comes from 4 things:** - -### (1) Invalid filename due to use of `\` or unexpected working directory. - -See [About Filenames](#about-filenames). AddFontXXX() functions should assert if the filename is incorrect. - -### (2) Invalid UTF-8 encoding of your non-ASCII strings. - -See [About UTF-8 Encoding](#about-utf-8-encoding). Use the encoding viewer to confirm encoding of string literal in your source code is correct. - -### (3) Missing glyph ranges. - -🆕 **Since 1.92, with an up to date backend: specifying glyph ranges is unnecessary.** - -⏪ Before 1.92: you need to load a font with explicit glyph ranges if you want to use non-ASCII characters. See [Fonts Loading Instructions](#fonts-loading-instructions). Use [Debug Tools](#debug-tools) confirm loaded fonts and loaded glyph ranges. - -This was a previous constraint of Dear ImGui (lifted in 1.92): when loading a font you need to specify which characters glyphs to load. -All loaded fonts glyphs are rendered into a single texture atlas ahead of time. Calling either of `io.Fonts->GetTexDataAsAlpha8()`, `io.Fonts->GetTexDataAsRGBA32()` or `io.Fonts->Build()` will build the atlas. This is generally called by the Renderer backend, e.g. `ImGui_ImplDX11_NewFrame()` calls it. **If you use custom glyphs ranges, make sure the array is persistent** and available during the calls to `GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build()`. - -### (4) Font atlas texture fails to upload to GPU. - -🆕 **Since 1.92, with an up to date backend: atlas is built incrementally and dynamically resized, this is less likely to happen** - -:rewind: This is often of byproduct of point 3. If you have large number of glyphs or multiple fonts, the texture may become too big for your graphics API. **The typical result of failing to upload a texture is if every glyph or everything appears as empty white rectangles.** Mind the fact that some graphics drivers have texture size limitation. If you are building a PC application, mind the fact that your users may use hardware with lower limitations than yours. - -![empty squares](https://github.com/user-attachments/assets/68b50fb5-8b9d-4c38-baec-6ac384f06d26) - -Some solutions: -- You may reduce oversampling, e.g. `font_config.OversampleH = 1`, this will half your texture size for a quality loss. - Note that while OversampleH = 2 looks visibly very close to 3 in most situations, with OversampleH = 1 the quality drop will be noticeable. Read about oversampling [here](https://github.com/nothings/stb/blob/master/tests/oversample). -- Reduce glyphs ranges by calculating them from source localization data. - You can use the `ImFontGlyphRangesBuilder` for this purpose and rebuilding your atlas between frames when new characters are needed. This will be the biggest win! -- Set `io.Fonts.Flags |= ImFontAtlasFlags_NoPowerOfTwoHeight;` to disable rounding the texture height to the next power of two. - -##### [Return to Index](#index) - ---------------------------------------- - -## New! Dynamic Fonts system in 1.92 (June 2025) - -v1.92 introduces a newer, dynamic font system. It requires backend to support the `ImGuiBackendFlags_HasTextures` feature: -- Users of icons, Asian and non-English languages do not need to pre-build all glyphs ahead of time. Saving on loading time, memory, and also reducing issues with missing glyphs. Specifying glyph ranges is not needed anymore. -- `PushFont(NULL, new_size)` may be used anytime to change font size. -- Packing custom rectangles is more convenient as pixels may be written to immediately. -- Any update to fonts previously required backend specific calls to re-upload the texture, and said calls were not portable across backends. It is now possible to scale fonts etc. in a way that doesn't require you to make backend-specific calls. -- It is possible to plug a custom loader/backend to any font source. - -See [#8465](https://github.com/ocornut/imgui/issues/8465) for more details. - - -##### [Return to Index](#index) - ---------------------------------------- - -## How should I handle DPI in my application? - -See [FAQ entry](https://github.com/ocornut/imgui/blob/master/docs/FAQ.md#q-how-should-i-handle-dpi-in-my-application). - -##### [Return to Index](#index) - ---------------------------------------- - -## Fonts Loading Instructions - -**Load default font:** -```cpp -ImGuiIO& io = ImGui::GetIO(); -io.Fonts->AddFontDefault(); -``` - -**Load .TTF/.OTF file with:** - -🆕 **Since 1.92, with an up to date backend: passing a size is not necessary** -```cpp -ImGuiIO& io = ImGui::GetIO(); -io.Fonts->AddFontFromFileTTF("font.ttf"); -``` -:rewind: **Before 1.92, or without an up to date backend:** -```cpp -ImGuiIO& io = ImGui::GetIO(); -io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels); -``` -If you get an assert stating "Could not load font file!", your font filename is likely incorrect. Read [About filenames](#about-filenames) carefully. - -**Load multiple fonts:** -```cpp -// Init -ImGuiIO& io = ImGui::GetIO(); -ImFont* font1 = io.Fonts->AddFontFromFileTTF("font.ttf",); -ImFont* font2 = io.Fonts->AddFontFromFileTTF("anotherfont.otf"); -``` - -In your application loop, select which font to use: -```cpp -ImGui::Text("Hello"); // use the default font (which is the first loaded font) -ImGui::PushFont(font2, 0.0f); // change font, keep current size -ImGui::Text("Hello with another font"); -ImGui::PopFont(); -``` - -**For advanced options create a ImFontConfig structure and pass it to the AddFont() function (it will be copied internally):** -```cpp -ImFontConfig config; -config.OversampleH = 1.0f; -ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config); -``` - -**Combine multiple fonts into one:** - -🆕 **Since 1.92, with an up to date backend: specifying glyph ranges is unnecessary.** -```cpp -// Load a first font -ImFont* font = io.Fonts->AddFontDefault(); -ImFontConfig config; -config.MergeMode = true; -io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 0.0f, &config); // Merge into first font to add e.g. Asian characters -io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 0.0f, &config); // Merge into first font to add Icons -io.Fonts->Build(); -``` -:rewind: **Before 1.92, or without an up to date backend:** -```cpp -// Load a first font -ImFont* font = io.Fonts->AddFontDefault(); - -// Add character ranges and merge into the previous font -// The ranges array is not copied by the AddFont* functions and is used lazily -// so ensure it is available at the time of building or calling GetTexDataAsRGBA32(). -static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // Will not be copied by AddFont* so keep in scope. -ImFontConfig config; -config.MergeMode = true; -io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese()); // Merge into first font -io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges); // Merge into first font -io.Fonts->Build(); -``` - -**Add a fourth parameter to bake specific font ranges only:** - -🆕 **Since 1.92, with an up to date backend: specifying glyph ranges is unnecessary. All the GetGlyphRangesXXX() functions are marked obsolete.** -```cpp -// Basic Latin, Extended Latin -io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, nullptr, io.Fonts->GetGlyphRangesDefault()); - -// Default + Selection of 2500 Ideographs used by Simplified Chinese -io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, nullptr, io.Fonts->GetGlyphRangesChineseSimplifiedCommon()); - -// Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs -io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, nullptr, io.Fonts->GetGlyphRangesJapanese()); -``` -See [Using Custom Glyph Ranges](#using-custom-glyph-ranges) section to create your own ranges. - -**Example loading and using a Japanese font:** - -🆕 **Since 1.92, with an up to date backend:** -```cpp -ImGuiIO& io = ImGui::GetIO(); -io.Fonts->AddFontFromFileTTF("NotoSansCJKjp-Medium.otf"); -``` - -:rewind: **Before 1.92, or without an up to date backend:** -```cpp -ImGuiIO& io = ImGui::GetIO(); -io.Fonts->AddFontFromFileTTF("NotoSansCJKjp-Medium.otf", 20.0f, nullptr, io.Fonts->GetGlyphRangesJapanese()); -``` - -```cpp -ImGui::Text(u8"こんにちは!テスト %d", 123); -if (ImGui::Button(u8"ロード")) -{ - // do stuff -} -ImGui::InputText("string", buf, IM_ARRAYSIZE(buf)); -ImGui::SliderFloat("float", &f, 0.0f, 1.0f); -``` - -![sample code output](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/v160/code_sample_02_jp.png) -
_(settings: Dark style (left), Light style (right) / Font: NotoSansCJKjp-Medium, 20px / Rounding: 5)_ - -##### [Return to Index](#index) - ---------------------------------------- - -## Loading Font Data from Memory - -```cpp -ImFont* font = io.Fonts->AddFontFromMemoryTTF(data, data_size, size_pixels, ...); -``` - -IMPORTANT: `AddFontFromMemoryTTF()` by default transfer ownership of the data buffer to the font atlas, which will attempt to free it on destruction. -This was to avoid an unnecessary copy, and is perhaps not a good API (a future version will redesign it). -If you want to keep ownership of the data and free it yourself, you need to clear the `FontDataOwnedByAtlas` field: - -```cpp -ImFontConfig font_cfg; -font_cfg.FontDataOwnedByAtlas = false; -ImFont* font = io.Fonts->AddFontFromMemoryTTF(data, data_size, size_pixels, &font_cfg); -``` - -##### [Return to Index](#index) - ---------------------------------------- - -## Loading Font Data Embedded In Source Code - -- Compile and use [binary_to_compressed_c.cpp](https://github.com/ocornut/imgui/blob/master/misc/fonts/binary_to_compressed_c.cpp) to create a compressed C style array that you can embed in source code. -- See the documentation in [binary_to_compressed_c.cpp](https://github.com/ocornut/imgui/blob/master/misc/fonts/binary_to_compressed_c.cpp) for instructions on how to use the tool. -- You may find a precompiled version binary_to_compressed_c.exe for Windows inside the demo binaries package (see [README](https://github.com/ocornut/imgui/blob/master/docs/README.md)). -- The tool can optionally output Base85 encoding to reduce the size of _source code_ but the read-only arrays in the actual binary will be about 20% bigger. - -Then load the font with: -```cpp -ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...); -``` -or -```cpp -ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...); -``` - -##### [Return to Index](#index) - ---------------------------------------- - -## Using Icon Fonts - -Using an icon font (such as [FontAwesome](http://fontawesome.io) or [OpenFontIcons](https://github.com/traverseda/OpenFontIcons)) is an easy and practical way to use icons in your Dear ImGui application. -A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without having to change fonts back and forth. - -To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut: https://github.com/juliettef/IconFontCppHeaders. - -So you can use `ICON_FA_SEARCH` as a string that will render as a "Search" icon. - -🆕 **Since 1.92, with an up to date backend: specifying glyph ranges is unnecessary. You can omit this parameter.** -Example Setup: -```cpp -// Merge icons into default tool font -#include "IconsFontAwesome.h" -ImGuiIO& io = ImGui::GetIO(); -io.Fonts->AddFontDefault(); -ImFontConfig config; -config.MergeMode = true; -config.GlyphMinAdvanceX = 13.0f; // Use if you want to make the icon monospaced -io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config); -``` -:rewind: **Before 1.92:** -```cpp -// Merge icons into default tool font -#include "IconsFontAwesome.h" -ImGuiIO& io = ImGui::GetIO(); -io.Fonts->AddFontDefault(); - -ImFontConfig config; -config.MergeMode = true; -config.GlyphMinAdvanceX = 13.0f; // Use if you want to make the icon monospaced -static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 }; -io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges); -``` -Example Usage: -```cpp -// Usage, e.g. -ImGui::Text("%s among %d items", ICON_FA_SEARCH, count); -ImGui::Button(ICON_FA_SEARCH " Search"); -// C string _literals_ can be concatenated at compilation time, e.g. "hello" " world" -// ICON_FA_SEARCH is defined as a string literal so this is the same as "A" "B" becoming "AB" -``` -See Links below for other icons fonts and related tools. - -**Monospace Icons?** - -To make your icon look more monospace and facilitate alignment, you may want to set the `ImFontConfig::GlyphMinAdvanceX` value when loading an icon font. -If you `GlyphMinAdvanceX` you need to pass a `font_size` to `AddFontXXX()` calls, as the MinAdvanceX value will be specified for the given size and scaled otherwise. - -**Screenshot** - -Here's an application using icons ("Avoyd", https://www.avoyd.com): -![avoyd](https://user-images.githubusercontent.com/8225057/81696852-c15d9e80-9464-11ea-9cab-2a4d4fc84396.jpg) - -##### [Return to Index](#index) - ---------------------------------------- - -### Excluding Overlapping Ranges - -🆕 **Since 1.92, with an up to date backend: glyphs ranges are ignored**: when loading a glyph, input fonts in the merge list are queried in order. The first font which has the glyph loads it. -
‼️ **If you are merging several fonts, you may have undesirable overlapping ranges.** You can use `ImFontConfig::GlyphExcludeRanges[] `to specify ranges to ignore in a given Input. - -```cpp -// Add Font Source 1 but ignore ICON_MIN_FA..ICON_MAX_FA range -static ImWchar exclude_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 }; -ImFontConfig cfg1; -cfg1.GlyphExcludeRanges = exclude_ranges; -io.Fonts->AddFontFromFileTTF("segoeui.ttf", 0.0f, &cfg1); - -// Add Font Source 2, which expects to use the range above -ImFontConfig cfg2; -cfg2.MergeMode = true; -io.Fonts->AddFontFromFileTTF("FontAwesome4.ttf", 0.0f, &cfg2); -``` -Another (silly) example: -```cpp -// Remove 'A'-'Z' from first font -static ImWchar exclude_ranges[] = { 'A', 'Z', 0 }; -ImFontConfig cfg1; -cfg1.GlyphExcludeRanges = exclude_ranges; -io.Fonts->AddFontFromFileTTF("segoeui.ttf", 0.0f, &cfg1); - -// Load another font to fill the gaps -ImFontConfig cfg2; -cfg2.MergeMode = true; -io.Fonts->AddFontFromFileTTF("Roboto-Medium.ttf", 0.0f, &cfg2); -``` -![image](https://github.com/user-attachments/assets/f3d751d3-1aee-4698-bd9b-f511902f56bb) - -You can use `Metrics/Debugger->Fonts->Font->Input Glyphs Overlap Detection Tool` to see list of glyphs available in multiple font sources. This can facilitate understanding which font input is providing which glyph. - -##### [Return to Index](#index) - ---------------------------------------- - -## Using FreeType Rasterizer (imgui_freetype) - -- Dear ImGui uses [stb_truetype.h](https://github.com/nothings/stb/) to rasterize fonts (with optional oversampling). This technique and its implementation are not ideal for fonts rendered at small sizes, which may appear a little blurry or hard to read. -- You can however use `imgui_freetype.cpp` from the [misc/freetype/](https://github.com/ocornut/imgui/tree/master/misc/freetype) folder. Compile with this file and add `#define IMGUI_ENABLE_FREETYPE` to your imconfig.h file or build system to automatically activate it. -- FreeType supports auto-hinting which tends to improve the readability of small fonts. It makes a big difference especially at smaller resolutions. -- Read documentation in the [misc/freetype/](https://github.com/ocornut/imgui/tree/master/misc/freetype) folder. -- Correct sRGB space blending will have an important effect on your font rendering quality. - -##### [Return to Index](#index) - ---------------------------------------- - -## Using Colorful Glyphs/Emojis - -- Rendering of colored emojis is supported by imgui_freetype with FreeType 2.10+. -- You will need to load fonts with the `ImGuiFreeTypeBuilderFlags_LoadColor` flag. -- Emojis are frequently encoded in upper Unicode layers (character codes >0x10000) and will need dear imgui compiled with `IMGUI_USE_WCHAR32`. -- Not all types of color fonts are supported by FreeType at the moment. -- Stateful Unicode features such as skin tone modifiers are not supported by the text renderer. - -![colored glyphs](https://user-images.githubusercontent.com/8225057/106171241-9dc4ba80-6191-11eb-8a69-ca1467b206d1.png) - -```cpp -io.Fonts->AddFontFromFileTTF("../../../imgui_dev/data/fonts/NotoSans-Regular.ttf", 16.0f); -static ImWchar ranges[] = { 0x1, 0x1FFFF, 0 }; -static ImFontConfig cfg; -cfg.MergeMode = true; -cfg.FontLoaderFlags |= ImGuiFreeTypeLoaderFlags_LoadColor; -io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\seguiemj.ttf", 16.0f, &cfg); -``` - -##### [Return to Index](#index) - ---------------------------------------- - -## Using Custom Glyph Ranges - -🆕 **Since 1.92, with an up to date backend: specifying glyph ranges is unnecessary. Therefore this is not really useful any more.** - -:rewind: You can use the `ImFontGlyphRangesBuilder` helper to create glyph ranges based on text input. For example: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs. -```cpp -ImVector ranges; -ImFontGlyphRangesBuilder builder; -builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters) -builder.AddChar(0x7262); // Add a specific character -builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges -builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted) - -io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, nullptr, ranges.Data); -io.Fonts->Build(); // Build the atlas while 'ranges' is still in scope and not deleted. -``` - -##### [Return to Index](#index) - ---------------------------------------- - -## Using Custom Colorful Icons - -🆕 **Since 1.92, with an up to date backend: this system has been revamped.** - -TL;DR; With the new system, it is recommended that you create a custom `ImFontLoader` and register your fonts with it. -`AddCustomRectFontGlyph()` has been obsoleted because its API does not make much sense with resizable fonts. - -You can ask questions in [#8466](https://github.com/ocornut/imgui/issues/8466). - -:rewind: **Before 1.92:** - -As an alternative to rendering colorful glyphs using imgui_freetype with `ImGuiFreeTypeBuilderFlags_LoadColor`, you may allocate your own space in the texture atlas and write yourself into it. **(This is a BETA api, use if you are familiar with dear imgui and with your rendering backend)** - -- You can use the `ImFontAtlas::AddCustomRect()` and `ImFontAtlas::AddCustomRectFontGlyph()` api to register rectangles that will be packed into the font atlas texture. Register them before building the atlas, then call Build()`. -- You can then use `ImFontAtlas::GetCustomRect(int)` to query the position/size of your rectangle within the texture, and blit/copy any graphics data of your choice into those rectangles. -- This API is beta because it is likely to change in order to support multi-dpi (multiple viewports on multiple monitors with varying DPI scale). - -#### Pseudo-code: -```cpp -// Add font, then register two custom 13x13 rectangles mapped to glyph 'a' and 'b' of this font -ImFont* font = io.Fonts->AddFontDefault(); -int rect_ids[2]; -rect_ids[0] = io.Fonts->AddCustomRectFontGlyph(font, 'a', 13, 13, 13+1); -rect_ids[1] = io.Fonts->AddCustomRectFontGlyph(font, 'b', 13, 13, 13+1); - -// Build atlas -io.Fonts->Build(); - -// Retrieve texture in RGBA format -unsigned char* tex_pixels = nullptr; -int tex_width, tex_height; -io.Fonts->GetTexDataAsRGBA32(&tex_pixels, &tex_width, &tex_height); - -for (int rect_n = 0; rect_n < IM_ARRAYSIZE(rect_ids); rect_n++) - if (const ImTextureRect* rect = io.Fonts->GetCustomRect(rect_ids[rect_n])) - { - // Fill the custom rectangle with red pixels (in reality you would draw/copy your bitmap data here!) - for (int y = 0; y < rect->Height; y++) - { - ImU32* p = (ImU32*)tex_pixels + (rect->Y + y) * tex_width + (rect->X); - for (int x = rect->Width; x > 0; x--) - *p++ = IM_COL32(255, 0, 0, 255); - } - } -``` - -##### [Return to Index](#index) - ---------------------------------------- - -## About Filenames - -**Please note that many new C/C++ users have issues loading their files _because the filename they provide is wrong_ due to incorrect assumption of what is the current directory.** - -Two things to watch for: - -(1) In C/C++ and most programming languages if you want to use a backslash `\` within a string literal, you need to write it double backslash `\\`. At it happens, Windows uses backslashes as a path separator, so be mindful. -```cpp -io.Fonts->AddFontFromFileTTF("MyFiles\MyImage01.jpg", ...); // This is INCORRECT!! -io.Fonts->AddFontFromFileTTF("MyFiles\\MyImage01.jpg", ...); // This is CORRECT -``` -In some situations, you may also use `/` path separator under Windows. - -(2) Make sure your IDE/debugger settings starts your executable from the right working (current) directory. In Visual Studio you can change your working directory in project `Properties > General > Debugging > Working Directory`. People assume that their execution will start from the root folder of the project, where by default it often starts from the folder where object or executable files are stored. -```cpp -io.Fonts->AddFontFromFileTTF("MyImage01.jpg", ...); // Relative filename depends on your Working Directory when running your program! -io.Fonts->AddFontFromFileTTF("../MyImage01.jpg", ...); // Load from the parent folder of your Working Directory -``` -##### [Return to Index](#index) - ---------------------------------------- - -## About UTF-8 Encoding - -**For non-ASCII characters display, a common user issue is not passing correctly UTF-8 encoded strings.** - -(1) We provide a function `ImGui::DebugTextEncoding(const char* text)` which you can call to verify the content of your UTF-8 strings. -This is a convenient way to confirm that your encoding is correct. - -```cpp -ImGui::SeparatorText("CORRECT"); -ImGui::DebugTextEncoding(u8"こんにちは"); - -ImGui::SeparatorText("INCORRECT"); -ImGui::DebugTextEncoding("こんにちは"); -``` -![UTF-8 Encoding viewer](https://github.com/ocornut/imgui/assets/8225057/61c1696a-9a94-46c5-9627-cf91211111f0) - -You can also find this tool under `Metrics/Debuggers->Tools->UTF-8 Encoding viewer` if you want to paste from clipboard, but this won't validate the UTF-8 encoding done by your compiler. - -(2) To encode in UTF-8: - -There are also compiler-specific ways to enforce UTF-8 encoding by default: - -- Visual Studio compiler: `/utf-8` command-line flag. -- Visual Studio compiler: `#pragma execution_character_set("utf-8")` inside your code. -- Since May 2023 we have changed the Visual Studio projects of all our examples to use `/utf-8` ([see commit](https://github.com/ocornut/imgui/commit/513af1efc9080857bbd10000d98f98f2a0c96803)). - -Or, since C++11, you can use the `u8"my text"` syntax to encode literal strings as UTF-8. e.g.: -```cpp -ImGui::Text(u8"hello"); -ImGui::Text(u8"こんにちは"); // this will always be encoded as UTF-8 -ImGui::Text("こんにちは"); // the encoding of this is depending on compiler settings/flags and may be incorrect. -``` - -Since C++20, because the C++ committee hate its users, they decided to change the `u8""` syntax to not return `const char*` but a new type `const char8_t*` which doesn't cast to `const char*`. -Because of type usage of `u8""` in C++20 is a little more tedious: -```cpp -ImGui::Text((const char*)u8"こんにちは"); -``` -However, you can disable this behavior completely using the compiler option [`/Zc:char8_t-`](https://learn.microsoft.com/en-us/cpp/build/reference/zc-char8-t?view=msvc-170) for MSVC and [`-fno-char8_t`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1423r3.html) for Clang and GCC. -##### [Return to Index](#index) - ---------------------------------------- - -## Debug Tools - -#### Metrics/Debugger->Fonts -You can use the `Metrics/Debugger` window (available in `Demo>Tools`) to browse your fonts and understand what's going on if you have an issue. You can also reach it in `Demo->Tools->Style Editor->Fonts`. The same information are also available in the Style Editor under Fonts. - -![Fonts debugging](https://user-images.githubusercontent.com/8225057/135429892-0e41ef8d-33c5-4991-bcf6-f997a0bcfd6b.png) - -#### UTF-8 Encoding Viewer** -You can use the `UTF-8 Encoding viewer` in `Metrics/Debugger` to verify the content of your UTF-8 strings. From C/C++ code, you can call `ImGui::DebugTextEncoding("my string");` function to verify that your UTF-8 encoding is correct. - -![UTF-8 Encoding viewer](https://user-images.githubusercontent.com/8225057/166505963-8a0d7899-8ee8-4558-abb2-1ae523dc02f9.png) - -##### [Return to Index](#index) - ---------------------------------------- - -## Credits/Licenses For Fonts Included In Repository - -Some fonts files are available in the `misc/fonts/` folder: - -**Roboto-Medium.ttf**, by Christian Robetson -
Apache License 2.0 -
https://fonts.google.com/specimen/Roboto - -**Cousine-Regular.ttf**, by Steve Matteson -
Digitized data copyright (c) 2010 Google Corporation. -
Licensed under the SIL Open Font License, Version 1.1 -
https://fonts.google.com/specimen/Cousine - -**DroidSans.ttf**, by Steve Matteson -
Apache License 2.0 -
https://www.fontsquirrel.com/fonts/droid-sans - -**ProggyClean.ttf**, by Tristan Grimmer -
MIT License -
(recommended loading setting: Size = 13.0, GlyphOffset.y = +1) -
http://www.proggyfonts.net/ - -**ProggyTiny.ttf**, by Tristan Grimmer -
MIT License -
(recommended loading setting: Size = 10.0, GlyphOffset.y = +1) -
http://www.proggyfonts.net/ - -**Karla-Regular.ttf**, by Jonathan Pinhorn -
SIL OPEN FONT LICENSE Version 1.1 - -##### [Return to Index](#index) - -## Font Links - -#### ICON FONTS - -- C/C++ header for icon fonts (#define with code points to use in source code string literals) https://github.com/juliettef/IconFontCppHeaders -- FontAwesome https://fortawesome.github.io/Font-Awesome -- OpenFontIcons https://github.com/traverseda/OpenFontIcons -- Google Icon Fonts https://design.google.com/icons/ -- Kenney Icon Font (Game Controller Icons) https://github.com/nicodinh/kenney-icon-font -- IcoMoon - Custom Icon font builder https://icomoon.io/app - -#### REGULAR FONTS - -- Google Noto Fonts (worldwide languages) https://www.google.com/get/noto/ -- Open Sans Fonts https://fonts.google.com/specimen/Open+Sans -- (Japanese) M+ fonts by Coji Morishita http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html - -#### MONOSPACE FONTS - -Pixel Perfect: -- Proggy Fonts, by Tristan Grimmer http://www.proggyfonts.net or http://upperboundsinteractive.com/fonts.php -- Sweet16, Sweet16 Mono, by Martin Sedlak (Latin + Supplemental + Extended A) https://github.com/kmar/Sweet16Font (also include an .inl file to use directly in dear imgui.) - -Regular: -- Google Noto Mono Fonts https://www.google.com/get/noto/ -- Typefaces for source code beautification https://github.com/chrissimpkins/codeface -- Programmation fonts http://s9w.github.io/font_compare/ -- Inconsolata http://www.levien.com/type/myfonts/inconsolata.html -- Adobe Source Code Pro: Monospaced font family for ui & coding environments https://github.com/adobe-fonts/source-code-pro -- Monospace/Fixed Width Programmer's Fonts http://www.lowing.org/fonts/ - -Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing). - -##### [Return to Index](#index) diff --git a/libs/imgui-1.92.1/docs/README.md b/libs/imgui-1.92.1/docs/README.md deleted file mode 100644 index 7c62950..0000000 --- a/libs/imgui-1.92.1/docs/README.md +++ /dev/null @@ -1,222 +0,0 @@ -Dear ImGui -===== - -

"Give someone state and they'll have a bug one day, but teach them how to represent state in two separate locations that have to be kept in sync and they'll have bugs for a lifetime."
-ryg - ----- - -[![Build Status](https://github.com/ocornut/imgui/workflows/build/badge.svg)](https://github.com/ocornut/imgui/actions?workflow=build) [![Static Analysis Status](https://github.com/ocornut/imgui/workflows/static-analysis/badge.svg)](https://github.com/ocornut/imgui/actions?workflow=static-analysis) [![Tests Status](https://github.com/ocornut/imgui_test_engine/workflows/tests/badge.svg)](https://github.com/ocornut/imgui_test_engine/actions?workflow=tests) - -(This library is available under a free and permissive license, but needs financial support to sustain its continued improvements. In addition to maintenance and stability there are many desirable features yet to be added. If your company is using Dear ImGui, please consider reaching out.) - -Businesses: support continued development and maintenance via invoiced sponsoring/support contracts: -
  _E-mail: contact @ dearimgui dot com_ -
Individuals: support continued development and maintenance [here](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WGHNC6MBFLZ2S). Also see [Funding](https://github.com/ocornut/imgui/wiki/Funding) page. - -| [The Pitch](#the-pitch) - [Usage](#usage) - [How it works](#how-it-works) - [Releases & Changelogs](#releases--changelogs) - [Demo](#demo) - [Getting Started & Integration](#getting-started--integration) | -:----------------------------------------------------------: | -| [Gallery](#gallery) - [Support, FAQ](#support-frequently-asked-questions-faq) - [How to help](#how-to-help) - **[Funding & Sponsors](https://github.com/ocornut/imgui/wiki/Funding)** - [Credits](#credits) - [License](#license) | -| [Wiki](https://github.com/ocornut/imgui/wiki) - [Extensions](https://github.com/ocornut/imgui/wiki/Useful-Extensions) - [Languages bindings & frameworks backends](https://github.com/ocornut/imgui/wiki/Bindings) - [Software using Dear ImGui](https://github.com/ocornut/imgui/wiki/Software-using-dear-imgui) - [User quotes](https://github.com/ocornut/imgui/wiki/Quotes) | - -### The Pitch - -Dear ImGui is a **bloat-free graphical user interface library for C++**. It outputs optimized vertex buffers that you can render anytime in your 3D-pipeline-enabled application. It is fast, portable, renderer agnostic, and self-contained (no external dependencies). - -Dear ImGui is designed to **enable fast iterations** and to **empower programmers** to create **content creation tools and visualization / debug tools** (as opposed to UI for the average end-user). It favors simplicity and productivity toward this goal and lacks certain features commonly found in more high-level libraries. Among other things, full internationalization (right-to-left text, bidirectional text, text shaping etc.) and accessibility features are not supported. - -Dear ImGui is particularly suited to integration in game engines (for tooling), real-time 3D applications, fullscreen applications, embedded applications, or any applications on console platforms where operating system features are non-standard. - - - Minimize state synchronization. - - Minimize UI-related state storage on user side. - - Minimize setup and maintenance. - - Easy to use to create dynamic UI which are the reflection of a dynamic data set. - - Easy to use to create code-driven and data-driven tools. - - Easy to use to create ad hoc short-lived tools and long-lived, more elaborate tools. - - Easy to hack and improve. - - Portable, minimize dependencies, run on target (consoles, phones, etc.). - - Efficient runtime and memory consumption. - - Battle-tested, used by [many major actors in the game industry](https://github.com/ocornut/imgui/wiki/Software-using-dear-imgui). - -### Usage - -**The core of Dear ImGui is self-contained within a few platform-agnostic files** which you can easily compile in your application/engine. They are all the files in the root folder of the repository (imgui*.cpp, imgui*.h). **No specific build process is required**. You can add the .cpp files into your existing project. - -**Backends for a variety of graphics API and rendering platforms** are provided in the [backends/](https://github.com/ocornut/imgui/tree/master/backends) folder, along with example applications in the [examples/](https://github.com/ocornut/imgui/tree/master/examples) folder. You may also create your own backend. Anywhere where you can render textured triangles, you can render Dear ImGui. - -See the [Getting Started & Integration](#getting-started--integration) section of this document for more details. - -After Dear ImGui is set up in your application, you can use it from \_anywhere\_ in your program loop: -```cpp -ImGui::Text("Hello, world %d", 123); -if (ImGui::Button("Save")) - MySaveFunction(); -ImGui::InputText("string", buf, IM_ARRAYSIZE(buf)); -ImGui::SliderFloat("float", &f, 0.0f, 1.0f); -``` -![sample code output (dark, segoeui font, freetype)](https://user-images.githubusercontent.com/8225057/191050833-b7ecf528-bfae-4a9f-ac1b-f3d83437a2f4.png) -![sample code output (light, segoeui font, freetype)](https://user-images.githubusercontent.com/8225057/191050838-8742efd4-504d-4334-a9a2-e756d15bc2ab.png) - -```cpp -// Create a window called "My First Tool", with a menu bar. -ImGui::Begin("My First Tool", &my_tool_active, ImGuiWindowFlags_MenuBar); -if (ImGui::BeginMenuBar()) -{ - if (ImGui::BeginMenu("File")) - { - if (ImGui::MenuItem("Open..", "Ctrl+O")) { /* Do stuff */ } - if (ImGui::MenuItem("Save", "Ctrl+S")) { /* Do stuff */ } - if (ImGui::MenuItem("Close", "Ctrl+W")) { my_tool_active = false; } - ImGui::EndMenu(); - } - ImGui::EndMenuBar(); -} - -// Edit a color stored as 4 floats -ImGui::ColorEdit4("Color", my_color); - -// Generate samples and plot them -float samples[100]; -for (int n = 0; n < 100; n++) - samples[n] = sinf(n * 0.2f + ImGui::GetTime() * 1.5f); -ImGui::PlotLines("Samples", samples, 100); - -// Display contents in a scrolling region -ImGui::TextColored(ImVec4(1,1,0,1), "Important Stuff"); -ImGui::BeginChild("Scrolling"); -for (int n = 0; n < 50; n++) - ImGui::Text("%04d: Some text", n); -ImGui::EndChild(); -ImGui::End(); -``` -![my_first_tool_v188](https://user-images.githubusercontent.com/8225057/191055698-690a5651-458f-4856-b5a9-e8cc95c543e2.gif) - -Dear ImGui allows you to **create elaborate tools** as well as very short-lived ones. On the extreme side of short-livedness: using the Edit&Continue (hot code reload) feature of modern compilers you can add a few widgets to tweak variables while your application is running, and remove the code a minute later! Dear ImGui is not just for tweaking values. You can use it to trace a running algorithm by just emitting text commands. You can use it along with your own reflection data to browse your dataset live. You can use it to expose the internals of a subsystem in your engine, to create a logger, an inspection tool, a profiler, a debugger, an entire game-making editor/framework, etc. - -### How it works - -The IMGUI paradigm through its API tries to minimize superfluous state duplication, state synchronization, and state retention from the user's point of view. It is less error-prone (less code and fewer bugs) than traditional retained-mode interfaces, and lends itself to creating dynamic user interfaces. Check out the Wiki's [About the IMGUI paradigm](https://github.com/ocornut/imgui/wiki#about-the-imgui-paradigm) section for more details. - -Dear ImGui outputs vertex buffers and command lists that you can easily render in your application. The number of draw calls and state changes required to render them is fairly small. Because Dear ImGui doesn't know or touch graphics state directly, you can call its functions anywhere in your code (e.g. in the middle of a running algorithm, or in the middle of your own rendering process). Refer to the sample applications in the examples/ folder for instructions on how to integrate Dear ImGui with your existing codebase. - -_A common misunderstanding is to mistake immediate mode GUI for immediate mode rendering, which usually implies hammering your driver/GPU with a bunch of inefficient draw calls and state changes as the GUI functions are called. This is NOT what Dear ImGui does. Dear ImGui outputs vertex buffers and a small list of draw calls batches. It never touches your GPU directly. The draw call batches are decently optimal and you can render them later, in your app or even remotely._ - -### Releases & Changelogs - -See [Releases](https://github.com/ocornut/imgui/releases) page for decorated Changelogs. -Reading the changelogs is a good way to keep up to date with the things Dear ImGui has to offer, and maybe will give you ideas of some features that you've been ignoring until now! - -### Demo - -Calling the `ImGui::ShowDemoWindow()` function will create a demo window showcasing a variety of features and examples. The code is always available for reference in `imgui_demo.cpp`. [Here's how the demo looks](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/v167/v167-misc.png). - -You should be able to build the examples from sources. If you don't, let us know! If you want to have a quick look at some Dear ImGui features, you can download Windows binaries of the demo app here: -- [imgui-demo-binaries-20250625.zip](https://www.dearimgui.com/binaries/imgui-demo-binaries-20250625.zip) (Windows, 1.92.0, built 2025/06/25, master) or [older binaries](https://www.dearimgui.com/binaries). - -The demo applications are not DPI aware so expect some blurriness on a 4K screen. For DPI awareness in your application, you can load/reload your font at a different scale and scale your style with `style.ScaleAllSizes()` (see [FAQ](https://www.dearimgui.com/faq)). - -### Getting Started & Integration - -See the [Getting Started](https://github.com/ocornut/imgui/wiki/Getting-Started) guide for details. - -On most platforms and when using C++, **you should be able to use a combination of the [imgui_impl_xxxx](https://github.com/ocornut/imgui/tree/master/backends) backends without modification** (e.g. `imgui_impl_win32.cpp` + `imgui_impl_dx11.cpp`). If your engine supports multiple platforms, consider using more imgui_impl_xxxx files instead of rewriting them: this will be less work for you, and you can get Dear ImGui running immediately. You can _later_ decide to rewrite a custom backend using your custom engine functions if you wish so. - -Integrating Dear ImGui within your custom engine is a matter of 1) wiring mouse/keyboard/gamepad inputs 2) uploading a texture to your GPU/render engine 3) providing a render function that can bind textures and render textured triangles, which is essentially what Backends are doing. The [examples/](https://github.com/ocornut/imgui/tree/master/examples) folder is populated with applications doing just that: setting up a window and using backends. If you follow the [Getting Started](https://github.com/ocornut/imgui/wiki/Getting-Started) guide it should in theory take you less than an hour to integrate Dear ImGui. **Make sure to spend time reading the [FAQ](https://www.dearimgui.com/faq), comments, and the examples applications!** - -Officially maintained backends/bindings (in repository): -- Renderers: DirectX9, DirectX10, DirectX11, DirectX12, Metal, OpenGL/ES/ES2, SDL_GPU, SDL_Renderer2/3, Vulkan, WebGPU. -- Platforms: GLFW, SDL2/SDL3, Win32, Glut, OSX, Android. -- Frameworks: Allegro5, Emscripten. - -[Third-party backends/bindings](https://github.com/ocornut/imgui/wiki/Bindings) wiki page: -- Languages: C, C# and: Beef, ChaiScript, CovScript, Crystal, D, Go, Haskell, Haxe/hxcpp, Java, JavaScript, Julia, Kotlin, Lobster, Lua, Nim, Odin, Pascal, PureBasic, Python, ReaScript, Ruby, Rust, Swift, Zig... -- Frameworks: AGS/Adventure Game Studio, Amethyst, Blender, bsf, Cinder, Cocos2d-x, Defold, Diligent Engine, Ebiten, Flexium, GML/Game Maker Studio, GLEQ, Godot, GTK3, Irrlicht Engine, JUCE, LÖVE+LUA, Mach Engine, Magnum, Marmalade, Monogame, NanoRT, nCine, Nim Game Lib, Nintendo 3DS/Switch/WiiU (homebrew), Ogre, openFrameworks, OSG/OpenSceneGraph, Orx, Photoshop, px_render, Qt/QtDirect3D, raylib, SFML, Sokol, Unity, Unreal Engine 4/5, UWP, vtk, VulkanHpp, VulkanSceneGraph, Win32 GDI, WxWidgets. -- Many bindings are auto-generated (by good old [cimgui](https://github.com/cimgui/cimgui) or newer/experimental [dear_bindings](https://github.com/dearimgui/dear_bindings)), you can use their metadata output to generate bindings for other languages. - -[Useful Extensions/Widgets](https://github.com/ocornut/imgui/wiki/Useful-Extensions) wiki page: -- Automation/testing, Text editors, node editors, timeline editors, plotting, software renderers, remote network access, memory editors, gizmos, etc. Notable and well supported extensions include [ImPlot](https://github.com/epezent/implot) and [Dear ImGui Test Engine](https://github.com/ocornut/imgui_test_engine). - -Also see [Wiki](https://github.com/ocornut/imgui/wiki) for more links and ideas. - -### Gallery - -Examples projects using Dear ImGui: [Tracy](https://github.com/wolfpld/tracy) (profiler), [ImHex](https://github.com/WerWolv/ImHex) (hex editor/data analysis), [RemedyBG](https://remedybg.itch.io/remedybg) (debugger) and [hundreds of others](https://github.com/ocornut/imgui/wiki/Software-using-Dear-ImGui). - -For more user-submitted screenshots of projects using Dear ImGui, check out the [Gallery Threads](https://github.com/ocornut/imgui/issues?q=label%3Agallery)! - -For a list of third-party widgets and extensions, check out the [Useful Extensions/Widgets](https://github.com/ocornut/imgui/wiki/Useful-Extensions) wiki page. - -| | | -|--|--| -| Custom engine [erhe](https://github.com/tksuoran/erhe) (docking branch)
[![erhe](https://user-images.githubusercontent.com/8225057/190203358-6988b846-0686-480e-8663-1311fbd18abd.jpg)](https://user-images.githubusercontent.com/994606/147875067-a848991e-2ad2-4fd3-bf71-4aeb8a547bcf.png) | Custom engine for [Wonder Boy: The Dragon's Trap](http://www.TheDragonsTrap.com) (2017)
[![the dragon's trap](https://user-images.githubusercontent.com/8225057/190203379-57fcb80e-4aec-4fec-959e-17ddd3cd71e5.jpg)](https://cloud.githubusercontent.com/assets/8225057/20628927/33e14cac-b329-11e6-80f6-9524e93b048a.png) | -| Custom engine (untitled)
[![editor white](https://user-images.githubusercontent.com/8225057/190203393-c5ac9f22-b900-4d1e-bfeb-6027c63e3d92.jpg)](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/v160/editor_white.png) | Tracy Profiler ([github](https://github.com/wolfpld/tracy))
[![tracy profiler](https://user-images.githubusercontent.com/8225057/190203401-7b595f6e-607c-44d3-97ea-4c2673244dfb.jpg)](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/v176/tracy_profiler.png) | - -### Support, Frequently Asked Questions (FAQ) - -See: [Frequently Asked Questions (FAQ)](https://github.com/ocornut/imgui/blob/master/docs/FAQ.md) where common questions are answered. - -See: [Getting Started](https://github.com/ocornut/imgui/wiki/Getting-Started) and [Wiki](https://github.com/ocornut/imgui/wiki) for many links, references, articles. - -See: [Articles about the IMGUI paradigm](https://github.com/ocornut/imgui/wiki#about-the-imgui-paradigm) to read/learn about the Immediate Mode GUI paradigm. - -See: [Upcoming Changes](https://github.com/ocornut/imgui/wiki/Upcoming-Changes). - -See: [Dear ImGui Test Engine + Test Suite](https://github.com/ocornut/imgui_test_engine) for Automation & Testing. - -For the purposes of getting search engines to crawl the wiki, here's a link to the [Crawlable Wiki](https://github-wiki-see.page/m/ocornut/imgui/wiki) (not for humans, [here's why](https://github-wiki-see.page/)). - -Getting started? For first-time users having issues compiling/linking/running or issues loading fonts, please use [GitHub Discussions](https://github.com/ocornut/imgui/discussions). For ANY other questions, bug reports, requests, feedback, please post on [GitHub Issues](https://github.com/ocornut/imgui/issues). Please read and fill the New Issue template carefully. - -Private support is available for paying business customers (E-mail: _contact @ dearimgui dot com_). - -**Which version should I get?** - -We occasionally tag [Releases](https://github.com/ocornut/imgui/releases) (with nice releases notes) but it is generally safe and recommended to sync to latest `master` or `docking` branch. The library is fairly stable and regressions tend to be fixed fast when reported. Advanced users may want to use the `docking` branch with [Multi-Viewport](https://github.com/ocornut/imgui/wiki/Multi-Viewports) and [Docking](https://github.com/ocornut/imgui/wiki/Docking) features. This branch is kept in sync with master regularly. - -**Who uses Dear ImGui?** - -See the [Quotes](https://github.com/ocornut/imgui/wiki/Quotes), [Funding & Sponsors](https://github.com/ocornut/imgui/wiki/Funding), and [Software using Dear ImGui](https://github.com/ocornut/imgui/wiki/Software-using-dear-imgui) Wiki pages for an idea of who is using Dear ImGui. Please add your game/software if you can! Also, see the [Gallery Threads](https://github.com/ocornut/imgui/issues?q=label%3Agallery)! - -How to help ------------ - -**How can I help?** - -- See [GitHub Forum/Issues](https://github.com/ocornut/imgui/issues). -- You may help with development and submit pull requests! Please understand that by submitting a PR you are also submitting a request for the maintainer to review your code and then take over its maintenance forever. PR should be crafted both in the interest of the end-users and also to ease the maintainer into understanding and accepting it. -- See [Help wanted](https://github.com/ocornut/imgui/wiki/Help-Wanted) on the [Wiki](https://github.com/ocornut/imgui/wiki/) for some more ideas. -- Be a [Funding Supporter](https://github.com/ocornut/imgui/wiki/Funding)! Have your company financially support this project via invoiced sponsors/maintenance or by buying a license for [Dear ImGui Test Engine](https://github.com/ocornut/imgui_test_engine) (please reach out: omar AT dearimgui DOT com). - -Sponsors --------- - -Ongoing Dear ImGui development is and has been financially supported by users and private sponsors. -
Please see the **[detailed list of current and past Dear ImGui funding supporters and sponsors](https://github.com/ocornut/imgui/wiki/Funding)** for details. -
From November 2014 to December 2019, ongoing development has also been financially supported by its users on Patreon and through individual donations. - -**THANK YOU to all past and present supporters for helping to keep this project alive and thriving!** - -Dear ImGui is using software and services provided free of charge for open source projects: -- [PVS-Studio](https://pvs-studio.com/en/pvs-studio/?utm_source=website&utm_medium=github&utm_campaign=open_source) for static analysis (supports C/C++/C#/Java). -- [GitHub actions](https://github.com/features/actions) for continuous integration systems. -- [OpenCppCoverage](https://github.com/OpenCppCoverage/OpenCppCoverage) for code coverage analysis. - -Credits -------- - -Developed by [Omar Cornut](https://www.miracleworld.net) and every direct or indirect [contributors](https://github.com/ocornut/imgui/graphs/contributors) to the GitHub. The early version of this library was developed with the support of [Media Molecule](https://www.mediamolecule.com) and first used internally on the game [Tearaway](https://tearaway.mediamolecule.com) (PS Vita). - -Recurring contributors include Rokas Kupstys [@rokups](https://github.com/rokups) (2020-2022): a good portion of work on automation system and regression tests now available in [Dear ImGui Test Engine](https://github.com/ocornut/imgui_test_engine). - -Maintenance/support contracts, sponsoring invoices and other B2B transactions are hosted and handled by [Disco Hello](https://www.discohello.com). - -Omar: "I first discovered the IMGUI paradigm at [Q-Games](https://www.q-games.com) where Atman Binstock had dropped his own simple implementation in the codebase, which I spent quite some time improving and thinking about. It turned out that Atman was exposed to the concept directly by working with Casey. When I moved to Media Molecule I rewrote a new library trying to overcome the flaws and limitations of the first one I've worked with. It became this library and since then I have spent an unreasonable amount of time iterating and improving it." - -Embeds [ProggyClean.ttf](https://www.proggyfonts.net) font by Tristan Grimmer (MIT license). -
Embeds [stb_textedit.h, stb_truetype.h, stb_rect_pack.h](https://github.com/nothings/stb/) by Sean Barrett (public domain). - -Inspiration, feedback, and testing for early versions: Casey Muratori, Atman Binstock, Mikko Mononen, Emmanuel Briney, Stefan Kamoda, Anton Mikhailov, Matt Willis. Also thank you to everyone posting feedback, questions and patches on GitHub. - -License -------- - -Dear ImGui is licensed under the MIT License, see [LICENSE.txt](https://github.com/ocornut/imgui/blob/master/LICENSE.txt) for more information. diff --git a/libs/imgui-1.92.1/docs/TODO.txt b/libs/imgui-1.92.1/docs/TODO.txt deleted file mode 100644 index 90d2b35..0000000 --- a/libs/imgui-1.92.1/docs/TODO.txt +++ /dev/null @@ -1,329 +0,0 @@ -dear imgui -ISSUES & TODO LIST - -Issue numbers (#) refer to GitHub issues listed at https://github.com/ocornut/imgui/issues/XXXX -THIS LIST IS NOT WELL MAINTAINED. MOST OF THE WORK HAPPENS ON GITHUB NOWADAYS. -The list below consist mostly of ideas noted down before they are requested/discussed by users (at which point they usually exist on the github issue tracker). -It's mostly a bunch of personal notes, probably incomplete. Feel free to query if you have any questions. - - - doc: add a proper documentation system (maybe relying on automation? #435) - - doc: checklist app to verify backends/integration of imgui (test inputs, rendering, callback, etc.). - - doc/tips: tips of the day: website? applet in imgui_club? - - - window: preserve/restore relative focus ordering (persistent or not), and e.g. of multiple reappearing windows (#2304) -> also see docking reference to same #. - - window: calling SetNextWindowSize() every frame with <= 0 doesn't do anything, may be useful to allow (particularly when used for a single axis). (#690) - - window: add a way for very transient windows (non-saved, temporary overlay over hundreds of objects) to "clean" up from the global window list. perhaps a lightweight explicit cleanup pass. - - window: auto-fit feedback loop when user relies on any dynamic layout (window width multiplier, column) appears weird to end-user. clarify. - - window: begin with *p_open == false could return false. - - window: get size/pos helpers given names (see discussion in #249) - - window: when window is very small, prioritize resize button over close button. - - window: double-clicking on title bar to minimize isn't consistent interaction, perhaps move to single-click on left-most collapse icon? - - window: expose contents size. (#1045) - - window: using SetWindowPos() inside Begin() and moving the window with the mouse reacts a very ugly glitch. We should just defer the SetWindowPos() call. - - window: GetWindowSize() returns (0,0) when not calculated? (#1045) - - window: investigate better auto-positioning for new windows. - - window: top most window flag? more z-order control? (#2574) - - window/size: manually triggered auto-fit (double-click on grip) shouldn't resize window down to viewport size? - - window/size: how to allow to e.g. auto-size vertically to fit contents, but be horizontally resizable? Assuming SetNextWindowSize() is modified to treat -1.0f on each axis as "keep as-is" (would be good but might break erroneous code): Problem is UpdateWindowManualResize() and lots of code treat (window->AutoFitFramesX > 0 || window->AutoFitFramesY > 0) together. - - window/opt: freeze window flag: if not focused/hovered, return false, render with previous ImDrawList. and/or reduce refresh rate. -> this may require enforcing that it is illegal to submit contents if Begin returns false. - - window/clipping: some form of clipping when DisplaySize (or corresponding viewport) is zero. - - window/tabbing: add a way to signify that a window or docked window requires attention (e.g. blinking title bar, trying to click behind a modal). - - window/id_stack: add e.g. window->GetIDFromPath() with support for leading / and ../ (#1390, #331) -> model from test engine. - ! scrolling: exposing horizontal scrolling with Shift+Wheel even when scrollbar is disabled expose lots of issues (#2424, #1463) - - scrolling: while holding down a scrollbar, try to keep the same contents visible (at least while not moving mouse) - - scrolling: allow immediately effective change of scroll after Begin() if we haven't appended items yet. - - scrolling: forward mouse wheel scrolling to parent window when at the edge of scrolling limits? (useful for listbox,tables?) - - scrolling/style: shadows on scrollable areas to denote that there is more contents (see e.g. DaVinci Resolve ui) - - - drawdata: make it easy to deep-copy (or swap?) a full ImDrawData so user can easily save that data if they use threaded rendering. (#1860 see ImDrawDataSnapshot) - ! drawlist: add CalcTextSize() func to facilitate consistent code from user pov (currently need to use ImGui or ImFont alternatives!) - - drawlist: maintaining bounding box per command would allow to merge draw command when clipping isn't relied on (typical non-scrolling window or non-overflowing column would merge with previous command). (WIP branch) - - drawlist: make it easier to toggle AA per primitive, so we can use e.g. non-AA fill + AA borders more naturally - - drawlist: non-AA strokes have gaps between points (#593, #288), glitch especially on RenderCheckmark() and ColorPicker4(). - - drawlist: callback: add an extra void* in ImDrawCallback to expose render state instead of pulling from Renderer_RenderState (would break API). - - drawlist: AddRect vs AddLine position confusing (#2441) - - drawlist/opt: store rounded corners in texture to use 1 quad per corner (filled and wireframe) to lower the cost of rounding. (#1962) - - drawlist/opt: AddRect() axis aligned pixel aligned (no-aa) could use 8 triangles instead of 16 and no normal calculation. - - drawlist/opt: thick AA line could be doable in same number of triangles as 1.0 AA line by storing gradient+full color in atlas. - - - items: IsItemHovered() info stored in a stack? so that 'if TreeNode() { Text; TreePop; } if IsHovered' return the hover state of the TreeNode? - - - widgets: display mode: widget-label, label-widget (aligned on column or using fixed size), label-newline-tab-widget etc. (#395) - - widgets: clean up widgets internal toward exposing everything and stabilizing imgui_internals.h. - - widgets: add always-allow-overlap mode. This should perhaps be the default? one problem is that highlight after mouse-wheel scrolling gets deferred, makes scrolling more flickery. - - widgets: start exposing PushItemFlag() and ImGuiItemFlags - - widgets: alignment options in style (e.g. center Selectable, Right-Align within Button, etc.) #1260 - - widgets: activate by identifier (trigger button, focus given id) - - widgets: custom glyph/shapes replacements for stock shapes. (also #6090 #2431 #2235 #6517) - - widgets: coloredit: keep reporting as active when picker is on? - - widgets: group/scalarn functions: expose more per-component information. e.g. store NextItemData.ComponentIdx set by scalarn function, groups can expose them back somehow. - - selectable: using (size.x == 0.0f) and (SelectableTextAlign.x > 0.0f) followed by SameLine() is currently not supported. - - selectable: generic BeginSelectable()/EndSelectable() mechanism. (work out alongside range-select branch) - - selectable: a way to visualize partial/mixed selection (e.g. parent tree node has children with mixed selection) - - - input text: preserve scrolling when unfocused? - - input text: reorganize event handling, allow CharFilter to modify buffers, allow multiple events? (#541) - - input text: expose CursorPos in char filter event (#816) - - input text: try usage idiom of using InputText with data only exposed through get/set accessors, without extraneous copy/alloc. (#3009) - - input text: access public fields via a non-callback API e.g. InputTextGetState("xxx") that may return nullptr if not active (available in internals) - - input text: flag to disable live update of the user buffer (also applies to float/int text input) (#701) - - input text: hover tooltip could show unclamped text - - input text: support for INSERT key to toggle overwrite mode. currently disabled because stb_textedit behavior is unsatisfactory on multi-line. (#2863) - - input text: option to Tab after an Enter validation. - - input text: add ImGuiInputTextFlags_EnterToApply? (off #218) - - input text: easier ways to update buffer (from source char*) while owned. preserve some sort of cursor position for multi-line text. - - input text: add discard flag (e.g. ImGuiInputTextFlags_DiscardActiveBuffer) or make it easier to clear active focus for text replacement during edition (#725) - - input text: display bug when clicking a drag/slider after an input text in a different window has all-selected text (order dependent). actually a very old bug but no one appears to have noticed it. - - input text: allow centering/positioning text so that ctrl+clicking Drag or Slider keeps the textual value at the same pixel position. - - input text: decorrelate display layout from inputs with custom template - e.g. what's the easiest way to implement a nice IP/Mac address input editor? - - input text: global callback system so user can plug in an expression evaluator easily. (#1691) - - input text: force scroll to end or scroll to a given line/contents (so user can implement a log or a search feature) - - input text: a way to preview completion (e.g. disabled text completing from the cursor) - - input text: a side bar that could e.g. preview where errors are. probably left to the user to draw but we'd need to give them the info there. - - input text: a way for the user to provide syntax coloring. - - input text: Shift+TAB with ImGuiInputTextFlags_AllowTabInput could eat preceding blanks, up to tab_count. - - input text multi-line: don't directly call AddText() which does an unnecessary vertex reserve for character count prior to clipping. and/or more line-based clipping to AddText(). and/or reorganize TextUnformatted/RenderText for more efficiency for large text (e.g TextUnformatted could clip and log separately, etc). - - input text multi-line: support for copy/cut without selection (copy/cut current line?) - - input text multi-line: line numbers? status bar? (follow up on #200) - - input text multi-line: behave better when user changes input buffer while editing is active (even though it is illegal behavior). namely, the change of buffer can create a scrollbar glitch (#725) - - input text multi-line: better horizontal scrolling support (#383, #1224) - - input text multi-line: single call to AddText() should be coarse clipped on InputTextEx() end. - - input number: optional range min/max for Input*() functions - - input number: holding [-]/[+] buttons could increase the step speed non-linearly (or user-controlled) - - input number: use mouse wheel to step up/down - - - layout: helper or a way to express ImGui::SameLine(ImGui::GetCursorStartPos().x + ImGui::CalcItemWidth() + ImGui::GetStyle().ItemInnerSpacing.x); in a simpler manner. - - layout, font: horizontal tab support, A) text mode: forward only tabs (e.g. every 4 characters/N pixels from pos x1), B) manual mode: explicit tab stops acting as mini columns, no clipping (for menu items, many kind of uses, also vaguely relate to #267, #395) - - layout: horizontal layout helper (#97) - - layout: horizontal flow until no space left (#404) - - layout: more generic alignment state (left/right/centered) for single items? - - layout: clean up the InputFloatN/SliderFloatN/ColorEdit4 layout code. item width should include frame padding. - - layout: vertical alignment of mixed height items (e.g. buttons) within a same line (#1284) - - layout: null layout mode were items are not rendered but user can query GetItemRectMin()/Max/Size. - - layout: (R&D) local multi-pass layout mode. - - layout: (R&D) bind authored layout data (created by an off-line tool), items fetch their pos/size at submission, self-optimize data structures to stable linear access. - - - tables: see https://github.com/ocornut/imgui/issues/2957#issuecomment-569726095 - - - group: BeginGroup() needs a border option. (~#1496) - - group: IsItemHovered() after EndGroup() covers whole AABB rather than the intersection of individual items. Is that desirable? - - group: merge deactivation/activation within same group (fwd WasEdited flag). (#2550) - -!- color: the color conversion helpers/types are a mess and needs sorting out. - - color: (api breaking) ImGui::ColorConvertXXX functions should be loose ImColorConvertXX to match imgui_internals.h - - - plot: full featured plot/graph api w/ scrolling, zooming etc. --> promote using ImPlot - - (plot: deleted all other todo lines on 2023-06-28) - - - clipper: ability to disable the clipping through a simple flag/bool. - - clipper: ability to run without knowing full count in advance. - - clipper: horizontal clipping support. (#2580) - - - separator: expose flags (#759) - - separator: take indent into consideration (optional) - - separator: width, thickness, centering (#1643, #2657) - - splitter: formalize the splitter idiom into an official api (we want to handle n-way split) (#319) - - - docking: merge docking branch (#2109) - - - tabs: "there is currently a problem because TabItem() will try to submit their own tooltip after 0.50 second, and this will have the effect of making your tooltip flicker once." -> tooltip priority work (WIP branch) - - tabs: make EndTabBar fail if users doesn't respect BeginTabBar return value, for consistency/future-proofing. - - tabs: persistent order/focus in BeginTabBar() api (#261, #351) - - tabs: explicit api (even if internal) to cleanly manipulate tab order. - - - image/image button: misalignment on padded/bordered button? - - image/image button: parameters are confusing, image() has tint_col,border_col whereas imagebutton() has bg_col/tint_col. Even thou they are different parameters ordering could be more consistent. can we fix that? - - slider: allow using the [-]/[+] buttons used by InputFloat()/InputInt() - - slider: add dragging-based widgets to edit values with mouse (on 2 axes), saving screen real-estate. - - slider: tint background based on value (e.g. v_min -> v_max, or use 0.0f either side of the sign) - - slider: relative dragging? + precision dragging - - slider: step option (#1183) - - slider: style: fill % of the bar instead of positioning a drag. - - knob: rotating knob widget (#942) - - drag float: support for reversed drags (min > max) (removed is_locked, also see fdc526e) - - drag float: up/down axis - - drag float: power != 0.0f with current value being outside the range keeps the value stuck. - - drag float: added leeway on edge (e.g. a few invisible steps past the clamp limits) - - - combo: a way/helper to customize the combo preview (#1658) -> experimental BeginComboPreview() - - combo/listbox: keyboard control. need InputText-like non-active focus + key handling. considering keyboard for custom listbox (pr #203) - - listbox: multiple selection (WIP range-select branch) - - listbox: unselect option (#1208) - - listbox: make it easier/more natural to implement range-select (need some sort of info/ref about the last clicked/focused item that user can translate to an index?) (WIP range-select branch) - - listbox: user may want to initial scroll to focus on the one selected value? - - listbox: disable capturing mouse wheel if the listbox has no scrolling. (#1681) - - listbox: scrolling should track modified selection. - - listbox: future api should allow to enable horizontal scrolling (#2510) - -!- popups/menus: clarify usage of popups id, how MenuItem/Selectable closing parent popups affects the ID, etc. this is quite fishy needs improvement! (#331, #402) - - modals: make modal title bar blink when trying to click outside the modal - - modals: technically speaking, we could make Begin() with ImGuiWindowFlags_Modal work without involving popup. May help untangle a few things, as modals are more like regular windows than popups. - - popups: if the popup functions took explicit ImGuiID it would allow the user to manage the scope of those ID. (#331) - - popups: clicking outside (to close popup) and holding shouldn't drag window below. - - popups: add variant using global identifier similar to Begin/End (#402) - - popups: border options. richer api like BeginChild() perhaps? (#197) - - popups/modals: although it is sometimes convenient that popups/modals lifetime is owned by imgui, we could also a bool-owned-by-user api as long as Begin() return value testing is enforced. - - - tooltip: drag and drop with tooltip near monitor edges lose/changes its last direction instead of locking one. The drag and drop tooltip should always follow without changing direction. - - tooltip: allow to set the width of a tooltip to allow TextWrapped() etc. while keeping the height automatic. - - tooltip: drag tooltip hovering over source widget with IsItemHovered/SetTooltip flickers (WIP branch) - - tooltip: tooltip priorities to override a stock tooltip (e.g. shortcut tooltip) - - - status-bar: add a per-window status bar helper similar to what menu-bar does. generalize concept of layer0 rect in window (can make _MenuBar window flag obsolete too). - - shortcuts: store multiple keychords in ImGuiKeyChord - - shortcuts: Hovered route (lower than Focused, higher than Global) - - shortcuts: local-style shortcut api, e.g. parse "&Save" - - shortcuts,menus: global-style shortcut api e.g. "Save (CTRL+S)" -> explicit flag for recursing into closed menu - - menus: hovering from menu to menu on a menu-bar has 1 frame without any menu, which is a little annoying. ideally zero. - - menus: would be nice if the Selectable() supported horizontal alignment (must be given the equivalent of WorkRect.Max.x matching the position of the shortcut column) - - - tree node: add treenode/treepush int variants? not there because (void*) cast from int warns on some platforms/settings? - - tree node: try to apply scrolling at time of TreePop() if node was just opened and end of node is past scrolling limits? - - tree node / selectable render mismatch which is visible if you use them both next to each other (e.g. cf. property viewer) - - tree node: tweak color scheme to distinguish headers from selected tree node (#581) - - tree node: leaf/non-leaf highlight mismatch. - - tree node/opt: could avoid formatting when clipped (flag assuming we don't care about width/height, assume single line height? format only %s/%c to be able to count height?) - - - settings: write more decent code to allow saving/loading new fields: columns, selected tree nodes? - - settings: facilitate extension lazily calling AddSettingsHandler() while running and still getting their data call the ReadXXX handlers immediately. - - settings: api for per-tool simple persistent data (bool,int,float,columns sizes,etc.) in .ini file (#437) - - settings/persistence: helpers to make TreeNodeBehavior persist (even during dev!) - may need to store some semantic and/or data type in ImGuiStoragePair - - - style: better default styles. (#707) - - style: add a highlighted text color (for headers, etc.) - - style: border types: out-screen, in-screen, etc. (#447) - - style: add window shadow (fading away from the window. Paint-style calculation of vertices alpha after drawlist would be easier) - - style: a concept of "compact style" that the end-user can easily rely on (e.g. PushStyleCompact()?) that maps to other settings? avoid implementing duplicate helpers such as SmallCheckbox(), etc. - - style: try to make PushStyleVar() more robust to incorrect parameters (to be more friendly to edit & continues situation). - - style: global scale setting. - - style: FramePadding could be different for up vs down (#584) - - style: WindowPadding needs to be EVEN as the 0.5 multiplier used on this value probably have a subtle effect on clip rectangle - - style: have a more global HSV setter (e.g. alter hue on all elements). consider replacing active/hovered by offset in HSV space? (#438, #707, #1223) - - style: gradients fill (#1223) ~ 2 bg colors for each fill? tricky with rounded shapes and using textures for corners. - - style editor: color child window height expressed in multiple of line height. - - - log: improve logging of ArrowButton, ListBox, TabItem - - log: carry on indent / tree depth when opening a child window - - log: enabling log ends up pushing and growing vertices buffers because we don't distinguish layout vs render clipping - - log: have more control over the log scope (e.g. stop logging when leaving current tree node scope) - - log: be able to log anything (e.g. right-click on a window/tree-node, shows context menu? log into tty/file/clipboard) - - log: let user copy any window content to clipboard easily (CTRL+C on windows? while moving it? context menu?). code is commented because it fails with multiple Begin/End pairs. - - log: obsolete LogButtons().... (was: LogButtons() options for specifying depth and/or hiding depth slider) - - - filters: set a current filter that certain items (e.g. tree node) can automatically query to hide themselves - - filters: handle wild-cards (with implicit leading/trailing *), reg-exprs - - filters: fuzzy matches (may use code at blog.forrestthewoods.com/4cffeed33fdb) - - - drag and drop: focus drag target window on hold (even without open) - - drag and drop: releasing a drop shows the "..." tooltip for one frame - since e13e598 (#1725) - - drag and drop: drag source on a group object (would need e.g. an invisible button covering group in EndGroup) https://twitter.com/paniq/status/1121446364909535233 - - drag and drop: have some way to know when a drag begin from BeginDragDropSource() pov. (see 2018/01/11 post in #143) - - drag and drop: allow preview tooltip to be submitted from a different place than the drag source. (#1725) - - drag and drop: make it easier and provide a demo to have tooltip both are source and target site, with a more detailed one on target site (tooltip ordering problem) - - drag and drop: demo with reordering nodes (in a list, or a tree node). (#143) - - drag and drop: test integrating with os drag and drop (make it easy to do a naive WM_DROPFILE integration) - - drag and drop: allow for multiple payload types. (#143) - - drag and drop: make payload optional? payload promise? (see 2018/01/11 post in #143) - - drag and drop: (#143) "both an in-process pointer and a promise to generate a serialized version, for whether the drag ends inside or outside the same process" - - drag and drop: feedback when hovering a region blocked by modal (mouse cursor "NO"?) - - - markup: simple markup language for color change? (#902, #3130) - - - text: selectable text (for copy) as a generic feature (ItemFlags?) - - text: proper alignment options in imgui_internal.h - - text: provided a framed text helper, e.g. https://pastebin.com/1Laxy8bT - - text: refactor TextUnformatted (or underlying function) to more explicitly request if we need width measurement or not - - text/layout/tabs: \t pulling position from base pos + step, or offset array (e.g. could be used in text edit, menus for simple icon+text alignment, etc.) - - text link/url button: underlined. should api expose an ID or use text contents as ID? which colors enum to use? - - text/wrapped: should be a more first-class citizen, e.g. wrapped text within a Selectable with known width. - - text/wrapped: custom separator for text wrapping. (#3002) - - text/wrapped: figure out better way to use TextWrapped() in an always auto-resize context (tooltip, etc.) (#249) - - - font: arbitrary line spacing. (#2945) - - font: MergeMode: flags to select overwriting or not (this is now very easy with refactored ImFontAtlasBuildWithStbTruetype) - - font: better CalcTextSizeA() API, at least for simple use cases. current one is horrible (perhaps have simple vs extended versions). - - font: for the purpose of RenderTextEllipsis(), it might be useful that CalcTextSizeA() can ignore the trailing padding? - - font: a CalcTextHeight() helper could run faster than CalcTextSize().y - - font: enforce monospace through ImFontConfig (for icons?) + create dual ImFont output from same input, reusing rasterized data but with different glyphs/AdvanceX - - font: make it easier to submit own bitmap font (same texture, another texture?). (#2127, #2575) - - font: MemoryTTF taking ownership confusing/not obvious, maybe default should be opposite? - - font: storing MinAdvanceX per font would allow us to skip calculating line width (under a threshold of character count) in loops looking for block width - - font/demo: demonstrate use of ImFontGlyphRangesBuilder. - - font/draw: vertical and/or rotated text renderer (#705) - vertical is easier clipping wise - - font/draw: need to be able to specify wrap start position. - - font/draw: better reserve policy for large horizontal block of text (shouldn't reserve for all clipped lines). also see #3349. - - font/draw: fix for drawing 16k+ visible characters in same call. - - font/draw: underline, squiggle line rendering helpers. - - font: optimization: for monospace font (like the default one) we can trim IndexXAdvance as long as trailing value is == FallbackXAdvance (need to make sure TAB is still correct), would save on cache line. - - font: add support for kerning, probably optional. A) perhaps default to (32..128)^2 matrix ~ 9K entries = 36KB, then hash for non-ascii?. B) or sparse lookup into per-char list? - - font: add a simpler CalcTextSizeA() api? current one ok but not welcome if user needs to call it directly (without going through ImGui::CalcTextSize) - - font: (api breaking) remove "TTF" from symbol names. also because it now supports OTF. - - font/opt: Considering storing standalone AdvanceX table as 16-bit fixed point integer? - - font/opt: Glyph currently 40 bytes (2+9*4). Consider storing UV as 16-bits integer? (->32 bytes). X0/Y0/X1/Y1 as 16 fixed-point integers? Or X0/Y0 as float and X1/Y1 as fixed8_8? - - - nav: some features such as PageUp/Down/Home/End should probably work without ImGuiConfigFlags_NavEnableKeyboard? (where do we draw the line? how about CTRL+Tab) - - nav: Home/End behavior when navigable item is not fully visible at the edge of scrolling? should be backtrack to keep item into view? - - nav: NavScrollToBringItemIntoView() with item bigger than view should focus top-right? Repro: using Nav in "About Window" - - nav: expose wrap around flags/logic to allow e.g. grid based layout (pressing NavRight on the right-most element would go to the next row, etc.). see internal's NavMoveRequestTryWrapping(). - - nav: patterns to make it possible for arrows key to update selection (see JustMovedTo in range_select branch) - - nav: restore/find nearest NavId when current one disappear (e.g. pressed a button that disappear, or perhaps auto restoring when current button change name) - - nav: SetItemDefaultFocus() level of priority, so widgets like Selectable when inside a popup could claim a low-priority default focus on the first selected item - - nav: holding space to repeat a button doesn't show button activated during hold. - - nav: NavFlattened: init requests don't work properly on flattened siblings. - - nav: NavFlattened: pageup/pagedown/home/end don't work properly on flattened siblings. - - nav: NavFlattened: ESC on a flattened child should select something. - - nav: NavFlattened: broken: in typical usage scenario, the items of a fully clipped child are currently not considered to enter into a NavFlattened child. - - nav: NavFlattened: cannot access menu-bar of a flattened child window with Alt/menu key (not a very common use case..). - - nav: simulate right-click or context activation? (SHIFT+F10, keyboard Menu key?) - - nav/popup: esc/enter default behavior for popups, e.g. be able to mark an "ok" or "cancel" button that would get triggered by those keys, default validation button, etc. - - nav/treenode: left within a tree node block as a fallback (ImGuiTreeNodeFlags_NavLeftJumpsBackHere by default?) - - nav/menus: pressing left-right on a vertically clipped menu bar tends to jump to the collapse/close buttons. - - nav/menus: allow pressing Menu to leave a sub-menu. - - nav/menus: a way to access the main menu bar with Alt? (currently needs CTRL+TAB) or last focused window menu bar? - - nav/menus: when using the main menu bar, even though we restore focus after, the underlying window loses its title bar highlight during menu manipulation. could we prevent it? - - nav/menus: main menu bar currently cannot restore a nullptr focus. Could save NavWindow at the time of being focused, similarly to what popup do? - - nav/menus: Alt,Up could open the first menu (e.g. "File") currently it tends to nav into the window/collapse menu. Do do that we would need custom transition? - - nav/windowing: when CTRL+Tab/windowing is active, the HoveredWindow detection doesn't take account of the window display re-ordering. - - nav/windowing: Resizing window will currently fail with certain types of resizing constraints/callback applied - - focus: preserve ActiveId/focus stack state, e.g. when opening a menu and close it, previously selected InputText() focus gets restored (#622) - - - inputs: support track pad style scrolling & slider edit. - - inputs/io: backspace and arrows in the context of a text input could use system repeat rate. - - inputs/io: clarify/standardize/expose repeat rate and repeat delays (#1808) - - inputs/scrolling: support for smooth scrolling (#2462, #2569) - - - misc: idle: expose "woken up" boolean (set by inputs) and/or animation time (for cursor blink) for backend to be able stop refreshing easily. - - misc: idle: if cursor blink if the _only_ visible animation, core imgui could rewrite vertex alpha to avoid CPU pass on ImGui:: calls. - - misc: idle: if cursor blink if the _only_ visible animation, could even expose a dirty rectangle that optionally can be leverage by some app to render in a smaller viewport, getting rid of much pixel shading cost. - - misc: no way to run a root-most GetID() with ImGui:: api since there's always a Debug window in the stack. (mentioned in #2960) - - misc: make the ImGuiCond values linear (non-power-of-two). internal storage for ImGuiWindow can use integers to combine into flags (Why?) - - misc: PushItemFlag(): add a flag to disable keyboard capture when used with mouse? (#1682) - - misc: use more size_t in public api? - - misc: support for string view/range instead of char* would e.g. facilitate usage with Rust (#683, #3038, WIP string_view branch) - - - demo: demonstrate using PushStyleVar() in more details. - - demo: add vertical separator demo - - demo: add virtual scrolling example? - - demo: demonstrate Plot offset - - demo: window size constraint: square demo is broken when resizing from edges (#1975), would need to rework the callback system to solve this - - - examples: window minimize, maximize (#583) - - examples: provide a zero frame-rate/idle example. - - examples: dx11/dx12: try to use new swapchain blit models (#2970) - - backends: report it better when not able to create texture? - - backends: glfw: could go idle when minimized? if (glfwGetWindowAttrib(window, GLFW_ICONIFIED)) { glfwWaitEvents(); continue; } // issue: DeltaTime will be super high on resume, perhaps provide a way to let impl know (#440) - - backends: opengl: rename imgui_impl_opengl2 to impl_opengl_legacy and imgui_impl_opengl3 to imgui_impl_opengl? (#1900) - - backends: opengl: could use a single vertex buffer and glBufferSubData for uploads? - - backends: opengl: explicitly disable GL_STENCIL_TEST in bindings. - - backends: vulkan: viewport: support for synchronized swapping of multiple swap chains. - - backends: bgfx: https://gist.github.com/RichardGale/6e2b74bc42b3005e08397236e4be0fd0 - - backends: emscripten: with refactored examples, we could provide a direct imgui_impl_emscripten platform layer (see eg. https://github.com/floooh/sokol-samples/blob/master/html5/imgui-emsc.cc#L42) - - - bindings: ways to use clang ast dump to generate bindings or helpers for bindings? (e.g. clang++ -Xclang -ast-dump=json imgui.h) (--> use https://github.com/dearimgui/dear_bindings) - - - optimization: replace vsnprintf with stb_printf? using IMGUI_USE_STB_SPRINTF. (#1038 + needed for string_view) - - optimization: add clipping for multi-component widgets (SliderFloatX, ColorEditX, etc.). one problem is that nav branch can't easily clip parent group when there is a move request. - - optimization: add a flag to disable most of rendering, for the case where the user expect to skip it (#335) - - optimization: fully covered window (covered by another with non-translucent bg + WindowRounding worth of padding) may want to clip rendering. - - optimization: use another hash function than crc32, e.g. FNV1a - - optimization: turn some the various stack vectors into statically-sized arrays diff --git a/libs/imgui-1.92.1/examples/README.txt b/libs/imgui-1.92.1/examples/README.txt deleted file mode 100644 index 6db2f3c..0000000 --- a/libs/imgui-1.92.1/examples/README.txt +++ /dev/null @@ -1,9 +0,0 @@ -See BACKENDS and EXAMPLES files in the docs/ folder, or on the web at: https://github.com/ocornut/imgui/tree/master/docs - -Backends = Helper code to facilitate integration with platforms/graphics api (used by Examples + should be used by your app). -Examples = Standalone applications showcasing integration with platforms/graphics api. - -Some Examples have extra README files in their respective directory, please check them too! - -Once Dear ImGui is running (in either examples or your own application/game/engine), -run and refer to ImGui::ShowDemoWindow() in imgui_demo.cpp for the end-user API. diff --git a/libs/imgui-1.92.1/examples/example_allegro5/README.md b/libs/imgui-1.92.1/examples/example_allegro5/README.md deleted file mode 100644 index 940b47f..0000000 --- a/libs/imgui-1.92.1/examples/example_allegro5/README.md +++ /dev/null @@ -1,36 +0,0 @@ - -# Configuration - -Dear ImGui outputs 16-bit vertex indices by default. -Allegro doesn't support them natively, so we have two solutions: convert the indices manually in imgui_impl_allegro5.cpp, or compile dear imgui with 32-bit indices. -You can either modify imconfig.h that comes with Dear ImGui (easier), or set a C++ preprocessor option IMGUI_USER_CONFIG to find to a filename. -We are providing `imconfig_allegro5.h` that enables 32-bit indices. -Note that the backend supports _BOTH_ 16-bit and 32-bit indices, but 32-bit indices will be slightly faster as they won't require a manual conversion. - -# How to Build - -### On Ubuntu 14.04+ and macOS - -```bash -g++ -DIMGUI_USER_CONFIG=\"examples/example_allegro5/imconfig_allegro5.h\" -I .. -I ../.. -I ../../backends main.cpp ../../backends/imgui_impl_allegro5.cpp ../../imgui*.cpp -lallegro -lallegro_main -lallegro_primitives -o allegro5_example -``` - -On macOS, install Allegro with homebrew: `brew install allegro`. - -### On Windows with Visual Studio's CLI - -You may install Allegro using vcpkg: -``` -git clone https://github.com/Microsoft/vcpkg -cd vcpkg -bootstrap-vcpkg.bat -vcpkg install allegro5 --triplet=x86-windows ; for win32 -vcpkg install allegro5 --triplet=x64-windows ; for win64 -vcpkg integrate install ; register include / libs in Visual Studio -``` - -Build: -``` -set ALLEGRODIR=path_to_your_allegro5_folder -cl /Zi /MD /utf-8 /I %ALLEGRODIR%\include /DIMGUI_USER_CONFIG=\"examples/example_allegro5/imconfig_allegro5.h\" /I .. /I ..\.. /I ..\..\backends main.cpp ..\..\backends\imgui_impl_allegro5.cpp ..\..\imgui*.cpp /link /LIBPATH:%ALLEGRODIR%\lib allegro-5.0.10-monolith-md.lib user32.lib -``` diff --git a/libs/imgui-1.92.1/examples/example_allegro5/example_allegro5.vcxproj b/libs/imgui-1.92.1/examples/example_allegro5/example_allegro5.vcxproj deleted file mode 100644 index 02f6a47..0000000 --- a/libs/imgui-1.92.1/examples/example_allegro5/example_allegro5.vcxproj +++ /dev/null @@ -1,185 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {73F235B5-7D31-4FC6-8682-DDC5A097B9C1} - example_allegro5 - 8.1 - - - - Application - true - MultiByte - v140 - - - Application - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - - Level4 - Disabled - ..\..;..\..\backends;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - %(AdditionalLibraryDirectories) - opengl32.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - Disabled - ..\..;..\..\backends;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - %(AdditionalLibraryDirectories) - opengl32.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - %(AdditionalLibraryDirectories) - opengl32.lib;%(AdditionalDependencies) - Console - - - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - %(AdditionalLibraryDirectories) - opengl32.lib;%(AdditionalDependencies) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_allegro5/example_allegro5.vcxproj.filters b/libs/imgui-1.92.1/examples/example_allegro5/example_allegro5.vcxproj.filters deleted file mode 100644 index 84881d3..0000000 --- a/libs/imgui-1.92.1/examples/example_allegro5/example_allegro5.vcxproj.filters +++ /dev/null @@ -1,61 +0,0 @@ - - - - - {20b90ce4-7fcb-4731-b9a0-075f875de82d} - - - {f18ab499-84e1-499f-8eff-9754361e0e52} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - sources - - - imgui - - - imgui - - - - - imgui - - - imgui - - - imgui - - - sources - - - - - - imgui - - - imgui - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_allegro5/imconfig_allegro5.h b/libs/imgui-1.92.1/examples/example_allegro5/imconfig_allegro5.h deleted file mode 100644 index 35afa67..0000000 --- a/libs/imgui-1.92.1/examples/example_allegro5/imconfig_allegro5.h +++ /dev/null @@ -1,11 +0,0 @@ -//----------------------------------------------------------------------------- -// COMPILE-TIME OPTIONS FOR DEAR IMGUI ALLEGRO 5 EXAMPLE -// See imconfig.h for the full template -// Because Allegro doesn't support 16-bit vertex indices, we enable the compile-time option of imgui to use 32-bit indices -//----------------------------------------------------------------------------- - -#pragma once - -// Use 32-bit vertex indices because Allegro doesn't support 16-bit ones -// This allows us to avoid converting vertices format at runtime -#define ImDrawIdx int diff --git a/libs/imgui-1.92.1/examples/example_allegro5/main.cpp b/libs/imgui-1.92.1/examples/example_allegro5/main.cpp deleted file mode 100644 index 02db84a..0000000 --- a/libs/imgui-1.92.1/examples/example_allegro5/main.cpp +++ /dev/null @@ -1,149 +0,0 @@ -// Dear ImGui: standalone example application for Allegro 5 - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// On Windows, you can install Allegro5 using vcpkg: -// git clone https://github.com/Microsoft/vcpkg -// cd vcpkg -// bootstrap - vcpkg.bat -// vcpkg install allegro5 --triplet=x86-windows ; for win32 -// vcpkg install allegro5 --triplet=x64-windows ; for win64 -// vcpkg integrate install ; register include and libs in Visual Studio - -#include -#include -#include -#include "imgui.h" -#include "imgui_impl_allegro5.h" - -int main(int, char**) -{ - // Setup Allegro - al_init(); - al_install_keyboard(); - al_install_mouse(); - al_init_primitives_addon(); - al_set_new_display_flags(ALLEGRO_RESIZABLE); - ALLEGRO_DISPLAY* display = al_create_display(1280, 720); - al_set_window_title(display, "Dear ImGui Allegro 5 example"); - ALLEGRO_EVENT_QUEUE* queue = al_create_event_queue(); - al_register_event_source(queue, al_get_display_event_source(display)); - al_register_event_source(queue, al_get_keyboard_event_source()); - al_register_event_source(queue, al_get_mouse_event_source()); - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup Platform/Renderer backends - ImGui_ImplAllegro5_Init(display); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop - bool running = true; - while (running) - { - // Poll and handle events (inputs, window resize, etc.) - // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. - // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. - // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. - // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. - ALLEGRO_EVENT ev; - while (al_get_next_event(queue, &ev)) - { - ImGui_ImplAllegro5_ProcessEvent(&ev); - if (ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE) - running = false; - if (ev.type == ALLEGRO_EVENT_DISPLAY_RESIZE) - { - ImGui_ImplAllegro5_InvalidateDeviceObjects(); - al_acknowledge_resize(display); - ImGui_ImplAllegro5_CreateDeviceObjects(); - } - } - - // Start the Dear ImGui frame - ImGui_ImplAllegro5_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - al_clear_to_color(al_map_rgba_f(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w)); - ImGui_ImplAllegro5_RenderDrawData(ImGui::GetDrawData()); - al_flip_display(); - } - - // Cleanup - ImGui_ImplAllegro5_Shutdown(); - ImGui::DestroyContext(); - al_destroy_event_queue(queue); - al_destroy_display(display); - - return 0; -} diff --git a/libs/imgui-1.92.1/examples/example_android_opengl3/CMakeLists.txt b/libs/imgui-1.92.1/examples/example_android_opengl3/CMakeLists.txt deleted file mode 100644 index 63531f4..0000000 --- a/libs/imgui-1.92.1/examples/example_android_opengl3/CMakeLists.txt +++ /dev/null @@ -1,40 +0,0 @@ -cmake_minimum_required(VERSION 3.6) - -project(ImGuiExample) - -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_EXTENSIONS OFF) - -add_library(${CMAKE_PROJECT_NAME} SHARED - ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui_demo.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui_draw.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui_tables.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui_widgets.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/../../backends/imgui_impl_android.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/../../backends/imgui_impl_opengl3.cpp - ${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c -) - -set(CMAKE_SHARED_LINKER_FLAGS - "${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate" -) - -target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE - IMGUI_IMPL_OPENGL_ES3 -) - -target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/../.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../backends - ${ANDROID_NDK}/sources/android/native_app_glue -) - -target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE - android - EGL - GLESv3 - log -) diff --git a/libs/imgui-1.92.1/examples/example_android_opengl3/android/.gitignore b/libs/imgui-1.92.1/examples/example_android_opengl3/android/.gitignore deleted file mode 100644 index 3c7a619..0000000 --- a/libs/imgui-1.92.1/examples/example_android_opengl3/android/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -.cxx -.externalNativeBuild -build/ -*.iml - -.idea -.gradle -local.properties - -# Android Studio puts a Gradle wrapper here, that we don't want: -gradle/ -gradlew* diff --git a/libs/imgui-1.92.1/examples/example_android_opengl3/android/app/build.gradle b/libs/imgui-1.92.1/examples/example_android_opengl3/android/app/build.gradle deleted file mode 100644 index 3a68c83..0000000 --- a/libs/imgui-1.92.1/examples/example_android_opengl3/android/app/build.gradle +++ /dev/null @@ -1,46 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' - -android { - compileSdkVersion 33 - buildToolsVersion "33.0.2" - ndkVersion "25.2.9519653" - - defaultConfig { - applicationId "imgui.example.android" - namespace "imgui.example.android" - minSdkVersion 24 - targetSdkVersion 33 - versionCode 1 - versionName "1.0" - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt') - } - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 - } - - kotlinOptions { - jvmTarget="11" - } - - externalNativeBuild { - cmake { - path "../../CMakeLists.txt" - version '3.22.1' - } - } -} -repositories { - mavenCentral() -} -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" -} diff --git a/libs/imgui-1.92.1/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml b/libs/imgui-1.92.1/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index 5a1e2d9..0000000 --- a/libs/imgui-1.92.1/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/libs/imgui-1.92.1/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt b/libs/imgui-1.92.1/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt deleted file mode 100644 index 896a88c..0000000 --- a/libs/imgui-1.92.1/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt +++ /dev/null @@ -1,40 +0,0 @@ -package imgui.example.android - -import android.app.NativeActivity -import android.os.Bundle -import android.content.Context -import android.view.inputmethod.InputMethodManager -import android.view.KeyEvent -import java.util.concurrent.LinkedBlockingQueue - -class MainActivity : NativeActivity() { - public override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - } - - fun showSoftInput() { - val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager - inputMethodManager.showSoftInput(this.window.decorView, 0) - } - - fun hideSoftInput() { - val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager - inputMethodManager.hideSoftInputFromWindow(this.window.decorView.windowToken, 0) - } - - // Queue for the Unicode characters to be polled from native code (via pollUnicodeChar()) - private var unicodeCharacterQueue: LinkedBlockingQueue = LinkedBlockingQueue() - - // We assume dispatchKeyEvent() of the NativeActivity is actually called for every - // KeyEvent and not consumed by any View before it reaches here - override fun dispatchKeyEvent(event: KeyEvent): Boolean { - if (event.action == KeyEvent.ACTION_DOWN) { - unicodeCharacterQueue.offer(event.getUnicodeChar(event.metaState)) - } - return super.dispatchKeyEvent(event) - } - - fun pollUnicodeChar(): Int { - return unicodeCharacterQueue.poll() ?: 0 - } -} diff --git a/libs/imgui-1.92.1/examples/example_android_opengl3/android/build.gradle b/libs/imgui-1.92.1/examples/example_android_opengl3/android/build.gradle deleted file mode 100644 index ccd2185..0000000 --- a/libs/imgui-1.92.1/examples/example_android_opengl3/android/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -buildscript { - ext.kotlin_version = '1.8.0' - repositories { - google() - mavenCentral() - - } - dependencies { - classpath 'com.android.tools.build:gradle:7.4.1' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - - } -} - -allprojects { - repositories { - google() - mavenCentral() - } -} - -task clean(type: Delete) { - delete rootProject.buildDir -} diff --git a/libs/imgui-1.92.1/examples/example_android_opengl3/android/settings.gradle b/libs/imgui-1.92.1/examples/example_android_opengl3/android/settings.gradle deleted file mode 100644 index e7b4def..0000000 --- a/libs/imgui-1.92.1/examples/example_android_opengl3/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -include ':app' diff --git a/libs/imgui-1.92.1/examples/example_android_opengl3/main.cpp b/libs/imgui-1.92.1/examples/example_android_opengl3/main.cpp deleted file mode 100644 index 452cb77..0000000 --- a/libs/imgui-1.92.1/examples/example_android_opengl3/main.cpp +++ /dev/null @@ -1,382 +0,0 @@ -// dear imgui: standalone example application for Android + OpenGL ES 3 - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#include "imgui.h" -#include "imgui_impl_android.h" -#include "imgui_impl_opengl3.h" -#include -#include -#include -#include -#include -#include - -// Data -static EGLDisplay g_EglDisplay = EGL_NO_DISPLAY; -static EGLSurface g_EglSurface = EGL_NO_SURFACE; -static EGLContext g_EglContext = EGL_NO_CONTEXT; -static struct android_app* g_App = nullptr; -static bool g_Initialized = false; -static char g_LogTag[] = "ImGuiExample"; -static std::string g_IniFilename = ""; - -// Forward declarations of helper functions -static void Init(struct android_app* app); -static void Shutdown(); -static void MainLoopStep(); -static int ShowSoftKeyboardInput(); -static int PollUnicodeChars(); -static int GetAssetData(const char* filename, void** out_data); - -// Main code -static void handleAppCmd(struct android_app* app, int32_t appCmd) -{ - switch (appCmd) - { - case APP_CMD_SAVE_STATE: - break; - case APP_CMD_INIT_WINDOW: - Init(app); - break; - case APP_CMD_TERM_WINDOW: - Shutdown(); - break; - case APP_CMD_GAINED_FOCUS: - case APP_CMD_LOST_FOCUS: - break; - } -} - -static int32_t handleInputEvent(struct android_app* app, AInputEvent* inputEvent) -{ - return ImGui_ImplAndroid_HandleInputEvent(inputEvent); -} - -void android_main(struct android_app* app) -{ - app->onAppCmd = handleAppCmd; - app->onInputEvent = handleInputEvent; - - while (true) - { - int out_events; - struct android_poll_source* out_data; - - // Poll all events. If the app is not visible, this loop blocks until g_Initialized == true. - while (ALooper_pollOnce(g_Initialized ? 0 : -1, nullptr, &out_events, (void**)&out_data) >= 0) - { - // Process one event - if (out_data != nullptr) - out_data->process(app, out_data); - - // Exit the app by returning from within the infinite loop - if (app->destroyRequested != 0) - { - // shutdown() should have been called already while processing the - // app command APP_CMD_TERM_WINDOW. But we play save here - if (!g_Initialized) - Shutdown(); - - return; - } - } - - // Initiate a new frame - MainLoopStep(); - } -} - -void Init(struct android_app* app) -{ - if (g_Initialized) - return; - - g_App = app; - ANativeWindow_acquire(g_App->window); - - // Initialize EGL - // This is mostly boilerplate code for EGL... - { - g_EglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY); - if (g_EglDisplay == EGL_NO_DISPLAY) - __android_log_print(ANDROID_LOG_ERROR, g_LogTag, "%s", "eglGetDisplay(EGL_DEFAULT_DISPLAY) returned EGL_NO_DISPLAY"); - - if (eglInitialize(g_EglDisplay, 0, 0) != EGL_TRUE) - __android_log_print(ANDROID_LOG_ERROR, g_LogTag, "%s", "eglInitialize() returned with an error"); - - const EGLint egl_attributes[] = { EGL_BLUE_SIZE, 8, EGL_GREEN_SIZE, 8, EGL_RED_SIZE, 8, EGL_DEPTH_SIZE, 24, EGL_SURFACE_TYPE, EGL_WINDOW_BIT, EGL_NONE }; - EGLint num_configs = 0; - if (eglChooseConfig(g_EglDisplay, egl_attributes, nullptr, 0, &num_configs) != EGL_TRUE) - __android_log_print(ANDROID_LOG_ERROR, g_LogTag, "%s", "eglChooseConfig() returned with an error"); - if (num_configs == 0) - __android_log_print(ANDROID_LOG_ERROR, g_LogTag, "%s", "eglChooseConfig() returned 0 matching config"); - - // Get the first matching config - EGLConfig egl_config; - eglChooseConfig(g_EglDisplay, egl_attributes, &egl_config, 1, &num_configs); - EGLint egl_format; - eglGetConfigAttrib(g_EglDisplay, egl_config, EGL_NATIVE_VISUAL_ID, &egl_format); - ANativeWindow_setBuffersGeometry(g_App->window, 0, 0, egl_format); - - const EGLint egl_context_attributes[] = { EGL_CONTEXT_CLIENT_VERSION, 3, EGL_NONE }; - g_EglContext = eglCreateContext(g_EglDisplay, egl_config, EGL_NO_CONTEXT, egl_context_attributes); - - if (g_EglContext == EGL_NO_CONTEXT) - __android_log_print(ANDROID_LOG_ERROR, g_LogTag, "%s", "eglCreateContext() returned EGL_NO_CONTEXT"); - - g_EglSurface = eglCreateWindowSurface(g_EglDisplay, egl_config, g_App->window, nullptr); - eglMakeCurrent(g_EglDisplay, g_EglSurface, g_EglSurface, g_EglContext); - } - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); - - // Redirect loading/saving of .ini file to our location. - // Make sure 'g_IniFilename' persists while we use Dear ImGui. - g_IniFilename = std::string(app->activity->internalDataPath) + "/imgui.ini"; - io.IniFilename = g_IniFilename.c_str();; - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup Platform/Renderer backends - ImGui_ImplAndroid_Init(g_App->window); - ImGui_ImplOpenGL3_Init("#version 300 es"); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - // - Android: The TTF files have to be placed into the assets/ directory (android/app/src/main/assets), we use our GetAssetData() helper to retrieve them. - - // We load the default font with increased size to improve readability on many devices with "high" DPI. - // FIXME: Put some effort into DPI awareness. - // Important: when calling AddFontFromMemoryTTF(), ownership of font_data is transferred by Dear ImGui by default (deleted is handled by Dear ImGui), unless we set FontDataOwnedByAtlas=false in ImFontConfig - ImFontConfig font_cfg; - font_cfg.SizePixels = 22.0f; - io.Fonts->AddFontDefault(&font_cfg); - //void* font_data; - //int font_data_size; - //ImFont* font; - //font_data_size = GetAssetData("segoeui.ttf", &font_data); - //font = io.Fonts->AddFontFromMemoryTTF(font_data, font_data_size, 16.0f); - //IM_ASSERT(font != nullptr); - //font_data_size = GetAssetData("DroidSans.ttf", &font_data); - //font = io.Fonts->AddFontFromMemoryTTF(font_data, font_data_size, 16.0f); - //IM_ASSERT(font != nullptr); - //font_data_size = GetAssetData("Roboto-Medium.ttf", &font_data); - //font = io.Fonts->AddFontFromMemoryTTF(font_data, font_data_size, 16.0f); - //IM_ASSERT(font != nullptr); - //font_data_size = GetAssetData("Cousine-Regular.ttf", &font_data); - //font = io.Fonts->AddFontFromMemoryTTF(font_data, font_data_size, 15.0f); - //IM_ASSERT(font != nullptr); - //font_data_size = GetAssetData("ArialUni.ttf", &font_data); - //font = io.Fonts->AddFontFromMemoryTTF(font_data, font_data_size, 18.0f); - //IM_ASSERT(font != nullptr); - - // Arbitrary scale-up - // FIXME: Put some effort into DPI awareness - ImGui::GetStyle().ScaleAllSizes(3.0f); - - g_Initialized = true; -} - -void MainLoopStep() -{ - ImGuiIO& io = ImGui::GetIO(); - if (g_EglDisplay == EGL_NO_DISPLAY) - return; - - // Our state - // (we use static, which essentially makes the variable globals, as a convenience to keep the example code easy to follow) - static bool show_demo_window = true; - static bool show_another_window = false; - static ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Poll Unicode characters via JNI - // FIXME: do not call this every frame because of JNI overhead - PollUnicodeChars(); - - // Open on-screen (soft) input if requested by Dear ImGui - static bool WantTextInputLast = false; - if (io.WantTextInput && !WantTextInputLast) - ShowSoftKeyboardInput(); - WantTextInputLast = io.WantTextInput; - - // Start the Dear ImGui frame - ImGui_ImplOpenGL3_NewFrame(); - ImGui_ImplAndroid_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - glViewport(0, 0, (int)io.DisplaySize.x, (int)io.DisplaySize.y); - glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w); - glClear(GL_COLOR_BUFFER_BIT); - ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData()); - eglSwapBuffers(g_EglDisplay, g_EglSurface); -} - -void Shutdown() -{ - if (!g_Initialized) - return; - - // Cleanup - ImGui_ImplOpenGL3_Shutdown(); - ImGui_ImplAndroid_Shutdown(); - ImGui::DestroyContext(); - - if (g_EglDisplay != EGL_NO_DISPLAY) - { - eglMakeCurrent(g_EglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); - - if (g_EglContext != EGL_NO_CONTEXT) - eglDestroyContext(g_EglDisplay, g_EglContext); - - if (g_EglSurface != EGL_NO_SURFACE) - eglDestroySurface(g_EglDisplay, g_EglSurface); - - eglTerminate(g_EglDisplay); - } - - g_EglDisplay = EGL_NO_DISPLAY; - g_EglContext = EGL_NO_CONTEXT; - g_EglSurface = EGL_NO_SURFACE; - ANativeWindow_release(g_App->window); - - g_Initialized = false; -} - -// Helper functions - -// Unfortunately, there is no way to show the on-screen input from native code. -// Therefore, we call ShowSoftKeyboardInput() of the main activity implemented in MainActivity.kt via JNI. -static int ShowSoftKeyboardInput() -{ - JavaVM* java_vm = g_App->activity->vm; - JNIEnv* java_env = nullptr; - - jint jni_return = java_vm->GetEnv((void**)&java_env, JNI_VERSION_1_6); - if (jni_return == JNI_ERR) - return -1; - - jni_return = java_vm->AttachCurrentThread(&java_env, nullptr); - if (jni_return != JNI_OK) - return -2; - - jclass native_activity_clazz = java_env->GetObjectClass(g_App->activity->clazz); - if (native_activity_clazz == nullptr) - return -3; - - jmethodID method_id = java_env->GetMethodID(native_activity_clazz, "showSoftInput", "()V"); - if (method_id == nullptr) - return -4; - - java_env->CallVoidMethod(g_App->activity->clazz, method_id); - - jni_return = java_vm->DetachCurrentThread(); - if (jni_return != JNI_OK) - return -5; - - return 0; -} - -// Unfortunately, the native KeyEvent implementation has no getUnicodeChar() function. -// Therefore, we implement the processing of KeyEvents in MainActivity.kt and poll -// the resulting Unicode characters here via JNI and send them to Dear ImGui. -static int PollUnicodeChars() -{ - JavaVM* java_vm = g_App->activity->vm; - JNIEnv* java_env = nullptr; - - jint jni_return = java_vm->GetEnv((void**)&java_env, JNI_VERSION_1_6); - if (jni_return == JNI_ERR) - return -1; - - jni_return = java_vm->AttachCurrentThread(&java_env, nullptr); - if (jni_return != JNI_OK) - return -2; - - jclass native_activity_clazz = java_env->GetObjectClass(g_App->activity->clazz); - if (native_activity_clazz == nullptr) - return -3; - - jmethodID method_id = java_env->GetMethodID(native_activity_clazz, "pollUnicodeChar", "()I"); - if (method_id == nullptr) - return -4; - - // Send the actual characters to Dear ImGui - ImGuiIO& io = ImGui::GetIO(); - jint unicode_character; - while ((unicode_character = java_env->CallIntMethod(g_App->activity->clazz, method_id)) != 0) - io.AddInputCharacter(unicode_character); - - jni_return = java_vm->DetachCurrentThread(); - if (jni_return != JNI_OK) - return -5; - - return 0; -} - -// Helper to retrieve data placed into the assets/ directory (android/app/src/main/assets) -static int GetAssetData(const char* filename, void** outData) -{ - int num_bytes = 0; - AAsset* asset_descriptor = AAssetManager_open(g_App->activity->assetManager, filename, AASSET_MODE_BUFFER); - if (asset_descriptor) - { - num_bytes = AAsset_getLength(asset_descriptor); - *outData = IM_ALLOC(num_bytes); - int64_t num_bytes_read = AAsset_read(asset_descriptor, *outData, num_bytes); - AAsset_close(asset_descriptor); - IM_ASSERT(num_bytes_read == num_bytes); - } - return num_bytes; -} diff --git a/libs/imgui-1.92.1/examples/example_apple_metal/Makefile b/libs/imgui-1.92.1/examples/example_apple_metal/Makefile deleted file mode 100644 index 9412c9b..0000000 --- a/libs/imgui-1.92.1/examples/example_apple_metal/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for example_apple_metal, for macOS only (**not iOS**) -CXX = clang++ -EXE = example_apple_metal -IMGUI_DIR = ../../ -SOURCES = main.mm -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_osx.mm $(IMGUI_DIR)/backends/imgui_impl_metal.mm - -CXXFLAGS = -std=c++11 -ObjC++ -fobjc-arc -Wall -Wextra -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -FRAMEWORKS = -framework AppKit -framework Metal -framework MetalKit -framework QuartzCore -framework GameController - -all: $(EXE) - -$(EXE): $(SOURCES) - $(CXX) $(CXXFLAGS) $^ $(FRAMEWORKS) -o $@ - -run: all - ./$(EXE) - -clean: - rm -f $(EXE) *.o diff --git a/libs/imgui-1.92.1/examples/example_apple_metal/README.md b/libs/imgui-1.92.1/examples/example_apple_metal/README.md deleted file mode 100644 index 48a2b57..0000000 --- a/libs/imgui-1.92.1/examples/example_apple_metal/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# iOS / OSX Metal example - -## Introduction - -This example shows how to integrate Dear ImGui with Metal. It is based on the "cross-platform" game template provided with Xcode as of Xcode 9. - -Consider basing your work off the example_glfw_metal/ or example_sdl2_metal/ examples. They are better supported and will be portable unlike this one. - - - diff --git a/libs/imgui-1.92.1/examples/example_apple_metal/example_apple_metal.xcodeproj/project.pbxproj b/libs/imgui-1.92.1/examples/example_apple_metal/example_apple_metal.xcodeproj/project.pbxproj deleted file mode 100644 index bf3c80d..0000000 --- a/libs/imgui-1.92.1/examples/example_apple_metal/example_apple_metal.xcodeproj/project.pbxproj +++ /dev/null @@ -1,522 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 54; - objects = { - -/* Begin PBXBuildFile section */ - 05318E0F274C397200A8DE2E /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05318E0E274C397200A8DE2E /* GameController.framework */; }; - 07A82ED82139413D0078D120 /* imgui_widgets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07A82ED72139413C0078D120 /* imgui_widgets.cpp */; }; - 07A82ED92139418F0078D120 /* imgui_widgets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07A82ED72139413C0078D120 /* imgui_widgets.cpp */; }; - 5079822E257677DB0038A28D /* imgui_tables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5079822D257677DB0038A28D /* imgui_tables.cpp */; }; - 8309BD8F253CCAAA0045E2A1 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8309BD8E253CCAAA0045E2A1 /* UIKit.framework */; }; - 8309BDA5253CCC070045E2A1 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8309BDA0253CCBC10045E2A1 /* main.mm */; }; - 8309BDA8253CCC080045E2A1 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8309BDA0253CCBC10045E2A1 /* main.mm */; }; - 8309BDBB253CCCAD0045E2A1 /* imgui_impl_metal.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8309BDB5253CCC9D0045E2A1 /* imgui_impl_metal.mm */; }; - 8309BDBE253CCCB60045E2A1 /* imgui_impl_metal.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8309BDB5253CCC9D0045E2A1 /* imgui_impl_metal.mm */; }; - 8309BDBF253CCCB60045E2A1 /* imgui_impl_osx.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8309BDB6253CCC9D0045E2A1 /* imgui_impl_osx.mm */; }; - 8309BDC6253CCCFE0045E2A1 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8309BDC5253CCCFE0045E2A1 /* AppKit.framework */; }; - 8309BDFC253CDAB30045E2A1 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8309BDF7253CDAAE0045E2A1 /* LaunchScreen.storyboard */; }; - 8309BE04253CDAB60045E2A1 /* MainMenu.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8309BDFA253CDAAE0045E2A1 /* MainMenu.storyboard */; }; - 83BBE9E520EB46B900295997 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83BBE9E420EB46B900295997 /* Metal.framework */; }; - 83BBE9E720EB46BD00295997 /* MetalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83BBE9E620EB46BD00295997 /* MetalKit.framework */; }; - 83BBE9EC20EB471700295997 /* MetalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83BBE9EA20EB471700295997 /* MetalKit.framework */; }; - 83BBE9ED20EB471700295997 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83BBE9EB20EB471700295997 /* Metal.framework */; }; - 83BBEA0520EB54E700295997 /* imgui_draw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83BBEA0120EB54E700295997 /* imgui_draw.cpp */; }; - 83BBEA0620EB54E700295997 /* imgui_draw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83BBEA0120EB54E700295997 /* imgui_draw.cpp */; }; - 83BBEA0720EB54E700295997 /* imgui_demo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83BBEA0220EB54E700295997 /* imgui_demo.cpp */; }; - 83BBEA0820EB54E700295997 /* imgui_demo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83BBEA0220EB54E700295997 /* imgui_demo.cpp */; }; - 83BBEA0920EB54E700295997 /* imgui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83BBEA0320EB54E700295997 /* imgui.cpp */; }; - 83BBEA0A20EB54E700295997 /* imgui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83BBEA0320EB54E700295997 /* imgui.cpp */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 05318E0E274C397200A8DE2E /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; }; - 07A82ED62139413C0078D120 /* imgui_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imgui_internal.h; path = ../../imgui_internal.h; sourceTree = ""; }; - 07A82ED72139413C0078D120 /* imgui_widgets.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_widgets.cpp; path = ../../imgui_widgets.cpp; sourceTree = ""; }; - 5079822D257677DB0038A28D /* imgui_tables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_tables.cpp; path = ../../imgui_tables.cpp; sourceTree = ""; }; - 8307E7C420E9F9C900473790 /* example_apple_metal.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example_apple_metal.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 8307E7DA20E9F9C900473790 /* example_apple_metal.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example_apple_metal.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 8309BD8E253CCAAA0045E2A1 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; - 8309BDA0253CCBC10045E2A1 /* main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = ""; }; - 8309BDB5253CCC9D0045E2A1 /* imgui_impl_metal.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = imgui_impl_metal.mm; path = ../../backends/imgui_impl_metal.mm; sourceTree = ""; }; - 8309BDB6253CCC9D0045E2A1 /* imgui_impl_osx.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = imgui_impl_osx.mm; path = ../../backends/imgui_impl_osx.mm; sourceTree = ""; }; - 8309BDC5253CCCFE0045E2A1 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; - 8309BDF7253CDAAE0045E2A1 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; - 8309BDF8253CDAAE0045E2A1 /* Info-iOS.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-iOS.plist"; sourceTree = ""; }; - 8309BDFA253CDAAE0045E2A1 /* MainMenu.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = MainMenu.storyboard; sourceTree = ""; }; - 8309BDFB253CDAAE0045E2A1 /* Info-macOS.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-macOS.plist"; sourceTree = ""; }; - 83BBE9E420EB46B900295997 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.4.sdk/System/Library/Frameworks/Metal.framework; sourceTree = DEVELOPER_DIR; }; - 83BBE9E620EB46BD00295997 /* MetalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.4.sdk/System/Library/Frameworks/MetalKit.framework; sourceTree = DEVELOPER_DIR; }; - 83BBE9E820EB46C100295997 /* ModelIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ModelIO.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.4.sdk/System/Library/Frameworks/ModelIO.framework; sourceTree = DEVELOPER_DIR; }; - 83BBE9EA20EB471700295997 /* MetalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalKit.framework; path = System/Library/Frameworks/MetalKit.framework; sourceTree = SDKROOT; }; - 83BBE9EB20EB471700295997 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; - 83BBE9EE20EB471C00295997 /* ModelIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ModelIO.framework; path = System/Library/Frameworks/ModelIO.framework; sourceTree = SDKROOT; }; - 83BBEA0020EB54E700295997 /* imgui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imgui.h; path = ../../imgui.h; sourceTree = ""; }; - 83BBEA0120EB54E700295997 /* imgui_draw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_draw.cpp; path = ../../imgui_draw.cpp; sourceTree = ""; }; - 83BBEA0220EB54E700295997 /* imgui_demo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_demo.cpp; path = ../../imgui_demo.cpp; sourceTree = ""; }; - 83BBEA0320EB54E700295997 /* imgui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui.cpp; path = ../../imgui.cpp; sourceTree = ""; }; - 83BBEA0420EB54E700295997 /* imconfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imconfig.h; path = ../../imconfig.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8307E7C120E9F9C900473790 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8309BD8F253CCAAA0045E2A1 /* UIKit.framework in Frameworks */, - 83BBE9E720EB46BD00295997 /* MetalKit.framework in Frameworks */, - 83BBE9E520EB46B900295997 /* Metal.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 8307E7D720E9F9C900473790 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8309BDC6253CCCFE0045E2A1 /* AppKit.framework in Frameworks */, - 83BBE9EC20EB471700295997 /* MetalKit.framework in Frameworks */, - 05318E0F274C397200A8DE2E /* GameController.framework in Frameworks */, - 83BBE9ED20EB471700295997 /* Metal.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 8307E7B520E9F9C700473790 = { - isa = PBXGroup; - children = ( - 83BBE9F020EB544400295997 /* imgui */, - 8309BD9E253CCBA70045E2A1 /* example */, - 8307E7C520E9F9C900473790 /* Products */, - 83BBE9E320EB46B800295997 /* Frameworks */, - ); - sourceTree = ""; - }; - 8307E7C520E9F9C900473790 /* Products */ = { - isa = PBXGroup; - children = ( - 8307E7C420E9F9C900473790 /* example_apple_metal.app */, - 8307E7DA20E9F9C900473790 /* example_apple_metal.app */, - ); - name = Products; - sourceTree = ""; - }; - 8309BD9E253CCBA70045E2A1 /* example */ = { - isa = PBXGroup; - children = ( - 8309BDF6253CDAAE0045E2A1 /* iOS */, - 8309BDF9253CDAAE0045E2A1 /* macOS */, - 8309BDA0253CCBC10045E2A1 /* main.mm */, - ); - name = example; - sourceTree = ""; - }; - 8309BDF6253CDAAE0045E2A1 /* iOS */ = { - isa = PBXGroup; - children = ( - 8309BDF7253CDAAE0045E2A1 /* LaunchScreen.storyboard */, - 8309BDF8253CDAAE0045E2A1 /* Info-iOS.plist */, - ); - path = iOS; - sourceTree = ""; - }; - 8309BDF9253CDAAE0045E2A1 /* macOS */ = { - isa = PBXGroup; - children = ( - 8309BDFA253CDAAE0045E2A1 /* MainMenu.storyboard */, - 8309BDFB253CDAAE0045E2A1 /* Info-macOS.plist */, - ); - path = macOS; - sourceTree = ""; - }; - 83BBE9E320EB46B800295997 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 05318E0E274C397200A8DE2E /* GameController.framework */, - 8309BDC5253CCCFE0045E2A1 /* AppKit.framework */, - 8309BD8E253CCAAA0045E2A1 /* UIKit.framework */, - 83BBE9EE20EB471C00295997 /* ModelIO.framework */, - 83BBE9EB20EB471700295997 /* Metal.framework */, - 83BBE9EA20EB471700295997 /* MetalKit.framework */, - 83BBE9E820EB46C100295997 /* ModelIO.framework */, - 83BBE9E620EB46BD00295997 /* MetalKit.framework */, - 83BBE9E420EB46B900295997 /* Metal.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 83BBE9F020EB544400295997 /* imgui */ = { - isa = PBXGroup; - children = ( - 5079822D257677DB0038A28D /* imgui_tables.cpp */, - 8309BDB5253CCC9D0045E2A1 /* imgui_impl_metal.mm */, - 8309BDB6253CCC9D0045E2A1 /* imgui_impl_osx.mm */, - 83BBEA0420EB54E700295997 /* imconfig.h */, - 83BBEA0320EB54E700295997 /* imgui.cpp */, - 83BBEA0020EB54E700295997 /* imgui.h */, - 83BBEA0220EB54E700295997 /* imgui_demo.cpp */, - 83BBEA0120EB54E700295997 /* imgui_draw.cpp */, - 07A82ED62139413C0078D120 /* imgui_internal.h */, - 07A82ED72139413C0078D120 /* imgui_widgets.cpp */, - ); - name = imgui; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8307E7C320E9F9C900473790 /* example_apple_metal_ios */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8307E7F020E9F9C900473790 /* Build configuration list for PBXNativeTarget "example_apple_metal_ios" */; - buildPhases = ( - 8307E7C020E9F9C900473790 /* Sources */, - 8307E7C120E9F9C900473790 /* Frameworks */, - 8307E7C220E9F9C900473790 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = example_apple_metal_ios; - productName = "imguiex iOS"; - productReference = 8307E7C420E9F9C900473790 /* example_apple_metal.app */; - productType = "com.apple.product-type.application"; - }; - 8307E7D920E9F9C900473790 /* example_apple_metal_macos */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8307E7F320E9F9C900473790 /* Build configuration list for PBXNativeTarget "example_apple_metal_macos" */; - buildPhases = ( - 8307E7D620E9F9C900473790 /* Sources */, - 8307E7D720E9F9C900473790 /* Frameworks */, - 8307E7D820E9F9C900473790 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = example_apple_metal_macos; - productName = "imguiex macOS"; - productReference = 8307E7DA20E9F9C900473790 /* example_apple_metal.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 8307E7B620E9F9C700473790 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1530; - ORGANIZATIONNAME = "Warren Moore"; - TargetAttributes = { - 8307E7C320E9F9C900473790 = { - CreatedOnToolsVersion = 9.4.1; - ProvisioningStyle = Automatic; - }; - 8307E7D920E9F9C900473790 = { - CreatedOnToolsVersion = 9.4.1; - ProvisioningStyle = Automatic; - }; - }; - }; - buildConfigurationList = 8307E7B920E9F9C700473790 /* Build configuration list for PBXProject "example_apple_metal" */; - compatibilityVersion = "Xcode 8.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 8307E7B520E9F9C700473790; - productRefGroup = 8307E7C520E9F9C900473790 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8307E7C320E9F9C900473790 /* example_apple_metal_ios */, - 8307E7D920E9F9C900473790 /* example_apple_metal_macos */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8307E7C220E9F9C900473790 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8309BDFC253CDAB30045E2A1 /* LaunchScreen.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 8307E7D820E9F9C900473790 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8309BE04253CDAB60045E2A1 /* MainMenu.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8307E7C020E9F9C900473790 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8309BDBB253CCCAD0045E2A1 /* imgui_impl_metal.mm in Sources */, - 83BBEA0920EB54E700295997 /* imgui.cpp in Sources */, - 83BBEA0720EB54E700295997 /* imgui_demo.cpp in Sources */, - 83BBEA0520EB54E700295997 /* imgui_draw.cpp in Sources */, - 5079822E257677DB0038A28D /* imgui_tables.cpp in Sources */, - 07A82ED82139413D0078D120 /* imgui_widgets.cpp in Sources */, - 8309BDA5253CCC070045E2A1 /* main.mm in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 8307E7D620E9F9C900473790 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8309BDBE253CCCB60045E2A1 /* imgui_impl_metal.mm in Sources */, - 8309BDBF253CCCB60045E2A1 /* imgui_impl_osx.mm in Sources */, - 83BBEA0A20EB54E700295997 /* imgui.cpp in Sources */, - 83BBEA0820EB54E700295997 /* imgui_demo.cpp in Sources */, - 83BBEA0620EB54E700295997 /* imgui_draw.cpp in Sources */, - 5079822E257677DB0038A28D /* imgui_tables.cpp in Sources */, - 07A82ED92139418F0078D120 /* imgui_widgets.cpp in Sources */, - 8309BDA8253CCC080045E2A1 /* main.mm in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 8307E7EE20E9F9C900473790 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - }; - name = Debug; - }; - 8307E7EF20E9F9C900473790 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MTL_ENABLE_DEBUG_INFO = NO; - }; - name = Release; - }; - 8307E7F120E9F9C900473790 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ""; - INFOPLIST_FILE = "$(SRCROOT)/iOS/Info-iOS.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "org.imgui.example.apple-metal-ios"; - PRODUCT_NAME = example_apple_metal; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../**"; - }; - name = Debug; - }; - 8307E7F220E9F9C900473790 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ""; - INFOPLIST_FILE = "$(SRCROOT)/iOS/Info-iOS.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "org.imgui.example.apple-metal-ios"; - PRODUCT_NAME = example_apple_metal; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../**"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 8307E7F420E9F9C900473790 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "-"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = ""; - INFOPLIST_FILE = "$(SRCROOT)/macOS/Info-macOS.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.imgui.example.apple-metal-macos"; - PRODUCT_NAME = example_apple_metal; - SDKROOT = macosx; - USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../**"; - }; - name = Debug; - }; - 8307E7F520E9F9C900473790 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "-"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = ""; - INFOPLIST_FILE = "$(SRCROOT)/macOS/Info-macOS.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.imgui.example.apple-metal-macos"; - PRODUCT_NAME = example_apple_metal; - SDKROOT = macosx; - USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../**"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 8307E7B920E9F9C700473790 /* Build configuration list for PBXProject "example_apple_metal" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8307E7EE20E9F9C900473790 /* Debug */, - 8307E7EF20E9F9C900473790 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 8307E7F020E9F9C900473790 /* Build configuration list for PBXNativeTarget "example_apple_metal_ios" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8307E7F120E9F9C900473790 /* Debug */, - 8307E7F220E9F9C900473790 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 8307E7F320E9F9C900473790 /* Build configuration list for PBXNativeTarget "example_apple_metal_macos" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8307E7F420E9F9C900473790 /* Debug */, - 8307E7F520E9F9C900473790 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 8307E7B620E9F9C700473790 /* Project object */; -} diff --git a/libs/imgui-1.92.1/examples/example_apple_metal/iOS/Info-iOS.plist b/libs/imgui-1.92.1/examples/example_apple_metal/iOS/Info-iOS.plist deleted file mode 100644 index 93ef078..0000000 --- a/libs/imgui-1.92.1/examples/example_apple_metal/iOS/Info-iOS.plist +++ /dev/null @@ -1,49 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - imgui - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - metal - - UIRequiresFullScreen - - UIStatusBarHidden - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - UIInterfaceOrientationPortraitUpsideDown - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/libs/imgui-1.92.1/examples/example_apple_metal/iOS/LaunchScreen.storyboard b/libs/imgui-1.92.1/examples/example_apple_metal/iOS/LaunchScreen.storyboard deleted file mode 100644 index 12c52cf..0000000 --- a/libs/imgui-1.92.1/examples/example_apple_metal/iOS/LaunchScreen.storyboard +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/libs/imgui-1.92.1/examples/example_apple_metal/macOS/Info-macOS.plist b/libs/imgui-1.92.1/examples/example_apple_metal/macOS/Info-macOS.plist deleted file mode 100644 index 6f4a2b2..0000000 --- a/libs/imgui-1.92.1/examples/example_apple_metal/macOS/Info-macOS.plist +++ /dev/null @@ -1,30 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIconFile - - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - imgui - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSMinimumSystemVersion - $(MACOSX_DEPLOYMENT_TARGET) - NSMainStoryboardFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/libs/imgui-1.92.1/examples/example_apple_metal/macOS/MainMenu.storyboard b/libs/imgui-1.92.1/examples/example_apple_metal/macOS/MainMenu.storyboard deleted file mode 100644 index 38ad432..0000000 --- a/libs/imgui-1.92.1/examples/example_apple_metal/macOS/MainMenu.storyboard +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/libs/imgui-1.92.1/examples/example_apple_metal/main.mm b/libs/imgui-1.92.1/examples/example_apple_metal/main.mm deleted file mode 100644 index 301a2b4..0000000 --- a/libs/imgui-1.92.1/examples/example_apple_metal/main.mm +++ /dev/null @@ -1,348 +0,0 @@ -// Dear ImGui: standalone example application for OSX + Metal. - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#import - -#if TARGET_OS_OSX -#import -#else -#import -#endif - -#import -#import - -#include "imgui.h" -#include "imgui_impl_metal.h" -#if TARGET_OS_OSX -#include "imgui_impl_osx.h" -@interface AppViewController : NSViewController -@end -#else -@interface AppViewController : UIViewController -@end -#endif - -@interface AppViewController () -@property (nonatomic, readonly) MTKView *mtkView; -@property (nonatomic, strong) id device; -@property (nonatomic, strong) id commandQueue; -@end - -//----------------------------------------------------------------------------------- -// AppViewController -//----------------------------------------------------------------------------------- - -@implementation AppViewController - --(instancetype)initWithNibName:(nullable NSString *)nibNameOrNil bundle:(nullable NSBundle *)nibBundleOrNil -{ - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; - - _device = MTLCreateSystemDefaultDevice(); - _commandQueue = [_device newCommandQueue]; - - if (!self.device) - { - NSLog(@"Metal is not supported"); - abort(); - } - - // Setup Dear ImGui context - // FIXME: This example doesn't have proper cleanup... - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup Renderer backend - ImGui_ImplMetal_Init(_device); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - return self; -} - --(MTKView *)mtkView -{ - return (MTKView *)self.view; -} - --(void)loadView -{ - self.view = [[MTKView alloc] initWithFrame:CGRectMake(0, 0, 1200, 720)]; -} - --(void)viewDidLoad -{ - [super viewDidLoad]; - - self.mtkView.device = self.device; - self.mtkView.delegate = self; - -#if TARGET_OS_OSX - ImGui_ImplOSX_Init(self.view); - [NSApp activateIgnoringOtherApps:YES]; -#endif -} - --(void)drawInMTKView:(MTKView*)view -{ - ImGuiIO& io = ImGui::GetIO(); - io.DisplaySize.x = view.bounds.size.width; - io.DisplaySize.y = view.bounds.size.height; - -#if TARGET_OS_OSX - CGFloat framebufferScale = view.window.screen.backingScaleFactor ?: NSScreen.mainScreen.backingScaleFactor; -#else - CGFloat framebufferScale = view.window.screen.scale ?: UIScreen.mainScreen.scale; -#endif - io.DisplayFramebufferScale = ImVec2(framebufferScale, framebufferScale); - - id commandBuffer = [self.commandQueue commandBuffer]; - - MTLRenderPassDescriptor* renderPassDescriptor = view.currentRenderPassDescriptor; - if (renderPassDescriptor == nil) - { - [commandBuffer commit]; - return; - } - - // Start the Dear ImGui frame - ImGui_ImplMetal_NewFrame(renderPassDescriptor); -#if TARGET_OS_OSX - ImGui_ImplOSX_NewFrame(view); -#endif - ImGui::NewFrame(); - - // Our state (make them static = more or less global) as a convenience to keep the example terse. - static bool show_demo_window = true; - static bool show_another_window = false; - static ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - ImDrawData* draw_data = ImGui::GetDrawData(); - - renderPassDescriptor.colorAttachments[0].clearColor = MTLClearColorMake(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w); - id renderEncoder = [commandBuffer renderCommandEncoderWithDescriptor:renderPassDescriptor]; - [renderEncoder pushDebugGroup:@"Dear ImGui rendering"]; - ImGui_ImplMetal_RenderDrawData(draw_data, commandBuffer, renderEncoder); - [renderEncoder popDebugGroup]; - [renderEncoder endEncoding]; - - // Present - [commandBuffer presentDrawable:view.currentDrawable]; - [commandBuffer commit]; -} - --(void)mtkView:(MTKView*)view drawableSizeWillChange:(CGSize)size -{ -} - -//----------------------------------------------------------------------------------- -// Input processing -//----------------------------------------------------------------------------------- - -#if TARGET_OS_OSX - -- (void)viewWillAppear -{ - [super viewWillAppear]; - self.view.window.delegate = self; -} - -- (void)windowWillClose:(NSNotification *)notification -{ - ImGui_ImplMetal_Shutdown(); - ImGui_ImplOSX_Shutdown(); - ImGui::DestroyContext(); -} - -#else - -// This touch mapping is super cheesy/hacky. We treat any touch on the screen -// as if it were a depressed left mouse button, and we don't bother handling -// multitouch correctly at all. This causes the "cursor" to behave very erratically -// when there are multiple active touches. But for demo purposes, single-touch -// interaction actually works surprisingly well. --(void)updateIOWithTouchEvent:(UIEvent *)event -{ - UITouch *anyTouch = event.allTouches.anyObject; - CGPoint touchLocation = [anyTouch locationInView:self.view]; - ImGuiIO &io = ImGui::GetIO(); - io.AddMouseSourceEvent(ImGuiMouseSource_TouchScreen); - io.AddMousePosEvent(touchLocation.x, touchLocation.y); - - BOOL hasActiveTouch = NO; - for (UITouch *touch in event.allTouches) - { - if (touch.phase != UITouchPhaseEnded && touch.phase != UITouchPhaseCancelled) - { - hasActiveTouch = YES; - break; - } - } - io.AddMouseButtonEvent(0, hasActiveTouch); -} - --(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [self updateIOWithTouchEvent:event]; } --(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { [self updateIOWithTouchEvent:event]; } --(void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { [self updateIOWithTouchEvent:event]; } --(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { [self updateIOWithTouchEvent:event]; } - -#endif - -@end - -//----------------------------------------------------------------------------------- -// AppDelegate -//----------------------------------------------------------------------------------- - -#if TARGET_OS_OSX - -@interface AppDelegate : NSObject -@property (nonatomic, strong) NSWindow *window; -@end - -@implementation AppDelegate - --(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender -{ - return YES; -} - --(instancetype)init -{ - if (self = [super init]) - { - NSViewController *rootViewController = [[AppViewController alloc] initWithNibName:nil bundle:nil]; - self.window = [[NSWindow alloc] initWithContentRect:NSZeroRect - styleMask:NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskResizable | NSWindowStyleMaskMiniaturizable - backing:NSBackingStoreBuffered - defer:NO]; - self.window.contentViewController = rootViewController; - [self.window center]; - [self.window makeKeyAndOrderFront:self]; - } - return self; -} - -@end - -#else - -@interface AppDelegate : UIResponder -@property (strong, nonatomic) UIWindow *window; -@end - -@implementation AppDelegate - --(BOOL)application:(UIApplication *)application - didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - UIViewController *rootViewController = [[AppViewController alloc] init]; - self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds]; - self.window.rootViewController = rootViewController; - [self.window makeKeyAndVisible]; - return YES; -} - -@end - -#endif - -//----------------------------------------------------------------------------------- -// Application main() function -//----------------------------------------------------------------------------------- - -#if TARGET_OS_OSX - -int main(int, const char**) -{ - @autoreleasepool - { - [NSApplication sharedApplication]; - [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]; - - AppDelegate *appDelegate = [[AppDelegate alloc] init]; // creates window - [NSApp setDelegate:appDelegate]; - - [NSApp activateIgnoringOtherApps:YES]; - [NSApp run]; - } - return 0; -} - -#else - -int main(int argc, char * argv[]) -{ - @autoreleasepool - { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} - -#endif diff --git a/libs/imgui-1.92.1/examples/example_apple_opengl2/Makefile b/libs/imgui-1.92.1/examples/example_apple_opengl2/Makefile deleted file mode 100644 index 4ad5fa6..0000000 --- a/libs/imgui-1.92.1/examples/example_apple_opengl2/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for example_apple_metal, for macOS only (**not iOS**) -CXX = clang++ -EXE = example_apple_opengl2 -IMGUI_DIR = ../../ -SOURCES = main.mm -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_osx.mm $(IMGUI_DIR)/backends/imgui_impl_opengl2.cpp - -CXXFLAGS = -std=c++11 -ObjC++ -fobjc-arc -Wall -Wextra -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -FRAMEWORKS = -framework Cocoa -framework OpenGL -framework GameController - -all: $(EXE) - -$(EXE): $(SOURCES) - $(CXX) $(CXXFLAGS) $(SOURCES) -o $(EXE) $(FRAMEWORKS) - -run: all - ./$(EXE) - -clean: - rm -f $(EXE) *.o diff --git a/libs/imgui-1.92.1/examples/example_apple_opengl2/example_apple_opengl2.xcodeproj/project.pbxproj b/libs/imgui-1.92.1/examples/example_apple_opengl2/example_apple_opengl2.xcodeproj/project.pbxproj deleted file mode 100644 index 9770e43..0000000 --- a/libs/imgui-1.92.1/examples/example_apple_opengl2/example_apple_opengl2.xcodeproj/project.pbxproj +++ /dev/null @@ -1,332 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 48; - objects = { - -/* Begin PBXBuildFile section */ - 05E31B59274EF0700083FCB6 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05E31B57274EF0360083FCB6 /* GameController.framework */; }; - 07A82EDB213941D00078D120 /* imgui_widgets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07A82EDA213941D00078D120 /* imgui_widgets.cpp */; }; - 4080A99820B02D340036BA46 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4080A98A20B02CD90036BA46 /* main.mm */; }; - 4080A9A220B034280036BA46 /* imgui_impl_opengl2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4080A99E20B034280036BA46 /* imgui_impl_opengl2.cpp */; }; - 4080A9AD20B0343C0036BA46 /* imgui_demo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4080A9A620B0343C0036BA46 /* imgui_demo.cpp */; }; - 4080A9AE20B0343C0036BA46 /* imgui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4080A9A720B0343C0036BA46 /* imgui.cpp */; }; - 4080A9AF20B0343C0036BA46 /* imgui_draw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4080A9AA20B0343C0036BA46 /* imgui_draw.cpp */; }; - 4080A9B020B0347A0036BA46 /* imgui_impl_osx.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4080A99F20B034280036BA46 /* imgui_impl_osx.mm */; }; - 4080A9B320B034E40036BA46 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4080A9B220B034E40036BA46 /* Cocoa.framework */; }; - 4080A9B520B034EA0036BA46 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4080A9B420B034EA0036BA46 /* OpenGL.framework */; }; - 50798230257677FD0038A28D /* imgui_tables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5079822F257677FC0038A28D /* imgui_tables.cpp */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 4080A96920B029B00036BA46 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 05E31B57274EF0360083FCB6 /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; }; - 07A82EDA213941D00078D120 /* imgui_widgets.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_widgets.cpp; path = ../../imgui_widgets.cpp; sourceTree = ""; }; - 4080A96B20B029B00036BA46 /* example_osx_opengl2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = example_osx_opengl2; sourceTree = BUILT_PRODUCTS_DIR; }; - 4080A98A20B02CD90036BA46 /* main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = SOURCE_ROOT; }; - 4080A99E20B034280036BA46 /* imgui_impl_opengl2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_impl_opengl2.cpp; path = ../../backends/imgui_impl_opengl2.cpp; sourceTree = ""; }; - 4080A99F20B034280036BA46 /* imgui_impl_osx.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = imgui_impl_osx.mm; path = ../../backends/imgui_impl_osx.mm; sourceTree = ""; }; - 4080A9A020B034280036BA46 /* imgui_impl_opengl2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imgui_impl_opengl2.h; path = ../../backends/imgui_impl_opengl2.h; sourceTree = ""; }; - 4080A9A120B034280036BA46 /* imgui_impl_osx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imgui_impl_osx.h; path = ../../backends/imgui_impl_osx.h; sourceTree = ""; }; - 4080A9A520B0343C0036BA46 /* imgui_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imgui_internal.h; path = ../../imgui_internal.h; sourceTree = ""; }; - 4080A9A620B0343C0036BA46 /* imgui_demo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_demo.cpp; path = ../../imgui_demo.cpp; sourceTree = ""; }; - 4080A9A720B0343C0036BA46 /* imgui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui.cpp; path = ../../imgui.cpp; sourceTree = ""; }; - 4080A9A820B0343C0036BA46 /* imgui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imgui.h; path = ../../imgui.h; sourceTree = ""; }; - 4080A9AA20B0343C0036BA46 /* imgui_draw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_draw.cpp; path = ../../imgui_draw.cpp; sourceTree = ""; }; - 4080A9AC20B0343C0036BA46 /* imconfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imconfig.h; path = ../../imconfig.h; sourceTree = ""; }; - 4080A9B220B034E40036BA46 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; - 4080A9B420B034EA0036BA46 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; - 5079822F257677FC0038A28D /* imgui_tables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_tables.cpp; path = ../../imgui_tables.cpp; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 4080A96820B029B00036BA46 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4080A9B520B034EA0036BA46 /* OpenGL.framework in Frameworks */, - 4080A9B320B034E40036BA46 /* Cocoa.framework in Frameworks */, - 05E31B59274EF0700083FCB6 /* GameController.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 4080A96220B029B00036BA46 = { - isa = PBXGroup; - children = ( - 5079822F257677FC0038A28D /* imgui_tables.cpp */, - 4080A9AC20B0343C0036BA46 /* imconfig.h */, - 4080A9A720B0343C0036BA46 /* imgui.cpp */, - 4080A9A820B0343C0036BA46 /* imgui.h */, - 07A82EDA213941D00078D120 /* imgui_widgets.cpp */, - 4080A9A620B0343C0036BA46 /* imgui_demo.cpp */, - 4080A9AA20B0343C0036BA46 /* imgui_draw.cpp */, - 4080A9A520B0343C0036BA46 /* imgui_internal.h */, - 4080A99E20B034280036BA46 /* imgui_impl_opengl2.cpp */, - 4080A9A020B034280036BA46 /* imgui_impl_opengl2.h */, - 4080A9A120B034280036BA46 /* imgui_impl_osx.h */, - 4080A99F20B034280036BA46 /* imgui_impl_osx.mm */, - 4080A98A20B02CD90036BA46 /* main.mm */, - 4080A96C20B029B00036BA46 /* Products */, - 4080A9B120B034E40036BA46 /* Frameworks */, - ); - sourceTree = ""; - }; - 4080A96C20B029B00036BA46 /* Products */ = { - isa = PBXGroup; - children = ( - 4080A96B20B029B00036BA46 /* example_osx_opengl2 */, - ); - name = Products; - sourceTree = ""; - }; - 4080A9B120B034E40036BA46 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 05E31B57274EF0360083FCB6 /* GameController.framework */, - 4080A9B420B034EA0036BA46 /* OpenGL.framework */, - 4080A9B220B034E40036BA46 /* Cocoa.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 4080A96A20B029B00036BA46 /* example_osx_opengl2 */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4080A97220B029B00036BA46 /* Build configuration list for PBXNativeTarget "example_osx_opengl2" */; - buildPhases = ( - 4080A96720B029B00036BA46 /* Sources */, - 4080A96820B029B00036BA46 /* Frameworks */, - 4080A96920B029B00036BA46 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = example_osx_opengl2; - productName = example_osx_opengl2; - productReference = 4080A96B20B029B00036BA46 /* example_osx_opengl2 */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 4080A96320B029B00036BA46 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0930; - ORGANIZATIONNAME = ImGui; - TargetAttributes = { - 4080A96A20B029B00036BA46 = { - CreatedOnToolsVersion = 9.3.1; - ProvisioningStyle = Automatic; - }; - }; - }; - buildConfigurationList = 4080A96620B029B00036BA46 /* Build configuration list for PBXProject "example_apple_opengl2" */; - compatibilityVersion = "Xcode 8.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 4080A96220B029B00036BA46; - productRefGroup = 4080A96C20B029B00036BA46 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 4080A96A20B029B00036BA46 /* example_osx_opengl2 */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 4080A96720B029B00036BA46 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4080A99820B02D340036BA46 /* main.mm in Sources */, - 4080A9AD20B0343C0036BA46 /* imgui_demo.cpp in Sources */, - 4080A9AF20B0343C0036BA46 /* imgui_draw.cpp in Sources */, - 4080A9A220B034280036BA46 /* imgui_impl_opengl2.cpp in Sources */, - 4080A9B020B0347A0036BA46 /* imgui_impl_osx.mm in Sources */, - 4080A9AE20B0343C0036BA46 /* imgui.cpp in Sources */, - 50798230257677FD0038A28D /* imgui_tables.cpp in Sources */, - 07A82EDB213941D00078D120 /* imgui_widgets.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 4080A97020B029B00036BA46 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.13; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - }; - name = Debug; - }; - 4080A97120B029B00036BA46 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.13; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - }; - name = Release; - }; - 4080A97320B029B00036BA46 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - MACOSX_DEPLOYMENT_TARGET = 10.13; - PRODUCT_NAME = "$(TARGET_NAME)"; - USER_HEADER_SEARCH_PATHS = ../..; - }; - name = Debug; - }; - 4080A97420B029B00036BA46 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - MACOSX_DEPLOYMENT_TARGET = 10.13; - PRODUCT_NAME = "$(TARGET_NAME)"; - USER_HEADER_SEARCH_PATHS = ../..; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 4080A96620B029B00036BA46 /* Build configuration list for PBXProject "example_apple_opengl2" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4080A97020B029B00036BA46 /* Debug */, - 4080A97120B029B00036BA46 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4080A97220B029B00036BA46 /* Build configuration list for PBXNativeTarget "example_osx_opengl2" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4080A97320B029B00036BA46 /* Debug */, - 4080A97420B029B00036BA46 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 4080A96320B029B00036BA46 /* Project object */; -} diff --git a/libs/imgui-1.92.1/examples/example_apple_opengl2/main.mm b/libs/imgui-1.92.1/examples/example_apple_opengl2/main.mm deleted file mode 100644 index c3f0c31..0000000 --- a/libs/imgui-1.92.1/examples/example_apple_opengl2/main.mm +++ /dev/null @@ -1,256 +0,0 @@ -// Dear ImGui: standalone example application for OSX + OpenGL2, using legacy fixed pipeline - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#import -#import -#import - -#include "imgui.h" -#include "imgui_impl_opengl2.h" -#include "imgui_impl_osx.h" - -//----------------------------------------------------------------------------------- -// AppView -//----------------------------------------------------------------------------------- - -@interface AppView : NSOpenGLView -{ - NSTimer* animationTimer; -} -@end - -@implementation AppView - --(void)prepareOpenGL -{ - [super prepareOpenGL]; - -#ifndef DEBUG - GLint swapInterval = 1; - [[self openGLContext] setValues:&swapInterval forParameter:NSOpenGLCPSwapInterval]; - if (swapInterval == 0) - NSLog(@"Error: Cannot set swap interval."); -#endif -} - --(void)initialize -{ - // Setup Dear ImGui context - // FIXME: This example doesn't have proper cleanup... - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup Platform/Renderer backends - ImGui_ImplOSX_Init(self); - ImGui_ImplOpenGL2_Init(); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); -} - --(void)updateAndDrawDemoView -{ - // Start the Dear ImGui frame - ImGuiIO& io = ImGui::GetIO(); - ImGui_ImplOpenGL2_NewFrame(); - ImGui_ImplOSX_NewFrame(self); - ImGui::NewFrame(); - - // Our state (make them static = more or less global) as a convenience to keep the example terse. - static bool show_demo_window = true; - static bool show_another_window = false; - static ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - ImDrawData* draw_data = ImGui::GetDrawData(); - - [[self openGLContext] makeCurrentContext]; - GLsizei width = (GLsizei)(draw_data->DisplaySize.x * draw_data->FramebufferScale.x); - GLsizei height = (GLsizei)(draw_data->DisplaySize.y * draw_data->FramebufferScale.y); - glViewport(0, 0, width, height); - glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w); - glClear(GL_COLOR_BUFFER_BIT); - - ImGui_ImplOpenGL2_RenderDrawData(draw_data); - - // Present - [[self openGLContext] flushBuffer]; - - if (!animationTimer) - animationTimer = [NSTimer scheduledTimerWithTimeInterval:0.017 target:self selector:@selector(animationTimerFired:) userInfo:nil repeats:YES]; -} - --(void)reshape { [super reshape]; [[self openGLContext] update]; [self updateAndDrawDemoView]; } --(void)drawRect:(NSRect)bounds { [self updateAndDrawDemoView]; } --(void)animationTimerFired:(NSTimer*)timer { [self setNeedsDisplay:YES]; } --(void)dealloc { animationTimer = nil; } - -@end - -//----------------------------------------------------------------------------------- -// AppDelegate -//----------------------------------------------------------------------------------- - -@interface AppDelegate : NSObject -@property (nonatomic, readonly) NSWindow* window; -@end - -@implementation AppDelegate -@synthesize window = _window; - --(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication -{ - return YES; -} - --(NSWindow*)window -{ - if (_window != nil) - return (_window); - - NSRect viewRect = NSMakeRect(100.0, 100.0, 100.0 + 1280.0, 100 + 720.0); - - _window = [[NSWindow alloc] initWithContentRect:viewRect styleMask:NSWindowStyleMaskTitled|NSWindowStyleMaskMiniaturizable|NSWindowStyleMaskResizable|NSWindowStyleMaskClosable backing:NSBackingStoreBuffered defer:YES]; - [_window setTitle:@"Dear ImGui OSX+OpenGL2 Example"]; - [_window setAcceptsMouseMovedEvents:YES]; - [_window setOpaque:YES]; - [_window makeKeyAndOrderFront:NSApp]; - - return (_window); -} - --(void)setupMenu -{ - NSMenu* mainMenuBar = [[NSMenu alloc] init]; - NSMenu* appMenu; - NSMenuItem* menuItem; - - appMenu = [[NSMenu alloc] initWithTitle:@"Dear ImGui OSX+OpenGL2 Example"]; - menuItem = [appMenu addItemWithTitle:@"Quit Dear ImGui OSX+OpenGL2 Example" action:@selector(terminate:) keyEquivalent:@"q"]; - [menuItem setKeyEquivalentModifierMask:NSEventModifierFlagCommand]; - - menuItem = [[NSMenuItem alloc] init]; - [menuItem setSubmenu:appMenu]; - - [mainMenuBar addItem:menuItem]; - - appMenu = nil; - [NSApp setMainMenu:mainMenuBar]; -} - --(void)dealloc -{ - _window = nil; -} - --(void)applicationDidFinishLaunching:(NSNotification *)aNotification -{ - // Make the application a foreground application (else it won't receive keyboard events) - ProcessSerialNumber psn = {0, kCurrentProcess}; - TransformProcessType(&psn, kProcessTransformToForegroundApplication); - - // Menu - [self setupMenu]; - - NSOpenGLPixelFormatAttribute attrs[] = - { - NSOpenGLPFADoubleBuffer, - NSOpenGLPFADepthSize, 32, - 0 - }; - - NSOpenGLPixelFormat* format = [[NSOpenGLPixelFormat alloc] initWithAttributes:attrs]; - AppView* view = [[AppView alloc] initWithFrame:self.window.frame pixelFormat:format]; - format = nil; -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 - if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_6) - [view setWantsBestResolutionOpenGLSurface:YES]; -#endif // MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 - [self.window setContentView:view]; - - if ([view openGLContext] == nil) - NSLog(@"No OpenGL Context!"); - - [view initialize]; -} - -@end - -//----------------------------------------------------------------------------------- -// Application main() function -//----------------------------------------------------------------------------------- - -int main(int argc, const char* argv[]) -{ - @autoreleasepool - { - NSApp = [NSApplication sharedApplication]; - AppDelegate* delegate = [[AppDelegate alloc] init]; - [[NSApplication sharedApplication] setDelegate:delegate]; - [NSApp run]; - } - return NSApplicationMain(argc, argv); -} diff --git a/libs/imgui-1.92.1/examples/example_glfw_metal/Makefile b/libs/imgui-1.92.1/examples/example_glfw_metal/Makefile deleted file mode 100644 index 32a7aec..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_metal/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -# -# You will need GLFW (http://www.glfw.org): -# brew install glfw -# - -#CXX = g++ -#CXX = clang++ - -EXE = example_glfw_metal -IMGUI_DIR = ../.. -SOURCES = main.mm -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glfw.cpp $(IMGUI_DIR)/backends/imgui_impl_metal.mm -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) - -LIBS = -framework Metal -framework MetalKit -framework Cocoa -framework IOKit -framework CoreVideo -framework QuartzCore -LIBS += -L/usr/local/lib -L/opt/homebrew/lib -L/opt/local/lib -LIBS += -lglfw - -CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -I/usr/local/include -I/opt/homebrew/include -I/opt/local/include -CXXFLAGS += -Wall -Wformat -CFLAGS = $(CXXFLAGS) - -%.o:%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:%.mm - $(CXX) $(CXXFLAGS) -ObjC++ -fobjc-weak -fobjc-arc -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.mm - $(CXX) $(CXXFLAGS) -ObjC++ -fobjc-weak -fobjc-arc -c -o $@ $< - -all: $(EXE) - @echo Build complete - -$(EXE): $(OBJS) - $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) - -clean: - rm -f $(EXE) $(OBJS) diff --git a/libs/imgui-1.92.1/examples/example_glfw_metal/main.mm b/libs/imgui-1.92.1/examples/example_glfw_metal/main.mm deleted file mode 100644 index ef31470..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_metal/main.mm +++ /dev/null @@ -1,177 +0,0 @@ -// Dear ImGui: standalone example application for GLFW + Metal, using programmable pipeline -// (GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.) - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#include "imgui.h" -#include "imgui_impl_glfw.h" -#include "imgui_impl_metal.h" -#include - -#define GLFW_INCLUDE_NONE -#define GLFW_EXPOSE_NATIVE_COCOA -#include -#include - -#import -#import - -static void glfw_error_callback(int error, const char* description) -{ - fprintf(stderr, "Glfw Error %d: %s\n", error, description); -} - -int main(int, char**) -{ - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Setup window - glfwSetErrorCallback(glfw_error_callback); - if (!glfwInit()) - return 1; - - // Create window with graphics context - glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API); - GLFWwindow* window = glfwCreateWindow(1280, 720, "Dear ImGui GLFW+Metal example", nullptr, nullptr); - if (window == nullptr) - return 1; - - id device = MTLCreateSystemDefaultDevice(); - id commandQueue = [device newCommandQueue]; - - // Setup Platform/Renderer backends - ImGui_ImplGlfw_InitForOpenGL(window, true); - ImGui_ImplMetal_Init(device); - - NSWindow *nswin = glfwGetCocoaWindow(window); - CAMetalLayer *layer = [CAMetalLayer layer]; - layer.device = device; - layer.pixelFormat = MTLPixelFormatBGRA8Unorm; - nswin.contentView.layer = layer; - nswin.contentView.wantsLayer = YES; - - MTLRenderPassDescriptor *renderPassDescriptor = [MTLRenderPassDescriptor new]; - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - float clear_color[4] = {0.45f, 0.55f, 0.60f, 1.00f}; - - // Main loop - while (!glfwWindowShouldClose(window)) - { - @autoreleasepool - { - // Poll and handle events (inputs, window resize, etc.) - // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. - // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. - // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. - // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. - glfwPollEvents(); - - int width, height; - glfwGetFramebufferSize(window, &width, &height); - layer.drawableSize = CGSizeMake(width, height); - id drawable = [layer nextDrawable]; - - id commandBuffer = [commandQueue commandBuffer]; - renderPassDescriptor.colorAttachments[0].clearColor = MTLClearColorMake(clear_color[0] * clear_color[3], clear_color[1] * clear_color[3], clear_color[2] * clear_color[3], clear_color[3]); - renderPassDescriptor.colorAttachments[0].texture = drawable.texture; - renderPassDescriptor.colorAttachments[0].loadAction = MTLLoadActionClear; - renderPassDescriptor.colorAttachments[0].storeAction = MTLStoreActionStore; - id renderEncoder = [commandBuffer renderCommandEncoderWithDescriptor:renderPassDescriptor]; - [renderEncoder pushDebugGroup:@"ImGui demo"]; - - // Start the Dear ImGui frame - ImGui_ImplMetal_NewFrame(renderPassDescriptor); - ImGui_ImplGlfw_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - ImGui_ImplMetal_RenderDrawData(ImGui::GetDrawData(), commandBuffer, renderEncoder); - - [renderEncoder popDebugGroup]; - [renderEncoder endEncoding]; - - [commandBuffer presentDrawable:drawable]; - [commandBuffer commit]; - } - } - - // Cleanup - ImGui_ImplMetal_Shutdown(); - ImGui_ImplGlfw_Shutdown(); - ImGui::DestroyContext(); - - glfwDestroyWindow(window); - glfwTerminate(); - - return 0; -} diff --git a/libs/imgui-1.92.1/examples/example_glfw_opengl2/Makefile b/libs/imgui-1.92.1/examples/example_glfw_opengl2/Makefile deleted file mode 100644 index 1f15c15..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_opengl2/Makefile +++ /dev/null @@ -1,81 +0,0 @@ -# -# Cross Platform Makefile -# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X -# -# You will need GLFW (http://www.glfw.org): -# Linux: -# apt-get install libglfw-dev -# Mac OS X: -# brew install glfw -# MSYS2: -# pacman -S --noconfirm --needed mingw-w64-x86_64-toolchain mingw-w64-x86_64-glfw -# - -#CXX = g++ -#CXX = clang++ - -EXE = example_glfw_opengl2 -IMGUI_DIR = ../.. -SOURCES = main.cpp -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glfw.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl2.cpp -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) -UNAME_S := $(shell uname -s) - -CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -CXXFLAGS += -g -Wall -Wformat -LIBS = - -##--------------------------------------------------------------------- -## BUILD FLAGS PER PLATFORM -##--------------------------------------------------------------------- - -ifeq ($(UNAME_S), Linux) #LINUX - ECHO_MESSAGE = "Linux" - LIBS += -lGL `pkg-config --static --libs glfw3` - - CXXFLAGS += `pkg-config --cflags glfw3` - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(UNAME_S), Darwin) #APPLE - ECHO_MESSAGE = "Mac OS X" - LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo - LIBS += -L/usr/local/lib -L/opt/local/lib -L/opt/homebrew/lib - #LIBS += -lglfw3 - LIBS += -lglfw - - CXXFLAGS += -I/usr/local/include -I/opt/local/include -I/opt/homebrew/include - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(OS), Windows_NT) - ECHO_MESSAGE = "MinGW" - LIBS += -lglfw3 -lgdi32 -lopengl32 -limm32 - - CXXFLAGS += `pkg-config --cflags glfw3` - CFLAGS = $(CXXFLAGS) -endif - -##--------------------------------------------------------------------- -## BUILD RULES -##--------------------------------------------------------------------- - -%.o:%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -all: $(EXE) - @echo Build complete for $(ECHO_MESSAGE) - -$(EXE): $(OBJS) - $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) - -clean: - rm -f $(EXE) $(OBJS) - diff --git a/libs/imgui-1.92.1/examples/example_glfw_opengl2/build_win32.bat b/libs/imgui-1.92.1/examples/example_glfw_opengl2/build_win32.bat deleted file mode 100644 index 24c0e08..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_opengl2/build_win32.bat +++ /dev/null @@ -1,8 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. -@set OUT_DIR=Debug -@set OUT_EXE=example_glfw_opengl2 -@set INCLUDES=/I..\.. /I..\..\backends /I..\libs\glfw\include -@set SOURCES=main.cpp ..\..\backends\imgui_impl_opengl2.cpp ..\..\backends\imgui_impl_glfw.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:..\libs\glfw\lib-vc2010-32 glfw3.lib opengl32.lib gdi32.lib shell32.lib -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% diff --git a/libs/imgui-1.92.1/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj b/libs/imgui-1.92.1/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj deleted file mode 100644 index 2aa2550..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj +++ /dev/null @@ -1,186 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {9CDA7840-B7A5-496D-A527-E95571496D18} - example_glfw_opengl2 - 8.1 - - - - Application - true - MultiByte - v140 - - - Application - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - - Level4 - Disabled - ..\..;..\..\backends;..\libs\glfw\include;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - ..\libs\glfw\lib-vc2010-32;%(AdditionalLibraryDirectories) - opengl32.lib;glfw3.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - Disabled - ..\..;..\..\backends;..\libs\glfw\include;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - ..\libs\glfw\lib-vc2010-64;%(AdditionalLibraryDirectories) - opengl32.lib;glfw3.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;..\libs\glfw\include;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - ..\libs\glfw\lib-vc2010-32;%(AdditionalLibraryDirectories) - opengl32.lib;glfw3.lib;%(AdditionalDependencies) - Console - - - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;..\libs\glfw\include;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - ..\libs\glfw\lib-vc2010-64;%(AdditionalLibraryDirectories) - opengl32.lib;glfw3.lib;%(AdditionalDependencies) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj.filters b/libs/imgui-1.92.1/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj.filters deleted file mode 100644 index 049b0b1..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj.filters +++ /dev/null @@ -1,64 +0,0 @@ - - - - - {c336cfe3-f0c4-464c-9ef0-a9e17a7ff222} - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - - - sources - - - imgui - - - imgui - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - - imgui - - - imgui - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_glfw_opengl2/main.cpp b/libs/imgui-1.92.1/examples/example_glfw_opengl2/main.cpp deleted file mode 100644 index 83fcab6..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_opengl2/main.cpp +++ /dev/null @@ -1,171 +0,0 @@ -// Dear ImGui: standalone example application for GLFW + OpenGL2, using legacy fixed pipeline -// (GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.) - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// **DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)** -// **Prefer using the code in the example_glfw_opengl2/ folder** -// See imgui_impl_glfw.cpp for details. - -#include "imgui.h" -#include "imgui_impl_glfw.h" -#include "imgui_impl_opengl2.h" -#include -#ifdef __APPLE__ -#define GL_SILENCE_DEPRECATION -#endif -#include - -// [Win32] Our example includes a copy of glfw3.lib pre-compiled with VS2010 to maximize ease of testing and compatibility with old VS compilers. -// To link with VS2010-era libraries, VS2015+ requires linking with legacy_stdio_definitions.lib, which we do using this pragma. -// Your own project should not be affected, as you are likely to link with a newer binary of GLFW that is adequate for your version of Visual Studio. -#if defined(_MSC_VER) && (_MSC_VER >= 1900) && !defined(IMGUI_DISABLE_WIN32_FUNCTIONS) -#pragma comment(lib, "legacy_stdio_definitions") -#endif - -static void glfw_error_callback(int error, const char* description) -{ - fprintf(stderr, "GLFW Error %d: %s\n", error, description); -} - -// Main code -int main(int, char**) -{ - glfwSetErrorCallback(glfw_error_callback); - if (!glfwInit()) - return 1; - - // Create window with graphics context - GLFWwindow* window = glfwCreateWindow(1280, 720, "Dear ImGui GLFW+OpenGL2 example", nullptr, nullptr); - if (window == nullptr) - return 1; - glfwMakeContextCurrent(window); - glfwSwapInterval(1); // Enable vsync - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup Platform/Renderer backends - ImGui_ImplGlfw_InitForOpenGL(window, true); - ImGui_ImplOpenGL2_Init(); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop - while (!glfwWindowShouldClose(window)) - { - // Poll and handle events (inputs, window resize, etc.) - // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. - // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. - // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. - // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. - glfwPollEvents(); - if (glfwGetWindowAttrib(window, GLFW_ICONIFIED) != 0) - { - ImGui_ImplGlfw_Sleep(10); - continue; - } - - // Start the Dear ImGui frame - ImGui_ImplOpenGL2_NewFrame(); - ImGui_ImplGlfw_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - int display_w, display_h; - glfwGetFramebufferSize(window, &display_w, &display_h); - glViewport(0, 0, display_w, display_h); - glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w); - glClear(GL_COLOR_BUFFER_BIT); - - // If you are using this code with non-legacy OpenGL header/contexts (which you should not, prefer using imgui_impl_opengl3.cpp!!), - // you may need to backup/reset/restore other state, e.g. for current shader using the commented lines below. - //GLint last_program; - //glGetIntegerv(GL_CURRENT_PROGRAM, &last_program); - //glUseProgram(0); - ImGui_ImplOpenGL2_RenderDrawData(ImGui::GetDrawData()); - //glUseProgram(last_program); - - glfwMakeContextCurrent(window); - glfwSwapBuffers(window); - } - - // Cleanup - ImGui_ImplOpenGL2_Shutdown(); - ImGui_ImplGlfw_Shutdown(); - ImGui::DestroyContext(); - - glfwDestroyWindow(window); - glfwTerminate(); - - return 0; -} diff --git a/libs/imgui-1.92.1/examples/example_glfw_opengl3/Makefile b/libs/imgui-1.92.1/examples/example_glfw_opengl3/Makefile deleted file mode 100644 index 252ce57..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_opengl3/Makefile +++ /dev/null @@ -1,89 +0,0 @@ -# -# Cross Platform Makefile -# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X -# -# You will need GLFW (http://www.glfw.org): -# Linux: -# apt-get install libglfw-dev -# Mac OS X: -# brew install glfw -# MSYS2: -# pacman -S --noconfirm --needed mingw-w64-x86_64-toolchain mingw-w64-x86_64-glfw -# - -#CXX = g++ -#CXX = clang++ - -EXE = example_glfw_opengl3 -IMGUI_DIR = ../.. -SOURCES = main.cpp -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glfw.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) -UNAME_S := $(shell uname -s) -LINUX_GL_LIBS = -lGL - -CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -CXXFLAGS += -g -Wall -Wformat -LIBS = - -##--------------------------------------------------------------------- -## OPENGL ES -##--------------------------------------------------------------------- - -## This assumes a GL ES library available in the system, e.g. libGLESv2.so -# CXXFLAGS += -DIMGUI_IMPL_OPENGL_ES2 -# LINUX_GL_LIBS = -lGLESv2 - -##--------------------------------------------------------------------- -## BUILD FLAGS PER PLATFORM -##--------------------------------------------------------------------- - -ifeq ($(UNAME_S), Linux) #LINUX - ECHO_MESSAGE = "Linux" - LIBS += $(LINUX_GL_LIBS) `pkg-config --static --libs glfw3` - - CXXFLAGS += `pkg-config --cflags glfw3` - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(UNAME_S), Darwin) #APPLE - ECHO_MESSAGE = "Mac OS X" - LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo - LIBS += -L/usr/local/lib -L/opt/local/lib -L/opt/homebrew/lib - #LIBS += -lglfw3 - LIBS += -lglfw - - CXXFLAGS += -I/usr/local/include -I/opt/local/include -I/opt/homebrew/include - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(OS), Windows_NT) - ECHO_MESSAGE = "MinGW" - LIBS += -lglfw3 -lgdi32 -lopengl32 -limm32 - - CXXFLAGS += `pkg-config --cflags glfw3` - CFLAGS = $(CXXFLAGS) -endif - -##--------------------------------------------------------------------- -## BUILD RULES -##--------------------------------------------------------------------- - -%.o:%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -all: $(EXE) - @echo Build complete for $(ECHO_MESSAGE) - -$(EXE): $(OBJS) - $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) - -clean: - rm -f $(EXE) $(OBJS) diff --git a/libs/imgui-1.92.1/examples/example_glfw_opengl3/Makefile.emscripten b/libs/imgui-1.92.1/examples/example_glfw_opengl3/Makefile.emscripten deleted file mode 100644 index 8d2f6e7..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_opengl3/Makefile.emscripten +++ /dev/null @@ -1,95 +0,0 @@ -# -# Makefile to use with GLFW+emscripten -# See https://emscripten.org/docs/getting_started/downloads.html -# for installation instructions. -# -# This Makefile assumes you have loaded emscripten's environment. -# (On Windows, you may need to execute emsdk_env.bat or encmdprompt.bat ahead) -# -# Running `make -f Makefile.emscripten` will produce three files: -# - web/index.html -# - web/index.js -# - web/index.wasm -# -# All three are needed to run the demo. - -CC = emcc -CXX = em++ -WEB_DIR = web -EXE = $(WEB_DIR)/index.html -IMGUI_DIR = ../.. -SOURCES = main.cpp -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glfw.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) -UNAME_S := $(shell uname -s) -CPPFLAGS = -LDFLAGS = -EMS = - -##--------------------------------------------------------------------- -## EMSCRIPTEN OPTIONS -##--------------------------------------------------------------------- - -# ("EMS" options gets added to both CPPFLAGS and LDFLAGS, whereas some options are for linker only) -# Note: For glfw, we use emscripten-glfw port (contrib.glfw3) instead of ('-s USE_GLFW=3' in LDFLAGS) to get a better support for High DPI displays. -EMS += -s DISABLE_EXCEPTION_CATCHING=1 --use-port=contrib.glfw3 -LDFLAGS += -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 -s NO_EXIT_RUNTIME=0 -s ASSERTIONS=1 - -# Build as single file (binary text encoded in .html file) -#LDFLAGS += -sSINGLE_FILE - -# Uncomment next line to fix possible rendering bugs with Emscripten version older then 1.39.0 (https://github.com/ocornut/imgui/issues/2877) -#EMS += -s BINARYEN_TRAP_MODE=clamp -#EMS += -s SAFE_HEAP=1 ## Adds overhead - -# Emscripten allows preloading a file or folder to be accessible at runtime. -# The Makefile for this example project suggests embedding the misc/fonts/ folder into our application, it will then be accessible as "/fonts" -# See documentation for more details: https://emscripten.org/docs/porting/files/packaging_files.html -# (Default value is 0. Set to 1 to enable file-system and include the misc/fonts/ folder as part of the build.) -USE_FILE_SYSTEM ?= 0 -ifeq ($(USE_FILE_SYSTEM), 0) -LDFLAGS += -s NO_FILESYSTEM=1 -CPPFLAGS += -DIMGUI_DISABLE_FILE_FUNCTIONS -endif -ifeq ($(USE_FILE_SYSTEM), 1) -LDFLAGS += --no-heap-copy --preload-file ../../misc/fonts@/fonts -endif - -##--------------------------------------------------------------------- -## FINAL BUILD FLAGS -##--------------------------------------------------------------------- - -CPPFLAGS += -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -#CPPFLAGS += -g -CPPFLAGS += -Wall -Wformat -Os $(EMS) -LDFLAGS += --shell-file ../libs/emscripten/shell_minimal.html -LDFLAGS += $(EMS) - -##--------------------------------------------------------------------- -## BUILD RULES -##--------------------------------------------------------------------- - -%.o:%.cpp - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< - -all: $(EXE) - @echo Build complete for $(EXE) - -$(WEB_DIR): - mkdir $@ - -serve: all - python3 -m http.server -d $(WEB_DIR) - -$(EXE): $(OBJS) $(WEB_DIR) - $(CXX) -o $@ $(OBJS) $(LDFLAGS) - -clean: - rm -rf $(OBJS) $(WEB_DIR) diff --git a/libs/imgui-1.92.1/examples/example_glfw_opengl3/build_win32.bat b/libs/imgui-1.92.1/examples/example_glfw_opengl3/build_win32.bat deleted file mode 100644 index b5979ad..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_opengl3/build_win32.bat +++ /dev/null @@ -1,8 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. -@set OUT_DIR=Debug -@set OUT_EXE=example_glfw_opengl3 -@set INCLUDES=/I..\.. /I..\..\backends /I..\libs\glfw\include -@set SOURCES=main.cpp ..\..\backends\imgui_impl_glfw.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:..\libs\glfw\lib-vc2010-32 glfw3.lib opengl32.lib gdi32.lib shell32.lib -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% diff --git a/libs/imgui-1.92.1/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj b/libs/imgui-1.92.1/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj deleted file mode 100644 index 4bd503a..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj +++ /dev/null @@ -1,187 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {4a1fb5ea-22f5-42a8-ab92-1d2df5d47fb9} - example_glfw_opengl3 - 8.1 - - - - Application - true - MultiByte - v140 - - - Application - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - - Level4 - Disabled - ..\..;..\..\backends;..\libs\glfw\include;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - ..\libs\glfw\lib-vc2010-32;%(AdditionalLibraryDirectories) - opengl32.lib;glfw3.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - Disabled - ..\..;..\..\backends;..\libs\glfw\include;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - ..\libs\glfw\lib-vc2010-64;%(AdditionalLibraryDirectories) - opengl32.lib;glfw3.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;..\libs\glfw\include;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - ..\libs\glfw\lib-vc2010-32;%(AdditionalLibraryDirectories) - opengl32.lib;glfw3.lib;%(AdditionalDependencies) - Console - - - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;..\libs\glfw\include;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - ..\libs\glfw\lib-vc2010-64;%(AdditionalLibraryDirectories) - opengl32.lib;glfw3.lib;%(AdditionalDependencies) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj.filters b/libs/imgui-1.92.1/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj.filters deleted file mode 100644 index bc79bb1..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj.filters +++ /dev/null @@ -1,67 +0,0 @@ - - - - - {20b90ce4-7fcb-4731-b9a0-075f875de82d} - - - {f18ab499-84e1-499f-8eff-9754361e0e52} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - - - sources - - - imgui - - - imgui - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - sources - - - - - - imgui - - - imgui - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_glfw_opengl3/main.cpp b/libs/imgui-1.92.1/examples/example_glfw_opengl3/main.cpp deleted file mode 100644 index 4bd7bc5..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_opengl3/main.cpp +++ /dev/null @@ -1,214 +0,0 @@ -// Dear ImGui: standalone example application for GLFW + OpenGL 3, using programmable pipeline -// (GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.) - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#include "imgui.h" -#include "imgui_impl_glfw.h" -#include "imgui_impl_opengl3.h" -#include -#define GL_SILENCE_DEPRECATION -#if defined(IMGUI_IMPL_OPENGL_ES2) -#include -#endif -#include // Will drag system OpenGL headers - -// [Win32] Our example includes a copy of glfw3.lib pre-compiled with VS2010 to maximize ease of testing and compatibility with old VS compilers. -// To link with VS2010-era libraries, VS2015+ requires linking with legacy_stdio_definitions.lib, which we do using this pragma. -// Your own project should not be affected, as you are likely to link with a newer binary of GLFW that is adequate for your version of Visual Studio. -#if defined(_MSC_VER) && (_MSC_VER >= 1900) && !defined(IMGUI_DISABLE_WIN32_FUNCTIONS) -#pragma comment(lib, "legacy_stdio_definitions") -#endif - -// This example can also compile and run with Emscripten! See 'Makefile.emscripten' for details. -#ifdef __EMSCRIPTEN__ -#include "../libs/emscripten/emscripten_mainloop_stub.h" -#endif - -static void glfw_error_callback(int error, const char* description) -{ - fprintf(stderr, "GLFW Error %d: %s\n", error, description); -} - -// Main code -int main(int, char**) -{ - glfwSetErrorCallback(glfw_error_callback); - if (!glfwInit()) - return 1; - - // Decide GL+GLSL versions -#if defined(IMGUI_IMPL_OPENGL_ES2) - // GL ES 2.0 + GLSL 100 (WebGL 1.0) - const char* glsl_version = "#version 100"; - glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2); - glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0); - glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API); -#elif defined(IMGUI_IMPL_OPENGL_ES3) - // GL ES 3.0 + GLSL 300 es (WebGL 2.0) - const char* glsl_version = "#version 300 es"; - glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); - glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0); - glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API); -#elif defined(__APPLE__) - // GL 3.2 + GLSL 150 - const char* glsl_version = "#version 150"; - glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); - glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2); - glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); // 3.2+ only - glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // Required on Mac -#else - // GL 3.0 + GLSL 130 - const char* glsl_version = "#version 130"; - glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); - glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0); - //glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); // 3.2+ only - //glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // 3.0+ only -#endif - - // Create window with graphics context - float main_scale = ImGui_ImplGlfw_GetContentScaleForMonitor(glfwGetPrimaryMonitor()); // Valid on GLFW 3.3+ only - GLFWwindow* window = glfwCreateWindow((int)(1280 * main_scale), (int)(800 * main_scale), "Dear ImGui GLFW+OpenGL3 example", nullptr, nullptr); - if (window == nullptr) - return 1; - glfwMakeContextCurrent(window); - glfwSwapInterval(1); // Enable vsync - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup scaling - ImGuiStyle& style = ImGui::GetStyle(); - style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again) - style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose) - - // Setup Platform/Renderer backends - ImGui_ImplGlfw_InitForOpenGL(window, true); -#ifdef __EMSCRIPTEN__ - ImGui_ImplGlfw_InstallEmscriptenCallbacks(window, "#canvas"); -#endif - ImGui_ImplOpenGL3_Init(glsl_version); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - // - Our Emscripten build process allows embedding fonts to be accessible at runtime from the "fonts/" folder. See Makefile.emscripten for details. - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop -#ifdef __EMSCRIPTEN__ - // For an Emscripten build we are disabling file-system access, so let's not attempt to do a fopen() of the imgui.ini file. - // You may manually call LoadIniSettingsFromMemory() to load settings from your own storage. - io.IniFilename = nullptr; - EMSCRIPTEN_MAINLOOP_BEGIN -#else - while (!glfwWindowShouldClose(window)) -#endif - { - // Poll and handle events (inputs, window resize, etc.) - // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. - // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. - // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. - // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. - glfwPollEvents(); - if (glfwGetWindowAttrib(window, GLFW_ICONIFIED) != 0) - { - ImGui_ImplGlfw_Sleep(10); - continue; - } - - // Start the Dear ImGui frame - ImGui_ImplOpenGL3_NewFrame(); - ImGui_ImplGlfw_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - int display_w, display_h; - glfwGetFramebufferSize(window, &display_w, &display_h); - glViewport(0, 0, display_w, display_h); - glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w); - glClear(GL_COLOR_BUFFER_BIT); - ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData()); - - glfwSwapBuffers(window); - } -#ifdef __EMSCRIPTEN__ - EMSCRIPTEN_MAINLOOP_END; -#endif - - // Cleanup - ImGui_ImplOpenGL3_Shutdown(); - ImGui_ImplGlfw_Shutdown(); - ImGui::DestroyContext(); - - glfwDestroyWindow(window); - glfwTerminate(); - - return 0; -} diff --git a/libs/imgui-1.92.1/examples/example_glfw_vulkan/CMakeLists.txt b/libs/imgui-1.92.1/examples/example_glfw_vulkan/CMakeLists.txt deleted file mode 100644 index 75475db..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_vulkan/CMakeLists.txt +++ /dev/null @@ -1,47 +0,0 @@ -# Example usage: -# mkdir build -# cd build -# cmake -g "Visual Studio 14 2015" .. - -cmake_minimum_required(VERSION 2.8) -project(imgui_example_glfw_vulkan C CXX) - -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Debug CACHE STRING "" FORCE) -endif() - -set(CMAKE_CXX_STANDARD 11) -set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DVK_PROTOTYPES") -set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_PROTOTYPES") - -# GLFW -if(NOT GLFW_DIR) - set(GLFW_DIR ../../../glfw) # Set this to point to an up-to-date GLFW repo -endif() -option(GLFW_BUILD_EXAMPLES "Build the GLFW example programs" OFF) -option(GLFW_BUILD_TESTS "Build the GLFW test programs" OFF) -option(GLFW_BUILD_DOCS "Build the GLFW documentation" OFF) -option(GLFW_INSTALL "Generate installation target" OFF) -option(GLFW_DOCUMENT_INTERNALS "Include internals in documentation" OFF) -add_subdirectory(${GLFW_DIR} binary_dir EXCLUDE_FROM_ALL) -include_directories(${GLFW_DIR}/include) - -# Dear ImGui -set(IMGUI_DIR ../../) -include_directories(${IMGUI_DIR} ${IMGUI_DIR}/backends ..) - -# Libraries -find_package(Vulkan REQUIRED) -#find_library(VULKAN_LIBRARY - #NAMES vulkan vulkan-1) -#set(LIBRARIES "glfw;${VULKAN_LIBRARY}") -set(LIBRARIES "glfw;Vulkan::Vulkan") - -# Use vulkan headers from glfw: -include_directories(${GLFW_DIR}/deps) - -file(GLOB sources *.cpp) - -add_executable(example_glfw_vulkan ${sources} ${IMGUI_DIR}/backends/imgui_impl_glfw.cpp ${IMGUI_DIR}/backends/imgui_impl_vulkan.cpp ${IMGUI_DIR}/imgui.cpp ${IMGUI_DIR}/imgui_draw.cpp ${IMGUI_DIR}/imgui_demo.cpp ${IMGUI_DIR}/imgui_tables.cpp ${IMGUI_DIR}/imgui_widgets.cpp) -target_link_libraries(example_glfw_vulkan ${LIBRARIES}) - diff --git a/libs/imgui-1.92.1/examples/example_glfw_vulkan/Makefile b/libs/imgui-1.92.1/examples/example_glfw_vulkan/Makefile deleted file mode 100644 index 1a84082..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_vulkan/Makefile +++ /dev/null @@ -1,83 +0,0 @@ -# -# Cross Platform Makefile -# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X -# -# You will need GLFW (http://www.glfw.org): -# Linux: -# apt-get install libglfw-dev -# Mac OS X: -# brew install glfw -# MSYS2: -# pacman -S --noconfirm --needed mingw-w64-x86_64-toolchain mingw-w64-x86_64-glfw -# - -#CXX = g++ -#CXX = clang++ - -EXE = example_glfw_vulkan -IMGUI_DIR = ../.. -SOURCES = main.cpp -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glfw.cpp $(IMGUI_DIR)/backends/imgui_impl_vulkan.cpp -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) -UNAME_S := $(shell uname -s) -LINUX_GL_LIBS = -lGL - -CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -CXXFLAGS += -g -Wall -Wformat -LIBS = - -##--------------------------------------------------------------------- -## BUILD FLAGS PER PLATFORM -##--------------------------------------------------------------------- - -ifeq ($(UNAME_S), Linux) #LINUX - ECHO_MESSAGE = "Linux" - LIBS += $(LINUX_GL_LIBS) `pkg-config --static --libs glfw3 vulkan` - - CXXFLAGS += `pkg-config --cflags glfw3 vulkan` - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(UNAME_S), Darwin) #APPLE - ECHO_MESSAGE = "Mac OS X" - LIBS += -framework Cocoa -framework IOKit -framework CoreVideo - LIBS += `pkg-config --libs glfw3 vulkan` - LIBS += -L/usr/local/lib -L/opt/local/lib -L/opt/homebrew/lib - #LIBS += -lglfw3 - - LIBS += `pkg-config --cflags glfw3 vulkan` - CXXFLAGS += -I/usr/local/include -I/opt/local/include -I/opt/homebrew/include - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(OS), Windows_NT) - ECHO_MESSAGE = "MinGW" - LIBS += -lgdi32 -limm32 - LIBS += `pkg-config --libs glfw3 vulkan` - - CXXFLAGS += `pkg-config --cflags glfw3 vulkan` - CFLAGS = $(CXXFLAGS) -endif - -##--------------------------------------------------------------------- -## BUILD RULES -##--------------------------------------------------------------------- - -%.o:%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -all: $(EXE) - @echo Build complete for $(ECHO_MESSAGE) - -$(EXE): $(OBJS) - $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) - -clean: - rm -f $(EXE) $(OBJS) diff --git a/libs/imgui-1.92.1/examples/example_glfw_vulkan/build_win32.bat b/libs/imgui-1.92.1/examples/example_glfw_vulkan/build_win32.bat deleted file mode 100644 index bb54a42..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_vulkan/build_win32.bat +++ /dev/null @@ -1,14 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. - -@set OUT_EXE=example_glfw_vulkan -@set INCLUDES=/I..\.. /I..\..\backends /I..\libs\glfw\include /I %VULKAN_SDK%\include -@set SOURCES=main.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\backends\imgui_impl_glfw.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:..\libs\glfw\lib-vc2010-32 /libpath:%VULKAN_SDK%\lib32 glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib - -@set OUT_DIR=Debug -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% - -@set OUT_DIR=Release -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% diff --git a/libs/imgui-1.92.1/examples/example_glfw_vulkan/build_win64.bat b/libs/imgui-1.92.1/examples/example_glfw_vulkan/build_win64.bat deleted file mode 100644 index ca9b788..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_vulkan/build_win64.bat +++ /dev/null @@ -1,14 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars64.bat or vcvarsall.bat to setup 64-bit command-line compiler. - -@set OUT_EXE=example_glfw_vulkan -@set INCLUDES=/I..\.. /I..\..\backends /I..\libs\glfw\include /I %VULKAN_SDK%\include -@set SOURCES=main.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\backends\imgui_impl_glfw.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:..\libs\glfw\lib-vc2010-64 /libpath:%VULKAN_SDK%\lib glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib - -@set OUT_DIR=Debug -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% - -@set OUT_DIR=Release -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% diff --git a/libs/imgui-1.92.1/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj b/libs/imgui-1.92.1/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj deleted file mode 100644 index a81d328..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj +++ /dev/null @@ -1,190 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {57E2DF5A-6FC8-45BB-99DD-91A18C646E80} - example_glfw_vulkan - 8.1 - - - - Application - true - MultiByte - v140 - - - Application - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - - Level4 - Disabled - ..\..;..\..\backends;%VULKAN_SDK%\include;..\libs\glfw\include;%(AdditionalIncludeDirectories) - _MBCS;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - %VULKAN_SDK%\lib32;..\libs\glfw\lib-vc2010-32;%(AdditionalLibraryDirectories) - vulkan-1.lib;glfw3.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - Disabled - ..\..;..\..\backends;%VULKAN_SDK%\include;..\libs\glfw\include;%(AdditionalIncludeDirectories) - _MBCS;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - %VULKAN_SDK%\lib;..\libs\glfw\lib-vc2010-64;%(AdditionalLibraryDirectories) - vulkan-1.lib;glfw3.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%VULKAN_SDK%\include;..\libs\glfw\include;%(AdditionalIncludeDirectories) - false - _MBCS;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - true - true - %VULKAN_SDK%\lib32;..\libs\glfw\lib-vc2010-32;%(AdditionalLibraryDirectories) - vulkan-1.lib;glfw3.lib;%(AdditionalDependencies) - Console - - - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%VULKAN_SDK%\include;..\libs\glfw\include;%(AdditionalIncludeDirectories) - false - _MBCS;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - true - true - %VULKAN_SDK%\lib;..\libs\glfw\lib-vc2010-64;%(AdditionalLibraryDirectories) - vulkan-1.lib;glfw3.lib;%(AdditionalDependencies) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj.filters b/libs/imgui-1.92.1/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj.filters deleted file mode 100644 index 510fc85..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj.filters +++ /dev/null @@ -1,64 +0,0 @@ - - - - - {20b90ce4-7fcb-4731-b9a0-075f875de82d} - - - {f18ab499-84e1-499f-8eff-9754361e0e52} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - - - sources - - - imgui - - - imgui - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - - imgui - - - imgui - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_glfw_vulkan/main.cpp b/libs/imgui-1.92.1/examples/example_glfw_vulkan/main.cpp deleted file mode 100644 index 19766b9..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_vulkan/main.cpp +++ /dev/null @@ -1,534 +0,0 @@ -// Dear ImGui: standalone example application for Glfw + Vulkan - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// Important note to the reader who wish to integrate imgui_impl_vulkan.cpp/.h in their own engine/app. -// - Common ImGui_ImplVulkan_XXX functions and structures are used to interface with imgui_impl_vulkan.cpp/.h. -// You will use those if you want to use this rendering backend in your engine/app. -// - Helper ImGui_ImplVulkanH_XXX functions and structures are only used by this example (main.cpp) and by -// the backend itself (imgui_impl_vulkan.cpp), but should PROBABLY NOT be used by your own engine/app code. -// Read comments in imgui_impl_vulkan.h. - -#include "imgui.h" -#include "imgui_impl_glfw.h" -#include "imgui_impl_vulkan.h" -#include // printf, fprintf -#include // abort -#define GLFW_INCLUDE_NONE -#define GLFW_INCLUDE_VULKAN -#include - -// Volk headers -#ifdef IMGUI_IMPL_VULKAN_USE_VOLK -#define VOLK_IMPLEMENTATION -#include -#endif - -// [Win32] Our example includes a copy of glfw3.lib pre-compiled with VS2010 to maximize ease of testing and compatibility with old VS compilers. -// To link with VS2010-era libraries, VS2015+ requires linking with legacy_stdio_definitions.lib, which we do using this pragma. -// Your own project should not be affected, as you are likely to link with a newer binary of GLFW that is adequate for your version of Visual Studio. -#if defined(_MSC_VER) && (_MSC_VER >= 1900) && !defined(IMGUI_DISABLE_WIN32_FUNCTIONS) -#pragma comment(lib, "legacy_stdio_definitions") -#endif - -//#define APP_USE_UNLIMITED_FRAME_RATE -#ifdef _DEBUG -#define APP_USE_VULKAN_DEBUG_REPORT -static VkDebugReportCallbackEXT g_DebugReport = VK_NULL_HANDLE; -#endif - -// Data -static VkAllocationCallbacks* g_Allocator = nullptr; -static VkInstance g_Instance = VK_NULL_HANDLE; -static VkPhysicalDevice g_PhysicalDevice = VK_NULL_HANDLE; -static VkDevice g_Device = VK_NULL_HANDLE; -static uint32_t g_QueueFamily = (uint32_t)-1; -static VkQueue g_Queue = VK_NULL_HANDLE; -static VkPipelineCache g_PipelineCache = VK_NULL_HANDLE; -static VkDescriptorPool g_DescriptorPool = VK_NULL_HANDLE; - -static ImGui_ImplVulkanH_Window g_MainWindowData; -static uint32_t g_MinImageCount = 2; -static bool g_SwapChainRebuild = false; - -static void glfw_error_callback(int error, const char* description) -{ - fprintf(stderr, "GLFW Error %d: %s\n", error, description); -} -static void check_vk_result(VkResult err) -{ - if (err == VK_SUCCESS) - return; - fprintf(stderr, "[vulkan] Error: VkResult = %d\n", err); - if (err < 0) - abort(); -} - -#ifdef APP_USE_VULKAN_DEBUG_REPORT -static VKAPI_ATTR VkBool32 VKAPI_CALL debug_report(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, void* pUserData) -{ - (void)flags; (void)object; (void)location; (void)messageCode; (void)pUserData; (void)pLayerPrefix; // Unused arguments - fprintf(stderr, "[vulkan] Debug report from ObjectType: %i\nMessage: %s\n\n", objectType, pMessage); - return VK_FALSE; -} -#endif // APP_USE_VULKAN_DEBUG_REPORT - -static bool IsExtensionAvailable(const ImVector& properties, const char* extension) -{ - for (const VkExtensionProperties& p : properties) - if (strcmp(p.extensionName, extension) == 0) - return true; - return false; -} - -static void SetupVulkan(ImVector instance_extensions) -{ - VkResult err; -#ifdef IMGUI_IMPL_VULKAN_USE_VOLK - volkInitialize(); -#endif - - // Create Vulkan Instance - { - VkInstanceCreateInfo create_info = {}; - create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO; - - // Enumerate available extensions - uint32_t properties_count; - ImVector properties; - vkEnumerateInstanceExtensionProperties(nullptr, &properties_count, nullptr); - properties.resize(properties_count); - err = vkEnumerateInstanceExtensionProperties(nullptr, &properties_count, properties.Data); - check_vk_result(err); - - // Enable required extensions - if (IsExtensionAvailable(properties, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)) - instance_extensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); -#ifdef VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME - if (IsExtensionAvailable(properties, VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME)) - { - instance_extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME); - create_info.flags |= VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR; - } -#endif - - // Enabling validation layers -#ifdef APP_USE_VULKAN_DEBUG_REPORT - const char* layers[] = { "VK_LAYER_KHRONOS_validation" }; - create_info.enabledLayerCount = 1; - create_info.ppEnabledLayerNames = layers; - instance_extensions.push_back("VK_EXT_debug_report"); -#endif - - // Create Vulkan Instance - create_info.enabledExtensionCount = (uint32_t)instance_extensions.Size; - create_info.ppEnabledExtensionNames = instance_extensions.Data; - err = vkCreateInstance(&create_info, g_Allocator, &g_Instance); - check_vk_result(err); -#ifdef IMGUI_IMPL_VULKAN_USE_VOLK - volkLoadInstance(g_Instance); -#endif - - // Setup the debug report callback -#ifdef APP_USE_VULKAN_DEBUG_REPORT - auto f_vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkCreateDebugReportCallbackEXT"); - IM_ASSERT(f_vkCreateDebugReportCallbackEXT != nullptr); - VkDebugReportCallbackCreateInfoEXT debug_report_ci = {}; - debug_report_ci.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT; - debug_report_ci.flags = VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_WARNING_BIT_EXT | VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT; - debug_report_ci.pfnCallback = debug_report; - debug_report_ci.pUserData = nullptr; - err = f_vkCreateDebugReportCallbackEXT(g_Instance, &debug_report_ci, g_Allocator, &g_DebugReport); - check_vk_result(err); -#endif - } - - // Select Physical Device (GPU) - g_PhysicalDevice = ImGui_ImplVulkanH_SelectPhysicalDevice(g_Instance); - IM_ASSERT(g_PhysicalDevice != VK_NULL_HANDLE); - - // Select graphics queue family - g_QueueFamily = ImGui_ImplVulkanH_SelectQueueFamilyIndex(g_PhysicalDevice); - IM_ASSERT(g_QueueFamily != (uint32_t)-1); - - // Create Logical Device (with 1 queue) - { - ImVector device_extensions; - device_extensions.push_back("VK_KHR_swapchain"); - - // Enumerate physical device extension - uint32_t properties_count; - ImVector properties; - vkEnumerateDeviceExtensionProperties(g_PhysicalDevice, nullptr, &properties_count, nullptr); - properties.resize(properties_count); - vkEnumerateDeviceExtensionProperties(g_PhysicalDevice, nullptr, &properties_count, properties.Data); -#ifdef VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME - if (IsExtensionAvailable(properties, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME)) - device_extensions.push_back(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME); -#endif - - const float queue_priority[] = { 1.0f }; - VkDeviceQueueCreateInfo queue_info[1] = {}; - queue_info[0].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO; - queue_info[0].queueFamilyIndex = g_QueueFamily; - queue_info[0].queueCount = 1; - queue_info[0].pQueuePriorities = queue_priority; - VkDeviceCreateInfo create_info = {}; - create_info.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO; - create_info.queueCreateInfoCount = sizeof(queue_info) / sizeof(queue_info[0]); - create_info.pQueueCreateInfos = queue_info; - create_info.enabledExtensionCount = (uint32_t)device_extensions.Size; - create_info.ppEnabledExtensionNames = device_extensions.Data; - err = vkCreateDevice(g_PhysicalDevice, &create_info, g_Allocator, &g_Device); - check_vk_result(err); - vkGetDeviceQueue(g_Device, g_QueueFamily, 0, &g_Queue); - } - - // Create Descriptor Pool - // If you wish to load e.g. additional textures you may need to alter pools sizes and maxSets. - { - VkDescriptorPoolSize pool_sizes[] = - { - { VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE }, - }; - VkDescriptorPoolCreateInfo pool_info = {}; - pool_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO; - pool_info.flags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT; - pool_info.maxSets = 0; - for (VkDescriptorPoolSize& pool_size : pool_sizes) - pool_info.maxSets += pool_size.descriptorCount; - pool_info.poolSizeCount = (uint32_t)IM_ARRAYSIZE(pool_sizes); - pool_info.pPoolSizes = pool_sizes; - err = vkCreateDescriptorPool(g_Device, &pool_info, g_Allocator, &g_DescriptorPool); - check_vk_result(err); - } -} - -// All the ImGui_ImplVulkanH_XXX structures/functions are optional helpers used by the demo. -// Your real engine/app may not use them. -static void SetupVulkanWindow(ImGui_ImplVulkanH_Window* wd, VkSurfaceKHR surface, int width, int height) -{ - wd->Surface = surface; - - // Check for WSI support - VkBool32 res; - vkGetPhysicalDeviceSurfaceSupportKHR(g_PhysicalDevice, g_QueueFamily, wd->Surface, &res); - if (res != VK_TRUE) - { - fprintf(stderr, "Error no WSI support on physical device 0\n"); - exit(-1); - } - - // Select Surface Format - const VkFormat requestSurfaceImageFormat[] = { VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_R8G8B8_UNORM }; - const VkColorSpaceKHR requestSurfaceColorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR; - wd->SurfaceFormat = ImGui_ImplVulkanH_SelectSurfaceFormat(g_PhysicalDevice, wd->Surface, requestSurfaceImageFormat, (size_t)IM_ARRAYSIZE(requestSurfaceImageFormat), requestSurfaceColorSpace); - - // Select Present Mode -#ifdef APP_USE_UNLIMITED_FRAME_RATE - VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_FIFO_KHR }; -#else - VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_FIFO_KHR }; -#endif - wd->PresentMode = ImGui_ImplVulkanH_SelectPresentMode(g_PhysicalDevice, wd->Surface, &present_modes[0], IM_ARRAYSIZE(present_modes)); - //printf("[vulkan] Selected PresentMode = %d\n", wd->PresentMode); - - // Create SwapChain, RenderPass, Framebuffer, etc. - IM_ASSERT(g_MinImageCount >= 2); - ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, wd, g_QueueFamily, g_Allocator, width, height, g_MinImageCount); -} - -static void CleanupVulkan() -{ - vkDestroyDescriptorPool(g_Device, g_DescriptorPool, g_Allocator); - -#ifdef APP_USE_VULKAN_DEBUG_REPORT - // Remove the debug report callback - auto f_vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkDestroyDebugReportCallbackEXT"); - f_vkDestroyDebugReportCallbackEXT(g_Instance, g_DebugReport, g_Allocator); -#endif // APP_USE_VULKAN_DEBUG_REPORT - - vkDestroyDevice(g_Device, g_Allocator); - vkDestroyInstance(g_Instance, g_Allocator); -} - -static void CleanupVulkanWindow() -{ - ImGui_ImplVulkanH_DestroyWindow(g_Instance, g_Device, &g_MainWindowData, g_Allocator); -} - -static void FrameRender(ImGui_ImplVulkanH_Window* wd, ImDrawData* draw_data) -{ - VkSemaphore image_acquired_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore; - VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore; - VkResult err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex); - if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR) - g_SwapChainRebuild = true; - if (err == VK_ERROR_OUT_OF_DATE_KHR) - return; - if (err != VK_SUBOPTIMAL_KHR) - check_vk_result(err); - - ImGui_ImplVulkanH_Frame* fd = &wd->Frames[wd->FrameIndex]; - { - err = vkWaitForFences(g_Device, 1, &fd->Fence, VK_TRUE, UINT64_MAX); // wait indefinitely instead of periodically checking - check_vk_result(err); - - err = vkResetFences(g_Device, 1, &fd->Fence); - check_vk_result(err); - } - { - err = vkResetCommandPool(g_Device, fd->CommandPool, 0); - check_vk_result(err); - VkCommandBufferBeginInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; - info.flags |= VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT; - err = vkBeginCommandBuffer(fd->CommandBuffer, &info); - check_vk_result(err); - } - { - VkRenderPassBeginInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO; - info.renderPass = wd->RenderPass; - info.framebuffer = fd->Framebuffer; - info.renderArea.extent.width = wd->Width; - info.renderArea.extent.height = wd->Height; - info.clearValueCount = 1; - info.pClearValues = &wd->ClearValue; - vkCmdBeginRenderPass(fd->CommandBuffer, &info, VK_SUBPASS_CONTENTS_INLINE); - } - - // Record dear imgui primitives into command buffer - ImGui_ImplVulkan_RenderDrawData(draw_data, fd->CommandBuffer); - - // Submit command buffer - vkCmdEndRenderPass(fd->CommandBuffer); - { - VkPipelineStageFlags wait_stage = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - VkSubmitInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; - info.waitSemaphoreCount = 1; - info.pWaitSemaphores = &image_acquired_semaphore; - info.pWaitDstStageMask = &wait_stage; - info.commandBufferCount = 1; - info.pCommandBuffers = &fd->CommandBuffer; - info.signalSemaphoreCount = 1; - info.pSignalSemaphores = &render_complete_semaphore; - - err = vkEndCommandBuffer(fd->CommandBuffer); - check_vk_result(err); - err = vkQueueSubmit(g_Queue, 1, &info, fd->Fence); - check_vk_result(err); - } -} - -static void FramePresent(ImGui_ImplVulkanH_Window* wd) -{ - if (g_SwapChainRebuild) - return; - VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore; - VkPresentInfoKHR info = {}; - info.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR; - info.waitSemaphoreCount = 1; - info.pWaitSemaphores = &render_complete_semaphore; - info.swapchainCount = 1; - info.pSwapchains = &wd->Swapchain; - info.pImageIndices = &wd->FrameIndex; - VkResult err = vkQueuePresentKHR(g_Queue, &info); - if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR) - g_SwapChainRebuild = true; - if (err == VK_ERROR_OUT_OF_DATE_KHR) - return; - if (err != VK_SUBOPTIMAL_KHR) - check_vk_result(err); - wd->SemaphoreIndex = (wd->SemaphoreIndex + 1) % wd->SemaphoreCount; // Now we can use the next set of semaphores -} - -// Main code -int main(int, char**) -{ - glfwSetErrorCallback(glfw_error_callback); - if (!glfwInit()) - return 1; - - // Create window with Vulkan context - glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API); - GLFWwindow* window = glfwCreateWindow(1280, 720, "Dear ImGui GLFW+Vulkan example", nullptr, nullptr); - if (!glfwVulkanSupported()) - { - printf("GLFW: Vulkan Not Supported\n"); - return 1; - } - - ImVector extensions; - uint32_t extensions_count = 0; - const char** glfw_extensions = glfwGetRequiredInstanceExtensions(&extensions_count); - for (uint32_t i = 0; i < extensions_count; i++) - extensions.push_back(glfw_extensions[i]); - SetupVulkan(extensions); - - // Create Window Surface - VkSurfaceKHR surface; - VkResult err = glfwCreateWindowSurface(g_Instance, window, g_Allocator, &surface); - check_vk_result(err); - - // Create Framebuffers - int w, h; - glfwGetFramebufferSize(window, &w, &h); - ImGui_ImplVulkanH_Window* wd = &g_MainWindowData; - SetupVulkanWindow(wd, surface, w, h); - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup Platform/Renderer backends - ImGui_ImplGlfw_InitForVulkan(window, true); - ImGui_ImplVulkan_InitInfo init_info = {}; - //init_info.ApiVersion = VK_API_VERSION_1_3; // Pass in your value of VkApplicationInfo::apiVersion, otherwise will default to header version. - init_info.Instance = g_Instance; - init_info.PhysicalDevice = g_PhysicalDevice; - init_info.Device = g_Device; - init_info.QueueFamily = g_QueueFamily; - init_info.Queue = g_Queue; - init_info.PipelineCache = g_PipelineCache; - init_info.DescriptorPool = g_DescriptorPool; - init_info.RenderPass = wd->RenderPass; - init_info.Subpass = 0; - init_info.MinImageCount = g_MinImageCount; - init_info.ImageCount = wd->ImageCount; - init_info.MSAASamples = VK_SAMPLE_COUNT_1_BIT; - init_info.Allocator = g_Allocator; - init_info.CheckVkResultFn = check_vk_result; - ImGui_ImplVulkan_Init(&init_info); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop - while (!glfwWindowShouldClose(window)) - { - // Poll and handle events (inputs, window resize, etc.) - // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. - // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. - // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. - // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. - glfwPollEvents(); - - // Resize swap chain? - int fb_width, fb_height; - glfwGetFramebufferSize(window, &fb_width, &fb_height); - if (fb_width > 0 && fb_height > 0 && (g_SwapChainRebuild || g_MainWindowData.Width != fb_width || g_MainWindowData.Height != fb_height)) - { - ImGui_ImplVulkan_SetMinImageCount(g_MinImageCount); - ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, &g_MainWindowData, g_QueueFamily, g_Allocator, fb_width, fb_height, g_MinImageCount); - g_MainWindowData.FrameIndex = 0; - g_SwapChainRebuild = false; - } - if (glfwGetWindowAttrib(window, GLFW_ICONIFIED) != 0) - { - ImGui_ImplGlfw_Sleep(10); - continue; - } - - // Start the Dear ImGui frame - ImGui_ImplVulkan_NewFrame(); - ImGui_ImplGlfw_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - ImDrawData* draw_data = ImGui::GetDrawData(); - const bool is_minimized = (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f); - if (!is_minimized) - { - wd->ClearValue.color.float32[0] = clear_color.x * clear_color.w; - wd->ClearValue.color.float32[1] = clear_color.y * clear_color.w; - wd->ClearValue.color.float32[2] = clear_color.z * clear_color.w; - wd->ClearValue.color.float32[3] = clear_color.w; - FrameRender(wd, draw_data); - FramePresent(wd); - } - } - - // Cleanup - err = vkDeviceWaitIdle(g_Device); - check_vk_result(err); - ImGui_ImplVulkan_Shutdown(); - ImGui_ImplGlfw_Shutdown(); - ImGui::DestroyContext(); - - CleanupVulkanWindow(); - CleanupVulkan(); - - glfwDestroyWindow(window); - glfwTerminate(); - - return 0; -} diff --git a/libs/imgui-1.92.1/examples/example_glfw_wgpu/CMakeLists.txt b/libs/imgui-1.92.1/examples/example_glfw_wgpu/CMakeLists.txt deleted file mode 100644 index 8e164e4..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_wgpu/CMakeLists.txt +++ /dev/null @@ -1,117 +0,0 @@ -# Building for desktop (WebGPU-native) with Dawn: -# 1. git clone https://github.com/google/dawn dawn -# 2. cmake -B build -DIMGUI_DAWN_DIR=dawn -# 3. cmake --build build -# The resulting binary will be found at one of the following locations: -# * build/Debug/example_glfw_wgpu[.exe] -# * build/example_glfw_wgpu[.exe] - -# Building for Emscripten: -# 1. Install Emscripten SDK following the instructions: https://emscripten.org/docs/getting_started/downloads.html -# 2. Install Ninja build system -# 3. emcmake cmake -G Ninja -B build -# 3. cmake --build build -# 4. emrun build/index.html - -cmake_minimum_required(VERSION 3.10.2) -project(imgui_example_glfw_wgpu C CXX) - -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Debug CACHE STRING "" FORCE) -endif() - -set(CMAKE_CXX_STANDARD 17) # Dawn requires C++17 - -# Dear ImGui -set(IMGUI_DIR ../../) - -# Libraries -if(EMSCRIPTEN) - if(EMSCRIPTEN_VERSION VERSION_GREATER_EQUAL "3.1.57") - set(IMGUI_EMSCRIPTEN_GLFW3 "--use-port=contrib.glfw3" CACHE STRING "Choose between --use-port=contrib.glfw3 and -sUSE_GLFW=3 for GLFW implementation (default to --use-port=contrib.glfw3)") - else() - # cannot use contrib.glfw3 prior to 3.1.57 - set(IMGUI_EMSCRIPTEN_GLFW3 "-sUSE_GLFW=3" CACHE STRING "Use -sUSE_GLFW=3 for GLFW implementation" FORCE) - endif() - set(LIBRARIES glfw) - add_compile_options(-sDISABLE_EXCEPTION_CATCHING=1 -DIMGUI_DISABLE_FILE_FUNCTIONS=1) -else() - # Dawn wgpu desktop - set(DAWN_FETCH_DEPENDENCIES ON) - set(IMGUI_DAWN_DIR CACHE PATH "Path to Dawn repository") - if (NOT IMGUI_DAWN_DIR) - message(FATAL_ERROR "Please specify the Dawn repository by setting IMGUI_DAWN_DIR") - endif() - - option(DAWN_FETCH_DEPENDENCIES "Use fetch_dawn_dependencies.py as an alternative to using depot_tools" ON) - - # Dawn builds many things by default - disable things we don't need - option(DAWN_BUILD_SAMPLES "Enables building Dawn's samples" OFF) - option(TINT_BUILD_CMD_TOOLS "Build the Tint command line tools" OFF) - option(TINT_BUILD_DOCS "Build documentation" OFF) - option(TINT_BUILD_TESTS "Build tests" OFF) - if (NOT APPLE) - option(TINT_BUILD_MSL_WRITER "Build the MSL output writer" OFF) - endif() - if(WIN32) - option(TINT_BUILD_SPV_READER "Build the SPIR-V input reader" OFF) - option(TINT_BUILD_WGSL_READER "Build the WGSL input reader" ON) - option(TINT_BUILD_GLSL_WRITER "Build the GLSL output writer" OFF) - option(TINT_BUILD_GLSL_VALIDATOR "Build the GLSL output validator" OFF) - option(TINT_BUILD_SPV_WRITER "Build the SPIR-V output writer" OFF) - option(TINT_BUILD_WGSL_WRITER "Build the WGSL output writer" ON) - endif() - - add_subdirectory("${IMGUI_DAWN_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/dawn" EXCLUDE_FROM_ALL) - - set(LIBRARIES webgpu_dawn webgpu_cpp webgpu_glfw glfw) -endif() - -add_executable(example_glfw_wgpu - main.cpp - # backend files - ${IMGUI_DIR}/backends/imgui_impl_glfw.cpp - ${IMGUI_DIR}/backends/imgui_impl_wgpu.cpp - # Dear ImGui files - ${IMGUI_DIR}/imgui.cpp - ${IMGUI_DIR}/imgui_draw.cpp - ${IMGUI_DIR}/imgui_demo.cpp - ${IMGUI_DIR}/imgui_tables.cpp - ${IMGUI_DIR}/imgui_widgets.cpp -) -IF(NOT EMSCRIPTEN) - target_compile_definitions(example_glfw_wgpu PUBLIC - "IMGUI_IMPL_WEBGPU_BACKEND_DAWN" - ) -endif() -target_include_directories(example_glfw_wgpu PUBLIC - ${IMGUI_DIR} - ${IMGUI_DIR}/backends -) - -target_link_libraries(example_glfw_wgpu PUBLIC ${LIBRARIES}) - -# Emscripten settings -if(EMSCRIPTEN) - if("${IMGUI_EMSCRIPTEN_GLFW3}" STREQUAL "--use-port=contrib.glfw3") - target_compile_options(example_glfw_wgpu PUBLIC - "${IMGUI_EMSCRIPTEN_GLFW3}" - ) - endif() - message(STATUS "Using ${IMGUI_EMSCRIPTEN_GLFW3} GLFW implementation") - target_link_options(example_glfw_wgpu PRIVATE - "-sUSE_WEBGPU=1" - "${IMGUI_EMSCRIPTEN_GLFW3}" - "-sWASM=1" - "-sALLOW_MEMORY_GROWTH=1" - "-sNO_EXIT_RUNTIME=0" - "-sASSERTIONS=1" - "-sDISABLE_EXCEPTION_CATCHING=1" - "-sNO_FILESYSTEM=1" - ) - set_target_properties(example_glfw_wgpu PROPERTIES OUTPUT_NAME "index") - # copy our custom index.html to build directory - add_custom_command(TARGET example_glfw_wgpu POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_LIST_DIR}/web/index.html" $ - ) -endif() diff --git a/libs/imgui-1.92.1/examples/example_glfw_wgpu/Makefile.emscripten b/libs/imgui-1.92.1/examples/example_glfw_wgpu/Makefile.emscripten deleted file mode 100644 index 8ee398b..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_wgpu/Makefile.emscripten +++ /dev/null @@ -1,92 +0,0 @@ -# -# Makefile to use with emscripten -# See https://emscripten.org/docs/getting_started/downloads.html -# for installation instructions. -# -# This Makefile assumes you have loaded emscripten's environment. -# (On Windows, you may need to execute emsdk_env.bat or encmdprompt.bat ahead) -# -# Running `make` will produce three files: -# - web/index.html (current stored in the repository) -# - web/index.js -# - web/index.wasm -# -# All three are needed to run the demo. - -CC = emcc -CXX = em++ -WEB_DIR = web -EXE = $(WEB_DIR)/index.js -IMGUI_DIR = ../.. -SOURCES = main.cpp -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glfw.cpp $(IMGUI_DIR)/backends/imgui_impl_wgpu.cpp -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) -UNAME_S := $(shell uname -s) -CPPFLAGS = -LDFLAGS = -EMS = - -##--------------------------------------------------------------------- -## EMSCRIPTEN OPTIONS -##--------------------------------------------------------------------- - -# ("EMS" options gets added to both CPPFLAGS and LDFLAGS, whereas some options are for linker only) -# Note: For glfw, we use emscripten-glfw port (contrib.glfw3) instead of (-s USE_GLFW=3) to get a better support for High DPI displays. -EMS += -s DISABLE_EXCEPTION_CATCHING=1 --use-port=contrib.glfw3 -LDFLAGS += -s USE_WEBGPU=1 -LDFLAGS += -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 -s NO_EXIT_RUNTIME=0 -s ASSERTIONS=1 - -# Build as single file (binary text encoded in .html file) -#LDFLAGS += -sSINGLE_FILE - -# Emscripten allows preloading a file or folder to be accessible at runtime. -# The Makefile for this example project suggests embedding the misc/fonts/ folder into our application, it will then be accessible as "/fonts" -# See documentation for more details: https://emscripten.org/docs/porting/files/packaging_files.html -# (Default value is 0. Set to 1 to enable file-system and include the misc/fonts/ folder as part of the build.) -USE_FILE_SYSTEM ?= 0 -ifeq ($(USE_FILE_SYSTEM), 0) -LDFLAGS += -s NO_FILESYSTEM=1 -CPPFLAGS += -DIMGUI_DISABLE_FILE_FUNCTIONS -endif -ifeq ($(USE_FILE_SYSTEM), 1) -LDFLAGS += --no-heap-copy --preload-file ../../misc/fonts@/fonts -endif - -##--------------------------------------------------------------------- -## FINAL BUILD FLAGS -##--------------------------------------------------------------------- - -CPPFLAGS += -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -#CPPFLAGS += -g -CPPFLAGS += -Wall -Wformat -Os $(EMS) -#LDFLAGS += --shell-file shell_minimal.html -LDFLAGS += $(EMS) - -##--------------------------------------------------------------------- -## BUILD RULES -##--------------------------------------------------------------------- - -%.o:%.cpp - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< - -all: $(EXE) - @echo Build complete for $(EXE) - -$(WEB_DIR): - mkdir $@ - -serve: all - python3 -m http.server -d $(WEB_DIR) - -$(EXE): $(OBJS) $(WEB_DIR) - $(CXX) -o $@ $(OBJS) $(LDFLAGS) - -clean: - rm -f $(EXE) $(OBJS) $(WEB_DIR)/*.js $(WEB_DIR)/*.wasm $(WEB_DIR)/*.wasm.pre diff --git a/libs/imgui-1.92.1/examples/example_glfw_wgpu/README.md b/libs/imgui-1.92.1/examples/example_glfw_wgpu/README.md deleted file mode 100644 index 399d431..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_wgpu/README.md +++ /dev/null @@ -1,24 +0,0 @@ -## How to Build - -- You need to install Emscripten from https://emscripten.org/docs/getting_started/downloads.html, and have the environment variables set, as described in https://emscripten.org/docs/getting_started/downloads.html#installation-instructions - -- Depending on your configuration, in Windows you may need to run `emsdk/emsdk_env.bat` in your console to access the Emscripten command-line tools. - -- You may also refer to our [Continuous Integration setup](https://github.com/ocornut/imgui/tree/master/.github/workflows) for Emscripten setup. - -- Then build using `make -f Makefile.emscripten` while in the `example_glfw_wgpu/` directory. - -- Requires recent Emscripten as WGPU is still a work-in-progress API. - -## How to Run - -To run on a local machine: -- Make sure your browse supports WGPU and it is enabled. WGPU is still WIP not enabled by default in most browser. -- `make serve` will use Python3 to spawn a local webserver, you can then browse http://localhost:8000 to access your build. -- Otherwise, generally you will need a local webserver: - - Quoting [https://emscripten.org/docs/getting_started](https://emscripten.org/docs/getting_started/Tutorial.html#generating-html):
-_"Unfortunately several browsers (including Chrome, Safari, and Internet Explorer) do not support file:// [XHR](https://emscripten.org/docs/site/glossary.html#term-xhr) requests, and can’t load extra files needed by the HTML (like a .wasm file, or packaged file data as mentioned lower down). For these browsers you’ll need to serve the files using a [local webserver](https://emscripten.org/docs/getting_started/FAQ.html#faq-local-webserver) and then open http://localhost:8000/hello.html."_ - - Emscripten SDK has a handy `emrun` command: `emrun web/example_glfw_wgpu.html --browser firefox` which will spawn a temporary local webserver (in Firefox). See https://emscripten.org/docs/compiling/Running-html-files-with-emrun.html for details. - - You may use Python 3 builtin webserver: `python -m http.server -d web` (this is what `make serve` uses). - - You may use Python 2 builtin webserver: `cd web && python -m SimpleHTTPServer`. - - If you are accessing the files over a network, certain browsers, such as Firefox, will restrict Gamepad API access to secure contexts only (e.g. https only). diff --git a/libs/imgui-1.92.1/examples/example_glfw_wgpu/main.cpp b/libs/imgui-1.92.1/examples/example_glfw_wgpu/main.cpp deleted file mode 100644 index c150b59..0000000 --- a/libs/imgui-1.92.1/examples/example_glfw_wgpu/main.cpp +++ /dev/null @@ -1,350 +0,0 @@ -// Dear ImGui: standalone example application for using GLFW + WebGPU -// - Emscripten is supported for publishing on web. See https://emscripten.org. -// - Dawn is used as a WebGPU implementation on desktop. - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#include "imgui.h" -#include "imgui_impl_glfw.h" -#include "imgui_impl_wgpu.h" -#include - -#ifdef __EMSCRIPTEN__ -#include -#include -#include -#else -#include -#endif - -#include -#include -#include - -// This example can also compile and run with Emscripten! See 'Makefile.emscripten' for details. -#ifdef __EMSCRIPTEN__ -#include "../libs/emscripten/emscripten_mainloop_stub.h" -#endif - -// Global WebGPU required states -static WGPUInstance wgpu_instance = nullptr; -static WGPUDevice wgpu_device = nullptr; -static WGPUSurface wgpu_surface = nullptr; -static WGPUTextureFormat wgpu_preferred_fmt = WGPUTextureFormat_RGBA8Unorm; -static WGPUSwapChain wgpu_swap_chain = nullptr; -static int wgpu_swap_chain_width = 1280; -static int wgpu_swap_chain_height = 720; - -// Forward declarations -static bool InitWGPU(GLFWwindow* window); -static void CreateSwapChain(int width, int height); - -static void glfw_error_callback(int error, const char* description) -{ - printf("GLFW Error %d: %s\n", error, description); -} - -static void wgpu_error_callback(WGPUErrorType error_type, const char* message, void*) -{ - const char* error_type_lbl = ""; - switch (error_type) - { - case WGPUErrorType_Validation: error_type_lbl = "Validation"; break; - case WGPUErrorType_OutOfMemory: error_type_lbl = "Out of memory"; break; - case WGPUErrorType_Unknown: error_type_lbl = "Unknown"; break; - case WGPUErrorType_DeviceLost: error_type_lbl = "Device lost"; break; - default: error_type_lbl = "Unknown"; - } - printf("%s error: %s\n", error_type_lbl, message); -} - -// Main code -int main(int, char**) -{ - glfwSetErrorCallback(glfw_error_callback); - if (!glfwInit()) - return 1; - - // Make sure GLFW does not initialize any graphics context. - // This needs to be done explicitly later. - glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API); - GLFWwindow* window = glfwCreateWindow(wgpu_swap_chain_width, wgpu_swap_chain_height, "Dear ImGui GLFW+WebGPU example", nullptr, nullptr); - if (window == nullptr) - return 1; - - // Initialize the WebGPU environment - if (!InitWGPU(window)) - { - if (window) - glfwDestroyWindow(window); - glfwTerminate(); - return 1; - } - CreateSwapChain(wgpu_swap_chain_width, wgpu_swap_chain_height); - glfwShowWindow(window); - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup Platform/Renderer backends - ImGui_ImplGlfw_InitForOther(window, true); -#ifdef __EMSCRIPTEN__ - ImGui_ImplGlfw_InstallEmscriptenCallbacks(window, "#canvas"); -#endif - ImGui_ImplWGPU_InitInfo init_info; - init_info.Device = wgpu_device; - init_info.NumFramesInFlight = 3; - init_info.RenderTargetFormat = wgpu_preferred_fmt; - init_info.DepthStencilFormat = WGPUTextureFormat_Undefined; - ImGui_ImplWGPU_Init(&init_info); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - // - Emscripten allows preloading a file or folder to be accessible at runtime. See Makefile for details. - //io.Fonts->AddFontDefault(); - //style.FontSizeBase = 20.0f; -#ifndef IMGUI_DISABLE_FILE_FUNCTIONS - //io.Fonts->AddFontFromFileTTF("fonts/segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("fonts/Cousine-Regular.ttf"); - //io.Fonts->AddFontFromFileTTF("fonts/ProggyTiny.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("fonts/ArialUni.ttf"); - //IM_ASSERT(font != nullptr); -#endif - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop -#ifdef __EMSCRIPTEN__ - // For an Emscripten build we are disabling file-system access, so let's not attempt to do a fopen() of the imgui.ini file. - // You may manually call LoadIniSettingsFromMemory() to load settings from your own storage. - io.IniFilename = nullptr; - EMSCRIPTEN_MAINLOOP_BEGIN -#else - while (!glfwWindowShouldClose(window)) -#endif - { - // Poll and handle events (inputs, window resize, etc.) - // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. - // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. - // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. - // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. - glfwPollEvents(); - if (glfwGetWindowAttrib(window, GLFW_ICONIFIED) != 0) - { - ImGui_ImplGlfw_Sleep(10); - continue; - } - - // React to changes in screen size - int width, height; - glfwGetFramebufferSize((GLFWwindow*)window, &width, &height); - if (width != wgpu_swap_chain_width || height != wgpu_swap_chain_height) - { - ImGui_ImplWGPU_InvalidateDeviceObjects(); - CreateSwapChain(width, height); - ImGui_ImplWGPU_CreateDeviceObjects(); - } - - // Start the Dear ImGui frame - ImGui_ImplWGPU_NewFrame(); - ImGui_ImplGlfw_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - -#ifndef __EMSCRIPTEN__ - // Tick needs to be called in Dawn to display validation errors - wgpuDeviceTick(wgpu_device); -#endif - - WGPURenderPassColorAttachment color_attachments = {}; - color_attachments.depthSlice = WGPU_DEPTH_SLICE_UNDEFINED; - color_attachments.loadOp = WGPULoadOp_Clear; - color_attachments.storeOp = WGPUStoreOp_Store; - color_attachments.clearValue = { clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w }; - color_attachments.view = wgpuSwapChainGetCurrentTextureView(wgpu_swap_chain); - - WGPURenderPassDescriptor render_pass_desc = {}; - render_pass_desc.colorAttachmentCount = 1; - render_pass_desc.colorAttachments = &color_attachments; - render_pass_desc.depthStencilAttachment = nullptr; - - WGPUCommandEncoderDescriptor enc_desc = {}; - WGPUCommandEncoder encoder = wgpuDeviceCreateCommandEncoder(wgpu_device, &enc_desc); - - WGPURenderPassEncoder pass = wgpuCommandEncoderBeginRenderPass(encoder, &render_pass_desc); - ImGui_ImplWGPU_RenderDrawData(ImGui::GetDrawData(), pass); - wgpuRenderPassEncoderEnd(pass); - - WGPUCommandBufferDescriptor cmd_buffer_desc = {}; - WGPUCommandBuffer cmd_buffer = wgpuCommandEncoderFinish(encoder, &cmd_buffer_desc); - WGPUQueue queue = wgpuDeviceGetQueue(wgpu_device); - wgpuQueueSubmit(queue, 1, &cmd_buffer); - -#ifndef __EMSCRIPTEN__ - wgpuSwapChainPresent(wgpu_swap_chain); -#endif - - wgpuTextureViewRelease(color_attachments.view); - wgpuRenderPassEncoderRelease(pass); - wgpuCommandEncoderRelease(encoder); - wgpuCommandBufferRelease(cmd_buffer); - } -#ifdef __EMSCRIPTEN__ - EMSCRIPTEN_MAINLOOP_END; -#endif - - // Cleanup - ImGui_ImplWGPU_Shutdown(); - ImGui_ImplGlfw_Shutdown(); - ImGui::DestroyContext(); - - glfwDestroyWindow(window); - glfwTerminate(); - - return 0; -} - -#ifndef __EMSCRIPTEN__ -static WGPUAdapter RequestAdapter(WGPUInstance instance) -{ - auto onAdapterRequestEnded = [](WGPURequestAdapterStatus status, WGPUAdapter adapter, const char* message, void* pUserData) - { - if (status == WGPURequestAdapterStatus_Success) - *(WGPUAdapter*)(pUserData) = adapter; - else - printf("Could not get WebGPU adapter: %s\n", message); -}; - WGPUAdapter adapter; - wgpuInstanceRequestAdapter(instance, nullptr, onAdapterRequestEnded, (void*)&adapter); - return adapter; -} - -static WGPUDevice RequestDevice(WGPUAdapter& adapter) -{ - auto onDeviceRequestEnded = [](WGPURequestDeviceStatus status, WGPUDevice device, const char* message, void* pUserData) - { - if (status == WGPURequestDeviceStatus_Success) - *(WGPUDevice*)(pUserData) = device; - else - printf("Could not get WebGPU device: %s\n", message); - }; - WGPUDevice device; - wgpuAdapterRequestDevice(adapter, nullptr, onDeviceRequestEnded, (void*)&device); - return device; -} -#endif - -static bool InitWGPU(GLFWwindow* window) -{ - wgpu::Instance instance = wgpuCreateInstance(nullptr); - -#ifdef __EMSCRIPTEN__ - wgpu_device = emscripten_webgpu_get_device(); - if (!wgpu_device) - return false; -#else - WGPUAdapter adapter = RequestAdapter(instance.Get()); - if (!adapter) - return false; - wgpu_device = RequestDevice(adapter); -#endif - -#ifdef __EMSCRIPTEN__ - wgpu::SurfaceDescriptorFromCanvasHTMLSelector html_surface_desc = {}; - html_surface_desc.selector = "#canvas"; - wgpu::SurfaceDescriptor surface_desc = {}; - surface_desc.nextInChain = &html_surface_desc; - wgpu::Surface surface = instance.CreateSurface(&surface_desc); - - wgpu::Adapter adapter = {}; - wgpu_preferred_fmt = (WGPUTextureFormat)surface.GetPreferredFormat(adapter); -#else - wgpu::Surface surface = wgpu::glfw::CreateSurfaceForWindow(instance, window); - if (!surface) - return false; - wgpu_preferred_fmt = WGPUTextureFormat_BGRA8Unorm; -#endif - - wgpu_instance = instance.MoveToCHandle(); - wgpu_surface = surface.MoveToCHandle(); - - wgpuDeviceSetUncapturedErrorCallback(wgpu_device, wgpu_error_callback, nullptr); - - return true; -} - -static void CreateSwapChain(int width, int height) -{ - if (wgpu_swap_chain) - wgpuSwapChainRelease(wgpu_swap_chain); - wgpu_swap_chain_width = width; - wgpu_swap_chain_height = height; - WGPUSwapChainDescriptor swap_chain_desc = {}; - swap_chain_desc.usage = WGPUTextureUsage_RenderAttachment; - swap_chain_desc.format = wgpu_preferred_fmt; - swap_chain_desc.width = width; - swap_chain_desc.height = height; - swap_chain_desc.presentMode = WGPUPresentMode_Fifo; - wgpu_swap_chain = wgpuDeviceCreateSwapChain(wgpu_device, wgpu_surface, &swap_chain_desc); -} diff --git a/libs/imgui-1.92.1/examples/example_glut_opengl2/Makefile b/libs/imgui-1.92.1/examples/example_glut_opengl2/Makefile deleted file mode 100644 index 7af289d..0000000 --- a/libs/imgui-1.92.1/examples/example_glut_opengl2/Makefile +++ /dev/null @@ -1,75 +0,0 @@ -# -# Cross Platform Makefile -# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X -# -# Linux: -# apt-get install freeglut3-dev -# - -#CXX = g++ -#CXX = clang++ - -EXE = example_glut_opengl2 -IMGUI_DIR = ../.. -SOURCES = main.cpp -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glut.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl2.cpp -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) -UNAME_S := $(shell uname -s) - -CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -CXXFLAGS += -g -Wall -Wformat -LIBS = - -##--------------------------------------------------------------------- -## BUILD FLAGS PER PLATFORM -##--------------------------------------------------------------------- - -ifeq ($(UNAME_S), Linux) #LINUX - ECHO_MESSAGE = "Linux" - LIBS += -lGL -lglut - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(UNAME_S), Darwin) #APPLE - ECHO_MESSAGE = "Mac OS X" - LIBS += -framework OpenGL -framework GLUT - LIBS += -L/usr/local/lib -L/opt/local/lib - - CXXFLAGS += -I/usr/local/include -I/opt/local/include - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(OS), Windows_NT) - ECHO_MESSAGE = "MinGW" - LIBS += -lgdi32 -lopengl32 -limm32 -ifeq ($(shell pkg-config freeglut --exists 2> /dev/null && echo yes || echo no),yes) - CXXFLAGS += $(shell pkg-config freeglut --cflags) - LIBS += $(shell pkg-config freeglut --libs) -else - LIBS += -lglut -endif - CFLAGS = $(CXXFLAGS) -endif - -##--------------------------------------------------------------------- -## BUILD RULES -##--------------------------------------------------------------------- - -%.o:%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -all: $(EXE) - @echo Build complete for $(ECHO_MESSAGE) - -$(EXE): $(OBJS) - $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) - -clean: - rm -f $(EXE) $(OBJS) diff --git a/libs/imgui-1.92.1/examples/example_glut_opengl2/example_glut_opengl2.vcxproj b/libs/imgui-1.92.1/examples/example_glut_opengl2/example_glut_opengl2.vcxproj deleted file mode 100644 index c56452b..0000000 --- a/libs/imgui-1.92.1/examples/example_glut_opengl2/example_glut_opengl2.vcxproj +++ /dev/null @@ -1,186 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {F90D0333-5FB1-440D-918D-DD39A1B5187E} - example_glut_opengl2 - 8.1 - - - - Application - true - MultiByte - v140 - - - Application - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - - Level4 - Disabled - $(GLUT_INCLUDE_DIR);..\..;..\..\backends;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - $(GLUT_ROOT_PATH)/lib;%(AdditionalLibraryDirectories) - opengl32.lib;freeglut.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - Disabled - $(GLUT_INCLUDE_DIR);..\..;..\..\backends;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - $(GLUT_ROOT_PATH)/lib/x64;%(AdditionalLibraryDirectories) - opengl32.lib;freeglut.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - MaxSpeed - true - true - $(GLUT_INCLUDE_DIR);..\..;..\..\backends;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - $(GLUT_ROOT_PATH)/lib;%(AdditionalLibraryDirectories) - opengl32.lib;freeglut.lib;%(AdditionalDependencies) - Console - - - - - - - Level4 - MaxSpeed - true - true - $(GLUT_INCLUDE_DIR);..\..;..\..\backends;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - $(GLUT_ROOT_PATH)/lib/x64;%(AdditionalLibraryDirectories) - opengl32.lib;freeglut.lib;%(AdditionalDependencies) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_glut_opengl2/example_glut_opengl2.vcxproj.filters b/libs/imgui-1.92.1/examples/example_glut_opengl2/example_glut_opengl2.vcxproj.filters deleted file mode 100644 index 0ac4a0b..0000000 --- a/libs/imgui-1.92.1/examples/example_glut_opengl2/example_glut_opengl2.vcxproj.filters +++ /dev/null @@ -1,64 +0,0 @@ - - - - - {c336cfe3-f0c4-464c-9ef0-a9e17a7ff222} - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - - - sources - - - imgui - - - imgui - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - - imgui - - - imgui - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_glut_opengl2/main.cpp b/libs/imgui-1.92.1/examples/example_glut_opengl2/main.cpp deleted file mode 100644 index 69f85a2..0000000 --- a/libs/imgui-1.92.1/examples/example_glut_opengl2/main.cpp +++ /dev/null @@ -1,164 +0,0 @@ -// Dear ImGui: standalone example application for GLUT/FreeGLUT + OpenGL2, using legacy fixed pipeline - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// !!! GLUT/FreeGLUT IS OBSOLETE PREHISTORIC SOFTWARE. Using GLUT is not recommended unless you really miss the 90's. !!! -// !!! If someone or something is teaching you GLUT today, you are being abused. Please show some resistance. !!! -// !!! Nowadays, prefer using GLFW or SDL instead! - -// On Windows, you can install Freeglut using vcpkg: -// git clone https://github.com/Microsoft/vcpkg -// cd vcpkg -// bootstrap - vcpkg.bat -// vcpkg install freeglut --triplet=x86-windows ; for win32 -// vcpkg install freeglut --triplet=x64-windows ; for win64 -// vcpkg integrate install ; register include and libs in Visual Studio - -#include "imgui.h" -#include "imgui_impl_glut.h" -#include "imgui_impl_opengl2.h" -#define GL_SILENCE_DEPRECATION -#ifdef __APPLE__ -#include -#else -#include -#endif - -#ifdef _MSC_VER -#pragma warning (disable: 4505) // unreferenced local function has been removed -#endif - -// Forward declarations of helper functions -void MainLoopStep(); - -// Our state -static bool show_demo_window = true; -static bool show_another_window = false; -static ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - -int main(int argc, char** argv) -{ - // Create GLUT window - glutInit(&argc, argv); -#ifdef __FREEGLUT_EXT_H__ - glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE, GLUT_ACTION_GLUTMAINLOOP_RETURNS); -#endif - glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_MULTISAMPLE); - glutInitWindowSize(1280, 720); - glutCreateWindow("Dear ImGui GLUT+OpenGL2 Example"); - - // Setup GLUT display function - // We will also call ImGui_ImplGLUT_InstallFuncs() to get all the other functions installed for us, - // otherwise it is possible to install our own functions and call the imgui_impl_glut.h functions ourselves. - glutDisplayFunc(MainLoopStep); - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup Platform/Renderer backends - // FIXME: Consider reworking this example to install our own GLUT funcs + forward calls ImGui_ImplGLUT_XXX ones, instead of using ImGui_ImplGLUT_InstallFuncs(). - ImGui_ImplGLUT_Init(); - ImGui_ImplOpenGL2_Init(); - - // Install GLUT handlers (glutReshapeFunc(), glutMotionFunc(), glutPassiveMotionFunc(), glutMouseFunc(), glutKeyboardFunc() etc.) - // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. - // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. - // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. - // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. - ImGui_ImplGLUT_InstallFuncs(); - - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Main loop - glutMainLoop(); - - // Cleanup - ImGui_ImplOpenGL2_Shutdown(); - ImGui_ImplGLUT_Shutdown(); - ImGui::DestroyContext(); - - return 0; -} - -void MainLoopStep() -{ - // Start the Dear ImGui frame - ImGui_ImplOpenGL2_NewFrame(); - ImGui_ImplGLUT_NewFrame(); - ImGui::NewFrame(); - ImGuiIO& io = ImGui::GetIO(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - glViewport(0, 0, (GLsizei)io.DisplaySize.x, (GLsizei)io.DisplaySize.y); - glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w); - glClear(GL_COLOR_BUFFER_BIT); - //glUseProgram(0); // You may want this if using this code in an OpenGL 3+ context where shaders may be bound, but prefer using the GL3+ code. - ImGui_ImplOpenGL2_RenderDrawData(ImGui::GetDrawData()); - - glutSwapBuffers(); - glutPostRedisplay(); -} diff --git a/libs/imgui-1.92.1/examples/example_null/Makefile b/libs/imgui-1.92.1/examples/example_null/Makefile deleted file mode 100644 index 4a67cec..0000000 --- a/libs/imgui-1.92.1/examples/example_null/Makefile +++ /dev/null @@ -1,92 +0,0 @@ -# -# Cross Platform Makefile -# Compatible with MSYS2/MINGW, Ubuntu 14.04.1+ and Mac OS X -# -# Important: This is a "null backend" application, with no visible output or interaction! -# This is used for testing purpose and continuous integration, and has little use for end-user. -# - -# Options -WITH_EXTRA_WARNINGS ?= 0 -WITH_FREETYPE ?= 0 - -EXE = example_null -IMGUI_DIR = ../.. -SOURCES = main.cpp -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) -UNAME_S := $(shell uname -s) - -CXXFLAGS += -std=c++11 -I$(IMGUI_DIR) -CXXFLAGS += -g -Wall -Wformat -LIBS = - -# We use the WITH_EXTRA_WARNINGS flag on our CI setup to eagerly catch zealous warnings -ifeq ($(WITH_EXTRA_WARNINGS), 1) - CXXFLAGS += -Wno-zero-as-null-pointer-constant -Wno-double-promotion -Wno-variadic-macros -endif - -# We use the WITH_FREETYPE flag on our CI setup to test compiling misc/freetype/imgui_freetype.cpp -# (only supported on Linux, and note that the imgui_freetype code currently won't be executed) -ifeq ($(WITH_FREETYPE), 1) - SOURCES += $(IMGUI_DIR)/misc/freetype/imgui_freetype.cpp - CXXFLAGS += $(shell pkg-config --cflags freetype2) - LIBS += $(shell pkg-config --libs freetype2) -endif - -##--------------------------------------------------------------------- -## BUILD FLAGS PER PLATFORM -##--------------------------------------------------------------------- - -ifeq ($(UNAME_S), Linux) #LINUX - ECHO_MESSAGE = "Linux" - ifeq ($(WITH_EXTRA_WARNINGS), 1) - CXXFLAGS += -Wextra -Wpedantic - ifeq ($(shell $(CXX) -v 2>&1 | grep -c "clang version"), 1) - CXXFLAGS += -Wshadow -Wsign-conversion - endif - endif - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(UNAME_S), Darwin) #APPLE - ECHO_MESSAGE = "Mac OS X" - ifeq ($(WITH_EXTRA_WARNINGS), 1) - CXXFLAGS += -Weverything -Wno-reserved-id-macro -Wno-c++98-compat-pedantic -Wno-padded -Wno-poison-system-directories - endif - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(OS), Windows_NT) - ECHO_MESSAGE = "MinGW" - ifeq ($(WITH_EXTRA_WARNINGS), 1) - CXXFLAGS += -Wextra -Wpedantic - endif - LIBS += -limm32 - CFLAGS = $(CXXFLAGS) -endif - -##--------------------------------------------------------------------- -## BUILD RULES -##--------------------------------------------------------------------- - -%.o:%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/misc/freetype/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -all: $(EXE) - @echo Build complete for $(ECHO_MESSAGE) - -$(EXE): $(OBJS) - $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) - -clean: - rm -f $(EXE) $(OBJS) diff --git a/libs/imgui-1.92.1/examples/example_null/build_win32.bat b/libs/imgui-1.92.1/examples/example_null/build_win32.bat deleted file mode 100644 index be81d80..0000000 --- a/libs/imgui-1.92.1/examples/example_null/build_win32.bat +++ /dev/null @@ -1,3 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. -mkdir Debug -cl /nologo /Zi /MD /utf-8 /I ..\.. %* *.cpp ..\..\*.cpp /FeDebug/example_null.exe /FoDebug/ /link gdi32.lib shell32.lib imm32.lib diff --git a/libs/imgui-1.92.1/examples/example_null/main.cpp b/libs/imgui-1.92.1/examples/example_null/main.cpp deleted file mode 100644 index 460f33c..0000000 --- a/libs/imgui-1.92.1/examples/example_null/main.cpp +++ /dev/null @@ -1,38 +0,0 @@ -// dear imgui: "null" example application -// (compile and link imgui, create context, run headless with NO INPUTS, NO GRAPHICS OUTPUT) -// This is useful to test building, but you cannot interact with anything here! -#include "imgui.h" -#include - -int main(int, char**) -{ - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); - - // Build atlas - //unsigned char* tex_pixels = nullptr; - //int tex_w, tex_h; - //io.Fonts->GetTexDataAsRGBA32(&tex_pixels, &tex_w, &tex_h); - io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures; - - for (int n = 0; n < 20; n++) - { - printf("NewFrame() %d\n", n); - io.DisplaySize = ImVec2(1920, 1080); - io.DeltaTime = 1.0f / 60.0f; - ImGui::NewFrame(); - - static float f = 0.0f; - ImGui::Text("Hello, world!"); - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::ShowDemoWindow(nullptr); - - ImGui::Render(); - } - - printf("DestroyContext()\n"); - ImGui::DestroyContext(); - return 0; -} diff --git a/libs/imgui-1.92.1/examples/example_sdl2_directx11/build_win32.bat b/libs/imgui-1.92.1/examples/example_sdl2_directx11/build_win32.bat deleted file mode 100644 index f0b485c..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_directx11/build_win32.bat +++ /dev/null @@ -1,8 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. -@set OUT_DIR=Debug -@set OUT_EXE=example_sdl2_directx11 -@set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include" -@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_dx11.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib /LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d11.lib d3dcompiler.lib shell32.lib -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console diff --git a/libs/imgui-1.92.1/examples/example_sdl2_directx11/example_sdl2_directx11.vcxproj b/libs/imgui-1.92.1/examples/example_sdl2_directx11/example_sdl2_directx11.vcxproj deleted file mode 100644 index c23800c..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_directx11/example_sdl2_directx11.vcxproj +++ /dev/null @@ -1,187 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {9E1987E3-1F19-45CA-B9C9-D31E791836D8} - example_sdl2_directx11 - 8.1 - example_sdl2_directx11 - - - - Application - true - MultiByte - v140 - - - Application - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - - Level4 - Disabled - ..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - %SDL2_DIR%\lib\x86;$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories) - SDL2.lib;SDL2main.lib;d3d11.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - Disabled - ..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - %SDL2_DIR%\lib\x64;$(DXSDK_DIR)/Lib/x64;%(AdditionalLibraryDirectories) - SDL2.lib;SDL2main.lib;d3d11.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - %SDL2_DIR%\lib\x86;$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories) - SDL2.lib;SDL2main.lib;d3d11.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies) - Console - - - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - %SDL2_DIR%\lib\x64;$(DXSDK_DIR)/Lib/x64;%(AdditionalLibraryDirectories) - SDL2.lib;SDL2main.lib;d3d11.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_sdl2_directx11/example_sdl2_directx11.vcxproj.filters b/libs/imgui-1.92.1/examples/example_sdl2_directx11/example_sdl2_directx11.vcxproj.filters deleted file mode 100644 index 92d11f8..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_directx11/example_sdl2_directx11.vcxproj.filters +++ /dev/null @@ -1,63 +0,0 @@ - - - - - {0587d7a3-f2ce-4d56-b84f-a0005d3bfce6} - - - {08e36723-ce4f-4cff-9662-c40801cf1acf} - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - imgui - - - sources - - - imgui - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - - imgui - - - imgui - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_sdl2_directx11/main.cpp b/libs/imgui-1.92.1/examples/example_sdl2_directx11/main.cpp deleted file mode 100644 index 194dd0e..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_directx11/main.cpp +++ /dev/null @@ -1,259 +0,0 @@ -// Dear ImGui: standalone example application for SDL2 + DirectX 11 -// (SDL is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.) - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#include "imgui.h" -#include "imgui_impl_sdl2.h" -#include "imgui_impl_dx11.h" -#include -#include -#include -#include - -// Data -static ID3D11Device* g_pd3dDevice = nullptr; -static ID3D11DeviceContext* g_pd3dDeviceContext = nullptr; -static IDXGISwapChain* g_pSwapChain = nullptr; -static ID3D11RenderTargetView* g_mainRenderTargetView = nullptr; - -// Forward declarations of helper functions -bool CreateDeviceD3D(HWND hWnd); -void CleanupDeviceD3D(); -void CreateRenderTarget(); -void CleanupRenderTarget(); - -// Main code -int main(int, char**) -{ - // Setup SDL - // (Some versions of SDL before <2.0.10 appears to have performance/stalling issues on a minority of Windows systems, - // depending on whether SDL_INIT_GAMECONTROLLER is enabled or disabled.. updating to the latest version of SDL is recommended!) -#ifdef _WIN32 - ::SetProcessDPIAware(); -#endif - if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_GAMECONTROLLER) != 0) - { - printf("Error: %s\n", SDL_GetError()); - return -1; - } - - // From 2.0.18: Enable native IME. -#ifdef SDL_HINT_IME_SHOW_UI - SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1"); -#endif - - // Setup window - float main_scale = ImGui_ImplSDL2_GetContentScaleForDisplay(0); - SDL_WindowFlags window_flags = (SDL_WindowFlags)(SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI); - SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL2+DirectX11 example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, (int)(1280 * main_scale), (int)(720 * main_scale), window_flags); - if (window == nullptr) - { - printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError()); - return -1; - } - - SDL_SysWMinfo wmInfo; - SDL_VERSION(&wmInfo.version); - SDL_GetWindowWMInfo(window, &wmInfo); - HWND hwnd = (HWND)wmInfo.info.win.window; - - // Initialize Direct3D - if (!CreateDeviceD3D(hwnd)) - { - CleanupDeviceD3D(); - return 1; - } - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup scaling - ImGuiStyle& style = ImGui::GetStyle(); - style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again) - style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose) - - // Setup Platform/Renderer backends - ImGui_ImplSDL2_InitForD3D(window); - ImGui_ImplDX11_Init(g_pd3dDevice, g_pd3dDeviceContext); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop - bool done = false; - while (!done) - { - // Poll and handle events (inputs, window resize, etc.) - // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. - // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. - // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. - // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. - SDL_Event event; - while (SDL_PollEvent(&event)) - { - ImGui_ImplSDL2_ProcessEvent(&event); - if (event.type == SDL_QUIT) - done = true; - if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_CLOSE && event.window.windowID == SDL_GetWindowID(window)) - done = true; - if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_RESIZED && event.window.windowID == SDL_GetWindowID(window)) - { - // Release all outstanding references to the swap chain's buffers before resizing. - CleanupRenderTarget(); - g_pSwapChain->ResizeBuffers(0, 0, 0, DXGI_FORMAT_UNKNOWN, 0); - CreateRenderTarget(); - } - } - if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED) - { - SDL_Delay(10); - continue; - } - - // Start the Dear ImGui frame - ImGui_ImplDX11_NewFrame(); - ImGui_ImplSDL2_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - const float clear_color_with_alpha[4] = { clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w }; - g_pd3dDeviceContext->OMSetRenderTargets(1, &g_mainRenderTargetView, nullptr); - g_pd3dDeviceContext->ClearRenderTargetView(g_mainRenderTargetView, clear_color_with_alpha); - ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData()); - - g_pSwapChain->Present(1, 0); // Present with vsync - //g_pSwapChain->Present(0, 0); // Present without vsync - } - - // Cleanup - ImGui_ImplDX11_Shutdown(); - ImGui_ImplSDL2_Shutdown(); - ImGui::DestroyContext(); - - CleanupDeviceD3D(); - SDL_DestroyWindow(window); - SDL_Quit(); - - return 0; -} - -// Helper functions to use DirectX11 -bool CreateDeviceD3D(HWND hWnd) -{ - // Setup swap chain - DXGI_SWAP_CHAIN_DESC sd; - ZeroMemory(&sd, sizeof(sd)); - sd.BufferCount = 2; - sd.BufferDesc.Width = 0; - sd.BufferDesc.Height = 0; - sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - sd.BufferDesc.RefreshRate.Numerator = 60; - sd.BufferDesc.RefreshRate.Denominator = 1; - sd.Flags = DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH; - sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; - sd.OutputWindow = hWnd; - sd.SampleDesc.Count = 1; - sd.SampleDesc.Quality = 0; - sd.Windowed = TRUE; - sd.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; - - UINT createDeviceFlags = 0; - //createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG; - D3D_FEATURE_LEVEL featureLevel; - const D3D_FEATURE_LEVEL featureLevelArray[2] = { D3D_FEATURE_LEVEL_11_0, D3D_FEATURE_LEVEL_10_0, }; - if (D3D11CreateDeviceAndSwapChain(nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, createDeviceFlags, featureLevelArray, 2, D3D11_SDK_VERSION, &sd, &g_pSwapChain, &g_pd3dDevice, &featureLevel, &g_pd3dDeviceContext) != S_OK) - return false; - - CreateRenderTarget(); - return true; -} - -void CleanupDeviceD3D() -{ - CleanupRenderTarget(); - if (g_pSwapChain) { g_pSwapChain->Release(); g_pSwapChain = nullptr; } - if (g_pd3dDeviceContext) { g_pd3dDeviceContext->Release(); g_pd3dDeviceContext = nullptr; } - if (g_pd3dDevice) { g_pd3dDevice->Release(); g_pd3dDevice = nullptr; } -} - -void CreateRenderTarget() -{ - ID3D11Texture2D* pBackBuffer; - g_pSwapChain->GetBuffer(0, IID_PPV_ARGS(&pBackBuffer)); - g_pd3dDevice->CreateRenderTargetView(pBackBuffer, nullptr, &g_mainRenderTargetView); - pBackBuffer->Release(); -} - -void CleanupRenderTarget() -{ - if (g_mainRenderTargetView) { g_mainRenderTargetView->Release(); g_mainRenderTargetView = nullptr; } -} diff --git a/libs/imgui-1.92.1/examples/example_sdl2_metal/Makefile b/libs/imgui-1.92.1/examples/example_sdl2_metal/Makefile deleted file mode 100644 index 53c5f75..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_metal/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -# -# You will need SDL2 (http://www.libsdl.org): -# brew install sdl2 -# - -#CXX = g++ -#CXX = clang++ - -EXE = example_sdl2_metal -IMGUI_DIR = ../.. -SOURCES = main.mm -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl2.cpp $(IMGUI_DIR)/backends/imgui_impl_metal.mm -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) - -LIBS = -framework Metal -framework MetalKit -framework Cocoa -framework IOKit -framework CoreVideo -framework QuartzCore -LIBS += `sdl2-config --libs` -LIBS += -L/usr/local/lib - -CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -I/usr/local/include -CXXFLAGS += `sdl2-config --cflags` -CXXFLAGS += -Wall -Wformat -CFLAGS = $(CXXFLAGS) - -%.o:%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:%.mm - $(CXX) $(CXXFLAGS) -ObjC++ -fobjc-weak -fobjc-arc -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.mm - $(CXX) $(CXXFLAGS) -ObjC++ -fobjc-weak -fobjc-arc -c -o $@ $< - -all: $(EXE) - @echo Build complete - -$(EXE): $(OBJS) - $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) - -clean: - rm -f $(EXE) $(OBJS) diff --git a/libs/imgui-1.92.1/examples/example_sdl2_metal/main.mm b/libs/imgui-1.92.1/examples/example_sdl2_metal/main.mm deleted file mode 100644 index c1750b1..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_metal/main.mm +++ /dev/null @@ -1,189 +0,0 @@ -// Dear ImGui: standalone example application for SDL2 + Metal -// (SDL is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.) - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#include "imgui.h" -#include "imgui_impl_sdl2.h" -#include "imgui_impl_metal.h" -#include -#include - -#import -#import - -int main(int, char**) -{ - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Setup SDL - // (Some versions of SDL before <2.0.10 appears to have performance/stalling issues on a minority of Windows systems, - // depending on whether SDL_INIT_GAMECONTROLLER is enabled or disabled.. updating to latest version of SDL is recommended!) - if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_GAMECONTROLLER) != 0) - { - printf("Error: %s\n", SDL_GetError()); - return -1; - } - - // Inform SDL that we will be using metal for rendering. Without this hint initialization of metal renderer may fail. - SDL_SetHint(SDL_HINT_RENDER_DRIVER, "metal"); - - // Enable native IME. - SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1"); - - SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL+Metal example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1280, 720, SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI); - if (window == nullptr) - { - printf("Error creating window: %s\n", SDL_GetError()); - return -2; - } - - SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); - if (renderer == nullptr) - { - printf("Error creating renderer: %s\n", SDL_GetError()); - return -3; - } - - // Setup Platform/Renderer backends - CAMetalLayer* layer = (__bridge CAMetalLayer*)SDL_RenderGetMetalLayer(renderer); - layer.pixelFormat = MTLPixelFormatBGRA8Unorm; - ImGui_ImplMetal_Init(layer.device); - ImGui_ImplSDL2_InitForMetal(window); - - id commandQueue = [layer.device newCommandQueue]; - MTLRenderPassDescriptor* renderPassDescriptor = [MTLRenderPassDescriptor new]; - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - float clear_color[4] = {0.45f, 0.55f, 0.60f, 1.00f}; - - // Main loop - bool done = false; - while (!done) - { - @autoreleasepool - { - // Poll and handle events (inputs, window resize, etc.) - // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. - // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. - // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. - // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. - SDL_Event event; - while (SDL_PollEvent(&event)) - { - ImGui_ImplSDL2_ProcessEvent(&event); - if (event.type == SDL_QUIT) - done = true; - if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_CLOSE && event.window.windowID == SDL_GetWindowID(window)) - done = true; - } - - int width, height; - SDL_GetRendererOutputSize(renderer, &width, &height); - layer.drawableSize = CGSizeMake(width, height); - id drawable = [layer nextDrawable]; - - id commandBuffer = [commandQueue commandBuffer]; - renderPassDescriptor.colorAttachments[0].clearColor = MTLClearColorMake(clear_color[0] * clear_color[3], clear_color[1] * clear_color[3], clear_color[2] * clear_color[3], clear_color[3]); - renderPassDescriptor.colorAttachments[0].texture = drawable.texture; - renderPassDescriptor.colorAttachments[0].loadAction = MTLLoadActionClear; - renderPassDescriptor.colorAttachments[0].storeAction = MTLStoreActionStore; - id renderEncoder = [commandBuffer renderCommandEncoderWithDescriptor:renderPassDescriptor]; - [renderEncoder pushDebugGroup:@"ImGui demo"]; - - // Start the Dear ImGui frame - ImGui_ImplMetal_NewFrame(renderPassDescriptor); - ImGui_ImplSDL2_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - ImGui_ImplMetal_RenderDrawData(ImGui::GetDrawData(), commandBuffer, renderEncoder); - - [renderEncoder popDebugGroup]; - [renderEncoder endEncoding]; - - [commandBuffer presentDrawable:drawable]; - [commandBuffer commit]; - } - } - - // Cleanup - ImGui_ImplMetal_Shutdown(); - ImGui_ImplSDL2_Shutdown(); - ImGui::DestroyContext(); - - SDL_DestroyRenderer(renderer); - SDL_DestroyWindow(window); - SDL_Quit(); - - return 0; -} diff --git a/libs/imgui-1.92.1/examples/example_sdl2_opengl2/Makefile b/libs/imgui-1.92.1/examples/example_sdl2_opengl2/Makefile deleted file mode 100644 index a85ced0..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_opengl2/Makefile +++ /dev/null @@ -1,79 +0,0 @@ -# -# Cross Platform Makefile -# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X -# -# You will need SDL2 (http://www.libsdl.org): -# Linux: -# apt-get install libsdl2-dev -# Mac OS X: -# brew install sdl2 -# MSYS2: -# pacman -S mingw-w64-i686-SDL2 -# - -#CXX = g++ -#CXX = clang++ - -EXE = example_sdl2_opengl2 -IMGUI_DIR = ../.. -SOURCES = main.cpp -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl2.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl2.cpp -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) -UNAME_S := $(shell uname -s) - -CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -CXXFLAGS += -g -Wall -Wformat -LIBS = - -##--------------------------------------------------------------------- -## BUILD FLAGS PER PLATFORM -##--------------------------------------------------------------------- - -ifeq ($(UNAME_S), Linux) #LINUX - ECHO_MESSAGE = "Linux" - LIBS += -lGL -ldl `sdl2-config --libs` - - CXXFLAGS += `sdl2-config --cflags` - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(UNAME_S), Darwin) #APPLE - ECHO_MESSAGE = "Mac OS X" - LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs` - LIBS += -L/usr/local/lib -L/opt/local/lib - - CXXFLAGS += `sdl2-config --cflags` - CXXFLAGS += -I/usr/local/include -I/opt/local/include - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(OS), Windows_NT) - ECHO_MESSAGE = "MinGW" - LIBS += -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2` - - CXXFLAGS += `pkg-config --cflags sdl2` - CFLAGS = $(CXXFLAGS) -endif - -##--------------------------------------------------------------------- -## BUILD RULES -##--------------------------------------------------------------------- - -%.o:%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -all: $(EXE) - @echo Build complete for $(ECHO_MESSAGE) - -$(EXE): $(OBJS) - $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) - -clean: - rm -f $(EXE) $(OBJS) diff --git a/libs/imgui-1.92.1/examples/example_sdl2_opengl2/README.md b/libs/imgui-1.92.1/examples/example_sdl2_opengl2/README.md deleted file mode 100644 index 40a49e6..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_opengl2/README.md +++ /dev/null @@ -1,29 +0,0 @@ - -# How to Build - -- On Windows with Visual Studio's IDE - -Use the provided project file (.vcxproj). Add to solution (imgui_examples.sln) if necessary. - -- On Windows with Visual Studio's CLI - -``` -set SDL2_DIR=path_to_your_sdl2_folder -cl /Zi /MD /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_opengl2.cpp ..\..\imgui*.cpp /FeDebug/example_sdl2_opengl2.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console -# ^^ include paths ^^ source files ^^ output exe ^^ output dir ^^ libraries -# or for 64-bit: -cl /Zi /MD /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_opengl2.cpp ..\..\imgui*.cpp /FeDebug/example_sdl2_opengl2.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x64 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console -``` - -- On Linux and similar Unixes - -``` -c++ `sdl2-config --cflags` -I .. -I ../.. -I ../../backends main.cpp ../../backends/imgui_impl_sdl2.cpp ../../backends/imgui_impl_opengl2.cpp ../../imgui*.cpp `sdl2-config --libs` -lGL -``` - -- On Mac OS X - -``` -brew install sdl2 -c++ `sdl2-config --cflags` -I .. -I ../.. -I ../../backends main.cpp ../../backends/imgui_impl_sdl2.cpp ../../backends/imgui_impl_opengl2.cpp ../../imgui*.cpp `sdl2-config --libs` -framework OpenGl -``` diff --git a/libs/imgui-1.92.1/examples/example_sdl2_opengl2/build_win32.bat b/libs/imgui-1.92.1/examples/example_sdl2_opengl2/build_win32.bat deleted file mode 100644 index 7543eda..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_opengl2/build_win32.bat +++ /dev/null @@ -1,8 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. -@set OUT_DIR=Debug -@set OUT_EXE=example_sdl2_opengl2 -@set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include -@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_opengl2.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib shell32.lib -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console diff --git a/libs/imgui-1.92.1/examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj b/libs/imgui-1.92.1/examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj deleted file mode 100644 index 036463f..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj +++ /dev/null @@ -1,186 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741} - example_sdl2_opengl2 - 8.1 - - - - Application - true - MultiByte - v140 - - - Application - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - - Level4 - Disabled - ..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - %SDL2_DIR%\lib\x86;%(AdditionalLibraryDirectories) - opengl32.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - Disabled - ..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - %SDL2_DIR%\lib\x64;%(AdditionalLibraryDirectories) - opengl32.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - %SDL2_DIR%\lib\x86;%(AdditionalLibraryDirectories) - opengl32.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - Console - - - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - %SDL2_DIR%\lib\x64;%(AdditionalLibraryDirectories) - opengl32.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj.filters b/libs/imgui-1.92.1/examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj.filters deleted file mode 100644 index 752a196..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj.filters +++ /dev/null @@ -1,64 +0,0 @@ - - - - - {20b90ce4-7fcb-4731-b9a0-075f875de82d} - - - {f18ab499-84e1-499f-8eff-9754361e0e52} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - - - imgui - - - imgui - - - imgui - - - sources - - - imgui - - - imgui - - - sources - - - sources - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - - imgui - - - imgui - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_sdl2_opengl2/main.cpp b/libs/imgui-1.92.1/examples/example_sdl2_opengl2/main.cpp deleted file mode 100644 index c8363fe..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_opengl2/main.cpp +++ /dev/null @@ -1,188 +0,0 @@ -// Dear ImGui: standalone example application for SDL2 + OpenGL -// (SDL is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.) - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// **DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)** -// **Prefer using the code in the example_sdl2_opengl3/ folder** -// See imgui_impl_sdl2.cpp for details. - -#include "imgui.h" -#include "imgui_impl_sdl2.h" -#include "imgui_impl_opengl2.h" -#include -#include -#include -#ifdef _WIN32 -#include // SetProcessDPIAware() -#endif - -// Main code -int main(int, char**) -{ - // Setup SDL -#ifdef _WIN32 - ::SetProcessDPIAware(); -#endif - if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_GAMECONTROLLER) != 0) - { - printf("Error: %s\n", SDL_GetError()); - return -1; - } - - // From 2.0.18: Enable native IME. -#ifdef SDL_HINT_IME_SHOW_UI - SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1"); -#endif - - // Setup window - SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); - SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24); - SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2); - float main_scale = ImGui_ImplSDL2_GetContentScaleForDisplay(0); - SDL_WindowFlags window_flags = (SDL_WindowFlags)(SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI); - SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL2+OpenGL example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, (int)(1280 * main_scale), (int)(720 * main_scale), window_flags); - if (window == nullptr) - { - printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError()); - return -1; - } - - SDL_GLContext gl_context = SDL_GL_CreateContext(window); - SDL_GL_MakeCurrent(window, gl_context); - SDL_GL_SetSwapInterval(1); // Enable vsync - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup scaling - ImGuiStyle& style = ImGui::GetStyle(); - style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again) - style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose) - - // Setup Platform/Renderer backends - ImGui_ImplSDL2_InitForOpenGL(window, gl_context); - ImGui_ImplOpenGL2_Init(); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop - bool done = false; - while (!done) - { - // Poll and handle events (inputs, window resize, etc.) - // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. - // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. - // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. - // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. - SDL_Event event; - while (SDL_PollEvent(&event)) - { - ImGui_ImplSDL2_ProcessEvent(&event); - if (event.type == SDL_QUIT) - done = true; - if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_CLOSE && event.window.windowID == SDL_GetWindowID(window)) - done = true; - } - if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED) - { - SDL_Delay(10); - continue; - } - - // Start the Dear ImGui frame - ImGui_ImplOpenGL2_NewFrame(); - ImGui_ImplSDL2_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - glViewport(0, 0, (int)io.DisplaySize.x, (int)io.DisplaySize.y); - glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w); - glClear(GL_COLOR_BUFFER_BIT); - //glUseProgram(0); // You may want this if using this code in an OpenGL 3+ context where shaders may be bound - ImGui_ImplOpenGL2_RenderDrawData(ImGui::GetDrawData()); - SDL_GL_SwapWindow(window); - } - - // Cleanup - ImGui_ImplOpenGL2_Shutdown(); - ImGui_ImplSDL2_Shutdown(); - ImGui::DestroyContext(); - - SDL_GL_DeleteContext(gl_context); - SDL_DestroyWindow(window); - SDL_Quit(); - - return 0; -} diff --git a/libs/imgui-1.92.1/examples/example_sdl2_opengl3/Makefile b/libs/imgui-1.92.1/examples/example_sdl2_opengl3/Makefile deleted file mode 100644 index 5b4f941..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_opengl3/Makefile +++ /dev/null @@ -1,91 +0,0 @@ -# -# Cross Platform Makefile -# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X -# -# You will need SDL2 (http://www.libsdl.org): -# Linux: -# apt-get install libsdl2-dev -# Mac OS X: -# brew install sdl2 -# MSYS2: -# pacman -S mingw-w64-i686-SDL2 -# - -#CXX = g++ -#CXX = clang++ - -EXE = example_sdl2_opengl3 -IMGUI_DIR = ../.. -SOURCES = main.cpp -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl2.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) -UNAME_S := $(shell uname -s) -LINUX_GL_LIBS = -lGL - -CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -CXXFLAGS += -g -Wall -Wformat -LIBS = - -##--------------------------------------------------------------------- -## OPENGL ES -##--------------------------------------------------------------------- - -## This assumes a GL ES library available in the system, e.g. libGLESv2.so -# CXXFLAGS += -DIMGUI_IMPL_OPENGL_ES2 -# LINUX_GL_LIBS = -lGLESv2 -## If you're on a Raspberry Pi and want to use the legacy drivers, -## use the following instead: -# LINUX_GL_LIBS = -L/opt/vc/lib -lbrcmGLESv2 - -##--------------------------------------------------------------------- -## BUILD FLAGS PER PLATFORM -##--------------------------------------------------------------------- - -ifeq ($(UNAME_S), Linux) #LINUX - ECHO_MESSAGE = "Linux" - LIBS += $(LINUX_GL_LIBS) -ldl `sdl2-config --libs` - - CXXFLAGS += `sdl2-config --cflags` - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(UNAME_S), Darwin) #APPLE - ECHO_MESSAGE = "Mac OS X" - LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs` - LIBS += -L/usr/local/lib -L/opt/local/lib - - CXXFLAGS += `sdl2-config --cflags` - CXXFLAGS += -I/usr/local/include -I/opt/local/include - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(OS), Windows_NT) - ECHO_MESSAGE = "MinGW" - LIBS += -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2` - - CXXFLAGS += `pkg-config --cflags sdl2` - CFLAGS = $(CXXFLAGS) -endif - -##--------------------------------------------------------------------- -## BUILD RULES -##--------------------------------------------------------------------- - -%.o:%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -all: $(EXE) - @echo Build complete for $(ECHO_MESSAGE) - -$(EXE): $(OBJS) - $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) - -clean: - rm -f $(EXE) $(OBJS) diff --git a/libs/imgui-1.92.1/examples/example_sdl2_opengl3/Makefile.emscripten b/libs/imgui-1.92.1/examples/example_sdl2_opengl3/Makefile.emscripten deleted file mode 100644 index bc06ade..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_opengl3/Makefile.emscripten +++ /dev/null @@ -1,95 +0,0 @@ -# -# Makefile to use with SDL+emscripten -# See https://emscripten.org/docs/getting_started/downloads.html -# for installation instructions. -# -# This Makefile assumes you have loaded emscripten's environment. -# (On Windows, you may need to execute emsdk_env.bat or encmdprompt.bat ahead) -# -# Running `make -f Makefile.emscripten` will produce three files: -# - web/index.html -# - web/index.js -# - web/index.wasm -# -# All three are needed to run the demo. - -CC = emcc -CXX = em++ -WEB_DIR = web -EXE = $(WEB_DIR)/index.html -IMGUI_DIR = ../.. -SOURCES = main.cpp -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl2.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) -UNAME_S := $(shell uname -s) -CPPFLAGS = -LDFLAGS = -EMS = - -##--------------------------------------------------------------------- -## EMSCRIPTEN OPTIONS -##--------------------------------------------------------------------- - -# ("EMS" options gets added to both CPPFLAGS and LDFLAGS, whereas some options are for linker only) -EMS += -s USE_SDL=2 -EMS += -s DISABLE_EXCEPTION_CATCHING=1 -LDFLAGS += -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 -s NO_EXIT_RUNTIME=0 -s ASSERTIONS=1 - -# Build as single file (binary text encoded in .html file) -#LDFLAGS += -sSINGLE_FILE - -# Uncomment next line to fix possible rendering bugs with Emscripten version older then 1.39.0 (https://github.com/ocornut/imgui/issues/2877) -#EMS += -s BINARYEN_TRAP_MODE=clamp -#EMS += -s SAFE_HEAP=1 ## Adds overhead - -# Emscripten allows preloading a file or folder to be accessible at runtime. -# The Makefile for this example project suggests embedding the misc/fonts/ folder into our application, it will then be accessible as "/fonts" -# See documentation for more details: https://emscripten.org/docs/porting/files/packaging_files.html -# (Default value is 0. Set to 1 to enable file-system and include the misc/fonts/ folder as part of the build.) -USE_FILE_SYSTEM ?= 0 -ifeq ($(USE_FILE_SYSTEM), 0) -LDFLAGS += -s NO_FILESYSTEM=1 -CPPFLAGS += -DIMGUI_DISABLE_FILE_FUNCTIONS -endif -ifeq ($(USE_FILE_SYSTEM), 1) -LDFLAGS += --no-heap-copy --preload-file ../../misc/fonts@/fonts -endif - -##--------------------------------------------------------------------- -## FINAL BUILD FLAGS -##--------------------------------------------------------------------- - -CPPFLAGS += -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -#CPPFLAGS += -g -CPPFLAGS += -Wall -Wformat -Os $(EMS) -LDFLAGS += --shell-file ../libs/emscripten/shell_minimal.html -LDFLAGS += $(EMS) - -##--------------------------------------------------------------------- -## BUILD RULES -##--------------------------------------------------------------------- - -%.o:%.cpp - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< - -all: $(EXE) - @echo Build complete for $(EXE) - -$(WEB_DIR): - mkdir $@ - -serve: all - python3 -m http.server -d $(WEB_DIR) - -$(EXE): $(OBJS) $(WEB_DIR) - $(CXX) -o $@ $(OBJS) $(LDFLAGS) - -clean: - rm -rf $(OBJS) $(WEB_DIR) diff --git a/libs/imgui-1.92.1/examples/example_sdl2_opengl3/README.md b/libs/imgui-1.92.1/examples/example_sdl2_opengl3/README.md deleted file mode 100644 index 81fd9fe..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_opengl3/README.md +++ /dev/null @@ -1,57 +0,0 @@ - -# How to Build - -## Windows with Visual Studio's IDE - -Use the provided project file (.vcxproj). Add to solution (imgui_examples.sln) if necessary. - -## Windows with Visual Studio's CLI - -Use build_win32.bat or directly: -``` -set SDL2_DIR=path_to_your_sdl2_folder -cl /Zi /MD /utf-8 /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp /FeDebug/example_sdl2_opengl3.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console -# ^^ include paths ^^ source files ^^ output exe ^^ output dir ^^ libraries -# or for 64-bit: -cl /Zi /MD /utf-8 /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp /FeDebug/example_sdl2_opengl3.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x64 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console -``` - -## Linux and similar Unixes - -Use our Makefile or directly: -``` -c++ `sdl2-config --cflags` -I .. -I ../.. -I ../../backends - main.cpp ../../backends/imgui_impl_sdl2.cpp ../../backends/imgui_impl_opengl3.cpp ../../imgui*.cpp - `sdl2-config --libs` -lGL -ldl -``` - -## macOS - -Use our Makefile or directly: -``` -brew install sdl2 -c++ `sdl2-config --cflags` -I .. -I ../.. -I ../../backends - main.cpp ../../backends/imgui_impl_sdl2.cpp ../../backends/imgui_impl_opengl3.cpp ../../imgui*.cpp - `sdl2-config --libs` -framework OpenGl -framework CoreFoundation -``` - -## Emscripten - -**Building** - -You need to install Emscripten from https://emscripten.org/docs/getting_started/downloads.html, and have the environment variables set, as described in https://emscripten.org/docs/getting_started/downloads.html#installation-instructions - -- Depending on your configuration, in Windows you may need to run `emsdk/emsdk_env.bat` in your console to access the Emscripten command-line tools. -- You may also refer to our [Continuous Integration setup](https://github.com/ocornut/imgui/tree/master/.github/workflows) for Emscripten setup. -- Then build using `make -f Makefile.emscripten` while in the current directory. - -**Running an Emscripten project** - -To run on a local machine: -- `make -f Makefile.emscripten serve` will use Python3 to spawn a local webserver, you can then browse http://localhost:8000 to access your build. -- Otherwise, generally you will need a local webserver. Quoting [https://emscripten.org/docs/getting_started](https://emscripten.org/docs/getting_started/Tutorial.html#generating-html):
-_"Unfortunately several browsers (including Chrome, Safari, and Internet Explorer) do not support file:// [XHR](https://emscripten.org/docs/site/glossary.html#term-xhr) requests, and can’t load extra files needed by the HTML (like a .wasm file, or packaged file data as mentioned lower down). For these browsers you’ll need to serve the files using a [local webserver](https://emscripten.org/docs/getting_started/FAQ.html#faq-local-webserver) and then open http://localhost:8000/hello.html."_ -- Emscripten SDK has a handy `emrun` command: `emrun web/index.html --browser firefox` which will spawn a temporary local webserver (in Firefox). See https://emscripten.org/docs/compiling/Running-html-files-with-emrun.html for details. -- You may use Python 3 builtin webserver: `python -m http.server -d web` (this is what `make serve` uses). -- You may use Python 2 builtin webserver: `cd web && python -m SimpleHTTPServer`. -- If you are accessing the files over a network, certain browsers, such as Firefox, will restrict Gamepad API access to secure contexts only (e.g. https only). diff --git a/libs/imgui-1.92.1/examples/example_sdl2_opengl3/build_win32.bat b/libs/imgui-1.92.1/examples/example_sdl2_opengl3/build_win32.bat deleted file mode 100644 index 7b2fac9..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_opengl3/build_win32.bat +++ /dev/null @@ -1,8 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. -@set OUT_DIR=Debug -@set OUT_EXE=example_sdl2_opengl3 -@set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include -@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib shell32.lib -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console diff --git a/libs/imgui-1.92.1/examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj b/libs/imgui-1.92.1/examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj deleted file mode 100644 index 6a81c67..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj +++ /dev/null @@ -1,187 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {BBAEB705-1669-40F3-8567-04CF6A991F4C} - example_sdl2_opengl3 - 8.1 - - - - Application - true - MultiByte - v140 - - - Application - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - - Level4 - Disabled - ..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - %SDL2_DIR%\lib\x86;%(AdditionalLibraryDirectories) - opengl32.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - Disabled - ..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - %SDL2_DIR%\lib\x64;%(AdditionalLibraryDirectories) - opengl32.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - %SDL2_DIR%\lib\x86;%(AdditionalLibraryDirectories) - opengl32.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - Console - - - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - %SDL2_DIR%\lib\x64;%(AdditionalLibraryDirectories) - opengl32.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj.filters b/libs/imgui-1.92.1/examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj.filters deleted file mode 100644 index 846d557..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj.filters +++ /dev/null @@ -1,67 +0,0 @@ - - - - - {20b90ce4-7fcb-4731-b9a0-075f875de82d} - - - {f18ab499-84e1-499f-8eff-9754361e0e52} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - sources - - - imgui - - - imgui - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - sources - - - - - - imgui - - - imgui - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_sdl2_opengl3/main.cpp b/libs/imgui-1.92.1/examples/example_sdl2_opengl3/main.cpp deleted file mode 100644 index 16a73de..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_opengl3/main.cpp +++ /dev/null @@ -1,238 +0,0 @@ -// Dear ImGui: standalone example application for SDL2 + OpenGL -// (SDL is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.) - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#include "imgui.h" -#include "imgui_impl_sdl2.h" -#include "imgui_impl_opengl3.h" -#include -#include -#if defined(IMGUI_IMPL_OPENGL_ES2) -#include -#else -#include -#endif -#ifdef _WIN32 -#include // SetProcessDPIAware() -#endif - -// This example can also compile and run with Emscripten! See 'Makefile.emscripten' for details. -#ifdef __EMSCRIPTEN__ -#include "../libs/emscripten/emscripten_mainloop_stub.h" -#endif - -// Main code -int main(int, char**) -{ - // Setup SDL -#ifdef _WIN32 - ::SetProcessDPIAware(); -#endif - if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_GAMECONTROLLER) != 0) - { - printf("Error: %s\n", SDL_GetError()); - return -1; - } - - // Decide GL+GLSL versions -#if defined(IMGUI_IMPL_OPENGL_ES2) - // GL ES 2.0 + GLSL 100 (WebGL 1.0) - const char* glsl_version = "#version 100"; - SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, 0); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0); -#elif defined(IMGUI_IMPL_OPENGL_ES3) - // GL ES 3.0 + GLSL 300 es (WebGL 2.0) - const char* glsl_version = "#version 300 es"; - SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, 0); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0); -#elif defined(__APPLE__) - // GL 3.2 Core + GLSL 150 - const char* glsl_version = "#version 150"; - SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG); // Always required on Mac - SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2); -#else - // GL 3.0 + GLSL 130 - const char* glsl_version = "#version 130"; - SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, 0); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0); -#endif - - // From 2.0.18: Enable native IME. -#ifdef SDL_HINT_IME_SHOW_UI - SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1"); -#endif - - // Create window with graphics context - SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); - SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24); - SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8); - float main_scale = ImGui_ImplSDL2_GetContentScaleForDisplay(0); - SDL_WindowFlags window_flags = (SDL_WindowFlags)(SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI); - SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL2+OpenGL3 example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, (int)(1280 * main_scale), (int)(720 * main_scale), window_flags); - if (window == nullptr) - { - printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError()); - return -1; - } - - SDL_GLContext gl_context = SDL_GL_CreateContext(window); - if (gl_context == nullptr) - { - printf("Error: SDL_GL_CreateContext(): %s\n", SDL_GetError()); - return -1; - } - - SDL_GL_MakeCurrent(window, gl_context); - SDL_GL_SetSwapInterval(1); // Enable vsync - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup scaling - ImGuiStyle& style = ImGui::GetStyle(); - style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again) - style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose) - - // Setup Platform/Renderer backends - ImGui_ImplSDL2_InitForOpenGL(window, gl_context); - ImGui_ImplOpenGL3_Init(glsl_version); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - // - Our Emscripten build process allows embedding fonts to be accessible at runtime from the "fonts/" folder. See Makefile.emscripten for details. - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop - bool done = false; -#ifdef __EMSCRIPTEN__ - // For an Emscripten build we are disabling file-system access, so let's not attempt to do a fopen() of the imgui.ini file. - // You may manually call LoadIniSettingsFromMemory() to load settings from your own storage. - io.IniFilename = nullptr; - EMSCRIPTEN_MAINLOOP_BEGIN -#else - while (!done) -#endif - { - // Poll and handle events (inputs, window resize, etc.) - // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. - // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. - // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. - // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. - SDL_Event event; - while (SDL_PollEvent(&event)) - { - ImGui_ImplSDL2_ProcessEvent(&event); - if (event.type == SDL_QUIT) - done = true; - if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_CLOSE && event.window.windowID == SDL_GetWindowID(window)) - done = true; - } - if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED) - { - SDL_Delay(10); - continue; - } - - // Start the Dear ImGui frame - ImGui_ImplOpenGL3_NewFrame(); - ImGui_ImplSDL2_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - glViewport(0, 0, (int)io.DisplaySize.x, (int)io.DisplaySize.y); - glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w); - glClear(GL_COLOR_BUFFER_BIT); - ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData()); - SDL_GL_SwapWindow(window); - } -#ifdef __EMSCRIPTEN__ - EMSCRIPTEN_MAINLOOP_END; -#endif - - // Cleanup - ImGui_ImplOpenGL3_Shutdown(); - ImGui_ImplSDL2_Shutdown(); - ImGui::DestroyContext(); - - SDL_GL_DeleteContext(gl_context); - SDL_DestroyWindow(window); - SDL_Quit(); - - return 0; -} diff --git a/libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/Makefile b/libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/Makefile deleted file mode 100644 index 5820d9b..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/Makefile +++ /dev/null @@ -1,79 +0,0 @@ -# -# Cross Platform Makefile -# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X -# -# You will need SDL2 (http://www.libsdl.org): -# Linux: -# apt-get install libsdl2-dev -# Mac OS X: -# brew install sdl2 -# MSYS2: -# pacman -S mingw-w64-i686-SDL2 -# - -#CXX = g++ -#CXX = clang++ - -EXE = example_sdl2_sdlrenderer2 -IMGUI_DIR = ../.. -SOURCES = main.cpp -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl2.cpp $(IMGUI_DIR)/backends/imgui_impl_sdlrenderer2.cpp -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) -UNAME_S := $(shell uname -s) - -CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -CXXFLAGS += -g -Wall -Wformat -LIBS = - -##--------------------------------------------------------------------- -## BUILD FLAGS PER PLATFORM -##--------------------------------------------------------------------- - -ifeq ($(UNAME_S), Linux) #LINUX - ECHO_MESSAGE = "Linux" - LIBS += -lGL -ldl `sdl2-config --libs` - - CXXFLAGS += `sdl2-config --cflags` - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(UNAME_S), Darwin) #APPLE - ECHO_MESSAGE = "Mac OS X" - LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs` - LIBS += -L/usr/local/lib -L/opt/local/lib - - CXXFLAGS += `sdl2-config --cflags` - CXXFLAGS += -I/usr/local/include -I/opt/local/include - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(OS), Windows_NT) - ECHO_MESSAGE = "MinGW" - LIBS += -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2` - - CXXFLAGS += `pkg-config --cflags sdl2` - CFLAGS = $(CXXFLAGS) -endif - -##--------------------------------------------------------------------- -## BUILD RULES -##--------------------------------------------------------------------- - -%.o:%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -all: $(EXE) - @echo Build complete for $(ECHO_MESSAGE) - -$(EXE): $(OBJS) - $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) - -clean: - rm -f $(EXE) $(OBJS) diff --git a/libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/README.md b/libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/README.md deleted file mode 100644 index ef6fe85..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/README.md +++ /dev/null @@ -1,25 +0,0 @@ - -# How to Build - -- On Windows with Visual Studio's CLI - -``` -set SDL2_DIR=path_to_your_sdl2_folder -cl /Zi /MD /utf-8 /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_sdlrenderer2.cpp ..\..\imgui*.cpp /FeDebug/example_sdl2_sdlrenderer.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib /subsystem:console -# ^^ include paths ^^ source files ^^ output exe ^^ output dir ^^ libraries -# or for 64-bit: -cl /Zi /MD /utf-8 /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_sdlrenderer2.cpp ..\..\imgui*.cpp /FeDebug/example_sdl2_sdlrenderer.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x64 SDL2.lib SDL2main.lib /subsystem:console -``` - -- On Linux and similar Unixes - -``` -c++ `sdl2-config --cflags` -I .. -I ../.. main.cpp ../../backends/imgui_impl_sdl2.cpp ../../backends/imgui_impl_sdlrenderer2.cpp ../../imgui*.cpp `sdl2-config --libs` -lGL -``` - -- On Mac OS X - -``` -brew install sdl2 -c++ `sdl2-config --cflags` -I .. -I ../.. main.cpp ../../backends/imgui_impl_sdl2.cpp ../../backends/imgui_impl_sdlrenderer2.cpp ../../imgui*.cpp `sdl2-config --libs` -framework OpenGl -``` diff --git a/libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/build_win32.bat b/libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/build_win32.bat deleted file mode 100644 index e311bfc..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/build_win32.bat +++ /dev/null @@ -1,8 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. -@set OUT_DIR=Debug -@set OUT_EXE=example_sdl2_sdlrenderer_ -@set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include -@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_sdlrenderer2.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console diff --git a/libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2.vcxproj b/libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2.vcxproj deleted file mode 100644 index cf2c890..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2.vcxproj +++ /dev/null @@ -1,187 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {0C0B2BEA-311F-473C-9652-87923EF639E3} - example_sdl2_sdlrenderer2 - 8.1 - example_sdl2_sdlrenderer2 - - - - Application - true - MultiByte - v140 - - - Application - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - - Level4 - Disabled - ..\..;..\..\backends;%SDL2_DIR%\include;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - %SDL2_DIR%\lib\x86;%(AdditionalLibraryDirectories) - SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - Disabled - ..\..;..\..\backends;%SDL2_DIR%\include;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - %SDL2_DIR%\lib\x64;%(AdditionalLibraryDirectories) - SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%SDL2_DIR%\include;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - %SDL2_DIR%\lib\x86;%(AdditionalLibraryDirectories) - SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - Console - - - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%SDL2_DIR%\include;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - %SDL2_DIR%\lib\x64;%(AdditionalLibraryDirectories) - SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2.vcxproj.filters b/libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2.vcxproj.filters deleted file mode 100644 index 5c6da42..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2.vcxproj.filters +++ /dev/null @@ -1,64 +0,0 @@ - - - - - {20b90ce4-7fcb-4731-b9a0-075f875de82d} - - - {f18ab499-84e1-499f-8eff-9754361e0e52} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - - - imgui - - - imgui - - - imgui - - - sources - - - imgui - - - imgui - - - sources - - - sources - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - - imgui - - - imgui - - - diff --git a/libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/main.cpp b/libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/main.cpp deleted file mode 100644 index e456b2e..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/main.cpp +++ /dev/null @@ -1,189 +0,0 @@ -// Dear ImGui: standalone example application for SDL2 + SDL_Renderer -// (SDL is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.) - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// Important to understand: SDL_Renderer is an _optional_ component of SDL2. -// For a multi-platform app consider using e.g. SDL+DirectX on Windows and SDL+OpenGL on Linux/OSX. - -#include "imgui.h" -#include "imgui_impl_sdl2.h" -#include "imgui_impl_sdlrenderer2.h" -#include -#include -#ifdef _WIN32 -#include // SetProcessDPIAware() -#endif - -#if !SDL_VERSION_ATLEAST(2,0,17) -#error This backend requires SDL 2.0.17+ because of SDL_RenderGeometry() function -#endif - -// Main code -int main(int, char**) -{ - // Setup SDL -#ifdef _WIN32 - ::SetProcessDPIAware(); -#endif - if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_GAMECONTROLLER) != 0) - { - printf("Error: %s\n", SDL_GetError()); - return -1; - } - - // From 2.0.18: Enable native IME. -#ifdef SDL_HINT_IME_SHOW_UI - SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1"); -#endif - - // Create window with SDL_Renderer graphics context - float main_scale = ImGui_ImplSDL2_GetContentScaleForDisplay(0); - SDL_WindowFlags window_flags = (SDL_WindowFlags)(SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI); - SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL2+SDL_Renderer example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, (int)(1280 * main_scale), (int)(720 * main_scale), window_flags); - if (window == nullptr) - { - printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError()); - return -1; - } - SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_ACCELERATED); - if (renderer == nullptr) - { - SDL_Log("Error creating SDL_Renderer!"); - return -1; - } - //SDL_RendererInfo info; - //SDL_GetRendererInfo(renderer, &info); - //SDL_Log("Current SDL_Renderer: %s", info.name); - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup scaling - ImGuiStyle& style = ImGui::GetStyle(); - style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again) - style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose) - - // Setup Platform/Renderer backends - ImGui_ImplSDL2_InitForSDLRenderer(window, renderer); - ImGui_ImplSDLRenderer2_Init(renderer); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop - bool done = false; - while (!done) - { - // Poll and handle events (inputs, window resize, etc.) - // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. - // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. - // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. - // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. - SDL_Event event; - while (SDL_PollEvent(&event)) - { - ImGui_ImplSDL2_ProcessEvent(&event); - if (event.type == SDL_QUIT) - done = true; - if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_CLOSE && event.window.windowID == SDL_GetWindowID(window)) - done = true; - } - if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED) - { - SDL_Delay(10); - continue; - } - - // Start the Dear ImGui frame - ImGui_ImplSDLRenderer2_NewFrame(); - ImGui_ImplSDL2_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - SDL_RenderSetScale(renderer, io.DisplayFramebufferScale.x, io.DisplayFramebufferScale.y); - SDL_SetRenderDrawColor(renderer, (Uint8)(clear_color.x * 255), (Uint8)(clear_color.y * 255), (Uint8)(clear_color.z * 255), (Uint8)(clear_color.w * 255)); - SDL_RenderClear(renderer); - ImGui_ImplSDLRenderer2_RenderDrawData(ImGui::GetDrawData(), renderer); - SDL_RenderPresent(renderer); - } - - // Cleanup - ImGui_ImplSDLRenderer2_Shutdown(); - ImGui_ImplSDL2_Shutdown(); - ImGui::DestroyContext(); - - SDL_DestroyRenderer(renderer); - SDL_DestroyWindow(window); - SDL_Quit(); - - return 0; -} diff --git a/libs/imgui-1.92.1/examples/example_sdl2_vulkan/Makefile b/libs/imgui-1.92.1/examples/example_sdl2_vulkan/Makefile deleted file mode 100644 index e722ab0..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_vulkan/Makefile +++ /dev/null @@ -1,80 +0,0 @@ -# -# Cross Platform Makefile -# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X -# -# You will need SDL2 (http://www.libsdl.org): -# Linux: -# apt-get install libsdl2-dev -# Mac OS X: -# brew install sdl2 -# MSYS2: -# pacman -S mingw-w64-i686-SDL2 -# - -#CXX = g++ -#CXX = clang++ - -EXE = example_sdl2_vulkan -IMGUI_DIR = ../.. -SOURCES = main.cpp -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl2.cpp $(IMGUI_DIR)/backends/imgui_impl_vulkan.cpp -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) -UNAME_S := $(shell uname -s) - -CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -CXXFLAGS += -g -Wall -Wformat -LIBS = - -##--------------------------------------------------------------------- -## BUILD FLAGS PER PLATFORM -##--------------------------------------------------------------------- - -ifeq ($(UNAME_S), Linux) #LINUX - ECHO_MESSAGE = "Linux" - LIBS += -lGL -ldl - LIBS += `pkg-config --libs sdl2 vulkan` - CXXFLAGS += `pkg-config --cflags sdl2 vulkan` - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(UNAME_S), Darwin) #APPLE - ECHO_MESSAGE = "Mac OS X" - LIBS += -framework Cocoa -framework IOKit -framework CoreVideo - LIBS += `pkg-config --libs sdl2 vulkan` - LIBS += -L/usr/local/lib -L/opt/local/lib - - CXXFLAGS += `pkg-config --cflags sdl2 vulkan` - CXXFLAGS += -I/usr/local/include -I/opt/local/include - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(OS), Windows_NT) - ECHO_MESSAGE = "MinGW" - LIBS += -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2 vulkan` - - CXXFLAGS += `pkg-config --cflags sdl2 vulkan` - CFLAGS = $(CXXFLAGS) -endif - -##--------------------------------------------------------------------- -## BUILD RULES -##--------------------------------------------------------------------- - -%.o:%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -all: $(EXE) - @echo Build complete for $(ECHO_MESSAGE) - -$(EXE): $(OBJS) - $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) - -clean: - rm -f $(EXE) $(OBJS) diff --git a/libs/imgui-1.92.1/examples/example_sdl2_vulkan/build_win32.bat b/libs/imgui-1.92.1/examples/example_sdl2_vulkan/build_win32.bat deleted file mode 100644 index f634aba..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_vulkan/build_win32.bat +++ /dev/null @@ -1,14 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. - -@set OUT_EXE=example_sdl2_vulkan -@set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include /I %VULKAN_SDK%\include -@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 /libpath:%VULKAN_SDK%\lib32 SDL2.lib SDL2main.lib shell32.lib vulkan-1.lib - -@set OUT_DIR=Debug -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console - -@set OUT_DIR=Release -@REM mkdir %OUT_DIR% -@REM cl /nologo /Zi /MD /utf-8 /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console diff --git a/libs/imgui-1.92.1/examples/example_sdl2_vulkan/build_win64.bat b/libs/imgui-1.92.1/examples/example_sdl2_vulkan/build_win64.bat deleted file mode 100644 index 5d315cc..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_vulkan/build_win64.bat +++ /dev/null @@ -1,14 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars64.bat or vcvarsall.bat to setup command-line compiler. - -@set OUT_EXE=example_sdl2_vulkan -@set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include /I %VULKAN_SDK%\include -@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:%SDL2_DIR%\lib\x64 /libpath:%VULKAN_SDK%\lib SDL2.lib SDL2main.lib shell32.lib vulkan-1.lib - -@set OUT_DIR=Debug -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console - -@set OUT_DIR=Release -@REM mkdir %OUT_DIR% -@REM cl /nologo /Zi /MD /utf-8 /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console diff --git a/libs/imgui-1.92.1/examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj b/libs/imgui-1.92.1/examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj deleted file mode 100644 index bcf99a4..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj +++ /dev/null @@ -1,190 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3} - example_sdl2_vulkan - 8.1 - - - - Application - true - MultiByte - v140 - - - Application - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - - Level4 - Disabled - ..\..;..\..\backends;%VULKAN_SDK%\include;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories) - _MBCS;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - %VULKAN_SDK%\lib32;%SDL2_DIR%\lib\x86;%(AdditionalLibraryDirectories) - vulkan-1.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - Disabled - ..\..;..\..\backends;%VULKAN_SDK%\include;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories) - _MBCS;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - %VULKAN_SDK%\lib;%SDL2_DIR%\lib\x64;%(AdditionalLibraryDirectories) - vulkan-1.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%VULKAN_SDK%\include;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories) - false - _MBCS;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - true - true - %VULKAN_SDK%\lib32;%SDL2_DIR%\lib\x86;%(AdditionalLibraryDirectories) - vulkan-1.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - Console - - - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%VULKAN_SDK%\include;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories) - false - _MBCS;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - true - true - %VULKAN_SDK%\lib;%SDL2_DIR%\lib\x64;%(AdditionalLibraryDirectories) - vulkan-1.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/libs/imgui-1.92.1/examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj.filters b/libs/imgui-1.92.1/examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj.filters deleted file mode 100644 index ab42485..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj.filters +++ /dev/null @@ -1,64 +0,0 @@ - - - - - {20b90ce4-7fcb-4731-b9a0-075f875de82d} - - - {f18ab499-84e1-499f-8eff-9754361e0e52} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - sources - - - imgui - - - imgui - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - - imgui - - - imgui - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_sdl2_vulkan/main.cpp b/libs/imgui-1.92.1/examples/example_sdl2_vulkan/main.cpp deleted file mode 100644 index 300543f..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl2_vulkan/main.cpp +++ /dev/null @@ -1,555 +0,0 @@ -// Dear ImGui: standalone example application for SDL2 + Vulkan - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// Important note to the reader who wish to integrate imgui_impl_vulkan.cpp/.h in their own engine/app. -// - Common ImGui_ImplVulkan_XXX functions and structures are used to interface with imgui_impl_vulkan.cpp/.h. -// You will use those if you want to use this rendering backend in your engine/app. -// - Helper ImGui_ImplVulkanH_XXX functions and structures are only used by this example (main.cpp) and by -// the backend itself (imgui_impl_vulkan.cpp), but should PROBABLY NOT be used by your own engine/app code. -// Read comments in imgui_impl_vulkan.h. - -#include "imgui.h" -#include "imgui_impl_sdl2.h" -#include "imgui_impl_vulkan.h" -#include // printf, fprintf -#include // abort -#include -#include -#ifdef _WIN32 -#include // SetProcessDPIAware() -#endif - -// Volk headers -#ifdef IMGUI_IMPL_VULKAN_USE_VOLK -#define VOLK_IMPLEMENTATION -#include -#endif - -//#define APP_USE_UNLIMITED_FRAME_RATE -#ifdef _DEBUG -#define APP_USE_VULKAN_DEBUG_REPORT -static VkDebugReportCallbackEXT g_DebugReport = VK_NULL_HANDLE; -#endif - -// Data -static VkAllocationCallbacks* g_Allocator = nullptr; -static VkInstance g_Instance = VK_NULL_HANDLE; -static VkPhysicalDevice g_PhysicalDevice = VK_NULL_HANDLE; -static VkDevice g_Device = VK_NULL_HANDLE; -static uint32_t g_QueueFamily = (uint32_t)-1; -static VkQueue g_Queue = VK_NULL_HANDLE; -static VkPipelineCache g_PipelineCache = VK_NULL_HANDLE; -static VkDescriptorPool g_DescriptorPool = VK_NULL_HANDLE; - -static ImGui_ImplVulkanH_Window g_MainWindowData; -static uint32_t g_MinImageCount = 2; -static bool g_SwapChainRebuild = false; - -static void check_vk_result(VkResult err) -{ - if (err == VK_SUCCESS) - return; - fprintf(stderr, "[vulkan] Error: VkResult = %d\n", err); - if (err < 0) - abort(); -} - -#ifdef APP_USE_VULKAN_DEBUG_REPORT -static VKAPI_ATTR VkBool32 VKAPI_CALL debug_report(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, void* pUserData) -{ - (void)flags; (void)object; (void)location; (void)messageCode; (void)pUserData; (void)pLayerPrefix; // Unused arguments - fprintf(stderr, "[vulkan] Debug report from ObjectType: %i\nMessage: %s\n\n", objectType, pMessage); - return VK_FALSE; -} -#endif // APP_USE_VULKAN_DEBUG_REPORT - -static bool IsExtensionAvailable(const ImVector& properties, const char* extension) -{ - for (const VkExtensionProperties& p : properties) - if (strcmp(p.extensionName, extension) == 0) - return true; - return false; -} - -static void SetupVulkan(ImVector instance_extensions) -{ - VkResult err; -#ifdef IMGUI_IMPL_VULKAN_USE_VOLK - volkInitialize(); -#endif - - // Create Vulkan Instance - { - VkInstanceCreateInfo create_info = {}; - create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO; - - // Enumerate available extensions - uint32_t properties_count; - ImVector properties; - vkEnumerateInstanceExtensionProperties(nullptr, &properties_count, nullptr); - properties.resize(properties_count); - err = vkEnumerateInstanceExtensionProperties(nullptr, &properties_count, properties.Data); - check_vk_result(err); - - // Enable required extensions - if (IsExtensionAvailable(properties, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)) - instance_extensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); -#ifdef VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME - if (IsExtensionAvailable(properties, VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME)) - { - instance_extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME); - create_info.flags |= VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR; - } -#endif - - // Enabling validation layers -#ifdef APP_USE_VULKAN_DEBUG_REPORT - const char* layers[] = { "VK_LAYER_KHRONOS_validation" }; - create_info.enabledLayerCount = 1; - create_info.ppEnabledLayerNames = layers; - instance_extensions.push_back("VK_EXT_debug_report"); -#endif - - // Create Vulkan Instance - create_info.enabledExtensionCount = (uint32_t)instance_extensions.Size; - create_info.ppEnabledExtensionNames = instance_extensions.Data; - err = vkCreateInstance(&create_info, g_Allocator, &g_Instance); - check_vk_result(err); -#ifdef IMGUI_IMPL_VULKAN_USE_VOLK - volkLoadInstance(g_Instance); -#endif - - // Setup the debug report callback -#ifdef APP_USE_VULKAN_DEBUG_REPORT - auto f_vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkCreateDebugReportCallbackEXT"); - IM_ASSERT(f_vkCreateDebugReportCallbackEXT != nullptr); - VkDebugReportCallbackCreateInfoEXT debug_report_ci = {}; - debug_report_ci.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT; - debug_report_ci.flags = VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_WARNING_BIT_EXT | VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT; - debug_report_ci.pfnCallback = debug_report; - debug_report_ci.pUserData = nullptr; - err = f_vkCreateDebugReportCallbackEXT(g_Instance, &debug_report_ci, g_Allocator, &g_DebugReport); - check_vk_result(err); -#endif - } - - // Select Physical Device (GPU) - g_PhysicalDevice = ImGui_ImplVulkanH_SelectPhysicalDevice(g_Instance); - IM_ASSERT(g_PhysicalDevice != VK_NULL_HANDLE); - - // Select graphics queue family - g_QueueFamily = ImGui_ImplVulkanH_SelectQueueFamilyIndex(g_PhysicalDevice); - IM_ASSERT(g_QueueFamily != (uint32_t)-1); - - // Create Logical Device (with 1 queue) - { - ImVector device_extensions; - device_extensions.push_back("VK_KHR_swapchain"); - - // Enumerate physical device extension - uint32_t properties_count; - ImVector properties; - vkEnumerateDeviceExtensionProperties(g_PhysicalDevice, nullptr, &properties_count, nullptr); - properties.resize(properties_count); - vkEnumerateDeviceExtensionProperties(g_PhysicalDevice, nullptr, &properties_count, properties.Data); -#ifdef VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME - if (IsExtensionAvailable(properties, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME)) - device_extensions.push_back(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME); -#endif - - const float queue_priority[] = { 1.0f }; - VkDeviceQueueCreateInfo queue_info[1] = {}; - queue_info[0].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO; - queue_info[0].queueFamilyIndex = g_QueueFamily; - queue_info[0].queueCount = 1; - queue_info[0].pQueuePriorities = queue_priority; - VkDeviceCreateInfo create_info = {}; - create_info.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO; - create_info.queueCreateInfoCount = sizeof(queue_info) / sizeof(queue_info[0]); - create_info.pQueueCreateInfos = queue_info; - create_info.enabledExtensionCount = (uint32_t)device_extensions.Size; - create_info.ppEnabledExtensionNames = device_extensions.Data; - err = vkCreateDevice(g_PhysicalDevice, &create_info, g_Allocator, &g_Device); - check_vk_result(err); - vkGetDeviceQueue(g_Device, g_QueueFamily, 0, &g_Queue); - } - - // Create Descriptor Pool - // If you wish to load e.g. additional textures you may need to alter pools sizes and maxSets. - { - VkDescriptorPoolSize pool_sizes[] = - { - { VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE }, - }; - VkDescriptorPoolCreateInfo pool_info = {}; - pool_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO; - pool_info.flags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT; - pool_info.maxSets = 0; - for (VkDescriptorPoolSize& pool_size : pool_sizes) - pool_info.maxSets += pool_size.descriptorCount; - pool_info.poolSizeCount = (uint32_t)IM_ARRAYSIZE(pool_sizes); - pool_info.pPoolSizes = pool_sizes; - err = vkCreateDescriptorPool(g_Device, &pool_info, g_Allocator, &g_DescriptorPool); - check_vk_result(err); - } -} - -// All the ImGui_ImplVulkanH_XXX structures/functions are optional helpers used by the demo. -// Your real engine/app may not use them. -static void SetupVulkanWindow(ImGui_ImplVulkanH_Window* wd, VkSurfaceKHR surface, int width, int height) -{ - wd->Surface = surface; - - // Check for WSI support - VkBool32 res; - vkGetPhysicalDeviceSurfaceSupportKHR(g_PhysicalDevice, g_QueueFamily, wd->Surface, &res); - if (res != VK_TRUE) - { - fprintf(stderr, "Error no WSI support on physical device 0\n"); - exit(-1); - } - - // Select Surface Format - const VkFormat requestSurfaceImageFormat[] = { VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_R8G8B8_UNORM }; - const VkColorSpaceKHR requestSurfaceColorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR; - wd->SurfaceFormat = ImGui_ImplVulkanH_SelectSurfaceFormat(g_PhysicalDevice, wd->Surface, requestSurfaceImageFormat, (size_t)IM_ARRAYSIZE(requestSurfaceImageFormat), requestSurfaceColorSpace); - - // Select Present Mode -#ifdef APP_USE_UNLIMITED_FRAME_RATE - VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_FIFO_KHR }; -#else - VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_FIFO_KHR }; -#endif - wd->PresentMode = ImGui_ImplVulkanH_SelectPresentMode(g_PhysicalDevice, wd->Surface, &present_modes[0], IM_ARRAYSIZE(present_modes)); - //printf("[vulkan] Selected PresentMode = %d\n", wd->PresentMode); - - // Create SwapChain, RenderPass, Framebuffer, etc. - IM_ASSERT(g_MinImageCount >= 2); - ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, wd, g_QueueFamily, g_Allocator, width, height, g_MinImageCount); -} - -static void CleanupVulkan() -{ - vkDestroyDescriptorPool(g_Device, g_DescriptorPool, g_Allocator); - -#ifdef APP_USE_VULKAN_DEBUG_REPORT - // Remove the debug report callback - auto f_vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkDestroyDebugReportCallbackEXT"); - f_vkDestroyDebugReportCallbackEXT(g_Instance, g_DebugReport, g_Allocator); -#endif // APP_USE_VULKAN_DEBUG_REPORT - - vkDestroyDevice(g_Device, g_Allocator); - vkDestroyInstance(g_Instance, g_Allocator); -} - -static void CleanupVulkanWindow() -{ - ImGui_ImplVulkanH_DestroyWindow(g_Instance, g_Device, &g_MainWindowData, g_Allocator); -} - -static void FrameRender(ImGui_ImplVulkanH_Window* wd, ImDrawData* draw_data) -{ - VkSemaphore image_acquired_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore; - VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore; - VkResult err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex); - if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR) - g_SwapChainRebuild = true; - if (err == VK_ERROR_OUT_OF_DATE_KHR) - return; - if (err != VK_SUBOPTIMAL_KHR) - check_vk_result(err); - - ImGui_ImplVulkanH_Frame* fd = &wd->Frames[wd->FrameIndex]; - { - err = vkWaitForFences(g_Device, 1, &fd->Fence, VK_TRUE, UINT64_MAX); // wait indefinitely instead of periodically checking - check_vk_result(err); - - err = vkResetFences(g_Device, 1, &fd->Fence); - check_vk_result(err); - } - { - err = vkResetCommandPool(g_Device, fd->CommandPool, 0); - check_vk_result(err); - VkCommandBufferBeginInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; - info.flags |= VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT; - err = vkBeginCommandBuffer(fd->CommandBuffer, &info); - check_vk_result(err); - } - { - VkRenderPassBeginInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO; - info.renderPass = wd->RenderPass; - info.framebuffer = fd->Framebuffer; - info.renderArea.extent.width = wd->Width; - info.renderArea.extent.height = wd->Height; - info.clearValueCount = 1; - info.pClearValues = &wd->ClearValue; - vkCmdBeginRenderPass(fd->CommandBuffer, &info, VK_SUBPASS_CONTENTS_INLINE); - } - - // Record dear imgui primitives into command buffer - ImGui_ImplVulkan_RenderDrawData(draw_data, fd->CommandBuffer); - - // Submit command buffer - vkCmdEndRenderPass(fd->CommandBuffer); - { - VkPipelineStageFlags wait_stage = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - VkSubmitInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; - info.waitSemaphoreCount = 1; - info.pWaitSemaphores = &image_acquired_semaphore; - info.pWaitDstStageMask = &wait_stage; - info.commandBufferCount = 1; - info.pCommandBuffers = &fd->CommandBuffer; - info.signalSemaphoreCount = 1; - info.pSignalSemaphores = &render_complete_semaphore; - - err = vkEndCommandBuffer(fd->CommandBuffer); - check_vk_result(err); - err = vkQueueSubmit(g_Queue, 1, &info, fd->Fence); - check_vk_result(err); - } -} - -static void FramePresent(ImGui_ImplVulkanH_Window* wd) -{ - if (g_SwapChainRebuild) - return; - VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore; - VkPresentInfoKHR info = {}; - info.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR; - info.waitSemaphoreCount = 1; - info.pWaitSemaphores = &render_complete_semaphore; - info.swapchainCount = 1; - info.pSwapchains = &wd->Swapchain; - info.pImageIndices = &wd->FrameIndex; - VkResult err = vkQueuePresentKHR(g_Queue, &info); - if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR) - g_SwapChainRebuild = true; - if (err == VK_ERROR_OUT_OF_DATE_KHR) - return; - if (err != VK_SUBOPTIMAL_KHR) - check_vk_result(err); - wd->SemaphoreIndex = (wd->SemaphoreIndex + 1) % wd->SemaphoreCount; // Now we can use the next set of semaphores -} - -// Main code -int main(int, char**) -{ - // Setup SDL -#ifdef _WIN32 - ::SetProcessDPIAware(); -#endif - if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_GAMECONTROLLER) != 0) - { - printf("Error: %s\n", SDL_GetError()); - return -1; - } - - // From 2.0.18: Enable native IME. -#ifdef SDL_HINT_IME_SHOW_UI - SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1"); -#endif - - // Create window with Vulkan graphics context - float main_scale = ImGui_ImplSDL2_GetContentScaleForDisplay(0); - SDL_WindowFlags window_flags = (SDL_WindowFlags)(SDL_WINDOW_VULKAN | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI); - SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL2+Vulkan example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, (int)(1280 * main_scale), (int)(720 * main_scale), window_flags); - if (window == nullptr) - { - printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError()); - return -1; - } - - ImVector extensions; - uint32_t extensions_count = 0; - SDL_Vulkan_GetInstanceExtensions(window, &extensions_count, nullptr); - extensions.resize(extensions_count); - SDL_Vulkan_GetInstanceExtensions(window, &extensions_count, extensions.Data); - SetupVulkan(extensions); - - // Create Window Surface - VkSurfaceKHR surface; - VkResult err; - if (SDL_Vulkan_CreateSurface(window, g_Instance, &surface) == 0) - { - printf("Failed to create Vulkan surface.\n"); - return 1; - } - - // Create Framebuffers - int w, h; - SDL_GetWindowSize(window, &w, &h); - ImGui_ImplVulkanH_Window* wd = &g_MainWindowData; - SetupVulkanWindow(wd, surface, w, h); - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup scaling - ImGuiStyle& style = ImGui::GetStyle(); - style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again) - style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose) - - // Setup Platform/Renderer backends - ImGui_ImplSDL2_InitForVulkan(window); - ImGui_ImplVulkan_InitInfo init_info = {}; - //init_info.ApiVersion = VK_API_VERSION_1_3; // Pass in your value of VkApplicationInfo::apiVersion, otherwise will default to header version. - init_info.Instance = g_Instance; - init_info.PhysicalDevice = g_PhysicalDevice; - init_info.Device = g_Device; - init_info.QueueFamily = g_QueueFamily; - init_info.Queue = g_Queue; - init_info.PipelineCache = g_PipelineCache; - init_info.DescriptorPool = g_DescriptorPool; - init_info.RenderPass = wd->RenderPass; - init_info.Subpass = 0; - init_info.MinImageCount = g_MinImageCount; - init_info.ImageCount = wd->ImageCount; - init_info.MSAASamples = VK_SAMPLE_COUNT_1_BIT; - init_info.Allocator = g_Allocator; - init_info.CheckVkResultFn = check_vk_result; - ImGui_ImplVulkan_Init(&init_info); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop - bool done = false; - while (!done) - { - // Poll and handle events (inputs, window resize, etc.) - // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. - // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. - // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. - // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. - SDL_Event event; - while (SDL_PollEvent(&event)) - { - ImGui_ImplSDL2_ProcessEvent(&event); - if (event.type == SDL_QUIT) - done = true; - if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_CLOSE && event.window.windowID == SDL_GetWindowID(window)) - done = true; - } - if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED) - { - SDL_Delay(10); - continue; - } - - // Resize swap chain? - int fb_width, fb_height; - SDL_GetWindowSize(window, &fb_width, &fb_height); - if (fb_width > 0 && fb_height > 0 && (g_SwapChainRebuild || g_MainWindowData.Width != fb_width || g_MainWindowData.Height != fb_height)) - { - ImGui_ImplVulkan_SetMinImageCount(g_MinImageCount); - ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, &g_MainWindowData, g_QueueFamily, g_Allocator, fb_width, fb_height, g_MinImageCount); - g_MainWindowData.FrameIndex = 0; - g_SwapChainRebuild = false; - } - - // Start the Dear ImGui frame - ImGui_ImplVulkan_NewFrame(); - ImGui_ImplSDL2_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - ImDrawData* draw_data = ImGui::GetDrawData(); - const bool is_minimized = (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f); - if (!is_minimized) - { - wd->ClearValue.color.float32[0] = clear_color.x * clear_color.w; - wd->ClearValue.color.float32[1] = clear_color.y * clear_color.w; - wd->ClearValue.color.float32[2] = clear_color.z * clear_color.w; - wd->ClearValue.color.float32[3] = clear_color.w; - FrameRender(wd, draw_data); - FramePresent(wd); - } - } - - // Cleanup - err = vkDeviceWaitIdle(g_Device); - check_vk_result(err); - ImGui_ImplVulkan_Shutdown(); - ImGui_ImplSDL2_Shutdown(); - ImGui::DestroyContext(); - - CleanupVulkanWindow(); - CleanupVulkan(); - - SDL_DestroyWindow(window); - SDL_Quit(); - - return 0; -} diff --git a/libs/imgui-1.92.1/examples/example_sdl3_opengl3/Makefile b/libs/imgui-1.92.1/examples/example_sdl3_opengl3/Makefile deleted file mode 100644 index d9c6eac..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_opengl3/Makefile +++ /dev/null @@ -1,85 +0,0 @@ -# -# Cross Platform Makefile -# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X -# -# You will need SDL3 (http://www.libsdl.org) which is still unreleased/unpackaged. - -#CXX = g++ -#CXX = clang++ - -EXE = example_sdl3_opengl3 -IMGUI_DIR = ../.. -SOURCES = main.cpp -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl3.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) -UNAME_S := $(shell uname -s) -LINUX_GL_LIBS = -lGL - -CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -CXXFLAGS += -g -Wall -Wformat -LIBS = - -##--------------------------------------------------------------------- -## OPENGL ES -##--------------------------------------------------------------------- - -## This assumes a GL ES library available in the system, e.g. libGLESv2.so -# CXXFLAGS += -DIMGUI_IMPL_OPENGL_ES2 -# LINUX_GL_LIBS = -lGLESv2 -## If you're on a Raspberry Pi and want to use the legacy drivers, -## use the following instead: -# LINUX_GL_LIBS = -L/opt/vc/lib -lbrcmGLESv2 - -##--------------------------------------------------------------------- -## BUILD FLAGS PER PLATFORM -##--------------------------------------------------------------------- - -ifeq ($(UNAME_S), Linux) #LINUX - ECHO_MESSAGE = "Linux" - LIBS += $(LINUX_GL_LIBS) -ldl `pkg-config sdl3 --libs` - - CXXFLAGS += `pkg-config sdl3 --cflags` - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(UNAME_S), Darwin) #APPLE - ECHO_MESSAGE = "Mac OS X" - LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo - LIBS += `pkg-config --libs sdl3` - LIBS += -L/usr/local/lib -L/opt/local/lib - - CXXFLAGS += `pkg-config --cflags sdl3` - CXXFLAGS += -I/usr/local/include -I/opt/local/include - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(OS), Windows_NT) - ECHO_MESSAGE = "MinGW" - LIBS += -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl3` - - CXXFLAGS += `pkg-config --cflags sdl3` - CFLAGS = $(CXXFLAGS) -endif - -##--------------------------------------------------------------------- -## BUILD RULES -##--------------------------------------------------------------------- - -%.o:%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -all: $(EXE) - @echo Build complete for $(ECHO_MESSAGE) - -$(EXE): $(OBJS) - $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) - -clean: - rm -f $(EXE) $(OBJS) diff --git a/libs/imgui-1.92.1/examples/example_sdl3_opengl3/Makefile.emscripten b/libs/imgui-1.92.1/examples/example_sdl3_opengl3/Makefile.emscripten deleted file mode 100644 index 57247ff..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_opengl3/Makefile.emscripten +++ /dev/null @@ -1,99 +0,0 @@ - -# IMPORTANT: SDL3 IS IN DEVELOPMENT, AS OF 2023-05-30, EMSCRIPTEN DOESN'T SUPPORT SDL3 YET. -# WE ARE LEAVING THIS MAKEFILE AROUND FOR THE DAY IT WILL SUPPORT IT. - -# -# Makefile to use with SDL+emscripten -# See https://emscripten.org/docs/getting_started/downloads.html -# for installation instructions. -# -# This Makefile assumes you have loaded emscripten's environment. -# (On Windows, you may need to execute emsdk_env.bat or encmdprompt.bat ahead) -# -# Running `make -f Makefile.emscripten` will produce three files: -# - web/index.html -# - web/index.js -# - web/index.wasm -# -# All three are needed to run the demo. - -CC = emcc -CXX = em++ -WEB_DIR = web -EXE = $(WEB_DIR)/index.html -IMGUI_DIR = ../.. -SOURCES = main.cpp -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl3.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) -UNAME_S := $(shell uname -s) -CPPFLAGS = -LDFLAGS = -EMS = - -##--------------------------------------------------------------------- -## EMSCRIPTEN OPTIONS -##--------------------------------------------------------------------- - -# ("EMS" options gets added to both CPPFLAGS and LDFLAGS, whereas some options are for linker only) -EMS += -s USE_SDL=2 -EMS += -s DISABLE_EXCEPTION_CATCHING=1 -LDFLAGS += -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 -s NO_EXIT_RUNTIME=0 -s ASSERTIONS=1 - -# Build as single file (binary text encoded in .html file) -#LDFLAGS += -sSINGLE_FILE - -# Uncomment next line to fix possible rendering bugs with Emscripten version older then 1.39.0 (https://github.com/ocornut/imgui/issues/2877) -#EMS += -s BINARYEN_TRAP_MODE=clamp -#EMS += -s SAFE_HEAP=1 ## Adds overhead - -# Emscripten allows preloading a file or folder to be accessible at runtime. -# The Makefile for this example project suggests embedding the misc/fonts/ folder into our application, it will then be accessible as "/fonts" -# See documentation for more details: https://emscripten.org/docs/porting/files/packaging_files.html -# (Default value is 0. Set to 1 to enable file-system and include the misc/fonts/ folder as part of the build.) -USE_FILE_SYSTEM ?= 0 -ifeq ($(USE_FILE_SYSTEM), 0) -LDFLAGS += -s NO_FILESYSTEM=1 -CPPFLAGS += -DIMGUI_DISABLE_FILE_FUNCTIONS -endif -ifeq ($(USE_FILE_SYSTEM), 1) -LDFLAGS += --no-heap-copy --preload-file ../../misc/fonts@/fonts -endif - -##--------------------------------------------------------------------- -## FINAL BUILD FLAGS -##--------------------------------------------------------------------- - -CPPFLAGS += -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -#CPPFLAGS += -g -CPPFLAGS += -Wall -Wformat -Os $(EMS) -LDFLAGS += --shell-file ../libs/emscripten/shell_minimal.html -LDFLAGS += $(EMS) - -##--------------------------------------------------------------------- -## BUILD RULES -##--------------------------------------------------------------------- - -%.o:%.cpp - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< - -all: $(EXE) - @echo Build complete for $(EXE) - -$(WEB_DIR): - mkdir $@ - -serve: all - python3 -m http.server -d $(WEB_DIR) - -$(EXE): $(OBJS) $(WEB_DIR) - $(CXX) -o $@ $(OBJS) $(LDFLAGS) - -clean: - rm -rf $(OBJS) $(WEB_DIR) diff --git a/libs/imgui-1.92.1/examples/example_sdl3_opengl3/README.md b/libs/imgui-1.92.1/examples/example_sdl3_opengl3/README.md deleted file mode 100644 index a032f87..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_opengl3/README.md +++ /dev/null @@ -1,40 +0,0 @@ - -# How to Build - -## Windows with Visual Studio's IDE - -Use the provided project file (.vcxproj). Add to solution (imgui_examples.sln) if necessary. - -## Windows with Visual Studio's CLI - -Use build_win32.bat or directly: -``` -set SDL3_DIR=path_to_your_sdl3_folder -cl /Zi /MD /utf-8 /I.. /I..\.. /I%SDL3_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl3.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp /FeDebug/example_sdl3_opengl3.exe /FoDebug/ /link /libpath:%SDL3_DIR%\lib\x86 SDL3.lib opengl32.lib /subsystem:console -# ^^ include paths ^^ source files ^^ output exe ^^ output dir ^^ libraries -# or for 64-bit: -cl /Zi /MD /utf-8 /I.. /I..\.. /I%SDL3_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl3.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp /FeDebug/example_sdl3_opengl3.exe /FoDebug/ /link /libpath:%SDL3_DIR%\lib\x64 SDL3.lib SDL2mainopengl32.lib /subsystem:console -``` - -## Linux and similar Unixes - -Use our Makefile or directly: -``` -c++ `sdl3-config --cflags` -I .. -I ../.. -I ../../backends - main.cpp ../../backends/imgui_impl_sdl3.cpp ../../backends/imgui_impl_opengl3.cpp ../../imgui*.cpp - `sdl3-config --libs` -lGL -ldl -``` - -## macOS - -Use our Makefile or directly: -``` -brew install sdl3 -c++ `sdl3-config --cflags` -I .. -I ../.. -I ../../backends - main.cpp ../../backends/imgui_impl_sdl3.cpp ../../backends/imgui_impl_opengl3.cpp ../../imgui*.cpp - `sdl3-config --libs` -framework OpenGl -framework CoreFoundation -``` - -## Emscripten - -As of 2023-05-30 Emscripten doesn't support SDL3 yet. diff --git a/libs/imgui-1.92.1/examples/example_sdl3_opengl3/build_win32.bat b/libs/imgui-1.92.1/examples/example_sdl3_opengl3/build_win32.bat deleted file mode 100644 index 5bed40a..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_opengl3/build_win32.bat +++ /dev/null @@ -1,14 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. - -@set OUT_EXE=example_sdl3_opengl3 -@set INCLUDES=/I..\.. /I..\..\backends /I%SDL3_DIR%\include -@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl3.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:%SDL3_DIR%\lib\x86 SDL3.lib opengl32.lib shell32.lib - -@set OUT_DIR=Debug -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console - -@set OUT_DIR=Release -@REM mkdir %OUT_DIR% -@REM cl /nologo /Zi /MD /utf-8 /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console diff --git a/libs/imgui-1.92.1/examples/example_sdl3_opengl3/build_win64.bat b/libs/imgui-1.92.1/examples/example_sdl3_opengl3/build_win64.bat deleted file mode 100644 index 87c6bb8..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_opengl3/build_win64.bat +++ /dev/null @@ -1,14 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars64.bat or vcvarsall.bat to setup command-line compiler. - -@set OUT_EXE=example_sdl3_opengl3 -@set INCLUDES=/I..\.. /I..\..\backends /I%SDL3_DIR%\include -@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl3.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:%SDL3_DIR%\lib\x64 SDL3.lib opengl32.lib shell32.lib - -@set OUT_DIR=Debug -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console - -@set OUT_DIR=Release -@REM mkdir %OUT_DIR% -@REM cl /nologo /Zi /MD /utf-8 /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console diff --git a/libs/imgui-1.92.1/examples/example_sdl3_opengl3/example_sdl3_opengl3.vcxproj b/libs/imgui-1.92.1/examples/example_sdl3_opengl3/example_sdl3_opengl3.vcxproj deleted file mode 100644 index 051f87d..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_opengl3/example_sdl3_opengl3.vcxproj +++ /dev/null @@ -1,187 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {84AAA301-84FE-428B-9E3E-817BC8123C0C} - example_sdl3_opengl3 - 8.1 - - - - Application - true - MultiByte - v140 - - - Application - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - - Level4 - Disabled - ..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - %SDL3_DIR%\lib\x86;%(AdditionalLibraryDirectories) - opengl32.lib;SDL3.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - Disabled - ..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - %SDL3_DIR%\lib\x64;%(AdditionalLibraryDirectories) - opengl32.lib;SDL3.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - %SDL3_DIR%\lib\x86;%(AdditionalLibraryDirectories) - opengl32.lib;SDL3.lib;%(AdditionalDependencies) - Console - - - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - %SDL3_DIR%\lib\x64;%(AdditionalLibraryDirectories) - opengl32.lib;SDL3.lib;%(AdditionalDependencies) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_sdl3_opengl3/example_sdl3_opengl3.vcxproj.filters b/libs/imgui-1.92.1/examples/example_sdl3_opengl3/example_sdl3_opengl3.vcxproj.filters deleted file mode 100644 index f365473..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_opengl3/example_sdl3_opengl3.vcxproj.filters +++ /dev/null @@ -1,67 +0,0 @@ - - - - - {20b90ce4-7fcb-4731-b9a0-075f875de82d} - - - {f18ab499-84e1-499f-8eff-9754361e0e52} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - sources - - - imgui - - - imgui - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - sources - - - - - - imgui - - - imgui - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_sdl3_opengl3/main.cpp b/libs/imgui-1.92.1/examples/example_sdl3_opengl3/main.cpp deleted file mode 100644 index cfd6f6a..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_opengl3/main.cpp +++ /dev/null @@ -1,232 +0,0 @@ -// Dear ImGui: standalone example application for SDL3 + OpenGL -// (SDL is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.) - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#include "imgui.h" -#include "imgui_impl_sdl3.h" -#include "imgui_impl_opengl3.h" -#include -#include -#if defined(IMGUI_IMPL_OPENGL_ES2) -#include -#else -#include -#endif - -#ifdef __EMSCRIPTEN__ -#include "../libs/emscripten/emscripten_mainloop_stub.h" -#endif - -// Main code -int main(int, char**) -{ - // Setup SDL - // [If using SDL_MAIN_USE_CALLBACKS: all code below until the main loop starts would likely be your SDL_AppInit() function] - if (!SDL_Init(SDL_INIT_VIDEO | SDL_INIT_GAMEPAD)) - { - printf("Error: SDL_Init(): %s\n", SDL_GetError()); - return -1; - } - - // Decide GL+GLSL versions -#if defined(IMGUI_IMPL_OPENGL_ES2) - // GL ES 2.0 + GLSL 100 (WebGL 1.0) - const char* glsl_version = "#version 100"; - SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, 0); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0); -#elif defined(IMGUI_IMPL_OPENGL_ES3) - // GL ES 3.0 + GLSL 300 es (WebGL 2.0) - const char* glsl_version = "#version 300 es"; - SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, 0); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0); -#elif defined(__APPLE__) - // GL 3.2 Core + GLSL 150 - const char* glsl_version = "#version 150"; - SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG); // Always required on Mac - SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2); -#else - // GL 3.0 + GLSL 130 - const char* glsl_version = "#version 130"; - SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, 0); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0); -#endif - - // Create window with graphics context - SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); - SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24); - SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8); - float main_scale = SDL_GetDisplayContentScale(SDL_GetPrimaryDisplay()); - SDL_WindowFlags window_flags = SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_HIDDEN | SDL_WINDOW_HIGH_PIXEL_DENSITY; - SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL3+OpenGL3 example", (int)(1280 * main_scale), (int)(720 * main_scale), window_flags); - if (window == nullptr) - { - printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError()); - return -1; - } - SDL_GLContext gl_context = SDL_GL_CreateContext(window); - if (gl_context == nullptr) - { - printf("Error: SDL_GL_CreateContext(): %s\n", SDL_GetError()); - return -1; - } - - SDL_GL_MakeCurrent(window, gl_context); - SDL_GL_SetSwapInterval(1); // Enable vsync - SDL_SetWindowPosition(window, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED); - SDL_ShowWindow(window); - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup scaling - ImGuiStyle& style = ImGui::GetStyle(); - style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again) - style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose) - - // Setup Platform/Renderer backends - ImGui_ImplSDL3_InitForOpenGL(window, gl_context); - ImGui_ImplOpenGL3_Init(glsl_version); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - // - Our Emscripten build process allows embedding fonts to be accessible at runtime from the "fonts/" folder. See Makefile.emscripten for details. - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop - bool done = false; -#ifdef __EMSCRIPTEN__ - // For an Emscripten build we are disabling file-system access, so let's not attempt to do a fopen() of the imgui.ini file. - // You may manually call LoadIniSettingsFromMemory() to load settings from your own storage. - io.IniFilename = nullptr; - EMSCRIPTEN_MAINLOOP_BEGIN -#else - while (!done) -#endif - { - // Poll and handle events (inputs, window resize, etc.) - // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. - // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. - // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. - // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. - // [If using SDL_MAIN_USE_CALLBACKS: call ImGui_ImplSDL3_ProcessEvent() from your SDL_AppEvent() function] - SDL_Event event; - while (SDL_PollEvent(&event)) - { - ImGui_ImplSDL3_ProcessEvent(&event); - if (event.type == SDL_EVENT_QUIT) - done = true; - if (event.type == SDL_EVENT_WINDOW_CLOSE_REQUESTED && event.window.windowID == SDL_GetWindowID(window)) - done = true; - } - - // [If using SDL_MAIN_USE_CALLBACKS: all code below would likely be your SDL_AppIterate() function] - if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED) - { - SDL_Delay(10); - continue; - } - - // Start the Dear ImGui frame - ImGui_ImplOpenGL3_NewFrame(); - ImGui_ImplSDL3_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - glViewport(0, 0, (int)io.DisplaySize.x, (int)io.DisplaySize.y); - glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w); - glClear(GL_COLOR_BUFFER_BIT); - ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData()); - SDL_GL_SwapWindow(window); - } -#ifdef __EMSCRIPTEN__ - EMSCRIPTEN_MAINLOOP_END; -#endif - - // Cleanup - // [If using SDL_MAIN_USE_CALLBACKS: all code below would likely be your SDL_AppQuit() function] - ImGui_ImplOpenGL3_Shutdown(); - ImGui_ImplSDL3_Shutdown(); - ImGui::DestroyContext(); - - SDL_GL_DestroyContext(gl_context); - SDL_DestroyWindow(window); - SDL_Quit(); - - return 0; -} diff --git a/libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/Makefile b/libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/Makefile deleted file mode 100644 index c3159d8..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/Makefile +++ /dev/null @@ -1,73 +0,0 @@ -# -# Cross Platform Makefile -# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X -# -# You will need SDL3 (http://www.libsdl.org) which is still unreleased/unpackaged. - -#CXX = g++ -#CXX = clang++ - -EXE = example_sdl3_sdlgpu3 -IMGUI_DIR = ../.. -SOURCES = main.cpp -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl3.cpp $(IMGUI_DIR)/backends/imgui_impl_sdlgpu3.cpp -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) -UNAME_S := $(shell uname -s) - -CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -CXXFLAGS += -g -Wall -Wformat -LIBS = - - -##--------------------------------------------------------------------- -## BUILD FLAGS PER PLATFORM -##--------------------------------------------------------------------- - -ifeq ($(UNAME_S), Linux) #LINUX - ECHO_MESSAGE = "Linux" - LIBS += -ldl `pkg-config sdl3 --libs` - - CXXFLAGS += `pkg-config sdl3 --cflags` - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(UNAME_S), Darwin) #APPLE - ECHO_MESSAGE = "Mac OS X" - LIBS += -framework Cocoa -framework IOKit -framework CoreVideo `pkg-config --libs sdl3` - LIBS += -L/usr/local/lib -L/opt/local/lib - - CXXFLAGS += `pkg-config sdl3 --cflags` - CXXFLAGS += -I/usr/local/include -I/opt/local/include - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(OS), Windows_NT) - ECHO_MESSAGE = "MinGW" - LIBS += -lgdi32 -limm32 `pkg-config --static --libs sdl3` - - CXXFLAGS += `pkg-config --cflags sdl3` - CFLAGS = $(CXXFLAGS) -endif - -##--------------------------------------------------------------------- -## BUILD RULES -##--------------------------------------------------------------------- - -%.o:%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -all: $(EXE) - @echo Build complete for $(ECHO_MESSAGE) - -$(EXE): $(OBJS) - $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) - -clean: - rm -f $(EXE) $(OBJS) diff --git a/libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/build_win64.bat b/libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/build_win64.bat deleted file mode 100644 index ad7a2d6..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/build_win64.bat +++ /dev/null @@ -1,14 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars64.bat or vcvarsall.bat to setup command-line compiler. - -@set OUT_EXE=example_sdl3_sdlgpu3 -@set INCLUDES=/I..\.. /I..\..\backends /I%SDL3_DIR%\include -@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl3.cpp ..\..\backends\imgui_impl_sdlgpu3.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:%SDL3_DIR%\lib\x64 SDL3.lib shell32.lib - -@set OUT_DIR=Debug -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console - -@set OUT_DIR=Release -@REM mkdir %OUT_DIR% -@REM cl /nologo /Zi /MD /utf-8 /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console diff --git a/libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/example_sdl3_sdlgpu3.vcxproj b/libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/example_sdl3_sdlgpu3.vcxproj deleted file mode 100644 index 3d034f5..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/example_sdl3_sdlgpu3.vcxproj +++ /dev/null @@ -1,189 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {c22cb6f8-39a5-4dda-90ed-4aca4e81e1e5} - example_sdl3_sdlgpu3 - 8.1 - - - - Application - true - MultiByte - v140 - - - Application - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - - Level4 - Disabled - ..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories) - _MBCS;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - %SDL3_DIR%\lib\x86;%(AdditionalLibraryDirectories) - SDL3.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - Disabled - ..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories) - _MBCS;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - %SDL3_DIR%\lib\x64;%(AdditionalLibraryDirectories) - SDL3.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories) - false - _MBCS;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - true - true - %SDL3_DIR%\lib\x86;%(AdditionalLibraryDirectories) - SDL3.lib;%(AdditionalDependencies) - Console - - - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories) - false - _MBCS;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - true - true - %SDL3_DIR%\lib\x64;%(AdditionalLibraryDirectories) - SDL3.lib;%(AdditionalDependencies) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/example_sdl3_sdlgpu3.vcxproj.filters b/libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/example_sdl3_sdlgpu3.vcxproj.filters deleted file mode 100644 index 4710b55..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/example_sdl3_sdlgpu3.vcxproj.filters +++ /dev/null @@ -1,60 +0,0 @@ - - - - - sources - - - sources - - - sources - - - imgui - - - imgui - - - imgui - - - imgui - - - imgui - - - - - sources - - - sources - - - sources - - - imgui - - - imgui - - - imgui - - - - - - - - {9044ef92-2afa-42f2-92df-ac473c7c32b3} - - - {ef84458b-039a-4902-8455-4e33df5a8578} - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/main.cpp b/libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/main.cpp deleted file mode 100644 index 581b11c..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_sdlgpu3/main.cpp +++ /dev/null @@ -1,227 +0,0 @@ -// Dear ImGui: standalone example application for SDL3 + SDL_GPU - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// Important note to the reader who wish to integrate imgui_impl_sdlgpu3.cpp/.h in their own engine/app. -// - Unlike other backends, the user must call the function ImGui_ImplSDLGPU_PrepareDrawData() BEFORE issuing a SDL_GPURenderPass containing ImGui_ImplSDLGPU_RenderDrawData. -// Calling the function is MANDATORY, otherwise the ImGui will not upload neither the vertex nor the index buffer for the GPU. See imgui_impl_sdlgpu3.cpp for more info. - -#include "imgui.h" -#include "imgui_impl_sdl3.h" -#include "imgui_impl_sdlgpu3.h" -#include // printf, fprintf -#include // abort -#include - -// This example doesn't compile with Emscripten yet! Awaiting SDL3 support. -#ifdef __EMSCRIPTEN__ -#include "../libs/emscripten/emscripten_mainloop_stub.h" -#endif - -// Main code -int main(int, char**) -{ - // Setup SDL - // [If using SDL_MAIN_USE_CALLBACKS: all code below until the main loop starts would likely be your SDL_AppInit() function] - if (!SDL_Init(SDL_INIT_VIDEO | SDL_INIT_GAMEPAD)) - { - printf("Error: SDL_Init(): %s\n", SDL_GetError()); - return -1; - } - - // Create SDL window graphics context - float main_scale = SDL_GetDisplayContentScale(SDL_GetPrimaryDisplay()); - SDL_WindowFlags window_flags = SDL_WINDOW_RESIZABLE | SDL_WINDOW_HIDDEN | SDL_WINDOW_HIGH_PIXEL_DENSITY; - SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL3+SDL_GPU example", (int)(1280 * main_scale), (int)(720 * main_scale), window_flags); - if (window == nullptr) - { - printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError()); - return -1; - } - SDL_SetWindowPosition(window, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED); - SDL_ShowWindow(window); - - // Create GPU Device - SDL_GPUDevice* gpu_device = SDL_CreateGPUDevice(SDL_GPU_SHADERFORMAT_SPIRV | SDL_GPU_SHADERFORMAT_DXIL | SDL_GPU_SHADERFORMAT_METALLIB,true,nullptr); - if (gpu_device == nullptr) - { - printf("Error: SDL_CreateGPUDevice(): %s\n", SDL_GetError()); - return -1; - } - - // Claim window for GPU Device - if (!SDL_ClaimWindowForGPUDevice(gpu_device, window)) - { - printf("Error: SDL_ClaimWindowForGPUDevice(): %s\n", SDL_GetError()); - return -1; - } - SDL_SetGPUSwapchainParameters(gpu_device, window, SDL_GPU_SWAPCHAINCOMPOSITION_SDR, SDL_GPU_PRESENTMODE_MAILBOX); - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup scaling - ImGuiStyle& style = ImGui::GetStyle(); - style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again) - style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose) - - // Setup Platform/Renderer backends - ImGui_ImplSDL3_InitForSDLGPU(window); - ImGui_ImplSDLGPU3_InitInfo init_info = {}; - init_info.Device = gpu_device; - init_info.ColorTargetFormat = SDL_GetGPUSwapchainTextureFormat(gpu_device, window); - init_info.MSAASamples = SDL_GPU_SAMPLECOUNT_1; - ImGui_ImplSDLGPU3_Init(&init_info); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop - bool done = false; - while (!done) - { - // Poll and handle events (inputs, window resize, etc.) - // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. - // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. - // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. - // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. - // [If using SDL_MAIN_USE_CALLBACKS: call ImGui_ImplSDL3_ProcessEvent() from your SDL_AppEvent() function] - SDL_Event event; - while (SDL_PollEvent(&event)) - { - ImGui_ImplSDL3_ProcessEvent(&event); - if (event.type == SDL_EVENT_QUIT) - done = true; - if (event.type == SDL_EVENT_WINDOW_CLOSE_REQUESTED && event.window.windowID == SDL_GetWindowID(window)) - done = true; - } - - // [If using SDL_MAIN_USE_CALLBACKS: all code below would likely be your SDL_AppIterate() function] - if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED) - { - SDL_Delay(10); - continue; - } - - // Start the Dear ImGui frame - ImGui_ImplSDLGPU3_NewFrame(); - ImGui_ImplSDL3_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit4("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - ImDrawData* draw_data = ImGui::GetDrawData(); - const bool is_minimized = (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f); - - SDL_GPUCommandBuffer* command_buffer = SDL_AcquireGPUCommandBuffer(gpu_device); // Acquire a GPU command buffer - - SDL_GPUTexture* swapchain_texture; - SDL_AcquireGPUSwapchainTexture(command_buffer, window, &swapchain_texture, nullptr, nullptr); // Acquire a swapchain texture - - if (swapchain_texture != nullptr && !is_minimized) - { - // This is mandatory: call ImGui_ImplSDLGPU3_PrepareDrawData() to upload the vertex/index buffer! - ImGui_ImplSDLGPU3_PrepareDrawData(draw_data, command_buffer); - - // Setup and start a render pass - SDL_GPUColorTargetInfo target_info = {}; - target_info.texture = swapchain_texture; - target_info.clear_color = SDL_FColor { clear_color.x, clear_color.y, clear_color.z, clear_color.w }; - target_info.load_op = SDL_GPU_LOADOP_CLEAR; - target_info.store_op = SDL_GPU_STOREOP_STORE; - target_info.mip_level = 0; - target_info.layer_or_depth_plane = 0; - target_info.cycle = false; - SDL_GPURenderPass* render_pass = SDL_BeginGPURenderPass(command_buffer, &target_info, 1, nullptr); - - // Render ImGui - ImGui_ImplSDLGPU3_RenderDrawData(draw_data, command_buffer, render_pass); - - SDL_EndGPURenderPass(render_pass); - } - - // Submit the command buffer - SDL_SubmitGPUCommandBuffer(command_buffer); - } - - // Cleanup - // [If using SDL_MAIN_USE_CALLBACKS: all code below would likely be your SDL_AppQuit() function] - SDL_WaitForGPUIdle(gpu_device); - ImGui_ImplSDL3_Shutdown(); - ImGui_ImplSDLGPU3_Shutdown(); - ImGui::DestroyContext(); - - SDL_ReleaseWindowFromGPUDevice(gpu_device, window); - SDL_DestroyGPUDevice(gpu_device); - SDL_DestroyWindow(window); - SDL_Quit(); - - return 0; -} diff --git a/libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/Makefile b/libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/Makefile deleted file mode 100644 index c278f78..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/Makefile +++ /dev/null @@ -1,74 +0,0 @@ -# -# Cross Platform Makefile -# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X -# -# You will need SDL3 (http://www.libsdl.org) which is still unreleased/unpackaged. - -#CXX = g++ -#CXX = clang++ - -EXE = example_sdl3_sdlrenderer3 -IMGUI_DIR = ../.. -SOURCES = main.cpp -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl3.cpp $(IMGUI_DIR)/backends/imgui_impl_sdlrenderer3.cpp -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) -UNAME_S := $(shell uname -s) -LINUX_GL_LIBS = -lGL - -CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -CXXFLAGS += -g -Wall -Wformat -LIBS = - -##--------------------------------------------------------------------- -## BUILD FLAGS PER PLATFORM -##--------------------------------------------------------------------- - -ifeq ($(UNAME_S), Linux) #LINUX - ECHO_MESSAGE = "Linux" - LIBS += -ldl `pkg-config sdl3 --libs` - - CXXFLAGS += `pkg-config sdl3 --cflags` - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(UNAME_S), Darwin) #APPLE - ECHO_MESSAGE = "Mac OS X" - LIBS += -framework Cocoa -framework IOKit -framework CoreVideo - LIBS += `pkg-config --libs sdl3` - LIBS += -L/usr/local/lib -L/opt/local/lib - - CXXFLAGS += `pkg-config --cflags sdl3` - CXXFLAGS += -I/usr/local/include -I/opt/local/include - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(OS), Windows_NT) - ECHO_MESSAGE = "MinGW" - LIBS += -lgdi32 -limm32 `pkg-config --static --libs sdl3` - - CXXFLAGS += `pkg-config --cflags sdl3` - CFLAGS = $(CXXFLAGS) -endif - -##--------------------------------------------------------------------- -## BUILD RULES -##--------------------------------------------------------------------- - -%.o:%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -all: $(EXE) - @echo Build complete for $(ECHO_MESSAGE) - -$(EXE): $(OBJS) - $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) - -clean: - rm -f $(EXE) $(OBJS) diff --git a/libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/build_win32.bat b/libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/build_win32.bat deleted file mode 100644 index 7bc131a..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/build_win32.bat +++ /dev/null @@ -1,8 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. -@set OUT_DIR=Debug -@set OUT_EXE=example_sdl3_sdlrenderer3 -@set INCLUDES=/I..\.. /I..\..\backends /I%SDL3_DIR%\include -@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl3.cpp ..\..\backends\imgui_impl_sdlrenderer3.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:%SDL3_DIR%\lib\x86 SDL3.lib -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console diff --git a/libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/example_sdl3_sdlrenderer3.vcxproj b/libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/example_sdl3_sdlrenderer3.vcxproj deleted file mode 100644 index 8b71324..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/example_sdl3_sdlrenderer3.vcxproj +++ /dev/null @@ -1,186 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {C0290D21-3AD2-4A35-ABBC-A2F5F48326DA} - example_sdl3_opengl3 - 8.1 - - - - Application - true - MultiByte - v140 - - - Application - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - - Level4 - Disabled - ..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - %SDL3_DIR%\lib\x86;%(AdditionalLibraryDirectories) - opengl32.lib;SDL3.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - Disabled - ..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories) - /utf-8 %(AdditionalOptions) - - - true - %SDL3_DIR%\lib\x64;%(AdditionalLibraryDirectories) - opengl32.lib;SDL3.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - %SDL3_DIR%\lib\x86;%(AdditionalLibraryDirectories) - opengl32.lib;SDL3.lib;%(AdditionalDependencies) - Console - - - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - %SDL3_DIR%\lib\x64;%(AdditionalLibraryDirectories) - opengl32.lib;SDL3.lib;%(AdditionalDependencies) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/example_sdl3_sdlrenderer3.vcxproj.filters b/libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/example_sdl3_sdlrenderer3.vcxproj.filters deleted file mode 100644 index c41210d..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/example_sdl3_sdlrenderer3.vcxproj.filters +++ /dev/null @@ -1,64 +0,0 @@ - - - - - {20b90ce4-7fcb-4731-b9a0-075f875de82d} - - - {f18ab499-84e1-499f-8eff-9754361e0e52} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - imgui - - - imgui - - - sources - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - - imgui - - - imgui - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/main.cpp b/libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/main.cpp deleted file mode 100644 index 6e39429..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/main.cpp +++ /dev/null @@ -1,194 +0,0 @@ -// Dear ImGui: standalone example application for SDL3 + SDL_Renderer -// (SDL is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.) - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// Important to understand: SDL_Renderer is an _optional_ component of SDL3. -// For a multi-platform app consider using e.g. SDL+DirectX on Windows and SDL+OpenGL on Linux/OSX. - -#include "imgui.h" -#include "imgui_impl_sdl3.h" -#include "imgui_impl_sdlrenderer3.h" -#include -#include - -#ifdef __EMSCRIPTEN__ -#include "../libs/emscripten/emscripten_mainloop_stub.h" -#endif - -// Main code -int main(int, char**) -{ - // Setup SDL - // [If using SDL_MAIN_USE_CALLBACKS: all code below until the main loop starts would likely be your SDL_AppInit() function] - if (!SDL_Init(SDL_INIT_VIDEO | SDL_INIT_GAMEPAD)) - { - printf("Error: SDL_Init(): %s\n", SDL_GetError()); - return -1; - } - - // Create window with SDL_Renderer graphics context - float main_scale = SDL_GetDisplayContentScale(SDL_GetPrimaryDisplay()); - SDL_WindowFlags window_flags = SDL_WINDOW_RESIZABLE | SDL_WINDOW_HIDDEN | SDL_WINDOW_HIGH_PIXEL_DENSITY; - SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL3+SDL_Renderer example", (int)(1280 * main_scale), (int)(720 * main_scale), window_flags); - if (window == nullptr) - { - printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError()); - return -1; - } - SDL_Renderer* renderer = SDL_CreateRenderer(window, nullptr); - SDL_SetRenderVSync(renderer, 1); - if (renderer == nullptr) - { - SDL_Log("Error: SDL_CreateRenderer(): %s\n", SDL_GetError()); - return -1; - } - SDL_SetWindowPosition(window, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED); - SDL_ShowWindow(window); - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup scaling - ImGuiStyle& style = ImGui::GetStyle(); - style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again) - style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose) - - // Setup Platform/Renderer backends - ImGui_ImplSDL3_InitForSDLRenderer(window, renderer); - ImGui_ImplSDLRenderer3_Init(renderer); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - // - Our Emscripten build process allows embedding fonts to be accessible at runtime from the "fonts/" folder. See Makefile.emscripten for details. - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop - bool done = false; -#ifdef __EMSCRIPTEN__ - // For an Emscripten build we are disabling file-system access, so let's not attempt to do a fopen() of the imgui.ini file. - // You may manually call LoadIniSettingsFromMemory() to load settings from your own storage. - io.IniFilename = nullptr; - EMSCRIPTEN_MAINLOOP_BEGIN -#else - while (!done) -#endif - { - // Poll and handle events (inputs, window resize, etc.) - // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. - // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. - // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. - // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. - // [If using SDL_MAIN_USE_CALLBACKS: call ImGui_ImplSDL3_ProcessEvent() from your SDL_AppEvent() function] - SDL_Event event; - while (SDL_PollEvent(&event)) - { - ImGui_ImplSDL3_ProcessEvent(&event); - if (event.type == SDL_EVENT_QUIT) - done = true; - if (event.type == SDL_EVENT_WINDOW_CLOSE_REQUESTED && event.window.windowID == SDL_GetWindowID(window)) - done = true; - } - - // [If using SDL_MAIN_USE_CALLBACKS: all code below would likely be your SDL_AppIterate() function] - if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED) - { - SDL_Delay(10); - continue; - } - - // Start the Dear ImGui frame - ImGui_ImplSDLRenderer3_NewFrame(); - ImGui_ImplSDL3_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - SDL_SetRenderScale(renderer, io.DisplayFramebufferScale.x, io.DisplayFramebufferScale.y); - SDL_SetRenderDrawColorFloat(renderer, clear_color.x, clear_color.y, clear_color.z, clear_color.w); - SDL_RenderClear(renderer); - ImGui_ImplSDLRenderer3_RenderDrawData(ImGui::GetDrawData(), renderer); - SDL_RenderPresent(renderer); - } -#ifdef __EMSCRIPTEN__ - EMSCRIPTEN_MAINLOOP_END; -#endif - - // Cleanup - // [If using SDL_MAIN_USE_CALLBACKS: all code below would likely be your SDL_AppQuit() function] - ImGui_ImplSDLRenderer3_Shutdown(); - ImGui_ImplSDL3_Shutdown(); - ImGui::DestroyContext(); - - SDL_DestroyRenderer(renderer); - SDL_DestroyWindow(window); - SDL_Quit(); - - return 0; -} diff --git a/libs/imgui-1.92.1/examples/example_sdl3_vulkan/Makefile b/libs/imgui-1.92.1/examples/example_sdl3_vulkan/Makefile deleted file mode 100644 index e1956ff..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_vulkan/Makefile +++ /dev/null @@ -1,77 +0,0 @@ -# -# Cross Platform Makefile -# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X -# -# You will need SDL3 (http://www.libsdl.org) which is still unreleased/unpackaged. -# Mac OS X: -# brew install sdl3 - -#CXX = g++ -#CXX = clang++ - -EXE = example_sdl3_vulkan -IMGUI_DIR = ../.. -SOURCES = main.cpp -SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp -SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl3.cpp $(IMGUI_DIR)/backends/imgui_impl_vulkan.cpp -OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) -UNAME_S := $(shell uname -s) - -CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -CXXFLAGS += -g -Wall -Wformat -LIBS = - - -##--------------------------------------------------------------------- -## BUILD FLAGS PER PLATFORM -##--------------------------------------------------------------------- - -ifeq ($(UNAME_S), Linux) #LINUX - ECHO_MESSAGE = "Linux" - LIBS += -ldl - LIBS += `pkg-config --libs sdl3 vulkan` - - CXXFLAGS += `pkg-config --cflags sdl3 vulkan` - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(UNAME_S), Darwin) #APPLE - ECHO_MESSAGE = "Mac OS X" - LIBS += -framework Cocoa -framework IOKit -framework CoreVideo - LIBS += `pkg-config --libs sdl3 vulkan` - LIBS += -L/usr/local/lib -L/opt/local/lib - - CXXFLAGS += `pkg-config --cflags sdl3 vulkan` - CXXFLAGS += -I/usr/local/include -I/opt/local/include - CFLAGS = $(CXXFLAGS) -endif - -ifeq ($(OS), Windows_NT) - ECHO_MESSAGE = "MinGW" - LIBS += -lgdi32 -limm32 `pkg-config --static --libs sdl3 vulkan` - - CXXFLAGS += `pkg-config --cflags sdl3 vulkan` - CFLAGS = $(CXXFLAGS) -endif - -##--------------------------------------------------------------------- -## BUILD RULES -##--------------------------------------------------------------------- - -%.o:%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -%.o:$(IMGUI_DIR)/backends/%.cpp - $(CXX) $(CXXFLAGS) -c -o $@ $< - -all: $(EXE) - @echo Build complete for $(ECHO_MESSAGE) - -$(EXE): $(OBJS) - $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) - -clean: - rm -f $(EXE) $(OBJS) diff --git a/libs/imgui-1.92.1/examples/example_sdl3_vulkan/build_win32.bat b/libs/imgui-1.92.1/examples/example_sdl3_vulkan/build_win32.bat deleted file mode 100644 index 3e26d30..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_vulkan/build_win32.bat +++ /dev/null @@ -1,14 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. - -@set OUT_EXE=example_sdl3_vulkan -@set INCLUDES=/I..\.. /I..\..\backends /I%SDL3_DIR%\include /I %VULKAN_SDK%\include -@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl3.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:%SDL3_DIR%\lib\x86 /libpath:%VULKAN_SDK%\lib32 SDL3.lib shell32.lib vulkan-1.lib - -@set OUT_DIR=Debug -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console - -@set OUT_DIR=Release -@REM mkdir %OUT_DIR% -@REM cl /nologo /Zi /MD /utf-8 /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console diff --git a/libs/imgui-1.92.1/examples/example_sdl3_vulkan/build_win64.bat b/libs/imgui-1.92.1/examples/example_sdl3_vulkan/build_win64.bat deleted file mode 100644 index 5d038d1..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_vulkan/build_win64.bat +++ /dev/null @@ -1,14 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars64.bat or vcvarsall.bat to setup command-line compiler. - -@set OUT_EXE=example_sdl3_vulkan -@set INCLUDES=/I..\.. /I..\..\backends /I%SDL3_DIR%\include /I %VULKAN_SDK%\include -@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl3.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:%SDL3_DIR%\lib\x64 /libpath:%VULKAN_SDK%\lib SDL3.lib shell32.lib vulkan-1.lib - -@set OUT_DIR=Debug -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console - -@set OUT_DIR=Release -@REM mkdir %OUT_DIR% -@REM cl /nologo /Zi /MD /utf-8 /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console diff --git a/libs/imgui-1.92.1/examples/example_sdl3_vulkan/example_sdl3_vulkan.vcxproj b/libs/imgui-1.92.1/examples/example_sdl3_vulkan/example_sdl3_vulkan.vcxproj deleted file mode 100644 index d48e4af..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_vulkan/example_sdl3_vulkan.vcxproj +++ /dev/null @@ -1,190 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {663A7E89-1E42-4222-921C-177F5B5910DF} - example_sdl3_vulkan - 8.1 - - - - Application - true - MultiByte - v140 - - - Application - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - Application - false - true - MultiByte - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - $(IncludePath) - - - - Level4 - Disabled - ..\..;..\..\backends;%VULKAN_SDK%\include;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories) - _MBCS;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - %VULKAN_SDK%\lib32;%SDL3_DIR%\lib\x86;%(AdditionalLibraryDirectories) - vulkan-1.lib;SDL3.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - Disabled - ..\..;..\..\backends;%VULKAN_SDK%\include;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories) - _MBCS;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - %VULKAN_SDK%\lib;%SDL3_DIR%\lib\x64;%(AdditionalLibraryDirectories) - vulkan-1.lib;SDL3.lib;%(AdditionalDependencies) - Console - msvcrt.lib - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%VULKAN_SDK%\include;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories) - false - _MBCS;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - true - true - %VULKAN_SDK%\lib32;%SDL3_DIR%\lib\x86;%(AdditionalLibraryDirectories) - vulkan-1.lib;SDL3.lib;%(AdditionalDependencies) - Console - - - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%VULKAN_SDK%\include;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories) - false - _MBCS;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - true - true - %VULKAN_SDK%\lib;%SDL3_DIR%\lib\x64;%(AdditionalLibraryDirectories) - vulkan-1.lib;SDL3.lib;%(AdditionalDependencies) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_sdl3_vulkan/example_sdl3_vulkan.vcxproj.filters b/libs/imgui-1.92.1/examples/example_sdl3_vulkan/example_sdl3_vulkan.vcxproj.filters deleted file mode 100644 index 46ebb58..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_vulkan/example_sdl3_vulkan.vcxproj.filters +++ /dev/null @@ -1,64 +0,0 @@ - - - - - {20b90ce4-7fcb-4731-b9a0-075f875de82d} - - - {f18ab499-84e1-499f-8eff-9754361e0e52} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - sources - - - imgui - - - imgui - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - - imgui - - - imgui - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_sdl3_vulkan/main.cpp b/libs/imgui-1.92.1/examples/example_sdl3_vulkan/main.cpp deleted file mode 100644 index df7f5ef..0000000 --- a/libs/imgui-1.92.1/examples/example_sdl3_vulkan/main.cpp +++ /dev/null @@ -1,558 +0,0 @@ -// Dear ImGui: standalone example application for SDL3 + Vulkan - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// Important note to the reader who wish to integrate imgui_impl_vulkan.cpp/.h in their own engine/app. -// - Common ImGui_ImplVulkan_XXX functions and structures are used to interface with imgui_impl_vulkan.cpp/.h. -// You will use those if you want to use this rendering backend in your engine/app. -// - Helper ImGui_ImplVulkanH_XXX functions and structures are only used by this example (main.cpp) and by -// the backend itself (imgui_impl_vulkan.cpp), but should PROBABLY NOT be used by your own engine/app code. -// Read comments in imgui_impl_vulkan.h. - -#include "imgui.h" -#include "imgui_impl_sdl3.h" -#include "imgui_impl_vulkan.h" -#include // printf, fprintf -#include // abort -#include -#include - -// This example doesn't compile with Emscripten yet! Awaiting SDL3 support. -#ifdef __EMSCRIPTEN__ -#include "../libs/emscripten/emscripten_mainloop_stub.h" -#endif - -// Volk headers -#ifdef IMGUI_IMPL_VULKAN_USE_VOLK -#define VOLK_IMPLEMENTATION -#include -#endif - -//#define APP_USE_UNLIMITED_FRAME_RATE -#ifdef _DEBUG -#define APP_USE_VULKAN_DEBUG_REPORT -static VkDebugReportCallbackEXT g_DebugReport = VK_NULL_HANDLE; -#endif - -// Data -static VkAllocationCallbacks* g_Allocator = nullptr; -static VkInstance g_Instance = VK_NULL_HANDLE; -static VkPhysicalDevice g_PhysicalDevice = VK_NULL_HANDLE; -static VkDevice g_Device = VK_NULL_HANDLE; -static uint32_t g_QueueFamily = (uint32_t)-1; -static VkQueue g_Queue = VK_NULL_HANDLE; -static VkPipelineCache g_PipelineCache = VK_NULL_HANDLE; -static VkDescriptorPool g_DescriptorPool = VK_NULL_HANDLE; - -static ImGui_ImplVulkanH_Window g_MainWindowData; -static uint32_t g_MinImageCount = 2; -static bool g_SwapChainRebuild = false; - -static void check_vk_result(VkResult err) -{ - if (err == VK_SUCCESS) - return; - fprintf(stderr, "[vulkan] Error: VkResult = %d\n", err); - if (err < 0) - abort(); -} - -#ifdef APP_USE_VULKAN_DEBUG_REPORT -static VKAPI_ATTR VkBool32 VKAPI_CALL debug_report(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, void* pUserData) -{ - (void)flags; (void)object; (void)location; (void)messageCode; (void)pUserData; (void)pLayerPrefix; // Unused arguments - fprintf(stderr, "[vulkan] Debug report from ObjectType: %i\nMessage: %s\n\n", objectType, pMessage); - return VK_FALSE; -} -#endif // APP_USE_VULKAN_DEBUG_REPORT - -static bool IsExtensionAvailable(const ImVector& properties, const char* extension) -{ - for (const VkExtensionProperties& p : properties) - if (strcmp(p.extensionName, extension) == 0) - return true; - return false; -} - -static void SetupVulkan(ImVector instance_extensions) -{ - VkResult err; -#ifdef IMGUI_IMPL_VULKAN_USE_VOLK - volkInitialize(); -#endif - - // Create Vulkan Instance - { - VkInstanceCreateInfo create_info = {}; - create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO; - - // Enumerate available extensions - uint32_t properties_count; - ImVector properties; - vkEnumerateInstanceExtensionProperties(nullptr, &properties_count, nullptr); - properties.resize(properties_count); - err = vkEnumerateInstanceExtensionProperties(nullptr, &properties_count, properties.Data); - check_vk_result(err); - - // Enable required extensions - if (IsExtensionAvailable(properties, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)) - instance_extensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); -#ifdef VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME - if (IsExtensionAvailable(properties, VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME)) - { - instance_extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME); - create_info.flags |= VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR; - } -#endif - - // Enabling validation layers -#ifdef APP_USE_VULKAN_DEBUG_REPORT - const char* layers[] = { "VK_LAYER_KHRONOS_validation" }; - create_info.enabledLayerCount = 1; - create_info.ppEnabledLayerNames = layers; - instance_extensions.push_back("VK_EXT_debug_report"); -#endif - - // Create Vulkan Instance - create_info.enabledExtensionCount = (uint32_t)instance_extensions.Size; - create_info.ppEnabledExtensionNames = instance_extensions.Data; - err = vkCreateInstance(&create_info, g_Allocator, &g_Instance); - check_vk_result(err); -#ifdef IMGUI_IMPL_VULKAN_USE_VOLK - volkLoadInstance(g_Instance); -#endif - - // Setup the debug report callback -#ifdef APP_USE_VULKAN_DEBUG_REPORT - auto f_vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkCreateDebugReportCallbackEXT"); - IM_ASSERT(f_vkCreateDebugReportCallbackEXT != nullptr); - VkDebugReportCallbackCreateInfoEXT debug_report_ci = {}; - debug_report_ci.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT; - debug_report_ci.flags = VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_WARNING_BIT_EXT | VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT; - debug_report_ci.pfnCallback = debug_report; - debug_report_ci.pUserData = nullptr; - err = f_vkCreateDebugReportCallbackEXT(g_Instance, &debug_report_ci, g_Allocator, &g_DebugReport); - check_vk_result(err); -#endif - } - - // Select Physical Device (GPU) - g_PhysicalDevice = ImGui_ImplVulkanH_SelectPhysicalDevice(g_Instance); - IM_ASSERT(g_PhysicalDevice != VK_NULL_HANDLE); - - // Select graphics queue family - g_QueueFamily = ImGui_ImplVulkanH_SelectQueueFamilyIndex(g_PhysicalDevice); - IM_ASSERT(g_QueueFamily != (uint32_t)-1); - - // Create Logical Device (with 1 queue) - { - ImVector device_extensions; - device_extensions.push_back("VK_KHR_swapchain"); - - // Enumerate physical device extension - uint32_t properties_count; - ImVector properties; - vkEnumerateDeviceExtensionProperties(g_PhysicalDevice, nullptr, &properties_count, nullptr); - properties.resize(properties_count); - vkEnumerateDeviceExtensionProperties(g_PhysicalDevice, nullptr, &properties_count, properties.Data); -#ifdef VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME - if (IsExtensionAvailable(properties, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME)) - device_extensions.push_back(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME); -#endif - - const float queue_priority[] = { 1.0f }; - VkDeviceQueueCreateInfo queue_info[1] = {}; - queue_info[0].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO; - queue_info[0].queueFamilyIndex = g_QueueFamily; - queue_info[0].queueCount = 1; - queue_info[0].pQueuePriorities = queue_priority; - VkDeviceCreateInfo create_info = {}; - create_info.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO; - create_info.queueCreateInfoCount = sizeof(queue_info) / sizeof(queue_info[0]); - create_info.pQueueCreateInfos = queue_info; - create_info.enabledExtensionCount = (uint32_t)device_extensions.Size; - create_info.ppEnabledExtensionNames = device_extensions.Data; - err = vkCreateDevice(g_PhysicalDevice, &create_info, g_Allocator, &g_Device); - check_vk_result(err); - vkGetDeviceQueue(g_Device, g_QueueFamily, 0, &g_Queue); - } - - // Create Descriptor Pool - // If you wish to load e.g. additional textures you may need to alter pools sizes and maxSets. - { - VkDescriptorPoolSize pool_sizes[] = - { - { VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE }, - }; - VkDescriptorPoolCreateInfo pool_info = {}; - pool_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO; - pool_info.flags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT; - pool_info.maxSets = 0; - for (VkDescriptorPoolSize& pool_size : pool_sizes) - pool_info.maxSets += pool_size.descriptorCount; - pool_info.poolSizeCount = (uint32_t)IM_ARRAYSIZE(pool_sizes); - pool_info.pPoolSizes = pool_sizes; - err = vkCreateDescriptorPool(g_Device, &pool_info, g_Allocator, &g_DescriptorPool); - check_vk_result(err); - } -} - -// All the ImGui_ImplVulkanH_XXX structures/functions are optional helpers used by the demo. -// Your real engine/app may not use them. -static void SetupVulkanWindow(ImGui_ImplVulkanH_Window* wd, VkSurfaceKHR surface, int width, int height) -{ - wd->Surface = surface; - - // Check for WSI support - VkBool32 res; - vkGetPhysicalDeviceSurfaceSupportKHR(g_PhysicalDevice, g_QueueFamily, wd->Surface, &res); - if (res != VK_TRUE) - { - fprintf(stderr, "Error no WSI support on physical device 0\n"); - exit(-1); - } - - // Select Surface Format - const VkFormat requestSurfaceImageFormat[] = { VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_R8G8B8_UNORM }; - const VkColorSpaceKHR requestSurfaceColorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR; - wd->SurfaceFormat = ImGui_ImplVulkanH_SelectSurfaceFormat(g_PhysicalDevice, wd->Surface, requestSurfaceImageFormat, (size_t)IM_ARRAYSIZE(requestSurfaceImageFormat), requestSurfaceColorSpace); - - // Select Present Mode -#ifdef APP_USE_UNLIMITED_FRAME_RATE - VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_FIFO_KHR }; -#else - VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_FIFO_KHR }; -#endif - wd->PresentMode = ImGui_ImplVulkanH_SelectPresentMode(g_PhysicalDevice, wd->Surface, &present_modes[0], IM_ARRAYSIZE(present_modes)); - //printf("[vulkan] Selected PresentMode = %d\n", wd->PresentMode); - - // Create SwapChain, RenderPass, Framebuffer, etc. - IM_ASSERT(g_MinImageCount >= 2); - ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, wd, g_QueueFamily, g_Allocator, width, height, g_MinImageCount); -} - -static void CleanupVulkan() -{ - vkDestroyDescriptorPool(g_Device, g_DescriptorPool, g_Allocator); - -#ifdef APP_USE_VULKAN_DEBUG_REPORT - // Remove the debug report callback - auto f_vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkDestroyDebugReportCallbackEXT"); - f_vkDestroyDebugReportCallbackEXT(g_Instance, g_DebugReport, g_Allocator); -#endif // APP_USE_VULKAN_DEBUG_REPORT - - vkDestroyDevice(g_Device, g_Allocator); - vkDestroyInstance(g_Instance, g_Allocator); -} - -static void CleanupVulkanWindow() -{ - ImGui_ImplVulkanH_DestroyWindow(g_Instance, g_Device, &g_MainWindowData, g_Allocator); -} - -static void FrameRender(ImGui_ImplVulkanH_Window* wd, ImDrawData* draw_data) -{ - VkSemaphore image_acquired_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore; - VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore; - VkResult err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex); - if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR) - g_SwapChainRebuild = true; - if (err == VK_ERROR_OUT_OF_DATE_KHR) - return; - if (err != VK_SUBOPTIMAL_KHR) - check_vk_result(err); - - ImGui_ImplVulkanH_Frame* fd = &wd->Frames[wd->FrameIndex]; - { - err = vkWaitForFences(g_Device, 1, &fd->Fence, VK_TRUE, UINT64_MAX); // wait indefinitely instead of periodically checking - check_vk_result(err); - - err = vkResetFences(g_Device, 1, &fd->Fence); - check_vk_result(err); - } - { - err = vkResetCommandPool(g_Device, fd->CommandPool, 0); - check_vk_result(err); - VkCommandBufferBeginInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; - info.flags |= VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT; - err = vkBeginCommandBuffer(fd->CommandBuffer, &info); - check_vk_result(err); - } - { - VkRenderPassBeginInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO; - info.renderPass = wd->RenderPass; - info.framebuffer = fd->Framebuffer; - info.renderArea.extent.width = wd->Width; - info.renderArea.extent.height = wd->Height; - info.clearValueCount = 1; - info.pClearValues = &wd->ClearValue; - vkCmdBeginRenderPass(fd->CommandBuffer, &info, VK_SUBPASS_CONTENTS_INLINE); - } - - // Record dear imgui primitives into command buffer - ImGui_ImplVulkan_RenderDrawData(draw_data, fd->CommandBuffer); - - // Submit command buffer - vkCmdEndRenderPass(fd->CommandBuffer); - { - VkPipelineStageFlags wait_stage = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - VkSubmitInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; - info.waitSemaphoreCount = 1; - info.pWaitSemaphores = &image_acquired_semaphore; - info.pWaitDstStageMask = &wait_stage; - info.commandBufferCount = 1; - info.pCommandBuffers = &fd->CommandBuffer; - info.signalSemaphoreCount = 1; - info.pSignalSemaphores = &render_complete_semaphore; - - err = vkEndCommandBuffer(fd->CommandBuffer); - check_vk_result(err); - err = vkQueueSubmit(g_Queue, 1, &info, fd->Fence); - check_vk_result(err); - } -} - -static void FramePresent(ImGui_ImplVulkanH_Window* wd) -{ - if (g_SwapChainRebuild) - return; - VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore; - VkPresentInfoKHR info = {}; - info.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR; - info.waitSemaphoreCount = 1; - info.pWaitSemaphores = &render_complete_semaphore; - info.swapchainCount = 1; - info.pSwapchains = &wd->Swapchain; - info.pImageIndices = &wd->FrameIndex; - VkResult err = vkQueuePresentKHR(g_Queue, &info); - if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR) - g_SwapChainRebuild = true; - if (err == VK_ERROR_OUT_OF_DATE_KHR) - return; - if (err != VK_SUBOPTIMAL_KHR) - check_vk_result(err); - wd->SemaphoreIndex = (wd->SemaphoreIndex + 1) % wd->SemaphoreCount; // Now we can use the next set of semaphores -} - -// Main code -int main(int, char**) -{ - // Setup SDL - // [If using SDL_MAIN_USE_CALLBACKS: all code below until the main loop starts would likely be your SDL_AppInit() function] - if (!SDL_Init(SDL_INIT_VIDEO | SDL_INIT_GAMEPAD)) - { - printf("Error: SDL_Init(): %s\n", SDL_GetError()); - return -1; - } - - // Create window with Vulkan graphics context - float main_scale = SDL_GetDisplayContentScale(SDL_GetPrimaryDisplay()); - SDL_WindowFlags window_flags = SDL_WINDOW_VULKAN | SDL_WINDOW_RESIZABLE | SDL_WINDOW_HIDDEN | SDL_WINDOW_HIGH_PIXEL_DENSITY; - SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL3+Vulkan example", (int)(1280 * main_scale), (int)(720 * main_scale), window_flags); - if (window == nullptr) - { - printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError()); - return -1; - } - - ImVector extensions; - { - uint32_t sdl_extensions_count = 0; - const char* const* sdl_extensions = SDL_Vulkan_GetInstanceExtensions(&sdl_extensions_count); - for (uint32_t n = 0; n < sdl_extensions_count; n++) - extensions.push_back(sdl_extensions[n]); - } - SetupVulkan(extensions); - - // Create Window Surface - VkSurfaceKHR surface; - VkResult err; - if (SDL_Vulkan_CreateSurface(window, g_Instance, g_Allocator, &surface) == 0) - { - printf("Failed to create Vulkan surface.\n"); - return 1; - } - - // Create Framebuffers - int w, h; - SDL_GetWindowSize(window, &w, &h); - ImGui_ImplVulkanH_Window* wd = &g_MainWindowData; - SetupVulkanWindow(wd, surface, w, h); - SDL_SetWindowPosition(window, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED); - SDL_ShowWindow(window); - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup scaling - ImGuiStyle& style = ImGui::GetStyle(); - style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again) - style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose) - - // Setup Platform/Renderer backends - ImGui_ImplSDL3_InitForVulkan(window); - ImGui_ImplVulkan_InitInfo init_info = {}; - //init_info.ApiVersion = VK_API_VERSION_1_3; // Pass in your value of VkApplicationInfo::apiVersion, otherwise will default to header version. - init_info.Instance = g_Instance; - init_info.PhysicalDevice = g_PhysicalDevice; - init_info.Device = g_Device; - init_info.QueueFamily = g_QueueFamily; - init_info.Queue = g_Queue; - init_info.PipelineCache = g_PipelineCache; - init_info.DescriptorPool = g_DescriptorPool; - init_info.RenderPass = wd->RenderPass; - init_info.Subpass = 0; - init_info.MinImageCount = g_MinImageCount; - init_info.ImageCount = wd->ImageCount; - init_info.MSAASamples = VK_SAMPLE_COUNT_1_BIT; - init_info.Allocator = g_Allocator; - init_info.CheckVkResultFn = check_vk_result; - ImGui_ImplVulkan_Init(&init_info); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop - bool done = false; - while (!done) - { - // Poll and handle events (inputs, window resize, etc.) - // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. - // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. - // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. - // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. - // [If using SDL_MAIN_USE_CALLBACKS: call ImGui_ImplSDL3_ProcessEvent() from your SDL_AppEvent() function] - SDL_Event event; - while (SDL_PollEvent(&event)) - { - ImGui_ImplSDL3_ProcessEvent(&event); - if (event.type == SDL_EVENT_QUIT) - done = true; - if (event.type == SDL_EVENT_WINDOW_CLOSE_REQUESTED && event.window.windowID == SDL_GetWindowID(window)) - done = true; - } - - // [If using SDL_MAIN_USE_CALLBACKS: all code below would likely be your SDL_AppIterate() function] - if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED) - { - SDL_Delay(10); - continue; - } - - // Resize swap chain? - int fb_width, fb_height; - SDL_GetWindowSize(window, &fb_width, &fb_height); - if (fb_width > 0 && fb_height > 0 && (g_SwapChainRebuild || g_MainWindowData.Width != fb_width || g_MainWindowData.Height != fb_height)) - { - ImGui_ImplVulkan_SetMinImageCount(g_MinImageCount); - ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, &g_MainWindowData, g_QueueFamily, g_Allocator, fb_width, fb_height, g_MinImageCount); - g_MainWindowData.FrameIndex = 0; - g_SwapChainRebuild = false; - } - - // Start the Dear ImGui frame - ImGui_ImplVulkan_NewFrame(); - ImGui_ImplSDL3_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - ImDrawData* draw_data = ImGui::GetDrawData(); - const bool is_minimized = (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f); - if (!is_minimized) - { - wd->ClearValue.color.float32[0] = clear_color.x * clear_color.w; - wd->ClearValue.color.float32[1] = clear_color.y * clear_color.w; - wd->ClearValue.color.float32[2] = clear_color.z * clear_color.w; - wd->ClearValue.color.float32[3] = clear_color.w; - FrameRender(wd, draw_data); - FramePresent(wd); - } - } - - // Cleanup - // [If using SDL_MAIN_USE_CALLBACKS: all code below would likely be your SDL_AppQuit() function] - err = vkDeviceWaitIdle(g_Device); - check_vk_result(err); - ImGui_ImplVulkan_Shutdown(); - ImGui_ImplSDL3_Shutdown(); - ImGui::DestroyContext(); - - CleanupVulkanWindow(); - CleanupVulkan(); - - SDL_DestroyWindow(window); - SDL_Quit(); - - return 0; -} diff --git a/libs/imgui-1.92.1/examples/example_win32_directx10/build_win32.bat b/libs/imgui-1.92.1/examples/example_win32_directx10/build_win32.bat deleted file mode 100644 index 78a6e37..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_directx10/build_win32.bat +++ /dev/null @@ -1,8 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. -@set OUT_DIR=Debug -@set OUT_EXE=example_win32_directx10 -@set INCLUDES=/I..\.. /I..\..\backends /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include" -@set SOURCES=main.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\backends\imgui_impl_dx10.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d10.lib d3dcompiler.lib -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% diff --git a/libs/imgui-1.92.1/examples/example_win32_directx10/example_win32_directx10.vcxproj b/libs/imgui-1.92.1/examples/example_win32_directx10/example_win32_directx10.vcxproj deleted file mode 100644 index d11aed8..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_directx10/example_win32_directx10.vcxproj +++ /dev/null @@ -1,176 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {345A953E-A004-4648-B442-DC5F9F11068C} - example_win32_directx10 - 8.1 - - - - Application - true - Unicode - v140 - - - Application - true - Unicode - v140 - - - Application - false - true - Unicode - v140 - - - Application - false - true - Unicode - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - - Level4 - Disabled - ..\..;..\..\backends;%(AdditionalIncludeDirectories); - /utf-8 %(AdditionalOptions) - - - true - d3d10.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies) - $(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories) - Console - - - - - Level4 - Disabled - ..\..;..\..\backends;%(AdditionalIncludeDirectories); - /utf-8 %(AdditionalOptions) - - - true - d3d10.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies) - $(DXSDK_DIR)/Lib/x64;%(AdditionalLibraryDirectories) - Console - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%(AdditionalIncludeDirectories); - false - /utf-8 %(AdditionalOptions) - - - true - true - true - d3d10.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies) - $(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories) - Console - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%(AdditionalIncludeDirectories); - false - /utf-8 %(AdditionalOptions) - - - true - true - true - d3d10.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies) - $(DXSDK_DIR)/Lib/x64;%(AdditionalLibraryDirectories) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_win32_directx10/example_win32_directx10.vcxproj.filters b/libs/imgui-1.92.1/examples/example_win32_directx10/example_win32_directx10.vcxproj.filters deleted file mode 100644 index 33ab99b..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_directx10/example_win32_directx10.vcxproj.filters +++ /dev/null @@ -1,63 +0,0 @@ - - - - - {0587d7a3-f2ce-4d56-b84f-a0005d3bfce6} - - - {08e36723-ce4f-4cff-9662-c40801cf1acf} - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - imgui - - - sources - - - imgui - - - imgui - - - sources - - - sources - - - imgui - - - imgui - - - - - - imgui - - - imgui - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_win32_directx10/main.cpp b/libs/imgui-1.92.1/examples/example_win32_directx10/main.cpp deleted file mode 100644 index 23033d6..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_directx10/main.cpp +++ /dev/null @@ -1,279 +0,0 @@ -// Dear ImGui: standalone example application for DirectX 10 - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#include "imgui.h" -#include "imgui_impl_win32.h" -#include "imgui_impl_dx10.h" -#include -#include -#include - -// Data -static ID3D10Device* g_pd3dDevice = nullptr; -static IDXGISwapChain* g_pSwapChain = nullptr; -static bool g_SwapChainOccluded = false; -static UINT g_ResizeWidth = 0, g_ResizeHeight = 0; -static ID3D10RenderTargetView* g_mainRenderTargetView = nullptr; - -// Forward declarations of helper functions -bool CreateDeviceD3D(HWND hWnd); -void CleanupDeviceD3D(); -void CreateRenderTarget(); -void CleanupRenderTarget(); -LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); - -// Main code -int main(int, char**) -{ - // Make process DPI aware and obtain main monitor scale - ImGui_ImplWin32_EnableDpiAwareness(); - float main_scale = ImGui_ImplWin32_GetDpiScaleForMonitor(::MonitorFromPoint(POINT{ 0, 0 }, MONITOR_DEFAULTTOPRIMARY)); - - // Create application window - WNDCLASSEXW wc = { sizeof(wc), CS_CLASSDC, WndProc, 0L, 0L, GetModuleHandle(nullptr), nullptr, nullptr, nullptr, nullptr, L"ImGui Example", nullptr }; - ::RegisterClassExW(&wc); - HWND hwnd = ::CreateWindowW(wc.lpszClassName, L"Dear ImGui DirectX10 Example", WS_OVERLAPPEDWINDOW, 100, 100, (int)(1280 * main_scale), (int)(800 * main_scale), nullptr, nullptr, wc.hInstance, nullptr); - - // Initialize Direct3D - if (!CreateDeviceD3D(hwnd)) - { - CleanupDeviceD3D(); - ::UnregisterClassW(wc.lpszClassName, wc.hInstance); - return 1; - } - - // Show the window - ::ShowWindow(hwnd, SW_SHOWDEFAULT); - ::UpdateWindow(hwnd); - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup scaling - ImGuiStyle& style = ImGui::GetStyle(); - style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again) - style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose) - - // Setup Platform/Renderer backends - ImGui_ImplWin32_Init(hwnd); - ImGui_ImplDX10_Init(g_pd3dDevice); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop - bool done = false; - while (!done) - { - // Poll and handle messages (inputs, window resize, etc.) - // See the WndProc() function below for our to dispatch events to the Win32 backend. - MSG msg; - while (::PeekMessage(&msg, nullptr, 0U, 0U, PM_REMOVE)) - { - ::TranslateMessage(&msg); - ::DispatchMessage(&msg); - if (msg.message == WM_QUIT) - done = true; - } - if (done) - break; - - // Handle window being minimized or screen locked - if (g_SwapChainOccluded && g_pSwapChain->Present(0, DXGI_PRESENT_TEST) == DXGI_STATUS_OCCLUDED) - { - ::Sleep(10); - continue; - } - g_SwapChainOccluded = false; - - // Handle window resize (we don't resize directly in the WM_SIZE handler) - if (g_ResizeWidth != 0 && g_ResizeHeight != 0) - { - CleanupRenderTarget(); - g_pSwapChain->ResizeBuffers(0, g_ResizeWidth, g_ResizeHeight, DXGI_FORMAT_UNKNOWN, 0); - g_ResizeWidth = g_ResizeHeight = 0; - CreateRenderTarget(); - } - - // Start the Dear ImGui frame - ImGui_ImplDX10_NewFrame(); - ImGui_ImplWin32_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - const float clear_color_with_alpha[4] = { clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w }; - g_pd3dDevice->OMSetRenderTargets(1, &g_mainRenderTargetView, nullptr); - g_pd3dDevice->ClearRenderTargetView(g_mainRenderTargetView, clear_color_with_alpha); - ImGui_ImplDX10_RenderDrawData(ImGui::GetDrawData()); - - // Present - HRESULT hr = g_pSwapChain->Present(1, 0); // Present with vsync - //HRESULT hr = g_pSwapChain->Present(0, 0); // Present without vsync - g_SwapChainOccluded = (hr == DXGI_STATUS_OCCLUDED); - } - - // Cleanup - ImGui_ImplDX10_Shutdown(); - ImGui_ImplWin32_Shutdown(); - ImGui::DestroyContext(); - - CleanupDeviceD3D(); - ::DestroyWindow(hwnd); - ::UnregisterClassW(wc.lpszClassName, wc.hInstance); - - return 0; -} - -// Helper functions - -bool CreateDeviceD3D(HWND hWnd) -{ - // Setup swap chain - DXGI_SWAP_CHAIN_DESC sd; - ZeroMemory(&sd, sizeof(sd)); - sd.BufferCount = 2; - sd.BufferDesc.Width = 0; - sd.BufferDesc.Height = 0; - sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - sd.BufferDesc.RefreshRate.Numerator = 60; - sd.BufferDesc.RefreshRate.Denominator = 1; - sd.Flags = DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH; - sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; - sd.OutputWindow = hWnd; - sd.SampleDesc.Count = 1; - sd.SampleDesc.Quality = 0; - sd.Windowed = TRUE; - sd.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; - - UINT createDeviceFlags = 0; - //createDeviceFlags |= D3D10_CREATE_DEVICE_DEBUG; - HRESULT res = D3D10CreateDeviceAndSwapChain(nullptr, D3D10_DRIVER_TYPE_HARDWARE, nullptr, createDeviceFlags, D3D10_SDK_VERSION, &sd, &g_pSwapChain, &g_pd3dDevice); - if (res == DXGI_ERROR_UNSUPPORTED) // Try high-performance WARP software driver if hardware is not available. - res = D3D10CreateDeviceAndSwapChain(nullptr, D3D10_DRIVER_TYPE_WARP, nullptr, createDeviceFlags, D3D10_SDK_VERSION, &sd, &g_pSwapChain, &g_pd3dDevice); - if (res != S_OK) - return false; - - CreateRenderTarget(); - return true; -} - -void CleanupDeviceD3D() -{ - CleanupRenderTarget(); - if (g_pSwapChain) { g_pSwapChain->Release(); g_pSwapChain = nullptr; } - if (g_pd3dDevice) { g_pd3dDevice->Release(); g_pd3dDevice = nullptr; } -} - -void CreateRenderTarget() -{ - ID3D10Texture2D* pBackBuffer; - g_pSwapChain->GetBuffer(0, IID_PPV_ARGS(&pBackBuffer)); - g_pd3dDevice->CreateRenderTargetView(pBackBuffer, nullptr, &g_mainRenderTargetView); - pBackBuffer->Release(); -} - -void CleanupRenderTarget() -{ - if (g_mainRenderTargetView) { g_mainRenderTargetView->Release(); g_mainRenderTargetView = nullptr; } -} - -// Forward declare message handler from imgui_impl_win32.cpp -extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); - -// Win32 message handler -// You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. -// - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. -// - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. -// Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. -LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - if (ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam)) - return true; - - switch (msg) - { - case WM_SIZE: - if (wParam == SIZE_MINIMIZED) - return 0; - g_ResizeWidth = (UINT)LOWORD(lParam); // Queue resize - g_ResizeHeight = (UINT)HIWORD(lParam); - return 0; - case WM_SYSCOMMAND: - if ((wParam & 0xfff0) == SC_KEYMENU) // Disable ALT application menu - return 0; - break; - case WM_DESTROY: - ::PostQuitMessage(0); - return 0; - } - return ::DefWindowProcW(hWnd, msg, wParam, lParam); -} diff --git a/libs/imgui-1.92.1/examples/example_win32_directx11/build_win32.bat b/libs/imgui-1.92.1/examples/example_win32_directx11/build_win32.bat deleted file mode 100644 index c9a717c..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_directx11/build_win32.bat +++ /dev/null @@ -1,9 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. -@set OUT_DIR=Debug -@set OUT_EXE=example_win32_directx11 -@set INCLUDES=/I..\.. /I..\..\backends /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include" -@set SOURCES=main.cpp ..\..\backends\imgui_impl_dx11.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d11.lib d3dcompiler.lib -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% - diff --git a/libs/imgui-1.92.1/examples/example_win32_directx11/example_win32_directx11.vcxproj b/libs/imgui-1.92.1/examples/example_win32_directx11/example_win32_directx11.vcxproj deleted file mode 100644 index bace6a2..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_directx11/example_win32_directx11.vcxproj +++ /dev/null @@ -1,175 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {9F316E83-5AE5-4939-A723-305A94F48005} - example_win32_directx11 - - - - Application - true - Unicode - v140 - - - Application - true - Unicode - v140 - - - Application - false - true - Unicode - v140 - - - Application - false - true - Unicode - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - - Level4 - Disabled - ..\..;..\..\backends;%(AdditionalIncludeDirectories); - /utf-8 %(AdditionalOptions) - - - true - d3d11.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies) - $(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories) - Console - - - - - Level4 - Disabled - ..\..;..\..\backends;%(AdditionalIncludeDirectories); - /utf-8 %(AdditionalOptions) - - - true - d3d11.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies) - $(DXSDK_DIR)/Lib/x64;%(AdditionalLibraryDirectories) - Console - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%(AdditionalIncludeDirectories); - false - /utf-8 %(AdditionalOptions) - - - true - true - true - d3d11.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies) - $(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories) - Console - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%(AdditionalIncludeDirectories); - false - /utf-8 %(AdditionalOptions) - - - true - true - true - d3d11.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies) - $(DXSDK_DIR)/Lib/x64;%(AdditionalLibraryDirectories) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_win32_directx11/example_win32_directx11.vcxproj.filters b/libs/imgui-1.92.1/examples/example_win32_directx11/example_win32_directx11.vcxproj.filters deleted file mode 100644 index 63032a6..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_directx11/example_win32_directx11.vcxproj.filters +++ /dev/null @@ -1,63 +0,0 @@ - - - - - {0587d7a3-f2ce-4d56-b84f-a0005d3bfce6} - - - {08e36723-ce4f-4cff-9662-c40801cf1acf} - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - imgui - - - sources - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - imgui - - - - - - imgui - - - imgui - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_win32_directx11/main.cpp b/libs/imgui-1.92.1/examples/example_win32_directx11/main.cpp deleted file mode 100644 index c80114c..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_directx11/main.cpp +++ /dev/null @@ -1,282 +0,0 @@ -// Dear ImGui: standalone example application for DirectX 11 - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#include "imgui.h" -#include "imgui_impl_win32.h" -#include "imgui_impl_dx11.h" -#include -#include - -// Data -static ID3D11Device* g_pd3dDevice = nullptr; -static ID3D11DeviceContext* g_pd3dDeviceContext = nullptr; -static IDXGISwapChain* g_pSwapChain = nullptr; -static bool g_SwapChainOccluded = false; -static UINT g_ResizeWidth = 0, g_ResizeHeight = 0; -static ID3D11RenderTargetView* g_mainRenderTargetView = nullptr; - -// Forward declarations of helper functions -bool CreateDeviceD3D(HWND hWnd); -void CleanupDeviceD3D(); -void CreateRenderTarget(); -void CleanupRenderTarget(); -LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); - -// Main code -int main(int, char**) -{ - // Make process DPI aware and obtain main monitor scale - ImGui_ImplWin32_EnableDpiAwareness(); - float main_scale = ImGui_ImplWin32_GetDpiScaleForMonitor(::MonitorFromPoint(POINT{ 0, 0 }, MONITOR_DEFAULTTOPRIMARY)); - - // Create application window - WNDCLASSEXW wc = { sizeof(wc), CS_CLASSDC, WndProc, 0L, 0L, GetModuleHandle(nullptr), nullptr, nullptr, nullptr, nullptr, L"ImGui Example", nullptr }; - ::RegisterClassExW(&wc); - HWND hwnd = ::CreateWindowW(wc.lpszClassName, L"Dear ImGui DirectX11 Example", WS_OVERLAPPEDWINDOW, 100, 100, (int)(1280 * main_scale), (int)(800 * main_scale), nullptr, nullptr, wc.hInstance, nullptr); - - // Initialize Direct3D - if (!CreateDeviceD3D(hwnd)) - { - CleanupDeviceD3D(); - ::UnregisterClassW(wc.lpszClassName, wc.hInstance); - return 1; - } - - // Show the window - ::ShowWindow(hwnd, SW_SHOWDEFAULT); - ::UpdateWindow(hwnd); - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup scaling - ImGuiStyle& style = ImGui::GetStyle(); - style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again) - style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose) - - // Setup Platform/Renderer backends - ImGui_ImplWin32_Init(hwnd); - ImGui_ImplDX11_Init(g_pd3dDevice, g_pd3dDeviceContext); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop - bool done = false; - while (!done) - { - // Poll and handle messages (inputs, window resize, etc.) - // See the WndProc() function below for our to dispatch events to the Win32 backend. - MSG msg; - while (::PeekMessage(&msg, nullptr, 0U, 0U, PM_REMOVE)) - { - ::TranslateMessage(&msg); - ::DispatchMessage(&msg); - if (msg.message == WM_QUIT) - done = true; - } - if (done) - break; - - // Handle window being minimized or screen locked - if (g_SwapChainOccluded && g_pSwapChain->Present(0, DXGI_PRESENT_TEST) == DXGI_STATUS_OCCLUDED) - { - ::Sleep(10); - continue; - } - g_SwapChainOccluded = false; - - // Handle window resize (we don't resize directly in the WM_SIZE handler) - if (g_ResizeWidth != 0 && g_ResizeHeight != 0) - { - CleanupRenderTarget(); - g_pSwapChain->ResizeBuffers(0, g_ResizeWidth, g_ResizeHeight, DXGI_FORMAT_UNKNOWN, 0); - g_ResizeWidth = g_ResizeHeight = 0; - CreateRenderTarget(); - } - - // Start the Dear ImGui frame - ImGui_ImplDX11_NewFrame(); - ImGui_ImplWin32_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - const float clear_color_with_alpha[4] = { clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w }; - g_pd3dDeviceContext->OMSetRenderTargets(1, &g_mainRenderTargetView, nullptr); - g_pd3dDeviceContext->ClearRenderTargetView(g_mainRenderTargetView, clear_color_with_alpha); - ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData()); - - // Present - HRESULT hr = g_pSwapChain->Present(1, 0); // Present with vsync - //HRESULT hr = g_pSwapChain->Present(0, 0); // Present without vsync - g_SwapChainOccluded = (hr == DXGI_STATUS_OCCLUDED); - } - - // Cleanup - ImGui_ImplDX11_Shutdown(); - ImGui_ImplWin32_Shutdown(); - ImGui::DestroyContext(); - - CleanupDeviceD3D(); - ::DestroyWindow(hwnd); - ::UnregisterClassW(wc.lpszClassName, wc.hInstance); - - return 0; -} - -// Helper functions - -bool CreateDeviceD3D(HWND hWnd) -{ - // Setup swap chain - DXGI_SWAP_CHAIN_DESC sd; - ZeroMemory(&sd, sizeof(sd)); - sd.BufferCount = 2; - sd.BufferDesc.Width = 0; - sd.BufferDesc.Height = 0; - sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - sd.BufferDesc.RefreshRate.Numerator = 60; - sd.BufferDesc.RefreshRate.Denominator = 1; - sd.Flags = DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH; - sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; - sd.OutputWindow = hWnd; - sd.SampleDesc.Count = 1; - sd.SampleDesc.Quality = 0; - sd.Windowed = TRUE; - sd.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; - - UINT createDeviceFlags = 0; - //createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG; - D3D_FEATURE_LEVEL featureLevel; - const D3D_FEATURE_LEVEL featureLevelArray[2] = { D3D_FEATURE_LEVEL_11_0, D3D_FEATURE_LEVEL_10_0, }; - HRESULT res = D3D11CreateDeviceAndSwapChain(nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, createDeviceFlags, featureLevelArray, 2, D3D11_SDK_VERSION, &sd, &g_pSwapChain, &g_pd3dDevice, &featureLevel, &g_pd3dDeviceContext); - if (res == DXGI_ERROR_UNSUPPORTED) // Try high-performance WARP software driver if hardware is not available. - res = D3D11CreateDeviceAndSwapChain(nullptr, D3D_DRIVER_TYPE_WARP, nullptr, createDeviceFlags, featureLevelArray, 2, D3D11_SDK_VERSION, &sd, &g_pSwapChain, &g_pd3dDevice, &featureLevel, &g_pd3dDeviceContext); - if (res != S_OK) - return false; - - CreateRenderTarget(); - return true; -} - -void CleanupDeviceD3D() -{ - CleanupRenderTarget(); - if (g_pSwapChain) { g_pSwapChain->Release(); g_pSwapChain = nullptr; } - if (g_pd3dDeviceContext) { g_pd3dDeviceContext->Release(); g_pd3dDeviceContext = nullptr; } - if (g_pd3dDevice) { g_pd3dDevice->Release(); g_pd3dDevice = nullptr; } -} - -void CreateRenderTarget() -{ - ID3D11Texture2D* pBackBuffer; - g_pSwapChain->GetBuffer(0, IID_PPV_ARGS(&pBackBuffer)); - g_pd3dDevice->CreateRenderTargetView(pBackBuffer, nullptr, &g_mainRenderTargetView); - pBackBuffer->Release(); -} - -void CleanupRenderTarget() -{ - if (g_mainRenderTargetView) { g_mainRenderTargetView->Release(); g_mainRenderTargetView = nullptr; } -} - -// Forward declare message handler from imgui_impl_win32.cpp -extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); - -// Win32 message handler -// You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. -// - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. -// - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. -// Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. -LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - if (ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam)) - return true; - - switch (msg) - { - case WM_SIZE: - if (wParam == SIZE_MINIMIZED) - return 0; - g_ResizeWidth = (UINT)LOWORD(lParam); // Queue resize - g_ResizeHeight = (UINT)HIWORD(lParam); - return 0; - case WM_SYSCOMMAND: - if ((wParam & 0xfff0) == SC_KEYMENU) // Disable ALT application menu - return 0; - break; - case WM_DESTROY: - ::PostQuitMessage(0); - return 0; - } - return ::DefWindowProcW(hWnd, msg, wParam, lParam); -} diff --git a/libs/imgui-1.92.1/examples/example_win32_directx12/build_win32.bat b/libs/imgui-1.92.1/examples/example_win32_directx12/build_win32.bat deleted file mode 100644 index cb5e8e2..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_directx12/build_win32.bat +++ /dev/null @@ -1,8 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. -@set OUT_DIR=Debug -@set OUT_EXE=example_win32_directx12 -@set INCLUDES=/I..\.. /I..\..\backends /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" -@set SOURCES=main.cpp ..\..\backends\imgui_impl_dx12.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp -@set LIBS=d3d12.lib d3dcompiler.lib dxgi.lib -mkdir Debug -cl /nologo /Zi /MD /utf-8 %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% diff --git a/libs/imgui-1.92.1/examples/example_win32_directx12/example_win32_directx12.vcxproj b/libs/imgui-1.92.1/examples/example_win32_directx12/example_win32_directx12.vcxproj deleted file mode 100644 index bb98c41..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_directx12/example_win32_directx12.vcxproj +++ /dev/null @@ -1,180 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {b4cf9797-519d-4afe-a8f4-5141a6b521d3} - example_win32_directx12 - 10.0.20348.0 - - - - Application - true - Unicode - v140 - - - Application - true - Unicode - v140 - - - Application - false - true - Unicode - v140 - - - Application - false - true - Unicode - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - - Level4 - Disabled - ..\..;..\..\backends;%(AdditionalIncludeDirectories) - _UNICODE;UNICODE;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - d3d12.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies) - %(AdditionalLibraryDirectories) - Console - - - - - Level4 - Disabled - ..\..;..\..\backends;%(AdditionalIncludeDirectories) - _UNICODE;UNICODE;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - d3d12.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies) - %(AdditionalLibraryDirectories) - Console - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%(AdditionalIncludeDirectories) - _UNICODE;UNICODE;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - true - true - d3d12.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies) - %(AdditionalLibraryDirectories) - Console - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%(AdditionalIncludeDirectories) - _UNICODE;UNICODE;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - true - true - d3d12.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies) - %(AdditionalLibraryDirectories) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_win32_directx12/example_win32_directx12.vcxproj.filters b/libs/imgui-1.92.1/examples/example_win32_directx12/example_win32_directx12.vcxproj.filters deleted file mode 100644 index 23a9952..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_directx12/example_win32_directx12.vcxproj.filters +++ /dev/null @@ -1,65 +0,0 @@ - - - - - {fb3d294f-51ec-478e-a627-25831c80fefd} - - - {4f33ddea-9910-456d-b868-4267eb3c2b19} - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - imgui - - - sources - - - imgui - - - imgui - - - sources - - - sources - - - imgui - - - imgui - - - - - - imgui - - - - - imgui - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_win32_directx12/main.cpp b/libs/imgui-1.92.1/examples/example_win32_directx12/main.cpp deleted file mode 100644 index 3a9ba4f..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_directx12/main.cpp +++ /dev/null @@ -1,547 +0,0 @@ -// Dear ImGui: standalone example application for DirectX 12 - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#include "imgui.h" -#include "imgui_impl_win32.h" -#include "imgui_impl_dx12.h" -#include -#include -#include - -#ifdef _DEBUG -#define DX12_ENABLE_DEBUG_LAYER -#endif - -#ifdef DX12_ENABLE_DEBUG_LAYER -#include -#pragma comment(lib, "dxguid.lib") -#endif - -// Config for example app -static const int APP_NUM_FRAMES_IN_FLIGHT = 2; -static const int APP_NUM_BACK_BUFFERS = 2; -static const int APP_SRV_HEAP_SIZE = 64; - -struct FrameContext -{ - ID3D12CommandAllocator* CommandAllocator; - UINT64 FenceValue; -}; - -// Simple free list based allocator -struct ExampleDescriptorHeapAllocator -{ - ID3D12DescriptorHeap* Heap = nullptr; - D3D12_DESCRIPTOR_HEAP_TYPE HeapType = D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES; - D3D12_CPU_DESCRIPTOR_HANDLE HeapStartCpu; - D3D12_GPU_DESCRIPTOR_HANDLE HeapStartGpu; - UINT HeapHandleIncrement; - ImVector FreeIndices; - - void Create(ID3D12Device* device, ID3D12DescriptorHeap* heap) - { - IM_ASSERT(Heap == nullptr && FreeIndices.empty()); - Heap = heap; - D3D12_DESCRIPTOR_HEAP_DESC desc = heap->GetDesc(); - HeapType = desc.Type; - HeapStartCpu = Heap->GetCPUDescriptorHandleForHeapStart(); - HeapStartGpu = Heap->GetGPUDescriptorHandleForHeapStart(); - HeapHandleIncrement = device->GetDescriptorHandleIncrementSize(HeapType); - FreeIndices.reserve((int)desc.NumDescriptors); - for (int n = desc.NumDescriptors; n > 0; n--) - FreeIndices.push_back(n - 1); - } - void Destroy() - { - Heap = nullptr; - FreeIndices.clear(); - } - void Alloc(D3D12_CPU_DESCRIPTOR_HANDLE* out_cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE* out_gpu_desc_handle) - { - IM_ASSERT(FreeIndices.Size > 0); - int idx = FreeIndices.back(); - FreeIndices.pop_back(); - out_cpu_desc_handle->ptr = HeapStartCpu.ptr + (idx * HeapHandleIncrement); - out_gpu_desc_handle->ptr = HeapStartGpu.ptr + (idx * HeapHandleIncrement); - } - void Free(D3D12_CPU_DESCRIPTOR_HANDLE out_cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE out_gpu_desc_handle) - { - int cpu_idx = (int)((out_cpu_desc_handle.ptr - HeapStartCpu.ptr) / HeapHandleIncrement); - int gpu_idx = (int)((out_gpu_desc_handle.ptr - HeapStartGpu.ptr) / HeapHandleIncrement); - IM_ASSERT(cpu_idx == gpu_idx); - FreeIndices.push_back(cpu_idx); - } -}; - -// Data -static FrameContext g_frameContext[APP_NUM_FRAMES_IN_FLIGHT] = {}; -static UINT g_frameIndex = 0; - -static ID3D12Device* g_pd3dDevice = nullptr; -static ID3D12DescriptorHeap* g_pd3dRtvDescHeap = nullptr; -static ID3D12DescriptorHeap* g_pd3dSrvDescHeap = nullptr; -static ExampleDescriptorHeapAllocator g_pd3dSrvDescHeapAlloc; -static ID3D12CommandQueue* g_pd3dCommandQueue = nullptr; -static ID3D12GraphicsCommandList* g_pd3dCommandList = nullptr; -static ID3D12Fence* g_fence = nullptr; -static HANDLE g_fenceEvent = nullptr; -static UINT64 g_fenceLastSignaledValue = 0; -static IDXGISwapChain3* g_pSwapChain = nullptr; -static bool g_SwapChainOccluded = false; -static HANDLE g_hSwapChainWaitableObject = nullptr; -static ID3D12Resource* g_mainRenderTargetResource[APP_NUM_BACK_BUFFERS] = {}; -static D3D12_CPU_DESCRIPTOR_HANDLE g_mainRenderTargetDescriptor[APP_NUM_BACK_BUFFERS] = {}; - -// Forward declarations of helper functions -bool CreateDeviceD3D(HWND hWnd); -void CleanupDeviceD3D(); -void CreateRenderTarget(); -void CleanupRenderTarget(); -void WaitForLastSubmittedFrame(); -FrameContext* WaitForNextFrameResources(); -LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); - -// Main code -int main(int, char**) -{ - // Make process DPI aware and obtain main monitor scale - ImGui_ImplWin32_EnableDpiAwareness(); - float main_scale = ImGui_ImplWin32_GetDpiScaleForMonitor(::MonitorFromPoint(POINT{ 0, 0 }, MONITOR_DEFAULTTOPRIMARY)); - - // Create application window - WNDCLASSEXW wc = { sizeof(wc), CS_CLASSDC, WndProc, 0L, 0L, GetModuleHandle(nullptr), nullptr, nullptr, nullptr, nullptr, L"ImGui Example", nullptr }; - ::RegisterClassExW(&wc); - HWND hwnd = ::CreateWindowW(wc.lpszClassName, L"Dear ImGui DirectX12 Example", WS_OVERLAPPEDWINDOW, 100, 100, (int)(1280 * main_scale), (int)(800 * main_scale), nullptr, nullptr, wc.hInstance, nullptr); - - // Initialize Direct3D - if (!CreateDeviceD3D(hwnd)) - { - CleanupDeviceD3D(); - ::UnregisterClassW(wc.lpszClassName, wc.hInstance); - return 1; - } - - // Show the window - ::ShowWindow(hwnd, SW_SHOWDEFAULT); - ::UpdateWindow(hwnd); - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup scaling - ImGuiStyle& style = ImGui::GetStyle(); - style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again) - style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose) - - // Setup Platform/Renderer backends - ImGui_ImplWin32_Init(hwnd); - - ImGui_ImplDX12_InitInfo init_info = {}; - init_info.Device = g_pd3dDevice; - init_info.CommandQueue = g_pd3dCommandQueue; - init_info.NumFramesInFlight = APP_NUM_FRAMES_IN_FLIGHT; - init_info.RTVFormat = DXGI_FORMAT_R8G8B8A8_UNORM; - init_info.DSVFormat = DXGI_FORMAT_UNKNOWN; - // Allocating SRV descriptors (for textures) is up to the application, so we provide callbacks. - // (current version of the backend will only allocate one descriptor, future versions will need to allocate more) - init_info.SrvDescriptorHeap = g_pd3dSrvDescHeap; - init_info.SrvDescriptorAllocFn = [](ImGui_ImplDX12_InitInfo*, D3D12_CPU_DESCRIPTOR_HANDLE* out_cpu_handle, D3D12_GPU_DESCRIPTOR_HANDLE* out_gpu_handle) { return g_pd3dSrvDescHeapAlloc.Alloc(out_cpu_handle, out_gpu_handle); }; - init_info.SrvDescriptorFreeFn = [](ImGui_ImplDX12_InitInfo*, D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle) { return g_pd3dSrvDescHeapAlloc.Free(cpu_handle, gpu_handle); }; - ImGui_ImplDX12_Init(&init_info); - - // Before 1.91.6: our signature was using a single descriptor. From 1.92, specifying SrvDescriptorAllocFn/SrvDescriptorFreeFn will be required to benefit from new features. - //ImGui_ImplDX12_Init(g_pd3dDevice, APP_NUM_FRAMES_IN_FLIGHT, DXGI_FORMAT_R8G8B8A8_UNORM, g_pd3dSrvDescHeap, g_pd3dSrvDescHeap->GetCPUDescriptorHandleForHeapStart(), g_pd3dSrvDescHeap->GetGPUDescriptorHandleForHeapStart()); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop - bool done = false; - while (!done) - { - // Poll and handle messages (inputs, window resize, etc.) - // See the WndProc() function below for our to dispatch events to the Win32 backend. - MSG msg; - while (::PeekMessage(&msg, nullptr, 0U, 0U, PM_REMOVE)) - { - ::TranslateMessage(&msg); - ::DispatchMessage(&msg); - if (msg.message == WM_QUIT) - done = true; - } - if (done) - break; - - // Handle window screen locked - if ((g_SwapChainOccluded && g_pSwapChain->Present(0, DXGI_PRESENT_TEST) == DXGI_STATUS_OCCLUDED) || ::IsIconic(hwnd)) - { - ::Sleep(10); - continue; - } - g_SwapChainOccluded = false; - - // Start the Dear ImGui frame - ImGui_ImplDX12_NewFrame(); - ImGui_ImplWin32_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - - FrameContext* frameCtx = WaitForNextFrameResources(); - UINT backBufferIdx = g_pSwapChain->GetCurrentBackBufferIndex(); - frameCtx->CommandAllocator->Reset(); - - D3D12_RESOURCE_BARRIER barrier = {}; - barrier.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION; - barrier.Flags = D3D12_RESOURCE_BARRIER_FLAG_NONE; - barrier.Transition.pResource = g_mainRenderTargetResource[backBufferIdx]; - barrier.Transition.Subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES; - barrier.Transition.StateBefore = D3D12_RESOURCE_STATE_PRESENT; - barrier.Transition.StateAfter = D3D12_RESOURCE_STATE_RENDER_TARGET; - g_pd3dCommandList->Reset(frameCtx->CommandAllocator, nullptr); - g_pd3dCommandList->ResourceBarrier(1, &barrier); - - // Render Dear ImGui graphics - const float clear_color_with_alpha[4] = { clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w }; - g_pd3dCommandList->ClearRenderTargetView(g_mainRenderTargetDescriptor[backBufferIdx], clear_color_with_alpha, 0, nullptr); - g_pd3dCommandList->OMSetRenderTargets(1, &g_mainRenderTargetDescriptor[backBufferIdx], FALSE, nullptr); - g_pd3dCommandList->SetDescriptorHeaps(1, &g_pd3dSrvDescHeap); - ImGui_ImplDX12_RenderDrawData(ImGui::GetDrawData(), g_pd3dCommandList); - barrier.Transition.StateBefore = D3D12_RESOURCE_STATE_RENDER_TARGET; - barrier.Transition.StateAfter = D3D12_RESOURCE_STATE_PRESENT; - g_pd3dCommandList->ResourceBarrier(1, &barrier); - g_pd3dCommandList->Close(); - - g_pd3dCommandQueue->ExecuteCommandLists(1, (ID3D12CommandList* const*)&g_pd3dCommandList); - - // Present - HRESULT hr = g_pSwapChain->Present(1, 0); // Present with vsync - //HRESULT hr = g_pSwapChain->Present(0, 0); // Present without vsync - g_SwapChainOccluded = (hr == DXGI_STATUS_OCCLUDED); - - UINT64 fenceValue = g_fenceLastSignaledValue + 1; - g_pd3dCommandQueue->Signal(g_fence, fenceValue); - g_fenceLastSignaledValue = fenceValue; - frameCtx->FenceValue = fenceValue; - } - - WaitForLastSubmittedFrame(); - - // Cleanup - ImGui_ImplDX12_Shutdown(); - ImGui_ImplWin32_Shutdown(); - ImGui::DestroyContext(); - - CleanupDeviceD3D(); - ::DestroyWindow(hwnd); - ::UnregisterClassW(wc.lpszClassName, wc.hInstance); - - return 0; -} - -// Helper functions - -bool CreateDeviceD3D(HWND hWnd) -{ - // Setup swap chain - DXGI_SWAP_CHAIN_DESC1 sd; - { - ZeroMemory(&sd, sizeof(sd)); - sd.BufferCount = APP_NUM_BACK_BUFFERS; - sd.Width = 0; - sd.Height = 0; - sd.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - sd.Flags = DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT; - sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; - sd.SampleDesc.Count = 1; - sd.SampleDesc.Quality = 0; - sd.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD; - sd.AlphaMode = DXGI_ALPHA_MODE_UNSPECIFIED; - sd.Scaling = DXGI_SCALING_STRETCH; - sd.Stereo = FALSE; - } - - // [DEBUG] Enable debug interface -#ifdef DX12_ENABLE_DEBUG_LAYER - ID3D12Debug* pdx12Debug = nullptr; - if (SUCCEEDED(D3D12GetDebugInterface(IID_PPV_ARGS(&pdx12Debug)))) - pdx12Debug->EnableDebugLayer(); -#endif - - // Create device - D3D_FEATURE_LEVEL featureLevel = D3D_FEATURE_LEVEL_11_0; - if (D3D12CreateDevice(nullptr, featureLevel, IID_PPV_ARGS(&g_pd3dDevice)) != S_OK) - return false; - - // [DEBUG] Setup debug interface to break on any warnings/errors -#ifdef DX12_ENABLE_DEBUG_LAYER - if (pdx12Debug != nullptr) - { - ID3D12InfoQueue* pInfoQueue = nullptr; - g_pd3dDevice->QueryInterface(IID_PPV_ARGS(&pInfoQueue)); - pInfoQueue->SetBreakOnSeverity(D3D12_MESSAGE_SEVERITY_ERROR, true); - pInfoQueue->SetBreakOnSeverity(D3D12_MESSAGE_SEVERITY_CORRUPTION, true); - pInfoQueue->SetBreakOnSeverity(D3D12_MESSAGE_SEVERITY_WARNING, true); - pInfoQueue->Release(); - pdx12Debug->Release(); - } -#endif - - { - D3D12_DESCRIPTOR_HEAP_DESC desc = {}; - desc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_RTV; - desc.NumDescriptors = APP_NUM_BACK_BUFFERS; - desc.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_NONE; - desc.NodeMask = 1; - if (g_pd3dDevice->CreateDescriptorHeap(&desc, IID_PPV_ARGS(&g_pd3dRtvDescHeap)) != S_OK) - return false; - - SIZE_T rtvDescriptorSize = g_pd3dDevice->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_RTV); - D3D12_CPU_DESCRIPTOR_HANDLE rtvHandle = g_pd3dRtvDescHeap->GetCPUDescriptorHandleForHeapStart(); - for (UINT i = 0; i < APP_NUM_BACK_BUFFERS; i++) - { - g_mainRenderTargetDescriptor[i] = rtvHandle; - rtvHandle.ptr += rtvDescriptorSize; - } - } - - { - D3D12_DESCRIPTOR_HEAP_DESC desc = {}; - desc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV; - desc.NumDescriptors = APP_SRV_HEAP_SIZE; - desc.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE; - if (g_pd3dDevice->CreateDescriptorHeap(&desc, IID_PPV_ARGS(&g_pd3dSrvDescHeap)) != S_OK) - return false; - g_pd3dSrvDescHeapAlloc.Create(g_pd3dDevice, g_pd3dSrvDescHeap); - } - - { - D3D12_COMMAND_QUEUE_DESC desc = {}; - desc.Type = D3D12_COMMAND_LIST_TYPE_DIRECT; - desc.Flags = D3D12_COMMAND_QUEUE_FLAG_NONE; - desc.NodeMask = 1; - if (g_pd3dDevice->CreateCommandQueue(&desc, IID_PPV_ARGS(&g_pd3dCommandQueue)) != S_OK) - return false; - } - - for (UINT i = 0; i < APP_NUM_FRAMES_IN_FLIGHT; i++) - if (g_pd3dDevice->CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE_DIRECT, IID_PPV_ARGS(&g_frameContext[i].CommandAllocator)) != S_OK) - return false; - - if (g_pd3dDevice->CreateCommandList(0, D3D12_COMMAND_LIST_TYPE_DIRECT, g_frameContext[0].CommandAllocator, nullptr, IID_PPV_ARGS(&g_pd3dCommandList)) != S_OK || - g_pd3dCommandList->Close() != S_OK) - return false; - - if (g_pd3dDevice->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&g_fence)) != S_OK) - return false; - - g_fenceEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr); - if (g_fenceEvent == nullptr) - return false; - - { - IDXGIFactory4* dxgiFactory = nullptr; - IDXGISwapChain1* swapChain1 = nullptr; - if (CreateDXGIFactory1(IID_PPV_ARGS(&dxgiFactory)) != S_OK) - return false; - if (dxgiFactory->CreateSwapChainForHwnd(g_pd3dCommandQueue, hWnd, &sd, nullptr, nullptr, &swapChain1) != S_OK) - return false; - if (swapChain1->QueryInterface(IID_PPV_ARGS(&g_pSwapChain)) != S_OK) - return false; - swapChain1->Release(); - dxgiFactory->Release(); - g_pSwapChain->SetMaximumFrameLatency(APP_NUM_BACK_BUFFERS); - g_hSwapChainWaitableObject = g_pSwapChain->GetFrameLatencyWaitableObject(); - } - - CreateRenderTarget(); - return true; -} - -void CleanupDeviceD3D() -{ - CleanupRenderTarget(); - if (g_pSwapChain) { g_pSwapChain->SetFullscreenState(false, nullptr); g_pSwapChain->Release(); g_pSwapChain = nullptr; } - if (g_hSwapChainWaitableObject != nullptr) { CloseHandle(g_hSwapChainWaitableObject); } - for (UINT i = 0; i < APP_NUM_FRAMES_IN_FLIGHT; i++) - if (g_frameContext[i].CommandAllocator) { g_frameContext[i].CommandAllocator->Release(); g_frameContext[i].CommandAllocator = nullptr; } - if (g_pd3dCommandQueue) { g_pd3dCommandQueue->Release(); g_pd3dCommandQueue = nullptr; } - if (g_pd3dCommandList) { g_pd3dCommandList->Release(); g_pd3dCommandList = nullptr; } - if (g_pd3dRtvDescHeap) { g_pd3dRtvDescHeap->Release(); g_pd3dRtvDescHeap = nullptr; } - if (g_pd3dSrvDescHeap) { g_pd3dSrvDescHeap->Release(); g_pd3dSrvDescHeap = nullptr; } - if (g_fence) { g_fence->Release(); g_fence = nullptr; } - if (g_fenceEvent) { CloseHandle(g_fenceEvent); g_fenceEvent = nullptr; } - if (g_pd3dDevice) { g_pd3dDevice->Release(); g_pd3dDevice = nullptr; } - -#ifdef DX12_ENABLE_DEBUG_LAYER - IDXGIDebug1* pDebug = nullptr; - if (SUCCEEDED(DXGIGetDebugInterface1(0, IID_PPV_ARGS(&pDebug)))) - { - pDebug->ReportLiveObjects(DXGI_DEBUG_ALL, DXGI_DEBUG_RLO_SUMMARY); - pDebug->Release(); - } -#endif -} - -void CreateRenderTarget() -{ - for (UINT i = 0; i < APP_NUM_BACK_BUFFERS; i++) - { - ID3D12Resource* pBackBuffer = nullptr; - g_pSwapChain->GetBuffer(i, IID_PPV_ARGS(&pBackBuffer)); - g_pd3dDevice->CreateRenderTargetView(pBackBuffer, nullptr, g_mainRenderTargetDescriptor[i]); - g_mainRenderTargetResource[i] = pBackBuffer; - } -} - -void CleanupRenderTarget() -{ - WaitForLastSubmittedFrame(); - - for (UINT i = 0; i < APP_NUM_BACK_BUFFERS; i++) - if (g_mainRenderTargetResource[i]) { g_mainRenderTargetResource[i]->Release(); g_mainRenderTargetResource[i] = nullptr; } -} - -void WaitForLastSubmittedFrame() -{ - FrameContext* frameCtx = &g_frameContext[g_frameIndex % APP_NUM_FRAMES_IN_FLIGHT]; - - UINT64 fenceValue = frameCtx->FenceValue; - if (fenceValue == 0) - return; // No fence was signaled - - frameCtx->FenceValue = 0; - if (g_fence->GetCompletedValue() >= fenceValue) - return; - - g_fence->SetEventOnCompletion(fenceValue, g_fenceEvent); - WaitForSingleObject(g_fenceEvent, INFINITE); -} - -FrameContext* WaitForNextFrameResources() -{ - UINT nextFrameIndex = g_frameIndex + 1; - g_frameIndex = nextFrameIndex; - - HANDLE waitableObjects[] = { g_hSwapChainWaitableObject, nullptr }; - DWORD numWaitableObjects = 1; - - FrameContext* frameCtx = &g_frameContext[nextFrameIndex % APP_NUM_FRAMES_IN_FLIGHT]; - UINT64 fenceValue = frameCtx->FenceValue; - if (fenceValue != 0) // means no fence was signaled - { - frameCtx->FenceValue = 0; - g_fence->SetEventOnCompletion(fenceValue, g_fenceEvent); - waitableObjects[1] = g_fenceEvent; - numWaitableObjects = 2; - } - - WaitForMultipleObjects(numWaitableObjects, waitableObjects, TRUE, INFINITE); - - return frameCtx; -} - -// Forward declare message handler from imgui_impl_win32.cpp -extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); - -// Win32 message handler -// You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. -// - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. -// - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. -// Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. -LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - if (ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam)) - return true; - - switch (msg) - { - case WM_SIZE: - if (g_pd3dDevice != nullptr && wParam != SIZE_MINIMIZED) - { - WaitForLastSubmittedFrame(); - CleanupRenderTarget(); - HRESULT result = g_pSwapChain->ResizeBuffers(0, (UINT)LOWORD(lParam), (UINT)HIWORD(lParam), DXGI_FORMAT_UNKNOWN, DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT); - assert(SUCCEEDED(result) && "Failed to resize swapchain."); - CreateRenderTarget(); - } - return 0; - case WM_SYSCOMMAND: - if ((wParam & 0xfff0) == SC_KEYMENU) // Disable ALT application menu - return 0; - break; - case WM_DESTROY: - ::PostQuitMessage(0); - return 0; - } - return ::DefWindowProcW(hWnd, msg, wParam, lParam); -} diff --git a/libs/imgui-1.92.1/examples/example_win32_directx9/build_win32.bat b/libs/imgui-1.92.1/examples/example_win32_directx9/build_win32.bat deleted file mode 100644 index ece5ea1..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_directx9/build_win32.bat +++ /dev/null @@ -1,8 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. -@set OUT_DIR=Debug -@set OUT_EXE=example_win32_directx9 -@set INCLUDES=/I..\.. /I..\..\backends /I "%DXSDK_DIR%/Include" -@set SOURCES=main.cpp ..\..\backends\imgui_impl_dx9.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp -@set LIBS=/LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d9.lib -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% diff --git a/libs/imgui-1.92.1/examples/example_win32_directx9/example_win32_directx9.vcxproj b/libs/imgui-1.92.1/examples/example_win32_directx9/example_win32_directx9.vcxproj deleted file mode 100644 index 8c3f995..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_directx9/example_win32_directx9.vcxproj +++ /dev/null @@ -1,176 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {4165A294-21F2-44CA-9B38-E3F935ABADF5} - example_win32_directx9 - 8.1 - - - - Application - true - Unicode - v140 - - - Application - true - Unicode - v140 - - - Application - false - true - Unicode - v140 - - - Application - false - true - Unicode - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - - Level4 - Disabled - ..\..;..\..\backends;%(AdditionalIncludeDirectories);$(DXSDK_DIR)Include; - /utf-8 %(AdditionalOptions) - - - true - $(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories) - d3d9.lib;%(AdditionalDependencies) - Console - - - - - Level4 - Disabled - ..\..;..\..\backends;%(AdditionalIncludeDirectories);$(DXSDK_DIR)Include; - /utf-8 %(AdditionalOptions) - - - true - $(DXSDK_DIR)/Lib/x64;%(AdditionalLibraryDirectories) - d3d9.lib;%(AdditionalDependencies) - Console - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%(AdditionalIncludeDirectories);$(DXSDK_DIR)Include; - false - /utf-8 %(AdditionalOptions) - - - true - true - true - $(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories) - d3d9.lib;%(AdditionalDependencies) - Console - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%(AdditionalIncludeDirectories);$(DXSDK_DIR)Include; - false - /utf-8 %(AdditionalOptions) - - - true - true - true - $(DXSDK_DIR)/Lib/x64;%(AdditionalLibraryDirectories) - d3d9.lib;%(AdditionalDependencies) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_win32_directx9/example_win32_directx9.vcxproj.filters b/libs/imgui-1.92.1/examples/example_win32_directx9/example_win32_directx9.vcxproj.filters deleted file mode 100644 index 5ed89d6..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_directx9/example_win32_directx9.vcxproj.filters +++ /dev/null @@ -1,64 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {a82cba23-9de0-45c2-b1e3-2eb1666702de} - - - - - sources - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - imgui - - - imgui - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - - imgui - - - imgui - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_win32_directx9/main.cpp b/libs/imgui-1.92.1/examples/example_win32_directx9/main.cpp deleted file mode 100644 index 430a2b4..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_directx9/main.cpp +++ /dev/null @@ -1,272 +0,0 @@ -// Dear ImGui: standalone example application for DirectX 9 - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -#include "imgui.h" -#include "imgui_impl_dx9.h" -#include "imgui_impl_win32.h" -#include -#include - -// Data -static LPDIRECT3D9 g_pD3D = nullptr; -static LPDIRECT3DDEVICE9 g_pd3dDevice = nullptr; -static bool g_DeviceLost = false; -static UINT g_ResizeWidth = 0, g_ResizeHeight = 0; -static D3DPRESENT_PARAMETERS g_d3dpp = {}; - -// Forward declarations of helper functions -bool CreateDeviceD3D(HWND hWnd); -void CleanupDeviceD3D(); -void ResetDevice(); -LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); - -// Main code -int main(int, char**) -{ - // Make process DPI aware and obtain main monitor scale - ImGui_ImplWin32_EnableDpiAwareness(); - float main_scale = ImGui_ImplWin32_GetDpiScaleForMonitor(::MonitorFromPoint(POINT{ 0, 0 }, MONITOR_DEFAULTTOPRIMARY)); - - // Create application window - WNDCLASSEXW wc = { sizeof(wc), CS_CLASSDC, WndProc, 0L, 0L, GetModuleHandle(nullptr), nullptr, nullptr, nullptr, nullptr, L"ImGui Example", nullptr }; - ::RegisterClassExW(&wc); - HWND hwnd = ::CreateWindowW(wc.lpszClassName, L"Dear ImGui DirectX9 Example", WS_OVERLAPPEDWINDOW, 100, 100, (int)(1280 * main_scale), (int)(800 * main_scale), nullptr, nullptr, wc.hInstance, nullptr); - - // Initialize Direct3D - if (!CreateDeviceD3D(hwnd)) - { - CleanupDeviceD3D(); - ::UnregisterClassW(wc.lpszClassName, wc.hInstance); - return 1; - } - - // Show the window - ::ShowWindow(hwnd, SW_SHOWDEFAULT); - ::UpdateWindow(hwnd); - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup scaling - ImGuiStyle& style = ImGui::GetStyle(); - style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again) - style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose) - - // Setup Platform/Renderer backends - ImGui_ImplWin32_Init(hwnd); - ImGui_ImplDX9_Init(g_pd3dDevice); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop - bool done = false; - while (!done) - { - // Poll and handle messages (inputs, window resize, etc.) - // See the WndProc() function below for our to dispatch events to the Win32 backend. - MSG msg; - while (::PeekMessage(&msg, nullptr, 0U, 0U, PM_REMOVE)) - { - ::TranslateMessage(&msg); - ::DispatchMessage(&msg); - if (msg.message == WM_QUIT) - done = true; - } - if (done) - break; - - // Handle lost D3D9 device - if (g_DeviceLost) - { - HRESULT hr = g_pd3dDevice->TestCooperativeLevel(); - if (hr == D3DERR_DEVICELOST) - { - ::Sleep(10); - continue; - } - if (hr == D3DERR_DEVICENOTRESET) - ResetDevice(); - g_DeviceLost = false; - } - - // Handle window resize (we don't resize directly in the WM_SIZE handler) - if (g_ResizeWidth != 0 && g_ResizeHeight != 0) - { - g_d3dpp.BackBufferWidth = g_ResizeWidth; - g_d3dpp.BackBufferHeight = g_ResizeHeight; - g_ResizeWidth = g_ResizeHeight = 0; - ResetDevice(); - } - - // Start the Dear ImGui frame - ImGui_ImplDX9_NewFrame(); - ImGui_ImplWin32_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::EndFrame(); - g_pd3dDevice->SetRenderState(D3DRS_ZENABLE, FALSE); - g_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE); - g_pd3dDevice->SetRenderState(D3DRS_SCISSORTESTENABLE, FALSE); - D3DCOLOR clear_col_dx = D3DCOLOR_RGBA((int)(clear_color.x*clear_color.w*255.0f), (int)(clear_color.y*clear_color.w*255.0f), (int)(clear_color.z*clear_color.w*255.0f), (int)(clear_color.w*255.0f)); - g_pd3dDevice->Clear(0, nullptr, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, clear_col_dx, 1.0f, 0); - if (g_pd3dDevice->BeginScene() >= 0) - { - ImGui::Render(); - ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData()); - g_pd3dDevice->EndScene(); - } - HRESULT result = g_pd3dDevice->Present(nullptr, nullptr, nullptr, nullptr); - if (result == D3DERR_DEVICELOST) - g_DeviceLost = true; - } - - // Cleanup - ImGui_ImplDX9_Shutdown(); - ImGui_ImplWin32_Shutdown(); - ImGui::DestroyContext(); - - CleanupDeviceD3D(); - ::DestroyWindow(hwnd); - ::UnregisterClassW(wc.lpszClassName, wc.hInstance); - - return 0; -} - -// Helper functions - -bool CreateDeviceD3D(HWND hWnd) -{ - if ((g_pD3D = Direct3DCreate9(D3D_SDK_VERSION)) == nullptr) - return false; - - // Create the D3DDevice - ZeroMemory(&g_d3dpp, sizeof(g_d3dpp)); - g_d3dpp.Windowed = TRUE; - g_d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; - g_d3dpp.BackBufferFormat = D3DFMT_UNKNOWN; // Need to use an explicit format with alpha if needing per-pixel alpha composition. - g_d3dpp.EnableAutoDepthStencil = TRUE; - g_d3dpp.AutoDepthStencilFormat = D3DFMT_D16; - g_d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_ONE; // Present with vsync - //g_d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE; // Present without vsync, maximum unthrottled framerate - if (g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &g_d3dpp, &g_pd3dDevice) < 0) - return false; - - return true; -} - -void CleanupDeviceD3D() -{ - if (g_pd3dDevice) { g_pd3dDevice->Release(); g_pd3dDevice = nullptr; } - if (g_pD3D) { g_pD3D->Release(); g_pD3D = nullptr; } -} - -void ResetDevice() -{ - ImGui_ImplDX9_InvalidateDeviceObjects(); - HRESULT hr = g_pd3dDevice->Reset(&g_d3dpp); - if (hr == D3DERR_INVALIDCALL) - IM_ASSERT(0); - ImGui_ImplDX9_CreateDeviceObjects(); -} - -// Forward declare message handler from imgui_impl_win32.cpp -extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); - -// Win32 message handler -// You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. -// - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. -// - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. -// Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. -LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - if (ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam)) - return true; - - switch (msg) - { - case WM_SIZE: - if (wParam == SIZE_MINIMIZED) - return 0; - g_ResizeWidth = (UINT)LOWORD(lParam); // Queue resize - g_ResizeHeight = (UINT)HIWORD(lParam); - return 0; - case WM_SYSCOMMAND: - if ((wParam & 0xfff0) == SC_KEYMENU) // Disable ALT application menu - return 0; - break; - case WM_DESTROY: - ::PostQuitMessage(0); - return 0; - } - return ::DefWindowProcW(hWnd, msg, wParam, lParam); -} diff --git a/libs/imgui-1.92.1/examples/example_win32_opengl3/build_mingw.bat b/libs/imgui-1.92.1/examples/example_win32_opengl3/build_mingw.bat deleted file mode 100644 index e9f804f..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_opengl3/build_mingw.bat +++ /dev/null @@ -1,8 +0,0 @@ -@REM Build for MINGW64 or 32 from MSYS2. -@set OUT_DIR=Debug -@set OUT_EXE=example_win32_opengl3 -@set INCLUDES=-I../.. -I../../backends -@set SOURCES=main.cpp ../../backends/imgui_impl_opengl3.cpp ../../backends/imgui_impl_win32.cpp ../../imgui*.cpp -@set LIBS=-lopengl32 -lgdi32 -ldwmapi -mkdir %OUT_DIR% -g++ -DUNICODE %INCLUDES% %SOURCES% -o %OUT_DIR%/%OUT_EXE%.exe --static -mwindows %LIBS% %LIBS% diff --git a/libs/imgui-1.92.1/examples/example_win32_opengl3/build_win32.bat b/libs/imgui-1.92.1/examples/example_win32_opengl3/build_win32.bat deleted file mode 100644 index 48df080..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_opengl3/build_win32.bat +++ /dev/null @@ -1,8 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. -@set OUT_DIR=Debug -@set OUT_EXE=example_win32_opengl3 -@set INCLUDES=/I..\.. /I..\..\backends -@set SOURCES=main.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp -@set LIBS=opengl32.lib -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% diff --git a/libs/imgui-1.92.1/examples/example_win32_opengl3/example_win32_opengl3.vcxproj b/libs/imgui-1.92.1/examples/example_win32_opengl3/example_win32_opengl3.vcxproj deleted file mode 100644 index 98fc38f..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_opengl3/example_win32_opengl3.vcxproj +++ /dev/null @@ -1,176 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {C624E5FF-D4FE-4D35-9164-B8A91864F98E} - example_win32_opengl2 - 8.1 - - - - Application - true - Unicode - v140 - - - Application - true - Unicode - v140 - - - Application - false - true - Unicode - v140 - - - Application - false - true - Unicode - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - - Level4 - Disabled - ..\..;..\..\backends; - /utf-8 %(AdditionalOptions) - - - true - %(AdditionalLibraryDirectories) - opengl32.lib;%(AdditionalDependencies) - Console - - - - - Level4 - Disabled - ..\..;..\..\backends; - /utf-8 %(AdditionalOptions) - - - true - %(AdditionalLibraryDirectories) - opengl32.lib;%(AdditionalDependencies) - Console - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends; - false - /utf-8 %(AdditionalOptions) - - - true - true - true - %(AdditionalLibraryDirectories) - opengl32.lib;%(AdditionalDependencies) - Console - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends; - false - /utf-8 %(AdditionalOptions) - - - true - true - true - %(AdditionalLibraryDirectories) - opengl32.lib;%(AdditionalDependencies) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_win32_opengl3/example_win32_opengl3.vcxproj.filters b/libs/imgui-1.92.1/examples/example_win32_opengl3/example_win32_opengl3.vcxproj.filters deleted file mode 100644 index 47ed299..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_opengl3/example_win32_opengl3.vcxproj.filters +++ /dev/null @@ -1,64 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {a82cba23-9de0-45c2-b1e3-2eb1666702de} - - - - - sources - - - imgui - - - imgui - - - imgui - - - imgui - - - sources - - - imgui - - - sources - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - sources - - - - - - sources - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_win32_opengl3/main.cpp b/libs/imgui-1.92.1/examples/example_win32_opengl3/main.cpp deleted file mode 100644 index 820248c..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_opengl3/main.cpp +++ /dev/null @@ -1,243 +0,0 @@ -// Dear ImGui: standalone example application for Win32 + OpenGL 3 - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// This is provided for completeness, however it is strongly recommended you use OpenGL with SDL or GLFW. - -#include "imgui.h" -#include "imgui_impl_opengl3.h" -#include "imgui_impl_win32.h" -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include -#include - -// Data stored per platform window -struct WGL_WindowData { HDC hDC; }; - -// Data -static HGLRC g_hRC; -static WGL_WindowData g_MainWindow; -static int g_Width; -static int g_Height; - -// Forward declarations of helper functions -bool CreateDeviceWGL(HWND hWnd, WGL_WindowData* data); -void CleanupDeviceWGL(HWND hWnd, WGL_WindowData* data); -void ResetDeviceWGL(); -LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); - -// Main code -int main(int, char**) -{ - // Create application window - //ImGui_ImplWin32_EnableDpiAwareness(); - WNDCLASSEXW wc = { sizeof(wc), CS_OWNDC, WndProc, 0L, 0L, GetModuleHandle(nullptr), nullptr, nullptr, nullptr, nullptr, L"ImGui Example", nullptr }; - ::RegisterClassExW(&wc); - HWND hwnd = ::CreateWindowW(wc.lpszClassName, L"Dear ImGui Win32+OpenGL3 Example", WS_OVERLAPPEDWINDOW, 100, 100, 1280, 800, nullptr, nullptr, wc.hInstance, nullptr); - - // Initialize OpenGL - if (!CreateDeviceWGL(hwnd, &g_MainWindow)) - { - CleanupDeviceWGL(hwnd, &g_MainWindow); - ::DestroyWindow(hwnd); - ::UnregisterClassW(wc.lpszClassName, wc.hInstance); - return 1; - } - wglMakeCurrent(g_MainWindow.hDC, g_hRC); - - // Show the window - ::ShowWindow(hwnd, SW_SHOWDEFAULT); - ::UpdateWindow(hwnd); - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsClassic(); - - // Setup Platform/Renderer backends - ImGui_ImplWin32_InitForOpenGL(hwnd); - ImGui_ImplOpenGL3_Init(); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop - bool done = false; - while (!done) - { - // Poll and handle messages (inputs, window resize, etc.) - // See the WndProc() function below for our to dispatch events to the Win32 backend. - MSG msg; - while (::PeekMessage(&msg, nullptr, 0U, 0U, PM_REMOVE)) - { - ::TranslateMessage(&msg); - ::DispatchMessage(&msg); - if (msg.message == WM_QUIT) - done = true; - } - if (done) - break; - if (::IsIconic(hwnd)) - { - ::Sleep(10); - continue; - } - - // Start the Dear ImGui frame - ImGui_ImplOpenGL3_NewFrame(); - ImGui_ImplWin32_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - glViewport(0, 0, g_Width, g_Height); - glClearColor(clear_color.x, clear_color.y, clear_color.z, clear_color.w); - glClear(GL_COLOR_BUFFER_BIT); - ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData()); - - // Present - ::SwapBuffers(g_MainWindow.hDC); - } - - ImGui_ImplOpenGL3_Shutdown(); - ImGui_ImplWin32_Shutdown(); - ImGui::DestroyContext(); - - CleanupDeviceWGL(hwnd, &g_MainWindow); - wglDeleteContext(g_hRC); - ::DestroyWindow(hwnd); - ::UnregisterClassW(wc.lpszClassName, wc.hInstance); - - return 0; -} - -// Helper functions -bool CreateDeviceWGL(HWND hWnd, WGL_WindowData* data) -{ - HDC hDc = ::GetDC(hWnd); - PIXELFORMATDESCRIPTOR pfd = { 0 }; - pfd.nSize = sizeof(pfd); - pfd.nVersion = 1; - pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; - pfd.iPixelType = PFD_TYPE_RGBA; - pfd.cColorBits = 32; - - const int pf = ::ChoosePixelFormat(hDc, &pfd); - if (pf == 0) - return false; - if (::SetPixelFormat(hDc, pf, &pfd) == FALSE) - return false; - ::ReleaseDC(hWnd, hDc); - - data->hDC = ::GetDC(hWnd); - if (!g_hRC) - g_hRC = wglCreateContext(data->hDC); - return true; -} - -void CleanupDeviceWGL(HWND hWnd, WGL_WindowData* data) -{ - wglMakeCurrent(nullptr, nullptr); - ::ReleaseDC(hWnd, data->hDC); -} - -// Forward declare message handler from imgui_impl_win32.cpp -extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); - -// Win32 message handler -// You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. -// - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. -// - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. -// Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. -LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - if (ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam)) - return true; - - switch (msg) - { - case WM_SIZE: - if (wParam != SIZE_MINIMIZED) - { - g_Width = LOWORD(lParam); - g_Height = HIWORD(lParam); - } - return 0; - case WM_SYSCOMMAND: - if ((wParam & 0xfff0) == SC_KEYMENU) // Disable ALT application menu - return 0; - break; - case WM_DESTROY: - ::PostQuitMessage(0); - return 0; - } - return ::DefWindowProcW(hWnd, msg, wParam, lParam); -} diff --git a/libs/imgui-1.92.1/examples/example_win32_vulkan/build_win32.bat b/libs/imgui-1.92.1/examples/example_win32_vulkan/build_win32.bat deleted file mode 100644 index 4bfb7ca..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_vulkan/build_win32.bat +++ /dev/null @@ -1,9 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. -@set OUT_DIR=Debug -@set OUT_EXE=example_win32_vulkan -@set INCLUDES=/I..\.. /I..\..\backends /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I %VULKAN_SDK%\include -@set SOURCES=main.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp -@set LIBS=/libpath:%VULKAN_SDK%\lib32 vulkan-1.lib - -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% diff --git a/libs/imgui-1.92.1/examples/example_win32_vulkan/build_win64.bat b/libs/imgui-1.92.1/examples/example_win32_vulkan/build_win64.bat deleted file mode 100644 index f8c66f7..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_vulkan/build_win64.bat +++ /dev/null @@ -1,9 +0,0 @@ -@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. -@set OUT_DIR=Debug -@set OUT_EXE=example_win32_vulkan -@set INCLUDES=/I..\.. /I..\..\backends /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I %VULKAN_SDK%\include -@set SOURCES=main.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp -@set LIBS=/libpath:%VULKAN_SDK%\lib vulkan-1.lib - -mkdir %OUT_DIR% -cl /nologo /Zi /MD /utf-8 %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% diff --git a/libs/imgui-1.92.1/examples/example_win32_vulkan/example_win32_vulkan.vcxproj b/libs/imgui-1.92.1/examples/example_win32_vulkan/example_win32_vulkan.vcxproj deleted file mode 100644 index dab8afd..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_vulkan/example_win32_vulkan.vcxproj +++ /dev/null @@ -1,178 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88} - example_win32_directx11 - - - - Application - true - Unicode - v140 - - - Application - true - Unicode - v140 - - - Application - false - true - Unicode - v140 - - - Application - false - true - Unicode - v140 - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - - Level4 - Disabled - ..\..;..\..\backends;%VULKAN_SDK%\include;%(AdditionalIncludeDirectories) - _UNICODE;UNICODE;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - vulkan-1.lib;%(AdditionalDependencies) - %VULKAN_SDK%\lib32;%(AdditionalLibraryDirectories) - Console - - - - - Level4 - Disabled - ..\..;..\..\backends;%VULKAN_SDK%\include;%(AdditionalIncludeDirectories) - _UNICODE;UNICODE;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - vulkan-1.lib;%(AdditionalDependencies) - %VULKAN_SDK%\lib;%(AdditionalLibraryDirectories) - Console - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%VULKAN_SDK%\include;%(AdditionalIncludeDirectories) - _UNICODE;UNICODE;%(PreprocessorDefinitions) - false - /utf-8 %(AdditionalOptions) - - - true - true - true - vulkan-1.lib;%(AdditionalDependencies) - %VULKAN_SDK%\lib32;%(AdditionalLibraryDirectories) - Console - - - - - Level4 - MaxSpeed - true - true - ..\..;..\..\backends;%VULKAN_SDK%\include;%(AdditionalIncludeDirectories) - _UNICODE;UNICODE;%(PreprocessorDefinitions) - /utf-8 %(AdditionalOptions) - - - true - true - true - vulkan-1.lib;%(AdditionalDependencies) - %VULKAN_SDK%\lib;%(AdditionalLibraryDirectories) - Console - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_win32_vulkan/example_win32_vulkan.vcxproj.filters b/libs/imgui-1.92.1/examples/example_win32_vulkan/example_win32_vulkan.vcxproj.filters deleted file mode 100644 index c91a958..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_vulkan/example_win32_vulkan.vcxproj.filters +++ /dev/null @@ -1,63 +0,0 @@ - - - - - {0587d7a3-f2ce-4d56-b84f-a0005d3bfce6} - - - {08e36723-ce4f-4cff-9662-c40801cf1acf} - - - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - - - imgui - - - sources - - - imgui - - - imgui - - - imgui - - - sources - - - sources - - - imgui - - - - - - imgui - - - imgui - - - \ No newline at end of file diff --git a/libs/imgui-1.92.1/examples/example_win32_vulkan/main.cpp b/libs/imgui-1.92.1/examples/example_win32_vulkan/main.cpp deleted file mode 100644 index a98f16f..0000000 --- a/libs/imgui-1.92.1/examples/example_win32_vulkan/main.cpp +++ /dev/null @@ -1,559 +0,0 @@ -// Dear ImGui: standalone example application for Win32 + Vulkan - -// Learn about Dear ImGui: -// - FAQ https://dearimgui.com/faq -// - Getting Started https://dearimgui.com/getting-started -// - Documentation https://dearimgui.com/docs (same as your local docs/ folder). -// - Introduction, links and more at the top of imgui.cpp - -// Important note to the reader who wish to integrate imgui_impl_vulkan.cpp/.h in their own engine/app. -// - Common ImGui_ImplVulkan_XXX functions and structures are used to interface with imgui_impl_vulkan.cpp/.h. -// You will use those if you want to use this rendering backend in your engine/app. -// - Helper ImGui_ImplVulkanH_XXX functions and structures are only used by this example (main.cpp) and by -// the backend itself (imgui_impl_vulkan.cpp), but should PROBABLY NOT be used by your own engine/app code. -// Read comments in imgui_impl_vulkan.h. - -#include "imgui.h" -#include "imgui_impl_win32.h" -#define VK_USE_PLATFORM_WIN32_KHR -#include "imgui_impl_vulkan.h" -#include -#include // printf, fprintf -#include // abort -#include - -// Volk headers -#ifdef IMGUI_IMPL_VULKAN_USE_VOLK -#define VOLK_IMPLEMENTATION -#include -#endif - -//#define APP_USE_UNLIMITED_FRAME_RATE -#ifdef _DEBUG -#define APP_USE_VULKAN_DEBUG_REPORT -#endif - -// Data -static VkAllocationCallbacks* g_Allocator = nullptr; -static VkInstance g_Instance = VK_NULL_HANDLE; -static VkPhysicalDevice g_PhysicalDevice = VK_NULL_HANDLE; -static VkDevice g_Device = VK_NULL_HANDLE; -static uint32_t g_QueueFamily = (uint32_t)-1; -static VkQueue g_Queue = VK_NULL_HANDLE; -static VkDebugReportCallbackEXT g_DebugReport = VK_NULL_HANDLE; -static VkPipelineCache g_PipelineCache = VK_NULL_HANDLE; -static VkDescriptorPool g_DescriptorPool = VK_NULL_HANDLE; - -static ImGui_ImplVulkanH_Window g_MainWindowData; -static uint32_t g_MinImageCount = 2; -static bool g_SwapChainRebuild = false; - -static void check_vk_result(VkResult err) -{ - if (err == VK_SUCCESS) - return; - fprintf(stderr, "[vulkan] Error: VkResult = %d\n", err); - if (err < 0) - abort(); -} - -#ifdef APP_USE_VULKAN_DEBUG_REPORT -static VKAPI_ATTR VkBool32 VKAPI_CALL debug_report(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, void* pUserData) -{ - (void)flags; (void)object; (void)location; (void)messageCode; (void)pUserData; (void)pLayerPrefix; // Unused arguments - fprintf(stderr, "[vulkan] Debug report from ObjectType: %i\nMessage: %s\n\n", objectType, pMessage); - return VK_FALSE; -} -#endif // APP_USE_VULKAN_DEBUG_REPORT - -static bool IsExtensionAvailable(const ImVector& properties, const char* extension) -{ - for (const VkExtensionProperties& p : properties) - if (strcmp(p.extensionName, extension) == 0) - return true; - return false; -} - -static void SetupVulkan(ImVector instance_extensions) -{ - VkResult err; -#ifdef IMGUI_IMPL_VULKAN_USE_VOLK - volkInitialize(); -#endif - - // Create Vulkan Instance - { - VkInstanceCreateInfo create_info = {}; - create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO; - - // Enumerate available extensions - uint32_t properties_count; - ImVector properties; - vkEnumerateInstanceExtensionProperties(nullptr, &properties_count, nullptr); - properties.resize(properties_count); - err = vkEnumerateInstanceExtensionProperties(nullptr, &properties_count, properties.Data); - check_vk_result(err); - - // Enable required extensions - if (IsExtensionAvailable(properties, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)) - instance_extensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); -#ifdef VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME - if (IsExtensionAvailable(properties, VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME)) - { - instance_extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME); - create_info.flags |= VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR; - } -#endif - - // Enabling validation layers -#ifdef APP_USE_VULKAN_DEBUG_REPORT - const char* layers[] = { "VK_LAYER_KHRONOS_validation" }; - create_info.enabledLayerCount = 1; - create_info.ppEnabledLayerNames = layers; - instance_extensions.push_back("VK_EXT_debug_report"); -#endif - - // Create Vulkan Instance - create_info.enabledExtensionCount = (uint32_t)instance_extensions.Size; - create_info.ppEnabledExtensionNames = instance_extensions.Data; - err = vkCreateInstance(&create_info, g_Allocator, &g_Instance); - check_vk_result(err); -#ifdef IMGUI_IMPL_VULKAN_USE_VOLK - volkLoadInstance(g_Instance); -#endif - - // Setup the debug report callback -#ifdef APP_USE_VULKAN_DEBUG_REPORT - auto f_vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkCreateDebugReportCallbackEXT"); - IM_ASSERT(f_vkCreateDebugReportCallbackEXT != nullptr); - VkDebugReportCallbackCreateInfoEXT debug_report_ci = {}; - debug_report_ci.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT; - debug_report_ci.flags = VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_WARNING_BIT_EXT | VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT; - debug_report_ci.pfnCallback = debug_report; - debug_report_ci.pUserData = nullptr; - err = f_vkCreateDebugReportCallbackEXT(g_Instance, &debug_report_ci, g_Allocator, &g_DebugReport); - check_vk_result(err); -#endif - } - - // Select Physical Device (GPU) - g_PhysicalDevice = ImGui_ImplVulkanH_SelectPhysicalDevice(g_Instance); - IM_ASSERT(g_PhysicalDevice != VK_NULL_HANDLE); - - // Select graphics queue family - g_QueueFamily = ImGui_ImplVulkanH_SelectQueueFamilyIndex(g_PhysicalDevice); - IM_ASSERT(g_QueueFamily != (uint32_t)-1); - - // Create Logical Device (with 1 queue) - { - ImVector device_extensions; - device_extensions.push_back("VK_KHR_swapchain"); - - // Enumerate physical device extension - uint32_t properties_count; - ImVector properties; - vkEnumerateDeviceExtensionProperties(g_PhysicalDevice, nullptr, &properties_count, nullptr); - properties.resize(properties_count); - vkEnumerateDeviceExtensionProperties(g_PhysicalDevice, nullptr, &properties_count, properties.Data); -#ifdef VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME - if (IsExtensionAvailable(properties, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME)) - device_extensions.push_back(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME); -#endif - - const float queue_priority[] = { 1.0f }; - VkDeviceQueueCreateInfo queue_info[1] = {}; - queue_info[0].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO; - queue_info[0].queueFamilyIndex = g_QueueFamily; - queue_info[0].queueCount = 1; - queue_info[0].pQueuePriorities = queue_priority; - VkDeviceCreateInfo create_info = {}; - create_info.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO; - create_info.queueCreateInfoCount = sizeof(queue_info) / sizeof(queue_info[0]); - create_info.pQueueCreateInfos = queue_info; - create_info.enabledExtensionCount = (uint32_t)device_extensions.Size; - create_info.ppEnabledExtensionNames = device_extensions.Data; - err = vkCreateDevice(g_PhysicalDevice, &create_info, g_Allocator, &g_Device); - check_vk_result(err); - vkGetDeviceQueue(g_Device, g_QueueFamily, 0, &g_Queue); - } - - // Create Descriptor Pool - // If you wish to load e.g. additional textures you may need to alter pools sizes and maxSets. - { - VkDescriptorPoolSize pool_sizes[] = - { - { VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE }, - }; - VkDescriptorPoolCreateInfo pool_info = {}; - pool_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO; - pool_info.flags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT; - pool_info.maxSets = 0; - for (VkDescriptorPoolSize& pool_size : pool_sizes) - pool_info.maxSets += pool_size.descriptorCount; - pool_info.poolSizeCount = (uint32_t)IM_ARRAYSIZE(pool_sizes); - pool_info.pPoolSizes = pool_sizes; - err = vkCreateDescriptorPool(g_Device, &pool_info, g_Allocator, &g_DescriptorPool); - check_vk_result(err); - } -} - -// All the ImGui_ImplVulkanH_XXX structures/functions are optional helpers used by the demo. -// Your real engine/app may not use them. -static void SetupVulkanWindow(ImGui_ImplVulkanH_Window* wd, VkSurfaceKHR surface, int width, int height) -{ - wd->Surface = surface; - - // Check for WSI support - VkBool32 res; - vkGetPhysicalDeviceSurfaceSupportKHR(g_PhysicalDevice, g_QueueFamily, wd->Surface, &res); - if (res != VK_TRUE) - { - fprintf(stderr, "Error no WSI support on physical device 0\n"); - exit(-1); - } - - // Select Surface Format - const VkFormat requestSurfaceImageFormat[] = { VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_R8G8B8_UNORM }; - const VkColorSpaceKHR requestSurfaceColorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR; - wd->SurfaceFormat = ImGui_ImplVulkanH_SelectSurfaceFormat(g_PhysicalDevice, wd->Surface, requestSurfaceImageFormat, (size_t)IM_ARRAYSIZE(requestSurfaceImageFormat), requestSurfaceColorSpace); - - // Select Present Mode -#ifdef APP_USE_UNLIMITED_FRAME_RATE - VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_FIFO_KHR }; -#else - VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_FIFO_KHR }; -#endif - wd->PresentMode = ImGui_ImplVulkanH_SelectPresentMode(g_PhysicalDevice, wd->Surface, &present_modes[0], IM_ARRAYSIZE(present_modes)); - //printf("[vulkan] Selected PresentMode = %d\n", wd->PresentMode); - - // Create SwapChain, RenderPass, Framebuffer, etc. - IM_ASSERT(g_MinImageCount >= 2); - ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, wd, g_QueueFamily, g_Allocator, width, height, g_MinImageCount); -} - -static void CleanupVulkan() -{ - vkDestroyDescriptorPool(g_Device, g_DescriptorPool, g_Allocator); - -#ifdef APP_USE_VULKAN_DEBUG_REPORT - // Remove the debug report callback - auto f_vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkDestroyDebugReportCallbackEXT"); - f_vkDestroyDebugReportCallbackEXT(g_Instance, g_DebugReport, g_Allocator); -#endif // APP_USE_VULKAN_DEBUG_REPORT - - vkDestroyDevice(g_Device, g_Allocator); - vkDestroyInstance(g_Instance, g_Allocator); -} - -static void CleanupVulkanWindow() -{ - ImGui_ImplVulkanH_DestroyWindow(g_Instance, g_Device, &g_MainWindowData, g_Allocator); -} - -static void FrameRender(ImGui_ImplVulkanH_Window* wd, ImDrawData* draw_data) -{ - VkSemaphore image_acquired_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore; - VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore; - VkResult err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex); - if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR) - g_SwapChainRebuild = true; - if (err == VK_ERROR_OUT_OF_DATE_KHR) - return; - if (err != VK_SUBOPTIMAL_KHR) - check_vk_result(err); - - ImGui_ImplVulkanH_Frame* fd = &wd->Frames[wd->FrameIndex]; - { - err = vkWaitForFences(g_Device, 1, &fd->Fence, VK_TRUE, UINT64_MAX); // wait indefinitely instead of periodically checking - check_vk_result(err); - - err = vkResetFences(g_Device, 1, &fd->Fence); - check_vk_result(err); - } - { - err = vkResetCommandPool(g_Device, fd->CommandPool, 0); - check_vk_result(err); - VkCommandBufferBeginInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; - info.flags |= VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT; - err = vkBeginCommandBuffer(fd->CommandBuffer, &info); - check_vk_result(err); - } - { - VkRenderPassBeginInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO; - info.renderPass = wd->RenderPass; - info.framebuffer = fd->Framebuffer; - info.renderArea.extent.width = wd->Width; - info.renderArea.extent.height = wd->Height; - info.clearValueCount = 1; - info.pClearValues = &wd->ClearValue; - vkCmdBeginRenderPass(fd->CommandBuffer, &info, VK_SUBPASS_CONTENTS_INLINE); - } - - // Record dear imgui primitives into command buffer - ImGui_ImplVulkan_RenderDrawData(draw_data, fd->CommandBuffer); - - // Submit command buffer - vkCmdEndRenderPass(fd->CommandBuffer); - { - VkPipelineStageFlags wait_stage = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - VkSubmitInfo info = {}; - info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; - info.waitSemaphoreCount = 1; - info.pWaitSemaphores = &image_acquired_semaphore; - info.pWaitDstStageMask = &wait_stage; - info.commandBufferCount = 1; - info.pCommandBuffers = &fd->CommandBuffer; - info.signalSemaphoreCount = 1; - info.pSignalSemaphores = &render_complete_semaphore; - - err = vkEndCommandBuffer(fd->CommandBuffer); - check_vk_result(err); - err = vkQueueSubmit(g_Queue, 1, &info, fd->Fence); - check_vk_result(err); - } -} - -static void FramePresent(ImGui_ImplVulkanH_Window* wd) -{ - if (g_SwapChainRebuild) - return; - VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore; - VkPresentInfoKHR info = {}; - info.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR; - info.waitSemaphoreCount = 1; - info.pWaitSemaphores = &render_complete_semaphore; - info.swapchainCount = 1; - info.pSwapchains = &wd->Swapchain; - info.pImageIndices = &wd->FrameIndex; - VkResult err = vkQueuePresentKHR(g_Queue, &info); - if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR) - g_SwapChainRebuild = true; - if (err == VK_ERROR_OUT_OF_DATE_KHR) - return; - if (err != VK_SUBOPTIMAL_KHR) - check_vk_result(err); - wd->SemaphoreIndex = (wd->SemaphoreIndex + 1) % wd->SemaphoreCount; // Now we can use the next set of semaphores -} - -LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); - -// Main code -int main(int, char**) -{ - // Create application window - //ImGui_ImplWin32_EnableDpiAwareness(); - WNDCLASSEXW wc = { sizeof(wc), CS_CLASSDC, WndProc, 0L, 0L, GetModuleHandle(nullptr), nullptr, nullptr, nullptr, nullptr, L"ImGui Example", nullptr }; - ::RegisterClassExW(&wc); - HWND hwnd = ::CreateWindowW(wc.lpszClassName, L"Dear ImGui Win32+Vulkan Example", WS_OVERLAPPEDWINDOW, 100, 100, 1280, 800, nullptr, nullptr, wc.hInstance, nullptr); - - ImVector extensions; - extensions.push_back("VK_KHR_surface"); - extensions.push_back("VK_KHR_win32_surface"); - SetupVulkan(extensions); - - // Create Window Surface - VkSurfaceKHR surface; - VkResult err; - VkWin32SurfaceCreateInfoKHR createInfo = {}; - createInfo.sType = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR; - createInfo.hwnd = hwnd; - createInfo.hinstance = ::GetModuleHandle(nullptr); - if (vkCreateWin32SurfaceKHR(g_Instance, &createInfo, nullptr, &surface) != VK_SUCCESS) - { - printf("Failed to create Vulkan surface.\n"); - return 1; - } - - // Show the window - // FIXME: Retrieve client size from window itself. - ImGui_ImplVulkanH_Window* wd = &g_MainWindowData; - SetupVulkanWindow(wd, surface, 1280, 800); - ::ShowWindow(hwnd, SW_SHOWDEFAULT); - ::UpdateWindow(hwnd); - - // Setup Dear ImGui context - IMGUI_CHECKVERSION(); - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls - - // Setup Dear ImGui style - ImGui::StyleColorsDark(); - //ImGui::StyleColorsLight(); - - // Setup Platform/Renderer backends - ImGui_ImplWin32_Init(hwnd); - ImGui_ImplVulkan_InitInfo init_info = {}; - //init_info.ApiVersion = VK_API_VERSION_1_3; // Pass in your value of VkApplicationInfo::apiVersion, otherwise will default to header version. - init_info.Instance = g_Instance; - init_info.PhysicalDevice = g_PhysicalDevice; - init_info.Device = g_Device; - init_info.QueueFamily = g_QueueFamily; - init_info.Queue = g_Queue; - init_info.PipelineCache = g_PipelineCache; - init_info.DescriptorPool = g_DescriptorPool; - init_info.RenderPass = wd->RenderPass; - init_info.Subpass = 0; - init_info.MinImageCount = g_MinImageCount; - init_info.ImageCount = wd->ImageCount; - init_info.MSAASamples = VK_SAMPLE_COUNT_1_BIT; - init_info.Allocator = g_Allocator; - init_info.CheckVkResultFn = check_vk_result; - ImGui_ImplVulkan_Init(&init_info); - - // Load Fonts - // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them. - // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple. - // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit). - // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering. - // - Read 'docs/FONTS.md' for more instructions and details. - // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ ! - //style.FontSizeBase = 20.0f; - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf"); - //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf"); - //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf"); - //IM_ASSERT(font != nullptr); - - // Our state - bool show_demo_window = true; - bool show_another_window = false; - ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - - // Main loop - bool done = false; - while (!done) - { - // Poll and handle messages (inputs, window resize, etc.) - // See the WndProc() function below for our to dispatch events to the Win32 backend. - MSG msg; - while (::PeekMessage(&msg, nullptr, 0U, 0U, PM_REMOVE)) - { - ::TranslateMessage(&msg); - ::DispatchMessage(&msg); - if (msg.message == WM_QUIT) - done = true; - } - if (done) - break; - - // Start the Dear ImGui frame - ImGui_ImplVulkan_NewFrame(); - ImGui_ImplWin32_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - ImDrawData* draw_data = ImGui::GetDrawData(); - const bool is_minimized = (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f); - if (!is_minimized) - { - wd->ClearValue.color.float32[0] = clear_color.x * clear_color.w; - wd->ClearValue.color.float32[1] = clear_color.y * clear_color.w; - wd->ClearValue.color.float32[2] = clear_color.z * clear_color.w; - wd->ClearValue.color.float32[3] = clear_color.w; - FrameRender(wd, draw_data); - FramePresent(wd); - } - } - - // Cleanup - err = vkDeviceWaitIdle(g_Device); - check_vk_result(err); - ImGui_ImplVulkan_Shutdown(); - ImGui_ImplWin32_Shutdown(); - ImGui::DestroyContext(); - - CleanupVulkanWindow(); - CleanupVulkan(); - - ::DestroyWindow(hwnd); - ::UnregisterClassW(wc.lpszClassName, wc.hInstance); - - return 0; -} - -// Helper functions - -// Forward declare message handler from imgui_impl_win32.cpp -extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); - -// Win32 message handler -// You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. -// - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. -// - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. -// Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. -LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - if (ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam)) - return true; - - switch (msg) - { - case WM_SIZE: - if (g_Device != VK_NULL_HANDLE && wParam != SIZE_MINIMIZED) - { - // Resize swap chain - int fb_width = (UINT)LOWORD(lParam); - int fb_height = (UINT)HIWORD(lParam); - if (fb_width > 0 && fb_height > 0 && (g_SwapChainRebuild || g_MainWindowData.Width != fb_width || g_MainWindowData.Height != fb_height)) - { - ImGui_ImplVulkan_SetMinImageCount(g_MinImageCount); - ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, &g_MainWindowData, g_QueueFamily, g_Allocator, fb_width, fb_height, g_MinImageCount); - g_MainWindowData.FrameIndex = 0; - g_SwapChainRebuild = false; - } - } - return 0; - case WM_SYSCOMMAND: - if ((wParam & 0xfff0) == SC_KEYMENU) // Disable ALT application menu - return 0; - break; - case WM_DESTROY: - ::PostQuitMessage(0); - return 0; - } - return ::DefWindowProcW(hWnd, msg, wParam, lParam); -} diff --git a/libs/imgui-1.92.1/examples/imgui_examples.sln b/libs/imgui-1.92.1/examples/imgui_examples.sln deleted file mode 100644 index cf1c5ad..0000000 --- a/libs/imgui-1.92.1/examples/imgui_examples.sln +++ /dev/null @@ -1,201 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.2.32616.157 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_win32_directx9", "example_win32_directx9\example_win32_directx9.vcxproj", "{4165A294-21F2-44CA-9B38-E3F935ABADF5}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_win32_directx10", "example_win32_directx10\example_win32_directx10.vcxproj", "{345A953E-A004-4648-B442-DC5F9F11068C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_win32_directx11", "example_win32_directx11\example_win32_directx11.vcxproj", "{9F316E83-5AE5-4939-A723-305A94F48005}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_win32_directx12", "example_win32_directx12\example_win32_directx12.vcxproj", "{B4CF9797-519D-4AFE-A8F4-5141A6B521D3}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_glfw_opengl2", "example_glfw_opengl2\example_glfw_opengl2.vcxproj", "{9CDA7840-B7A5-496D-A527-E95571496D18}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_glfw_opengl3", "example_glfw_opengl3\example_glfw_opengl3.vcxproj", "{4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_glfw_vulkan", "example_glfw_vulkan\example_glfw_vulkan.vcxproj", "{57E2DF5A-6FC8-45BB-99DD-91A18C646E80}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl2_directx11", "example_sdl2_directx11\example_sdl2_directx11.vcxproj", "{9E1987E3-1F19-45CA-B9C9-D31E791836D8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl2_opengl2", "example_sdl2_opengl2\example_sdl2_opengl2.vcxproj", "{2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl2_opengl3", "example_sdl2_opengl3\example_sdl2_opengl3.vcxproj", "{BBAEB705-1669-40F3-8567-04CF6A991F4C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl2_vulkan", "example_sdl2_vulkan\example_sdl2_vulkan.vcxproj", "{BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_win32_opengl3", "example_win32_opengl3\example_win32_opengl3.vcxproj", "{C624E5FF-D4FE-4D35-9164-B8A91864F98E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl2_sdlrenderer2", "example_sdl2_sdlrenderer2\example_sdl2_sdlrenderer2.vcxproj", "{0C0B2BEA-311F-473C-9652-87923EF639E3}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl3_opengl3", "example_sdl3_opengl3\example_sdl3_opengl3.vcxproj", "{84AAA301-84FE-428B-9E3E-817BC8123C0C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl3_sdlrenderer3", "example_sdl3_sdlrenderer3\example_sdl3_sdlrenderer3.vcxproj", "{C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl3_vulkan", "example_sdl3_vulkan\example_sdl3_vulkan.vcxproj", "{663A7E89-1E42-4222-921C-177F5B5910DF}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_win32_vulkan", "example_win32_vulkan\example_win32_vulkan.vcxproj", "{0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl3_sdlgpu3", "example_sdl3_sdlgpu3\example_sdl3_sdlgpu3.vcxproj", "{C22CB6F8-39A5-4DDA-90ED-4ACA4E81E1E5}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4165A294-21F2-44CA-9B38-E3F935ABADF5}.Debug|Win32.ActiveCfg = Debug|Win32 - {4165A294-21F2-44CA-9B38-E3F935ABADF5}.Debug|Win32.Build.0 = Debug|Win32 - {4165A294-21F2-44CA-9B38-E3F935ABADF5}.Debug|x64.ActiveCfg = Debug|x64 - {4165A294-21F2-44CA-9B38-E3F935ABADF5}.Debug|x64.Build.0 = Debug|x64 - {4165A294-21F2-44CA-9B38-E3F935ABADF5}.Release|Win32.ActiveCfg = Release|Win32 - {4165A294-21F2-44CA-9B38-E3F935ABADF5}.Release|Win32.Build.0 = Release|Win32 - {4165A294-21F2-44CA-9B38-E3F935ABADF5}.Release|x64.ActiveCfg = Release|x64 - {4165A294-21F2-44CA-9B38-E3F935ABADF5}.Release|x64.Build.0 = Release|x64 - {345A953E-A004-4648-B442-DC5F9F11068C}.Debug|Win32.ActiveCfg = Debug|Win32 - {345A953E-A004-4648-B442-DC5F9F11068C}.Debug|Win32.Build.0 = Debug|Win32 - {345A953E-A004-4648-B442-DC5F9F11068C}.Debug|x64.ActiveCfg = Debug|x64 - {345A953E-A004-4648-B442-DC5F9F11068C}.Debug|x64.Build.0 = Debug|x64 - {345A953E-A004-4648-B442-DC5F9F11068C}.Release|Win32.ActiveCfg = Release|Win32 - {345A953E-A004-4648-B442-DC5F9F11068C}.Release|Win32.Build.0 = Release|Win32 - {345A953E-A004-4648-B442-DC5F9F11068C}.Release|x64.ActiveCfg = Release|x64 - {345A953E-A004-4648-B442-DC5F9F11068C}.Release|x64.Build.0 = Release|x64 - {9F316E83-5AE5-4939-A723-305A94F48005}.Debug|Win32.ActiveCfg = Debug|Win32 - {9F316E83-5AE5-4939-A723-305A94F48005}.Debug|Win32.Build.0 = Debug|Win32 - {9F316E83-5AE5-4939-A723-305A94F48005}.Debug|x64.ActiveCfg = Debug|x64 - {9F316E83-5AE5-4939-A723-305A94F48005}.Debug|x64.Build.0 = Debug|x64 - {9F316E83-5AE5-4939-A723-305A94F48005}.Release|Win32.ActiveCfg = Release|Win32 - {9F316E83-5AE5-4939-A723-305A94F48005}.Release|Win32.Build.0 = Release|Win32 - {9F316E83-5AE5-4939-A723-305A94F48005}.Release|x64.ActiveCfg = Release|x64 - {9F316E83-5AE5-4939-A723-305A94F48005}.Release|x64.Build.0 = Release|x64 - {B4CF9797-519D-4AFE-A8F4-5141A6B521D3}.Debug|Win32.ActiveCfg = Debug|Win32 - {B4CF9797-519D-4AFE-A8F4-5141A6B521D3}.Debug|Win32.Build.0 = Debug|Win32 - {B4CF9797-519D-4AFE-A8F4-5141A6B521D3}.Debug|x64.ActiveCfg = Debug|x64 - {B4CF9797-519D-4AFE-A8F4-5141A6B521D3}.Debug|x64.Build.0 = Debug|x64 - {B4CF9797-519D-4AFE-A8F4-5141A6B521D3}.Release|Win32.ActiveCfg = Release|Win32 - {B4CF9797-519D-4AFE-A8F4-5141A6B521D3}.Release|Win32.Build.0 = Release|Win32 - {B4CF9797-519D-4AFE-A8F4-5141A6B521D3}.Release|x64.ActiveCfg = Release|x64 - {B4CF9797-519D-4AFE-A8F4-5141A6B521D3}.Release|x64.Build.0 = Release|x64 - {9CDA7840-B7A5-496D-A527-E95571496D18}.Debug|Win32.ActiveCfg = Debug|Win32 - {9CDA7840-B7A5-496D-A527-E95571496D18}.Debug|Win32.Build.0 = Debug|Win32 - {9CDA7840-B7A5-496D-A527-E95571496D18}.Debug|x64.ActiveCfg = Debug|x64 - {9CDA7840-B7A5-496D-A527-E95571496D18}.Debug|x64.Build.0 = Debug|x64 - {9CDA7840-B7A5-496D-A527-E95571496D18}.Release|Win32.ActiveCfg = Release|Win32 - {9CDA7840-B7A5-496D-A527-E95571496D18}.Release|Win32.Build.0 = Release|Win32 - {9CDA7840-B7A5-496D-A527-E95571496D18}.Release|x64.ActiveCfg = Release|x64 - {9CDA7840-B7A5-496D-A527-E95571496D18}.Release|x64.Build.0 = Release|x64 - {4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}.Debug|Win32.ActiveCfg = Debug|Win32 - {4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}.Debug|Win32.Build.0 = Debug|Win32 - {4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}.Debug|x64.ActiveCfg = Debug|x64 - {4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}.Debug|x64.Build.0 = Debug|x64 - {4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}.Release|Win32.ActiveCfg = Release|Win32 - {4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}.Release|Win32.Build.0 = Release|Win32 - {4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}.Release|x64.ActiveCfg = Release|x64 - {4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}.Release|x64.Build.0 = Release|x64 - {57E2DF5A-6FC8-45BB-99DD-91A18C646E80}.Debug|Win32.ActiveCfg = Debug|Win32 - {57E2DF5A-6FC8-45BB-99DD-91A18C646E80}.Debug|Win32.Build.0 = Debug|Win32 - {57E2DF5A-6FC8-45BB-99DD-91A18C646E80}.Debug|x64.ActiveCfg = Debug|x64 - {57E2DF5A-6FC8-45BB-99DD-91A18C646E80}.Debug|x64.Build.0 = Debug|x64 - {57E2DF5A-6FC8-45BB-99DD-91A18C646E80}.Release|Win32.ActiveCfg = Release|Win32 - {57E2DF5A-6FC8-45BB-99DD-91A18C646E80}.Release|Win32.Build.0 = Release|Win32 - {57E2DF5A-6FC8-45BB-99DD-91A18C646E80}.Release|x64.ActiveCfg = Release|x64 - {57E2DF5A-6FC8-45BB-99DD-91A18C646E80}.Release|x64.Build.0 = Release|x64 - {9E1987E3-1F19-45CA-B9C9-D31E791836D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {9E1987E3-1F19-45CA-B9C9-D31E791836D8}.Debug|Win32.Build.0 = Debug|Win32 - {9E1987E3-1F19-45CA-B9C9-D31E791836D8}.Debug|x64.ActiveCfg = Debug|x64 - {9E1987E3-1F19-45CA-B9C9-D31E791836D8}.Debug|x64.Build.0 = Debug|x64 - {9E1987E3-1F19-45CA-B9C9-D31E791836D8}.Release|Win32.ActiveCfg = Release|Win32 - {9E1987E3-1F19-45CA-B9C9-D31E791836D8}.Release|Win32.Build.0 = Release|Win32 - {9E1987E3-1F19-45CA-B9C9-D31E791836D8}.Release|x64.ActiveCfg = Release|x64 - {9E1987E3-1F19-45CA-B9C9-D31E791836D8}.Release|x64.Build.0 = Release|x64 - {2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}.Debug|Win32.ActiveCfg = Debug|Win32 - {2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}.Debug|Win32.Build.0 = Debug|Win32 - {2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}.Debug|x64.ActiveCfg = Debug|x64 - {2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}.Debug|x64.Build.0 = Debug|x64 - {2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}.Release|Win32.ActiveCfg = Release|Win32 - {2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}.Release|Win32.Build.0 = Release|Win32 - {2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}.Release|x64.ActiveCfg = Release|x64 - {2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}.Release|x64.Build.0 = Release|x64 - {BBAEB705-1669-40F3-8567-04CF6A991F4C}.Debug|Win32.ActiveCfg = Debug|Win32 - {BBAEB705-1669-40F3-8567-04CF6A991F4C}.Debug|Win32.Build.0 = Debug|Win32 - {BBAEB705-1669-40F3-8567-04CF6A991F4C}.Debug|x64.ActiveCfg = Debug|x64 - {BBAEB705-1669-40F3-8567-04CF6A991F4C}.Debug|x64.Build.0 = Debug|x64 - {BBAEB705-1669-40F3-8567-04CF6A991F4C}.Release|Win32.ActiveCfg = Release|Win32 - {BBAEB705-1669-40F3-8567-04CF6A991F4C}.Release|Win32.Build.0 = Release|Win32 - {BBAEB705-1669-40F3-8567-04CF6A991F4C}.Release|x64.ActiveCfg = Release|x64 - {BBAEB705-1669-40F3-8567-04CF6A991F4C}.Release|x64.Build.0 = Release|x64 - {BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}.Debug|Win32.ActiveCfg = Debug|Win32 - {BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}.Debug|Win32.Build.0 = Debug|Win32 - {BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}.Debug|x64.ActiveCfg = Debug|x64 - {BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}.Debug|x64.Build.0 = Debug|x64 - {BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}.Release|Win32.ActiveCfg = Release|Win32 - {BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}.Release|Win32.Build.0 = Release|Win32 - {BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}.Release|x64.ActiveCfg = Release|x64 - {BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}.Release|x64.Build.0 = Release|x64 - {C624E5FF-D4FE-4D35-9164-B8A91864F98E}.Debug|Win32.ActiveCfg = Debug|Win32 - {C624E5FF-D4FE-4D35-9164-B8A91864F98E}.Debug|Win32.Build.0 = Debug|Win32 - {C624E5FF-D4FE-4D35-9164-B8A91864F98E}.Debug|x64.ActiveCfg = Debug|x64 - {C624E5FF-D4FE-4D35-9164-B8A91864F98E}.Debug|x64.Build.0 = Debug|x64 - {C624E5FF-D4FE-4D35-9164-B8A91864F98E}.Release|Win32.ActiveCfg = Release|Win32 - {C624E5FF-D4FE-4D35-9164-B8A91864F98E}.Release|Win32.Build.0 = Release|Win32 - {C624E5FF-D4FE-4D35-9164-B8A91864F98E}.Release|x64.ActiveCfg = Release|x64 - {C624E5FF-D4FE-4D35-9164-B8A91864F98E}.Release|x64.Build.0 = Release|x64 - {0C0B2BEA-311F-473C-9652-87923EF639E3}.Debug|Win32.ActiveCfg = Debug|Win32 - {0C0B2BEA-311F-473C-9652-87923EF639E3}.Debug|Win32.Build.0 = Debug|Win32 - {0C0B2BEA-311F-473C-9652-87923EF639E3}.Debug|x64.ActiveCfg = Debug|x64 - {0C0B2BEA-311F-473C-9652-87923EF639E3}.Debug|x64.Build.0 = Debug|x64 - {0C0B2BEA-311F-473C-9652-87923EF639E3}.Release|Win32.ActiveCfg = Release|Win32 - {0C0B2BEA-311F-473C-9652-87923EF639E3}.Release|Win32.Build.0 = Release|Win32 - {0C0B2BEA-311F-473C-9652-87923EF639E3}.Release|x64.ActiveCfg = Release|x64 - {0C0B2BEA-311F-473C-9652-87923EF639E3}.Release|x64.Build.0 = Release|x64 - {84AAA301-84FE-428B-9E3E-817BC8123C0C}.Debug|Win32.ActiveCfg = Debug|Win32 - {84AAA301-84FE-428B-9E3E-817BC8123C0C}.Debug|Win32.Build.0 = Debug|Win32 - {84AAA301-84FE-428B-9E3E-817BC8123C0C}.Debug|x64.ActiveCfg = Debug|x64 - {84AAA301-84FE-428B-9E3E-817BC8123C0C}.Debug|x64.Build.0 = Debug|x64 - {84AAA301-84FE-428B-9E3E-817BC8123C0C}.Release|Win32.ActiveCfg = Release|Win32 - {84AAA301-84FE-428B-9E3E-817BC8123C0C}.Release|Win32.Build.0 = Release|Win32 - {84AAA301-84FE-428B-9E3E-817BC8123C0C}.Release|x64.ActiveCfg = Release|x64 - {84AAA301-84FE-428B-9E3E-817BC8123C0C}.Release|x64.Build.0 = Release|x64 - {C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}.Debug|Win32.ActiveCfg = Debug|Win32 - {C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}.Debug|Win32.Build.0 = Debug|Win32 - {C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}.Debug|x64.ActiveCfg = Debug|x64 - {C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}.Debug|x64.Build.0 = Debug|x64 - {C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}.Release|Win32.ActiveCfg = Release|Win32 - {C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}.Release|Win32.Build.0 = Release|Win32 - {C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}.Release|x64.ActiveCfg = Release|x64 - {C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}.Release|x64.Build.0 = Release|x64 - {663A7E89-1E42-4222-921C-177F5B5910DF}.Debug|Win32.ActiveCfg = Debug|Win32 - {663A7E89-1E42-4222-921C-177F5B5910DF}.Debug|Win32.Build.0 = Debug|Win32 - {663A7E89-1E42-4222-921C-177F5B5910DF}.Debug|x64.ActiveCfg = Debug|x64 - {663A7E89-1E42-4222-921C-177F5B5910DF}.Debug|x64.Build.0 = Debug|x64 - {663A7E89-1E42-4222-921C-177F5B5910DF}.Release|Win32.ActiveCfg = Release|Win32 - {663A7E89-1E42-4222-921C-177F5B5910DF}.Release|Win32.Build.0 = Release|Win32 - {663A7E89-1E42-4222-921C-177F5B5910DF}.Release|x64.ActiveCfg = Release|x64 - {663A7E89-1E42-4222-921C-177F5B5910DF}.Release|x64.Build.0 = Release|x64 - {0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}.Debug|Win32.ActiveCfg = Debug|Win32 - {0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}.Debug|Win32.Build.0 = Debug|Win32 - {0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}.Debug|x64.ActiveCfg = Debug|x64 - {0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}.Debug|x64.Build.0 = Debug|x64 - {0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}.Release|Win32.ActiveCfg = Release|Win32 - {0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}.Release|Win32.Build.0 = Release|Win32 - {0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}.Release|x64.ActiveCfg = Release|x64 - {0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}.Release|x64.Build.0 = Release|x64 - {C22CB6F8-39A5-4DDA-90ED-4ACA4E81E1E5}.Debug|Win32.ActiveCfg = Debug|Win32 - {C22CB6F8-39A5-4DDA-90ED-4ACA4E81E1E5}.Debug|Win32.Build.0 = Debug|Win32 - {C22CB6F8-39A5-4DDA-90ED-4ACA4E81E1E5}.Debug|x64.ActiveCfg = Debug|x64 - {C22CB6F8-39A5-4DDA-90ED-4ACA4E81E1E5}.Debug|x64.Build.0 = Debug|x64 - {C22CB6F8-39A5-4DDA-90ED-4ACA4E81E1E5}.Release|Win32.ActiveCfg = Release|Win32 - {C22CB6F8-39A5-4DDA-90ED-4ACA4E81E1E5}.Release|Win32.Build.0 = Release|Win32 - {C22CB6F8-39A5-4DDA-90ED-4ACA4E81E1E5}.Release|x64.ActiveCfg = Release|x64 - {C22CB6F8-39A5-4DDA-90ED-4ACA4E81E1E5}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {B1ACFD20-A0A9-4A4C-ADBA-E7608F0E2BEE} - EndGlobalSection -EndGlobal diff --git a/libs/imgui-1.92.1/examples/libs/emscripten/emscripten_mainloop_stub.h b/libs/imgui-1.92.1/examples/libs/emscripten/emscripten_mainloop_stub.h deleted file mode 100644 index 8c4c48e..0000000 --- a/libs/imgui-1.92.1/examples/libs/emscripten/emscripten_mainloop_stub.h +++ /dev/null @@ -1,38 +0,0 @@ -// What does this file solves? -// - Since Dear ImGui 1.00 we took pride that most of our examples applications had their entire -// main-loop inside the main() function. That's because: -// - It makes the examples easier to read, keeping the code sequential. -// - It permit the use of local variables, making it easier to try things and perform quick -// changes when someone needs to quickly test something (vs having to structure the example -// in order to pass data around). This is very important because people use those examples -// to craft easy-to-past repro when they want to discuss features or report issues. -// - It conveys at a glance that this is a no-BS framework, it won't take your main loop away from you. -// - It is generally nice and elegant. -// - However, comes Emscripten... it is a wonderful and magical tech but it requires a "main loop" function. -// - Only some of our examples would run on Emscripten. Typically the ones rendering with GL or WGPU ones. -// - I tried to refactor those examples but felt it was problematic that other examples didn't follow the -// same layout. Why would the SDL+GL example be structured one way and the SGL+DX11 be structured differently? -// Especially as we are trying hard to convey that using a Dear ImGui backend in an *existing application* -// should requires only a few dozens lines of code, and this should be consistent and symmetrical for all backends. -// - So the next logical step was to refactor all examples to follow that layout of using a "main loop" function. -// This worked, but it made us lose all the nice things we had... - -// Since only about 4 examples really need to run with Emscripten, here's our solution: -// - Use some weird macros and capturing lambda to turn a loop in main() into a function. -// - Hide all that crap in this file so it doesn't make our examples unusually ugly. -// As a stance and principle of Dear ImGui development we don't use C++ headers and we don't -// want to suggest to the newcomer that we would ever use C++ headers as this would affect -// the initial judgment of many of our target audience. -// - Technique is based on this idea: https://github.com/ocornut/imgui/pull/2492/ -// - The do { } while (0) is to allow our code calling continue in the main loop. -#ifdef __EMSCRIPTEN__ -#include -#include -static std::function MainLoopForEmscriptenP; -static void MainLoopForEmscripten() { MainLoopForEmscriptenP(); } -#define EMSCRIPTEN_MAINLOOP_BEGIN MainLoopForEmscriptenP = [&]() { do -#define EMSCRIPTEN_MAINLOOP_END while (0); }; emscripten_set_main_loop(MainLoopForEmscripten, 0, true) -#else -#define EMSCRIPTEN_MAINLOOP_BEGIN -#define EMSCRIPTEN_MAINLOOP_END -#endif diff --git a/libs/imgui-1.92.1/examples/libs/emscripten/shell_minimal.html b/libs/imgui-1.92.1/examples/libs/emscripten/shell_minimal.html deleted file mode 100644 index bcf6262..0000000 --- a/libs/imgui-1.92.1/examples/libs/emscripten/shell_minimal.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - Dear ImGui Emscripten example - - - - - - {{{ SCRIPT }}} - - diff --git a/libs/imgui-1.92.1/examples/libs/glfw/COPYING.txt b/libs/imgui-1.92.1/examples/libs/glfw/COPYING.txt deleted file mode 100644 index b30c701..0000000 --- a/libs/imgui-1.92.1/examples/libs/glfw/COPYING.txt +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2002-2006 Marcus Geelnard -Copyright (c) 2006-2010 Camilla Berglund - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would - be appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source - distribution. - diff --git a/libs/imgui-1.92.1/examples/libs/glfw/include/GLFW/glfw3.h b/libs/imgui-1.92.1/examples/libs/glfw/include/GLFW/glfw3.h deleted file mode 100644 index c2e4ab1..0000000 --- a/libs/imgui-1.92.1/examples/libs/glfw/include/GLFW/glfw3.h +++ /dev/null @@ -1,4227 +0,0 @@ -/************************************************************************* - * GLFW 3.2 - www.glfw.org - * A library for OpenGL, window and input - *------------------------------------------------------------------------ - * Copyright (c) 2002-2006 Marcus Geelnard - * Copyright (c) 2006-2010 Camilla Berglund - * - * This software is provided 'as-is', without any express or implied - * warranty. In no event will the authors be held liable for any damages - * arising from the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software - * in a product, an acknowledgment in the product documentation would - * be appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not - * be misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source - * distribution. - * - *************************************************************************/ - -#ifndef _glfw3_h_ -#define _glfw3_h_ - -#ifdef __cplusplus -extern "C" { -#endif - - -/************************************************************************* - * Doxygen documentation - *************************************************************************/ - -/*! @file glfw3.h - * @brief The header of the GLFW 3 API. - * - * This is the header file of the GLFW 3 API. It defines all its types and - * declares all its functions. - * - * For more information about how to use this file, see @ref build_include. - */ -/*! @defgroup context Context reference - * - * This is the reference documentation for OpenGL and OpenGL ES context related - * functions. For more task-oriented information, see the @ref context_guide. - */ -/*! @defgroup vulkan Vulkan reference - * - * This is the reference documentation for Vulkan related functions and types. - * For more task-oriented information, see the @ref vulkan_guide. - */ -/*! @defgroup init Initialization, version and error reference - * - * This is the reference documentation for initialization and termination of - * the library, version management and error handling. For more task-oriented - * information, see the @ref intro_guide. - */ -/*! @defgroup input Input reference - * - * This is the reference documentation for input related functions and types. - * For more task-oriented information, see the @ref input_guide. - */ -/*! @defgroup monitor Monitor reference - * - * This is the reference documentation for monitor related functions and types. - * For more task-oriented information, see the @ref monitor_guide. - */ -/*! @defgroup window Window reference - * - * This is the reference documentation for window related functions and types, - * including creation, deletion and event polling. For more task-oriented - * information, see the @ref window_guide. - */ - - -/************************************************************************* - * Compiler- and platform-specific preprocessor work - *************************************************************************/ - -/* If we are we on Windows, we want a single define for it. - */ -#if !defined(_WIN32) && (defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)) - #define _WIN32 -#endif /* _WIN32 */ - -/* It is customary to use APIENTRY for OpenGL function pointer declarations on - * all platforms. Additionally, the Windows OpenGL header needs APIENTRY. - */ -#ifndef APIENTRY - #ifdef _WIN32 - #define APIENTRY __stdcall - #else - #define APIENTRY - #endif -#endif /* APIENTRY */ - -/* Some Windows OpenGL headers need this. - */ -#if !defined(WINGDIAPI) && defined(_WIN32) - #define WINGDIAPI __declspec(dllimport) - #define GLFW_WINGDIAPI_DEFINED -#endif /* WINGDIAPI */ - -/* Some Windows GLU headers need this. - */ -#if !defined(CALLBACK) && defined(_WIN32) - #define CALLBACK __stdcall - #define GLFW_CALLBACK_DEFINED -#endif /* CALLBACK */ - -/* Most Windows GLU headers need wchar_t. - * The OS X OpenGL header blocks the definition of ptrdiff_t by glext.h. - * Include it unconditionally to avoid surprising side-effects. - */ -#include -#include - -/* Include the chosen client API headers. - */ -#if defined(__APPLE__) - #if defined(GLFW_INCLUDE_GLCOREARB) - #include - #if defined(GLFW_INCLUDE_GLEXT) - #include - #endif - #elif !defined(GLFW_INCLUDE_NONE) - #if !defined(GLFW_INCLUDE_GLEXT) - #define GL_GLEXT_LEGACY - #endif - #include - #endif - #if defined(GLFW_INCLUDE_GLU) - #include - #endif -#else - #if defined(GLFW_INCLUDE_GLCOREARB) - #include - #elif defined(GLFW_INCLUDE_ES1) - #include - #if defined(GLFW_INCLUDE_GLEXT) - #include - #endif - #elif defined(GLFW_INCLUDE_ES2) - #include - #if defined(GLFW_INCLUDE_GLEXT) - #include - #endif - #elif defined(GLFW_INCLUDE_ES3) - #include - #if defined(GLFW_INCLUDE_GLEXT) - #include - #endif - #elif defined(GLFW_INCLUDE_ES31) - #include - #if defined(GLFW_INCLUDE_GLEXT) - #include - #endif - #elif defined(GLFW_INCLUDE_VULKAN) - #include - #elif !defined(GLFW_INCLUDE_NONE) - #include - #if defined(GLFW_INCLUDE_GLEXT) - #include - #endif - #endif - #if defined(GLFW_INCLUDE_GLU) - #include - #endif -#endif - -#if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL) - /* GLFW_DLL must be defined by applications that are linking against the DLL - * version of the GLFW library. _GLFW_BUILD_DLL is defined by the GLFW - * configuration header when compiling the DLL version of the library. - */ - #error "You must not have both GLFW_DLL and _GLFW_BUILD_DLL defined" -#endif - -/* GLFWAPI is used to declare public API functions for export - * from the DLL / shared library / dynamic library. - */ -#if defined(_WIN32) && defined(_GLFW_BUILD_DLL) - /* We are building GLFW as a Win32 DLL */ - #define GLFWAPI __declspec(dllexport) -#elif defined(_WIN32) && defined(GLFW_DLL) - /* We are calling GLFW as a Win32 DLL */ - #define GLFWAPI __declspec(dllimport) -#elif defined(__GNUC__) && defined(_GLFW_BUILD_DLL) - /* We are building GLFW as a shared / dynamic library */ - #define GLFWAPI __attribute__((visibility("default"))) -#else - /* We are building or calling GLFW as a static library */ - #define GLFWAPI -#endif - - -/************************************************************************* - * GLFW API tokens - *************************************************************************/ - -/*! @name GLFW version macros - * @{ */ -/*! @brief The major version number of the GLFW library. - * - * This is incremented when the API is changed in non-compatible ways. - * @ingroup init - */ -#define GLFW_VERSION_MAJOR 3 -/*! @brief The minor version number of the GLFW library. - * - * This is incremented when features are added to the API but it remains - * backward-compatible. - * @ingroup init - */ -#define GLFW_VERSION_MINOR 2 -/*! @brief The revision number of the GLFW library. - * - * This is incremented when a bug fix release is made that does not contain any - * API changes. - * @ingroup init - */ -#define GLFW_VERSION_REVISION 0 -/*! @} */ - -/*! @name Boolean values - * @{ */ -/*! @brief One. - * - * One. Seriously. You don't _need_ to use this symbol in your code. It's - * just semantic sugar for the number 1. You can use `1` or `true` or `_True` - * or `GL_TRUE` or whatever you want. - */ -#define GLFW_TRUE 1 -/*! @brief Zero. - * - * Zero. Seriously. You don't _need_ to use this symbol in your code. It's - * just just semantic sugar for the number 0. You can use `0` or `false` or - * `_False` or `GL_FALSE` or whatever you want. - */ -#define GLFW_FALSE 0 -/*! @} */ - -/*! @name Key and button actions - * @{ */ -/*! @brief The key or mouse button was released. - * - * The key or mouse button was released. - * - * @ingroup input - */ -#define GLFW_RELEASE 0 -/*! @brief The key or mouse button was pressed. - * - * The key or mouse button was pressed. - * - * @ingroup input - */ -#define GLFW_PRESS 1 -/*! @brief The key was held down until it repeated. - * - * The key was held down until it repeated. - * - * @ingroup input - */ -#define GLFW_REPEAT 2 -/*! @} */ - -/*! @defgroup keys Keyboard keys - * - * See [key input](@ref input_key) for how these are used. - * - * These key codes are inspired by the _USB HID Usage Tables v1.12_ (p. 53-60), - * but re-arranged to map to 7-bit ASCII for printable keys (function keys are - * put in the 256+ range). - * - * The naming of the key codes follow these rules: - * - The US keyboard layout is used - * - Names of printable alpha-numeric characters are used (e.g. "A", "R", - * "3", etc.) - * - For non-alphanumeric characters, Unicode:ish names are used (e.g. - * "COMMA", "LEFT_SQUARE_BRACKET", etc.). Note that some names do not - * correspond to the Unicode standard (usually for brevity) - * - Keys that lack a clear US mapping are named "WORLD_x" - * - For non-printable keys, custom names are used (e.g. "F4", - * "BACKSPACE", etc.) - * - * @ingroup input - * @{ - */ - -/* The unknown key */ -#define GLFW_KEY_UNKNOWN -1 - -/* Printable keys */ -#define GLFW_KEY_SPACE 32 -#define GLFW_KEY_APOSTROPHE 39 /* ' */ -#define GLFW_KEY_COMMA 44 /* , */ -#define GLFW_KEY_MINUS 45 /* - */ -#define GLFW_KEY_PERIOD 46 /* . */ -#define GLFW_KEY_SLASH 47 /* / */ -#define GLFW_KEY_0 48 -#define GLFW_KEY_1 49 -#define GLFW_KEY_2 50 -#define GLFW_KEY_3 51 -#define GLFW_KEY_4 52 -#define GLFW_KEY_5 53 -#define GLFW_KEY_6 54 -#define GLFW_KEY_7 55 -#define GLFW_KEY_8 56 -#define GLFW_KEY_9 57 -#define GLFW_KEY_SEMICOLON 59 /* ; */ -#define GLFW_KEY_EQUAL 61 /* = */ -#define GLFW_KEY_A 65 -#define GLFW_KEY_B 66 -#define GLFW_KEY_C 67 -#define GLFW_KEY_D 68 -#define GLFW_KEY_E 69 -#define GLFW_KEY_F 70 -#define GLFW_KEY_G 71 -#define GLFW_KEY_H 72 -#define GLFW_KEY_I 73 -#define GLFW_KEY_J 74 -#define GLFW_KEY_K 75 -#define GLFW_KEY_L 76 -#define GLFW_KEY_M 77 -#define GLFW_KEY_N 78 -#define GLFW_KEY_O 79 -#define GLFW_KEY_P 80 -#define GLFW_KEY_Q 81 -#define GLFW_KEY_R 82 -#define GLFW_KEY_S 83 -#define GLFW_KEY_T 84 -#define GLFW_KEY_U 85 -#define GLFW_KEY_V 86 -#define GLFW_KEY_W 87 -#define GLFW_KEY_X 88 -#define GLFW_KEY_Y 89 -#define GLFW_KEY_Z 90 -#define GLFW_KEY_LEFT_BRACKET 91 /* [ */ -#define GLFW_KEY_BACKSLASH 92 /* \ */ -#define GLFW_KEY_RIGHT_BRACKET 93 /* ] */ -#define GLFW_KEY_GRAVE_ACCENT 96 /* ` */ -#define GLFW_KEY_WORLD_1 161 /* non-US #1 */ -#define GLFW_KEY_WORLD_2 162 /* non-US #2 */ - -/* Function keys */ -#define GLFW_KEY_ESCAPE 256 -#define GLFW_KEY_ENTER 257 -#define GLFW_KEY_TAB 258 -#define GLFW_KEY_BACKSPACE 259 -#define GLFW_KEY_INSERT 260 -#define GLFW_KEY_DELETE 261 -#define GLFW_KEY_RIGHT 262 -#define GLFW_KEY_LEFT 263 -#define GLFW_KEY_DOWN 264 -#define GLFW_KEY_UP 265 -#define GLFW_KEY_PAGE_UP 266 -#define GLFW_KEY_PAGE_DOWN 267 -#define GLFW_KEY_HOME 268 -#define GLFW_KEY_END 269 -#define GLFW_KEY_CAPS_LOCK 280 -#define GLFW_KEY_SCROLL_LOCK 281 -#define GLFW_KEY_NUM_LOCK 282 -#define GLFW_KEY_PRINT_SCREEN 283 -#define GLFW_KEY_PAUSE 284 -#define GLFW_KEY_F1 290 -#define GLFW_KEY_F2 291 -#define GLFW_KEY_F3 292 -#define GLFW_KEY_F4 293 -#define GLFW_KEY_F5 294 -#define GLFW_KEY_F6 295 -#define GLFW_KEY_F7 296 -#define GLFW_KEY_F8 297 -#define GLFW_KEY_F9 298 -#define GLFW_KEY_F10 299 -#define GLFW_KEY_F11 300 -#define GLFW_KEY_F12 301 -#define GLFW_KEY_F13 302 -#define GLFW_KEY_F14 303 -#define GLFW_KEY_F15 304 -#define GLFW_KEY_F16 305 -#define GLFW_KEY_F17 306 -#define GLFW_KEY_F18 307 -#define GLFW_KEY_F19 308 -#define GLFW_KEY_F20 309 -#define GLFW_KEY_F21 310 -#define GLFW_KEY_F22 311 -#define GLFW_KEY_F23 312 -#define GLFW_KEY_F24 313 -#define GLFW_KEY_F25 314 -#define GLFW_KEY_KP_0 320 -#define GLFW_KEY_KP_1 321 -#define GLFW_KEY_KP_2 322 -#define GLFW_KEY_KP_3 323 -#define GLFW_KEY_KP_4 324 -#define GLFW_KEY_KP_5 325 -#define GLFW_KEY_KP_6 326 -#define GLFW_KEY_KP_7 327 -#define GLFW_KEY_KP_8 328 -#define GLFW_KEY_KP_9 329 -#define GLFW_KEY_KP_DECIMAL 330 -#define GLFW_KEY_KP_DIVIDE 331 -#define GLFW_KEY_KP_MULTIPLY 332 -#define GLFW_KEY_KP_SUBTRACT 333 -#define GLFW_KEY_KP_ADD 334 -#define GLFW_KEY_KP_ENTER 335 -#define GLFW_KEY_KP_EQUAL 336 -#define GLFW_KEY_LEFT_SHIFT 340 -#define GLFW_KEY_LEFT_CONTROL 341 -#define GLFW_KEY_LEFT_ALT 342 -#define GLFW_KEY_LEFT_SUPER 343 -#define GLFW_KEY_RIGHT_SHIFT 344 -#define GLFW_KEY_RIGHT_CONTROL 345 -#define GLFW_KEY_RIGHT_ALT 346 -#define GLFW_KEY_RIGHT_SUPER 347 -#define GLFW_KEY_MENU 348 - -#define GLFW_KEY_LAST GLFW_KEY_MENU - -/*! @} */ - -/*! @defgroup mods Modifier key flags - * - * See [key input](@ref input_key) for how these are used. - * - * @ingroup input - * @{ */ - -/*! @brief If this bit is set one or more Shift keys were held down. - */ -#define GLFW_MOD_SHIFT 0x0001 -/*! @brief If this bit is set one or more Control keys were held down. - */ -#define GLFW_MOD_CONTROL 0x0002 -/*! @brief If this bit is set one or more Alt keys were held down. - */ -#define GLFW_MOD_ALT 0x0004 -/*! @brief If this bit is set one or more Super keys were held down. - */ -#define GLFW_MOD_SUPER 0x0008 - -/*! @} */ - -/*! @defgroup buttons Mouse buttons - * - * See [mouse button input](@ref input_mouse_button) for how these are used. - * - * @ingroup input - * @{ */ -#define GLFW_MOUSE_BUTTON_1 0 -#define GLFW_MOUSE_BUTTON_2 1 -#define GLFW_MOUSE_BUTTON_3 2 -#define GLFW_MOUSE_BUTTON_4 3 -#define GLFW_MOUSE_BUTTON_5 4 -#define GLFW_MOUSE_BUTTON_6 5 -#define GLFW_MOUSE_BUTTON_7 6 -#define GLFW_MOUSE_BUTTON_8 7 -#define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8 -#define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1 -#define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2 -#define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3 -/*! @} */ - -/*! @defgroup joysticks Joysticks - * - * See [joystick input](@ref joystick) for how these are used. - * - * @ingroup input - * @{ */ -#define GLFW_JOYSTICK_1 0 -#define GLFW_JOYSTICK_2 1 -#define GLFW_JOYSTICK_3 2 -#define GLFW_JOYSTICK_4 3 -#define GLFW_JOYSTICK_5 4 -#define GLFW_JOYSTICK_6 5 -#define GLFW_JOYSTICK_7 6 -#define GLFW_JOYSTICK_8 7 -#define GLFW_JOYSTICK_9 8 -#define GLFW_JOYSTICK_10 9 -#define GLFW_JOYSTICK_11 10 -#define GLFW_JOYSTICK_12 11 -#define GLFW_JOYSTICK_13 12 -#define GLFW_JOYSTICK_14 13 -#define GLFW_JOYSTICK_15 14 -#define GLFW_JOYSTICK_16 15 -#define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16 -/*! @} */ - -/*! @defgroup errors Error codes - * - * See [error handling](@ref error_handling) for how these are used. - * - * @ingroup init - * @{ */ -/*! @brief GLFW has not been initialized. - * - * This occurs if a GLFW function was called that must not be called unless the - * library is [initialized](@ref intro_init). - * - * @analysis Application programmer error. Initialize GLFW before calling any - * function that requires initialization. - */ -#define GLFW_NOT_INITIALIZED 0x00010001 -/*! @brief No context is current for this thread. - * - * This occurs if a GLFW function was called that needs and operates on the - * current OpenGL or OpenGL ES context but no context is current on the calling - * thread. One such function is @ref glfwSwapInterval. - * - * @analysis Application programmer error. Ensure a context is current before - * calling functions that require a current context. - */ -#define GLFW_NO_CURRENT_CONTEXT 0x00010002 -/*! @brief One of the arguments to the function was an invalid enum value. - * - * One of the arguments to the function was an invalid enum value, for example - * requesting [GLFW_RED_BITS](@ref window_hints_fb) with @ref - * glfwGetWindowAttrib. - * - * @analysis Application programmer error. Fix the offending call. - */ -#define GLFW_INVALID_ENUM 0x00010003 -/*! @brief One of the arguments to the function was an invalid value. - * - * One of the arguments to the function was an invalid value, for example - * requesting a non-existent OpenGL or OpenGL ES version like 2.7. - * - * Requesting a valid but unavailable OpenGL or OpenGL ES version will instead - * result in a @ref GLFW_VERSION_UNAVAILABLE error. - * - * @analysis Application programmer error. Fix the offending call. - */ -#define GLFW_INVALID_VALUE 0x00010004 -/*! @brief A memory allocation failed. - * - * A memory allocation failed. - * - * @analysis A bug in GLFW or the underlying operating system. Report the bug - * to our [issue tracker](https://github.com/glfw/glfw/issues). - */ -#define GLFW_OUT_OF_MEMORY 0x00010005 -/*! @brief GLFW could not find support for the requested API on the system. - * - * GLFW could not find support for the requested API on the system. - * - * @analysis The installed graphics driver does not support the requested - * API, or does not support it via the chosen context creation backend. - * Below are a few examples. - * - * @par - * Some pre-installed Windows graphics drivers do not support OpenGL. AMD only - * supports OpenGL ES via EGL, while Nvidia and Intel only support it via - * a WGL or GLX extension. OS X does not provide OpenGL ES at all. The Mesa - * EGL, OpenGL and OpenGL ES libraries do not interface with the Nvidia binary - * driver. Older graphics drivers do not support Vulkan. - */ -#define GLFW_API_UNAVAILABLE 0x00010006 -/*! @brief The requested OpenGL or OpenGL ES version is not available. - * - * The requested OpenGL or OpenGL ES version (including any requested context - * or framebuffer hints) is not available on this machine. - * - * @analysis The machine does not support your requirements. If your - * application is sufficiently flexible, downgrade your requirements and try - * again. Otherwise, inform the user that their machine does not match your - * requirements. - * - * @par - * Future invalid OpenGL and OpenGL ES versions, for example OpenGL 4.8 if 5.0 - * comes out before the 4.x series gets that far, also fail with this error and - * not @ref GLFW_INVALID_VALUE, because GLFW cannot know what future versions - * will exist. - */ -#define GLFW_VERSION_UNAVAILABLE 0x00010007 -/*! @brief A platform-specific error occurred that does not match any of the - * more specific categories. - * - * A platform-specific error occurred that does not match any of the more - * specific categories. - * - * @analysis A bug or configuration error in GLFW, the underlying operating - * system or its drivers, or a lack of required resources. Report the issue to - * our [issue tracker](https://github.com/glfw/glfw/issues). - */ -#define GLFW_PLATFORM_ERROR 0x00010008 -/*! @brief The requested format is not supported or available. - * - * If emitted during window creation, the requested pixel format is not - * supported. - * - * If emitted when querying the clipboard, the contents of the clipboard could - * not be converted to the requested format. - * - * @analysis If emitted during window creation, one or more - * [hard constraints](@ref window_hints_hard) did not match any of the - * available pixel formats. If your application is sufficiently flexible, - * downgrade your requirements and try again. Otherwise, inform the user that - * their machine does not match your requirements. - * - * @par - * If emitted when querying the clipboard, ignore the error or report it to - * the user, as appropriate. - */ -#define GLFW_FORMAT_UNAVAILABLE 0x00010009 -/*! @brief The specified window does not have an OpenGL or OpenGL ES context. - * - * A window that does not have an OpenGL or OpenGL ES context was passed to - * a function that requires it to have one. - * - * @analysis Application programmer error. Fix the offending call. - */ -#define GLFW_NO_WINDOW_CONTEXT 0x0001000A -/*! @} */ - -#define GLFW_FOCUSED 0x00020001 -#define GLFW_ICONIFIED 0x00020002 -#define GLFW_RESIZABLE 0x00020003 -#define GLFW_VISIBLE 0x00020004 -#define GLFW_DECORATED 0x00020005 -#define GLFW_AUTO_ICONIFY 0x00020006 -#define GLFW_FLOATING 0x00020007 -#define GLFW_MAXIMIZED 0x00020008 - -#define GLFW_RED_BITS 0x00021001 -#define GLFW_GREEN_BITS 0x00021002 -#define GLFW_BLUE_BITS 0x00021003 -#define GLFW_ALPHA_BITS 0x00021004 -#define GLFW_DEPTH_BITS 0x00021005 -#define GLFW_STENCIL_BITS 0x00021006 -#define GLFW_ACCUM_RED_BITS 0x00021007 -#define GLFW_ACCUM_GREEN_BITS 0x00021008 -#define GLFW_ACCUM_BLUE_BITS 0x00021009 -#define GLFW_ACCUM_ALPHA_BITS 0x0002100A -#define GLFW_AUX_BUFFERS 0x0002100B -#define GLFW_STEREO 0x0002100C -#define GLFW_SAMPLES 0x0002100D -#define GLFW_SRGB_CAPABLE 0x0002100E -#define GLFW_REFRESH_RATE 0x0002100F -#define GLFW_DOUBLEBUFFER 0x00021010 - -#define GLFW_CLIENT_API 0x00022001 -#define GLFW_CONTEXT_VERSION_MAJOR 0x00022002 -#define GLFW_CONTEXT_VERSION_MINOR 0x00022003 -#define GLFW_CONTEXT_REVISION 0x00022004 -#define GLFW_CONTEXT_ROBUSTNESS 0x00022005 -#define GLFW_OPENGL_FORWARD_COMPAT 0x00022006 -#define GLFW_OPENGL_DEBUG_CONTEXT 0x00022007 -#define GLFW_OPENGL_PROFILE 0x00022008 -#define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009 -#define GLFW_CONTEXT_NO_ERROR 0x0002200A - -#define GLFW_NO_API 0 -#define GLFW_OPENGL_API 0x00030001 -#define GLFW_OPENGL_ES_API 0x00030002 - -#define GLFW_NO_ROBUSTNESS 0 -#define GLFW_NO_RESET_NOTIFICATION 0x00031001 -#define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002 - -#define GLFW_OPENGL_ANY_PROFILE 0 -#define GLFW_OPENGL_CORE_PROFILE 0x00032001 -#define GLFW_OPENGL_COMPAT_PROFILE 0x00032002 - -#define GLFW_CURSOR 0x00033001 -#define GLFW_STICKY_KEYS 0x00033002 -#define GLFW_STICKY_MOUSE_BUTTONS 0x00033003 - -#define GLFW_CURSOR_NORMAL 0x00034001 -#define GLFW_CURSOR_HIDDEN 0x00034002 -#define GLFW_CURSOR_DISABLED 0x00034003 - -#define GLFW_ANY_RELEASE_BEHAVIOR 0 -#define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001 -#define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002 - -/*! @defgroup shapes Standard cursor shapes - * - * See [standard cursor creation](@ref cursor_standard) for how these are used. - * - * @ingroup input - * @{ */ - -/*! @brief The regular arrow cursor shape. - * - * The regular arrow cursor. - */ -#define GLFW_ARROW_CURSOR 0x00036001 -/*! @brief The text input I-beam cursor shape. - * - * The text input I-beam cursor shape. - */ -#define GLFW_IBEAM_CURSOR 0x00036002 -/*! @brief The crosshair shape. - * - * The crosshair shape. - */ -#define GLFW_CROSSHAIR_CURSOR 0x00036003 -/*! @brief The hand shape. - * - * The hand shape. - */ -#define GLFW_HAND_CURSOR 0x00036004 -/*! @brief The horizontal resize arrow shape. - * - * The horizontal resize arrow shape. - */ -#define GLFW_HRESIZE_CURSOR 0x00036005 -/*! @brief The vertical resize arrow shape. - * - * The vertical resize arrow shape. - */ -#define GLFW_VRESIZE_CURSOR 0x00036006 -/*! @} */ - -#define GLFW_CONNECTED 0x00040001 -#define GLFW_DISCONNECTED 0x00040002 - -#define GLFW_DONT_CARE -1 - - -/************************************************************************* - * GLFW API types - *************************************************************************/ - -/*! @brief Client API function pointer type. - * - * Generic function pointer used for returning client API function pointers - * without forcing a cast from a regular pointer. - * - * @sa @ref context_glext - * @sa glfwGetProcAddress - * - * @since Added in version 3.0. - - * @ingroup context - */ -typedef void (*GLFWglproc)(void); - -/*! @brief Vulkan API function pointer type. - * - * Generic function pointer used for returning Vulkan API function pointers - * without forcing a cast from a regular pointer. - * - * @sa @ref vulkan_proc - * @sa glfwGetInstanceProcAddress - * - * @since Added in version 3.2. - * - * @ingroup vulkan - */ -typedef void (*GLFWvkproc)(void); - -/*! @brief Opaque monitor object. - * - * Opaque monitor object. - * - * @see @ref monitor_object - * - * @since Added in version 3.0. - * - * @ingroup monitor - */ -typedef struct GLFWmonitor GLFWmonitor; - -/*! @brief Opaque window object. - * - * Opaque window object. - * - * @see @ref window_object - * - * @since Added in version 3.0. - * - * @ingroup window - */ -typedef struct GLFWwindow GLFWwindow; - -/*! @brief Opaque cursor object. - * - * Opaque cursor object. - * - * @see @ref cursor_object - * - * @since Added in version 3.1. - * - * @ingroup cursor - */ -typedef struct GLFWcursor GLFWcursor; - -/*! @brief The function signature for error callbacks. - * - * This is the function signature for error callback functions. - * - * @param[in] error An [error code](@ref errors). - * @param[in] description A UTF-8 encoded string describing the error. - * - * @sa @ref error_handling - * @sa glfwSetErrorCallback - * - * @since Added in version 3.0. - * - * @ingroup init - */ -typedef void (* GLFWerrorfun)(int,const char*); - -/*! @brief The function signature for window position callbacks. - * - * This is the function signature for window position callback functions. - * - * @param[in] window The window that was moved. - * @param[in] xpos The new x-coordinate, in screen coordinates, of the - * upper-left corner of the client area of the window. - * @param[in] ypos The new y-coordinate, in screen coordinates, of the - * upper-left corner of the client area of the window. - * - * @sa @ref window_pos - * @sa glfwSetWindowPosCallback - * - * @since Added in version 3.0. - * - * @ingroup window - */ -typedef void (* GLFWwindowposfun)(GLFWwindow*,int,int); - -/*! @brief The function signature for window resize callbacks. - * - * This is the function signature for window size callback functions. - * - * @param[in] window The window that was resized. - * @param[in] width The new width, in screen coordinates, of the window. - * @param[in] height The new height, in screen coordinates, of the window. - * - * @sa @ref window_size - * @sa glfwSetWindowSizeCallback - * - * @since Added in version 1.0. - * @glfw3 Added window handle parameter. - * - * @ingroup window - */ -typedef void (* GLFWwindowsizefun)(GLFWwindow*,int,int); - -/*! @brief The function signature for window close callbacks. - * - * This is the function signature for window close callback functions. - * - * @param[in] window The window that the user attempted to close. - * - * @sa @ref window_close - * @sa glfwSetWindowCloseCallback - * - * @since Added in version 2.5. - * @glfw3 Added window handle parameter. - * - * @ingroup window - */ -typedef void (* GLFWwindowclosefun)(GLFWwindow*); - -/*! @brief The function signature for window content refresh callbacks. - * - * This is the function signature for window refresh callback functions. - * - * @param[in] window The window whose content needs to be refreshed. - * - * @sa @ref window_refresh - * @sa glfwSetWindowRefreshCallback - * - * @since Added in version 2.5. - * @glfw3 Added window handle parameter. - * - * @ingroup window - */ -typedef void (* GLFWwindowrefreshfun)(GLFWwindow*); - -/*! @brief The function signature for window focus/defocus callbacks. - * - * This is the function signature for window focus callback functions. - * - * @param[in] window The window that gained or lost input focus. - * @param[in] focused `GLFW_TRUE` if the window was given input focus, or - * `GLFW_FALSE` if it lost it. - * - * @sa @ref window_focus - * @sa glfwSetWindowFocusCallback - * - * @since Added in version 3.0. - * - * @ingroup window - */ -typedef void (* GLFWwindowfocusfun)(GLFWwindow*,int); - -/*! @brief The function signature for window iconify/restore callbacks. - * - * This is the function signature for window iconify/restore callback - * functions. - * - * @param[in] window The window that was iconified or restored. - * @param[in] iconified `GLFW_TRUE` if the window was iconified, or - * `GLFW_FALSE` if it was restored. - * - * @sa @ref window_iconify - * @sa glfwSetWindowIconifyCallback - * - * @since Added in version 3.0. - * - * @ingroup window - */ -typedef void (* GLFWwindowiconifyfun)(GLFWwindow*,int); - -/*! @brief The function signature for framebuffer resize callbacks. - * - * This is the function signature for framebuffer resize callback - * functions. - * - * @param[in] window The window whose framebuffer was resized. - * @param[in] width The new width, in pixels, of the framebuffer. - * @param[in] height The new height, in pixels, of the framebuffer. - * - * @sa @ref window_fbsize - * @sa glfwSetFramebufferSizeCallback - * - * @since Added in version 3.0. - * - * @ingroup window - */ -typedef void (* GLFWframebuffersizefun)(GLFWwindow*,int,int); - -/*! @brief The function signature for mouse button callbacks. - * - * This is the function signature for mouse button callback functions. - * - * @param[in] window The window that received the event. - * @param[in] button The [mouse button](@ref buttons) that was pressed or - * released. - * @param[in] action One of `GLFW_PRESS` or `GLFW_RELEASE`. - * @param[in] mods Bit field describing which [modifier keys](@ref mods) were - * held down. - * - * @sa @ref input_mouse_button - * @sa glfwSetMouseButtonCallback - * - * @since Added in version 1.0. - * @glfw3 Added window handle and modifier mask parameters. - * - * @ingroup input - */ -typedef void (* GLFWmousebuttonfun)(GLFWwindow*,int,int,int); - -/*! @brief The function signature for cursor position callbacks. - * - * This is the function signature for cursor position callback functions. - * - * @param[in] window The window that received the event. - * @param[in] xpos The new cursor x-coordinate, relative to the left edge of - * the client area. - * @param[in] ypos The new cursor y-coordinate, relative to the top edge of the - * client area. - * - * @sa @ref cursor_pos - * @sa glfwSetCursorPosCallback - * - * @since Added in version 3.0. Replaces `GLFWmouseposfun`. - * - * @ingroup input - */ -typedef void (* GLFWcursorposfun)(GLFWwindow*,double,double); - -/*! @brief The function signature for cursor enter/leave callbacks. - * - * This is the function signature for cursor enter/leave callback functions. - * - * @param[in] window The window that received the event. - * @param[in] entered `GLFW_TRUE` if the cursor entered the window's client - * area, or `GLFW_FALSE` if it left it. - * - * @sa @ref cursor_enter - * @sa glfwSetCursorEnterCallback - * - * @since Added in version 3.0. - * - * @ingroup input - */ -typedef void (* GLFWcursorenterfun)(GLFWwindow*,int); - -/*! @brief The function signature for scroll callbacks. - * - * This is the function signature for scroll callback functions. - * - * @param[in] window The window that received the event. - * @param[in] xoffset The scroll offset along the x-axis. - * @param[in] yoffset The scroll offset along the y-axis. - * - * @sa @ref scrolling - * @sa glfwSetScrollCallback - * - * @since Added in version 3.0. Replaces `GLFWmousewheelfun`. - * - * @ingroup input - */ -typedef void (* GLFWscrollfun)(GLFWwindow*,double,double); - -/*! @brief The function signature for keyboard key callbacks. - * - * This is the function signature for keyboard key callback functions. - * - * @param[in] window The window that received the event. - * @param[in] key The [keyboard key](@ref keys) that was pressed or released. - * @param[in] scancode The system-specific scancode of the key. - * @param[in] action `GLFW_PRESS`, `GLFW_RELEASE` or `GLFW_REPEAT`. - * @param[in] mods Bit field describing which [modifier keys](@ref mods) were - * held down. - * - * @sa @ref input_key - * @sa glfwSetKeyCallback - * - * @since Added in version 1.0. - * @glfw3 Added window handle, scancode and modifier mask parameters. - * - * @ingroup input - */ -typedef void (* GLFWkeyfun)(GLFWwindow*,int,int,int,int); - -/*! @brief The function signature for Unicode character callbacks. - * - * This is the function signature for Unicode character callback functions. - * - * @param[in] window The window that received the event. - * @param[in] codepoint The Unicode code point of the character. - * - * @sa @ref input_char - * @sa glfwSetCharCallback - * - * @since Added in version 2.4. - * @glfw3 Added window handle parameter. - * - * @ingroup input - */ -typedef void (* GLFWcharfun)(GLFWwindow*,unsigned int); - -/*! @brief The function signature for Unicode character with modifiers - * callbacks. - * - * This is the function signature for Unicode character with modifiers callback - * functions. It is called for each input character, regardless of what - * modifier keys are held down. - * - * @param[in] window The window that received the event. - * @param[in] codepoint The Unicode code point of the character. - * @param[in] mods Bit field describing which [modifier keys](@ref mods) were - * held down. - * - * @sa @ref input_char - * @sa glfwSetCharModsCallback - * - * @since Added in version 3.1. - * - * @ingroup input - */ -typedef void (* GLFWcharmodsfun)(GLFWwindow*,unsigned int,int); - -/*! @brief The function signature for file drop callbacks. - * - * This is the function signature for file drop callbacks. - * - * @param[in] window The window that received the event. - * @param[in] count The number of dropped files. - * @param[in] paths The UTF-8 encoded file and/or directory path names. - * - * @sa @ref path_drop - * @sa glfwSetDropCallback - * - * @since Added in version 3.1. - * - * @ingroup input - */ -typedef void (* GLFWdropfun)(GLFWwindow*,int,const char**); - -/*! @brief The function signature for monitor configuration callbacks. - * - * This is the function signature for monitor configuration callback functions. - * - * @param[in] monitor The monitor that was connected or disconnected. - * @param[in] event One of `GLFW_CONNECTED` or `GLFW_DISCONNECTED`. - * - * @sa @ref monitor_event - * @sa glfwSetMonitorCallback - * - * @since Added in version 3.0. - * - * @ingroup monitor - */ -typedef void (* GLFWmonitorfun)(GLFWmonitor*,int); - -/*! @brief The function signature for joystick configuration callbacks. - * - * This is the function signature for joystick configuration callback - * functions. - * - * @param[in] joy The joystick that was connected or disconnected. - * @param[in] event One of `GLFW_CONNECTED` or `GLFW_DISCONNECTED`. - * - * @sa @ref joystick_event - * @sa glfwSetJoystickCallback - * - * @since Added in version 3.2. - * - * @ingroup input - */ -typedef void (* GLFWjoystickfun)(int,int); - -/*! @brief Video mode type. - * - * This describes a single video mode. - * - * @sa @ref monitor_modes - * @sa glfwGetVideoMode glfwGetVideoModes - * - * @since Added in version 1.0. - * @glfw3 Added refresh rate member. - * - * @ingroup monitor - */ -typedef struct GLFWvidmode -{ - /*! The width, in screen coordinates, of the video mode. - */ - int width; - /*! The height, in screen coordinates, of the video mode. - */ - int height; - /*! The bit depth of the red channel of the video mode. - */ - int redBits; - /*! The bit depth of the green channel of the video mode. - */ - int greenBits; - /*! The bit depth of the blue channel of the video mode. - */ - int blueBits; - /*! The refresh rate, in Hz, of the video mode. - */ - int refreshRate; -} GLFWvidmode; - -/*! @brief Gamma ramp. - * - * This describes the gamma ramp for a monitor. - * - * @sa @ref monitor_gamma - * @sa glfwGetGammaRamp glfwSetGammaRamp - * - * @since Added in version 3.0. - * - * @ingroup monitor - */ -typedef struct GLFWgammaramp -{ - /*! An array of value describing the response of the red channel. - */ - unsigned short* red; - /*! An array of value describing the response of the green channel. - */ - unsigned short* green; - /*! An array of value describing the response of the blue channel. - */ - unsigned short* blue; - /*! The number of elements in each array. - */ - unsigned int size; -} GLFWgammaramp; - -/*! @brief Image data. - * - * @sa @ref cursor_custom - * - * @since Added in version 2.1. - * @glfw3 Removed format and bytes-per-pixel members. - */ -typedef struct GLFWimage -{ - /*! The width, in pixels, of this image. - */ - int width; - /*! The height, in pixels, of this image. - */ - int height; - /*! The pixel data of this image, arranged left-to-right, top-to-bottom. - */ - unsigned char* pixels; -} GLFWimage; - - -/************************************************************************* - * GLFW API functions - *************************************************************************/ - -/*! @brief Initializes the GLFW library. - * - * This function initializes the GLFW library. Before most GLFW functions can - * be used, GLFW must be initialized, and before an application terminates GLFW - * should be terminated in order to free any resources allocated during or - * after initialization. - * - * If this function fails, it calls @ref glfwTerminate before returning. If it - * succeeds, you should call @ref glfwTerminate before the application exits. - * - * Additional calls to this function after successful initialization but before - * termination will return `GLFW_TRUE` immediately. - * - * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an - * [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_PLATFORM_ERROR. - * - * @remark @osx This function will change the current directory of the - * application to the `Contents/Resources` subdirectory of the application's - * bundle, if present. This can be disabled with a - * [compile-time option](@ref compile_options_osx). - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref intro_init - * @sa glfwTerminate - * - * @since Added in version 1.0. - * - * @ingroup init - */ -GLFWAPI int glfwInit(void); - -/*! @brief Terminates the GLFW library. - * - * This function destroys all remaining windows and cursors, restores any - * modified gamma ramps and frees any other allocated resources. Once this - * function is called, you must again call @ref glfwInit successfully before - * you will be able to use most GLFW functions. - * - * If GLFW has been successfully initialized, this function should be called - * before the application exits. If initialization fails, there is no need to - * call this function, as it is called by @ref glfwInit before it returns - * failure. - * - * @errors Possible errors include @ref GLFW_PLATFORM_ERROR. - * - * @remark This function may be called before @ref glfwInit. - * - * @warning The contexts of any remaining windows must not be current on any - * other thread when this function is called. - * - * @reentrancy This function must not be called from a callback. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref intro_init - * @sa glfwInit - * - * @since Added in version 1.0. - * - * @ingroup init - */ -GLFWAPI void glfwTerminate(void); - -/*! @brief Retrieves the version of the GLFW library. - * - * This function retrieves the major, minor and revision numbers of the GLFW - * library. It is intended for when you are using GLFW as a shared library and - * want to ensure that you are using the minimum required version. - * - * Any or all of the version arguments may be `NULL`. - * - * @param[out] major Where to store the major version number, or `NULL`. - * @param[out] minor Where to store the minor version number, or `NULL`. - * @param[out] rev Where to store the revision number, or `NULL`. - * - * @errors None. - * - * @remark This function may be called before @ref glfwInit. - * - * @thread_safety This function may be called from any thread. - * - * @sa @ref intro_version - * @sa glfwGetVersionString - * - * @since Added in version 1.0. - * - * @ingroup init - */ -GLFWAPI void glfwGetVersion(int* major, int* minor, int* rev); - -/*! @brief Returns a string describing the compile-time configuration. - * - * This function returns the compile-time generated - * [version string](@ref intro_version_string) of the GLFW library binary. It - * describes the version, platform, compiler and any platform-specific - * compile-time options. It should not be confused with the OpenGL or OpenGL - * ES version string, queried with `glGetString`. - * - * __Do not use the version string__ to parse the GLFW library version. The - * @ref glfwGetVersion function provides the version of the running library - * binary in numerical format. - * - * @return The ASCII encoded GLFW version string. - * - * @errors None. - * - * @remark This function may be called before @ref glfwInit. - * - * @pointer_lifetime The returned string is static and compile-time generated. - * - * @thread_safety This function may be called from any thread. - * - * @sa @ref intro_version - * @sa glfwGetVersion - * - * @since Added in version 3.0. - * - * @ingroup init - */ -GLFWAPI const char* glfwGetVersionString(void); - -/*! @brief Sets the error callback. - * - * This function sets the error callback, which is called with an error code - * and a human-readable description each time a GLFW error occurs. - * - * The error callback is called on the thread where the error occurred. If you - * are using GLFW from multiple threads, your error callback needs to be - * written accordingly. - * - * Because the description string may have been generated specifically for that - * error, it is not guaranteed to be valid after the callback has returned. If - * you wish to use it after the callback returns, you need to make a copy. - * - * Once set, the error callback remains set even after the library has been - * terminated. - * - * @param[in] cbfun The new callback, or `NULL` to remove the currently set - * callback. - * @return The previously set callback, or `NULL` if no callback was set. - * - * @errors None. - * - * @remark This function may be called before @ref glfwInit. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref error_handling - * - * @since Added in version 3.0. - * - * @ingroup init - */ -GLFWAPI GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun cbfun); - -/*! @brief Returns the currently connected monitors. - * - * This function returns an array of handles for all currently connected - * monitors. The primary monitor is always first in the returned array. If no - * monitors were found, this function returns `NULL`. - * - * @param[out] count Where to store the number of monitors in the returned - * array. This is set to zero if an error occurred. - * @return An array of monitor handles, or `NULL` if no monitors were found or - * if an [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @pointer_lifetime The returned array is allocated and freed by GLFW. You - * should not free it yourself. It is guaranteed to be valid only until the - * monitor configuration changes or the library is terminated. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref monitor_monitors - * @sa @ref monitor_event - * @sa glfwGetPrimaryMonitor - * - * @since Added in version 3.0. - * - * @ingroup monitor - */ -GLFWAPI GLFWmonitor** glfwGetMonitors(int* count); - -/*! @brief Returns the primary monitor. - * - * This function returns the primary monitor. This is usually the monitor - * where elements like the task bar or global menu bar are located. - * - * @return The primary monitor, or `NULL` if no monitors were found or if an - * [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @remark The primary monitor is always first in the array returned by @ref - * glfwGetMonitors. - * - * @sa @ref monitor_monitors - * @sa glfwGetMonitors - * - * @since Added in version 3.0. - * - * @ingroup monitor - */ -GLFWAPI GLFWmonitor* glfwGetPrimaryMonitor(void); - -/*! @brief Returns the position of the monitor's viewport on the virtual screen. - * - * This function returns the position, in screen coordinates, of the upper-left - * corner of the specified monitor. - * - * Any or all of the position arguments may be `NULL`. If an error occurs, all - * non-`NULL` position arguments will be set to zero. - * - * @param[in] monitor The monitor to query. - * @param[out] xpos Where to store the monitor x-coordinate, or `NULL`. - * @param[out] ypos Where to store the monitor y-coordinate, or `NULL`. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref monitor_properties - * - * @since Added in version 3.0. - * - * @ingroup monitor - */ -GLFWAPI void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos); - -/*! @brief Returns the physical size of the monitor. - * - * This function returns the size, in millimetres, of the display area of the - * specified monitor. - * - * Some systems do not provide accurate monitor size information, either - * because the monitor - * [EDID](https://en.wikipedia.org/wiki/Extended_display_identification_data) - * data is incorrect or because the driver does not report it accurately. - * - * Any or all of the size arguments may be `NULL`. If an error occurs, all - * non-`NULL` size arguments will be set to zero. - * - * @param[in] monitor The monitor to query. - * @param[out] widthMM Where to store the width, in millimetres, of the - * monitor's display area, or `NULL`. - * @param[out] heightMM Where to store the height, in millimetres, of the - * monitor's display area, or `NULL`. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @remark @win32 calculates the returned physical size from the - * current resolution and system DPI instead of querying the monitor EDID data. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref monitor_properties - * - * @since Added in version 3.0. - * - * @ingroup monitor - */ -GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* widthMM, int* heightMM); - -/*! @brief Returns the name of the specified monitor. - * - * This function returns a human-readable name, encoded as UTF-8, of the - * specified monitor. The name typically reflects the make and model of the - * monitor and is not guaranteed to be unique among the connected monitors. - * - * @param[in] monitor The monitor to query. - * @return The UTF-8 encoded name of the monitor, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @pointer_lifetime The returned string is allocated and freed by GLFW. You - * should not free it yourself. It is valid until the specified monitor is - * disconnected or the library is terminated. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref monitor_properties - * - * @since Added in version 3.0. - * - * @ingroup monitor - */ -GLFWAPI const char* glfwGetMonitorName(GLFWmonitor* monitor); - -/*! @brief Sets the monitor configuration callback. - * - * This function sets the monitor configuration callback, or removes the - * currently set callback. This is called when a monitor is connected to or - * disconnected from the system. - * - * @param[in] cbfun The new callback, or `NULL` to remove the currently set - * callback. - * @return The previously set callback, or `NULL` if no callback was set or the - * library had not been [initialized](@ref intro_init). - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref monitor_event - * - * @since Added in version 3.0. - * - * @ingroup monitor - */ -GLFWAPI GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun cbfun); - -/*! @brief Returns the available video modes for the specified monitor. - * - * This function returns an array of all video modes supported by the specified - * monitor. The returned array is sorted in ascending order, first by color - * bit depth (the sum of all channel depths) and then by resolution area (the - * product of width and height). - * - * @param[in] monitor The monitor to query. - * @param[out] count Where to store the number of video modes in the returned - * array. This is set to zero if an error occurred. - * @return An array of video modes, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @pointer_lifetime The returned array is allocated and freed by GLFW. You - * should not free it yourself. It is valid until the specified monitor is - * disconnected, this function is called again for that monitor or the library - * is terminated. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref monitor_modes - * @sa glfwGetVideoMode - * - * @since Added in version 1.0. - * @glfw3 Changed to return an array of modes for a specific monitor. - * - * @ingroup monitor - */ -GLFWAPI const GLFWvidmode* glfwGetVideoModes(GLFWmonitor* monitor, int* count); - -/*! @brief Returns the current mode of the specified monitor. - * - * This function returns the current video mode of the specified monitor. If - * you have created a full screen window for that monitor, the return value - * will depend on whether that window is iconified. - * - * @param[in] monitor The monitor to query. - * @return The current mode of the monitor, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @pointer_lifetime The returned array is allocated and freed by GLFW. You - * should not free it yourself. It is valid until the specified monitor is - * disconnected or the library is terminated. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref monitor_modes - * @sa glfwGetVideoModes - * - * @since Added in version 3.0. Replaces `glfwGetDesktopMode`. - * - * @ingroup monitor - */ -GLFWAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor); - -/*! @brief Generates a gamma ramp and sets it for the specified monitor. - * - * This function generates a 256-element gamma ramp from the specified exponent - * and then calls @ref glfwSetGammaRamp with it. The value must be a finite - * number greater than zero. - * - * @param[in] monitor The monitor whose gamma ramp to set. - * @param[in] gamma The desired exponent. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref monitor_gamma - * - * @since Added in version 3.0. - * - * @ingroup monitor - */ -GLFWAPI void glfwSetGamma(GLFWmonitor* monitor, float gamma); - -/*! @brief Returns the current gamma ramp for the specified monitor. - * - * This function returns the current gamma ramp of the specified monitor. - * - * @param[in] monitor The monitor to query. - * @return The current gamma ramp, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @pointer_lifetime The returned structure and its arrays are allocated and - * freed by GLFW. You should not free them yourself. They are valid until the - * specified monitor is disconnected, this function is called again for that - * monitor or the library is terminated. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref monitor_gamma - * - * @since Added in version 3.0. - * - * @ingroup monitor - */ -GLFWAPI const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor); - -/*! @brief Sets the current gamma ramp for the specified monitor. - * - * This function sets the current gamma ramp for the specified monitor. The - * original gamma ramp for that monitor is saved by GLFW the first time this - * function is called and is restored by @ref glfwTerminate. - * - * @param[in] monitor The monitor whose gamma ramp to set. - * @param[in] ramp The gamma ramp to use. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @remark Gamma ramp sizes other than 256 are not supported by all platforms - * or graphics hardware. - * - * @remark @win32 The gamma ramp size must be 256. - * - * @pointer_lifetime The specified gamma ramp is copied before this function - * returns. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref monitor_gamma - * - * @since Added in version 3.0. - * - * @ingroup monitor - */ -GLFWAPI void glfwSetGammaRamp(GLFWmonitor* monitor, const GLFWgammaramp* ramp); - -/*! @brief Resets all window hints to their default values. - * - * This function resets all window hints to their - * [default values](@ref window_hints_values). - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_hints - * @sa glfwWindowHint - * - * @since Added in version 3.0. - * - * @ingroup window - */ -GLFWAPI void glfwDefaultWindowHints(void); - -/*! @brief Sets the specified window hint to the desired value. - * - * This function sets hints for the next call to @ref glfwCreateWindow. The - * hints, once set, retain their values until changed by a call to @ref - * glfwWindowHint or @ref glfwDefaultWindowHints, or until the library is - * terminated. - * - * This function does not check whether the specified hint values are valid. - * If you set hints to invalid values this will instead be reported by the next - * call to @ref glfwCreateWindow. - * - * @param[in] hint The [window hint](@ref window_hints) to set. - * @param[in] value The new value of the window hint. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_INVALID_ENUM. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_hints - * @sa glfwDefaultWindowHints - * - * @since Added in version 3.0. Replaces `glfwOpenWindowHint`. - * - * @ingroup window - */ -GLFWAPI void glfwWindowHint(int hint, int value); - -/*! @brief Creates a window and its associated context. - * - * This function creates a window and its associated OpenGL or OpenGL ES - * context. Most of the options controlling how the window and its context - * should be created are specified with [window hints](@ref window_hints). - * - * Successful creation does not change which context is current. Before you - * can use the newly created context, you need to - * [make it current](@ref context_current). For information about the `share` - * parameter, see @ref context_sharing. - * - * The created window, framebuffer and context may differ from what you - * requested, as not all parameters and hints are - * [hard constraints](@ref window_hints_hard). This includes the size of the - * window, especially for full screen windows. To query the actual attributes - * of the created window, framebuffer and context, see @ref - * glfwGetWindowAttrib, @ref glfwGetWindowSize and @ref glfwGetFramebufferSize. - * - * To create a full screen window, you need to specify the monitor the window - * will cover. If no monitor is specified, the window will be windowed mode. - * Unless you have a way for the user to choose a specific monitor, it is - * recommended that you pick the primary monitor. For more information on how - * to query connected monitors, see @ref monitor_monitors. - * - * For full screen windows, the specified size becomes the resolution of the - * window's _desired video mode_. As long as a full screen window is not - * iconified, the supported video mode most closely matching the desired video - * mode is set for the specified monitor. For more information about full - * screen windows, including the creation of so called _windowed full screen_ - * or _borderless full screen_ windows, see @ref window_windowed_full_screen. - * - * By default, newly created windows use the placement recommended by the - * window system. To create the window at a specific position, make it - * initially invisible using the [GLFW_VISIBLE](@ref window_hints_wnd) window - * hint, set its [position](@ref window_pos) and then [show](@ref window_hide) - * it. - * - * As long as at least one full screen window is not iconified, the screensaver - * is prohibited from starting. - * - * Window systems put limits on window sizes. Very large or very small window - * dimensions may be overridden by the window system on creation. Check the - * actual [size](@ref window_size) after creation. - * - * The [swap interval](@ref buffer_swap) is not set during window creation and - * the initial value may vary depending on driver settings and defaults. - * - * @param[in] width The desired width, in screen coordinates, of the window. - * This must be greater than zero. - * @param[in] height The desired height, in screen coordinates, of the window. - * This must be greater than zero. - * @param[in] title The initial, UTF-8 encoded window title. - * @param[in] monitor The monitor to use for full screen mode, or `NULL` for - * windowed mode. - * @param[in] share The window whose context to share resources with, or `NULL` - * to not share resources. - * @return The handle of the created window, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_INVALID_ENUM, @ref GLFW_INVALID_VALUE, @ref GLFW_API_UNAVAILABLE, @ref - * GLFW_VERSION_UNAVAILABLE, @ref GLFW_FORMAT_UNAVAILABLE and @ref - * GLFW_PLATFORM_ERROR. - * - * @remark @win32 Window creation will fail if the Microsoft GDI software - * OpenGL implementation is the only one available. - * - * @remark @win32 If the executable has an icon resource named `GLFW_ICON,` - * it will be set as the icon for the window. If no such icon is present, the - * `IDI_WINLOGO` icon will be used instead. - * - * @remark @win32 The context to share resources with must not be current on - * any other thread. - * - * @remark @osx The GLFW window has no icon, as it is not a document - * window, but the dock icon will be the same as the application bundle's icon. - * For more information on bundles, see the - * [Bundle Programming Guide](https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/) - * in the Mac Developer Library. - * - * @remark @osx The first time a window is created the menu bar is populated - * with common commands like Hide, Quit and About. The About entry opens - * a minimal about dialog with information from the application's bundle. The - * menu bar can be disabled with a - * [compile-time option](@ref compile_options_osx). - * - * @remark @osx On OS X 10.10 and later the window frame will not be rendered - * at full resolution on Retina displays unless the `NSHighResolutionCapable` - * key is enabled in the application bundle's `Info.plist`. For more - * information, see - * [High Resolution Guidelines for OS X](https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Explained/Explained.html) - * in the Mac Developer Library. The GLFW test and example programs use - * a custom `Info.plist` template for this, which can be found as - * `CMake/MacOSXBundleInfo.plist.in` in the source tree. - * - * @remark @x11 There is no mechanism for setting the window icon yet. - * - * @remark @x11 Some window managers will not respect the placement of - * initially hidden windows. - * - * @remark @x11 Due to the asynchronous nature of X11, it may take a moment for - * a window to reach its requested state. This means you may not be able to - * query the final size, position or other attributes directly after window - * creation. - * - * @reentrancy This function must not be called from a callback. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_creation - * @sa glfwDestroyWindow - * - * @since Added in version 3.0. Replaces `glfwOpenWindow`. - * - * @ingroup window - */ -GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share); - -/*! @brief Destroys the specified window and its context. - * - * This function destroys the specified window and its context. On calling - * this function, no further callbacks will be called for that window. - * - * If the context of the specified window is current on the main thread, it is - * detached before being destroyed. - * - * @param[in] window The window to destroy. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @note The context of the specified window must not be current on any other - * thread when this function is called. - * - * @reentrancy This function must not be called from a callback. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_creation - * @sa glfwCreateWindow - * - * @since Added in version 3.0. Replaces `glfwCloseWindow`. - * - * @ingroup window - */ -GLFWAPI void glfwDestroyWindow(GLFWwindow* window); - -/*! @brief Checks the close flag of the specified window. - * - * This function returns the value of the close flag of the specified window. - * - * @param[in] window The window to query. - * @return The value of the close flag. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @sa @ref window_close - * - * @since Added in version 3.0. - * - * @ingroup window - */ -GLFWAPI int glfwWindowShouldClose(GLFWwindow* window); - -/*! @brief Sets the close flag of the specified window. - * - * This function sets the value of the close flag of the specified window. - * This can be used to override the user's attempt to close the window, or - * to signal that it should be closed. - * - * @param[in] window The window whose flag to change. - * @param[in] value The new value. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @sa @ref window_close - * - * @since Added in version 3.0. - * - * @ingroup window - */ -GLFWAPI void glfwSetWindowShouldClose(GLFWwindow* window, int value); - -/*! @brief Sets the title of the specified window. - * - * This function sets the window title, encoded as UTF-8, of the specified - * window. - * - * @param[in] window The window whose title to change. - * @param[in] title The UTF-8 encoded window title. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @remark @osx The window title will not be updated until the next time you - * process events. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_title - * - * @since Added in version 1.0. - * @glfw3 Added window handle parameter. - * - * @ingroup window - */ -GLFWAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title); - -/*! @brief Sets the icon for the specified window. - * - * This function sets the icon of the specified window. If passed an array of - * candidate images, those of or closest to the sizes desired by the system are - * selected. If no images are specified, the window reverts to its default - * icon. - * - * The desired image sizes varies depending on platform and system settings. - * The selected images will be rescaled as needed. Good sizes include 16x16, - * 32x32 and 48x48. - * - * @param[in] window The window whose icon to set. - * @param[in] count The number of images in the specified array, or zero to - * revert to the default window icon. - * @param[in] images The images to create the icon from. This is ignored if - * count is zero. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @pointer_lifetime The specified image data is copied before this function - * returns. - * - * @remark @osx The GLFW window has no icon, as it is not a document - * window, but the dock icon will be the same as the application bundle's icon. - * For more information on bundles, see the - * [Bundle Programming Guide](https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/) - * in the Mac Developer Library. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_icon - * - * @since Added in version 3.2. - * - * @ingroup window - */ -GLFWAPI void glfwSetWindowIcon(GLFWwindow* window, int count, const GLFWimage* images); - -/*! @brief Retrieves the position of the client area of the specified window. - * - * This function retrieves the position, in screen coordinates, of the - * upper-left corner of the client area of the specified window. - * - * Any or all of the position arguments may be `NULL`. If an error occurs, all - * non-`NULL` position arguments will be set to zero. - * - * @param[in] window The window to query. - * @param[out] xpos Where to store the x-coordinate of the upper-left corner of - * the client area, or `NULL`. - * @param[out] ypos Where to store the y-coordinate of the upper-left corner of - * the client area, or `NULL`. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_pos - * @sa glfwSetWindowPos - * - * @since Added in version 3.0. - * - * @ingroup window - */ -GLFWAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos); - -/*! @brief Sets the position of the client area of the specified window. - * - * This function sets the position, in screen coordinates, of the upper-left - * corner of the client area of the specified windowed mode window. If the - * window is a full screen window, this function does nothing. - * - * __Do not use this function__ to move an already visible window unless you - * have very good reasons for doing so, as it will confuse and annoy the user. - * - * The window manager may put limits on what positions are allowed. GLFW - * cannot and should not override these limits. - * - * @param[in] window The window to query. - * @param[in] xpos The x-coordinate of the upper-left corner of the client area. - * @param[in] ypos The y-coordinate of the upper-left corner of the client area. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_pos - * @sa glfwGetWindowPos - * - * @since Added in version 1.0. - * @glfw3 Added window handle parameter. - * - * @ingroup window - */ -GLFWAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos); - -/*! @brief Retrieves the size of the client area of the specified window. - * - * This function retrieves the size, in screen coordinates, of the client area - * of the specified window. If you wish to retrieve the size of the - * framebuffer of the window in pixels, see @ref glfwGetFramebufferSize. - * - * Any or all of the size arguments may be `NULL`. If an error occurs, all - * non-`NULL` size arguments will be set to zero. - * - * @param[in] window The window whose size to retrieve. - * @param[out] width Where to store the width, in screen coordinates, of the - * client area, or `NULL`. - * @param[out] height Where to store the height, in screen coordinates, of the - * client area, or `NULL`. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_size - * @sa glfwSetWindowSize - * - * @since Added in version 1.0. - * @glfw3 Added window handle parameter. - * - * @ingroup window - */ -GLFWAPI void glfwGetWindowSize(GLFWwindow* window, int* width, int* height); - -/*! @brief Sets the size limits of the specified window. - * - * This function sets the size limits of the client area of the specified - * window. If the window is full screen, the size limits only take effect if - * once it is made windowed. If the window is not resizable, this function - * does nothing. - * - * The size limits are applied immediately to a windowed mode window and may - * cause it to be resized. - * - * @param[in] window The window to set limits for. - * @param[in] minwidth The minimum width, in screen coordinates, of the client - * area, or `GLFW_DONT_CARE`. - * @param[in] minheight The minimum height, in screen coordinates, of the - * client area, or `GLFW_DONT_CARE`. - * @param[in] maxwidth The maximum width, in screen coordinates, of the client - * area, or `GLFW_DONT_CARE`. - * @param[in] maxheight The maximum height, in screen coordinates, of the - * client area, or `GLFW_DONT_CARE`. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @remark If you set size limits and an aspect ratio that conflict, the - * results are undefined. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_sizelimits - * @sa glfwSetWindowAspectRatio - * - * @since Added in version 3.2. - * - * @ingroup window - */ -GLFWAPI void glfwSetWindowSizeLimits(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight); - -/*! @brief Sets the aspect ratio of the specified window. - * - * This function sets the required aspect ratio of the client area of the - * specified window. If the window is full screen, the aspect ratio only takes - * effect once it is made windowed. If the window is not resizable, this - * function does nothing. - * - * The aspect ratio is specified as a numerator and a denominator and both - * values must be greater than zero. For example, the common 16:9 aspect ratio - * is specified as 16 and 9, respectively. - * - * If the numerator and denominator is set to `GLFW_DONT_CARE` then the aspect - * ratio limit is disabled. - * - * The aspect ratio is applied immediately to a windowed mode window and may - * cause it to be resized. - * - * @param[in] window The window to set limits for. - * @param[in] numer The numerator of the desired aspect ratio, or - * `GLFW_DONT_CARE`. - * @param[in] denom The denominator of the desired aspect ratio, or - * `GLFW_DONT_CARE`. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR. - * - * @remark If you set size limits and an aspect ratio that conflict, the - * results are undefined. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_sizelimits - * @sa glfwSetWindowSizeLimits - * - * @since Added in version 3.2. - * - * @ingroup window - */ -GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow* window, int numer, int denom); - -/*! @brief Sets the size of the client area of the specified window. - * - * This function sets the size, in screen coordinates, of the client area of - * the specified window. - * - * For full screen windows, this function updates the resolution of its desired - * video mode and switches to the video mode closest to it, without affecting - * the window's context. As the context is unaffected, the bit depths of the - * framebuffer remain unchanged. - * - * If you wish to update the refresh rate of the desired video mode in addition - * to its resolution, see @ref glfwSetWindowMonitor. - * - * The window manager may put limits on what sizes are allowed. GLFW cannot - * and should not override these limits. - * - * @param[in] window The window to resize. - * @param[in] width The desired width, in screen coordinates, of the window - * client area. - * @param[in] height The desired height, in screen coordinates, of the window - * client area. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_size - * @sa glfwGetWindowSize - * @sa glfwSetWindowMonitor - * - * @since Added in version 1.0. - * @glfw3 Added window handle parameter. - * - * @ingroup window - */ -GLFWAPI void glfwSetWindowSize(GLFWwindow* window, int width, int height); - -/*! @brief Retrieves the size of the framebuffer of the specified window. - * - * This function retrieves the size, in pixels, of the framebuffer of the - * specified window. If you wish to retrieve the size of the window in screen - * coordinates, see @ref glfwGetWindowSize. - * - * Any or all of the size arguments may be `NULL`. If an error occurs, all - * non-`NULL` size arguments will be set to zero. - * - * @param[in] window The window whose framebuffer to query. - * @param[out] width Where to store the width, in pixels, of the framebuffer, - * or `NULL`. - * @param[out] height Where to store the height, in pixels, of the framebuffer, - * or `NULL`. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_fbsize - * @sa glfwSetFramebufferSizeCallback - * - * @since Added in version 3.0. - * - * @ingroup window - */ -GLFWAPI void glfwGetFramebufferSize(GLFWwindow* window, int* width, int* height); - -/*! @brief Retrieves the size of the frame of the window. - * - * This function retrieves the size, in screen coordinates, of each edge of the - * frame of the specified window. This size includes the title bar, if the - * window has one. The size of the frame may vary depending on the - * [window-related hints](@ref window_hints_wnd) used to create it. - * - * Because this function retrieves the size of each window frame edge and not - * the offset along a particular coordinate axis, the retrieved values will - * always be zero or positive. - * - * Any or all of the size arguments may be `NULL`. If an error occurs, all - * non-`NULL` size arguments will be set to zero. - * - * @param[in] window The window whose frame size to query. - * @param[out] left Where to store the size, in screen coordinates, of the left - * edge of the window frame, or `NULL`. - * @param[out] top Where to store the size, in screen coordinates, of the top - * edge of the window frame, or `NULL`. - * @param[out] right Where to store the size, in screen coordinates, of the - * right edge of the window frame, or `NULL`. - * @param[out] bottom Where to store the size, in screen coordinates, of the - * bottom edge of the window frame, or `NULL`. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_size - * - * @since Added in version 3.1. - * - * @ingroup window - */ -GLFWAPI void glfwGetWindowFrameSize(GLFWwindow* window, int* left, int* top, int* right, int* bottom); - -/*! @brief Iconifies the specified window. - * - * This function iconifies (minimizes) the specified window if it was - * previously restored. If the window is already iconified, this function does - * nothing. - * - * If the specified window is a full screen window, the original monitor - * resolution is restored until the window is restored. - * - * @param[in] window The window to iconify. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_iconify - * @sa glfwRestoreWindow - * @sa glfwMaximizeWindow - * - * @since Added in version 2.1. - * @glfw3 Added window handle parameter. - * - * @ingroup window - */ -GLFWAPI void glfwIconifyWindow(GLFWwindow* window); - -/*! @brief Restores the specified window. - * - * This function restores the specified window if it was previously iconified - * (minimized) or maximized. If the window is already restored, this function - * does nothing. - * - * If the specified window is a full screen window, the resolution chosen for - * the window is restored on the selected monitor. - * - * @param[in] window The window to restore. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_iconify - * @sa glfwIconifyWindow - * @sa glfwMaximizeWindow - * - * @since Added in version 2.1. - * @glfw3 Added window handle parameter. - * - * @ingroup window - */ -GLFWAPI void glfwRestoreWindow(GLFWwindow* window); - -/*! @brief Maximizes the specified window. - * - * This function maximizes the specified window if it was previously not - * maximized. If the window is already maximized, this function does nothing. - * - * If the specified window is a full screen window, this function does nothing. - * - * @param[in] window The window to maximize. - * - * @par Thread Safety - * This function may only be called from the main thread. - * - * @sa @ref window_iconify - * @sa glfwIconifyWindow - * @sa glfwRestoreWindow - * - * @since Added in GLFW 3.2. - * - * @ingroup window - */ -GLFWAPI void glfwMaximizeWindow(GLFWwindow* window); - -/*! @brief Makes the specified window visible. - * - * This function makes the specified window visible if it was previously - * hidden. If the window is already visible or is in full screen mode, this - * function does nothing. - * - * @param[in] window The window to make visible. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_hide - * @sa glfwHideWindow - * - * @since Added in version 3.0. - * - * @ingroup window - */ -GLFWAPI void glfwShowWindow(GLFWwindow* window); - -/*! @brief Hides the specified window. - * - * This function hides the specified window if it was previously visible. If - * the window is already hidden or is in full screen mode, this function does - * nothing. - * - * @param[in] window The window to hide. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_hide - * @sa glfwShowWindow - * - * @since Added in version 3.0. - * - * @ingroup window - */ -GLFWAPI void glfwHideWindow(GLFWwindow* window); - -/*! @brief Brings the specified window to front and sets input focus. - * - * This function brings the specified window to front and sets input focus. - * The window should already be visible and not iconified. - * - * By default, both windowed and full screen mode windows are focused when - * initially created. Set the [GLFW_FOCUSED](@ref window_hints_wnd) to disable - * this behavior. - * - * __Do not use this function__ to steal focus from other applications unless - * you are certain that is what the user wants. Focus stealing can be - * extremely disruptive. - * - * @param[in] window The window to give input focus. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_focus - * - * @since Added in version 3.2. - * - * @ingroup window - */ -GLFWAPI void glfwFocusWindow(GLFWwindow* window); - -/*! @brief Returns the monitor that the window uses for full screen mode. - * - * This function returns the handle of the monitor that the specified window is - * in full screen on. - * - * @param[in] window The window to query. - * @return The monitor, or `NULL` if the window is in windowed mode or an error - * occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_monitor - * @sa glfwSetWindowMonitor - * - * @since Added in version 3.0. - * - * @ingroup window - */ -GLFWAPI GLFWmonitor* glfwGetWindowMonitor(GLFWwindow* window); - -/*! @brief Sets the mode, monitor, video mode and placement of a window. - * - * This function sets the monitor that the window uses for full screen mode or, - * if the monitor is `NULL`, makes it windowed mode. - * - * When setting a monitor, this function updates the width, height and refresh - * rate of the desired video mode and switches to the video mode closest to it. - * The window position is ignored when setting a monitor. - * - * When the monitor is `NULL`, the position, width and height are used to - * place the window client area. The refresh rate is ignored when no monitor - * is specified. - * - * If you only wish to update the resolution of a full screen window or the - * size of a windowed mode window, see @ref glfwSetWindowSize. - * - * When a window transitions from full screen to windowed mode, this function - * restores any previous window settings such as whether it is decorated, - * floating, resizable, has size or aspect ratio limits, etc.. - * - * @param[in] window The window whose monitor, size or video mode to set. - * @param[in] monitor The desired monitor, or `NULL` to set windowed mode. - * @param[in] xpos The desired x-coordinate of the upper-left corner of the - * client area. - * @param[in] ypos The desired y-coordinate of the upper-left corner of the - * client area. - * @param[in] width The desired with, in screen coordinates, of the client area - * or video mode. - * @param[in] height The desired height, in screen coordinates, of the client - * area or video mode. - * @param[in] refreshRate The desired refresh rate, in Hz, of the video mode. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_monitor - * @sa @ref window_full_screen - * @sa glfwGetWindowMonitor - * @sa glfwSetWindowSize - * - * @since Added in version 3.2. - * - * @ingroup window - */ -GLFWAPI void glfwSetWindowMonitor(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate); - -/*! @brief Returns an attribute of the specified window. - * - * This function returns the value of an attribute of the specified window or - * its OpenGL or OpenGL ES context. - * - * @param[in] window The window to query. - * @param[in] attrib The [window attribute](@ref window_attribs) whose value to - * return. - * @return The value of the attribute, or zero if an - * [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR. - * - * @remark Framebuffer related hints are not window attributes. See @ref - * window_attribs_fb for more information. - * - * @remark Zero is a valid value for many window and context related - * attributes so you cannot use a return value of zero as an indication of - * errors. However, this function should not fail as long as it is passed - * valid arguments and the library has been [initialized](@ref intro_init). - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_attribs - * - * @since Added in version 3.0. Replaces `glfwGetWindowParam` and - * `glfwGetGLVersion`. - * - * @ingroup window - */ -GLFWAPI int glfwGetWindowAttrib(GLFWwindow* window, int attrib); - -/*! @brief Sets the user pointer of the specified window. - * - * This function sets the user-defined pointer of the specified window. The - * current value is retained until the window is destroyed. The initial value - * is `NULL`. - * - * @param[in] window The window whose pointer to set. - * @param[in] pointer The new value. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @sa @ref window_userptr - * @sa glfwGetWindowUserPointer - * - * @since Added in version 3.0. - * - * @ingroup window - */ -GLFWAPI void glfwSetWindowUserPointer(GLFWwindow* window, void* pointer); - -/*! @brief Returns the user pointer of the specified window. - * - * This function returns the current value of the user-defined pointer of the - * specified window. The initial value is `NULL`. - * - * @param[in] window The window whose pointer to return. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @sa @ref window_userptr - * @sa glfwSetWindowUserPointer - * - * @since Added in version 3.0. - * - * @ingroup window - */ -GLFWAPI void* glfwGetWindowUserPointer(GLFWwindow* window); - -/*! @brief Sets the position callback for the specified window. - * - * This function sets the position callback of the specified window, which is - * called when the window is moved. The callback is provided with the screen - * position of the upper-left corner of the client area of the window. - * - * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set - * callback. - * @return The previously set callback, or `NULL` if no callback was set or the - * library had not been [initialized](@ref intro_init). - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_pos - * - * @since Added in version 3.0. - * - * @ingroup window - */ -GLFWAPI GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow* window, GLFWwindowposfun cbfun); - -/*! @brief Sets the size callback for the specified window. - * - * This function sets the size callback of the specified window, which is - * called when the window is resized. The callback is provided with the size, - * in screen coordinates, of the client area of the window. - * - * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set - * callback. - * @return The previously set callback, or `NULL` if no callback was set or the - * library had not been [initialized](@ref intro_init). - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_size - * - * @since Added in version 1.0. - * @glfw3 Added window handle parameter and return value. - * - * @ingroup window - */ -GLFWAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow* window, GLFWwindowsizefun cbfun); - -/*! @brief Sets the close callback for the specified window. - * - * This function sets the close callback of the specified window, which is - * called when the user attempts to close the window, for example by clicking - * the close widget in the title bar. - * - * The close flag is set before this callback is called, but you can modify it - * at any time with @ref glfwSetWindowShouldClose. - * - * The close callback is not triggered by @ref glfwDestroyWindow. - * - * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set - * callback. - * @return The previously set callback, or `NULL` if no callback was set or the - * library had not been [initialized](@ref intro_init). - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @remark @osx Selecting Quit from the application menu will trigger the close - * callback for all windows. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_close - * - * @since Added in version 2.5. - * @glfw3 Added window handle parameter and return value. - * - * @ingroup window - */ -GLFWAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow* window, GLFWwindowclosefun cbfun); - -/*! @brief Sets the refresh callback for the specified window. - * - * This function sets the refresh callback of the specified window, which is - * called when the client area of the window needs to be redrawn, for example - * if the window has been exposed after having been covered by another window. - * - * On compositing window systems such as Aero, Compiz or Aqua, where the window - * contents are saved off-screen, this callback may be called only very - * infrequently or never at all. - * - * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set - * callback. - * @return The previously set callback, or `NULL` if no callback was set or the - * library had not been [initialized](@ref intro_init). - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_refresh - * - * @since Added in version 2.5. - * @glfw3 Added window handle parameter and return value. - * - * @ingroup window - */ -GLFWAPI GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow* window, GLFWwindowrefreshfun cbfun); - -/*! @brief Sets the focus callback for the specified window. - * - * This function sets the focus callback of the specified window, which is - * called when the window gains or loses input focus. - * - * After the focus callback is called for a window that lost input focus, - * synthetic key and mouse button release events will be generated for all such - * that had been pressed. For more information, see @ref glfwSetKeyCallback - * and @ref glfwSetMouseButtonCallback. - * - * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set - * callback. - * @return The previously set callback, or `NULL` if no callback was set or the - * library had not been [initialized](@ref intro_init). - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_focus - * - * @since Added in version 3.0. - * - * @ingroup window - */ -GLFWAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow* window, GLFWwindowfocusfun cbfun); - -/*! @brief Sets the iconify callback for the specified window. - * - * This function sets the iconification callback of the specified window, which - * is called when the window is iconified or restored. - * - * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set - * callback. - * @return The previously set callback, or `NULL` if no callback was set or the - * library had not been [initialized](@ref intro_init). - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_iconify - * - * @since Added in version 3.0. - * - * @ingroup window - */ -GLFWAPI GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow* window, GLFWwindowiconifyfun cbfun); - -/*! @brief Sets the framebuffer resize callback for the specified window. - * - * This function sets the framebuffer resize callback of the specified window, - * which is called when the framebuffer of the specified window is resized. - * - * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set - * callback. - * @return The previously set callback, or `NULL` if no callback was set or the - * library had not been [initialized](@ref intro_init). - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref window_fbsize - * - * @since Added in version 3.0. - * - * @ingroup window - */ -GLFWAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow* window, GLFWframebuffersizefun cbfun); - -/*! @brief Processes all pending events. - * - * This function processes only those events that are already in the event - * queue and then returns immediately. Processing events will cause the window - * and input callbacks associated with those events to be called. - * - * On some platforms, a window move, resize or menu operation will cause event - * processing to block. This is due to how event processing is designed on - * those platforms. You can use the - * [window refresh callback](@ref window_refresh) to redraw the contents of - * your window when necessary during such operations. - * - * On some platforms, certain events are sent directly to the application - * without going through the event queue, causing callbacks to be called - * outside of a call to one of the event processing functions. - * - * Event processing is not required for joystick input to work. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @reentrancy This function must not be called from a callback. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref events - * @sa glfwWaitEvents - * @sa glfwWaitEventsTimeout - * - * @since Added in version 1.0. - * - * @ingroup window - */ -GLFWAPI void glfwPollEvents(void); - -/*! @brief Waits until events are queued and processes them. - * - * This function puts the calling thread to sleep until at least one event is - * available in the event queue. Once one or more events are available, - * it behaves exactly like @ref glfwPollEvents, i.e. the events in the queue - * are processed and the function then returns immediately. Processing events - * will cause the window and input callbacks associated with those events to be - * called. - * - * Since not all events are associated with callbacks, this function may return - * without a callback having been called even if you are monitoring all - * callbacks. - * - * On some platforms, a window move, resize or menu operation will cause event - * processing to block. This is due to how event processing is designed on - * those platforms. You can use the - * [window refresh callback](@ref window_refresh) to redraw the contents of - * your window when necessary during such operations. - * - * On some platforms, certain callbacks may be called outside of a call to one - * of the event processing functions. - * - * If no windows exist, this function returns immediately. For synchronization - * of threads in applications that do not create windows, use your threading - * library of choice. - * - * Event processing is not required for joystick input to work. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @reentrancy This function must not be called from a callback. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref events - * @sa glfwPollEvents - * @sa glfwWaitEventsTimeout - * - * @since Added in version 2.5. - * - * @ingroup window - */ -GLFWAPI void glfwWaitEvents(void); - -/*! @brief Waits with timeout until events are queued and processes them. - * - * This function puts the calling thread to sleep until at least one event is - * available in the event queue, or until the specified timeout is reached. If - * one or more events are available, it behaves exactly like @ref - * glfwPollEvents, i.e. the events in the queue are processed and the function - * then returns immediately. Processing events will cause the window and input - * callbacks associated with those events to be called. - * - * The timeout value must be a positive finite number. - * - * Since not all events are associated with callbacks, this function may return - * without a callback having been called even if you are monitoring all - * callbacks. - * - * On some platforms, a window move, resize or menu operation will cause event - * processing to block. This is due to how event processing is designed on - * those platforms. You can use the - * [window refresh callback](@ref window_refresh) to redraw the contents of - * your window when necessary during such operations. - * - * On some platforms, certain callbacks may be called outside of a call to one - * of the event processing functions. - * - * If no windows exist, this function returns immediately. For synchronization - * of threads in applications that do not create windows, use your threading - * library of choice. - * - * Event processing is not required for joystick input to work. - * - * @param[in] timeout The maximum amount of time, in seconds, to wait. - * - * @reentrancy This function must not be called from a callback. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref events - * @sa glfwPollEvents - * @sa glfwWaitEvents - * - * @since Added in version 3.2. - * - * @ingroup window - */ -GLFWAPI void glfwWaitEventsTimeout(double timeout); - -/*! @brief Posts an empty event to the event queue. - * - * This function posts an empty event from the current thread to the event - * queue, causing @ref glfwWaitEvents to return. - * - * If no windows exist, this function returns immediately. For synchronization - * of threads in applications that do not create windows, use your threading - * library of choice. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @thread_safety This function may be called from any thread. - * - * @sa @ref events - * @sa glfwWaitEvents - * - * @since Added in version 3.1. - * - * @ingroup window - */ -GLFWAPI void glfwPostEmptyEvent(void); - -/*! @brief Returns the value of an input option for the specified window. - * - * This function returns the value of an input option for the specified window. - * The mode must be one of `GLFW_CURSOR`, `GLFW_STICKY_KEYS` or - * `GLFW_STICKY_MOUSE_BUTTONS`. - * - * @param[in] window The window to query. - * @param[in] mode One of `GLFW_CURSOR`, `GLFW_STICKY_KEYS` or - * `GLFW_STICKY_MOUSE_BUTTONS`. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_INVALID_ENUM. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa glfwSetInputMode - * - * @since Added in version 3.0. - * - * @ingroup input - */ -GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode); - -/*! @brief Sets an input option for the specified window. - * - * This function sets an input mode option for the specified window. The mode - * must be one of `GLFW_CURSOR`, `GLFW_STICKY_KEYS` or - * `GLFW_STICKY_MOUSE_BUTTONS`. - * - * If the mode is `GLFW_CURSOR`, the value must be one of the following cursor - * modes: - * - `GLFW_CURSOR_NORMAL` makes the cursor visible and behaving normally. - * - `GLFW_CURSOR_HIDDEN` makes the cursor invisible when it is over the client - * area of the window but does not restrict the cursor from leaving. - * - `GLFW_CURSOR_DISABLED` hides and grabs the cursor, providing virtual - * and unlimited cursor movement. This is useful for implementing for - * example 3D camera controls. - * - * If the mode is `GLFW_STICKY_KEYS`, the value must be either `GLFW_TRUE` to - * enable sticky keys, or `GLFW_FALSE` to disable it. If sticky keys are - * enabled, a key press will ensure that @ref glfwGetKey returns `GLFW_PRESS` - * the next time it is called even if the key had been released before the - * call. This is useful when you are only interested in whether keys have been - * pressed but not when or in which order. - * - * If the mode is `GLFW_STICKY_MOUSE_BUTTONS`, the value must be either - * `GLFW_TRUE` to enable sticky mouse buttons, or `GLFW_FALSE` to disable it. - * If sticky mouse buttons are enabled, a mouse button press will ensure that - * @ref glfwGetMouseButton returns `GLFW_PRESS` the next time it is called even - * if the mouse button had been released before the call. This is useful when - * you are only interested in whether mouse buttons have been pressed but not - * when or in which order. - * - * @param[in] window The window whose input mode to set. - * @param[in] mode One of `GLFW_CURSOR`, `GLFW_STICKY_KEYS` or - * `GLFW_STICKY_MOUSE_BUTTONS`. - * @param[in] value The new value of the specified input mode. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa glfwGetInputMode - * - * @since Added in version 3.0. Replaces `glfwEnable` and `glfwDisable`. - * - * @ingroup input - */ -GLFWAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value); - -/*! @brief Returns the locale::getd name of the specified printable key. - * - * This function returns the locale::getd name of the specified printable key. - * This is intended for displaying key bindings to the user. - * - * If the key is `GLFW_KEY_UNKNOWN`, the scancode is used instead, otherwise - * the scancode is ignored. If a non-printable key or (if the key is - * `GLFW_KEY_UNKNOWN`) a scancode that maps to a non-printable key is - * specified, this function returns `NULL`. - * - * This behavior allows you to pass in the arguments passed to the - * [key callback](@ref input_key) without modification. - * - * The printable keys are: - * - `GLFW_KEY_APOSTROPHE` - * - `GLFW_KEY_COMMA` - * - `GLFW_KEY_MINUS` - * - `GLFW_KEY_PERIOD` - * - `GLFW_KEY_SLASH` - * - `GLFW_KEY_SEMICOLON` - * - `GLFW_KEY_EQUAL` - * - `GLFW_KEY_LEFT_BRACKET` - * - `GLFW_KEY_RIGHT_BRACKET` - * - `GLFW_KEY_BACKSLASH` - * - `GLFW_KEY_WORLD_1` - * - `GLFW_KEY_WORLD_2` - * - `GLFW_KEY_0` to `GLFW_KEY_9` - * - `GLFW_KEY_A` to `GLFW_KEY_Z` - * - `GLFW_KEY_KP_0` to `GLFW_KEY_KP_9` - * - `GLFW_KEY_KP_DECIMAL` - * - `GLFW_KEY_KP_DIVIDE` - * - `GLFW_KEY_KP_MULTIPLY` - * - `GLFW_KEY_KP_SUBTRACT` - * - `GLFW_KEY_KP_ADD` - * - `GLFW_KEY_KP_EQUAL` - * - * @param[in] key The key to query, or `GLFW_KEY_UNKNOWN`. - * @param[in] scancode The scancode of the key to query. - * @return The locale::getd name of the key, or `NULL`. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @pointer_lifetime The returned string is allocated and freed by GLFW. You - * should not free it yourself. It is valid until the next call to @ref - * glfwGetKeyName, or until the library is terminated. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref input_key_name - * - * @since Added in version 3.2. - * - * @ingroup input - */ -GLFWAPI const char* glfwGetKeyName(int key, int scancode); - -/*! @brief Returns the last reported state of a keyboard key for the specified - * window. - * - * This function returns the last state reported for the specified key to the - * specified window. The returned state is one of `GLFW_PRESS` or - * `GLFW_RELEASE`. The higher-level action `GLFW_REPEAT` is only reported to - * the key callback. - * - * If the `GLFW_STICKY_KEYS` input mode is enabled, this function returns - * `GLFW_PRESS` the first time you call it for a key that was pressed, even if - * that key has already been released. - * - * The key functions deal with physical keys, with [key tokens](@ref keys) - * named after their use on the standard US keyboard layout. If you want to - * input text, use the Unicode character callback instead. - * - * The [modifier key bit masks](@ref mods) are not key tokens and cannot be - * used with this function. - * - * __Do not use this function__ to implement [text input](@ref input_char). - * - * @param[in] window The desired window. - * @param[in] key The desired [keyboard key](@ref keys). `GLFW_KEY_UNKNOWN` is - * not a valid key for this function. - * @return One of `GLFW_PRESS` or `GLFW_RELEASE`. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_INVALID_ENUM. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref input_key - * - * @since Added in version 1.0. - * @glfw3 Added window handle parameter. - * - * @ingroup input - */ -GLFWAPI int glfwGetKey(GLFWwindow* window, int key); - -/*! @brief Returns the last reported state of a mouse button for the specified - * window. - * - * This function returns the last state reported for the specified mouse button - * to the specified window. The returned state is one of `GLFW_PRESS` or - * `GLFW_RELEASE`. - * - * If the `GLFW_STICKY_MOUSE_BUTTONS` input mode is enabled, this function - * `GLFW_PRESS` the first time you call it for a mouse button that was pressed, - * even if that mouse button has already been released. - * - * @param[in] window The desired window. - * @param[in] button The desired [mouse button](@ref buttons). - * @return One of `GLFW_PRESS` or `GLFW_RELEASE`. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_INVALID_ENUM. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref input_mouse_button - * - * @since Added in version 1.0. - * @glfw3 Added window handle parameter. - * - * @ingroup input - */ -GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button); - -/*! @brief Retrieves the position of the cursor relative to the client area of - * the window. - * - * This function returns the position of the cursor, in screen coordinates, - * relative to the upper-left corner of the client area of the specified - * window. - * - * If the cursor is disabled (with `GLFW_CURSOR_DISABLED`) then the cursor - * position is unbounded and limited only by the minimum and maximum values of - * a `double`. - * - * The coordinate can be converted to their integer equivalents with the - * `floor` function. Casting directly to an integer type works for positive - * coordinates, but fails for negative ones. - * - * Any or all of the position arguments may be `NULL`. If an error occurs, all - * non-`NULL` position arguments will be set to zero. - * - * @param[in] window The desired window. - * @param[out] xpos Where to store the cursor x-coordinate, relative to the - * left edge of the client area, or `NULL`. - * @param[out] ypos Where to store the cursor y-coordinate, relative to the to - * top edge of the client area, or `NULL`. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref cursor_pos - * @sa glfwSetCursorPos - * - * @since Added in version 3.0. Replaces `glfwGetMousePos`. - * - * @ingroup input - */ -GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos); - -/*! @brief Sets the position of the cursor, relative to the client area of the - * window. - * - * This function sets the position, in screen coordinates, of the cursor - * relative to the upper-left corner of the client area of the specified - * window. The window must have input focus. If the window does not have - * input focus when this function is called, it fails silently. - * - * __Do not use this function__ to implement things like camera controls. GLFW - * already provides the `GLFW_CURSOR_DISABLED` cursor mode that hides the - * cursor, transparently re-centers it and provides unconstrained cursor - * motion. See @ref glfwSetInputMode for more information. - * - * If the cursor mode is `GLFW_CURSOR_DISABLED` then the cursor position is - * unconstrained and limited only by the minimum and maximum values of - * a `double`. - * - * @param[in] window The desired window. - * @param[in] xpos The desired x-coordinate, relative to the left edge of the - * client area. - * @param[in] ypos The desired y-coordinate, relative to the top edge of the - * client area. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @remark @x11 Due to the asynchronous nature of X11, it may take a moment for - * the window focus event to arrive. This means you may not be able to set the - * cursor position directly after window creation. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref cursor_pos - * @sa glfwGetCursorPos - * - * @since Added in version 3.0. Replaces `glfwSetMousePos`. - * - * @ingroup input - */ -GLFWAPI void glfwSetCursorPos(GLFWwindow* window, double xpos, double ypos); - -/*! @brief Creates a custom cursor. - * - * Creates a new custom cursor image that can be set for a window with @ref - * glfwSetCursor. The cursor can be destroyed with @ref glfwDestroyCursor. - * Any remaining cursors are destroyed by @ref glfwTerminate. - * - * The pixels are 32-bit, little-endian, non-premultiplied RGBA, i.e. eight - * bits per channel. They are arranged canonically as packed sequential rows, - * starting from the top-left corner. - * - * The cursor hotspot is specified in pixels, relative to the upper-left corner - * of the cursor image. Like all other coordinate systems in GLFW, the X-axis - * points to the right and the Y-axis points down. - * - * @param[in] image The desired cursor image. - * @param[in] xhot The desired x-coordinate, in pixels, of the cursor hotspot. - * @param[in] yhot The desired y-coordinate, in pixels, of the cursor hotspot. - * @return The handle of the created cursor, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @pointer_lifetime The specified image data is copied before this function - * returns. - * - * @reentrancy This function must not be called from a callback. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref cursor_object - * @sa glfwDestroyCursor - * @sa glfwCreateStandardCursor - * - * @since Added in version 3.1. - * - * @ingroup input - */ -GLFWAPI GLFWcursor* glfwCreateCursor(const GLFWimage* image, int xhot, int yhot); - -/*! @brief Creates a cursor with a standard shape. - * - * Returns a cursor with a [standard shape](@ref shapes), that can be set for - * a window with @ref glfwSetCursor. - * - * @param[in] shape One of the [standard shapes](@ref shapes). - * @return A new cursor ready to use or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR. - * - * @reentrancy This function must not be called from a callback. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref cursor_object - * @sa glfwCreateCursor - * - * @since Added in version 3.1. - * - * @ingroup input - */ -GLFWAPI GLFWcursor* glfwCreateStandardCursor(int shape); - -/*! @brief Destroys a cursor. - * - * This function destroys a cursor previously created with @ref - * glfwCreateCursor. Any remaining cursors will be destroyed by @ref - * glfwTerminate. - * - * @param[in] cursor The cursor object to destroy. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @reentrancy This function must not be called from a callback. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref cursor_object - * @sa glfwCreateCursor - * - * @since Added in version 3.1. - * - * @ingroup input - */ -GLFWAPI void glfwDestroyCursor(GLFWcursor* cursor); - -/*! @brief Sets the cursor for the window. - * - * This function sets the cursor image to be used when the cursor is over the - * client area of the specified window. The set cursor will only be visible - * when the [cursor mode](@ref cursor_mode) of the window is - * `GLFW_CURSOR_NORMAL`. - * - * On some platforms, the set cursor may not be visible unless the window also - * has input focus. - * - * @param[in] window The window to set the cursor for. - * @param[in] cursor The cursor to set, or `NULL` to switch back to the default - * arrow cursor. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref cursor_object - * - * @since Added in version 3.1. - * - * @ingroup input - */ -GLFWAPI void glfwSetCursor(GLFWwindow* window, GLFWcursor* cursor); - -/*! @brief Sets the key callback. - * - * This function sets the key callback of the specified window, which is called - * when a key is pressed, repeated or released. - * - * The key functions deal with physical keys, with layout independent - * [key tokens](@ref keys) named after their values in the standard US keyboard - * layout. If you want to input text, use the - * [character callback](@ref glfwSetCharCallback) instead. - * - * When a window loses input focus, it will generate synthetic key release - * events for all pressed keys. You can tell these events from user-generated - * events by the fact that the synthetic ones are generated after the focus - * loss event has been processed, i.e. after the - * [window focus callback](@ref glfwSetWindowFocusCallback) has been called. - * - * The scancode of a key is specific to that platform or sometimes even to that - * machine. Scancodes are intended to allow users to bind keys that don't have - * a GLFW key token. Such keys have `key` set to `GLFW_KEY_UNKNOWN`, their - * state is not saved and so it cannot be queried with @ref glfwGetKey. - * - * Sometimes GLFW needs to generate synthetic key events, in which case the - * scancode may be zero. - * - * @param[in] window The window whose callback to set. - * @param[in] cbfun The new key callback, or `NULL` to remove the currently - * set callback. - * @return The previously set callback, or `NULL` if no callback was set or the - * library had not been [initialized](@ref intro_init). - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref input_key - * - * @since Added in version 1.0. - * @glfw3 Added window handle parameter and return value. - * - * @ingroup input - */ -GLFWAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun cbfun); - -/*! @brief Sets the Unicode character callback. - * - * This function sets the character callback of the specified window, which is - * called when a Unicode character is input. - * - * The character callback is intended for Unicode text input. As it deals with - * characters, it is keyboard layout dependent, whereas the - * [key callback](@ref glfwSetKeyCallback) is not. Characters do not map 1:1 - * to physical keys, as a key may produce zero, one or more characters. If you - * want to know whether a specific physical key was pressed or released, see - * the key callback instead. - * - * The character callback behaves as system text input normally does and will - * not be called if modifier keys are held down that would prevent normal text - * input on that platform, for example a Super (Command) key on OS X or Alt key - * on Windows. There is a - * [character with modifiers callback](@ref glfwSetCharModsCallback) that - * receives these events. - * - * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set - * callback. - * @return The previously set callback, or `NULL` if no callback was set or the - * library had not been [initialized](@ref intro_init). - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref input_char - * - * @since Added in version 2.4. - * @glfw3 Added window handle parameter and return value. - * - * @ingroup input - */ -GLFWAPI GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun cbfun); - -/*! @brief Sets the Unicode character with modifiers callback. - * - * This function sets the character with modifiers callback of the specified - * window, which is called when a Unicode character is input regardless of what - * modifier keys are used. - * - * The character with modifiers callback is intended for implementing custom - * Unicode character input. For regular Unicode text input, see the - * [character callback](@ref glfwSetCharCallback). Like the character - * callback, the character with modifiers callback deals with characters and is - * keyboard layout dependent. Characters do not map 1:1 to physical keys, as - * a key may produce zero, one or more characters. If you want to know whether - * a specific physical key was pressed or released, see the - * [key callback](@ref glfwSetKeyCallback) instead. - * - * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set - * callback. - * @return The previously set callback, or `NULL` if no callback was set or an - * error occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref input_char - * - * @since Added in version 3.1. - * - * @ingroup input - */ -GLFWAPI GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow* window, GLFWcharmodsfun cbfun); - -/*! @brief Sets the mouse button callback. - * - * This function sets the mouse button callback of the specified window, which - * is called when a mouse button is pressed or released. - * - * When a window loses input focus, it will generate synthetic mouse button - * release events for all pressed mouse buttons. You can tell these events - * from user-generated events by the fact that the synthetic ones are generated - * after the focus loss event has been processed, i.e. after the - * [window focus callback](@ref glfwSetWindowFocusCallback) has been called. - * - * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set - * callback. - * @return The previously set callback, or `NULL` if no callback was set or the - * library had not been [initialized](@ref intro_init). - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref input_mouse_button - * - * @since Added in version 1.0. - * @glfw3 Added window handle parameter and return value. - * - * @ingroup input - */ -GLFWAPI GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow* window, GLFWmousebuttonfun cbfun); - -/*! @brief Sets the cursor position callback. - * - * This function sets the cursor position callback of the specified window, - * which is called when the cursor is moved. The callback is provided with the - * position, in screen coordinates, relative to the upper-left corner of the - * client area of the window. - * - * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set - * callback. - * @return The previously set callback, or `NULL` if no callback was set or the - * library had not been [initialized](@ref intro_init). - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref cursor_pos - * - * @since Added in version 3.0. Replaces `glfwSetMousePosCallback`. - * - * @ingroup input - */ -GLFWAPI GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow* window, GLFWcursorposfun cbfun); - -/*! @brief Sets the cursor enter/exit callback. - * - * This function sets the cursor boundary crossing callback of the specified - * window, which is called when the cursor enters or leaves the client area of - * the window. - * - * @param[in] window The window whose callback to set. - * @param[in] cbfun The new callback, or `NULL` to remove the currently set - * callback. - * @return The previously set callback, or `NULL` if no callback was set or the - * library had not been [initialized](@ref intro_init). - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref cursor_enter - * - * @since Added in version 3.0. - * - * @ingroup input - */ -GLFWAPI GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow* window, GLFWcursorenterfun cbfun); - -/*! @brief Sets the scroll callback. - * - * This function sets the scroll callback of the specified window, which is - * called when a scrolling device is used, such as a mouse wheel or scrolling - * area of a touchpad. - * - * The scroll callback receives all scrolling input, like that from a mouse - * wheel or a touchpad scrolling area. - * - * @param[in] window The window whose callback to set. - * @param[in] cbfun The new scroll callback, or `NULL` to remove the currently - * set callback. - * @return The previously set callback, or `NULL` if no callback was set or the - * library had not been [initialized](@ref intro_init). - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref scrolling - * - * @since Added in version 3.0. Replaces `glfwSetMouseWheelCallback`. - * - * @ingroup input - */ -GLFWAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun cbfun); - -/*! @brief Sets the file drop callback. - * - * This function sets the file drop callback of the specified window, which is - * called when one or more dragged files are dropped on the window. - * - * Because the path array and its strings may have been generated specifically - * for that event, they are not guaranteed to be valid after the callback has - * returned. If you wish to use them after the callback returns, you need to - * make a deep copy. - * - * @param[in] window The window whose callback to set. - * @param[in] cbfun The new file drop callback, or `NULL` to remove the - * currently set callback. - * @return The previously set callback, or `NULL` if no callback was set or the - * library had not been [initialized](@ref intro_init). - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref path_drop - * - * @since Added in version 3.1. - * - * @ingroup input - */ -GLFWAPI GLFWdropfun glfwSetDropCallback(GLFWwindow* window, GLFWdropfun cbfun); - -/*! @brief Returns whether the specified joystick is present. - * - * This function returns whether the specified joystick is present. - * - * @param[in] joy The [joystick](@ref joysticks) to query. - * @return `GLFW_TRUE` if the joystick is present, or `GLFW_FALSE` otherwise. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref joystick - * - * @since Added in version 3.0. Replaces `glfwGetJoystickParam`. - * - * @ingroup input - */ -GLFWAPI int glfwJoystickPresent(int joy); - -/*! @brief Returns the values of all axes of the specified joystick. - * - * This function returns the values of all axes of the specified joystick. - * Each element in the array is a value between -1.0 and 1.0. - * - * Querying a joystick slot with no device present is not an error, but will - * cause this function to return `NULL`. Call @ref glfwJoystickPresent to - * check device presence. - * - * @param[in] joy The [joystick](@ref joysticks) to query. - * @param[out] count Where to store the number of axis values in the returned - * array. This is set to zero if an error occurred. - * @return An array of axis values, or `NULL` if the joystick is not present. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR. - * - * @pointer_lifetime The returned array is allocated and freed by GLFW. You - * should not free it yourself. It is valid until the specified joystick is - * disconnected, this function is called again for that joystick or the library - * is terminated. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref joystick_axis - * - * @since Added in version 3.0. Replaces `glfwGetJoystickPos`. - * - * @ingroup input - */ -GLFWAPI const float* glfwGetJoystickAxes(int joy, int* count); - -/*! @brief Returns the state of all buttons of the specified joystick. - * - * This function returns the state of all buttons of the specified joystick. - * Each element in the array is either `GLFW_PRESS` or `GLFW_RELEASE`. - * - * Querying a joystick slot with no device present is not an error, but will - * cause this function to return `NULL`. Call @ref glfwJoystickPresent to - * check device presence. - * - * @param[in] joy The [joystick](@ref joysticks) to query. - * @param[out] count Where to store the number of button states in the returned - * array. This is set to zero if an error occurred. - * @return An array of button states, or `NULL` if the joystick is not present. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR. - * - * @pointer_lifetime The returned array is allocated and freed by GLFW. You - * should not free it yourself. It is valid until the specified joystick is - * disconnected, this function is called again for that joystick or the library - * is terminated. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref joystick_button - * - * @since Added in version 2.2. - * @glfw3 Changed to return a dynamic array. - * - * @ingroup input - */ -GLFWAPI const unsigned char* glfwGetJoystickButtons(int joy, int* count); - -/*! @brief Returns the name of the specified joystick. - * - * This function returns the name, encoded as UTF-8, of the specified joystick. - * The returned string is allocated and freed by GLFW. You should not free it - * yourself. - * - * Querying a joystick slot with no device present is not an error, but will - * cause this function to return `NULL`. Call @ref glfwJoystickPresent to - * check device presence. - * - * @param[in] joy The [joystick](@ref joysticks) to query. - * @return The UTF-8 encoded name of the joystick, or `NULL` if the joystick - * is not present. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR. - * - * @pointer_lifetime The returned string is allocated and freed by GLFW. You - * should not free it yourself. It is valid until the specified joystick is - * disconnected, this function is called again for that joystick or the library - * is terminated. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref joystick_name - * - * @since Added in version 3.0. - * - * @ingroup input - */ -GLFWAPI const char* glfwGetJoystickName(int joy); - -/*! @brief Sets the joystick configuration callback. - * - * This function sets the joystick configuration callback, or removes the - * currently set callback. This is called when a joystick is connected to or - * disconnected from the system. - * - * @param[in] cbfun The new callback, or `NULL` to remove the currently set - * callback. - * @return The previously set callback, or `NULL` if no callback was set or the - * library had not been [initialized](@ref intro_init). - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref joystick_event - * - * @since Added in version 3.2. - * - * @ingroup input - */ -GLFWAPI GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun cbfun); - -/*! @brief Sets the clipboard to the specified string. - * - * This function sets the system clipboard to the specified, UTF-8 encoded - * string. - * - * @param[in] window The window that will own the clipboard contents. - * @param[in] string A UTF-8 encoded string. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @pointer_lifetime The specified string is copied before this function - * returns. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref clipboard - * @sa glfwGetClipboardString - * - * @since Added in version 3.0. - * - * @ingroup input - */ -GLFWAPI void glfwSetClipboardString(GLFWwindow* window, const char* string); - -/*! @brief Returns the contents of the clipboard as a string. - * - * This function returns the contents of the system clipboard, if it contains - * or is convertible to a UTF-8 encoded string. If the clipboard is empty or - * if its contents cannot be converted, `NULL` is returned and a @ref - * GLFW_FORMAT_UNAVAILABLE error is generated. - * - * @param[in] window The window that will request the clipboard contents. - * @return The contents of the clipboard as a UTF-8 encoded string, or `NULL` - * if an [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_PLATFORM_ERROR. - * - * @pointer_lifetime The returned string is allocated and freed by GLFW. You - * should not free it yourself. It is valid until the next call to @ref - * glfwGetClipboardString or @ref glfwSetClipboardString, or until the library - * is terminated. - * - * @thread_safety This function must only be called from the main thread. - * - * @sa @ref clipboard - * @sa glfwSetClipboardString - * - * @since Added in version 3.0. - * - * @ingroup input - */ -GLFWAPI const char* glfwGetClipboardString(GLFWwindow* window); - -/*! @brief Returns the value of the GLFW timer. - * - * This function returns the value of the GLFW timer. Unless the timer has - * been set using @ref glfwSetTime, the timer measures time elapsed since GLFW - * was initialized. - * - * The resolution of the timer is system dependent, but is usually on the order - * of a few micro- or nanoseconds. It uses the highest-resolution monotonic - * time source on each supported platform. - * - * @return The current value, in seconds, or zero if an - * [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function may be called from any thread. Reading of the - * internal timer offset is not atomic. - * - * @sa @ref time - * - * @since Added in version 1.0. - * - * @ingroup input - */ -GLFWAPI double glfwGetTime(void); - -/*! @brief Sets the GLFW timer. - * - * This function sets the value of the GLFW timer. It then continues to count - * up from that value. The value must be a positive finite number less than - * or equal to 18446744073.0, which is approximately 584.5 years. - * - * @param[in] time The new value, in seconds. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_INVALID_VALUE. - * - * @remark The upper limit of the timer is calculated as - * floor((264 - 1) / 109) and is due to implementations - * storing nanoseconds in 64 bits. The limit may be increased in the future. - * - * @thread_safety This function may be called from any thread. Writing of the - * internal timer offset is not atomic. - * - * @sa @ref time - * - * @since Added in version 2.2. - * - * @ingroup input - */ -GLFWAPI void glfwSetTime(double time); - -/*! @brief Returns the current value of the raw timer. - * - * This function returns the current value of the raw timer, measured in - * 1 / frequency seconds. To get the frequency, call @ref - * glfwGetTimerFrequency. - * - * @return The value of the timer, or zero if an - * [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function may be called from any thread. - * - * @sa @ref time - * @sa glfwGetTimerFrequency - * - * @since Added in version 3.2. - * - * @ingroup input - */ -GLFWAPI uint64_t glfwGetTimerValue(void); - -/*! @brief Returns the frequency, in Hz, of the raw timer. - * - * This function returns the frequency, in Hz, of the raw timer. - * - * @return The frequency of the timer, in Hz, or zero if an - * [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function may be called from any thread. - * - * @sa @ref time - * @sa glfwGetTimerValue - * - * @since Added in version 3.2. - * - * @ingroup input - */ -GLFWAPI uint64_t glfwGetTimerFrequency(void); - -/*! @brief Makes the context of the specified window current for the calling - * thread. - * - * This function makes the OpenGL or OpenGL ES context of the specified window - * current on the calling thread. A context can only be made current on - * a single thread at a time and each thread can have only a single current - * context at a time. - * - * By default, making a context non-current implicitly forces a pipeline flush. - * On machines that support `GL_KHR_context_flush_control`, you can control - * whether a context performs this flush by setting the - * [GLFW_CONTEXT_RELEASE_BEHAVIOR](@ref window_hints_ctx) window hint. - * - * The specified window must have an OpenGL or OpenGL ES context. Specifying - * a window without a context will generate a @ref GLFW_NO_WINDOW_CONTEXT - * error. - * - * @param[in] window The window whose context to make current, or `NULL` to - * detach the current context. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_ERROR. - * - * @thread_safety This function may be called from any thread. - * - * @sa @ref context_current - * @sa glfwGetCurrentContext - * - * @since Added in version 3.0. - * - * @ingroup context - */ -GLFWAPI void glfwMakeContextCurrent(GLFWwindow* window); - -/*! @brief Returns the window whose context is current on the calling thread. - * - * This function returns the window whose OpenGL or OpenGL ES context is - * current on the calling thread. - * - * @return The window whose context is current, or `NULL` if no window's - * context is current. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function may be called from any thread. - * - * @sa @ref context_current - * @sa glfwMakeContextCurrent - * - * @since Added in version 3.0. - * - * @ingroup context - */ -GLFWAPI GLFWwindow* glfwGetCurrentContext(void); - -/*! @brief Swaps the front and back buffers of the specified window. - * - * This function swaps the front and back buffers of the specified window when - * rendering with OpenGL or OpenGL ES. If the swap interval is greater than - * zero, the GPU driver waits the specified number of screen updates before - * swapping the buffers. - * - * The specified window must have an OpenGL or OpenGL ES context. Specifying - * a window without a context will generate a @ref GLFW_NO_WINDOW_CONTEXT - * error. - * - * This function does not apply to Vulkan. If you are rendering with Vulkan, - * see `vkQueuePresentKHR` instead. - * - * @param[in] window The window whose buffers to swap. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_ERROR. - * - * @remark __EGL:__ The context of the specified window must be current on the - * calling thread. - * - * @thread_safety This function may be called from any thread. - * - * @sa @ref buffer_swap - * @sa glfwSwapInterval - * - * @since Added in version 1.0. - * @glfw3 Added window handle parameter. - * - * @ingroup window - */ -GLFWAPI void glfwSwapBuffers(GLFWwindow* window); - -/*! @brief Sets the swap interval for the current context. - * - * This function sets the swap interval for the current OpenGL or OpenGL ES - * context, i.e. the number of screen updates to wait from the time @ref - * glfwSwapBuffers was called before swapping the buffers and returning. This - * is sometimes called _vertical synchronization_, _vertical retrace - * synchronization_ or just _vsync_. - * - * Contexts that support either of the `WGL_EXT_swap_control_tear` and - * `GLX_EXT_swap_control_tear` extensions also accept negative swap intervals, - * which allow the driver to swap even if a frame arrives a little bit late. - * You can check for the presence of these extensions using @ref - * glfwExtensionSupported. For more information about swap tearing, see the - * extension specifications. - * - * A context must be current on the calling thread. Calling this function - * without a current context will cause a @ref GLFW_NO_CURRENT_CONTEXT error. - * - * This function does not apply to Vulkan. If you are rendering with Vulkan, - * see the present mode of your swapchain instead. - * - * @param[in] interval The minimum number of screen updates to wait for - * until the buffers are swapped by @ref glfwSwapBuffers. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_NO_CURRENT_CONTEXT and @ref GLFW_PLATFORM_ERROR. - * - * @remark This function is not called during context creation, leaving the - * swap interval set to whatever is the default on that platform. This is done - * because some swap interval extensions used by GLFW do not allow the swap - * interval to be reset to zero once it has been set to a non-zero value. - * - * @remark Some GPU drivers do not honor the requested swap interval, either - * because of a user setting that overrides the application's request or due to - * bugs in the driver. - * - * @thread_safety This function may be called from any thread. - * - * @sa @ref buffer_swap - * @sa glfwSwapBuffers - * - * @since Added in version 1.0. - * - * @ingroup context - */ -GLFWAPI void glfwSwapInterval(int interval); - -/*! @brief Returns whether the specified extension is available. - * - * This function returns whether the specified - * [API extension](@ref context_glext) is supported by the current OpenGL or - * OpenGL ES context. It searches both for client API extension and context - * creation API extensions. - * - * A context must be current on the calling thread. Calling this function - * without a current context will cause a @ref GLFW_NO_CURRENT_CONTEXT error. - * - * As this functions retrieves and searches one or more extension strings each - * call, it is recommended that you cache its results if it is going to be used - * frequently. The extension strings will not change during the lifetime of - * a context, so there is no danger in doing this. - * - * This function does not apply to Vulkan. If you are using Vulkan, see @ref - * glfwGetRequiredInstanceExtensions, `vkEnumerateInstanceExtensionProperties` - * and `vkEnumerateDeviceExtensionProperties` instead. - * - * @param[in] extension The ASCII encoded name of the extension. - * @return `GLFW_TRUE` if the extension is available, or `GLFW_FALSE` - * otherwise. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_NO_CURRENT_CONTEXT, @ref GLFW_INVALID_VALUE and @ref - * GLFW_PLATFORM_ERROR. - * - * @thread_safety This function may be called from any thread. - * - * @sa @ref context_glext - * @sa glfwGetProcAddress - * - * @since Added in version 1.0. - * - * @ingroup context - */ -GLFWAPI int glfwExtensionSupported(const char* extension); - -/*! @brief Returns the address of the specified function for the current - * context. - * - * This function returns the address of the specified OpenGL or OpenGL ES - * [core or extension function](@ref context_glext), if it is supported - * by the current context. - * - * A context must be current on the calling thread. Calling this function - * without a current context will cause a @ref GLFW_NO_CURRENT_CONTEXT error. - * - * This function does not apply to Vulkan. If you are rendering with Vulkan, - * see @ref glfwGetInstanceProcAddress, `vkGetInstanceProcAddr` and - * `vkGetDeviceProcAddr` instead. - * - * @param[in] procname The ASCII encoded name of the function. - * @return The address of the function, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_NO_CURRENT_CONTEXT and @ref GLFW_PLATFORM_ERROR. - * - * @remark The address of a given function is not guaranteed to be the same - * between contexts. - * - * @remark This function may return a non-`NULL` address despite the - * associated version or extension not being available. Always check the - * context version or extension string first. - * - * @pointer_lifetime The returned function pointer is valid until the context - * is destroyed or the library is terminated. - * - * @thread_safety This function may be called from any thread. - * - * @sa @ref context_glext - * @sa glfwExtensionSupported - * - * @since Added in version 1.0. - * - * @ingroup context - */ -GLFWAPI GLFWglproc glfwGetProcAddress(const char* procname); - -/*! @brief Returns whether the Vulkan loader has been found. - * - * This function returns whether the Vulkan loader has been found. This check - * is performed by @ref glfwInit. - * - * The availability of a Vulkan loader does not by itself guarantee that window - * surface creation or even device creation is possible. Call @ref - * glfwGetRequiredInstanceExtensions to check whether the extensions necessary - * for Vulkan surface creation are available and @ref - * glfwGetPhysicalDevicePresentationSupport to check whether a queue family of - * a physical device supports image presentation. - * - * @return `GLFW_TRUE` if Vulkan is available, or `GLFW_FALSE` otherwise. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED. - * - * @thread_safety This function may be called from any thread. - * - * @sa @ref vulkan_support - * - * @since Added in version 3.2. - * - * @ingroup vulkan - */ -GLFWAPI int glfwVulkanSupported(void); - -/*! @brief Returns the Vulkan instance extensions required by GLFW. - * - * This function returns an array of names of Vulkan instance extensions required - * by GLFW for creating Vulkan surfaces for GLFW windows. If successful, the - * list will always contains `VK_KHR_surface`, so if you don't require any - * additional extensions you can pass this list directly to the - * `VkInstanceCreateInfo` struct. - * - * If Vulkan is not available on the machine, this function returns `NULL` and - * generates a @ref GLFW_API_UNAVAILABLE error. Call @ref glfwVulkanSupported - * to check whether Vulkan is available. - * - * If Vulkan is available but no set of extensions allowing window surface - * creation was found, this function returns `NULL`. You may still use Vulkan - * for off-screen rendering and compute work. - * - * @param[out] count Where to store the number of extensions in the returned - * array. This is set to zero if an error occurred. - * @return An array of ASCII encoded extension names, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_API_UNAVAILABLE. - * - * @remarks Additional extensions may be required by future versions of GLFW. - * You should check if any extensions you wish to enable are already in the - * returned array, as it is an error to specify an extension more than once in - * the `VkInstanceCreateInfo` struct. - * - * @pointer_lifetime The returned array is allocated and freed by GLFW. You - * should not free it yourself. It is guaranteed to be valid only until the - * library is terminated. - * - * @thread_safety This function may be called from any thread. - * - * @sa @ref vulkan_ext - * @sa glfwCreateWindowSurface - * - * @since Added in version 3.2. - * - * @ingroup vulkan - */ -GLFWAPI const char** glfwGetRequiredInstanceExtensions(uint32_t* count); - -#if defined(VK_VERSION_1_0) - -/*! @brief Returns the address of the specified Vulkan instance function. - * - * This function returns the address of the specified Vulkan core or extension - * function for the specified instance. If instance is set to `NULL` it can - * return any function exported from the Vulkan loader, including at least the - * following functions: - * - * - `vkEnumerateInstanceExtensionProperties` - * - `vkEnumerateInstanceLayerProperties` - * - `vkCreateInstance` - * - `vkGetInstanceProcAddr` - * - * If Vulkan is not available on the machine, this function returns `NULL` and - * generates a @ref GLFW_API_UNAVAILABLE error. Call @ref glfwVulkanSupported - * to check whether Vulkan is available. - * - * This function is equivalent to calling `vkGetInstanceProcAddr` with - * a platform-specific query of the Vulkan loader as a fallback. - * - * @param[in] instance The Vulkan instance to query, or `NULL` to retrieve - * functions related to instance creation. - * @param[in] procname The ASCII encoded name of the function. - * @return The address of the function, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref - * GLFW_API_UNAVAILABLE. - * - * @pointer_lifetime The returned function pointer is valid until the library - * is terminated. - * - * @thread_safety This function may be called from any thread. - * - * @sa @ref vulkan_proc - * - * @since Added in version 3.2. - * - * @ingroup vulkan - */ -GLFWAPI GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char* procname); - -/*! @brief Returns whether the specified queue family can present images. - * - * This function returns whether the specified queue family of the specified - * physical device supports presentation to the platform GLFW was built for. - * - * If Vulkan or the required window surface creation instance extensions are - * not available on the machine, or if the specified instance was not created - * with the required extensions, this function returns `GLFW_FALSE` and - * generates a @ref GLFW_API_UNAVAILABLE error. Call @ref glfwVulkanSupported - * to check whether Vulkan is available and @ref - * glfwGetRequiredInstanceExtensions to check what instance extensions are - * required. - * - * @param[in] instance The instance that the physical device belongs to. - * @param[in] device The physical device that the queue family belongs to. - * @param[in] queuefamily The index of the queue family to query. - * @return `GLFW_TRUE` if the queue family supports presentation, or - * `GLFW_FALSE` otherwise. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_API_UNAVAILABLE and @ref GLFW_PLATFORM_ERROR. - * - * @thread_safety This function may be called from any thread. For - * synchronization details of Vulkan objects, see the Vulkan specification. - * - * @sa @ref vulkan_present - * - * @since Added in version 3.2. - * - * @ingroup vulkan - */ -GLFWAPI int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily); - -/*! @brief Creates a Vulkan surface for the specified window. - * - * This function creates a Vulkan surface for the specified window. - * - * If the Vulkan loader was not found at initialization, this function returns - * `VK_ERROR_INITIALIZATION_FAILED` and generates a @ref GLFW_API_UNAVAILABLE - * error. Call @ref glfwVulkanSupported to check whether the Vulkan loader was - * found. - * - * If the required window surface creation instance extensions are not - * available or if the specified instance was not created with these extensions - * enabled, this function returns `VK_ERROR_EXTENSION_NOT_PRESENT` and - * generates a @ref GLFW_API_UNAVAILABLE error. Call @ref - * glfwGetRequiredInstanceExtensions to check what instance extensions are - * required. - * - * The window surface must be destroyed before the specified Vulkan instance. - * It is the responsibility of the caller to destroy the window surface. GLFW - * does not destroy it for you. Call `vkDestroySurfaceKHR` to destroy the - * surface. - * - * @param[in] instance The Vulkan instance to create the surface in. - * @param[in] window The window to create the surface for. - * @param[in] allocator The allocator to use, or `NULL` to use the default - * allocator. - * @param[out] surface Where to store the handle of the surface. This is set - * to `VK_NULL_HANDLE` if an error occurred. - * @return `VK_SUCCESS` if successful, or a Vulkan error code if an - * [error](@ref error_handling) occurred. - * - * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref - * GLFW_API_UNAVAILABLE and @ref GLFW_PLATFORM_ERROR. - * - * @remarks If an error occurs before the creation call is made, GLFW returns - * the Vulkan error code most appropriate for the error. Appropriate use of - * @ref glfwVulkanSupported and @ref glfwGetRequiredInstanceExtensions should - * eliminate almost all occurrences of these errors. - * - * @thread_safety This function may be called from any thread. For - * synchronization details of Vulkan objects, see the Vulkan specification. - * - * @sa @ref vulkan_surface - * @sa glfwGetRequiredInstanceExtensions - * - * @since Added in version 3.2. - * - * @ingroup vulkan - */ -GLFWAPI VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow* window, const VkAllocationCallbacks* allocator, VkSurfaceKHR* surface); - -#endif /*VK_VERSION_1_0*/ - - -/************************************************************************* - * Global definition cleanup - *************************************************************************/ - -/* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */ - -#ifdef GLFW_WINGDIAPI_DEFINED - #undef WINGDIAPI - #undef GLFW_WINGDIAPI_DEFINED -#endif - -#ifdef GLFW_CALLBACK_DEFINED - #undef CALLBACK - #undef GLFW_CALLBACK_DEFINED -#endif - -/* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */ - - -#ifdef __cplusplus -} -#endif - -#endif /* _glfw3_h_ */ - diff --git a/libs/imgui-1.92.1/examples/libs/glfw/include/GLFW/glfw3native.h b/libs/imgui-1.92.1/examples/libs/glfw/include/GLFW/glfw3native.h deleted file mode 100644 index 9fa955e..0000000 --- a/libs/imgui-1.92.1/examples/libs/glfw/include/GLFW/glfw3native.h +++ /dev/null @@ -1,456 +0,0 @@ -/************************************************************************* - * GLFW 3.2 - www.glfw.org - * A library for OpenGL, window and input - *------------------------------------------------------------------------ - * Copyright (c) 2002-2006 Marcus Geelnard - * Copyright (c) 2006-2010 Camilla Berglund - * - * This software is provided 'as-is', without any express or implied - * warranty. In no event will the authors be held liable for any damages - * arising from the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software - * in a product, an acknowledgment in the product documentation would - * be appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not - * be misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source - * distribution. - * - *************************************************************************/ - -#ifndef _glfw3_native_h_ -#define _glfw3_native_h_ - -#ifdef __cplusplus -extern "C" { -#endif - - -/************************************************************************* - * Doxygen documentation - *************************************************************************/ - -/*! @file glfw3native.h - * @brief The header of the native access functions. - * - * This is the header file of the native access functions. See @ref native for - * more information. - */ -/*! @defgroup native Native access - * - * **By using the native access functions you assert that you know what you're - * doing and how to fix problems caused by using them. If you don't, you - * shouldn't be using them.** - * - * Before the inclusion of @ref glfw3native.h, you may define exactly one - * window system API macro and zero or more context creation API macros. - * - * The chosen backends must match those the library was compiled for. Failure - * to do this will cause a link-time error. - * - * The available window API macros are: - * * `GLFW_EXPOSE_NATIVE_WIN32` - * * `GLFW_EXPOSE_NATIVE_COCOA` - * * `GLFW_EXPOSE_NATIVE_X11` - * * `GLFW_EXPOSE_NATIVE_WAYLAND` - * * `GLFW_EXPOSE_NATIVE_MIR` - * - * The available context API macros are: - * * `GLFW_EXPOSE_NATIVE_WGL` - * * `GLFW_EXPOSE_NATIVE_NSGL` - * * `GLFW_EXPOSE_NATIVE_GLX` - * * `GLFW_EXPOSE_NATIVE_EGL` - * - * These macros select which of the native access functions that are declared - * and which platform-specific headers to include. It is then up your (by - * definition platform-specific) code to handle which of these should be - * defined. - */ - - -/************************************************************************* - * System headers and types - *************************************************************************/ - -#if defined(GLFW_EXPOSE_NATIVE_WIN32) - // This is a workaround for the fact that glfw3.h needs to export APIENTRY (for - // example to allow applications to correctly declare a GL_ARB_debug_output - // callback) but windows.h assumes no one will define APIENTRY before it does - #undef APIENTRY - #include -#elif defined(GLFW_EXPOSE_NATIVE_COCOA) - #include - #if defined(__OBJC__) - #import - #else - typedef void* id; - #endif -#elif defined(GLFW_EXPOSE_NATIVE_X11) - #include - #include -#elif defined(GLFW_EXPOSE_NATIVE_WAYLAND) - #include -#elif defined(GLFW_EXPOSE_NATIVE_MIR) - #include -#endif - -#if defined(GLFW_EXPOSE_NATIVE_WGL) - /* WGL is declared by windows.h */ -#endif -#if defined(GLFW_EXPOSE_NATIVE_NSGL) - /* NSGL is declared by Cocoa.h */ -#endif -#if defined(GLFW_EXPOSE_NATIVE_GLX) - #include -#endif -#if defined(GLFW_EXPOSE_NATIVE_EGL) - #include -#endif - - -/************************************************************************* - * Functions - *************************************************************************/ - -#if defined(GLFW_EXPOSE_NATIVE_WIN32) -/*! @brief Returns the adapter device name of the specified monitor. - * - * @return The UTF-8 encoded adapter device name (for example `\\.\DISPLAY1`) - * of the specified monitor, or `NULL` if an [error](@ref error_handling) - * occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.1. - * - * @ingroup native - */ -GLFWAPI const char* glfwGetWin32Adapter(GLFWmonitor* monitor); - -/*! @brief Returns the display device name of the specified monitor. - * - * @return The UTF-8 encoded display device name (for example - * `\\.\DISPLAY1\Monitor0`) of the specified monitor, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.1. - * - * @ingroup native - */ -GLFWAPI const char* glfwGetWin32Monitor(GLFWmonitor* monitor); - -/*! @brief Returns the `HWND` of the specified window. - * - * @return The `HWND` of the specified window, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.0. - * - * @ingroup native - */ -GLFWAPI HWND glfwGetWin32Window(GLFWwindow* window); -#endif - -#if defined(GLFW_EXPOSE_NATIVE_WGL) -/*! @brief Returns the `HGLRC` of the specified window. - * - * @return The `HGLRC` of the specified window, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.0. - * - * @ingroup native - */ -GLFWAPI HGLRC glfwGetWGLContext(GLFWwindow* window); -#endif - -#if defined(GLFW_EXPOSE_NATIVE_COCOA) -/*! @brief Returns the `CGDirectDisplayID` of the specified monitor. - * - * @return The `CGDirectDisplayID` of the specified monitor, or - * `kCGNullDirectDisplay` if an [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.1. - * - * @ingroup native - */ -GLFWAPI CGDirectDisplayID glfwGetCocoaMonitor(GLFWmonitor* monitor); - -/*! @brief Returns the `NSWindow` of the specified window. - * - * @return The `NSWindow` of the specified window, or `nil` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.0. - * - * @ingroup native - */ -GLFWAPI id glfwGetCocoaWindow(GLFWwindow* window); -#endif - -#if defined(GLFW_EXPOSE_NATIVE_NSGL) -/*! @brief Returns the `NSOpenGLContext` of the specified window. - * - * @return The `NSOpenGLContext` of the specified window, or `nil` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.0. - * - * @ingroup native - */ -GLFWAPI id glfwGetNSGLContext(GLFWwindow* window); -#endif - -#if defined(GLFW_EXPOSE_NATIVE_X11) -/*! @brief Returns the `Display` used by GLFW. - * - * @return The `Display` used by GLFW, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.0. - * - * @ingroup native - */ -GLFWAPI Display* glfwGetX11Display(void); - -/*! @brief Returns the `RRCrtc` of the specified monitor. - * - * @return The `RRCrtc` of the specified monitor, or `None` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.1. - * - * @ingroup native - */ -GLFWAPI RRCrtc glfwGetX11Adapter(GLFWmonitor* monitor); - -/*! @brief Returns the `RROutput` of the specified monitor. - * - * @return The `RROutput` of the specified monitor, or `None` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.1. - * - * @ingroup native - */ -GLFWAPI RROutput glfwGetX11Monitor(GLFWmonitor* monitor); - -/*! @brief Returns the `Window` of the specified window. - * - * @return The `Window` of the specified window, or `None` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.0. - * - * @ingroup native - */ -GLFWAPI Window glfwGetX11Window(GLFWwindow* window); -#endif - -#if defined(GLFW_EXPOSE_NATIVE_GLX) -/*! @brief Returns the `GLXContext` of the specified window. - * - * @return The `GLXContext` of the specified window, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.0. - * - * @ingroup native - */ -GLFWAPI GLXContext glfwGetGLXContext(GLFWwindow* window); - -/*! @brief Returns the `GLXWindow` of the specified window. - * - * @return The `GLXWindow` of the specified window, or `None` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.2. - * - * @ingroup native - */ -GLFWAPI GLXWindow glfwGetGLXWindow(GLFWwindow* window); -#endif - -#if defined(GLFW_EXPOSE_NATIVE_WAYLAND) -/*! @brief Returns the `struct wl_display*` used by GLFW. - * - * @return The `struct wl_display*` used by GLFW, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.2. - * - * @ingroup native - */ -GLFWAPI struct wl_display* glfwGetWaylandDisplay(void); - -/*! @brief Returns the `struct wl_output*` of the specified monitor. - * - * @return The `struct wl_output*` of the specified monitor, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.2. - * - * @ingroup native - */ -GLFWAPI struct wl_output* glfwGetWaylandMonitor(GLFWmonitor* monitor); - -/*! @brief Returns the main `struct wl_surface*` of the specified window. - * - * @return The main `struct wl_surface*` of the specified window, or `NULL` if - * an [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.2. - * - * @ingroup native - */ -GLFWAPI struct wl_surface* glfwGetWaylandWindow(GLFWwindow* window); -#endif - -#if defined(GLFW_EXPOSE_NATIVE_MIR) -/*! @brief Returns the `MirConnection*` used by GLFW. - * - * @return The `MirConnection*` used by GLFW, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.2. - * - * @ingroup native - */ -GLFWAPI MirConnection* glfwGetMirDisplay(void); - -/*! @brief Returns the Mir output ID of the specified monitor. - * - * @return The Mir output ID of the specified monitor, or zero if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.2. - * - * @ingroup native - */ -GLFWAPI int glfwGetMirMonitor(GLFWmonitor* monitor); - -/*! @brief Returns the `MirSurface*` of the specified window. - * - * @return The `MirSurface*` of the specified window, or `NULL` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.2. - * - * @ingroup native - */ -GLFWAPI MirSurface* glfwGetMirWindow(GLFWwindow* window); -#endif - -#if defined(GLFW_EXPOSE_NATIVE_EGL) -/*! @brief Returns the `EGLDisplay` used by GLFW. - * - * @return The `EGLDisplay` used by GLFW, or `EGL_NO_DISPLAY` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.0. - * - * @ingroup native - */ -GLFWAPI EGLDisplay glfwGetEGLDisplay(void); - -/*! @brief Returns the `EGLContext` of the specified window. - * - * @return The `EGLContext` of the specified window, or `EGL_NO_CONTEXT` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.0. - * - * @ingroup native - */ -GLFWAPI EGLContext glfwGetEGLContext(GLFWwindow* window); - -/*! @brief Returns the `EGLSurface` of the specified window. - * - * @return The `EGLSurface` of the specified window, or `EGL_NO_SURFACE` if an - * [error](@ref error_handling) occurred. - * - * @thread_safety This function may be called from any thread. Access is not - * synchronized. - * - * @since Added in version 3.0. - * - * @ingroup native - */ -GLFWAPI EGLSurface glfwGetEGLSurface(GLFWwindow* window); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _glfw3_native_h_ */ - diff --git a/libs/imgui-1.92.1/examples/libs/glfw/lib-vc2010-32/glfw3.lib b/libs/imgui-1.92.1/examples/libs/glfw/lib-vc2010-32/glfw3.lib deleted file mode 100644 index 348abec..0000000 Binary files a/libs/imgui-1.92.1/examples/libs/glfw/lib-vc2010-32/glfw3.lib and /dev/null differ diff --git a/libs/imgui-1.92.1/examples/libs/glfw/lib-vc2010-64/glfw3.lib b/libs/imgui-1.92.1/examples/libs/glfw/lib-vc2010-64/glfw3.lib deleted file mode 100644 index 768f308..0000000 Binary files a/libs/imgui-1.92.1/examples/libs/glfw/lib-vc2010-64/glfw3.lib and /dev/null differ diff --git a/libs/imgui-1.92.1/examples/libs/usynergy/README.txt b/libs/imgui-1.92.1/examples/libs/usynergy/README.txt deleted file mode 100644 index c86b909..0000000 --- a/libs/imgui-1.92.1/examples/libs/usynergy/README.txt +++ /dev/null @@ -1,8 +0,0 @@ - -uSynergy client -- Implementation for the embedded Synergy client library -version 1.0.0, July 7th, 2012 -Copyright (c) 2012 Alex Evans - -This is a copy of the files once found at: - https://github.com/symless/synergy-core/tree/790d108a56ada9caad8e56ff777d444485a69da9/src/micro - diff --git a/libs/imgui-1.92.1/examples/libs/usynergy/uSynergy.c b/libs/imgui-1.92.1/examples/libs/usynergy/uSynergy.c deleted file mode 100644 index 8dce47b..0000000 --- a/libs/imgui-1.92.1/examples/libs/usynergy/uSynergy.c +++ /dev/null @@ -1,636 +0,0 @@ -/* -uSynergy client -- Implementation for the embedded Synergy client library - version 1.0.0, July 7th, 2012 - -Copyright (c) 2012 Alex Evans - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - - 3. This notice may not be removed or altered from any source - distribution. -*/ -#include "uSynergy.h" -#include -#include - - - -//--------------------------------------------------------------------------------------------------------------------- -// Internal helpers -//--------------------------------------------------------------------------------------------------------------------- - - - -/** -@brief Read 16 bit integer in network byte order and convert to native byte order -**/ -static int16_t sNetToNative16(const unsigned char *value) -{ -#ifdef USYNERGY_LITTLE_ENDIAN - return value[1] | (value[0] << 8); -#else - return value[0] | (value[1] << 8); -#endif -} - - - -/** -@brief Read 32 bit integer in network byte order and convert to native byte order -**/ -static int32_t sNetToNative32(const unsigned char *value) -{ -#ifdef USYNERGY_LITTLE_ENDIAN - return value[3] | (value[2] << 8) | (value[1] << 16) | (value[0] << 24); -#else - return value[0] | (value[1] << 8) | (value[2] << 16) | (value[3] << 24); -#endif -} - - - -/** -@brief Trace text to client -**/ -static void sTrace(uSynergyContext *context, const char* text) -{ - // Don't trace if we don't have a trace function - if (context->m_traceFunc != 0L) - context->m_traceFunc(context->m_cookie, text); -} - - - -/** -@brief Add string to reply packet -**/ -static void sAddString(uSynergyContext *context, const char *string) -{ - size_t len = strlen(string); - memcpy(context->m_replyCur, string, len); - context->m_replyCur += len; -} - - - -/** -@brief Add uint8 to reply packet -**/ -static void sAddUInt8(uSynergyContext *context, uint8_t value) -{ - *context->m_replyCur++ = value; -} - - - -/** -@brief Add uint16 to reply packet -**/ -static void sAddUInt16(uSynergyContext *context, uint16_t value) -{ - uint8_t *reply = context->m_replyCur; - *reply++ = (uint8_t)(value >> 8); - *reply++ = (uint8_t)value; - context->m_replyCur = reply; -} - - - -/** -@brief Add uint32 to reply packet -**/ -static void sAddUInt32(uSynergyContext *context, uint32_t value) -{ - uint8_t *reply = context->m_replyCur; - *reply++ = (uint8_t)(value >> 24); - *reply++ = (uint8_t)(value >> 16); - *reply++ = (uint8_t)(value >> 8); - *reply++ = (uint8_t)value; - context->m_replyCur = reply; -} - - - -/** -@brief Send reply packet -**/ -static uSynergyBool sSendReply(uSynergyContext *context) -{ - // Set header size - uint8_t *reply_buf = context->m_replyBuffer; - uint32_t reply_len = (uint32_t)(context->m_replyCur - reply_buf); /* Total size of reply */ - uint32_t body_len = reply_len - 4; /* Size of body */ - uSynergyBool ret; - reply_buf[0] = (uint8_t)(body_len >> 24); - reply_buf[1] = (uint8_t)(body_len >> 16); - reply_buf[2] = (uint8_t)(body_len >> 8); - reply_buf[3] = (uint8_t)body_len; - - // Send reply - ret = context->m_sendFunc(context->m_cookie, context->m_replyBuffer, reply_len); - - // Reset reply buffer write pointer - context->m_replyCur = context->m_replyBuffer+4; - return ret; -} - - - -/** -@brief Call mouse callback after a mouse event -**/ -static void sSendMouseCallback(uSynergyContext *context) -{ - // Skip if no callback is installed - if (context->m_mouseCallback == 0L) - return; - - // Send callback - context->m_mouseCallback(context->m_cookie, context->m_mouseX, context->m_mouseY, context->m_mouseWheelX, - context->m_mouseWheelY, context->m_mouseButtonLeft, context->m_mouseButtonRight, context->m_mouseButtonMiddle); -} - - - -/** -@brief Send keyboard callback when a key has been pressed or released -**/ -static void sSendKeyboardCallback(uSynergyContext *context, uint16_t key, uint16_t modifiers, uSynergyBool down, uSynergyBool repeat) -{ - // Skip if no callback is installed - if (context->m_keyboardCallback == 0L) - return; - - // Send callback - context->m_keyboardCallback(context->m_cookie, key, modifiers, down, repeat); -} - - - -/** -@brief Send joystick callback -**/ -static void sSendJoystickCallback(uSynergyContext *context, uint8_t joyNum) -{ - int8_t *sticks; - - // Skip if no callback is installed - if (context->m_joystickCallback == 0L) - return; - - // Send callback - sticks = context->m_joystickSticks[joyNum]; - context->m_joystickCallback(context->m_cookie, joyNum, context->m_joystickButtons[joyNum], sticks[0], sticks[1], sticks[2], sticks[3]); -} - - - -/** -@brief Parse a single client message, update state, send callbacks and send replies -**/ -#define USYNERGY_IS_PACKET(pkt_id) memcmp(message+4, pkt_id, 4)==0 -static void sProcessMessage(uSynergyContext *context, const uint8_t *message) -{ - // We have a packet! - if (memcmp(message+4, "Synergy", 7)==0) - { - // Welcome message - // kMsgHello = "Synergy%2i%2i" - // kMsgHelloBack = "Synergy%2i%2i%s" - sAddString(context, "Synergy"); - sAddUInt16(context, USYNERGY_PROTOCOL_MAJOR); - sAddUInt16(context, USYNERGY_PROTOCOL_MINOR); - sAddUInt32(context, (uint32_t)strlen(context->m_clientName)); - sAddString(context, context->m_clientName); - if (!sSendReply(context)) - { - // Send reply failed, let's try to reconnect - sTrace(context, "SendReply failed, trying to reconnect in a second"); - context->m_connected = USYNERGY_FALSE; - context->m_sleepFunc(context->m_cookie, 1000); - } - else - { - // Let's assume we're connected - char buffer[256+1]; - sprintf(buffer, "Connected as client \"%s\"", context->m_clientName); - sTrace(context, buffer); - context->m_hasReceivedHello = USYNERGY_TRUE; - } - return; - } - else if (USYNERGY_IS_PACKET("QINF")) - { - // Screen info. Reply with DINF - // kMsgQInfo = "QINF" - // kMsgDInfo = "DINF%2i%2i%2i%2i%2i%2i%2i" - uint16_t x = 0, y = 0, warp = 0; - sAddString(context, "DINF"); - sAddUInt16(context, x); - sAddUInt16(context, y); - sAddUInt16(context, context->m_clientWidth); - sAddUInt16(context, context->m_clientHeight); - sAddUInt16(context, warp); - sAddUInt16(context, 0); // mx? - sAddUInt16(context, 0); // my? - sSendReply(context); - return; - } - else if (USYNERGY_IS_PACKET("CIAK")) - { - // Do nothing? - // kMsgCInfoAck = "CIAK" - return; - } - else if (USYNERGY_IS_PACKET("CROP")) - { - // Do nothing? - // kMsgCResetOptions = "CROP" - return; - } - else if (USYNERGY_IS_PACKET("CINN")) - { - // Screen enter. Reply with CNOP - // kMsgCEnter = "CINN%2i%2i%4i%2i" - - // Obtain the Synergy sequence number - context->m_sequenceNumber = sNetToNative32(message + 12); - context->m_isCaptured = USYNERGY_TRUE; - - // Call callback - if (context->m_screenActiveCallback != 0L) - context->m_screenActiveCallback(context->m_cookie, USYNERGY_TRUE); - } - else if (USYNERGY_IS_PACKET("COUT")) - { - // Screen leave - // kMsgCLeave = "COUT" - context->m_isCaptured = USYNERGY_FALSE; - - // Call callback - if (context->m_screenActiveCallback != 0L) - context->m_screenActiveCallback(context->m_cookie, USYNERGY_FALSE); - } - else if (USYNERGY_IS_PACKET("DMDN")) - { - // Mouse down - // kMsgDMouseDown = "DMDN%1i" - char btn = message[8]-1; - if (btn==2) - context->m_mouseButtonRight = USYNERGY_TRUE; - else if (btn==1) - context->m_mouseButtonMiddle = USYNERGY_TRUE; - else - context->m_mouseButtonLeft = USYNERGY_TRUE; - sSendMouseCallback(context); - } - else if (USYNERGY_IS_PACKET("DMUP")) - { - // Mouse up - // kMsgDMouseUp = "DMUP%1i" - char btn = message[8]-1; - if (btn==2) - context->m_mouseButtonRight = USYNERGY_FALSE; - else if (btn==1) - context->m_mouseButtonMiddle = USYNERGY_FALSE; - else - context->m_mouseButtonLeft = USYNERGY_FALSE; - sSendMouseCallback(context); - } - else if (USYNERGY_IS_PACKET("DMMV")) - { - // Mouse move. Reply with CNOP - // kMsgDMouseMove = "DMMV%2i%2i" - context->m_mouseX = sNetToNative16(message+8); - context->m_mouseY = sNetToNative16(message+10); - sSendMouseCallback(context); - } - else if (USYNERGY_IS_PACKET("DMWM")) - { - // Mouse wheel - // kMsgDMouseWheel = "DMWM%2i%2i" - // kMsgDMouseWheel1_0 = "DMWM%2i" - context->m_mouseWheelX += sNetToNative16(message+8); - context->m_mouseWheelY += sNetToNative16(message+10); - sSendMouseCallback(context); - } - else if (USYNERGY_IS_PACKET("DKDN")) - { - // Key down - // kMsgDKeyDown = "DKDN%2i%2i%2i" - // kMsgDKeyDown1_0 = "DKDN%2i%2i" - //uint16_t id = sNetToNative16(message+8); - uint16_t mod = sNetToNative16(message+10); - uint16_t key = sNetToNative16(message+12); - sSendKeyboardCallback(context, key, mod, USYNERGY_TRUE, USYNERGY_FALSE); - } - else if (USYNERGY_IS_PACKET("DKRP")) - { - // Key repeat - // kMsgDKeyRepeat = "DKRP%2i%2i%2i%2i" - // kMsgDKeyRepeat1_0 = "DKRP%2i%2i%2i" - uint16_t mod = sNetToNative16(message+10); -// uint16_t count = sNetToNative16(message+12); - uint16_t key = sNetToNative16(message+14); - sSendKeyboardCallback(context, key, mod, USYNERGY_TRUE, USYNERGY_TRUE); - } - else if (USYNERGY_IS_PACKET("DKUP")) - { - // Key up - // kMsgDKeyUp = "DKUP%2i%2i%2i" - // kMsgDKeyUp1_0 = "DKUP%2i%2i" - //uint16 id=Endian::sNetToNative(sbuf[4]); - uint16_t mod = sNetToNative16(message+10); - uint16_t key = sNetToNative16(message+12); - sSendKeyboardCallback(context, key, mod, USYNERGY_FALSE, USYNERGY_FALSE); - } - else if (USYNERGY_IS_PACKET("DGBT")) - { - // Joystick buttons - // kMsgDGameButtons = "DGBT%1i%2i"; - uint8_t joy_num = message[8]; - if (joy_numm_joystickButtons[joy_num] = (message[9] << 8) | message[10]; - sSendJoystickCallback(context, joy_num); - } - } - else if (USYNERGY_IS_PACKET("DGST")) - { - // Joystick sticks - // kMsgDGameSticks = "DGST%1i%1i%1i%1i%1i"; - uint8_t joy_num = message[8]; - if (joy_numm_joystickSticks[joy_num], message+9, 4); - sSendJoystickCallback(context, joy_num); - } - } - else if (USYNERGY_IS_PACKET("DSOP")) - { - // Set options - // kMsgDSetOptions = "DSOP%4I" - } - else if (USYNERGY_IS_PACKET("CALV")) - { - // Keepalive, reply with CALV and then CNOP - // kMsgCKeepAlive = "CALV" - sAddString(context, "CALV"); - sSendReply(context); - // now reply with CNOP - } - else if (USYNERGY_IS_PACKET("DCLP")) - { - // Clipboard message - // kMsgDClipboard = "DCLP%1i%4i%s" - // - // The clipboard message contains: - // 1 uint32: The size of the message - // 4 chars: The identifier ("DCLP") - // 1 uint8: The clipboard index - // 1 uint32: The sequence number. It's zero, because this message is always coming from the server? - // 1 uint32: The total size of the remaining 'string' (as per the Synergy %s string format (which is 1 uint32 for size followed by a char buffer (not necessarily null terminated)). - // 1 uint32: The number of formats present in the message - // And then 'number of formats' times the following: - // 1 uint32: The format of the clipboard data - // 1 uint32: The size n of the clipboard data - // n uint8: The clipboard data - const uint8_t * parse_msg = message+17; - uint32_t num_formats = sNetToNative32(parse_msg); - parse_msg += 4; - for (; num_formats; num_formats--) - { - // Parse clipboard format header - uint32_t format = sNetToNative32(parse_msg); - uint32_t size = sNetToNative32(parse_msg+4); - parse_msg += 8; - - // Call callback - if (context->m_clipboardCallback) - context->m_clipboardCallback(context->m_cookie, format, parse_msg, size); - - parse_msg += size; - } - } - else - { - // Unknown packet, could be any of these - // kMsgCNoop = "CNOP" - // kMsgCClose = "CBYE" - // kMsgCClipboard = "CCLP%1i%4i" - // kMsgCScreenSaver = "CSEC%1i" - // kMsgDKeyRepeat = "DKRP%2i%2i%2i%2i" - // kMsgDKeyRepeat1_0 = "DKRP%2i%2i%2i" - // kMsgDMouseRelMove = "DMRM%2i%2i" - // kMsgEIncompatible = "EICV%2i%2i" - // kMsgEBusy = "EBSY" - // kMsgEUnknown = "EUNK" - // kMsgEBad = "EBAD" - char buffer[64]; - sprintf(buffer, "Unknown packet '%c%c%c%c'", message[4], message[5], message[6], message[7]); - sTrace(context, buffer); - return; - } - - // Reply with CNOP maybe? - sAddString(context, "CNOP"); - sSendReply(context); -} -#undef USYNERGY_IS_PACKET - - - -/** -@brief Mark context as being disconnected -**/ -static void sSetDisconnected(uSynergyContext *context) -{ - context->m_connected = USYNERGY_FALSE; - context->m_hasReceivedHello = USYNERGY_FALSE; - context->m_isCaptured = USYNERGY_FALSE; - context->m_replyCur = context->m_replyBuffer + 4; - context->m_sequenceNumber = 0; -} - - - -/** -@brief Update a connected context -**/ -static void sUpdateContext(uSynergyContext *context) -{ - /* Receive data (blocking) */ - int receive_size = USYNERGY_RECEIVE_BUFFER_SIZE - context->m_receiveOfs; - int num_received = 0; - int packlen = 0; - if (context->m_receiveFunc(context->m_cookie, context->m_receiveBuffer + context->m_receiveOfs, receive_size, &num_received) == USYNERGY_FALSE) - { - /* Receive failed, let's try to reconnect */ - char buffer[128]; - sprintf(buffer, "Receive failed (%d bytes asked, %d bytes received), trying to reconnect in a second", receive_size, num_received); - sTrace(context, buffer); - sSetDisconnected(context); - context->m_sleepFunc(context->m_cookie, 1000); - return; - } - context->m_receiveOfs += num_received; - - /* If we didn't receive any data then we're probably still polling to get connected and - therefore not getting any data back. To avoid overloading the system with a Synergy - thread that would hammer on polling, we let it rest for a bit if there's no data. */ - if (num_received == 0) - context->m_sleepFunc(context->m_cookie, 500); - - /* Check for timeouts */ - if (context->m_hasReceivedHello) - { - uint32_t cur_time = context->m_getTimeFunc(); - if (num_received == 0) - { - /* Timeout after 2 secs of inactivity (we received no CALV) */ - if ((cur_time - context->m_lastMessageTime) > USYNERGY_IDLE_TIMEOUT) - sSetDisconnected(context); - } - else - context->m_lastMessageTime = cur_time; - } - - /* Eat packets */ - for (;;) - { - /* Grab packet length and bail out if the packet goes beyond the end of the buffer */ - packlen = sNetToNative32(context->m_receiveBuffer); - if (packlen+4 > context->m_receiveOfs) - break; - - /* Process message */ - sProcessMessage(context, context->m_receiveBuffer); - - /* Move packet to front of buffer */ - memmove(context->m_receiveBuffer, context->m_receiveBuffer+packlen+4, context->m_receiveOfs-packlen-4); - context->m_receiveOfs -= packlen+4; - } - - /* Throw away over-sized packets */ - if (packlen > USYNERGY_RECEIVE_BUFFER_SIZE) - { - /* Oversized packet, ditch tail end */ - char buffer[128]; - sprintf(buffer, "Oversized packet: '%c%c%c%c' (length %d)", context->m_receiveBuffer[4], context->m_receiveBuffer[5], context->m_receiveBuffer[6], context->m_receiveBuffer[7], packlen); - sTrace(context, buffer); - num_received = context->m_receiveOfs-4; // 4 bytes for the size field - while (num_received != packlen) - { - int buffer_left = packlen - num_received; - int to_receive = buffer_left < USYNERGY_RECEIVE_BUFFER_SIZE ? buffer_left : USYNERGY_RECEIVE_BUFFER_SIZE; - int ditch_received = 0; - if (context->m_receiveFunc(context->m_cookie, context->m_receiveBuffer, to_receive, &ditch_received) == USYNERGY_FALSE) - { - /* Receive failed, let's try to reconnect */ - sTrace(context, "Receive failed, trying to reconnect in a second"); - sSetDisconnected(context); - context->m_sleepFunc(context->m_cookie, 1000); - break; - } - else - { - num_received += ditch_received; - } - } - context->m_receiveOfs = 0; - } -} - - -//--------------------------------------------------------------------------------------------------------------------- -// Public interface -//--------------------------------------------------------------------------------------------------------------------- - - - -/** -@brief Initialize uSynergy context -**/ -void uSynergyInit(uSynergyContext *context) -{ - /* Zero memory */ - memset(context, 0, sizeof(uSynergyContext)); - - /* Initialize to default state */ - sSetDisconnected(context); -} - - -/** -@brief Update uSynergy -**/ -void uSynergyUpdate(uSynergyContext *context) -{ - if (context->m_connected) - { - /* Update context, receive data, call callbacks */ - sUpdateContext(context); - } - else - { - /* Try to connect */ - if (context->m_connectFunc(context->m_cookie)) - context->m_connected = USYNERGY_TRUE; - } -} - - - -/** -@brief Send clipboard data -**/ -void uSynergySendClipboard(uSynergyContext *context, const char *text) -{ - // Calculate maximum size that will fit in a reply packet - uint32_t overhead_size = 4 + /* Message size */ - 4 + /* Message ID */ - 1 + /* Clipboard index */ - 4 + /* Sequence number */ - 4 + /* Rest of message size (because it's a Synergy string from here on) */ - 4 + /* Number of clipboard formats */ - 4 + /* Clipboard format */ - 4; /* Clipboard data length */ - uint32_t max_length = USYNERGY_REPLY_BUFFER_SIZE - overhead_size; - - // Clip text to max length - uint32_t text_length = (uint32_t)strlen(text); - if (text_length > max_length) - { - char buffer[128]; - sprintf(buffer, "Clipboard buffer too small, clipboard truncated at %d characters", max_length); - sTrace(context, buffer); - text_length = max_length; - } - - // Assemble packet - sAddString(context, "DCLP"); - sAddUInt8(context, 0); /* Clipboard index */ - sAddUInt32(context, context->m_sequenceNumber); - sAddUInt32(context, 4+4+4+text_length); /* Rest of message size: numFormats, format, length, data */ - sAddUInt32(context, 1); /* Number of formats (only text for now) */ - sAddUInt32(context, USYNERGY_CLIPBOARD_FORMAT_TEXT); - sAddUInt32(context, text_length); - sAddString(context, text); - sSendReply(context); -} diff --git a/libs/imgui-1.92.1/examples/libs/usynergy/uSynergy.h b/libs/imgui-1.92.1/examples/libs/usynergy/uSynergy.h deleted file mode 100644 index 2b4d779..0000000 --- a/libs/imgui-1.92.1/examples/libs/usynergy/uSynergy.h +++ /dev/null @@ -1,420 +0,0 @@ -/* -uSynergy client -- Interface for the embedded Synergy client library - version 1.0.0, July 7th, 2012 - -Copyright (C) 2012 Synergy Si Ltd. -Copyright (c) 2012 Alex Evans - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - - 3. This notice may not be removed or altered from any source - distribution. -*/ -#include - -#ifdef __cplusplus -extern "C" { -#endif - - - -//--------------------------------------------------------------------------------------------------------------------- -// Configuration -//--------------------------------------------------------------------------------------------------------------------- - - - -/** -@brief Determine endianness -**/ -#if defined(USYNERGY_LITTLE_ENDIAN) && defined(USYNERGY_BIG_ENDIAN) - /* Ambiguous: both endians specified */ - #error "Can't define both USYNERGY_LITTLE_ENDIAN and USYNERGY_BIG_ENDIAN" -#elif !defined(USYNERGY_LITTLE_ENDIAN) && !defined(USYNERGY_BIG_ENDIAN) - /* Attempt to auto detect */ - #if defined(__LITTLE_ENDIAN__) || defined(LITTLE_ENDIAN) || (_BYTE_ORDER == _LITTLE_ENDIAN) - #define USYNERGY_LITTLE_ENDIAN - #elif defined(__BIG_ENDIAN__) || defined(BIG_ENDIAN) || (_BYTE_ORDER == _BIG_ENDIAN) - #define USYNERGY_BIG_ENDIAN - #else - #error "Can't detect endian-nes, please defined either USYNERGY_LITTLE_ENDIAN or USYNERGY_BIG_ENDIAN"; - #endif -#else - /* User-specified endian-nes, nothing to do for us */ -#endif - - - -//--------------------------------------------------------------------------------------------------------------------- -// Types and Constants -//--------------------------------------------------------------------------------------------------------------------- - - - -/** -@brief Boolean type -**/ -typedef int uSynergyBool; -#define USYNERGY_FALSE 0 /* False value */ -#define USYNERGY_TRUE 1 /* True value */ - - -/** -@brief User context type - -The uSynergyCookie type is an opaque type that is used by uSynergy to communicate to the client. It is passed along to -callback functions as context. -**/ -typedef struct { int ignored; } * uSynergyCookie; - - - -/** -@brief Clipboard types -**/ -enum uSynergyClipboardFormat -{ - USYNERGY_CLIPBOARD_FORMAT_TEXT = 0, /* Text format, UTF-8, newline is LF */ - USYNERGY_CLIPBOARD_FORMAT_BITMAP = 1, /* Bitmap format, BMP 24/32bpp, BI_RGB */ - USYNERGY_CLIPBOARD_FORMAT_HTML = 2, /* HTML format, HTML fragment, UTF-8, newline is LF */ -}; - - - -/** -@brief Constants and limits -**/ -#define USYNERGY_NUM_JOYSTICKS 4 /* Maximum number of supported joysticks */ - -#define USYNERGY_PROTOCOL_MAJOR 1 /* Major protocol version */ -#define USYNERGY_PROTOCOL_MINOR 4 /* Minor protocol version */ - -#define USYNERGY_IDLE_TIMEOUT 2000 /* Timeout in milliseconds before reconnecting */ - -#define USYNERGY_TRACE_BUFFER_SIZE 1024 /* Maximum length of traced message */ -#define USYNERGY_REPLY_BUFFER_SIZE 1024 /* Maximum size of a reply packet */ -#define USYNERGY_RECEIVE_BUFFER_SIZE 4096 /* Maximum size of an incoming packet */ - - - -/** -@brief Keyboard constants -**/ -#define USYNERGY_MODIFIER_SHIFT 0x0001 /* Shift key modifier */ -#define USYNERGY_MODIFIER_CTRL 0x0002 /* Ctrl key modifier */ -#define USYNERGY_MODIFIER_ALT 0x0004 /* Alt key modifier */ -#define USYNERGY_MODIFIER_META 0x0008 /* Meta key modifier */ -#define USYNERGY_MODIFIER_WIN 0x0010 /* Windows key modifier */ -#define USYNERGY_MODIFIER_ALT_GR 0x0020 /* AltGr key modifier */ -#define USYNERGY_MODIFIER_LEVEL5LOCK 0x0040 /* Level5Lock key modifier */ -#define USYNERGY_MODIFIER_CAPSLOCK 0x1000 /* CapsLock key modifier */ -#define USYNERGY_MODIFIER_NUMLOCK 0x2000 /* NumLock key modifier */ -#define USYNERGY_MODIFIER_SCROLLOCK 0x4000 /* ScrollLock key modifier */ - - - - -//--------------------------------------------------------------------------------------------------------------------- -// Functions and Callbacks -//--------------------------------------------------------------------------------------------------------------------- - - - -/** -@brief Connect function - -This function is called when uSynergy needs to connect to the host. It doesn't imply a network implementation or -destination address, that must all be handled on the user side. The function should return USYNERGY_TRUE if a -connection was established or USYNERGY_FALSE if it could not connect. - -When network errors occur (e.g. uSynergySend or uSynergyReceive fail) then the connect call will be called again -so the implementation of the function must close any old connections and clean up resources before retrying. - -@param cookie Cookie supplied in the Synergy context -**/ -typedef uSynergyBool (*uSynergyConnectFunc)(uSynergyCookie cookie); - - - -/** -@brief Send function - -This function is called when uSynergy needs to send something over the default connection. It should return -USYNERGY_TRUE if sending succeeded and USYNERGY_FALSE otherwise. This function should block until the send -operation is completed. - -@param cookie Cookie supplied in the Synergy context -@param buffer Address of buffer to send -@param length Length of buffer to send -**/ -typedef uSynergyBool (*uSynergySendFunc)(uSynergyCookie cookie, const uint8_t *buffer, int length); - - - -/** -@brief Receive function - -This function is called when uSynergy needs to receive data from the default connection. It should return -USYNERGY_TRUE if receiving data succeeded and USYNERGY_FALSE otherwise. This function should block until data -has been received and wait for data to become available. If @a outLength is set to 0 upon completion it is -assumed that the connection is alive, but still in a connecting state and needs time to settle. - -@param cookie Cookie supplied in the Synergy context -@param buffer Address of buffer to receive data into -@param maxLength Maximum amount of bytes to write into the receive buffer -@param outLength Address of integer that receives the actual amount of bytes written into @a buffer -**/ -typedef uSynergyBool (*uSynergyReceiveFunc)(uSynergyCookie cookie, uint8_t *buffer, int maxLength, int* outLength); - - - -/** -@brief Thread sleep function - -This function is called when uSynergy wants to suspend operation for a while before retrying an operation. It -is mostly used when a socket times out or disconnect occurs to prevent uSynergy from continuously hammering a -network connection in case the network is down. - -@param cookie Cookie supplied in the Synergy context -@param timeMs Time to sleep the current thread (in milliseconds) -**/ -typedef void (*uSynergySleepFunc)(uSynergyCookie cookie, int timeMs); - - - -/** -@brief Get time function - -This function is called when uSynergy needs to know the current time. This is used to determine when timeouts -have occurred. The time base should be a cyclic millisecond time value. - -@returns Time value in milliseconds -**/ -typedef uint32_t (*uSynergyGetTimeFunc)(); - - - -/** -@brief Trace function - -This function is called when uSynergy wants to trace something. It is optional to show these messages, but they -are often useful when debugging. uSynergy only traces major events like connecting and disconnecting. Usually -only a single trace is shown when the connection is established and no more trace are called. - -@param cookie Cookie supplied in the Synergy context -@param text Text to be traced -**/ -typedef void (*uSynergyTraceFunc)(uSynergyCookie cookie, const char *text); - - - -/** -@brief Screen active callback - -This callback is called when Synergy makes the screen active or inactive. This -callback is usually sent when the mouse enters or leaves the screen. - -@param cookie Cookie supplied in the Synergy context -@param active Activation flag, 1 if the screen has become active, 0 if the screen has become inactive -**/ -typedef void (*uSynergyScreenActiveCallback)(uSynergyCookie cookie, uSynergyBool active); - - - -/** -@brief Mouse callback - -This callback is called when a mouse events happens. The mouse X and Y position, -wheel and button state is communicated in the message. It's up to the user to -interpret if this is a mouse up, down, double-click or other message. - -@param cookie Cookie supplied in the Synergy context -@param x Mouse X position -@param y Mouse Y position -@param wheelX Mouse wheel X position -@param wheelY Mouse wheel Y position -@param buttonLeft Left button pressed status, 0 for released, 1 for pressed -@param buttonMiddle Middle button pressed status, 0 for released, 1 for pressed -@param buttonRight Right button pressed status, 0 for released, 1 for pressed -**/ -typedef void (*uSynergyMouseCallback)(uSynergyCookie cookie, uint16_t x, uint16_t y, int16_t wheelX, int16_t wheelY, uSynergyBool buttonLeft, uSynergyBool buttonRight, uSynergyBool buttonMiddle); - - - -/** -@brief Key event callback - -This callback is called when a key is pressed or released. - -@param cookie Cookie supplied in the Synergy context -@param key Key code of key that was pressed or released -@param modifiers Status of modifier keys (alt, shift, etc.) -@param down Down or up status, 1 is key is pressed down, 0 if key is released (up) -@param repeat Repeat flag, 1 if the key is down because the key is repeating, 0 if the key is initially pressed by the user -**/ -typedef void (*uSynergyKeyboardCallback)(uSynergyCookie cookie, uint16_t key, uint16_t modifiers, uSynergyBool down, uSynergyBool repeat); - - - -/** -@brief Joystick event callback - -This callback is called when a joystick stick or button changes. It is possible that multiple callbacks are -fired when different sticks or buttons change as these are individual messages in the packet stream. Each -callback will contain all the valid state for the different axes and buttons. The last callback received will -represent the most current joystick state. - -@param cookie Cookie supplied in the Synergy context -@param joyNum Joystick number, always in the range [0 ... USYNERGY_NUM_JOYSTICKS> -@param buttons Button pressed mask -@param leftStickX Left stick X position, in range [-127 ... 127] -@param leftStickY Left stick Y position, in range [-127 ... 127] -@param rightStickX Right stick X position, in range [-127 ... 127] -@param rightStickY Right stick Y position, in range [-127 ... 127] -**/ -typedef void (*uSynergyJoystickCallback)(uSynergyCookie cookie, uint8_t joyNum, uint16_t buttons, int8_t leftStickX, int8_t leftStickY, int8_t rightStickX, int8_t rightStickY); - - - -/** -@brief Clipboard event callback - -This callback is called when something is placed on the clipboard. Multiple callbacks may be fired for -multiple clipboard formats if they are supported. The data provided is read-only and may not be modified -by the application. - -@param cookie Cookie supplied in the Synergy context -@param format Clipboard format -@param data Memory area containing the clipboard raw data -@param size Size of clipboard data -**/ -typedef void (*uSynergyClipboardCallback)(uSynergyCookie cookie, enum uSynergyClipboardFormat format, const uint8_t *data, uint32_t size); - - - -//--------------------------------------------------------------------------------------------------------------------- -// Context -//--------------------------------------------------------------------------------------------------------------------- - - - -/** -@brief uSynergy context -**/ -typedef struct -{ - /* Mandatory configuration data, filled in by client */ - uSynergyConnectFunc m_connectFunc; /* Connect function */ - uSynergySendFunc m_sendFunc; /* Send data function */ - uSynergyReceiveFunc m_receiveFunc; /* Receive data function */ - uSynergySleepFunc m_sleepFunc; /* Thread sleep function */ - uSynergyGetTimeFunc m_getTimeFunc; /* Get current time function */ - const char* m_clientName; /* Name of Synergy Screen / Client */ - uint16_t m_clientWidth; /* Width of screen */ - uint16_t m_clientHeight; /* Height of screen */ - - /* Optional configuration data, filled in by client */ - uSynergyCookie m_cookie; /* Cookie pointer passed to callback functions (can be NULL) */ - uSynergyTraceFunc m_traceFunc; /* Function for tracing status (can be NULL) */ - uSynergyScreenActiveCallback m_screenActiveCallback; /* Callback for entering and leaving screen */ - uSynergyMouseCallback m_mouseCallback; /* Callback for mouse events */ - uSynergyKeyboardCallback m_keyboardCallback; /* Callback for keyboard events */ - uSynergyJoystickCallback m_joystickCallback; /* Callback for joystick events */ - uSynergyClipboardCallback m_clipboardCallback; /* Callback for clipboard events */ - - /* State data, used internally by client, initialized by uSynergyInit() */ - uSynergyBool m_connected; /* Is our socket connected? */ - uSynergyBool m_hasReceivedHello; /* Have we received a 'Hello' from the server? */ - uSynergyBool m_isCaptured; /* Is Synergy active (i.e. this client is receiving input messages?) */ - uint32_t m_lastMessageTime; /* Time at which last message was received */ - uint32_t m_sequenceNumber; /* Packet sequence number */ - uint8_t m_receiveBuffer[USYNERGY_RECEIVE_BUFFER_SIZE]; /* Receive buffer */ - int m_receiveOfs; /* Receive buffer offset */ - uint8_t m_replyBuffer[USYNERGY_REPLY_BUFFER_SIZE]; /* Reply buffer */ - uint8_t* m_replyCur; /* Write offset into reply buffer */ - uint16_t m_mouseX; /* Mouse X position */ - uint16_t m_mouseY; /* Mouse Y position */ - int16_t m_mouseWheelX; /* Mouse wheel X position */ - int16_t m_mouseWheelY; /* Mouse wheel Y position */ - uSynergyBool m_mouseButtonLeft; /* Mouse left button */ - uSynergyBool m_mouseButtonRight; /* Mouse right button */ - uSynergyBool m_mouseButtonMiddle; /* Mouse middle button */ - int8_t m_joystickSticks[USYNERGY_NUM_JOYSTICKS][4]; /* Joystick stick position in 2 axes for 2 sticks */ - uint16_t m_joystickButtons[USYNERGY_NUM_JOYSTICKS]; /* Joystick button state */ -} uSynergyContext; - - - -//--------------------------------------------------------------------------------------------------------------------- -// Interface -//--------------------------------------------------------------------------------------------------------------------- - - - -/** -@brief Initialize uSynergy context - -This function initializes @a context for use. Call this function directly after -creating the context, before filling in any configuration data in it. Not calling -this function will cause undefined behavior. - -@param context Context to be initialized -**/ -extern void uSynergyInit(uSynergyContext *context); - - - -/** -@brief Update uSynergy - -This function updates uSynergy and does the bulk of the work. It does connection management, -receiving data, reconnecting after errors or timeouts and so on. It assumes that networking -operations are blocking and it can suspend the current thread if it needs to wait. It is -best practice to call uSynergyUpdate from a background thread so it is responsive. - -Because uSynergy relies mostly on blocking calls it will mostly stay in thread sleep state -waiting for system mutexes and won't eat much memory. - -uSynergyUpdate doesn't do any memory allocations or have any side effects beyond those of -the callbacks it calls. - -@param context Context to be updated -**/ -extern void uSynergyUpdate(uSynergyContext *context); - - - -/** -@brief Send clipboard data - -This function sets new clipboard data and sends it to the server. Use this function if -your client cuts or copies data onto the clipboard that it needs to share with the -server. - -Currently there is only support for plaintext, but HTML and image data could be -supported with some effort. - -@param context Context to send clipboard data to -@param text Text to set to the clipboard -**/ -extern void uSynergySendClipboard(uSynergyContext *context, const char *text); - - - -#ifdef __cplusplus -}; -#endif diff --git a/libs/imgui-1.92.1/misc/fonts/Cousine-Regular.ttf b/libs/imgui-1.92.1/misc/fonts/Cousine-Regular.ttf deleted file mode 100644 index 70a0bf9..0000000 Binary files a/libs/imgui-1.92.1/misc/fonts/Cousine-Regular.ttf and /dev/null differ diff --git a/libs/imgui-1.92.1/misc/fonts/DroidSans.ttf b/libs/imgui-1.92.1/misc/fonts/DroidSans.ttf deleted file mode 100644 index 767c63a..0000000 Binary files a/libs/imgui-1.92.1/misc/fonts/DroidSans.ttf and /dev/null differ diff --git a/libs/imgui-1.92.1/misc/fonts/Karla-Regular.ttf b/libs/imgui-1.92.1/misc/fonts/Karla-Regular.ttf deleted file mode 100644 index 81b3de6..0000000 Binary files a/libs/imgui-1.92.1/misc/fonts/Karla-Regular.ttf and /dev/null differ diff --git a/libs/imgui-1.92.1/misc/fonts/ProggyClean.ttf b/libs/imgui-1.92.1/misc/fonts/ProggyClean.ttf deleted file mode 100644 index 0270cdf..0000000 Binary files a/libs/imgui-1.92.1/misc/fonts/ProggyClean.ttf and /dev/null differ diff --git a/libs/imgui-1.92.1/misc/fonts/ProggyTiny.ttf b/libs/imgui-1.92.1/misc/fonts/ProggyTiny.ttf deleted file mode 100644 index 1c4312c..0000000 Binary files a/libs/imgui-1.92.1/misc/fonts/ProggyTiny.ttf and /dev/null differ diff --git a/libs/imgui-1.92.1/misc/fonts/Roboto-Medium.ttf b/libs/imgui-1.92.1/misc/fonts/Roboto-Medium.ttf deleted file mode 100644 index 39c63d7..0000000 Binary files a/libs/imgui-1.92.1/misc/fonts/Roboto-Medium.ttf and /dev/null differ diff --git a/libs/imgui-1.92.1/misc/fonts/binary_to_compressed_c.cpp b/libs/imgui-1.92.1/misc/fonts/binary_to_compressed_c.cpp deleted file mode 100644 index da98831..0000000 --- a/libs/imgui-1.92.1/misc/fonts/binary_to_compressed_c.cpp +++ /dev/null @@ -1,424 +0,0 @@ -// dear imgui -// (binary_to_compressed_c.cpp) -// Helper tool to turn a file into a C array, if you want to embed font data in your source code. - -// The data is first compressed with stb_compress() to reduce source code size. -// Then stored in a C array: -// - Base85: ~5 bytes of source code for 4 bytes of input data. 5 bytes stored in binary (suggested by @mmalex). -// - As int: ~11 bytes of source code for 4 bytes of input data. 4 bytes stored in binary. Endianness dependent, need swapping on big-endian CPU. -// - As char: ~12 bytes of source code for 4 bytes of input data. 4 bytes stored in binary. Not endianness dependent. -// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF() - -// Build with, e.g: -// # cl.exe binary_to_compressed_c.cpp -// # g++ binary_to_compressed_c.cpp -// # clang++ binary_to_compressed_c.cpp -// You can also find a precompiled Windows binary in the binary/demo package available from https://github.com/ocornut/imgui - -// Usage: -// binary_to_compressed_c.exe [-nocompress] [-nostatic] [-base85] -// Usage example: -// # binary_to_compressed_c.exe myfont.ttf MyFont > myfont.cpp -// # binary_to_compressed_c.exe -base85 myfont.ttf MyFont > myfont.cpp -// Note: -// Base85 encoding will be obsoleted by future version of Dear ImGui! - -#define _CRT_SECURE_NO_WARNINGS -#include -#include -#include -#include - -// stb_compress* from stb.h - declaration -typedef unsigned int stb_uint; -typedef unsigned char stb_uchar; -stb_uint stb_compress(stb_uchar* out, stb_uchar* in, stb_uint len); - -enum SourceEncoding -{ - SourceEncoding_U8, // New default since 2024/11 - SourceEncoding_U32, - SourceEncoding_Base85, -}; - -static bool binary_to_compressed_c(const char* filename, const char* symbol, SourceEncoding source_encoding, bool use_compression, bool use_static); - -int main(int argc, char** argv) -{ - if (argc < 3) - { - printf("Syntax: %s [-u8|-u32|-base85] [-nocompress] [-nostatic] \n", argv[0]); - printf("Source encoding types:\n"); - printf(" -u8 = ~12 bytes of source per 4 bytes of data. 4 bytes in binary.\n"); - printf(" -u32 = ~11 bytes of source per 4 bytes of data. 4 bytes in binary. Need endianness swapping on big-endian.\n"); - printf(" -base85 = ~5 bytes of source per 4 bytes of data. 5 bytes in binary. Need decoder.\n"); - return 0; - } - - int argn = 1; - bool use_compression = true; - bool use_static = true; - SourceEncoding source_encoding = SourceEncoding_U8; // New default - while (argn < (argc - 2) && argv[argn][0] == '-') - { - if (strcmp(argv[argn], "-u8") == 0) { source_encoding = SourceEncoding_U8; argn++; } - else if (strcmp(argv[argn], "-u32") == 0) { source_encoding = SourceEncoding_U32; argn++; } - else if (strcmp(argv[argn], "-base85") == 0) { source_encoding = SourceEncoding_Base85; argn++; } - else if (strcmp(argv[argn], "-nocompress") == 0) { use_compression = false; argn++; } - else if (strcmp(argv[argn], "-nostatic") == 0) { use_static = false; argn++; } - else - { - fprintf(stderr, "Unknown argument: '%s'\n", argv[argn]); - return 1; - } - } - - bool ret = binary_to_compressed_c(argv[argn], argv[argn + 1], source_encoding, use_compression, use_static); - if (!ret) - fprintf(stderr, "Error opening or reading file: '%s'\n", argv[argn]); - return ret ? 0 : 1; -} - -char Encode85Byte(unsigned int x) -{ - x = (x % 85) + 35; - return (char)((x >= '\\') ? x + 1 : x); -} - -bool binary_to_compressed_c(const char* filename, const char* symbol, SourceEncoding source_encoding, bool use_compression, bool use_static) -{ - // Read file - FILE* f = fopen(filename, "rb"); - if (!f) return false; - int data_sz; - if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; } - char* data = new char[data_sz + 4]; - if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; } - memset((void*)(((char*)data) + data_sz), 0, 4); - fclose(f); - - // Compress - int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess - char* compressed = use_compression ? new char[maxlen] : data; - int compressed_sz = use_compression ? stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz) : data_sz; - if (use_compression) - memset(compressed + compressed_sz, 0, maxlen - compressed_sz); - - // Output as Base85 encoded - FILE* out = stdout; - fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz); - const char* static_str = use_static ? "static " : ""; - const char* compressed_str = use_compression ? "compressed_" : ""; - if (source_encoding == SourceEncoding_Base85) - { - fprintf(out, "// Exported using binary_to_compressed_c.exe -base85 \"%s\" %s\n", filename, symbol); - fprintf(out, "%sconst char %s_%sdata_base85[%d+1] =\n \"", static_str, symbol, compressed_str, (int)((compressed_sz + 3) / 4)*5); - char prev_c = 0; - for (int src_i = 0; src_i < compressed_sz; src_i += 4) - { - // This is made a little more complicated by the fact that ??X sequences are interpreted as trigraphs by old C/C++ compilers. So we need to escape pairs of ??. - unsigned int d = *(unsigned int*)(compressed + src_i); - for (unsigned int n5 = 0; n5 < 5; n5++, d /= 85) - { - char c = Encode85Byte(d); - fprintf(out, (c == '?' && prev_c == '?') ? "\\%c" : "%c", c); - prev_c = c; - } - if ((src_i % 112) == 112 - 4) - fprintf(out, "\"\n \""); - } - fprintf(out, "\";\n\n"); - } - else if (source_encoding == SourceEncoding_U8) - { - // As individual bytes, not subject to endianness issues. - fprintf(out, "// Exported using binary_to_compressed_c.exe -u8 \"%s\" %s\n", filename, symbol); - fprintf(out, "%sconst unsigned int %s_%ssize = %d;\n", static_str, symbol, compressed_str, (int)compressed_sz); - fprintf(out, "%sconst unsigned char %s_%sdata[%d] =\n{", static_str, symbol, compressed_str, (int)compressed_sz); - int column = 0; - for (int i = 0; i < compressed_sz; i++) - { - unsigned char d = *(unsigned char*)(compressed + i); - if (column == 0) - fprintf(out, "\n "); - column += fprintf(out, "%d,", d); - if (column >= 180) - column = 0; - } - fprintf(out, "\n};\n\n"); - } - else if (source_encoding == SourceEncoding_U32) - { - // As integers - fprintf(out, "// Exported using binary_to_compressed_c.exe -u32 \"%s\" %s\n", filename, symbol); - fprintf(out, "%sconst unsigned int %s_%ssize = %d;\n", static_str, symbol, compressed_str, (int)compressed_sz); - fprintf(out, "%sconst unsigned int %s_%sdata[%d/4] =\n{", static_str, symbol, compressed_str, (int)((compressed_sz + 3) / 4)*4); - int column = 0; - for (int i = 0; i < compressed_sz; i += 4) - { - unsigned int d = *(unsigned int*)(compressed + i); - if ((column++ % 14) == 0) - fprintf(out, "\n 0x%08x, ", d); - else - fprintf(out, "0x%08x, ", d); - } - fprintf(out, "\n};\n\n"); - } - - // Cleanup - delete[] data; - if (use_compression) - delete[] compressed; - return true; -} - -// stb_compress* from stb.h - definition - -//////////////////// compressor /////////////////////// - -static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen) -{ - const unsigned long ADLER_MOD = 65521; - unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16; - unsigned long blocklen, i; - - blocklen = buflen % 5552; - while (buflen) { - for (i=0; i + 7 < blocklen; i += 8) { - s1 += buffer[0], s2 += s1; - s1 += buffer[1], s2 += s1; - s1 += buffer[2], s2 += s1; - s1 += buffer[3], s2 += s1; - s1 += buffer[4], s2 += s1; - s1 += buffer[5], s2 += s1; - s1 += buffer[6], s2 += s1; - s1 += buffer[7], s2 += s1; - - buffer += 8; - } - - for (; i < blocklen; ++i) - s1 += *buffer++, s2 += s1; - - s1 %= ADLER_MOD, s2 %= ADLER_MOD; - buflen -= blocklen; - blocklen = 5552; - } - return (s2 << 16) + s1; -} - -static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen) -{ - stb_uint i; - for (i=0; i < maxlen; ++i) - if (m1[i] != m2[i]) return i; - return i; -} - -// simple implementation that just takes the source data in a big block - -static stb_uchar *stb__out; -static FILE *stb__outfile; -static stb_uint stb__outbytes; - -static void stb__write(unsigned char v) -{ - fputc(v, stb__outfile); - ++stb__outbytes; -} - -//#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v))) -#define stb_out(v) do { if (stb__out) *stb__out++ = (stb_uchar) (v); else stb__write((stb_uchar) (v)); } while (0) - -static void stb_out2(stb_uint v) { stb_out(v >> 8); stb_out(v); } -static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); } -static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); stb_out(v >> 8 ); stb_out(v); } - -static void outliterals(stb_uchar *in, int numlit) -{ - while (numlit > 65536) { - outliterals(in,65536); - in += 65536; - numlit -= 65536; - } - - if (numlit == 0) ; - else if (numlit <= 32) stb_out (0x000020 + numlit-1); - else if (numlit <= 2048) stb_out2(0x000800 + numlit-1); - else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1); - - if (stb__out) { - memcpy(stb__out,in,numlit); - stb__out += numlit; - } else - fwrite(in, 1, numlit, stb__outfile); -} - -static int stb__window = 0x40000; // 256K - -static int stb_not_crap(int best, int dist) -{ - return ((best > 2 && dist <= 0x00100) - || (best > 5 && dist <= 0x04000) - || (best > 7 && dist <= 0x80000)); -} - -static stb_uint stb__hashsize = 32768; - -// note that you can play with the hashing functions all you -// want without needing to change the decompressor -#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c]) -#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d]) -#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e]) - -static unsigned int stb__running_adler; - -static int stb_compress_chunk(stb_uchar *history, - stb_uchar *start, - stb_uchar *end, - int length, - int *pending_literals, - stb_uchar **chash, - stb_uint mask) -{ - (void)history; - int window = stb__window; - stb_uint match_max; - stb_uchar *lit_start = start - *pending_literals; - stb_uchar *q = start; - -#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask) - - // stop short of the end so we don't scan off the end doing - // the hashing; this means we won't compress the last few bytes - // unless they were part of something longer - while (q < start+length && q+12 < end) { - int m; - stb_uint h1,h2,h3,h4, h; - stb_uchar *t; - int best = 2, dist=0; - - if (q+65536 > end) - match_max = (stb_uint)(end-q); - else - match_max = 65536; - -#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap((int)(b),(int)(d)))) - -#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \ - if (p ? dist != (int)(q-t) : 1) \ - if ((m = stb_matchlen(t, q, match_max)) > best) \ - if (stb__nc(m,q-(t))) \ - best = m, dist = (int)(q - (t)) - - // rather than search for all matches, only try 4 candidate locations, - // chosen based on 4 different hash functions of different lengths. - // this strategy is inspired by LZO; hashing is unrolled here using the - // 'hc' macro - h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h); - t = chash[h1]; if (t) STB__TRY(t,0); - h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h); - h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1); - h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h); - h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1); - h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h); - t = chash[h4]; if (t) STB__TRY(t,1); - - // because we use a shared hash table, can only update it - // _after_ we've probed all of them - chash[h1] = chash[h2] = chash[h3] = chash[h4] = q; - - if (best > 2) - assert(dist > 0); - - // see if our best match qualifies - if (best < 3) { // fast path literals - ++q; - } else if (best > 2 && best <= 0x80 && dist <= 0x100) { - outliterals(lit_start, (int)(q-lit_start)); lit_start = (q += best); - stb_out(0x80 + best-1); - stb_out(dist-1); - } else if (best > 5 && best <= 0x100 && dist <= 0x4000) { - outliterals(lit_start, (int)(q-lit_start)); lit_start = (q += best); - stb_out2(0x4000 + dist-1); - stb_out(best-1); - } else if (best > 7 && best <= 0x100 && dist <= 0x80000) { - outliterals(lit_start, (int)(q-lit_start)); lit_start = (q += best); - stb_out3(0x180000 + dist-1); - stb_out(best-1); - } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) { - outliterals(lit_start, (int)(q-lit_start)); lit_start = (q += best); - stb_out3(0x100000 + dist-1); - stb_out2(best-1); - } else if (best > 9 && dist <= 0x1000000) { - if (best > 65536) best = 65536; - outliterals(lit_start, (int)(q-lit_start)); lit_start = (q += best); - if (best <= 0x100) { - stb_out(0x06); - stb_out3(dist-1); - stb_out(best-1); - } else { - stb_out(0x04); - stb_out3(dist-1); - stb_out2(best-1); - } - } else { // fallback literals if no match was a balanced tradeoff - ++q; - } - } - - // if we didn't get all the way, add the rest to literals - if (q-start < length) - q = start+length; - - // the literals are everything from lit_start to q - *pending_literals = (int)(q - lit_start); - - stb__running_adler = stb_adler32(stb__running_adler, start, (stb_uint)(q - start)); - return (int)(q - start); -} - -static int stb_compress_inner(stb_uchar *input, stb_uint length) -{ - int literals = 0; - stb_uint len,i; - - stb_uchar **chash; - chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*)); - if (chash == nullptr) return 0; // failure - for (i=0; i < stb__hashsize; ++i) - chash[i] = nullptr; - - // stream signature - stb_out(0x57); stb_out(0xbc); - stb_out2(0); - - stb_out4(0); // 64-bit length requires 32-bit leading 0 - stb_out4(length); - stb_out4(stb__window); - - stb__running_adler = 1; - - len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1); - assert(len == length); - - outliterals(input+length - literals, literals); - - free(chash); - - stb_out2(0x05fa); // end opcode - - stb_out4(stb__running_adler); - - return 1; // success -} - -stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length) -{ - stb__out = out; - stb__outfile = nullptr; - - stb_compress_inner(input, length); - - return (stb_uint)(stb__out - out); -} diff --git a/libs/imgui-1.92.1/misc/freetype/README.md b/libs/imgui-1.92.1/misc/freetype/README.md deleted file mode 100644 index e1bd019..0000000 --- a/libs/imgui-1.92.1/misc/freetype/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# imgui_freetype - -Build font atlases using FreeType instead of stb_truetype (which is the default font rasterizer). -
by @vuhdo, @mikesart, @ocornut. - -### Usage - -1. Get latest FreeType binaries or build yourself (under Windows you may use vcpkg with `vcpkg install freetype --triplet=x64-windows`, `vcpkg integrate install`). -2. Add imgui_freetype.h/cpp alongside your project files. -3. Add `#define IMGUI_ENABLE_FREETYPE` in your [imconfig.h](https://github.com/ocornut/imgui/blob/master/imconfig.h) file - -### About Gamma Correct Blending - -FreeType assumes blending in linear space rather than gamma space. -See FreeType note for [FT_Render_Glyph](https://freetype.org/freetype2/docs/reference/ft2-glyph_retrieval.html#ft_render_glyph). -For correct results you need to be using sRGB and convert to linear space in the pixel shader output. -The default Dear ImGui styles will be impacted by this change (alpha values will need tweaking). - -### Testbed for toying with settings (for developers) - -See https://gist.github.com/ocornut/b3a9ecf13502fd818799a452969649ad - -### Known issues - -- Oversampling settings are ignored but also not so much necessary with the higher quality rendering. - -### Comparison - -Small, thin anti-aliased fonts typically benefit a lot from FreeType's hinting: -![comparing_font_rasterizers](https://user-images.githubusercontent.com/8225057/107550178-fef87f00-6bd0-11eb-8d09-e2edb2f0ccfc.gif) - -### Colorful glyphs/emojis - -You can use the `ImGuiFreeTypeBuilderFlags_LoadColor` flag to load certain colorful glyphs. See the -["Using Colorful Glyphs/Emojis"](https://github.com/ocornut/imgui/blob/master/docs/FONTS.md#using-colorful-glyphsemojis) section of FONTS.md. - -![colored glyphs](https://user-images.githubusercontent.com/8225057/106171241-9dc4ba80-6191-11eb-8a69-ca1467b206d1.png) - -### Using OpenType SVG fonts (SVGinOT) -- *SVG in Open Type* is a standard by Adobe and Mozilla for color OpenType and Open Font Format fonts. It allows font creators to embed complete SVG files within a font enabling full color and even animations. -- Popular fonts such as [twemoji](https://github.com/13rac1/twemoji-color-font) and fonts made with [scfbuild](https://github.com/13rac1/scfbuild) is SVGinOT. -- Two alternatives are possible to render SVG fonts: use "lunasvg" or "plutosvg". plutosvg will support some more fonts (e.g. NotoColorEmoji-Regular) and may load them faster. - -#### Using lunasvg -Requires: [lunasvg](https://github.com/sammycage/lunasvg) v2.3.2 and above -- Add `#define IMGUI_ENABLE_FREETYPE_LUNASVG` in your `imconfig.h`. -- Get latest lunasvg binaries or build yourself. Under Windows you may use vcpkg with: `vcpkg install lunasvg --triplet=x64-windows`. - -#### Using plutosvg (and plutovg) -- Add `#define IMGUI_ENABLE_FREETYPE_PLUTOSVG` in your `imconfig.h`. -- Get latest plutosvg binaries or build yourself. Under Windows you may use vcpkg with: `vcpkg install plutosvg --triplet=x64-windows`. Alternatively, if you build imgui from vcpkg, you just need to enable the plutosvg feature: `vcpkg install imgui[plutosvg] --triplet=x64-windows` -- If you prefer to build plutosvg manually: - - Compilation hints for plutovg: Compile all source files in `plutovg/source/*.c` + Add include directory: `plutovg/include` + `plutovg/stb` - - Compilation hints for plutosvg: Compile `plutosvg/source/plutosvg.c` + Add include directory: `plutosvg/source` + Add define: `PLUTOSVG_HAS_FREETYPE` + Link with: plutovg, freetype diff --git a/libs/imgui-1.92.1/misc/freetype/imgui_freetype.cpp b/libs/imgui-1.92.1/misc/freetype/imgui_freetype.cpp deleted file mode 100644 index 7a94683..0000000 --- a/libs/imgui-1.92.1/misc/freetype/imgui_freetype.cpp +++ /dev/null @@ -1,751 +0,0 @@ -// dear imgui: FreeType font builder (used as a replacement for the stb_truetype builder) -// (code) - -// Get the latest version at https://github.com/ocornut/imgui/tree/master/misc/freetype -// Original code by @vuhdo (Aleksei Skriabin) in 2017, with improvements by @mikesart. -// Maintained since 2019 by @ocornut. - -// CHANGELOG -// (minor and older changes stripped away, please see git history for details) -// 2025/06/11: refactored for the new ImFontLoader architecture, and ImGuiBackendFlags_RendererHasTextures support. -// 2024/10/17: added plutosvg support for SVG Fonts (seems faster/better than lunasvg). Enable by using '#define IMGUI_ENABLE_FREETYPE_PLUTOSVG'. (#7927) -// 2023/11/13: added support for ImFontConfig::RasterizationDensity field for scaling render density without scaling metrics. -// 2023/08/01: added support for SVG fonts, enable by using '#define IMGUI_ENABLE_FREETYPE_LUNASVG'. (#6591) -// 2023/01/04: fixed a packing issue which in some occurrences would prevent large amount of glyphs from being packed correctly. -// 2021/08/23: fixed crash when FT_Render_Glyph() fails to render a glyph and returns nullptr. -// 2021/03/05: added ImGuiFreeTypeBuilderFlags_Bitmap to load bitmap glyphs. -// 2021/03/02: set 'atlas->TexPixelsUseColors = true' to help some backends with deciding of a preferred texture format. -// 2021/01/28: added support for color-layered glyphs via ImGuiFreeTypeBuilderFlags_LoadColor (require Freetype 2.10+). -// 2021/01/26: simplified integration by using '#define IMGUI_ENABLE_FREETYPE'. renamed ImGuiFreeType::XXX flags to ImGuiFreeTypeBuilderFlags_XXX for consistency with other API. removed ImGuiFreeType::BuildFontAtlas(). -// 2020/06/04: fix for rare case where FT_Get_Char_Index() succeed but FT_Load_Glyph() fails. -// 2019/02/09: added RasterizerFlags::Monochrome flag to disable font anti-aliasing (combine with ::MonoHinting for best results!) -// 2019/01/15: added support for imgui allocators + added FreeType only override function SetAllocatorFunctions(). -// 2019/01/10: re-factored to match big update in STB builder. fixed texture height waste. fixed redundant glyphs when merging. support for glyph padding. -// 2018/06/08: added support for ImFontConfig::GlyphMinAdvanceX, GlyphMaxAdvanceX. -// 2018/02/04: moved to main imgui repository (away from http://www.github.com/ocornut/imgui_club) -// 2018/01/22: fix for addition of ImFontAtlas::TexUvscale member. -// 2017/10/22: minor inconsequential change to match change in master (removed an unnecessary statement). -// 2017/09/26: fixes for imgui internal changes. -// 2017/08/26: cleanup, optimizations, support for ImFontConfig::RasterizerFlags, ImFontConfig::RasterizerMultiply. -// 2017/08/16: imported from https://github.com/Vuhdo/imgui_freetype into http://www.github.com/ocornut/imgui_club, updated for latest changes in ImFontAtlas, minor tweaks. - -// About Gamma Correct Blending: -// - FreeType assumes blending in linear space rather than gamma space. -// - See https://www.freetype.org/freetype2/docs/reference/ft2-base_interface.html#FT_Render_Glyph -// - For correct results you need to be using sRGB and convert to linear space in the pixel shader output. -// - The default dear imgui styles will be impacted by this change (alpha values will need tweaking). - -// FIXME: cfg.OversampleH, OversampleV are not supported, but generally not necessary with this rasterizer because Hinting makes everything look better. - -#include "imgui.h" -#ifndef IMGUI_DISABLE -#include "imgui_freetype.h" -#include "imgui_internal.h" // ImMin,ImMax,ImFontAtlasBuild*, -#include -#include -#include FT_FREETYPE_H // -#include FT_MODULE_H // -#include FT_GLYPH_H // -#include FT_SIZES_H // -#include FT_SYNTHESIS_H // - -// Handle LunaSVG and PlutoSVG -#if defined(IMGUI_ENABLE_FREETYPE_LUNASVG) && defined(IMGUI_ENABLE_FREETYPE_PLUTOSVG) -#error "Cannot enable both IMGUI_ENABLE_FREETYPE_LUNASVG and IMGUI_ENABLE_FREETYPE_PLUTOSVG" -#endif -#ifdef IMGUI_ENABLE_FREETYPE_LUNASVG -#include FT_OTSVG_H // -#include FT_BBOX_H // -#include -#endif -#ifdef IMGUI_ENABLE_FREETYPE_PLUTOSVG -#include -#endif -#if defined(IMGUI_ENABLE_FREETYPE_LUNASVG) || defined (IMGUI_ENABLE_FREETYPE_PLUTOSVG) -#if !((FREETYPE_MAJOR >= 2) && (FREETYPE_MINOR >= 12)) -#error IMGUI_ENABLE_FREETYPE_PLUTOSVG or IMGUI_ENABLE_FREETYPE_LUNASVG requires FreeType version >= 2.12 -#endif -#endif - -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4505) // unreferenced local function has been removed (stb stuff) -#pragma warning (disable: 26812) // [Static Analyzer] The enum type 'xxx' is unscoped. Prefer 'enum class' over 'enum' (Enum.3). -#endif - -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wpragmas" // warning: unknown option after '#pragma GCC diagnostic' kind -#pragma GCC diagnostic ignored "-Wunused-function" // warning: 'xxxx' defined but not used -#ifndef __clang__ -#pragma GCC diagnostic ignored "-Wsubobject-linkage" // warning: 'xxxx' has a field 'xxxx' whose type uses the anonymous namespace -#endif -#endif - -//------------------------------------------------------------------------- -// Data -//------------------------------------------------------------------------- - -// Default memory allocators -static void* ImGuiFreeTypeDefaultAllocFunc(size_t size, void* user_data) { IM_UNUSED(user_data); return IM_ALLOC(size); } -static void ImGuiFreeTypeDefaultFreeFunc(void* ptr, void* user_data) { IM_UNUSED(user_data); IM_FREE(ptr); } - -// Current memory allocators -static void* (*GImGuiFreeTypeAllocFunc)(size_t size, void* user_data) = ImGuiFreeTypeDefaultAllocFunc; -static void (*GImGuiFreeTypeFreeFunc)(void* ptr, void* user_data) = ImGuiFreeTypeDefaultFreeFunc; -static void* GImGuiFreeTypeAllocatorUserData = nullptr; - -// Lunasvg support -#ifdef IMGUI_ENABLE_FREETYPE_LUNASVG -static FT_Error ImGuiLunasvgPortInit(FT_Pointer* state); -static void ImGuiLunasvgPortFree(FT_Pointer* state); -static FT_Error ImGuiLunasvgPortRender(FT_GlyphSlot slot, FT_Pointer* _state); -static FT_Error ImGuiLunasvgPortPresetSlot(FT_GlyphSlot slot, FT_Bool cache, FT_Pointer* _state); -#endif - -//------------------------------------------------------------------------- -// Code -//------------------------------------------------------------------------- - -#define FT_CEIL(X) (((X + 63) & -64) / 64) // From SDL_ttf: Handy routines for converting from fixed point -#define FT_SCALEFACTOR 64.0f - -// Glyph metrics: -// -------------- -// -// xmin xmax -// | | -// |<-------- width -------->| -// | | -// | +-------------------------+----------------- ymax -// | | ggggggggg ggggg | ^ ^ -// | | g:::::::::ggg::::g | | | -// | | g:::::::::::::::::g | | | -// | | g::::::ggggg::::::gg | | | -// | | g:::::g g:::::g | | | -// offsetX -|-------->| g:::::g g:::::g | offsetY | -// | | g:::::g g:::::g | | | -// | | g::::::g g:::::g | | | -// | | g:::::::ggggg:::::g | | | -// | | g::::::::::::::::g | | height -// | | gg::::::::::::::g | | | -// baseline ---*---------|---- gggggggg::::::g-----*-------- | -// / | | g:::::g | | -// origin | | gggggg g:::::g | | -// | | g:::::gg gg:::::g | | -// | | g::::::ggg:::::::g | | -// | | gg:::::::::::::g | | -// | | ggg::::::ggg | | -// | | gggggg | v -// | +-------------------------+----------------- ymin -// | | -// |------------- advanceX ----------->| - -// Stored in ImFontAtlas::FontLoaderData. ALLOCATED BY US. -struct ImGui_ImplFreeType_Data -{ - FT_Library Library; - FT_MemoryRec_ MemoryManager; - ImGui_ImplFreeType_Data() { memset((void*)this, 0, sizeof(*this)); } -}; - -// Stored in ImFontConfig::FontLoaderData. ALLOCATED BY US. -struct ImGui_ImplFreeType_FontSrcData -{ - // Initialize from an external data buffer. Doesn't copy data, and you must ensure it stays valid up to this object lifetime. - bool InitFont(FT_Library ft_library, ImFontConfig* src, ImGuiFreeTypeLoaderFlags extra_user_flags); - void CloseFont(); - ImGui_ImplFreeType_FontSrcData() { memset((void*)this, 0, sizeof(*this)); } - ~ImGui_ImplFreeType_FontSrcData() { CloseFont(); } - - // Members - FT_Face FtFace; - ImGuiFreeTypeLoaderFlags UserFlags; // = ImFontConfig::FontLoaderFlags - FT_Int32 LoadFlags; - ImFontBaked* BakedLastActivated; -}; - -// Stored in ImFontBaked::FontLoaderDatas: pointer to SourcesCount instances of this. ALLOCATED BY CORE. -struct ImGui_ImplFreeType_FontSrcBakedData -{ - FT_Size FtSize; // This represent a FT_Face with a given size. - ImGui_ImplFreeType_FontSrcBakedData() { memset((void*)this, 0, sizeof(*this)); } -}; - -bool ImGui_ImplFreeType_FontSrcData::InitFont(FT_Library ft_library, ImFontConfig* src, ImGuiFreeTypeLoaderFlags extra_font_loader_flags) -{ - FT_Error error = FT_New_Memory_Face(ft_library, (uint8_t*)src->FontData, (FT_Long)src->FontDataSize, (FT_Long)src->FontNo, &FtFace); - if (error != 0) - return false; - error = FT_Select_Charmap(FtFace, FT_ENCODING_UNICODE); - if (error != 0) - return false; - - // Convert to FreeType flags (NB: Bold and Oblique are processed separately) - UserFlags = (ImGuiFreeTypeLoaderFlags)(src->FontLoaderFlags | extra_font_loader_flags); - - LoadFlags = 0; - if ((UserFlags & ImGuiFreeTypeLoaderFlags_Bitmap) == 0) - LoadFlags |= FT_LOAD_NO_BITMAP; - - if (UserFlags & ImGuiFreeTypeLoaderFlags_NoHinting) - LoadFlags |= FT_LOAD_NO_HINTING; - else - src->PixelSnapH = true; // FIXME: A bit weird to do this this way. - - if (UserFlags & ImGuiFreeTypeLoaderFlags_NoAutoHint) - LoadFlags |= FT_LOAD_NO_AUTOHINT; - if (UserFlags & ImGuiFreeTypeLoaderFlags_ForceAutoHint) - LoadFlags |= FT_LOAD_FORCE_AUTOHINT; - if (UserFlags & ImGuiFreeTypeLoaderFlags_LightHinting) - LoadFlags |= FT_LOAD_TARGET_LIGHT; - else if (UserFlags & ImGuiFreeTypeLoaderFlags_MonoHinting) - LoadFlags |= FT_LOAD_TARGET_MONO; - else - LoadFlags |= FT_LOAD_TARGET_NORMAL; - - if (UserFlags & ImGuiFreeTypeLoaderFlags_LoadColor) - LoadFlags |= FT_LOAD_COLOR; - - return true; -} - -void ImGui_ImplFreeType_FontSrcData::CloseFont() -{ - if (FtFace) - { - FT_Done_Face(FtFace); - FtFace = nullptr; - } -} - -static const FT_Glyph_Metrics* ImGui_ImplFreeType_LoadGlyph(ImGui_ImplFreeType_FontSrcData* src_data, uint32_t codepoint) -{ - uint32_t glyph_index = FT_Get_Char_Index(src_data->FtFace, codepoint); - if (glyph_index == 0) - return nullptr; - - // If this crash for you: FreeType 2.11.0 has a crash bug on some bitmap/colored fonts. - // - https://gitlab.freedesktop.org/freetype/freetype/-/issues/1076 - // - https://github.com/ocornut/imgui/issues/4567 - // - https://github.com/ocornut/imgui/issues/4566 - // You can use FreeType 2.10, or the patched version of 2.11.0 in VcPkg, or probably any upcoming FreeType version. - FT_Error error = FT_Load_Glyph(src_data->FtFace, glyph_index, src_data->LoadFlags); - if (error) - return nullptr; - - // Need an outline for this to work - FT_GlyphSlot slot = src_data->FtFace->glyph; -#if defined(IMGUI_ENABLE_FREETYPE_LUNASVG) || defined(IMGUI_ENABLE_FREETYPE_PLUTOSVG) - IM_ASSERT(slot->format == FT_GLYPH_FORMAT_OUTLINE || slot->format == FT_GLYPH_FORMAT_BITMAP || slot->format == FT_GLYPH_FORMAT_SVG); -#else -#if ((FREETYPE_MAJOR >= 2) && (FREETYPE_MINOR >= 12)) - IM_ASSERT(slot->format != FT_GLYPH_FORMAT_SVG && "The font contains SVG glyphs, you'll need to enable IMGUI_ENABLE_FREETYPE_PLUTOSVG or IMGUI_ENABLE_FREETYPE_LUNASVG in imconfig.h and install required libraries in order to use this font"); -#endif - IM_ASSERT(slot->format == FT_GLYPH_FORMAT_OUTLINE || slot->format == FT_GLYPH_FORMAT_BITMAP); -#endif // IMGUI_ENABLE_FREETYPE_LUNASVG - - // Apply convenience transform (this is not picking from real "Bold"/"Italic" fonts! Merely applying FreeType helper transform. Oblique == Slanting) - if (src_data->UserFlags & ImGuiFreeTypeLoaderFlags_Bold) - FT_GlyphSlot_Embolden(slot); - if (src_data->UserFlags & ImGuiFreeTypeLoaderFlags_Oblique) - { - FT_GlyphSlot_Oblique(slot); - //FT_BBox bbox; - //FT_Outline_Get_BBox(&slot->outline, &bbox); - //slot->metrics.width = bbox.xMax - bbox.xMin; - //slot->metrics.height = bbox.yMax - bbox.yMin; - } - - return &slot->metrics; -} - -static void ImGui_ImplFreeType_BlitGlyph(const FT_Bitmap* ft_bitmap, uint32_t* dst, uint32_t dst_pitch) -{ - IM_ASSERT(ft_bitmap != nullptr); - const uint32_t w = ft_bitmap->width; - const uint32_t h = ft_bitmap->rows; - const uint8_t* src = ft_bitmap->buffer; - const uint32_t src_pitch = ft_bitmap->pitch; - - switch (ft_bitmap->pixel_mode) - { - case FT_PIXEL_MODE_GRAY: // Grayscale image, 1 byte per pixel. - { - for (uint32_t y = 0; y < h; y++, src += src_pitch, dst += dst_pitch) - for (uint32_t x = 0; x < w; x++) - dst[x] = IM_COL32(255, 255, 255, src[x]); - break; - } - case FT_PIXEL_MODE_MONO: // Monochrome image, 1 bit per pixel. The bits in each byte are ordered from MSB to LSB. - { - for (uint32_t y = 0; y < h; y++, src += src_pitch, dst += dst_pitch) - { - uint8_t bits = 0; - const uint8_t* bits_ptr = src; - for (uint32_t x = 0; x < w; x++, bits <<= 1) - { - if ((x & 7) == 0) - bits = *bits_ptr++; - dst[x] = IM_COL32(255, 255, 255, (bits & 0x80) ? 255 : 0); - } - } - break; - } - case FT_PIXEL_MODE_BGRA: - { - // FIXME: Converting pre-multiplied alpha to straight. Doesn't smell good. - #define DE_MULTIPLY(color, alpha) ImMin((ImU32)(255.0f * (float)color / (float)(alpha + FLT_MIN) + 0.5f), 255u) - for (uint32_t y = 0; y < h; y++, src += src_pitch, dst += dst_pitch) - for (uint32_t x = 0; x < w; x++) - { - uint8_t r = src[x * 4 + 2], g = src[x * 4 + 1], b = src[x * 4], a = src[x * 4 + 3]; - dst[x] = IM_COL32(DE_MULTIPLY(r, a), DE_MULTIPLY(g, a), DE_MULTIPLY(b, a), a); - } - #undef DE_MULTIPLY - break; - } - default: - IM_ASSERT(0 && "FreeTypeFont::BlitGlyph(): Unknown bitmap pixel mode!"); - } -} - -// FreeType memory allocation callbacks -static void* FreeType_Alloc(FT_Memory /*memory*/, long size) -{ - return GImGuiFreeTypeAllocFunc((size_t)size, GImGuiFreeTypeAllocatorUserData); -} - -static void FreeType_Free(FT_Memory /*memory*/, void* block) -{ - GImGuiFreeTypeFreeFunc(block, GImGuiFreeTypeAllocatorUserData); -} - -static void* FreeType_Realloc(FT_Memory /*memory*/, long cur_size, long new_size, void* block) -{ - // Implement realloc() as we don't ask user to provide it. - if (block == nullptr) - return GImGuiFreeTypeAllocFunc((size_t)new_size, GImGuiFreeTypeAllocatorUserData); - - if (new_size == 0) - { - GImGuiFreeTypeFreeFunc(block, GImGuiFreeTypeAllocatorUserData); - return nullptr; - } - - if (new_size > cur_size) - { - void* new_block = GImGuiFreeTypeAllocFunc((size_t)new_size, GImGuiFreeTypeAllocatorUserData); - memcpy(new_block, block, (size_t)cur_size); - GImGuiFreeTypeFreeFunc(block, GImGuiFreeTypeAllocatorUserData); - return new_block; - } - - return block; -} - -bool ImGui_ImplFreeType_LoaderInit(ImFontAtlas* atlas) -{ - IM_ASSERT(atlas->FontLoaderData == nullptr); - ImGui_ImplFreeType_Data* bd = IM_NEW(ImGui_ImplFreeType_Data)(); - - // FreeType memory management: https://www.freetype.org/freetype2/docs/design/design-4.html - bd->MemoryManager.user = nullptr; - bd->MemoryManager.alloc = &FreeType_Alloc; - bd->MemoryManager.free = &FreeType_Free; - bd->MemoryManager.realloc = &FreeType_Realloc; - - // https://www.freetype.org/freetype2/docs/reference/ft2-module_management.html#FT_New_Library - FT_Error error = FT_New_Library(&bd->MemoryManager, &bd->Library); - if (error != 0) - { - IM_DELETE(bd); - return false; - } - - // If you don't call FT_Add_Default_Modules() the rest of code may work, but FreeType won't use our custom allocator. - FT_Add_Default_Modules(bd->Library); - -#ifdef IMGUI_ENABLE_FREETYPE_LUNASVG - // Install svg hooks for FreeType - // https://freetype.org/freetype2/docs/reference/ft2-properties.html#svg-hooks - // https://freetype.org/freetype2/docs/reference/ft2-svg_fonts.html#svg_fonts - SVG_RendererHooks hooks = { ImGuiLunasvgPortInit, ImGuiLunasvgPortFree, ImGuiLunasvgPortRender, ImGuiLunasvgPortPresetSlot }; - FT_Property_Set(bd->Library, "ot-svg", "svg-hooks", &hooks); -#endif // IMGUI_ENABLE_FREETYPE_LUNASVG -#ifdef IMGUI_ENABLE_FREETYPE_PLUTOSVG - // With plutosvg, use provided hooks - FT_Property_Set(bd->Library, "ot-svg", "svg-hooks", plutosvg_ft_svg_hooks()); -#endif // IMGUI_ENABLE_FREETYPE_PLUTOSVG - - // Store our data - atlas->FontLoaderData = (void*)bd; - - return true; -} - -void ImGui_ImplFreeType_LoaderShutdown(ImFontAtlas* atlas) -{ - ImGui_ImplFreeType_Data* bd = (ImGui_ImplFreeType_Data*)atlas->FontLoaderData; - IM_ASSERT(bd != nullptr); - FT_Done_Library(bd->Library); - IM_DELETE(bd); - atlas->FontLoaderData = nullptr; -} - -bool ImGui_ImplFreeType_FontSrcInit(ImFontAtlas* atlas, ImFontConfig* src) -{ - ImGui_ImplFreeType_Data* bd = (ImGui_ImplFreeType_Data*)atlas->FontLoaderData; - ImGui_ImplFreeType_FontSrcData* bd_font_data = IM_NEW(ImGui_ImplFreeType_FontSrcData); - IM_ASSERT(src->FontLoaderData == nullptr); - src->FontLoaderData = bd_font_data; - - if (!bd_font_data->InitFont(bd->Library, src, (ImGuiFreeTypeLoaderFlags)atlas->FontLoaderFlags)) - { - IM_DELETE(bd_font_data); - src->FontLoaderData = nullptr; - return false; - } - - return true; -} - -void ImGui_ImplFreeType_FontSrcDestroy(ImFontAtlas* atlas, ImFontConfig* src) -{ - IM_UNUSED(atlas); - ImGui_ImplFreeType_FontSrcData* bd_font_data = (ImGui_ImplFreeType_FontSrcData*)src->FontLoaderData; - IM_DELETE(bd_font_data); - src->FontLoaderData = nullptr; -} - -bool ImGui_ImplFreeType_FontBakedInit(ImFontAtlas* atlas, ImFontConfig* src, ImFontBaked* baked, void* loader_data_for_baked_src) -{ - IM_UNUSED(atlas); - float size = baked->Size; - if (src->MergeMode && src->SizePixels != 0.0f) - size *= (src->SizePixels / baked->ContainerFont->Sources[0]->SizePixels); - - ImGui_ImplFreeType_FontSrcData* bd_font_data = (ImGui_ImplFreeType_FontSrcData*)src->FontLoaderData; - bd_font_data->BakedLastActivated = baked; - - // We use one FT_Size per (source + baked) combination. - ImGui_ImplFreeType_FontSrcBakedData* bd_baked_data = (ImGui_ImplFreeType_FontSrcBakedData*)loader_data_for_baked_src; - IM_ASSERT(bd_baked_data != nullptr); - IM_PLACEMENT_NEW(bd_baked_data) ImGui_ImplFreeType_FontSrcBakedData(); - - FT_New_Size(bd_font_data->FtFace, &bd_baked_data->FtSize); - FT_Activate_Size(bd_baked_data->FtSize); - - // Vuhdo 2017: "I'm not sure how to deal with font sizes properly. As far as I understand, currently ImGui assumes that the 'pixel_height' - // is a maximum height of an any given glyph, i.e. it's the sum of font's ascender and descender. Seems strange to me. - // FT_Set_Pixel_Sizes() doesn't seem to get us the same result." - // (FT_Set_Pixel_Sizes() essentially calls FT_Request_Size() with FT_SIZE_REQUEST_TYPE_NOMINAL) - const float rasterizer_density = src->RasterizerDensity * baked->RasterizerDensity; - FT_Size_RequestRec req; - req.type = (bd_font_data->UserFlags & ImGuiFreeTypeLoaderFlags_Bitmap) ? FT_SIZE_REQUEST_TYPE_NOMINAL : FT_SIZE_REQUEST_TYPE_REAL_DIM; - req.width = 0; - req.height = (uint32_t)(size * 64 * rasterizer_density); - req.horiResolution = 0; - req.vertResolution = 0; - FT_Request_Size(bd_font_data->FtFace, &req); - - // Output - if (src->MergeMode == false) - { - // Read metrics - FT_Size_Metrics metrics = bd_baked_data->FtSize->metrics; - const float scale = 1.0f / rasterizer_density; - baked->Ascent = (float)FT_CEIL(metrics.ascender) * scale; // The pixel extents above the baseline in pixels (typically positive). - baked->Descent = (float)FT_CEIL(metrics.descender) * scale; // The extents below the baseline in pixels (typically negative). - //LineSpacing = (float)FT_CEIL(metrics.height) * scale; // The baseline-to-baseline distance. Note that it usually is larger than the sum of the ascender and descender taken as absolute values. There is also no guarantee that no glyphs extend above or below subsequent baselines when using this distance. Think of it as a value the designer of the font finds appropriate. - //LineGap = (float)FT_CEIL(metrics.height - metrics.ascender + metrics.descender) * scale; // The spacing in pixels between one row's descent and the next row's ascent. - //MaxAdvanceWidth = (float)FT_CEIL(metrics.max_advance) * scale; // This field gives the maximum horizontal cursor advance for all glyphs in the font. - } - return true; -} - -void ImGui_ImplFreeType_FontBakedDestroy(ImFontAtlas* atlas, ImFontConfig* src, ImFontBaked* baked, void* loader_data_for_baked_src) -{ - IM_UNUSED(atlas); - IM_UNUSED(baked); - IM_UNUSED(src); - ImGui_ImplFreeType_FontSrcBakedData* bd_baked_data = (ImGui_ImplFreeType_FontSrcBakedData*)loader_data_for_baked_src; - IM_ASSERT(bd_baked_data != nullptr); - FT_Done_Size(bd_baked_data->FtSize); - bd_baked_data->~ImGui_ImplFreeType_FontSrcBakedData(); // ~IM_PLACEMENT_DELETE() -} - -bool ImGui_ImplFreeType_FontBakedLoadGlyph(ImFontAtlas* atlas, ImFontConfig* src, ImFontBaked* baked, void* loader_data_for_baked_src, ImWchar codepoint, ImFontGlyph* out_glyph, float* out_advance_x) -{ - ImGui_ImplFreeType_FontSrcData* bd_font_data = (ImGui_ImplFreeType_FontSrcData*)src->FontLoaderData; - uint32_t glyph_index = FT_Get_Char_Index(bd_font_data->FtFace, codepoint); - if (glyph_index == 0) - return false; - - if (bd_font_data->BakedLastActivated != baked) // <-- could use id - { - // Activate current size - ImGui_ImplFreeType_FontSrcBakedData* bd_baked_data = (ImGui_ImplFreeType_FontSrcBakedData*)loader_data_for_baked_src; - FT_Activate_Size(bd_baked_data->FtSize); - bd_font_data->BakedLastActivated = baked; - } - - const FT_Glyph_Metrics* metrics = ImGui_ImplFreeType_LoadGlyph(bd_font_data, codepoint); - if (metrics == nullptr) - return false; - - FT_Face face = bd_font_data->FtFace; - FT_GlyphSlot slot = face->glyph; - const float rasterizer_density = src->RasterizerDensity * baked->RasterizerDensity; - - // Load metrics only mode - const float advance_x = (slot->advance.x / FT_SCALEFACTOR) / rasterizer_density; - if (out_advance_x != NULL) - { - IM_ASSERT(out_glyph == NULL); - *out_advance_x = advance_x; - return true; - } - - // Render glyph into a bitmap (currently held by FreeType) - FT_Render_Mode render_mode = (bd_font_data->UserFlags & ImGuiFreeTypeLoaderFlags_Monochrome) ? FT_RENDER_MODE_MONO : FT_RENDER_MODE_NORMAL; - FT_Error error = FT_Render_Glyph(slot, render_mode); - const FT_Bitmap* ft_bitmap = &slot->bitmap; - if (error != 0 || ft_bitmap == nullptr) - return false; - - const int w = (int)ft_bitmap->width; - const int h = (int)ft_bitmap->rows; - const bool is_visible = (w != 0 && h != 0); - - // Prepare glyph - out_glyph->Codepoint = codepoint; - out_glyph->AdvanceX = advance_x; - - // Pack and retrieve position inside texture atlas - if (is_visible) - { - ImFontAtlasRectId pack_id = ImFontAtlasPackAddRect(atlas, w, h); - if (pack_id == ImFontAtlasRectId_Invalid) - { - // Pathological out of memory case (TexMaxWidth/TexMaxHeight set too small?) - IM_ASSERT(pack_id != ImFontAtlasRectId_Invalid && "Out of texture memory."); - return false; - } - ImTextureRect* r = ImFontAtlasPackGetRect(atlas, pack_id); - - // Render pixels to our temporary buffer - atlas->Builder->TempBuffer.resize(w * h * 4); - uint32_t* temp_buffer = (uint32_t*)atlas->Builder->TempBuffer.Data; - ImGui_ImplFreeType_BlitGlyph(ft_bitmap, temp_buffer, w); - - const float ref_size = baked->ContainerFont->Sources[0]->SizePixels; - const float offsets_scale = (ref_size != 0.0f) ? (baked->Size / ref_size) : 1.0f; - float font_off_x = (src->GlyphOffset.x * offsets_scale); - float font_off_y = (src->GlyphOffset.y * offsets_scale) + baked->Ascent; - if (src->PixelSnapH) // Snap scaled offset. This is to mitigate backward compatibility issues for GlyphOffset, but a better design would be welcome. - font_off_x = IM_ROUND(font_off_x); - if (src->PixelSnapV) - font_off_y = IM_ROUND(font_off_y); - float recip_h = 1.0f / rasterizer_density; - float recip_v = 1.0f / rasterizer_density; - - // Register glyph - float glyph_off_x = (float)face->glyph->bitmap_left; - float glyph_off_y = (float)-face->glyph->bitmap_top; - out_glyph->X0 = glyph_off_x * recip_h + font_off_x; - out_glyph->Y0 = glyph_off_y * recip_v + font_off_y; - out_glyph->X1 = (glyph_off_x + w) * recip_h + font_off_x; - out_glyph->Y1 = (glyph_off_y + h) * recip_v + font_off_y; - out_glyph->Visible = true; - out_glyph->Colored = (ft_bitmap->pixel_mode == FT_PIXEL_MODE_BGRA); - out_glyph->PackId = pack_id; - ImFontAtlasBakedSetFontGlyphBitmap(atlas, baked, src, out_glyph, r, (const unsigned char*)temp_buffer, ImTextureFormat_RGBA32, w * 4); - } - - return true; -} - -bool ImGui_ImplFreetype_FontSrcContainsGlyph(ImFontAtlas* atlas, ImFontConfig* src, ImWchar codepoint) -{ - IM_UNUSED(atlas); - ImGui_ImplFreeType_FontSrcData* bd_font_data = (ImGui_ImplFreeType_FontSrcData*)src->FontLoaderData; - int glyph_index = FT_Get_Char_Index(bd_font_data->FtFace, codepoint); - return glyph_index != 0; -} - -const ImFontLoader* ImGuiFreeType::GetFontLoader() -{ - static ImFontLoader loader; - loader.Name = "FreeType"; - loader.LoaderInit = ImGui_ImplFreeType_LoaderInit; - loader.LoaderShutdown = ImGui_ImplFreeType_LoaderShutdown; - loader.FontSrcInit = ImGui_ImplFreeType_FontSrcInit; - loader.FontSrcDestroy = ImGui_ImplFreeType_FontSrcDestroy; - loader.FontSrcContainsGlyph = ImGui_ImplFreetype_FontSrcContainsGlyph; - loader.FontBakedInit = ImGui_ImplFreeType_FontBakedInit; - loader.FontBakedDestroy = ImGui_ImplFreeType_FontBakedDestroy; - loader.FontBakedLoadGlyph = ImGui_ImplFreeType_FontBakedLoadGlyph; - loader.FontBakedSrcLoaderDataSize = sizeof(ImGui_ImplFreeType_FontSrcBakedData); - return &loader; -} - -void ImGuiFreeType::SetAllocatorFunctions(void* (*alloc_func)(size_t sz, void* user_data), void (*free_func)(void* ptr, void* user_data), void* user_data) -{ - GImGuiFreeTypeAllocFunc = alloc_func; - GImGuiFreeTypeFreeFunc = free_func; - GImGuiFreeTypeAllocatorUserData = user_data; -} - -bool ImGuiFreeType::DebugEditFontLoaderFlags(unsigned int* p_font_loader_flags) -{ - bool edited = false; - edited |= ImGui::CheckboxFlags("NoHinting", p_font_loader_flags, ImGuiFreeTypeLoaderFlags_NoHinting); - edited |= ImGui::CheckboxFlags("NoAutoHint", p_font_loader_flags, ImGuiFreeTypeLoaderFlags_NoAutoHint); - edited |= ImGui::CheckboxFlags("ForceAutoHint",p_font_loader_flags, ImGuiFreeTypeLoaderFlags_ForceAutoHint); - edited |= ImGui::CheckboxFlags("LightHinting", p_font_loader_flags, ImGuiFreeTypeLoaderFlags_LightHinting); - edited |= ImGui::CheckboxFlags("MonoHinting", p_font_loader_flags, ImGuiFreeTypeLoaderFlags_MonoHinting); - edited |= ImGui::CheckboxFlags("Bold", p_font_loader_flags, ImGuiFreeTypeLoaderFlags_Bold); - edited |= ImGui::CheckboxFlags("Oblique", p_font_loader_flags, ImGuiFreeTypeLoaderFlags_Oblique); - edited |= ImGui::CheckboxFlags("Monochrome", p_font_loader_flags, ImGuiFreeTypeLoaderFlags_Monochrome); - edited |= ImGui::CheckboxFlags("LoadColor", p_font_loader_flags, ImGuiFreeTypeLoaderFlags_LoadColor); - edited |= ImGui::CheckboxFlags("Bitmap", p_font_loader_flags, ImGuiFreeTypeLoaderFlags_Bitmap); - return edited; -} - -#ifdef IMGUI_ENABLE_FREETYPE_LUNASVG -// For more details, see https://gitlab.freedesktop.org/freetype/freetype-demos/-/blob/master/src/rsvg-port.c -// The original code from the demo is licensed under CeCILL-C Free Software License Agreement (https://gitlab.freedesktop.org/freetype/freetype/-/blob/master/LICENSE.TXT) -struct LunasvgPortState -{ - FT_Error err = FT_Err_Ok; - lunasvg::Matrix matrix; - std::unique_ptr svg = nullptr; -}; - -static FT_Error ImGuiLunasvgPortInit(FT_Pointer* _state) -{ - *_state = IM_NEW(LunasvgPortState)(); - return FT_Err_Ok; -} - -static void ImGuiLunasvgPortFree(FT_Pointer* _state) -{ - IM_DELETE(*(LunasvgPortState**)_state); -} - -static FT_Error ImGuiLunasvgPortRender(FT_GlyphSlot slot, FT_Pointer* _state) -{ - LunasvgPortState* state = *(LunasvgPortState**)_state; - - // If there was an error while loading the svg in ImGuiLunasvgPortPresetSlot(), the renderer hook still get called, so just returns the error. - if (state->err != FT_Err_Ok) - return state->err; - - // rows is height, pitch (or stride) equals to width * sizeof(int32) - lunasvg::Bitmap bitmap((uint8_t*)slot->bitmap.buffer, slot->bitmap.width, slot->bitmap.rows, slot->bitmap.pitch); -#if LUNASVG_VERSION_MAJOR >= 3 - state->svg->render(bitmap, state->matrix); // state->matrix is already scaled and translated -#else - state->svg->setMatrix(state->svg->matrix().identity()); // Reset the svg matrix to the default value - state->svg->render(bitmap, state->matrix); // state->matrix is already scaled and translated -#endif - state->err = FT_Err_Ok; - return state->err; -} - -static FT_Error ImGuiLunasvgPortPresetSlot(FT_GlyphSlot slot, FT_Bool cache, FT_Pointer* _state) -{ - FT_SVG_Document document = (FT_SVG_Document)slot->other; - LunasvgPortState* state = *(LunasvgPortState**)_state; - FT_Size_Metrics& metrics = document->metrics; - - // This function is called twice, once in the FT_Load_Glyph() and another right before ImGuiLunasvgPortRender(). - // If it's the latter, don't do anything because it's // already done in the former. - if (cache) - return state->err; - - state->svg = lunasvg::Document::loadFromData((const char*)document->svg_document, document->svg_document_length); - if (state->svg == nullptr) - { - state->err = FT_Err_Invalid_SVG_Document; - return state->err; - } - -#if LUNASVG_VERSION_MAJOR >= 3 - lunasvg::Box box = state->svg->boundingBox(); -#else - lunasvg::Box box = state->svg->box(); -#endif - double scale = std::min(metrics.x_ppem / box.w, metrics.y_ppem / box.h); - double xx = (double)document->transform.xx / (1 << 16); - double xy = -(double)document->transform.xy / (1 << 16); - double yx = -(double)document->transform.yx / (1 << 16); - double yy = (double)document->transform.yy / (1 << 16); - double x0 = (double)document->delta.x / 64 * box.w / metrics.x_ppem; - double y0 = -(double)document->delta.y / 64 * box.h / metrics.y_ppem; - -#if LUNASVG_VERSION_MAJOR >= 3 - // Scale, transform and pre-translate the matrix for the rendering step - state->matrix = lunasvg::Matrix::translated(-box.x, -box.y); - state->matrix.multiply(lunasvg::Matrix(xx, xy, yx, yy, x0, y0)); - state->matrix.scale(scale, scale); - - // Apply updated transformation to the bounding box - box.transform(state->matrix); -#else - // Scale and transform, we don't translate the svg yet - state->matrix.identity(); - state->matrix.scale(scale, scale); - state->matrix.transform(xx, xy, yx, yy, x0, y0); - state->svg->setMatrix(state->matrix); - - // Pre-translate the matrix for the rendering step - state->matrix.translate(-box.x, -box.y); - - // Get the box again after the transformation - box = state->svg->box(); -#endif - - // Calculate the bitmap size - slot->bitmap_left = FT_Int(box.x); - slot->bitmap_top = FT_Int(-box.y); - slot->bitmap.rows = (unsigned int)(ImCeil((float)box.h)); - slot->bitmap.width = (unsigned int)(ImCeil((float)box.w)); - slot->bitmap.pitch = slot->bitmap.width * 4; - slot->bitmap.pixel_mode = FT_PIXEL_MODE_BGRA; - - // Compute all the bearings and set them correctly. The outline is scaled already, we just need to use the bounding box. - double metrics_width = box.w; - double metrics_height = box.h; - double horiBearingX = box.x; - double horiBearingY = -box.y; - double vertBearingX = slot->metrics.horiBearingX / 64.0 - slot->metrics.horiAdvance / 64.0 / 2.0; - double vertBearingY = (slot->metrics.vertAdvance / 64.0 - slot->metrics.height / 64.0) / 2.0; - slot->metrics.width = FT_Pos(IM_ROUND(metrics_width * 64.0)); // Using IM_ROUND() assume width and height are positive - slot->metrics.height = FT_Pos(IM_ROUND(metrics_height * 64.0)); - slot->metrics.horiBearingX = FT_Pos(horiBearingX * 64); - slot->metrics.horiBearingY = FT_Pos(horiBearingY * 64); - slot->metrics.vertBearingX = FT_Pos(vertBearingX * 64); - slot->metrics.vertBearingY = FT_Pos(vertBearingY * 64); - - if (slot->metrics.vertAdvance == 0) - slot->metrics.vertAdvance = FT_Pos(metrics_height * 1.2 * 64.0); - - state->err = FT_Err_Ok; - return state->err; -} - -#endif // #ifdef IMGUI_ENABLE_FREETYPE_LUNASVG - -//----------------------------------------------------------------------------- - -#ifdef __GNUC__ -#pragma GCC diagnostic pop -#endif - -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/imgui-1.92.1/misc/freetype/imgui_freetype.h b/libs/imgui-1.92.1/misc/freetype/imgui_freetype.h deleted file mode 100644 index 8531369..0000000 --- a/libs/imgui-1.92.1/misc/freetype/imgui_freetype.h +++ /dev/null @@ -1,83 +0,0 @@ -// dear imgui: FreeType font builder (used as a replacement for the stb_truetype builder) -// (headers) - -#pragma once -#include "imgui.h" // IMGUI_API -#ifndef IMGUI_DISABLE - -// Usage: -// - Add '#define IMGUI_ENABLE_FREETYPE' in your imconfig to automatically enable support -// for imgui_freetype in imgui. It is equivalent to selecting the default loader with: -// io.Fonts->SetFontLoader(ImGuiFreeType::GetFontLoader()) - -// Optional support for OpenType SVG fonts: -// - Add '#define IMGUI_ENABLE_FREETYPE_PLUTOSVG' to use plutosvg (not provided). See #7927. -// - Add '#define IMGUI_ENABLE_FREETYPE_LUNASVG' to use lunasvg (not provided). See #6591. - -// Forward declarations -struct ImFontAtlas; -struct ImFontLoader; - -// Hinting greatly impacts visuals (and glyph sizes). -// - By default, hinting is enabled and the font's native hinter is preferred over the auto-hinter. -// - When disabled, FreeType generates blurrier glyphs, more or less matches the stb_truetype.h -// - The Default hinting mode usually looks good, but may distort glyphs in an unusual way. -// - The Light hinting mode generates fuzzier glyphs but better matches Microsoft's rasterizer. -// You can set those flags globally in ImFontAtlas::FontLoaderFlags -// You can set those flags on a per font basis in ImFontConfig::FontLoaderFlags -typedef unsigned int ImGuiFreeTypeLoaderFlags; -enum ImGuiFreeTypeLoaderFlags_ -{ - ImGuiFreeTypeLoaderFlags_NoHinting = 1 << 0, // Disable hinting. This generally generates 'blurrier' bitmap glyphs when the glyph are rendered in any of the anti-aliased modes. - ImGuiFreeTypeLoaderFlags_NoAutoHint = 1 << 1, // Disable auto-hinter. - ImGuiFreeTypeLoaderFlags_ForceAutoHint = 1 << 2, // Indicates that the auto-hinter is preferred over the font's native hinter. - ImGuiFreeTypeLoaderFlags_LightHinting = 1 << 3, // A lighter hinting algorithm for gray-level modes. Many generated glyphs are fuzzier but better resemble their original shape. This is achieved by snapping glyphs to the pixel grid only vertically (Y-axis), as is done by Microsoft's ClearType and Adobe's proprietary font renderer. This preserves inter-glyph spacing in horizontal text. - ImGuiFreeTypeLoaderFlags_MonoHinting = 1 << 4, // Strong hinting algorithm that should only be used for monochrome output. - ImGuiFreeTypeLoaderFlags_Bold = 1 << 5, // Styling: Should we artificially embolden the font? - ImGuiFreeTypeLoaderFlags_Oblique = 1 << 6, // Styling: Should we slant the font, emulating italic style? - ImGuiFreeTypeLoaderFlags_Monochrome = 1 << 7, // Disable anti-aliasing. Combine this with MonoHinting for best results! - ImGuiFreeTypeLoaderFlags_LoadColor = 1 << 8, // Enable FreeType color-layered glyphs - ImGuiFreeTypeLoaderFlags_Bitmap = 1 << 9, // Enable FreeType bitmap glyphs - -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - ImGuiFreeTypeBuilderFlags_NoHinting = ImGuiFreeTypeLoaderFlags_NoHinting, - ImGuiFreeTypeBuilderFlags_NoAutoHint = ImGuiFreeTypeLoaderFlags_NoAutoHint, - ImGuiFreeTypeBuilderFlags_ForceAutoHint = ImGuiFreeTypeLoaderFlags_ForceAutoHint, - ImGuiFreeTypeBuilderFlags_LightHinting = ImGuiFreeTypeLoaderFlags_LightHinting, - ImGuiFreeTypeBuilderFlags_MonoHinting = ImGuiFreeTypeLoaderFlags_MonoHinting, - ImGuiFreeTypeBuilderFlags_Bold = ImGuiFreeTypeLoaderFlags_Bold, - ImGuiFreeTypeBuilderFlags_Oblique = ImGuiFreeTypeLoaderFlags_Oblique, - ImGuiFreeTypeBuilderFlags_Monochrome = ImGuiFreeTypeLoaderFlags_Monochrome, - ImGuiFreeTypeBuilderFlags_LoadColor = ImGuiFreeTypeLoaderFlags_LoadColor, - ImGuiFreeTypeBuilderFlags_Bitmap = ImGuiFreeTypeLoaderFlags_Bitmap, -#endif -}; - -// Obsolete names (will be removed) -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS -typedef ImGuiFreeTypeLoaderFlags_ ImGuiFreeTypeBuilderFlags_; -#endif - -namespace ImGuiFreeType -{ - // This is automatically assigned when using '#define IMGUI_ENABLE_FREETYPE'. - // If you need to dynamically select between multiple builders: - // - you can manually assign this builder with 'atlas->SetFontLoader(ImGuiFreeType::GetFontLoader())' - // - prefer deep-copying this into your own ImFontLoader instance if you use hot-reloading that messes up static data. - IMGUI_API const ImFontLoader* GetFontLoader(); - - // Override allocators. By default ImGuiFreeType will use IM_ALLOC()/IM_FREE() - // However, as FreeType does lots of allocations we provide a way for the user to redirect it to a separate memory heap if desired. - IMGUI_API void SetAllocatorFunctions(void* (*alloc_func)(size_t sz, void* user_data), void (*free_func)(void* ptr, void* user_data), void* user_data = nullptr); - - // Display UI to edit ImFontAtlas::FontLoaderFlags (shared) or ImFontConfig::FontLoaderFlags (single source) - IMGUI_API bool DebugEditFontLoaderFlags(ImGuiFreeTypeLoaderFlags* p_font_loader_flags); - - // Obsolete names (will be removed) -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - //IMGUI_API const ImFontBuilderIO* GetBuilderForFreeType(); // Renamed/changed in 1.92. Change 'io.Fonts->FontBuilderIO = ImGuiFreeType::GetBuilderForFreeType()' to 'io.Fonts->SetFontLoader(ImGuiFreeType::GetFontLoader())' if you need runtime selection. - //static inline bool BuildFontAtlas(ImFontAtlas* atlas, unsigned int flags = 0) { atlas->FontBuilderIO = GetBuilderForFreeType(); atlas->FontLoaderFlags = flags; return atlas->Build(); } // Prefer using '#define IMGUI_ENABLE_FREETYPE' -#endif -} - -#endif // #ifndef IMGUI_DISABLE diff --git a/libs/openssl-3.6.0-beta1/arm64/bin/c_rehash.pl b/libs/openssl-3.6.0-beta1/arm64/bin/c_rehash.pl deleted file mode 100644 index ebf6c02..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/bin/c_rehash.pl +++ /dev/null @@ -1,252 +0,0 @@ -#!/usr/bin/env perl - -# WARNING: do not edit! -# Generated by makefile from ..\tools\c_rehash.in -# Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. -# -# Licensed under the Apache License 2.0 (the "License"). You may not use -# this file except in compliance with the License. You can obtain a copy -# in the file LICENSE in the source distribution or at -# https://www.openssl.org/source/license.html - -# Perl c_rehash script, scan all files in a directory -# and add symbolic links to their hash values. - -my $dir = "C:\\Program Files\\Common Files\\FireDaemon SSL 3.x"; -my $prefix = "C:\\Program Files\\FireDaemon OpenSSL 3.x"; - -my $errorcount = 0; -my $openssl = $ENV{OPENSSL} || "openssl"; -my $pwd; -my $x509hash = "-subject_hash"; -my $crlhash = "-hash"; -my $verbose = 0; -my $symlink_exists=eval {symlink("",""); 1}; -my $removelinks = 1; - -## Parse flags. -while ( $ARGV[0] =~ /^-/ ) { - my $flag = shift @ARGV; - last if ( $flag eq '--'); - if ( $flag eq '-old') { - $x509hash = "-subject_hash_old"; - $crlhash = "-hash_old"; - } elsif ( $flag eq '-h' || $flag eq '-help' ) { - help(); - } elsif ( $flag eq '-n' ) { - $removelinks = 0; - } elsif ( $flag eq '-v' ) { - $verbose++; - } - else { - print STDERR "Usage error; try -h.\n"; - exit 1; - } -} - -sub help { - print "Usage: c_rehash [-old] [-h] [-help] [-v] [dirs...]\n"; - print " -old use old-style digest\n"; - print " -h or -help print this help text\n"; - print " -v print files removed and linked\n"; - exit 0; -} - -eval "require Cwd"; -if (defined(&Cwd::getcwd)) { - $pwd=Cwd::getcwd(); -} else { - $pwd=`pwd`; - chomp($pwd); -} - -# DOS/Win32 or Unix delimiter? Prefix our installdir, then search. -my $path_delim = ($pwd =~ /^[a-z]\:/i) ? ';' : ':'; -$ENV{PATH} = "$prefix/bin" . ($ENV{PATH} ? $path_delim . $ENV{PATH} : ""); - -if (!(-f $openssl && -x $openssl)) { - my $found = 0; - foreach (split /$path_delim/, $ENV{PATH}) { - if (-f "$_/$openssl" && -x "$_/$openssl") { - $found = 1; - $openssl = "$_/$openssl"; - last; - } - } - if ($found == 0) { - print STDERR "c_rehash: rehashing skipped ('openssl' program not available)\n"; - exit 0; - } -} - -if (@ARGV) { - @dirlist = @ARGV; -} elsif ($ENV{SSL_CERT_DIR}) { - @dirlist = split /$path_delim/, $ENV{SSL_CERT_DIR}; -} else { - $dirlist[0] = "$dir/certs"; -} - -if (-d $dirlist[0]) { - chdir $dirlist[0]; - $openssl="$pwd/$openssl" if (!(-f $openssl && -x $openssl)); - chdir $pwd; -} - -foreach (@dirlist) { - if (-d $_ ) { - if ( -w $_) { - hash_dir($_); - } else { - print "Skipping $_, can't write\n"; - $errorcount++; - } - } -} -exit($errorcount); - -sub copy_file { - my ($src_fname, $dst_fname) = @_; - - if (open(my $in, "<", $src_fname)) { - if (open(my $out, ">", $dst_fname)) { - print $out $_ while (<$in>); - close $out; - } else { - warn "Cannot open $dst_fname for write, $!"; - } - close $in; - } else { - warn "Cannot open $src_fname for read, $!"; - } -} - -sub hash_dir { - my $dir = shift; - my %hashlist; - - print "Doing $dir\n"; - - if (!chdir $dir) { - print STDERR "WARNING: Cannot chdir to '$dir', $!\n"; - return; - } - - opendir(DIR, ".") || print STDERR "WARNING: Cannot opendir '.', $!\n"; - my @flist = sort readdir(DIR); - closedir DIR; - if ( $removelinks ) { - # Delete any existing symbolic links - foreach (grep {/^[\da-f]+\.r{0,1}\d+$/} @flist) { - if (-l $_) { - print "unlink $_\n" if $verbose; - unlink $_ || warn "Can't unlink $_, $!\n"; - } - } - } - FILE: foreach $fname (grep {/\.(pem|crt|cer|crl)$/} @flist) { - # Check to see if certificates and/or CRLs present. - my ($cert, $crl) = check_file($fname); - if (!$cert && !$crl) { - print STDERR "WARNING: $fname does not contain a certificate or CRL: skipping\n"; - next; - } - link_hash_cert($fname) if ($cert); - link_hash_crl($fname) if ($crl); - } - - chdir $pwd; -} - -sub check_file { - my ($is_cert, $is_crl) = (0,0); - my $fname = $_[0]; - - open(my $in, "<", $fname); - while(<$in>) { - if (/^-----BEGIN (.*)-----/) { - my $hdr = $1; - if ($hdr =~ /^(X509 |TRUSTED |)CERTIFICATE$/) { - $is_cert = 1; - last if ($is_crl); - } elsif ($hdr eq "X509 CRL") { - $is_crl = 1; - last if ($is_cert); - } - } - } - close $in; - return ($is_cert, $is_crl); -} - -sub compute_hash { - my $fh; - if ( $^O eq "VMS" ) { - # VMS uses the open through shell - # The file names are safe there and list form is unsupported - if (!open($fh, "-|", join(' ', @_))) { - print STDERR "Cannot compute hash on '$fname'\n"; - return; - } - } else { - if (!open($fh, "-|", @_)) { - print STDERR "Cannot compute hash on '$fname'\n"; - return; - } - } - return (<$fh>, <$fh>); -} - -# Link a certificate to its subject name hash value, each hash is of -# the form . where n is an integer. If the hash value already exists -# then we need to up the value of n, unless its a duplicate in which -# case we skip the link. We check for duplicates by comparing the -# certificate fingerprints - -sub link_hash_cert { - link_hash($_[0], 'cert'); -} - -# Same as above except for a CRL. CRL links are of the form .r - -sub link_hash_crl { - link_hash($_[0], 'crl'); -} - -sub link_hash { - my ($fname, $type) = @_; - my $is_cert = $type eq 'cert'; - - my ($hash, $fprint) = compute_hash($openssl, - $is_cert ? "x509" : "crl", - $is_cert ? $x509hash : $crlhash, - "-fingerprint", "-noout", - "-in", $fname); - chomp $hash; - $hash =~ s/^.*=// if !$is_cert; - chomp $fprint; - return if !$hash; - $fprint =~ s/^.*=//; - $fprint =~ tr/://d; - my $suffix = 0; - # Search for an unused hash filename - my $crlmark = $is_cert ? "" : "r"; - while(exists $hashlist{"$hash.$crlmark$suffix"}) { - # Hash matches: if fingerprint matches its a duplicate cert - if ($hashlist{"$hash.$crlmark$suffix"} eq $fprint) { - my $what = $is_cert ? 'certificate' : 'CRL'; - print STDERR "WARNING: Skipping duplicate $what $fname\n"; - return; - } - $suffix++; - } - $hash .= ".$crlmark$suffix"; - if ($symlink_exists) { - print "link $fname -> $hash\n" if $verbose; - symlink $fname, $hash || warn "Can't symlink, $!"; - } else { - print "copy $fname -> $hash\n" if $verbose; - copy_file($fname, $hash); - } - $hashlist{$hash} = $fprint; -} diff --git a/libs/openssl-3.6.0-beta1/arm64/bin/libcrypto-3-arm64.dll b/libs/openssl-3.6.0-beta1/arm64/bin/libcrypto-3-arm64.dll deleted file mode 100644 index f58f6f6..0000000 Binary files a/libs/openssl-3.6.0-beta1/arm64/bin/libcrypto-3-arm64.dll and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/arm64/bin/libcrypto-3-arm64.pdb b/libs/openssl-3.6.0-beta1/arm64/bin/libcrypto-3-arm64.pdb deleted file mode 100644 index 31ab474..0000000 Binary files a/libs/openssl-3.6.0-beta1/arm64/bin/libcrypto-3-arm64.pdb and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/arm64/bin/libssl-3-arm64.dll b/libs/openssl-3.6.0-beta1/arm64/bin/libssl-3-arm64.dll deleted file mode 100644 index 8e89e7f..0000000 Binary files a/libs/openssl-3.6.0-beta1/arm64/bin/libssl-3-arm64.dll and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/arm64/bin/libssl-3-arm64.pdb b/libs/openssl-3.6.0-beta1/arm64/bin/libssl-3-arm64.pdb deleted file mode 100644 index ce4539a..0000000 Binary files a/libs/openssl-3.6.0-beta1/arm64/bin/libssl-3-arm64.pdb and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/arm64/bin/openssl.exe b/libs/openssl-3.6.0-beta1/arm64/bin/openssl.exe deleted file mode 100644 index f063d7e..0000000 Binary files a/libs/openssl-3.6.0-beta1/arm64/bin/openssl.exe and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/arm64/bin/openssl.pdb b/libs/openssl-3.6.0-beta1/arm64/bin/openssl.pdb deleted file mode 100644 index a8d6e0f..0000000 Binary files a/libs/openssl-3.6.0-beta1/arm64/bin/openssl.pdb and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/aes.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/aes.h deleted file mode 100644 index d0f9dfc..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/aes.h +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright 2002-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_AES_H -# define OPENSSL_AES_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_AES_H -# endif - -# include - -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define AES_BLOCK_SIZE 16 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 - -# define AES_ENCRYPT 1 -# define AES_DECRYPT 0 - -# define AES_MAXNR 14 - - -/* This should be a hidden type, but EVP requires that the size be known */ -struct aes_key_st { -# ifdef AES_LONG - unsigned long rd_key[4 * (AES_MAXNR + 1)]; -# else - unsigned int rd_key[4 * (AES_MAXNR + 1)]; -# endif - int rounds; -}; -typedef struct aes_key_st AES_KEY; - -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 const char *AES_options(void); -OSSL_DEPRECATEDIN_3_0 -int AES_set_encrypt_key(const unsigned char *userKey, const int bits, - AES_KEY *key); -OSSL_DEPRECATEDIN_3_0 -int AES_set_decrypt_key(const unsigned char *userKey, const int bits, - AES_KEY *key); -OSSL_DEPRECATEDIN_3_0 -void AES_encrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key); -OSSL_DEPRECATEDIN_3_0 -void AES_decrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key); -OSSL_DEPRECATEDIN_3_0 -void AES_ecb_encrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key, const int enc); -OSSL_DEPRECATEDIN_3_0 -void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, const int enc); -OSSL_DEPRECATEDIN_3_0 -void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -OSSL_DEPRECATEDIN_3_0 -void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -OSSL_DEPRECATEDIN_3_0 -void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -OSSL_DEPRECATEDIN_3_0 -void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num); - -/* NB: the IV is _two_ blocks long */ -OSSL_DEPRECATEDIN_3_0 -void AES_ige_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, const int enc); -/* NB: the IV is _four_ blocks long */ -OSSL_DEPRECATEDIN_3_0 -void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, const AES_KEY *key2, - const unsigned char *ivec, const int enc); -OSSL_DEPRECATEDIN_3_0 -int AES_wrap_key(AES_KEY *key, const unsigned char *iv, - unsigned char *out, const unsigned char *in, - unsigned int inlen); -OSSL_DEPRECATEDIN_3_0 -int AES_unwrap_key(AES_KEY *key, const unsigned char *iv, - unsigned char *out, const unsigned char *in, - unsigned int inlen); -# endif - - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/applink.c b/libs/openssl-3.6.0-beta1/arm64/include/openssl/applink.c deleted file mode 100644 index 601d016..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/applink.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright 2004-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#define APPLINK_STDIN 1 -#define APPLINK_STDOUT 2 -#define APPLINK_STDERR 3 -#define APPLINK_FPRINTF 4 -#define APPLINK_FGETS 5 -#define APPLINK_FREAD 6 -#define APPLINK_FWRITE 7 -#define APPLINK_FSETMOD 8 -#define APPLINK_FEOF 9 -#define APPLINK_FCLOSE 10 /* should not be used */ - -#define APPLINK_FOPEN 11 /* solely for completeness */ -#define APPLINK_FSEEK 12 -#define APPLINK_FTELL 13 -#define APPLINK_FFLUSH 14 -#define APPLINK_FERROR 15 -#define APPLINK_CLEARERR 16 -#define APPLINK_FILENO 17 /* to be used with below */ - -#define APPLINK_OPEN 18 /* formally can't be used, as flags can vary */ -#define APPLINK_READ 19 -#define APPLINK_WRITE 20 -#define APPLINK_LSEEK 21 -#define APPLINK_CLOSE 22 -#define APPLINK_MAX 22 /* always same as last macro */ - -#ifndef APPMACROS_ONLY - -/* - * Normally, do not define APPLINK_NO_INCLUDES. Define it if you are using - * symbol preprocessing and do not want the preprocessing to affect the - * following included header files. You will need to put these - * include lines somewhere in the file that is including applink.c. - */ -# ifndef APPLINK_NO_INCLUDES -# include -# include -# include -# endif - -# ifdef __BORLANDC__ - /* _lseek in is a function-like macro so we can't take its address */ -# undef _lseek -# define _lseek lseek -# endif - -static void *app_stdin(void) -{ - return stdin; -} - -static void *app_stdout(void) -{ - return stdout; -} - -static void *app_stderr(void) -{ - return stderr; -} - -static int app_feof(FILE *fp) -{ - return feof(fp); -} - -static int app_ferror(FILE *fp) -{ - return ferror(fp); -} - -static void app_clearerr(FILE *fp) -{ - clearerr(fp); -} - -static int app_fileno(FILE *fp) -{ - return _fileno(fp); -} - -static int app_fsetmod(FILE *fp, char mod) -{ - return _setmode(_fileno(fp), mod == 'b' ? _O_BINARY : _O_TEXT); -} - -#ifdef __cplusplus -extern "C" { -#endif - -__declspec(dllexport) -void ** -# if defined(__BORLANDC__) -/* - * __stdcall appears to be the only way to get the name - * decoration right with Borland C. Otherwise it works - * purely incidentally, as we pass no parameters. - */ -__stdcall -# else -__cdecl -# endif -OPENSSL_Applink(void) -{ - static int once = 1; - static void *OPENSSL_ApplinkTable[APPLINK_MAX + 1] = - { (void *)APPLINK_MAX }; - - if (once) { - OPENSSL_ApplinkTable[APPLINK_STDIN] = app_stdin; - OPENSSL_ApplinkTable[APPLINK_STDOUT] = app_stdout; - OPENSSL_ApplinkTable[APPLINK_STDERR] = app_stderr; - OPENSSL_ApplinkTable[APPLINK_FPRINTF] = fprintf; - OPENSSL_ApplinkTable[APPLINK_FGETS] = fgets; - OPENSSL_ApplinkTable[APPLINK_FREAD] = fread; - OPENSSL_ApplinkTable[APPLINK_FWRITE] = fwrite; - OPENSSL_ApplinkTable[APPLINK_FSETMOD] = app_fsetmod; - OPENSSL_ApplinkTable[APPLINK_FEOF] = app_feof; - OPENSSL_ApplinkTable[APPLINK_FCLOSE] = fclose; - - OPENSSL_ApplinkTable[APPLINK_FOPEN] = fopen; - OPENSSL_ApplinkTable[APPLINK_FSEEK] = fseek; - OPENSSL_ApplinkTable[APPLINK_FTELL] = ftell; - OPENSSL_ApplinkTable[APPLINK_FFLUSH] = fflush; - OPENSSL_ApplinkTable[APPLINK_FERROR] = app_ferror; - OPENSSL_ApplinkTable[APPLINK_CLEARERR] = app_clearerr; - OPENSSL_ApplinkTable[APPLINK_FILENO] = app_fileno; - - OPENSSL_ApplinkTable[APPLINK_OPEN] = _open; - OPENSSL_ApplinkTable[APPLINK_READ] = _read; - OPENSSL_ApplinkTable[APPLINK_WRITE] = _write; - OPENSSL_ApplinkTable[APPLINK_LSEEK] = _lseek; - OPENSSL_ApplinkTable[APPLINK_CLOSE] = _close; - - once = 0; - } - - return OPENSSL_ApplinkTable; -} - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/asn1.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/asn1.h deleted file mode 100644 index ef53b33..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/asn1.h +++ /dev/null @@ -1,1134 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\asn1.h.in - * - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_ASN1_H -# define OPENSSL_ASN1_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_ASN1_H -# endif - -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include -# include -# include -# include -# include -# include -# include - -# include -# include - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define V_ASN1_UNIVERSAL 0x00 -# define V_ASN1_APPLICATION 0x40 -# define V_ASN1_CONTEXT_SPECIFIC 0x80 -# define V_ASN1_PRIVATE 0xc0 - -# define V_ASN1_CONSTRUCTED 0x20 -# define V_ASN1_PRIMITIVE_TAG 0x1f -# define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG - -# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ -# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ -# define V_ASN1_ANY -4 /* used in ASN1 template code */ - -# define V_ASN1_UNDEF -1 -/* ASN.1 tag values */ -# define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 -# define V_ASN1_INTEGER 2 -# define V_ASN1_BIT_STRING 3 -# define V_ASN1_OCTET_STRING 4 -# define V_ASN1_NULL 5 -# define V_ASN1_OBJECT 6 -# define V_ASN1_OBJECT_DESCRIPTOR 7 -# define V_ASN1_EXTERNAL 8 -# define V_ASN1_REAL 9 -# define V_ASN1_ENUMERATED 10 -# define V_ASN1_UTF8STRING 12 -# define V_ASN1_SEQUENCE 16 -# define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 -# define V_ASN1_PRINTABLESTRING 19 -# define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20 /* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 -# define V_ASN1_IA5STRING 22 -# define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 -# define V_ASN1_GRAPHICSTRING 25 -# define V_ASN1_ISO64STRING 26 -# define V_ASN1_VISIBLESTRING 26 /* alias */ -# define V_ASN1_GENERALSTRING 27 -# define V_ASN1_UNIVERSALSTRING 28 -# define V_ASN1_BMPSTRING 30 - -/* - * NB the constants below are used internally by ASN1_INTEGER - * and ASN1_ENUMERATED to indicate the sign. They are *not* on - * the wire tag values. - */ - -# define V_ASN1_NEG 0x100 -# define V_ASN1_NEG_INTEGER (2 | V_ASN1_NEG) -# define V_ASN1_NEG_ENUMERATED (10 | V_ASN1_NEG) - -/* For use with d2i_ASN1_type_bytes() */ -# define B_ASN1_NUMERICSTRING 0x0001 -# define B_ASN1_PRINTABLESTRING 0x0002 -# define B_ASN1_T61STRING 0x0004 -# define B_ASN1_TELETEXSTRING 0x0004 -# define B_ASN1_VIDEOTEXSTRING 0x0008 -# define B_ASN1_IA5STRING 0x0010 -# define B_ASN1_GRAPHICSTRING 0x0020 -# define B_ASN1_ISO64STRING 0x0040 -# define B_ASN1_VISIBLESTRING 0x0040 -# define B_ASN1_GENERALSTRING 0x0080 -# define B_ASN1_UNIVERSALSTRING 0x0100 -# define B_ASN1_OCTET_STRING 0x0200 -# define B_ASN1_BIT_STRING 0x0400 -# define B_ASN1_BMPSTRING 0x0800 -# define B_ASN1_UNKNOWN 0x1000 -# define B_ASN1_UTF8STRING 0x2000 -# define B_ASN1_UTCTIME 0x4000 -# define B_ASN1_GENERALIZEDTIME 0x8000 -# define B_ASN1_SEQUENCE 0x10000 -/* For use with ASN1_mbstring_copy() */ -# define MBSTRING_FLAG 0x1000 -# define MBSTRING_UTF8 (MBSTRING_FLAG) -# define MBSTRING_ASC (MBSTRING_FLAG|1) -# define MBSTRING_BMP (MBSTRING_FLAG|2) -# define MBSTRING_UNIV (MBSTRING_FLAG|4) -# define SMIME_OLDMIME 0x400 -# define SMIME_CRLFEOL 0x800 -# define SMIME_STREAM 0x1000 - -/* Stacks for types not otherwise defined in this header */ -SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -#define sk_X509_ALGOR_num(sk) OPENSSL_sk_num(ossl_check_const_X509_ALGOR_sk_type(sk)) -#define sk_X509_ALGOR_value(sk, idx) ((X509_ALGOR *)OPENSSL_sk_value(ossl_check_const_X509_ALGOR_sk_type(sk), (idx))) -#define sk_X509_ALGOR_new(cmp) ((STACK_OF(X509_ALGOR) *)OPENSSL_sk_new(ossl_check_X509_ALGOR_compfunc_type(cmp))) -#define sk_X509_ALGOR_new_null() ((STACK_OF(X509_ALGOR) *)OPENSSL_sk_new_null()) -#define sk_X509_ALGOR_new_reserve(cmp, n) ((STACK_OF(X509_ALGOR) *)OPENSSL_sk_new_reserve(ossl_check_X509_ALGOR_compfunc_type(cmp), (n))) -#define sk_X509_ALGOR_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_ALGOR_sk_type(sk), (n)) -#define sk_X509_ALGOR_free(sk) OPENSSL_sk_free(ossl_check_X509_ALGOR_sk_type(sk)) -#define sk_X509_ALGOR_zero(sk) OPENSSL_sk_zero(ossl_check_X509_ALGOR_sk_type(sk)) -#define sk_X509_ALGOR_delete(sk, i) ((X509_ALGOR *)OPENSSL_sk_delete(ossl_check_X509_ALGOR_sk_type(sk), (i))) -#define sk_X509_ALGOR_delete_ptr(sk, ptr) ((X509_ALGOR *)OPENSSL_sk_delete_ptr(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr))) -#define sk_X509_ALGOR_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr)) -#define sk_X509_ALGOR_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr)) -#define sk_X509_ALGOR_pop(sk) ((X509_ALGOR *)OPENSSL_sk_pop(ossl_check_X509_ALGOR_sk_type(sk))) -#define sk_X509_ALGOR_shift(sk) ((X509_ALGOR *)OPENSSL_sk_shift(ossl_check_X509_ALGOR_sk_type(sk))) -#define sk_X509_ALGOR_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_freefunc_type(freefunc)) -#define sk_X509_ALGOR_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr), (idx)) -#define sk_X509_ALGOR_set(sk, idx, ptr) ((X509_ALGOR *)OPENSSL_sk_set(ossl_check_X509_ALGOR_sk_type(sk), (idx), ossl_check_X509_ALGOR_type(ptr))) -#define sk_X509_ALGOR_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr)) -#define sk_X509_ALGOR_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr)) -#define sk_X509_ALGOR_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr), pnum) -#define sk_X509_ALGOR_sort(sk) OPENSSL_sk_sort(ossl_check_X509_ALGOR_sk_type(sk)) -#define sk_X509_ALGOR_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_ALGOR_sk_type(sk)) -#define sk_X509_ALGOR_dup(sk) ((STACK_OF(X509_ALGOR) *)OPENSSL_sk_dup(ossl_check_const_X509_ALGOR_sk_type(sk))) -#define sk_X509_ALGOR_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_ALGOR) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_copyfunc_type(copyfunc), ossl_check_X509_ALGOR_freefunc_type(freefunc))) -#define sk_X509_ALGOR_set_cmp_func(sk, cmp) ((sk_X509_ALGOR_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_compfunc_type(cmp))) - - - -# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ -/* - * This indicates that the ASN1_STRING is not a real value but just a place - * holder for the location where indefinite length constructed data should be - * inserted in the memory buffer - */ -# define ASN1_STRING_FLAG_NDEF 0x010 - -/* - * This flag is used by the CMS code to indicate that a string is not - * complete and is a place holder for content when it had all been accessed. - * The flag will be reset when content has been written to it. - */ - -# define ASN1_STRING_FLAG_CONT 0x020 -/* - * This flag is used by ASN1 code to indicate an ASN1_STRING is an MSTRING - * type. - */ -# define ASN1_STRING_FLAG_MSTRING 0x040 -/* String is embedded and only content should be freed */ -# define ASN1_STRING_FLAG_EMBED 0x080 -/* String should be parsed in RFC 5280's time format */ -# define ASN1_STRING_FLAG_X509_TIME 0x100 -/* This is the base type that holds just about everything :-) */ -struct asn1_string_st { - int length; - int type; - unsigned char *data; - /* - * The value of the following field depends on the type being held. It - * is mostly being used for BIT_STRING so if the input data has a - * non-zero 'unused bits' value, it will be handled correctly - */ - long flags; -}; - -/* - * ASN1_ENCODING structure: this is used to save the received encoding of an - * ASN1 type. This is useful to get round problems with invalid encodings - * which can break signatures. - */ - -typedef struct ASN1_ENCODING_st { - unsigned char *enc; /* DER encoding */ - long len; /* Length of encoding */ - int modified; /* set to 1 if 'enc' is invalid */ -} ASN1_ENCODING; - -/* Used with ASN1 LONG type: if a long is set to this it is omitted */ -# define ASN1_LONG_UNDEF 0x7fffffffL - -# define STABLE_FLAGS_MALLOC 0x01 -/* - * A zero passed to ASN1_STRING_TABLE_new_add for the flags is interpreted - * as "don't change" and STABLE_FLAGS_MALLOC is always set. By setting - * STABLE_FLAGS_MALLOC only we can clear the existing value. Use the alias - * STABLE_FLAGS_CLEAR to reflect this. - */ -# define STABLE_FLAGS_CLEAR STABLE_FLAGS_MALLOC -# define STABLE_NO_MASK 0x02 -# define DIRSTRING_TYPE \ - (B_ASN1_PRINTABLESTRING|B_ASN1_T61STRING|B_ASN1_BMPSTRING|B_ASN1_UTF8STRING) -# define PKCS9STRING_TYPE (DIRSTRING_TYPE|B_ASN1_IA5STRING) - -struct asn1_string_table_st { - int nid; - long minsize; - long maxsize; - unsigned long mask; - unsigned long flags; -}; - -SKM_DEFINE_STACK_OF_INTERNAL(ASN1_STRING_TABLE, ASN1_STRING_TABLE, ASN1_STRING_TABLE) -#define sk_ASN1_STRING_TABLE_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_STRING_TABLE_sk_type(sk)) -#define sk_ASN1_STRING_TABLE_value(sk, idx) ((ASN1_STRING_TABLE *)OPENSSL_sk_value(ossl_check_const_ASN1_STRING_TABLE_sk_type(sk), (idx))) -#define sk_ASN1_STRING_TABLE_new(cmp) ((STACK_OF(ASN1_STRING_TABLE) *)OPENSSL_sk_new(ossl_check_ASN1_STRING_TABLE_compfunc_type(cmp))) -#define sk_ASN1_STRING_TABLE_new_null() ((STACK_OF(ASN1_STRING_TABLE) *)OPENSSL_sk_new_null()) -#define sk_ASN1_STRING_TABLE_new_reserve(cmp, n) ((STACK_OF(ASN1_STRING_TABLE) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_STRING_TABLE_compfunc_type(cmp), (n))) -#define sk_ASN1_STRING_TABLE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_STRING_TABLE_sk_type(sk), (n)) -#define sk_ASN1_STRING_TABLE_free(sk) OPENSSL_sk_free(ossl_check_ASN1_STRING_TABLE_sk_type(sk)) -#define sk_ASN1_STRING_TABLE_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_STRING_TABLE_sk_type(sk)) -#define sk_ASN1_STRING_TABLE_delete(sk, i) ((ASN1_STRING_TABLE *)OPENSSL_sk_delete(ossl_check_ASN1_STRING_TABLE_sk_type(sk), (i))) -#define sk_ASN1_STRING_TABLE_delete_ptr(sk, ptr) ((ASN1_STRING_TABLE *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr))) -#define sk_ASN1_STRING_TABLE_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr)) -#define sk_ASN1_STRING_TABLE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr)) -#define sk_ASN1_STRING_TABLE_pop(sk) ((ASN1_STRING_TABLE *)OPENSSL_sk_pop(ossl_check_ASN1_STRING_TABLE_sk_type(sk))) -#define sk_ASN1_STRING_TABLE_shift(sk) ((ASN1_STRING_TABLE *)OPENSSL_sk_shift(ossl_check_ASN1_STRING_TABLE_sk_type(sk))) -#define sk_ASN1_STRING_TABLE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_freefunc_type(freefunc)) -#define sk_ASN1_STRING_TABLE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr), (idx)) -#define sk_ASN1_STRING_TABLE_set(sk, idx, ptr) ((ASN1_STRING_TABLE *)OPENSSL_sk_set(ossl_check_ASN1_STRING_TABLE_sk_type(sk), (idx), ossl_check_ASN1_STRING_TABLE_type(ptr))) -#define sk_ASN1_STRING_TABLE_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr)) -#define sk_ASN1_STRING_TABLE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr)) -#define sk_ASN1_STRING_TABLE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr), pnum) -#define sk_ASN1_STRING_TABLE_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_STRING_TABLE_sk_type(sk)) -#define sk_ASN1_STRING_TABLE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_STRING_TABLE_sk_type(sk)) -#define sk_ASN1_STRING_TABLE_dup(sk) ((STACK_OF(ASN1_STRING_TABLE) *)OPENSSL_sk_dup(ossl_check_const_ASN1_STRING_TABLE_sk_type(sk))) -#define sk_ASN1_STRING_TABLE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_STRING_TABLE) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_copyfunc_type(copyfunc), ossl_check_ASN1_STRING_TABLE_freefunc_type(freefunc))) -#define sk_ASN1_STRING_TABLE_set_cmp_func(sk, cmp) ((sk_ASN1_STRING_TABLE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_compfunc_type(cmp))) - - -/* size limits: this stuff is taken straight from RFC 5280 */ - -# define ub_name 32768 -# define ub_common_name 64 -# define ub_locality_name 128 -# define ub_state_name 128 -# define ub_organization_name 64 -# define ub_organization_unit_name 64 -# define ub_title 64 -# define ub_email_address 128 - -/* - * Declarations for template structures: for full definitions see asn1t.h - */ -typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; -typedef struct ASN1_TLC_st ASN1_TLC; -/* This is just an opaque pointer */ -typedef struct ASN1_VALUE_st ASN1_VALUE; - -/* Declare ASN1 functions: the implement macro is in asn1t.h */ - -/* - * The mysterious 'extern' that's passed to some macros is innocuous, - * and is there to quiet pre-C99 compilers that may complain about empty - * arguments in macro calls. - */ - -# define DECLARE_ASN1_FUNCTIONS_attr(attr, type) \ - DECLARE_ASN1_FUNCTIONS_name_attr(attr, type, type) -# define DECLARE_ASN1_FUNCTIONS(type) \ - DECLARE_ASN1_FUNCTIONS_attr(extern, type) - -# define DECLARE_ASN1_ALLOC_FUNCTIONS_attr(attr, type) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name_attr(attr, type, type) -# define DECLARE_ASN1_ALLOC_FUNCTIONS(type) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_attr(extern, type) - -# define DECLARE_ASN1_FUNCTIONS_name_attr(attr, type, name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name_attr(attr, type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr(attr, type, name) -# define DECLARE_ASN1_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_FUNCTIONS_name_attr(extern, type, name) - -# define DECLARE_ASN1_ENCODE_FUNCTIONS_attr(attr, type, itname, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(attr, type, name) \ - DECLARE_ASN1_ITEM_attr(attr, itname) -# define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS_attr(extern, type, itname, name) - -# define DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr(attr, type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS_attr(attr, type, name, name) -# define DECLARE_ASN1_ENCODE_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr(extern, type, name) - -# define DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(attr, type, name) \ - attr type *d2i_##name(type **a, const unsigned char **in, long len); \ - attr int i2d_##name(const type *a, unsigned char **out); -# define DECLARE_ASN1_ENCODE_FUNCTIONS_only(type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(extern, type, name) - -# define DECLARE_ASN1_NDEF_FUNCTION_attr(attr, name) \ - attr int i2d_##name##_NDEF(const name *a, unsigned char **out); -# define DECLARE_ASN1_NDEF_FUNCTION(name) \ - DECLARE_ASN1_NDEF_FUNCTION_attr(extern, name) - -# define DECLARE_ASN1_ALLOC_FUNCTIONS_name_attr(attr, type, name) \ - attr type *name##_new(void); \ - attr void name##_free(type *a); -# define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name_attr(extern, type, name) - -# define DECLARE_ASN1_DUP_FUNCTION_attr(attr, type) \ - DECLARE_ASN1_DUP_FUNCTION_name_attr(attr, type, type) -# define DECLARE_ASN1_DUP_FUNCTION(type) \ - DECLARE_ASN1_DUP_FUNCTION_attr(extern, type) - -# define DECLARE_ASN1_DUP_FUNCTION_name_attr(attr, type, name) \ - attr type *name##_dup(const type *a); -# define DECLARE_ASN1_DUP_FUNCTION_name(type, name) \ - DECLARE_ASN1_DUP_FUNCTION_name_attr(extern, type, name) - -# define DECLARE_ASN1_PRINT_FUNCTION_attr(attr, stname) \ - DECLARE_ASN1_PRINT_FUNCTION_fname_attr(attr, stname, stname) -# define DECLARE_ASN1_PRINT_FUNCTION(stname) \ - DECLARE_ASN1_PRINT_FUNCTION_attr(extern, stname) - -# define DECLARE_ASN1_PRINT_FUNCTION_fname_attr(attr, stname, fname) \ - attr int fname##_print_ctx(BIO *out, const stname *x, int indent, \ - const ASN1_PCTX *pctx); -# define DECLARE_ASN1_PRINT_FUNCTION_fname(stname, fname) \ - DECLARE_ASN1_PRINT_FUNCTION_fname_attr(extern, stname, fname) - -# define D2I_OF(type) type *(*)(type **,const unsigned char **,long) -# define I2D_OF(type) int (*)(const type *,unsigned char **) - -# define CHECKED_D2I_OF(type, d2i) \ - ((d2i_of_void*) (1 ? d2i : ((D2I_OF(type))0))) -# define CHECKED_I2D_OF(type, i2d) \ - ((i2d_of_void*) (1 ? i2d : ((I2D_OF(type))0))) -# define CHECKED_NEW_OF(type, xnew) \ - ((void *(*)(void)) (1 ? xnew : ((type *(*)(void))0))) -# define CHECKED_PTR_OF(type, p) \ - ((void*) (1 ? p : (type*)0)) -# define CHECKED_PPTR_OF(type, p) \ - ((void**) (1 ? p : (type**)0)) - -# define TYPEDEF_D2I_OF(type) typedef type *d2i_of_##type(type **,const unsigned char **,long) -# define TYPEDEF_I2D_OF(type) typedef int i2d_of_##type(const type *,unsigned char **) -# define TYPEDEF_D2I2D_OF(type) TYPEDEF_D2I_OF(type); TYPEDEF_I2D_OF(type) - -typedef void *d2i_of_void(void **, const unsigned char **, long); -typedef int i2d_of_void(const void *, unsigned char **); -typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); - -/*- - * The following macros and typedefs allow an ASN1_ITEM - * to be embedded in a structure and referenced. Since - * the ASN1_ITEM pointers need to be globally accessible - * (possibly from shared libraries) they may exist in - * different forms. On platforms that support it the - * ASN1_ITEM structure itself will be globally exported. - * Other platforms will export a function that returns - * an ASN1_ITEM pointer. - * - * To handle both cases transparently the macros below - * should be used instead of hard coding an ASN1_ITEM - * pointer in a structure. - * - * The structure will look like this: - * - * typedef struct SOMETHING_st { - * ... - * ASN1_ITEM_EXP *iptr; - * ... - * } SOMETHING; - * - * It would be initialised as e.g.: - * - * SOMETHING somevar = {...,ASN1_ITEM_ref(X509),...}; - * - * and the actual pointer extracted with: - * - * const ASN1_ITEM *it = ASN1_ITEM_ptr(somevar.iptr); - * - * Finally an ASN1_ITEM pointer can be extracted from an - * appropriate reference with: ASN1_ITEM_rptr(X509). This - * would be used when a function takes an ASN1_ITEM * argument. - * - */ - - -/* - * Platforms that can't easily handle shared global variables are declared as - * functions returning ASN1_ITEM pointers. - */ - -/* ASN1_ITEM pointer exported type */ -typedef const ASN1_ITEM *ASN1_ITEM_EXP (void); - -/* Macro to obtain ASN1_ITEM pointer from exported type */ -# define ASN1_ITEM_ptr(iptr) (iptr()) - -/* Macro to include ASN1_ITEM pointer from base type */ -# define ASN1_ITEM_ref(iptr) (iptr##_it) - -# define ASN1_ITEM_rptr(ref) (ref##_it()) - -# define DECLARE_ASN1_ITEM_attr(attr, name) \ - attr const ASN1_ITEM * name##_it(void); -# define DECLARE_ASN1_ITEM(name) \ - DECLARE_ASN1_ITEM_attr(extern, name) - -/* Parameters used by ASN1_STRING_print_ex() */ - -/* - * These determine which characters to escape: RFC2253 special characters, - * control characters and MSB set characters - */ - -# define ASN1_STRFLGS_ESC_2253 1 -# define ASN1_STRFLGS_ESC_CTRL 2 -# define ASN1_STRFLGS_ESC_MSB 4 - -/* Lower 8 bits are reserved as an output type specifier */ -# define ASN1_DTFLGS_TYPE_MASK 0x0FUL -# define ASN1_DTFLGS_RFC822 0x00UL -# define ASN1_DTFLGS_ISO8601 0x01UL - -/* - * This flag determines how we do escaping: normally RC2253 backslash only, - * set this to use backslash and quote. - */ - -# define ASN1_STRFLGS_ESC_QUOTE 8 - -/* These three flags are internal use only. */ - -/* Character is a valid PrintableString character */ -# define CHARTYPE_PRINTABLESTRING 0x10 -/* Character needs escaping if it is the first character */ -# define CHARTYPE_FIRST_ESC_2253 0x20 -/* Character needs escaping if it is the last character */ -# define CHARTYPE_LAST_ESC_2253 0x40 - -/* - * NB the internal flags are safely reused below by flags handled at the top - * level. - */ - -/* - * If this is set we convert all character strings to UTF8 first - */ - -# define ASN1_STRFLGS_UTF8_CONVERT 0x10 - -/* - * If this is set we don't attempt to interpret content: just assume all - * strings are 1 byte per character. This will produce some pretty odd - * looking output! - */ - -# define ASN1_STRFLGS_IGNORE_TYPE 0x20 - -/* If this is set we include the string type in the output */ -# define ASN1_STRFLGS_SHOW_TYPE 0x40 - -/* - * This determines which strings to display and which to 'dump' (hex dump of - * content octets or DER encoding). We can only dump non character strings or - * everything. If we don't dump 'unknown' they are interpreted as character - * strings with 1 octet per character and are subject to the usual escaping - * options. - */ - -# define ASN1_STRFLGS_DUMP_ALL 0x80 -# define ASN1_STRFLGS_DUMP_UNKNOWN 0x100 - -/* - * These determine what 'dumping' does, we can dump the content octets or the - * DER encoding: both use the RFC2253 #XXXXX notation. - */ - -# define ASN1_STRFLGS_DUMP_DER 0x200 - -/* - * This flag specifies that RC2254 escaping shall be performed. - */ -#define ASN1_STRFLGS_ESC_2254 0x400 - -/* - * All the string flags consistent with RFC2253, escaping control characters - * isn't essential in RFC2253 but it is advisable anyway. - */ - -# define ASN1_STRFLGS_RFC2253 (ASN1_STRFLGS_ESC_2253 | \ - ASN1_STRFLGS_ESC_CTRL | \ - ASN1_STRFLGS_ESC_MSB | \ - ASN1_STRFLGS_UTF8_CONVERT | \ - ASN1_STRFLGS_DUMP_UNKNOWN | \ - ASN1_STRFLGS_DUMP_DER) - - -struct asn1_type_st { - int type; - union { - char *ptr; - ASN1_BOOLEAN boolean; - ASN1_STRING *asn1_string; - ASN1_OBJECT *object; - ASN1_INTEGER *integer; - ASN1_ENUMERATED *enumerated; - ASN1_BIT_STRING *bit_string; - ASN1_OCTET_STRING *octet_string; - ASN1_PRINTABLESTRING *printablestring; - ASN1_T61STRING *t61string; - ASN1_IA5STRING *ia5string; - ASN1_GENERALSTRING *generalstring; - ASN1_BMPSTRING *bmpstring; - ASN1_UNIVERSALSTRING *universalstring; - ASN1_UTCTIME *utctime; - ASN1_GENERALIZEDTIME *generalizedtime; - ASN1_VISIBLESTRING *visiblestring; - ASN1_UTF8STRING *utf8string; - /* - * set and sequence are left complete and still contain the set or - * sequence bytes - */ - ASN1_STRING *set; - ASN1_STRING *sequence; - ASN1_VALUE *asn1_value; - } value; -}; - -SKM_DEFINE_STACK_OF_INTERNAL(ASN1_TYPE, ASN1_TYPE, ASN1_TYPE) -#define sk_ASN1_TYPE_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_TYPE_sk_type(sk)) -#define sk_ASN1_TYPE_value(sk, idx) ((ASN1_TYPE *)OPENSSL_sk_value(ossl_check_const_ASN1_TYPE_sk_type(sk), (idx))) -#define sk_ASN1_TYPE_new(cmp) ((STACK_OF(ASN1_TYPE) *)OPENSSL_sk_new(ossl_check_ASN1_TYPE_compfunc_type(cmp))) -#define sk_ASN1_TYPE_new_null() ((STACK_OF(ASN1_TYPE) *)OPENSSL_sk_new_null()) -#define sk_ASN1_TYPE_new_reserve(cmp, n) ((STACK_OF(ASN1_TYPE) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_TYPE_compfunc_type(cmp), (n))) -#define sk_ASN1_TYPE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_TYPE_sk_type(sk), (n)) -#define sk_ASN1_TYPE_free(sk) OPENSSL_sk_free(ossl_check_ASN1_TYPE_sk_type(sk)) -#define sk_ASN1_TYPE_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_TYPE_sk_type(sk)) -#define sk_ASN1_TYPE_delete(sk, i) ((ASN1_TYPE *)OPENSSL_sk_delete(ossl_check_ASN1_TYPE_sk_type(sk), (i))) -#define sk_ASN1_TYPE_delete_ptr(sk, ptr) ((ASN1_TYPE *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr))) -#define sk_ASN1_TYPE_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr)) -#define sk_ASN1_TYPE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr)) -#define sk_ASN1_TYPE_pop(sk) ((ASN1_TYPE *)OPENSSL_sk_pop(ossl_check_ASN1_TYPE_sk_type(sk))) -#define sk_ASN1_TYPE_shift(sk) ((ASN1_TYPE *)OPENSSL_sk_shift(ossl_check_ASN1_TYPE_sk_type(sk))) -#define sk_ASN1_TYPE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_freefunc_type(freefunc)) -#define sk_ASN1_TYPE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr), (idx)) -#define sk_ASN1_TYPE_set(sk, idx, ptr) ((ASN1_TYPE *)OPENSSL_sk_set(ossl_check_ASN1_TYPE_sk_type(sk), (idx), ossl_check_ASN1_TYPE_type(ptr))) -#define sk_ASN1_TYPE_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr)) -#define sk_ASN1_TYPE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr)) -#define sk_ASN1_TYPE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr), pnum) -#define sk_ASN1_TYPE_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_TYPE_sk_type(sk)) -#define sk_ASN1_TYPE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_TYPE_sk_type(sk)) -#define sk_ASN1_TYPE_dup(sk) ((STACK_OF(ASN1_TYPE) *)OPENSSL_sk_dup(ossl_check_const_ASN1_TYPE_sk_type(sk))) -#define sk_ASN1_TYPE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_TYPE) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_copyfunc_type(copyfunc), ossl_check_ASN1_TYPE_freefunc_type(freefunc))) -#define sk_ASN1_TYPE_set_cmp_func(sk, cmp) ((sk_ASN1_TYPE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_compfunc_type(cmp))) - - -typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY; - -DECLARE_ASN1_ENCODE_FUNCTIONS_name(ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY) -DECLARE_ASN1_ENCODE_FUNCTIONS_name(ASN1_SEQUENCE_ANY, ASN1_SET_ANY) - -/* This is used to contain a list of bit names */ -typedef struct BIT_STRING_BITNAME_st { - int bitnum; - const char *lname; - const char *sname; -} BIT_STRING_BITNAME; - -# define B_ASN1_TIME \ - B_ASN1_UTCTIME | \ - B_ASN1_GENERALIZEDTIME - -# define B_ASN1_PRINTABLE \ - B_ASN1_NUMERICSTRING| \ - B_ASN1_PRINTABLESTRING| \ - B_ASN1_T61STRING| \ - B_ASN1_IA5STRING| \ - B_ASN1_BIT_STRING| \ - B_ASN1_UNIVERSALSTRING|\ - B_ASN1_BMPSTRING|\ - B_ASN1_UTF8STRING|\ - B_ASN1_SEQUENCE|\ - B_ASN1_UNKNOWN - -# define B_ASN1_DIRECTORYSTRING \ - B_ASN1_PRINTABLESTRING| \ - B_ASN1_TELETEXSTRING|\ - B_ASN1_BMPSTRING|\ - B_ASN1_UNIVERSALSTRING|\ - B_ASN1_UTF8STRING - -# define B_ASN1_DISPLAYTEXT \ - B_ASN1_IA5STRING| \ - B_ASN1_VISIBLESTRING| \ - B_ASN1_BMPSTRING|\ - B_ASN1_UTF8STRING - -DECLARE_ASN1_ALLOC_FUNCTIONS_name(ASN1_TYPE, ASN1_TYPE) -DECLARE_ASN1_ENCODE_FUNCTIONS(ASN1_TYPE, ASN1_ANY, ASN1_TYPE) - -int ASN1_TYPE_get(const ASN1_TYPE *a); -void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value); -int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value); -int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b); - -ASN1_TYPE *ASN1_TYPE_pack_sequence(const ASN1_ITEM *it, void *s, ASN1_TYPE **t); -void *ASN1_TYPE_unpack_sequence(const ASN1_ITEM *it, const ASN1_TYPE *t); - -SKM_DEFINE_STACK_OF_INTERNAL(ASN1_OBJECT, ASN1_OBJECT, ASN1_OBJECT) -#define sk_ASN1_OBJECT_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_OBJECT_sk_type(sk)) -#define sk_ASN1_OBJECT_value(sk, idx) ((ASN1_OBJECT *)OPENSSL_sk_value(ossl_check_const_ASN1_OBJECT_sk_type(sk), (idx))) -#define sk_ASN1_OBJECT_new(cmp) ((STACK_OF(ASN1_OBJECT) *)OPENSSL_sk_new(ossl_check_ASN1_OBJECT_compfunc_type(cmp))) -#define sk_ASN1_OBJECT_new_null() ((STACK_OF(ASN1_OBJECT) *)OPENSSL_sk_new_null()) -#define sk_ASN1_OBJECT_new_reserve(cmp, n) ((STACK_OF(ASN1_OBJECT) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_OBJECT_compfunc_type(cmp), (n))) -#define sk_ASN1_OBJECT_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_OBJECT_sk_type(sk), (n)) -#define sk_ASN1_OBJECT_free(sk) OPENSSL_sk_free(ossl_check_ASN1_OBJECT_sk_type(sk)) -#define sk_ASN1_OBJECT_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_OBJECT_sk_type(sk)) -#define sk_ASN1_OBJECT_delete(sk, i) ((ASN1_OBJECT *)OPENSSL_sk_delete(ossl_check_ASN1_OBJECT_sk_type(sk), (i))) -#define sk_ASN1_OBJECT_delete_ptr(sk, ptr) ((ASN1_OBJECT *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr))) -#define sk_ASN1_OBJECT_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr)) -#define sk_ASN1_OBJECT_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr)) -#define sk_ASN1_OBJECT_pop(sk) ((ASN1_OBJECT *)OPENSSL_sk_pop(ossl_check_ASN1_OBJECT_sk_type(sk))) -#define sk_ASN1_OBJECT_shift(sk) ((ASN1_OBJECT *)OPENSSL_sk_shift(ossl_check_ASN1_OBJECT_sk_type(sk))) -#define sk_ASN1_OBJECT_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_freefunc_type(freefunc)) -#define sk_ASN1_OBJECT_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr), (idx)) -#define sk_ASN1_OBJECT_set(sk, idx, ptr) ((ASN1_OBJECT *)OPENSSL_sk_set(ossl_check_ASN1_OBJECT_sk_type(sk), (idx), ossl_check_ASN1_OBJECT_type(ptr))) -#define sk_ASN1_OBJECT_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr)) -#define sk_ASN1_OBJECT_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr)) -#define sk_ASN1_OBJECT_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr), pnum) -#define sk_ASN1_OBJECT_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_OBJECT_sk_type(sk)) -#define sk_ASN1_OBJECT_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_OBJECT_sk_type(sk)) -#define sk_ASN1_OBJECT_dup(sk) ((STACK_OF(ASN1_OBJECT) *)OPENSSL_sk_dup(ossl_check_const_ASN1_OBJECT_sk_type(sk))) -#define sk_ASN1_OBJECT_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_OBJECT) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_copyfunc_type(copyfunc), ossl_check_ASN1_OBJECT_freefunc_type(freefunc))) -#define sk_ASN1_OBJECT_set_cmp_func(sk, cmp) ((sk_ASN1_OBJECT_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_compfunc_type(cmp))) - - -DECLARE_ASN1_FUNCTIONS(ASN1_OBJECT) - -ASN1_STRING *ASN1_STRING_new(void); -void ASN1_STRING_free(ASN1_STRING *a); -void ASN1_STRING_clear_free(ASN1_STRING *a); -int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str); -DECLARE_ASN1_DUP_FUNCTION(ASN1_STRING) -ASN1_STRING *ASN1_STRING_type_new(int type); -int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b); - /* - * Since this is used to store all sorts of things, via macros, for now, - * make its data void * - */ -int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); -void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len); -int ASN1_STRING_length(const ASN1_STRING *x); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 void ASN1_STRING_length_set(ASN1_STRING *x, int n); -# endif -int ASN1_STRING_type(const ASN1_STRING *x); -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 unsigned char *ASN1_STRING_data(ASN1_STRING *x); -# endif -const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x); - -DECLARE_ASN1_FUNCTIONS(ASN1_BIT_STRING) -int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length); -int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value); -int ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n); -int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a, - const unsigned char *flags, int flags_len); - -int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, - BIT_STRING_BITNAME *tbl, int indent); -int ASN1_BIT_STRING_num_asc(const char *name, BIT_STRING_BITNAME *tbl); -int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, const char *name, int value, - BIT_STRING_BITNAME *tbl); - -SKM_DEFINE_STACK_OF_INTERNAL(ASN1_INTEGER, ASN1_INTEGER, ASN1_INTEGER) -#define sk_ASN1_INTEGER_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_INTEGER_sk_type(sk)) -#define sk_ASN1_INTEGER_value(sk, idx) ((ASN1_INTEGER *)OPENSSL_sk_value(ossl_check_const_ASN1_INTEGER_sk_type(sk), (idx))) -#define sk_ASN1_INTEGER_new(cmp) ((STACK_OF(ASN1_INTEGER) *)OPENSSL_sk_new(ossl_check_ASN1_INTEGER_compfunc_type(cmp))) -#define sk_ASN1_INTEGER_new_null() ((STACK_OF(ASN1_INTEGER) *)OPENSSL_sk_new_null()) -#define sk_ASN1_INTEGER_new_reserve(cmp, n) ((STACK_OF(ASN1_INTEGER) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_INTEGER_compfunc_type(cmp), (n))) -#define sk_ASN1_INTEGER_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_INTEGER_sk_type(sk), (n)) -#define sk_ASN1_INTEGER_free(sk) OPENSSL_sk_free(ossl_check_ASN1_INTEGER_sk_type(sk)) -#define sk_ASN1_INTEGER_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_INTEGER_sk_type(sk)) -#define sk_ASN1_INTEGER_delete(sk, i) ((ASN1_INTEGER *)OPENSSL_sk_delete(ossl_check_ASN1_INTEGER_sk_type(sk), (i))) -#define sk_ASN1_INTEGER_delete_ptr(sk, ptr) ((ASN1_INTEGER *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr))) -#define sk_ASN1_INTEGER_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr)) -#define sk_ASN1_INTEGER_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr)) -#define sk_ASN1_INTEGER_pop(sk) ((ASN1_INTEGER *)OPENSSL_sk_pop(ossl_check_ASN1_INTEGER_sk_type(sk))) -#define sk_ASN1_INTEGER_shift(sk) ((ASN1_INTEGER *)OPENSSL_sk_shift(ossl_check_ASN1_INTEGER_sk_type(sk))) -#define sk_ASN1_INTEGER_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_freefunc_type(freefunc)) -#define sk_ASN1_INTEGER_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr), (idx)) -#define sk_ASN1_INTEGER_set(sk, idx, ptr) ((ASN1_INTEGER *)OPENSSL_sk_set(ossl_check_ASN1_INTEGER_sk_type(sk), (idx), ossl_check_ASN1_INTEGER_type(ptr))) -#define sk_ASN1_INTEGER_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr)) -#define sk_ASN1_INTEGER_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr)) -#define sk_ASN1_INTEGER_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr), pnum) -#define sk_ASN1_INTEGER_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_INTEGER_sk_type(sk)) -#define sk_ASN1_INTEGER_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_INTEGER_sk_type(sk)) -#define sk_ASN1_INTEGER_dup(sk) ((STACK_OF(ASN1_INTEGER) *)OPENSSL_sk_dup(ossl_check_const_ASN1_INTEGER_sk_type(sk))) -#define sk_ASN1_INTEGER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_INTEGER) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_copyfunc_type(copyfunc), ossl_check_ASN1_INTEGER_freefunc_type(freefunc))) -#define sk_ASN1_INTEGER_set_cmp_func(sk, cmp) ((sk_ASN1_INTEGER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_compfunc_type(cmp))) - - - -DECLARE_ASN1_FUNCTIONS(ASN1_INTEGER) -ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, - long length); -DECLARE_ASN1_DUP_FUNCTION(ASN1_INTEGER) -int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y); - -DECLARE_ASN1_FUNCTIONS(ASN1_ENUMERATED) - -int ASN1_UTCTIME_check(const ASN1_UTCTIME *a); -ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t); -ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, - int offset_day, long offset_sec); -int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); -int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); - -int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a); -ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, - time_t t); -ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, - time_t t, int offset_day, - long offset_sec); -int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); - -int ASN1_TIME_diff(int *pday, int *psec, - const ASN1_TIME *from, const ASN1_TIME *to); - -DECLARE_ASN1_FUNCTIONS(ASN1_OCTET_STRING) -DECLARE_ASN1_DUP_FUNCTION(ASN1_OCTET_STRING) -int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, - const ASN1_OCTET_STRING *b); -int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, - int len); - -SKM_DEFINE_STACK_OF_INTERNAL(ASN1_UTF8STRING, ASN1_UTF8STRING, ASN1_UTF8STRING) -#define sk_ASN1_UTF8STRING_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_UTF8STRING_sk_type(sk)) -#define sk_ASN1_UTF8STRING_value(sk, idx) ((ASN1_UTF8STRING *)OPENSSL_sk_value(ossl_check_const_ASN1_UTF8STRING_sk_type(sk), (idx))) -#define sk_ASN1_UTF8STRING_new(cmp) ((STACK_OF(ASN1_UTF8STRING) *)OPENSSL_sk_new(ossl_check_ASN1_UTF8STRING_compfunc_type(cmp))) -#define sk_ASN1_UTF8STRING_new_null() ((STACK_OF(ASN1_UTF8STRING) *)OPENSSL_sk_new_null()) -#define sk_ASN1_UTF8STRING_new_reserve(cmp, n) ((STACK_OF(ASN1_UTF8STRING) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_UTF8STRING_compfunc_type(cmp), (n))) -#define sk_ASN1_UTF8STRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_UTF8STRING_sk_type(sk), (n)) -#define sk_ASN1_UTF8STRING_free(sk) OPENSSL_sk_free(ossl_check_ASN1_UTF8STRING_sk_type(sk)) -#define sk_ASN1_UTF8STRING_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_UTF8STRING_sk_type(sk)) -#define sk_ASN1_UTF8STRING_delete(sk, i) ((ASN1_UTF8STRING *)OPENSSL_sk_delete(ossl_check_ASN1_UTF8STRING_sk_type(sk), (i))) -#define sk_ASN1_UTF8STRING_delete_ptr(sk, ptr) ((ASN1_UTF8STRING *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr))) -#define sk_ASN1_UTF8STRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr)) -#define sk_ASN1_UTF8STRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr)) -#define sk_ASN1_UTF8STRING_pop(sk) ((ASN1_UTF8STRING *)OPENSSL_sk_pop(ossl_check_ASN1_UTF8STRING_sk_type(sk))) -#define sk_ASN1_UTF8STRING_shift(sk) ((ASN1_UTF8STRING *)OPENSSL_sk_shift(ossl_check_ASN1_UTF8STRING_sk_type(sk))) -#define sk_ASN1_UTF8STRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_freefunc_type(freefunc)) -#define sk_ASN1_UTF8STRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr), (idx)) -#define sk_ASN1_UTF8STRING_set(sk, idx, ptr) ((ASN1_UTF8STRING *)OPENSSL_sk_set(ossl_check_ASN1_UTF8STRING_sk_type(sk), (idx), ossl_check_ASN1_UTF8STRING_type(ptr))) -#define sk_ASN1_UTF8STRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr)) -#define sk_ASN1_UTF8STRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr)) -#define sk_ASN1_UTF8STRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr), pnum) -#define sk_ASN1_UTF8STRING_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_UTF8STRING_sk_type(sk)) -#define sk_ASN1_UTF8STRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_UTF8STRING_sk_type(sk)) -#define sk_ASN1_UTF8STRING_dup(sk) ((STACK_OF(ASN1_UTF8STRING) *)OPENSSL_sk_dup(ossl_check_const_ASN1_UTF8STRING_sk_type(sk))) -#define sk_ASN1_UTF8STRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_UTF8STRING) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_copyfunc_type(copyfunc), ossl_check_ASN1_UTF8STRING_freefunc_type(freefunc))) -#define sk_ASN1_UTF8STRING_set_cmp_func(sk, cmp) ((sk_ASN1_UTF8STRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_compfunc_type(cmp))) - - -DECLARE_ASN1_FUNCTIONS(ASN1_VISIBLESTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UNIVERSALSTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UTF8STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_NULL) -DECLARE_ASN1_FUNCTIONS(ASN1_BMPSTRING) - -int UTF8_getc(const unsigned char *str, int len, unsigned long *val); -int UTF8_putc(unsigned char *str, int len, unsigned long value); - -SKM_DEFINE_STACK_OF_INTERNAL(ASN1_GENERALSTRING, ASN1_GENERALSTRING, ASN1_GENERALSTRING) -#define sk_ASN1_GENERALSTRING_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_GENERALSTRING_sk_type(sk)) -#define sk_ASN1_GENERALSTRING_value(sk, idx) ((ASN1_GENERALSTRING *)OPENSSL_sk_value(ossl_check_const_ASN1_GENERALSTRING_sk_type(sk), (idx))) -#define sk_ASN1_GENERALSTRING_new(cmp) ((STACK_OF(ASN1_GENERALSTRING) *)OPENSSL_sk_new(ossl_check_ASN1_GENERALSTRING_compfunc_type(cmp))) -#define sk_ASN1_GENERALSTRING_new_null() ((STACK_OF(ASN1_GENERALSTRING) *)OPENSSL_sk_new_null()) -#define sk_ASN1_GENERALSTRING_new_reserve(cmp, n) ((STACK_OF(ASN1_GENERALSTRING) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_GENERALSTRING_compfunc_type(cmp), (n))) -#define sk_ASN1_GENERALSTRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_GENERALSTRING_sk_type(sk), (n)) -#define sk_ASN1_GENERALSTRING_free(sk) OPENSSL_sk_free(ossl_check_ASN1_GENERALSTRING_sk_type(sk)) -#define sk_ASN1_GENERALSTRING_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_GENERALSTRING_sk_type(sk)) -#define sk_ASN1_GENERALSTRING_delete(sk, i) ((ASN1_GENERALSTRING *)OPENSSL_sk_delete(ossl_check_ASN1_GENERALSTRING_sk_type(sk), (i))) -#define sk_ASN1_GENERALSTRING_delete_ptr(sk, ptr) ((ASN1_GENERALSTRING *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr))) -#define sk_ASN1_GENERALSTRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr)) -#define sk_ASN1_GENERALSTRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr)) -#define sk_ASN1_GENERALSTRING_pop(sk) ((ASN1_GENERALSTRING *)OPENSSL_sk_pop(ossl_check_ASN1_GENERALSTRING_sk_type(sk))) -#define sk_ASN1_GENERALSTRING_shift(sk) ((ASN1_GENERALSTRING *)OPENSSL_sk_shift(ossl_check_ASN1_GENERALSTRING_sk_type(sk))) -#define sk_ASN1_GENERALSTRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_freefunc_type(freefunc)) -#define sk_ASN1_GENERALSTRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr), (idx)) -#define sk_ASN1_GENERALSTRING_set(sk, idx, ptr) ((ASN1_GENERALSTRING *)OPENSSL_sk_set(ossl_check_ASN1_GENERALSTRING_sk_type(sk), (idx), ossl_check_ASN1_GENERALSTRING_type(ptr))) -#define sk_ASN1_GENERALSTRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr)) -#define sk_ASN1_GENERALSTRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr)) -#define sk_ASN1_GENERALSTRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr), pnum) -#define sk_ASN1_GENERALSTRING_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_GENERALSTRING_sk_type(sk)) -#define sk_ASN1_GENERALSTRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_GENERALSTRING_sk_type(sk)) -#define sk_ASN1_GENERALSTRING_dup(sk) ((STACK_OF(ASN1_GENERALSTRING) *)OPENSSL_sk_dup(ossl_check_const_ASN1_GENERALSTRING_sk_type(sk))) -#define sk_ASN1_GENERALSTRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_GENERALSTRING) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_copyfunc_type(copyfunc), ossl_check_ASN1_GENERALSTRING_freefunc_type(freefunc))) -#define sk_ASN1_GENERALSTRING_set_cmp_func(sk, cmp) ((sk_ASN1_GENERALSTRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_compfunc_type(cmp))) - - -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, ASN1_PRINTABLE) - -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DIRECTORYSTRING) -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DISPLAYTEXT) -DECLARE_ASN1_FUNCTIONS(ASN1_PRINTABLESTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_T61STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_IA5STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_GENERALSTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UTCTIME) -DECLARE_ASN1_FUNCTIONS(ASN1_GENERALIZEDTIME) -DECLARE_ASN1_FUNCTIONS(ASN1_TIME) - -DECLARE_ASN1_DUP_FUNCTION(ASN1_TIME) -DECLARE_ASN1_DUP_FUNCTION(ASN1_UTCTIME) -DECLARE_ASN1_DUP_FUNCTION(ASN1_GENERALIZEDTIME) - -DECLARE_ASN1_ITEM(ASN1_OCTET_STRING_NDEF) - -ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); -ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, - int offset_day, long offset_sec); -int ASN1_TIME_check(const ASN1_TIME *t); -ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(const ASN1_TIME *t, - ASN1_GENERALIZEDTIME **out); -int ASN1_TIME_set_string(ASN1_TIME *s, const char *str); -int ASN1_TIME_set_string_X509(ASN1_TIME *s, const char *str); -int ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm); -int ASN1_TIME_normalize(ASN1_TIME *s); -int ASN1_TIME_cmp_time_t(const ASN1_TIME *s, time_t t); -int ASN1_TIME_compare(const ASN1_TIME *a, const ASN1_TIME *b); - -int i2a_ASN1_INTEGER(BIO *bp, const ASN1_INTEGER *a); -int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size); -int i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a); -int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size); -int i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a); -int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size); -int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type); -int i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a); - -int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num); -ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int len, - const char *sn, const char *ln); - -int ASN1_INTEGER_get_int64(int64_t *pr, const ASN1_INTEGER *a); -int ASN1_INTEGER_set_int64(ASN1_INTEGER *a, int64_t r); -int ASN1_INTEGER_get_uint64(uint64_t *pr, const ASN1_INTEGER *a); -int ASN1_INTEGER_set_uint64(ASN1_INTEGER *a, uint64_t r); - -int ASN1_INTEGER_set(ASN1_INTEGER *a, long v); -long ASN1_INTEGER_get(const ASN1_INTEGER *a); -ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai); -BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn); - -int ASN1_ENUMERATED_get_int64(int64_t *pr, const ASN1_ENUMERATED *a); -int ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *a, int64_t r); - - -int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v); -long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a); -ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(const BIGNUM *bn, ASN1_ENUMERATED *ai); -BIGNUM *ASN1_ENUMERATED_to_BN(const ASN1_ENUMERATED *ai, BIGNUM *bn); - -/* General */ -/* given a string, return the correct type, max is the maximum length */ -int ASN1_PRINTABLE_type(const unsigned char *s, int max); - -unsigned long ASN1_tag2bit(int tag); - -/* SPECIALS */ -int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, - int *pclass, long omax); -int ASN1_check_infinite_end(unsigned char **p, long len); -int ASN1_const_check_infinite_end(const unsigned char **p, long len); -void ASN1_put_object(unsigned char **pp, int constructed, int length, - int tag, int xclass); -int ASN1_put_eoc(unsigned char **pp); -int ASN1_object_size(int constructed, int length, int tag); - -/* Used to implement other functions */ -void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, const void *x); - -# define ASN1_dup_of(type,i2d,d2i,x) \ - ((type*)ASN1_dup(CHECKED_I2D_OF(type, i2d), \ - CHECKED_D2I_OF(type, d2i), \ - CHECKED_PTR_OF(const type, x))) - -void *ASN1_item_dup(const ASN1_ITEM *it, const void *x); -int ASN1_item_sign_ex(const ASN1_ITEM *it, X509_ALGOR *algor1, - X509_ALGOR *algor2, ASN1_BIT_STRING *signature, - const void *data, const ASN1_OCTET_STRING *id, - EVP_PKEY *pkey, const EVP_MD *md, OSSL_LIB_CTX *libctx, - const char *propq); -int ASN1_item_verify_ex(const ASN1_ITEM *it, const X509_ALGOR *alg, - const ASN1_BIT_STRING *signature, const void *data, - const ASN1_OCTET_STRING *id, EVP_PKEY *pkey, - OSSL_LIB_CTX *libctx, const char *propq); - -/* ASN1 alloc/free macros for when a type is only used internally */ - -# define M_ASN1_new_of(type) (type *)ASN1_item_new(ASN1_ITEM_rptr(type)) -# define M_ASN1_free_of(x, type) \ - ASN1_item_free(CHECKED_PTR_OF(type, x), ASN1_ITEM_rptr(type)) - -# ifndef OPENSSL_NO_STDIO -void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x); - -# define ASN1_d2i_fp_of(type,xnew,d2i,in,x) \ - ((type*)ASN1_d2i_fp(CHECKED_NEW_OF(type, xnew), \ - CHECKED_D2I_OF(type, d2i), \ - in, \ - CHECKED_PPTR_OF(type, x))) - -void *ASN1_item_d2i_fp_ex(const ASN1_ITEM *it, FILE *in, void *x, - OSSL_LIB_CTX *libctx, const char *propq); -void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x); -int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, const void *x); - -# define ASN1_i2d_fp_of(type,i2d,out,x) \ - (ASN1_i2d_fp(CHECKED_I2D_OF(type, i2d), \ - out, \ - CHECKED_PTR_OF(const type, x))) - -int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, const void *x); -int ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned long flags); -# endif - -int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in); - -void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x); - -# define ASN1_d2i_bio_of(type,xnew,d2i,in,x) \ - ((type*)ASN1_d2i_bio( CHECKED_NEW_OF(type, xnew), \ - CHECKED_D2I_OF(type, d2i), \ - in, \ - CHECKED_PPTR_OF(type, x))) - -void *ASN1_item_d2i_bio_ex(const ASN1_ITEM *it, BIO *in, void *pval, - OSSL_LIB_CTX *libctx, const char *propq); -void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *pval); -int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, const void *x); - -# define ASN1_i2d_bio_of(type,i2d,out,x) \ - (ASN1_i2d_bio(CHECKED_I2D_OF(type, i2d), \ - out, \ - CHECKED_PTR_OF(const type, x))) - -int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, const void *x); -BIO *ASN1_item_i2d_mem_bio(const ASN1_ITEM *it, const ASN1_VALUE *val); -int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a); -int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a); -int ASN1_TIME_print(BIO *bp, const ASN1_TIME *tm); -int ASN1_TIME_print_ex(BIO *bp, const ASN1_TIME *tm, unsigned long flags); -int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v); -int ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned long flags); -int ASN1_buf_print(BIO *bp, const unsigned char *buf, size_t buflen, int off); -int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, - unsigned char *buf, int off); -int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent); -int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, - int dump); -const char *ASN1_tag2str(int tag); - -/* Used to load and write Netscape format cert */ - -int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s); - -int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len); -int ASN1_TYPE_get_octetstring(const ASN1_TYPE *a, unsigned char *data, int max_len); -int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, - unsigned char *data, int len); -int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, - unsigned char *data, int max_len); - -void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); -void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, - OSSL_LIB_CTX *libctx, const char *propq); - -ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, - ASN1_OCTET_STRING **oct); - -void ASN1_STRING_set_default_mask(unsigned long mask); -int ASN1_STRING_set_default_mask_asc(const char *p); -unsigned long ASN1_STRING_get_default_mask(void); -int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, - int inform, unsigned long mask); -int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, - int inform, unsigned long mask, - long minsize, long maxsize); - -ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, - const unsigned char *in, int inlen, - int inform, int nid); -ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid); -int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long); -void ASN1_STRING_TABLE_cleanup(void); - -/* ASN1 template functions */ - -/* Old API compatible functions */ -ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it); -ASN1_VALUE *ASN1_item_new_ex(const ASN1_ITEM *it, OSSL_LIB_CTX *libctx, - const char *propq); -void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); -ASN1_VALUE *ASN1_item_d2i_ex(ASN1_VALUE **val, const unsigned char **in, - long len, const ASN1_ITEM *it, - OSSL_LIB_CTX *libctx, const char *propq); -ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, - long len, const ASN1_ITEM *it); -int ASN1_item_i2d(const ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); -int ASN1_item_ndef_i2d(const ASN1_VALUE *val, unsigned char **out, - const ASN1_ITEM *it); - -void ASN1_add_oid_module(void); -void ASN1_add_stable_module(void); - -ASN1_TYPE *ASN1_generate_nconf(const char *str, CONF *nconf); -ASN1_TYPE *ASN1_generate_v3(const char *str, X509V3_CTX *cnf); -int ASN1_str2mask(const char *str, unsigned long *pmask); - -/* ASN1 Print flags */ - -/* Indicate missing OPTIONAL fields */ -# define ASN1_PCTX_FLAGS_SHOW_ABSENT 0x001 -/* Mark start and end of SEQUENCE */ -# define ASN1_PCTX_FLAGS_SHOW_SEQUENCE 0x002 -/* Mark start and end of SEQUENCE/SET OF */ -# define ASN1_PCTX_FLAGS_SHOW_SSOF 0x004 -/* Show the ASN1 type of primitives */ -# define ASN1_PCTX_FLAGS_SHOW_TYPE 0x008 -/* Don't show ASN1 type of ANY */ -# define ASN1_PCTX_FLAGS_NO_ANY_TYPE 0x010 -/* Don't show ASN1 type of MSTRINGs */ -# define ASN1_PCTX_FLAGS_NO_MSTRING_TYPE 0x020 -/* Don't show field names in SEQUENCE */ -# define ASN1_PCTX_FLAGS_NO_FIELD_NAME 0x040 -/* Show structure names of each SEQUENCE field */ -# define ASN1_PCTX_FLAGS_SHOW_FIELD_STRUCT_NAME 0x080 -/* Don't show structure name even at top level */ -# define ASN1_PCTX_FLAGS_NO_STRUCT_NAME 0x100 - -int ASN1_item_print(BIO *out, const ASN1_VALUE *ifld, int indent, - const ASN1_ITEM *it, const ASN1_PCTX *pctx); -ASN1_PCTX *ASN1_PCTX_new(void); -void ASN1_PCTX_free(ASN1_PCTX *p); -unsigned long ASN1_PCTX_get_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_str_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags); - -ASN1_SCTX *ASN1_SCTX_new(int (*scan_cb) (ASN1_SCTX *ctx)); -void ASN1_SCTX_free(ASN1_SCTX *p); -const ASN1_ITEM *ASN1_SCTX_get_item(ASN1_SCTX *p); -const ASN1_TEMPLATE *ASN1_SCTX_get_template(ASN1_SCTX *p); -unsigned long ASN1_SCTX_get_flags(ASN1_SCTX *p); -void ASN1_SCTX_set_app_data(ASN1_SCTX *p, void *data); -void *ASN1_SCTX_get_app_data(ASN1_SCTX *p); - -const BIO_METHOD *BIO_f_asn1(void); - -/* cannot constify val because of CMS_stream() */ -BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it); - -int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, - const ASN1_ITEM *it); -int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, - const char *hdr, const ASN1_ITEM *it); -/* cannot constify val because of CMS_dataFinal() */ -int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, - int ctype_nid, int econt_nid, - STACK_OF(X509_ALGOR) *mdalgs, const ASN1_ITEM *it); -int SMIME_write_ASN1_ex(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, - int ctype_nid, int econt_nid, - STACK_OF(X509_ALGOR) *mdalgs, const ASN1_ITEM *it, - OSSL_LIB_CTX *libctx, const char *propq); -ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it); -ASN1_VALUE *SMIME_read_ASN1_ex(BIO *bio, int flags, BIO **bcont, - const ASN1_ITEM *it, ASN1_VALUE **x, - OSSL_LIB_CTX *libctx, const char *propq); -int SMIME_crlf_copy(BIO *in, BIO *out, int flags); -int SMIME_text(BIO *in, BIO *out); - -const ASN1_ITEM *ASN1_ITEM_lookup(const char *name); -const ASN1_ITEM *ASN1_ITEM_get(size_t i); - -/* Legacy compatibility */ -# define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) -# define DECLARE_ASN1_FUNCTIONS_const(type) DECLARE_ASN1_FUNCTIONS(type) -# define DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS(type, name) -# define I2D_OF_const(type) I2D_OF(type) -# define ASN1_dup_of_const(type,i2d,d2i,x) ASN1_dup_of(type,i2d,d2i,x) -# define ASN1_i2d_fp_of_const(type,i2d,out,x) ASN1_i2d_fp_of(type,i2d,out,x) -# define ASN1_i2d_bio_of_const(type,i2d,out,x) ASN1_i2d_bio_of(type,i2d,out,x) - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/asn1err.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/asn1err.h deleted file mode 100644 index 8fd85ed..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/asn1err.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_ASN1ERR_H -# define OPENSSL_ASN1ERR_H -# pragma once - -# include -# include -# include - - - -/* - * ASN1 reason codes. - */ -# define ASN1_R_ADDING_OBJECT 171 -# define ASN1_R_ASN1_PARSE_ERROR 203 -# define ASN1_R_ASN1_SIG_PARSE_ERROR 204 -# define ASN1_R_AUX_ERROR 100 -# define ASN1_R_BAD_OBJECT_HEADER 102 -# define ASN1_R_BAD_TEMPLATE 230 -# define ASN1_R_BMPSTRING_IS_WRONG_LENGTH 214 -# define ASN1_R_BN_LIB 105 -# define ASN1_R_BOOLEAN_IS_WRONG_LENGTH 106 -# define ASN1_R_BUFFER_TOO_SMALL 107 -# define ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 108 -# define ASN1_R_CONTEXT_NOT_INITIALISED 217 -# define ASN1_R_DATA_IS_WRONG 109 -# define ASN1_R_DECODE_ERROR 110 -# define ASN1_R_DEPTH_EXCEEDED 174 -# define ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED 198 -# define ASN1_R_ENCODE_ERROR 112 -# define ASN1_R_ERROR_GETTING_TIME 173 -# define ASN1_R_ERROR_LOADING_SECTION 172 -# define ASN1_R_ERROR_SETTING_CIPHER_PARAMS 114 -# define ASN1_R_EXPECTING_AN_INTEGER 115 -# define ASN1_R_EXPECTING_AN_OBJECT 116 -# define ASN1_R_EXPLICIT_LENGTH_MISMATCH 119 -# define ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED 120 -# define ASN1_R_FIELD_MISSING 121 -# define ASN1_R_FIRST_NUM_TOO_LARGE 122 -# define ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT 232 -# define ASN1_R_HEADER_TOO_LONG 123 -# define ASN1_R_ILLEGAL_BITSTRING_FORMAT 175 -# define ASN1_R_ILLEGAL_BOOLEAN 176 -# define ASN1_R_ILLEGAL_CHARACTERS 124 -# define ASN1_R_ILLEGAL_FORMAT 177 -# define ASN1_R_ILLEGAL_HEX 178 -# define ASN1_R_ILLEGAL_IMPLICIT_TAG 179 -# define ASN1_R_ILLEGAL_INTEGER 180 -# define ASN1_R_ILLEGAL_NEGATIVE_VALUE 226 -# define ASN1_R_ILLEGAL_NESTED_TAGGING 181 -# define ASN1_R_ILLEGAL_NULL 125 -# define ASN1_R_ILLEGAL_NULL_VALUE 182 -# define ASN1_R_ILLEGAL_OBJECT 183 -# define ASN1_R_ILLEGAL_OPTIONAL_ANY 126 -# define ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE 170 -# define ASN1_R_ILLEGAL_PADDING 221 -# define ASN1_R_ILLEGAL_TAGGED_ANY 127 -# define ASN1_R_ILLEGAL_TIME_VALUE 184 -# define ASN1_R_ILLEGAL_ZERO_CONTENT 222 -# define ASN1_R_INTEGER_NOT_ASCII_FORMAT 185 -# define ASN1_R_INTEGER_TOO_LARGE_FOR_LONG 128 -# define ASN1_R_INVALID_BIT_STRING_BITS_LEFT 220 -# define ASN1_R_INVALID_BMPSTRING_LENGTH 129 -# define ASN1_R_INVALID_DIGIT 130 -# define ASN1_R_INVALID_MIME_TYPE 205 -# define ASN1_R_INVALID_MODIFIER 186 -# define ASN1_R_INVALID_NUMBER 187 -# define ASN1_R_INVALID_OBJECT_ENCODING 216 -# define ASN1_R_INVALID_SCRYPT_PARAMETERS 227 -# define ASN1_R_INVALID_SEPARATOR 131 -# define ASN1_R_INVALID_STRING_TABLE_VALUE 218 -# define ASN1_R_INVALID_UNIVERSALSTRING_LENGTH 133 -# define ASN1_R_INVALID_UTF8STRING 134 -# define ASN1_R_INVALID_VALUE 219 -# define ASN1_R_LENGTH_TOO_LONG 231 -# define ASN1_R_LIST_ERROR 188 -# define ASN1_R_MIME_NO_CONTENT_TYPE 206 -# define ASN1_R_MIME_PARSE_ERROR 207 -# define ASN1_R_MIME_SIG_PARSE_ERROR 208 -# define ASN1_R_MISSING_EOC 137 -# define ASN1_R_MISSING_SECOND_NUMBER 138 -# define ASN1_R_MISSING_VALUE 189 -# define ASN1_R_MSTRING_NOT_UNIVERSAL 139 -# define ASN1_R_MSTRING_WRONG_TAG 140 -# define ASN1_R_NESTED_ASN1_STRING 197 -# define ASN1_R_NESTED_TOO_DEEP 201 -# define ASN1_R_NON_HEX_CHARACTERS 141 -# define ASN1_R_NOT_ASCII_FORMAT 190 -# define ASN1_R_NOT_ENOUGH_DATA 142 -# define ASN1_R_NO_CONTENT_TYPE 209 -# define ASN1_R_NO_MATCHING_CHOICE_TYPE 143 -# define ASN1_R_NO_MULTIPART_BODY_FAILURE 210 -# define ASN1_R_NO_MULTIPART_BOUNDARY 211 -# define ASN1_R_NO_SIG_CONTENT_TYPE 212 -# define ASN1_R_NULL_IS_WRONG_LENGTH 144 -# define ASN1_R_OBJECT_NOT_ASCII_FORMAT 191 -# define ASN1_R_ODD_NUMBER_OF_CHARS 145 -# define ASN1_R_SECOND_NUMBER_TOO_LARGE 147 -# define ASN1_R_SEQUENCE_LENGTH_MISMATCH 148 -# define ASN1_R_SEQUENCE_NOT_CONSTRUCTED 149 -# define ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG 192 -# define ASN1_R_SHORT_LINE 150 -# define ASN1_R_SIG_INVALID_MIME_TYPE 213 -# define ASN1_R_STREAMING_NOT_SUPPORTED 202 -# define ASN1_R_STRING_TOO_LONG 151 -# define ASN1_R_STRING_TOO_SHORT 152 -# define ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 154 -# define ASN1_R_TIME_NOT_ASCII_FORMAT 193 -# define ASN1_R_TOO_LARGE 223 -# define ASN1_R_TOO_LONG 155 -# define ASN1_R_TOO_SMALL 224 -# define ASN1_R_TYPE_NOT_CONSTRUCTED 156 -# define ASN1_R_TYPE_NOT_PRIMITIVE 195 -# define ASN1_R_UNEXPECTED_EOC 159 -# define ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH 215 -# define ASN1_R_UNKNOWN_DIGEST 229 -# define ASN1_R_UNKNOWN_FORMAT 160 -# define ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM 161 -# define ASN1_R_UNKNOWN_OBJECT_TYPE 162 -# define ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE 163 -# define ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM 199 -# define ASN1_R_UNKNOWN_TAG 194 -# define ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE 164 -# define ASN1_R_UNSUPPORTED_CIPHER 228 -# define ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE 167 -# define ASN1_R_UNSUPPORTED_TYPE 196 -# define ASN1_R_UTCTIME_IS_TOO_SHORT 233 -# define ASN1_R_WRONG_INTEGER_TYPE 225 -# define ASN1_R_WRONG_PUBLIC_KEY_TYPE 200 -# define ASN1_R_WRONG_TAG 168 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/asn1t.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/asn1t.h deleted file mode 100644 index 068f875..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/asn1t.h +++ /dev/null @@ -1,946 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\asn1t.h.in - * - * Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_ASN1T_H -# define OPENSSL_ASN1T_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_ASN1T_H -# endif - -# include -# include -# include - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -/* ASN1 template defines, structures and functions */ - -#ifdef __cplusplus -extern "C" { -#endif - -/*- - * These are the possible values for the itype field of the - * ASN1_ITEM structure and determine how it is interpreted. - * - * For PRIMITIVE types the underlying type - * determines the behaviour if items is NULL. - * - * Otherwise templates must contain a single - * template and the type is treated in the - * same way as the type specified in the template. - * - * For SEQUENCE types the templates field points - * to the members, the size field is the - * structure size. - * - * For CHOICE types the templates field points - * to each possible member (typically a union) - * and the 'size' field is the offset of the - * selector. - * - * The 'funcs' field is used for application-specific - * data and functions. - * - * The EXTERN type uses a new style d2i/i2d. - * The new style should be used where possible - * because it avoids things like the d2i IMPLICIT - * hack. - * - * MSTRING is a multiple string type, it is used - * for a CHOICE of character strings where the - * actual strings all occupy an ASN1_STRING - * structure. In this case the 'utype' field - * has a special meaning, it is used as a mask - * of acceptable types using the B_ASN1 constants. - * - * NDEF_SEQUENCE is the same as SEQUENCE except - * that it will use indefinite length constructed - * encoding if requested. - * - */ - -# define ASN1_ITYPE_PRIMITIVE 0x0 -# define ASN1_ITYPE_SEQUENCE 0x1 -# define ASN1_ITYPE_CHOICE 0x2 -/* unused value 0x3 */ -# define ASN1_ITYPE_EXTERN 0x4 -# define ASN1_ITYPE_MSTRING 0x5 -# define ASN1_ITYPE_NDEF_SEQUENCE 0x6 - -/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ -# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)((iptr)())) - -/* Macros for start and end of ASN1_ITEM definition */ - -# define ASN1_ITEM_start(itname) \ - const ASN1_ITEM * itname##_it(void) \ - { \ - static const ASN1_ITEM local_it = { - -# define static_ASN1_ITEM_start(itname) \ - static ASN1_ITEM_start(itname) - -# define ASN1_ITEM_end(itname) \ - }; \ - return &local_it; \ - } - -/* Macros to aid ASN1 template writing */ - -# define ASN1_ITEM_TEMPLATE(tname) \ - static const ASN1_TEMPLATE tname##_item_tt - -# define ASN1_ITEM_TEMPLATE_END(tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_PRIMITIVE,\ - -1,\ - &tname##_item_tt,\ - 0,\ - NULL,\ - 0,\ - #tname \ - ASN1_ITEM_end(tname) -# define static_ASN1_ITEM_TEMPLATE_END(tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_PRIMITIVE,\ - -1,\ - &tname##_item_tt,\ - 0,\ - NULL,\ - 0,\ - #tname \ - ASN1_ITEM_end(tname) - -/* This is a ASN1 type which just embeds a template */ - -/*- - * This pair helps declare a SEQUENCE. We can do: - * - * ASN1_SEQUENCE(stname) = { - * ... SEQUENCE components ... - * } ASN1_SEQUENCE_END(stname) - * - * This will produce an ASN1_ITEM called stname_it - * for a structure called stname. - * - * If you want the same structure but a different - * name then use: - * - * ASN1_SEQUENCE(itname) = { - * ... SEQUENCE components ... - * } ASN1_SEQUENCE_END_name(stname, itname) - * - * This will create an item called itname_it using - * a structure called stname. - */ - -# define ASN1_SEQUENCE(tname) \ - static const ASN1_TEMPLATE tname##_seq_tt[] - -# define ASN1_SEQUENCE_END(stname) ASN1_SEQUENCE_END_name(stname, stname) - -# define static_ASN1_SEQUENCE_END(stname) static_ASN1_SEQUENCE_END_name(stname, stname) - -# define ASN1_SEQUENCE_END_name(stname, tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #tname \ - ASN1_ITEM_end(tname) - -# define static_ASN1_SEQUENCE_END_name(stname, tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define ASN1_NDEF_SEQUENCE(tname) \ - ASN1_SEQUENCE(tname) - -# define ASN1_NDEF_SEQUENCE_cb(tname, cb) \ - ASN1_SEQUENCE_cb(tname, cb) - -# define ASN1_SEQUENCE_cb(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0, NULL}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_SEQUENCE_const_cb(tname, const_cb) \ - static const ASN1_AUX tname##_aux = \ - {NULL, ASN1_AFLG_CONST_CB, 0, 0, NULL, 0, const_cb}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_SEQUENCE_cb_const_cb(tname, cb, const_cb) \ - static const ASN1_AUX tname##_aux = \ - {NULL, ASN1_AFLG_CONST_CB, 0, 0, cb, 0, const_cb}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_SEQUENCE_ref(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_REFCOUNT, offsetof(tname, references), offsetof(tname, lock), cb, 0, NULL}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_SEQUENCE_enc(tname, enc, cb) \ - static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_ENCODING, 0, 0, cb, offsetof(tname, enc), NULL}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_NDEF_SEQUENCE_END(tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_NDEF_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(tname),\ - #tname \ - ASN1_ITEM_end(tname) -# define static_ASN1_NDEF_SEQUENCE_END(tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_NDEF_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(tname),\ - #tname \ - ASN1_ITEM_end(tname) - - -# define ASN1_SEQUENCE_END_enc(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) - -# define ASN1_SEQUENCE_END_cb(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) -# define static_ASN1_SEQUENCE_END_cb(stname, tname) static_ASN1_SEQUENCE_END_ref(stname, tname) - -# define ASN1_SEQUENCE_END_ref(stname, tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #tname \ - ASN1_ITEM_end(tname) -# define static_ASN1_SEQUENCE_END_ref(stname, tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define ASN1_NDEF_SEQUENCE_END_cb(stname, tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_NDEF_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -/*- - * This pair helps declare a CHOICE type. We can do: - * - * ASN1_CHOICE(chname) = { - * ... CHOICE options ... - * ASN1_CHOICE_END(chname) - * - * This will produce an ASN1_ITEM called chname_it - * for a structure called chname. The structure - * definition must look like this: - * typedef struct { - * int type; - * union { - * ASN1_SOMETHING *opt1; - * ASN1_SOMEOTHER *opt2; - * } value; - * } chname; - * - * the name of the selector must be 'type'. - * to use an alternative selector name use the - * ASN1_CHOICE_END_selector() version. - */ - -# define ASN1_CHOICE(tname) \ - static const ASN1_TEMPLATE tname##_ch_tt[] - -# define ASN1_CHOICE_cb(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0, NULL}; \ - ASN1_CHOICE(tname) - -# define ASN1_CHOICE_END(stname) ASN1_CHOICE_END_name(stname, stname) - -# define static_ASN1_CHOICE_END(stname) static_ASN1_CHOICE_END_name(stname, stname) - -# define ASN1_CHOICE_END_name(stname, tname) ASN1_CHOICE_END_selector(stname, tname, type) - -# define static_ASN1_CHOICE_END_name(stname, tname) static_ASN1_CHOICE_END_selector(stname, tname, type) - -# define ASN1_CHOICE_END_selector(stname, tname, selname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_CHOICE,\ - offsetof(stname,selname) ,\ - tname##_ch_tt,\ - sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define static_ASN1_CHOICE_END_selector(stname, tname, selname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_CHOICE,\ - offsetof(stname,selname) ,\ - tname##_ch_tt,\ - sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define ASN1_CHOICE_END_cb(stname, tname, selname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_CHOICE,\ - offsetof(stname,selname) ,\ - tname##_ch_tt,\ - sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -/* This helps with the template wrapper form of ASN1_ITEM */ - -# define ASN1_EX_TEMPLATE_TYPE(flags, tag, name, type) { \ - (flags), (tag), 0,\ - #name, ASN1_ITEM_ref(type) } - -/* These help with SEQUENCE or CHOICE components */ - -/* used to declare other types */ - -# define ASN1_EX_TYPE(flags, tag, stname, field, type) { \ - (flags), (tag), offsetof(stname, field),\ - #field, ASN1_ITEM_ref(type) } - -/* implicit and explicit helper macros */ - -# define ASN1_IMP_EX(stname, field, type, tag, ex) \ - ASN1_EX_TYPE(ASN1_TFLG_IMPLICIT | (ex), tag, stname, field, type) - -# define ASN1_EXP_EX(stname, field, type, tag, ex) \ - ASN1_EX_TYPE(ASN1_TFLG_EXPLICIT | (ex), tag, stname, field, type) - -/* Any defined by macros: the field used is in the table itself */ - -# define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, tblname##_adb } -# define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, tblname##_adb } - -/* Plain simple type */ -# define ASN1_SIMPLE(stname, field, type) ASN1_EX_TYPE(0,0, stname, field, type) -/* Embedded simple type */ -# define ASN1_EMBED(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_EMBED,0, stname, field, type) - -/* OPTIONAL simple type */ -# define ASN1_OPT(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL, 0, stname, field, type) -# define ASN1_OPT_EMBED(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED, 0, stname, field, type) - -/* IMPLICIT tagged simple type */ -# define ASN1_IMP(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, 0) -# define ASN1_IMP_EMBED(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_EMBED) - -/* IMPLICIT tagged OPTIONAL simple type */ -# define ASN1_IMP_OPT(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) -# define ASN1_IMP_OPT_EMBED(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED) - -/* Same as above but EXPLICIT */ - -# define ASN1_EXP(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, 0) -# define ASN1_EXP_EMBED(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_EMBED) -# define ASN1_EXP_OPT(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) -# define ASN1_EXP_OPT_EMBED(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED) - -/* SEQUENCE OF type */ -# define ASN1_SEQUENCE_OF(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, stname, field, type) - -/* OPTIONAL SEQUENCE OF */ -# define ASN1_SEQUENCE_OF_OPT(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) - -/* Same as above but for SET OF */ - -# define ASN1_SET_OF(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SET_OF, 0, stname, field, type) - -# define ASN1_SET_OF_OPT(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) - -/* Finally compound types of SEQUENCE, SET, IMPLICIT, EXPLICIT and OPTIONAL */ - -# define ASN1_IMP_SET_OF(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) - -# define ASN1_EXP_SET_OF(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) - -# define ASN1_IMP_SET_OF_OPT(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) - -# define ASN1_EXP_SET_OF_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) - -# define ASN1_IMP_SEQUENCE_OF(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) - -# define ASN1_IMP_SEQUENCE_OF_OPT(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) - -# define ASN1_EXP_SEQUENCE_OF(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) - -# define ASN1_EXP_SEQUENCE_OF_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) - -/* EXPLICIT using indefinite length constructed form */ -# define ASN1_NDEF_EXP(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_NDEF) - -/* EXPLICIT OPTIONAL using indefinite length constructed form */ -# define ASN1_NDEF_EXP_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_NDEF) - -/* Macros for the ASN1_ADB structure */ - -# define ASN1_ADB(name) \ - static const ASN1_ADB_TABLE name##_adbtbl[] - -# define ASN1_ADB_END(name, flags, field, adb_cb, def, none) \ - ;\ - static const ASN1_ITEM *name##_adb(void) \ - { \ - static const ASN1_ADB internal_adb = \ - {\ - flags,\ - offsetof(name, field),\ - adb_cb,\ - name##_adbtbl,\ - sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ - def,\ - none\ - }; \ - return (const ASN1_ITEM *) &internal_adb; \ - } \ - void dummy_function(void) - -# define ADB_ENTRY(val, template) {val, template} - -# define ASN1_ADB_TEMPLATE(name) \ - static const ASN1_TEMPLATE name##_tt - -/* - * This is the ASN1 template structure that defines a wrapper round the - * actual type. It determines the actual position of the field in the value - * structure, various flags such as OPTIONAL and the field name. - */ - -struct ASN1_TEMPLATE_st { - unsigned long flags; /* Various flags */ - long tag; /* tag, not used if no tagging */ - unsigned long offset; /* Offset of this field in structure */ - const char *field_name; /* Field name */ - ASN1_ITEM_EXP *item; /* Relevant ASN1_ITEM or ASN1_ADB */ -}; - -/* Macro to extract ASN1_ITEM and ASN1_ADB pointer from ASN1_TEMPLATE */ - -# define ASN1_TEMPLATE_item(t) (t->item_ptr) -# define ASN1_TEMPLATE_adb(t) (t->item_ptr) - -typedef struct ASN1_ADB_TABLE_st ASN1_ADB_TABLE; -typedef struct ASN1_ADB_st ASN1_ADB; - -struct ASN1_ADB_st { - unsigned long flags; /* Various flags */ - unsigned long offset; /* Offset of selector field */ - int (*adb_cb)(long *psel); /* Application callback */ - const ASN1_ADB_TABLE *tbl; /* Table of possible types */ - long tblcount; /* Number of entries in tbl */ - const ASN1_TEMPLATE *default_tt; /* Type to use if no match */ - const ASN1_TEMPLATE *null_tt; /* Type to use if selector is NULL */ -}; - -struct ASN1_ADB_TABLE_st { - long value; /* NID for an object or value for an int */ - const ASN1_TEMPLATE tt; /* item for this value */ -}; - -/* template flags */ - -/* Field is optional */ -# define ASN1_TFLG_OPTIONAL (0x1) - -/* Field is a SET OF */ -# define ASN1_TFLG_SET_OF (0x1 << 1) - -/* Field is a SEQUENCE OF */ -# define ASN1_TFLG_SEQUENCE_OF (0x2 << 1) - -/* - * Special case: this refers to a SET OF that will be sorted into DER order - * when encoded *and* the corresponding STACK will be modified to match the - * new order. - */ -# define ASN1_TFLG_SET_ORDER (0x3 << 1) - -/* Mask for SET OF or SEQUENCE OF */ -# define ASN1_TFLG_SK_MASK (0x3 << 1) - -/* - * These flags mean the tag should be taken from the tag field. If EXPLICIT - * then the underlying type is used for the inner tag. - */ - -/* IMPLICIT tagging */ -# define ASN1_TFLG_IMPTAG (0x1 << 3) - -/* EXPLICIT tagging, inner tag from underlying type */ -# define ASN1_TFLG_EXPTAG (0x2 << 3) - -# define ASN1_TFLG_TAG_MASK (0x3 << 3) - -/* context specific IMPLICIT */ -# define ASN1_TFLG_IMPLICIT (ASN1_TFLG_IMPTAG|ASN1_TFLG_CONTEXT) - -/* context specific EXPLICIT */ -# define ASN1_TFLG_EXPLICIT (ASN1_TFLG_EXPTAG|ASN1_TFLG_CONTEXT) - -/* - * If tagging is in force these determine the type of tag to use. Otherwise - * the tag is determined by the underlying type. These values reflect the - * actual octet format. - */ - -/* Universal tag */ -# define ASN1_TFLG_UNIVERSAL (0x0<<6) -/* Application tag */ -# define ASN1_TFLG_APPLICATION (0x1<<6) -/* Context specific tag */ -# define ASN1_TFLG_CONTEXT (0x2<<6) -/* Private tag */ -# define ASN1_TFLG_PRIVATE (0x3<<6) - -# define ASN1_TFLG_TAG_CLASS (0x3<<6) - -/* - * These are for ANY DEFINED BY type. In this case the 'item' field points to - * an ASN1_ADB structure which contains a table of values to decode the - * relevant type - */ - -# define ASN1_TFLG_ADB_MASK (0x3<<8) - -# define ASN1_TFLG_ADB_OID (0x1<<8) - -# define ASN1_TFLG_ADB_INT (0x1<<9) - -/* - * This flag when present in a SEQUENCE OF, SET OF or EXPLICIT causes - * indefinite length constructed encoding to be used if required. - */ - -# define ASN1_TFLG_NDEF (0x1<<11) - -/* Field is embedded and not a pointer */ -# define ASN1_TFLG_EMBED (0x1 << 12) - -/* This is the actual ASN1 item itself */ - -struct ASN1_ITEM_st { - char itype; /* The item type, primitive, SEQUENCE, CHOICE - * or extern */ - long utype; /* underlying type */ - const ASN1_TEMPLATE *templates; /* If SEQUENCE or CHOICE this contains - * the contents */ - long tcount; /* Number of templates if SEQUENCE or CHOICE */ - const void *funcs; /* further data and type-specific functions */ - /* funcs can be ASN1_PRIMITIVE_FUNCS*, ASN1_EXTERN_FUNCS*, or ASN1_AUX* */ - long size; /* Structure size (usually) */ - const char *sname; /* Structure name */ -}; - -/* - * Cache for ASN1 tag and length, so we don't keep re-reading it for things - * like CHOICE - */ - -struct ASN1_TLC_st { - char valid; /* Values below are valid */ - int ret; /* return value */ - long plen; /* length */ - int ptag; /* class value */ - int pclass; /* class value */ - int hdrlen; /* header length */ -}; - -/* Typedefs for ASN1 function pointers */ -typedef int ASN1_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, - const ASN1_ITEM *it, int tag, int aclass, char opt, - ASN1_TLC *ctx); - -typedef int ASN1_ex_d2i_ex(ASN1_VALUE **pval, const unsigned char **in, long len, - const ASN1_ITEM *it, int tag, int aclass, char opt, - ASN1_TLC *ctx, OSSL_LIB_CTX *libctx, - const char *propq); -typedef int ASN1_ex_i2d(const ASN1_VALUE **pval, unsigned char **out, - const ASN1_ITEM *it, int tag, int aclass); -typedef int ASN1_ex_new_func(ASN1_VALUE **pval, const ASN1_ITEM *it); -typedef int ASN1_ex_new_ex_func(ASN1_VALUE **pval, const ASN1_ITEM *it, - OSSL_LIB_CTX *libctx, const char *propq); -typedef void ASN1_ex_free_func(ASN1_VALUE **pval, const ASN1_ITEM *it); - -typedef int ASN1_ex_print_func(BIO *out, const ASN1_VALUE **pval, - int indent, const char *fname, - const ASN1_PCTX *pctx); - -typedef int ASN1_primitive_i2c(const ASN1_VALUE **pval, unsigned char *cont, - int *putype, const ASN1_ITEM *it); -typedef int ASN1_primitive_c2i(ASN1_VALUE **pval, const unsigned char *cont, - int len, int utype, char *free_cont, - const ASN1_ITEM *it); -typedef int ASN1_primitive_print(BIO *out, const ASN1_VALUE **pval, - const ASN1_ITEM *it, int indent, - const ASN1_PCTX *pctx); - -typedef struct ASN1_EXTERN_FUNCS_st { - void *app_data; - ASN1_ex_new_func *asn1_ex_new; - ASN1_ex_free_func *asn1_ex_free; - ASN1_ex_free_func *asn1_ex_clear; - ASN1_ex_d2i *asn1_ex_d2i; - ASN1_ex_i2d *asn1_ex_i2d; - ASN1_ex_print_func *asn1_ex_print; - ASN1_ex_new_ex_func *asn1_ex_new_ex; - ASN1_ex_d2i_ex *asn1_ex_d2i_ex; -} ASN1_EXTERN_FUNCS; - -typedef struct ASN1_PRIMITIVE_FUNCS_st { - void *app_data; - unsigned long flags; - ASN1_ex_new_func *prim_new; - ASN1_ex_free_func *prim_free; - ASN1_ex_free_func *prim_clear; - ASN1_primitive_c2i *prim_c2i; - ASN1_primitive_i2c *prim_i2c; - ASN1_primitive_print *prim_print; -} ASN1_PRIMITIVE_FUNCS; - -/* - * This is the ASN1_AUX structure: it handles various miscellaneous - * requirements. For example the use of reference counts and an informational - * callback. The "informational callback" is called at various points during - * the ASN1 encoding and decoding. It can be used to provide minor - * customisation of the structures used. This is most useful where the - * supplied routines *almost* do the right thing but need some extra help at - * a few points. If the callback returns zero then it is assumed a fatal - * error has occurred and the main operation should be abandoned. If major - * changes in the default behaviour are required then an external type is - * more appropriate. - * For the operations ASN1_OP_I2D_PRE, ASN1_OP_I2D_POST, ASN1_OP_PRINT_PRE, and - * ASN1_OP_PRINT_POST, meanwhile a variant of the callback with const parameter - * 'in' is provided to make clear statically that its input is not modified. If - * and only if this variant is in use the flag ASN1_AFLG_CONST_CB must be set. - */ - -typedef int ASN1_aux_cb(int operation, ASN1_VALUE **in, const ASN1_ITEM *it, - void *exarg); -typedef int ASN1_aux_const_cb(int operation, const ASN1_VALUE **in, - const ASN1_ITEM *it, void *exarg); - -typedef struct ASN1_AUX_st { - void *app_data; - int flags; - int ref_offset; /* Offset of reference value */ - int ref_lock; /* Offset of lock value */ - ASN1_aux_cb *asn1_cb; - int enc_offset; /* Offset of ASN1_ENCODING structure */ - ASN1_aux_const_cb *asn1_const_cb; /* for ASN1_OP_I2D_ and ASN1_OP_PRINT_ */ -} ASN1_AUX; - -/* For print related callbacks exarg points to this structure */ -typedef struct ASN1_PRINT_ARG_st { - BIO *out; - int indent; - const ASN1_PCTX *pctx; -} ASN1_PRINT_ARG; - -/* For streaming related callbacks exarg points to this structure */ -typedef struct ASN1_STREAM_ARG_st { - /* BIO to stream through */ - BIO *out; - /* BIO with filters appended */ - BIO *ndef_bio; - /* Streaming I/O boundary */ - unsigned char **boundary; -} ASN1_STREAM_ARG; - -/* Flags in ASN1_AUX */ - -/* Use a reference count */ -# define ASN1_AFLG_REFCOUNT 1 -/* Save the encoding of structure (useful for signatures) */ -# define ASN1_AFLG_ENCODING 2 -/* The Sequence length is invalid */ -# define ASN1_AFLG_BROKEN 4 -/* Use the new asn1_const_cb */ -# define ASN1_AFLG_CONST_CB 8 - -/* operation values for asn1_cb */ - -# define ASN1_OP_NEW_PRE 0 -# define ASN1_OP_NEW_POST 1 -# define ASN1_OP_FREE_PRE 2 -# define ASN1_OP_FREE_POST 3 -# define ASN1_OP_D2I_PRE 4 -# define ASN1_OP_D2I_POST 5 -# define ASN1_OP_I2D_PRE 6 -# define ASN1_OP_I2D_POST 7 -# define ASN1_OP_PRINT_PRE 8 -# define ASN1_OP_PRINT_POST 9 -# define ASN1_OP_STREAM_PRE 10 -# define ASN1_OP_STREAM_POST 11 -# define ASN1_OP_DETACHED_PRE 12 -# define ASN1_OP_DETACHED_POST 13 -# define ASN1_OP_DUP_PRE 14 -# define ASN1_OP_DUP_POST 15 -# define ASN1_OP_GET0_LIBCTX 16 -# define ASN1_OP_GET0_PROPQ 17 - -/* Macro to implement a primitive type */ -# define IMPLEMENT_ASN1_TYPE(stname) IMPLEMENT_ASN1_TYPE_ex(stname, stname, 0) -# define IMPLEMENT_ASN1_TYPE_ex(itname, vname, ex) \ - ASN1_ITEM_start(itname) \ - ASN1_ITYPE_PRIMITIVE, V_##vname, NULL, 0, NULL, ex, #itname \ - ASN1_ITEM_end(itname) - -/* Macro to implement a multi string type */ -# define IMPLEMENT_ASN1_MSTRING(itname, mask) \ - ASN1_ITEM_start(itname) \ - ASN1_ITYPE_MSTRING, mask, NULL, 0, NULL, sizeof(ASN1_STRING), #itname \ - ASN1_ITEM_end(itname) - -# define IMPLEMENT_EXTERN_ASN1(sname, tag, fptrs) \ - ASN1_ITEM_start(sname) \ - ASN1_ITYPE_EXTERN, \ - tag, \ - NULL, \ - 0, \ - &fptrs, \ - 0, \ - #sname \ - ASN1_ITEM_end(sname) - -/* Macro to implement standard functions in terms of ASN1_ITEM structures */ - -# define IMPLEMENT_ASN1_FUNCTIONS(stname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, stname, stname) - -# define IMPLEMENT_ASN1_FUNCTIONS_name(stname, itname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, itname) - -# define IMPLEMENT_ASN1_FUNCTIONS_ENCODE_name(stname, itname) \ - IMPLEMENT_ASN1_FUNCTIONS_ENCODE_fname(stname, itname, itname) - -# define IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(stname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(static, stname, stname, stname) - -# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS(stname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, stname, stname) - -# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(pre, stname, itname, fname) \ - pre stname *fname##_new(void) \ - { \ - return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ - } \ - pre void fname##_free(stname *a) \ - { \ - ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ - } - -# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) \ - stname *fname##_new(void) \ - { \ - return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ - } \ - void fname##_free(stname *a) \ - { \ - ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ - } - -# define IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) - -# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ - stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ - { \ - return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ - } \ - int i2d_##fname(const stname *a, unsigned char **out) \ - { \ - return ASN1_item_i2d((const ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ - } - -# define IMPLEMENT_ASN1_NDEF_FUNCTION(stname) \ - int i2d_##stname##_NDEF(const stname *a, unsigned char **out) \ - { \ - return ASN1_item_ndef_i2d((const ASN1_VALUE *)a, out, ASN1_ITEM_rptr(stname));\ - } - -# define IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(stname) \ - static stname *d2i_##stname(stname **a, \ - const unsigned char **in, long len) \ - { \ - return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, \ - ASN1_ITEM_rptr(stname)); \ - } \ - static int i2d_##stname(const stname *a, unsigned char **out) \ - { \ - return ASN1_item_i2d((const ASN1_VALUE *)a, out, \ - ASN1_ITEM_rptr(stname)); \ - } - -# define IMPLEMENT_ASN1_DUP_FUNCTION(stname) \ - stname * stname##_dup(const stname *x) \ - { \ - return ASN1_item_dup(ASN1_ITEM_rptr(stname), x); \ - } - -# define IMPLEMENT_ASN1_PRINT_FUNCTION(stname) \ - IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, stname, stname) - -# define IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, itname, fname) \ - int fname##_print_ctx(BIO *out, const stname *x, int indent, \ - const ASN1_PCTX *pctx) \ - { \ - return ASN1_item_print(out, (const ASN1_VALUE *)x, indent, \ - ASN1_ITEM_rptr(itname), pctx); \ - } - -/* external definitions for primitive types */ - -DECLARE_ASN1_ITEM(ASN1_BOOLEAN) -DECLARE_ASN1_ITEM(ASN1_TBOOLEAN) -DECLARE_ASN1_ITEM(ASN1_FBOOLEAN) -DECLARE_ASN1_ITEM(ASN1_SEQUENCE) -DECLARE_ASN1_ITEM(CBIGNUM) -DECLARE_ASN1_ITEM(BIGNUM) -DECLARE_ASN1_ITEM(INT32) -DECLARE_ASN1_ITEM(ZINT32) -DECLARE_ASN1_ITEM(UINT32) -DECLARE_ASN1_ITEM(ZUINT32) -DECLARE_ASN1_ITEM(INT64) -DECLARE_ASN1_ITEM(ZINT64) -DECLARE_ASN1_ITEM(UINT64) -DECLARE_ASN1_ITEM(ZUINT64) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* - * LONG and ZLONG are strongly discouraged for use as stored data, as the - * underlying C type (long) differs in size depending on the architecture. - * They are designed with 32-bit longs in mind. - */ -DECLARE_ASN1_ITEM(LONG) -DECLARE_ASN1_ITEM(ZLONG) -# endif - -SKM_DEFINE_STACK_OF_INTERNAL(ASN1_VALUE, ASN1_VALUE, ASN1_VALUE) -#define sk_ASN1_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_VALUE_sk_type(sk)) -#define sk_ASN1_VALUE_value(sk, idx) ((ASN1_VALUE *)OPENSSL_sk_value(ossl_check_const_ASN1_VALUE_sk_type(sk), (idx))) -#define sk_ASN1_VALUE_new(cmp) ((STACK_OF(ASN1_VALUE) *)OPENSSL_sk_new(ossl_check_ASN1_VALUE_compfunc_type(cmp))) -#define sk_ASN1_VALUE_new_null() ((STACK_OF(ASN1_VALUE) *)OPENSSL_sk_new_null()) -#define sk_ASN1_VALUE_new_reserve(cmp, n) ((STACK_OF(ASN1_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_VALUE_compfunc_type(cmp), (n))) -#define sk_ASN1_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_VALUE_sk_type(sk), (n)) -#define sk_ASN1_VALUE_free(sk) OPENSSL_sk_free(ossl_check_ASN1_VALUE_sk_type(sk)) -#define sk_ASN1_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_VALUE_sk_type(sk)) -#define sk_ASN1_VALUE_delete(sk, i) ((ASN1_VALUE *)OPENSSL_sk_delete(ossl_check_ASN1_VALUE_sk_type(sk), (i))) -#define sk_ASN1_VALUE_delete_ptr(sk, ptr) ((ASN1_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr))) -#define sk_ASN1_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr)) -#define sk_ASN1_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr)) -#define sk_ASN1_VALUE_pop(sk) ((ASN1_VALUE *)OPENSSL_sk_pop(ossl_check_ASN1_VALUE_sk_type(sk))) -#define sk_ASN1_VALUE_shift(sk) ((ASN1_VALUE *)OPENSSL_sk_shift(ossl_check_ASN1_VALUE_sk_type(sk))) -#define sk_ASN1_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_freefunc_type(freefunc)) -#define sk_ASN1_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr), (idx)) -#define sk_ASN1_VALUE_set(sk, idx, ptr) ((ASN1_VALUE *)OPENSSL_sk_set(ossl_check_ASN1_VALUE_sk_type(sk), (idx), ossl_check_ASN1_VALUE_type(ptr))) -#define sk_ASN1_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr)) -#define sk_ASN1_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr)) -#define sk_ASN1_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr), pnum) -#define sk_ASN1_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_VALUE_sk_type(sk)) -#define sk_ASN1_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_VALUE_sk_type(sk)) -#define sk_ASN1_VALUE_dup(sk) ((STACK_OF(ASN1_VALUE) *)OPENSSL_sk_dup(ossl_check_const_ASN1_VALUE_sk_type(sk))) -#define sk_ASN1_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_copyfunc_type(copyfunc), ossl_check_ASN1_VALUE_freefunc_type(freefunc))) -#define sk_ASN1_VALUE_set_cmp_func(sk, cmp) ((sk_ASN1_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_compfunc_type(cmp))) - - - -/* Functions used internally by the ASN1 code */ - -int ASN1_item_ex_new(ASN1_VALUE **pval, const ASN1_ITEM *it); -void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it); - -int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, - const ASN1_ITEM *it, int tag, int aclass, char opt, - ASN1_TLC *ctx); - -int ASN1_item_ex_i2d(const ASN1_VALUE **pval, unsigned char **out, - const ASN1_ITEM *it, int tag, int aclass); - -/* Legacy compatibility */ -# define IMPLEMENT_ASN1_FUNCTIONS_const(name) IMPLEMENT_ASN1_FUNCTIONS(name) -# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/async.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/async.h deleted file mode 100644 index 826ffb9..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/async.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright 2015-2022 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#include - -#ifndef OPENSSL_ASYNC_H -# define OPENSSL_ASYNC_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_ASYNC_H -# endif - -#if defined(_WIN32) -# if defined(BASETYPES) || defined(_WINDEF_H) -/* application has to include to use this */ -#define OSSL_ASYNC_FD HANDLE -#define OSSL_BAD_ASYNC_FD INVALID_HANDLE_VALUE -# endif -#else -#define OSSL_ASYNC_FD int -#define OSSL_BAD_ASYNC_FD -1 -#endif -# include - - -# ifdef __cplusplus -extern "C" { -# endif - -typedef struct async_job_st ASYNC_JOB; -typedef struct async_wait_ctx_st ASYNC_WAIT_CTX; -typedef int (*ASYNC_callback_fn)(void *arg); - -#define ASYNC_ERR 0 -#define ASYNC_NO_JOBS 1 -#define ASYNC_PAUSE 2 -#define ASYNC_FINISH 3 - -#define ASYNC_STATUS_UNSUPPORTED 0 -#define ASYNC_STATUS_ERR 1 -#define ASYNC_STATUS_OK 2 -#define ASYNC_STATUS_EAGAIN 3 - -int ASYNC_init_thread(size_t max_size, size_t init_size); -void ASYNC_cleanup_thread(void); - -#ifdef OSSL_ASYNC_FD -ASYNC_WAIT_CTX *ASYNC_WAIT_CTX_new(void); -void ASYNC_WAIT_CTX_free(ASYNC_WAIT_CTX *ctx); -int ASYNC_WAIT_CTX_set_wait_fd(ASYNC_WAIT_CTX *ctx, const void *key, - OSSL_ASYNC_FD fd, - void *custom_data, - void (*cleanup)(ASYNC_WAIT_CTX *, const void *, - OSSL_ASYNC_FD, void *)); -int ASYNC_WAIT_CTX_get_fd(ASYNC_WAIT_CTX *ctx, const void *key, - OSSL_ASYNC_FD *fd, void **custom_data); -int ASYNC_WAIT_CTX_get_all_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD *fd, - size_t *numfds); -int ASYNC_WAIT_CTX_get_callback(ASYNC_WAIT_CTX *ctx, - ASYNC_callback_fn *callback, - void **callback_arg); -int ASYNC_WAIT_CTX_set_callback(ASYNC_WAIT_CTX *ctx, - ASYNC_callback_fn callback, - void *callback_arg); -int ASYNC_WAIT_CTX_set_status(ASYNC_WAIT_CTX *ctx, int status); -int ASYNC_WAIT_CTX_get_status(ASYNC_WAIT_CTX *ctx); -int ASYNC_WAIT_CTX_get_changed_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD *addfd, - size_t *numaddfds, OSSL_ASYNC_FD *delfd, - size_t *numdelfds); -int ASYNC_WAIT_CTX_clear_fd(ASYNC_WAIT_CTX *ctx, const void *key); -#endif - -int ASYNC_is_capable(void); - -typedef void *(*ASYNC_stack_alloc_fn)(size_t *num); -typedef void (*ASYNC_stack_free_fn)(void *addr); - -int ASYNC_set_mem_functions(ASYNC_stack_alloc_fn alloc_fn, - ASYNC_stack_free_fn free_fn); -void ASYNC_get_mem_functions(ASYNC_stack_alloc_fn *alloc_fn, - ASYNC_stack_free_fn *free_fn); - -int ASYNC_start_job(ASYNC_JOB **job, ASYNC_WAIT_CTX *ctx, int *ret, - int (*func)(void *), void *args, size_t size); -int ASYNC_pause_job(void); - -ASYNC_JOB *ASYNC_get_current_job(void); -ASYNC_WAIT_CTX *ASYNC_get_wait_ctx(ASYNC_JOB *job); -void ASYNC_block_pause(void); -void ASYNC_unblock_pause(void); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/asyncerr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/asyncerr.h deleted file mode 100644 index c093f7b..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/asyncerr.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_ASYNCERR_H -# define OPENSSL_ASYNCERR_H -# pragma once - -# include -# include -# include - - - -/* - * ASYNC reason codes. - */ -# define ASYNC_R_FAILED_TO_SET_POOL 101 -# define ASYNC_R_FAILED_TO_SWAP_CONTEXT 102 -# define ASYNC_R_INIT_FAILED 105 -# define ASYNC_R_INVALID_POOL_SIZE 103 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/bio.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/bio.h deleted file mode 100644 index 146d725..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/bio.h +++ /dev/null @@ -1,1022 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\bio.h.in - * - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - -#ifndef OPENSSL_BIO_H -# define OPENSSL_BIO_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_BIO_H -# endif - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* There are the classes of BIOs */ -# define BIO_TYPE_DESCRIPTOR 0x0100 /* socket, fd, connect or accept */ -# define BIO_TYPE_FILTER 0x0200 -# define BIO_TYPE_SOURCE_SINK 0x0400 - -/* These are the 'types' of BIOs */ -# define BIO_TYPE_NONE 0 -# define BIO_TYPE_MEM ( 1|BIO_TYPE_SOURCE_SINK) -# define BIO_TYPE_FILE ( 2|BIO_TYPE_SOURCE_SINK) - -# define BIO_TYPE_FD ( 4|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_SOCKET ( 5|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_NULL ( 6|BIO_TYPE_SOURCE_SINK) -# define BIO_TYPE_SSL ( 7|BIO_TYPE_FILTER) -# define BIO_TYPE_MD ( 8|BIO_TYPE_FILTER) -# define BIO_TYPE_BUFFER ( 9|BIO_TYPE_FILTER) -# define BIO_TYPE_CIPHER (10|BIO_TYPE_FILTER) -# define BIO_TYPE_BASE64 (11|BIO_TYPE_FILTER) -# define BIO_TYPE_CONNECT (12|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_ACCEPT (13|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) - -# define BIO_TYPE_NBIO_TEST (16|BIO_TYPE_FILTER)/* server proxy BIO */ -# define BIO_TYPE_NULL_FILTER (17|BIO_TYPE_FILTER) -# define BIO_TYPE_BIO (19|BIO_TYPE_SOURCE_SINK)/* half a BIO pair */ -# define BIO_TYPE_LINEBUFFER (20|BIO_TYPE_FILTER) -# define BIO_TYPE_DGRAM (21|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_ASN1 (22|BIO_TYPE_FILTER) -# define BIO_TYPE_COMP (23|BIO_TYPE_FILTER) -# ifndef OPENSSL_NO_SCTP -# define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# endif -# define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) -# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) -# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) - -/* Custom type starting index returned by BIO_get_new_index() */ -#define BIO_TYPE_START 128 -/* Custom type maximum index that can be returned by BIO_get_new_index() */ -#define BIO_TYPE_MASK 0xFF - -/* - * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. - * BIO_set_fp(in,stdin,BIO_NOCLOSE); - */ -# define BIO_NOCLOSE 0x00 -# define BIO_CLOSE 0x01 - -/* - * These are used in the following macros and are passed to BIO_ctrl() - */ -# define BIO_CTRL_RESET 1/* opt - rewind/zero etc */ -# define BIO_CTRL_EOF 2/* opt - are we at the eof */ -# define BIO_CTRL_INFO 3/* opt - extra tit-bits */ -# define BIO_CTRL_SET 4/* man - set the 'IO' type */ -# define BIO_CTRL_GET 5/* man - get the 'IO' type */ -# define BIO_CTRL_PUSH 6/* opt - internal, used to signify change */ -# define BIO_CTRL_POP 7/* opt - internal, used to signify change */ -# define BIO_CTRL_GET_CLOSE 8/* man - set the 'close' on free */ -# define BIO_CTRL_SET_CLOSE 9/* man - set the 'close' on free */ -# define BIO_CTRL_PENDING 10/* opt - is their more data buffered */ -# define BIO_CTRL_FLUSH 11/* opt - 'flush' buffered output */ -# define BIO_CTRL_DUP 12/* man - extra stuff for 'duped' BIO */ -# define BIO_CTRL_WPENDING 13/* opt - number of bytes still to write */ -# define BIO_CTRL_SET_CALLBACK 14/* opt - set callback function */ -# define BIO_CTRL_GET_CALLBACK 15/* opt - set callback function */ - -# define BIO_CTRL_PEEK 29/* BIO_f_buffer special */ -# define BIO_CTRL_SET_FILENAME 30/* BIO_s_file special */ - -/* dgram BIO stuff */ -# define BIO_CTRL_DGRAM_CONNECT 31/* BIO dgram special */ -# define BIO_CTRL_DGRAM_SET_CONNECTED 32/* allow for an externally connected - * socket to be passed in */ -# define BIO_CTRL_DGRAM_SET_RECV_TIMEOUT 33/* setsockopt, essentially */ -# define BIO_CTRL_DGRAM_GET_RECV_TIMEOUT 34/* getsockopt, essentially */ -# define BIO_CTRL_DGRAM_SET_SEND_TIMEOUT 35/* setsockopt, essentially */ -# define BIO_CTRL_DGRAM_GET_SEND_TIMEOUT 36/* getsockopt, essentially */ - -# define BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP 37/* flag whether the last */ -# define BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP 38/* I/O operation timed out */ - -/* #ifdef IP_MTU_DISCOVER */ -# define BIO_CTRL_DGRAM_MTU_DISCOVER 39/* set DF bit on egress packets */ -/* #endif */ - -# define BIO_CTRL_DGRAM_QUERY_MTU 40/* as kernel for current MTU */ -# define BIO_CTRL_DGRAM_GET_FALLBACK_MTU 47 -# define BIO_CTRL_DGRAM_GET_MTU 41/* get cached value for MTU */ -# define BIO_CTRL_DGRAM_SET_MTU 42/* set cached value for MTU. - * want to use this if asking - * the kernel fails */ - -# define BIO_CTRL_DGRAM_MTU_EXCEEDED 43/* check whether the MTU was - * exceed in the previous write - * operation */ - -# define BIO_CTRL_DGRAM_GET_PEER 46 -# define BIO_CTRL_DGRAM_SET_PEER 44/* Destination for the data */ - -# define BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT 45/* Next DTLS handshake timeout - * to adjust socket timeouts */ -# define BIO_CTRL_DGRAM_SET_DONT_FRAG 48 - -# define BIO_CTRL_DGRAM_GET_MTU_OVERHEAD 49 - -/* Deliberately outside of OPENSSL_NO_SCTP - used in bss_dgram.c */ -# define BIO_CTRL_DGRAM_SCTP_SET_IN_HANDSHAKE 50 -# ifndef OPENSSL_NO_SCTP -/* SCTP stuff */ -# define BIO_CTRL_DGRAM_SCTP_ADD_AUTH_KEY 51 -# define BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY 52 -# define BIO_CTRL_DGRAM_SCTP_AUTH_CCS_RCVD 53 -# define BIO_CTRL_DGRAM_SCTP_GET_SNDINFO 60 -# define BIO_CTRL_DGRAM_SCTP_SET_SNDINFO 61 -# define BIO_CTRL_DGRAM_SCTP_GET_RCVINFO 62 -# define BIO_CTRL_DGRAM_SCTP_SET_RCVINFO 63 -# define BIO_CTRL_DGRAM_SCTP_GET_PRINFO 64 -# define BIO_CTRL_DGRAM_SCTP_SET_PRINFO 65 -# define BIO_CTRL_DGRAM_SCTP_SAVE_SHUTDOWN 70 -# endif - -# define BIO_CTRL_DGRAM_SET_PEEK_MODE 71 - -/* - * internal BIO: - * # define BIO_CTRL_SET_KTLS_SEND 72 - * # define BIO_CTRL_SET_KTLS_SEND_CTRL_MSG 74 - * # define BIO_CTRL_CLEAR_KTLS_CTRL_MSG 75 - */ - -# define BIO_CTRL_GET_KTLS_SEND 73 -# define BIO_CTRL_GET_KTLS_RECV 76 - -# define BIO_CTRL_DGRAM_SCTP_WAIT_FOR_DRY 77 -# define BIO_CTRL_DGRAM_SCTP_MSG_WAITING 78 - -/* BIO_f_prefix controls */ -# define BIO_CTRL_SET_PREFIX 79 -# define BIO_CTRL_SET_INDENT 80 -# define BIO_CTRL_GET_INDENT 81 - -# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 -# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 -# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 -# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 -# define BIO_CTRL_DGRAM_GET_CAPS 86 -# define BIO_CTRL_DGRAM_SET_CAPS 87 -# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 -# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 - -/* - * internal BIO: - * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 - */ - -# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 -# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 -# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 -# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 - -# define BIO_DGRAM_CAP_NONE 0U -# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) -# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) -# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) -# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) - -# ifndef OPENSSL_NO_KTLS -# define BIO_get_ktls_send(b) \ - (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) -# define BIO_get_ktls_recv(b) \ - (BIO_ctrl(b, BIO_CTRL_GET_KTLS_RECV, 0, NULL) > 0) -# else -# define BIO_get_ktls_send(b) (0) -# define BIO_get_ktls_recv(b) (0) -# endif - -/* modifiers */ -# define BIO_FP_READ 0x02 -# define BIO_FP_WRITE 0x04 -# define BIO_FP_APPEND 0x08 -# define BIO_FP_TEXT 0x10 - -# define BIO_FLAGS_READ 0x01 -# define BIO_FLAGS_WRITE 0x02 -# define BIO_FLAGS_IO_SPECIAL 0x04 -# define BIO_FLAGS_RWS (BIO_FLAGS_READ|BIO_FLAGS_WRITE|BIO_FLAGS_IO_SPECIAL) -# define BIO_FLAGS_SHOULD_RETRY 0x08 -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* This #define was replaced by an internal constant and should not be used. */ -# define BIO_FLAGS_UPLINK 0 -# endif - -# define BIO_FLAGS_BASE64_NO_NL 0x100 - -/* - * This is used with memory BIOs: - * BIO_FLAGS_MEM_RDONLY means we shouldn't free up or change the data in any way; - * BIO_FLAGS_NONCLEAR_RST means we shouldn't clear data on reset. - */ -# define BIO_FLAGS_MEM_RDONLY 0x200 -# define BIO_FLAGS_NONCLEAR_RST 0x400 -# define BIO_FLAGS_IN_EOF 0x800 - -/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ - -typedef union bio_addr_st BIO_ADDR; -typedef struct bio_addrinfo_st BIO_ADDRINFO; - -int BIO_get_new_index(void); -void BIO_set_flags(BIO *b, int flags); -int BIO_test_flags(const BIO *b, int flags); -void BIO_clear_flags(BIO *b, int flags); - -# define BIO_get_flags(b) BIO_test_flags(b, ~(0x0)) -# define BIO_set_retry_special(b) \ - BIO_set_flags(b, (BIO_FLAGS_IO_SPECIAL|BIO_FLAGS_SHOULD_RETRY)) -# define BIO_set_retry_read(b) \ - BIO_set_flags(b, (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY)) -# define BIO_set_retry_write(b) \ - BIO_set_flags(b, (BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY)) - -/* These are normally used internally in BIOs */ -# define BIO_clear_retry_flags(b) \ - BIO_clear_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) -# define BIO_get_retry_flags(b) \ - BIO_test_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) - -/* These should be used by the application to tell why we should retry */ -# define BIO_should_read(a) BIO_test_flags(a, BIO_FLAGS_READ) -# define BIO_should_write(a) BIO_test_flags(a, BIO_FLAGS_WRITE) -# define BIO_should_io_special(a) BIO_test_flags(a, BIO_FLAGS_IO_SPECIAL) -# define BIO_retry_type(a) BIO_test_flags(a, BIO_FLAGS_RWS) -# define BIO_should_retry(a) BIO_test_flags(a, BIO_FLAGS_SHOULD_RETRY) - -/* - * The next three are used in conjunction with the BIO_should_io_special() - * condition. After this returns true, BIO *BIO_get_retry_BIO(BIO *bio, int - * *reason); will walk the BIO stack and return the 'reason' for the special - * and the offending BIO. Given a BIO, BIO_get_retry_reason(bio) will return - * the code. - */ -/* - * Returned from the SSL bio when the certificate retrieval code had an error - */ -# define BIO_RR_SSL_X509_LOOKUP 0x01 -/* Returned from the connect BIO when a connect would have blocked */ -# define BIO_RR_CONNECT 0x02 -/* Returned from the accept BIO when an accept would have blocked */ -# define BIO_RR_ACCEPT 0x03 - -/* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 -# define BIO_CB_RECVMMSG 0x07 -# define BIO_CB_SENDMMSG 0x08 - -/* - * The callback is called before and after the underling operation, The - * BIO_CB_RETURN flag indicates if it is after the call - */ -# define BIO_CB_RETURN 0x80 -# define BIO_CB_return(a) ((a)|BIO_CB_RETURN) -# define BIO_cb_pre(a) (!((a)&BIO_CB_RETURN)) -# define BIO_cb_post(a) ((a)&BIO_CB_RETURN) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -typedef long (*BIO_callback_fn)(BIO *b, int oper, const char *argp, int argi, - long argl, long ret); -OSSL_DEPRECATEDIN_3_0 BIO_callback_fn BIO_get_callback(const BIO *b); -OSSL_DEPRECATEDIN_3_0 void BIO_set_callback(BIO *b, BIO_callback_fn callback); -OSSL_DEPRECATEDIN_3_0 long BIO_debug_callback(BIO *bio, int cmd, - const char *argp, int argi, - long argl, long ret); -# endif - -typedef long (*BIO_callback_fn_ex)(BIO *b, int oper, const char *argp, - size_t len, int argi, - long argl, int ret, size_t *processed); -BIO_callback_fn_ex BIO_get_callback_ex(const BIO *b); -void BIO_set_callback_ex(BIO *b, BIO_callback_fn_ex callback); -long BIO_debug_callback_ex(BIO *bio, int oper, const char *argp, size_t len, - int argi, long argl, int ret, size_t *processed); - -char *BIO_get_callback_arg(const BIO *b); -void BIO_set_callback_arg(BIO *b, char *arg); - -typedef struct bio_method_st BIO_METHOD; - -const char *BIO_method_name(const BIO *b); -int BIO_method_type(const BIO *b); - -typedef int BIO_info_cb(BIO *, int, int); -typedef BIO_info_cb bio_info_cb; /* backward compatibility */ - -SKM_DEFINE_STACK_OF_INTERNAL(BIO, BIO, BIO) -#define sk_BIO_num(sk) OPENSSL_sk_num(ossl_check_const_BIO_sk_type(sk)) -#define sk_BIO_value(sk, idx) ((BIO *)OPENSSL_sk_value(ossl_check_const_BIO_sk_type(sk), (idx))) -#define sk_BIO_new(cmp) ((STACK_OF(BIO) *)OPENSSL_sk_new(ossl_check_BIO_compfunc_type(cmp))) -#define sk_BIO_new_null() ((STACK_OF(BIO) *)OPENSSL_sk_new_null()) -#define sk_BIO_new_reserve(cmp, n) ((STACK_OF(BIO) *)OPENSSL_sk_new_reserve(ossl_check_BIO_compfunc_type(cmp), (n))) -#define sk_BIO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_BIO_sk_type(sk), (n)) -#define sk_BIO_free(sk) OPENSSL_sk_free(ossl_check_BIO_sk_type(sk)) -#define sk_BIO_zero(sk) OPENSSL_sk_zero(ossl_check_BIO_sk_type(sk)) -#define sk_BIO_delete(sk, i) ((BIO *)OPENSSL_sk_delete(ossl_check_BIO_sk_type(sk), (i))) -#define sk_BIO_delete_ptr(sk, ptr) ((BIO *)OPENSSL_sk_delete_ptr(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr))) -#define sk_BIO_push(sk, ptr) OPENSSL_sk_push(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr)) -#define sk_BIO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr)) -#define sk_BIO_pop(sk) ((BIO *)OPENSSL_sk_pop(ossl_check_BIO_sk_type(sk))) -#define sk_BIO_shift(sk) ((BIO *)OPENSSL_sk_shift(ossl_check_BIO_sk_type(sk))) -#define sk_BIO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_BIO_sk_type(sk), ossl_check_BIO_freefunc_type(freefunc)) -#define sk_BIO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr), (idx)) -#define sk_BIO_set(sk, idx, ptr) ((BIO *)OPENSSL_sk_set(ossl_check_BIO_sk_type(sk), (idx), ossl_check_BIO_type(ptr))) -#define sk_BIO_find(sk, ptr) OPENSSL_sk_find(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr)) -#define sk_BIO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr)) -#define sk_BIO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr), pnum) -#define sk_BIO_sort(sk) OPENSSL_sk_sort(ossl_check_BIO_sk_type(sk)) -#define sk_BIO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_BIO_sk_type(sk)) -#define sk_BIO_dup(sk) ((STACK_OF(BIO) *)OPENSSL_sk_dup(ossl_check_const_BIO_sk_type(sk))) -#define sk_BIO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(BIO) *)OPENSSL_sk_deep_copy(ossl_check_const_BIO_sk_type(sk), ossl_check_BIO_copyfunc_type(copyfunc), ossl_check_BIO_freefunc_type(freefunc))) -#define sk_BIO_set_cmp_func(sk, cmp) ((sk_BIO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_BIO_sk_type(sk), ossl_check_BIO_compfunc_type(cmp))) - - - -/* Prefix and suffix callback in ASN1 BIO */ -typedef int asn1_ps_func (BIO *b, unsigned char **pbuf, int *plen, - void *parg); - -typedef void (*BIO_dgram_sctp_notification_handler_fn) (BIO *b, - void *context, - void *buf); -# ifndef OPENSSL_NO_SCTP -/* SCTP parameter structs */ -struct bio_dgram_sctp_sndinfo { - uint16_t snd_sid; - uint16_t snd_flags; - uint32_t snd_ppid; - uint32_t snd_context; -}; - -struct bio_dgram_sctp_rcvinfo { - uint16_t rcv_sid; - uint16_t rcv_ssn; - uint16_t rcv_flags; - uint32_t rcv_ppid; - uint32_t rcv_tsn; - uint32_t rcv_cumtsn; - uint32_t rcv_context; -}; - -struct bio_dgram_sctp_prinfo { - uint16_t pr_policy; - uint32_t pr_value; -}; -# endif - -/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ -typedef struct bio_msg_st { - void *data; - size_t data_len; - BIO_ADDR *peer, *local; - uint64_t flags; -} BIO_MSG; - -typedef struct bio_mmsg_cb_args_st { - BIO_MSG *msg; - size_t stride, num_msg; - uint64_t flags; - size_t *msgs_processed; -} BIO_MMSG_CB_ARGS; - -#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 -#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 -#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 -#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 - -typedef struct bio_poll_descriptor_st { - uint32_t type; - union { - int fd; - void *custom; - uintptr_t custom_ui; - SSL *ssl; - } value; -} BIO_POLL_DESCRIPTOR; - -/* - * #define BIO_CONN_get_param_hostname BIO_ctrl - */ - -# define BIO_C_SET_CONNECT 100 -# define BIO_C_DO_STATE_MACHINE 101 -# define BIO_C_SET_NBIO 102 -/* # define BIO_C_SET_PROXY_PARAM 103 */ -# define BIO_C_SET_FD 104 -# define BIO_C_GET_FD 105 -# define BIO_C_SET_FILE_PTR 106 -# define BIO_C_GET_FILE_PTR 107 -# define BIO_C_SET_FILENAME 108 -# define BIO_C_SET_SSL 109 -# define BIO_C_GET_SSL 110 -# define BIO_C_SET_MD 111 -# define BIO_C_GET_MD 112 -# define BIO_C_GET_CIPHER_STATUS 113 -# define BIO_C_SET_BUF_MEM 114 -# define BIO_C_GET_BUF_MEM_PTR 115 -# define BIO_C_GET_BUFF_NUM_LINES 116 -# define BIO_C_SET_BUFF_SIZE 117 -# define BIO_C_SET_ACCEPT 118 -# define BIO_C_SSL_MODE 119 -# define BIO_C_GET_MD_CTX 120 -/* # define BIO_C_GET_PROXY_PARAM 121 */ -# define BIO_C_SET_BUFF_READ_DATA 122/* data to read first */ -# define BIO_C_GET_CONNECT 123 -# define BIO_C_GET_ACCEPT 124 -# define BIO_C_SET_SSL_RENEGOTIATE_BYTES 125 -# define BIO_C_GET_SSL_NUM_RENEGOTIATES 126 -# define BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT 127 -# define BIO_C_FILE_SEEK 128 -# define BIO_C_GET_CIPHER_CTX 129 -# define BIO_C_SET_BUF_MEM_EOF_RETURN 130/* return end of input - * value */ -# define BIO_C_SET_BIND_MODE 131 -# define BIO_C_GET_BIND_MODE 132 -# define BIO_C_FILE_TELL 133 -# define BIO_C_GET_SOCKS 134 -# define BIO_C_SET_SOCKS 135 - -# define BIO_C_SET_WRITE_BUF_SIZE 136/* for BIO_s_bio */ -# define BIO_C_GET_WRITE_BUF_SIZE 137 -# define BIO_C_MAKE_BIO_PAIR 138 -# define BIO_C_DESTROY_BIO_PAIR 139 -# define BIO_C_GET_WRITE_GUARANTEE 140 -# define BIO_C_GET_READ_REQUEST 141 -# define BIO_C_SHUTDOWN_WR 142 -# define BIO_C_NREAD0 143 -# define BIO_C_NREAD 144 -# define BIO_C_NWRITE0 145 -# define BIO_C_NWRITE 146 -# define BIO_C_RESET_READ_REQUEST 147 -# define BIO_C_SET_MD_CTX 148 - -# define BIO_C_SET_PREFIX 149 -# define BIO_C_GET_PREFIX 150 -# define BIO_C_SET_SUFFIX 151 -# define BIO_C_GET_SUFFIX 152 - -# define BIO_C_SET_EX_ARG 153 -# define BIO_C_GET_EX_ARG 154 - -# define BIO_C_SET_CONNECT_MODE 155 - -# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ - -# define BIO_C_SET_SOCK_TYPE 157 -# define BIO_C_GET_SOCK_TYPE 158 -# define BIO_C_GET_DGRAM_BIO 159 - -# define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) -# define BIO_get_app_data(s) BIO_get_ex_data(s,0) - -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) -# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) - -# ifndef OPENSSL_NO_SOCK -/* IP families we support, for BIO_s_connect() and BIO_s_accept() */ -/* Note: the underlying operating system may not support some of them */ -# define BIO_FAMILY_IPV4 4 -# define BIO_FAMILY_IPV6 6 -# define BIO_FAMILY_IPANY 256 - -/* BIO_s_connect() */ -# define BIO_set_conn_hostname(b,name) BIO_ctrl(b,BIO_C_SET_CONNECT,0, \ - (char *)(name)) -# define BIO_set_conn_port(b,port) BIO_ctrl(b,BIO_C_SET_CONNECT,1, \ - (char *)(port)) -# define BIO_set_conn_address(b,addr) BIO_ctrl(b,BIO_C_SET_CONNECT,2, \ - (char *)(addr)) -# define BIO_set_conn_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_CONNECT,3,f) -# define BIO_get_conn_hostname(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0)) -# define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) -# define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) -# define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) -# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) -# define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) -# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) -# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) -# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) - -/* BIO_s_accept() */ -# define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ - (char *)(name)) -# define BIO_set_accept_port(b,port) BIO_ctrl(b,BIO_C_SET_ACCEPT,1, \ - (char *)(port)) -# define BIO_get_accept_name(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0)) -# define BIO_get_accept_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,1)) -# define BIO_get_peer_name(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,2)) -# define BIO_get_peer_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,3)) -/* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */ -# define BIO_set_nbio_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,2,(n)?(void *)"a":NULL) -# define BIO_set_accept_bios(b,bio) BIO_ctrl(b,BIO_C_SET_ACCEPT,3, \ - (char *)(bio)) -# define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) -# define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) -# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) - -/* Aliases kept for backward compatibility */ -# define BIO_BIND_NORMAL 0 -# define BIO_BIND_REUSEADDR BIO_SOCK_REUSEADDR -# define BIO_BIND_REUSEADDR_IF_UNUSED BIO_SOCK_REUSEADDR -# define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL) -# define BIO_get_bind_mode(b) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL) -# endif /* OPENSSL_NO_SOCK */ - -# define BIO_do_connect(b) BIO_do_handshake(b) -# define BIO_do_accept(b) BIO_do_handshake(b) - -# define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL) - -/* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */ -# define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) -# define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)(c)) - -/* BIO_s_file() */ -# define BIO_set_fp(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)(fp)) -# define BIO_get_fp(b,fpp) BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)(fpp)) - -/* BIO_s_fd() and BIO_s_file() */ -# define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL) -# define BIO_tell(b) (int)BIO_ctrl(b,BIO_C_FILE_TELL,0,NULL) - -/* - * name is cast to lose const, but might be better to route through a - * function so we can do it safely - */ -# ifdef CONST_STRICT -/* - * If you are wondering why this isn't defined, its because CONST_STRICT is - * purely a compile-time kludge to allow const to be checked. - */ -int BIO_read_filename(BIO *b, const char *name); -# else -# define BIO_read_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_READ,(char *)(name)) -# endif -# define BIO_write_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_WRITE,name) -# define BIO_append_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_APPEND,name) -# define BIO_rw_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_READ|BIO_FP_WRITE,name) - -/* - * WARNING WARNING, this ups the reference count on the read bio of the SSL - * structure. This is because the ssl read BIO is now pointed to by the - * next_bio field in the bio. So when you free the BIO, make sure you are - * doing a BIO_free_all() to catch the underlying BIO. - */ -# define BIO_set_ssl(b,ssl,c) BIO_ctrl(b,BIO_C_SET_SSL,c,(char *)(ssl)) -# define BIO_get_ssl(b,sslp) BIO_ctrl(b,BIO_C_GET_SSL,0,(char *)(sslp)) -# define BIO_set_ssl_mode(b,client) BIO_ctrl(b,BIO_C_SSL_MODE,client,NULL) -# define BIO_set_ssl_renegotiate_bytes(b,num) \ - BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_BYTES,num,NULL) -# define BIO_get_num_renegotiates(b) \ - BIO_ctrl(b,BIO_C_GET_SSL_NUM_RENEGOTIATES,0,NULL) -# define BIO_set_ssl_renegotiate_timeout(b,seconds) \ - BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT,seconds,NULL) - -/* defined in evp.h */ -/* #define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,1,(char *)(md)) */ - -# define BIO_get_mem_data(b,pp) BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)(pp)) -# define BIO_set_mem_buf(b,bm,c) BIO_ctrl(b,BIO_C_SET_BUF_MEM,c,(char *)(bm)) -# define BIO_get_mem_ptr(b,pp) BIO_ctrl(b,BIO_C_GET_BUF_MEM_PTR,0, \ - (char *)(pp)) -# define BIO_set_mem_eof_return(b,v) \ - BIO_ctrl(b,BIO_C_SET_BUF_MEM_EOF_RETURN,v,NULL) - -/* For the BIO_f_buffer() type */ -# define BIO_get_buffer_num_lines(b) BIO_ctrl(b,BIO_C_GET_BUFF_NUM_LINES,0,NULL) -# define BIO_set_buffer_size(b,size) BIO_ctrl(b,BIO_C_SET_BUFF_SIZE,size,NULL) -# define BIO_set_read_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,0) -# define BIO_set_write_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,1) -# define BIO_set_buffer_read_data(b,buf,num) BIO_ctrl(b,BIO_C_SET_BUFF_READ_DATA,num,buf) - -/* Don't use the next one unless you know what you are doing :-) */ -# define BIO_dup_state(b,ret) BIO_ctrl(b,BIO_CTRL_DUP,0,(char *)(ret)) - -# define BIO_reset(b) (int)BIO_ctrl(b,BIO_CTRL_RESET,0,NULL) -# define BIO_eof(b) (int)BIO_ctrl(b,BIO_CTRL_EOF,0,NULL) -# define BIO_set_close(b,c) (int)BIO_ctrl(b,BIO_CTRL_SET_CLOSE,(c),NULL) -# define BIO_get_close(b) (int)BIO_ctrl(b,BIO_CTRL_GET_CLOSE,0,NULL) -# define BIO_pending(b) (int)BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL) -# define BIO_wpending(b) (int)BIO_ctrl(b,BIO_CTRL_WPENDING,0,NULL) -/* ...pending macros have inappropriate return type */ -size_t BIO_ctrl_pending(BIO *b); -size_t BIO_ctrl_wpending(BIO *b); -# define BIO_flush(b) (int)BIO_ctrl(b,BIO_CTRL_FLUSH,0,NULL) -# define BIO_get_info_callback(b,cbp) (int)BIO_ctrl(b,BIO_CTRL_GET_CALLBACK,0, \ - cbp) -# define BIO_set_info_callback(b,cb) (int)BIO_callback_ctrl(b,BIO_CTRL_SET_CALLBACK,cb) - -/* For the BIO_f_buffer() type */ -# define BIO_buffer_get_num_lines(b) BIO_ctrl(b,BIO_CTRL_GET,0,NULL) -# define BIO_buffer_peek(b,s,l) BIO_ctrl(b,BIO_CTRL_PEEK,(l),(s)) - -/* For BIO_s_bio() */ -# define BIO_set_write_buf_size(b,size) (int)BIO_ctrl(b,BIO_C_SET_WRITE_BUF_SIZE,size,NULL) -# define BIO_get_write_buf_size(b,size) (size_t)BIO_ctrl(b,BIO_C_GET_WRITE_BUF_SIZE,size,NULL) -# define BIO_make_bio_pair(b1,b2) (int)BIO_ctrl(b1,BIO_C_MAKE_BIO_PAIR,0,b2) -# define BIO_destroy_bio_pair(b) (int)BIO_ctrl(b,BIO_C_DESTROY_BIO_PAIR,0,NULL) -# define BIO_shutdown_wr(b) (int)BIO_ctrl(b, BIO_C_SHUTDOWN_WR, 0, NULL) -/* macros with inappropriate type -- but ...pending macros use int too: */ -# define BIO_get_write_guarantee(b) (int)BIO_ctrl(b,BIO_C_GET_WRITE_GUARANTEE,0,NULL) -# define BIO_get_read_request(b) (int)BIO_ctrl(b,BIO_C_GET_READ_REQUEST,0,NULL) -size_t BIO_ctrl_get_write_guarantee(BIO *b); -size_t BIO_ctrl_get_read_request(BIO *b); -int BIO_ctrl_reset_read_request(BIO *b); - -/* ctrl macros for dgram */ -# define BIO_ctrl_dgram_connect(b,peer) \ - (int)BIO_ctrl(b,BIO_CTRL_DGRAM_CONNECT,0, (char *)(peer)) -# define BIO_ctrl_set_connected(b,peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_CONNECTED, 0, (char *)(peer)) -# define BIO_dgram_recv_timedout(b) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP, 0, NULL) -# define BIO_dgram_send_timedout(b) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP, 0, NULL) -# define BIO_dgram_get_peer(b,peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) -# define BIO_dgram_set_peer(b,peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) -# define BIO_dgram_detect_peer_addr(b,peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) -# define BIO_dgram_get_mtu_overhead(b) \ - (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) -# define BIO_dgram_get_local_addr_cap(b) \ - (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) -# define BIO_dgram_get_local_addr_enable(b, penable) \ - (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) -# define BIO_dgram_set_local_addr_enable(b, enable) \ - (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) -# define BIO_dgram_get_effective_caps(b) \ - (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) -# define BIO_dgram_get_caps(b) \ - (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) -# define BIO_dgram_set_caps(b, caps) \ - (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) -# define BIO_dgram_get_no_trunc(b) \ - (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) -# define BIO_dgram_set_no_trunc(b, enable) \ - (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) -# define BIO_dgram_get_mtu(b) \ - (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) -# define BIO_dgram_set_mtu(b, mtu) \ - (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) -# define BIO_dgram_set0_local_addr(b, addr) \ - (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) - -/* ctrl macros for BIO_f_prefix */ -# define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) -# define BIO_set_indent(b,i) BIO_ctrl((b), BIO_CTRL_SET_INDENT, (i), NULL) -# define BIO_get_indent(b) BIO_ctrl((b), BIO_CTRL_GET_INDENT, 0, NULL) - -#define BIO_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_BIO, l, p, newf, dupf, freef) -int BIO_set_ex_data(BIO *bio, int idx, void *data); -void *BIO_get_ex_data(const BIO *bio, int idx); -uint64_t BIO_number_read(BIO *bio); -uint64_t BIO_number_written(BIO *bio); - -/* For BIO_f_asn1() */ -int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, - asn1_ps_func *prefix_free); -int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix, - asn1_ps_func **pprefix_free); -int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, - asn1_ps_func *suffix_free); -int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, - asn1_ps_func **psuffix_free); - -const BIO_METHOD *BIO_s_file(void); -BIO *BIO_new_file(const char *filename, const char *mode); -BIO *BIO_new_from_core_bio(OSSL_LIB_CTX *libctx, OSSL_CORE_BIO *corebio); -# ifndef OPENSSL_NO_STDIO -BIO *BIO_new_fp(FILE *stream, int close_flag); -# endif -BIO *BIO_new_ex(OSSL_LIB_CTX *libctx, const BIO_METHOD *method); -BIO *BIO_new(const BIO_METHOD *type); -int BIO_free(BIO *a); -void BIO_set_data(BIO *a, void *ptr); -void *BIO_get_data(BIO *a); -void BIO_set_init(BIO *a, int init); -int BIO_get_init(BIO *a); -void BIO_set_shutdown(BIO *a, int shut); -int BIO_get_shutdown(BIO *a); -void BIO_vfree(BIO *a); -int BIO_up_ref(BIO *a); -int BIO_read(BIO *b, void *data, int dlen); -int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); -__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, - size_t stride, size_t num_msg, uint64_t flags, - size_t *msgs_processed); -int BIO_gets(BIO *bp, char *buf, int size); -int BIO_get_line(BIO *bio, char *buf, int size); -int BIO_write(BIO *b, const void *data, int dlen); -int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); -__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, - size_t stride, size_t num_msg, uint64_t flags, - size_t *msgs_processed); -__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); -__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); -int BIO_puts(BIO *bp, const char *buf); -int BIO_indent(BIO *b, int indent, int max); -long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); -long BIO_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp); -void *BIO_ptr_ctrl(BIO *bp, int cmd, long larg); -long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg); -BIO *BIO_push(BIO *b, BIO *append); -BIO *BIO_pop(BIO *b); -void BIO_free_all(BIO *a); -BIO *BIO_find_type(BIO *b, int bio_type); -BIO *BIO_next(BIO *b); -void BIO_set_next(BIO *b, BIO *next); -BIO *BIO_get_retry_BIO(BIO *bio, int *reason); -int BIO_get_retry_reason(BIO *bio); -void BIO_set_retry_reason(BIO *bio, int reason); -BIO *BIO_dup_chain(BIO *in); - -int BIO_nread0(BIO *bio, char **buf); -int BIO_nread(BIO *bio, char **buf, int num); -int BIO_nwrite0(BIO *bio, char **buf); -int BIO_nwrite(BIO *bio, char **buf, int num); - -const BIO_METHOD *BIO_s_mem(void); -# ifndef OPENSSL_NO_DGRAM -const BIO_METHOD *BIO_s_dgram_mem(void); -# endif -const BIO_METHOD *BIO_s_secmem(void); -BIO *BIO_new_mem_buf(const void *buf, int len); -# ifndef OPENSSL_NO_SOCK -const BIO_METHOD *BIO_s_socket(void); -const BIO_METHOD *BIO_s_connect(void); -const BIO_METHOD *BIO_s_accept(void); -# endif -const BIO_METHOD *BIO_s_fd(void); -const BIO_METHOD *BIO_s_log(void); -const BIO_METHOD *BIO_s_bio(void); -const BIO_METHOD *BIO_s_null(void); -const BIO_METHOD *BIO_f_null(void); -const BIO_METHOD *BIO_f_buffer(void); -const BIO_METHOD *BIO_f_readbuffer(void); -const BIO_METHOD *BIO_f_linebuffer(void); -const BIO_METHOD *BIO_f_nbio_test(void); -const BIO_METHOD *BIO_f_prefix(void); -const BIO_METHOD *BIO_s_core(void); -# ifndef OPENSSL_NO_DGRAM -const BIO_METHOD *BIO_s_dgram_pair(void); -const BIO_METHOD *BIO_s_datagram(void); -int BIO_dgram_non_fatal_error(int error); -BIO *BIO_new_dgram(int fd, int close_flag); -# ifndef OPENSSL_NO_SCTP -const BIO_METHOD *BIO_s_datagram_sctp(void); -BIO *BIO_new_dgram_sctp(int fd, int close_flag); -int BIO_dgram_is_sctp(BIO *bio); -int BIO_dgram_sctp_notification_cb(BIO *b, - BIO_dgram_sctp_notification_handler_fn handle_notifications, - void *context); -int BIO_dgram_sctp_wait_for_dry(BIO *b); -int BIO_dgram_sctp_msg_waiting(BIO *b); -# endif -# endif - -# ifndef OPENSSL_NO_SOCK -int BIO_sock_should_retry(int i); -int BIO_sock_non_fatal_error(int error); -int BIO_err_is_non_fatal(unsigned int errcode); -int BIO_socket_wait(int fd, int for_read, time_t max_time); -# endif -int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); -int BIO_do_connect_retry(BIO *bio, int timeout, int nap_milliseconds); - -int BIO_fd_should_retry(int i); -int BIO_fd_non_fatal_error(int error); -int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u), - void *u, const void *s, int len); -int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), - void *u, const void *s, int len, int indent); -int BIO_dump(BIO *b, const void *bytes, int len); -int BIO_dump_indent(BIO *b, const void *bytes, int len, int indent); -# ifndef OPENSSL_NO_STDIO -int BIO_dump_fp(FILE *fp, const void *s, int len); -int BIO_dump_indent_fp(FILE *fp, const void *s, int len, int indent); -# endif -int BIO_hex_string(BIO *out, int indent, int width, const void *data, - int datalen); - -# ifndef OPENSSL_NO_SOCK -BIO_ADDR *BIO_ADDR_new(void); -int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); -BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); -int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, - const void *where, size_t wherelen, unsigned short port); -void BIO_ADDR_free(BIO_ADDR *); -void BIO_ADDR_clear(BIO_ADDR *ap); -int BIO_ADDR_family(const BIO_ADDR *ap); -int BIO_ADDR_rawaddress(const BIO_ADDR *ap, void *p, size_t *l); -unsigned short BIO_ADDR_rawport(const BIO_ADDR *ap); -char *BIO_ADDR_hostname_string(const BIO_ADDR *ap, int numeric); -char *BIO_ADDR_service_string(const BIO_ADDR *ap, int numeric); -char *BIO_ADDR_path_string(const BIO_ADDR *ap); - -const BIO_ADDRINFO *BIO_ADDRINFO_next(const BIO_ADDRINFO *bai); -int BIO_ADDRINFO_family(const BIO_ADDRINFO *bai); -int BIO_ADDRINFO_socktype(const BIO_ADDRINFO *bai); -int BIO_ADDRINFO_protocol(const BIO_ADDRINFO *bai); -const BIO_ADDR *BIO_ADDRINFO_address(const BIO_ADDRINFO *bai); -void BIO_ADDRINFO_free(BIO_ADDRINFO *bai); - -enum BIO_hostserv_priorities { - BIO_PARSE_PRIO_HOST, BIO_PARSE_PRIO_SERV -}; -int BIO_parse_hostserv(const char *hostserv, char **host, char **service, - enum BIO_hostserv_priorities hostserv_prio); -enum BIO_lookup_type { - BIO_LOOKUP_CLIENT, BIO_LOOKUP_SERVER -}; -int BIO_lookup(const char *host, const char *service, - enum BIO_lookup_type lookup_type, - int family, int socktype, BIO_ADDRINFO **res); -int BIO_lookup_ex(const char *host, const char *service, - int lookup_type, int family, int socktype, int protocol, - BIO_ADDRINFO **res); -int BIO_sock_error(int sock); -int BIO_socket_ioctl(int fd, long type, void *arg); -int BIO_socket_nbio(int fd, int mode); -int BIO_sock_init(void); -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define BIO_sock_cleanup() while(0) continue -# endif -int BIO_set_tcp_ndelay(int sock, int turn_on); -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 struct hostent *BIO_gethostbyname(const char *name); -OSSL_DEPRECATEDIN_1_1_0 int BIO_get_port(const char *str, unsigned short *port_ptr); -OSSL_DEPRECATEDIN_1_1_0 int BIO_get_host_ip(const char *str, unsigned char *ip); -OSSL_DEPRECATEDIN_1_1_0 int BIO_get_accept_socket(char *host_port, int mode); -OSSL_DEPRECATEDIN_1_1_0 int BIO_accept(int sock, char **ip_port); -# endif - -union BIO_sock_info_u { - BIO_ADDR *addr; -}; -enum BIO_sock_info_type { - BIO_SOCK_INFO_ADDRESS -}; -int BIO_sock_info(int sock, - enum BIO_sock_info_type type, union BIO_sock_info_u *info); - -# define BIO_SOCK_REUSEADDR 0x01 -# define BIO_SOCK_V6_ONLY 0x02 -# define BIO_SOCK_KEEPALIVE 0x04 -# define BIO_SOCK_NONBLOCK 0x08 -# define BIO_SOCK_NODELAY 0x10 -# define BIO_SOCK_TFO 0x20 - -int BIO_socket(int domain, int socktype, int protocol, int options); -int BIO_connect(int sock, const BIO_ADDR *addr, int options); -int BIO_bind(int sock, const BIO_ADDR *addr, int options); -int BIO_listen(int sock, const BIO_ADDR *addr, int options); -int BIO_accept_ex(int accept_sock, BIO_ADDR *addr, int options); -int BIO_closesocket(int sock); - -BIO *BIO_new_socket(int sock, int close_flag); -BIO *BIO_new_connect(const char *host_port); -BIO *BIO_new_accept(const char *host_port); -# endif /* OPENSSL_NO_SOCK*/ - -BIO *BIO_new_fd(int fd, int close_flag); - -int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, - BIO **bio2, size_t writebuf2); -# ifndef OPENSSL_NO_DGRAM -int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, - BIO **bio2, size_t writebuf2); -# endif - -/* - * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. - * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default - * value. - */ - -void BIO_copy_next_retry(BIO *b); - -/* - * long BIO_ghbn_ctrl(int cmd,int iarg,char *parg); - */ - -# define ossl_bio__attr__(x) -# if defined(__GNUC__) && defined(__STDC_VERSION__) \ - && !defined(__MINGW32__) && !defined(__MINGW64__) \ - && !defined(__APPLE__) - /* - * Because we support the 'z' modifier, which made its appearance in C99, - * we can't use __attribute__ with pre C99 dialects. - */ -# if __STDC_VERSION__ >= 199901L -# undef ossl_bio__attr__ -# define ossl_bio__attr__ __attribute__ -# if __GNUC__*10 + __GNUC_MINOR__ >= 44 -# define ossl_bio__printf__ __gnu_printf__ -# else -# define ossl_bio__printf__ __printf__ -# endif -# endif -# endif -int BIO_printf(BIO *bio, const char *format, ...) -ossl_bio__attr__((__format__(ossl_bio__printf__, 2, 3))); -int BIO_vprintf(BIO *bio, const char *format, va_list args) -ossl_bio__attr__((__format__(ossl_bio__printf__, 2, 0))); -int BIO_snprintf(char *buf, size_t n, const char *format, ...) -ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 4))); -int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) -ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); -# undef ossl_bio__attr__ -# undef ossl_bio__printf__ - - -BIO_METHOD *BIO_meth_new(int type, const char *name); -void BIO_meth_free(BIO_METHOD *biom); -int BIO_meth_set_write(BIO_METHOD *biom, - int (*write) (BIO *, const char *, int)); -int BIO_meth_set_write_ex(BIO_METHOD *biom, - int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int BIO_meth_set_sendmmsg(BIO_METHOD *biom, - int (*f) (BIO *, BIO_MSG *, size_t, size_t, - uint64_t, size_t *)); -int BIO_meth_set_read(BIO_METHOD *biom, - int (*read) (BIO *, char *, int)); -int BIO_meth_set_read_ex(BIO_METHOD *biom, - int (*bread) (BIO *, char *, size_t, size_t *)); -int BIO_meth_set_recvmmsg(BIO_METHOD *biom, - int (*f) (BIO *, BIO_MSG *, size_t, size_t, - uint64_t, size_t *)); -int BIO_meth_set_puts(BIO_METHOD *biom, - int (*puts) (BIO *, const char *)); -int BIO_meth_set_gets(BIO_METHOD *biom, - int (*ossl_gets) (BIO *, char *, int)); -int BIO_meth_set_ctrl(BIO_METHOD *biom, - long (*ctrl) (BIO *, int, long, void *)); -int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, - long (*callback_ctrl) (BIO *, int, - BIO_info_cb *)); -# ifndef OPENSSL_NO_DEPRECATED_3_5 -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, - int); -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, - size_t, size_t *); -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, - size_t, size_t, - uint64_t, size_t *); -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, - size_t, size_t *); -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, - size_t, size_t, - uint64_t, size_t *); -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); -OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, - long, void *); -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); -OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, - BIO_info_cb *); -# endif -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/bioerr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/bioerr.h deleted file mode 100644 index e4fdb64..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/bioerr.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_BIOERR_H -# define OPENSSL_BIOERR_H -# pragma once - -# include -# include -# include - - - -/* - * BIO reason codes. - */ -# define BIO_R_ACCEPT_ERROR 100 -# define BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET 141 -# define BIO_R_AMBIGUOUS_HOST_OR_SERVICE 129 -# define BIO_R_BAD_FOPEN_MODE 101 -# define BIO_R_BROKEN_PIPE 124 -# define BIO_R_CONNECT_ERROR 103 -# define BIO_R_CONNECT_TIMEOUT 147 -# define BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET 107 -# define BIO_R_GETSOCKNAME_ERROR 132 -# define BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS 133 -# define BIO_R_GETTING_SOCKTYPE 134 -# define BIO_R_INVALID_ARGUMENT 125 -# define BIO_R_INVALID_SOCKET 135 -# define BIO_R_IN_USE 123 -# define BIO_R_LENGTH_TOO_LONG 102 -# define BIO_R_LISTEN_V6_ONLY 136 -# define BIO_R_LOCAL_ADDR_NOT_AVAILABLE 111 -# define BIO_R_LOOKUP_RETURNED_NOTHING 142 -# define BIO_R_MALFORMED_HOST_OR_SERVICE 130 -# define BIO_R_NBIO_CONNECT_ERROR 110 -# define BIO_R_NON_FATAL 112 -# define BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED 143 -# define BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED 144 -# define BIO_R_NO_PORT_DEFINED 113 -# define BIO_R_NO_SUCH_FILE 128 -# define BIO_R_NULL_PARAMETER 115 /* unused */ -# define BIO_R_TFO_DISABLED 106 -# define BIO_R_TFO_NO_KERNEL_SUPPORT 108 -# define BIO_R_TRANSFER_ERROR 104 -# define BIO_R_TRANSFER_TIMEOUT 105 -# define BIO_R_UNABLE_TO_BIND_SOCKET 117 -# define BIO_R_UNABLE_TO_CREATE_SOCKET 118 -# define BIO_R_UNABLE_TO_KEEPALIVE 137 -# define BIO_R_UNABLE_TO_LISTEN_SOCKET 119 -# define BIO_R_UNABLE_TO_NODELAY 138 -# define BIO_R_UNABLE_TO_REUSEADDR 139 -# define BIO_R_UNABLE_TO_TFO 109 -# define BIO_R_UNAVAILABLE_IP_FAMILY 145 -# define BIO_R_UNINITIALIZED 120 -# define BIO_R_UNKNOWN_INFO_TYPE 140 -# define BIO_R_UNSUPPORTED_IP_FAMILY 146 -# define BIO_R_UNSUPPORTED_METHOD 121 -# define BIO_R_UNSUPPORTED_PROTOCOL_FAMILY 131 -# define BIO_R_WRITE_TO_READ_ONLY_BIO 126 -# define BIO_R_WSASTARTUP 122 -# define BIO_R_PORT_MISMATCH 150 -# define BIO_R_PEER_ADDR_NOT_AVAILABLE 151 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/blowfish.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/blowfish.h deleted file mode 100644 index 667d642..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/blowfish.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_BLOWFISH_H -# define OPENSSL_BLOWFISH_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_BLOWFISH_H -# endif - -# include - -# ifndef OPENSSL_NO_BF -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define BF_BLOCK 8 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 - -# define BF_ENCRYPT 1 -# define BF_DECRYPT 0 - -/*- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! BF_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define BF_LONG unsigned int - -# define BF_ROUNDS 16 - -typedef struct bf_key_st { - BF_LONG P[BF_ROUNDS + 2]; - BF_LONG S[4 * 256]; -} BF_KEY; - -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 void BF_set_key(BF_KEY *key, int len, - const unsigned char *data); -OSSL_DEPRECATEDIN_3_0 void BF_encrypt(BF_LONG *data, const BF_KEY *key); -OSSL_DEPRECATEDIN_3_0 void BF_decrypt(BF_LONG *data, const BF_KEY *key); -OSSL_DEPRECATEDIN_3_0 void BF_ecb_encrypt(const unsigned char *in, - unsigned char *out, const BF_KEY *key, - int enc); -OSSL_DEPRECATEDIN_3_0 void BF_cbc_encrypt(const unsigned char *in, - unsigned char *out, long length, - const BF_KEY *schedule, - unsigned char *ivec, int enc); -OSSL_DEPRECATEDIN_3_0 void BF_cfb64_encrypt(const unsigned char *in, - unsigned char *out, - long length, const BF_KEY *schedule, - unsigned char *ivec, int *num, - int enc); -OSSL_DEPRECATEDIN_3_0 void BF_ofb64_encrypt(const unsigned char *in, - unsigned char *out, - long length, const BF_KEY *schedule, - unsigned char *ivec, int *num); -OSSL_DEPRECATEDIN_3_0 const char *BF_options(void); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/bn.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/bn.h deleted file mode 100644 index ea706dc..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/bn.h +++ /dev/null @@ -1,590 +0,0 @@ -/* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_BN_H -# define OPENSSL_BN_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_BN_H -# endif - -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * 64-bit processor with LP64 ABI - */ -# ifdef SIXTY_FOUR_BIT_LONG -# define BN_ULONG unsigned long -# define BN_BYTES 8 -# endif - -/* - * 64-bit processor other than LP64 ABI - */ -# ifdef SIXTY_FOUR_BIT -# define BN_ULONG unsigned long long -# define BN_BYTES 8 -# endif - -# ifdef THIRTY_TWO_BIT -# define BN_ULONG unsigned int -# define BN_BYTES 4 -# endif - -# define BN_BITS2 (BN_BYTES * 8) -# define BN_BITS (BN_BITS2 * 2) -# define BN_TBIT ((BN_ULONG)1 << (BN_BITS2 - 1)) - -# define BN_FLG_MALLOCED 0x01 -# define BN_FLG_STATIC_DATA 0x02 - -/* - * avoid leaking exponent information through timing, - * BN_mod_exp_mont() will call BN_mod_exp_mont_consttime, - * BN_div() will call BN_div_no_branch, - * BN_mod_inverse() will call bn_mod_inverse_no_branch. - */ -# define BN_FLG_CONSTTIME 0x04 -# define BN_FLG_SECURE 0x08 - -# ifndef OPENSSL_NO_DEPRECATED_0_9_8 -/* deprecated name for the flag */ -# define BN_FLG_EXP_CONSTTIME BN_FLG_CONSTTIME -# define BN_FLG_FREE 0x8000 /* used for debugging */ -# endif - -void BN_set_flags(BIGNUM *b, int n); -int BN_get_flags(const BIGNUM *b, int n); - -/* Values for |top| in BN_rand() */ -#define BN_RAND_TOP_ANY -1 -#define BN_RAND_TOP_ONE 0 -#define BN_RAND_TOP_TWO 1 - -/* Values for |bottom| in BN_rand() */ -#define BN_RAND_BOTTOM_ANY 0 -#define BN_RAND_BOTTOM_ODD 1 - -/* - * get a clone of a BIGNUM with changed flags, for *temporary* use only (the - * two BIGNUMs cannot be used in parallel!). Also only for *read only* use. The - * value |dest| should be a newly allocated BIGNUM obtained via BN_new() that - * has not been otherwise initialised or used. - */ -void BN_with_flags(BIGNUM *dest, const BIGNUM *b, int flags); - -/* Wrapper function to make using BN_GENCB easier */ -int BN_GENCB_call(BN_GENCB *cb, int a, int b); - -BN_GENCB *BN_GENCB_new(void); -void BN_GENCB_free(BN_GENCB *cb); - -/* Populate a BN_GENCB structure with an "old"-style callback */ -void BN_GENCB_set_old(BN_GENCB *gencb, void (*callback) (int, int, void *), - void *cb_arg); - -/* Populate a BN_GENCB structure with a "new"-style callback */ -void BN_GENCB_set(BN_GENCB *gencb, int (*callback) (int, int, BN_GENCB *), - void *cb_arg); - -void *BN_GENCB_get_arg(BN_GENCB *cb); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define BN_prime_checks 0 /* default: select number of iterations based - * on the size of the number */ - -/* - * BN_prime_checks_for_size() returns the number of Miller-Rabin iterations - * that will be done for checking that a random number is probably prime. The - * error rate for accepting a composite number as prime depends on the size of - * the prime |b|. The error rates used are for calculating an RSA key with 2 primes, - * and so the level is what you would expect for a key of double the size of the - * prime. - * - * This table is generated using the algorithm of FIPS PUB 186-4 - * Digital Signature Standard (DSS), section F.1, page 117. - * (https://dx.doi.org/10.6028/NIST.FIPS.186-4) - * - * The following magma script was used to generate the output: - * securitybits:=125; - * k:=1024; - * for t:=1 to 65 do - * for M:=3 to Floor(2*Sqrt(k-1)-1) do - * S:=0; - * // Sum over m - * for m:=3 to M do - * s:=0; - * // Sum over j - * for j:=2 to m do - * s+:=(RealField(32)!2)^-(j+(k-1)/j); - * end for; - * S+:=2^(m-(m-1)*t)*s; - * end for; - * A:=2^(k-2-M*t); - * B:=8*(Pi(RealField(32))^2-6)/3*2^(k-2)*S; - * pkt:=2.00743*Log(2)*k*2^-k*(A+B); - * seclevel:=Floor(-Log(2,pkt)); - * if seclevel ge securitybits then - * printf "k: %5o, security: %o bits (t: %o, M: %o)\n",k,seclevel,t,M; - * break; - * end if; - * end for; - * if seclevel ge securitybits then break; end if; - * end for; - * - * It can be run online at: - * http://magma.maths.usyd.edu.au/calc - * - * And will output: - * k: 1024, security: 129 bits (t: 6, M: 23) - * - * k is the number of bits of the prime, securitybits is the level we want to - * reach. - * - * prime length | RSA key size | # MR tests | security level - * -------------+--------------|------------+--------------- - * (b) >= 6394 | >= 12788 | 3 | 256 bit - * (b) >= 3747 | >= 7494 | 3 | 192 bit - * (b) >= 1345 | >= 2690 | 4 | 128 bit - * (b) >= 1080 | >= 2160 | 5 | 128 bit - * (b) >= 852 | >= 1704 | 5 | 112 bit - * (b) >= 476 | >= 952 | 5 | 80 bit - * (b) >= 400 | >= 800 | 6 | 80 bit - * (b) >= 347 | >= 694 | 7 | 80 bit - * (b) >= 308 | >= 616 | 8 | 80 bit - * (b) >= 55 | >= 110 | 27 | 64 bit - * (b) >= 6 | >= 12 | 34 | 64 bit - */ - -# define BN_prime_checks_for_size(b) ((b) >= 3747 ? 3 : \ - (b) >= 1345 ? 4 : \ - (b) >= 476 ? 5 : \ - (b) >= 400 ? 6 : \ - (b) >= 347 ? 7 : \ - (b) >= 308 ? 8 : \ - (b) >= 55 ? 27 : \ - /* b >= 6 */ 34) -# endif - -# define BN_num_bytes(a) ((BN_num_bits(a)+7)/8) - -int BN_abs_is_word(const BIGNUM *a, const BN_ULONG w); -int BN_is_zero(const BIGNUM *a); -int BN_is_one(const BIGNUM *a); -int BN_is_word(const BIGNUM *a, const BN_ULONG w); -int BN_is_odd(const BIGNUM *a); - -# define BN_one(a) (BN_set_word((a),1)) - -void BN_zero_ex(BIGNUM *a); - -# if OPENSSL_API_LEVEL > 908 -# define BN_zero(a) BN_zero_ex(a) -# else -# define BN_zero(a) (BN_set_word((a),0)) -# endif - -const BIGNUM *BN_value_one(void); -char *BN_options(void); -BN_CTX *BN_CTX_new_ex(OSSL_LIB_CTX *ctx); -BN_CTX *BN_CTX_new(void); -BN_CTX *BN_CTX_secure_new_ex(OSSL_LIB_CTX *ctx); -BN_CTX *BN_CTX_secure_new(void); -void BN_CTX_free(BN_CTX *c); -void BN_CTX_start(BN_CTX *ctx); -BIGNUM *BN_CTX_get(BN_CTX *ctx); -void BN_CTX_end(BN_CTX *ctx); -int BN_rand_ex(BIGNUM *rnd, int bits, int top, int bottom, - unsigned int strength, BN_CTX *ctx); -int BN_rand(BIGNUM *rnd, int bits, int top, int bottom); -int BN_priv_rand_ex(BIGNUM *rnd, int bits, int top, int bottom, - unsigned int strength, BN_CTX *ctx); -int BN_priv_rand(BIGNUM *rnd, int bits, int top, int bottom); -int BN_rand_range_ex(BIGNUM *r, const BIGNUM *range, unsigned int strength, - BN_CTX *ctx); -int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); -int BN_priv_rand_range_ex(BIGNUM *r, const BIGNUM *range, - unsigned int strength, BN_CTX *ctx); -int BN_priv_rand_range(BIGNUM *rnd, const BIGNUM *range); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); -OSSL_DEPRECATEDIN_3_0 -int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range); -# endif -int BN_num_bits(const BIGNUM *a); -int BN_num_bits_word(BN_ULONG l); -int BN_security_bits(int L, int N); -BIGNUM *BN_new(void); -BIGNUM *BN_secure_new(void); -void BN_clear_free(BIGNUM *a); -BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b); -void BN_swap(BIGNUM *a, BIGNUM *b); -BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); -BIGNUM *BN_signed_bin2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2bin(const BIGNUM *a, unsigned char *to); -int BN_bn2binpad(const BIGNUM *a, unsigned char *to, int tolen); -int BN_signed_bn2bin(const BIGNUM *a, unsigned char *to, int tolen); -BIGNUM *BN_lebin2bn(const unsigned char *s, int len, BIGNUM *ret); -BIGNUM *BN_signed_lebin2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2lebinpad(const BIGNUM *a, unsigned char *to, int tolen); -int BN_signed_bn2lebin(const BIGNUM *a, unsigned char *to, int tolen); -BIGNUM *BN_native2bn(const unsigned char *s, int len, BIGNUM *ret); -BIGNUM *BN_signed_native2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2nativepad(const BIGNUM *a, unsigned char *to, int tolen); -int BN_signed_bn2native(const BIGNUM *a, unsigned char *to, int tolen); -BIGNUM *BN_mpi2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2mpi(const BIGNUM *a, unsigned char *to); -int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); -int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx); -/** BN_set_negative sets sign of a BIGNUM - * \param b pointer to the BIGNUM object - * \param n 0 if the BIGNUM b should be positive and a value != 0 otherwise - */ -void BN_set_negative(BIGNUM *b, int n); -/** BN_is_negative returns 1 if the BIGNUM is negative - * \param b pointer to the BIGNUM object - * \return 1 if a < 0 and 0 otherwise - */ -int BN_is_negative(const BIGNUM *b); - -int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, - BN_CTX *ctx); -# define BN_mod(rem,m,d,ctx) BN_div(NULL,(rem),(m),(d),(ctx)) -int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); -int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *m); -int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *m); -int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); -int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); -int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m); -int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m); - -BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w); -BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w); -int BN_mul_word(BIGNUM *a, BN_ULONG w); -int BN_add_word(BIGNUM *a, BN_ULONG w); -int BN_sub_word(BIGNUM *a, BN_ULONG w); -int BN_set_word(BIGNUM *a, BN_ULONG w); -BN_ULONG BN_get_word(const BIGNUM *a); - -int BN_cmp(const BIGNUM *a, const BIGNUM *b); -void BN_free(BIGNUM *a); -int BN_is_bit_set(const BIGNUM *a, int n); -int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); -int BN_lshift1(BIGNUM *r, const BIGNUM *a); -int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); - -int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); -int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, - BN_MONT_CTX *in_mont); -int BN_mod_exp_mont_word(BIGNUM *r, BN_ULONG a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1, - const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m, - BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); -int BN_mod_exp_mont_consttime_x2(BIGNUM *rr1, const BIGNUM *a1, const BIGNUM *p1, - const BIGNUM *m1, BN_MONT_CTX *in_mont1, - BIGNUM *rr2, const BIGNUM *a2, const BIGNUM *p2, - const BIGNUM *m2, BN_MONT_CTX *in_mont2, - BN_CTX *ctx); - -int BN_mask_bits(BIGNUM *a, int n); -# ifndef OPENSSL_NO_STDIO -int BN_print_fp(FILE *fp, const BIGNUM *a); -# endif -int BN_print(BIO *bio, const BIGNUM *a); -int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx); -int BN_rshift(BIGNUM *r, const BIGNUM *a, int n); -int BN_rshift1(BIGNUM *r, const BIGNUM *a); -void BN_clear(BIGNUM *a); -BIGNUM *BN_dup(const BIGNUM *a); -int BN_ucmp(const BIGNUM *a, const BIGNUM *b); -int BN_set_bit(BIGNUM *a, int n); -int BN_clear_bit(BIGNUM *a, int n); -char *BN_bn2hex(const BIGNUM *a); -char *BN_bn2dec(const BIGNUM *a); -int BN_hex2bn(BIGNUM **a, const char *str); -int BN_dec2bn(BIGNUM **a, const char *str); -int BN_asc2bn(BIGNUM **a, const char *str); -int BN_gcd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); -int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); /* returns - * -2 for - * error */ -int BN_are_coprime(BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); -BIGNUM *BN_mod_inverse(BIGNUM *ret, - const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); -BIGNUM *BN_mod_sqrt(BIGNUM *ret, - const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); - -void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords); - -/* Deprecated versions */ -# ifndef OPENSSL_NO_DEPRECATED_0_9_8 -OSSL_DEPRECATEDIN_0_9_8 -BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe, - const BIGNUM *add, const BIGNUM *rem, - void (*callback) (int, int, void *), - void *cb_arg); -OSSL_DEPRECATEDIN_0_9_8 -int BN_is_prime(const BIGNUM *p, int nchecks, - void (*callback) (int, int, void *), - BN_CTX *ctx, void *cb_arg); -OSSL_DEPRECATEDIN_0_9_8 -int BN_is_prime_fasttest(const BIGNUM *p, int nchecks, - void (*callback) (int, int, void *), - BN_CTX *ctx, void *cb_arg, - int do_trial_division); -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb); -OSSL_DEPRECATEDIN_3_0 -int BN_is_prime_fasttest_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, - int do_trial_division, BN_GENCB *cb); -# endif -/* Newer versions */ -int BN_generate_prime_ex2(BIGNUM *ret, int bits, int safe, - const BIGNUM *add, const BIGNUM *rem, BN_GENCB *cb, - BN_CTX *ctx); -int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add, - const BIGNUM *rem, BN_GENCB *cb); -int BN_check_prime(const BIGNUM *p, BN_CTX *ctx, BN_GENCB *cb); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx); - -OSSL_DEPRECATEDIN_3_0 -int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, - const BIGNUM *Xp, const BIGNUM *Xp1, - const BIGNUM *Xp2, const BIGNUM *e, BN_CTX *ctx, - BN_GENCB *cb); -OSSL_DEPRECATEDIN_3_0 -int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, BIGNUM *Xp1, - BIGNUM *Xp2, const BIGNUM *Xp, const BIGNUM *e, - BN_CTX *ctx, BN_GENCB *cb); -# endif - -BN_MONT_CTX *BN_MONT_CTX_new(void); -int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - BN_MONT_CTX *mont, BN_CTX *ctx); -int BN_to_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, - BN_CTX *ctx); -int BN_from_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, - BN_CTX *ctx); -void BN_MONT_CTX_free(BN_MONT_CTX *mont); -int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx); -BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from); -BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, CRYPTO_RWLOCK *lock, - const BIGNUM *mod, BN_CTX *ctx); - -/* BN_BLINDING flags */ -# define BN_BLINDING_NO_UPDATE 0x00000001 -# define BN_BLINDING_NO_RECREATE 0x00000002 - -BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod); -void BN_BLINDING_free(BN_BLINDING *b); -int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx); -int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); -int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); -int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); -int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, - BN_CTX *); - -int BN_BLINDING_is_current_thread(BN_BLINDING *b); -void BN_BLINDING_set_current_thread(BN_BLINDING *b); -int BN_BLINDING_lock(BN_BLINDING *b); -int BN_BLINDING_unlock(BN_BLINDING *b); - -unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); -void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); -BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, - const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, - int (*bn_mod_exp) (BIGNUM *r, - const BIGNUM *a, - const BIGNUM *p, - const BIGNUM *m, - BN_CTX *ctx, - BN_MONT_CTX *m_ctx), - BN_MONT_CTX *m_ctx); -# ifndef OPENSSL_NO_DEPRECATED_0_9_8 -OSSL_DEPRECATEDIN_0_9_8 -void BN_set_params(int mul, int high, int low, int mont); -OSSL_DEPRECATEDIN_0_9_8 -int BN_get_params(int which); /* 0, mul, 1 high, 2 low, 3 mont */ -# endif - -BN_RECP_CTX *BN_RECP_CTX_new(void); -void BN_RECP_CTX_free(BN_RECP_CTX *recp); -int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *rdiv, BN_CTX *ctx); -int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y, - BN_RECP_CTX *recp, BN_CTX *ctx); -int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); -int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, - BN_RECP_CTX *recp, BN_CTX *ctx); - -# ifndef OPENSSL_NO_EC2M - -/* - * Functions for arithmetic over binary polynomials represented by BIGNUMs. - * The BIGNUM::neg property of BIGNUMs representing binary polynomials is - * ignored. Note that input arguments are not const so that their bit arrays - * can be expanded to the appropriate size if needed. - */ - -/* - * r = a + b - */ -int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -# define BN_GF2m_sub(r, a, b) BN_GF2m_add(r, a, b) -/* - * r=a mod p - */ -int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p); -/* r = (a * b) mod p */ -int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); -/* r = (a * a) mod p */ -int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -/* r = (1 / b) mod p */ -int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *b, const BIGNUM *p, BN_CTX *ctx); -/* r = (a / b) mod p */ -int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); -/* r = (a ^ b) mod p */ -int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); -/* r = sqrt(a) mod p */ -int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - BN_CTX *ctx); -/* r^2 + r = a mod p */ -int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - BN_CTX *ctx); -# define BN_GF2m_cmp(a, b) BN_ucmp((a), (b)) -/*- - * Some functions allow for representation of the irreducible polynomials - * as an unsigned int[], say p. The irreducible f(t) is then of the form: - * t^p[0] + t^p[1] + ... + t^p[k] - * where m = p[0] > p[1] > ... > p[k] = 0. - */ -/* r = a mod p */ -int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[]); -/* r = (a * b) mod p */ -int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); -/* r = (a * a) mod p */ -int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[], - BN_CTX *ctx); -/* r = (1 / b) mod p */ -int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *b, const int p[], - BN_CTX *ctx); -/* r = (a / b) mod p */ -int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); -/* r = (a ^ b) mod p */ -int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); -/* r = sqrt(a) mod p */ -int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, - const int p[], BN_CTX *ctx); -/* r^2 + r = a mod p */ -int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a, - const int p[], BN_CTX *ctx); -int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max); -int BN_GF2m_arr2poly(const int p[], BIGNUM *a); - -# endif - -/* - * faster mod functions for the 'NIST primes' 0 <= a < p^2 - */ -int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); - -const BIGNUM *BN_get0_nist_prime_192(void); -const BIGNUM *BN_get0_nist_prime_224(void); -const BIGNUM *BN_get0_nist_prime_256(void); -const BIGNUM *BN_get0_nist_prime_384(void); -const BIGNUM *BN_get0_nist_prime_521(void); - -int (*BN_nist_mod_func(const BIGNUM *p)) (BIGNUM *r, const BIGNUM *a, - const BIGNUM *field, BN_CTX *ctx); - -int BN_generate_dsa_nonce(BIGNUM *out, const BIGNUM *range, - const BIGNUM *priv, const unsigned char *message, - size_t message_len, BN_CTX *ctx); - -/* Primes from RFC 2409 */ -BIGNUM *BN_get_rfc2409_prime_768(BIGNUM *bn); -BIGNUM *BN_get_rfc2409_prime_1024(BIGNUM *bn); - -/* Primes from RFC 3526 */ -BIGNUM *BN_get_rfc3526_prime_1536(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_2048(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_3072(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_4096(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_6144(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_8192(BIGNUM *bn); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define get_rfc2409_prime_768 BN_get_rfc2409_prime_768 -# define get_rfc2409_prime_1024 BN_get_rfc2409_prime_1024 -# define get_rfc3526_prime_1536 BN_get_rfc3526_prime_1536 -# define get_rfc3526_prime_2048 BN_get_rfc3526_prime_2048 -# define get_rfc3526_prime_3072 BN_get_rfc3526_prime_3072 -# define get_rfc3526_prime_4096 BN_get_rfc3526_prime_4096 -# define get_rfc3526_prime_6144 BN_get_rfc3526_prime_6144 -# define get_rfc3526_prime_8192 BN_get_rfc3526_prime_8192 -# endif - -int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/bnerr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/bnerr.h deleted file mode 100644 index 7c3f6ef..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/bnerr.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_BNERR_H -# define OPENSSL_BNERR_H -# pragma once - -# include -# include -# include - - - -/* - * BN reason codes. - */ -# define BN_R_ARG2_LT_ARG3 100 -# define BN_R_BAD_RECIPROCAL 101 -# define BN_R_BIGNUM_TOO_LONG 114 -# define BN_R_BITS_TOO_SMALL 118 -# define BN_R_CALLED_WITH_EVEN_MODULUS 102 -# define BN_R_DIV_BY_ZERO 103 -# define BN_R_ENCODING_ERROR 104 -# define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 105 -# define BN_R_INPUT_NOT_REDUCED 110 -# define BN_R_INVALID_LENGTH 106 -# define BN_R_INVALID_RANGE 115 -# define BN_R_INVALID_SHIFT 119 -# define BN_R_NOT_A_SQUARE 111 -# define BN_R_NOT_INITIALIZED 107 -# define BN_R_NO_INVERSE 108 -# define BN_R_NO_PRIME_CANDIDATE 121 -# define BN_R_NO_SOLUTION 116 -# define BN_R_NO_SUITABLE_DIGEST 120 -# define BN_R_PRIVATE_KEY_TOO_LARGE 117 -# define BN_R_P_IS_NOT_PRIME 112 -# define BN_R_TOO_MANY_ITERATIONS 113 -# define BN_R_TOO_MANY_TEMPORARY_VARIABLES 109 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/buffer.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/buffer.h deleted file mode 100644 index 5773b98..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/buffer.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_BUFFER_H -# define OPENSSL_BUFFER_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_BUFFER_H -# endif - -# include -# ifndef OPENSSL_CRYPTO_H -# include -# endif -# include - - -#ifdef __cplusplus -extern "C" { -#endif - -# include -# include - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define BUF_strdup(s) OPENSSL_strdup(s) -# define BUF_strndup(s, size) OPENSSL_strndup(s, size) -# define BUF_memdup(data, size) OPENSSL_memdup(data, size) -# define BUF_strlcpy(dst, src, size) OPENSSL_strlcpy(dst, src, size) -# define BUF_strlcat(dst, src, size) OPENSSL_strlcat(dst, src, size) -# define BUF_strnlen(str, maxlen) OPENSSL_strnlen(str, maxlen) -# endif - -struct buf_mem_st { - size_t length; /* current number of bytes */ - char *data; - size_t max; /* size of buffer */ - unsigned long flags; -}; - -# define BUF_MEM_FLAG_SECURE 0x01 - -BUF_MEM *BUF_MEM_new(void); -BUF_MEM *BUF_MEM_new_ex(unsigned long flags); -void BUF_MEM_free(BUF_MEM *a); -size_t BUF_MEM_grow(BUF_MEM *str, size_t len); -size_t BUF_MEM_grow_clean(BUF_MEM *str, size_t len); -void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/buffererr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/buffererr.h deleted file mode 100644 index d18b1f8..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/buffererr.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_BUFFERERR_H -# define OPENSSL_BUFFERERR_H -# pragma once - -# include -# include -# include - - - -/* - * BUF reason codes. - */ - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/byteorder.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/byteorder.h deleted file mode 100644 index 3c8f34b..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/byteorder.h +++ /dev/null @@ -1,339 +0,0 @@ -/* - * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_BYTEORDER_H -# define OPENSSL_BYTEORDER_H -# pragma once - -# include -# include - -/* - * "Modern" compilers do a decent job of optimising these functions to just a - * couple of instruction ([swap +] store, or load [+ swap]) when either no - * swapping is required, or a suitable swap instruction is available. - */ - -# if defined(_MSC_VER) && _MSC_VER>=1300 -# include -# pragma intrinsic(_byteswap_ushort) -# pragma intrinsic(_byteswap_ulong) -# pragma intrinsic(_byteswap_uint64) -# define OSSL_HTOBE16(x) _byteswap_ushort(x) -# define OSSL_HTOBE32(x) _byteswap_ulong(x) -# define OSSL_HTOBE64(x) _byteswap_uint64(x) -# define OSSL_BE16TOH(x) _byteswap_ushort(x) -# define OSSL_BE32TOH(x) _byteswap_ulong(x) -# define OSSL_BE64TOH(x) _byteswap_uint64(x) -# define OSSL_HTOLE16(x) (x) -# define OSSL_HTOLE32(x) (x) -# define OSSL_HTOLE64(x) (x) -# define OSSL_LE16TOH(x) (x) -# define OSSL_LE32TOH(x) (x) -# define OSSL_LE64TOH(x) (x) - -# elif defined(__GLIBC__) && defined(__GLIBC_PREREQ) -# if (__GLIBC_PREREQ(2, 19)) && defined(_DEFAULT_SOURCE) -# include -# define OSSL_HTOBE16(x) htobe16(x) -# define OSSL_HTOBE32(x) htobe32(x) -# define OSSL_HTOBE64(x) htobe64(x) -# define OSSL_BE16TOH(x) be16toh(x) -# define OSSL_BE32TOH(x) be32toh(x) -# define OSSL_BE64TOH(x) be64toh(x) -# define OSSL_HTOLE16(x) htole16(x) -# define OSSL_HTOLE32(x) htole32(x) -# define OSSL_HTOLE64(x) htole64(x) -# define OSSL_LE16TOH(x) le16toh(x) -# define OSSL_LE32TOH(x) le32toh(x) -# define OSSL_LE64TOH(x) le64toh(x) -# endif - -# elif defined(__FreeBSD__) || defined(__NetBSD__) || defined (__OpenBSD__) -# if defined(__OpenBSD__) -# include -# else -# include -# endif -# define OSSL_HTOBE16(x) htobe16(x) -# define OSSL_HTOBE32(x) htobe32(x) -# define OSSL_HTOBE64(x) htobe64(x) -# define OSSL_BE16TOH(x) be16toh(x) -# define OSSL_BE32TOH(x) be32toh(x) -# define OSSL_BE64TOH(x) be64toh(x) -# define OSSL_HTOLE16(x) htole16(x) -# define OSSL_HTOLE32(x) htole32(x) -# define OSSL_HTOLE64(x) htole64(x) -# define OSSL_LE16TOH(x) le16toh(x) -# define OSSL_LE32TOH(x) le32toh(x) -# define OSSL_LE64TOH(x) le64toh(x) - -# elif defined(__APPLE__) -# include -# define OSSL_HTOBE16(x) OSSwapHostToBigInt16(x) -# define OSSL_HTOBE32(x) OSSwapHostToBigInt32(x) -# define OSSL_HTOBE64(x) OSSwapHostToBigInt64(x) -# define OSSL_BE16TOH(x) OSSwapBigToHostInt16(x) -# define OSSL_BE32TOH(x) OSSwapBigToHostInt32(x) -# define OSSL_BE64TOH(x) OSSwapBigToHostInt64(x) -# define OSSL_HTOLE16(x) OSSwapHostToLittleInt16(x) -# define OSSL_HTOLE32(x) OSSwapHostToLittleInt32(x) -# define OSSL_HTOLE64(x) OSSwapHostToLittleInt64(x) -# define OSSL_LE16TOH(x) OSSwapLittleToHostInt16(x) -# define OSSL_LE32TOH(x) OSSwapLittleToHostInt32(x) -# define OSSL_LE64TOH(x) OSSwapLittleToHostInt64(x) - -# endif - -static ossl_inline ossl_unused unsigned char * -OPENSSL_store_u16_le(unsigned char *out, uint16_t val) -{ -# ifdef OSSL_HTOLE16 - uint16_t t = OSSL_HTOLE16(val); - - memcpy(out, (unsigned char *)&t, 2); - return out + 2; -# else - *out++ = (val & 0xff); - *out++ = (val >> 8) & 0xff; - return out; -# endif -} - -static ossl_inline ossl_unused unsigned char * -OPENSSL_store_u16_be(unsigned char *out, uint16_t val) -{ -# ifdef OSSL_HTOBE16 - uint16_t t = OSSL_HTOBE16(val); - - memcpy(out, (unsigned char *)&t, 2); - return out + 2; -# else - *out++ = (val >> 8) & 0xff; - *out++ = (val & 0xff); - return out; -# endif -} - -static ossl_inline ossl_unused unsigned char * -OPENSSL_store_u32_le(unsigned char *out, uint32_t val) -{ -# ifdef OSSL_HTOLE32 - uint32_t t = OSSL_HTOLE32(val); - - memcpy(out, (unsigned char *)&t, 4); - return out + 4; -# else - *out++ = (val & 0xff); - *out++ = (val >> 8) & 0xff; - *out++ = (val >> 16) & 0xff; - *out++ = (val >> 24) & 0xff; - return out; -# endif -} - -static ossl_inline ossl_unused unsigned char * -OPENSSL_store_u32_be(unsigned char *out, uint32_t val) -{ -# ifdef OSSL_HTOBE32 - uint32_t t = OSSL_HTOBE32(val); - - memcpy(out, (unsigned char *)&t, 4); - return out + 4; -# else - *out++ = (val >> 24) & 0xff; - *out++ = (val >> 16) & 0xff; - *out++ = (val >> 8) & 0xff; - *out++ = (val & 0xff); - return out; -# endif -} - -static ossl_inline ossl_unused unsigned char * -OPENSSL_store_u64_le(unsigned char *out, uint64_t val) -{ -# ifdef OSSL_HTOLE64 - uint64_t t = OSSL_HTOLE64(val); - - memcpy(out, (unsigned char *)&t, 8); - return out + 8; -# else - *out++ = (val & 0xff); - *out++ = (val >> 8) & 0xff; - *out++ = (val >> 16) & 0xff; - *out++ = (val >> 24) & 0xff; - *out++ = (val >> 32) & 0xff; - *out++ = (val >> 40) & 0xff; - *out++ = (val >> 48) & 0xff; - *out++ = (val >> 56) & 0xff; - return out; -# endif -} - -static ossl_inline ossl_unused unsigned char * -OPENSSL_store_u64_be(unsigned char *out, uint64_t val) -{ -# ifdef OSSL_HTOLE64 - uint64_t t = OSSL_HTOBE64(val); - - memcpy(out, (unsigned char *)&t, 8); - return out + 8; -# else - *out++ = (val >> 56) & 0xff; - *out++ = (val >> 48) & 0xff; - *out++ = (val >> 40) & 0xff; - *out++ = (val >> 32) & 0xff; - *out++ = (val >> 24) & 0xff; - *out++ = (val >> 16) & 0xff; - *out++ = (val >> 8) & 0xff; - *out++ = (val & 0xff); - return out; -# endif -} - -static ossl_inline ossl_unused const unsigned char * -OPENSSL_load_u16_le(uint16_t *val, const unsigned char *in) -{ -# ifdef OSSL_LE16TOH - uint16_t t; - - memcpy((unsigned char *)&t, in, 2); - *val = OSSL_LE16TOH(t); - return in + 2; -# else - uint16_t b0 = *in++; - uint16_t b1 = *in++; - - *val = b0 | (b1 << 8); - return in; -#endif -} - -static ossl_inline ossl_unused const unsigned char * -OPENSSL_load_u16_be(uint16_t *val, const unsigned char *in) -{ -# ifdef OSSL_LE16TOH - uint16_t t; - - memcpy((unsigned char *)&t, in, 2); - *val = OSSL_BE16TOH(t); - return in + 2; -# else - uint16_t b1 = *in++; - uint16_t b0 = *in++; - - *val = b0 | (b1 << 8); - return in; -#endif -} - -static ossl_inline ossl_unused const unsigned char * -OPENSSL_load_u32_le(uint32_t *val, const unsigned char *in) -{ -# ifdef OSSL_LE32TOH - uint32_t t; - - memcpy((unsigned char *)&t, in, 4); - *val = OSSL_LE32TOH(t); - return in + 4; -# else - uint32_t b0 = *in++; - uint32_t b1 = *in++; - uint32_t b2 = *in++; - uint32_t b3 = *in++; - - *val = b0 | (b1 << 8) | (b2 << 16) | (b3 << 24); - return in; -#endif -} - -static ossl_inline ossl_unused const unsigned char * -OPENSSL_load_u32_be(uint32_t *val, const unsigned char *in) -{ -# ifdef OSSL_LE32TOH - uint32_t t; - - memcpy((unsigned char *)&t, in, 4); - *val = OSSL_BE32TOH(t); - return in + 4; -# else - uint32_t b3 = *in++; - uint32_t b2 = *in++; - uint32_t b1 = *in++; - uint32_t b0 = *in++; - - *val = b0 | (b1 << 8) | (b2 << 16) | (b3 << 24); - return in; -#endif -} - -static ossl_inline ossl_unused const unsigned char * -OPENSSL_load_u64_le(uint64_t *val, const unsigned char *in) -{ -# ifdef OSSL_LE64TOH - uint64_t t; - - memcpy((unsigned char *)&t, in, 8); - *val = OSSL_LE64TOH(t); - return in + 8; -# else - uint64_t b0 = *in++; - uint64_t b1 = *in++; - uint64_t b2 = *in++; - uint64_t b3 = *in++; - uint64_t b4 = *in++; - uint64_t b5 = *in++; - uint64_t b6 = *in++; - uint64_t b7 = *in++; - - *val = b0 | (b1 << 8) | (b2 << 16) | (b3 << 24) - | (b4 << 32) | (b5 << 40) | (b6 << 48) | (b7 << 56); - return in; -#endif -} - -static ossl_inline ossl_unused const unsigned char * -OPENSSL_load_u64_be(uint64_t *val, const unsigned char *in) -{ -# ifdef OSSL_LE64TOH - uint64_t t; - - memcpy((unsigned char *)&t, in, 8); - *val = OSSL_BE64TOH(t); - return in + 8; -# else - uint64_t b7 = *in++; - uint64_t b6 = *in++; - uint64_t b5 = *in++; - uint64_t b4 = *in++; - uint64_t b3 = *in++; - uint64_t b2 = *in++; - uint64_t b1 = *in++; - uint64_t b0 = *in++; - - *val = b0 | (b1 << 8) | (b2 << 16) | (b3 << 24) - | (b4 << 32) | (b5 << 40) | (b6 << 48) | (b7 << 56); - return in; -#endif -} - -# undef OSSL_HTOBE16 -# undef OSSL_HTOBE32 -# undef OSSL_HTOBE64 -# undef OSSL_BE16TOH -# undef OSSL_BE32TOH -# undef OSSL_BE64TOH -# undef OSSL_HTOLE16 -# undef OSSL_HTOLE32 -# undef OSSL_HTOLE64 -# undef OSSL_LE16TOH -# undef OSSL_LE32TOH -# undef OSSL_LE64TOH - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/camellia.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/camellia.h deleted file mode 100644 index 88c2279..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/camellia.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright 2006-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CAMELLIA_H -# define OPENSSL_CAMELLIA_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_CAMELLIA_H -# endif - -# include - -# ifndef OPENSSL_NO_CAMELLIA -# include -#ifdef __cplusplus -extern "C" { -#endif - -# define CAMELLIA_BLOCK_SIZE 16 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 - -# define CAMELLIA_ENCRYPT 1 -# define CAMELLIA_DECRYPT 0 - -/* - * Because array size can't be a const in C, the following two are macros. - * Both sizes are in bytes. - */ - -/* This should be a hidden type, but EVP requires that the size be known */ - -# define CAMELLIA_TABLE_BYTE_LEN 272 -# define CAMELLIA_TABLE_WORD_LEN (CAMELLIA_TABLE_BYTE_LEN / 4) - -typedef unsigned int KEY_TABLE_TYPE[CAMELLIA_TABLE_WORD_LEN]; /* to match - * with WORD */ - -struct camellia_key_st { - union { - double d; /* ensures 64-bit align */ - KEY_TABLE_TYPE rd_key; - } u; - int grand_rounds; -}; -typedef struct camellia_key_st CAMELLIA_KEY; - -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int Camellia_set_key(const unsigned char *userKey, - const int bits, - CAMELLIA_KEY *key); -OSSL_DEPRECATEDIN_3_0 void Camellia_encrypt(const unsigned char *in, - unsigned char *out, - const CAMELLIA_KEY *key); -OSSL_DEPRECATEDIN_3_0 void Camellia_decrypt(const unsigned char *in, - unsigned char *out, - const CAMELLIA_KEY *key); -OSSL_DEPRECATEDIN_3_0 void Camellia_ecb_encrypt(const unsigned char *in, - unsigned char *out, - const CAMELLIA_KEY *key, - const int enc); -OSSL_DEPRECATEDIN_3_0 void Camellia_cbc_encrypt(const unsigned char *in, - unsigned char *out, - size_t length, - const CAMELLIA_KEY *key, - unsigned char *ivec, - const int enc); -OSSL_DEPRECATEDIN_3_0 void Camellia_cfb128_encrypt(const unsigned char *in, - unsigned char *out, - size_t length, - const CAMELLIA_KEY *key, - unsigned char *ivec, - int *num, - const int enc); -OSSL_DEPRECATEDIN_3_0 void Camellia_cfb1_encrypt(const unsigned char *in, - unsigned char *out, - size_t length, - const CAMELLIA_KEY *key, - unsigned char *ivec, - int *num, - const int enc); -OSSL_DEPRECATEDIN_3_0 void Camellia_cfb8_encrypt(const unsigned char *in, - unsigned char *out, - size_t length, - const CAMELLIA_KEY *key, - unsigned char *ivec, - int *num, - const int enc); -OSSL_DEPRECATEDIN_3_0 void Camellia_ofb128_encrypt(const unsigned char *in, - unsigned char *out, - size_t length, - const CAMELLIA_KEY *key, - unsigned char *ivec, - int *num); -OSSL_DEPRECATEDIN_3_0 -void Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char ivec[CAMELLIA_BLOCK_SIZE], - unsigned char ecount_buf[CAMELLIA_BLOCK_SIZE], - unsigned int *num); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cast.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/cast.h deleted file mode 100644 index 0bf217b..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cast.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CAST_H -# define OPENSSL_CAST_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_CAST_H -# endif - -# include - -# ifndef OPENSSL_NO_CAST -# ifdef __cplusplus -extern "C" { -# endif - -# define CAST_BLOCK 8 -# define CAST_KEY_LENGTH 16 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 - -# define CAST_ENCRYPT 1 -# define CAST_DECRYPT 0 - -# define CAST_LONG unsigned int - -typedef struct cast_key_st { - CAST_LONG data[32]; - int short_key; /* Use reduced rounds for short key */ -} CAST_KEY; - -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data); -OSSL_DEPRECATEDIN_3_0 -void CAST_ecb_encrypt(const unsigned char *in, unsigned char *out, - const CAST_KEY *key, int enc); -OSSL_DEPRECATEDIN_3_0 -void CAST_encrypt(CAST_LONG *data, const CAST_KEY *key); -OSSL_DEPRECATEDIN_3_0 -void CAST_decrypt(CAST_LONG *data, const CAST_KEY *key); -OSSL_DEPRECATEDIN_3_0 -void CAST_cbc_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *ks, unsigned char *iv, - int enc); -OSSL_DEPRECATEDIN_3_0 -void CAST_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *schedule, - unsigned char *ivec, int *num, int enc); -OSSL_DEPRECATEDIN_3_0 -void CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *schedule, - unsigned char *ivec, int *num); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cmac.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/cmac.h deleted file mode 100644 index f508618..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cmac.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2010-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CMAC_H -# define OPENSSL_CMAC_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_CMAC_H -# endif - -# ifndef OPENSSL_NO_CMAC - -# ifdef __cplusplus -extern "C" { -# endif - -# include - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* Opaque */ -typedef struct CMAC_CTX_st CMAC_CTX; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 CMAC_CTX *CMAC_CTX_new(void); -OSSL_DEPRECATEDIN_3_0 void CMAC_CTX_cleanup(CMAC_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 void CMAC_CTX_free(CMAC_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 int CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in); -OSSL_DEPRECATEDIN_3_0 int CMAC_Init(CMAC_CTX *ctx, - const void *key, size_t keylen, - const EVP_CIPHER *cipher, ENGINE *impl); -OSSL_DEPRECATEDIN_3_0 int CMAC_Update(CMAC_CTX *ctx, - const void *data, size_t dlen); -OSSL_DEPRECATEDIN_3_0 int CMAC_Final(CMAC_CTX *ctx, - unsigned char *out, size_t *poutlen); -OSSL_DEPRECATEDIN_3_0 int CMAC_resume(CMAC_CTX *ctx); -# endif - -# ifdef __cplusplus -} -# endif - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cmp.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/cmp.h deleted file mode 100644 index 0e29eee..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cmp.h +++ /dev/null @@ -1,727 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\cmp.h.in - * - * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. - * Copyright Nokia 2007-2019 - * Copyright Siemens AG 2015-2019 - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_CMP_H -# define OPENSSL_CMP_H - -# include -# ifndef OPENSSL_NO_CMP - -# include -# include -# include -# include - -/* explicit #includes not strictly needed since implied by the above: */ -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# define OSSL_CMP_PVNO_2 2 -# define OSSL_CMP_PVNO_3 3 -# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ - -/*- - * PKIFailureInfo ::= BIT STRING { - * -- since we can fail in more than one way! - * -- More codes may be added in the future if/when required. - * badAlg (0), - * -- unrecognized or unsupported Algorithm Identifier - * badMessageCheck (1), - * -- integrity check failed (e.g., signature did not verify) - * badRequest (2), - * -- transaction not permitted or supported - * badTime (3), - * -- messageTime was not sufficiently close to the system time, - * -- as defined by local policy - * badCertId (4), - * -- no certificate could be found matching the provided criteria - * badDataFormat (5), - * -- the data submitted has the wrong format - * wrongAuthority (6), - * -- the authority indicated in the request is different from the - * -- one creating the response token - * incorrectData (7), - * -- the requester's data is incorrect (for notary services) - * missingTimeStamp (8), - * -- when the timestamp is missing but should be there - * -- (by policy) - * badPOP (9), - * -- the proof-of-possession failed - * certRevoked (10), - * -- the certificate has already been revoked - * certConfirmed (11), - * -- the certificate has already been confirmed - * wrongIntegrity (12), - * -- invalid integrity, password based instead of signature or - * -- vice versa - * badRecipientNonce (13), - * -- invalid recipient nonce, either missing or wrong value - * timeNotAvailable (14), - * -- the TSA's time source is not available - * unacceptedPolicy (15), - * -- the requested TSA policy is not supported by the TSA. - * unacceptedExtension (16), - * -- the requested extension is not supported by the TSA. - * addInfoNotAvailable (17), - * -- the additional information requested could not be - * -- understood or is not available - * badSenderNonce (18), - * -- invalid sender nonce, either missing or wrong size - * badCertTemplate (19), - * -- invalid cert. template or missing mandatory information - * signerNotTrusted (20), - * -- signer of the message unknown or not trusted - * transactionIdInUse (21), - * -- the transaction identifier is already in use - * unsupportedVersion (22), - * -- the version of the message is not supported - * notAuthorized (23), - * -- the sender was not authorized to make the preceding - * -- request or perform the preceding action - * systemUnavail (24), - * -- the request cannot be handled due to system unavailability - * systemFailure (25), - * -- the request cannot be handled due to system failure - * duplicateCertReq (26) - * -- certificate cannot be issued because a duplicate - * -- certificate already exists - * } - */ -# define OSSL_CMP_PKIFAILUREINFO_badAlg 0 -# define OSSL_CMP_PKIFAILUREINFO_badMessageCheck 1 -# define OSSL_CMP_PKIFAILUREINFO_badRequest 2 -# define OSSL_CMP_PKIFAILUREINFO_badTime 3 -# define OSSL_CMP_PKIFAILUREINFO_badCertId 4 -# define OSSL_CMP_PKIFAILUREINFO_badDataFormat 5 -# define OSSL_CMP_PKIFAILUREINFO_wrongAuthority 6 -# define OSSL_CMP_PKIFAILUREINFO_incorrectData 7 -# define OSSL_CMP_PKIFAILUREINFO_missingTimeStamp 8 -# define OSSL_CMP_PKIFAILUREINFO_badPOP 9 -# define OSSL_CMP_PKIFAILUREINFO_certRevoked 10 -# define OSSL_CMP_PKIFAILUREINFO_certConfirmed 11 -# define OSSL_CMP_PKIFAILUREINFO_wrongIntegrity 12 -# define OSSL_CMP_PKIFAILUREINFO_badRecipientNonce 13 -# define OSSL_CMP_PKIFAILUREINFO_timeNotAvailable 14 -# define OSSL_CMP_PKIFAILUREINFO_unacceptedPolicy 15 -# define OSSL_CMP_PKIFAILUREINFO_unacceptedExtension 16 -# define OSSL_CMP_PKIFAILUREINFO_addInfoNotAvailable 17 -# define OSSL_CMP_PKIFAILUREINFO_badSenderNonce 18 -# define OSSL_CMP_PKIFAILUREINFO_badCertTemplate 19 -# define OSSL_CMP_PKIFAILUREINFO_signerNotTrusted 20 -# define OSSL_CMP_PKIFAILUREINFO_transactionIdInUse 21 -# define OSSL_CMP_PKIFAILUREINFO_unsupportedVersion 22 -# define OSSL_CMP_PKIFAILUREINFO_notAuthorized 23 -# define OSSL_CMP_PKIFAILUREINFO_systemUnavail 24 -# define OSSL_CMP_PKIFAILUREINFO_systemFailure 25 -# define OSSL_CMP_PKIFAILUREINFO_duplicateCertReq 26 -# define OSSL_CMP_PKIFAILUREINFO_MAX 26 -# define OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN \ - ((1 << (OSSL_CMP_PKIFAILUREINFO_MAX + 1)) - 1) -# if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX -# error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int -# endif -typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; - -# define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) -# define OSSL_CMP_CTX_FAILINFO_badMessageCheck (1 << 1) -# define OSSL_CMP_CTX_FAILINFO_badRequest (1 << 2) -# define OSSL_CMP_CTX_FAILINFO_badTime (1 << 3) -# define OSSL_CMP_CTX_FAILINFO_badCertId (1 << 4) -# define OSSL_CMP_CTX_FAILINFO_badDataFormat (1 << 5) -# define OSSL_CMP_CTX_FAILINFO_wrongAuthority (1 << 6) -# define OSSL_CMP_CTX_FAILINFO_incorrectData (1 << 7) -# define OSSL_CMP_CTX_FAILINFO_missingTimeStamp (1 << 8) -# define OSSL_CMP_CTX_FAILINFO_badPOP (1 << 9) -# define OSSL_CMP_CTX_FAILINFO_certRevoked (1 << 10) -# define OSSL_CMP_CTX_FAILINFO_certConfirmed (1 << 11) -# define OSSL_CMP_CTX_FAILINFO_wrongIntegrity (1 << 12) -# define OSSL_CMP_CTX_FAILINFO_badRecipientNonce (1 << 13) -# define OSSL_CMP_CTX_FAILINFO_timeNotAvailable (1 << 14) -# define OSSL_CMP_CTX_FAILINFO_unacceptedPolicy (1 << 15) -# define OSSL_CMP_CTX_FAILINFO_unacceptedExtension (1 << 16) -# define OSSL_CMP_CTX_FAILINFO_addInfoNotAvailable (1 << 17) -# define OSSL_CMP_CTX_FAILINFO_badSenderNonce (1 << 18) -# define OSSL_CMP_CTX_FAILINFO_badCertTemplate (1 << 19) -# define OSSL_CMP_CTX_FAILINFO_signerNotTrusted (1 << 20) -# define OSSL_CMP_CTX_FAILINFO_transactionIdInUse (1 << 21) -# define OSSL_CMP_CTX_FAILINFO_unsupportedVersion (1 << 22) -# define OSSL_CMP_CTX_FAILINFO_notAuthorized (1 << 23) -# define OSSL_CMP_CTX_FAILINFO_systemUnavail (1 << 24) -# define OSSL_CMP_CTX_FAILINFO_systemFailure (1 << 25) -# define OSSL_CMP_CTX_FAILINFO_duplicateCertReq (1 << 26) - -/*- - * PKIStatus ::= INTEGER { - * accepted (0), - * -- you got exactly what you asked for - * grantedWithMods (1), - * -- you got something like what you asked for; the - * -- requester is responsible for ascertaining the differences - * rejection (2), - * -- you don't get it, more information elsewhere in the message - * waiting (3), - * -- the request body part has not yet been processed; expect to - * -- hear more later (note: proper handling of this status - * -- response MAY use the polling req/rep PKIMessages specified - * -- in Section 5.3.22; alternatively, polling in the underlying - * -- transport layer MAY have some utility in this regard) - * revocationWarning (4), - * -- this message contains a warning that a revocation is - * -- imminent - * revocationNotification (5), - * -- notification that a revocation has occurred - * keyUpdateWarning (6) - * -- update already done for the oldCertId specified in - * -- CertReqMsg - * } - */ -# define OSSL_CMP_PKISTATUS_request -3 -# define OSSL_CMP_PKISTATUS_trans -2 -# define OSSL_CMP_PKISTATUS_unspecified -1 -# define OSSL_CMP_PKISTATUS_accepted 0 -# define OSSL_CMP_PKISTATUS_grantedWithMods 1 -# define OSSL_CMP_PKISTATUS_rejection 2 -# define OSSL_CMP_PKISTATUS_waiting 3 -# define OSSL_CMP_PKISTATUS_revocationWarning 4 -# define OSSL_CMP_PKISTATUS_revocationNotification 5 -# define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 -typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; - -DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) - -# define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 -# define OSSL_CMP_CERTORENCCERT_ENCRYPTEDCERT 1 - -/* data type declarations */ -typedef struct ossl_cmp_ctx_st OSSL_CMP_CTX; -typedef struct ossl_cmp_pkiheader_st OSSL_CMP_PKIHEADER; -DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKIHEADER) -typedef struct ossl_cmp_msg_st OSSL_CMP_MSG; -DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_MSG) -DECLARE_ASN1_ENCODE_FUNCTIONS(OSSL_CMP_MSG, OSSL_CMP_MSG, OSSL_CMP_MSG) -typedef struct ossl_cmp_certstatus_st OSSL_CMP_CERTSTATUS; -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CERTSTATUS, OSSL_CMP_CERTSTATUS, OSSL_CMP_CERTSTATUS) -#define sk_OSSL_CMP_CERTSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CERTSTATUS_value(sk, idx) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk), (idx))) -#define sk_OSSL_CMP_CERTSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CERTSTATUS_compfunc_type(cmp))) -#define sk_OSSL_CMP_CERTSTATUS_new_null() ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_new_null()) -#define sk_OSSL_CMP_CERTSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CERTSTATUS_compfunc_type(cmp), (n))) -#define sk_OSSL_CMP_CERTSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), (n)) -#define sk_OSSL_CMP_CERTSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CERTSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CERTSTATUS_delete(sk, i) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), (i))) -#define sk_OSSL_CMP_CERTSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr))) -#define sk_OSSL_CMP_CERTSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr)) -#define sk_OSSL_CMP_CERTSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr)) -#define sk_OSSL_CMP_CERTSTATUS_pop(sk) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk))) -#define sk_OSSL_CMP_CERTSTATUS_shift(sk) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk))) -#define sk_OSSL_CMP_CERTSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_freefunc_type(freefunc)) -#define sk_OSSL_CMP_CERTSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr), (idx)) -#define sk_OSSL_CMP_CERTSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr))) -#define sk_OSSL_CMP_CERTSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr)) -#define sk_OSSL_CMP_CERTSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr)) -#define sk_OSSL_CMP_CERTSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr), pnum) -#define sk_OSSL_CMP_CERTSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CERTSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CERTSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk))) -#define sk_OSSL_CMP_CERTSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CERTSTATUS_freefunc_type(freefunc))) -#define sk_OSSL_CMP_CERTSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CERTSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_compfunc_type(cmp))) - -typedef struct ossl_cmp_itav_st OSSL_CMP_ITAV; -DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_ITAV) -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) -#define sk_OSSL_CMP_ITAV_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk)) -#define sk_OSSL_CMP_ITAV_value(sk, idx) ((OSSL_CMP_ITAV *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), (idx))) -#define sk_OSSL_CMP_ITAV_new(cmp) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) -#define sk_OSSL_CMP_ITAV_new_null() ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_new_null()) -#define sk_OSSL_CMP_ITAV_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp), (n))) -#define sk_OSSL_CMP_ITAV_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_ITAV_sk_type(sk), (n)) -#define sk_OSSL_CMP_ITAV_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_ITAV_sk_type(sk)) -#define sk_OSSL_CMP_ITAV_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_ITAV_sk_type(sk)) -#define sk_OSSL_CMP_ITAV_delete(sk, i) ((OSSL_CMP_ITAV *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_ITAV_sk_type(sk), (i))) -#define sk_OSSL_CMP_ITAV_delete_ptr(sk, ptr) ((OSSL_CMP_ITAV *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr))) -#define sk_OSSL_CMP_ITAV_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr)) -#define sk_OSSL_CMP_ITAV_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr)) -#define sk_OSSL_CMP_ITAV_pop(sk) ((OSSL_CMP_ITAV *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_ITAV_sk_type(sk))) -#define sk_OSSL_CMP_ITAV_shift(sk) ((OSSL_CMP_ITAV *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_ITAV_sk_type(sk))) -#define sk_OSSL_CMP_ITAV_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc)) -#define sk_OSSL_CMP_ITAV_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr), (idx)) -#define sk_OSSL_CMP_ITAV_set(sk, idx, ptr) ((OSSL_CMP_ITAV *)OPENSSL_sk_set(ossl_check_OSSL_CMP_ITAV_sk_type(sk), (idx), ossl_check_OSSL_CMP_ITAV_type(ptr))) -#define sk_OSSL_CMP_ITAV_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr)) -#define sk_OSSL_CMP_ITAV_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr)) -#define sk_OSSL_CMP_ITAV_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr), pnum) -#define sk_OSSL_CMP_ITAV_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_ITAV_sk_type(sk)) -#define sk_OSSL_CMP_ITAV_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk)) -#define sk_OSSL_CMP_ITAV_dup(sk) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk))) -#define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) -#define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) - - -typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) -#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) -#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) -#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) -#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) -#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) -#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) -#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) -#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) -#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) -#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) -#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) -#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) -#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) -#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) -#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) -#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) -#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) -#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) -#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) -#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) - - -typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; -# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free -typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; -DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) -# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE -# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num -# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value -# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push -# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free - -typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; -typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; -DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) -DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_PKISI) -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_PKISI, OSSL_CMP_PKISI, OSSL_CMP_PKISI) -#define sk_OSSL_CMP_PKISI_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk)) -#define sk_OSSL_CMP_PKISI_value(sk, idx) ((OSSL_CMP_PKISI *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk), (idx))) -#define sk_OSSL_CMP_PKISI_new(cmp) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_PKISI_compfunc_type(cmp))) -#define sk_OSSL_CMP_PKISI_new_null() ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_new_null()) -#define sk_OSSL_CMP_PKISI_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_PKISI_compfunc_type(cmp), (n))) -#define sk_OSSL_CMP_PKISI_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_PKISI_sk_type(sk), (n)) -#define sk_OSSL_CMP_PKISI_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_PKISI_sk_type(sk)) -#define sk_OSSL_CMP_PKISI_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_PKISI_sk_type(sk)) -#define sk_OSSL_CMP_PKISI_delete(sk, i) ((OSSL_CMP_PKISI *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_PKISI_sk_type(sk), (i))) -#define sk_OSSL_CMP_PKISI_delete_ptr(sk, ptr) ((OSSL_CMP_PKISI *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr))) -#define sk_OSSL_CMP_PKISI_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr)) -#define sk_OSSL_CMP_PKISI_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr)) -#define sk_OSSL_CMP_PKISI_pop(sk) ((OSSL_CMP_PKISI *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_PKISI_sk_type(sk))) -#define sk_OSSL_CMP_PKISI_shift(sk) ((OSSL_CMP_PKISI *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_PKISI_sk_type(sk))) -#define sk_OSSL_CMP_PKISI_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_freefunc_type(freefunc)) -#define sk_OSSL_CMP_PKISI_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr), (idx)) -#define sk_OSSL_CMP_PKISI_set(sk, idx, ptr) ((OSSL_CMP_PKISI *)OPENSSL_sk_set(ossl_check_OSSL_CMP_PKISI_sk_type(sk), (idx), ossl_check_OSSL_CMP_PKISI_type(ptr))) -#define sk_OSSL_CMP_PKISI_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr)) -#define sk_OSSL_CMP_PKISI_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr)) -#define sk_OSSL_CMP_PKISI_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr), pnum) -#define sk_OSSL_CMP_PKISI_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_PKISI_sk_type(sk)) -#define sk_OSSL_CMP_PKISI_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk)) -#define sk_OSSL_CMP_PKISI_dup(sk) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk))) -#define sk_OSSL_CMP_PKISI_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_PKISI_freefunc_type(freefunc))) -#define sk_OSSL_CMP_PKISI_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_PKISI_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_compfunc_type(cmp))) - -typedef struct ossl_cmp_certrepmessage_st OSSL_CMP_CERTREPMESSAGE; -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CERTREPMESSAGE, OSSL_CMP_CERTREPMESSAGE, OSSL_CMP_CERTREPMESSAGE) -#define sk_OSSL_CMP_CERTREPMESSAGE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) -#define sk_OSSL_CMP_CERTREPMESSAGE_value(sk, idx) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (idx))) -#define sk_OSSL_CMP_CERTREPMESSAGE_new(cmp) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CERTREPMESSAGE_compfunc_type(cmp))) -#define sk_OSSL_CMP_CERTREPMESSAGE_new_null() ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_new_null()) -#define sk_OSSL_CMP_CERTREPMESSAGE_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CERTREPMESSAGE_compfunc_type(cmp), (n))) -#define sk_OSSL_CMP_CERTREPMESSAGE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (n)) -#define sk_OSSL_CMP_CERTREPMESSAGE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) -#define sk_OSSL_CMP_CERTREPMESSAGE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) -#define sk_OSSL_CMP_CERTREPMESSAGE_delete(sk, i) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (i))) -#define sk_OSSL_CMP_CERTREPMESSAGE_delete_ptr(sk, ptr) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr))) -#define sk_OSSL_CMP_CERTREPMESSAGE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr)) -#define sk_OSSL_CMP_CERTREPMESSAGE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr)) -#define sk_OSSL_CMP_CERTREPMESSAGE_pop(sk) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))) -#define sk_OSSL_CMP_CERTREPMESSAGE_shift(sk) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))) -#define sk_OSSL_CMP_CERTREPMESSAGE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_freefunc_type(freefunc)) -#define sk_OSSL_CMP_CERTREPMESSAGE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr), (idx)) -#define sk_OSSL_CMP_CERTREPMESSAGE_set(sk, idx, ptr) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (idx), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr))) -#define sk_OSSL_CMP_CERTREPMESSAGE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr)) -#define sk_OSSL_CMP_CERTREPMESSAGE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr)) -#define sk_OSSL_CMP_CERTREPMESSAGE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr), pnum) -#define sk_OSSL_CMP_CERTREPMESSAGE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) -#define sk_OSSL_CMP_CERTREPMESSAGE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) -#define sk_OSSL_CMP_CERTREPMESSAGE_dup(sk) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))) -#define sk_OSSL_CMP_CERTREPMESSAGE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CERTREPMESSAGE_freefunc_type(freefunc))) -#define sk_OSSL_CMP_CERTREPMESSAGE_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CERTREPMESSAGE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_compfunc_type(cmp))) - -typedef struct ossl_cmp_pollrep_st OSSL_CMP_POLLREP; -typedef STACK_OF(OSSL_CMP_POLLREP) OSSL_CMP_POLLREPCONTENT; -typedef struct ossl_cmp_certresponse_st OSSL_CMP_CERTRESPONSE; -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CERTRESPONSE, OSSL_CMP_CERTRESPONSE, OSSL_CMP_CERTRESPONSE) -#define sk_OSSL_CMP_CERTRESPONSE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk)) -#define sk_OSSL_CMP_CERTRESPONSE_value(sk, idx) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk), (idx))) -#define sk_OSSL_CMP_CERTRESPONSE_new(cmp) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CERTRESPONSE_compfunc_type(cmp))) -#define sk_OSSL_CMP_CERTRESPONSE_new_null() ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_new_null()) -#define sk_OSSL_CMP_CERTRESPONSE_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CERTRESPONSE_compfunc_type(cmp), (n))) -#define sk_OSSL_CMP_CERTRESPONSE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), (n)) -#define sk_OSSL_CMP_CERTRESPONSE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk)) -#define sk_OSSL_CMP_CERTRESPONSE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk)) -#define sk_OSSL_CMP_CERTRESPONSE_delete(sk, i) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), (i))) -#define sk_OSSL_CMP_CERTRESPONSE_delete_ptr(sk, ptr) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr))) -#define sk_OSSL_CMP_CERTRESPONSE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr)) -#define sk_OSSL_CMP_CERTRESPONSE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr)) -#define sk_OSSL_CMP_CERTRESPONSE_pop(sk) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk))) -#define sk_OSSL_CMP_CERTRESPONSE_shift(sk) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk))) -#define sk_OSSL_CMP_CERTRESPONSE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_freefunc_type(freefunc)) -#define sk_OSSL_CMP_CERTRESPONSE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr), (idx)) -#define sk_OSSL_CMP_CERTRESPONSE_set(sk, idx, ptr) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), (idx), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr))) -#define sk_OSSL_CMP_CERTRESPONSE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr)) -#define sk_OSSL_CMP_CERTRESPONSE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr)) -#define sk_OSSL_CMP_CERTRESPONSE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr), pnum) -#define sk_OSSL_CMP_CERTRESPONSE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk)) -#define sk_OSSL_CMP_CERTRESPONSE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk)) -#define sk_OSSL_CMP_CERTRESPONSE_dup(sk) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk))) -#define sk_OSSL_CMP_CERTRESPONSE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CERTRESPONSE_freefunc_type(freefunc))) -#define sk_OSSL_CMP_CERTRESPONSE_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CERTRESPONSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_compfunc_type(cmp))) - -typedef STACK_OF(ASN1_UTF8STRING) OSSL_CMP_PKIFREETEXT; - -/* - * function DECLARATIONS - */ - -/* from cmp_asn.c */ -OSSL_CMP_ITAV *OSSL_CMP_ITAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); -void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, - ASN1_TYPE *value); -ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); -ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, - OSSL_CMP_ITAV *itav); -void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); - -OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) - *certProfile); -int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, - STACK_OF(ASN1_UTF8STRING) **out); -OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); -int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); - -OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); -int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); -OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, - const X509 *newWithOld, - const X509 *oldWithNew); -int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, - X509 **newWithNew, - X509 **newWithOld, - X509 **oldWithNew); - -OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, - const X509 *cert, int only_DN); -OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, - const GENERAL_NAMES *issuer, - const ASN1_TIME *thisUpdate); -int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, - DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, - ASN1_TIME **thisUpdate); -void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); -OSSL_CMP_ITAV -*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); -int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, - STACK_OF(OSSL_CMP_CRLSTATUS) **out); -OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); -int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); -OSSL_CMP_ITAV -*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, - OSSL_CMP_ATAVS *keySpec); -int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, - OSSL_CRMF_CERTTEMPLATE **certTemplate, - OSSL_CMP_ATAVS **keySpec); - -OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); -void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, - ASN1_TYPE *value); -ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); -ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); -OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); -X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); -OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); -int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); -int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); - -void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); - -/* from cmp_ctx.c */ -OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); -void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); -int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); -OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); -const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); -/* CMP general options: */ -# define OSSL_CMP_OPT_LOG_VERBOSITY 0 -/* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 -# define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 -# define OSSL_CMP_OPT_USE_TLS 13 -/* CMP request options: */ -# define OSSL_CMP_OPT_VALIDITY_DAYS 20 -# define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 -# define OSSL_CMP_OPT_SUBJECTALTNAME_CRITICAL 22 -# define OSSL_CMP_OPT_POLICIES_CRITICAL 23 -# define OSSL_CMP_OPT_POPO_METHOD 24 -# define OSSL_CMP_OPT_IMPLICIT_CONFIRM 25 -# define OSSL_CMP_OPT_DISABLE_CONFIRM 26 -# define OSSL_CMP_OPT_REVOCATION_REASON 27 -/* CMP protection options: */ -# define OSSL_CMP_OPT_UNPROTECTED_SEND 30 -# define OSSL_CMP_OPT_UNPROTECTED_ERRORS 31 -# define OSSL_CMP_OPT_OWF_ALGNID 32 -# define OSSL_CMP_OPT_MAC_ALGNID 33 -# define OSSL_CMP_OPT_DIGEST_ALGNID 34 -# define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 -# define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 -# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 -int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); -int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); -/* CMP-specific callback for logging and outputting the error queue: */ -int OSSL_CMP_CTX_set_log_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_log_cb_t cb); -# define OSSL_CMP_CTX_set_log_verbosity(ctx, level) \ - OSSL_CMP_CTX_set_option(ctx, OSSL_CMP_OPT_LOG_VERBOSITY, level) -void OSSL_CMP_CTX_print_errors(const OSSL_CMP_CTX *ctx); -/* message transfer: */ -int OSSL_CMP_CTX_set1_serverPath(OSSL_CMP_CTX *ctx, const char *path); -int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); -int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); -int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); -int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); -# ifndef OPENSSL_NO_HTTP -int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); -int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); -void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); -# endif -typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, - const OSSL_CMP_MSG *req); -int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); -int OSSL_CMP_CTX_set_transfer_cb_arg(OSSL_CMP_CTX *ctx, void *arg); -void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); -/* server authentication: */ -int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); -int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); -int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); -# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore -X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); -# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore -int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); -STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); -/* client authentication: */ -int OSSL_CMP_CTX_set1_cert(OSSL_CMP_CTX *ctx, X509 *cert); -int OSSL_CMP_CTX_build_cert_chain(OSSL_CMP_CTX *ctx, X509_STORE *own_trusted, - STACK_OF(X509) *candidates); -int OSSL_CMP_CTX_set1_pkey(OSSL_CMP_CTX *ctx, EVP_PKEY *pkey); -int OSSL_CMP_CTX_set1_referenceValue(OSSL_CMP_CTX *ctx, - const unsigned char *ref, int len); -int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, - const unsigned char *sec, int len); -/* CMP message header and extra certificates: */ -int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); -int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); -int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); -STACK_OF(OSSL_CMP_ITAV) - *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); -int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, - STACK_OF(X509) *extraCertsOut); -/* certificate template: */ -int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); -EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); -int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); -int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); -int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); -int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, - const GENERAL_NAME *name); -int OSSL_CMP_CTX_set0_reqExtensions(OSSL_CMP_CTX *ctx, X509_EXTENSIONS *exts); -int OSSL_CMP_CTX_reqExtensions_have_SAN(OSSL_CMP_CTX *ctx); -int OSSL_CMP_CTX_push0_policy(OSSL_CMP_CTX *ctx, POLICYINFO *pinfo); -int OSSL_CMP_CTX_set1_oldCert(OSSL_CMP_CTX *ctx, X509 *cert); -int OSSL_CMP_CTX_set1_p10CSR(OSSL_CMP_CTX *ctx, const X509_REQ *csr); -/* misc body contents: */ -int OSSL_CMP_CTX_push0_genm_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); -/* certificate confirmation: */ -typedef int (*OSSL_CMP_certConf_cb_t) (OSSL_CMP_CTX *ctx, X509 *cert, - int fail_info, const char **txt); -int OSSL_CMP_certConf_cb(OSSL_CMP_CTX *ctx, X509 *cert, int fail_info, - const char **text); -int OSSL_CMP_CTX_set_certConf_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_certConf_cb_t cb); -int OSSL_CMP_CTX_set_certConf_cb_arg(OSSL_CMP_CTX *ctx, void *arg); -void *OSSL_CMP_CTX_get_certConf_cb_arg(const OSSL_CMP_CTX *ctx); -/* result fetching: */ -int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); -OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); -int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); -# define OSSL_CMP_PKISI_BUFLEN 1024 -X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); -X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); -STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); -STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); -STACK_OF(X509) *OSSL_CMP_CTX_get1_extraCertsIn(const OSSL_CMP_CTX *ctx); -int OSSL_CMP_CTX_set1_transactionID(OSSL_CMP_CTX *ctx, - const ASN1_OCTET_STRING *id); -int OSSL_CMP_CTX_set1_senderNonce(OSSL_CMP_CTX *ctx, - const ASN1_OCTET_STRING *nonce); - -/* from cmp_status.c */ -char *OSSL_CMP_CTX_snprint_PKIStatus(const OSSL_CMP_CTX *ctx, char *buf, - size_t bufsize); -char *OSSL_CMP_snprint_PKIStatusInfo(const OSSL_CMP_PKISI *statusInfo, - char *buf, size_t bufsize); -OSSL_CMP_PKISI * -OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); - -/* from cmp_hdr.c */ -ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const - OSSL_CMP_PKIHEADER *hdr); -ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); -STACK_OF(OSSL_CMP_ITAV) - *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); - -/* from cmp_msg.c */ -OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); -int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); -X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); -int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); -int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); -OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); -OSSL_CMP_MSG *OSSL_CMP_MSG_read(const char *file, OSSL_LIB_CTX *libctx, - const char *propq); -int OSSL_CMP_MSG_write(const char *file, const OSSL_CMP_MSG *msg); -OSSL_CMP_MSG *d2i_OSSL_CMP_MSG_bio(BIO *bio, OSSL_CMP_MSG **msg); -int i2d_OSSL_CMP_MSG_bio(BIO *bio, const OSSL_CMP_MSG *msg); - -/* from cmp_vfy.c */ -int OSSL_CMP_validate_msg(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *msg); -int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, - X509_STORE *trusted_store, X509 *cert); - -/* from cmp_http.c */ -# ifndef OPENSSL_NO_HTTP -OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, - const OSSL_CMP_MSG *req); -# endif - -/* from cmp_server.c */ -typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; -OSSL_CMP_MSG *OSSL_CMP_SRV_process_request(OSSL_CMP_SRV_CTX *srv_ctx, - const OSSL_CMP_MSG *req); -OSSL_CMP_MSG * OSSL_CMP_CTX_server_perform(OSSL_CMP_CTX *client_ctx, - const OSSL_CMP_MSG *req); -OSSL_CMP_SRV_CTX *OSSL_CMP_SRV_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); -void OSSL_CMP_SRV_CTX_free(OSSL_CMP_SRV_CTX *srv_ctx); -typedef OSSL_CMP_PKISI *(*OSSL_CMP_SRV_cert_request_cb_t) - (OSSL_CMP_SRV_CTX *srv_ctx, const OSSL_CMP_MSG *req, int certReqId, - const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr, - X509 **certOut, STACK_OF(X509) **chainOut, STACK_OF(X509) **caPubs); -typedef OSSL_CMP_PKISI *(*OSSL_CMP_SRV_rr_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, - const OSSL_CMP_MSG *req, - const X509_NAME *issuer, - const ASN1_INTEGER *serial); -typedef int (*OSSL_CMP_SRV_genm_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, - const OSSL_CMP_MSG *req, - const STACK_OF(OSSL_CMP_ITAV) *in, - STACK_OF(OSSL_CMP_ITAV) **out); -typedef void (*OSSL_CMP_SRV_error_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, - const OSSL_CMP_MSG *req, - const OSSL_CMP_PKISI *statusInfo, - const ASN1_INTEGER *errorCode, - const OSSL_CMP_PKIFREETEXT *errDetails); -typedef int (*OSSL_CMP_SRV_certConf_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, - const OSSL_CMP_MSG *req, - int certReqId, - const ASN1_OCTET_STRING *certHash, - const OSSL_CMP_PKISI *si); -typedef int (*OSSL_CMP_SRV_pollReq_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, - const OSSL_CMP_MSG *req, int certReqId, - OSSL_CMP_MSG **certReq, - int64_t *check_after); -int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, - OSSL_CMP_SRV_cert_request_cb_t process_cert_request, - OSSL_CMP_SRV_rr_cb_t process_rr, - OSSL_CMP_SRV_genm_cb_t process_genm, - OSSL_CMP_SRV_error_cb_t process_error, - OSSL_CMP_SRV_certConf_cb_t process_certConf, - OSSL_CMP_SRV_pollReq_cb_t process_pollReq); -typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, - const OSSL_CMP_MSG *req); -typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, - const ASN1_OCTET_STRING *id); -int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, - OSSL_CMP_SRV_delayed_delivery_cb_t delay, - OSSL_CMP_SRV_clean_transaction_cb_t clean); -OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); -void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); -int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, - int val); -int OSSL_CMP_SRV_CTX_set_accept_unprotected(OSSL_CMP_SRV_CTX *srv_ctx, int val); -int OSSL_CMP_SRV_CTX_set_accept_raverified(OSSL_CMP_SRV_CTX *srv_ctx, int val); -int OSSL_CMP_SRV_CTX_set_grant_implicit_confirm(OSSL_CMP_SRV_CTX *srv_ctx, - int val); - -/* from cmp_client.c */ -X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, - const OSSL_CRMF_MSG *crm); -# define OSSL_CMP_IR 0 -# define OSSL_CMP_CR 2 -# define OSSL_CMP_P10CR 4 -# define OSSL_CMP_KUR 7 -# define OSSL_CMP_GENM 21 -# define OSSL_CMP_ERROR 23 -# define OSSL_CMP_exec_IR_ses(ctx) \ - OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) -# define OSSL_CMP_exec_CR_ses(ctx) \ - OSSL_CMP_exec_certreq(ctx, OSSL_CMP_CR, NULL) -# define OSSL_CMP_exec_P10CR_ses(ctx) \ - OSSL_CMP_exec_certreq(ctx, OSSL_CMP_P10CR, NULL) -# define OSSL_CMP_exec_KUR_ses(ctx) \ - OSSL_CMP_exec_certreq(ctx, OSSL_CMP_KUR, NULL) -int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, - const OSSL_CRMF_MSG *crm, int *checkAfter); -int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); -STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); - -/* from cmp_genm.c */ -int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); -int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, - const X509 *oldWithOld, X509 **newWithNew, - X509 **newWithOld, X509 **oldWithNew); -int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, - const X509_CRL *last_crl, - X509_CRL **crl); -int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, - OSSL_CRMF_CERTTEMPLATE **certTemplate, - OSSL_CMP_ATAVS **keySpec); - -# ifdef __cplusplus -} -# endif -# endif /* !defined(OPENSSL_NO_CMP) */ -#endif /* !defined(OPENSSL_CMP_H) */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cmp_util.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/cmp_util.h deleted file mode 100644 index 9a16892..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cmp_util.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. - * Copyright Nokia 2007-2019 - * Copyright Siemens AG 2015-2019 - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CMP_UTIL_H -# define OPENSSL_CMP_UTIL_H -# pragma once - -# include -# ifndef OPENSSL_NO_CMP - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -int OSSL_CMP_log_open(void); -void OSSL_CMP_log_close(void); -# define OSSL_CMP_LOG_PREFIX "CMP " - -/* - * generalized logging/error callback mirroring the severity levels of syslog.h - */ -typedef int OSSL_CMP_severity; -# define OSSL_CMP_LOG_EMERG 0 -# define OSSL_CMP_LOG_ALERT 1 -# define OSSL_CMP_LOG_CRIT 2 -# define OSSL_CMP_LOG_ERR 3 -# define OSSL_CMP_LOG_WARNING 4 -# define OSSL_CMP_LOG_NOTICE 5 -# define OSSL_CMP_LOG_INFO 6 -# define OSSL_CMP_LOG_DEBUG 7 -# define OSSL_CMP_LOG_TRACE 8 -# define OSSL_CMP_LOG_MAX OSSL_CMP_LOG_TRACE -typedef int (*OSSL_CMP_log_cb_t)(const char *func, const char *file, int line, - OSSL_CMP_severity level, const char *msg); - -int OSSL_CMP_print_to_bio(BIO *bio, const char *component, const char *file, - int line, OSSL_CMP_severity level, const char *msg); -/* use of the logging callback for outputting error queue */ -void OSSL_CMP_print_errors_cb(OSSL_CMP_log_cb_t log_fn); - -# ifdef __cplusplus -} -# endif -# endif /* !defined(OPENSSL_NO_CMP) */ -#endif /* !defined(OPENSSL_CMP_UTIL_H) */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cmperr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/cmperr.h deleted file mode 100644 index 62137aa..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cmperr.h +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CMPERR_H -# define OPENSSL_CMPERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_CMP - - -/* - * CMP reason codes. - */ -# define CMP_R_ALGORITHM_NOT_SUPPORTED 139 -# define CMP_R_BAD_CHECKAFTER_IN_POLLREP 167 -# define CMP_R_BAD_REQUEST_ID 108 -# define CMP_R_CERTHASH_UNMATCHED 156 -# define CMP_R_CERTID_NOT_FOUND 109 -# define CMP_R_CERTIFICATE_NOT_ACCEPTED 169 -# define CMP_R_CERTIFICATE_NOT_FOUND 112 -# define CMP_R_CERTREQMSG_NOT_FOUND 157 -# define CMP_R_CERTRESPONSE_NOT_FOUND 113 -# define CMP_R_CERT_AND_KEY_DO_NOT_MATCH 114 -# define CMP_R_CHECKAFTER_OUT_OF_RANGE 181 -# define CMP_R_ENCOUNTERED_KEYUPDATEWARNING 176 -# define CMP_R_ENCOUNTERED_WAITING 162 -# define CMP_R_ERROR_CALCULATING_PROTECTION 115 -# define CMP_R_ERROR_CREATING_CERTCONF 116 -# define CMP_R_ERROR_CREATING_CERTREP 117 -# define CMP_R_ERROR_CREATING_CERTREQ 163 -# define CMP_R_ERROR_CREATING_ERROR 118 -# define CMP_R_ERROR_CREATING_GENM 119 -# define CMP_R_ERROR_CREATING_GENP 120 -# define CMP_R_ERROR_CREATING_PKICONF 122 -# define CMP_R_ERROR_CREATING_POLLREP 123 -# define CMP_R_ERROR_CREATING_POLLREQ 124 -# define CMP_R_ERROR_CREATING_RP 125 -# define CMP_R_ERROR_CREATING_RR 126 -# define CMP_R_ERROR_PARSING_PKISTATUS 107 -# define CMP_R_ERROR_PROCESSING_MESSAGE 158 -# define CMP_R_ERROR_PROTECTING_MESSAGE 127 -# define CMP_R_ERROR_SETTING_CERTHASH 128 -# define CMP_R_ERROR_UNEXPECTED_CERTCONF 160 -# define CMP_R_ERROR_VALIDATING_PROTECTION 140 -# define CMP_R_ERROR_VALIDATING_SIGNATURE 171 -# define CMP_R_EXPECTED_POLLREQ 104 -# define CMP_R_FAILED_BUILDING_OWN_CHAIN 164 -# define CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY 203 -# define CMP_R_FAILED_EXTRACTING_PUBKEY 141 -# define CMP_R_FAILURE_OBTAINING_RANDOM 110 -# define CMP_R_FAIL_INFO_OUT_OF_RANGE 129 -# define CMP_R_GENERATE_CERTREQTEMPLATE 197 -# define CMP_R_GENERATE_CRLSTATUS 198 -# define CMP_R_GETTING_GENP 192 -# define CMP_R_GET_ITAV 199 -# define CMP_R_INVALID_ARGS 100 -# define CMP_R_INVALID_GENP 193 -# define CMP_R_INVALID_KEYSPEC 202 -# define CMP_R_INVALID_OPTION 174 -# define CMP_R_INVALID_ROOTCAKEYUPDATE 195 -# define CMP_R_MISSING_CENTRAL_GEN_KEY 204 -# define CMP_R_MISSING_CERTID 165 -# define CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION 130 -# define CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE 142 -# define CMP_R_MISSING_P10CSR 121 -# define CMP_R_MISSING_PBM_SECRET 166 -# define CMP_R_MISSING_PRIVATE_KEY 131 -# define CMP_R_MISSING_PRIVATE_KEY_FOR_POPO 190 -# define CMP_R_MISSING_PROTECTION 143 -# define CMP_R_MISSING_PUBLIC_KEY 183 -# define CMP_R_MISSING_REFERENCE_CERT 168 -# define CMP_R_MISSING_SECRET 178 -# define CMP_R_MISSING_SENDER_IDENTIFICATION 111 -# define CMP_R_MISSING_TRUST_ANCHOR 179 -# define CMP_R_MISSING_TRUST_STORE 144 -# define CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED 161 -# define CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED 170 -# define CMP_R_MULTIPLE_SAN_SOURCES 102 -# define CMP_R_NO_STDIO 194 -# define CMP_R_NO_SUITABLE_SENDER_CERT 145 -# define CMP_R_NULL_ARGUMENT 103 -# define CMP_R_PKIBODY_ERROR 146 -# define CMP_R_PKISTATUSINFO_NOT_FOUND 132 -# define CMP_R_POLLING_FAILED 172 -# define CMP_R_POTENTIALLY_INVALID_CERTIFICATE 147 -# define CMP_R_RECEIVED_ERROR 180 -# define CMP_R_RECIPNONCE_UNMATCHED 148 -# define CMP_R_REQUEST_NOT_ACCEPTED 149 -# define CMP_R_REQUEST_REJECTED_BY_SERVER 182 -# define CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED 150 -# define CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG 151 -# define CMP_R_TOTAL_TIMEOUT 184 -# define CMP_R_TRANSACTIONID_UNMATCHED 152 -# define CMP_R_TRANSFER_ERROR 159 -# define CMP_R_UNCLEAN_CTX 191 -# define CMP_R_UNEXPECTED_CENTRAL_GEN_KEY 205 -# define CMP_R_UNEXPECTED_CERTPROFILE 196 -# define CMP_R_UNEXPECTED_CRLSTATUSLIST 201 -# define CMP_R_UNEXPECTED_PKIBODY 133 -# define CMP_R_UNEXPECTED_PKISTATUS 185 -# define CMP_R_UNEXPECTED_POLLREQ 105 -# define CMP_R_UNEXPECTED_PVNO 153 -# define CMP_R_UNEXPECTED_SENDER 106 -# define CMP_R_UNKNOWN_ALGORITHM_ID 134 -# define CMP_R_UNKNOWN_CERT_TYPE 135 -# define CMP_R_UNKNOWN_CRL_ISSUER 200 -# define CMP_R_UNKNOWN_PKISTATUS 186 -# define CMP_R_UNSUPPORTED_ALGORITHM 136 -# define CMP_R_UNSUPPORTED_KEY_TYPE 137 -# define CMP_R_UNSUPPORTED_PKIBODY 101 -# define CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC 154 -# define CMP_R_VALUE_TOO_LARGE 175 -# define CMP_R_VALUE_TOO_SMALL 177 -# define CMP_R_WRONG_ALGORITHM_OID 138 -# define CMP_R_WRONG_CERTID 189 -# define CMP_R_WRONG_CERTID_IN_RP 187 -# define CMP_R_WRONG_PBM_VALUE 155 -# define CMP_R_WRONG_RP_COMPONENT_COUNT 188 -# define CMP_R_WRONG_SERIAL_IN_RP 173 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cms.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/cms.h deleted file mode 100644 index dd66c13..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cms.h +++ /dev/null @@ -1,520 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\cms.h.in - * - * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_CMS_H -# define OPENSSL_CMS_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_CMS_H -# endif - -# include - -# ifndef OPENSSL_NO_CMS -# include -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; -typedef struct CMS_ContentInfo_st CMS_ContentInfo; -typedef struct CMS_SignerInfo_st CMS_SignerInfo; -typedef struct CMS_SignedData_st CMS_SignedData; -typedef struct CMS_CertificateChoices CMS_CertificateChoices; -typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; -typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; -typedef struct CMS_ReceiptRequest_st CMS_ReceiptRequest; -typedef struct CMS_Receipt_st CMS_Receipt; -typedef struct CMS_RecipientEncryptedKey_st CMS_RecipientEncryptedKey; -typedef struct CMS_OtherKeyAttribute_st CMS_OtherKeyAttribute; - -SKM_DEFINE_STACK_OF_INTERNAL(CMS_SignerInfo, CMS_SignerInfo, CMS_SignerInfo) -#define sk_CMS_SignerInfo_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_SignerInfo_sk_type(sk)) -#define sk_CMS_SignerInfo_value(sk, idx) ((CMS_SignerInfo *)OPENSSL_sk_value(ossl_check_const_CMS_SignerInfo_sk_type(sk), (idx))) -#define sk_CMS_SignerInfo_new(cmp) ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_new(ossl_check_CMS_SignerInfo_compfunc_type(cmp))) -#define sk_CMS_SignerInfo_new_null() ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_new_null()) -#define sk_CMS_SignerInfo_new_reserve(cmp, n) ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_new_reserve(ossl_check_CMS_SignerInfo_compfunc_type(cmp), (n))) -#define sk_CMS_SignerInfo_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_SignerInfo_sk_type(sk), (n)) -#define sk_CMS_SignerInfo_free(sk) OPENSSL_sk_free(ossl_check_CMS_SignerInfo_sk_type(sk)) -#define sk_CMS_SignerInfo_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_SignerInfo_sk_type(sk)) -#define sk_CMS_SignerInfo_delete(sk, i) ((CMS_SignerInfo *)OPENSSL_sk_delete(ossl_check_CMS_SignerInfo_sk_type(sk), (i))) -#define sk_CMS_SignerInfo_delete_ptr(sk, ptr) ((CMS_SignerInfo *)OPENSSL_sk_delete_ptr(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr))) -#define sk_CMS_SignerInfo_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr)) -#define sk_CMS_SignerInfo_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr)) -#define sk_CMS_SignerInfo_pop(sk) ((CMS_SignerInfo *)OPENSSL_sk_pop(ossl_check_CMS_SignerInfo_sk_type(sk))) -#define sk_CMS_SignerInfo_shift(sk) ((CMS_SignerInfo *)OPENSSL_sk_shift(ossl_check_CMS_SignerInfo_sk_type(sk))) -#define sk_CMS_SignerInfo_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_freefunc_type(freefunc)) -#define sk_CMS_SignerInfo_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr), (idx)) -#define sk_CMS_SignerInfo_set(sk, idx, ptr) ((CMS_SignerInfo *)OPENSSL_sk_set(ossl_check_CMS_SignerInfo_sk_type(sk), (idx), ossl_check_CMS_SignerInfo_type(ptr))) -#define sk_CMS_SignerInfo_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr)) -#define sk_CMS_SignerInfo_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr)) -#define sk_CMS_SignerInfo_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr), pnum) -#define sk_CMS_SignerInfo_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_SignerInfo_sk_type(sk)) -#define sk_CMS_SignerInfo_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_SignerInfo_sk_type(sk)) -#define sk_CMS_SignerInfo_dup(sk) ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_dup(ossl_check_const_CMS_SignerInfo_sk_type(sk))) -#define sk_CMS_SignerInfo_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_deep_copy(ossl_check_const_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_copyfunc_type(copyfunc), ossl_check_CMS_SignerInfo_freefunc_type(freefunc))) -#define sk_CMS_SignerInfo_set_cmp_func(sk, cmp) ((sk_CMS_SignerInfo_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(CMS_RecipientEncryptedKey, CMS_RecipientEncryptedKey, CMS_RecipientEncryptedKey) -#define sk_CMS_RecipientEncryptedKey_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk)) -#define sk_CMS_RecipientEncryptedKey_value(sk, idx) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_value(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk), (idx))) -#define sk_CMS_RecipientEncryptedKey_new(cmp) ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_new(ossl_check_CMS_RecipientEncryptedKey_compfunc_type(cmp))) -#define sk_CMS_RecipientEncryptedKey_new_null() ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_new_null()) -#define sk_CMS_RecipientEncryptedKey_new_reserve(cmp, n) ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_new_reserve(ossl_check_CMS_RecipientEncryptedKey_compfunc_type(cmp), (n))) -#define sk_CMS_RecipientEncryptedKey_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), (n)) -#define sk_CMS_RecipientEncryptedKey_free(sk) OPENSSL_sk_free(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk)) -#define sk_CMS_RecipientEncryptedKey_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk)) -#define sk_CMS_RecipientEncryptedKey_delete(sk, i) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_delete(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), (i))) -#define sk_CMS_RecipientEncryptedKey_delete_ptr(sk, ptr) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_delete_ptr(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr))) -#define sk_CMS_RecipientEncryptedKey_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr)) -#define sk_CMS_RecipientEncryptedKey_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr)) -#define sk_CMS_RecipientEncryptedKey_pop(sk) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_pop(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk))) -#define sk_CMS_RecipientEncryptedKey_shift(sk) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_shift(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk))) -#define sk_CMS_RecipientEncryptedKey_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_freefunc_type(freefunc)) -#define sk_CMS_RecipientEncryptedKey_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr), (idx)) -#define sk_CMS_RecipientEncryptedKey_set(sk, idx, ptr) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_set(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), (idx), ossl_check_CMS_RecipientEncryptedKey_type(ptr))) -#define sk_CMS_RecipientEncryptedKey_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr)) -#define sk_CMS_RecipientEncryptedKey_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr)) -#define sk_CMS_RecipientEncryptedKey_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr), pnum) -#define sk_CMS_RecipientEncryptedKey_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk)) -#define sk_CMS_RecipientEncryptedKey_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk)) -#define sk_CMS_RecipientEncryptedKey_dup(sk) ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_dup(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk))) -#define sk_CMS_RecipientEncryptedKey_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_deep_copy(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_copyfunc_type(copyfunc), ossl_check_CMS_RecipientEncryptedKey_freefunc_type(freefunc))) -#define sk_CMS_RecipientEncryptedKey_set_cmp_func(sk, cmp) ((sk_CMS_RecipientEncryptedKey_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(CMS_RecipientInfo, CMS_RecipientInfo, CMS_RecipientInfo) -#define sk_CMS_RecipientInfo_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_RecipientInfo_sk_type(sk)) -#define sk_CMS_RecipientInfo_value(sk, idx) ((CMS_RecipientInfo *)OPENSSL_sk_value(ossl_check_const_CMS_RecipientInfo_sk_type(sk), (idx))) -#define sk_CMS_RecipientInfo_new(cmp) ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_new(ossl_check_CMS_RecipientInfo_compfunc_type(cmp))) -#define sk_CMS_RecipientInfo_new_null() ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_new_null()) -#define sk_CMS_RecipientInfo_new_reserve(cmp, n) ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_new_reserve(ossl_check_CMS_RecipientInfo_compfunc_type(cmp), (n))) -#define sk_CMS_RecipientInfo_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_RecipientInfo_sk_type(sk), (n)) -#define sk_CMS_RecipientInfo_free(sk) OPENSSL_sk_free(ossl_check_CMS_RecipientInfo_sk_type(sk)) -#define sk_CMS_RecipientInfo_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_RecipientInfo_sk_type(sk)) -#define sk_CMS_RecipientInfo_delete(sk, i) ((CMS_RecipientInfo *)OPENSSL_sk_delete(ossl_check_CMS_RecipientInfo_sk_type(sk), (i))) -#define sk_CMS_RecipientInfo_delete_ptr(sk, ptr) ((CMS_RecipientInfo *)OPENSSL_sk_delete_ptr(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr))) -#define sk_CMS_RecipientInfo_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr)) -#define sk_CMS_RecipientInfo_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr)) -#define sk_CMS_RecipientInfo_pop(sk) ((CMS_RecipientInfo *)OPENSSL_sk_pop(ossl_check_CMS_RecipientInfo_sk_type(sk))) -#define sk_CMS_RecipientInfo_shift(sk) ((CMS_RecipientInfo *)OPENSSL_sk_shift(ossl_check_CMS_RecipientInfo_sk_type(sk))) -#define sk_CMS_RecipientInfo_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_freefunc_type(freefunc)) -#define sk_CMS_RecipientInfo_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr), (idx)) -#define sk_CMS_RecipientInfo_set(sk, idx, ptr) ((CMS_RecipientInfo *)OPENSSL_sk_set(ossl_check_CMS_RecipientInfo_sk_type(sk), (idx), ossl_check_CMS_RecipientInfo_type(ptr))) -#define sk_CMS_RecipientInfo_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr)) -#define sk_CMS_RecipientInfo_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr)) -#define sk_CMS_RecipientInfo_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr), pnum) -#define sk_CMS_RecipientInfo_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_RecipientInfo_sk_type(sk)) -#define sk_CMS_RecipientInfo_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_RecipientInfo_sk_type(sk)) -#define sk_CMS_RecipientInfo_dup(sk) ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_dup(ossl_check_const_CMS_RecipientInfo_sk_type(sk))) -#define sk_CMS_RecipientInfo_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_deep_copy(ossl_check_const_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_copyfunc_type(copyfunc), ossl_check_CMS_RecipientInfo_freefunc_type(freefunc))) -#define sk_CMS_RecipientInfo_set_cmp_func(sk, cmp) ((sk_CMS_RecipientInfo_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, CMS_RevocationInfoChoice) -#define sk_CMS_RevocationInfoChoice_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk)) -#define sk_CMS_RevocationInfoChoice_value(sk, idx) ((CMS_RevocationInfoChoice *)OPENSSL_sk_value(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk), (idx))) -#define sk_CMS_RevocationInfoChoice_new(cmp) ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_new(ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) -#define sk_CMS_RevocationInfoChoice_new_null() ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_new_null()) -#define sk_CMS_RevocationInfoChoice_new_reserve(cmp, n) ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_new_reserve(ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp), (n))) -#define sk_CMS_RevocationInfoChoice_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), (n)) -#define sk_CMS_RevocationInfoChoice_free(sk) OPENSSL_sk_free(ossl_check_CMS_RevocationInfoChoice_sk_type(sk)) -#define sk_CMS_RevocationInfoChoice_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_RevocationInfoChoice_sk_type(sk)) -#define sk_CMS_RevocationInfoChoice_delete(sk, i) ((CMS_RevocationInfoChoice *)OPENSSL_sk_delete(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), (i))) -#define sk_CMS_RevocationInfoChoice_delete_ptr(sk, ptr) ((CMS_RevocationInfoChoice *)OPENSSL_sk_delete_ptr(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr))) -#define sk_CMS_RevocationInfoChoice_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr)) -#define sk_CMS_RevocationInfoChoice_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr)) -#define sk_CMS_RevocationInfoChoice_pop(sk) ((CMS_RevocationInfoChoice *)OPENSSL_sk_pop(ossl_check_CMS_RevocationInfoChoice_sk_type(sk))) -#define sk_CMS_RevocationInfoChoice_shift(sk) ((CMS_RevocationInfoChoice *)OPENSSL_sk_shift(ossl_check_CMS_RevocationInfoChoice_sk_type(sk))) -#define sk_CMS_RevocationInfoChoice_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_freefunc_type(freefunc)) -#define sk_CMS_RevocationInfoChoice_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr), (idx)) -#define sk_CMS_RevocationInfoChoice_set(sk, idx, ptr) ((CMS_RevocationInfoChoice *)OPENSSL_sk_set(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), (idx), ossl_check_CMS_RevocationInfoChoice_type(ptr))) -#define sk_CMS_RevocationInfoChoice_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr)) -#define sk_CMS_RevocationInfoChoice_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr)) -#define sk_CMS_RevocationInfoChoice_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr), pnum) -#define sk_CMS_RevocationInfoChoice_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_RevocationInfoChoice_sk_type(sk)) -#define sk_CMS_RevocationInfoChoice_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk)) -#define sk_CMS_RevocationInfoChoice_dup(sk) ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_dup(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk))) -#define sk_CMS_RevocationInfoChoice_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_deep_copy(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_copyfunc_type(copyfunc), ossl_check_CMS_RevocationInfoChoice_freefunc_type(freefunc))) -#define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) - - -DECLARE_ASN1_ITEM(CMS_EnvelopedData) -DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) -DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) -DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) -DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) - -DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) - -CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - -# define CMS_SIGNERINFO_ISSUER_SERIAL 0 -# define CMS_SIGNERINFO_KEYIDENTIFIER 1 - -# define CMS_RECIPINFO_NONE -1 -# define CMS_RECIPINFO_TRANS 0 -# define CMS_RECIPINFO_AGREE 1 -# define CMS_RECIPINFO_KEK 2 -# define CMS_RECIPINFO_PASS 3 -# define CMS_RECIPINFO_OTHER 4 -# define CMS_RECIPINFO_KEM 5 - -/* S/MIME related flags */ - -# define CMS_TEXT 0x1 -# define CMS_NOCERTS 0x2 -# define CMS_NO_CONTENT_VERIFY 0x4 -# define CMS_NO_ATTR_VERIFY 0x8 -# define CMS_NOSIGS \ - (CMS_NO_CONTENT_VERIFY|CMS_NO_ATTR_VERIFY) -# define CMS_NOINTERN 0x10 -# define CMS_NO_SIGNER_CERT_VERIFY 0x20 -# define CMS_NOVERIFY 0x20 -# define CMS_DETACHED 0x40 -# define CMS_BINARY 0x80 -# define CMS_NOATTR 0x100 -# define CMS_NOSMIMECAP 0x200 -# define CMS_NOOLDMIMETYPE 0x400 -# define CMS_CRLFEOL 0x800 -# define CMS_STREAM 0x1000 -# define CMS_NOCRL 0x2000 -# define CMS_PARTIAL 0x4000 -# define CMS_REUSE_DIGEST 0x8000 -# define CMS_USE_KEYID 0x10000 -# define CMS_DEBUG_DECRYPT 0x20000 -# define CMS_KEY_PARAM 0x40000 -# define CMS_ASCIICRLF 0x80000 -# define CMS_CADES 0x100000 -# define CMS_USE_ORIGINATOR_KEYID 0x200000 -# define CMS_NO_SIGNING_TIME 0x400000 - -const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); - -BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont); -int CMS_dataFinal(CMS_ContentInfo *cms, BIO *bio); - -ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms); -int CMS_is_detached(CMS_ContentInfo *cms); -int CMS_set_detached(CMS_ContentInfo *cms, int detached); - -# ifdef OPENSSL_PEM_H -DECLARE_PEM_rw(CMS, CMS_ContentInfo) -# endif -int CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms); -CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms); -int i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms); - -BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms); -int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int flags); -int PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, - int flags); -CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont); -CMS_ContentInfo *SMIME_read_CMS_ex(BIO *bio, int flags, BIO **bcont, CMS_ContentInfo **ci); -int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); - -int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, - unsigned int flags); -int CMS_final_digest(CMS_ContentInfo *cms, - const unsigned char *md, unsigned int mdlen, BIO *dcont, - unsigned int flags); - -CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, - STACK_OF(X509) *certs, BIO *data, - unsigned int flags); -CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, - STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *libctx, - const char *propq); - -CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, - X509 *signcert, EVP_PKEY *pkey, - STACK_OF(X509) *certs, unsigned int flags); - -int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); -CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); -CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *libctx, const char *propq); - -int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, - unsigned int flags); -CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, - unsigned int flags); -CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *libctx, - const char *propq); - -int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, - const unsigned char *key, size_t keylen, - BIO *dcont, BIO *out, unsigned int flags); -CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, - const unsigned char *key, - size_t keylen, unsigned int flags); -CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, - const unsigned char *key, - size_t keylen, unsigned int flags, - OSSL_LIB_CTX *libctx, - const char *propq); - -int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, - const unsigned char *key, size_t keylen); - -int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs, - X509_STORE *store, BIO *dcont, BIO *out, unsigned int flags); - -int CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms, - STACK_OF(X509) *certs, - X509_STORE *store, unsigned int flags); - -STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms); - -CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, - const EVP_CIPHER *cipher, unsigned int flags); -CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, - const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *libctx, const char *propq); - -int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, - BIO *dcont, BIO *out, unsigned int flags); - -int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert); -int CMS_decrypt_set1_pkey_and_peer(CMS_ContentInfo *cms, EVP_PKEY *pk, - X509 *cert, X509 *peer); -int CMS_decrypt_set1_key(CMS_ContentInfo *cms, - unsigned char *key, size_t keylen, - const unsigned char *id, size_t idlen); -int CMS_decrypt_set1_password(CMS_ContentInfo *cms, - unsigned char *pass, ossl_ssize_t passlen); - -STACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms); -int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); -EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); -CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); -CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, - const char *propq); -CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); -CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *libctx, - const char *propq); -BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, - EVP_PKEY *pkey, X509 *cert, - ASN1_OCTET_STRING *secret, unsigned int flags, - OSSL_LIB_CTX *libctx, const char *propq); - -CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, - X509 *recip, unsigned int flags); -CMS_RecipientInfo *CMS_add1_recipient(CMS_ContentInfo *cms, X509 *recip, - EVP_PKEY *originatorPrivKey, X509 * originator, unsigned int flags); -int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey); -int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert); -int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri, - EVP_PKEY **pk, X509 **recip, - X509_ALGOR **palg); -int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, - ASN1_INTEGER **sno); - -CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid, - unsigned char *key, size_t keylen, - unsigned char *id, size_t idlen, - ASN1_GENERALIZEDTIME *date, - ASN1_OBJECT *otherTypeId, - ASN1_TYPE *otherType); - -int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri, - X509_ALGOR **palg, - ASN1_OCTET_STRING **pid, - ASN1_GENERALIZEDTIME **pdate, - ASN1_OBJECT **potherid, - ASN1_TYPE **pothertype); - -int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri, - unsigned char *key, size_t keylen); - -int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri, - const unsigned char *id, size_t idlen); - -int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri, - unsigned char *pass, - ossl_ssize_t passlen); - -CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms, - int iter, int wrap_nid, - int pbe_nid, - unsigned char *pass, - ossl_ssize_t passlen, - const EVP_CIPHER *kekciph); - -int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); -int CMS_RecipientInfo_encrypt(const CMS_ContentInfo *cms, CMS_RecipientInfo *ri); - -int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out, - unsigned int flags); -CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags); - -int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid); -const ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms); - -CMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo *cms); -int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert); -int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert); -STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms); - -CMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo *cms); -int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl); -int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl); -STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms); - -int CMS_SignedData_init(CMS_ContentInfo *cms); -CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms, - X509 *signer, EVP_PKEY *pk, const EVP_MD *md, - unsigned int flags); -EVP_PKEY_CTX *CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si); -EVP_MD_CTX *CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si); -STACK_OF(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo *cms); - -void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer); -int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, ASN1_INTEGER **sno); -int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert); -int CMS_set1_signers_certs(CMS_ContentInfo *cms, STACK_OF(X509) *certs, - unsigned int flags); -void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk, - X509 **signer, X509_ALGOR **pdig, - X509_ALGOR **psig); -ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); -int CMS_SignerInfo_sign(CMS_SignerInfo *si); -int CMS_SignerInfo_verify(CMS_SignerInfo *si); -int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); -BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, - STACK_OF(X509) *scerts, X509_STORE *store, - STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, - unsigned int flags, - OSSL_LIB_CTX *libctx, const char *propq); - -int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); -int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, - int algnid, int keysize); -int CMS_add_standard_smimecap(STACK_OF(X509_ALGOR) **smcap); - -int CMS_signed_get_attr_count(const CMS_SignerInfo *si); -int CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid, - int lastpos); -int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, const ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc); -X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc); -int CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); -int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int type, - const void *bytes, int len); -int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si, - int nid, int type, - const void *bytes, int len); -int CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si, - const char *attrname, int type, - const void *bytes, int len); -void *CMS_signed_get0_data_by_OBJ(const CMS_SignerInfo *si, - const ASN1_OBJECT *oid, - int lastpos, int type); - -int CMS_unsigned_get_attr_count(const CMS_SignerInfo *si); -int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid, - int lastpos); -int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int lastpos); -X509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int loc); -X509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc); -int CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); -int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int type, - const void *bytes, int len); -int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si, - int nid, int type, - const void *bytes, int len); -int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si, - const char *attrname, int type, - const void *bytes, int len); -void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, - int lastpos, int type); - -int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr); -CMS_ReceiptRequest *CMS_ReceiptRequest_create0( - unsigned char *id, int idlen, int allorfirst, - STACK_OF(GENERAL_NAMES) *receiptList, - STACK_OF(GENERAL_NAMES) *receiptsTo); -CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( - unsigned char *id, int idlen, int allorfirst, - STACK_OF(GENERAL_NAMES) *receiptList, - STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *libctx); - -int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); -void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, - ASN1_STRING **pcid, - int *pallorfirst, - STACK_OF(GENERAL_NAMES) **plist, - STACK_OF(GENERAL_NAMES) **prto); -int CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo *ri, - X509_ALGOR **palg, - ASN1_OCTET_STRING **pukm); -STACK_OF(CMS_RecipientEncryptedKey) -*CMS_RecipientInfo_kari_get0_reks(CMS_RecipientInfo *ri); - -int CMS_RecipientInfo_kari_get0_orig_id(CMS_RecipientInfo *ri, - X509_ALGOR **pubalg, - ASN1_BIT_STRING **pubkey, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, - ASN1_INTEGER **sno); - -int CMS_RecipientInfo_kari_orig_id_cmp(CMS_RecipientInfo *ri, X509 *cert); - -int CMS_RecipientEncryptedKey_get0_id(CMS_RecipientEncryptedKey *rek, - ASN1_OCTET_STRING **keyid, - ASN1_GENERALIZEDTIME **tm, - CMS_OtherKeyAttribute **other, - X509_NAME **issuer, ASN1_INTEGER **sno); -int CMS_RecipientEncryptedKey_cert_cmp(CMS_RecipientEncryptedKey *rek, - X509 *cert); -int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk); -int CMS_RecipientInfo_kari_set0_pkey_and_peer(CMS_RecipientInfo *ri, EVP_PKEY *pk, X509 *peer); -EVP_CIPHER_CTX *CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo *ri); -int CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo *cms, - CMS_RecipientInfo *ri, - CMS_RecipientEncryptedKey *rek); - -int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg, - ASN1_OCTET_STRING *ukm, int keylen); - -int CMS_RecipientInfo_kemri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert); -int CMS_RecipientInfo_kemri_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk); -EVP_CIPHER_CTX *CMS_RecipientInfo_kemri_get0_ctx(CMS_RecipientInfo *ri); -X509_ALGOR *CMS_RecipientInfo_kemri_get0_kdf_alg(CMS_RecipientInfo *ri); -int CMS_RecipientInfo_kemri_set_ukm(CMS_RecipientInfo *ri, - const unsigned char *ukm, - int ukmLength); - -/* Backward compatibility for spelling errors. */ -# define CMS_R_UNKNOWN_DIGEST_ALGORITM CMS_R_UNKNOWN_DIGEST_ALGORITHM -# define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE \ - CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cmserr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/cmserr.h deleted file mode 100644 index 606cc11..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cmserr.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CMSERR_H -# define OPENSSL_CMSERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_CMS - - -/* - * CMS reason codes. - */ -# define CMS_R_ADD_SIGNER_ERROR 99 -# define CMS_R_ATTRIBUTE_ERROR 161 -# define CMS_R_CERTIFICATE_ALREADY_PRESENT 175 -# define CMS_R_CERTIFICATE_HAS_NO_KEYID 160 -# define CMS_R_CERTIFICATE_VERIFY_ERROR 100 -# define CMS_R_CIPHER_AEAD_SET_TAG_ERROR 184 -# define CMS_R_CIPHER_GET_TAG 185 -# define CMS_R_CIPHER_INITIALISATION_ERROR 101 -# define CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR 102 -# define CMS_R_CMS_DATAFINAL_ERROR 103 -# define CMS_R_CMS_LIB 104 -# define CMS_R_CONTENTIDENTIFIER_MISMATCH 170 -# define CMS_R_CONTENT_NOT_FOUND 105 -# define CMS_R_CONTENT_TYPE_MISMATCH 171 -# define CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA 106 -# define CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA 107 -# define CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA 108 -# define CMS_R_CONTENT_VERIFY_ERROR 109 -# define CMS_R_CTRL_ERROR 110 -# define CMS_R_CTRL_FAILURE 111 -# define CMS_R_DECODE_ERROR 187 -# define CMS_R_DECRYPT_ERROR 112 -# define CMS_R_ERROR_GETTING_PUBLIC_KEY 113 -# define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE 114 -# define CMS_R_ERROR_SETTING_KEY 115 -# define CMS_R_ERROR_SETTING_RECIPIENTINFO 116 -# define CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT 196 -# define CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR 183 -# define CMS_R_INVALID_ENCRYPTED_KEY_LENGTH 117 -# define CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER 176 -# define CMS_R_INVALID_KEY_LENGTH 118 -# define CMS_R_INVALID_LABEL 190 -# define CMS_R_INVALID_OAEP_PARAMETERS 191 -# define CMS_R_KDF_PARAMETER_ERROR 186 -# define CMS_R_MD_BIO_INIT_ERROR 119 -# define CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH 120 -# define CMS_R_MESSAGEDIGEST_WRONG_LENGTH 121 -# define CMS_R_MSGSIGDIGEST_ERROR 172 -# define CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE 162 -# define CMS_R_MSGSIGDIGEST_WRONG_LENGTH 163 -# define CMS_R_NEED_ONE_SIGNER 164 -# define CMS_R_NOT_A_SIGNED_RECEIPT 165 -# define CMS_R_NOT_ENCRYPTED_DATA 122 -# define CMS_R_NOT_KEK 123 -# define CMS_R_NOT_KEM 197 -# define CMS_R_NOT_KEY_AGREEMENT 181 -# define CMS_R_NOT_KEY_TRANSPORT 124 -# define CMS_R_NOT_PWRI 177 -# define CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 125 -# define CMS_R_NO_CIPHER 126 -# define CMS_R_NO_CONTENT 127 -# define CMS_R_NO_CONTENT_TYPE 173 -# define CMS_R_NO_DEFAULT_DIGEST 128 -# define CMS_R_NO_DIGEST_SET 129 -# define CMS_R_NO_KEY 130 -# define CMS_R_NO_KEY_OR_CERT 174 -# define CMS_R_NO_MATCHING_DIGEST 131 -# define CMS_R_NO_MATCHING_RECIPIENT 132 -# define CMS_R_NO_MATCHING_SIGNATURE 166 -# define CMS_R_NO_MSGSIGDIGEST 167 -# define CMS_R_NO_PASSWORD 178 -# define CMS_R_NO_PRIVATE_KEY 133 -# define CMS_R_NO_PUBLIC_KEY 134 -# define CMS_R_NO_RECEIPT_REQUEST 168 -# define CMS_R_NO_SIGNERS 135 -# define CMS_R_OPERATION_UNSUPPORTED 182 -# define CMS_R_PEER_KEY_ERROR 188 -# define CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 136 -# define CMS_R_RECEIPT_DECODE_ERROR 169 -# define CMS_R_RECIPIENT_ERROR 137 -# define CMS_R_SHARED_INFO_ERROR 189 -# define CMS_R_SIGNER_CERTIFICATE_NOT_FOUND 138 -# define CMS_R_SIGNFINAL_ERROR 139 -# define CMS_R_SMIME_TEXT_ERROR 140 -# define CMS_R_STORE_INIT_ERROR 141 -# define CMS_R_TYPE_NOT_COMPRESSED_DATA 142 -# define CMS_R_TYPE_NOT_DATA 143 -# define CMS_R_TYPE_NOT_DIGESTED_DATA 144 -# define CMS_R_TYPE_NOT_ENCRYPTED_DATA 145 -# define CMS_R_TYPE_NOT_ENVELOPED_DATA 146 -# define CMS_R_UNABLE_TO_FINALIZE_CONTEXT 147 -# define CMS_R_UNKNOWN_CIPHER 148 -# define CMS_R_UNKNOWN_DIGEST_ALGORITHM 149 -# define CMS_R_UNKNOWN_ID 150 -# define CMS_R_UNKNOWN_KDF_ALGORITHM 198 -# define CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM 151 -# define CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM 194 -# define CMS_R_UNSUPPORTED_CONTENT_TYPE 152 -# define CMS_R_UNSUPPORTED_ENCRYPTION_TYPE 192 -# define CMS_R_UNSUPPORTED_KDF_ALGORITHM 199 -# define CMS_R_UNSUPPORTED_KEK_ALGORITHM 153 -# define CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM 179 -# define CMS_R_UNSUPPORTED_LABEL_SOURCE 193 -# define CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE 155 -# define CMS_R_UNSUPPORTED_RECIPIENT_TYPE 154 -# define CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM 195 -# define CMS_R_UNSUPPORTED_TYPE 156 -# define CMS_R_UNWRAP_ERROR 157 -# define CMS_R_UNWRAP_FAILURE 180 -# define CMS_R_VERIFICATION_FAILURE 158 -# define CMS_R_WRAP_ERROR 159 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/comp.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/comp.h deleted file mode 100644 index e3cb300..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/comp.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_COMP_H -# define OPENSSL_COMP_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_COMP_H -# endif - -# include - -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - - - -# ifndef OPENSSL_NO_COMP - -COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); -const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); -int COMP_CTX_get_type(const COMP_CTX* comp); -int COMP_get_type(const COMP_METHOD *meth); -const char *COMP_get_name(const COMP_METHOD *meth); -void COMP_CTX_free(COMP_CTX *ctx); - -int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, - unsigned char *in, int ilen); -int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, - unsigned char *in, int ilen); - -COMP_METHOD *COMP_zlib(void); -COMP_METHOD *COMP_zlib_oneshot(void); -COMP_METHOD *COMP_brotli(void); -COMP_METHOD *COMP_brotli_oneshot(void); -COMP_METHOD *COMP_zstd(void); -COMP_METHOD *COMP_zstd_oneshot(void); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define COMP_zlib_cleanup() while(0) continue -# endif - -# ifdef OPENSSL_BIO_H -const BIO_METHOD *BIO_f_zlib(void); -const BIO_METHOD *BIO_f_brotli(void); -const BIO_METHOD *BIO_f_zstd(void); -# endif - -# endif - -typedef struct ssl_comp_st SSL_COMP; - -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) - - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/comperr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/comperr.h deleted file mode 100644 index 1948d37..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/comperr.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_COMPERR_H -# define OPENSSL_COMPERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_COMP - - -/* - * COMP reason codes. - */ -# define COMP_R_BROTLI_DECODE_ERROR 102 -# define COMP_R_BROTLI_ENCODE_ERROR 103 -# define COMP_R_BROTLI_NOT_SUPPORTED 104 -# define COMP_R_ZLIB_DEFLATE_ERROR 99 -# define COMP_R_ZLIB_INFLATE_ERROR 100 -# define COMP_R_ZLIB_NOT_SUPPORTED 101 -# define COMP_R_ZSTD_COMPRESS_ERROR 105 -# define COMP_R_ZSTD_DECODE_ERROR 106 -# define COMP_R_ZSTD_DECOMPRESS_ERROR 107 -# define COMP_R_ZSTD_NOT_SUPPORTED 108 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/conf.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/conf.h deleted file mode 100644 index 0fcf4f9..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/conf.h +++ /dev/null @@ -1,214 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\conf.h.in - * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_CONF_H -# define OPENSSL_CONF_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_CONF_H -# endif - -# include -# include -# include -# include -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - char *section; - char *name; - char *value; -} CONF_VALUE; - -SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) -#define sk_CONF_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_CONF_VALUE_sk_type(sk)) -#define sk_CONF_VALUE_value(sk, idx) ((CONF_VALUE *)OPENSSL_sk_value(ossl_check_const_CONF_VALUE_sk_type(sk), (idx))) -#define sk_CONF_VALUE_new(cmp) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_new(ossl_check_CONF_VALUE_compfunc_type(cmp))) -#define sk_CONF_VALUE_new_null() ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_new_null()) -#define sk_CONF_VALUE_new_reserve(cmp, n) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_CONF_VALUE_compfunc_type(cmp), (n))) -#define sk_CONF_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CONF_VALUE_sk_type(sk), (n)) -#define sk_CONF_VALUE_free(sk) OPENSSL_sk_free(ossl_check_CONF_VALUE_sk_type(sk)) -#define sk_CONF_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_CONF_VALUE_sk_type(sk)) -#define sk_CONF_VALUE_delete(sk, i) ((CONF_VALUE *)OPENSSL_sk_delete(ossl_check_CONF_VALUE_sk_type(sk), (i))) -#define sk_CONF_VALUE_delete_ptr(sk, ptr) ((CONF_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr))) -#define sk_CONF_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr)) -#define sk_CONF_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr)) -#define sk_CONF_VALUE_pop(sk) ((CONF_VALUE *)OPENSSL_sk_pop(ossl_check_CONF_VALUE_sk_type(sk))) -#define sk_CONF_VALUE_shift(sk) ((CONF_VALUE *)OPENSSL_sk_shift(ossl_check_CONF_VALUE_sk_type(sk))) -#define sk_CONF_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_freefunc_type(freefunc)) -#define sk_CONF_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr), (idx)) -#define sk_CONF_VALUE_set(sk, idx, ptr) ((CONF_VALUE *)OPENSSL_sk_set(ossl_check_CONF_VALUE_sk_type(sk), (idx), ossl_check_CONF_VALUE_type(ptr))) -#define sk_CONF_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr)) -#define sk_CONF_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr)) -#define sk_CONF_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr), pnum) -#define sk_CONF_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_CONF_VALUE_sk_type(sk)) -#define sk_CONF_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CONF_VALUE_sk_type(sk)) -#define sk_CONF_VALUE_dup(sk) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_dup(ossl_check_const_CONF_VALUE_sk_type(sk))) -#define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) -#define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) -DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) -#define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) -#define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) -#define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) -#define lh_CONF_VALUE_delete(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_delete(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_const_CONF_VALUE_lh_plain_type(ptr))) -#define lh_CONF_VALUE_retrieve(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_retrieve(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_const_CONF_VALUE_lh_plain_type(ptr))) -#define lh_CONF_VALUE_error(lh) OPENSSL_LH_error(ossl_check_CONF_VALUE_lh_type(lh)) -#define lh_CONF_VALUE_num_items(lh) OPENSSL_LH_num_items(ossl_check_CONF_VALUE_lh_type(lh)) -#define lh_CONF_VALUE_node_stats_bio(lh, out) OPENSSL_LH_node_stats_bio(ossl_check_const_CONF_VALUE_lh_type(lh), out) -#define lh_CONF_VALUE_node_usage_stats_bio(lh, out) OPENSSL_LH_node_usage_stats_bio(ossl_check_const_CONF_VALUE_lh_type(lh), out) -#define lh_CONF_VALUE_stats_bio(lh, out) OPENSSL_LH_stats_bio(ossl_check_const_CONF_VALUE_lh_type(lh), out) -#define lh_CONF_VALUE_get_down_load(lh) OPENSSL_LH_get_down_load(ossl_check_CONF_VALUE_lh_type(lh)) -#define lh_CONF_VALUE_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_CONF_VALUE_lh_type(lh), dl) -#define lh_CONF_VALUE_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_doallfunc_type(dfn)) - - -struct conf_st; -struct conf_method_st; -typedef struct conf_method_st CONF_METHOD; - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# include -# endif - -/* Module definitions */ -typedef struct conf_imodule_st CONF_IMODULE; -typedef struct conf_module_st CONF_MODULE; - -STACK_OF(CONF_MODULE); -STACK_OF(CONF_IMODULE); - -/* DSO module function typedefs */ -typedef int conf_init_func (CONF_IMODULE *md, const CONF *cnf); -typedef void conf_finish_func (CONF_IMODULE *md); - -# define CONF_MFLAGS_IGNORE_ERRORS 0x1 -# define CONF_MFLAGS_IGNORE_RETURN_CODES 0x2 -# define CONF_MFLAGS_SILENT 0x4 -# define CONF_MFLAGS_NO_DSO 0x8 -# define CONF_MFLAGS_IGNORE_MISSING_FILE 0x10 -# define CONF_MFLAGS_DEFAULT_SECTION 0x20 - -int CONF_set_default_method(CONF_METHOD *meth); -void CONF_set_nconf(CONF *conf, LHASH_OF(CONF_VALUE) *hash); -LHASH_OF(CONF_VALUE) *CONF_load(LHASH_OF(CONF_VALUE) *conf, const char *file, - long *eline); -# ifndef OPENSSL_NO_STDIO -LHASH_OF(CONF_VALUE) *CONF_load_fp(LHASH_OF(CONF_VALUE) *conf, FILE *fp, - long *eline); -# endif -LHASH_OF(CONF_VALUE) *CONF_load_bio(LHASH_OF(CONF_VALUE) *conf, BIO *bp, - long *eline); -STACK_OF(CONF_VALUE) *CONF_get_section(LHASH_OF(CONF_VALUE) *conf, - const char *section); -char *CONF_get_string(LHASH_OF(CONF_VALUE) *conf, const char *group, - const char *name); -long CONF_get_number(LHASH_OF(CONF_VALUE) *conf, const char *group, - const char *name); -void CONF_free(LHASH_OF(CONF_VALUE) *conf); -#ifndef OPENSSL_NO_STDIO -int CONF_dump_fp(LHASH_OF(CONF_VALUE) *conf, FILE *out); -#endif -int CONF_dump_bio(LHASH_OF(CONF_VALUE) *conf, BIO *out); -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 void OPENSSL_config(const char *config_name); -#endif - -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define OPENSSL_no_config() \ - OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL) -#endif - -/* - * New conf code. The semantics are different from the functions above. If - * that wasn't the case, the above functions would have been replaced - */ - -CONF *NCONF_new_ex(OSSL_LIB_CTX *libctx, CONF_METHOD *meth); -OSSL_LIB_CTX *NCONF_get0_libctx(const CONF *conf); -CONF *NCONF_new(CONF_METHOD *meth); -CONF_METHOD *NCONF_default(void); -#ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 CONF_METHOD *NCONF_WIN32(void); -#endif -void NCONF_free(CONF *conf); -void NCONF_free_data(CONF *conf); - -int NCONF_load(CONF *conf, const char *file, long *eline); -# ifndef OPENSSL_NO_STDIO -int NCONF_load_fp(CONF *conf, FILE *fp, long *eline); -# endif -int NCONF_load_bio(CONF *conf, BIO *bp, long *eline); -STACK_OF(OPENSSL_CSTRING) *NCONF_get_section_names(const CONF *conf); -STACK_OF(CONF_VALUE) *NCONF_get_section(const CONF *conf, - const char *section); -char *NCONF_get_string(const CONF *conf, const char *group, const char *name); -int NCONF_get_number_e(const CONF *conf, const char *group, const char *name, - long *result); -#ifndef OPENSSL_NO_STDIO -int NCONF_dump_fp(const CONF *conf, FILE *out); -#endif -int NCONF_dump_bio(const CONF *conf, BIO *out); - -#define NCONF_get_number(c,g,n,r) NCONF_get_number_e(c,g,n,r) - -/* Module functions */ - -int CONF_modules_load(const CONF *cnf, const char *appname, - unsigned long flags); -int CONF_modules_load_file_ex(OSSL_LIB_CTX *libctx, const char *filename, - const char *appname, unsigned long flags); -int CONF_modules_load_file(const char *filename, const char *appname, - unsigned long flags); -void CONF_modules_unload(int all); -void CONF_modules_finish(void); -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define CONF_modules_free() while(0) continue -#endif -int CONF_module_add(const char *name, conf_init_func *ifunc, - conf_finish_func *ffunc); - -const char *CONF_imodule_get_name(const CONF_IMODULE *md); -const char *CONF_imodule_get_value(const CONF_IMODULE *md); -void *CONF_imodule_get_usr_data(const CONF_IMODULE *md); -void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data); -CONF_MODULE *CONF_imodule_get_module(const CONF_IMODULE *md); -unsigned long CONF_imodule_get_flags(const CONF_IMODULE *md); -void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags); -void *CONF_module_get_usr_data(CONF_MODULE *pmod); -void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data); - -char *CONF_get1_default_config_file(void); - -int CONF_parse_list(const char *list, int sep, int nospc, - int (*list_cb) (const char *elem, int len, void *usr), - void *arg); - -void OPENSSL_load_builtin_modules(void); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/conf_api.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/conf_api.h deleted file mode 100644 index ed67d57..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/conf_api.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CONF_API_H -# define OPENSSL_CONF_API_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_CONF_API_H -# endif - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Up until OpenSSL 0.9.5a, this was new_section */ -CONF_VALUE *_CONF_new_section(CONF *conf, const char *section); -/* Up until OpenSSL 0.9.5a, this was get_section */ -CONF_VALUE *_CONF_get_section(const CONF *conf, const char *section); -/* Up until OpenSSL 0.9.5a, this was CONF_get_section */ -STACK_OF(CONF_VALUE) *_CONF_get_section_values(const CONF *conf, - const char *section); - -int _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value); -char *_CONF_get_string(const CONF *conf, const char *section, - const char *name); -long _CONF_get_number(const CONF *conf, const char *section, - const char *name); - -int _CONF_new_data(CONF *conf); -void _CONF_free_data(CONF *conf); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/conferr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/conferr.h deleted file mode 100644 index a8798e7..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/conferr.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CONFERR_H -# define OPENSSL_CONFERR_H -# pragma once - -# include -# include -# include - - - -/* - * CONF reason codes. - */ -# define CONF_R_ERROR_LOADING_DSO 110 -# define CONF_R_INVALID_PRAGMA 122 -# define CONF_R_LIST_CANNOT_BE_NULL 115 -# define CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION 123 -# define CONF_R_MISSING_CLOSE_SQUARE_BRACKET 100 -# define CONF_R_MISSING_EQUAL_SIGN 101 -# define CONF_R_MISSING_INIT_FUNCTION 112 -# define CONF_R_MODULE_INITIALIZATION_ERROR 109 -# define CONF_R_NO_CLOSE_BRACE 102 -# define CONF_R_NO_CONF 105 -# define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106 -# define CONF_R_NO_SECTION 107 -# define CONF_R_NO_SUCH_FILE 114 -# define CONF_R_NO_VALUE 108 -# define CONF_R_NUMBER_TOO_LARGE 121 -# define CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION 124 -# define CONF_R_RECURSIVE_DIRECTORY_INCLUDE 111 -# define CONF_R_RECURSIVE_SECTION_REFERENCE 126 -# define CONF_R_RELATIVE_PATH 125 -# define CONF_R_SSL_COMMAND_SECTION_EMPTY 117 -# define CONF_R_SSL_COMMAND_SECTION_NOT_FOUND 118 -# define CONF_R_SSL_SECTION_EMPTY 119 -# define CONF_R_SSL_SECTION_NOT_FOUND 120 -# define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103 -# define CONF_R_UNKNOWN_MODULE_NAME 113 -# define CONF_R_VARIABLE_EXPANSION_TOO_LONG 116 -# define CONF_R_VARIABLE_HAS_NO_VALUE 104 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/configuration.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/configuration.h deleted file mode 100644 index 6f09f1e..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/configuration.h +++ /dev/null @@ -1,194 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by configdata.pm from ..\Configurations\common0.tmpl, ..\Configurations\windows-makefile.tmpl - * via makefile.in - * - * Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CONFIGURATION_H -# define OPENSSL_CONFIGURATION_H -# pragma once - -# ifdef __cplusplus -extern "C" { -# endif - -# ifdef OPENSSL_ALGORITHM_DEFINES -# error OPENSSL_ALGORITHM_DEFINES no longer supported -# endif - -/* - * OpenSSL was configured with the following options: - */ - -# define OPENSSL_CONFIGURED_API 30600 -# ifndef OPENSSL_RAND_SEED_OS -# define OPENSSL_RAND_SEED_OS -# endif -# ifndef OPENSSL_THREADS -# define OPENSSL_THREADS -# endif -# ifndef OPENSSL_NO_ACVP_TESTS -# define OPENSSL_NO_ACVP_TESTS -# endif -# ifndef OPENSSL_NO_AFALGENG -# define OPENSSL_NO_AFALGENG -# endif -# ifndef OPENSSL_NO_ALLOCFAIL_TESTS -# define OPENSSL_NO_ALLOCFAIL_TESTS -# endif -# ifndef OPENSSL_NO_ASAN -# define OPENSSL_NO_ASAN -# endif -# ifndef OPENSSL_NO_AUTOLOAD_CONFIG -# define OPENSSL_NO_AUTOLOAD_CONFIG -# endif -# ifndef OPENSSL_NO_BROTLI -# define OPENSSL_NO_BROTLI -# endif -# ifndef OPENSSL_NO_BROTLI_DYNAMIC -# define OPENSSL_NO_BROTLI_DYNAMIC -# endif -# ifndef OPENSSL_NO_COMP -# define OPENSSL_NO_COMP -# endif -# ifndef OPENSSL_NO_CRYPTO_MDEBUG -# define OPENSSL_NO_CRYPTO_MDEBUG -# endif -# ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE -# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE -# endif -# ifndef OPENSSL_NO_DEMOS -# define OPENSSL_NO_DEMOS -# endif -# ifndef OPENSSL_NO_DEVCRYPTOENG -# define OPENSSL_NO_DEVCRYPTOENG -# endif -# ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 -# define OPENSSL_NO_EC_NISTP_64_GCC_128 -# endif -# ifndef OPENSSL_NO_EGD -# define OPENSSL_NO_EGD -# endif -# ifndef OPENSSL_NO_EXTERNAL_TESTS -# define OPENSSL_NO_EXTERNAL_TESTS -# endif -# ifndef OPENSSL_NO_FIPS_JITTER -# define OPENSSL_NO_FIPS_JITTER -# endif -# ifndef OPENSSL_NO_FIPS_POST -# define OPENSSL_NO_FIPS_POST -# endif -# ifndef OPENSSL_NO_FIPS_SECURITYCHECKS -# define OPENSSL_NO_FIPS_SECURITYCHECKS -# endif -# ifndef OPENSSL_NO_FUZZ_AFL -# define OPENSSL_NO_FUZZ_AFL -# endif -# ifndef OPENSSL_NO_FUZZ_LIBFUZZER -# define OPENSSL_NO_FUZZ_LIBFUZZER -# endif -# ifndef OPENSSL_NO_H3DEMO -# define OPENSSL_NO_H3DEMO -# endif -# ifndef OPENSSL_NO_HQINTEROP -# define OPENSSL_NO_HQINTEROP -# endif -# ifndef OPENSSL_NO_JITTER -# define OPENSSL_NO_JITTER -# endif -# ifndef OPENSSL_NO_KTLS -# define OPENSSL_NO_KTLS -# endif -# ifndef OPENSSL_NO_LMS -# define OPENSSL_NO_LMS -# endif -# ifndef OPENSSL_NO_MD2 -# define OPENSSL_NO_MD2 -# endif -# ifndef OPENSSL_NO_MSAN -# define OPENSSL_NO_MSAN -# endif -# ifndef OPENSSL_NO_PIE -# define OPENSSL_NO_PIE -# endif -# ifndef OPENSSL_NO_RC5 -# define OPENSSL_NO_RC5 -# endif -# ifndef OPENSSL_NO_SCTP -# define OPENSSL_NO_SCTP -# endif -# ifndef OPENSSL_NO_SSL3 -# define OPENSSL_NO_SSL3 -# endif -# ifndef OPENSSL_NO_SSL3_METHOD -# define OPENSSL_NO_SSL3_METHOD -# endif -# ifndef OPENSSL_NO_SSLKEYLOG -# define OPENSSL_NO_SSLKEYLOG -# endif -# ifndef OPENSSL_NO_TFO -# define OPENSSL_NO_TFO -# endif -# ifndef OPENSSL_NO_TRACE -# define OPENSSL_NO_TRACE -# endif -# ifndef OPENSSL_NO_UBSAN -# define OPENSSL_NO_UBSAN -# endif -# ifndef OPENSSL_NO_UNIT_TEST -# define OPENSSL_NO_UNIT_TEST -# endif -# ifndef OPENSSL_NO_WEAK_SSL_CIPHERS -# define OPENSSL_NO_WEAK_SSL_CIPHERS -# endif -# ifndef OPENSSL_NO_ZLIB -# define OPENSSL_NO_ZLIB -# endif -# ifndef OPENSSL_NO_ZLIB_DYNAMIC -# define OPENSSL_NO_ZLIB_DYNAMIC -# endif -# ifndef OPENSSL_NO_ZSTD -# define OPENSSL_NO_ZSTD -# endif -# ifndef OPENSSL_NO_ZSTD_DYNAMIC -# define OPENSSL_NO_ZSTD_DYNAMIC -# endif -# ifndef OPENSSL_NO_STATIC_ENGINE -# define OPENSSL_NO_STATIC_ENGINE -# endif - - -/* Generate 80386 code? */ -# undef I386_ONLY - -/* - * The following are cipher-specific, but are part of the public API. - */ -# if !defined(OPENSSL_SYS_UEFI) -# undef BN_LLONG -/* Only one for the following should be defined */ -# undef SIXTY_FOUR_BIT_LONG -# define SIXTY_FOUR_BIT -# undef THIRTY_TWO_BIT -# endif - -# define RC4_INT unsigned char - -# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) -# define OPENSSL_NO_COMP_ALG -# else -# undef OPENSSL_NO_COMP_ALG -# endif - -# ifdef __cplusplus -} -# endif - -#endif /* OPENSSL_CONFIGURATION_H */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/conftypes.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/conftypes.h deleted file mode 100644 index 17cefaa..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/conftypes.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CONFTYPES_H -# define OPENSSL_CONFTYPES_H -# pragma once - -#ifndef OPENSSL_CONF_H -# include -#endif - -/* - * The contents of this file are deprecated and will be made opaque - */ -struct conf_method_st { - const char *name; - CONF *(*create) (CONF_METHOD *meth); - int (*init) (CONF *conf); - int (*destroy) (CONF *conf); - int (*destroy_data) (CONF *conf); - int (*load_bio) (CONF *conf, BIO *bp, long *eline); - int (*dump) (const CONF *conf, BIO *bp); - int (*is_number) (const CONF *conf, char c); - int (*to_int) (const CONF *conf, char c); - int (*load) (CONF *conf, const char *name, long *eline); -}; - -struct conf_st { - CONF_METHOD *meth; - void *meth_data; - LHASH_OF(CONF_VALUE) *data; - int flag_dollarid; - int flag_abspath; - char *includedir; - OSSL_LIB_CTX *libctx; -}; - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/core.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/core.h deleted file mode 100644 index 18c1991..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/core.h +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CORE_H -# define OPENSSL_CORE_H -# pragma once - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/*- - * Base types - * ---------- - * - * These are the types that the OpenSSL core and providers have in common - * to communicate data between them. - */ - -/* Opaque handles to be used with core upcall functions from providers */ -typedef struct ossl_core_handle_st OSSL_CORE_HANDLE; -typedef struct openssl_core_ctx_st OPENSSL_CORE_CTX; -typedef struct ossl_core_bio_st OSSL_CORE_BIO; - -/* - * Dispatch table element. function_id numbers and the functions are defined - * in core_dispatch.h, see macros with 'OSSL_CORE_MAKE_FUNC' in their names. - * - * An array of these is always terminated by function_id == 0 - */ -struct ossl_dispatch_st { - int function_id; - void (*function)(void); -}; - -# define OSSL_DISPATCH_END \ - { 0, NULL } - -/* - * Other items, essentially an int<->pointer map element. - * - * We make this type distinct from OSSL_DISPATCH to ensure that dispatch - * tables remain tables with function pointers only. - * - * This is used whenever we need to pass things like a table of error reason - * codes <-> reason string maps, ... - * - * Usage determines which field works as key if any, rather than field order. - * - * An array of these is always terminated by id == 0 && ptr == NULL - */ -struct ossl_item_st { - unsigned int id; - void *ptr; -}; - -/* - * Type to tie together algorithm names, property definition string and - * the algorithm implementation in the form of a dispatch table. - * - * An array of these is always terminated by algorithm_names == NULL - */ -struct ossl_algorithm_st { - const char *algorithm_names; /* key */ - const char *property_definition; /* key */ - const OSSL_DISPATCH *implementation; - const char *algorithm_description; -}; - -/* - * Type to pass object data in a uniform way, without exposing the object - * structure. - * - * An array of these is always terminated by key == NULL - */ -struct ossl_param_st { - const char *key; /* the name of the parameter */ - unsigned int data_type; /* declare what kind of content is in buffer */ - void *data; /* value being passed in or out */ - size_t data_size; /* data size */ - size_t return_size; /* returned content size */ -}; - -/* Currently supported OSSL_PARAM data types */ -/* - * OSSL_PARAM_INTEGER and OSSL_PARAM_UNSIGNED_INTEGER - * are arbitrary length and therefore require an arbitrarily sized buffer, - * since they may be used to pass numbers larger than what is natively - * available. - * - * The number must be buffered in native form, i.e. MSB first on B_ENDIAN - * systems and LSB first on L_ENDIAN systems. This means that arbitrary - * native integers can be stored in the buffer, just make sure that the - * buffer size is correct and the buffer itself is properly aligned (for - * example by having the buffer field point at a C integer). - */ -# define OSSL_PARAM_INTEGER 1 -# define OSSL_PARAM_UNSIGNED_INTEGER 2 -/*- - * OSSL_PARAM_REAL - * is a C binary floating point values in native form and alignment. - */ -# define OSSL_PARAM_REAL 3 -/*- - * OSSL_PARAM_UTF8_STRING - * is a printable string. It is expected to be printed as it is. - */ -# define OSSL_PARAM_UTF8_STRING 4 -/*- - * OSSL_PARAM_OCTET_STRING - * is a string of bytes with no further specification. It is expected to be - * printed as a hexdump. - */ -# define OSSL_PARAM_OCTET_STRING 5 -/*- - * OSSL_PARAM_UTF8_PTR - * is a pointer to a printable string. It is expected to be printed as it is. - * - * The difference between this and OSSL_PARAM_UTF8_STRING is that only pointers - * are manipulated for this type. - * - * This is more relevant for parameter requests, where the responding - * function doesn't need to copy the data to the provided buffer, but - * sets the provided buffer to point at the actual data instead. - * - * WARNING! Using these is FRAGILE, as it assumes that the actual - * data and its location are constant. - * - * EXTRA WARNING! If you are not completely sure you most likely want - * to use the OSSL_PARAM_UTF8_STRING type. - */ -# define OSSL_PARAM_UTF8_PTR 6 -/*- - * OSSL_PARAM_OCTET_PTR - * is a pointer to a string of bytes with no further specification. It is - * expected to be printed as a hexdump. - * - * The difference between this and OSSL_PARAM_OCTET_STRING is that only pointers - * are manipulated for this type. - * - * This is more relevant for parameter requests, where the responding - * function doesn't need to copy the data to the provided buffer, but - * sets the provided buffer to point at the actual data instead. - * - * WARNING! Using these is FRAGILE, as it assumes that the actual - * data and its location are constant. - * - * EXTRA WARNING! If you are not completely sure you most likely want - * to use the OSSL_PARAM_OCTET_STRING type. - */ -# define OSSL_PARAM_OCTET_PTR 7 - -/* - * Typedef for the thread stop handling callback. Used both internally and by - * providers. - * - * Providers may register for notifications about threads stopping by - * registering a callback to hear about such events. Providers register the - * callback using the OSSL_FUNC_CORE_THREAD_START function in the |in| dispatch - * table passed to OSSL_provider_init(). The arg passed back to a provider will - * be the provider side context object. - */ -typedef void (*OSSL_thread_stop_handler_fn)(void *arg); - - -/*- - * Provider entry point - * -------------------- - * - * This function is expected to be present in any dynamically loadable - * provider module. By definition, if this function doesn't exist in a - * module, that module is not an OpenSSL provider module. - */ -/*- - * |handle| pointer to opaque type OSSL_CORE_HANDLE. This can be used - * together with some functions passed via |in| to query data. - * |in| is the array of functions that the Core passes to the provider. - * |out| will be the array of base functions that the provider passes - * back to the Core. - * |provctx| a provider side context object, optionally created if the - * provider needs it. This value is passed to other provider - * functions, notably other context constructors. - */ -typedef int (OSSL_provider_init_fn)(const OSSL_CORE_HANDLE *handle, - const OSSL_DISPATCH *in, - const OSSL_DISPATCH **out, - void **provctx); -# ifdef __VMS -# pragma names save -# pragma names uppercase,truncated -# endif -OPENSSL_EXPORT OSSL_provider_init_fn OSSL_provider_init; -# ifdef __VMS -# pragma names restore -# endif - -/* - * Generic callback function signature. - * - * The expectation is that any provider function that wants to offer - * a callback / hook can do so by taking an argument with this type, - * as well as a pointer to caller-specific data. When calling the - * callback, the provider function can populate an OSSL_PARAM array - * with data of its choice and pass that in the callback call, along - * with the caller data argument. - * - * libcrypto may use the OSSL_PARAM array to create arguments for an - * application callback it knows about. - */ -typedef int (OSSL_CALLBACK)(const OSSL_PARAM params[], void *arg); -typedef int (OSSL_INOUT_CALLBACK)(const OSSL_PARAM in_params[], - OSSL_PARAM out_params[], void *arg); -/* - * Passphrase callback function signature - * - * This is similar to the generic callback function above, but adds a - * result parameter. - */ -typedef int (OSSL_PASSPHRASE_CALLBACK)(char *pass, size_t pass_size, - size_t *pass_len, - const OSSL_PARAM params[], void *arg); - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/core_dispatch.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/core_dispatch.h deleted file mode 100644 index e435c08..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/core_dispatch.h +++ /dev/null @@ -1,1156 +0,0 @@ -/* - * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CORE_NUMBERS_H -# define OPENSSL_CORE_NUMBERS_H -# pragma once - -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * Generic function pointer for provider method arrays, or other contexts where - * functions of various signatures must occupy a common slot in an array of - * structures. - */ -typedef void (*OSSL_FUNC)(void); - -/*- - * Identities - * ---------- - * - * All series start with 1, to allow 0 to be an array terminator. - * For any FUNC identity, we also provide a function signature typedef - * and a static inline function to extract a function pointer from a - * OSSL_DISPATCH element in a type safe manner. - * - * Names: - * for any function base name 'foo' (uppercase form 'FOO'), we will have - * the following: - * - a macro for the identity with the name OSSL_FUNC_'FOO' or derivatives - * thereof (to be specified further down) - * - a function signature typedef with the name OSSL_FUNC_'foo'_fn - * - a function pointer extractor function with the name OSSL_FUNC_'foo' - */ - -/* - * Helper macro to create the function signature typedef and the extractor - * |type| is the return-type of the function, |name| is the name of the - * function to fetch, and |args| is a parenthesized list of parameters - * for the function (that is, it is |name|'s function signature). - * Note: This is considered a "reserved" internal macro. Applications should - * not use this or assume its existence. - */ -#define OSSL_CORE_MAKE_FUNC(type,name,args) \ - typedef type (OSSL_FUNC_##name##_fn)args; \ - static ossl_unused ossl_inline \ - OSSL_FUNC_##name##_fn *OSSL_FUNC_##name(const OSSL_DISPATCH *opf) \ - { \ - return (OSSL_FUNC_##name##_fn *)opf->function; \ - } - -/* - * Core function identities, for the two OSSL_DISPATCH tables being passed - * in the OSSL_provider_init call. - * - * 0 serves as a marker for the end of the OSSL_DISPATCH array, and must - * therefore NEVER be used as a function identity. - */ -/* Functions provided by the Core to the provider, reserved numbers 1-1023 */ -# define OSSL_FUNC_CORE_GETTABLE_PARAMS 1 -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, - core_gettable_params,(const OSSL_CORE_HANDLE *prov)) -# define OSSL_FUNC_CORE_GET_PARAMS 2 -OSSL_CORE_MAKE_FUNC(int,core_get_params,(const OSSL_CORE_HANDLE *prov, - OSSL_PARAM params[])) -# define OSSL_FUNC_CORE_THREAD_START 3 -OSSL_CORE_MAKE_FUNC(int,core_thread_start,(const OSSL_CORE_HANDLE *prov, - OSSL_thread_stop_handler_fn handfn, - void *arg)) -# define OSSL_FUNC_CORE_GET_LIBCTX 4 -OSSL_CORE_MAKE_FUNC(OPENSSL_CORE_CTX *,core_get_libctx, - (const OSSL_CORE_HANDLE *prov)) -# define OSSL_FUNC_CORE_NEW_ERROR 5 -OSSL_CORE_MAKE_FUNC(void,core_new_error,(const OSSL_CORE_HANDLE *prov)) -# define OSSL_FUNC_CORE_SET_ERROR_DEBUG 6 -OSSL_CORE_MAKE_FUNC(void,core_set_error_debug, - (const OSSL_CORE_HANDLE *prov, - const char *file, int line, const char *func)) -# define OSSL_FUNC_CORE_VSET_ERROR 7 -OSSL_CORE_MAKE_FUNC(void,core_vset_error, - (const OSSL_CORE_HANDLE *prov, - uint32_t reason, const char *fmt, va_list args)) -# define OSSL_FUNC_CORE_SET_ERROR_MARK 8 -OSSL_CORE_MAKE_FUNC(int, core_set_error_mark, (const OSSL_CORE_HANDLE *prov)) -# define OSSL_FUNC_CORE_CLEAR_LAST_ERROR_MARK 9 -OSSL_CORE_MAKE_FUNC(int, core_clear_last_error_mark, - (const OSSL_CORE_HANDLE *prov)) -# define OSSL_FUNC_CORE_POP_ERROR_TO_MARK 10 -OSSL_CORE_MAKE_FUNC(int, core_pop_error_to_mark, (const OSSL_CORE_HANDLE *prov)) - - -/* Functions to access the OBJ database */ - -#define OSSL_FUNC_CORE_OBJ_ADD_SIGID 11 -#define OSSL_FUNC_CORE_OBJ_CREATE 12 - -OSSL_CORE_MAKE_FUNC(int, core_obj_add_sigid, - (const OSSL_CORE_HANDLE *prov, const char *sign_name, - const char *digest_name, const char *pkey_name)) -OSSL_CORE_MAKE_FUNC(int, core_obj_create, - (const OSSL_CORE_HANDLE *prov, const char *oid, - const char *sn, const char *ln)) - -/* Memory allocation, freeing, clearing. */ -#define OSSL_FUNC_CRYPTO_MALLOC 20 -OSSL_CORE_MAKE_FUNC(void *, - CRYPTO_malloc, (size_t num, const char *file, int line)) -#define OSSL_FUNC_CRYPTO_ZALLOC 21 -OSSL_CORE_MAKE_FUNC(void *, - CRYPTO_zalloc, (size_t num, const char *file, int line)) -#define OSSL_FUNC_CRYPTO_FREE 22 -OSSL_CORE_MAKE_FUNC(void, - CRYPTO_free, (void *ptr, const char *file, int line)) -#define OSSL_FUNC_CRYPTO_CLEAR_FREE 23 -OSSL_CORE_MAKE_FUNC(void, - CRYPTO_clear_free, (void *ptr, size_t num, const char *file, int line)) -#define OSSL_FUNC_CRYPTO_REALLOC 24 -OSSL_CORE_MAKE_FUNC(void *, - CRYPTO_realloc, (void *addr, size_t num, const char *file, int line)) -#define OSSL_FUNC_CRYPTO_CLEAR_REALLOC 25 -OSSL_CORE_MAKE_FUNC(void *, - CRYPTO_clear_realloc, (void *addr, size_t old_num, size_t num, - const char *file, int line)) -#define OSSL_FUNC_CRYPTO_SECURE_MALLOC 26 -OSSL_CORE_MAKE_FUNC(void *, - CRYPTO_secure_malloc, (size_t num, const char *file, int line)) -#define OSSL_FUNC_CRYPTO_SECURE_ZALLOC 27 -OSSL_CORE_MAKE_FUNC(void *, - CRYPTO_secure_zalloc, (size_t num, const char *file, int line)) -#define OSSL_FUNC_CRYPTO_SECURE_FREE 28 -OSSL_CORE_MAKE_FUNC(void, - CRYPTO_secure_free, (void *ptr, const char *file, int line)) -#define OSSL_FUNC_CRYPTO_SECURE_CLEAR_FREE 29 -OSSL_CORE_MAKE_FUNC(void, - CRYPTO_secure_clear_free, (void *ptr, size_t num, const char *file, - int line)) -#define OSSL_FUNC_CRYPTO_SECURE_ALLOCATED 30 -OSSL_CORE_MAKE_FUNC(int, - CRYPTO_secure_allocated, (const void *ptr)) -#define OSSL_FUNC_OPENSSL_CLEANSE 31 -OSSL_CORE_MAKE_FUNC(void, - OPENSSL_cleanse, (void *ptr, size_t len)) - -/* Bio functions provided by the core */ -#define OSSL_FUNC_BIO_NEW_FILE 40 -#define OSSL_FUNC_BIO_NEW_MEMBUF 41 -#define OSSL_FUNC_BIO_READ_EX 42 -#define OSSL_FUNC_BIO_WRITE_EX 43 -#define OSSL_FUNC_BIO_UP_REF 44 -#define OSSL_FUNC_BIO_FREE 45 -#define OSSL_FUNC_BIO_VPRINTF 46 -#define OSSL_FUNC_BIO_VSNPRINTF 47 -#define OSSL_FUNC_BIO_PUTS 48 -#define OSSL_FUNC_BIO_GETS 49 -#define OSSL_FUNC_BIO_CTRL 50 - - -OSSL_CORE_MAKE_FUNC(OSSL_CORE_BIO *, BIO_new_file, (const char *filename, - const char *mode)) -OSSL_CORE_MAKE_FUNC(OSSL_CORE_BIO *, BIO_new_membuf, (const void *buf, int len)) -OSSL_CORE_MAKE_FUNC(int, BIO_read_ex, (OSSL_CORE_BIO *bio, void *data, - size_t data_len, size_t *bytes_read)) -OSSL_CORE_MAKE_FUNC(int, BIO_write_ex, (OSSL_CORE_BIO *bio, const void *data, - size_t data_len, size_t *written)) -OSSL_CORE_MAKE_FUNC(int, BIO_gets, (OSSL_CORE_BIO *bio, char *buf, int size)) -OSSL_CORE_MAKE_FUNC(int, BIO_puts, (OSSL_CORE_BIO *bio, const char *str)) -OSSL_CORE_MAKE_FUNC(int, BIO_up_ref, (OSSL_CORE_BIO *bio)) -OSSL_CORE_MAKE_FUNC(int, BIO_free, (OSSL_CORE_BIO *bio)) -OSSL_CORE_MAKE_FUNC(int, BIO_vprintf, (OSSL_CORE_BIO *bio, const char *format, - va_list args)) -OSSL_CORE_MAKE_FUNC(int, BIO_vsnprintf, - (char *buf, size_t n, const char *fmt, va_list args)) -OSSL_CORE_MAKE_FUNC(int, BIO_ctrl, (OSSL_CORE_BIO *bio, - int cmd, long num, void *ptr)) - -/* New seeding functions prototypes with the 101-104 series */ -#define OSSL_FUNC_CLEANUP_USER_ENTROPY 96 -#define OSSL_FUNC_CLEANUP_USER_NONCE 97 -#define OSSL_FUNC_GET_USER_ENTROPY 98 -#define OSSL_FUNC_GET_USER_NONCE 99 - -#define OSSL_FUNC_INDICATOR_CB 95 -OSSL_CORE_MAKE_FUNC(void, indicator_cb, (OPENSSL_CORE_CTX *ctx, - OSSL_INDICATOR_CALLBACK **cb)) -#define OSSL_FUNC_SELF_TEST_CB 100 -OSSL_CORE_MAKE_FUNC(void, self_test_cb, (OPENSSL_CORE_CTX *ctx, OSSL_CALLBACK **cb, - void **cbarg)) - -/* Functions to get seed material from the operating system */ -#define OSSL_FUNC_GET_ENTROPY 101 -#define OSSL_FUNC_CLEANUP_ENTROPY 102 -#define OSSL_FUNC_GET_NONCE 103 -#define OSSL_FUNC_CLEANUP_NONCE 104 -OSSL_CORE_MAKE_FUNC(size_t, get_entropy, (const OSSL_CORE_HANDLE *handle, - unsigned char **pout, int entropy, - size_t min_len, size_t max_len)) -OSSL_CORE_MAKE_FUNC(size_t, get_user_entropy, (const OSSL_CORE_HANDLE *handle, - unsigned char **pout, int entropy, - size_t min_len, size_t max_len)) -OSSL_CORE_MAKE_FUNC(void, cleanup_entropy, (const OSSL_CORE_HANDLE *handle, - unsigned char *buf, size_t len)) -OSSL_CORE_MAKE_FUNC(void, cleanup_user_entropy, (const OSSL_CORE_HANDLE *handle, - unsigned char *buf, size_t len)) -OSSL_CORE_MAKE_FUNC(size_t, get_nonce, (const OSSL_CORE_HANDLE *handle, - unsigned char **pout, size_t min_len, - size_t max_len, const void *salt, - size_t salt_len)) -OSSL_CORE_MAKE_FUNC(size_t, get_user_nonce, (const OSSL_CORE_HANDLE *handle, - unsigned char **pout, size_t min_len, - size_t max_len, const void *salt, - size_t salt_len)) -OSSL_CORE_MAKE_FUNC(void, cleanup_nonce, (const OSSL_CORE_HANDLE *handle, - unsigned char *buf, size_t len)) -OSSL_CORE_MAKE_FUNC(void, cleanup_user_nonce, (const OSSL_CORE_HANDLE *handle, - unsigned char *buf, size_t len)) - -/* Functions to access the core's providers */ -#define OSSL_FUNC_PROVIDER_REGISTER_CHILD_CB 105 -#define OSSL_FUNC_PROVIDER_DEREGISTER_CHILD_CB 106 -#define OSSL_FUNC_PROVIDER_NAME 107 -#define OSSL_FUNC_PROVIDER_GET0_PROVIDER_CTX 108 -#define OSSL_FUNC_PROVIDER_GET0_DISPATCH 109 -#define OSSL_FUNC_PROVIDER_UP_REF 110 -#define OSSL_FUNC_PROVIDER_FREE 111 - -OSSL_CORE_MAKE_FUNC(int, provider_register_child_cb, - (const OSSL_CORE_HANDLE *handle, - int (*create_cb)(const OSSL_CORE_HANDLE *provider, void *cbdata), - int (*remove_cb)(const OSSL_CORE_HANDLE *provider, void *cbdata), - int (*global_props_cb)(const char *props, void *cbdata), - void *cbdata)) -OSSL_CORE_MAKE_FUNC(void, provider_deregister_child_cb, - (const OSSL_CORE_HANDLE *handle)) -OSSL_CORE_MAKE_FUNC(const char *, provider_name, - (const OSSL_CORE_HANDLE *prov)) -OSSL_CORE_MAKE_FUNC(void *, provider_get0_provider_ctx, - (const OSSL_CORE_HANDLE *prov)) -OSSL_CORE_MAKE_FUNC(const OSSL_DISPATCH *, provider_get0_dispatch, - (const OSSL_CORE_HANDLE *prov)) -OSSL_CORE_MAKE_FUNC(int, provider_up_ref, - (const OSSL_CORE_HANDLE *prov, int activate)) -OSSL_CORE_MAKE_FUNC(int, provider_free, - (const OSSL_CORE_HANDLE *prov, int deactivate)) - -/* Additional error functions provided by the core */ -# define OSSL_FUNC_CORE_COUNT_TO_MARK 120 -OSSL_CORE_MAKE_FUNC(int, core_count_to_mark, (const OSSL_CORE_HANDLE *prov)) - -/* Functions provided by the provider to the Core, reserved numbers 1024-1535 */ -# define OSSL_FUNC_PROVIDER_TEARDOWN 1024 -OSSL_CORE_MAKE_FUNC(void, provider_teardown, (void *provctx)) -# define OSSL_FUNC_PROVIDER_GETTABLE_PARAMS 1025 -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, - provider_gettable_params,(void *provctx)) -# define OSSL_FUNC_PROVIDER_GET_PARAMS 1026 -OSSL_CORE_MAKE_FUNC(int, provider_get_params, (void *provctx, - OSSL_PARAM params[])) -# define OSSL_FUNC_PROVIDER_QUERY_OPERATION 1027 -OSSL_CORE_MAKE_FUNC(const OSSL_ALGORITHM *,provider_query_operation, - (void *provctx, int operation_id, int *no_store)) -# define OSSL_FUNC_PROVIDER_UNQUERY_OPERATION 1028 -OSSL_CORE_MAKE_FUNC(void, provider_unquery_operation, - (void *provctx, int operation_id, const OSSL_ALGORITHM *)) -# define OSSL_FUNC_PROVIDER_GET_REASON_STRINGS 1029 -OSSL_CORE_MAKE_FUNC(const OSSL_ITEM *,provider_get_reason_strings, - (void *provctx)) -# define OSSL_FUNC_PROVIDER_GET_CAPABILITIES 1030 -OSSL_CORE_MAKE_FUNC(int, provider_get_capabilities, (void *provctx, - const char *capability, OSSL_CALLBACK *cb, void *arg)) -# define OSSL_FUNC_PROVIDER_SELF_TEST 1031 -OSSL_CORE_MAKE_FUNC(int, provider_self_test, (void *provctx)) -# define OSSL_FUNC_PROVIDER_RANDOM_BYTES 1032 -OSSL_CORE_MAKE_FUNC(int, provider_random_bytes, (void *provctx, int which, - void *buf, size_t n, - unsigned int strength)) - -/* Libssl related functions */ -#define OSSL_FUNC_SSL_QUIC_TLS_CRYPTO_SEND 2001 -OSSL_CORE_MAKE_FUNC(int, SSL_QUIC_TLS_crypto_send, - (SSL *s, const unsigned char *buf, size_t buf_len, - size_t *consumed, void *arg)) -#define OSSL_FUNC_SSL_QUIC_TLS_CRYPTO_RECV_RCD 2002 -OSSL_CORE_MAKE_FUNC(int, SSL_QUIC_TLS_crypto_recv_rcd, - (SSL *s, const unsigned char **buf, size_t *bytes_read, - void *arg)) -#define OSSL_FUNC_SSL_QUIC_TLS_CRYPTO_RELEASE_RCD 2003 -OSSL_CORE_MAKE_FUNC(int, SSL_QUIC_TLS_crypto_release_rcd, - (SSL *s, size_t bytes_read, void *arg)) -#define OSSL_FUNC_SSL_QUIC_TLS_YIELD_SECRET 2004 -OSSL_CORE_MAKE_FUNC(int, SSL_QUIC_TLS_yield_secret, - (SSL *s, uint32_t prot_level, int direction, - const unsigned char *secret, size_t secret_len, void *arg)) -#define OSSL_FUNC_SSL_QUIC_TLS_GOT_TRANSPORT_PARAMS 2005 -OSSL_CORE_MAKE_FUNC(int, SSL_QUIC_TLS_got_transport_params, - (SSL *s, const unsigned char *params, size_t params_len, - void *arg)) -#define OSSL_FUNC_SSL_QUIC_TLS_ALERT 2006 -OSSL_CORE_MAKE_FUNC(int, SSL_QUIC_TLS_alert, - (SSL *s, unsigned char alert_code, void *arg)) - -/* Operations */ - -# define OSSL_OP_DIGEST 1 -# define OSSL_OP_CIPHER 2 /* Symmetric Ciphers */ -# define OSSL_OP_MAC 3 -# define OSSL_OP_KDF 4 -# define OSSL_OP_RAND 5 -# define OSSL_OP_KEYMGMT 10 -# define OSSL_OP_KEYEXCH 11 -# define OSSL_OP_SIGNATURE 12 -# define OSSL_OP_ASYM_CIPHER 13 -# define OSSL_OP_KEM 14 -# define OSSL_OP_SKEYMGMT 15 -/* New section for non-EVP operations */ -# define OSSL_OP_ENCODER 20 -# define OSSL_OP_DECODER 21 -# define OSSL_OP_STORE 22 -/* Highest known operation number */ -# define OSSL_OP__HIGHEST 22 - -/* Digests */ - -# define OSSL_FUNC_DIGEST_NEWCTX 1 -# define OSSL_FUNC_DIGEST_INIT 2 -# define OSSL_FUNC_DIGEST_UPDATE 3 -# define OSSL_FUNC_DIGEST_FINAL 4 -# define OSSL_FUNC_DIGEST_DIGEST 5 -# define OSSL_FUNC_DIGEST_FREECTX 6 -# define OSSL_FUNC_DIGEST_DUPCTX 7 -# define OSSL_FUNC_DIGEST_GET_PARAMS 8 -# define OSSL_FUNC_DIGEST_SET_CTX_PARAMS 9 -# define OSSL_FUNC_DIGEST_GET_CTX_PARAMS 10 -# define OSSL_FUNC_DIGEST_GETTABLE_PARAMS 11 -# define OSSL_FUNC_DIGEST_SETTABLE_CTX_PARAMS 12 -# define OSSL_FUNC_DIGEST_GETTABLE_CTX_PARAMS 13 -# define OSSL_FUNC_DIGEST_SQUEEZE 14 -# define OSSL_FUNC_DIGEST_COPYCTX 15 - -OSSL_CORE_MAKE_FUNC(void *, digest_newctx, (void *provctx)) -OSSL_CORE_MAKE_FUNC(int, digest_init, (void *dctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, digest_update, - (void *dctx, const unsigned char *in, size_t inl)) -OSSL_CORE_MAKE_FUNC(int, digest_final, - (void *dctx, - unsigned char *out, size_t *outl, size_t outsz)) -OSSL_CORE_MAKE_FUNC(int, digest_squeeze, - (void *dctx, - unsigned char *out, size_t *outl, size_t outsz)) -OSSL_CORE_MAKE_FUNC(int, digest_digest, - (void *provctx, const unsigned char *in, size_t inl, - unsigned char *out, size_t *outl, size_t outsz)) - -OSSL_CORE_MAKE_FUNC(void, digest_freectx, (void *dctx)) -OSSL_CORE_MAKE_FUNC(void *, digest_dupctx, (void *dctx)) -OSSL_CORE_MAKE_FUNC(void, digest_copyctx, (void *outctx, void *inctx)) - -OSSL_CORE_MAKE_FUNC(int, digest_get_params, (OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, digest_set_ctx_params, - (void *vctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, digest_get_ctx_params, - (void *vctx, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, digest_gettable_params, - (void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, digest_settable_ctx_params, - (void *dctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, digest_gettable_ctx_params, - (void *dctx, void *provctx)) - -/* Symmetric Ciphers */ - -# define OSSL_FUNC_CIPHER_NEWCTX 1 -# define OSSL_FUNC_CIPHER_ENCRYPT_INIT 2 -# define OSSL_FUNC_CIPHER_DECRYPT_INIT 3 -# define OSSL_FUNC_CIPHER_UPDATE 4 -# define OSSL_FUNC_CIPHER_FINAL 5 -# define OSSL_FUNC_CIPHER_CIPHER 6 -# define OSSL_FUNC_CIPHER_FREECTX 7 -# define OSSL_FUNC_CIPHER_DUPCTX 8 -# define OSSL_FUNC_CIPHER_GET_PARAMS 9 -# define OSSL_FUNC_CIPHER_GET_CTX_PARAMS 10 -# define OSSL_FUNC_CIPHER_SET_CTX_PARAMS 11 -# define OSSL_FUNC_CIPHER_GETTABLE_PARAMS 12 -# define OSSL_FUNC_CIPHER_GETTABLE_CTX_PARAMS 13 -# define OSSL_FUNC_CIPHER_SETTABLE_CTX_PARAMS 14 -# define OSSL_FUNC_CIPHER_PIPELINE_ENCRYPT_INIT 15 -# define OSSL_FUNC_CIPHER_PIPELINE_DECRYPT_INIT 16 -# define OSSL_FUNC_CIPHER_PIPELINE_UPDATE 17 -# define OSSL_FUNC_CIPHER_PIPELINE_FINAL 18 -# define OSSL_FUNC_CIPHER_ENCRYPT_SKEY_INIT 19 -# define OSSL_FUNC_CIPHER_DECRYPT_SKEY_INIT 20 - -OSSL_CORE_MAKE_FUNC(void *, cipher_newctx, (void *provctx)) -OSSL_CORE_MAKE_FUNC(int, cipher_encrypt_init, (void *cctx, - const unsigned char *key, - size_t keylen, - const unsigned char *iv, - size_t ivlen, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, cipher_decrypt_init, (void *cctx, - const unsigned char *key, - size_t keylen, - const unsigned char *iv, - size_t ivlen, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, cipher_update, - (void *cctx, - unsigned char *out, size_t *outl, size_t outsize, - const unsigned char *in, size_t inl)) -OSSL_CORE_MAKE_FUNC(int, cipher_final, - (void *cctx, - unsigned char *out, size_t *outl, size_t outsize)) -OSSL_CORE_MAKE_FUNC(int, cipher_cipher, - (void *cctx, - unsigned char *out, size_t *outl, size_t outsize, - const unsigned char *in, size_t inl)) -OSSL_CORE_MAKE_FUNC(int, cipher_pipeline_encrypt_init, - (void *cctx, - const unsigned char *key, size_t keylen, - size_t numpipes, const unsigned char **iv, size_t ivlen, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, cipher_pipeline_decrypt_init, - (void *cctx, - const unsigned char *key, size_t keylen, - size_t numpipes, const unsigned char **iv, size_t ivlen, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, cipher_pipeline_update, - (void *cctx, size_t numpipes, - unsigned char **out, size_t *outl, const size_t *outsize, - const unsigned char **in, const size_t *inl)) -OSSL_CORE_MAKE_FUNC(int, cipher_pipeline_final, - (void *cctx, size_t numpipes, - unsigned char **out, size_t *outl, const size_t *outsize)) -OSSL_CORE_MAKE_FUNC(void, cipher_freectx, (void *cctx)) -OSSL_CORE_MAKE_FUNC(void *, cipher_dupctx, (void *cctx)) -OSSL_CORE_MAKE_FUNC(int, cipher_get_params, (OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, cipher_get_ctx_params, (void *cctx, - OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, cipher_set_ctx_params, (void *cctx, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, cipher_gettable_params, - (void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, cipher_settable_ctx_params, - (void *cctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, cipher_gettable_ctx_params, - (void *cctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int, cipher_encrypt_skey_init, (void *cctx, - void *skeydata, - const unsigned char *iv, - size_t ivlen, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, cipher_decrypt_skey_init, (void *cctx, - void *skeydata, - const unsigned char *iv, - size_t ivlen, - const OSSL_PARAM params[])) - -/* MACs */ - -# define OSSL_FUNC_MAC_NEWCTX 1 -# define OSSL_FUNC_MAC_DUPCTX 2 -# define OSSL_FUNC_MAC_FREECTX 3 -# define OSSL_FUNC_MAC_INIT 4 -# define OSSL_FUNC_MAC_UPDATE 5 -# define OSSL_FUNC_MAC_FINAL 6 -# define OSSL_FUNC_MAC_GET_PARAMS 7 -# define OSSL_FUNC_MAC_GET_CTX_PARAMS 8 -# define OSSL_FUNC_MAC_SET_CTX_PARAMS 9 -# define OSSL_FUNC_MAC_GETTABLE_PARAMS 10 -# define OSSL_FUNC_MAC_GETTABLE_CTX_PARAMS 11 -# define OSSL_FUNC_MAC_SETTABLE_CTX_PARAMS 12 -# define OSSL_FUNC_MAC_INIT_SKEY 13 - -OSSL_CORE_MAKE_FUNC(void *, mac_newctx, (void *provctx)) -OSSL_CORE_MAKE_FUNC(void *, mac_dupctx, (void *src)) -OSSL_CORE_MAKE_FUNC(void, mac_freectx, (void *mctx)) -OSSL_CORE_MAKE_FUNC(int, mac_init, (void *mctx, const unsigned char *key, - size_t keylen, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, mac_update, - (void *mctx, const unsigned char *in, size_t inl)) -OSSL_CORE_MAKE_FUNC(int, mac_final, - (void *mctx, - unsigned char *out, size_t *outl, size_t outsize)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, mac_gettable_params, (void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, mac_gettable_ctx_params, - (void *mctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, mac_settable_ctx_params, - (void *mctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int, mac_get_params, (OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, mac_get_ctx_params, - (void *mctx, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, mac_set_ctx_params, - (void *mctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, mac_init_skey, (void *mctx, void *key, const OSSL_PARAM params[])) - -/*- - * Symmetric key management - * - * The Key Management takes care of provider side of symmetric key objects, and - * includes essentially everything that manipulates the keys themselves and - * their parameters. - * - * The key objects are commonly referred to as |keydata|, and it MUST be able - * to contain parameters if the key has any, and the secret key. - * - * Key objects are created with OSSL_FUNC_skeymgmt_import() (there is no - * dedicated memory allocation function), exported with - * OSSL_FUNC_skeymgmt_export() and destroyed with OSSL_FUNC_keymgmt_free(). - * - */ - -/* Key data subset selection - individual bits */ -# define OSSL_SKEYMGMT_SELECT_PARAMETERS 0x01 -# define OSSL_SKEYMGMT_SELECT_SECRET_KEY 0x02 - -/* Key data subset selection - combinations */ -# define OSSL_SKEYMGMT_SELECT_ALL \ - (OSSL_SKEYMGMT_SELECT_PARAMETERS | OSSL_SKEYMGMT_SELECT_SECRET_KEY) - -# define OSSL_FUNC_SKEYMGMT_FREE 1 -# define OSSL_FUNC_SKEYMGMT_IMPORT 2 -# define OSSL_FUNC_SKEYMGMT_EXPORT 3 -# define OSSL_FUNC_SKEYMGMT_GENERATE 4 -# define OSSL_FUNC_SKEYMGMT_GET_KEY_ID 5 -# define OSSL_FUNC_SKEYMGMT_IMP_SETTABLE_PARAMS 6 -# define OSSL_FUNC_SKEYMGMT_GEN_SETTABLE_PARAMS 7 - -OSSL_CORE_MAKE_FUNC(void, skeymgmt_free, (void *keydata)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, - skeymgmt_imp_settable_params, (void *provctx)) -OSSL_CORE_MAKE_FUNC(void *, skeymgmt_import, (void *provctx, int selection, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, skeymgmt_export, - (void *keydata, int selection, - OSSL_CALLBACK *param_cb, void *cbarg)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, - skeymgmt_gen_settable_params, (void *provctx)) -OSSL_CORE_MAKE_FUNC(void *, skeymgmt_generate, (void *provctx, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const char *, skeymgmt_get_key_id, (void *keydata)) - -/* KDFs and PRFs */ - -# define OSSL_FUNC_KDF_NEWCTX 1 -# define OSSL_FUNC_KDF_DUPCTX 2 -# define OSSL_FUNC_KDF_FREECTX 3 -# define OSSL_FUNC_KDF_RESET 4 -# define OSSL_FUNC_KDF_DERIVE 5 -# define OSSL_FUNC_KDF_GETTABLE_PARAMS 6 -# define OSSL_FUNC_KDF_GETTABLE_CTX_PARAMS 7 -# define OSSL_FUNC_KDF_SETTABLE_CTX_PARAMS 8 -# define OSSL_FUNC_KDF_GET_PARAMS 9 -# define OSSL_FUNC_KDF_GET_CTX_PARAMS 10 -# define OSSL_FUNC_KDF_SET_CTX_PARAMS 11 -# define OSSL_FUNC_KDF_SET_SKEY 12 -# define OSSL_FUNC_KDF_DERIVE_SKEY 13 - -OSSL_CORE_MAKE_FUNC(void *, kdf_newctx, (void *provctx)) -OSSL_CORE_MAKE_FUNC(void *, kdf_dupctx, (void *src)) -OSSL_CORE_MAKE_FUNC(void, kdf_freectx, (void *kctx)) -OSSL_CORE_MAKE_FUNC(void, kdf_reset, (void *kctx)) -OSSL_CORE_MAKE_FUNC(int, kdf_derive, (void *kctx, unsigned char *key, - size_t keylen, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, kdf_gettable_params, (void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, kdf_gettable_ctx_params, - (void *kctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, kdf_settable_ctx_params, - (void *kctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int, kdf_get_params, (OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, kdf_get_ctx_params, - (void *kctx, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, kdf_set_ctx_params, - (void *kctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, kdf_set_skey, - (void *kctx, void *skeydata, const char *paramname)) -OSSL_CORE_MAKE_FUNC(void *, kdf_derive_skey, (void *ctx, const char *key_type, void *provctx, - OSSL_FUNC_skeymgmt_import_fn *import, - size_t keylen, const OSSL_PARAM params[])) - -/* RAND */ - -# define OSSL_FUNC_RAND_NEWCTX 1 -# define OSSL_FUNC_RAND_FREECTX 2 -# define OSSL_FUNC_RAND_INSTANTIATE 3 -# define OSSL_FUNC_RAND_UNINSTANTIATE 4 -# define OSSL_FUNC_RAND_GENERATE 5 -# define OSSL_FUNC_RAND_RESEED 6 -# define OSSL_FUNC_RAND_NONCE 7 -# define OSSL_FUNC_RAND_ENABLE_LOCKING 8 -# define OSSL_FUNC_RAND_LOCK 9 -# define OSSL_FUNC_RAND_UNLOCK 10 -# define OSSL_FUNC_RAND_GETTABLE_PARAMS 11 -# define OSSL_FUNC_RAND_GETTABLE_CTX_PARAMS 12 -# define OSSL_FUNC_RAND_SETTABLE_CTX_PARAMS 13 -# define OSSL_FUNC_RAND_GET_PARAMS 14 -# define OSSL_FUNC_RAND_GET_CTX_PARAMS 15 -# define OSSL_FUNC_RAND_SET_CTX_PARAMS 16 -# define OSSL_FUNC_RAND_VERIFY_ZEROIZATION 17 -# define OSSL_FUNC_RAND_GET_SEED 18 -# define OSSL_FUNC_RAND_CLEAR_SEED 19 - -OSSL_CORE_MAKE_FUNC(void *,rand_newctx, - (void *provctx, void *parent, - const OSSL_DISPATCH *parent_calls)) -OSSL_CORE_MAKE_FUNC(void,rand_freectx, (void *vctx)) -OSSL_CORE_MAKE_FUNC(int,rand_instantiate, - (void *vdrbg, unsigned int strength, - int prediction_resistance, - const unsigned char *pstr, size_t pstr_len, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int,rand_uninstantiate, (void *vdrbg)) -OSSL_CORE_MAKE_FUNC(int,rand_generate, - (void *vctx, unsigned char *out, size_t outlen, - unsigned int strength, int prediction_resistance, - const unsigned char *addin, size_t addin_len)) -OSSL_CORE_MAKE_FUNC(int,rand_reseed, - (void *vctx, int prediction_resistance, - const unsigned char *ent, size_t ent_len, - const unsigned char *addin, size_t addin_len)) -OSSL_CORE_MAKE_FUNC(size_t,rand_nonce, - (void *vctx, unsigned char *out, unsigned int strength, - size_t min_noncelen, size_t max_noncelen)) -OSSL_CORE_MAKE_FUNC(int,rand_enable_locking, (void *vctx)) -OSSL_CORE_MAKE_FUNC(int,rand_lock, (void *vctx)) -OSSL_CORE_MAKE_FUNC(void,rand_unlock, (void *vctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *,rand_gettable_params, (void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *,rand_gettable_ctx_params, - (void *vctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *,rand_settable_ctx_params, - (void *vctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int,rand_get_params, (OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int,rand_get_ctx_params, - (void *vctx, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int,rand_set_ctx_params, - (void *vctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(void,rand_set_callbacks, - (void *vctx, OSSL_INOUT_CALLBACK *get_entropy, - OSSL_CALLBACK *cleanup_entropy, - OSSL_INOUT_CALLBACK *get_nonce, - OSSL_CALLBACK *cleanup_nonce, void *arg)) -OSSL_CORE_MAKE_FUNC(int,rand_verify_zeroization, - (void *vctx)) -OSSL_CORE_MAKE_FUNC(size_t,rand_get_seed, - (void *vctx, unsigned char **buffer, - int entropy, size_t min_len, size_t max_len, - int prediction_resistance, - const unsigned char *adin, size_t adin_len)) -OSSL_CORE_MAKE_FUNC(void,rand_clear_seed, - (void *vctx, unsigned char *buffer, size_t b_len)) - -/*- - * Key management - * - * The Key Management takes care of provider side key objects, and includes - * all current functionality to create them, destroy them, set parameters - * and key material, etc, essentially everything that manipulates the keys - * themselves and their parameters. - * - * The key objects are commonly referred to as |keydata|, and it MUST be able - * to contain parameters if the key has any, the public key and the private - * key. All parts are optional, but their presence determines what can be - * done with the key object in terms of encryption, signature, and so on. - * The assumption from libcrypto is that the key object contains any of the - * following data combinations: - * - * - parameters only - * - public key only - * - public key + private key - * - parameters + public key - * - parameters + public key + private key - * - * What "parameters", "public key" and "private key" means in detail is left - * to the implementation. In the case of DH and DSA, they would typically - * include domain parameters, while for certain variants of RSA, they would - * typically include PSS or OAEP parameters. - * - * Key objects are created with OSSL_FUNC_keymgmt_new() and destroyed with - * OSSL_FUNC_keymgmt_free(). Key objects can have data filled in with - * OSSL_FUNC_keymgmt_import(). - * - * Three functions are made available to check what selection of data is - * present in a key object: OSSL_FUNC_keymgmt_has_parameters(), - * OSSL_FUNC_keymgmt_has_public_key(), and OSSL_FUNC_keymgmt_has_private_key(), - */ - -/* Key data subset selection - individual bits */ -# define OSSL_KEYMGMT_SELECT_PRIVATE_KEY 0x01 -# define OSSL_KEYMGMT_SELECT_PUBLIC_KEY 0x02 -# define OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS 0x04 -# define OSSL_KEYMGMT_SELECT_OTHER_PARAMETERS 0x80 - -/* Key data subset selection - combinations */ -# define OSSL_KEYMGMT_SELECT_ALL_PARAMETERS \ - ( OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS \ - | OSSL_KEYMGMT_SELECT_OTHER_PARAMETERS) -# define OSSL_KEYMGMT_SELECT_KEYPAIR \ - ( OSSL_KEYMGMT_SELECT_PRIVATE_KEY | OSSL_KEYMGMT_SELECT_PUBLIC_KEY ) -# define OSSL_KEYMGMT_SELECT_ALL \ - ( OSSL_KEYMGMT_SELECT_KEYPAIR | OSSL_KEYMGMT_SELECT_ALL_PARAMETERS ) - -# define OSSL_KEYMGMT_VALIDATE_FULL_CHECK 0 -# define OSSL_KEYMGMT_VALIDATE_QUICK_CHECK 1 - -/* Basic key object creation */ -# define OSSL_FUNC_KEYMGMT_NEW 1 -OSSL_CORE_MAKE_FUNC(void *, keymgmt_new, (void *provctx)) - -/* Generation, a more complex constructor */ -# define OSSL_FUNC_KEYMGMT_GEN_INIT 2 -# define OSSL_FUNC_KEYMGMT_GEN_SET_TEMPLATE 3 -# define OSSL_FUNC_KEYMGMT_GEN_SET_PARAMS 4 -# define OSSL_FUNC_KEYMGMT_GEN_SETTABLE_PARAMS 5 -# define OSSL_FUNC_KEYMGMT_GEN 6 -# define OSSL_FUNC_KEYMGMT_GEN_CLEANUP 7 -# define OSSL_FUNC_KEYMGMT_GEN_GET_PARAMS 15 -# define OSSL_FUNC_KEYMGMT_GEN_GETTABLE_PARAMS 16 - -OSSL_CORE_MAKE_FUNC(void *, keymgmt_gen_init, - (void *provctx, int selection, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, keymgmt_gen_set_template, - (void *genctx, void *templ)) -OSSL_CORE_MAKE_FUNC(int, keymgmt_gen_set_params, - (void *genctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, - keymgmt_gen_settable_params, - (void *genctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int, keymgmt_gen_get_params, - (void *genctx, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keymgmt_gen_gettable_params, - (void *genctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(void *, keymgmt_gen, - (void *genctx, OSSL_CALLBACK *cb, void *cbarg)) -OSSL_CORE_MAKE_FUNC(void, keymgmt_gen_cleanup, (void *genctx)) - -/* Key loading by object reference */ -# define OSSL_FUNC_KEYMGMT_LOAD 8 -OSSL_CORE_MAKE_FUNC(void *, keymgmt_load, - (const void *reference, size_t reference_sz)) - -/* Basic key object destruction */ -# define OSSL_FUNC_KEYMGMT_FREE 10 -OSSL_CORE_MAKE_FUNC(void, keymgmt_free, (void *keydata)) - -/* Key object information, with discovery */ -#define OSSL_FUNC_KEYMGMT_GET_PARAMS 11 -#define OSSL_FUNC_KEYMGMT_GETTABLE_PARAMS 12 -OSSL_CORE_MAKE_FUNC(int, keymgmt_get_params, - (void *keydata, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keymgmt_gettable_params, - (void *provctx)) - -#define OSSL_FUNC_KEYMGMT_SET_PARAMS 13 -#define OSSL_FUNC_KEYMGMT_SETTABLE_PARAMS 14 -OSSL_CORE_MAKE_FUNC(int, keymgmt_set_params, - (void *keydata, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keymgmt_settable_params, - (void *provctx)) - -/* Key checks - discovery of supported operations */ -# define OSSL_FUNC_KEYMGMT_QUERY_OPERATION_NAME 20 -OSSL_CORE_MAKE_FUNC(const char *, keymgmt_query_operation_name, - (int operation_id)) - -/* Key checks - key data content checks */ -# define OSSL_FUNC_KEYMGMT_HAS 21 -OSSL_CORE_MAKE_FUNC(int, keymgmt_has, (const void *keydata, int selection)) - -/* Key checks - validation */ -# define OSSL_FUNC_KEYMGMT_VALIDATE 22 -OSSL_CORE_MAKE_FUNC(int, keymgmt_validate, (const void *keydata, int selection, - int checktype)) - -/* Key checks - matching */ -# define OSSL_FUNC_KEYMGMT_MATCH 23 -OSSL_CORE_MAKE_FUNC(int, keymgmt_match, - (const void *keydata1, const void *keydata2, - int selection)) - -/* Import and export functions, with discovery */ -# define OSSL_FUNC_KEYMGMT_IMPORT 40 -# define OSSL_FUNC_KEYMGMT_IMPORT_TYPES 41 -# define OSSL_FUNC_KEYMGMT_EXPORT 42 -# define OSSL_FUNC_KEYMGMT_EXPORT_TYPES 43 -OSSL_CORE_MAKE_FUNC(int, keymgmt_import, - (void *keydata, int selection, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keymgmt_import_types, - (int selection)) -OSSL_CORE_MAKE_FUNC(int, keymgmt_export, - (void *keydata, int selection, - OSSL_CALLBACK *param_cb, void *cbarg)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keymgmt_export_types, - (int selection)) - -/* Dup function, constructor */ -# define OSSL_FUNC_KEYMGMT_DUP 44 -OSSL_CORE_MAKE_FUNC(void *, keymgmt_dup, - (const void *keydata_from, int selection)) - -/* Extended import and export functions */ -# define OSSL_FUNC_KEYMGMT_IMPORT_TYPES_EX 45 -# define OSSL_FUNC_KEYMGMT_EXPORT_TYPES_EX 46 -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keymgmt_import_types_ex, - (void *provctx, int selection)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keymgmt_export_types_ex, - (void *provctx, int selection)) - -/* Key Exchange */ - -# define OSSL_FUNC_KEYEXCH_NEWCTX 1 -# define OSSL_FUNC_KEYEXCH_INIT 2 -# define OSSL_FUNC_KEYEXCH_DERIVE 3 -# define OSSL_FUNC_KEYEXCH_SET_PEER 4 -# define OSSL_FUNC_KEYEXCH_FREECTX 5 -# define OSSL_FUNC_KEYEXCH_DUPCTX 6 -# define OSSL_FUNC_KEYEXCH_SET_CTX_PARAMS 7 -# define OSSL_FUNC_KEYEXCH_SETTABLE_CTX_PARAMS 8 -# define OSSL_FUNC_KEYEXCH_GET_CTX_PARAMS 9 -# define OSSL_FUNC_KEYEXCH_GETTABLE_CTX_PARAMS 10 -# define OSSL_FUNC_KEYEXCH_DERIVE_SKEY 11 - -OSSL_CORE_MAKE_FUNC(void *, keyexch_newctx, (void *provctx)) -OSSL_CORE_MAKE_FUNC(int, keyexch_init, (void *ctx, void *provkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, keyexch_derive, (void *ctx, unsigned char *secret, - size_t *secretlen, size_t outlen)) -OSSL_CORE_MAKE_FUNC(int, keyexch_set_peer, (void *ctx, void *provkey)) -OSSL_CORE_MAKE_FUNC(void, keyexch_freectx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(void *, keyexch_dupctx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(int, keyexch_set_ctx_params, (void *ctx, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keyexch_settable_ctx_params, - (void *ctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int, keyexch_get_ctx_params, (void *ctx, - OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keyexch_gettable_ctx_params, - (void *ctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(void *, keyexch_derive_skey, (void *ctx, const char *key_type, void *provctx, - OSSL_FUNC_skeymgmt_import_fn *import, - size_t keylen, const OSSL_PARAM params[])) - -/* Signature */ - -# define OSSL_FUNC_SIGNATURE_NEWCTX 1 -# define OSSL_FUNC_SIGNATURE_SIGN_INIT 2 -# define OSSL_FUNC_SIGNATURE_SIGN 3 -# define OSSL_FUNC_SIGNATURE_VERIFY_INIT 4 -# define OSSL_FUNC_SIGNATURE_VERIFY 5 -# define OSSL_FUNC_SIGNATURE_VERIFY_RECOVER_INIT 6 -# define OSSL_FUNC_SIGNATURE_VERIFY_RECOVER 7 -# define OSSL_FUNC_SIGNATURE_DIGEST_SIGN_INIT 8 -# define OSSL_FUNC_SIGNATURE_DIGEST_SIGN_UPDATE 9 -# define OSSL_FUNC_SIGNATURE_DIGEST_SIGN_FINAL 10 -# define OSSL_FUNC_SIGNATURE_DIGEST_SIGN 11 -# define OSSL_FUNC_SIGNATURE_DIGEST_VERIFY_INIT 12 -# define OSSL_FUNC_SIGNATURE_DIGEST_VERIFY_UPDATE 13 -# define OSSL_FUNC_SIGNATURE_DIGEST_VERIFY_FINAL 14 -# define OSSL_FUNC_SIGNATURE_DIGEST_VERIFY 15 -# define OSSL_FUNC_SIGNATURE_FREECTX 16 -# define OSSL_FUNC_SIGNATURE_DUPCTX 17 -# define OSSL_FUNC_SIGNATURE_GET_CTX_PARAMS 18 -# define OSSL_FUNC_SIGNATURE_GETTABLE_CTX_PARAMS 19 -# define OSSL_FUNC_SIGNATURE_SET_CTX_PARAMS 20 -# define OSSL_FUNC_SIGNATURE_SETTABLE_CTX_PARAMS 21 -# define OSSL_FUNC_SIGNATURE_GET_CTX_MD_PARAMS 22 -# define OSSL_FUNC_SIGNATURE_GETTABLE_CTX_MD_PARAMS 23 -# define OSSL_FUNC_SIGNATURE_SET_CTX_MD_PARAMS 24 -# define OSSL_FUNC_SIGNATURE_SETTABLE_CTX_MD_PARAMS 25 -# define OSSL_FUNC_SIGNATURE_QUERY_KEY_TYPES 26 -# define OSSL_FUNC_SIGNATURE_SIGN_MESSAGE_INIT 27 -# define OSSL_FUNC_SIGNATURE_SIGN_MESSAGE_UPDATE 28 -# define OSSL_FUNC_SIGNATURE_SIGN_MESSAGE_FINAL 29 -# define OSSL_FUNC_SIGNATURE_VERIFY_MESSAGE_INIT 30 -# define OSSL_FUNC_SIGNATURE_VERIFY_MESSAGE_UPDATE 31 -# define OSSL_FUNC_SIGNATURE_VERIFY_MESSAGE_FINAL 32 - -OSSL_CORE_MAKE_FUNC(void *, signature_newctx, (void *provctx, - const char *propq)) -OSSL_CORE_MAKE_FUNC(int, signature_sign_init, (void *ctx, void *provkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, signature_sign, (void *ctx, unsigned char *sig, - size_t *siglen, size_t sigsize, - const unsigned char *tbs, - size_t tbslen)) -OSSL_CORE_MAKE_FUNC(int, signature_sign_message_init, - (void *ctx, void *provkey, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, signature_sign_message_update, - (void *ctx, const unsigned char *in, size_t inlen)) -OSSL_CORE_MAKE_FUNC(int, signature_sign_message_final, - (void *ctx, unsigned char *sig, - size_t *siglen, size_t sigsize)) -OSSL_CORE_MAKE_FUNC(int, signature_verify_init, (void *ctx, void *provkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, signature_verify, (void *ctx, - const unsigned char *sig, - size_t siglen, - const unsigned char *tbs, - size_t tbslen)) -OSSL_CORE_MAKE_FUNC(int, signature_verify_message_init, - (void *ctx, void *provkey, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, signature_verify_message_update, - (void *ctx, const unsigned char *in, size_t inlen)) -/* - * signature_verify_final requires that the signature to be verified against - * is specified via an OSSL_PARAM. - */ -OSSL_CORE_MAKE_FUNC(int, signature_verify_message_final, (void *ctx)) -OSSL_CORE_MAKE_FUNC(int, signature_verify_recover_init, - (void *ctx, void *provkey, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, signature_verify_recover, - (void *ctx, unsigned char *rout, size_t *routlen, - size_t routsize, const unsigned char *sig, size_t siglen)) -OSSL_CORE_MAKE_FUNC(int, signature_digest_sign_init, - (void *ctx, const char *mdname, void *provkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, signature_digest_sign_update, - (void *ctx, const unsigned char *data, size_t datalen)) -OSSL_CORE_MAKE_FUNC(int, signature_digest_sign_final, - (void *ctx, unsigned char *sig, size_t *siglen, - size_t sigsize)) -OSSL_CORE_MAKE_FUNC(int, signature_digest_sign, - (void *ctx, unsigned char *sigret, size_t *siglen, - size_t sigsize, const unsigned char *tbs, size_t tbslen)) -OSSL_CORE_MAKE_FUNC(int, signature_digest_verify_init, - (void *ctx, const char *mdname, void *provkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, signature_digest_verify_update, - (void *ctx, const unsigned char *data, size_t datalen)) -OSSL_CORE_MAKE_FUNC(int, signature_digest_verify_final, - (void *ctx, const unsigned char *sig, size_t siglen)) -OSSL_CORE_MAKE_FUNC(int, signature_digest_verify, - (void *ctx, const unsigned char *sig, size_t siglen, - const unsigned char *tbs, size_t tbslen)) -OSSL_CORE_MAKE_FUNC(void, signature_freectx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(void *, signature_dupctx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(int, signature_get_ctx_params, - (void *ctx, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, signature_gettable_ctx_params, - (void *ctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int, signature_set_ctx_params, - (void *ctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, signature_settable_ctx_params, - (void *ctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int, signature_get_ctx_md_params, - (void *ctx, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, signature_gettable_ctx_md_params, - (void *ctx)) -OSSL_CORE_MAKE_FUNC(int, signature_set_ctx_md_params, - (void *ctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, signature_settable_ctx_md_params, - (void *ctx)) -OSSL_CORE_MAKE_FUNC(const char **, signature_query_key_types, (void)) - -/* Asymmetric Ciphers */ - -# define OSSL_FUNC_ASYM_CIPHER_NEWCTX 1 -# define OSSL_FUNC_ASYM_CIPHER_ENCRYPT_INIT 2 -# define OSSL_FUNC_ASYM_CIPHER_ENCRYPT 3 -# define OSSL_FUNC_ASYM_CIPHER_DECRYPT_INIT 4 -# define OSSL_FUNC_ASYM_CIPHER_DECRYPT 5 -# define OSSL_FUNC_ASYM_CIPHER_FREECTX 6 -# define OSSL_FUNC_ASYM_CIPHER_DUPCTX 7 -# define OSSL_FUNC_ASYM_CIPHER_GET_CTX_PARAMS 8 -# define OSSL_FUNC_ASYM_CIPHER_GETTABLE_CTX_PARAMS 9 -# define OSSL_FUNC_ASYM_CIPHER_SET_CTX_PARAMS 10 -# define OSSL_FUNC_ASYM_CIPHER_SETTABLE_CTX_PARAMS 11 - -OSSL_CORE_MAKE_FUNC(void *, asym_cipher_newctx, (void *provctx)) -OSSL_CORE_MAKE_FUNC(int, asym_cipher_encrypt_init, (void *ctx, void *provkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, asym_cipher_encrypt, (void *ctx, unsigned char *out, - size_t *outlen, - size_t outsize, - const unsigned char *in, - size_t inlen)) -OSSL_CORE_MAKE_FUNC(int, asym_cipher_decrypt_init, (void *ctx, void *provkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, asym_cipher_decrypt, (void *ctx, unsigned char *out, - size_t *outlen, - size_t outsize, - const unsigned char *in, - size_t inlen)) -OSSL_CORE_MAKE_FUNC(void, asym_cipher_freectx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(void *, asym_cipher_dupctx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(int, asym_cipher_get_ctx_params, - (void *ctx, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, asym_cipher_gettable_ctx_params, - (void *ctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int, asym_cipher_set_ctx_params, - (void *ctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, asym_cipher_settable_ctx_params, - (void *ctx, void *provctx)) - -/* Asymmetric Key encapsulation */ -# define OSSL_FUNC_KEM_NEWCTX 1 -# define OSSL_FUNC_KEM_ENCAPSULATE_INIT 2 -# define OSSL_FUNC_KEM_ENCAPSULATE 3 -# define OSSL_FUNC_KEM_DECAPSULATE_INIT 4 -# define OSSL_FUNC_KEM_DECAPSULATE 5 -# define OSSL_FUNC_KEM_FREECTX 6 -# define OSSL_FUNC_KEM_DUPCTX 7 -# define OSSL_FUNC_KEM_GET_CTX_PARAMS 8 -# define OSSL_FUNC_KEM_GETTABLE_CTX_PARAMS 9 -# define OSSL_FUNC_KEM_SET_CTX_PARAMS 10 -# define OSSL_FUNC_KEM_SETTABLE_CTX_PARAMS 11 -# define OSSL_FUNC_KEM_AUTH_ENCAPSULATE_INIT 12 -# define OSSL_FUNC_KEM_AUTH_DECAPSULATE_INIT 13 - -OSSL_CORE_MAKE_FUNC(void *, kem_newctx, (void *provctx)) -OSSL_CORE_MAKE_FUNC(int, kem_encapsulate_init, (void *ctx, void *provkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, kem_auth_encapsulate_init, (void *ctx, void *provkey, - void *authprivkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, kem_encapsulate, (void *ctx, - unsigned char *out, size_t *outlen, - unsigned char *secret, - size_t *secretlen)) -OSSL_CORE_MAKE_FUNC(int, kem_decapsulate_init, (void *ctx, void *provkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, kem_auth_decapsulate_init, (void *ctx, void *provkey, - void *authpubkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, kem_decapsulate, (void *ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen)) -OSSL_CORE_MAKE_FUNC(void, kem_freectx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(void *, kem_dupctx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(int, kem_get_ctx_params, (void *ctx, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, kem_gettable_ctx_params, - (void *ctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int, kem_set_ctx_params, - (void *ctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, kem_settable_ctx_params, - (void *ctx, void *provctx)) - -/* Encoders and decoders */ -# define OSSL_FUNC_ENCODER_NEWCTX 1 -# define OSSL_FUNC_ENCODER_FREECTX 2 -# define OSSL_FUNC_ENCODER_GET_PARAMS 3 -# define OSSL_FUNC_ENCODER_GETTABLE_PARAMS 4 -# define OSSL_FUNC_ENCODER_SET_CTX_PARAMS 5 -# define OSSL_FUNC_ENCODER_SETTABLE_CTX_PARAMS 6 -# define OSSL_FUNC_ENCODER_DOES_SELECTION 10 -# define OSSL_FUNC_ENCODER_ENCODE 11 -# define OSSL_FUNC_ENCODER_IMPORT_OBJECT 20 -# define OSSL_FUNC_ENCODER_FREE_OBJECT 21 -OSSL_CORE_MAKE_FUNC(void *, encoder_newctx, (void *provctx)) -OSSL_CORE_MAKE_FUNC(void, encoder_freectx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(int, encoder_get_params, (OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, encoder_gettable_params, - (void *provctx)) -OSSL_CORE_MAKE_FUNC(int, encoder_set_ctx_params, - (void *ctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, encoder_settable_ctx_params, - (void *provctx)) - -OSSL_CORE_MAKE_FUNC(int, encoder_does_selection, - (void *provctx, int selection)) -OSSL_CORE_MAKE_FUNC(int, encoder_encode, - (void *ctx, OSSL_CORE_BIO *out, - const void *obj_raw, const OSSL_PARAM obj_abstract[], - int selection, - OSSL_PASSPHRASE_CALLBACK *cb, void *cbarg)) - -OSSL_CORE_MAKE_FUNC(void *, encoder_import_object, - (void *ctx, int selection, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(void, encoder_free_object, (void *obj)) - -# define OSSL_FUNC_DECODER_NEWCTX 1 -# define OSSL_FUNC_DECODER_FREECTX 2 -# define OSSL_FUNC_DECODER_GET_PARAMS 3 -# define OSSL_FUNC_DECODER_GETTABLE_PARAMS 4 -# define OSSL_FUNC_DECODER_SET_CTX_PARAMS 5 -# define OSSL_FUNC_DECODER_SETTABLE_CTX_PARAMS 6 -# define OSSL_FUNC_DECODER_DOES_SELECTION 10 -# define OSSL_FUNC_DECODER_DECODE 11 -# define OSSL_FUNC_DECODER_EXPORT_OBJECT 20 -OSSL_CORE_MAKE_FUNC(void *, decoder_newctx, (void *provctx)) -OSSL_CORE_MAKE_FUNC(void, decoder_freectx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(int, decoder_get_params, (OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, decoder_gettable_params, - (void *provctx)) -OSSL_CORE_MAKE_FUNC(int, decoder_set_ctx_params, - (void *ctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, decoder_settable_ctx_params, - (void *provctx)) - -OSSL_CORE_MAKE_FUNC(int, decoder_does_selection, - (void *provctx, int selection)) -OSSL_CORE_MAKE_FUNC(int, decoder_decode, - (void *ctx, OSSL_CORE_BIO *in, int selection, - OSSL_CALLBACK *data_cb, void *data_cbarg, - OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)) -OSSL_CORE_MAKE_FUNC(int, decoder_export_object, - (void *ctx, const void *objref, size_t objref_sz, - OSSL_CALLBACK *export_cb, void *export_cbarg)) - -/*- - * Store - * - * Objects are scanned by using the 'open', 'load', 'eof' and 'close' - * functions, which implement an OSSL_STORE loader. - * - * store_load() works in a way that's very similar to the decoders, in - * that they pass an abstract object through a callback, either as a DER - * octet string or as an object reference, which libcrypto will have to - * deal with. - */ - -#define OSSL_FUNC_STORE_OPEN 1 -#define OSSL_FUNC_STORE_ATTACH 2 -#define OSSL_FUNC_STORE_SETTABLE_CTX_PARAMS 3 -#define OSSL_FUNC_STORE_SET_CTX_PARAMS 4 -#define OSSL_FUNC_STORE_LOAD 5 -#define OSSL_FUNC_STORE_EOF 6 -#define OSSL_FUNC_STORE_CLOSE 7 -#define OSSL_FUNC_STORE_EXPORT_OBJECT 8 -#define OSSL_FUNC_STORE_DELETE 9 -#define OSSL_FUNC_STORE_OPEN_EX 10 -OSSL_CORE_MAKE_FUNC(void *, store_open, (void *provctx, const char *uri)) -OSSL_CORE_MAKE_FUNC(void *, store_attach, (void *provctx, OSSL_CORE_BIO *in)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, store_settable_ctx_params, - (void *provctx)) -OSSL_CORE_MAKE_FUNC(int, store_set_ctx_params, - (void *loaderctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, store_load, - (void *loaderctx, - OSSL_CALLBACK *object_cb, void *object_cbarg, - OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)) -OSSL_CORE_MAKE_FUNC(int, store_eof, (void *loaderctx)) -OSSL_CORE_MAKE_FUNC(int, store_close, (void *loaderctx)) -OSSL_CORE_MAKE_FUNC(int, store_export_object, - (void *loaderctx, const void *objref, size_t objref_sz, - OSSL_CALLBACK *export_cb, void *export_cbarg)) -OSSL_CORE_MAKE_FUNC(int, store_delete, - (void *provctx, const char *uri, const OSSL_PARAM params[], - OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)) -OSSL_CORE_MAKE_FUNC(void *, store_open_ex, - (void *provctx, const char *uri, const OSSL_PARAM params[], - OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)) - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/core_names.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/core_names.h deleted file mode 100644 index aa9d899..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/core_names.h +++ /dev/null @@ -1,584 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\core_names.h.in - * - * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - -#ifndef OPENSSL_CORE_NAMES_H -# define OPENSSL_CORE_NAMES_H -# pragma once - -# ifdef __cplusplus -extern "C" { -# endif - -/* OSSL_CIPHER_PARAM_CTS_MODE Values */ -# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" -# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" -# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" - -/* Known CIPHER names (not a complete list) */ -# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" -# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" -# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" - -/* Known DIGEST names (not a complete list) */ -# define OSSL_DIGEST_NAME_MD5 "MD5" -# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" -# define OSSL_DIGEST_NAME_SHA1 "SHA1" -# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" -# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" -# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" -# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" -# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" -# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" -# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" -# define OSSL_DIGEST_NAME_MD2 "MD2" -# define OSSL_DIGEST_NAME_MD4 "MD4" -# define OSSL_DIGEST_NAME_MDC2 "MDC2" -# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" -# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" -# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" -# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" -# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" -# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" -# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" -# define OSSL_DIGEST_NAME_SM3 "SM3" - -/* Known MAC names */ -# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" -# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" -# define OSSL_MAC_NAME_CMAC "CMAC" -# define OSSL_MAC_NAME_GMAC "GMAC" -# define OSSL_MAC_NAME_HMAC "HMAC" -# define OSSL_MAC_NAME_KMAC128 "KMAC128" -# define OSSL_MAC_NAME_KMAC256 "KMAC256" -# define OSSL_MAC_NAME_POLY1305 "POLY1305" -# define OSSL_MAC_NAME_SIPHASH "SIPHASH" - -/* Known KDF names */ -# define OSSL_KDF_NAME_HKDF "HKDF" -# define OSSL_KDF_NAME_HKDF_SHA256 "HKDF-SHA256" -# define OSSL_KDF_NAME_HKDF_SHA384 "HKDF-SHA384" -# define OSSL_KDF_NAME_HKDF_SHA512 "HKDF-SHA512" -# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" -# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" -# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" -# define OSSL_KDF_NAME_SCRYPT "SCRYPT" -# define OSSL_KDF_NAME_SSHKDF "SSHKDF" -# define OSSL_KDF_NAME_SSKDF "SSKDF" -# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" -# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" -# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" -# define OSSL_KDF_NAME_X963KDF "X963KDF" -# define OSSL_KDF_NAME_KBKDF "KBKDF" -# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" -# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" - -/* RSA padding modes */ -# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" -# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" -# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" -# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" -# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" - -/* RSA pss padding salt length */ -# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" -# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" -# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" -# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" - -/* OSSL_PKEY_PARAM_EC_ENCODING values */ -# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" -# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" - -# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" -# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" -# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" - -# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" -# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" -# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" - -/* PROV_SKEY well known key types */ -# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" -# define OSSL_SKEY_TYPE_AES "AES" - -/* OSSL_KEM_PARAM_OPERATION values */ -#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" -#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" - -/* Provider configuration variables */ -#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" - -/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ -# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" -# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" -# define OSSL_ALG_PARAM_CIPHER "cipher" -# define OSSL_ALG_PARAM_DIGEST "digest" -# define OSSL_ALG_PARAM_ENGINE "engine" -# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" -# define OSSL_ALG_PARAM_MAC "mac" -# define OSSL_ALG_PARAM_PROPERTIES "properties" -# define OSSL_ALG_PARAM_SECURITY_CATEGORY "security-category" -# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST -# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE -# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK -# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED -# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" -# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST -# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES -# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST -# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" -# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" -# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE -# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES -# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" -# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" -# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" -# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" -# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" -# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" -# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" -# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" -# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" -# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" -# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" -# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" -# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" -# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" -# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" -# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" -# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" -# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" -# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" -# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" -# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" -# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" -# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" -# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" -# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" -# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" -# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" -# define OSSL_CIPHER_HMAC_PARAM_MAC OSSL_CIPHER_PARAM_AEAD_TAG -# define OSSL_CIPHER_PARAM_AEAD "aead" -# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN -# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" -# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" -# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" -# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" -# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" -# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" -# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" -# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" -# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" -# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID -# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS -# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" -# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" -# define OSSL_CIPHER_PARAM_CTS "cts" -# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" -# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" -# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" -# define OSSL_CIPHER_PARAM_ENCRYPT_THEN_MAC "encrypt-then-mac" -# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" -# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" -# define OSSL_CIPHER_PARAM_IV "iv" -# define OSSL_CIPHER_PARAM_IVLEN "ivlen" -# define OSSL_CIPHER_PARAM_KEYLEN "keylen" -# define OSSL_CIPHER_PARAM_MODE "mode" -# define OSSL_CIPHER_PARAM_NUM "num" -# define OSSL_CIPHER_PARAM_PADDING "padding" -# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" -# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" -# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" -# define OSSL_CIPHER_PARAM_ROUNDS "rounds" -# define OSSL_CIPHER_PARAM_SPEED "speed" -# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" -# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" -# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" -# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" -# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" -# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" -# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" -# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" -# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" -# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" -# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" -# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" -# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" -# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" -# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" -# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES -# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" -# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" -# define OSSL_DIGEST_PARAM_MICALG "micalg" -# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" -# define OSSL_DIGEST_PARAM_SIZE "size" -# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" -# define OSSL_DIGEST_PARAM_XOF "xof" -# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" -# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER -# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST -# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" -# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK -# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC -# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" -# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" -# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" -# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" -# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" -# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" -# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" -# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" -# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" -# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES -# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" -# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" -# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" -# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" -# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" -# define OSSL_DRBG_PARAM_SIZE "size" -# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" -# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER -# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" -# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES -# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" -# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" -# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK -# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK -# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK -# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" -# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" -# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" -# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" -# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" -# define OSSL_EXCHANGE_PARAM_PAD "pad" -# define OSSL_GEN_PARAM_ITERATION "iteration" -# define OSSL_GEN_PARAM_POTENTIAL "potential" -# define OSSL_KDF_PARAM_ARGON2_AD "ad" -# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" -# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" -# define OSSL_KDF_PARAM_ARGON2_VERSION "version" -# define OSSL_KDF_PARAM_CEK_ALG "cekalg" -# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER -# define OSSL_KDF_PARAM_CONSTANT "constant" -# define OSSL_KDF_PARAM_DATA "data" -# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST -# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" -# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK -# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" -# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK -# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" -# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" -# define OSSL_KDF_PARAM_INFO "info" -# define OSSL_KDF_PARAM_ITER "iter" -# define OSSL_KDF_PARAM_KBKDF_R "r" -# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" -# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" -# define OSSL_KDF_PARAM_KEY "key" -# define OSSL_KDF_PARAM_LABEL "label" -# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC -# define OSSL_KDF_PARAM_MAC_SIZE "maclen" -# define OSSL_KDF_PARAM_MODE "mode" -# define OSSL_KDF_PARAM_PASSWORD "pass" -# define OSSL_KDF_PARAM_PKCS12_ID "id" -# define OSSL_KDF_PARAM_PKCS5 "pkcs5" -# define OSSL_KDF_PARAM_PREFIX "prefix" -# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES -# define OSSL_KDF_PARAM_SALT "salt" -# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" -# define OSSL_KDF_PARAM_SCRYPT_N "n" -# define OSSL_KDF_PARAM_SCRYPT_P "p" -# define OSSL_KDF_PARAM_SCRYPT_R "r" -# define OSSL_KDF_PARAM_SECRET "secret" -# define OSSL_KDF_PARAM_SEED "seed" -# define OSSL_KDF_PARAM_SIZE "size" -# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" -# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" -# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" -# define OSSL_KDF_PARAM_THREADS "threads" -# define OSSL_KDF_PARAM_UKM "ukm" -# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" -# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" -# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" -# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" -# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" -# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" -# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK -# define OSSL_KEM_PARAM_IKME "ikme" -# define OSSL_KEM_PARAM_OPERATION "operation" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" -# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" -# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" -# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER -# define OSSL_MAC_PARAM_CUSTOM "custom" -# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" -# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST -# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" -# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" -# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" -# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK -# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC -# define OSSL_MAC_PARAM_IV "iv" -# define OSSL_MAC_PARAM_KEY "key" -# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES -# define OSSL_MAC_PARAM_SALT "salt" -# define OSSL_MAC_PARAM_SIZE "size" -# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" -# define OSSL_MAC_PARAM_XOF "xof" -# define OSSL_OBJECT_PARAM_DATA "data" -# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" -# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" -# define OSSL_OBJECT_PARAM_DESC "desc" -# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" -# define OSSL_OBJECT_PARAM_REFERENCE "reference" -# define OSSL_OBJECT_PARAM_TYPE "type" -# define OSSL_PASSPHRASE_PARAM_INFO "info" -# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID -# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS -# define OSSL_PKEY_PARAM_BITS "bits" -# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER -# define OSSL_PKEY_PARAM_CMS_KEMRI_KDF_ALGORITHM "kemri-kdf-alg" -# define OSSL_PKEY_PARAM_CMS_RI_TYPE "ri-type" -# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" -# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" -# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" -# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" -# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST -# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" -# define OSSL_PKEY_PARAM_DIST_ID "distid" -# define OSSL_PKEY_PARAM_EC_A "a" -# define OSSL_PKEY_PARAM_EC_B "b" -# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" -# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" -# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" -# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" -# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" -# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" -# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" -# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" -# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" -# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" -# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" -# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" -# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" -# define OSSL_PKEY_PARAM_EC_ORDER "order" -# define OSSL_PKEY_PARAM_EC_P "p" -# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" -# define OSSL_PKEY_PARAM_EC_PUB_X "qx" -# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" -# define OSSL_PKEY_PARAM_EC_SEED "seed" -# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" -# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE -# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" -# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST -# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES -# define OSSL_PKEY_PARAM_FFC_G "g" -# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" -# define OSSL_PKEY_PARAM_FFC_H "hindex" -# define OSSL_PKEY_PARAM_FFC_P "p" -# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" -# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" -# define OSSL_PKEY_PARAM_FFC_Q "q" -# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" -# define OSSL_PKEY_PARAM_FFC_SEED "seed" -# define OSSL_PKEY_PARAM_FFC_TYPE "type" -# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" -# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" -# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" -# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" -# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" -# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" -# define OSSL_PKEY_PARAM_GROUP_NAME "group" -# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" -# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" -# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" -# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" -# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" -# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" -# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" -# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" -# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" -# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" -# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" -# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" -# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" -# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" -# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" -# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" -# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" -# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" -# define OSSL_PKEY_PARAM_PRIV_KEY "priv" -# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES -# define OSSL_PKEY_PARAM_PUB_KEY "pub" -# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" -# define OSSL_PKEY_PARAM_RSA_D "d" -# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" -# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST -# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES -# define OSSL_PKEY_PARAM_RSA_E "e" -# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" -# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" -# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" -# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" -# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" -# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" -# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" -# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" -# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" -# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" -# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" -# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" -# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" -# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" -# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" -# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" -# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" -# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" -# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" -# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" -# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" -# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" -# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC -# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST -# define OSSL_PKEY_PARAM_RSA_N "n" -# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" -# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" -# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" -# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" -# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" -# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" -# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" -# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" -# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" -# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" -# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" -# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" -# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" -# define OSSL_PKEY_PARAM_SECURITY_CATEGORY OSSL_ALG_PARAM_SECURITY_CATEGORY -# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" -# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG -# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" -# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" -# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" -# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" -# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" -# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" -# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" -# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" -# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" -# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" -# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" -# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" -# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" -# define OSSL_PROV_PARAM_NAME "name" -# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" -# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" -# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" -# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" -# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" -# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" -# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" -# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" -# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" -# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" -# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" -# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" -# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" -# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" -# define OSSL_PROV_PARAM_STATUS "status" -# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" -# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" -# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" -# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" -# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" -# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" -# define OSSL_PROV_PARAM_VERSION "version" -# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" -# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" -# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" -# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_RAND_PARAM_GENERATE "generate" -# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" -# define OSSL_RAND_PARAM_STATE "state" -# define OSSL_RAND_PARAM_STRENGTH "strength" -# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" -# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" -# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" -# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID -# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS -# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" -# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" -# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST -# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE -# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK -# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK -# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" -# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK -# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" -# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" -# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" -# define OSSL_SIGNATURE_PARAM_KAT "kat" -# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" -# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST -# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES -# define OSSL_SIGNATURE_PARAM_MU "mu" -# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" -# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE -# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES -# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" -# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" -# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" -# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" -# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" -# define OSSL_STORE_PARAM_ALIAS "alias" -# define OSSL_STORE_PARAM_DIGEST "digest" -# define OSSL_STORE_PARAM_EXPECT "expect" -# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" -# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" -# define OSSL_STORE_PARAM_ISSUER "name" -# define OSSL_STORE_PARAM_PROPERTIES "properties" -# define OSSL_STORE_PARAM_SERIAL "serial" -# define OSSL_STORE_PARAM_SUBJECT "subject" - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/core_object.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/core_object.h deleted file mode 100644 index 62ccf39..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/core_object.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CORE_OBJECT_H -# define OPENSSL_CORE_OBJECT_H -# pragma once - -# ifdef __cplusplus -extern "C" { -# endif - -/*- - * Known object types - * - * These numbers are used as values for the OSSL_PARAM parameter - * OSSL_OBJECT_PARAM_TYPE. - * - * For most of these types, there's a corresponding libcrypto object type. - * The corresponding type is indicated with a comment after the number. - */ -# define OSSL_OBJECT_UNKNOWN 0 -# define OSSL_OBJECT_NAME 1 /* char * */ -# define OSSL_OBJECT_PKEY 2 /* EVP_PKEY * */ -# define OSSL_OBJECT_CERT 3 /* X509 * */ -# define OSSL_OBJECT_CRL 4 /* X509_CRL * */ - -/* - * The rest of the associated OSSL_PARAM elements is described in core_names.h - */ - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/crmf.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/crmf.h deleted file mode 100644 index 1a60e5d..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/crmf.h +++ /dev/null @@ -1,278 +0,0 @@ -/*- - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\crmf.h.in - * - * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. - * Copyright Nokia 2007-2019 - * Copyright Siemens AG 2015-2019 - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - * - * CRMF (RFC 4211) implementation by M. Peylo, M. Viljanen, and D. von Oheimb. - */ - - - -#ifndef OPENSSL_CRMF_H -# define OPENSSL_CRMF_H - -# include - -# ifndef OPENSSL_NO_CRMF -# include -# include -# include -# include /* for GENERAL_NAME etc. */ -# include - -/* explicit #includes not strictly needed since implied by the above: */ -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# define OSSL_CRMF_POPOPRIVKEY_THISMESSAGE 0 -# define OSSL_CRMF_POPOPRIVKEY_SUBSEQUENTMESSAGE 1 -# define OSSL_CRMF_POPOPRIVKEY_DHMAC 2 -# define OSSL_CRMF_POPOPRIVKEY_AGREEMAC 3 -# define OSSL_CRMF_POPOPRIVKEY_ENCRYPTEDKEY 4 - -# define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 -# define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 -typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; -DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) - -typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; -DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) - -typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; -DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) -DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) -#define sk_OSSL_CRMF_MSG_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk)) -#define sk_OSSL_CRMF_MSG_value(sk, idx) ((OSSL_CRMF_MSG *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk), (idx))) -#define sk_OSSL_CRMF_MSG_new(cmp) ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) -#define sk_OSSL_CRMF_MSG_new_null() ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_new_null()) -#define sk_OSSL_CRMF_MSG_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp), (n))) -#define sk_OSSL_CRMF_MSG_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_MSG_sk_type(sk), (n)) -#define sk_OSSL_CRMF_MSG_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_MSG_sk_type(sk)) -#define sk_OSSL_CRMF_MSG_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_MSG_sk_type(sk)) -#define sk_OSSL_CRMF_MSG_delete(sk, i) ((OSSL_CRMF_MSG *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_MSG_sk_type(sk), (i))) -#define sk_OSSL_CRMF_MSG_delete_ptr(sk, ptr) ((OSSL_CRMF_MSG *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr))) -#define sk_OSSL_CRMF_MSG_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr)) -#define sk_OSSL_CRMF_MSG_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr)) -#define sk_OSSL_CRMF_MSG_pop(sk) ((OSSL_CRMF_MSG *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_MSG_sk_type(sk))) -#define sk_OSSL_CRMF_MSG_shift(sk) ((OSSL_CRMF_MSG *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_MSG_sk_type(sk))) -#define sk_OSSL_CRMF_MSG_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_freefunc_type(freefunc)) -#define sk_OSSL_CRMF_MSG_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr), (idx)) -#define sk_OSSL_CRMF_MSG_set(sk, idx, ptr) ((OSSL_CRMF_MSG *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_MSG_sk_type(sk), (idx), ossl_check_OSSL_CRMF_MSG_type(ptr))) -#define sk_OSSL_CRMF_MSG_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr)) -#define sk_OSSL_CRMF_MSG_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr)) -#define sk_OSSL_CRMF_MSG_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr), pnum) -#define sk_OSSL_CRMF_MSG_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_MSG_sk_type(sk)) -#define sk_OSSL_CRMF_MSG_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk)) -#define sk_OSSL_CRMF_MSG_dup(sk) ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk))) -#define sk_OSSL_CRMF_MSG_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_MSG_freefunc_type(freefunc))) -#define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) - -typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; -void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); -DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) - - -typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; -DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) -typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; -typedef struct ossl_crmf_certrequest_st OSSL_CRMF_CERTREQUEST; -typedef struct ossl_crmf_certid_st OSSL_CRMF_CERTID; -DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTID) -DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTID) -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_CERTID, OSSL_CRMF_CERTID, OSSL_CRMF_CERTID) -#define sk_OSSL_CRMF_CERTID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk)) -#define sk_OSSL_CRMF_CERTID_value(sk, idx) ((OSSL_CRMF_CERTID *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk), (idx))) -#define sk_OSSL_CRMF_CERTID_new(cmp) ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_CERTID_compfunc_type(cmp))) -#define sk_OSSL_CRMF_CERTID_new_null() ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_new_null()) -#define sk_OSSL_CRMF_CERTID_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_CERTID_compfunc_type(cmp), (n))) -#define sk_OSSL_CRMF_CERTID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), (n)) -#define sk_OSSL_CRMF_CERTID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_CERTID_sk_type(sk)) -#define sk_OSSL_CRMF_CERTID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_CERTID_sk_type(sk)) -#define sk_OSSL_CRMF_CERTID_delete(sk, i) ((OSSL_CRMF_CERTID *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), (i))) -#define sk_OSSL_CRMF_CERTID_delete_ptr(sk, ptr) ((OSSL_CRMF_CERTID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr))) -#define sk_OSSL_CRMF_CERTID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr)) -#define sk_OSSL_CRMF_CERTID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr)) -#define sk_OSSL_CRMF_CERTID_pop(sk) ((OSSL_CRMF_CERTID *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_CERTID_sk_type(sk))) -#define sk_OSSL_CRMF_CERTID_shift(sk) ((OSSL_CRMF_CERTID *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_CERTID_sk_type(sk))) -#define sk_OSSL_CRMF_CERTID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_freefunc_type(freefunc)) -#define sk_OSSL_CRMF_CERTID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr), (idx)) -#define sk_OSSL_CRMF_CERTID_set(sk, idx, ptr) ((OSSL_CRMF_CERTID *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), (idx), ossl_check_OSSL_CRMF_CERTID_type(ptr))) -#define sk_OSSL_CRMF_CERTID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr)) -#define sk_OSSL_CRMF_CERTID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr)) -#define sk_OSSL_CRMF_CERTID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr), pnum) -#define sk_OSSL_CRMF_CERTID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_CERTID_sk_type(sk)) -#define sk_OSSL_CRMF_CERTID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk)) -#define sk_OSSL_CRMF_CERTID_dup(sk) ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk))) -#define sk_OSSL_CRMF_CERTID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_CERTID_freefunc_type(freefunc))) -#define sk_OSSL_CRMF_CERTID_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_CERTID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_compfunc_type(cmp))) - - -typedef struct ossl_crmf_pkipublicationinfo_st OSSL_CRMF_PKIPUBLICATIONINFO; -DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PKIPUBLICATIONINFO) -typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; -DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) -typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; -DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) -DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) -typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; -DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) - -typedef struct ossl_crmf_optionalvalidity_st OSSL_CRMF_OPTIONALVALIDITY; - -/* crmf_pbm.c */ -OSSL_CRMF_PBMPARAMETER *OSSL_CRMF_pbmp_new(OSSL_LIB_CTX *libctx, size_t slen, - int owfnid, size_t itercnt, - int macnid); -int OSSL_CRMF_pbm_new(OSSL_LIB_CTX *libctx, const char *propq, - const OSSL_CRMF_PBMPARAMETER *pbmp, - const unsigned char *msg, size_t msglen, - const unsigned char *sec, size_t seclen, - unsigned char **mac, size_t *maclen); - -/* crmf_lib.c */ -int OSSL_CRMF_MSG_set1_regCtrl_regToken(OSSL_CRMF_MSG *msg, - const ASN1_UTF8STRING *tok); -ASN1_UTF8STRING -*OSSL_CRMF_MSG_get0_regCtrl_regToken(const OSSL_CRMF_MSG *msg); -int OSSL_CRMF_MSG_set1_regCtrl_authenticator(OSSL_CRMF_MSG *msg, - const ASN1_UTF8STRING *auth); -ASN1_UTF8STRING -*OSSL_CRMF_MSG_get0_regCtrl_authenticator(const OSSL_CRMF_MSG *msg); -int -OSSL_CRMF_MSG_PKIPublicationInfo_push0_SinglePubInfo(OSSL_CRMF_PKIPUBLICATIONINFO *pi, - OSSL_CRMF_SINGLEPUBINFO *spi); -# define OSSL_CRMF_PUB_METHOD_DONTCARE 0 -# define OSSL_CRMF_PUB_METHOD_X500 1 -# define OSSL_CRMF_PUB_METHOD_WEB 2 -# define OSSL_CRMF_PUB_METHOD_LDAP 3 -int OSSL_CRMF_MSG_set0_SinglePubInfo(OSSL_CRMF_SINGLEPUBINFO *spi, - int method, GENERAL_NAME *nm); -# define OSSL_CRMF_PUB_ACTION_DONTPUBLISH 0 -# define OSSL_CRMF_PUB_ACTION_PLEASEPUBLISH 1 -int OSSL_CRMF_MSG_set_PKIPublicationInfo_action(OSSL_CRMF_PKIPUBLICATIONINFO *pi, - int action); -int OSSL_CRMF_MSG_set1_regCtrl_pkiPublicationInfo(OSSL_CRMF_MSG *msg, - const OSSL_CRMF_PKIPUBLICATIONINFO *pi); -OSSL_CRMF_PKIPUBLICATIONINFO -*OSSL_CRMF_MSG_get0_regCtrl_pkiPublicationInfo(const OSSL_CRMF_MSG *msg); -int OSSL_CRMF_MSG_set1_regCtrl_protocolEncrKey(OSSL_CRMF_MSG *msg, - const X509_PUBKEY *pubkey); -X509_PUBKEY -*OSSL_CRMF_MSG_get0_regCtrl_protocolEncrKey(const OSSL_CRMF_MSG *msg); -int OSSL_CRMF_MSG_set1_regCtrl_oldCertID(OSSL_CRMF_MSG *msg, - const OSSL_CRMF_CERTID *cid); -OSSL_CRMF_CERTID -*OSSL_CRMF_MSG_get0_regCtrl_oldCertID(const OSSL_CRMF_MSG *msg); -OSSL_CRMF_CERTID *OSSL_CRMF_CERTID_gen(const X509_NAME *issuer, - const ASN1_INTEGER *serial); - -int OSSL_CRMF_MSG_set1_regInfo_utf8Pairs(OSSL_CRMF_MSG *msg, - const ASN1_UTF8STRING *utf8pairs); -ASN1_UTF8STRING -*OSSL_CRMF_MSG_get0_regInfo_utf8Pairs(const OSSL_CRMF_MSG *msg); -int OSSL_CRMF_MSG_set1_regInfo_certReq(OSSL_CRMF_MSG *msg, - const OSSL_CRMF_CERTREQUEST *cr); -OSSL_CRMF_CERTREQUEST -*OSSL_CRMF_MSG_get0_regInfo_certReq(const OSSL_CRMF_MSG *msg); - -int OSSL_CRMF_MSG_set0_validity(OSSL_CRMF_MSG *crm, - ASN1_TIME *notBefore, ASN1_TIME *notAfter); -int OSSL_CRMF_MSG_set_certReqId(OSSL_CRMF_MSG *crm, int rid); -int OSSL_CRMF_MSG_get_certReqId(const OSSL_CRMF_MSG *crm); -int OSSL_CRMF_MSG_set0_extensions(OSSL_CRMF_MSG *crm, X509_EXTENSIONS *exts); - -int OSSL_CRMF_MSG_push0_extension(OSSL_CRMF_MSG *crm, X509_EXTENSION *ext); -# define OSSL_CRMF_POPO_NONE -1 -# define OSSL_CRMF_POPO_RAVERIFIED 0 -# define OSSL_CRMF_POPO_SIGNATURE 1 -# define OSSL_CRMF_POPO_KEYENC 2 -# define OSSL_CRMF_POPO_KEYAGREE 3 -int OSSL_CRMF_MSG_create_popo(int meth, OSSL_CRMF_MSG *crm, - EVP_PKEY *pkey, const EVP_MD *digest, - OSSL_LIB_CTX *libctx, const char *propq); -int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, - int rid, int acceptRAVerified, - OSSL_LIB_CTX *libctx, const char *propq); -OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -X509_PUBKEY -*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); -const X509_NAME -*OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); -const X509_NAME -*OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); -X509_EXTENSIONS -*OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); -const X509_NAME -*OSSL_CRMF_CERTID_get0_issuer(const OSSL_CRMF_CERTID *cid); -const ASN1_INTEGER -*OSSL_CRMF_CERTID_get0_serialNumber(const OSSL_CRMF_CERTID *cid); -int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, - EVP_PKEY *pubkey, - const X509_NAME *subject, - const X509_NAME *issuer, - const ASN1_INTEGER *serial); -X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); -X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey, unsigned int flags); -unsigned char -*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey, int *outlen); -EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, - X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, - X509 *cert, ASN1_OCTET_STRING *secret, - OSSL_LIB_CTX *libctx, const char *propq); -int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); -# ifndef OPENSSL_NO_CMS -OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); -# endif - -# ifdef __cplusplus -} -# endif -# endif /* !defined(OPENSSL_NO_CRMF) */ -#endif /* !defined(OPENSSL_CRMF_H) */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/crmferr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/crmferr.h deleted file mode 100644 index a9b04e0..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/crmferr.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CRMFERR_H -# define OPENSSL_CRMFERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_CRMF - - -/* - * CRMF reason codes. - */ -# define CRMF_R_BAD_PBM_ITERATIONCOUNT 100 -# define CRMF_R_CMS_NOT_SUPPORTED 122 -# define CRMF_R_CRMFERROR 102 -# define CRMF_R_ERROR 103 -# define CRMF_R_ERROR_DECODING_CERTIFICATE 104 -# define CRMF_R_ERROR_DECODING_ENCRYPTEDKEY 123 -# define CRMF_R_ERROR_DECRYPTING_CERTIFICATE 105 -# define CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY 124 -# define CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE 125 -# define CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY 106 -# define CRMF_R_ERROR_SETTING_PURPOSE 126 -# define CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY 127 -# define CRMF_R_FAILURE_OBTAINING_RANDOM 107 -# define CRMF_R_ITERATIONCOUNT_BELOW_100 108 -# define CRMF_R_MALFORMED_IV 101 -# define CRMF_R_NULL_ARGUMENT 109 -# define CRMF_R_POPOSKINPUT_NOT_SUPPORTED 113 -# define CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN 128 -# define CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY 117 -# define CRMF_R_POPO_MISSING 121 -# define CRMF_R_POPO_MISSING_PUBLIC_KEY 118 -# define CRMF_R_POPO_MISSING_SUBJECT 119 -# define CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED 120 -# define CRMF_R_SETTING_MAC_ALGOR_FAILURE 110 -# define CRMF_R_SETTING_OWF_ALGOR_FAILURE 111 -# define CRMF_R_UNSUPPORTED_ALGORITHM 112 -# define CRMF_R_UNSUPPORTED_CIPHER 114 -# define CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO 115 -# define CRMF_R_UNSUPPORTED_POPO_METHOD 116 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/crypto.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/crypto.h deleted file mode 100644 index 38f5b1e..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/crypto.h +++ /dev/null @@ -1,614 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\crypto.h.in - * - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_CRYPTO_H -# define OPENSSL_CRYPTO_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_CRYPTO_H -# endif - -# include -# include - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif - -# include -# include -# include -# include -# include -# include - -# ifdef CHARSET_EBCDIC -# include -# endif - -/* - * Resolve problems on some operating systems with symbol names that clash - * one way or another - */ -# include - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define SSLeay OpenSSL_version_num -# define SSLeay_version OpenSSL_version -# define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER -# define SSLEAY_VERSION OPENSSL_VERSION -# define SSLEAY_CFLAGS OPENSSL_CFLAGS -# define SSLEAY_BUILT_ON OPENSSL_BUILT_ON -# define SSLEAY_PLATFORM OPENSSL_PLATFORM -# define SSLEAY_DIR OPENSSL_DIR - -/* - * Old type for allocating dynamic locks. No longer used. Use the new thread - * API instead. - */ -typedef struct { - int dummy; -} CRYPTO_dynlock; - -# endif /* OPENSSL_NO_DEPRECATED_1_1_0 */ - -typedef void CRYPTO_RWLOCK; - -CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void); -__owur int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock); -__owur int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock); -int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); -void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); - -int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); -int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, - CRYPTO_RWLOCK *lock); -int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, - CRYPTO_RWLOCK *lock); -int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, - CRYPTO_RWLOCK *lock); -int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); -int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); -int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); - -/* No longer needed, so this is a no-op */ -#define OPENSSL_malloc_init() while(0) continue - -# define OPENSSL_malloc(num) \ - CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_zalloc(num) \ - CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_malloc_array(num, size) \ - CRYPTO_malloc_array(num, size, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_calloc(num, size) \ - CRYPTO_calloc(num, size, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ - CRYPTO_aligned_alloc(num, alignment, freeptr, \ - OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_aligned_alloc_array(num, size, alignment, freeptr) \ - CRYPTO_aligned_alloc_array(num, size, alignment, freeptr, \ - OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_realloc(addr, num) \ - CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_clear_realloc(addr, old_num, num) \ - CRYPTO_clear_realloc(addr, old_num, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_realloc_array(addr, num, size) \ - CRYPTO_realloc_array(addr, num, size, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_clear_realloc_array(addr, old_num, num, size) \ - CRYPTO_clear_realloc_array(addr, old_num, num, size, \ - OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_clear_free(addr, num) \ - CRYPTO_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_free(addr) \ - CRYPTO_free(addr, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_memdup(str, s) \ - CRYPTO_memdup((str), s, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_strdup(str) \ - CRYPTO_strdup(str, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_strndup(str, n) \ - CRYPTO_strndup(str, n, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_malloc(num) \ - CRYPTO_secure_malloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_zalloc(num) \ - CRYPTO_secure_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_malloc_array(num, size) \ - CRYPTO_secure_malloc_array(num, size, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_calloc(num, size) \ - CRYPTO_secure_calloc(num, size, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_free(addr) \ - CRYPTO_secure_free(addr, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_clear_free(addr, num) \ - CRYPTO_secure_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_actual_size(ptr) \ - CRYPTO_secure_actual_size(ptr) - -size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); -size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); -size_t OPENSSL_strnlen(const char *str, size_t maxlen); -int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); -int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, - const unsigned char *buf, size_t buflen, - const char sep); -char *OPENSSL_buf2hexstr(const unsigned char *buf, long buflen); -int OPENSSL_hexstr2buf_ex(unsigned char *buf, size_t buf_n, size_t *buflen, - const char *str, const char sep); -unsigned char *OPENSSL_hexstr2buf(const char *str, long *buflen); -int OPENSSL_hexchar2int(unsigned char c); -int OPENSSL_strcasecmp(const char *s1, const char *s2); -int OPENSSL_strncasecmp(const char *s1, const char *s2, size_t n); - -# define OPENSSL_MALLOC_MAX_NELEMS(type) (((1U<<(sizeof(int)*8-1))-1)/sizeof(type)) - -/* - * These functions return the values of OPENSSL_VERSION_MAJOR, - * OPENSSL_VERSION_MINOR, OPENSSL_VERSION_PATCH, OPENSSL_VERSION_PRE_RELEASE - * and OPENSSL_VERSION_BUILD_METADATA, respectively. - */ -unsigned int OPENSSL_version_major(void); -unsigned int OPENSSL_version_minor(void); -unsigned int OPENSSL_version_patch(void); -const char *OPENSSL_version_pre_release(void); -const char *OPENSSL_version_build_metadata(void); - -unsigned long OpenSSL_version_num(void); -const char *OpenSSL_version(int type); -# define OPENSSL_VERSION 0 -# define OPENSSL_CFLAGS 1 -# define OPENSSL_BUILT_ON 2 -# define OPENSSL_PLATFORM 3 -# define OPENSSL_DIR 4 -# define OPENSSL_ENGINES_DIR 5 -# define OPENSSL_VERSION_STRING 6 -# define OPENSSL_FULL_VERSION_STRING 7 -# define OPENSSL_MODULES_DIR 8 -# define OPENSSL_CPU_INFO 9 -# define OPENSSL_WINCTX 10 - -const char *OPENSSL_info(int type); -/* - * The series starts at 1001 to avoid confusion with the OpenSSL_version - * types. - */ -# define OPENSSL_INFO_CONFIG_DIR 1001 -# define OPENSSL_INFO_ENGINES_DIR 1002 -# define OPENSSL_INFO_MODULES_DIR 1003 -# define OPENSSL_INFO_DSO_EXTENSION 1004 -# define OPENSSL_INFO_DIR_FILENAME_SEPARATOR 1005 -# define OPENSSL_INFO_LIST_SEPARATOR 1006 -# define OPENSSL_INFO_SEED_SOURCE 1007 -# define OPENSSL_INFO_CPU_SETTINGS 1008 -# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 - -int OPENSSL_issetugid(void); - -struct crypto_ex_data_st { - OSSL_LIB_CTX *ctx; - STACK_OF(void) *sk; -}; - -SKM_DEFINE_STACK_OF_INTERNAL(void, void, void) -#define sk_void_num(sk) OPENSSL_sk_num(ossl_check_const_void_sk_type(sk)) -#define sk_void_value(sk, idx) ((void *)OPENSSL_sk_value(ossl_check_const_void_sk_type(sk), (idx))) -#define sk_void_new(cmp) ((STACK_OF(void) *)OPENSSL_sk_new(ossl_check_void_compfunc_type(cmp))) -#define sk_void_new_null() ((STACK_OF(void) *)OPENSSL_sk_new_null()) -#define sk_void_new_reserve(cmp, n) ((STACK_OF(void) *)OPENSSL_sk_new_reserve(ossl_check_void_compfunc_type(cmp), (n))) -#define sk_void_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_void_sk_type(sk), (n)) -#define sk_void_free(sk) OPENSSL_sk_free(ossl_check_void_sk_type(sk)) -#define sk_void_zero(sk) OPENSSL_sk_zero(ossl_check_void_sk_type(sk)) -#define sk_void_delete(sk, i) ((void *)OPENSSL_sk_delete(ossl_check_void_sk_type(sk), (i))) -#define sk_void_delete_ptr(sk, ptr) ((void *)OPENSSL_sk_delete_ptr(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr))) -#define sk_void_push(sk, ptr) OPENSSL_sk_push(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr)) -#define sk_void_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr)) -#define sk_void_pop(sk) ((void *)OPENSSL_sk_pop(ossl_check_void_sk_type(sk))) -#define sk_void_shift(sk) ((void *)OPENSSL_sk_shift(ossl_check_void_sk_type(sk))) -#define sk_void_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_void_sk_type(sk), ossl_check_void_freefunc_type(freefunc)) -#define sk_void_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr), (idx)) -#define sk_void_set(sk, idx, ptr) ((void *)OPENSSL_sk_set(ossl_check_void_sk_type(sk), (idx), ossl_check_void_type(ptr))) -#define sk_void_find(sk, ptr) OPENSSL_sk_find(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr)) -#define sk_void_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr)) -#define sk_void_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr), pnum) -#define sk_void_sort(sk) OPENSSL_sk_sort(ossl_check_void_sk_type(sk)) -#define sk_void_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_void_sk_type(sk)) -#define sk_void_dup(sk) ((STACK_OF(void) *)OPENSSL_sk_dup(ossl_check_const_void_sk_type(sk))) -#define sk_void_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(void) *)OPENSSL_sk_deep_copy(ossl_check_const_void_sk_type(sk), ossl_check_void_copyfunc_type(copyfunc), ossl_check_void_freefunc_type(freefunc))) -#define sk_void_set_cmp_func(sk, cmp) ((sk_void_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_void_sk_type(sk), ossl_check_void_compfunc_type(cmp))) - - - -/* - * Per class, we have a STACK of function pointers. - */ -# define CRYPTO_EX_INDEX_SSL 0 -# define CRYPTO_EX_INDEX_SSL_CTX 1 -# define CRYPTO_EX_INDEX_SSL_SESSION 2 -# define CRYPTO_EX_INDEX_X509 3 -# define CRYPTO_EX_INDEX_X509_STORE 4 -# define CRYPTO_EX_INDEX_X509_STORE_CTX 5 -# define CRYPTO_EX_INDEX_DH 6 -# define CRYPTO_EX_INDEX_DSA 7 -# define CRYPTO_EX_INDEX_EC_KEY 8 -# define CRYPTO_EX_INDEX_RSA 9 -# define CRYPTO_EX_INDEX_ENGINE 10 -# define CRYPTO_EX_INDEX_UI 11 -# define CRYPTO_EX_INDEX_BIO 12 -# define CRYPTO_EX_INDEX_APP 13 -# define CRYPTO_EX_INDEX_UI_METHOD 14 -# define CRYPTO_EX_INDEX_RAND_DRBG 15 -# define CRYPTO_EX_INDEX_DRBG CRYPTO_EX_INDEX_RAND_DRBG -# define CRYPTO_EX_INDEX_OSSL_LIB_CTX 16 -# define CRYPTO_EX_INDEX_EVP_PKEY 17 -# define CRYPTO_EX_INDEX__COUNT 18 - -typedef void CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, - int idx, long argl, void *argp); -typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, - int idx, long argl, void *argp); -typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from, - void **from_d, int idx, long argl, void *argp); -__owur int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, - CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); -/* No longer use an index. */ -int CRYPTO_free_ex_index(int class_index, int idx); - -/* - * Initialise/duplicate/free CRYPTO_EX_DATA variables corresponding to a - * given class (invokes whatever per-class callbacks are applicable) - */ -int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); -int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, - const CRYPTO_EX_DATA *from); - -void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); - -/* Allocate a single item in the CRYPTO_EX_DATA variable */ -int CRYPTO_alloc_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad, - int idx); - -/* - * Get/set data in a CRYPTO_EX_DATA variable corresponding to a particular - * index (relative to the class type involved) - */ -int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val); -void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -/* - * This function cleans up all "ex_data" state. It mustn't be called under - * potential race-conditions. - */ -# define CRYPTO_cleanup_all_ex_data() while(0) continue - -/* - * The old locking functions have been removed completely without compatibility - * macros. This is because the old functions either could not properly report - * errors, or the returned error values were not clearly documented. - * Replacing the locking functions with no-ops would cause race condition - * issues in the affected applications. It is far better for them to fail at - * compile time. - * On the other hand, the locking callbacks are no longer used. Consequently, - * the callback management functions can be safely replaced with no-op macros. - */ -# define CRYPTO_num_locks() (1) -# define CRYPTO_set_locking_callback(func) -# define CRYPTO_get_locking_callback() (NULL) -# define CRYPTO_set_add_lock_callback(func) -# define CRYPTO_get_add_lock_callback() (NULL) - -/* - * These defines where used in combination with the old locking callbacks, - * they are not called anymore, but old code that's not called might still - * use them. - */ -# define CRYPTO_LOCK 1 -# define CRYPTO_UNLOCK 2 -# define CRYPTO_READ 4 -# define CRYPTO_WRITE 8 - -/* This structure is no longer used */ -typedef struct crypto_threadid_st { - int dummy; -} CRYPTO_THREADID; -/* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */ -# define CRYPTO_THREADID_set_numeric(id, val) -# define CRYPTO_THREADID_set_pointer(id, ptr) -# define CRYPTO_THREADID_set_callback(threadid_func) (0) -# define CRYPTO_THREADID_get_callback() (NULL) -# define CRYPTO_THREADID_current(id) -# define CRYPTO_THREADID_cmp(a, b) (-1) -# define CRYPTO_THREADID_cpy(dest, src) -# define CRYPTO_THREADID_hash(id) (0UL) - -# ifndef OPENSSL_NO_DEPRECATED_1_0_0 -# define CRYPTO_set_id_callback(func) -# define CRYPTO_get_id_callback() (NULL) -# define CRYPTO_thread_id() (0UL) -# endif /* OPENSSL_NO_DEPRECATED_1_0_0 */ - -# define CRYPTO_set_dynlock_create_callback(dyn_create_function) -# define CRYPTO_set_dynlock_lock_callback(dyn_lock_function) -# define CRYPTO_set_dynlock_destroy_callback(dyn_destroy_function) -# define CRYPTO_get_dynlock_create_callback() (NULL) -# define CRYPTO_get_dynlock_lock_callback() (NULL) -# define CRYPTO_get_dynlock_destroy_callback() (NULL) -# endif /* OPENSSL_NO_DEPRECATED_1_1_0 */ - -typedef void *(*CRYPTO_malloc_fn)(size_t num, const char *file, int line); -typedef void *(*CRYPTO_realloc_fn)(void *addr, size_t num, const char *file, - int line); -typedef void (*CRYPTO_free_fn)(void *addr, const char *file, int line); -int CRYPTO_set_mem_functions(CRYPTO_malloc_fn malloc_fn, - CRYPTO_realloc_fn realloc_fn, - CRYPTO_free_fn free_fn); -void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, - CRYPTO_realloc_fn *realloc_fn, - CRYPTO_free_fn *free_fn); - -OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); -OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); -OSSL_CRYPTO_ALLOC void *CRYPTO_malloc_array(size_t num, size_t size, - const char *file, int line); -OSSL_CRYPTO_ALLOC void *CRYPTO_calloc(size_t num, size_t size, - const char *file, int line); -OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, - void **freeptr, const char *file, - int line); -OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc_array(size_t num, size_t size, - size_t align, void **freeptr, - const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); -void CRYPTO_free(void *ptr, const char *file, int line); -void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); -void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); -void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, - const char *file, int line); -void *CRYPTO_realloc_array(void *addr, size_t num, size_t size, - const char *file, int line); -void *CRYPTO_clear_realloc_array(void *addr, size_t old_num, size_t num, - size_t size, const char *file, int line); - -int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); -int CRYPTO_secure_malloc_done(void); -OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); -OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc_array(size_t num, size_t size, - const char *file, int line); -OSSL_CRYPTO_ALLOC void *CRYPTO_secure_calloc(size_t num, size_t size, - const char *file, int line); -void CRYPTO_secure_free(void *ptr, const char *file, int line); -void CRYPTO_secure_clear_free(void *ptr, size_t num, - const char *file, int line); -int CRYPTO_secure_allocated(const void *ptr); -int CRYPTO_secure_malloc_initialized(void); -size_t CRYPTO_secure_actual_size(void *ptr); -size_t CRYPTO_secure_used(void); - -void OPENSSL_cleanse(void *ptr, size_t len); - -# ifndef OPENSSL_NO_CRYPTO_MDEBUG -/* - * The following can be used to detect memory leaks in the library. If - * used, it turns on malloc checking - */ -# define CRYPTO_MEM_CHECK_OFF 0x0 /* Control only */ -# define CRYPTO_MEM_CHECK_ON 0x1 /* Control and mode bit */ -# define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ -# define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ - -/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ -# define CRYPTO_MEM_CHECK_MAX_FS 256 - -void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define OPENSSL_mem_debug_push(info) \ - CRYPTO_mem_debug_push(info, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_mem_debug_pop() \ - CRYPTO_mem_debug_pop() -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int CRYPTO_set_mem_debug(int flag); -OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_ctrl(int mode); -OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_debug_push(const char *info, - const char *file, int line); -OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_debug_pop(void); -OSSL_DEPRECATEDIN_3_0 void CRYPTO_mem_debug_malloc(void *addr, size_t num, - int flag, - const char *file, int line); -OSSL_DEPRECATEDIN_3_0 void CRYPTO_mem_debug_realloc(void *addr1, void *addr2, - size_t num, int flag, - const char *file, int line); -OSSL_DEPRECATEDIN_3_0 void CRYPTO_mem_debug_free(void *addr, int flag, - const char *file, int line); -OSSL_DEPRECATEDIN_3_0 -int CRYPTO_mem_leaks_cb(int (*cb)(const char *str, size_t len, void *u), - void *u); -# endif -# ifndef OPENSSL_NO_STDIO -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_leaks_fp(FILE *); -# endif -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_leaks(BIO *bio); -# endif -# endif /* OPENSSL_NO_CRYPTO_MDEBUG */ - -/* die if we have to */ -ossl_noreturn void OPENSSL_die(const char *assertion, const char *file, int line); -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define OpenSSLDie(f,l,a) OPENSSL_die((a),(f),(l)) -# endif -# define OPENSSL_assert(e) \ - (void)((e) ? 0 : (OPENSSL_die("assertion failed: " #e, OPENSSL_FILE, OPENSSL_LINE), 1)) - -int OPENSSL_isservice(void); - -void OPENSSL_init(void); -# ifdef OPENSSL_SYS_UNIX -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 void OPENSSL_fork_prepare(void); -OSSL_DEPRECATEDIN_3_0 void OPENSSL_fork_parent(void); -OSSL_DEPRECATEDIN_3_0 void OPENSSL_fork_child(void); -# endif -# endif - -struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result); -int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec); -int OPENSSL_gmtime_diff(int *pday, int *psec, - const struct tm *from, const struct tm *to); - -/* - * CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. - * It takes an amount of time dependent on |len|, but independent of the - * contents of |a| and |b|. Unlike memcmp, it cannot be used to put elements - * into a defined order as the return value when a != b is undefined, other - * than to be non-zero. - */ -int CRYPTO_memcmp(const void * in_a, const void * in_b, size_t len); - -/* Standard initialisation options */ -# define OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS 0x00000001L -# define OPENSSL_INIT_LOAD_CRYPTO_STRINGS 0x00000002L -# define OPENSSL_INIT_ADD_ALL_CIPHERS 0x00000004L -# define OPENSSL_INIT_ADD_ALL_DIGESTS 0x00000008L -# define OPENSSL_INIT_NO_ADD_ALL_CIPHERS 0x00000010L -# define OPENSSL_INIT_NO_ADD_ALL_DIGESTS 0x00000020L -# define OPENSSL_INIT_LOAD_CONFIG 0x00000040L -# define OPENSSL_INIT_NO_LOAD_CONFIG 0x00000080L -# define OPENSSL_INIT_ASYNC 0x00000100L -# define OPENSSL_INIT_ENGINE_RDRAND 0x00000200L -# define OPENSSL_INIT_ENGINE_DYNAMIC 0x00000400L -# define OPENSSL_INIT_ENGINE_OPENSSL 0x00000800L -# define OPENSSL_INIT_ENGINE_CRYPTODEV 0x00001000L -# define OPENSSL_INIT_ENGINE_CAPI 0x00002000L -# define OPENSSL_INIT_ENGINE_PADLOCK 0x00004000L -# define OPENSSL_INIT_ENGINE_AFALG 0x00008000L -/* FREE: 0x00010000L */ -# define OPENSSL_INIT_ATFORK 0x00020000L -/* OPENSSL_INIT_BASE_ONLY 0x00040000L */ -# define OPENSSL_INIT_NO_ATEXIT 0x00080000L -/* OPENSSL_INIT flag range 0x03f00000 reserved for OPENSSL_init_ssl() */ -/* FREE: 0x04000000L */ -/* FREE: 0x08000000L */ -/* FREE: 0x10000000L */ -/* FREE: 0x20000000L */ -/* FREE: 0x40000000L */ -/* FREE: 0x80000000L */ -/* Max OPENSSL_INIT flag value is 0x80000000 */ - -/* openssl and dasync not counted as builtin */ -# define OPENSSL_INIT_ENGINE_ALL_BUILTIN \ - (OPENSSL_INIT_ENGINE_RDRAND | OPENSSL_INIT_ENGINE_DYNAMIC \ - | OPENSSL_INIT_ENGINE_CRYPTODEV | OPENSSL_INIT_ENGINE_CAPI | \ - OPENSSL_INIT_ENGINE_PADLOCK) - -/* Library initialisation functions */ -void OPENSSL_cleanup(void); -int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); -int OPENSSL_atexit(void (*handler)(void)); -void OPENSSL_thread_stop(void); -void OPENSSL_thread_stop_ex(OSSL_LIB_CTX *ctx); - -/* Low-level control of initialization */ -OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void); -# ifndef OPENSSL_NO_STDIO -int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings, - const char *config_filename); -void OPENSSL_INIT_set_config_file_flags(OPENSSL_INIT_SETTINGS *settings, - unsigned long flags); -int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings, - const char *config_appname); -# endif -void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings); - -# if defined(OPENSSL_THREADS) && !defined(CRYPTO_TDEBUG) -# if defined(_WIN32) -# if defined(BASETYPES) || defined(_WINDEF_H) -/* application has to include in order to use this */ -typedef DWORD CRYPTO_THREAD_LOCAL; -typedef DWORD CRYPTO_THREAD_ID; - -typedef LONG CRYPTO_ONCE; -# define CRYPTO_ONCE_STATIC_INIT 0 -# endif -# else -# if defined(__TANDEM) && defined(_SPT_MODEL_) -# define SPT_THREAD_SIGNAL 1 -# define SPT_THREAD_AWARE 1 -# include -# else -# include -# endif -typedef pthread_once_t CRYPTO_ONCE; -typedef pthread_key_t CRYPTO_THREAD_LOCAL; -typedef pthread_t CRYPTO_THREAD_ID; - -# define CRYPTO_ONCE_STATIC_INIT PTHREAD_ONCE_INIT -# endif -# endif - -# if !defined(CRYPTO_ONCE_STATIC_INIT) -typedef unsigned int CRYPTO_ONCE; -typedef unsigned int CRYPTO_THREAD_LOCAL; -typedef unsigned int CRYPTO_THREAD_ID; -# define CRYPTO_ONCE_STATIC_INIT 0 -# endif - -int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void)); - -int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void *)); -void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key); -int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val); -int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key); - -CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void); -int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b); - -OSSL_LIB_CTX *OSSL_LIB_CTX_new(void); -OSSL_LIB_CTX *OSSL_LIB_CTX_new_from_dispatch(const OSSL_CORE_HANDLE *handle, - const OSSL_DISPATCH *in); -OSSL_LIB_CTX *OSSL_LIB_CTX_new_child(const OSSL_CORE_HANDLE *handle, - const OSSL_DISPATCH *in); -int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); -void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); -OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); -OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); -int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); -void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); - -void OSSL_sleep(uint64_t millis); - - -void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cryptoerr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/cryptoerr.h deleted file mode 100644 index 7fa79cf..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cryptoerr.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CRYPTOERR_H -# define OPENSSL_CRYPTOERR_H -# pragma once - -# include -# include -# include - - - -/* - * CRYPTO reason codes. - */ -# define CRYPTO_R_BAD_ALGORITHM_NAME 117 -# define CRYPTO_R_CONFLICTING_NAMES 118 -# define CRYPTO_R_HEX_STRING_TOO_SHORT 121 -# define CRYPTO_R_ILLEGAL_HEX_DIGIT 102 -# define CRYPTO_R_INSUFFICIENT_DATA_SPACE 106 -# define CRYPTO_R_INSUFFICIENT_PARAM_SIZE 107 -# define CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE 108 -# define CRYPTO_R_INTEGER_OVERFLOW 127 -# define CRYPTO_R_INVALID_NEGATIVE_VALUE 122 -# define CRYPTO_R_INVALID_NULL_ARGUMENT 109 -# define CRYPTO_R_INVALID_OSSL_PARAM_TYPE 110 -# define CRYPTO_R_NO_PARAMS_TO_MERGE 131 -# define CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL 128 -# define CRYPTO_R_ODD_NUMBER_OF_DIGITS 103 -# define CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY 123 -# define CRYPTO_R_PARAM_NOT_INTEGER_TYPE 124 -# define CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE 129 -# define CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED 125 -# define CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT 130 -# define CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION 126 -# define CRYPTO_R_PROVIDER_ALREADY_EXISTS 104 -# define CRYPTO_R_PROVIDER_SECTION_ERROR 105 -# define CRYPTO_R_RANDOM_SECTION_ERROR 119 -# define CRYPTO_R_SECURE_MALLOC_FAILURE 111 -# define CRYPTO_R_STRING_TOO_LONG 112 -# define CRYPTO_R_TOO_MANY_BYTES 113 -# define CRYPTO_R_TOO_MANY_NAMES 132 -# define CRYPTO_R_TOO_MANY_RECORDS 114 -# define CRYPTO_R_TOO_SMALL_BUFFER 116 -# define CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION 120 -# define CRYPTO_R_ZERO_LENGTH_NUMBER 115 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cryptoerr_legacy.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/cryptoerr_legacy.h deleted file mode 100644 index ccab33a..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cryptoerr_legacy.h +++ /dev/null @@ -1,1466 +0,0 @@ -/* - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * This header file preserves symbols from pre-3.0 OpenSSL. - * It should never be included directly, as it's already included - * by the public {lib}err.h headers, and since it will go away some - * time in the future. - */ - -#ifndef OPENSSL_CRYPTOERR_LEGACY_H -# define OPENSSL_CRYPTOERR_LEGACY_H -# pragma once - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ERR_load_ASN1_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_ASYNC_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_BIO_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_BN_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_BUF_strings(void); -# ifndef OPENSSL_NO_CMS -OSSL_DEPRECATEDIN_3_0 int ERR_load_CMS_strings(void); -# endif -# ifndef OPENSSL_NO_COMP -OSSL_DEPRECATEDIN_3_0 int ERR_load_COMP_strings(void); -# endif -OSSL_DEPRECATEDIN_3_0 int ERR_load_CONF_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_CRYPTO_strings(void); -# ifndef OPENSSL_NO_CT -OSSL_DEPRECATEDIN_3_0 int ERR_load_CT_strings(void); -# endif -# ifndef OPENSSL_NO_DH -OSSL_DEPRECATEDIN_3_0 int ERR_load_DH_strings(void); -# endif -# ifndef OPENSSL_NO_DSA -OSSL_DEPRECATEDIN_3_0 int ERR_load_DSA_strings(void); -# endif -# ifndef OPENSSL_NO_EC -OSSL_DEPRECATEDIN_3_0 int ERR_load_EC_strings(void); -# endif -# ifndef OPENSSL_NO_ENGINE -OSSL_DEPRECATEDIN_3_0 int ERR_load_ENGINE_strings(void); -# endif -OSSL_DEPRECATEDIN_3_0 int ERR_load_ERR_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_EVP_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_KDF_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_OBJ_strings(void); -# ifndef OPENSSL_NO_OCSP -OSSL_DEPRECATEDIN_3_0 int ERR_load_OCSP_strings(void); -# endif -OSSL_DEPRECATEDIN_3_0 int ERR_load_PEM_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_PKCS12_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_PKCS7_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_RAND_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_RSA_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_OSSL_STORE_strings(void); -# ifndef OPENSSL_NO_TS -OSSL_DEPRECATEDIN_3_0 int ERR_load_TS_strings(void); -# endif -OSSL_DEPRECATEDIN_3_0 int ERR_load_UI_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_X509_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_X509V3_strings(void); - -/* Collected _F_ macros from OpenSSL 1.1.1 */ - -/* - * ASN1 function codes. - */ -# define ASN1_F_A2D_ASN1_OBJECT 0 -# define ASN1_F_A2I_ASN1_INTEGER 0 -# define ASN1_F_A2I_ASN1_STRING 0 -# define ASN1_F_APPEND_EXP 0 -# define ASN1_F_ASN1_BIO_INIT 0 -# define ASN1_F_ASN1_BIT_STRING_SET_BIT 0 -# define ASN1_F_ASN1_CB 0 -# define ASN1_F_ASN1_CHECK_TLEN 0 -# define ASN1_F_ASN1_COLLECT 0 -# define ASN1_F_ASN1_D2I_EX_PRIMITIVE 0 -# define ASN1_F_ASN1_D2I_FP 0 -# define ASN1_F_ASN1_D2I_READ_BIO 0 -# define ASN1_F_ASN1_DIGEST 0 -# define ASN1_F_ASN1_DO_ADB 0 -# define ASN1_F_ASN1_DO_LOCK 0 -# define ASN1_F_ASN1_DUP 0 -# define ASN1_F_ASN1_ENC_SAVE 0 -# define ASN1_F_ASN1_EX_C2I 0 -# define ASN1_F_ASN1_FIND_END 0 -# define ASN1_F_ASN1_GENERALIZEDTIME_ADJ 0 -# define ASN1_F_ASN1_GENERATE_V3 0 -# define ASN1_F_ASN1_GET_INT64 0 -# define ASN1_F_ASN1_GET_OBJECT 0 -# define ASN1_F_ASN1_GET_UINT64 0 -# define ASN1_F_ASN1_I2D_BIO 0 -# define ASN1_F_ASN1_I2D_FP 0 -# define ASN1_F_ASN1_ITEM_D2I_FP 0 -# define ASN1_F_ASN1_ITEM_DUP 0 -# define ASN1_F_ASN1_ITEM_EMBED_D2I 0 -# define ASN1_F_ASN1_ITEM_EMBED_NEW 0 -# define ASN1_F_ASN1_ITEM_FLAGS_I2D 0 -# define ASN1_F_ASN1_ITEM_I2D_BIO 0 -# define ASN1_F_ASN1_ITEM_I2D_FP 0 -# define ASN1_F_ASN1_ITEM_PACK 0 -# define ASN1_F_ASN1_ITEM_SIGN 0 -# define ASN1_F_ASN1_ITEM_SIGN_CTX 0 -# define ASN1_F_ASN1_ITEM_UNPACK 0 -# define ASN1_F_ASN1_ITEM_VERIFY 0 -# define ASN1_F_ASN1_MBSTRING_NCOPY 0 -# define ASN1_F_ASN1_OBJECT_NEW 0 -# define ASN1_F_ASN1_OUTPUT_DATA 0 -# define ASN1_F_ASN1_PCTX_NEW 0 -# define ASN1_F_ASN1_PRIMITIVE_NEW 0 -# define ASN1_F_ASN1_SCTX_NEW 0 -# define ASN1_F_ASN1_SIGN 0 -# define ASN1_F_ASN1_STR2TYPE 0 -# define ASN1_F_ASN1_STRING_GET_INT64 0 -# define ASN1_F_ASN1_STRING_GET_UINT64 0 -# define ASN1_F_ASN1_STRING_SET 0 -# define ASN1_F_ASN1_STRING_TABLE_ADD 0 -# define ASN1_F_ASN1_STRING_TO_BN 0 -# define ASN1_F_ASN1_STRING_TYPE_NEW 0 -# define ASN1_F_ASN1_TEMPLATE_EX_D2I 0 -# define ASN1_F_ASN1_TEMPLATE_NEW 0 -# define ASN1_F_ASN1_TEMPLATE_NOEXP_D2I 0 -# define ASN1_F_ASN1_TIME_ADJ 0 -# define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 0 -# define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 0 -# define ASN1_F_ASN1_UTCTIME_ADJ 0 -# define ASN1_F_ASN1_VERIFY 0 -# define ASN1_F_B64_READ_ASN1 0 -# define ASN1_F_B64_WRITE_ASN1 0 -# define ASN1_F_BIO_NEW_NDEF 0 -# define ASN1_F_BITSTR_CB 0 -# define ASN1_F_BN_TO_ASN1_STRING 0 -# define ASN1_F_C2I_ASN1_BIT_STRING 0 -# define ASN1_F_C2I_ASN1_INTEGER 0 -# define ASN1_F_C2I_ASN1_OBJECT 0 -# define ASN1_F_C2I_IBUF 0 -# define ASN1_F_C2I_UINT64_INT 0 -# define ASN1_F_COLLECT_DATA 0 -# define ASN1_F_D2I_ASN1_OBJECT 0 -# define ASN1_F_D2I_ASN1_UINTEGER 0 -# define ASN1_F_D2I_AUTOPRIVATEKEY 0 -# define ASN1_F_D2I_PRIVATEKEY 0 -# define ASN1_F_D2I_PUBLICKEY 0 -# define ASN1_F_DO_BUF 0 -# define ASN1_F_DO_CREATE 0 -# define ASN1_F_DO_DUMP 0 -# define ASN1_F_DO_TCREATE 0 -# define ASN1_F_I2A_ASN1_OBJECT 0 -# define ASN1_F_I2D_ASN1_BIO_STREAM 0 -# define ASN1_F_I2D_ASN1_OBJECT 0 -# define ASN1_F_I2D_DSA_PUBKEY 0 -# define ASN1_F_I2D_EC_PUBKEY 0 -# define ASN1_F_I2D_PRIVATEKEY 0 -# define ASN1_F_I2D_PUBLICKEY 0 -# define ASN1_F_I2D_RSA_PUBKEY 0 -# define ASN1_F_LONG_C2I 0 -# define ASN1_F_NDEF_PREFIX 0 -# define ASN1_F_NDEF_SUFFIX 0 -# define ASN1_F_OID_MODULE_INIT 0 -# define ASN1_F_PARSE_TAGGING 0 -# define ASN1_F_PKCS5_PBE2_SET_IV 0 -# define ASN1_F_PKCS5_PBE2_SET_SCRYPT 0 -# define ASN1_F_PKCS5_PBE_SET 0 -# define ASN1_F_PKCS5_PBE_SET0_ALGOR 0 -# define ASN1_F_PKCS5_PBKDF2_SET 0 -# define ASN1_F_PKCS5_SCRYPT_SET 0 -# define ASN1_F_SMIME_READ_ASN1 0 -# define ASN1_F_SMIME_TEXT 0 -# define ASN1_F_STABLE_GET 0 -# define ASN1_F_STBL_MODULE_INIT 0 -# define ASN1_F_UINT32_C2I 0 -# define ASN1_F_UINT32_NEW 0 -# define ASN1_F_UINT64_C2I 0 -# define ASN1_F_UINT64_NEW 0 -# define ASN1_F_X509_CRL_ADD0_REVOKED 0 -# define ASN1_F_X509_INFO_NEW 0 -# define ASN1_F_X509_NAME_ENCODE 0 -# define ASN1_F_X509_NAME_EX_D2I 0 -# define ASN1_F_X509_NAME_EX_NEW 0 -# define ASN1_F_X509_PKEY_NEW 0 - -/* - * ASYNC function codes. - */ -# define ASYNC_F_ASYNC_CTX_NEW 0 -# define ASYNC_F_ASYNC_INIT_THREAD 0 -# define ASYNC_F_ASYNC_JOB_NEW 0 -# define ASYNC_F_ASYNC_PAUSE_JOB 0 -# define ASYNC_F_ASYNC_START_FUNC 0 -# define ASYNC_F_ASYNC_START_JOB 0 -# define ASYNC_F_ASYNC_WAIT_CTX_SET_WAIT_FD 0 - -/* - * BIO function codes. - */ -# define BIO_F_ACPT_STATE 0 -# define BIO_F_ADDRINFO_WRAP 0 -# define BIO_F_ADDR_STRINGS 0 -# define BIO_F_BIO_ACCEPT 0 -# define BIO_F_BIO_ACCEPT_EX 0 -# define BIO_F_BIO_ACCEPT_NEW 0 -# define BIO_F_BIO_ADDR_NEW 0 -# define BIO_F_BIO_BIND 0 -# define BIO_F_BIO_CALLBACK_CTRL 0 -# define BIO_F_BIO_CONNECT 0 -# define BIO_F_BIO_CONNECT_NEW 0 -# define BIO_F_BIO_CTRL 0 -# define BIO_F_BIO_GETS 0 -# define BIO_F_BIO_GET_HOST_IP 0 -# define BIO_F_BIO_GET_NEW_INDEX 0 -# define BIO_F_BIO_GET_PORT 0 -# define BIO_F_BIO_LISTEN 0 -# define BIO_F_BIO_LOOKUP 0 -# define BIO_F_BIO_LOOKUP_EX 0 -# define BIO_F_BIO_MAKE_PAIR 0 -# define BIO_F_BIO_METH_NEW 0 -# define BIO_F_BIO_NEW 0 -# define BIO_F_BIO_NEW_DGRAM_SCTP 0 -# define BIO_F_BIO_NEW_FILE 0 -# define BIO_F_BIO_NEW_MEM_BUF 0 -# define BIO_F_BIO_NREAD 0 -# define BIO_F_BIO_NREAD0 0 -# define BIO_F_BIO_NWRITE 0 -# define BIO_F_BIO_NWRITE0 0 -# define BIO_F_BIO_PARSE_HOSTSERV 0 -# define BIO_F_BIO_PUTS 0 -# define BIO_F_BIO_READ 0 -# define BIO_F_BIO_READ_EX 0 -# define BIO_F_BIO_READ_INTERN 0 -# define BIO_F_BIO_SOCKET 0 -# define BIO_F_BIO_SOCKET_NBIO 0 -# define BIO_F_BIO_SOCK_INFO 0 -# define BIO_F_BIO_SOCK_INIT 0 -# define BIO_F_BIO_WRITE 0 -# define BIO_F_BIO_WRITE_EX 0 -# define BIO_F_BIO_WRITE_INTERN 0 -# define BIO_F_BUFFER_CTRL 0 -# define BIO_F_CONN_CTRL 0 -# define BIO_F_CONN_STATE 0 -# define BIO_F_DGRAM_SCTP_NEW 0 -# define BIO_F_DGRAM_SCTP_READ 0 -# define BIO_F_DGRAM_SCTP_WRITE 0 -# define BIO_F_DOAPR_OUTCH 0 -# define BIO_F_FILE_CTRL 0 -# define BIO_F_FILE_READ 0 -# define BIO_F_LINEBUFFER_CTRL 0 -# define BIO_F_LINEBUFFER_NEW 0 -# define BIO_F_MEM_WRITE 0 -# define BIO_F_NBIOF_NEW 0 -# define BIO_F_SLG_WRITE 0 -# define BIO_F_SSL_NEW 0 - -/* - * BN function codes. - */ -# define BN_F_BNRAND 0 -# define BN_F_BNRAND_RANGE 0 -# define BN_F_BN_BLINDING_CONVERT_EX 0 -# define BN_F_BN_BLINDING_CREATE_PARAM 0 -# define BN_F_BN_BLINDING_INVERT_EX 0 -# define BN_F_BN_BLINDING_NEW 0 -# define BN_F_BN_BLINDING_UPDATE 0 -# define BN_F_BN_BN2DEC 0 -# define BN_F_BN_BN2HEX 0 -# define BN_F_BN_COMPUTE_WNAF 0 -# define BN_F_BN_CTX_GET 0 -# define BN_F_BN_CTX_NEW 0 -# define BN_F_BN_CTX_START 0 -# define BN_F_BN_DIV 0 -# define BN_F_BN_DIV_RECP 0 -# define BN_F_BN_EXP 0 -# define BN_F_BN_EXPAND_INTERNAL 0 -# define BN_F_BN_GENCB_NEW 0 -# define BN_F_BN_GENERATE_DSA_NONCE 0 -# define BN_F_BN_GENERATE_PRIME_EX 0 -# define BN_F_BN_GF2M_MOD 0 -# define BN_F_BN_GF2M_MOD_EXP 0 -# define BN_F_BN_GF2M_MOD_MUL 0 -# define BN_F_BN_GF2M_MOD_SOLVE_QUAD 0 -# define BN_F_BN_GF2M_MOD_SOLVE_QUAD_ARR 0 -# define BN_F_BN_GF2M_MOD_SQR 0 -# define BN_F_BN_GF2M_MOD_SQRT 0 -# define BN_F_BN_LSHIFT 0 -# define BN_F_BN_MOD_EXP2_MONT 0 -# define BN_F_BN_MOD_EXP_MONT 0 -# define BN_F_BN_MOD_EXP_MONT_CONSTTIME 0 -# define BN_F_BN_MOD_EXP_MONT_WORD 0 -# define BN_F_BN_MOD_EXP_RECP 0 -# define BN_F_BN_MOD_EXP_SIMPLE 0 -# define BN_F_BN_MOD_INVERSE 0 -# define BN_F_BN_MOD_INVERSE_NO_BRANCH 0 -# define BN_F_BN_MOD_LSHIFT_QUICK 0 -# define BN_F_BN_MOD_SQRT 0 -# define BN_F_BN_MONT_CTX_NEW 0 -# define BN_F_BN_MPI2BN 0 -# define BN_F_BN_NEW 0 -# define BN_F_BN_POOL_GET 0 -# define BN_F_BN_RAND 0 -# define BN_F_BN_RAND_RANGE 0 -# define BN_F_BN_RECP_CTX_NEW 0 -# define BN_F_BN_RSHIFT 0 -# define BN_F_BN_SET_WORDS 0 -# define BN_F_BN_STACK_PUSH 0 -# define BN_F_BN_USUB 0 - -/* - * BUF function codes. - */ -# define BUF_F_BUF_MEM_GROW 0 -# define BUF_F_BUF_MEM_GROW_CLEAN 0 -# define BUF_F_BUF_MEM_NEW 0 - -# ifndef OPENSSL_NO_CMS -/* - * CMS function codes. - */ -# define CMS_F_CHECK_CONTENT 0 -# define CMS_F_CMS_ADD0_CERT 0 -# define CMS_F_CMS_ADD0_RECIPIENT_KEY 0 -# define CMS_F_CMS_ADD0_RECIPIENT_PASSWORD 0 -# define CMS_F_CMS_ADD1_RECEIPTREQUEST 0 -# define CMS_F_CMS_ADD1_RECIPIENT_CERT 0 -# define CMS_F_CMS_ADD1_SIGNER 0 -# define CMS_F_CMS_ADD1_SIGNINGTIME 0 -# define CMS_F_CMS_COMPRESS 0 -# define CMS_F_CMS_COMPRESSEDDATA_CREATE 0 -# define CMS_F_CMS_COMPRESSEDDATA_INIT_BIO 0 -# define CMS_F_CMS_COPY_CONTENT 0 -# define CMS_F_CMS_COPY_MESSAGEDIGEST 0 -# define CMS_F_CMS_DATA 0 -# define CMS_F_CMS_DATAFINAL 0 -# define CMS_F_CMS_DATAINIT 0 -# define CMS_F_CMS_DECRYPT 0 -# define CMS_F_CMS_DECRYPT_SET1_KEY 0 -# define CMS_F_CMS_DECRYPT_SET1_PASSWORD 0 -# define CMS_F_CMS_DECRYPT_SET1_PKEY 0 -# define CMS_F_CMS_DIGESTALGORITHM_FIND_CTX 0 -# define CMS_F_CMS_DIGESTALGORITHM_INIT_BIO 0 -# define CMS_F_CMS_DIGESTEDDATA_DO_FINAL 0 -# define CMS_F_CMS_DIGEST_VERIFY 0 -# define CMS_F_CMS_ENCODE_RECEIPT 0 -# define CMS_F_CMS_ENCRYPT 0 -# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT 0 -# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO 0 -# define CMS_F_CMS_ENCRYPTEDDATA_DECRYPT 0 -# define CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT 0 -# define CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY 0 -# define CMS_F_CMS_ENVELOPEDDATA_CREATE 0 -# define CMS_F_CMS_ENVELOPEDDATA_INIT_BIO 0 -# define CMS_F_CMS_ENVELOPED_DATA_INIT 0 -# define CMS_F_CMS_ENV_ASN1_CTRL 0 -# define CMS_F_CMS_FINAL 0 -# define CMS_F_CMS_GET0_CERTIFICATE_CHOICES 0 -# define CMS_F_CMS_GET0_CONTENT 0 -# define CMS_F_CMS_GET0_ECONTENT_TYPE 0 -# define CMS_F_CMS_GET0_ENVELOPED 0 -# define CMS_F_CMS_GET0_REVOCATION_CHOICES 0 -# define CMS_F_CMS_GET0_SIGNED 0 -# define CMS_F_CMS_MSGSIGDIGEST_ADD1 0 -# define CMS_F_CMS_RECEIPTREQUEST_CREATE0 0 -# define CMS_F_CMS_RECEIPT_VERIFY 0 -# define CMS_F_CMS_RECIPIENTINFO_DECRYPT 0 -# define CMS_F_CMS_RECIPIENTINFO_ENCRYPT 0 -# define CMS_F_CMS_RECIPIENTINFO_KARI_ENCRYPT 0 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ALG 0 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ORIG_ID 0 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_REKS 0 -# define CMS_F_CMS_RECIPIENTINFO_KARI_ORIG_ID_CMP 0 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT 0 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT 0 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID 0 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP 0 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP 0 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT 0 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT 0 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS 0 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID 0 -# define CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT 0 -# define CMS_F_CMS_RECIPIENTINFO_SET0_KEY 0 -# define CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD 0 -# define CMS_F_CMS_RECIPIENTINFO_SET0_PKEY 0 -# define CMS_F_CMS_SD_ASN1_CTRL 0 -# define CMS_F_CMS_SET1_IAS 0 -# define CMS_F_CMS_SET1_KEYID 0 -# define CMS_F_CMS_SET1_SIGNERIDENTIFIER 0 -# define CMS_F_CMS_SET_DETACHED 0 -# define CMS_F_CMS_SIGN 0 -# define CMS_F_CMS_SIGNED_DATA_INIT 0 -# define CMS_F_CMS_SIGNERINFO_CONTENT_SIGN 0 -# define CMS_F_CMS_SIGNERINFO_SIGN 0 -# define CMS_F_CMS_SIGNERINFO_VERIFY 0 -# define CMS_F_CMS_SIGNERINFO_VERIFY_CERT 0 -# define CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT 0 -# define CMS_F_CMS_SIGN_RECEIPT 0 -# define CMS_F_CMS_SI_CHECK_ATTRIBUTES 0 -# define CMS_F_CMS_STREAM 0 -# define CMS_F_CMS_UNCOMPRESS 0 -# define CMS_F_CMS_VERIFY 0 -# define CMS_F_KEK_UNWRAP_KEY 0 -# endif - -# ifndef OPENSSL_NO_COMP -/* - * COMP function codes. - */ -# define COMP_F_BIO_ZLIB_FLUSH 0 -# define COMP_F_BIO_ZLIB_NEW 0 -# define COMP_F_BIO_ZLIB_READ 0 -# define COMP_F_BIO_ZLIB_WRITE 0 -# define COMP_F_COMP_CTX_NEW 0 -# endif - -/* - * CONF function codes. - */ -# define CONF_F_CONF_DUMP_FP 0 -# define CONF_F_CONF_LOAD 0 -# define CONF_F_CONF_LOAD_FP 0 -# define CONF_F_CONF_PARSE_LIST 0 -# define CONF_F_DEF_LOAD 0 -# define CONF_F_DEF_LOAD_BIO 0 -# define CONF_F_GET_NEXT_FILE 0 -# define CONF_F_MODULE_ADD 0 -# define CONF_F_MODULE_INIT 0 -# define CONF_F_MODULE_LOAD_DSO 0 -# define CONF_F_MODULE_RUN 0 -# define CONF_F_NCONF_DUMP_BIO 0 -# define CONF_F_NCONF_DUMP_FP 0 -# define CONF_F_NCONF_GET_NUMBER_E 0 -# define CONF_F_NCONF_GET_SECTION 0 -# define CONF_F_NCONF_GET_STRING 0 -# define CONF_F_NCONF_LOAD 0 -# define CONF_F_NCONF_LOAD_BIO 0 -# define CONF_F_NCONF_LOAD_FP 0 -# define CONF_F_NCONF_NEW 0 -# define CONF_F_PROCESS_INCLUDE 0 -# define CONF_F_SSL_MODULE_INIT 0 -# define CONF_F_STR_COPY 0 - -/* - * CRYPTO function codes. - */ -# define CRYPTO_F_CMAC_CTX_NEW 0 -# define CRYPTO_F_CRYPTO_DUP_EX_DATA 0 -# define CRYPTO_F_CRYPTO_FREE_EX_DATA 0 -# define CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX 0 -# define CRYPTO_F_CRYPTO_MEMDUP 0 -# define CRYPTO_F_CRYPTO_NEW_EX_DATA 0 -# define CRYPTO_F_CRYPTO_OCB128_COPY_CTX 0 -# define CRYPTO_F_CRYPTO_OCB128_INIT 0 -# define CRYPTO_F_CRYPTO_SET_EX_DATA 0 -# define CRYPTO_F_GET_AND_LOCK 0 -# define CRYPTO_F_OPENSSL_ATEXIT 0 -# define CRYPTO_F_OPENSSL_BUF2HEXSTR 0 -# define CRYPTO_F_OPENSSL_FOPEN 0 -# define CRYPTO_F_OPENSSL_HEXSTR2BUF 0 -# define CRYPTO_F_OPENSSL_INIT_CRYPTO 0 -# define CRYPTO_F_OPENSSL_LH_NEW 0 -# define CRYPTO_F_OPENSSL_SK_DEEP_COPY 0 -# define CRYPTO_F_OPENSSL_SK_DUP 0 -# define CRYPTO_F_PKEY_HMAC_INIT 0 -# define CRYPTO_F_PKEY_POLY1305_INIT 0 -# define CRYPTO_F_PKEY_SIPHASH_INIT 0 -# define CRYPTO_F_SK_RESERVE 0 - -# ifndef OPENSSL_NO_CT -/* - * CT function codes. - */ -# define CT_F_CTLOG_NEW 0 -# define CT_F_CTLOG_NEW_FROM_BASE64 0 -# define CT_F_CTLOG_NEW_FROM_CONF 0 -# define CT_F_CTLOG_STORE_LOAD_CTX_NEW 0 -# define CT_F_CTLOG_STORE_LOAD_FILE 0 -# define CT_F_CTLOG_STORE_LOAD_LOG 0 -# define CT_F_CTLOG_STORE_NEW 0 -# define CT_F_CT_BASE64_DECODE 0 -# define CT_F_CT_POLICY_EVAL_CTX_NEW 0 -# define CT_F_CT_V1_LOG_ID_FROM_PKEY 0 -# define CT_F_I2O_SCT 0 -# define CT_F_I2O_SCT_LIST 0 -# define CT_F_I2O_SCT_SIGNATURE 0 -# define CT_F_O2I_SCT 0 -# define CT_F_O2I_SCT_LIST 0 -# define CT_F_O2I_SCT_SIGNATURE 0 -# define CT_F_SCT_CTX_NEW 0 -# define CT_F_SCT_CTX_VERIFY 0 -# define CT_F_SCT_NEW 0 -# define CT_F_SCT_NEW_FROM_BASE64 0 -# define CT_F_SCT_SET0_LOG_ID 0 -# define CT_F_SCT_SET1_EXTENSIONS 0 -# define CT_F_SCT_SET1_LOG_ID 0 -# define CT_F_SCT_SET1_SIGNATURE 0 -# define CT_F_SCT_SET_LOG_ENTRY_TYPE 0 -# define CT_F_SCT_SET_SIGNATURE_NID 0 -# define CT_F_SCT_SET_VERSION 0 -# endif - -# ifndef OPENSSL_NO_DH -/* - * DH function codes. - */ -# define DH_F_COMPUTE_KEY 0 -# define DH_F_DHPARAMS_PRINT_FP 0 -# define DH_F_DH_BUILTIN_GENPARAMS 0 -# define DH_F_DH_CHECK_EX 0 -# define DH_F_DH_CHECK_PARAMS_EX 0 -# define DH_F_DH_CHECK_PUB_KEY_EX 0 -# define DH_F_DH_CMS_DECRYPT 0 -# define DH_F_DH_CMS_SET_PEERKEY 0 -# define DH_F_DH_CMS_SET_SHARED_INFO 0 -# define DH_F_DH_METH_DUP 0 -# define DH_F_DH_METH_NEW 0 -# define DH_F_DH_METH_SET1_NAME 0 -# define DH_F_DH_NEW_BY_NID 0 -# define DH_F_DH_NEW_METHOD 0 -# define DH_F_DH_PARAM_DECODE 0 -# define DH_F_DH_PKEY_PUBLIC_CHECK 0 -# define DH_F_DH_PRIV_DECODE 0 -# define DH_F_DH_PRIV_ENCODE 0 -# define DH_F_DH_PUB_DECODE 0 -# define DH_F_DH_PUB_ENCODE 0 -# define DH_F_DO_DH_PRINT 0 -# define DH_F_GENERATE_KEY 0 -# define DH_F_PKEY_DH_CTRL_STR 0 -# define DH_F_PKEY_DH_DERIVE 0 -# define DH_F_PKEY_DH_INIT 0 -# define DH_F_PKEY_DH_KEYGEN 0 -# endif - -# ifndef OPENSSL_NO_DSA -/* - * DSA function codes. - */ -# define DSA_F_DSAPARAMS_PRINT 0 -# define DSA_F_DSAPARAMS_PRINT_FP 0 -# define DSA_F_DSA_BUILTIN_PARAMGEN 0 -# define DSA_F_DSA_BUILTIN_PARAMGEN2 0 -# define DSA_F_DSA_DO_SIGN 0 -# define DSA_F_DSA_DO_VERIFY 0 -# define DSA_F_DSA_METH_DUP 0 -# define DSA_F_DSA_METH_NEW 0 -# define DSA_F_DSA_METH_SET1_NAME 0 -# define DSA_F_DSA_NEW_METHOD 0 -# define DSA_F_DSA_PARAM_DECODE 0 -# define DSA_F_DSA_PRINT_FP 0 -# define DSA_F_DSA_PRIV_DECODE 0 -# define DSA_F_DSA_PRIV_ENCODE 0 -# define DSA_F_DSA_PUB_DECODE 0 -# define DSA_F_DSA_PUB_ENCODE 0 -# define DSA_F_DSA_SIGN 0 -# define DSA_F_DSA_SIGN_SETUP 0 -# define DSA_F_DSA_SIG_NEW 0 -# define DSA_F_OLD_DSA_PRIV_DECODE 0 -# define DSA_F_PKEY_DSA_CTRL 0 -# define DSA_F_PKEY_DSA_CTRL_STR 0 -# define DSA_F_PKEY_DSA_KEYGEN 0 -# endif - -# ifndef OPENSSL_NO_EC -/* - * EC function codes. - */ -# define EC_F_BN_TO_FELEM 0 -# define EC_F_D2I_ECPARAMETERS 0 -# define EC_F_D2I_ECPKPARAMETERS 0 -# define EC_F_D2I_ECPRIVATEKEY 0 -# define EC_F_DO_EC_KEY_PRINT 0 -# define EC_F_ECDH_CMS_DECRYPT 0 -# define EC_F_ECDH_CMS_SET_SHARED_INFO 0 -# define EC_F_ECDH_COMPUTE_KEY 0 -# define EC_F_ECDH_SIMPLE_COMPUTE_KEY 0 -# define EC_F_ECDSA_DO_SIGN_EX 0 -# define EC_F_ECDSA_DO_VERIFY 0 -# define EC_F_ECDSA_SIGN_EX 0 -# define EC_F_ECDSA_SIGN_SETUP 0 -# define EC_F_ECDSA_SIG_NEW 0 -# define EC_F_ECDSA_VERIFY 0 -# define EC_F_ECD_ITEM_VERIFY 0 -# define EC_F_ECKEY_PARAM2TYPE 0 -# define EC_F_ECKEY_PARAM_DECODE 0 -# define EC_F_ECKEY_PRIV_DECODE 0 -# define EC_F_ECKEY_PRIV_ENCODE 0 -# define EC_F_ECKEY_PUB_DECODE 0 -# define EC_F_ECKEY_PUB_ENCODE 0 -# define EC_F_ECKEY_TYPE2PARAM 0 -# define EC_F_ECPARAMETERS_PRINT 0 -# define EC_F_ECPARAMETERS_PRINT_FP 0 -# define EC_F_ECPKPARAMETERS_PRINT 0 -# define EC_F_ECPKPARAMETERS_PRINT_FP 0 -# define EC_F_ECP_NISTZ256_GET_AFFINE 0 -# define EC_F_ECP_NISTZ256_INV_MOD_ORD 0 -# define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE 0 -# define EC_F_ECP_NISTZ256_POINTS_MUL 0 -# define EC_F_ECP_NISTZ256_PRE_COMP_NEW 0 -# define EC_F_ECP_NISTZ256_WINDOWED_MUL 0 -# define EC_F_ECX_KEY_OP 0 -# define EC_F_ECX_PRIV_ENCODE 0 -# define EC_F_ECX_PUB_ENCODE 0 -# define EC_F_EC_ASN1_GROUP2CURVE 0 -# define EC_F_EC_ASN1_GROUP2FIELDID 0 -# define EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY 0 -# define EC_F_EC_GF2M_SIMPLE_FIELD_INV 0 -# define EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT 0 -# define EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE 0 -# define EC_F_EC_GF2M_SIMPLE_LADDER_POST 0 -# define EC_F_EC_GF2M_SIMPLE_LADDER_PRE 0 -# define EC_F_EC_GF2M_SIMPLE_OCT2POINT 0 -# define EC_F_EC_GF2M_SIMPLE_POINT2OCT 0 -# define EC_F_EC_GF2M_SIMPLE_POINTS_MUL 0 -# define EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES 0 -# define EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES 0 -# define EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES 0 -# define EC_F_EC_GFP_MONT_FIELD_DECODE 0 -# define EC_F_EC_GFP_MONT_FIELD_ENCODE 0 -# define EC_F_EC_GFP_MONT_FIELD_INV 0 -# define EC_F_EC_GFP_MONT_FIELD_MUL 0 -# define EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE 0 -# define EC_F_EC_GFP_MONT_FIELD_SQR 0 -# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE 0 -# define EC_F_EC_GFP_NISTP224_GROUP_SET_CURVE 0 -# define EC_F_EC_GFP_NISTP224_POINTS_MUL 0 -# define EC_F_EC_GFP_NISTP224_POINT_GET_AFFINE_COORDINATES 0 -# define EC_F_EC_GFP_NISTP256_GROUP_SET_CURVE 0 -# define EC_F_EC_GFP_NISTP256_POINTS_MUL 0 -# define EC_F_EC_GFP_NISTP256_POINT_GET_AFFINE_COORDINATES 0 -# define EC_F_EC_GFP_NISTP521_GROUP_SET_CURVE 0 -# define EC_F_EC_GFP_NISTP521_POINTS_MUL 0 -# define EC_F_EC_GFP_NISTP521_POINT_GET_AFFINE_COORDINATES 0 -# define EC_F_EC_GFP_NIST_FIELD_MUL 0 -# define EC_F_EC_GFP_NIST_FIELD_SQR 0 -# define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 0 -# define EC_F_EC_GFP_SIMPLE_BLIND_COORDINATES 0 -# define EC_F_EC_GFP_SIMPLE_FIELD_INV 0 -# define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 0 -# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 0 -# define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 0 -# define EC_F_EC_GFP_SIMPLE_OCT2POINT 0 -# define EC_F_EC_GFP_SIMPLE_POINT2OCT 0 -# define EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE 0 -# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES 0 -# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES 0 -# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES 0 -# define EC_F_EC_GROUP_CHECK 0 -# define EC_F_EC_GROUP_CHECK_DISCRIMINANT 0 -# define EC_F_EC_GROUP_COPY 0 -# define EC_F_EC_GROUP_GET_CURVE 0 -# define EC_F_EC_GROUP_GET_CURVE_GF2M 0 -# define EC_F_EC_GROUP_GET_CURVE_GFP 0 -# define EC_F_EC_GROUP_GET_DEGREE 0 -# define EC_F_EC_GROUP_GET_ECPARAMETERS 0 -# define EC_F_EC_GROUP_GET_ECPKPARAMETERS 0 -# define EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS 0 -# define EC_F_EC_GROUP_GET_TRINOMIAL_BASIS 0 -# define EC_F_EC_GROUP_NEW 0 -# define EC_F_EC_GROUP_NEW_BY_CURVE_NAME 0 -# define EC_F_EC_GROUP_NEW_FROM_DATA 0 -# define EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS 0 -# define EC_F_EC_GROUP_NEW_FROM_ECPKPARAMETERS 0 -# define EC_F_EC_GROUP_SET_CURVE 0 -# define EC_F_EC_GROUP_SET_CURVE_GF2M 0 -# define EC_F_EC_GROUP_SET_CURVE_GFP 0 -# define EC_F_EC_GROUP_SET_GENERATOR 0 -# define EC_F_EC_GROUP_SET_SEED 0 -# define EC_F_EC_KEY_CHECK_KEY 0 -# define EC_F_EC_KEY_COPY 0 -# define EC_F_EC_KEY_GENERATE_KEY 0 -# define EC_F_EC_KEY_NEW 0 -# define EC_F_EC_KEY_NEW_METHOD 0 -# define EC_F_EC_KEY_OCT2PRIV 0 -# define EC_F_EC_KEY_PRINT 0 -# define EC_F_EC_KEY_PRINT_FP 0 -# define EC_F_EC_KEY_PRIV2BUF 0 -# define EC_F_EC_KEY_PRIV2OCT 0 -# define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES 0 -# define EC_F_EC_KEY_SIMPLE_CHECK_KEY 0 -# define EC_F_EC_KEY_SIMPLE_OCT2PRIV 0 -# define EC_F_EC_KEY_SIMPLE_PRIV2OCT 0 -# define EC_F_EC_PKEY_CHECK 0 -# define EC_F_EC_PKEY_PARAM_CHECK 0 -# define EC_F_EC_POINTS_MAKE_AFFINE 0 -# define EC_F_EC_POINTS_MUL 0 -# define EC_F_EC_POINT_ADD 0 -# define EC_F_EC_POINT_BN2POINT 0 -# define EC_F_EC_POINT_CMP 0 -# define EC_F_EC_POINT_COPY 0 -# define EC_F_EC_POINT_DBL 0 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES 0 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M 0 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP 0 -# define EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP 0 -# define EC_F_EC_POINT_INVERT 0 -# define EC_F_EC_POINT_IS_AT_INFINITY 0 -# define EC_F_EC_POINT_IS_ON_CURVE 0 -# define EC_F_EC_POINT_MAKE_AFFINE 0 -# define EC_F_EC_POINT_NEW 0 -# define EC_F_EC_POINT_OCT2POINT 0 -# define EC_F_EC_POINT_POINT2BUF 0 -# define EC_F_EC_POINT_POINT2OCT 0 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES 0 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M 0 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP 0 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES 0 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M 0 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP 0 -# define EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP 0 -# define EC_F_EC_POINT_SET_TO_INFINITY 0 -# define EC_F_EC_PRE_COMP_NEW 0 -# define EC_F_EC_SCALAR_MUL_LADDER 0 -# define EC_F_EC_WNAF_MUL 0 -# define EC_F_EC_WNAF_PRECOMPUTE_MULT 0 -# define EC_F_I2D_ECPARAMETERS 0 -# define EC_F_I2D_ECPKPARAMETERS 0 -# define EC_F_I2D_ECPRIVATEKEY 0 -# define EC_F_I2O_ECPUBLICKEY 0 -# define EC_F_NISTP224_PRE_COMP_NEW 0 -# define EC_F_NISTP256_PRE_COMP_NEW 0 -# define EC_F_NISTP521_PRE_COMP_NEW 0 -# define EC_F_O2I_ECPUBLICKEY 0 -# define EC_F_OLD_EC_PRIV_DECODE 0 -# define EC_F_OSSL_ECDH_COMPUTE_KEY 0 -# define EC_F_OSSL_ECDSA_SIGN_SIG 0 -# define EC_F_OSSL_ECDSA_VERIFY_SIG 0 -# define EC_F_PKEY_ECD_CTRL 0 -# define EC_F_PKEY_ECD_DIGESTSIGN 0 -# define EC_F_PKEY_ECD_DIGESTSIGN25519 0 -# define EC_F_PKEY_ECD_DIGESTSIGN448 0 -# define EC_F_PKEY_ECX_DERIVE 0 -# define EC_F_PKEY_EC_CTRL 0 -# define EC_F_PKEY_EC_CTRL_STR 0 -# define EC_F_PKEY_EC_DERIVE 0 -# define EC_F_PKEY_EC_INIT 0 -# define EC_F_PKEY_EC_KDF_DERIVE 0 -# define EC_F_PKEY_EC_KEYGEN 0 -# define EC_F_PKEY_EC_PARAMGEN 0 -# define EC_F_PKEY_EC_SIGN 0 -# define EC_F_VALIDATE_ECX_DERIVE 0 -# endif - -# ifndef OPENSSL_NO_ENGINE -/* - * ENGINE function codes. - */ -# define ENGINE_F_DIGEST_UPDATE 0 -# define ENGINE_F_DYNAMIC_CTRL 0 -# define ENGINE_F_DYNAMIC_GET_DATA_CTX 0 -# define ENGINE_F_DYNAMIC_LOAD 0 -# define ENGINE_F_DYNAMIC_SET_DATA_CTX 0 -# define ENGINE_F_ENGINE_ADD 0 -# define ENGINE_F_ENGINE_BY_ID 0 -# define ENGINE_F_ENGINE_CMD_IS_EXECUTABLE 0 -# define ENGINE_F_ENGINE_CTRL 0 -# define ENGINE_F_ENGINE_CTRL_CMD 0 -# define ENGINE_F_ENGINE_CTRL_CMD_STRING 0 -# define ENGINE_F_ENGINE_FINISH 0 -# define ENGINE_F_ENGINE_GET_CIPHER 0 -# define ENGINE_F_ENGINE_GET_DIGEST 0 -# define ENGINE_F_ENGINE_GET_FIRST 0 -# define ENGINE_F_ENGINE_GET_LAST 0 -# define ENGINE_F_ENGINE_GET_NEXT 0 -# define ENGINE_F_ENGINE_GET_PKEY_ASN1_METH 0 -# define ENGINE_F_ENGINE_GET_PKEY_METH 0 -# define ENGINE_F_ENGINE_GET_PREV 0 -# define ENGINE_F_ENGINE_INIT 0 -# define ENGINE_F_ENGINE_LIST_ADD 0 -# define ENGINE_F_ENGINE_LIST_REMOVE 0 -# define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY 0 -# define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY 0 -# define ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT 0 -# define ENGINE_F_ENGINE_NEW 0 -# define ENGINE_F_ENGINE_PKEY_ASN1_FIND_STR 0 -# define ENGINE_F_ENGINE_REMOVE 0 -# define ENGINE_F_ENGINE_SET_DEFAULT_STRING 0 -# define ENGINE_F_ENGINE_SET_ID 0 -# define ENGINE_F_ENGINE_SET_NAME 0 -# define ENGINE_F_ENGINE_TABLE_REGISTER 0 -# define ENGINE_F_ENGINE_UNLOCKED_FINISH 0 -# define ENGINE_F_ENGINE_UP_REF 0 -# define ENGINE_F_INT_CLEANUP_ITEM 0 -# define ENGINE_F_INT_CTRL_HELPER 0 -# define ENGINE_F_INT_ENGINE_CONFIGURE 0 -# define ENGINE_F_INT_ENGINE_MODULE_INIT 0 -# define ENGINE_F_OSSL_HMAC_INIT 0 -# endif - -/* - * EVP function codes. - */ -# define EVP_F_AESNI_INIT_KEY 0 -# define EVP_F_AESNI_XTS_INIT_KEY 0 -# define EVP_F_AES_GCM_CTRL 0 -# define EVP_F_AES_INIT_KEY 0 -# define EVP_F_AES_OCB_CIPHER 0 -# define EVP_F_AES_T4_INIT_KEY 0 -# define EVP_F_AES_T4_XTS_INIT_KEY 0 -# define EVP_F_AES_WRAP_CIPHER 0 -# define EVP_F_AES_XTS_INIT_KEY 0 -# define EVP_F_ALG_MODULE_INIT 0 -# define EVP_F_ARIA_CCM_INIT_KEY 0 -# define EVP_F_ARIA_GCM_CTRL 0 -# define EVP_F_ARIA_GCM_INIT_KEY 0 -# define EVP_F_ARIA_INIT_KEY 0 -# define EVP_F_B64_NEW 0 -# define EVP_F_CAMELLIA_INIT_KEY 0 -# define EVP_F_CHACHA20_POLY1305_CTRL 0 -# define EVP_F_CMLL_T4_INIT_KEY 0 -# define EVP_F_DES_EDE3_WRAP_CIPHER 0 -# define EVP_F_DO_SIGVER_INIT 0 -# define EVP_F_ENC_NEW 0 -# define EVP_F_EVP_CIPHERINIT_EX 0 -# define EVP_F_EVP_CIPHER_ASN1_TO_PARAM 0 -# define EVP_F_EVP_CIPHER_CTX_COPY 0 -# define EVP_F_EVP_CIPHER_CTX_CTRL 0 -# define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 0 -# define EVP_F_EVP_CIPHER_PARAM_TO_ASN1 0 -# define EVP_F_EVP_DECRYPTFINAL_EX 0 -# define EVP_F_EVP_DECRYPTUPDATE 0 -# define EVP_F_EVP_DIGESTFINALXOF 0 -# define EVP_F_EVP_DIGESTINIT_EX 0 -# define EVP_F_EVP_ENCRYPTDECRYPTUPDATE 0 -# define EVP_F_EVP_ENCRYPTFINAL_EX 0 -# define EVP_F_EVP_ENCRYPTUPDATE 0 -# define EVP_F_EVP_MD_CTX_COPY_EX 0 -# define EVP_F_EVP_MD_SIZE 0 -# define EVP_F_EVP_OPENINIT 0 -# define EVP_F_EVP_PBE_ALG_ADD 0 -# define EVP_F_EVP_PBE_ALG_ADD_TYPE 0 -# define EVP_F_EVP_PBE_CIPHERINIT 0 -# define EVP_F_EVP_PBE_SCRYPT 0 -# define EVP_F_EVP_PKCS82PKEY 0 -# define EVP_F_EVP_PKEY2PKCS8 0 -# define EVP_F_EVP_PKEY_ASN1_ADD0 0 -# define EVP_F_EVP_PKEY_CHECK 0 -# define EVP_F_EVP_PKEY_COPY_PARAMETERS 0 -# define EVP_F_EVP_PKEY_CTX_CTRL 0 -# define EVP_F_EVP_PKEY_CTX_CTRL_STR 0 -# define EVP_F_EVP_PKEY_CTX_DUP 0 -# define EVP_F_EVP_PKEY_CTX_MD 0 -# define EVP_F_EVP_PKEY_DECRYPT 0 -# define EVP_F_EVP_PKEY_DECRYPT_INIT 0 -# define EVP_F_EVP_PKEY_DECRYPT_OLD 0 -# define EVP_F_EVP_PKEY_DERIVE 0 -# define EVP_F_EVP_PKEY_DERIVE_INIT 0 -# define EVP_F_EVP_PKEY_DERIVE_SET_PEER 0 -# define EVP_F_EVP_PKEY_ENCRYPT 0 -# define EVP_F_EVP_PKEY_ENCRYPT_INIT 0 -# define EVP_F_EVP_PKEY_ENCRYPT_OLD 0 -# define EVP_F_EVP_PKEY_GET0_DH 0 -# define EVP_F_EVP_PKEY_GET0_DSA 0 -# define EVP_F_EVP_PKEY_GET0_EC_KEY 0 -# define EVP_F_EVP_PKEY_GET0_HMAC 0 -# define EVP_F_EVP_PKEY_GET0_POLY1305 0 -# define EVP_F_EVP_PKEY_GET0_RSA 0 -# define EVP_F_EVP_PKEY_GET0_SIPHASH 0 -# define EVP_F_EVP_PKEY_GET_RAW_PRIVATE_KEY 0 -# define EVP_F_EVP_PKEY_GET_RAW_PUBLIC_KEY 0 -# define EVP_F_EVP_PKEY_KEYGEN 0 -# define EVP_F_EVP_PKEY_KEYGEN_INIT 0 -# define EVP_F_EVP_PKEY_METH_ADD0 0 -# define EVP_F_EVP_PKEY_METH_NEW 0 -# define EVP_F_EVP_PKEY_NEW 0 -# define EVP_F_EVP_PKEY_NEW_CMAC_KEY 0 -# define EVP_F_EVP_PKEY_NEW_RAW_PRIVATE_KEY 0 -# define EVP_F_EVP_PKEY_NEW_RAW_PUBLIC_KEY 0 -# define EVP_F_EVP_PKEY_PARAMGEN 0 -# define EVP_F_EVP_PKEY_PARAMGEN_INIT 0 -# define EVP_F_EVP_PKEY_PARAM_CHECK 0 -# define EVP_F_EVP_PKEY_PUBLIC_CHECK 0 -# define EVP_F_EVP_PKEY_SET1_ENGINE 0 -# define EVP_F_EVP_PKEY_SET_ALIAS_TYPE 0 -# define EVP_F_EVP_PKEY_SIGN 0 -# define EVP_F_EVP_PKEY_SIGN_INIT 0 -# define EVP_F_EVP_PKEY_VERIFY 0 -# define EVP_F_EVP_PKEY_VERIFY_INIT 0 -# define EVP_F_EVP_PKEY_VERIFY_RECOVER 0 -# define EVP_F_EVP_PKEY_VERIFY_RECOVER_INIT 0 -# define EVP_F_EVP_SIGNFINAL 0 -# define EVP_F_EVP_VERIFYFINAL 0 -# define EVP_F_INT_CTX_NEW 0 -# define EVP_F_OK_NEW 0 -# define EVP_F_PKCS5_PBE_KEYIVGEN 0 -# define EVP_F_PKCS5_V2_PBE_KEYIVGEN 0 -# define EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN 0 -# define EVP_F_PKCS5_V2_SCRYPT_KEYIVGEN 0 -# define EVP_F_PKEY_SET_TYPE 0 -# define EVP_F_RC2_MAGIC_TO_METH 0 -# define EVP_F_RC5_CTRL 0 -# define EVP_F_R_32_12_16_INIT_KEY 0 -# define EVP_F_S390X_AES_GCM_CTRL 0 -# define EVP_F_UPDATE 0 - -/* - * KDF function codes. - */ -# define KDF_F_PKEY_HKDF_CTRL_STR 0 -# define KDF_F_PKEY_HKDF_DERIVE 0 -# define KDF_F_PKEY_HKDF_INIT 0 -# define KDF_F_PKEY_SCRYPT_CTRL_STR 0 -# define KDF_F_PKEY_SCRYPT_CTRL_UINT64 0 -# define KDF_F_PKEY_SCRYPT_DERIVE 0 -# define KDF_F_PKEY_SCRYPT_INIT 0 -# define KDF_F_PKEY_SCRYPT_SET_MEMBUF 0 -# define KDF_F_PKEY_TLS1_PRF_CTRL_STR 0 -# define KDF_F_PKEY_TLS1_PRF_DERIVE 0 -# define KDF_F_PKEY_TLS1_PRF_INIT 0 -# define KDF_F_TLS1_PRF_ALG 0 - -/* - * KDF reason codes. - */ -# define KDF_R_INVALID_DIGEST 0 -# define KDF_R_MISSING_ITERATION_COUNT 0 -# define KDF_R_MISSING_KEY 0 -# define KDF_R_MISSING_MESSAGE_DIGEST 0 -# define KDF_R_MISSING_PARAMETER 0 -# define KDF_R_MISSING_PASS 0 -# define KDF_R_MISSING_SALT 0 -# define KDF_R_MISSING_SECRET 0 -# define KDF_R_MISSING_SEED 0 -# define KDF_R_UNKNOWN_PARAMETER_TYPE 0 -# define KDF_R_VALUE_ERROR 0 -# define KDF_R_VALUE_MISSING 0 - -/* - * OBJ function codes. - */ -# define OBJ_F_OBJ_ADD_OBJECT 0 -# define OBJ_F_OBJ_ADD_SIGID 0 -# define OBJ_F_OBJ_CREATE 0 -# define OBJ_F_OBJ_DUP 0 -# define OBJ_F_OBJ_NAME_NEW_INDEX 0 -# define OBJ_F_OBJ_NID2LN 0 -# define OBJ_F_OBJ_NID2OBJ 0 -# define OBJ_F_OBJ_NID2SN 0 -# define OBJ_F_OBJ_TXT2OBJ 0 - -# ifndef OPENSSL_NO_OCSP -/* - * OCSP function codes. - */ -# define OCSP_F_D2I_OCSP_NONCE 0 -# define OCSP_F_OCSP_BASIC_ADD1_STATUS 0 -# define OCSP_F_OCSP_BASIC_SIGN 0 -# define OCSP_F_OCSP_BASIC_SIGN_CTX 0 -# define OCSP_F_OCSP_BASIC_VERIFY 0 -# define OCSP_F_OCSP_CERT_ID_NEW 0 -# define OCSP_F_OCSP_CHECK_DELEGATED 0 -# define OCSP_F_OCSP_CHECK_IDS 0 -# define OCSP_F_OCSP_CHECK_ISSUER 0 -# define OCSP_F_OCSP_CHECK_VALIDITY 0 -# define OCSP_F_OCSP_MATCH_ISSUERID 0 -# define OCSP_F_OCSP_PARSE_URL 0 -# define OCSP_F_OCSP_REQUEST_SIGN 0 -# define OCSP_F_OCSP_REQUEST_VERIFY 0 -# define OCSP_F_OCSP_RESPONSE_GET1_BASIC 0 -# define OCSP_F_PARSE_HTTP_LINE1 0 -# endif - -/* - * PEM function codes. - */ -# define PEM_F_B2I_DSS 0 -# define PEM_F_B2I_PVK_BIO 0 -# define PEM_F_B2I_RSA 0 -# define PEM_F_CHECK_BITLEN_DSA 0 -# define PEM_F_CHECK_BITLEN_RSA 0 -# define PEM_F_D2I_PKCS8PRIVATEKEY_BIO 0 -# define PEM_F_D2I_PKCS8PRIVATEKEY_FP 0 -# define PEM_F_DO_B2I 0 -# define PEM_F_DO_B2I_BIO 0 -# define PEM_F_DO_BLOB_HEADER 0 -# define PEM_F_DO_I2B 0 -# define PEM_F_DO_PK8PKEY 0 -# define PEM_F_DO_PK8PKEY_FP 0 -# define PEM_F_DO_PVK_BODY 0 -# define PEM_F_DO_PVK_HEADER 0 -# define PEM_F_GET_HEADER_AND_DATA 0 -# define PEM_F_GET_NAME 0 -# define PEM_F_I2B_PVK 0 -# define PEM_F_I2B_PVK_BIO 0 -# define PEM_F_LOAD_IV 0 -# define PEM_F_PEM_ASN1_READ 0 -# define PEM_F_PEM_ASN1_READ_BIO 0 -# define PEM_F_PEM_ASN1_WRITE 0 -# define PEM_F_PEM_ASN1_WRITE_BIO 0 -# define PEM_F_PEM_DEF_CALLBACK 0 -# define PEM_F_PEM_DO_HEADER 0 -# define PEM_F_PEM_GET_EVP_CIPHER_INFO 0 -# define PEM_F_PEM_READ 0 -# define PEM_F_PEM_READ_BIO 0 -# define PEM_F_PEM_READ_BIO_DHPARAMS 0 -# define PEM_F_PEM_READ_BIO_EX 0 -# define PEM_F_PEM_READ_BIO_PARAMETERS 0 -# define PEM_F_PEM_READ_BIO_PRIVATEKEY 0 -# define PEM_F_PEM_READ_DHPARAMS 0 -# define PEM_F_PEM_READ_PRIVATEKEY 0 -# define PEM_F_PEM_SIGNFINAL 0 -# define PEM_F_PEM_WRITE 0 -# define PEM_F_PEM_WRITE_BIO 0 -# define PEM_F_PEM_WRITE_BIO_PRIVATEKEY_TRADITIONAL 0 -# define PEM_F_PEM_WRITE_PRIVATEKEY 0 -# define PEM_F_PEM_X509_INFO_READ 0 -# define PEM_F_PEM_X509_INFO_READ_BIO 0 -# define PEM_F_PEM_X509_INFO_WRITE_BIO 0 - -/* - * PKCS12 function codes. - */ -# define PKCS12_F_OPENSSL_ASC2UNI 0 -# define PKCS12_F_OPENSSL_UNI2ASC 0 -# define PKCS12_F_OPENSSL_UNI2UTF8 0 -# define PKCS12_F_OPENSSL_UTF82UNI 0 -# define PKCS12_F_PKCS12_CREATE 0 -# define PKCS12_F_PKCS12_GEN_MAC 0 -# define PKCS12_F_PKCS12_INIT 0 -# define PKCS12_F_PKCS12_ITEM_DECRYPT_D2I 0 -# define PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT 0 -# define PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG 0 -# define PKCS12_F_PKCS12_KEY_GEN_ASC 0 -# define PKCS12_F_PKCS12_KEY_GEN_UNI 0 -# define PKCS12_F_PKCS12_KEY_GEN_UTF8 0 -# define PKCS12_F_PKCS12_NEWPASS 0 -# define PKCS12_F_PKCS12_PACK_P7DATA 0 -# define PKCS12_F_PKCS12_PACK_P7ENCDATA 0 -# define PKCS12_F_PKCS12_PARSE 0 -# define PKCS12_F_PKCS12_PBE_CRYPT 0 -# define PKCS12_F_PKCS12_PBE_KEYIVGEN 0 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_P8INF 0 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_PKCS8 0 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE_PKCS8_ENCRYPT 0 -# define PKCS12_F_PKCS12_SETUP_MAC 0 -# define PKCS12_F_PKCS12_SET_MAC 0 -# define PKCS12_F_PKCS12_UNPACK_AUTHSAFES 0 -# define PKCS12_F_PKCS12_UNPACK_P7DATA 0 -# define PKCS12_F_PKCS12_VERIFY_MAC 0 -# define PKCS12_F_PKCS8_ENCRYPT 0 -# define PKCS12_F_PKCS8_SET0_PBE 0 - -/* - * PKCS7 function codes. - */ -# define PKCS7_F_DO_PKCS7_SIGNED_ATTRIB 0 -# define PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME 0 -# define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP 0 -# define PKCS7_F_PKCS7_ADD_CERTIFICATE 0 -# define PKCS7_F_PKCS7_ADD_CRL 0 -# define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 0 -# define PKCS7_F_PKCS7_ADD_SIGNATURE 0 -# define PKCS7_F_PKCS7_ADD_SIGNER 0 -# define PKCS7_F_PKCS7_BIO_ADD_DIGEST 0 -# define PKCS7_F_PKCS7_COPY_EXISTING_DIGEST 0 -# define PKCS7_F_PKCS7_CTRL 0 -# define PKCS7_F_PKCS7_DATADECODE 0 -# define PKCS7_F_PKCS7_DATAFINAL 0 -# define PKCS7_F_PKCS7_DATAINIT 0 -# define PKCS7_F_PKCS7_DATAVERIFY 0 -# define PKCS7_F_PKCS7_DECRYPT 0 -# define PKCS7_F_PKCS7_DECRYPT_RINFO 0 -# define PKCS7_F_PKCS7_ENCODE_RINFO 0 -# define PKCS7_F_PKCS7_ENCRYPT 0 -# define PKCS7_F_PKCS7_FINAL 0 -# define PKCS7_F_PKCS7_FIND_DIGEST 0 -# define PKCS7_F_PKCS7_GET0_SIGNERS 0 -# define PKCS7_F_PKCS7_RECIP_INFO_SET 0 -# define PKCS7_F_PKCS7_SET_CIPHER 0 -# define PKCS7_F_PKCS7_SET_CONTENT 0 -# define PKCS7_F_PKCS7_SET_DIGEST 0 -# define PKCS7_F_PKCS7_SET_TYPE 0 -# define PKCS7_F_PKCS7_SIGN 0 -# define PKCS7_F_PKCS7_SIGNATUREVERIFY 0 -# define PKCS7_F_PKCS7_SIGNER_INFO_SET 0 -# define PKCS7_F_PKCS7_SIGNER_INFO_SIGN 0 -# define PKCS7_F_PKCS7_SIGN_ADD_SIGNER 0 -# define PKCS7_F_PKCS7_SIMPLE_SMIMECAP 0 -# define PKCS7_F_PKCS7_VERIFY 0 - -/* - * RAND function codes. - */ -# define RAND_F_DATA_COLLECT_METHOD 0 -# define RAND_F_DRBG_BYTES 0 -# define RAND_F_DRBG_GET_ENTROPY 0 -# define RAND_F_DRBG_SETUP 0 -# define RAND_F_GET_ENTROPY 0 -# define RAND_F_RAND_BYTES 0 -# define RAND_F_RAND_DRBG_ENABLE_LOCKING 0 -# define RAND_F_RAND_DRBG_GENERATE 0 -# define RAND_F_RAND_DRBG_GET_ENTROPY 0 -# define RAND_F_RAND_DRBG_GET_NONCE 0 -# define RAND_F_RAND_DRBG_INSTANTIATE 0 -# define RAND_F_RAND_DRBG_NEW 0 -# define RAND_F_RAND_DRBG_RESEED 0 -# define RAND_F_RAND_DRBG_RESTART 0 -# define RAND_F_RAND_DRBG_SET 0 -# define RAND_F_RAND_DRBG_SET_DEFAULTS 0 -# define RAND_F_RAND_DRBG_UNINSTANTIATE 0 -# define RAND_F_RAND_LOAD_FILE 0 -# define RAND_F_RAND_POOL_ACQUIRE_ENTROPY 0 -# define RAND_F_RAND_POOL_ADD 0 -# define RAND_F_RAND_POOL_ADD_BEGIN 0 -# define RAND_F_RAND_POOL_ADD_END 0 -# define RAND_F_RAND_POOL_ATTACH 0 -# define RAND_F_RAND_POOL_BYTES_NEEDED 0 -# define RAND_F_RAND_POOL_GROW 0 -# define RAND_F_RAND_POOL_NEW 0 -# define RAND_F_RAND_PSEUDO_BYTES 0 -# define RAND_F_RAND_WRITE_FILE 0 - -/* - * RSA function codes. - */ -# define RSA_F_CHECK_PADDING_MD 0 -# define RSA_F_ENCODE_PKCS1 0 -# define RSA_F_INT_RSA_VERIFY 0 -# define RSA_F_OLD_RSA_PRIV_DECODE 0 -# define RSA_F_PKEY_PSS_INIT 0 -# define RSA_F_PKEY_RSA_CTRL 0 -# define RSA_F_PKEY_RSA_CTRL_STR 0 -# define RSA_F_PKEY_RSA_SIGN 0 -# define RSA_F_PKEY_RSA_VERIFY 0 -# define RSA_F_PKEY_RSA_VERIFYRECOVER 0 -# define RSA_F_RSA_ALGOR_TO_MD 0 -# define RSA_F_RSA_BUILTIN_KEYGEN 0 -# define RSA_F_RSA_CHECK_KEY 0 -# define RSA_F_RSA_CHECK_KEY_EX 0 -# define RSA_F_RSA_CMS_DECRYPT 0 -# define RSA_F_RSA_CMS_VERIFY 0 -# define RSA_F_RSA_ITEM_VERIFY 0 -# define RSA_F_RSA_METH_DUP 0 -# define RSA_F_RSA_METH_NEW 0 -# define RSA_F_RSA_METH_SET1_NAME 0 -# define RSA_F_RSA_MGF1_TO_MD 0 -# define RSA_F_RSA_MULTIP_INFO_NEW 0 -# define RSA_F_RSA_NEW_METHOD 0 -# define RSA_F_RSA_NULL 0 -# define RSA_F_RSA_NULL_PRIVATE_DECRYPT 0 -# define RSA_F_RSA_NULL_PRIVATE_ENCRYPT 0 -# define RSA_F_RSA_NULL_PUBLIC_DECRYPT 0 -# define RSA_F_RSA_NULL_PUBLIC_ENCRYPT 0 -# define RSA_F_RSA_OSSL_PRIVATE_DECRYPT 0 -# define RSA_F_RSA_OSSL_PRIVATE_ENCRYPT 0 -# define RSA_F_RSA_OSSL_PUBLIC_DECRYPT 0 -# define RSA_F_RSA_OSSL_PUBLIC_ENCRYPT 0 -# define RSA_F_RSA_PADDING_ADD_NONE 0 -# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP 0 -# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1 0 -# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS 0 -# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS_MGF1 0 -# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1 0 -# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_2 0 -# define RSA_F_RSA_PADDING_ADD_SSLV23 0 -# define RSA_F_RSA_PADDING_ADD_X931 0 -# define RSA_F_RSA_PADDING_CHECK_NONE 0 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP 0 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1 0 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1 0 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2 0 -# define RSA_F_RSA_PADDING_CHECK_SSLV23 0 -# define RSA_F_RSA_PADDING_CHECK_X931 0 -# define RSA_F_RSA_PARAM_DECODE 0 -# define RSA_F_RSA_PRINT 0 -# define RSA_F_RSA_PRINT_FP 0 -# define RSA_F_RSA_PRIV_DECODE 0 -# define RSA_F_RSA_PRIV_ENCODE 0 -# define RSA_F_RSA_PSS_GET_PARAM 0 -# define RSA_F_RSA_PSS_TO_CTX 0 -# define RSA_F_RSA_PUB_DECODE 0 -# define RSA_F_RSA_SETUP_BLINDING 0 -# define RSA_F_RSA_SIGN 0 -# define RSA_F_RSA_SIGN_ASN1_OCTET_STRING 0 -# define RSA_F_RSA_VERIFY 0 -# define RSA_F_RSA_VERIFY_ASN1_OCTET_STRING 0 -# define RSA_F_RSA_VERIFY_PKCS1_PSS_MGF1 0 -# define RSA_F_SETUP_TBUF 0 - -/* - * OSSL_STORE function codes. - */ -# define OSSL_STORE_F_FILE_CTRL 0 -# define OSSL_STORE_F_FILE_FIND 0 -# define OSSL_STORE_F_FILE_GET_PASS 0 -# define OSSL_STORE_F_FILE_LOAD 0 -# define OSSL_STORE_F_FILE_LOAD_TRY_DECODE 0 -# define OSSL_STORE_F_FILE_NAME_TO_URI 0 -# define OSSL_STORE_F_FILE_OPEN 0 -# define OSSL_STORE_F_OSSL_STORE_ATTACH_PEM_BIO 0 -# define OSSL_STORE_F_OSSL_STORE_EXPECT 0 -# define OSSL_STORE_F_OSSL_STORE_FILE_ATTACH_PEM_BIO_INT 0 -# define OSSL_STORE_F_OSSL_STORE_FIND 0 -# define OSSL_STORE_F_OSSL_STORE_GET0_LOADER_INT 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_CERT 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_CRL 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_NAME 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_NAME_DESCRIPTION 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_PARAMS 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_PKEY 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_CERT 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_CRL 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_EMBEDDED 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_NAME 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_PARAMS 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_PKEY 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_SET0_NAME_DESCRIPTION 0 -# define OSSL_STORE_F_OSSL_STORE_INIT_ONCE 0 -# define OSSL_STORE_F_OSSL_STORE_LOADER_NEW 0 -# define OSSL_STORE_F_OSSL_STORE_OPEN 0 -# define OSSL_STORE_F_OSSL_STORE_OPEN_INT 0 -# define OSSL_STORE_F_OSSL_STORE_REGISTER_LOADER_INT 0 -# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_ALIAS 0 -# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_ISSUER_SERIAL 0 -# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_KEY_FINGERPRINT 0 -# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_NAME 0 -# define OSSL_STORE_F_OSSL_STORE_UNREGISTER_LOADER_INT 0 -# define OSSL_STORE_F_TRY_DECODE_PARAMS 0 -# define OSSL_STORE_F_TRY_DECODE_PKCS12 0 -# define OSSL_STORE_F_TRY_DECODE_PKCS8ENCRYPTED 0 - -# ifndef OPENSSL_NO_TS -/* - * TS function codes. - */ -# define TS_F_DEF_SERIAL_CB 0 -# define TS_F_DEF_TIME_CB 0 -# define TS_F_ESS_ADD_SIGNING_CERT 0 -# define TS_F_ESS_ADD_SIGNING_CERT_V2 0 -# define TS_F_ESS_CERT_ID_NEW_INIT 0 -# define TS_F_ESS_CERT_ID_V2_NEW_INIT 0 -# define TS_F_ESS_SIGNING_CERT_NEW_INIT 0 -# define TS_F_ESS_SIGNING_CERT_V2_NEW_INIT 0 -# define TS_F_INT_TS_RESP_VERIFY_TOKEN 0 -# define TS_F_PKCS7_TO_TS_TST_INFO 0 -# define TS_F_TS_ACCURACY_SET_MICROS 0 -# define TS_F_TS_ACCURACY_SET_MILLIS 0 -# define TS_F_TS_ACCURACY_SET_SECONDS 0 -# define TS_F_TS_CHECK_IMPRINTS 0 -# define TS_F_TS_CHECK_NONCES 0 -# define TS_F_TS_CHECK_POLICY 0 -# define TS_F_TS_CHECK_SIGNING_CERTS 0 -# define TS_F_TS_CHECK_STATUS_INFO 0 -# define TS_F_TS_COMPUTE_IMPRINT 0 -# define TS_F_TS_CONF_INVALID 0 -# define TS_F_TS_CONF_LOAD_CERT 0 -# define TS_F_TS_CONF_LOAD_CERTS 0 -# define TS_F_TS_CONF_LOAD_KEY 0 -# define TS_F_TS_CONF_LOOKUP_FAIL 0 -# define TS_F_TS_CONF_SET_DEFAULT_ENGINE 0 -# define TS_F_TS_GET_STATUS_TEXT 0 -# define TS_F_TS_MSG_IMPRINT_SET_ALGO 0 -# define TS_F_TS_REQ_SET_MSG_IMPRINT 0 -# define TS_F_TS_REQ_SET_NONCE 0 -# define TS_F_TS_REQ_SET_POLICY_ID 0 -# define TS_F_TS_RESP_CREATE_RESPONSE 0 -# define TS_F_TS_RESP_CREATE_TST_INFO 0 -# define TS_F_TS_RESP_CTX_ADD_FAILURE_INFO 0 -# define TS_F_TS_RESP_CTX_ADD_MD 0 -# define TS_F_TS_RESP_CTX_ADD_POLICY 0 -# define TS_F_TS_RESP_CTX_NEW 0 -# define TS_F_TS_RESP_CTX_SET_ACCURACY 0 -# define TS_F_TS_RESP_CTX_SET_CERTS 0 -# define TS_F_TS_RESP_CTX_SET_DEF_POLICY 0 -# define TS_F_TS_RESP_CTX_SET_SIGNER_CERT 0 -# define TS_F_TS_RESP_CTX_SET_STATUS_INFO 0 -# define TS_F_TS_RESP_GET_POLICY 0 -# define TS_F_TS_RESP_SET_GENTIME_WITH_PRECISION 0 -# define TS_F_TS_RESP_SET_STATUS_INFO 0 -# define TS_F_TS_RESP_SET_TST_INFO 0 -# define TS_F_TS_RESP_SIGN 0 -# define TS_F_TS_RESP_VERIFY_SIGNATURE 0 -# define TS_F_TS_TST_INFO_SET_ACCURACY 0 -# define TS_F_TS_TST_INFO_SET_MSG_IMPRINT 0 -# define TS_F_TS_TST_INFO_SET_NONCE 0 -# define TS_F_TS_TST_INFO_SET_POLICY_ID 0 -# define TS_F_TS_TST_INFO_SET_SERIAL 0 -# define TS_F_TS_TST_INFO_SET_TIME 0 -# define TS_F_TS_TST_INFO_SET_TSA 0 -# define TS_F_TS_VERIFY 0 -# define TS_F_TS_VERIFY_CERT 0 -# define TS_F_TS_VERIFY_CTX_NEW 0 -# endif - -/* - * UI function codes. - */ -# define UI_F_CLOSE_CONSOLE 0 -# define UI_F_ECHO_CONSOLE 0 -# define UI_F_GENERAL_ALLOCATE_BOOLEAN 0 -# define UI_F_GENERAL_ALLOCATE_PROMPT 0 -# define UI_F_NOECHO_CONSOLE 0 -# define UI_F_OPEN_CONSOLE 0 -# define UI_F_UI_CONSTRUCT_PROMPT 0 -# define UI_F_UI_CREATE_METHOD 0 -# define UI_F_UI_CTRL 0 -# define UI_F_UI_DUP_ERROR_STRING 0 -# define UI_F_UI_DUP_INFO_STRING 0 -# define UI_F_UI_DUP_INPUT_BOOLEAN 0 -# define UI_F_UI_DUP_INPUT_STRING 0 -# define UI_F_UI_DUP_USER_DATA 0 -# define UI_F_UI_DUP_VERIFY_STRING 0 -# define UI_F_UI_GET0_RESULT 0 -# define UI_F_UI_GET_RESULT_LENGTH 0 -# define UI_F_UI_NEW_METHOD 0 -# define UI_F_UI_PROCESS 0 -# define UI_F_UI_SET_RESULT 0 -# define UI_F_UI_SET_RESULT_EX 0 - -/* - * X509 function codes. - */ -# define X509_F_ADD_CERT_DIR 0 -# define X509_F_BUILD_CHAIN 0 -# define X509_F_BY_FILE_CTRL 0 -# define X509_F_CHECK_NAME_CONSTRAINTS 0 -# define X509_F_CHECK_POLICY 0 -# define X509_F_DANE_I2D 0 -# define X509_F_DIR_CTRL 0 -# define X509_F_GET_CERT_BY_SUBJECT 0 -# define X509_F_I2D_X509_AUX 0 -# define X509_F_LOOKUP_CERTS_SK 0 -# define X509_F_NETSCAPE_SPKI_B64_DECODE 0 -# define X509_F_NETSCAPE_SPKI_B64_ENCODE 0 -# define X509_F_NEW_DIR 0 -# define X509_F_X509AT_ADD1_ATTR 0 -# define X509_F_X509V3_ADD_EXT 0 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_NID 0 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ 0 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_TXT 0 -# define X509_F_X509_ATTRIBUTE_GET0_DATA 0 -# define X509_F_X509_ATTRIBUTE_SET1_DATA 0 -# define X509_F_X509_CHECK_PRIVATE_KEY 0 -# define X509_F_X509_CRL_DIFF 0 -# define X509_F_X509_CRL_METHOD_NEW 0 -# define X509_F_X509_CRL_PRINT_FP 0 -# define X509_F_X509_EXTENSION_CREATE_BY_NID 0 -# define X509_F_X509_EXTENSION_CREATE_BY_OBJ 0 -# define X509_F_X509_GET_PUBKEY_PARAMETERS 0 -# define X509_F_X509_LOAD_CERT_CRL_FILE 0 -# define X509_F_X509_LOAD_CERT_FILE 0 -# define X509_F_X509_LOAD_CRL_FILE 0 -# define X509_F_X509_LOOKUP_METH_NEW 0 -# define X509_F_X509_LOOKUP_NEW 0 -# define X509_F_X509_NAME_ADD_ENTRY 0 -# define X509_F_X509_NAME_CANON 0 -# define X509_F_X509_NAME_ENTRY_CREATE_BY_NID 0 -# define X509_F_X509_NAME_ENTRY_CREATE_BY_TXT 0 -# define X509_F_X509_NAME_ENTRY_SET_OBJECT 0 -# define X509_F_X509_NAME_ONELINE 0 -# define X509_F_X509_NAME_PRINT 0 -# define X509_F_X509_OBJECT_NEW 0 -# define X509_F_X509_PRINT_EX_FP 0 -# define X509_F_X509_PUBKEY_DECODE 0 -# define X509_F_X509_PUBKEY_GET 0 -# define X509_F_X509_PUBKEY_GET0 0 -# define X509_F_X509_PUBKEY_SET 0 -# define X509_F_X509_REQ_CHECK_PRIVATE_KEY 0 -# define X509_F_X509_REQ_PRINT_EX 0 -# define X509_F_X509_REQ_PRINT_FP 0 -# define X509_F_X509_REQ_TO_X509 0 -# define X509_F_X509_STORE_ADD_CERT 0 -# define X509_F_X509_STORE_ADD_CRL 0 -# define X509_F_X509_STORE_ADD_LOOKUP 0 -# define X509_F_X509_STORE_CTX_GET1_ISSUER 0 -# define X509_F_X509_STORE_CTX_INIT 0 -# define X509_F_X509_STORE_CTX_NEW 0 -# define X509_F_X509_STORE_CTX_PURPOSE_INHERIT 0 -# define X509_F_X509_STORE_NEW 0 -# define X509_F_X509_TO_X509_REQ 0 -# define X509_F_X509_TRUST_ADD 0 -# define X509_F_X509_TRUST_SET 0 -# define X509_F_X509_VERIFY_CERT 0 -# define X509_F_X509_VERIFY_PARAM_NEW 0 - -/* - * X509V3 function codes. - */ -# define X509V3_F_A2I_GENERAL_NAME 0 -# define X509V3_F_ADDR_VALIDATE_PATH_INTERNAL 0 -# define X509V3_F_ASIDENTIFIERCHOICE_CANONIZE 0 -# define X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL 0 -# define X509V3_F_BIGNUM_TO_STRING 0 -# define X509V3_F_COPY_EMAIL 0 -# define X509V3_F_COPY_ISSUER 0 -# define X509V3_F_DO_DIRNAME 0 -# define X509V3_F_DO_EXT_I2D 0 -# define X509V3_F_DO_EXT_NCONF 0 -# define X509V3_F_GNAMES_FROM_SECTNAME 0 -# define X509V3_F_I2S_ASN1_ENUMERATED 0 -# define X509V3_F_I2S_ASN1_IA5STRING 0 -# define X509V3_F_I2S_ASN1_INTEGER 0 -# define X509V3_F_I2V_AUTHORITY_INFO_ACCESS 0 -# define X509V3_F_LEVEL_ADD_NODE 0 -# define X509V3_F_NOTICE_SECTION 0 -# define X509V3_F_NREF_NOS 0 -# define X509V3_F_POLICY_CACHE_CREATE 0 -# define X509V3_F_POLICY_CACHE_NEW 0 -# define X509V3_F_POLICY_DATA_NEW 0 -# define X509V3_F_POLICY_SECTION 0 -# define X509V3_F_PROCESS_PCI_VALUE 0 -# define X509V3_F_R2I_CERTPOL 0 -# define X509V3_F_R2I_PCI 0 -# define X509V3_F_S2I_ASN1_IA5STRING 0 -# define X509V3_F_S2I_ASN1_INTEGER 0 -# define X509V3_F_S2I_ASN1_OCTET_STRING 0 -# define X509V3_F_S2I_SKEY_ID 0 -# define X509V3_F_SET_DIST_POINT_NAME 0 -# define X509V3_F_SXNET_ADD_ID_ASC 0 -# define X509V3_F_SXNET_ADD_ID_INTEGER 0 -# define X509V3_F_SXNET_ADD_ID_ULONG 0 -# define X509V3_F_SXNET_GET_ID_ASC 0 -# define X509V3_F_SXNET_GET_ID_ULONG 0 -# define X509V3_F_TREE_INIT 0 -# define X509V3_F_V2I_ASIDENTIFIERS 0 -# define X509V3_F_V2I_ASN1_BIT_STRING 0 -# define X509V3_F_V2I_AUTHORITY_INFO_ACCESS 0 -# define X509V3_F_V2I_AUTHORITY_KEYID 0 -# define X509V3_F_V2I_BASIC_CONSTRAINTS 0 -# define X509V3_F_V2I_CRLD 0 -# define X509V3_F_V2I_EXTENDED_KEY_USAGE 0 -# define X509V3_F_V2I_GENERAL_NAMES 0 -# define X509V3_F_V2I_GENERAL_NAME_EX 0 -# define X509V3_F_V2I_IDP 0 -# define X509V3_F_V2I_IPADDRBLOCKS 0 -# define X509V3_F_V2I_ISSUER_ALT 0 -# define X509V3_F_V2I_NAME_CONSTRAINTS 0 -# define X509V3_F_V2I_POLICY_CONSTRAINTS 0 -# define X509V3_F_V2I_POLICY_MAPPINGS 0 -# define X509V3_F_V2I_SUBJECT_ALT 0 -# define X509V3_F_V2I_TLS_FEATURE 0 -# define X509V3_F_V3_GENERIC_EXTENSION 0 -# define X509V3_F_X509V3_ADD1_I2D 0 -# define X509V3_F_X509V3_ADD_VALUE 0 -# define X509V3_F_X509V3_EXT_ADD 0 -# define X509V3_F_X509V3_EXT_ADD_ALIAS 0 -# define X509V3_F_X509V3_EXT_I2D 0 -# define X509V3_F_X509V3_EXT_NCONF 0 -# define X509V3_F_X509V3_GET_SECTION 0 -# define X509V3_F_X509V3_GET_STRING 0 -# define X509V3_F_X509V3_GET_VALUE_BOOL 0 -# define X509V3_F_X509V3_PARSE_LIST 0 -# define X509V3_F_X509_PURPOSE_ADD 0 -# define X509V3_F_X509_PURPOSE_SET 0 - -/* - * Compatibility defines. - */ -# define EVP_R_OPERATON_NOT_INITIALIZED EVP_R_OPERATION_NOT_INITIALIZED - -# endif - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ct.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/ct.h deleted file mode 100644 index 8f78d26..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ct.h +++ /dev/null @@ -1,573 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\ct.h.in - * - * Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_CT_H -# define OPENSSL_CT_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_CT_H -# endif - -# include - -# ifndef OPENSSL_NO_CT -# include -# include -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - - -/* Minimum RSA key size, from RFC6962 */ -# define SCT_MIN_RSA_BITS 2048 - -/* All hashes are SHA256 in v1 of Certificate Transparency */ -# define CT_V1_HASHLEN SHA256_DIGEST_LENGTH - -SKM_DEFINE_STACK_OF_INTERNAL(SCT, SCT, SCT) -#define sk_SCT_num(sk) OPENSSL_sk_num(ossl_check_const_SCT_sk_type(sk)) -#define sk_SCT_value(sk, idx) ((SCT *)OPENSSL_sk_value(ossl_check_const_SCT_sk_type(sk), (idx))) -#define sk_SCT_new(cmp) ((STACK_OF(SCT) *)OPENSSL_sk_new(ossl_check_SCT_compfunc_type(cmp))) -#define sk_SCT_new_null() ((STACK_OF(SCT) *)OPENSSL_sk_new_null()) -#define sk_SCT_new_reserve(cmp, n) ((STACK_OF(SCT) *)OPENSSL_sk_new_reserve(ossl_check_SCT_compfunc_type(cmp), (n))) -#define sk_SCT_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SCT_sk_type(sk), (n)) -#define sk_SCT_free(sk) OPENSSL_sk_free(ossl_check_SCT_sk_type(sk)) -#define sk_SCT_zero(sk) OPENSSL_sk_zero(ossl_check_SCT_sk_type(sk)) -#define sk_SCT_delete(sk, i) ((SCT *)OPENSSL_sk_delete(ossl_check_SCT_sk_type(sk), (i))) -#define sk_SCT_delete_ptr(sk, ptr) ((SCT *)OPENSSL_sk_delete_ptr(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr))) -#define sk_SCT_push(sk, ptr) OPENSSL_sk_push(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr)) -#define sk_SCT_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr)) -#define sk_SCT_pop(sk) ((SCT *)OPENSSL_sk_pop(ossl_check_SCT_sk_type(sk))) -#define sk_SCT_shift(sk) ((SCT *)OPENSSL_sk_shift(ossl_check_SCT_sk_type(sk))) -#define sk_SCT_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SCT_sk_type(sk), ossl_check_SCT_freefunc_type(freefunc)) -#define sk_SCT_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr), (idx)) -#define sk_SCT_set(sk, idx, ptr) ((SCT *)OPENSSL_sk_set(ossl_check_SCT_sk_type(sk), (idx), ossl_check_SCT_type(ptr))) -#define sk_SCT_find(sk, ptr) OPENSSL_sk_find(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr)) -#define sk_SCT_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr)) -#define sk_SCT_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr), pnum) -#define sk_SCT_sort(sk) OPENSSL_sk_sort(ossl_check_SCT_sk_type(sk)) -#define sk_SCT_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SCT_sk_type(sk)) -#define sk_SCT_dup(sk) ((STACK_OF(SCT) *)OPENSSL_sk_dup(ossl_check_const_SCT_sk_type(sk))) -#define sk_SCT_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SCT) *)OPENSSL_sk_deep_copy(ossl_check_const_SCT_sk_type(sk), ossl_check_SCT_copyfunc_type(copyfunc), ossl_check_SCT_freefunc_type(freefunc))) -#define sk_SCT_set_cmp_func(sk, cmp) ((sk_SCT_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SCT_sk_type(sk), ossl_check_SCT_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(CTLOG, CTLOG, CTLOG) -#define sk_CTLOG_num(sk) OPENSSL_sk_num(ossl_check_const_CTLOG_sk_type(sk)) -#define sk_CTLOG_value(sk, idx) ((CTLOG *)OPENSSL_sk_value(ossl_check_const_CTLOG_sk_type(sk), (idx))) -#define sk_CTLOG_new(cmp) ((STACK_OF(CTLOG) *)OPENSSL_sk_new(ossl_check_CTLOG_compfunc_type(cmp))) -#define sk_CTLOG_new_null() ((STACK_OF(CTLOG) *)OPENSSL_sk_new_null()) -#define sk_CTLOG_new_reserve(cmp, n) ((STACK_OF(CTLOG) *)OPENSSL_sk_new_reserve(ossl_check_CTLOG_compfunc_type(cmp), (n))) -#define sk_CTLOG_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CTLOG_sk_type(sk), (n)) -#define sk_CTLOG_free(sk) OPENSSL_sk_free(ossl_check_CTLOG_sk_type(sk)) -#define sk_CTLOG_zero(sk) OPENSSL_sk_zero(ossl_check_CTLOG_sk_type(sk)) -#define sk_CTLOG_delete(sk, i) ((CTLOG *)OPENSSL_sk_delete(ossl_check_CTLOG_sk_type(sk), (i))) -#define sk_CTLOG_delete_ptr(sk, ptr) ((CTLOG *)OPENSSL_sk_delete_ptr(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr))) -#define sk_CTLOG_push(sk, ptr) OPENSSL_sk_push(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr)) -#define sk_CTLOG_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr)) -#define sk_CTLOG_pop(sk) ((CTLOG *)OPENSSL_sk_pop(ossl_check_CTLOG_sk_type(sk))) -#define sk_CTLOG_shift(sk) ((CTLOG *)OPENSSL_sk_shift(ossl_check_CTLOG_sk_type(sk))) -#define sk_CTLOG_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_freefunc_type(freefunc)) -#define sk_CTLOG_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr), (idx)) -#define sk_CTLOG_set(sk, idx, ptr) ((CTLOG *)OPENSSL_sk_set(ossl_check_CTLOG_sk_type(sk), (idx), ossl_check_CTLOG_type(ptr))) -#define sk_CTLOG_find(sk, ptr) OPENSSL_sk_find(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr)) -#define sk_CTLOG_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr)) -#define sk_CTLOG_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr), pnum) -#define sk_CTLOG_sort(sk) OPENSSL_sk_sort(ossl_check_CTLOG_sk_type(sk)) -#define sk_CTLOG_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CTLOG_sk_type(sk)) -#define sk_CTLOG_dup(sk) ((STACK_OF(CTLOG) *)OPENSSL_sk_dup(ossl_check_const_CTLOG_sk_type(sk))) -#define sk_CTLOG_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CTLOG) *)OPENSSL_sk_deep_copy(ossl_check_const_CTLOG_sk_type(sk), ossl_check_CTLOG_copyfunc_type(copyfunc), ossl_check_CTLOG_freefunc_type(freefunc))) -#define sk_CTLOG_set_cmp_func(sk, cmp) ((sk_CTLOG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_compfunc_type(cmp))) - - - -typedef enum { - CT_LOG_ENTRY_TYPE_NOT_SET = -1, - CT_LOG_ENTRY_TYPE_X509 = 0, - CT_LOG_ENTRY_TYPE_PRECERT = 1 -} ct_log_entry_type_t; - -typedef enum { - SCT_VERSION_NOT_SET = -1, - SCT_VERSION_V1 = 0 -} sct_version_t; - -typedef enum { - SCT_SOURCE_UNKNOWN, - SCT_SOURCE_TLS_EXTENSION, - SCT_SOURCE_X509V3_EXTENSION, - SCT_SOURCE_OCSP_STAPLED_RESPONSE -} sct_source_t; - -typedef enum { - SCT_VALIDATION_STATUS_NOT_SET, - SCT_VALIDATION_STATUS_UNKNOWN_LOG, - SCT_VALIDATION_STATUS_VALID, - SCT_VALIDATION_STATUS_INVALID, - SCT_VALIDATION_STATUS_UNVERIFIED, - SCT_VALIDATION_STATUS_UNKNOWN_VERSION -} sct_validation_status_t; - -/****************************************** - * CT policy evaluation context functions * - ******************************************/ - -/* - * Creates a new, empty policy evaluation context associated with the given - * library context and property query string. - * The caller is responsible for calling CT_POLICY_EVAL_CTX_free when finished - * with the CT_POLICY_EVAL_CTX. - */ -CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, - const char *propq); - -/* - * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library - * context and property query string is used. - */ -CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new(void); - -/* Deletes a policy evaluation context and anything it owns. */ -void CT_POLICY_EVAL_CTX_free(CT_POLICY_EVAL_CTX *ctx); - -/* Gets the peer certificate that the SCTs are for */ -X509* CT_POLICY_EVAL_CTX_get0_cert(const CT_POLICY_EVAL_CTX *ctx); - -/* - * Sets the certificate associated with the received SCTs. - * Increments the reference count of cert. - * Returns 1 on success, 0 otherwise. - */ -int CT_POLICY_EVAL_CTX_set1_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert); - -/* Gets the issuer of the aforementioned certificate */ -X509* CT_POLICY_EVAL_CTX_get0_issuer(const CT_POLICY_EVAL_CTX *ctx); - -/* - * Sets the issuer of the certificate associated with the received SCTs. - * Increments the reference count of issuer. - * Returns 1 on success, 0 otherwise. - */ -int CT_POLICY_EVAL_CTX_set1_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer); - -/* Gets the CT logs that are trusted sources of SCTs */ -const CTLOG_STORE *CT_POLICY_EVAL_CTX_get0_log_store(const CT_POLICY_EVAL_CTX *ctx); - -/* Sets the log store that is in use. It must outlive the CT_POLICY_EVAL_CTX. */ -void CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(CT_POLICY_EVAL_CTX *ctx, - CTLOG_STORE *log_store); - -/* - * Gets the time, in milliseconds since the Unix epoch, that will be used as the - * current time when checking whether an SCT was issued in the future. - * Such SCTs will fail validation, as required by RFC6962. - */ -uint64_t CT_POLICY_EVAL_CTX_get_time(const CT_POLICY_EVAL_CTX *ctx); - -/* - * Sets the time to evaluate SCTs against, in milliseconds since the Unix epoch. - * If an SCT's timestamp is after this time, it will be interpreted as having - * been issued in the future. RFC6962 states that "TLS clients MUST reject SCTs - * whose timestamp is in the future", so an SCT will not validate in this case. - */ -void CT_POLICY_EVAL_CTX_set_time(CT_POLICY_EVAL_CTX *ctx, uint64_t time_in_ms); - -/***************** - * SCT functions * - *****************/ - -/* - * Creates a new, blank SCT. - * The caller is responsible for calling SCT_free when finished with the SCT. - */ -SCT *SCT_new(void); - -/* - * Creates a new SCT from some base64-encoded strings. - * The caller is responsible for calling SCT_free when finished with the SCT. - */ -SCT *SCT_new_from_base64(unsigned char version, - const char *logid_base64, - ct_log_entry_type_t entry_type, - uint64_t timestamp, - const char *extensions_base64, - const char *signature_base64); - -/* - * Frees the SCT and the underlying data structures. - */ -void SCT_free(SCT *sct); - -/* - * Free a stack of SCTs, and the underlying SCTs themselves. - * Intended to be compatible with X509V3_EXT_FREE. - */ -void SCT_LIST_free(STACK_OF(SCT) *a); - -/* - * Returns the version of the SCT. - */ -sct_version_t SCT_get_version(const SCT *sct); - -/* - * Set the version of an SCT. - * Returns 1 on success, 0 if the version is unrecognized. - */ -__owur int SCT_set_version(SCT *sct, sct_version_t version); - -/* - * Returns the log entry type of the SCT. - */ -ct_log_entry_type_t SCT_get_log_entry_type(const SCT *sct); - -/* - * Set the log entry type of an SCT. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set_log_entry_type(SCT *sct, ct_log_entry_type_t entry_type); - -/* - * Gets the ID of the log that an SCT came from. - * Ownership of the log ID remains with the SCT. - * Returns the length of the log ID. - */ -size_t SCT_get0_log_id(const SCT *sct, unsigned char **log_id); - -/* - * Set the log ID of an SCT to point directly to the *log_id specified. - * The SCT takes ownership of the specified pointer. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set0_log_id(SCT *sct, unsigned char *log_id, size_t log_id_len); - -/* - * Set the log ID of an SCT. - * This makes a copy of the log_id. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set1_log_id(SCT *sct, const unsigned char *log_id, - size_t log_id_len); - -/* - * Returns the timestamp for the SCT (epoch time in milliseconds). - */ -uint64_t SCT_get_timestamp(const SCT *sct); - -/* - * Set the timestamp of an SCT (epoch time in milliseconds). - */ -void SCT_set_timestamp(SCT *sct, uint64_t timestamp); - -/* - * Return the NID for the signature used by the SCT. - * For CT v1, this will be either NID_sha256WithRSAEncryption or - * NID_ecdsa_with_SHA256 (or NID_undef if incorrect/unset). - */ -int SCT_get_signature_nid(const SCT *sct); - -/* - * Set the signature type of an SCT - * For CT v1, this should be either NID_sha256WithRSAEncryption or - * NID_ecdsa_with_SHA256. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set_signature_nid(SCT *sct, int nid); - -/* - * Set *ext to point to the extension data for the SCT. ext must not be NULL. - * The SCT retains ownership of this pointer. - * Returns length of the data pointed to. - */ -size_t SCT_get0_extensions(const SCT *sct, unsigned char **ext); - -/* - * Set the extensions of an SCT to point directly to the *ext specified. - * The SCT takes ownership of the specified pointer. - */ -void SCT_set0_extensions(SCT *sct, unsigned char *ext, size_t ext_len); - -/* - * Set the extensions of an SCT. - * This takes a copy of the ext. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set1_extensions(SCT *sct, const unsigned char *ext, - size_t ext_len); - -/* - * Set *sig to point to the signature for the SCT. sig must not be NULL. - * The SCT retains ownership of this pointer. - * Returns length of the data pointed to. - */ -size_t SCT_get0_signature(const SCT *sct, unsigned char **sig); - -/* - * Set the signature of an SCT to point directly to the *sig specified. - * The SCT takes ownership of the specified pointer. - */ -void SCT_set0_signature(SCT *sct, unsigned char *sig, size_t sig_len); - -/* - * Set the signature of an SCT to be a copy of the *sig specified. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set1_signature(SCT *sct, const unsigned char *sig, - size_t sig_len); - -/* - * The origin of this SCT, e.g. TLS extension, OCSP response, etc. - */ -sct_source_t SCT_get_source(const SCT *sct); - -/* - * Set the origin of this SCT, e.g. TLS extension, OCSP response, etc. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set_source(SCT *sct, sct_source_t source); - -/* - * Returns a text string describing the validation status of |sct|. - */ -const char *SCT_validation_status_string(const SCT *sct); - -/* - * Pretty-prints an |sct| to |out|. - * It will be indented by the number of spaces specified by |indent|. - * If |logs| is not NULL, it will be used to lookup the CT log that the SCT came - * from, so that the log name can be printed. - */ -void SCT_print(const SCT *sct, BIO *out, int indent, const CTLOG_STORE *logs); - -/* - * Pretty-prints an |sct_list| to |out|. - * It will be indented by the number of spaces specified by |indent|. - * SCTs will be delimited by |separator|. - * If |logs| is not NULL, it will be used to lookup the CT log that each SCT - * came from, so that the log names can be printed. - */ -void SCT_LIST_print(const STACK_OF(SCT) *sct_list, BIO *out, int indent, - const char *separator, const CTLOG_STORE *logs); - -/* - * Gets the last result of validating this SCT. - * If it has not been validated yet, returns SCT_VALIDATION_STATUS_NOT_SET. - */ -sct_validation_status_t SCT_get_validation_status(const SCT *sct); - -/* - * Validates the given SCT with the provided context. - * Sets the "validation_status" field of the SCT. - * Returns 1 if the SCT is valid and the signature verifies. - * Returns 0 if the SCT is invalid or could not be verified. - * Returns -1 if an error occurs. - */ -__owur int SCT_validate(SCT *sct, const CT_POLICY_EVAL_CTX *ctx); - -/* - * Validates the given list of SCTs with the provided context. - * Sets the "validation_status" field of each SCT. - * Returns 1 if there are no invalid SCTs and all signatures verify. - * Returns 0 if at least one SCT is invalid or could not be verified. - * Returns a negative integer if an error occurs. - */ -__owur int SCT_LIST_validate(const STACK_OF(SCT) *scts, - CT_POLICY_EVAL_CTX *ctx); - - -/********************************* - * SCT parsing and serialization * - *********************************/ - -/* - * Serialize (to TLS format) a stack of SCTs and return the length. - * "a" must not be NULL. - * If "pp" is NULL, just return the length of what would have been serialized. - * If "pp" is not NULL and "*pp" is null, function will allocate a new pointer - * for data that caller is responsible for freeing (only if function returns - * successfully). - * If "pp" is NULL and "*pp" is not NULL, caller is responsible for ensuring - * that "*pp" is large enough to accept all of the serialized data. - * Returns < 0 on error, >= 0 indicating bytes written (or would have been) - * on success. - */ -__owur int i2o_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp); - -/* - * Convert TLS format SCT list to a stack of SCTs. - * If "a" or "*a" is NULL, a new stack will be created that the caller is - * responsible for freeing (by calling SCT_LIST_free). - * "**pp" and "*pp" must not be NULL. - * Upon success, "*pp" will point to after the last bytes read, and a stack - * will be returned. - * Upon failure, a NULL pointer will be returned, and the position of "*pp" is - * not defined. - */ -STACK_OF(SCT) *o2i_SCT_LIST(STACK_OF(SCT) **a, const unsigned char **pp, - size_t len); - -/* - * Serialize (to DER format) a stack of SCTs and return the length. - * "a" must not be NULL. - * If "pp" is NULL, just returns the length of what would have been serialized. - * If "pp" is not NULL and "*pp" is null, function will allocate a new pointer - * for data that caller is responsible for freeing (only if function returns - * successfully). - * If "pp" is NULL and "*pp" is not NULL, caller is responsible for ensuring - * that "*pp" is large enough to accept all of the serialized data. - * Returns < 0 on error, >= 0 indicating bytes written (or would have been) - * on success. - */ -__owur int i2d_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp); - -/* - * Parses an SCT list in DER format and returns it. - * If "a" or "*a" is NULL, a new stack will be created that the caller is - * responsible for freeing (by calling SCT_LIST_free). - * "**pp" and "*pp" must not be NULL. - * Upon success, "*pp" will point to after the last bytes read, and a stack - * will be returned. - * Upon failure, a NULL pointer will be returned, and the position of "*pp" is - * not defined. - */ -STACK_OF(SCT) *d2i_SCT_LIST(STACK_OF(SCT) **a, const unsigned char **pp, - long len); - -/* - * Serialize (to TLS format) an |sct| and write it to |out|. - * If |out| is null, no SCT will be output but the length will still be returned. - * If |out| points to a null pointer, a string will be allocated to hold the - * TLS-format SCT. It is the responsibility of the caller to free it. - * If |out| points to an allocated string, the TLS-format SCT will be written - * to it. - * The length of the SCT in TLS format will be returned. - */ -__owur int i2o_SCT(const SCT *sct, unsigned char **out); - -/* - * Parses an SCT in TLS format and returns it. - * If |psct| is not null, it will end up pointing to the parsed SCT. If it - * already points to a non-null pointer, the pointer will be free'd. - * |in| should be a pointer to a string containing the TLS-format SCT. - * |in| will be advanced to the end of the SCT if parsing succeeds. - * |len| should be the length of the SCT in |in|. - * Returns NULL if an error occurs. - * If the SCT is an unsupported version, only the SCT's 'sct' and 'sct_len' - * fields will be populated (with |in| and |len| respectively). - */ -SCT *o2i_SCT(SCT **psct, const unsigned char **in, size_t len); - -/******************** - * CT log functions * - ********************/ - -/* - * Creates a new CT log instance with the given |public_key| and |name| and - * associates it with the give library context |libctx| and property query - * string |propq|. - * Takes ownership of |public_key| but copies |name|. - * Returns NULL if malloc fails or if |public_key| cannot be converted to DER. - * Should be deleted by the caller using CTLOG_free when no longer needed. - */ -CTLOG *CTLOG_new_ex(EVP_PKEY *public_key, const char *name, OSSL_LIB_CTX *libctx, - const char *propq); - -/* - * The same as CTLOG_new_ex except that the default library context and - * property query string are used. - */ -CTLOG *CTLOG_new(EVP_PKEY *public_key, const char *name); - -/* - * Creates a new CTLOG instance with the base64-encoded SubjectPublicKeyInfo DER - * in |pkey_base64| and associated with the given library context |libctx| and - * property query string |propq|. The |name| is a string to help users identify - * this log. - * Returns 1 on success, 0 on failure. - * Should be deleted by the caller using CTLOG_free when no longer needed. - */ -int CTLOG_new_from_base64_ex(CTLOG **ct_log, const char *pkey_base64, - const char *name, OSSL_LIB_CTX *libctx, - const char *propq); - -/* - * The same as CTLOG_new_from_base64_ex() except that the default - * library context and property query string are used. - * Returns 1 on success, 0 on failure. - */ -int CTLOG_new_from_base64(CTLOG ** ct_log, - const char *pkey_base64, const char *name); - -/* - * Deletes a CT log instance and its fields. - */ -void CTLOG_free(CTLOG *log); - -/* Gets the name of the CT log */ -const char *CTLOG_get0_name(const CTLOG *log); -/* Gets the ID of the CT log */ -void CTLOG_get0_log_id(const CTLOG *log, const uint8_t **log_id, - size_t *log_id_len); -/* Gets the public key of the CT log */ -EVP_PKEY *CTLOG_get0_public_key(const CTLOG *log); - -/************************** - * CT log store functions * - **************************/ - -/* - * Creates a new CT log store and associates it with the given libctx and - * property query string. - * Should be deleted by the caller using CTLOG_STORE_free when no longer needed. - */ -CTLOG_STORE *CTLOG_STORE_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - -/* - * Same as CTLOG_STORE_new_ex except that the default libctx and - * property query string are used. - * Should be deleted by the caller using CTLOG_STORE_free when no longer needed. - */ -CTLOG_STORE *CTLOG_STORE_new(void); - -/* - * Deletes a CT log store and all of the CT log instances held within. - */ -void CTLOG_STORE_free(CTLOG_STORE *store); - -/* - * Finds a CT log in the store based on its log ID. - * Returns the CT log, or NULL if no match is found. - */ -const CTLOG *CTLOG_STORE_get0_log_by_id(const CTLOG_STORE *store, - const uint8_t *log_id, - size_t log_id_len); - -/* - * Loads a CT log list into a |store| from a |file|. - * Returns 1 if loading is successful, or 0 otherwise. - */ -__owur int CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file); - -/* - * Loads the default CT log list into a |store|. - * Returns 1 if loading is successful, or 0 otherwise. - */ -__owur int CTLOG_STORE_load_default_file(CTLOG_STORE *store); - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cterr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/cterr.h deleted file mode 100644 index 935d32d..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/cterr.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CTERR_H -# define OPENSSL_CTERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_CT - - -/* - * CT reason codes. - */ -# define CT_R_BASE64_DECODE_ERROR 108 -# define CT_R_INVALID_LOG_ID_LENGTH 100 -# define CT_R_LOG_CONF_INVALID 109 -# define CT_R_LOG_CONF_INVALID_KEY 110 -# define CT_R_LOG_CONF_MISSING_DESCRIPTION 111 -# define CT_R_LOG_CONF_MISSING_KEY 112 -# define CT_R_LOG_KEY_INVALID 113 -# define CT_R_SCT_FUTURE_TIMESTAMP 116 -# define CT_R_SCT_INVALID 104 -# define CT_R_SCT_INVALID_SIGNATURE 107 -# define CT_R_SCT_LIST_INVALID 105 -# define CT_R_SCT_LOG_ID_MISMATCH 114 -# define CT_R_SCT_NOT_SET 106 -# define CT_R_SCT_UNSUPPORTED_VERSION 115 -# define CT_R_UNRECOGNIZED_SIGNATURE_NID 101 -# define CT_R_UNSUPPORTED_ENTRY_TYPE 102 -# define CT_R_UNSUPPORTED_VERSION 103 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/decoder.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/decoder.h deleted file mode 100644 index d4ee2cf..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/decoder.h +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_DECODER_H -# define OPENSSL_DECODER_H -# pragma once - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -OSSL_DECODER *OSSL_DECODER_fetch(OSSL_LIB_CTX *libctx, const char *name, - const char *properties); -int OSSL_DECODER_up_ref(OSSL_DECODER *encoder); -void OSSL_DECODER_free(OSSL_DECODER *encoder); - -const OSSL_PROVIDER *OSSL_DECODER_get0_provider(const OSSL_DECODER *encoder); -const char *OSSL_DECODER_get0_properties(const OSSL_DECODER *encoder); -const char *OSSL_DECODER_get0_name(const OSSL_DECODER *decoder); -const char *OSSL_DECODER_get0_description(const OSSL_DECODER *decoder); -int OSSL_DECODER_is_a(const OSSL_DECODER *encoder, const char *name); - -void OSSL_DECODER_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(OSSL_DECODER *encoder, void *arg), - void *arg); -int OSSL_DECODER_names_do_all(const OSSL_DECODER *encoder, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PARAM *OSSL_DECODER_gettable_params(OSSL_DECODER *decoder); -int OSSL_DECODER_get_params(OSSL_DECODER *decoder, OSSL_PARAM params[]); - -const OSSL_PARAM *OSSL_DECODER_settable_ctx_params(OSSL_DECODER *encoder); -OSSL_DECODER_CTX *OSSL_DECODER_CTX_new(void); -int OSSL_DECODER_CTX_set_params(OSSL_DECODER_CTX *ctx, - const OSSL_PARAM params[]); -void OSSL_DECODER_CTX_free(OSSL_DECODER_CTX *ctx); - -/* Utilities that help set specific parameters */ -int OSSL_DECODER_CTX_set_passphrase(OSSL_DECODER_CTX *ctx, - const unsigned char *kstr, size_t klen); -int OSSL_DECODER_CTX_set_pem_password_cb(OSSL_DECODER_CTX *ctx, - pem_password_cb *cb, void *cbarg); -int OSSL_DECODER_CTX_set_passphrase_cb(OSSL_DECODER_CTX *ctx, - OSSL_PASSPHRASE_CALLBACK *cb, - void *cbarg); -int OSSL_DECODER_CTX_set_passphrase_ui(OSSL_DECODER_CTX *ctx, - const UI_METHOD *ui_method, - void *ui_data); - -/* - * Utilities to read the object to decode, with the result sent to cb. - * These will discover all provided methods - */ - -int OSSL_DECODER_CTX_set_selection(OSSL_DECODER_CTX *ctx, int selection); -int OSSL_DECODER_CTX_set_input_type(OSSL_DECODER_CTX *ctx, - const char *input_type); -int OSSL_DECODER_CTX_set_input_structure(OSSL_DECODER_CTX *ctx, - const char *input_structure); -int OSSL_DECODER_CTX_add_decoder(OSSL_DECODER_CTX *ctx, OSSL_DECODER *decoder); -int OSSL_DECODER_CTX_add_extra(OSSL_DECODER_CTX *ctx, - OSSL_LIB_CTX *libctx, const char *propq); -int OSSL_DECODER_CTX_get_num_decoders(OSSL_DECODER_CTX *ctx); - -typedef struct ossl_decoder_instance_st OSSL_DECODER_INSTANCE; -OSSL_DECODER * -OSSL_DECODER_INSTANCE_get_decoder(OSSL_DECODER_INSTANCE *decoder_inst); -void * -OSSL_DECODER_INSTANCE_get_decoder_ctx(OSSL_DECODER_INSTANCE *decoder_inst); -const char * -OSSL_DECODER_INSTANCE_get_input_type(OSSL_DECODER_INSTANCE *decoder_inst); -const char * -OSSL_DECODER_INSTANCE_get_input_structure(OSSL_DECODER_INSTANCE *decoder_inst, - int *was_set); - -typedef int OSSL_DECODER_CONSTRUCT(OSSL_DECODER_INSTANCE *decoder_inst, - const OSSL_PARAM *params, - void *construct_data); -typedef void OSSL_DECODER_CLEANUP(void *construct_data); - -int OSSL_DECODER_CTX_set_construct(OSSL_DECODER_CTX *ctx, - OSSL_DECODER_CONSTRUCT *construct); -int OSSL_DECODER_CTX_set_construct_data(OSSL_DECODER_CTX *ctx, - void *construct_data); -int OSSL_DECODER_CTX_set_cleanup(OSSL_DECODER_CTX *ctx, - OSSL_DECODER_CLEANUP *cleanup); -OSSL_DECODER_CONSTRUCT *OSSL_DECODER_CTX_get_construct(OSSL_DECODER_CTX *ctx); -void *OSSL_DECODER_CTX_get_construct_data(OSSL_DECODER_CTX *ctx); -OSSL_DECODER_CLEANUP *OSSL_DECODER_CTX_get_cleanup(OSSL_DECODER_CTX *ctx); - -int OSSL_DECODER_export(OSSL_DECODER_INSTANCE *decoder_inst, - void *reference, size_t reference_sz, - OSSL_CALLBACK *export_cb, void *export_cbarg); - -int OSSL_DECODER_from_bio(OSSL_DECODER_CTX *ctx, BIO *in); -#ifndef OPENSSL_NO_STDIO -int OSSL_DECODER_from_fp(OSSL_DECODER_CTX *ctx, FILE *in); -#endif -int OSSL_DECODER_from_data(OSSL_DECODER_CTX *ctx, const unsigned char **pdata, - size_t *pdata_len); - -/* - * Create the OSSL_DECODER_CTX with an associated type. This will perform - * an implicit OSSL_DECODER_fetch(), suitable for the object of that type. - */ -OSSL_DECODER_CTX * -OSSL_DECODER_CTX_new_for_pkey(EVP_PKEY **pkey, - const char *input_type, - const char *input_struct, - const char *keytype, int selection, - OSSL_LIB_CTX *libctx, const char *propquery); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/decodererr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/decodererr.h deleted file mode 100644 index 4212a38..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/decodererr.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_DECODERERR_H -# define OPENSSL_DECODERERR_H -# pragma once - -# include -# include -# include - - - -/* - * OSSL_DECODER reason codes. - */ -# define OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT 101 -# define OSSL_DECODER_R_DECODER_NOT_FOUND 102 -# define OSSL_DECODER_R_MISSING_GET_PARAMS 100 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/des.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/des.h deleted file mode 100644 index 09798a6..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/des.h +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_DES_H -# define OPENSSL_DES_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_DES_H -# endif - -# include - -# ifndef OPENSSL_NO_DES -# ifdef __cplusplus -extern "C" { -# endif -# include - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -typedef unsigned int DES_LONG; - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -typedef unsigned char DES_cblock[8]; -typedef /* const */ unsigned char const_DES_cblock[8]; -/* - * With "const", gcc 2.8.1 on Solaris thinks that DES_cblock * and - * const_DES_cblock * are incompatible pointer types. - */ - -typedef struct DES_ks { - union { - DES_cblock cblock; - /* - * make sure things are correct size on machines with 8 byte longs - */ - DES_LONG deslong[2]; - } ks[16]; -} DES_key_schedule; - -# define DES_KEY_SZ (sizeof(DES_cblock)) -# define DES_SCHEDULE_SZ (sizeof(DES_key_schedule)) - -# define DES_ENCRYPT 1 -# define DES_DECRYPT 0 - -# define DES_CBC_MODE 0 -# define DES_PCBC_MODE 1 - -# define DES_ecb2_encrypt(i,o,k1,k2,e) \ - DES_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) - -# define DES_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ - DES_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) - -# define DES_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ - DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) - -# define DES_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ - DES_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) - -# define DES_fixup_key_parity DES_set_odd_parity -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 const char *DES_options(void); -OSSL_DEPRECATEDIN_3_0 -void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output, - DES_key_schedule *ks1, DES_key_schedule *ks2, - DES_key_schedule *ks3, int enc); -OSSL_DEPRECATEDIN_3_0 -DES_LONG DES_cbc_cksum(const unsigned char *input, DES_cblock *output, - long length, DES_key_schedule *schedule, - const_DES_cblock *ivec); -# endif -/* DES_cbc_encrypt does not update the IV! Use DES_ncbc_encrypt instead. */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -void DES_cbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, DES_cblock *ivec, - int enc); -OSSL_DEPRECATEDIN_3_0 -void DES_ncbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, DES_cblock *ivec, - int enc); -OSSL_DEPRECATEDIN_3_0 -void DES_xcbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, DES_cblock *ivec, - const_DES_cblock *inw, const_DES_cblock *outw, int enc); -OSSL_DEPRECATEDIN_3_0 -void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits, - long length, DES_key_schedule *schedule, DES_cblock *ivec, - int enc); -OSSL_DEPRECATEDIN_3_0 -void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output, - DES_key_schedule *ks, int enc); -# endif - -/* - * This is the DES encryption function that gets called by just about every - * other DES routine in the library. You should not use this function except - * to implement 'modes' of DES. I say this because the functions that call - * this routine do the conversion from 'char *' to long, and this needs to be - * done to make sure 'non-aligned' memory access do not occur. The - * characters are loaded 'little endian'. Data is a pointer to 2 unsigned - * long's and ks is the DES_key_schedule to use. enc, is non zero specifies - * encryption, zero if decryption. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc); -# endif - -/* - * This functions is the same as DES_encrypt1() except that the DES initial - * permutation (IP) and final permutation (FP) have been left out. As for - * DES_encrypt1(), you should not use this function. It is used by the - * routines in the library that implement triple DES. IP() DES_encrypt2() - * DES_encrypt2() DES_encrypt2() FP() is the same as DES_encrypt1() - * DES_encrypt1() DES_encrypt1() except faster :-). - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc); -OSSL_DEPRECATEDIN_3_0 -void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1, DES_key_schedule *ks2, - DES_key_schedule *ks3); -OSSL_DEPRECATEDIN_3_0 -void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1, DES_key_schedule *ks2, - DES_key_schedule *ks3); -OSSL_DEPRECATEDIN_3_0 -void DES_ede3_cbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int enc); -OSSL_DEPRECATEDIN_3_0 -void DES_ede3_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int *num, int enc); -OSSL_DEPRECATEDIN_3_0 -void DES_ede3_cfb_encrypt(const unsigned char *in, unsigned char *out, - int numbits, long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int enc); -OSSL_DEPRECATEDIN_3_0 -void DES_ede3_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int *num); -OSSL_DEPRECATEDIN_3_0 -char *DES_fcrypt(const char *buf, const char *salt, char *ret); -OSSL_DEPRECATEDIN_3_0 -char *DES_crypt(const char *buf, const char *salt); -OSSL_DEPRECATEDIN_3_0 -void DES_ofb_encrypt(const unsigned char *in, unsigned char *out, int numbits, - long length, DES_key_schedule *schedule, DES_cblock *ivec); -OSSL_DEPRECATEDIN_3_0 -void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -OSSL_DEPRECATEDIN_3_0 -DES_LONG DES_quad_cksum(const unsigned char *input, DES_cblock output[], - long length, int out_count, DES_cblock *seed); -OSSL_DEPRECATEDIN_3_0 int DES_random_key(DES_cblock *ret); -OSSL_DEPRECATEDIN_3_0 void DES_set_odd_parity(DES_cblock *key); -OSSL_DEPRECATEDIN_3_0 int DES_check_key_parity(const_DES_cblock *key); -OSSL_DEPRECATEDIN_3_0 int DES_is_weak_key(const_DES_cblock *key); -# endif -/* - * DES_set_key (= set_key = DES_key_sched = key_sched) calls - * DES_set_key_checked - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule); -OSSL_DEPRECATEDIN_3_0 -int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule); -OSSL_DEPRECATEDIN_3_0 -int DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule); -OSSL_DEPRECATEDIN_3_0 -void DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule *schedule); -OSSL_DEPRECATEDIN_3_0 void DES_string_to_key(const char *str, DES_cblock *key); -OSSL_DEPRECATEDIN_3_0 -void DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock *key2); -OSSL_DEPRECATEDIN_3_0 -void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int *num, int enc); -OSSL_DEPRECATEDIN_3_0 -void DES_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int *num); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/dh.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/dh.h deleted file mode 100644 index 9702492..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/dh.h +++ /dev/null @@ -1,339 +0,0 @@ -/* - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_DH_H -# define OPENSSL_DH_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_DH_H -# endif - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -#include - -/* - * DH parameter generation types used by EVP_PKEY_CTX_set_dh_paramgen_type() - * Note that additions/changes to this set of values requires corresponding - * adjustments to range checks in dh_gen() - */ -# define DH_PARAMGEN_TYPE_GENERATOR 0 /* Use a safe prime generator */ -# define DH_PARAMGEN_TYPE_FIPS_186_2 1 /* Use FIPS186-2 standard */ -# define DH_PARAMGEN_TYPE_FIPS_186_4 2 /* Use FIPS186-4 standard */ -# define DH_PARAMGEN_TYPE_GROUP 3 /* Use a named safe prime group */ - -int EVP_PKEY_CTX_set_dh_paramgen_type(EVP_PKEY_CTX *ctx, int typ); -int EVP_PKEY_CTX_set_dh_paramgen_gindex(EVP_PKEY_CTX *ctx, int gindex); -int EVP_PKEY_CTX_set_dh_paramgen_seed(EVP_PKEY_CTX *ctx, - const unsigned char *seed, - size_t seedlen); -int EVP_PKEY_CTX_set_dh_paramgen_prime_len(EVP_PKEY_CTX *ctx, int pbits); -int EVP_PKEY_CTX_set_dh_paramgen_subprime_len(EVP_PKEY_CTX *ctx, int qlen); -int EVP_PKEY_CTX_set_dh_paramgen_generator(EVP_PKEY_CTX *ctx, int gen); -int EVP_PKEY_CTX_set_dh_nid(EVP_PKEY_CTX *ctx, int nid); -int EVP_PKEY_CTX_set_dh_rfc5114(EVP_PKEY_CTX *ctx, int gen); -int EVP_PKEY_CTX_set_dhx_rfc5114(EVP_PKEY_CTX *ctx, int gen); -int EVP_PKEY_CTX_set_dh_pad(EVP_PKEY_CTX *ctx, int pad); - -int EVP_PKEY_CTX_set_dh_kdf_type(EVP_PKEY_CTX *ctx, int kdf); -int EVP_PKEY_CTX_get_dh_kdf_type(EVP_PKEY_CTX *ctx); -int EVP_PKEY_CTX_set0_dh_kdf_oid(EVP_PKEY_CTX *ctx, ASN1_OBJECT *oid); -int EVP_PKEY_CTX_get0_dh_kdf_oid(EVP_PKEY_CTX *ctx, ASN1_OBJECT **oid); -int EVP_PKEY_CTX_set_dh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); -int EVP_PKEY_CTX_get_dh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); -int EVP_PKEY_CTX_set_dh_kdf_outlen(EVP_PKEY_CTX *ctx, int len); -int EVP_PKEY_CTX_get_dh_kdf_outlen(EVP_PKEY_CTX *ctx, int *len); -int EVP_PKEY_CTX_set0_dh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char *ukm, int len); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_CTX_get0_dh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char **ukm); -#endif - -# define EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR (EVP_PKEY_ALG_CTRL + 2) -# define EVP_PKEY_CTRL_DH_RFC5114 (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_DH_PARAMGEN_TYPE (EVP_PKEY_ALG_CTRL + 5) -# define EVP_PKEY_CTRL_DH_KDF_TYPE (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_GET_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 8) -# define EVP_PKEY_CTRL_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 10) -# define EVP_PKEY_CTRL_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 11) -# define EVP_PKEY_CTRL_GET_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 12) -# define EVP_PKEY_CTRL_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 13) -# define EVP_PKEY_CTRL_GET_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 14) -# define EVP_PKEY_CTRL_DH_NID (EVP_PKEY_ALG_CTRL + 15) -# define EVP_PKEY_CTRL_DH_PAD (EVP_PKEY_ALG_CTRL + 16) - -/* KDF types */ -# define EVP_PKEY_DH_KDF_NONE 1 -# define EVP_PKEY_DH_KDF_X9_42 2 - -# ifndef OPENSSL_NO_STDIO -# include -# endif -# ifndef OPENSSL_NO_DH -# include -# include -# include -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# include -# endif -# include - -# ifndef OPENSSL_DH_MAX_MODULUS_BITS -# define OPENSSL_DH_MAX_MODULUS_BITS 10000 -# endif - -# ifndef OPENSSL_DH_CHECK_MAX_MODULUS_BITS -# define OPENSSL_DH_CHECK_MAX_MODULUS_BITS 32768 -# endif - -# define OPENSSL_DH_FIPS_MIN_MODULUS_BITS 1024 - -# define DH_FLAG_CACHE_MONT_P 0x01 - -# define DH_FLAG_TYPE_MASK 0xF000 -# define DH_FLAG_TYPE_DH 0x0000 -# define DH_FLAG_TYPE_DHX 0x1000 - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -/* - * Does nothing. Previously this switched off constant time behaviour. - */ -# define DH_FLAG_NO_EXP_CONSTTIME 0x00 -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* - * If this flag is set the DH method is FIPS compliant and can be used in - * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its responsibility to ensure the - * result is compliant. - */ - -# define DH_FLAG_FIPS_METHOD 0x0400 - -/* - * If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -# define DH_FLAG_NON_FIPS_ALLOW 0x0400 -# endif - -/* Already defined in ossl_typ.h */ -/* typedef struct dh_st DH; */ -/* typedef struct dh_method DH_METHOD; */ - -DECLARE_ASN1_ITEM(DHparams) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define DH_GENERATOR_2 2 -# define DH_GENERATOR_3 3 -# define DH_GENERATOR_5 5 - -/* DH_check error codes, some of them shared with DH_check_pub_key */ -/* - * NB: These values must align with the equivalently named macros in - * internal/ffc.h. - */ -# define DH_CHECK_P_NOT_PRIME 0x01 -# define DH_CHECK_P_NOT_SAFE_PRIME 0x02 -# define DH_UNABLE_TO_CHECK_GENERATOR 0x04 -# define DH_NOT_SUITABLE_GENERATOR 0x08 -# define DH_CHECK_Q_NOT_PRIME 0x10 -# define DH_CHECK_INVALID_Q_VALUE 0x20 /* +DH_check_pub_key */ -# define DH_CHECK_INVALID_J_VALUE 0x40 -# define DH_MODULUS_TOO_SMALL 0x80 -# define DH_MODULUS_TOO_LARGE 0x100 /* +DH_check_pub_key */ - -/* DH_check_pub_key error codes */ -# define DH_CHECK_PUBKEY_TOO_SMALL 0x01 -# define DH_CHECK_PUBKEY_TOO_LARGE 0x02 -# define DH_CHECK_PUBKEY_INVALID 0x04 - -/* - * primes p where (p-1)/2 is prime too are called "safe"; we define this for - * backward compatibility: - */ -# define DH_CHECK_P_NOT_STRONG_PRIME DH_CHECK_P_NOT_SAFE_PRIME - -# define d2i_DHparams_fp(fp, x) \ - (DH *)ASN1_d2i_fp((char *(*)())DH_new, \ - (char *(*)())d2i_DHparams, \ - (fp), \ - (unsigned char **)(x)) -# define i2d_DHparams_fp(fp, x) \ - ASN1_i2d_fp(i2d_DHparams,(fp), (unsigned char *)(x)) -# define d2i_DHparams_bio(bp, x) \ - ASN1_d2i_bio_of(DH, DH_new, d2i_DHparams, bp, x) -# define i2d_DHparams_bio(bp, x) \ - ASN1_i2d_bio_of(DH, i2d_DHparams, bp, x) - -# define d2i_DHxparams_fp(fp,x) \ - (DH *)ASN1_d2i_fp((char *(*)())DH_new, \ - (char *(*)())d2i_DHxparams, \ - (fp), \ - (unsigned char **)(x)) -# define i2d_DHxparams_fp(fp, x) \ - ASN1_i2d_fp(i2d_DHxparams,(fp), (unsigned char *)(x)) -# define d2i_DHxparams_bio(bp, x) \ - ASN1_d2i_bio_of(DH, DH_new, d2i_DHxparams, bp, x) -# define i2d_DHxparams_bio(bp, x) \ - ASN1_i2d_bio_of(DH, i2d_DHxparams, bp, x) - -DECLARE_ASN1_DUP_FUNCTION_name_attr(OSSL_DEPRECATEDIN_3_0, DH, DHparams) - -OSSL_DEPRECATEDIN_3_0 const DH_METHOD *DH_OpenSSL(void); - -OSSL_DEPRECATEDIN_3_0 void DH_set_default_method(const DH_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 const DH_METHOD *DH_get_default_method(void); -OSSL_DEPRECATEDIN_3_0 int DH_set_method(DH *dh, const DH_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 DH *DH_new_method(ENGINE *engine); - -OSSL_DEPRECATEDIN_3_0 DH *DH_new(void); -OSSL_DEPRECATEDIN_3_0 void DH_free(DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_up_ref(DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_bits(const DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_size(const DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_security_bits(const DH *dh); - -# define DH_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DH, l, p, newf, dupf, freef) - -OSSL_DEPRECATEDIN_3_0 int DH_set_ex_data(DH *d, int idx, void *arg); -OSSL_DEPRECATEDIN_3_0 void *DH_get_ex_data(const DH *d, int idx); - -OSSL_DEPRECATEDIN_3_0 int DH_generate_parameters_ex(DH *dh, int prime_len, - int generator, - BN_GENCB *cb); - -OSSL_DEPRECATEDIN_3_0 int DH_check_params_ex(const DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_check_ex(const DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_check_pub_key_ex(const DH *dh, const BIGNUM *pub_key); -OSSL_DEPRECATEDIN_3_0 int DH_check_params(const DH *dh, int *ret); -OSSL_DEPRECATEDIN_3_0 int DH_check(const DH *dh, int *codes); -OSSL_DEPRECATEDIN_3_0 int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, - int *codes); -OSSL_DEPRECATEDIN_3_0 int DH_generate_key(DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_compute_key(unsigned char *key, - const BIGNUM *pub_key, DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_compute_key_padded(unsigned char *key, - const BIGNUM *pub_key, DH *dh); - -DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0, DH, DHparams) -DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0, DH, DHxparams) - -# ifndef OPENSSL_NO_STDIO -OSSL_DEPRECATEDIN_3_0 int DHparams_print_fp(FILE *fp, const DH *x); -# endif -OSSL_DEPRECATEDIN_3_0 int DHparams_print(BIO *bp, const DH *x); - -/* RFC 5114 parameters */ -OSSL_DEPRECATEDIN_3_0 DH *DH_get_1024_160(void); -OSSL_DEPRECATEDIN_3_0 DH *DH_get_2048_224(void); -OSSL_DEPRECATEDIN_3_0 DH *DH_get_2048_256(void); - -/* Named parameters, currently RFC7919 and RFC3526 */ -OSSL_DEPRECATEDIN_3_0 DH *DH_new_by_nid(int nid); -OSSL_DEPRECATEDIN_3_0 int DH_get_nid(const DH *dh); - -/* RFC2631 KDF */ -OSSL_DEPRECATEDIN_3_0 int DH_KDF_X9_42(unsigned char *out, size_t outlen, - const unsigned char *Z, size_t Zlen, - ASN1_OBJECT *key_oid, - const unsigned char *ukm, - size_t ukmlen, const EVP_MD *md); - -OSSL_DEPRECATEDIN_3_0 void DH_get0_pqg(const DH *dh, const BIGNUM **p, - const BIGNUM **q, const BIGNUM **g); -OSSL_DEPRECATEDIN_3_0 int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g); -OSSL_DEPRECATEDIN_3_0 void DH_get0_key(const DH *dh, const BIGNUM **pub_key, - const BIGNUM **priv_key); -OSSL_DEPRECATEDIN_3_0 int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DH_get0_p(const DH *dh); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DH_get0_q(const DH *dh); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DH_get0_g(const DH *dh); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DH_get0_priv_key(const DH *dh); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DH_get0_pub_key(const DH *dh); -OSSL_DEPRECATEDIN_3_0 void DH_clear_flags(DH *dh, int flags); -OSSL_DEPRECATEDIN_3_0 int DH_test_flags(const DH *dh, int flags); -OSSL_DEPRECATEDIN_3_0 void DH_set_flags(DH *dh, int flags); -OSSL_DEPRECATEDIN_3_0 ENGINE *DH_get0_engine(DH *d); -OSSL_DEPRECATEDIN_3_0 long DH_get_length(const DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_set_length(DH *dh, long length); - -OSSL_DEPRECATEDIN_3_0 DH_METHOD *DH_meth_new(const char *name, int flags); -OSSL_DEPRECATEDIN_3_0 void DH_meth_free(DH_METHOD *dhm); -OSSL_DEPRECATEDIN_3_0 DH_METHOD *DH_meth_dup(const DH_METHOD *dhm); -OSSL_DEPRECATEDIN_3_0 const char *DH_meth_get0_name(const DH_METHOD *dhm); -OSSL_DEPRECATEDIN_3_0 int DH_meth_set1_name(DH_METHOD *dhm, const char *name); -OSSL_DEPRECATEDIN_3_0 int DH_meth_get_flags(const DH_METHOD *dhm); -OSSL_DEPRECATEDIN_3_0 int DH_meth_set_flags(DH_METHOD *dhm, int flags); -OSSL_DEPRECATEDIN_3_0 void *DH_meth_get0_app_data(const DH_METHOD *dhm); -OSSL_DEPRECATEDIN_3_0 int DH_meth_set0_app_data(DH_METHOD *dhm, void *app_data); -OSSL_DEPRECATEDIN_3_0 int (*DH_meth_get_generate_key(const DH_METHOD *dhm)) (DH *); -OSSL_DEPRECATEDIN_3_0 int DH_meth_set_generate_key(DH_METHOD *dhm, - int (*generate_key) (DH *)); -OSSL_DEPRECATEDIN_3_0 int (*DH_meth_get_compute_key(const DH_METHOD *dhm)) - (unsigned char *key, - const BIGNUM *pub_key, - DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_meth_set_compute_key(DH_METHOD *dhm, - int (*compute_key) - (unsigned char *key, - const BIGNUM *pub_key, - DH *dh)); -OSSL_DEPRECATEDIN_3_0 int (*DH_meth_get_bn_mod_exp(const DH_METHOD *dhm)) - (const DH *, BIGNUM *, - const BIGNUM *, - const BIGNUM *, - const BIGNUM *, BN_CTX *, - BN_MONT_CTX *); -OSSL_DEPRECATEDIN_3_0 int DH_meth_set_bn_mod_exp(DH_METHOD *dhm, - int (*bn_mod_exp) - (const DH *, BIGNUM *, - const BIGNUM *, const BIGNUM *, - const BIGNUM *, BN_CTX *, - BN_MONT_CTX *)); -OSSL_DEPRECATEDIN_3_0 int (*DH_meth_get_init(const DH_METHOD *dhm))(DH *); -OSSL_DEPRECATEDIN_3_0 int DH_meth_set_init(DH_METHOD *dhm, int (*init)(DH *)); -OSSL_DEPRECATEDIN_3_0 int (*DH_meth_get_finish(const DH_METHOD *dhm)) (DH *); -OSSL_DEPRECATEDIN_3_0 int DH_meth_set_finish(DH_METHOD *dhm, int (*finish) (DH *)); -OSSL_DEPRECATEDIN_3_0 int (*DH_meth_get_generate_params(const DH_METHOD *dhm)) - (DH *, int, int, - BN_GENCB *); -OSSL_DEPRECATEDIN_3_0 int DH_meth_set_generate_params(DH_METHOD *dhm, - int (*generate_params) - (DH *, int, int, - BN_GENCB *)); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -# ifndef OPENSSL_NO_DEPRECATED_0_9_8 -OSSL_DEPRECATEDIN_0_9_8 DH *DH_generate_parameters(int prime_len, int generator, - void (*callback) (int, int, - void *), - void *cb_arg); -# endif - -# endif -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/dherr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/dherr.h deleted file mode 100644 index 2997d7d..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/dherr.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_DHERR_H -# define OPENSSL_DHERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_DH - - -/* - * DH reason codes. - */ -# define DH_R_BAD_FFC_PARAMETERS 127 -# define DH_R_BAD_GENERATOR 101 -# define DH_R_BN_DECODE_ERROR 109 -# define DH_R_BN_ERROR 106 -# define DH_R_CHECK_INVALID_J_VALUE 115 -# define DH_R_CHECK_INVALID_Q_VALUE 116 -# define DH_R_CHECK_PUBKEY_INVALID 122 -# define DH_R_CHECK_PUBKEY_TOO_LARGE 123 -# define DH_R_CHECK_PUBKEY_TOO_SMALL 124 -# define DH_R_CHECK_P_NOT_PRIME 117 -# define DH_R_CHECK_P_NOT_SAFE_PRIME 118 -# define DH_R_CHECK_Q_NOT_PRIME 119 -# define DH_R_DECODE_ERROR 104 -# define DH_R_INVALID_PARAMETER_NAME 110 -# define DH_R_INVALID_PARAMETER_NID 114 -# define DH_R_INVALID_PUBKEY 102 -# define DH_R_INVALID_SECRET 128 -# define DH_R_INVALID_SIZE 129 -# define DH_R_KDF_PARAMETER_ERROR 112 -# define DH_R_KEYS_NOT_SET 108 -# define DH_R_MISSING_PUBKEY 125 -# define DH_R_MODULUS_TOO_LARGE 103 -# define DH_R_MODULUS_TOO_SMALL 126 -# define DH_R_NOT_SUITABLE_GENERATOR 120 -# define DH_R_NO_PARAMETERS_SET 107 -# define DH_R_NO_PRIVATE_VALUE 100 -# define DH_R_PARAMETER_ENCODING_ERROR 105 -# define DH_R_PEER_KEY_ERROR 111 -# define DH_R_Q_TOO_LARGE 130 -# define DH_R_SHARED_INFO_ERROR 113 -# define DH_R_UNABLE_TO_CHECK_GENERATOR 121 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/dsa.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/dsa.h deleted file mode 100644 index 109878e..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/dsa.h +++ /dev/null @@ -1,280 +0,0 @@ -/* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_DSA_H -# define OPENSSL_DSA_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_DSA_H -# endif - -# include -# include - -# include - -# ifndef OPENSSL_NO_DSA -# include -# include -# include -# include -# include -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# include -# endif -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif -# endif - -# ifdef __cplusplus -extern "C" { -# endif - -int EVP_PKEY_CTX_set_dsa_paramgen_bits(EVP_PKEY_CTX *ctx, int nbits); -int EVP_PKEY_CTX_set_dsa_paramgen_q_bits(EVP_PKEY_CTX *ctx, int qbits); -int EVP_PKEY_CTX_set_dsa_paramgen_md_props(EVP_PKEY_CTX *ctx, - const char *md_name, - const char *md_properties); -int EVP_PKEY_CTX_set_dsa_paramgen_gindex(EVP_PKEY_CTX *ctx, int gindex); -int EVP_PKEY_CTX_set_dsa_paramgen_type(EVP_PKEY_CTX *ctx, const char *name); -int EVP_PKEY_CTX_set_dsa_paramgen_seed(EVP_PKEY_CTX *ctx, - const unsigned char *seed, - size_t seedlen); -int EVP_PKEY_CTX_set_dsa_paramgen_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); - -# define EVP_PKEY_CTRL_DSA_PARAMGEN_BITS (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS (EVP_PKEY_ALG_CTRL + 2) -# define EVP_PKEY_CTRL_DSA_PARAMGEN_MD (EVP_PKEY_ALG_CTRL + 3) - -# ifndef OPENSSL_NO_DSA -# ifndef OPENSSL_DSA_MAX_MODULUS_BITS -# define OPENSSL_DSA_MAX_MODULUS_BITS 10000 -# endif - -# define OPENSSL_DSA_FIPS_MIN_MODULUS_BITS 1024 - -typedef struct DSA_SIG_st DSA_SIG; -DSA_SIG *DSA_SIG_new(void); -void DSA_SIG_free(DSA_SIG *a); -DECLARE_ASN1_ENCODE_FUNCTIONS_only(DSA_SIG, DSA_SIG) -void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); -int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s); - - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -/* - * Does nothing. Previously this switched off constant time behaviour. - */ -# define DSA_FLAG_NO_EXP_CONSTTIME 0x00 -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define DSA_FLAG_CACHE_MONT_P 0x01 - -/* - * If this flag is set the DSA method is FIPS compliant and can be used in - * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its responsibility to ensure the - * result is compliant. - */ - -# define DSA_FLAG_FIPS_METHOD 0x0400 - -/* - * If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -# define DSA_FLAG_NON_FIPS_ALLOW 0x0400 -# define DSA_FLAG_FIPS_CHECKED 0x0800 - -/* Already defined in ossl_typ.h */ -/* typedef struct dsa_st DSA; */ -/* typedef struct dsa_method DSA_METHOD; */ - -# define d2i_DSAparams_fp(fp, x) \ - (DSA *)ASN1_d2i_fp((char *(*)())DSA_new, \ - (char *(*)())d2i_DSAparams, (fp), \ - (unsigned char **)(x)) -# define i2d_DSAparams_fp(fp, x) \ - ASN1_i2d_fp(i2d_DSAparams, (fp), (unsigned char *)(x)) -# define d2i_DSAparams_bio(bp, x) \ - ASN1_d2i_bio_of(DSA, DSA_new, d2i_DSAparams, bp, x) -# define i2d_DSAparams_bio(bp, x) \ - ASN1_i2d_bio_of(DSA, i2d_DSAparams, bp, x) - -DECLARE_ASN1_DUP_FUNCTION_name_attr(OSSL_DEPRECATEDIN_3_0, DSA, DSAparams) -OSSL_DEPRECATEDIN_3_0 DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, - DSA *dsa); -OSSL_DEPRECATEDIN_3_0 int DSA_do_verify(const unsigned char *dgst, int dgst_len, - DSA_SIG *sig, DSA *dsa); - -OSSL_DEPRECATEDIN_3_0 const DSA_METHOD *DSA_OpenSSL(void); - -OSSL_DEPRECATEDIN_3_0 void DSA_set_default_method(const DSA_METHOD *); -OSSL_DEPRECATEDIN_3_0 const DSA_METHOD *DSA_get_default_method(void); -OSSL_DEPRECATEDIN_3_0 int DSA_set_method(DSA *dsa, const DSA_METHOD *); -OSSL_DEPRECATEDIN_3_0 const DSA_METHOD *DSA_get_method(DSA *d); - -OSSL_DEPRECATEDIN_3_0 DSA *DSA_new(void); -OSSL_DEPRECATEDIN_3_0 DSA *DSA_new_method(ENGINE *engine); -OSSL_DEPRECATEDIN_3_0 void DSA_free(DSA *r); -/* "up" the DSA object's reference count */ -OSSL_DEPRECATEDIN_3_0 int DSA_up_ref(DSA *r); -OSSL_DEPRECATEDIN_3_0 int DSA_size(const DSA *); -OSSL_DEPRECATEDIN_3_0 int DSA_bits(const DSA *d); -OSSL_DEPRECATEDIN_3_0 int DSA_security_bits(const DSA *d); - /* next 4 return -1 on error */ -OSSL_DEPRECATEDIN_3_0 int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, - BIGNUM **kinvp, BIGNUM **rp); -OSSL_DEPRECATEDIN_3_0 int DSA_sign(int type, const unsigned char *dgst, - int dlen, unsigned char *sig, - unsigned int *siglen, DSA *dsa); -OSSL_DEPRECATEDIN_3_0 int DSA_verify(int type, const unsigned char *dgst, - int dgst_len, const unsigned char *sigbuf, - int siglen, DSA *dsa); - -# define DSA_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DSA, l, p, newf, dupf, freef) -OSSL_DEPRECATEDIN_3_0 int DSA_set_ex_data(DSA *d, int idx, void *arg); -OSSL_DEPRECATEDIN_3_0 void *DSA_get_ex_data(const DSA *d, int idx); - -DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0, - DSA, DSAPublicKey) -DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0, - DSA, DSAPrivateKey) -DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0, - DSA, DSAparams) -# endif - -# ifndef OPENSSL_NO_DEPRECATED_0_9_8 -/* Deprecated version */ -OSSL_DEPRECATEDIN_0_9_8 -DSA *DSA_generate_parameters(int bits, unsigned char *seed, int seed_len, - int *counter_ret, unsigned long *h_ret, - void (*callback) (int, int, void *), - void *cb_arg); -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* New version */ -OSSL_DEPRECATEDIN_3_0 int DSA_generate_parameters_ex(DSA *dsa, int bits, - const unsigned char *seed, - int seed_len, - int *counter_ret, - unsigned long *h_ret, - BN_GENCB *cb); - -OSSL_DEPRECATEDIN_3_0 int DSA_generate_key(DSA *a); - -OSSL_DEPRECATEDIN_3_0 int DSAparams_print(BIO *bp, const DSA *x); -OSSL_DEPRECATEDIN_3_0 int DSA_print(BIO *bp, const DSA *x, int off); -# ifndef OPENSSL_NO_STDIO -OSSL_DEPRECATEDIN_3_0 int DSAparams_print_fp(FILE *fp, const DSA *x); -OSSL_DEPRECATEDIN_3_0 int DSA_print_fp(FILE *bp, const DSA *x, int off); -# endif - -# define DSS_prime_checks 64 -/* - * Primality test according to FIPS PUB 186-4, Appendix C.3. Since we only - * have one value here we set the number of checks to 64 which is the 128 bit - * security level that is the highest level and valid for creating a 3072 bit - * DSA key. - */ -# define DSA_is_prime(n, callback, cb_arg) \ - BN_is_prime(n, DSS_prime_checks, callback, NULL, cb_arg) - -# ifndef OPENSSL_NO_DH -/* - * Convert DSA structure (key or just parameters) into DH structure (be - * careful to avoid small subgroup attacks when using this!) - */ -OSSL_DEPRECATEDIN_3_0 DH *DSA_dup_DH(const DSA *r); -# endif - -OSSL_DEPRECATEDIN_3_0 void DSA_get0_pqg(const DSA *d, const BIGNUM **p, - const BIGNUM **q, const BIGNUM **g); -OSSL_DEPRECATEDIN_3_0 int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g); -OSSL_DEPRECATEDIN_3_0 void DSA_get0_key(const DSA *d, const BIGNUM **pub_key, - const BIGNUM **priv_key); -OSSL_DEPRECATEDIN_3_0 int DSA_set0_key(DSA *d, BIGNUM *pub_key, - BIGNUM *priv_key); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DSA_get0_p(const DSA *d); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DSA_get0_q(const DSA *d); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DSA_get0_g(const DSA *d); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DSA_get0_pub_key(const DSA *d); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DSA_get0_priv_key(const DSA *d); -OSSL_DEPRECATEDIN_3_0 void DSA_clear_flags(DSA *d, int flags); -OSSL_DEPRECATEDIN_3_0 int DSA_test_flags(const DSA *d, int flags); -OSSL_DEPRECATEDIN_3_0 void DSA_set_flags(DSA *d, int flags); -OSSL_DEPRECATEDIN_3_0 ENGINE *DSA_get0_engine(DSA *d); - -OSSL_DEPRECATEDIN_3_0 DSA_METHOD *DSA_meth_new(const char *name, int flags); -OSSL_DEPRECATEDIN_3_0 void DSA_meth_free(DSA_METHOD *dsam); -OSSL_DEPRECATEDIN_3_0 DSA_METHOD *DSA_meth_dup(const DSA_METHOD *dsam); -OSSL_DEPRECATEDIN_3_0 const char *DSA_meth_get0_name(const DSA_METHOD *dsam); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set1_name(DSA_METHOD *dsam, - const char *name); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_get_flags(const DSA_METHOD *dsam); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_flags(DSA_METHOD *dsam, int flags); -OSSL_DEPRECATEDIN_3_0 void *DSA_meth_get0_app_data(const DSA_METHOD *dsam); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set0_app_data(DSA_METHOD *dsam, - void *app_data); -OSSL_DEPRECATEDIN_3_0 DSA_SIG *(*DSA_meth_get_sign(const DSA_METHOD *dsam)) - (const unsigned char *, int, DSA *); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_sign(DSA_METHOD *dsam, - DSA_SIG *(*sign) (const unsigned char *, int, DSA *)); -OSSL_DEPRECATEDIN_3_0 int (*DSA_meth_get_sign_setup(const DSA_METHOD *dsam)) - (DSA *, BN_CTX *, BIGNUM **, BIGNUM **); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_sign_setup(DSA_METHOD *dsam, - int (*sign_setup) (DSA *, BN_CTX *, BIGNUM **, BIGNUM **)); -OSSL_DEPRECATEDIN_3_0 int (*DSA_meth_get_verify(const DSA_METHOD *dsam)) - (const unsigned char *, int, DSA_SIG *, DSA *); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_verify(DSA_METHOD *dsam, - int (*verify) (const unsigned char *, int, DSA_SIG *, DSA *)); -OSSL_DEPRECATEDIN_3_0 int (*DSA_meth_get_mod_exp(const DSA_METHOD *dsam)) - (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, - const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_mod_exp(DSA_METHOD *dsam, - int (*mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, - const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, - BN_MONT_CTX *)); -OSSL_DEPRECATEDIN_3_0 int (*DSA_meth_get_bn_mod_exp(const DSA_METHOD *dsam)) - (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, - BN_CTX *, BN_MONT_CTX *); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_bn_mod_exp(DSA_METHOD *dsam, - int (*bn_mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, - const BIGNUM *, BN_CTX *, BN_MONT_CTX *)); -OSSL_DEPRECATEDIN_3_0 int (*DSA_meth_get_init(const DSA_METHOD *dsam))(DSA *); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_init(DSA_METHOD *dsam, - int (*init)(DSA *)); -OSSL_DEPRECATEDIN_3_0 int (*DSA_meth_get_finish(const DSA_METHOD *dsam))(DSA *); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_finish(DSA_METHOD *dsam, - int (*finish)(DSA *)); -OSSL_DEPRECATEDIN_3_0 int (*DSA_meth_get_paramgen(const DSA_METHOD *dsam)) - (DSA *, int, const unsigned char *, int, int *, unsigned long *, - BN_GENCB *); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_paramgen(DSA_METHOD *dsam, - int (*paramgen) (DSA *, int, const unsigned char *, int, int *, - unsigned long *, BN_GENCB *)); -OSSL_DEPRECATEDIN_3_0 int (*DSA_meth_get_keygen(const DSA_METHOD *dsam))(DSA *); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_keygen(DSA_METHOD *dsam, - int (*keygen) (DSA *)); - -# endif -# endif -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/dsaerr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/dsaerr.h deleted file mode 100644 index 26ada57..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/dsaerr.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_DSAERR_H -# define OPENSSL_DSAERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_DSA - - -/* - * DSA reason codes. - */ -# define DSA_R_BAD_FFC_PARAMETERS 114 -# define DSA_R_BAD_Q_VALUE 102 -# define DSA_R_BN_DECODE_ERROR 108 -# define DSA_R_BN_ERROR 109 -# define DSA_R_DECODE_ERROR 104 -# define DSA_R_INVALID_DIGEST_TYPE 106 -# define DSA_R_INVALID_PARAMETERS 112 -# define DSA_R_MISSING_PARAMETERS 101 -# define DSA_R_MISSING_PRIVATE_KEY 111 -# define DSA_R_MODULUS_TOO_LARGE 103 -# define DSA_R_NO_PARAMETERS_SET 107 -# define DSA_R_PARAMETER_ENCODING_ERROR 105 -# define DSA_R_P_NOT_PRIME 115 -# define DSA_R_Q_NOT_PRIME 113 -# define DSA_R_SEED_LEN_SMALL 110 -# define DSA_R_TOO_MANY_RETRIES 116 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/dtls1.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/dtls1.h deleted file mode 100644 index 5dc6b54..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/dtls1.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2005-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_DTLS1_H -# define OPENSSL_DTLS1_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_DTLS1_H -# endif - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* DTLS*_VERSION constants are defined in prov_ssl.h */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define DTLS_MIN_VERSION DTLS1_VERSION -# define DTLS_MAX_VERSION DTLS1_2_VERSION -# endif -# define DTLS1_VERSION_MAJOR 0xFE - -/* Special value for method supporting multiple versions */ -# define DTLS_ANY_VERSION 0x1FFFF - -/* lengths of messages */ - -# define DTLS1_COOKIE_LENGTH 255 - -# define DTLS1_RT_HEADER_LENGTH 13 - -# define DTLS1_HM_HEADER_LENGTH 12 - -# define DTLS1_HM_BAD_FRAGMENT -2 -# define DTLS1_HM_FRAGMENT_RETRY -3 - -# define DTLS1_CCS_HEADER_LENGTH 1 - -# define DTLS1_AL_HEADER_LENGTH 2 - -# define DTLS1_TMO_ALERT_COUNT 12 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/e_os2.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/e_os2.h deleted file mode 100644 index b8c6107..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/e_os2.h +++ /dev/null @@ -1,310 +0,0 @@ -/* - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_E_OS2_H -# define OPENSSL_E_OS2_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_E_OS2_H -# endif - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/****************************************************************************** - * Detect operating systems. This probably needs completing. - * The result is that at least one OPENSSL_SYS_os macro should be defined. - * However, if none is defined, Unix is assumed. - **/ - -# define OPENSSL_SYS_UNIX - -/* --------------------- Microsoft operating systems ---------------------- */ - -/* - * Note that MSDOS actually denotes 32-bit environments running on top of - * MS-DOS, such as DJGPP one. - */ -# if defined(OPENSSL_SYS_MSDOS) -# undef OPENSSL_SYS_UNIX -# endif - -/* - * For 32 bit environment, there seems to be the CygWin environment and then - * all the others that try to do the same thing Microsoft does... - */ -/* - * UEFI lives here because it might be built with a Microsoft toolchain and - * we need to avoid the false positive match on Windows. - */ -# if defined(OPENSSL_SYS_UEFI) -# undef OPENSSL_SYS_UNIX -# elif defined(OPENSSL_SYS_UWIN) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WIN32_UWIN -# else -# if defined(__CYGWIN__) || defined(OPENSSL_SYS_CYGWIN) -# define OPENSSL_SYS_WIN32_CYGWIN -# else -# if defined(_WIN32) || defined(OPENSSL_SYS_WIN32) -# undef OPENSSL_SYS_UNIX -# if !defined(OPENSSL_SYS_WIN32) -# define OPENSSL_SYS_WIN32 -# endif -# endif -# if defined(_WIN64) || defined(OPENSSL_SYS_WIN64) -# undef OPENSSL_SYS_UNIX -# if !defined(OPENSSL_SYS_WIN64) -# define OPENSSL_SYS_WIN64 -# endif -# endif -# if defined(OPENSSL_SYS_WINNT) -# undef OPENSSL_SYS_UNIX -# endif -# if defined(OPENSSL_SYS_WINCE) -# undef OPENSSL_SYS_UNIX -# endif -# endif -# endif - -/* Anything that tries to look like Microsoft is "Windows" */ -# if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN64) || defined(OPENSSL_SYS_WINNT) || defined(OPENSSL_SYS_WINCE) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WINDOWS -# ifndef OPENSSL_SYS_MSDOS -# define OPENSSL_SYS_MSDOS -# endif -# endif - -/* - * DLL settings. This part is a bit tough, because it's up to the - * application implementer how he or she will link the application, so it - * requires some macro to be used. - */ -# ifdef OPENSSL_SYS_WINDOWS -# ifndef OPENSSL_OPT_WINDLL -# if defined(_WINDLL) /* This is used when building OpenSSL to - * indicate that DLL linkage should be used */ -# define OPENSSL_OPT_WINDLL -# endif -# endif -# endif - -/* ------------------------------- OpenVMS -------------------------------- */ -# if defined(__VMS) || defined(VMS) -# if !defined(OPENSSL_SYS_VMS) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_VMS -# endif -# if defined(__DECC) -# define OPENSSL_SYS_VMS_DECC -# elif defined(__DECCXX) -# define OPENSSL_SYS_VMS_DECC -# define OPENSSL_SYS_VMS_DECCXX -# else -# define OPENSSL_SYS_VMS_NODECC -# endif -# endif - -/* -------------------------------- Unix ---------------------------------- */ -# ifdef OPENSSL_SYS_UNIX -# if defined(linux) || defined(__linux__) && !defined(OPENSSL_SYS_LINUX) -# define OPENSSL_SYS_LINUX -# endif -# if defined(_AIX) && !defined(OPENSSL_SYS_AIX) -# define OPENSSL_SYS_AIX -# endif -# endif - -/* -------------------------------- VOS ----------------------------------- */ -# if defined(__VOS__) && !defined(OPENSSL_SYS_VOS) -# define OPENSSL_SYS_VOS -# ifdef __HPPA__ -# define OPENSSL_SYS_VOS_HPPA -# endif -# ifdef __IA32__ -# define OPENSSL_SYS_VOS_IA32 -# endif -# endif - -/* ---------------------------- HP NonStop -------------------------------- */ -# ifdef __TANDEM -# ifdef _STRING -# include -# endif -# define OPENSSL_USE_BUILD_DATE -# if defined(OPENSSL_THREADS) && defined(_SPT_MODEL_) -# define SPT_THREAD_SIGNAL 1 -# define SPT_THREAD_AWARE 1 -# include -# elif defined(OPENSSL_THREADS) && defined(_PUT_MODEL_) -# include -# endif -# endif - -/** - * That's it for OS-specific stuff - *****************************************************************************/ - -/*- - * OPENSSL_EXTERN is normally used to declare a symbol with possible extra - * attributes to handle its presence in a shared library. - * OPENSSL_EXPORT is used to define a symbol with extra possible attributes - * to make it visible in a shared library. - * Care needs to be taken when a header file is used both to declare and - * define symbols. Basically, for any library that exports some global - * variables, the following code must be present in the header file that - * declares them, before OPENSSL_EXTERN is used: - * - * #ifdef SOME_BUILD_FLAG_MACRO - * # undef OPENSSL_EXTERN - * # define OPENSSL_EXTERN OPENSSL_EXPORT - * #endif - * - * The default is to have OPENSSL_EXPORT and OPENSSL_EXTERN - * have some generally sensible values. - */ - -# if defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL) -# define OPENSSL_EXPORT extern __declspec(dllexport) -# define OPENSSL_EXTERN extern __declspec(dllimport) -# else -# define OPENSSL_EXPORT extern -# define OPENSSL_EXTERN extern -# endif - -# ifdef _WIN32 -# ifdef _WIN64 -# define ossl_ssize_t __int64 -# define OSSL_SSIZE_MAX _I64_MAX -# else -# define ossl_ssize_t int -# define OSSL_SSIZE_MAX INT_MAX -# endif -# endif - -# if defined(OPENSSL_SYS_UEFI) && !defined(ossl_ssize_t) -# define ossl_ssize_t INTN -# define OSSL_SSIZE_MAX MAX_INTN -# endif - -# ifndef ossl_ssize_t -# include -# define ossl_ssize_t ssize_t -# if defined(SSIZE_MAX) -# define OSSL_SSIZE_MAX SSIZE_MAX -# elif defined(_POSIX_SSIZE_MAX) -# define OSSL_SSIZE_MAX _POSIX_SSIZE_MAX -# else -# define OSSL_SSIZE_MAX ((ssize_t)(SIZE_MAX>>1)) -# endif -# endif - -# if defined(UNUSEDRESULT_DEBUG) -# define __owur __attribute__((__warn_unused_result__)) -# else -# define __owur -# endif - -/* Standard integer types */ -# define OPENSSL_NO_INTTYPES_H -# define OPENSSL_NO_STDINT_H -# if defined(OPENSSL_SYS_UEFI) -typedef INT8 int8_t; -typedef UINT8 uint8_t; -typedef INT16 int16_t; -typedef UINT16 uint16_t; -typedef INT32 int32_t; -typedef UINT32 uint32_t; -typedef INT64 int64_t; -typedef UINT64 uint64_t; -typedef UINTN uintptr_t; -# elif (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - defined(__osf__) || defined(__sgi) || defined(__hpux) || \ - defined(OPENSSL_SYS_VMS) || defined (__OpenBSD__) -# include -# undef OPENSSL_NO_INTTYPES_H -/* Because the specs say that inttypes.h includes stdint.h if present */ -# undef OPENSSL_NO_STDINT_H -# elif defined(_MSC_VER) && _MSC_VER<1600 -/* - * minimally required typdefs for systems not supporting inttypes.h or - * stdint.h: currently just older VC++ - */ -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef short int16_t; -typedef unsigned short uint16_t; -typedef int int32_t; -typedef unsigned int uint32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -# elif defined(OPENSSL_SYS_TANDEM) -# include -# include -# else -# include -# undef OPENSSL_NO_STDINT_H -# endif -# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L && \ - defined(INTMAX_MAX) && defined(UINTMAX_MAX) -typedef intmax_t ossl_intmax_t; -typedef uintmax_t ossl_uintmax_t; -# else -/* Fall back to the largest we know we require and can handle */ -typedef int64_t ossl_intmax_t; -typedef uint64_t ossl_uintmax_t; -# endif - -/* ossl_inline: portable inline definition usable in public headers */ -# if !defined(inline) && !defined(__cplusplus) -# if defined(__STDC_VERSION__) && __STDC_VERSION__>=199901L - /* just use inline */ -# define ossl_inline inline -# elif defined(__GNUC__) && __GNUC__>=2 -# define ossl_inline __inline__ -# elif defined(_MSC_VER) - /* - * Visual Studio: inline is available in C++ only, however - * __inline is available for C, see - * http://msdn.microsoft.com/en-us/library/z8y1yy88.aspx - */ -# define ossl_inline __inline -# else -# define ossl_inline -# endif -# else -# define ossl_inline inline -# endif - -# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && \ - !defined(__cplusplus) -# define ossl_noreturn _Noreturn -# elif defined(__GNUC__) && __GNUC__ >= 2 -# define ossl_noreturn __attribute__((noreturn)) -# else -# define ossl_noreturn -# endif - -/* ossl_unused: portable unused attribute for use in public headers */ -# if defined(__GNUC__) -# define ossl_unused __attribute__((unused)) -# else -# define ossl_unused -# endif - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/e_ostime.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/e_ostime.h deleted file mode 100644 index 0e17487..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/e_ostime.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_E_OSTIME_H -# define OPENSSL_E_OSTIME_H -# pragma once - -# include -# include -# include - -/* - * This header guarantees that 'struct timeval' will be available. It includes - * the minimum headers needed to facilitate this. This may still be a - * substantial set of headers on some platforms (e.g. on Win32). - */ - -# if defined(OPENSSL_SYS_WINDOWS) -# if !defined(_WINSOCKAPI_) - /* - * winsock2.h defines _WINSOCK2API_ and both winsock2.h and winsock.h define - * _WINSOCKAPI_. Both of these provide struct timeval. Don't include - * winsock2.h if either header has been included to avoid breakage with - * applications that prefer to use over . - */ -# include -# endif -# else -# include -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ebcdic.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/ebcdic.h deleted file mode 100644 index e0ae1aa..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ebcdic.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_EBCDIC_H -# define OPENSSL_EBCDIC_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_EBCDIC_H -# endif - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Avoid name clashes with other applications */ -# define os_toascii _openssl_os_toascii -# define os_toebcdic _openssl_os_toebcdic -# define ebcdic2ascii _openssl_ebcdic2ascii -# define ascii2ebcdic _openssl_ascii2ebcdic - -extern const unsigned char os_toascii[256]; -extern const unsigned char os_toebcdic[256]; -void *ebcdic2ascii(void *dest, const void *srce, size_t count); -void *ascii2ebcdic(void *dest, const void *srce, size_t count); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ec.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/ec.h deleted file mode 100644 index e1cbe98..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ec.h +++ /dev/null @@ -1,1588 +0,0 @@ -/* - * Copyright 2002-2023 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_EC_H -# define OPENSSL_EC_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_EC_H -# endif - -# include -# include - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* Values for EVP_PKEY_CTX_set_ec_param_enc() */ -# define OPENSSL_EC_EXPLICIT_CURVE 0x000 -# define OPENSSL_EC_NAMED_CURVE 0x001 - -int EVP_PKEY_CTX_set_ec_paramgen_curve_nid(EVP_PKEY_CTX *ctx, int nid); -int EVP_PKEY_CTX_set_ec_param_enc(EVP_PKEY_CTX *ctx, int param_enc); -int EVP_PKEY_CTX_set_ecdh_cofactor_mode(EVP_PKEY_CTX *ctx, int cofactor_mode); -int EVP_PKEY_CTX_get_ecdh_cofactor_mode(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_CTX_set_ecdh_kdf_type(EVP_PKEY_CTX *ctx, int kdf); -int EVP_PKEY_CTX_get_ecdh_kdf_type(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_CTX_set_ecdh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); -int EVP_PKEY_CTX_get_ecdh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); - -int EVP_PKEY_CTX_set_ecdh_kdf_outlen(EVP_PKEY_CTX *ctx, int len); -int EVP_PKEY_CTX_get_ecdh_kdf_outlen(EVP_PKEY_CTX *ctx, int *len); - -int EVP_PKEY_CTX_set0_ecdh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char *ukm, - int len); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_CTX_get0_ecdh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char **ukm); -# endif - -# define EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_EC_PARAM_ENC (EVP_PKEY_ALG_CTRL + 2) -# define EVP_PKEY_CTRL_EC_ECDH_COFACTOR (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_EC_KDF_TYPE (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 5) -# define EVP_PKEY_CTRL_GET_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 8) -# define EVP_PKEY_CTRL_EC_KDF_UKM (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_GET_EC_KDF_UKM (EVP_PKEY_ALG_CTRL + 10) - -/* KDF types */ -# define EVP_PKEY_ECDH_KDF_NONE 1 -# define EVP_PKEY_ECDH_KDF_X9_63 2 -/* - * The old name for EVP_PKEY_ECDH_KDF_X9_63 - * The ECDH KDF specification has been mistakenly attributed to ANSI X9.62, - * it is actually specified in ANSI X9.63. - * This identifier is retained for backwards compatibility - */ -# define EVP_PKEY_ECDH_KDF_X9_62 EVP_PKEY_ECDH_KDF_X9_63 - -/** Enum for the point conversion form as defined in X9.62 (ECDSA) - * for the encoding of a elliptic curve point (x,y) */ -typedef enum { - /** the point is encoded as z||x, where the octet z specifies - * which solution of the quadratic equation y is */ - POINT_CONVERSION_COMPRESSED = 2, - /** the point is encoded as z||x||y, where z is the octet 0x04 */ - POINT_CONVERSION_UNCOMPRESSED = 4, - /** the point is encoded as z||x||y, where the octet z specifies - * which solution of the quadratic equation y is */ - POINT_CONVERSION_HYBRID = 6 -} point_conversion_form_t; - -const char *OSSL_EC_curve_nid2name(int nid); - -# ifndef OPENSSL_NO_STDIO -# include -# endif -# ifndef OPENSSL_NO_EC -# include -# include -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# include -# endif -# include - -# ifndef OPENSSL_ECC_MAX_FIELD_BITS -# define OPENSSL_ECC_MAX_FIELD_BITS 661 -# endif - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -typedef struct ec_method_st EC_METHOD; -# endif -typedef struct ec_group_st EC_GROUP; -typedef struct ec_point_st EC_POINT; -typedef struct ecpk_parameters_st ECPKPARAMETERS; -typedef struct ec_parameters_st ECPARAMETERS; - -/********************************************************************/ -/* EC_METHODs for curves over GF(p) */ -/********************************************************************/ - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/** Returns the basic GFp ec methods which provides the basis for the - * optimized methods. - * \return EC_METHOD object - */ -OSSL_DEPRECATEDIN_3_0 const EC_METHOD *EC_GFp_simple_method(void); - -/** Returns GFp methods using montgomery multiplication. - * \return EC_METHOD object - */ -OSSL_DEPRECATEDIN_3_0 const EC_METHOD *EC_GFp_mont_method(void); - -/** Returns GFp methods using optimized methods for NIST recommended curves - * \return EC_METHOD object - */ -OSSL_DEPRECATEDIN_3_0 const EC_METHOD *EC_GFp_nist_method(void); - -# ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 -/** Returns 64-bit optimized methods for nistp224 - * \return EC_METHOD object - */ -OSSL_DEPRECATEDIN_3_0 const EC_METHOD *EC_GFp_nistp224_method(void); - -/** Returns 64-bit optimized methods for nistp256 - * \return EC_METHOD object - */ -OSSL_DEPRECATEDIN_3_0 const EC_METHOD *EC_GFp_nistp256_method(void); - -/** Returns 64-bit optimized methods for nistp521 - * \return EC_METHOD object - */ -OSSL_DEPRECATEDIN_3_0 const EC_METHOD *EC_GFp_nistp521_method(void); -# endif /* OPENSSL_NO_EC_NISTP_64_GCC_128 */ - -# ifndef OPENSSL_NO_EC2M -/********************************************************************/ -/* EC_METHOD for curves over GF(2^m) */ -/********************************************************************/ - -/** Returns the basic GF2m ec method - * \return EC_METHOD object - */ -OSSL_DEPRECATEDIN_3_0 const EC_METHOD *EC_GF2m_simple_method(void); - -# endif - -/********************************************************************/ -/* EC_GROUP functions */ -/********************************************************************/ - -/** - * Creates a new EC_GROUP object - * \param meth EC_METHOD to use - * \return newly created EC_GROUP object or NULL in case of an error. - */ -OSSL_DEPRECATEDIN_3_0 EC_GROUP *EC_GROUP_new(const EC_METHOD *meth); - -/** Clears and frees a EC_GROUP object - * \param group EC_GROUP object to be cleared and freed. - */ -OSSL_DEPRECATEDIN_3_0 void EC_GROUP_clear_free(EC_GROUP *group); - -/** Returns the EC_METHOD of the EC_GROUP object. - * \param group EC_GROUP object - * \return EC_METHOD used in this EC_GROUP object. - */ -OSSL_DEPRECATEDIN_3_0 const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group); - -/** Returns the field type of the EC_METHOD. - * \param meth EC_METHOD object - * \return NID of the underlying field type OID. - */ -OSSL_DEPRECATEDIN_3_0 int EC_METHOD_get_field_type(const EC_METHOD *meth); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -/** Frees a EC_GROUP object - * \param group EC_GROUP object to be freed. - */ -void EC_GROUP_free(EC_GROUP *group); - -/** Copies EC_GROUP objects. Note: both EC_GROUPs must use the same EC_METHOD. - * \param dst destination EC_GROUP object - * \param src source EC_GROUP object - * \return 1 on success and 0 if an error occurred. - */ -int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src); - -/** Creates a new EC_GROUP object and copies the content - * form src to the newly created EC_KEY object - * \param src source EC_GROUP object - * \return newly created EC_GROUP object or NULL in case of an error. - */ -EC_GROUP *EC_GROUP_dup(const EC_GROUP *src); - -/** Sets the generator and its order/cofactor of a EC_GROUP object. - * \param group EC_GROUP object - * \param generator EC_POINT object with the generator. - * \param order the order of the group generated by the generator. - * \param cofactor the index of the sub-group generated by the generator - * in the group of all points on the elliptic curve. - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, - const BIGNUM *order, const BIGNUM *cofactor); - -/** Returns the generator of a EC_GROUP object. - * \param group EC_GROUP object - * \return the currently used generator (possibly NULL). - */ -const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group); - -/** Returns the montgomery data for order(Generator) - * \param group EC_GROUP object - * \return the currently used montgomery data (possibly NULL). -*/ -BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group); - -/** Gets the order of a EC_GROUP - * \param group EC_GROUP object - * \param order BIGNUM to which the order is copied - * \param ctx unused - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx); - -/** Gets the order of an EC_GROUP - * \param group EC_GROUP object - * \return the group order - */ -const BIGNUM *EC_GROUP_get0_order(const EC_GROUP *group); - -/** Gets the number of bits of the order of an EC_GROUP - * \param group EC_GROUP object - * \return number of bits of group order. - */ -int EC_GROUP_order_bits(const EC_GROUP *group); - -/** Gets the cofactor of a EC_GROUP - * \param group EC_GROUP object - * \param cofactor BIGNUM to which the cofactor is copied - * \param ctx unused - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, - BN_CTX *ctx); - -/** Gets the cofactor of an EC_GROUP - * \param group EC_GROUP object - * \return the group cofactor - */ -const BIGNUM *EC_GROUP_get0_cofactor(const EC_GROUP *group); - -/** Sets the name of a EC_GROUP object - * \param group EC_GROUP object - * \param nid NID of the curve name OID - */ -void EC_GROUP_set_curve_name(EC_GROUP *group, int nid); - -/** Returns the curve name of a EC_GROUP object - * \param group EC_GROUP object - * \return NID of the curve name OID or 0 if not set. - */ -int EC_GROUP_get_curve_name(const EC_GROUP *group); - -/** Gets the field of an EC_GROUP - * \param group EC_GROUP object - * \return the group field - */ -const BIGNUM *EC_GROUP_get0_field(const EC_GROUP *group); - -/** Returns the field type of the EC_GROUP. - * \param group EC_GROUP object - * \return NID of the underlying field type OID. - */ -int EC_GROUP_get_field_type(const EC_GROUP *group); - -void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); -int EC_GROUP_get_asn1_flag(const EC_GROUP *group); - -void EC_GROUP_set_point_conversion_form(EC_GROUP *group, - point_conversion_form_t form); -point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); - -unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); -size_t EC_GROUP_get_seed_len(const EC_GROUP *); -size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); - -/** Sets the parameters of an ec curve defined by y^2 = x^3 + a*x + b (for GFp) - * or y^2 + x*y = x^3 + a*x^2 + b (for GF2m) - * \param group EC_GROUP object - * \param p BIGNUM with the prime number (GFp) or the polynomial - * defining the underlying field (GF2m) - * \param a BIGNUM with parameter a of the equation - * \param b BIGNUM with parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_set_curve(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); - -/** Gets the parameters of the ec curve defined by y^2 = x^3 + a*x + b (for GFp) - * or y^2 + x*y = x^3 + a*x^2 + b (for GF2m) - * \param group EC_GROUP object - * \param p BIGNUM with the prime number (GFp) or the polynomial - * defining the underlying field (GF2m) - * \param a BIGNUM for parameter a of the equation - * \param b BIGNUM for parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, - BN_CTX *ctx); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/** Sets the parameters of an ec curve. Synonym for EC_GROUP_set_curve - * \param group EC_GROUP object - * \param p BIGNUM with the prime number (GFp) or the polynomial - * defining the underlying field (GF2m) - * \param a BIGNUM with parameter a of the equation - * \param b BIGNUM with parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_GROUP_set_curve_GFp(EC_GROUP *group, - const BIGNUM *p, - const BIGNUM *a, - const BIGNUM *b, - BN_CTX *ctx); - -/** Gets the parameters of an ec curve. Synonym for EC_GROUP_get_curve - * \param group EC_GROUP object - * \param p BIGNUM with the prime number (GFp) or the polynomial - * defining the underlying field (GF2m) - * \param a BIGNUM for parameter a of the equation - * \param b BIGNUM for parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_GROUP_get_curve_GFp(const EC_GROUP *group, - BIGNUM *p, - BIGNUM *a, BIGNUM *b, - BN_CTX *ctx); - -# ifndef OPENSSL_NO_EC2M -/** Sets the parameter of an ec curve. Synonym for EC_GROUP_set_curve - * \param group EC_GROUP object - * \param p BIGNUM with the prime number (GFp) or the polynomial - * defining the underlying field (GF2m) - * \param a BIGNUM with parameter a of the equation - * \param b BIGNUM with parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_GROUP_set_curve_GF2m(EC_GROUP *group, - const BIGNUM *p, - const BIGNUM *a, - const BIGNUM *b, - BN_CTX *ctx); - -/** Gets the parameters of an ec curve. Synonym for EC_GROUP_get_curve - * \param group EC_GROUP object - * \param p BIGNUM with the prime number (GFp) or the polynomial - * defining the underlying field (GF2m) - * \param a BIGNUM for parameter a of the equation - * \param b BIGNUM for parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, - BIGNUM *p, - BIGNUM *a, BIGNUM *b, - BN_CTX *ctx); -# endif /* OPENSSL_NO_EC2M */ -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -/** Returns the number of bits needed to represent a field element - * \param group EC_GROUP object - * \return number of bits needed to represent a field element - */ -int EC_GROUP_get_degree(const EC_GROUP *group); - -/** Checks whether the parameter in the EC_GROUP define a valid ec group - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 if group is a valid ec group and 0 otherwise - */ -int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx); - -/** Checks whether the discriminant of the elliptic curve is zero or not - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 if the discriminant is not zero and 0 otherwise - */ -int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx); - -/** Compares two EC_GROUP objects - * \param a first EC_GROUP object - * \param b second EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 0 if the groups are equal, 1 if not, or -1 on error - */ -int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx); - -/* - * EC_GROUP_new_GF*() calls EC_GROUP_new() and EC_GROUP_set_GF*() after - * choosing an appropriate EC_METHOD - */ - -/** Creates a new EC_GROUP object with the specified parameters defined - * over GFp (defined by the equation y^2 = x^3 + a*x + b) - * \param p BIGNUM with the prime number - * \param a BIGNUM with the parameter a of the equation - * \param b BIGNUM with the parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return newly created EC_GROUP object with the specified parameters - */ -EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); -# ifndef OPENSSL_NO_EC2M -/** Creates a new EC_GROUP object with the specified parameters defined - * over GF2m (defined by the equation y^2 + x*y = x^3 + a*x^2 + b) - * \param p BIGNUM with the polynomial defining the underlying field - * \param a BIGNUM with the parameter a of the equation - * \param b BIGNUM with the parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return newly created EC_GROUP object with the specified parameters - */ -EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); -# endif - -/** - * Creates a EC_GROUP object with a curve specified by parameters. - * The parameters may be explicit or a named curve, - * \param params A list of parameters describing the group. - * \param libctx The associated library context or NULL for the default - * context - * \param propq A property query string - * \return newly created EC_GROUP object with specified parameters or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_from_params(const OSSL_PARAM params[], - OSSL_LIB_CTX *libctx, const char *propq); - -/** - * Creates an OSSL_PARAM array with the parameters describing the given - * EC_GROUP. - * The resulting parameters may contain an explicit or a named curve depending - * on the EC_GROUP. - * \param group pointer to the EC_GROUP object - * \param libctx The associated library context or NULL for the default - * context - * \param propq A property query string - * \param bnctx BN_CTX object (optional) - * \return newly created OSSL_PARAM array with the parameters - * describing the given EC_GROUP or NULL if an error occurred - */ -OSSL_PARAM *EC_GROUP_to_params(const EC_GROUP *group, OSSL_LIB_CTX *libctx, - const char *propq, BN_CTX *bnctx); - -/** - * Creates a EC_GROUP object with a curve specified by a NID - * \param libctx The associated library context or NULL for the default - * context - * \param propq A property query string - * \param nid NID of the OID of the curve name - * \return newly created EC_GROUP object with specified curve or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_by_curve_name_ex(OSSL_LIB_CTX *libctx, const char *propq, - int nid); - -/** - * Creates a EC_GROUP object with a curve specified by a NID. Same as - * EC_GROUP_new_by_curve_name_ex but the libctx and propq are always - * NULL. - * \param nid NID of the OID of the curve name - * \return newly created EC_GROUP object with specified curve or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_by_curve_name(int nid); - -/** Creates a new EC_GROUP object from an ECPARAMETERS object - * \param params pointer to the ECPARAMETERS object - * \return newly created EC_GROUP object with specified curve or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params); - -/** Creates an ECPARAMETERS object for the given EC_GROUP object. - * \param group pointer to the EC_GROUP object - * \param params pointer to an existing ECPARAMETERS object or NULL - * \return pointer to the new ECPARAMETERS object or NULL - * if an error occurred. - */ -ECPARAMETERS *EC_GROUP_get_ecparameters(const EC_GROUP *group, - ECPARAMETERS *params); - -/** Creates a new EC_GROUP object from an ECPKPARAMETERS object - * \param params pointer to an existing ECPKPARAMETERS object, or NULL - * \return newly created EC_GROUP object with specified curve, or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_from_ecpkparameters(const ECPKPARAMETERS *params); - -/** Creates an ECPKPARAMETERS object for the given EC_GROUP object. - * \param group pointer to the EC_GROUP object - * \param params pointer to an existing ECPKPARAMETERS object or NULL - * \return pointer to the new ECPKPARAMETERS object or NULL - * if an error occurred. - */ -ECPKPARAMETERS *EC_GROUP_get_ecpkparameters(const EC_GROUP *group, - ECPKPARAMETERS *params); - -/********************************************************************/ -/* handling of internal curves */ -/********************************************************************/ - -typedef struct { - int nid; - const char *comment; -} EC_builtin_curve; - -/* - * EC_builtin_curves(EC_builtin_curve *r, size_t size) returns number of all - * available curves or zero if a error occurred. In case r is not zero, - * nitems EC_builtin_curve structures are filled with the data of the first - * nitems internal groups - */ -size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); - -const char *EC_curve_nid2nist(int nid); -int EC_curve_nist2nid(const char *name); -int EC_GROUP_check_named_curve(const EC_GROUP *group, int nist_only, - BN_CTX *ctx); - -/********************************************************************/ -/* EC_POINT functions */ -/********************************************************************/ - -/** Creates a new EC_POINT object for the specified EC_GROUP - * \param group EC_GROUP the underlying EC_GROUP object - * \return newly created EC_POINT object or NULL if an error occurred - */ -EC_POINT *EC_POINT_new(const EC_GROUP *group); - -/** Frees a EC_POINT object - * \param point EC_POINT object to be freed - */ -void EC_POINT_free(EC_POINT *point); - -/** Clears and frees a EC_POINT object - * \param point EC_POINT object to be cleared and freed - */ -void EC_POINT_clear_free(EC_POINT *point); - -/** Copies EC_POINT object - * \param dst destination EC_POINT object - * \param src source EC_POINT object - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src); - -/** Creates a new EC_POINT object and copies the content of the supplied - * EC_POINT - * \param src source EC_POINT object - * \param group underlying the EC_GROUP object - * \return newly created EC_POINT object or NULL if an error occurred - */ -EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group); - -/** Sets a point to infinity (neutral element) - * \param group underlying EC_GROUP object - * \param point EC_POINT to set to infinity - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/** Returns the EC_METHOD used in EC_POINT object - * \param point EC_POINT object - * \return the EC_METHOD used - */ -OSSL_DEPRECATEDIN_3_0 const EC_METHOD *EC_POINT_method_of(const EC_POINT *point); - -/** Sets the jacobian projective coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with the x-coordinate - * \param y BIGNUM with the y-coordinate - * \param z BIGNUM with the z-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_POINT_set_Jprojective_coordinates_GFp - (const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, const BIGNUM *z, - BN_CTX *ctx); - -/** Gets the jacobian projective coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param z BIGNUM for the z-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_POINT_get_Jprojective_coordinates_GFp - (const EC_GROUP *group, const EC_POINT *p, - BIGNUM *x, BIGNUM *y, BIGNUM *z, BN_CTX *ctx); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -/** Sets the affine coordinates of an EC_POINT - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with the x-coordinate - * \param y BIGNUM with the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_set_affine_coordinates(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, - BN_CTX *ctx); - -/** Gets the affine coordinates of an EC_POINT. - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_get_affine_coordinates(const EC_GROUP *group, const EC_POINT *p, - BIGNUM *x, BIGNUM *y, BN_CTX *ctx); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/** Sets the affine coordinates of an EC_POINT. A synonym of - * EC_POINT_set_affine_coordinates - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with the x-coordinate - * \param y BIGNUM with the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_POINT_set_affine_coordinates_GFp - (const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, BN_CTX *ctx); - -/** Gets the affine coordinates of an EC_POINT. A synonym of - * EC_POINT_get_affine_coordinates - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_POINT_get_affine_coordinates_GFp - (const EC_GROUP *group, const EC_POINT *p, - BIGNUM *x, BIGNUM *y, BN_CTX *ctx); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -/** Sets the x9.62 compressed coordinates of a EC_POINT - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with x-coordinate - * \param y_bit integer with the y-Bit (either 0 or 1) - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_set_compressed_coordinates(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, int y_bit, - BN_CTX *ctx); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/** Sets the x9.62 compressed coordinates of a EC_POINT. A synonym of - * EC_POINT_set_compressed_coordinates - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with x-coordinate - * \param y_bit integer with the y-Bit (either 0 or 1) - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_POINT_set_compressed_coordinates_GFp - (const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, int y_bit, BN_CTX *ctx); -# ifndef OPENSSL_NO_EC2M -/** Sets the affine coordinates of an EC_POINT. A synonym of - * EC_POINT_set_affine_coordinates - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with the x-coordinate - * \param y BIGNUM with the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_POINT_set_affine_coordinates_GF2m - (const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, BN_CTX *ctx); - -/** Gets the affine coordinates of an EC_POINT. A synonym of - * EC_POINT_get_affine_coordinates - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_POINT_get_affine_coordinates_GF2m - (const EC_GROUP *group, const EC_POINT *p, - BIGNUM *x, BIGNUM *y, BN_CTX *ctx); - -/** Sets the x9.62 compressed coordinates of a EC_POINT. A synonym of - * EC_POINT_set_compressed_coordinates - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with x-coordinate - * \param y_bit integer with the y-Bit (either 0 or 1) - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_POINT_set_compressed_coordinates_GF2m - (const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, int y_bit, BN_CTX *ctx); -# endif -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -/** Encodes a EC_POINT object to a octet string - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param form point conversion form - * \param buf memory buffer for the result. If NULL the function returns - * required buffer size. - * \param len length of the memory buffer - * \param ctx BN_CTX object (optional) - * \return the length of the encoded octet string or 0 if an error occurred - */ -size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, - point_conversion_form_t form, - unsigned char *buf, size_t len, BN_CTX *ctx); - -/** Decodes a EC_POINT from a octet string - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param buf memory buffer with the encoded ec point - * \param len length of the encoded ec point - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, - const unsigned char *buf, size_t len, BN_CTX *ctx); - -/** Encodes an EC_POINT object to an allocated octet string - * \param group underlying EC_GROUP object - * \param point EC_POINT object - * \param form point conversion form - * \param pbuf returns pointer to allocated buffer - * \param ctx BN_CTX object (optional) - * \return the length of the encoded octet string or 0 if an error occurred - */ -size_t EC_POINT_point2buf(const EC_GROUP *group, const EC_POINT *point, - point_conversion_form_t form, - unsigned char **pbuf, BN_CTX *ctx); - -/* other interfaces to point2oct/oct2point: */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 BIGNUM *EC_POINT_point2bn(const EC_GROUP *, - const EC_POINT *, - point_conversion_form_t form, - BIGNUM *, BN_CTX *); -OSSL_DEPRECATEDIN_3_0 EC_POINT *EC_POINT_bn2point(const EC_GROUP *, - const BIGNUM *, - EC_POINT *, BN_CTX *); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, - point_conversion_form_t form, BN_CTX *); -EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *, - EC_POINT *, BN_CTX *); - -/********************************************************************/ -/* functions for doing EC_POINT arithmetic */ -/********************************************************************/ - -/** Computes the sum of two EC_POINT - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result (r = a + b) - * \param a EC_POINT object with the first summand - * \param b EC_POINT object with the second summand - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, - const EC_POINT *b, BN_CTX *ctx); - -/** Computes the double of a EC_POINT - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result (r = 2 * a) - * \param a EC_POINT object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, - BN_CTX *ctx); - -/** Computes the inverse of a EC_POINT - * \param group underlying EC_GROUP object - * \param a EC_POINT object to be inverted (it's used for the result as well) - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx); - -/** Checks whether the point is the neutral element of the group - * \param group the underlying EC_GROUP object - * \param p EC_POINT object - * \return 1 if the point is the neutral element and 0 otherwise - */ -int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p); - -/** Checks whether the point is on the curve - * \param group underlying EC_GROUP object - * \param point EC_POINT object to check - * \param ctx BN_CTX object (optional) - * \return 1 if the point is on the curve, 0 if not, or -1 on error - */ -int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, - BN_CTX *ctx); - -/** Compares two EC_POINTs - * \param group underlying EC_GROUP object - * \param a first EC_POINT object - * \param b second EC_POINT object - * \param ctx BN_CTX object (optional) - * \return 1 if the points are not equal, 0 if they are, or -1 on error - */ -int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, - BN_CTX *ctx); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int EC_POINT_make_affine(const EC_GROUP *group, - EC_POINT *point, BN_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, - EC_POINT *points[], BN_CTX *ctx); - -/** Computes r = generator * n + sum_{i=0}^{num-1} p[i] * m[i] - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result - * \param n BIGNUM with the multiplier for the group generator (optional) - * \param num number further summands - * \param p array of size num of EC_POINT objects - * \param m array of size num of BIGNUM objects - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, - const BIGNUM *n, size_t num, - const EC_POINT *p[], const BIGNUM *m[], - BN_CTX *ctx); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -/** Computes r = generator * n + q * m - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result - * \param n BIGNUM with the multiplier for the group generator (optional) - * \param q EC_POINT object with the first factor of the second summand - * \param m BIGNUM with the second factor of the second summand - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, - const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/** Stores multiples of generator for faster point multiplication - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx); - -/** Reports whether a precomputation has been done - * \param group EC_GROUP object - * \return 1 if a pre-computation has been done and 0 otherwise - */ -OSSL_DEPRECATEDIN_3_0 int EC_GROUP_have_precompute_mult(const EC_GROUP *group); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -/********************************************************************/ -/* ASN1 stuff */ -/********************************************************************/ - -DECLARE_ASN1_ITEM(ECPKPARAMETERS) -DECLARE_ASN1_ALLOC_FUNCTIONS(ECPKPARAMETERS) -DECLARE_ASN1_ITEM(ECPARAMETERS) -DECLARE_ASN1_ALLOC_FUNCTIONS(ECPARAMETERS) - -/* - * EC_GROUP_get_basis_type() returns the NID of the basis type used to - * represent the field elements - */ -int EC_GROUP_get_basis_type(const EC_GROUP *); -# ifndef OPENSSL_NO_EC2M -int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k); -int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, - unsigned int *k2, unsigned int *k3); -# endif - -EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len); -int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out); - -# define d2i_ECPKParameters_bio(bp,x) \ - ASN1_d2i_bio_of(EC_GROUP, NULL, d2i_ECPKParameters, bp, x) -# define i2d_ECPKParameters_bio(bp,x) \ - ASN1_i2d_bio_of(EC_GROUP, i2d_ECPKParameters, bp, x) -# define d2i_ECPKParameters_fp(fp,x) \ - (EC_GROUP *)ASN1_d2i_fp(NULL, (d2i_of_void *)d2i_ECPKParameters, (fp), \ - (void **)(x)) -# define i2d_ECPKParameters_fp(fp,x) \ - ASN1_i2d_fp((i2d_of_void *)i2d_ECPKParameters, (fp), (void *)(x)) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ECPKParameters_print(BIO *bp, const EC_GROUP *x, - int off); -# ifndef OPENSSL_NO_STDIO -OSSL_DEPRECATEDIN_3_0 int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, - int off); -# endif -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -/********************************************************************/ -/* EC_KEY functions */ -/********************************************************************/ - -/* some values for the encoding_flag */ -# define EC_PKEY_NO_PARAMETERS 0x001 -# define EC_PKEY_NO_PUBKEY 0x002 - -/* some values for the flags field */ -# define EC_FLAG_SM2_RANGE 0x0004 -# define EC_FLAG_COFACTOR_ECDH 0x1000 -# define EC_FLAG_CHECK_NAMED_GROUP 0x2000 -# define EC_FLAG_CHECK_NAMED_GROUP_NIST 0x4000 -# define EC_FLAG_CHECK_NAMED_GROUP_MASK \ - (EC_FLAG_CHECK_NAMED_GROUP | EC_FLAG_CHECK_NAMED_GROUP_NIST) - -/* Deprecated flags - it was using 0x01..0x02 */ -# define EC_FLAG_NON_FIPS_ALLOW 0x0000 -# define EC_FLAG_FIPS_CHECKED 0x0000 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/** - * Creates a new EC_KEY object. - * \param ctx The library context for to use for this EC_KEY. May be NULL in - * which case the default library context is used. - * \return EC_KEY object or NULL if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new_ex(OSSL_LIB_CTX *ctx, const char *propq); - -/** - * Creates a new EC_KEY object. Same as calling EC_KEY_new_ex with a - * NULL library context - * \return EC_KEY object or NULL if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new(void); - -OSSL_DEPRECATEDIN_3_0 int EC_KEY_get_flags(const EC_KEY *key); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_set_flags(EC_KEY *key, int flags); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_clear_flags(EC_KEY *key, int flags); - -OSSL_DEPRECATEDIN_3_0 int EC_KEY_decoded_from_explicit_params(const EC_KEY *key); - -/** - * Creates a new EC_KEY object using a named curve as underlying - * EC_GROUP object. - * \param ctx The library context for to use for this EC_KEY. May be NULL in - * which case the default library context is used. - * \param propq Any property query string - * \param nid NID of the named curve. - * \return EC_KEY object or NULL if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new_by_curve_name_ex(OSSL_LIB_CTX *ctx, - const char *propq, - int nid); - -/** - * Creates a new EC_KEY object using a named curve as underlying - * EC_GROUP object. Same as calling EC_KEY_new_by_curve_name_ex with a NULL - * library context and property query string. - * \param nid NID of the named curve. - * \return EC_KEY object or NULL if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new_by_curve_name(int nid); - -/** Frees a EC_KEY object. - * \param key EC_KEY object to be freed. - */ -OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key); - -/** Copies a EC_KEY object. - * \param dst destination EC_KEY object - * \param src src EC_KEY object - * \return dst or NULL if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src); - -/** Creates a new EC_KEY object and copies the content from src to it. - * \param src the source EC_KEY object - * \return newly created EC_KEY object or NULL if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_dup(const EC_KEY *src); - -/** Increases the internal reference count of a EC_KEY object. - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_up_ref(EC_KEY *key); - -/** Returns the ENGINE object of a EC_KEY object - * \param eckey EC_KEY object - * \return the ENGINE object (possibly NULL). - */ -OSSL_DEPRECATEDIN_3_0 ENGINE *EC_KEY_get0_engine(const EC_KEY *eckey); - -/** Returns the EC_GROUP object of a EC_KEY object - * \param key EC_KEY object - * \return the EC_GROUP object (possibly NULL). - */ -OSSL_DEPRECATEDIN_3_0 const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key); - -/** Sets the EC_GROUP of a EC_KEY object. - * \param key EC_KEY object - * \param group EC_GROUP to use in the EC_KEY object (note: the EC_KEY - * object will use an own copy of the EC_GROUP). - * \return 1 on success and 0 if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group); - -/** Returns the private key of a EC_KEY object. - * \param key EC_KEY object - * \return a BIGNUM with the private key (possibly NULL). - */ -OSSL_DEPRECATEDIN_3_0 const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key); - -/** Sets the private key of a EC_KEY object. - * \param key EC_KEY object - * \param prv BIGNUM with the private key (note: the EC_KEY object - * will use an own copy of the BIGNUM). - * \return 1 on success and 0 if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv); - -/** Returns the public key of a EC_KEY object. - * \param key the EC_KEY object - * \return a EC_POINT object with the public key (possibly NULL) - */ -OSSL_DEPRECATEDIN_3_0 const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); - -/** Sets the public key of a EC_KEY object. - * \param key EC_KEY object - * \param pub EC_POINT object with the public key (note: the EC_KEY object - * will use an own copy of the EC_POINT object). - * \return 1 on success and 0 if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); - -OSSL_DEPRECATEDIN_3_0 unsigned EC_KEY_get_enc_flags(const EC_KEY *key); -OSSL_DEPRECATEDIN_3_0 void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); -OSSL_DEPRECATEDIN_3_0 point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); -OSSL_DEPRECATEDIN_3_0 void EC_KEY_set_conv_form(EC_KEY *eckey, - point_conversion_form_t cform); -# endif /*OPENSSL_NO_DEPRECATED_3_0 */ - -# define EC_KEY_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_EC_KEY, l, p, newf, dupf, freef) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_ex_data(EC_KEY *key, int idx, void *arg); -OSSL_DEPRECATEDIN_3_0 void *EC_KEY_get_ex_data(const EC_KEY *key, int idx); - -/* wrapper functions for the underlying EC_GROUP object */ -OSSL_DEPRECATEDIN_3_0 void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); - -/** Creates a table of pre-computed multiples of the generator to - * accelerate further EC_KEY operations. - * \param key EC_KEY object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx); - -/** Creates a new ec private (and optional a new public) key. - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_generate_key(EC_KEY *key); - -/** Verifies that a private and/or public key is valid. - * \param key the EC_KEY object - * \return 1 on success and 0 otherwise. - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_check_key(const EC_KEY *key); - -/** Indicates if an EC_KEY can be used for signing. - * \param eckey the EC_KEY object - * \return 1 if can sign and 0 otherwise. - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_can_sign(const EC_KEY *eckey); - -/** Sets a public key from affine coordinates performing - * necessary NIST PKV tests. - * \param key the EC_KEY object - * \param x public key x coordinate - * \param y public key y coordinate - * \return 1 on success and 0 otherwise. - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, - BIGNUM *x, - BIGNUM *y); - -/** Encodes an EC_KEY public key to an allocated octet string - * \param key key to encode - * \param form point conversion form - * \param pbuf returns pointer to allocated buffer - * \param ctx BN_CTX object (optional) - * \return the length of the encoded octet string or 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 size_t EC_KEY_key2buf(const EC_KEY *key, - point_conversion_form_t form, - unsigned char **pbuf, BN_CTX *ctx); - -/** Decodes a EC_KEY public key from a octet string - * \param key key to decode - * \param buf memory buffer with the encoded ec point - * \param len length of the encoded ec point - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ - -OSSL_DEPRECATEDIN_3_0 int EC_KEY_oct2key(EC_KEY *key, const unsigned char *buf, - size_t len, BN_CTX *ctx); - -/** Decodes an EC_KEY private key from an octet string - * \param key key to decode - * \param buf memory buffer with the encoded private key - * \param len length of the encoded key - * \return 1 on success and 0 if an error occurred - */ - -OSSL_DEPRECATEDIN_3_0 int EC_KEY_oct2priv(EC_KEY *key, const unsigned char *buf, - size_t len); - -/** Encodes a EC_KEY private key to an octet string - * \param key key to encode - * \param buf memory buffer for the result. If NULL the function returns - * required buffer size. - * \param len length of the memory buffer - * \return the length of the encoded octet string or 0 if an error occurred - */ - -OSSL_DEPRECATEDIN_3_0 size_t EC_KEY_priv2oct(const EC_KEY *key, - unsigned char *buf, size_t len); - -/** Encodes an EC_KEY private key to an allocated octet string - * \param eckey key to encode - * \param pbuf returns pointer to allocated buffer - * \return the length of the encoded octet string or 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 size_t EC_KEY_priv2buf(const EC_KEY *eckey, - unsigned char **pbuf); - -/********************************************************************/ -/* de- and encoding functions for SEC1 ECPrivateKey */ -/********************************************************************/ - -/** Decodes a private key from a memory buffer. - * \param key a pointer to a EC_KEY object which should be used (or NULL) - * \param in pointer to memory with the DER encoded private key - * \param len length of the DER encoded private key - * \return the decoded private key or NULL if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 EC_KEY *d2i_ECPrivateKey(EC_KEY **key, - const unsigned char **in, - long len); - -/** Encodes a private key object and stores the result in a buffer. - * \param key the EC_KEY object to encode - * \param out the buffer for the result (if NULL the function returns number - * of bytes needed). - * \return 1 on success and 0 if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 int i2d_ECPrivateKey(const EC_KEY *key, - unsigned char **out); - -/********************************************************************/ -/* de- and encoding functions for EC parameters */ -/********************************************************************/ - -/** Decodes ec parameter from a memory buffer. - * \param key a pointer to a EC_KEY object which should be used (or NULL) - * \param in pointer to memory with the DER encoded ec parameters - * \param len length of the DER encoded ec parameters - * \return a EC_KEY object with the decoded parameters or NULL if an error - * occurred. - */ -OSSL_DEPRECATEDIN_3_0 EC_KEY *d2i_ECParameters(EC_KEY **key, - const unsigned char **in, - long len); - -/** Encodes ec parameter and stores the result in a buffer. - * \param key the EC_KEY object with ec parameters to encode - * \param out the buffer for the result (if NULL the function returns number - * of bytes needed). - * \return 1 on success and 0 if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 int i2d_ECParameters(const EC_KEY *key, - unsigned char **out); - -/********************************************************************/ -/* de- and encoding functions for EC public key */ -/* (octet string, not DER -- hence 'o2i' and 'i2o') */ -/********************************************************************/ - -/** Decodes an ec public key from a octet string. - * \param key a pointer to a EC_KEY object which should be used - * \param in memory buffer with the encoded public key - * \param len length of the encoded public key - * \return EC_KEY object with decoded public key or NULL if an error - * occurred. - */ -OSSL_DEPRECATEDIN_3_0 EC_KEY *o2i_ECPublicKey(EC_KEY **key, - const unsigned char **in, long len); - -/** Encodes an ec public key in an octet string. - * \param key the EC_KEY object with the public key - * \param out the buffer for the result (if NULL the function returns number - * of bytes needed). - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int i2o_ECPublicKey(const EC_KEY *key, unsigned char **out); - -/** Prints out the ec parameters on human readable form. - * \param bp BIO object to which the information is printed - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int ECParameters_print(BIO *bp, const EC_KEY *key); - -/** Prints out the contents of a EC_KEY object - * \param bp BIO object to which the information is printed - * \param key EC_KEY object - * \param off line offset - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_print(BIO *bp, const EC_KEY *key, int off); - -# ifndef OPENSSL_NO_STDIO -/** Prints out the ec parameters on human readable form. - * \param fp file descriptor to which the information is printed - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int ECParameters_print_fp(FILE *fp, const EC_KEY *key); - -/** Prints out the contents of a EC_KEY object - * \param fp file descriptor to which the information is printed - * \param key EC_KEY object - * \param off line offset - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); -# endif /* OPENSSL_NO_STDIO */ - -OSSL_DEPRECATEDIN_3_0 const EC_KEY_METHOD *EC_KEY_OpenSSL(void); -OSSL_DEPRECATEDIN_3_0 const EC_KEY_METHOD *EC_KEY_get_default_method(void); -OSSL_DEPRECATEDIN_3_0 void EC_KEY_set_default_method(const EC_KEY_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 const EC_KEY_METHOD *EC_KEY_get_method(const EC_KEY *key); -OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_method(EC_KEY *key, const EC_KEY_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new_method(ENGINE *engine); - -/** The old name for ecdh_KDF_X9_63 - * The ECDH KDF specification has been mistakenly attributed to ANSI X9.62, - * it is actually specified in ANSI X9.63. - * This identifier is retained for backwards compatibility - */ -OSSL_DEPRECATEDIN_3_0 int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, - const unsigned char *Z, size_t Zlen, - const unsigned char *sinfo, - size_t sinfolen, const EVP_MD *md); - -OSSL_DEPRECATEDIN_3_0 int ECDH_compute_key(void *out, size_t outlen, - const EC_POINT *pub_key, - const EC_KEY *ecdh, - void *(*KDF)(const void *in, - size_t inlen, void *out, - size_t *outlen)); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -typedef struct ECDSA_SIG_st ECDSA_SIG; - -/** Allocates and initialize a ECDSA_SIG structure - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -ECDSA_SIG *ECDSA_SIG_new(void); - -/** frees a ECDSA_SIG structure - * \param sig pointer to the ECDSA_SIG structure - */ -void ECDSA_SIG_free(ECDSA_SIG *sig); - -/** i2d_ECDSA_SIG encodes content of ECDSA_SIG (note: this function modifies *pp - * (*pp += length of the DER encoded signature)). - * \param sig pointer to the ECDSA_SIG object - * \param pp pointer to a unsigned char pointer for the output or NULL - * \return the length of the DER encoded ECDSA_SIG object or a negative value - * on error - */ -DECLARE_ASN1_ENCODE_FUNCTIONS_only(ECDSA_SIG, ECDSA_SIG) - -/** d2i_ECDSA_SIG decodes an ECDSA signature (note: this function modifies *pp - * (*pp += len)). - * \param sig pointer to ECDSA_SIG pointer (may be NULL) - * \param pp memory buffer with the DER encoded signature - * \param len length of the buffer - * \return pointer to the decoded ECDSA_SIG structure (or NULL) - */ - -/** Accessor for r and s fields of ECDSA_SIG - * \param sig pointer to ECDSA_SIG structure - * \param pr pointer to BIGNUM pointer for r (may be NULL) - * \param ps pointer to BIGNUM pointer for s (may be NULL) - */ -void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); - -/** Accessor for r field of ECDSA_SIG - * \param sig pointer to ECDSA_SIG structure - */ -const BIGNUM *ECDSA_SIG_get0_r(const ECDSA_SIG *sig); - -/** Accessor for s field of ECDSA_SIG - * \param sig pointer to ECDSA_SIG structure - */ -const BIGNUM *ECDSA_SIG_get0_s(const ECDSA_SIG *sig); - -/** Setter for r and s fields of ECDSA_SIG - * \param sig pointer to ECDSA_SIG structure - * \param r pointer to BIGNUM for r - * \param s pointer to BIGNUM for s - */ -int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/** Computes the ECDSA signature of the given hash value using - * the supplied private key and returns the created signature. - * \param dgst pointer to the hash value - * \param dgst_len length of the hash value - * \param eckey EC_KEY object containing a private EC key - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, - int dgst_len, EC_KEY *eckey); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param kinv BIGNUM with a pre-computed inverse k (optional) - * \param rp BIGNUM with a pre-computed rp value (optional), - * see ECDSA_sign_setup - * \param eckey EC_KEY object containing a private EC key - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, - int dgstlen, const BIGNUM *kinv, - const BIGNUM *rp, EC_KEY *eckey); - -/** Verifies that the supplied signature is a valid ECDSA - * signature of the supplied hash value using the supplied public key. - * \param dgst pointer to the hash value - * \param dgst_len length of the hash value - * \param sig ECDSA_SIG structure - * \param eckey EC_KEY object containing a public EC key - * \return 1 if the signature is valid, 0 if the signature is invalid - * and -1 on error - */ -OSSL_DEPRECATEDIN_3_0 int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, - const ECDSA_SIG *sig, EC_KEY *eckey); - -/** Precompute parts of the signing operation - * \param eckey EC_KEY object containing a private EC key - * \param ctx BN_CTX object (optional) - * \param kinv BIGNUM pointer for the inverse of k - * \param rp BIGNUM pointer for x coordinate of k * generator - * \return 1 on success and 0 otherwise - */ -OSSL_DEPRECATEDIN_3_0 int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, - BIGNUM **kinv, BIGNUM **rp); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param type this parameter is ignored - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param sig memory for the DER encoded created signature - * \param siglen pointer to the length of the returned signature - * \param eckey EC_KEY object containing a private EC key - * \return 1 on success and 0 otherwise - */ -OSSL_DEPRECATEDIN_3_0 int ECDSA_sign(int type, const unsigned char *dgst, - int dgstlen, unsigned char *sig, - unsigned int *siglen, EC_KEY *eckey); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param type this parameter is ignored - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param sig buffer to hold the DER encoded signature - * \param siglen pointer to the length of the returned signature - * \param kinv BIGNUM with a pre-computed inverse k (optional) - * \param rp BIGNUM with a pre-computed rp value (optional), - * see ECDSA_sign_setup - * \param eckey EC_KEY object containing a private EC key - * \return 1 on success and 0 otherwise - */ -OSSL_DEPRECATEDIN_3_0 int ECDSA_sign_ex(int type, const unsigned char *dgst, - int dgstlen, unsigned char *sig, - unsigned int *siglen, const BIGNUM *kinv, - const BIGNUM *rp, EC_KEY *eckey); - -/** Verifies that the given signature is valid ECDSA signature - * of the supplied hash value using the specified public key. - * \param type this parameter is ignored - * \param dgst pointer to the hash value - * \param dgstlen length of the hash value - * \param sig pointer to the DER encoded signature - * \param siglen length of the DER encoded signature - * \param eckey EC_KEY object containing a public EC key - * \return 1 if the signature is valid, 0 if the signature is invalid - * and -1 on error - */ -OSSL_DEPRECATEDIN_3_0 int ECDSA_verify(int type, const unsigned char *dgst, - int dgstlen, const unsigned char *sig, - int siglen, EC_KEY *eckey); - -/** Returns the maximum length of the DER encoded signature - * \param eckey EC_KEY object - * \return numbers of bytes required for the DER encoded signature - */ -OSSL_DEPRECATEDIN_3_0 int ECDSA_size(const EC_KEY *eckey); - -/********************************************************************/ -/* EC_KEY_METHOD constructors, destructors, writers and accessors */ -/********************************************************************/ - -OSSL_DEPRECATEDIN_3_0 EC_KEY_METHOD *EC_KEY_METHOD_new(const EC_KEY_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_free(EC_KEY_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_set_init - (EC_KEY_METHOD *meth, - int (*init)(EC_KEY *key), - void (*finish)(EC_KEY *key), - int (*copy)(EC_KEY *dest, const EC_KEY *src), - int (*set_group)(EC_KEY *key, const EC_GROUP *grp), - int (*set_private)(EC_KEY *key, const BIGNUM *priv_key), - int (*set_public)(EC_KEY *key, const EC_POINT *pub_key)); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_set_keygen(EC_KEY_METHOD *meth, - int (*keygen)(EC_KEY *key)); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_set_compute_key - (EC_KEY_METHOD *meth, - int (*ckey)(unsigned char **psec, size_t *pseclen, - const EC_POINT *pub_key, const EC_KEY *ecdh)); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_set_sign - (EC_KEY_METHOD *meth, - int (*sign)(int type, const unsigned char *dgst, - int dlen, unsigned char *sig, - unsigned int *siglen, - const BIGNUM *kinv, const BIGNUM *r, - EC_KEY *eckey), - int (*sign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, - BIGNUM **kinvp, BIGNUM **rp), - ECDSA_SIG *(*sign_sig)(const unsigned char *dgst, - int dgst_len, - const BIGNUM *in_kinv, - const BIGNUM *in_r, - EC_KEY *eckey)); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_set_verify - (EC_KEY_METHOD *meth, - int (*verify)(int type, const unsigned - char *dgst, int dgst_len, - const unsigned char *sigbuf, - int sig_len, EC_KEY *eckey), - int (*verify_sig)(const unsigned char *dgst, - int dgst_len, const ECDSA_SIG *sig, - EC_KEY *eckey)); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_get_init - (const EC_KEY_METHOD *meth, - int (**pinit)(EC_KEY *key), - void (**pfinish)(EC_KEY *key), - int (**pcopy)(EC_KEY *dest, const EC_KEY *src), - int (**pset_group)(EC_KEY *key, const EC_GROUP *grp), - int (**pset_private)(EC_KEY *key, const BIGNUM *priv_key), - int (**pset_public)(EC_KEY *key, const EC_POINT *pub_key)); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_get_keygen - (const EC_KEY_METHOD *meth, int (**pkeygen)(EC_KEY *key)); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_get_compute_key - (const EC_KEY_METHOD *meth, - int (**pck)(unsigned char **psec, - size_t *pseclen, - const EC_POINT *pub_key, - const EC_KEY *ecdh)); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_get_sign - (const EC_KEY_METHOD *meth, - int (**psign)(int type, const unsigned char *dgst, - int dlen, unsigned char *sig, - unsigned int *siglen, - const BIGNUM *kinv, const BIGNUM *r, - EC_KEY *eckey), - int (**psign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, - BIGNUM **kinvp, BIGNUM **rp), - ECDSA_SIG *(**psign_sig)(const unsigned char *dgst, - int dgst_len, - const BIGNUM *in_kinv, - const BIGNUM *in_r, - EC_KEY *eckey)); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_get_verify - (const EC_KEY_METHOD *meth, - int (**pverify)(int type, const unsigned - char *dgst, int dgst_len, - const unsigned char *sigbuf, - int sig_len, EC_KEY *eckey), - int (**pverify_sig)(const unsigned char *dgst, - int dgst_len, - const ECDSA_SIG *sig, - EC_KEY *eckey)); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -# define EVP_EC_gen(curve) \ - EVP_PKEY_Q_keygen(NULL, NULL, "EC", (char *)(strstr(curve, ""))) - /* strstr is used to enable type checking for the variadic string arg */ -# define ECParameters_dup(x) ASN1_dup_of(EC_KEY, i2d_ECParameters, \ - d2i_ECParameters, x) - -# ifndef __cplusplus -# if defined(__SUNPRO_C) -# if __SUNPRO_C >= 0x520 -# pragma error_messages (default,E_ARRAY_OF_INCOMPLETE_NONAME,E_ARRAY_OF_INCOMPLETE) -# endif -# endif -# endif - -# endif -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ecdh.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/ecdh.h deleted file mode 100644 index 56bd4cc..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ecdh.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#include diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ecdsa.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/ecdsa.h deleted file mode 100644 index 56bd4cc..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ecdsa.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#include diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ecerr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/ecerr.h deleted file mode 100644 index f15f91f..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ecerr.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_ECERR_H -# define OPENSSL_ECERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_EC - - -/* - * EC reason codes. - */ -# define EC_R_ASN1_ERROR 115 -# define EC_R_BAD_SIGNATURE 156 -# define EC_R_BIGNUM_OUT_OF_RANGE 144 -# define EC_R_BUFFER_TOO_SMALL 100 -# define EC_R_CANNOT_INVERT 165 -# define EC_R_COORDINATES_OUT_OF_RANGE 146 -# define EC_R_CURVE_DOES_NOT_SUPPORT_ECDH 160 -# define EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA 170 -# define EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING 159 -# define EC_R_DECODE_ERROR 142 -# define EC_R_DISCRIMINANT_IS_ZERO 118 -# define EC_R_EC_GROUP_NEW_BY_NAME_FAILURE 119 -# define EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED 127 -# define EC_R_FAILED_MAKING_PUBLIC_KEY 166 -# define EC_R_FIELD_TOO_LARGE 143 -# define EC_R_GF2M_NOT_SUPPORTED 147 -# define EC_R_GROUP2PKPARAMETERS_FAILURE 120 -# define EC_R_I2D_ECPKPARAMETERS_FAILURE 121 -# define EC_R_INCOMPATIBLE_OBJECTS 101 -# define EC_R_INVALID_A 168 -# define EC_R_INVALID_ARGUMENT 112 -# define EC_R_INVALID_B 169 -# define EC_R_INVALID_COFACTOR 171 -# define EC_R_INVALID_COMPRESSED_POINT 110 -# define EC_R_INVALID_COMPRESSION_BIT 109 -# define EC_R_INVALID_CURVE 141 -# define EC_R_INVALID_DIGEST 151 -# define EC_R_INVALID_DIGEST_TYPE 138 -# define EC_R_INVALID_ENCODING 102 -# define EC_R_INVALID_FIELD 103 -# define EC_R_INVALID_FORM 104 -# define EC_R_INVALID_GENERATOR 173 -# define EC_R_INVALID_GROUP_ORDER 122 -# define EC_R_INVALID_KEY 116 -# define EC_R_INVALID_LENGTH 117 -# define EC_R_INVALID_NAMED_GROUP_CONVERSION 174 -# define EC_R_INVALID_OUTPUT_LENGTH 161 -# define EC_R_INVALID_P 172 -# define EC_R_INVALID_PEER_KEY 133 -# define EC_R_INVALID_PENTANOMIAL_BASIS 132 -# define EC_R_INVALID_PRIVATE_KEY 123 -# define EC_R_INVALID_SEED 175 -# define EC_R_INVALID_TRINOMIAL_BASIS 137 -# define EC_R_KDF_PARAMETER_ERROR 148 -# define EC_R_KEYS_NOT_SET 140 -# define EC_R_LADDER_POST_FAILURE 136 -# define EC_R_LADDER_PRE_FAILURE 153 -# define EC_R_LADDER_STEP_FAILURE 162 -# define EC_R_MISSING_OID 167 -# define EC_R_MISSING_PARAMETERS 124 -# define EC_R_MISSING_PRIVATE_KEY 125 -# define EC_R_NEED_NEW_SETUP_VALUES 157 -# define EC_R_NOT_A_NIST_PRIME 135 -# define EC_R_NOT_IMPLEMENTED 126 -# define EC_R_NOT_INITIALIZED 111 -# define EC_R_NO_PARAMETERS_SET 139 -# define EC_R_NO_PRIVATE_VALUE 154 -# define EC_R_OPERATION_NOT_SUPPORTED 152 -# define EC_R_PASSED_NULL_PARAMETER 134 -# define EC_R_PEER_KEY_ERROR 149 -# define EC_R_POINT_ARITHMETIC_FAILURE 155 -# define EC_R_POINT_AT_INFINITY 106 -# define EC_R_POINT_COORDINATES_BLIND_FAILURE 163 -# define EC_R_POINT_IS_NOT_ON_CURVE 107 -# define EC_R_RANDOM_NUMBER_GENERATION_FAILED 158 -# define EC_R_SHARED_INFO_ERROR 150 -# define EC_R_SLOT_FULL 108 -# define EC_R_TOO_MANY_RETRIES 176 -# define EC_R_UNDEFINED_GENERATOR 113 -# define EC_R_UNDEFINED_ORDER 128 -# define EC_R_UNKNOWN_COFACTOR 164 -# define EC_R_UNKNOWN_GROUP 129 -# define EC_R_UNKNOWN_ORDER 114 -# define EC_R_UNSUPPORTED_FIELD 131 -# define EC_R_WRONG_CURVE_PARAMETERS 145 -# define EC_R_WRONG_ORDER 130 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/encoder.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/encoder.h deleted file mode 100644 index c37a6f1..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/encoder.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_ENCODER_H -# define OPENSSL_ENCODER_H -# pragma once - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -OSSL_ENCODER *OSSL_ENCODER_fetch(OSSL_LIB_CTX *libctx, const char *name, - const char *properties); -int OSSL_ENCODER_up_ref(OSSL_ENCODER *encoder); -void OSSL_ENCODER_free(OSSL_ENCODER *encoder); - -const OSSL_PROVIDER *OSSL_ENCODER_get0_provider(const OSSL_ENCODER *encoder); -const char *OSSL_ENCODER_get0_properties(const OSSL_ENCODER *encoder); -const char *OSSL_ENCODER_get0_name(const OSSL_ENCODER *kdf); -const char *OSSL_ENCODER_get0_description(const OSSL_ENCODER *kdf); -int OSSL_ENCODER_is_a(const OSSL_ENCODER *encoder, const char *name); - -void OSSL_ENCODER_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(OSSL_ENCODER *encoder, void *arg), - void *arg); -int OSSL_ENCODER_names_do_all(const OSSL_ENCODER *encoder, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PARAM *OSSL_ENCODER_gettable_params(OSSL_ENCODER *encoder); -int OSSL_ENCODER_get_params(OSSL_ENCODER *encoder, OSSL_PARAM params[]); - -const OSSL_PARAM *OSSL_ENCODER_settable_ctx_params(OSSL_ENCODER *encoder); -OSSL_ENCODER_CTX *OSSL_ENCODER_CTX_new(void); -int OSSL_ENCODER_CTX_set_params(OSSL_ENCODER_CTX *ctx, - const OSSL_PARAM params[]); -void OSSL_ENCODER_CTX_free(OSSL_ENCODER_CTX *ctx); - -/* Utilities that help set specific parameters */ -int OSSL_ENCODER_CTX_set_passphrase(OSSL_ENCODER_CTX *ctx, - const unsigned char *kstr, size_t klen); -int OSSL_ENCODER_CTX_set_pem_password_cb(OSSL_ENCODER_CTX *ctx, - pem_password_cb *cb, void *cbarg); -int OSSL_ENCODER_CTX_set_passphrase_cb(OSSL_ENCODER_CTX *ctx, - OSSL_PASSPHRASE_CALLBACK *cb, - void *cbarg); -int OSSL_ENCODER_CTX_set_passphrase_ui(OSSL_ENCODER_CTX *ctx, - const UI_METHOD *ui_method, - void *ui_data); -int OSSL_ENCODER_CTX_set_cipher(OSSL_ENCODER_CTX *ctx, - const char *cipher_name, - const char *propquery); -int OSSL_ENCODER_CTX_set_selection(OSSL_ENCODER_CTX *ctx, int selection); -int OSSL_ENCODER_CTX_set_output_type(OSSL_ENCODER_CTX *ctx, - const char *output_type); -int OSSL_ENCODER_CTX_set_output_structure(OSSL_ENCODER_CTX *ctx, - const char *output_structure); - -/* Utilities to add encoders */ -int OSSL_ENCODER_CTX_add_encoder(OSSL_ENCODER_CTX *ctx, OSSL_ENCODER *encoder); -int OSSL_ENCODER_CTX_add_extra(OSSL_ENCODER_CTX *ctx, - OSSL_LIB_CTX *libctx, const char *propq); -int OSSL_ENCODER_CTX_get_num_encoders(OSSL_ENCODER_CTX *ctx); - -typedef struct ossl_encoder_instance_st OSSL_ENCODER_INSTANCE; -OSSL_ENCODER * -OSSL_ENCODER_INSTANCE_get_encoder(OSSL_ENCODER_INSTANCE *encoder_inst); -void * -OSSL_ENCODER_INSTANCE_get_encoder_ctx(OSSL_ENCODER_INSTANCE *encoder_inst); -const char * -OSSL_ENCODER_INSTANCE_get_output_type(OSSL_ENCODER_INSTANCE *encoder_inst); -const char * -OSSL_ENCODER_INSTANCE_get_output_structure(OSSL_ENCODER_INSTANCE *encoder_inst); - -typedef const void *OSSL_ENCODER_CONSTRUCT(OSSL_ENCODER_INSTANCE *encoder_inst, - void *construct_data); -typedef void OSSL_ENCODER_CLEANUP(void *construct_data); - -int OSSL_ENCODER_CTX_set_construct(OSSL_ENCODER_CTX *ctx, - OSSL_ENCODER_CONSTRUCT *construct); -int OSSL_ENCODER_CTX_set_construct_data(OSSL_ENCODER_CTX *ctx, - void *construct_data); -int OSSL_ENCODER_CTX_set_cleanup(OSSL_ENCODER_CTX *ctx, - OSSL_ENCODER_CLEANUP *cleanup); - -/* Utilities to output the object to encode */ -int OSSL_ENCODER_to_bio(OSSL_ENCODER_CTX *ctx, BIO *out); -#ifndef OPENSSL_NO_STDIO -int OSSL_ENCODER_to_fp(OSSL_ENCODER_CTX *ctx, FILE *fp); -#endif -int OSSL_ENCODER_to_data(OSSL_ENCODER_CTX *ctx, unsigned char **pdata, - size_t *pdata_len); - -/* - * Create the OSSL_ENCODER_CTX with an associated type. This will perform - * an implicit OSSL_ENCODER_fetch(), suitable for the object of that type. - * This is more useful than calling OSSL_ENCODER_CTX_new(). - */ -OSSL_ENCODER_CTX *OSSL_ENCODER_CTX_new_for_pkey(const EVP_PKEY *pkey, - int selection, - const char *output_type, - const char *output_struct, - const char *propquery); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/encodererr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/encodererr.h deleted file mode 100644 index 5e318b1..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/encodererr.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_ENCODERERR_H -# define OPENSSL_ENCODERERR_H -# pragma once - -# include -# include -# include - - - -/* - * OSSL_ENCODER reason codes. - */ -# define OSSL_ENCODER_R_ENCODER_NOT_FOUND 101 -# define OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY 100 -# define OSSL_ENCODER_R_MISSING_GET_PARAMS 102 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/engine.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/engine.h deleted file mode 100644 index 5b4b504..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/engine.h +++ /dev/null @@ -1,833 +0,0 @@ -/* - * Copyright 2000-2022 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_ENGINE_H -# define OPENSSL_ENGINE_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_ENGINE_H -# endif - -# include - -# ifndef OPENSSL_NO_ENGINE -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# include -# include -# include -# include -# include -# include -# include -# include -# endif -# include -# include -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -/* - * These flags are used to control combinations of algorithm (methods) by - * bitwise "OR"ing. - */ -# define ENGINE_METHOD_RSA (unsigned int)0x0001 -# define ENGINE_METHOD_DSA (unsigned int)0x0002 -# define ENGINE_METHOD_DH (unsigned int)0x0004 -# define ENGINE_METHOD_RAND (unsigned int)0x0008 -# define ENGINE_METHOD_CIPHERS (unsigned int)0x0040 -# define ENGINE_METHOD_DIGESTS (unsigned int)0x0080 -# define ENGINE_METHOD_PKEY_METHS (unsigned int)0x0200 -# define ENGINE_METHOD_PKEY_ASN1_METHS (unsigned int)0x0400 -# define ENGINE_METHOD_EC (unsigned int)0x0800 -/* Obvious all-or-nothing cases. */ -# define ENGINE_METHOD_ALL (unsigned int)0xFFFF -# define ENGINE_METHOD_NONE (unsigned int)0x0000 - -/* - * This(ese) flag(s) controls behaviour of the ENGINE_TABLE mechanism used - * internally to control registration of ENGINE implementations, and can be - * set by ENGINE_set_table_flags(). The "NOINIT" flag prevents attempts to - * initialise registered ENGINEs if they are not already initialised. - */ -# define ENGINE_TABLE_FLAG_NOINIT (unsigned int)0x0001 - -/* ENGINE flags that can be set by ENGINE_set_flags(). */ -/* Not used */ -/* #define ENGINE_FLAGS_MALLOCED 0x0001 */ - -/* - * This flag is for ENGINEs that wish to handle the various 'CMD'-related - * control commands on their own. Without this flag, ENGINE_ctrl() handles - * these control commands on behalf of the ENGINE using their "cmd_defns" - * data. - */ -# define ENGINE_FLAGS_MANUAL_CMD_CTRL (int)0x0002 - -/* - * This flag is for ENGINEs who return new duplicate structures when found - * via "ENGINE_by_id()". When an ENGINE must store state (eg. if - * ENGINE_ctrl() commands are called in sequence as part of some stateful - * process like key-generation setup and execution), it can set this flag - - * then each attempt to obtain the ENGINE will result in it being copied into - * a new structure. Normally, ENGINEs don't declare this flag so - * ENGINE_by_id() just increments the existing ENGINE's structural reference - * count. - */ -# define ENGINE_FLAGS_BY_ID_COPY (int)0x0004 - -/* - * This flag is for an ENGINE that does not want its methods registered as - * part of ENGINE_register_all_complete() for example if the methods are not - * usable as default methods. - */ - -# define ENGINE_FLAGS_NO_REGISTER_ALL (int)0x0008 - -/* - * ENGINEs can support their own command types, and these flags are used in - * ENGINE_CTRL_GET_CMD_FLAGS to indicate to the caller what kind of input - * each command expects. Currently only numeric and string input is - * supported. If a control command supports none of the _NUMERIC, _STRING, or - * _NO_INPUT options, then it is regarded as an "internal" control command - - * and not for use in config setting situations. As such, they're not - * available to the ENGINE_ctrl_cmd_string() function, only raw ENGINE_ctrl() - * access. Changes to this list of 'command types' should be reflected - * carefully in ENGINE_cmd_is_executable() and ENGINE_ctrl_cmd_string(). - */ - -/* accepts a 'long' input value (3rd parameter to ENGINE_ctrl) */ -# define ENGINE_CMD_FLAG_NUMERIC (unsigned int)0x0001 -/* - * accepts string input (cast from 'void*' to 'const char *', 4th parameter - * to ENGINE_ctrl) - */ -# define ENGINE_CMD_FLAG_STRING (unsigned int)0x0002 -/* - * Indicates that the control command takes *no* input. Ie. the control - * command is unparameterised. - */ -# define ENGINE_CMD_FLAG_NO_INPUT (unsigned int)0x0004 -/* - * Indicates that the control command is internal. This control command won't - * be shown in any output, and is only usable through the ENGINE_ctrl_cmd() - * function. - */ -# define ENGINE_CMD_FLAG_INTERNAL (unsigned int)0x0008 - -/* - * NB: These 3 control commands are deprecated and should not be used. - * ENGINEs relying on these commands should compile conditional support for - * compatibility (eg. if these symbols are defined) but should also migrate - * the same functionality to their own ENGINE-specific control functions that - * can be "discovered" by calling applications. The fact these control - * commands wouldn't be "executable" (ie. usable by text-based config) - * doesn't change the fact that application code can find and use them - * without requiring per-ENGINE hacking. - */ - -/* - * These flags are used to tell the ctrl function what should be done. All - * command numbers are shared between all engines, even if some don't make - * sense to some engines. In such a case, they do nothing but return the - * error ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED. - */ -# define ENGINE_CTRL_SET_LOGSTREAM 1 -# define ENGINE_CTRL_SET_PASSWORD_CALLBACK 2 -# define ENGINE_CTRL_HUP 3/* Close and reinitialise - * any handles/connections - * etc. */ -# define ENGINE_CTRL_SET_USER_INTERFACE 4/* Alternative to callback */ -# define ENGINE_CTRL_SET_CALLBACK_DATA 5/* User-specific data, used - * when calling the password - * callback and the user - * interface */ -# define ENGINE_CTRL_LOAD_CONFIGURATION 6/* Load a configuration, - * given a string that - * represents a file name - * or so */ -# define ENGINE_CTRL_LOAD_SECTION 7/* Load data from a given - * section in the already - * loaded configuration */ - -/* - * These control commands allow an application to deal with an arbitrary - * engine in a dynamic way. Warn: Negative return values indicate errors FOR - * THESE COMMANDS because zero is used to indicate 'end-of-list'. Other - * commands, including ENGINE-specific command types, return zero for an - * error. An ENGINE can choose to implement these ctrl functions, and can - * internally manage things however it chooses - it does so by setting the - * ENGINE_FLAGS_MANUAL_CMD_CTRL flag (using ENGINE_set_flags()). Otherwise - * the ENGINE_ctrl() code handles this on the ENGINE's behalf using the - * cmd_defns data (set using ENGINE_set_cmd_defns()). This means an ENGINE's - * ctrl() handler need only implement its own commands - the above "meta" - * commands will be taken care of. - */ - -/* - * Returns non-zero if the supplied ENGINE has a ctrl() handler. If "not", - * then all the remaining control commands will return failure, so it is - * worth checking this first if the caller is trying to "discover" the - * engine's capabilities and doesn't want errors generated unnecessarily. - */ -# define ENGINE_CTRL_HAS_CTRL_FUNCTION 10 -/* - * Returns a positive command number for the first command supported by the - * engine. Returns zero if no ctrl commands are supported. - */ -# define ENGINE_CTRL_GET_FIRST_CMD_TYPE 11 -/* - * The 'long' argument specifies a command implemented by the engine, and the - * return value is the next command supported, or zero if there are no more. - */ -# define ENGINE_CTRL_GET_NEXT_CMD_TYPE 12 -/* - * The 'void*' argument is a command name (cast from 'const char *'), and the - * return value is the command that corresponds to it. - */ -# define ENGINE_CTRL_GET_CMD_FROM_NAME 13 -/* - * The next two allow a command to be converted into its corresponding string - * form. In each case, the 'long' argument supplies the command. In the - * NAME_LEN case, the return value is the length of the command name (not - * counting a trailing EOL). In the NAME case, the 'void*' argument must be a - * string buffer large enough, and it will be populated with the name of the - * command (WITH a trailing EOL). - */ -# define ENGINE_CTRL_GET_NAME_LEN_FROM_CMD 14 -# define ENGINE_CTRL_GET_NAME_FROM_CMD 15 -/* The next two are similar but give a "short description" of a command. */ -# define ENGINE_CTRL_GET_DESC_LEN_FROM_CMD 16 -# define ENGINE_CTRL_GET_DESC_FROM_CMD 17 -/* - * With this command, the return value is the OR'd combination of - * ENGINE_CMD_FLAG_*** values that indicate what kind of input a given - * engine-specific ctrl command expects. - */ -# define ENGINE_CTRL_GET_CMD_FLAGS 18 - -/* - * ENGINE implementations should start the numbering of their own control - * commands from this value. (ie. ENGINE_CMD_BASE, ENGINE_CMD_BASE + 1, etc). - */ -# define ENGINE_CMD_BASE 200 - -/* - * NB: These 2 nCipher "chil" control commands are deprecated, and their - * functionality is now available through ENGINE-specific control commands - * (exposed through the above-mentioned 'CMD'-handling). Code using these 2 - * commands should be migrated to the more general command handling before - * these are removed. - */ - -/* Flags specific to the nCipher "chil" engine */ -# define ENGINE_CTRL_CHIL_SET_FORKCHECK 100 - /* - * Depending on the value of the (long)i argument, this sets or - * unsets the SimpleForkCheck flag in the CHIL API to enable or - * disable checking and workarounds for applications that fork(). - */ -# define ENGINE_CTRL_CHIL_NO_LOCKING 101 - /* - * This prevents the initialisation function from providing mutex - * callbacks to the nCipher library. - */ - -/* - * If an ENGINE supports its own specific control commands and wishes the - * framework to handle the above 'ENGINE_CMD_***'-manipulation commands on - * its behalf, it should supply a null-terminated array of ENGINE_CMD_DEFN - * entries to ENGINE_set_cmd_defns(). It should also implement a ctrl() - * handler that supports the stated commands (ie. the "cmd_num" entries as - * described by the array). NB: The array must be ordered in increasing order - * of cmd_num. "null-terminated" means that the last ENGINE_CMD_DEFN element - * has cmd_num set to zero and/or cmd_name set to NULL. - */ -typedef struct ENGINE_CMD_DEFN_st { - unsigned int cmd_num; /* The command number */ - const char *cmd_name; /* The command name itself */ - const char *cmd_desc; /* A short description of the command */ - unsigned int cmd_flags; /* The input the command expects */ -} ENGINE_CMD_DEFN; - -/* Generic function pointer */ -typedef int (*ENGINE_GEN_FUNC_PTR) (void); -/* Generic function pointer taking no arguments */ -typedef int (*ENGINE_GEN_INT_FUNC_PTR) (ENGINE *); -/* Specific control function pointer */ -typedef int (*ENGINE_CTRL_FUNC_PTR) (ENGINE *, int, long, void *, - void (*f) (void)); -/* Generic load_key function pointer */ -typedef EVP_PKEY *(*ENGINE_LOAD_KEY_PTR)(ENGINE *, const char *, - UI_METHOD *ui_method, - void *callback_data); -typedef int (*ENGINE_SSL_CLIENT_CERT_PTR) (ENGINE *, SSL *ssl, - STACK_OF(X509_NAME) *ca_dn, - X509 **pcert, EVP_PKEY **pkey, - STACK_OF(X509) **pother, - UI_METHOD *ui_method, - void *callback_data); -/*- - * These callback types are for an ENGINE's handler for cipher and digest logic. - * These handlers have these prototypes; - * int foo(ENGINE *e, const EVP_CIPHER **cipher, const int **nids, int nid); - * int foo(ENGINE *e, const EVP_MD **digest, const int **nids, int nid); - * Looking at how to implement these handlers in the case of cipher support, if - * the framework wants the EVP_CIPHER for 'nid', it will call; - * foo(e, &p_evp_cipher, NULL, nid); (return zero for failure) - * If the framework wants a list of supported 'nid's, it will call; - * foo(e, NULL, &p_nids, 0); (returns number of 'nids' or -1 for error) - */ -/* - * Returns to a pointer to the array of supported cipher 'nid's. If the - * second parameter is non-NULL it is set to the size of the returned array. - */ -typedef int (*ENGINE_CIPHERS_PTR) (ENGINE *, const EVP_CIPHER **, - const int **, int); -typedef int (*ENGINE_DIGESTS_PTR) (ENGINE *, const EVP_MD **, const int **, - int); -typedef int (*ENGINE_PKEY_METHS_PTR) (ENGINE *, EVP_PKEY_METHOD **, - const int **, int); -typedef int (*ENGINE_PKEY_ASN1_METHS_PTR) (ENGINE *, EVP_PKEY_ASN1_METHOD **, - const int **, int); -/* - * STRUCTURE functions ... all of these functions deal with pointers to - * ENGINE structures where the pointers have a "structural reference". This - * means that their reference is to allowed access to the structure but it - * does not imply that the structure is functional. To simply increment or - * decrement the structural reference count, use ENGINE_by_id and - * ENGINE_free. NB: This is not required when iterating using ENGINE_get_next - * as it will automatically decrement the structural reference count of the - * "current" ENGINE and increment the structural reference count of the - * ENGINE it returns (unless it is NULL). - */ - -/* Get the first/last "ENGINE" type available. */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_first(void); -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_last(void); -# endif -/* Iterate to the next/previous "ENGINE" type (NULL = end of the list). */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_next(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_prev(ENGINE *e); -# endif -/* Add another "ENGINE" type into the array. */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_add(ENGINE *e); -# endif -/* Remove an existing "ENGINE" type from the array. */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_remove(ENGINE *e); -# endif -/* Retrieve an engine from the list by its unique "id" value. */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_by_id(const char *id); -# endif - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define ENGINE_load_openssl() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_OPENSSL, NULL) -# define ENGINE_load_dynamic() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_DYNAMIC, NULL) -# ifndef OPENSSL_NO_STATIC_ENGINE -# define ENGINE_load_padlock() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_PADLOCK, NULL) -# define ENGINE_load_capi() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_CAPI, NULL) -# define ENGINE_load_afalg() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_AFALG, NULL) -# endif -# define ENGINE_load_cryptodev() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_CRYPTODEV, NULL) -# define ENGINE_load_rdrand() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_RDRAND, NULL) -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 void ENGINE_load_builtin_engines(void); -# endif - -/* - * Get and set global flags (ENGINE_TABLE_FLAG_***) for the implementation - * "registry" handling. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 unsigned int ENGINE_get_table_flags(void); -OSSL_DEPRECATEDIN_3_0 void ENGINE_set_table_flags(unsigned int flags); -# endif - -/*- Manage registration of ENGINEs per "table". For each type, there are 3 - * functions; - * ENGINE_register_***(e) - registers the implementation from 'e' (if it has one) - * ENGINE_unregister_***(e) - unregister the implementation from 'e' - * ENGINE_register_all_***() - call ENGINE_register_***() for each 'e' in the list - * Cleanup is automatically registered from each table when required. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_RSA(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_unregister_RSA(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_register_all_RSA(void); -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_DSA(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_unregister_DSA(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_register_all_DSA(void); -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_EC(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_unregister_EC(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_register_all_EC(void); -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_DH(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_unregister_DH(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_register_all_DH(void); -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_RAND(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_unregister_RAND(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_register_all_RAND(void); -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_ciphers(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_unregister_ciphers(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_register_all_ciphers(void); -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_digests(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_unregister_digests(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_register_all_digests(void); -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_pkey_meths(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_unregister_pkey_meths(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_register_all_pkey_meths(void); -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_pkey_asn1_meths(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_unregister_pkey_asn1_meths(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_register_all_pkey_asn1_meths(void); -# endif - -/* - * These functions register all support from the above categories. Note, use - * of these functions can result in static linkage of code your application - * may not need. If you only need a subset of functionality, consider using - * more selective initialisation. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_complete(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_all_complete(void); -# endif - -/* - * Send parameterised control commands to the engine. The possibilities to - * send down an integer, a pointer to data or a function pointer are - * provided. Any of the parameters may or may not be NULL, depending on the - * command number. In actuality, this function only requires a structural - * (rather than functional) reference to an engine, but many control commands - * may require the engine be functional. The caller should be aware of trying - * commands that require an operational ENGINE, and only use functional - * references in such situations. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, - void (*f) (void)); -# endif - -/* - * This function tests if an ENGINE-specific command is usable as a - * "setting". Eg. in an application's config file that gets processed through - * ENGINE_ctrl_cmd_string(). If this returns zero, it is not available to - * ENGINE_ctrl_cmd_string(), only ENGINE_ctrl(). - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_cmd_is_executable(ENGINE *e, int cmd); -# endif - -/* - * This function works like ENGINE_ctrl() with the exception of taking a - * command name instead of a command number, and can handle optional - * commands. See the comment on ENGINE_ctrl_cmd_string() for an explanation - * on how to use the cmd_name and cmd_optional. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name, - long i, void *p, void (*f) (void), - int cmd_optional); -# endif - -/* - * This function passes a command-name and argument to an ENGINE. The - * cmd_name is converted to a command number and the control command is - * called using 'arg' as an argument (unless the ENGINE doesn't support such - * a command, in which case no control command is called). The command is - * checked for input flags, and if necessary the argument will be converted - * to a numeric value. If cmd_optional is non-zero, then if the ENGINE - * doesn't support the given cmd_name the return value will be success - * anyway. This function is intended for applications to use so that users - * (or config files) can supply engine-specific config data to the ENGINE at - * run-time to control behaviour of specific engines. As such, it shouldn't - * be used for calling ENGINE_ctrl() functions that return data, deal with - * binary data, or that are otherwise supposed to be used directly through - * ENGINE_ctrl() in application code. Any "return" data from an ENGINE_ctrl() - * operation in this function will be lost - the return value is interpreted - * as failure if the return value is zero, success otherwise, and this - * function returns a boolean value as a result. In other words, vendors of - * 'ENGINE'-enabled devices should write ENGINE implementations with - * parameterisations that work in this scheme, so that compliant ENGINE-based - * applications can work consistently with the same configuration for the - * same ENGINE-enabled devices, across applications. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const char *arg, - int cmd_optional); -# endif - -/* - * These functions are useful for manufacturing new ENGINE structures. They - * don't address reference counting at all - one uses them to populate an - * ENGINE structure with personalised implementations of things prior to - * using it directly or adding it to the builtin ENGINE list in OpenSSL. - * These are also here so that the ENGINE structure doesn't have to be - * exposed and break binary compatibility! - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_new(void); -OSSL_DEPRECATEDIN_3_0 int ENGINE_free(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_up_ref(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_id(ENGINE *e, const char *id); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_name(ENGINE *e, const char *name); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_EC(ENGINE *e, const EC_KEY_METHOD *ecdsa_meth); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_DH(ENGINE *e, const DH_METHOD *dh_meth); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_RAND(ENGINE *e, const RAND_METHOD *rand_meth); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_destroy_function(ENGINE *e,ENGINE_GEN_INT_FUNC_PTR destroy_f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_init_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR init_f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_load_privkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpriv_f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_load_ssl_client_cert_function(ENGINE *e, - ENGINE_SSL_CLIENT_CERT_PTR loadssl_f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_pkey_meths(ENGINE *e, ENGINE_PKEY_METHS_PTR f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_pkey_asn1_meths(ENGINE *e, ENGINE_PKEY_ASN1_METHS_PTR f); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_flags(ENGINE *e, int flags); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_cmd_defns(ENGINE *e, - const ENGINE_CMD_DEFN *defns); -# endif -/* These functions allow control over any per-structure ENGINE data. */ -# define ENGINE_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_ENGINE, l, p, newf, dupf, freef) -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_ex_data(ENGINE *e, int idx, void *arg); -OSSL_DEPRECATEDIN_3_0 void *ENGINE_get_ex_data(const ENGINE *e, int idx); -# endif - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -/* - * This function previously cleaned up anything that needs it. Auto-deinit will - * now take care of it so it is no longer required to call this function. - */ -# define ENGINE_cleanup() while(0) continue -# endif - -/* - * These return values from within the ENGINE structure. These can be useful - * with functional references as well as structural references - it depends - * which you obtained. Using the result for functional purposes if you only - * obtained a structural reference may be problematic! - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 const char *ENGINE_get_id(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 const char *ENGINE_get_name(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 const RSA_METHOD *ENGINE_get_RSA(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 const DSA_METHOD *ENGINE_get_DSA(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 const EC_KEY_METHOD *ENGINE_get_EC(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 const DH_METHOD *ENGINE_get_DH(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 const RAND_METHOD *ENGINE_get_RAND(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_GEN_INT_FUNC_PTR ENGINE_get_destroy_function(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_GEN_INT_FUNC_PTR ENGINE_get_init_function(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_GEN_INT_FUNC_PTR ENGINE_get_finish_function(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_CIPHERS_PTR ENGINE_get_ciphers(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_DIGESTS_PTR ENGINE_get_digests(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_PKEY_METHS_PTR ENGINE_get_pkey_meths(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_PKEY_ASN1_METHS_PTR ENGINE_get_pkey_asn1_meths(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid); -OSSL_DEPRECATEDIN_3_0 -const EVP_MD *ENGINE_get_digest(ENGINE *e, int nid); -OSSL_DEPRECATEDIN_3_0 -const EVP_PKEY_METHOD *ENGINE_get_pkey_meth(ENGINE *e, int nid); -OSSL_DEPRECATEDIN_3_0 -const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth(ENGINE *e, int nid); -OSSL_DEPRECATEDIN_3_0 -const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth_str(ENGINE *e, - const char *str, - int len); -OSSL_DEPRECATEDIN_3_0 -const EVP_PKEY_ASN1_METHOD *ENGINE_pkey_asn1_find_str(ENGINE **pe, - const char *str, int len); -OSSL_DEPRECATEDIN_3_0 -const ENGINE_CMD_DEFN *ENGINE_get_cmd_defns(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_get_flags(const ENGINE *e); -# endif - -/* - * FUNCTIONAL functions. These functions deal with ENGINE structures that - * have (or will) be initialised for use. Broadly speaking, the structural - * functions are useful for iterating the list of available engine types, - * creating new engine types, and other "list" operations. These functions - * actually deal with ENGINEs that are to be used. As such these functions - * can fail (if applicable) when particular engines are unavailable - eg. if - * a hardware accelerator is not attached or not functioning correctly. Each - * ENGINE has 2 reference counts; structural and functional. Every time a - * functional reference is obtained or released, a corresponding structural - * reference is automatically obtained or released too. - */ - -/* - * Initialise an engine type for use (or up its reference count if it's - * already in use). This will fail if the engine is not currently operational - * and cannot initialise. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_init(ENGINE *e); -# endif -/* - * Free a functional reference to an engine type. This does not require a - * corresponding call to ENGINE_free as it also releases a structural - * reference. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_finish(ENGINE *e); -# endif - -/* - * The following functions handle keys that are stored in some secondary - * location, handled by the engine. The storage may be on a card or - * whatever. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id, - UI_METHOD *ui_method, void *callback_data); -OSSL_DEPRECATEDIN_3_0 -EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id, - UI_METHOD *ui_method, void *callback_data); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s, STACK_OF(X509_NAME) *ca_dn, - X509 **pcert, EVP_PKEY **ppkey, - STACK_OF(X509) **pother, - UI_METHOD *ui_method, void *callback_data); -# endif - -/* - * This returns a pointer for the current ENGINE structure that is (by - * default) performing any RSA operations. The value returned is an - * incremented reference, so it should be free'd (ENGINE_finish) before it is - * discarded. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_default_RSA(void); -# endif -/* Same for the other "methods" */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_default_DSA(void); -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_default_EC(void); -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_default_DH(void); -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_default_RAND(void); -# endif -/* - * These functions can be used to get a functional reference to perform - * ciphering or digesting corresponding to "nid". - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_cipher_engine(int nid); -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_digest_engine(int nid); -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_pkey_meth_engine(int nid); -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_pkey_asn1_meth_engine(int nid); -# endif - -/* - * This sets a new default ENGINE structure for performing RSA operations. If - * the result is non-zero (success) then the ENGINE structure will have had - * its reference count up'd so the caller should still free their own - * reference 'e'. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_RSA(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_string(ENGINE *e, - const char *def_list); -# endif -/* Same for the other "methods" */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_DSA(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_EC(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_DH(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_RAND(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_ciphers(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_digests(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_pkey_meths(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_pkey_asn1_meths(ENGINE *e); -# endif - -/* - * The combination "set" - the flags are bitwise "OR"d from the - * ENGINE_METHOD_*** defines above. As with the "ENGINE_register_complete()" - * function, this function can result in unnecessary static linkage. If your - * application requires only specific functionality, consider using more - * selective functions. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default(ENGINE *e, unsigned int flags); -OSSL_DEPRECATEDIN_3_0 void ENGINE_add_conf_module(void); -# endif - -/* Deprecated functions ... */ -/* int ENGINE_clear_defaults(void); */ - -/**************************/ -/* DYNAMIC ENGINE SUPPORT */ -/**************************/ - -/* Binary/behaviour compatibility levels */ -# define OSSL_DYNAMIC_VERSION (unsigned long)0x00030000 -/* - * Binary versions older than this are too old for us (whether we're a loader - * or a loadee) - */ -# define OSSL_DYNAMIC_OLDEST (unsigned long)0x00030000 - -/* - * When compiling an ENGINE entirely as an external shared library, loadable - * by the "dynamic" ENGINE, these types are needed. The 'dynamic_fns' - * structure type provides the calling application's (or library's) error - * functionality and memory management function pointers to the loaded - * library. These should be used/set in the loaded library code so that the - * loading application's 'state' will be used/changed in all operations. The - * 'static_state' pointer allows the loaded library to know if it shares the - * same static data as the calling application (or library), and thus whether - * these callbacks need to be set or not. - */ -typedef void *(*dyn_MEM_malloc_fn) (size_t, const char *, int); -typedef void *(*dyn_MEM_realloc_fn) (void *, size_t, const char *, int); -typedef void (*dyn_MEM_free_fn) (void *, const char *, int); -typedef struct st_dynamic_MEM_fns { - dyn_MEM_malloc_fn malloc_fn; - dyn_MEM_realloc_fn realloc_fn; - dyn_MEM_free_fn free_fn; -} dynamic_MEM_fns; -/* - * FIXME: Perhaps the memory and locking code (crypto.h) should declare and - * use these types so we (and any other dependent code) can simplify a bit?? - */ -/* The top-level structure */ -typedef struct st_dynamic_fns { - void *static_state; - dynamic_MEM_fns mem_fns; -} dynamic_fns; - -/* - * The version checking function should be of this prototype. NB: The - * ossl_version value passed in is the OSSL_DYNAMIC_VERSION of the loading - * code. If this function returns zero, it indicates a (potential) version - * incompatibility and the loaded library doesn't believe it can proceed. - * Otherwise, the returned value is the (latest) version supported by the - * loading library. The loader may still decide that the loaded code's - * version is unsatisfactory and could veto the load. The function is - * expected to be implemented with the symbol name "v_check", and a default - * implementation can be fully instantiated with - * IMPLEMENT_DYNAMIC_CHECK_FN(). - */ -typedef unsigned long (*dynamic_v_check_fn) (unsigned long ossl_version); -# define IMPLEMENT_DYNAMIC_CHECK_FN() \ - OPENSSL_EXPORT unsigned long v_check(unsigned long v); \ - OPENSSL_EXPORT unsigned long v_check(unsigned long v) { \ - if (v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \ - return 0; } - -/* - * This function is passed the ENGINE structure to initialise with its own - * function and command settings. It should not adjust the structural or - * functional reference counts. If this function returns zero, (a) the load - * will be aborted, (b) the previous ENGINE state will be memcpy'd back onto - * the structure, and (c) the shared library will be unloaded. So - * implementations should do their own internal cleanup in failure - * circumstances otherwise they could leak. The 'id' parameter, if non-NULL, - * represents the ENGINE id that the loader is looking for. If this is NULL, - * the shared library can choose to return failure or to initialise a - * 'default' ENGINE. If non-NULL, the shared library must initialise only an - * ENGINE matching the passed 'id'. The function is expected to be - * implemented with the symbol name "bind_engine". A standard implementation - * can be instantiated with IMPLEMENT_DYNAMIC_BIND_FN(fn) where the parameter - * 'fn' is a callback function that populates the ENGINE structure and - * returns an int value (zero for failure). 'fn' should have prototype; - * [static] int fn(ENGINE *e, const char *id); - */ -typedef int (*dynamic_bind_engine) (ENGINE *e, const char *id, - const dynamic_fns *fns); -# define IMPLEMENT_DYNAMIC_BIND_FN(fn) \ - OPENSSL_EXPORT \ - int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns); \ - OPENSSL_EXPORT \ - int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \ - if (ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \ - CRYPTO_set_mem_functions(fns->mem_fns.malloc_fn, \ - fns->mem_fns.realloc_fn, \ - fns->mem_fns.free_fn); \ - OPENSSL_init_crypto(OPENSSL_INIT_NO_ATEXIT, NULL); \ - skip_cbs: \ - if (!fn(e, id)) return 0; \ - return 1; } - -/* - * If the loading application (or library) and the loaded ENGINE library - * share the same static data (eg. they're both dynamically linked to the - * same libcrypto.so) we need a way to avoid trying to set system callbacks - - * this would fail, and for the same reason that it's unnecessary to try. If - * the loaded ENGINE has (or gets from through the loader) its own copy of - * the libcrypto static data, we will need to set the callbacks. The easiest - * way to detect this is to have a function that returns a pointer to some - * static data and let the loading application and loaded ENGINE compare - * their respective values. - */ -void *ENGINE_get_static_state(void); - -# if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 void ENGINE_setup_bsd_cryptodev(void); -# endif -# endif - - -# ifdef __cplusplus -} -# endif -# endif /* OPENSSL_NO_ENGINE */ -#endif /* OPENSSL_ENGINE_H */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/engineerr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/engineerr.h deleted file mode 100644 index d439b68..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/engineerr.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_ENGINEERR_H -# define OPENSSL_ENGINEERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_ENGINE - - -/* - * ENGINE reason codes. - */ -# define ENGINE_R_ALREADY_LOADED 100 -# define ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER 133 -# define ENGINE_R_CMD_NOT_EXECUTABLE 134 -# define ENGINE_R_COMMAND_TAKES_INPUT 135 -# define ENGINE_R_COMMAND_TAKES_NO_INPUT 136 -# define ENGINE_R_CONFLICTING_ENGINE_ID 103 -# define ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED 119 -# define ENGINE_R_DSO_FAILURE 104 -# define ENGINE_R_DSO_NOT_FOUND 132 -# define ENGINE_R_ENGINES_SECTION_ERROR 148 -# define ENGINE_R_ENGINE_CONFIGURATION_ERROR 102 -# define ENGINE_R_ENGINE_IS_NOT_IN_LIST 105 -# define ENGINE_R_ENGINE_SECTION_ERROR 149 -# define ENGINE_R_FAILED_LOADING_PRIVATE_KEY 128 -# define ENGINE_R_FAILED_LOADING_PUBLIC_KEY 129 -# define ENGINE_R_FINISH_FAILED 106 -# define ENGINE_R_ID_OR_NAME_MISSING 108 -# define ENGINE_R_INIT_FAILED 109 -# define ENGINE_R_INTERNAL_LIST_ERROR 110 -# define ENGINE_R_INVALID_ARGUMENT 143 -# define ENGINE_R_INVALID_CMD_NAME 137 -# define ENGINE_R_INVALID_CMD_NUMBER 138 -# define ENGINE_R_INVALID_INIT_VALUE 151 -# define ENGINE_R_INVALID_STRING 150 -# define ENGINE_R_NOT_INITIALISED 117 -# define ENGINE_R_NOT_LOADED 112 -# define ENGINE_R_NO_CONTROL_FUNCTION 120 -# define ENGINE_R_NO_INDEX 144 -# define ENGINE_R_NO_LOAD_FUNCTION 125 -# define ENGINE_R_NO_REFERENCE 130 -# define ENGINE_R_NO_SUCH_ENGINE 116 -# define ENGINE_R_UNIMPLEMENTED_CIPHER 146 -# define ENGINE_R_UNIMPLEMENTED_DIGEST 147 -# define ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD 101 -# define ENGINE_R_VERSION_INCOMPATIBILITY 145 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/err.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/err.h deleted file mode 100644 index daca18e..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/err.h +++ /dev/null @@ -1,512 +0,0 @@ -/* - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_ERR_H -# define OPENSSL_ERR_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_ERR_H -# endif - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# include -# endif - -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_FILENAMES -# define ERR_PUT_error(l,f,r,fn,ln) ERR_put_error(l,f,r,fn,ln) -# else -# define ERR_PUT_error(l,f,r,fn,ln) ERR_put_error(l,f,r,NULL,0) -# endif -# endif - -# include -# include - -# define ERR_TXT_MALLOCED 0x01 -# define ERR_TXT_STRING 0x02 - -# if !defined(OPENSSL_NO_DEPRECATED_3_0) || defined(OSSL_FORCE_ERR_STATE) -# define ERR_FLAG_MARK 0x01 -# define ERR_FLAG_CLEAR 0x02 - -# define ERR_NUM_ERRORS 16 -struct err_state_st { - int err_flags[ERR_NUM_ERRORS]; - int err_marks[ERR_NUM_ERRORS]; - unsigned long err_buffer[ERR_NUM_ERRORS]; - char *err_data[ERR_NUM_ERRORS]; - size_t err_data_size[ERR_NUM_ERRORS]; - int err_data_flags[ERR_NUM_ERRORS]; - char *err_file[ERR_NUM_ERRORS]; - int err_line[ERR_NUM_ERRORS]; - char *err_func[ERR_NUM_ERRORS]; - int top, bottom; -}; -# endif - -/* library */ -# define ERR_LIB_NONE 1 -# define ERR_LIB_SYS 2 -# define ERR_LIB_BN 3 -# define ERR_LIB_RSA 4 -# define ERR_LIB_DH 5 -# define ERR_LIB_EVP 6 -# define ERR_LIB_BUF 7 -# define ERR_LIB_OBJ 8 -# define ERR_LIB_PEM 9 -# define ERR_LIB_DSA 10 -# define ERR_LIB_X509 11 -/* #define ERR_LIB_METH 12 */ -# define ERR_LIB_ASN1 13 -# define ERR_LIB_CONF 14 -# define ERR_LIB_CRYPTO 15 -# define ERR_LIB_EC 16 -# define ERR_LIB_SSL 20 -/* #define ERR_LIB_SSL23 21 */ -/* #define ERR_LIB_SSL2 22 */ -/* #define ERR_LIB_SSL3 23 */ -/* #define ERR_LIB_RSAREF 30 */ -/* #define ERR_LIB_PROXY 31 */ -# define ERR_LIB_BIO 32 -# define ERR_LIB_PKCS7 33 -# define ERR_LIB_X509V3 34 -# define ERR_LIB_PKCS12 35 -# define ERR_LIB_RAND 36 -# define ERR_LIB_DSO 37 -# define ERR_LIB_ENGINE 38 -# define ERR_LIB_OCSP 39 -# define ERR_LIB_UI 40 -# define ERR_LIB_COMP 41 -# define ERR_LIB_ECDSA 42 -# define ERR_LIB_ECDH 43 -# define ERR_LIB_OSSL_STORE 44 -# define ERR_LIB_FIPS 45 -# define ERR_LIB_CMS 46 -# define ERR_LIB_TS 47 -# define ERR_LIB_HMAC 48 -/* # define ERR_LIB_JPAKE 49 */ -# define ERR_LIB_CT 50 -# define ERR_LIB_ASYNC 51 -# define ERR_LIB_KDF 52 -# define ERR_LIB_SM2 53 -# define ERR_LIB_ESS 54 -# define ERR_LIB_PROP 55 -# define ERR_LIB_CRMF 56 -# define ERR_LIB_PROV 57 -# define ERR_LIB_CMP 58 -# define ERR_LIB_OSSL_ENCODER 59 -# define ERR_LIB_OSSL_DECODER 60 -# define ERR_LIB_HTTP 61 - -# define ERR_LIB_USER 128 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define ASN1err(f, r) ERR_raise_data(ERR_LIB_ASN1, (r), NULL) -# define ASYNCerr(f, r) ERR_raise_data(ERR_LIB_ASYNC, (r), NULL) -# define BIOerr(f, r) ERR_raise_data(ERR_LIB_BIO, (r), NULL) -# define BNerr(f, r) ERR_raise_data(ERR_LIB_BN, (r), NULL) -# define BUFerr(f, r) ERR_raise_data(ERR_LIB_BUF, (r), NULL) -# define CMPerr(f, r) ERR_raise_data(ERR_LIB_CMP, (r), NULL) -# define CMSerr(f, r) ERR_raise_data(ERR_LIB_CMS, (r), NULL) -# define COMPerr(f, r) ERR_raise_data(ERR_LIB_COMP, (r), NULL) -# define CONFerr(f, r) ERR_raise_data(ERR_LIB_CONF, (r), NULL) -# define CRMFerr(f, r) ERR_raise_data(ERR_LIB_CRMF, (r), NULL) -# define CRYPTOerr(f, r) ERR_raise_data(ERR_LIB_CRYPTO, (r), NULL) -# define CTerr(f, r) ERR_raise_data(ERR_LIB_CT, (r), NULL) -# define DHerr(f, r) ERR_raise_data(ERR_LIB_DH, (r), NULL) -# define DSAerr(f, r) ERR_raise_data(ERR_LIB_DSA, (r), NULL) -# define DSOerr(f, r) ERR_raise_data(ERR_LIB_DSO, (r), NULL) -# define ECDHerr(f, r) ERR_raise_data(ERR_LIB_ECDH, (r), NULL) -# define ECDSAerr(f, r) ERR_raise_data(ERR_LIB_ECDSA, (r), NULL) -# define ECerr(f, r) ERR_raise_data(ERR_LIB_EC, (r), NULL) -# define ENGINEerr(f, r) ERR_raise_data(ERR_LIB_ENGINE, (r), NULL) -# define ESSerr(f, r) ERR_raise_data(ERR_LIB_ESS, (r), NULL) -# define EVPerr(f, r) ERR_raise_data(ERR_LIB_EVP, (r), NULL) -# define FIPSerr(f, r) ERR_raise_data(ERR_LIB_FIPS, (r), NULL) -# define HMACerr(f, r) ERR_raise_data(ERR_LIB_HMAC, (r), NULL) -# define HTTPerr(f, r) ERR_raise_data(ERR_LIB_HTTP, (r), NULL) -# define KDFerr(f, r) ERR_raise_data(ERR_LIB_KDF, (r), NULL) -# define OBJerr(f, r) ERR_raise_data(ERR_LIB_OBJ, (r), NULL) -# define OCSPerr(f, r) ERR_raise_data(ERR_LIB_OCSP, (r), NULL) -# define OSSL_STOREerr(f, r) ERR_raise_data(ERR_LIB_OSSL_STORE, (r), NULL) -# define PEMerr(f, r) ERR_raise_data(ERR_LIB_PEM, (r), NULL) -# define PKCS12err(f, r) ERR_raise_data(ERR_LIB_PKCS12, (r), NULL) -# define PKCS7err(f, r) ERR_raise_data(ERR_LIB_PKCS7, (r), NULL) -# define PROPerr(f, r) ERR_raise_data(ERR_LIB_PROP, (r), NULL) -# define PROVerr(f, r) ERR_raise_data(ERR_LIB_PROV, (r), NULL) -# define RANDerr(f, r) ERR_raise_data(ERR_LIB_RAND, (r), NULL) -# define RSAerr(f, r) ERR_raise_data(ERR_LIB_RSA, (r), NULL) -# define KDFerr(f, r) ERR_raise_data(ERR_LIB_KDF, (r), NULL) -# define SM2err(f, r) ERR_raise_data(ERR_LIB_SM2, (r), NULL) -# define SSLerr(f, r) ERR_raise_data(ERR_LIB_SSL, (r), NULL) -# define SYSerr(f, r) ERR_raise_data(ERR_LIB_SYS, (r), NULL) -# define TSerr(f, r) ERR_raise_data(ERR_LIB_TS, (r), NULL) -# define UIerr(f, r) ERR_raise_data(ERR_LIB_UI, (r), NULL) -# define X509V3err(f, r) ERR_raise_data(ERR_LIB_X509V3, (r), NULL) -# define X509err(f, r) ERR_raise_data(ERR_LIB_X509, (r), NULL) -# endif - -/*- - * The error code packs differently depending on if it records a system - * error or an OpenSSL error. - * - * A system error packs like this (we follow POSIX and only allow positive - * numbers that fit in an |int|): - * - * +-+-------------------------------------------------------------+ - * |1| system error number | - * +-+-------------------------------------------------------------+ - * - * An OpenSSL error packs like this: - * - * <---------------------------- 32 bits --------------------------> - * <--- 8 bits ---><------------------ 23 bits -----------------> - * +-+---------------+---------------------------------------------+ - * |0| library | reason | - * +-+---------------+---------------------------------------------+ - * - * A few of the reason bits are reserved as flags with special meaning: - * - * <5 bits-<>--------- 19 bits -----------------> - * +-------+-+-----------------------------------+ - * | rflags| | reason | - * +-------+-+-----------------------------------+ - * ^ - * | - * ERR_RFLAG_FATAL = ERR_R_FATAL - * - * The reason flags are part of the overall reason code for practical - * reasons, as they provide an easy way to place different types of - * reason codes in different numeric ranges. - * - * The currently known reason flags are: - * - * ERR_RFLAG_FATAL Flags that the reason code is considered fatal. - * For backward compatibility reasons, this flag - * is also the code for ERR_R_FATAL (that reason - * code served the dual purpose of flag and reason - * code in one in pre-3.0 OpenSSL). - * ERR_RFLAG_COMMON Flags that the reason code is common to all - * libraries. All ERR_R_ macros must use this flag, - * and no other _R_ macro is allowed to use it. - */ - -/* Macros to help decode recorded system errors */ -# define ERR_SYSTEM_FLAG ((unsigned int)INT_MAX + 1) -# define ERR_SYSTEM_MASK ((unsigned int)INT_MAX) - -/* - * Macros to help decode recorded OpenSSL errors - * As expressed above, RFLAGS and REASON overlap by one bit to allow - * ERR_R_FATAL to use ERR_RFLAG_FATAL as its reason code. - */ -# define ERR_LIB_OFFSET 23L -# define ERR_LIB_MASK 0xFF -# define ERR_RFLAGS_OFFSET 18L -# define ERR_RFLAGS_MASK 0x1F -# define ERR_REASON_MASK 0X7FFFFF - -/* - * Reason flags are defined pre-shifted to easily combine with the reason - * number. - */ -# define ERR_RFLAG_FATAL (0x1 << ERR_RFLAGS_OFFSET) -# define ERR_RFLAG_COMMON (0x2 << ERR_RFLAGS_OFFSET) - -# define ERR_SYSTEM_ERROR(errcode) (((errcode) & ERR_SYSTEM_FLAG) != 0) - -static ossl_unused ossl_inline int ERR_GET_LIB(unsigned long errcode) -{ - if (ERR_SYSTEM_ERROR(errcode)) - return ERR_LIB_SYS; - return (errcode >> ERR_LIB_OFFSET) & ERR_LIB_MASK; -} - -static ossl_unused ossl_inline int ERR_GET_RFLAGS(unsigned long errcode) -{ - if (ERR_SYSTEM_ERROR(errcode)) - return 0; - return errcode & (ERR_RFLAGS_MASK << ERR_RFLAGS_OFFSET); -} - -static ossl_unused ossl_inline int ERR_GET_REASON(unsigned long errcode) -{ - if (ERR_SYSTEM_ERROR(errcode)) - return errcode & ERR_SYSTEM_MASK; - return errcode & ERR_REASON_MASK; -} - -static ossl_unused ossl_inline int ERR_FATAL_ERROR(unsigned long errcode) -{ - return (ERR_GET_RFLAGS(errcode) & ERR_RFLAG_FATAL) != 0; -} - -static ossl_unused ossl_inline int ERR_COMMON_ERROR(unsigned long errcode) -{ - return (ERR_GET_RFLAGS(errcode) & ERR_RFLAG_COMMON) != 0; -} - -/* - * ERR_PACK is a helper macro to properly pack OpenSSL error codes and may - * only be used for that purpose. System errors are packed internally. - * ERR_PACK takes reason flags and reason code combined in |reason|. - * ERR_PACK ignores |func|, that parameter is just legacy from pre-3.0 OpenSSL. - */ -# define ERR_PACK(lib,func,reason) \ - ( (((unsigned long)(lib) & ERR_LIB_MASK ) << ERR_LIB_OFFSET) | \ - (((unsigned long)(reason) & ERR_REASON_MASK)) ) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SYS_F_FOPEN 0 -# define SYS_F_CONNECT 0 -# define SYS_F_GETSERVBYNAME 0 -# define SYS_F_SOCKET 0 -# define SYS_F_IOCTLSOCKET 0 -# define SYS_F_BIND 0 -# define SYS_F_LISTEN 0 -# define SYS_F_ACCEPT 0 -# define SYS_F_WSASTARTUP 0 -# define SYS_F_OPENDIR 0 -# define SYS_F_FREAD 0 -# define SYS_F_GETADDRINFO 0 -# define SYS_F_GETNAMEINFO 0 -# define SYS_F_SETSOCKOPT 0 -# define SYS_F_GETSOCKOPT 0 -# define SYS_F_GETSOCKNAME 0 -# define SYS_F_GETHOSTBYNAME 0 -# define SYS_F_FFLUSH 0 -# define SYS_F_OPEN 0 -# define SYS_F_CLOSE 0 -# define SYS_F_IOCTL 0 -# define SYS_F_STAT 0 -# define SYS_F_FCNTL 0 -# define SYS_F_FSTAT 0 -# define SYS_F_SENDFILE 0 -# endif - -/* - * All ERR_R_ codes must be combined with ERR_RFLAG_COMMON. - */ - -/* "we came from here" global reason codes, range 1..255 */ -# define ERR_R_SYS_LIB (ERR_LIB_SYS/* 2 */ | ERR_RFLAG_COMMON) -# define ERR_R_BN_LIB (ERR_LIB_BN/* 3 */ | ERR_RFLAG_COMMON) -# define ERR_R_RSA_LIB (ERR_LIB_RSA/* 4 */ | ERR_RFLAG_COMMON) -# define ERR_R_DH_LIB (ERR_LIB_DH/* 5 */ | ERR_RFLAG_COMMON) -# define ERR_R_EVP_LIB (ERR_LIB_EVP/* 6 */ | ERR_RFLAG_COMMON) -# define ERR_R_BUF_LIB (ERR_LIB_BUF/* 7 */ | ERR_RFLAG_COMMON) -# define ERR_R_OBJ_LIB (ERR_LIB_OBJ/* 8 */ | ERR_RFLAG_COMMON) -# define ERR_R_PEM_LIB (ERR_LIB_PEM/* 9 */ | ERR_RFLAG_COMMON) -# define ERR_R_DSA_LIB (ERR_LIB_DSA/* 10 */ | ERR_RFLAG_COMMON) -# define ERR_R_X509_LIB (ERR_LIB_X509/* 11 */ | ERR_RFLAG_COMMON) -# define ERR_R_ASN1_LIB (ERR_LIB_ASN1/* 13 */ | ERR_RFLAG_COMMON) -# define ERR_R_CONF_LIB (ERR_LIB_CONF/* 14 */ | ERR_RFLAG_COMMON) -# define ERR_R_CRYPTO_LIB (ERR_LIB_CRYPTO/* 15 */ | ERR_RFLAG_COMMON) -# define ERR_R_EC_LIB (ERR_LIB_EC/* 16 */ | ERR_RFLAG_COMMON) -# define ERR_R_SSL_LIB (ERR_LIB_SSL/* 20 */ | ERR_RFLAG_COMMON) -# define ERR_R_BIO_LIB (ERR_LIB_BIO/* 32 */ | ERR_RFLAG_COMMON) -# define ERR_R_PKCS7_LIB (ERR_LIB_PKCS7/* 33 */ | ERR_RFLAG_COMMON) -# define ERR_R_X509V3_LIB (ERR_LIB_X509V3/* 34 */ | ERR_RFLAG_COMMON) -# define ERR_R_PKCS12_LIB (ERR_LIB_PKCS12/* 35 */ | ERR_RFLAG_COMMON) -# define ERR_R_RAND_LIB (ERR_LIB_RAND/* 36 */ | ERR_RFLAG_COMMON) -# define ERR_R_DSO_LIB (ERR_LIB_DSO/* 37 */ | ERR_RFLAG_COMMON) -# define ERR_R_ENGINE_LIB (ERR_LIB_ENGINE/* 38 */ | ERR_RFLAG_COMMON) -# define ERR_R_UI_LIB (ERR_LIB_UI/* 40 */ | ERR_RFLAG_COMMON) -# define ERR_R_ECDSA_LIB (ERR_LIB_ECDSA/* 42 */ | ERR_RFLAG_COMMON) -# define ERR_R_OSSL_STORE_LIB (ERR_LIB_OSSL_STORE/* 44 */ | ERR_RFLAG_COMMON) -# define ERR_R_CMS_LIB (ERR_LIB_CMS/* 46 */ | ERR_RFLAG_COMMON) -# define ERR_R_TS_LIB (ERR_LIB_TS/* 47 */ | ERR_RFLAG_COMMON) -# define ERR_R_CT_LIB (ERR_LIB_CT/* 50 */ | ERR_RFLAG_COMMON) -# define ERR_R_PROV_LIB (ERR_LIB_PROV/* 57 */ | ERR_RFLAG_COMMON) -# define ERR_R_ESS_LIB (ERR_LIB_ESS/* 54 */ | ERR_RFLAG_COMMON) -# define ERR_R_CMP_LIB (ERR_LIB_CMP/* 58 */ | ERR_RFLAG_COMMON) -# define ERR_R_OSSL_ENCODER_LIB (ERR_LIB_OSSL_ENCODER/* 59 */ | ERR_RFLAG_COMMON) -# define ERR_R_OSSL_DECODER_LIB (ERR_LIB_OSSL_DECODER/* 60 */ | ERR_RFLAG_COMMON) - -/* Other common error codes, range 256..2^ERR_RFLAGS_OFFSET-1 */ -# define ERR_R_FATAL (ERR_RFLAG_FATAL|ERR_RFLAG_COMMON) -# define ERR_R_MALLOC_FAILURE (256|ERR_R_FATAL) -# define ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED (257|ERR_R_FATAL) -# define ERR_R_PASSED_NULL_PARAMETER (258|ERR_R_FATAL) -# define ERR_R_INTERNAL_ERROR (259|ERR_R_FATAL) -# define ERR_R_DISABLED (260|ERR_R_FATAL) -# define ERR_R_INIT_FAIL (261|ERR_R_FATAL) -# define ERR_R_PASSED_INVALID_ARGUMENT (262|ERR_RFLAG_COMMON) -# define ERR_R_OPERATION_FAIL (263|ERR_R_FATAL) -# define ERR_R_INVALID_PROVIDER_FUNCTIONS (264|ERR_R_FATAL) -# define ERR_R_INTERRUPTED_OR_CANCELLED (265|ERR_RFLAG_COMMON) -# define ERR_R_NESTED_ASN1_ERROR (266|ERR_RFLAG_COMMON) -# define ERR_R_MISSING_ASN1_EOS (267|ERR_RFLAG_COMMON) -# define ERR_R_UNSUPPORTED (268|ERR_RFLAG_COMMON) -# define ERR_R_FETCH_FAILED (269|ERR_RFLAG_COMMON) -# define ERR_R_INVALID_PROPERTY_DEFINITION (270|ERR_RFLAG_COMMON) -# define ERR_R_UNABLE_TO_GET_READ_LOCK (271|ERR_R_FATAL) -# define ERR_R_UNABLE_TO_GET_WRITE_LOCK (272|ERR_R_FATAL) - -typedef struct ERR_string_data_st { - unsigned long error; - const char *string; -} ERR_STRING_DATA; - -DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) -#define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) -#define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) -#define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) -#define lh_ERR_STRING_DATA_delete(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_delete(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_const_ERR_STRING_DATA_lh_plain_type(ptr))) -#define lh_ERR_STRING_DATA_retrieve(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_retrieve(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_const_ERR_STRING_DATA_lh_plain_type(ptr))) -#define lh_ERR_STRING_DATA_error(lh) OPENSSL_LH_error(ossl_check_ERR_STRING_DATA_lh_type(lh)) -#define lh_ERR_STRING_DATA_num_items(lh) OPENSSL_LH_num_items(ossl_check_ERR_STRING_DATA_lh_type(lh)) -#define lh_ERR_STRING_DATA_node_stats_bio(lh, out) OPENSSL_LH_node_stats_bio(ossl_check_const_ERR_STRING_DATA_lh_type(lh), out) -#define lh_ERR_STRING_DATA_node_usage_stats_bio(lh, out) OPENSSL_LH_node_usage_stats_bio(ossl_check_const_ERR_STRING_DATA_lh_type(lh), out) -#define lh_ERR_STRING_DATA_stats_bio(lh, out) OPENSSL_LH_stats_bio(ossl_check_const_ERR_STRING_DATA_lh_type(lh), out) -#define lh_ERR_STRING_DATA_get_down_load(lh) OPENSSL_LH_get_down_load(ossl_check_ERR_STRING_DATA_lh_type(lh)) -#define lh_ERR_STRING_DATA_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_ERR_STRING_DATA_lh_type(lh), dl) -#define lh_ERR_STRING_DATA_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_doallfunc_type(dfn)) - - -/* 12 lines and some on an 80 column terminal */ -#define ERR_MAX_DATA_SIZE 1024 - -/* Building blocks */ -void ERR_new(void); -void ERR_set_debug(const char *file, int line, const char *func); -void ERR_set_error(int lib, int reason, const char *fmt, ...); -void ERR_vset_error(int lib, int reason, const char *fmt, va_list args); - -/* Main error raising functions */ -# define ERR_raise(lib, reason) ERR_raise_data((lib),(reason),NULL) -# define ERR_raise_data \ - (ERR_new(), \ - ERR_set_debug(OPENSSL_FILE,OPENSSL_LINE,OPENSSL_FUNC), \ - ERR_set_error) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* Backward compatibility */ -# define ERR_put_error(lib, func, reason, file, line) \ - (ERR_new(), \ - ERR_set_debug((file), (line), OPENSSL_FUNC), \ - ERR_set_error((lib), (reason), NULL)) -# endif - -void ERR_set_error_data(char *data, int flags); - -unsigned long ERR_get_error(void); -unsigned long ERR_get_error_all(const char **file, int *line, - const char **func, - const char **data, int *flags); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -unsigned long ERR_get_error_line(const char **file, int *line); -OSSL_DEPRECATEDIN_3_0 -unsigned long ERR_get_error_line_data(const char **file, int *line, - const char **data, int *flags); -#endif -unsigned long ERR_peek_error(void); -unsigned long ERR_peek_error_line(const char **file, int *line); -unsigned long ERR_peek_error_func(const char **func); -unsigned long ERR_peek_error_data(const char **data, int *flags); -unsigned long ERR_peek_error_all(const char **file, int *line, - const char **func, - const char **data, int *flags); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -unsigned long ERR_peek_error_line_data(const char **file, int *line, - const char **data, int *flags); -# endif -unsigned long ERR_peek_last_error(void); -unsigned long ERR_peek_last_error_line(const char **file, int *line); -unsigned long ERR_peek_last_error_func(const char **func); -unsigned long ERR_peek_last_error_data(const char **data, int *flags); -unsigned long ERR_peek_last_error_all(const char **file, int *line, - const char **func, - const char **data, int *flags); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -unsigned long ERR_peek_last_error_line_data(const char **file, int *line, - const char **data, int *flags); -# endif - -void ERR_clear_error(void); - -char *ERR_error_string(unsigned long e, char *buf); -void ERR_error_string_n(unsigned long e, char *buf, size_t len); -const char *ERR_lib_error_string(unsigned long e); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 const char *ERR_func_error_string(unsigned long e); -# endif -const char *ERR_reason_error_string(unsigned long e); - -void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void *u), - void *u); -# ifndef OPENSSL_NO_STDIO -void ERR_print_errors_fp(FILE *fp); -# endif -void ERR_print_errors(BIO *bp); - -void ERR_add_error_data(int num, ...); -void ERR_add_error_vdata(int num, va_list args); -void ERR_add_error_txt(const char *sepr, const char *txt); -void ERR_add_error_mem_bio(const char *sep, BIO *bio); - -int ERR_load_strings(int lib, ERR_STRING_DATA *str); -int ERR_load_strings_const(const ERR_STRING_DATA *str); -int ERR_unload_strings(int lib, ERR_STRING_DATA *str); - -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define ERR_load_crypto_strings() \ - OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) -# define ERR_free_strings() while(0) continue -#endif -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 void ERR_remove_thread_state(void *); -#endif -#ifndef OPENSSL_NO_DEPRECATED_1_0_0 -OSSL_DEPRECATEDIN_1_0_0 void ERR_remove_state(unsigned long pid); -#endif -#ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 ERR_STATE *ERR_get_state(void); -#endif - -int ERR_get_next_error_library(void); - -int ERR_set_mark(void); -int ERR_pop_to_mark(void); -int ERR_clear_last_mark(void); -int ERR_count_to_mark(void); -int ERR_pop(void); - -ERR_STATE *OSSL_ERR_STATE_new(void); -void OSSL_ERR_STATE_save(ERR_STATE *es); -void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); -void OSSL_ERR_STATE_restore(const ERR_STATE *es); -void OSSL_ERR_STATE_free(ERR_STATE *es); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ess.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/ess.h deleted file mode 100644 index 863a874..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ess.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\ess.h.in - * - * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_ESS_H -# define OPENSSL_ESS_H -# pragma once - -# include - -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - - -typedef struct ESS_issuer_serial ESS_ISSUER_SERIAL; -typedef struct ESS_cert_id ESS_CERT_ID; -typedef struct ESS_signing_cert ESS_SIGNING_CERT; - -SKM_DEFINE_STACK_OF_INTERNAL(ESS_CERT_ID, ESS_CERT_ID, ESS_CERT_ID) -#define sk_ESS_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_ESS_CERT_ID_sk_type(sk)) -#define sk_ESS_CERT_ID_value(sk, idx) ((ESS_CERT_ID *)OPENSSL_sk_value(ossl_check_const_ESS_CERT_ID_sk_type(sk), (idx))) -#define sk_ESS_CERT_ID_new(cmp) ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_new(ossl_check_ESS_CERT_ID_compfunc_type(cmp))) -#define sk_ESS_CERT_ID_new_null() ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_new_null()) -#define sk_ESS_CERT_ID_new_reserve(cmp, n) ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_ESS_CERT_ID_compfunc_type(cmp), (n))) -#define sk_ESS_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ESS_CERT_ID_sk_type(sk), (n)) -#define sk_ESS_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_ESS_CERT_ID_sk_type(sk)) -#define sk_ESS_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_ESS_CERT_ID_sk_type(sk)) -#define sk_ESS_CERT_ID_delete(sk, i) ((ESS_CERT_ID *)OPENSSL_sk_delete(ossl_check_ESS_CERT_ID_sk_type(sk), (i))) -#define sk_ESS_CERT_ID_delete_ptr(sk, ptr) ((ESS_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr))) -#define sk_ESS_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr)) -#define sk_ESS_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr)) -#define sk_ESS_CERT_ID_pop(sk) ((ESS_CERT_ID *)OPENSSL_sk_pop(ossl_check_ESS_CERT_ID_sk_type(sk))) -#define sk_ESS_CERT_ID_shift(sk) ((ESS_CERT_ID *)OPENSSL_sk_shift(ossl_check_ESS_CERT_ID_sk_type(sk))) -#define sk_ESS_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_freefunc_type(freefunc)) -#define sk_ESS_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr), (idx)) -#define sk_ESS_CERT_ID_set(sk, idx, ptr) ((ESS_CERT_ID *)OPENSSL_sk_set(ossl_check_ESS_CERT_ID_sk_type(sk), (idx), ossl_check_ESS_CERT_ID_type(ptr))) -#define sk_ESS_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr)) -#define sk_ESS_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr)) -#define sk_ESS_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr), pnum) -#define sk_ESS_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_ESS_CERT_ID_sk_type(sk)) -#define sk_ESS_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ESS_CERT_ID_sk_type(sk)) -#define sk_ESS_CERT_ID_dup(sk) ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_ESS_CERT_ID_sk_type(sk))) -#define sk_ESS_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_copyfunc_type(copyfunc), ossl_check_ESS_CERT_ID_freefunc_type(freefunc))) -#define sk_ESS_CERT_ID_set_cmp_func(sk, cmp) ((sk_ESS_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_compfunc_type(cmp))) - - - -typedef struct ESS_signing_cert_v2_st ESS_SIGNING_CERT_V2; -typedef struct ESS_cert_id_v2_st ESS_CERT_ID_V2; - -SKM_DEFINE_STACK_OF_INTERNAL(ESS_CERT_ID_V2, ESS_CERT_ID_V2, ESS_CERT_ID_V2) -#define sk_ESS_CERT_ID_V2_num(sk) OPENSSL_sk_num(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk)) -#define sk_ESS_CERT_ID_V2_value(sk, idx) ((ESS_CERT_ID_V2 *)OPENSSL_sk_value(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk), (idx))) -#define sk_ESS_CERT_ID_V2_new(cmp) ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_new(ossl_check_ESS_CERT_ID_V2_compfunc_type(cmp))) -#define sk_ESS_CERT_ID_V2_new_null() ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_new_null()) -#define sk_ESS_CERT_ID_V2_new_reserve(cmp, n) ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_new_reserve(ossl_check_ESS_CERT_ID_V2_compfunc_type(cmp), (n))) -#define sk_ESS_CERT_ID_V2_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ESS_CERT_ID_V2_sk_type(sk), (n)) -#define sk_ESS_CERT_ID_V2_free(sk) OPENSSL_sk_free(ossl_check_ESS_CERT_ID_V2_sk_type(sk)) -#define sk_ESS_CERT_ID_V2_zero(sk) OPENSSL_sk_zero(ossl_check_ESS_CERT_ID_V2_sk_type(sk)) -#define sk_ESS_CERT_ID_V2_delete(sk, i) ((ESS_CERT_ID_V2 *)OPENSSL_sk_delete(ossl_check_ESS_CERT_ID_V2_sk_type(sk), (i))) -#define sk_ESS_CERT_ID_V2_delete_ptr(sk, ptr) ((ESS_CERT_ID_V2 *)OPENSSL_sk_delete_ptr(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr))) -#define sk_ESS_CERT_ID_V2_push(sk, ptr) OPENSSL_sk_push(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr)) -#define sk_ESS_CERT_ID_V2_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr)) -#define sk_ESS_CERT_ID_V2_pop(sk) ((ESS_CERT_ID_V2 *)OPENSSL_sk_pop(ossl_check_ESS_CERT_ID_V2_sk_type(sk))) -#define sk_ESS_CERT_ID_V2_shift(sk) ((ESS_CERT_ID_V2 *)OPENSSL_sk_shift(ossl_check_ESS_CERT_ID_V2_sk_type(sk))) -#define sk_ESS_CERT_ID_V2_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_freefunc_type(freefunc)) -#define sk_ESS_CERT_ID_V2_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr), (idx)) -#define sk_ESS_CERT_ID_V2_set(sk, idx, ptr) ((ESS_CERT_ID_V2 *)OPENSSL_sk_set(ossl_check_ESS_CERT_ID_V2_sk_type(sk), (idx), ossl_check_ESS_CERT_ID_V2_type(ptr))) -#define sk_ESS_CERT_ID_V2_find(sk, ptr) OPENSSL_sk_find(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr)) -#define sk_ESS_CERT_ID_V2_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr)) -#define sk_ESS_CERT_ID_V2_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr), pnum) -#define sk_ESS_CERT_ID_V2_sort(sk) OPENSSL_sk_sort(ossl_check_ESS_CERT_ID_V2_sk_type(sk)) -#define sk_ESS_CERT_ID_V2_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk)) -#define sk_ESS_CERT_ID_V2_dup(sk) ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_dup(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk))) -#define sk_ESS_CERT_ID_V2_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_deep_copy(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_copyfunc_type(copyfunc), ossl_check_ESS_CERT_ID_V2_freefunc_type(freefunc))) -#define sk_ESS_CERT_ID_V2_set_cmp_func(sk, cmp) ((sk_ESS_CERT_ID_V2_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_compfunc_type(cmp))) - - -DECLARE_ASN1_ALLOC_FUNCTIONS(ESS_ISSUER_SERIAL) -DECLARE_ASN1_ENCODE_FUNCTIONS_only(ESS_ISSUER_SERIAL, ESS_ISSUER_SERIAL) -DECLARE_ASN1_DUP_FUNCTION(ESS_ISSUER_SERIAL) - -DECLARE_ASN1_ALLOC_FUNCTIONS(ESS_CERT_ID) -DECLARE_ASN1_ENCODE_FUNCTIONS_only(ESS_CERT_ID, ESS_CERT_ID) -DECLARE_ASN1_DUP_FUNCTION(ESS_CERT_ID) - -DECLARE_ASN1_FUNCTIONS(ESS_SIGNING_CERT) -DECLARE_ASN1_DUP_FUNCTION(ESS_SIGNING_CERT) - -DECLARE_ASN1_ALLOC_FUNCTIONS(ESS_CERT_ID_V2) -DECLARE_ASN1_ENCODE_FUNCTIONS_only(ESS_CERT_ID_V2, ESS_CERT_ID_V2) -DECLARE_ASN1_DUP_FUNCTION(ESS_CERT_ID_V2) - -DECLARE_ASN1_FUNCTIONS(ESS_SIGNING_CERT_V2) -DECLARE_ASN1_DUP_FUNCTION(ESS_SIGNING_CERT_V2) - -ESS_SIGNING_CERT *OSSL_ESS_signing_cert_new_init(const X509 *signcert, - const STACK_OF(X509) *certs, - int set_issuer_serial); -ESS_SIGNING_CERT_V2 *OSSL_ESS_signing_cert_v2_new_init(const EVP_MD *hash_alg, - const X509 *signcert, - const - STACK_OF(X509) *certs, - int set_issuer_serial); -int OSSL_ESS_check_signing_certs(const ESS_SIGNING_CERT *ss, - const ESS_SIGNING_CERT_V2 *ssv2, - const STACK_OF(X509) *chain, - int require_signing_cert); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/esserr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/esserr.h deleted file mode 100644 index 165ce7c..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/esserr.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_ESSERR_H -# define OPENSSL_ESSERR_H -# pragma once - -# include -# include -# include - -/* - * ESS reason codes. - */ -# define ESS_R_EMPTY_ESS_CERT_ID_LIST 107 -# define ESS_R_ESS_CERT_DIGEST_ERROR 103 -# define ESS_R_ESS_CERT_ID_NOT_FOUND 104 -# define ESS_R_ESS_CERT_ID_WRONG_ORDER 105 -# define ESS_R_ESS_DIGEST_ALG_UNKNOWN 106 -# define ESS_R_ESS_SIGNING_CERTIFICATE_ERROR 102 -# define ESS_R_ESS_SIGNING_CERT_ADD_ERROR 100 -# define ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR 101 -# define ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE 108 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/evp.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/evp.h deleted file mode 100644 index 61e50b2..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/evp.h +++ /dev/null @@ -1,2345 +0,0 @@ -/* - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_EVP_H -# define OPENSSL_EVP_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_ENVELOPE_H -# endif - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif - -# include -# include -# include -# include -# include -# include -# include -# include - -# define EVP_MAX_MD_SIZE 64/* longest known is SHA512 */ -# define EVP_MAX_KEY_LENGTH 64 -# define EVP_MAX_IV_LENGTH 16 -# define EVP_MAX_BLOCK_LENGTH 32 -# define EVP_MAX_AEAD_TAG_LENGTH 16 - -/* Maximum pipes in cipher pipelining */ -# define EVP_MAX_PIPES 32 - -# define PKCS5_SALT_LEN 8 -/* Default PKCS#5 iteration count */ -# define PKCS5_DEFAULT_ITER 2048 - -# include - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define EVP_PK_RSA 0x0001 -# define EVP_PK_DSA 0x0002 -# define EVP_PK_DH 0x0004 -# define EVP_PK_EC 0x0008 -# define EVP_PKT_SIGN 0x0010 -# define EVP_PKT_ENC 0x0020 -# define EVP_PKT_EXCH 0x0040 -# define EVP_PKS_RSA 0x0100 -# define EVP_PKS_DSA 0x0200 -# define EVP_PKS_EC 0x0400 -# endif - -# define EVP_PKEY_NONE NID_undef -# define EVP_PKEY_RSA NID_rsaEncryption -# define EVP_PKEY_RSA2 NID_rsa -# define EVP_PKEY_RSA_PSS NID_rsassaPss -# define EVP_PKEY_DSA NID_dsa -# define EVP_PKEY_DSA1 NID_dsa_2 -# define EVP_PKEY_DSA2 NID_dsaWithSHA -# define EVP_PKEY_DSA3 NID_dsaWithSHA1 -# define EVP_PKEY_DSA4 NID_dsaWithSHA1_2 -# define EVP_PKEY_DH NID_dhKeyAgreement -# define EVP_PKEY_DHX NID_dhpublicnumber -# define EVP_PKEY_EC NID_X9_62_id_ecPublicKey -# define EVP_PKEY_SM2 NID_sm2 -# define EVP_PKEY_HMAC NID_hmac -# define EVP_PKEY_CMAC NID_cmac -# define EVP_PKEY_SCRYPT NID_id_scrypt -# define EVP_PKEY_TLS1_PRF NID_tls1_prf -# define EVP_PKEY_HKDF NID_hkdf -# define EVP_PKEY_POLY1305 NID_poly1305 -# define EVP_PKEY_SIPHASH NID_siphash -# define EVP_PKEY_X25519 NID_X25519 -# define EVP_PKEY_ED25519 NID_ED25519 -# define EVP_PKEY_X448 NID_X448 -# define EVP_PKEY_ED448 NID_ED448 -# define EVP_PKEY_ML_DSA_44 NID_ML_DSA_44 -# define EVP_PKEY_ML_DSA_65 NID_ML_DSA_65 -# define EVP_PKEY_ML_DSA_87 NID_ML_DSA_87 -# define EVP_PKEY_SLH_DSA_SHA2_128S NID_SLH_DSA_SHA2_128s -# define EVP_PKEY_SLH_DSA_SHA2_128F NID_SLH_DSA_SHA2_128f -# define EVP_PKEY_SLH_DSA_SHA2_192S NID_SLH_DSA_SHA2_192s -# define EVP_PKEY_SLH_DSA_SHA2_192F NID_SLH_DSA_SHA2_192f -# define EVP_PKEY_SLH_DSA_SHA2_256S NID_SLH_DSA_SHA2_256s -# define EVP_PKEY_SLH_DSA_SHA2_256F NID_SLH_DSA_SHA2_256f -# define EVP_PKEY_SLH_DSA_SHAKE_128S NID_SLH_DSA_SHAKE_128s -# define EVP_PKEY_SLH_DSA_SHAKE_128F NID_SLH_DSA_SHAKE_128f -# define EVP_PKEY_SLH_DSA_SHAKE_192S NID_SLH_DSA_SHAKE_192s -# define EVP_PKEY_SLH_DSA_SHAKE_192F NID_SLH_DSA_SHAKE_192f -# define EVP_PKEY_SLH_DSA_SHAKE_256S NID_SLH_DSA_SHAKE_256s -# define EVP_PKEY_SLH_DSA_SHAKE_256F NID_SLH_DSA_SHAKE_256f - -/* Special indicator that the object is uniquely provider side */ -# define EVP_PKEY_KEYMGMT -1 - -/* Easy to use macros for EVP_PKEY related selections */ -# define EVP_PKEY_KEY_PARAMETERS \ - ( OSSL_KEYMGMT_SELECT_ALL_PARAMETERS ) -# define EVP_PKEY_PRIVATE_KEY \ - ( EVP_PKEY_KEY_PARAMETERS | OSSL_KEYMGMT_SELECT_PRIVATE_KEY ) -# define EVP_PKEY_PUBLIC_KEY \ - ( EVP_PKEY_KEY_PARAMETERS | OSSL_KEYMGMT_SELECT_PUBLIC_KEY ) -# define EVP_PKEY_KEYPAIR \ - ( EVP_PKEY_PUBLIC_KEY | OSSL_KEYMGMT_SELECT_PRIVATE_KEY ) - -#ifdef __cplusplus -extern "C" { -#endif - -int EVP_set_default_properties(OSSL_LIB_CTX *libctx, const char *propq); -char *EVP_get1_default_properties(OSSL_LIB_CTX *libctx); -int EVP_default_properties_is_fips_enabled(OSSL_LIB_CTX *libctx); -int EVP_default_properties_enable_fips(OSSL_LIB_CTX *libctx, int enable); - -# define EVP_PKEY_MO_SIGN 0x0001 -# define EVP_PKEY_MO_VERIFY 0x0002 -# define EVP_PKEY_MO_ENCRYPT 0x0004 -# define EVP_PKEY_MO_DECRYPT 0x0008 - -# ifndef EVP_MD -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 EVP_MD *EVP_MD_meth_new(int md_type, int pkey_type); -OSSL_DEPRECATEDIN_3_0 EVP_MD *EVP_MD_meth_dup(const EVP_MD *md); -OSSL_DEPRECATEDIN_3_0 void EVP_MD_meth_free(EVP_MD *md); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_input_blocksize(EVP_MD *md, int blocksize); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_result_size(EVP_MD *md, int resultsize); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_app_datasize(EVP_MD *md, int datasize); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_flags(EVP_MD *md, unsigned long flags); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_init(EVP_MD *md, int (*init)(EVP_MD_CTX *ctx)); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_update(EVP_MD *md, int (*update)(EVP_MD_CTX *ctx, - const void *data, - size_t count)); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_final(EVP_MD *md, int (*final)(EVP_MD_CTX *ctx, - unsigned char *md)); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_copy(EVP_MD *md, int (*copy)(EVP_MD_CTX *to, - const EVP_MD_CTX *from)); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_cleanup(EVP_MD *md, int (*cleanup)(EVP_MD_CTX *ctx)); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_ctrl(EVP_MD *md, int (*ctrl)(EVP_MD_CTX *ctx, int cmd, - int p1, void *p2)); -OSSL_DEPRECATEDIN_3_0 int EVP_MD_meth_get_input_blocksize(const EVP_MD *md); -OSSL_DEPRECATEDIN_3_0 int EVP_MD_meth_get_result_size(const EVP_MD *md); -OSSL_DEPRECATEDIN_3_0 int EVP_MD_meth_get_app_datasize(const EVP_MD *md); -OSSL_DEPRECATEDIN_3_0 unsigned long EVP_MD_meth_get_flags(const EVP_MD *md); -OSSL_DEPRECATEDIN_3_0 -int (*EVP_MD_meth_get_init(const EVP_MD *md))(EVP_MD_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 -int (*EVP_MD_meth_get_update(const EVP_MD *md))(EVP_MD_CTX *ctx, - const void *data, size_t count); -OSSL_DEPRECATEDIN_3_0 -int (*EVP_MD_meth_get_final(const EVP_MD *md))(EVP_MD_CTX *ctx, - unsigned char *md); -OSSL_DEPRECATEDIN_3_0 -int (*EVP_MD_meth_get_copy(const EVP_MD *md))(EVP_MD_CTX *to, - const EVP_MD_CTX *from); -OSSL_DEPRECATEDIN_3_0 -int (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 -int (*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd, - int p1, void *p2); -# endif -/* digest can only handle a single block */ -# define EVP_MD_FLAG_ONESHOT 0x0001 - -/* digest is extensible-output function, XOF */ -# define EVP_MD_FLAG_XOF 0x0002 - -/* DigestAlgorithmIdentifier flags... */ - -# define EVP_MD_FLAG_DIGALGID_MASK 0x0018 - -/* NULL or absent parameter accepted. Use NULL */ - -# define EVP_MD_FLAG_DIGALGID_NULL 0x0000 - -/* NULL or absent parameter accepted. Use NULL for PKCS#1 otherwise absent */ - -# define EVP_MD_FLAG_DIGALGID_ABSENT 0x0008 - -/* Custom handling via ctrl */ - -# define EVP_MD_FLAG_DIGALGID_CUSTOM 0x0018 - -/* Note if suitable for use in FIPS mode */ -# define EVP_MD_FLAG_FIPS 0x0400 - -/* Digest ctrls */ - -# define EVP_MD_CTRL_DIGALGID 0x1 -# define EVP_MD_CTRL_MICALG 0x2 -# define EVP_MD_CTRL_XOF_LEN 0x3 -# define EVP_MD_CTRL_TLSTREE 0x4 - -/* Minimum Algorithm specific ctrl value */ - -# define EVP_MD_CTRL_ALG_CTRL 0x1000 - -# endif /* !EVP_MD */ - -/* values for EVP_MD_CTX flags */ - -# define EVP_MD_CTX_FLAG_ONESHOT 0x0001/* digest update will be - * called once only */ -# define EVP_MD_CTX_FLAG_CLEANED 0x0002/* context has already been - * cleaned */ -# define EVP_MD_CTX_FLAG_REUSE 0x0004/* Don't free up ctx->md_data - * in EVP_MD_CTX_reset */ -/* - * FIPS and pad options are ignored in 1.0.0, definitions are here so we - * don't accidentally reuse the values for other purposes. - */ - -/* This flag has no effect from openssl-3.0 onwards */ -# define EVP_MD_CTX_FLAG_NON_FIPS_ALLOW 0x0008 - -/* - * The following PAD options are also currently ignored in 1.0.0, digest - * parameters are handled through EVP_DigestSign*() and EVP_DigestVerify*() - * instead. - */ -# define EVP_MD_CTX_FLAG_PAD_MASK 0xF0/* RSA mode to use */ -# define EVP_MD_CTX_FLAG_PAD_PKCS1 0x00/* PKCS#1 v1.5 mode */ -# define EVP_MD_CTX_FLAG_PAD_X931 0x10/* X9.31 mode */ -# define EVP_MD_CTX_FLAG_PAD_PSS 0x20/* PSS mode */ - -# define EVP_MD_CTX_FLAG_NO_INIT 0x0100/* Don't initialize md_data */ -/* - * Some functions such as EVP_DigestSign only finalise copies of internal - * contexts so additional data can be included after the finalisation call. - * This is inefficient if this functionality is not required: it is disabled - * if the following flag is set. - */ -# define EVP_MD_CTX_FLAG_FINALISE 0x0200 -/* NOTE: 0x0400 and 0x0800 are reserved for internal usage */ - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -EVP_CIPHER *EVP_CIPHER_meth_new(int cipher_type, int block_size, int key_len); -OSSL_DEPRECATEDIN_3_0 -EVP_CIPHER *EVP_CIPHER_meth_dup(const EVP_CIPHER *cipher); -OSSL_DEPRECATEDIN_3_0 -void EVP_CIPHER_meth_free(EVP_CIPHER *cipher); -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_meth_set_iv_length(EVP_CIPHER *cipher, int iv_len); -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_meth_set_flags(EVP_CIPHER *cipher, unsigned long flags); -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_meth_set_impl_ctx_size(EVP_CIPHER *cipher, int ctx_size); -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_meth_set_init(EVP_CIPHER *cipher, - int (*init) (EVP_CIPHER_CTX *ctx, - const unsigned char *key, - const unsigned char *iv, - int enc)); -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_meth_set_do_cipher(EVP_CIPHER *cipher, - int (*do_cipher) (EVP_CIPHER_CTX *ctx, - unsigned char *out, - const unsigned char *in, - size_t inl)); -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_meth_set_cleanup(EVP_CIPHER *cipher, - int (*cleanup) (EVP_CIPHER_CTX *)); -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_meth_set_set_asn1_params(EVP_CIPHER *cipher, - int (*set_asn1_parameters) (EVP_CIPHER_CTX *, - ASN1_TYPE *)); -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_meth_set_get_asn1_params(EVP_CIPHER *cipher, - int (*get_asn1_parameters) (EVP_CIPHER_CTX *, - ASN1_TYPE *)); -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_meth_set_ctrl(EVP_CIPHER *cipher, - int (*ctrl) (EVP_CIPHER_CTX *, int type, - int arg, void *ptr)); -OSSL_DEPRECATEDIN_3_0 int -(*EVP_CIPHER_meth_get_init(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx, - const unsigned char *key, - const unsigned char *iv, - int enc); -OSSL_DEPRECATEDIN_3_0 int -(*EVP_CIPHER_meth_get_do_cipher(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx, - unsigned char *out, - const unsigned char *in, - size_t inl); -OSSL_DEPRECATEDIN_3_0 int -(*EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *); -OSSL_DEPRECATEDIN_3_0 int -(*EVP_CIPHER_meth_get_set_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, - ASN1_TYPE *); -OSSL_DEPRECATEDIN_3_0 int -(*EVP_CIPHER_meth_get_get_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, - ASN1_TYPE *); -OSSL_DEPRECATEDIN_3_0 int -(*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, int type, - int arg, void *ptr); -# endif - -/* Values for cipher flags */ - -/* Modes for ciphers */ - -# define EVP_CIPH_STREAM_CIPHER 0x0 -# define EVP_CIPH_ECB_MODE 0x1 -# define EVP_CIPH_CBC_MODE 0x2 -# define EVP_CIPH_CFB_MODE 0x3 -# define EVP_CIPH_OFB_MODE 0x4 -# define EVP_CIPH_CTR_MODE 0x5 -# define EVP_CIPH_GCM_MODE 0x6 -# define EVP_CIPH_CCM_MODE 0x7 -# define EVP_CIPH_XTS_MODE 0x10001 -# define EVP_CIPH_WRAP_MODE 0x10002 -# define EVP_CIPH_OCB_MODE 0x10003 -# define EVP_CIPH_SIV_MODE 0x10004 -# define EVP_CIPH_GCM_SIV_MODE 0x10005 -# define EVP_CIPH_MODE 0xF0007 -/* Set if variable length cipher */ -# define EVP_CIPH_VARIABLE_LENGTH 0x8 -/* Set if the iv handling should be done by the cipher itself */ -# define EVP_CIPH_CUSTOM_IV 0x10 -/* Set if the cipher's init() function should be called if key is NULL */ -# define EVP_CIPH_ALWAYS_CALL_INIT 0x20 -/* Call ctrl() to init cipher parameters */ -# define EVP_CIPH_CTRL_INIT 0x40 -/* Don't use standard key length function */ -# define EVP_CIPH_CUSTOM_KEY_LENGTH 0x80 -/* Don't use standard block padding */ -# define EVP_CIPH_NO_PADDING 0x100 -/* cipher handles random key generation */ -# define EVP_CIPH_RAND_KEY 0x200 -/* cipher has its own additional copying logic */ -# define EVP_CIPH_CUSTOM_COPY 0x400 -/* Don't use standard iv length function */ -# define EVP_CIPH_CUSTOM_IV_LENGTH 0x800 -/* Legacy and no longer relevant: Allow use default ASN1 get/set iv */ -# define EVP_CIPH_FLAG_DEFAULT_ASN1 0 -/* Free: 0x1000 */ -/* Buffer length in bits not bytes: CFB1 mode only */ -# define EVP_CIPH_FLAG_LENGTH_BITS 0x2000 -/* Deprecated FIPS flag: was 0x4000 */ -# define EVP_CIPH_FLAG_FIPS 0 -/* Deprecated FIPS flag: was 0x8000 */ -# define EVP_CIPH_FLAG_NON_FIPS_ALLOW 0 - -/* - * Cipher handles any and all padding logic as well as finalisation. - */ -# define EVP_CIPH_FLAG_CTS 0x4000 -# define EVP_CIPH_FLAG_CUSTOM_CIPHER 0x100000 -# define EVP_CIPH_FLAG_AEAD_CIPHER 0x200000 -# define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0x400000 -/* Cipher can handle pipeline operations */ -# define EVP_CIPH_FLAG_PIPELINE 0X800000 -/* For provider implementations that handle ASN1 get/set param themselves */ -# define EVP_CIPH_FLAG_CUSTOM_ASN1 0x1000000 -/* For ciphers generating unprotected CMS attributes */ -# define EVP_CIPH_FLAG_CIPHER_WITH_MAC 0x2000000 -/* For supplementary wrap cipher support */ -# define EVP_CIPH_FLAG_GET_WRAP_CIPHER 0x4000000 -# define EVP_CIPH_FLAG_INVERSE_CIPHER 0x8000000 -# define EVP_CIPH_FLAG_ENC_THEN_MAC 0x10000000 - -/* - * Cipher context flag to indicate we can handle wrap mode: if allowed in - * older applications it could overflow buffers. - */ - -# define EVP_CIPHER_CTX_FLAG_WRAP_ALLOW 0x1 - -/* ctrl() values */ - -# define EVP_CTRL_INIT 0x0 -# define EVP_CTRL_SET_KEY_LENGTH 0x1 -# define EVP_CTRL_GET_RC2_KEY_BITS 0x2 -# define EVP_CTRL_SET_RC2_KEY_BITS 0x3 -# define EVP_CTRL_GET_RC5_ROUNDS 0x4 -# define EVP_CTRL_SET_RC5_ROUNDS 0x5 -# define EVP_CTRL_RAND_KEY 0x6 -# define EVP_CTRL_PBE_PRF_NID 0x7 -# define EVP_CTRL_COPY 0x8 -# define EVP_CTRL_AEAD_SET_IVLEN 0x9 -# define EVP_CTRL_AEAD_GET_TAG 0x10 -# define EVP_CTRL_AEAD_SET_TAG 0x11 -# define EVP_CTRL_AEAD_SET_IV_FIXED 0x12 -# define EVP_CTRL_GCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN -# define EVP_CTRL_GCM_GET_TAG EVP_CTRL_AEAD_GET_TAG -# define EVP_CTRL_GCM_SET_TAG EVP_CTRL_AEAD_SET_TAG -# define EVP_CTRL_GCM_SET_IV_FIXED EVP_CTRL_AEAD_SET_IV_FIXED -# define EVP_CTRL_GCM_IV_GEN 0x13 -# define EVP_CTRL_CCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN -# define EVP_CTRL_CCM_GET_TAG EVP_CTRL_AEAD_GET_TAG -# define EVP_CTRL_CCM_SET_TAG EVP_CTRL_AEAD_SET_TAG -# define EVP_CTRL_CCM_SET_IV_FIXED EVP_CTRL_AEAD_SET_IV_FIXED -# define EVP_CTRL_CCM_SET_L 0x14 -# define EVP_CTRL_CCM_SET_MSGLEN 0x15 -/* - * AEAD cipher deduces payload length and returns number of bytes required to - * store MAC and eventual padding. Subsequent call to EVP_Cipher even - * appends/verifies MAC. - */ -# define EVP_CTRL_AEAD_TLS1_AAD 0x16 -/* Used by composite AEAD ciphers, no-op in GCM, CCM... */ -# define EVP_CTRL_AEAD_SET_MAC_KEY 0x17 -/* Set the GCM invocation field, decrypt only */ -# define EVP_CTRL_GCM_SET_IV_INV 0x18 - -# define EVP_CTRL_TLS1_1_MULTIBLOCK_AAD 0x19 -# define EVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPT 0x1a -# define EVP_CTRL_TLS1_1_MULTIBLOCK_DECRYPT 0x1b -# define EVP_CTRL_TLS1_1_MULTIBLOCK_MAX_BUFSIZE 0x1c - -# define EVP_CTRL_SSL3_MASTER_SECRET 0x1d - -/* EVP_CTRL_SET_SBOX takes the char * specifying S-boxes */ -# define EVP_CTRL_SET_SBOX 0x1e -/* - * EVP_CTRL_SBOX_USED takes a 'size_t' and 'char *', pointing at a - * pre-allocated buffer with specified size - */ -# define EVP_CTRL_SBOX_USED 0x1f -/* EVP_CTRL_KEY_MESH takes 'size_t' number of bytes to mesh the key after, - * 0 switches meshing off - */ -# define EVP_CTRL_KEY_MESH 0x20 -/* EVP_CTRL_BLOCK_PADDING_MODE takes the padding mode */ -# define EVP_CTRL_BLOCK_PADDING_MODE 0x21 - -/* Set the output buffers to use for a pipelined operation */ -# define EVP_CTRL_SET_PIPELINE_OUTPUT_BUFS 0x22 -/* Set the input buffers to use for a pipelined operation */ -# define EVP_CTRL_SET_PIPELINE_INPUT_BUFS 0x23 -/* Set the input buffer lengths to use for a pipelined operation */ -# define EVP_CTRL_SET_PIPELINE_INPUT_LENS 0x24 -/* Get the IV length used by the cipher */ -# define EVP_CTRL_GET_IVLEN 0x25 -/* 0x26 is unused */ -/* Tell the cipher it's doing a speed test (SIV disallows multiple ops) */ -# define EVP_CTRL_SET_SPEED 0x27 -/* Get the unprotectedAttrs from cipher ctx */ -# define EVP_CTRL_PROCESS_UNPROTECTED 0x28 -/* Get the supplementary wrap cipher */ -#define EVP_CTRL_GET_WRAP_CIPHER 0x29 -/* TLSTREE key diversification */ -#define EVP_CTRL_TLSTREE 0x2A - -/* Padding modes */ -#define EVP_PADDING_PKCS7 1 -#define EVP_PADDING_ISO7816_4 2 -#define EVP_PADDING_ANSI923 3 -#define EVP_PADDING_ISO10126 4 -#define EVP_PADDING_ZERO 5 - -/* RFC 5246 defines additional data to be 13 bytes in length */ -# define EVP_AEAD_TLS1_AAD_LEN 13 - -typedef struct { - unsigned char *out; - const unsigned char *inp; - size_t len; - unsigned int interleave; -} EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM; - -/* GCM TLS constants */ -/* Length of fixed part of IV derived from PRF */ -# define EVP_GCM_TLS_FIXED_IV_LEN 4 -/* Length of explicit part of IV part of TLS records */ -# define EVP_GCM_TLS_EXPLICIT_IV_LEN 8 -/* Length of tag for TLS */ -# define EVP_GCM_TLS_TAG_LEN 16 - -/* CCM TLS constants */ -/* Length of fixed part of IV derived from PRF */ -# define EVP_CCM_TLS_FIXED_IV_LEN 4 -/* Length of explicit part of IV part of TLS records */ -# define EVP_CCM_TLS_EXPLICIT_IV_LEN 8 -/* Total length of CCM IV length for TLS */ -# define EVP_CCM_TLS_IV_LEN 12 -/* Length of tag for TLS */ -# define EVP_CCM_TLS_TAG_LEN 16 -/* Length of CCM8 tag for TLS */ -# define EVP_CCM8_TLS_TAG_LEN 8 - -/* Length of tag for TLS */ -# define EVP_CHACHAPOLY_TLS_TAG_LEN 16 - -typedef struct evp_cipher_info_st { - const EVP_CIPHER *cipher; - unsigned char iv[EVP_MAX_IV_LENGTH]; -} EVP_CIPHER_INFO; - - -/* Password based encryption function */ -typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass, - int passlen, ASN1_TYPE *param, - const EVP_CIPHER *cipher, const EVP_MD *md, - int en_de); - -typedef int (EVP_PBE_KEYGEN_EX) (EVP_CIPHER_CTX *ctx, const char *pass, - int passlen, ASN1_TYPE *param, - const EVP_CIPHER *cipher, const EVP_MD *md, - int en_de, OSSL_LIB_CTX *libctx, const char *propq); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define EVP_PKEY_assign_RSA(pkey, rsa) EVP_PKEY_assign((pkey), EVP_PKEY_RSA, \ - (rsa)) -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_6 -# ifndef OPENSSL_NO_DSA -# define EVP_PKEY_assign_DSA(pkey, dsa) EVP_PKEY_assign((pkey), EVP_PKEY_DSA, \ - (dsa)) -# endif -# endif - -# if !defined(OPENSSL_NO_DH) && !defined(OPENSSL_NO_DEPRECATED_3_0) -# define EVP_PKEY_assign_DH(pkey, dh) EVP_PKEY_assign((pkey), EVP_PKEY_DH, (dh)) -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_EC -# define EVP_PKEY_assign_EC_KEY(pkey, eckey) EVP_PKEY_assign((pkey), \ - EVP_PKEY_EC, \ - (eckey)) -# endif -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_6 -# ifndef OPENSSL_NO_SIPHASH -# define EVP_PKEY_assign_SIPHASH(pkey, shkey) EVP_PKEY_assign((pkey), \ - EVP_PKEY_SIPHASH, \ - (shkey)) -# endif - -# ifndef OPENSSL_NO_POLY1305 -# define EVP_PKEY_assign_POLY1305(pkey, polykey) EVP_PKEY_assign((pkey), \ - EVP_PKEY_POLY1305, \ - (polykey)) -# endif -# endif - -/* Add some extra combinations */ -# define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a)) -# define EVP_get_digestbyobj(a) EVP_get_digestbynid(OBJ_obj2nid(a)) -# define EVP_get_cipherbynid(a) EVP_get_cipherbyname(OBJ_nid2sn(a)) -# define EVP_get_cipherbyobj(a) EVP_get_cipherbynid(OBJ_obj2nid(a)) - -int EVP_MD_get_type(const EVP_MD *md); -# define EVP_MD_type EVP_MD_get_type -# define EVP_MD_nid EVP_MD_get_type -const char *EVP_MD_get0_name(const EVP_MD *md); -# define EVP_MD_name EVP_MD_get0_name -const char *EVP_MD_get0_description(const EVP_MD *md); -int EVP_MD_is_a(const EVP_MD *md, const char *name); -int EVP_MD_names_do_all(const EVP_MD *md, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PROVIDER *EVP_MD_get0_provider(const EVP_MD *md); -int EVP_MD_get_pkey_type(const EVP_MD *md); -# define EVP_MD_pkey_type EVP_MD_get_pkey_type -int EVP_MD_get_size(const EVP_MD *md); -# define EVP_MD_size EVP_MD_get_size -int EVP_MD_get_block_size(const EVP_MD *md); -# define EVP_MD_block_size EVP_MD_get_block_size -unsigned long EVP_MD_get_flags(const EVP_MD *md); -# define EVP_MD_flags EVP_MD_get_flags -int EVP_MD_xof(const EVP_MD *md); - -const EVP_MD *EVP_MD_CTX_get0_md(const EVP_MD_CTX *ctx); -EVP_MD *EVP_MD_CTX_get1_md(EVP_MD_CTX *ctx); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 -int (*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx, - const void *data, size_t count); -OSSL_DEPRECATEDIN_3_0 -void EVP_MD_CTX_set_update_fn(EVP_MD_CTX *ctx, - int (*update) (EVP_MD_CTX *ctx, - const void *data, size_t count)); -# endif -int EVP_MD_CTX_get_size_ex(const EVP_MD_CTX *ctx); - -# define EVP_MD_CTX_get0_name(e) EVP_MD_get0_name(EVP_MD_CTX_get0_md(e)) -# define EVP_MD_CTX_get_size(e) EVP_MD_CTX_get_size_ex(e) -# define EVP_MD_CTX_size EVP_MD_CTX_get_size_ex -# define EVP_MD_CTX_get_block_size(e) EVP_MD_get_block_size(EVP_MD_CTX_get0_md(e)) -# define EVP_MD_CTX_block_size EVP_MD_CTX_get_block_size -# define EVP_MD_CTX_get_type(e) EVP_MD_get_type(EVP_MD_CTX_get0_md(e)) -# define EVP_MD_CTX_type EVP_MD_CTX_get_type -EVP_PKEY_CTX *EVP_MD_CTX_get_pkey_ctx(const EVP_MD_CTX *ctx); -# define EVP_MD_CTX_pkey_ctx EVP_MD_CTX_get_pkey_ctx -void EVP_MD_CTX_set_pkey_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pctx); -void *EVP_MD_CTX_get0_md_data(const EVP_MD_CTX *ctx); -# define EVP_MD_CTX_md_data EVP_MD_CTX_get0_md_data - -int EVP_CIPHER_get_nid(const EVP_CIPHER *cipher); -# define EVP_CIPHER_nid EVP_CIPHER_get_nid -const char *EVP_CIPHER_get0_name(const EVP_CIPHER *cipher); -# define EVP_CIPHER_name EVP_CIPHER_get0_name -const char *EVP_CIPHER_get0_description(const EVP_CIPHER *cipher); -int EVP_CIPHER_is_a(const EVP_CIPHER *cipher, const char *name); -int EVP_CIPHER_names_do_all(const EVP_CIPHER *cipher, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PROVIDER *EVP_CIPHER_get0_provider(const EVP_CIPHER *cipher); -int EVP_CIPHER_get_block_size(const EVP_CIPHER *cipher); -# define EVP_CIPHER_block_size EVP_CIPHER_get_block_size -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_impl_ctx_size(const EVP_CIPHER *cipher); -# endif -int EVP_CIPHER_get_key_length(const EVP_CIPHER *cipher); -# define EVP_CIPHER_key_length EVP_CIPHER_get_key_length -int EVP_CIPHER_get_iv_length(const EVP_CIPHER *cipher); -# define EVP_CIPHER_iv_length EVP_CIPHER_get_iv_length -unsigned long EVP_CIPHER_get_flags(const EVP_CIPHER *cipher); -# define EVP_CIPHER_flags EVP_CIPHER_get_flags -int EVP_CIPHER_get_mode(const EVP_CIPHER *cipher); -# define EVP_CIPHER_mode EVP_CIPHER_get_mode -int EVP_CIPHER_get_type(const EVP_CIPHER *cipher); -# define EVP_CIPHER_type EVP_CIPHER_get_type -EVP_CIPHER *EVP_CIPHER_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, - const char *properties); -int EVP_CIPHER_can_pipeline(const EVP_CIPHER *cipher, int enc); -int EVP_CIPHER_up_ref(EVP_CIPHER *cipher); -void EVP_CIPHER_free(EVP_CIPHER *cipher); - -const EVP_CIPHER *EVP_CIPHER_CTX_get0_cipher(const EVP_CIPHER_CTX *ctx); -EVP_CIPHER *EVP_CIPHER_CTX_get1_cipher(EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_is_encrypting(const EVP_CIPHER_CTX *ctx); -# define EVP_CIPHER_CTX_encrypting EVP_CIPHER_CTX_is_encrypting -int EVP_CIPHER_CTX_get_nid(const EVP_CIPHER_CTX *ctx); -# define EVP_CIPHER_CTX_nid EVP_CIPHER_CTX_get_nid -int EVP_CIPHER_CTX_get_block_size(const EVP_CIPHER_CTX *ctx); -# define EVP_CIPHER_CTX_block_size EVP_CIPHER_CTX_get_block_size -int EVP_CIPHER_CTX_get_key_length(const EVP_CIPHER_CTX *ctx); -# define EVP_CIPHER_CTX_key_length EVP_CIPHER_CTX_get_key_length -int EVP_CIPHER_CTX_get_iv_length(const EVP_CIPHER_CTX *ctx); -# define EVP_CIPHER_CTX_iv_length EVP_CIPHER_CTX_get_iv_length -int EVP_CIPHER_CTX_get_tag_length(const EVP_CIPHER_CTX *ctx); -# define EVP_CIPHER_CTX_tag_length EVP_CIPHER_CTX_get_tag_length -# ifndef OPENSSL_NO_DEPRECATED_3_0 -const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 const unsigned char *EVP_CIPHER_CTX_iv(const EVP_CIPHER_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 const unsigned char *EVP_CIPHER_CTX_original_iv(const EVP_CIPHER_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 unsigned char *EVP_CIPHER_CTX_iv_noconst(EVP_CIPHER_CTX *ctx); -# endif -int EVP_CIPHER_CTX_get_updated_iv(EVP_CIPHER_CTX *ctx, void *buf, size_t len); -int EVP_CIPHER_CTX_get_original_iv(EVP_CIPHER_CTX *ctx, void *buf, size_t len); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -unsigned char *EVP_CIPHER_CTX_buf_noconst(EVP_CIPHER_CTX *ctx); -# endif -int EVP_CIPHER_CTX_get_num(const EVP_CIPHER_CTX *ctx); -# define EVP_CIPHER_CTX_num EVP_CIPHER_CTX_get_num -int EVP_CIPHER_CTX_set_num(EVP_CIPHER_CTX *ctx, int num); -EVP_CIPHER_CTX *EVP_CIPHER_CTX_dup(const EVP_CIPHER_CTX *in); -int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in); -void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx); -void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data); -void *EVP_CIPHER_CTX_get_cipher_data(const EVP_CIPHER_CTX *ctx); -void *EVP_CIPHER_CTX_set_cipher_data(EVP_CIPHER_CTX *ctx, void *cipher_data); -# define EVP_CIPHER_CTX_get0_name(c) EVP_CIPHER_get0_name(EVP_CIPHER_CTX_get0_cipher(c)) -# define EVP_CIPHER_CTX_get_type(c) EVP_CIPHER_get_type(EVP_CIPHER_CTX_get0_cipher(c)) -# define EVP_CIPHER_CTX_type EVP_CIPHER_CTX_get_type -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define EVP_CIPHER_CTX_flags(c) EVP_CIPHER_get_flags(EVP_CIPHER_CTX_get0_cipher(c)) -# endif -# define EVP_CIPHER_CTX_get_mode(c) EVP_CIPHER_get_mode(EVP_CIPHER_CTX_get0_cipher(c)) -# define EVP_CIPHER_CTX_mode EVP_CIPHER_CTX_get_mode - -# define EVP_ENCODE_LENGTH(l) ((((l)+2)/3*4)+((l)/48+1)*2+80) -# define EVP_DECODE_LENGTH(l) (((l)+3)/4*3+80) - -# define EVP_SignInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) -# define EVP_SignInit(a,b) EVP_DigestInit(a,b) -# define EVP_SignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -# define EVP_VerifyInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) -# define EVP_VerifyInit(a,b) EVP_DigestInit(a,b) -# define EVP_VerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -# define EVP_OpenUpdate(a,b,c,d,e) EVP_DecryptUpdate(a,b,c,d,e) -# define EVP_SealUpdate(a,b,c,d,e) EVP_EncryptUpdate(a,b,c,d,e) - -# ifdef CONST_STRICT -void BIO_set_md(BIO *, const EVP_MD *md); -# else -# define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,0,(void *)(md)) -# endif -# define BIO_get_md(b,mdp) BIO_ctrl(b,BIO_C_GET_MD,0,(mdp)) -# define BIO_get_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_GET_MD_CTX,0,(mdcp)) -# define BIO_set_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_SET_MD_CTX,0,(mdcp)) -# define BIO_get_cipher_status(b) BIO_ctrl(b,BIO_C_GET_CIPHER_STATUS,0,NULL) -# define BIO_get_cipher_ctx(b,c_pp) BIO_ctrl(b,BIO_C_GET_CIPHER_CTX,0,(c_pp)) - -__owur int EVP_Cipher(EVP_CIPHER_CTX *c, - unsigned char *out, - const unsigned char *in, unsigned int inl); - -# define EVP_add_cipher_alias(n,alias) \ - OBJ_NAME_add((alias),OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS,(n)) -# define EVP_add_digest_alias(n,alias) \ - OBJ_NAME_add((alias),OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS,(n)) -# define EVP_delete_cipher_alias(alias) \ - OBJ_NAME_remove(alias,OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS); -# define EVP_delete_digest_alias(alias) \ - OBJ_NAME_remove(alias,OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS); - -int EVP_MD_get_params(const EVP_MD *digest, OSSL_PARAM params[]); -int EVP_MD_CTX_set_params(EVP_MD_CTX *ctx, const OSSL_PARAM params[]); -int EVP_MD_CTX_get_params(EVP_MD_CTX *ctx, OSSL_PARAM params[]); -const OSSL_PARAM *EVP_MD_gettable_params(const EVP_MD *digest); -const OSSL_PARAM *EVP_MD_settable_ctx_params(const EVP_MD *md); -const OSSL_PARAM *EVP_MD_gettable_ctx_params(const EVP_MD *md); -const OSSL_PARAM *EVP_MD_CTX_settable_params(EVP_MD_CTX *ctx); -const OSSL_PARAM *EVP_MD_CTX_gettable_params(EVP_MD_CTX *ctx); -int EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void *p2); -EVP_MD_CTX *EVP_MD_CTX_new(void); -int EVP_MD_CTX_reset(EVP_MD_CTX *ctx); -void EVP_MD_CTX_free(EVP_MD_CTX *ctx); -# define EVP_MD_CTX_create() EVP_MD_CTX_new() -# define EVP_MD_CTX_init(ctx) EVP_MD_CTX_reset((ctx)) -# define EVP_MD_CTX_destroy(ctx) EVP_MD_CTX_free((ctx)) -__owur EVP_MD_CTX *EVP_MD_CTX_dup(const EVP_MD_CTX *in); -__owur int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in); -void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags); -void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags); -int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags); -__owur int EVP_DigestInit_ex2(EVP_MD_CTX *ctx, const EVP_MD *type, - const OSSL_PARAM params[]); -__owur int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, - ENGINE *impl); -__owur int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, - size_t cnt); -__owur int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, - unsigned int *s); -__owur int EVP_Digest(const void *data, size_t count, - unsigned char *md, unsigned int *size, - const EVP_MD *type, ENGINE *impl); -__owur int EVP_Q_digest(OSSL_LIB_CTX *libctx, const char *name, - const char *propq, const void *data, size_t datalen, - unsigned char *md, size_t *mdlen); - -__owur int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in); -__owur int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); -__owur int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, - unsigned int *s); -__owur int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *out, - size_t outlen); -__owur int EVP_DigestSqueeze(EVP_MD_CTX *ctx, unsigned char *out, - size_t outlen); - -__owur EVP_MD *EVP_MD_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, - const char *properties); - -int EVP_MD_up_ref(EVP_MD *md); -void EVP_MD_free(EVP_MD *md); - -int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); -int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, - const char *prompt, int verify); -void EVP_set_pw_prompt(const char *prompt); -char *EVP_get_pw_prompt(void); - -__owur int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, - const unsigned char *salt, - const unsigned char *data, int datal, int count, - unsigned char *key, unsigned char *iv); - -void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags); -void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags); -int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags); - -__owur int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv); -__owur int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, ENGINE *impl, - const unsigned char *key, - const unsigned char *iv); -__owur int EVP_EncryptInit_ex2(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, - const unsigned char *iv, - const OSSL_PARAM params[]); -__owur int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl, const unsigned char *in, int inl); -__owur int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl); -__owur int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl); - -__owur int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv); -__owur int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, ENGINE *impl, - const unsigned char *key, - const unsigned char *iv); -__owur int EVP_DecryptInit_ex2(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, - const unsigned char *iv, - const OSSL_PARAM params[]); -__owur int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl, const unsigned char *in, int inl); -__owur int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); -__owur int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); - -__owur int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv, - int enc); -__owur int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, ENGINE *impl, - const unsigned char *key, - const unsigned char *iv, int enc); -__owur int EVP_CipherInit_SKEY(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - EVP_SKEY *skey, const unsigned char *iv, size_t iv_len, - int enc, const OSSL_PARAM params[]); -__owur int EVP_CipherInit_ex2(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv, - int enc, const OSSL_PARAM params[]); -__owur int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl, const unsigned char *in, int inl); -__owur int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); -__owur int EVP_CipherPipelineEncryptInit(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, - const unsigned char *key, size_t keylen, - size_t numpipes, - const unsigned char **iv, size_t ivlen); -__owur int EVP_CipherPipelineDecryptInit(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, - const unsigned char *key, size_t keylen, - size_t numpipes, - const unsigned char **iv, size_t ivlen); -__owur int EVP_CipherPipelineUpdate(EVP_CIPHER_CTX *ctx, - unsigned char **out, size_t *outl, - const size_t *outsize, - const unsigned char **in, const size_t *inl); -__owur int EVP_CipherPipelineFinal(EVP_CIPHER_CTX *ctx, - unsigned char **outm, size_t *outl, - const size_t *outsize); -__owur int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); - -__owur int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, - EVP_PKEY *pkey); -__owur int EVP_SignFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, - EVP_PKEY *pkey, OSSL_LIB_CTX *libctx, - const char *propq); - -__owur int EVP_DigestSign(EVP_MD_CTX *ctx, unsigned char *sigret, - size_t *siglen, const unsigned char *tbs, - size_t tbslen); - -__owur int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, - unsigned int siglen, EVP_PKEY *pkey); -__owur int EVP_VerifyFinal_ex(EVP_MD_CTX *ctx, const unsigned char *sigbuf, - unsigned int siglen, EVP_PKEY *pkey, - OSSL_LIB_CTX *libctx, const char *propq); - -__owur int EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret, - size_t siglen, const unsigned char *tbs, - size_t tbslen); - -__owur int EVP_DigestSignInit_ex(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, - const char *mdname, OSSL_LIB_CTX *libctx, - const char *props, EVP_PKEY *pkey, - const OSSL_PARAM params[]); -__owur int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, - const EVP_MD *type, ENGINE *e, - EVP_PKEY *pkey); -__owur int EVP_DigestSignUpdate(EVP_MD_CTX *ctx, const void *data, size_t dsize); -__owur int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, - size_t *siglen); - -__owur int EVP_DigestVerifyInit_ex(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, - const char *mdname, OSSL_LIB_CTX *libctx, - const char *props, EVP_PKEY *pkey, - const OSSL_PARAM params[]); -__owur int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, - const EVP_MD *type, ENGINE *e, - EVP_PKEY *pkey); -int EVP_DigestVerifyUpdate(EVP_MD_CTX *ctx, const void *data, size_t dsize); -__owur int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, - size_t siglen); - -__owur int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, - const unsigned char *ek, int ekl, - const unsigned char *iv, EVP_PKEY *priv); -__owur int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); - -__owur int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, - unsigned char **ek, int *ekl, unsigned char *iv, - EVP_PKEY **pubk, int npubk); -__owur int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); - -EVP_ENCODE_CTX *EVP_ENCODE_CTX_new(void); -void EVP_ENCODE_CTX_free(EVP_ENCODE_CTX *ctx); -int EVP_ENCODE_CTX_copy(EVP_ENCODE_CTX *dctx, const EVP_ENCODE_CTX *sctx); -int EVP_ENCODE_CTX_num(EVP_ENCODE_CTX *ctx); -void EVP_EncodeInit(EVP_ENCODE_CTX *ctx); -int EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); -void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl); -int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n); - -void EVP_DecodeInit(EVP_ENCODE_CTX *ctx); -int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); -int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned - char *out, int *outl); -int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define EVP_CIPHER_CTX_init(c) EVP_CIPHER_CTX_reset(c) -# define EVP_CIPHER_CTX_cleanup(c) EVP_CIPHER_CTX_reset(c) -# endif -EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); -int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c); -void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *c); -int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen); -int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad); -int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); -int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key); -int EVP_CIPHER_get_params(EVP_CIPHER *cipher, OSSL_PARAM params[]); -int EVP_CIPHER_CTX_set_params(EVP_CIPHER_CTX *ctx, const OSSL_PARAM params[]); -int EVP_CIPHER_CTX_get_params(EVP_CIPHER_CTX *ctx, OSSL_PARAM params[]); -const OSSL_PARAM *EVP_CIPHER_gettable_params(const EVP_CIPHER *cipher); -const OSSL_PARAM *EVP_CIPHER_settable_ctx_params(const EVP_CIPHER *cipher); -const OSSL_PARAM *EVP_CIPHER_gettable_ctx_params(const EVP_CIPHER *cipher); -const OSSL_PARAM *EVP_CIPHER_CTX_settable_params(EVP_CIPHER_CTX *ctx); -const OSSL_PARAM *EVP_CIPHER_CTX_gettable_params(EVP_CIPHER_CTX *ctx); - -int EVP_CIPHER_CTX_set_algor_params(EVP_CIPHER_CTX *ctx, const X509_ALGOR *alg); -int EVP_CIPHER_CTX_get_algor_params(EVP_CIPHER_CTX *ctx, X509_ALGOR *alg); -int EVP_CIPHER_CTX_get_algor(EVP_CIPHER_CTX *ctx, X509_ALGOR **alg); - -const BIO_METHOD *BIO_f_md(void); -const BIO_METHOD *BIO_f_base64(void); -const BIO_METHOD *BIO_f_cipher(void); -const BIO_METHOD *BIO_f_reliable(void); -__owur int BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k, - const unsigned char *i, int enc); - -const EVP_MD *EVP_md_null(void); -# ifndef OPENSSL_NO_MD2 -const EVP_MD *EVP_md2(void); -# endif -# ifndef OPENSSL_NO_MD4 -const EVP_MD *EVP_md4(void); -# endif -# ifndef OPENSSL_NO_MD5 -const EVP_MD *EVP_md5(void); -const EVP_MD *EVP_md5_sha1(void); -# endif -# ifndef OPENSSL_NO_BLAKE2 -const EVP_MD *EVP_blake2b512(void); -const EVP_MD *EVP_blake2s256(void); -# endif -const EVP_MD *EVP_sha1(void); -const EVP_MD *EVP_sha224(void); -const EVP_MD *EVP_sha256(void); -const EVP_MD *EVP_sha384(void); -const EVP_MD *EVP_sha512(void); -const EVP_MD *EVP_sha512_224(void); -const EVP_MD *EVP_sha512_256(void); -const EVP_MD *EVP_sha3_224(void); -const EVP_MD *EVP_sha3_256(void); -const EVP_MD *EVP_sha3_384(void); -const EVP_MD *EVP_sha3_512(void); -const EVP_MD *EVP_shake128(void); -const EVP_MD *EVP_shake256(void); - -# ifndef OPENSSL_NO_MDC2 -const EVP_MD *EVP_mdc2(void); -# endif -# ifndef OPENSSL_NO_RMD160 -const EVP_MD *EVP_ripemd160(void); -# endif -# ifndef OPENSSL_NO_WHIRLPOOL -const EVP_MD *EVP_whirlpool(void); -# endif -# ifndef OPENSSL_NO_SM3 -const EVP_MD *EVP_sm3(void); -# endif -const EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */ -# ifndef OPENSSL_NO_DES -const EVP_CIPHER *EVP_des_ecb(void); -const EVP_CIPHER *EVP_des_ede(void); -const EVP_CIPHER *EVP_des_ede3(void); -const EVP_CIPHER *EVP_des_ede_ecb(void); -const EVP_CIPHER *EVP_des_ede3_ecb(void); -const EVP_CIPHER *EVP_des_cfb64(void); -# define EVP_des_cfb EVP_des_cfb64 -const EVP_CIPHER *EVP_des_cfb1(void); -const EVP_CIPHER *EVP_des_cfb8(void); -const EVP_CIPHER *EVP_des_ede_cfb64(void); -# define EVP_des_ede_cfb EVP_des_ede_cfb64 -const EVP_CIPHER *EVP_des_ede3_cfb64(void); -# define EVP_des_ede3_cfb EVP_des_ede3_cfb64 -const EVP_CIPHER *EVP_des_ede3_cfb1(void); -const EVP_CIPHER *EVP_des_ede3_cfb8(void); -const EVP_CIPHER *EVP_des_ofb(void); -const EVP_CIPHER *EVP_des_ede_ofb(void); -const EVP_CIPHER *EVP_des_ede3_ofb(void); -const EVP_CIPHER *EVP_des_cbc(void); -const EVP_CIPHER *EVP_des_ede_cbc(void); -const EVP_CIPHER *EVP_des_ede3_cbc(void); -const EVP_CIPHER *EVP_desx_cbc(void); -const EVP_CIPHER *EVP_des_ede3_wrap(void); -/* - * This should now be supported through the dev_crypto ENGINE. But also, why - * are rc4 and md5 declarations made here inside a "NO_DES" precompiler - * branch? - */ -# endif -# ifndef OPENSSL_NO_RC4 -const EVP_CIPHER *EVP_rc4(void); -const EVP_CIPHER *EVP_rc4_40(void); -# ifndef OPENSSL_NO_MD5 -const EVP_CIPHER *EVP_rc4_hmac_md5(void); -# endif -# endif -# ifndef OPENSSL_NO_IDEA -const EVP_CIPHER *EVP_idea_ecb(void); -const EVP_CIPHER *EVP_idea_cfb64(void); -# define EVP_idea_cfb EVP_idea_cfb64 -const EVP_CIPHER *EVP_idea_ofb(void); -const EVP_CIPHER *EVP_idea_cbc(void); -# endif -# ifndef OPENSSL_NO_RC2 -const EVP_CIPHER *EVP_rc2_ecb(void); -const EVP_CIPHER *EVP_rc2_cbc(void); -const EVP_CIPHER *EVP_rc2_40_cbc(void); -const EVP_CIPHER *EVP_rc2_64_cbc(void); -const EVP_CIPHER *EVP_rc2_cfb64(void); -# define EVP_rc2_cfb EVP_rc2_cfb64 -const EVP_CIPHER *EVP_rc2_ofb(void); -# endif -# ifndef OPENSSL_NO_BF -const EVP_CIPHER *EVP_bf_ecb(void); -const EVP_CIPHER *EVP_bf_cbc(void); -const EVP_CIPHER *EVP_bf_cfb64(void); -# define EVP_bf_cfb EVP_bf_cfb64 -const EVP_CIPHER *EVP_bf_ofb(void); -# endif -# ifndef OPENSSL_NO_CAST -const EVP_CIPHER *EVP_cast5_ecb(void); -const EVP_CIPHER *EVP_cast5_cbc(void); -const EVP_CIPHER *EVP_cast5_cfb64(void); -# define EVP_cast5_cfb EVP_cast5_cfb64 -const EVP_CIPHER *EVP_cast5_ofb(void); -# endif -# ifndef OPENSSL_NO_RC5 -const EVP_CIPHER *EVP_rc5_32_12_16_cbc(void); -const EVP_CIPHER *EVP_rc5_32_12_16_ecb(void); -const EVP_CIPHER *EVP_rc5_32_12_16_cfb64(void); -# define EVP_rc5_32_12_16_cfb EVP_rc5_32_12_16_cfb64 -const EVP_CIPHER *EVP_rc5_32_12_16_ofb(void); -# endif -const EVP_CIPHER *EVP_aes_128_ecb(void); -const EVP_CIPHER *EVP_aes_128_cbc(void); -const EVP_CIPHER *EVP_aes_128_cfb1(void); -const EVP_CIPHER *EVP_aes_128_cfb8(void); -const EVP_CIPHER *EVP_aes_128_cfb128(void); -# define EVP_aes_128_cfb EVP_aes_128_cfb128 -const EVP_CIPHER *EVP_aes_128_ofb(void); -const EVP_CIPHER *EVP_aes_128_ctr(void); -const EVP_CIPHER *EVP_aes_128_ccm(void); -const EVP_CIPHER *EVP_aes_128_gcm(void); -const EVP_CIPHER *EVP_aes_128_xts(void); -const EVP_CIPHER *EVP_aes_128_wrap(void); -const EVP_CIPHER *EVP_aes_128_wrap_pad(void); -# ifndef OPENSSL_NO_OCB -const EVP_CIPHER *EVP_aes_128_ocb(void); -# endif -const EVP_CIPHER *EVP_aes_192_ecb(void); -const EVP_CIPHER *EVP_aes_192_cbc(void); -const EVP_CIPHER *EVP_aes_192_cfb1(void); -const EVP_CIPHER *EVP_aes_192_cfb8(void); -const EVP_CIPHER *EVP_aes_192_cfb128(void); -# define EVP_aes_192_cfb EVP_aes_192_cfb128 -const EVP_CIPHER *EVP_aes_192_ofb(void); -const EVP_CIPHER *EVP_aes_192_ctr(void); -const EVP_CIPHER *EVP_aes_192_ccm(void); -const EVP_CIPHER *EVP_aes_192_gcm(void); -const EVP_CIPHER *EVP_aes_192_wrap(void); -const EVP_CIPHER *EVP_aes_192_wrap_pad(void); -# ifndef OPENSSL_NO_OCB -const EVP_CIPHER *EVP_aes_192_ocb(void); -# endif -const EVP_CIPHER *EVP_aes_256_ecb(void); -const EVP_CIPHER *EVP_aes_256_cbc(void); -const EVP_CIPHER *EVP_aes_256_cfb1(void); -const EVP_CIPHER *EVP_aes_256_cfb8(void); -const EVP_CIPHER *EVP_aes_256_cfb128(void); -# define EVP_aes_256_cfb EVP_aes_256_cfb128 -const EVP_CIPHER *EVP_aes_256_ofb(void); -const EVP_CIPHER *EVP_aes_256_ctr(void); -const EVP_CIPHER *EVP_aes_256_ccm(void); -const EVP_CIPHER *EVP_aes_256_gcm(void); -const EVP_CIPHER *EVP_aes_256_xts(void); -const EVP_CIPHER *EVP_aes_256_wrap(void); -const EVP_CIPHER *EVP_aes_256_wrap_pad(void); -# ifndef OPENSSL_NO_OCB -const EVP_CIPHER *EVP_aes_256_ocb(void); -# endif -const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); -const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void); -const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void); -const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void); -# ifndef OPENSSL_NO_ARIA -const EVP_CIPHER *EVP_aria_128_ecb(void); -const EVP_CIPHER *EVP_aria_128_cbc(void); -const EVP_CIPHER *EVP_aria_128_cfb1(void); -const EVP_CIPHER *EVP_aria_128_cfb8(void); -const EVP_CIPHER *EVP_aria_128_cfb128(void); -# define EVP_aria_128_cfb EVP_aria_128_cfb128 -const EVP_CIPHER *EVP_aria_128_ctr(void); -const EVP_CIPHER *EVP_aria_128_ofb(void); -const EVP_CIPHER *EVP_aria_128_gcm(void); -const EVP_CIPHER *EVP_aria_128_ccm(void); -const EVP_CIPHER *EVP_aria_192_ecb(void); -const EVP_CIPHER *EVP_aria_192_cbc(void); -const EVP_CIPHER *EVP_aria_192_cfb1(void); -const EVP_CIPHER *EVP_aria_192_cfb8(void); -const EVP_CIPHER *EVP_aria_192_cfb128(void); -# define EVP_aria_192_cfb EVP_aria_192_cfb128 -const EVP_CIPHER *EVP_aria_192_ctr(void); -const EVP_CIPHER *EVP_aria_192_ofb(void); -const EVP_CIPHER *EVP_aria_192_gcm(void); -const EVP_CIPHER *EVP_aria_192_ccm(void); -const EVP_CIPHER *EVP_aria_256_ecb(void); -const EVP_CIPHER *EVP_aria_256_cbc(void); -const EVP_CIPHER *EVP_aria_256_cfb1(void); -const EVP_CIPHER *EVP_aria_256_cfb8(void); -const EVP_CIPHER *EVP_aria_256_cfb128(void); -# define EVP_aria_256_cfb EVP_aria_256_cfb128 -const EVP_CIPHER *EVP_aria_256_ctr(void); -const EVP_CIPHER *EVP_aria_256_ofb(void); -const EVP_CIPHER *EVP_aria_256_gcm(void); -const EVP_CIPHER *EVP_aria_256_ccm(void); -# endif -# ifndef OPENSSL_NO_CAMELLIA -const EVP_CIPHER *EVP_camellia_128_ecb(void); -const EVP_CIPHER *EVP_camellia_128_cbc(void); -const EVP_CIPHER *EVP_camellia_128_cfb1(void); -const EVP_CIPHER *EVP_camellia_128_cfb8(void); -const EVP_CIPHER *EVP_camellia_128_cfb128(void); -# define EVP_camellia_128_cfb EVP_camellia_128_cfb128 -const EVP_CIPHER *EVP_camellia_128_ofb(void); -const EVP_CIPHER *EVP_camellia_128_ctr(void); -const EVP_CIPHER *EVP_camellia_192_ecb(void); -const EVP_CIPHER *EVP_camellia_192_cbc(void); -const EVP_CIPHER *EVP_camellia_192_cfb1(void); -const EVP_CIPHER *EVP_camellia_192_cfb8(void); -const EVP_CIPHER *EVP_camellia_192_cfb128(void); -# define EVP_camellia_192_cfb EVP_camellia_192_cfb128 -const EVP_CIPHER *EVP_camellia_192_ofb(void); -const EVP_CIPHER *EVP_camellia_192_ctr(void); -const EVP_CIPHER *EVP_camellia_256_ecb(void); -const EVP_CIPHER *EVP_camellia_256_cbc(void); -const EVP_CIPHER *EVP_camellia_256_cfb1(void); -const EVP_CIPHER *EVP_camellia_256_cfb8(void); -const EVP_CIPHER *EVP_camellia_256_cfb128(void); -# define EVP_camellia_256_cfb EVP_camellia_256_cfb128 -const EVP_CIPHER *EVP_camellia_256_ofb(void); -const EVP_CIPHER *EVP_camellia_256_ctr(void); -# endif -# ifndef OPENSSL_NO_CHACHA -const EVP_CIPHER *EVP_chacha20(void); -# ifndef OPENSSL_NO_POLY1305 -const EVP_CIPHER *EVP_chacha20_poly1305(void); -# endif -# endif - -# ifndef OPENSSL_NO_SEED -const EVP_CIPHER *EVP_seed_ecb(void); -const EVP_CIPHER *EVP_seed_cbc(void); -const EVP_CIPHER *EVP_seed_cfb128(void); -# define EVP_seed_cfb EVP_seed_cfb128 -const EVP_CIPHER *EVP_seed_ofb(void); -# endif - -# ifndef OPENSSL_NO_SM4 -const EVP_CIPHER *EVP_sm4_ecb(void); -const EVP_CIPHER *EVP_sm4_cbc(void); -const EVP_CIPHER *EVP_sm4_cfb128(void); -# define EVP_sm4_cfb EVP_sm4_cfb128 -const EVP_CIPHER *EVP_sm4_ofb(void); -const EVP_CIPHER *EVP_sm4_ctr(void); -# endif - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define OPENSSL_add_all_algorithms_conf() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ - | OPENSSL_INIT_ADD_ALL_DIGESTS \ - | OPENSSL_INIT_LOAD_CONFIG, NULL) -# define OPENSSL_add_all_algorithms_noconf() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ - | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) - -# ifdef OPENSSL_LOAD_CONF -# define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_conf() -# else -# define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_noconf() -# endif - -# define OpenSSL_add_all_ciphers() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS, NULL) -# define OpenSSL_add_all_digests() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) - -# define EVP_cleanup() while(0) continue -# endif - -int EVP_add_cipher(const EVP_CIPHER *cipher); -int EVP_add_digest(const EVP_MD *digest); - -const EVP_CIPHER *EVP_get_cipherbyname(const char *name); -const EVP_MD *EVP_get_digestbyname(const char *name); - -void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph, - const char *from, const char *to, void *x), - void *arg); -void EVP_CIPHER_do_all_sorted(void (*fn) - (const EVP_CIPHER *ciph, const char *from, - const char *to, void *x), void *arg); -void EVP_CIPHER_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_CIPHER *cipher, void *arg), - void *arg); - -void EVP_MD_do_all(void (*fn) (const EVP_MD *ciph, - const char *from, const char *to, void *x), - void *arg); -void EVP_MD_do_all_sorted(void (*fn) - (const EVP_MD *ciph, const char *from, - const char *to, void *x), void *arg); -void EVP_MD_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_MD *md, void *arg), - void *arg); - -/* MAC stuff */ - -EVP_MAC *EVP_MAC_fetch(OSSL_LIB_CTX *libctx, const char *algorithm, - const char *properties); -int EVP_MAC_up_ref(EVP_MAC *mac); -void EVP_MAC_free(EVP_MAC *mac); -const char *EVP_MAC_get0_name(const EVP_MAC *mac); -const char *EVP_MAC_get0_description(const EVP_MAC *mac); -int EVP_MAC_is_a(const EVP_MAC *mac, const char *name); -const OSSL_PROVIDER *EVP_MAC_get0_provider(const EVP_MAC *mac); -int EVP_MAC_get_params(EVP_MAC *mac, OSSL_PARAM params[]); - -EVP_MAC_CTX *EVP_MAC_CTX_new(EVP_MAC *mac); -void EVP_MAC_CTX_free(EVP_MAC_CTX *ctx); -EVP_MAC_CTX *EVP_MAC_CTX_dup(const EVP_MAC_CTX *src); -EVP_MAC *EVP_MAC_CTX_get0_mac(EVP_MAC_CTX *ctx); -int EVP_MAC_CTX_get_params(EVP_MAC_CTX *ctx, OSSL_PARAM params[]); -int EVP_MAC_CTX_set_params(EVP_MAC_CTX *ctx, const OSSL_PARAM params[]); - -size_t EVP_MAC_CTX_get_mac_size(EVP_MAC_CTX *ctx); -size_t EVP_MAC_CTX_get_block_size(EVP_MAC_CTX *ctx); -unsigned char *EVP_Q_mac(OSSL_LIB_CTX *libctx, const char *name, const char *propq, - const char *subalg, const OSSL_PARAM *params, - const void *key, size_t keylen, - const unsigned char *data, size_t datalen, - unsigned char *out, size_t outsize, size_t *outlen); -int EVP_MAC_init(EVP_MAC_CTX *ctx, const unsigned char *key, size_t keylen, - const OSSL_PARAM params[]); -int EVP_MAC_init_SKEY(EVP_MAC_CTX *ctx, EVP_SKEY *skey, const OSSL_PARAM params[]); -int EVP_MAC_update(EVP_MAC_CTX *ctx, const unsigned char *data, size_t datalen); -int EVP_MAC_final(EVP_MAC_CTX *ctx, - unsigned char *out, size_t *outl, size_t outsize); -int EVP_MAC_finalXOF(EVP_MAC_CTX *ctx, unsigned char *out, size_t outsize); -const OSSL_PARAM *EVP_MAC_gettable_params(const EVP_MAC *mac); -const OSSL_PARAM *EVP_MAC_gettable_ctx_params(const EVP_MAC *mac); -const OSSL_PARAM *EVP_MAC_settable_ctx_params(const EVP_MAC *mac); -const OSSL_PARAM *EVP_MAC_CTX_gettable_params(EVP_MAC_CTX *ctx); -const OSSL_PARAM *EVP_MAC_CTX_settable_params(EVP_MAC_CTX *ctx); - -void EVP_MAC_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_MAC *mac, void *arg), - void *arg); -int EVP_MAC_names_do_all(const EVP_MAC *mac, - void (*fn)(const char *name, void *data), - void *data); - -/* RAND stuff */ -EVP_RAND *EVP_RAND_fetch(OSSL_LIB_CTX *libctx, const char *algorithm, - const char *properties); -int EVP_RAND_up_ref(EVP_RAND *rand); -void EVP_RAND_free(EVP_RAND *rand); -const char *EVP_RAND_get0_name(const EVP_RAND *rand); -const char *EVP_RAND_get0_description(const EVP_RAND *md); -int EVP_RAND_is_a(const EVP_RAND *rand, const char *name); -const OSSL_PROVIDER *EVP_RAND_get0_provider(const EVP_RAND *rand); -int EVP_RAND_get_params(EVP_RAND *rand, OSSL_PARAM params[]); - -EVP_RAND_CTX *EVP_RAND_CTX_new(EVP_RAND *rand, EVP_RAND_CTX *parent); -int EVP_RAND_CTX_up_ref(EVP_RAND_CTX *ctx); -void EVP_RAND_CTX_free(EVP_RAND_CTX *ctx); -EVP_RAND *EVP_RAND_CTX_get0_rand(EVP_RAND_CTX *ctx); -int EVP_RAND_CTX_get_params(EVP_RAND_CTX *ctx, OSSL_PARAM params[]); -int EVP_RAND_CTX_set_params(EVP_RAND_CTX *ctx, const OSSL_PARAM params[]); -const OSSL_PARAM *EVP_RAND_gettable_params(const EVP_RAND *rand); -const OSSL_PARAM *EVP_RAND_gettable_ctx_params(const EVP_RAND *rand); -const OSSL_PARAM *EVP_RAND_settable_ctx_params(const EVP_RAND *rand); -const OSSL_PARAM *EVP_RAND_CTX_gettable_params(EVP_RAND_CTX *ctx); -const OSSL_PARAM *EVP_RAND_CTX_settable_params(EVP_RAND_CTX *ctx); - -void EVP_RAND_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_RAND *rand, void *arg), - void *arg); -int EVP_RAND_names_do_all(const EVP_RAND *rand, - void (*fn)(const char *name, void *data), - void *data); - -__owur int EVP_RAND_instantiate(EVP_RAND_CTX *ctx, unsigned int strength, - int prediction_resistance, - const unsigned char *pstr, size_t pstr_len, - const OSSL_PARAM params[]); -int EVP_RAND_uninstantiate(EVP_RAND_CTX *ctx); -__owur int EVP_RAND_generate(EVP_RAND_CTX *ctx, unsigned char *out, - size_t outlen, unsigned int strength, - int prediction_resistance, - const unsigned char *addin, size_t addin_len); -int EVP_RAND_reseed(EVP_RAND_CTX *ctx, int prediction_resistance, - const unsigned char *ent, size_t ent_len, - const unsigned char *addin, size_t addin_len); -__owur int EVP_RAND_nonce(EVP_RAND_CTX *ctx, unsigned char *out, size_t outlen); -__owur int EVP_RAND_enable_locking(EVP_RAND_CTX *ctx); - -int EVP_RAND_verify_zeroization(EVP_RAND_CTX *ctx); -unsigned int EVP_RAND_get_strength(EVP_RAND_CTX *ctx); -int EVP_RAND_get_state(EVP_RAND_CTX *ctx); - -# define EVP_RAND_STATE_UNINITIALISED 0 -# define EVP_RAND_STATE_READY 1 -# define EVP_RAND_STATE_ERROR 2 - -/* PKEY stuff */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int EVP_PKEY_decrypt_old(unsigned char *dec_key, - const unsigned char *enc_key, - int enc_key_len, - EVP_PKEY *private_key); -OSSL_DEPRECATEDIN_3_0 int EVP_PKEY_encrypt_old(unsigned char *enc_key, - const unsigned char *key, - int key_len, EVP_PKEY *pub_key); -# endif -int EVP_PKEY_is_a(const EVP_PKEY *pkey, const char *name); -int EVP_PKEY_type_names_do_all(const EVP_PKEY *pkey, - void (*fn)(const char *name, void *data), - void *data); -int EVP_PKEY_type(int type); -int EVP_PKEY_get_id(const EVP_PKEY *pkey); -# define EVP_PKEY_id EVP_PKEY_get_id -int EVP_PKEY_get_base_id(const EVP_PKEY *pkey); -# define EVP_PKEY_base_id EVP_PKEY_get_base_id -int EVP_PKEY_get_bits(const EVP_PKEY *pkey); -# define EVP_PKEY_bits EVP_PKEY_get_bits -int EVP_PKEY_get_security_bits(const EVP_PKEY *pkey); -# define EVP_PKEY_security_bits EVP_PKEY_get_security_bits -int EVP_PKEY_get_security_category(const EVP_PKEY *pkey); -int EVP_PKEY_get_size(const EVP_PKEY *pkey); -# define EVP_PKEY_size EVP_PKEY_get_size -int EVP_PKEY_can_sign(const EVP_PKEY *pkey); -int EVP_PKEY_set_type(EVP_PKEY *pkey, int type); -int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len); -int EVP_PKEY_set_type_by_keymgmt(EVP_PKEY *pkey, EVP_KEYMGMT *keymgmt); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_ENGINE -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_set1_engine(EVP_PKEY *pkey, ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE *EVP_PKEY_get0_engine(const EVP_PKEY *pkey); -# endif -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key); -OSSL_DEPRECATEDIN_3_0 -void *EVP_PKEY_get0(const EVP_PKEY *pkey); -OSSL_DEPRECATEDIN_3_0 -const unsigned char *EVP_PKEY_get0_hmac(const EVP_PKEY *pkey, size_t *len); -# ifndef OPENSSL_NO_POLY1305 -OSSL_DEPRECATEDIN_3_0 -const unsigned char *EVP_PKEY_get0_poly1305(const EVP_PKEY *pkey, size_t *len); -# endif -# ifndef OPENSSL_NO_SIPHASH -OSSL_DEPRECATEDIN_3_0 -const unsigned char *EVP_PKEY_get0_siphash(const EVP_PKEY *pkey, size_t *len); -# endif - -struct rsa_st; -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key); -OSSL_DEPRECATEDIN_3_0 -const struct rsa_st *EVP_PKEY_get0_RSA(const EVP_PKEY *pkey); -OSSL_DEPRECATEDIN_3_0 -struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey); - -# ifndef OPENSSL_NO_DSA -struct dsa_st; -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key); -OSSL_DEPRECATEDIN_3_0 -const struct dsa_st *EVP_PKEY_get0_DSA(const EVP_PKEY *pkey); -OSSL_DEPRECATEDIN_3_0 -struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey); -# endif - -# ifndef OPENSSL_NO_DH -struct dh_st; -OSSL_DEPRECATEDIN_3_0 int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key); -OSSL_DEPRECATEDIN_3_0 const struct dh_st *EVP_PKEY_get0_DH(const EVP_PKEY *pkey); -OSSL_DEPRECATEDIN_3_0 struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey); -# endif - -# ifndef OPENSSL_NO_EC -struct ec_key_st; -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key); -OSSL_DEPRECATEDIN_3_0 -const struct ec_key_st *EVP_PKEY_get0_EC_KEY(const EVP_PKEY *pkey); -OSSL_DEPRECATEDIN_3_0 -struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); -# endif -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -EVP_PKEY *EVP_PKEY_new(void); -int EVP_PKEY_up_ref(EVP_PKEY *pkey); -EVP_PKEY *EVP_PKEY_dup(EVP_PKEY *pkey); -void EVP_PKEY_free(EVP_PKEY *pkey); -const char *EVP_PKEY_get0_description(const EVP_PKEY *pkey); -const OSSL_PROVIDER *EVP_PKEY_get0_provider(const EVP_PKEY *key); - -EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp, - long length); -int i2d_PublicKey(const EVP_PKEY *a, unsigned char **pp); - - -EVP_PKEY *d2i_PrivateKey_ex(int type, EVP_PKEY **a, const unsigned char **pp, - long length, OSSL_LIB_CTX *libctx, - const char *propq); -EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, - long length); -EVP_PKEY *d2i_AutoPrivateKey_ex(EVP_PKEY **a, const unsigned char **pp, - long length, OSSL_LIB_CTX *libctx, - const char *propq); -EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, - long length); -int i2d_PrivateKey(const EVP_PKEY *a, unsigned char **pp); -int i2d_PKCS8PrivateKey(const EVP_PKEY *a, unsigned char **pp); - -int i2d_KeyParams(const EVP_PKEY *a, unsigned char **pp); -EVP_PKEY *d2i_KeyParams(int type, EVP_PKEY **a, const unsigned char **pp, - long length); -int i2d_KeyParams_bio(BIO *bp, const EVP_PKEY *pkey); -EVP_PKEY *d2i_KeyParams_bio(int type, EVP_PKEY **a, BIO *in); - -int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from); -int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey); -int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode); -int EVP_PKEY_parameters_eq(const EVP_PKEY *a, const EVP_PKEY *b); -int EVP_PKEY_eq(const EVP_PKEY *a, const EVP_PKEY *b); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b); -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b); -# endif - -int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -# ifndef OPENSSL_NO_STDIO -int EVP_PKEY_print_public_fp(FILE *fp, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -int EVP_PKEY_print_private_fp(FILE *fp, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -int EVP_PKEY_print_params_fp(FILE *fp, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -# endif - -int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); -int EVP_PKEY_get_default_digest_name(EVP_PKEY *pkey, - char *mdname, size_t mdname_sz); -int EVP_PKEY_digestsign_supports_digest(EVP_PKEY *pkey, OSSL_LIB_CTX *libctx, - const char *name, const char *propq); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* - * For backwards compatibility. Use EVP_PKEY_set1_encoded_public_key in - * preference - */ -# define EVP_PKEY_set1_tls_encodedpoint(pkey, pt, ptlen) \ - EVP_PKEY_set1_encoded_public_key((pkey), (pt), (ptlen)) -# endif - -int EVP_PKEY_set1_encoded_public_key(EVP_PKEY *pkey, - const unsigned char *pub, size_t publen); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* - * For backwards compatibility. Use EVP_PKEY_get1_encoded_public_key in - * preference - */ -# define EVP_PKEY_get1_tls_encodedpoint(pkey, ppt) \ - EVP_PKEY_get1_encoded_public_key((pkey), (ppt)) -# endif - -size_t EVP_PKEY_get1_encoded_public_key(EVP_PKEY *pkey, unsigned char **ppub); - -/* calls methods */ -int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type); -int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type); - -/* These are used by EVP_CIPHER methods */ -int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); -int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); - -/* PKCS5 password based encryption */ -int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md, int en_de); -int PKCS5_PBE_keyivgen_ex(EVP_CIPHER_CTX *cctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md, int en_de, OSSL_LIB_CTX *libctx, - const char *propq); -int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, - const unsigned char *salt, int saltlen, int iter, - int keylen, unsigned char *out); -int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, - const unsigned char *salt, int saltlen, int iter, - const EVP_MD *digest, int keylen, unsigned char *out); -int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md, int en_de); -int PKCS5_v2_PBE_keyivgen_ex(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md, int en_de, - OSSL_LIB_CTX *libctx, const char *propq); - -#ifndef OPENSSL_NO_SCRYPT -int EVP_PBE_scrypt(const char *pass, size_t passlen, - const unsigned char *salt, size_t saltlen, - uint64_t N, uint64_t r, uint64_t p, uint64_t maxmem, - unsigned char *key, size_t keylen); -int EVP_PBE_scrypt_ex(const char *pass, size_t passlen, - const unsigned char *salt, size_t saltlen, - uint64_t N, uint64_t r, uint64_t p, uint64_t maxmem, - unsigned char *key, size_t keylen, - OSSL_LIB_CTX *ctx, const char *propq); - -int PKCS5_v2_scrypt_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, - int passlen, ASN1_TYPE *param, - const EVP_CIPHER *c, const EVP_MD *md, int en_de); -int PKCS5_v2_scrypt_keyivgen_ex(EVP_CIPHER_CTX *ctx, const char *pass, - int passlen, ASN1_TYPE *param, - const EVP_CIPHER *c, const EVP_MD *md, int en_de, - OSSL_LIB_CTX *libctx, const char *propq); -#endif - -void PKCS5_PBE_add(void); - -int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, - ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de); - -int EVP_PBE_CipherInit_ex(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, - ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de, - OSSL_LIB_CTX *libctx, const char *propq); - -/* PBE type */ - -/* Can appear as the outermost AlgorithmIdentifier */ -# define EVP_PBE_TYPE_OUTER 0x0 -/* Is an PRF type OID */ -# define EVP_PBE_TYPE_PRF 0x1 -/* Is a PKCS#5 v2.0 KDF */ -# define EVP_PBE_TYPE_KDF 0x2 - -int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, - int md_nid, EVP_PBE_KEYGEN *keygen); -int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md, - EVP_PBE_KEYGEN *keygen); -int EVP_PBE_find(int type, int pbe_nid, int *pcnid, int *pmnid, - EVP_PBE_KEYGEN **pkeygen); -int EVP_PBE_find_ex(int type, int pbe_nid, int *pcnid, int *pmnid, - EVP_PBE_KEYGEN **pkeygen, EVP_PBE_KEYGEN_EX **pkeygen_ex); -void EVP_PBE_cleanup(void); -int EVP_PBE_get(int *ptype, int *ppbe_nid, size_t num); - -# define ASN1_PKEY_ALIAS 0x1 -# define ASN1_PKEY_DYNAMIC 0x2 -# define ASN1_PKEY_SIGPARAM_NULL 0x4 - -# define ASN1_PKEY_CTRL_PKCS7_SIGN 0x1 -# define ASN1_PKEY_CTRL_PKCS7_ENCRYPT 0x2 -# define ASN1_PKEY_CTRL_DEFAULT_MD_NID 0x3 -# define ASN1_PKEY_CTRL_CMS_SIGN 0x5 -# define ASN1_PKEY_CTRL_CMS_ENVELOPE 0x7 -# define ASN1_PKEY_CTRL_CMS_RI_TYPE 0x8 - -# define ASN1_PKEY_CTRL_SET1_TLS_ENCPT 0x9 -# define ASN1_PKEY_CTRL_GET1_TLS_ENCPT 0xa -# define ASN1_PKEY_CTRL_CMS_IS_RI_TYPE_SUPPORTED 0xb - -# ifndef OPENSSL_NO_DEPRECATED_3_6 -OSSL_DEPRECATEDIN_3_6 int EVP_PKEY_asn1_get_count(void); -OSSL_DEPRECATEDIN_3_6 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx); -OSSL_DEPRECATEDIN_3_6 -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type); -OSSL_DEPRECATEDIN_3_6 -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe, - const char *str, int len); -OSSL_DEPRECATEDIN_3_6 int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth); -OSSL_DEPRECATEDIN_3_6 int EVP_PKEY_asn1_add_alias(int to, int from); -OSSL_DEPRECATEDIN_3_6 -int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id, - int *ppkey_flags, const char **pinfo, - const char **ppem_str, - const EVP_PKEY_ASN1_METHOD *ameth); - -OSSL_DEPRECATEDIN_3_6 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(const EVP_PKEY *pkey); -OSSL_DEPRECATEDIN_3_6 EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags, - const char *pem_str, - const char *info); -OSSL_DEPRECATEDIN_3_6 void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, - const EVP_PKEY_ASN1_METHOD *src); -OSSL_DEPRECATEDIN_3_6 void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth); -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth, - int (*pub_decode) (EVP_PKEY *pk, - const X509_PUBKEY *pub), - int (*pub_encode) (X509_PUBKEY *pub, - const EVP_PKEY *pk), - int (*pub_cmp) (const EVP_PKEY *a, - const EVP_PKEY *b), - int (*pub_print) (BIO *out, - const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx), - int (*pkey_size) (const EVP_PKEY *pk), - int (*pkey_bits) (const EVP_PKEY *pk)); -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth, - int (*priv_decode) (EVP_PKEY *pk, - const PKCS8_PRIV_KEY_INFO - *p8inf), - int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, - const EVP_PKEY *pk), - int (*priv_print) (BIO *out, - const EVP_PKEY *pkey, - int indent, - ASN1_PCTX *pctx)); -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth, - int (*param_decode) (EVP_PKEY *pkey, - const unsigned char **pder, - int derlen), - int (*param_encode) (const EVP_PKEY *pkey, - unsigned char **pder), - int (*param_missing) (const EVP_PKEY *pk), - int (*param_copy) (EVP_PKEY *to, - const EVP_PKEY *from), - int (*param_cmp) (const EVP_PKEY *a, - const EVP_PKEY *b), - int (*param_print) (BIO *out, - const EVP_PKEY *pkey, - int indent, - ASN1_PCTX *pctx)); - -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth, - void (*pkey_free) (EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_ctrl) (EVP_PKEY *pkey, int op, - long arg1, void *arg2)); -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, - int (*item_verify) (EVP_MD_CTX *ctx, - const ASN1_ITEM *it, - const void *data, - const X509_ALGOR *a, - const ASN1_BIT_STRING *sig, - EVP_PKEY *pkey), - int (*item_sign) (EVP_MD_CTX *ctx, - const ASN1_ITEM *it, - const void *data, - X509_ALGOR *alg1, - X509_ALGOR *alg2, - ASN1_BIT_STRING *sig)); - -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_siginf(EVP_PKEY_ASN1_METHOD *ameth, - int (*siginf_set) (X509_SIG_INFO *siginf, - const X509_ALGOR *alg, - const ASN1_STRING *sig)); - -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_check(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_check) (const EVP_PKEY *pk)); - -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_public_check(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_pub_check) (const EVP_PKEY *pk)); - -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_param_check(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_param_check) (const EVP_PKEY *pk)); - -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_set_priv_key(EVP_PKEY_ASN1_METHOD *ameth, - int (*set_priv_key) (EVP_PKEY *pk, - const unsigned char - *priv, - size_t len)); -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_set_pub_key(EVP_PKEY_ASN1_METHOD *ameth, - int (*set_pub_key) (EVP_PKEY *pk, - const unsigned char *pub, - size_t len)); -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_get_priv_key(EVP_PKEY_ASN1_METHOD *ameth, - int (*get_priv_key) (const EVP_PKEY *pk, - unsigned char *priv, - size_t *len)); -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_get_pub_key(EVP_PKEY_ASN1_METHOD *ameth, - int (*get_pub_key) (const EVP_PKEY *pk, - unsigned char *pub, - size_t *len)); - -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_security_bits(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_security_bits) (const EVP_PKEY - *pk)); -# endif /* OPENSSL_NO_DEPRECATED_3_6 */ - -int EVP_PKEY_CTX_get_signature_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); -int EVP_PKEY_CTX_set_signature_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); - -int EVP_PKEY_CTX_set1_id(EVP_PKEY_CTX *ctx, const void *id, int len); -int EVP_PKEY_CTX_get1_id(EVP_PKEY_CTX *ctx, void *id); -int EVP_PKEY_CTX_get1_id_len(EVP_PKEY_CTX *ctx, size_t *id_len); - -int EVP_PKEY_CTX_set_kem_op(EVP_PKEY_CTX *ctx, const char *op); - -const char *EVP_PKEY_get0_type_name(const EVP_PKEY *key); - -# define EVP_PKEY_OP_UNDEFINED 0 -# define EVP_PKEY_OP_PARAMGEN (1 << 1) -# define EVP_PKEY_OP_KEYGEN (1 << 2) -# define EVP_PKEY_OP_FROMDATA (1 << 3) -# define EVP_PKEY_OP_SIGN (1 << 4) -# define EVP_PKEY_OP_VERIFY (1 << 5) -# define EVP_PKEY_OP_VERIFYRECOVER (1 << 6) -# define EVP_PKEY_OP_SIGNCTX (1 << 7) -# define EVP_PKEY_OP_VERIFYCTX (1 << 8) -# define EVP_PKEY_OP_ENCRYPT (1 << 9) -# define EVP_PKEY_OP_DECRYPT (1 << 10) -# define EVP_PKEY_OP_DERIVE (1 << 11) -# define EVP_PKEY_OP_ENCAPSULATE (1 << 12) -# define EVP_PKEY_OP_DECAPSULATE (1 << 13) -# define EVP_PKEY_OP_SIGNMSG (1 << 14) -# define EVP_PKEY_OP_VERIFYMSG (1 << 15) -/* Update the following when adding new EVP_PKEY_OPs */ -# define EVP_PKEY_OP_ALL ((1 << 16) - 1) - -# define EVP_PKEY_OP_TYPE_SIG \ - (EVP_PKEY_OP_SIGN | EVP_PKEY_OP_SIGNMSG \ - | EVP_PKEY_OP_VERIFY | EVP_PKEY_OP_VERIFYMSG \ - | EVP_PKEY_OP_VERIFYRECOVER \ - | EVP_PKEY_OP_SIGNCTX | EVP_PKEY_OP_VERIFYCTX) - -# define EVP_PKEY_OP_TYPE_CRYPT \ - (EVP_PKEY_OP_ENCRYPT | EVP_PKEY_OP_DECRYPT) - -# define EVP_PKEY_OP_TYPE_DERIVE \ - (EVP_PKEY_OP_DERIVE) - -# define EVP_PKEY_OP_TYPE_DATA \ - (EVP_PKEY_OP_FROMDATA) - -# define EVP_PKEY_OP_TYPE_KEM \ - (EVP_PKEY_OP_ENCAPSULATE | EVP_PKEY_OP_DECAPSULATE) - -# define EVP_PKEY_OP_TYPE_GEN \ - (EVP_PKEY_OP_PARAMGEN | EVP_PKEY_OP_KEYGEN) - -# define EVP_PKEY_OP_TYPE_NOGEN \ - (EVP_PKEY_OP_ALL & ~EVP_PKEY_OP_TYPE_GEN) - -int EVP_PKEY_CTX_set_mac_key(EVP_PKEY_CTX *ctx, const unsigned char *key, - int keylen); - -# define EVP_PKEY_CTRL_MD 1 -# define EVP_PKEY_CTRL_PEER_KEY 2 -# define EVP_PKEY_CTRL_SET_MAC_KEY 6 -# define EVP_PKEY_CTRL_DIGESTINIT 7 -/* Used by GOST key encryption in TLS */ -# define EVP_PKEY_CTRL_SET_IV 8 -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define EVP_PKEY_CTRL_PKCS7_ENCRYPT 3 -# define EVP_PKEY_CTRL_PKCS7_DECRYPT 4 -# define EVP_PKEY_CTRL_PKCS7_SIGN 5 -# define EVP_PKEY_CTRL_CMS_ENCRYPT 9 -# define EVP_PKEY_CTRL_CMS_DECRYPT 10 -# define EVP_PKEY_CTRL_CMS_SIGN 11 -# endif -# define EVP_PKEY_CTRL_CIPHER 12 -# define EVP_PKEY_CTRL_GET_MD 13 -# define EVP_PKEY_CTRL_SET_DIGEST_SIZE 14 -# define EVP_PKEY_CTRL_SET1_ID 15 -# define EVP_PKEY_CTRL_GET1_ID 16 -# define EVP_PKEY_CTRL_GET1_ID_LEN 17 - -# define EVP_PKEY_ALG_CTRL 0x1000 - -# define EVP_PKEY_FLAG_AUTOARGLEN 2 -/* - * Method handles all operations: don't assume any digest related defaults. - */ -# define EVP_PKEY_FLAG_SIGCTX_CUSTOM 4 -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type); -OSSL_DEPRECATEDIN_3_0 EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags, - const EVP_PKEY_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, - const EVP_PKEY_METHOD *src); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth); -OSSL_DEPRECATEDIN_3_0 int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth); -OSSL_DEPRECATEDIN_3_0 int EVP_PKEY_meth_remove(const EVP_PKEY_METHOD *pmeth); -OSSL_DEPRECATEDIN_3_0 size_t EVP_PKEY_meth_get_count(void); -OSSL_DEPRECATEDIN_3_0 const EVP_PKEY_METHOD *EVP_PKEY_meth_get0(size_t idx); -# endif - -EVP_KEYMGMT *EVP_KEYMGMT_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, - const char *properties); -int EVP_KEYMGMT_up_ref(EVP_KEYMGMT *keymgmt); -void EVP_KEYMGMT_free(EVP_KEYMGMT *keymgmt); -const OSSL_PROVIDER *EVP_KEYMGMT_get0_provider(const EVP_KEYMGMT *keymgmt); -const char *EVP_KEYMGMT_get0_name(const EVP_KEYMGMT *keymgmt); -const char *EVP_KEYMGMT_get0_description(const EVP_KEYMGMT *keymgmt); -int EVP_KEYMGMT_is_a(const EVP_KEYMGMT *keymgmt, const char *name); -void EVP_KEYMGMT_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_KEYMGMT *keymgmt, void *arg), - void *arg); -int EVP_KEYMGMT_names_do_all(const EVP_KEYMGMT *keymgmt, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PARAM *EVP_KEYMGMT_gettable_params(const EVP_KEYMGMT *keymgmt); -const OSSL_PARAM *EVP_KEYMGMT_settable_params(const EVP_KEYMGMT *keymgmt); -const OSSL_PARAM *EVP_KEYMGMT_gen_settable_params(const EVP_KEYMGMT *keymgmt); -const OSSL_PARAM *EVP_KEYMGMT_gen_gettable_params(const EVP_KEYMGMT *keymgmt); - -EVP_SKEYMGMT *EVP_SKEYMGMT_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, - const char *properties); -int EVP_SKEYMGMT_up_ref(EVP_SKEYMGMT *keymgmt); -void EVP_SKEYMGMT_free(EVP_SKEYMGMT *keymgmt); -const OSSL_PROVIDER *EVP_SKEYMGMT_get0_provider(const EVP_SKEYMGMT *keymgmt); -const char *EVP_SKEYMGMT_get0_name(const EVP_SKEYMGMT *keymgmt); -const char *EVP_SKEYMGMT_get0_description(const EVP_SKEYMGMT *keymgmt); -int EVP_SKEYMGMT_is_a(const EVP_SKEYMGMT *keymgmt, const char *name); -void EVP_SKEYMGMT_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_SKEYMGMT *keymgmt, void *arg), - void *arg); -int EVP_SKEYMGMT_names_do_all(const EVP_SKEYMGMT *keymgmt, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PARAM *EVP_SKEYMGMT_get0_gen_settable_params(const EVP_SKEYMGMT *skeymgmt); -const OSSL_PARAM *EVP_SKEYMGMT_get0_imp_settable_params(const EVP_SKEYMGMT *skeymgmt); - -EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); -EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e); -EVP_PKEY_CTX *EVP_PKEY_CTX_new_from_name(OSSL_LIB_CTX *libctx, - const char *name, - const char *propquery); -EVP_PKEY_CTX *EVP_PKEY_CTX_new_from_pkey(OSSL_LIB_CTX *libctx, - EVP_PKEY *pkey, const char *propquery); -EVP_PKEY_CTX *EVP_PKEY_CTX_dup(const EVP_PKEY_CTX *ctx); -void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); -int EVP_PKEY_CTX_is_a(EVP_PKEY_CTX *ctx, const char *keytype); - -int EVP_PKEY_CTX_get_params(EVP_PKEY_CTX *ctx, OSSL_PARAM *params); -const OSSL_PARAM *EVP_PKEY_CTX_gettable_params(const EVP_PKEY_CTX *ctx); -int EVP_PKEY_CTX_set_params(EVP_PKEY_CTX *ctx, const OSSL_PARAM *params); -const OSSL_PARAM *EVP_PKEY_CTX_settable_params(const EVP_PKEY_CTX *ctx); - -int EVP_PKEY_CTX_set_algor_params(EVP_PKEY_CTX *ctx, const X509_ALGOR *alg); -int EVP_PKEY_CTX_get_algor_params(EVP_PKEY_CTX *ctx, X509_ALGOR *alg); -int EVP_PKEY_CTX_get_algor(EVP_PKEY_CTX *ctx, X509_ALGOR **alg); - -int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, - int cmd, int p1, void *p2); -int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, - const char *value); -int EVP_PKEY_CTX_ctrl_uint64(EVP_PKEY_CTX *ctx, int keytype, int optype, - int cmd, uint64_t value); - -int EVP_PKEY_CTX_str2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *str); -int EVP_PKEY_CTX_hex2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *hex); - -int EVP_PKEY_CTX_md(EVP_PKEY_CTX *ctx, int optype, int cmd, const char *md); - -int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx); -void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen); - -EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e, - const unsigned char *key, int keylen); -EVP_PKEY *EVP_PKEY_new_raw_private_key_ex(OSSL_LIB_CTX *libctx, - const char *keytype, - const char *propq, - const unsigned char *priv, size_t len); -EVP_PKEY *EVP_PKEY_new_raw_private_key(int type, ENGINE *e, - const unsigned char *priv, - size_t len); -EVP_PKEY *EVP_PKEY_new_raw_public_key_ex(OSSL_LIB_CTX *libctx, - const char *keytype, const char *propq, - const unsigned char *pub, size_t len); -EVP_PKEY *EVP_PKEY_new_raw_public_key(int type, ENGINE *e, - const unsigned char *pub, - size_t len); -int EVP_PKEY_get_raw_private_key(const EVP_PKEY *pkey, unsigned char *priv, - size_t *len); -int EVP_PKEY_get_raw_public_key(const EVP_PKEY *pkey, unsigned char *pub, - size_t *len); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -EVP_PKEY *EVP_PKEY_new_CMAC_key(ENGINE *e, const unsigned char *priv, - size_t len, const EVP_CIPHER *cipher); -# endif - -void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data); -void *EVP_PKEY_CTX_get_data(const EVP_PKEY_CTX *ctx); -EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx); - -EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx); - -void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data); -void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_CTX_set_signature(EVP_PKEY_CTX *pctx, - const unsigned char *sig, size_t siglen); - -void EVP_SIGNATURE_free(EVP_SIGNATURE *signature); -int EVP_SIGNATURE_up_ref(EVP_SIGNATURE *signature); -OSSL_PROVIDER *EVP_SIGNATURE_get0_provider(const EVP_SIGNATURE *signature); -EVP_SIGNATURE *EVP_SIGNATURE_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, - const char *properties); -int EVP_SIGNATURE_is_a(const EVP_SIGNATURE *signature, const char *name); -const char *EVP_SIGNATURE_get0_name(const EVP_SIGNATURE *signature); -const char *EVP_SIGNATURE_get0_description(const EVP_SIGNATURE *signature); -void EVP_SIGNATURE_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_SIGNATURE *signature, - void *data), - void *data); -int EVP_SIGNATURE_names_do_all(const EVP_SIGNATURE *signature, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PARAM *EVP_SIGNATURE_gettable_ctx_params(const EVP_SIGNATURE *sig); -const OSSL_PARAM *EVP_SIGNATURE_settable_ctx_params(const EVP_SIGNATURE *sig); - -void EVP_ASYM_CIPHER_free(EVP_ASYM_CIPHER *cipher); -int EVP_ASYM_CIPHER_up_ref(EVP_ASYM_CIPHER *cipher); -OSSL_PROVIDER *EVP_ASYM_CIPHER_get0_provider(const EVP_ASYM_CIPHER *cipher); -EVP_ASYM_CIPHER *EVP_ASYM_CIPHER_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, - const char *properties); -int EVP_ASYM_CIPHER_is_a(const EVP_ASYM_CIPHER *cipher, const char *name); -const char *EVP_ASYM_CIPHER_get0_name(const EVP_ASYM_CIPHER *cipher); -const char *EVP_ASYM_CIPHER_get0_description(const EVP_ASYM_CIPHER *cipher); -void EVP_ASYM_CIPHER_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_ASYM_CIPHER *cipher, - void *arg), - void *arg); -int EVP_ASYM_CIPHER_names_do_all(const EVP_ASYM_CIPHER *cipher, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PARAM *EVP_ASYM_CIPHER_gettable_ctx_params(const EVP_ASYM_CIPHER *ciph); -const OSSL_PARAM *EVP_ASYM_CIPHER_settable_ctx_params(const EVP_ASYM_CIPHER *ciph); - -void EVP_KEM_free(EVP_KEM *wrap); -int EVP_KEM_up_ref(EVP_KEM *wrap); -OSSL_PROVIDER *EVP_KEM_get0_provider(const EVP_KEM *wrap); -EVP_KEM *EVP_KEM_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, - const char *properties); -int EVP_KEM_is_a(const EVP_KEM *wrap, const char *name); -const char *EVP_KEM_get0_name(const EVP_KEM *wrap); -const char *EVP_KEM_get0_description(const EVP_KEM *wrap); -void EVP_KEM_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_KEM *wrap, void *arg), void *arg); -int EVP_KEM_names_do_all(const EVP_KEM *wrap, - void (*fn)(const char *name, void *data), void *data); -const OSSL_PARAM *EVP_KEM_gettable_ctx_params(const EVP_KEM *kem); -const OSSL_PARAM *EVP_KEM_settable_ctx_params(const EVP_KEM *kem); - -int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_sign_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); -int EVP_PKEY_sign_init_ex2(EVP_PKEY_CTX *ctx, - EVP_SIGNATURE *algo, const OSSL_PARAM params[]); -int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, - unsigned char *sig, size_t *siglen, - const unsigned char *tbs, size_t tbslen); -int EVP_PKEY_sign_message_init(EVP_PKEY_CTX *ctx, - EVP_SIGNATURE *algo, const OSSL_PARAM params[]); -int EVP_PKEY_sign_message_update(EVP_PKEY_CTX *ctx, - const unsigned char *in, size_t inlen); -int EVP_PKEY_sign_message_final(EVP_PKEY_CTX *ctx, - unsigned char *sig, size_t *siglen); -int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_verify_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); -int EVP_PKEY_verify_init_ex2(EVP_PKEY_CTX *ctx, - EVP_SIGNATURE *algo, const OSSL_PARAM params[]); -int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, - const unsigned char *sig, size_t siglen, - const unsigned char *tbs, size_t tbslen); -int EVP_PKEY_verify_message_init(EVP_PKEY_CTX *ctx, - EVP_SIGNATURE *algo, const OSSL_PARAM params[]); -int EVP_PKEY_verify_message_update(EVP_PKEY_CTX *ctx, - const unsigned char *in, size_t inlen); -int EVP_PKEY_verify_message_final(EVP_PKEY_CTX *ctx); -int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_verify_recover_init_ex(EVP_PKEY_CTX *ctx, - const OSSL_PARAM params[]); -int EVP_PKEY_verify_recover_init_ex2(EVP_PKEY_CTX *ctx, - EVP_SIGNATURE *algo, - const OSSL_PARAM params[]); -int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, - unsigned char *rout, size_t *routlen, - const unsigned char *sig, size_t siglen); -int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_encrypt_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); -int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen); -int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_decrypt_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); -int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen); - -int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_derive_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); -int EVP_PKEY_derive_set_peer_ex(EVP_PKEY_CTX *ctx, EVP_PKEY *peer, - int validate_peer); -int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer); -int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); -EVP_SKEY *EVP_PKEY_derive_SKEY(EVP_PKEY_CTX *ctx, EVP_SKEYMGMT *mgmt, - const char *key_type, const char *propquery, - size_t keylen, const OSSL_PARAM params[]); - -int EVP_PKEY_encapsulate_init(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); -int EVP_PKEY_auth_encapsulate_init(EVP_PKEY_CTX *ctx, EVP_PKEY *authpriv, - const OSSL_PARAM params[]); -int EVP_PKEY_encapsulate(EVP_PKEY_CTX *ctx, - unsigned char *wrappedkey, size_t *wrappedkeylen, - unsigned char *genkey, size_t *genkeylen); -int EVP_PKEY_decapsulate_init(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); -int EVP_PKEY_auth_decapsulate_init(EVP_PKEY_CTX *ctx, EVP_PKEY *authpub, - const OSSL_PARAM params[]); -int EVP_PKEY_decapsulate(EVP_PKEY_CTX *ctx, - unsigned char *unwrapped, size_t *unwrappedlen, - const unsigned char *wrapped, size_t wrappedlen); -typedef int EVP_PKEY_gen_cb(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_fromdata_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_fromdata(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey, int selection, - OSSL_PARAM param[]); -const OSSL_PARAM *EVP_PKEY_fromdata_settable(EVP_PKEY_CTX *ctx, int selection); - -int EVP_PKEY_todata(const EVP_PKEY *pkey, int selection, OSSL_PARAM **params); -int EVP_PKEY_export(const EVP_PKEY *pkey, int selection, - OSSL_CALLBACK *export_cb, void *export_cbarg); - -const OSSL_PARAM *EVP_PKEY_gettable_params(const EVP_PKEY *pkey); -int EVP_PKEY_get_params(const EVP_PKEY *pkey, OSSL_PARAM params[]); -int EVP_PKEY_get_int_param(const EVP_PKEY *pkey, const char *key_name, - int *out); -int EVP_PKEY_get_size_t_param(const EVP_PKEY *pkey, const char *key_name, - size_t *out); -int EVP_PKEY_get_bn_param(const EVP_PKEY *pkey, const char *key_name, - BIGNUM **bn); -int EVP_PKEY_get_utf8_string_param(const EVP_PKEY *pkey, const char *key_name, - char *str, size_t max_buf_sz, size_t *out_sz); -int EVP_PKEY_get_octet_string_param(const EVP_PKEY *pkey, const char *key_name, - unsigned char *buf, size_t max_buf_sz, - size_t *out_sz); - -const OSSL_PARAM *EVP_PKEY_settable_params(const EVP_PKEY *pkey); -int EVP_PKEY_set_params(EVP_PKEY *pkey, OSSL_PARAM params[]); -int EVP_PKEY_set_int_param(EVP_PKEY *pkey, const char *key_name, int in); -int EVP_PKEY_set_size_t_param(EVP_PKEY *pkey, const char *key_name, size_t in); -int EVP_PKEY_set_bn_param(EVP_PKEY *pkey, const char *key_name, - const BIGNUM *bn); -int EVP_PKEY_set_utf8_string_param(EVP_PKEY *pkey, const char *key_name, - const char *str); -int EVP_PKEY_set_octet_string_param(EVP_PKEY *pkey, const char *key_name, - const unsigned char *buf, size_t bsize); - -int EVP_PKEY_get_ec_point_conv_form(const EVP_PKEY *pkey); -int EVP_PKEY_get_field_type(const EVP_PKEY *pkey); - -EVP_PKEY *EVP_PKEY_Q_keygen(OSSL_LIB_CTX *libctx, const char *propq, - const char *type, ...); -int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); -int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); -int EVP_PKEY_generate(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); -int EVP_PKEY_check(EVP_PKEY_CTX *ctx); -int EVP_PKEY_public_check(EVP_PKEY_CTX *ctx); -int EVP_PKEY_public_check_quick(EVP_PKEY_CTX *ctx); -int EVP_PKEY_param_check(EVP_PKEY_CTX *ctx); -int EVP_PKEY_param_check_quick(EVP_PKEY_CTX *ctx); -int EVP_PKEY_private_check(EVP_PKEY_CTX *ctx); -int EVP_PKEY_pairwise_check(EVP_PKEY_CTX *ctx); - -# define EVP_PKEY_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_EVP_PKEY, l, p, newf, dupf, freef) -int EVP_PKEY_set_ex_data(EVP_PKEY *key, int idx, void *arg); -void *EVP_PKEY_get_ex_data(const EVP_PKEY *key, int idx); - -void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb); -EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth, - int (*init) (EVP_PKEY_CTX *ctx)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_copy - (EVP_PKEY_METHOD *pmeth, int (*copy) (EVP_PKEY_CTX *dst, - const EVP_PKEY_CTX *src)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_cleanup - (EVP_PKEY_METHOD *pmeth, void (*cleanup) (EVP_PKEY_CTX *ctx)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_paramgen - (EVP_PKEY_METHOD *pmeth, int (*paramgen_init) (EVP_PKEY_CTX *ctx), - int (*paramgen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_keygen - (EVP_PKEY_METHOD *pmeth, int (*keygen_init) (EVP_PKEY_CTX *ctx), - int (*keygen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_sign - (EVP_PKEY_METHOD *pmeth, int (*sign_init) (EVP_PKEY_CTX *ctx), - int (*sign) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, - const unsigned char *tbs, size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_verify - (EVP_PKEY_METHOD *pmeth, int (*verify_init) (EVP_PKEY_CTX *ctx), - int (*verify) (EVP_PKEY_CTX *ctx, const unsigned char *sig, size_t siglen, - const unsigned char *tbs, size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_verify_recover - (EVP_PKEY_METHOD *pmeth, int (*verify_recover_init) (EVP_PKEY_CTX *ctx), - int (*verify_recover) (EVP_PKEY_CTX *ctx, unsigned char *sig, - size_t *siglen, const unsigned char *tbs, - size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_signctx - (EVP_PKEY_METHOD *pmeth, int (*signctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (*signctx) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, - EVP_MD_CTX *mctx)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_verifyctx - (EVP_PKEY_METHOD *pmeth, int (*verifyctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (*verifyctx) (EVP_PKEY_CTX *ctx, const unsigned char *sig, int siglen, - EVP_MD_CTX *mctx)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_encrypt - (EVP_PKEY_METHOD *pmeth, int (*encrypt_init) (EVP_PKEY_CTX *ctx), - int (*encryptfn) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_decrypt - (EVP_PKEY_METHOD *pmeth, int (*decrypt_init) (EVP_PKEY_CTX *ctx), - int (*decrypt) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_derive - (EVP_PKEY_METHOD *pmeth, int (*derive_init) (EVP_PKEY_CTX *ctx), - int (*derive) (EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_ctrl - (EVP_PKEY_METHOD *pmeth, int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, - void *p2), - int (*ctrl_str) (EVP_PKEY_CTX *ctx, const char *type, const char *value)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_digestsign - (EVP_PKEY_METHOD *pmeth, - int (*digestsign) (EVP_MD_CTX *ctx, unsigned char *sig, size_t *siglen, - const unsigned char *tbs, size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_digestverify - (EVP_PKEY_METHOD *pmeth, - int (*digestverify) (EVP_MD_CTX *ctx, const unsigned char *sig, - size_t siglen, const unsigned char *tbs, - size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_check - (EVP_PKEY_METHOD *pmeth, int (*check) (EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_public_check - (EVP_PKEY_METHOD *pmeth, int (*check) (EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_param_check - (EVP_PKEY_METHOD *pmeth, int (*check) (EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_digest_custom - (EVP_PKEY_METHOD *pmeth, int (*digest_custom) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_init - (const EVP_PKEY_METHOD *pmeth, int (**pinit) (EVP_PKEY_CTX *ctx)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_copy - (const EVP_PKEY_METHOD *pmeth, int (**pcopy) (EVP_PKEY_CTX *dst, - const EVP_PKEY_CTX *src)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_cleanup - (const EVP_PKEY_METHOD *pmeth, void (**pcleanup) (EVP_PKEY_CTX *ctx)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_paramgen - (const EVP_PKEY_METHOD *pmeth, int (**pparamgen_init) (EVP_PKEY_CTX *ctx), - int (**pparamgen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_keygen - (const EVP_PKEY_METHOD *pmeth, int (**pkeygen_init) (EVP_PKEY_CTX *ctx), - int (**pkeygen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_sign - (const EVP_PKEY_METHOD *pmeth, int (**psign_init) (EVP_PKEY_CTX *ctx), - int (**psign) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, - const unsigned char *tbs, size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_verify - (const EVP_PKEY_METHOD *pmeth, int (**pverify_init) (EVP_PKEY_CTX *ctx), - int (**pverify) (EVP_PKEY_CTX *ctx, const unsigned char *sig, - size_t siglen, const unsigned char *tbs, size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_verify_recover - (const EVP_PKEY_METHOD *pmeth, - int (**pverify_recover_init) (EVP_PKEY_CTX *ctx), - int (**pverify_recover) (EVP_PKEY_CTX *ctx, unsigned char *sig, - size_t *siglen, const unsigned char *tbs, - size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_signctx - (const EVP_PKEY_METHOD *pmeth, - int (**psignctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx), - int (**psignctx) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, - EVP_MD_CTX *mctx)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_verifyctx - (const EVP_PKEY_METHOD *pmeth, - int (**pverifyctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx), - int (**pverifyctx) (EVP_PKEY_CTX *ctx, const unsigned char *sig, - int siglen, EVP_MD_CTX *mctx)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_encrypt - (const EVP_PKEY_METHOD *pmeth, int (**pencrypt_init) (EVP_PKEY_CTX *ctx), - int (**pencryptfn) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_decrypt - (const EVP_PKEY_METHOD *pmeth, int (**pdecrypt_init) (EVP_PKEY_CTX *ctx), - int (**pdecrypt) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_derive - (const EVP_PKEY_METHOD *pmeth, int (**pderive_init) (EVP_PKEY_CTX *ctx), - int (**pderive) (EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_ctrl - (const EVP_PKEY_METHOD *pmeth, - int (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1, void *p2), - int (**pctrl_str) (EVP_PKEY_CTX *ctx, const char *type, - const char *value)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_digestsign - (const EVP_PKEY_METHOD *pmeth, - int (**digestsign) (EVP_MD_CTX *ctx, unsigned char *sig, size_t *siglen, - const unsigned char *tbs, size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_digestverify - (const EVP_PKEY_METHOD *pmeth, - int (**digestverify) (EVP_MD_CTX *ctx, const unsigned char *sig, - size_t siglen, const unsigned char *tbs, - size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_check - (const EVP_PKEY_METHOD *pmeth, int (**pcheck) (EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_public_check - (const EVP_PKEY_METHOD *pmeth, int (**pcheck) (EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_param_check - (const EVP_PKEY_METHOD *pmeth, int (**pcheck) (EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_digest_custom - (const EVP_PKEY_METHOD *pmeth, - int (**pdigest_custom) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx)); -# endif - -void EVP_KEYEXCH_free(EVP_KEYEXCH *exchange); -int EVP_KEYEXCH_up_ref(EVP_KEYEXCH *exchange); -EVP_KEYEXCH *EVP_KEYEXCH_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, - const char *properties); -OSSL_PROVIDER *EVP_KEYEXCH_get0_provider(const EVP_KEYEXCH *exchange); -int EVP_KEYEXCH_is_a(const EVP_KEYEXCH *keyexch, const char *name); -const char *EVP_KEYEXCH_get0_name(const EVP_KEYEXCH *keyexch); -const char *EVP_KEYEXCH_get0_description(const EVP_KEYEXCH *keyexch); -void EVP_KEYEXCH_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_KEYEXCH *keyexch, void *data), - void *data); -int EVP_KEYEXCH_names_do_all(const EVP_KEYEXCH *keyexch, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PARAM *EVP_KEYEXCH_gettable_ctx_params(const EVP_KEYEXCH *keyexch); -const OSSL_PARAM *EVP_KEYEXCH_settable_ctx_params(const EVP_KEYEXCH *keyexch); - -void EVP_add_alg_module(void); - -int EVP_PKEY_CTX_set_group_name(EVP_PKEY_CTX *ctx, const char *name); -int EVP_PKEY_CTX_get_group_name(EVP_PKEY_CTX *ctx, char *name, size_t namelen); -int EVP_PKEY_get_group_name(const EVP_PKEY *pkey, char *name, size_t name_sz, - size_t *gname_len); - -OSSL_LIB_CTX *EVP_PKEY_CTX_get0_libctx(EVP_PKEY_CTX *ctx); -const char *EVP_PKEY_CTX_get0_propq(const EVP_PKEY_CTX *ctx); -const OSSL_PROVIDER *EVP_PKEY_CTX_get0_provider(const EVP_PKEY_CTX *ctx); - -int EVP_SKEY_is_a(const EVP_SKEY *skey, const char *name); -EVP_SKEY *EVP_SKEY_import(OSSL_LIB_CTX *libctx, const char *skeymgmtname, const char *propquery, - int selection, const OSSL_PARAM *params); -EVP_SKEY *EVP_SKEY_generate(OSSL_LIB_CTX *libctx, const char *skeymgmtname, - const char *propquery, const OSSL_PARAM *params); -EVP_SKEY *EVP_SKEY_import_raw_key(OSSL_LIB_CTX *libctx, const char *skeymgmtname, - unsigned char *key, size_t keylen, - const char *propquery); -EVP_SKEY *EVP_SKEY_import_SKEYMGMT(OSSL_LIB_CTX *libctx, EVP_SKEYMGMT *skeymgmt, - int selection, const OSSL_PARAM *params); -int EVP_SKEY_get0_raw_key(const EVP_SKEY *skey, const unsigned char **key, - size_t *len); -const char *EVP_SKEY_get0_key_id(const EVP_SKEY *skey); -int EVP_SKEY_export(const EVP_SKEY *skey, int selection, - OSSL_CALLBACK *export_cb, void *export_cbarg); -int EVP_SKEY_up_ref(EVP_SKEY *skey); -void EVP_SKEY_free(EVP_SKEY *skey); -const char *EVP_SKEY_get0_skeymgmt_name(const EVP_SKEY *skey); -const char *EVP_SKEY_get0_provider_name(const EVP_SKEY *skey); -EVP_SKEY *EVP_SKEY_to_provider(EVP_SKEY *skey, OSSL_LIB_CTX *libctx, - OSSL_PROVIDER *prov, const char *propquery); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/evperr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/evperr.h deleted file mode 100644 index 6dc846a..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/evperr.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_EVPERR_H -# define OPENSSL_EVPERR_H -# pragma once - -# include -# include -# include - - - -/* - * EVP reason codes. - */ -# define EVP_R_AES_KEY_SETUP_FAILED 143 -# define EVP_R_ARIA_KEY_SETUP_FAILED 176 -# define EVP_R_BAD_ALGORITHM_NAME 200 -# define EVP_R_BAD_DECRYPT 100 -# define EVP_R_BAD_KEY_LENGTH 195 -# define EVP_R_BUFFER_TOO_SMALL 155 -# define EVP_R_CACHE_CONSTANTS_FAILED 225 -# define EVP_R_CAMELLIA_KEY_SETUP_FAILED 157 -# define EVP_R_CANNOT_GET_PARAMETERS 197 -# define EVP_R_CANNOT_SET_PARAMETERS 198 -# define EVP_R_CIPHER_NOT_GCM_MODE 184 -# define EVP_R_CIPHER_PARAMETER_ERROR 122 -# define EVP_R_COMMAND_NOT_SUPPORTED 147 -# define EVP_R_CONFLICTING_ALGORITHM_NAME 201 -# define EVP_R_COPY_ERROR 173 -# define EVP_R_CTRL_NOT_IMPLEMENTED 132 -# define EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED 133 -# define EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH 138 -# define EVP_R_DECODE_ERROR 114 -# define EVP_R_DEFAULT_QUERY_PARSE_ERROR 210 -# define EVP_R_DIFFERENT_KEY_TYPES 101 -# define EVP_R_DIFFERENT_PARAMETERS 153 -# define EVP_R_ERROR_LOADING_SECTION 165 -# define EVP_R_EXPECTING_AN_HMAC_KEY 174 -# define EVP_R_EXPECTING_AN_RSA_KEY 127 -# define EVP_R_EXPECTING_A_DH_KEY 128 -# define EVP_R_EXPECTING_A_DSA_KEY 129 -# define EVP_R_EXPECTING_A_ECX_KEY 219 -# define EVP_R_EXPECTING_A_EC_KEY 142 -# define EVP_R_EXPECTING_A_POLY1305_KEY 164 -# define EVP_R_EXPECTING_A_SIPHASH_KEY 175 -# define EVP_R_FINAL_ERROR 188 -# define EVP_R_GENERATE_ERROR 214 -# define EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED 229 -# define EVP_R_GET_RAW_KEY_FAILED 182 -# define EVP_R_ILLEGAL_SCRYPT_PARAMETERS 171 -# define EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS 204 -# define EVP_R_INACCESSIBLE_KEY 203 -# define EVP_R_INITIALIZATION_ERROR 134 -# define EVP_R_INPUT_NOT_INITIALIZED 111 -# define EVP_R_INVALID_CUSTOM_LENGTH 185 -# define EVP_R_INVALID_DIGEST 152 -# define EVP_R_INVALID_IV_LENGTH 194 -# define EVP_R_INVALID_KEY 163 -# define EVP_R_INVALID_KEY_LENGTH 130 -# define EVP_R_INVALID_LENGTH 221 -# define EVP_R_INVALID_NULL_ALGORITHM 218 -# define EVP_R_INVALID_OPERATION 148 -# define EVP_R_INVALID_PROVIDER_FUNCTIONS 193 -# define EVP_R_INVALID_SALT_LENGTH 186 -# define EVP_R_INVALID_SECRET_LENGTH 223 -# define EVP_R_INVALID_SEED_LENGTH 220 -# define EVP_R_INVALID_VALUE 222 -# define EVP_R_KEYMGMT_EXPORT_FAILURE 205 -# define EVP_R_KEY_SETUP_FAILED 180 -# define EVP_R_LOCKING_NOT_SUPPORTED 213 -# define EVP_R_MEMORY_LIMIT_EXCEEDED 172 -# define EVP_R_MESSAGE_DIGEST_IS_NULL 159 -# define EVP_R_METHOD_NOT_SUPPORTED 144 -# define EVP_R_MISSING_PARAMETERS 103 -# define EVP_R_NOT_ABLE_TO_COPY_CTX 190 -# define EVP_R_NOT_XOF_OR_INVALID_LENGTH 178 -# define EVP_R_NO_CIPHER_SET 131 -# define EVP_R_NO_DEFAULT_DIGEST 158 -# define EVP_R_NO_DIGEST_SET 139 -# define EVP_R_NO_IMPORT_FUNCTION 206 -# define EVP_R_NO_KEYMGMT_AVAILABLE 199 -# define EVP_R_NO_KEYMGMT_PRESENT 196 -# define EVP_R_NO_KEY_SET 154 -# define EVP_R_NO_OPERATION_SET 149 -# define EVP_R_NULL_MAC_PKEY_CTX 208 -# define EVP_R_ONLY_ONESHOT_SUPPORTED 177 -# define EVP_R_OPERATION_NOT_INITIALIZED 151 -# define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 150 -# define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE 226 -# define EVP_R_OUTPUT_WOULD_OVERFLOW 202 -# define EVP_R_PARAMETER_TOO_LARGE 187 -# define EVP_R_PARTIALLY_OVERLAPPING 162 -# define EVP_R_PBKDF2_ERROR 181 -# define EVP_R_PIPELINE_NOT_SUPPORTED 230 -# define EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED 179 -# define EVP_R_PRIVATE_KEY_DECODE_ERROR 145 -# define EVP_R_PRIVATE_KEY_ENCODE_ERROR 146 -# define EVP_R_PROVIDER_ASYM_CIPHER_FAILURE 232 -# define EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED 235 -# define EVP_R_PROVIDER_KEYMGMT_FAILURE 233 -# define EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED 236 -# define EVP_R_PROVIDER_SIGNATURE_FAILURE 234 -# define EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED 237 -# define EVP_R_PUBLIC_KEY_NOT_RSA 106 -# define EVP_R_SETTING_XOF_FAILED 227 -# define EVP_R_SET_DEFAULT_PROPERTY_FAILURE 209 -# define EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE 228 -# define EVP_R_TOO_MANY_PIPES 231 -# define EVP_R_TOO_MANY_RECORDS 183 -# define EVP_R_UNABLE_TO_ENABLE_LOCKING 212 -# define EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE 215 -# define EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH 216 -# define EVP_R_UNABLE_TO_LOCK_CONTEXT 211 -# define EVP_R_UNABLE_TO_SET_CALLBACKS 217 -# define EVP_R_UNKNOWN_BITS 166 -# define EVP_R_UNKNOWN_CIPHER 160 -# define EVP_R_UNKNOWN_DIGEST 161 -# define EVP_R_UNKNOWN_KEY_TYPE 207 -# define EVP_R_UNKNOWN_MAX_SIZE 167 -# define EVP_R_UNKNOWN_OPTION 169 -# define EVP_R_UNKNOWN_PBE_ALGORITHM 121 -# define EVP_R_UNKNOWN_SECURITY_BITS 168 -# define EVP_R_UNSUPPORTED_ALGORITHM 156 -# define EVP_R_UNSUPPORTED_CIPHER 107 -# define EVP_R_UNSUPPORTED_KEYLENGTH 123 -# define EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION 124 -# define EVP_R_UNSUPPORTED_KEY_SIZE 108 -# define EVP_R_UNSUPPORTED_KEY_TYPE 224 -# define EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS 135 -# define EVP_R_UNSUPPORTED_PRF 125 -# define EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM 118 -# define EVP_R_UNSUPPORTED_SALT_TYPE 126 -# define EVP_R_UPDATE_ERROR 189 -# define EVP_R_WRAP_MODE_NOT_ALLOWED 170 -# define EVP_R_WRONG_FINAL_BLOCK_LENGTH 109 -# define EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE 191 -# define EVP_R_XTS_DUPLICATED_KEYS 192 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/fips_names.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/fips_names.h deleted file mode 100644 index fa481fc..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/fips_names.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2019-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_FIPS_NAMES_H -# define OPENSSL_FIPS_NAMES_H -# pragma once - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * Parameter names that the FIPS Provider defines - * All parameters are of type: OSSL_PARAM_UTF8_STRING - */ - -/* The following 4 Parameters are used for FIPS Self Testing */ - -/* The calculated MAC of the module file */ -# define OSSL_PROV_FIPS_PARAM_MODULE_MAC "module-mac" -/* The Version number for the fips install process */ -# define OSSL_PROV_FIPS_PARAM_INSTALL_VERSION "install-version" -/* The calculated MAC of the install status indicator */ -# define OSSL_PROV_FIPS_PARAM_INSTALL_MAC "install-mac" -/* The install status indicator */ -# define OSSL_PROV_FIPS_PARAM_INSTALL_STATUS "install-status" - -/* - * A boolean that determines if the FIPS conditional test errors result in - * the module entering an error state. - * Type: OSSL_PARAM_UTF8_STRING - */ -# define OSSL_PROV_FIPS_PARAM_CONDITIONAL_ERRORS "conditional-errors" - -/* The following are provided for backwards compatibility */ -# define OSSL_PROV_FIPS_PARAM_SECURITY_CHECKS OSSL_PROV_PARAM_SECURITY_CHECKS -# define OSSL_PROV_FIPS_PARAM_TLS1_PRF_EMS_CHECK OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK -# define OSSL_PROV_FIPS_PARAM_DRBG_TRUNC_DIGEST OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST - -# ifdef __cplusplus -} -# endif - -#endif /* OPENSSL_FIPS_NAMES_H */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/fipskey.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/fipskey.h deleted file mode 100644 index 1c8d1cb..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/fipskey.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\fipskey.h.in - * - * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_FIPSKEY_H -# define OPENSSL_FIPSKEY_H -# pragma once - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * The FIPS validation HMAC key, usable as an array initializer. - */ -#define FIPS_KEY_ELEMENTS \ - 0xf4, 0x55, 0x66, 0x50, 0xac, 0x31, 0xd3, 0x54, 0x61, 0x61, 0x0b, 0xac, 0x4e, 0xd8, 0x1b, 0x1a, 0x18, 0x1b, 0x2d, 0x8a, 0x43, 0xea, 0x28, 0x54, 0xcb, 0xae, 0x22, 0xca, 0x74, 0x56, 0x08, 0x13 - -/* - * The FIPS validation key, as a string. - */ -#define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" - -/* - * The FIPS provider vendor name, as a string. - */ -#define FIPS_VENDOR "OpenSSL non-compliant FIPS Provider" - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/hmac.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/hmac.h deleted file mode 100644 index f9e1bff..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/hmac.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_HMAC_H -# define OPENSSL_HMAC_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_HMAC_H -# endif - -# include - -# include - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HMAC_MAX_MD_CBLOCK 200 /* Deprecated */ -# endif - -# ifdef __cplusplus -extern "C" { -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 size_t HMAC_size(const HMAC_CTX *e); -OSSL_DEPRECATEDIN_3_0 HMAC_CTX *HMAC_CTX_new(void); -OSSL_DEPRECATEDIN_3_0 int HMAC_CTX_reset(HMAC_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 void HMAC_CTX_free(HMAC_CTX *ctx); -# endif -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 __owur int HMAC_Init(HMAC_CTX *ctx, - const void *key, int len, - const EVP_MD *md); -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, - const EVP_MD *md, ENGINE *impl); -OSSL_DEPRECATEDIN_3_0 int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, - size_t len); -OSSL_DEPRECATEDIN_3_0 int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, - unsigned int *len); -OSSL_DEPRECATEDIN_3_0 __owur int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx); -OSSL_DEPRECATEDIN_3_0 void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags); -OSSL_DEPRECATEDIN_3_0 const EVP_MD *HMAC_CTX_get_md(const HMAC_CTX *ctx); -# endif - -unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len, - const unsigned char *data, size_t data_len, - unsigned char *md, unsigned int *md_len); - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/hpke.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/hpke.h deleted file mode 100644 index 482acd2..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/hpke.h +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* APIs and data structures for HPKE (RFC9180) */ -#ifndef OSSL_HPKE_H -# define OSSL_HPKE_H -# pragma once - -# include - -/* HPKE modes */ -# define OSSL_HPKE_MODE_BASE 0 /* Base mode */ -# define OSSL_HPKE_MODE_PSK 1 /* Pre-shared key mode */ -# define OSSL_HPKE_MODE_AUTH 2 /* Authenticated mode */ -# define OSSL_HPKE_MODE_PSKAUTH 3 /* PSK+authenticated mode */ - -/* - * Max for ikm, psk, pskid, info and exporter contexts. - * RFC9180, section 7.2.1 RECOMMENDS 64 octets but we have test vectors from - * Appendix A.6.1 with a 66 octet IKM so we'll allow that. - */ -# define OSSL_HPKE_MAX_PARMLEN 66 -# define OSSL_HPKE_MIN_PSKLEN 32 -# define OSSL_HPKE_MAX_INFOLEN 1024 - -/* - * The (16bit) HPKE algorithm ID IANA codepoints - * If/when new IANA codepoints are added there are tables in - * crypto/hpke/hpke_util.c that must also be updated. - */ -# define OSSL_HPKE_KEM_ID_RESERVED 0x0000 /* not used */ -# define OSSL_HPKE_KEM_ID_P256 0x0010 /* NIST P-256 */ -# define OSSL_HPKE_KEM_ID_P384 0x0011 /* NIST P-384 */ -# define OSSL_HPKE_KEM_ID_P521 0x0012 /* NIST P-521 */ -# define OSSL_HPKE_KEM_ID_X25519 0x0020 /* Curve25519 */ -# define OSSL_HPKE_KEM_ID_X448 0x0021 /* Curve448 */ - -# define OSSL_HPKE_KDF_ID_RESERVED 0x0000 /* not used */ -# define OSSL_HPKE_KDF_ID_HKDF_SHA256 0x0001 /* HKDF-SHA256 */ -# define OSSL_HPKE_KDF_ID_HKDF_SHA384 0x0002 /* HKDF-SHA384 */ -# define OSSL_HPKE_KDF_ID_HKDF_SHA512 0x0003 /* HKDF-SHA512 */ - -# define OSSL_HPKE_AEAD_ID_RESERVED 0x0000 /* not used */ -# define OSSL_HPKE_AEAD_ID_AES_GCM_128 0x0001 /* AES-GCM-128 */ -# define OSSL_HPKE_AEAD_ID_AES_GCM_256 0x0002 /* AES-GCM-256 */ -# define OSSL_HPKE_AEAD_ID_CHACHA_POLY1305 0x0003 /* Chacha20-Poly1305 */ -# define OSSL_HPKE_AEAD_ID_EXPORTONLY 0xFFFF /* export-only fake ID */ - -/* strings for suite components */ -# define OSSL_HPKE_KEMSTR_P256 "P-256" /* KEM id 0x10 */ -# define OSSL_HPKE_KEMSTR_P384 "P-384" /* KEM id 0x11 */ -# define OSSL_HPKE_KEMSTR_P521 "P-521" /* KEM id 0x12 */ -# define OSSL_HPKE_KEMSTR_X25519 "X25519" /* KEM id 0x20 */ -# define OSSL_HPKE_KEMSTR_X448 "X448" /* KEM id 0x21 */ -# define OSSL_HPKE_KDFSTR_256 "hkdf-sha256" /* KDF id 1 */ -# define OSSL_HPKE_KDFSTR_384 "hkdf-sha384" /* KDF id 2 */ -# define OSSL_HPKE_KDFSTR_512 "hkdf-sha512" /* KDF id 3 */ -# define OSSL_HPKE_AEADSTR_AES128GCM "aes-128-gcm" /* AEAD id 1 */ -# define OSSL_HPKE_AEADSTR_AES256GCM "aes-256-gcm" /* AEAD id 2 */ -# define OSSL_HPKE_AEADSTR_CP "chacha20-poly1305" /* AEAD id 3 */ -# define OSSL_HPKE_AEADSTR_EXP "exporter" /* AEAD id 0xff */ - -/* - * Roles for use in creating an OSSL_HPKE_CTX, most - * important use of this is to control nonce reuse. - */ -# define OSSL_HPKE_ROLE_SENDER 0 -# define OSSL_HPKE_ROLE_RECEIVER 1 - -# ifdef __cplusplus -extern "C" { -# endif - -typedef struct { - uint16_t kem_id; /* Key Encapsulation Method id */ - uint16_t kdf_id; /* Key Derivation Function id */ - uint16_t aead_id; /* AEAD alg id */ -} OSSL_HPKE_SUITE; - -/** - * Suite constants, use this like: - * OSSL_HPKE_SUITE myvar = OSSL_HPKE_SUITE_DEFAULT; - */ -# ifndef OPENSSL_NO_ECX -# define OSSL_HPKE_SUITE_DEFAULT \ - {\ - OSSL_HPKE_KEM_ID_X25519, \ - OSSL_HPKE_KDF_ID_HKDF_SHA256, \ - OSSL_HPKE_AEAD_ID_AES_GCM_128 \ - } -# else -# define OSSL_HPKE_SUITE_DEFAULT \ - {\ - OSSL_HPKE_KEM_ID_P256, \ - OSSL_HPKE_KDF_ID_HKDF_SHA256, \ - OSSL_HPKE_AEAD_ID_AES_GCM_128 \ - } -#endif - -typedef struct ossl_hpke_ctx_st OSSL_HPKE_CTX; - -OSSL_HPKE_CTX *OSSL_HPKE_CTX_new(int mode, OSSL_HPKE_SUITE suite, int role, - OSSL_LIB_CTX *libctx, const char *propq); -void OSSL_HPKE_CTX_free(OSSL_HPKE_CTX *ctx); - -int OSSL_HPKE_encap(OSSL_HPKE_CTX *ctx, - unsigned char *enc, size_t *enclen, - const unsigned char *pub, size_t publen, - const unsigned char *info, size_t infolen); -int OSSL_HPKE_seal(OSSL_HPKE_CTX *ctx, - unsigned char *ct, size_t *ctlen, - const unsigned char *aad, size_t aadlen, - const unsigned char *pt, size_t ptlen); - -int OSSL_HPKE_keygen(OSSL_HPKE_SUITE suite, - unsigned char *pub, size_t *publen, EVP_PKEY **priv, - const unsigned char *ikm, size_t ikmlen, - OSSL_LIB_CTX *libctx, const char *propq); -int OSSL_HPKE_decap(OSSL_HPKE_CTX *ctx, - const unsigned char *enc, size_t enclen, - EVP_PKEY *recippriv, - const unsigned char *info, size_t infolen); -int OSSL_HPKE_open(OSSL_HPKE_CTX *ctx, - unsigned char *pt, size_t *ptlen, - const unsigned char *aad, size_t aadlen, - const unsigned char *ct, size_t ctlen); - -int OSSL_HPKE_export(OSSL_HPKE_CTX *ctx, - unsigned char *secret, - size_t secretlen, - const unsigned char *label, - size_t labellen); - -int OSSL_HPKE_CTX_set1_authpriv(OSSL_HPKE_CTX *ctx, EVP_PKEY *priv); -int OSSL_HPKE_CTX_set1_authpub(OSSL_HPKE_CTX *ctx, - const unsigned char *pub, - size_t publen); -int OSSL_HPKE_CTX_set1_psk(OSSL_HPKE_CTX *ctx, - const char *pskid, - const unsigned char *psk, size_t psklen); - -int OSSL_HPKE_CTX_set1_ikme(OSSL_HPKE_CTX *ctx, - const unsigned char *ikme, size_t ikmelen); - -int OSSL_HPKE_CTX_set_seq(OSSL_HPKE_CTX *ctx, uint64_t seq); -int OSSL_HPKE_CTX_get_seq(OSSL_HPKE_CTX *ctx, uint64_t *seq); - -int OSSL_HPKE_suite_check(OSSL_HPKE_SUITE suite); -int OSSL_HPKE_get_grease_value(const OSSL_HPKE_SUITE *suite_in, - OSSL_HPKE_SUITE *suite, - unsigned char *enc, size_t *enclen, - unsigned char *ct, size_t ctlen, - OSSL_LIB_CTX *libctx, const char *propq); -int OSSL_HPKE_str2suite(const char *str, OSSL_HPKE_SUITE *suite); -size_t OSSL_HPKE_get_ciphertext_size(OSSL_HPKE_SUITE suite, size_t clearlen); -size_t OSSL_HPKE_get_public_encap_size(OSSL_HPKE_SUITE suite); -size_t OSSL_HPKE_get_recommended_ikmelen(OSSL_HPKE_SUITE suite); - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/http.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/http.h deleted file mode 100644 index d7aa570..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/http.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright 2000-2025 The OpenSSL Project Authors. All Rights Reserved. - * Copyright Siemens AG 2018-2020 - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_HTTP_H -# define OPENSSL_HTTP_H -# pragma once - -# include - -# include -# include -# include - - -# ifdef __cplusplus -extern "C" { -# endif - -# define OSSL_HTTP_NAME "http" -# define OSSL_HTTPS_NAME "https" -# define OSSL_HTTP_PREFIX OSSL_HTTP_NAME"://" -# define OSSL_HTTPS_PREFIX OSSL_HTTPS_NAME"://" -# define OSSL_HTTP_PORT "80" -# define OSSL_HTTPS_PORT "443" -# define OPENSSL_NO_PROXY "NO_PROXY" -# define OPENSSL_HTTP_PROXY "HTTP_PROXY" -# define OPENSSL_HTTPS_PROXY "HTTPS_PROXY" - -/* We want to have this even in case of OPENSSL_NO_HTTP */ -int OSSL_parse_url(const char *url, char **pscheme, char **puser, char **phost, - char **pport, int *pport_num, - char **ppath, char **pquery, char **pfrag); - -# ifndef OPENSSL_NO_HTTP - -# define OSSL_HTTP_DEFAULT_MAX_LINE_LEN (4 * 1024) -# define OSSL_HTTP_DEFAULT_MAX_RESP_LEN (100 * 1024) -# define OSSL_HTTP_DEFAULT_MAX_CRL_LEN (32 * 1024 * 1024) -# define OSSL_HTTP_DEFAULT_MAX_RESP_HDR_LINES 256 - - -/* Low-level HTTP API */ -OSSL_HTTP_REQ_CTX *OSSL_HTTP_REQ_CTX_new(BIO *wbio, BIO *rbio, int buf_size); -void OSSL_HTTP_REQ_CTX_free(OSSL_HTTP_REQ_CTX *rctx); -int OSSL_HTTP_REQ_CTX_set_request_line(OSSL_HTTP_REQ_CTX *rctx, int method_POST, - const char *server, const char *port, - const char *path); -int OSSL_HTTP_REQ_CTX_add1_header(OSSL_HTTP_REQ_CTX *rctx, - const char *name, const char *value); -int OSSL_HTTP_REQ_CTX_set_expected(OSSL_HTTP_REQ_CTX *rctx, - const char *content_type, int asn1, - int timeout, int keep_alive); -int OSSL_HTTP_REQ_CTX_set1_req(OSSL_HTTP_REQ_CTX *rctx, const char *content_type, - const ASN1_ITEM *it, const ASN1_VALUE *req); -int OSSL_HTTP_REQ_CTX_nbio(OSSL_HTTP_REQ_CTX *rctx); -int OSSL_HTTP_REQ_CTX_nbio_d2i(OSSL_HTTP_REQ_CTX *rctx, - ASN1_VALUE **pval, const ASN1_ITEM *it); -BIO *OSSL_HTTP_REQ_CTX_exchange(OSSL_HTTP_REQ_CTX *rctx); -BIO *OSSL_HTTP_REQ_CTX_get0_mem_bio(const OSSL_HTTP_REQ_CTX *rctx); -size_t OSSL_HTTP_REQ_CTX_get_resp_len(const OSSL_HTTP_REQ_CTX *rctx); -void OSSL_HTTP_REQ_CTX_set_max_response_length(OSSL_HTTP_REQ_CTX *rctx, - unsigned long len); -void OSSL_HTTP_REQ_CTX_set_max_response_hdr_lines(OSSL_HTTP_REQ_CTX *rctx, - size_t count); -int OSSL_HTTP_is_alive(const OSSL_HTTP_REQ_CTX *rctx); - -/* High-level HTTP API */ -typedef BIO *(*OSSL_HTTP_bio_cb_t)(BIO *bio, void *arg, int connect, int detail); -OSSL_HTTP_REQ_CTX *OSSL_HTTP_open(const char *server, const char *port, - const char *proxy, const char *no_proxy, - int use_ssl, BIO *bio, BIO *rbio, - OSSL_HTTP_bio_cb_t bio_update_fn, void *arg, - int buf_size, int overall_timeout); -int OSSL_HTTP_proxy_connect(BIO *bio, const char *server, const char *port, - const char *proxyuser, const char *proxypass, - int timeout, BIO *bio_err, const char *prog); -int OSSL_HTTP_set1_request(OSSL_HTTP_REQ_CTX *rctx, const char *path, - const STACK_OF(CONF_VALUE) *headers, - const char *content_type, BIO *req, - const char *expected_content_type, int expect_asn1, - size_t max_resp_len, int timeout, int keep_alive); -BIO *OSSL_HTTP_exchange(OSSL_HTTP_REQ_CTX *rctx, char **redirection_url); -BIO *OSSL_HTTP_get(const char *url, const char *proxy, const char *no_proxy, - BIO *bio, BIO *rbio, - OSSL_HTTP_bio_cb_t bio_update_fn, void *arg, - int buf_size, const STACK_OF(CONF_VALUE) *headers, - const char *expected_content_type, int expect_asn1, - size_t max_resp_len, int timeout); -BIO *OSSL_HTTP_transfer(OSSL_HTTP_REQ_CTX **prctx, - const char *server, const char *port, - const char *path, int use_ssl, - const char *proxy, const char *no_proxy, - BIO *bio, BIO *rbio, - OSSL_HTTP_bio_cb_t bio_update_fn, void *arg, - int buf_size, const STACK_OF(CONF_VALUE) *headers, - const char *content_type, BIO *req, - const char *expected_content_type, int expect_asn1, - size_t max_resp_len, int timeout, int keep_alive); -int OSSL_HTTP_close(OSSL_HTTP_REQ_CTX *rctx, int ok); - -/* Auxiliary functions */ -int OSSL_HTTP_parse_url(const char *url, int *pssl, char **puser, char **phost, - char **pport, int *pport_num, - char **ppath, char **pquery, char **pfrag); -const char *OSSL_HTTP_adapt_proxy(const char *proxy, const char *no_proxy, - const char *server, int use_ssl); - -# endif /* !defined(OPENSSL_NO_HTTP) */ -# ifdef __cplusplus -} -# endif -#endif /* !defined(OPENSSL_HTTP_H) */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/httperr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/httperr.h deleted file mode 100644 index ae7f00c..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/httperr.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_HTTPERR_H -# define OPENSSL_HTTPERR_H -# pragma once - -# include -# include -# include - - - -/* - * HTTP reason codes. - */ -# define HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN 108 -# define HTTP_R_CONNECT_FAILURE 100 -# define HTTP_R_ERROR_PARSING_ASN1_LENGTH 109 -# define HTTP_R_ERROR_PARSING_CONTENT_LENGTH 119 -# define HTTP_R_ERROR_PARSING_URL 101 -# define HTTP_R_ERROR_RECEIVING 103 -# define HTTP_R_ERROR_SENDING 102 -# define HTTP_R_FAILED_READING_DATA 128 -# define HTTP_R_HEADER_PARSE_ERROR 126 -# define HTTP_R_INCONSISTENT_CONTENT_LENGTH 120 -# define HTTP_R_INVALID_PORT_NUMBER 123 -# define HTTP_R_INVALID_URL_PATH 125 -# define HTTP_R_INVALID_URL_SCHEME 124 -# define HTTP_R_MAX_RESP_LEN_EXCEEDED 117 -# define HTTP_R_MISSING_ASN1_ENCODING 110 -# define HTTP_R_MISSING_CONTENT_TYPE 121 -# define HTTP_R_MISSING_REDIRECT_LOCATION 111 -# define HTTP_R_RECEIVED_ERROR 105 -# define HTTP_R_RECEIVED_WRONG_HTTP_VERSION 106 -# define HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP 112 -# define HTTP_R_REDIRECTION_NOT_ENABLED 116 -# define HTTP_R_RESPONSE_LINE_TOO_LONG 113 -# define HTTP_R_RESPONSE_PARSE_ERROR 104 -# define HTTP_R_RESPONSE_TOO_MANY_HDRLINES 130 -# define HTTP_R_RETRY_TIMEOUT 129 -# define HTTP_R_SERVER_CANCELED_CONNECTION 127 -# define HTTP_R_SOCK_NOT_SUPPORTED 122 -# define HTTP_R_STATUS_CODE_UNSUPPORTED 114 -# define HTTP_R_TLS_NOT_ENABLED 107 -# define HTTP_R_TOO_MANY_REDIRECTIONS 115 -# define HTTP_R_UNEXPECTED_CONTENT_TYPE 118 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/idea.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/idea.h deleted file mode 100644 index 1f9bb3b..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/idea.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_IDEA_H -# define OPENSSL_IDEA_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_IDEA_H -# endif - -# include - -# ifndef OPENSSL_NO_IDEA -# ifdef __cplusplus -extern "C" { -# endif - -# define IDEA_BLOCK 8 -# define IDEA_KEY_LENGTH 16 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 - -typedef unsigned int IDEA_INT; - -# define IDEA_ENCRYPT 1 -# define IDEA_DECRYPT 0 - -typedef struct idea_key_st { - IDEA_INT data[9][6]; -} IDEA_KEY_SCHEDULE; -#endif -#ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 const char *IDEA_options(void); -OSSL_DEPRECATEDIN_3_0 void IDEA_ecb_encrypt(const unsigned char *in, - unsigned char *out, - IDEA_KEY_SCHEDULE *ks); -OSSL_DEPRECATEDIN_3_0 void IDEA_set_encrypt_key(const unsigned char *key, - IDEA_KEY_SCHEDULE *ks); -OSSL_DEPRECATEDIN_3_0 void IDEA_set_decrypt_key(IDEA_KEY_SCHEDULE *ek, - IDEA_KEY_SCHEDULE *dk); -OSSL_DEPRECATEDIN_3_0 void IDEA_cbc_encrypt(const unsigned char *in, - unsigned char *out, long length, - IDEA_KEY_SCHEDULE *ks, - unsigned char *iv, int enc); -OSSL_DEPRECATEDIN_3_0 void IDEA_cfb64_encrypt(const unsigned char *in, - unsigned char *out, long length, - IDEA_KEY_SCHEDULE *ks, - unsigned char *iv, int *num, - int enc); -OSSL_DEPRECATEDIN_3_0 void IDEA_ofb64_encrypt(const unsigned char *in, - unsigned char *out, long length, - IDEA_KEY_SCHEDULE *ks, - unsigned char *iv, int *num); -OSSL_DEPRECATEDIN_3_0 void IDEA_encrypt(unsigned long *in, - IDEA_KEY_SCHEDULE *ks); -#endif - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define idea_options IDEA_options -# define idea_ecb_encrypt IDEA_ecb_encrypt -# define idea_set_encrypt_key IDEA_set_encrypt_key -# define idea_set_decrypt_key IDEA_set_decrypt_key -# define idea_cbc_encrypt IDEA_cbc_encrypt -# define idea_cfb64_encrypt IDEA_cfb64_encrypt -# define idea_ofb64_encrypt IDEA_ofb64_encrypt -# define idea_encrypt IDEA_encrypt -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/indicator.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/indicator.h deleted file mode 100644 index 3ea0122..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/indicator.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_INDICATOR_H -# define OPENSSL_INDICATOR_H -# pragma once - -# ifdef __cplusplus -extern "C" { -# endif - -#include - -typedef int (OSSL_INDICATOR_CALLBACK)(const char *type, const char *desc, - const OSSL_PARAM params[]); - -void OSSL_INDICATOR_set_callback(OSSL_LIB_CTX *libctx, - OSSL_INDICATOR_CALLBACK *cb); -void OSSL_INDICATOR_get_callback(OSSL_LIB_CTX *libctx, - OSSL_INDICATOR_CALLBACK **cb); - -# ifdef __cplusplus -} -# endif -#endif /* OPENSSL_INDICATOR_H */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/kdf.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/kdf.h deleted file mode 100644 index 42d68f7..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/kdf.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright 2016-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_KDF_H -# define OPENSSL_KDF_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_KDF_H -# endif - -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -int EVP_KDF_up_ref(EVP_KDF *kdf); -void EVP_KDF_free(EVP_KDF *kdf); -EVP_KDF *EVP_KDF_fetch(OSSL_LIB_CTX *libctx, const char *algorithm, - const char *properties); - -EVP_KDF_CTX *EVP_KDF_CTX_new(EVP_KDF *kdf); -void EVP_KDF_CTX_free(EVP_KDF_CTX *ctx); -EVP_KDF_CTX *EVP_KDF_CTX_dup(const EVP_KDF_CTX *src); -const char *EVP_KDF_get0_description(const EVP_KDF *kdf); -int EVP_KDF_is_a(const EVP_KDF *kdf, const char *name); -const char *EVP_KDF_get0_name(const EVP_KDF *kdf); -const OSSL_PROVIDER *EVP_KDF_get0_provider(const EVP_KDF *kdf); -const EVP_KDF *EVP_KDF_CTX_kdf(EVP_KDF_CTX *ctx); - -void EVP_KDF_CTX_reset(EVP_KDF_CTX *ctx); -size_t EVP_KDF_CTX_get_kdf_size(EVP_KDF_CTX *ctx); -int EVP_KDF_derive(EVP_KDF_CTX *ctx, unsigned char *key, size_t keylen, - const OSSL_PARAM params[]); -int EVP_KDF_CTX_set_SKEY(EVP_KDF_CTX *ctx, EVP_SKEY *key, const char *paramname); -EVP_SKEY *EVP_KDF_derive_SKEY(EVP_KDF_CTX *ctx, EVP_SKEYMGMT *mgmt, - const char *key_type, const char *propquery, - size_t keylen, const OSSL_PARAM params[]); -int EVP_KDF_get_params(EVP_KDF *kdf, OSSL_PARAM params[]); -int EVP_KDF_CTX_get_params(EVP_KDF_CTX *ctx, OSSL_PARAM params[]); -int EVP_KDF_CTX_set_params(EVP_KDF_CTX *ctx, const OSSL_PARAM params[]); -const OSSL_PARAM *EVP_KDF_gettable_params(const EVP_KDF *kdf); -const OSSL_PARAM *EVP_KDF_gettable_ctx_params(const EVP_KDF *kdf); -const OSSL_PARAM *EVP_KDF_settable_ctx_params(const EVP_KDF *kdf); -const OSSL_PARAM *EVP_KDF_CTX_gettable_params(EVP_KDF_CTX *ctx); -const OSSL_PARAM *EVP_KDF_CTX_settable_params(EVP_KDF_CTX *ctx); - -void EVP_KDF_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_KDF *kdf, void *arg), - void *arg); -int EVP_KDF_names_do_all(const EVP_KDF *kdf, - void (*fn)(const char *name, void *data), - void *data); - -# define EVP_KDF_HKDF_MODE_EXTRACT_AND_EXPAND 0 -# define EVP_KDF_HKDF_MODE_EXTRACT_ONLY 1 -# define EVP_KDF_HKDF_MODE_EXPAND_ONLY 2 - -#define EVP_KDF_SSHKDF_TYPE_INITIAL_IV_CLI_TO_SRV 65 -#define EVP_KDF_SSHKDF_TYPE_INITIAL_IV_SRV_TO_CLI 66 -#define EVP_KDF_SSHKDF_TYPE_ENCRYPTION_KEY_CLI_TO_SRV 67 -#define EVP_KDF_SSHKDF_TYPE_ENCRYPTION_KEY_SRV_TO_CLI 68 -#define EVP_KDF_SSHKDF_TYPE_INTEGRITY_KEY_CLI_TO_SRV 69 -#define EVP_KDF_SSHKDF_TYPE_INTEGRITY_KEY_SRV_TO_CLI 70 - -/**** The legacy PKEY-based KDF API follows. ****/ - -# define EVP_PKEY_CTRL_TLS_MD (EVP_PKEY_ALG_CTRL) -# define EVP_PKEY_CTRL_TLS_SECRET (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_TLS_SEED (EVP_PKEY_ALG_CTRL + 2) -# define EVP_PKEY_CTRL_HKDF_MD (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_HKDF_SALT (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_HKDF_KEY (EVP_PKEY_ALG_CTRL + 5) -# define EVP_PKEY_CTRL_HKDF_INFO (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_HKDF_MODE (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_PASS (EVP_PKEY_ALG_CTRL + 8) -# define EVP_PKEY_CTRL_SCRYPT_SALT (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_SCRYPT_N (EVP_PKEY_ALG_CTRL + 10) -# define EVP_PKEY_CTRL_SCRYPT_R (EVP_PKEY_ALG_CTRL + 11) -# define EVP_PKEY_CTRL_SCRYPT_P (EVP_PKEY_ALG_CTRL + 12) -# define EVP_PKEY_CTRL_SCRYPT_MAXMEM_BYTES (EVP_PKEY_ALG_CTRL + 13) - -# define EVP_PKEY_HKDEF_MODE_EXTRACT_AND_EXPAND \ - EVP_KDF_HKDF_MODE_EXTRACT_AND_EXPAND -# define EVP_PKEY_HKDEF_MODE_EXTRACT_ONLY \ - EVP_KDF_HKDF_MODE_EXTRACT_ONLY -# define EVP_PKEY_HKDEF_MODE_EXPAND_ONLY \ - EVP_KDF_HKDF_MODE_EXPAND_ONLY - -int EVP_PKEY_CTX_set_tls1_prf_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); - -int EVP_PKEY_CTX_set1_tls1_prf_secret(EVP_PKEY_CTX *pctx, - const unsigned char *sec, int seclen); - -int EVP_PKEY_CTX_add1_tls1_prf_seed(EVP_PKEY_CTX *pctx, - const unsigned char *seed, int seedlen); - -int EVP_PKEY_CTX_set_hkdf_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); - -int EVP_PKEY_CTX_set1_hkdf_salt(EVP_PKEY_CTX *ctx, - const unsigned char *salt, int saltlen); - -int EVP_PKEY_CTX_set1_hkdf_key(EVP_PKEY_CTX *ctx, - const unsigned char *key, int keylen); - -int EVP_PKEY_CTX_add1_hkdf_info(EVP_PKEY_CTX *ctx, - const unsigned char *info, int infolen); - -int EVP_PKEY_CTX_set_hkdf_mode(EVP_PKEY_CTX *ctx, int mode); -# define EVP_PKEY_CTX_hkdf_mode EVP_PKEY_CTX_set_hkdf_mode - -int EVP_PKEY_CTX_set1_pbe_pass(EVP_PKEY_CTX *ctx, const char *pass, - int passlen); - -int EVP_PKEY_CTX_set1_scrypt_salt(EVP_PKEY_CTX *ctx, - const unsigned char *salt, int saltlen); - -int EVP_PKEY_CTX_set_scrypt_N(EVP_PKEY_CTX *ctx, uint64_t n); - -int EVP_PKEY_CTX_set_scrypt_r(EVP_PKEY_CTX *ctx, uint64_t r); - -int EVP_PKEY_CTX_set_scrypt_p(EVP_PKEY_CTX *ctx, uint64_t p); - -int EVP_PKEY_CTX_set_scrypt_maxmem_bytes(EVP_PKEY_CTX *ctx, - uint64_t maxmem_bytes); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/kdferr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/kdferr.h deleted file mode 100644 index 963d766..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/kdferr.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_KDFERR_H -# define OPENSSL_KDFERR_H -# pragma once - -#include - -#endif /* !defined(OPENSSL_KDFERR_H) */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/lhash.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/lhash.h deleted file mode 100644 index 62c55b2..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/lhash.h +++ /dev/null @@ -1,398 +0,0 @@ -/* - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -/* - * Header for dynamic hash table routines Author - Eric Young - */ - -#ifndef OPENSSL_LHASH_H -# define OPENSSL_LHASH_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_LHASH_H -# endif - -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct lhash_node_st OPENSSL_LH_NODE; -typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); -typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); -typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); -typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); -typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); -typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); -typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); -typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); -typedef struct lhash_st OPENSSL_LHASH; - -/* - * Macros for declaring and implementing type-safe wrappers for LHASH - * callbacks. This way, callbacks can be provided to LHASH structures without - * function pointer casting and the macro-defined callbacks provide - * per-variable casting before deferring to the underlying type-specific - * callbacks. NB: It is possible to place a "static" in front of both the - * DECLARE and IMPLEMENT macros if the functions are strictly internal. - */ - -/* First: "hash" functions */ -# define DECLARE_LHASH_HASH_FN(name, o_type) \ - unsigned long name##_LHASH_HASH(const void *); -# define IMPLEMENT_LHASH_HASH_FN(name, o_type) \ - unsigned long name##_LHASH_HASH(const void *arg) { \ - const o_type *a = arg; \ - return name##_hash(a); } -# define LHASH_HASH_FN(name) name##_LHASH_HASH - -/* Second: "compare" functions */ -# define DECLARE_LHASH_COMP_FN(name, o_type) \ - int name##_LHASH_COMP(const void *, const void *); -# define IMPLEMENT_LHASH_COMP_FN(name, o_type) \ - int name##_LHASH_COMP(const void *arg1, const void *arg2) { \ - const o_type *a = arg1; \ - const o_type *b = arg2; \ - return name##_cmp(a,b); } -# define LHASH_COMP_FN(name) name##_LHASH_COMP - -/* Fourth: "doall_arg" functions */ -# define DECLARE_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ - void name##_LHASH_DOALL_ARG(void *, void *); -# define IMPLEMENT_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ - void name##_LHASH_DOALL_ARG(void *arg1, void *arg2) { \ - o_type *a = arg1; \ - a_type *b = arg2; \ - name##_doall_arg(a, b); } -# define LHASH_DOALL_ARG_FN(name) name##_LHASH_DOALL_ARG - - -# define LH_LOAD_MULT 256 - -int OPENSSL_LH_error(OPENSSL_LHASH *lh); -OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); -OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, - OPENSSL_LH_HASHFUNCTHUNK hw, - OPENSSL_LH_COMPFUNCTHUNK cw, - OPENSSL_LH_DOALL_FUNC_THUNK daw, - OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); -void OPENSSL_LH_free(OPENSSL_LHASH *lh); -void OPENSSL_LH_flush(OPENSSL_LHASH *lh); -void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); -void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); -void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); -void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, - OPENSSL_LH_DOALL_FUNCARG func, void *arg); -void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, - OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, - OPENSSL_LH_DOALL_FUNCARG fn, void *arg); - -unsigned long OPENSSL_LH_strhash(const char *c); -unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); -unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); -void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); - -# ifndef OPENSSL_NO_STDIO -# ifndef OPENSSL_NO_DEPRECATED_3_1 -OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); -# endif -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_1 -OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -# endif - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define _LHASH OPENSSL_LHASH -# define LHASH_NODE OPENSSL_LH_NODE -# define lh_error OPENSSL_LH_error -# define lh_new OPENSSL_LH_new -# define lh_free OPENSSL_LH_free -# define lh_insert OPENSSL_LH_insert -# define lh_delete OPENSSL_LH_delete -# define lh_retrieve OPENSSL_LH_retrieve -# define lh_doall OPENSSL_LH_doall -# define lh_doall_arg OPENSSL_LH_doall_arg -# define lh_strhash OPENSSL_LH_strhash -# define lh_num_items OPENSSL_LH_num_items -# ifndef OPENSSL_NO_STDIO -# define lh_stats OPENSSL_LH_stats -# define lh_node_stats OPENSSL_LH_node_stats -# define lh_node_usage_stats OPENSSL_LH_node_usage_stats -# endif -# define lh_stats_bio OPENSSL_LH_stats_bio -# define lh_node_stats_bio OPENSSL_LH_node_stats_bio -# define lh_node_usage_stats_bio OPENSSL_LH_node_usage_stats_bio -# endif - -/* Type checking... */ - -# define LHASH_OF(type) struct lhash_st_##type - -/* Helper macro for internal use */ -# define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { \ - union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ - }; \ - typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ - typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ - typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ - { \ - unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ - return hfn_conv((const type *)data); \ - } \ - static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ - { \ - int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ - return cfn_conv((const type *)da, (const type *)db); \ - } \ - static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ - { \ - void (*doall_conv)(type *) = (void (*)(type *))doall; \ - doall_conv((type *)node); \ - } \ - static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ - { \ - void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ - doall_conv((type *)node, arg); \ - } \ - static ossl_unused ossl_inline type *\ - ossl_check_##type##_lh_plain_type(type *ptr) \ - { \ - return ptr; \ - } \ - static ossl_unused ossl_inline const type * \ - ossl_check_const_##type##_lh_plain_type(const type *ptr) \ - { \ - return ptr; \ - } \ - static ossl_unused ossl_inline const OPENSSL_LHASH * \ - ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ - { \ - return (const OPENSSL_LHASH *)lh; \ - } \ - static ossl_unused ossl_inline OPENSSL_LHASH * \ - ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ - { \ - return (OPENSSL_LHASH *)lh; \ - } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ - ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ - { \ - return (OPENSSL_LH_COMPFUNC)cmp; \ - } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ - ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ - { \ - return (OPENSSL_LH_HASHFUNC)hfn; \ - } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ - ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ - { \ - return (OPENSSL_LH_DOALL_FUNC)dfn; \ - } \ - LHASH_OF(type) - -# ifndef OPENSSL_NO_DEPRECATED_3_1 -# define DEFINE_LHASH_OF_DEPRECATED(type) \ - static ossl_unused ossl_inline void \ - lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ - { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ - { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ - { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ - } -# else -# define DEFINE_LHASH_OF_DEPRECATED(type) -# endif - -# define DEFINE_LHASH_OF_EX(type) \ - LHASH_OF(type) { \ - union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ - }; \ - static unsigned long \ - lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ - { \ - unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ - return hfn_conv((const type *)data); \ - } \ - static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ - { \ - int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ - return cfn_conv((const type *)da, (const type *)db); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_free(LHASH_OF(type) *lh) \ - { \ - OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_flush(LHASH_OF(type) *lh) \ - { \ - OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ - } \ - static ossl_unused ossl_inline type * \ - lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ - { \ - return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ - } \ - static ossl_unused ossl_inline type * \ - lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ - { \ - return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ - } \ - static ossl_unused ossl_inline type * \ - lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ - { \ - return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ - } \ - static ossl_unused ossl_inline int \ - lh_##type##_error(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ - } \ - static ossl_unused ossl_inline unsigned long \ - lh_##type##_num_items(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ - } \ - static ossl_unused ossl_inline unsigned long \ - lh_##type##_get_down_load(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ - { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ - { \ - void (*doall_conv)(type *) = (void (*)(type *))doall; \ - doall_conv((type *)node); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ - { \ - void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ - doall_conv((type *)node, arg); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ - { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ - } \ - static ossl_unused ossl_inline LHASH_OF(type) * \ - lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ - { \ - return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ - lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ - lh_##type##_doall_thunk, \ - lh_##type##_doall_arg_thunk); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), void *arg) \ - { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ - (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ - } \ - LHASH_OF(type) - -# define DEFINE_LHASH_OF(type) \ - DEFINE_LHASH_OF_EX(type); \ - DEFINE_LHASH_OF_DEPRECATED(type) \ - LHASH_OF(type) - -#define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ - int_implement_lhash_doall(type, argtype, const type) - -#define IMPLEMENT_LHASH_DOALL_ARG(type, argtype) \ - int_implement_lhash_doall(type, argtype, type) - -#define int_implement_lhash_doall(type, argtype, cbargtype) \ - static ossl_unused ossl_inline void \ - lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ - { \ - void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ - fn_conv((cbargtype *)node, (argtype *)arg); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ - void (*fn)(cbargtype *, argtype *), \ - argtype *arg) \ - { \ - OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ - lh_##type##_doall_##argtype##_thunk, \ - (OPENSSL_LH_DOALL_FUNCARG)fn, \ - (void *)arg); \ - } \ - LHASH_OF(type) - -DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) -#define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) -#define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) -#define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) -#define lh_OPENSSL_STRING_delete(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_delete(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_const_OPENSSL_STRING_lh_plain_type(ptr))) -#define lh_OPENSSL_STRING_retrieve(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_retrieve(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_const_OPENSSL_STRING_lh_plain_type(ptr))) -#define lh_OPENSSL_STRING_error(lh) OPENSSL_LH_error(ossl_check_OPENSSL_STRING_lh_type(lh)) -#define lh_OPENSSL_STRING_num_items(lh) OPENSSL_LH_num_items(ossl_check_OPENSSL_STRING_lh_type(lh)) -#define lh_OPENSSL_STRING_node_stats_bio(lh, out) OPENSSL_LH_node_stats_bio(ossl_check_const_OPENSSL_STRING_lh_type(lh), out) -#define lh_OPENSSL_STRING_node_usage_stats_bio(lh, out) OPENSSL_LH_node_usage_stats_bio(ossl_check_const_OPENSSL_STRING_lh_type(lh), out) -#define lh_OPENSSL_STRING_stats_bio(lh, out) OPENSSL_LH_stats_bio(ossl_check_const_OPENSSL_STRING_lh_type(lh), out) -#define lh_OPENSSL_STRING_get_down_load(lh) OPENSSL_LH_get_down_load(ossl_check_OPENSSL_STRING_lh_type(lh)) -#define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) -#define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) -DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) -#define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) -#define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) -#define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) -#define lh_OPENSSL_CSTRING_delete(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_delete(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_const_OPENSSL_CSTRING_lh_plain_type(ptr))) -#define lh_OPENSSL_CSTRING_retrieve(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_retrieve(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_const_OPENSSL_CSTRING_lh_plain_type(ptr))) -#define lh_OPENSSL_CSTRING_error(lh) OPENSSL_LH_error(ossl_check_OPENSSL_CSTRING_lh_type(lh)) -#define lh_OPENSSL_CSTRING_num_items(lh) OPENSSL_LH_num_items(ossl_check_OPENSSL_CSTRING_lh_type(lh)) -#define lh_OPENSSL_CSTRING_node_stats_bio(lh, out) OPENSSL_LH_node_stats_bio(ossl_check_const_OPENSSL_CSTRING_lh_type(lh), out) -#define lh_OPENSSL_CSTRING_node_usage_stats_bio(lh, out) OPENSSL_LH_node_usage_stats_bio(ossl_check_const_OPENSSL_CSTRING_lh_type(lh), out) -#define lh_OPENSSL_CSTRING_stats_bio(lh, out) OPENSSL_LH_stats_bio(ossl_check_const_OPENSSL_CSTRING_lh_type(lh), out) -#define lh_OPENSSL_CSTRING_get_down_load(lh) OPENSSL_LH_get_down_load(ossl_check_OPENSSL_CSTRING_lh_type(lh)) -#define lh_OPENSSL_CSTRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_CSTRING_lh_type(lh), dl) -#define lh_OPENSSL_CSTRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_doallfunc_type(dfn)) - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/macros.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/macros.h deleted file mode 100644 index 1598053..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/macros.h +++ /dev/null @@ -1,361 +0,0 @@ -/* - * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_MACROS_H -# define OPENSSL_MACROS_H -# pragma once - -#include -#include - - -/* Helper macros for CPP string composition */ -# define OPENSSL_MSTR_HELPER(x) #x -# define OPENSSL_MSTR(x) OPENSSL_MSTR_HELPER(x) - -/* - * Sometimes OPENSSL_NO_xxx ends up with an empty file and some compilers - * don't like that. This will hopefully silence them. - */ -# define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; - -/* - * Generic deprecation macro - * - * If OPENSSL_SUPPRESS_DEPRECATED is defined, then OSSL_DEPRECATED and - * OSSL_DEPRECATED_FOR become no-ops - */ -# ifndef OSSL_DEPRECATED -# undef OSSL_DEPRECATED_FOR -# ifndef OPENSSL_SUPPRESS_DEPRECATED -# if defined(_MSC_VER) - /* - * MSVC supports __declspec(deprecated) since MSVC 2003 (13.10), - * and __declspec(deprecated(message)) since MSVC 2005 (14.00) - */ -# if _MSC_VER >= 1400 -# define OSSL_DEPRECATED(since) \ - __declspec(deprecated("Since OpenSSL " # since)) -# define OSSL_DEPRECATED_FOR(since, message) \ - __declspec(deprecated("Since OpenSSL " # since ";" message)) -# elif _MSC_VER >= 1310 -# define OSSL_DEPRECATED(since) __declspec(deprecated) -# define OSSL_DEPRECATED_FOR(since, message) __declspec(deprecated) -# endif -# elif defined(__GNUC__) - /* - * According to GCC documentation, deprecations with message appeared in - * GCC 4.5.0 - */ -# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) -# define OSSL_DEPRECATED(since) \ - __attribute__((deprecated("Since OpenSSL " # since))) -# define OSSL_DEPRECATED_FOR(since, message) \ - __attribute__((deprecated("Since OpenSSL " # since ";" message))) -# elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define OSSL_DEPRECATED(since) __attribute__((deprecated)) -# define OSSL_DEPRECATED_FOR(since, message) __attribute__((deprecated)) -# endif -# elif defined(__SUNPRO_C) -# if (__SUNPRO_C >= 0x5130) -# define OSSL_DEPRECATED(since) __attribute__ ((deprecated)) -# define OSSL_DEPRECATED_FOR(since, message) __attribute__ ((deprecated)) -# endif -# endif -# endif -# endif - -/* - * Still not defined? Then define no-op macros. This means these macros - * are unsuitable for use in a typedef. - */ -# ifndef OSSL_DEPRECATED -# define OSSL_DEPRECATED(since) extern -# define OSSL_DEPRECATED_FOR(since, message) extern -# endif - -/* - * Applications should use -DOPENSSL_API_COMPAT= to suppress the - * declarations of functions deprecated in or before . If this is - * undefined, the value of the macro OPENSSL_CONFIGURED_API (defined in - * ) is the default. - * - * For any version number up until version 1.1.x, is expected to be - * the calculated version number 0xMNNFFPPSL. - * For version numbers 3.0 and on, is expected to be a computation - * of the major and minor numbers in decimal using this formula: - * - * MAJOR * 10000 + MINOR * 100 - * - * So version 3.0 becomes 30000, version 3.2 becomes 30200, etc. - */ - -/* - * We use the OPENSSL_API_COMPAT value to define API level macros. These - * macros are used to enable or disable features at that API version boundary. - */ - -# ifdef OPENSSL_API_LEVEL -# error "OPENSSL_API_LEVEL must not be defined by application" -# endif - -/* - * We figure out what API level was intended by simple numeric comparison. - * The lowest old style number we recognise is 0x00908000L, so we take some - * safety margin and assume that anything below 0x00900000L is a new style - * number. This allows new versions up to and including v943.71.83. - */ -# ifdef OPENSSL_API_COMPAT -# if OPENSSL_API_COMPAT < 0x900000L -# define OPENSSL_API_LEVEL (OPENSSL_API_COMPAT) -# else -# define OPENSSL_API_LEVEL \ - (((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \ - + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \ - + ((OPENSSL_API_COMPAT >> 12) & 0xFF)) -# endif -# endif - -/* - * If OPENSSL_API_COMPAT wasn't given, we use default numbers to set - * the API compatibility level. - */ -# ifndef OPENSSL_API_LEVEL -# if OPENSSL_CONFIGURED_API > 0 -# define OPENSSL_API_LEVEL (OPENSSL_CONFIGURED_API) -# else -# define OPENSSL_API_LEVEL \ - (OPENSSL_VERSION_MAJOR * 10000 + OPENSSL_VERSION_MINOR * 100) -# endif -# endif - -# if OPENSSL_API_LEVEL > OPENSSL_CONFIGURED_API -# error "The requested API level higher than the configured API compatibility level" -# endif - -/* - * Check of sane values. - */ -/* Can't go higher than the current version. */ -# if OPENSSL_API_LEVEL > (OPENSSL_VERSION_MAJOR * 10000 + OPENSSL_VERSION_MINOR * 100) -# error "OPENSSL_API_COMPAT expresses an impossible API compatibility level" -# endif -/* OpenSSL will have no version 2.y.z */ -# if OPENSSL_API_LEVEL < 30000 && OPENSSL_API_LEVEL >= 20000 -# error "OPENSSL_API_COMPAT expresses an impossible API compatibility level" -# endif -/* Below 0.9.8 is unacceptably low */ -# if OPENSSL_API_LEVEL < 908 -# error "OPENSSL_API_COMPAT expresses an impossible API compatibility level" -# endif - -/* - * Define macros for deprecation and simulated removal purposes. - * - * The macros OSSL_DEPRECATEDIN_{major}_{minor} are always defined for - * all OpenSSL versions we care for. They can be used as attributes - * in function declarations where appropriate. - * - * The macros OPENSSL_NO_DEPRECATED_{major}_{minor} are defined for - * all OpenSSL versions up to or equal to the version given with - * OPENSSL_API_COMPAT. They are used as guards around anything that's - * deprecated up to that version, as an effect of the developer option - * 'no-deprecated'. - */ - -# undef OPENSSL_NO_DEPRECATED_3_6 -# undef OPENSSL_NO_DEPRECATED_3_4 -# undef OPENSSL_NO_DEPRECATED_3_1 -# undef OPENSSL_NO_DEPRECATED_3_0 -# undef OPENSSL_NO_DEPRECATED_1_1_1 -# undef OPENSSL_NO_DEPRECATED_1_1_0 -# undef OPENSSL_NO_DEPRECATED_1_0_2 -# undef OPENSSL_NO_DEPRECATED_1_0_1 -# undef OPENSSL_NO_DEPRECATED_1_0_0 -# undef OPENSSL_NO_DEPRECATED_0_9_8 - -# if OPENSSL_API_LEVEL >= 30600 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_3_6 OSSL_DEPRECATED(3.6) -# define OSSL_DEPRECATEDIN_3_6_FOR(msg) OSSL_DEPRECATED_FOR(3.6, msg) -# else -# define OPENSSL_NO_DEPRECATED_3_6 -# endif -# else -# define OSSL_DEPRECATEDIN_3_6 -# define OSSL_DEPRECATEDIN_3_6_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 30500 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_3_5 OSSL_DEPRECATED(3.5) -# define OSSL_DEPRECATEDIN_3_5_FOR(msg) OSSL_DEPRECATED_FOR(3.5, msg) -# else -# define OPENSSL_NO_DEPRECATED_3_5 -# endif -# else -# define OSSL_DEPRECATEDIN_3_5 -# define OSSL_DEPRECATEDIN_3_5_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 30400 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_3_4 OSSL_DEPRECATED(3.4) -# define OSSL_DEPRECATEDIN_3_4_FOR(msg) OSSL_DEPRECATED_FOR(3.4, msg) -# else -# define OPENSSL_NO_DEPRECATED_3_4 -# endif -# else -# define OSSL_DEPRECATEDIN_3_4 -# define OSSL_DEPRECATEDIN_3_4_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 30100 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_3_1 OSSL_DEPRECATED(3.1) -# define OSSL_DEPRECATEDIN_3_1_FOR(msg) OSSL_DEPRECATED_FOR(3.1, msg) -# else -# define OPENSSL_NO_DEPRECATED_3_1 -# endif -# else -# define OSSL_DEPRECATEDIN_3_1 -# define OSSL_DEPRECATEDIN_3_1_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 30000 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) -# define OSSL_DEPRECATEDIN_3_0_FOR(msg) OSSL_DEPRECATED_FOR(3.0, msg) -# else -# define OPENSSL_NO_DEPRECATED_3_0 -# endif -# else -# define OSSL_DEPRECATEDIN_3_0 -# define OSSL_DEPRECATEDIN_3_0_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 10101 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_1_1_1 OSSL_DEPRECATED(1.1.1) -# define OSSL_DEPRECATEDIN_1_1_1_FOR(msg) OSSL_DEPRECATED_FOR(1.1.1, msg) -# else -# define OPENSSL_NO_DEPRECATED_1_1_1 -# endif -# else -# define OSSL_DEPRECATEDIN_1_1_1 -# define OSSL_DEPRECATEDIN_1_1_1_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 10100 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_1_1_0 OSSL_DEPRECATED(1.1.0) -# define OSSL_DEPRECATEDIN_1_1_0_FOR(msg) OSSL_DEPRECATED_FOR(1.1.0, msg) -# else -# define OPENSSL_NO_DEPRECATED_1_1_0 -# endif -# else -# define OSSL_DEPRECATEDIN_1_1_0 -# define OSSL_DEPRECATEDIN_1_1_0_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 10002 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_1_0_2 OSSL_DEPRECATED(1.0.2) -# define OSSL_DEPRECATEDIN_1_0_2_FOR(msg) OSSL_DEPRECATED_FOR(1.0.2, msg) -# else -# define OPENSSL_NO_DEPRECATED_1_0_2 -# endif -# else -# define OSSL_DEPRECATEDIN_1_0_2 -# define OSSL_DEPRECATEDIN_1_0_2_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 10001 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_1_0_1 OSSL_DEPRECATED(1.0.1) -# define OSSL_DEPRECATEDIN_1_0_1_FOR(msg) OSSL_DEPRECATED_FOR(1.0.1, msg) -# else -# define OPENSSL_NO_DEPRECATED_1_0_1 -# endif -# else -# define OSSL_DEPRECATEDIN_1_0_1 -# define OSSL_DEPRECATEDIN_1_0_1_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 10000 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_1_0_0 OSSL_DEPRECATED(1.0.0) -# define OSSL_DEPRECATEDIN_1_0_0_FOR(msg) OSSL_DEPRECATED_FOR(1.0.0, msg) -# else -# define OPENSSL_NO_DEPRECATED_1_0_0 -# endif -# else -# define OSSL_DEPRECATEDIN_1_0_0 -# define OSSL_DEPRECATEDIN_1_0_0_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 908 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_0_9_8 OSSL_DEPRECATED(0.9.8) -# define OSSL_DEPRECATEDIN_0_9_8_FOR(msg) OSSL_DEPRECATED_FOR(0.9.8, msg) -# else -# define OPENSSL_NO_DEPRECATED_0_9_8 -# endif -# else -# define OSSL_DEPRECATEDIN_0_9_8 -# define OSSL_DEPRECATEDIN_0_9_8_FOR(msg) -# endif - -/* - * Make our own variants of __FILE__ and __LINE__, depending on configuration - */ - -# ifndef OPENSSL_FILE -# ifdef OPENSSL_NO_FILENAMES -# define OPENSSL_FILE "" -# define OPENSSL_LINE 0 -# else -# define OPENSSL_FILE __FILE__ -# define OPENSSL_LINE __LINE__ -# endif -# endif - -/* - * __func__ was standardized in C99, so for any compiler that claims - * to implement that language level or newer, we assume we can safely - * use that symbol. - * - * GNU C also provides __FUNCTION__ since version 2, which predates - * C99. We can, however, only use this if __STDC_VERSION__ exists, - * as it's otherwise not allowed according to ISO C standards (C90). - * (compiling with GNU C's -pedantic tells us so) - * - * If none of the above applies, we check if the compiler is MSVC, - * and use __FUNCTION__ if that's the case. - */ -# ifndef OPENSSL_FUNC -# if defined(__STDC_VERSION__) -# if __STDC_VERSION__ >= 199901L -# define OPENSSL_FUNC __func__ -# elif defined(__GNUC__) && __GNUC__ >= 2 -# define OPENSSL_FUNC __FUNCTION__ -# endif -# elif defined(_MSC_VER) -# define OPENSSL_FUNC __FUNCTION__ -# endif -/* - * If all these possibilities are exhausted, we give up and use a - * static string. - */ -# ifndef OPENSSL_FUNC -# define OPENSSL_FUNC "(unknown function)" -# endif -# endif - -# ifndef OSSL_CRYPTO_ALLOC -# if defined(__GNUC__) -# define OSSL_CRYPTO_ALLOC __attribute__((__malloc__)) -# elif defined(_MSC_VER) -# define OSSL_CRYPTO_ALLOC __declspec(restrict) -# else -# define OSSL_CRYPTO_ALLOC -# endif -# endif - -#endif /* OPENSSL_MACROS_H */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/md2.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/md2.h deleted file mode 100644 index 5d4cb77..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/md2.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_MD2_H -# define OPENSSL_MD2_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_MD2_H -# endif - -# include - -# ifndef OPENSSL_NO_MD2 -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define MD2_DIGEST_LENGTH 16 - -# if !defined(OPENSSL_NO_DEPRECATED_3_0) - -typedef unsigned char MD2_INT; - -# define MD2_BLOCK 16 - -typedef struct MD2state_st { - unsigned int num; - unsigned char data[MD2_BLOCK]; - MD2_INT cksm[MD2_BLOCK]; - MD2_INT state[MD2_BLOCK]; -} MD2_CTX; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 const char *MD2_options(void); -OSSL_DEPRECATEDIN_3_0 int MD2_Init(MD2_CTX *c); -OSSL_DEPRECATEDIN_3_0 int MD2_Update(MD2_CTX *c, const unsigned char *data, - size_t len); -OSSL_DEPRECATEDIN_3_0 int MD2_Final(unsigned char *md, MD2_CTX *c); -OSSL_DEPRECATEDIN_3_0 unsigned char *MD2(const unsigned char *d, size_t n, - unsigned char *md); -# endif - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/md4.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/md4.h deleted file mode 100644 index 6c150a6..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/md4.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_MD4_H -# define OPENSSL_MD4_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_MD4_H -# endif - -# include - -# ifndef OPENSSL_NO_MD4 -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define MD4_DIGEST_LENGTH 16 - -# if !defined(OPENSSL_NO_DEPRECATED_3_0) - -/*- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! MD4_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define MD4_LONG unsigned int - -# define MD4_CBLOCK 64 -# define MD4_LBLOCK (MD4_CBLOCK/4) - -typedef struct MD4state_st { - MD4_LONG A, B, C, D; - MD4_LONG Nl, Nh; - MD4_LONG data[MD4_LBLOCK]; - unsigned int num; -} MD4_CTX; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int MD4_Init(MD4_CTX *c); -OSSL_DEPRECATEDIN_3_0 int MD4_Update(MD4_CTX *c, const void *data, size_t len); -OSSL_DEPRECATEDIN_3_0 int MD4_Final(unsigned char *md, MD4_CTX *c); -OSSL_DEPRECATEDIN_3_0 unsigned char *MD4(const unsigned char *d, size_t n, - unsigned char *md); -OSSL_DEPRECATEDIN_3_0 void MD4_Transform(MD4_CTX *c, const unsigned char *b); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/md5.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/md5.h deleted file mode 100644 index 77a5773..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/md5.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_MD5_H -# define OPENSSL_MD5_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_MD5_H -# endif - -# include - -# ifndef OPENSSL_NO_MD5 -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define MD5_DIGEST_LENGTH 16 - -# if !defined(OPENSSL_NO_DEPRECATED_3_0) -/* - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! MD5_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define MD5_LONG unsigned int - -# define MD5_CBLOCK 64 -# define MD5_LBLOCK (MD5_CBLOCK/4) - -typedef struct MD5state_st { - MD5_LONG A, B, C, D; - MD5_LONG Nl, Nh; - MD5_LONG data[MD5_LBLOCK]; - unsigned int num; -} MD5_CTX; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c); -OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len); -OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c); -OSSL_DEPRECATEDIN_3_0 unsigned char *MD5(const unsigned char *d, size_t n, - unsigned char *md); -OSSL_DEPRECATEDIN_3_0 void MD5_Transform(MD5_CTX *c, const unsigned char *b); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/mdc2.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/mdc2.h deleted file mode 100644 index 5a7ee28..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/mdc2.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_MDC2_H -# define OPENSSL_MDC2_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_MDC2_H -# endif - -# include - -# ifndef OPENSSL_NO_MDC2 -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define MDC2_DIGEST_LENGTH 16 - -# if !defined(OPENSSL_NO_DEPRECATED_3_0) - -# define MDC2_BLOCK 8 - -typedef struct mdc2_ctx_st { - unsigned int num; - unsigned char data[MDC2_BLOCK]; - DES_cblock h, hh; - unsigned int pad_type; /* either 1 or 2, default 1 */ -} MDC2_CTX; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int MDC2_Init(MDC2_CTX *c); -OSSL_DEPRECATEDIN_3_0 int MDC2_Update(MDC2_CTX *c, const unsigned char *data, - size_t len); -OSSL_DEPRECATEDIN_3_0 int MDC2_Final(unsigned char *md, MDC2_CTX *c); -OSSL_DEPRECATEDIN_3_0 unsigned char *MDC2(const unsigned char *d, size_t n, - unsigned char *md); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ml_kem.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/ml_kem.h deleted file mode 100644 index 1c90163..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ml_kem.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2024-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_ML_KEM_H -# define OPENSSL_ML_KEM_H -# pragma once - -# define OSSL_ML_KEM_SHARED_SECRET_BYTES 32 - -# define OSSL_ML_KEM_512_BITS 512 -# define OSSL_ML_KEM_512_SECURITY_BITS 128 -# define OSSL_ML_KEM_512_CIPHERTEXT_BYTES 768 -# define OSSL_ML_KEM_512_PUBLIC_KEY_BYTES 800 - -# define OSSL_ML_KEM_768_BITS 768 -# define OSSL_ML_KEM_768_SECURITY_BITS 192 -# define OSSL_ML_KEM_768_CIPHERTEXT_BYTES 1088 -# define OSSL_ML_KEM_768_PUBLIC_KEY_BYTES 1184 - -# define OSSL_ML_KEM_1024_BITS 1024 -# define OSSL_ML_KEM_1024_SECURITY_BITS 256 -# define OSSL_ML_KEM_1024_CIPHERTEXT_BYTES 1568 -# define OSSL_ML_KEM_1024_PUBLIC_KEY_BYTES 1568 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/modes.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/modes.h deleted file mode 100644 index e190799..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/modes.h +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_MODES_H -# define OPENSSL_MODES_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_MODES_H -# endif - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif -typedef void (*block128_f) (const unsigned char in[16], - unsigned char out[16], const void *key); - -typedef void (*cbc128_f) (const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int enc); - -typedef void (*ecb128_f) (const unsigned char *in, unsigned char *out, - size_t len, const void *key, - int enc); - -typedef void (*ctr128_f) (const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - const unsigned char ivec[16]); - -typedef void (*ccm128_f) (const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - const unsigned char ivec[16], - unsigned char cmac[16]); - -void CRYPTO_cbc128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], block128_f block); -void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], block128_f block); - -void CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], - unsigned char ecount_buf[16], unsigned int *num, - block128_f block); - -void CRYPTO_ctr128_encrypt_ctr32(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], - unsigned char ecount_buf[16], - unsigned int *num, ctr128_f ctr); - -void CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int *num, - block128_f block); - -void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); -void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); -void CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char *out, - size_t bits, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); - -size_t CRYPTO_cts128_encrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, unsigned char ivec[16], - block128_f block); -size_t CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); -size_t CRYPTO_cts128_decrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, unsigned char ivec[16], - block128_f block); -size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); - -size_t CRYPTO_nistcts128_encrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, - unsigned char ivec[16], - block128_f block); -size_t CRYPTO_nistcts128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); -size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, - unsigned char ivec[16], - block128_f block); -size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); - -typedef struct gcm128_context GCM128_CONTEXT; - -GCM128_CONTEXT *CRYPTO_gcm128_new(void *key, block128_f block); -void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx, void *key, block128_f block); -void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const unsigned char *iv, - size_t len); -int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const unsigned char *aad, - size_t len); -int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len); -int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len); -int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len, ctr128_f stream); -int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len, ctr128_f stream); -int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const unsigned char *tag, - size_t len); -void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len); -void CRYPTO_gcm128_release(GCM128_CONTEXT *ctx); - -typedef struct ccm128_context CCM128_CONTEXT; - -void CRYPTO_ccm128_init(CCM128_CONTEXT *ctx, - unsigned int M, unsigned int L, void *key, - block128_f block); -int CRYPTO_ccm128_setiv(CCM128_CONTEXT *ctx, const unsigned char *nonce, - size_t nlen, size_t mlen); -void CRYPTO_ccm128_aad(CCM128_CONTEXT *ctx, const unsigned char *aad, - size_t alen); -int CRYPTO_ccm128_encrypt(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len); -int CRYPTO_ccm128_decrypt(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len); -int CRYPTO_ccm128_encrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len, - ccm128_f stream); -int CRYPTO_ccm128_decrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len, - ccm128_f stream); -size_t CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t len); - -typedef struct xts128_context XTS128_CONTEXT; - -int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, - const unsigned char iv[16], - const unsigned char *inp, unsigned char *out, - size_t len, int enc); - -size_t CRYPTO_128_wrap(void *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, size_t inlen, - block128_f block); - -size_t CRYPTO_128_unwrap(void *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, size_t inlen, - block128_f block); -size_t CRYPTO_128_wrap_pad(void *key, const unsigned char *icv, - unsigned char *out, const unsigned char *in, - size_t inlen, block128_f block); -size_t CRYPTO_128_unwrap_pad(void *key, const unsigned char *icv, - unsigned char *out, const unsigned char *in, - size_t inlen, block128_f block); - -# ifndef OPENSSL_NO_OCB -typedef struct ocb128_context OCB128_CONTEXT; - -typedef void (*ocb128_f) (const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - size_t start_block_num, - unsigned char offset_i[16], - const unsigned char L_[][16], - unsigned char checksum[16]); - -OCB128_CONTEXT *CRYPTO_ocb128_new(void *keyenc, void *keydec, - block128_f encrypt, block128_f decrypt, - ocb128_f stream); -int CRYPTO_ocb128_init(OCB128_CONTEXT *ctx, void *keyenc, void *keydec, - block128_f encrypt, block128_f decrypt, - ocb128_f stream); -int CRYPTO_ocb128_copy_ctx(OCB128_CONTEXT *dest, OCB128_CONTEXT *src, - void *keyenc, void *keydec); -int CRYPTO_ocb128_setiv(OCB128_CONTEXT *ctx, const unsigned char *iv, - size_t len, size_t taglen); -int CRYPTO_ocb128_aad(OCB128_CONTEXT *ctx, const unsigned char *aad, - size_t len); -int CRYPTO_ocb128_encrypt(OCB128_CONTEXT *ctx, const unsigned char *in, - unsigned char *out, size_t len); -int CRYPTO_ocb128_decrypt(OCB128_CONTEXT *ctx, const unsigned char *in, - unsigned char *out, size_t len); -int CRYPTO_ocb128_finish(OCB128_CONTEXT *ctx, const unsigned char *tag, - size_t len); -int CRYPTO_ocb128_tag(OCB128_CONTEXT *ctx, unsigned char *tag, size_t len); -void CRYPTO_ocb128_cleanup(OCB128_CONTEXT *ctx); -# endif /* OPENSSL_NO_OCB */ - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/obj_mac.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/obj_mac.h deleted file mode 100644 index 440ec10..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/obj_mac.h +++ /dev/null @@ -1,6695 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by crypto/objects/objects.pl - * - * Copyright 2000-2025 The OpenSSL Project Authors. All Rights Reserved. - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_OBJ_MAC_H -# define OPENSSL_OBJ_MAC_H -# pragma once - -#define SN_undef "UNDEF" -#define LN_undef "undefined" -#define NID_undef 0 -#define OBJ_undef 0L - -#define SN_itu_t "ITU-T" -#define LN_itu_t "itu-t" -#define NID_itu_t 645 -#define OBJ_itu_t 0L - -#define NID_ccitt 404 -#define OBJ_ccitt OBJ_itu_t - -#define SN_iso "ISO" -#define LN_iso "iso" -#define NID_iso 181 -#define OBJ_iso 1L - -#define SN_joint_iso_itu_t "JOINT-ISO-ITU-T" -#define LN_joint_iso_itu_t "joint-iso-itu-t" -#define NID_joint_iso_itu_t 646 -#define OBJ_joint_iso_itu_t 2L - -#define NID_joint_iso_ccitt 393 -#define OBJ_joint_iso_ccitt OBJ_joint_iso_itu_t - -#define SN_member_body "member-body" -#define LN_member_body "ISO Member Body" -#define NID_member_body 182 -#define OBJ_member_body OBJ_iso,2L - -#define SN_identified_organization "identified-organization" -#define NID_identified_organization 676 -#define OBJ_identified_organization OBJ_iso,3L - -#define SN_gmac "GMAC" -#define LN_gmac "gmac" -#define NID_gmac 1195 -#define OBJ_gmac OBJ_iso,0L,9797L,3L,4L - -#define SN_hmac_md5 "HMAC-MD5" -#define LN_hmac_md5 "hmac-md5" -#define NID_hmac_md5 780 -#define OBJ_hmac_md5 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,1L - -#define SN_hmac_sha1 "HMAC-SHA1" -#define LN_hmac_sha1 "hmac-sha1" -#define NID_hmac_sha1 781 -#define OBJ_hmac_sha1 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,2L - -#define SN_x509ExtAdmission "x509ExtAdmission" -#define LN_x509ExtAdmission "Professional Information or basis for Admission" -#define NID_x509ExtAdmission 1093 -#define OBJ_x509ExtAdmission OBJ_identified_organization,36L,8L,3L,3L - -#define SN_certicom_arc "certicom-arc" -#define NID_certicom_arc 677 -#define OBJ_certicom_arc OBJ_identified_organization,132L - -#define SN_ieee "ieee" -#define NID_ieee 1170 -#define OBJ_ieee OBJ_identified_organization,111L - -#define SN_ieee_siswg "ieee-siswg" -#define LN_ieee_siswg "IEEE Security in Storage Working Group" -#define NID_ieee_siswg 1171 -#define OBJ_ieee_siswg OBJ_ieee,2L,1619L - -#define SN_international_organizations "international-organizations" -#define LN_international_organizations "International Organizations" -#define NID_international_organizations 647 -#define OBJ_international_organizations OBJ_joint_iso_itu_t,23L - -#define SN_wap "wap" -#define NID_wap 678 -#define OBJ_wap OBJ_international_organizations,43L - -#define SN_wap_wsg "wap-wsg" -#define NID_wap_wsg 679 -#define OBJ_wap_wsg OBJ_wap,1L - -#define SN_selected_attribute_types "selected-attribute-types" -#define LN_selected_attribute_types "Selected Attribute Types" -#define NID_selected_attribute_types 394 -#define OBJ_selected_attribute_types OBJ_joint_iso_itu_t,5L,1L,5L - -#define SN_clearance "clearance" -#define NID_clearance 395 -#define OBJ_clearance OBJ_selected_attribute_types,55L - -#define SN_ISO_US "ISO-US" -#define LN_ISO_US "ISO US Member Body" -#define NID_ISO_US 183 -#define OBJ_ISO_US OBJ_member_body,840L - -#define SN_X9_57 "X9-57" -#define LN_X9_57 "X9.57" -#define NID_X9_57 184 -#define OBJ_X9_57 OBJ_ISO_US,10040L - -#define SN_X9cm "X9cm" -#define LN_X9cm "X9.57 CM ?" -#define NID_X9cm 185 -#define OBJ_X9cm OBJ_X9_57,4L - -#define SN_ISO_CN "ISO-CN" -#define LN_ISO_CN "ISO CN Member Body" -#define NID_ISO_CN 1140 -#define OBJ_ISO_CN OBJ_member_body,156L - -#define SN_oscca "oscca" -#define NID_oscca 1141 -#define OBJ_oscca OBJ_ISO_CN,10197L - -#define SN_sm_scheme "sm-scheme" -#define NID_sm_scheme 1142 -#define OBJ_sm_scheme OBJ_oscca,1L - -#define SN_dsa "DSA" -#define LN_dsa "dsaEncryption" -#define NID_dsa 116 -#define OBJ_dsa OBJ_X9cm,1L - -#define SN_dsaWithSHA1 "DSA-SHA1" -#define LN_dsaWithSHA1 "dsaWithSHA1" -#define NID_dsaWithSHA1 113 -#define OBJ_dsaWithSHA1 OBJ_X9cm,3L - -#define SN_ansi_X9_62 "ansi-X9-62" -#define LN_ansi_X9_62 "ANSI X9.62" -#define NID_ansi_X9_62 405 -#define OBJ_ansi_X9_62 OBJ_ISO_US,10045L - -#define OBJ_X9_62_id_fieldType OBJ_ansi_X9_62,1L - -#define SN_X9_62_prime_field "prime-field" -#define NID_X9_62_prime_field 406 -#define OBJ_X9_62_prime_field OBJ_X9_62_id_fieldType,1L - -#define SN_X9_62_characteristic_two_field "characteristic-two-field" -#define NID_X9_62_characteristic_two_field 407 -#define OBJ_X9_62_characteristic_two_field OBJ_X9_62_id_fieldType,2L - -#define SN_X9_62_id_characteristic_two_basis "id-characteristic-two-basis" -#define NID_X9_62_id_characteristic_two_basis 680 -#define OBJ_X9_62_id_characteristic_two_basis OBJ_X9_62_characteristic_two_field,3L - -#define SN_X9_62_onBasis "onBasis" -#define NID_X9_62_onBasis 681 -#define OBJ_X9_62_onBasis OBJ_X9_62_id_characteristic_two_basis,1L - -#define SN_X9_62_tpBasis "tpBasis" -#define NID_X9_62_tpBasis 682 -#define OBJ_X9_62_tpBasis OBJ_X9_62_id_characteristic_two_basis,2L - -#define SN_X9_62_ppBasis "ppBasis" -#define NID_X9_62_ppBasis 683 -#define OBJ_X9_62_ppBasis OBJ_X9_62_id_characteristic_two_basis,3L - -#define OBJ_X9_62_id_publicKeyType OBJ_ansi_X9_62,2L - -#define SN_X9_62_id_ecPublicKey "id-ecPublicKey" -#define NID_X9_62_id_ecPublicKey 408 -#define OBJ_X9_62_id_ecPublicKey OBJ_X9_62_id_publicKeyType,1L - -#define OBJ_X9_62_ellipticCurve OBJ_ansi_X9_62,3L - -#define OBJ_X9_62_c_TwoCurve OBJ_X9_62_ellipticCurve,0L - -#define SN_X9_62_c2pnb163v1 "c2pnb163v1" -#define NID_X9_62_c2pnb163v1 684 -#define OBJ_X9_62_c2pnb163v1 OBJ_X9_62_c_TwoCurve,1L - -#define SN_X9_62_c2pnb163v2 "c2pnb163v2" -#define NID_X9_62_c2pnb163v2 685 -#define OBJ_X9_62_c2pnb163v2 OBJ_X9_62_c_TwoCurve,2L - -#define SN_X9_62_c2pnb163v3 "c2pnb163v3" -#define NID_X9_62_c2pnb163v3 686 -#define OBJ_X9_62_c2pnb163v3 OBJ_X9_62_c_TwoCurve,3L - -#define SN_X9_62_c2pnb176v1 "c2pnb176v1" -#define NID_X9_62_c2pnb176v1 687 -#define OBJ_X9_62_c2pnb176v1 OBJ_X9_62_c_TwoCurve,4L - -#define SN_X9_62_c2tnb191v1 "c2tnb191v1" -#define NID_X9_62_c2tnb191v1 688 -#define OBJ_X9_62_c2tnb191v1 OBJ_X9_62_c_TwoCurve,5L - -#define SN_X9_62_c2tnb191v2 "c2tnb191v2" -#define NID_X9_62_c2tnb191v2 689 -#define OBJ_X9_62_c2tnb191v2 OBJ_X9_62_c_TwoCurve,6L - -#define SN_X9_62_c2tnb191v3 "c2tnb191v3" -#define NID_X9_62_c2tnb191v3 690 -#define OBJ_X9_62_c2tnb191v3 OBJ_X9_62_c_TwoCurve,7L - -#define SN_X9_62_c2onb191v4 "c2onb191v4" -#define NID_X9_62_c2onb191v4 691 -#define OBJ_X9_62_c2onb191v4 OBJ_X9_62_c_TwoCurve,8L - -#define SN_X9_62_c2onb191v5 "c2onb191v5" -#define NID_X9_62_c2onb191v5 692 -#define OBJ_X9_62_c2onb191v5 OBJ_X9_62_c_TwoCurve,9L - -#define SN_X9_62_c2pnb208w1 "c2pnb208w1" -#define NID_X9_62_c2pnb208w1 693 -#define OBJ_X9_62_c2pnb208w1 OBJ_X9_62_c_TwoCurve,10L - -#define SN_X9_62_c2tnb239v1 "c2tnb239v1" -#define NID_X9_62_c2tnb239v1 694 -#define OBJ_X9_62_c2tnb239v1 OBJ_X9_62_c_TwoCurve,11L - -#define SN_X9_62_c2tnb239v2 "c2tnb239v2" -#define NID_X9_62_c2tnb239v2 695 -#define OBJ_X9_62_c2tnb239v2 OBJ_X9_62_c_TwoCurve,12L - -#define SN_X9_62_c2tnb239v3 "c2tnb239v3" -#define NID_X9_62_c2tnb239v3 696 -#define OBJ_X9_62_c2tnb239v3 OBJ_X9_62_c_TwoCurve,13L - -#define SN_X9_62_c2onb239v4 "c2onb239v4" -#define NID_X9_62_c2onb239v4 697 -#define OBJ_X9_62_c2onb239v4 OBJ_X9_62_c_TwoCurve,14L - -#define SN_X9_62_c2onb239v5 "c2onb239v5" -#define NID_X9_62_c2onb239v5 698 -#define OBJ_X9_62_c2onb239v5 OBJ_X9_62_c_TwoCurve,15L - -#define SN_X9_62_c2pnb272w1 "c2pnb272w1" -#define NID_X9_62_c2pnb272w1 699 -#define OBJ_X9_62_c2pnb272w1 OBJ_X9_62_c_TwoCurve,16L - -#define SN_X9_62_c2pnb304w1 "c2pnb304w1" -#define NID_X9_62_c2pnb304w1 700 -#define OBJ_X9_62_c2pnb304w1 OBJ_X9_62_c_TwoCurve,17L - -#define SN_X9_62_c2tnb359v1 "c2tnb359v1" -#define NID_X9_62_c2tnb359v1 701 -#define OBJ_X9_62_c2tnb359v1 OBJ_X9_62_c_TwoCurve,18L - -#define SN_X9_62_c2pnb368w1 "c2pnb368w1" -#define NID_X9_62_c2pnb368w1 702 -#define OBJ_X9_62_c2pnb368w1 OBJ_X9_62_c_TwoCurve,19L - -#define SN_X9_62_c2tnb431r1 "c2tnb431r1" -#define NID_X9_62_c2tnb431r1 703 -#define OBJ_X9_62_c2tnb431r1 OBJ_X9_62_c_TwoCurve,20L - -#define OBJ_X9_62_primeCurve OBJ_X9_62_ellipticCurve,1L - -#define SN_X9_62_prime192v1 "prime192v1" -#define NID_X9_62_prime192v1 409 -#define OBJ_X9_62_prime192v1 OBJ_X9_62_primeCurve,1L - -#define SN_X9_62_prime192v2 "prime192v2" -#define NID_X9_62_prime192v2 410 -#define OBJ_X9_62_prime192v2 OBJ_X9_62_primeCurve,2L - -#define SN_X9_62_prime192v3 "prime192v3" -#define NID_X9_62_prime192v3 411 -#define OBJ_X9_62_prime192v3 OBJ_X9_62_primeCurve,3L - -#define SN_X9_62_prime239v1 "prime239v1" -#define NID_X9_62_prime239v1 412 -#define OBJ_X9_62_prime239v1 OBJ_X9_62_primeCurve,4L - -#define SN_X9_62_prime239v2 "prime239v2" -#define NID_X9_62_prime239v2 413 -#define OBJ_X9_62_prime239v2 OBJ_X9_62_primeCurve,5L - -#define SN_X9_62_prime239v3 "prime239v3" -#define NID_X9_62_prime239v3 414 -#define OBJ_X9_62_prime239v3 OBJ_X9_62_primeCurve,6L - -#define SN_X9_62_prime256v1 "prime256v1" -#define NID_X9_62_prime256v1 415 -#define OBJ_X9_62_prime256v1 OBJ_X9_62_primeCurve,7L - -#define OBJ_X9_62_id_ecSigType OBJ_ansi_X9_62,4L - -#define SN_ecdsa_with_SHA1 "ecdsa-with-SHA1" -#define NID_ecdsa_with_SHA1 416 -#define OBJ_ecdsa_with_SHA1 OBJ_X9_62_id_ecSigType,1L - -#define SN_ecdsa_with_Recommended "ecdsa-with-Recommended" -#define NID_ecdsa_with_Recommended 791 -#define OBJ_ecdsa_with_Recommended OBJ_X9_62_id_ecSigType,2L - -#define SN_ecdsa_with_Specified "ecdsa-with-Specified" -#define NID_ecdsa_with_Specified 792 -#define OBJ_ecdsa_with_Specified OBJ_X9_62_id_ecSigType,3L - -#define SN_ecdsa_with_SHA224 "ecdsa-with-SHA224" -#define NID_ecdsa_with_SHA224 793 -#define OBJ_ecdsa_with_SHA224 OBJ_ecdsa_with_Specified,1L - -#define SN_ecdsa_with_SHA256 "ecdsa-with-SHA256" -#define NID_ecdsa_with_SHA256 794 -#define OBJ_ecdsa_with_SHA256 OBJ_ecdsa_with_Specified,2L - -#define SN_ecdsa_with_SHA384 "ecdsa-with-SHA384" -#define NID_ecdsa_with_SHA384 795 -#define OBJ_ecdsa_with_SHA384 OBJ_ecdsa_with_Specified,3L - -#define SN_ecdsa_with_SHA512 "ecdsa-with-SHA512" -#define NID_ecdsa_with_SHA512 796 -#define OBJ_ecdsa_with_SHA512 OBJ_ecdsa_with_Specified,4L - -#define OBJ_secg_ellipticCurve OBJ_certicom_arc,0L - -#define SN_secp112r1 "secp112r1" -#define NID_secp112r1 704 -#define OBJ_secp112r1 OBJ_secg_ellipticCurve,6L - -#define SN_secp112r2 "secp112r2" -#define NID_secp112r2 705 -#define OBJ_secp112r2 OBJ_secg_ellipticCurve,7L - -#define SN_secp128r1 "secp128r1" -#define NID_secp128r1 706 -#define OBJ_secp128r1 OBJ_secg_ellipticCurve,28L - -#define SN_secp128r2 "secp128r2" -#define NID_secp128r2 707 -#define OBJ_secp128r2 OBJ_secg_ellipticCurve,29L - -#define SN_secp160k1 "secp160k1" -#define NID_secp160k1 708 -#define OBJ_secp160k1 OBJ_secg_ellipticCurve,9L - -#define SN_secp160r1 "secp160r1" -#define NID_secp160r1 709 -#define OBJ_secp160r1 OBJ_secg_ellipticCurve,8L - -#define SN_secp160r2 "secp160r2" -#define NID_secp160r2 710 -#define OBJ_secp160r2 OBJ_secg_ellipticCurve,30L - -#define SN_secp192k1 "secp192k1" -#define NID_secp192k1 711 -#define OBJ_secp192k1 OBJ_secg_ellipticCurve,31L - -#define SN_secp224k1 "secp224k1" -#define NID_secp224k1 712 -#define OBJ_secp224k1 OBJ_secg_ellipticCurve,32L - -#define SN_secp224r1 "secp224r1" -#define NID_secp224r1 713 -#define OBJ_secp224r1 OBJ_secg_ellipticCurve,33L - -#define SN_secp256k1 "secp256k1" -#define NID_secp256k1 714 -#define OBJ_secp256k1 OBJ_secg_ellipticCurve,10L - -#define SN_secp384r1 "secp384r1" -#define NID_secp384r1 715 -#define OBJ_secp384r1 OBJ_secg_ellipticCurve,34L - -#define SN_secp521r1 "secp521r1" -#define NID_secp521r1 716 -#define OBJ_secp521r1 OBJ_secg_ellipticCurve,35L - -#define SN_sect113r1 "sect113r1" -#define NID_sect113r1 717 -#define OBJ_sect113r1 OBJ_secg_ellipticCurve,4L - -#define SN_sect113r2 "sect113r2" -#define NID_sect113r2 718 -#define OBJ_sect113r2 OBJ_secg_ellipticCurve,5L - -#define SN_sect131r1 "sect131r1" -#define NID_sect131r1 719 -#define OBJ_sect131r1 OBJ_secg_ellipticCurve,22L - -#define SN_sect131r2 "sect131r2" -#define NID_sect131r2 720 -#define OBJ_sect131r2 OBJ_secg_ellipticCurve,23L - -#define SN_sect163k1 "sect163k1" -#define NID_sect163k1 721 -#define OBJ_sect163k1 OBJ_secg_ellipticCurve,1L - -#define SN_sect163r1 "sect163r1" -#define NID_sect163r1 722 -#define OBJ_sect163r1 OBJ_secg_ellipticCurve,2L - -#define SN_sect163r2 "sect163r2" -#define NID_sect163r2 723 -#define OBJ_sect163r2 OBJ_secg_ellipticCurve,15L - -#define SN_sect193r1 "sect193r1" -#define NID_sect193r1 724 -#define OBJ_sect193r1 OBJ_secg_ellipticCurve,24L - -#define SN_sect193r2 "sect193r2" -#define NID_sect193r2 725 -#define OBJ_sect193r2 OBJ_secg_ellipticCurve,25L - -#define SN_sect233k1 "sect233k1" -#define NID_sect233k1 726 -#define OBJ_sect233k1 OBJ_secg_ellipticCurve,26L - -#define SN_sect233r1 "sect233r1" -#define NID_sect233r1 727 -#define OBJ_sect233r1 OBJ_secg_ellipticCurve,27L - -#define SN_sect239k1 "sect239k1" -#define NID_sect239k1 728 -#define OBJ_sect239k1 OBJ_secg_ellipticCurve,3L - -#define SN_sect283k1 "sect283k1" -#define NID_sect283k1 729 -#define OBJ_sect283k1 OBJ_secg_ellipticCurve,16L - -#define SN_sect283r1 "sect283r1" -#define NID_sect283r1 730 -#define OBJ_sect283r1 OBJ_secg_ellipticCurve,17L - -#define SN_sect409k1 "sect409k1" -#define NID_sect409k1 731 -#define OBJ_sect409k1 OBJ_secg_ellipticCurve,36L - -#define SN_sect409r1 "sect409r1" -#define NID_sect409r1 732 -#define OBJ_sect409r1 OBJ_secg_ellipticCurve,37L - -#define SN_sect571k1 "sect571k1" -#define NID_sect571k1 733 -#define OBJ_sect571k1 OBJ_secg_ellipticCurve,38L - -#define SN_sect571r1 "sect571r1" -#define NID_sect571r1 734 -#define OBJ_sect571r1 OBJ_secg_ellipticCurve,39L - -#define OBJ_wap_wsg_idm_ecid OBJ_wap_wsg,4L - -#define SN_wap_wsg_idm_ecid_wtls1 "wap-wsg-idm-ecid-wtls1" -#define NID_wap_wsg_idm_ecid_wtls1 735 -#define OBJ_wap_wsg_idm_ecid_wtls1 OBJ_wap_wsg_idm_ecid,1L - -#define SN_wap_wsg_idm_ecid_wtls3 "wap-wsg-idm-ecid-wtls3" -#define NID_wap_wsg_idm_ecid_wtls3 736 -#define OBJ_wap_wsg_idm_ecid_wtls3 OBJ_wap_wsg_idm_ecid,3L - -#define SN_wap_wsg_idm_ecid_wtls4 "wap-wsg-idm-ecid-wtls4" -#define NID_wap_wsg_idm_ecid_wtls4 737 -#define OBJ_wap_wsg_idm_ecid_wtls4 OBJ_wap_wsg_idm_ecid,4L - -#define SN_wap_wsg_idm_ecid_wtls5 "wap-wsg-idm-ecid-wtls5" -#define NID_wap_wsg_idm_ecid_wtls5 738 -#define OBJ_wap_wsg_idm_ecid_wtls5 OBJ_wap_wsg_idm_ecid,5L - -#define SN_wap_wsg_idm_ecid_wtls6 "wap-wsg-idm-ecid-wtls6" -#define NID_wap_wsg_idm_ecid_wtls6 739 -#define OBJ_wap_wsg_idm_ecid_wtls6 OBJ_wap_wsg_idm_ecid,6L - -#define SN_wap_wsg_idm_ecid_wtls7 "wap-wsg-idm-ecid-wtls7" -#define NID_wap_wsg_idm_ecid_wtls7 740 -#define OBJ_wap_wsg_idm_ecid_wtls7 OBJ_wap_wsg_idm_ecid,7L - -#define SN_wap_wsg_idm_ecid_wtls8 "wap-wsg-idm-ecid-wtls8" -#define NID_wap_wsg_idm_ecid_wtls8 741 -#define OBJ_wap_wsg_idm_ecid_wtls8 OBJ_wap_wsg_idm_ecid,8L - -#define SN_wap_wsg_idm_ecid_wtls9 "wap-wsg-idm-ecid-wtls9" -#define NID_wap_wsg_idm_ecid_wtls9 742 -#define OBJ_wap_wsg_idm_ecid_wtls9 OBJ_wap_wsg_idm_ecid,9L - -#define SN_wap_wsg_idm_ecid_wtls10 "wap-wsg-idm-ecid-wtls10" -#define NID_wap_wsg_idm_ecid_wtls10 743 -#define OBJ_wap_wsg_idm_ecid_wtls10 OBJ_wap_wsg_idm_ecid,10L - -#define SN_wap_wsg_idm_ecid_wtls11 "wap-wsg-idm-ecid-wtls11" -#define NID_wap_wsg_idm_ecid_wtls11 744 -#define OBJ_wap_wsg_idm_ecid_wtls11 OBJ_wap_wsg_idm_ecid,11L - -#define SN_wap_wsg_idm_ecid_wtls12 "wap-wsg-idm-ecid-wtls12" -#define NID_wap_wsg_idm_ecid_wtls12 745 -#define OBJ_wap_wsg_idm_ecid_wtls12 OBJ_wap_wsg_idm_ecid,12L - -#define SN_cast5_cbc "CAST5-CBC" -#define LN_cast5_cbc "cast5-cbc" -#define NID_cast5_cbc 108 -#define OBJ_cast5_cbc OBJ_ISO_US,113533L,7L,66L,10L - -#define SN_cast5_ecb "CAST5-ECB" -#define LN_cast5_ecb "cast5-ecb" -#define NID_cast5_ecb 109 - -#define SN_cast5_cfb64 "CAST5-CFB" -#define LN_cast5_cfb64 "cast5-cfb" -#define NID_cast5_cfb64 110 - -#define SN_cast5_ofb64 "CAST5-OFB" -#define LN_cast5_ofb64 "cast5-ofb" -#define NID_cast5_ofb64 111 - -#define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC" -#define NID_pbeWithMD5AndCast5_CBC 112 -#define OBJ_pbeWithMD5AndCast5_CBC OBJ_ISO_US,113533L,7L,66L,12L - -#define SN_id_PasswordBasedMAC "id-PasswordBasedMAC" -#define LN_id_PasswordBasedMAC "password based MAC" -#define NID_id_PasswordBasedMAC 782 -#define OBJ_id_PasswordBasedMAC OBJ_ISO_US,113533L,7L,66L,13L - -#define SN_id_DHBasedMac "id-DHBasedMac" -#define LN_id_DHBasedMac "Diffie-Hellman based MAC" -#define NID_id_DHBasedMac 783 -#define OBJ_id_DHBasedMac OBJ_ISO_US,113533L,7L,66L,30L - -#define SN_rsadsi "rsadsi" -#define LN_rsadsi "RSA Data Security, Inc." -#define NID_rsadsi 1 -#define OBJ_rsadsi OBJ_ISO_US,113549L - -#define SN_pkcs "pkcs" -#define LN_pkcs "RSA Data Security, Inc. PKCS" -#define NID_pkcs 2 -#define OBJ_pkcs OBJ_rsadsi,1L - -#define SN_pkcs1 "pkcs1" -#define NID_pkcs1 186 -#define OBJ_pkcs1 OBJ_pkcs,1L - -#define LN_rsaEncryption "rsaEncryption" -#define NID_rsaEncryption 6 -#define OBJ_rsaEncryption OBJ_pkcs1,1L - -#define SN_md2WithRSAEncryption "RSA-MD2" -#define LN_md2WithRSAEncryption "md2WithRSAEncryption" -#define NID_md2WithRSAEncryption 7 -#define OBJ_md2WithRSAEncryption OBJ_pkcs1,2L - -#define SN_md4WithRSAEncryption "RSA-MD4" -#define LN_md4WithRSAEncryption "md4WithRSAEncryption" -#define NID_md4WithRSAEncryption 396 -#define OBJ_md4WithRSAEncryption OBJ_pkcs1,3L - -#define SN_md5WithRSAEncryption "RSA-MD5" -#define LN_md5WithRSAEncryption "md5WithRSAEncryption" -#define NID_md5WithRSAEncryption 8 -#define OBJ_md5WithRSAEncryption OBJ_pkcs1,4L - -#define SN_sha1WithRSAEncryption "RSA-SHA1" -#define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" -#define NID_sha1WithRSAEncryption 65 -#define OBJ_sha1WithRSAEncryption OBJ_pkcs1,5L - -#define SN_rsaesOaep "RSAES-OAEP" -#define LN_rsaesOaep "rsaesOaep" -#define NID_rsaesOaep 919 -#define OBJ_rsaesOaep OBJ_pkcs1,7L - -#define SN_mgf1 "MGF1" -#define LN_mgf1 "mgf1" -#define NID_mgf1 911 -#define OBJ_mgf1 OBJ_pkcs1,8L - -#define SN_pSpecified "PSPECIFIED" -#define LN_pSpecified "pSpecified" -#define NID_pSpecified 935 -#define OBJ_pSpecified OBJ_pkcs1,9L - -#define SN_rsassaPss "RSASSA-PSS" -#define LN_rsassaPss "rsassaPss" -#define NID_rsassaPss 912 -#define OBJ_rsassaPss OBJ_pkcs1,10L - -#define SN_sha256WithRSAEncryption "RSA-SHA256" -#define LN_sha256WithRSAEncryption "sha256WithRSAEncryption" -#define NID_sha256WithRSAEncryption 668 -#define OBJ_sha256WithRSAEncryption OBJ_pkcs1,11L - -#define SN_sha384WithRSAEncryption "RSA-SHA384" -#define LN_sha384WithRSAEncryption "sha384WithRSAEncryption" -#define NID_sha384WithRSAEncryption 669 -#define OBJ_sha384WithRSAEncryption OBJ_pkcs1,12L - -#define SN_sha512WithRSAEncryption "RSA-SHA512" -#define LN_sha512WithRSAEncryption "sha512WithRSAEncryption" -#define NID_sha512WithRSAEncryption 670 -#define OBJ_sha512WithRSAEncryption OBJ_pkcs1,13L - -#define SN_sha224WithRSAEncryption "RSA-SHA224" -#define LN_sha224WithRSAEncryption "sha224WithRSAEncryption" -#define NID_sha224WithRSAEncryption 671 -#define OBJ_sha224WithRSAEncryption OBJ_pkcs1,14L - -#define SN_sha512_224WithRSAEncryption "RSA-SHA512/224" -#define LN_sha512_224WithRSAEncryption "sha512-224WithRSAEncryption" -#define NID_sha512_224WithRSAEncryption 1145 -#define OBJ_sha512_224WithRSAEncryption OBJ_pkcs1,15L - -#define SN_sha512_256WithRSAEncryption "RSA-SHA512/256" -#define LN_sha512_256WithRSAEncryption "sha512-256WithRSAEncryption" -#define NID_sha512_256WithRSAEncryption 1146 -#define OBJ_sha512_256WithRSAEncryption OBJ_pkcs1,16L - -#define SN_pkcs3 "pkcs3" -#define NID_pkcs3 27 -#define OBJ_pkcs3 OBJ_pkcs,3L - -#define LN_dhKeyAgreement "dhKeyAgreement" -#define NID_dhKeyAgreement 28 -#define OBJ_dhKeyAgreement OBJ_pkcs3,1L - -#define SN_pkcs5 "pkcs5" -#define NID_pkcs5 187 -#define OBJ_pkcs5 OBJ_pkcs,5L - -#define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" -#define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" -#define NID_pbeWithMD2AndDES_CBC 9 -#define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs5,1L - -#define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" -#define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" -#define NID_pbeWithMD5AndDES_CBC 10 -#define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs5,3L - -#define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" -#define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" -#define NID_pbeWithMD2AndRC2_CBC 168 -#define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs5,4L - -#define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64" -#define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" -#define NID_pbeWithMD5AndRC2_CBC 169 -#define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs5,6L - -#define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" -#define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" -#define NID_pbeWithSHA1AndDES_CBC 170 -#define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs5,10L - -#define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" -#define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" -#define NID_pbeWithSHA1AndRC2_CBC 68 -#define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs5,11L - -#define LN_id_pbkdf2 "PBKDF2" -#define NID_id_pbkdf2 69 -#define OBJ_id_pbkdf2 OBJ_pkcs5,12L - -#define LN_pbes2 "PBES2" -#define NID_pbes2 161 -#define OBJ_pbes2 OBJ_pkcs5,13L - -#define LN_pbmac1 "PBMAC1" -#define NID_pbmac1 162 -#define OBJ_pbmac1 OBJ_pkcs5,14L - -#define SN_pkcs7 "pkcs7" -#define NID_pkcs7 20 -#define OBJ_pkcs7 OBJ_pkcs,7L - -#define LN_pkcs7_data "pkcs7-data" -#define NID_pkcs7_data 21 -#define OBJ_pkcs7_data OBJ_pkcs7,1L - -#define LN_pkcs7_signed "pkcs7-signedData" -#define NID_pkcs7_signed 22 -#define OBJ_pkcs7_signed OBJ_pkcs7,2L - -#define LN_pkcs7_enveloped "pkcs7-envelopedData" -#define NID_pkcs7_enveloped 23 -#define OBJ_pkcs7_enveloped OBJ_pkcs7,3L - -#define LN_pkcs7_signedAndEnveloped "pkcs7-signedAndEnvelopedData" -#define NID_pkcs7_signedAndEnveloped 24 -#define OBJ_pkcs7_signedAndEnveloped OBJ_pkcs7,4L - -#define LN_pkcs7_digest "pkcs7-digestData" -#define NID_pkcs7_digest 25 -#define OBJ_pkcs7_digest OBJ_pkcs7,5L - -#define LN_pkcs7_encrypted "pkcs7-encryptedData" -#define NID_pkcs7_encrypted 26 -#define OBJ_pkcs7_encrypted OBJ_pkcs7,6L - -#define SN_pkcs9 "pkcs9" -#define NID_pkcs9 47 -#define OBJ_pkcs9 OBJ_pkcs,9L - -#define LN_pkcs9_emailAddress "emailAddress" -#define NID_pkcs9_emailAddress 48 -#define OBJ_pkcs9_emailAddress OBJ_pkcs9,1L - -#define LN_pkcs9_unstructuredName "unstructuredName" -#define NID_pkcs9_unstructuredName 49 -#define OBJ_pkcs9_unstructuredName OBJ_pkcs9,2L - -#define LN_pkcs9_contentType "contentType" -#define NID_pkcs9_contentType 50 -#define OBJ_pkcs9_contentType OBJ_pkcs9,3L - -#define LN_pkcs9_messageDigest "messageDigest" -#define NID_pkcs9_messageDigest 51 -#define OBJ_pkcs9_messageDigest OBJ_pkcs9,4L - -#define LN_pkcs9_signingTime "signingTime" -#define NID_pkcs9_signingTime 52 -#define OBJ_pkcs9_signingTime OBJ_pkcs9,5L - -#define LN_pkcs9_countersignature "countersignature" -#define NID_pkcs9_countersignature 53 -#define OBJ_pkcs9_countersignature OBJ_pkcs9,6L - -#define LN_pkcs9_challengePassword "challengePassword" -#define NID_pkcs9_challengePassword 54 -#define OBJ_pkcs9_challengePassword OBJ_pkcs9,7L - -#define LN_pkcs9_unstructuredAddress "unstructuredAddress" -#define NID_pkcs9_unstructuredAddress 55 -#define OBJ_pkcs9_unstructuredAddress OBJ_pkcs9,8L - -#define LN_pkcs9_extCertAttributes "extendedCertificateAttributes" -#define NID_pkcs9_extCertAttributes 56 -#define OBJ_pkcs9_extCertAttributes OBJ_pkcs9,9L - -#define SN_ext_req "extReq" -#define LN_ext_req "Extension Request" -#define NID_ext_req 172 -#define OBJ_ext_req OBJ_pkcs9,14L - -#define SN_SMIMECapabilities "SMIME-CAPS" -#define LN_SMIMECapabilities "S/MIME Capabilities" -#define NID_SMIMECapabilities 167 -#define OBJ_SMIMECapabilities OBJ_pkcs9,15L - -#define SN_SMIME "SMIME" -#define LN_SMIME "S/MIME" -#define NID_SMIME 188 -#define OBJ_SMIME OBJ_pkcs9,16L - -#define SN_id_smime_mod "id-smime-mod" -#define NID_id_smime_mod 189 -#define OBJ_id_smime_mod OBJ_SMIME,0L - -#define SN_id_smime_ct "id-smime-ct" -#define NID_id_smime_ct 190 -#define OBJ_id_smime_ct OBJ_SMIME,1L - -#define SN_id_smime_aa "id-smime-aa" -#define NID_id_smime_aa 191 -#define OBJ_id_smime_aa OBJ_SMIME,2L - -#define SN_id_smime_alg "id-smime-alg" -#define NID_id_smime_alg 192 -#define OBJ_id_smime_alg OBJ_SMIME,3L - -#define SN_id_smime_cd "id-smime-cd" -#define NID_id_smime_cd 193 -#define OBJ_id_smime_cd OBJ_SMIME,4L - -#define SN_id_smime_spq "id-smime-spq" -#define NID_id_smime_spq 194 -#define OBJ_id_smime_spq OBJ_SMIME,5L - -#define SN_id_smime_cti "id-smime-cti" -#define NID_id_smime_cti 195 -#define OBJ_id_smime_cti OBJ_SMIME,6L - -#define SN_id_smime_ori "id-smime-ori" -#define NID_id_smime_ori 1499 -#define OBJ_id_smime_ori OBJ_SMIME,13L - -#define SN_id_smime_mod_cms "id-smime-mod-cms" -#define NID_id_smime_mod_cms 196 -#define OBJ_id_smime_mod_cms OBJ_id_smime_mod,1L - -#define SN_id_smime_mod_ess "id-smime-mod-ess" -#define NID_id_smime_mod_ess 197 -#define OBJ_id_smime_mod_ess OBJ_id_smime_mod,2L - -#define SN_id_smime_mod_oid "id-smime-mod-oid" -#define NID_id_smime_mod_oid 198 -#define OBJ_id_smime_mod_oid OBJ_id_smime_mod,3L - -#define SN_id_smime_mod_msg_v3 "id-smime-mod-msg-v3" -#define NID_id_smime_mod_msg_v3 199 -#define OBJ_id_smime_mod_msg_v3 OBJ_id_smime_mod,4L - -#define SN_id_smime_mod_ets_eSignature_88 "id-smime-mod-ets-eSignature-88" -#define NID_id_smime_mod_ets_eSignature_88 200 -#define OBJ_id_smime_mod_ets_eSignature_88 OBJ_id_smime_mod,5L - -#define SN_id_smime_mod_ets_eSignature_97 "id-smime-mod-ets-eSignature-97" -#define NID_id_smime_mod_ets_eSignature_97 201 -#define OBJ_id_smime_mod_ets_eSignature_97 OBJ_id_smime_mod,6L - -#define SN_id_smime_mod_ets_eSigPolicy_88 "id-smime-mod-ets-eSigPolicy-88" -#define NID_id_smime_mod_ets_eSigPolicy_88 202 -#define OBJ_id_smime_mod_ets_eSigPolicy_88 OBJ_id_smime_mod,7L - -#define SN_id_smime_mod_ets_eSigPolicy_97 "id-smime-mod-ets-eSigPolicy-97" -#define NID_id_smime_mod_ets_eSigPolicy_97 203 -#define OBJ_id_smime_mod_ets_eSigPolicy_97 OBJ_id_smime_mod,8L - -#define SN_id_smime_ct_receipt "id-smime-ct-receipt" -#define NID_id_smime_ct_receipt 204 -#define OBJ_id_smime_ct_receipt OBJ_id_smime_ct,1L - -#define SN_id_smime_ct_authData "id-smime-ct-authData" -#define NID_id_smime_ct_authData 205 -#define OBJ_id_smime_ct_authData OBJ_id_smime_ct,2L - -#define SN_id_smime_ct_publishCert "id-smime-ct-publishCert" -#define NID_id_smime_ct_publishCert 206 -#define OBJ_id_smime_ct_publishCert OBJ_id_smime_ct,3L - -#define SN_id_smime_ct_TSTInfo "id-smime-ct-TSTInfo" -#define NID_id_smime_ct_TSTInfo 207 -#define OBJ_id_smime_ct_TSTInfo OBJ_id_smime_ct,4L - -#define SN_id_smime_ct_TDTInfo "id-smime-ct-TDTInfo" -#define NID_id_smime_ct_TDTInfo 208 -#define OBJ_id_smime_ct_TDTInfo OBJ_id_smime_ct,5L - -#define SN_id_smime_ct_contentInfo "id-smime-ct-contentInfo" -#define NID_id_smime_ct_contentInfo 209 -#define OBJ_id_smime_ct_contentInfo OBJ_id_smime_ct,6L - -#define SN_id_smime_ct_DVCSRequestData "id-smime-ct-DVCSRequestData" -#define NID_id_smime_ct_DVCSRequestData 210 -#define OBJ_id_smime_ct_DVCSRequestData OBJ_id_smime_ct,7L - -#define SN_id_smime_ct_DVCSResponseData "id-smime-ct-DVCSResponseData" -#define NID_id_smime_ct_DVCSResponseData 211 -#define OBJ_id_smime_ct_DVCSResponseData OBJ_id_smime_ct,8L - -#define SN_id_smime_ct_compressedData "id-smime-ct-compressedData" -#define NID_id_smime_ct_compressedData 786 -#define OBJ_id_smime_ct_compressedData OBJ_id_smime_ct,9L - -#define SN_id_smime_ct_contentCollection "id-smime-ct-contentCollection" -#define NID_id_smime_ct_contentCollection 1058 -#define OBJ_id_smime_ct_contentCollection OBJ_id_smime_ct,19L - -#define SN_id_smime_ct_authEnvelopedData "id-smime-ct-authEnvelopedData" -#define NID_id_smime_ct_authEnvelopedData 1059 -#define OBJ_id_smime_ct_authEnvelopedData OBJ_id_smime_ct,23L - -#define SN_id_ct_routeOriginAuthz "id-ct-routeOriginAuthz" -#define NID_id_ct_routeOriginAuthz 1234 -#define OBJ_id_ct_routeOriginAuthz OBJ_id_smime_ct,24L - -#define SN_id_ct_rpkiManifest "id-ct-rpkiManifest" -#define NID_id_ct_rpkiManifest 1235 -#define OBJ_id_ct_rpkiManifest OBJ_id_smime_ct,26L - -#define SN_id_ct_asciiTextWithCRLF "id-ct-asciiTextWithCRLF" -#define NID_id_ct_asciiTextWithCRLF 787 -#define OBJ_id_ct_asciiTextWithCRLF OBJ_id_smime_ct,27L - -#define SN_id_ct_xml "id-ct-xml" -#define NID_id_ct_xml 1060 -#define OBJ_id_ct_xml OBJ_id_smime_ct,28L - -#define SN_id_ct_rpkiGhostbusters "id-ct-rpkiGhostbusters" -#define NID_id_ct_rpkiGhostbusters 1236 -#define OBJ_id_ct_rpkiGhostbusters OBJ_id_smime_ct,35L - -#define SN_id_ct_resourceTaggedAttest "id-ct-resourceTaggedAttest" -#define NID_id_ct_resourceTaggedAttest 1237 -#define OBJ_id_ct_resourceTaggedAttest OBJ_id_smime_ct,36L - -#define SN_id_ct_geofeedCSVwithCRLF "id-ct-geofeedCSVwithCRLF" -#define NID_id_ct_geofeedCSVwithCRLF 1246 -#define OBJ_id_ct_geofeedCSVwithCRLF OBJ_id_smime_ct,47L - -#define SN_id_ct_signedChecklist "id-ct-signedChecklist" -#define NID_id_ct_signedChecklist 1247 -#define OBJ_id_ct_signedChecklist OBJ_id_smime_ct,48L - -#define SN_id_ct_ASPA "id-ct-ASPA" -#define NID_id_ct_ASPA 1250 -#define OBJ_id_ct_ASPA OBJ_id_smime_ct,49L - -#define SN_id_ct_signedTAL "id-ct-signedTAL" -#define NID_id_ct_signedTAL 1284 -#define OBJ_id_ct_signedTAL OBJ_id_smime_ct,50L - -#define SN_id_ct_rpkiSignedPrefixList "id-ct-rpkiSignedPrefixList" -#define NID_id_ct_rpkiSignedPrefixList 1320 -#define OBJ_id_ct_rpkiSignedPrefixList OBJ_id_smime_ct,51L - -#define SN_id_smime_aa_receiptRequest "id-smime-aa-receiptRequest" -#define NID_id_smime_aa_receiptRequest 212 -#define OBJ_id_smime_aa_receiptRequest OBJ_id_smime_aa,1L - -#define SN_id_smime_aa_securityLabel "id-smime-aa-securityLabel" -#define NID_id_smime_aa_securityLabel 213 -#define OBJ_id_smime_aa_securityLabel OBJ_id_smime_aa,2L - -#define SN_id_smime_aa_mlExpandHistory "id-smime-aa-mlExpandHistory" -#define NID_id_smime_aa_mlExpandHistory 214 -#define OBJ_id_smime_aa_mlExpandHistory OBJ_id_smime_aa,3L - -#define SN_id_smime_aa_contentHint "id-smime-aa-contentHint" -#define NID_id_smime_aa_contentHint 215 -#define OBJ_id_smime_aa_contentHint OBJ_id_smime_aa,4L - -#define SN_id_smime_aa_msgSigDigest "id-smime-aa-msgSigDigest" -#define NID_id_smime_aa_msgSigDigest 216 -#define OBJ_id_smime_aa_msgSigDigest OBJ_id_smime_aa,5L - -#define SN_id_smime_aa_encapContentType "id-smime-aa-encapContentType" -#define NID_id_smime_aa_encapContentType 217 -#define OBJ_id_smime_aa_encapContentType OBJ_id_smime_aa,6L - -#define SN_id_smime_aa_contentIdentifier "id-smime-aa-contentIdentifier" -#define NID_id_smime_aa_contentIdentifier 218 -#define OBJ_id_smime_aa_contentIdentifier OBJ_id_smime_aa,7L - -#define SN_id_smime_aa_macValue "id-smime-aa-macValue" -#define NID_id_smime_aa_macValue 219 -#define OBJ_id_smime_aa_macValue OBJ_id_smime_aa,8L - -#define SN_id_smime_aa_equivalentLabels "id-smime-aa-equivalentLabels" -#define NID_id_smime_aa_equivalentLabels 220 -#define OBJ_id_smime_aa_equivalentLabels OBJ_id_smime_aa,9L - -#define SN_id_smime_aa_contentReference "id-smime-aa-contentReference" -#define NID_id_smime_aa_contentReference 221 -#define OBJ_id_smime_aa_contentReference OBJ_id_smime_aa,10L - -#define SN_id_smime_aa_encrypKeyPref "id-smime-aa-encrypKeyPref" -#define NID_id_smime_aa_encrypKeyPref 222 -#define OBJ_id_smime_aa_encrypKeyPref OBJ_id_smime_aa,11L - -#define SN_id_smime_aa_signingCertificate "id-smime-aa-signingCertificate" -#define NID_id_smime_aa_signingCertificate 223 -#define OBJ_id_smime_aa_signingCertificate OBJ_id_smime_aa,12L - -#define SN_id_smime_aa_smimeEncryptCerts "id-smime-aa-smimeEncryptCerts" -#define NID_id_smime_aa_smimeEncryptCerts 224 -#define OBJ_id_smime_aa_smimeEncryptCerts OBJ_id_smime_aa,13L - -#define SN_id_smime_aa_timeStampToken "id-smime-aa-timeStampToken" -#define NID_id_smime_aa_timeStampToken 225 -#define OBJ_id_smime_aa_timeStampToken OBJ_id_smime_aa,14L - -#define SN_id_smime_aa_ets_sigPolicyId "id-smime-aa-ets-sigPolicyId" -#define NID_id_smime_aa_ets_sigPolicyId 226 -#define OBJ_id_smime_aa_ets_sigPolicyId OBJ_id_smime_aa,15L - -#define SN_id_smime_aa_ets_commitmentType "id-smime-aa-ets-commitmentType" -#define NID_id_smime_aa_ets_commitmentType 227 -#define OBJ_id_smime_aa_ets_commitmentType OBJ_id_smime_aa,16L - -#define SN_id_smime_aa_ets_signerLocation "id-smime-aa-ets-signerLocation" -#define NID_id_smime_aa_ets_signerLocation 228 -#define OBJ_id_smime_aa_ets_signerLocation OBJ_id_smime_aa,17L - -#define SN_id_smime_aa_ets_signerAttr "id-smime-aa-ets-signerAttr" -#define NID_id_smime_aa_ets_signerAttr 229 -#define OBJ_id_smime_aa_ets_signerAttr OBJ_id_smime_aa,18L - -#define SN_id_smime_aa_ets_otherSigCert "id-smime-aa-ets-otherSigCert" -#define NID_id_smime_aa_ets_otherSigCert 230 -#define OBJ_id_smime_aa_ets_otherSigCert OBJ_id_smime_aa,19L - -#define SN_id_smime_aa_ets_contentTimestamp "id-smime-aa-ets-contentTimestamp" -#define NID_id_smime_aa_ets_contentTimestamp 231 -#define OBJ_id_smime_aa_ets_contentTimestamp OBJ_id_smime_aa,20L - -#define SN_id_smime_aa_ets_CertificateRefs "id-smime-aa-ets-CertificateRefs" -#define NID_id_smime_aa_ets_CertificateRefs 232 -#define OBJ_id_smime_aa_ets_CertificateRefs OBJ_id_smime_aa,21L - -#define SN_id_smime_aa_ets_RevocationRefs "id-smime-aa-ets-RevocationRefs" -#define NID_id_smime_aa_ets_RevocationRefs 233 -#define OBJ_id_smime_aa_ets_RevocationRefs OBJ_id_smime_aa,22L - -#define SN_id_smime_aa_ets_certValues "id-smime-aa-ets-certValues" -#define NID_id_smime_aa_ets_certValues 234 -#define OBJ_id_smime_aa_ets_certValues OBJ_id_smime_aa,23L - -#define SN_id_smime_aa_ets_revocationValues "id-smime-aa-ets-revocationValues" -#define NID_id_smime_aa_ets_revocationValues 235 -#define OBJ_id_smime_aa_ets_revocationValues OBJ_id_smime_aa,24L - -#define SN_id_smime_aa_ets_escTimeStamp "id-smime-aa-ets-escTimeStamp" -#define NID_id_smime_aa_ets_escTimeStamp 236 -#define OBJ_id_smime_aa_ets_escTimeStamp OBJ_id_smime_aa,25L - -#define SN_id_smime_aa_ets_certCRLTimestamp "id-smime-aa-ets-certCRLTimestamp" -#define NID_id_smime_aa_ets_certCRLTimestamp 237 -#define OBJ_id_smime_aa_ets_certCRLTimestamp OBJ_id_smime_aa,26L - -#define SN_id_smime_aa_ets_archiveTimeStamp "id-smime-aa-ets-archiveTimeStamp" -#define NID_id_smime_aa_ets_archiveTimeStamp 238 -#define OBJ_id_smime_aa_ets_archiveTimeStamp OBJ_id_smime_aa,27L - -#define SN_id_smime_aa_signatureType "id-smime-aa-signatureType" -#define NID_id_smime_aa_signatureType 239 -#define OBJ_id_smime_aa_signatureType OBJ_id_smime_aa,28L - -#define SN_id_smime_aa_dvcs_dvc "id-smime-aa-dvcs-dvc" -#define NID_id_smime_aa_dvcs_dvc 240 -#define OBJ_id_smime_aa_dvcs_dvc OBJ_id_smime_aa,29L - -#define SN_id_aa_ets_attrCertificateRefs "id-aa-ets-attrCertificateRefs" -#define NID_id_aa_ets_attrCertificateRefs 1261 -#define OBJ_id_aa_ets_attrCertificateRefs OBJ_id_smime_aa,44L - -#define SN_id_aa_ets_attrRevocationRefs "id-aa-ets-attrRevocationRefs" -#define NID_id_aa_ets_attrRevocationRefs 1262 -#define OBJ_id_aa_ets_attrRevocationRefs OBJ_id_smime_aa,45L - -#define SN_id_smime_aa_signingCertificateV2 "id-smime-aa-signingCertificateV2" -#define NID_id_smime_aa_signingCertificateV2 1086 -#define OBJ_id_smime_aa_signingCertificateV2 OBJ_id_smime_aa,47L - -#define SN_id_aa_ets_archiveTimestampV2 "id-aa-ets-archiveTimestampV2" -#define NID_id_aa_ets_archiveTimestampV2 1280 -#define OBJ_id_aa_ets_archiveTimestampV2 OBJ_id_smime_aa,48L - -#define SN_id_smime_alg_ESDHwith3DES "id-smime-alg-ESDHwith3DES" -#define NID_id_smime_alg_ESDHwith3DES 241 -#define OBJ_id_smime_alg_ESDHwith3DES OBJ_id_smime_alg,1L - -#define SN_id_smime_alg_ESDHwithRC2 "id-smime-alg-ESDHwithRC2" -#define NID_id_smime_alg_ESDHwithRC2 242 -#define OBJ_id_smime_alg_ESDHwithRC2 OBJ_id_smime_alg,2L - -#define SN_id_smime_alg_3DESwrap "id-smime-alg-3DESwrap" -#define NID_id_smime_alg_3DESwrap 243 -#define OBJ_id_smime_alg_3DESwrap OBJ_id_smime_alg,3L - -#define SN_id_smime_alg_RC2wrap "id-smime-alg-RC2wrap" -#define NID_id_smime_alg_RC2wrap 244 -#define OBJ_id_smime_alg_RC2wrap OBJ_id_smime_alg,4L - -#define SN_id_smime_alg_ESDH "id-smime-alg-ESDH" -#define NID_id_smime_alg_ESDH 245 -#define OBJ_id_smime_alg_ESDH OBJ_id_smime_alg,5L - -#define SN_id_smime_alg_CMS3DESwrap "id-smime-alg-CMS3DESwrap" -#define NID_id_smime_alg_CMS3DESwrap 246 -#define OBJ_id_smime_alg_CMS3DESwrap OBJ_id_smime_alg,6L - -#define SN_id_smime_alg_CMSRC2wrap "id-smime-alg-CMSRC2wrap" -#define NID_id_smime_alg_CMSRC2wrap 247 -#define OBJ_id_smime_alg_CMSRC2wrap OBJ_id_smime_alg,7L - -#define SN_id_alg_PWRI_KEK "id-alg-PWRI-KEK" -#define NID_id_alg_PWRI_KEK 893 -#define OBJ_id_alg_PWRI_KEK OBJ_id_smime_alg,9L - -#define SN_HKDF_SHA256 "id-alg-hkdf-with-sha256" -#define LN_HKDF_SHA256 "HKDF-SHA256" -#define NID_HKDF_SHA256 1496 -#define OBJ_HKDF_SHA256 OBJ_id_smime_alg,28L - -#define SN_HKDF_SHA384 "id-alg-hkdf-with-sha384" -#define LN_HKDF_SHA384 "HKDF-SHA384" -#define NID_HKDF_SHA384 1497 -#define OBJ_HKDF_SHA384 OBJ_id_smime_alg,29L - -#define SN_HKDF_SHA512 "id-alg-hkdf-with-sha512" -#define LN_HKDF_SHA512 "HKDF-SHA512" -#define NID_HKDF_SHA512 1498 -#define OBJ_HKDF_SHA512 OBJ_id_smime_alg,30L - -#define SN_id_smime_cd_ldap "id-smime-cd-ldap" -#define NID_id_smime_cd_ldap 248 -#define OBJ_id_smime_cd_ldap OBJ_id_smime_cd,1L - -#define SN_id_smime_spq_ets_sqt_uri "id-smime-spq-ets-sqt-uri" -#define NID_id_smime_spq_ets_sqt_uri 249 -#define OBJ_id_smime_spq_ets_sqt_uri OBJ_id_smime_spq,1L - -#define SN_id_smime_spq_ets_sqt_unotice "id-smime-spq-ets-sqt-unotice" -#define NID_id_smime_spq_ets_sqt_unotice 250 -#define OBJ_id_smime_spq_ets_sqt_unotice OBJ_id_smime_spq,2L - -#define SN_id_smime_cti_ets_proofOfOrigin "id-smime-cti-ets-proofOfOrigin" -#define NID_id_smime_cti_ets_proofOfOrigin 251 -#define OBJ_id_smime_cti_ets_proofOfOrigin OBJ_id_smime_cti,1L - -#define SN_id_smime_cti_ets_proofOfReceipt "id-smime-cti-ets-proofOfReceipt" -#define NID_id_smime_cti_ets_proofOfReceipt 252 -#define OBJ_id_smime_cti_ets_proofOfReceipt OBJ_id_smime_cti,2L - -#define SN_id_smime_cti_ets_proofOfDelivery "id-smime-cti-ets-proofOfDelivery" -#define NID_id_smime_cti_ets_proofOfDelivery 253 -#define OBJ_id_smime_cti_ets_proofOfDelivery OBJ_id_smime_cti,3L - -#define SN_id_smime_cti_ets_proofOfSender "id-smime-cti-ets-proofOfSender" -#define NID_id_smime_cti_ets_proofOfSender 254 -#define OBJ_id_smime_cti_ets_proofOfSender OBJ_id_smime_cti,4L - -#define SN_id_smime_cti_ets_proofOfApproval "id-smime-cti-ets-proofOfApproval" -#define NID_id_smime_cti_ets_proofOfApproval 255 -#define OBJ_id_smime_cti_ets_proofOfApproval OBJ_id_smime_cti,5L - -#define SN_id_smime_cti_ets_proofOfCreation "id-smime-cti-ets-proofOfCreation" -#define NID_id_smime_cti_ets_proofOfCreation 256 -#define OBJ_id_smime_cti_ets_proofOfCreation OBJ_id_smime_cti,6L - -#define SN_id_smime_ori_kem "id-smime-ori-kem" -#define NID_id_smime_ori_kem 1500 -#define OBJ_id_smime_ori_kem OBJ_id_smime_ori,3L - -#define LN_friendlyName "friendlyName" -#define NID_friendlyName 156 -#define OBJ_friendlyName OBJ_pkcs9,20L - -#define LN_localKeyID "localKeyID" -#define NID_localKeyID 157 -#define OBJ_localKeyID OBJ_pkcs9,21L - -#define OBJ_ms_corp 1L,3L,6L,1L,4L,1L,311L - -#define SN_ms_csp_name "CSPName" -#define LN_ms_csp_name "Microsoft CSP Name" -#define NID_ms_csp_name 417 -#define OBJ_ms_csp_name OBJ_ms_corp,17L,1L - -#define SN_LocalKeySet "LocalKeySet" -#define LN_LocalKeySet "Microsoft Local Key set" -#define NID_LocalKeySet 856 -#define OBJ_LocalKeySet OBJ_ms_corp,17L,2L - -#define OBJ_certTypes OBJ_pkcs9,22L - -#define LN_x509Certificate "x509Certificate" -#define NID_x509Certificate 158 -#define OBJ_x509Certificate OBJ_certTypes,1L - -#define LN_sdsiCertificate "sdsiCertificate" -#define NID_sdsiCertificate 159 -#define OBJ_sdsiCertificate OBJ_certTypes,2L - -#define OBJ_crlTypes OBJ_pkcs9,23L - -#define LN_x509Crl "x509Crl" -#define NID_x509Crl 160 -#define OBJ_x509Crl OBJ_crlTypes,1L - -#define SN_id_aa_CMSAlgorithmProtection "id-aa-CMSAlgorithmProtection" -#define NID_id_aa_CMSAlgorithmProtection 1263 -#define OBJ_id_aa_CMSAlgorithmProtection OBJ_pkcs9,52L - -#define OBJ_pkcs12 OBJ_pkcs,12L - -#define OBJ_pkcs12_pbeids OBJ_pkcs12,1L - -#define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128" -#define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" -#define NID_pbe_WithSHA1And128BitRC4 144 -#define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids,1L - -#define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40" -#define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" -#define NID_pbe_WithSHA1And40BitRC4 145 -#define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids,2L - -#define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES" -#define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" -#define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 -#define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids,3L - -#define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES" -#define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" -#define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 -#define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids,4L - -#define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128" -#define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" -#define NID_pbe_WithSHA1And128BitRC2_CBC 148 -#define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids,5L - -#define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40" -#define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" -#define NID_pbe_WithSHA1And40BitRC2_CBC 149 -#define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids,6L - -#define OBJ_pkcs12_Version1 OBJ_pkcs12,10L - -#define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1,1L - -#define LN_keyBag "keyBag" -#define NID_keyBag 150 -#define OBJ_keyBag OBJ_pkcs12_BagIds,1L - -#define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag" -#define NID_pkcs8ShroudedKeyBag 151 -#define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds,2L - -#define LN_certBag "certBag" -#define NID_certBag 152 -#define OBJ_certBag OBJ_pkcs12_BagIds,3L - -#define LN_crlBag "crlBag" -#define NID_crlBag 153 -#define OBJ_crlBag OBJ_pkcs12_BagIds,4L - -#define LN_secretBag "secretBag" -#define NID_secretBag 154 -#define OBJ_secretBag OBJ_pkcs12_BagIds,5L - -#define LN_safeContentsBag "safeContentsBag" -#define NID_safeContentsBag 155 -#define OBJ_safeContentsBag OBJ_pkcs12_BagIds,6L - -#define SN_md2 "MD2" -#define LN_md2 "md2" -#define NID_md2 3 -#define OBJ_md2 OBJ_rsadsi,2L,2L - -#define SN_md4 "MD4" -#define LN_md4 "md4" -#define NID_md4 257 -#define OBJ_md4 OBJ_rsadsi,2L,4L - -#define SN_md5 "MD5" -#define LN_md5 "md5" -#define NID_md5 4 -#define OBJ_md5 OBJ_rsadsi,2L,5L - -#define SN_md5_sha1 "MD5-SHA1" -#define LN_md5_sha1 "md5-sha1" -#define NID_md5_sha1 114 - -#define LN_hmacWithMD5 "hmacWithMD5" -#define NID_hmacWithMD5 797 -#define OBJ_hmacWithMD5 OBJ_rsadsi,2L,6L - -#define LN_hmacWithSHA1 "hmacWithSHA1" -#define NID_hmacWithSHA1 163 -#define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L - -#define SN_sm2 "SM2" -#define LN_sm2 "sm2" -#define NID_sm2 1172 -#define OBJ_sm2 OBJ_sm_scheme,301L - -#define SN_sm3 "SM3" -#define LN_sm3 "sm3" -#define NID_sm3 1143 -#define OBJ_sm3 OBJ_sm_scheme,401L - -#define SN_sm3WithRSAEncryption "RSA-SM3" -#define LN_sm3WithRSAEncryption "sm3WithRSAEncryption" -#define NID_sm3WithRSAEncryption 1144 -#define OBJ_sm3WithRSAEncryption OBJ_sm_scheme,504L - -#define SN_SM2_with_SM3 "SM2-SM3" -#define LN_SM2_with_SM3 "SM2-with-SM3" -#define NID_SM2_with_SM3 1204 -#define OBJ_SM2_with_SM3 OBJ_sm_scheme,501L - -#define LN_hmacWithSM3 "hmacWithSM3" -#define NID_hmacWithSM3 1281 -#define OBJ_hmacWithSM3 OBJ_sm3,3L,1L - -#define LN_hmacWithSHA224 "hmacWithSHA224" -#define NID_hmacWithSHA224 798 -#define OBJ_hmacWithSHA224 OBJ_rsadsi,2L,8L - -#define LN_hmacWithSHA256 "hmacWithSHA256" -#define NID_hmacWithSHA256 799 -#define OBJ_hmacWithSHA256 OBJ_rsadsi,2L,9L - -#define LN_hmacWithSHA384 "hmacWithSHA384" -#define NID_hmacWithSHA384 800 -#define OBJ_hmacWithSHA384 OBJ_rsadsi,2L,10L - -#define LN_hmacWithSHA512 "hmacWithSHA512" -#define NID_hmacWithSHA512 801 -#define OBJ_hmacWithSHA512 OBJ_rsadsi,2L,11L - -#define LN_hmacWithSHA512_224 "hmacWithSHA512-224" -#define NID_hmacWithSHA512_224 1193 -#define OBJ_hmacWithSHA512_224 OBJ_rsadsi,2L,12L - -#define LN_hmacWithSHA512_256 "hmacWithSHA512-256" -#define NID_hmacWithSHA512_256 1194 -#define OBJ_hmacWithSHA512_256 OBJ_rsadsi,2L,13L - -#define SN_rc2_cbc "RC2-CBC" -#define LN_rc2_cbc "rc2-cbc" -#define NID_rc2_cbc 37 -#define OBJ_rc2_cbc OBJ_rsadsi,3L,2L - -#define SN_rc2_ecb "RC2-ECB" -#define LN_rc2_ecb "rc2-ecb" -#define NID_rc2_ecb 38 - -#define SN_rc2_cfb64 "RC2-CFB" -#define LN_rc2_cfb64 "rc2-cfb" -#define NID_rc2_cfb64 39 - -#define SN_rc2_ofb64 "RC2-OFB" -#define LN_rc2_ofb64 "rc2-ofb" -#define NID_rc2_ofb64 40 - -#define SN_rc2_40_cbc "RC2-40-CBC" -#define LN_rc2_40_cbc "rc2-40-cbc" -#define NID_rc2_40_cbc 98 - -#define SN_rc2_64_cbc "RC2-64-CBC" -#define LN_rc2_64_cbc "rc2-64-cbc" -#define NID_rc2_64_cbc 166 - -#define SN_rc4 "RC4" -#define LN_rc4 "rc4" -#define NID_rc4 5 -#define OBJ_rc4 OBJ_rsadsi,3L,4L - -#define SN_rc4_40 "RC4-40" -#define LN_rc4_40 "rc4-40" -#define NID_rc4_40 97 - -#define SN_des_ede3_cbc "DES-EDE3-CBC" -#define LN_des_ede3_cbc "des-ede3-cbc" -#define NID_des_ede3_cbc 44 -#define OBJ_des_ede3_cbc OBJ_rsadsi,3L,7L - -#define SN_rc5_cbc "RC5-CBC" -#define LN_rc5_cbc "rc5-cbc" -#define NID_rc5_cbc 120 -#define OBJ_rc5_cbc OBJ_rsadsi,3L,8L - -#define SN_rc5_ecb "RC5-ECB" -#define LN_rc5_ecb "rc5-ecb" -#define NID_rc5_ecb 121 - -#define SN_rc5_cfb64 "RC5-CFB" -#define LN_rc5_cfb64 "rc5-cfb" -#define NID_rc5_cfb64 122 - -#define SN_rc5_ofb64 "RC5-OFB" -#define LN_rc5_ofb64 "rc5-ofb" -#define NID_rc5_ofb64 123 - -#define SN_ms_ext_req "msExtReq" -#define LN_ms_ext_req "Microsoft Extension Request" -#define NID_ms_ext_req 171 -#define OBJ_ms_ext_req OBJ_ms_corp,2L,1L,14L - -#define SN_ms_code_ind "msCodeInd" -#define LN_ms_code_ind "Microsoft Individual Code Signing" -#define NID_ms_code_ind 134 -#define OBJ_ms_code_ind OBJ_ms_corp,2L,1L,21L - -#define SN_ms_code_com "msCodeCom" -#define LN_ms_code_com "Microsoft Commercial Code Signing" -#define NID_ms_code_com 135 -#define OBJ_ms_code_com OBJ_ms_corp,2L,1L,22L - -#define SN_ms_ctl_sign "msCTLSign" -#define LN_ms_ctl_sign "Microsoft Trust List Signing" -#define NID_ms_ctl_sign 136 -#define OBJ_ms_ctl_sign OBJ_ms_corp,10L,3L,1L - -#define SN_ms_sgc "msSGC" -#define LN_ms_sgc "Microsoft Server Gated Crypto" -#define NID_ms_sgc 137 -#define OBJ_ms_sgc OBJ_ms_corp,10L,3L,3L - -#define SN_ms_efs "msEFS" -#define LN_ms_efs "Microsoft Encrypted File System" -#define NID_ms_efs 138 -#define OBJ_ms_efs OBJ_ms_corp,10L,3L,4L - -#define SN_ms_smartcard_login "msSmartcardLogin" -#define LN_ms_smartcard_login "Microsoft Smartcard Login" -#define NID_ms_smartcard_login 648 -#define OBJ_ms_smartcard_login OBJ_ms_corp,20L,2L,2L - -#define SN_ms_upn "msUPN" -#define LN_ms_upn "Microsoft User Principal Name" -#define NID_ms_upn 649 -#define OBJ_ms_upn OBJ_ms_corp,20L,2L,3L - -#define SN_ms_ntds_sec_ext "ms-ntds-sec-ext" -#define LN_ms_ntds_sec_ext "Microsoft NTDS CA Extension" -#define NID_ms_ntds_sec_ext 1292 -#define OBJ_ms_ntds_sec_ext OBJ_ms_corp,25L,2L - -#define SN_ms_ntds_obj_sid "ms-ntds-obj-sid" -#define LN_ms_ntds_obj_sid "Microsoft NTDS AD objectSid" -#define NID_ms_ntds_obj_sid 1291 -#define OBJ_ms_ntds_obj_sid OBJ_ms_corp,25L,2L,1L - -#define SN_ms_cert_templ "ms-cert-templ" -#define LN_ms_cert_templ "Microsoft certificate template" -#define NID_ms_cert_templ 1293 -#define OBJ_ms_cert_templ OBJ_ms_corp,21L,7L - -#define SN_ms_app_policies "ms-app-policies" -#define LN_ms_app_policies "Microsoft Application Policies Extension" -#define NID_ms_app_policies 1294 -#define OBJ_ms_app_policies OBJ_ms_corp,21L,10L - -#define SN_idea_cbc "IDEA-CBC" -#define LN_idea_cbc "idea-cbc" -#define NID_idea_cbc 34 -#define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L - -#define SN_idea_ecb "IDEA-ECB" -#define LN_idea_ecb "idea-ecb" -#define NID_idea_ecb 36 - -#define SN_idea_cfb64 "IDEA-CFB" -#define LN_idea_cfb64 "idea-cfb" -#define NID_idea_cfb64 35 - -#define SN_idea_ofb64 "IDEA-OFB" -#define LN_idea_ofb64 "idea-ofb" -#define NID_idea_ofb64 46 - -#define SN_bf_cbc "BF-CBC" -#define LN_bf_cbc "bf-cbc" -#define NID_bf_cbc 91 -#define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L - -#define SN_bf_ecb "BF-ECB" -#define LN_bf_ecb "bf-ecb" -#define NID_bf_ecb 92 - -#define SN_bf_cfb64 "BF-CFB" -#define LN_bf_cfb64 "bf-cfb" -#define NID_bf_cfb64 93 - -#define SN_bf_ofb64 "BF-OFB" -#define LN_bf_ofb64 "bf-ofb" -#define NID_bf_ofb64 94 - -#define SN_id_pkix "PKIX" -#define NID_id_pkix 127 -#define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L - -#define SN_id_pkix_mod "id-pkix-mod" -#define NID_id_pkix_mod 258 -#define OBJ_id_pkix_mod OBJ_id_pkix,0L - -#define SN_id_pe "id-pe" -#define NID_id_pe 175 -#define OBJ_id_pe OBJ_id_pkix,1L - -#define SN_id_qt "id-qt" -#define NID_id_qt 259 -#define OBJ_id_qt OBJ_id_pkix,2L - -#define SN_id_kp "id-kp" -#define NID_id_kp 128 -#define OBJ_id_kp OBJ_id_pkix,3L - -#define SN_id_it "id-it" -#define NID_id_it 260 -#define OBJ_id_it OBJ_id_pkix,4L - -#define SN_id_pkip "id-pkip" -#define NID_id_pkip 261 -#define OBJ_id_pkip OBJ_id_pkix,5L - -#define SN_id_alg "id-alg" -#define NID_id_alg 262 -#define OBJ_id_alg OBJ_id_pkix,6L - -#define SN_id_cmc "id-cmc" -#define NID_id_cmc 263 -#define OBJ_id_cmc OBJ_id_pkix,7L - -#define SN_id_on "id-on" -#define NID_id_on 264 -#define OBJ_id_on OBJ_id_pkix,8L - -#define SN_id_pda "id-pda" -#define NID_id_pda 265 -#define OBJ_id_pda OBJ_id_pkix,9L - -#define SN_id_aca "id-aca" -#define NID_id_aca 266 -#define OBJ_id_aca OBJ_id_pkix,10L - -#define SN_id_qcs "id-qcs" -#define NID_id_qcs 267 -#define OBJ_id_qcs OBJ_id_pkix,11L - -#define SN_id_cp "id-cp" -#define NID_id_cp 1238 -#define OBJ_id_cp OBJ_id_pkix,14L - -#define SN_id_cct "id-cct" -#define NID_id_cct 268 -#define OBJ_id_cct OBJ_id_pkix,12L - -#define SN_id_ppl "id-ppl" -#define NID_id_ppl 662 -#define OBJ_id_ppl OBJ_id_pkix,21L - -#define SN_id_ad "id-ad" -#define NID_id_ad 176 -#define OBJ_id_ad OBJ_id_pkix,48L - -#define SN_id_pkix1_explicit_88 "id-pkix1-explicit-88" -#define NID_id_pkix1_explicit_88 269 -#define OBJ_id_pkix1_explicit_88 OBJ_id_pkix_mod,1L - -#define SN_id_pkix1_implicit_88 "id-pkix1-implicit-88" -#define NID_id_pkix1_implicit_88 270 -#define OBJ_id_pkix1_implicit_88 OBJ_id_pkix_mod,2L - -#define SN_id_pkix1_explicit_93 "id-pkix1-explicit-93" -#define NID_id_pkix1_explicit_93 271 -#define OBJ_id_pkix1_explicit_93 OBJ_id_pkix_mod,3L - -#define SN_id_pkix1_implicit_93 "id-pkix1-implicit-93" -#define NID_id_pkix1_implicit_93 272 -#define OBJ_id_pkix1_implicit_93 OBJ_id_pkix_mod,4L - -#define SN_id_mod_crmf "id-mod-crmf" -#define NID_id_mod_crmf 273 -#define OBJ_id_mod_crmf OBJ_id_pkix_mod,5L - -#define SN_id_mod_cmc "id-mod-cmc" -#define NID_id_mod_cmc 274 -#define OBJ_id_mod_cmc OBJ_id_pkix_mod,6L - -#define SN_id_mod_kea_profile_88 "id-mod-kea-profile-88" -#define NID_id_mod_kea_profile_88 275 -#define OBJ_id_mod_kea_profile_88 OBJ_id_pkix_mod,7L - -#define SN_id_mod_kea_profile_93 "id-mod-kea-profile-93" -#define NID_id_mod_kea_profile_93 276 -#define OBJ_id_mod_kea_profile_93 OBJ_id_pkix_mod,8L - -#define SN_id_mod_cmp "id-mod-cmp" -#define NID_id_mod_cmp 277 -#define OBJ_id_mod_cmp OBJ_id_pkix_mod,9L - -#define SN_id_mod_qualified_cert_88 "id-mod-qualified-cert-88" -#define NID_id_mod_qualified_cert_88 278 -#define OBJ_id_mod_qualified_cert_88 OBJ_id_pkix_mod,10L - -#define SN_id_mod_qualified_cert_93 "id-mod-qualified-cert-93" -#define NID_id_mod_qualified_cert_93 279 -#define OBJ_id_mod_qualified_cert_93 OBJ_id_pkix_mod,11L - -#define SN_id_mod_attribute_cert "id-mod-attribute-cert" -#define NID_id_mod_attribute_cert 280 -#define OBJ_id_mod_attribute_cert OBJ_id_pkix_mod,12L - -#define SN_id_mod_timestamp_protocol "id-mod-timestamp-protocol" -#define NID_id_mod_timestamp_protocol 281 -#define OBJ_id_mod_timestamp_protocol OBJ_id_pkix_mod,13L - -#define SN_id_mod_ocsp "id-mod-ocsp" -#define NID_id_mod_ocsp 282 -#define OBJ_id_mod_ocsp OBJ_id_pkix_mod,14L - -#define SN_id_mod_dvcs "id-mod-dvcs" -#define NID_id_mod_dvcs 283 -#define OBJ_id_mod_dvcs OBJ_id_pkix_mod,15L - -#define SN_id_mod_cmp2000 "id-mod-cmp2000" -#define NID_id_mod_cmp2000 284 -#define OBJ_id_mod_cmp2000 OBJ_id_pkix_mod,16L - -#define SN_id_mod_cmp2000_02 "id-mod-cmp2000-02" -#define NID_id_mod_cmp2000_02 1251 -#define OBJ_id_mod_cmp2000_02 OBJ_id_pkix_mod,50L - -#define SN_id_mod_cmp2021_88 "id-mod-cmp2021-88" -#define NID_id_mod_cmp2021_88 1252 -#define OBJ_id_mod_cmp2021_88 OBJ_id_pkix_mod,99L - -#define SN_id_mod_cmp2021_02 "id-mod-cmp2021-02" -#define NID_id_mod_cmp2021_02 1253 -#define OBJ_id_mod_cmp2021_02 OBJ_id_pkix_mod,100L - -#define SN_info_access "authorityInfoAccess" -#define LN_info_access "Authority Information Access" -#define NID_info_access 177 -#define OBJ_info_access OBJ_id_pe,1L - -#define SN_biometricInfo "biometricInfo" -#define LN_biometricInfo "Biometric Info" -#define NID_biometricInfo 285 -#define OBJ_biometricInfo OBJ_id_pe,2L - -#define SN_qcStatements "qcStatements" -#define NID_qcStatements 286 -#define OBJ_qcStatements OBJ_id_pe,3L - -#define SN_ac_auditIdentity "ac-auditIdentity" -#define LN_ac_auditIdentity "X509v3 Audit Identity" -#define NID_ac_auditIdentity 287 -#define OBJ_ac_auditIdentity OBJ_id_pe,4L - -#define NID_ac_auditEntity 1323 -#define OBJ_ac_auditEntity OBJ_ac_auditIdentity - -#define SN_ac_targeting "ac-targeting" -#define NID_ac_targeting 288 -#define OBJ_ac_targeting OBJ_id_pe,5L - -#define SN_aaControls "aaControls" -#define NID_aaControls 289 -#define OBJ_aaControls OBJ_id_pe,6L - -#define SN_sbgp_ipAddrBlock "sbgp-ipAddrBlock" -#define NID_sbgp_ipAddrBlock 290 -#define OBJ_sbgp_ipAddrBlock OBJ_id_pe,7L - -#define SN_sbgp_autonomousSysNum "sbgp-autonomousSysNum" -#define NID_sbgp_autonomousSysNum 291 -#define OBJ_sbgp_autonomousSysNum OBJ_id_pe,8L - -#define SN_sbgp_routerIdentifier "sbgp-routerIdentifier" -#define NID_sbgp_routerIdentifier 292 -#define OBJ_sbgp_routerIdentifier OBJ_id_pe,9L - -#define SN_ac_proxying "ac-proxying" -#define NID_ac_proxying 397 -#define OBJ_ac_proxying OBJ_id_pe,10L - -#define SN_sinfo_access "subjectInfoAccess" -#define LN_sinfo_access "Subject Information Access" -#define NID_sinfo_access 398 -#define OBJ_sinfo_access OBJ_id_pe,11L - -#define SN_proxyCertInfo "proxyCertInfo" -#define LN_proxyCertInfo "Proxy Certificate Information" -#define NID_proxyCertInfo 663 -#define OBJ_proxyCertInfo OBJ_id_pe,14L - -#define SN_tlsfeature "tlsfeature" -#define LN_tlsfeature "TLS Feature" -#define NID_tlsfeature 1020 -#define OBJ_tlsfeature OBJ_id_pe,24L - -#define SN_sbgp_ipAddrBlockv2 "sbgp-ipAddrBlockv2" -#define NID_sbgp_ipAddrBlockv2 1239 -#define OBJ_sbgp_ipAddrBlockv2 OBJ_id_pe,28L - -#define SN_sbgp_autonomousSysNumv2 "sbgp-autonomousSysNumv2" -#define NID_sbgp_autonomousSysNumv2 1240 -#define OBJ_sbgp_autonomousSysNumv2 OBJ_id_pe,29L - -#define SN_id_qt_cps "id-qt-cps" -#define LN_id_qt_cps "Policy Qualifier CPS" -#define NID_id_qt_cps 164 -#define OBJ_id_qt_cps OBJ_id_qt,1L - -#define SN_id_qt_unotice "id-qt-unotice" -#define LN_id_qt_unotice "Policy Qualifier User Notice" -#define NID_id_qt_unotice 165 -#define OBJ_id_qt_unotice OBJ_id_qt,2L - -#define SN_textNotice "textNotice" -#define NID_textNotice 293 -#define OBJ_textNotice OBJ_id_qt,3L - -#define SN_server_auth "serverAuth" -#define LN_server_auth "TLS Web Server Authentication" -#define NID_server_auth 129 -#define OBJ_server_auth OBJ_id_kp,1L - -#define SN_client_auth "clientAuth" -#define LN_client_auth "TLS Web Client Authentication" -#define NID_client_auth 130 -#define OBJ_client_auth OBJ_id_kp,2L - -#define SN_code_sign "codeSigning" -#define LN_code_sign "Code Signing" -#define NID_code_sign 131 -#define OBJ_code_sign OBJ_id_kp,3L - -#define SN_email_protect "emailProtection" -#define LN_email_protect "E-mail Protection" -#define NID_email_protect 132 -#define OBJ_email_protect OBJ_id_kp,4L - -#define SN_ipsecEndSystem "ipsecEndSystem" -#define LN_ipsecEndSystem "IPSec End System" -#define NID_ipsecEndSystem 294 -#define OBJ_ipsecEndSystem OBJ_id_kp,5L - -#define SN_ipsecTunnel "ipsecTunnel" -#define LN_ipsecTunnel "IPSec Tunnel" -#define NID_ipsecTunnel 295 -#define OBJ_ipsecTunnel OBJ_id_kp,6L - -#define SN_ipsecUser "ipsecUser" -#define LN_ipsecUser "IPSec User" -#define NID_ipsecUser 296 -#define OBJ_ipsecUser OBJ_id_kp,7L - -#define SN_time_stamp "timeStamping" -#define LN_time_stamp "Time Stamping" -#define NID_time_stamp 133 -#define OBJ_time_stamp OBJ_id_kp,8L - -#define SN_OCSP_sign "OCSPSigning" -#define LN_OCSP_sign "OCSP Signing" -#define NID_OCSP_sign 180 -#define OBJ_OCSP_sign OBJ_id_kp,9L - -#define SN_dvcs "DVCS" -#define LN_dvcs "dvcs" -#define NID_dvcs 297 -#define OBJ_dvcs OBJ_id_kp,10L - -#define SN_ipsec_IKE "ipsecIKE" -#define LN_ipsec_IKE "ipsec Internet Key Exchange" -#define NID_ipsec_IKE 1022 -#define OBJ_ipsec_IKE OBJ_id_kp,17L - -#define SN_capwapAC "capwapAC" -#define LN_capwapAC "Ctrl/provision WAP Access" -#define NID_capwapAC 1023 -#define OBJ_capwapAC OBJ_id_kp,18L - -#define SN_capwapWTP "capwapWTP" -#define LN_capwapWTP "Ctrl/Provision WAP Termination" -#define NID_capwapWTP 1024 -#define OBJ_capwapWTP OBJ_id_kp,19L - -#define SN_sshClient "secureShellClient" -#define LN_sshClient "SSH Client" -#define NID_sshClient 1025 -#define OBJ_sshClient OBJ_id_kp,21L - -#define SN_sshServer "secureShellServer" -#define LN_sshServer "SSH Server" -#define NID_sshServer 1026 -#define OBJ_sshServer OBJ_id_kp,22L - -#define SN_sendRouter "sendRouter" -#define LN_sendRouter "Send Router" -#define NID_sendRouter 1027 -#define OBJ_sendRouter OBJ_id_kp,23L - -#define SN_sendProxiedRouter "sendProxiedRouter" -#define LN_sendProxiedRouter "Send Proxied Router" -#define NID_sendProxiedRouter 1028 -#define OBJ_sendProxiedRouter OBJ_id_kp,24L - -#define SN_sendOwner "sendOwner" -#define LN_sendOwner "Send Owner" -#define NID_sendOwner 1029 -#define OBJ_sendOwner OBJ_id_kp,25L - -#define SN_sendProxiedOwner "sendProxiedOwner" -#define LN_sendProxiedOwner "Send Proxied Owner" -#define NID_sendProxiedOwner 1030 -#define OBJ_sendProxiedOwner OBJ_id_kp,26L - -#define SN_cmcCA "cmcCA" -#define LN_cmcCA "CMC Certificate Authority" -#define NID_cmcCA 1131 -#define OBJ_cmcCA OBJ_id_kp,27L - -#define SN_cmcRA "cmcRA" -#define LN_cmcRA "CMC Registration Authority" -#define NID_cmcRA 1132 -#define OBJ_cmcRA OBJ_id_kp,28L - -#define SN_cmcArchive "cmcArchive" -#define LN_cmcArchive "CMC Archive Server" -#define NID_cmcArchive 1219 -#define OBJ_cmcArchive OBJ_id_kp,29L - -#define SN_id_kp_bgpsec_router "id-kp-bgpsec-router" -#define LN_id_kp_bgpsec_router "BGPsec Router" -#define NID_id_kp_bgpsec_router 1220 -#define OBJ_id_kp_bgpsec_router OBJ_id_kp,30L - -#define SN_id_kp_BrandIndicatorforMessageIdentification "id-kp-BrandIndicatorforMessageIdentification" -#define LN_id_kp_BrandIndicatorforMessageIdentification "Brand Indicator for Message Identification" -#define NID_id_kp_BrandIndicatorforMessageIdentification 1221 -#define OBJ_id_kp_BrandIndicatorforMessageIdentification OBJ_id_kp,31L - -#define SN_cmKGA "cmKGA" -#define LN_cmKGA "Certificate Management Key Generation Authority" -#define NID_cmKGA 1222 -#define OBJ_cmKGA OBJ_id_kp,32L - -#define SN_id_it_caProtEncCert "id-it-caProtEncCert" -#define NID_id_it_caProtEncCert 298 -#define OBJ_id_it_caProtEncCert OBJ_id_it,1L - -#define SN_id_it_signKeyPairTypes "id-it-signKeyPairTypes" -#define NID_id_it_signKeyPairTypes 299 -#define OBJ_id_it_signKeyPairTypes OBJ_id_it,2L - -#define SN_id_it_encKeyPairTypes "id-it-encKeyPairTypes" -#define NID_id_it_encKeyPairTypes 300 -#define OBJ_id_it_encKeyPairTypes OBJ_id_it,3L - -#define SN_id_it_preferredSymmAlg "id-it-preferredSymmAlg" -#define NID_id_it_preferredSymmAlg 301 -#define OBJ_id_it_preferredSymmAlg OBJ_id_it,4L - -#define SN_id_it_caKeyUpdateInfo "id-it-caKeyUpdateInfo" -#define NID_id_it_caKeyUpdateInfo 302 -#define OBJ_id_it_caKeyUpdateInfo OBJ_id_it,5L - -#define SN_id_it_currentCRL "id-it-currentCRL" -#define NID_id_it_currentCRL 303 -#define OBJ_id_it_currentCRL OBJ_id_it,6L - -#define SN_id_it_unsupportedOIDs "id-it-unsupportedOIDs" -#define NID_id_it_unsupportedOIDs 304 -#define OBJ_id_it_unsupportedOIDs OBJ_id_it,7L - -#define SN_id_it_subscriptionRequest "id-it-subscriptionRequest" -#define NID_id_it_subscriptionRequest 305 -#define OBJ_id_it_subscriptionRequest OBJ_id_it,8L - -#define SN_id_it_subscriptionResponse "id-it-subscriptionResponse" -#define NID_id_it_subscriptionResponse 306 -#define OBJ_id_it_subscriptionResponse OBJ_id_it,9L - -#define SN_id_it_keyPairParamReq "id-it-keyPairParamReq" -#define NID_id_it_keyPairParamReq 307 -#define OBJ_id_it_keyPairParamReq OBJ_id_it,10L - -#define SN_id_it_keyPairParamRep "id-it-keyPairParamRep" -#define NID_id_it_keyPairParamRep 308 -#define OBJ_id_it_keyPairParamRep OBJ_id_it,11L - -#define SN_id_it_revPassphrase "id-it-revPassphrase" -#define NID_id_it_revPassphrase 309 -#define OBJ_id_it_revPassphrase OBJ_id_it,12L - -#define SN_id_it_implicitConfirm "id-it-implicitConfirm" -#define NID_id_it_implicitConfirm 310 -#define OBJ_id_it_implicitConfirm OBJ_id_it,13L - -#define SN_id_it_confirmWaitTime "id-it-confirmWaitTime" -#define NID_id_it_confirmWaitTime 311 -#define OBJ_id_it_confirmWaitTime OBJ_id_it,14L - -#define SN_id_it_origPKIMessage "id-it-origPKIMessage" -#define NID_id_it_origPKIMessage 312 -#define OBJ_id_it_origPKIMessage OBJ_id_it,15L - -#define SN_id_it_suppLangTags "id-it-suppLangTags" -#define NID_id_it_suppLangTags 784 -#define OBJ_id_it_suppLangTags OBJ_id_it,16L - -#define SN_id_it_caCerts "id-it-caCerts" -#define NID_id_it_caCerts 1223 -#define OBJ_id_it_caCerts OBJ_id_it,17L - -#define SN_id_it_rootCaKeyUpdate "id-it-rootCaKeyUpdate" -#define NID_id_it_rootCaKeyUpdate 1224 -#define OBJ_id_it_rootCaKeyUpdate OBJ_id_it,18L - -#define SN_id_it_certReqTemplate "id-it-certReqTemplate" -#define NID_id_it_certReqTemplate 1225 -#define OBJ_id_it_certReqTemplate OBJ_id_it,19L - -#define SN_id_it_rootCaCert "id-it-rootCaCert" -#define NID_id_it_rootCaCert 1254 -#define OBJ_id_it_rootCaCert OBJ_id_it,20L - -#define SN_id_it_certProfile "id-it-certProfile" -#define NID_id_it_certProfile 1255 -#define OBJ_id_it_certProfile OBJ_id_it,21L - -#define SN_id_it_crlStatusList "id-it-crlStatusList" -#define NID_id_it_crlStatusList 1256 -#define OBJ_id_it_crlStatusList OBJ_id_it,22L - -#define SN_id_it_crls "id-it-crls" -#define NID_id_it_crls 1257 -#define OBJ_id_it_crls OBJ_id_it,23L - -#define SN_id_regCtrl "id-regCtrl" -#define NID_id_regCtrl 313 -#define OBJ_id_regCtrl OBJ_id_pkip,1L - -#define SN_id_regInfo "id-regInfo" -#define NID_id_regInfo 314 -#define OBJ_id_regInfo OBJ_id_pkip,2L - -#define SN_id_regCtrl_regToken "id-regCtrl-regToken" -#define NID_id_regCtrl_regToken 315 -#define OBJ_id_regCtrl_regToken OBJ_id_regCtrl,1L - -#define SN_id_regCtrl_authenticator "id-regCtrl-authenticator" -#define NID_id_regCtrl_authenticator 316 -#define OBJ_id_regCtrl_authenticator OBJ_id_regCtrl,2L - -#define SN_id_regCtrl_pkiPublicationInfo "id-regCtrl-pkiPublicationInfo" -#define NID_id_regCtrl_pkiPublicationInfo 317 -#define OBJ_id_regCtrl_pkiPublicationInfo OBJ_id_regCtrl,3L - -#define SN_id_regCtrl_pkiArchiveOptions "id-regCtrl-pkiArchiveOptions" -#define NID_id_regCtrl_pkiArchiveOptions 318 -#define OBJ_id_regCtrl_pkiArchiveOptions OBJ_id_regCtrl,4L - -#define SN_id_regCtrl_oldCertID "id-regCtrl-oldCertID" -#define NID_id_regCtrl_oldCertID 319 -#define OBJ_id_regCtrl_oldCertID OBJ_id_regCtrl,5L - -#define SN_id_regCtrl_protocolEncrKey "id-regCtrl-protocolEncrKey" -#define NID_id_regCtrl_protocolEncrKey 320 -#define OBJ_id_regCtrl_protocolEncrKey OBJ_id_regCtrl,6L - -#define SN_id_regCtrl_altCertTemplate "id-regCtrl-altCertTemplate" -#define NID_id_regCtrl_altCertTemplate 1258 -#define OBJ_id_regCtrl_altCertTemplate OBJ_id_regCtrl,7L - -#define SN_id_regCtrl_algId "id-regCtrl-algId" -#define NID_id_regCtrl_algId 1259 -#define OBJ_id_regCtrl_algId OBJ_id_regCtrl,11L - -#define SN_id_regCtrl_rsaKeyLen "id-regCtrl-rsaKeyLen" -#define NID_id_regCtrl_rsaKeyLen 1260 -#define OBJ_id_regCtrl_rsaKeyLen OBJ_id_regCtrl,12L - -#define SN_id_regInfo_utf8Pairs "id-regInfo-utf8Pairs" -#define NID_id_regInfo_utf8Pairs 321 -#define OBJ_id_regInfo_utf8Pairs OBJ_id_regInfo,1L - -#define SN_id_regInfo_certReq "id-regInfo-certReq" -#define NID_id_regInfo_certReq 322 -#define OBJ_id_regInfo_certReq OBJ_id_regInfo,2L - -#define SN_id_alg_des40 "id-alg-des40" -#define NID_id_alg_des40 323 -#define OBJ_id_alg_des40 OBJ_id_alg,1L - -#define SN_id_alg_noSignature "id-alg-noSignature" -#define NID_id_alg_noSignature 324 -#define OBJ_id_alg_noSignature OBJ_id_alg,2L - -#define SN_id_alg_dh_sig_hmac_sha1 "id-alg-dh-sig-hmac-sha1" -#define NID_id_alg_dh_sig_hmac_sha1 325 -#define OBJ_id_alg_dh_sig_hmac_sha1 OBJ_id_alg,3L - -#define SN_id_alg_dh_pop "id-alg-dh-pop" -#define NID_id_alg_dh_pop 326 -#define OBJ_id_alg_dh_pop OBJ_id_alg,4L - -#define SN_id_cmc_statusInfo "id-cmc-statusInfo" -#define NID_id_cmc_statusInfo 327 -#define OBJ_id_cmc_statusInfo OBJ_id_cmc,1L - -#define SN_id_cmc_identification "id-cmc-identification" -#define NID_id_cmc_identification 328 -#define OBJ_id_cmc_identification OBJ_id_cmc,2L - -#define SN_id_cmc_identityProof "id-cmc-identityProof" -#define NID_id_cmc_identityProof 329 -#define OBJ_id_cmc_identityProof OBJ_id_cmc,3L - -#define SN_id_cmc_dataReturn "id-cmc-dataReturn" -#define NID_id_cmc_dataReturn 330 -#define OBJ_id_cmc_dataReturn OBJ_id_cmc,4L - -#define SN_id_cmc_transactionId "id-cmc-transactionId" -#define NID_id_cmc_transactionId 331 -#define OBJ_id_cmc_transactionId OBJ_id_cmc,5L - -#define SN_id_cmc_senderNonce "id-cmc-senderNonce" -#define NID_id_cmc_senderNonce 332 -#define OBJ_id_cmc_senderNonce OBJ_id_cmc,6L - -#define SN_id_cmc_recipientNonce "id-cmc-recipientNonce" -#define NID_id_cmc_recipientNonce 333 -#define OBJ_id_cmc_recipientNonce OBJ_id_cmc,7L - -#define SN_id_cmc_addExtensions "id-cmc-addExtensions" -#define NID_id_cmc_addExtensions 334 -#define OBJ_id_cmc_addExtensions OBJ_id_cmc,8L - -#define SN_id_cmc_encryptedPOP "id-cmc-encryptedPOP" -#define NID_id_cmc_encryptedPOP 335 -#define OBJ_id_cmc_encryptedPOP OBJ_id_cmc,9L - -#define SN_id_cmc_decryptedPOP "id-cmc-decryptedPOP" -#define NID_id_cmc_decryptedPOP 336 -#define OBJ_id_cmc_decryptedPOP OBJ_id_cmc,10L - -#define SN_id_cmc_lraPOPWitness "id-cmc-lraPOPWitness" -#define NID_id_cmc_lraPOPWitness 337 -#define OBJ_id_cmc_lraPOPWitness OBJ_id_cmc,11L - -#define SN_id_cmc_getCert "id-cmc-getCert" -#define NID_id_cmc_getCert 338 -#define OBJ_id_cmc_getCert OBJ_id_cmc,15L - -#define SN_id_cmc_getCRL "id-cmc-getCRL" -#define NID_id_cmc_getCRL 339 -#define OBJ_id_cmc_getCRL OBJ_id_cmc,16L - -#define SN_id_cmc_revokeRequest "id-cmc-revokeRequest" -#define NID_id_cmc_revokeRequest 340 -#define OBJ_id_cmc_revokeRequest OBJ_id_cmc,17L - -#define SN_id_cmc_regInfo "id-cmc-regInfo" -#define NID_id_cmc_regInfo 341 -#define OBJ_id_cmc_regInfo OBJ_id_cmc,18L - -#define SN_id_cmc_responseInfo "id-cmc-responseInfo" -#define NID_id_cmc_responseInfo 342 -#define OBJ_id_cmc_responseInfo OBJ_id_cmc,19L - -#define SN_id_cmc_queryPending "id-cmc-queryPending" -#define NID_id_cmc_queryPending 343 -#define OBJ_id_cmc_queryPending OBJ_id_cmc,21L - -#define SN_id_cmc_popLinkRandom "id-cmc-popLinkRandom" -#define NID_id_cmc_popLinkRandom 344 -#define OBJ_id_cmc_popLinkRandom OBJ_id_cmc,22L - -#define SN_id_cmc_popLinkWitness "id-cmc-popLinkWitness" -#define NID_id_cmc_popLinkWitness 345 -#define OBJ_id_cmc_popLinkWitness OBJ_id_cmc,23L - -#define SN_id_cmc_confirmCertAcceptance "id-cmc-confirmCertAcceptance" -#define NID_id_cmc_confirmCertAcceptance 346 -#define OBJ_id_cmc_confirmCertAcceptance OBJ_id_cmc,24L - -#define SN_id_on_personalData "id-on-personalData" -#define NID_id_on_personalData 347 -#define OBJ_id_on_personalData OBJ_id_on,1L - -#define SN_id_on_permanentIdentifier "id-on-permanentIdentifier" -#define LN_id_on_permanentIdentifier "Permanent Identifier" -#define NID_id_on_permanentIdentifier 858 -#define OBJ_id_on_permanentIdentifier OBJ_id_on,3L - -#define SN_id_on_hardwareModuleName "id-on-hardwareModuleName" -#define LN_id_on_hardwareModuleName "Hardware Module Name" -#define NID_id_on_hardwareModuleName 1321 -#define OBJ_id_on_hardwareModuleName OBJ_id_on,4L - -#define SN_XmppAddr "id-on-xmppAddr" -#define LN_XmppAddr "XmppAddr" -#define NID_XmppAddr 1209 -#define OBJ_XmppAddr OBJ_id_on,5L - -#define SN_SRVName "id-on-dnsSRV" -#define LN_SRVName "SRVName" -#define NID_SRVName 1210 -#define OBJ_SRVName OBJ_id_on,7L - -#define SN_NAIRealm "id-on-NAIRealm" -#define LN_NAIRealm "NAIRealm" -#define NID_NAIRealm 1211 -#define OBJ_NAIRealm OBJ_id_on,8L - -#define SN_id_on_SmtpUTF8Mailbox "id-on-SmtpUTF8Mailbox" -#define LN_id_on_SmtpUTF8Mailbox "Smtp UTF8 Mailbox" -#define NID_id_on_SmtpUTF8Mailbox 1208 -#define OBJ_id_on_SmtpUTF8Mailbox OBJ_id_on,9L - -#define SN_id_pda_dateOfBirth "id-pda-dateOfBirth" -#define NID_id_pda_dateOfBirth 348 -#define OBJ_id_pda_dateOfBirth OBJ_id_pda,1L - -#define SN_id_pda_placeOfBirth "id-pda-placeOfBirth" -#define NID_id_pda_placeOfBirth 349 -#define OBJ_id_pda_placeOfBirth OBJ_id_pda,2L - -#define SN_id_pda_gender "id-pda-gender" -#define NID_id_pda_gender 351 -#define OBJ_id_pda_gender OBJ_id_pda,3L - -#define SN_id_pda_countryOfCitizenship "id-pda-countryOfCitizenship" -#define NID_id_pda_countryOfCitizenship 352 -#define OBJ_id_pda_countryOfCitizenship OBJ_id_pda,4L - -#define SN_id_pda_countryOfResidence "id-pda-countryOfResidence" -#define NID_id_pda_countryOfResidence 353 -#define OBJ_id_pda_countryOfResidence OBJ_id_pda,5L - -#define SN_id_aca_authenticationInfo "id-aca-authenticationInfo" -#define NID_id_aca_authenticationInfo 354 -#define OBJ_id_aca_authenticationInfo OBJ_id_aca,1L - -#define SN_id_aca_accessIdentity "id-aca-accessIdentity" -#define NID_id_aca_accessIdentity 355 -#define OBJ_id_aca_accessIdentity OBJ_id_aca,2L - -#define SN_id_aca_chargingIdentity "id-aca-chargingIdentity" -#define NID_id_aca_chargingIdentity 356 -#define OBJ_id_aca_chargingIdentity OBJ_id_aca,3L - -#define SN_id_aca_group "id-aca-group" -#define NID_id_aca_group 357 -#define OBJ_id_aca_group OBJ_id_aca,4L - -#define SN_id_aca_role "id-aca-role" -#define NID_id_aca_role 358 -#define OBJ_id_aca_role OBJ_id_aca,5L - -#define SN_id_aca_encAttrs "id-aca-encAttrs" -#define NID_id_aca_encAttrs 399 -#define OBJ_id_aca_encAttrs OBJ_id_aca,6L - -#define SN_id_qcs_pkixQCSyntax_v1 "id-qcs-pkixQCSyntax-v1" -#define NID_id_qcs_pkixQCSyntax_v1 359 -#define OBJ_id_qcs_pkixQCSyntax_v1 OBJ_id_qcs,1L - -#define SN_ipAddr_asNumber "ipAddr-asNumber" -#define NID_ipAddr_asNumber 1241 -#define OBJ_ipAddr_asNumber OBJ_id_cp,2L - -#define SN_ipAddr_asNumberv2 "ipAddr-asNumberv2" -#define NID_ipAddr_asNumberv2 1242 -#define OBJ_ipAddr_asNumberv2 OBJ_id_cp,3L - -#define SN_id_cct_crs "id-cct-crs" -#define NID_id_cct_crs 360 -#define OBJ_id_cct_crs OBJ_id_cct,1L - -#define SN_id_cct_PKIData "id-cct-PKIData" -#define NID_id_cct_PKIData 361 -#define OBJ_id_cct_PKIData OBJ_id_cct,2L - -#define SN_id_cct_PKIResponse "id-cct-PKIResponse" -#define NID_id_cct_PKIResponse 362 -#define OBJ_id_cct_PKIResponse OBJ_id_cct,3L - -#define SN_id_ppl_anyLanguage "id-ppl-anyLanguage" -#define LN_id_ppl_anyLanguage "Any language" -#define NID_id_ppl_anyLanguage 664 -#define OBJ_id_ppl_anyLanguage OBJ_id_ppl,0L - -#define SN_id_ppl_inheritAll "id-ppl-inheritAll" -#define LN_id_ppl_inheritAll "Inherit all" -#define NID_id_ppl_inheritAll 665 -#define OBJ_id_ppl_inheritAll OBJ_id_ppl,1L - -#define SN_Independent "id-ppl-independent" -#define LN_Independent "Independent" -#define NID_Independent 667 -#define OBJ_Independent OBJ_id_ppl,2L - -#define SN_ad_OCSP "OCSP" -#define LN_ad_OCSP "OCSP" -#define NID_ad_OCSP 178 -#define OBJ_ad_OCSP OBJ_id_ad,1L - -#define SN_ad_ca_issuers "caIssuers" -#define LN_ad_ca_issuers "CA Issuers" -#define NID_ad_ca_issuers 179 -#define OBJ_ad_ca_issuers OBJ_id_ad,2L - -#define SN_ad_timeStamping "ad_timestamping" -#define LN_ad_timeStamping "AD Time Stamping" -#define NID_ad_timeStamping 363 -#define OBJ_ad_timeStamping OBJ_id_ad,3L - -#define SN_ad_dvcs "AD_DVCS" -#define LN_ad_dvcs "ad dvcs" -#define NID_ad_dvcs 364 -#define OBJ_ad_dvcs OBJ_id_ad,4L - -#define SN_caRepository "caRepository" -#define LN_caRepository "CA Repository" -#define NID_caRepository 785 -#define OBJ_caRepository OBJ_id_ad,5L - -#define SN_rpkiManifest "rpkiManifest" -#define LN_rpkiManifest "RPKI Manifest" -#define NID_rpkiManifest 1243 -#define OBJ_rpkiManifest OBJ_id_ad,10L - -#define SN_signedObject "signedObject" -#define LN_signedObject "Signed Object" -#define NID_signedObject 1244 -#define OBJ_signedObject OBJ_id_ad,11L - -#define SN_rpkiNotify "rpkiNotify" -#define LN_rpkiNotify "RPKI Notify" -#define NID_rpkiNotify 1245 -#define OBJ_rpkiNotify OBJ_id_ad,13L - -#define OBJ_id_pkix_OCSP OBJ_ad_OCSP - -#define SN_id_pkix_OCSP_basic "basicOCSPResponse" -#define LN_id_pkix_OCSP_basic "Basic OCSP Response" -#define NID_id_pkix_OCSP_basic 365 -#define OBJ_id_pkix_OCSP_basic OBJ_id_pkix_OCSP,1L - -#define SN_id_pkix_OCSP_Nonce "Nonce" -#define LN_id_pkix_OCSP_Nonce "OCSP Nonce" -#define NID_id_pkix_OCSP_Nonce 366 -#define OBJ_id_pkix_OCSP_Nonce OBJ_id_pkix_OCSP,2L - -#define SN_id_pkix_OCSP_CrlID "CrlID" -#define LN_id_pkix_OCSP_CrlID "OCSP CRL ID" -#define NID_id_pkix_OCSP_CrlID 367 -#define OBJ_id_pkix_OCSP_CrlID OBJ_id_pkix_OCSP,3L - -#define SN_id_pkix_OCSP_acceptableResponses "acceptableResponses" -#define LN_id_pkix_OCSP_acceptableResponses "Acceptable OCSP Responses" -#define NID_id_pkix_OCSP_acceptableResponses 368 -#define OBJ_id_pkix_OCSP_acceptableResponses OBJ_id_pkix_OCSP,4L - -#define SN_id_pkix_OCSP_noCheck "noCheck" -#define LN_id_pkix_OCSP_noCheck "OCSP No Check" -#define NID_id_pkix_OCSP_noCheck 369 -#define OBJ_id_pkix_OCSP_noCheck OBJ_id_pkix_OCSP,5L - -#define SN_id_pkix_OCSP_archiveCutoff "archiveCutoff" -#define LN_id_pkix_OCSP_archiveCutoff "OCSP Archive Cutoff" -#define NID_id_pkix_OCSP_archiveCutoff 370 -#define OBJ_id_pkix_OCSP_archiveCutoff OBJ_id_pkix_OCSP,6L - -#define SN_id_pkix_OCSP_serviceLocator "serviceLocator" -#define LN_id_pkix_OCSP_serviceLocator "OCSP Service Locator" -#define NID_id_pkix_OCSP_serviceLocator 371 -#define OBJ_id_pkix_OCSP_serviceLocator OBJ_id_pkix_OCSP,7L - -#define SN_id_pkix_OCSP_extendedStatus "extendedStatus" -#define LN_id_pkix_OCSP_extendedStatus "Extended OCSP Status" -#define NID_id_pkix_OCSP_extendedStatus 372 -#define OBJ_id_pkix_OCSP_extendedStatus OBJ_id_pkix_OCSP,8L - -#define SN_id_pkix_OCSP_valid "valid" -#define NID_id_pkix_OCSP_valid 373 -#define OBJ_id_pkix_OCSP_valid OBJ_id_pkix_OCSP,9L - -#define SN_id_pkix_OCSP_path "path" -#define NID_id_pkix_OCSP_path 374 -#define OBJ_id_pkix_OCSP_path OBJ_id_pkix_OCSP,10L - -#define SN_id_pkix_OCSP_trustRoot "trustRoot" -#define LN_id_pkix_OCSP_trustRoot "Trust Root" -#define NID_id_pkix_OCSP_trustRoot 375 -#define OBJ_id_pkix_OCSP_trustRoot OBJ_id_pkix_OCSP,11L - -#define SN_algorithm "algorithm" -#define LN_algorithm "algorithm" -#define NID_algorithm 376 -#define OBJ_algorithm 1L,3L,14L,3L,2L - -#define SN_md5WithRSA "RSA-NP-MD5" -#define LN_md5WithRSA "md5WithRSA" -#define NID_md5WithRSA 104 -#define OBJ_md5WithRSA OBJ_algorithm,3L - -#define SN_des_ecb "DES-ECB" -#define LN_des_ecb "des-ecb" -#define NID_des_ecb 29 -#define OBJ_des_ecb OBJ_algorithm,6L - -#define SN_des_cbc "DES-CBC" -#define LN_des_cbc "des-cbc" -#define NID_des_cbc 31 -#define OBJ_des_cbc OBJ_algorithm,7L - -#define SN_des_ofb64 "DES-OFB" -#define LN_des_ofb64 "des-ofb" -#define NID_des_ofb64 45 -#define OBJ_des_ofb64 OBJ_algorithm,8L - -#define SN_des_cfb64 "DES-CFB" -#define LN_des_cfb64 "des-cfb" -#define NID_des_cfb64 30 -#define OBJ_des_cfb64 OBJ_algorithm,9L - -#define SN_rsaSignature "rsaSignature" -#define NID_rsaSignature 377 -#define OBJ_rsaSignature OBJ_algorithm,11L - -#define SN_dsa_2 "DSA-old" -#define LN_dsa_2 "dsaEncryption-old" -#define NID_dsa_2 67 -#define OBJ_dsa_2 OBJ_algorithm,12L - -#define SN_dsaWithSHA "DSA-SHA" -#define LN_dsaWithSHA "dsaWithSHA" -#define NID_dsaWithSHA 66 -#define OBJ_dsaWithSHA OBJ_algorithm,13L - -#define SN_shaWithRSAEncryption "RSA-SHA" -#define LN_shaWithRSAEncryption "shaWithRSAEncryption" -#define NID_shaWithRSAEncryption 42 -#define OBJ_shaWithRSAEncryption OBJ_algorithm,15L - -#define SN_des_ede_ecb "DES-EDE" -#define LN_des_ede_ecb "des-ede" -#define NID_des_ede_ecb 32 -#define OBJ_des_ede_ecb OBJ_algorithm,17L - -#define SN_des_ede3_ecb "DES-EDE3" -#define LN_des_ede3_ecb "des-ede3" -#define NID_des_ede3_ecb 33 - -#define SN_des_ede_cbc "DES-EDE-CBC" -#define LN_des_ede_cbc "des-ede-cbc" -#define NID_des_ede_cbc 43 - -#define SN_des_ede_cfb64 "DES-EDE-CFB" -#define LN_des_ede_cfb64 "des-ede-cfb" -#define NID_des_ede_cfb64 60 - -#define SN_des_ede3_cfb64 "DES-EDE3-CFB" -#define LN_des_ede3_cfb64 "des-ede3-cfb" -#define NID_des_ede3_cfb64 61 - -#define SN_des_ede_ofb64 "DES-EDE-OFB" -#define LN_des_ede_ofb64 "des-ede-ofb" -#define NID_des_ede_ofb64 62 - -#define SN_des_ede3_ofb64 "DES-EDE3-OFB" -#define LN_des_ede3_ofb64 "des-ede3-ofb" -#define NID_des_ede3_ofb64 63 - -#define SN_desx_cbc "DESX-CBC" -#define LN_desx_cbc "desx-cbc" -#define NID_desx_cbc 80 - -#define SN_sha "SHA" -#define LN_sha "sha" -#define NID_sha 41 -#define OBJ_sha OBJ_algorithm,18L - -#define SN_sha1 "SHA1" -#define LN_sha1 "sha1" -#define NID_sha1 64 -#define OBJ_sha1 OBJ_algorithm,26L - -#define SN_dsaWithSHA1_2 "DSA-SHA1-old" -#define LN_dsaWithSHA1_2 "dsaWithSHA1-old" -#define NID_dsaWithSHA1_2 70 -#define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L - -#define SN_sha1WithRSA "RSA-SHA1-2" -#define LN_sha1WithRSA "sha1WithRSA" -#define NID_sha1WithRSA 115 -#define OBJ_sha1WithRSA OBJ_algorithm,29L - -#define SN_ripemd160 "RIPEMD160" -#define LN_ripemd160 "ripemd160" -#define NID_ripemd160 117 -#define OBJ_ripemd160 1L,3L,36L,3L,2L,1L - -#define SN_ripemd160WithRSA "RSA-RIPEMD160" -#define LN_ripemd160WithRSA "ripemd160WithRSA" -#define NID_ripemd160WithRSA 119 -#define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L - -#define SN_blake2bmac "BLAKE2BMAC" -#define LN_blake2bmac "blake2bmac" -#define NID_blake2bmac 1201 -#define OBJ_blake2bmac 1L,3L,6L,1L,4L,1L,1722L,12L,2L,1L - -#define SN_blake2smac "BLAKE2SMAC" -#define LN_blake2smac "blake2smac" -#define NID_blake2smac 1202 -#define OBJ_blake2smac 1L,3L,6L,1L,4L,1L,1722L,12L,2L,2L - -#define SN_blake2b512 "BLAKE2b512" -#define LN_blake2b512 "blake2b512" -#define NID_blake2b512 1056 -#define OBJ_blake2b512 OBJ_blake2bmac,16L - -#define SN_blake2s256 "BLAKE2s256" -#define LN_blake2s256 "blake2s256" -#define NID_blake2s256 1057 -#define OBJ_blake2s256 OBJ_blake2smac,8L - -#define SN_sxnet "SXNetID" -#define LN_sxnet "Strong Extranet ID" -#define NID_sxnet 143 -#define OBJ_sxnet 1L,3L,101L,1L,4L,1L - -#define SN_X500 "X500" -#define LN_X500 "directory services (X.500)" -#define NID_X500 11 -#define OBJ_X500 2L,5L - -#define SN_X509 "X509" -#define NID_X509 12 -#define OBJ_X509 OBJ_X500,4L - -#define SN_commonName "CN" -#define LN_commonName "commonName" -#define NID_commonName 13 -#define OBJ_commonName OBJ_X509,3L - -#define SN_surname "SN" -#define LN_surname "surname" -#define NID_surname 100 -#define OBJ_surname OBJ_X509,4L - -#define LN_serialNumber "serialNumber" -#define NID_serialNumber 105 -#define OBJ_serialNumber OBJ_X509,5L - -#define SN_countryName "C" -#define LN_countryName "countryName" -#define NID_countryName 14 -#define OBJ_countryName OBJ_X509,6L - -#define SN_localityName "L" -#define LN_localityName "localityName" -#define NID_localityName 15 -#define OBJ_localityName OBJ_X509,7L - -#define SN_stateOrProvinceName "ST" -#define LN_stateOrProvinceName "stateOrProvinceName" -#define NID_stateOrProvinceName 16 -#define OBJ_stateOrProvinceName OBJ_X509,8L - -#define SN_streetAddress "street" -#define LN_streetAddress "streetAddress" -#define NID_streetAddress 660 -#define OBJ_streetAddress OBJ_X509,9L - -#define SN_organizationName "O" -#define LN_organizationName "organizationName" -#define NID_organizationName 17 -#define OBJ_organizationName OBJ_X509,10L - -#define SN_organizationalUnitName "OU" -#define LN_organizationalUnitName "organizationalUnitName" -#define NID_organizationalUnitName 18 -#define OBJ_organizationalUnitName OBJ_X509,11L - -#define SN_title "title" -#define LN_title "title" -#define NID_title 106 -#define OBJ_title OBJ_X509,12L - -#define LN_description "description" -#define NID_description 107 -#define OBJ_description OBJ_X509,13L - -#define LN_searchGuide "searchGuide" -#define NID_searchGuide 859 -#define OBJ_searchGuide OBJ_X509,14L - -#define LN_businessCategory "businessCategory" -#define NID_businessCategory 860 -#define OBJ_businessCategory OBJ_X509,15L - -#define LN_postalAddress "postalAddress" -#define NID_postalAddress 861 -#define OBJ_postalAddress OBJ_X509,16L - -#define LN_postalCode "postalCode" -#define NID_postalCode 661 -#define OBJ_postalCode OBJ_X509,17L - -#define LN_postOfficeBox "postOfficeBox" -#define NID_postOfficeBox 862 -#define OBJ_postOfficeBox OBJ_X509,18L - -#define LN_physicalDeliveryOfficeName "physicalDeliveryOfficeName" -#define NID_physicalDeliveryOfficeName 863 -#define OBJ_physicalDeliveryOfficeName OBJ_X509,19L - -#define LN_telephoneNumber "telephoneNumber" -#define NID_telephoneNumber 864 -#define OBJ_telephoneNumber OBJ_X509,20L - -#define LN_telexNumber "telexNumber" -#define NID_telexNumber 865 -#define OBJ_telexNumber OBJ_X509,21L - -#define LN_teletexTerminalIdentifier "teletexTerminalIdentifier" -#define NID_teletexTerminalIdentifier 866 -#define OBJ_teletexTerminalIdentifier OBJ_X509,22L - -#define LN_facsimileTelephoneNumber "facsimileTelephoneNumber" -#define NID_facsimileTelephoneNumber 867 -#define OBJ_facsimileTelephoneNumber OBJ_X509,23L - -#define LN_x121Address "x121Address" -#define NID_x121Address 868 -#define OBJ_x121Address OBJ_X509,24L - -#define LN_internationaliSDNNumber "internationaliSDNNumber" -#define NID_internationaliSDNNumber 869 -#define OBJ_internationaliSDNNumber OBJ_X509,25L - -#define LN_registeredAddress "registeredAddress" -#define NID_registeredAddress 870 -#define OBJ_registeredAddress OBJ_X509,26L - -#define LN_destinationIndicator "destinationIndicator" -#define NID_destinationIndicator 871 -#define OBJ_destinationIndicator OBJ_X509,27L - -#define LN_preferredDeliveryMethod "preferredDeliveryMethod" -#define NID_preferredDeliveryMethod 872 -#define OBJ_preferredDeliveryMethod OBJ_X509,28L - -#define LN_presentationAddress "presentationAddress" -#define NID_presentationAddress 873 -#define OBJ_presentationAddress OBJ_X509,29L - -#define LN_supportedApplicationContext "supportedApplicationContext" -#define NID_supportedApplicationContext 874 -#define OBJ_supportedApplicationContext OBJ_X509,30L - -#define SN_member "member" -#define NID_member 875 -#define OBJ_member OBJ_X509,31L - -#define SN_owner "owner" -#define NID_owner 876 -#define OBJ_owner OBJ_X509,32L - -#define LN_roleOccupant "roleOccupant" -#define NID_roleOccupant 877 -#define OBJ_roleOccupant OBJ_X509,33L - -#define SN_seeAlso "seeAlso" -#define NID_seeAlso 878 -#define OBJ_seeAlso OBJ_X509,34L - -#define LN_userPassword "userPassword" -#define NID_userPassword 879 -#define OBJ_userPassword OBJ_X509,35L - -#define LN_userCertificate "userCertificate" -#define NID_userCertificate 880 -#define OBJ_userCertificate OBJ_X509,36L - -#define LN_cACertificate "cACertificate" -#define NID_cACertificate 881 -#define OBJ_cACertificate OBJ_X509,37L - -#define LN_authorityRevocationList "authorityRevocationList" -#define NID_authorityRevocationList 882 -#define OBJ_authorityRevocationList OBJ_X509,38L - -#define LN_certificateRevocationList "certificateRevocationList" -#define NID_certificateRevocationList 883 -#define OBJ_certificateRevocationList OBJ_X509,39L - -#define LN_crossCertificatePair "crossCertificatePair" -#define NID_crossCertificatePair 884 -#define OBJ_crossCertificatePair OBJ_X509,40L - -#define SN_name "name" -#define LN_name "name" -#define NID_name 173 -#define OBJ_name OBJ_X509,41L - -#define SN_givenName "GN" -#define LN_givenName "givenName" -#define NID_givenName 99 -#define OBJ_givenName OBJ_X509,42L - -#define SN_initials "initials" -#define LN_initials "initials" -#define NID_initials 101 -#define OBJ_initials OBJ_X509,43L - -#define LN_generationQualifier "generationQualifier" -#define NID_generationQualifier 509 -#define OBJ_generationQualifier OBJ_X509,44L - -#define LN_x500UniqueIdentifier "x500UniqueIdentifier" -#define NID_x500UniqueIdentifier 503 -#define OBJ_x500UniqueIdentifier OBJ_X509,45L - -#define SN_dnQualifier "dnQualifier" -#define LN_dnQualifier "dnQualifier" -#define NID_dnQualifier 174 -#define OBJ_dnQualifier OBJ_X509,46L - -#define LN_enhancedSearchGuide "enhancedSearchGuide" -#define NID_enhancedSearchGuide 885 -#define OBJ_enhancedSearchGuide OBJ_X509,47L - -#define LN_protocolInformation "protocolInformation" -#define NID_protocolInformation 886 -#define OBJ_protocolInformation OBJ_X509,48L - -#define LN_distinguishedName "distinguishedName" -#define NID_distinguishedName 887 -#define OBJ_distinguishedName OBJ_X509,49L - -#define LN_uniqueMember "uniqueMember" -#define NID_uniqueMember 888 -#define OBJ_uniqueMember OBJ_X509,50L - -#define LN_houseIdentifier "houseIdentifier" -#define NID_houseIdentifier 889 -#define OBJ_houseIdentifier OBJ_X509,51L - -#define LN_supportedAlgorithms "supportedAlgorithms" -#define NID_supportedAlgorithms 890 -#define OBJ_supportedAlgorithms OBJ_X509,52L - -#define LN_deltaRevocationList "deltaRevocationList" -#define NID_deltaRevocationList 891 -#define OBJ_deltaRevocationList OBJ_X509,53L - -#define SN_dmdName "dmdName" -#define NID_dmdName 892 -#define OBJ_dmdName OBJ_X509,54L - -#define LN_pseudonym "pseudonym" -#define NID_pseudonym 510 -#define OBJ_pseudonym OBJ_X509,65L - -#define SN_role "role" -#define LN_role "role" -#define NID_role 400 -#define OBJ_role OBJ_X509,72L - -#define LN_organizationIdentifier "organizationIdentifier" -#define NID_organizationIdentifier 1089 -#define OBJ_organizationIdentifier OBJ_X509,97L - -#define SN_countryCode3c "c3" -#define LN_countryCode3c "countryCode3c" -#define NID_countryCode3c 1090 -#define OBJ_countryCode3c OBJ_X509,98L - -#define SN_countryCode3n "n3" -#define LN_countryCode3n "countryCode3n" -#define NID_countryCode3n 1091 -#define OBJ_countryCode3n OBJ_X509,99L - -#define LN_dnsName "dnsName" -#define NID_dnsName 1092 -#define OBJ_dnsName OBJ_X509,100L - -#define SN_X500algorithms "X500algorithms" -#define LN_X500algorithms "directory services - algorithms" -#define NID_X500algorithms 378 -#define OBJ_X500algorithms OBJ_X500,8L - -#define SN_rsa "RSA" -#define LN_rsa "rsa" -#define NID_rsa 19 -#define OBJ_rsa OBJ_X500algorithms,1L,1L - -#define SN_mdc2WithRSA "RSA-MDC2" -#define LN_mdc2WithRSA "mdc2WithRSA" -#define NID_mdc2WithRSA 96 -#define OBJ_mdc2WithRSA OBJ_X500algorithms,3L,100L - -#define SN_mdc2 "MDC2" -#define LN_mdc2 "mdc2" -#define NID_mdc2 95 -#define OBJ_mdc2 OBJ_X500algorithms,3L,101L - -#define SN_id_ce "id-ce" -#define NID_id_ce 81 -#define OBJ_id_ce OBJ_X500,29L - -#define SN_subject_directory_attributes "subjectDirectoryAttributes" -#define LN_subject_directory_attributes "X509v3 Subject Directory Attributes" -#define NID_subject_directory_attributes 769 -#define OBJ_subject_directory_attributes OBJ_id_ce,9L - -#define SN_subject_key_identifier "subjectKeyIdentifier" -#define LN_subject_key_identifier "X509v3 Subject Key Identifier" -#define NID_subject_key_identifier 82 -#define OBJ_subject_key_identifier OBJ_id_ce,14L - -#define SN_key_usage "keyUsage" -#define LN_key_usage "X509v3 Key Usage" -#define NID_key_usage 83 -#define OBJ_key_usage OBJ_id_ce,15L - -#define SN_private_key_usage_period "privateKeyUsagePeriod" -#define LN_private_key_usage_period "X509v3 Private Key Usage Period" -#define NID_private_key_usage_period 84 -#define OBJ_private_key_usage_period OBJ_id_ce,16L - -#define SN_subject_alt_name "subjectAltName" -#define LN_subject_alt_name "X509v3 Subject Alternative Name" -#define NID_subject_alt_name 85 -#define OBJ_subject_alt_name OBJ_id_ce,17L - -#define SN_issuer_alt_name "issuerAltName" -#define LN_issuer_alt_name "X509v3 Issuer Alternative Name" -#define NID_issuer_alt_name 86 -#define OBJ_issuer_alt_name OBJ_id_ce,18L - -#define SN_basic_constraints "basicConstraints" -#define LN_basic_constraints "X509v3 Basic Constraints" -#define NID_basic_constraints 87 -#define OBJ_basic_constraints OBJ_id_ce,19L - -#define SN_crl_number "crlNumber" -#define LN_crl_number "X509v3 CRL Number" -#define NID_crl_number 88 -#define OBJ_crl_number OBJ_id_ce,20L - -#define SN_crl_reason "CRLReason" -#define LN_crl_reason "X509v3 CRL Reason Code" -#define NID_crl_reason 141 -#define OBJ_crl_reason OBJ_id_ce,21L - -#define SN_invalidity_date "invalidityDate" -#define LN_invalidity_date "Invalidity Date" -#define NID_invalidity_date 142 -#define OBJ_invalidity_date OBJ_id_ce,24L - -#define SN_delta_crl "deltaCRL" -#define LN_delta_crl "X509v3 Delta CRL Indicator" -#define NID_delta_crl 140 -#define OBJ_delta_crl OBJ_id_ce,27L - -#define SN_issuing_distribution_point "issuingDistributionPoint" -#define LN_issuing_distribution_point "X509v3 Issuing Distribution Point" -#define NID_issuing_distribution_point 770 -#define OBJ_issuing_distribution_point OBJ_id_ce,28L - -#define SN_certificate_issuer "certificateIssuer" -#define LN_certificate_issuer "X509v3 Certificate Issuer" -#define NID_certificate_issuer 771 -#define OBJ_certificate_issuer OBJ_id_ce,29L - -#define SN_name_constraints "nameConstraints" -#define LN_name_constraints "X509v3 Name Constraints" -#define NID_name_constraints 666 -#define OBJ_name_constraints OBJ_id_ce,30L - -#define SN_crl_distribution_points "crlDistributionPoints" -#define LN_crl_distribution_points "X509v3 CRL Distribution Points" -#define NID_crl_distribution_points 103 -#define OBJ_crl_distribution_points OBJ_id_ce,31L - -#define SN_certificate_policies "certificatePolicies" -#define LN_certificate_policies "X509v3 Certificate Policies" -#define NID_certificate_policies 89 -#define OBJ_certificate_policies OBJ_id_ce,32L - -#define SN_any_policy "anyPolicy" -#define LN_any_policy "X509v3 Any Policy" -#define NID_any_policy 746 -#define OBJ_any_policy OBJ_certificate_policies,0L - -#define SN_policy_mappings "policyMappings" -#define LN_policy_mappings "X509v3 Policy Mappings" -#define NID_policy_mappings 747 -#define OBJ_policy_mappings OBJ_id_ce,33L - -#define SN_authority_key_identifier "authorityKeyIdentifier" -#define LN_authority_key_identifier "X509v3 Authority Key Identifier" -#define NID_authority_key_identifier 90 -#define OBJ_authority_key_identifier OBJ_id_ce,35L - -#define SN_policy_constraints "policyConstraints" -#define LN_policy_constraints "X509v3 Policy Constraints" -#define NID_policy_constraints 401 -#define OBJ_policy_constraints OBJ_id_ce,36L - -#define SN_ext_key_usage "extendedKeyUsage" -#define LN_ext_key_usage "X509v3 Extended Key Usage" -#define NID_ext_key_usage 126 -#define OBJ_ext_key_usage OBJ_id_ce,37L - -#define SN_authority_attribute_identifier "authorityAttributeIdentifier" -#define LN_authority_attribute_identifier "X509v3 Authority Attribute Identifier" -#define NID_authority_attribute_identifier 1295 -#define OBJ_authority_attribute_identifier OBJ_id_ce,38L - -#define SN_role_spec_cert_identifier "roleSpecCertIdentifier" -#define LN_role_spec_cert_identifier "X509v3 Role Specification Certificate Identifier" -#define NID_role_spec_cert_identifier 1296 -#define OBJ_role_spec_cert_identifier OBJ_id_ce,39L - -#define SN_basic_att_constraints "basicAttConstraints" -#define LN_basic_att_constraints "X509v3 Basic Attribute Certificate Constraints" -#define NID_basic_att_constraints 1297 -#define OBJ_basic_att_constraints OBJ_id_ce,41L - -#define SN_delegated_name_constraints "delegatedNameConstraints" -#define LN_delegated_name_constraints "X509v3 Delegated Name Constraints" -#define NID_delegated_name_constraints 1298 -#define OBJ_delegated_name_constraints OBJ_id_ce,42L - -#define SN_time_specification "timeSpecification" -#define LN_time_specification "X509v3 Time Specification" -#define NID_time_specification 1299 -#define OBJ_time_specification OBJ_id_ce,43L - -#define SN_freshest_crl "freshestCRL" -#define LN_freshest_crl "X509v3 Freshest CRL" -#define NID_freshest_crl 857 -#define OBJ_freshest_crl OBJ_id_ce,46L - -#define SN_attribute_descriptor "attributeDescriptor" -#define LN_attribute_descriptor "X509v3 Attribute Descriptor" -#define NID_attribute_descriptor 1300 -#define OBJ_attribute_descriptor OBJ_id_ce,48L - -#define SN_user_notice "userNotice" -#define LN_user_notice "X509v3 User Notice" -#define NID_user_notice 1301 -#define OBJ_user_notice OBJ_id_ce,49L - -#define SN_soa_identifier "sOAIdentifier" -#define LN_soa_identifier "X509v3 Source of Authority Identifier" -#define NID_soa_identifier 1302 -#define OBJ_soa_identifier OBJ_id_ce,50L - -#define SN_acceptable_cert_policies "acceptableCertPolicies" -#define LN_acceptable_cert_policies "X509v3 Acceptable Certification Policies" -#define NID_acceptable_cert_policies 1303 -#define OBJ_acceptable_cert_policies OBJ_id_ce,52L - -#define SN_inhibit_any_policy "inhibitAnyPolicy" -#define LN_inhibit_any_policy "X509v3 Inhibit Any Policy" -#define NID_inhibit_any_policy 748 -#define OBJ_inhibit_any_policy OBJ_id_ce,54L - -#define SN_target_information "targetInformation" -#define LN_target_information "X509v3 AC Targeting" -#define NID_target_information 402 -#define OBJ_target_information OBJ_id_ce,55L - -#define SN_no_rev_avail "noRevAvail" -#define LN_no_rev_avail "X509v3 No Revocation Available" -#define NID_no_rev_avail 403 -#define OBJ_no_rev_avail OBJ_id_ce,56L - -#define SN_acceptable_privilege_policies "acceptablePrivPolicies" -#define LN_acceptable_privilege_policies "X509v3 Acceptable Privilege Policies" -#define NID_acceptable_privilege_policies 1304 -#define OBJ_acceptable_privilege_policies OBJ_id_ce,57L - -#define SN_indirect_issuer "indirectIssuer" -#define LN_indirect_issuer "X509v3 Indirect Issuer" -#define NID_indirect_issuer 1305 -#define OBJ_indirect_issuer OBJ_id_ce,61L - -#define SN_no_assertion "noAssertion" -#define LN_no_assertion "X509v3 No Assertion" -#define NID_no_assertion 1306 -#define OBJ_no_assertion OBJ_id_ce,62L - -#define SN_id_aa_issuing_distribution_point "aAissuingDistributionPoint" -#define LN_id_aa_issuing_distribution_point "X509v3 Attribute Authority Issuing Distribution Point" -#define NID_id_aa_issuing_distribution_point 1307 -#define OBJ_id_aa_issuing_distribution_point OBJ_id_ce,63L - -#define SN_issued_on_behalf_of "issuedOnBehalfOf" -#define LN_issued_on_behalf_of "X509v3 Issued On Behalf Of" -#define NID_issued_on_behalf_of 1308 -#define OBJ_issued_on_behalf_of OBJ_id_ce,64L - -#define SN_single_use "singleUse" -#define LN_single_use "X509v3 Single Use" -#define NID_single_use 1309 -#define OBJ_single_use OBJ_id_ce,65L - -#define SN_group_ac "groupAC" -#define LN_group_ac "X509v3 Group Attribute Certificate" -#define NID_group_ac 1310 -#define OBJ_group_ac OBJ_id_ce,66L - -#define SN_allowed_attribute_assignments "allowedAttributeAssignments" -#define LN_allowed_attribute_assignments "X509v3 Allowed Attribute Assignments" -#define NID_allowed_attribute_assignments 1311 -#define OBJ_allowed_attribute_assignments OBJ_id_ce,67L - -#define SN_attribute_mappings "attributeMappings" -#define LN_attribute_mappings "X509v3 Attribute Mappings" -#define NID_attribute_mappings 1312 -#define OBJ_attribute_mappings OBJ_id_ce,68L - -#define SN_holder_name_constraints "holderNameConstraints" -#define LN_holder_name_constraints "X509v3 Holder Name Constraints" -#define NID_holder_name_constraints 1313 -#define OBJ_holder_name_constraints OBJ_id_ce,69L - -#define SN_authorization_validation "authorizationValidation" -#define LN_authorization_validation "X509v3 Authorization Validation" -#define NID_authorization_validation 1314 -#define OBJ_authorization_validation OBJ_id_ce,70L - -#define SN_prot_restrict "protRestrict" -#define LN_prot_restrict "X509v3 Protocol Restriction" -#define NID_prot_restrict 1315 -#define OBJ_prot_restrict OBJ_id_ce,71L - -#define SN_subject_alt_public_key_info "subjectAltPublicKeyInfo" -#define LN_subject_alt_public_key_info "X509v3 Subject Alternative Public Key Info" -#define NID_subject_alt_public_key_info 1316 -#define OBJ_subject_alt_public_key_info OBJ_id_ce,72L - -#define SN_alt_signature_algorithm "altSignatureAlgorithm" -#define LN_alt_signature_algorithm "X509v3 Alternative Signature Algorithm" -#define NID_alt_signature_algorithm 1317 -#define OBJ_alt_signature_algorithm OBJ_id_ce,73L - -#define SN_alt_signature_value "altSignatureValue" -#define LN_alt_signature_value "X509v3 Alternative Signature Value" -#define NID_alt_signature_value 1318 -#define OBJ_alt_signature_value OBJ_id_ce,74L - -#define SN_associated_information "associatedInformation" -#define LN_associated_information "X509v3 Associated Information" -#define NID_associated_information 1319 -#define OBJ_associated_information OBJ_id_ce,75L - -#define SN_anyExtendedKeyUsage "anyExtendedKeyUsage" -#define LN_anyExtendedKeyUsage "Any Extended Key Usage" -#define NID_anyExtendedKeyUsage 910 -#define OBJ_anyExtendedKeyUsage OBJ_ext_key_usage,0L - -#define SN_netscape "Netscape" -#define LN_netscape "Netscape Communications Corp." -#define NID_netscape 57 -#define OBJ_netscape 2L,16L,840L,1L,113730L - -#define SN_netscape_cert_extension "nsCertExt" -#define LN_netscape_cert_extension "Netscape Certificate Extension" -#define NID_netscape_cert_extension 58 -#define OBJ_netscape_cert_extension OBJ_netscape,1L - -#define SN_netscape_data_type "nsDataType" -#define LN_netscape_data_type "Netscape Data Type" -#define NID_netscape_data_type 59 -#define OBJ_netscape_data_type OBJ_netscape,2L - -#define SN_netscape_cert_type "nsCertType" -#define LN_netscape_cert_type "Netscape Cert Type" -#define NID_netscape_cert_type 71 -#define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L - -#define SN_netscape_base_url "nsBaseUrl" -#define LN_netscape_base_url "Netscape Base Url" -#define NID_netscape_base_url 72 -#define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L - -#define SN_netscape_revocation_url "nsRevocationUrl" -#define LN_netscape_revocation_url "Netscape Revocation Url" -#define NID_netscape_revocation_url 73 -#define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L - -#define SN_netscape_ca_revocation_url "nsCaRevocationUrl" -#define LN_netscape_ca_revocation_url "Netscape CA Revocation Url" -#define NID_netscape_ca_revocation_url 74 -#define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L - -#define SN_netscape_renewal_url "nsRenewalUrl" -#define LN_netscape_renewal_url "Netscape Renewal Url" -#define NID_netscape_renewal_url 75 -#define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L - -#define SN_netscape_ca_policy_url "nsCaPolicyUrl" -#define LN_netscape_ca_policy_url "Netscape CA Policy Url" -#define NID_netscape_ca_policy_url 76 -#define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L - -#define SN_netscape_ssl_server_name "nsSslServerName" -#define LN_netscape_ssl_server_name "Netscape SSL Server Name" -#define NID_netscape_ssl_server_name 77 -#define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L - -#define SN_netscape_comment "nsComment" -#define LN_netscape_comment "Netscape Comment" -#define NID_netscape_comment 78 -#define OBJ_netscape_comment OBJ_netscape_cert_extension,13L - -#define SN_netscape_cert_sequence "nsCertSequence" -#define LN_netscape_cert_sequence "Netscape Certificate Sequence" -#define NID_netscape_cert_sequence 79 -#define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L - -#define SN_ns_sgc "nsSGC" -#define LN_ns_sgc "Netscape Server Gated Crypto" -#define NID_ns_sgc 139 -#define OBJ_ns_sgc OBJ_netscape,4L,1L - -#define SN_org "ORG" -#define LN_org "org" -#define NID_org 379 -#define OBJ_org OBJ_iso,3L - -#define SN_dod "DOD" -#define LN_dod "dod" -#define NID_dod 380 -#define OBJ_dod OBJ_org,6L - -#define SN_iana "IANA" -#define LN_iana "iana" -#define NID_iana 381 -#define OBJ_iana OBJ_dod,1L - -#define OBJ_internet OBJ_iana - -#define SN_Directory "directory" -#define LN_Directory "Directory" -#define NID_Directory 382 -#define OBJ_Directory OBJ_internet,1L - -#define SN_Management "mgmt" -#define LN_Management "Management" -#define NID_Management 383 -#define OBJ_Management OBJ_internet,2L - -#define SN_Experimental "experimental" -#define LN_Experimental "Experimental" -#define NID_Experimental 384 -#define OBJ_Experimental OBJ_internet,3L - -#define SN_Private "private" -#define LN_Private "Private" -#define NID_Private 385 -#define OBJ_Private OBJ_internet,4L - -#define SN_Security "security" -#define LN_Security "Security" -#define NID_Security 386 -#define OBJ_Security OBJ_internet,5L - -#define SN_SNMPv2 "snmpv2" -#define LN_SNMPv2 "SNMPv2" -#define NID_SNMPv2 387 -#define OBJ_SNMPv2 OBJ_internet,6L - -#define LN_Mail "Mail" -#define NID_Mail 388 -#define OBJ_Mail OBJ_internet,7L - -#define SN_Enterprises "enterprises" -#define LN_Enterprises "Enterprises" -#define NID_Enterprises 389 -#define OBJ_Enterprises OBJ_Private,1L - -#define SN_dcObject "dcobject" -#define LN_dcObject "dcObject" -#define NID_dcObject 390 -#define OBJ_dcObject OBJ_Enterprises,1466L,344L - -#define SN_id_kp_wisun_fan_device "id-kp-wisun-fan-device" -#define LN_id_kp_wisun_fan_device "Wi-SUN Alliance Field Area Network (FAN)" -#define NID_id_kp_wisun_fan_device 1322 -#define OBJ_id_kp_wisun_fan_device OBJ_Enterprises,45605L,1L - -#define SN_mime_mhs "mime-mhs" -#define LN_mime_mhs "MIME MHS" -#define NID_mime_mhs 504 -#define OBJ_mime_mhs OBJ_Mail,1L - -#define SN_mime_mhs_headings "mime-mhs-headings" -#define LN_mime_mhs_headings "mime-mhs-headings" -#define NID_mime_mhs_headings 505 -#define OBJ_mime_mhs_headings OBJ_mime_mhs,1L - -#define SN_mime_mhs_bodies "mime-mhs-bodies" -#define LN_mime_mhs_bodies "mime-mhs-bodies" -#define NID_mime_mhs_bodies 506 -#define OBJ_mime_mhs_bodies OBJ_mime_mhs,2L - -#define SN_id_hex_partial_message "id-hex-partial-message" -#define LN_id_hex_partial_message "id-hex-partial-message" -#define NID_id_hex_partial_message 507 -#define OBJ_id_hex_partial_message OBJ_mime_mhs_headings,1L - -#define SN_id_hex_multipart_message "id-hex-multipart-message" -#define LN_id_hex_multipart_message "id-hex-multipart-message" -#define NID_id_hex_multipart_message 508 -#define OBJ_id_hex_multipart_message OBJ_mime_mhs_headings,2L - -#define SN_zlib_compression "ZLIB" -#define LN_zlib_compression "zlib compression" -#define NID_zlib_compression 125 -#define OBJ_zlib_compression OBJ_id_smime_alg,8L - -#define OBJ_csor 2L,16L,840L,1L,101L,3L - -#define OBJ_nistAlgorithms OBJ_csor,4L - -#define OBJ_aes OBJ_nistAlgorithms,1L - -#define SN_aes_128_ecb "AES-128-ECB" -#define LN_aes_128_ecb "aes-128-ecb" -#define NID_aes_128_ecb 418 -#define OBJ_aes_128_ecb OBJ_aes,1L - -#define SN_aes_128_cbc "AES-128-CBC" -#define LN_aes_128_cbc "aes-128-cbc" -#define NID_aes_128_cbc 419 -#define OBJ_aes_128_cbc OBJ_aes,2L - -#define SN_aes_128_ofb128 "AES-128-OFB" -#define LN_aes_128_ofb128 "aes-128-ofb" -#define NID_aes_128_ofb128 420 -#define OBJ_aes_128_ofb128 OBJ_aes,3L - -#define SN_aes_128_cfb128 "AES-128-CFB" -#define LN_aes_128_cfb128 "aes-128-cfb" -#define NID_aes_128_cfb128 421 -#define OBJ_aes_128_cfb128 OBJ_aes,4L - -#define SN_id_aes128_wrap "id-aes128-wrap" -#define NID_id_aes128_wrap 788 -#define OBJ_id_aes128_wrap OBJ_aes,5L - -#define SN_aes_128_gcm "id-aes128-GCM" -#define LN_aes_128_gcm "aes-128-gcm" -#define NID_aes_128_gcm 895 -#define OBJ_aes_128_gcm OBJ_aes,6L - -#define SN_aes_128_ccm "id-aes128-CCM" -#define LN_aes_128_ccm "aes-128-ccm" -#define NID_aes_128_ccm 896 -#define OBJ_aes_128_ccm OBJ_aes,7L - -#define SN_id_aes128_wrap_pad "id-aes128-wrap-pad" -#define NID_id_aes128_wrap_pad 897 -#define OBJ_id_aes128_wrap_pad OBJ_aes,8L - -#define SN_aes_192_ecb "AES-192-ECB" -#define LN_aes_192_ecb "aes-192-ecb" -#define NID_aes_192_ecb 422 -#define OBJ_aes_192_ecb OBJ_aes,21L - -#define SN_aes_192_cbc "AES-192-CBC" -#define LN_aes_192_cbc "aes-192-cbc" -#define NID_aes_192_cbc 423 -#define OBJ_aes_192_cbc OBJ_aes,22L - -#define SN_aes_192_ofb128 "AES-192-OFB" -#define LN_aes_192_ofb128 "aes-192-ofb" -#define NID_aes_192_ofb128 424 -#define OBJ_aes_192_ofb128 OBJ_aes,23L - -#define SN_aes_192_cfb128 "AES-192-CFB" -#define LN_aes_192_cfb128 "aes-192-cfb" -#define NID_aes_192_cfb128 425 -#define OBJ_aes_192_cfb128 OBJ_aes,24L - -#define SN_id_aes192_wrap "id-aes192-wrap" -#define NID_id_aes192_wrap 789 -#define OBJ_id_aes192_wrap OBJ_aes,25L - -#define SN_aes_192_gcm "id-aes192-GCM" -#define LN_aes_192_gcm "aes-192-gcm" -#define NID_aes_192_gcm 898 -#define OBJ_aes_192_gcm OBJ_aes,26L - -#define SN_aes_192_ccm "id-aes192-CCM" -#define LN_aes_192_ccm "aes-192-ccm" -#define NID_aes_192_ccm 899 -#define OBJ_aes_192_ccm OBJ_aes,27L - -#define SN_id_aes192_wrap_pad "id-aes192-wrap-pad" -#define NID_id_aes192_wrap_pad 900 -#define OBJ_id_aes192_wrap_pad OBJ_aes,28L - -#define SN_aes_256_ecb "AES-256-ECB" -#define LN_aes_256_ecb "aes-256-ecb" -#define NID_aes_256_ecb 426 -#define OBJ_aes_256_ecb OBJ_aes,41L - -#define SN_aes_256_cbc "AES-256-CBC" -#define LN_aes_256_cbc "aes-256-cbc" -#define NID_aes_256_cbc 427 -#define OBJ_aes_256_cbc OBJ_aes,42L - -#define SN_aes_256_ofb128 "AES-256-OFB" -#define LN_aes_256_ofb128 "aes-256-ofb" -#define NID_aes_256_ofb128 428 -#define OBJ_aes_256_ofb128 OBJ_aes,43L - -#define SN_aes_256_cfb128 "AES-256-CFB" -#define LN_aes_256_cfb128 "aes-256-cfb" -#define NID_aes_256_cfb128 429 -#define OBJ_aes_256_cfb128 OBJ_aes,44L - -#define SN_id_aes256_wrap "id-aes256-wrap" -#define NID_id_aes256_wrap 790 -#define OBJ_id_aes256_wrap OBJ_aes,45L - -#define SN_aes_256_gcm "id-aes256-GCM" -#define LN_aes_256_gcm "aes-256-gcm" -#define NID_aes_256_gcm 901 -#define OBJ_aes_256_gcm OBJ_aes,46L - -#define SN_aes_256_ccm "id-aes256-CCM" -#define LN_aes_256_ccm "aes-256-ccm" -#define NID_aes_256_ccm 902 -#define OBJ_aes_256_ccm OBJ_aes,47L - -#define SN_id_aes256_wrap_pad "id-aes256-wrap-pad" -#define NID_id_aes256_wrap_pad 903 -#define OBJ_id_aes256_wrap_pad OBJ_aes,48L - -#define SN_aes_128_xts "AES-128-XTS" -#define LN_aes_128_xts "aes-128-xts" -#define NID_aes_128_xts 913 -#define OBJ_aes_128_xts OBJ_ieee_siswg,0L,1L,1L - -#define SN_aes_256_xts "AES-256-XTS" -#define LN_aes_256_xts "aes-256-xts" -#define NID_aes_256_xts 914 -#define OBJ_aes_256_xts OBJ_ieee_siswg,0L,1L,2L - -#define SN_aes_128_cfb1 "AES-128-CFB1" -#define LN_aes_128_cfb1 "aes-128-cfb1" -#define NID_aes_128_cfb1 650 - -#define SN_aes_192_cfb1 "AES-192-CFB1" -#define LN_aes_192_cfb1 "aes-192-cfb1" -#define NID_aes_192_cfb1 651 - -#define SN_aes_256_cfb1 "AES-256-CFB1" -#define LN_aes_256_cfb1 "aes-256-cfb1" -#define NID_aes_256_cfb1 652 - -#define SN_aes_128_cfb8 "AES-128-CFB8" -#define LN_aes_128_cfb8 "aes-128-cfb8" -#define NID_aes_128_cfb8 653 - -#define SN_aes_192_cfb8 "AES-192-CFB8" -#define LN_aes_192_cfb8 "aes-192-cfb8" -#define NID_aes_192_cfb8 654 - -#define SN_aes_256_cfb8 "AES-256-CFB8" -#define LN_aes_256_cfb8 "aes-256-cfb8" -#define NID_aes_256_cfb8 655 - -#define SN_aes_128_ctr "AES-128-CTR" -#define LN_aes_128_ctr "aes-128-ctr" -#define NID_aes_128_ctr 904 - -#define SN_aes_192_ctr "AES-192-CTR" -#define LN_aes_192_ctr "aes-192-ctr" -#define NID_aes_192_ctr 905 - -#define SN_aes_256_ctr "AES-256-CTR" -#define LN_aes_256_ctr "aes-256-ctr" -#define NID_aes_256_ctr 906 - -#define SN_aes_128_ocb "AES-128-OCB" -#define LN_aes_128_ocb "aes-128-ocb" -#define NID_aes_128_ocb 958 - -#define SN_aes_192_ocb "AES-192-OCB" -#define LN_aes_192_ocb "aes-192-ocb" -#define NID_aes_192_ocb 959 - -#define SN_aes_256_ocb "AES-256-OCB" -#define LN_aes_256_ocb "aes-256-ocb" -#define NID_aes_256_ocb 960 - -#define SN_des_cfb1 "DES-CFB1" -#define LN_des_cfb1 "des-cfb1" -#define NID_des_cfb1 656 - -#define SN_des_cfb8 "DES-CFB8" -#define LN_des_cfb8 "des-cfb8" -#define NID_des_cfb8 657 - -#define SN_des_ede3_cfb1 "DES-EDE3-CFB1" -#define LN_des_ede3_cfb1 "des-ede3-cfb1" -#define NID_des_ede3_cfb1 658 - -#define SN_des_ede3_cfb8 "DES-EDE3-CFB8" -#define LN_des_ede3_cfb8 "des-ede3-cfb8" -#define NID_des_ede3_cfb8 659 - -#define OBJ_nist_hashalgs OBJ_nistAlgorithms,2L - -#define SN_sha256 "SHA256" -#define LN_sha256 "sha256" -#define NID_sha256 672 -#define OBJ_sha256 OBJ_nist_hashalgs,1L - -#define SN_sha384 "SHA384" -#define LN_sha384 "sha384" -#define NID_sha384 673 -#define OBJ_sha384 OBJ_nist_hashalgs,2L - -#define SN_sha512 "SHA512" -#define LN_sha512 "sha512" -#define NID_sha512 674 -#define OBJ_sha512 OBJ_nist_hashalgs,3L - -#define SN_sha224 "SHA224" -#define LN_sha224 "sha224" -#define NID_sha224 675 -#define OBJ_sha224 OBJ_nist_hashalgs,4L - -#define SN_sha512_224 "SHA512-224" -#define LN_sha512_224 "sha512-224" -#define NID_sha512_224 1094 -#define OBJ_sha512_224 OBJ_nist_hashalgs,5L - -#define SN_sha512_256 "SHA512-256" -#define LN_sha512_256 "sha512-256" -#define NID_sha512_256 1095 -#define OBJ_sha512_256 OBJ_nist_hashalgs,6L - -#define SN_sha3_224 "SHA3-224" -#define LN_sha3_224 "sha3-224" -#define NID_sha3_224 1096 -#define OBJ_sha3_224 OBJ_nist_hashalgs,7L - -#define SN_sha3_256 "SHA3-256" -#define LN_sha3_256 "sha3-256" -#define NID_sha3_256 1097 -#define OBJ_sha3_256 OBJ_nist_hashalgs,8L - -#define SN_sha3_384 "SHA3-384" -#define LN_sha3_384 "sha3-384" -#define NID_sha3_384 1098 -#define OBJ_sha3_384 OBJ_nist_hashalgs,9L - -#define SN_sha3_512 "SHA3-512" -#define LN_sha3_512 "sha3-512" -#define NID_sha3_512 1099 -#define OBJ_sha3_512 OBJ_nist_hashalgs,10L - -#define SN_shake128 "SHAKE128" -#define LN_shake128 "shake128" -#define NID_shake128 1100 -#define OBJ_shake128 OBJ_nist_hashalgs,11L - -#define SN_shake256 "SHAKE256" -#define LN_shake256 "shake256" -#define NID_shake256 1101 -#define OBJ_shake256 OBJ_nist_hashalgs,12L - -#define SN_hmac_sha3_224 "id-hmacWithSHA3-224" -#define LN_hmac_sha3_224 "hmac-sha3-224" -#define NID_hmac_sha3_224 1102 -#define OBJ_hmac_sha3_224 OBJ_nist_hashalgs,13L - -#define SN_hmac_sha3_256 "id-hmacWithSHA3-256" -#define LN_hmac_sha3_256 "hmac-sha3-256" -#define NID_hmac_sha3_256 1103 -#define OBJ_hmac_sha3_256 OBJ_nist_hashalgs,14L - -#define SN_hmac_sha3_384 "id-hmacWithSHA3-384" -#define LN_hmac_sha3_384 "hmac-sha3-384" -#define NID_hmac_sha3_384 1104 -#define OBJ_hmac_sha3_384 OBJ_nist_hashalgs,15L - -#define SN_hmac_sha3_512 "id-hmacWithSHA3-512" -#define LN_hmac_sha3_512 "hmac-sha3-512" -#define NID_hmac_sha3_512 1105 -#define OBJ_hmac_sha3_512 OBJ_nist_hashalgs,16L - -#define SN_kmac128 "KMAC128" -#define LN_kmac128 "kmac128" -#define NID_kmac128 1196 -#define OBJ_kmac128 OBJ_nist_hashalgs,19L - -#define SN_kmac256 "KMAC256" -#define LN_kmac256 "kmac256" -#define NID_kmac256 1197 -#define OBJ_kmac256 OBJ_nist_hashalgs,20L - -#define OBJ_dsa_with_sha2 OBJ_nistAlgorithms,3L - -#define SN_dsa_with_SHA224 "dsa_with_SHA224" -#define NID_dsa_with_SHA224 802 -#define OBJ_dsa_with_SHA224 OBJ_dsa_with_sha2,1L - -#define SN_dsa_with_SHA256 "dsa_with_SHA256" -#define NID_dsa_with_SHA256 803 -#define OBJ_dsa_with_SHA256 OBJ_dsa_with_sha2,2L - -#define OBJ_sigAlgs OBJ_nistAlgorithms,3L - -#define SN_dsa_with_SHA384 "id-dsa-with-sha384" -#define LN_dsa_with_SHA384 "dsa_with_SHA384" -#define NID_dsa_with_SHA384 1106 -#define OBJ_dsa_with_SHA384 OBJ_sigAlgs,3L - -#define SN_dsa_with_SHA512 "id-dsa-with-sha512" -#define LN_dsa_with_SHA512 "dsa_with_SHA512" -#define NID_dsa_with_SHA512 1107 -#define OBJ_dsa_with_SHA512 OBJ_sigAlgs,4L - -#define SN_dsa_with_SHA3_224 "id-dsa-with-sha3-224" -#define LN_dsa_with_SHA3_224 "dsa_with_SHA3-224" -#define NID_dsa_with_SHA3_224 1108 -#define OBJ_dsa_with_SHA3_224 OBJ_sigAlgs,5L - -#define SN_dsa_with_SHA3_256 "id-dsa-with-sha3-256" -#define LN_dsa_with_SHA3_256 "dsa_with_SHA3-256" -#define NID_dsa_with_SHA3_256 1109 -#define OBJ_dsa_with_SHA3_256 OBJ_sigAlgs,6L - -#define SN_dsa_with_SHA3_384 "id-dsa-with-sha3-384" -#define LN_dsa_with_SHA3_384 "dsa_with_SHA3-384" -#define NID_dsa_with_SHA3_384 1110 -#define OBJ_dsa_with_SHA3_384 OBJ_sigAlgs,7L - -#define SN_dsa_with_SHA3_512 "id-dsa-with-sha3-512" -#define LN_dsa_with_SHA3_512 "dsa_with_SHA3-512" -#define NID_dsa_with_SHA3_512 1111 -#define OBJ_dsa_with_SHA3_512 OBJ_sigAlgs,8L - -#define SN_ecdsa_with_SHA3_224 "id-ecdsa-with-sha3-224" -#define LN_ecdsa_with_SHA3_224 "ecdsa_with_SHA3-224" -#define NID_ecdsa_with_SHA3_224 1112 -#define OBJ_ecdsa_with_SHA3_224 OBJ_sigAlgs,9L - -#define SN_ecdsa_with_SHA3_256 "id-ecdsa-with-sha3-256" -#define LN_ecdsa_with_SHA3_256 "ecdsa_with_SHA3-256" -#define NID_ecdsa_with_SHA3_256 1113 -#define OBJ_ecdsa_with_SHA3_256 OBJ_sigAlgs,10L - -#define SN_ecdsa_with_SHA3_384 "id-ecdsa-with-sha3-384" -#define LN_ecdsa_with_SHA3_384 "ecdsa_with_SHA3-384" -#define NID_ecdsa_with_SHA3_384 1114 -#define OBJ_ecdsa_with_SHA3_384 OBJ_sigAlgs,11L - -#define SN_ecdsa_with_SHA3_512 "id-ecdsa-with-sha3-512" -#define LN_ecdsa_with_SHA3_512 "ecdsa_with_SHA3-512" -#define NID_ecdsa_with_SHA3_512 1115 -#define OBJ_ecdsa_with_SHA3_512 OBJ_sigAlgs,12L - -#define SN_RSA_SHA3_224 "id-rsassa-pkcs1-v1_5-with-sha3-224" -#define LN_RSA_SHA3_224 "RSA-SHA3-224" -#define NID_RSA_SHA3_224 1116 -#define OBJ_RSA_SHA3_224 OBJ_sigAlgs,13L - -#define SN_RSA_SHA3_256 "id-rsassa-pkcs1-v1_5-with-sha3-256" -#define LN_RSA_SHA3_256 "RSA-SHA3-256" -#define NID_RSA_SHA3_256 1117 -#define OBJ_RSA_SHA3_256 OBJ_sigAlgs,14L - -#define SN_RSA_SHA3_384 "id-rsassa-pkcs1-v1_5-with-sha3-384" -#define LN_RSA_SHA3_384 "RSA-SHA3-384" -#define NID_RSA_SHA3_384 1118 -#define OBJ_RSA_SHA3_384 OBJ_sigAlgs,15L - -#define SN_RSA_SHA3_512 "id-rsassa-pkcs1-v1_5-with-sha3-512" -#define LN_RSA_SHA3_512 "RSA-SHA3-512" -#define NID_RSA_SHA3_512 1119 -#define OBJ_RSA_SHA3_512 OBJ_sigAlgs,16L - -#define SN_ML_DSA_44 "id-ml-dsa-44" -#define LN_ML_DSA_44 "ML-DSA-44" -#define NID_ML_DSA_44 1457 -#define OBJ_ML_DSA_44 OBJ_sigAlgs,17L - -#define SN_ML_DSA_65 "id-ml-dsa-65" -#define LN_ML_DSA_65 "ML-DSA-65" -#define NID_ML_DSA_65 1458 -#define OBJ_ML_DSA_65 OBJ_sigAlgs,18L - -#define SN_ML_DSA_87 "id-ml-dsa-87" -#define LN_ML_DSA_87 "ML-DSA-87" -#define NID_ML_DSA_87 1459 -#define OBJ_ML_DSA_87 OBJ_sigAlgs,19L - -#define SN_SLH_DSA_SHA2_128s "id-slh-dsa-sha2-128s" -#define LN_SLH_DSA_SHA2_128s "SLH-DSA-SHA2-128s" -#define NID_SLH_DSA_SHA2_128s 1460 -#define OBJ_SLH_DSA_SHA2_128s OBJ_sigAlgs,20L - -#define SN_SLH_DSA_SHA2_128f "id-slh-dsa-sha2-128f" -#define LN_SLH_DSA_SHA2_128f "SLH-DSA-SHA2-128f" -#define NID_SLH_DSA_SHA2_128f 1461 -#define OBJ_SLH_DSA_SHA2_128f OBJ_sigAlgs,21L - -#define SN_SLH_DSA_SHA2_192s "id-slh-dsa-sha2-192s" -#define LN_SLH_DSA_SHA2_192s "SLH-DSA-SHA2-192s" -#define NID_SLH_DSA_SHA2_192s 1462 -#define OBJ_SLH_DSA_SHA2_192s OBJ_sigAlgs,22L - -#define SN_SLH_DSA_SHA2_192f "id-slh-dsa-sha2-192f" -#define LN_SLH_DSA_SHA2_192f "SLH-DSA-SHA2-192f" -#define NID_SLH_DSA_SHA2_192f 1463 -#define OBJ_SLH_DSA_SHA2_192f OBJ_sigAlgs,23L - -#define SN_SLH_DSA_SHA2_256s "id-slh-dsa-sha2-256s" -#define LN_SLH_DSA_SHA2_256s "SLH-DSA-SHA2-256s" -#define NID_SLH_DSA_SHA2_256s 1464 -#define OBJ_SLH_DSA_SHA2_256s OBJ_sigAlgs,24L - -#define SN_SLH_DSA_SHA2_256f "id-slh-dsa-sha2-256f" -#define LN_SLH_DSA_SHA2_256f "SLH-DSA-SHA2-256f" -#define NID_SLH_DSA_SHA2_256f 1465 -#define OBJ_SLH_DSA_SHA2_256f OBJ_sigAlgs,25L - -#define SN_SLH_DSA_SHAKE_128s "id-slh-dsa-shake-128s" -#define LN_SLH_DSA_SHAKE_128s "SLH-DSA-SHAKE-128s" -#define NID_SLH_DSA_SHAKE_128s 1466 -#define OBJ_SLH_DSA_SHAKE_128s OBJ_sigAlgs,26L - -#define SN_SLH_DSA_SHAKE_128f "id-slh-dsa-shake-128f" -#define LN_SLH_DSA_SHAKE_128f "SLH-DSA-SHAKE-128f" -#define NID_SLH_DSA_SHAKE_128f 1467 -#define OBJ_SLH_DSA_SHAKE_128f OBJ_sigAlgs,27L - -#define SN_SLH_DSA_SHAKE_192s "id-slh-dsa-shake-192s" -#define LN_SLH_DSA_SHAKE_192s "SLH-DSA-SHAKE-192s" -#define NID_SLH_DSA_SHAKE_192s 1468 -#define OBJ_SLH_DSA_SHAKE_192s OBJ_sigAlgs,28L - -#define SN_SLH_DSA_SHAKE_192f "id-slh-dsa-shake-192f" -#define LN_SLH_DSA_SHAKE_192f "SLH-DSA-SHAKE-192f" -#define NID_SLH_DSA_SHAKE_192f 1469 -#define OBJ_SLH_DSA_SHAKE_192f OBJ_sigAlgs,29L - -#define SN_SLH_DSA_SHAKE_256s "id-slh-dsa-shake-256s" -#define LN_SLH_DSA_SHAKE_256s "SLH-DSA-SHAKE-256s" -#define NID_SLH_DSA_SHAKE_256s 1470 -#define OBJ_SLH_DSA_SHAKE_256s OBJ_sigAlgs,30L - -#define SN_SLH_DSA_SHAKE_256f "id-slh-dsa-shake-256f" -#define LN_SLH_DSA_SHAKE_256f "SLH-DSA-SHAKE-256f" -#define NID_SLH_DSA_SHAKE_256f 1471 -#define OBJ_SLH_DSA_SHAKE_256f OBJ_sigAlgs,31L - -#define SN_HASH_ML_DSA_44_WITH_SHA512 "id-hash-ml-dsa-44-with-sha512" -#define LN_HASH_ML_DSA_44_WITH_SHA512 "HASH-ML-DSA-44-WITH-SHA512" -#define NID_HASH_ML_DSA_44_WITH_SHA512 1472 -#define OBJ_HASH_ML_DSA_44_WITH_SHA512 OBJ_sigAlgs,32L - -#define SN_HASH_ML_DSA_65_WITH_SHA512 "id-hash-ml-dsa-65-with-sha512" -#define LN_HASH_ML_DSA_65_WITH_SHA512 "HASH-ML-DSA-65-WITH-SHA512" -#define NID_HASH_ML_DSA_65_WITH_SHA512 1473 -#define OBJ_HASH_ML_DSA_65_WITH_SHA512 OBJ_sigAlgs,33L - -#define SN_HASH_ML_DSA_87_WITH_SHA512 "id-hash-ml-dsa-87-with-sha512" -#define LN_HASH_ML_DSA_87_WITH_SHA512 "HASH-ML-DSA-87-WITH-SHA512" -#define NID_HASH_ML_DSA_87_WITH_SHA512 1474 -#define OBJ_HASH_ML_DSA_87_WITH_SHA512 OBJ_sigAlgs,34L - -#define SN_SLH_DSA_SHA2_128s_WITH_SHA256 "id-hash-slh-dsa-sha2-128s-with-sha256" -#define LN_SLH_DSA_SHA2_128s_WITH_SHA256 "SLH-DSA-SHA2-128s-WITH-SHA256" -#define NID_SLH_DSA_SHA2_128s_WITH_SHA256 1475 -#define OBJ_SLH_DSA_SHA2_128s_WITH_SHA256 OBJ_sigAlgs,35L - -#define SN_SLH_DSA_SHA2_128f_WITH_SHA256 "id-hash-slh-dsa-sha2-128f-with-sha256" -#define LN_SLH_DSA_SHA2_128f_WITH_SHA256 "SLH-DSA-SHA2-128f-WITH-SHA256" -#define NID_SLH_DSA_SHA2_128f_WITH_SHA256 1476 -#define OBJ_SLH_DSA_SHA2_128f_WITH_SHA256 OBJ_sigAlgs,36L - -#define SN_SLH_DSA_SHA2_192s_WITH_SHA512 "id-hash-slh-dsa-sha2-192s-with-sha512" -#define LN_SLH_DSA_SHA2_192s_WITH_SHA512 "SLH-DSA-SHA2-192s-WITH-SHA512" -#define NID_SLH_DSA_SHA2_192s_WITH_SHA512 1477 -#define OBJ_SLH_DSA_SHA2_192s_WITH_SHA512 OBJ_sigAlgs,37L - -#define SN_SLH_DSA_SHA2_192f_WITH_SHA512 "id-hash-slh-dsa-sha2-192f-with-sha512" -#define LN_SLH_DSA_SHA2_192f_WITH_SHA512 "SLH-DSA-SHA2-192f-WITH-SHA512" -#define NID_SLH_DSA_SHA2_192f_WITH_SHA512 1478 -#define OBJ_SLH_DSA_SHA2_192f_WITH_SHA512 OBJ_sigAlgs,38L - -#define SN_SLH_DSA_SHA2_256s_WITH_SHA512 "id-hash-slh-dsa-sha2-256s-with-sha512" -#define LN_SLH_DSA_SHA2_256s_WITH_SHA512 "SLH-DSA-SHA2-256s-WITH-SHA512" -#define NID_SLH_DSA_SHA2_256s_WITH_SHA512 1479 -#define OBJ_SLH_DSA_SHA2_256s_WITH_SHA512 OBJ_sigAlgs,39L - -#define SN_SLH_DSA_SHA2_256f_WITH_SHA512 "id-hash-slh-dsa-sha2-256f-with-sha512" -#define LN_SLH_DSA_SHA2_256f_WITH_SHA512 "SLH-DSA-SHA2-256f-WITH-SHA512" -#define NID_SLH_DSA_SHA2_256f_WITH_SHA512 1480 -#define OBJ_SLH_DSA_SHA2_256f_WITH_SHA512 OBJ_sigAlgs,40L - -#define SN_SLH_DSA_SHAKE_128s_WITH_SHAKE128 "id-hash-slh-dsa-shake-128s-with-shake128" -#define LN_SLH_DSA_SHAKE_128s_WITH_SHAKE128 "SLH-DSA-SHAKE-128s-WITH-SHAKE128" -#define NID_SLH_DSA_SHAKE_128s_WITH_SHAKE128 1481 -#define OBJ_SLH_DSA_SHAKE_128s_WITH_SHAKE128 OBJ_sigAlgs,41L - -#define SN_SLH_DSA_SHAKE_128f_WITH_SHAKE128 "id-hash-slh-dsa-shake-128f-with-shake128" -#define LN_SLH_DSA_SHAKE_128f_WITH_SHAKE128 "SLH-DSA-SHAKE-128f-WITH-SHAKE128" -#define NID_SLH_DSA_SHAKE_128f_WITH_SHAKE128 1482 -#define OBJ_SLH_DSA_SHAKE_128f_WITH_SHAKE128 OBJ_sigAlgs,42L - -#define SN_SLH_DSA_SHAKE_192s_WITH_SHAKE256 "id-hash-slh-dsa-shake-192s-with-shake256" -#define LN_SLH_DSA_SHAKE_192s_WITH_SHAKE256 "SLH-DSA-SHAKE-192s-WITH-SHAKE256" -#define NID_SLH_DSA_SHAKE_192s_WITH_SHAKE256 1483 -#define OBJ_SLH_DSA_SHAKE_192s_WITH_SHAKE256 OBJ_sigAlgs,43L - -#define SN_SLH_DSA_SHAKE_192f_WITH_SHAKE256 "id-hash-slh-dsa-shake-192f-with-shake256" -#define LN_SLH_DSA_SHAKE_192f_WITH_SHAKE256 "SLH-DSA-SHAKE-192f-WITH-SHAKE256" -#define NID_SLH_DSA_SHAKE_192f_WITH_SHAKE256 1484 -#define OBJ_SLH_DSA_SHAKE_192f_WITH_SHAKE256 OBJ_sigAlgs,44L - -#define SN_SLH_DSA_SHAKE_256s_WITH_SHAKE256 "id-hash-slh-dsa-shake-256s-with-shake256" -#define LN_SLH_DSA_SHAKE_256s_WITH_SHAKE256 "SLH-DSA-SHAKE-256s-WITH-SHAKE256" -#define NID_SLH_DSA_SHAKE_256s_WITH_SHAKE256 1485 -#define OBJ_SLH_DSA_SHAKE_256s_WITH_SHAKE256 OBJ_sigAlgs,45L - -#define SN_SLH_DSA_SHAKE_256f_WITH_SHAKE256 "id-hash-slh-dsa-shake-256f-with-shake256" -#define LN_SLH_DSA_SHAKE_256f_WITH_SHAKE256 "SLH-DSA-SHAKE-256f-WITH-SHAKE256" -#define NID_SLH_DSA_SHAKE_256f_WITH_SHAKE256 1486 -#define OBJ_SLH_DSA_SHAKE_256f_WITH_SHAKE256 OBJ_sigAlgs,46L - -#define SN_hold_instruction_code "holdInstructionCode" -#define LN_hold_instruction_code "Hold Instruction Code" -#define NID_hold_instruction_code 430 -#define OBJ_hold_instruction_code OBJ_id_ce,23L - -#define OBJ_holdInstruction OBJ_X9_57,2L - -#define SN_hold_instruction_none "holdInstructionNone" -#define LN_hold_instruction_none "Hold Instruction None" -#define NID_hold_instruction_none 431 -#define OBJ_hold_instruction_none OBJ_holdInstruction,1L - -#define SN_hold_instruction_call_issuer "holdInstructionCallIssuer" -#define LN_hold_instruction_call_issuer "Hold Instruction Call Issuer" -#define NID_hold_instruction_call_issuer 432 -#define OBJ_hold_instruction_call_issuer OBJ_holdInstruction,2L - -#define SN_hold_instruction_reject "holdInstructionReject" -#define LN_hold_instruction_reject "Hold Instruction Reject" -#define NID_hold_instruction_reject 433 -#define OBJ_hold_instruction_reject OBJ_holdInstruction,3L - -#define SN_itu_t_identified_organization "itu-t-identified-organization" -#define NID_itu_t_identified_organization 1264 -#define OBJ_itu_t_identified_organization OBJ_itu_t,4L - -#define SN_etsi "etsi" -#define NID_etsi 1265 -#define OBJ_etsi OBJ_itu_t_identified_organization,0L - -#define SN_electronic_signature_standard "electronic-signature-standard" -#define NID_electronic_signature_standard 1266 -#define OBJ_electronic_signature_standard OBJ_etsi,1733L - -#define SN_ess_attributes "ess-attributes" -#define NID_ess_attributes 1267 -#define OBJ_ess_attributes OBJ_electronic_signature_standard,2L - -#define SN_id_aa_ets_mimeType "id-aa-ets-mimeType" -#define NID_id_aa_ets_mimeType 1268 -#define OBJ_id_aa_ets_mimeType OBJ_ess_attributes,1L - -#define SN_id_aa_ets_longTermValidation "id-aa-ets-longTermValidation" -#define NID_id_aa_ets_longTermValidation 1269 -#define OBJ_id_aa_ets_longTermValidation OBJ_ess_attributes,2L - -#define SN_id_aa_ets_SignaturePolicyDocument "id-aa-ets-SignaturePolicyDocument" -#define NID_id_aa_ets_SignaturePolicyDocument 1270 -#define OBJ_id_aa_ets_SignaturePolicyDocument OBJ_ess_attributes,3L - -#define SN_id_aa_ets_archiveTimestampV3 "id-aa-ets-archiveTimestampV3" -#define NID_id_aa_ets_archiveTimestampV3 1271 -#define OBJ_id_aa_ets_archiveTimestampV3 OBJ_ess_attributes,4L - -#define SN_id_aa_ATSHashIndex "id-aa-ATSHashIndex" -#define NID_id_aa_ATSHashIndex 1272 -#define OBJ_id_aa_ATSHashIndex OBJ_ess_attributes,5L - -#define SN_cades "cades" -#define NID_cades 1273 -#define OBJ_cades OBJ_etsi,19122L - -#define SN_cades_attributes "cades-attributes" -#define NID_cades_attributes 1274 -#define OBJ_cades_attributes OBJ_cades,1L - -#define SN_id_aa_ets_signerAttrV2 "id-aa-ets-signerAttrV2" -#define NID_id_aa_ets_signerAttrV2 1275 -#define OBJ_id_aa_ets_signerAttrV2 OBJ_cades_attributes,1L - -#define SN_id_aa_ets_sigPolicyStore "id-aa-ets-sigPolicyStore" -#define NID_id_aa_ets_sigPolicyStore 1276 -#define OBJ_id_aa_ets_sigPolicyStore OBJ_cades_attributes,3L - -#define SN_id_aa_ATSHashIndex_v2 "id-aa-ATSHashIndex-v2" -#define NID_id_aa_ATSHashIndex_v2 1277 -#define OBJ_id_aa_ATSHashIndex_v2 OBJ_cades_attributes,4L - -#define SN_id_aa_ATSHashIndex_v3 "id-aa-ATSHashIndex-v3" -#define NID_id_aa_ATSHashIndex_v3 1278 -#define OBJ_id_aa_ATSHashIndex_v3 OBJ_cades_attributes,5L - -#define SN_signedAssertion "signedAssertion" -#define NID_signedAssertion 1279 -#define OBJ_signedAssertion OBJ_cades_attributes,6L - -#define SN_data "data" -#define NID_data 434 -#define OBJ_data OBJ_itu_t,9L - -#define SN_pss "pss" -#define NID_pss 435 -#define OBJ_pss OBJ_data,2342L - -#define SN_ucl "ucl" -#define NID_ucl 436 -#define OBJ_ucl OBJ_pss,19200300L - -#define SN_pilot "pilot" -#define NID_pilot 437 -#define OBJ_pilot OBJ_ucl,100L - -#define LN_pilotAttributeType "pilotAttributeType" -#define NID_pilotAttributeType 438 -#define OBJ_pilotAttributeType OBJ_pilot,1L - -#define LN_pilotAttributeSyntax "pilotAttributeSyntax" -#define NID_pilotAttributeSyntax 439 -#define OBJ_pilotAttributeSyntax OBJ_pilot,3L - -#define LN_pilotObjectClass "pilotObjectClass" -#define NID_pilotObjectClass 440 -#define OBJ_pilotObjectClass OBJ_pilot,4L - -#define LN_pilotGroups "pilotGroups" -#define NID_pilotGroups 441 -#define OBJ_pilotGroups OBJ_pilot,10L - -#define LN_iA5StringSyntax "iA5StringSyntax" -#define NID_iA5StringSyntax 442 -#define OBJ_iA5StringSyntax OBJ_pilotAttributeSyntax,4L - -#define LN_caseIgnoreIA5StringSyntax "caseIgnoreIA5StringSyntax" -#define NID_caseIgnoreIA5StringSyntax 443 -#define OBJ_caseIgnoreIA5StringSyntax OBJ_pilotAttributeSyntax,5L - -#define LN_pilotObject "pilotObject" -#define NID_pilotObject 444 -#define OBJ_pilotObject OBJ_pilotObjectClass,3L - -#define LN_pilotPerson "pilotPerson" -#define NID_pilotPerson 445 -#define OBJ_pilotPerson OBJ_pilotObjectClass,4L - -#define SN_account "account" -#define NID_account 446 -#define OBJ_account OBJ_pilotObjectClass,5L - -#define SN_document "document" -#define NID_document 447 -#define OBJ_document OBJ_pilotObjectClass,6L - -#define SN_room "room" -#define NID_room 448 -#define OBJ_room OBJ_pilotObjectClass,7L - -#define LN_documentSeries "documentSeries" -#define NID_documentSeries 449 -#define OBJ_documentSeries OBJ_pilotObjectClass,9L - -#define SN_Domain "domain" -#define LN_Domain "Domain" -#define NID_Domain 392 -#define OBJ_Domain OBJ_pilotObjectClass,13L - -#define LN_rFC822localPart "rFC822localPart" -#define NID_rFC822localPart 450 -#define OBJ_rFC822localPart OBJ_pilotObjectClass,14L - -#define LN_dNSDomain "dNSDomain" -#define NID_dNSDomain 451 -#define OBJ_dNSDomain OBJ_pilotObjectClass,15L - -#define LN_domainRelatedObject "domainRelatedObject" -#define NID_domainRelatedObject 452 -#define OBJ_domainRelatedObject OBJ_pilotObjectClass,17L - -#define LN_friendlyCountry "friendlyCountry" -#define NID_friendlyCountry 453 -#define OBJ_friendlyCountry OBJ_pilotObjectClass,18L - -#define LN_simpleSecurityObject "simpleSecurityObject" -#define NID_simpleSecurityObject 454 -#define OBJ_simpleSecurityObject OBJ_pilotObjectClass,19L - -#define LN_pilotOrganization "pilotOrganization" -#define NID_pilotOrganization 455 -#define OBJ_pilotOrganization OBJ_pilotObjectClass,20L - -#define LN_pilotDSA "pilotDSA" -#define NID_pilotDSA 456 -#define OBJ_pilotDSA OBJ_pilotObjectClass,21L - -#define LN_qualityLabelledData "qualityLabelledData" -#define NID_qualityLabelledData 457 -#define OBJ_qualityLabelledData OBJ_pilotObjectClass,22L - -#define SN_userId "UID" -#define LN_userId "userId" -#define NID_userId 458 -#define OBJ_userId OBJ_pilotAttributeType,1L - -#define LN_textEncodedORAddress "textEncodedORAddress" -#define NID_textEncodedORAddress 459 -#define OBJ_textEncodedORAddress OBJ_pilotAttributeType,2L - -#define SN_rfc822Mailbox "mail" -#define LN_rfc822Mailbox "rfc822Mailbox" -#define NID_rfc822Mailbox 460 -#define OBJ_rfc822Mailbox OBJ_pilotAttributeType,3L - -#define SN_info "info" -#define NID_info 461 -#define OBJ_info OBJ_pilotAttributeType,4L - -#define LN_favouriteDrink "favouriteDrink" -#define NID_favouriteDrink 462 -#define OBJ_favouriteDrink OBJ_pilotAttributeType,5L - -#define LN_roomNumber "roomNumber" -#define NID_roomNumber 463 -#define OBJ_roomNumber OBJ_pilotAttributeType,6L - -#define SN_photo "photo" -#define NID_photo 464 -#define OBJ_photo OBJ_pilotAttributeType,7L - -#define LN_userClass "userClass" -#define NID_userClass 465 -#define OBJ_userClass OBJ_pilotAttributeType,8L - -#define SN_host "host" -#define NID_host 466 -#define OBJ_host OBJ_pilotAttributeType,9L - -#define SN_manager "manager" -#define NID_manager 467 -#define OBJ_manager OBJ_pilotAttributeType,10L - -#define LN_documentIdentifier "documentIdentifier" -#define NID_documentIdentifier 468 -#define OBJ_documentIdentifier OBJ_pilotAttributeType,11L - -#define LN_documentTitle "documentTitle" -#define NID_documentTitle 469 -#define OBJ_documentTitle OBJ_pilotAttributeType,12L - -#define LN_documentVersion "documentVersion" -#define NID_documentVersion 470 -#define OBJ_documentVersion OBJ_pilotAttributeType,13L - -#define LN_documentAuthor "documentAuthor" -#define NID_documentAuthor 471 -#define OBJ_documentAuthor OBJ_pilotAttributeType,14L - -#define LN_documentLocation "documentLocation" -#define NID_documentLocation 472 -#define OBJ_documentLocation OBJ_pilotAttributeType,15L - -#define LN_homeTelephoneNumber "homeTelephoneNumber" -#define NID_homeTelephoneNumber 473 -#define OBJ_homeTelephoneNumber OBJ_pilotAttributeType,20L - -#define SN_secretary "secretary" -#define NID_secretary 474 -#define OBJ_secretary OBJ_pilotAttributeType,21L - -#define LN_otherMailbox "otherMailbox" -#define NID_otherMailbox 475 -#define OBJ_otherMailbox OBJ_pilotAttributeType,22L - -#define LN_lastModifiedTime "lastModifiedTime" -#define NID_lastModifiedTime 476 -#define OBJ_lastModifiedTime OBJ_pilotAttributeType,23L - -#define LN_lastModifiedBy "lastModifiedBy" -#define NID_lastModifiedBy 477 -#define OBJ_lastModifiedBy OBJ_pilotAttributeType,24L - -#define SN_domainComponent "DC" -#define LN_domainComponent "domainComponent" -#define NID_domainComponent 391 -#define OBJ_domainComponent OBJ_pilotAttributeType,25L - -#define LN_aRecord "aRecord" -#define NID_aRecord 478 -#define OBJ_aRecord OBJ_pilotAttributeType,26L - -#define LN_pilotAttributeType27 "pilotAttributeType27" -#define NID_pilotAttributeType27 479 -#define OBJ_pilotAttributeType27 OBJ_pilotAttributeType,27L - -#define LN_mXRecord "mXRecord" -#define NID_mXRecord 480 -#define OBJ_mXRecord OBJ_pilotAttributeType,28L - -#define LN_nSRecord "nSRecord" -#define NID_nSRecord 481 -#define OBJ_nSRecord OBJ_pilotAttributeType,29L - -#define LN_sOARecord "sOARecord" -#define NID_sOARecord 482 -#define OBJ_sOARecord OBJ_pilotAttributeType,30L - -#define LN_cNAMERecord "cNAMERecord" -#define NID_cNAMERecord 483 -#define OBJ_cNAMERecord OBJ_pilotAttributeType,31L - -#define LN_associatedDomain "associatedDomain" -#define NID_associatedDomain 484 -#define OBJ_associatedDomain OBJ_pilotAttributeType,37L - -#define LN_associatedName "associatedName" -#define NID_associatedName 485 -#define OBJ_associatedName OBJ_pilotAttributeType,38L - -#define LN_homePostalAddress "homePostalAddress" -#define NID_homePostalAddress 486 -#define OBJ_homePostalAddress OBJ_pilotAttributeType,39L - -#define LN_personalTitle "personalTitle" -#define NID_personalTitle 487 -#define OBJ_personalTitle OBJ_pilotAttributeType,40L - -#define LN_mobileTelephoneNumber "mobileTelephoneNumber" -#define NID_mobileTelephoneNumber 488 -#define OBJ_mobileTelephoneNumber OBJ_pilotAttributeType,41L - -#define LN_pagerTelephoneNumber "pagerTelephoneNumber" -#define NID_pagerTelephoneNumber 489 -#define OBJ_pagerTelephoneNumber OBJ_pilotAttributeType,42L - -#define LN_friendlyCountryName "friendlyCountryName" -#define NID_friendlyCountryName 490 -#define OBJ_friendlyCountryName OBJ_pilotAttributeType,43L - -#define SN_uniqueIdentifier "uid" -#define LN_uniqueIdentifier "uniqueIdentifier" -#define NID_uniqueIdentifier 102 -#define OBJ_uniqueIdentifier OBJ_pilotAttributeType,44L - -#define LN_organizationalStatus "organizationalStatus" -#define NID_organizationalStatus 491 -#define OBJ_organizationalStatus OBJ_pilotAttributeType,45L - -#define LN_janetMailbox "janetMailbox" -#define NID_janetMailbox 492 -#define OBJ_janetMailbox OBJ_pilotAttributeType,46L - -#define LN_mailPreferenceOption "mailPreferenceOption" -#define NID_mailPreferenceOption 493 -#define OBJ_mailPreferenceOption OBJ_pilotAttributeType,47L - -#define LN_buildingName "buildingName" -#define NID_buildingName 494 -#define OBJ_buildingName OBJ_pilotAttributeType,48L - -#define LN_dSAQuality "dSAQuality" -#define NID_dSAQuality 495 -#define OBJ_dSAQuality OBJ_pilotAttributeType,49L - -#define LN_singleLevelQuality "singleLevelQuality" -#define NID_singleLevelQuality 496 -#define OBJ_singleLevelQuality OBJ_pilotAttributeType,50L - -#define LN_subtreeMinimumQuality "subtreeMinimumQuality" -#define NID_subtreeMinimumQuality 497 -#define OBJ_subtreeMinimumQuality OBJ_pilotAttributeType,51L - -#define LN_subtreeMaximumQuality "subtreeMaximumQuality" -#define NID_subtreeMaximumQuality 498 -#define OBJ_subtreeMaximumQuality OBJ_pilotAttributeType,52L - -#define LN_personalSignature "personalSignature" -#define NID_personalSignature 499 -#define OBJ_personalSignature OBJ_pilotAttributeType,53L - -#define LN_dITRedirect "dITRedirect" -#define NID_dITRedirect 500 -#define OBJ_dITRedirect OBJ_pilotAttributeType,54L - -#define SN_audio "audio" -#define NID_audio 501 -#define OBJ_audio OBJ_pilotAttributeType,55L - -#define LN_documentPublisher "documentPublisher" -#define NID_documentPublisher 502 -#define OBJ_documentPublisher OBJ_pilotAttributeType,56L - -#define SN_id_set "id-set" -#define LN_id_set "Secure Electronic Transactions" -#define NID_id_set 512 -#define OBJ_id_set OBJ_international_organizations,42L - -#define SN_set_ctype "set-ctype" -#define LN_set_ctype "content types" -#define NID_set_ctype 513 -#define OBJ_set_ctype OBJ_id_set,0L - -#define SN_set_msgExt "set-msgExt" -#define LN_set_msgExt "message extensions" -#define NID_set_msgExt 514 -#define OBJ_set_msgExt OBJ_id_set,1L - -#define SN_set_attr "set-attr" -#define NID_set_attr 515 -#define OBJ_set_attr OBJ_id_set,3L - -#define SN_set_policy "set-policy" -#define NID_set_policy 516 -#define OBJ_set_policy OBJ_id_set,5L - -#define SN_set_certExt "set-certExt" -#define LN_set_certExt "certificate extensions" -#define NID_set_certExt 517 -#define OBJ_set_certExt OBJ_id_set,7L - -#define SN_set_brand "set-brand" -#define NID_set_brand 518 -#define OBJ_set_brand OBJ_id_set,8L - -#define SN_setct_PANData "setct-PANData" -#define NID_setct_PANData 519 -#define OBJ_setct_PANData OBJ_set_ctype,0L - -#define SN_setct_PANToken "setct-PANToken" -#define NID_setct_PANToken 520 -#define OBJ_setct_PANToken OBJ_set_ctype,1L - -#define SN_setct_PANOnly "setct-PANOnly" -#define NID_setct_PANOnly 521 -#define OBJ_setct_PANOnly OBJ_set_ctype,2L - -#define SN_setct_OIData "setct-OIData" -#define NID_setct_OIData 522 -#define OBJ_setct_OIData OBJ_set_ctype,3L - -#define SN_setct_PI "setct-PI" -#define NID_setct_PI 523 -#define OBJ_setct_PI OBJ_set_ctype,4L - -#define SN_setct_PIData "setct-PIData" -#define NID_setct_PIData 524 -#define OBJ_setct_PIData OBJ_set_ctype,5L - -#define SN_setct_PIDataUnsigned "setct-PIDataUnsigned" -#define NID_setct_PIDataUnsigned 525 -#define OBJ_setct_PIDataUnsigned OBJ_set_ctype,6L - -#define SN_setct_HODInput "setct-HODInput" -#define NID_setct_HODInput 526 -#define OBJ_setct_HODInput OBJ_set_ctype,7L - -#define SN_setct_AuthResBaggage "setct-AuthResBaggage" -#define NID_setct_AuthResBaggage 527 -#define OBJ_setct_AuthResBaggage OBJ_set_ctype,8L - -#define SN_setct_AuthRevReqBaggage "setct-AuthRevReqBaggage" -#define NID_setct_AuthRevReqBaggage 528 -#define OBJ_setct_AuthRevReqBaggage OBJ_set_ctype,9L - -#define SN_setct_AuthRevResBaggage "setct-AuthRevResBaggage" -#define NID_setct_AuthRevResBaggage 529 -#define OBJ_setct_AuthRevResBaggage OBJ_set_ctype,10L - -#define SN_setct_CapTokenSeq "setct-CapTokenSeq" -#define NID_setct_CapTokenSeq 530 -#define OBJ_setct_CapTokenSeq OBJ_set_ctype,11L - -#define SN_setct_PInitResData "setct-PInitResData" -#define NID_setct_PInitResData 531 -#define OBJ_setct_PInitResData OBJ_set_ctype,12L - -#define SN_setct_PI_TBS "setct-PI-TBS" -#define NID_setct_PI_TBS 532 -#define OBJ_setct_PI_TBS OBJ_set_ctype,13L - -#define SN_setct_PResData "setct-PResData" -#define NID_setct_PResData 533 -#define OBJ_setct_PResData OBJ_set_ctype,14L - -#define SN_setct_AuthReqTBS "setct-AuthReqTBS" -#define NID_setct_AuthReqTBS 534 -#define OBJ_setct_AuthReqTBS OBJ_set_ctype,16L - -#define SN_setct_AuthResTBS "setct-AuthResTBS" -#define NID_setct_AuthResTBS 535 -#define OBJ_setct_AuthResTBS OBJ_set_ctype,17L - -#define SN_setct_AuthResTBSX "setct-AuthResTBSX" -#define NID_setct_AuthResTBSX 536 -#define OBJ_setct_AuthResTBSX OBJ_set_ctype,18L - -#define SN_setct_AuthTokenTBS "setct-AuthTokenTBS" -#define NID_setct_AuthTokenTBS 537 -#define OBJ_setct_AuthTokenTBS OBJ_set_ctype,19L - -#define SN_setct_CapTokenData "setct-CapTokenData" -#define NID_setct_CapTokenData 538 -#define OBJ_setct_CapTokenData OBJ_set_ctype,20L - -#define SN_setct_CapTokenTBS "setct-CapTokenTBS" -#define NID_setct_CapTokenTBS 539 -#define OBJ_setct_CapTokenTBS OBJ_set_ctype,21L - -#define SN_setct_AcqCardCodeMsg "setct-AcqCardCodeMsg" -#define NID_setct_AcqCardCodeMsg 540 -#define OBJ_setct_AcqCardCodeMsg OBJ_set_ctype,22L - -#define SN_setct_AuthRevReqTBS "setct-AuthRevReqTBS" -#define NID_setct_AuthRevReqTBS 541 -#define OBJ_setct_AuthRevReqTBS OBJ_set_ctype,23L - -#define SN_setct_AuthRevResData "setct-AuthRevResData" -#define NID_setct_AuthRevResData 542 -#define OBJ_setct_AuthRevResData OBJ_set_ctype,24L - -#define SN_setct_AuthRevResTBS "setct-AuthRevResTBS" -#define NID_setct_AuthRevResTBS 543 -#define OBJ_setct_AuthRevResTBS OBJ_set_ctype,25L - -#define SN_setct_CapReqTBS "setct-CapReqTBS" -#define NID_setct_CapReqTBS 544 -#define OBJ_setct_CapReqTBS OBJ_set_ctype,26L - -#define SN_setct_CapReqTBSX "setct-CapReqTBSX" -#define NID_setct_CapReqTBSX 545 -#define OBJ_setct_CapReqTBSX OBJ_set_ctype,27L - -#define SN_setct_CapResData "setct-CapResData" -#define NID_setct_CapResData 546 -#define OBJ_setct_CapResData OBJ_set_ctype,28L - -#define SN_setct_CapRevReqTBS "setct-CapRevReqTBS" -#define NID_setct_CapRevReqTBS 547 -#define OBJ_setct_CapRevReqTBS OBJ_set_ctype,29L - -#define SN_setct_CapRevReqTBSX "setct-CapRevReqTBSX" -#define NID_setct_CapRevReqTBSX 548 -#define OBJ_setct_CapRevReqTBSX OBJ_set_ctype,30L - -#define SN_setct_CapRevResData "setct-CapRevResData" -#define NID_setct_CapRevResData 549 -#define OBJ_setct_CapRevResData OBJ_set_ctype,31L - -#define SN_setct_CredReqTBS "setct-CredReqTBS" -#define NID_setct_CredReqTBS 550 -#define OBJ_setct_CredReqTBS OBJ_set_ctype,32L - -#define SN_setct_CredReqTBSX "setct-CredReqTBSX" -#define NID_setct_CredReqTBSX 551 -#define OBJ_setct_CredReqTBSX OBJ_set_ctype,33L - -#define SN_setct_CredResData "setct-CredResData" -#define NID_setct_CredResData 552 -#define OBJ_setct_CredResData OBJ_set_ctype,34L - -#define SN_setct_CredRevReqTBS "setct-CredRevReqTBS" -#define NID_setct_CredRevReqTBS 553 -#define OBJ_setct_CredRevReqTBS OBJ_set_ctype,35L - -#define SN_setct_CredRevReqTBSX "setct-CredRevReqTBSX" -#define NID_setct_CredRevReqTBSX 554 -#define OBJ_setct_CredRevReqTBSX OBJ_set_ctype,36L - -#define SN_setct_CredRevResData "setct-CredRevResData" -#define NID_setct_CredRevResData 555 -#define OBJ_setct_CredRevResData OBJ_set_ctype,37L - -#define SN_setct_PCertReqData "setct-PCertReqData" -#define NID_setct_PCertReqData 556 -#define OBJ_setct_PCertReqData OBJ_set_ctype,38L - -#define SN_setct_PCertResTBS "setct-PCertResTBS" -#define NID_setct_PCertResTBS 557 -#define OBJ_setct_PCertResTBS OBJ_set_ctype,39L - -#define SN_setct_BatchAdminReqData "setct-BatchAdminReqData" -#define NID_setct_BatchAdminReqData 558 -#define OBJ_setct_BatchAdminReqData OBJ_set_ctype,40L - -#define SN_setct_BatchAdminResData "setct-BatchAdminResData" -#define NID_setct_BatchAdminResData 559 -#define OBJ_setct_BatchAdminResData OBJ_set_ctype,41L - -#define SN_setct_CardCInitResTBS "setct-CardCInitResTBS" -#define NID_setct_CardCInitResTBS 560 -#define OBJ_setct_CardCInitResTBS OBJ_set_ctype,42L - -#define SN_setct_MeAqCInitResTBS "setct-MeAqCInitResTBS" -#define NID_setct_MeAqCInitResTBS 561 -#define OBJ_setct_MeAqCInitResTBS OBJ_set_ctype,43L - -#define SN_setct_RegFormResTBS "setct-RegFormResTBS" -#define NID_setct_RegFormResTBS 562 -#define OBJ_setct_RegFormResTBS OBJ_set_ctype,44L - -#define SN_setct_CertReqData "setct-CertReqData" -#define NID_setct_CertReqData 563 -#define OBJ_setct_CertReqData OBJ_set_ctype,45L - -#define SN_setct_CertReqTBS "setct-CertReqTBS" -#define NID_setct_CertReqTBS 564 -#define OBJ_setct_CertReqTBS OBJ_set_ctype,46L - -#define SN_setct_CertResData "setct-CertResData" -#define NID_setct_CertResData 565 -#define OBJ_setct_CertResData OBJ_set_ctype,47L - -#define SN_setct_CertInqReqTBS "setct-CertInqReqTBS" -#define NID_setct_CertInqReqTBS 566 -#define OBJ_setct_CertInqReqTBS OBJ_set_ctype,48L - -#define SN_setct_ErrorTBS "setct-ErrorTBS" -#define NID_setct_ErrorTBS 567 -#define OBJ_setct_ErrorTBS OBJ_set_ctype,49L - -#define SN_setct_PIDualSignedTBE "setct-PIDualSignedTBE" -#define NID_setct_PIDualSignedTBE 568 -#define OBJ_setct_PIDualSignedTBE OBJ_set_ctype,50L - -#define SN_setct_PIUnsignedTBE "setct-PIUnsignedTBE" -#define NID_setct_PIUnsignedTBE 569 -#define OBJ_setct_PIUnsignedTBE OBJ_set_ctype,51L - -#define SN_setct_AuthReqTBE "setct-AuthReqTBE" -#define NID_setct_AuthReqTBE 570 -#define OBJ_setct_AuthReqTBE OBJ_set_ctype,52L - -#define SN_setct_AuthResTBE "setct-AuthResTBE" -#define NID_setct_AuthResTBE 571 -#define OBJ_setct_AuthResTBE OBJ_set_ctype,53L - -#define SN_setct_AuthResTBEX "setct-AuthResTBEX" -#define NID_setct_AuthResTBEX 572 -#define OBJ_setct_AuthResTBEX OBJ_set_ctype,54L - -#define SN_setct_AuthTokenTBE "setct-AuthTokenTBE" -#define NID_setct_AuthTokenTBE 573 -#define OBJ_setct_AuthTokenTBE OBJ_set_ctype,55L - -#define SN_setct_CapTokenTBE "setct-CapTokenTBE" -#define NID_setct_CapTokenTBE 574 -#define OBJ_setct_CapTokenTBE OBJ_set_ctype,56L - -#define SN_setct_CapTokenTBEX "setct-CapTokenTBEX" -#define NID_setct_CapTokenTBEX 575 -#define OBJ_setct_CapTokenTBEX OBJ_set_ctype,57L - -#define SN_setct_AcqCardCodeMsgTBE "setct-AcqCardCodeMsgTBE" -#define NID_setct_AcqCardCodeMsgTBE 576 -#define OBJ_setct_AcqCardCodeMsgTBE OBJ_set_ctype,58L - -#define SN_setct_AuthRevReqTBE "setct-AuthRevReqTBE" -#define NID_setct_AuthRevReqTBE 577 -#define OBJ_setct_AuthRevReqTBE OBJ_set_ctype,59L - -#define SN_setct_AuthRevResTBE "setct-AuthRevResTBE" -#define NID_setct_AuthRevResTBE 578 -#define OBJ_setct_AuthRevResTBE OBJ_set_ctype,60L - -#define SN_setct_AuthRevResTBEB "setct-AuthRevResTBEB" -#define NID_setct_AuthRevResTBEB 579 -#define OBJ_setct_AuthRevResTBEB OBJ_set_ctype,61L - -#define SN_setct_CapReqTBE "setct-CapReqTBE" -#define NID_setct_CapReqTBE 580 -#define OBJ_setct_CapReqTBE OBJ_set_ctype,62L - -#define SN_setct_CapReqTBEX "setct-CapReqTBEX" -#define NID_setct_CapReqTBEX 581 -#define OBJ_setct_CapReqTBEX OBJ_set_ctype,63L - -#define SN_setct_CapResTBE "setct-CapResTBE" -#define NID_setct_CapResTBE 582 -#define OBJ_setct_CapResTBE OBJ_set_ctype,64L - -#define SN_setct_CapRevReqTBE "setct-CapRevReqTBE" -#define NID_setct_CapRevReqTBE 583 -#define OBJ_setct_CapRevReqTBE OBJ_set_ctype,65L - -#define SN_setct_CapRevReqTBEX "setct-CapRevReqTBEX" -#define NID_setct_CapRevReqTBEX 584 -#define OBJ_setct_CapRevReqTBEX OBJ_set_ctype,66L - -#define SN_setct_CapRevResTBE "setct-CapRevResTBE" -#define NID_setct_CapRevResTBE 585 -#define OBJ_setct_CapRevResTBE OBJ_set_ctype,67L - -#define SN_setct_CredReqTBE "setct-CredReqTBE" -#define NID_setct_CredReqTBE 586 -#define OBJ_setct_CredReqTBE OBJ_set_ctype,68L - -#define SN_setct_CredReqTBEX "setct-CredReqTBEX" -#define NID_setct_CredReqTBEX 587 -#define OBJ_setct_CredReqTBEX OBJ_set_ctype,69L - -#define SN_setct_CredResTBE "setct-CredResTBE" -#define NID_setct_CredResTBE 588 -#define OBJ_setct_CredResTBE OBJ_set_ctype,70L - -#define SN_setct_CredRevReqTBE "setct-CredRevReqTBE" -#define NID_setct_CredRevReqTBE 589 -#define OBJ_setct_CredRevReqTBE OBJ_set_ctype,71L - -#define SN_setct_CredRevReqTBEX "setct-CredRevReqTBEX" -#define NID_setct_CredRevReqTBEX 590 -#define OBJ_setct_CredRevReqTBEX OBJ_set_ctype,72L - -#define SN_setct_CredRevResTBE "setct-CredRevResTBE" -#define NID_setct_CredRevResTBE 591 -#define OBJ_setct_CredRevResTBE OBJ_set_ctype,73L - -#define SN_setct_BatchAdminReqTBE "setct-BatchAdminReqTBE" -#define NID_setct_BatchAdminReqTBE 592 -#define OBJ_setct_BatchAdminReqTBE OBJ_set_ctype,74L - -#define SN_setct_BatchAdminResTBE "setct-BatchAdminResTBE" -#define NID_setct_BatchAdminResTBE 593 -#define OBJ_setct_BatchAdminResTBE OBJ_set_ctype,75L - -#define SN_setct_RegFormReqTBE "setct-RegFormReqTBE" -#define NID_setct_RegFormReqTBE 594 -#define OBJ_setct_RegFormReqTBE OBJ_set_ctype,76L - -#define SN_setct_CertReqTBE "setct-CertReqTBE" -#define NID_setct_CertReqTBE 595 -#define OBJ_setct_CertReqTBE OBJ_set_ctype,77L - -#define SN_setct_CertReqTBEX "setct-CertReqTBEX" -#define NID_setct_CertReqTBEX 596 -#define OBJ_setct_CertReqTBEX OBJ_set_ctype,78L - -#define SN_setct_CertResTBE "setct-CertResTBE" -#define NID_setct_CertResTBE 597 -#define OBJ_setct_CertResTBE OBJ_set_ctype,79L - -#define SN_setct_CRLNotificationTBS "setct-CRLNotificationTBS" -#define NID_setct_CRLNotificationTBS 598 -#define OBJ_setct_CRLNotificationTBS OBJ_set_ctype,80L - -#define SN_setct_CRLNotificationResTBS "setct-CRLNotificationResTBS" -#define NID_setct_CRLNotificationResTBS 599 -#define OBJ_setct_CRLNotificationResTBS OBJ_set_ctype,81L - -#define SN_setct_BCIDistributionTBS "setct-BCIDistributionTBS" -#define NID_setct_BCIDistributionTBS 600 -#define OBJ_setct_BCIDistributionTBS OBJ_set_ctype,82L - -#define SN_setext_genCrypt "setext-genCrypt" -#define LN_setext_genCrypt "generic cryptogram" -#define NID_setext_genCrypt 601 -#define OBJ_setext_genCrypt OBJ_set_msgExt,1L - -#define SN_setext_miAuth "setext-miAuth" -#define LN_setext_miAuth "merchant initiated auth" -#define NID_setext_miAuth 602 -#define OBJ_setext_miAuth OBJ_set_msgExt,3L - -#define SN_setext_pinSecure "setext-pinSecure" -#define NID_setext_pinSecure 603 -#define OBJ_setext_pinSecure OBJ_set_msgExt,4L - -#define SN_setext_pinAny "setext-pinAny" -#define NID_setext_pinAny 604 -#define OBJ_setext_pinAny OBJ_set_msgExt,5L - -#define SN_setext_track2 "setext-track2" -#define NID_setext_track2 605 -#define OBJ_setext_track2 OBJ_set_msgExt,7L - -#define SN_setext_cv "setext-cv" -#define LN_setext_cv "additional verification" -#define NID_setext_cv 606 -#define OBJ_setext_cv OBJ_set_msgExt,8L - -#define SN_set_policy_root "set-policy-root" -#define NID_set_policy_root 607 -#define OBJ_set_policy_root OBJ_set_policy,0L - -#define SN_setCext_hashedRoot "setCext-hashedRoot" -#define NID_setCext_hashedRoot 608 -#define OBJ_setCext_hashedRoot OBJ_set_certExt,0L - -#define SN_setCext_certType "setCext-certType" -#define NID_setCext_certType 609 -#define OBJ_setCext_certType OBJ_set_certExt,1L - -#define SN_setCext_merchData "setCext-merchData" -#define NID_setCext_merchData 610 -#define OBJ_setCext_merchData OBJ_set_certExt,2L - -#define SN_setCext_cCertRequired "setCext-cCertRequired" -#define NID_setCext_cCertRequired 611 -#define OBJ_setCext_cCertRequired OBJ_set_certExt,3L - -#define SN_setCext_tunneling "setCext-tunneling" -#define NID_setCext_tunneling 612 -#define OBJ_setCext_tunneling OBJ_set_certExt,4L - -#define SN_setCext_setExt "setCext-setExt" -#define NID_setCext_setExt 613 -#define OBJ_setCext_setExt OBJ_set_certExt,5L - -#define SN_setCext_setQualf "setCext-setQualf" -#define NID_setCext_setQualf 614 -#define OBJ_setCext_setQualf OBJ_set_certExt,6L - -#define SN_setCext_PGWYcapabilities "setCext-PGWYcapabilities" -#define NID_setCext_PGWYcapabilities 615 -#define OBJ_setCext_PGWYcapabilities OBJ_set_certExt,7L - -#define SN_setCext_TokenIdentifier "setCext-TokenIdentifier" -#define NID_setCext_TokenIdentifier 616 -#define OBJ_setCext_TokenIdentifier OBJ_set_certExt,8L - -#define SN_setCext_Track2Data "setCext-Track2Data" -#define NID_setCext_Track2Data 617 -#define OBJ_setCext_Track2Data OBJ_set_certExt,9L - -#define SN_setCext_TokenType "setCext-TokenType" -#define NID_setCext_TokenType 618 -#define OBJ_setCext_TokenType OBJ_set_certExt,10L - -#define SN_setCext_IssuerCapabilities "setCext-IssuerCapabilities" -#define NID_setCext_IssuerCapabilities 619 -#define OBJ_setCext_IssuerCapabilities OBJ_set_certExt,11L - -#define SN_setAttr_Cert "setAttr-Cert" -#define NID_setAttr_Cert 620 -#define OBJ_setAttr_Cert OBJ_set_attr,0L - -#define SN_setAttr_PGWYcap "setAttr-PGWYcap" -#define LN_setAttr_PGWYcap "payment gateway capabilities" -#define NID_setAttr_PGWYcap 621 -#define OBJ_setAttr_PGWYcap OBJ_set_attr,1L - -#define SN_setAttr_TokenType "setAttr-TokenType" -#define NID_setAttr_TokenType 622 -#define OBJ_setAttr_TokenType OBJ_set_attr,2L - -#define SN_setAttr_IssCap "setAttr-IssCap" -#define LN_setAttr_IssCap "issuer capabilities" -#define NID_setAttr_IssCap 623 -#define OBJ_setAttr_IssCap OBJ_set_attr,3L - -#define SN_set_rootKeyThumb "set-rootKeyThumb" -#define NID_set_rootKeyThumb 624 -#define OBJ_set_rootKeyThumb OBJ_setAttr_Cert,0L - -#define SN_set_addPolicy "set-addPolicy" -#define NID_set_addPolicy 625 -#define OBJ_set_addPolicy OBJ_setAttr_Cert,1L - -#define SN_setAttr_Token_EMV "setAttr-Token-EMV" -#define NID_setAttr_Token_EMV 626 -#define OBJ_setAttr_Token_EMV OBJ_setAttr_TokenType,1L - -#define SN_setAttr_Token_B0Prime "setAttr-Token-B0Prime" -#define NID_setAttr_Token_B0Prime 627 -#define OBJ_setAttr_Token_B0Prime OBJ_setAttr_TokenType,2L - -#define SN_setAttr_IssCap_CVM "setAttr-IssCap-CVM" -#define NID_setAttr_IssCap_CVM 628 -#define OBJ_setAttr_IssCap_CVM OBJ_setAttr_IssCap,3L - -#define SN_setAttr_IssCap_T2 "setAttr-IssCap-T2" -#define NID_setAttr_IssCap_T2 629 -#define OBJ_setAttr_IssCap_T2 OBJ_setAttr_IssCap,4L - -#define SN_setAttr_IssCap_Sig "setAttr-IssCap-Sig" -#define NID_setAttr_IssCap_Sig 630 -#define OBJ_setAttr_IssCap_Sig OBJ_setAttr_IssCap,5L - -#define SN_setAttr_GenCryptgrm "setAttr-GenCryptgrm" -#define LN_setAttr_GenCryptgrm "generate cryptogram" -#define NID_setAttr_GenCryptgrm 631 -#define OBJ_setAttr_GenCryptgrm OBJ_setAttr_IssCap_CVM,1L - -#define SN_setAttr_T2Enc "setAttr-T2Enc" -#define LN_setAttr_T2Enc "encrypted track 2" -#define NID_setAttr_T2Enc 632 -#define OBJ_setAttr_T2Enc OBJ_setAttr_IssCap_T2,1L - -#define SN_setAttr_T2cleartxt "setAttr-T2cleartxt" -#define LN_setAttr_T2cleartxt "cleartext track 2" -#define NID_setAttr_T2cleartxt 633 -#define OBJ_setAttr_T2cleartxt OBJ_setAttr_IssCap_T2,2L - -#define SN_setAttr_TokICCsig "setAttr-TokICCsig" -#define LN_setAttr_TokICCsig "ICC or token signature" -#define NID_setAttr_TokICCsig 634 -#define OBJ_setAttr_TokICCsig OBJ_setAttr_IssCap_Sig,1L - -#define SN_setAttr_SecDevSig "setAttr-SecDevSig" -#define LN_setAttr_SecDevSig "secure device signature" -#define NID_setAttr_SecDevSig 635 -#define OBJ_setAttr_SecDevSig OBJ_setAttr_IssCap_Sig,2L - -#define SN_set_brand_IATA_ATA "set-brand-IATA-ATA" -#define NID_set_brand_IATA_ATA 636 -#define OBJ_set_brand_IATA_ATA OBJ_set_brand,1L - -#define SN_set_brand_Diners "set-brand-Diners" -#define NID_set_brand_Diners 637 -#define OBJ_set_brand_Diners OBJ_set_brand,30L - -#define SN_set_brand_AmericanExpress "set-brand-AmericanExpress" -#define NID_set_brand_AmericanExpress 638 -#define OBJ_set_brand_AmericanExpress OBJ_set_brand,34L - -#define SN_set_brand_JCB "set-brand-JCB" -#define NID_set_brand_JCB 639 -#define OBJ_set_brand_JCB OBJ_set_brand,35L - -#define SN_set_brand_Visa "set-brand-Visa" -#define NID_set_brand_Visa 640 -#define OBJ_set_brand_Visa OBJ_set_brand,4L - -#define SN_set_brand_MasterCard "set-brand-MasterCard" -#define NID_set_brand_MasterCard 641 -#define OBJ_set_brand_MasterCard OBJ_set_brand,5L - -#define SN_set_brand_Novus "set-brand-Novus" -#define NID_set_brand_Novus 642 -#define OBJ_set_brand_Novus OBJ_set_brand,6011L - -#define SN_des_cdmf "DES-CDMF" -#define LN_des_cdmf "des-cdmf" -#define NID_des_cdmf 643 -#define OBJ_des_cdmf OBJ_rsadsi,3L,10L - -#define SN_rsaOAEPEncryptionSET "rsaOAEPEncryptionSET" -#define NID_rsaOAEPEncryptionSET 644 -#define OBJ_rsaOAEPEncryptionSET OBJ_rsadsi,1L,1L,6L - -#define SN_ipsec3 "Oakley-EC2N-3" -#define LN_ipsec3 "ipsec3" -#define NID_ipsec3 749 - -#define SN_ipsec4 "Oakley-EC2N-4" -#define LN_ipsec4 "ipsec4" -#define NID_ipsec4 750 - -#define SN_whirlpool "whirlpool" -#define NID_whirlpool 804 -#define OBJ_whirlpool OBJ_iso,0L,10118L,3L,0L,55L - -#define SN_cryptopro "cryptopro" -#define NID_cryptopro 805 -#define OBJ_cryptopro OBJ_member_body,643L,2L,2L - -#define SN_cryptocom "cryptocom" -#define NID_cryptocom 806 -#define OBJ_cryptocom OBJ_member_body,643L,2L,9L - -#define SN_id_tc26 "id-tc26" -#define NID_id_tc26 974 -#define OBJ_id_tc26 OBJ_member_body,643L,7L,1L - -#define SN_id_GostR3411_94_with_GostR3410_2001 "id-GostR3411-94-with-GostR3410-2001" -#define LN_id_GostR3411_94_with_GostR3410_2001 "GOST R 34.11-94 with GOST R 34.10-2001" -#define NID_id_GostR3411_94_with_GostR3410_2001 807 -#define OBJ_id_GostR3411_94_with_GostR3410_2001 OBJ_cryptopro,3L - -#define SN_id_GostR3411_94_with_GostR3410_94 "id-GostR3411-94-with-GostR3410-94" -#define LN_id_GostR3411_94_with_GostR3410_94 "GOST R 34.11-94 with GOST R 34.10-94" -#define NID_id_GostR3411_94_with_GostR3410_94 808 -#define OBJ_id_GostR3411_94_with_GostR3410_94 OBJ_cryptopro,4L - -#define SN_id_GostR3411_94 "md_gost94" -#define LN_id_GostR3411_94 "GOST R 34.11-94" -#define NID_id_GostR3411_94 809 -#define OBJ_id_GostR3411_94 OBJ_cryptopro,9L - -#define SN_id_HMACGostR3411_94 "id-HMACGostR3411-94" -#define LN_id_HMACGostR3411_94 "HMAC GOST 34.11-94" -#define NID_id_HMACGostR3411_94 810 -#define OBJ_id_HMACGostR3411_94 OBJ_cryptopro,10L - -#define SN_id_GostR3410_2001 "gost2001" -#define LN_id_GostR3410_2001 "GOST R 34.10-2001" -#define NID_id_GostR3410_2001 811 -#define OBJ_id_GostR3410_2001 OBJ_cryptopro,19L - -#define SN_id_GostR3410_94 "gost94" -#define LN_id_GostR3410_94 "GOST R 34.10-94" -#define NID_id_GostR3410_94 812 -#define OBJ_id_GostR3410_94 OBJ_cryptopro,20L - -#define SN_id_Gost28147_89 "gost89" -#define LN_id_Gost28147_89 "GOST 28147-89" -#define NID_id_Gost28147_89 813 -#define OBJ_id_Gost28147_89 OBJ_cryptopro,21L - -#define SN_gost89_cnt "gost89-cnt" -#define NID_gost89_cnt 814 - -#define SN_gost89_cnt_12 "gost89-cnt-12" -#define NID_gost89_cnt_12 975 - -#define SN_gost89_cbc "gost89-cbc" -#define NID_gost89_cbc 1009 - -#define SN_gost89_ecb "gost89-ecb" -#define NID_gost89_ecb 1010 - -#define SN_gost89_ctr "gost89-ctr" -#define NID_gost89_ctr 1011 - -#define SN_id_Gost28147_89_MAC "gost-mac" -#define LN_id_Gost28147_89_MAC "GOST 28147-89 MAC" -#define NID_id_Gost28147_89_MAC 815 -#define OBJ_id_Gost28147_89_MAC OBJ_cryptopro,22L - -#define SN_gost_mac_12 "gost-mac-12" -#define NID_gost_mac_12 976 - -#define SN_id_GostR3411_94_prf "prf-gostr3411-94" -#define LN_id_GostR3411_94_prf "GOST R 34.11-94 PRF" -#define NID_id_GostR3411_94_prf 816 -#define OBJ_id_GostR3411_94_prf OBJ_cryptopro,23L - -#define SN_id_GostR3410_2001DH "id-GostR3410-2001DH" -#define LN_id_GostR3410_2001DH "GOST R 34.10-2001 DH" -#define NID_id_GostR3410_2001DH 817 -#define OBJ_id_GostR3410_2001DH OBJ_cryptopro,98L - -#define SN_id_GostR3410_94DH "id-GostR3410-94DH" -#define LN_id_GostR3410_94DH "GOST R 34.10-94 DH" -#define NID_id_GostR3410_94DH 818 -#define OBJ_id_GostR3410_94DH OBJ_cryptopro,99L - -#define SN_id_Gost28147_89_CryptoPro_KeyMeshing "id-Gost28147-89-CryptoPro-KeyMeshing" -#define NID_id_Gost28147_89_CryptoPro_KeyMeshing 819 -#define OBJ_id_Gost28147_89_CryptoPro_KeyMeshing OBJ_cryptopro,14L,1L - -#define SN_id_Gost28147_89_None_KeyMeshing "id-Gost28147-89-None-KeyMeshing" -#define NID_id_Gost28147_89_None_KeyMeshing 820 -#define OBJ_id_Gost28147_89_None_KeyMeshing OBJ_cryptopro,14L,0L - -#define SN_id_GostR3411_94_TestParamSet "id-GostR3411-94-TestParamSet" -#define NID_id_GostR3411_94_TestParamSet 821 -#define OBJ_id_GostR3411_94_TestParamSet OBJ_cryptopro,30L,0L - -#define SN_id_GostR3411_94_CryptoProParamSet "id-GostR3411-94-CryptoProParamSet" -#define NID_id_GostR3411_94_CryptoProParamSet 822 -#define OBJ_id_GostR3411_94_CryptoProParamSet OBJ_cryptopro,30L,1L - -#define SN_id_Gost28147_89_TestParamSet "id-Gost28147-89-TestParamSet" -#define NID_id_Gost28147_89_TestParamSet 823 -#define OBJ_id_Gost28147_89_TestParamSet OBJ_cryptopro,31L,0L - -#define SN_id_Gost28147_89_CryptoPro_A_ParamSet "id-Gost28147-89-CryptoPro-A-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_A_ParamSet 824 -#define OBJ_id_Gost28147_89_CryptoPro_A_ParamSet OBJ_cryptopro,31L,1L - -#define SN_id_Gost28147_89_CryptoPro_B_ParamSet "id-Gost28147-89-CryptoPro-B-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_B_ParamSet 825 -#define OBJ_id_Gost28147_89_CryptoPro_B_ParamSet OBJ_cryptopro,31L,2L - -#define SN_id_Gost28147_89_CryptoPro_C_ParamSet "id-Gost28147-89-CryptoPro-C-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_C_ParamSet 826 -#define OBJ_id_Gost28147_89_CryptoPro_C_ParamSet OBJ_cryptopro,31L,3L - -#define SN_id_Gost28147_89_CryptoPro_D_ParamSet "id-Gost28147-89-CryptoPro-D-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_D_ParamSet 827 -#define OBJ_id_Gost28147_89_CryptoPro_D_ParamSet OBJ_cryptopro,31L,4L - -#define SN_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-1-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet 828 -#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet OBJ_cryptopro,31L,5L - -#define SN_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-0-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet 829 -#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet OBJ_cryptopro,31L,6L - -#define SN_id_Gost28147_89_CryptoPro_RIC_1_ParamSet "id-Gost28147-89-CryptoPro-RIC-1-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet 830 -#define OBJ_id_Gost28147_89_CryptoPro_RIC_1_ParamSet OBJ_cryptopro,31L,7L - -#define SN_id_GostR3410_94_TestParamSet "id-GostR3410-94-TestParamSet" -#define NID_id_GostR3410_94_TestParamSet 831 -#define OBJ_id_GostR3410_94_TestParamSet OBJ_cryptopro,32L,0L - -#define SN_id_GostR3410_94_CryptoPro_A_ParamSet "id-GostR3410-94-CryptoPro-A-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_A_ParamSet 832 -#define OBJ_id_GostR3410_94_CryptoPro_A_ParamSet OBJ_cryptopro,32L,2L - -#define SN_id_GostR3410_94_CryptoPro_B_ParamSet "id-GostR3410-94-CryptoPro-B-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_B_ParamSet 833 -#define OBJ_id_GostR3410_94_CryptoPro_B_ParamSet OBJ_cryptopro,32L,3L - -#define SN_id_GostR3410_94_CryptoPro_C_ParamSet "id-GostR3410-94-CryptoPro-C-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_C_ParamSet 834 -#define OBJ_id_GostR3410_94_CryptoPro_C_ParamSet OBJ_cryptopro,32L,4L - -#define SN_id_GostR3410_94_CryptoPro_D_ParamSet "id-GostR3410-94-CryptoPro-D-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_D_ParamSet 835 -#define OBJ_id_GostR3410_94_CryptoPro_D_ParamSet OBJ_cryptopro,32L,5L - -#define SN_id_GostR3410_94_CryptoPro_XchA_ParamSet "id-GostR3410-94-CryptoPro-XchA-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchA_ParamSet 836 -#define OBJ_id_GostR3410_94_CryptoPro_XchA_ParamSet OBJ_cryptopro,33L,1L - -#define SN_id_GostR3410_94_CryptoPro_XchB_ParamSet "id-GostR3410-94-CryptoPro-XchB-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchB_ParamSet 837 -#define OBJ_id_GostR3410_94_CryptoPro_XchB_ParamSet OBJ_cryptopro,33L,2L - -#define SN_id_GostR3410_94_CryptoPro_XchC_ParamSet "id-GostR3410-94-CryptoPro-XchC-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchC_ParamSet 838 -#define OBJ_id_GostR3410_94_CryptoPro_XchC_ParamSet OBJ_cryptopro,33L,3L - -#define SN_id_GostR3410_2001_TestParamSet "id-GostR3410-2001-TestParamSet" -#define NID_id_GostR3410_2001_TestParamSet 839 -#define OBJ_id_GostR3410_2001_TestParamSet OBJ_cryptopro,35L,0L - -#define SN_id_GostR3410_2001_CryptoPro_A_ParamSet "id-GostR3410-2001-CryptoPro-A-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_A_ParamSet 840 -#define OBJ_id_GostR3410_2001_CryptoPro_A_ParamSet OBJ_cryptopro,35L,1L - -#define SN_id_GostR3410_2001_CryptoPro_B_ParamSet "id-GostR3410-2001-CryptoPro-B-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_B_ParamSet 841 -#define OBJ_id_GostR3410_2001_CryptoPro_B_ParamSet OBJ_cryptopro,35L,2L - -#define SN_id_GostR3410_2001_CryptoPro_C_ParamSet "id-GostR3410-2001-CryptoPro-C-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_C_ParamSet 842 -#define OBJ_id_GostR3410_2001_CryptoPro_C_ParamSet OBJ_cryptopro,35L,3L - -#define SN_id_GostR3410_2001_CryptoPro_XchA_ParamSet "id-GostR3410-2001-CryptoPro-XchA-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet 843 -#define OBJ_id_GostR3410_2001_CryptoPro_XchA_ParamSet OBJ_cryptopro,36L,0L - -#define SN_id_GostR3410_2001_CryptoPro_XchB_ParamSet "id-GostR3410-2001-CryptoPro-XchB-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet 844 -#define OBJ_id_GostR3410_2001_CryptoPro_XchB_ParamSet OBJ_cryptopro,36L,1L - -#define SN_id_GostR3410_94_a "id-GostR3410-94-a" -#define NID_id_GostR3410_94_a 845 -#define OBJ_id_GostR3410_94_a OBJ_id_GostR3410_94,1L - -#define SN_id_GostR3410_94_aBis "id-GostR3410-94-aBis" -#define NID_id_GostR3410_94_aBis 846 -#define OBJ_id_GostR3410_94_aBis OBJ_id_GostR3410_94,2L - -#define SN_id_GostR3410_94_b "id-GostR3410-94-b" -#define NID_id_GostR3410_94_b 847 -#define OBJ_id_GostR3410_94_b OBJ_id_GostR3410_94,3L - -#define SN_id_GostR3410_94_bBis "id-GostR3410-94-bBis" -#define NID_id_GostR3410_94_bBis 848 -#define OBJ_id_GostR3410_94_bBis OBJ_id_GostR3410_94,4L - -#define SN_id_Gost28147_89_cc "id-Gost28147-89-cc" -#define LN_id_Gost28147_89_cc "GOST 28147-89 Cryptocom ParamSet" -#define NID_id_Gost28147_89_cc 849 -#define OBJ_id_Gost28147_89_cc OBJ_cryptocom,1L,6L,1L - -#define SN_id_GostR3410_94_cc "gost94cc" -#define LN_id_GostR3410_94_cc "GOST 34.10-94 Cryptocom" -#define NID_id_GostR3410_94_cc 850 -#define OBJ_id_GostR3410_94_cc OBJ_cryptocom,1L,5L,3L - -#define SN_id_GostR3410_2001_cc "gost2001cc" -#define LN_id_GostR3410_2001_cc "GOST 34.10-2001 Cryptocom" -#define NID_id_GostR3410_2001_cc 851 -#define OBJ_id_GostR3410_2001_cc OBJ_cryptocom,1L,5L,4L - -#define SN_id_GostR3411_94_with_GostR3410_94_cc "id-GostR3411-94-with-GostR3410-94-cc" -#define LN_id_GostR3411_94_with_GostR3410_94_cc "GOST R 34.11-94 with GOST R 34.10-94 Cryptocom" -#define NID_id_GostR3411_94_with_GostR3410_94_cc 852 -#define OBJ_id_GostR3411_94_with_GostR3410_94_cc OBJ_cryptocom,1L,3L,3L - -#define SN_id_GostR3411_94_with_GostR3410_2001_cc "id-GostR3411-94-with-GostR3410-2001-cc" -#define LN_id_GostR3411_94_with_GostR3410_2001_cc "GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom" -#define NID_id_GostR3411_94_with_GostR3410_2001_cc 853 -#define OBJ_id_GostR3411_94_with_GostR3410_2001_cc OBJ_cryptocom,1L,3L,4L - -#define SN_id_GostR3410_2001_ParamSet_cc "id-GostR3410-2001-ParamSet-cc" -#define LN_id_GostR3410_2001_ParamSet_cc "GOST R 3410-2001 Parameter Set Cryptocom" -#define NID_id_GostR3410_2001_ParamSet_cc 854 -#define OBJ_id_GostR3410_2001_ParamSet_cc OBJ_cryptocom,1L,8L,1L - -#define SN_id_tc26_algorithms "id-tc26-algorithms" -#define NID_id_tc26_algorithms 977 -#define OBJ_id_tc26_algorithms OBJ_id_tc26,1L - -#define SN_id_tc26_sign "id-tc26-sign" -#define NID_id_tc26_sign 978 -#define OBJ_id_tc26_sign OBJ_id_tc26_algorithms,1L - -#define SN_id_GostR3410_2012_256 "gost2012_256" -#define LN_id_GostR3410_2012_256 "GOST R 34.10-2012 with 256 bit modulus" -#define NID_id_GostR3410_2012_256 979 -#define OBJ_id_GostR3410_2012_256 OBJ_id_tc26_sign,1L - -#define SN_id_GostR3410_2012_512 "gost2012_512" -#define LN_id_GostR3410_2012_512 "GOST R 34.10-2012 with 512 bit modulus" -#define NID_id_GostR3410_2012_512 980 -#define OBJ_id_GostR3410_2012_512 OBJ_id_tc26_sign,2L - -#define SN_id_tc26_digest "id-tc26-digest" -#define NID_id_tc26_digest 981 -#define OBJ_id_tc26_digest OBJ_id_tc26_algorithms,2L - -#define SN_id_GostR3411_2012_256 "md_gost12_256" -#define LN_id_GostR3411_2012_256 "GOST R 34.11-2012 with 256 bit hash" -#define NID_id_GostR3411_2012_256 982 -#define OBJ_id_GostR3411_2012_256 OBJ_id_tc26_digest,2L - -#define SN_id_GostR3411_2012_512 "md_gost12_512" -#define LN_id_GostR3411_2012_512 "GOST R 34.11-2012 with 512 bit hash" -#define NID_id_GostR3411_2012_512 983 -#define OBJ_id_GostR3411_2012_512 OBJ_id_tc26_digest,3L - -#define SN_id_tc26_signwithdigest "id-tc26-signwithdigest" -#define NID_id_tc26_signwithdigest 984 -#define OBJ_id_tc26_signwithdigest OBJ_id_tc26_algorithms,3L - -#define SN_id_tc26_signwithdigest_gost3410_2012_256 "id-tc26-signwithdigest-gost3410-2012-256" -#define LN_id_tc26_signwithdigest_gost3410_2012_256 "GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)" -#define NID_id_tc26_signwithdigest_gost3410_2012_256 985 -#define OBJ_id_tc26_signwithdigest_gost3410_2012_256 OBJ_id_tc26_signwithdigest,2L - -#define SN_id_tc26_signwithdigest_gost3410_2012_512 "id-tc26-signwithdigest-gost3410-2012-512" -#define LN_id_tc26_signwithdigest_gost3410_2012_512 "GOST R 34.10-2012 with GOST R 34.11-2012 (512 bit)" -#define NID_id_tc26_signwithdigest_gost3410_2012_512 986 -#define OBJ_id_tc26_signwithdigest_gost3410_2012_512 OBJ_id_tc26_signwithdigest,3L - -#define SN_id_tc26_mac "id-tc26-mac" -#define NID_id_tc26_mac 987 -#define OBJ_id_tc26_mac OBJ_id_tc26_algorithms,4L - -#define SN_id_tc26_hmac_gost_3411_2012_256 "id-tc26-hmac-gost-3411-2012-256" -#define LN_id_tc26_hmac_gost_3411_2012_256 "HMAC GOST 34.11-2012 256 bit" -#define NID_id_tc26_hmac_gost_3411_2012_256 988 -#define OBJ_id_tc26_hmac_gost_3411_2012_256 OBJ_id_tc26_mac,1L - -#define SN_id_tc26_hmac_gost_3411_2012_512 "id-tc26-hmac-gost-3411-2012-512" -#define LN_id_tc26_hmac_gost_3411_2012_512 "HMAC GOST 34.11-2012 512 bit" -#define NID_id_tc26_hmac_gost_3411_2012_512 989 -#define OBJ_id_tc26_hmac_gost_3411_2012_512 OBJ_id_tc26_mac,2L - -#define SN_id_tc26_cipher "id-tc26-cipher" -#define NID_id_tc26_cipher 990 -#define OBJ_id_tc26_cipher OBJ_id_tc26_algorithms,5L - -#define SN_id_tc26_cipher_gostr3412_2015_magma "id-tc26-cipher-gostr3412-2015-magma" -#define NID_id_tc26_cipher_gostr3412_2015_magma 1173 -#define OBJ_id_tc26_cipher_gostr3412_2015_magma OBJ_id_tc26_cipher,1L - -#define SN_magma_ctr_acpkm "magma-ctr-acpkm" -#define NID_magma_ctr_acpkm 1174 -#define OBJ_magma_ctr_acpkm OBJ_id_tc26_cipher_gostr3412_2015_magma,1L - -#define SN_magma_ctr_acpkm_omac "magma-ctr-acpkm-omac" -#define NID_magma_ctr_acpkm_omac 1175 -#define OBJ_magma_ctr_acpkm_omac OBJ_id_tc26_cipher_gostr3412_2015_magma,2L - -#define SN_id_tc26_cipher_gostr3412_2015_kuznyechik "id-tc26-cipher-gostr3412-2015-kuznyechik" -#define NID_id_tc26_cipher_gostr3412_2015_kuznyechik 1176 -#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik OBJ_id_tc26_cipher,2L - -#define SN_kuznyechik_ctr_acpkm "kuznyechik-ctr-acpkm" -#define NID_kuznyechik_ctr_acpkm 1177 -#define OBJ_kuznyechik_ctr_acpkm OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik,1L - -#define SN_kuznyechik_ctr_acpkm_omac "kuznyechik-ctr-acpkm-omac" -#define NID_kuznyechik_ctr_acpkm_omac 1178 -#define OBJ_kuznyechik_ctr_acpkm_omac OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik,2L - -#define SN_id_tc26_agreement "id-tc26-agreement" -#define NID_id_tc26_agreement 991 -#define OBJ_id_tc26_agreement OBJ_id_tc26_algorithms,6L - -#define SN_id_tc26_agreement_gost_3410_2012_256 "id-tc26-agreement-gost-3410-2012-256" -#define NID_id_tc26_agreement_gost_3410_2012_256 992 -#define OBJ_id_tc26_agreement_gost_3410_2012_256 OBJ_id_tc26_agreement,1L - -#define SN_id_tc26_agreement_gost_3410_2012_512 "id-tc26-agreement-gost-3410-2012-512" -#define NID_id_tc26_agreement_gost_3410_2012_512 993 -#define OBJ_id_tc26_agreement_gost_3410_2012_512 OBJ_id_tc26_agreement,2L - -#define SN_id_tc26_wrap "id-tc26-wrap" -#define NID_id_tc26_wrap 1179 -#define OBJ_id_tc26_wrap OBJ_id_tc26_algorithms,7L - -#define SN_id_tc26_wrap_gostr3412_2015_magma "id-tc26-wrap-gostr3412-2015-magma" -#define NID_id_tc26_wrap_gostr3412_2015_magma 1180 -#define OBJ_id_tc26_wrap_gostr3412_2015_magma OBJ_id_tc26_wrap,1L - -#define SN_magma_kexp15 "magma-kexp15" -#define NID_magma_kexp15 1181 -#define OBJ_magma_kexp15 OBJ_id_tc26_wrap_gostr3412_2015_magma,1L - -#define SN_id_tc26_wrap_gostr3412_2015_kuznyechik "id-tc26-wrap-gostr3412-2015-kuznyechik" -#define NID_id_tc26_wrap_gostr3412_2015_kuznyechik 1182 -#define OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik OBJ_id_tc26_wrap,2L - -#define SN_kuznyechik_kexp15 "kuznyechik-kexp15" -#define NID_kuznyechik_kexp15 1183 -#define OBJ_kuznyechik_kexp15 OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik,1L - -#define SN_id_tc26_constants "id-tc26-constants" -#define NID_id_tc26_constants 994 -#define OBJ_id_tc26_constants OBJ_id_tc26,2L - -#define SN_id_tc26_sign_constants "id-tc26-sign-constants" -#define NID_id_tc26_sign_constants 995 -#define OBJ_id_tc26_sign_constants OBJ_id_tc26_constants,1L - -#define SN_id_tc26_gost_3410_2012_256_constants "id-tc26-gost-3410-2012-256-constants" -#define NID_id_tc26_gost_3410_2012_256_constants 1147 -#define OBJ_id_tc26_gost_3410_2012_256_constants OBJ_id_tc26_sign_constants,1L - -#define SN_id_tc26_gost_3410_2012_256_paramSetA "id-tc26-gost-3410-2012-256-paramSetA" -#define LN_id_tc26_gost_3410_2012_256_paramSetA "GOST R 34.10-2012 (256 bit) ParamSet A" -#define NID_id_tc26_gost_3410_2012_256_paramSetA 1148 -#define OBJ_id_tc26_gost_3410_2012_256_paramSetA OBJ_id_tc26_gost_3410_2012_256_constants,1L - -#define SN_id_tc26_gost_3410_2012_256_paramSetB "id-tc26-gost-3410-2012-256-paramSetB" -#define LN_id_tc26_gost_3410_2012_256_paramSetB "GOST R 34.10-2012 (256 bit) ParamSet B" -#define NID_id_tc26_gost_3410_2012_256_paramSetB 1184 -#define OBJ_id_tc26_gost_3410_2012_256_paramSetB OBJ_id_tc26_gost_3410_2012_256_constants,2L - -#define SN_id_tc26_gost_3410_2012_256_paramSetC "id-tc26-gost-3410-2012-256-paramSetC" -#define LN_id_tc26_gost_3410_2012_256_paramSetC "GOST R 34.10-2012 (256 bit) ParamSet C" -#define NID_id_tc26_gost_3410_2012_256_paramSetC 1185 -#define OBJ_id_tc26_gost_3410_2012_256_paramSetC OBJ_id_tc26_gost_3410_2012_256_constants,3L - -#define SN_id_tc26_gost_3410_2012_256_paramSetD "id-tc26-gost-3410-2012-256-paramSetD" -#define LN_id_tc26_gost_3410_2012_256_paramSetD "GOST R 34.10-2012 (256 bit) ParamSet D" -#define NID_id_tc26_gost_3410_2012_256_paramSetD 1186 -#define OBJ_id_tc26_gost_3410_2012_256_paramSetD OBJ_id_tc26_gost_3410_2012_256_constants,4L - -#define SN_id_tc26_gost_3410_2012_512_constants "id-tc26-gost-3410-2012-512-constants" -#define NID_id_tc26_gost_3410_2012_512_constants 996 -#define OBJ_id_tc26_gost_3410_2012_512_constants OBJ_id_tc26_sign_constants,2L - -#define SN_id_tc26_gost_3410_2012_512_paramSetTest "id-tc26-gost-3410-2012-512-paramSetTest" -#define LN_id_tc26_gost_3410_2012_512_paramSetTest "GOST R 34.10-2012 (512 bit) testing parameter set" -#define NID_id_tc26_gost_3410_2012_512_paramSetTest 997 -#define OBJ_id_tc26_gost_3410_2012_512_paramSetTest OBJ_id_tc26_gost_3410_2012_512_constants,0L - -#define SN_id_tc26_gost_3410_2012_512_paramSetA "id-tc26-gost-3410-2012-512-paramSetA" -#define LN_id_tc26_gost_3410_2012_512_paramSetA "GOST R 34.10-2012 (512 bit) ParamSet A" -#define NID_id_tc26_gost_3410_2012_512_paramSetA 998 -#define OBJ_id_tc26_gost_3410_2012_512_paramSetA OBJ_id_tc26_gost_3410_2012_512_constants,1L - -#define SN_id_tc26_gost_3410_2012_512_paramSetB "id-tc26-gost-3410-2012-512-paramSetB" -#define LN_id_tc26_gost_3410_2012_512_paramSetB "GOST R 34.10-2012 (512 bit) ParamSet B" -#define NID_id_tc26_gost_3410_2012_512_paramSetB 999 -#define OBJ_id_tc26_gost_3410_2012_512_paramSetB OBJ_id_tc26_gost_3410_2012_512_constants,2L - -#define SN_id_tc26_gost_3410_2012_512_paramSetC "id-tc26-gost-3410-2012-512-paramSetC" -#define LN_id_tc26_gost_3410_2012_512_paramSetC "GOST R 34.10-2012 (512 bit) ParamSet C" -#define NID_id_tc26_gost_3410_2012_512_paramSetC 1149 -#define OBJ_id_tc26_gost_3410_2012_512_paramSetC OBJ_id_tc26_gost_3410_2012_512_constants,3L - -#define SN_id_tc26_digest_constants "id-tc26-digest-constants" -#define NID_id_tc26_digest_constants 1000 -#define OBJ_id_tc26_digest_constants OBJ_id_tc26_constants,2L - -#define SN_id_tc26_cipher_constants "id-tc26-cipher-constants" -#define NID_id_tc26_cipher_constants 1001 -#define OBJ_id_tc26_cipher_constants OBJ_id_tc26_constants,5L - -#define SN_id_tc26_gost_28147_constants "id-tc26-gost-28147-constants" -#define NID_id_tc26_gost_28147_constants 1002 -#define OBJ_id_tc26_gost_28147_constants OBJ_id_tc26_cipher_constants,1L - -#define SN_id_tc26_gost_28147_param_Z "id-tc26-gost-28147-param-Z" -#define LN_id_tc26_gost_28147_param_Z "GOST 28147-89 TC26 parameter set" -#define NID_id_tc26_gost_28147_param_Z 1003 -#define OBJ_id_tc26_gost_28147_param_Z OBJ_id_tc26_gost_28147_constants,1L - -#define SN_INN "INN" -#define LN_INN "INN" -#define NID_INN 1004 -#define OBJ_INN OBJ_member_body,643L,3L,131L,1L,1L - -#define SN_OGRN "OGRN" -#define LN_OGRN "OGRN" -#define NID_OGRN 1005 -#define OBJ_OGRN OBJ_member_body,643L,100L,1L - -#define SN_SNILS "SNILS" -#define LN_SNILS "SNILS" -#define NID_SNILS 1006 -#define OBJ_SNILS OBJ_member_body,643L,100L,3L - -#define SN_OGRNIP "OGRNIP" -#define LN_OGRNIP "OGRNIP" -#define NID_OGRNIP 1226 -#define OBJ_OGRNIP OBJ_member_body,643L,100L,5L - -#define SN_subjectSignTool "subjectSignTool" -#define LN_subjectSignTool "Signing Tool of Subject" -#define NID_subjectSignTool 1007 -#define OBJ_subjectSignTool OBJ_member_body,643L,100L,111L - -#define SN_issuerSignTool "issuerSignTool" -#define LN_issuerSignTool "Signing Tool of Issuer" -#define NID_issuerSignTool 1008 -#define OBJ_issuerSignTool OBJ_member_body,643L,100L,112L - -#define SN_classSignTool "classSignTool" -#define LN_classSignTool "Class of Signing Tool" -#define NID_classSignTool 1227 -#define OBJ_classSignTool OBJ_member_body,643L,100L,113L - -#define SN_classSignToolKC1 "classSignToolKC1" -#define LN_classSignToolKC1 "Class of Signing Tool KC1" -#define NID_classSignToolKC1 1228 -#define OBJ_classSignToolKC1 OBJ_member_body,643L,100L,113L,1L - -#define SN_classSignToolKC2 "classSignToolKC2" -#define LN_classSignToolKC2 "Class of Signing Tool KC2" -#define NID_classSignToolKC2 1229 -#define OBJ_classSignToolKC2 OBJ_member_body,643L,100L,113L,2L - -#define SN_classSignToolKC3 "classSignToolKC3" -#define LN_classSignToolKC3 "Class of Signing Tool KC3" -#define NID_classSignToolKC3 1230 -#define OBJ_classSignToolKC3 OBJ_member_body,643L,100L,113L,3L - -#define SN_classSignToolKB1 "classSignToolKB1" -#define LN_classSignToolKB1 "Class of Signing Tool KB1" -#define NID_classSignToolKB1 1231 -#define OBJ_classSignToolKB1 OBJ_member_body,643L,100L,113L,4L - -#define SN_classSignToolKB2 "classSignToolKB2" -#define LN_classSignToolKB2 "Class of Signing Tool KB2" -#define NID_classSignToolKB2 1232 -#define OBJ_classSignToolKB2 OBJ_member_body,643L,100L,113L,5L - -#define SN_classSignToolKA1 "classSignToolKA1" -#define LN_classSignToolKA1 "Class of Signing Tool KA1" -#define NID_classSignToolKA1 1233 -#define OBJ_classSignToolKA1 OBJ_member_body,643L,100L,113L,6L - -#define SN_kuznyechik_ecb "kuznyechik-ecb" -#define NID_kuznyechik_ecb 1012 - -#define SN_kuznyechik_ctr "kuznyechik-ctr" -#define NID_kuznyechik_ctr 1013 - -#define SN_kuznyechik_ofb "kuznyechik-ofb" -#define NID_kuznyechik_ofb 1014 - -#define SN_kuznyechik_cbc "kuznyechik-cbc" -#define NID_kuznyechik_cbc 1015 - -#define SN_kuznyechik_cfb "kuznyechik-cfb" -#define NID_kuznyechik_cfb 1016 - -#define SN_kuznyechik_mac "kuznyechik-mac" -#define NID_kuznyechik_mac 1017 - -#define SN_magma_ecb "magma-ecb" -#define NID_magma_ecb 1187 - -#define SN_magma_ctr "magma-ctr" -#define NID_magma_ctr 1188 - -#define SN_magma_ofb "magma-ofb" -#define NID_magma_ofb 1189 - -#define SN_magma_cbc "magma-cbc" -#define NID_magma_cbc 1190 - -#define SN_magma_cfb "magma-cfb" -#define NID_magma_cfb 1191 - -#define SN_magma_mac "magma-mac" -#define NID_magma_mac 1192 - -#define SN_camellia_128_cbc "CAMELLIA-128-CBC" -#define LN_camellia_128_cbc "camellia-128-cbc" -#define NID_camellia_128_cbc 751 -#define OBJ_camellia_128_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,2L - -#define SN_camellia_192_cbc "CAMELLIA-192-CBC" -#define LN_camellia_192_cbc "camellia-192-cbc" -#define NID_camellia_192_cbc 752 -#define OBJ_camellia_192_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,3L - -#define SN_camellia_256_cbc "CAMELLIA-256-CBC" -#define LN_camellia_256_cbc "camellia-256-cbc" -#define NID_camellia_256_cbc 753 -#define OBJ_camellia_256_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,4L - -#define SN_id_camellia128_wrap "id-camellia128-wrap" -#define NID_id_camellia128_wrap 907 -#define OBJ_id_camellia128_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,2L - -#define SN_id_camellia192_wrap "id-camellia192-wrap" -#define NID_id_camellia192_wrap 908 -#define OBJ_id_camellia192_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,3L - -#define SN_id_camellia256_wrap "id-camellia256-wrap" -#define NID_id_camellia256_wrap 909 -#define OBJ_id_camellia256_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,4L - -#define OBJ_ntt_ds 0L,3L,4401L,5L - -#define OBJ_camellia OBJ_ntt_ds,3L,1L,9L - -#define SN_camellia_128_ecb "CAMELLIA-128-ECB" -#define LN_camellia_128_ecb "camellia-128-ecb" -#define NID_camellia_128_ecb 754 -#define OBJ_camellia_128_ecb OBJ_camellia,1L - -#define SN_camellia_128_ofb128 "CAMELLIA-128-OFB" -#define LN_camellia_128_ofb128 "camellia-128-ofb" -#define NID_camellia_128_ofb128 766 -#define OBJ_camellia_128_ofb128 OBJ_camellia,3L - -#define SN_camellia_128_cfb128 "CAMELLIA-128-CFB" -#define LN_camellia_128_cfb128 "camellia-128-cfb" -#define NID_camellia_128_cfb128 757 -#define OBJ_camellia_128_cfb128 OBJ_camellia,4L - -#define SN_camellia_128_gcm "CAMELLIA-128-GCM" -#define LN_camellia_128_gcm "camellia-128-gcm" -#define NID_camellia_128_gcm 961 -#define OBJ_camellia_128_gcm OBJ_camellia,6L - -#define SN_camellia_128_ccm "CAMELLIA-128-CCM" -#define LN_camellia_128_ccm "camellia-128-ccm" -#define NID_camellia_128_ccm 962 -#define OBJ_camellia_128_ccm OBJ_camellia,7L - -#define SN_camellia_128_ctr "CAMELLIA-128-CTR" -#define LN_camellia_128_ctr "camellia-128-ctr" -#define NID_camellia_128_ctr 963 -#define OBJ_camellia_128_ctr OBJ_camellia,9L - -#define SN_camellia_128_cmac "CAMELLIA-128-CMAC" -#define LN_camellia_128_cmac "camellia-128-cmac" -#define NID_camellia_128_cmac 964 -#define OBJ_camellia_128_cmac OBJ_camellia,10L - -#define SN_camellia_192_ecb "CAMELLIA-192-ECB" -#define LN_camellia_192_ecb "camellia-192-ecb" -#define NID_camellia_192_ecb 755 -#define OBJ_camellia_192_ecb OBJ_camellia,21L - -#define SN_camellia_192_ofb128 "CAMELLIA-192-OFB" -#define LN_camellia_192_ofb128 "camellia-192-ofb" -#define NID_camellia_192_ofb128 767 -#define OBJ_camellia_192_ofb128 OBJ_camellia,23L - -#define SN_camellia_192_cfb128 "CAMELLIA-192-CFB" -#define LN_camellia_192_cfb128 "camellia-192-cfb" -#define NID_camellia_192_cfb128 758 -#define OBJ_camellia_192_cfb128 OBJ_camellia,24L - -#define SN_camellia_192_gcm "CAMELLIA-192-GCM" -#define LN_camellia_192_gcm "camellia-192-gcm" -#define NID_camellia_192_gcm 965 -#define OBJ_camellia_192_gcm OBJ_camellia,26L - -#define SN_camellia_192_ccm "CAMELLIA-192-CCM" -#define LN_camellia_192_ccm "camellia-192-ccm" -#define NID_camellia_192_ccm 966 -#define OBJ_camellia_192_ccm OBJ_camellia,27L - -#define SN_camellia_192_ctr "CAMELLIA-192-CTR" -#define LN_camellia_192_ctr "camellia-192-ctr" -#define NID_camellia_192_ctr 967 -#define OBJ_camellia_192_ctr OBJ_camellia,29L - -#define SN_camellia_192_cmac "CAMELLIA-192-CMAC" -#define LN_camellia_192_cmac "camellia-192-cmac" -#define NID_camellia_192_cmac 968 -#define OBJ_camellia_192_cmac OBJ_camellia,30L - -#define SN_camellia_256_ecb "CAMELLIA-256-ECB" -#define LN_camellia_256_ecb "camellia-256-ecb" -#define NID_camellia_256_ecb 756 -#define OBJ_camellia_256_ecb OBJ_camellia,41L - -#define SN_camellia_256_ofb128 "CAMELLIA-256-OFB" -#define LN_camellia_256_ofb128 "camellia-256-ofb" -#define NID_camellia_256_ofb128 768 -#define OBJ_camellia_256_ofb128 OBJ_camellia,43L - -#define SN_camellia_256_cfb128 "CAMELLIA-256-CFB" -#define LN_camellia_256_cfb128 "camellia-256-cfb" -#define NID_camellia_256_cfb128 759 -#define OBJ_camellia_256_cfb128 OBJ_camellia,44L - -#define SN_camellia_256_gcm "CAMELLIA-256-GCM" -#define LN_camellia_256_gcm "camellia-256-gcm" -#define NID_camellia_256_gcm 969 -#define OBJ_camellia_256_gcm OBJ_camellia,46L - -#define SN_camellia_256_ccm "CAMELLIA-256-CCM" -#define LN_camellia_256_ccm "camellia-256-ccm" -#define NID_camellia_256_ccm 970 -#define OBJ_camellia_256_ccm OBJ_camellia,47L - -#define SN_camellia_256_ctr "CAMELLIA-256-CTR" -#define LN_camellia_256_ctr "camellia-256-ctr" -#define NID_camellia_256_ctr 971 -#define OBJ_camellia_256_ctr OBJ_camellia,49L - -#define SN_camellia_256_cmac "CAMELLIA-256-CMAC" -#define LN_camellia_256_cmac "camellia-256-cmac" -#define NID_camellia_256_cmac 972 -#define OBJ_camellia_256_cmac OBJ_camellia,50L - -#define SN_camellia_128_cfb1 "CAMELLIA-128-CFB1" -#define LN_camellia_128_cfb1 "camellia-128-cfb1" -#define NID_camellia_128_cfb1 760 - -#define SN_camellia_192_cfb1 "CAMELLIA-192-CFB1" -#define LN_camellia_192_cfb1 "camellia-192-cfb1" -#define NID_camellia_192_cfb1 761 - -#define SN_camellia_256_cfb1 "CAMELLIA-256-CFB1" -#define LN_camellia_256_cfb1 "camellia-256-cfb1" -#define NID_camellia_256_cfb1 762 - -#define SN_camellia_128_cfb8 "CAMELLIA-128-CFB8" -#define LN_camellia_128_cfb8 "camellia-128-cfb8" -#define NID_camellia_128_cfb8 763 - -#define SN_camellia_192_cfb8 "CAMELLIA-192-CFB8" -#define LN_camellia_192_cfb8 "camellia-192-cfb8" -#define NID_camellia_192_cfb8 764 - -#define SN_camellia_256_cfb8 "CAMELLIA-256-CFB8" -#define LN_camellia_256_cfb8 "camellia-256-cfb8" -#define NID_camellia_256_cfb8 765 - -#define OBJ_aria 1L,2L,410L,200046L,1L,1L - -#define SN_aria_128_ecb "ARIA-128-ECB" -#define LN_aria_128_ecb "aria-128-ecb" -#define NID_aria_128_ecb 1065 -#define OBJ_aria_128_ecb OBJ_aria,1L - -#define SN_aria_128_cbc "ARIA-128-CBC" -#define LN_aria_128_cbc "aria-128-cbc" -#define NID_aria_128_cbc 1066 -#define OBJ_aria_128_cbc OBJ_aria,2L - -#define SN_aria_128_cfb128 "ARIA-128-CFB" -#define LN_aria_128_cfb128 "aria-128-cfb" -#define NID_aria_128_cfb128 1067 -#define OBJ_aria_128_cfb128 OBJ_aria,3L - -#define SN_aria_128_ofb128 "ARIA-128-OFB" -#define LN_aria_128_ofb128 "aria-128-ofb" -#define NID_aria_128_ofb128 1068 -#define OBJ_aria_128_ofb128 OBJ_aria,4L - -#define SN_aria_128_ctr "ARIA-128-CTR" -#define LN_aria_128_ctr "aria-128-ctr" -#define NID_aria_128_ctr 1069 -#define OBJ_aria_128_ctr OBJ_aria,5L - -#define SN_aria_192_ecb "ARIA-192-ECB" -#define LN_aria_192_ecb "aria-192-ecb" -#define NID_aria_192_ecb 1070 -#define OBJ_aria_192_ecb OBJ_aria,6L - -#define SN_aria_192_cbc "ARIA-192-CBC" -#define LN_aria_192_cbc "aria-192-cbc" -#define NID_aria_192_cbc 1071 -#define OBJ_aria_192_cbc OBJ_aria,7L - -#define SN_aria_192_cfb128 "ARIA-192-CFB" -#define LN_aria_192_cfb128 "aria-192-cfb" -#define NID_aria_192_cfb128 1072 -#define OBJ_aria_192_cfb128 OBJ_aria,8L - -#define SN_aria_192_ofb128 "ARIA-192-OFB" -#define LN_aria_192_ofb128 "aria-192-ofb" -#define NID_aria_192_ofb128 1073 -#define OBJ_aria_192_ofb128 OBJ_aria,9L - -#define SN_aria_192_ctr "ARIA-192-CTR" -#define LN_aria_192_ctr "aria-192-ctr" -#define NID_aria_192_ctr 1074 -#define OBJ_aria_192_ctr OBJ_aria,10L - -#define SN_aria_256_ecb "ARIA-256-ECB" -#define LN_aria_256_ecb "aria-256-ecb" -#define NID_aria_256_ecb 1075 -#define OBJ_aria_256_ecb OBJ_aria,11L - -#define SN_aria_256_cbc "ARIA-256-CBC" -#define LN_aria_256_cbc "aria-256-cbc" -#define NID_aria_256_cbc 1076 -#define OBJ_aria_256_cbc OBJ_aria,12L - -#define SN_aria_256_cfb128 "ARIA-256-CFB" -#define LN_aria_256_cfb128 "aria-256-cfb" -#define NID_aria_256_cfb128 1077 -#define OBJ_aria_256_cfb128 OBJ_aria,13L - -#define SN_aria_256_ofb128 "ARIA-256-OFB" -#define LN_aria_256_ofb128 "aria-256-ofb" -#define NID_aria_256_ofb128 1078 -#define OBJ_aria_256_ofb128 OBJ_aria,14L - -#define SN_aria_256_ctr "ARIA-256-CTR" -#define LN_aria_256_ctr "aria-256-ctr" -#define NID_aria_256_ctr 1079 -#define OBJ_aria_256_ctr OBJ_aria,15L - -#define SN_aria_128_cfb1 "ARIA-128-CFB1" -#define LN_aria_128_cfb1 "aria-128-cfb1" -#define NID_aria_128_cfb1 1080 - -#define SN_aria_192_cfb1 "ARIA-192-CFB1" -#define LN_aria_192_cfb1 "aria-192-cfb1" -#define NID_aria_192_cfb1 1081 - -#define SN_aria_256_cfb1 "ARIA-256-CFB1" -#define LN_aria_256_cfb1 "aria-256-cfb1" -#define NID_aria_256_cfb1 1082 - -#define SN_aria_128_cfb8 "ARIA-128-CFB8" -#define LN_aria_128_cfb8 "aria-128-cfb8" -#define NID_aria_128_cfb8 1083 - -#define SN_aria_192_cfb8 "ARIA-192-CFB8" -#define LN_aria_192_cfb8 "aria-192-cfb8" -#define NID_aria_192_cfb8 1084 - -#define SN_aria_256_cfb8 "ARIA-256-CFB8" -#define LN_aria_256_cfb8 "aria-256-cfb8" -#define NID_aria_256_cfb8 1085 - -#define SN_aria_128_ccm "ARIA-128-CCM" -#define LN_aria_128_ccm "aria-128-ccm" -#define NID_aria_128_ccm 1120 -#define OBJ_aria_128_ccm OBJ_aria,37L - -#define SN_aria_192_ccm "ARIA-192-CCM" -#define LN_aria_192_ccm "aria-192-ccm" -#define NID_aria_192_ccm 1121 -#define OBJ_aria_192_ccm OBJ_aria,38L - -#define SN_aria_256_ccm "ARIA-256-CCM" -#define LN_aria_256_ccm "aria-256-ccm" -#define NID_aria_256_ccm 1122 -#define OBJ_aria_256_ccm OBJ_aria,39L - -#define SN_aria_128_gcm "ARIA-128-GCM" -#define LN_aria_128_gcm "aria-128-gcm" -#define NID_aria_128_gcm 1123 -#define OBJ_aria_128_gcm OBJ_aria,34L - -#define SN_aria_192_gcm "ARIA-192-GCM" -#define LN_aria_192_gcm "aria-192-gcm" -#define NID_aria_192_gcm 1124 -#define OBJ_aria_192_gcm OBJ_aria,35L - -#define SN_aria_256_gcm "ARIA-256-GCM" -#define LN_aria_256_gcm "aria-256-gcm" -#define NID_aria_256_gcm 1125 -#define OBJ_aria_256_gcm OBJ_aria,36L - -#define SN_kisa "KISA" -#define LN_kisa "kisa" -#define NID_kisa 773 -#define OBJ_kisa OBJ_member_body,410L,200004L - -#define SN_seed_ecb "SEED-ECB" -#define LN_seed_ecb "seed-ecb" -#define NID_seed_ecb 776 -#define OBJ_seed_ecb OBJ_kisa,1L,3L - -#define SN_seed_cbc "SEED-CBC" -#define LN_seed_cbc "seed-cbc" -#define NID_seed_cbc 777 -#define OBJ_seed_cbc OBJ_kisa,1L,4L - -#define SN_seed_cfb128 "SEED-CFB" -#define LN_seed_cfb128 "seed-cfb" -#define NID_seed_cfb128 779 -#define OBJ_seed_cfb128 OBJ_kisa,1L,5L - -#define SN_seed_ofb128 "SEED-OFB" -#define LN_seed_ofb128 "seed-ofb" -#define NID_seed_ofb128 778 -#define OBJ_seed_ofb128 OBJ_kisa,1L,6L - -#define SN_sm4_ecb "SM4-ECB" -#define LN_sm4_ecb "sm4-ecb" -#define NID_sm4_ecb 1133 -#define OBJ_sm4_ecb OBJ_sm_scheme,104L,1L - -#define SN_sm4_cbc "SM4-CBC" -#define LN_sm4_cbc "sm4-cbc" -#define NID_sm4_cbc 1134 -#define OBJ_sm4_cbc OBJ_sm_scheme,104L,2L - -#define SN_sm4_ofb128 "SM4-OFB" -#define LN_sm4_ofb128 "sm4-ofb" -#define NID_sm4_ofb128 1135 -#define OBJ_sm4_ofb128 OBJ_sm_scheme,104L,3L - -#define SN_sm4_cfb128 "SM4-CFB" -#define LN_sm4_cfb128 "sm4-cfb" -#define NID_sm4_cfb128 1137 -#define OBJ_sm4_cfb128 OBJ_sm_scheme,104L,4L - -#define SN_sm4_cfb1 "SM4-CFB1" -#define LN_sm4_cfb1 "sm4-cfb1" -#define NID_sm4_cfb1 1136 -#define OBJ_sm4_cfb1 OBJ_sm_scheme,104L,5L - -#define SN_sm4_cfb8 "SM4-CFB8" -#define LN_sm4_cfb8 "sm4-cfb8" -#define NID_sm4_cfb8 1138 -#define OBJ_sm4_cfb8 OBJ_sm_scheme,104L,6L - -#define SN_sm4_ctr "SM4-CTR" -#define LN_sm4_ctr "sm4-ctr" -#define NID_sm4_ctr 1139 -#define OBJ_sm4_ctr OBJ_sm_scheme,104L,7L - -#define SN_sm4_gcm "SM4-GCM" -#define LN_sm4_gcm "sm4-gcm" -#define NID_sm4_gcm 1248 -#define OBJ_sm4_gcm OBJ_sm_scheme,104L,8L - -#define SN_sm4_ccm "SM4-CCM" -#define LN_sm4_ccm "sm4-ccm" -#define NID_sm4_ccm 1249 -#define OBJ_sm4_ccm OBJ_sm_scheme,104L,9L - -#define SN_sm4_xts "SM4-XTS" -#define LN_sm4_xts "sm4-xts" -#define NID_sm4_xts 1290 -#define OBJ_sm4_xts OBJ_sm_scheme,104L,10L - -#define SN_hmac "HMAC" -#define LN_hmac "hmac" -#define NID_hmac 855 - -#define SN_cmac "CMAC" -#define LN_cmac "cmac" -#define NID_cmac 894 - -#define SN_rc4_hmac_md5 "RC4-HMAC-MD5" -#define LN_rc4_hmac_md5 "rc4-hmac-md5" -#define NID_rc4_hmac_md5 915 - -#define SN_aes_128_cbc_hmac_sha1 "AES-128-CBC-HMAC-SHA1" -#define LN_aes_128_cbc_hmac_sha1 "aes-128-cbc-hmac-sha1" -#define NID_aes_128_cbc_hmac_sha1 916 - -#define SN_aes_192_cbc_hmac_sha1 "AES-192-CBC-HMAC-SHA1" -#define LN_aes_192_cbc_hmac_sha1 "aes-192-cbc-hmac-sha1" -#define NID_aes_192_cbc_hmac_sha1 917 - -#define SN_aes_256_cbc_hmac_sha1 "AES-256-CBC-HMAC-SHA1" -#define LN_aes_256_cbc_hmac_sha1 "aes-256-cbc-hmac-sha1" -#define NID_aes_256_cbc_hmac_sha1 918 - -#define SN_aes_128_cbc_hmac_sha256 "AES-128-CBC-HMAC-SHA256" -#define LN_aes_128_cbc_hmac_sha256 "aes-128-cbc-hmac-sha256" -#define NID_aes_128_cbc_hmac_sha256 948 - -#define SN_aes_192_cbc_hmac_sha256 "AES-192-CBC-HMAC-SHA256" -#define LN_aes_192_cbc_hmac_sha256 "aes-192-cbc-hmac-sha256" -#define NID_aes_192_cbc_hmac_sha256 949 - -#define SN_aes_256_cbc_hmac_sha256 "AES-256-CBC-HMAC-SHA256" -#define LN_aes_256_cbc_hmac_sha256 "aes-256-cbc-hmac-sha256" -#define NID_aes_256_cbc_hmac_sha256 950 - -#define SN_chacha20_poly1305 "ChaCha20-Poly1305" -#define LN_chacha20_poly1305 "chacha20-poly1305" -#define NID_chacha20_poly1305 1018 - -#define SN_chacha20 "ChaCha20" -#define LN_chacha20 "chacha20" -#define NID_chacha20 1019 - -#define SN_aes_128_cbc_hmac_sha1_etm "AES-128-CBC-HMAC-SHA1-ETM" -#define LN_aes_128_cbc_hmac_sha1_etm "aes-128-cbc-hmac-sha1-etm" -#define NID_aes_128_cbc_hmac_sha1_etm 1487 - -#define SN_aes_192_cbc_hmac_sha1_etm "AES-192-CBC-HMAC-SHA1-ETM" -#define LN_aes_192_cbc_hmac_sha1_etm "aes-192-cbc-hmac-sha1-etm" -#define NID_aes_192_cbc_hmac_sha1_etm 1488 - -#define SN_aes_256_cbc_hmac_sha1_etm "AES-256-CBC-HMAC-SHA1-ETM" -#define LN_aes_256_cbc_hmac_sha1_etm "aes-256-cbc-hmac-sha1-etm" -#define NID_aes_256_cbc_hmac_sha1_etm 1489 - -#define SN_aes_128_cbc_hmac_sha256_etm "AES-128-CBC-HMAC-SHA256-ETM" -#define LN_aes_128_cbc_hmac_sha256_etm "aes-128-cbc-hmac-sha256-etm" -#define NID_aes_128_cbc_hmac_sha256_etm 1490 - -#define SN_aes_192_cbc_hmac_sha256_etm "AES-192-CBC-HMAC-SHA256-ETM" -#define LN_aes_192_cbc_hmac_sha256_etm "aes-192-cbc-hmac-sha256-etm" -#define NID_aes_192_cbc_hmac_sha256_etm 1491 - -#define SN_aes_256_cbc_hmac_sha256_etm "AES-256-CBC-HMAC-SHA256-ETM" -#define LN_aes_256_cbc_hmac_sha256_etm "aes-256-cbc-hmac-sha256-etm" -#define NID_aes_256_cbc_hmac_sha256_etm 1492 - -#define SN_aes_128_cbc_hmac_sha512_etm "AES-128-CBC-HMAC-SHA512-ETM" -#define LN_aes_128_cbc_hmac_sha512_etm "aes-128-cbc-hmac-sha512-etm" -#define NID_aes_128_cbc_hmac_sha512_etm 1493 - -#define SN_aes_192_cbc_hmac_sha512_etm "AES-192-CBC-HMAC-SHA512-ETM" -#define LN_aes_192_cbc_hmac_sha512_etm "aes-192-cbc-hmac-sha512-etm" -#define NID_aes_192_cbc_hmac_sha512_etm 1494 - -#define SN_aes_256_cbc_hmac_sha512_etm "AES-256-CBC-HMAC-SHA512-ETM" -#define LN_aes_256_cbc_hmac_sha512_etm "aes-256-cbc-hmac-sha512-etm" -#define NID_aes_256_cbc_hmac_sha512_etm 1495 - -#define SN_dhpublicnumber "dhpublicnumber" -#define LN_dhpublicnumber "X9.42 DH" -#define NID_dhpublicnumber 920 -#define OBJ_dhpublicnumber OBJ_ISO_US,10046L,2L,1L - -#define SN_brainpoolP160r1 "brainpoolP160r1" -#define NID_brainpoolP160r1 921 -#define OBJ_brainpoolP160r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,1L - -#define SN_brainpoolP160t1 "brainpoolP160t1" -#define NID_brainpoolP160t1 922 -#define OBJ_brainpoolP160t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,2L - -#define SN_brainpoolP192r1 "brainpoolP192r1" -#define NID_brainpoolP192r1 923 -#define OBJ_brainpoolP192r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,3L - -#define SN_brainpoolP192t1 "brainpoolP192t1" -#define NID_brainpoolP192t1 924 -#define OBJ_brainpoolP192t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,4L - -#define SN_brainpoolP224r1 "brainpoolP224r1" -#define NID_brainpoolP224r1 925 -#define OBJ_brainpoolP224r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,5L - -#define SN_brainpoolP224t1 "brainpoolP224t1" -#define NID_brainpoolP224t1 926 -#define OBJ_brainpoolP224t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,6L - -#define SN_brainpoolP256r1 "brainpoolP256r1" -#define NID_brainpoolP256r1 927 -#define OBJ_brainpoolP256r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,7L - -#define SN_brainpoolP256r1tls13 "brainpoolP256r1tls13" -#define NID_brainpoolP256r1tls13 1285 - -#define SN_brainpoolP256t1 "brainpoolP256t1" -#define NID_brainpoolP256t1 928 -#define OBJ_brainpoolP256t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,8L - -#define SN_brainpoolP320r1 "brainpoolP320r1" -#define NID_brainpoolP320r1 929 -#define OBJ_brainpoolP320r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,9L - -#define SN_brainpoolP320t1 "brainpoolP320t1" -#define NID_brainpoolP320t1 930 -#define OBJ_brainpoolP320t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,10L - -#define SN_brainpoolP384r1 "brainpoolP384r1" -#define NID_brainpoolP384r1 931 -#define OBJ_brainpoolP384r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,11L - -#define SN_brainpoolP384r1tls13 "brainpoolP384r1tls13" -#define NID_brainpoolP384r1tls13 1286 - -#define SN_brainpoolP384t1 "brainpoolP384t1" -#define NID_brainpoolP384t1 932 -#define OBJ_brainpoolP384t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,12L - -#define SN_brainpoolP512r1 "brainpoolP512r1" -#define NID_brainpoolP512r1 933 -#define OBJ_brainpoolP512r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,13L - -#define SN_brainpoolP512r1tls13 "brainpoolP512r1tls13" -#define NID_brainpoolP512r1tls13 1287 - -#define SN_brainpoolP512t1 "brainpoolP512t1" -#define NID_brainpoolP512t1 934 -#define OBJ_brainpoolP512t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,14L - -#define OBJ_x9_63_scheme 1L,3L,133L,16L,840L,63L,0L - -#define OBJ_secg_scheme OBJ_certicom_arc,1L - -#define SN_dhSinglePass_stdDH_sha1kdf_scheme "dhSinglePass-stdDH-sha1kdf-scheme" -#define NID_dhSinglePass_stdDH_sha1kdf_scheme 936 -#define OBJ_dhSinglePass_stdDH_sha1kdf_scheme OBJ_x9_63_scheme,2L - -#define SN_dhSinglePass_stdDH_sha224kdf_scheme "dhSinglePass-stdDH-sha224kdf-scheme" -#define NID_dhSinglePass_stdDH_sha224kdf_scheme 937 -#define OBJ_dhSinglePass_stdDH_sha224kdf_scheme OBJ_secg_scheme,11L,0L - -#define SN_dhSinglePass_stdDH_sha256kdf_scheme "dhSinglePass-stdDH-sha256kdf-scheme" -#define NID_dhSinglePass_stdDH_sha256kdf_scheme 938 -#define OBJ_dhSinglePass_stdDH_sha256kdf_scheme OBJ_secg_scheme,11L,1L - -#define SN_dhSinglePass_stdDH_sha384kdf_scheme "dhSinglePass-stdDH-sha384kdf-scheme" -#define NID_dhSinglePass_stdDH_sha384kdf_scheme 939 -#define OBJ_dhSinglePass_stdDH_sha384kdf_scheme OBJ_secg_scheme,11L,2L - -#define SN_dhSinglePass_stdDH_sha512kdf_scheme "dhSinglePass-stdDH-sha512kdf-scheme" -#define NID_dhSinglePass_stdDH_sha512kdf_scheme 940 -#define OBJ_dhSinglePass_stdDH_sha512kdf_scheme OBJ_secg_scheme,11L,3L - -#define SN_dhSinglePass_cofactorDH_sha1kdf_scheme "dhSinglePass-cofactorDH-sha1kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha1kdf_scheme 941 -#define OBJ_dhSinglePass_cofactorDH_sha1kdf_scheme OBJ_x9_63_scheme,3L - -#define SN_dhSinglePass_cofactorDH_sha224kdf_scheme "dhSinglePass-cofactorDH-sha224kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha224kdf_scheme 942 -#define OBJ_dhSinglePass_cofactorDH_sha224kdf_scheme OBJ_secg_scheme,14L,0L - -#define SN_dhSinglePass_cofactorDH_sha256kdf_scheme "dhSinglePass-cofactorDH-sha256kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha256kdf_scheme 943 -#define OBJ_dhSinglePass_cofactorDH_sha256kdf_scheme OBJ_secg_scheme,14L,1L - -#define SN_dhSinglePass_cofactorDH_sha384kdf_scheme "dhSinglePass-cofactorDH-sha384kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha384kdf_scheme 944 -#define OBJ_dhSinglePass_cofactorDH_sha384kdf_scheme OBJ_secg_scheme,14L,2L - -#define SN_dhSinglePass_cofactorDH_sha512kdf_scheme "dhSinglePass-cofactorDH-sha512kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha512kdf_scheme 945 -#define OBJ_dhSinglePass_cofactorDH_sha512kdf_scheme OBJ_secg_scheme,14L,3L - -#define SN_dh_std_kdf "dh-std-kdf" -#define NID_dh_std_kdf 946 - -#define SN_dh_cofactor_kdf "dh-cofactor-kdf" -#define NID_dh_cofactor_kdf 947 - -#define SN_ct_precert_scts "ct_precert_scts" -#define LN_ct_precert_scts "CT Precertificate SCTs" -#define NID_ct_precert_scts 951 -#define OBJ_ct_precert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,2L - -#define SN_ct_precert_poison "ct_precert_poison" -#define LN_ct_precert_poison "CT Precertificate Poison" -#define NID_ct_precert_poison 952 -#define OBJ_ct_precert_poison 1L,3L,6L,1L,4L,1L,11129L,2L,4L,3L - -#define SN_ct_precert_signer "ct_precert_signer" -#define LN_ct_precert_signer "CT Precertificate Signer" -#define NID_ct_precert_signer 953 -#define OBJ_ct_precert_signer 1L,3L,6L,1L,4L,1L,11129L,2L,4L,4L - -#define SN_ct_cert_scts "ct_cert_scts" -#define LN_ct_cert_scts "CT Certificate SCTs" -#define NID_ct_cert_scts 954 -#define OBJ_ct_cert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,5L - -#define SN_jurisdictionLocalityName "jurisdictionL" -#define LN_jurisdictionLocalityName "jurisdictionLocalityName" -#define NID_jurisdictionLocalityName 955 -#define OBJ_jurisdictionLocalityName OBJ_ms_corp,60L,2L,1L,1L - -#define SN_jurisdictionStateOrProvinceName "jurisdictionST" -#define LN_jurisdictionStateOrProvinceName "jurisdictionStateOrProvinceName" -#define NID_jurisdictionStateOrProvinceName 956 -#define OBJ_jurisdictionStateOrProvinceName OBJ_ms_corp,60L,2L,1L,2L - -#define SN_jurisdictionCountryName "jurisdictionC" -#define LN_jurisdictionCountryName "jurisdictionCountryName" -#define NID_jurisdictionCountryName 957 -#define OBJ_jurisdictionCountryName OBJ_ms_corp,60L,2L,1L,3L - -#define SN_id_scrypt "id-scrypt" -#define LN_id_scrypt "scrypt" -#define NID_id_scrypt 973 -#define OBJ_id_scrypt 1L,3L,6L,1L,4L,1L,11591L,4L,11L - -#define SN_tls1_prf "TLS1-PRF" -#define LN_tls1_prf "tls1-prf" -#define NID_tls1_prf 1021 - -#define SN_hkdf "HKDF" -#define LN_hkdf "hkdf" -#define NID_hkdf 1036 - -#define SN_sshkdf "SSHKDF" -#define LN_sshkdf "sshkdf" -#define NID_sshkdf 1203 - -#define SN_sskdf "SSKDF" -#define LN_sskdf "sskdf" -#define NID_sskdf 1205 - -#define SN_x942kdf "X942KDF" -#define LN_x942kdf "x942kdf" -#define NID_x942kdf 1207 - -#define SN_x963kdf "X963KDF" -#define LN_x963kdf "x963kdf" -#define NID_x963kdf 1206 - -#define SN_id_pkinit "id-pkinit" -#define NID_id_pkinit 1031 -#define OBJ_id_pkinit 1L,3L,6L,1L,5L,2L,3L - -#define SN_pkInitClientAuth "pkInitClientAuth" -#define LN_pkInitClientAuth "PKINIT Client Auth" -#define NID_pkInitClientAuth 1032 -#define OBJ_pkInitClientAuth OBJ_id_pkinit,4L - -#define SN_pkInitKDC "pkInitKDC" -#define LN_pkInitKDC "Signing KDC Response" -#define NID_pkInitKDC 1033 -#define OBJ_pkInitKDC OBJ_id_pkinit,5L - -#define SN_X25519 "X25519" -#define NID_X25519 1034 -#define OBJ_X25519 1L,3L,101L,110L - -#define SN_X448 "X448" -#define NID_X448 1035 -#define OBJ_X448 1L,3L,101L,111L - -#define SN_ED25519 "ED25519" -#define NID_ED25519 1087 -#define OBJ_ED25519 1L,3L,101L,112L - -#define SN_ED448 "ED448" -#define NID_ED448 1088 -#define OBJ_ED448 1L,3L,101L,113L - -#define SN_kx_rsa "KxRSA" -#define LN_kx_rsa "kx-rsa" -#define NID_kx_rsa 1037 - -#define SN_kx_ecdhe "KxECDHE" -#define LN_kx_ecdhe "kx-ecdhe" -#define NID_kx_ecdhe 1038 - -#define SN_kx_dhe "KxDHE" -#define LN_kx_dhe "kx-dhe" -#define NID_kx_dhe 1039 - -#define SN_kx_ecdhe_psk "KxECDHE-PSK" -#define LN_kx_ecdhe_psk "kx-ecdhe-psk" -#define NID_kx_ecdhe_psk 1040 - -#define SN_kx_dhe_psk "KxDHE-PSK" -#define LN_kx_dhe_psk "kx-dhe-psk" -#define NID_kx_dhe_psk 1041 - -#define SN_kx_rsa_psk "KxRSA_PSK" -#define LN_kx_rsa_psk "kx-rsa-psk" -#define NID_kx_rsa_psk 1042 - -#define SN_kx_psk "KxPSK" -#define LN_kx_psk "kx-psk" -#define NID_kx_psk 1043 - -#define SN_kx_srp "KxSRP" -#define LN_kx_srp "kx-srp" -#define NID_kx_srp 1044 - -#define SN_kx_gost "KxGOST" -#define LN_kx_gost "kx-gost" -#define NID_kx_gost 1045 - -#define SN_kx_gost18 "KxGOST18" -#define LN_kx_gost18 "kx-gost18" -#define NID_kx_gost18 1218 - -#define SN_kx_any "KxANY" -#define LN_kx_any "kx-any" -#define NID_kx_any 1063 - -#define SN_auth_rsa "AuthRSA" -#define LN_auth_rsa "auth-rsa" -#define NID_auth_rsa 1046 - -#define SN_auth_ecdsa "AuthECDSA" -#define LN_auth_ecdsa "auth-ecdsa" -#define NID_auth_ecdsa 1047 - -#define SN_auth_psk "AuthPSK" -#define LN_auth_psk "auth-psk" -#define NID_auth_psk 1048 - -#define SN_auth_dss "AuthDSS" -#define LN_auth_dss "auth-dss" -#define NID_auth_dss 1049 - -#define SN_auth_gost01 "AuthGOST01" -#define LN_auth_gost01 "auth-gost01" -#define NID_auth_gost01 1050 - -#define SN_auth_gost12 "AuthGOST12" -#define LN_auth_gost12 "auth-gost12" -#define NID_auth_gost12 1051 - -#define SN_auth_srp "AuthSRP" -#define LN_auth_srp "auth-srp" -#define NID_auth_srp 1052 - -#define SN_auth_null "AuthNULL" -#define LN_auth_null "auth-null" -#define NID_auth_null 1053 - -#define SN_auth_any "AuthANY" -#define LN_auth_any "auth-any" -#define NID_auth_any 1064 - -#define SN_poly1305 "Poly1305" -#define LN_poly1305 "poly1305" -#define NID_poly1305 1061 - -#define SN_siphash "SipHash" -#define LN_siphash "siphash" -#define NID_siphash 1062 - -#define SN_ffdhe2048 "ffdhe2048" -#define NID_ffdhe2048 1126 - -#define SN_ffdhe3072 "ffdhe3072" -#define NID_ffdhe3072 1127 - -#define SN_ffdhe4096 "ffdhe4096" -#define NID_ffdhe4096 1128 - -#define SN_ffdhe6144 "ffdhe6144" -#define NID_ffdhe6144 1129 - -#define SN_ffdhe8192 "ffdhe8192" -#define NID_ffdhe8192 1130 - -#define SN_modp_1536 "modp_1536" -#define NID_modp_1536 1212 - -#define SN_modp_2048 "modp_2048" -#define NID_modp_2048 1213 - -#define SN_modp_3072 "modp_3072" -#define NID_modp_3072 1214 - -#define SN_modp_4096 "modp_4096" -#define NID_modp_4096 1215 - -#define SN_modp_6144 "modp_6144" -#define NID_modp_6144 1216 - -#define SN_modp_8192 "modp_8192" -#define NID_modp_8192 1217 - -#define SN_ISO_UA "ISO-UA" -#define NID_ISO_UA 1150 -#define OBJ_ISO_UA OBJ_member_body,804L - -#define SN_ua_pki "ua-pki" -#define NID_ua_pki 1151 -#define OBJ_ua_pki OBJ_ISO_UA,2L,1L,1L,1L - -#define SN_dstu28147 "dstu28147" -#define LN_dstu28147 "DSTU Gost 28147-2009" -#define NID_dstu28147 1152 -#define OBJ_dstu28147 OBJ_ua_pki,1L,1L,1L - -#define SN_dstu28147_ofb "dstu28147-ofb" -#define LN_dstu28147_ofb "DSTU Gost 28147-2009 OFB mode" -#define NID_dstu28147_ofb 1153 -#define OBJ_dstu28147_ofb OBJ_dstu28147,2L - -#define SN_dstu28147_cfb "dstu28147-cfb" -#define LN_dstu28147_cfb "DSTU Gost 28147-2009 CFB mode" -#define NID_dstu28147_cfb 1154 -#define OBJ_dstu28147_cfb OBJ_dstu28147,3L - -#define SN_dstu28147_wrap "dstu28147-wrap" -#define LN_dstu28147_wrap "DSTU Gost 28147-2009 key wrap" -#define NID_dstu28147_wrap 1155 -#define OBJ_dstu28147_wrap OBJ_dstu28147,5L - -#define SN_hmacWithDstu34311 "hmacWithDstu34311" -#define LN_hmacWithDstu34311 "HMAC DSTU Gost 34311-95" -#define NID_hmacWithDstu34311 1156 -#define OBJ_hmacWithDstu34311 OBJ_ua_pki,1L,1L,2L - -#define SN_dstu34311 "dstu34311" -#define LN_dstu34311 "DSTU Gost 34311-95" -#define NID_dstu34311 1157 -#define OBJ_dstu34311 OBJ_ua_pki,1L,2L,1L - -#define SN_dstu4145le "dstu4145le" -#define LN_dstu4145le "DSTU 4145-2002 little endian" -#define NID_dstu4145le 1158 -#define OBJ_dstu4145le OBJ_ua_pki,1L,3L,1L,1L - -#define SN_dstu4145be "dstu4145be" -#define LN_dstu4145be "DSTU 4145-2002 big endian" -#define NID_dstu4145be 1159 -#define OBJ_dstu4145be OBJ_dstu4145le,1L,1L - -#define SN_uacurve0 "uacurve0" -#define LN_uacurve0 "DSTU curve 0" -#define NID_uacurve0 1160 -#define OBJ_uacurve0 OBJ_dstu4145le,2L,0L - -#define SN_uacurve1 "uacurve1" -#define LN_uacurve1 "DSTU curve 1" -#define NID_uacurve1 1161 -#define OBJ_uacurve1 OBJ_dstu4145le,2L,1L - -#define SN_uacurve2 "uacurve2" -#define LN_uacurve2 "DSTU curve 2" -#define NID_uacurve2 1162 -#define OBJ_uacurve2 OBJ_dstu4145le,2L,2L - -#define SN_uacurve3 "uacurve3" -#define LN_uacurve3 "DSTU curve 3" -#define NID_uacurve3 1163 -#define OBJ_uacurve3 OBJ_dstu4145le,2L,3L - -#define SN_uacurve4 "uacurve4" -#define LN_uacurve4 "DSTU curve 4" -#define NID_uacurve4 1164 -#define OBJ_uacurve4 OBJ_dstu4145le,2L,4L - -#define SN_uacurve5 "uacurve5" -#define LN_uacurve5 "DSTU curve 5" -#define NID_uacurve5 1165 -#define OBJ_uacurve5 OBJ_dstu4145le,2L,5L - -#define SN_uacurve6 "uacurve6" -#define LN_uacurve6 "DSTU curve 6" -#define NID_uacurve6 1166 -#define OBJ_uacurve6 OBJ_dstu4145le,2L,6L - -#define SN_uacurve7 "uacurve7" -#define LN_uacurve7 "DSTU curve 7" -#define NID_uacurve7 1167 -#define OBJ_uacurve7 OBJ_dstu4145le,2L,7L - -#define SN_uacurve8 "uacurve8" -#define LN_uacurve8 "DSTU curve 8" -#define NID_uacurve8 1168 -#define OBJ_uacurve8 OBJ_dstu4145le,2L,8L - -#define SN_uacurve9 "uacurve9" -#define LN_uacurve9 "DSTU curve 9" -#define NID_uacurve9 1169 -#define OBJ_uacurve9 OBJ_dstu4145le,2L,9L - -#define SN_aes_128_siv "AES-128-SIV" -#define LN_aes_128_siv "aes-128-siv" -#define NID_aes_128_siv 1198 - -#define SN_aes_192_siv "AES-192-SIV" -#define LN_aes_192_siv "aes-192-siv" -#define NID_aes_192_siv 1199 - -#define SN_aes_256_siv "AES-256-SIV" -#define LN_aes_256_siv "aes-256-siv" -#define NID_aes_256_siv 1200 - -#define SN_oracle "oracle-organization" -#define LN_oracle "Oracle organization" -#define NID_oracle 1282 -#define OBJ_oracle OBJ_joint_iso_itu_t,16L,840L,1L,113894L - -#define SN_oracle_jdk_trustedkeyusage "oracle-jdk-trustedkeyusage" -#define LN_oracle_jdk_trustedkeyusage "Trusted key usage (Oracle)" -#define NID_oracle_jdk_trustedkeyusage 1283 -#define OBJ_oracle_jdk_trustedkeyusage OBJ_oracle,746875L,1L,1L - -#define SN_brotli "brotli" -#define LN_brotli "Brotli compression" -#define NID_brotli 1288 - -#define SN_zstd "zstd" -#define LN_zstd "Zstandard compression" -#define NID_zstd 1289 - -#define SN_tcg "tcg" -#define LN_tcg "Trusted Computing Group" -#define NID_tcg 1324 -#define OBJ_tcg 2L,23L,133L - -#define SN_tcg_tcpaSpecVersion "tcg-tcpaSpecVersion" -#define NID_tcg_tcpaSpecVersion 1325 -#define OBJ_tcg_tcpaSpecVersion OBJ_tcg,1L - -#define SN_tcg_attribute "tcg-attribute" -#define LN_tcg_attribute "Trusted Computing Group Attributes" -#define NID_tcg_attribute 1326 -#define OBJ_tcg_attribute OBJ_tcg,2L - -#define SN_tcg_protocol "tcg-protocol" -#define LN_tcg_protocol "Trusted Computing Group Protocols" -#define NID_tcg_protocol 1327 -#define OBJ_tcg_protocol OBJ_tcg,3L - -#define SN_tcg_algorithm "tcg-algorithm" -#define LN_tcg_algorithm "Trusted Computing Group Algorithms" -#define NID_tcg_algorithm 1328 -#define OBJ_tcg_algorithm OBJ_tcg,4L - -#define SN_tcg_platformClass "tcg-platformClass" -#define LN_tcg_platformClass "Trusted Computing Group Platform Classes" -#define NID_tcg_platformClass 1329 -#define OBJ_tcg_platformClass OBJ_tcg,5L - -#define SN_tcg_ce "tcg-ce" -#define LN_tcg_ce "Trusted Computing Group Certificate Extensions" -#define NID_tcg_ce 1330 -#define OBJ_tcg_ce OBJ_tcg,6L - -#define SN_tcg_kp "tcg-kp" -#define LN_tcg_kp "Trusted Computing Group Key Purposes" -#define NID_tcg_kp 1331 -#define OBJ_tcg_kp OBJ_tcg,8L - -#define SN_tcg_ca "tcg-ca" -#define LN_tcg_ca "Trusted Computing Group Certificate Policies" -#define NID_tcg_ca 1332 -#define OBJ_tcg_ca OBJ_tcg,11L - -#define SN_tcg_address "tcg-address" -#define LN_tcg_address "Trusted Computing Group Address Formats" -#define NID_tcg_address 1333 -#define OBJ_tcg_address OBJ_tcg,17L - -#define SN_tcg_registry "tcg-registry" -#define LN_tcg_registry "Trusted Computing Group Registry" -#define NID_tcg_registry 1334 -#define OBJ_tcg_registry OBJ_tcg,18L - -#define SN_tcg_traits "tcg-traits" -#define LN_tcg_traits "Trusted Computing Group Traits" -#define NID_tcg_traits 1335 -#define OBJ_tcg_traits OBJ_tcg,19L - -#define SN_tcg_common "tcg-common" -#define LN_tcg_common "Trusted Computing Group Common" -#define NID_tcg_common 1336 -#define OBJ_tcg_common OBJ_tcg_platformClass,1L - -#define SN_tcg_at_platformManufacturerStr "tcg-at-platformManufacturerStr" -#define LN_tcg_at_platformManufacturerStr "TCG Platform Manufacturer String" -#define NID_tcg_at_platformManufacturerStr 1337 -#define OBJ_tcg_at_platformManufacturerStr OBJ_tcg_common,1L - -#define SN_tcg_at_platformManufacturerId "tcg-at-platformManufacturerId" -#define LN_tcg_at_platformManufacturerId "TCG Platform Manufacturer ID" -#define NID_tcg_at_platformManufacturerId 1338 -#define OBJ_tcg_at_platformManufacturerId OBJ_tcg_common,2L - -#define SN_tcg_at_platformConfigUri "tcg-at-platformConfigUri" -#define LN_tcg_at_platformConfigUri "TCG Platform Configuration URI" -#define NID_tcg_at_platformConfigUri 1339 -#define OBJ_tcg_at_platformConfigUri OBJ_tcg_common,3L - -#define SN_tcg_at_platformModel "tcg-at-platformModel" -#define LN_tcg_at_platformModel "TCG Platform Model" -#define NID_tcg_at_platformModel 1340 -#define OBJ_tcg_at_platformModel OBJ_tcg_common,4L - -#define SN_tcg_at_platformVersion "tcg-at-platformVersion" -#define LN_tcg_at_platformVersion "TCG Platform Version" -#define NID_tcg_at_platformVersion 1341 -#define OBJ_tcg_at_platformVersion OBJ_tcg_common,5L - -#define SN_tcg_at_platformSerial "tcg-at-platformSerial" -#define LN_tcg_at_platformSerial "TCG Platform Serial Number" -#define NID_tcg_at_platformSerial 1342 -#define OBJ_tcg_at_platformSerial OBJ_tcg_common,6L - -#define SN_tcg_at_platformConfiguration "tcg-at-platformConfiguration" -#define LN_tcg_at_platformConfiguration "TCG Platform Configuration" -#define NID_tcg_at_platformConfiguration 1343 -#define OBJ_tcg_at_platformConfiguration OBJ_tcg_common,7L - -#define SN_tcg_at_platformIdentifier "tcg-at-platformIdentifier" -#define LN_tcg_at_platformIdentifier "TCG Platform Identifier" -#define NID_tcg_at_platformIdentifier 1344 -#define OBJ_tcg_at_platformIdentifier OBJ_tcg_common,8L - -#define SN_tcg_at_tpmManufacturer "tcg-at-tpmManufacturer" -#define LN_tcg_at_tpmManufacturer "TPM Manufacturer" -#define NID_tcg_at_tpmManufacturer 1345 -#define OBJ_tcg_at_tpmManufacturer OBJ_tcg_attribute,1L - -#define SN_tcg_at_tpmModel "tcg-at-tpmModel" -#define LN_tcg_at_tpmModel "TPM Model" -#define NID_tcg_at_tpmModel 1346 -#define OBJ_tcg_at_tpmModel OBJ_tcg_attribute,2L - -#define SN_tcg_at_tpmVersion "tcg-at-tpmVersion" -#define LN_tcg_at_tpmVersion "TPM Version" -#define NID_tcg_at_tpmVersion 1347 -#define OBJ_tcg_at_tpmVersion OBJ_tcg_attribute,3L - -#define SN_tcg_at_securityQualities "tcg-at-securityQualities" -#define LN_tcg_at_securityQualities "Security Qualities" -#define NID_tcg_at_securityQualities 1348 -#define OBJ_tcg_at_securityQualities OBJ_tcg_attribute,10L - -#define SN_tcg_at_tpmProtectionProfile "tcg-at-tpmProtectionProfile" -#define LN_tcg_at_tpmProtectionProfile "TPM Protection Profile" -#define NID_tcg_at_tpmProtectionProfile 1349 -#define OBJ_tcg_at_tpmProtectionProfile OBJ_tcg_attribute,11L - -#define SN_tcg_at_tpmSecurityTarget "tcg-at-tpmSecurityTarget" -#define LN_tcg_at_tpmSecurityTarget "TPM Security Target" -#define NID_tcg_at_tpmSecurityTarget 1350 -#define OBJ_tcg_at_tpmSecurityTarget OBJ_tcg_attribute,12L - -#define SN_tcg_at_tbbProtectionProfile "tcg-at-tbbProtectionProfile" -#define LN_tcg_at_tbbProtectionProfile "TBB Protection Profile" -#define NID_tcg_at_tbbProtectionProfile 1351 -#define OBJ_tcg_at_tbbProtectionProfile OBJ_tcg_attribute,13L - -#define SN_tcg_at_tbbSecurityTarget "tcg-at-tbbSecurityTarget" -#define LN_tcg_at_tbbSecurityTarget "TBB Security Target" -#define NID_tcg_at_tbbSecurityTarget 1352 -#define OBJ_tcg_at_tbbSecurityTarget OBJ_tcg_attribute,14L - -#define SN_tcg_at_tpmIdLabel "tcg-at-tpmIdLabel" -#define LN_tcg_at_tpmIdLabel "TPM ID Label" -#define NID_tcg_at_tpmIdLabel 1353 -#define OBJ_tcg_at_tpmIdLabel OBJ_tcg_attribute,15L - -#define SN_tcg_at_tpmSpecification "tcg-at-tpmSpecification" -#define LN_tcg_at_tpmSpecification "TPM Specification" -#define NID_tcg_at_tpmSpecification 1354 -#define OBJ_tcg_at_tpmSpecification OBJ_tcg_attribute,16L - -#define SN_tcg_at_tcgPlatformSpecification "tcg-at-tcgPlatformSpecification" -#define LN_tcg_at_tcgPlatformSpecification "TPM Platform Specification" -#define NID_tcg_at_tcgPlatformSpecification 1355 -#define OBJ_tcg_at_tcgPlatformSpecification OBJ_tcg_attribute,17L - -#define SN_tcg_at_tpmSecurityAssertions "tcg-at-tpmSecurityAssertions" -#define LN_tcg_at_tpmSecurityAssertions "TPM Security Assertions" -#define NID_tcg_at_tpmSecurityAssertions 1356 -#define OBJ_tcg_at_tpmSecurityAssertions OBJ_tcg_attribute,18L - -#define SN_tcg_at_tbbSecurityAssertions "tcg-at-tbbSecurityAssertions" -#define LN_tcg_at_tbbSecurityAssertions "TBB Security Assertions" -#define NID_tcg_at_tbbSecurityAssertions 1357 -#define OBJ_tcg_at_tbbSecurityAssertions OBJ_tcg_attribute,19L - -#define SN_tcg_at_tcgCredentialSpecification "tcg-at-tcgCredentialSpecification" -#define LN_tcg_at_tcgCredentialSpecification "TCG Credential Specification" -#define NID_tcg_at_tcgCredentialSpecification 1358 -#define OBJ_tcg_at_tcgCredentialSpecification OBJ_tcg_attribute,23L - -#define SN_tcg_at_tcgCredentialType "tcg-at-tcgCredentialType" -#define LN_tcg_at_tcgCredentialType "TCG Credential Type" -#define NID_tcg_at_tcgCredentialType 1359 -#define OBJ_tcg_at_tcgCredentialType OBJ_tcg_attribute,25L - -#define SN_tcg_at_previousPlatformCertificates "tcg-at-previousPlatformCertificates" -#define LN_tcg_at_previousPlatformCertificates "TCG Previous Platform Certificates" -#define NID_tcg_at_previousPlatformCertificates 1360 -#define OBJ_tcg_at_previousPlatformCertificates OBJ_tcg_attribute,26L - -#define SN_tcg_at_tbbSecurityAssertions_v3 "tcg-at-tbbSecurityAssertions-v3" -#define LN_tcg_at_tbbSecurityAssertions_v3 "TCG TBB Security Assertions V3" -#define NID_tcg_at_tbbSecurityAssertions_v3 1361 -#define OBJ_tcg_at_tbbSecurityAssertions_v3 OBJ_tcg_attribute,27L - -#define SN_tcg_at_cryptographicAnchors "tcg-at-cryptographicAnchors" -#define LN_tcg_at_cryptographicAnchors "TCG Cryptographic Anchors" -#define NID_tcg_at_cryptographicAnchors 1362 -#define OBJ_tcg_at_cryptographicAnchors OBJ_tcg_attribute,28L - -#define SN_tcg_at_platformConfiguration_v1 "tcg-at-platformConfiguration-v1" -#define LN_tcg_at_platformConfiguration_v1 "Platform Configuration Version 1" -#define NID_tcg_at_platformConfiguration_v1 1363 -#define OBJ_tcg_at_platformConfiguration_v1 OBJ_tcg_at_platformConfiguration,1L - -#define SN_tcg_at_platformConfiguration_v2 "tcg-at-platformConfiguration-v2" -#define LN_tcg_at_platformConfiguration_v2 "Platform Configuration Version 2" -#define NID_tcg_at_platformConfiguration_v2 1364 -#define OBJ_tcg_at_platformConfiguration_v2 OBJ_tcg_at_platformConfiguration,2L - -#define SN_tcg_at_platformConfiguration_v3 "tcg-at-platformConfiguration-v3" -#define LN_tcg_at_platformConfiguration_v3 "Platform Configuration Version 3" -#define NID_tcg_at_platformConfiguration_v3 1365 -#define OBJ_tcg_at_platformConfiguration_v3 OBJ_tcg_at_platformConfiguration,3L - -#define SN_tcg_at_platformConfigUri_v3 "tcg-at-platformConfigUri-v3" -#define LN_tcg_at_platformConfigUri_v3 "Platform Configuration URI Version 3" -#define NID_tcg_at_platformConfigUri_v3 1366 -#define OBJ_tcg_at_platformConfigUri_v3 OBJ_tcg_at_platformConfiguration,4L - -#define SN_tcg_algorithm_null "tcg-algorithm-null" -#define LN_tcg_algorithm_null "TCG NULL Algorithm" -#define NID_tcg_algorithm_null 1367 -#define OBJ_tcg_algorithm_null OBJ_tcg_algorithm,1L - -#define SN_tcg_kp_EKCertificate "tcg-kp-EKCertificate" -#define LN_tcg_kp_EKCertificate "Endorsement Key Certificate" -#define NID_tcg_kp_EKCertificate 1368 -#define OBJ_tcg_kp_EKCertificate OBJ_tcg_kp,1L - -#define SN_tcg_kp_PlatformAttributeCertificate "tcg-kp-PlatformAttributeCertificate" -#define LN_tcg_kp_PlatformAttributeCertificate "Platform Attribute Certificate" -#define NID_tcg_kp_PlatformAttributeCertificate 1369 -#define OBJ_tcg_kp_PlatformAttributeCertificate OBJ_tcg_kp,2L - -#define SN_tcg_kp_AIKCertificate "tcg-kp-AIKCertificate" -#define LN_tcg_kp_AIKCertificate "Attestation Identity Key Certificate" -#define NID_tcg_kp_AIKCertificate 1370 -#define OBJ_tcg_kp_AIKCertificate OBJ_tcg_kp,3L - -#define SN_tcg_kp_PlatformKeyCertificate "tcg-kp-PlatformKeyCertificate" -#define LN_tcg_kp_PlatformKeyCertificate "Platform Key Certificate" -#define NID_tcg_kp_PlatformKeyCertificate 1371 -#define OBJ_tcg_kp_PlatformKeyCertificate OBJ_tcg_kp,4L - -#define SN_tcg_kp_DeltaPlatformAttributeCertificate "tcg-kp-DeltaPlatformAttributeCertificate" -#define LN_tcg_kp_DeltaPlatformAttributeCertificate "Delta Platform Attribute Certificate" -#define NID_tcg_kp_DeltaPlatformAttributeCertificate 1372 -#define OBJ_tcg_kp_DeltaPlatformAttributeCertificate OBJ_tcg_kp,5L - -#define SN_tcg_kp_DeltaPlatformKeyCertificate "tcg-kp-DeltaPlatformKeyCertificate" -#define LN_tcg_kp_DeltaPlatformKeyCertificate "Delta Platform Key Certificate" -#define NID_tcg_kp_DeltaPlatformKeyCertificate 1373 -#define OBJ_tcg_kp_DeltaPlatformKeyCertificate OBJ_tcg_kp,6L - -#define SN_tcg_kp_AdditionalPlatformAttributeCertificate "tcg-kp-AdditionalPlatformAttributeCertificate" -#define LN_tcg_kp_AdditionalPlatformAttributeCertificate "Additional Platform Attribute Certificate" -#define NID_tcg_kp_AdditionalPlatformAttributeCertificate 1374 -#define OBJ_tcg_kp_AdditionalPlatformAttributeCertificate OBJ_tcg_kp,7L - -#define SN_tcg_kp_AdditionalPlatformKeyCertificate "tcg-kp-AdditionalPlatformKeyCertificate" -#define LN_tcg_kp_AdditionalPlatformKeyCertificate "Additional Platform Key Certificate" -#define NID_tcg_kp_AdditionalPlatformKeyCertificate 1375 -#define OBJ_tcg_kp_AdditionalPlatformKeyCertificate OBJ_tcg_kp,8L - -#define SN_tcg_ce_relevantCredentials "tcg-ce-relevantCredentials" -#define LN_tcg_ce_relevantCredentials "Relevant Credentials" -#define NID_tcg_ce_relevantCredentials 1376 -#define OBJ_tcg_ce_relevantCredentials OBJ_tcg_ce,2L - -#define SN_tcg_ce_relevantManifests "tcg-ce-relevantManifests" -#define LN_tcg_ce_relevantManifests "Relevant Manifests" -#define NID_tcg_ce_relevantManifests 1377 -#define OBJ_tcg_ce_relevantManifests OBJ_tcg_ce,3L - -#define SN_tcg_ce_virtualPlatformAttestationService "tcg-ce-virtualPlatformAttestationService" -#define LN_tcg_ce_virtualPlatformAttestationService "Virtual Platform Attestation Service" -#define NID_tcg_ce_virtualPlatformAttestationService 1378 -#define OBJ_tcg_ce_virtualPlatformAttestationService OBJ_tcg_ce,4L - -#define SN_tcg_ce_migrationControllerAttestationService "tcg-ce-migrationControllerAttestationService" -#define LN_tcg_ce_migrationControllerAttestationService "Migration Controller Attestation Service" -#define NID_tcg_ce_migrationControllerAttestationService 1379 -#define OBJ_tcg_ce_migrationControllerAttestationService OBJ_tcg_ce,5L - -#define SN_tcg_ce_migrationControllerRegistrationService "tcg-ce-migrationControllerRegistrationService" -#define LN_tcg_ce_migrationControllerRegistrationService "Migration Controller Registration Service" -#define NID_tcg_ce_migrationControllerRegistrationService 1380 -#define OBJ_tcg_ce_migrationControllerRegistrationService OBJ_tcg_ce,6L - -#define SN_tcg_ce_virtualPlatformBackupService "tcg-ce-virtualPlatformBackupService" -#define LN_tcg_ce_virtualPlatformBackupService "Virtual Platform Backup Service" -#define NID_tcg_ce_virtualPlatformBackupService 1381 -#define OBJ_tcg_ce_virtualPlatformBackupService OBJ_tcg_ce,7L - -#define SN_tcg_prt_tpmIdProtocol "tcg-prt-tpmIdProtocol" -#define LN_tcg_prt_tpmIdProtocol "TCG TPM Protocol" -#define NID_tcg_prt_tpmIdProtocol 1382 -#define OBJ_tcg_prt_tpmIdProtocol OBJ_tcg_protocol,1L - -#define SN_tcg_address_ethernetmac "tcg-address-ethernetmac" -#define LN_tcg_address_ethernetmac "Ethernet MAC Address" -#define NID_tcg_address_ethernetmac 1383 -#define OBJ_tcg_address_ethernetmac OBJ_tcg_address,1L - -#define SN_tcg_address_wlanmac "tcg-address-wlanmac" -#define LN_tcg_address_wlanmac "WLAN MAC Address" -#define NID_tcg_address_wlanmac 1384 -#define OBJ_tcg_address_wlanmac OBJ_tcg_address,2L - -#define SN_tcg_address_bluetoothmac "tcg-address-bluetoothmac" -#define LN_tcg_address_bluetoothmac "Bluetooth MAC Address" -#define NID_tcg_address_bluetoothmac 1385 -#define OBJ_tcg_address_bluetoothmac OBJ_tcg_address,3L - -#define SN_tcg_registry_componentClass "tcg-registry-componentClass" -#define LN_tcg_registry_componentClass "TCG Component Class" -#define NID_tcg_registry_componentClass 1386 -#define OBJ_tcg_registry_componentClass OBJ_tcg_registry,3L - -#define SN_tcg_registry_componentClass_tcg "tcg-registry-componentClass-tcg" -#define LN_tcg_registry_componentClass_tcg "Trusted Computed Group Registry" -#define NID_tcg_registry_componentClass_tcg 1387 -#define OBJ_tcg_registry_componentClass_tcg OBJ_tcg_registry_componentClass,1L - -#define SN_tcg_registry_componentClass_ietf "tcg-registry-componentClass-ietf" -#define LN_tcg_registry_componentClass_ietf "Internet Engineering Task Force Registry" -#define NID_tcg_registry_componentClass_ietf 1388 -#define OBJ_tcg_registry_componentClass_ietf OBJ_tcg_registry_componentClass,2L - -#define SN_tcg_registry_componentClass_dmtf "tcg-registry-componentClass-dmtf" -#define LN_tcg_registry_componentClass_dmtf "Distributed Management Task Force Registry" -#define NID_tcg_registry_componentClass_dmtf 1389 -#define OBJ_tcg_registry_componentClass_dmtf OBJ_tcg_registry_componentClass,3L - -#define SN_tcg_registry_componentClass_pcie "tcg-registry-componentClass-pcie" -#define LN_tcg_registry_componentClass_pcie "PCIE Component Class" -#define NID_tcg_registry_componentClass_pcie 1390 -#define OBJ_tcg_registry_componentClass_pcie OBJ_tcg_registry_componentClass,4L - -#define SN_tcg_registry_componentClass_disk "tcg-registry-componentClass-disk" -#define LN_tcg_registry_componentClass_disk "Disk Component Class" -#define NID_tcg_registry_componentClass_disk 1391 -#define OBJ_tcg_registry_componentClass_disk OBJ_tcg_registry_componentClass,5L - -#define SN_tcg_cap_verifiedPlatformCertificate "tcg-cap-verifiedPlatformCertificate" -#define LN_tcg_cap_verifiedPlatformCertificate "TCG Verified Platform Certificate CA Policy" -#define NID_tcg_cap_verifiedPlatformCertificate 1392 -#define OBJ_tcg_cap_verifiedPlatformCertificate OBJ_tcg_ca,4L - -#define SN_tcg_tr_ID "tcg-tr-ID" -#define LN_tcg_tr_ID "TCG Trait Identifiers" -#define NID_tcg_tr_ID 1393 -#define OBJ_tcg_tr_ID OBJ_tcg_traits,1L - -#define SN_tcg_tr_category "tcg-tr-category" -#define LN_tcg_tr_category "TCG Trait Categories" -#define NID_tcg_tr_category 1394 -#define OBJ_tcg_tr_category OBJ_tcg_traits,2L - -#define SN_tcg_tr_registry "tcg-tr-registry" -#define LN_tcg_tr_registry "TCG Trait Registries" -#define NID_tcg_tr_registry 1395 -#define OBJ_tcg_tr_registry OBJ_tcg_traits,3L - -#define SN_tcg_tr_ID_Boolean "tcg-tr-ID-Boolean" -#define LN_tcg_tr_ID_Boolean "Boolean Trait" -#define NID_tcg_tr_ID_Boolean 1396 -#define OBJ_tcg_tr_ID_Boolean OBJ_tcg_tr_ID,1L - -#define SN_tcg_tr_ID_CertificateIdentifier "tcg-tr-ID-CertificateIdentifier" -#define LN_tcg_tr_ID_CertificateIdentifier "Certificate Identifier Trait" -#define NID_tcg_tr_ID_CertificateIdentifier 1397 -#define OBJ_tcg_tr_ID_CertificateIdentifier OBJ_tcg_tr_ID,2L - -#define SN_tcg_tr_ID_CommonCriteria "tcg-tr-ID-CommonCriteria" -#define LN_tcg_tr_ID_CommonCriteria "Common Criteria Trait" -#define NID_tcg_tr_ID_CommonCriteria 1398 -#define OBJ_tcg_tr_ID_CommonCriteria OBJ_tcg_tr_ID,3L - -#define SN_tcg_tr_ID_componentClass "tcg-tr-ID-componentClass" -#define LN_tcg_tr_ID_componentClass "Component Class Trait" -#define NID_tcg_tr_ID_componentClass 1399 -#define OBJ_tcg_tr_ID_componentClass OBJ_tcg_tr_ID,4L - -#define SN_tcg_tr_ID_componentIdentifierV11 "tcg-tr-ID-componentIdentifierV11" -#define LN_tcg_tr_ID_componentIdentifierV11 "Component Identifier V1.1 Trait" -#define NID_tcg_tr_ID_componentIdentifierV11 1400 -#define OBJ_tcg_tr_ID_componentIdentifierV11 OBJ_tcg_tr_ID,5L - -#define SN_tcg_tr_ID_FIPSLevel "tcg-tr-ID-FIPSLevel" -#define LN_tcg_tr_ID_FIPSLevel "FIPS Level Trait" -#define NID_tcg_tr_ID_FIPSLevel 1401 -#define OBJ_tcg_tr_ID_FIPSLevel OBJ_tcg_tr_ID,6L - -#define SN_tcg_tr_ID_ISO9000Level "tcg-tr-ID-ISO9000Level" -#define LN_tcg_tr_ID_ISO9000Level "ISO 9000 Level Trait" -#define NID_tcg_tr_ID_ISO9000Level 1402 -#define OBJ_tcg_tr_ID_ISO9000Level OBJ_tcg_tr_ID,7L - -#define SN_tcg_tr_ID_networkMAC "tcg-tr-ID-networkMAC" -#define LN_tcg_tr_ID_networkMAC "Network MAC Trait" -#define NID_tcg_tr_ID_networkMAC 1403 -#define OBJ_tcg_tr_ID_networkMAC OBJ_tcg_tr_ID,8L - -#define SN_tcg_tr_ID_OID "tcg-tr-ID-OID" -#define LN_tcg_tr_ID_OID "Object Identifier Trait" -#define NID_tcg_tr_ID_OID 1404 -#define OBJ_tcg_tr_ID_OID OBJ_tcg_tr_ID,9L - -#define SN_tcg_tr_ID_PEN "tcg-tr-ID-PEN" -#define LN_tcg_tr_ID_PEN "Private Enterprise Number Trait" -#define NID_tcg_tr_ID_PEN 1405 -#define OBJ_tcg_tr_ID_PEN OBJ_tcg_tr_ID,10L - -#define SN_tcg_tr_ID_platformFirmwareCapabilities "tcg-tr-ID-platformFirmwareCapabilities" -#define LN_tcg_tr_ID_platformFirmwareCapabilities "Platform Firmware Capabilities Trait" -#define NID_tcg_tr_ID_platformFirmwareCapabilities 1406 -#define OBJ_tcg_tr_ID_platformFirmwareCapabilities OBJ_tcg_tr_ID,11L - -#define SN_tcg_tr_ID_platformFirmwareSignatureVerification "tcg-tr-ID-platformFirmwareSignatureVerification" -#define LN_tcg_tr_ID_platformFirmwareSignatureVerification "Platform Firmware Signature Verification Trait" -#define NID_tcg_tr_ID_platformFirmwareSignatureVerification 1407 -#define OBJ_tcg_tr_ID_platformFirmwareSignatureVerification OBJ_tcg_tr_ID,12L - -#define SN_tcg_tr_ID_platformFirmwareUpdateCompliance "tcg-tr-ID-platformFirmwareUpdateCompliance" -#define LN_tcg_tr_ID_platformFirmwareUpdateCompliance "Platform Firmware Update Compliance Trait" -#define NID_tcg_tr_ID_platformFirmwareUpdateCompliance 1408 -#define OBJ_tcg_tr_ID_platformFirmwareUpdateCompliance OBJ_tcg_tr_ID,13L - -#define SN_tcg_tr_ID_platformHardwareCapabilities "tcg-tr-ID-platformHardwareCapabilities" -#define LN_tcg_tr_ID_platformHardwareCapabilities "Platform Hardware Capabilities Trait" -#define NID_tcg_tr_ID_platformHardwareCapabilities 1409 -#define OBJ_tcg_tr_ID_platformHardwareCapabilities OBJ_tcg_tr_ID,14L - -#define SN_tcg_tr_ID_RTM "tcg-tr-ID-RTM" -#define LN_tcg_tr_ID_RTM "Root of Trust for Measurement Trait" -#define NID_tcg_tr_ID_RTM 1410 -#define OBJ_tcg_tr_ID_RTM OBJ_tcg_tr_ID,15L - -#define SN_tcg_tr_ID_status "tcg-tr-ID-status" -#define LN_tcg_tr_ID_status "Attribute Status Trait" -#define NID_tcg_tr_ID_status 1411 -#define OBJ_tcg_tr_ID_status OBJ_tcg_tr_ID,16L - -#define SN_tcg_tr_ID_URI "tcg-tr-ID-URI" -#define LN_tcg_tr_ID_URI "Uniform Resource Identifier Trait" -#define NID_tcg_tr_ID_URI 1412 -#define OBJ_tcg_tr_ID_URI OBJ_tcg_tr_ID,17L - -#define SN_tcg_tr_ID_UTF8String "tcg-tr-ID-UTF8String" -#define LN_tcg_tr_ID_UTF8String "UTF8String Trait" -#define NID_tcg_tr_ID_UTF8String 1413 -#define OBJ_tcg_tr_ID_UTF8String OBJ_tcg_tr_ID,18L - -#define SN_tcg_tr_ID_IA5String "tcg-tr-ID-IA5String" -#define LN_tcg_tr_ID_IA5String "IA5String Trait" -#define NID_tcg_tr_ID_IA5String 1414 -#define OBJ_tcg_tr_ID_IA5String OBJ_tcg_tr_ID,19L - -#define SN_tcg_tr_ID_PEMCertString "tcg-tr-ID-PEMCertString" -#define LN_tcg_tr_ID_PEMCertString "PEM-Encoded Certificate String Trait" -#define NID_tcg_tr_ID_PEMCertString 1415 -#define OBJ_tcg_tr_ID_PEMCertString OBJ_tcg_tr_ID,20L - -#define SN_tcg_tr_ID_PublicKey "tcg-tr-ID-PublicKey" -#define LN_tcg_tr_ID_PublicKey "Public Key Trait" -#define NID_tcg_tr_ID_PublicKey 1416 -#define OBJ_tcg_tr_ID_PublicKey OBJ_tcg_tr_ID,21L - -#define SN_tcg_tr_cat_platformManufacturer "tcg-tr-cat-platformManufacturer" -#define LN_tcg_tr_cat_platformManufacturer "Platform Manufacturer Trait Category" -#define NID_tcg_tr_cat_platformManufacturer 1417 -#define OBJ_tcg_tr_cat_platformManufacturer OBJ_tcg_tr_category,1L - -#define SN_tcg_tr_cat_platformModel "tcg-tr-cat-platformModel" -#define LN_tcg_tr_cat_platformModel "Platform Model Trait Category" -#define NID_tcg_tr_cat_platformModel 1418 -#define OBJ_tcg_tr_cat_platformModel OBJ_tcg_tr_category,2L - -#define SN_tcg_tr_cat_platformVersion "tcg-tr-cat-platformVersion" -#define LN_tcg_tr_cat_platformVersion "Platform Version Trait Category" -#define NID_tcg_tr_cat_platformVersion 1419 -#define OBJ_tcg_tr_cat_platformVersion OBJ_tcg_tr_category,3L - -#define SN_tcg_tr_cat_platformSerial "tcg-tr-cat-platformSerial" -#define LN_tcg_tr_cat_platformSerial "Platform Serial Trait Category" -#define NID_tcg_tr_cat_platformSerial 1420 -#define OBJ_tcg_tr_cat_platformSerial OBJ_tcg_tr_category,4L - -#define SN_tcg_tr_cat_platformManufacturerIdentifier "tcg-tr-cat-platformManufacturerIdentifier" -#define LN_tcg_tr_cat_platformManufacturerIdentifier "Platform Manufacturer Identifier Trait Category" -#define NID_tcg_tr_cat_platformManufacturerIdentifier 1421 -#define OBJ_tcg_tr_cat_platformManufacturerIdentifier OBJ_tcg_tr_category,5L - -#define SN_tcg_tr_cat_platformOwnership "tcg-tr-cat-platformOwnership" -#define LN_tcg_tr_cat_platformOwnership "Platform Ownership Trait Category" -#define NID_tcg_tr_cat_platformOwnership 1422 -#define OBJ_tcg_tr_cat_platformOwnership OBJ_tcg_tr_category,6L - -#define SN_tcg_tr_cat_componentClass "tcg-tr-cat-componentClass" -#define LN_tcg_tr_cat_componentClass "Component Class Trait Category" -#define NID_tcg_tr_cat_componentClass 1423 -#define OBJ_tcg_tr_cat_componentClass OBJ_tcg_tr_category,7L - -#define SN_tcg_tr_cat_componentManufacturer "tcg-tr-cat-componentManufacturer" -#define LN_tcg_tr_cat_componentManufacturer "Component Manufacturer Trait Category" -#define NID_tcg_tr_cat_componentManufacturer 1424 -#define OBJ_tcg_tr_cat_componentManufacturer OBJ_tcg_tr_category,8L - -#define SN_tcg_tr_cat_componentModel "tcg-tr-cat-componentModel" -#define LN_tcg_tr_cat_componentModel "Component Model Trait Category" -#define NID_tcg_tr_cat_componentModel 1425 -#define OBJ_tcg_tr_cat_componentModel OBJ_tcg_tr_category,9L - -#define SN_tcg_tr_cat_componentSerial "tcg-tr-cat-componentSerial" -#define LN_tcg_tr_cat_componentSerial "Component Serial Trait Category" -#define NID_tcg_tr_cat_componentSerial 1426 -#define OBJ_tcg_tr_cat_componentSerial OBJ_tcg_tr_category,10L - -#define SN_tcg_tr_cat_componentStatus "tcg-tr-cat-componentStatus" -#define LN_tcg_tr_cat_componentStatus "Component Status Trait Category" -#define NID_tcg_tr_cat_componentStatus 1427 -#define OBJ_tcg_tr_cat_componentStatus OBJ_tcg_tr_category,11L - -#define SN_tcg_tr_cat_componentLocation "tcg-tr-cat-componentLocation" -#define LN_tcg_tr_cat_componentLocation "Component Location Trait Category" -#define NID_tcg_tr_cat_componentLocation 1428 -#define OBJ_tcg_tr_cat_componentLocation OBJ_tcg_tr_category,12L - -#define SN_tcg_tr_cat_componentRevision "tcg-tr-cat-componentRevision" -#define LN_tcg_tr_cat_componentRevision "Component Revision Trait Category" -#define NID_tcg_tr_cat_componentRevision 1429 -#define OBJ_tcg_tr_cat_componentRevision OBJ_tcg_tr_category,13L - -#define SN_tcg_tr_cat_componentFieldReplaceable "tcg-tr-cat-componentFieldReplaceable" -#define LN_tcg_tr_cat_componentFieldReplaceable "Component Field Replaceable Trait Category" -#define NID_tcg_tr_cat_componentFieldReplaceable 1430 -#define OBJ_tcg_tr_cat_componentFieldReplaceable OBJ_tcg_tr_category,14L - -#define SN_tcg_tr_cat_EKCertificate "tcg-tr-cat-EKCertificate" -#define LN_tcg_tr_cat_EKCertificate "EK Certificate Trait Category" -#define NID_tcg_tr_cat_EKCertificate 1431 -#define OBJ_tcg_tr_cat_EKCertificate OBJ_tcg_tr_category,15L - -#define SN_tcg_tr_cat_IAKCertificate "tcg-tr-cat-IAKCertificate" -#define LN_tcg_tr_cat_IAKCertificate "IAK Certificate Trait Category" -#define NID_tcg_tr_cat_IAKCertificate 1432 -#define OBJ_tcg_tr_cat_IAKCertificate OBJ_tcg_tr_category,16L - -#define SN_tcg_tr_cat_IDevIDCertificate "tcg-tr-cat-IDevIDCertificate" -#define LN_tcg_tr_cat_IDevIDCertificate "IDevID Certificate Trait Category" -#define NID_tcg_tr_cat_IDevIDCertificate 1433 -#define OBJ_tcg_tr_cat_IDevIDCertificate OBJ_tcg_tr_category,17L - -#define SN_tcg_tr_cat_DICECertificate "tcg-tr-cat-DICECertificate" -#define LN_tcg_tr_cat_DICECertificate "DICE Certificate Trait Category" -#define NID_tcg_tr_cat_DICECertificate 1434 -#define OBJ_tcg_tr_cat_DICECertificate OBJ_tcg_tr_category,18L - -#define SN_tcg_tr_cat_SPDMCertificate "tcg-tr-cat-SPDMCertificate" -#define LN_tcg_tr_cat_SPDMCertificate "SPDM Certificate Trait Category" -#define NID_tcg_tr_cat_SPDMCertificate 1435 -#define OBJ_tcg_tr_cat_SPDMCertificate OBJ_tcg_tr_category,19L - -#define SN_tcg_tr_cat_PEMCertificate "tcg-tr-cat-PEMCertificate" -#define LN_tcg_tr_cat_PEMCertificate "PEM Certificate Trait Category" -#define NID_tcg_tr_cat_PEMCertificate 1436 -#define OBJ_tcg_tr_cat_PEMCertificate OBJ_tcg_tr_category,20L - -#define SN_tcg_tr_cat_PlatformCertificate "tcg-tr-cat-PlatformCertificate" -#define LN_tcg_tr_cat_PlatformCertificate "Platform Certificate Trait Category" -#define NID_tcg_tr_cat_PlatformCertificate 1437 -#define OBJ_tcg_tr_cat_PlatformCertificate OBJ_tcg_tr_category,21L - -#define SN_tcg_tr_cat_DeltaPlatformCertificate "tcg-tr-cat-DeltaPlatformCertificate" -#define LN_tcg_tr_cat_DeltaPlatformCertificate "Delta Platform Certificate Trait Category" -#define NID_tcg_tr_cat_DeltaPlatformCertificate 1438 -#define OBJ_tcg_tr_cat_DeltaPlatformCertificate OBJ_tcg_tr_category,22L - -#define SN_tcg_tr_cat_RebasePlatformCertificate "tcg-tr-cat-RebasePlatformCertificate" -#define LN_tcg_tr_cat_RebasePlatformCertificate "Rebase Platform Certificate Trait Category" -#define NID_tcg_tr_cat_RebasePlatformCertificate 1439 -#define OBJ_tcg_tr_cat_RebasePlatformCertificate OBJ_tcg_tr_category,23L - -#define SN_tcg_tr_cat_genericCertificate "tcg-tr-cat-genericCertificate" -#define LN_tcg_tr_cat_genericCertificate "Generic Certificate Trait Category" -#define NID_tcg_tr_cat_genericCertificate 1440 -#define OBJ_tcg_tr_cat_genericCertificate OBJ_tcg_tr_category,24L - -#define SN_tcg_tr_cat_CommonCriteria "tcg-tr-cat-CommonCriteria" -#define LN_tcg_tr_cat_CommonCriteria "Common Criteria Trait Category" -#define NID_tcg_tr_cat_CommonCriteria 1441 -#define OBJ_tcg_tr_cat_CommonCriteria OBJ_tcg_tr_category,25L - -#define SN_tcg_tr_cat_componentIdentifierV11 "tcg-tr-cat-componentIdentifierV11" -#define LN_tcg_tr_cat_componentIdentifierV11 "Component Identifier V1.1 Trait Category" -#define NID_tcg_tr_cat_componentIdentifierV11 1442 -#define OBJ_tcg_tr_cat_componentIdentifierV11 OBJ_tcg_tr_category,26L - -#define SN_tcg_tr_cat_FIPSLevel "tcg-tr-cat-FIPSLevel" -#define LN_tcg_tr_cat_FIPSLevel "FIPS Level Trait Category" -#define NID_tcg_tr_cat_FIPSLevel 1443 -#define OBJ_tcg_tr_cat_FIPSLevel OBJ_tcg_tr_category,27L - -#define SN_tcg_tr_cat_ISO9000 "tcg-tr-cat-ISO9000" -#define LN_tcg_tr_cat_ISO9000 "ISO 9000 Trait Category" -#define NID_tcg_tr_cat_ISO9000 1444 -#define OBJ_tcg_tr_cat_ISO9000 OBJ_tcg_tr_category,28L - -#define SN_tcg_tr_cat_networkMAC "tcg-tr-cat-networkMAC" -#define LN_tcg_tr_cat_networkMAC "Network MAC Trait Category" -#define NID_tcg_tr_cat_networkMAC 1445 -#define OBJ_tcg_tr_cat_networkMAC OBJ_tcg_tr_category,29L - -#define SN_tcg_tr_cat_attestationProtocol "tcg-tr-cat-attestationProtocol" -#define LN_tcg_tr_cat_attestationProtocol "Attestation Protocol Trait Category" -#define NID_tcg_tr_cat_attestationProtocol 1446 -#define OBJ_tcg_tr_cat_attestationProtocol OBJ_tcg_tr_category,30L - -#define SN_tcg_tr_cat_PEN "tcg-tr-cat-PEN" -#define LN_tcg_tr_cat_PEN "Private Enterprise Number Trait Category" -#define NID_tcg_tr_cat_PEN 1447 -#define OBJ_tcg_tr_cat_PEN OBJ_tcg_tr_category,31L - -#define SN_tcg_tr_cat_platformFirmwareCapabilities "tcg-tr-cat-platformFirmwareCapabilities" -#define LN_tcg_tr_cat_platformFirmwareCapabilities "Platform Firmware Capabilities Trait Category" -#define NID_tcg_tr_cat_platformFirmwareCapabilities 1448 -#define OBJ_tcg_tr_cat_platformFirmwareCapabilities OBJ_tcg_tr_category,32L - -#define SN_tcg_tr_cat_platformHardwareCapabilities "tcg-tr-cat-platformHardwareCapabilities" -#define LN_tcg_tr_cat_platformHardwareCapabilities "Platform Hardware Capabilities Trait Category" -#define NID_tcg_tr_cat_platformHardwareCapabilities 1449 -#define OBJ_tcg_tr_cat_platformHardwareCapabilities OBJ_tcg_tr_category,33L - -#define SN_tcg_tr_cat_platformFirmwareSignatureVerification "tcg-tr-cat-platformFirmwareSignatureVerification" -#define LN_tcg_tr_cat_platformFirmwareSignatureVerification "Platform Firmware Signature Verification Trait Category" -#define NID_tcg_tr_cat_platformFirmwareSignatureVerification 1450 -#define OBJ_tcg_tr_cat_platformFirmwareSignatureVerification OBJ_tcg_tr_category,34L - -#define SN_tcg_tr_cat_platformFirmwareUpdateCompliance "tcg-tr-cat-platformFirmwareUpdateCompliance" -#define LN_tcg_tr_cat_platformFirmwareUpdateCompliance "Platform Firmware Update Compliance Trait Category" -#define NID_tcg_tr_cat_platformFirmwareUpdateCompliance 1451 -#define OBJ_tcg_tr_cat_platformFirmwareUpdateCompliance OBJ_tcg_tr_category,35L - -#define SN_tcg_tr_cat_RTM "tcg-tr-cat-RTM" -#define LN_tcg_tr_cat_RTM "Root of Trust of Measurement Trait Category" -#define NID_tcg_tr_cat_RTM 1452 -#define OBJ_tcg_tr_cat_RTM OBJ_tcg_tr_category,36L - -#define SN_tcg_tr_cat_PublicKey "tcg-tr-cat-PublicKey" -#define LN_tcg_tr_cat_PublicKey "Public Key Trait Category" -#define NID_tcg_tr_cat_PublicKey 1453 -#define OBJ_tcg_tr_cat_PublicKey OBJ_tcg_tr_category,37L - -#define OBJ_nistKems OBJ_nistAlgorithms,4L - -#define SN_ML_KEM_512 "id-alg-ml-kem-512" -#define LN_ML_KEM_512 "ML-KEM-512" -#define NID_ML_KEM_512 1454 -#define OBJ_ML_KEM_512 OBJ_nistKems,1L - -#define SN_ML_KEM_768 "id-alg-ml-kem-768" -#define LN_ML_KEM_768 "ML-KEM-768" -#define NID_ML_KEM_768 1455 -#define OBJ_ML_KEM_768 OBJ_nistKems,2L - -#define SN_ML_KEM_1024 "id-alg-ml-kem-1024" -#define LN_ML_KEM_1024 "ML-KEM-1024" -#define NID_ML_KEM_1024 1456 -#define OBJ_ML_KEM_1024 OBJ_nistKems,3L - -#endif /* OPENSSL_OBJ_MAC_H */ - -#ifndef OPENSSL_NO_DEPRECATED_3_0 - -#define SN_id_tc26_cipher_gostr3412_2015_magma_ctracpkm SN_magma_ctr_acpkm -#define NID_id_tc26_cipher_gostr3412_2015_magma_ctracpkm NID_magma_ctr_acpkm -#define OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm OBJ_magma_ctr_acpkm - -#define SN_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac SN_magma_ctr_acpkm_omac -#define NID_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac NID_magma_ctr_acpkm_omac -#define OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac OBJ_magma_ctr_acpkm_omac - -#define SN_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm SN_kuznyechik_ctr_acpkm -#define NID_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm NID_kuznyechik_ctr_acpkm -#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm OBJ_kuznyechik_ctr_acpkm - -#define SN_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac SN_kuznyechik_ctr_acpkm_omac -#define NID_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac NID_kuznyechik_ctr_acpkm_omac -#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac OBJ_kuznyechik_ctr_acpkm_omac - -#define SN_id_tc26_wrap_gostr3412_2015_magma_kexp15 SN_magma_kexp15 -#define NID_id_tc26_wrap_gostr3412_2015_magma_kexp15 NID_magma_kexp15 -#define OBJ_id_tc26_wrap_gostr3412_2015_magma_kexp15 OBJ_magma_kexp15 - -#define SN_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 SN_kuznyechik_kexp15 -#define NID_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 NID_kuznyechik_kexp15 -#define OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 OBJ_kuznyechik_kexp15 - -#define SN_grasshopper_ecb SN_kuznyechik_ecb -#define NID_grasshopper_ecb NID_kuznyechik_ecb - -#define SN_grasshopper_ctr SN_kuznyechik_ctr -#define NID_grasshopper_ctr NID_kuznyechik_ctr - -#define SN_grasshopper_ofb SN_kuznyechik_ofb -#define NID_grasshopper_ofb NID_kuznyechik_ofb - -#define SN_grasshopper_cbc SN_kuznyechik_cbc -#define NID_grasshopper_cbc NID_kuznyechik_cbc - -#define SN_grasshopper_cfb SN_kuznyechik_cfb -#define NID_grasshopper_cfb NID_kuznyechik_cfb - -#define SN_grasshopper_mac SN_kuznyechik_mac -#define NID_grasshopper_mac NID_kuznyechik_mac - -#endif /* OPENSSL_NO_DEPRECATED_3_0 */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/objects.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/objects.h deleted file mode 100644 index cc9f3c5..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/objects.h +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_OBJECTS_H -# define OPENSSL_OBJECTS_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_OBJECTS_H -# endif - -# include -# include -# include -# include - -# define OBJ_NAME_TYPE_UNDEF 0x00 -# define OBJ_NAME_TYPE_MD_METH 0x01 -# define OBJ_NAME_TYPE_CIPHER_METH 0x02 -# define OBJ_NAME_TYPE_PKEY_METH 0x03 -# define OBJ_NAME_TYPE_COMP_METH 0x04 -# define OBJ_NAME_TYPE_MAC_METH 0x05 -# define OBJ_NAME_TYPE_KDF_METH 0x06 -# define OBJ_NAME_TYPE_NUM 0x07 - -# define OBJ_NAME_ALIAS 0x8000 - -# define OBJ_BSEARCH_VALUE_ON_NOMATCH 0x01 -# define OBJ_BSEARCH_FIRST_VALUE_ON_MATCH 0x02 - - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct obj_name_st { - int type; - int alias; - const char *name; - const char *data; -} OBJ_NAME; - -# define OBJ_create_and_add_object(a,b,c) OBJ_create(a,b,c) - -int OBJ_NAME_init(void); -int OBJ_NAME_new_index(unsigned long (*hash_func) (const char *), - int (*cmp_func) (const char *, const char *), - void (*free_func) (const char *, int, const char *)); -const char *OBJ_NAME_get(const char *name, int type); -int OBJ_NAME_add(const char *name, int type, const char *data); -int OBJ_NAME_remove(const char *name, int type); -void OBJ_NAME_cleanup(int type); /* -1 for everything */ -void OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void *arg), - void *arg); -void OBJ_NAME_do_all_sorted(int type, - void (*fn) (const OBJ_NAME *, void *arg), - void *arg); - -DECLARE_ASN1_DUP_FUNCTION_name(ASN1_OBJECT, OBJ) -ASN1_OBJECT *OBJ_nid2obj(int n); -const char *OBJ_nid2ln(int n); -const char *OBJ_nid2sn(int n); -int OBJ_obj2nid(const ASN1_OBJECT *o); -ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name); -int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); -int OBJ_txt2nid(const char *s); -int OBJ_ln2nid(const char *s); -int OBJ_sn2nid(const char *s); -int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b); -const void *OBJ_bsearch_(const void *key, const void *base, int num, int size, - int (*cmp) (const void *, const void *)); -const void *OBJ_bsearch_ex_(const void *key, const void *base, int num, - int size, - int (*cmp) (const void *, const void *), - int flags); - -# define _DECLARE_OBJ_BSEARCH_CMP_FN(scope, type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *, const void *); \ - static int nm##_cmp(type1 const *, type2 const *); \ - scope type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) - -# define DECLARE_OBJ_BSEARCH_CMP_FN(type1, type2, cmp) \ - _DECLARE_OBJ_BSEARCH_CMP_FN(static, type1, type2, cmp) -# define DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ - type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) - -/*- - * Unsolved problem: if a type is actually a pointer type, like - * nid_triple is, then its impossible to get a const where you need - * it. Consider: - * - * typedef int nid_triple[3]; - * const void *a_; - * const nid_triple const *a = a_; - * - * The assignment discards a const because what you really want is: - * - * const int const * const *a = a_; - * - * But if you do that, you lose the fact that a is an array of 3 ints, - * which breaks comparison functions. - * - * Thus we end up having to cast, sadly, or unpack the - * declarations. Or, as I finally did in this case, declare nid_triple - * to be a struct, which it should have been in the first place. - * - * Ben, August 2008. - * - * Also, strictly speaking not all types need be const, but handling - * the non-constness means a lot of complication, and in practice - * comparison routines do always not touch their arguments. - */ - -# define IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ - { \ - type1 const *a = a_; \ - type2 const *b = b_; \ - return nm##_cmp(a,b); \ - } \ - static type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ - { \ - return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ - nm##_cmp_BSEARCH_CMP_FN); \ - } \ - extern void dummy_prototype(void) - -# define IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ - { \ - type1 const *a = a_; \ - type2 const *b = b_; \ - return nm##_cmp(a,b); \ - } \ - type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ - { \ - return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ - nm##_cmp_BSEARCH_CMP_FN); \ - } \ - extern void dummy_prototype(void) - -# define OBJ_bsearch(type1,key,type2,base,num,cmp) \ - ((type2 *)OBJ_bsearch_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ - num,sizeof(type2), \ - ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ - (void)CHECKED_PTR_OF(type2,cmp##_type_2), \ - cmp##_BSEARCH_CMP_FN))) - -# define OBJ_bsearch_ex(type1,key,type2,base,num,cmp,flags) \ - ((type2 *)OBJ_bsearch_ex_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ - num,sizeof(type2), \ - ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ - (void)type_2=CHECKED_PTR_OF(type2,cmp##_type_2), \ - cmp##_BSEARCH_CMP_FN)),flags) - -int OBJ_new_nid(int num); -int OBJ_add_object(const ASN1_OBJECT *obj); -int OBJ_create(const char *oid, const char *sn, const char *ln); -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define OBJ_cleanup() while(0) continue -#endif -int OBJ_create_objects(BIO *in); - -size_t OBJ_length(const ASN1_OBJECT *obj); -const unsigned char *OBJ_get0_data(const ASN1_OBJECT *obj); - -int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid); -int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid); -int OBJ_add_sigid(int signid, int dig_id, int pkey_id); -void OBJ_sigid_free(void); - -#define SN_ac_auditEntity SN_ac_auditIdentity - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/objectserr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/objectserr.h deleted file mode 100644 index 585217f..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/objectserr.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_OBJECTSERR_H -# define OPENSSL_OBJECTSERR_H -# pragma once - -# include -# include -# include - - - -/* - * OBJ reason codes. - */ -# define OBJ_R_OID_EXISTS 102 -# define OBJ_R_UNKNOWN_NID 101 -# define OBJ_R_UNKNOWN_OBJECT_NAME 103 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ocsp.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/ocsp.h deleted file mode 100644 index 2692d31..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ocsp.h +++ /dev/null @@ -1,483 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\ocsp.h.in - * - * Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_OCSP_H -# define OPENSSL_OCSP_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_OCSP_H -# endif - -# include -# include -# include - -/* - * These definitions are outside the OPENSSL_NO_OCSP guard because although for - * historical reasons they have OCSP_* names, they can actually be used - * independently of OCSP. E.g. see RFC5280 - */ -/*- - * CRLReason ::= ENUMERATED { - * unspecified (0), - * keyCompromise (1), - * cACompromise (2), - * affiliationChanged (3), - * superseded (4), - * cessationOfOperation (5), - * certificateHold (6), - * -- value 7 is not used - * removeFromCRL (8), - * privilegeWithdrawn (9), - * aACompromise (10) } - */ -# define OCSP_REVOKED_STATUS_NOSTATUS -1 -# define OCSP_REVOKED_STATUS_UNSPECIFIED 0 -# define OCSP_REVOKED_STATUS_KEYCOMPROMISE 1 -# define OCSP_REVOKED_STATUS_CACOMPROMISE 2 -# define OCSP_REVOKED_STATUS_AFFILIATIONCHANGED 3 -# define OCSP_REVOKED_STATUS_SUPERSEDED 4 -# define OCSP_REVOKED_STATUS_CESSATIONOFOPERATION 5 -# define OCSP_REVOKED_STATUS_CERTIFICATEHOLD 6 -# define OCSP_REVOKED_STATUS_REMOVEFROMCRL 8 -# define OCSP_REVOKED_STATUS_PRIVILEGEWITHDRAWN 9 -# define OCSP_REVOKED_STATUS_AACOMPROMISE 10 - - -# ifndef OPENSSL_NO_OCSP - -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* Various flags and values */ - -# define OCSP_DEFAULT_NONCE_LENGTH 16 - -# define OCSP_NOCERTS 0x1 -# define OCSP_NOINTERN 0x2 -# define OCSP_NOSIGS 0x4 -# define OCSP_NOCHAIN 0x8 -# define OCSP_NOVERIFY 0x10 -# define OCSP_NOEXPLICIT 0x20 -# define OCSP_NOCASIGN 0x40 -# define OCSP_NODELEGATED 0x80 -# define OCSP_NOCHECKS 0x100 -# define OCSP_TRUSTOTHER 0x200 -# define OCSP_RESPID_KEY 0x400 -# define OCSP_NOTIME 0x800 -# define OCSP_PARTIAL_CHAIN 0x1000 - -typedef struct ocsp_cert_id_st OCSP_CERTID; -typedef struct ocsp_one_request_st OCSP_ONEREQ; -typedef struct ocsp_req_info_st OCSP_REQINFO; -typedef struct ocsp_signature_st OCSP_SIGNATURE; -typedef struct ocsp_request_st OCSP_REQUEST; - -SKM_DEFINE_STACK_OF_INTERNAL(OCSP_CERTID, OCSP_CERTID, OCSP_CERTID) -#define sk_OCSP_CERTID_num(sk) OPENSSL_sk_num(ossl_check_const_OCSP_CERTID_sk_type(sk)) -#define sk_OCSP_CERTID_value(sk, idx) ((OCSP_CERTID *)OPENSSL_sk_value(ossl_check_const_OCSP_CERTID_sk_type(sk), (idx))) -#define sk_OCSP_CERTID_new(cmp) ((STACK_OF(OCSP_CERTID) *)OPENSSL_sk_new(ossl_check_OCSP_CERTID_compfunc_type(cmp))) -#define sk_OCSP_CERTID_new_null() ((STACK_OF(OCSP_CERTID) *)OPENSSL_sk_new_null()) -#define sk_OCSP_CERTID_new_reserve(cmp, n) ((STACK_OF(OCSP_CERTID) *)OPENSSL_sk_new_reserve(ossl_check_OCSP_CERTID_compfunc_type(cmp), (n))) -#define sk_OCSP_CERTID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OCSP_CERTID_sk_type(sk), (n)) -#define sk_OCSP_CERTID_free(sk) OPENSSL_sk_free(ossl_check_OCSP_CERTID_sk_type(sk)) -#define sk_OCSP_CERTID_zero(sk) OPENSSL_sk_zero(ossl_check_OCSP_CERTID_sk_type(sk)) -#define sk_OCSP_CERTID_delete(sk, i) ((OCSP_CERTID *)OPENSSL_sk_delete(ossl_check_OCSP_CERTID_sk_type(sk), (i))) -#define sk_OCSP_CERTID_delete_ptr(sk, ptr) ((OCSP_CERTID *)OPENSSL_sk_delete_ptr(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr))) -#define sk_OCSP_CERTID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr)) -#define sk_OCSP_CERTID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr)) -#define sk_OCSP_CERTID_pop(sk) ((OCSP_CERTID *)OPENSSL_sk_pop(ossl_check_OCSP_CERTID_sk_type(sk))) -#define sk_OCSP_CERTID_shift(sk) ((OCSP_CERTID *)OPENSSL_sk_shift(ossl_check_OCSP_CERTID_sk_type(sk))) -#define sk_OCSP_CERTID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_freefunc_type(freefunc)) -#define sk_OCSP_CERTID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr), (idx)) -#define sk_OCSP_CERTID_set(sk, idx, ptr) ((OCSP_CERTID *)OPENSSL_sk_set(ossl_check_OCSP_CERTID_sk_type(sk), (idx), ossl_check_OCSP_CERTID_type(ptr))) -#define sk_OCSP_CERTID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr)) -#define sk_OCSP_CERTID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr)) -#define sk_OCSP_CERTID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr), pnum) -#define sk_OCSP_CERTID_sort(sk) OPENSSL_sk_sort(ossl_check_OCSP_CERTID_sk_type(sk)) -#define sk_OCSP_CERTID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OCSP_CERTID_sk_type(sk)) -#define sk_OCSP_CERTID_dup(sk) ((STACK_OF(OCSP_CERTID) *)OPENSSL_sk_dup(ossl_check_const_OCSP_CERTID_sk_type(sk))) -#define sk_OCSP_CERTID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OCSP_CERTID) *)OPENSSL_sk_deep_copy(ossl_check_const_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_copyfunc_type(copyfunc), ossl_check_OCSP_CERTID_freefunc_type(freefunc))) -#define sk_OCSP_CERTID_set_cmp_func(sk, cmp) ((sk_OCSP_CERTID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(OCSP_ONEREQ, OCSP_ONEREQ, OCSP_ONEREQ) -#define sk_OCSP_ONEREQ_num(sk) OPENSSL_sk_num(ossl_check_const_OCSP_ONEREQ_sk_type(sk)) -#define sk_OCSP_ONEREQ_value(sk, idx) ((OCSP_ONEREQ *)OPENSSL_sk_value(ossl_check_const_OCSP_ONEREQ_sk_type(sk), (idx))) -#define sk_OCSP_ONEREQ_new(cmp) ((STACK_OF(OCSP_ONEREQ) *)OPENSSL_sk_new(ossl_check_OCSP_ONEREQ_compfunc_type(cmp))) -#define sk_OCSP_ONEREQ_new_null() ((STACK_OF(OCSP_ONEREQ) *)OPENSSL_sk_new_null()) -#define sk_OCSP_ONEREQ_new_reserve(cmp, n) ((STACK_OF(OCSP_ONEREQ) *)OPENSSL_sk_new_reserve(ossl_check_OCSP_ONEREQ_compfunc_type(cmp), (n))) -#define sk_OCSP_ONEREQ_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OCSP_ONEREQ_sk_type(sk), (n)) -#define sk_OCSP_ONEREQ_free(sk) OPENSSL_sk_free(ossl_check_OCSP_ONEREQ_sk_type(sk)) -#define sk_OCSP_ONEREQ_zero(sk) OPENSSL_sk_zero(ossl_check_OCSP_ONEREQ_sk_type(sk)) -#define sk_OCSP_ONEREQ_delete(sk, i) ((OCSP_ONEREQ *)OPENSSL_sk_delete(ossl_check_OCSP_ONEREQ_sk_type(sk), (i))) -#define sk_OCSP_ONEREQ_delete_ptr(sk, ptr) ((OCSP_ONEREQ *)OPENSSL_sk_delete_ptr(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr))) -#define sk_OCSP_ONEREQ_push(sk, ptr) OPENSSL_sk_push(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr)) -#define sk_OCSP_ONEREQ_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr)) -#define sk_OCSP_ONEREQ_pop(sk) ((OCSP_ONEREQ *)OPENSSL_sk_pop(ossl_check_OCSP_ONEREQ_sk_type(sk))) -#define sk_OCSP_ONEREQ_shift(sk) ((OCSP_ONEREQ *)OPENSSL_sk_shift(ossl_check_OCSP_ONEREQ_sk_type(sk))) -#define sk_OCSP_ONEREQ_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_freefunc_type(freefunc)) -#define sk_OCSP_ONEREQ_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr), (idx)) -#define sk_OCSP_ONEREQ_set(sk, idx, ptr) ((OCSP_ONEREQ *)OPENSSL_sk_set(ossl_check_OCSP_ONEREQ_sk_type(sk), (idx), ossl_check_OCSP_ONEREQ_type(ptr))) -#define sk_OCSP_ONEREQ_find(sk, ptr) OPENSSL_sk_find(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr)) -#define sk_OCSP_ONEREQ_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr)) -#define sk_OCSP_ONEREQ_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr), pnum) -#define sk_OCSP_ONEREQ_sort(sk) OPENSSL_sk_sort(ossl_check_OCSP_ONEREQ_sk_type(sk)) -#define sk_OCSP_ONEREQ_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OCSP_ONEREQ_sk_type(sk)) -#define sk_OCSP_ONEREQ_dup(sk) ((STACK_OF(OCSP_ONEREQ) *)OPENSSL_sk_dup(ossl_check_const_OCSP_ONEREQ_sk_type(sk))) -#define sk_OCSP_ONEREQ_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OCSP_ONEREQ) *)OPENSSL_sk_deep_copy(ossl_check_const_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_copyfunc_type(copyfunc), ossl_check_OCSP_ONEREQ_freefunc_type(freefunc))) -#define sk_OCSP_ONEREQ_set_cmp_func(sk, cmp) ((sk_OCSP_ONEREQ_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_compfunc_type(cmp))) - - -# define OCSP_RESPONSE_STATUS_SUCCESSFUL 0 -# define OCSP_RESPONSE_STATUS_MALFORMEDREQUEST 1 -# define OCSP_RESPONSE_STATUS_INTERNALERROR 2 -# define OCSP_RESPONSE_STATUS_TRYLATER 3 -# define OCSP_RESPONSE_STATUS_SIGREQUIRED 5 -# define OCSP_RESPONSE_STATUS_UNAUTHORIZED 6 - -typedef struct ocsp_resp_bytes_st OCSP_RESPBYTES; - -# define V_OCSP_RESPID_NAME 0 -# define V_OCSP_RESPID_KEY 1 - -SKM_DEFINE_STACK_OF_INTERNAL(OCSP_RESPID, OCSP_RESPID, OCSP_RESPID) -#define sk_OCSP_RESPID_num(sk) OPENSSL_sk_num(ossl_check_const_OCSP_RESPID_sk_type(sk)) -#define sk_OCSP_RESPID_value(sk, idx) ((OCSP_RESPID *)OPENSSL_sk_value(ossl_check_const_OCSP_RESPID_sk_type(sk), (idx))) -#define sk_OCSP_RESPID_new(cmp) ((STACK_OF(OCSP_RESPID) *)OPENSSL_sk_new(ossl_check_OCSP_RESPID_compfunc_type(cmp))) -#define sk_OCSP_RESPID_new_null() ((STACK_OF(OCSP_RESPID) *)OPENSSL_sk_new_null()) -#define sk_OCSP_RESPID_new_reserve(cmp, n) ((STACK_OF(OCSP_RESPID) *)OPENSSL_sk_new_reserve(ossl_check_OCSP_RESPID_compfunc_type(cmp), (n))) -#define sk_OCSP_RESPID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OCSP_RESPID_sk_type(sk), (n)) -#define sk_OCSP_RESPID_free(sk) OPENSSL_sk_free(ossl_check_OCSP_RESPID_sk_type(sk)) -#define sk_OCSP_RESPID_zero(sk) OPENSSL_sk_zero(ossl_check_OCSP_RESPID_sk_type(sk)) -#define sk_OCSP_RESPID_delete(sk, i) ((OCSP_RESPID *)OPENSSL_sk_delete(ossl_check_OCSP_RESPID_sk_type(sk), (i))) -#define sk_OCSP_RESPID_delete_ptr(sk, ptr) ((OCSP_RESPID *)OPENSSL_sk_delete_ptr(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr))) -#define sk_OCSP_RESPID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr)) -#define sk_OCSP_RESPID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr)) -#define sk_OCSP_RESPID_pop(sk) ((OCSP_RESPID *)OPENSSL_sk_pop(ossl_check_OCSP_RESPID_sk_type(sk))) -#define sk_OCSP_RESPID_shift(sk) ((OCSP_RESPID *)OPENSSL_sk_shift(ossl_check_OCSP_RESPID_sk_type(sk))) -#define sk_OCSP_RESPID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_freefunc_type(freefunc)) -#define sk_OCSP_RESPID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr), (idx)) -#define sk_OCSP_RESPID_set(sk, idx, ptr) ((OCSP_RESPID *)OPENSSL_sk_set(ossl_check_OCSP_RESPID_sk_type(sk), (idx), ossl_check_OCSP_RESPID_type(ptr))) -#define sk_OCSP_RESPID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr)) -#define sk_OCSP_RESPID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr)) -#define sk_OCSP_RESPID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr), pnum) -#define sk_OCSP_RESPID_sort(sk) OPENSSL_sk_sort(ossl_check_OCSP_RESPID_sk_type(sk)) -#define sk_OCSP_RESPID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OCSP_RESPID_sk_type(sk)) -#define sk_OCSP_RESPID_dup(sk) ((STACK_OF(OCSP_RESPID) *)OPENSSL_sk_dup(ossl_check_const_OCSP_RESPID_sk_type(sk))) -#define sk_OCSP_RESPID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OCSP_RESPID) *)OPENSSL_sk_deep_copy(ossl_check_const_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_copyfunc_type(copyfunc), ossl_check_OCSP_RESPID_freefunc_type(freefunc))) -#define sk_OCSP_RESPID_set_cmp_func(sk, cmp) ((sk_OCSP_RESPID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_compfunc_type(cmp))) - - -typedef struct ocsp_revoked_info_st OCSP_REVOKEDINFO; - -# define V_OCSP_CERTSTATUS_GOOD 0 -# define V_OCSP_CERTSTATUS_REVOKED 1 -# define V_OCSP_CERTSTATUS_UNKNOWN 2 - -typedef struct ocsp_cert_status_st OCSP_CERTSTATUS; -typedef struct ocsp_single_response_st OCSP_SINGLERESP; - -SKM_DEFINE_STACK_OF_INTERNAL(OCSP_SINGLERESP, OCSP_SINGLERESP, OCSP_SINGLERESP) -#define sk_OCSP_SINGLERESP_num(sk) OPENSSL_sk_num(ossl_check_const_OCSP_SINGLERESP_sk_type(sk)) -#define sk_OCSP_SINGLERESP_value(sk, idx) ((OCSP_SINGLERESP *)OPENSSL_sk_value(ossl_check_const_OCSP_SINGLERESP_sk_type(sk), (idx))) -#define sk_OCSP_SINGLERESP_new(cmp) ((STACK_OF(OCSP_SINGLERESP) *)OPENSSL_sk_new(ossl_check_OCSP_SINGLERESP_compfunc_type(cmp))) -#define sk_OCSP_SINGLERESP_new_null() ((STACK_OF(OCSP_SINGLERESP) *)OPENSSL_sk_new_null()) -#define sk_OCSP_SINGLERESP_new_reserve(cmp, n) ((STACK_OF(OCSP_SINGLERESP) *)OPENSSL_sk_new_reserve(ossl_check_OCSP_SINGLERESP_compfunc_type(cmp), (n))) -#define sk_OCSP_SINGLERESP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OCSP_SINGLERESP_sk_type(sk), (n)) -#define sk_OCSP_SINGLERESP_free(sk) OPENSSL_sk_free(ossl_check_OCSP_SINGLERESP_sk_type(sk)) -#define sk_OCSP_SINGLERESP_zero(sk) OPENSSL_sk_zero(ossl_check_OCSP_SINGLERESP_sk_type(sk)) -#define sk_OCSP_SINGLERESP_delete(sk, i) ((OCSP_SINGLERESP *)OPENSSL_sk_delete(ossl_check_OCSP_SINGLERESP_sk_type(sk), (i))) -#define sk_OCSP_SINGLERESP_delete_ptr(sk, ptr) ((OCSP_SINGLERESP *)OPENSSL_sk_delete_ptr(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr))) -#define sk_OCSP_SINGLERESP_push(sk, ptr) OPENSSL_sk_push(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr)) -#define sk_OCSP_SINGLERESP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr)) -#define sk_OCSP_SINGLERESP_pop(sk) ((OCSP_SINGLERESP *)OPENSSL_sk_pop(ossl_check_OCSP_SINGLERESP_sk_type(sk))) -#define sk_OCSP_SINGLERESP_shift(sk) ((OCSP_SINGLERESP *)OPENSSL_sk_shift(ossl_check_OCSP_SINGLERESP_sk_type(sk))) -#define sk_OCSP_SINGLERESP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_freefunc_type(freefunc)) -#define sk_OCSP_SINGLERESP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr), (idx)) -#define sk_OCSP_SINGLERESP_set(sk, idx, ptr) ((OCSP_SINGLERESP *)OPENSSL_sk_set(ossl_check_OCSP_SINGLERESP_sk_type(sk), (idx), ossl_check_OCSP_SINGLERESP_type(ptr))) -#define sk_OCSP_SINGLERESP_find(sk, ptr) OPENSSL_sk_find(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr)) -#define sk_OCSP_SINGLERESP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr)) -#define sk_OCSP_SINGLERESP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr), pnum) -#define sk_OCSP_SINGLERESP_sort(sk) OPENSSL_sk_sort(ossl_check_OCSP_SINGLERESP_sk_type(sk)) -#define sk_OCSP_SINGLERESP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OCSP_SINGLERESP_sk_type(sk)) -#define sk_OCSP_SINGLERESP_dup(sk) ((STACK_OF(OCSP_SINGLERESP) *)OPENSSL_sk_dup(ossl_check_const_OCSP_SINGLERESP_sk_type(sk))) -#define sk_OCSP_SINGLERESP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OCSP_SINGLERESP) *)OPENSSL_sk_deep_copy(ossl_check_const_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_copyfunc_type(copyfunc), ossl_check_OCSP_SINGLERESP_freefunc_type(freefunc))) -#define sk_OCSP_SINGLERESP_set_cmp_func(sk, cmp) ((sk_OCSP_SINGLERESP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_compfunc_type(cmp))) - - -typedef struct ocsp_response_data_st OCSP_RESPDATA; - -typedef struct ocsp_basic_response_st OCSP_BASICRESP; - -typedef struct ocsp_crl_id_st OCSP_CRLID; -typedef struct ocsp_service_locator_st OCSP_SERVICELOC; - -# define PEM_STRING_OCSP_REQUEST "OCSP REQUEST" -# define PEM_STRING_OCSP_RESPONSE "OCSP RESPONSE" - -# define d2i_OCSP_REQUEST_bio(bp,p) ASN1_d2i_bio_of(OCSP_REQUEST,OCSP_REQUEST_new,d2i_OCSP_REQUEST,bp,p) - -# define d2i_OCSP_RESPONSE_bio(bp,p) ASN1_d2i_bio_of(OCSP_RESPONSE,OCSP_RESPONSE_new,d2i_OCSP_RESPONSE,bp,p) - -# define PEM_read_bio_OCSP_REQUEST(bp,x,cb) (OCSP_REQUEST *)PEM_ASN1_read_bio( \ - (char *(*)())d2i_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST, \ - bp,(char **)(x),cb,NULL) - -# define PEM_read_bio_OCSP_RESPONSE(bp,x,cb) (OCSP_RESPONSE *)PEM_ASN1_read_bio(\ - (char *(*)())d2i_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE, \ - bp,(char **)(x),cb,NULL) - -# define PEM_write_bio_OCSP_REQUEST(bp,o) \ - PEM_ASN1_write_bio((int (*)())i2d_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,\ - bp,(char *)(o), NULL,NULL,0,NULL,NULL) - -# define PEM_write_bio_OCSP_RESPONSE(bp,o) \ - PEM_ASN1_write_bio((int (*)())i2d_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,\ - bp,(char *)(o), NULL,NULL,0,NULL,NULL) - -# define i2d_OCSP_RESPONSE_bio(bp,o) ASN1_i2d_bio_of(OCSP_RESPONSE,i2d_OCSP_RESPONSE,bp,o) - -# define i2d_OCSP_REQUEST_bio(bp,o) ASN1_i2d_bio_of(OCSP_REQUEST,i2d_OCSP_REQUEST,bp,o) - -# define ASN1_BIT_STRING_digest(data,type,md,len) \ - ASN1_item_digest(ASN1_ITEM_rptr(ASN1_BIT_STRING),type,data,md,len) - -# define OCSP_CERTSTATUS_dup(cs)\ - (OCSP_CERTSTATUS*)ASN1_dup((i2d_of_void *)i2d_OCSP_CERTSTATUS,\ - (d2i_of_void *)d2i_OCSP_CERTSTATUS,(char *)(cs)) - -DECLARE_ASN1_DUP_FUNCTION(OCSP_CERTID) - -OSSL_HTTP_REQ_CTX *OCSP_sendreq_new(BIO *io, const char *path, - const OCSP_REQUEST *req, int buf_size); -OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST *req); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -typedef OSSL_HTTP_REQ_CTX OCSP_REQ_CTX; -# define OCSP_REQ_CTX_new(io, buf_size) \ - OSSL_HTTP_REQ_CTX_new(io, io, buf_size) -# define OCSP_REQ_CTX_free OSSL_HTTP_REQ_CTX_free -# define OCSP_REQ_CTX_http(rctx, op, path) \ - (OSSL_HTTP_REQ_CTX_set_expected(rctx, NULL, 1 /* asn1 */, 0, 0) && \ - OSSL_HTTP_REQ_CTX_set_request_line(rctx, strcmp(op, "POST") == 0, \ - NULL, NULL, path)) -# define OCSP_REQ_CTX_add1_header OSSL_HTTP_REQ_CTX_add1_header -# define OCSP_REQ_CTX_i2d(r, it, req) \ - OSSL_HTTP_REQ_CTX_set1_req(r, "application/ocsp-request", it, req) -# define OCSP_REQ_CTX_set1_req(r, req) \ - OCSP_REQ_CTX_i2d(r, ASN1_ITEM_rptr(OCSP_REQUEST), (ASN1_VALUE *)(req)) -# define OCSP_REQ_CTX_nbio OSSL_HTTP_REQ_CTX_nbio -# define OCSP_REQ_CTX_nbio_d2i OSSL_HTTP_REQ_CTX_nbio_d2i -# define OCSP_sendreq_nbio(p, r) \ - OSSL_HTTP_REQ_CTX_nbio_d2i(r, (ASN1_VALUE **)(p), \ - ASN1_ITEM_rptr(OCSP_RESPONSE)) -# define OCSP_REQ_CTX_get0_mem_bio OSSL_HTTP_REQ_CTX_get0_mem_bio -# define OCSP_set_max_response_length OSSL_HTTP_REQ_CTX_set_max_response_length -# endif - -OCSP_CERTID *OCSP_cert_to_id(const EVP_MD *dgst, const X509 *subject, - const X509 *issuer); - -OCSP_CERTID *OCSP_cert_id_new(const EVP_MD *dgst, - const X509_NAME *issuerName, - const ASN1_BIT_STRING *issuerKey, - const ASN1_INTEGER *serialNumber); - -OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid); - -int OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val, int len); -int OCSP_basic_add1_nonce(OCSP_BASICRESP *resp, unsigned char *val, int len); -int OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *bs); -int OCSP_copy_nonce(OCSP_BASICRESP *resp, OCSP_REQUEST *req); - -int OCSP_request_set1_name(OCSP_REQUEST *req, const X509_NAME *nm); -int OCSP_request_add1_cert(OCSP_REQUEST *req, X509 *cert); - -int OCSP_request_sign(OCSP_REQUEST *req, - X509 *signer, - EVP_PKEY *key, - const EVP_MD *dgst, - STACK_OF(X509) *certs, unsigned long flags); - -int OCSP_response_status(OCSP_RESPONSE *resp); -OCSP_BASICRESP *OCSP_response_get1_basic(OCSP_RESPONSE *resp); - -const ASN1_OCTET_STRING *OCSP_resp_get0_signature(const OCSP_BASICRESP *bs); -const X509_ALGOR *OCSP_resp_get0_tbs_sigalg(const OCSP_BASICRESP *bs); -const OCSP_RESPDATA *OCSP_resp_get0_respdata(const OCSP_BASICRESP *bs); -int OCSP_resp_get0_signer(OCSP_BASICRESP *bs, X509 **signer, - STACK_OF(X509) *extra_certs); - -int OCSP_resp_count(OCSP_BASICRESP *bs); -OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx); -const ASN1_GENERALIZEDTIME *OCSP_resp_get0_produced_at(const OCSP_BASICRESP* bs); -const STACK_OF(X509) *OCSP_resp_get0_certs(const OCSP_BASICRESP *bs); -int OCSP_resp_get0_id(const OCSP_BASICRESP *bs, - const ASN1_OCTET_STRING **pid, - const X509_NAME **pname); -int OCSP_resp_get1_id(const OCSP_BASICRESP *bs, - ASN1_OCTET_STRING **pid, - X509_NAME **pname); - -int OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last); -int OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason, - ASN1_GENERALIZEDTIME **revtime, - ASN1_GENERALIZEDTIME **thisupd, - ASN1_GENERALIZEDTIME **nextupd); -int OCSP_resp_find_status(OCSP_BASICRESP *bs, OCSP_CERTID *id, int *status, - int *reason, - ASN1_GENERALIZEDTIME **revtime, - ASN1_GENERALIZEDTIME **thisupd, - ASN1_GENERALIZEDTIME **nextupd); -int OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd, - ASN1_GENERALIZEDTIME *nextupd, long sec, long maxsec); - -int OCSP_request_verify(OCSP_REQUEST *req, STACK_OF(X509) *certs, - X509_STORE *store, unsigned long flags); - -# define OCSP_parse_url(url, host, port, path, ssl) \ - OSSL_HTTP_parse_url(url, ssl, NULL, host, port, NULL, path, NULL, NULL) - -int OCSP_id_issuer_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b); -int OCSP_id_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b); - -int OCSP_request_onereq_count(OCSP_REQUEST *req); -OCSP_ONEREQ *OCSP_request_onereq_get0(OCSP_REQUEST *req, int i); -OCSP_CERTID *OCSP_onereq_get0_id(OCSP_ONEREQ *one); -int OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, - ASN1_OCTET_STRING **pikeyHash, - ASN1_INTEGER **pserial, OCSP_CERTID *cid); -int OCSP_request_is_signed(OCSP_REQUEST *req); -OCSP_RESPONSE *OCSP_response_create(int status, OCSP_BASICRESP *bs); -OCSP_SINGLERESP *OCSP_basic_add1_status(OCSP_BASICRESP *rsp, - OCSP_CERTID *cid, - int status, int reason, - ASN1_TIME *revtime, - ASN1_TIME *thisupd, - ASN1_TIME *nextupd); -int OCSP_basic_add1_cert(OCSP_BASICRESP *resp, X509 *cert); -int OCSP_basic_sign(OCSP_BASICRESP *brsp, - X509 *signer, EVP_PKEY *key, const EVP_MD *dgst, - STACK_OF(X509) *certs, unsigned long flags); -int OCSP_basic_sign_ctx(OCSP_BASICRESP *brsp, - X509 *signer, EVP_MD_CTX *ctx, - STACK_OF(X509) *certs, unsigned long flags); -int OCSP_RESPID_set_by_name(OCSP_RESPID *respid, X509 *cert); -int OCSP_RESPID_set_by_key_ex(OCSP_RESPID *respid, X509 *cert, - OSSL_LIB_CTX *libctx, const char *propq); -int OCSP_RESPID_set_by_key(OCSP_RESPID *respid, X509 *cert); -int OCSP_RESPID_match_ex(OCSP_RESPID *respid, X509 *cert, OSSL_LIB_CTX *libctx, - const char *propq); -int OCSP_RESPID_match(OCSP_RESPID *respid, X509 *cert); - -X509_EXTENSION *OCSP_crlID_new(const char *url, long *n, char *tim); - -X509_EXTENSION *OCSP_accept_responses_new(char **oids); - -X509_EXTENSION *OCSP_archive_cutoff_new(char *tim); - -X509_EXTENSION *OCSP_url_svcloc_new(const X509_NAME *issuer, const char **urls); - -int OCSP_REQUEST_get_ext_count(OCSP_REQUEST *x); -int OCSP_REQUEST_get_ext_by_NID(OCSP_REQUEST *x, int nid, int lastpos); -int OCSP_REQUEST_get_ext_by_OBJ(OCSP_REQUEST *x, const ASN1_OBJECT *obj, - int lastpos); -int OCSP_REQUEST_get_ext_by_critical(OCSP_REQUEST *x, int crit, int lastpos); -X509_EXTENSION *OCSP_REQUEST_get_ext(OCSP_REQUEST *x, int loc); -X509_EXTENSION *OCSP_REQUEST_delete_ext(OCSP_REQUEST *x, int loc); -void *OCSP_REQUEST_get1_ext_d2i(OCSP_REQUEST *x, int nid, int *crit, - int *idx); -int OCSP_REQUEST_add1_ext_i2d(OCSP_REQUEST *x, int nid, void *value, int crit, - unsigned long flags); -int OCSP_REQUEST_add_ext(OCSP_REQUEST *x, X509_EXTENSION *ex, int loc); - -int OCSP_ONEREQ_get_ext_count(OCSP_ONEREQ *x); -int OCSP_ONEREQ_get_ext_by_NID(OCSP_ONEREQ *x, int nid, int lastpos); -int OCSP_ONEREQ_get_ext_by_OBJ(OCSP_ONEREQ *x, const ASN1_OBJECT *obj, int lastpos); -int OCSP_ONEREQ_get_ext_by_critical(OCSP_ONEREQ *x, int crit, int lastpos); -X509_EXTENSION *OCSP_ONEREQ_get_ext(OCSP_ONEREQ *x, int loc); -X509_EXTENSION *OCSP_ONEREQ_delete_ext(OCSP_ONEREQ *x, int loc); -void *OCSP_ONEREQ_get1_ext_d2i(OCSP_ONEREQ *x, int nid, int *crit, int *idx); -int OCSP_ONEREQ_add1_ext_i2d(OCSP_ONEREQ *x, int nid, void *value, int crit, - unsigned long flags); -int OCSP_ONEREQ_add_ext(OCSP_ONEREQ *x, X509_EXTENSION *ex, int loc); - -int OCSP_BASICRESP_get_ext_count(OCSP_BASICRESP *x); -int OCSP_BASICRESP_get_ext_by_NID(OCSP_BASICRESP *x, int nid, int lastpos); -int OCSP_BASICRESP_get_ext_by_OBJ(OCSP_BASICRESP *x, const ASN1_OBJECT *obj, - int lastpos); -int OCSP_BASICRESP_get_ext_by_critical(OCSP_BASICRESP *x, int crit, - int lastpos); -X509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *x, int loc); -X509_EXTENSION *OCSP_BASICRESP_delete_ext(OCSP_BASICRESP *x, int loc); -void *OCSP_BASICRESP_get1_ext_d2i(OCSP_BASICRESP *x, int nid, int *crit, - int *idx); -int OCSP_BASICRESP_add1_ext_i2d(OCSP_BASICRESP *x, int nid, void *value, - int crit, unsigned long flags); -int OCSP_BASICRESP_add_ext(OCSP_BASICRESP *x, X509_EXTENSION *ex, int loc); - -int OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *x); -int OCSP_SINGLERESP_get_ext_by_NID(OCSP_SINGLERESP *x, int nid, int lastpos); -int OCSP_SINGLERESP_get_ext_by_OBJ(OCSP_SINGLERESP *x, const ASN1_OBJECT *obj, - int lastpos); -int OCSP_SINGLERESP_get_ext_by_critical(OCSP_SINGLERESP *x, int crit, - int lastpos); -X509_EXTENSION *OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *x, int loc); -X509_EXTENSION *OCSP_SINGLERESP_delete_ext(OCSP_SINGLERESP *x, int loc); -void *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int *crit, - int *idx); -int OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value, - int crit, unsigned long flags); -int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, int loc); -const OCSP_CERTID *OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *x); - -DECLARE_ASN1_FUNCTIONS(OCSP_SINGLERESP) -DECLARE_ASN1_FUNCTIONS(OCSP_CERTSTATUS) -DECLARE_ASN1_FUNCTIONS(OCSP_REVOKEDINFO) -DECLARE_ASN1_FUNCTIONS(OCSP_BASICRESP) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPDATA) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPONSE) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPBYTES) -DECLARE_ASN1_FUNCTIONS(OCSP_ONEREQ) -DECLARE_ASN1_FUNCTIONS(OCSP_CERTID) -DECLARE_ASN1_FUNCTIONS(OCSP_REQUEST) -DECLARE_ASN1_FUNCTIONS(OCSP_SIGNATURE) -DECLARE_ASN1_FUNCTIONS(OCSP_REQINFO) -DECLARE_ASN1_FUNCTIONS(OCSP_CRLID) -DECLARE_ASN1_FUNCTIONS(OCSP_SERVICELOC) - -const char *OCSP_response_status_str(long s); -const char *OCSP_cert_status_str(long s); -const char *OCSP_crl_reason_str(long s); - -int OCSP_REQUEST_print(BIO *bp, OCSP_REQUEST *a, unsigned long flags); -int OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE *o, unsigned long flags); - -int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs, - X509_STORE *st, unsigned long flags); - - -# ifdef __cplusplus -} -# endif -# endif /* !defined(OPENSSL_NO_OCSP) */ -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ocsperr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/ocsperr.h deleted file mode 100644 index 46a0523..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ocsperr.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_OCSPERR_H -# define OPENSSL_OCSPERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_OCSP - - -/* - * OCSP reason codes. - */ -# define OCSP_R_CERTIFICATE_VERIFY_ERROR 101 -# define OCSP_R_DIGEST_ERR 102 -# define OCSP_R_DIGEST_NAME_ERR 106 -# define OCSP_R_DIGEST_SIZE_ERR 107 -# define OCSP_R_ERROR_IN_NEXTUPDATE_FIELD 122 -# define OCSP_R_ERROR_IN_THISUPDATE_FIELD 123 -# define OCSP_R_MISSING_OCSPSIGNING_USAGE 103 -# define OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE 124 -# define OCSP_R_NOT_BASIC_RESPONSE 104 -# define OCSP_R_NO_CERTIFICATES_IN_CHAIN 105 -# define OCSP_R_NO_RESPONSE_DATA 108 -# define OCSP_R_NO_REVOKED_TIME 109 -# define OCSP_R_NO_SIGNER_KEY 130 -# define OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 110 -# define OCSP_R_REQUEST_NOT_SIGNED 128 -# define OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA 111 -# define OCSP_R_ROOT_CA_NOT_TRUSTED 112 -# define OCSP_R_SIGNATURE_FAILURE 117 -# define OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND 118 -# define OCSP_R_STATUS_EXPIRED 125 -# define OCSP_R_STATUS_NOT_YET_VALID 126 -# define OCSP_R_STATUS_TOO_OLD 127 -# define OCSP_R_UNKNOWN_MESSAGE_DIGEST 119 -# define OCSP_R_UNKNOWN_NID 120 -# define OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE 129 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/opensslconf.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/opensslconf.h deleted file mode 100644 index 1e83371..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/opensslconf.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_OPENSSLCONF_H -# define OPENSSL_OPENSSLCONF_H -# pragma once - -# include -# include - -#endif /* OPENSSL_OPENSSLCONF_H */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/opensslv.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/opensslv.h deleted file mode 100644 index 24243de..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/opensslv.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\opensslv.h.in - * - * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_OPENSSLV_H -# define OPENSSL_OPENSSLV_H -# pragma once - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * SECTION 1: VERSION DATA. These will change for each release - */ - -/* - * Base version macros - * - * These macros express version number MAJOR.MINOR.PATCH exactly - */ -# define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 6 -# define OPENSSL_VERSION_PATCH 0 - -/* - * Additional version information - * - * These are also part of the new version scheme, but aren't part - * of the version number itself. - */ - -/* Could be: #define OPENSSL_VERSION_PRE_RELEASE "-alpha.1" */ -# define OPENSSL_VERSION_PRE_RELEASE "-beta1" -/* Could be: #define OPENSSL_VERSION_BUILD_METADATA "+fips" */ -/* Could be: #define OPENSSL_VERSION_BUILD_METADATA "+vendor.1" */ -# define OPENSSL_VERSION_BUILD_METADATA "" - -/* - * Note: The OpenSSL Project will never define OPENSSL_VERSION_BUILD_METADATA - * to be anything but the empty string. Its use is entirely reserved for - * others - */ - -/* - * Shared library version - * - * This is strictly to express ABI version, which may or may not - * be related to the API version expressed with the macros above. - * This is defined in free form. - */ -# define OPENSSL_SHLIB_VERSION 3 - -/* - * SECTION 2: USEFUL MACROS - */ - -/* For checking general API compatibility when preprocessing */ -# define OPENSSL_VERSION_PREREQ(maj,min) \ - ((OPENSSL_VERSION_MAJOR << 16) + OPENSSL_VERSION_MINOR >= ((maj) << 16) + (min)) - -/* - * Macros to get the version in easily digested string form, both the short - * "MAJOR.MINOR.PATCH" variant (where MAJOR, MINOR and PATCH are replaced - * with the values from the corresponding OPENSSL_VERSION_ macros) and the - * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and - * OPENSSL_VERSION_BUILD_METADATA_STR appended. - */ -# define OPENSSL_VERSION_STR "3.6.0" -# define OPENSSL_FULL_VERSION_STR "3.6.0-beta1" - -/* - * SECTION 3: ADDITIONAL METADATA - * - * These strings are defined separately to allow them to be parsable. - */ -# define OPENSSL_RELEASE_DATE "16 Sep 2025" - -/* - * SECTION 4: BACKWARD COMPATIBILITY - */ - -# define OPENSSL_VERSION_TEXT "OpenSSL 3.6.0-beta1 16 Sep 2025" - -/* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ -# define OPENSSL_VERSION_NUMBER \ - ( (OPENSSL_VERSION_MAJOR<<28) \ - |(OPENSSL_VERSION_MINOR<<20) \ - |(OPENSSL_VERSION_PATCH<<4) \ - |0x0L ) - -# ifdef __cplusplus -} -# endif - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_OPENSSLV_H -# endif - -#endif /* OPENSSL_OPENSSLV_H */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ossl_typ.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/ossl_typ.h deleted file mode 100644 index 82a5898..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ossl_typ.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * The original was renamed to - * - * This header file only exists for compatibility reasons with older - * applications which #include . - */ -# include diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/param_build.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/param_build.h deleted file mode 100644 index f29fdb2..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/param_build.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PARAM_BUILD_H -# define OPENSSL_PARAM_BUILD_H -# pragma once - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -OSSL_PARAM_BLD *OSSL_PARAM_BLD_new(void); -OSSL_PARAM *OSSL_PARAM_BLD_to_param(OSSL_PARAM_BLD *bld); -void OSSL_PARAM_BLD_free(OSSL_PARAM_BLD *bld); - -int OSSL_PARAM_BLD_push_int(OSSL_PARAM_BLD *bld, const char *key, int val); -int OSSL_PARAM_BLD_push_uint(OSSL_PARAM_BLD *bld, const char *key, - unsigned int val); -int OSSL_PARAM_BLD_push_long(OSSL_PARAM_BLD *bld, const char *key, - long int val); -int OSSL_PARAM_BLD_push_ulong(OSSL_PARAM_BLD *bld, const char *key, - unsigned long int val); -int OSSL_PARAM_BLD_push_int32(OSSL_PARAM_BLD *bld, const char *key, - int32_t val); -int OSSL_PARAM_BLD_push_uint32(OSSL_PARAM_BLD *bld, const char *key, - uint32_t val); -int OSSL_PARAM_BLD_push_int64(OSSL_PARAM_BLD *bld, const char *key, - int64_t val); -int OSSL_PARAM_BLD_push_uint64(OSSL_PARAM_BLD *bld, const char *key, - uint64_t val); -int OSSL_PARAM_BLD_push_size_t(OSSL_PARAM_BLD *bld, const char *key, - size_t val); -int OSSL_PARAM_BLD_push_time_t(OSSL_PARAM_BLD *bld, const char *key, - time_t val); -int OSSL_PARAM_BLD_push_double(OSSL_PARAM_BLD *bld, const char *key, - double val); -int OSSL_PARAM_BLD_push_BN(OSSL_PARAM_BLD *bld, const char *key, - const BIGNUM *bn); -int OSSL_PARAM_BLD_push_BN_pad(OSSL_PARAM_BLD *bld, const char *key, - const BIGNUM *bn, size_t sz); -int OSSL_PARAM_BLD_push_utf8_string(OSSL_PARAM_BLD *bld, const char *key, - const char *buf, size_t bsize); -int OSSL_PARAM_BLD_push_utf8_ptr(OSSL_PARAM_BLD *bld, const char *key, - char *buf, size_t bsize); -int OSSL_PARAM_BLD_push_octet_string(OSSL_PARAM_BLD *bld, const char *key, - const void *buf, size_t bsize); -int OSSL_PARAM_BLD_push_octet_ptr(OSSL_PARAM_BLD *bld, const char *key, - void *buf, size_t bsize); - -# ifdef __cplusplus -} -# endif -#endif /* OPENSSL_PARAM_BUILD_H */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/params.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/params.h deleted file mode 100644 index eae67b1..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/params.h +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PARAMS_H -# define OPENSSL_PARAMS_H -# pragma once - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# define OSSL_PARAM_UNMODIFIED ((size_t)-1) - -# define OSSL_PARAM_END \ - { NULL, 0, NULL, 0, 0 } - -# define OSSL_PARAM_DEFN(key, type, addr, sz) \ - { (key), (type), (addr), (sz), OSSL_PARAM_UNMODIFIED } - -/* Basic parameter types without return sizes */ -# define OSSL_PARAM_int(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_INTEGER, (addr), sizeof(int)) -# define OSSL_PARAM_uint(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_UNSIGNED_INTEGER, (addr), \ - sizeof(unsigned int)) -# define OSSL_PARAM_long(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_INTEGER, (addr), sizeof(long int)) -# define OSSL_PARAM_ulong(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_UNSIGNED_INTEGER, (addr), \ - sizeof(unsigned long int)) -# define OSSL_PARAM_int32(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_INTEGER, (addr), sizeof(int32_t)) -# define OSSL_PARAM_uint32(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_UNSIGNED_INTEGER, (addr), \ - sizeof(uint32_t)) -# define OSSL_PARAM_int64(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_INTEGER, (addr), sizeof(int64_t)) -# define OSSL_PARAM_uint64(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_UNSIGNED_INTEGER, (addr), \ - sizeof(uint64_t)) -# define OSSL_PARAM_size_t(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_UNSIGNED_INTEGER, (addr), sizeof(size_t)) -# define OSSL_PARAM_time_t(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_INTEGER, (addr), sizeof(time_t)) -# define OSSL_PARAM_double(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_REAL, (addr), sizeof(double)) - -# define OSSL_PARAM_BN(key, bn, sz) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_UNSIGNED_INTEGER, (bn), (sz)) -# define OSSL_PARAM_utf8_string(key, addr, sz) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_UTF8_STRING, (addr), sz) -# define OSSL_PARAM_octet_string(key, addr, sz) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_OCTET_STRING, (addr), sz) - -# define OSSL_PARAM_utf8_ptr(key, addr, sz) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_UTF8_PTR, (addr), sz) -# define OSSL_PARAM_octet_ptr(key, addr, sz) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_OCTET_PTR, (addr), sz) - -/* Search an OSSL_PARAM array for a matching name */ -OSSL_PARAM *OSSL_PARAM_locate(OSSL_PARAM *p, const char *key); -const OSSL_PARAM *OSSL_PARAM_locate_const(const OSSL_PARAM *p, const char *key); - -/* Basic parameter type run-time construction */ -OSSL_PARAM OSSL_PARAM_construct_int(const char *key, int *buf); -OSSL_PARAM OSSL_PARAM_construct_uint(const char *key, unsigned int *buf); -OSSL_PARAM OSSL_PARAM_construct_long(const char *key, long int *buf); -OSSL_PARAM OSSL_PARAM_construct_ulong(const char *key, unsigned long int *buf); -OSSL_PARAM OSSL_PARAM_construct_int32(const char *key, int32_t *buf); -OSSL_PARAM OSSL_PARAM_construct_uint32(const char *key, uint32_t *buf); -OSSL_PARAM OSSL_PARAM_construct_int64(const char *key, int64_t *buf); -OSSL_PARAM OSSL_PARAM_construct_uint64(const char *key, uint64_t *buf); -OSSL_PARAM OSSL_PARAM_construct_size_t(const char *key, size_t *buf); -OSSL_PARAM OSSL_PARAM_construct_time_t(const char *key, time_t *buf); -OSSL_PARAM OSSL_PARAM_construct_BN(const char *key, unsigned char *buf, - size_t bsize); -OSSL_PARAM OSSL_PARAM_construct_double(const char *key, double *buf); -OSSL_PARAM OSSL_PARAM_construct_utf8_string(const char *key, char *buf, - size_t bsize); -OSSL_PARAM OSSL_PARAM_construct_utf8_ptr(const char *key, char **buf, - size_t bsize); -OSSL_PARAM OSSL_PARAM_construct_octet_string(const char *key, void *buf, - size_t bsize); -OSSL_PARAM OSSL_PARAM_construct_octet_ptr(const char *key, void **buf, - size_t bsize); -OSSL_PARAM OSSL_PARAM_construct_end(void); - -int OSSL_PARAM_allocate_from_text(OSSL_PARAM *to, - const OSSL_PARAM *paramdefs, - const char *key, const char *value, - size_t value_n, int *found); - -int OSSL_PARAM_print_to_bio(const OSSL_PARAM *params, BIO *bio, - int print_values); - -int OSSL_PARAM_get_int(const OSSL_PARAM *p, int *val); -int OSSL_PARAM_get_uint(const OSSL_PARAM *p, unsigned int *val); -int OSSL_PARAM_get_long(const OSSL_PARAM *p, long int *val); -int OSSL_PARAM_get_ulong(const OSSL_PARAM *p, unsigned long int *val); -int OSSL_PARAM_get_int32(const OSSL_PARAM *p, int32_t *val); -int OSSL_PARAM_get_uint32(const OSSL_PARAM *p, uint32_t *val); -int OSSL_PARAM_get_int64(const OSSL_PARAM *p, int64_t *val); -int OSSL_PARAM_get_uint64(const OSSL_PARAM *p, uint64_t *val); -int OSSL_PARAM_get_size_t(const OSSL_PARAM *p, size_t *val); -int OSSL_PARAM_get_time_t(const OSSL_PARAM *p, time_t *val); - -int OSSL_PARAM_set_int(OSSL_PARAM *p, int val); -int OSSL_PARAM_set_uint(OSSL_PARAM *p, unsigned int val); -int OSSL_PARAM_set_long(OSSL_PARAM *p, long int val); -int OSSL_PARAM_set_ulong(OSSL_PARAM *p, unsigned long int val); -int OSSL_PARAM_set_int32(OSSL_PARAM *p, int32_t val); -int OSSL_PARAM_set_uint32(OSSL_PARAM *p, uint32_t val); -int OSSL_PARAM_set_int64(OSSL_PARAM *p, int64_t val); -int OSSL_PARAM_set_uint64(OSSL_PARAM *p, uint64_t val); -int OSSL_PARAM_set_size_t(OSSL_PARAM *p, size_t val); -int OSSL_PARAM_set_time_t(OSSL_PARAM *p, time_t val); - -int OSSL_PARAM_get_double(const OSSL_PARAM *p, double *val); -int OSSL_PARAM_set_double(OSSL_PARAM *p, double val); - -int OSSL_PARAM_get_BN(const OSSL_PARAM *p, BIGNUM **val); -int OSSL_PARAM_set_BN(OSSL_PARAM *p, const BIGNUM *val); - -int OSSL_PARAM_get_utf8_string(const OSSL_PARAM *p, char **val, size_t max_len); -int OSSL_PARAM_set_utf8_string(OSSL_PARAM *p, const char *val); - -int OSSL_PARAM_get_octet_string(const OSSL_PARAM *p, void **val, size_t max_len, - size_t *used_len); -int OSSL_PARAM_set_octet_string(OSSL_PARAM *p, const void *val, size_t len); - -int OSSL_PARAM_get_utf8_ptr(const OSSL_PARAM *p, const char **val); -int OSSL_PARAM_set_utf8_ptr(OSSL_PARAM *p, const char *val); - -int OSSL_PARAM_get_octet_ptr(const OSSL_PARAM *p, const void **val, - size_t *used_len); -int OSSL_PARAM_set_octet_ptr(OSSL_PARAM *p, const void *val, - size_t used_len); - -int OSSL_PARAM_get_utf8_string_ptr(const OSSL_PARAM *p, const char **val); -int OSSL_PARAM_get_octet_string_ptr(const OSSL_PARAM *p, const void **val, - size_t *used_len); - -int OSSL_PARAM_modified(const OSSL_PARAM *p); -void OSSL_PARAM_set_all_unmodified(OSSL_PARAM *p); - -OSSL_PARAM *OSSL_PARAM_dup(const OSSL_PARAM *p); -OSSL_PARAM *OSSL_PARAM_merge(const OSSL_PARAM *p1, const OSSL_PARAM *p2); -void OSSL_PARAM_free(OSSL_PARAM *p); - -int OSSL_PARAM_set_octet_string_or_ptr(OSSL_PARAM *p, const void *val, - size_t len); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/pem.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/pem.h deleted file mode 100644 index de1b658..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/pem.h +++ /dev/null @@ -1,548 +0,0 @@ -/* - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PEM_H -# define OPENSSL_PEM_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_PEM_H -# endif - -# include -# include -# include -# include -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define PEM_BUFSIZE 1024 - -# define PEM_STRING_X509_OLD "X509 CERTIFICATE" -# define PEM_STRING_X509 "CERTIFICATE" -# define PEM_STRING_X509_TRUSTED "TRUSTED CERTIFICATE" -# define PEM_STRING_X509_REQ_OLD "NEW CERTIFICATE REQUEST" -# define PEM_STRING_X509_REQ "CERTIFICATE REQUEST" -# define PEM_STRING_X509_CRL "X509 CRL" -# define PEM_STRING_EVP_PKEY "ANY PRIVATE KEY" -# define PEM_STRING_PUBLIC "PUBLIC KEY" -# define PEM_STRING_RSA "RSA PRIVATE KEY" -# define PEM_STRING_RSA_PUBLIC "RSA PUBLIC KEY" -# define PEM_STRING_DSA "DSA PRIVATE KEY" -# define PEM_STRING_DSA_PUBLIC "DSA PUBLIC KEY" -# define PEM_STRING_PKCS7 "PKCS7" -# define PEM_STRING_PKCS7_SIGNED "PKCS #7 SIGNED DATA" -# define PEM_STRING_PKCS8 "ENCRYPTED PRIVATE KEY" -# define PEM_STRING_PKCS8INF "PRIVATE KEY" -# define PEM_STRING_DHPARAMS "DH PARAMETERS" -# define PEM_STRING_DHXPARAMS "X9.42 DH PARAMETERS" -# define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS" -# define PEM_STRING_DSAPARAMS "DSA PARAMETERS" -# define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY" -# define PEM_STRING_ECPARAMETERS "EC PARAMETERS" -# define PEM_STRING_ECPRIVATEKEY "EC PRIVATE KEY" -# define PEM_STRING_PARAMETERS "PARAMETERS" -# define PEM_STRING_CMS "CMS" -# define PEM_STRING_SM2PRIVATEKEY "SM2 PRIVATE KEY" -# define PEM_STRING_SM2PARAMETERS "SM2 PARAMETERS" -# define PEM_STRING_ACERT "ATTRIBUTE CERTIFICATE" - -# define PEM_TYPE_ENCRYPTED 10 -# define PEM_TYPE_MIC_ONLY 20 -# define PEM_TYPE_MIC_CLEAR 30 -# define PEM_TYPE_CLEAR 40 - -/* - * These macros make the PEM_read/PEM_write functions easier to maintain and - * write. Now they are all implemented with either: IMPLEMENT_PEM_rw(...) or - * IMPLEMENT_PEM_rw_cb(...) - */ - -# define PEM_read_cb_fnsig(name, type, INTYPE, readname) \ - type *PEM_##readname##_##name(INTYPE *out, type **x, \ - pem_password_cb *cb, void *u) -# define PEM_read_cb_ex_fnsig(name, type, INTYPE, readname) \ - type *PEM_##readname##_##name##_ex(INTYPE *out, type **x, \ - pem_password_cb *cb, void *u, \ - OSSL_LIB_CTX *libctx, \ - const char *propq) - -# define PEM_write_fnsig(name, type, OUTTYPE, writename) \ - int PEM_##writename##_##name(OUTTYPE *out, const type *x) -# define PEM_write_cb_fnsig(name, type, OUTTYPE, writename) \ - int PEM_##writename##_##name(OUTTYPE *out, const type *x, \ - const EVP_CIPHER *enc, \ - const unsigned char *kstr, int klen, \ - pem_password_cb *cb, void *u) -# define PEM_write_ex_fnsig(name, type, OUTTYPE, writename) \ - int PEM_##writename##_##name##_ex(OUTTYPE *out, const type *x, \ - OSSL_LIB_CTX *libctx, \ - const char *propq) -# define PEM_write_cb_ex_fnsig(name, type, OUTTYPE, writename) \ - int PEM_##writename##_##name##_ex(OUTTYPE *out, const type *x, \ - const EVP_CIPHER *enc, \ - const unsigned char *kstr, int klen, \ - pem_password_cb *cb, void *u, \ - OSSL_LIB_CTX *libctx, \ - const char *propq) - -# ifdef OPENSSL_NO_STDIO - -# define IMPLEMENT_PEM_read_fp(name, type, str, asn1) /**/ -# define IMPLEMENT_PEM_write_fp(name, type, str, asn1) /**/ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) /**/ -# endif -# define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) /**/ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) /**/ -# endif -# else - -# define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \ - type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u) \ - { \ - return PEM_ASN1_read((d2i_of_void *)d2i_##asn1, str, fp, \ - (void **)x, cb, u); \ - } - -# define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \ - PEM_write_fnsig(name, type, FILE, write) \ - { \ - return PEM_ASN1_write((i2d_of_void *)i2d_##asn1, str, out, \ - x, NULL, NULL, 0, NULL, NULL); \ - } - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_fp(name, type, str, asn1) -# endif - -# define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \ - PEM_write_cb_fnsig(name, type, FILE, write) \ - { \ - return PEM_ASN1_write((i2d_of_void *)i2d_##asn1, str, out, \ - x, enc, kstr, klen, cb, u); \ - } - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) -# endif -# endif - -# define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ - type *PEM_read_bio_##name(BIO *bp, type **x, \ - pem_password_cb *cb, void *u) \ - { \ - return PEM_ASN1_read_bio((d2i_of_void *)d2i_##asn1, str, bp, \ - (void **)x, cb, u); \ - } - -# define IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ - PEM_write_fnsig(name, type, BIO, write_bio) \ - { \ - return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1, str, out, \ - x, NULL,NULL,0,NULL,NULL); \ - } - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_bio(name, type, str, asn1) -# endif - -# define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ - PEM_write_cb_fnsig(name, type, BIO, write_bio) \ - { \ - return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1, str, out, \ - x, enc, kstr, klen, cb, u); \ - } - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) -# endif - -# define IMPLEMENT_PEM_write(name, type, str, asn1) \ - IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_write_fp(name, type, str, asn1) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define IMPLEMENT_PEM_write_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) -# endif - -# define IMPLEMENT_PEM_write_cb(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define IMPLEMENT_PEM_write_cb_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) -# endif - -# define IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_read_fp(name, type, str, asn1) - -# define IMPLEMENT_PEM_rw(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write(name, type, str, asn1) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define IMPLEMENT_PEM_rw_const(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write_const(name, type, str, asn1) -# endif - -# define IMPLEMENT_PEM_rw_cb(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb(name, type, str, asn1) - -/* These are the same except they are for the declarations */ - -/* - * The mysterious 'extern' that's passed to some macros is innocuous, - * and is there to quiet pre-C99 compilers that may complain about empty - * arguments in macro calls. - */ -# if defined(OPENSSL_NO_STDIO) - -# define DECLARE_PEM_read_fp_attr(attr, name, type) /**/ -# define DECLARE_PEM_read_fp_ex_attr(attr, name, type) /**/ -# define DECLARE_PEM_write_fp_attr(attr, name, type) /**/ -# define DECLARE_PEM_write_fp_ex_attr(attr, name, type) /**/ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define DECLARE_PEM_write_fp_const_attr(attr, name, type) /**/ -# endif -# define DECLARE_PEM_write_cb_fp_attr(attr, name, type) /**/ -# define DECLARE_PEM_write_cb_fp_ex_attr(attr, name, type) /**/ - -# else - -# define DECLARE_PEM_read_fp_attr(attr, name, type) \ - attr PEM_read_cb_fnsig(name, type, FILE, read); -# define DECLARE_PEM_read_fp_ex_attr(attr, name, type) \ - attr PEM_read_cb_fnsig(name, type, FILE, read); \ - attr PEM_read_cb_ex_fnsig(name, type, FILE, read); - -# define DECLARE_PEM_write_fp_attr(attr, name, type) \ - attr PEM_write_fnsig(name, type, FILE, write); -# define DECLARE_PEM_write_fp_ex_attr(attr, name, type) \ - attr PEM_write_fnsig(name, type, FILE, write); \ - attr PEM_write_ex_fnsig(name, type, FILE, write); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define DECLARE_PEM_write_fp_const_attr(attr, name, type) \ - attr PEM_write_fnsig(name, type, FILE, write); -# endif -# define DECLARE_PEM_write_cb_fp_attr(attr, name, type) \ - attr PEM_write_cb_fnsig(name, type, FILE, write); -# define DECLARE_PEM_write_cb_fp_ex_attr(attr, name, type) \ - attr PEM_write_cb_fnsig(name, type, FILE, write); \ - attr PEM_write_cb_ex_fnsig(name, type, FILE, write); - -# endif - -# define DECLARE_PEM_read_fp(name, type) \ - DECLARE_PEM_read_fp_attr(extern, name, type) -# define DECLARE_PEM_write_fp(name, type) \ - DECLARE_PEM_write_fp_attr(extern, name, type) -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define DECLARE_PEM_write_fp_const(name, type) \ - DECLARE_PEM_write_fp_const_attr(extern, name, type) -# endif -# define DECLARE_PEM_write_cb_fp(name, type) \ - DECLARE_PEM_write_cb_fp_attr(extern, name, type) - -# define DECLARE_PEM_read_bio_attr(attr, name, type) \ - attr PEM_read_cb_fnsig(name, type, BIO, read_bio); -# define DECLARE_PEM_read_bio_ex_attr(attr, name, type) \ - attr PEM_read_cb_fnsig(name, type, BIO, read_bio); \ - attr PEM_read_cb_ex_fnsig(name, type, BIO, read_bio); -# define DECLARE_PEM_read_bio(name, type) \ - DECLARE_PEM_read_bio_attr(extern, name, type) -# define DECLARE_PEM_read_bio_ex(name, type) \ - DECLARE_PEM_read_bio_ex_attr(extern, name, type) - -# define DECLARE_PEM_write_bio_attr(attr, name, type) \ - attr PEM_write_fnsig(name, type, BIO, write_bio); -# define DECLARE_PEM_write_bio_ex_attr(attr, name, type) \ - attr PEM_write_fnsig(name, type, BIO, write_bio); \ - attr PEM_write_ex_fnsig(name, type, BIO, write_bio); -# define DECLARE_PEM_write_bio(name, type) \ - DECLARE_PEM_write_bio_attr(extern, name, type) -# define DECLARE_PEM_write_bio_ex(name, type) \ - DECLARE_PEM_write_bio_ex_attr(extern, name, type) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define DECLARE_PEM_write_bio_const_attr(attr, name, type) \ - attr PEM_write_fnsig(name, type, BIO, write_bio); -# define DECLARE_PEM_write_bio_const(name, type) \ - DECLARE_PEM_write_bio_const_attr(extern, name, type) -# endif - -# define DECLARE_PEM_write_cb_bio_attr(attr, name, type) \ - attr PEM_write_cb_fnsig(name, type, BIO, write_bio); -# define DECLARE_PEM_write_cb_bio_ex_attr(attr, name, type) \ - attr PEM_write_cb_fnsig(name, type, BIO, write_bio); \ - attr PEM_write_cb_ex_fnsig(name, type, BIO, write_bio); -# define DECLARE_PEM_write_cb_bio(name, type) \ - DECLARE_PEM_write_cb_bio_attr(extern, name, type) -# define DECLARE_PEM_write_cb_ex_bio(name, type) \ - DECLARE_PEM_write_cb_bio_ex_attr(extern, name, type) - -# define DECLARE_PEM_write_attr(attr, name, type) \ - DECLARE_PEM_write_bio_attr(attr, name, type) \ - DECLARE_PEM_write_fp_attr(attr, name, type) -# define DECLARE_PEM_write_ex_attr(attr, name, type) \ - DECLARE_PEM_write_bio_ex_attr(attr, name, type) \ - DECLARE_PEM_write_fp_ex_attr(attr, name, type) -# define DECLARE_PEM_write(name, type) \ - DECLARE_PEM_write_attr(extern, name, type) -# define DECLARE_PEM_write_ex(name, type) \ - DECLARE_PEM_write_ex_attr(extern, name, type) -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define DECLARE_PEM_write_const_attr(attr, name, type) \ - DECLARE_PEM_write_bio_const_attr(attr, name, type) \ - DECLARE_PEM_write_fp_const_attr(attr, name, type) -# define DECLARE_PEM_write_const(name, type) \ - DECLARE_PEM_write_const_attr(extern, name, type) -# endif -# define DECLARE_PEM_write_cb_attr(attr, name, type) \ - DECLARE_PEM_write_cb_bio_attr(attr, name, type) \ - DECLARE_PEM_write_cb_fp_attr(attr, name, type) -# define DECLARE_PEM_write_cb_ex_attr(attr, name, type) \ - DECLARE_PEM_write_cb_bio_ex_attr(attr, name, type) \ - DECLARE_PEM_write_cb_fp_ex_attr(attr, name, type) -# define DECLARE_PEM_write_cb(name, type) \ - DECLARE_PEM_write_cb_attr(extern, name, type) -# define DECLARE_PEM_write_cb_ex(name, type) \ - DECLARE_PEM_write_cb_ex_attr(extern, name, type) -# define DECLARE_PEM_read_attr(attr, name, type) \ - DECLARE_PEM_read_bio_attr(attr, name, type) \ - DECLARE_PEM_read_fp_attr(attr, name, type) -# define DECLARE_PEM_read_ex_attr(attr, name, type) \ - DECLARE_PEM_read_bio_ex_attr(attr, name, type) \ - DECLARE_PEM_read_fp_ex_attr(attr, name, type) -# define DECLARE_PEM_read(name, type) \ - DECLARE_PEM_read_attr(extern, name, type) -# define DECLARE_PEM_read_ex(name, type) \ - DECLARE_PEM_read_ex_attr(extern, name, type) -# define DECLARE_PEM_rw_attr(attr, name, type) \ - DECLARE_PEM_read_attr(attr, name, type) \ - DECLARE_PEM_write_attr(attr, name, type) -# define DECLARE_PEM_rw_ex_attr(attr, name, type) \ - DECLARE_PEM_read_ex_attr(attr, name, type) \ - DECLARE_PEM_write_ex_attr(attr, name, type) -# define DECLARE_PEM_rw(name, type) \ - DECLARE_PEM_rw_attr(extern, name, type) -# define DECLARE_PEM_rw_ex(name, type) \ - DECLARE_PEM_rw_ex_attr(extern, name, type) -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define DECLARE_PEM_rw_const_attr(attr, name, type) \ - DECLARE_PEM_read_attr(attr, name, type) \ - DECLARE_PEM_write_const_attr(attr, name, type) -# define DECLARE_PEM_rw_const(name, type) \ - DECLARE_PEM_rw_const_attr(extern, name, type) -# endif -# define DECLARE_PEM_rw_cb_attr(attr, name, type) \ - DECLARE_PEM_read_attr(attr, name, type) \ - DECLARE_PEM_write_cb_attr(attr, name, type) -# define DECLARE_PEM_rw_cb_ex_attr(attr, name, type) \ - DECLARE_PEM_read_ex_attr(attr, name, type) \ - DECLARE_PEM_write_cb_ex_attr(attr, name, type) -# define DECLARE_PEM_rw_cb(name, type) \ - DECLARE_PEM_rw_cb_attr(extern, name, type) -# define DECLARE_PEM_rw_cb_ex(name, type) \ - DECLARE_PEM_rw_cb_ex_attr(extern, name, type) - -int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher); -int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *len, - pem_password_cb *callback, void *u); - -int PEM_read_bio(BIO *bp, char **name, char **header, - unsigned char **data, long *len); -# define PEM_FLAG_SECURE 0x1 -# define PEM_FLAG_EAY_COMPATIBLE 0x2 -# define PEM_FLAG_ONLY_B64 0x4 -int PEM_read_bio_ex(BIO *bp, char **name, char **header, - unsigned char **data, long *len, unsigned int flags); -int PEM_bytes_read_bio_secmem(unsigned char **pdata, long *plen, char **pnm, - const char *name, BIO *bp, pem_password_cb *cb, - void *u); -int PEM_write_bio(BIO *bp, const char *name, const char *hdr, - const unsigned char *data, long len); -int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, - const char *name, BIO *bp, pem_password_cb *cb, - void *u); -void *PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, void **x, - pem_password_cb *cb, void *u); -int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, - const void *x, const EVP_CIPHER *enc, - const unsigned char *kstr, int klen, - pem_password_cb *cb, void *u); -int PEM_ASN1_write_bio_ctx(OSSL_i2d_of_void_ctx *i2d, void *vctx, - const char *name, BIO *bp, const void *x, - const EVP_CIPHER *enc, const unsigned char *kstr, - int klen, pem_password_cb *cb, void *u); - -STACK_OF(X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, - pem_password_cb *cb, void *u); -STACK_OF(X509_INFO) -*PEM_X509_INFO_read_bio_ex(BIO *bp, STACK_OF(X509_INFO) *sk, - pem_password_cb *cb, void *u, OSSL_LIB_CTX *libctx, - const char *propq); - -int PEM_X509_INFO_write_bio(BIO *bp, const X509_INFO *xi, EVP_CIPHER *enc, - const unsigned char *kstr, int klen, - pem_password_cb *cd, void *u); - -#ifndef OPENSSL_NO_STDIO -int PEM_read(FILE *fp, char **name, char **header, - unsigned char **data, long *len); -int PEM_write(FILE *fp, const char *name, const char *hdr, - const unsigned char *data, long len); -void *PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, - pem_password_cb *cb, void *u); -int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, - const void *x, const EVP_CIPHER *enc, - const unsigned char *kstr, int klen, - pem_password_cb *callback, void *u); -STACK_OF(X509_INFO) *PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk, - pem_password_cb *cb, void *u); -STACK_OF(X509_INFO) -*PEM_X509_INFO_read_ex(FILE *fp, STACK_OF(X509_INFO) *sk, pem_password_cb *cb, - void *u, OSSL_LIB_CTX *libctx, const char *propq); -#endif - -int PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type); -int PEM_SignUpdate(EVP_MD_CTX *ctx, const unsigned char *d, unsigned int cnt); -int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, - unsigned int *siglen, EVP_PKEY *pkey); - -/* The default pem_password_cb that's used internally */ -int PEM_def_callback(char *buf, int num, int rwflag, void *userdata); -void PEM_proc_type(char *buf, int type); -void PEM_dek_info(char *buf, const char *type, int len, const char *str); - -# include - -DECLARE_PEM_rw(X509, X509) -DECLARE_PEM_rw(X509_AUX, X509) -DECLARE_PEM_rw(X509_REQ, X509_REQ) -DECLARE_PEM_write(X509_REQ_NEW, X509_REQ) -DECLARE_PEM_rw(X509_CRL, X509_CRL) -DECLARE_PEM_rw(X509_PUBKEY, X509_PUBKEY) -DECLARE_PEM_rw(PKCS7, PKCS7) -DECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE) -DECLARE_PEM_rw(PKCS8, X509_SIG) -DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO) -# ifndef OPENSSL_NO_DEPRECATED_3_0 -DECLARE_PEM_rw_cb_attr(OSSL_DEPRECATEDIN_3_0, RSAPrivateKey, RSA) -DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, RSAPublicKey, RSA) -DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, RSA_PUBKEY, RSA) -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_DSA -DECLARE_PEM_rw_cb_attr(OSSL_DEPRECATEDIN_3_0, DSAPrivateKey, DSA) -DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, DSA_PUBKEY, DSA) -DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, DSAparams, DSA) -# endif -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_EC -DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, ECPKParameters, EC_GROUP) -DECLARE_PEM_rw_cb_attr(OSSL_DEPRECATEDIN_3_0, ECPrivateKey, EC_KEY) -DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, EC_PUBKEY, EC_KEY) -# endif -# endif - -# ifndef OPENSSL_NO_DH -# ifndef OPENSSL_NO_DEPRECATED_3_0 -DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, DHparams, DH) -DECLARE_PEM_write_attr(OSSL_DEPRECATEDIN_3_0, DHxparams, DH) -# endif -# endif -DECLARE_PEM_rw_cb_ex(PrivateKey, EVP_PKEY) -DECLARE_PEM_rw_ex(PUBKEY, EVP_PKEY) - -int PEM_write_bio_PrivateKey_traditional(BIO *bp, const EVP_PKEY *x, - const EVP_CIPHER *enc, - const unsigned char *kstr, int klen, - pem_password_cb *cb, void *u); - -/* Why do these take a signed char *kstr? */ -int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, const EVP_PKEY *x, int nid, - const char *kstr, int klen, - pem_password_cb *cb, void *u); -int PEM_write_bio_PKCS8PrivateKey(BIO *, const EVP_PKEY *, const EVP_CIPHER *, - const char *kstr, int klen, - pem_password_cb *cb, void *u); -int i2d_PKCS8PrivateKey_bio(BIO *bp, const EVP_PKEY *x, const EVP_CIPHER *enc, - const char *kstr, int klen, - pem_password_cb *cb, void *u); -int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, const EVP_PKEY *x, int nid, - const char *kstr, int klen, - pem_password_cb *cb, void *u); -EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, - void *u); - -# ifndef OPENSSL_NO_STDIO -int i2d_PKCS8PrivateKey_fp(FILE *fp, const EVP_PKEY *x, const EVP_CIPHER *enc, - const char *kstr, int klen, - pem_password_cb *cb, void *u); -int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, const EVP_PKEY *x, int nid, - const char *kstr, int klen, - pem_password_cb *cb, void *u); -int PEM_write_PKCS8PrivateKey_nid(FILE *fp, const EVP_PKEY *x, int nid, - const char *kstr, int klen, - pem_password_cb *cb, void *u); - -EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, - void *u); - -int PEM_write_PKCS8PrivateKey(FILE *fp, const EVP_PKEY *x, const EVP_CIPHER *enc, - const char *kstr, int klen, - pem_password_cb *cd, void *u); -# endif -EVP_PKEY *PEM_read_bio_Parameters_ex(BIO *bp, EVP_PKEY **x, - OSSL_LIB_CTX *libctx, const char *propq); -EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x); -int PEM_write_bio_Parameters(BIO *bp, const EVP_PKEY *x); - -EVP_PKEY *b2i_PrivateKey(const unsigned char **in, long length); -EVP_PKEY *b2i_PublicKey(const unsigned char **in, long length); -EVP_PKEY *b2i_PrivateKey_bio(BIO *in); -EVP_PKEY *b2i_PublicKey_bio(BIO *in); -int i2b_PrivateKey_bio(BIO *out, const EVP_PKEY *pk); -int i2b_PublicKey_bio(BIO *out, const EVP_PKEY *pk); -EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u); -EVP_PKEY *b2i_PVK_bio_ex(BIO *in, pem_password_cb *cb, void *u, - OSSL_LIB_CTX *libctx, const char *propq); -int i2b_PVK_bio(BIO *out, const EVP_PKEY *pk, int enclevel, - pem_password_cb *cb, void *u); -int i2b_PVK_bio_ex(BIO *out, const EVP_PKEY *pk, int enclevel, - pem_password_cb *cb, void *u, - OSSL_LIB_CTX *libctx, const char *propq); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/pem2.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/pem2.h deleted file mode 100644 index a8a5325..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/pem2.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PEM2_H -# define OPENSSL_PEM2_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_PEM2_H -# endif -# include -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/pemerr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/pemerr.h deleted file mode 100644 index 3530775..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/pemerr.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PEMERR_H -# define OPENSSL_PEMERR_H -# pragma once - -# include -# include -# include - - - -/* - * PEM reason codes. - */ -# define PEM_R_BAD_BASE64_DECODE 100 -# define PEM_R_BAD_DECRYPT 101 -# define PEM_R_BAD_END_LINE 102 -# define PEM_R_BAD_IV_CHARS 103 -# define PEM_R_BAD_MAGIC_NUMBER 116 -# define PEM_R_BAD_PASSWORD_READ 104 -# define PEM_R_BAD_VERSION_NUMBER 117 -# define PEM_R_BIO_WRITE_FAILURE 118 -# define PEM_R_CIPHER_IS_NULL 127 -# define PEM_R_ERROR_CONVERTING_PRIVATE_KEY 115 -# define PEM_R_EXPECTING_DSS_KEY_BLOB 131 -# define PEM_R_EXPECTING_PRIVATE_KEY_BLOB 119 -# define PEM_R_EXPECTING_PUBLIC_KEY_BLOB 120 -# define PEM_R_EXPECTING_RSA_KEY_BLOB 132 -# define PEM_R_HEADER_TOO_LONG 128 -# define PEM_R_INCONSISTENT_HEADER 121 -# define PEM_R_KEYBLOB_HEADER_PARSE_ERROR 122 -# define PEM_R_KEYBLOB_TOO_SHORT 123 -# define PEM_R_MISSING_DEK_IV 129 -# define PEM_R_NOT_DEK_INFO 105 -# define PEM_R_NOT_ENCRYPTED 106 -# define PEM_R_NOT_PROC_TYPE 107 -# define PEM_R_NO_START_LINE 108 -# define PEM_R_PROBLEMS_GETTING_PASSWORD 109 -# define PEM_R_PVK_DATA_TOO_SHORT 124 -# define PEM_R_PVK_TOO_SHORT 125 -# define PEM_R_READ_KEY 111 -# define PEM_R_SHORT_HEADER 112 -# define PEM_R_UNEXPECTED_DEK_IV 130 -# define PEM_R_UNSUPPORTED_CIPHER 113 -# define PEM_R_UNSUPPORTED_ENCRYPTION 114 -# define PEM_R_UNSUPPORTED_KEY_COMPONENTS 126 -# define PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE 110 -# define PEM_R_UNSUPPORTED_PVK_KEY_TYPE 133 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/pkcs12.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/pkcs12.h deleted file mode 100644 index 0358577..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/pkcs12.h +++ /dev/null @@ -1,372 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\pkcs12.h.in - * - * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_PKCS12_H -# define OPENSSL_PKCS12_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_PKCS12_H -# endif - -# include -# include -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define PKCS12_KEY_ID 1 -# define PKCS12_IV_ID 2 -# define PKCS12_MAC_ID 3 - -/* Default iteration count */ -# ifndef PKCS12_DEFAULT_ITER -# define PKCS12_DEFAULT_ITER PKCS5_DEFAULT_ITER -# endif - -# define PKCS12_MAC_KEY_LENGTH 20 - -/* - * The macro is expected to be used only internally. Kept for - * backwards compatibility. NIST requires 16, previous value was - * 8. Allow to override this at compile time. - */ -# ifndef PKCS12_SALT_LEN -# define PKCS12_SALT_LEN 16 -# endif - -/* It's not clear if these are actually needed... */ -# define PKCS12_key_gen PKCS12_key_gen_utf8 -# define PKCS12_add_friendlyname PKCS12_add_friendlyname_utf8 - -/* MS key usage constants */ - -# define KEY_EX 0x10 -# define KEY_SIG 0x80 - -typedef struct PKCS12_MAC_DATA_st PKCS12_MAC_DATA; - -typedef struct PKCS12_st PKCS12; - -typedef struct PKCS12_SAFEBAG_st PKCS12_SAFEBAG; - -SKM_DEFINE_STACK_OF_INTERNAL(PKCS12_SAFEBAG, PKCS12_SAFEBAG, PKCS12_SAFEBAG) -#define sk_PKCS12_SAFEBAG_num(sk) OPENSSL_sk_num(ossl_check_const_PKCS12_SAFEBAG_sk_type(sk)) -#define sk_PKCS12_SAFEBAG_value(sk, idx) ((PKCS12_SAFEBAG *)OPENSSL_sk_value(ossl_check_const_PKCS12_SAFEBAG_sk_type(sk), (idx))) -#define sk_PKCS12_SAFEBAG_new(cmp) ((STACK_OF(PKCS12_SAFEBAG) *)OPENSSL_sk_new(ossl_check_PKCS12_SAFEBAG_compfunc_type(cmp))) -#define sk_PKCS12_SAFEBAG_new_null() ((STACK_OF(PKCS12_SAFEBAG) *)OPENSSL_sk_new_null()) -#define sk_PKCS12_SAFEBAG_new_reserve(cmp, n) ((STACK_OF(PKCS12_SAFEBAG) *)OPENSSL_sk_new_reserve(ossl_check_PKCS12_SAFEBAG_compfunc_type(cmp), (n))) -#define sk_PKCS12_SAFEBAG_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_PKCS12_SAFEBAG_sk_type(sk), (n)) -#define sk_PKCS12_SAFEBAG_free(sk) OPENSSL_sk_free(ossl_check_PKCS12_SAFEBAG_sk_type(sk)) -#define sk_PKCS12_SAFEBAG_zero(sk) OPENSSL_sk_zero(ossl_check_PKCS12_SAFEBAG_sk_type(sk)) -#define sk_PKCS12_SAFEBAG_delete(sk, i) ((PKCS12_SAFEBAG *)OPENSSL_sk_delete(ossl_check_PKCS12_SAFEBAG_sk_type(sk), (i))) -#define sk_PKCS12_SAFEBAG_delete_ptr(sk, ptr) ((PKCS12_SAFEBAG *)OPENSSL_sk_delete_ptr(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr))) -#define sk_PKCS12_SAFEBAG_push(sk, ptr) OPENSSL_sk_push(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr)) -#define sk_PKCS12_SAFEBAG_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr)) -#define sk_PKCS12_SAFEBAG_pop(sk) ((PKCS12_SAFEBAG *)OPENSSL_sk_pop(ossl_check_PKCS12_SAFEBAG_sk_type(sk))) -#define sk_PKCS12_SAFEBAG_shift(sk) ((PKCS12_SAFEBAG *)OPENSSL_sk_shift(ossl_check_PKCS12_SAFEBAG_sk_type(sk))) -#define sk_PKCS12_SAFEBAG_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_freefunc_type(freefunc)) -#define sk_PKCS12_SAFEBAG_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr), (idx)) -#define sk_PKCS12_SAFEBAG_set(sk, idx, ptr) ((PKCS12_SAFEBAG *)OPENSSL_sk_set(ossl_check_PKCS12_SAFEBAG_sk_type(sk), (idx), ossl_check_PKCS12_SAFEBAG_type(ptr))) -#define sk_PKCS12_SAFEBAG_find(sk, ptr) OPENSSL_sk_find(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr)) -#define sk_PKCS12_SAFEBAG_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr)) -#define sk_PKCS12_SAFEBAG_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr), pnum) -#define sk_PKCS12_SAFEBAG_sort(sk) OPENSSL_sk_sort(ossl_check_PKCS12_SAFEBAG_sk_type(sk)) -#define sk_PKCS12_SAFEBAG_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_PKCS12_SAFEBAG_sk_type(sk)) -#define sk_PKCS12_SAFEBAG_dup(sk) ((STACK_OF(PKCS12_SAFEBAG) *)OPENSSL_sk_dup(ossl_check_const_PKCS12_SAFEBAG_sk_type(sk))) -#define sk_PKCS12_SAFEBAG_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(PKCS12_SAFEBAG) *)OPENSSL_sk_deep_copy(ossl_check_const_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_copyfunc_type(copyfunc), ossl_check_PKCS12_SAFEBAG_freefunc_type(freefunc))) -#define sk_PKCS12_SAFEBAG_set_cmp_func(sk, cmp) ((sk_PKCS12_SAFEBAG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_compfunc_type(cmp))) - - -typedef struct pkcs12_bag_st PKCS12_BAGS; - -# define PKCS12_ERROR 0 -# define PKCS12_OK 1 - -/* Compatibility macros */ - -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 - -# define M_PKCS12_bag_type PKCS12_bag_type -# define M_PKCS12_cert_bag_type PKCS12_cert_bag_type -# define M_PKCS12_crl_bag_type PKCS12_cert_bag_type - -# define PKCS12_certbag2x509 PKCS12_SAFEBAG_get1_cert -# define PKCS12_certbag2scrl PKCS12_SAFEBAG_get1_crl -# define PKCS12_bag_type PKCS12_SAFEBAG_get_nid -# define PKCS12_cert_bag_type PKCS12_SAFEBAG_get_bag_nid -# define PKCS12_x5092certbag PKCS12_SAFEBAG_create_cert -# define PKCS12_x509crl2certbag PKCS12_SAFEBAG_create_crl -# define PKCS12_MAKE_KEYBAG PKCS12_SAFEBAG_create0_p8inf -# define PKCS12_MAKE_SHKEYBAG PKCS12_SAFEBAG_create_pkcs8_encrypt - -#endif -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 ASN1_TYPE *PKCS12_get_attr(const PKCS12_SAFEBAG *bag, - int attr_nid); -#endif - -ASN1_TYPE *PKCS8_get_attr(PKCS8_PRIV_KEY_INFO *p8, int attr_nid); -int PKCS12_mac_present(const PKCS12 *p12); -void PKCS12_get0_mac(const ASN1_OCTET_STRING **pmac, - const X509_ALGOR **pmacalg, - const ASN1_OCTET_STRING **psalt, - const ASN1_INTEGER **piter, - const PKCS12 *p12); - -const ASN1_TYPE *PKCS12_SAFEBAG_get0_attr(const PKCS12_SAFEBAG *bag, - int attr_nid); -const ASN1_OBJECT *PKCS12_SAFEBAG_get0_type(const PKCS12_SAFEBAG *bag); -int PKCS12_SAFEBAG_get_nid(const PKCS12_SAFEBAG *bag); -int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); -const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); -const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); - -X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); -X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); -X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); -X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); -const STACK_OF(PKCS12_SAFEBAG) * -PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); -const PKCS8_PRIV_KEY_INFO *PKCS12_SAFEBAG_get0_p8inf(const PKCS12_SAFEBAG *bag); -const X509_SIG *PKCS12_SAFEBAG_get0_pkcs8(const PKCS12_SAFEBAG *bag); - -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_cert(X509 *x509); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_crl(X509_CRL *crl); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_secret(int type, int vtype, const unsigned char *value, int len); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_p8inf(PKCS8_PRIV_KEY_INFO *p8); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_pkcs8(X509_SIG *p8); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt(int pbe_nid, - const char *pass, - int passlen, - unsigned char *salt, - int saltlen, int iter, - PKCS8_PRIV_KEY_INFO *p8inf); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt_ex(int pbe_nid, - const char *pass, - int passlen, - unsigned char *salt, - int saltlen, int iter, - PKCS8_PRIV_KEY_INFO *p8inf, - OSSL_LIB_CTX *ctx, - const char *propq); - -PKCS12_SAFEBAG *PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, - int nid1, int nid2); -PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(const X509_SIG *p8, const char *pass, - int passlen); -PKCS8_PRIV_KEY_INFO *PKCS8_decrypt_ex(const X509_SIG *p8, const char *pass, - int passlen, OSSL_LIB_CTX *ctx, - const char *propq); -PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(const PKCS12_SAFEBAG *bag, - const char *pass, int passlen); -PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey_ex(const PKCS12_SAFEBAG *bag, - const char *pass, int passlen, - OSSL_LIB_CTX *ctx, - const char *propq); -X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher, - const char *pass, int passlen, unsigned char *salt, - int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8); -X509_SIG *PKCS8_encrypt_ex(int pbe_nid, const EVP_CIPHER *cipher, - const char *pass, int passlen, unsigned char *salt, - int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8, - OSSL_LIB_CTX *ctx, const char *propq); -X509_SIG *PKCS8_set0_pbe(const char *pass, int passlen, - PKCS8_PRIV_KEY_INFO *p8inf, X509_ALGOR *pbe); -X509_SIG *PKCS8_set0_pbe_ex(const char *pass, int passlen, - PKCS8_PRIV_KEY_INFO *p8inf, X509_ALGOR *pbe, - OSSL_LIB_CTX *ctx, const char *propq); -PKCS7 *PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk); -STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7data(PKCS7 *p7); -PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen, - unsigned char *salt, int saltlen, int iter, - STACK_OF(PKCS12_SAFEBAG) *bags); -PKCS7 *PKCS12_pack_p7encdata_ex(int pbe_nid, const char *pass, int passlen, - unsigned char *salt, int saltlen, int iter, - STACK_OF(PKCS12_SAFEBAG) *bags, - OSSL_LIB_CTX *ctx, const char *propq); - -STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7encdata(PKCS7 *p7, const char *pass, - int passlen); - -int PKCS12_pack_authsafes(PKCS12 *p12, STACK_OF(PKCS7) *safes); -STACK_OF(PKCS7) *PKCS12_unpack_authsafes(const PKCS12 *p12); - -int PKCS12_add_localkeyid(PKCS12_SAFEBAG *bag, unsigned char *name, - int namelen); -int PKCS12_add_friendlyname_asc(PKCS12_SAFEBAG *bag, const char *name, - int namelen); -int PKCS12_add_friendlyname_utf8(PKCS12_SAFEBAG *bag, const char *name, - int namelen); -int PKCS12_add_CSPName_asc(PKCS12_SAFEBAG *bag, const char *name, - int namelen); -int PKCS12_add_friendlyname_uni(PKCS12_SAFEBAG *bag, - const unsigned char *name, int namelen); -int PKCS12_add1_attr_by_NID(PKCS12_SAFEBAG *bag, int nid, int type, - const unsigned char *bytes, int len); -int PKCS12_add1_attr_by_txt(PKCS12_SAFEBAG *bag, const char *attrname, int type, - const unsigned char *bytes, int len); -int PKCS8_add_keyusage(PKCS8_PRIV_KEY_INFO *p8, int usage); -ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, - int attr_nid); -char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); -const STACK_OF(X509_ATTRIBUTE) * -PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); -void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); -unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, - const char *pass, int passlen, - const unsigned char *in, int inlen, - unsigned char **data, int *datalen, - int en_de); -unsigned char *PKCS12_pbe_crypt_ex(const X509_ALGOR *algor, - const char *pass, int passlen, - const unsigned char *in, int inlen, - unsigned char **data, int *datalen, - int en_de, OSSL_LIB_CTX *libctx, - const char *propq); -void *PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM *it, - const char *pass, int passlen, - const ASN1_OCTET_STRING *oct, int zbuf); -void *PKCS12_item_decrypt_d2i_ex(const X509_ALGOR *algor, const ASN1_ITEM *it, - const char *pass, int passlen, - const ASN1_OCTET_STRING *oct, int zbuf, - OSSL_LIB_CTX *libctx, - const char *propq); -ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor, - const ASN1_ITEM *it, - const char *pass, int passlen, - void *obj, int zbuf); -ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt_ex(X509_ALGOR *algor, - const ASN1_ITEM *it, - const char *pass, int passlen, - void *obj, int zbuf, - OSSL_LIB_CTX *ctx, - const char *propq); -PKCS12 *PKCS12_init(int mode); -PKCS12 *PKCS12_init_ex(int mode, OSSL_LIB_CTX *ctx, const char *propq); - -int PKCS12_key_gen_asc(const char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type); -int PKCS12_key_gen_asc_ex(const char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type, - OSSL_LIB_CTX *ctx, const char *propq); -int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type); -int PKCS12_key_gen_uni_ex(unsigned char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type, - OSSL_LIB_CTX *ctx, const char *propq); -int PKCS12_key_gen_utf8(const char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type); -int PKCS12_key_gen_utf8_ex(const char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type, - OSSL_LIB_CTX *ctx, const char *propq); - -int PKCS12_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md_type, int en_de); -int PKCS12_PBE_keyivgen_ex(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md_type, int en_de, - OSSL_LIB_CTX *libctx, const char *propq); -int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen, - unsigned char *mac, unsigned int *maclen); -int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); -int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, - unsigned char *salt, int saltlen, int iter, - const EVP_MD *md_type); -int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, - unsigned char *salt, int saltlen, int iter, - const EVP_MD *md_type, const char *prf_md_name); -int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, - int saltlen, const EVP_MD *md_type); -unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, - unsigned char **uni, int *unilen); -char *OPENSSL_uni2asc(const unsigned char *uni, int unilen); -unsigned char *OPENSSL_utf82uni(const char *asc, int asclen, - unsigned char **uni, int *unilen); -char *OPENSSL_uni2utf8(const unsigned char *uni, int unilen); - -DECLARE_ASN1_FUNCTIONS(PKCS12) -DECLARE_ASN1_FUNCTIONS(PKCS12_MAC_DATA) -DECLARE_ASN1_FUNCTIONS(PKCS12_SAFEBAG) -DECLARE_ASN1_FUNCTIONS(PKCS12_BAGS) - -DECLARE_ASN1_ITEM(PKCS12_SAFEBAGS) -DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) - -void PKCS12_PBE_add(void); -int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, - STACK_OF(X509) **ca); -typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); -PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, - X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, - int iter, int mac_iter, int keytype); -PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, - X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, - int iter, int mac_iter, int keytype, - OSSL_LIB_CTX *ctx, const char *propq); -PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, - X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, - int iter, int mac_iter, int keytype, - OSSL_LIB_CTX *ctx, const char *propq, - PKCS12_create_cb *cb, void *cbarg); - -PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); -PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, - EVP_PKEY *key, int key_usage, int iter, - int key_nid, const char *pass); -PKCS12_SAFEBAG *PKCS12_add_key_ex(STACK_OF(PKCS12_SAFEBAG) **pbags, - EVP_PKEY *key, int key_usage, int iter, - int key_nid, const char *pass, - OSSL_LIB_CTX *ctx, const char *propq); - -PKCS12_SAFEBAG *PKCS12_add_secret(STACK_OF(PKCS12_SAFEBAG) **pbags, - int nid_type, const unsigned char *value, int len); -int PKCS12_add_safe(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags, - int safe_nid, int iter, const char *pass); -int PKCS12_add_safe_ex(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags, - int safe_nid, int iter, const char *pass, - OSSL_LIB_CTX *ctx, const char *propq); - -PKCS12 *PKCS12_add_safes(STACK_OF(PKCS7) *safes, int p7_nid); -PKCS12 *PKCS12_add_safes_ex(STACK_OF(PKCS7) *safes, int p7_nid, - OSSL_LIB_CTX *ctx, const char *propq); - -int i2d_PKCS12_bio(BIO *bp, const PKCS12 *p12); -# ifndef OPENSSL_NO_STDIO -int i2d_PKCS12_fp(FILE *fp, const PKCS12 *p12); -# endif -PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12); -# ifndef OPENSSL_NO_STDIO -PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12); -# endif -int PKCS12_newpass(PKCS12 *p12, const char *oldpass, const char *newpass); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/pkcs12err.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/pkcs12err.h deleted file mode 100644 index abce373..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/pkcs12err.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PKCS12ERR_H -# define OPENSSL_PKCS12ERR_H -# pragma once - -# include -# include -# include - - - -/* - * PKCS12 reason codes. - */ -# define PKCS12_R_CALLBACK_FAILED 115 -# define PKCS12_R_CANT_PACK_STRUCTURE 100 -# define PKCS12_R_CONTENT_TYPE_NOT_DATA 121 -# define PKCS12_R_DECODE_ERROR 101 -# define PKCS12_R_ENCODE_ERROR 102 -# define PKCS12_R_ENCRYPT_ERROR 103 -# define PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE 120 -# define PKCS12_R_INVALID_NULL_ARGUMENT 104 -# define PKCS12_R_INVALID_NULL_PKCS12_POINTER 105 -# define PKCS12_R_INVALID_TYPE 112 -# define PKCS12_R_IV_GEN_ERROR 106 -# define PKCS12_R_KEY_GEN_ERROR 107 -# define PKCS12_R_MAC_ABSENT 108 -# define PKCS12_R_MAC_GENERATION_ERROR 109 -# define PKCS12_R_MAC_SETUP_ERROR 110 -# define PKCS12_R_MAC_STRING_SET_ERROR 111 -# define PKCS12_R_MAC_VERIFY_FAILURE 113 -# define PKCS12_R_PARSE_ERROR 114 -# define PKCS12_R_PKCS12_CIPHERFINAL_ERROR 116 -# define PKCS12_R_UNKNOWN_DIGEST_ALGORITHM 118 -# define PKCS12_R_UNSUPPORTED_PKCS12_MODE 119 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/pkcs7.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/pkcs7.h deleted file mode 100644 index 4a6f157..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/pkcs7.h +++ /dev/null @@ -1,430 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\pkcs7.h.in - * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_PKCS7_H -# define OPENSSL_PKCS7_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_PKCS7_H -# endif - -# include -# include -# include - -# include -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/*- -Encryption_ID DES-CBC -Digest_ID MD5 -Digest_Encryption_ID rsaEncryption -Key_Encryption_ID rsaEncryption -*/ - -typedef struct PKCS7_CTX_st { - OSSL_LIB_CTX *libctx; - char *propq; -} PKCS7_CTX; - -typedef struct pkcs7_issuer_and_serial_st { - X509_NAME *issuer; - ASN1_INTEGER *serial; -} PKCS7_ISSUER_AND_SERIAL; - -typedef struct pkcs7_signer_info_st { - ASN1_INTEGER *version; /* version 1 */ - PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; - X509_ALGOR *digest_alg; - STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ - ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ - STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ - /* The private key to sign with */ - EVP_PKEY *pkey; - const PKCS7_CTX *ctx; -} PKCS7_SIGNER_INFO; -SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_SIGNER_INFO, PKCS7_SIGNER_INFO, PKCS7_SIGNER_INFO) -#define sk_PKCS7_SIGNER_INFO_num(sk) OPENSSL_sk_num(ossl_check_const_PKCS7_SIGNER_INFO_sk_type(sk)) -#define sk_PKCS7_SIGNER_INFO_value(sk, idx) ((PKCS7_SIGNER_INFO *)OPENSSL_sk_value(ossl_check_const_PKCS7_SIGNER_INFO_sk_type(sk), (idx))) -#define sk_PKCS7_SIGNER_INFO_new(cmp) ((STACK_OF(PKCS7_SIGNER_INFO) *)OPENSSL_sk_new(ossl_check_PKCS7_SIGNER_INFO_compfunc_type(cmp))) -#define sk_PKCS7_SIGNER_INFO_new_null() ((STACK_OF(PKCS7_SIGNER_INFO) *)OPENSSL_sk_new_null()) -#define sk_PKCS7_SIGNER_INFO_new_reserve(cmp, n) ((STACK_OF(PKCS7_SIGNER_INFO) *)OPENSSL_sk_new_reserve(ossl_check_PKCS7_SIGNER_INFO_compfunc_type(cmp), (n))) -#define sk_PKCS7_SIGNER_INFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), (n)) -#define sk_PKCS7_SIGNER_INFO_free(sk) OPENSSL_sk_free(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk)) -#define sk_PKCS7_SIGNER_INFO_zero(sk) OPENSSL_sk_zero(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk)) -#define sk_PKCS7_SIGNER_INFO_delete(sk, i) ((PKCS7_SIGNER_INFO *)OPENSSL_sk_delete(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), (i))) -#define sk_PKCS7_SIGNER_INFO_delete_ptr(sk, ptr) ((PKCS7_SIGNER_INFO *)OPENSSL_sk_delete_ptr(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr))) -#define sk_PKCS7_SIGNER_INFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr)) -#define sk_PKCS7_SIGNER_INFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr)) -#define sk_PKCS7_SIGNER_INFO_pop(sk) ((PKCS7_SIGNER_INFO *)OPENSSL_sk_pop(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk))) -#define sk_PKCS7_SIGNER_INFO_shift(sk) ((PKCS7_SIGNER_INFO *)OPENSSL_sk_shift(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk))) -#define sk_PKCS7_SIGNER_INFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_freefunc_type(freefunc)) -#define sk_PKCS7_SIGNER_INFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr), (idx)) -#define sk_PKCS7_SIGNER_INFO_set(sk, idx, ptr) ((PKCS7_SIGNER_INFO *)OPENSSL_sk_set(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), (idx), ossl_check_PKCS7_SIGNER_INFO_type(ptr))) -#define sk_PKCS7_SIGNER_INFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr)) -#define sk_PKCS7_SIGNER_INFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr)) -#define sk_PKCS7_SIGNER_INFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr), pnum) -#define sk_PKCS7_SIGNER_INFO_sort(sk) OPENSSL_sk_sort(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk)) -#define sk_PKCS7_SIGNER_INFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_PKCS7_SIGNER_INFO_sk_type(sk)) -#define sk_PKCS7_SIGNER_INFO_dup(sk) ((STACK_OF(PKCS7_SIGNER_INFO) *)OPENSSL_sk_dup(ossl_check_const_PKCS7_SIGNER_INFO_sk_type(sk))) -#define sk_PKCS7_SIGNER_INFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(PKCS7_SIGNER_INFO) *)OPENSSL_sk_deep_copy(ossl_check_const_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_copyfunc_type(copyfunc), ossl_check_PKCS7_SIGNER_INFO_freefunc_type(freefunc))) -#define sk_PKCS7_SIGNER_INFO_set_cmp_func(sk, cmp) ((sk_PKCS7_SIGNER_INFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_compfunc_type(cmp))) - - -typedef struct pkcs7_recip_info_st { - ASN1_INTEGER *version; /* version 0 */ - PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; - X509_ALGOR *key_enc_algor; - ASN1_OCTET_STRING *enc_key; - X509 *cert; /* get the pub-key from this */ - const PKCS7_CTX *ctx; -} PKCS7_RECIP_INFO; -SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INFO) -#define sk_PKCS7_RECIP_INFO_num(sk) OPENSSL_sk_num(ossl_check_const_PKCS7_RECIP_INFO_sk_type(sk)) -#define sk_PKCS7_RECIP_INFO_value(sk, idx) ((PKCS7_RECIP_INFO *)OPENSSL_sk_value(ossl_check_const_PKCS7_RECIP_INFO_sk_type(sk), (idx))) -#define sk_PKCS7_RECIP_INFO_new(cmp) ((STACK_OF(PKCS7_RECIP_INFO) *)OPENSSL_sk_new(ossl_check_PKCS7_RECIP_INFO_compfunc_type(cmp))) -#define sk_PKCS7_RECIP_INFO_new_null() ((STACK_OF(PKCS7_RECIP_INFO) *)OPENSSL_sk_new_null()) -#define sk_PKCS7_RECIP_INFO_new_reserve(cmp, n) ((STACK_OF(PKCS7_RECIP_INFO) *)OPENSSL_sk_new_reserve(ossl_check_PKCS7_RECIP_INFO_compfunc_type(cmp), (n))) -#define sk_PKCS7_RECIP_INFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), (n)) -#define sk_PKCS7_RECIP_INFO_free(sk) OPENSSL_sk_free(ossl_check_PKCS7_RECIP_INFO_sk_type(sk)) -#define sk_PKCS7_RECIP_INFO_zero(sk) OPENSSL_sk_zero(ossl_check_PKCS7_RECIP_INFO_sk_type(sk)) -#define sk_PKCS7_RECIP_INFO_delete(sk, i) ((PKCS7_RECIP_INFO *)OPENSSL_sk_delete(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), (i))) -#define sk_PKCS7_RECIP_INFO_delete_ptr(sk, ptr) ((PKCS7_RECIP_INFO *)OPENSSL_sk_delete_ptr(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr))) -#define sk_PKCS7_RECIP_INFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr)) -#define sk_PKCS7_RECIP_INFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr)) -#define sk_PKCS7_RECIP_INFO_pop(sk) ((PKCS7_RECIP_INFO *)OPENSSL_sk_pop(ossl_check_PKCS7_RECIP_INFO_sk_type(sk))) -#define sk_PKCS7_RECIP_INFO_shift(sk) ((PKCS7_RECIP_INFO *)OPENSSL_sk_shift(ossl_check_PKCS7_RECIP_INFO_sk_type(sk))) -#define sk_PKCS7_RECIP_INFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_freefunc_type(freefunc)) -#define sk_PKCS7_RECIP_INFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr), (idx)) -#define sk_PKCS7_RECIP_INFO_set(sk, idx, ptr) ((PKCS7_RECIP_INFO *)OPENSSL_sk_set(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), (idx), ossl_check_PKCS7_RECIP_INFO_type(ptr))) -#define sk_PKCS7_RECIP_INFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr)) -#define sk_PKCS7_RECIP_INFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr)) -#define sk_PKCS7_RECIP_INFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr), pnum) -#define sk_PKCS7_RECIP_INFO_sort(sk) OPENSSL_sk_sort(ossl_check_PKCS7_RECIP_INFO_sk_type(sk)) -#define sk_PKCS7_RECIP_INFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_PKCS7_RECIP_INFO_sk_type(sk)) -#define sk_PKCS7_RECIP_INFO_dup(sk) ((STACK_OF(PKCS7_RECIP_INFO) *)OPENSSL_sk_dup(ossl_check_const_PKCS7_RECIP_INFO_sk_type(sk))) -#define sk_PKCS7_RECIP_INFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(PKCS7_RECIP_INFO) *)OPENSSL_sk_deep_copy(ossl_check_const_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_copyfunc_type(copyfunc), ossl_check_PKCS7_RECIP_INFO_freefunc_type(freefunc))) -#define sk_PKCS7_RECIP_INFO_set_cmp_func(sk, cmp) ((sk_PKCS7_RECIP_INFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_compfunc_type(cmp))) - - - -typedef struct pkcs7_signed_st { - ASN1_INTEGER *version; /* version 1 */ - STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ - STACK_OF(PKCS7_SIGNER_INFO) *signer_info; - struct pkcs7_st *contents; -} PKCS7_SIGNED; -/* - * The above structure is very very similar to PKCS7_SIGN_ENVELOPE. How about - * merging the two - */ - -typedef struct pkcs7_enc_content_st { - ASN1_OBJECT *content_type; - X509_ALGOR *algorithm; - ASN1_OCTET_STRING *enc_data; /* [ 0 ] */ - const EVP_CIPHER *cipher; - const PKCS7_CTX *ctx; -} PKCS7_ENC_CONTENT; - -typedef struct pkcs7_enveloped_st { - ASN1_INTEGER *version; /* version 0 */ - STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; - PKCS7_ENC_CONTENT *enc_data; -} PKCS7_ENVELOPE; - -typedef struct pkcs7_signedandenveloped_st { - ASN1_INTEGER *version; /* version 1 */ - STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ - STACK_OF(PKCS7_SIGNER_INFO) *signer_info; - PKCS7_ENC_CONTENT *enc_data; - STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; -} PKCS7_SIGN_ENVELOPE; - -typedef struct pkcs7_digest_st { - ASN1_INTEGER *version; /* version 0 */ - X509_ALGOR *md; /* md used */ - struct pkcs7_st *contents; - ASN1_OCTET_STRING *digest; -} PKCS7_DIGEST; - -typedef struct pkcs7_encrypted_st { - ASN1_INTEGER *version; /* version 0 */ - PKCS7_ENC_CONTENT *enc_data; -} PKCS7_ENCRYPT; - -typedef struct pkcs7_st { - /* - * The following is non NULL if it contains ASN1 encoding of this - * structure - */ - unsigned char *asn1; - long length; -# define PKCS7_S_HEADER 0 -# define PKCS7_S_BODY 1 -# define PKCS7_S_TAIL 2 - int state; /* used during processing */ - int detached; - ASN1_OBJECT *type; - /* content as defined by the type */ - /* - * all encryption/message digests are applied to the 'contents', leaving - * out the 'type' field. - */ - union { - char *ptr; - /* NID_pkcs7_data */ - ASN1_OCTET_STRING *data; - /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ - /* NID_pkcs7_enveloped */ - PKCS7_ENVELOPE *enveloped; - /* NID_pkcs7_signedAndEnveloped */ - PKCS7_SIGN_ENVELOPE *signed_and_enveloped; - /* NID_pkcs7_digest */ - PKCS7_DIGEST *digest; - /* NID_pkcs7_encrypted */ - PKCS7_ENCRYPT *encrypted; - /* Anything else */ - ASN1_TYPE *other; - } d; - PKCS7_CTX ctx; -} PKCS7; -SKM_DEFINE_STACK_OF_INTERNAL(PKCS7, PKCS7, PKCS7) -#define sk_PKCS7_num(sk) OPENSSL_sk_num(ossl_check_const_PKCS7_sk_type(sk)) -#define sk_PKCS7_value(sk, idx) ((PKCS7 *)OPENSSL_sk_value(ossl_check_const_PKCS7_sk_type(sk), (idx))) -#define sk_PKCS7_new(cmp) ((STACK_OF(PKCS7) *)OPENSSL_sk_new(ossl_check_PKCS7_compfunc_type(cmp))) -#define sk_PKCS7_new_null() ((STACK_OF(PKCS7) *)OPENSSL_sk_new_null()) -#define sk_PKCS7_new_reserve(cmp, n) ((STACK_OF(PKCS7) *)OPENSSL_sk_new_reserve(ossl_check_PKCS7_compfunc_type(cmp), (n))) -#define sk_PKCS7_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_PKCS7_sk_type(sk), (n)) -#define sk_PKCS7_free(sk) OPENSSL_sk_free(ossl_check_PKCS7_sk_type(sk)) -#define sk_PKCS7_zero(sk) OPENSSL_sk_zero(ossl_check_PKCS7_sk_type(sk)) -#define sk_PKCS7_delete(sk, i) ((PKCS7 *)OPENSSL_sk_delete(ossl_check_PKCS7_sk_type(sk), (i))) -#define sk_PKCS7_delete_ptr(sk, ptr) ((PKCS7 *)OPENSSL_sk_delete_ptr(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr))) -#define sk_PKCS7_push(sk, ptr) OPENSSL_sk_push(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr)) -#define sk_PKCS7_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr)) -#define sk_PKCS7_pop(sk) ((PKCS7 *)OPENSSL_sk_pop(ossl_check_PKCS7_sk_type(sk))) -#define sk_PKCS7_shift(sk) ((PKCS7 *)OPENSSL_sk_shift(ossl_check_PKCS7_sk_type(sk))) -#define sk_PKCS7_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_freefunc_type(freefunc)) -#define sk_PKCS7_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr), (idx)) -#define sk_PKCS7_set(sk, idx, ptr) ((PKCS7 *)OPENSSL_sk_set(ossl_check_PKCS7_sk_type(sk), (idx), ossl_check_PKCS7_type(ptr))) -#define sk_PKCS7_find(sk, ptr) OPENSSL_sk_find(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr)) -#define sk_PKCS7_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr)) -#define sk_PKCS7_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr), pnum) -#define sk_PKCS7_sort(sk) OPENSSL_sk_sort(ossl_check_PKCS7_sk_type(sk)) -#define sk_PKCS7_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_PKCS7_sk_type(sk)) -#define sk_PKCS7_dup(sk) ((STACK_OF(PKCS7) *)OPENSSL_sk_dup(ossl_check_const_PKCS7_sk_type(sk))) -#define sk_PKCS7_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(PKCS7) *)OPENSSL_sk_deep_copy(ossl_check_const_PKCS7_sk_type(sk), ossl_check_PKCS7_copyfunc_type(copyfunc), ossl_check_PKCS7_freefunc_type(freefunc))) -#define sk_PKCS7_set_cmp_func(sk, cmp) ((sk_PKCS7_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_compfunc_type(cmp))) - - - -# define PKCS7_OP_SET_DETACHED_SIGNATURE 1 -# define PKCS7_OP_GET_DETACHED_SIGNATURE 2 - -# define PKCS7_get_signed_attributes(si) ((si)->auth_attr) -# define PKCS7_get_attributes(si) ((si)->unauth_attr) - -# define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed) -# define PKCS7_type_is_encrypted(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted) -# define PKCS7_type_is_enveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_enveloped) -# define PKCS7_type_is_signedAndEnveloped(a) \ - (OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped) -# define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data) -# define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest) - -# define PKCS7_set_detached(p,v) \ - PKCS7_ctrl(p,PKCS7_OP_SET_DETACHED_SIGNATURE,v,NULL) -# define PKCS7_get_detached(p) \ - PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL) - -# define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7)) - -/* S/MIME related flags */ - -# define PKCS7_TEXT 0x1 -# define PKCS7_NOCERTS 0x2 -# define PKCS7_NOSIGS 0x4 -# define PKCS7_NOCHAIN 0x8 -# define PKCS7_NOINTERN 0x10 -# define PKCS7_NOVERIFY 0x20 -# define PKCS7_DETACHED 0x40 -# define PKCS7_BINARY 0x80 -# define PKCS7_NOATTR 0x100 -# define PKCS7_NOSMIMECAP 0x200 -# define PKCS7_NOOLDMIMETYPE 0x400 -# define PKCS7_CRLFEOL 0x800 -# define PKCS7_STREAM 0x1000 -# define PKCS7_NOCRL 0x2000 -# define PKCS7_PARTIAL 0x4000 -# define PKCS7_REUSE_DIGEST 0x8000 -# define PKCS7_NO_DUAL_CONTENT 0x10000 - -/* Flags: for compatibility with older code */ - -# define SMIME_TEXT PKCS7_TEXT -# define SMIME_NOCERTS PKCS7_NOCERTS -# define SMIME_NOSIGS PKCS7_NOSIGS -# define SMIME_NOCHAIN PKCS7_NOCHAIN -# define SMIME_NOINTERN PKCS7_NOINTERN -# define SMIME_NOVERIFY PKCS7_NOVERIFY -# define SMIME_DETACHED PKCS7_DETACHED -# define SMIME_BINARY PKCS7_BINARY -# define SMIME_NOATTR PKCS7_NOATTR - -/* CRLF ASCII canonicalisation */ -# define SMIME_ASCIICRLF 0x80000 - -DECLARE_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL) - -int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, - const EVP_MD *type, unsigned char *md, - unsigned int *len); -# ifndef OPENSSL_NO_STDIO -PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7); -int i2d_PKCS7_fp(FILE *fp, const PKCS7 *p7); -# endif -DECLARE_ASN1_DUP_FUNCTION(PKCS7) -PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7); -int i2d_PKCS7_bio(BIO *bp, const PKCS7 *p7); -int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); -int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); - -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO) -DECLARE_ASN1_FUNCTIONS(PKCS7_RECIP_INFO) -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNED) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENC_CONTENT) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENVELOPE) -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGN_ENVELOPE) -DECLARE_ASN1_FUNCTIONS(PKCS7_DIGEST) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENCRYPT) -DECLARE_ASN1_FUNCTIONS(PKCS7) -PKCS7 *PKCS7_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - -DECLARE_ASN1_ITEM(PKCS7_ATTR_SIGN) -DECLARE_ASN1_ITEM(PKCS7_ATTR_VERIFY) - -DECLARE_ASN1_NDEF_FUNCTION(PKCS7) -DECLARE_ASN1_PRINT_FUNCTION(PKCS7) - -long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); - -int PKCS7_type_is_other(PKCS7 *p7); -int PKCS7_set_type(PKCS7 *p7, int type); -int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other); -int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); -int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, - const EVP_MD *dgst); -int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); -int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); -int PKCS7_content_new(PKCS7 *p7, int nid); -int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, - BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); -int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *signer); - -BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); -int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); -BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); - -PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, - EVP_PKEY *pkey, const EVP_MD *dgst); -X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); -int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md); -STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7); - -PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); -void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, - X509_ALGOR **pdig, X509_ALGOR **psig); -void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc); -int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); -int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); -int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); -int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7); - -PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); -ASN1_OCTET_STRING *PKCS7_get_octet_string(PKCS7 *p7); -ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk); -int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int type, - void *data); -int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, - void *value); -ASN1_TYPE *PKCS7_get_attribute(const PKCS7_SIGNER_INFO *si, int nid); -ASN1_TYPE *PKCS7_get_signed_attribute(const PKCS7_SIGNER_INFO *si, int nid); -int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, - STACK_OF(X509_ATTRIBUTE) *sk); -int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si, - STACK_OF(X509_ATTRIBUTE) *sk); - -PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, - BIO *data, int flags); -PKCS7 *PKCS7_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, - BIO *data, int flags, OSSL_LIB_CTX *libctx, - const char *propq); - -PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, - X509 *signcert, EVP_PKEY *pkey, - const EVP_MD *md, int flags); - -int PKCS7_final(PKCS7 *p7, BIO *data, int flags); -int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, - BIO *indata, BIO *out, int flags); -STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, - int flags); -PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, - int flags); -PKCS7 *PKCS7_encrypt_ex(STACK_OF(X509) *certs, BIO *in, - const EVP_CIPHER *cipher, int flags, - OSSL_LIB_CTX *libctx, const char *propq); -int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, - int flags); - -int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, - STACK_OF(X509_ALGOR) *cap); -STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); -int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg); - -int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid); -int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t); -int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, - const unsigned char *md, int mdlen); - -int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); -PKCS7 *SMIME_read_PKCS7_ex(BIO *bio, BIO **bcont, PKCS7 **p7); -PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); - -BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/pkcs7err.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/pkcs7err.h deleted file mode 100644 index ceb1a50..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/pkcs7err.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PKCS7ERR_H -# define OPENSSL_PKCS7ERR_H -# pragma once - -# include -# include -# include - - - -/* - * PKCS7 reason codes. - */ -# define PKCS7_R_CERTIFICATE_VERIFY_ERROR 117 -# define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 144 -# define PKCS7_R_CIPHER_NOT_INITIALIZED 116 -# define PKCS7_R_CONTENT_AND_DATA_PRESENT 118 -# define PKCS7_R_CTRL_ERROR 152 -# define PKCS7_R_DECRYPT_ERROR 119 -# define PKCS7_R_DIGEST_FAILURE 101 -# define PKCS7_R_ENCRYPTION_CTRL_FAILURE 149 -# define PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 150 -# define PKCS7_R_ERROR_ADDING_RECIPIENT 120 -# define PKCS7_R_ERROR_SETTING_CIPHER 121 -# define PKCS7_R_INVALID_NULL_POINTER 143 -# define PKCS7_R_INVALID_SIGNED_DATA_TYPE 155 -# define PKCS7_R_NO_CONTENT 122 -# define PKCS7_R_NO_DEFAULT_DIGEST 151 -# define PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND 154 -# define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115 -# define PKCS7_R_NO_SIGNATURES_ON_DATA 123 -# define PKCS7_R_NO_SIGNERS 142 -# define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104 -# define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR 124 -# define PKCS7_R_PKCS7_ADD_SIGNER_ERROR 153 -# define PKCS7_R_PKCS7_DATASIGN 145 -# define PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 127 -# define PKCS7_R_SIGNATURE_FAILURE 105 -# define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND 128 -# define PKCS7_R_SIGNING_CTRL_FAILURE 147 -# define PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 148 -# define PKCS7_R_SMIME_TEXT_ERROR 129 -# define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106 -# define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 107 -# define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 108 -# define PKCS7_R_UNKNOWN_DIGEST_TYPE 109 -# define PKCS7_R_UNKNOWN_OPERATION 110 -# define PKCS7_R_UNSUPPORTED_CIPHER_TYPE 111 -# define PKCS7_R_UNSUPPORTED_CONTENT_TYPE 112 -# define PKCS7_R_WRONG_CONTENT_TYPE 113 -# define PKCS7_R_WRONG_PKCS7_TYPE 114 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/prov_ssl.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/prov_ssl.h deleted file mode 100644 index 76d01e1..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/prov_ssl.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2021-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PROV_SSL_H -# define OPENSSL_PROV_SSL_H -# pragma once - -# ifdef __cplusplus -extern "C" { -# endif - -/* SSL/TLS related defines useful to providers */ - -# define SSL_MAX_MASTER_KEY_LENGTH 48 - -/* SSL/TLS uses a 2 byte unsigned version number */ -# define SSL3_VERSION 0x0300 -# define TLS1_VERSION 0x0301 -# define TLS1_1_VERSION 0x0302 -# define TLS1_2_VERSION 0x0303 -# define TLS1_3_VERSION 0x0304 -# define DTLS1_VERSION 0xFEFF -# define DTLS1_2_VERSION 0xFEFD -# define DTLS1_BAD_VER 0x0100 - -/* QUIC uses a 4 byte unsigned version number */ -# define OSSL_QUIC1_VERSION 0x0000001 - -# ifdef __cplusplus -} -# endif -#endif /* OPENSSL_PROV_SSL_H */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/proverr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/proverr.h deleted file mode 100644 index 04134ae..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/proverr.h +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PROVERR_H -# define OPENSSL_PROVERR_H -# pragma once - -# include -# include -# include - - - -/* - * PROV reason codes. - */ -# define PROV_R_ADDITIONAL_INPUT_TOO_LONG 184 -# define PROV_R_ALGORITHM_MISMATCH 173 -# define PROV_R_ALREADY_INSTANTIATED 185 -# define PROV_R_BAD_DECRYPT 100 -# define PROV_R_BAD_ENCODING 141 -# define PROV_R_BAD_LENGTH 142 -# define PROV_R_BAD_TLS_CLIENT_VERSION 161 -# define PROV_R_BN_ERROR 160 -# define PROV_R_CIPHER_OPERATION_FAILED 102 -# define PROV_R_COFACTOR_REQUIRED 236 -# define PROV_R_DERIVATION_FUNCTION_INIT_FAILED 205 -# define PROV_R_DIGEST_NOT_ALLOWED 174 -# define PROV_R_EMS_NOT_ENABLED 233 -# define PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS 244 -# define PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK 186 -# define PROV_R_ERROR_INSTANTIATING_DRBG 188 -# define PROV_R_ERROR_RETRIEVING_ENTROPY 189 -# define PROV_R_ERROR_RETRIEVING_NONCE 190 -# define PROV_R_FAILED_DURING_DERIVATION 164 -# define PROV_R_FAILED_TO_CREATE_LOCK 180 -# define PROV_R_FAILED_TO_DECRYPT 162 -# define PROV_R_FAILED_TO_GENERATE_KEY 121 -# define PROV_R_FAILED_TO_GET_PARAMETER 103 -# define PROV_R_FAILED_TO_SET_PARAMETER 104 -# define PROV_R_FAILED_TO_SIGN 175 -# define PROV_R_FINAL_CALL_OUT_OF_ORDER 237 -# define PROV_R_FIPS_MODULE_CONDITIONAL_ERROR 227 -# define PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE 224 -# define PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR 253 -# define PROV_R_FIPS_MODULE_IN_ERROR_STATE 225 -# define PROV_R_GENERATE_ERROR 191 -# define PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 165 -# define PROV_R_INDICATOR_INTEGRITY_FAILURE 210 -# define PROV_R_INIT_CALL_OUT_OF_ORDER 238 -# define PROV_R_INSUFFICIENT_DRBG_STRENGTH 181 -# define PROV_R_INVALID_AAD 108 -# define PROV_R_INVALID_AEAD 231 -# define PROV_R_INVALID_CONFIG_DATA 211 -# define PROV_R_INVALID_CONSTANT_LENGTH 157 -# define PROV_R_INVALID_CURVE 176 -# define PROV_R_INVALID_CUSTOM_LENGTH 111 -# define PROV_R_INVALID_DATA 115 -# define PROV_R_INVALID_DIGEST 122 -# define PROV_R_INVALID_DIGEST_LENGTH 166 -# define PROV_R_INVALID_DIGEST_SIZE 218 -# define PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION 243 -# define PROV_R_INVALID_INPUT_LENGTH 230 -# define PROV_R_INVALID_ITERATION_COUNT 123 -# define PROV_R_INVALID_IV_LENGTH 109 -# define PROV_R_INVALID_KDF 232 -# define PROV_R_INVALID_KEY 158 -# define PROV_R_INVALID_KEY_LENGTH 105 -# define PROV_R_INVALID_MAC 151 -# define PROV_R_INVALID_MEMORY_SIZE 235 -# define PROV_R_INVALID_MGF1_MD 167 -# define PROV_R_INVALID_MODE 125 -# define PROV_R_INVALID_OUTPUT_LENGTH 217 -# define PROV_R_INVALID_PADDING_MODE 168 -# define PROV_R_INVALID_PREHASHED_DIGEST_LENGTH 241 -# define PROV_R_INVALID_PUBINFO 198 -# define PROV_R_INVALID_SALT_LENGTH 112 -# define PROV_R_INVALID_SEED_LENGTH 154 -# define PROV_R_INVALID_SIGNATURE_SIZE 179 -# define PROV_R_INVALID_STATE 212 -# define PROV_R_INVALID_TAG 110 -# define PROV_R_INVALID_TAG_LENGTH 118 -# define PROV_R_INVALID_THREAD_POOL_SIZE 234 -# define PROV_R_INVALID_UKM_LENGTH 200 -# define PROV_R_INVALID_X931_DIGEST 170 -# define PROV_R_IN_ERROR_STATE 192 -# define PROV_R_KEY_SETUP_FAILED 101 -# define PROV_R_KEY_SIZE_TOO_SMALL 171 -# define PROV_R_LENGTH_TOO_LARGE 202 -# define PROV_R_MISMATCHING_DOMAIN_PARAMETERS 203 -# define PROV_R_MISSING_CEK_ALG 144 -# define PROV_R_MISSING_CIPHER 155 -# define PROV_R_MISSING_CONFIG_DATA 213 -# define PROV_R_MISSING_CONSTANT 156 -# define PROV_R_MISSING_KEY 128 -# define PROV_R_MISSING_MAC 150 -# define PROV_R_MISSING_MESSAGE_DIGEST 129 -# define PROV_R_MISSING_OID 209 -# define PROV_R_MISSING_PASS 130 -# define PROV_R_MISSING_SALT 131 -# define PROV_R_MISSING_SECRET 132 -# define PROV_R_MISSING_SEED 140 -# define PROV_R_MISSING_SESSION_ID 133 -# define PROV_R_MISSING_TYPE 134 -# define PROV_R_MISSING_XCGHASH 135 -# define PROV_R_ML_DSA_NO_FORMAT 245 -# define PROV_R_ML_KEM_NO_FORMAT 246 -# define PROV_R_MODULE_INTEGRITY_FAILURE 214 -# define PROV_R_NOT_A_PRIVATE_KEY 221 -# define PROV_R_NOT_A_PUBLIC_KEY 220 -# define PROV_R_NOT_INSTANTIATED 193 -# define PROV_R_NOT_PARAMETERS 226 -# define PROV_R_NOT_SUPPORTED 136 -# define PROV_R_NOT_XOF_OR_INVALID_LENGTH 113 -# define PROV_R_NO_INSTANCE_ALLOWED 242 -# define PROV_R_NO_KEY_SET 114 -# define PROV_R_NO_PARAMETERS_SET 177 -# define PROV_R_NULL_LENGTH_POINTER 247 -# define PROV_R_NULL_OUTPUT_BUFFER 248 -# define PROV_R_ONESHOT_CALL_OUT_OF_ORDER 239 -# define PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 178 -# define PROV_R_OUTPUT_BUFFER_TOO_SMALL 106 -# define PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS 228 -# define PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED 187 -# define PROV_R_PARENT_LOCKING_NOT_ENABLED 182 -# define PROV_R_PARENT_STRENGTH_TOO_WEAK 194 -# define PROV_R_PATH_MUST_BE_ABSOLUTE 219 -# define PROV_R_PERSONALISATION_STRING_TOO_LONG 195 -# define PROV_R_PSS_SALTLEN_TOO_SMALL 172 -# define PROV_R_REPEATED_PARAMETER 252 -# define PROV_R_REQUEST_TOO_LARGE_FOR_DRBG 196 -# define PROV_R_REQUIRE_CTR_MODE_CIPHER 206 -# define PROV_R_RESEED_ERROR 197 -# define PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES 222 -# define PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT 229 -# define PROV_R_SELF_TEST_KAT_FAILURE 215 -# define PROV_R_SELF_TEST_POST_FAILURE 216 -# define PROV_R_TAG_NOT_NEEDED 120 -# define PROV_R_TAG_NOT_SET 119 -# define PROV_R_TOO_MANY_RECORDS 126 -# define PROV_R_UNABLE_TO_FIND_CIPHERS 207 -# define PROV_R_UNABLE_TO_GET_PARENT_STRENGTH 199 -# define PROV_R_UNABLE_TO_GET_PASSPHRASE 159 -# define PROV_R_UNABLE_TO_INITIALISE_CIPHERS 208 -# define PROV_R_UNABLE_TO_LOAD_SHA256 147 -# define PROV_R_UNABLE_TO_LOCK_PARENT 201 -# define PROV_R_UNABLE_TO_RESEED 204 -# define PROV_R_UNEXPECTED_KEY_PARAMETERS 249 -# define PROV_R_UNSUPPORTED_CEK_ALG 145 -# define PROV_R_UNSUPPORTED_KEY_SIZE 153 -# define PROV_R_UNSUPPORTED_MAC_TYPE 137 -# define PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS 152 -# define PROV_R_UNSUPPORTED_SELECTION 250 -# define PROV_R_UPDATE_CALL_OUT_OF_ORDER 240 -# define PROV_R_URI_AUTHORITY_UNSUPPORTED 223 -# define PROV_R_VALUE_ERROR 138 -# define PROV_R_WRONG_CIPHERTEXT_SIZE 251 -# define PROV_R_WRONG_FINAL_BLOCK_LENGTH 107 -# define PROV_R_WRONG_OUTPUT_BUFFER_SIZE 139 -# define PROV_R_XOF_DIGESTS_NOT_ALLOWED 183 -# define PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE 148 -# define PROV_R_XTS_DUPLICATED_KEYS 149 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/provider.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/provider.h deleted file mode 100644 index 5144357..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/provider.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PROVIDER_H -# define OPENSSL_PROVIDER_H -# pragma once - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* Set and Get a library context search path */ -int OSSL_PROVIDER_set_default_search_path(OSSL_LIB_CTX *, const char *path); -const char *OSSL_PROVIDER_get0_default_search_path(OSSL_LIB_CTX *libctx); - -/* Load and unload a provider */ -OSSL_PROVIDER *OSSL_PROVIDER_load(OSSL_LIB_CTX *, const char *name); -OSSL_PROVIDER *OSSL_PROVIDER_load_ex(OSSL_LIB_CTX *, const char *name, - OSSL_PARAM *params); -OSSL_PROVIDER *OSSL_PROVIDER_try_load(OSSL_LIB_CTX *, const char *name, - int retain_fallbacks); -OSSL_PROVIDER *OSSL_PROVIDER_try_load_ex(OSSL_LIB_CTX *, const char *name, - OSSL_PARAM *params, - int retain_fallbacks); -int OSSL_PROVIDER_unload(OSSL_PROVIDER *prov); -int OSSL_PROVIDER_available(OSSL_LIB_CTX *, const char *name); -int OSSL_PROVIDER_do_all(OSSL_LIB_CTX *ctx, - int (*cb)(OSSL_PROVIDER *provider, void *cbdata), - void *cbdata); - -const OSSL_PARAM *OSSL_PROVIDER_gettable_params(const OSSL_PROVIDER *prov); -int OSSL_PROVIDER_get_params(const OSSL_PROVIDER *prov, OSSL_PARAM params[]); -int OSSL_PROVIDER_self_test(const OSSL_PROVIDER *prov); -int OSSL_PROVIDER_get_capabilities(const OSSL_PROVIDER *prov, - const char *capability, - OSSL_CALLBACK *cb, - void *arg); - -/*- - * Provider configuration parameters are normally set in the configuration file, - * but can also be set early in the main program before a provider is in use by - * multiple threads. - * - * Only UTF8-string values are supported. - */ -int OSSL_PROVIDER_add_conf_parameter(OSSL_PROVIDER *prov, const char *name, - const char *value); -/* - * Retrieves any of the requested configuration parameters for the given - * provider that were set in the configuration file or via the above - * OSSL_PROVIDER_add_parameter() function. - * - * The |params| array elements MUST have type OSSL_PARAM_UTF8_PTR, values are - * returned by reference, not as copies. - */ -int OSSL_PROVIDER_get_conf_parameters(const OSSL_PROVIDER *prov, - OSSL_PARAM params[]); -/* - * Parse a provider configuration parameter as a boolean value, - * or return a default value if unable to retrieve the parameter. - * Values like "1", "yes", "true", ... are true (nonzero). - * Values like "0", "no", "false", ... are false (zero). - */ -int OSSL_PROVIDER_conf_get_bool(const OSSL_PROVIDER *prov, - const char *name, int defval); - -const OSSL_ALGORITHM *OSSL_PROVIDER_query_operation(const OSSL_PROVIDER *prov, - int operation_id, - int *no_cache); -void OSSL_PROVIDER_unquery_operation(const OSSL_PROVIDER *prov, - int operation_id, const OSSL_ALGORITHM *algs); -void *OSSL_PROVIDER_get0_provider_ctx(const OSSL_PROVIDER *prov); -const OSSL_DISPATCH *OSSL_PROVIDER_get0_dispatch(const OSSL_PROVIDER *prov); - -/* Add a built in providers */ -int OSSL_PROVIDER_add_builtin(OSSL_LIB_CTX *, const char *name, - OSSL_provider_init_fn *init_fn); - -/* Information */ -const char *OSSL_PROVIDER_get0_name(const OSSL_PROVIDER *prov); - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/quic.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/quic.h deleted file mode 100644 index 8eacc63..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/quic.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2022-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_QUIC_H -# define OPENSSL_QUIC_H -# pragma once - -# include -# include - -# ifndef OPENSSL_NO_QUIC - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * Method used for non-thread-assisted QUIC client operation. - */ -__owur const SSL_METHOD *OSSL_QUIC_client_method(void); - -/* - * Method used for thread-assisted QUIC client operation. - */ -__owur const SSL_METHOD *OSSL_QUIC_client_thread_method(void); - -/* - * QUIC transport error codes (RFC 9000 s. 20.1) - */ -# define OSSL_QUIC_ERR_NO_ERROR 0x00 -# define OSSL_QUIC_ERR_INTERNAL_ERROR 0x01 -# define OSSL_QUIC_ERR_CONNECTION_REFUSED 0x02 -# define OSSL_QUIC_ERR_FLOW_CONTROL_ERROR 0x03 -# define OSSL_QUIC_ERR_STREAM_LIMIT_ERROR 0x04 -# define OSSL_QUIC_ERR_STREAM_STATE_ERROR 0x05 -# define OSSL_QUIC_ERR_FINAL_SIZE_ERROR 0x06 -# define OSSL_QUIC_ERR_FRAME_ENCODING_ERROR 0x07 -# define OSSL_QUIC_ERR_TRANSPORT_PARAMETER_ERROR 0x08 -# define OSSL_QUIC_ERR_CONNECTION_ID_LIMIT_ERROR 0x09 -# define OSSL_QUIC_ERR_PROTOCOL_VIOLATION 0x0A -# define OSSL_QUIC_ERR_INVALID_TOKEN 0x0B -# define OSSL_QUIC_ERR_APPLICATION_ERROR 0x0C -# define OSSL_QUIC_ERR_CRYPTO_BUFFER_EXCEEDED 0x0D -# define OSSL_QUIC_ERR_KEY_UPDATE_ERROR 0x0E -# define OSSL_QUIC_ERR_AEAD_LIMIT_REACHED 0x0F -# define OSSL_QUIC_ERR_NO_VIABLE_PATH 0x10 - -/* Inclusive range for handshake-specific errors. */ -# define OSSL_QUIC_ERR_CRYPTO_ERR_BEGIN 0x0100 -# define OSSL_QUIC_ERR_CRYPTO_ERR_END 0x01FF - -# define OSSL_QUIC_ERR_CRYPTO_ERR(X) \ - (OSSL_QUIC_ERR_CRYPTO_ERR_BEGIN + (X)) - -/* Local errors. */ -# define OSSL_QUIC_LOCAL_ERR_IDLE_TIMEOUT \ - ((uint64_t)0xFFFFFFFFFFFFFFFFULL) - -/* - * Method used for QUIC server operation. - */ -__owur const SSL_METHOD *OSSL_QUIC_server_method(void); - -# ifdef __cplusplus -} -# endif - -# endif /* OPENSSL_NO_QUIC */ -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/rand.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/rand.h deleted file mode 100644 index 4e59e50..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/rand.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_RAND_H -# define OPENSSL_RAND_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_RAND_H -# endif - -# include -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * Default security strength (in the sense of [NIST SP 800-90Ar1]) - * - * NIST SP 800-90Ar1 supports the strength of the DRBG being smaller than that - * of the cipher by collecting less entropy. The current DRBG implementation - * does not take RAND_DRBG_STRENGTH into account and sets the strength of the - * DRBG to that of the cipher. - */ -# define RAND_DRBG_STRENGTH 256 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -struct rand_meth_st { - int (*seed) (const void *buf, int num); - int (*bytes) (unsigned char *buf, int num); - void (*cleanup) (void); - int (*add) (const void *buf, int num, double randomness); - int (*pseudorand) (unsigned char *buf, int num); - int (*status) (void); -}; - -OSSL_DEPRECATEDIN_3_0 int RAND_set_rand_method(const RAND_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 const RAND_METHOD *RAND_get_rand_method(void); -# ifndef OPENSSL_NO_ENGINE -OSSL_DEPRECATEDIN_3_0 int RAND_set_rand_engine(ENGINE *engine); -# endif - -OSSL_DEPRECATEDIN_3_0 RAND_METHOD *RAND_OpenSSL(void); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define RAND_cleanup() while(0) continue -# endif -int RAND_bytes(unsigned char *buf, int num); -int RAND_priv_bytes(unsigned char *buf, int num); - -/* - * Equivalent of RAND_priv_bytes() but additionally taking an OSSL_LIB_CTX and - * a strength. - */ -int RAND_priv_bytes_ex(OSSL_LIB_CTX *ctx, unsigned char *buf, size_t num, - unsigned int strength); - -/* - * Equivalent of RAND_bytes() but additionally taking an OSSL_LIB_CTX and - * a strength. - */ -int RAND_bytes_ex(OSSL_LIB_CTX *ctx, unsigned char *buf, size_t num, - unsigned int strength); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 int RAND_pseudo_bytes(unsigned char *buf, int num); -# endif - -EVP_RAND_CTX *RAND_get0_primary(OSSL_LIB_CTX *ctx); -EVP_RAND_CTX *RAND_get0_public(OSSL_LIB_CTX *ctx); -EVP_RAND_CTX *RAND_get0_private(OSSL_LIB_CTX *ctx); -int RAND_set0_public(OSSL_LIB_CTX *ctx, EVP_RAND_CTX *rand); -int RAND_set0_private(OSSL_LIB_CTX *ctx, EVP_RAND_CTX *rand); - -int RAND_set_DRBG_type(OSSL_LIB_CTX *ctx, const char *drbg, const char *propq, - const char *cipher, const char *digest); -int RAND_set_seed_source_type(OSSL_LIB_CTX *ctx, const char *seed, - const char *propq); - -void RAND_seed(const void *buf, int num); -void RAND_keep_random_devices_open(int keep); - -# if defined(__ANDROID__) && defined(__NDK_FPABI__) -__NDK_FPABI__ /* __attribute__((pcs("aapcs"))) on ARM */ -# endif -void RAND_add(const void *buf, int num, double randomness); -int RAND_load_file(const char *file, long max_bytes); -int RAND_write_file(const char *file); -const char *RAND_file_name(char *file, size_t num); -int RAND_status(void); - -# ifndef OPENSSL_NO_EGD -int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes); -int RAND_egd(const char *path); -int RAND_egd_bytes(const char *path, int bytes); -# endif - -int RAND_poll(void); - -# if defined(_WIN32) && (defined(BASETYPES) || defined(_WINDEF_H)) -/* application has to include in order to use these */ -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 void RAND_screen(void); -OSSL_DEPRECATEDIN_1_1_0 int RAND_event(UINT, WPARAM, LPARAM); -# endif -# endif - -int RAND_set1_random_provider(OSSL_LIB_CTX *ctx, OSSL_PROVIDER *p); - -/* Which parameter to provider_random call */ -# define OSSL_PROV_RANDOM_PUBLIC 0 -# define OSSL_PROV_RANDOM_PRIVATE 1 - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/randerr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/randerr.h deleted file mode 100644 index 5e1e6d7..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/randerr.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_RANDERR_H -# define OPENSSL_RANDERR_H -# pragma once - -# include -# include -# include - - - -/* - * RAND reason codes. - */ -# define RAND_R_ADDITIONAL_INPUT_TOO_LONG 102 -# define RAND_R_ALREADY_INSTANTIATED 103 -# define RAND_R_ARGUMENT_OUT_OF_RANGE 105 -# define RAND_R_CANNOT_OPEN_FILE 121 -# define RAND_R_DRBG_ALREADY_INITIALIZED 129 -# define RAND_R_DRBG_NOT_INITIALISED 104 -# define RAND_R_ENTROPY_INPUT_TOO_LONG 106 -# define RAND_R_ENTROPY_OUT_OF_RANGE 124 -# define RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED 127 -# define RAND_R_ERROR_INITIALISING_DRBG 107 -# define RAND_R_ERROR_INSTANTIATING_DRBG 108 -# define RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT 109 -# define RAND_R_ERROR_RETRIEVING_ENTROPY 110 -# define RAND_R_ERROR_RETRIEVING_NONCE 111 -# define RAND_R_FAILED_TO_CREATE_LOCK 126 -# define RAND_R_FUNC_NOT_IMPLEMENTED 101 -# define RAND_R_FWRITE_ERROR 123 -# define RAND_R_GENERATE_ERROR 112 -# define RAND_R_INSUFFICIENT_DRBG_STRENGTH 139 -# define RAND_R_INTERNAL_ERROR 113 -# define RAND_R_INVALID_PROPERTY_QUERY 137 -# define RAND_R_IN_ERROR_STATE 114 -# define RAND_R_NOT_A_REGULAR_FILE 122 -# define RAND_R_NOT_INSTANTIATED 115 -# define RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED 128 -# define RAND_R_PARENT_LOCKING_NOT_ENABLED 130 -# define RAND_R_PARENT_STRENGTH_TOO_WEAK 131 -# define RAND_R_PERSONALISATION_STRING_TOO_LONG 116 -# define RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED 133 -# define RAND_R_PRNG_NOT_SEEDED 100 -# define RAND_R_RANDOM_POOL_IS_EMPTY 142 -# define RAND_R_RANDOM_POOL_OVERFLOW 125 -# define RAND_R_RANDOM_POOL_UNDERFLOW 134 -# define RAND_R_REQUEST_TOO_LARGE_FOR_DRBG 117 -# define RAND_R_RESEED_ERROR 118 -# define RAND_R_SELFTEST_FAILURE 119 -# define RAND_R_TOO_LITTLE_NONCE_REQUESTED 135 -# define RAND_R_TOO_MUCH_NONCE_REQUESTED 136 -# define RAND_R_UNABLE_TO_CREATE_DRBG 143 -# define RAND_R_UNABLE_TO_FETCH_DRBG 144 -# define RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER 141 -# define RAND_R_UNABLE_TO_GET_PARENT_STRENGTH 138 -# define RAND_R_UNABLE_TO_LOCK_PARENT 140 -# define RAND_R_UNSUPPORTED_DRBG_FLAGS 132 -# define RAND_R_UNSUPPORTED_DRBG_TYPE 120 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/rc2.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/rc2.h deleted file mode 100644 index ff633fd..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/rc2.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_RC2_H -# define OPENSSL_RC2_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_RC2_H -# endif - -# include - -# ifndef OPENSSL_NO_RC2 -# ifdef __cplusplus -extern "C" { -# endif - -# define RC2_BLOCK 8 -# define RC2_KEY_LENGTH 16 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -typedef unsigned int RC2_INT; - -# define RC2_ENCRYPT 1 -# define RC2_DECRYPT 0 - -typedef struct rc2_key_st { - RC2_INT data[64]; -} RC2_KEY; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 void RC2_set_key(RC2_KEY *key, int len, - const unsigned char *data, int bits); -OSSL_DEPRECATEDIN_3_0 void RC2_ecb_encrypt(const unsigned char *in, - unsigned char *out, RC2_KEY *key, - int enc); -OSSL_DEPRECATEDIN_3_0 void RC2_encrypt(unsigned long *data, RC2_KEY *key); -OSSL_DEPRECATEDIN_3_0 void RC2_decrypt(unsigned long *data, RC2_KEY *key); -OSSL_DEPRECATEDIN_3_0 void RC2_cbc_encrypt(const unsigned char *in, - unsigned char *out, long length, - RC2_KEY *ks, unsigned char *iv, - int enc); -OSSL_DEPRECATEDIN_3_0 void RC2_cfb64_encrypt(const unsigned char *in, - unsigned char *out, long length, - RC2_KEY *schedule, - unsigned char *ivec, - int *num, int enc); -OSSL_DEPRECATEDIN_3_0 void RC2_ofb64_encrypt(const unsigned char *in, - unsigned char *out, long length, - RC2_KEY *schedule, - unsigned char *ivec, - int *num); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/rc4.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/rc4.h deleted file mode 100644 index 600b288..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/rc4.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_RC4_H -# define OPENSSL_RC4_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_RC4_H -# endif - -# include - -# ifndef OPENSSL_NO_RC4 -# include -# ifdef __cplusplus -extern "C" { -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -typedef struct rc4_key_st { - RC4_INT x, y; - RC4_INT data[256]; -} RC4_KEY; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 const char *RC4_options(void); -OSSL_DEPRECATEDIN_3_0 void RC4_set_key(RC4_KEY *key, int len, - const unsigned char *data); -OSSL_DEPRECATEDIN_3_0 void RC4(RC4_KEY *key, size_t len, - const unsigned char *indata, - unsigned char *outdata); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/rc5.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/rc5.h deleted file mode 100644 index de83352..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/rc5.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_RC5_H -# define OPENSSL_RC5_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_RC5_H -# endif - -# include - -# ifndef OPENSSL_NO_RC5 -# ifdef __cplusplus -extern "C" { -# endif - -# define RC5_32_BLOCK 8 -# define RC5_32_KEY_LENGTH 16/* This is a default, max is 255 */ - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define RC5_ENCRYPT 1 -# define RC5_DECRYPT 0 - -# define RC5_32_INT unsigned int - -/* - * This are the only values supported. Tweak the code if you want more The - * most supported modes will be RC5-32/12/16 RC5-32/16/8 - */ -# define RC5_8_ROUNDS 8 -# define RC5_12_ROUNDS 12 -# define RC5_16_ROUNDS 16 - -typedef struct rc5_key_st { - /* Number of rounds */ - int rounds; - RC5_32_INT data[2 * (RC5_16_ROUNDS + 1)]; -} RC5_32_KEY; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int RC5_32_set_key(RC5_32_KEY *key, int len, - const unsigned char *data, - int rounds); -OSSL_DEPRECATEDIN_3_0 void RC5_32_ecb_encrypt(const unsigned char *in, - unsigned char *out, - RC5_32_KEY *key, - int enc); -OSSL_DEPRECATEDIN_3_0 void RC5_32_encrypt(unsigned long *data, RC5_32_KEY *key); -OSSL_DEPRECATEDIN_3_0 void RC5_32_decrypt(unsigned long *data, RC5_32_KEY *key); -OSSL_DEPRECATEDIN_3_0 void RC5_32_cbc_encrypt(const unsigned char *in, - unsigned char *out, long length, - RC5_32_KEY *ks, unsigned char *iv, - int enc); -OSSL_DEPRECATEDIN_3_0 void RC5_32_cfb64_encrypt(const unsigned char *in, - unsigned char *out, long length, - RC5_32_KEY *schedule, - unsigned char *ivec, int *num, - int enc); -OSSL_DEPRECATEDIN_3_0 void RC5_32_ofb64_encrypt(const unsigned char *in, - unsigned char *out, long length, - RC5_32_KEY *schedule, - unsigned char *ivec, int *num); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ripemd.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/ripemd.h deleted file mode 100644 index 900ee31..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ripemd.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_RIPEMD_H -# define OPENSSL_RIPEMD_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_RIPEMD_H -# endif - -# include - -# ifndef OPENSSL_NO_RMD160 -# include -# include - -# define RIPEMD160_DIGEST_LENGTH 20 - -# ifdef __cplusplus -extern "C" { -# endif -# if !defined(OPENSSL_NO_DEPRECATED_3_0) - -# define RIPEMD160_LONG unsigned int - -# define RIPEMD160_CBLOCK 64 -# define RIPEMD160_LBLOCK (RIPEMD160_CBLOCK/4) - -typedef struct RIPEMD160state_st { - RIPEMD160_LONG A, B, C, D, E; - RIPEMD160_LONG Nl, Nh; - RIPEMD160_LONG data[RIPEMD160_LBLOCK]; - unsigned int num; -} RIPEMD160_CTX; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int RIPEMD160_Init(RIPEMD160_CTX *c); -OSSL_DEPRECATEDIN_3_0 int RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, - size_t len); -OSSL_DEPRECATEDIN_3_0 int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c); -OSSL_DEPRECATEDIN_3_0 unsigned char *RIPEMD160(const unsigned char *d, size_t n, - unsigned char *md); -OSSL_DEPRECATEDIN_3_0 void RIPEMD160_Transform(RIPEMD160_CTX *c, - const unsigned char *b); -# endif - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/rsa.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/rsa.h deleted file mode 100644 index 167427d..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/rsa.h +++ /dev/null @@ -1,615 +0,0 @@ -/* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_RSA_H -# define OPENSSL_RSA_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_RSA_H -# endif - -# include - -# include -# include -# include -# include -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# include -# endif -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif - -# ifdef __cplusplus -extern "C" { -# endif - -# ifndef OPENSSL_RSA_MAX_MODULUS_BITS -# define OPENSSL_RSA_MAX_MODULUS_BITS 16384 -# endif - -# define RSA_3 0x3L -# define RSA_F4 0x10001L - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* The types RSA and RSA_METHOD are defined in ossl_typ.h */ - -# define OPENSSL_RSA_FIPS_MIN_MODULUS_BITS 2048 - -# ifndef OPENSSL_RSA_SMALL_MODULUS_BITS -# define OPENSSL_RSA_SMALL_MODULUS_BITS 3072 -# endif - -/* exponent limit enforced for "large" modulus only */ -# ifndef OPENSSL_RSA_MAX_PUBEXP_BITS -# define OPENSSL_RSA_MAX_PUBEXP_BITS 64 -# endif -/* based on RFC 8017 appendix A.1.2 */ -# define RSA_ASN1_VERSION_DEFAULT 0 -# define RSA_ASN1_VERSION_MULTI 1 - -# define RSA_DEFAULT_PRIME_NUM 2 - -# define RSA_METHOD_FLAG_NO_CHECK 0x0001 -# define RSA_FLAG_CACHE_PUBLIC 0x0002 -# define RSA_FLAG_CACHE_PRIVATE 0x0004 -# define RSA_FLAG_BLINDING 0x0008 -# define RSA_FLAG_THREAD_SAFE 0x0010 -/* - * This flag means the private key operations will be handled by rsa_mod_exp - * and that they do not depend on the private key components being present: - * for example a key stored in external hardware. Without this flag - * bn_mod_exp gets called when private key components are absent. - */ -# define RSA_FLAG_EXT_PKEY 0x0020 - -/* - * new with 0.9.6j and 0.9.7b; the built-in - * RSA implementation now uses blinding by - * default (ignoring RSA_FLAG_BLINDING), - * but other engines might not need it - */ -# define RSA_FLAG_NO_BLINDING 0x0080 -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ -/* - * Does nothing. Previously this switched off constant time behaviour. - */ -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define RSA_FLAG_NO_CONSTTIME 0x0000 -# endif -/* deprecated name for the flag*/ -/* - * new with 0.9.7h; the built-in RSA - * implementation now uses constant time - * modular exponentiation for secret exponents - * by default. This flag causes the - * faster variable sliding window method to - * be used for all exponents. - */ -# ifndef OPENSSL_NO_DEPRECATED_0_9_8 -# define RSA_FLAG_NO_EXP_CONSTTIME RSA_FLAG_NO_CONSTTIME -# endif - -/*- - * New with 3.0: use part of the flags to denote exact type of RSA key, - * some of which are limited to specific signature and encryption schemes. - * These different types share the same RSA structure, but indicate the - * use of certain fields in that structure. - * Currently known are: - * RSA - this is the "normal" unlimited RSA structure (typenum 0) - * RSASSA-PSS - indicates that the PSS parameters are used. - * RSAES-OAEP - no specific field used for the moment, but OAEP padding - * is expected. (currently unused) - * - * 4 bits allow for 16 types - */ -# define RSA_FLAG_TYPE_MASK 0xF000 -# define RSA_FLAG_TYPE_RSA 0x0000 -# define RSA_FLAG_TYPE_RSASSAPSS 0x1000 -# define RSA_FLAG_TYPE_RSAESOAEP 0x2000 - -int EVP_PKEY_CTX_set_rsa_padding(EVP_PKEY_CTX *ctx, int pad_mode); -int EVP_PKEY_CTX_get_rsa_padding(EVP_PKEY_CTX *ctx, int *pad_mode); - -int EVP_PKEY_CTX_set_rsa_pss_saltlen(EVP_PKEY_CTX *ctx, int saltlen); -int EVP_PKEY_CTX_get_rsa_pss_saltlen(EVP_PKEY_CTX *ctx, int *saltlen); - -int EVP_PKEY_CTX_set_rsa_keygen_bits(EVP_PKEY_CTX *ctx, int bits); -int EVP_PKEY_CTX_set1_rsa_keygen_pubexp(EVP_PKEY_CTX *ctx, BIGNUM *pubexp); -int EVP_PKEY_CTX_set_rsa_keygen_primes(EVP_PKEY_CTX *ctx, int primes); -int EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(EVP_PKEY_CTX *ctx, int saltlen); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_CTX_set_rsa_keygen_pubexp(EVP_PKEY_CTX *ctx, BIGNUM *pubexp); -# endif - -/* Salt length matches digest */ -# define RSA_PSS_SALTLEN_DIGEST -1 -/* Verify only: auto detect salt length */ -# define RSA_PSS_SALTLEN_AUTO -2 -/* Set salt length to maximum possible */ -# define RSA_PSS_SALTLEN_MAX -3 -/* Auto-detect on verify, set salt length to min(maximum possible, digest - * length) on sign */ -# define RSA_PSS_SALTLEN_AUTO_DIGEST_MAX -4 -/* Old compatible max salt length for sign only */ -# define RSA_PSS_SALTLEN_MAX_SIGN -2 - -int EVP_PKEY_CTX_set_rsa_mgf1_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); -int EVP_PKEY_CTX_set_rsa_mgf1_md_name(EVP_PKEY_CTX *ctx, const char *mdname, - const char *mdprops); -int EVP_PKEY_CTX_get_rsa_mgf1_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); -int EVP_PKEY_CTX_get_rsa_mgf1_md_name(EVP_PKEY_CTX *ctx, char *name, - size_t namelen); -int EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); -int EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md_name(EVP_PKEY_CTX *ctx, - const char *mdname); - -int EVP_PKEY_CTX_set_rsa_pss_keygen_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); -int EVP_PKEY_CTX_set_rsa_pss_keygen_md_name(EVP_PKEY_CTX *ctx, - const char *mdname, - const char *mdprops); - -int EVP_PKEY_CTX_set_rsa_oaep_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); -int EVP_PKEY_CTX_set_rsa_oaep_md_name(EVP_PKEY_CTX *ctx, const char *mdname, - const char *mdprops); -int EVP_PKEY_CTX_get_rsa_oaep_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); -int EVP_PKEY_CTX_get_rsa_oaep_md_name(EVP_PKEY_CTX *ctx, char *name, - size_t namelen); -int EVP_PKEY_CTX_set0_rsa_oaep_label(EVP_PKEY_CTX *ctx, void *label, int llen); -int EVP_PKEY_CTX_get0_rsa_oaep_label(EVP_PKEY_CTX *ctx, unsigned char **label); - -# define EVP_PKEY_CTRL_RSA_PADDING (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 2) - -# define EVP_PKEY_CTRL_RSA_KEYGEN_BITS (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 5) - -# define EVP_PKEY_CTRL_GET_RSA_PADDING (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_GET_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 8) - -# define EVP_PKEY_CTRL_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 10) - -# define EVP_PKEY_CTRL_GET_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 11) -# define EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 12) - -# define EVP_PKEY_CTRL_RSA_KEYGEN_PRIMES (EVP_PKEY_ALG_CTRL + 13) - -# define EVP_PKEY_CTRL_RSA_IMPLICIT_REJECTION (EVP_PKEY_ALG_CTRL + 14) - -# define RSA_PKCS1_PADDING 1 -# define RSA_NO_PADDING 3 -# define RSA_PKCS1_OAEP_PADDING 4 -# define RSA_X931_PADDING 5 - -/* EVP_PKEY_ only */ -# define RSA_PKCS1_PSS_PADDING 6 -# define RSA_PKCS1_WITH_TLS_PADDING 7 - -/* internal RSA_ only */ -# define RSA_PKCS1_NO_IMPLICIT_REJECT_PADDING 8 - -# define RSA_PKCS1_PADDING_SIZE 11 - -# define RSA_set_app_data(s,arg) RSA_set_ex_data(s,0,arg) -# define RSA_get_app_data(s) RSA_get_ex_data(s,0) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 RSA *RSA_new(void); -OSSL_DEPRECATEDIN_3_0 RSA *RSA_new_method(ENGINE *engine); -OSSL_DEPRECATEDIN_3_0 int RSA_bits(const RSA *rsa); -OSSL_DEPRECATEDIN_3_0 int RSA_size(const RSA *rsa); -OSSL_DEPRECATEDIN_3_0 int RSA_security_bits(const RSA *rsa); - -OSSL_DEPRECATEDIN_3_0 int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d); -OSSL_DEPRECATEDIN_3_0 int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q); -OSSL_DEPRECATEDIN_3_0 int RSA_set0_crt_params(RSA *r, - BIGNUM *dmp1, BIGNUM *dmq1, - BIGNUM *iqmp); -OSSL_DEPRECATEDIN_3_0 int RSA_set0_multi_prime_params(RSA *r, - BIGNUM *primes[], - BIGNUM *exps[], - BIGNUM *coeffs[], - int pnum); -OSSL_DEPRECATEDIN_3_0 void RSA_get0_key(const RSA *r, - const BIGNUM **n, const BIGNUM **e, - const BIGNUM **d); -OSSL_DEPRECATEDIN_3_0 void RSA_get0_factors(const RSA *r, - const BIGNUM **p, const BIGNUM **q); -OSSL_DEPRECATEDIN_3_0 int RSA_get_multi_prime_extra_count(const RSA *r); -OSSL_DEPRECATEDIN_3_0 int RSA_get0_multi_prime_factors(const RSA *r, - const BIGNUM *primes[]); -OSSL_DEPRECATEDIN_3_0 void RSA_get0_crt_params(const RSA *r, - const BIGNUM **dmp1, - const BIGNUM **dmq1, - const BIGNUM **iqmp); -OSSL_DEPRECATEDIN_3_0 -int RSA_get0_multi_prime_crt_params(const RSA *r, const BIGNUM *exps[], - const BIGNUM *coeffs[]); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *RSA_get0_n(const RSA *d); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *RSA_get0_e(const RSA *d); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *RSA_get0_d(const RSA *d); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *RSA_get0_p(const RSA *d); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *RSA_get0_q(const RSA *d); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *RSA_get0_dmp1(const RSA *r); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *RSA_get0_dmq1(const RSA *r); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *RSA_get0_iqmp(const RSA *r); -OSSL_DEPRECATEDIN_3_0 const RSA_PSS_PARAMS *RSA_get0_pss_params(const RSA *r); -OSSL_DEPRECATEDIN_3_0 void RSA_clear_flags(RSA *r, int flags); -OSSL_DEPRECATEDIN_3_0 int RSA_test_flags(const RSA *r, int flags); -OSSL_DEPRECATEDIN_3_0 void RSA_set_flags(RSA *r, int flags); -OSSL_DEPRECATEDIN_3_0 int RSA_get_version(RSA *r); -OSSL_DEPRECATEDIN_3_0 ENGINE *RSA_get0_engine(const RSA *r); -# endif /* !OPENSSL_NO_DEPRECATED_3_0 */ - -# define EVP_RSA_gen(bits) \ - EVP_PKEY_Q_keygen(NULL, NULL, "RSA", (size_t)(0 + (bits))) - -/* Deprecated version */ -# ifndef OPENSSL_NO_DEPRECATED_0_9_8 -OSSL_DEPRECATEDIN_0_9_8 RSA *RSA_generate_key(int bits, unsigned long e, void - (*callback) (int, int, void *), - void *cb_arg); -# endif - -/* New version */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, - BN_GENCB *cb); -/* Multi-prime version */ -OSSL_DEPRECATEDIN_3_0 int RSA_generate_multi_prime_key(RSA *rsa, int bits, - int primes, BIGNUM *e, - BN_GENCB *cb); - -OSSL_DEPRECATEDIN_3_0 -int RSA_X931_derive_ex(RSA *rsa, BIGNUM *p1, BIGNUM *p2, - BIGNUM *q1, BIGNUM *q2, - const BIGNUM *Xp1, const BIGNUM *Xp2, - const BIGNUM *Xp, const BIGNUM *Xq1, - const BIGNUM *Xq2, const BIGNUM *Xq, - const BIGNUM *e, BN_GENCB *cb); -OSSL_DEPRECATEDIN_3_0 int RSA_X931_generate_key_ex(RSA *rsa, int bits, - const BIGNUM *e, - BN_GENCB *cb); - -OSSL_DEPRECATEDIN_3_0 int RSA_check_key(const RSA *); -OSSL_DEPRECATEDIN_3_0 int RSA_check_key_ex(const RSA *, BN_GENCB *cb); - /* next 4 return -1 on error */ -OSSL_DEPRECATEDIN_3_0 -int RSA_public_encrypt(int flen, const unsigned char *from, unsigned char *to, - RSA *rsa, int padding); -OSSL_DEPRECATEDIN_3_0 -int RSA_private_encrypt(int flen, const unsigned char *from, unsigned char *to, - RSA *rsa, int padding); -OSSL_DEPRECATEDIN_3_0 -int RSA_public_decrypt(int flen, const unsigned char *from, unsigned char *to, - RSA *rsa, int padding); -OSSL_DEPRECATEDIN_3_0 -int RSA_private_decrypt(int flen, const unsigned char *from, unsigned char *to, - RSA *rsa, int padding); -OSSL_DEPRECATEDIN_3_0 void RSA_free(RSA *r); -/* "up" the RSA object's reference count */ -OSSL_DEPRECATEDIN_3_0 int RSA_up_ref(RSA *r); -OSSL_DEPRECATEDIN_3_0 int RSA_flags(const RSA *r); - -OSSL_DEPRECATEDIN_3_0 void RSA_set_default_method(const RSA_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 const RSA_METHOD *RSA_get_default_method(void); -OSSL_DEPRECATEDIN_3_0 const RSA_METHOD *RSA_null_method(void); -OSSL_DEPRECATEDIN_3_0 const RSA_METHOD *RSA_get_method(const RSA *rsa); -OSSL_DEPRECATEDIN_3_0 int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); - -/* these are the actual RSA functions */ -OSSL_DEPRECATEDIN_3_0 const RSA_METHOD *RSA_PKCS1_OpenSSL(void); - -DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr(OSSL_DEPRECATEDIN_3_0, - RSA, RSAPublicKey) -DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr(OSSL_DEPRECATEDIN_3_0, - RSA, RSAPrivateKey) -# endif /* !OPENSSL_NO_DEPRECATED_3_0 */ - -int RSA_pkey_ctx_ctrl(EVP_PKEY_CTX *ctx, int optype, int cmd, int p1, void *p2); - -struct rsa_pss_params_st { - X509_ALGOR *hashAlgorithm; - X509_ALGOR *maskGenAlgorithm; - ASN1_INTEGER *saltLength; - ASN1_INTEGER *trailerField; - /* Decoded hash algorithm from maskGenAlgorithm */ - X509_ALGOR *maskHash; -}; - -DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS) -DECLARE_ASN1_DUP_FUNCTION(RSA_PSS_PARAMS) - -typedef struct rsa_oaep_params_st { - X509_ALGOR *hashFunc; - X509_ALGOR *maskGenFunc; - X509_ALGOR *pSourceFunc; - /* Decoded hash algorithm from maskGenFunc */ - X509_ALGOR *maskHash; -} RSA_OAEP_PARAMS; - -DECLARE_ASN1_FUNCTIONS(RSA_OAEP_PARAMS) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_STDIO -OSSL_DEPRECATEDIN_3_0 int RSA_print_fp(FILE *fp, const RSA *r, int offset); -# endif - -OSSL_DEPRECATEDIN_3_0 int RSA_print(BIO *bp, const RSA *r, int offset); - -/* - * The following 2 functions sign and verify a X509_SIG ASN1 object inside - * PKCS#1 padded RSA encryption - */ -OSSL_DEPRECATEDIN_3_0 int RSA_sign(int type, const unsigned char *m, - unsigned int m_length, unsigned char *sigret, - unsigned int *siglen, RSA *rsa); -OSSL_DEPRECATEDIN_3_0 int RSA_verify(int type, const unsigned char *m, - unsigned int m_length, - const unsigned char *sigbuf, - unsigned int siglen, RSA *rsa); - -/* - * The following 2 function sign and verify a ASN1_OCTET_STRING object inside - * PKCS#1 padded RSA encryption - */ -OSSL_DEPRECATEDIN_3_0 -int RSA_sign_ASN1_OCTET_STRING(int type, - const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, - RSA *rsa); -OSSL_DEPRECATEDIN_3_0 -int RSA_verify_ASN1_OCTET_STRING(int type, - const unsigned char *m, unsigned int m_length, - unsigned char *sigbuf, unsigned int siglen, - RSA *rsa); - -OSSL_DEPRECATEDIN_3_0 int RSA_blinding_on(RSA *rsa, BN_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 void RSA_blinding_off(RSA *rsa); -OSSL_DEPRECATEDIN_3_0 BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *ctx); - -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen, - const unsigned char *f, int fl); -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, - const unsigned char *f, int fl, - int rsa_len); -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, - const unsigned char *f, int fl); -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, - const unsigned char *f, int fl, - int rsa_len); -OSSL_DEPRECATEDIN_3_0 int PKCS1_MGF1(unsigned char *mask, long len, - const unsigned char *seed, long seedlen, - const EVP_MD *dgst); -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, - const unsigned char *f, int fl, - const unsigned char *p, int pl); -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, - const unsigned char *f, int fl, int rsa_len, - const unsigned char *p, int pl); -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, - const unsigned char *from, int flen, - const unsigned char *param, int plen, - const EVP_MD *md, const EVP_MD *mgf1md); -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, - const unsigned char *from, int flen, - int num, - const unsigned char *param, int plen, - const EVP_MD *md, const EVP_MD *mgf1md); -OSSL_DEPRECATEDIN_3_0 int RSA_padding_add_none(unsigned char *to, int tlen, - const unsigned char *f, int fl); -OSSL_DEPRECATEDIN_3_0 int RSA_padding_check_none(unsigned char *to, int tlen, - const unsigned char *f, int fl, - int rsa_len); -OSSL_DEPRECATEDIN_3_0 int RSA_padding_add_X931(unsigned char *to, int tlen, - const unsigned char *f, int fl); -OSSL_DEPRECATEDIN_3_0 int RSA_padding_check_X931(unsigned char *to, int tlen, - const unsigned char *f, int fl, - int rsa_len); -OSSL_DEPRECATEDIN_3_0 int RSA_X931_hash_id(int nid); - -OSSL_DEPRECATEDIN_3_0 -int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash, - const EVP_MD *Hash, const unsigned char *EM, - int sLen); -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM, - const unsigned char *mHash, const EVP_MD *Hash, - int sLen); - -OSSL_DEPRECATEDIN_3_0 -int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash, - const EVP_MD *Hash, const EVP_MD *mgf1Hash, - const unsigned char *EM, int sLen); - -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM, - const unsigned char *mHash, - const EVP_MD *Hash, const EVP_MD *mgf1Hash, - int sLen); - -# define RSA_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_RSA, l, p, newf, dupf, freef) -OSSL_DEPRECATEDIN_3_0 int RSA_set_ex_data(RSA *r, int idx, void *arg); -OSSL_DEPRECATEDIN_3_0 void *RSA_get_ex_data(const RSA *r, int idx); - -DECLARE_ASN1_DUP_FUNCTION_name_attr(OSSL_DEPRECATEDIN_3_0, RSA, RSAPublicKey) -DECLARE_ASN1_DUP_FUNCTION_name_attr(OSSL_DEPRECATEDIN_3_0, RSA, RSAPrivateKey) - -/* - * If this flag is set the RSA method is FIPS compliant and can be used in - * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its responsibility to ensure the - * result is compliant. - */ - -# define RSA_FLAG_FIPS_METHOD 0x0400 - -/* - * If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -# define RSA_FLAG_NON_FIPS_ALLOW 0x0400 -/* - * Application has decided PRNG is good enough to generate a key: don't - * check. - */ -# define RSA_FLAG_CHECKED 0x0800 - -OSSL_DEPRECATEDIN_3_0 RSA_METHOD *RSA_meth_new(const char *name, int flags); -OSSL_DEPRECATEDIN_3_0 void RSA_meth_free(RSA_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 const char *RSA_meth_get0_name(const RSA_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 int RSA_meth_set1_name(RSA_METHOD *meth, - const char *name); -OSSL_DEPRECATEDIN_3_0 int RSA_meth_get_flags(const RSA_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 int RSA_meth_set_flags(RSA_METHOD *meth, int flags); -OSSL_DEPRECATEDIN_3_0 void *RSA_meth_get0_app_data(const RSA_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 int RSA_meth_set0_app_data(RSA_METHOD *meth, - void *app_data); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_pub_enc(const RSA_METHOD *meth)) (int flen, - const unsigned char *from, - unsigned char *to, - RSA *rsa, int padding); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_pub_enc(RSA_METHOD *rsa, - int (*pub_enc) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, - int padding)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_pub_dec(const RSA_METHOD *meth)) (int flen, - const unsigned char *from, - unsigned char *to, - RSA *rsa, int padding); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_pub_dec(RSA_METHOD *rsa, - int (*pub_dec) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, - int padding)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_priv_enc(const RSA_METHOD *meth)) (int flen, - const unsigned char *from, - unsigned char *to, - RSA *rsa, int padding); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_priv_enc(RSA_METHOD *rsa, - int (*priv_enc) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, - int padding)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_priv_dec(const RSA_METHOD *meth)) (int flen, - const unsigned char *from, - unsigned char *to, - RSA *rsa, int padding); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_priv_dec(RSA_METHOD *rsa, - int (*priv_dec) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, - int padding)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_mod_exp(const RSA_METHOD *meth)) (BIGNUM *r0, - const BIGNUM *i, - RSA *rsa, BN_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_mod_exp(RSA_METHOD *rsa, - int (*mod_exp) (BIGNUM *r0, const BIGNUM *i, RSA *rsa, - BN_CTX *ctx)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_bn_mod_exp(const RSA_METHOD *meth)) (BIGNUM *r, - const BIGNUM *a, - const BIGNUM *p, - const BIGNUM *m, - BN_CTX *ctx, - BN_MONT_CTX *m_ctx); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_bn_mod_exp(RSA_METHOD *rsa, - int (*bn_mod_exp) (BIGNUM *r, - const BIGNUM *a, - const BIGNUM *p, - const BIGNUM *m, - BN_CTX *ctx, - BN_MONT_CTX *m_ctx)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_init(const RSA_METHOD *meth)) (RSA *rsa); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_init(RSA_METHOD *rsa, int (*init) (RSA *rsa)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_finish(const RSA_METHOD *meth)) (RSA *rsa); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_finish(RSA_METHOD *rsa, int (*finish) (RSA *rsa)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_sign(const RSA_METHOD *meth)) (int type, - const unsigned char *m, - unsigned int m_length, - unsigned char *sigret, - unsigned int *siglen, - const RSA *rsa); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_sign(RSA_METHOD *rsa, - int (*sign) (int type, const unsigned char *m, - unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, - const RSA *rsa)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_verify(const RSA_METHOD *meth)) (int dtype, - const unsigned char *m, - unsigned int m_length, - const unsigned char *sigbuf, - unsigned int siglen, - const RSA *rsa); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_verify(RSA_METHOD *rsa, - int (*verify) (int dtype, const unsigned char *m, - unsigned int m_length, - const unsigned char *sigbuf, - unsigned int siglen, const RSA *rsa)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_keygen(const RSA_METHOD *meth)) (RSA *rsa, int bits, - BIGNUM *e, BN_GENCB *cb); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_keygen(RSA_METHOD *rsa, - int (*keygen) (RSA *rsa, int bits, BIGNUM *e, - BN_GENCB *cb)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_multi_prime_keygen(const RSA_METHOD *meth)) (RSA *rsa, - int bits, - int primes, - BIGNUM *e, - BN_GENCB *cb); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_multi_prime_keygen(RSA_METHOD *meth, - int (*keygen) (RSA *rsa, int bits, - int primes, BIGNUM *e, - BN_GENCB *cb)); -#endif /* !OPENSSL_NO_DEPRECATED_3_0 */ - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/rsaerr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/rsaerr.h deleted file mode 100644 index c58463c..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/rsaerr.h +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_RSAERR_H -# define OPENSSL_RSAERR_H -# pragma once - -# include -# include -# include - - - -/* - * RSA reason codes. - */ -# define RSA_R_ALGORITHM_MISMATCH 100 -# define RSA_R_BAD_E_VALUE 101 -# define RSA_R_BAD_FIXED_HEADER_DECRYPT 102 -# define RSA_R_BAD_PAD_BYTE_COUNT 103 -# define RSA_R_BAD_SIGNATURE 104 -# define RSA_R_BLOCK_TYPE_IS_NOT_01 106 -# define RSA_R_BLOCK_TYPE_IS_NOT_02 107 -# define RSA_R_DATA_GREATER_THAN_MOD_LEN 108 -# define RSA_R_DATA_TOO_LARGE 109 -# define RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 110 -# define RSA_R_DATA_TOO_LARGE_FOR_MODULUS 132 -# define RSA_R_DATA_TOO_SMALL 111 -# define RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE 122 -# define RSA_R_DIGEST_DOES_NOT_MATCH 158 -# define RSA_R_DIGEST_NOT_ALLOWED 145 -# define RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY 112 -# define RSA_R_DMP1_NOT_CONGRUENT_TO_D 124 -# define RSA_R_DMQ1_NOT_CONGRUENT_TO_D 125 -# define RSA_R_D_E_NOT_CONGRUENT_TO_1 123 -# define RSA_R_FIRST_OCTET_INVALID 133 -# define RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 144 -# define RSA_R_INVALID_DIGEST 157 -# define RSA_R_INVALID_DIGEST_LENGTH 143 -# define RSA_R_INVALID_HEADER 137 -# define RSA_R_INVALID_KEYPAIR 171 -# define RSA_R_INVALID_KEY_LENGTH 173 -# define RSA_R_INVALID_LABEL 160 -# define RSA_R_INVALID_LENGTH 181 -# define RSA_R_INVALID_MESSAGE_LENGTH 131 -# define RSA_R_INVALID_MGF1_MD 156 -# define RSA_R_INVALID_MODULUS 174 -# define RSA_R_INVALID_MULTI_PRIME_KEY 167 -# define RSA_R_INVALID_OAEP_PARAMETERS 161 -# define RSA_R_INVALID_PADDING 138 -# define RSA_R_INVALID_PADDING_MODE 141 -# define RSA_R_INVALID_PSS_PARAMETERS 149 -# define RSA_R_INVALID_PSS_SALTLEN 146 -# define RSA_R_INVALID_REQUEST 175 -# define RSA_R_INVALID_SALT_LENGTH 150 -# define RSA_R_INVALID_STRENGTH 176 -# define RSA_R_INVALID_TRAILER 139 -# define RSA_R_INVALID_X931_DIGEST 142 -# define RSA_R_IQMP_NOT_INVERSE_OF_Q 126 -# define RSA_R_KEY_PRIME_NUM_INVALID 165 -# define RSA_R_KEY_SIZE_TOO_SMALL 120 -# define RSA_R_LAST_OCTET_INVALID 134 -# define RSA_R_MGF1_DIGEST_NOT_ALLOWED 152 -# define RSA_R_MISSING_PRIVATE_KEY 179 -# define RSA_R_MODULUS_TOO_LARGE 105 -# define RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R 168 -# define RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D 169 -# define RSA_R_MP_R_NOT_PRIME 170 -# define RSA_R_NO_PUBLIC_EXPONENT 140 -# define RSA_R_NULL_BEFORE_BLOCK_MISSING 113 -# define RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES 172 -# define RSA_R_N_DOES_NOT_EQUAL_P_Q 127 -# define RSA_R_OAEP_DECODING_ERROR 121 -# define RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 148 -# define RSA_R_PADDING_CHECK_FAILED 114 -# define RSA_R_PAIRWISE_TEST_FAILURE 177 -# define RSA_R_PKCS_DECODING_ERROR 159 -# define RSA_R_PSS_SALTLEN_TOO_SMALL 164 -# define RSA_R_PUB_EXPONENT_OUT_OF_RANGE 178 -# define RSA_R_P_NOT_PRIME 128 -# define RSA_R_Q_NOT_PRIME 129 -# define RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT 180 -# define RSA_R_RSA_OPERATIONS_NOT_SUPPORTED 130 -# define RSA_R_SLEN_CHECK_FAILED 136 -# define RSA_R_SLEN_RECOVERY_FAILED 135 -# define RSA_R_SSLV3_ROLLBACK_ATTACK 115 -# define RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 116 -# define RSA_R_UNKNOWN_ALGORITHM_TYPE 117 -# define RSA_R_UNKNOWN_DIGEST 166 -# define RSA_R_UNKNOWN_MASK_DIGEST 151 -# define RSA_R_UNKNOWN_PADDING_TYPE 118 -# define RSA_R_UNSUPPORTED_ENCRYPTION_TYPE 162 -# define RSA_R_UNSUPPORTED_LABEL_SOURCE 163 -# define RSA_R_UNSUPPORTED_MASK_ALGORITHM 153 -# define RSA_R_UNSUPPORTED_MASK_PARAMETER 154 -# define RSA_R_UNSUPPORTED_SIGNATURE_TYPE 155 -# define RSA_R_VALUE_MISSING 147 -# define RSA_R_WRONG_SIGNATURE_LENGTH 119 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/safestack.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/safestack.h deleted file mode 100644 index b8154f7..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/safestack.h +++ /dev/null @@ -1,320 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\safestack.h.in - * - * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_SAFESTACK_H -# define OPENSSL_SAFESTACK_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_SAFESTACK_H -# endif - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define STACK_OF(type) struct stack_st_##type - -/* Helper macro for internal use */ -# define SKM_DEFINE_STACK_OF_INTERNAL(t1, t2, t3) \ - STACK_OF(t1); \ - typedef int (*sk_##t1##_compfunc)(const t3 * const *a, const t3 *const *b); \ - typedef void (*sk_##t1##_freefunc)(t3 *a); \ - typedef t3 * (*sk_##t1##_copyfunc)(const t3 *a); \ - static ossl_inline void sk_##t1##_freefunc_thunk(OPENSSL_sk_freefunc freefunc_arg, void *ptr) \ - { \ - sk_##t1##_freefunc freefunc = (sk_##t1##_freefunc) freefunc_arg; \ - freefunc((t3 *)ptr); \ - } \ - static ossl_unused ossl_inline t2 *ossl_check_##t1##_type(t2 *ptr) \ - { \ - return ptr; \ - } \ - static ossl_unused ossl_inline const OPENSSL_STACK *ossl_check_const_##t1##_sk_type(const STACK_OF(t1) *sk) \ - { \ - return (const OPENSSL_STACK *)sk; \ - } \ - static ossl_unused ossl_inline OPENSSL_STACK *ossl_check_##t1##_sk_type(STACK_OF(t1) *sk) \ - { \ - return (OPENSSL_STACK *)sk; \ - } \ - static ossl_unused ossl_inline OPENSSL_sk_compfunc ossl_check_##t1##_compfunc_type(sk_##t1##_compfunc cmp) \ - { \ - return (OPENSSL_sk_compfunc)cmp; \ - } \ - static ossl_unused ossl_inline OPENSSL_sk_copyfunc ossl_check_##t1##_copyfunc_type(sk_##t1##_copyfunc cpy) \ - { \ - return (OPENSSL_sk_copyfunc)cpy; \ - } \ - static ossl_unused ossl_inline OPENSSL_sk_freefunc ossl_check_##t1##_freefunc_type(sk_##t1##_freefunc fr) \ - { \ - return (OPENSSL_sk_freefunc)fr; \ - } - -# define SKM_DEFINE_STACK_OF(t1, t2, t3) \ - STACK_OF(t1); \ - typedef int (*sk_##t1##_compfunc)(const t3 * const *a, const t3 *const *b); \ - typedef void (*sk_##t1##_freefunc)(t3 *a); \ - typedef t3 * (*sk_##t1##_copyfunc)(const t3 *a); \ - static ossl_inline void sk_##t1##_freefunc_thunk(OPENSSL_sk_freefunc freefunc_arg, void *ptr) \ - { \ - sk_##t1##_freefunc freefunc = (sk_##t1##_freefunc) freefunc_arg;\ - freefunc((t3 *)ptr);\ - } \ - static ossl_unused ossl_inline int sk_##t1##_num(const STACK_OF(t1) *sk) \ - { \ - return OPENSSL_sk_num((const OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_value(const STACK_OF(t1) *sk, int idx) \ - { \ - return (t2 *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); \ - } \ - static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new(sk_##t1##_compfunc compare) \ - { \ - OPENSSL_STACK *ret = OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); \ - OPENSSL_sk_freefunc_thunk f_thunk; \ - \ - f_thunk = (OPENSSL_sk_freefunc_thunk)sk_##t1##_freefunc_thunk; \ - return (STACK_OF(t1) *)OPENSSL_sk_set_thunks(ret, f_thunk); \ - } \ - static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_null(void) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_new_null(); \ - } \ - static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_reserve(sk_##t1##_compfunc compare, int n) \ - { \ - OPENSSL_STACK *ret = OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); \ - OPENSSL_sk_freefunc_thunk f_thunk; \ - \ - f_thunk = (OPENSSL_sk_freefunc_thunk)sk_##t1##_freefunc_thunk; \ - return (STACK_OF(t1) *)OPENSSL_sk_set_thunks(ret, f_thunk); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_reserve(STACK_OF(t1) *sk, int n) \ - { \ - return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); \ - } \ - static ossl_unused ossl_inline void sk_##t1##_free(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_free((OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline void sk_##t1##_zero(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_zero((OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_delete(STACK_OF(t1) *sk, int i) \ - { \ - return (t2 *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_delete_ptr(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return (t2 *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, \ - (const void *)ptr); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_push(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_unshift(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_pop(STACK_OF(t1) *sk) \ - { \ - return (t2 *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_shift(STACK_OF(t1) *sk) \ - { \ - return (t2 *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline void sk_##t1##_pop_free(STACK_OF(t1) *sk, sk_##t1##_freefunc freefunc) \ - { \ - OPENSSL_sk_freefunc_thunk f_thunk; \ - \ - f_thunk = (OPENSSL_sk_freefunc_thunk)sk_##t1##_freefunc_thunk; \ - sk = (STACK_OF(t1) *)OPENSSL_sk_set_thunks((OPENSSL_STACK *)sk, f_thunk); \ - \ - OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_insert(STACK_OF(t1) *sk, t2 *ptr, int idx) \ - { \ - return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_set(STACK_OF(t1) *sk, int idx, t2 *ptr) \ - { \ - return (t2 *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_find(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_find_ex(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_find_all(STACK_OF(t1) *sk, t2 *ptr, int *pnum) \ - { \ - return OPENSSL_sk_find_all((OPENSSL_STACK *)sk, (const void *)ptr, pnum); \ - } \ - static ossl_unused ossl_inline void sk_##t1##_sort(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_sort((OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_is_sorted(const STACK_OF(t1) *sk) \ - { \ - return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline STACK_OF(t1) * sk_##t1##_dup(const STACK_OF(t1) *sk) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_deep_copy(const STACK_OF(t1) *sk, \ - sk_##t1##_copyfunc copyfunc, \ - sk_##t1##_freefunc freefunc) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, \ - (OPENSSL_sk_copyfunc)copyfunc, \ - (OPENSSL_sk_freefunc)freefunc); \ - } \ - static ossl_unused ossl_inline sk_##t1##_compfunc sk_##t1##_set_cmp_func(STACK_OF(t1) *sk, sk_##t1##_compfunc compare) \ - { \ - return (sk_##t1##_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); \ - } - -# define DEFINE_STACK_OF(t) SKM_DEFINE_STACK_OF(t, t, t) -# define DEFINE_STACK_OF_CONST(t) SKM_DEFINE_STACK_OF(t, const t, t) -# define DEFINE_SPECIAL_STACK_OF(t1, t2) SKM_DEFINE_STACK_OF(t1, t2, t2) -# define DEFINE_SPECIAL_STACK_OF_CONST(t1, t2) \ - SKM_DEFINE_STACK_OF(t1, const t2, t2) - -/*- - * Strings are special: normally an lhash entry will point to a single - * (somewhat) mutable object. In the case of strings: - * - * a) Instead of a single char, there is an array of chars, NUL-terminated. - * b) The string may have be immutable. - * - * So, they need their own declarations. Especially important for - * type-checking tools, such as Deputy. - * - * In practice, however, it appears to be hard to have a const - * string. For now, I'm settling for dealing with the fact it is a - * string at all. - */ -typedef char *OPENSSL_STRING; -typedef const char *OPENSSL_CSTRING; - -/*- - * Confusingly, LHASH_OF(STRING) deals with char ** throughout, but - * STACK_OF(STRING) is really more like STACK_OF(char), only, as mentioned - * above, instead of a single char each entry is a NUL-terminated array of - * chars. So, we have to implement STRING specially for STACK_OF. This is - * dealt with in the autogenerated macros below. - */ -SKM_DEFINE_STACK_OF_INTERNAL(OPENSSL_STRING, char, char) -#define sk_OPENSSL_STRING_num(sk) OPENSSL_sk_num(ossl_check_const_OPENSSL_STRING_sk_type(sk)) -#define sk_OPENSSL_STRING_value(sk, idx) ((char *)OPENSSL_sk_value(ossl_check_const_OPENSSL_STRING_sk_type(sk), (idx))) -#define sk_OPENSSL_STRING_new(cmp) ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_new(ossl_check_OPENSSL_STRING_compfunc_type(cmp))) -#define sk_OPENSSL_STRING_new_null() ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_new_null()) -#define sk_OPENSSL_STRING_new_reserve(cmp, n) ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_new_reserve(ossl_check_OPENSSL_STRING_compfunc_type(cmp), (n))) -#define sk_OPENSSL_STRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OPENSSL_STRING_sk_type(sk), (n)) -#define sk_OPENSSL_STRING_free(sk) OPENSSL_sk_free(ossl_check_OPENSSL_STRING_sk_type(sk)) -#define sk_OPENSSL_STRING_zero(sk) OPENSSL_sk_zero(ossl_check_OPENSSL_STRING_sk_type(sk)) -#define sk_OPENSSL_STRING_delete(sk, i) ((char *)OPENSSL_sk_delete(ossl_check_OPENSSL_STRING_sk_type(sk), (i))) -#define sk_OPENSSL_STRING_delete_ptr(sk, ptr) ((char *)OPENSSL_sk_delete_ptr(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr))) -#define sk_OPENSSL_STRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr)) -#define sk_OPENSSL_STRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr)) -#define sk_OPENSSL_STRING_pop(sk) ((char *)OPENSSL_sk_pop(ossl_check_OPENSSL_STRING_sk_type(sk))) -#define sk_OPENSSL_STRING_shift(sk) ((char *)OPENSSL_sk_shift(ossl_check_OPENSSL_STRING_sk_type(sk))) -#define sk_OPENSSL_STRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_freefunc_type(freefunc)) -#define sk_OPENSSL_STRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr), (idx)) -#define sk_OPENSSL_STRING_set(sk, idx, ptr) ((char *)OPENSSL_sk_set(ossl_check_OPENSSL_STRING_sk_type(sk), (idx), ossl_check_OPENSSL_STRING_type(ptr))) -#define sk_OPENSSL_STRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr)) -#define sk_OPENSSL_STRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr)) -#define sk_OPENSSL_STRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr), pnum) -#define sk_OPENSSL_STRING_sort(sk) OPENSSL_sk_sort(ossl_check_OPENSSL_STRING_sk_type(sk)) -#define sk_OPENSSL_STRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OPENSSL_STRING_sk_type(sk)) -#define sk_OPENSSL_STRING_dup(sk) ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_dup(ossl_check_const_OPENSSL_STRING_sk_type(sk))) -#define sk_OPENSSL_STRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_deep_copy(ossl_check_const_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_copyfunc_type(copyfunc), ossl_check_OPENSSL_STRING_freefunc_type(freefunc))) -#define sk_OPENSSL_STRING_set_cmp_func(sk, cmp) ((sk_OPENSSL_STRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(OPENSSL_CSTRING, const char, char) -#define sk_OPENSSL_CSTRING_num(sk) OPENSSL_sk_num(ossl_check_const_OPENSSL_CSTRING_sk_type(sk)) -#define sk_OPENSSL_CSTRING_value(sk, idx) ((const char *)OPENSSL_sk_value(ossl_check_const_OPENSSL_CSTRING_sk_type(sk), (idx))) -#define sk_OPENSSL_CSTRING_new(cmp) ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_new(ossl_check_OPENSSL_CSTRING_compfunc_type(cmp))) -#define sk_OPENSSL_CSTRING_new_null() ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_new_null()) -#define sk_OPENSSL_CSTRING_new_reserve(cmp, n) ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_new_reserve(ossl_check_OPENSSL_CSTRING_compfunc_type(cmp), (n))) -#define sk_OPENSSL_CSTRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OPENSSL_CSTRING_sk_type(sk), (n)) -#define sk_OPENSSL_CSTRING_free(sk) OPENSSL_sk_free(ossl_check_OPENSSL_CSTRING_sk_type(sk)) -#define sk_OPENSSL_CSTRING_zero(sk) OPENSSL_sk_zero(ossl_check_OPENSSL_CSTRING_sk_type(sk)) -#define sk_OPENSSL_CSTRING_delete(sk, i) ((const char *)OPENSSL_sk_delete(ossl_check_OPENSSL_CSTRING_sk_type(sk), (i))) -#define sk_OPENSSL_CSTRING_delete_ptr(sk, ptr) ((const char *)OPENSSL_sk_delete_ptr(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr))) -#define sk_OPENSSL_CSTRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr)) -#define sk_OPENSSL_CSTRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr)) -#define sk_OPENSSL_CSTRING_pop(sk) ((const char *)OPENSSL_sk_pop(ossl_check_OPENSSL_CSTRING_sk_type(sk))) -#define sk_OPENSSL_CSTRING_shift(sk) ((const char *)OPENSSL_sk_shift(ossl_check_OPENSSL_CSTRING_sk_type(sk))) -#define sk_OPENSSL_CSTRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_freefunc_type(freefunc)) -#define sk_OPENSSL_CSTRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr), (idx)) -#define sk_OPENSSL_CSTRING_set(sk, idx, ptr) ((const char *)OPENSSL_sk_set(ossl_check_OPENSSL_CSTRING_sk_type(sk), (idx), ossl_check_OPENSSL_CSTRING_type(ptr))) -#define sk_OPENSSL_CSTRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr)) -#define sk_OPENSSL_CSTRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr)) -#define sk_OPENSSL_CSTRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr), pnum) -#define sk_OPENSSL_CSTRING_sort(sk) OPENSSL_sk_sort(ossl_check_OPENSSL_CSTRING_sk_type(sk)) -#define sk_OPENSSL_CSTRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OPENSSL_CSTRING_sk_type(sk)) -#define sk_OPENSSL_CSTRING_dup(sk) ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_dup(ossl_check_const_OPENSSL_CSTRING_sk_type(sk))) -#define sk_OPENSSL_CSTRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_deep_copy(ossl_check_const_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_copyfunc_type(copyfunc), ossl_check_OPENSSL_CSTRING_freefunc_type(freefunc))) -#define sk_OPENSSL_CSTRING_set_cmp_func(sk, cmp) ((sk_OPENSSL_CSTRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_compfunc_type(cmp))) - - -#if !defined(OPENSSL_NO_DEPRECATED_3_0) -/* - * This is not used by OpenSSL. A block of bytes, NOT nul-terminated. - * These should also be distinguished from "normal" stacks. - */ -typedef void *OPENSSL_BLOCK; -SKM_DEFINE_STACK_OF_INTERNAL(OPENSSL_BLOCK, void, void) -#define sk_OPENSSL_BLOCK_num(sk) OPENSSL_sk_num(ossl_check_const_OPENSSL_BLOCK_sk_type(sk)) -#define sk_OPENSSL_BLOCK_value(sk, idx) ((void *)OPENSSL_sk_value(ossl_check_const_OPENSSL_BLOCK_sk_type(sk), (idx))) -#define sk_OPENSSL_BLOCK_new(cmp) ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_new(ossl_check_OPENSSL_BLOCK_compfunc_type(cmp))) -#define sk_OPENSSL_BLOCK_new_null() ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_new_null()) -#define sk_OPENSSL_BLOCK_new_reserve(cmp, n) ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_new_reserve(ossl_check_OPENSSL_BLOCK_compfunc_type(cmp), (n))) -#define sk_OPENSSL_BLOCK_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OPENSSL_BLOCK_sk_type(sk), (n)) -#define sk_OPENSSL_BLOCK_free(sk) OPENSSL_sk_free(ossl_check_OPENSSL_BLOCK_sk_type(sk)) -#define sk_OPENSSL_BLOCK_zero(sk) OPENSSL_sk_zero(ossl_check_OPENSSL_BLOCK_sk_type(sk)) -#define sk_OPENSSL_BLOCK_delete(sk, i) ((void *)OPENSSL_sk_delete(ossl_check_OPENSSL_BLOCK_sk_type(sk), (i))) -#define sk_OPENSSL_BLOCK_delete_ptr(sk, ptr) ((void *)OPENSSL_sk_delete_ptr(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr))) -#define sk_OPENSSL_BLOCK_push(sk, ptr) OPENSSL_sk_push(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr)) -#define sk_OPENSSL_BLOCK_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr)) -#define sk_OPENSSL_BLOCK_pop(sk) ((void *)OPENSSL_sk_pop(ossl_check_OPENSSL_BLOCK_sk_type(sk))) -#define sk_OPENSSL_BLOCK_shift(sk) ((void *)OPENSSL_sk_shift(ossl_check_OPENSSL_BLOCK_sk_type(sk))) -#define sk_OPENSSL_BLOCK_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_freefunc_type(freefunc)) -#define sk_OPENSSL_BLOCK_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr), (idx)) -#define sk_OPENSSL_BLOCK_set(sk, idx, ptr) ((void *)OPENSSL_sk_set(ossl_check_OPENSSL_BLOCK_sk_type(sk), (idx), ossl_check_OPENSSL_BLOCK_type(ptr))) -#define sk_OPENSSL_BLOCK_find(sk, ptr) OPENSSL_sk_find(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr)) -#define sk_OPENSSL_BLOCK_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr)) -#define sk_OPENSSL_BLOCK_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr), pnum) -#define sk_OPENSSL_BLOCK_sort(sk) OPENSSL_sk_sort(ossl_check_OPENSSL_BLOCK_sk_type(sk)) -#define sk_OPENSSL_BLOCK_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OPENSSL_BLOCK_sk_type(sk)) -#define sk_OPENSSL_BLOCK_dup(sk) ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_dup(ossl_check_const_OPENSSL_BLOCK_sk_type(sk))) -#define sk_OPENSSL_BLOCK_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_deep_copy(ossl_check_const_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_copyfunc_type(copyfunc), ossl_check_OPENSSL_BLOCK_freefunc_type(freefunc))) -#define sk_OPENSSL_BLOCK_set_cmp_func(sk, cmp) ((sk_OPENSSL_BLOCK_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_compfunc_type(cmp))) - -#endif - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/seed.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/seed.h deleted file mode 100644 index edb218a..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/seed.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 2007-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * Copyright (c) 2007 KISA(Korea Information Security Agency). All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Neither the name of author 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 AUTHOR 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 AUTHOR 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. - */ - -#ifndef OPENSSL_SEED_H -# define OPENSSL_SEED_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_SEED_H -# endif - -# include - -# ifndef OPENSSL_NO_SEED -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# define SEED_BLOCK_SIZE 16 -# define SEED_KEY_LENGTH 16 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* look whether we need 'long' to get 32 bits */ -# ifdef AES_LONG -# ifndef SEED_LONG -# define SEED_LONG 1 -# endif -# endif - - -typedef struct seed_key_st { -# ifdef SEED_LONG - unsigned long data[32]; -# else - unsigned int data[32]; -# endif -} SEED_KEY_SCHEDULE; -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -void SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH], - SEED_KEY_SCHEDULE *ks); -OSSL_DEPRECATEDIN_3_0 -void SEED_encrypt(const unsigned char s[SEED_BLOCK_SIZE], - unsigned char d[SEED_BLOCK_SIZE], - const SEED_KEY_SCHEDULE *ks); -OSSL_DEPRECATEDIN_3_0 -void SEED_decrypt(const unsigned char s[SEED_BLOCK_SIZE], - unsigned char d[SEED_BLOCK_SIZE], - const SEED_KEY_SCHEDULE *ks); -OSSL_DEPRECATEDIN_3_0 -void SEED_ecb_encrypt(const unsigned char *in, - unsigned char *out, - const SEED_KEY_SCHEDULE *ks, int enc); -OSSL_DEPRECATEDIN_3_0 -void SEED_cbc_encrypt(const unsigned char *in, unsigned char *out, size_t len, - const SEED_KEY_SCHEDULE *ks, - unsigned char ivec[SEED_BLOCK_SIZE], - int enc); -OSSL_DEPRECATEDIN_3_0 -void SEED_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const SEED_KEY_SCHEDULE *ks, - unsigned char ivec[SEED_BLOCK_SIZE], - int *num, int enc); -OSSL_DEPRECATEDIN_3_0 -void SEED_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const SEED_KEY_SCHEDULE *ks, - unsigned char ivec[SEED_BLOCK_SIZE], - int *num); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/self_test.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/self_test.h deleted file mode 100644 index 292d61d..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/self_test.h +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_SELF_TEST_H -# define OPENSSL_SELF_TEST_H -# pragma once - -# include /* OSSL_CALLBACK */ - -# ifdef __cplusplus -extern "C" { -# endif - -/* The test event phases */ -# define OSSL_SELF_TEST_PHASE_NONE "None" -# define OSSL_SELF_TEST_PHASE_START "Start" -# define OSSL_SELF_TEST_PHASE_CORRUPT "Corrupt" -# define OSSL_SELF_TEST_PHASE_PASS "Pass" -# define OSSL_SELF_TEST_PHASE_FAIL "Fail" - -/* Test event categories */ -# define OSSL_SELF_TEST_TYPE_NONE "None" -# define OSSL_SELF_TEST_TYPE_MODULE_INTEGRITY "Module_Integrity" -# define OSSL_SELF_TEST_TYPE_INSTALL_INTEGRITY "Install_Integrity" -# define OSSL_SELF_TEST_TYPE_CRNG "Continuous_RNG_Test" -# define OSSL_SELF_TEST_TYPE_PCT "Conditional_PCT" -# define OSSL_SELF_TEST_TYPE_PCT_KAT "Conditional_KAT" -# define OSSL_SELF_TEST_TYPE_PCT_IMPORT "Import_PCT" -# define OSSL_SELF_TEST_TYPE_KAT_INTEGRITY "KAT_Integrity" -# define OSSL_SELF_TEST_TYPE_KAT_CIPHER "KAT_Cipher" -# define OSSL_SELF_TEST_TYPE_KAT_ASYM_CIPHER "KAT_AsymmetricCipher" -# define OSSL_SELF_TEST_TYPE_KAT_ASYM_KEYGEN "KAT_AsymmetricKeyGeneration" -# define OSSL_SELF_TEST_TYPE_KAT_KEM "KAT_KEM" -# define OSSL_SELF_TEST_TYPE_KAT_DIGEST "KAT_Digest" -# define OSSL_SELF_TEST_TYPE_KAT_SIGNATURE "KAT_Signature" -# define OSSL_SELF_TEST_TYPE_PCT_SIGNATURE "PCT_Signature" -# define OSSL_SELF_TEST_TYPE_KAT_KDF "KAT_KDF" -# define OSSL_SELF_TEST_TYPE_KAT_KA "KAT_KA" -# define OSSL_SELF_TEST_TYPE_DRBG "DRBG" - -/* Test event sub categories */ -# define OSSL_SELF_TEST_DESC_NONE "None" -# define OSSL_SELF_TEST_DESC_INTEGRITY_HMAC "HMAC" -# define OSSL_SELF_TEST_DESC_PCT_RSA "RSA" -# define OSSL_SELF_TEST_DESC_PCT_RSA_PKCS1 "RSA" -# define OSSL_SELF_TEST_DESC_PCT_ECDSA "ECDSA" -# define OSSL_SELF_TEST_DESC_PCT_EDDSA "EDDSA" -# define OSSL_SELF_TEST_DESC_PCT_DH "DH" -# define OSSL_SELF_TEST_DESC_PCT_DSA "DSA" -# define OSSL_SELF_TEST_DESC_PCT_ML_DSA "ML-DSA" -# define OSSL_SELF_TEST_DESC_PCT_ML_KEM "ML-KEM" -# define OSSL_SELF_TEST_DESC_PCT_SLH_DSA "SLH-DSA" -# define OSSL_SELF_TEST_DESC_CIPHER_AES_GCM "AES_GCM" -# define OSSL_SELF_TEST_DESC_CIPHER_AES_ECB "AES_ECB_Decrypt" -# define OSSL_SELF_TEST_DESC_CIPHER_TDES "TDES" -# define OSSL_SELF_TEST_DESC_ASYM_RSA_ENC "RSA_Encrypt" -# define OSSL_SELF_TEST_DESC_ASYM_RSA_DEC "RSA_Decrypt" -# define OSSL_SELF_TEST_DESC_MD_SHA1 "SHA1" -# define OSSL_SELF_TEST_DESC_MD_SHA2 "SHA2" -# define OSSL_SELF_TEST_DESC_MD_SHA3 "SHA3" -# define OSSL_SELF_TEST_DESC_SIGN_DSA "DSA" -# define OSSL_SELF_TEST_DESC_SIGN_RSA "RSA" -# define OSSL_SELF_TEST_DESC_SIGN_ECDSA "ECDSA" -# define OSSL_SELF_TEST_DESC_SIGN_DetECDSA "DetECDSA" -# define OSSL_SELF_TEST_DESC_SIGN_EDDSA "EDDSA" -# define OSSL_SELF_TEST_DESC_SIGN_LMS "LMS" -# define OSSL_SELF_TEST_DESC_SIGN_ML_DSA "ML-DSA" -# define OSSL_SELF_TEST_DESC_SIGN_SLH_DSA "SLH-DSA" -# define OSSL_SELF_TEST_DESC_KEM "KEM" -# define OSSL_SELF_TEST_DESC_DRBG_CTR "CTR" -# define OSSL_SELF_TEST_DESC_DRBG_HASH "HASH" -# define OSSL_SELF_TEST_DESC_DRBG_HMAC "HMAC" -# define OSSL_SELF_TEST_DESC_KA_DH "DH" -# define OSSL_SELF_TEST_DESC_KA_ECDH "ECDH" -# define OSSL_SELF_TEST_DESC_KDF_HKDF "HKDF" -# define OSSL_SELF_TEST_DESC_KDF_SSKDF "SSKDF" -# define OSSL_SELF_TEST_DESC_KDF_X963KDF "X963KDF" -# define OSSL_SELF_TEST_DESC_KDF_X942KDF "X942KDF" -# define OSSL_SELF_TEST_DESC_KDF_PBKDF2 "PBKDF2" -# define OSSL_SELF_TEST_DESC_KDF_SSHKDF "SSHKDF" -# define OSSL_SELF_TEST_DESC_KDF_TLS12_PRF "TLS12_PRF" -# define OSSL_SELF_TEST_DESC_KDF_KBKDF "KBKDF" -# define OSSL_SELF_TEST_DESC_KDF_KBKDF_KMAC "KBKDF_KMAC" -# define OSSL_SELF_TEST_DESC_KDF_TLS13_EXTRACT "TLS13_KDF_EXTRACT" -# define OSSL_SELF_TEST_DESC_KDF_TLS13_EXPAND "TLS13_KDF_EXPAND" -# define OSSL_SELF_TEST_DESC_RNG "RNG" -# define OSSL_SELF_TEST_DESC_KEYGEN_ML_DSA "ML-DSA" -# define OSSL_SELF_TEST_DESC_KEYGEN_ML_KEM "ML-KEM" -# define OSSL_SELF_TEST_DESC_KEYGEN_SLH_DSA "SLH-DSA" -# define OSSL_SELF_TEST_DESC_ENCAP_KEM "KEM_Encap" -# define OSSL_SELF_TEST_DESC_DECAP_KEM "KEM_Decap" -# define OSSL_SELF_TEST_DESC_DECAP_KEM_FAIL "KEM_Decap_Reject" - -void OSSL_SELF_TEST_set_callback(OSSL_LIB_CTX *libctx, OSSL_CALLBACK *cb, - void *cbarg); -void OSSL_SELF_TEST_get_callback(OSSL_LIB_CTX *libctx, OSSL_CALLBACK **cb, - void **cbarg); - -OSSL_SELF_TEST *OSSL_SELF_TEST_new(OSSL_CALLBACK *cb, void *cbarg); -void OSSL_SELF_TEST_free(OSSL_SELF_TEST *st); - -void OSSL_SELF_TEST_onbegin(OSSL_SELF_TEST *st, const char *type, - const char *desc); -int OSSL_SELF_TEST_oncorrupt_byte(OSSL_SELF_TEST *st, unsigned char *bytes); -void OSSL_SELF_TEST_onend(OSSL_SELF_TEST *st, int ret); - -# ifdef __cplusplus -} -# endif -#endif /* OPENSSL_SELF_TEST_H */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/sha.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/sha.h deleted file mode 100644 index 163a7d5..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/sha.h +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_SHA_H -# define OPENSSL_SHA_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_SHA_H -# endif - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# define SHA_DIGEST_LENGTH 20 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/*- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! SHA_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define SHA_LONG unsigned int - -# define SHA_LBLOCK 16 -# define SHA_CBLOCK (SHA_LBLOCK*4)/* SHA treats input data as a - * contiguous array of 32 bit wide - * big-endian values. */ -# define SHA_LAST_BLOCK (SHA_CBLOCK-8) - -typedef struct SHAstate_st { - SHA_LONG h0, h1, h2, h3, h4; - SHA_LONG Nl, Nh; - SHA_LONG data[SHA_LBLOCK]; - unsigned int num; -} SHA_CTX; - -OSSL_DEPRECATEDIN_3_0 int SHA1_Init(SHA_CTX *c); -OSSL_DEPRECATEDIN_3_0 int SHA1_Update(SHA_CTX *c, const void *data, size_t len); -OSSL_DEPRECATEDIN_3_0 int SHA1_Final(unsigned char *md, SHA_CTX *c); -OSSL_DEPRECATEDIN_3_0 void SHA1_Transform(SHA_CTX *c, const unsigned char *data); -# endif - -unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SHA256_CBLOCK (SHA_LBLOCK*4)/* SHA-256 treats input data as a - * contiguous array of 32 bit wide - * big-endian values. */ - -typedef struct SHA256state_st { - SHA_LONG h[8]; - SHA_LONG Nl, Nh; - SHA_LONG data[SHA_LBLOCK]; - unsigned int num, md_len; -} SHA256_CTX; - -OSSL_DEPRECATEDIN_3_0 int SHA224_Init(SHA256_CTX *c); -OSSL_DEPRECATEDIN_3_0 int SHA224_Update(SHA256_CTX *c, - const void *data, size_t len); -OSSL_DEPRECATEDIN_3_0 int SHA224_Final(unsigned char *md, SHA256_CTX *c); -OSSL_DEPRECATEDIN_3_0 int SHA256_Init(SHA256_CTX *c); -OSSL_DEPRECATEDIN_3_0 int SHA256_Update(SHA256_CTX *c, - const void *data, size_t len); -OSSL_DEPRECATEDIN_3_0 int SHA256_Final(unsigned char *md, SHA256_CTX *c); -OSSL_DEPRECATEDIN_3_0 void SHA256_Transform(SHA256_CTX *c, - const unsigned char *data); -# endif - -unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char *md); -unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md); - -# define SHA256_192_DIGEST_LENGTH 24 -# define SHA224_DIGEST_LENGTH 28 -# define SHA256_DIGEST_LENGTH 32 -# define SHA384_DIGEST_LENGTH 48 -# define SHA512_DIGEST_LENGTH 64 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* - * Unlike 32-bit digest algorithms, SHA-512 *relies* on SHA_LONG64 - * being exactly 64-bit wide. See Implementation Notes in sha512.c - * for further details. - */ -/* - * SHA-512 treats input data as a - * contiguous array of 64 bit - * wide big-endian values. - */ -# define SHA512_CBLOCK (SHA_LBLOCK*8) -# if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__) -# define SHA_LONG64 unsigned __int64 -# elif defined(__arch64__) -# define SHA_LONG64 unsigned long -# else -# define SHA_LONG64 unsigned long long -# endif - -typedef struct SHA512state_st { - SHA_LONG64 h[8]; - SHA_LONG64 Nl, Nh; - union { - SHA_LONG64 d[SHA_LBLOCK]; - unsigned char p[SHA512_CBLOCK]; - } u; - unsigned int num, md_len; -} SHA512_CTX; - -OSSL_DEPRECATEDIN_3_0 int SHA384_Init(SHA512_CTX *c); -OSSL_DEPRECATEDIN_3_0 int SHA384_Update(SHA512_CTX *c, - const void *data, size_t len); -OSSL_DEPRECATEDIN_3_0 int SHA384_Final(unsigned char *md, SHA512_CTX *c); -OSSL_DEPRECATEDIN_3_0 int SHA512_Init(SHA512_CTX *c); -OSSL_DEPRECATEDIN_3_0 int SHA512_Update(SHA512_CTX *c, - const void *data, size_t len); -OSSL_DEPRECATEDIN_3_0 int SHA512_Final(unsigned char *md, SHA512_CTX *c); -OSSL_DEPRECATEDIN_3_0 void SHA512_Transform(SHA512_CTX *c, - const unsigned char *data); -# endif - -unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md); -unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md); - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/srp.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/srp.h deleted file mode 100644 index 5836678..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/srp.h +++ /dev/null @@ -1,285 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\srp.h.in - * - * Copyright 2004-2021 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2004, EdelKey Project. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - * - * Originally written by Christophe Renou and Peter Sylvester, - * for the EdelKey project. - */ - - - -#ifndef OPENSSL_SRP_H -# define OPENSSL_SRP_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_SRP_H -# endif - -#include - -#ifndef OPENSSL_NO_SRP -# include -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 - -typedef struct SRP_gN_cache_st { - char *b64_bn; - BIGNUM *bn; -} SRP_gN_cache; -SKM_DEFINE_STACK_OF_INTERNAL(SRP_gN_cache, SRP_gN_cache, SRP_gN_cache) -#define sk_SRP_gN_cache_num(sk) OPENSSL_sk_num(ossl_check_const_SRP_gN_cache_sk_type(sk)) -#define sk_SRP_gN_cache_value(sk, idx) ((SRP_gN_cache *)OPENSSL_sk_value(ossl_check_const_SRP_gN_cache_sk_type(sk), (idx))) -#define sk_SRP_gN_cache_new(cmp) ((STACK_OF(SRP_gN_cache) *)OPENSSL_sk_new(ossl_check_SRP_gN_cache_compfunc_type(cmp))) -#define sk_SRP_gN_cache_new_null() ((STACK_OF(SRP_gN_cache) *)OPENSSL_sk_new_null()) -#define sk_SRP_gN_cache_new_reserve(cmp, n) ((STACK_OF(SRP_gN_cache) *)OPENSSL_sk_new_reserve(ossl_check_SRP_gN_cache_compfunc_type(cmp), (n))) -#define sk_SRP_gN_cache_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SRP_gN_cache_sk_type(sk), (n)) -#define sk_SRP_gN_cache_free(sk) OPENSSL_sk_free(ossl_check_SRP_gN_cache_sk_type(sk)) -#define sk_SRP_gN_cache_zero(sk) OPENSSL_sk_zero(ossl_check_SRP_gN_cache_sk_type(sk)) -#define sk_SRP_gN_cache_delete(sk, i) ((SRP_gN_cache *)OPENSSL_sk_delete(ossl_check_SRP_gN_cache_sk_type(sk), (i))) -#define sk_SRP_gN_cache_delete_ptr(sk, ptr) ((SRP_gN_cache *)OPENSSL_sk_delete_ptr(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr))) -#define sk_SRP_gN_cache_push(sk, ptr) OPENSSL_sk_push(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr)) -#define sk_SRP_gN_cache_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr)) -#define sk_SRP_gN_cache_pop(sk) ((SRP_gN_cache *)OPENSSL_sk_pop(ossl_check_SRP_gN_cache_sk_type(sk))) -#define sk_SRP_gN_cache_shift(sk) ((SRP_gN_cache *)OPENSSL_sk_shift(ossl_check_SRP_gN_cache_sk_type(sk))) -#define sk_SRP_gN_cache_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_freefunc_type(freefunc)) -#define sk_SRP_gN_cache_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr), (idx)) -#define sk_SRP_gN_cache_set(sk, idx, ptr) ((SRP_gN_cache *)OPENSSL_sk_set(ossl_check_SRP_gN_cache_sk_type(sk), (idx), ossl_check_SRP_gN_cache_type(ptr))) -#define sk_SRP_gN_cache_find(sk, ptr) OPENSSL_sk_find(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr)) -#define sk_SRP_gN_cache_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr)) -#define sk_SRP_gN_cache_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr), pnum) -#define sk_SRP_gN_cache_sort(sk) OPENSSL_sk_sort(ossl_check_SRP_gN_cache_sk_type(sk)) -#define sk_SRP_gN_cache_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SRP_gN_cache_sk_type(sk)) -#define sk_SRP_gN_cache_dup(sk) ((STACK_OF(SRP_gN_cache) *)OPENSSL_sk_dup(ossl_check_const_SRP_gN_cache_sk_type(sk))) -#define sk_SRP_gN_cache_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SRP_gN_cache) *)OPENSSL_sk_deep_copy(ossl_check_const_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_copyfunc_type(copyfunc), ossl_check_SRP_gN_cache_freefunc_type(freefunc))) -#define sk_SRP_gN_cache_set_cmp_func(sk, cmp) ((sk_SRP_gN_cache_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_compfunc_type(cmp))) - - - -typedef struct SRP_user_pwd_st { - /* Owned by us. */ - char *id; - BIGNUM *s; - BIGNUM *v; - /* Not owned by us. */ - const BIGNUM *g; - const BIGNUM *N; - /* Owned by us. */ - char *info; -} SRP_user_pwd; -SKM_DEFINE_STACK_OF_INTERNAL(SRP_user_pwd, SRP_user_pwd, SRP_user_pwd) -#define sk_SRP_user_pwd_num(sk) OPENSSL_sk_num(ossl_check_const_SRP_user_pwd_sk_type(sk)) -#define sk_SRP_user_pwd_value(sk, idx) ((SRP_user_pwd *)OPENSSL_sk_value(ossl_check_const_SRP_user_pwd_sk_type(sk), (idx))) -#define sk_SRP_user_pwd_new(cmp) ((STACK_OF(SRP_user_pwd) *)OPENSSL_sk_new(ossl_check_SRP_user_pwd_compfunc_type(cmp))) -#define sk_SRP_user_pwd_new_null() ((STACK_OF(SRP_user_pwd) *)OPENSSL_sk_new_null()) -#define sk_SRP_user_pwd_new_reserve(cmp, n) ((STACK_OF(SRP_user_pwd) *)OPENSSL_sk_new_reserve(ossl_check_SRP_user_pwd_compfunc_type(cmp), (n))) -#define sk_SRP_user_pwd_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SRP_user_pwd_sk_type(sk), (n)) -#define sk_SRP_user_pwd_free(sk) OPENSSL_sk_free(ossl_check_SRP_user_pwd_sk_type(sk)) -#define sk_SRP_user_pwd_zero(sk) OPENSSL_sk_zero(ossl_check_SRP_user_pwd_sk_type(sk)) -#define sk_SRP_user_pwd_delete(sk, i) ((SRP_user_pwd *)OPENSSL_sk_delete(ossl_check_SRP_user_pwd_sk_type(sk), (i))) -#define sk_SRP_user_pwd_delete_ptr(sk, ptr) ((SRP_user_pwd *)OPENSSL_sk_delete_ptr(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr))) -#define sk_SRP_user_pwd_push(sk, ptr) OPENSSL_sk_push(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr)) -#define sk_SRP_user_pwd_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr)) -#define sk_SRP_user_pwd_pop(sk) ((SRP_user_pwd *)OPENSSL_sk_pop(ossl_check_SRP_user_pwd_sk_type(sk))) -#define sk_SRP_user_pwd_shift(sk) ((SRP_user_pwd *)OPENSSL_sk_shift(ossl_check_SRP_user_pwd_sk_type(sk))) -#define sk_SRP_user_pwd_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_freefunc_type(freefunc)) -#define sk_SRP_user_pwd_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr), (idx)) -#define sk_SRP_user_pwd_set(sk, idx, ptr) ((SRP_user_pwd *)OPENSSL_sk_set(ossl_check_SRP_user_pwd_sk_type(sk), (idx), ossl_check_SRP_user_pwd_type(ptr))) -#define sk_SRP_user_pwd_find(sk, ptr) OPENSSL_sk_find(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr)) -#define sk_SRP_user_pwd_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr)) -#define sk_SRP_user_pwd_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr), pnum) -#define sk_SRP_user_pwd_sort(sk) OPENSSL_sk_sort(ossl_check_SRP_user_pwd_sk_type(sk)) -#define sk_SRP_user_pwd_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SRP_user_pwd_sk_type(sk)) -#define sk_SRP_user_pwd_dup(sk) ((STACK_OF(SRP_user_pwd) *)OPENSSL_sk_dup(ossl_check_const_SRP_user_pwd_sk_type(sk))) -#define sk_SRP_user_pwd_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SRP_user_pwd) *)OPENSSL_sk_deep_copy(ossl_check_const_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_copyfunc_type(copyfunc), ossl_check_SRP_user_pwd_freefunc_type(freefunc))) -#define sk_SRP_user_pwd_set_cmp_func(sk, cmp) ((sk_SRP_user_pwd_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_compfunc_type(cmp))) - - -OSSL_DEPRECATEDIN_3_0 -SRP_user_pwd *SRP_user_pwd_new(void); -OSSL_DEPRECATEDIN_3_0 -void SRP_user_pwd_free(SRP_user_pwd *user_pwd); - -OSSL_DEPRECATEDIN_3_0 -void SRP_user_pwd_set_gN(SRP_user_pwd *user_pwd, const BIGNUM *g, - const BIGNUM *N); -OSSL_DEPRECATEDIN_3_0 -int SRP_user_pwd_set1_ids(SRP_user_pwd *user_pwd, const char *id, - const char *info); -OSSL_DEPRECATEDIN_3_0 -int SRP_user_pwd_set0_sv(SRP_user_pwd *user_pwd, BIGNUM *s, BIGNUM *v); - -typedef struct SRP_VBASE_st { - STACK_OF(SRP_user_pwd) *users_pwd; - STACK_OF(SRP_gN_cache) *gN_cache; -/* to simulate a user */ - char *seed_key; - const BIGNUM *default_g; - const BIGNUM *default_N; -} SRP_VBASE; - -/* - * Internal structure storing N and g pair - */ -typedef struct SRP_gN_st { - char *id; - const BIGNUM *g; - const BIGNUM *N; -} SRP_gN; -SKM_DEFINE_STACK_OF_INTERNAL(SRP_gN, SRP_gN, SRP_gN) -#define sk_SRP_gN_num(sk) OPENSSL_sk_num(ossl_check_const_SRP_gN_sk_type(sk)) -#define sk_SRP_gN_value(sk, idx) ((SRP_gN *)OPENSSL_sk_value(ossl_check_const_SRP_gN_sk_type(sk), (idx))) -#define sk_SRP_gN_new(cmp) ((STACK_OF(SRP_gN) *)OPENSSL_sk_new(ossl_check_SRP_gN_compfunc_type(cmp))) -#define sk_SRP_gN_new_null() ((STACK_OF(SRP_gN) *)OPENSSL_sk_new_null()) -#define sk_SRP_gN_new_reserve(cmp, n) ((STACK_OF(SRP_gN) *)OPENSSL_sk_new_reserve(ossl_check_SRP_gN_compfunc_type(cmp), (n))) -#define sk_SRP_gN_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SRP_gN_sk_type(sk), (n)) -#define sk_SRP_gN_free(sk) OPENSSL_sk_free(ossl_check_SRP_gN_sk_type(sk)) -#define sk_SRP_gN_zero(sk) OPENSSL_sk_zero(ossl_check_SRP_gN_sk_type(sk)) -#define sk_SRP_gN_delete(sk, i) ((SRP_gN *)OPENSSL_sk_delete(ossl_check_SRP_gN_sk_type(sk), (i))) -#define sk_SRP_gN_delete_ptr(sk, ptr) ((SRP_gN *)OPENSSL_sk_delete_ptr(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr))) -#define sk_SRP_gN_push(sk, ptr) OPENSSL_sk_push(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr)) -#define sk_SRP_gN_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr)) -#define sk_SRP_gN_pop(sk) ((SRP_gN *)OPENSSL_sk_pop(ossl_check_SRP_gN_sk_type(sk))) -#define sk_SRP_gN_shift(sk) ((SRP_gN *)OPENSSL_sk_shift(ossl_check_SRP_gN_sk_type(sk))) -#define sk_SRP_gN_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_freefunc_type(freefunc)) -#define sk_SRP_gN_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr), (idx)) -#define sk_SRP_gN_set(sk, idx, ptr) ((SRP_gN *)OPENSSL_sk_set(ossl_check_SRP_gN_sk_type(sk), (idx), ossl_check_SRP_gN_type(ptr))) -#define sk_SRP_gN_find(sk, ptr) OPENSSL_sk_find(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr)) -#define sk_SRP_gN_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr)) -#define sk_SRP_gN_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr), pnum) -#define sk_SRP_gN_sort(sk) OPENSSL_sk_sort(ossl_check_SRP_gN_sk_type(sk)) -#define sk_SRP_gN_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SRP_gN_sk_type(sk)) -#define sk_SRP_gN_dup(sk) ((STACK_OF(SRP_gN) *)OPENSSL_sk_dup(ossl_check_const_SRP_gN_sk_type(sk))) -#define sk_SRP_gN_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SRP_gN) *)OPENSSL_sk_deep_copy(ossl_check_const_SRP_gN_sk_type(sk), ossl_check_SRP_gN_copyfunc_type(copyfunc), ossl_check_SRP_gN_freefunc_type(freefunc))) -#define sk_SRP_gN_set_cmp_func(sk, cmp) ((sk_SRP_gN_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_compfunc_type(cmp))) - - - -OSSL_DEPRECATEDIN_3_0 -SRP_VBASE *SRP_VBASE_new(char *seed_key); -OSSL_DEPRECATEDIN_3_0 -void SRP_VBASE_free(SRP_VBASE *vb); -OSSL_DEPRECATEDIN_3_0 -int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file); - -OSSL_DEPRECATEDIN_3_0 -int SRP_VBASE_add0_user(SRP_VBASE *vb, SRP_user_pwd *user_pwd); - -/* NOTE: unlike in SRP_VBASE_get_by_user, caller owns the returned pointer.*/ -OSSL_DEPRECATEDIN_3_0 -SRP_user_pwd *SRP_VBASE_get1_by_user(SRP_VBASE *vb, char *username); - -OSSL_DEPRECATEDIN_3_0 -char *SRP_create_verifier_ex(const char *user, const char *pass, char **salt, - char **verifier, const char *N, const char *g, - OSSL_LIB_CTX *libctx, const char *propq); -OSSL_DEPRECATEDIN_3_0 -char *SRP_create_verifier(const char *user, const char *pass, char **salt, - char **verifier, const char *N, const char *g); -OSSL_DEPRECATEDIN_3_0 -int SRP_create_verifier_BN_ex(const char *user, const char *pass, BIGNUM **salt, - BIGNUM **verifier, const BIGNUM *N, - const BIGNUM *g, OSSL_LIB_CTX *libctx, - const char *propq); -OSSL_DEPRECATEDIN_3_0 -int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, - BIGNUM **verifier, const BIGNUM *N, - const BIGNUM *g); - -# define SRP_NO_ERROR 0 -# define SRP_ERR_VBASE_INCOMPLETE_FILE 1 -# define SRP_ERR_VBASE_BN_LIB 2 -# define SRP_ERR_OPEN_FILE 3 -# define SRP_ERR_MEMORY 4 - -# define DB_srptype 0 -# define DB_srpverifier 1 -# define DB_srpsalt 2 -# define DB_srpid 3 -# define DB_srpgN 4 -# define DB_srpinfo 5 -# undef DB_NUMBER -# define DB_NUMBER 6 - -# define DB_SRP_INDEX 'I' -# define DB_SRP_VALID 'V' -# define DB_SRP_REVOKED 'R' -# define DB_SRP_MODIF 'v' - -/* see srp.c */ -OSSL_DEPRECATEDIN_3_0 -char *SRP_check_known_gN_param(const BIGNUM *g, const BIGNUM *N); -OSSL_DEPRECATEDIN_3_0 -SRP_gN *SRP_get_default_gN(const char *id); - -/* server side .... */ -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_server_key(const BIGNUM *A, const BIGNUM *v, const BIGNUM *u, - const BIGNUM *b, const BIGNUM *N); -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_B_ex(const BIGNUM *b, const BIGNUM *N, const BIGNUM *g, - const BIGNUM *v, OSSL_LIB_CTX *libctx, const char *propq); -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_B(const BIGNUM *b, const BIGNUM *N, const BIGNUM *g, - const BIGNUM *v); - -OSSL_DEPRECATEDIN_3_0 -int SRP_Verify_A_mod_N(const BIGNUM *A, const BIGNUM *N); -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_u_ex(const BIGNUM *A, const BIGNUM *B, const BIGNUM *N, - OSSL_LIB_CTX *libctx, const char *propq); -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_u(const BIGNUM *A, const BIGNUM *B, const BIGNUM *N); - -/* client side .... */ - -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_x_ex(const BIGNUM *s, const char *user, const char *pass, - OSSL_LIB_CTX *libctx, const char *propq); -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_x(const BIGNUM *s, const char *user, const char *pass); -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_A(const BIGNUM *a, const BIGNUM *N, const BIGNUM *g); -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_client_key_ex(const BIGNUM *N, const BIGNUM *B, const BIGNUM *g, - const BIGNUM *x, const BIGNUM *a, const BIGNUM *u, - OSSL_LIB_CTX *libctx, const char *propq); -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_client_key(const BIGNUM *N, const BIGNUM *B, const BIGNUM *g, - const BIGNUM *x, const BIGNUM *a, const BIGNUM *u); -OSSL_DEPRECATEDIN_3_0 -int SRP_Verify_B_mod_N(const BIGNUM *B, const BIGNUM *N); - -# define SRP_MINIMAL_N 1024 - -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -/* This method ignores the configured seed and fails for an unknown user. */ -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 -SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/srtp.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/srtp.h deleted file mode 100644 index 2c2c334..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/srtp.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * DTLS code by Eric Rescorla - * - * Copyright (C) 2006, Network Resonance, Inc. Copyright (C) 2011, RTFM, Inc. - */ - -#ifndef OPENSSL_SRTP_H -# define OPENSSL_SRTP_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_D1_SRTP_H -# endif - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define SRTP_AES128_CM_SHA1_80 0x0001 -# define SRTP_AES128_CM_SHA1_32 0x0002 -# define SRTP_AES128_F8_SHA1_80 0x0003 -# define SRTP_AES128_F8_SHA1_32 0x0004 -# define SRTP_NULL_SHA1_80 0x0005 -# define SRTP_NULL_SHA1_32 0x0006 - -/* AEAD SRTP protection profiles from RFC 7714 */ -# define SRTP_AEAD_AES_128_GCM 0x0007 -# define SRTP_AEAD_AES_256_GCM 0x0008 - -/* DOUBLE AEAD SRTP protection profiles from RFC 8723 */ -# define SRTP_DOUBLE_AEAD_AES_128_GCM_AEAD_AES_128_GCM 0x0009 -# define SRTP_DOUBLE_AEAD_AES_256_GCM_AEAD_AES_256_GCM 0x000A - -/* ARIA SRTP protection profiles from RFC 8269 */ -# define SRTP_ARIA_128_CTR_HMAC_SHA1_80 0x000B -# define SRTP_ARIA_128_CTR_HMAC_SHA1_32 0x000C -# define SRTP_ARIA_256_CTR_HMAC_SHA1_80 0x000D -# define SRTP_ARIA_256_CTR_HMAC_SHA1_32 0x000E -# define SRTP_AEAD_ARIA_128_GCM 0x000F -# define SRTP_AEAD_ARIA_256_GCM 0x0010 - -# ifndef OPENSSL_NO_SRTP - -__owur int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles); -__owur int SSL_set_tlsext_use_srtp(SSL *ssl, const char *profiles); - -__owur STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl); -__owur SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); - -# endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ssl.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/ssl.h deleted file mode 100644 index cffe987..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ssl.h +++ /dev/null @@ -1,2940 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\ssl.h.in - * - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * Copyright 2005 Nokia. All rights reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_SSL_H -# define OPENSSL_SSL_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_SSL_H -# endif - -# include -# include -# include -# include -# include -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# include -# include -# include -# endif -# include -# include -# include -# include - -# include -# include -# include -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* OpenSSL version number for ASN.1 encoding of the session information */ -/*- - * Version 0 - initial version - * Version 1 - added the optional peer certificate - */ -# define SSL_SESSION_ASN1_VERSION 0x0001 - -# define SSL_MAX_SSL_SESSION_ID_LENGTH 32 -# define SSL_MAX_SID_CTX_LENGTH 32 - -# define SSL_MIN_RSA_MODULUS_LENGTH_IN_BYTES (512/8) -# define SSL_MAX_KEY_ARG_LENGTH 8 -/* SSL_MAX_MASTER_KEY_LENGTH is defined in prov_ssl.h */ - -/* The maximum number of encrypt/decrypt pipelines we can support */ -# define SSL_MAX_PIPELINES 32 - -/* text strings for the ciphers */ - -/* These are used to specify which ciphers to use and not to use */ - -# define SSL_TXT_LOW "LOW" -# define SSL_TXT_MEDIUM "MEDIUM" -# define SSL_TXT_HIGH "HIGH" -# define SSL_TXT_FIPS "FIPS" - -# define SSL_TXT_aNULL "aNULL" -# define SSL_TXT_eNULL "eNULL" -# define SSL_TXT_NULL "NULL" - -# define SSL_TXT_kRSA "kRSA" -# define SSL_TXT_kDHr "kDHr"/* this cipher class has been removed */ -# define SSL_TXT_kDHd "kDHd"/* this cipher class has been removed */ -# define SSL_TXT_kDH "kDH"/* this cipher class has been removed */ -# define SSL_TXT_kEDH "kEDH"/* alias for kDHE */ -# define SSL_TXT_kDHE "kDHE" -# define SSL_TXT_kECDHr "kECDHr"/* this cipher class has been removed */ -# define SSL_TXT_kECDHe "kECDHe"/* this cipher class has been removed */ -# define SSL_TXT_kECDH "kECDH"/* this cipher class has been removed */ -# define SSL_TXT_kEECDH "kEECDH"/* alias for kECDHE */ -# define SSL_TXT_kECDHE "kECDHE" -# define SSL_TXT_kPSK "kPSK" -# define SSL_TXT_kRSAPSK "kRSAPSK" -# define SSL_TXT_kECDHEPSK "kECDHEPSK" -# define SSL_TXT_kDHEPSK "kDHEPSK" -# define SSL_TXT_kGOST "kGOST" -# define SSL_TXT_kGOST18 "kGOST18" -# define SSL_TXT_kSRP "kSRP" - -# define SSL_TXT_aRSA "aRSA" -# define SSL_TXT_aDSS "aDSS" -# define SSL_TXT_aDH "aDH"/* this cipher class has been removed */ -# define SSL_TXT_aECDH "aECDH"/* this cipher class has been removed */ -# define SSL_TXT_aECDSA "aECDSA" -# define SSL_TXT_aPSK "aPSK" -# define SSL_TXT_aGOST94 "aGOST94" -# define SSL_TXT_aGOST01 "aGOST01" -# define SSL_TXT_aGOST12 "aGOST12" -# define SSL_TXT_aGOST "aGOST" -# define SSL_TXT_aSRP "aSRP" - -# define SSL_TXT_DSS "DSS" -# define SSL_TXT_DH "DH" -# define SSL_TXT_DHE "DHE"/* same as "kDHE:-ADH" */ -# define SSL_TXT_EDH "EDH"/* alias for DHE */ -# define SSL_TXT_ADH "ADH" -# define SSL_TXT_RSA "RSA" -# define SSL_TXT_ECDH "ECDH" -# define SSL_TXT_EECDH "EECDH"/* alias for ECDHE" */ -# define SSL_TXT_ECDHE "ECDHE"/* same as "kECDHE:-AECDH" */ -# define SSL_TXT_AECDH "AECDH" -# define SSL_TXT_ECDSA "ECDSA" -# define SSL_TXT_PSK "PSK" -# define SSL_TXT_SRP "SRP" - -# define SSL_TXT_DES "DES" -# define SSL_TXT_3DES "3DES" -# define SSL_TXT_RC4 "RC4" -# define SSL_TXT_RC2 "RC2" -# define SSL_TXT_IDEA "IDEA" -# define SSL_TXT_SEED "SEED" -# define SSL_TXT_AES128 "AES128" -# define SSL_TXT_AES256 "AES256" -# define SSL_TXT_AES "AES" -# define SSL_TXT_AES_GCM "AESGCM" -# define SSL_TXT_AES_CCM "AESCCM" -# define SSL_TXT_AES_CCM_8 "AESCCM8" -# define SSL_TXT_CAMELLIA128 "CAMELLIA128" -# define SSL_TXT_CAMELLIA256 "CAMELLIA256" -# define SSL_TXT_CAMELLIA "CAMELLIA" -# define SSL_TXT_CHACHA20 "CHACHA20" -# define SSL_TXT_GOST "GOST89" -# define SSL_TXT_ARIA "ARIA" -# define SSL_TXT_ARIA_GCM "ARIAGCM" -# define SSL_TXT_ARIA128 "ARIA128" -# define SSL_TXT_ARIA256 "ARIA256" -# define SSL_TXT_GOST2012_GOST8912_GOST8912 "GOST2012-GOST8912-GOST8912" -# define SSL_TXT_CBC "CBC" - -# define SSL_TXT_MD5 "MD5" -# define SSL_TXT_SHA1 "SHA1" -# define SSL_TXT_SHA "SHA"/* same as "SHA1" */ -# define SSL_TXT_GOST94 "GOST94" -# define SSL_TXT_GOST89MAC "GOST89MAC" -# define SSL_TXT_GOST12 "GOST12" -# define SSL_TXT_GOST89MAC12 "GOST89MAC12" -# define SSL_TXT_SHA256 "SHA256" -# define SSL_TXT_SHA384 "SHA384" - -# define SSL_TXT_SSLV3 "SSLv3" -# define SSL_TXT_TLSV1 "TLSv1" -# define SSL_TXT_TLSV1_1 "TLSv1.1" -# define SSL_TXT_TLSV1_2 "TLSv1.2" - -# define SSL_TXT_ALL "ALL" - -/*- - * COMPLEMENTOF* definitions. These identifiers are used to (de-select) - * ciphers normally not being used. - * Example: "RC4" will activate all ciphers using RC4 including ciphers - * without authentication, which would normally disabled by DEFAULT (due - * the "!ADH" being part of default). Therefore "RC4:!COMPLEMENTOFDEFAULT" - * will make sure that it is also disabled in the specific selection. - * COMPLEMENTOF* identifiers are portable between version, as adjustments - * to the default cipher setup will also be included here. - * - * COMPLEMENTOFDEFAULT does not experience the same special treatment that - * DEFAULT gets, as only selection is being done and no sorting as needed - * for DEFAULT. - */ -# define SSL_TXT_CMPALL "COMPLEMENTOFALL" -# define SSL_TXT_CMPDEF "COMPLEMENTOFDEFAULT" - -/* - * The following cipher list is used by default. It also is substituted when - * an application-defined cipher list string starts with 'DEFAULT'. - * This applies to ciphersuites for TLSv1.2 and below. - * DEPRECATED IN 3.0.0, in favor of OSSL_default_cipher_list() - * Update both macro and function simultaneously - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SSL_DEFAULT_CIPHER_LIST "ALL:!COMPLEMENTOFDEFAULT:!eNULL" -/* - * This is the default set of TLSv1.3 ciphersuites - * DEPRECATED IN 3.0.0, in favor of OSSL_default_ciphersuites() - * Update both macro and function simultaneously - */ -# define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:" \ - "TLS_CHACHA20_POLY1305_SHA256:" \ - "TLS_AES_128_GCM_SHA256" -# endif -/* - * As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always - * starts with a reasonable order, and all we have to do for DEFAULT is - * throwing out anonymous and unencrypted ciphersuites! (The latter are not - * actually enabled by ALL, but "ALL:RSA" would enable some of them.) - */ - -/* Used in SSL_set_shutdown()/SSL_get_shutdown(); */ -# define SSL_SENT_SHUTDOWN 1 -# define SSL_RECEIVED_SHUTDOWN 2 - -#ifdef __cplusplus -} -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1 -# define SSL_FILETYPE_PEM X509_FILETYPE_PEM - -/* - * This is needed to stop compilers complaining about the 'struct ssl_st *' - * function parameters used to prototype callbacks in SSL_CTX. - */ -typedef struct ssl_st *ssl_crock_st; -typedef struct tls_session_ticket_ext_st TLS_SESSION_TICKET_EXT; -typedef struct ssl_method_st SSL_METHOD; -typedef struct ssl_cipher_st SSL_CIPHER; -typedef struct ssl_session_st SSL_SESSION; -typedef struct tls_sigalgs_st TLS_SIGALGS; -typedef struct ssl_conf_ctx_st SSL_CONF_CTX; - -STACK_OF(SSL_CIPHER); - -/* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ -typedef struct srtp_protection_profile_st { - const char *name; - unsigned long id; -} SRTP_PROTECTION_PROFILE; -SKM_DEFINE_STACK_OF_INTERNAL(SRTP_PROTECTION_PROFILE, SRTP_PROTECTION_PROFILE, SRTP_PROTECTION_PROFILE) -#define sk_SRTP_PROTECTION_PROFILE_num(sk) OPENSSL_sk_num(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk)) -#define sk_SRTP_PROTECTION_PROFILE_value(sk, idx) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_value(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk), (idx))) -#define sk_SRTP_PROTECTION_PROFILE_new(cmp) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_new(ossl_check_SRTP_PROTECTION_PROFILE_compfunc_type(cmp))) -#define sk_SRTP_PROTECTION_PROFILE_new_null() ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_new_null()) -#define sk_SRTP_PROTECTION_PROFILE_new_reserve(cmp, n) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_new_reserve(ossl_check_SRTP_PROTECTION_PROFILE_compfunc_type(cmp), (n))) -#define sk_SRTP_PROTECTION_PROFILE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), (n)) -#define sk_SRTP_PROTECTION_PROFILE_free(sk) OPENSSL_sk_free(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk)) -#define sk_SRTP_PROTECTION_PROFILE_zero(sk) OPENSSL_sk_zero(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk)) -#define sk_SRTP_PROTECTION_PROFILE_delete(sk, i) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_delete(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), (i))) -#define sk_SRTP_PROTECTION_PROFILE_delete_ptr(sk, ptr) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_delete_ptr(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr))) -#define sk_SRTP_PROTECTION_PROFILE_push(sk, ptr) OPENSSL_sk_push(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr)) -#define sk_SRTP_PROTECTION_PROFILE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr)) -#define sk_SRTP_PROTECTION_PROFILE_pop(sk) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_pop(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk))) -#define sk_SRTP_PROTECTION_PROFILE_shift(sk) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_shift(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk))) -#define sk_SRTP_PROTECTION_PROFILE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_freefunc_type(freefunc)) -#define sk_SRTP_PROTECTION_PROFILE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr), (idx)) -#define sk_SRTP_PROTECTION_PROFILE_set(sk, idx, ptr) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_set(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), (idx), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr))) -#define sk_SRTP_PROTECTION_PROFILE_find(sk, ptr) OPENSSL_sk_find(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr)) -#define sk_SRTP_PROTECTION_PROFILE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr)) -#define sk_SRTP_PROTECTION_PROFILE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr), pnum) -#define sk_SRTP_PROTECTION_PROFILE_sort(sk) OPENSSL_sk_sort(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk)) -#define sk_SRTP_PROTECTION_PROFILE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk)) -#define sk_SRTP_PROTECTION_PROFILE_dup(sk) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_dup(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk))) -#define sk_SRTP_PROTECTION_PROFILE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_deep_copy(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_copyfunc_type(copyfunc), ossl_check_SRTP_PROTECTION_PROFILE_freefunc_type(freefunc))) -#define sk_SRTP_PROTECTION_PROFILE_set_cmp_func(sk, cmp) ((sk_SRTP_PROTECTION_PROFILE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_compfunc_type(cmp))) - - - -typedef int (*tls_session_ticket_ext_cb_fn)(SSL *s, const unsigned char *data, - int len, void *arg); -typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, - STACK_OF(SSL_CIPHER) *peer_ciphers, - const SSL_CIPHER **cipher, void *arg); - -/* Extension context codes */ -/* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x00001 -/* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x00002 -/* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 -/* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x00008 -/* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 -/* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x00020 -/* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 -#define SSL_EXT_CLIENT_HELLO 0x00080 -/* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 -#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 -/* When sending a raw public key in a certificate message */ -#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 - -/* Typedefs for handling custom extensions */ - -typedef int (*custom_ext_add_cb)(SSL *s, unsigned int ext_type, - const unsigned char **out, size_t *outlen, - int *al, void *add_arg); - -typedef void (*custom_ext_free_cb)(SSL *s, unsigned int ext_type, - const unsigned char *out, void *add_arg); - -typedef int (*custom_ext_parse_cb)(SSL *s, unsigned int ext_type, - const unsigned char *in, size_t inlen, - int *al, void *parse_arg); - - -typedef int (*SSL_custom_ext_add_cb_ex)(SSL *s, unsigned int ext_type, - unsigned int context, - const unsigned char **out, - size_t *outlen, X509 *x, - size_t chainidx, - int *al, void *add_arg); - -typedef void (*SSL_custom_ext_free_cb_ex)(SSL *s, unsigned int ext_type, - unsigned int context, - const unsigned char *out, - void *add_arg); - -typedef int (*SSL_custom_ext_parse_cb_ex)(SSL *s, unsigned int ext_type, - unsigned int context, - const unsigned char *in, - size_t inlen, X509 *x, - size_t chainidx, - int *al, void *parse_arg); - -/* Typedef for verification callback */ -typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); - -/* Typedef for SSL async callback */ -typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); - -#define SSL_OP_BIT(n) ((uint64_t)1 << (uint64_t)n) - -/* - * SSL/TLS connection options. - */ - /* Disable Extended master secret */ -# define SSL_OP_NO_EXTENDED_MASTER_SECRET SSL_OP_BIT(0) - /* Cleanse plaintext copies of data delivered to the application */ -# define SSL_OP_CLEANSE_PLAINTEXT SSL_OP_BIT(1) - /* Allow initial connection to servers that don't support RI */ -# define SSL_OP_LEGACY_SERVER_CONNECT SSL_OP_BIT(2) - /* Enable support for Kernel TLS */ -# define SSL_OP_ENABLE_KTLS SSL_OP_BIT(3) -# define SSL_OP_TLSEXT_PADDING SSL_OP_BIT(4) -# define SSL_OP_SAFARI_ECDHE_ECDSA_BUG SSL_OP_BIT(6) -# define SSL_OP_IGNORE_UNEXPECTED_EOF SSL_OP_BIT(7) -# define SSL_OP_ALLOW_CLIENT_RENEGOTIATION SSL_OP_BIT(8) -# define SSL_OP_DISABLE_TLSEXT_CA_NAMES SSL_OP_BIT(9) - /* In TLSv1.3 allow a non-(ec)dhe based kex_mode */ -# define SSL_OP_ALLOW_NO_DHE_KEX SSL_OP_BIT(10) - /* - * Disable SSL 3.0/TLS 1.0 CBC vulnerability workaround that was added - * in OpenSSL 0.9.6d. Usually (depending on the application protocol) - * the workaround is not needed. Unfortunately some broken SSL/TLS - * implementations cannot handle it at all, which is why we include it - * in SSL_OP_ALL. Added in 0.9.6e - */ -# define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS SSL_OP_BIT(11) - /* DTLS options */ -# define SSL_OP_NO_QUERY_MTU SSL_OP_BIT(12) - /* Turn on Cookie Exchange (on relevant for servers) */ -# define SSL_OP_COOKIE_EXCHANGE SSL_OP_BIT(13) - /* Don't use RFC4507 ticket extension */ -# define SSL_OP_NO_TICKET SSL_OP_BIT(14) -# ifndef OPENSSL_NO_DTLS1_METHOD - /* - * Use Cisco's version identifier of DTLS_BAD_VER - * (only with deprecated DTLSv1_client_method()) - */ -# define SSL_OP_CISCO_ANYCONNECT SSL_OP_BIT(15) -# endif - /* As server, disallow session resumption on renegotiation */ -# define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION SSL_OP_BIT(16) - /* Don't use compression even if supported */ -# define SSL_OP_NO_COMPRESSION SSL_OP_BIT(17) - /* Permit unsafe legacy renegotiation */ -# define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION SSL_OP_BIT(18) - /* Disable encrypt-then-mac */ -# define SSL_OP_NO_ENCRYPT_THEN_MAC SSL_OP_BIT(19) - /* - * Enable TLSv1.3 Compatibility mode. This is on by default. A future - * version of OpenSSL may have this disabled by default. - */ -# define SSL_OP_ENABLE_MIDDLEBOX_COMPAT SSL_OP_BIT(20) - /* - * Prioritize Chacha20Poly1305 when client does. - * Modifies SSL_OP_SERVER_PREFERENCE - */ -# define SSL_OP_PRIORITIZE_CHACHA SSL_OP_BIT(21) - /* - * Set on servers to choose cipher, curve or group according to server's - * preferences. - */ -# define SSL_OP_SERVER_PREFERENCE SSL_OP_BIT(22) - /* Equivalent definition for backwards compatibility: */ -# define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_SERVER_PREFERENCE - /* - * If set, a server will allow a client to issue an SSLv3.0 version - * number as latest version supported in the premaster secret, even when - * TLSv1.0 (version 3.1) was announced in the client hello. Normally - * this is forbidden to prevent version rollback attacks. - */ -# define SSL_OP_TLS_ROLLBACK_BUG SSL_OP_BIT(23) - /* - * Switches off automatic TLSv1.3 anti-replay protection for early data. - * This is a server-side option only (no effect on the client). - */ -# define SSL_OP_NO_ANTI_REPLAY SSL_OP_BIT(24) -# define SSL_OP_NO_SSLv3 SSL_OP_BIT(25) -# define SSL_OP_NO_TLSv1 SSL_OP_BIT(26) -# define SSL_OP_NO_TLSv1_2 SSL_OP_BIT(27) -# define SSL_OP_NO_TLSv1_1 SSL_OP_BIT(28) -# define SSL_OP_NO_TLSv1_3 SSL_OP_BIT(29) -# define SSL_OP_NO_DTLSv1 SSL_OP_BIT(26) -# define SSL_OP_NO_DTLSv1_2 SSL_OP_BIT(27) - /* Disallow all renegotiation */ -# define SSL_OP_NO_RENEGOTIATION SSL_OP_BIT(30) - /* - * Make server add server-hello extension from early version of - * cryptopro draft, when GOST ciphersuite is negotiated. Required for - * interoperability with CryptoPro CSP 3.x - */ -# define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) -/* - * Disable RFC8879 certificate compression - * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, - * and ignore the extension when received. - * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and - * subsequently indicating that receiving is not supported - */ -# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) -# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) - /* Enable KTLS TX zerocopy on Linux */ -# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) -# define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) -# define SSL_OP_LEGACY_EC_POINT_FORMATS SSL_OP_BIT(36) - -/* - * Option "collections." - */ -# define SSL_OP_NO_SSL_MASK \ - ( SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1 \ - | SSL_OP_NO_TLSv1_2 | SSL_OP_NO_TLSv1_3 ) -# define SSL_OP_NO_DTLS_MASK \ - ( SSL_OP_NO_DTLSv1 | SSL_OP_NO_DTLSv1_2 ) - -/* Various bug workarounds that should be rather harmless. */ -# define SSL_OP_ALL \ - ( SSL_OP_CRYPTOPRO_TLSEXT_BUG | SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS \ - | SSL_OP_TLSEXT_PADDING | SSL_OP_SAFARI_ECDHE_ECDSA_BUG ) - -/* - * OBSOLETE OPTIONS retained for compatibility - */ - -# define SSL_OP_MICROSOFT_SESS_ID_BUG 0x0 -# define SSL_OP_NETSCAPE_CHALLENGE_BUG 0x0 -# define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x0 -# define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x0 -# define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x0 -# define SSL_OP_MSIE_SSLV2_RSA_PADDING 0x0 -# define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x0 -# define SSL_OP_TLS_D5_BUG 0x0 -# define SSL_OP_TLS_BLOCK_PADDING_BUG 0x0 -# define SSL_OP_SINGLE_ECDH_USE 0x0 -# define SSL_OP_SINGLE_DH_USE 0x0 -# define SSL_OP_EPHEMERAL_RSA 0x0 -# define SSL_OP_NO_SSLv2 0x0 -# define SSL_OP_PKCS1_CHECK_1 0x0 -# define SSL_OP_PKCS1_CHECK_2 0x0 -# define SSL_OP_NETSCAPE_CA_DN_BUG 0x0 -# define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x0 - -/* - * Allow SSL_write(..., n) to return r with 0 < r < n (i.e. report success - * when just a single record has been written): - */ -# define SSL_MODE_ENABLE_PARTIAL_WRITE 0x00000001U -/* - * Make it possible to retry SSL_write() with changed buffer location (buffer - * contents must stay the same!); this is not the default to avoid the - * misconception that non-blocking SSL_write() behaves like non-blocking - * write(): - */ -# define SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER 0x00000002U -/* - * Never bother the application with retries if the transport is blocking: - */ -# define SSL_MODE_AUTO_RETRY 0x00000004U -/* Don't attempt to automatically build certificate chain */ -# define SSL_MODE_NO_AUTO_CHAIN 0x00000008U -/* - * Save RAM by releasing read and write buffers when they're empty. (SSL3 and - * TLS only.) Released buffers are freed. - */ -# define SSL_MODE_RELEASE_BUFFERS 0x00000010U -/* - * Send the current time in the Random fields of the ClientHello and - * ServerHello records for compatibility with hypothetical implementations - * that require it. - */ -# define SSL_MODE_SEND_CLIENTHELLO_TIME 0x00000020U -# define SSL_MODE_SEND_SERVERHELLO_TIME 0x00000040U -/* - * Send TLS_FALLBACK_SCSV in the ClientHello. To be set only by applications - * that reconnect with a downgraded protocol version; see - * draft-ietf-tls-downgrade-scsv-00 for details. DO NOT ENABLE THIS if your - * application attempts a normal handshake. Only use this in explicit - * fallback retries, following the guidance in - * draft-ietf-tls-downgrade-scsv-00. - */ -# define SSL_MODE_SEND_FALLBACK_SCSV 0x00000080U -/* - * Support Asynchronous operation - */ -# define SSL_MODE_ASYNC 0x00000100U - -/* - * When using DTLS/SCTP, include the terminating zero in the label - * used for computing the endpoint-pair shared secret. Required for - * interoperability with implementations having this bug like these - * older version of OpenSSL: - * - OpenSSL 1.0.0 series - * - OpenSSL 1.0.1 series - * - OpenSSL 1.0.2 series - * - OpenSSL 1.1.0 series - * - OpenSSL 1.1.1 and 1.1.1a - */ -# define SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG 0x00000400U - -/* Cert related flags */ -/* - * Many implementations ignore some aspects of the TLS standards such as - * enforcing certificate chain algorithms. When this is set we enforce them. - */ -# define SSL_CERT_FLAG_TLS_STRICT 0x00000001U - -/* Suite B modes, takes same values as certificate verify flags */ -# define SSL_CERT_FLAG_SUITEB_128_LOS_ONLY 0x10000 -/* Suite B 192 bit only mode */ -# define SSL_CERT_FLAG_SUITEB_192_LOS 0x20000 -/* Suite B 128 bit mode allowing 192 bit algorithms */ -# define SSL_CERT_FLAG_SUITEB_128_LOS 0x30000 - -/* Perform all sorts of protocol violations for testing purposes */ -# define SSL_CERT_FLAG_BROKEN_PROTOCOL 0x10000000 - -/* Flags for building certificate chains */ -/* Treat any existing certificates as untrusted CAs */ -# define SSL_BUILD_CHAIN_FLAG_UNTRUSTED 0x1 -/* Don't include root CA in chain */ -# define SSL_BUILD_CHAIN_FLAG_NO_ROOT 0x2 -/* Just check certificates already there */ -# define SSL_BUILD_CHAIN_FLAG_CHECK 0x4 -/* Ignore verification errors */ -# define SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR 0x8 -/* Clear verification errors from queue */ -# define SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR 0x10 - -/* Flags returned by SSL_check_chain */ -/* Certificate can be used with this session */ -# define CERT_PKEY_VALID 0x1 -/* Certificate can also be used for signing */ -# define CERT_PKEY_SIGN 0x2 -/* EE certificate signing algorithm OK */ -# define CERT_PKEY_EE_SIGNATURE 0x10 -/* CA signature algorithms OK */ -# define CERT_PKEY_CA_SIGNATURE 0x20 -/* EE certificate parameters OK */ -# define CERT_PKEY_EE_PARAM 0x40 -/* CA certificate parameters OK */ -# define CERT_PKEY_CA_PARAM 0x80 -/* Signing explicitly allowed as opposed to SHA1 fallback */ -# define CERT_PKEY_EXPLICIT_SIGN 0x100 -/* Client CA issuer names match (always set for server cert) */ -# define CERT_PKEY_ISSUER_NAME 0x200 -/* Cert type matches client types (always set for server cert) */ -# define CERT_PKEY_CERT_TYPE 0x400 -/* Cert chain suitable to Suite B */ -# define CERT_PKEY_SUITEB 0x800 -/* Cert pkey valid for raw public key use */ -# define CERT_PKEY_RPK 0x1000 - -# define SSL_CONF_FLAG_CMDLINE 0x1 -# define SSL_CONF_FLAG_FILE 0x2 -# define SSL_CONF_FLAG_CLIENT 0x4 -# define SSL_CONF_FLAG_SERVER 0x8 -# define SSL_CONF_FLAG_SHOW_ERRORS 0x10 -# define SSL_CONF_FLAG_CERTIFICATE 0x20 -# define SSL_CONF_FLAG_REQUIRE_PRIVATE 0x40 -/* Configuration value types */ -# define SSL_CONF_TYPE_UNKNOWN 0x0 -# define SSL_CONF_TYPE_STRING 0x1 -# define SSL_CONF_TYPE_FILE 0x2 -# define SSL_CONF_TYPE_DIR 0x3 -# define SSL_CONF_TYPE_NONE 0x4 -# define SSL_CONF_TYPE_STORE 0x5 - -/* Maximum length of the application-controlled segment of a a TLSv1.3 cookie */ -# define SSL_COOKIE_LENGTH 4096 - -/* - * Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value, they - * cannot be used to clear bits. - */ - -uint64_t SSL_CTX_get_options(const SSL_CTX *ctx); -uint64_t SSL_get_options(const SSL *s); -uint64_t SSL_CTX_clear_options(SSL_CTX *ctx, uint64_t op); -uint64_t SSL_clear_options(SSL *s, uint64_t op); -uint64_t SSL_CTX_set_options(SSL_CTX *ctx, uint64_t op); -uint64_t SSL_set_options(SSL *s, uint64_t op); - -# define SSL_CTX_set_mode(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL) -# define SSL_CTX_clear_mode(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_MODE,(op),NULL) -# define SSL_CTX_get_mode(ctx) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,0,NULL) -# define SSL_clear_mode(ssl,op) \ - SSL_ctrl((ssl),SSL_CTRL_CLEAR_MODE,(op),NULL) -# define SSL_set_mode(ssl,op) \ - SSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL) -# define SSL_get_mode(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_MODE,0,NULL) -# define SSL_set_mtu(ssl, mtu) \ - SSL_ctrl((ssl),SSL_CTRL_SET_MTU,(mtu),NULL) -# define DTLS_set_link_mtu(ssl, mtu) \ - SSL_ctrl((ssl),DTLS_CTRL_SET_LINK_MTU,(mtu),NULL) -# define DTLS_get_link_min_mtu(ssl) \ - SSL_ctrl((ssl),DTLS_CTRL_GET_LINK_MIN_MTU,0,NULL) - -# define SSL_get_secure_renegotiation_support(ssl) \ - SSL_ctrl((ssl), SSL_CTRL_GET_RI_SUPPORT, 0, NULL) - -# define SSL_CTX_set_cert_flags(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CERT_FLAGS,(op),NULL) -# define SSL_set_cert_flags(s,op) \ - SSL_ctrl((s),SSL_CTRL_CERT_FLAGS,(op),NULL) -# define SSL_CTX_clear_cert_flags(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) -# define SSL_clear_cert_flags(s,op) \ - SSL_ctrl((s),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) - -void SSL_CTX_set_msg_callback(SSL_CTX *ctx, - void (*cb) (int write_p, int version, - int content_type, const void *buf, - size_t len, SSL *ssl, void *arg)); -void SSL_set_msg_callback(SSL *ssl, - void (*cb) (int write_p, int version, - int content_type, const void *buf, - size_t len, SSL *ssl, void *arg)); -# define SSL_CTX_set_msg_callback_arg(ctx, arg) SSL_CTX_ctrl((ctx), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) -# define SSL_set_msg_callback_arg(ssl, arg) SSL_ctrl((ssl), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) - -# define SSL_get_extms_support(s) \ - SSL_ctrl((s),SSL_CTRL_GET_EXTMS_SUPPORT,0,NULL) - -# ifndef OPENSSL_NO_SRP -/* see tls_srp.c */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 __owur int SSL_SRP_CTX_init(SSL *s); -OSSL_DEPRECATEDIN_3_0 __owur int SSL_CTX_SRP_CTX_init(SSL_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 int SSL_SRP_CTX_free(SSL *ctx); -OSSL_DEPRECATEDIN_3_0 int SSL_CTX_SRP_CTX_free(SSL_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 __owur int SSL_srp_server_param_with_username(SSL *s, - int *ad); -OSSL_DEPRECATEDIN_3_0 __owur int SRP_Calc_A_param(SSL *s); -# endif -# endif - -/* 100k max cert list */ -# define SSL_MAX_CERT_LIST_DEFAULT (1024*100) - -# define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT (1024*20) - -/* - * This callback type is used inside SSL_CTX, SSL, and in the functions that - * set them. It is used to override the generation of SSL/TLS session IDs in - * a server. Return value should be zero on an error, non-zero to proceed. - * Also, callbacks should themselves check if the id they generate is unique - * otherwise the SSL handshake will fail with an error - callbacks can do - * this using the 'ssl' value they're passed by; - * SSL_has_matching_session_id(ssl, id, *id_len) The length value passed in - * is set at the maximum size the session ID can be. In SSLv3/TLSv1 it is 32 - * bytes. The callback can alter this length to be less if desired. It is - * also an error for the callback to set the size to zero. - */ -typedef int (*GEN_SESSION_CB) (SSL *ssl, unsigned char *id, - unsigned int *id_len); - -# define SSL_SESS_CACHE_OFF 0x0000 -# define SSL_SESS_CACHE_CLIENT 0x0001 -# define SSL_SESS_CACHE_SERVER 0x0002 -# define SSL_SESS_CACHE_BOTH (SSL_SESS_CACHE_CLIENT|SSL_SESS_CACHE_SERVER) -# define SSL_SESS_CACHE_NO_AUTO_CLEAR 0x0080 -/* enough comments already ... see SSL_CTX_set_session_cache_mode(3) */ -# define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP 0x0100 -# define SSL_SESS_CACHE_NO_INTERNAL_STORE 0x0200 -# define SSL_SESS_CACHE_NO_INTERNAL \ - (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP|SSL_SESS_CACHE_NO_INTERNAL_STORE) -# define SSL_SESS_CACHE_UPDATE_TIME 0x0400 - -LHASH_OF(SSL_SESSION) *SSL_CTX_sessions(SSL_CTX *ctx); -# define SSL_CTX_sess_number(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_NUMBER,0,NULL) -# define SSL_CTX_sess_connect(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT,0,NULL) -# define SSL_CTX_sess_connect_good(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_GOOD,0,NULL) -# define SSL_CTX_sess_connect_renegotiate(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_RENEGOTIATE,0,NULL) -# define SSL_CTX_sess_accept(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT,0,NULL) -# define SSL_CTX_sess_accept_renegotiate(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_RENEGOTIATE,0,NULL) -# define SSL_CTX_sess_accept_good(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_GOOD,0,NULL) -# define SSL_CTX_sess_hits(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_HIT,0,NULL) -# define SSL_CTX_sess_cb_hits(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CB_HIT,0,NULL) -# define SSL_CTX_sess_misses(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_MISSES,0,NULL) -# define SSL_CTX_sess_timeouts(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_TIMEOUTS,0,NULL) -# define SSL_CTX_sess_cache_full(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CACHE_FULL,0,NULL) - -void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, - int (*new_session_cb) (struct ssl_st *ssl, - SSL_SESSION *sess)); -int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, - SSL_SESSION *sess); -void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, - void (*remove_session_cb) (struct ssl_ctx_st - *ctx, - SSL_SESSION *sess)); -void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (struct ssl_ctx_st *ctx, - SSL_SESSION *sess); -void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, - SSL_SESSION *(*get_session_cb) (struct ssl_st - *ssl, - const unsigned char - *data, int len, - int *copy)); -SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, - const unsigned char *data, - int len, int *copy); -void SSL_CTX_set_info_callback(SSL_CTX *ctx, - void (*cb) (const SSL *ssl, int type, int val)); -void (*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int type, - int val); -void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, - int (*client_cert_cb) (SSL *ssl, X509 **x509, - EVP_PKEY **pkey)); -int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509, - EVP_PKEY **pkey); -# ifndef OPENSSL_NO_ENGINE -__owur int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e); -# endif -void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, - int (*app_gen_cookie_cb) (SSL *ssl, - unsigned char - *cookie, - unsigned int - *cookie_len)); -void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, - int (*app_verify_cookie_cb) (SSL *ssl, - const unsigned - char *cookie, - unsigned int - cookie_len)); - -void SSL_CTX_set_stateless_cookie_generate_cb( - SSL_CTX *ctx, - int (*gen_stateless_cookie_cb) (SSL *ssl, - unsigned char *cookie, - size_t *cookie_len)); -void SSL_CTX_set_stateless_cookie_verify_cb( - SSL_CTX *ctx, - int (*verify_stateless_cookie_cb) (SSL *ssl, - const unsigned char *cookie, - size_t cookie_len)); -# ifndef OPENSSL_NO_NEXTPROTONEG - -typedef int (*SSL_CTX_npn_advertised_cb_func)(SSL *ssl, - const unsigned char **out, - unsigned int *outlen, - void *arg); -void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s, - SSL_CTX_npn_advertised_cb_func cb, - void *arg); -# define SSL_CTX_set_npn_advertised_cb SSL_CTX_set_next_protos_advertised_cb - -typedef int (*SSL_CTX_npn_select_cb_func)(SSL *s, - unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, - void *arg); -void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, - SSL_CTX_npn_select_cb_func cb, - void *arg); -# define SSL_CTX_set_npn_select_cb SSL_CTX_set_next_proto_select_cb - -void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, - unsigned *len); -# define SSL_get0_npn_negotiated SSL_get0_next_proto_negotiated -# endif - -__owur int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, - const unsigned char *server, unsigned int server_len, - const unsigned char *client, - unsigned int client_len); - -# define OPENSSL_NPN_UNSUPPORTED 0 -# define OPENSSL_NPN_NEGOTIATED 1 -# define OPENSSL_NPN_NO_OVERLAP 2 - -__owur int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, - unsigned int protos_len); -__owur int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, - unsigned int protos_len); -typedef int (*SSL_CTX_alpn_select_cb_func)(SSL *ssl, - const unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, - void *arg); -void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, - SSL_CTX_alpn_select_cb_func cb, - void *arg); -void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data, - unsigned int *len); - -# ifndef OPENSSL_NO_PSK -/* - * the maximum length of the buffer given to callbacks containing the - * resulting identity/psk - */ -# define PSK_MAX_IDENTITY_LEN 256 -# define PSK_MAX_PSK_LEN 512 -typedef unsigned int (*SSL_psk_client_cb_func)(SSL *ssl, - const char *hint, - char *identity, - unsigned int max_identity_len, - unsigned char *psk, - unsigned int max_psk_len); -void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, SSL_psk_client_cb_func cb); -void SSL_set_psk_client_callback(SSL *ssl, SSL_psk_client_cb_func cb); - -typedef unsigned int (*SSL_psk_server_cb_func)(SSL *ssl, - const char *identity, - unsigned char *psk, - unsigned int max_psk_len); -void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, SSL_psk_server_cb_func cb); -void SSL_set_psk_server_callback(SSL *ssl, SSL_psk_server_cb_func cb); - -__owur int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint); -__owur int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint); -const char *SSL_get_psk_identity_hint(const SSL *s); -const char *SSL_get_psk_identity(const SSL *s); -# endif - -typedef int (*SSL_psk_find_session_cb_func)(SSL *ssl, - const unsigned char *identity, - size_t identity_len, - SSL_SESSION **sess); -typedef int (*SSL_psk_use_session_cb_func)(SSL *ssl, const EVP_MD *md, - const unsigned char **id, - size_t *idlen, - SSL_SESSION **sess); - -void SSL_set_psk_find_session_callback(SSL *s, SSL_psk_find_session_cb_func cb); -void SSL_CTX_set_psk_find_session_callback(SSL_CTX *ctx, - SSL_psk_find_session_cb_func cb); -void SSL_set_psk_use_session_callback(SSL *s, SSL_psk_use_session_cb_func cb); -void SSL_CTX_set_psk_use_session_callback(SSL_CTX *ctx, - SSL_psk_use_session_cb_func cb); - -/* Register callbacks to handle custom TLS Extensions for client or server. */ - -__owur int SSL_CTX_has_client_custom_ext(const SSL_CTX *ctx, - unsigned int ext_type); - -__owur int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, - unsigned int ext_type, - custom_ext_add_cb add_cb, - custom_ext_free_cb free_cb, - void *add_arg, - custom_ext_parse_cb parse_cb, - void *parse_arg); - -__owur int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, - unsigned int ext_type, - custom_ext_add_cb add_cb, - custom_ext_free_cb free_cb, - void *add_arg, - custom_ext_parse_cb parse_cb, - void *parse_arg); - -__owur int SSL_CTX_add_custom_ext(SSL_CTX *ctx, unsigned int ext_type, - unsigned int context, - SSL_custom_ext_add_cb_ex add_cb, - SSL_custom_ext_free_cb_ex free_cb, - void *add_arg, - SSL_custom_ext_parse_cb_ex parse_cb, - void *parse_arg); - -__owur int SSL_extension_supported(unsigned int ext_type); - -# define SSL_NOTHING 1 -# define SSL_WRITING 2 -# define SSL_READING 3 -# define SSL_X509_LOOKUP 4 -# define SSL_ASYNC_PAUSED 5 -# define SSL_ASYNC_NO_JOBS 6 -# define SSL_CLIENT_HELLO_CB 7 -# define SSL_RETRY_VERIFY 8 - -/* These will only be used when doing non-blocking IO */ -# define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING) -# define SSL_want_read(s) (SSL_want(s) == SSL_READING) -# define SSL_want_write(s) (SSL_want(s) == SSL_WRITING) -# define SSL_want_x509_lookup(s) (SSL_want(s) == SSL_X509_LOOKUP) -# define SSL_want_retry_verify(s) (SSL_want(s) == SSL_RETRY_VERIFY) -# define SSL_want_async(s) (SSL_want(s) == SSL_ASYNC_PAUSED) -# define SSL_want_async_job(s) (SSL_want(s) == SSL_ASYNC_NO_JOBS) -# define SSL_want_client_hello_cb(s) (SSL_want(s) == SSL_CLIENT_HELLO_CB) - -# define SSL_MAC_FLAG_READ_MAC_STREAM 1 -# define SSL_MAC_FLAG_WRITE_MAC_STREAM 2 -# define SSL_MAC_FLAG_READ_MAC_TLSTREE 4 -# define SSL_MAC_FLAG_WRITE_MAC_TLSTREE 8 - -/* - * A callback for logging out TLS key material. This callback should log out - * |line| followed by a newline. - */ -typedef void (*SSL_CTX_keylog_cb_func)(const SSL *ssl, const char *line); - -/* - * SSL_CTX_set_keylog_callback configures a callback to log key material. This - * is intended for debugging use with tools like Wireshark. The cb function - * should log line followed by a newline. - */ -void SSL_CTX_set_keylog_callback(SSL_CTX *ctx, SSL_CTX_keylog_cb_func cb); - -/* - * SSL_CTX_get_keylog_callback returns the callback configured by - * SSL_CTX_set_keylog_callback. - */ -SSL_CTX_keylog_cb_func SSL_CTX_get_keylog_callback(const SSL_CTX *ctx); - -int SSL_CTX_set_max_early_data(SSL_CTX *ctx, uint32_t max_early_data); -uint32_t SSL_CTX_get_max_early_data(const SSL_CTX *ctx); -int SSL_set_max_early_data(SSL *s, uint32_t max_early_data); -uint32_t SSL_get_max_early_data(const SSL *s); -int SSL_CTX_set_recv_max_early_data(SSL_CTX *ctx, uint32_t recv_max_early_data); -uint32_t SSL_CTX_get_recv_max_early_data(const SSL_CTX *ctx); -int SSL_set_recv_max_early_data(SSL *s, uint32_t recv_max_early_data); -uint32_t SSL_get_recv_max_early_data(const SSL *s); - -#ifdef __cplusplus -} -#endif - -# include -# include -# include /* This is mostly sslv3 with a few tweaks */ -# include /* Datagram TLS */ -# include /* Support for the use_srtp extension */ -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * These need to be after the above set of includes due to a compiler bug - * in VisualStudio 2015 - */ -SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) -#define sk_SSL_CIPHER_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_CIPHER_sk_type(sk)) -#define sk_SSL_CIPHER_value(sk, idx) ((const SSL_CIPHER *)OPENSSL_sk_value(ossl_check_const_SSL_CIPHER_sk_type(sk), (idx))) -#define sk_SSL_CIPHER_new(cmp) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_new(ossl_check_SSL_CIPHER_compfunc_type(cmp))) -#define sk_SSL_CIPHER_new_null() ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_new_null()) -#define sk_SSL_CIPHER_new_reserve(cmp, n) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_new_reserve(ossl_check_SSL_CIPHER_compfunc_type(cmp), (n))) -#define sk_SSL_CIPHER_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_CIPHER_sk_type(sk), (n)) -#define sk_SSL_CIPHER_free(sk) OPENSSL_sk_free(ossl_check_SSL_CIPHER_sk_type(sk)) -#define sk_SSL_CIPHER_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_CIPHER_sk_type(sk)) -#define sk_SSL_CIPHER_delete(sk, i) ((const SSL_CIPHER *)OPENSSL_sk_delete(ossl_check_SSL_CIPHER_sk_type(sk), (i))) -#define sk_SSL_CIPHER_delete_ptr(sk, ptr) ((const SSL_CIPHER *)OPENSSL_sk_delete_ptr(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr))) -#define sk_SSL_CIPHER_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr)) -#define sk_SSL_CIPHER_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr)) -#define sk_SSL_CIPHER_pop(sk) ((const SSL_CIPHER *)OPENSSL_sk_pop(ossl_check_SSL_CIPHER_sk_type(sk))) -#define sk_SSL_CIPHER_shift(sk) ((const SSL_CIPHER *)OPENSSL_sk_shift(ossl_check_SSL_CIPHER_sk_type(sk))) -#define sk_SSL_CIPHER_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_freefunc_type(freefunc)) -#define sk_SSL_CIPHER_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr), (idx)) -#define sk_SSL_CIPHER_set(sk, idx, ptr) ((const SSL_CIPHER *)OPENSSL_sk_set(ossl_check_SSL_CIPHER_sk_type(sk), (idx), ossl_check_SSL_CIPHER_type(ptr))) -#define sk_SSL_CIPHER_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr)) -#define sk_SSL_CIPHER_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr)) -#define sk_SSL_CIPHER_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr), pnum) -#define sk_SSL_CIPHER_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_CIPHER_sk_type(sk)) -#define sk_SSL_CIPHER_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_CIPHER_sk_type(sk)) -#define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) -#define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) -#define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) - - -/* compatibility */ -# define SSL_set_app_data(s,arg) (SSL_set_ex_data(s,0,(char *)(arg))) -# define SSL_get_app_data(s) (SSL_get_ex_data(s,0)) -# define SSL_SESSION_set_app_data(s,a) (SSL_SESSION_set_ex_data(s,0, \ - (char *)(a))) -# define SSL_SESSION_get_app_data(s) (SSL_SESSION_get_ex_data(s,0)) -# define SSL_CTX_get_app_data(ctx) (SSL_CTX_get_ex_data(ctx,0)) -# define SSL_CTX_set_app_data(ctx,arg) (SSL_CTX_set_ex_data(ctx,0, \ - (char *)(arg))) -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 void SSL_set_debug(SSL *s, int debug); -# endif - -/* TLSv1.3 KeyUpdate message types */ -/* -1 used so that this is an invalid value for the on-the-wire protocol */ -#define SSL_KEY_UPDATE_NONE -1 -/* Values as defined for the on-the-wire protocol */ -#define SSL_KEY_UPDATE_NOT_REQUESTED 0 -#define SSL_KEY_UPDATE_REQUESTED 1 - -/* - * The valid handshake states (one for each type message sent and one for each - * type of message received). There are also two "special" states: - * TLS = TLS or DTLS state - * DTLS = DTLS specific state - * CR/SR = Client Read/Server Read - * CW/SW = Client Write/Server Write - * - * The "special" states are: - * TLS_ST_BEFORE = No handshake has been initiated yet - * TLS_ST_OK = A handshake has been successfully completed - */ -typedef enum { - TLS_ST_BEFORE, - TLS_ST_OK, - DTLS_ST_CR_HELLO_VERIFY_REQUEST, - TLS_ST_CR_SRVR_HELLO, - TLS_ST_CR_CERT, - TLS_ST_CR_COMP_CERT, - TLS_ST_CR_CERT_STATUS, - TLS_ST_CR_KEY_EXCH, - TLS_ST_CR_CERT_REQ, - TLS_ST_CR_SRVR_DONE, - TLS_ST_CR_SESSION_TICKET, - TLS_ST_CR_CHANGE, - TLS_ST_CR_FINISHED, - TLS_ST_CW_CLNT_HELLO, - TLS_ST_CW_CERT, - TLS_ST_CW_COMP_CERT, - TLS_ST_CW_KEY_EXCH, - TLS_ST_CW_CERT_VRFY, - TLS_ST_CW_CHANGE, - TLS_ST_CW_NEXT_PROTO, - TLS_ST_CW_FINISHED, - TLS_ST_SW_HELLO_REQ, - TLS_ST_SR_CLNT_HELLO, - DTLS_ST_SW_HELLO_VERIFY_REQUEST, - TLS_ST_SW_SRVR_HELLO, - TLS_ST_SW_CERT, - TLS_ST_SW_COMP_CERT, - TLS_ST_SW_KEY_EXCH, - TLS_ST_SW_CERT_REQ, - TLS_ST_SW_SRVR_DONE, - TLS_ST_SR_CERT, - TLS_ST_SR_COMP_CERT, - TLS_ST_SR_KEY_EXCH, - TLS_ST_SR_CERT_VRFY, - TLS_ST_SR_NEXT_PROTO, - TLS_ST_SR_CHANGE, - TLS_ST_SR_FINISHED, - TLS_ST_SW_SESSION_TICKET, - TLS_ST_SW_CERT_STATUS, - TLS_ST_SW_CHANGE, - TLS_ST_SW_FINISHED, - TLS_ST_SW_ENCRYPTED_EXTENSIONS, - TLS_ST_CR_ENCRYPTED_EXTENSIONS, - TLS_ST_CR_CERT_VRFY, - TLS_ST_SW_CERT_VRFY, - TLS_ST_CR_HELLO_REQ, - TLS_ST_SW_KEY_UPDATE, - TLS_ST_CW_KEY_UPDATE, - TLS_ST_SR_KEY_UPDATE, - TLS_ST_CR_KEY_UPDATE, - TLS_ST_EARLY_DATA, - TLS_ST_PENDING_EARLY_DATA_END, - TLS_ST_CW_END_OF_EARLY_DATA, - TLS_ST_SR_END_OF_EARLY_DATA -} OSSL_HANDSHAKE_STATE; - -/* - * Most of the following state values are no longer used and are defined to be - * the closest equivalent value in the current state machine code. Not all - * defines have an equivalent and are set to a dummy value (-1). SSL_ST_CONNECT - * and SSL_ST_ACCEPT are still in use in the definition of SSL_CB_ACCEPT_LOOP, - * SSL_CB_ACCEPT_EXIT, SSL_CB_CONNECT_LOOP and SSL_CB_CONNECT_EXIT. - */ - -# define SSL_ST_CONNECT 0x1000 -# define SSL_ST_ACCEPT 0x2000 - -# define SSL_ST_MASK 0x0FFF - -# define SSL_CB_LOOP 0x01 -# define SSL_CB_EXIT 0x02 -# define SSL_CB_READ 0x04 -# define SSL_CB_WRITE 0x08 -# define SSL_CB_ALERT 0x4000/* used in callback */ -# define SSL_CB_READ_ALERT (SSL_CB_ALERT|SSL_CB_READ) -# define SSL_CB_WRITE_ALERT (SSL_CB_ALERT|SSL_CB_WRITE) -# define SSL_CB_ACCEPT_LOOP (SSL_ST_ACCEPT|SSL_CB_LOOP) -# define SSL_CB_ACCEPT_EXIT (SSL_ST_ACCEPT|SSL_CB_EXIT) -# define SSL_CB_CONNECT_LOOP (SSL_ST_CONNECT|SSL_CB_LOOP) -# define SSL_CB_CONNECT_EXIT (SSL_ST_CONNECT|SSL_CB_EXIT) -# define SSL_CB_HANDSHAKE_START 0x10 -# define SSL_CB_HANDSHAKE_DONE 0x20 - -/* Is the SSL_connection established? */ -# define SSL_in_connect_init(a) (SSL_in_init(a) && !SSL_is_server(a)) -# define SSL_in_accept_init(a) (SSL_in_init(a) && SSL_is_server(a)) -int SSL_in_init(const SSL *s); -int SSL_in_before(const SSL *s); -int SSL_is_init_finished(const SSL *s); - -/* - * The following 3 states are kept in ssl->rlayer.rstate when reads fail, you - * should not need these - */ -# define SSL_ST_READ_HEADER 0xF0 -# define SSL_ST_READ_BODY 0xF1 -# define SSL_ST_READ_DONE 0xF2 - -/*- - * Obtain latest Finished message - * -- that we sent (SSL_get_finished) - * -- that we expected from peer (SSL_get_peer_finished). - * Returns length (0 == no Finished so far), copies up to 'count' bytes. - */ -size_t SSL_get_finished(const SSL *s, void *buf, size_t count); -size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count); - -/* - * use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 3 options are - * 'ored' with SSL_VERIFY_PEER if they are desired - */ -# define SSL_VERIFY_NONE 0x00 -# define SSL_VERIFY_PEER 0x01 -# define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02 -# define SSL_VERIFY_CLIENT_ONCE 0x04 -# define SSL_VERIFY_POST_HANDSHAKE 0x08 - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define OpenSSL_add_ssl_algorithms() SSL_library_init() -# define SSLeay_add_ssl_algorithms() SSL_library_init() -# endif - -/* More backward compatibility */ -# define SSL_get_cipher(s) \ - SSL_CIPHER_get_name(SSL_get_current_cipher(s)) -# define SSL_get_cipher_bits(s,np) \ - SSL_CIPHER_get_bits(SSL_get_current_cipher(s),np) -# define SSL_get_cipher_version(s) \ - SSL_CIPHER_get_version(SSL_get_current_cipher(s)) -# define SSL_get_cipher_name(s) \ - SSL_CIPHER_get_name(SSL_get_current_cipher(s)) -# define SSL_get_time(a) SSL_SESSION_get_time(a) -# define SSL_set_time(a,b) SSL_SESSION_set_time((a),(b)) -# define SSL_get_timeout(a) SSL_SESSION_get_timeout(a) -# define SSL_set_timeout(a,b) SSL_SESSION_set_timeout((a),(b)) - -# define d2i_SSL_SESSION_bio(bp,s_id) ASN1_d2i_bio_of(SSL_SESSION,SSL_SESSION_new,d2i_SSL_SESSION,bp,s_id) -# define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio_of(SSL_SESSION,i2d_SSL_SESSION,bp,s_id) - -DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) -# define SSL_AD_REASON_OFFSET 1000/* offset to get SSL_R_... value - * from SSL_AD_... */ -/* These alert types are for SSLv3 and TLSv1 */ -# define SSL_AD_CLOSE_NOTIFY SSL3_AD_CLOSE_NOTIFY -/* fatal */ -# define SSL_AD_UNEXPECTED_MESSAGE SSL3_AD_UNEXPECTED_MESSAGE -/* fatal */ -# define SSL_AD_BAD_RECORD_MAC SSL3_AD_BAD_RECORD_MAC -# define SSL_AD_DECRYPTION_FAILED TLS1_AD_DECRYPTION_FAILED -# define SSL_AD_RECORD_OVERFLOW TLS1_AD_RECORD_OVERFLOW -/* fatal */ -# define SSL_AD_DECOMPRESSION_FAILURE SSL3_AD_DECOMPRESSION_FAILURE -/* fatal */ -# define SSL_AD_HANDSHAKE_FAILURE SSL3_AD_HANDSHAKE_FAILURE -/* Not for TLS */ -# define SSL_AD_NO_CERTIFICATE SSL3_AD_NO_CERTIFICATE -# define SSL_AD_BAD_CERTIFICATE SSL3_AD_BAD_CERTIFICATE -# define SSL_AD_UNSUPPORTED_CERTIFICATE SSL3_AD_UNSUPPORTED_CERTIFICATE -# define SSL_AD_CERTIFICATE_REVOKED SSL3_AD_CERTIFICATE_REVOKED -# define SSL_AD_CERTIFICATE_EXPIRED SSL3_AD_CERTIFICATE_EXPIRED -# define SSL_AD_CERTIFICATE_UNKNOWN SSL3_AD_CERTIFICATE_UNKNOWN -/* fatal */ -# define SSL_AD_ILLEGAL_PARAMETER SSL3_AD_ILLEGAL_PARAMETER -/* fatal */ -# define SSL_AD_UNKNOWN_CA TLS1_AD_UNKNOWN_CA -/* fatal */ -# define SSL_AD_ACCESS_DENIED TLS1_AD_ACCESS_DENIED -/* fatal */ -# define SSL_AD_DECODE_ERROR TLS1_AD_DECODE_ERROR -# define SSL_AD_DECRYPT_ERROR TLS1_AD_DECRYPT_ERROR -/* fatal */ -# define SSL_AD_EXPORT_RESTRICTION TLS1_AD_EXPORT_RESTRICTION -/* fatal */ -# define SSL_AD_PROTOCOL_VERSION TLS1_AD_PROTOCOL_VERSION -/* fatal */ -# define SSL_AD_INSUFFICIENT_SECURITY TLS1_AD_INSUFFICIENT_SECURITY -/* fatal */ -# define SSL_AD_INTERNAL_ERROR TLS1_AD_INTERNAL_ERROR -# define SSL_AD_USER_CANCELLED TLS1_AD_USER_CANCELLED -# define SSL_AD_NO_RENEGOTIATION TLS1_AD_NO_RENEGOTIATION -# define SSL_AD_MISSING_EXTENSION TLS13_AD_MISSING_EXTENSION -# define SSL_AD_CERTIFICATE_REQUIRED TLS13_AD_CERTIFICATE_REQUIRED -# define SSL_AD_UNSUPPORTED_EXTENSION TLS1_AD_UNSUPPORTED_EXTENSION -# define SSL_AD_CERTIFICATE_UNOBTAINABLE TLS1_AD_CERTIFICATE_UNOBTAINABLE -# define SSL_AD_UNRECOGNIZED_NAME TLS1_AD_UNRECOGNIZED_NAME -# define SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE -# define SSL_AD_BAD_CERTIFICATE_HASH_VALUE TLS1_AD_BAD_CERTIFICATE_HASH_VALUE -/* fatal */ -# define SSL_AD_UNKNOWN_PSK_IDENTITY TLS1_AD_UNKNOWN_PSK_IDENTITY -/* fatal */ -# define SSL_AD_INAPPROPRIATE_FALLBACK TLS1_AD_INAPPROPRIATE_FALLBACK -# define SSL_AD_NO_APPLICATION_PROTOCOL TLS1_AD_NO_APPLICATION_PROTOCOL -# define SSL_ERROR_NONE 0 -# define SSL_ERROR_SSL 1 -# define SSL_ERROR_WANT_READ 2 -# define SSL_ERROR_WANT_WRITE 3 -# define SSL_ERROR_WANT_X509_LOOKUP 4 -# define SSL_ERROR_SYSCALL 5/* look at error stack/return - * value/errno */ -# define SSL_ERROR_ZERO_RETURN 6 -# define SSL_ERROR_WANT_CONNECT 7 -# define SSL_ERROR_WANT_ACCEPT 8 -# define SSL_ERROR_WANT_ASYNC 9 -# define SSL_ERROR_WANT_ASYNC_JOB 10 -# define SSL_ERROR_WANT_CLIENT_HELLO_CB 11 -# define SSL_ERROR_WANT_RETRY_VERIFY 12 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SSL_CTRL_SET_TMP_DH 3 -# define SSL_CTRL_SET_TMP_ECDH 4 -# define SSL_CTRL_SET_TMP_DH_CB 6 -# endif - -# define SSL_CTRL_GET_CLIENT_CERT_REQUEST 9 -# define SSL_CTRL_GET_NUM_RENEGOTIATIONS 10 -# define SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 11 -# define SSL_CTRL_GET_TOTAL_RENEGOTIATIONS 12 -# define SSL_CTRL_GET_FLAGS 13 -# define SSL_CTRL_EXTRA_CHAIN_CERT 14 -# define SSL_CTRL_SET_MSG_CALLBACK 15 -# define SSL_CTRL_SET_MSG_CALLBACK_ARG 16 -/* only applies to datagram connections */ -# define SSL_CTRL_SET_MTU 17 -/* Stats */ -# define SSL_CTRL_SESS_NUMBER 20 -# define SSL_CTRL_SESS_CONNECT 21 -# define SSL_CTRL_SESS_CONNECT_GOOD 22 -# define SSL_CTRL_SESS_CONNECT_RENEGOTIATE 23 -# define SSL_CTRL_SESS_ACCEPT 24 -# define SSL_CTRL_SESS_ACCEPT_GOOD 25 -# define SSL_CTRL_SESS_ACCEPT_RENEGOTIATE 26 -# define SSL_CTRL_SESS_HIT 27 -# define SSL_CTRL_SESS_CB_HIT 28 -# define SSL_CTRL_SESS_MISSES 29 -# define SSL_CTRL_SESS_TIMEOUTS 30 -# define SSL_CTRL_SESS_CACHE_FULL 31 -# define SSL_CTRL_MODE 33 -# define SSL_CTRL_GET_READ_AHEAD 40 -# define SSL_CTRL_SET_READ_AHEAD 41 -# define SSL_CTRL_SET_SESS_CACHE_SIZE 42 -# define SSL_CTRL_GET_SESS_CACHE_SIZE 43 -# define SSL_CTRL_SET_SESS_CACHE_MODE 44 -# define SSL_CTRL_GET_SESS_CACHE_MODE 45 -# define SSL_CTRL_GET_MAX_CERT_LIST 50 -# define SSL_CTRL_SET_MAX_CERT_LIST 51 -# define SSL_CTRL_SET_MAX_SEND_FRAGMENT 52 -/* see tls1.h for macros based on these */ -# define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB 53 -# define SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG 54 -# define SSL_CTRL_SET_TLSEXT_HOSTNAME 55 -# define SSL_CTRL_SET_TLSEXT_DEBUG_CB 56 -# define SSL_CTRL_SET_TLSEXT_DEBUG_ARG 57 -# define SSL_CTRL_GET_TLSEXT_TICKET_KEYS 58 -# define SSL_CTRL_SET_TLSEXT_TICKET_KEYS 59 -/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT 60 */ -/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB 61 */ -/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG 62 */ -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB 63 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG 64 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE 65 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS 66 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS 67 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS 68 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS 69 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP 70 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP 71 -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB 72 -# endif -# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB 75 -# define SSL_CTRL_SET_SRP_VERIFY_PARAM_CB 76 -# define SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB 77 -# define SSL_CTRL_SET_SRP_ARG 78 -# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME 79 -# define SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH 80 -# define SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD 81 -# define DTLS_CTRL_GET_TIMEOUT 73 -# define DTLS_CTRL_HANDLE_TIMEOUT 74 -# define SSL_CTRL_GET_RI_SUPPORT 76 -# define SSL_CTRL_CLEAR_MODE 78 -# define SSL_CTRL_SET_NOT_RESUMABLE_SESS_CB 79 -# define SSL_CTRL_GET_EXTRA_CHAIN_CERTS 82 -# define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS 83 -# define SSL_CTRL_CHAIN 88 -# define SSL_CTRL_CHAIN_CERT 89 -# define SSL_CTRL_GET_GROUPS 90 -# define SSL_CTRL_SET_GROUPS 91 -# define SSL_CTRL_SET_GROUPS_LIST 92 -# define SSL_CTRL_GET_SHARED_GROUP 93 -# define SSL_CTRL_SET_SIGALGS 97 -# define SSL_CTRL_SET_SIGALGS_LIST 98 -# define SSL_CTRL_CERT_FLAGS 99 -# define SSL_CTRL_CLEAR_CERT_FLAGS 100 -# define SSL_CTRL_SET_CLIENT_SIGALGS 101 -# define SSL_CTRL_SET_CLIENT_SIGALGS_LIST 102 -# define SSL_CTRL_GET_CLIENT_CERT_TYPES 103 -# define SSL_CTRL_SET_CLIENT_CERT_TYPES 104 -# define SSL_CTRL_BUILD_CERT_CHAIN 105 -# define SSL_CTRL_SET_VERIFY_CERT_STORE 106 -# define SSL_CTRL_SET_CHAIN_CERT_STORE 107 -# define SSL_CTRL_GET_PEER_SIGNATURE_NID 108 -# define SSL_CTRL_GET_PEER_TMP_KEY 109 -# define SSL_CTRL_GET_RAW_CIPHERLIST 110 -# define SSL_CTRL_GET_EC_POINT_FORMATS 111 -# define SSL_CTRL_GET_CHAIN_CERTS 115 -# define SSL_CTRL_SELECT_CURRENT_CERT 116 -# define SSL_CTRL_SET_CURRENT_CERT 117 -# define SSL_CTRL_SET_DH_AUTO 118 -# define DTLS_CTRL_SET_LINK_MTU 120 -# define DTLS_CTRL_GET_LINK_MIN_MTU 121 -# define SSL_CTRL_GET_EXTMS_SUPPORT 122 -# define SSL_CTRL_SET_MIN_PROTO_VERSION 123 -# define SSL_CTRL_SET_MAX_PROTO_VERSION 124 -# define SSL_CTRL_SET_SPLIT_SEND_FRAGMENT 125 -# define SSL_CTRL_SET_MAX_PIPELINES 126 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE 127 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB 128 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG 129 -# define SSL_CTRL_GET_MIN_PROTO_VERSION 130 -# define SSL_CTRL_GET_MAX_PROTO_VERSION 131 -# define SSL_CTRL_GET_SIGNATURE_NID 132 -# define SSL_CTRL_GET_TMP_KEY 133 -# define SSL_CTRL_GET_NEGOTIATED_GROUP 134 -# define SSL_CTRL_GET_IANA_GROUPS 135 -# define SSL_CTRL_SET_RETRY_VERIFY 136 -# define SSL_CTRL_GET_VERIFY_CERT_STORE 137 -# define SSL_CTRL_GET_CHAIN_CERT_STORE 138 -# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 -# define SSL_CTRL_GET_SIGNATURE_NAME 140 -# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP_EX 142 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP_EX 143 -# define SSL_CERT_SET_FIRST 1 -# define SSL_CERT_SET_NEXT 2 -# define SSL_CERT_SET_SERVER 3 -# define DTLSv1_get_timeout(ssl, arg) \ - SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)(arg)) -# define DTLSv1_handle_timeout(ssl) \ - SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, NULL) -# define SSL_num_renegotiations(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_GET_NUM_RENEGOTIATIONS,0,NULL) -# define SSL_clear_num_renegotiations(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS,0,NULL) -# define SSL_total_renegotiations(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_GET_TOTAL_RENEGOTIATIONS,0,NULL) -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SSL_CTX_set_tmp_dh(ctx,dh) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)(dh)) -# endif -# define SSL_CTX_set_dh_auto(ctx, onoff) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_DH_AUTO,onoff,NULL) -# define SSL_set_dh_auto(s, onoff) \ - SSL_ctrl(s,SSL_CTRL_SET_DH_AUTO,onoff,NULL) -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SSL_set_tmp_dh(ssl,dh) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)(dh)) -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SSL_CTX_set_tmp_ecdh(ctx,ecdh) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)(ecdh)) -# define SSL_set_tmp_ecdh(ssl,ecdh) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH,0,(char *)(ecdh)) -# endif -# define SSL_CTX_add_extra_chain_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)(x509)) -# define SSL_CTX_get_extra_chain_certs(ctx,px509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,0,px509) -# define SSL_CTX_get_extra_chain_certs_only(ctx,px509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,1,px509) -# define SSL_CTX_clear_extra_chain_certs(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS,0,NULL) -# define SSL_CTX_set0_chain(ctx,sk) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)(sk)) -# define SSL_CTX_set1_chain(ctx,sk) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)(sk)) -# define SSL_CTX_add0_chain_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)(x509)) -# define SSL_CTX_add1_chain_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)(x509)) -# define SSL_CTX_get0_chain_certs(ctx,px509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509) -# define SSL_CTX_clear_chain_certs(ctx) \ - SSL_CTX_set0_chain(ctx,NULL) -# define SSL_CTX_build_cert_chain(ctx, flags) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) -# define SSL_CTX_select_current_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509)) -# define SSL_CTX_set_current_cert(ctx, op) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL) -# define SSL_CTX_set0_verify_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)(st)) -# define SSL_CTX_set1_verify_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st)) -# define SSL_CTX_get0_verify_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_VERIFY_CERT_STORE,0,(char *)(st)) -# define SSL_CTX_set0_chain_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)(st)) -# define SSL_CTX_set1_chain_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)(st)) -# define SSL_CTX_get0_chain_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERT_STORE,0,(char *)(st)) -# define SSL_set0_chain(s,sk) \ - SSL_ctrl(s,SSL_CTRL_CHAIN,0,(char *)(sk)) -# define SSL_set1_chain(s,sk) \ - SSL_ctrl(s,SSL_CTRL_CHAIN,1,(char *)(sk)) -# define SSL_add0_chain_cert(s,x509) \ - SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,0,(char *)(x509)) -# define SSL_add1_chain_cert(s,x509) \ - SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,1,(char *)(x509)) -# define SSL_get0_chain_certs(s,px509) \ - SSL_ctrl(s,SSL_CTRL_GET_CHAIN_CERTS,0,px509) -# define SSL_clear_chain_certs(s) \ - SSL_set0_chain(s,NULL) -# define SSL_build_cert_chain(s, flags) \ - SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) -# define SSL_select_current_cert(s,x509) \ - SSL_ctrl(s,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509)) -# define SSL_set_current_cert(s,op) \ - SSL_ctrl(s,SSL_CTRL_SET_CURRENT_CERT, op, NULL) -# define SSL_set0_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)(st)) -# define SSL_set1_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st)) -#define SSL_get0_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_GET_VERIFY_CERT_STORE,0,(char *)(st)) -# define SSL_set0_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)(st)) -# define SSL_set1_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)(st)) -#define SSL_get0_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_GET_CHAIN_CERT_STORE,0,(char *)(st)) - -# define SSL_get1_groups(s, glist) \ - SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) -# define SSL_get0_iana_groups(s, plst) \ - SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) -# define SSL_CTX_set1_groups(ctx, glist, glistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) -# define SSL_CTX_set1_groups_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) -# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ - (STACK_OF(OPENSSL_CSTRING) *)(out)) -# define SSL_set1_groups(s, glist, glistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) -# define SSL_set1_groups_list(s, str) \ - SSL_ctrl(s,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(str)) -# define SSL_get_shared_group(s, n) \ - SSL_ctrl(s,SSL_CTRL_GET_SHARED_GROUP,n,NULL) -# define SSL_get_negotiated_group(s) \ - SSL_ctrl(s,SSL_CTRL_GET_NEGOTIATED_GROUP,0,NULL) -# define SSL_CTX_set1_sigalgs(ctx, slist, slistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist)) -# define SSL_CTX_set1_sigalgs_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(s)) -# define SSL_set1_sigalgs(s, slist, slistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist)) -# define SSL_set1_sigalgs_list(s, str) \ - SSL_ctrl(s,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(str)) -# define SSL_CTX_set1_client_sigalgs(ctx, slist, slistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist)) -# define SSL_CTX_set1_client_sigalgs_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(s)) -# define SSL_set1_client_sigalgs(s, slist, slistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist)) -# define SSL_set1_client_sigalgs_list(s, str) \ - SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(str)) -# define SSL_get0_certificate_types(s, clist) \ - SSL_ctrl(s, SSL_CTRL_GET_CLIENT_CERT_TYPES, 0, (char *)(clist)) -# define SSL_CTX_set1_client_certificate_types(ctx, clist, clistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen, \ - (char *)(clist)) -# define SSL_set1_client_certificate_types(s, clist, clistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) -# define SSL_get0_signature_name(s, str) \ - SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) -# define SSL_get_signature_nid(s, pn) \ - SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) -# define SSL_get0_peer_signature_name(s, str) \ - SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) -# define SSL_get_peer_signature_nid(s, pn) \ - SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) -# define SSL_get_peer_tmp_key(s, pk) \ - SSL_ctrl(s,SSL_CTRL_GET_PEER_TMP_KEY,0,pk) -# define SSL_get_tmp_key(s, pk) \ - SSL_ctrl(s,SSL_CTRL_GET_TMP_KEY,0,pk) -# define SSL_get0_raw_cipherlist(s, plst) \ - SSL_ctrl(s,SSL_CTRL_GET_RAW_CIPHERLIST,0,plst) -# define SSL_get0_ec_point_formats(s, plst) \ - SSL_ctrl(s,SSL_CTRL_GET_EC_POINT_FORMATS,0,plst) -# define SSL_CTX_set_min_proto_version(ctx, version) \ - SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL) -# define SSL_CTX_set_max_proto_version(ctx, version) \ - SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL) -# define SSL_CTX_get_min_proto_version(ctx) \ - SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL) -# define SSL_CTX_get_max_proto_version(ctx) \ - SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) -# define SSL_set_min_proto_version(s, version) \ - SSL_ctrl(s, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL) -# define SSL_set_max_proto_version(s, version) \ - SSL_ctrl(s, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL) -# define SSL_get_min_proto_version(s) \ - SSL_ctrl(s, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL) -# define SSL_get_max_proto_version(s) \ - SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) - -const char *SSL_get0_group_name(SSL *s); -const char *SSL_group_to_name(SSL *s, int id); - -/* Backwards compatibility, original 1.1.0 names */ -# define SSL_CTRL_GET_SERVER_TMP_KEY \ - SSL_CTRL_GET_PEER_TMP_KEY -# define SSL_get_server_tmp_key(s, pk) \ - SSL_get_peer_tmp_key(s, pk) - -int SSL_set0_tmp_dh_pkey(SSL *s, EVP_PKEY *dhpkey); -int SSL_CTX_set0_tmp_dh_pkey(SSL_CTX *ctx, EVP_PKEY *dhpkey); - -/* - * The following symbol names are old and obsolete. They are kept - * for compatibility reasons only and should not be used anymore. - */ -# define SSL_CTRL_GET_CURVES SSL_CTRL_GET_GROUPS -# define SSL_CTRL_SET_CURVES SSL_CTRL_SET_GROUPS -# define SSL_CTRL_SET_CURVES_LIST SSL_CTRL_SET_GROUPS_LIST -# define SSL_CTRL_GET_SHARED_CURVE SSL_CTRL_GET_SHARED_GROUP - -# define SSL_get1_curves SSL_get1_groups -# define SSL_CTX_set1_curves SSL_CTX_set1_groups -# define SSL_CTX_set1_curves_list SSL_CTX_set1_groups_list -# define SSL_set1_curves SSL_set1_groups -# define SSL_set1_curves_list SSL_set1_groups_list -# define SSL_get_shared_curve SSL_get_shared_group - - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -/* Provide some compatibility macros for removed functionality. */ -# define SSL_CTX_need_tmp_RSA(ctx) 0 -# define SSL_CTX_set_tmp_rsa(ctx,rsa) 1 -# define SSL_need_tmp_RSA(ssl) 0 -# define SSL_set_tmp_rsa(ssl,rsa) 1 -# define SSL_CTX_set_ecdh_auto(dummy, onoff) ((onoff) != 0) -# define SSL_set_ecdh_auto(dummy, onoff) ((onoff) != 0) -/* - * We "pretend" to call the callback to avoid warnings about unused static - * functions. - */ -# define SSL_CTX_set_tmp_rsa_callback(ctx, cb) while(0) (cb)(NULL, 0, 0) -# define SSL_set_tmp_rsa_callback(ssl, cb) while(0) (cb)(NULL, 0, 0) -# endif -__owur const BIO_METHOD *BIO_f_ssl(void); -__owur BIO *BIO_new_ssl(SSL_CTX *ctx, int client); -__owur BIO *BIO_new_ssl_connect(SSL_CTX *ctx); -__owur BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx); -__owur int BIO_ssl_copy_session_id(BIO *to, BIO *from); -void BIO_ssl_shutdown(BIO *ssl_bio); - -__owur int SSL_CTX_set_cipher_list(SSL_CTX *, const char *str); -__owur SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth); -__owur SSL_CTX *SSL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq, - const SSL_METHOD *meth); -int SSL_CTX_up_ref(SSL_CTX *ctx); -void SSL_CTX_free(SSL_CTX *); -__owur long SSL_CTX_set_timeout(SSL_CTX *ctx, long t); -__owur long SSL_CTX_get_timeout(const SSL_CTX *ctx); -__owur X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *); -void SSL_CTX_set_cert_store(SSL_CTX *, X509_STORE *); -void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); -__owur int SSL_want(const SSL *s); -__owur int SSL_clear(SSL *s); - -#ifndef OPENSSL_NO_DEPRECATED_3_4 -OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") -void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); -#endif -void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); - -__owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); -__owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); -__owur int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits); -__owur const char *SSL_CIPHER_get_version(const SSL_CIPHER *c); -__owur const char *SSL_CIPHER_get_name(const SSL_CIPHER *c); -__owur const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c); -__owur const char *OPENSSL_cipher_name(const char *rfc_name); -__owur uint32_t SSL_CIPHER_get_id(const SSL_CIPHER *c); -__owur uint16_t SSL_CIPHER_get_protocol_id(const SSL_CIPHER *c); -__owur int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c); -__owur int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c); -__owur const EVP_MD *SSL_CIPHER_get_handshake_digest(const SSL_CIPHER *c); -__owur int SSL_CIPHER_is_aead(const SSL_CIPHER *c); - -__owur int SSL_get_fd(const SSL *s); -__owur int SSL_get_rfd(const SSL *s); -__owur int SSL_get_wfd(const SSL *s); -__owur const char *SSL_get_cipher_list(const SSL *s, int n); -__owur char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size); -__owur int SSL_get_read_ahead(const SSL *s); -__owur int SSL_pending(const SSL *s); -__owur int SSL_has_pending(const SSL *s); -# ifndef OPENSSL_NO_SOCK -__owur int SSL_set_fd(SSL *s, int fd); -__owur int SSL_set_rfd(SSL *s, int fd); -__owur int SSL_set_wfd(SSL *s, int fd); -# endif -void SSL_set0_rbio(SSL *s, BIO *rbio); -void SSL_set0_wbio(SSL *s, BIO *wbio); -void SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio); -__owur BIO *SSL_get_rbio(const SSL *s); -__owur BIO *SSL_get_wbio(const SSL *s); -__owur int SSL_set_cipher_list(SSL *s, const char *str); -__owur int SSL_CTX_set_ciphersuites(SSL_CTX *ctx, const char *str); -__owur int SSL_set_ciphersuites(SSL *s, const char *str); -void SSL_set_read_ahead(SSL *s, int yes); -__owur int SSL_get_verify_mode(const SSL *s); -__owur int SSL_get_verify_depth(const SSL *s); -__owur SSL_verify_cb SSL_get_verify_callback(const SSL *s); -void SSL_set_verify(SSL *s, int mode, SSL_verify_cb callback); -void SSL_set_verify_depth(SSL *s, int depth); -void SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void *arg); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 __owur int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); -OSSL_DEPRECATEDIN_3_0 -__owur int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, - const unsigned char *d, long len); -# endif -__owur int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey); -__owur int SSL_use_PrivateKey_ASN1(int pk, SSL *ssl, const unsigned char *d, - long len); -__owur int SSL_use_certificate(SSL *ssl, X509 *x); -__owur int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len); -__owur int SSL_use_cert_and_key(SSL *ssl, X509 *x509, EVP_PKEY *privatekey, - STACK_OF(X509) *chain, int override); - - -/* serverinfo file format versions */ -# define SSL_SERVERINFOV1 1 -# define SSL_SERVERINFOV2 2 - -/* Set serverinfo data for the current active cert. */ -__owur int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo, - size_t serverinfo_length); -__owur int SSL_CTX_use_serverinfo_ex(SSL_CTX *ctx, unsigned int version, - const unsigned char *serverinfo, - size_t serverinfo_length); -__owur int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file); - -#ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -__owur int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); -#endif - -__owur int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type); -__owur int SSL_use_certificate_file(SSL *ssl, const char *file, int type); - -#ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -__owur int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, - int type); -#endif -__owur int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, - int type); -__owur int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, - int type); -/* PEM type */ -__owur int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); -__owur int SSL_use_certificate_chain_file(SSL *ssl, const char *file); -__owur STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file); -__owur STACK_OF(X509_NAME) -*SSL_load_client_CA_file_ex(const char *file, OSSL_LIB_CTX *libctx, - const char *propq); -__owur int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, - const char *file); -int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, - const char *dir); -int SSL_add_store_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, - const char *uri); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define SSL_load_error_strings() \ - OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \ - | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) -# endif - -__owur const char *SSL_state_string(const SSL *s); -__owur const char *SSL_rstate_string(const SSL *s); -__owur const char *SSL_state_string_long(const SSL *s); -__owur const char *SSL_rstate_string_long(const SSL *s); - -#ifndef OPENSSL_NO_DEPRECATED_3_4 -OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") -__owur long SSL_SESSION_get_time(const SSL_SESSION *s); -OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") -__owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); -#endif -__owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); -__owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); -__owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); -__owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); - -__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); -__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); - -__owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); -__owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); -void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, - const unsigned char **alpn, - size_t *len); -__owur int SSL_SESSION_set1_alpn_selected(SSL_SESSION *s, - const unsigned char *alpn, - size_t len); -__owur const SSL_CIPHER *SSL_SESSION_get0_cipher(const SSL_SESSION *s); -__owur int SSL_SESSION_set_cipher(SSL_SESSION *s, const SSL_CIPHER *cipher); -__owur int SSL_SESSION_has_ticket(const SSL_SESSION *s); -__owur unsigned long SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s); -void SSL_SESSION_get0_ticket(const SSL_SESSION *s, const unsigned char **tick, - size_t *len); -__owur uint32_t SSL_SESSION_get_max_early_data(const SSL_SESSION *s); -__owur int SSL_SESSION_set_max_early_data(SSL_SESSION *s, - uint32_t max_early_data); -__owur int SSL_copy_session_id(SSL *to, const SSL *from); -__owur X509 *SSL_SESSION_get0_peer(SSL_SESSION *s); -__owur int SSL_SESSION_set1_id_context(SSL_SESSION *s, - const unsigned char *sid_ctx, - unsigned int sid_ctx_len); -__owur int SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid, - unsigned int sid_len); -__owur int SSL_SESSION_is_resumable(const SSL_SESSION *s); - -__owur SSL_SESSION *SSL_SESSION_new(void); -__owur SSL_SESSION *SSL_SESSION_dup(const SSL_SESSION *src); -const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, - unsigned int *len); -const unsigned char *SSL_SESSION_get0_id_context(const SSL_SESSION *s, - unsigned int *len); -__owur unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s); -# ifndef OPENSSL_NO_STDIO -int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *ses); -# endif -int SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses); -int SSL_SESSION_print_keylog(BIO *bp, const SSL_SESSION *x); -int SSL_SESSION_up_ref(SSL_SESSION *ses); -void SSL_SESSION_free(SSL_SESSION *ses); -__owur int i2d_SSL_SESSION(const SSL_SESSION *in, unsigned char **pp); -__owur int SSL_set_session(SSL *to, SSL_SESSION *session); -int SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *session); -int SSL_CTX_remove_session(SSL_CTX *ctx, SSL_SESSION *session); -__owur int SSL_CTX_set_generate_session_id(SSL_CTX *ctx, GEN_SESSION_CB cb); -__owur int SSL_set_generate_session_id(SSL *s, GEN_SESSION_CB cb); -__owur int SSL_has_matching_session_id(const SSL *s, - const unsigned char *id, - unsigned int id_len); -SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, - long length); -SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, - long length, OSSL_LIB_CTX *libctx, - const char *propq); - -# ifdef OPENSSL_X509_H -__owur X509 *SSL_get0_peer_certificate(const SSL *s); -__owur X509 *SSL_get1_peer_certificate(const SSL *s); -/* Deprecated in 3.0.0 */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SSL_get_peer_certificate SSL_get1_peer_certificate -# endif -# endif - -__owur STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s); - -__owur int SSL_CTX_get_verify_mode(const SSL_CTX *ctx); -__owur int SSL_CTX_get_verify_depth(const SSL_CTX *ctx); -__owur SSL_verify_cb SSL_CTX_get_verify_callback(const SSL_CTX *ctx); -void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, SSL_verify_cb callback); -void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth); -void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, - int (*cb) (X509_STORE_CTX *, void *), - void *arg); -void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg), - void *arg); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -__owur int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); -OSSL_DEPRECATEDIN_3_0 -__owur int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d, - long len); -# endif -__owur int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey); -__owur int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx, - const unsigned char *d, long len); -__owur int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x); -__owur int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, - const unsigned char *d); -__owur int SSL_CTX_use_cert_and_key(SSL_CTX *ctx, X509 *x509, EVP_PKEY *privatekey, - STACK_OF(X509) *chain, int override); - -void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb); -void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u); -pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx); -void *SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx); -void SSL_set_default_passwd_cb(SSL *s, pem_password_cb *cb); -void SSL_set_default_passwd_cb_userdata(SSL *s, void *u); -pem_password_cb *SSL_get_default_passwd_cb(SSL *s); -void *SSL_get_default_passwd_cb_userdata(SSL *s); - -__owur int SSL_CTX_check_private_key(const SSL_CTX *ctx); -__owur int SSL_check_private_key(const SSL *ctx); - -__owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, - const unsigned char *sid_ctx, - unsigned int sid_ctx_len); - -SSL *SSL_new(SSL_CTX *ctx); -int SSL_up_ref(SSL *s); -int SSL_is_dtls(const SSL *s); -int SSL_is_tls(const SSL *s); -int SSL_is_quic(const SSL *s); -__owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, - unsigned int sid_ctx_len); - -__owur int SSL_CTX_set_purpose(SSL_CTX *ctx, int purpose); -__owur int SSL_set_purpose(SSL *ssl, int purpose); -__owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); -__owur int SSL_set_trust(SSL *ssl, int trust); - -__owur int SSL_set1_host(SSL *s, const char *host); -__owur int SSL_add1_host(SSL *s, const char *host); -__owur const char *SSL_get0_peername(SSL *s); -void SSL_set_hostflags(SSL *s, unsigned int flags); - -__owur int SSL_CTX_dane_enable(SSL_CTX *ctx); -__owur int SSL_CTX_dane_mtype_set(SSL_CTX *ctx, const EVP_MD *md, - uint8_t mtype, uint8_t ord); -__owur int SSL_dane_enable(SSL *s, const char *basedomain); -__owur int SSL_dane_tlsa_add(SSL *s, uint8_t usage, uint8_t selector, - uint8_t mtype, const unsigned char *data, size_t dlen); -__owur int SSL_get0_dane_authority(SSL *s, X509 **mcert, EVP_PKEY **mspki); -__owur int SSL_get0_dane_tlsa(SSL *s, uint8_t *usage, uint8_t *selector, - uint8_t *mtype, const unsigned char **data, - size_t *dlen); -/* - * Bridge opacity barrier between libcrypt and libssl, also needed to support - * offline testing in test/danetest.c - */ -SSL_DANE *SSL_get0_dane(SSL *ssl); -/* - * DANE flags - */ -unsigned long SSL_CTX_dane_set_flags(SSL_CTX *ctx, unsigned long flags); -unsigned long SSL_CTX_dane_clear_flags(SSL_CTX *ctx, unsigned long flags); -unsigned long SSL_dane_set_flags(SSL *ssl, unsigned long flags); -unsigned long SSL_dane_clear_flags(SSL *ssl, unsigned long flags); - -__owur int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm); -__owur int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm); - -__owur X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx); -__owur X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl); - -# ifndef OPENSSL_NO_SRP -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_username(SSL_CTX *ctx, char *name); -OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_password(SSL_CTX *ctx, char *password); -OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_strength(SSL_CTX *ctx, int strength); -OSSL_DEPRECATEDIN_3_0 -int SSL_CTX_set_srp_client_pwd_callback(SSL_CTX *ctx, - char *(*cb) (SSL *, void *)); -OSSL_DEPRECATEDIN_3_0 -int SSL_CTX_set_srp_verify_param_callback(SSL_CTX *ctx, - int (*cb) (SSL *, void *)); -OSSL_DEPRECATEDIN_3_0 -int SSL_CTX_set_srp_username_callback(SSL_CTX *ctx, - int (*cb) (SSL *, int *, void *)); -OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_cb_arg(SSL_CTX *ctx, void *arg); - -OSSL_DEPRECATEDIN_3_0 -int SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM *g, - BIGNUM *sa, BIGNUM *v, char *info); -OSSL_DEPRECATEDIN_3_0 -int SSL_set_srp_server_param_pw(SSL *s, const char *user, const char *pass, - const char *grp); - -OSSL_DEPRECATEDIN_3_0 __owur BIGNUM *SSL_get_srp_g(SSL *s); -OSSL_DEPRECATEDIN_3_0 __owur BIGNUM *SSL_get_srp_N(SSL *s); - -OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_username(SSL *s); -OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); -# endif -# endif - -/* - * ClientHello callback and helpers. - */ - -# define SSL_CLIENT_HELLO_SUCCESS 1 -# define SSL_CLIENT_HELLO_ERROR 0 -# define SSL_CLIENT_HELLO_RETRY (-1) - -typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); -void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, - void *arg); -typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, - void *arg); -void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, - void *arg); - -int SSL_client_hello_isv2(SSL *s); -unsigned int SSL_client_hello_get0_legacy_version(SSL *s); -size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); -size_t SSL_client_hello_get0_session_id(SSL *s, const unsigned char **out); -size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); -size_t SSL_client_hello_get0_compression_methods(SSL *s, - const unsigned char **out); -int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); -int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, - size_t *num_exts); -int SSL_client_hello_get0_ext(SSL *s, unsigned int type, - const unsigned char **out, size_t *outlen); - -void SSL_certs_clear(SSL *s); -void SSL_free(SSL *ssl); -# ifdef OSSL_ASYNC_FD -/* - * Windows application developer has to include windows.h to use these. - */ -__owur int SSL_waiting_for_async(SSL *s); -__owur int SSL_get_all_async_fds(SSL *s, OSSL_ASYNC_FD *fds, size_t *numfds); -__owur int SSL_get_changed_async_fds(SSL *s, OSSL_ASYNC_FD *addfd, - size_t *numaddfds, OSSL_ASYNC_FD *delfd, - size_t *numdelfds); -__owur int SSL_CTX_set_async_callback(SSL_CTX *ctx, SSL_async_callback_fn callback); -__owur int SSL_CTX_set_async_callback_arg(SSL_CTX *ctx, void *arg); -__owur int SSL_set_async_callback(SSL *s, SSL_async_callback_fn callback); -__owur int SSL_set_async_callback_arg(SSL *s, void *arg); -__owur int SSL_get_async_status(SSL *s, int *status); - -# endif -__owur int SSL_accept(SSL *ssl); -__owur int SSL_stateless(SSL *s); -__owur int SSL_connect(SSL *ssl); -__owur int SSL_read(SSL *ssl, void *buf, int num); -__owur int SSL_read_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes); - -# define SSL_READ_EARLY_DATA_ERROR 0 -# define SSL_READ_EARLY_DATA_SUCCESS 1 -# define SSL_READ_EARLY_DATA_FINISH 2 - -__owur int SSL_read_early_data(SSL *s, void *buf, size_t num, - size_t *readbytes); -__owur int SSL_peek(SSL *ssl, void *buf, int num); -__owur int SSL_peek_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes); -__owur ossl_ssize_t SSL_sendfile(SSL *s, int fd, off_t offset, size_t size, - int flags); -__owur int SSL_write(SSL *ssl, const void *buf, int num); -__owur int SSL_write_ex(SSL *s, const void *buf, size_t num, size_t *written); -__owur int SSL_write_early_data(SSL *s, const void *buf, size_t num, - size_t *written); -long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg); -long SSL_callback_ctrl(SSL *, int, void (*)(void)); -long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); -long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); - -# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) - -__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, - uint64_t flags, - size_t *written); - -# define SSL_EARLY_DATA_NOT_SENT 0 -# define SSL_EARLY_DATA_REJECTED 1 -# define SSL_EARLY_DATA_ACCEPTED 2 - -__owur int SSL_get_early_data_status(const SSL *s); - -__owur int SSL_get_error(const SSL *s, int ret_code); -__owur const char *SSL_get_version(const SSL *s); -__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); - -/* This sets the 'default' SSL version that SSL_new() will create */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -__owur int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth); -# endif - -# ifndef OPENSSL_NO_SSL3_METHOD -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *SSLv3_method(void); /* SSLv3 */ -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *SSLv3_server_method(void); -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *SSLv3_client_method(void); -# endif -# endif - -#define SSLv23_method TLS_method -#define SSLv23_server_method TLS_server_method -#define SSLv23_client_method TLS_client_method - -/* Negotiate highest available SSL/TLS version */ -__owur const SSL_METHOD *TLS_method(void); -__owur const SSL_METHOD *TLS_server_method(void); -__owur const SSL_METHOD *TLS_client_method(void); - -# ifndef OPENSSL_NO_TLS1_METHOD -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_method(void); /* TLSv1.0 */ -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_server_method(void); -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_client_method(void); -# endif -# endif - -# ifndef OPENSSL_NO_TLS1_1_METHOD -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_1_method(void); /* TLSv1.1 */ -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_1_server_method(void); -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_1_client_method(void); -# endif -# endif - -# ifndef OPENSSL_NO_TLS1_2_METHOD -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_2_method(void); /* TLSv1.2 */ -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_2_server_method(void); -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_2_client_method(void); -# endif -# endif - -# ifndef OPENSSL_NO_DTLS1_METHOD -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_method(void); /* DTLSv1.0 */ -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_server_method(void); -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_client_method(void); -# endif -# endif - -# ifndef OPENSSL_NO_DTLS1_2_METHOD -/* DTLSv1.2 */ -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_2_method(void); -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_2_server_method(void); -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_2_client_method(void); -# endif -# endif - -__owur const SSL_METHOD *DTLS_method(void); /* DTLS 1.0 and 1.2 */ -__owur const SSL_METHOD *DTLS_server_method(void); /* DTLS 1.0 and 1.2 */ -__owur const SSL_METHOD *DTLS_client_method(void); /* DTLS 1.0 and 1.2 */ - -__owur size_t DTLS_get_data_mtu(const SSL *s); - -__owur STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s); -__owur STACK_OF(SSL_CIPHER) *SSL_CTX_get_ciphers(const SSL_CTX *ctx); -__owur STACK_OF(SSL_CIPHER) *SSL_get_client_ciphers(const SSL *s); -__owur STACK_OF(SSL_CIPHER) *SSL_get1_supported_ciphers(SSL *s); - -__owur int SSL_do_handshake(SSL *s); -int SSL_key_update(SSL *s, int updatetype); -int SSL_get_key_update_type(const SSL *s); -int SSL_renegotiate(SSL *s); -int SSL_renegotiate_abbreviated(SSL *s); -__owur int SSL_renegotiate_pending(const SSL *s); -int SSL_new_session_ticket(SSL *s); -int SSL_shutdown(SSL *s); -__owur int SSL_verify_client_post_handshake(SSL *s); -void SSL_CTX_set_post_handshake_auth(SSL_CTX *ctx, int val); -void SSL_set_post_handshake_auth(SSL *s, int val); - -__owur const SSL_METHOD *SSL_CTX_get_ssl_method(const SSL_CTX *ctx); -__owur const SSL_METHOD *SSL_get_ssl_method(const SSL *s); -__owur int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method); -__owur const char *SSL_alert_type_string_long(int value); -__owur const char *SSL_alert_type_string(int value); -__owur const char *SSL_alert_desc_string_long(int value); -__owur const char *SSL_alert_desc_string(int value); - -void SSL_set0_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list); -void SSL_CTX_set0_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list); -__owur const STACK_OF(X509_NAME) *SSL_get0_CA_list(const SSL *s); -__owur const STACK_OF(X509_NAME) *SSL_CTX_get0_CA_list(const SSL_CTX *ctx); -__owur int SSL_add1_to_CA_list(SSL *ssl, const X509 *x); -__owur int SSL_CTX_add1_to_CA_list(SSL_CTX *ctx, const X509 *x); -__owur const STACK_OF(X509_NAME) *SSL_get0_peer_CA_list(const SSL *s); - -void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list); -void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list); -__owur STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s); -__owur STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *s); -__owur int SSL_add_client_CA(SSL *ssl, X509 *x); -__owur int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x); - -void SSL_set_connect_state(SSL *s); -void SSL_set_accept_state(SSL *s); - -__owur long SSL_get_default_timeout(const SSL *s); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define SSL_library_init() OPENSSL_init_ssl(0, NULL) -# endif - -__owur char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size); -__owur STACK_OF(X509_NAME) *SSL_dup_CA_list(const STACK_OF(X509_NAME) *sk); - -__owur SSL *SSL_dup(SSL *ssl); - -__owur X509 *SSL_get_certificate(const SSL *ssl); -/* - * EVP_PKEY - */ -struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl); - -__owur X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx); -__owur EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx); - -void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode); -__owur int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx); -void SSL_set_quiet_shutdown(SSL *ssl, int mode); -__owur int SSL_get_quiet_shutdown(const SSL *ssl); -void SSL_set_shutdown(SSL *ssl, int mode); -__owur int SSL_get_shutdown(const SSL *ssl); -__owur int SSL_version(const SSL *ssl); -__owur int SSL_client_version(const SSL *s); -__owur int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx); -__owur int SSL_CTX_set_default_verify_dir(SSL_CTX *ctx); -__owur int SSL_CTX_set_default_verify_file(SSL_CTX *ctx); -__owur int SSL_CTX_set_default_verify_store(SSL_CTX *ctx); -__owur int SSL_CTX_load_verify_file(SSL_CTX *ctx, const char *CAfile); -__owur int SSL_CTX_load_verify_dir(SSL_CTX *ctx, const char *CApath); -__owur int SSL_CTX_load_verify_store(SSL_CTX *ctx, const char *CAstore); -__owur int SSL_CTX_load_verify_locations(SSL_CTX *ctx, - const char *CAfile, - const char *CApath); -# define SSL_get0_session SSL_get_session/* just peek at pointer */ -__owur SSL_SESSION *SSL_get_session(const SSL *ssl); -__owur SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */ -__owur SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl); -SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx); -void SSL_set_info_callback(SSL *ssl, - void (*cb) (const SSL *ssl, int type, int val)); -void (*SSL_get_info_callback(const SSL *ssl)) (const SSL *ssl, int type, - int val); -__owur OSSL_HANDSHAKE_STATE SSL_get_state(const SSL *ssl); - -void SSL_set_verify_result(SSL *ssl, long v); -__owur long SSL_get_verify_result(const SSL *ssl); -__owur STACK_OF(X509) *SSL_get0_verified_chain(const SSL *s); - -__owur size_t SSL_get_client_random(const SSL *ssl, unsigned char *out, - size_t outlen); -__owur size_t SSL_get_server_random(const SSL *ssl, unsigned char *out, - size_t outlen); -__owur size_t SSL_SESSION_get_master_key(const SSL_SESSION *sess, - unsigned char *out, size_t outlen); -__owur int SSL_SESSION_set1_master_key(SSL_SESSION *sess, - const unsigned char *in, size_t len); -uint8_t SSL_SESSION_get_max_fragment_length(const SSL_SESSION *sess); - -#define SSL_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL, l, p, newf, dupf, freef) -__owur int SSL_set_ex_data(SSL *ssl, int idx, void *data); -void *SSL_get_ex_data(const SSL *ssl, int idx); -#define SSL_SESSION_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_SESSION, l, p, newf, dupf, freef) -__owur int SSL_SESSION_set_ex_data(SSL_SESSION *ss, int idx, void *data); -void *SSL_SESSION_get_ex_data(const SSL_SESSION *ss, int idx); -#define SSL_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_CTX, l, p, newf, dupf, freef) -__owur int SSL_CTX_set_ex_data(SSL_CTX *ssl, int idx, void *data); -void *SSL_CTX_get_ex_data(const SSL_CTX *ssl, int idx); - -__owur int SSL_get_ex_data_X509_STORE_CTX_idx(void); - -# define SSL_CTX_sess_set_cache_size(ctx,t) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_SIZE,t,NULL) -# define SSL_CTX_sess_get_cache_size(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_SIZE,0,NULL) -# define SSL_CTX_set_session_cache_mode(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL) -# define SSL_CTX_get_session_cache_mode(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_MODE,0,NULL) - -# define SSL_CTX_get_default_read_ahead(ctx) SSL_CTX_get_read_ahead(ctx) -# define SSL_CTX_set_default_read_ahead(ctx,m) SSL_CTX_set_read_ahead(ctx,m) -# define SSL_CTX_get_read_ahead(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL) -# define SSL_CTX_set_read_ahead(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,m,NULL) -# define SSL_CTX_get_max_cert_list(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) -# define SSL_CTX_set_max_cert_list(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) -# define SSL_get_max_cert_list(ssl) \ - SSL_ctrl(ssl,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) -# define SSL_set_max_cert_list(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) - -# define SSL_CTX_set_max_send_fragment(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) -# define SSL_set_max_send_fragment(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) -# define SSL_CTX_set_split_send_fragment(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL) -# define SSL_set_split_send_fragment(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL) -# define SSL_CTX_set_max_pipelines(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_PIPELINES,m,NULL) -# define SSL_set_max_pipelines(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_MAX_PIPELINES,m,NULL) -# define SSL_set_retry_verify(ssl) \ - (SSL_ctrl(ssl,SSL_CTRL_SET_RETRY_VERIFY,0,NULL) > 0) - -void SSL_CTX_set_default_read_buffer_len(SSL_CTX *ctx, size_t len); -void SSL_set_default_read_buffer_len(SSL *s, size_t len); - -# ifndef OPENSSL_NO_DH -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* NB: the |keylength| is only applicable when is_export is true */ -OSSL_DEPRECATEDIN_3_0 -void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, - DH *(*dh) (SSL *ssl, int is_export, - int keylength)); -OSSL_DEPRECATEDIN_3_0 -void SSL_set_tmp_dh_callback(SSL *ssl, - DH *(*dh) (SSL *ssl, int is_export, - int keylength)); -# endif -# endif - -__owur const COMP_METHOD *SSL_get_current_compression(const SSL *s); -__owur const COMP_METHOD *SSL_get_current_expansion(const SSL *s); -__owur const char *SSL_COMP_get_name(const COMP_METHOD *comp); -__owur const char *SSL_COMP_get0_name(const SSL_COMP *comp); -__owur int SSL_COMP_get_id(const SSL_COMP *comp); -STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void); -__owur STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP) - *meths); -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define SSL_COMP_free_compression_methods() while(0) continue -# endif -__owur int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm); - -const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr); -int SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c); -int SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c); -int SSL_bytes_to_cipher_list(SSL *s, const unsigned char *bytes, size_t len, - int isv2format, STACK_OF(SSL_CIPHER) **sk, - STACK_OF(SSL_CIPHER) **scsvs); - -/* TLS extensions functions */ -__owur int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len); - -__owur int SSL_set_session_ticket_ext_cb(SSL *s, - tls_session_ticket_ext_cb_fn cb, - void *arg); - -/* Pre-shared secret session resumption functions */ -__owur int SSL_set_session_secret_cb(SSL *s, - tls_session_secret_cb_fn session_secret_cb, - void *arg); - -void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx, - int (*cb) (SSL *ssl, - int - is_forward_secure)); - -void SSL_set_not_resumable_session_callback(SSL *ssl, - int (*cb) (SSL *ssl, - int is_forward_secure)); - -void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, - size_t (*cb) (SSL *ssl, int type, - size_t len, void *arg)); -void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); -void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); -int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); -int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, - size_t hs_block_size); - -int SSL_set_record_padding_callback(SSL *ssl, - size_t (*cb) (SSL *ssl, int type, - size_t len, void *arg)); -void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); -void *SSL_get_record_padding_callback_arg(const SSL *ssl); -int SSL_set_block_padding(SSL *ssl, size_t block_size); -int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, - size_t hs_block_size); -int SSL_set_num_tickets(SSL *s, size_t num_tickets); -size_t SSL_get_num_tickets(const SSL *s); -int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); -size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); - -/* QUIC support */ -int SSL_handle_events(SSL *s); -__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); -__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); -__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); -__owur int SSL_net_read_desired(SSL *s); -__owur int SSL_net_write_desired(SSL *s); -__owur int SSL_set_blocking_mode(SSL *s, int blocking); -__owur int SSL_get_blocking_mode(SSL *s); -__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); -__owur SSL *SSL_get0_connection(SSL *s); -__owur int SSL_is_connection(SSL *s); - -__owur int SSL_is_listener(SSL *ssl); -__owur SSL *SSL_get0_listener(SSL *s); -#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) -__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); -__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); -__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); -#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) -__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); -__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); -__owur int SSL_listen(SSL *ssl); - -__owur int SSL_is_domain(SSL *s); -__owur SSL *SSL_get0_domain(SSL *s); -__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); - -#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) -#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) -#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) -#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) -#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) - -__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); -__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); -__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); - -#define SSL_STREAM_TYPE_NONE 0 -#define SSL_STREAM_TYPE_READ (1U << 0) -#define SSL_STREAM_TYPE_WRITE (1U << 1) -#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) -__owur int SSL_get_stream_type(SSL *s); - -__owur uint64_t SSL_get_stream_id(SSL *s); -__owur int SSL_is_stream_local(SSL *s); - -#define SSL_DEFAULT_STREAM_MODE_NONE 0 -#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 -#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 -__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); - -#define SSL_STREAM_FLAG_UNI (1U << 0) -#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) -#define SSL_STREAM_FLAG_ADVANCE (1U << 2) -__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); - -#define SSL_INCOMING_STREAM_POLICY_AUTO 0 -#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 -#define SSL_INCOMING_STREAM_POLICY_REJECT 2 -__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); - -#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) -#define SSL_ACCEPT_STREAM_UNI (1U << 1) -#define SSL_ACCEPT_STREAM_BIDI (1U << 2) -__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); -__owur size_t SSL_get_accept_stream_queue_len(SSL *s); - -# ifndef OPENSSL_NO_QUIC -__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, - size_t buf_len, - const BIO_ADDR *peer, - const BIO_ADDR *local); -# endif - -typedef struct ssl_shutdown_ex_args_st { - uint64_t quic_error_code; - const char *quic_reason; -} SSL_SHUTDOWN_EX_ARGS; - -#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) -#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) -#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) -#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) - -__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, - const SSL_SHUTDOWN_EX_ARGS *args, - size_t args_len); - -__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); - -typedef struct ssl_stream_reset_args_st { - uint64_t quic_error_code; -} SSL_STREAM_RESET_ARGS; - -__owur int SSL_stream_reset(SSL *ssl, - const SSL_STREAM_RESET_ARGS *args, - size_t args_len); - -#define SSL_STREAM_STATE_NONE 0 -#define SSL_STREAM_STATE_OK 1 -#define SSL_STREAM_STATE_WRONG_DIR 2 -#define SSL_STREAM_STATE_FINISHED 3 -#define SSL_STREAM_STATE_RESET_LOCAL 4 -#define SSL_STREAM_STATE_RESET_REMOTE 5 -#define SSL_STREAM_STATE_CONN_CLOSED 6 -__owur int SSL_get_stream_read_state(SSL *ssl); -__owur int SSL_get_stream_write_state(SSL *ssl); - -__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); -__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); - -#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) -#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) - -typedef struct ssl_conn_close_info_st { - uint64_t error_code, frame_type; - const char *reason; - size_t reason_len; - uint32_t flags; -} SSL_CONN_CLOSE_INFO; - -__owur int SSL_get_conn_close_info(SSL *ssl, - SSL_CONN_CLOSE_INFO *info, - size_t info_len); - -# define SSL_VALUE_CLASS_GENERIC 0 -# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 -# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 -# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 - -# define SSL_VALUE_NONE 0 -# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 -# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 -# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 -# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 -# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 -# define SSL_VALUE_EVENT_HANDLING_MODE 6 -# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 -# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 -# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 - -# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 -# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 -# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 - -int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); -int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); - -# define SSL_get_generic_value_uint(ssl, id, v) \ - SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) -# define SSL_set_generic_value_uint(ssl, id, v) \ - SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) -# define SSL_get_feature_request_uint(ssl, id, v) \ - SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) -# define SSL_set_feature_request_uint(ssl, id, v) \ - SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) -# define SSL_get_feature_peer_request_uint(ssl, id, v) \ - SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) -# define SSL_get_feature_negotiated_uint(ssl, id, v) \ - SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) - -# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ - SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ - (value)) -# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ - SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ - (value)) -# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ - SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ - (value)) -# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ - SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ - (value)) - -# define SSL_get_event_handling_mode(ssl, value) \ - SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ - (value)) -# define SSL_set_event_handling_mode(ssl, value) \ - SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ - (value)) - -# define SSL_get_stream_write_buf_size(ssl, value) \ - SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ - (value)) -# define SSL_get_stream_write_buf_used(ssl, value) \ - SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ - (value)) -# define SSL_get_stream_write_buf_avail(ssl, value) \ - SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ - (value)) - -# define SSL_POLL_EVENT_NONE 0 - -# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ -# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ -# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ -# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ -# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ -# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ -# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ -# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ -# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ -# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ -# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ -# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ -# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ - -# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) -# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) -# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) -# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) -# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ - | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) -# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) -# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) -# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) -# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) -# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) - -typedef struct ssl_poll_item_st { - BIO_POLL_DESCRIPTOR desc; - uint64_t events, revents; -} SSL_POLL_ITEM; - -# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) - -__owur int SSL_poll(SSL_POLL_ITEM *items, - size_t num_items, - size_t stride, - const struct timeval *timeout, - uint64_t flags, - size_t *result_count); - -static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR -SSL_as_poll_descriptor(SSL *s) -{ - BIO_POLL_DESCRIPTOR d; - - d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; - d.value.ssl = s; - return d; -} - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define SSL_cache_hit(s) SSL_session_reused(s) -# endif - -__owur int SSL_session_reused(const SSL *s); -__owur int SSL_is_server(const SSL *s); - -__owur __owur SSL_CONF_CTX *SSL_CONF_CTX_new(void); -int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx); -void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx); -unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags); -__owur unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, - unsigned int flags); -__owur int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre); - -void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl); -void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx); - -__owur int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value); -__owur int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv); -__owur int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd); - -void SSL_add_ssl_module(void); -int SSL_config(SSL *s, const char *name); -int SSL_CTX_config(SSL_CTX *ctx, const char *name); - -# ifndef OPENSSL_NO_SSL_TRACE -void SSL_trace(int write_p, int version, int content_type, - const void *buf, size_t len, SSL *ssl, void *arg); -# endif - -# ifndef OPENSSL_NO_SOCK -int DTLSv1_listen(SSL *s, BIO_ADDR *client); -# endif - -# ifndef OPENSSL_NO_CT - -/* - * A callback for verifying that the received SCTs are sufficient. - * Expected to return 1 if they are sufficient, otherwise 0. - * May return a negative integer if an error occurs. - * A connection should be aborted if the SCTs are deemed insufficient. - */ -typedef int (*ssl_ct_validation_cb)(const CT_POLICY_EVAL_CTX *ctx, - const STACK_OF(SCT) *scts, void *arg); - -/* - * Sets a |callback| that is invoked upon receipt of ServerHelloDone to validate - * the received SCTs. - * If the callback returns a non-positive result, the connection is terminated. - * Call this function before beginning a handshake. - * If a NULL |callback| is provided, SCT validation is disabled. - * |arg| is arbitrary userdata that will be passed to the callback whenever it - * is invoked. Ownership of |arg| remains with the caller. - * - * NOTE: A side-effect of setting a CT callback is that an OCSP stapled response - * will be requested. - */ -int SSL_set_ct_validation_callback(SSL *s, ssl_ct_validation_cb callback, - void *arg); -int SSL_CTX_set_ct_validation_callback(SSL_CTX *ctx, - ssl_ct_validation_cb callback, - void *arg); -#define SSL_disable_ct(s) \ - ((void) SSL_set_validation_callback((s), NULL, NULL)) -#define SSL_CTX_disable_ct(ctx) \ - ((void) SSL_CTX_set_validation_callback((ctx), NULL, NULL)) - -/* - * The validation type enumerates the available behaviours of the built-in SSL - * CT validation callback selected via SSL_enable_ct() and SSL_CTX_enable_ct(). - * The underlying callback is a static function in libssl. - */ -enum { - SSL_CT_VALIDATION_PERMISSIVE = 0, - SSL_CT_VALIDATION_STRICT -}; - -/* - * Enable CT by setting up a callback that implements one of the built-in - * validation variants. The SSL_CT_VALIDATION_PERMISSIVE variant always - * continues the handshake, the application can make appropriate decisions at - * handshake completion. The SSL_CT_VALIDATION_STRICT variant requires at - * least one valid SCT, or else handshake termination will be requested. The - * handshake may continue anyway if SSL_VERIFY_NONE is in effect. - */ -int SSL_enable_ct(SSL *s, int validation_mode); -int SSL_CTX_enable_ct(SSL_CTX *ctx, int validation_mode); - -/* - * Report whether a non-NULL callback is enabled. - */ -int SSL_ct_is_enabled(const SSL *s); -int SSL_CTX_ct_is_enabled(const SSL_CTX *ctx); - -/* Gets the SCTs received from a connection */ -const STACK_OF(SCT) *SSL_get0_peer_scts(SSL *s); - -/* - * Loads the CT log list from the default location. - * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store, - * the log information loaded from this file will be appended to the - * CTLOG_STORE. - * Returns 1 on success, 0 otherwise. - */ -int SSL_CTX_set_default_ctlog_list_file(SSL_CTX *ctx); - -/* - * Loads the CT log list from the specified file path. - * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store, - * the log information loaded from this file will be appended to the - * CTLOG_STORE. - * Returns 1 on success, 0 otherwise. - */ -int SSL_CTX_set_ctlog_list_file(SSL_CTX *ctx, const char *path); - -/* - * Sets the CT log list used by all SSL connections created from this SSL_CTX. - * Ownership of the CTLOG_STORE is transferred to the SSL_CTX. - */ -void SSL_CTX_set0_ctlog_store(SSL_CTX *ctx, CTLOG_STORE *logs); - -/* - * Gets the CT log list used by all SSL connections created from this SSL_CTX. - * This will be NULL unless one of the following functions has been called: - * - SSL_CTX_set_default_ctlog_list_file - * - SSL_CTX_set_ctlog_list_file - * - SSL_CTX_set_ctlog_store - */ -const CTLOG_STORE *SSL_CTX_get0_ctlog_store(const SSL_CTX *ctx); - -# endif /* OPENSSL_NO_CT */ - -/* What the "other" parameter contains in security callback */ -/* Mask for type */ -# define SSL_SECOP_OTHER_TYPE 0xffff0000 -# define SSL_SECOP_OTHER_NONE 0 -# define SSL_SECOP_OTHER_CIPHER (1 << 16) -# define SSL_SECOP_OTHER_CURVE (2 << 16) -# define SSL_SECOP_OTHER_DH (3 << 16) -# define SSL_SECOP_OTHER_PKEY (4 << 16) -# define SSL_SECOP_OTHER_SIGALG (5 << 16) -# define SSL_SECOP_OTHER_CERT (6 << 16) - -/* Indicated operation refers to peer key or certificate */ -# define SSL_SECOP_PEER 0x1000 - -/* Values for "op" parameter in security callback */ - -/* Called to filter ciphers */ -/* Ciphers client supports */ -# define SSL_SECOP_CIPHER_SUPPORTED (1 | SSL_SECOP_OTHER_CIPHER) -/* Cipher shared by client/server */ -# define SSL_SECOP_CIPHER_SHARED (2 | SSL_SECOP_OTHER_CIPHER) -/* Sanity check of cipher server selects */ -# define SSL_SECOP_CIPHER_CHECK (3 | SSL_SECOP_OTHER_CIPHER) -/* Curves supported by client */ -# define SSL_SECOP_CURVE_SUPPORTED (4 | SSL_SECOP_OTHER_CURVE) -/* Curves shared by client/server */ -# define SSL_SECOP_CURVE_SHARED (5 | SSL_SECOP_OTHER_CURVE) -/* Sanity check of curve server selects */ -# define SSL_SECOP_CURVE_CHECK (6 | SSL_SECOP_OTHER_CURVE) -/* Temporary DH key */ -# define SSL_SECOP_TMP_DH (7 | SSL_SECOP_OTHER_PKEY) -/* SSL/TLS version */ -# define SSL_SECOP_VERSION (9 | SSL_SECOP_OTHER_NONE) -/* Session tickets */ -# define SSL_SECOP_TICKET (10 | SSL_SECOP_OTHER_NONE) -/* Supported signature algorithms sent to peer */ -# define SSL_SECOP_SIGALG_SUPPORTED (11 | SSL_SECOP_OTHER_SIGALG) -/* Shared signature algorithm */ -# define SSL_SECOP_SIGALG_SHARED (12 | SSL_SECOP_OTHER_SIGALG) -/* Sanity check signature algorithm allowed */ -# define SSL_SECOP_SIGALG_CHECK (13 | SSL_SECOP_OTHER_SIGALG) -/* Used to get mask of supported public key signature algorithms */ -# define SSL_SECOP_SIGALG_MASK (14 | SSL_SECOP_OTHER_SIGALG) -/* Use to see if compression is allowed */ -# define SSL_SECOP_COMPRESSION (15 | SSL_SECOP_OTHER_NONE) -/* EE key in certificate */ -# define SSL_SECOP_EE_KEY (16 | SSL_SECOP_OTHER_CERT) -/* CA key in certificate */ -# define SSL_SECOP_CA_KEY (17 | SSL_SECOP_OTHER_CERT) -/* CA digest algorithm in certificate */ -# define SSL_SECOP_CA_MD (18 | SSL_SECOP_OTHER_CERT) -/* Peer EE key in certificate */ -# define SSL_SECOP_PEER_EE_KEY (SSL_SECOP_EE_KEY | SSL_SECOP_PEER) -/* Peer CA key in certificate */ -# define SSL_SECOP_PEER_CA_KEY (SSL_SECOP_CA_KEY | SSL_SECOP_PEER) -/* Peer CA digest algorithm in certificate */ -# define SSL_SECOP_PEER_CA_MD (SSL_SECOP_CA_MD | SSL_SECOP_PEER) - -void SSL_set_security_level(SSL *s, int level); -__owur int SSL_get_security_level(const SSL *s); -void SSL_set_security_callback(SSL *s, - int (*cb) (const SSL *s, const SSL_CTX *ctx, - int op, int bits, int nid, - void *other, void *ex)); -int (*SSL_get_security_callback(const SSL *s)) (const SSL *s, - const SSL_CTX *ctx, int op, - int bits, int nid, void *other, - void *ex); -void SSL_set0_security_ex_data(SSL *s, void *ex); -__owur void *SSL_get0_security_ex_data(const SSL *s); - -void SSL_CTX_set_security_level(SSL_CTX *ctx, int level); -__owur int SSL_CTX_get_security_level(const SSL_CTX *ctx); -void SSL_CTX_set_security_callback(SSL_CTX *ctx, - int (*cb) (const SSL *s, const SSL_CTX *ctx, - int op, int bits, int nid, - void *other, void *ex)); -int (*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL *s, - const SSL_CTX *ctx, - int op, int bits, - int nid, - void *other, - void *ex); -void SSL_CTX_set0_security_ex_data(SSL_CTX *ctx, void *ex); -__owur void *SSL_CTX_get0_security_ex_data(const SSL_CTX *ctx); - -/* OPENSSL_INIT flag 0x010000 reserved for internal use */ -# define OPENSSL_INIT_NO_LOAD_SSL_STRINGS 0x00100000L -# define OPENSSL_INIT_LOAD_SSL_STRINGS 0x00200000L - -# define OPENSSL_INIT_SSL_DEFAULT \ - (OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS) - -int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); - -# ifndef OPENSSL_NO_UNIT_TEST -__owur const struct openssl_ssl_test_functions *SSL_test_functions(void); -# endif - -__owur int SSL_free_buffers(SSL *ssl); -__owur int SSL_alloc_buffers(SSL *ssl); - -/* Status codes passed to the decrypt session ticket callback. Some of these - * are for internal use only and are never passed to the callback. */ -typedef int SSL_TICKET_STATUS; - -/* Support for ticket appdata */ -/* fatal error, malloc failure */ -# define SSL_TICKET_FATAL_ERR_MALLOC 0 -/* fatal error, either from parsing or decrypting the ticket */ -# define SSL_TICKET_FATAL_ERR_OTHER 1 -/* No ticket present */ -# define SSL_TICKET_NONE 2 -/* Empty ticket present */ -# define SSL_TICKET_EMPTY 3 -/* the ticket couldn't be decrypted */ -# define SSL_TICKET_NO_DECRYPT 4 -/* a ticket was successfully decrypted */ -# define SSL_TICKET_SUCCESS 5 -/* same as above but the ticket needs to be renewed */ -# define SSL_TICKET_SUCCESS_RENEW 6 - -/* Return codes for the decrypt session ticket callback */ -typedef int SSL_TICKET_RETURN; - -/* An error occurred */ -#define SSL_TICKET_RETURN_ABORT 0 -/* Do not use the ticket, do not send a renewed ticket to the client */ -#define SSL_TICKET_RETURN_IGNORE 1 -/* Do not use the ticket, send a renewed ticket to the client */ -#define SSL_TICKET_RETURN_IGNORE_RENEW 2 -/* Use the ticket, do not send a renewed ticket to the client */ -#define SSL_TICKET_RETURN_USE 3 -/* Use the ticket, send a renewed ticket to the client */ -#define SSL_TICKET_RETURN_USE_RENEW 4 - -typedef int (*SSL_CTX_generate_session_ticket_fn)(SSL *s, void *arg); -typedef SSL_TICKET_RETURN (*SSL_CTX_decrypt_session_ticket_fn)(SSL *s, SSL_SESSION *ss, - const unsigned char *keyname, - size_t keyname_length, - SSL_TICKET_STATUS status, - void *arg); -int SSL_CTX_set_session_ticket_cb(SSL_CTX *ctx, - SSL_CTX_generate_session_ticket_fn gen_cb, - SSL_CTX_decrypt_session_ticket_fn dec_cb, - void *arg); -int SSL_SESSION_set1_ticket_appdata(SSL_SESSION *ss, const void *data, size_t len); -int SSL_SESSION_get0_ticket_appdata(SSL_SESSION *ss, void **data, size_t *len); - -typedef unsigned int (*DTLS_timer_cb)(SSL *s, unsigned int timer_us); - -void DTLS_set_timer_cb(SSL *s, DTLS_timer_cb cb); - - -typedef int (*SSL_allow_early_data_cb_fn)(SSL *s, void *arg); -void SSL_CTX_set_allow_early_data_cb(SSL_CTX *ctx, - SSL_allow_early_data_cb_fn cb, - void *arg); -void SSL_set_allow_early_data_cb(SSL *s, - SSL_allow_early_data_cb_fn cb, - void *arg); - -/* store the default cipher strings inside the library */ -const char *OSSL_default_cipher_list(void); -const char *OSSL_default_ciphersuites(void); - -/* RFC8879 Certificate compression APIs */ - -int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); -int SSL_compress_certs(SSL *ssl, int alg); - -int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); -int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); - -int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, - size_t comp_length, size_t orig_length); -int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, - size_t comp_length, size_t orig_length); -size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); -size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); - -__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); -__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); -__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); -__owur int SSL_get_negotiated_client_cert_type(const SSL *s); -__owur int SSL_get_negotiated_server_cert_type(const SSL *s); - -__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); -__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); -__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); -__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); -__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); -__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); -__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); -__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); - -/* - * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. - */ -# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 -# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 -# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 -# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 - -int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); -int SSL_set_quic_tls_transport_params(SSL *s, - const unsigned char *params, - size_t params_len); - -int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ssl2.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/ssl2.h deleted file mode 100644 index 428ead0..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ssl2.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_SSL2_H -# define OPENSSL_SSL2_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_SSL2_H -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define SSL2_VERSION 0x0002 - -# define SSL2_MT_CLIENT_HELLO 1 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ssl3.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/ssl3.h deleted file mode 100644 index b8dada1..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ssl3.h +++ /dev/null @@ -1,358 +0,0 @@ -/* - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_SSL3_H -# define OPENSSL_SSL3_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_SSL3_H -# endif - -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Signalling cipher suite value from RFC 5746 - * (TLS_EMPTY_RENEGOTIATION_INFO_SCSV) - */ -# define SSL3_CK_SCSV 0x030000FF - -/* - * Signalling cipher suite value from draft-ietf-tls-downgrade-scsv-00 - * (TLS_FALLBACK_SCSV) - */ -# define SSL3_CK_FALLBACK_SCSV 0x03005600 - -# define SSL3_CK_RSA_NULL_MD5 0x03000001 -# define SSL3_CK_RSA_NULL_SHA 0x03000002 -# define SSL3_CK_RSA_RC4_40_MD5 0x03000003 -# define SSL3_CK_RSA_RC4_128_MD5 0x03000004 -# define SSL3_CK_RSA_RC4_128_SHA 0x03000005 -# define SSL3_CK_RSA_RC2_40_MD5 0x03000006 -# define SSL3_CK_RSA_IDEA_128_SHA 0x03000007 -# define SSL3_CK_RSA_DES_40_CBC_SHA 0x03000008 -# define SSL3_CK_RSA_DES_64_CBC_SHA 0x03000009 -# define SSL3_CK_RSA_DES_192_CBC3_SHA 0x0300000A - -# define SSL3_CK_DH_DSS_DES_40_CBC_SHA 0x0300000B -# define SSL3_CK_DH_DSS_DES_64_CBC_SHA 0x0300000C -# define SSL3_CK_DH_DSS_DES_192_CBC3_SHA 0x0300000D -# define SSL3_CK_DH_RSA_DES_40_CBC_SHA 0x0300000E -# define SSL3_CK_DH_RSA_DES_64_CBC_SHA 0x0300000F -# define SSL3_CK_DH_RSA_DES_192_CBC3_SHA 0x03000010 - -# define SSL3_CK_DHE_DSS_DES_40_CBC_SHA 0x03000011 -# define SSL3_CK_EDH_DSS_DES_40_CBC_SHA SSL3_CK_DHE_DSS_DES_40_CBC_SHA -# define SSL3_CK_DHE_DSS_DES_64_CBC_SHA 0x03000012 -# define SSL3_CK_EDH_DSS_DES_64_CBC_SHA SSL3_CK_DHE_DSS_DES_64_CBC_SHA -# define SSL3_CK_DHE_DSS_DES_192_CBC3_SHA 0x03000013 -# define SSL3_CK_EDH_DSS_DES_192_CBC3_SHA SSL3_CK_DHE_DSS_DES_192_CBC3_SHA -# define SSL3_CK_DHE_RSA_DES_40_CBC_SHA 0x03000014 -# define SSL3_CK_EDH_RSA_DES_40_CBC_SHA SSL3_CK_DHE_RSA_DES_40_CBC_SHA -# define SSL3_CK_DHE_RSA_DES_64_CBC_SHA 0x03000015 -# define SSL3_CK_EDH_RSA_DES_64_CBC_SHA SSL3_CK_DHE_RSA_DES_64_CBC_SHA -# define SSL3_CK_DHE_RSA_DES_192_CBC3_SHA 0x03000016 -# define SSL3_CK_EDH_RSA_DES_192_CBC3_SHA SSL3_CK_DHE_RSA_DES_192_CBC3_SHA - -# define SSL3_CK_ADH_RC4_40_MD5 0x03000017 -# define SSL3_CK_ADH_RC4_128_MD5 0x03000018 -# define SSL3_CK_ADH_DES_40_CBC_SHA 0x03000019 -# define SSL3_CK_ADH_DES_64_CBC_SHA 0x0300001A -# define SSL3_CK_ADH_DES_192_CBC_SHA 0x0300001B - -/* a bundle of RFC standard cipher names, generated from ssl3_ciphers[] */ -# define SSL3_RFC_RSA_NULL_MD5 "TLS_RSA_WITH_NULL_MD5" -# define SSL3_RFC_RSA_NULL_SHA "TLS_RSA_WITH_NULL_SHA" -# define SSL3_RFC_RSA_DES_192_CBC3_SHA "TLS_RSA_WITH_3DES_EDE_CBC_SHA" -# define SSL3_RFC_DHE_DSS_DES_192_CBC3_SHA "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA" -# define SSL3_RFC_DHE_RSA_DES_192_CBC3_SHA "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA" -# define SSL3_RFC_ADH_DES_192_CBC_SHA "TLS_DH_anon_WITH_3DES_EDE_CBC_SHA" -# define SSL3_RFC_RSA_IDEA_128_SHA "TLS_RSA_WITH_IDEA_CBC_SHA" -# define SSL3_RFC_RSA_RC4_128_MD5 "TLS_RSA_WITH_RC4_128_MD5" -# define SSL3_RFC_RSA_RC4_128_SHA "TLS_RSA_WITH_RC4_128_SHA" -# define SSL3_RFC_ADH_RC4_128_MD5 "TLS_DH_anon_WITH_RC4_128_MD5" - -# define SSL3_TXT_RSA_NULL_MD5 "NULL-MD5" -# define SSL3_TXT_RSA_NULL_SHA "NULL-SHA" -# define SSL3_TXT_RSA_RC4_40_MD5 "EXP-RC4-MD5" -# define SSL3_TXT_RSA_RC4_128_MD5 "RC4-MD5" -# define SSL3_TXT_RSA_RC4_128_SHA "RC4-SHA" -# define SSL3_TXT_RSA_RC2_40_MD5 "EXP-RC2-CBC-MD5" -# define SSL3_TXT_RSA_IDEA_128_SHA "IDEA-CBC-SHA" -# define SSL3_TXT_RSA_DES_40_CBC_SHA "EXP-DES-CBC-SHA" -# define SSL3_TXT_RSA_DES_64_CBC_SHA "DES-CBC-SHA" -# define SSL3_TXT_RSA_DES_192_CBC3_SHA "DES-CBC3-SHA" - -# define SSL3_TXT_DH_DSS_DES_40_CBC_SHA "EXP-DH-DSS-DES-CBC-SHA" -# define SSL3_TXT_DH_DSS_DES_64_CBC_SHA "DH-DSS-DES-CBC-SHA" -# define SSL3_TXT_DH_DSS_DES_192_CBC3_SHA "DH-DSS-DES-CBC3-SHA" -# define SSL3_TXT_DH_RSA_DES_40_CBC_SHA "EXP-DH-RSA-DES-CBC-SHA" -# define SSL3_TXT_DH_RSA_DES_64_CBC_SHA "DH-RSA-DES-CBC-SHA" -# define SSL3_TXT_DH_RSA_DES_192_CBC3_SHA "DH-RSA-DES-CBC3-SHA" - -# define SSL3_TXT_DHE_DSS_DES_40_CBC_SHA "EXP-DHE-DSS-DES-CBC-SHA" -# define SSL3_TXT_DHE_DSS_DES_64_CBC_SHA "DHE-DSS-DES-CBC-SHA" -# define SSL3_TXT_DHE_DSS_DES_192_CBC3_SHA "DHE-DSS-DES-CBC3-SHA" -# define SSL3_TXT_DHE_RSA_DES_40_CBC_SHA "EXP-DHE-RSA-DES-CBC-SHA" -# define SSL3_TXT_DHE_RSA_DES_64_CBC_SHA "DHE-RSA-DES-CBC-SHA" -# define SSL3_TXT_DHE_RSA_DES_192_CBC3_SHA "DHE-RSA-DES-CBC3-SHA" - -/* - * This next block of six "EDH" labels is for backward compatibility with - * older versions of OpenSSL. New code should use the six "DHE" labels above - * instead: - */ -# define SSL3_TXT_EDH_DSS_DES_40_CBC_SHA "EXP-EDH-DSS-DES-CBC-SHA" -# define SSL3_TXT_EDH_DSS_DES_64_CBC_SHA "EDH-DSS-DES-CBC-SHA" -# define SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA "EDH-DSS-DES-CBC3-SHA" -# define SSL3_TXT_EDH_RSA_DES_40_CBC_SHA "EXP-EDH-RSA-DES-CBC-SHA" -# define SSL3_TXT_EDH_RSA_DES_64_CBC_SHA "EDH-RSA-DES-CBC-SHA" -# define SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA "EDH-RSA-DES-CBC3-SHA" - -# define SSL3_TXT_ADH_RC4_40_MD5 "EXP-ADH-RC4-MD5" -# define SSL3_TXT_ADH_RC4_128_MD5 "ADH-RC4-MD5" -# define SSL3_TXT_ADH_DES_40_CBC_SHA "EXP-ADH-DES-CBC-SHA" -# define SSL3_TXT_ADH_DES_64_CBC_SHA "ADH-DES-CBC-SHA" -# define SSL3_TXT_ADH_DES_192_CBC_SHA "ADH-DES-CBC3-SHA" - -# define SSL3_SSL_SESSION_ID_LENGTH 32 -# define SSL3_MAX_SSL_SESSION_ID_LENGTH 32 - -# define SSL3_MASTER_SECRET_SIZE 48 -# define SSL3_RANDOM_SIZE 32 -# define SSL3_SESSION_ID_SIZE 32 -# define SSL3_RT_HEADER_LENGTH 5 - -# define SSL3_HM_HEADER_LENGTH 4 - -# ifndef SSL3_ALIGN_PAYLOAD - /* - * Some will argue that this increases memory footprint, but it's not - * actually true. Point is that malloc has to return at least 64-bit aligned - * pointers, meaning that allocating 5 bytes wastes 3 bytes in either case. - * Suggested pre-gaping simply moves these wasted bytes from the end of - * allocated region to its front, but makes data payload aligned, which - * improves performance:-) - */ -# define SSL3_ALIGN_PAYLOAD 8 -# else -# if (SSL3_ALIGN_PAYLOAD&(SSL3_ALIGN_PAYLOAD-1))!=0 -# error "insane SSL3_ALIGN_PAYLOAD" -# undef SSL3_ALIGN_PAYLOAD -# endif -# endif - -/* - * This is the maximum MAC (digest) size used by the SSL library. Currently - * maximum of 20 is used by SHA1, but we reserve for future extension for - * 512-bit hashes. - */ - -# define SSL3_RT_MAX_MD_SIZE 64 - -/* - * Maximum block size used in all ciphersuites. Currently 16 for AES. - */ - -# define SSL_RT_MAX_CIPHER_BLOCK_SIZE 16 - -# define SSL3_RT_MAX_EXTRA (16384) - -/* Maximum plaintext length: defined by SSL/TLS standards */ -# define SSL3_RT_MAX_PLAIN_LENGTH 16384 -/* Maximum compression overhead: defined by SSL/TLS standards */ -# define SSL3_RT_MAX_COMPRESSED_OVERHEAD 1024 - -/* - * The standards give a maximum encryption overhead of 1024 bytes. In - * practice the value is lower than this. The overhead is the maximum number - * of padding bytes (256) plus the mac size. - */ -# define SSL3_RT_MAX_ENCRYPTED_OVERHEAD (256 + SSL3_RT_MAX_MD_SIZE) -# define SSL3_RT_MAX_TLS13_ENCRYPTED_OVERHEAD 256 - -/* - * OpenSSL currently only uses a padding length of at most one block so the - * send overhead is smaller. - */ - -# define SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD \ - (SSL_RT_MAX_CIPHER_BLOCK_SIZE + SSL3_RT_MAX_MD_SIZE) - -/* If compression isn't used don't include the compression overhead */ - -# ifdef OPENSSL_NO_COMP -# define SSL3_RT_MAX_COMPRESSED_LENGTH SSL3_RT_MAX_PLAIN_LENGTH -# else -# define SSL3_RT_MAX_COMPRESSED_LENGTH \ - (SSL3_RT_MAX_PLAIN_LENGTH+SSL3_RT_MAX_COMPRESSED_OVERHEAD) -# endif -# define SSL3_RT_MAX_ENCRYPTED_LENGTH \ - (SSL3_RT_MAX_ENCRYPTED_OVERHEAD+SSL3_RT_MAX_COMPRESSED_LENGTH) -# define SSL3_RT_MAX_TLS13_ENCRYPTED_LENGTH \ - (SSL3_RT_MAX_PLAIN_LENGTH + SSL3_RT_MAX_TLS13_ENCRYPTED_OVERHEAD) -# define SSL3_RT_MAX_PACKET_SIZE \ - (SSL3_RT_MAX_ENCRYPTED_LENGTH+SSL3_RT_HEADER_LENGTH) - -# define SSL3_MD_CLIENT_FINISHED_CONST "\x43\x4C\x4E\x54" -# define SSL3_MD_SERVER_FINISHED_CONST "\x53\x52\x56\x52" - -/* SSL3_VERSION is defined in prov_ssl.h */ -# define SSL3_VERSION_MAJOR 0x03 -# define SSL3_VERSION_MINOR 0x00 - -# define SSL3_RT_CHANGE_CIPHER_SPEC 20 -# define SSL3_RT_ALERT 21 -# define SSL3_RT_HANDSHAKE 22 -# define SSL3_RT_APPLICATION_DATA 23 - -/* Pseudo content types to indicate additional parameters */ -# define TLS1_RT_CRYPTO 0x1000 -# define TLS1_RT_CRYPTO_PREMASTER (TLS1_RT_CRYPTO | 0x1) -# define TLS1_RT_CRYPTO_CLIENT_RANDOM (TLS1_RT_CRYPTO | 0x2) -# define TLS1_RT_CRYPTO_SERVER_RANDOM (TLS1_RT_CRYPTO | 0x3) -# define TLS1_RT_CRYPTO_MASTER (TLS1_RT_CRYPTO | 0x4) - -# define TLS1_RT_CRYPTO_READ 0x0000 -# define TLS1_RT_CRYPTO_WRITE 0x0100 -# define TLS1_RT_CRYPTO_MAC (TLS1_RT_CRYPTO | 0x5) -# define TLS1_RT_CRYPTO_KEY (TLS1_RT_CRYPTO | 0x6) -# define TLS1_RT_CRYPTO_IV (TLS1_RT_CRYPTO | 0x7) -# define TLS1_RT_CRYPTO_FIXED_IV (TLS1_RT_CRYPTO | 0x8) - -/* Pseudo content types for SSL/TLS header info */ -# define SSL3_RT_HEADER 0x100 -# define SSL3_RT_INNER_CONTENT_TYPE 0x101 - -/* Pseudo content types for QUIC */ -# define SSL3_RT_QUIC_DATAGRAM 0x200 -# define SSL3_RT_QUIC_PACKET 0x201 -# define SSL3_RT_QUIC_FRAME_FULL 0x202 -# define SSL3_RT_QUIC_FRAME_HEADER 0x203 -# define SSL3_RT_QUIC_FRAME_PADDING 0x204 - -# define SSL3_AL_WARNING 1 -# define SSL3_AL_FATAL 2 - -# define SSL3_AD_CLOSE_NOTIFY 0 -# define SSL3_AD_UNEXPECTED_MESSAGE 10/* fatal */ -# define SSL3_AD_BAD_RECORD_MAC 20/* fatal */ -# define SSL3_AD_DECOMPRESSION_FAILURE 30/* fatal */ -# define SSL3_AD_HANDSHAKE_FAILURE 40/* fatal */ -# define SSL3_AD_NO_CERTIFICATE 41 -# define SSL3_AD_BAD_CERTIFICATE 42 -# define SSL3_AD_UNSUPPORTED_CERTIFICATE 43 -# define SSL3_AD_CERTIFICATE_REVOKED 44 -# define SSL3_AD_CERTIFICATE_EXPIRED 45 -# define SSL3_AD_CERTIFICATE_UNKNOWN 46 -# define SSL3_AD_ILLEGAL_PARAMETER 47/* fatal */ - -# define TLS1_HB_REQUEST 1 -# define TLS1_HB_RESPONSE 2 - - -# define SSL3_CT_RSA_SIGN 1 -# define SSL3_CT_DSS_SIGN 2 -# define SSL3_CT_RSA_FIXED_DH 3 -# define SSL3_CT_DSS_FIXED_DH 4 -# define SSL3_CT_RSA_EPHEMERAL_DH 5 -# define SSL3_CT_DSS_EPHEMERAL_DH 6 -# define SSL3_CT_FORTEZZA_DMS 20 -/* - * SSL3_CT_NUMBER is used to size arrays and it must be large enough to - * contain all of the cert types defined for *either* SSLv3 and TLSv1. - */ -# define SSL3_CT_NUMBER 12 - -# if defined(TLS_CT_NUMBER) -# if TLS_CT_NUMBER != SSL3_CT_NUMBER -# error "SSL/TLS CT_NUMBER values do not match" -# endif -# endif - -/* No longer used as of OpenSSL 1.1.1 */ -# define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS 0x0001 - -/* Removed from OpenSSL 1.1.0 */ -# define TLS1_FLAGS_TLS_PADDING_BUG 0x0 - -# define TLS1_FLAGS_SKIP_CERT_VERIFY 0x0010 - -/* Set if we encrypt then mac instead of usual mac then encrypt */ -# define TLS1_FLAGS_ENCRYPT_THEN_MAC_READ 0x0100 -# define TLS1_FLAGS_ENCRYPT_THEN_MAC TLS1_FLAGS_ENCRYPT_THEN_MAC_READ - -/* Set if extended master secret extension received from peer */ -# define TLS1_FLAGS_RECEIVED_EXTMS 0x0200 - -# define TLS1_FLAGS_ENCRYPT_THEN_MAC_WRITE 0x0400 - -# define TLS1_FLAGS_STATELESS 0x0800 - -/* Set if extended master secret extension required on renegotiation */ -# define TLS1_FLAGS_REQUIRED_EXTMS 0x1000 - -/* 0x2000 is reserved for TLS1_FLAGS_QUIC (internal) */ -/* 0x4000 is reserved for TLS1_FLAGS_QUIC_INTERNAL (internal) */ - -# define SSL3_MT_HELLO_REQUEST 0 -# define SSL3_MT_CLIENT_HELLO 1 -# define SSL3_MT_SERVER_HELLO 2 -# define SSL3_MT_NEWSESSION_TICKET 4 -# define SSL3_MT_END_OF_EARLY_DATA 5 -# define SSL3_MT_ENCRYPTED_EXTENSIONS 8 -# define SSL3_MT_CERTIFICATE 11 -# define SSL3_MT_SERVER_KEY_EXCHANGE 12 -# define SSL3_MT_CERTIFICATE_REQUEST 13 -# define SSL3_MT_SERVER_DONE 14 -# define SSL3_MT_CERTIFICATE_VERIFY 15 -# define SSL3_MT_CLIENT_KEY_EXCHANGE 16 -# define SSL3_MT_FINISHED 20 -# define SSL3_MT_CERTIFICATE_URL 21 -# define SSL3_MT_CERTIFICATE_STATUS 22 -# define SSL3_MT_SUPPLEMENTAL_DATA 23 -# define SSL3_MT_KEY_UPDATE 24 -# define SSL3_MT_COMPRESSED_CERTIFICATE 25 -# ifndef OPENSSL_NO_NEXTPROTONEG -# define SSL3_MT_NEXT_PROTO 67 -# endif -# define SSL3_MT_MESSAGE_HASH 254 -# define DTLS1_MT_HELLO_VERIFY_REQUEST 3 - -/* Dummy message type for handling CCS like a normal handshake message */ -# define SSL3_MT_CHANGE_CIPHER_SPEC 0x0101 - -# define SSL3_MT_CCS 1 - -/* These are used when changing over to a new cipher */ -# define SSL3_CC_READ 0x001 -# define SSL3_CC_WRITE 0x002 -# define SSL3_CC_CLIENT 0x010 -# define SSL3_CC_SERVER 0x020 -# define SSL3_CC_EARLY 0x040 -# define SSL3_CC_HANDSHAKE 0x080 -# define SSL3_CC_APPLICATION 0x100 -# define SSL3_CHANGE_CIPHER_CLIENT_WRITE (SSL3_CC_CLIENT|SSL3_CC_WRITE) -# define SSL3_CHANGE_CIPHER_SERVER_READ (SSL3_CC_SERVER|SSL3_CC_READ) -# define SSL3_CHANGE_CIPHER_CLIENT_READ (SSL3_CC_CLIENT|SSL3_CC_READ) -# define SSL3_CHANGE_CIPHER_SERVER_WRITE (SSL3_CC_SERVER|SSL3_CC_WRITE) - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/sslerr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/sslerr.h deleted file mode 100644 index 53e0dec..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/sslerr.h +++ /dev/null @@ -1,382 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_SSLERR_H -# define OPENSSL_SSLERR_H -# pragma once - -# include -# include -# include - - - -/* - * SSL reason codes. - */ -# define SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY 291 -# define SSL_R_APP_DATA_IN_HANDSHAKE 100 -# define SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT 272 -# define SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE 158 -# define SSL_R_BAD_CERTIFICATE 348 -# define SSL_R_BAD_CHANGE_CIPHER_SPEC 103 -# define SSL_R_BAD_CIPHER 186 -# define SSL_R_BAD_COMPRESSION_ALGORITHM 326 -# define SSL_R_BAD_DATA 390 -# define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106 -# define SSL_R_BAD_DECOMPRESSION 107 -# define SSL_R_BAD_DH_VALUE 102 -# define SSL_R_BAD_DIGEST_LENGTH 111 -# define SSL_R_BAD_EARLY_DATA 233 -# define SSL_R_BAD_ECC_CERT 304 -# define SSL_R_BAD_ECPOINT 306 -# define SSL_R_BAD_EXTENSION 110 -# define SSL_R_BAD_HANDSHAKE_LENGTH 332 -# define SSL_R_BAD_HANDSHAKE_STATE 236 -# define SSL_R_BAD_HELLO_REQUEST 105 -# define SSL_R_BAD_HRR_VERSION 263 -# define SSL_R_BAD_KEY_SHARE 108 -# define SSL_R_BAD_KEY_UPDATE 122 -# define SSL_R_BAD_LEGACY_VERSION 292 -# define SSL_R_BAD_LENGTH 271 -# define SSL_R_BAD_PACKET 240 -# define SSL_R_BAD_PACKET_LENGTH 115 -# define SSL_R_BAD_PROTOCOL_VERSION_NUMBER 116 -# define SSL_R_BAD_PSK 219 -# define SSL_R_BAD_PSK_IDENTITY 114 -# define SSL_R_BAD_RECORD_TYPE 443 -# define SSL_R_BAD_RSA_ENCRYPT 119 -# define SSL_R_BAD_SIGNATURE 123 -# define SSL_R_BAD_SRP_A_LENGTH 347 -# define SSL_R_BAD_SRP_PARAMETERS 371 -# define SSL_R_BAD_SRTP_MKI_VALUE 352 -# define SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST 353 -# define SSL_R_BAD_SSL_FILETYPE 124 -# define SSL_R_BAD_VALUE 384 -# define SSL_R_BAD_WRITE_RETRY 127 -# define SSL_R_BINDER_DOES_NOT_VERIFY 253 -# define SSL_R_BIO_NOT_SET 128 -# define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG 129 -# define SSL_R_BN_LIB 130 -# define SSL_R_CALLBACK_FAILED 234 -# define SSL_R_CANNOT_CHANGE_CIPHER 109 -# define SSL_R_CANNOT_GET_GROUP_NAME 299 -# define SSL_R_CA_DN_LENGTH_MISMATCH 131 -# define SSL_R_CA_KEY_TOO_SMALL 397 -# define SSL_R_CA_MD_TOO_WEAK 398 -# define SSL_R_CCS_RECEIVED_EARLY 133 -# define SSL_R_CERTIFICATE_VERIFY_FAILED 134 -# define SSL_R_CERT_CB_ERROR 377 -# define SSL_R_CERT_LENGTH_MISMATCH 135 -# define SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED 218 -# define SSL_R_CIPHER_CODE_WRONG_LENGTH 137 -# define SSL_R_CLIENTHELLO_TLSEXT 226 -# define SSL_R_COMPRESSED_LENGTH_TOO_LONG 140 -# define SSL_R_COMPRESSION_DISABLED 343 -# define SSL_R_COMPRESSION_FAILURE 141 -# define SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE 307 -# define SSL_R_COMPRESSION_LIBRARY_ERROR 142 -# define SSL_R_CONNECTION_TYPE_NOT_SET 144 -# define SSL_R_CONN_USE_ONLY 356 -# define SSL_R_CONTEXT_NOT_DANE_ENABLED 167 -# define SSL_R_COOKIE_GEN_CALLBACK_FAILURE 400 -# define SSL_R_COOKIE_MISMATCH 308 -# define SSL_R_COPY_PARAMETERS_FAILED 296 -# define SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED 206 -# define SSL_R_DANE_ALREADY_ENABLED 172 -# define SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL 173 -# define SSL_R_DANE_NOT_ENABLED 175 -# define SSL_R_DANE_TLSA_BAD_CERTIFICATE 180 -# define SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE 184 -# define SSL_R_DANE_TLSA_BAD_DATA_LENGTH 189 -# define SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH 192 -# define SSL_R_DANE_TLSA_BAD_MATCHING_TYPE 200 -# define SSL_R_DANE_TLSA_BAD_PUBLIC_KEY 201 -# define SSL_R_DANE_TLSA_BAD_SELECTOR 202 -# define SSL_R_DANE_TLSA_NULL_DATA 203 -# define SSL_R_DATA_BETWEEN_CCS_AND_FINISHED 145 -# define SSL_R_DATA_LENGTH_TOO_LONG 146 -# define SSL_R_DECRYPTION_FAILED 147 -# define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 281 -# define SSL_R_DH_KEY_TOO_SMALL 394 -# define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 -# define SSL_R_DIGEST_CHECK_FAILED 149 -# define SSL_R_DOMAIN_USE_ONLY 422 -# define SSL_R_DTLS_MESSAGE_TOO_BIG 334 -# define SSL_R_DUPLICATE_COMPRESSION_ID 309 -# define SSL_R_ECC_CERT_NOT_FOR_SIGNING 318 -# define SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE 374 -# define SSL_R_EE_KEY_TOO_SMALL 399 -# define SSL_R_EMPTY_RAW_PUBLIC_KEY 349 -# define SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST 354 -# define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 -# define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST 151 -# define SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG 419 -# define SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN 204 -# define SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE 194 -# define SSL_R_EXCESSIVE_MESSAGE_SIZE 152 -# define SSL_R_EXTENSION_NOT_RECEIVED 279 -# define SSL_R_EXTRA_DATA_IN_MESSAGE 153 -# define SSL_R_EXT_LENGTH_MISMATCH 163 -# define SSL_R_FAILED_TO_GET_PARAMETER 316 -# define SSL_R_FAILED_TO_INIT_ASYNC 405 -# define SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE 417 -# define SSL_R_FEATURE_NOT_RENEGOTIABLE 413 -# define SSL_R_FRAGMENTED_CLIENT_HELLO 401 -# define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154 -# define SSL_R_HTTPS_PROXY_REQUEST 155 -# define SSL_R_HTTP_REQUEST 156 -# define SSL_R_ILLEGAL_POINT_COMPRESSION 162 -# define SSL_R_ILLEGAL_SUITEB_DIGEST 380 -# define SSL_R_INAPPROPRIATE_FALLBACK 373 -# define SSL_R_INCONSISTENT_COMPRESSION 340 -# define SSL_R_INCONSISTENT_EARLY_DATA_ALPN 222 -# define SSL_R_INCONSISTENT_EARLY_DATA_SNI 231 -# define SSL_R_INCONSISTENT_EXTMS 104 -# define SSL_R_INSUFFICIENT_SECURITY 241 -# define SSL_R_INVALID_ALERT 205 -# define SSL_R_INVALID_CCS_MESSAGE 260 -# define SSL_R_INVALID_CERTIFICATE_OR_ALG 238 -# define SSL_R_INVALID_COMMAND 280 -# define SSL_R_INVALID_COMPRESSION_ALGORITHM 341 -# define SSL_R_INVALID_CONFIG 283 -# define SSL_R_INVALID_CONFIGURATION_NAME 113 -# define SSL_R_INVALID_CONTEXT 282 -# define SSL_R_INVALID_CT_VALIDATION_TYPE 212 -# define SSL_R_INVALID_KEY_UPDATE_TYPE 120 -# define SSL_R_INVALID_MAX_EARLY_DATA 174 -# define SSL_R_INVALID_NULL_CMD_NAME 385 -# define SSL_R_INVALID_RAW_PUBLIC_KEY 350 -# define SSL_R_INVALID_RECORD 317 -# define SSL_R_INVALID_SEQUENCE_NUMBER 402 -# define SSL_R_INVALID_SERVERINFO_DATA 388 -# define SSL_R_INVALID_SESSION_ID 999 -# define SSL_R_INVALID_SRP_USERNAME 357 -# define SSL_R_INVALID_STATUS_RESPONSE 328 -# define SSL_R_INVALID_TICKET_KEYS_LENGTH 325 -# define SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED 333 -# define SSL_R_LENGTH_MISMATCH 159 -# define SSL_R_LENGTH_TOO_LONG 404 -# define SSL_R_LENGTH_TOO_SHORT 160 -# define SSL_R_LIBRARY_BUG 274 -# define SSL_R_LIBRARY_HAS_NO_CIPHERS 161 -# define SSL_R_LISTENER_USE_ONLY 421 -# define SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED 395 -# define SSL_R_MISSING_DSA_SIGNING_CERT 165 -# define SSL_R_MISSING_ECDSA_SIGNING_CERT 381 -# define SSL_R_MISSING_FATAL 256 -# define SSL_R_MISSING_PARAMETERS 290 -# define SSL_R_MISSING_PSK_KEX_MODES_EXTENSION 310 -# define SSL_R_MISSING_QUIC_TLS_FUNCTIONS 423 -# define SSL_R_MISSING_RSA_CERTIFICATE 168 -# define SSL_R_MISSING_RSA_ENCRYPTING_CERT 169 -# define SSL_R_MISSING_RSA_SIGNING_CERT 170 -# define SSL_R_MISSING_SIGALGS_EXTENSION 112 -# define SSL_R_MISSING_SIGNING_CERT 221 -# define SSL_R_MISSING_SRP_PARAM 358 -# define SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION 209 -# define SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION 420 -# define SSL_R_MISSING_TMP_DH_KEY 171 -# define SSL_R_MISSING_TMP_ECDH_KEY 311 -# define SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA 293 -# define SSL_R_NOT_ON_RECORD_BOUNDARY 182 -# define SSL_R_NOT_REPLACING_CERTIFICATE 289 -# define SSL_R_NOT_SERVER 284 -# define SSL_R_NO_APPLICATION_PROTOCOL 235 -# define SSL_R_NO_CERTIFICATES_RETURNED 176 -# define SSL_R_NO_CERTIFICATE_ASSIGNED 177 -# define SSL_R_NO_CERTIFICATE_SET 179 -# define SSL_R_NO_CHANGE_FOLLOWING_HRR 214 -# define SSL_R_NO_CIPHERS_AVAILABLE 181 -# define SSL_R_NO_CIPHERS_SPECIFIED 183 -# define SSL_R_NO_CIPHER_MATCH 185 -# define SSL_R_NO_CLIENT_CERT_METHOD 331 -# define SSL_R_NO_COMPRESSION_SPECIFIED 187 -# define SSL_R_NO_COOKIE_CALLBACK_SET 287 -# define SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER 330 -# define SSL_R_NO_METHOD_SPECIFIED 188 -# define SSL_R_NO_PEM_EXTENSIONS 389 -# define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190 -# define SSL_R_NO_PROTOCOLS_AVAILABLE 191 -# define SSL_R_NO_RENEGOTIATION 339 -# define SSL_R_NO_REQUIRED_DIGEST 324 -# define SSL_R_NO_SHARED_CIPHER 193 -# define SSL_R_NO_SHARED_GROUPS 410 -# define SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS 376 -# define SSL_R_NO_SRTP_PROFILES 359 -# define SSL_R_NO_STREAM 355 -# define SSL_R_NO_SUITABLE_DIGEST_ALGORITHM 297 -# define SSL_R_NO_SUITABLE_GROUPS 295 -# define SSL_R_NO_SUITABLE_KEY_SHARE 101 -# define SSL_R_NO_SUITABLE_RECORD_LAYER 322 -# define SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM 118 -# define SSL_R_NO_VALID_SCTS 216 -# define SSL_R_NO_VERIFY_COOKIE_CALLBACK 403 -# define SSL_R_NULL_SSL_CTX 195 -# define SSL_R_NULL_SSL_METHOD_PASSED 196 -# define SSL_R_OCSP_CALLBACK_FAILURE 305 -# define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197 -# define SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED 344 -# define SSL_R_OVERFLOW_ERROR 237 -# define SSL_R_PACKET_LENGTH_TOO_LONG 198 -# define SSL_R_PARSE_TLSEXT 227 -# define SSL_R_PATH_TOO_LONG 270 -# define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199 -# define SSL_R_PEM_NAME_BAD_PREFIX 391 -# define SSL_R_PEM_NAME_TOO_SHORT 392 -# define SSL_R_PIPELINE_FAILURE 406 -# define SSL_R_POLL_REQUEST_NOT_SUPPORTED 418 -# define SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR 278 -# define SSL_R_PRIVATE_KEY_MISMATCH 288 -# define SSL_R_PROTOCOL_IS_SHUTDOWN 207 -# define SSL_R_PSK_IDENTITY_NOT_FOUND 223 -# define SSL_R_PSK_NO_CLIENT_CB 224 -# define SSL_R_PSK_NO_SERVER_CB 225 -# define SSL_R_QUIC_HANDSHAKE_LAYER_ERROR 393 -# define SSL_R_QUIC_NETWORK_ERROR 387 -# define SSL_R_QUIC_PROTOCOL_ERROR 382 -# define SSL_R_READ_BIO_NOT_SET 211 -# define SSL_R_READ_TIMEOUT_EXPIRED 312 -# define SSL_R_RECORDS_NOT_RELEASED 321 -# define SSL_R_RECORD_LAYER_FAILURE 313 -# define SSL_R_RECORD_LENGTH_MISMATCH 213 -# define SSL_R_RECORD_TOO_SMALL 298 -# define SSL_R_REMOTE_PEER_ADDRESS_NOT_SET 346 -# define SSL_R_RENEGOTIATE_EXT_TOO_LONG 335 -# define SSL_R_RENEGOTIATION_ENCODING_ERR 336 -# define SSL_R_RENEGOTIATION_MISMATCH 337 -# define SSL_R_REQUEST_PENDING 285 -# define SSL_R_REQUEST_SENT 286 -# define SSL_R_REQUIRED_CIPHER_MISSING 215 -# define SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING 342 -# define SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING 345 -# define SSL_R_SCT_VERIFICATION_FAILED 208 -# define SSL_R_SEQUENCE_CTR_WRAPPED 327 -# define SSL_R_SERVERHELLO_TLSEXT 275 -# define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277 -# define SSL_R_SHUTDOWN_WHILE_IN_INIT 407 -# define SSL_R_SIGNATURE_ALGORITHMS_ERROR 360 -# define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220 -# define SSL_R_SRP_A_CALC 361 -# define SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES 362 -# define SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG 363 -# define SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE 364 -# define SSL_R_SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH 232 -# define SSL_R_SSL3_EXT_INVALID_SERVERNAME 319 -# define SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE 320 -# define SSL_R_SSL3_SESSION_ID_TOO_LONG 300 -# define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042 -# define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED 1045 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED 1044 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN 1046 -# define SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE 1030 -# define SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE 1040 -# define SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER 1047 -# define SSL_R_SSLV3_ALERT_NO_CERTIFICATE 1041 -# define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010 -# define SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE 1043 -# define SSL_R_SSL_COMMAND_SECTION_EMPTY 117 -# define SSL_R_SSL_COMMAND_SECTION_NOT_FOUND 125 -# define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION 228 -# define SSL_R_SSL_HANDSHAKE_FAILURE 229 -# define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS 230 -# define SSL_R_SSL_NEGATIVE_LENGTH 372 -# define SSL_R_SSL_SECTION_EMPTY 126 -# define SSL_R_SSL_SECTION_NOT_FOUND 136 -# define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED 301 -# define SSL_R_SSL_SESSION_ID_CONFLICT 302 -# define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG 273 -# define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH 303 -# define SSL_R_SSL_SESSION_ID_TOO_LONG 408 -# define SSL_R_SSL_SESSION_VERSION_MISMATCH 210 -# define SSL_R_STILL_IN_INIT 121 -# define SSL_R_STREAM_COUNT_LIMITED 411 -# define SSL_R_STREAM_FINISHED 365 -# define SSL_R_STREAM_RECV_ONLY 366 -# define SSL_R_STREAM_RESET 375 -# define SSL_R_STREAM_SEND_ONLY 379 -# define SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED 1116 -# define SSL_R_TLSV13_ALERT_MISSING_EXTENSION 1109 -# define SSL_R_TLSV1_ALERT_ACCESS_DENIED 1049 -# define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050 -# define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021 -# define SSL_R_TLSV1_ALERT_DECRYPT_ERROR 1051 -# define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION 1060 -# define SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK 1086 -# define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY 1071 -# define SSL_R_TLSV1_ALERT_INTERNAL_ERROR 1080 -# define SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL 1120 -# define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION 1100 -# define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION 1070 -# define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022 -# define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048 -# define SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY 1115 -# define SSL_R_TLSV1_ALERT_USER_CANCELLED 1090 -# define SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE 1114 -# define SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE 1113 -# define SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE 1111 -# define SSL_R_TLSV1_UNRECOGNIZED_NAME 1112 -# define SSL_R_TLSV1_UNSUPPORTED_EXTENSION 1110 -# define SSL_R_TLS_ILLEGAL_EXPORTER_LABEL 367 -# define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157 -# define SSL_R_TOO_MANY_KEY_UPDATES 132 -# define SSL_R_TOO_MANY_WARN_ALERTS 409 -# define SSL_R_TOO_MUCH_EARLY_DATA 164 -# define SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS 314 -# define SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS 239 -# define SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES 242 -# define SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES 243 -# define SSL_R_UNEXPECTED_CCS_MESSAGE 262 -# define SSL_R_UNEXPECTED_END_OF_EARLY_DATA 178 -# define SSL_R_UNEXPECTED_EOF_WHILE_READING 294 -# define SSL_R_UNEXPECTED_MESSAGE 244 -# define SSL_R_UNEXPECTED_RECORD 245 -# define SSL_R_UNINITIALIZED 276 -# define SSL_R_UNKNOWN_ALERT_TYPE 246 -# define SSL_R_UNKNOWN_CERTIFICATE_TYPE 247 -# define SSL_R_UNKNOWN_CIPHER_RETURNED 248 -# define SSL_R_UNKNOWN_CIPHER_TYPE 249 -# define SSL_R_UNKNOWN_CMD_NAME 386 -# define SSL_R_UNKNOWN_COMMAND 139 -# define SSL_R_UNKNOWN_DIGEST 368 -# define SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE 250 -# define SSL_R_UNKNOWN_MANDATORY_PARAMETER 323 -# define SSL_R_UNKNOWN_PKEY_TYPE 251 -# define SSL_R_UNKNOWN_PROTOCOL 252 -# define SSL_R_UNKNOWN_SSL_VERSION 254 -# define SSL_R_UNKNOWN_STATE 255 -# define SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED 338 -# define SSL_R_UNSOLICITED_EXTENSION 217 -# define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257 -# define SSL_R_UNSUPPORTED_CONFIG_VALUE 414 -# define SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS 415 -# define SSL_R_UNSUPPORTED_CONFIG_VALUE_OP 416 -# define SSL_R_UNSUPPORTED_ELLIPTIC_CURVE 315 -# define SSL_R_UNSUPPORTED_PROTOCOL 258 -# define SSL_R_UNSUPPORTED_SSL_VERSION 259 -# define SSL_R_UNSUPPORTED_STATUS_TYPE 329 -# define SSL_R_UNSUPPORTED_WRITE_FLAG 412 -# define SSL_R_USE_SRTP_NOT_NEGOTIATED 369 -# define SSL_R_VERSION_TOO_HIGH 166 -# define SSL_R_VERSION_TOO_LOW 396 -# define SSL_R_WRONG_CERTIFICATE_TYPE 383 -# define SSL_R_WRONG_CIPHER_RETURNED 261 -# define SSL_R_WRONG_CURVE 378 -# define SSL_R_WRONG_RPK_TYPE 351 -# define SSL_R_WRONG_SIGNATURE_LENGTH 264 -# define SSL_R_WRONG_SIGNATURE_SIZE 265 -# define SSL_R_WRONG_SIGNATURE_TYPE 370 -# define SSL_R_WRONG_SSL_VERSION 266 -# define SSL_R_WRONG_VERSION_NUMBER 267 -# define SSL_R_X509_LIB 268 -# define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS 269 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/sslerr_legacy.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/sslerr_legacy.h deleted file mode 100644 index 4c35367..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/sslerr_legacy.h +++ /dev/null @@ -1,467 +0,0 @@ -/* - * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * This header file preserves symbols from pre-3.0 OpenSSL. - * It should never be included directly, as it's already included - * by the public sslerr.h headers, and since it will go away some - * time in the future. - */ - -#ifndef OPENSSL_SSLERR_LEGACY_H -# define OPENSSL_SSLERR_LEGACY_H -# pragma once - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ERR_load_SSL_strings(void); - -/* Collected _F_ macros from OpenSSL 1.1.1 */ - -/* - * SSL function codes. - */ -# define SSL_F_ADD_CLIENT_KEY_SHARE_EXT 0 -# define SSL_F_ADD_KEY_SHARE 0 -# define SSL_F_BYTES_TO_CIPHER_LIST 0 -# define SSL_F_CHECK_SUITEB_CIPHER_LIST 0 -# define SSL_F_CIPHERSUITE_CB 0 -# define SSL_F_CONSTRUCT_CA_NAMES 0 -# define SSL_F_CONSTRUCT_KEY_EXCHANGE_TBS 0 -# define SSL_F_CONSTRUCT_STATEFUL_TICKET 0 -# define SSL_F_CONSTRUCT_STATELESS_TICKET 0 -# define SSL_F_CREATE_SYNTHETIC_MESSAGE_HASH 0 -# define SSL_F_CREATE_TICKET_PREQUEL 0 -# define SSL_F_CT_MOVE_SCTS 0 -# define SSL_F_CT_STRICT 0 -# define SSL_F_CUSTOM_EXT_ADD 0 -# define SSL_F_CUSTOM_EXT_PARSE 0 -# define SSL_F_D2I_SSL_SESSION 0 -# define SSL_F_DANE_CTX_ENABLE 0 -# define SSL_F_DANE_MTYPE_SET 0 -# define SSL_F_DANE_TLSA_ADD 0 -# define SSL_F_DERIVE_SECRET_KEY_AND_IV 0 -# define SSL_F_DO_DTLS1_WRITE 0 -# define SSL_F_DO_SSL3_WRITE 0 -# define SSL_F_DTLS1_BUFFER_RECORD 0 -# define SSL_F_DTLS1_CHECK_TIMEOUT_NUM 0 -# define SSL_F_DTLS1_HEARTBEAT 0 -# define SSL_F_DTLS1_HM_FRAGMENT_NEW 0 -# define SSL_F_DTLS1_PREPROCESS_FRAGMENT 0 -# define SSL_F_DTLS1_PROCESS_BUFFERED_RECORDS 0 -# define SSL_F_DTLS1_PROCESS_RECORD 0 -# define SSL_F_DTLS1_READ_BYTES 0 -# define SSL_F_DTLS1_READ_FAILED 0 -# define SSL_F_DTLS1_RETRANSMIT_MESSAGE 0 -# define SSL_F_DTLS1_WRITE_APP_DATA_BYTES 0 -# define SSL_F_DTLS1_WRITE_BYTES 0 -# define SSL_F_DTLSV1_LISTEN 0 -# define SSL_F_DTLS_CONSTRUCT_CHANGE_CIPHER_SPEC 0 -# define SSL_F_DTLS_CONSTRUCT_HELLO_VERIFY_REQUEST 0 -# define SSL_F_DTLS_GET_REASSEMBLED_MESSAGE 0 -# define SSL_F_DTLS_PROCESS_HELLO_VERIFY 0 -# define SSL_F_DTLS_RECORD_LAYER_NEW 0 -# define SSL_F_DTLS_WAIT_FOR_DRY 0 -# define SSL_F_EARLY_DATA_COUNT_OK 0 -# define SSL_F_FINAL_EARLY_DATA 0 -# define SSL_F_FINAL_EC_PT_FORMATS 0 -# define SSL_F_FINAL_EMS 0 -# define SSL_F_FINAL_KEY_SHARE 0 -# define SSL_F_FINAL_MAXFRAGMENTLEN 0 -# define SSL_F_FINAL_RENEGOTIATE 0 -# define SSL_F_FINAL_SERVER_NAME 0 -# define SSL_F_FINAL_SIG_ALGS 0 -# define SSL_F_GET_CERT_VERIFY_TBS_DATA 0 -# define SSL_F_NSS_KEYLOG_INT 0 -# define SSL_F_OPENSSL_INIT_SSL 0 -# define SSL_F_OSSL_STATEM_CLIENT13_READ_TRANSITION 0 -# define SSL_F_OSSL_STATEM_CLIENT13_WRITE_TRANSITION 0 -# define SSL_F_OSSL_STATEM_CLIENT_CONSTRUCT_MESSAGE 0 -# define SSL_F_OSSL_STATEM_CLIENT_POST_PROCESS_MESSAGE 0 -# define SSL_F_OSSL_STATEM_CLIENT_PROCESS_MESSAGE 0 -# define SSL_F_OSSL_STATEM_CLIENT_READ_TRANSITION 0 -# define SSL_F_OSSL_STATEM_CLIENT_WRITE_TRANSITION 0 -# define SSL_F_OSSL_STATEM_SERVER13_READ_TRANSITION 0 -# define SSL_F_OSSL_STATEM_SERVER13_WRITE_TRANSITION 0 -# define SSL_F_OSSL_STATEM_SERVER_CONSTRUCT_MESSAGE 0 -# define SSL_F_OSSL_STATEM_SERVER_POST_PROCESS_MESSAGE 0 -# define SSL_F_OSSL_STATEM_SERVER_POST_WORK 0 -# define SSL_F_OSSL_STATEM_SERVER_PRE_WORK 0 -# define SSL_F_OSSL_STATEM_SERVER_PROCESS_MESSAGE 0 -# define SSL_F_OSSL_STATEM_SERVER_READ_TRANSITION 0 -# define SSL_F_OSSL_STATEM_SERVER_WRITE_TRANSITION 0 -# define SSL_F_PARSE_CA_NAMES 0 -# define SSL_F_PITEM_NEW 0 -# define SSL_F_PQUEUE_NEW 0 -# define SSL_F_PROCESS_KEY_SHARE_EXT 0 -# define SSL_F_READ_STATE_MACHINE 0 -# define SSL_F_SET_CLIENT_CIPHERSUITE 0 -# define SSL_F_SRP_GENERATE_CLIENT_MASTER_SECRET 0 -# define SSL_F_SRP_GENERATE_SERVER_MASTER_SECRET 0 -# define SSL_F_SRP_VERIFY_SERVER_PARAM 0 -# define SSL_F_SSL3_CHANGE_CIPHER_STATE 0 -# define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 0 -# define SSL_F_SSL3_CTRL 0 -# define SSL_F_SSL3_CTX_CTRL 0 -# define SSL_F_SSL3_DIGEST_CACHED_RECORDS 0 -# define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 0 -# define SSL_F_SSL3_ENC 0 -# define SSL_F_SSL3_FINAL_FINISH_MAC 0 -# define SSL_F_SSL3_FINISH_MAC 0 -# define SSL_F_SSL3_GENERATE_KEY_BLOCK 0 -# define SSL_F_SSL3_GENERATE_MASTER_SECRET 0 -# define SSL_F_SSL3_GET_RECORD 0 -# define SSL_F_SSL3_INIT_FINISHED_MAC 0 -# define SSL_F_SSL3_OUTPUT_CERT_CHAIN 0 -# define SSL_F_SSL3_READ_BYTES 0 -# define SSL_F_SSL3_READ_N 0 -# define SSL_F_SSL3_SETUP_KEY_BLOCK 0 -# define SSL_F_SSL3_SETUP_READ_BUFFER 0 -# define SSL_F_SSL3_SETUP_WRITE_BUFFER 0 -# define SSL_F_SSL3_WRITE_BYTES 0 -# define SSL_F_SSL3_WRITE_PENDING 0 -# define SSL_F_SSL_ADD_CERT_CHAIN 0 -# define SSL_F_SSL_ADD_CERT_TO_BUF 0 -# define SSL_F_SSL_ADD_CERT_TO_WPACKET 0 -# define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 0 -# define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 0 -# define SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT 0 -# define SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK 0 -# define SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK 0 -# define SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT 0 -# define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 0 -# define SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT 0 -# define SSL_F_SSL_BUILD_CERT_CHAIN 0 -# define SSL_F_SSL_BYTES_TO_CIPHER_LIST 0 -# define SSL_F_SSL_CACHE_CIPHERLIST 0 -# define SSL_F_SSL_CERT_ADD0_CHAIN_CERT 0 -# define SSL_F_SSL_CERT_DUP 0 -# define SSL_F_SSL_CERT_NEW 0 -# define SSL_F_SSL_CERT_SET0_CHAIN 0 -# define SSL_F_SSL_CHECK_PRIVATE_KEY 0 -# define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 0 -# define SSL_F_SSL_CHECK_SRP_EXT_CLIENTHELLO 0 -# define SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG 0 -# define SSL_F_SSL_CHOOSE_CLIENT_VERSION 0 -# define SSL_F_SSL_CIPHER_DESCRIPTION 0 -# define SSL_F_SSL_CIPHER_LIST_TO_BYTES 0 -# define SSL_F_SSL_CIPHER_PROCESS_RULESTR 0 -# define SSL_F_SSL_CIPHER_STRENGTH_SORT 0 -# define SSL_F_SSL_CLEAR 0 -# define SSL_F_SSL_CLIENT_HELLO_GET1_EXTENSIONS_PRESENT 0 -# define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 0 -# define SSL_F_SSL_CONF_CMD 0 -# define SSL_F_SSL_CREATE_CIPHER_LIST 0 -# define SSL_F_SSL_CTRL 0 -# define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 0 -# define SSL_F_SSL_CTX_ENABLE_CT 0 -# define SSL_F_SSL_CTX_MAKE_PROFILES 0 -# define SSL_F_SSL_CTX_NEW 0 -# define SSL_F_SSL_CTX_SET_ALPN_PROTOS 0 -# define SSL_F_SSL_CTX_SET_CIPHER_LIST 0 -# define SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE 0 -# define SSL_F_SSL_CTX_SET_CT_VALIDATION_CALLBACK 0 -# define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 0 -# define SSL_F_SSL_CTX_SET_SSL_VERSION 0 -# define SSL_F_SSL_CTX_SET_TLSEXT_MAX_FRAGMENT_LENGTH 0 -# define SSL_F_SSL_CTX_USE_CERTIFICATE 0 -# define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 0 -# define SSL_F_SSL_CTX_USE_CERTIFICATE_FILE 0 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY 0 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 0 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE 0 -# define SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT 0 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 0 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 0 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 0 -# define SSL_F_SSL_CTX_USE_SERVERINFO 0 -# define SSL_F_SSL_CTX_USE_SERVERINFO_EX 0 -# define SSL_F_SSL_CTX_USE_SERVERINFO_FILE 0 -# define SSL_F_SSL_DANE_DUP 0 -# define SSL_F_SSL_DANE_ENABLE 0 -# define SSL_F_SSL_DERIVE 0 -# define SSL_F_SSL_DO_CONFIG 0 -# define SSL_F_SSL_DO_HANDSHAKE 0 -# define SSL_F_SSL_DUP_CA_LIST 0 -# define SSL_F_SSL_ENABLE_CT 0 -# define SSL_F_SSL_GENERATE_PKEY_GROUP 0 -# define SSL_F_SSL_GENERATE_SESSION_ID 0 -# define SSL_F_SSL_GET_NEW_SESSION 0 -# define SSL_F_SSL_GET_PREV_SESSION 0 -# define SSL_F_SSL_GET_SERVER_CERT_INDEX 0 -# define SSL_F_SSL_GET_SIGN_PKEY 0 -# define SSL_F_SSL_HANDSHAKE_HASH 0 -# define SSL_F_SSL_INIT_WBIO_BUFFER 0 -# define SSL_F_SSL_KEY_UPDATE 0 -# define SSL_F_SSL_LOAD_CLIENT_CA_FILE 0 -# define SSL_F_SSL_LOG_MASTER_SECRET 0 -# define SSL_F_SSL_LOG_RSA_CLIENT_KEY_EXCHANGE 0 -# define SSL_F_SSL_MODULE_INIT 0 -# define SSL_F_SSL_NEW 0 -# define SSL_F_SSL_NEXT_PROTO_VALIDATE 0 -# define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 0 -# define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 0 -# define SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT 0 -# define SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT 0 -# define SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT 0 -# define SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT 0 -# define SSL_F_SSL_PEEK 0 -# define SSL_F_SSL_PEEK_EX 0 -# define SSL_F_SSL_PEEK_INTERNAL 0 -# define SSL_F_SSL_READ 0 -# define SSL_F_SSL_READ_EARLY_DATA 0 -# define SSL_F_SSL_READ_EX 0 -# define SSL_F_SSL_READ_INTERNAL 0 -# define SSL_F_SSL_RENEGOTIATE 0 -# define SSL_F_SSL_RENEGOTIATE_ABBREVIATED 0 -# define SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT 0 -# define SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT 0 -# define SSL_F_SSL_SESSION_DUP 0 -# define SSL_F_SSL_SESSION_NEW 0 -# define SSL_F_SSL_SESSION_PRINT_FP 0 -# define SSL_F_SSL_SESSION_SET1_ID 0 -# define SSL_F_SSL_SESSION_SET1_ID_CONTEXT 0 -# define SSL_F_SSL_SET_ALPN_PROTOS 0 -# define SSL_F_SSL_SET_CERT 0 -# define SSL_F_SSL_SET_CERT_AND_KEY 0 -# define SSL_F_SSL_SET_CIPHER_LIST 0 -# define SSL_F_SSL_SET_CT_VALIDATION_CALLBACK 0 -# define SSL_F_SSL_SET_FD 0 -# define SSL_F_SSL_SET_PKEY 0 -# define SSL_F_SSL_SET_RFD 0 -# define SSL_F_SSL_SET_SESSION 0 -# define SSL_F_SSL_SET_SESSION_ID_CONTEXT 0 -# define SSL_F_SSL_SET_SESSION_TICKET_EXT 0 -# define SSL_F_SSL_SET_TLSEXT_MAX_FRAGMENT_LENGTH 0 -# define SSL_F_SSL_SET_WFD 0 -# define SSL_F_SSL_SHUTDOWN 0 -# define SSL_F_SSL_SRP_CTX_INIT 0 -# define SSL_F_SSL_START_ASYNC_JOB 0 -# define SSL_F_SSL_UNDEFINED_FUNCTION 0 -# define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 0 -# define SSL_F_SSL_USE_CERTIFICATE 0 -# define SSL_F_SSL_USE_CERTIFICATE_ASN1 0 -# define SSL_F_SSL_USE_CERTIFICATE_FILE 0 -# define SSL_F_SSL_USE_PRIVATEKEY 0 -# define SSL_F_SSL_USE_PRIVATEKEY_ASN1 0 -# define SSL_F_SSL_USE_PRIVATEKEY_FILE 0 -# define SSL_F_SSL_USE_PSK_IDENTITY_HINT 0 -# define SSL_F_SSL_USE_RSAPRIVATEKEY 0 -# define SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 0 -# define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 0 -# define SSL_F_SSL_VALIDATE_CT 0 -# define SSL_F_SSL_VERIFY_CERT_CHAIN 0 -# define SSL_F_SSL_VERIFY_CLIENT_POST_HANDSHAKE 0 -# define SSL_F_SSL_WRITE 0 -# define SSL_F_SSL_WRITE_EARLY_DATA 0 -# define SSL_F_SSL_WRITE_EARLY_FINISH 0 -# define SSL_F_SSL_WRITE_EX 0 -# define SSL_F_SSL_WRITE_INTERNAL 0 -# define SSL_F_STATE_MACHINE 0 -# define SSL_F_TLS12_CHECK_PEER_SIGALG 0 -# define SSL_F_TLS12_COPY_SIGALGS 0 -# define SSL_F_TLS13_CHANGE_CIPHER_STATE 0 -# define SSL_F_TLS13_ENC 0 -# define SSL_F_TLS13_FINAL_FINISH_MAC 0 -# define SSL_F_TLS13_GENERATE_SECRET 0 -# define SSL_F_TLS13_HKDF_EXPAND 0 -# define SSL_F_TLS13_RESTORE_HANDSHAKE_DIGEST_FOR_PHA 0 -# define SSL_F_TLS13_SAVE_HANDSHAKE_DIGEST_FOR_PHA 0 -# define SSL_F_TLS13_SETUP_KEY_BLOCK 0 -# define SSL_F_TLS1_CHANGE_CIPHER_STATE 0 -# define SSL_F_TLS1_CHECK_DUPLICATE_EXTENSIONS 0 -# define SSL_F_TLS1_ENC 0 -# define SSL_F_TLS1_EXPORT_KEYING_MATERIAL 0 -# define SSL_F_TLS1_GET_CURVELIST 0 -# define SSL_F_TLS1_PRF 0 -# define SSL_F_TLS1_SAVE_U16 0 -# define SSL_F_TLS1_SETUP_KEY_BLOCK 0 -# define SSL_F_TLS1_SET_GROUPS 0 -# define SSL_F_TLS1_SET_RAW_SIGALGS 0 -# define SSL_F_TLS1_SET_SERVER_SIGALGS 0 -# define SSL_F_TLS1_SET_SHARED_SIGALGS 0 -# define SSL_F_TLS1_SET_SIGALGS 0 -# define SSL_F_TLS_CHOOSE_SIGALG 0 -# define SSL_F_TLS_CLIENT_KEY_EXCHANGE_POST_WORK 0 -# define SSL_F_TLS_COLLECT_EXTENSIONS 0 -# define SSL_F_TLS_CONSTRUCT_CERTIFICATE_AUTHORITIES 0 -# define SSL_F_TLS_CONSTRUCT_CERTIFICATE_REQUEST 0 -# define SSL_F_TLS_CONSTRUCT_CERT_STATUS 0 -# define SSL_F_TLS_CONSTRUCT_CERT_STATUS_BODY 0 -# define SSL_F_TLS_CONSTRUCT_CERT_VERIFY 0 -# define SSL_F_TLS_CONSTRUCT_CHANGE_CIPHER_SPEC 0 -# define SSL_F_TLS_CONSTRUCT_CKE_DHE 0 -# define SSL_F_TLS_CONSTRUCT_CKE_ECDHE 0 -# define SSL_F_TLS_CONSTRUCT_CKE_GOST 0 -# define SSL_F_TLS_CONSTRUCT_CKE_PSK_PREAMBLE 0 -# define SSL_F_TLS_CONSTRUCT_CKE_RSA 0 -# define SSL_F_TLS_CONSTRUCT_CKE_SRP 0 -# define SSL_F_TLS_CONSTRUCT_CLIENT_CERTIFICATE 0 -# define SSL_F_TLS_CONSTRUCT_CLIENT_HELLO 0 -# define SSL_F_TLS_CONSTRUCT_CLIENT_KEY_EXCHANGE 0 -# define SSL_F_TLS_CONSTRUCT_CLIENT_VERIFY 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_ALPN 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_CERTIFICATE 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_COOKIE 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_EARLY_DATA 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_EC_PT_FORMATS 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_EMS 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_ETM 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_HELLO 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_KEY_EXCHANGE 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_KEY_SHARE 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_MAXFRAGMENTLEN 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_NPN 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_PADDING 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_POST_HANDSHAKE_AUTH 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_PSK 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_PSK_KEX_MODES 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_RENEGOTIATE 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_SCT 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_SERVER_NAME 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_SESSION_TICKET 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_SIG_ALGS 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_SRP 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_STATUS_REQUEST 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_SUPPORTED_GROUPS 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_SUPPORTED_VERSIONS 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_USE_SRTP 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_VERIFY 0 -# define SSL_F_TLS_CONSTRUCT_ENCRYPTED_EXTENSIONS 0 -# define SSL_F_TLS_CONSTRUCT_END_OF_EARLY_DATA 0 -# define SSL_F_TLS_CONSTRUCT_EXTENSIONS 0 -# define SSL_F_TLS_CONSTRUCT_FINISHED 0 -# define SSL_F_TLS_CONSTRUCT_HELLO_REQUEST 0 -# define SSL_F_TLS_CONSTRUCT_HELLO_RETRY_REQUEST 0 -# define SSL_F_TLS_CONSTRUCT_KEY_UPDATE 0 -# define SSL_F_TLS_CONSTRUCT_NEW_SESSION_TICKET 0 -# define SSL_F_TLS_CONSTRUCT_NEXT_PROTO 0 -# define SSL_F_TLS_CONSTRUCT_SERVER_CERTIFICATE 0 -# define SSL_F_TLS_CONSTRUCT_SERVER_HELLO 0 -# define SSL_F_TLS_CONSTRUCT_SERVER_KEY_EXCHANGE 0 -# define SSL_F_TLS_CONSTRUCT_STOC_ALPN 0 -# define SSL_F_TLS_CONSTRUCT_STOC_CERTIFICATE 0 -# define SSL_F_TLS_CONSTRUCT_STOC_COOKIE 0 -# define SSL_F_TLS_CONSTRUCT_STOC_CRYPTOPRO_BUG 0 -# define SSL_F_TLS_CONSTRUCT_STOC_DONE 0 -# define SSL_F_TLS_CONSTRUCT_STOC_EARLY_DATA 0 -# define SSL_F_TLS_CONSTRUCT_STOC_EARLY_DATA_INFO 0 -# define SSL_F_TLS_CONSTRUCT_STOC_EC_PT_FORMATS 0 -# define SSL_F_TLS_CONSTRUCT_STOC_EMS 0 -# define SSL_F_TLS_CONSTRUCT_STOC_ETM 0 -# define SSL_F_TLS_CONSTRUCT_STOC_HELLO 0 -# define SSL_F_TLS_CONSTRUCT_STOC_KEY_EXCHANGE 0 -# define SSL_F_TLS_CONSTRUCT_STOC_KEY_SHARE 0 -# define SSL_F_TLS_CONSTRUCT_STOC_MAXFRAGMENTLEN 0 -# define SSL_F_TLS_CONSTRUCT_STOC_NEXT_PROTO_NEG 0 -# define SSL_F_TLS_CONSTRUCT_STOC_PSK 0 -# define SSL_F_TLS_CONSTRUCT_STOC_RENEGOTIATE 0 -# define SSL_F_TLS_CONSTRUCT_STOC_SERVER_NAME 0 -# define SSL_F_TLS_CONSTRUCT_STOC_SESSION_TICKET 0 -# define SSL_F_TLS_CONSTRUCT_STOC_STATUS_REQUEST 0 -# define SSL_F_TLS_CONSTRUCT_STOC_SUPPORTED_GROUPS 0 -# define SSL_F_TLS_CONSTRUCT_STOC_SUPPORTED_VERSIONS 0 -# define SSL_F_TLS_CONSTRUCT_STOC_USE_SRTP 0 -# define SSL_F_TLS_EARLY_POST_PROCESS_CLIENT_HELLO 0 -# define SSL_F_TLS_FINISH_HANDSHAKE 0 -# define SSL_F_TLS_GET_MESSAGE_BODY 0 -# define SSL_F_TLS_GET_MESSAGE_HEADER 0 -# define SSL_F_TLS_HANDLE_ALPN 0 -# define SSL_F_TLS_HANDLE_STATUS_REQUEST 0 -# define SSL_F_TLS_PARSE_CERTIFICATE_AUTHORITIES 0 -# define SSL_F_TLS_PARSE_CLIENTHELLO_TLSEXT 0 -# define SSL_F_TLS_PARSE_CTOS_ALPN 0 -# define SSL_F_TLS_PARSE_CTOS_COOKIE 0 -# define SSL_F_TLS_PARSE_CTOS_EARLY_DATA 0 -# define SSL_F_TLS_PARSE_CTOS_EC_PT_FORMATS 0 -# define SSL_F_TLS_PARSE_CTOS_EMS 0 -# define SSL_F_TLS_PARSE_CTOS_KEY_SHARE 0 -# define SSL_F_TLS_PARSE_CTOS_MAXFRAGMENTLEN 0 -# define SSL_F_TLS_PARSE_CTOS_POST_HANDSHAKE_AUTH 0 -# define SSL_F_TLS_PARSE_CTOS_PSK 0 -# define SSL_F_TLS_PARSE_CTOS_PSK_KEX_MODES 0 -# define SSL_F_TLS_PARSE_CTOS_RENEGOTIATE 0 -# define SSL_F_TLS_PARSE_CTOS_SERVER_NAME 0 -# define SSL_F_TLS_PARSE_CTOS_SESSION_TICKET 0 -# define SSL_F_TLS_PARSE_CTOS_SIG_ALGS 0 -# define SSL_F_TLS_PARSE_CTOS_SIG_ALGS_CERT 0 -# define SSL_F_TLS_PARSE_CTOS_SRP 0 -# define SSL_F_TLS_PARSE_CTOS_STATUS_REQUEST 0 -# define SSL_F_TLS_PARSE_CTOS_SUPPORTED_GROUPS 0 -# define SSL_F_TLS_PARSE_CTOS_USE_SRTP 0 -# define SSL_F_TLS_PARSE_STOC_ALPN 0 -# define SSL_F_TLS_PARSE_STOC_COOKIE 0 -# define SSL_F_TLS_PARSE_STOC_EARLY_DATA 0 -# define SSL_F_TLS_PARSE_STOC_EARLY_DATA_INFO 0 -# define SSL_F_TLS_PARSE_STOC_EC_PT_FORMATS 0 -# define SSL_F_TLS_PARSE_STOC_KEY_SHARE 0 -# define SSL_F_TLS_PARSE_STOC_MAXFRAGMENTLEN 0 -# define SSL_F_TLS_PARSE_STOC_NPN 0 -# define SSL_F_TLS_PARSE_STOC_PSK 0 -# define SSL_F_TLS_PARSE_STOC_RENEGOTIATE 0 -# define SSL_F_TLS_PARSE_STOC_SCT 0 -# define SSL_F_TLS_PARSE_STOC_SERVER_NAME 0 -# define SSL_F_TLS_PARSE_STOC_SESSION_TICKET 0 -# define SSL_F_TLS_PARSE_STOC_STATUS_REQUEST 0 -# define SSL_F_TLS_PARSE_STOC_SUPPORTED_VERSIONS 0 -# define SSL_F_TLS_PARSE_STOC_USE_SRTP 0 -# define SSL_F_TLS_POST_PROCESS_CLIENT_HELLO 0 -# define SSL_F_TLS_POST_PROCESS_CLIENT_KEY_EXCHANGE 0 -# define SSL_F_TLS_PREPARE_CLIENT_CERTIFICATE 0 -# define SSL_F_TLS_PROCESS_AS_HELLO_RETRY_REQUEST 0 -# define SSL_F_TLS_PROCESS_CERTIFICATE_REQUEST 0 -# define SSL_F_TLS_PROCESS_CERT_STATUS 0 -# define SSL_F_TLS_PROCESS_CERT_STATUS_BODY 0 -# define SSL_F_TLS_PROCESS_CERT_VERIFY 0 -# define SSL_F_TLS_PROCESS_CHANGE_CIPHER_SPEC 0 -# define SSL_F_TLS_PROCESS_CKE_DHE 0 -# define SSL_F_TLS_PROCESS_CKE_ECDHE 0 -# define SSL_F_TLS_PROCESS_CKE_GOST 0 -# define SSL_F_TLS_PROCESS_CKE_PSK_PREAMBLE 0 -# define SSL_F_TLS_PROCESS_CKE_RSA 0 -# define SSL_F_TLS_PROCESS_CKE_SRP 0 -# define SSL_F_TLS_PROCESS_CLIENT_CERTIFICATE 0 -# define SSL_F_TLS_PROCESS_CLIENT_HELLO 0 -# define SSL_F_TLS_PROCESS_CLIENT_KEY_EXCHANGE 0 -# define SSL_F_TLS_PROCESS_ENCRYPTED_EXTENSIONS 0 -# define SSL_F_TLS_PROCESS_END_OF_EARLY_DATA 0 -# define SSL_F_TLS_PROCESS_FINISHED 0 -# define SSL_F_TLS_PROCESS_HELLO_REQ 0 -# define SSL_F_TLS_PROCESS_HELLO_RETRY_REQUEST 0 -# define SSL_F_TLS_PROCESS_INITIAL_SERVER_FLIGHT 0 -# define SSL_F_TLS_PROCESS_KEY_EXCHANGE 0 -# define SSL_F_TLS_PROCESS_KEY_UPDATE 0 -# define SSL_F_TLS_PROCESS_NEW_SESSION_TICKET 0 -# define SSL_F_TLS_PROCESS_NEXT_PROTO 0 -# define SSL_F_TLS_PROCESS_SERVER_CERTIFICATE 0 -# define SSL_F_TLS_PROCESS_SERVER_DONE 0 -# define SSL_F_TLS_PROCESS_SERVER_HELLO 0 -# define SSL_F_TLS_PROCESS_SKE_DHE 0 -# define SSL_F_TLS_PROCESS_SKE_ECDHE 0 -# define SSL_F_TLS_PROCESS_SKE_PSK_PREAMBLE 0 -# define SSL_F_TLS_PROCESS_SKE_SRP 0 -# define SSL_F_TLS_PSK_DO_BINDER 0 -# define SSL_F_TLS_SCAN_CLIENTHELLO_TLSEXT 0 -# define SSL_F_TLS_SETUP_HANDSHAKE 0 -# define SSL_F_USE_CERTIFICATE_CHAIN_FILE 0 -# define SSL_F_WPACKET_INTERN_INIT_LEN 0 -# define SSL_F_WPACKET_START_SUB_PACKET_LEN__ 0 -# define SSL_F_WRITE_STATE_MACHINE 0 -# endif - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/stack.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/stack.h deleted file mode 100644 index 419f561..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/stack.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_STACK_H -# define OPENSSL_STACK_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_STACK_H -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct stack_st OPENSSL_STACK; /* Use STACK_OF(...) instead */ - -typedef int (*OPENSSL_sk_compfunc)(const void *, const void *); -typedef void (*OPENSSL_sk_freefunc)(void *); -typedef void (*OPENSSL_sk_freefunc_thunk)(OPENSSL_sk_freefunc, void *); -typedef void *(*OPENSSL_sk_copyfunc)(const void *); - -int OPENSSL_sk_num(const OPENSSL_STACK *); -void *OPENSSL_sk_value(const OPENSSL_STACK *, int); - -void *OPENSSL_sk_set(OPENSSL_STACK *st, int i, const void *data); - -OPENSSL_STACK *OPENSSL_sk_new(OPENSSL_sk_compfunc cmp); -OPENSSL_STACK *OPENSSL_sk_new_null(void); -OPENSSL_STACK *OPENSSL_sk_new_reserve(OPENSSL_sk_compfunc c, int n); -OPENSSL_STACK *OPENSSL_sk_set_thunks(OPENSSL_STACK *st, OPENSSL_sk_freefunc_thunk f_thunk); -int OPENSSL_sk_reserve(OPENSSL_STACK *st, int n); -void OPENSSL_sk_free(OPENSSL_STACK *); -void OPENSSL_sk_pop_free(OPENSSL_STACK *st, OPENSSL_sk_freefunc func); -OPENSSL_STACK *OPENSSL_sk_deep_copy(const OPENSSL_STACK *, - OPENSSL_sk_copyfunc c, - OPENSSL_sk_freefunc f); -int OPENSSL_sk_insert(OPENSSL_STACK *sk, const void *data, int where); -void *OPENSSL_sk_delete(OPENSSL_STACK *st, int loc); -void *OPENSSL_sk_delete_ptr(OPENSSL_STACK *st, const void *p); -int OPENSSL_sk_find(OPENSSL_STACK *st, const void *data); -int OPENSSL_sk_find_ex(OPENSSL_STACK *st, const void *data); -int OPENSSL_sk_find_all(OPENSSL_STACK *st, const void *data, int *pnum); -int OPENSSL_sk_push(OPENSSL_STACK *st, const void *data); -int OPENSSL_sk_unshift(OPENSSL_STACK *st, const void *data); -void *OPENSSL_sk_shift(OPENSSL_STACK *st); -void *OPENSSL_sk_pop(OPENSSL_STACK *st); -void OPENSSL_sk_zero(OPENSSL_STACK *st); -OPENSSL_sk_compfunc OPENSSL_sk_set_cmp_func(OPENSSL_STACK *sk, - OPENSSL_sk_compfunc cmp); -OPENSSL_STACK *OPENSSL_sk_dup(const OPENSSL_STACK *st); -void OPENSSL_sk_sort(OPENSSL_STACK *st); -int OPENSSL_sk_is_sorted(const OPENSSL_STACK *st); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define _STACK OPENSSL_STACK -# define sk_num OPENSSL_sk_num -# define sk_value OPENSSL_sk_value -# define sk_set OPENSSL_sk_set -# define sk_new OPENSSL_sk_new -# define sk_new_null OPENSSL_sk_new_null -# define sk_free OPENSSL_sk_free -# define sk_pop_free OPENSSL_sk_pop_free -# define sk_deep_copy OPENSSL_sk_deep_copy -# define sk_insert OPENSSL_sk_insert -# define sk_delete OPENSSL_sk_delete -# define sk_delete_ptr OPENSSL_sk_delete_ptr -# define sk_find OPENSSL_sk_find -# define sk_find_ex OPENSSL_sk_find_ex -# define sk_push OPENSSL_sk_push -# define sk_unshift OPENSSL_sk_unshift -# define sk_shift OPENSSL_sk_shift -# define sk_pop OPENSSL_sk_pop -# define sk_zero OPENSSL_sk_zero -# define sk_set_cmp_func OPENSSL_sk_set_cmp_func -# define sk_dup OPENSSL_sk_dup -# define sk_sort OPENSSL_sk_sort -# define sk_is_sorted OPENSSL_sk_is_sorted -# endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/store.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/store.h deleted file mode 100644 index a137f59..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/store.h +++ /dev/null @@ -1,379 +0,0 @@ -/* - * Copyright 2016-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_STORE_H -# define OPENSSL_STORE_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_OSSL_STORE_H -# endif - -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/*- - * The main OSSL_STORE functions. - * ------------------------------ - * - * These allow applications to open a channel to a resource with supported - * data (keys, certs, crls, ...), read the data a piece at a time and decide - * what to do with it, and finally close. - */ - -typedef struct ossl_store_ctx_st OSSL_STORE_CTX; - -/* - * Typedef for the OSSL_STORE_INFO post processing callback. This can be used - * to massage the given OSSL_STORE_INFO, or to drop it entirely (by returning - * NULL). - */ -typedef OSSL_STORE_INFO *(*OSSL_STORE_post_process_info_fn)(OSSL_STORE_INFO *, - void *); - -/* - * Open a channel given a URI. The given UI method will be used any time the - * loader needs extra input, for example when a password or pin is needed, and - * will be passed the same user data every time it's needed in this context. - * - * Returns a context reference which represents the channel to communicate - * through. - */ -OSSL_STORE_CTX * -OSSL_STORE_open(const char *uri, const UI_METHOD *ui_method, void *ui_data, - OSSL_STORE_post_process_info_fn post_process, - void *post_process_data); -OSSL_STORE_CTX * -OSSL_STORE_open_ex(const char *uri, OSSL_LIB_CTX *libctx, const char *propq, - const UI_METHOD *ui_method, void *ui_data, - const OSSL_PARAM params[], - OSSL_STORE_post_process_info_fn post_process, - void *post_process_data); - -/* - * Control / fine tune the OSSL_STORE channel. |cmd| determines what is to be - * done, and depends on the underlying loader (use OSSL_STORE_get0_scheme to - * determine which loader is used), except for common commands (see below). - * Each command takes different arguments. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int OSSL_STORE_ctrl(OSSL_STORE_CTX *ctx, int cmd, - ... /* args */); -OSSL_DEPRECATEDIN_3_0 int OSSL_STORE_vctrl(OSSL_STORE_CTX *ctx, int cmd, - va_list args); -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 - -/* - * Common ctrl commands that different loaders may choose to support. - */ -/* int on = 0 or 1; STORE_ctrl(ctx, STORE_C_USE_SECMEM, &on); */ -# define OSSL_STORE_C_USE_SECMEM 1 -/* Where custom commands start */ -# define OSSL_STORE_C_CUSTOM_START 100 - -# endif - -/* - * Read one data item (a key, a cert, a CRL) that is supported by the OSSL_STORE - * functionality, given a context. - * Returns a OSSL_STORE_INFO pointer, from which OpenSSL typed data can be - * extracted with OSSL_STORE_INFO_get0_PKEY(), OSSL_STORE_INFO_get0_CERT(), ... - * NULL is returned on error, which may include that the data found at the URI - * can't be figured out for certain or is ambiguous. - */ -OSSL_STORE_INFO *OSSL_STORE_load(OSSL_STORE_CTX *ctx); - -/* - * Deletes the object in the store by URI. - * Returns 1 on success, 0 otherwise. - */ -int OSSL_STORE_delete(const char *uri, OSSL_LIB_CTX *libctx, const char *propq, - const UI_METHOD *ui_method, void *ui_data, - const OSSL_PARAM params[]); - -/* - * Check if end of data (end of file) is reached - * Returns 1 on end, 0 otherwise. - */ -int OSSL_STORE_eof(OSSL_STORE_CTX *ctx); - -/* - * Check if an error occurred - * Returns 1 if it did, 0 otherwise. - */ -int OSSL_STORE_error(OSSL_STORE_CTX *ctx); - -/* - * Close the channel - * Returns 1 on success, 0 on error. - */ -int OSSL_STORE_close(OSSL_STORE_CTX *ctx); - -/* - * Attach to a BIO. This works like OSSL_STORE_open() except it takes a - * BIO instead of a uri, along with a scheme to use when reading. - * The given UI method will be used any time the loader needs extra input, - * for example when a password or pin is needed, and will be passed the - * same user data every time it's needed in this context. - * - * Returns a context reference which represents the channel to communicate - * through. - * - * Note that this function is considered unsafe, all depending on what the - * BIO actually reads. - */ -OSSL_STORE_CTX *OSSL_STORE_attach(BIO *bio, const char *scheme, - OSSL_LIB_CTX *libctx, const char *propq, - const UI_METHOD *ui_method, void *ui_data, - const OSSL_PARAM params[], - OSSL_STORE_post_process_info_fn post_process, - void *post_process_data); - -/*- - * Extracting OpenSSL types from and creating new OSSL_STORE_INFOs - * --------------------------------------------------------------- - */ - -/* - * Types of data that can be ossl_stored in a OSSL_STORE_INFO. - * OSSL_STORE_INFO_NAME is typically found when getting a listing of - * available "files" / "tokens" / what have you. - */ -# define OSSL_STORE_INFO_NAME 1 /* char * */ -# define OSSL_STORE_INFO_PARAMS 2 /* EVP_PKEY * */ -# define OSSL_STORE_INFO_PUBKEY 3 /* EVP_PKEY * */ -# define OSSL_STORE_INFO_PKEY 4 /* EVP_PKEY * */ -# define OSSL_STORE_INFO_CERT 5 /* X509 * */ -# define OSSL_STORE_INFO_CRL 6 /* X509_CRL * */ - -/* - * Functions to generate OSSL_STORE_INFOs, one function for each type we - * support having in them, as well as a generic constructor. - * - * In all cases, ownership of the object is transferred to the OSSL_STORE_INFO - * and will therefore be freed when the OSSL_STORE_INFO is freed. - */ -OSSL_STORE_INFO *OSSL_STORE_INFO_new(int type, void *data); -OSSL_STORE_INFO *OSSL_STORE_INFO_new_NAME(char *name); -int OSSL_STORE_INFO_set0_NAME_description(OSSL_STORE_INFO *info, char *desc); -OSSL_STORE_INFO *OSSL_STORE_INFO_new_PARAMS(EVP_PKEY *params); -OSSL_STORE_INFO *OSSL_STORE_INFO_new_PUBKEY(EVP_PKEY *pubkey); -OSSL_STORE_INFO *OSSL_STORE_INFO_new_PKEY(EVP_PKEY *pkey); -OSSL_STORE_INFO *OSSL_STORE_INFO_new_CERT(X509 *x509); -OSSL_STORE_INFO *OSSL_STORE_INFO_new_CRL(X509_CRL *crl); - -/* - * Functions to try to extract data from a OSSL_STORE_INFO. - */ -int OSSL_STORE_INFO_get_type(const OSSL_STORE_INFO *info); -void *OSSL_STORE_INFO_get0_data(int type, const OSSL_STORE_INFO *info); -const char *OSSL_STORE_INFO_get0_NAME(const OSSL_STORE_INFO *info); -char *OSSL_STORE_INFO_get1_NAME(const OSSL_STORE_INFO *info); -const char *OSSL_STORE_INFO_get0_NAME_description(const OSSL_STORE_INFO *info); -char *OSSL_STORE_INFO_get1_NAME_description(const OSSL_STORE_INFO *info); -EVP_PKEY *OSSL_STORE_INFO_get0_PARAMS(const OSSL_STORE_INFO *info); -EVP_PKEY *OSSL_STORE_INFO_get1_PARAMS(const OSSL_STORE_INFO *info); -EVP_PKEY *OSSL_STORE_INFO_get0_PUBKEY(const OSSL_STORE_INFO *info); -EVP_PKEY *OSSL_STORE_INFO_get1_PUBKEY(const OSSL_STORE_INFO *info); -EVP_PKEY *OSSL_STORE_INFO_get0_PKEY(const OSSL_STORE_INFO *info); -EVP_PKEY *OSSL_STORE_INFO_get1_PKEY(const OSSL_STORE_INFO *info); -X509 *OSSL_STORE_INFO_get0_CERT(const OSSL_STORE_INFO *info); -X509 *OSSL_STORE_INFO_get1_CERT(const OSSL_STORE_INFO *info); -X509_CRL *OSSL_STORE_INFO_get0_CRL(const OSSL_STORE_INFO *info); -X509_CRL *OSSL_STORE_INFO_get1_CRL(const OSSL_STORE_INFO *info); - -const char *OSSL_STORE_INFO_type_string(int type); - -/* - * Free the OSSL_STORE_INFO - */ -void OSSL_STORE_INFO_free(OSSL_STORE_INFO *info); - - -/*- - * Functions to construct a search URI from a base URI and search criteria - * ----------------------------------------------------------------------- - */ - -/* OSSL_STORE search types */ -# define OSSL_STORE_SEARCH_BY_NAME 1 /* subject in certs, issuer in CRLs */ -# define OSSL_STORE_SEARCH_BY_ISSUER_SERIAL 2 -# define OSSL_STORE_SEARCH_BY_KEY_FINGERPRINT 3 -# define OSSL_STORE_SEARCH_BY_ALIAS 4 - -/* To check what search types the scheme handler supports */ -int OSSL_STORE_supports_search(OSSL_STORE_CTX *ctx, int search_type); - -/* Search term constructors */ -/* - * The input is considered to be owned by the caller, and must therefore - * remain present throughout the lifetime of the returned OSSL_STORE_SEARCH - */ -OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_name(X509_NAME *name); -OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_issuer_serial(X509_NAME *name, - const ASN1_INTEGER - *serial); -OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_key_fingerprint(const EVP_MD *digest, - const unsigned char - *bytes, size_t len); -OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_alias(const char *alias); - -/* Search term destructor */ -void OSSL_STORE_SEARCH_free(OSSL_STORE_SEARCH *search); - -/* Search term accessors */ -int OSSL_STORE_SEARCH_get_type(const OSSL_STORE_SEARCH *criterion); -X509_NAME *OSSL_STORE_SEARCH_get0_name(const OSSL_STORE_SEARCH *criterion); -const ASN1_INTEGER *OSSL_STORE_SEARCH_get0_serial(const OSSL_STORE_SEARCH - *criterion); -const unsigned char *OSSL_STORE_SEARCH_get0_bytes(const OSSL_STORE_SEARCH - *criterion, size_t *length); -const char *OSSL_STORE_SEARCH_get0_string(const OSSL_STORE_SEARCH *criterion); -const EVP_MD *OSSL_STORE_SEARCH_get0_digest(const OSSL_STORE_SEARCH *criterion); - -/* - * Add search criterion and expected return type (which can be unspecified) - * to the loading channel. This MUST happen before the first OSSL_STORE_load(). - */ -int OSSL_STORE_expect(OSSL_STORE_CTX *ctx, int expected_type); -int OSSL_STORE_find(OSSL_STORE_CTX *ctx, const OSSL_STORE_SEARCH *search); - - -/*- - * Function to fetch a loader and extract data from it - * --------------------------------------------------- - */ - -typedef struct ossl_store_loader_st OSSL_STORE_LOADER; - -OSSL_STORE_LOADER *OSSL_STORE_LOADER_fetch(OSSL_LIB_CTX *libctx, - const char *scheme, - const char *properties); -int OSSL_STORE_LOADER_up_ref(OSSL_STORE_LOADER *loader); -void OSSL_STORE_LOADER_free(OSSL_STORE_LOADER *loader); -const OSSL_PROVIDER *OSSL_STORE_LOADER_get0_provider(const OSSL_STORE_LOADER * - loader); -const char *OSSL_STORE_LOADER_get0_properties(const OSSL_STORE_LOADER *loader); -const char *OSSL_STORE_LOADER_get0_description(const OSSL_STORE_LOADER *loader); -int OSSL_STORE_LOADER_is_a(const OSSL_STORE_LOADER *loader, - const char *scheme); -void OSSL_STORE_LOADER_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(OSSL_STORE_LOADER *loader, - void *arg), - void *arg); -int OSSL_STORE_LOADER_names_do_all(const OSSL_STORE_LOADER *loader, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PARAM * -OSSL_STORE_LOADER_settable_ctx_params(const OSSL_STORE_LOADER *loader); - -/*- - * Function to register a loader for the given URI scheme. - * ------------------------------------------------------- - * - * The loader receives all the main components of an URI except for the - * scheme. - */ - -# ifndef OPENSSL_NO_DEPRECATED_3_0 - -/* struct ossl_store_loader_ctx_st is defined differently by each loader */ -typedef struct ossl_store_loader_ctx_st OSSL_STORE_LOADER_CTX; -typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_open_fn) - (const OSSL_STORE_LOADER *loader, const char *uri, - const UI_METHOD *ui_method, void *ui_data); -typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_open_ex_fn) - (const OSSL_STORE_LOADER *loader, - const char *uri, OSSL_LIB_CTX *libctx, const char *propq, - const UI_METHOD *ui_method, void *ui_data); - -typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_attach_fn) - (const OSSL_STORE_LOADER *loader, BIO *bio, - OSSL_LIB_CTX *libctx, const char *propq, - const UI_METHOD *ui_method, void *ui_data); -typedef int (*OSSL_STORE_ctrl_fn) - (OSSL_STORE_LOADER_CTX *ctx, int cmd, va_list args); -typedef int (*OSSL_STORE_expect_fn) - (OSSL_STORE_LOADER_CTX *ctx, int expected); -typedef int (*OSSL_STORE_find_fn) - (OSSL_STORE_LOADER_CTX *ctx, const OSSL_STORE_SEARCH *criteria); -typedef OSSL_STORE_INFO *(*OSSL_STORE_load_fn) - (OSSL_STORE_LOADER_CTX *ctx, const UI_METHOD *ui_method, void *ui_data); -typedef int (*OSSL_STORE_eof_fn)(OSSL_STORE_LOADER_CTX *ctx); -typedef int (*OSSL_STORE_error_fn)(OSSL_STORE_LOADER_CTX *ctx); -typedef int (*OSSL_STORE_close_fn)(OSSL_STORE_LOADER_CTX *ctx); - -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -OSSL_STORE_LOADER *OSSL_STORE_LOADER_new(ENGINE *e, const char *scheme); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_open(OSSL_STORE_LOADER *loader, - OSSL_STORE_open_fn open_function); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_open_ex(OSSL_STORE_LOADER *loader, - OSSL_STORE_open_ex_fn open_ex_function); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_attach(OSSL_STORE_LOADER *loader, - OSSL_STORE_attach_fn attach_function); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_ctrl(OSSL_STORE_LOADER *loader, - OSSL_STORE_ctrl_fn ctrl_function); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_expect(OSSL_STORE_LOADER *loader, - OSSL_STORE_expect_fn expect_function); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_find(OSSL_STORE_LOADER *loader, - OSSL_STORE_find_fn find_function); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_load(OSSL_STORE_LOADER *loader, - OSSL_STORE_load_fn load_function); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_eof(OSSL_STORE_LOADER *loader, - OSSL_STORE_eof_fn eof_function); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_error(OSSL_STORE_LOADER *loader, - OSSL_STORE_error_fn error_function); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_close(OSSL_STORE_LOADER *loader, - OSSL_STORE_close_fn close_function); -OSSL_DEPRECATEDIN_3_0 -const ENGINE *OSSL_STORE_LOADER_get0_engine(const OSSL_STORE_LOADER *loader); -OSSL_DEPRECATEDIN_3_0 -const char *OSSL_STORE_LOADER_get0_scheme(const OSSL_STORE_LOADER *loader); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_register_loader(OSSL_STORE_LOADER *loader); -OSSL_DEPRECATEDIN_3_0 -OSSL_STORE_LOADER *OSSL_STORE_unregister_loader(const char *scheme); -# endif - -/*- - * Functions to list STORE loaders - * ------------------------------- - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_do_all_loaders(void (*do_function)(const OSSL_STORE_LOADER *loader, - void *do_arg), - void *do_arg); -# endif - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/storeerr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/storeerr.h deleted file mode 100644 index 00529c8..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/storeerr.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_STOREERR_H -# define OPENSSL_STOREERR_H -# pragma once - -# include -# include -# include - - - -/* - * OSSL_STORE reason codes. - */ -# define OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE 107 -# define OSSL_STORE_R_BAD_PASSWORD_READ 115 -# define OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC 113 -# define OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST 121 -# define OSSL_STORE_R_INVALID_SCHEME 106 -# define OSSL_STORE_R_IS_NOT_A 112 -# define OSSL_STORE_R_LOADER_INCOMPLETE 116 -# define OSSL_STORE_R_LOADING_STARTED 117 -# define OSSL_STORE_R_NOT_A_CERTIFICATE 100 -# define OSSL_STORE_R_NOT_A_CRL 101 -# define OSSL_STORE_R_NOT_A_NAME 103 -# define OSSL_STORE_R_NOT_A_PRIVATE_KEY 102 -# define OSSL_STORE_R_NOT_A_PUBLIC_KEY 122 -# define OSSL_STORE_R_NOT_PARAMETERS 104 -# define OSSL_STORE_R_NO_LOADERS_FOUND 123 -# define OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR 114 -# define OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE 108 -# define OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES 119 -# define OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED 109 -# define OSSL_STORE_R_UNREGISTERED_SCHEME 105 -# define OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE 110 -# define OSSL_STORE_R_UNSUPPORTED_OPERATION 118 -# define OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE 120 -# define OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED 111 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/symhacks.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/symhacks.h deleted file mode 100644 index 816f8f9..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/symhacks.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_SYMHACKS_H -# define OPENSSL_SYMHACKS_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_SYMHACKS_H -# endif - -# include - -/* Case insensitive linking causes problems.... */ -# if defined(OPENSSL_SYS_VMS) -# undef ERR_load_CRYPTO_strings -# define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings -# undef OCSP_crlID_new -# define OCSP_crlID_new OCSP_crlID2_new - -# undef d2i_ECPARAMETERS -# define d2i_ECPARAMETERS d2i_UC_ECPARAMETERS -# undef i2d_ECPARAMETERS -# define i2d_ECPARAMETERS i2d_UC_ECPARAMETERS -# undef d2i_ECPKPARAMETERS -# define d2i_ECPKPARAMETERS d2i_UC_ECPKPARAMETERS -# undef i2d_ECPKPARAMETERS -# define i2d_ECPKPARAMETERS i2d_UC_ECPKPARAMETERS - -# endif - -#endif /* ! defined HEADER_VMS_IDHACKS_H */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/thread.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/thread.h deleted file mode 100644 index 3926ce5..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/thread.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_THREAD_H -# define OPENSSL_THREAD_H - -# define OSSL_THREAD_SUPPORT_FLAG_THREAD_POOL (1U<<0) -# define OSSL_THREAD_SUPPORT_FLAG_DEFAULT_SPAWN (1U<<1) - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -uint32_t OSSL_get_thread_support_flags(void); -int OSSL_set_max_threads(OSSL_LIB_CTX *ctx, uint64_t max_threads); -uint64_t OSSL_get_max_threads(OSSL_LIB_CTX *ctx); - -# ifdef __cplusplus -} -# endif - -#endif /* OPENSSL_THREAD_H */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/tls1.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/tls1.h deleted file mode 100644 index 50910d0..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/tls1.h +++ /dev/null @@ -1,1226 +0,0 @@ -/* - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * Copyright 2005 Nokia. All rights reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_TLS1_H -# define OPENSSL_TLS1_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_TLS1_H -# endif - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Default security level if not overridden at config time */ -# ifndef OPENSSL_TLS_SECURITY_LEVEL -# define OPENSSL_TLS_SECURITY_LEVEL 2 -# endif - -/* TLS*_VERSION constants are defined in prov_ssl.h */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define TLS_MAX_VERSION TLS1_3_VERSION -# endif - -/* Special value for method supporting multiple versions */ -# define TLS_ANY_VERSION 0x10000 - -# define TLS1_VERSION_MAJOR 0x03 -# define TLS1_VERSION_MINOR 0x01 - -# define TLS1_1_VERSION_MAJOR 0x03 -# define TLS1_1_VERSION_MINOR 0x02 - -# define TLS1_2_VERSION_MAJOR 0x03 -# define TLS1_2_VERSION_MINOR 0x03 - -# define TLS1_get_version(s) \ - ((SSL_version(s) >> 8) == TLS1_VERSION_MAJOR ? SSL_version(s) : 0) - -# define TLS1_get_client_version(s) \ - ((SSL_client_version(s) >> 8) == TLS1_VERSION_MAJOR ? SSL_client_version(s) : 0) - -# define TLS1_AD_DECRYPTION_FAILED 21 -# define TLS1_AD_RECORD_OVERFLOW 22 -# define TLS1_AD_UNKNOWN_CA 48/* fatal */ -# define TLS1_AD_ACCESS_DENIED 49/* fatal */ -# define TLS1_AD_DECODE_ERROR 50/* fatal */ -# define TLS1_AD_DECRYPT_ERROR 51 -# define TLS1_AD_EXPORT_RESTRICTION 60/* fatal */ -# define TLS1_AD_PROTOCOL_VERSION 70/* fatal */ -# define TLS1_AD_INSUFFICIENT_SECURITY 71/* fatal */ -# define TLS1_AD_INTERNAL_ERROR 80/* fatal */ -# define TLS1_AD_INAPPROPRIATE_FALLBACK 86/* fatal */ -# define TLS1_AD_USER_CANCELLED 90 -# define TLS1_AD_NO_RENEGOTIATION 100 -/* TLSv1.3 alerts */ -# define TLS13_AD_MISSING_EXTENSION 109 /* fatal */ -# define TLS13_AD_CERTIFICATE_REQUIRED 116 /* fatal */ -/* codes 110-114 are from RFC3546 */ -# define TLS1_AD_UNSUPPORTED_EXTENSION 110 -# define TLS1_AD_CERTIFICATE_UNOBTAINABLE 111 -# define TLS1_AD_UNRECOGNIZED_NAME 112 -# define TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE 113 -# define TLS1_AD_BAD_CERTIFICATE_HASH_VALUE 114 -# define TLS1_AD_UNKNOWN_PSK_IDENTITY 115/* fatal */ -# define TLS1_AD_NO_APPLICATION_PROTOCOL 120 /* fatal */ - -/* ExtensionType values from RFC3546 / RFC4366 / RFC6066 */ -# define TLSEXT_TYPE_server_name 0 -# define TLSEXT_TYPE_max_fragment_length 1 -# define TLSEXT_TYPE_client_certificate_url 2 -# define TLSEXT_TYPE_trusted_ca_keys 3 -# define TLSEXT_TYPE_truncated_hmac 4 -# define TLSEXT_TYPE_status_request 5 -/* ExtensionType values from RFC4681 */ -# define TLSEXT_TYPE_user_mapping 6 -/* ExtensionType values from RFC5878 */ -# define TLSEXT_TYPE_client_authz 7 -# define TLSEXT_TYPE_server_authz 8 -/* ExtensionType values from RFC6091 */ -# define TLSEXT_TYPE_cert_type 9 - -/* ExtensionType values from RFC4492 */ -/* - * Prior to TLSv1.3 the supported_groups extension was known as - * elliptic_curves - */ -# define TLSEXT_TYPE_supported_groups 10 -# define TLSEXT_TYPE_elliptic_curves TLSEXT_TYPE_supported_groups -# define TLSEXT_TYPE_ec_point_formats 11 - - -/* ExtensionType value from RFC5054 */ -# define TLSEXT_TYPE_srp 12 - -/* ExtensionType values from RFC5246 */ -# define TLSEXT_TYPE_signature_algorithms 13 - -/* ExtensionType value from RFC5764 */ -# define TLSEXT_TYPE_use_srtp 14 - -/* ExtensionType value from RFC7301 */ -# define TLSEXT_TYPE_application_layer_protocol_negotiation 16 - -/* - * Extension type for Certificate Transparency - * https://tools.ietf.org/html/rfc6962#section-3.3.1 - */ -# define TLSEXT_TYPE_signed_certificate_timestamp 18 - -/* - * Extension type for Raw Public Keys - * https://tools.ietf.org/html/rfc7250 - * https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml - */ -# define TLSEXT_TYPE_client_cert_type 19 -# define TLSEXT_TYPE_server_cert_type 20 - -/* - * ExtensionType value for TLS padding extension. - * http://tools.ietf.org/html/draft-agl-tls-padding - */ -# define TLSEXT_TYPE_padding 21 - -/* ExtensionType value from RFC7366 */ -# define TLSEXT_TYPE_encrypt_then_mac 22 - -/* ExtensionType value from RFC7627 */ -# define TLSEXT_TYPE_extended_master_secret 23 - -/* ExtensionType value from RFC8879 */ -# define TLSEXT_TYPE_compress_certificate 27 - -/* ExtensionType value from RFC4507 */ -# define TLSEXT_TYPE_session_ticket 35 - -/* As defined for TLS1.3 */ -# define TLSEXT_TYPE_psk 41 -# define TLSEXT_TYPE_early_data 42 -# define TLSEXT_TYPE_supported_versions 43 -# define TLSEXT_TYPE_cookie 44 -# define TLSEXT_TYPE_psk_kex_modes 45 -# define TLSEXT_TYPE_certificate_authorities 47 -# define TLSEXT_TYPE_post_handshake_auth 49 -# define TLSEXT_TYPE_signature_algorithms_cert 50 -# define TLSEXT_TYPE_key_share 51 -# define TLSEXT_TYPE_quic_transport_parameters 57 - -/* Temporary extension type */ -# define TLSEXT_TYPE_renegotiate 0xff01 - -# ifndef OPENSSL_NO_NEXTPROTONEG -/* This is not an IANA defined extension number */ -# define TLSEXT_TYPE_next_proto_neg 13172 -# endif - -/* NameType value from RFC3546 */ -# define TLSEXT_NAMETYPE_host_name 0 -/* status request value from RFC3546 */ -# define TLSEXT_STATUSTYPE_ocsp 1 - -/* ECPointFormat values from RFC4492 */ -# define TLSEXT_ECPOINTFORMAT_first 0 -# define TLSEXT_ECPOINTFORMAT_uncompressed 0 -# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime 1 -# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2 2 -# define TLSEXT_ECPOINTFORMAT_last 2 - -/* Signature and hash algorithms from RFC5246 */ -# define TLSEXT_signature_anonymous 0 -# define TLSEXT_signature_rsa 1 -# define TLSEXT_signature_dsa 2 -# define TLSEXT_signature_ecdsa 3 -# define TLSEXT_signature_gostr34102001 237 -# define TLSEXT_signature_gostr34102012_256 238 -# define TLSEXT_signature_gostr34102012_512 239 - -/* Total number of different signature algorithms */ -# define TLSEXT_signature_num 7 - -# define TLSEXT_hash_none 0 -# define TLSEXT_hash_md5 1 -# define TLSEXT_hash_sha1 2 -# define TLSEXT_hash_sha224 3 -# define TLSEXT_hash_sha256 4 -# define TLSEXT_hash_sha384 5 -# define TLSEXT_hash_sha512 6 -# define TLSEXT_hash_gostr3411 237 -# define TLSEXT_hash_gostr34112012_256 238 -# define TLSEXT_hash_gostr34112012_512 239 - -/* Total number of different digest algorithms */ - -# define TLSEXT_hash_num 10 - -/* Possible compression values from RFC8879 */ -/* Not defined in RFC8879, but used internally for no-compression */ -# define TLSEXT_comp_cert_none 0 -# define TLSEXT_comp_cert_zlib 1 -# define TLSEXT_comp_cert_brotli 2 -# define TLSEXT_comp_cert_zstd 3 -/* one more than the number of defined values - used as size of 0-terminated array */ -# define TLSEXT_comp_cert_limit 4 - -/* Flag set for unrecognised algorithms */ -# define TLSEXT_nid_unknown 0x1000000 - -/* ECC curves */ - -# define TLSEXT_curve_P_256 23 -# define TLSEXT_curve_P_384 24 - -/* OpenSSL value to disable maximum fragment length extension */ -# define TLSEXT_max_fragment_length_DISABLED 0 -/* Allowed values for max fragment length extension */ -# define TLSEXT_max_fragment_length_512 1 -# define TLSEXT_max_fragment_length_1024 2 -# define TLSEXT_max_fragment_length_2048 3 -# define TLSEXT_max_fragment_length_4096 4 -/* OpenSSL value for unset maximum fragment length extension */ -# define TLSEXT_max_fragment_length_UNSPECIFIED 255 - -/* - * TLS Certificate Type (for RFC7250) - * https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#tls-extensiontype-values-3 - */ -# define TLSEXT_cert_type_x509 0 -# define TLSEXT_cert_type_pgp 1 /* recognized, but not supported */ -# define TLSEXT_cert_type_rpk 2 -# define TLSEXT_cert_type_1609dot2 3 /* recognized, but not supported */ - -int SSL_CTX_set_tlsext_max_fragment_length(SSL_CTX *ctx, uint8_t mode); -int SSL_set_tlsext_max_fragment_length(SSL *ssl, uint8_t mode); - -# define TLSEXT_MAXLEN_host_name 255 - -__owur const char *SSL_get_servername(const SSL *s, const int type); -__owur int SSL_get_servername_type(const SSL *s); -/* - * SSL_export_keying_material exports a value derived from the master secret, - * as specified in RFC 5705. It writes |olen| bytes to |out| given a label and - * optional context. (Since a zero length context is allowed, the |use_context| - * flag controls whether a context is included.) It returns 1 on success and - * 0 or -1 otherwise. - */ -__owur int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, - const char *label, size_t llen, - const unsigned char *context, - size_t contextlen, int use_context); - -/* - * SSL_export_keying_material_early exports a value derived from the - * early exporter master secret, as specified in - * https://tools.ietf.org/html/draft-ietf-tls-tls13-23. It writes - * |olen| bytes to |out| given a label and optional context. It - * returns 1 on success and 0 otherwise. - */ -__owur int SSL_export_keying_material_early(SSL *s, unsigned char *out, - size_t olen, const char *label, - size_t llen, - const unsigned char *context, - size_t contextlen); - -int SSL_get_peer_signature_type_nid(const SSL *s, int *pnid); -int SSL_get_signature_type_nid(const SSL *s, int *pnid); - -int SSL_get_sigalgs(SSL *s, int idx, - int *psign, int *phash, int *psignandhash, - unsigned char *rsig, unsigned char *rhash); - -char *SSL_get1_builtin_sigalgs(OSSL_LIB_CTX *libctx); - -int SSL_get_shared_sigalgs(SSL *s, int idx, - int *psign, int *phash, int *psignandhash, - unsigned char *rsig, unsigned char *rhash); - -__owur int SSL_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, STACK_OF(X509) *chain); - -# define SSL_set_tlsext_host_name(s,name) \ - SSL_ctrl(s,SSL_CTRL_SET_TLSEXT_HOSTNAME,TLSEXT_NAMETYPE_host_name,\ - (void *)name) - -# define SSL_set_tlsext_debug_callback(ssl, cb) \ - SSL_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_CB,\ - (void (*)(void))cb) - -# define SSL_set_tlsext_debug_arg(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_ARG,0,arg) - -# define SSL_get_tlsext_status_type(ssl) \ - SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE,0,NULL) - -# define SSL_set_tlsext_status_type(ssl, type) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE,type,NULL) - -# define SSL_get_tlsext_status_exts(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS,0,arg) - -# define SSL_set_tlsext_status_exts(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS,0,arg) - -# define SSL_get_tlsext_status_ids(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS,0,arg) - -# define SSL_set_tlsext_status_ids(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS,0,arg) - -# define SSL_get_tlsext_status_ocsp_resp(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP,0,arg) - -# define SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP,arglen,arg) - -# define SSL_get0_tlsext_status_ocsp_resp_ex(ssl, arg) \ - SSL_ctrl(ssl, SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP_EX, 0, arg) - -# define SSL_set0_tlsext_status_ocsp_resp_ex(ssl, arg) \ - SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP_EX, 0, arg) - -# define SSL_CTX_set_tlsext_servername_callback(ctx, cb) \ - SSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_CB,\ - (void (*)(void))cb) - -# define SSL_TLSEXT_ERR_OK 0 -# define SSL_TLSEXT_ERR_ALERT_WARNING 1 -# define SSL_TLSEXT_ERR_ALERT_FATAL 2 -# define SSL_TLSEXT_ERR_NOACK 3 - -# define SSL_CTX_set_tlsext_servername_arg(ctx, arg) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG,0,arg) - -# define SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_TLSEXT_TICKET_KEYS,keylen,keys) -# define SSL_CTX_set_tlsext_ticket_keys(ctx, keys, keylen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_TICKET_KEYS,keylen,keys) - -# define SSL_CTX_get_tlsext_status_cb(ssl, cb) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB,0,(void *)cb) -# define SSL_CTX_set_tlsext_status_cb(ssl, cb) \ - SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB,\ - (void (*)(void))cb) - -# define SSL_CTX_get_tlsext_status_arg(ssl, arg) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG,0,arg) -# define SSL_CTX_set_tlsext_status_arg(ssl, arg) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG,0,arg) - -# define SSL_CTX_set_tlsext_status_type(ssl, type) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE,type,NULL) - -# define SSL_CTX_get_tlsext_status_type(ssl) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE,0,NULL) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SSL_CTX_set_tlsext_ticket_key_cb(ssl, cb) \ - SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,\ - (void (*)(void))cb) -# endif -int SSL_CTX_set_tlsext_ticket_key_evp_cb - (SSL_CTX *ctx, int (*fp)(SSL *, unsigned char *, unsigned char *, - EVP_CIPHER_CTX *, EVP_MAC_CTX *, int)); - -/* PSK ciphersuites from 4279 */ -# define TLS1_CK_PSK_WITH_RC4_128_SHA 0x0300008A -# define TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008B -# define TLS1_CK_PSK_WITH_AES_128_CBC_SHA 0x0300008C -# define TLS1_CK_PSK_WITH_AES_256_CBC_SHA 0x0300008D -# define TLS1_CK_DHE_PSK_WITH_RC4_128_SHA 0x0300008E -# define TLS1_CK_DHE_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008F -# define TLS1_CK_DHE_PSK_WITH_AES_128_CBC_SHA 0x03000090 -# define TLS1_CK_DHE_PSK_WITH_AES_256_CBC_SHA 0x03000091 -# define TLS1_CK_RSA_PSK_WITH_RC4_128_SHA 0x03000092 -# define TLS1_CK_RSA_PSK_WITH_3DES_EDE_CBC_SHA 0x03000093 -# define TLS1_CK_RSA_PSK_WITH_AES_128_CBC_SHA 0x03000094 -# define TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA 0x03000095 - -/* PSK ciphersuites from 5487 */ -# define TLS1_CK_PSK_WITH_AES_128_GCM_SHA256 0x030000A8 -# define TLS1_CK_PSK_WITH_AES_256_GCM_SHA384 0x030000A9 -# define TLS1_CK_DHE_PSK_WITH_AES_128_GCM_SHA256 0x030000AA -# define TLS1_CK_DHE_PSK_WITH_AES_256_GCM_SHA384 0x030000AB -# define TLS1_CK_RSA_PSK_WITH_AES_128_GCM_SHA256 0x030000AC -# define TLS1_CK_RSA_PSK_WITH_AES_256_GCM_SHA384 0x030000AD -# define TLS1_CK_PSK_WITH_AES_128_CBC_SHA256 0x030000AE -# define TLS1_CK_PSK_WITH_AES_256_CBC_SHA384 0x030000AF -# define TLS1_CK_PSK_WITH_NULL_SHA256 0x030000B0 -# define TLS1_CK_PSK_WITH_NULL_SHA384 0x030000B1 -# define TLS1_CK_DHE_PSK_WITH_AES_128_CBC_SHA256 0x030000B2 -# define TLS1_CK_DHE_PSK_WITH_AES_256_CBC_SHA384 0x030000B3 -# define TLS1_CK_DHE_PSK_WITH_NULL_SHA256 0x030000B4 -# define TLS1_CK_DHE_PSK_WITH_NULL_SHA384 0x030000B5 -# define TLS1_CK_RSA_PSK_WITH_AES_128_CBC_SHA256 0x030000B6 -# define TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA384 0x030000B7 -# define TLS1_CK_RSA_PSK_WITH_NULL_SHA256 0x030000B8 -# define TLS1_CK_RSA_PSK_WITH_NULL_SHA384 0x030000B9 - -/* NULL PSK ciphersuites from RFC4785 */ -# define TLS1_CK_PSK_WITH_NULL_SHA 0x0300002C -# define TLS1_CK_DHE_PSK_WITH_NULL_SHA 0x0300002D -# define TLS1_CK_RSA_PSK_WITH_NULL_SHA 0x0300002E - -/* AES ciphersuites from RFC3268 */ -# define TLS1_CK_RSA_WITH_AES_128_SHA 0x0300002F -# define TLS1_CK_DH_DSS_WITH_AES_128_SHA 0x03000030 -# define TLS1_CK_DH_RSA_WITH_AES_128_SHA 0x03000031 -# define TLS1_CK_DHE_DSS_WITH_AES_128_SHA 0x03000032 -# define TLS1_CK_DHE_RSA_WITH_AES_128_SHA 0x03000033 -# define TLS1_CK_ADH_WITH_AES_128_SHA 0x03000034 -# define TLS1_CK_RSA_WITH_AES_256_SHA 0x03000035 -# define TLS1_CK_DH_DSS_WITH_AES_256_SHA 0x03000036 -# define TLS1_CK_DH_RSA_WITH_AES_256_SHA 0x03000037 -# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA 0x03000038 -# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA 0x03000039 -# define TLS1_CK_ADH_WITH_AES_256_SHA 0x0300003A - -/* TLS v1.2 ciphersuites */ -# define TLS1_CK_RSA_WITH_NULL_SHA256 0x0300003B -# define TLS1_CK_RSA_WITH_AES_128_SHA256 0x0300003C -# define TLS1_CK_RSA_WITH_AES_256_SHA256 0x0300003D -# define TLS1_CK_DH_DSS_WITH_AES_128_SHA256 0x0300003E -# define TLS1_CK_DH_RSA_WITH_AES_128_SHA256 0x0300003F -# define TLS1_CK_DHE_DSS_WITH_AES_128_SHA256 0x03000040 - -/* Camellia ciphersuites from RFC4132 */ -# define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000041 -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000042 -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000043 -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000044 -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000045 -# define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA 0x03000046 - -/* TLS v1.2 ciphersuites */ -# define TLS1_CK_DHE_RSA_WITH_AES_128_SHA256 0x03000067 -# define TLS1_CK_DH_DSS_WITH_AES_256_SHA256 0x03000068 -# define TLS1_CK_DH_RSA_WITH_AES_256_SHA256 0x03000069 -# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA256 0x0300006A -# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA256 0x0300006B -# define TLS1_CK_ADH_WITH_AES_128_SHA256 0x0300006C -# define TLS1_CK_ADH_WITH_AES_256_SHA256 0x0300006D - -/* Camellia ciphersuites from RFC4132 */ -# define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000084 -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000085 -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000086 -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000087 -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000088 -# define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA 0x03000089 - -/* SEED ciphersuites from RFC4162 */ -# define TLS1_CK_RSA_WITH_SEED_SHA 0x03000096 -# define TLS1_CK_DH_DSS_WITH_SEED_SHA 0x03000097 -# define TLS1_CK_DH_RSA_WITH_SEED_SHA 0x03000098 -# define TLS1_CK_DHE_DSS_WITH_SEED_SHA 0x03000099 -# define TLS1_CK_DHE_RSA_WITH_SEED_SHA 0x0300009A -# define TLS1_CK_ADH_WITH_SEED_SHA 0x0300009B - -/* TLS v1.2 GCM ciphersuites from RFC5288 */ -# define TLS1_CK_RSA_WITH_AES_128_GCM_SHA256 0x0300009C -# define TLS1_CK_RSA_WITH_AES_256_GCM_SHA384 0x0300009D -# define TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256 0x0300009E -# define TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384 0x0300009F -# define TLS1_CK_DH_RSA_WITH_AES_128_GCM_SHA256 0x030000A0 -# define TLS1_CK_DH_RSA_WITH_AES_256_GCM_SHA384 0x030000A1 -# define TLS1_CK_DHE_DSS_WITH_AES_128_GCM_SHA256 0x030000A2 -# define TLS1_CK_DHE_DSS_WITH_AES_256_GCM_SHA384 0x030000A3 -# define TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256 0x030000A4 -# define TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384 0x030000A5 -# define TLS1_CK_ADH_WITH_AES_128_GCM_SHA256 0x030000A6 -# define TLS1_CK_ADH_WITH_AES_256_GCM_SHA384 0x030000A7 - -/* CCM ciphersuites from RFC6655 */ -# define TLS1_CK_RSA_WITH_AES_128_CCM 0x0300C09C -# define TLS1_CK_RSA_WITH_AES_256_CCM 0x0300C09D -# define TLS1_CK_DHE_RSA_WITH_AES_128_CCM 0x0300C09E -# define TLS1_CK_DHE_RSA_WITH_AES_256_CCM 0x0300C09F -# define TLS1_CK_RSA_WITH_AES_128_CCM_8 0x0300C0A0 -# define TLS1_CK_RSA_WITH_AES_256_CCM_8 0x0300C0A1 -# define TLS1_CK_DHE_RSA_WITH_AES_128_CCM_8 0x0300C0A2 -# define TLS1_CK_DHE_RSA_WITH_AES_256_CCM_8 0x0300C0A3 -# define TLS1_CK_PSK_WITH_AES_128_CCM 0x0300C0A4 -# define TLS1_CK_PSK_WITH_AES_256_CCM 0x0300C0A5 -# define TLS1_CK_DHE_PSK_WITH_AES_128_CCM 0x0300C0A6 -# define TLS1_CK_DHE_PSK_WITH_AES_256_CCM 0x0300C0A7 -# define TLS1_CK_PSK_WITH_AES_128_CCM_8 0x0300C0A8 -# define TLS1_CK_PSK_WITH_AES_256_CCM_8 0x0300C0A9 -# define TLS1_CK_DHE_PSK_WITH_AES_128_CCM_8 0x0300C0AA -# define TLS1_CK_DHE_PSK_WITH_AES_256_CCM_8 0x0300C0AB - -/* CCM ciphersuites from RFC7251 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM 0x0300C0AC -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM 0x0300C0AD -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM_8 0x0300C0AE -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM_8 0x0300C0AF - -/* TLS 1.2 Camellia SHA-256 ciphersuites from RFC5932 */ -# define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BA -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x030000BB -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BC -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x030000BD -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BE -# define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA256 0x030000BF - -# define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C0 -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x030000C1 -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C2 -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x030000C3 -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C4 -# define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA256 0x030000C5 - -/* ECC ciphersuites from RFC4492 */ -# define TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA 0x0300C001 -# define TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA 0x0300C002 -# define TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C003 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0x0300C004 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0x0300C005 - -# define TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA 0x0300C006 -# define TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA 0x0300C007 -# define TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C008 -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0x0300C009 -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0x0300C00A - -# define TLS1_CK_ECDH_RSA_WITH_NULL_SHA 0x0300C00B -# define TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA 0x0300C00C -# define TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA 0x0300C00D -# define TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA 0x0300C00E -# define TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA 0x0300C00F - -# define TLS1_CK_ECDHE_RSA_WITH_NULL_SHA 0x0300C010 -# define TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA 0x0300C011 -# define TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA 0x0300C012 -# define TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA 0x0300C013 -# define TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA 0x0300C014 - -# define TLS1_CK_ECDH_anon_WITH_NULL_SHA 0x0300C015 -# define TLS1_CK_ECDH_anon_WITH_RC4_128_SHA 0x0300C016 -# define TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA 0x0300C017 -# define TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA 0x0300C018 -# define TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA 0x0300C019 - -/* SRP ciphersuites from RFC 5054 */ -# define TLS1_CK_SRP_SHA_WITH_3DES_EDE_CBC_SHA 0x0300C01A -# define TLS1_CK_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA 0x0300C01B -# define TLS1_CK_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA 0x0300C01C -# define TLS1_CK_SRP_SHA_WITH_AES_128_CBC_SHA 0x0300C01D -# define TLS1_CK_SRP_SHA_RSA_WITH_AES_128_CBC_SHA 0x0300C01E -# define TLS1_CK_SRP_SHA_DSS_WITH_AES_128_CBC_SHA 0x0300C01F -# define TLS1_CK_SRP_SHA_WITH_AES_256_CBC_SHA 0x0300C020 -# define TLS1_CK_SRP_SHA_RSA_WITH_AES_256_CBC_SHA 0x0300C021 -# define TLS1_CK_SRP_SHA_DSS_WITH_AES_256_CBC_SHA 0x0300C022 - -/* ECDH HMAC based ciphersuites from RFC5289 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256 0x0300C023 -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384 0x0300C024 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_SHA256 0x0300C025 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_SHA384 0x0300C026 -# define TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256 0x0300C027 -# define TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384 0x0300C028 -# define TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256 0x0300C029 -# define TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384 0x0300C02A - -/* ECDH GCM based ciphersuites from RFC5289 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02B -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02C -# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02D -# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02E -# define TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0x0300C02F -# define TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0x0300C030 -# define TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256 0x0300C031 -# define TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 0x0300C032 - -/* ECDHE PSK ciphersuites from RFC5489 */ -# define TLS1_CK_ECDHE_PSK_WITH_RC4_128_SHA 0x0300C033 -# define TLS1_CK_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA 0x0300C034 -# define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA 0x0300C035 -# define TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA 0x0300C036 - -# define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA256 0x0300C037 -# define TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA384 0x0300C038 - -/* NULL PSK ciphersuites from RFC4785 */ -# define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA 0x0300C039 -# define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA256 0x0300C03A -# define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA384 0x0300C03B - -/* Camellia-CBC ciphersuites from RFC6367 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C072 -# define TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C073 -# define TLS1_CK_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C074 -# define TLS1_CK_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C075 -# define TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C076 -# define TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C077 -# define TLS1_CK_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C078 -# define TLS1_CK_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C079 - -# define TLS1_CK_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C094 -# define TLS1_CK_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C095 -# define TLS1_CK_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C096 -# define TLS1_CK_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C097 -# define TLS1_CK_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C098 -# define TLS1_CK_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C099 -# define TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C09A -# define TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C09B - -/* draft-ietf-tls-chacha20-poly1305-03 */ -# define TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCA8 -# define TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 0x0300CCA9 -# define TLS1_CK_DHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCAA -# define TLS1_CK_PSK_WITH_CHACHA20_POLY1305 0x0300CCAB -# define TLS1_CK_ECDHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAC -# define TLS1_CK_DHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAD -# define TLS1_CK_RSA_PSK_WITH_CHACHA20_POLY1305 0x0300CCAE - -/* TLS v1.3 ciphersuites */ -# define TLS1_3_CK_AES_128_GCM_SHA256 0x03001301 -# define TLS1_3_CK_AES_256_GCM_SHA384 0x03001302 -# define TLS1_3_CK_CHACHA20_POLY1305_SHA256 0x03001303 -# define TLS1_3_CK_AES_128_CCM_SHA256 0x03001304 -# define TLS1_3_CK_AES_128_CCM_8_SHA256 0x03001305 - -/* Integrity-only ciphersuites from RFC 9150 */ -# define TLS1_3_CK_SHA256_SHA256 0x0300C0B4 -# define TLS1_3_CK_SHA384_SHA384 0x0300C0B5 - -/* Aria ciphersuites from RFC6209 */ -# define TLS1_CK_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C050 -# define TLS1_CK_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C051 -# define TLS1_CK_DHE_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C052 -# define TLS1_CK_DHE_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C053 -# define TLS1_CK_DH_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C054 -# define TLS1_CK_DH_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C055 -# define TLS1_CK_DHE_DSS_WITH_ARIA_128_GCM_SHA256 0x0300C056 -# define TLS1_CK_DHE_DSS_WITH_ARIA_256_GCM_SHA384 0x0300C057 -# define TLS1_CK_DH_DSS_WITH_ARIA_128_GCM_SHA256 0x0300C058 -# define TLS1_CK_DH_DSS_WITH_ARIA_256_GCM_SHA384 0x0300C059 -# define TLS1_CK_DH_anon_WITH_ARIA_128_GCM_SHA256 0x0300C05A -# define TLS1_CK_DH_anon_WITH_ARIA_256_GCM_SHA384 0x0300C05B -# define TLS1_CK_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 0x0300C05C -# define TLS1_CK_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 0x0300C05D -# define TLS1_CK_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 0x0300C05E -# define TLS1_CK_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 0x0300C05F -# define TLS1_CK_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C060 -# define TLS1_CK_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C061 -# define TLS1_CK_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C062 -# define TLS1_CK_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C063 -# define TLS1_CK_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06A -# define TLS1_CK_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06B -# define TLS1_CK_DHE_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06C -# define TLS1_CK_DHE_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06D -# define TLS1_CK_RSA_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06E -# define TLS1_CK_RSA_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06F - -/* a bundle of RFC standard cipher names, generated from ssl3_ciphers[] */ -# define TLS1_RFC_RSA_WITH_AES_128_SHA "TLS_RSA_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_DHE_DSS_WITH_AES_128_SHA "TLS_DHE_DSS_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_DHE_RSA_WITH_AES_128_SHA "TLS_DHE_RSA_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_ADH_WITH_AES_128_SHA "TLS_DH_anon_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_RSA_WITH_AES_256_SHA "TLS_RSA_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_DHE_DSS_WITH_AES_256_SHA "TLS_DHE_DSS_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_DHE_RSA_WITH_AES_256_SHA "TLS_DHE_RSA_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_ADH_WITH_AES_256_SHA "TLS_DH_anon_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_RSA_WITH_NULL_SHA256 "TLS_RSA_WITH_NULL_SHA256" -# define TLS1_RFC_RSA_WITH_AES_128_SHA256 "TLS_RSA_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_RSA_WITH_AES_256_SHA256 "TLS_RSA_WITH_AES_256_CBC_SHA256" -# define TLS1_RFC_DHE_DSS_WITH_AES_128_SHA256 "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_DHE_RSA_WITH_AES_128_SHA256 "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_DHE_DSS_WITH_AES_256_SHA256 "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256" -# define TLS1_RFC_DHE_RSA_WITH_AES_256_SHA256 "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256" -# define TLS1_RFC_ADH_WITH_AES_128_SHA256 "TLS_DH_anon_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_ADH_WITH_AES_256_SHA256 "TLS_DH_anon_WITH_AES_256_CBC_SHA256" -# define TLS1_RFC_RSA_WITH_AES_128_GCM_SHA256 "TLS_RSA_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_RSA_WITH_AES_256_GCM_SHA384 "TLS_RSA_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_DHE_RSA_WITH_AES_128_GCM_SHA256 "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_DHE_RSA_WITH_AES_256_GCM_SHA384 "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_DHE_DSS_WITH_AES_128_GCM_SHA256 "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_DHE_DSS_WITH_AES_256_GCM_SHA384 "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_ADH_WITH_AES_128_GCM_SHA256 "TLS_DH_anon_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_ADH_WITH_AES_256_GCM_SHA384 "TLS_DH_anon_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_RSA_WITH_AES_128_CCM "TLS_RSA_WITH_AES_128_CCM" -# define TLS1_RFC_RSA_WITH_AES_256_CCM "TLS_RSA_WITH_AES_256_CCM" -# define TLS1_RFC_DHE_RSA_WITH_AES_128_CCM "TLS_DHE_RSA_WITH_AES_128_CCM" -# define TLS1_RFC_DHE_RSA_WITH_AES_256_CCM "TLS_DHE_RSA_WITH_AES_256_CCM" -# define TLS1_RFC_RSA_WITH_AES_128_CCM_8 "TLS_RSA_WITH_AES_128_CCM_8" -# define TLS1_RFC_RSA_WITH_AES_256_CCM_8 "TLS_RSA_WITH_AES_256_CCM_8" -# define TLS1_RFC_DHE_RSA_WITH_AES_128_CCM_8 "TLS_DHE_RSA_WITH_AES_128_CCM_8" -# define TLS1_RFC_DHE_RSA_WITH_AES_256_CCM_8 "TLS_DHE_RSA_WITH_AES_256_CCM_8" -# define TLS1_RFC_PSK_WITH_AES_128_CCM "TLS_PSK_WITH_AES_128_CCM" -# define TLS1_RFC_PSK_WITH_AES_256_CCM "TLS_PSK_WITH_AES_256_CCM" -# define TLS1_RFC_DHE_PSK_WITH_AES_128_CCM "TLS_DHE_PSK_WITH_AES_128_CCM" -# define TLS1_RFC_DHE_PSK_WITH_AES_256_CCM "TLS_DHE_PSK_WITH_AES_256_CCM" -# define TLS1_RFC_PSK_WITH_AES_128_CCM_8 "TLS_PSK_WITH_AES_128_CCM_8" -# define TLS1_RFC_PSK_WITH_AES_256_CCM_8 "TLS_PSK_WITH_AES_256_CCM_8" -# define TLS1_RFC_DHE_PSK_WITH_AES_128_CCM_8 "TLS_PSK_DHE_WITH_AES_128_CCM_8" -# define TLS1_RFC_DHE_PSK_WITH_AES_256_CCM_8 "TLS_PSK_DHE_WITH_AES_256_CCM_8" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CCM "TLS_ECDHE_ECDSA_WITH_AES_128_CCM" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CCM "TLS_ECDHE_ECDSA_WITH_AES_256_CCM" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CCM_8 "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CCM_8 "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8" -# define TLS1_3_RFC_AES_128_GCM_SHA256 "TLS_AES_128_GCM_SHA256" -# define TLS1_3_RFC_AES_256_GCM_SHA384 "TLS_AES_256_GCM_SHA384" -# define TLS1_3_RFC_CHACHA20_POLY1305_SHA256 "TLS_CHACHA20_POLY1305_SHA256" -# define TLS1_3_RFC_SHA256_SHA256 "TLS_SHA256_SHA256" -# define TLS1_3_RFC_SHA384_SHA384 "TLS_SHA384_SHA384" -# define TLS1_3_RFC_AES_128_CCM_SHA256 "TLS_AES_128_CCM_SHA256" -# define TLS1_3_RFC_AES_128_CCM_8_SHA256 "TLS_AES_128_CCM_8_SHA256" -# define TLS1_RFC_ECDHE_ECDSA_WITH_NULL_SHA "TLS_ECDHE_ECDSA_WITH_NULL_SHA" -# define TLS1_RFC_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_ECDHE_RSA_WITH_NULL_SHA "TLS_ECDHE_RSA_WITH_NULL_SHA" -# define TLS1_RFC_ECDHE_RSA_WITH_DES_192_CBC3_SHA "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_ECDHE_RSA_WITH_AES_128_CBC_SHA "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_ECDHE_RSA_WITH_AES_256_CBC_SHA "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_ECDH_anon_WITH_NULL_SHA "TLS_ECDH_anon_WITH_NULL_SHA" -# define TLS1_RFC_ECDH_anon_WITH_DES_192_CBC3_SHA "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_ECDH_anon_WITH_AES_128_CBC_SHA "TLS_ECDH_anon_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_ECDH_anon_WITH_AES_256_CBC_SHA "TLS_ECDH_anon_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_SHA256 "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_SHA384 "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" -# define TLS1_RFC_ECDHE_RSA_WITH_AES_128_SHA256 "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_ECDHE_RSA_WITH_AES_256_SHA384 "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_PSK_WITH_NULL_SHA "TLS_PSK_WITH_NULL_SHA" -# define TLS1_RFC_DHE_PSK_WITH_NULL_SHA "TLS_DHE_PSK_WITH_NULL_SHA" -# define TLS1_RFC_RSA_PSK_WITH_NULL_SHA "TLS_RSA_PSK_WITH_NULL_SHA" -# define TLS1_RFC_PSK_WITH_3DES_EDE_CBC_SHA "TLS_PSK_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_PSK_WITH_AES_128_CBC_SHA "TLS_PSK_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_PSK_WITH_AES_256_CBC_SHA "TLS_PSK_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_DHE_PSK_WITH_3DES_EDE_CBC_SHA "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_DHE_PSK_WITH_AES_128_CBC_SHA "TLS_DHE_PSK_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_DHE_PSK_WITH_AES_256_CBC_SHA "TLS_DHE_PSK_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_RSA_PSK_WITH_3DES_EDE_CBC_SHA "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_RSA_PSK_WITH_AES_128_CBC_SHA "TLS_RSA_PSK_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_RSA_PSK_WITH_AES_256_CBC_SHA "TLS_RSA_PSK_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_PSK_WITH_AES_128_GCM_SHA256 "TLS_PSK_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_PSK_WITH_AES_256_GCM_SHA384 "TLS_PSK_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_DHE_PSK_WITH_AES_128_GCM_SHA256 "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_DHE_PSK_WITH_AES_256_GCM_SHA384 "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_RSA_PSK_WITH_AES_128_GCM_SHA256 "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_RSA_PSK_WITH_AES_256_GCM_SHA384 "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_PSK_WITH_AES_128_CBC_SHA256 "TLS_PSK_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_PSK_WITH_AES_256_CBC_SHA384 "TLS_PSK_WITH_AES_256_CBC_SHA384" -# define TLS1_RFC_PSK_WITH_NULL_SHA256 "TLS_PSK_WITH_NULL_SHA256" -# define TLS1_RFC_PSK_WITH_NULL_SHA384 "TLS_PSK_WITH_NULL_SHA384" -# define TLS1_RFC_DHE_PSK_WITH_AES_128_CBC_SHA256 "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_DHE_PSK_WITH_AES_256_CBC_SHA384 "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384" -# define TLS1_RFC_DHE_PSK_WITH_NULL_SHA256 "TLS_DHE_PSK_WITH_NULL_SHA256" -# define TLS1_RFC_DHE_PSK_WITH_NULL_SHA384 "TLS_DHE_PSK_WITH_NULL_SHA384" -# define TLS1_RFC_RSA_PSK_WITH_AES_128_CBC_SHA256 "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_RSA_PSK_WITH_AES_256_CBC_SHA384 "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384" -# define TLS1_RFC_RSA_PSK_WITH_NULL_SHA256 "TLS_RSA_PSK_WITH_NULL_SHA256" -# define TLS1_RFC_RSA_PSK_WITH_NULL_SHA384 "TLS_RSA_PSK_WITH_NULL_SHA384" -# define TLS1_RFC_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA "TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_ECDHE_PSK_WITH_AES_128_CBC_SHA "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_ECDHE_PSK_WITH_AES_256_CBC_SHA "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_ECDHE_PSK_WITH_AES_128_CBC_SHA256 "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_ECDHE_PSK_WITH_AES_256_CBC_SHA384 "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384" -# define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA "TLS_ECDHE_PSK_WITH_NULL_SHA" -# define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA256 "TLS_ECDHE_PSK_WITH_NULL_SHA256" -# define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA384 "TLS_ECDHE_PSK_WITH_NULL_SHA384" -# define TLS1_RFC_SRP_SHA_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_SRP_SHA_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_SRP_SHA_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_DHE_RSA_WITH_CHACHA20_POLY1305 "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_ECDHE_RSA_WITH_CHACHA20_POLY1305 "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_PSK_WITH_CHACHA20_POLY1305 "TLS_PSK_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_ECDHE_PSK_WITH_CHACHA20_POLY1305 "TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_DHE_PSK_WITH_CHACHA20_POLY1305 "TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_RSA_PSK_WITH_CHACHA20_POLY1305 "TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_ADH_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_RSA_WITH_CAMELLIA_256_CBC_SHA256 "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256" -# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256" -# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256" -# define TLS1_RFC_ADH_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256" -# define TLS1_RFC_RSA_WITH_CAMELLIA_256_CBC_SHA "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA" -# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA" -# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA" -# define TLS1_RFC_ADH_WITH_CAMELLIA_256_CBC_SHA "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA" -# define TLS1_RFC_RSA_WITH_CAMELLIA_128_CBC_SHA "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA" -# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA" -# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA" -# define TLS1_RFC_ADH_WITH_CAMELLIA_128_CBC_SHA "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA" -# define TLS1_RFC_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384" -# define TLS1_RFC_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384" -# define TLS1_RFC_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384" -# define TLS1_RFC_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384" -# define TLS1_RFC_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384" -# define TLS1_RFC_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384" -# define TLS1_RFC_RSA_WITH_SEED_SHA "TLS_RSA_WITH_SEED_CBC_SHA" -# define TLS1_RFC_DHE_DSS_WITH_SEED_SHA "TLS_DHE_DSS_WITH_SEED_CBC_SHA" -# define TLS1_RFC_DHE_RSA_WITH_SEED_SHA "TLS_DHE_RSA_WITH_SEED_CBC_SHA" -# define TLS1_RFC_ADH_WITH_SEED_SHA "TLS_DH_anon_WITH_SEED_CBC_SHA" -# define TLS1_RFC_ECDHE_PSK_WITH_RC4_128_SHA "TLS_ECDHE_PSK_WITH_RC4_128_SHA" -# define TLS1_RFC_ECDH_anon_WITH_RC4_128_SHA "TLS_ECDH_anon_WITH_RC4_128_SHA" -# define TLS1_RFC_ECDHE_ECDSA_WITH_RC4_128_SHA "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA" -# define TLS1_RFC_ECDHE_RSA_WITH_RC4_128_SHA "TLS_ECDHE_RSA_WITH_RC4_128_SHA" -# define TLS1_RFC_PSK_WITH_RC4_128_SHA "TLS_PSK_WITH_RC4_128_SHA" -# define TLS1_RFC_RSA_PSK_WITH_RC4_128_SHA "TLS_RSA_PSK_WITH_RC4_128_SHA" -# define TLS1_RFC_DHE_PSK_WITH_RC4_128_SHA "TLS_DHE_PSK_WITH_RC4_128_SHA" -# define TLS1_RFC_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_RSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_RSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_DHE_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_DHE_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_DH_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_DH_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_DHE_DSS_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_DHE_DSS_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_DH_DSS_WITH_ARIA_128_GCM_SHA256 "TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_DH_DSS_WITH_ARIA_256_GCM_SHA384 "TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_DH_anon_WITH_ARIA_128_GCM_SHA256 "TLS_DH_anon_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_DH_anon_WITH_ARIA_256_GCM_SHA384 "TLS_DH_anon_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_PSK_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_PSK_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_DHE_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_DHE_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_RSA_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_RSA_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384" - - -/* - * XXX Backward compatibility alert: Older versions of OpenSSL gave some DHE - * ciphers names with "EDH" instead of "DHE". Going forward, we should be - * using DHE everywhere, though we may indefinitely maintain aliases for - * users or configurations that used "EDH" - */ -# define TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA "DHE-DSS-RC4-SHA" - -# define TLS1_TXT_PSK_WITH_NULL_SHA "PSK-NULL-SHA" -# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA "DHE-PSK-NULL-SHA" -# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA "RSA-PSK-NULL-SHA" - -/* AES ciphersuites from RFC3268 */ -# define TLS1_TXT_RSA_WITH_AES_128_SHA "AES128-SHA" -# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA "DH-DSS-AES128-SHA" -# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA "DH-RSA-AES128-SHA" -# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA "DHE-DSS-AES128-SHA" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA "DHE-RSA-AES128-SHA" -# define TLS1_TXT_ADH_WITH_AES_128_SHA "ADH-AES128-SHA" - -# define TLS1_TXT_RSA_WITH_AES_256_SHA "AES256-SHA" -# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA "DH-DSS-AES256-SHA" -# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA "DH-RSA-AES256-SHA" -# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA "DHE-DSS-AES256-SHA" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA "DHE-RSA-AES256-SHA" -# define TLS1_TXT_ADH_WITH_AES_256_SHA "ADH-AES256-SHA" - -/* ECC ciphersuites from RFC4492 */ -# define TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA "ECDH-ECDSA-NULL-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA "ECDH-ECDSA-RC4-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA "ECDH-ECDSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA "ECDH-ECDSA-AES128-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA "ECDH-ECDSA-AES256-SHA" - -# define TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA "ECDHE-ECDSA-NULL-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA "ECDHE-ECDSA-RC4-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "ECDHE-ECDSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "ECDHE-ECDSA-AES128-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "ECDHE-ECDSA-AES256-SHA" - -# define TLS1_TXT_ECDH_RSA_WITH_NULL_SHA "ECDH-RSA-NULL-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA "ECDH-RSA-RC4-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA "ECDH-RSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA "ECDH-RSA-AES128-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA "ECDH-RSA-AES256-SHA" - -# define TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA "ECDHE-RSA-NULL-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA "ECDHE-RSA-RC4-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA "ECDHE-RSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA "ECDHE-RSA-AES128-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA "ECDHE-RSA-AES256-SHA" - -# define TLS1_TXT_ECDH_anon_WITH_NULL_SHA "AECDH-NULL-SHA" -# define TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA "AECDH-RC4-SHA" -# define TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA "AECDH-DES-CBC3-SHA" -# define TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA "AECDH-AES128-SHA" -# define TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA "AECDH-AES256-SHA" - -/* PSK ciphersuites from RFC 4279 */ -# define TLS1_TXT_PSK_WITH_RC4_128_SHA "PSK-RC4-SHA" -# define TLS1_TXT_PSK_WITH_3DES_EDE_CBC_SHA "PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA "PSK-AES128-CBC-SHA" -# define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA "PSK-AES256-CBC-SHA" - -# define TLS1_TXT_DHE_PSK_WITH_RC4_128_SHA "DHE-PSK-RC4-SHA" -# define TLS1_TXT_DHE_PSK_WITH_3DES_EDE_CBC_SHA "DHE-PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA "DHE-PSK-AES128-CBC-SHA" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA "DHE-PSK-AES256-CBC-SHA" -# define TLS1_TXT_RSA_PSK_WITH_RC4_128_SHA "RSA-PSK-RC4-SHA" -# define TLS1_TXT_RSA_PSK_WITH_3DES_EDE_CBC_SHA "RSA-PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA "RSA-PSK-AES128-CBC-SHA" -# define TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA "RSA-PSK-AES256-CBC-SHA" - -/* PSK ciphersuites from RFC 5487 */ -# define TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256 "PSK-AES128-GCM-SHA256" -# define TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384 "PSK-AES256-GCM-SHA384" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_GCM_SHA256 "DHE-PSK-AES128-GCM-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_GCM_SHA384 "DHE-PSK-AES256-GCM-SHA384" -# define TLS1_TXT_RSA_PSK_WITH_AES_128_GCM_SHA256 "RSA-PSK-AES128-GCM-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_AES_256_GCM_SHA384 "RSA-PSK-AES256-GCM-SHA384" - -# define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA256 "PSK-AES128-CBC-SHA256" -# define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA384 "PSK-AES256-CBC-SHA384" -# define TLS1_TXT_PSK_WITH_NULL_SHA256 "PSK-NULL-SHA256" -# define TLS1_TXT_PSK_WITH_NULL_SHA384 "PSK-NULL-SHA384" - -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA256 "DHE-PSK-AES128-CBC-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA384 "DHE-PSK-AES256-CBC-SHA384" -# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA256 "DHE-PSK-NULL-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA384 "DHE-PSK-NULL-SHA384" - -# define TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA256 "RSA-PSK-AES128-CBC-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA384 "RSA-PSK-AES256-CBC-SHA384" -# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA256 "RSA-PSK-NULL-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA384 "RSA-PSK-NULL-SHA384" - -/* SRP ciphersuite from RFC 5054 */ -# define TLS1_TXT_SRP_SHA_WITH_3DES_EDE_CBC_SHA "SRP-3DES-EDE-CBC-SHA" -# define TLS1_TXT_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "SRP-RSA-3DES-EDE-CBC-SHA" -# define TLS1_TXT_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "SRP-DSS-3DES-EDE-CBC-SHA" -# define TLS1_TXT_SRP_SHA_WITH_AES_128_CBC_SHA "SRP-AES-128-CBC-SHA" -# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "SRP-RSA-AES-128-CBC-SHA" -# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "SRP-DSS-AES-128-CBC-SHA" -# define TLS1_TXT_SRP_SHA_WITH_AES_256_CBC_SHA "SRP-AES-256-CBC-SHA" -# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "SRP-RSA-AES-256-CBC-SHA" -# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "SRP-DSS-AES-256-CBC-SHA" - -/* Camellia ciphersuites from RFC4132 */ -# define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA "CAMELLIA128-SHA" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA "DH-DSS-CAMELLIA128-SHA" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA "DH-RSA-CAMELLIA128-SHA" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "DHE-DSS-CAMELLIA128-SHA" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "DHE-RSA-CAMELLIA128-SHA" -# define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA "ADH-CAMELLIA128-SHA" - -# define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA "CAMELLIA256-SHA" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA "DH-DSS-CAMELLIA256-SHA" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA "DH-RSA-CAMELLIA256-SHA" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "DHE-DSS-CAMELLIA256-SHA" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "DHE-RSA-CAMELLIA256-SHA" -# define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA "ADH-CAMELLIA256-SHA" - -/* TLS 1.2 Camellia SHA-256 ciphersuites from RFC5932 */ -# define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA256 "CAMELLIA128-SHA256" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 "DH-DSS-CAMELLIA128-SHA256" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 "DH-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 "DHE-DSS-CAMELLIA128-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "DHE-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA256 "ADH-CAMELLIA128-SHA256" - -# define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA256 "CAMELLIA256-SHA256" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 "DH-DSS-CAMELLIA256-SHA256" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 "DH-RSA-CAMELLIA256-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 "DHE-DSS-CAMELLIA256-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 "DHE-RSA-CAMELLIA256-SHA256" -# define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA256 "ADH-CAMELLIA256-SHA256" - -# define TLS1_TXT_PSK_WITH_CAMELLIA_128_CBC_SHA256 "PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_PSK_WITH_CAMELLIA_256_CBC_SHA384 "PSK-CAMELLIA256-SHA384" -# define TLS1_TXT_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "DHE-PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "DHE-PSK-CAMELLIA256-SHA384" -# define TLS1_TXT_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 "RSA-PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 "RSA-PSK-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-PSK-CAMELLIA256-SHA384" - -/* SEED ciphersuites from RFC4162 */ -# define TLS1_TXT_RSA_WITH_SEED_SHA "SEED-SHA" -# define TLS1_TXT_DH_DSS_WITH_SEED_SHA "DH-DSS-SEED-SHA" -# define TLS1_TXT_DH_RSA_WITH_SEED_SHA "DH-RSA-SEED-SHA" -# define TLS1_TXT_DHE_DSS_WITH_SEED_SHA "DHE-DSS-SEED-SHA" -# define TLS1_TXT_DHE_RSA_WITH_SEED_SHA "DHE-RSA-SEED-SHA" -# define TLS1_TXT_ADH_WITH_SEED_SHA "ADH-SEED-SHA" - -/* TLS v1.2 ciphersuites */ -# define TLS1_TXT_RSA_WITH_NULL_SHA256 "NULL-SHA256" -# define TLS1_TXT_RSA_WITH_AES_128_SHA256 "AES128-SHA256" -# define TLS1_TXT_RSA_WITH_AES_256_SHA256 "AES256-SHA256" -# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA256 "DH-DSS-AES128-SHA256" -# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA256 "DH-RSA-AES128-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA256 "DHE-DSS-AES128-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256 "DHE-RSA-AES128-SHA256" -# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA256 "DH-DSS-AES256-SHA256" -# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA256 "DH-RSA-AES256-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA256 "DHE-DSS-AES256-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256 "DHE-RSA-AES256-SHA256" -# define TLS1_TXT_ADH_WITH_AES_128_SHA256 "ADH-AES128-SHA256" -# define TLS1_TXT_ADH_WITH_AES_256_SHA256 "ADH-AES256-SHA256" - -/* TLS v1.2 GCM ciphersuites from RFC5288 */ -# define TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256 "AES128-GCM-SHA256" -# define TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384 "AES256-GCM-SHA384" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256 "DHE-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384 "DHE-RSA-AES256-GCM-SHA384" -# define TLS1_TXT_DH_RSA_WITH_AES_128_GCM_SHA256 "DH-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_DH_RSA_WITH_AES_256_GCM_SHA384 "DH-RSA-AES256-GCM-SHA384" -# define TLS1_TXT_DHE_DSS_WITH_AES_128_GCM_SHA256 "DHE-DSS-AES128-GCM-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_AES_256_GCM_SHA384 "DHE-DSS-AES256-GCM-SHA384" -# define TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256 "DH-DSS-AES128-GCM-SHA256" -# define TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384 "DH-DSS-AES256-GCM-SHA384" -# define TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256 "ADH-AES128-GCM-SHA256" -# define TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384 "ADH-AES256-GCM-SHA384" - -/* CCM ciphersuites from RFC6655 */ -# define TLS1_TXT_RSA_WITH_AES_128_CCM "AES128-CCM" -# define TLS1_TXT_RSA_WITH_AES_256_CCM "AES256-CCM" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_CCM "DHE-RSA-AES128-CCM" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_CCM "DHE-RSA-AES256-CCM" - -# define TLS1_TXT_RSA_WITH_AES_128_CCM_8 "AES128-CCM8" -# define TLS1_TXT_RSA_WITH_AES_256_CCM_8 "AES256-CCM8" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_CCM_8 "DHE-RSA-AES128-CCM8" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_CCM_8 "DHE-RSA-AES256-CCM8" - -# define TLS1_TXT_PSK_WITH_AES_128_CCM "PSK-AES128-CCM" -# define TLS1_TXT_PSK_WITH_AES_256_CCM "PSK-AES256-CCM" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CCM "DHE-PSK-AES128-CCM" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_CCM "DHE-PSK-AES256-CCM" - -# define TLS1_TXT_PSK_WITH_AES_128_CCM_8 "PSK-AES128-CCM8" -# define TLS1_TXT_PSK_WITH_AES_256_CCM_8 "PSK-AES256-CCM8" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CCM_8 "DHE-PSK-AES128-CCM8" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_CCM_8 "DHE-PSK-AES256-CCM8" - -/* CCM ciphersuites from RFC7251 */ -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CCM "ECDHE-ECDSA-AES128-CCM" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CCM "ECDHE-ECDSA-AES256-CCM" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CCM_8 "ECDHE-ECDSA-AES128-CCM8" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CCM_8 "ECDHE-ECDSA-AES256-CCM8" - -/* ECDH HMAC based ciphersuites from RFC5289 */ -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256 "ECDHE-ECDSA-AES128-SHA256" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384 "ECDHE-ECDSA-AES256-SHA384" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_SHA256 "ECDH-ECDSA-AES128-SHA256" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_SHA384 "ECDH-ECDSA-AES256-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256 "ECDHE-RSA-AES128-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384 "ECDHE-RSA-AES256-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256 "ECDH-RSA-AES128-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384 "ECDH-RSA-AES256-SHA384" - -/* ECDH GCM based ciphersuites from RFC5289 */ -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "ECDHE-ECDSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "ECDHE-ECDSA-AES256-GCM-SHA384" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 "ECDH-ECDSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 "ECDH-ECDSA-AES256-GCM-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "ECDHE-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "ECDHE-RSA-AES256-GCM-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256 "ECDH-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384 "ECDH-RSA-AES256-GCM-SHA384" - -/* TLS v1.2 PSK GCM ciphersuites from RFC5487 */ -# define TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256 "PSK-AES128-GCM-SHA256" -# define TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384 "PSK-AES256-GCM-SHA384" - -/* ECDHE PSK ciphersuites from RFC 5489 */ -# define TLS1_TXT_ECDHE_PSK_WITH_RC4_128_SHA "ECDHE-PSK-RC4-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA "ECDHE-PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA "ECDHE-PSK-AES128-CBC-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA "ECDHE-PSK-AES256-CBC-SHA" - -# define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA256 "ECDHE-PSK-AES128-CBC-SHA256" -# define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA384 "ECDHE-PSK-AES256-CBC-SHA384" - -# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA "ECDHE-PSK-NULL-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA256 "ECDHE-PSK-NULL-SHA256" -# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA384 "ECDHE-PSK-NULL-SHA384" - -/* Camellia-CBC ciphersuites from RFC6367 */ -# define TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-ECDSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-ECDSA-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDH-ECDSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDH-ECDSA-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-RSA-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDH-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDH-RSA-CAMELLIA256-SHA384" - -/* draft-ietf-tls-chacha20-poly1305-03 */ -# define TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305 "ECDHE-RSA-CHACHA20-POLY1305" -# define TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "ECDHE-ECDSA-CHACHA20-POLY1305" -# define TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305 "DHE-RSA-CHACHA20-POLY1305" -# define TLS1_TXT_PSK_WITH_CHACHA20_POLY1305 "PSK-CHACHA20-POLY1305" -# define TLS1_TXT_ECDHE_PSK_WITH_CHACHA20_POLY1305 "ECDHE-PSK-CHACHA20-POLY1305" -# define TLS1_TXT_DHE_PSK_WITH_CHACHA20_POLY1305 "DHE-PSK-CHACHA20-POLY1305" -# define TLS1_TXT_RSA_PSK_WITH_CHACHA20_POLY1305 "RSA-PSK-CHACHA20-POLY1305" - -/* Aria ciphersuites from RFC6209 */ -# define TLS1_TXT_RSA_WITH_ARIA_128_GCM_SHA256 "ARIA128-GCM-SHA256" -# define TLS1_TXT_RSA_WITH_ARIA_256_GCM_SHA384 "ARIA256-GCM-SHA384" -# define TLS1_TXT_DHE_RSA_WITH_ARIA_128_GCM_SHA256 "DHE-RSA-ARIA128-GCM-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_ARIA_256_GCM_SHA384 "DHE-RSA-ARIA256-GCM-SHA384" -# define TLS1_TXT_DH_RSA_WITH_ARIA_128_GCM_SHA256 "DH-RSA-ARIA128-GCM-SHA256" -# define TLS1_TXT_DH_RSA_WITH_ARIA_256_GCM_SHA384 "DH-RSA-ARIA256-GCM-SHA384" -# define TLS1_TXT_DHE_DSS_WITH_ARIA_128_GCM_SHA256 "DHE-DSS-ARIA128-GCM-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_ARIA_256_GCM_SHA384 "DHE-DSS-ARIA256-GCM-SHA384" -# define TLS1_TXT_DH_DSS_WITH_ARIA_128_GCM_SHA256 "DH-DSS-ARIA128-GCM-SHA256" -# define TLS1_TXT_DH_DSS_WITH_ARIA_256_GCM_SHA384 "DH-DSS-ARIA256-GCM-SHA384" -# define TLS1_TXT_DH_anon_WITH_ARIA_128_GCM_SHA256 "ADH-ARIA128-GCM-SHA256" -# define TLS1_TXT_DH_anon_WITH_ARIA_256_GCM_SHA384 "ADH-ARIA256-GCM-SHA384" -# define TLS1_TXT_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 "ECDHE-ECDSA-ARIA128-GCM-SHA256" -# define TLS1_TXT_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 "ECDHE-ECDSA-ARIA256-GCM-SHA384" -# define TLS1_TXT_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 "ECDH-ECDSA-ARIA128-GCM-SHA256" -# define TLS1_TXT_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 "ECDH-ECDSA-ARIA256-GCM-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 "ECDHE-ARIA128-GCM-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 "ECDHE-ARIA256-GCM-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 "ECDH-ARIA128-GCM-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 "ECDH-ARIA256-GCM-SHA384" -# define TLS1_TXT_PSK_WITH_ARIA_128_GCM_SHA256 "PSK-ARIA128-GCM-SHA256" -# define TLS1_TXT_PSK_WITH_ARIA_256_GCM_SHA384 "PSK-ARIA256-GCM-SHA384" -# define TLS1_TXT_DHE_PSK_WITH_ARIA_128_GCM_SHA256 "DHE-PSK-ARIA128-GCM-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_ARIA_256_GCM_SHA384 "DHE-PSK-ARIA256-GCM-SHA384" -# define TLS1_TXT_RSA_PSK_WITH_ARIA_128_GCM_SHA256 "RSA-PSK-ARIA128-GCM-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_ARIA_256_GCM_SHA384 "RSA-PSK-ARIA256-GCM-SHA384" - -# define TLS_CT_RSA_SIGN 1 -# define TLS_CT_DSS_SIGN 2 -# define TLS_CT_RSA_FIXED_DH 3 -# define TLS_CT_DSS_FIXED_DH 4 -# define TLS_CT_ECDSA_SIGN 64 -# define TLS_CT_RSA_FIXED_ECDH 65 -# define TLS_CT_ECDSA_FIXED_ECDH 66 -# define TLS_CT_GOST01_SIGN 22 -# define TLS_CT_GOST12_IANA_SIGN 67 -# define TLS_CT_GOST12_IANA_512_SIGN 68 -# define TLS_CT_GOST12_LEGACY_SIGN 238 -# define TLS_CT_GOST12_LEGACY_512_SIGN 239 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define TLS_CT_GOST12_SIGN TLS_CT_GOST12_LEGACY_SIGN -# define TLS_CT_GOST12_512_SIGN TLS_CT_GOST12_LEGACY_512_SIGN -# endif - -/* - * when correcting this number, correct also SSL3_CT_NUMBER in ssl3.h (see - * comment there) - */ -# define TLS_CT_NUMBER 12 - -# if defined(SSL3_CT_NUMBER) -# if TLS_CT_NUMBER != SSL3_CT_NUMBER -# error "SSL/TLS CT_NUMBER values do not match" -# endif -# endif - -# define TLS1_FINISH_MAC_LENGTH 12 - -# define TLS_MD_MAX_CONST_SIZE 22 - -/* ASCII: "client finished", in hex for EBCDIC compatibility */ -# define TLS_MD_CLIENT_FINISH_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x66\x69\x6e\x69\x73\x68\x65\x64" -# define TLS_MD_CLIENT_FINISH_CONST_SIZE 15 -/* ASCII: "server finished", in hex for EBCDIC compatibility */ -# define TLS_MD_SERVER_FINISH_CONST "\x73\x65\x72\x76\x65\x72\x20\x66\x69\x6e\x69\x73\x68\x65\x64" -# define TLS_MD_SERVER_FINISH_CONST_SIZE 15 -/* ASCII: "server write key", in hex for EBCDIC compatibility */ -# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" -# define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16 -/* ASCII: "key expansion", in hex for EBCDIC compatibility */ -# define TLS_MD_KEY_EXPANSION_CONST "\x6b\x65\x79\x20\x65\x78\x70\x61\x6e\x73\x69\x6f\x6e" -# define TLS_MD_KEY_EXPANSION_CONST_SIZE 13 -/* ASCII: "client write key", in hex for EBCDIC compatibility */ -# define TLS_MD_CLIENT_WRITE_KEY_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" -# define TLS_MD_CLIENT_WRITE_KEY_CONST_SIZE 16 -/* ASCII: "server write key", in hex for EBCDIC compatibility */ -# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" -# define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16 -/* ASCII: "IV block", in hex for EBCDIC compatibility */ -# define TLS_MD_IV_BLOCK_CONST "\x49\x56\x20\x62\x6c\x6f\x63\x6b" -# define TLS_MD_IV_BLOCK_CONST_SIZE 8 -/* ASCII: "master secret", in hex for EBCDIC compatibility */ -# define TLS_MD_MASTER_SECRET_CONST "\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" -# define TLS_MD_MASTER_SECRET_CONST_SIZE 13 -/* ASCII: "extended master secret", in hex for EBCDIC compatibility */ -# define TLS_MD_EXTENDED_MASTER_SECRET_CONST "\x65\x78\x74\x65\x6e\x64\x65\x64\x20\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" -# define TLS_MD_EXTENDED_MASTER_SECRET_CONST_SIZE 22 - -/* TLS Session Ticket extension struct */ -struct tls_session_ticket_ext_st { - unsigned short length; - void *data; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/trace.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/trace.h deleted file mode 100644 index 2ca07f7..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/trace.h +++ /dev/null @@ -1,321 +0,0 @@ -/* - * Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_TRACE_H -# define OPENSSL_TRACE_H -# pragma once - -# include - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * TRACE CATEGORIES - */ - -/* - * The trace messages of the OpenSSL libraries are organized into different - * categories. For every trace category, the application can register a separate - * tracer callback. When a callback is registered, a so called trace channel is - * created for this category. This channel consists essentially of an internal - * BIO which sends all trace output it receives to the registered application - * callback. - * - * The ALL category can be used as a fallback category to register a single - * channel which receives the output from all categories. However, if the - * application intends to print the trace channel name in the line prefix, - * it is better to register channels for all categories separately. - * (This is how the openssl application does it.) - */ -# define OSSL_TRACE_CATEGORY_ALL 0 /* The fallback */ -# define OSSL_TRACE_CATEGORY_TRACE 1 -# define OSSL_TRACE_CATEGORY_INIT 2 -# define OSSL_TRACE_CATEGORY_TLS 3 -# define OSSL_TRACE_CATEGORY_TLS_CIPHER 4 -# define OSSL_TRACE_CATEGORY_CONF 5 -# define OSSL_TRACE_CATEGORY_ENGINE_TABLE 6 -# define OSSL_TRACE_CATEGORY_ENGINE_REF_COUNT 7 -# define OSSL_TRACE_CATEGORY_PKCS5V2 8 -# define OSSL_TRACE_CATEGORY_PKCS12_KEYGEN 9 -# define OSSL_TRACE_CATEGORY_PKCS12_DECRYPT 10 -# define OSSL_TRACE_CATEGORY_X509V3_POLICY 11 -# define OSSL_TRACE_CATEGORY_BN_CTX 12 -# define OSSL_TRACE_CATEGORY_CMP 13 -# define OSSL_TRACE_CATEGORY_STORE 14 -# define OSSL_TRACE_CATEGORY_DECODER 15 -# define OSSL_TRACE_CATEGORY_ENCODER 16 -# define OSSL_TRACE_CATEGORY_REF_COUNT 17 -# define OSSL_TRACE_CATEGORY_HTTP 18 -# define OSSL_TRACE_CATEGORY_PROVIDER 19 -# define OSSL_TRACE_CATEGORY_QUERY 20 -# define OSSL_TRACE_CATEGORY_NUM 21 -/* KEEP THIS LIST IN SYNC with trace_categories[] in crypto/trace.c */ - -/* Returns the trace category number for the given |name| */ -int OSSL_trace_get_category_num(const char *name); - -/* Returns the trace category name for the given |num| */ -const char *OSSL_trace_get_category_name(int num); - -/* - * TRACE CONSUMERS - */ - -/* - * Enables tracing for the given |category| by providing a BIO sink - * as |channel|. If a null pointer is passed as |channel|, an existing - * trace channel is removed and tracing for the category is disabled. - * - * Returns 1 on success and 0 on failure - */ -int OSSL_trace_set_channel(int category, BIO* channel); - -/* - * Attach a prefix and a suffix to the given |category|, to be printed at the - * beginning and at the end of each trace output group, i.e. when - * OSSL_trace_begin() and OSSL_trace_end() are called. - * If a null pointer is passed as argument, the existing prefix or suffix is - * removed. - * - * They return 1 on success and 0 on failure - */ -int OSSL_trace_set_prefix(int category, const char *prefix); -int OSSL_trace_set_suffix(int category, const char *suffix); - -/* - * OSSL_trace_cb is the type tracing callback provided by the application. - * It MUST return the number of bytes written, or 0 on error (in other words, - * it can never write zero bytes). - * - * The |buffer| will always contain text, which may consist of several lines. - * The |data| argument points to whatever data was provided by the application - * when registering the tracer function. - * - * The |category| number is given, as well as a |cmd| number, described below. - */ -typedef size_t (*OSSL_trace_cb)(const char *buffer, size_t count, - int category, int cmd, void *data); -/* - * Possible |cmd| numbers. - */ -# define OSSL_TRACE_CTRL_BEGIN 0 -# define OSSL_TRACE_CTRL_WRITE 1 -# define OSSL_TRACE_CTRL_END 2 - -/* - * Enables tracing for the given |category| by creating an internal - * trace channel which sends the output to the given |callback|. - * If a null pointer is passed as callback, an existing trace channel - * is removed and tracing for the category is disabled. - * - * NOTE: OSSL_trace_set_channel() and OSSL_trace_set_callback() are mutually - * exclusive. - * - * Returns 1 on success and 0 on failure - */ -int OSSL_trace_set_callback(int category, OSSL_trace_cb callback, void *data); - -/* - * TRACE PRODUCERS - */ - -/* - * Returns 1 if tracing for the specified category is enabled, otherwise 0 - */ -int OSSL_trace_enabled(int category); - -/* - * Wrap a group of tracing output calls. OSSL_trace_begin() locks tracing and - * returns the trace channel associated with the given category, or NULL if no - * channel is associated with the category. OSSL_trace_end() unlocks tracing. - * - * Usage: - * - * BIO *out; - * if ((out = OSSL_trace_begin(category)) != NULL) { - * ... - * BIO_fprintf(out, ...); - * ... - * OSSL_trace_end(category, out); - * } - * - * See also the convenience macros OSSL_TRACE_BEGIN and OSSL_TRACE_END below. - */ -BIO *OSSL_trace_begin(int category); -void OSSL_trace_end(int category, BIO *channel); - -/* - * OSSL_TRACE* Convenience Macros - */ - -/* - * When the tracing feature is disabled, these macros are defined to - * produce dead code, which a good compiler should eliminate. - */ - -/* - * OSSL_TRACE_BEGIN, OSSL_TRACE_END - Define a Trace Group - * - * These two macros can be used to create a block which is executed only - * if the corresponding trace category is enabled. Inside this block, a - * local variable named |trc_out| is defined, which points to the channel - * associated with the given trace category. - * - * Usage: (using 'TLS' as an example category) - * - * OSSL_TRACE_BEGIN(TLS) { - * - * BIO_fprintf(trc_out, ... ); - * - * } OSSL_TRACE_END(TLS); - * - * - * This expands to the following code - * - * do { - * BIO *trc_out = OSSL_trace_begin(OSSL_TRACE_CATEGORY_TLS); - * if (trc_out != NULL) { - * ... - * BIO_fprintf(trc_out, ...); - * } - * OSSL_trace_end(OSSL_TRACE_CATEGORY_TLS, trc_out); - * } while (0); - * - * The use of the inner '{...}' group and the trailing ';' is enforced - * by the definition of the macros in order to make the code look as much - * like C code as possible. - * - * Before returning from inside the trace block, it is necessary to - * call OSSL_TRACE_CANCEL(category). - */ - -# if !defined OPENSSL_NO_TRACE && !defined FIPS_MODULE - -# define OSSL_TRACE_BEGIN(category) \ - do { \ - BIO *trc_out = OSSL_trace_begin(OSSL_TRACE_CATEGORY_##category); \ - \ - if (trc_out != NULL) - -# define OSSL_TRACE_END(category) \ - OSSL_trace_end(OSSL_TRACE_CATEGORY_##category, trc_out); \ - } while (0) - -# define OSSL_TRACE_CANCEL(category) \ - OSSL_trace_end(OSSL_TRACE_CATEGORY_##category, trc_out) \ - -# else - -# define OSSL_TRACE_BEGIN(category) \ - do { \ - BIO *trc_out = NULL; \ - if (0) - -# define OSSL_TRACE_END(category) \ - } while(0) - -# define OSSL_TRACE_CANCEL(category) \ - ((void)0) - -# endif - -/* - * OSSL_TRACE_ENABLED() - Check whether tracing is enabled for |category| - * - * Usage: - * - * if (OSSL_TRACE_ENABLED(TLS)) { - * ... - * } - */ -# if !defined OPENSSL_NO_TRACE && !defined FIPS_MODULE - -# define OSSL_TRACE_ENABLED(category) \ - OSSL_trace_enabled(OSSL_TRACE_CATEGORY_##category) - -# else - -# define OSSL_TRACE_ENABLED(category) (0) - -# endif - -/* - * OSSL_TRACE*() - OneShot Trace Macros - * - * These macros are intended to produce a simple printf-style trace output. - * Unfortunately, C90 macros don't support variable arguments, so the - * "vararg" OSSL_TRACEV() macro has a rather weird usage pattern: - * - * OSSL_TRACEV(category, (trc_out, "format string", ...args...)); - * - * Where 'channel' is the literal symbol of this name, not a variable. - * For that reason, it is currently not intended to be used directly, - * but only as helper macro for the other oneshot trace macros - * OSSL_TRACE(), OSSL_TRACE1(), OSSL_TRACE2(), ... - * - * Usage: - * - * OSSL_TRACE(INIT, "Hello world!\n"); - * OSSL_TRACE1(TLS, "The answer is %d\n", 42); - * OSSL_TRACE2(TLS, "The ultimate question to answer %d is '%s'\n", - * 42, "What do you get when you multiply six by nine?"); - */ - -# if !defined OPENSSL_NO_TRACE && !defined FIPS_MODULE - -# define OSSL_TRACEV(category, args) \ - OSSL_TRACE_BEGIN(category) \ - BIO_printf args; \ - OSSL_TRACE_END(category) - -# else - -# define OSSL_TRACEV(category, args) ((void)0) - -# endif - -# define OSSL_TRACE(category, text) \ - OSSL_TRACEV(category, (trc_out, "%s", text)) - -# define OSSL_TRACE1(category, format, arg1) \ - OSSL_TRACEV(category, (trc_out, format, arg1)) -# define OSSL_TRACE2(category, format, arg1, arg2) \ - OSSL_TRACEV(category, (trc_out, format, arg1, arg2)) -# define OSSL_TRACE3(category, format, arg1, arg2, arg3) \ - OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3)) -# define OSSL_TRACE4(category, format, arg1, arg2, arg3, arg4) \ - OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3, arg4)) -# define OSSL_TRACE5(category, format, arg1, arg2, arg3, arg4, arg5) \ - OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3, arg4, arg5)) -# define OSSL_TRACE6(category, format, arg1, arg2, arg3, arg4, arg5, arg6) \ - OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3, arg4, arg5, arg6)) -# define OSSL_TRACE7(category, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7) \ - OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7)) -# define OSSL_TRACE8(category, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) \ - OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)) -# define OSSL_TRACE9(category, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) \ - OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9)) - -#define OSSL_TRACE_STRING_MAX 80 -int OSSL_trace_string(BIO *out, int text, int full, - const unsigned char *data, size_t size); -#define OSSL_TRACE_STRING(category, text, full, data, len) \ - OSSL_TRACE_BEGIN(category) { \ - OSSL_trace_string(trc_out, text, full, data, len); \ - } OSSL_TRACE_END(category) - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ts.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/ts.h deleted file mode 100644 index 31c78b5..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ts.h +++ /dev/null @@ -1,522 +0,0 @@ -/* - * Copyright 2006-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_TS_H -# define OPENSSL_TS_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_TS_H -# endif - -# include - -# ifndef OPENSSL_NO_TS -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif -# ifdef __cplusplus -extern "C" { -# endif - -typedef struct TS_msg_imprint_st TS_MSG_IMPRINT; -typedef struct TS_req_st TS_REQ; -typedef struct TS_accuracy_st TS_ACCURACY; -typedef struct TS_tst_info_st TS_TST_INFO; - -/* Possible values for status. */ -# define TS_STATUS_GRANTED 0 -# define TS_STATUS_GRANTED_WITH_MODS 1 -# define TS_STATUS_REJECTION 2 -# define TS_STATUS_WAITING 3 -# define TS_STATUS_REVOCATION_WARNING 4 -# define TS_STATUS_REVOCATION_NOTIFICATION 5 - -/* Possible values for failure_info. */ -# define TS_INFO_BAD_ALG 0 -# define TS_INFO_BAD_REQUEST 2 -# define TS_INFO_BAD_DATA_FORMAT 5 -# define TS_INFO_TIME_NOT_AVAILABLE 14 -# define TS_INFO_UNACCEPTED_POLICY 15 -# define TS_INFO_UNACCEPTED_EXTENSION 16 -# define TS_INFO_ADD_INFO_NOT_AVAILABLE 17 -# define TS_INFO_SYSTEM_FAILURE 25 - - -typedef struct TS_status_info_st TS_STATUS_INFO; - -typedef struct TS_resp_st TS_RESP; - -DECLARE_ASN1_ALLOC_FUNCTIONS(TS_REQ) -DECLARE_ASN1_ENCODE_FUNCTIONS_only(TS_REQ, TS_REQ) -DECLARE_ASN1_DUP_FUNCTION(TS_REQ) - -#ifndef OPENSSL_NO_STDIO -TS_REQ *d2i_TS_REQ_fp(FILE *fp, TS_REQ **a); -int i2d_TS_REQ_fp(FILE *fp, const TS_REQ *a); -#endif -TS_REQ *d2i_TS_REQ_bio(BIO *fp, TS_REQ **a); -int i2d_TS_REQ_bio(BIO *fp, const TS_REQ *a); - -DECLARE_ASN1_ALLOC_FUNCTIONS(TS_MSG_IMPRINT) -DECLARE_ASN1_ENCODE_FUNCTIONS_only(TS_MSG_IMPRINT, TS_MSG_IMPRINT) -DECLARE_ASN1_DUP_FUNCTION(TS_MSG_IMPRINT) - -#ifndef OPENSSL_NO_STDIO -TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT **a); -int i2d_TS_MSG_IMPRINT_fp(FILE *fp, const TS_MSG_IMPRINT *a); -#endif -TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_bio(BIO *bio, TS_MSG_IMPRINT **a); -int i2d_TS_MSG_IMPRINT_bio(BIO *bio, const TS_MSG_IMPRINT *a); - -DECLARE_ASN1_ALLOC_FUNCTIONS(TS_RESP) -DECLARE_ASN1_ENCODE_FUNCTIONS_only(TS_RESP, TS_RESP) -DECLARE_ASN1_DUP_FUNCTION(TS_RESP) - -#ifndef OPENSSL_NO_STDIO -TS_RESP *d2i_TS_RESP_fp(FILE *fp, TS_RESP **a); -int i2d_TS_RESP_fp(FILE *fp, const TS_RESP *a); -#endif -TS_RESP *d2i_TS_RESP_bio(BIO *bio, TS_RESP **a); -int i2d_TS_RESP_bio(BIO *bio, const TS_RESP *a); - -DECLARE_ASN1_ALLOC_FUNCTIONS(TS_STATUS_INFO) -DECLARE_ASN1_ENCODE_FUNCTIONS_only(TS_STATUS_INFO, TS_STATUS_INFO) -DECLARE_ASN1_DUP_FUNCTION(TS_STATUS_INFO) - -DECLARE_ASN1_ALLOC_FUNCTIONS(TS_TST_INFO) -DECLARE_ASN1_ENCODE_FUNCTIONS_only(TS_TST_INFO, TS_TST_INFO) -DECLARE_ASN1_DUP_FUNCTION(TS_TST_INFO) -TS_TST_INFO *PKCS7_to_TS_TST_INFO(PKCS7 *token); - -#ifndef OPENSSL_NO_STDIO -TS_TST_INFO *d2i_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO **a); -int i2d_TS_TST_INFO_fp(FILE *fp, const TS_TST_INFO *a); -#endif -TS_TST_INFO *d2i_TS_TST_INFO_bio(BIO *bio, TS_TST_INFO **a); -int i2d_TS_TST_INFO_bio(BIO *bio, const TS_TST_INFO *a); - -DECLARE_ASN1_ALLOC_FUNCTIONS(TS_ACCURACY) -DECLARE_ASN1_ENCODE_FUNCTIONS_only(TS_ACCURACY, TS_ACCURACY) -DECLARE_ASN1_DUP_FUNCTION(TS_ACCURACY) - -int TS_REQ_set_version(TS_REQ *a, long version); -long TS_REQ_get_version(const TS_REQ *a); - -int TS_STATUS_INFO_set_status(TS_STATUS_INFO *a, int i); -const ASN1_INTEGER *TS_STATUS_INFO_get0_status(const TS_STATUS_INFO *a); - -const STACK_OF(ASN1_UTF8STRING) * -TS_STATUS_INFO_get0_text(const TS_STATUS_INFO *a); - -const ASN1_BIT_STRING * -TS_STATUS_INFO_get0_failure_info(const TS_STATUS_INFO *a); - -int TS_REQ_set_msg_imprint(TS_REQ *a, TS_MSG_IMPRINT *msg_imprint); -TS_MSG_IMPRINT *TS_REQ_get_msg_imprint(TS_REQ *a); - -int TS_MSG_IMPRINT_set_algo(TS_MSG_IMPRINT *a, X509_ALGOR *alg); -X509_ALGOR *TS_MSG_IMPRINT_get_algo(TS_MSG_IMPRINT *a); - -int TS_MSG_IMPRINT_set_msg(TS_MSG_IMPRINT *a, unsigned char *d, int len); -ASN1_OCTET_STRING *TS_MSG_IMPRINT_get_msg(TS_MSG_IMPRINT *a); - -int TS_REQ_set_policy_id(TS_REQ *a, const ASN1_OBJECT *policy); -ASN1_OBJECT *TS_REQ_get_policy_id(TS_REQ *a); - -int TS_REQ_set_nonce(TS_REQ *a, const ASN1_INTEGER *nonce); -const ASN1_INTEGER *TS_REQ_get_nonce(const TS_REQ *a); - -int TS_REQ_set_cert_req(TS_REQ *a, int cert_req); -int TS_REQ_get_cert_req(const TS_REQ *a); - -STACK_OF(X509_EXTENSION) *TS_REQ_get_exts(TS_REQ *a); -void TS_REQ_ext_free(TS_REQ *a); -int TS_REQ_get_ext_count(TS_REQ *a); -int TS_REQ_get_ext_by_NID(TS_REQ *a, int nid, int lastpos); -int TS_REQ_get_ext_by_OBJ(TS_REQ *a, const ASN1_OBJECT *obj, int lastpos); -int TS_REQ_get_ext_by_critical(TS_REQ *a, int crit, int lastpos); -X509_EXTENSION *TS_REQ_get_ext(TS_REQ *a, int loc); -X509_EXTENSION *TS_REQ_delete_ext(TS_REQ *a, int loc); -int TS_REQ_add_ext(TS_REQ *a, X509_EXTENSION *ex, int loc); -void *TS_REQ_get_ext_d2i(TS_REQ *a, int nid, int *crit, int *idx); - -/* Function declarations for TS_REQ defined in ts/ts_req_print.c */ - -int TS_REQ_print_bio(BIO *bio, TS_REQ *a); - -/* Function declarations for TS_RESP defined in ts/ts_resp_utils.c */ - -int TS_RESP_set_status_info(TS_RESP *a, TS_STATUS_INFO *info); -TS_STATUS_INFO *TS_RESP_get_status_info(TS_RESP *a); - -/* Caller loses ownership of PKCS7 and TS_TST_INFO objects. */ -void TS_RESP_set_tst_info(TS_RESP *a, PKCS7 *p7, TS_TST_INFO *tst_info); -PKCS7 *TS_RESP_get_token(TS_RESP *a); -TS_TST_INFO *TS_RESP_get_tst_info(TS_RESP *a); - -int TS_TST_INFO_set_version(TS_TST_INFO *a, long version); -long TS_TST_INFO_get_version(const TS_TST_INFO *a); - -int TS_TST_INFO_set_policy_id(TS_TST_INFO *a, ASN1_OBJECT *policy_id); -ASN1_OBJECT *TS_TST_INFO_get_policy_id(TS_TST_INFO *a); - -int TS_TST_INFO_set_msg_imprint(TS_TST_INFO *a, TS_MSG_IMPRINT *msg_imprint); -TS_MSG_IMPRINT *TS_TST_INFO_get_msg_imprint(TS_TST_INFO *a); - -int TS_TST_INFO_set_serial(TS_TST_INFO *a, const ASN1_INTEGER *serial); -const ASN1_INTEGER *TS_TST_INFO_get_serial(const TS_TST_INFO *a); - -int TS_TST_INFO_set_time(TS_TST_INFO *a, const ASN1_GENERALIZEDTIME *gtime); -const ASN1_GENERALIZEDTIME *TS_TST_INFO_get_time(const TS_TST_INFO *a); - -int TS_TST_INFO_set_accuracy(TS_TST_INFO *a, TS_ACCURACY *accuracy); -TS_ACCURACY *TS_TST_INFO_get_accuracy(TS_TST_INFO *a); - -int TS_ACCURACY_set_seconds(TS_ACCURACY *a, const ASN1_INTEGER *seconds); -const ASN1_INTEGER *TS_ACCURACY_get_seconds(const TS_ACCURACY *a); - -int TS_ACCURACY_set_millis(TS_ACCURACY *a, const ASN1_INTEGER *millis); -const ASN1_INTEGER *TS_ACCURACY_get_millis(const TS_ACCURACY *a); - -int TS_ACCURACY_set_micros(TS_ACCURACY *a, const ASN1_INTEGER *micros); -const ASN1_INTEGER *TS_ACCURACY_get_micros(const TS_ACCURACY *a); - -int TS_TST_INFO_set_ordering(TS_TST_INFO *a, int ordering); -int TS_TST_INFO_get_ordering(const TS_TST_INFO *a); - -int TS_TST_INFO_set_nonce(TS_TST_INFO *a, const ASN1_INTEGER *nonce); -const ASN1_INTEGER *TS_TST_INFO_get_nonce(const TS_TST_INFO *a); - -int TS_TST_INFO_set_tsa(TS_TST_INFO *a, GENERAL_NAME *tsa); -GENERAL_NAME *TS_TST_INFO_get_tsa(TS_TST_INFO *a); - -STACK_OF(X509_EXTENSION) *TS_TST_INFO_get_exts(TS_TST_INFO *a); -void TS_TST_INFO_ext_free(TS_TST_INFO *a); -int TS_TST_INFO_get_ext_count(TS_TST_INFO *a); -int TS_TST_INFO_get_ext_by_NID(TS_TST_INFO *a, int nid, int lastpos); -int TS_TST_INFO_get_ext_by_OBJ(TS_TST_INFO *a, const ASN1_OBJECT *obj, - int lastpos); -int TS_TST_INFO_get_ext_by_critical(TS_TST_INFO *a, int crit, int lastpos); -X509_EXTENSION *TS_TST_INFO_get_ext(TS_TST_INFO *a, int loc); -X509_EXTENSION *TS_TST_INFO_delete_ext(TS_TST_INFO *a, int loc); -int TS_TST_INFO_add_ext(TS_TST_INFO *a, X509_EXTENSION *ex, int loc); -void *TS_TST_INFO_get_ext_d2i(TS_TST_INFO *a, int nid, int *crit, int *idx); - -/* - * Declarations related to response generation, defined in ts/ts_resp_sign.c. - */ - -/* Optional flags for response generation. */ - -/* Don't include the TSA name in response. */ -# define TS_TSA_NAME 0x01 - -/* Set ordering to true in response. */ -# define TS_ORDERING 0x02 - -/* - * Include the signer certificate and the other specified certificates in - * the ESS signing certificate attribute beside the PKCS7 signed data. - * Only the signer certificates is included by default. - */ -# define TS_ESS_CERT_ID_CHAIN 0x04 - -/* Forward declaration. */ -struct TS_resp_ctx; - -/* This must return a unique number less than 160 bits long. */ -typedef ASN1_INTEGER *(*TS_serial_cb) (struct TS_resp_ctx *, void *); - -/* - * This must return the seconds and microseconds since Jan 1, 1970 in the sec - * and usec variables allocated by the caller. Return non-zero for success - * and zero for failure. - */ -typedef int (*TS_time_cb) (struct TS_resp_ctx *, void *, long *sec, - long *usec); - -/* - * This must process the given extension. It can modify the TS_TST_INFO - * object of the context. Return values: !0 (processed), 0 (error, it must - * set the status info/failure info of the response). - */ -typedef int (*TS_extension_cb) (struct TS_resp_ctx *, X509_EXTENSION *, - void *); - -typedef struct TS_resp_ctx TS_RESP_CTX; - -/* Creates a response context that can be used for generating responses. */ -TS_RESP_CTX *TS_RESP_CTX_new(void); -TS_RESP_CTX *TS_RESP_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); -void TS_RESP_CTX_free(TS_RESP_CTX *ctx); - -/* This parameter must be set. */ -int TS_RESP_CTX_set_signer_cert(TS_RESP_CTX *ctx, X509 *signer); - -/* This parameter must be set. */ -int TS_RESP_CTX_set_signer_key(TS_RESP_CTX *ctx, EVP_PKEY *key); - -int TS_RESP_CTX_set_signer_digest(TS_RESP_CTX *ctx, - const EVP_MD *signer_digest); -int TS_RESP_CTX_set_ess_cert_id_digest(TS_RESP_CTX *ctx, const EVP_MD *md); - -/* This parameter must be set. */ -int TS_RESP_CTX_set_def_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *def_policy); - -/* No additional certs are included in the response by default. */ -int TS_RESP_CTX_set_certs(TS_RESP_CTX *ctx, STACK_OF(X509) *certs); - -/* - * Adds a new acceptable policy, only the default policy is accepted by - * default. - */ -int TS_RESP_CTX_add_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *policy); - -/* - * Adds a new acceptable message digest. Note that no message digests are - * accepted by default. The md argument is shared with the caller. - */ -int TS_RESP_CTX_add_md(TS_RESP_CTX *ctx, const EVP_MD *md); - -/* Accuracy is not included by default. */ -int TS_RESP_CTX_set_accuracy(TS_RESP_CTX *ctx, - int secs, int millis, int micros); - -/* - * Clock precision digits, i.e. the number of decimal digits: '0' means sec, - * '3' msec, '6' usec, and so on. Default is 0. - */ -int TS_RESP_CTX_set_clock_precision_digits(TS_RESP_CTX *ctx, - unsigned clock_precision_digits); -/* At most we accept usec precision. */ -# define TS_MAX_CLOCK_PRECISION_DIGITS 6 - -/* Maximum status message length */ -# define TS_MAX_STATUS_LENGTH (1024 * 1024) - -/* No flags are set by default. */ -void TS_RESP_CTX_add_flags(TS_RESP_CTX *ctx, int flags); - -/* Default callback always returns a constant. */ -void TS_RESP_CTX_set_serial_cb(TS_RESP_CTX *ctx, TS_serial_cb cb, void *data); - -/* Default callback uses the gettimeofday() and gmtime() system calls. */ -void TS_RESP_CTX_set_time_cb(TS_RESP_CTX *ctx, TS_time_cb cb, void *data); - -/* - * Default callback rejects all extensions. The extension callback is called - * when the TS_TST_INFO object is already set up and not signed yet. - */ -/* FIXME: extension handling is not tested yet. */ -void TS_RESP_CTX_set_extension_cb(TS_RESP_CTX *ctx, - TS_extension_cb cb, void *data); - -/* The following methods can be used in the callbacks. */ -int TS_RESP_CTX_set_status_info(TS_RESP_CTX *ctx, - int status, const char *text); - -/* Sets the status info only if it is still TS_STATUS_GRANTED. */ -int TS_RESP_CTX_set_status_info_cond(TS_RESP_CTX *ctx, - int status, const char *text); - -int TS_RESP_CTX_add_failure_info(TS_RESP_CTX *ctx, int failure); - -/* The get methods below can be used in the extension callback. */ -TS_REQ *TS_RESP_CTX_get_request(TS_RESP_CTX *ctx); - -TS_TST_INFO *TS_RESP_CTX_get_tst_info(TS_RESP_CTX *ctx); - -/* - * Creates the signed TS_TST_INFO and puts it in TS_RESP. - * In case of errors it sets the status info properly. - * Returns NULL only in case of memory allocation/fatal error. - */ -TS_RESP *TS_RESP_create_response(TS_RESP_CTX *ctx, BIO *req_bio); - -/* - * Declarations related to response verification, - * they are defined in ts/ts_resp_verify.c. - */ - -int TS_RESP_verify_signature(PKCS7 *token, STACK_OF(X509) *certs, - X509_STORE *store, X509 **signer_out); - -/* Context structure for the generic verify method. */ - -/* Verify the signer's certificate and the signature of the response. */ -# define TS_VFY_SIGNATURE (1u << 0) -/* Verify the version number of the response. */ -# define TS_VFY_VERSION (1u << 1) -/* Verify if the policy supplied by the user matches the policy of the TSA. */ -# define TS_VFY_POLICY (1u << 2) -/* - * Verify the message imprint provided by the user. This flag should not be - * specified with TS_VFY_DATA. - */ -# define TS_VFY_IMPRINT (1u << 3) -/* - * Verify the message imprint computed by the verify method from the user - * provided data and the MD algorithm of the response. This flag should not - * be specified with TS_VFY_IMPRINT. - */ -# define TS_VFY_DATA (1u << 4) -/* Verify the nonce value. */ -# define TS_VFY_NONCE (1u << 5) -/* Verify if the TSA name field matches the signer certificate. */ -# define TS_VFY_SIGNER (1u << 6) -/* Verify if the TSA name field equals to the user provided name. */ -# define TS_VFY_TSA_NAME (1u << 7) - -/* You can use the following convenience constants. */ -# define TS_VFY_ALL_IMPRINT (TS_VFY_SIGNATURE \ - | TS_VFY_VERSION \ - | TS_VFY_POLICY \ - | TS_VFY_IMPRINT \ - | TS_VFY_NONCE \ - | TS_VFY_SIGNER \ - | TS_VFY_TSA_NAME) -# define TS_VFY_ALL_DATA (TS_VFY_SIGNATURE \ - | TS_VFY_VERSION \ - | TS_VFY_POLICY \ - | TS_VFY_DATA \ - | TS_VFY_NONCE \ - | TS_VFY_SIGNER \ - | TS_VFY_TSA_NAME) - -typedef struct TS_verify_ctx TS_VERIFY_CTX; - -int TS_RESP_verify_response(TS_VERIFY_CTX *ctx, TS_RESP *response); -int TS_RESP_verify_token(TS_VERIFY_CTX *ctx, PKCS7 *token); - -/* - * Declarations related to response verification context, - */ -TS_VERIFY_CTX *TS_VERIFY_CTX_new(void); -void TS_VERIFY_CTX_init(TS_VERIFY_CTX *ctx); -void TS_VERIFY_CTX_free(TS_VERIFY_CTX *ctx); -void TS_VERIFY_CTX_cleanup(TS_VERIFY_CTX *ctx); -int TS_VERIFY_CTX_set_flags(TS_VERIFY_CTX *ctx, int f); -int TS_VERIFY_CTX_add_flags(TS_VERIFY_CTX *ctx, int f); -# ifndef OPENSSL_NO_DEPRECATED_3_4 -OSSL_DEPRECATEDIN_3_4_FOR("Unclear semantics, replace with TS_VERIFY_CTX_set0_data().") -BIO *TS_VERIFY_CTX_set_data(TS_VERIFY_CTX *ctx, BIO *b); -# endif -int TS_VERIFY_CTX_set0_data(TS_VERIFY_CTX *ctx, BIO *b); -# ifndef OPENSSL_NO_DEPRECATED_3_4 -OSSL_DEPRECATEDIN_3_4_FOR("Unclear semantics, replace with TS_VERIFY_CTX_set0_imprint().") -unsigned char *TS_VERIFY_CTX_set_imprint(TS_VERIFY_CTX *ctx, - unsigned char *hexstr, long len); -# endif -int TS_VERIFY_CTX_set0_imprint(TS_VERIFY_CTX *ctx, - unsigned char *hexstr, long len); -# ifndef OPENSSL_NO_DEPRECATED_3_4 -OSSL_DEPRECATEDIN_3_4_FOR("Unclear semantics, replace with TS_VERIFY_CTX_set0_store().") -X509_STORE *TS_VERIFY_CTX_set_store(TS_VERIFY_CTX *ctx, X509_STORE *s); -# endif -int TS_VERIFY_CTX_set0_store(TS_VERIFY_CTX *ctx, X509_STORE *s); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define TS_VERIFY_CTS_set_certs(ctx, cert) TS_VERIFY_CTX_set_certs(ctx,cert) -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_4 -OSSL_DEPRECATEDIN_3_4_FOR("Unclear semantics, replace with TS_VERIFY_CTX_set0_certs().") -STACK_OF(X509) *TS_VERIFY_CTX_set_certs(TS_VERIFY_CTX *ctx, STACK_OF(X509) *certs); -# endif -int TS_VERIFY_CTX_set0_certs(TS_VERIFY_CTX *ctx, STACK_OF(X509) *certs); - -/*- - * If ctx is NULL, it allocates and returns a new object, otherwise - * it returns ctx. It initialises all the members as follows: - * flags = TS_VFY_ALL_IMPRINT & ~(TS_VFY_TSA_NAME | TS_VFY_SIGNATURE) - * certs = NULL - * store = NULL - * policy = policy from the request or NULL if absent (in this case - * TS_VFY_POLICY is cleared from flags as well) - * md_alg = MD algorithm from request - * imprint, imprint_len = imprint from request - * data = NULL - * nonce, nonce_len = nonce from the request or NULL if absent (in this case - * TS_VFY_NONCE is cleared from flags as well) - * tsa_name = NULL - * Important: after calling this method TS_VFY_SIGNATURE should be added! - */ -TS_VERIFY_CTX *TS_REQ_to_TS_VERIFY_CTX(TS_REQ *req, TS_VERIFY_CTX *ctx); - -/* Function declarations for TS_RESP defined in ts/ts_resp_print.c */ - -int TS_RESP_print_bio(BIO *bio, TS_RESP *a); -int TS_STATUS_INFO_print_bio(BIO *bio, TS_STATUS_INFO *a); -int TS_TST_INFO_print_bio(BIO *bio, TS_TST_INFO *a); - -/* Common utility functions defined in ts/ts_lib.c */ - -int TS_ASN1_INTEGER_print_bio(BIO *bio, const ASN1_INTEGER *num); -int TS_OBJ_print_bio(BIO *bio, const ASN1_OBJECT *obj); -int TS_ext_print_bio(BIO *bio, const STACK_OF(X509_EXTENSION) *extensions); -int TS_X509_ALGOR_print_bio(BIO *bio, const X509_ALGOR *alg); -int TS_MSG_IMPRINT_print_bio(BIO *bio, TS_MSG_IMPRINT *msg); - -/* - * Function declarations for handling configuration options, defined in - * ts/ts_conf.c - */ - -X509 *TS_CONF_load_cert(const char *file); -STACK_OF(X509) *TS_CONF_load_certs(const char *file); -EVP_PKEY *TS_CONF_load_key(const char *file, const char *pass); -const char *TS_CONF_get_tsa_section(CONF *conf, const char *section); -int TS_CONF_set_serial(CONF *conf, const char *section, TS_serial_cb cb, - TS_RESP_CTX *ctx); -#ifndef OPENSSL_NO_ENGINE -int TS_CONF_set_crypto_device(CONF *conf, const char *section, - const char *device); -int TS_CONF_set_default_engine(const char *name); -#endif -int TS_CONF_set_signer_cert(CONF *conf, const char *section, - const char *cert, TS_RESP_CTX *ctx); -int TS_CONF_set_certs(CONF *conf, const char *section, const char *certs, - TS_RESP_CTX *ctx); -int TS_CONF_set_signer_key(CONF *conf, const char *section, - const char *key, const char *pass, - TS_RESP_CTX *ctx); -int TS_CONF_set_signer_digest(CONF *conf, const char *section, - const char *md, TS_RESP_CTX *ctx); -int TS_CONF_set_def_policy(CONF *conf, const char *section, - const char *policy, TS_RESP_CTX *ctx); -int TS_CONF_set_policies(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_digests(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_accuracy(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_clock_precision_digits(const CONF *conf, const char *section, - TS_RESP_CTX *ctx); -int TS_CONF_set_ordering(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_tsa_name(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_ess_cert_id_chain(CONF *conf, const char *section, - TS_RESP_CTX *ctx); -int TS_CONF_set_ess_cert_id_digest(CONF *conf, const char *section, - TS_RESP_CTX *ctx); - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/tserr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/tserr.h deleted file mode 100644 index e1b943e..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/tserr.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_TSERR_H -# define OPENSSL_TSERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_TS - - -/* - * TS reason codes. - */ -# define TS_R_BAD_PKCS7_TYPE 132 -# define TS_R_BAD_TYPE 133 -# define TS_R_CANNOT_LOAD_CERT 137 -# define TS_R_CANNOT_LOAD_KEY 138 -# define TS_R_CERTIFICATE_VERIFY_ERROR 100 -# define TS_R_COULD_NOT_SET_ENGINE 127 -# define TS_R_COULD_NOT_SET_TIME 115 -# define TS_R_DETACHED_CONTENT 134 -# define TS_R_ESS_ADD_SIGNING_CERT_ERROR 116 -# define TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR 139 -# define TS_R_ESS_SIGNING_CERTIFICATE_ERROR 101 -# define TS_R_INVALID_NULL_POINTER 102 -# define TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE 117 -# define TS_R_MESSAGE_IMPRINT_MISMATCH 103 -# define TS_R_NONCE_MISMATCH 104 -# define TS_R_NONCE_NOT_RETURNED 105 -# define TS_R_NO_CONTENT 106 -# define TS_R_NO_TIME_STAMP_TOKEN 107 -# define TS_R_PKCS7_ADD_SIGNATURE_ERROR 118 -# define TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR 119 -# define TS_R_PKCS7_TO_TS_TST_INFO_FAILED 129 -# define TS_R_POLICY_MISMATCH 108 -# define TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 120 -# define TS_R_RESPONSE_SETUP_ERROR 121 -# define TS_R_SIGNATURE_FAILURE 109 -# define TS_R_THERE_MUST_BE_ONE_SIGNER 110 -# define TS_R_TIME_SYSCALL_ERROR 122 -# define TS_R_TOKEN_NOT_PRESENT 130 -# define TS_R_TOKEN_PRESENT 131 -# define TS_R_TSA_NAME_MISMATCH 111 -# define TS_R_TSA_UNTRUSTED 112 -# define TS_R_TST_INFO_SETUP_ERROR 123 -# define TS_R_TS_DATASIGN 124 -# define TS_R_UNACCEPTABLE_POLICY 125 -# define TS_R_UNSUPPORTED_MD_ALGORITHM 126 -# define TS_R_UNSUPPORTED_VERSION 113 -# define TS_R_VAR_BAD_VALUE 135 -# define TS_R_VAR_LOOKUP_FAILURE 136 -# define TS_R_WRONG_CONTENT_TYPE 114 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/txt_db.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/txt_db.h deleted file mode 100644 index af169a3..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/txt_db.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_TXT_DB_H -# define OPENSSL_TXT_DB_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_TXT_DB_H -# endif - -# include -# include -# include -# include - -# define DB_ERROR_OK 0 -# define DB_ERROR_MALLOC 1 -# define DB_ERROR_INDEX_CLASH 2 -# define DB_ERROR_INDEX_OUT_OF_RANGE 3 -# define DB_ERROR_NO_INDEX 4 -# define DB_ERROR_INSERT_INDEX_CLASH 5 -# define DB_ERROR_WRONG_NUM_FIELDS 6 - -#ifdef __cplusplus -extern "C" { -#endif - -typedef OPENSSL_STRING *OPENSSL_PSTRING; -DEFINE_SPECIAL_STACK_OF(OPENSSL_PSTRING, OPENSSL_STRING) - -typedef struct txt_db_st { - int num_fields; - STACK_OF(OPENSSL_PSTRING) *data; - LHASH_OF(OPENSSL_STRING) **index; - int (**qual) (OPENSSL_STRING *); - long error; - long arg1; - long arg2; - OPENSSL_STRING *arg_row; -} TXT_DB; - -TXT_DB *TXT_DB_read(BIO *in, int num); -long TXT_DB_write(BIO *out, TXT_DB *db); -int TXT_DB_create_index(TXT_DB *db, int field, int (*qual) (OPENSSL_STRING *), - OPENSSL_LH_HASHFUNC hash, OPENSSL_LH_COMPFUNC cmp); -void TXT_DB_free(TXT_DB *db); -OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx, - OPENSSL_STRING *value); -int TXT_DB_insert(TXT_DB *db, OPENSSL_STRING *value); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/types.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/types.h deleted file mode 100644 index 344d892..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/types.h +++ /dev/null @@ -1,248 +0,0 @@ -/* - * Copyright 2001-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * Unfortunate workaround to avoid symbol conflict with wincrypt.h - * See https://github.com/openssl/openssl/issues/9981 - */ -#ifdef _WIN32 -# define WINCRYPT_USE_SYMBOL_PREFIX -# undef X509_NAME -# undef X509_EXTENSIONS -# undef PKCS7_SIGNER_INFO -# undef OCSP_REQUEST -# undef OCSP_RESPONSE -#endif - -#ifndef OPENSSL_TYPES_H -# define OPENSSL_TYPES_H - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# include -# include -# include - -# if OPENSSL_VERSION_MAJOR >= 4 -# define OSSL_FUTURE_CONST const -# else -# define OSSL_FUTURE_CONST -# endif - -typedef struct ossl_provider_st OSSL_PROVIDER; /* Provider Object */ - -# ifdef NO_ASN1_TYPEDEFS -# define ASN1_INTEGER ASN1_STRING -# define ASN1_ENUMERATED ASN1_STRING -# define ASN1_BIT_STRING ASN1_STRING -# define ASN1_OCTET_STRING ASN1_STRING -# define ASN1_PRINTABLESTRING ASN1_STRING -# define ASN1_T61STRING ASN1_STRING -# define ASN1_IA5STRING ASN1_STRING -# define ASN1_UTCTIME ASN1_STRING -# define ASN1_GENERALIZEDTIME ASN1_STRING -# define ASN1_TIME ASN1_STRING -# define ASN1_GENERALSTRING ASN1_STRING -# define ASN1_UNIVERSALSTRING ASN1_STRING -# define ASN1_BMPSTRING ASN1_STRING -# define ASN1_VISIBLESTRING ASN1_STRING -# define ASN1_UTF8STRING ASN1_STRING -# define ASN1_BOOLEAN int -# define ASN1_NULL int -# else -typedef struct asn1_string_st ASN1_INTEGER; -typedef struct asn1_string_st ASN1_ENUMERATED; -typedef struct asn1_string_st ASN1_BIT_STRING; -typedef struct asn1_string_st ASN1_OCTET_STRING; -typedef struct asn1_string_st ASN1_PRINTABLESTRING; -typedef struct asn1_string_st ASN1_T61STRING; -typedef struct asn1_string_st ASN1_IA5STRING; -typedef struct asn1_string_st ASN1_GENERALSTRING; -typedef struct asn1_string_st ASN1_UNIVERSALSTRING; -typedef struct asn1_string_st ASN1_BMPSTRING; -typedef struct asn1_string_st ASN1_UTCTIME; -typedef struct asn1_string_st ASN1_TIME; -typedef struct asn1_string_st ASN1_GENERALIZEDTIME; -typedef struct asn1_string_st ASN1_VISIBLESTRING; -typedef struct asn1_string_st ASN1_UTF8STRING; -typedef struct asn1_string_st ASN1_STRING; -typedef int ASN1_BOOLEAN; -typedef int ASN1_NULL; -# endif - -typedef struct asn1_type_st ASN1_TYPE; -typedef struct asn1_object_st ASN1_OBJECT; -typedef struct asn1_string_table_st ASN1_STRING_TABLE; - -typedef struct ASN1_ITEM_st ASN1_ITEM; -typedef struct asn1_pctx_st ASN1_PCTX; -typedef struct asn1_sctx_st ASN1_SCTX; - -# ifdef BIGNUM -# undef BIGNUM -# endif - -typedef struct bio_st BIO; -typedef struct bignum_st BIGNUM; -typedef struct bignum_ctx BN_CTX; -typedef struct bn_blinding_st BN_BLINDING; -typedef struct bn_mont_ctx_st BN_MONT_CTX; -typedef struct bn_recp_ctx_st BN_RECP_CTX; -typedef struct bn_gencb_st BN_GENCB; - -typedef struct buf_mem_st BUF_MEM; - -STACK_OF(BIGNUM); -STACK_OF(BIGNUM_const); - -typedef struct err_state_st ERR_STATE; - -typedef struct evp_cipher_st EVP_CIPHER; -typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; -typedef struct evp_md_st EVP_MD; -typedef struct evp_md_ctx_st EVP_MD_CTX; -typedef struct evp_mac_st EVP_MAC; -typedef struct evp_mac_ctx_st EVP_MAC_CTX; -typedef struct evp_pkey_st EVP_PKEY; -typedef struct evp_skey_st EVP_SKEY; - -typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; - -typedef struct evp_pkey_method_st EVP_PKEY_METHOD; -typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; - -typedef struct evp_keymgmt_st EVP_KEYMGMT; - -typedef struct evp_kdf_st EVP_KDF; -typedef struct evp_kdf_ctx_st EVP_KDF_CTX; - -typedef struct evp_rand_st EVP_RAND; -typedef struct evp_rand_ctx_st EVP_RAND_CTX; - -typedef struct evp_keyexch_st EVP_KEYEXCH; - -typedef struct evp_signature_st EVP_SIGNATURE; - -typedef struct evp_skeymgmt_st EVP_SKEYMGMT; - -typedef struct evp_asym_cipher_st EVP_ASYM_CIPHER; - -typedef struct evp_kem_st EVP_KEM; - -typedef struct evp_Encode_Ctx_st EVP_ENCODE_CTX; - -typedef struct hmac_ctx_st HMAC_CTX; - -typedef struct dh_st DH; -typedef struct dh_method DH_METHOD; - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -typedef struct dsa_st DSA; -typedef struct dsa_method DSA_METHOD; -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -typedef struct rsa_st RSA; -typedef struct rsa_meth_st RSA_METHOD; -# endif -typedef struct rsa_pss_params_st RSA_PSS_PARAMS; - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -typedef struct ec_key_st EC_KEY; -typedef struct ec_key_method_st EC_KEY_METHOD; -# endif - -typedef struct rand_meth_st RAND_METHOD; -typedef struct rand_drbg_st RAND_DRBG; - -typedef struct ssl_dane_st SSL_DANE; -typedef struct x509_st X509; -typedef struct X509_algor_st X509_ALGOR; -typedef struct X509_crl_st X509_CRL; -typedef struct x509_crl_method_st X509_CRL_METHOD; -typedef struct x509_revoked_st X509_REVOKED; -typedef struct X509_name_st X509_NAME; -typedef struct X509_pubkey_st X509_PUBKEY; -typedef struct x509_store_st X509_STORE; -typedef struct x509_store_ctx_st X509_STORE_CTX; - -typedef struct x509_object_st X509_OBJECT; -typedef struct x509_lookup_st X509_LOOKUP; -typedef struct x509_lookup_method_st X509_LOOKUP_METHOD; -typedef struct X509_VERIFY_PARAM_st X509_VERIFY_PARAM; - -typedef struct x509_sig_info_st X509_SIG_INFO; - -typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO; - -typedef struct v3_ext_ctx X509V3_CTX; -typedef struct conf_st CONF; -typedef struct ossl_init_settings_st OPENSSL_INIT_SETTINGS; - -typedef struct ui_st UI; -typedef struct ui_method_st UI_METHOD; - -typedef struct engine_st ENGINE; -typedef struct ssl_st SSL; -typedef struct ssl_ctx_st SSL_CTX; - -typedef struct comp_ctx_st COMP_CTX; -typedef struct comp_method_st COMP_METHOD; - -typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; -typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; -typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; -typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; - -typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; -typedef struct DIST_POINT_st DIST_POINT; -typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; -typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; - -typedef struct crypto_ex_data_st CRYPTO_EX_DATA; - -typedef struct ossl_http_req_ctx_st OSSL_HTTP_REQ_CTX; -typedef struct ocsp_response_st OCSP_RESPONSE; -typedef struct ocsp_responder_id_st OCSP_RESPID; - -typedef struct sct_st SCT; -typedef struct sct_ctx_st SCT_CTX; -typedef struct ctlog_st CTLOG; -typedef struct ctlog_store_st CTLOG_STORE; -typedef struct ct_policy_eval_ctx_st CT_POLICY_EVAL_CTX; - -typedef struct ossl_store_info_st OSSL_STORE_INFO; -typedef struct ossl_store_search_st OSSL_STORE_SEARCH; - -typedef struct ossl_lib_ctx_st OSSL_LIB_CTX; - -typedef struct ossl_dispatch_st OSSL_DISPATCH; -typedef struct ossl_item_st OSSL_ITEM; -typedef struct ossl_algorithm_st OSSL_ALGORITHM; -typedef struct ossl_param_st OSSL_PARAM; -typedef struct ossl_param_bld_st OSSL_PARAM_BLD; - -typedef int pem_password_cb (char *buf, int size, int rwflag, void *userdata); - -typedef struct ossl_encoder_st OSSL_ENCODER; -typedef struct ossl_encoder_ctx_st OSSL_ENCODER_CTX; -typedef struct ossl_decoder_st OSSL_DECODER; -typedef struct ossl_decoder_ctx_st OSSL_DECODER_CTX; - -typedef struct ossl_self_test_st OSSL_SELF_TEST; - -#ifdef __cplusplus -} -#endif - -#endif /* OPENSSL_TYPES_H */ diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ui.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/ui.h deleted file mode 100644 index 0680a5f..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/ui.h +++ /dev/null @@ -1,407 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\ui.h.in - * - * Copyright 2001-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_UI_H -# define OPENSSL_UI_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_UI_H -# endif - -# include - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# include -# endif -# include -# include -# include -# include - -/* For compatibility reasons, the macro OPENSSL_NO_UI is currently retained */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifdef OPENSSL_NO_UI_CONSOLE -# define OPENSSL_NO_UI -# endif -# endif - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * All the following functions return -1 or NULL on error and in some cases - * (UI_process()) -2 if interrupted or in some other way cancelled. When - * everything is fine, they return 0, a positive value or a non-NULL pointer, - * all depending on their purpose. - */ - -/* Creators and destructor. */ -UI *UI_new(void); -UI *UI_new_method(const UI_METHOD *method); -void UI_free(UI *ui); - -/*- - The following functions are used to add strings to be printed and prompt - strings to prompt for data. The names are UI_{add,dup}__string - and UI_{add,dup}_input_boolean. - - UI_{add,dup}__string have the following meanings: - add add a text or prompt string. The pointers given to these - functions are used verbatim, no copying is done. - dup make a copy of the text or prompt string, then add the copy - to the collection of strings in the user interface. - - The function is a name for the functionality that the given - string shall be used for. It can be one of: - input use the string as data prompt. - verify use the string as verification prompt. This - is used to verify a previous input. - info use the string for informational output. - error use the string for error output. - Honestly, there's currently no difference between info and error for the - moment. - - UI_{add,dup}_input_boolean have the same semantics for "add" and "dup", - and are typically used when one wants to prompt for a yes/no response. - - All of the functions in this group take a UI and a prompt string. - The string input and verify addition functions also take a flag argument, - a buffer for the result to end up with, a minimum input size and a maximum - input size (the result buffer MUST be large enough to be able to contain - the maximum number of characters). Additionally, the verify addition - functions takes another buffer to compare the result against. - The boolean input functions take an action description string (which should - be safe to ignore if the expected user action is obvious, for example with - a dialog box with an OK button and a Cancel button), a string of acceptable - characters to mean OK and to mean Cancel. The two last strings are checked - to make sure they don't have common characters. Additionally, the same - flag argument as for the string input is taken, as well as a result buffer. - The result buffer is required to be at least one byte long. Depending on - the answer, the first character from the OK or the Cancel character strings - will be stored in the first byte of the result buffer. No NUL will be - added, so the result is *not* a string. - - On success, the all return an index of the added information. That index - is useful when retrieving results with UI_get0_result(). */ -int UI_add_input_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize); -int UI_dup_input_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize); -int UI_add_verify_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize, - const char *test_buf); -int UI_dup_verify_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize, - const char *test_buf); -int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc, - const char *ok_chars, const char *cancel_chars, - int flags, char *result_buf); -int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc, - const char *ok_chars, const char *cancel_chars, - int flags, char *result_buf); -int UI_add_info_string(UI *ui, const char *text); -int UI_dup_info_string(UI *ui, const char *text); -int UI_add_error_string(UI *ui, const char *text); -int UI_dup_error_string(UI *ui, const char *text); - -/* These are the possible flags. They can be or'ed together. */ -/* Use to have echoing of input */ -# define UI_INPUT_FLAG_ECHO 0x01 -/* - * Use a default password. Where that password is found is completely up to - * the application, it might for example be in the user data set with - * UI_add_user_data(). It is not recommended to have more than one input in - * each UI being marked with this flag, or the application might get - * confused. - */ -# define UI_INPUT_FLAG_DEFAULT_PWD 0x02 - -/*- - * The user of these routines may want to define flags of their own. The core - * UI won't look at those, but will pass them on to the method routines. They - * must use higher bits so they don't get confused with the UI bits above. - * UI_INPUT_FLAG_USER_BASE tells which is the lowest bit to use. A good - * example of use is this: - * - * #define MY_UI_FLAG1 (0x01 << UI_INPUT_FLAG_USER_BASE) - * -*/ -# define UI_INPUT_FLAG_USER_BASE 16 - -/*- - * The following function helps construct a prompt. - * phrase_desc is a textual short description of the phrase to enter, - * for example "pass phrase", and - * object_name is the name of the object - * (which might be a card name or a file name) or NULL. - * The returned string shall always be allocated on the heap with - * OPENSSL_malloc(), and need to be free'd with OPENSSL_free(). - * - * If the ui_method doesn't contain a pointer to a user-defined prompt - * constructor, a default string is built, looking like this: - * - * "Enter {phrase_desc} for {object_name}:" - * - * So, if phrase_desc has the value "pass phrase" and object_name has - * the value "foo.key", the resulting string is: - * - * "Enter pass phrase for foo.key:" -*/ -char *UI_construct_prompt(UI *ui_method, - const char *phrase_desc, const char *object_name); - -/* - * The following function is used to store a pointer to user-specific data. - * Any previous such pointer will be returned and replaced. - * - * For callback purposes, this function makes a lot more sense than using - * ex_data, since the latter requires that different parts of OpenSSL or - * applications share the same ex_data index. - * - * Note that the UI_OpenSSL() method completely ignores the user data. Other - * methods may not, however. - */ -void *UI_add_user_data(UI *ui, void *user_data); -/* - * Alternatively, this function is used to duplicate the user data. - * This uses the duplicator method function. The destroy function will - * be used to free the user data in this case. - */ -int UI_dup_user_data(UI *ui, void *user_data); -/* We need a user data retrieving function as well. */ -void *UI_get0_user_data(UI *ui); - -/* Return the result associated with a prompt given with the index i. */ -const char *UI_get0_result(UI *ui, int i); -int UI_get_result_length(UI *ui, int i); - -/* When all strings have been added, process the whole thing. */ -int UI_process(UI *ui); - -/* - * Give a user interface parameterised control commands. This can be used to - * send down an integer, a data pointer or a function pointer, as well as be - * used to get information from a UI. - */ -int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void)); - -/* The commands */ -/* - * Use UI_CONTROL_PRINT_ERRORS with the value 1 to have UI_process print the - * OpenSSL error stack before printing any info or added error messages and - * before any prompting. - */ -# define UI_CTRL_PRINT_ERRORS 1 -/* - * Check if a UI_process() is possible to do again with the same instance of - * a user interface. This makes UI_ctrl() return 1 if it is redoable, and 0 - * if not. - */ -# define UI_CTRL_IS_REDOABLE 2 - -/* Some methods may use extra data */ -# define UI_set_app_data(s,arg) UI_set_ex_data(s,0,arg) -# define UI_get_app_data(s) UI_get_ex_data(s,0) - -# define UI_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_UI, l, p, newf, dupf, freef) -int UI_set_ex_data(UI *r, int idx, void *arg); -void *UI_get_ex_data(const UI *r, int idx); - -/* Use specific methods instead of the built-in one */ -void UI_set_default_method(const UI_METHOD *meth); -const UI_METHOD *UI_get_default_method(void); -const UI_METHOD *UI_get_method(UI *ui); -const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth); - -# ifndef OPENSSL_NO_UI_CONSOLE - -/* The method with all the built-in thingies */ -UI_METHOD *UI_OpenSSL(void); - -# endif - -/* - * NULL method. Literally does nothing, but may serve as a placeholder - * to avoid internal default. - */ -const UI_METHOD *UI_null(void); - -/* ---------- For method writers ---------- */ -/*- - A method contains a number of functions that implement the low level - of the User Interface. The functions are: - - an opener This function starts a session, maybe by opening - a channel to a tty, or by opening a window. - a writer This function is called to write a given string, - maybe to the tty, maybe as a field label in a - window. - a flusher This function is called to flush everything that - has been output so far. It can be used to actually - display a dialog box after it has been built. - a reader This function is called to read a given prompt, - maybe from the tty, maybe from a field in a - window. Note that it's called with all string - structures, not only the prompt ones, so it must - check such things itself. - a closer This function closes the session, maybe by closing - the channel to the tty, or closing the window. - - All these functions are expected to return: - - 0 on error. - 1 on success. - -1 on out-of-band events, for example if some prompting has - been canceled (by pressing Ctrl-C, for example). This is - only checked when returned by the flusher or the reader. - - The way this is used, the opener is first called, then the writer for all - strings, then the flusher, then the reader for all strings and finally the - closer. Note that if you want to prompt from a terminal or other command - line interface, the best is to have the reader also write the prompts - instead of having the writer do it. If you want to prompt from a dialog - box, the writer can be used to build up the contents of the box, and the - flusher to actually display the box and run the event loop until all data - has been given, after which the reader only grabs the given data and puts - them back into the UI strings. - - All method functions take a UI as argument. Additionally, the writer and - the reader take a UI_STRING. -*/ - -/* - * The UI_STRING type is the data structure that contains all the needed info - * about a string or a prompt, including test data for a verification prompt. - */ -typedef struct ui_string_st UI_STRING; - -SKM_DEFINE_STACK_OF_INTERNAL(UI_STRING, UI_STRING, UI_STRING) -#define sk_UI_STRING_num(sk) OPENSSL_sk_num(ossl_check_const_UI_STRING_sk_type(sk)) -#define sk_UI_STRING_value(sk, idx) ((UI_STRING *)OPENSSL_sk_value(ossl_check_const_UI_STRING_sk_type(sk), (idx))) -#define sk_UI_STRING_new(cmp) ((STACK_OF(UI_STRING) *)OPENSSL_sk_new(ossl_check_UI_STRING_compfunc_type(cmp))) -#define sk_UI_STRING_new_null() ((STACK_OF(UI_STRING) *)OPENSSL_sk_new_null()) -#define sk_UI_STRING_new_reserve(cmp, n) ((STACK_OF(UI_STRING) *)OPENSSL_sk_new_reserve(ossl_check_UI_STRING_compfunc_type(cmp), (n))) -#define sk_UI_STRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_UI_STRING_sk_type(sk), (n)) -#define sk_UI_STRING_free(sk) OPENSSL_sk_free(ossl_check_UI_STRING_sk_type(sk)) -#define sk_UI_STRING_zero(sk) OPENSSL_sk_zero(ossl_check_UI_STRING_sk_type(sk)) -#define sk_UI_STRING_delete(sk, i) ((UI_STRING *)OPENSSL_sk_delete(ossl_check_UI_STRING_sk_type(sk), (i))) -#define sk_UI_STRING_delete_ptr(sk, ptr) ((UI_STRING *)OPENSSL_sk_delete_ptr(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr))) -#define sk_UI_STRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr)) -#define sk_UI_STRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr)) -#define sk_UI_STRING_pop(sk) ((UI_STRING *)OPENSSL_sk_pop(ossl_check_UI_STRING_sk_type(sk))) -#define sk_UI_STRING_shift(sk) ((UI_STRING *)OPENSSL_sk_shift(ossl_check_UI_STRING_sk_type(sk))) -#define sk_UI_STRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_freefunc_type(freefunc)) -#define sk_UI_STRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr), (idx)) -#define sk_UI_STRING_set(sk, idx, ptr) ((UI_STRING *)OPENSSL_sk_set(ossl_check_UI_STRING_sk_type(sk), (idx), ossl_check_UI_STRING_type(ptr))) -#define sk_UI_STRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr)) -#define sk_UI_STRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr)) -#define sk_UI_STRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr), pnum) -#define sk_UI_STRING_sort(sk) OPENSSL_sk_sort(ossl_check_UI_STRING_sk_type(sk)) -#define sk_UI_STRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_UI_STRING_sk_type(sk)) -#define sk_UI_STRING_dup(sk) ((STACK_OF(UI_STRING) *)OPENSSL_sk_dup(ossl_check_const_UI_STRING_sk_type(sk))) -#define sk_UI_STRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(UI_STRING) *)OPENSSL_sk_deep_copy(ossl_check_const_UI_STRING_sk_type(sk), ossl_check_UI_STRING_copyfunc_type(copyfunc), ossl_check_UI_STRING_freefunc_type(freefunc))) -#define sk_UI_STRING_set_cmp_func(sk, cmp) ((sk_UI_STRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_compfunc_type(cmp))) - - -/* - * The different types of strings that are currently supported. This is only - * needed by method authors. - */ -enum UI_string_types { - UIT_NONE = 0, - UIT_PROMPT, /* Prompt for a string */ - UIT_VERIFY, /* Prompt for a string and verify */ - UIT_BOOLEAN, /* Prompt for a yes/no response */ - UIT_INFO, /* Send info to the user */ - UIT_ERROR /* Send an error message to the user */ -}; - -/* Create and manipulate methods */ -UI_METHOD *UI_create_method(const char *name); -void UI_destroy_method(UI_METHOD *ui_method); -int UI_method_set_opener(UI_METHOD *method, int (*opener) (UI *ui)); -int UI_method_set_writer(UI_METHOD *method, - int (*writer) (UI *ui, UI_STRING *uis)); -int UI_method_set_flusher(UI_METHOD *method, int (*flusher) (UI *ui)); -int UI_method_set_reader(UI_METHOD *method, - int (*reader) (UI *ui, UI_STRING *uis)); -int UI_method_set_closer(UI_METHOD *method, int (*closer) (UI *ui)); -int UI_method_set_data_duplicator(UI_METHOD *method, - void *(*duplicator) (UI *ui, void *ui_data), - void (*destructor)(UI *ui, void *ui_data)); -int UI_method_set_prompt_constructor(UI_METHOD *method, - char *(*prompt_constructor) (UI *ui, - const char - *phrase_desc, - const char - *object_name)); -int UI_method_set_ex_data(UI_METHOD *method, int idx, void *data); -int (*UI_method_get_opener(const UI_METHOD *method)) (UI *); -int (*UI_method_get_writer(const UI_METHOD *method)) (UI *, UI_STRING *); -int (*UI_method_get_flusher(const UI_METHOD *method)) (UI *); -int (*UI_method_get_reader(const UI_METHOD *method)) (UI *, UI_STRING *); -int (*UI_method_get_closer(const UI_METHOD *method)) (UI *); -char *(*UI_method_get_prompt_constructor(const UI_METHOD *method)) - (UI *, const char *, const char *); -void *(*UI_method_get_data_duplicator(const UI_METHOD *method)) (UI *, void *); -void (*UI_method_get_data_destructor(const UI_METHOD *method)) (UI *, void *); -const void *UI_method_get_ex_data(const UI_METHOD *method, int idx); - -/* - * The following functions are helpers for method writers to access relevant - * data from a UI_STRING. - */ - -/* Return type of the UI_STRING */ -enum UI_string_types UI_get_string_type(UI_STRING *uis); -/* Return input flags of the UI_STRING */ -int UI_get_input_flags(UI_STRING *uis); -/* Return the actual string to output (the prompt, info or error) */ -const char *UI_get0_output_string(UI_STRING *uis); -/* - * Return the optional action string to output (the boolean prompt - * instruction) - */ -const char *UI_get0_action_string(UI_STRING *uis); -/* Return the result of a prompt */ -const char *UI_get0_result_string(UI_STRING *uis); -int UI_get_result_string_length(UI_STRING *uis); -/* - * Return the string to test the result against. Only useful with verifies. - */ -const char *UI_get0_test_string(UI_STRING *uis); -/* Return the required minimum size of the result */ -int UI_get_result_minsize(UI_STRING *uis); -/* Return the required maximum size of the result */ -int UI_get_result_maxsize(UI_STRING *uis); -/* Set the result of a UI_STRING. */ -int UI_set_result(UI *ui, UI_STRING *uis, const char *result); -int UI_set_result_ex(UI *ui, UI_STRING *uis, const char *result, int len); - -/* A couple of popular utility functions */ -int UI_UTIL_read_pw_string(char *buf, int length, const char *prompt, - int verify); -int UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt, - int verify); -UI_METHOD *UI_UTIL_wrap_read_pem_callback(pem_password_cb *cb, int rwflag); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/uierr.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/uierr.h deleted file mode 100644 index 473b04e..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/uierr.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_UIERR_H -# define OPENSSL_UIERR_H -# pragma once - -# include -# include -# include - - - -/* - * UI reason codes. - */ -# define UI_R_COMMON_OK_AND_CANCEL_CHARACTERS 104 -# define UI_R_INDEX_TOO_LARGE 102 -# define UI_R_INDEX_TOO_SMALL 103 -# define UI_R_NO_RESULT_BUFFER 105 -# define UI_R_PROCESSING_ERROR 107 -# define UI_R_RESULT_TOO_LARGE 100 -# define UI_R_RESULT_TOO_SMALL 101 -# define UI_R_SYSASSIGN_ERROR 109 -# define UI_R_SYSDASSGN_ERROR 110 -# define UI_R_SYSQIOW_ERROR 111 -# define UI_R_UNKNOWN_CONTROL_COMMAND 106 -# define UI_R_UNKNOWN_TTYGET_ERRNO_VALUE 108 -# define UI_R_USER_DATA_DUPLICATION_UNSUPPORTED 112 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/whrlpool.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/whrlpool.h deleted file mode 100644 index 05ba463..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/whrlpool.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2005-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_WHRLPOOL_H -# define OPENSSL_WHRLPOOL_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_WHRLPOOL_H -# endif - -# include - -# ifndef OPENSSL_NO_WHIRLPOOL -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define WHIRLPOOL_DIGEST_LENGTH (512/8) - -# if !defined(OPENSSL_NO_DEPRECATED_3_0) - -# define WHIRLPOOL_BBLOCK 512 -# define WHIRLPOOL_COUNTER (256/8) - -typedef struct { - union { - unsigned char c[WHIRLPOOL_DIGEST_LENGTH]; - /* double q is here to ensure 64-bit alignment */ - double q[WHIRLPOOL_DIGEST_LENGTH / sizeof(double)]; - } H; - unsigned char data[WHIRLPOOL_BBLOCK / 8]; - unsigned int bitoff; - size_t bitlen[WHIRLPOOL_COUNTER / sizeof(size_t)]; -} WHIRLPOOL_CTX; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int WHIRLPOOL_Init(WHIRLPOOL_CTX *c); -OSSL_DEPRECATEDIN_3_0 int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, - const void *inp, size_t bytes); -OSSL_DEPRECATEDIN_3_0 void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, - const void *inp, size_t bits); -OSSL_DEPRECATEDIN_3_0 int WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c); -OSSL_DEPRECATEDIN_3_0 unsigned char *WHIRLPOOL(const void *inp, size_t bytes, - unsigned char *md); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/x509.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/x509.h deleted file mode 100644 index 1fd9005..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/x509.h +++ /dev/null @@ -1,1304 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\x509.h.in - * - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_X509_H -# define OPENSSL_X509_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_X509_H -# endif - -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# include -# include -# include -# endif - -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Needed stacks for types defined in other headers */ -SKM_DEFINE_STACK_OF_INTERNAL(X509_NAME, X509_NAME, X509_NAME) -#define sk_X509_NAME_num(sk) OPENSSL_sk_num(ossl_check_const_X509_NAME_sk_type(sk)) -#define sk_X509_NAME_value(sk, idx) ((X509_NAME *)OPENSSL_sk_value(ossl_check_const_X509_NAME_sk_type(sk), (idx))) -#define sk_X509_NAME_new(cmp) ((STACK_OF(X509_NAME) *)OPENSSL_sk_new(ossl_check_X509_NAME_compfunc_type(cmp))) -#define sk_X509_NAME_new_null() ((STACK_OF(X509_NAME) *)OPENSSL_sk_new_null()) -#define sk_X509_NAME_new_reserve(cmp, n) ((STACK_OF(X509_NAME) *)OPENSSL_sk_new_reserve(ossl_check_X509_NAME_compfunc_type(cmp), (n))) -#define sk_X509_NAME_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_NAME_sk_type(sk), (n)) -#define sk_X509_NAME_free(sk) OPENSSL_sk_free(ossl_check_X509_NAME_sk_type(sk)) -#define sk_X509_NAME_zero(sk) OPENSSL_sk_zero(ossl_check_X509_NAME_sk_type(sk)) -#define sk_X509_NAME_delete(sk, i) ((X509_NAME *)OPENSSL_sk_delete(ossl_check_X509_NAME_sk_type(sk), (i))) -#define sk_X509_NAME_delete_ptr(sk, ptr) ((X509_NAME *)OPENSSL_sk_delete_ptr(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr))) -#define sk_X509_NAME_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr)) -#define sk_X509_NAME_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr)) -#define sk_X509_NAME_pop(sk) ((X509_NAME *)OPENSSL_sk_pop(ossl_check_X509_NAME_sk_type(sk))) -#define sk_X509_NAME_shift(sk) ((X509_NAME *)OPENSSL_sk_shift(ossl_check_X509_NAME_sk_type(sk))) -#define sk_X509_NAME_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_freefunc_type(freefunc)) -#define sk_X509_NAME_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr), (idx)) -#define sk_X509_NAME_set(sk, idx, ptr) ((X509_NAME *)OPENSSL_sk_set(ossl_check_X509_NAME_sk_type(sk), (idx), ossl_check_X509_NAME_type(ptr))) -#define sk_X509_NAME_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr)) -#define sk_X509_NAME_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr)) -#define sk_X509_NAME_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr), pnum) -#define sk_X509_NAME_sort(sk) OPENSSL_sk_sort(ossl_check_X509_NAME_sk_type(sk)) -#define sk_X509_NAME_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_NAME_sk_type(sk)) -#define sk_X509_NAME_dup(sk) ((STACK_OF(X509_NAME) *)OPENSSL_sk_dup(ossl_check_const_X509_NAME_sk_type(sk))) -#define sk_X509_NAME_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_NAME) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_NAME_sk_type(sk), ossl_check_X509_NAME_copyfunc_type(copyfunc), ossl_check_X509_NAME_freefunc_type(freefunc))) -#define sk_X509_NAME_set_cmp_func(sk, cmp) ((sk_X509_NAME_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(X509, X509, X509) -#define sk_X509_num(sk) OPENSSL_sk_num(ossl_check_const_X509_sk_type(sk)) -#define sk_X509_value(sk, idx) ((X509 *)OPENSSL_sk_value(ossl_check_const_X509_sk_type(sk), (idx))) -#define sk_X509_new(cmp) ((STACK_OF(X509) *)OPENSSL_sk_new(ossl_check_X509_compfunc_type(cmp))) -#define sk_X509_new_null() ((STACK_OF(X509) *)OPENSSL_sk_new_null()) -#define sk_X509_new_reserve(cmp, n) ((STACK_OF(X509) *)OPENSSL_sk_new_reserve(ossl_check_X509_compfunc_type(cmp), (n))) -#define sk_X509_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_sk_type(sk), (n)) -#define sk_X509_free(sk) OPENSSL_sk_free(ossl_check_X509_sk_type(sk)) -#define sk_X509_zero(sk) OPENSSL_sk_zero(ossl_check_X509_sk_type(sk)) -#define sk_X509_delete(sk, i) ((X509 *)OPENSSL_sk_delete(ossl_check_X509_sk_type(sk), (i))) -#define sk_X509_delete_ptr(sk, ptr) ((X509 *)OPENSSL_sk_delete_ptr(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr))) -#define sk_X509_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr)) -#define sk_X509_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr)) -#define sk_X509_pop(sk) ((X509 *)OPENSSL_sk_pop(ossl_check_X509_sk_type(sk))) -#define sk_X509_shift(sk) ((X509 *)OPENSSL_sk_shift(ossl_check_X509_sk_type(sk))) -#define sk_X509_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_sk_type(sk), ossl_check_X509_freefunc_type(freefunc)) -#define sk_X509_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr), (idx)) -#define sk_X509_set(sk, idx, ptr) ((X509 *)OPENSSL_sk_set(ossl_check_X509_sk_type(sk), (idx), ossl_check_X509_type(ptr))) -#define sk_X509_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr)) -#define sk_X509_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr)) -#define sk_X509_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr), pnum) -#define sk_X509_sort(sk) OPENSSL_sk_sort(ossl_check_X509_sk_type(sk)) -#define sk_X509_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_sk_type(sk)) -#define sk_X509_dup(sk) ((STACK_OF(X509) *)OPENSSL_sk_dup(ossl_check_const_X509_sk_type(sk))) -#define sk_X509_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_sk_type(sk), ossl_check_X509_copyfunc_type(copyfunc), ossl_check_X509_freefunc_type(freefunc))) -#define sk_X509_set_cmp_func(sk, cmp) ((sk_X509_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_sk_type(sk), ossl_check_X509_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(X509_REVOKED, X509_REVOKED, X509_REVOKED) -#define sk_X509_REVOKED_num(sk) OPENSSL_sk_num(ossl_check_const_X509_REVOKED_sk_type(sk)) -#define sk_X509_REVOKED_value(sk, idx) ((X509_REVOKED *)OPENSSL_sk_value(ossl_check_const_X509_REVOKED_sk_type(sk), (idx))) -#define sk_X509_REVOKED_new(cmp) ((STACK_OF(X509_REVOKED) *)OPENSSL_sk_new(ossl_check_X509_REVOKED_compfunc_type(cmp))) -#define sk_X509_REVOKED_new_null() ((STACK_OF(X509_REVOKED) *)OPENSSL_sk_new_null()) -#define sk_X509_REVOKED_new_reserve(cmp, n) ((STACK_OF(X509_REVOKED) *)OPENSSL_sk_new_reserve(ossl_check_X509_REVOKED_compfunc_type(cmp), (n))) -#define sk_X509_REVOKED_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_REVOKED_sk_type(sk), (n)) -#define sk_X509_REVOKED_free(sk) OPENSSL_sk_free(ossl_check_X509_REVOKED_sk_type(sk)) -#define sk_X509_REVOKED_zero(sk) OPENSSL_sk_zero(ossl_check_X509_REVOKED_sk_type(sk)) -#define sk_X509_REVOKED_delete(sk, i) ((X509_REVOKED *)OPENSSL_sk_delete(ossl_check_X509_REVOKED_sk_type(sk), (i))) -#define sk_X509_REVOKED_delete_ptr(sk, ptr) ((X509_REVOKED *)OPENSSL_sk_delete_ptr(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr))) -#define sk_X509_REVOKED_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr)) -#define sk_X509_REVOKED_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr)) -#define sk_X509_REVOKED_pop(sk) ((X509_REVOKED *)OPENSSL_sk_pop(ossl_check_X509_REVOKED_sk_type(sk))) -#define sk_X509_REVOKED_shift(sk) ((X509_REVOKED *)OPENSSL_sk_shift(ossl_check_X509_REVOKED_sk_type(sk))) -#define sk_X509_REVOKED_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_freefunc_type(freefunc)) -#define sk_X509_REVOKED_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr), (idx)) -#define sk_X509_REVOKED_set(sk, idx, ptr) ((X509_REVOKED *)OPENSSL_sk_set(ossl_check_X509_REVOKED_sk_type(sk), (idx), ossl_check_X509_REVOKED_type(ptr))) -#define sk_X509_REVOKED_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr)) -#define sk_X509_REVOKED_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr)) -#define sk_X509_REVOKED_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr), pnum) -#define sk_X509_REVOKED_sort(sk) OPENSSL_sk_sort(ossl_check_X509_REVOKED_sk_type(sk)) -#define sk_X509_REVOKED_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_REVOKED_sk_type(sk)) -#define sk_X509_REVOKED_dup(sk) ((STACK_OF(X509_REVOKED) *)OPENSSL_sk_dup(ossl_check_const_X509_REVOKED_sk_type(sk))) -#define sk_X509_REVOKED_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_REVOKED) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_copyfunc_type(copyfunc), ossl_check_X509_REVOKED_freefunc_type(freefunc))) -#define sk_X509_REVOKED_set_cmp_func(sk, cmp) ((sk_X509_REVOKED_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) -#define sk_X509_CRL_num(sk) OPENSSL_sk_num(ossl_check_const_X509_CRL_sk_type(sk)) -#define sk_X509_CRL_value(sk, idx) ((X509_CRL *)OPENSSL_sk_value(ossl_check_const_X509_CRL_sk_type(sk), (idx))) -#define sk_X509_CRL_new(cmp) ((STACK_OF(X509_CRL) *)OPENSSL_sk_new(ossl_check_X509_CRL_compfunc_type(cmp))) -#define sk_X509_CRL_new_null() ((STACK_OF(X509_CRL) *)OPENSSL_sk_new_null()) -#define sk_X509_CRL_new_reserve(cmp, n) ((STACK_OF(X509_CRL) *)OPENSSL_sk_new_reserve(ossl_check_X509_CRL_compfunc_type(cmp), (n))) -#define sk_X509_CRL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_CRL_sk_type(sk), (n)) -#define sk_X509_CRL_free(sk) OPENSSL_sk_free(ossl_check_X509_CRL_sk_type(sk)) -#define sk_X509_CRL_zero(sk) OPENSSL_sk_zero(ossl_check_X509_CRL_sk_type(sk)) -#define sk_X509_CRL_delete(sk, i) ((X509_CRL *)OPENSSL_sk_delete(ossl_check_X509_CRL_sk_type(sk), (i))) -#define sk_X509_CRL_delete_ptr(sk, ptr) ((X509_CRL *)OPENSSL_sk_delete_ptr(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr))) -#define sk_X509_CRL_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr)) -#define sk_X509_CRL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr)) -#define sk_X509_CRL_pop(sk) ((X509_CRL *)OPENSSL_sk_pop(ossl_check_X509_CRL_sk_type(sk))) -#define sk_X509_CRL_shift(sk) ((X509_CRL *)OPENSSL_sk_shift(ossl_check_X509_CRL_sk_type(sk))) -#define sk_X509_CRL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_freefunc_type(freefunc)) -#define sk_X509_CRL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr), (idx)) -#define sk_X509_CRL_set(sk, idx, ptr) ((X509_CRL *)OPENSSL_sk_set(ossl_check_X509_CRL_sk_type(sk), (idx), ossl_check_X509_CRL_type(ptr))) -#define sk_X509_CRL_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr)) -#define sk_X509_CRL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr)) -#define sk_X509_CRL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr), pnum) -#define sk_X509_CRL_sort(sk) OPENSSL_sk_sort(ossl_check_X509_CRL_sk_type(sk)) -#define sk_X509_CRL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_CRL_sk_type(sk)) -#define sk_X509_CRL_dup(sk) ((STACK_OF(X509_CRL) *)OPENSSL_sk_dup(ossl_check_const_X509_CRL_sk_type(sk))) -#define sk_X509_CRL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_CRL) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_CRL_sk_type(sk), ossl_check_X509_CRL_copyfunc_type(copyfunc), ossl_check_X509_CRL_freefunc_type(freefunc))) -#define sk_X509_CRL_set_cmp_func(sk, cmp) ((sk_X509_CRL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_compfunc_type(cmp))) - - -/* Flags for X509_get_signature_info() */ -/* Signature info is valid */ -# define X509_SIG_INFO_VALID 0x1 -/* Signature is suitable for TLS use */ -# define X509_SIG_INFO_TLS 0x2 - -# define X509_FILETYPE_PEM 1 -# define X509_FILETYPE_ASN1 2 -# define X509_FILETYPE_DEFAULT 3 - -/*- - * : - * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` - * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is - * then the MSB of the second octet, or 0x8000. - */ -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ -# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ -# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ -# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ -# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ -# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ -# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ -# ifndef OPENSSL_NO_DEPRECATED_3_4 -# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ -# endif - -struct X509_algor_st { - ASN1_OBJECT *algorithm; - ASN1_TYPE *parameter; -} /* X509_ALGOR */ ; - -typedef STACK_OF(X509_ALGOR) X509_ALGORS; - -typedef struct X509_val_st { - ASN1_TIME *notBefore; - ASN1_TIME *notAfter; -} X509_VAL; - -typedef struct X509_sig_st X509_SIG; - -typedef struct X509_name_entry_st X509_NAME_ENTRY; - -SKM_DEFINE_STACK_OF_INTERNAL(X509_NAME_ENTRY, X509_NAME_ENTRY, X509_NAME_ENTRY) -#define sk_X509_NAME_ENTRY_num(sk) OPENSSL_sk_num(ossl_check_const_X509_NAME_ENTRY_sk_type(sk)) -#define sk_X509_NAME_ENTRY_value(sk, idx) ((X509_NAME_ENTRY *)OPENSSL_sk_value(ossl_check_const_X509_NAME_ENTRY_sk_type(sk), (idx))) -#define sk_X509_NAME_ENTRY_new(cmp) ((STACK_OF(X509_NAME_ENTRY) *)OPENSSL_sk_new(ossl_check_X509_NAME_ENTRY_compfunc_type(cmp))) -#define sk_X509_NAME_ENTRY_new_null() ((STACK_OF(X509_NAME_ENTRY) *)OPENSSL_sk_new_null()) -#define sk_X509_NAME_ENTRY_new_reserve(cmp, n) ((STACK_OF(X509_NAME_ENTRY) *)OPENSSL_sk_new_reserve(ossl_check_X509_NAME_ENTRY_compfunc_type(cmp), (n))) -#define sk_X509_NAME_ENTRY_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_NAME_ENTRY_sk_type(sk), (n)) -#define sk_X509_NAME_ENTRY_free(sk) OPENSSL_sk_free(ossl_check_X509_NAME_ENTRY_sk_type(sk)) -#define sk_X509_NAME_ENTRY_zero(sk) OPENSSL_sk_zero(ossl_check_X509_NAME_ENTRY_sk_type(sk)) -#define sk_X509_NAME_ENTRY_delete(sk, i) ((X509_NAME_ENTRY *)OPENSSL_sk_delete(ossl_check_X509_NAME_ENTRY_sk_type(sk), (i))) -#define sk_X509_NAME_ENTRY_delete_ptr(sk, ptr) ((X509_NAME_ENTRY *)OPENSSL_sk_delete_ptr(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr))) -#define sk_X509_NAME_ENTRY_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr)) -#define sk_X509_NAME_ENTRY_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr)) -#define sk_X509_NAME_ENTRY_pop(sk) ((X509_NAME_ENTRY *)OPENSSL_sk_pop(ossl_check_X509_NAME_ENTRY_sk_type(sk))) -#define sk_X509_NAME_ENTRY_shift(sk) ((X509_NAME_ENTRY *)OPENSSL_sk_shift(ossl_check_X509_NAME_ENTRY_sk_type(sk))) -#define sk_X509_NAME_ENTRY_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_freefunc_type(freefunc)) -#define sk_X509_NAME_ENTRY_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr), (idx)) -#define sk_X509_NAME_ENTRY_set(sk, idx, ptr) ((X509_NAME_ENTRY *)OPENSSL_sk_set(ossl_check_X509_NAME_ENTRY_sk_type(sk), (idx), ossl_check_X509_NAME_ENTRY_type(ptr))) -#define sk_X509_NAME_ENTRY_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr)) -#define sk_X509_NAME_ENTRY_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr)) -#define sk_X509_NAME_ENTRY_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr), pnum) -#define sk_X509_NAME_ENTRY_sort(sk) OPENSSL_sk_sort(ossl_check_X509_NAME_ENTRY_sk_type(sk)) -#define sk_X509_NAME_ENTRY_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_NAME_ENTRY_sk_type(sk)) -#define sk_X509_NAME_ENTRY_dup(sk) ((STACK_OF(X509_NAME_ENTRY) *)OPENSSL_sk_dup(ossl_check_const_X509_NAME_ENTRY_sk_type(sk))) -#define sk_X509_NAME_ENTRY_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_NAME_ENTRY) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_copyfunc_type(copyfunc), ossl_check_X509_NAME_ENTRY_freefunc_type(freefunc))) -#define sk_X509_NAME_ENTRY_set_cmp_func(sk, cmp) ((sk_X509_NAME_ENTRY_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_compfunc_type(cmp))) - - -# define X509_EX_V_NETSCAPE_HACK 0x8000 -# define X509_EX_V_INIT 0x0001 -typedef struct X509_extension_st X509_EXTENSION; -SKM_DEFINE_STACK_OF_INTERNAL(X509_EXTENSION, X509_EXTENSION, X509_EXTENSION) -#define sk_X509_EXTENSION_num(sk) OPENSSL_sk_num(ossl_check_const_X509_EXTENSION_sk_type(sk)) -#define sk_X509_EXTENSION_value(sk, idx) ((X509_EXTENSION *)OPENSSL_sk_value(ossl_check_const_X509_EXTENSION_sk_type(sk), (idx))) -#define sk_X509_EXTENSION_new(cmp) ((STACK_OF(X509_EXTENSION) *)OPENSSL_sk_new(ossl_check_X509_EXTENSION_compfunc_type(cmp))) -#define sk_X509_EXTENSION_new_null() ((STACK_OF(X509_EXTENSION) *)OPENSSL_sk_new_null()) -#define sk_X509_EXTENSION_new_reserve(cmp, n) ((STACK_OF(X509_EXTENSION) *)OPENSSL_sk_new_reserve(ossl_check_X509_EXTENSION_compfunc_type(cmp), (n))) -#define sk_X509_EXTENSION_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_EXTENSION_sk_type(sk), (n)) -#define sk_X509_EXTENSION_free(sk) OPENSSL_sk_free(ossl_check_X509_EXTENSION_sk_type(sk)) -#define sk_X509_EXTENSION_zero(sk) OPENSSL_sk_zero(ossl_check_X509_EXTENSION_sk_type(sk)) -#define sk_X509_EXTENSION_delete(sk, i) ((X509_EXTENSION *)OPENSSL_sk_delete(ossl_check_X509_EXTENSION_sk_type(sk), (i))) -#define sk_X509_EXTENSION_delete_ptr(sk, ptr) ((X509_EXTENSION *)OPENSSL_sk_delete_ptr(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr))) -#define sk_X509_EXTENSION_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr)) -#define sk_X509_EXTENSION_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr)) -#define sk_X509_EXTENSION_pop(sk) ((X509_EXTENSION *)OPENSSL_sk_pop(ossl_check_X509_EXTENSION_sk_type(sk))) -#define sk_X509_EXTENSION_shift(sk) ((X509_EXTENSION *)OPENSSL_sk_shift(ossl_check_X509_EXTENSION_sk_type(sk))) -#define sk_X509_EXTENSION_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_freefunc_type(freefunc)) -#define sk_X509_EXTENSION_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr), (idx)) -#define sk_X509_EXTENSION_set(sk, idx, ptr) ((X509_EXTENSION *)OPENSSL_sk_set(ossl_check_X509_EXTENSION_sk_type(sk), (idx), ossl_check_X509_EXTENSION_type(ptr))) -#define sk_X509_EXTENSION_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr)) -#define sk_X509_EXTENSION_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr)) -#define sk_X509_EXTENSION_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr), pnum) -#define sk_X509_EXTENSION_sort(sk) OPENSSL_sk_sort(ossl_check_X509_EXTENSION_sk_type(sk)) -#define sk_X509_EXTENSION_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_EXTENSION_sk_type(sk)) -#define sk_X509_EXTENSION_dup(sk) ((STACK_OF(X509_EXTENSION) *)OPENSSL_sk_dup(ossl_check_const_X509_EXTENSION_sk_type(sk))) -#define sk_X509_EXTENSION_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_EXTENSION) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_copyfunc_type(copyfunc), ossl_check_X509_EXTENSION_freefunc_type(freefunc))) -#define sk_X509_EXTENSION_set_cmp_func(sk, cmp) ((sk_X509_EXTENSION_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_compfunc_type(cmp))) - -typedef STACK_OF(X509_EXTENSION) X509_EXTENSIONS; -typedef struct x509_attributes_st X509_ATTRIBUTE; -SKM_DEFINE_STACK_OF_INTERNAL(X509_ATTRIBUTE, X509_ATTRIBUTE, X509_ATTRIBUTE) -#define sk_X509_ATTRIBUTE_num(sk) OPENSSL_sk_num(ossl_check_const_X509_ATTRIBUTE_sk_type(sk)) -#define sk_X509_ATTRIBUTE_value(sk, idx) ((X509_ATTRIBUTE *)OPENSSL_sk_value(ossl_check_const_X509_ATTRIBUTE_sk_type(sk), (idx))) -#define sk_X509_ATTRIBUTE_new(cmp) ((STACK_OF(X509_ATTRIBUTE) *)OPENSSL_sk_new(ossl_check_X509_ATTRIBUTE_compfunc_type(cmp))) -#define sk_X509_ATTRIBUTE_new_null() ((STACK_OF(X509_ATTRIBUTE) *)OPENSSL_sk_new_null()) -#define sk_X509_ATTRIBUTE_new_reserve(cmp, n) ((STACK_OF(X509_ATTRIBUTE) *)OPENSSL_sk_new_reserve(ossl_check_X509_ATTRIBUTE_compfunc_type(cmp), (n))) -#define sk_X509_ATTRIBUTE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_ATTRIBUTE_sk_type(sk), (n)) -#define sk_X509_ATTRIBUTE_free(sk) OPENSSL_sk_free(ossl_check_X509_ATTRIBUTE_sk_type(sk)) -#define sk_X509_ATTRIBUTE_zero(sk) OPENSSL_sk_zero(ossl_check_X509_ATTRIBUTE_sk_type(sk)) -#define sk_X509_ATTRIBUTE_delete(sk, i) ((X509_ATTRIBUTE *)OPENSSL_sk_delete(ossl_check_X509_ATTRIBUTE_sk_type(sk), (i))) -#define sk_X509_ATTRIBUTE_delete_ptr(sk, ptr) ((X509_ATTRIBUTE *)OPENSSL_sk_delete_ptr(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr))) -#define sk_X509_ATTRIBUTE_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr)) -#define sk_X509_ATTRIBUTE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr)) -#define sk_X509_ATTRIBUTE_pop(sk) ((X509_ATTRIBUTE *)OPENSSL_sk_pop(ossl_check_X509_ATTRIBUTE_sk_type(sk))) -#define sk_X509_ATTRIBUTE_shift(sk) ((X509_ATTRIBUTE *)OPENSSL_sk_shift(ossl_check_X509_ATTRIBUTE_sk_type(sk))) -#define sk_X509_ATTRIBUTE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_freefunc_type(freefunc)) -#define sk_X509_ATTRIBUTE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr), (idx)) -#define sk_X509_ATTRIBUTE_set(sk, idx, ptr) ((X509_ATTRIBUTE *)OPENSSL_sk_set(ossl_check_X509_ATTRIBUTE_sk_type(sk), (idx), ossl_check_X509_ATTRIBUTE_type(ptr))) -#define sk_X509_ATTRIBUTE_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr)) -#define sk_X509_ATTRIBUTE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr)) -#define sk_X509_ATTRIBUTE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr), pnum) -#define sk_X509_ATTRIBUTE_sort(sk) OPENSSL_sk_sort(ossl_check_X509_ATTRIBUTE_sk_type(sk)) -#define sk_X509_ATTRIBUTE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_ATTRIBUTE_sk_type(sk)) -#define sk_X509_ATTRIBUTE_dup(sk) ((STACK_OF(X509_ATTRIBUTE) *)OPENSSL_sk_dup(ossl_check_const_X509_ATTRIBUTE_sk_type(sk))) -#define sk_X509_ATTRIBUTE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_ATTRIBUTE) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_copyfunc_type(copyfunc), ossl_check_X509_ATTRIBUTE_freefunc_type(freefunc))) -#define sk_X509_ATTRIBUTE_set_cmp_func(sk, cmp) ((sk_X509_ATTRIBUTE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_compfunc_type(cmp))) - -typedef struct X509_req_info_st X509_REQ_INFO; -typedef struct X509_req_st X509_REQ; -typedef struct x509_cert_aux_st X509_CERT_AUX; -typedef struct x509_cinf_st X509_CINF; - -/* Flags for X509_print_ex() */ - -# define X509_FLAG_COMPAT 0 -# define X509_FLAG_NO_HEADER 1L -# define X509_FLAG_NO_VERSION (1L << 1) -# define X509_FLAG_NO_SERIAL (1L << 2) -# define X509_FLAG_NO_SIGNAME (1L << 3) -# define X509_FLAG_NO_ISSUER (1L << 4) -# define X509_FLAG_NO_VALIDITY (1L << 5) -# define X509_FLAG_NO_SUBJECT (1L << 6) -# define X509_FLAG_NO_PUBKEY (1L << 7) -# define X509_FLAG_NO_EXTENSIONS (1L << 8) -# define X509_FLAG_NO_SIGDUMP (1L << 9) -# define X509_FLAG_NO_AUX (1L << 10) -# define X509_FLAG_NO_ATTRIBUTES (1L << 11) -# define X509_FLAG_NO_IDS (1L << 12) -# define X509_FLAG_EXTENSIONS_ONLY_KID (1L << 13) - -/* Flags specific to X509_NAME_print_ex() */ - -/* The field separator information */ - -# define XN_FLAG_SEP_MASK (0xf << 16) - -# define XN_FLAG_COMPAT 0/* Traditional; use old X509_NAME_print */ -# define XN_FLAG_SEP_COMMA_PLUS (1 << 16)/* RFC2253 ,+ */ -# define XN_FLAG_SEP_CPLUS_SPC (2 << 16)/* ,+ spaced: more readable */ -# define XN_FLAG_SEP_SPLUS_SPC (3 << 16)/* ;+ spaced */ -# define XN_FLAG_SEP_MULTILINE (4 << 16)/* One line per field */ - -# define XN_FLAG_DN_REV (1 << 20)/* Reverse DN order */ - -/* How the field name is shown */ - -# define XN_FLAG_FN_MASK (0x3 << 21) - -# define XN_FLAG_FN_SN 0/* Object short name */ -# define XN_FLAG_FN_LN (1 << 21)/* Object long name */ -# define XN_FLAG_FN_OID (2 << 21)/* Always use OIDs */ -# define XN_FLAG_FN_NONE (3 << 21)/* No field names */ - -# define XN_FLAG_SPC_EQ (1 << 23)/* Put spaces round '=' */ - -/* - * This determines if we dump fields we don't recognise: RFC2253 requires - * this. - */ - -# define XN_FLAG_DUMP_UNKNOWN_FIELDS (1 << 24) - -# define XN_FLAG_FN_ALIGN (1 << 25)/* Align field names to 20 - * characters */ - -/* Complete set of RFC2253 flags */ - -# define XN_FLAG_RFC2253 (ASN1_STRFLGS_RFC2253 | \ - XN_FLAG_SEP_COMMA_PLUS | \ - XN_FLAG_DN_REV | \ - XN_FLAG_FN_SN | \ - XN_FLAG_DUMP_UNKNOWN_FIELDS) - -/* readable oneline form */ - -# define XN_FLAG_ONELINE (ASN1_STRFLGS_RFC2253 | \ - ASN1_STRFLGS_ESC_QUOTE | \ - XN_FLAG_SEP_CPLUS_SPC | \ - XN_FLAG_SPC_EQ | \ - XN_FLAG_FN_SN) - -/* readable multiline form */ - -# define XN_FLAG_MULTILINE (ASN1_STRFLGS_ESC_CTRL | \ - ASN1_STRFLGS_ESC_MSB | \ - XN_FLAG_SEP_MULTILINE | \ - XN_FLAG_SPC_EQ | \ - XN_FLAG_FN_LN | \ - XN_FLAG_FN_ALIGN) - -typedef struct X509_crl_info_st X509_CRL_INFO; - -typedef struct private_key_st { - int version; - /* The PKCS#8 data types */ - X509_ALGOR *enc_algor; - ASN1_OCTET_STRING *enc_pkey; /* encrypted pub key */ - /* When decrypted, the following will not be NULL */ - EVP_PKEY *dec_pkey; - /* used to encrypt and decrypt */ - int key_length; - char *key_data; - int key_free; /* true if we should auto free key_data */ - /* expanded version of 'enc_algor' */ - EVP_CIPHER_INFO cipher; -} X509_PKEY; - -typedef struct X509_info_st { - X509 *x509; - X509_CRL *crl; - X509_PKEY *x_pkey; - EVP_CIPHER_INFO enc_cipher; - int enc_len; - char *enc_data; -} X509_INFO; -SKM_DEFINE_STACK_OF_INTERNAL(X509_INFO, X509_INFO, X509_INFO) -#define sk_X509_INFO_num(sk) OPENSSL_sk_num(ossl_check_const_X509_INFO_sk_type(sk)) -#define sk_X509_INFO_value(sk, idx) ((X509_INFO *)OPENSSL_sk_value(ossl_check_const_X509_INFO_sk_type(sk), (idx))) -#define sk_X509_INFO_new(cmp) ((STACK_OF(X509_INFO) *)OPENSSL_sk_new(ossl_check_X509_INFO_compfunc_type(cmp))) -#define sk_X509_INFO_new_null() ((STACK_OF(X509_INFO) *)OPENSSL_sk_new_null()) -#define sk_X509_INFO_new_reserve(cmp, n) ((STACK_OF(X509_INFO) *)OPENSSL_sk_new_reserve(ossl_check_X509_INFO_compfunc_type(cmp), (n))) -#define sk_X509_INFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_INFO_sk_type(sk), (n)) -#define sk_X509_INFO_free(sk) OPENSSL_sk_free(ossl_check_X509_INFO_sk_type(sk)) -#define sk_X509_INFO_zero(sk) OPENSSL_sk_zero(ossl_check_X509_INFO_sk_type(sk)) -#define sk_X509_INFO_delete(sk, i) ((X509_INFO *)OPENSSL_sk_delete(ossl_check_X509_INFO_sk_type(sk), (i))) -#define sk_X509_INFO_delete_ptr(sk, ptr) ((X509_INFO *)OPENSSL_sk_delete_ptr(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr))) -#define sk_X509_INFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr)) -#define sk_X509_INFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr)) -#define sk_X509_INFO_pop(sk) ((X509_INFO *)OPENSSL_sk_pop(ossl_check_X509_INFO_sk_type(sk))) -#define sk_X509_INFO_shift(sk) ((X509_INFO *)OPENSSL_sk_shift(ossl_check_X509_INFO_sk_type(sk))) -#define sk_X509_INFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_freefunc_type(freefunc)) -#define sk_X509_INFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr), (idx)) -#define sk_X509_INFO_set(sk, idx, ptr) ((X509_INFO *)OPENSSL_sk_set(ossl_check_X509_INFO_sk_type(sk), (idx), ossl_check_X509_INFO_type(ptr))) -#define sk_X509_INFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr)) -#define sk_X509_INFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr)) -#define sk_X509_INFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr), pnum) -#define sk_X509_INFO_sort(sk) OPENSSL_sk_sort(ossl_check_X509_INFO_sk_type(sk)) -#define sk_X509_INFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_INFO_sk_type(sk)) -#define sk_X509_INFO_dup(sk) ((STACK_OF(X509_INFO) *)OPENSSL_sk_dup(ossl_check_const_X509_INFO_sk_type(sk))) -#define sk_X509_INFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_INFO) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_INFO_sk_type(sk), ossl_check_X509_INFO_copyfunc_type(copyfunc), ossl_check_X509_INFO_freefunc_type(freefunc))) -#define sk_X509_INFO_set_cmp_func(sk, cmp) ((sk_X509_INFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_compfunc_type(cmp))) - - -/* - * The next 2 structures and their 8 routines are used to manipulate Netscape's - * spki structures - useful if you are writing a CA web page - */ -typedef struct Netscape_spkac_st { - X509_PUBKEY *pubkey; - ASN1_IA5STRING *challenge; /* challenge sent in atlas >= PR2 */ -} NETSCAPE_SPKAC; - -typedef struct Netscape_spki_st { - NETSCAPE_SPKAC *spkac; /* signed public key and challenge */ - X509_ALGOR sig_algor; - ASN1_BIT_STRING *signature; -} NETSCAPE_SPKI; - -/* Netscape certificate sequence structure */ -typedef struct Netscape_certificate_sequence { - ASN1_OBJECT *type; - STACK_OF(X509) *certs; -} NETSCAPE_CERT_SEQUENCE; - -/*- Unused (and iv length is wrong) -typedef struct CBCParameter_st - { - unsigned char iv[8]; - } CBC_PARAM; -*/ - -/* Password based encryption structure */ - -typedef struct PBEPARAM_st { - ASN1_OCTET_STRING *salt; - ASN1_INTEGER *iter; -} PBEPARAM; - -/* Password based encryption V2 structures */ - -typedef struct PBE2PARAM_st { - X509_ALGOR *keyfunc; - X509_ALGOR *encryption; -} PBE2PARAM; - -typedef struct PBKDF2PARAM_st { -/* Usually OCTET STRING but could be anything */ - ASN1_TYPE *salt; - ASN1_INTEGER *iter; - ASN1_INTEGER *keylength; - X509_ALGOR *prf; -} PBKDF2PARAM; - -typedef struct { - X509_ALGOR *keyDerivationFunc; - X509_ALGOR *messageAuthScheme; -} PBMAC1PARAM; - -# ifndef OPENSSL_NO_SCRYPT -typedef struct SCRYPT_PARAMS_st { - ASN1_OCTET_STRING *salt; - ASN1_INTEGER *costParameter; - ASN1_INTEGER *blockSize; - ASN1_INTEGER *parallelizationParameter; - ASN1_INTEGER *keyLength; -} SCRYPT_PARAMS; -# endif - -#ifdef __cplusplus -} -#endif - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define X509_EXT_PACK_UNKNOWN 1 -# define X509_EXT_PACK_STRING 2 - -# define X509_extract_key(x) X509_get_pubkey(x)/*****/ -# define X509_REQ_extract_key(a) X509_REQ_get_pubkey(a) -# define X509_name_cmp(a,b) X509_NAME_cmp((a),(b)) - -void X509_CRL_set_default_method(const X509_CRL_METHOD *meth); -X509_CRL_METHOD *X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl), - int (*crl_free) (X509_CRL *crl), - int (*crl_lookup) (X509_CRL *crl, - X509_REVOKED **ret, - const - ASN1_INTEGER *serial, - const - X509_NAME *issuer), - int (*crl_verify) (X509_CRL *crl, - EVP_PKEY *pk)); -void X509_CRL_METHOD_free(X509_CRL_METHOD *m); - -void X509_CRL_set_meth_data(X509_CRL *crl, void *dat); -void *X509_CRL_get_meth_data(X509_CRL *crl); - -const char *X509_verify_cert_error_string(long n); - -int X509_verify(X509 *a, EVP_PKEY *r); -int X509_self_signed(X509 *cert, int verify_signature); - -int X509_REQ_verify_ex(X509_REQ *a, EVP_PKEY *r, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r); -int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r); -int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r); - -NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str, int len); -char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x); -EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x); -int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey); - -int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki); - -int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent); -int X509_signature_print(BIO *bp, const X509_ALGOR *alg, - const ASN1_STRING *sig); - -int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx); -int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx); -int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx); -int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); - -int X509_pubkey_digest(const X509 *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_digest(const X509 *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -ASN1_OCTET_STRING *X509_digest_sig(const X509 *cert, - EVP_MD **md_used, int *md_is_fallback); -int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); - -X509 *X509_load_http(const char *url, BIO *bio, BIO *rbio, int timeout); -X509_CRL *X509_CRL_load_http(const char *url, BIO *bio, BIO *rbio, int timeout); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# include /* OSSL_HTTP_REQ_CTX_nbio_d2i */ -# define X509_http_nbio(rctx, pcert) \ - OSSL_HTTP_REQ_CTX_nbio_d2i(rctx, pcert, ASN1_ITEM_rptr(X509)) -# define X509_CRL_http_nbio(rctx, pcrl) \ - OSSL_HTTP_REQ_CTX_nbio_d2i(rctx, pcrl, ASN1_ITEM_rptr(X509_CRL)) -# endif - -# ifndef OPENSSL_NO_STDIO -X509 *d2i_X509_fp(FILE *fp, X509 **x509); -int i2d_X509_fp(FILE *fp, const X509 *x509); -X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl); -int i2d_X509_CRL_fp(FILE *fp, const X509_CRL *crl); -X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req); -int i2d_X509_REQ_fp(FILE *fp, const X509_REQ *req); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa); -OSSL_DEPRECATEDIN_3_0 int i2d_RSAPrivateKey_fp(FILE *fp, const RSA *rsa); -OSSL_DEPRECATEDIN_3_0 RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa); -OSSL_DEPRECATEDIN_3_0 int i2d_RSAPublicKey_fp(FILE *fp, const RSA *rsa); -OSSL_DEPRECATEDIN_3_0 RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa); -OSSL_DEPRECATEDIN_3_0 int i2d_RSA_PUBKEY_fp(FILE *fp, const RSA *rsa); -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_DSA -OSSL_DEPRECATEDIN_3_0 DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa); -OSSL_DEPRECATEDIN_3_0 int i2d_DSA_PUBKEY_fp(FILE *fp, const DSA *dsa); -OSSL_DEPRECATEDIN_3_0 DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa); -OSSL_DEPRECATEDIN_3_0 int i2d_DSAPrivateKey_fp(FILE *fp, const DSA *dsa); -# endif -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_EC -OSSL_DEPRECATEDIN_3_0 EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey); -OSSL_DEPRECATEDIN_3_0 int i2d_EC_PUBKEY_fp(FILE *fp, const EC_KEY *eckey); -OSSL_DEPRECATEDIN_3_0 EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey); -OSSL_DEPRECATEDIN_3_0 int i2d_ECPrivateKey_fp(FILE *fp, const EC_KEY *eckey); -# endif /* OPENSSL_NO_EC */ -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ -X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8); -int i2d_PKCS8_fp(FILE *fp, const X509_SIG *p8); -X509_PUBKEY *d2i_X509_PUBKEY_fp(FILE *fp, X509_PUBKEY **xpk); -int i2d_X509_PUBKEY_fp(FILE *fp, const X509_PUBKEY *xpk); -PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, - PKCS8_PRIV_KEY_INFO **p8inf); -int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, const PKCS8_PRIV_KEY_INFO *p8inf); -int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, const EVP_PKEY *key); -int i2d_PrivateKey_fp(FILE *fp, const EVP_PKEY *pkey); -EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, - const char *propq); -EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); -int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); -EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, - const char *propq); -EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); -# endif - -X509 *d2i_X509_bio(BIO *bp, X509 **x509); -int i2d_X509_bio(BIO *bp, const X509 *x509); -X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl); -int i2d_X509_CRL_bio(BIO *bp, const X509_CRL *crl); -X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req); -int i2d_X509_REQ_bio(BIO *bp, const X509_REQ *req); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa); -OSSL_DEPRECATEDIN_3_0 int i2d_RSAPrivateKey_bio(BIO *bp, const RSA *rsa); -OSSL_DEPRECATEDIN_3_0 RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa); -OSSL_DEPRECATEDIN_3_0 int i2d_RSAPublicKey_bio(BIO *bp, const RSA *rsa); -OSSL_DEPRECATEDIN_3_0 RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa); -OSSL_DEPRECATEDIN_3_0 int i2d_RSA_PUBKEY_bio(BIO *bp, const RSA *rsa); -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_DSA -OSSL_DEPRECATEDIN_3_0 DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa); -OSSL_DEPRECATEDIN_3_0 int i2d_DSA_PUBKEY_bio(BIO *bp, const DSA *dsa); -OSSL_DEPRECATEDIN_3_0 DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa); -OSSL_DEPRECATEDIN_3_0 int i2d_DSAPrivateKey_bio(BIO *bp, const DSA *dsa); -# endif -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_EC -OSSL_DEPRECATEDIN_3_0 EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey); -OSSL_DEPRECATEDIN_3_0 int i2d_EC_PUBKEY_bio(BIO *bp, const EC_KEY *eckey); -OSSL_DEPRECATEDIN_3_0 EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey); -OSSL_DEPRECATEDIN_3_0 int i2d_ECPrivateKey_bio(BIO *bp, const EC_KEY *eckey); -# endif /* OPENSSL_NO_EC */ -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8); -int i2d_PKCS8_bio(BIO *bp, const X509_SIG *p8); -X509_PUBKEY *d2i_X509_PUBKEY_bio(BIO *bp, X509_PUBKEY **xpk); -int i2d_X509_PUBKEY_bio(BIO *bp, const X509_PUBKEY *xpk); -PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, - PKCS8_PRIV_KEY_INFO **p8inf); -int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, const PKCS8_PRIV_KEY_INFO *p8inf); -int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, const EVP_PKEY *key); -int i2d_PrivateKey_bio(BIO *bp, const EVP_PKEY *pkey); -EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, - const char *propq); -EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); -int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); -EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, - const char *propq); -EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); - -DECLARE_ASN1_DUP_FUNCTION(X509) -DECLARE_ASN1_DUP_FUNCTION(X509_ALGOR) -DECLARE_ASN1_DUP_FUNCTION(X509_ATTRIBUTE) -DECLARE_ASN1_DUP_FUNCTION(X509_CRL) -DECLARE_ASN1_DUP_FUNCTION(X509_EXTENSION) -DECLARE_ASN1_DUP_FUNCTION(X509_PUBKEY) -DECLARE_ASN1_DUP_FUNCTION(X509_REQ) -DECLARE_ASN1_DUP_FUNCTION(X509_REVOKED) -int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, - void *pval); -void X509_ALGOR_get0(const ASN1_OBJECT **paobj, int *pptype, - const void **ppval, const X509_ALGOR *algor); -void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md); -int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b); -int X509_ALGOR_copy(X509_ALGOR *dest, const X509_ALGOR *src); - -DECLARE_ASN1_DUP_FUNCTION(X509_NAME) -DECLARE_ASN1_DUP_FUNCTION(X509_NAME_ENTRY) - -int X509_cmp_time(const ASN1_TIME *s, time_t *t); -int X509_cmp_current_time(const ASN1_TIME *s); -int X509_cmp_timeframe(const X509_VERIFY_PARAM *vpm, - const ASN1_TIME *start, const ASN1_TIME *end); -ASN1_TIME *X509_time_adj(ASN1_TIME *s, long adj, time_t *t); -ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, - int offset_day, long offset_sec, time_t *t); -ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj); - -const char *X509_get_default_cert_area(void); -const char *X509_get_default_cert_dir(void); -const char *X509_get_default_cert_file(void); -const char *X509_get_default_cert_dir_env(void); -const char *X509_get_default_cert_file_env(void); -const char *X509_get_default_private_dir(void); - -X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); -X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey); - -DECLARE_ASN1_FUNCTIONS(X509_ALGOR) -DECLARE_ASN1_ENCODE_FUNCTIONS(X509_ALGORS, X509_ALGORS, X509_ALGORS) -DECLARE_ASN1_FUNCTIONS(X509_VAL) - -DECLARE_ASN1_FUNCTIONS(X509_PUBKEY) - -X509_PUBKEY *X509_PUBKEY_new_ex(OSSL_LIB_CTX *libctx, const char *propq); -int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey); -EVP_PKEY *X509_PUBKEY_get0(const X509_PUBKEY *key); -EVP_PKEY *X509_PUBKEY_get(const X509_PUBKEY *key); -int X509_get_pubkey_parameters(EVP_PKEY *pkey, STACK_OF(X509) *chain); -long X509_get_pathlen(X509 *x); -DECLARE_ASN1_ENCODE_FUNCTIONS_only(EVP_PKEY, PUBKEY) -EVP_PKEY *d2i_PUBKEY_ex(EVP_PKEY **a, const unsigned char **pp, long length, - OSSL_LIB_CTX *libctx, const char *propq); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0,RSA, RSA_PUBKEY) -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_DSA -DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0,DSA, DSA_PUBKEY) -# endif -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_EC -DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0, EC_KEY, EC_PUBKEY) -# endif -# endif - -DECLARE_ASN1_FUNCTIONS(X509_SIG) -void X509_SIG_get0(const X509_SIG *sig, const X509_ALGOR **palg, - const ASN1_OCTET_STRING **pdigest); -void X509_SIG_getm(X509_SIG *sig, X509_ALGOR **palg, - ASN1_OCTET_STRING **pdigest); - -DECLARE_ASN1_FUNCTIONS(X509_REQ_INFO) -DECLARE_ASN1_FUNCTIONS(X509_REQ) -X509_REQ *X509_REQ_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - -DECLARE_ASN1_FUNCTIONS(X509_ATTRIBUTE) -X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value); - -DECLARE_ASN1_FUNCTIONS(X509_EXTENSION) -DECLARE_ASN1_ENCODE_FUNCTIONS(X509_EXTENSIONS, X509_EXTENSIONS, X509_EXTENSIONS) - -DECLARE_ASN1_FUNCTIONS(X509_NAME_ENTRY) - -DECLARE_ASN1_FUNCTIONS(X509_NAME) - -int X509_NAME_set(X509_NAME **xn, const X509_NAME *name); - -DECLARE_ASN1_FUNCTIONS(X509_CINF) -DECLARE_ASN1_FUNCTIONS(X509) -X509 *X509_new_ex(OSSL_LIB_CTX *libctx, const char *propq); -DECLARE_ASN1_FUNCTIONS(X509_CERT_AUX) - -#define X509_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509, l, p, newf, dupf, freef) -int X509_set_ex_data(X509 *r, int idx, void *arg); -void *X509_get_ex_data(const X509 *r, int idx); -DECLARE_ASN1_ENCODE_FUNCTIONS_only(X509,X509_AUX) - -int i2d_re_X509_tbs(X509 *x, unsigned char **pp); - -int X509_SIG_INFO_get(const X509_SIG_INFO *siginf, int *mdnid, int *pknid, - int *secbits, uint32_t *flags); -void X509_SIG_INFO_set(X509_SIG_INFO *siginf, int mdnid, int pknid, - int secbits, uint32_t flags); - -int X509_get_signature_info(X509 *x, int *mdnid, int *pknid, int *secbits, - uint32_t *flags); - -void X509_get0_signature(const ASN1_BIT_STRING **psig, - const X509_ALGOR **palg, const X509 *x); -int X509_get_signature_nid(const X509 *x); - -void X509_set0_distinguishing_id(X509 *x, ASN1_OCTET_STRING *d_id); -ASN1_OCTET_STRING *X509_get0_distinguishing_id(X509 *x); -void X509_REQ_set0_distinguishing_id(X509_REQ *x, ASN1_OCTET_STRING *d_id); -ASN1_OCTET_STRING *X509_REQ_get0_distinguishing_id(X509_REQ *x); - -int X509_alias_set1(X509 *x, const unsigned char *name, int len); -int X509_keyid_set1(X509 *x, const unsigned char *id, int len); -unsigned char *X509_alias_get0(X509 *x, int *len); -unsigned char *X509_keyid_get0(X509 *x, int *len); - -DECLARE_ASN1_FUNCTIONS(X509_REVOKED) -DECLARE_ASN1_FUNCTIONS(X509_CRL_INFO) -DECLARE_ASN1_FUNCTIONS(X509_CRL) -X509_CRL *X509_CRL_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - -int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); -int X509_CRL_get0_by_serial(X509_CRL *crl, - X509_REVOKED **ret, const ASN1_INTEGER *serial); -int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x); - -X509_PKEY *X509_PKEY_new(void); -void X509_PKEY_free(X509_PKEY *a); - -DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKI) -DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKAC) -DECLARE_ASN1_FUNCTIONS(NETSCAPE_CERT_SEQUENCE) - -X509_INFO *X509_INFO_new(void); -void X509_INFO_free(X509_INFO *a); -char *X509_NAME_oneline(const X509_NAME *a, char *buf, int size); - -#ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1, - ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey); -OSSL_DEPRECATEDIN_3_0 -int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data, - unsigned char *md, unsigned int *len); -OSSL_DEPRECATEDIN_3_0 -int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, X509_ALGOR *algor2, - ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey, - const EVP_MD *type); -#endif -int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *data, - unsigned char *md, unsigned int *len); -int ASN1_item_verify(const ASN1_ITEM *it, const X509_ALGOR *alg, - const ASN1_BIT_STRING *signature, const void *data, - EVP_PKEY *pkey); -int ASN1_item_verify_ctx(const ASN1_ITEM *it, const X509_ALGOR *alg, - const ASN1_BIT_STRING *signature, const void *data, - EVP_MD_CTX *ctx); -int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, X509_ALGOR *algor2, - ASN1_BIT_STRING *signature, const void *data, - EVP_PKEY *pkey, const EVP_MD *md); -int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, - X509_ALGOR *algor2, ASN1_BIT_STRING *signature, - const void *data, EVP_MD_CTX *ctx); - -#define X509_VERSION_1 0 -#define X509_VERSION_2 1 -#define X509_VERSION_3 2 - -long X509_get_version(const X509 *x); -int X509_set_version(X509 *x, long version); -int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); -ASN1_INTEGER *X509_get_serialNumber(X509 *x); -const ASN1_INTEGER *X509_get0_serialNumber(const X509 *x); -int X509_set_issuer_name(X509 *x, const X509_NAME *name); -X509_NAME *X509_get_issuer_name(const X509 *a); -int X509_set_subject_name(X509 *x, const X509_NAME *name); -X509_NAME *X509_get_subject_name(const X509 *a); -const ASN1_TIME * X509_get0_notBefore(const X509 *x); -ASN1_TIME *X509_getm_notBefore(const X509 *x); -int X509_set1_notBefore(X509 *x, const ASN1_TIME *tm); -const ASN1_TIME *X509_get0_notAfter(const X509 *x); -ASN1_TIME *X509_getm_notAfter(const X509 *x); -int X509_set1_notAfter(X509 *x, const ASN1_TIME *tm); -int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); -int X509_up_ref(X509 *x); -int X509_get_signature_type(const X509 *x); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define X509_get_notBefore X509_getm_notBefore -# define X509_get_notAfter X509_getm_notAfter -# define X509_set_notBefore X509_set1_notBefore -# define X509_set_notAfter X509_set1_notAfter -#endif - - -/* - * This one is only used so that a binary form can output, as in - * i2d_X509_PUBKEY(X509_get_X509_PUBKEY(x), &buf) - */ -X509_PUBKEY *X509_get_X509_PUBKEY(const X509 *x); -const STACK_OF(X509_EXTENSION) *X509_get0_extensions(const X509 *x); -void X509_get0_uids(const X509 *x, const ASN1_BIT_STRING **piuid, - const ASN1_BIT_STRING **psuid); -const X509_ALGOR *X509_get0_tbs_sigalg(const X509 *x); - -EVP_PKEY *X509_get0_pubkey(const X509 *x); -EVP_PKEY *X509_get_pubkey(X509 *x); -ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x); - -#define X509_REQ_VERSION_1 0 - -long X509_REQ_get_version(const X509_REQ *req); -int X509_REQ_set_version(X509_REQ *x, long version); -X509_NAME *X509_REQ_get_subject_name(const X509_REQ *req); -int X509_REQ_set_subject_name(X509_REQ *req, const X509_NAME *name); -void X509_REQ_get0_signature(const X509_REQ *req, const ASN1_BIT_STRING **psig, - const X509_ALGOR **palg); -void X509_REQ_set0_signature(X509_REQ *req, ASN1_BIT_STRING *psig); -int X509_REQ_set1_signature_algo(X509_REQ *req, X509_ALGOR *palg); -int X509_REQ_get_signature_nid(const X509_REQ *req); -int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); -int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); -EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); -X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); -int X509_REQ_extension_nid(int nid); -int *X509_REQ_get_extension_nids(void); -void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); -int X509_REQ_add_extensions_nid(X509_REQ *req, - const STACK_OF(X509_EXTENSION) *exts, int nid); -int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); -int X509_REQ_get_attr_count(const X509_REQ *req); -int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos); -int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, const ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc); -X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); -int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr); -int X509_REQ_add1_attr_by_OBJ(X509_REQ *req, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len); -int X509_REQ_add1_attr_by_NID(X509_REQ *req, - int nid, int type, - const unsigned char *bytes, int len); -int X509_REQ_add1_attr_by_txt(X509_REQ *req, - const char *attrname, int type, - const unsigned char *bytes, int len); - -#define X509_CRL_VERSION_1 0 -#define X509_CRL_VERSION_2 1 - -int X509_CRL_set_version(X509_CRL *x, long version); -int X509_CRL_set_issuer_name(X509_CRL *x, const X509_NAME *name); -int X509_CRL_set1_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); -int X509_CRL_set1_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); -int X509_CRL_sort(X509_CRL *crl); -int X509_CRL_up_ref(X509_CRL *crl); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define X509_CRL_set_lastUpdate X509_CRL_set1_lastUpdate -# define X509_CRL_set_nextUpdate X509_CRL_set1_nextUpdate -#endif - -long X509_CRL_get_version(const X509_CRL *crl); -const ASN1_TIME *X509_CRL_get0_lastUpdate(const X509_CRL *crl); -const ASN1_TIME *X509_CRL_get0_nextUpdate(const X509_CRL *crl); -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 ASN1_TIME *X509_CRL_get_lastUpdate(X509_CRL *crl); -OSSL_DEPRECATEDIN_1_1_0 ASN1_TIME *X509_CRL_get_nextUpdate(X509_CRL *crl); -#endif -X509_NAME *X509_CRL_get_issuer(const X509_CRL *crl); -const STACK_OF(X509_EXTENSION) *X509_CRL_get0_extensions(const X509_CRL *crl); -STACK_OF(X509_REVOKED) *X509_CRL_get_REVOKED(X509_CRL *crl); -const X509_ALGOR *X509_CRL_get0_tbs_sigalg(const X509_CRL *crl); -void X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING **psig, - const X509_ALGOR **palg); -int X509_CRL_get_signature_nid(const X509_CRL *crl); -int i2d_re_X509_CRL_tbs(X509_CRL *req, unsigned char **pp); - -const ASN1_INTEGER *X509_REVOKED_get0_serialNumber(const X509_REVOKED *x); -int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); -const ASN1_TIME *X509_REVOKED_get0_revocationDate(const X509_REVOKED *x); -int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); -const STACK_OF(X509_EXTENSION) * -X509_REVOKED_get0_extensions(const X509_REVOKED *r); - -X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, - EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); - -int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); - -int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); -int X509_chain_check_suiteb(int *perror_depth, - X509 *x, STACK_OF(X509) *chain, - unsigned long flags); -int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); -void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); -STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); - -int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); -unsigned long X509_issuer_and_serial_hash(X509 *a); - -int X509_issuer_name_cmp(const X509 *a, const X509 *b); -unsigned long X509_issuer_name_hash(X509 *a); - -int X509_subject_name_cmp(const X509 *a, const X509 *b); -unsigned long X509_subject_name_hash(X509 *x); - -# ifndef OPENSSL_NO_MD5 -unsigned long X509_issuer_name_hash_old(X509 *a); -unsigned long X509_subject_name_hash_old(X509 *x); -# endif - -# define X509_ADD_FLAG_DEFAULT 0 -# define X509_ADD_FLAG_UP_REF 0x1 -# define X509_ADD_FLAG_PREPEND 0x2 -# define X509_ADD_FLAG_NO_DUP 0x4 -# define X509_ADD_FLAG_NO_SS 0x8 -int X509_add_cert(STACK_OF(X509) *sk, X509 *cert, int flags); -int X509_add_certs(STACK_OF(X509) *sk, STACK_OF(X509) *certs, int flags); - -int X509_cmp(const X509 *a, const X509 *b); -int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); -#ifndef OPENSSL_NO_DEPRECATED_3_0 -# define X509_NAME_hash(x) X509_NAME_hash_ex(x, NULL, NULL, NULL) -OSSL_DEPRECATEDIN_3_0 int X509_certificate_type(const X509 *x, - const EVP_PKEY *pubkey); -#endif -unsigned long X509_NAME_hash_ex(const X509_NAME *x, OSSL_LIB_CTX *libctx, - const char *propq, int *ok); -unsigned long X509_NAME_hash_old(const X509_NAME *x); - -int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); -int X509_CRL_match(const X509_CRL *a, const X509_CRL *b); -int X509_aux_print(BIO *out, X509 *x, int indent); -# ifndef OPENSSL_NO_STDIO -int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag, - unsigned long cflag); -int X509_print_fp(FILE *bp, X509 *x); -int X509_CRL_print_fp(FILE *bp, X509_CRL *x); -int X509_REQ_print_fp(FILE *bp, X509_REQ *req); -int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm, int indent, - unsigned long flags); -# endif - -int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase); -int X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent, - unsigned long flags); -int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag, - unsigned long cflag); -int X509_print(BIO *bp, X509 *x); -int X509_ocspid_print(BIO *bp, X509 *x); -int X509_CRL_print_ex(BIO *out, X509_CRL *x, unsigned long nmflag); -int X509_CRL_print(BIO *bp, X509_CRL *x); -int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag, - unsigned long cflag); -int X509_REQ_print(BIO *bp, X509_REQ *req); - -int X509_NAME_entry_count(const X509_NAME *name); -int X509_NAME_get_text_by_NID(const X509_NAME *name, int nid, - char *buf, int len); -int X509_NAME_get_text_by_OBJ(const X509_NAME *name, const ASN1_OBJECT *obj, - char *buf, int len); - -/* - * NOTE: you should be passing -1, not 0 as lastpos. The functions that use - * lastpos, search after that position on. - */ -int X509_NAME_get_index_by_NID(const X509_NAME *name, int nid, int lastpos); -int X509_NAME_get_index_by_OBJ(const X509_NAME *name, const ASN1_OBJECT *obj, - int lastpos); -X509_NAME_ENTRY *X509_NAME_get_entry(const X509_NAME *name, int loc); -X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); -int X509_NAME_add_entry(X509_NAME *name, const X509_NAME_ENTRY *ne, - int loc, int set); -int X509_NAME_add_entry_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len, int loc, - int set); -int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, - const unsigned char *bytes, int len, int loc, - int set); -X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, - const char *field, int type, - const unsigned char *bytes, - int len); -X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, - int type, - const unsigned char *bytes, - int len); -int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, - const unsigned char *bytes, int len, int loc, - int set); -X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, - int len); -int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, const ASN1_OBJECT *obj); -int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, - const unsigned char *bytes, int len); -ASN1_OBJECT *X509_NAME_ENTRY_get_object(const X509_NAME_ENTRY *ne); -ASN1_STRING * X509_NAME_ENTRY_get_data(const X509_NAME_ENTRY *ne); -int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne); - -int X509_NAME_get0_der(const X509_NAME *nm, const unsigned char **pder, - size_t *pderlen); - -int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x); -int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x, - int nid, int lastpos); -int X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *x, - const ASN1_OBJECT *obj, int lastpos); -int X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *x, - int crit, int lastpos); -X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); -X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); -STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, - X509_EXTENSION *ex, int loc); -STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, - const STACK_OF(X509_EXTENSION) *exts); - -int X509_get_ext_count(const X509 *x); -int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); -int X509_get_ext_by_OBJ(const X509 *x, const ASN1_OBJECT *obj, int lastpos); -int X509_get_ext_by_critical(const X509 *x, int crit, int lastpos); -X509_EXTENSION *X509_get_ext(const X509 *x, int loc); -X509_EXTENSION *X509_delete_ext(X509 *x, int loc); -int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc); -void *X509_get_ext_d2i(const X509 *x, int nid, int *crit, int *idx); -int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, - unsigned long flags); - -int X509_CRL_get_ext_count(const X509_CRL *x); -int X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid, int lastpos); -int X509_CRL_get_ext_by_OBJ(const X509_CRL *x, const ASN1_OBJECT *obj, - int lastpos); -int X509_CRL_get_ext_by_critical(const X509_CRL *x, int crit, int lastpos); -X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc); -X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc); -int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); -void *X509_CRL_get_ext_d2i(const X509_CRL *x, int nid, int *crit, int *idx); -int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit, - unsigned long flags); - -int X509_REVOKED_get_ext_count(const X509_REVOKED *x); -int X509_REVOKED_get_ext_by_NID(const X509_REVOKED *x, int nid, int lastpos); -int X509_REVOKED_get_ext_by_OBJ(const X509_REVOKED *x, const ASN1_OBJECT *obj, - int lastpos); -int X509_REVOKED_get_ext_by_critical(const X509_REVOKED *x, int crit, - int lastpos); -X509_EXTENSION *X509_REVOKED_get_ext(const X509_REVOKED *x, int loc); -X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc); -int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc); -void *X509_REVOKED_get_ext_d2i(const X509_REVOKED *x, int nid, int *crit, - int *idx); -int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit, - unsigned long flags); - -X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, - int nid, int crit, - ASN1_OCTET_STRING *data); -X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex, - const ASN1_OBJECT *obj, int crit, - ASN1_OCTET_STRING *data); -int X509_EXTENSION_set_object(X509_EXTENSION *ex, const ASN1_OBJECT *obj); -int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); -int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data); -ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex); -ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); -int X509_EXTENSION_get_critical(const X509_EXTENSION *ex); - -int X509at_get_attr_count(const STACK_OF(X509_ATTRIBUTE) *x); -int X509at_get_attr_by_NID(const STACK_OF(X509_ATTRIBUTE) *x, int nid, - int lastpos); -int X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *sk, - const ASN1_OBJECT *obj, int lastpos); -X509_ATTRIBUTE *X509at_get_attr(const STACK_OF(X509_ATTRIBUTE) *x, int loc); -X509_ATTRIBUTE *X509at_delete_attr(STACK_OF(X509_ATTRIBUTE) *x, int loc); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr(STACK_OF(X509_ATTRIBUTE) **x, - X509_ATTRIBUTE *attr); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_OBJ(STACK_OF(X509_ATTRIBUTE) - **x, const ASN1_OBJECT *obj, - int type, - const unsigned char *bytes, - int len); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_NID(STACK_OF(X509_ATTRIBUTE) - **x, int nid, int type, - const unsigned char *bytes, - int len); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_txt(STACK_OF(X509_ATTRIBUTE) - **x, const char *attrname, - int type, - const unsigned char *bytes, - int len); -void *X509at_get0_data_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *x, - const ASN1_OBJECT *obj, int lastpos, int type); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, - int atrtype, const void *data, - int len); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr, - const ASN1_OBJECT *obj, - int atrtype, const void *data, - int len); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, - const char *atrname, int type, - const unsigned char *bytes, - int len); -int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj); -int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype, - const void *data, int len); -void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx, int atrtype, - void *data); -int X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr); -ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr); -ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx); - -int EVP_PKEY_get_attr_count(const EVP_PKEY *key); -int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos); -int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, const ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc); -X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc); -int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr); -int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len); -int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key, - int nid, int type, - const unsigned char *bytes, int len); -int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key, - const char *attrname, int type, - const unsigned char *bytes, int len); - -/* lookup a cert from a X509 STACK */ -X509 *X509_find_by_issuer_and_serial(STACK_OF(X509) *sk, const X509_NAME *name, - const ASN1_INTEGER *serial); -X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); - -DECLARE_ASN1_FUNCTIONS(PBEPARAM) -DECLARE_ASN1_FUNCTIONS(PBE2PARAM) -DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) -# ifndef OPENSSL_NO_SCRYPT -DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -# endif - -int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, - const unsigned char *salt, int saltlen); -int PKCS5_pbe_set0_algor_ex(X509_ALGOR *algor, int alg, int iter, - const unsigned char *salt, int saltlen, - OSSL_LIB_CTX *libctx); - -X509_ALGOR *PKCS5_pbe_set(int alg, int iter, - const unsigned char *salt, int saltlen); -X509_ALGOR *PKCS5_pbe_set_ex(int alg, int iter, - const unsigned char *salt, int saltlen, - OSSL_LIB_CTX *libctx); - -X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, - unsigned char *salt, int saltlen); -X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, - unsigned char *salt, int saltlen, - unsigned char *aiv, int prf_nid); -X509_ALGOR *PKCS5_pbe2_set_iv_ex(const EVP_CIPHER *cipher, int iter, - unsigned char *salt, int saltlen, - unsigned char *aiv, int prf_nid, - OSSL_LIB_CTX *libctx); - -#ifndef OPENSSL_NO_SCRYPT -X509_ALGOR *PKCS5_pbe2_set_scrypt(const EVP_CIPHER *cipher, - const unsigned char *salt, int saltlen, - unsigned char *aiv, uint64_t N, uint64_t r, - uint64_t p); -#endif - -X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, - int prf_nid, int keylen); -X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, - int prf_nid, int keylen, - OSSL_LIB_CTX *libctx); - -PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); -/* PKCS#8 utilities */ - -DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) - -EVP_PKEY *EVP_PKCS82PKEY(const PKCS8_PRIV_KEY_INFO *p8); -EVP_PKEY *EVP_PKCS82PKEY_ex(const PKCS8_PRIV_KEY_INFO *p8, OSSL_LIB_CTX *libctx, - const char *propq); -PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(const EVP_PKEY *pkey); - -int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, - int version, int ptype, void *pval, - unsigned char *penc, int penclen); -int PKCS8_pkey_get0(const ASN1_OBJECT **ppkalg, - const unsigned char **pk, int *ppklen, - const X509_ALGOR **pa, const PKCS8_PRIV_KEY_INFO *p8); - -const STACK_OF(X509_ATTRIBUTE) * -PKCS8_pkey_get0_attrs(const PKCS8_PRIV_KEY_INFO *p8); -int PKCS8_pkey_add1_attr(PKCS8_PRIV_KEY_INFO *p8, X509_ATTRIBUTE *attr); -int PKCS8_pkey_add1_attr_by_NID(PKCS8_PRIV_KEY_INFO *p8, int nid, int type, - const unsigned char *bytes, int len); -int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, - int type, const unsigned char *bytes, int len); - - -void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, - unsigned char *penc, int penclen); -int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, - int ptype, void *pval, - unsigned char *penc, int penclen); -int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg, - const unsigned char **pk, int *ppklen, - X509_ALGOR **pa, const X509_PUBKEY *pub); -int X509_PUBKEY_eq(const X509_PUBKEY *a, const X509_PUBKEY *b); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/x509_acert.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/x509_acert.h deleted file mode 100644 index 690663e..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/x509_acert.h +++ /dev/null @@ -1,294 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\x509_acert.h.in - * - * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_X509_ACERT_H -# define OPENSSL_X509_ACERT_H -# pragma once - -# include -# include -# include - -typedef struct X509_acert_st X509_ACERT; -typedef struct X509_acert_info_st X509_ACERT_INFO; -typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; -typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; -typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; - -DECLARE_ASN1_FUNCTIONS(X509_ACERT) -DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) -DECLARE_ASN1_ITEM(X509_ACERT_INFO) -DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) -DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) -DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) -DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) - -# ifndef OPENSSL_NO_STDIO -X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); -int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); -# endif - -DECLARE_PEM_rw(X509_ACERT, X509_ACERT) - -X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); -int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); - -int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); -int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); - -# define X509_ACERT_VERSION_2 1 - -const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); -const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); -const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); -const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); -long X509_ACERT_get_version(const X509_ACERT *x); -void X509_ACERT_get0_signature(const X509_ACERT *x, - const ASN1_BIT_STRING **psig, - const X509_ALGOR **palg); -int X509_ACERT_get_signature_nid(const X509_ACERT *x); -const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); -const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); -const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); -const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); -const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); - -int X509_ACERT_print(BIO *bp, X509_ACERT *x); -int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, - unsigned long cflag); - -int X509_ACERT_get_attr_count(const X509_ACERT *x); -int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); -int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); -X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); - -void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); -int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, - unsigned long flags); -const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); - -# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 -# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 -# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ -int X509_ACERT_set_version(X509_ACERT *x, long version); -void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); -void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); -void X509_ACERT_set0_holder_digest(X509_ACERT *x, - OSSL_OBJECT_DIGEST_INFO *dinfo); - -int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); -int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, - int type, const void *bytes, int len); -int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, - const void *bytes, int len); -int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, - const unsigned char *bytes, int len); -int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, - X509_ACERT *acert); - -int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); -int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); -int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); -int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); - -void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, - int *digestedObjectType, - const X509_ALGOR **digestAlgorithm, - const ASN1_BIT_STRING **digest); - -int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, - int digestedObjectType, - X509_ALGOR *digestAlgorithm, - ASN1_BIT_STRING *digest); - -const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); -const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); -const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); - -int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, - const X509_NAME *issuer); -int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, - const ASN1_INTEGER *serial); -int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, - const ASN1_BIT_STRING *uid); - -# define OSSL_IETFAS_OCTETS 0 -# define OSSL_IETFAS_OID 1 -# define OSSL_IETFAS_STRING 2 - -typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; -typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) - - -DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) -DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) -DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) - -const GENERAL_NAMES * -OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); -void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, - GENERAL_NAMES *names); - -int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); -void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, - int ind, int *type); -int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, - void *data); -int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); - -struct TARGET_CERT_st { - OSSL_ISSUER_SERIAL *targetCertificate; - GENERAL_NAME *targetName; - OSSL_OBJECT_DIGEST_INFO *certDigestInfo; -}; - -typedef struct TARGET_CERT_st OSSL_TARGET_CERT; - -# define OSSL_TGT_TARGET_NAME 0 -# define OSSL_TGT_TARGET_GROUP 1 -# define OSSL_TGT_TARGET_CERT 2 - -typedef struct TARGET_st { - int type; - union { - GENERAL_NAME *targetName; - GENERAL_NAME *targetGroup; - OSSL_TARGET_CERT *targetCert; - } choice; -} OSSL_TARGET; - -typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; -typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; - -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) -#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) -#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) -#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) -#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) -#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) -#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) -#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) -#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) -#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) -#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) -#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) -#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) -#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) -#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) -#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_freefunc_type(freefunc)) -#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) -#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) -#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) -#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) -#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) -#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) -#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) -#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) -#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) -#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) - - -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) -#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) -#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) -#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) -#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) -#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) -#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) -#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) -#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) -#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) -#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) -#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) -#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) -#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) -#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) -#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) -#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) -#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) -#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) -#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) -#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) -#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) -#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) -#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) -#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) -#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) - - -DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) -DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) -DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) - -typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; -DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) - -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) -#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) -#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) -#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) -#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) -#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) -#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) -#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) -#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) -#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) -#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) -#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) -#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) -#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) -#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) -#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) -#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) -#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) -#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) -#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) -#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) -#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) -#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) -#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) -#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) -#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) - - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/x509_vfy.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/x509_vfy.h deleted file mode 100644 index 2c71d3d..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/x509_vfy.h +++ /dev/null @@ -1,921 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\x509_vfy.h.in - * - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_X509_VFY_H -# define OPENSSL_X509_VFY_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_X509_VFY_H -# endif - -/* - * Protect against recursion, x509.h and x509_vfy.h each include the other. - */ -# ifndef OPENSSL_X509_H -# include -# endif - -# include -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -DEFINE_STACK_OF(OCSP_RESPONSE) - -/*- -SSL_CTX -> X509_STORE - -> X509_LOOKUP - ->X509_LOOKUP_METHOD - -> X509_LOOKUP - ->X509_LOOKUP_METHOD - -SSL -> X509_STORE_CTX - ->X509_STORE - -The X509_STORE holds the tables etc for verification stuff. -A X509_STORE_CTX is used while validating a single certificate. -The X509_STORE has X509_LOOKUPs for looking up certs. -The X509_STORE then calls a function to actually verify the -certificate chain. -*/ - -typedef enum { - X509_LU_NONE = 0, - X509_LU_X509, X509_LU_CRL -} X509_LOOKUP_TYPE; - -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -#define X509_LU_RETRY -1 -#define X509_LU_FAIL 0 -#endif - -SKM_DEFINE_STACK_OF_INTERNAL(X509_LOOKUP, X509_LOOKUP, X509_LOOKUP) -#define sk_X509_LOOKUP_num(sk) OPENSSL_sk_num(ossl_check_const_X509_LOOKUP_sk_type(sk)) -#define sk_X509_LOOKUP_value(sk, idx) ((X509_LOOKUP *)OPENSSL_sk_value(ossl_check_const_X509_LOOKUP_sk_type(sk), (idx))) -#define sk_X509_LOOKUP_new(cmp) ((STACK_OF(X509_LOOKUP) *)OPENSSL_sk_new(ossl_check_X509_LOOKUP_compfunc_type(cmp))) -#define sk_X509_LOOKUP_new_null() ((STACK_OF(X509_LOOKUP) *)OPENSSL_sk_new_null()) -#define sk_X509_LOOKUP_new_reserve(cmp, n) ((STACK_OF(X509_LOOKUP) *)OPENSSL_sk_new_reserve(ossl_check_X509_LOOKUP_compfunc_type(cmp), (n))) -#define sk_X509_LOOKUP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_LOOKUP_sk_type(sk), (n)) -#define sk_X509_LOOKUP_free(sk) OPENSSL_sk_free(ossl_check_X509_LOOKUP_sk_type(sk)) -#define sk_X509_LOOKUP_zero(sk) OPENSSL_sk_zero(ossl_check_X509_LOOKUP_sk_type(sk)) -#define sk_X509_LOOKUP_delete(sk, i) ((X509_LOOKUP *)OPENSSL_sk_delete(ossl_check_X509_LOOKUP_sk_type(sk), (i))) -#define sk_X509_LOOKUP_delete_ptr(sk, ptr) ((X509_LOOKUP *)OPENSSL_sk_delete_ptr(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr))) -#define sk_X509_LOOKUP_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr)) -#define sk_X509_LOOKUP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr)) -#define sk_X509_LOOKUP_pop(sk) ((X509_LOOKUP *)OPENSSL_sk_pop(ossl_check_X509_LOOKUP_sk_type(sk))) -#define sk_X509_LOOKUP_shift(sk) ((X509_LOOKUP *)OPENSSL_sk_shift(ossl_check_X509_LOOKUP_sk_type(sk))) -#define sk_X509_LOOKUP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_freefunc_type(freefunc)) -#define sk_X509_LOOKUP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr), (idx)) -#define sk_X509_LOOKUP_set(sk, idx, ptr) ((X509_LOOKUP *)OPENSSL_sk_set(ossl_check_X509_LOOKUP_sk_type(sk), (idx), ossl_check_X509_LOOKUP_type(ptr))) -#define sk_X509_LOOKUP_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr)) -#define sk_X509_LOOKUP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr)) -#define sk_X509_LOOKUP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr), pnum) -#define sk_X509_LOOKUP_sort(sk) OPENSSL_sk_sort(ossl_check_X509_LOOKUP_sk_type(sk)) -#define sk_X509_LOOKUP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_LOOKUP_sk_type(sk)) -#define sk_X509_LOOKUP_dup(sk) ((STACK_OF(X509_LOOKUP) *)OPENSSL_sk_dup(ossl_check_const_X509_LOOKUP_sk_type(sk))) -#define sk_X509_LOOKUP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_LOOKUP) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_copyfunc_type(copyfunc), ossl_check_X509_LOOKUP_freefunc_type(freefunc))) -#define sk_X509_LOOKUP_set_cmp_func(sk, cmp) ((sk_X509_LOOKUP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(X509_OBJECT, X509_OBJECT, X509_OBJECT) -#define sk_X509_OBJECT_num(sk) OPENSSL_sk_num(ossl_check_const_X509_OBJECT_sk_type(sk)) -#define sk_X509_OBJECT_value(sk, idx) ((X509_OBJECT *)OPENSSL_sk_value(ossl_check_const_X509_OBJECT_sk_type(sk), (idx))) -#define sk_X509_OBJECT_new(cmp) ((STACK_OF(X509_OBJECT) *)OPENSSL_sk_new(ossl_check_X509_OBJECT_compfunc_type(cmp))) -#define sk_X509_OBJECT_new_null() ((STACK_OF(X509_OBJECT) *)OPENSSL_sk_new_null()) -#define sk_X509_OBJECT_new_reserve(cmp, n) ((STACK_OF(X509_OBJECT) *)OPENSSL_sk_new_reserve(ossl_check_X509_OBJECT_compfunc_type(cmp), (n))) -#define sk_X509_OBJECT_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_OBJECT_sk_type(sk), (n)) -#define sk_X509_OBJECT_free(sk) OPENSSL_sk_free(ossl_check_X509_OBJECT_sk_type(sk)) -#define sk_X509_OBJECT_zero(sk) OPENSSL_sk_zero(ossl_check_X509_OBJECT_sk_type(sk)) -#define sk_X509_OBJECT_delete(sk, i) ((X509_OBJECT *)OPENSSL_sk_delete(ossl_check_X509_OBJECT_sk_type(sk), (i))) -#define sk_X509_OBJECT_delete_ptr(sk, ptr) ((X509_OBJECT *)OPENSSL_sk_delete_ptr(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr))) -#define sk_X509_OBJECT_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr)) -#define sk_X509_OBJECT_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr)) -#define sk_X509_OBJECT_pop(sk) ((X509_OBJECT *)OPENSSL_sk_pop(ossl_check_X509_OBJECT_sk_type(sk))) -#define sk_X509_OBJECT_shift(sk) ((X509_OBJECT *)OPENSSL_sk_shift(ossl_check_X509_OBJECT_sk_type(sk))) -#define sk_X509_OBJECT_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_freefunc_type(freefunc)) -#define sk_X509_OBJECT_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr), (idx)) -#define sk_X509_OBJECT_set(sk, idx, ptr) ((X509_OBJECT *)OPENSSL_sk_set(ossl_check_X509_OBJECT_sk_type(sk), (idx), ossl_check_X509_OBJECT_type(ptr))) -#define sk_X509_OBJECT_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr)) -#define sk_X509_OBJECT_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr)) -#define sk_X509_OBJECT_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr), pnum) -#define sk_X509_OBJECT_sort(sk) OPENSSL_sk_sort(ossl_check_X509_OBJECT_sk_type(sk)) -#define sk_X509_OBJECT_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_OBJECT_sk_type(sk)) -#define sk_X509_OBJECT_dup(sk) ((STACK_OF(X509_OBJECT) *)OPENSSL_sk_dup(ossl_check_const_X509_OBJECT_sk_type(sk))) -#define sk_X509_OBJECT_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_OBJECT) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_copyfunc_type(copyfunc), ossl_check_X509_OBJECT_freefunc_type(freefunc))) -#define sk_X509_OBJECT_set_cmp_func(sk, cmp) ((sk_X509_OBJECT_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(X509_VERIFY_PARAM, X509_VERIFY_PARAM, X509_VERIFY_PARAM) -#define sk_X509_VERIFY_PARAM_num(sk) OPENSSL_sk_num(ossl_check_const_X509_VERIFY_PARAM_sk_type(sk)) -#define sk_X509_VERIFY_PARAM_value(sk, idx) ((X509_VERIFY_PARAM *)OPENSSL_sk_value(ossl_check_const_X509_VERIFY_PARAM_sk_type(sk), (idx))) -#define sk_X509_VERIFY_PARAM_new(cmp) ((STACK_OF(X509_VERIFY_PARAM) *)OPENSSL_sk_new(ossl_check_X509_VERIFY_PARAM_compfunc_type(cmp))) -#define sk_X509_VERIFY_PARAM_new_null() ((STACK_OF(X509_VERIFY_PARAM) *)OPENSSL_sk_new_null()) -#define sk_X509_VERIFY_PARAM_new_reserve(cmp, n) ((STACK_OF(X509_VERIFY_PARAM) *)OPENSSL_sk_new_reserve(ossl_check_X509_VERIFY_PARAM_compfunc_type(cmp), (n))) -#define sk_X509_VERIFY_PARAM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_VERIFY_PARAM_sk_type(sk), (n)) -#define sk_X509_VERIFY_PARAM_free(sk) OPENSSL_sk_free(ossl_check_X509_VERIFY_PARAM_sk_type(sk)) -#define sk_X509_VERIFY_PARAM_zero(sk) OPENSSL_sk_zero(ossl_check_X509_VERIFY_PARAM_sk_type(sk)) -#define sk_X509_VERIFY_PARAM_delete(sk, i) ((X509_VERIFY_PARAM *)OPENSSL_sk_delete(ossl_check_X509_VERIFY_PARAM_sk_type(sk), (i))) -#define sk_X509_VERIFY_PARAM_delete_ptr(sk, ptr) ((X509_VERIFY_PARAM *)OPENSSL_sk_delete_ptr(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr))) -#define sk_X509_VERIFY_PARAM_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr)) -#define sk_X509_VERIFY_PARAM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr)) -#define sk_X509_VERIFY_PARAM_pop(sk) ((X509_VERIFY_PARAM *)OPENSSL_sk_pop(ossl_check_X509_VERIFY_PARAM_sk_type(sk))) -#define sk_X509_VERIFY_PARAM_shift(sk) ((X509_VERIFY_PARAM *)OPENSSL_sk_shift(ossl_check_X509_VERIFY_PARAM_sk_type(sk))) -#define sk_X509_VERIFY_PARAM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_freefunc_type(freefunc)) -#define sk_X509_VERIFY_PARAM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr), (idx)) -#define sk_X509_VERIFY_PARAM_set(sk, idx, ptr) ((X509_VERIFY_PARAM *)OPENSSL_sk_set(ossl_check_X509_VERIFY_PARAM_sk_type(sk), (idx), ossl_check_X509_VERIFY_PARAM_type(ptr))) -#define sk_X509_VERIFY_PARAM_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr)) -#define sk_X509_VERIFY_PARAM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr)) -#define sk_X509_VERIFY_PARAM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr), pnum) -#define sk_X509_VERIFY_PARAM_sort(sk) OPENSSL_sk_sort(ossl_check_X509_VERIFY_PARAM_sk_type(sk)) -#define sk_X509_VERIFY_PARAM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_VERIFY_PARAM_sk_type(sk)) -#define sk_X509_VERIFY_PARAM_dup(sk) ((STACK_OF(X509_VERIFY_PARAM) *)OPENSSL_sk_dup(ossl_check_const_X509_VERIFY_PARAM_sk_type(sk))) -#define sk_X509_VERIFY_PARAM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_VERIFY_PARAM) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_copyfunc_type(copyfunc), ossl_check_X509_VERIFY_PARAM_freefunc_type(freefunc))) -#define sk_X509_VERIFY_PARAM_set_cmp_func(sk, cmp) ((sk_X509_VERIFY_PARAM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_compfunc_type(cmp))) - - -/* This is used for a table of trust checking functions */ -typedef struct x509_trust_st { - int trust; - int flags; - int (*check_trust) (struct x509_trust_st *, X509 *, int); - char *name; - int arg1; - void *arg2; -} X509_TRUST; -SKM_DEFINE_STACK_OF_INTERNAL(X509_TRUST, X509_TRUST, X509_TRUST) -#define sk_X509_TRUST_num(sk) OPENSSL_sk_num(ossl_check_const_X509_TRUST_sk_type(sk)) -#define sk_X509_TRUST_value(sk, idx) ((X509_TRUST *)OPENSSL_sk_value(ossl_check_const_X509_TRUST_sk_type(sk), (idx))) -#define sk_X509_TRUST_new(cmp) ((STACK_OF(X509_TRUST) *)OPENSSL_sk_new(ossl_check_X509_TRUST_compfunc_type(cmp))) -#define sk_X509_TRUST_new_null() ((STACK_OF(X509_TRUST) *)OPENSSL_sk_new_null()) -#define sk_X509_TRUST_new_reserve(cmp, n) ((STACK_OF(X509_TRUST) *)OPENSSL_sk_new_reserve(ossl_check_X509_TRUST_compfunc_type(cmp), (n))) -#define sk_X509_TRUST_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_TRUST_sk_type(sk), (n)) -#define sk_X509_TRUST_free(sk) OPENSSL_sk_free(ossl_check_X509_TRUST_sk_type(sk)) -#define sk_X509_TRUST_zero(sk) OPENSSL_sk_zero(ossl_check_X509_TRUST_sk_type(sk)) -#define sk_X509_TRUST_delete(sk, i) ((X509_TRUST *)OPENSSL_sk_delete(ossl_check_X509_TRUST_sk_type(sk), (i))) -#define sk_X509_TRUST_delete_ptr(sk, ptr) ((X509_TRUST *)OPENSSL_sk_delete_ptr(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr))) -#define sk_X509_TRUST_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr)) -#define sk_X509_TRUST_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr)) -#define sk_X509_TRUST_pop(sk) ((X509_TRUST *)OPENSSL_sk_pop(ossl_check_X509_TRUST_sk_type(sk))) -#define sk_X509_TRUST_shift(sk) ((X509_TRUST *)OPENSSL_sk_shift(ossl_check_X509_TRUST_sk_type(sk))) -#define sk_X509_TRUST_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_freefunc_type(freefunc)) -#define sk_X509_TRUST_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr), (idx)) -#define sk_X509_TRUST_set(sk, idx, ptr) ((X509_TRUST *)OPENSSL_sk_set(ossl_check_X509_TRUST_sk_type(sk), (idx), ossl_check_X509_TRUST_type(ptr))) -#define sk_X509_TRUST_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr)) -#define sk_X509_TRUST_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr)) -#define sk_X509_TRUST_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr), pnum) -#define sk_X509_TRUST_sort(sk) OPENSSL_sk_sort(ossl_check_X509_TRUST_sk_type(sk)) -#define sk_X509_TRUST_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_TRUST_sk_type(sk)) -#define sk_X509_TRUST_dup(sk) ((STACK_OF(X509_TRUST) *)OPENSSL_sk_dup(ossl_check_const_X509_TRUST_sk_type(sk))) -#define sk_X509_TRUST_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_TRUST) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_copyfunc_type(copyfunc), ossl_check_X509_TRUST_freefunc_type(freefunc))) -#define sk_X509_TRUST_set_cmp_func(sk, cmp) ((sk_X509_TRUST_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_compfunc_type(cmp))) - - -/* standard trust ids */ -# define X509_TRUST_DEFAULT 0 /* Only valid in purpose settings */ -# define X509_TRUST_COMPAT 1 -# define X509_TRUST_SSL_CLIENT 2 -# define X509_TRUST_SSL_SERVER 3 -# define X509_TRUST_EMAIL 4 -# define X509_TRUST_OBJECT_SIGN 5 -# define X509_TRUST_OCSP_SIGN 6 -# define X509_TRUST_OCSP_REQUEST 7 -# define X509_TRUST_TSA 8 -/* Keep these up to date! */ -# define X509_TRUST_MIN 1 -# define X509_TRUST_MAX 8 - -/* trust_flags values */ -# define X509_TRUST_DYNAMIC (1U << 0) -# define X509_TRUST_DYNAMIC_NAME (1U << 1) -/* No compat trust if self-signed, preempts "DO_SS" */ -# define X509_TRUST_NO_SS_COMPAT (1U << 2) -/* Compat trust if no explicit accepted trust EKUs */ -# define X509_TRUST_DO_SS_COMPAT (1U << 3) -/* Accept "anyEKU" as a wildcard rejection OID and as a wildcard trust OID */ -# define X509_TRUST_OK_ANY_EKU (1U << 4) - -/* check_trust return codes */ -# define X509_TRUST_TRUSTED 1 -# define X509_TRUST_REJECTED 2 -# define X509_TRUST_UNTRUSTED 3 - -int X509_TRUST_set(int *t, int trust); -int X509_TRUST_get_count(void); -X509_TRUST *X509_TRUST_get0(int idx); -int X509_TRUST_get_by_id(int id); -int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int), - const char *name, int arg1, void *arg2); -void X509_TRUST_cleanup(void); -int X509_TRUST_get_flags(const X509_TRUST *xp); -char *X509_TRUST_get0_name(const X509_TRUST *xp); -int X509_TRUST_get_trust(const X509_TRUST *xp); - -int X509_trusted(const X509 *x); -int X509_add1_trust_object(X509 *x, const ASN1_OBJECT *obj); -int X509_add1_reject_object(X509 *x, const ASN1_OBJECT *obj); -void X509_trust_clear(X509 *x); -void X509_reject_clear(X509 *x); -STACK_OF(ASN1_OBJECT) *X509_get0_trust_objects(X509 *x); -STACK_OF(ASN1_OBJECT) *X509_get0_reject_objects(X509 *x); - -int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *, - int); -int X509_check_trust(X509 *x, int id, int flags); - -int X509_verify_cert(X509_STORE_CTX *ctx); -int X509_STORE_CTX_verify(X509_STORE_CTX *ctx); -STACK_OF(X509) *X509_build_chain(X509 *target, STACK_OF(X509) *certs, - X509_STORE *store, int with_self_signed, - OSSL_LIB_CTX *libctx, const char *propq); - -int X509_STORE_set_depth(X509_STORE *store, int depth); - -typedef int (*X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *); -int X509_STORE_CTX_print_verify_cb(int ok, X509_STORE_CTX *ctx); -typedef int (*X509_STORE_CTX_verify_fn)(X509_STORE_CTX *); -typedef int (*X509_STORE_CTX_get_issuer_fn)(X509 **issuer, - X509_STORE_CTX *ctx, X509 *x); -typedef int (*X509_STORE_CTX_check_issued_fn)(X509_STORE_CTX *ctx, - X509 *x, X509 *issuer); -typedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx); -typedef int (*X509_STORE_CTX_get_crl_fn)(X509_STORE_CTX *ctx, - X509_CRL **crl, X509 *x); -typedef int (*X509_STORE_CTX_check_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl); -typedef int (*X509_STORE_CTX_cert_crl_fn)(X509_STORE_CTX *ctx, - X509_CRL *crl, X509 *x); -typedef int (*X509_STORE_CTX_check_policy_fn)(X509_STORE_CTX *ctx); -typedef STACK_OF(X509) - *(*X509_STORE_CTX_lookup_certs_fn)(X509_STORE_CTX *ctx, - const X509_NAME *nm); -typedef STACK_OF(X509_CRL) - *(*X509_STORE_CTX_lookup_crls_fn)(const X509_STORE_CTX *ctx, - const X509_NAME *nm); -typedef int (*X509_STORE_CTX_cleanup_fn)(X509_STORE_CTX *ctx); - -void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); - -# define X509_STORE_CTX_set_app_data(ctx,data) \ - X509_STORE_CTX_set_ex_data(ctx,0,data) -# define X509_STORE_CTX_get_app_data(ctx) \ - X509_STORE_CTX_get_ex_data(ctx,0) - -# define X509_L_FILE_LOAD 1 -# define X509_L_ADD_DIR 2 -# define X509_L_ADD_STORE 3 -# define X509_L_LOAD_STORE 4 - -# define X509_LOOKUP_load_file(x,name,type) \ - X509_LOOKUP_ctrl((x),X509_L_FILE_LOAD,(name),(long)(type),NULL) - -# define X509_LOOKUP_add_dir(x,name,type) \ - X509_LOOKUP_ctrl((x),X509_L_ADD_DIR,(name),(long)(type),NULL) - -# define X509_LOOKUP_add_store(x,name) \ - X509_LOOKUP_ctrl((x),X509_L_ADD_STORE,(name),0,NULL) - -# define X509_LOOKUP_load_store(x,name) \ - X509_LOOKUP_ctrl((x),X509_L_LOAD_STORE,(name),0,NULL) - -# define X509_LOOKUP_load_file_ex(x, name, type, libctx, propq) \ -X509_LOOKUP_ctrl_ex((x), X509_L_FILE_LOAD, (name), (long)(type), NULL,\ - (libctx), (propq)) - -# define X509_LOOKUP_load_store_ex(x, name, libctx, propq) \ -X509_LOOKUP_ctrl_ex((x), X509_L_LOAD_STORE, (name), 0, NULL, \ - (libctx), (propq)) - -# define X509_LOOKUP_add_store_ex(x, name, libctx, propq) \ -X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ - (libctx), (propq)) - -# define X509_V_OK 0 -# define X509_V_ERR_UNSPECIFIED 1 -# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2 -# define X509_V_ERR_UNABLE_TO_GET_CRL 3 -# define X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 4 -# define X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE 5 -# define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6 -# define X509_V_ERR_CERT_SIGNATURE_FAILURE 7 -# define X509_V_ERR_CRL_SIGNATURE_FAILURE 8 -# define X509_V_ERR_CERT_NOT_YET_VALID 9 -# define X509_V_ERR_CERT_HAS_EXPIRED 10 -# define X509_V_ERR_CRL_NOT_YET_VALID 11 -# define X509_V_ERR_CRL_HAS_EXPIRED 12 -# define X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD 13 -# define X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD 14 -# define X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD 15 -# define X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD 16 -# define X509_V_ERR_OUT_OF_MEM 17 -# define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18 -# define X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN 19 -# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20 -# define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21 -# define X509_V_ERR_CERT_CHAIN_TOO_LONG 22 -# define X509_V_ERR_CERT_REVOKED 23 -# define X509_V_ERR_NO_ISSUER_PUBLIC_KEY 24 -# define X509_V_ERR_PATH_LENGTH_EXCEEDED 25 -# define X509_V_ERR_INVALID_PURPOSE 26 -# define X509_V_ERR_CERT_UNTRUSTED 27 -# define X509_V_ERR_CERT_REJECTED 28 - -/* These are 'informational' when looking for issuer cert */ -# define X509_V_ERR_SUBJECT_ISSUER_MISMATCH 29 -# define X509_V_ERR_AKID_SKID_MISMATCH 30 -# define X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH 31 -# define X509_V_ERR_KEYUSAGE_NO_CERTSIGN 32 -# define X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER 33 -# define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34 -# define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35 -# define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36 -# define X509_V_ERR_INVALID_NON_CA 37 -# define X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED 38 -# define X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39 -# define X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED 40 -# define X509_V_ERR_INVALID_EXTENSION 41 -# define X509_V_ERR_INVALID_POLICY_EXTENSION 42 -# define X509_V_ERR_NO_EXPLICIT_POLICY 43 -# define X509_V_ERR_DIFFERENT_CRL_SCOPE 44 -# define X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE 45 -# define X509_V_ERR_UNNESTED_RESOURCE 46 -# define X509_V_ERR_PERMITTED_VIOLATION 47 -# define X509_V_ERR_EXCLUDED_VIOLATION 48 -# define X509_V_ERR_SUBTREE_MINMAX 49 -/* The application is not happy */ -# define X509_V_ERR_APPLICATION_VERIFICATION 50 -# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE 51 -# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX 52 -# define X509_V_ERR_UNSUPPORTED_NAME_SYNTAX 53 -# define X509_V_ERR_CRL_PATH_VALIDATION_ERROR 54 -/* Another issuer check debug option */ -# define X509_V_ERR_PATH_LOOP 55 -/* Suite B mode algorithm violation */ -# define X509_V_ERR_SUITE_B_INVALID_VERSION 56 -# define X509_V_ERR_SUITE_B_INVALID_ALGORITHM 57 -# define X509_V_ERR_SUITE_B_INVALID_CURVE 58 -# define X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM 59 -# define X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED 60 -# define X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 61 -/* Host, email and IP check errors */ -# define X509_V_ERR_HOSTNAME_MISMATCH 62 -# define X509_V_ERR_EMAIL_MISMATCH 63 -# define X509_V_ERR_IP_ADDRESS_MISMATCH 64 -/* DANE TLSA errors */ -# define X509_V_ERR_DANE_NO_MATCH 65 -/* security level errors */ -# define X509_V_ERR_EE_KEY_TOO_SMALL 66 -# define X509_V_ERR_CA_KEY_TOO_SMALL 67 -# define X509_V_ERR_CA_MD_TOO_WEAK 68 -/* Caller error */ -# define X509_V_ERR_INVALID_CALL 69 -/* Issuer lookup error */ -# define X509_V_ERR_STORE_LOOKUP 70 -/* Certificate transparency */ -# define X509_V_ERR_NO_VALID_SCTS 71 - -# define X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION 72 -/* OCSP status errors */ -# define X509_V_ERR_OCSP_VERIFY_NEEDED 73 /* Need OCSP verification */ -# define X509_V_ERR_OCSP_VERIFY_FAILED 74 /* Couldn't verify cert through OCSP */ -# define X509_V_ERR_OCSP_CERT_UNKNOWN 75 /* Certificate wasn't recognized by the OCSP responder */ - -# define X509_V_ERR_UNSUPPORTED_SIGNATURE_ALGORITHM 76 -# define X509_V_ERR_SIGNATURE_ALGORITHM_MISMATCH 77 - -/* Errors in case a check in X509_V_FLAG_X509_STRICT mode fails */ -# define X509_V_ERR_SIGNATURE_ALGORITHM_INCONSISTENCY 78 -# define X509_V_ERR_INVALID_CA 79 -# define X509_V_ERR_PATHLEN_INVALID_FOR_NON_CA 80 -# define X509_V_ERR_PATHLEN_WITHOUT_KU_KEY_CERT_SIGN 81 -# define X509_V_ERR_KU_KEY_CERT_SIGN_INVALID_FOR_NON_CA 82 -# define X509_V_ERR_ISSUER_NAME_EMPTY 83 -# define X509_V_ERR_SUBJECT_NAME_EMPTY 84 -# define X509_V_ERR_MISSING_AUTHORITY_KEY_IDENTIFIER 85 -# define X509_V_ERR_MISSING_SUBJECT_KEY_IDENTIFIER 86 -# define X509_V_ERR_EMPTY_SUBJECT_ALT_NAME 87 -# define X509_V_ERR_EMPTY_SUBJECT_SAN_NOT_CRITICAL 88 -# define X509_V_ERR_CA_BCONS_NOT_CRITICAL 89 -# define X509_V_ERR_AUTHORITY_KEY_IDENTIFIER_CRITICAL 90 -# define X509_V_ERR_SUBJECT_KEY_IDENTIFIER_CRITICAL 91 -# define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 -# define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 -# define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 -# define X509_V_ERR_RPK_UNTRUSTED 95 - -/* additional OCSP status errors */ -# define X509_V_ERR_OCSP_RESP_INVALID 96 -# define X509_V_ERR_OCSP_SIGNATURE_FAILURE 97 -# define X509_V_ERR_OCSP_NOT_YET_VALID 98 -# define X509_V_ERR_OCSP_HAS_EXPIRED 99 -# define X509_V_ERR_OCSP_NO_RESPONSE 100 -# define X509_V_ERR_CRL_VERIFY_FAILED 101 - -/* Certificate verify flags */ -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define X509_V_FLAG_CB_ISSUER_CHECK 0x0 /* Deprecated */ -# endif -/* Use check time instead of current time */ -# define X509_V_FLAG_USE_CHECK_TIME 0x2 -/* Lookup CRLs */ -# define X509_V_FLAG_CRL_CHECK 0x4 -/* Lookup CRLs for whole chain */ -# define X509_V_FLAG_CRL_CHECK_ALL 0x8 -/* Ignore unhandled critical extensions */ -# define X509_V_FLAG_IGNORE_CRITICAL 0x10 -/* Disable workarounds for broken certificates */ -# define X509_V_FLAG_X509_STRICT 0x20 -/* Enable proxy certificate validation */ -# define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40 -/* Enable policy checking */ -# define X509_V_FLAG_POLICY_CHECK 0x80 -/* Policy variable require-explicit-policy */ -# define X509_V_FLAG_EXPLICIT_POLICY 0x100 -/* Policy variable inhibit-any-policy */ -# define X509_V_FLAG_INHIBIT_ANY 0x200 -/* Policy variable inhibit-policy-mapping */ -# define X509_V_FLAG_INHIBIT_MAP 0x400 -/* Notify callback that policy is OK */ -# define X509_V_FLAG_NOTIFY_POLICY 0x800 -/* Extended CRL features such as indirect CRLs, alternate CRL signing keys */ -# define X509_V_FLAG_EXTENDED_CRL_SUPPORT 0x1000 -/* Delta CRL support */ -# define X509_V_FLAG_USE_DELTAS 0x2000 -/* Check self-signed CA signature */ -# define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000 -/* Use trusted store first */ -# define X509_V_FLAG_TRUSTED_FIRST 0x8000 -/* Suite B 128 bit only mode: not normally used */ -# define X509_V_FLAG_SUITEB_128_LOS_ONLY 0x10000 -/* Suite B 192 bit only mode */ -# define X509_V_FLAG_SUITEB_192_LOS 0x20000 -/* Suite B 128 bit mode allowing 192 bit algorithms */ -# define X509_V_FLAG_SUITEB_128_LOS 0x30000 -/* Allow partial chains if at least one certificate is in trusted store */ -# define X509_V_FLAG_PARTIAL_CHAIN 0x80000 -/* - * If the initial chain is not trusted, do not attempt to build an alternative - * chain. Alternate chain checking was introduced in 1.1.0. Setting this flag - * will force the behaviour to match that of previous versions. - */ -# define X509_V_FLAG_NO_ALT_CHAINS 0x100000 -/* Do not check certificate/CRL validity against current time */ -# define X509_V_FLAG_NO_CHECK_TIME 0x200000 - -/* Verify OCSP stapling response for server certificate */ -# define X509_V_FLAG_OCSP_RESP_CHECK 0x400000 -/* Verify OCSP stapling responses for whole chain */ -# define X509_V_FLAG_OCSP_RESP_CHECK_ALL 0x800000 - -# define X509_VP_FLAG_DEFAULT 0x1 -# define X509_VP_FLAG_OVERWRITE 0x2 -# define X509_VP_FLAG_RESET_FLAGS 0x4 -# define X509_VP_FLAG_LOCKED 0x8 -# define X509_VP_FLAG_ONCE 0x10 - -/* Internal use: mask of policy related options */ -# define X509_V_FLAG_POLICY_MASK (X509_V_FLAG_POLICY_CHECK \ - | X509_V_FLAG_EXPLICIT_POLICY \ - | X509_V_FLAG_INHIBIT_ANY \ - | X509_V_FLAG_INHIBIT_MAP) - -int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, X509_LOOKUP_TYPE type, - const X509_NAME *name); -X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h, - X509_LOOKUP_TYPE type, - const X509_NAME *name); -X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, - X509_OBJECT *x); -int X509_OBJECT_up_ref_count(X509_OBJECT *a); -X509_OBJECT *X509_OBJECT_new(void); -void X509_OBJECT_free(X509_OBJECT *a); -X509_LOOKUP_TYPE X509_OBJECT_get_type(const X509_OBJECT *a); -X509 *X509_OBJECT_get0_X509(const X509_OBJECT *a); -int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); -X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); -int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); -X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *xs); -int X509_STORE_lock(X509_STORE *xs); -int X509_STORE_unlock(X509_STORE *xs); -int X509_STORE_up_ref(X509_STORE *xs); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); -STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, - const X509_NAME *nm); -STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, - const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *xs, int purpose); -int X509_STORE_set_trust(X509_STORE *xs, int trust); -int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); - -void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); -#define X509_STORE_set_verify_func(ctx, func) \ - X509_STORE_set_verify((ctx),(func)) -void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, - X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); -void X509_STORE_set_verify_cb(X509_STORE *xs, - X509_STORE_CTX_verify_cb verify_cb); -# define X509_STORE_set_verify_cb_func(ctx,func) \ - X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); -void X509_STORE_set_get_issuer(X509_STORE *xs, - X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); -void X509_STORE_set_check_issued(X509_STORE *xs, - X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); -void X509_STORE_set_check_revocation(X509_STORE *xs, - X509_STORE_CTX_check_revocation_fn check_revocation); -X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *xs); -void X509_STORE_set_get_crl(X509_STORE *xs, - X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); -void X509_STORE_set_check_crl(X509_STORE *xs, - X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); -void X509_STORE_set_cert_crl(X509_STORE *xs, - X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); -void X509_STORE_set_check_policy(X509_STORE *xs, - X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); -void X509_STORE_set_lookup_certs(X509_STORE *xs, - X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); -void X509_STORE_set_lookup_crls(X509_STORE *xs, - X509_STORE_CTX_lookup_crls_fn lookup_crls); -#define X509_STORE_set_lookup_crls_cb(ctx, func) \ - X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); -void X509_STORE_set_cleanup(X509_STORE *xs, - X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); - -#define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); - -X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); -X509_STORE_CTX *X509_STORE_CTX_new(void); - -int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); - -void X509_STORE_CTX_free(X509_STORE_CTX *ctx); -int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, - X509 *target, STACK_OF(X509) *untrusted); -int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, - EVP_PKEY* rpk); -void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); -void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); - -X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); -X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); -EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); -STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); -void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); -void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, - X509_STORE_CTX_verify_cb verify); -X509_STORE_CTX_verify_cb X509_STORE_CTX_get_verify_cb(const X509_STORE_CTX *ctx); -X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); -X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); -X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); -X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, - X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); -X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); -X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); -X509_STORE_CTX_check_policy_fn X509_STORE_CTX_get_check_policy(const X509_STORE_CTX *ctx); -X509_STORE_CTX_lookup_certs_fn X509_STORE_CTX_get_lookup_certs(const X509_STORE_CTX *ctx); -X509_STORE_CTX_lookup_crls_fn X509_STORE_CTX_get_lookup_crls(const X509_STORE_CTX *ctx); -X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); - -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define X509_STORE_CTX_get_chain X509_STORE_CTX_get0_chain -# define X509_STORE_CTX_set_chain X509_STORE_CTX_set0_untrusted -# define X509_STORE_CTX_trusted_stack X509_STORE_CTX_set0_trusted_stack -# define X509_STORE_get_by_subject X509_STORE_CTX_get_by_subject -# define X509_STORE_get1_certs X509_STORE_CTX_get1_certs -# define X509_STORE_get1_crls X509_STORE_CTX_get1_crls -/* the following macro is misspelled; use X509_STORE_get1_certs instead */ -# define X509_STORE_get1_cert X509_STORE_CTX_get1_certs -/* the following macro is misspelled; use X509_STORE_get1_crls instead */ -# define X509_STORE_get1_crl X509_STORE_CTX_get1_crls -#endif - -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); -X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); -X509_LOOKUP_METHOD *X509_LOOKUP_file(void); -X509_LOOKUP_METHOD *X509_LOOKUP_store(void); - -typedef int (*X509_LOOKUP_ctrl_fn)(X509_LOOKUP *ctx, int cmd, const char *argc, - long argl, char **ret); -typedef int (*X509_LOOKUP_ctrl_ex_fn)( - X509_LOOKUP *ctx, int cmd, const char *argc, long argl, char **ret, - OSSL_LIB_CTX *libctx, const char *propq); - -typedef int (*X509_LOOKUP_get_by_subject_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - const X509_NAME *name, - X509_OBJECT *ret); -typedef int (*X509_LOOKUP_get_by_subject_ex_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - const X509_NAME *name, - X509_OBJECT *ret, - OSSL_LIB_CTX *libctx, - const char *propq); -typedef int (*X509_LOOKUP_get_by_issuer_serial_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - const X509_NAME *name, - const ASN1_INTEGER *serial, - X509_OBJECT *ret); -typedef int (*X509_LOOKUP_get_by_fingerprint_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - const unsigned char* bytes, - int len, - X509_OBJECT *ret); -typedef int (*X509_LOOKUP_get_by_alias_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - const char *str, - int len, - X509_OBJECT *ret); - -X509_LOOKUP_METHOD *X509_LOOKUP_meth_new(const char *name); -void X509_LOOKUP_meth_free(X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_new_item(X509_LOOKUP_METHOD *method, - int (*new_item) (X509_LOOKUP *ctx)); -int (*X509_LOOKUP_meth_get_new_item(const X509_LOOKUP_METHOD* method)) - (X509_LOOKUP *ctx); - -int X509_LOOKUP_meth_set_free(X509_LOOKUP_METHOD *method, - void (*free_fn) (X509_LOOKUP *ctx)); -void (*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method)) - (X509_LOOKUP *ctx); - -int X509_LOOKUP_meth_set_init(X509_LOOKUP_METHOD *method, - int (*init) (X509_LOOKUP *ctx)); -int (*X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD* method)) - (X509_LOOKUP *ctx); - -int X509_LOOKUP_meth_set_shutdown(X509_LOOKUP_METHOD *method, - int (*shutdown) (X509_LOOKUP *ctx)); -int (*X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD* method)) - (X509_LOOKUP *ctx); - -int X509_LOOKUP_meth_set_ctrl(X509_LOOKUP_METHOD *method, - X509_LOOKUP_ctrl_fn ctrl_fn); -X509_LOOKUP_ctrl_fn X509_LOOKUP_meth_get_ctrl(const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_subject(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_subject_fn fn); -X509_LOOKUP_get_by_subject_fn X509_LOOKUP_meth_get_get_by_subject( - const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_issuer_serial(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_issuer_serial_fn fn); -X509_LOOKUP_get_by_issuer_serial_fn X509_LOOKUP_meth_get_get_by_issuer_serial( - const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_fingerprint(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_fingerprint_fn fn); -X509_LOOKUP_get_by_fingerprint_fn X509_LOOKUP_meth_get_get_by_fingerprint( - const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_alias(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_alias_fn fn); -X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( - const X509_LOOKUP_METHOD *method); - - -int X509_STORE_add_cert(X509_STORE *xs, X509 *x); -int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); - -int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, - X509_LOOKUP_TYPE type, - const X509_NAME *name, X509_OBJECT *ret); -X509_OBJECT *X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs, - X509_LOOKUP_TYPE type, - const X509_NAME *name); - -int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, - long argl, char **ret); -int X509_LOOKUP_ctrl_ex(X509_LOOKUP *ctx, int cmd, const char *argc, long argl, - char **ret, OSSL_LIB_CTX *libctx, const char *propq); - -int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type); -int X509_load_cert_file_ex(X509_LOOKUP *ctx, const char *file, int type, - OSSL_LIB_CTX *libctx, const char *propq); -int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type); -int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type); -int X509_load_cert_crl_file_ex(X509_LOOKUP *ctx, const char *file, int type, - OSSL_LIB_CTX *libctx, const char *propq); - -X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); -void X509_LOOKUP_free(X509_LOOKUP *ctx); -int X509_LOOKUP_init(X509_LOOKUP *ctx); -int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - const X509_NAME *name, X509_OBJECT *ret); -int X509_LOOKUP_by_subject_ex(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - const X509_NAME *name, X509_OBJECT *ret, - OSSL_LIB_CTX *libctx, const char *propq); -int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - const X509_NAME *name, - const ASN1_INTEGER *serial, - X509_OBJECT *ret); -int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - const unsigned char *bytes, int len, - X509_OBJECT *ret); -int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - const char *str, int len, X509_OBJECT *ret); -int X509_LOOKUP_set_method_data(X509_LOOKUP *ctx, void *data); -void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); -X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); -int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); - -int X509_STORE_load_file(X509_STORE *xs, const char *file); -int X509_STORE_load_path(X509_STORE *xs, const char *path); -int X509_STORE_load_store(X509_STORE *xs, const char *store); -int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); -int X509_STORE_set_default_paths(X509_STORE *xs); - -int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, - OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, - OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *xs, - const char *file, const char *dir, - OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *xs, - OSSL_LIB_CTX *libctx, const char *propq); - -#define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) -int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data); -void *X509_STORE_CTX_get_ex_data(const X509_STORE_CTX *ctx, int idx); -int X509_STORE_CTX_get_error(const X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s); -int X509_STORE_CTX_get_error_depth(const X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_error_depth(X509_STORE_CTX *ctx, int depth); -X509 *X509_STORE_CTX_get_current_cert(const X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_current_cert(X509_STORE_CTX *ctx, X509 *x); -X509 *X509_STORE_CTX_get0_current_issuer(const X509_STORE_CTX *ctx); -X509_CRL *X509_STORE_CTX_get0_current_crl(const X509_STORE_CTX *ctx); -X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); -STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); -STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); -void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); -void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); -void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); -# ifndef OPENSSL_NO_OCSP -void X509_STORE_CTX_set_ocsp_resp(X509_STORE_CTX *ctx, STACK_OF(OCSP_RESPONSE) *sk); -# endif -int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); -int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); -int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, - int purpose, int trust); -void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); -void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, - time_t t); -void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, - unsigned int current_reasons); - -X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); -int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); -int X509_STORE_CTX_get_num_untrusted(const X509_STORE_CTX *ctx); - -X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(const X509_STORE_CTX *ctx); -void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); -int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); - -/* - * Bridge opacity barrier between libcrypt and libssl, also needed to support - * offline testing in test/danetest.c - */ -void X509_STORE_CTX_set0_dane(X509_STORE_CTX *ctx, SSL_DANE *dane); -#define DANE_FLAG_NO_DANE_EE_NAMECHECKS (1L << 0) - -/* X509_VERIFY_PARAM functions */ - -X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void); -void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to, - const X509_VERIFY_PARAM *from); -int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, - const X509_VERIFY_PARAM *from); -int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name); -int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, - unsigned long flags); -int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, - unsigned long flags); -unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); -int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); -void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); -void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); -time_t X509_VERIFY_PARAM_get_time(const X509_VERIFY_PARAM *param); -void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); -int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, - ASN1_OBJECT *policy); -int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, - STACK_OF(ASN1_OBJECT) *policies); - -int X509_VERIFY_PARAM_set_inh_flags(X509_VERIFY_PARAM *param, - uint32_t flags); -uint32_t X509_VERIFY_PARAM_get_inh_flags(const X509_VERIFY_PARAM *param); - -char *X509_VERIFY_PARAM_get0_host(X509_VERIFY_PARAM *param, int idx); -int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, - const char *name, size_t namelen); -int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, - const char *name, size_t namelen); -void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, - unsigned int flags); -unsigned int X509_VERIFY_PARAM_get_hostflags(const X509_VERIFY_PARAM *param); -char *X509_VERIFY_PARAM_get0_peername(const X509_VERIFY_PARAM *param); -void X509_VERIFY_PARAM_move_peername(X509_VERIFY_PARAM *, X509_VERIFY_PARAM *); -char *X509_VERIFY_PARAM_get0_email(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, - const char *email, size_t emaillen); -char *X509_VERIFY_PARAM_get1_ip_asc(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, - const unsigned char *ip, size_t iplen); -int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, - const char *ipasc); - -int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_get_auth_level(const X509_VERIFY_PARAM *param); -const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param); - -int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_get_count(void); -const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id); -const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); -void X509_VERIFY_PARAM_table_cleanup(void); - -/* Non positive return values are errors */ -#define X509_PCY_TREE_FAILURE -2 /* Failure to satisfy explicit policy */ -#define X509_PCY_TREE_INVALID -1 /* Inconsistent or invalid extensions */ -#define X509_PCY_TREE_INTERNAL 0 /* Internal error, most likely malloc */ - -/* - * Positive return values form a bit mask, all but the first are internal to - * the library and don't appear in results from X509_policy_check(). - */ -#define X509_PCY_TREE_VALID 1 /* The policy tree is valid */ -#define X509_PCY_TREE_EMPTY 2 /* The policy tree is empty */ -#define X509_PCY_TREE_EXPLICIT 4 /* Explicit policy required */ - -int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, - STACK_OF(X509) *certs, - STACK_OF(ASN1_OBJECT) *policy_oids, unsigned int flags); - -void X509_policy_tree_free(X509_POLICY_TREE *tree); - -int X509_policy_tree_level_count(const X509_POLICY_TREE *tree); -X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE *tree, - int i); - -STACK_OF(X509_POLICY_NODE) - *X509_policy_tree_get0_policies(const X509_POLICY_TREE *tree); - -STACK_OF(X509_POLICY_NODE) - *X509_policy_tree_get0_user_policies(const X509_POLICY_TREE *tree); - -int X509_policy_level_node_count(X509_POLICY_LEVEL *level); - -X509_POLICY_NODE *X509_policy_level_get0_node(const X509_POLICY_LEVEL *level, - int i); - -const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node); - -STACK_OF(POLICYQUALINFO) - *X509_policy_node_get0_qualifiers(const X509_POLICY_NODE *node); -const X509_POLICY_NODE - *X509_policy_node_get0_parent(const X509_POLICY_NODE *node); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/x509err.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/x509err.h deleted file mode 100644 index 77b91c8..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/x509err.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_X509ERR_H -# define OPENSSL_X509ERR_H -# pragma once - -# include -# include -# include - - - -/* - * X509 reason codes. - */ -# define X509_R_AKID_MISMATCH 110 -# define X509_R_BAD_SELECTOR 133 -# define X509_R_BAD_X509_FILETYPE 100 -# define X509_R_BASE64_DECODE_ERROR 118 -# define X509_R_CANT_CHECK_DH_KEY 114 -# define X509_R_CERTIFICATE_VERIFICATION_FAILED 139 -# define X509_R_CERT_ALREADY_IN_HASH_TABLE 101 -# define X509_R_CRL_ALREADY_DELTA 127 -# define X509_R_CRL_VERIFY_FAILURE 131 -# define X509_R_DUPLICATE_ATTRIBUTE 140 -# define X509_R_ERROR_GETTING_MD_BY_NID 141 -# define X509_R_ERROR_USING_SIGINF_SET 142 -# define X509_R_IDP_MISMATCH 128 -# define X509_R_INVALID_ATTRIBUTES 138 -# define X509_R_INVALID_DIRECTORY 113 -# define X509_R_INVALID_DISTPOINT 143 -# define X509_R_INVALID_FIELD_NAME 119 -# define X509_R_INVALID_TRUST 123 -# define X509_R_ISSUER_MISMATCH 129 -# define X509_R_KEY_TYPE_MISMATCH 115 -# define X509_R_KEY_VALUES_MISMATCH 116 -# define X509_R_LOADING_CERT_DIR 103 -# define X509_R_LOADING_DEFAULTS 104 -# define X509_R_METHOD_NOT_SUPPORTED 124 -# define X509_R_NAME_TOO_LONG 134 -# define X509_R_NEWER_CRL_NOT_NEWER 132 -# define X509_R_NO_CERTIFICATE_FOUND 135 -# define X509_R_NO_CERTIFICATE_OR_CRL_FOUND 136 -# define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 105 -# define X509_R_NO_CRL_FOUND 137 -# define X509_R_NO_CRL_NUMBER 130 -# define X509_R_PUBLIC_KEY_DECODE_ERROR 125 -# define X509_R_PUBLIC_KEY_ENCODE_ERROR 126 -# define X509_R_SHOULD_RETRY 106 -# define X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN 107 -# define X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY 108 -# define X509_R_UNKNOWN_KEY_TYPE 117 -# define X509_R_UNKNOWN_NID 109 -# define X509_R_UNKNOWN_PURPOSE_ID 121 -# define X509_R_UNKNOWN_SIGID_ALGS 144 -# define X509_R_UNKNOWN_TRUST_ID 120 -# define X509_R_UNSUPPORTED_ALGORITHM 111 -# define X509_R_UNSUPPORTED_VERSION 145 -# define X509_R_WRONG_LOOKUP_TYPE 112 -# define X509_R_WRONG_TYPE 122 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/x509v3.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/x509v3.h deleted file mode 100644 index be634cc..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/x509v3.h +++ /dev/null @@ -1,1968 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\x509v3.h.in - * - * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_X509V3_H -# define OPENSSL_X509V3_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_X509V3_H -# endif - -# include -# include -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward reference */ -struct v3_ext_method; -struct v3_ext_ctx; - -/* Useful typedefs */ - -typedef void *(*X509V3_EXT_NEW)(void); -typedef void (*X509V3_EXT_FREE) (void *); -typedef void *(*X509V3_EXT_D2I)(void *, const unsigned char **, long); -typedef int (*X509V3_EXT_I2D) (const void *, unsigned char **); -typedef STACK_OF(CONF_VALUE) * - (*X509V3_EXT_I2V) (const struct v3_ext_method *method, void *ext, - STACK_OF(CONF_VALUE) *extlist); -typedef void *(*X509V3_EXT_V2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, - STACK_OF(CONF_VALUE) *values); -typedef char *(*X509V3_EXT_I2S)(const struct v3_ext_method *method, - void *ext); -typedef void *(*X509V3_EXT_S2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, const char *str); -typedef int (*X509V3_EXT_I2R) (const struct v3_ext_method *method, void *ext, - BIO *out, int indent); -typedef void *(*X509V3_EXT_R2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, const char *str); - -/* V3 extension structure */ - -struct v3_ext_method { - int ext_nid; - int ext_flags; -/* If this is set the following four fields are ignored */ - ASN1_ITEM_EXP *it; -/* Old style ASN1 calls */ - X509V3_EXT_NEW ext_new; - X509V3_EXT_FREE ext_free; - X509V3_EXT_D2I d2i; - X509V3_EXT_I2D i2d; -/* The following pair is used for string extensions */ - X509V3_EXT_I2S i2s; - X509V3_EXT_S2I s2i; -/* The following pair is used for multi-valued extensions */ - X509V3_EXT_I2V i2v; - X509V3_EXT_V2I v2i; -/* The following are used for raw extensions */ - X509V3_EXT_I2R i2r; - X509V3_EXT_R2I r2i; - void *usr_data; /* Any extension specific data */ -}; - -typedef struct X509V3_CONF_METHOD_st { - char *(*get_string) (void *db, const char *section, const char *value); - STACK_OF(CONF_VALUE) *(*get_section) (void *db, const char *section); - void (*free_string) (void *db, char *string); - void (*free_section) (void *db, STACK_OF(CONF_VALUE) *section); -} X509V3_CONF_METHOD; - -/* Context specific info for producing X509 v3 extensions*/ -struct v3_ext_ctx { -# define X509V3_CTX_TEST 0x1 -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define CTX_TEST X509V3_CTX_TEST -# endif -# define X509V3_CTX_REPLACE 0x2 - int flags; - X509 *issuer_cert; - X509 *subject_cert; - X509_REQ *subject_req; - X509_CRL *crl; - X509V3_CONF_METHOD *db_meth; - void *db; - EVP_PKEY *issuer_pkey; -/* Maybe more here */ -}; - -typedef struct v3_ext_method X509V3_EXT_METHOD; - -SKM_DEFINE_STACK_OF_INTERNAL(X509V3_EXT_METHOD, X509V3_EXT_METHOD, X509V3_EXT_METHOD) -#define sk_X509V3_EXT_METHOD_num(sk) OPENSSL_sk_num(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk)) -#define sk_X509V3_EXT_METHOD_value(sk, idx) ((X509V3_EXT_METHOD *)OPENSSL_sk_value(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk), (idx))) -#define sk_X509V3_EXT_METHOD_new(cmp) ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_new(ossl_check_X509V3_EXT_METHOD_compfunc_type(cmp))) -#define sk_X509V3_EXT_METHOD_new_null() ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_new_null()) -#define sk_X509V3_EXT_METHOD_new_reserve(cmp, n) ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_new_reserve(ossl_check_X509V3_EXT_METHOD_compfunc_type(cmp), (n))) -#define sk_X509V3_EXT_METHOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509V3_EXT_METHOD_sk_type(sk), (n)) -#define sk_X509V3_EXT_METHOD_free(sk) OPENSSL_sk_free(ossl_check_X509V3_EXT_METHOD_sk_type(sk)) -#define sk_X509V3_EXT_METHOD_zero(sk) OPENSSL_sk_zero(ossl_check_X509V3_EXT_METHOD_sk_type(sk)) -#define sk_X509V3_EXT_METHOD_delete(sk, i) ((X509V3_EXT_METHOD *)OPENSSL_sk_delete(ossl_check_X509V3_EXT_METHOD_sk_type(sk), (i))) -#define sk_X509V3_EXT_METHOD_delete_ptr(sk, ptr) ((X509V3_EXT_METHOD *)OPENSSL_sk_delete_ptr(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr))) -#define sk_X509V3_EXT_METHOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr)) -#define sk_X509V3_EXT_METHOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr)) -#define sk_X509V3_EXT_METHOD_pop(sk) ((X509V3_EXT_METHOD *)OPENSSL_sk_pop(ossl_check_X509V3_EXT_METHOD_sk_type(sk))) -#define sk_X509V3_EXT_METHOD_shift(sk) ((X509V3_EXT_METHOD *)OPENSSL_sk_shift(ossl_check_X509V3_EXT_METHOD_sk_type(sk))) -#define sk_X509V3_EXT_METHOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_freefunc_type(freefunc)) -#define sk_X509V3_EXT_METHOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr), (idx)) -#define sk_X509V3_EXT_METHOD_set(sk, idx, ptr) ((X509V3_EXT_METHOD *)OPENSSL_sk_set(ossl_check_X509V3_EXT_METHOD_sk_type(sk), (idx), ossl_check_X509V3_EXT_METHOD_type(ptr))) -#define sk_X509V3_EXT_METHOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr)) -#define sk_X509V3_EXT_METHOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr)) -#define sk_X509V3_EXT_METHOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr), pnum) -#define sk_X509V3_EXT_METHOD_sort(sk) OPENSSL_sk_sort(ossl_check_X509V3_EXT_METHOD_sk_type(sk)) -#define sk_X509V3_EXT_METHOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk)) -#define sk_X509V3_EXT_METHOD_dup(sk) ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_dup(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk))) -#define sk_X509V3_EXT_METHOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_deep_copy(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_copyfunc_type(copyfunc), ossl_check_X509V3_EXT_METHOD_freefunc_type(freefunc))) -#define sk_X509V3_EXT_METHOD_set_cmp_func(sk, cmp) ((sk_X509V3_EXT_METHOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_compfunc_type(cmp))) - - -/* ext_flags values */ -# define X509V3_EXT_DYNAMIC 0x1 -# define X509V3_EXT_CTX_DEP 0x2 -# define X509V3_EXT_MULTILINE 0x4 - -typedef BIT_STRING_BITNAME ENUMERATED_NAMES; - -typedef struct BASIC_CONSTRAINTS_st { - int ca; - ASN1_INTEGER *pathlen; -} BASIC_CONSTRAINTS; - -typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { - int authority; - ASN1_INTEGER *pathlen; -} OSSL_BASIC_ATTR_CONSTRAINTS; - -typedef struct PKEY_USAGE_PERIOD_st { - ASN1_GENERALIZEDTIME *notBefore; - ASN1_GENERALIZEDTIME *notAfter; -} PKEY_USAGE_PERIOD; - -typedef struct otherName_st { - ASN1_OBJECT *type_id; - ASN1_TYPE *value; -} OTHERNAME; - -typedef struct EDIPartyName_st { - ASN1_STRING *nameAssigner; - ASN1_STRING *partyName; -} EDIPARTYNAME; - -typedef struct GENERAL_NAME_st { -# define GEN_OTHERNAME 0 -# define GEN_EMAIL 1 -# define GEN_DNS 2 -# define GEN_X400 3 -# define GEN_DIRNAME 4 -# define GEN_EDIPARTY 5 -# define GEN_URI 6 -# define GEN_IPADD 7 -# define GEN_RID 8 - int type; - union { - char *ptr; - OTHERNAME *otherName; /* otherName */ - ASN1_IA5STRING *rfc822Name; - ASN1_IA5STRING *dNSName; - ASN1_STRING *x400Address; - X509_NAME *directoryName; - EDIPARTYNAME *ediPartyName; - ASN1_IA5STRING *uniformResourceIdentifier; - ASN1_OCTET_STRING *iPAddress; - ASN1_OBJECT *registeredID; - /* Old names */ - ASN1_OCTET_STRING *ip; /* iPAddress */ - X509_NAME *dirn; /* dirn */ - ASN1_IA5STRING *ia5; /* rfc822Name, dNSName, - * uniformResourceIdentifier */ - ASN1_OBJECT *rid; /* registeredID */ - ASN1_TYPE *other; /* x400Address */ - } d; -} GENERAL_NAME; - -typedef struct ACCESS_DESCRIPTION_st { - ASN1_OBJECT *method; - GENERAL_NAME *location; -} ACCESS_DESCRIPTION; - -int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); - -SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) -#define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) -#define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) -#define sk_ACCESS_DESCRIPTION_new(cmp) ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_new(ossl_check_ACCESS_DESCRIPTION_compfunc_type(cmp))) -#define sk_ACCESS_DESCRIPTION_new_null() ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_new_null()) -#define sk_ACCESS_DESCRIPTION_new_reserve(cmp, n) ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_new_reserve(ossl_check_ACCESS_DESCRIPTION_compfunc_type(cmp), (n))) -#define sk_ACCESS_DESCRIPTION_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), (n)) -#define sk_ACCESS_DESCRIPTION_free(sk) OPENSSL_sk_free(ossl_check_ACCESS_DESCRIPTION_sk_type(sk)) -#define sk_ACCESS_DESCRIPTION_zero(sk) OPENSSL_sk_zero(ossl_check_ACCESS_DESCRIPTION_sk_type(sk)) -#define sk_ACCESS_DESCRIPTION_delete(sk, i) ((ACCESS_DESCRIPTION *)OPENSSL_sk_delete(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), (i))) -#define sk_ACCESS_DESCRIPTION_delete_ptr(sk, ptr) ((ACCESS_DESCRIPTION *)OPENSSL_sk_delete_ptr(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr))) -#define sk_ACCESS_DESCRIPTION_push(sk, ptr) OPENSSL_sk_push(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr)) -#define sk_ACCESS_DESCRIPTION_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr)) -#define sk_ACCESS_DESCRIPTION_pop(sk) ((ACCESS_DESCRIPTION *)OPENSSL_sk_pop(ossl_check_ACCESS_DESCRIPTION_sk_type(sk))) -#define sk_ACCESS_DESCRIPTION_shift(sk) ((ACCESS_DESCRIPTION *)OPENSSL_sk_shift(ossl_check_ACCESS_DESCRIPTION_sk_type(sk))) -#define sk_ACCESS_DESCRIPTION_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_freefunc_type(freefunc)) -#define sk_ACCESS_DESCRIPTION_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr), (idx)) -#define sk_ACCESS_DESCRIPTION_set(sk, idx, ptr) ((ACCESS_DESCRIPTION *)OPENSSL_sk_set(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), (idx), ossl_check_ACCESS_DESCRIPTION_type(ptr))) -#define sk_ACCESS_DESCRIPTION_find(sk, ptr) OPENSSL_sk_find(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr)) -#define sk_ACCESS_DESCRIPTION_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr)) -#define sk_ACCESS_DESCRIPTION_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr), pnum) -#define sk_ACCESS_DESCRIPTION_sort(sk) OPENSSL_sk_sort(ossl_check_ACCESS_DESCRIPTION_sk_type(sk)) -#define sk_ACCESS_DESCRIPTION_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) -#define sk_ACCESS_DESCRIPTION_dup(sk) ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_dup(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk))) -#define sk_ACCESS_DESCRIPTION_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_deep_copy(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_copyfunc_type(copyfunc), ossl_check_ACCESS_DESCRIPTION_freefunc_type(freefunc))) -#define sk_ACCESS_DESCRIPTION_set_cmp_func(sk, cmp) ((sk_ACCESS_DESCRIPTION_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(GENERAL_NAME, GENERAL_NAME, GENERAL_NAME) -#define sk_GENERAL_NAME_num(sk) OPENSSL_sk_num(ossl_check_const_GENERAL_NAME_sk_type(sk)) -#define sk_GENERAL_NAME_value(sk, idx) ((GENERAL_NAME *)OPENSSL_sk_value(ossl_check_const_GENERAL_NAME_sk_type(sk), (idx))) -#define sk_GENERAL_NAME_new(cmp) ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_new(ossl_check_GENERAL_NAME_compfunc_type(cmp))) -#define sk_GENERAL_NAME_new_null() ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_new_null()) -#define sk_GENERAL_NAME_new_reserve(cmp, n) ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_new_reserve(ossl_check_GENERAL_NAME_compfunc_type(cmp), (n))) -#define sk_GENERAL_NAME_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_GENERAL_NAME_sk_type(sk), (n)) -#define sk_GENERAL_NAME_free(sk) OPENSSL_sk_free(ossl_check_GENERAL_NAME_sk_type(sk)) -#define sk_GENERAL_NAME_zero(sk) OPENSSL_sk_zero(ossl_check_GENERAL_NAME_sk_type(sk)) -#define sk_GENERAL_NAME_delete(sk, i) ((GENERAL_NAME *)OPENSSL_sk_delete(ossl_check_GENERAL_NAME_sk_type(sk), (i))) -#define sk_GENERAL_NAME_delete_ptr(sk, ptr) ((GENERAL_NAME *)OPENSSL_sk_delete_ptr(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr))) -#define sk_GENERAL_NAME_push(sk, ptr) OPENSSL_sk_push(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr)) -#define sk_GENERAL_NAME_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr)) -#define sk_GENERAL_NAME_pop(sk) ((GENERAL_NAME *)OPENSSL_sk_pop(ossl_check_GENERAL_NAME_sk_type(sk))) -#define sk_GENERAL_NAME_shift(sk) ((GENERAL_NAME *)OPENSSL_sk_shift(ossl_check_GENERAL_NAME_sk_type(sk))) -#define sk_GENERAL_NAME_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_freefunc_type(freefunc)) -#define sk_GENERAL_NAME_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr), (idx)) -#define sk_GENERAL_NAME_set(sk, idx, ptr) ((GENERAL_NAME *)OPENSSL_sk_set(ossl_check_GENERAL_NAME_sk_type(sk), (idx), ossl_check_GENERAL_NAME_type(ptr))) -#define sk_GENERAL_NAME_find(sk, ptr) OPENSSL_sk_find(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr)) -#define sk_GENERAL_NAME_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr)) -#define sk_GENERAL_NAME_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr), pnum) -#define sk_GENERAL_NAME_sort(sk) OPENSSL_sk_sort(ossl_check_GENERAL_NAME_sk_type(sk)) -#define sk_GENERAL_NAME_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_GENERAL_NAME_sk_type(sk)) -#define sk_GENERAL_NAME_dup(sk) ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_dup(ossl_check_const_GENERAL_NAME_sk_type(sk))) -#define sk_GENERAL_NAME_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_deep_copy(ossl_check_const_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_copyfunc_type(copyfunc), ossl_check_GENERAL_NAME_freefunc_type(freefunc))) -#define sk_GENERAL_NAME_set_cmp_func(sk, cmp) ((sk_GENERAL_NAME_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_compfunc_type(cmp))) - - -typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS; -typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE; -typedef STACK_OF(ASN1_INTEGER) TLS_FEATURE; -typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES; - -SKM_DEFINE_STACK_OF_INTERNAL(GENERAL_NAMES, GENERAL_NAMES, GENERAL_NAMES) -#define sk_GENERAL_NAMES_num(sk) OPENSSL_sk_num(ossl_check_const_GENERAL_NAMES_sk_type(sk)) -#define sk_GENERAL_NAMES_value(sk, idx) ((GENERAL_NAMES *)OPENSSL_sk_value(ossl_check_const_GENERAL_NAMES_sk_type(sk), (idx))) -#define sk_GENERAL_NAMES_new(cmp) ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_new(ossl_check_GENERAL_NAMES_compfunc_type(cmp))) -#define sk_GENERAL_NAMES_new_null() ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_new_null()) -#define sk_GENERAL_NAMES_new_reserve(cmp, n) ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_new_reserve(ossl_check_GENERAL_NAMES_compfunc_type(cmp), (n))) -#define sk_GENERAL_NAMES_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_GENERAL_NAMES_sk_type(sk), (n)) -#define sk_GENERAL_NAMES_free(sk) OPENSSL_sk_free(ossl_check_GENERAL_NAMES_sk_type(sk)) -#define sk_GENERAL_NAMES_zero(sk) OPENSSL_sk_zero(ossl_check_GENERAL_NAMES_sk_type(sk)) -#define sk_GENERAL_NAMES_delete(sk, i) ((GENERAL_NAMES *)OPENSSL_sk_delete(ossl_check_GENERAL_NAMES_sk_type(sk), (i))) -#define sk_GENERAL_NAMES_delete_ptr(sk, ptr) ((GENERAL_NAMES *)OPENSSL_sk_delete_ptr(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr))) -#define sk_GENERAL_NAMES_push(sk, ptr) OPENSSL_sk_push(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr)) -#define sk_GENERAL_NAMES_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr)) -#define sk_GENERAL_NAMES_pop(sk) ((GENERAL_NAMES *)OPENSSL_sk_pop(ossl_check_GENERAL_NAMES_sk_type(sk))) -#define sk_GENERAL_NAMES_shift(sk) ((GENERAL_NAMES *)OPENSSL_sk_shift(ossl_check_GENERAL_NAMES_sk_type(sk))) -#define sk_GENERAL_NAMES_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_freefunc_type(freefunc)) -#define sk_GENERAL_NAMES_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr), (idx)) -#define sk_GENERAL_NAMES_set(sk, idx, ptr) ((GENERAL_NAMES *)OPENSSL_sk_set(ossl_check_GENERAL_NAMES_sk_type(sk), (idx), ossl_check_GENERAL_NAMES_type(ptr))) -#define sk_GENERAL_NAMES_find(sk, ptr) OPENSSL_sk_find(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr)) -#define sk_GENERAL_NAMES_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr)) -#define sk_GENERAL_NAMES_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr), pnum) -#define sk_GENERAL_NAMES_sort(sk) OPENSSL_sk_sort(ossl_check_GENERAL_NAMES_sk_type(sk)) -#define sk_GENERAL_NAMES_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_GENERAL_NAMES_sk_type(sk)) -#define sk_GENERAL_NAMES_dup(sk) ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_dup(ossl_check_const_GENERAL_NAMES_sk_type(sk))) -#define sk_GENERAL_NAMES_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_deep_copy(ossl_check_const_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_copyfunc_type(copyfunc), ossl_check_GENERAL_NAMES_freefunc_type(freefunc))) -#define sk_GENERAL_NAMES_set_cmp_func(sk, cmp) ((sk_GENERAL_NAMES_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_compfunc_type(cmp))) - - -typedef struct DIST_POINT_NAME_st { - int type; - union { - GENERAL_NAMES *fullname; - STACK_OF(X509_NAME_ENTRY) *relativename; - } name; -/* If relativename then this contains the full distribution point name */ - X509_NAME *dpname; -} DIST_POINT_NAME; -DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) -/* All existing reasons */ -# define CRLDP_ALL_REASONS 0x807f - -# define CRL_REASON_NONE -1 -# define CRL_REASON_UNSPECIFIED 0 -# define CRL_REASON_KEY_COMPROMISE 1 -# define CRL_REASON_CA_COMPROMISE 2 -# define CRL_REASON_AFFILIATION_CHANGED 3 -# define CRL_REASON_SUPERSEDED 4 -# define CRL_REASON_CESSATION_OF_OPERATION 5 -# define CRL_REASON_CERTIFICATE_HOLD 6 -# define CRL_REASON_REMOVE_FROM_CRL 8 -# define CRL_REASON_PRIVILEGE_WITHDRAWN 9 -# define CRL_REASON_AA_COMPROMISE 10 - -struct DIST_POINT_st { - DIST_POINT_NAME *distpoint; - ASN1_BIT_STRING *reasons; - GENERAL_NAMES *CRLissuer; - int dp_reasons; -}; - -SKM_DEFINE_STACK_OF_INTERNAL(DIST_POINT, DIST_POINT, DIST_POINT) -#define sk_DIST_POINT_num(sk) OPENSSL_sk_num(ossl_check_const_DIST_POINT_sk_type(sk)) -#define sk_DIST_POINT_value(sk, idx) ((DIST_POINT *)OPENSSL_sk_value(ossl_check_const_DIST_POINT_sk_type(sk), (idx))) -#define sk_DIST_POINT_new(cmp) ((STACK_OF(DIST_POINT) *)OPENSSL_sk_new(ossl_check_DIST_POINT_compfunc_type(cmp))) -#define sk_DIST_POINT_new_null() ((STACK_OF(DIST_POINT) *)OPENSSL_sk_new_null()) -#define sk_DIST_POINT_new_reserve(cmp, n) ((STACK_OF(DIST_POINT) *)OPENSSL_sk_new_reserve(ossl_check_DIST_POINT_compfunc_type(cmp), (n))) -#define sk_DIST_POINT_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_DIST_POINT_sk_type(sk), (n)) -#define sk_DIST_POINT_free(sk) OPENSSL_sk_free(ossl_check_DIST_POINT_sk_type(sk)) -#define sk_DIST_POINT_zero(sk) OPENSSL_sk_zero(ossl_check_DIST_POINT_sk_type(sk)) -#define sk_DIST_POINT_delete(sk, i) ((DIST_POINT *)OPENSSL_sk_delete(ossl_check_DIST_POINT_sk_type(sk), (i))) -#define sk_DIST_POINT_delete_ptr(sk, ptr) ((DIST_POINT *)OPENSSL_sk_delete_ptr(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr))) -#define sk_DIST_POINT_push(sk, ptr) OPENSSL_sk_push(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr)) -#define sk_DIST_POINT_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr)) -#define sk_DIST_POINT_pop(sk) ((DIST_POINT *)OPENSSL_sk_pop(ossl_check_DIST_POINT_sk_type(sk))) -#define sk_DIST_POINT_shift(sk) ((DIST_POINT *)OPENSSL_sk_shift(ossl_check_DIST_POINT_sk_type(sk))) -#define sk_DIST_POINT_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_freefunc_type(freefunc)) -#define sk_DIST_POINT_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr), (idx)) -#define sk_DIST_POINT_set(sk, idx, ptr) ((DIST_POINT *)OPENSSL_sk_set(ossl_check_DIST_POINT_sk_type(sk), (idx), ossl_check_DIST_POINT_type(ptr))) -#define sk_DIST_POINT_find(sk, ptr) OPENSSL_sk_find(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr)) -#define sk_DIST_POINT_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr)) -#define sk_DIST_POINT_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr), pnum) -#define sk_DIST_POINT_sort(sk) OPENSSL_sk_sort(ossl_check_DIST_POINT_sk_type(sk)) -#define sk_DIST_POINT_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_DIST_POINT_sk_type(sk)) -#define sk_DIST_POINT_dup(sk) ((STACK_OF(DIST_POINT) *)OPENSSL_sk_dup(ossl_check_const_DIST_POINT_sk_type(sk))) -#define sk_DIST_POINT_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(DIST_POINT) *)OPENSSL_sk_deep_copy(ossl_check_const_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_copyfunc_type(copyfunc), ossl_check_DIST_POINT_freefunc_type(freefunc))) -#define sk_DIST_POINT_set_cmp_func(sk, cmp) ((sk_DIST_POINT_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_compfunc_type(cmp))) - - -typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS; - -struct AUTHORITY_KEYID_st { - ASN1_OCTET_STRING *keyid; - GENERAL_NAMES *issuer; - ASN1_INTEGER *serial; -}; - -/* Strong extranet structures */ - -typedef struct SXNET_ID_st { - ASN1_INTEGER *zone; - ASN1_OCTET_STRING *user; -} SXNETID; - -SKM_DEFINE_STACK_OF_INTERNAL(SXNETID, SXNETID, SXNETID) -#define sk_SXNETID_num(sk) OPENSSL_sk_num(ossl_check_const_SXNETID_sk_type(sk)) -#define sk_SXNETID_value(sk, idx) ((SXNETID *)OPENSSL_sk_value(ossl_check_const_SXNETID_sk_type(sk), (idx))) -#define sk_SXNETID_new(cmp) ((STACK_OF(SXNETID) *)OPENSSL_sk_new(ossl_check_SXNETID_compfunc_type(cmp))) -#define sk_SXNETID_new_null() ((STACK_OF(SXNETID) *)OPENSSL_sk_new_null()) -#define sk_SXNETID_new_reserve(cmp, n) ((STACK_OF(SXNETID) *)OPENSSL_sk_new_reserve(ossl_check_SXNETID_compfunc_type(cmp), (n))) -#define sk_SXNETID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SXNETID_sk_type(sk), (n)) -#define sk_SXNETID_free(sk) OPENSSL_sk_free(ossl_check_SXNETID_sk_type(sk)) -#define sk_SXNETID_zero(sk) OPENSSL_sk_zero(ossl_check_SXNETID_sk_type(sk)) -#define sk_SXNETID_delete(sk, i) ((SXNETID *)OPENSSL_sk_delete(ossl_check_SXNETID_sk_type(sk), (i))) -#define sk_SXNETID_delete_ptr(sk, ptr) ((SXNETID *)OPENSSL_sk_delete_ptr(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr))) -#define sk_SXNETID_push(sk, ptr) OPENSSL_sk_push(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr)) -#define sk_SXNETID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr)) -#define sk_SXNETID_pop(sk) ((SXNETID *)OPENSSL_sk_pop(ossl_check_SXNETID_sk_type(sk))) -#define sk_SXNETID_shift(sk) ((SXNETID *)OPENSSL_sk_shift(ossl_check_SXNETID_sk_type(sk))) -#define sk_SXNETID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_freefunc_type(freefunc)) -#define sk_SXNETID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr), (idx)) -#define sk_SXNETID_set(sk, idx, ptr) ((SXNETID *)OPENSSL_sk_set(ossl_check_SXNETID_sk_type(sk), (idx), ossl_check_SXNETID_type(ptr))) -#define sk_SXNETID_find(sk, ptr) OPENSSL_sk_find(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr)) -#define sk_SXNETID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr)) -#define sk_SXNETID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr), pnum) -#define sk_SXNETID_sort(sk) OPENSSL_sk_sort(ossl_check_SXNETID_sk_type(sk)) -#define sk_SXNETID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SXNETID_sk_type(sk)) -#define sk_SXNETID_dup(sk) ((STACK_OF(SXNETID) *)OPENSSL_sk_dup(ossl_check_const_SXNETID_sk_type(sk))) -#define sk_SXNETID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SXNETID) *)OPENSSL_sk_deep_copy(ossl_check_const_SXNETID_sk_type(sk), ossl_check_SXNETID_copyfunc_type(copyfunc), ossl_check_SXNETID_freefunc_type(freefunc))) -#define sk_SXNETID_set_cmp_func(sk, cmp) ((sk_SXNETID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_compfunc_type(cmp))) - - - -typedef struct SXNET_st { - ASN1_INTEGER *version; - STACK_OF(SXNETID) *ids; -} SXNET; - -typedef struct ISSUER_SIGN_TOOL_st { - ASN1_UTF8STRING *signTool; - ASN1_UTF8STRING *cATool; - ASN1_UTF8STRING *signToolCert; - ASN1_UTF8STRING *cAToolCert; -} ISSUER_SIGN_TOOL; - -typedef struct NOTICEREF_st { - ASN1_STRING *organization; - STACK_OF(ASN1_INTEGER) *noticenos; -} NOTICEREF; - -typedef struct USERNOTICE_st { - NOTICEREF *noticeref; - ASN1_STRING *exptext; -} USERNOTICE; - -typedef struct POLICYQUALINFO_st { - ASN1_OBJECT *pqualid; - union { - ASN1_IA5STRING *cpsuri; - USERNOTICE *usernotice; - ASN1_TYPE *other; - } d; -} POLICYQUALINFO; - -SKM_DEFINE_STACK_OF_INTERNAL(POLICYQUALINFO, POLICYQUALINFO, POLICYQUALINFO) -#define sk_POLICYQUALINFO_num(sk) OPENSSL_sk_num(ossl_check_const_POLICYQUALINFO_sk_type(sk)) -#define sk_POLICYQUALINFO_value(sk, idx) ((POLICYQUALINFO *)OPENSSL_sk_value(ossl_check_const_POLICYQUALINFO_sk_type(sk), (idx))) -#define sk_POLICYQUALINFO_new(cmp) ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_new(ossl_check_POLICYQUALINFO_compfunc_type(cmp))) -#define sk_POLICYQUALINFO_new_null() ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_new_null()) -#define sk_POLICYQUALINFO_new_reserve(cmp, n) ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_new_reserve(ossl_check_POLICYQUALINFO_compfunc_type(cmp), (n))) -#define sk_POLICYQUALINFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_POLICYQUALINFO_sk_type(sk), (n)) -#define sk_POLICYQUALINFO_free(sk) OPENSSL_sk_free(ossl_check_POLICYQUALINFO_sk_type(sk)) -#define sk_POLICYQUALINFO_zero(sk) OPENSSL_sk_zero(ossl_check_POLICYQUALINFO_sk_type(sk)) -#define sk_POLICYQUALINFO_delete(sk, i) ((POLICYQUALINFO *)OPENSSL_sk_delete(ossl_check_POLICYQUALINFO_sk_type(sk), (i))) -#define sk_POLICYQUALINFO_delete_ptr(sk, ptr) ((POLICYQUALINFO *)OPENSSL_sk_delete_ptr(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr))) -#define sk_POLICYQUALINFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr)) -#define sk_POLICYQUALINFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr)) -#define sk_POLICYQUALINFO_pop(sk) ((POLICYQUALINFO *)OPENSSL_sk_pop(ossl_check_POLICYQUALINFO_sk_type(sk))) -#define sk_POLICYQUALINFO_shift(sk) ((POLICYQUALINFO *)OPENSSL_sk_shift(ossl_check_POLICYQUALINFO_sk_type(sk))) -#define sk_POLICYQUALINFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_freefunc_type(freefunc)) -#define sk_POLICYQUALINFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr), (idx)) -#define sk_POLICYQUALINFO_set(sk, idx, ptr) ((POLICYQUALINFO *)OPENSSL_sk_set(ossl_check_POLICYQUALINFO_sk_type(sk), (idx), ossl_check_POLICYQUALINFO_type(ptr))) -#define sk_POLICYQUALINFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr)) -#define sk_POLICYQUALINFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr)) -#define sk_POLICYQUALINFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr), pnum) -#define sk_POLICYQUALINFO_sort(sk) OPENSSL_sk_sort(ossl_check_POLICYQUALINFO_sk_type(sk)) -#define sk_POLICYQUALINFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_POLICYQUALINFO_sk_type(sk)) -#define sk_POLICYQUALINFO_dup(sk) ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_dup(ossl_check_const_POLICYQUALINFO_sk_type(sk))) -#define sk_POLICYQUALINFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_deep_copy(ossl_check_const_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_copyfunc_type(copyfunc), ossl_check_POLICYQUALINFO_freefunc_type(freefunc))) -#define sk_POLICYQUALINFO_set_cmp_func(sk, cmp) ((sk_POLICYQUALINFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_compfunc_type(cmp))) - - - -typedef struct POLICYINFO_st { - ASN1_OBJECT *policyid; - STACK_OF(POLICYQUALINFO) *qualifiers; -} POLICYINFO; - -SKM_DEFINE_STACK_OF_INTERNAL(POLICYINFO, POLICYINFO, POLICYINFO) -#define sk_POLICYINFO_num(sk) OPENSSL_sk_num(ossl_check_const_POLICYINFO_sk_type(sk)) -#define sk_POLICYINFO_value(sk, idx) ((POLICYINFO *)OPENSSL_sk_value(ossl_check_const_POLICYINFO_sk_type(sk), (idx))) -#define sk_POLICYINFO_new(cmp) ((STACK_OF(POLICYINFO) *)OPENSSL_sk_new(ossl_check_POLICYINFO_compfunc_type(cmp))) -#define sk_POLICYINFO_new_null() ((STACK_OF(POLICYINFO) *)OPENSSL_sk_new_null()) -#define sk_POLICYINFO_new_reserve(cmp, n) ((STACK_OF(POLICYINFO) *)OPENSSL_sk_new_reserve(ossl_check_POLICYINFO_compfunc_type(cmp), (n))) -#define sk_POLICYINFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_POLICYINFO_sk_type(sk), (n)) -#define sk_POLICYINFO_free(sk) OPENSSL_sk_free(ossl_check_POLICYINFO_sk_type(sk)) -#define sk_POLICYINFO_zero(sk) OPENSSL_sk_zero(ossl_check_POLICYINFO_sk_type(sk)) -#define sk_POLICYINFO_delete(sk, i) ((POLICYINFO *)OPENSSL_sk_delete(ossl_check_POLICYINFO_sk_type(sk), (i))) -#define sk_POLICYINFO_delete_ptr(sk, ptr) ((POLICYINFO *)OPENSSL_sk_delete_ptr(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr))) -#define sk_POLICYINFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr)) -#define sk_POLICYINFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr)) -#define sk_POLICYINFO_pop(sk) ((POLICYINFO *)OPENSSL_sk_pop(ossl_check_POLICYINFO_sk_type(sk))) -#define sk_POLICYINFO_shift(sk) ((POLICYINFO *)OPENSSL_sk_shift(ossl_check_POLICYINFO_sk_type(sk))) -#define sk_POLICYINFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_freefunc_type(freefunc)) -#define sk_POLICYINFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr), (idx)) -#define sk_POLICYINFO_set(sk, idx, ptr) ((POLICYINFO *)OPENSSL_sk_set(ossl_check_POLICYINFO_sk_type(sk), (idx), ossl_check_POLICYINFO_type(ptr))) -#define sk_POLICYINFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr)) -#define sk_POLICYINFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr)) -#define sk_POLICYINFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr), pnum) -#define sk_POLICYINFO_sort(sk) OPENSSL_sk_sort(ossl_check_POLICYINFO_sk_type(sk)) -#define sk_POLICYINFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_POLICYINFO_sk_type(sk)) -#define sk_POLICYINFO_dup(sk) ((STACK_OF(POLICYINFO) *)OPENSSL_sk_dup(ossl_check_const_POLICYINFO_sk_type(sk))) -#define sk_POLICYINFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(POLICYINFO) *)OPENSSL_sk_deep_copy(ossl_check_const_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_copyfunc_type(copyfunc), ossl_check_POLICYINFO_freefunc_type(freefunc))) -#define sk_POLICYINFO_set_cmp_func(sk, cmp) ((sk_POLICYINFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_compfunc_type(cmp))) - - -typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES; - -typedef struct POLICY_MAPPING_st { - ASN1_OBJECT *issuerDomainPolicy; - ASN1_OBJECT *subjectDomainPolicy; -} POLICY_MAPPING; - -SKM_DEFINE_STACK_OF_INTERNAL(POLICY_MAPPING, POLICY_MAPPING, POLICY_MAPPING) -#define sk_POLICY_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_POLICY_MAPPING_sk_type(sk)) -#define sk_POLICY_MAPPING_value(sk, idx) ((POLICY_MAPPING *)OPENSSL_sk_value(ossl_check_const_POLICY_MAPPING_sk_type(sk), (idx))) -#define sk_POLICY_MAPPING_new(cmp) ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_new(ossl_check_POLICY_MAPPING_compfunc_type(cmp))) -#define sk_POLICY_MAPPING_new_null() ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_new_null()) -#define sk_POLICY_MAPPING_new_reserve(cmp, n) ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_POLICY_MAPPING_compfunc_type(cmp), (n))) -#define sk_POLICY_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_POLICY_MAPPING_sk_type(sk), (n)) -#define sk_POLICY_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_POLICY_MAPPING_sk_type(sk)) -#define sk_POLICY_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_POLICY_MAPPING_sk_type(sk)) -#define sk_POLICY_MAPPING_delete(sk, i) ((POLICY_MAPPING *)OPENSSL_sk_delete(ossl_check_POLICY_MAPPING_sk_type(sk), (i))) -#define sk_POLICY_MAPPING_delete_ptr(sk, ptr) ((POLICY_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr))) -#define sk_POLICY_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr)) -#define sk_POLICY_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr)) -#define sk_POLICY_MAPPING_pop(sk) ((POLICY_MAPPING *)OPENSSL_sk_pop(ossl_check_POLICY_MAPPING_sk_type(sk))) -#define sk_POLICY_MAPPING_shift(sk) ((POLICY_MAPPING *)OPENSSL_sk_shift(ossl_check_POLICY_MAPPING_sk_type(sk))) -#define sk_POLICY_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_freefunc_type(freefunc)) -#define sk_POLICY_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr), (idx)) -#define sk_POLICY_MAPPING_set(sk, idx, ptr) ((POLICY_MAPPING *)OPENSSL_sk_set(ossl_check_POLICY_MAPPING_sk_type(sk), (idx), ossl_check_POLICY_MAPPING_type(ptr))) -#define sk_POLICY_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr)) -#define sk_POLICY_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr)) -#define sk_POLICY_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr), pnum) -#define sk_POLICY_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_POLICY_MAPPING_sk_type(sk)) -#define sk_POLICY_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_POLICY_MAPPING_sk_type(sk)) -#define sk_POLICY_MAPPING_dup(sk) ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_POLICY_MAPPING_sk_type(sk))) -#define sk_POLICY_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_copyfunc_type(copyfunc), ossl_check_POLICY_MAPPING_freefunc_type(freefunc))) -#define sk_POLICY_MAPPING_set_cmp_func(sk, cmp) ((sk_POLICY_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_compfunc_type(cmp))) - - -typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS; - -typedef struct GENERAL_SUBTREE_st { - GENERAL_NAME *base; - ASN1_INTEGER *minimum; - ASN1_INTEGER *maximum; -} GENERAL_SUBTREE; - -SKM_DEFINE_STACK_OF_INTERNAL(GENERAL_SUBTREE, GENERAL_SUBTREE, GENERAL_SUBTREE) -#define sk_GENERAL_SUBTREE_num(sk) OPENSSL_sk_num(ossl_check_const_GENERAL_SUBTREE_sk_type(sk)) -#define sk_GENERAL_SUBTREE_value(sk, idx) ((GENERAL_SUBTREE *)OPENSSL_sk_value(ossl_check_const_GENERAL_SUBTREE_sk_type(sk), (idx))) -#define sk_GENERAL_SUBTREE_new(cmp) ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_new(ossl_check_GENERAL_SUBTREE_compfunc_type(cmp))) -#define sk_GENERAL_SUBTREE_new_null() ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_new_null()) -#define sk_GENERAL_SUBTREE_new_reserve(cmp, n) ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_new_reserve(ossl_check_GENERAL_SUBTREE_compfunc_type(cmp), (n))) -#define sk_GENERAL_SUBTREE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_GENERAL_SUBTREE_sk_type(sk), (n)) -#define sk_GENERAL_SUBTREE_free(sk) OPENSSL_sk_free(ossl_check_GENERAL_SUBTREE_sk_type(sk)) -#define sk_GENERAL_SUBTREE_zero(sk) OPENSSL_sk_zero(ossl_check_GENERAL_SUBTREE_sk_type(sk)) -#define sk_GENERAL_SUBTREE_delete(sk, i) ((GENERAL_SUBTREE *)OPENSSL_sk_delete(ossl_check_GENERAL_SUBTREE_sk_type(sk), (i))) -#define sk_GENERAL_SUBTREE_delete_ptr(sk, ptr) ((GENERAL_SUBTREE *)OPENSSL_sk_delete_ptr(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr))) -#define sk_GENERAL_SUBTREE_push(sk, ptr) OPENSSL_sk_push(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr)) -#define sk_GENERAL_SUBTREE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr)) -#define sk_GENERAL_SUBTREE_pop(sk) ((GENERAL_SUBTREE *)OPENSSL_sk_pop(ossl_check_GENERAL_SUBTREE_sk_type(sk))) -#define sk_GENERAL_SUBTREE_shift(sk) ((GENERAL_SUBTREE *)OPENSSL_sk_shift(ossl_check_GENERAL_SUBTREE_sk_type(sk))) -#define sk_GENERAL_SUBTREE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_freefunc_type(freefunc)) -#define sk_GENERAL_SUBTREE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr), (idx)) -#define sk_GENERAL_SUBTREE_set(sk, idx, ptr) ((GENERAL_SUBTREE *)OPENSSL_sk_set(ossl_check_GENERAL_SUBTREE_sk_type(sk), (idx), ossl_check_GENERAL_SUBTREE_type(ptr))) -#define sk_GENERAL_SUBTREE_find(sk, ptr) OPENSSL_sk_find(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr)) -#define sk_GENERAL_SUBTREE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr)) -#define sk_GENERAL_SUBTREE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr), pnum) -#define sk_GENERAL_SUBTREE_sort(sk) OPENSSL_sk_sort(ossl_check_GENERAL_SUBTREE_sk_type(sk)) -#define sk_GENERAL_SUBTREE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_GENERAL_SUBTREE_sk_type(sk)) -#define sk_GENERAL_SUBTREE_dup(sk) ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_dup(ossl_check_const_GENERAL_SUBTREE_sk_type(sk))) -#define sk_GENERAL_SUBTREE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_deep_copy(ossl_check_const_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_copyfunc_type(copyfunc), ossl_check_GENERAL_SUBTREE_freefunc_type(freefunc))) -#define sk_GENERAL_SUBTREE_set_cmp_func(sk, cmp) ((sk_GENERAL_SUBTREE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_compfunc_type(cmp))) - - -struct NAME_CONSTRAINTS_st { - STACK_OF(GENERAL_SUBTREE) *permittedSubtrees; - STACK_OF(GENERAL_SUBTREE) *excludedSubtrees; -}; - -typedef struct POLICY_CONSTRAINTS_st { - ASN1_INTEGER *requireExplicitPolicy; - ASN1_INTEGER *inhibitPolicyMapping; -} POLICY_CONSTRAINTS; - -/* Proxy certificate structures, see RFC 3820 */ -typedef struct PROXY_POLICY_st { - ASN1_OBJECT *policyLanguage; - ASN1_OCTET_STRING *policy; -} PROXY_POLICY; - -typedef struct PROXY_CERT_INFO_EXTENSION_st { - ASN1_INTEGER *pcPathLengthConstraint; - PROXY_POLICY *proxyPolicy; -} PROXY_CERT_INFO_EXTENSION; - -DECLARE_ASN1_FUNCTIONS(PROXY_POLICY) -DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION) - -struct ISSUING_DIST_POINT_st { - DIST_POINT_NAME *distpoint; - int onlyuser; - int onlyCA; - ASN1_BIT_STRING *onlysomereasons; - int indirectCRL; - int onlyattr; -}; - -/* Values in idp_flags field */ -/* IDP present */ -# define IDP_PRESENT 0x1 -/* IDP values inconsistent */ -# define IDP_INVALID 0x2 -/* onlyuser true */ -# define IDP_ONLYUSER 0x4 -/* onlyCA true */ -# define IDP_ONLYCA 0x8 -/* onlyattr true */ -# define IDP_ONLYATTR 0x10 -/* indirectCRL true */ -# define IDP_INDIRECT 0x20 -/* onlysomereasons present */ -# define IDP_REASONS 0x40 - -# define X509V3_conf_err(val) ERR_add_error_data(6, \ - "section:", (val)->section, \ - ",name:", (val)->name, ",value:", (val)->value) - -# define X509V3_set_ctx_test(ctx) \ - X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, X509V3_CTX_TEST) -# define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL; - -# define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \ - 0,0,0,0, \ - 0,0, \ - (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \ - (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \ - NULL, NULL, \ - table} - -# define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \ - 0,0,0,0, \ - (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \ - (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \ - 0,0,0,0, \ - NULL} - -#define EXT_UTF8STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_UTF8STRING), \ - 0,0,0,0, \ - (X509V3_EXT_I2S)i2s_ASN1_UTF8STRING, \ - (X509V3_EXT_S2I)s2i_ASN1_UTF8STRING, \ - 0,0,0,0, \ - NULL} - -# define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} - -/* X509_PURPOSE stuff */ - -# define EXFLAG_BCONS 0x1 -# define EXFLAG_KUSAGE 0x2 -# define EXFLAG_XKUSAGE 0x4 -# define EXFLAG_NSCERT 0x8 - -# define EXFLAG_CA 0x10 -# define EXFLAG_SI 0x20 /* self-issued, maybe not self-signed */ -# define EXFLAG_V1 0x40 -# define EXFLAG_INVALID 0x80 -/* EXFLAG_SET is set to indicate that some values have been precomputed */ -# define EXFLAG_SET 0x100 -# define EXFLAG_CRITICAL 0x200 -# define EXFLAG_PROXY 0x400 - -# define EXFLAG_INVALID_POLICY 0x800 -# define EXFLAG_FRESHEST 0x1000 -# define EXFLAG_SS 0x2000 /* cert is apparently self-signed */ - -# define EXFLAG_BCONS_CRITICAL 0x10000 -# define EXFLAG_AKID_CRITICAL 0x20000 -# define EXFLAG_SKID_CRITICAL 0x40000 -# define EXFLAG_SAN_CRITICAL 0x80000 -# define EXFLAG_NO_FINGERPRINT 0x100000 - -/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ -# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE -# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION -# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT -# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT -# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT -# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN -# define KU_CRL_SIGN X509v3_KU_CRL_SIGN -# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY -# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY - -# define NS_SSL_CLIENT 0x80 -# define NS_SSL_SERVER 0x40 -# define NS_SMIME 0x20 -# define NS_OBJSIGN 0x10 -# define NS_SSL_CA 0x04 -# define NS_SMIME_CA 0x02 -# define NS_OBJSIGN_CA 0x01 -# define NS_ANY_CA (NS_SSL_CA|NS_SMIME_CA|NS_OBJSIGN_CA) - -# define XKU_SSL_SERVER 0x1 -# define XKU_SSL_CLIENT 0x2 -# define XKU_SMIME 0x4 -# define XKU_CODE_SIGN 0x8 -# define XKU_SGC 0x10 /* Netscape or MS Server-Gated Crypto */ -# define XKU_OCSP_SIGN 0x20 -# define XKU_TIMESTAMP 0x40 -# define XKU_DVCS 0x80 -# define XKU_ANYEKU 0x100 - -# define X509_PURPOSE_DYNAMIC 0x1 -# define X509_PURPOSE_DYNAMIC_NAME 0x2 - -typedef struct x509_purpose_st { - int purpose; - int trust; /* Default trust ID */ - int flags; - int (*check_purpose) (const struct x509_purpose_st *, const X509 *, int); - char *name; - char *sname; - void *usr_data; -} X509_PURPOSE; - -SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) -#define sk_X509_PURPOSE_num(sk) OPENSSL_sk_num(ossl_check_const_X509_PURPOSE_sk_type(sk)) -#define sk_X509_PURPOSE_value(sk, idx) ((X509_PURPOSE *)OPENSSL_sk_value(ossl_check_const_X509_PURPOSE_sk_type(sk), (idx))) -#define sk_X509_PURPOSE_new(cmp) ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_new(ossl_check_X509_PURPOSE_compfunc_type(cmp))) -#define sk_X509_PURPOSE_new_null() ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_new_null()) -#define sk_X509_PURPOSE_new_reserve(cmp, n) ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_new_reserve(ossl_check_X509_PURPOSE_compfunc_type(cmp), (n))) -#define sk_X509_PURPOSE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_PURPOSE_sk_type(sk), (n)) -#define sk_X509_PURPOSE_free(sk) OPENSSL_sk_free(ossl_check_X509_PURPOSE_sk_type(sk)) -#define sk_X509_PURPOSE_zero(sk) OPENSSL_sk_zero(ossl_check_X509_PURPOSE_sk_type(sk)) -#define sk_X509_PURPOSE_delete(sk, i) ((X509_PURPOSE *)OPENSSL_sk_delete(ossl_check_X509_PURPOSE_sk_type(sk), (i))) -#define sk_X509_PURPOSE_delete_ptr(sk, ptr) ((X509_PURPOSE *)OPENSSL_sk_delete_ptr(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr))) -#define sk_X509_PURPOSE_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr)) -#define sk_X509_PURPOSE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr)) -#define sk_X509_PURPOSE_pop(sk) ((X509_PURPOSE *)OPENSSL_sk_pop(ossl_check_X509_PURPOSE_sk_type(sk))) -#define sk_X509_PURPOSE_shift(sk) ((X509_PURPOSE *)OPENSSL_sk_shift(ossl_check_X509_PURPOSE_sk_type(sk))) -#define sk_X509_PURPOSE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_freefunc_type(freefunc)) -#define sk_X509_PURPOSE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr), (idx)) -#define sk_X509_PURPOSE_set(sk, idx, ptr) ((X509_PURPOSE *)OPENSSL_sk_set(ossl_check_X509_PURPOSE_sk_type(sk), (idx), ossl_check_X509_PURPOSE_type(ptr))) -#define sk_X509_PURPOSE_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr)) -#define sk_X509_PURPOSE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr)) -#define sk_X509_PURPOSE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr), pnum) -#define sk_X509_PURPOSE_sort(sk) OPENSSL_sk_sort(ossl_check_X509_PURPOSE_sk_type(sk)) -#define sk_X509_PURPOSE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_PURPOSE_sk_type(sk)) -#define sk_X509_PURPOSE_dup(sk) ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_dup(ossl_check_const_X509_PURPOSE_sk_type(sk))) -#define sk_X509_PURPOSE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_copyfunc_type(copyfunc), ossl_check_X509_PURPOSE_freefunc_type(freefunc))) -#define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - - -# define X509_PURPOSE_DEFAULT_ANY 0 -# define X509_PURPOSE_SSL_CLIENT 1 -# define X509_PURPOSE_SSL_SERVER 2 -# define X509_PURPOSE_NS_SSL_SERVER 3 -# define X509_PURPOSE_SMIME_SIGN 4 -# define X509_PURPOSE_SMIME_ENCRYPT 5 -# define X509_PURPOSE_CRL_SIGN 6 -# define X509_PURPOSE_ANY 7 -# define X509_PURPOSE_OCSP_HELPER 8 -# define X509_PURPOSE_TIMESTAMP_SIGN 9 -# define X509_PURPOSE_CODE_SIGN 10 - -# define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 10 - -/* Flags for X509V3_EXT_print() */ - -# define X509V3_EXT_UNKNOWN_MASK (0xfL << 16) -/* Return error for unknown extensions */ -# define X509V3_EXT_DEFAULT 0 -/* Print error for unknown extensions */ -# define X509V3_EXT_ERROR_UNKNOWN (1L << 16) -/* ASN1 parse unknown extensions */ -# define X509V3_EXT_PARSE_UNKNOWN (2L << 16) -/* BIO_dump unknown extensions */ -# define X509V3_EXT_DUMP_UNKNOWN (3L << 16) - -/* Flags for X509V3_add1_i2d */ - -# define X509V3_ADD_OP_MASK 0xfL -# define X509V3_ADD_DEFAULT 0L -# define X509V3_ADD_APPEND 1L -# define X509V3_ADD_REPLACE 2L -# define X509V3_ADD_REPLACE_EXISTING 3L -# define X509V3_ADD_KEEP_EXISTING 4L -# define X509V3_ADD_DELETE 5L -# define X509V3_ADD_SILENT 0x10 - -DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) -DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) - -DECLARE_ASN1_FUNCTIONS(SXNET) -DECLARE_ASN1_FUNCTIONS(SXNETID) - -DECLARE_ASN1_FUNCTIONS(ISSUER_SIGN_TOOL) - -int SXNET_add_id_asc(SXNET **psx, const char *zone, const char *user, int userlen); -int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, const char *user, - int userlen); -int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, const char *user, - int userlen); - -ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, const char *zone); -ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone); -ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone); - -DECLARE_ASN1_FUNCTIONS(AUTHORITY_KEYID) - -DECLARE_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD) - -DECLARE_ASN1_FUNCTIONS(GENERAL_NAME) -DECLARE_ASN1_DUP_FUNCTION(GENERAL_NAME) -int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b); - -ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, - STACK_OF(CONF_VALUE) *nval); -STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, - ASN1_BIT_STRING *bits, - STACK_OF(CONF_VALUE) *extlist); -char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method, ASN1_IA5STRING *ia5); -ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, const char *str); -char *i2s_ASN1_UTF8STRING(X509V3_EXT_METHOD *method, ASN1_UTF8STRING *utf8); -ASN1_UTF8STRING *s2i_ASN1_UTF8STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, const char *str); - -STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, - GENERAL_NAME *gen, - STACK_OF(CONF_VALUE) *ret); -int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen); - -DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES) - -STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, - GENERAL_NAMES *gen, - STACK_OF(CONF_VALUE) *extlist); -GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); - -DECLARE_ASN1_FUNCTIONS(OTHERNAME) -DECLARE_ASN1_FUNCTIONS(EDIPARTYNAME) -int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b); -void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value); -void *GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype); -int GENERAL_NAME_set0_othername(GENERAL_NAME *gen, - ASN1_OBJECT *oid, ASN1_TYPE *value); -int GENERAL_NAME_get0_otherName(const GENERAL_NAME *gen, - ASN1_OBJECT **poid, ASN1_TYPE **pvalue); - -char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, - const ASN1_OCTET_STRING *ia5); -ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, const char *str); - -DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE) -int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION *a); - -DECLARE_ASN1_ALLOC_FUNCTIONS(TLS_FEATURE) - -DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) -DECLARE_ASN1_FUNCTIONS(POLICYINFO) -DECLARE_ASN1_FUNCTIONS(POLICYQUALINFO) -DECLARE_ASN1_FUNCTIONS(USERNOTICE) -DECLARE_ASN1_FUNCTIONS(NOTICEREF) - -DECLARE_ASN1_FUNCTIONS(CRL_DIST_POINTS) -DECLARE_ASN1_FUNCTIONS(DIST_POINT) -DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME) -DECLARE_ASN1_FUNCTIONS(ISSUING_DIST_POINT) - -int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, const X509_NAME *iname); - -int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc); -int NAME_CONSTRAINTS_check_CN(X509 *x, NAME_CONSTRAINTS *nc); - -DECLARE_ASN1_FUNCTIONS(ACCESS_DESCRIPTION) -DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) - -DECLARE_ASN1_ITEM(POLICY_MAPPING) -DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING) -DECLARE_ASN1_ITEM(POLICY_MAPPINGS) - -DECLARE_ASN1_ITEM(GENERAL_SUBTREE) -DECLARE_ASN1_ALLOC_FUNCTIONS(GENERAL_SUBTREE) - -DECLARE_ASN1_ITEM(NAME_CONSTRAINTS) -DECLARE_ASN1_ALLOC_FUNCTIONS(NAME_CONSTRAINTS) - -DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS) -DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS) - -GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out, - const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, int gen_type, - const char *value, int is_nc); - -# ifdef OPENSSL_CONF_H -GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, CONF_VALUE *cnf); -GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out, - const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, CONF_VALUE *cnf, - int is_nc); - -void X509V3_conf_free(CONF_VALUE *val); - -X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, - const char *value); -X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, const char *name, - const char *value); -int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, const char *section, - STACK_OF(X509_EXTENSION) **sk); -int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, - X509 *cert); -int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, - X509_REQ *req); -int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, - X509_CRL *crl); - -X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, - X509V3_CTX *ctx, int ext_nid, - const char *value); -X509_EXTENSION *X509V3_EXT_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *name, const char *value); -int X509V3_EXT_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *section, X509 *cert); -int X509V3_EXT_REQ_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *section, X509_REQ *req); -int X509V3_EXT_CRL_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *section, X509_CRL *crl); - -int X509V3_add_value_bool_nf(const char *name, int asn1_bool, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool); -int X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint); -void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf); -void X509V3_set_conf_lhash(X509V3_CTX *ctx, LHASH_OF(CONF_VALUE) *lhash); -# endif - -char *X509V3_get_string(X509V3_CTX *ctx, const char *name, const char *section); -STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, const char *section); -void X509V3_string_free(X509V3_CTX *ctx, char *str); -void X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section); -void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject, - X509_REQ *req, X509_CRL *crl, int flags); -/* For API backward compatibility, this is separate from X509V3_set_ctx(): */ -int X509V3_set_issuer_pkey(X509V3_CTX *ctx, EVP_PKEY *pkey); - -int X509V3_add_value(const char *name, const char *value, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_uchar(const char *name, const unsigned char *value, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_bool(const char *name, int asn1_bool, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint, - STACK_OF(CONF_VALUE) **extlist); -char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const ASN1_INTEGER *aint); -ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const char *value); -char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, const ASN1_ENUMERATED *aint); -char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, - const ASN1_ENUMERATED *aint); -int X509V3_EXT_add(X509V3_EXT_METHOD *ext); -int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist); -int X509V3_EXT_add_alias(int nid_to, int nid_from); -void X509V3_EXT_cleanup(void); - -const X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext); -const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid); -int X509V3_add_standard_extensions(void); -STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line); -void *X509V3_EXT_d2i(X509_EXTENSION *ext); -void *X509V3_get_d2i(const STACK_OF(X509_EXTENSION) *x, int nid, int *crit, - int *idx); - -X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc); -int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, - int crit, unsigned long flags); - -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -/* The new declarations are in crypto.h, but the old ones were here. */ -# define hex_to_string OPENSSL_buf2hexstr -# define string_to_hex OPENSSL_hexstr2buf -#endif - -void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, - int ml); -int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, - int indent); -#ifndef OPENSSL_NO_STDIO -int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent); -#endif -int X509V3_extensions_print(BIO *out, const char *title, - const STACK_OF(X509_EXTENSION) *exts, - unsigned long flag, int indent); - -int X509_check_ca(X509 *x); -int X509_check_purpose(X509 *x, int id, int ca); -int X509_supported_extension(X509_EXTENSION *ex); -int X509_check_issued(X509 *issuer, X509 *subject); -int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); -void X509_set_proxy_flag(X509 *x); -void X509_set_proxy_pathlen(X509 *x, long l); -long X509_get_proxy_pathlen(X509 *x); - -uint32_t X509_get_extension_flags(X509 *x); -uint32_t X509_get_key_usage(X509 *x); -uint32_t X509_get_extended_key_usage(X509 *x); -const ASN1_OCTET_STRING *X509_get0_subject_key_id(X509 *x); -const ASN1_OCTET_STRING *X509_get0_authority_key_id(X509 *x); -const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); -const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); - -int X509_PURPOSE_get_count(void); -int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); -int X509_PURPOSE_get_by_sname(const char *sname); -int X509_PURPOSE_get_by_id(int id); -int X509_PURPOSE_add(int id, int trust, int flags, - int (*ck) (const X509_PURPOSE *, const X509 *, int), - const char *name, const char *sname, void *arg); -void X509_PURPOSE_cleanup(void); - -X509_PURPOSE *X509_PURPOSE_get0(int idx); -int X509_PURPOSE_get_id(const X509_PURPOSE *); -char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); -char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); -int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -int X509_PURPOSE_set(int *p, int purpose); - -STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); -STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); -void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); -STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); - -/* Flags for X509_check_* functions */ - -/* - * Always check subject name for host match even if subject alt names present - */ -# define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0x1 -/* Disable wildcard matching for dnsName fields and common name. */ -# define X509_CHECK_FLAG_NO_WILDCARDS 0x2 -/* Wildcards must not match a partial label. */ -# define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0x4 -/* Allow (non-partial) wildcards to match multiple labels. */ -# define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8 -/* Constraint verifier subdomain patterns to match a single labels. */ -# define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10 -/* Never check the subject CN */ -# define X509_CHECK_FLAG_NEVER_CHECK_SUBJECT 0x20 -/* - * Match reference identifiers starting with "." to any sub-domain. - * This is a non-public flag, turned on implicitly when the subject - * reference identity is a DNS name. - */ -# define _X509_CHECK_FLAG_DOT_SUBDOMAINS 0x8000 - -int X509_check_host(X509 *x, const char *chk, size_t chklen, - unsigned int flags, char **peername); -int X509_check_email(X509 *x, const char *chk, size_t chklen, - unsigned int flags); -int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen, - unsigned int flags); -int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags); - -ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc); -ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc); -int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE) *dn_sk, - unsigned long chtype); - -void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent); -SKM_DEFINE_STACK_OF_INTERNAL(X509_POLICY_NODE, X509_POLICY_NODE, X509_POLICY_NODE) -#define sk_X509_POLICY_NODE_num(sk) OPENSSL_sk_num(ossl_check_const_X509_POLICY_NODE_sk_type(sk)) -#define sk_X509_POLICY_NODE_value(sk, idx) ((X509_POLICY_NODE *)OPENSSL_sk_value(ossl_check_const_X509_POLICY_NODE_sk_type(sk), (idx))) -#define sk_X509_POLICY_NODE_new(cmp) ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_new(ossl_check_X509_POLICY_NODE_compfunc_type(cmp))) -#define sk_X509_POLICY_NODE_new_null() ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_new_null()) -#define sk_X509_POLICY_NODE_new_reserve(cmp, n) ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_new_reserve(ossl_check_X509_POLICY_NODE_compfunc_type(cmp), (n))) -#define sk_X509_POLICY_NODE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_POLICY_NODE_sk_type(sk), (n)) -#define sk_X509_POLICY_NODE_free(sk) OPENSSL_sk_free(ossl_check_X509_POLICY_NODE_sk_type(sk)) -#define sk_X509_POLICY_NODE_zero(sk) OPENSSL_sk_zero(ossl_check_X509_POLICY_NODE_sk_type(sk)) -#define sk_X509_POLICY_NODE_delete(sk, i) ((X509_POLICY_NODE *)OPENSSL_sk_delete(ossl_check_X509_POLICY_NODE_sk_type(sk), (i))) -#define sk_X509_POLICY_NODE_delete_ptr(sk, ptr) ((X509_POLICY_NODE *)OPENSSL_sk_delete_ptr(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr))) -#define sk_X509_POLICY_NODE_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr)) -#define sk_X509_POLICY_NODE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr)) -#define sk_X509_POLICY_NODE_pop(sk) ((X509_POLICY_NODE *)OPENSSL_sk_pop(ossl_check_X509_POLICY_NODE_sk_type(sk))) -#define sk_X509_POLICY_NODE_shift(sk) ((X509_POLICY_NODE *)OPENSSL_sk_shift(ossl_check_X509_POLICY_NODE_sk_type(sk))) -#define sk_X509_POLICY_NODE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_freefunc_type(freefunc)) -#define sk_X509_POLICY_NODE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr), (idx)) -#define sk_X509_POLICY_NODE_set(sk, idx, ptr) ((X509_POLICY_NODE *)OPENSSL_sk_set(ossl_check_X509_POLICY_NODE_sk_type(sk), (idx), ossl_check_X509_POLICY_NODE_type(ptr))) -#define sk_X509_POLICY_NODE_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr)) -#define sk_X509_POLICY_NODE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr)) -#define sk_X509_POLICY_NODE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr), pnum) -#define sk_X509_POLICY_NODE_sort(sk) OPENSSL_sk_sort(ossl_check_X509_POLICY_NODE_sk_type(sk)) -#define sk_X509_POLICY_NODE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_POLICY_NODE_sk_type(sk)) -#define sk_X509_POLICY_NODE_dup(sk) ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_dup(ossl_check_const_X509_POLICY_NODE_sk_type(sk))) -#define sk_X509_POLICY_NODE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_copyfunc_type(copyfunc), ossl_check_X509_POLICY_NODE_freefunc_type(freefunc))) -#define sk_X509_POLICY_NODE_set_cmp_func(sk, cmp) ((sk_X509_POLICY_NODE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_compfunc_type(cmp))) - - - -#ifndef OPENSSL_NO_RFC3779 -typedef struct ASRange_st { - ASN1_INTEGER *min, *max; -} ASRange; - -# define ASIdOrRange_id 0 -# define ASIdOrRange_range 1 - -typedef struct ASIdOrRange_st { - int type; - union { - ASN1_INTEGER *id; - ASRange *range; - } u; -} ASIdOrRange; - -SKM_DEFINE_STACK_OF_INTERNAL(ASIdOrRange, ASIdOrRange, ASIdOrRange) -#define sk_ASIdOrRange_num(sk) OPENSSL_sk_num(ossl_check_const_ASIdOrRange_sk_type(sk)) -#define sk_ASIdOrRange_value(sk, idx) ((ASIdOrRange *)OPENSSL_sk_value(ossl_check_const_ASIdOrRange_sk_type(sk), (idx))) -#define sk_ASIdOrRange_new(cmp) ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_new(ossl_check_ASIdOrRange_compfunc_type(cmp))) -#define sk_ASIdOrRange_new_null() ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_new_null()) -#define sk_ASIdOrRange_new_reserve(cmp, n) ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_new_reserve(ossl_check_ASIdOrRange_compfunc_type(cmp), (n))) -#define sk_ASIdOrRange_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASIdOrRange_sk_type(sk), (n)) -#define sk_ASIdOrRange_free(sk) OPENSSL_sk_free(ossl_check_ASIdOrRange_sk_type(sk)) -#define sk_ASIdOrRange_zero(sk) OPENSSL_sk_zero(ossl_check_ASIdOrRange_sk_type(sk)) -#define sk_ASIdOrRange_delete(sk, i) ((ASIdOrRange *)OPENSSL_sk_delete(ossl_check_ASIdOrRange_sk_type(sk), (i))) -#define sk_ASIdOrRange_delete_ptr(sk, ptr) ((ASIdOrRange *)OPENSSL_sk_delete_ptr(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr))) -#define sk_ASIdOrRange_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr)) -#define sk_ASIdOrRange_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr)) -#define sk_ASIdOrRange_pop(sk) ((ASIdOrRange *)OPENSSL_sk_pop(ossl_check_ASIdOrRange_sk_type(sk))) -#define sk_ASIdOrRange_shift(sk) ((ASIdOrRange *)OPENSSL_sk_shift(ossl_check_ASIdOrRange_sk_type(sk))) -#define sk_ASIdOrRange_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_freefunc_type(freefunc)) -#define sk_ASIdOrRange_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr), (idx)) -#define sk_ASIdOrRange_set(sk, idx, ptr) ((ASIdOrRange *)OPENSSL_sk_set(ossl_check_ASIdOrRange_sk_type(sk), (idx), ossl_check_ASIdOrRange_type(ptr))) -#define sk_ASIdOrRange_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr)) -#define sk_ASIdOrRange_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr)) -#define sk_ASIdOrRange_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr), pnum) -#define sk_ASIdOrRange_sort(sk) OPENSSL_sk_sort(ossl_check_ASIdOrRange_sk_type(sk)) -#define sk_ASIdOrRange_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASIdOrRange_sk_type(sk)) -#define sk_ASIdOrRange_dup(sk) ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_dup(ossl_check_const_ASIdOrRange_sk_type(sk))) -#define sk_ASIdOrRange_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_deep_copy(ossl_check_const_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_copyfunc_type(copyfunc), ossl_check_ASIdOrRange_freefunc_type(freefunc))) -#define sk_ASIdOrRange_set_cmp_func(sk, cmp) ((sk_ASIdOrRange_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_compfunc_type(cmp))) - - -typedef STACK_OF(ASIdOrRange) ASIdOrRanges; - -# define ASIdentifierChoice_inherit 0 -# define ASIdentifierChoice_asIdsOrRanges 1 - -typedef struct ASIdentifierChoice_st { - int type; - union { - ASN1_NULL *inherit; - ASIdOrRanges *asIdsOrRanges; - } u; -} ASIdentifierChoice; - -typedef struct ASIdentifiers_st { - ASIdentifierChoice *asnum, *rdi; -} ASIdentifiers; - -DECLARE_ASN1_FUNCTIONS(ASRange) -DECLARE_ASN1_FUNCTIONS(ASIdOrRange) -DECLARE_ASN1_FUNCTIONS(ASIdentifierChoice) -DECLARE_ASN1_FUNCTIONS(ASIdentifiers) - -typedef struct IPAddressRange_st { - ASN1_BIT_STRING *min, *max; -} IPAddressRange; - -# define IPAddressOrRange_addressPrefix 0 -# define IPAddressOrRange_addressRange 1 - -typedef struct IPAddressOrRange_st { - int type; - union { - ASN1_BIT_STRING *addressPrefix; - IPAddressRange *addressRange; - } u; -} IPAddressOrRange; - -SKM_DEFINE_STACK_OF_INTERNAL(IPAddressOrRange, IPAddressOrRange, IPAddressOrRange) -#define sk_IPAddressOrRange_num(sk) OPENSSL_sk_num(ossl_check_const_IPAddressOrRange_sk_type(sk)) -#define sk_IPAddressOrRange_value(sk, idx) ((IPAddressOrRange *)OPENSSL_sk_value(ossl_check_const_IPAddressOrRange_sk_type(sk), (idx))) -#define sk_IPAddressOrRange_new(cmp) ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_new(ossl_check_IPAddressOrRange_compfunc_type(cmp))) -#define sk_IPAddressOrRange_new_null() ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_new_null()) -#define sk_IPAddressOrRange_new_reserve(cmp, n) ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_new_reserve(ossl_check_IPAddressOrRange_compfunc_type(cmp), (n))) -#define sk_IPAddressOrRange_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_IPAddressOrRange_sk_type(sk), (n)) -#define sk_IPAddressOrRange_free(sk) OPENSSL_sk_free(ossl_check_IPAddressOrRange_sk_type(sk)) -#define sk_IPAddressOrRange_zero(sk) OPENSSL_sk_zero(ossl_check_IPAddressOrRange_sk_type(sk)) -#define sk_IPAddressOrRange_delete(sk, i) ((IPAddressOrRange *)OPENSSL_sk_delete(ossl_check_IPAddressOrRange_sk_type(sk), (i))) -#define sk_IPAddressOrRange_delete_ptr(sk, ptr) ((IPAddressOrRange *)OPENSSL_sk_delete_ptr(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr))) -#define sk_IPAddressOrRange_push(sk, ptr) OPENSSL_sk_push(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr)) -#define sk_IPAddressOrRange_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr)) -#define sk_IPAddressOrRange_pop(sk) ((IPAddressOrRange *)OPENSSL_sk_pop(ossl_check_IPAddressOrRange_sk_type(sk))) -#define sk_IPAddressOrRange_shift(sk) ((IPAddressOrRange *)OPENSSL_sk_shift(ossl_check_IPAddressOrRange_sk_type(sk))) -#define sk_IPAddressOrRange_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_freefunc_type(freefunc)) -#define sk_IPAddressOrRange_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr), (idx)) -#define sk_IPAddressOrRange_set(sk, idx, ptr) ((IPAddressOrRange *)OPENSSL_sk_set(ossl_check_IPAddressOrRange_sk_type(sk), (idx), ossl_check_IPAddressOrRange_type(ptr))) -#define sk_IPAddressOrRange_find(sk, ptr) OPENSSL_sk_find(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr)) -#define sk_IPAddressOrRange_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr)) -#define sk_IPAddressOrRange_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr), pnum) -#define sk_IPAddressOrRange_sort(sk) OPENSSL_sk_sort(ossl_check_IPAddressOrRange_sk_type(sk)) -#define sk_IPAddressOrRange_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_IPAddressOrRange_sk_type(sk)) -#define sk_IPAddressOrRange_dup(sk) ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_dup(ossl_check_const_IPAddressOrRange_sk_type(sk))) -#define sk_IPAddressOrRange_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_deep_copy(ossl_check_const_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_copyfunc_type(copyfunc), ossl_check_IPAddressOrRange_freefunc_type(freefunc))) -#define sk_IPAddressOrRange_set_cmp_func(sk, cmp) ((sk_IPAddressOrRange_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_compfunc_type(cmp))) - - -typedef STACK_OF(IPAddressOrRange) IPAddressOrRanges; - -# define IPAddressChoice_inherit 0 -# define IPAddressChoice_addressesOrRanges 1 - -typedef struct IPAddressChoice_st { - int type; - union { - ASN1_NULL *inherit; - IPAddressOrRanges *addressesOrRanges; - } u; -} IPAddressChoice; - -typedef struct IPAddressFamily_st { - ASN1_OCTET_STRING *addressFamily; - IPAddressChoice *ipAddressChoice; -} IPAddressFamily; - -SKM_DEFINE_STACK_OF_INTERNAL(IPAddressFamily, IPAddressFamily, IPAddressFamily) -#define sk_IPAddressFamily_num(sk) OPENSSL_sk_num(ossl_check_const_IPAddressFamily_sk_type(sk)) -#define sk_IPAddressFamily_value(sk, idx) ((IPAddressFamily *)OPENSSL_sk_value(ossl_check_const_IPAddressFamily_sk_type(sk), (idx))) -#define sk_IPAddressFamily_new(cmp) ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_new(ossl_check_IPAddressFamily_compfunc_type(cmp))) -#define sk_IPAddressFamily_new_null() ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_new_null()) -#define sk_IPAddressFamily_new_reserve(cmp, n) ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_new_reserve(ossl_check_IPAddressFamily_compfunc_type(cmp), (n))) -#define sk_IPAddressFamily_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_IPAddressFamily_sk_type(sk), (n)) -#define sk_IPAddressFamily_free(sk) OPENSSL_sk_free(ossl_check_IPAddressFamily_sk_type(sk)) -#define sk_IPAddressFamily_zero(sk) OPENSSL_sk_zero(ossl_check_IPAddressFamily_sk_type(sk)) -#define sk_IPAddressFamily_delete(sk, i) ((IPAddressFamily *)OPENSSL_sk_delete(ossl_check_IPAddressFamily_sk_type(sk), (i))) -#define sk_IPAddressFamily_delete_ptr(sk, ptr) ((IPAddressFamily *)OPENSSL_sk_delete_ptr(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr))) -#define sk_IPAddressFamily_push(sk, ptr) OPENSSL_sk_push(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr)) -#define sk_IPAddressFamily_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr)) -#define sk_IPAddressFamily_pop(sk) ((IPAddressFamily *)OPENSSL_sk_pop(ossl_check_IPAddressFamily_sk_type(sk))) -#define sk_IPAddressFamily_shift(sk) ((IPAddressFamily *)OPENSSL_sk_shift(ossl_check_IPAddressFamily_sk_type(sk))) -#define sk_IPAddressFamily_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_freefunc_type(freefunc)) -#define sk_IPAddressFamily_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr), (idx)) -#define sk_IPAddressFamily_set(sk, idx, ptr) ((IPAddressFamily *)OPENSSL_sk_set(ossl_check_IPAddressFamily_sk_type(sk), (idx), ossl_check_IPAddressFamily_type(ptr))) -#define sk_IPAddressFamily_find(sk, ptr) OPENSSL_sk_find(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr)) -#define sk_IPAddressFamily_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr)) -#define sk_IPAddressFamily_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr), pnum) -#define sk_IPAddressFamily_sort(sk) OPENSSL_sk_sort(ossl_check_IPAddressFamily_sk_type(sk)) -#define sk_IPAddressFamily_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_IPAddressFamily_sk_type(sk)) -#define sk_IPAddressFamily_dup(sk) ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_dup(ossl_check_const_IPAddressFamily_sk_type(sk))) -#define sk_IPAddressFamily_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_deep_copy(ossl_check_const_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_copyfunc_type(copyfunc), ossl_check_IPAddressFamily_freefunc_type(freefunc))) -#define sk_IPAddressFamily_set_cmp_func(sk, cmp) ((sk_IPAddressFamily_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_compfunc_type(cmp))) - - - -typedef STACK_OF(IPAddressFamily) IPAddrBlocks; - -DECLARE_ASN1_FUNCTIONS(IPAddressRange) -DECLARE_ASN1_FUNCTIONS(IPAddressOrRange) -DECLARE_ASN1_FUNCTIONS(IPAddressChoice) -DECLARE_ASN1_FUNCTIONS(IPAddressFamily) - -/* - * API tag for elements of the ASIdentifer SEQUENCE. - */ -# define V3_ASID_ASNUM 0 -# define V3_ASID_RDI 1 - -/* - * AFI values, assigned by IANA. It'd be nice to make the AFI - * handling code totally generic, but there are too many little things - * that would need to be defined for other address families for it to - * be worth the trouble. - */ -# define IANA_AFI_IPV4 1 -# define IANA_AFI_IPV6 2 - -/* - * Utilities to construct and extract values from RFC3779 extensions, - * since some of the encodings (particularly for IP address prefixes - * and ranges) are a bit tedious to work with directly. - */ -int X509v3_asid_add_inherit(ASIdentifiers *asid, int which); -int X509v3_asid_add_id_or_range(ASIdentifiers *asid, int which, - ASN1_INTEGER *min, ASN1_INTEGER *max); -int X509v3_addr_add_inherit(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi); -int X509v3_addr_add_prefix(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi, - unsigned char *a, const int prefixlen); -int X509v3_addr_add_range(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi, - unsigned char *min, unsigned char *max); -unsigned X509v3_addr_get_afi(const IPAddressFamily *f); -int X509v3_addr_get_range(IPAddressOrRange *aor, const unsigned afi, - unsigned char *min, unsigned char *max, - const int length); - -/* - * Canonical forms. - */ -int X509v3_asid_is_canonical(ASIdentifiers *asid); -int X509v3_addr_is_canonical(IPAddrBlocks *addr); -int X509v3_asid_canonize(ASIdentifiers *asid); -int X509v3_addr_canonize(IPAddrBlocks *addr); - -/* - * Tests for inheritance and containment. - */ -int X509v3_asid_inherits(ASIdentifiers *asid); -int X509v3_addr_inherits(IPAddrBlocks *addr); -int X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b); -int X509v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b); - -/* - * Check whether RFC 3779 extensions nest properly in chains. - */ -int X509v3_asid_validate_path(X509_STORE_CTX *); -int X509v3_addr_validate_path(X509_STORE_CTX *); -int X509v3_asid_validate_resource_set(STACK_OF(X509) *chain, - ASIdentifiers *ext, - int allow_inheritance); -int X509v3_addr_validate_resource_set(STACK_OF(X509) *chain, - IPAddrBlocks *ext, int allow_inheritance); - -#endif /* OPENSSL_NO_RFC3779 */ - -SKM_DEFINE_STACK_OF_INTERNAL(ASN1_STRING, ASN1_STRING, ASN1_STRING) -#define sk_ASN1_STRING_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_STRING_sk_type(sk)) -#define sk_ASN1_STRING_value(sk, idx) ((ASN1_STRING *)OPENSSL_sk_value(ossl_check_const_ASN1_STRING_sk_type(sk), (idx))) -#define sk_ASN1_STRING_new(cmp) ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_new(ossl_check_ASN1_STRING_compfunc_type(cmp))) -#define sk_ASN1_STRING_new_null() ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_new_null()) -#define sk_ASN1_STRING_new_reserve(cmp, n) ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_STRING_compfunc_type(cmp), (n))) -#define sk_ASN1_STRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_STRING_sk_type(sk), (n)) -#define sk_ASN1_STRING_free(sk) OPENSSL_sk_free(ossl_check_ASN1_STRING_sk_type(sk)) -#define sk_ASN1_STRING_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_STRING_sk_type(sk)) -#define sk_ASN1_STRING_delete(sk, i) ((ASN1_STRING *)OPENSSL_sk_delete(ossl_check_ASN1_STRING_sk_type(sk), (i))) -#define sk_ASN1_STRING_delete_ptr(sk, ptr) ((ASN1_STRING *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr))) -#define sk_ASN1_STRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr)) -#define sk_ASN1_STRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr)) -#define sk_ASN1_STRING_pop(sk) ((ASN1_STRING *)OPENSSL_sk_pop(ossl_check_ASN1_STRING_sk_type(sk))) -#define sk_ASN1_STRING_shift(sk) ((ASN1_STRING *)OPENSSL_sk_shift(ossl_check_ASN1_STRING_sk_type(sk))) -#define sk_ASN1_STRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_freefunc_type(freefunc)) -#define sk_ASN1_STRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr), (idx)) -#define sk_ASN1_STRING_set(sk, idx, ptr) ((ASN1_STRING *)OPENSSL_sk_set(ossl_check_ASN1_STRING_sk_type(sk), (idx), ossl_check_ASN1_STRING_type(ptr))) -#define sk_ASN1_STRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr)) -#define sk_ASN1_STRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr)) -#define sk_ASN1_STRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr), pnum) -#define sk_ASN1_STRING_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_STRING_sk_type(sk)) -#define sk_ASN1_STRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_STRING_sk_type(sk)) -#define sk_ASN1_STRING_dup(sk) ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_dup(ossl_check_const_ASN1_STRING_sk_type(sk))) -#define sk_ASN1_STRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_copyfunc_type(copyfunc), ossl_check_ASN1_STRING_freefunc_type(freefunc))) -#define sk_ASN1_STRING_set_cmp_func(sk, cmp) ((sk_ASN1_STRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_compfunc_type(cmp))) - - -/* - * Admission Syntax - */ -typedef struct NamingAuthority_st NAMING_AUTHORITY; -typedef struct ProfessionInfo_st PROFESSION_INFO; -typedef struct Admissions_st ADMISSIONS; -typedef struct AdmissionSyntax_st ADMISSION_SYNTAX; -DECLARE_ASN1_FUNCTIONS(NAMING_AUTHORITY) -DECLARE_ASN1_FUNCTIONS(PROFESSION_INFO) -DECLARE_ASN1_FUNCTIONS(ADMISSIONS) -DECLARE_ASN1_FUNCTIONS(ADMISSION_SYNTAX) -SKM_DEFINE_STACK_OF_INTERNAL(PROFESSION_INFO, PROFESSION_INFO, PROFESSION_INFO) -#define sk_PROFESSION_INFO_num(sk) OPENSSL_sk_num(ossl_check_const_PROFESSION_INFO_sk_type(sk)) -#define sk_PROFESSION_INFO_value(sk, idx) ((PROFESSION_INFO *)OPENSSL_sk_value(ossl_check_const_PROFESSION_INFO_sk_type(sk), (idx))) -#define sk_PROFESSION_INFO_new(cmp) ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_new(ossl_check_PROFESSION_INFO_compfunc_type(cmp))) -#define sk_PROFESSION_INFO_new_null() ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_new_null()) -#define sk_PROFESSION_INFO_new_reserve(cmp, n) ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_new_reserve(ossl_check_PROFESSION_INFO_compfunc_type(cmp), (n))) -#define sk_PROFESSION_INFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_PROFESSION_INFO_sk_type(sk), (n)) -#define sk_PROFESSION_INFO_free(sk) OPENSSL_sk_free(ossl_check_PROFESSION_INFO_sk_type(sk)) -#define sk_PROFESSION_INFO_zero(sk) OPENSSL_sk_zero(ossl_check_PROFESSION_INFO_sk_type(sk)) -#define sk_PROFESSION_INFO_delete(sk, i) ((PROFESSION_INFO *)OPENSSL_sk_delete(ossl_check_PROFESSION_INFO_sk_type(sk), (i))) -#define sk_PROFESSION_INFO_delete_ptr(sk, ptr) ((PROFESSION_INFO *)OPENSSL_sk_delete_ptr(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr))) -#define sk_PROFESSION_INFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr)) -#define sk_PROFESSION_INFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr)) -#define sk_PROFESSION_INFO_pop(sk) ((PROFESSION_INFO *)OPENSSL_sk_pop(ossl_check_PROFESSION_INFO_sk_type(sk))) -#define sk_PROFESSION_INFO_shift(sk) ((PROFESSION_INFO *)OPENSSL_sk_shift(ossl_check_PROFESSION_INFO_sk_type(sk))) -#define sk_PROFESSION_INFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_freefunc_type(freefunc)) -#define sk_PROFESSION_INFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr), (idx)) -#define sk_PROFESSION_INFO_set(sk, idx, ptr) ((PROFESSION_INFO *)OPENSSL_sk_set(ossl_check_PROFESSION_INFO_sk_type(sk), (idx), ossl_check_PROFESSION_INFO_type(ptr))) -#define sk_PROFESSION_INFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr)) -#define sk_PROFESSION_INFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr)) -#define sk_PROFESSION_INFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr), pnum) -#define sk_PROFESSION_INFO_sort(sk) OPENSSL_sk_sort(ossl_check_PROFESSION_INFO_sk_type(sk)) -#define sk_PROFESSION_INFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_PROFESSION_INFO_sk_type(sk)) -#define sk_PROFESSION_INFO_dup(sk) ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_dup(ossl_check_const_PROFESSION_INFO_sk_type(sk))) -#define sk_PROFESSION_INFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_deep_copy(ossl_check_const_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_copyfunc_type(copyfunc), ossl_check_PROFESSION_INFO_freefunc_type(freefunc))) -#define sk_PROFESSION_INFO_set_cmp_func(sk, cmp) ((sk_PROFESSION_INFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(ADMISSIONS, ADMISSIONS, ADMISSIONS) -#define sk_ADMISSIONS_num(sk) OPENSSL_sk_num(ossl_check_const_ADMISSIONS_sk_type(sk)) -#define sk_ADMISSIONS_value(sk, idx) ((ADMISSIONS *)OPENSSL_sk_value(ossl_check_const_ADMISSIONS_sk_type(sk), (idx))) -#define sk_ADMISSIONS_new(cmp) ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_new(ossl_check_ADMISSIONS_compfunc_type(cmp))) -#define sk_ADMISSIONS_new_null() ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_new_null()) -#define sk_ADMISSIONS_new_reserve(cmp, n) ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_new_reserve(ossl_check_ADMISSIONS_compfunc_type(cmp), (n))) -#define sk_ADMISSIONS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ADMISSIONS_sk_type(sk), (n)) -#define sk_ADMISSIONS_free(sk) OPENSSL_sk_free(ossl_check_ADMISSIONS_sk_type(sk)) -#define sk_ADMISSIONS_zero(sk) OPENSSL_sk_zero(ossl_check_ADMISSIONS_sk_type(sk)) -#define sk_ADMISSIONS_delete(sk, i) ((ADMISSIONS *)OPENSSL_sk_delete(ossl_check_ADMISSIONS_sk_type(sk), (i))) -#define sk_ADMISSIONS_delete_ptr(sk, ptr) ((ADMISSIONS *)OPENSSL_sk_delete_ptr(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr))) -#define sk_ADMISSIONS_push(sk, ptr) OPENSSL_sk_push(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr)) -#define sk_ADMISSIONS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr)) -#define sk_ADMISSIONS_pop(sk) ((ADMISSIONS *)OPENSSL_sk_pop(ossl_check_ADMISSIONS_sk_type(sk))) -#define sk_ADMISSIONS_shift(sk) ((ADMISSIONS *)OPENSSL_sk_shift(ossl_check_ADMISSIONS_sk_type(sk))) -#define sk_ADMISSIONS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_freefunc_type(freefunc)) -#define sk_ADMISSIONS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr), (idx)) -#define sk_ADMISSIONS_set(sk, idx, ptr) ((ADMISSIONS *)OPENSSL_sk_set(ossl_check_ADMISSIONS_sk_type(sk), (idx), ossl_check_ADMISSIONS_type(ptr))) -#define sk_ADMISSIONS_find(sk, ptr) OPENSSL_sk_find(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr)) -#define sk_ADMISSIONS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr)) -#define sk_ADMISSIONS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr), pnum) -#define sk_ADMISSIONS_sort(sk) OPENSSL_sk_sort(ossl_check_ADMISSIONS_sk_type(sk)) -#define sk_ADMISSIONS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ADMISSIONS_sk_type(sk)) -#define sk_ADMISSIONS_dup(sk) ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_dup(ossl_check_const_ADMISSIONS_sk_type(sk))) -#define sk_ADMISSIONS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_deep_copy(ossl_check_const_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_copyfunc_type(copyfunc), ossl_check_ADMISSIONS_freefunc_type(freefunc))) -#define sk_ADMISSIONS_set_cmp_func(sk, cmp) ((sk_ADMISSIONS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_compfunc_type(cmp))) - -typedef STACK_OF(PROFESSION_INFO) PROFESSION_INFOS; - -const ASN1_OBJECT *NAMING_AUTHORITY_get0_authorityId( - const NAMING_AUTHORITY *n); -const ASN1_IA5STRING *NAMING_AUTHORITY_get0_authorityURL( - const NAMING_AUTHORITY *n); -const ASN1_STRING *NAMING_AUTHORITY_get0_authorityText( - const NAMING_AUTHORITY *n); -void NAMING_AUTHORITY_set0_authorityId(NAMING_AUTHORITY *n, - ASN1_OBJECT* namingAuthorityId); -void NAMING_AUTHORITY_set0_authorityURL(NAMING_AUTHORITY *n, - ASN1_IA5STRING* namingAuthorityUrl); -void NAMING_AUTHORITY_set0_authorityText(NAMING_AUTHORITY *n, - ASN1_STRING* namingAuthorityText); - -const GENERAL_NAME *ADMISSION_SYNTAX_get0_admissionAuthority( - const ADMISSION_SYNTAX *as); -void ADMISSION_SYNTAX_set0_admissionAuthority( - ADMISSION_SYNTAX *as, GENERAL_NAME *aa); -const STACK_OF(ADMISSIONS) *ADMISSION_SYNTAX_get0_contentsOfAdmissions( - const ADMISSION_SYNTAX *as); -void ADMISSION_SYNTAX_set0_contentsOfAdmissions( - ADMISSION_SYNTAX *as, STACK_OF(ADMISSIONS) *a); -const GENERAL_NAME *ADMISSIONS_get0_admissionAuthority(const ADMISSIONS *a); -void ADMISSIONS_set0_admissionAuthority(ADMISSIONS *a, GENERAL_NAME *aa); -const NAMING_AUTHORITY *ADMISSIONS_get0_namingAuthority(const ADMISSIONS *a); -void ADMISSIONS_set0_namingAuthority(ADMISSIONS *a, NAMING_AUTHORITY *na); -const PROFESSION_INFOS *ADMISSIONS_get0_professionInfos(const ADMISSIONS *a); -void ADMISSIONS_set0_professionInfos(ADMISSIONS *a, PROFESSION_INFOS *pi); -const ASN1_OCTET_STRING *PROFESSION_INFO_get0_addProfessionInfo( - const PROFESSION_INFO *pi); -void PROFESSION_INFO_set0_addProfessionInfo( - PROFESSION_INFO *pi, ASN1_OCTET_STRING *aos); -const NAMING_AUTHORITY *PROFESSION_INFO_get0_namingAuthority( - const PROFESSION_INFO *pi); -void PROFESSION_INFO_set0_namingAuthority( - PROFESSION_INFO *pi, NAMING_AUTHORITY *na); -const STACK_OF(ASN1_STRING) *PROFESSION_INFO_get0_professionItems( - const PROFESSION_INFO *pi); -void PROFESSION_INFO_set0_professionItems( - PROFESSION_INFO *pi, STACK_OF(ASN1_STRING) *as); -const STACK_OF(ASN1_OBJECT) *PROFESSION_INFO_get0_professionOIDs( - const PROFESSION_INFO *pi); -void PROFESSION_INFO_set0_professionOIDs( - PROFESSION_INFO *pi, STACK_OF(ASN1_OBJECT) *po); -const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( - const PROFESSION_INFO *pi); -void PROFESSION_INFO_set0_registrationNumber( - PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); - -int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); - -typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; -DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) - -typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; -DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) - -SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) -#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) -#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) -#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) -#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) -#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) -#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) -#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) -#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) -#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) -#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) -#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) -#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) -#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) -#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) -#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_freefunc_type(freefunc)) -#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) -#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) -#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) -#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) -#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) -#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) -#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) -#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) -#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) -#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) - - -typedef struct OSSL_ROLE_SPEC_CERT_ID_st { - GENERAL_NAME *roleName; - GENERAL_NAME *roleCertIssuer; - ASN1_INTEGER *roleCertSerialNumber; - GENERAL_NAMES *roleCertLocator; -} OSSL_ROLE_SPEC_CERT_ID; - -DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) - -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) -#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) -#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) -#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) - - -typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; - -DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) -typedef struct OSSL_HASH_st { - X509_ALGOR *algorithmIdentifier; - ASN1_BIT_STRING *hashValue; -} OSSL_HASH; - -typedef struct OSSL_INFO_SYNTAX_POINTER_st { - GENERAL_NAMES *name; - OSSL_HASH *hash; -} OSSL_INFO_SYNTAX_POINTER; - -# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 -# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 - -typedef struct OSSL_INFO_SYNTAX_st { - int type; - union { - ASN1_STRING *content; - OSSL_INFO_SYNTAX_POINTER *pointer; - } choice; -} OSSL_INFO_SYNTAX; - -typedef struct OSSL_PRIVILEGE_POLICY_ID_st { - ASN1_OBJECT *privilegePolicy; - OSSL_INFO_SYNTAX *privPolSyntax; -} OSSL_PRIVILEGE_POLICY_ID; - -typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { - ASN1_OBJECT *identifier; - ASN1_STRING *attributeSyntax; - ASN1_UTF8STRING *name; - ASN1_UTF8STRING *description; - OSSL_PRIVILEGE_POLICY_ID *dominationRule; -} OSSL_ATTRIBUTE_DESCRIPTOR; - -DECLARE_ASN1_FUNCTIONS(OSSL_HASH) -DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) -DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) -DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) -DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) - -typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { - ASN1_GENERALIZEDTIME *startTime; - ASN1_GENERALIZEDTIME *endTime; -} OSSL_TIME_SPEC_ABSOLUTE; - -typedef struct OSSL_DAY_TIME_st { - ASN1_INTEGER *hour; - ASN1_INTEGER *minute; - ASN1_INTEGER *second; -} OSSL_DAY_TIME; - -typedef struct OSSL_DAY_TIME_BAND_st { - OSSL_DAY_TIME *startDayTime; - OSSL_DAY_TIME *endDayTime; -} OSSL_DAY_TIME_BAND; - -# define OSSL_NAMED_DAY_TYPE_INT 0 -# define OSSL_NAMED_DAY_TYPE_BIT 1 -# define OSSL_NAMED_DAY_INT_SUN 1 -# define OSSL_NAMED_DAY_INT_MON 2 -# define OSSL_NAMED_DAY_INT_TUE 3 -# define OSSL_NAMED_DAY_INT_WED 4 -# define OSSL_NAMED_DAY_INT_THU 5 -# define OSSL_NAMED_DAY_INT_FRI 6 -# define OSSL_NAMED_DAY_INT_SAT 7 -# define OSSL_NAMED_DAY_BIT_SUN 0 -# define OSSL_NAMED_DAY_BIT_MON 1 -# define OSSL_NAMED_DAY_BIT_TUE 2 -# define OSSL_NAMED_DAY_BIT_WED 3 -# define OSSL_NAMED_DAY_BIT_THU 4 -# define OSSL_NAMED_DAY_BIT_FRI 5 -# define OSSL_NAMED_DAY_BIT_SAT 6 - -typedef struct OSSL_NAMED_DAY_st { - int type; - union { - ASN1_INTEGER *intNamedDays; - ASN1_BIT_STRING *bitNamedDays; - } choice; -} OSSL_NAMED_DAY; - -# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 -# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 -# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 -# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 -# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 - -typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { - int type; - union { - OSSL_NAMED_DAY *first; - OSSL_NAMED_DAY *second; - OSSL_NAMED_DAY *third; - OSSL_NAMED_DAY *fourth; - OSSL_NAMED_DAY *fifth; - } choice; -} OSSL_TIME_SPEC_X_DAY_OF; - -# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 -# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 -# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 -# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 -# define OSSL_TIME_SPEC_DAY_BIT_MON 1 -# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 -# define OSSL_TIME_SPEC_DAY_BIT_WED 3 -# define OSSL_TIME_SPEC_DAY_BIT_THU 4 -# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 -# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 -# define OSSL_TIME_SPEC_DAY_INT_SUN 1 -# define OSSL_TIME_SPEC_DAY_INT_MON 2 -# define OSSL_TIME_SPEC_DAY_INT_TUE 3 -# define OSSL_TIME_SPEC_DAY_INT_WED 4 -# define OSSL_TIME_SPEC_DAY_INT_THU 5 -# define OSSL_TIME_SPEC_DAY_INT_FRI 6 -# define OSSL_TIME_SPEC_DAY_INT_SAT 7 - -typedef struct OSSL_TIME_SPEC_DAY_st { - int type; - union { - STACK_OF(ASN1_INTEGER) *intDay; - ASN1_BIT_STRING *bitDay; - OSSL_TIME_SPEC_X_DAY_OF *dayOf; - } choice; -} OSSL_TIME_SPEC_DAY; - -# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 -# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 -# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 -# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 -# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 -# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 -# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 -# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 - -typedef struct OSSL_TIME_SPEC_WEEKS_st { - int type; - union { - ASN1_NULL *allWeeks; - STACK_OF(ASN1_INTEGER) *intWeek; - ASN1_BIT_STRING *bitWeek; - } choice; -} OSSL_TIME_SPEC_WEEKS; - -# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 -# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 -# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 -# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 -# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 -# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 -# define OSSL_TIME_SPEC_INT_MONTH_APR 4 -# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 -# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 -# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 -# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 -# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 -# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 -# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 -# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 -# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 -# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 -# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 -# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 -# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 -# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 -# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 -# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 -# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 -# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 -# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 -# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 - -typedef struct OSSL_TIME_SPEC_MONTH_st { - int type; - union { - ASN1_NULL *allMonths; - STACK_OF(ASN1_INTEGER) *intMonth; - ASN1_BIT_STRING *bitMonth; - } choice; -} OSSL_TIME_SPEC_MONTH; - -typedef struct OSSL_TIME_PERIOD_st { - STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; - OSSL_TIME_SPEC_DAY *days; - OSSL_TIME_SPEC_WEEKS *weeks; - OSSL_TIME_SPEC_MONTH *months; - STACK_OF(ASN1_INTEGER) *years; -} OSSL_TIME_PERIOD; - -# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 -# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 - -typedef struct OSSL_TIME_SPEC_TIME_st { - int type; - union { - OSSL_TIME_SPEC_ABSOLUTE *absolute; - STACK_OF(OSSL_TIME_PERIOD) *periodic; - } choice; -} OSSL_TIME_SPEC_TIME; - -typedef struct OSSL_TIME_SPEC_st { - OSSL_TIME_SPEC_TIME *time; - ASN1_BOOLEAN notThisTime; - ASN1_INTEGER *timeZone; -} OSSL_TIME_SPEC; - -DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) -DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) -DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) -DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) -DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) -DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) -DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) -DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) -DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) -DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) -DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) - -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) -#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) -#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) -#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) -#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) -#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) -#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) -#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) -#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) -#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) -#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) -#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) -#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) -#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) -#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) -#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) -#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) -#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) -#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) -#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) -#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) -#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) -#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) -#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) -#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) -#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) - - -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) -#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) -#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) -#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) -#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) -#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) -#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) -#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) -#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) -#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) -#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) -#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) -#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) -#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) -#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) -#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) -#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) -#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) -#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) -#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) -#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) -#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) -#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) -#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) -#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) -#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) - - -/* Attribute Type and Value */ -typedef struct atav_st { - ASN1_OBJECT *type; - ASN1_TYPE *value; -} OSSL_ATAV; - -typedef struct ATTRIBUTE_TYPE_MAPPING_st { - ASN1_OBJECT *local; - ASN1_OBJECT *remote; -} OSSL_ATTRIBUTE_TYPE_MAPPING; - -typedef struct ATTRIBUTE_VALUE_MAPPING_st { - OSSL_ATAV *local; - OSSL_ATAV *remote; -} OSSL_ATTRIBUTE_VALUE_MAPPING; - -# define OSSL_ATTR_MAP_TYPE 0 -# define OSSL_ATTR_MAP_VALUE 1 - -typedef struct ATTRIBUTE_MAPPING_st { - int type; - union { - OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; - OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; - } choice; -} OSSL_ATTRIBUTE_MAPPING; - -typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; -DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) -DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) -DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) -DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) -DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) - -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) -#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) -#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) -#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) -#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) -#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) -#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) -#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) -#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) -#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) -#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) -#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) -#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) -#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) -#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) -#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) -#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) -#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) -#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) -#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) -#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) -#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) -#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) -#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) -#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) -#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) - - -# define OSSL_AAA_ATTRIBUTE_TYPE 0 -# define OSSL_AAA_ATTRIBUTE_VALUES 1 - -typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { - int type; - union { - ASN1_OBJECT *attributeType; - X509_ATTRIBUTE *attributeTypeandValues; - } choice; -} OSSL_ALLOWED_ATTRIBUTES_CHOICE; - -typedef struct ALLOWED_ATTRIBUTES_ITEM_st { - STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; - GENERAL_NAME *holderDomain; -} OSSL_ALLOWED_ATTRIBUTES_ITEM; - -typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; - -DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) -DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) -DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) - -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) - - -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) - - -typedef struct AA_DIST_POINT_st { - DIST_POINT_NAME *distpoint; - ASN1_BIT_STRING *reasons; - int dp_reasons; - ASN1_BOOLEAN indirectCRL; - ASN1_BOOLEAN containsUserAttributeCerts; - ASN1_BOOLEAN containsAACerts; - ASN1_BOOLEAN containsSOAPublicKeyCerts; -} OSSL_AA_DIST_POINT; - -DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/include/openssl/x509v3err.h b/libs/openssl-3.6.0-beta1/arm64/include/openssl/x509v3err.h deleted file mode 100644 index 4bbcfc2..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/include/openssl/x509v3err.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_X509V3ERR_H -# define OPENSSL_X509V3ERR_H -# pragma once - -# include -# include -# include - - - -/* - * X509V3 reason codes. - */ -# define X509V3_R_BAD_IP_ADDRESS 118 -# define X509V3_R_BAD_OBJECT 119 -# define X509V3_R_BAD_OPTION 170 -# define X509V3_R_BAD_VALUE 171 -# define X509V3_R_BN_DEC2BN_ERROR 100 -# define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101 -# define X509V3_R_DIRNAME_ERROR 149 -# define X509V3_R_DISTPOINT_ALREADY_SET 160 -# define X509V3_R_DUPLICATE_ZONE_ID 133 -# define X509V3_R_EMPTY_KEY_USAGE 169 -# define X509V3_R_ERROR_CONVERTING_ZONE 131 -# define X509V3_R_ERROR_CREATING_EXTENSION 144 -# define X509V3_R_ERROR_IN_EXTENSION 128 -# define X509V3_R_EXPECTED_A_SECTION_NAME 137 -# define X509V3_R_EXTENSION_EXISTS 145 -# define X509V3_R_EXTENSION_NAME_ERROR 115 -# define X509V3_R_EXTENSION_NOT_FOUND 102 -# define X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED 103 -# define X509V3_R_EXTENSION_VALUE_ERROR 116 -# define X509V3_R_ILLEGAL_EMPTY_EXTENSION 151 -# define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG 152 -# define X509V3_R_INVALID_ASNUMBER 162 -# define X509V3_R_INVALID_ASRANGE 163 -# define X509V3_R_INVALID_BOOLEAN_STRING 104 -# define X509V3_R_INVALID_CERTIFICATE 158 -# define X509V3_R_INVALID_EMPTY_NAME 108 -# define X509V3_R_INVALID_EXTENSION_STRING 105 -# define X509V3_R_INVALID_INHERITANCE 165 -# define X509V3_R_INVALID_IPADDRESS 166 -# define X509V3_R_INVALID_MULTIPLE_RDNS 161 -# define X509V3_R_INVALID_NAME 106 -# define X509V3_R_INVALID_NULL_ARGUMENT 107 -# define X509V3_R_INVALID_NULL_VALUE 109 -# define X509V3_R_INVALID_NUMBER 140 -# define X509V3_R_INVALID_NUMBERS 141 -# define X509V3_R_INVALID_OBJECT_IDENTIFIER 110 -# define X509V3_R_INVALID_OPTION 138 -# define X509V3_R_INVALID_POLICY_IDENTIFIER 134 -# define X509V3_R_INVALID_PROXY_POLICY_SETTING 153 -# define X509V3_R_INVALID_PURPOSE 146 -# define X509V3_R_INVALID_SAFI 164 -# define X509V3_R_INVALID_SECTION 135 -# define X509V3_R_INVALID_SYNTAX 143 -# define X509V3_R_ISSUER_DECODE_ERROR 126 -# define X509V3_R_MISSING_VALUE 124 -# define X509V3_R_NEED_ORGANIZATION_AND_NUMBERS 142 -# define X509V3_R_NEGATIVE_PATHLEN 168 -# define X509V3_R_NO_CONFIG_DATABASE 136 -# define X509V3_R_NO_ISSUER_CERTIFICATE 121 -# define X509V3_R_NO_ISSUER_DETAILS 127 -# define X509V3_R_NO_POLICY_IDENTIFIER 139 -# define X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED 154 -# define X509V3_R_NO_PUBLIC_KEY 114 -# define X509V3_R_NO_SUBJECT_DETAILS 125 -# define X509V3_R_OPERATION_NOT_DEFINED 148 -# define X509V3_R_OTHERNAME_ERROR 147 -# define X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED 155 -# define X509V3_R_POLICY_PATH_LENGTH 156 -# define X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED 157 -# define X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY 159 -# define X509V3_R_PURPOSE_NOT_UNIQUE 173 -# define X509V3_R_SECTION_NOT_FOUND 150 -# define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS 122 -# define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID 123 -# define X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT 111 -# define X509V3_R_UNKNOWN_EXTENSION 129 -# define X509V3_R_UNKNOWN_EXTENSION_NAME 130 -# define X509V3_R_UNKNOWN_OPTION 120 -# define X509V3_R_UNKNOWN_VALUE 172 -# define X509V3_R_UNSUPPORTED_OPTION 117 -# define X509V3_R_UNSUPPORTED_TYPE 167 -# define X509V3_R_USER_TOO_LONG 132 - -#endif diff --git a/libs/openssl-3.6.0-beta1/arm64/lib/cmake/OpenSSL/OpenSSLConfig.cmake b/libs/openssl-3.6.0-beta1/arm64/lib/cmake/OpenSSL/OpenSSLConfig.cmake deleted file mode 100644 index 1e48da4..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/lib/cmake/OpenSSL/OpenSSLConfig.cmake +++ /dev/null @@ -1,161 +0,0 @@ -# Generated by OpenSSL - -# Commands may need to know the format version. -set(CMAKE_IMPORT_FILE_VERSION 1) - -# Avoid duplicate find_package() -set(_ossl_expected_targets OpenSSL::Crypto OpenSSL::SSL - OpenSSL::applink) -set(_ossl_defined_targets) -set(_ossl_undefined_targets) -foreach(t IN LISTS _ossl_expected_targets) - if(TARGET "${t}") - LIST(APPEND _ossl_defined_targets "${t}") - else() - LIST(APPEND _ossl_undefined_targets "${t}") - endif() -endforeach() -message(DEBUG "_ossl_expected_targets = ${_ossl_expected_targets}") -message(DEBUG "_ossl_defined_targets = ${_ossl_defined_targets}") -message(DEBUG "_ossl_undefined_targets = ${_ossl_undefined_targets}") -if(NOT _ossl_undefined_targets) - # All targets are defined, we're good, just undo everything and return - unset(_ossl_expected_targets) - unset(_ossl_defined_targets) - unset(_ossl_undefined_targets) - unset(CMAKE_IMPORT_FILE_VERSION) - return() -endif() -if(_ossl_defined_targets) - # We have a mix of defined and undefined targets. This is hard to reconcile, - # and probably the result of another config, or FindOpenSSL.cmake having been - # called, or whatever. Therefore, the best course of action is to quit with a - # hard error. - message(FATAL_ERROR "Some targets defined, others not:\nNot defined: ${_ossl_undefined_targets}\nDefined: ${_ossl_defined_targets}") -endif() -unset(_ossl_expected_targets) -unset(_ossl_defined_targets) -unset(_ossl_undefined_targets) - - -# Set up the import path, so all other import paths are made relative this file -get_filename_component(_ossl_prefix "${CMAKE_CURRENT_LIST_FILE}" PATH) -get_filename_component(_ossl_prefix "${_ossl_prefix}" PATH) -get_filename_component(_ossl_prefix "${_ossl_prefix}" PATH) -get_filename_component(_ossl_prefix "${_ossl_prefix}" PATH) - -if(_ossl_prefix STREQUAL "/") - set(_ossl_prefix "") -endif() - - -if(OPENSSL_USE_STATIC_LIBS) - set(_ossl_use_static_libs True) -elseif(DEFINED OPENSSL_USE_STATIC_LIBS) - # We know OPENSSL_USE_STATIC_LIBS is defined and False - if(_ossl_use_static_libs) - # OPENSSL_USE_STATIC_LIBS is explicitly false, indicating that shared libraries are - # required. However, _ossl_use_static_libs indicates that no shared libraries are - # available. The best course of action is to simply return and leave it to CMake to - # use another OpenSSL config. - unset(_ossl_use_static_libs) - unset(CMAKE_IMPORT_FILE_VERSION) - return() - endif() -endif() - -# Version, copied from what find_package() gives, for compatibility with FindOpenSSL.cmake -set(OPENSSL_VERSION "${OpenSSL_VERSION}") -set(OPENSSL_VERSION_MAJOR "${OpenSSL_VERSION_MAJOR}") -set(OPENSSL_VERSION_MINOR "${OpenSSL_VERSION_MINOR}") -set(OPENSSL_VERSION_FIX "${OpenSSL_VERSION_PATCH}") -set(OPENSSL_FOUND YES) - -# Directories and names -set(OPENSSL_LIBRARY_DIR "${_ossl_prefix}/lib") -set(OPENSSL_INCLUDE_DIR "${_ossl_prefix}/include") -set(OPENSSL_ENGINES_DIR "${_ossl_prefix}/lib/engines-3") -set(OPENSSL_MODULES_DIR "${_ossl_prefix}/lib/ossl-modules") -set(OPENSSL_RUNTIME_DIR "${_ossl_prefix}/bin") - -set(OPENSSL_APPLINK_SOURCE "${_ossl_prefix}/include/openssl/applink.c") - -set(OPENSSL_PROGRAM "${OPENSSL_RUNTIME_DIR}/openssl.exe") - -# Set up the imported targets -if(_ossl_use_static_libs) - - add_library(OpenSSL::Crypto STATIC IMPORTED) - add_library(OpenSSL::SSL STATIC IMPORTED) - - set(OPENSSL_LIBCRYPTO_STATIC "${OPENSSL_LIBRARY_DIR}/libcrypto_static.lib") - set(OPENSSL_LIBCRYPTO_DEPENDENCIES ws2_32.lib gdi32.lib advapi32.lib crypt32.lib user32.lib) - set_target_properties(OpenSSL::Crypto PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION ${OPENSSL_LIBCRYPTO_STATIC}) - set_property(TARGET OpenSSL::Crypto - PROPERTY INTERFACE_LINK_LIBRARIES ${OPENSSL_LIBCRYPTO_DEPENDENCIES}) - - set(OPENSSL_LIBSSL_STATIC "${OPENSSL_LIBRARY_DIR}/libssl_static.lib") - set(OPENSSL_LIBSSL_DEPENDENCIES OpenSSL::Crypto) - set_target_properties(OpenSSL::SSL PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION ${OPENSSL_LIBSSL_STATIC}) - set_property(TARGET OpenSSL::SSL - PROPERTY INTERFACE_LINK_LIBRARIES ${OPENSSL_LIBSSL_DEPENDENCIES}) - - # Directories and names compatible with CMake's FindOpenSSL.cmake - set(OPENSSL_CRYPTO_LIBRARY ${OPENSSL_LIBCRYPTO_STATIC}) - set(OPENSSL_CRYPTO_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_LIBCRYPTO_DEPENDENCIES}) - set(OPENSSL_SSL_LIBRARY ${OPENSSL_LIBSSL_STATIC}) - set(OPENSSL_SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_LIBSSL_DEPENDENCIES}) - set(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_LIBSSL_DEPENDENCIES} ${OPENSSL_LIBCRYPTO_DEPENDENCIES}) - -else() - - add_library(OpenSSL::Crypto SHARED IMPORTED) - add_library(OpenSSL::SSL SHARED IMPORTED) - - set(OPENSSL_LIBCRYPTO_SHARED "${OPENSSL_RUNTIME_DIR}/libcrypto-3-arm64.dll") - set(OPENSSL_LIBCRYPTO_IMPORT "${OPENSSL_LIBRARY_DIR}/libcrypto.lib") - set(OPENSSL_LIBCRYPTO_DEPENDENCIES ) - set_target_properties(OpenSSL::Crypto PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_IMPLIB ${OPENSSL_LIBCRYPTO_IMPORT} - IMPORTED_LOCATION ${OPENSSL_LIBCRYPTO_SHARED}) - set_property(TARGET OpenSSL::Crypto - PROPERTY INTERFACE_LINK_LIBRARIES ${OPENSSL_LIBCRYPTO_DEPENDENCIES}) - - set(OPENSSL_LIBSSL_SHARED "${OPENSSL_RUNTIME_DIR}/libssl-3-arm64.dll") - set(OPENSSL_LIBSSL_IMPORT "${OPENSSL_LIBRARY_DIR}/libssl.lib") - set(OPENSSL_LIBSSL_DEPENDENCIES OpenSSL::Crypto ) - set_target_properties(OpenSSL::SSL PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_IMPLIB ${OPENSSL_LIBSSL_IMPORT} - IMPORTED_LOCATION ${OPENSSL_LIBSSL_SHARED}) - set_property(TARGET OpenSSL::SSL - PROPERTY INTERFACE_LINK_LIBRARIES ${OPENSSL_LIBSSL_DEPENDENCIES}) - - # Directories and names compatible with CMake's FindOpenSSL.cmake - set(OPENSSL_CRYPTO_LIBRARY ${OPENSSL_LIBCRYPTO_IMPORT}) - set(OPENSSL_CRYPTO_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_LIBCRYPTO_DEPENDENCIES}) - set(OPENSSL_SSL_LIBRARY ${OPENSSL_LIBSSL_IMPORT}) - set(OPENSSL_SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_LIBSSL_DEPENDENCIES}) - set(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_LIBSSL_DEPENDENCIES} ${OPENSSL_LIBCRYPTO_DEPENDENCIES}) - - -endif() - -set_target_properties(OpenSSL::Crypto PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${OPENSSL_INCLUDE_DIR}") -set_target_properties(OpenSSL::SSL PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${OPENSSL_INCLUDE_DIR}") - - -add_library(OpenSSL::applink INTERFACE IMPORTED) -set_property(TARGET OpenSSL::applink PROPERTY - INTERFACE_SOURCES "${OPENSSL_APPLINK_SOURCE}") - - -unset(_ossl_prefix) -unset(_ossl_use_static_libs) diff --git a/libs/openssl-3.6.0-beta1/arm64/lib/cmake/OpenSSL/OpenSSLConfigVersion.cmake b/libs/openssl-3.6.0-beta1/arm64/lib/cmake/OpenSSL/OpenSSLConfigVersion.cmake deleted file mode 100644 index 44584c6..0000000 --- a/libs/openssl-3.6.0-beta1/arm64/lib/cmake/OpenSSL/OpenSSLConfigVersion.cmake +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by OpenSSL - -set(PACKAGE_VERSION 3.6.0) - -if(NOT PACKAGE_FIND_VERSION) - # find_package() was called without any version information. This is assumed to - # mean that the caller accepts whatever they get. - set(PACKAGE_VERSION_COMPATIBLE 1) -elseif(PACKAGE_FIND_VERSION_MAJOR LESS 3 - OR PACKAGE_FIND_VERSION VERSION_GREATER 3.6.0) - set(PACKAGE_VERSION_UNSUITABLE 1) -else() - set(PACKAGE_VERSION_COMPATIBLE 1) - if(PACKAGE_FIND_VERSION VERSION_EQUAL 3.6.0) - set(PACKAGE_VERSION_EXACT 1) - endif() -endif() diff --git a/libs/openssl-3.6.0-beta1/arm64/lib/engines-3/capi.dll b/libs/openssl-3.6.0-beta1/arm64/lib/engines-3/capi.dll deleted file mode 100644 index b92eda9..0000000 Binary files a/libs/openssl-3.6.0-beta1/arm64/lib/engines-3/capi.dll and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/arm64/lib/engines-3/capi.pdb b/libs/openssl-3.6.0-beta1/arm64/lib/engines-3/capi.pdb deleted file mode 100644 index 0a2121b..0000000 Binary files a/libs/openssl-3.6.0-beta1/arm64/lib/engines-3/capi.pdb and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/arm64/lib/engines-3/loader_attic.dll b/libs/openssl-3.6.0-beta1/arm64/lib/engines-3/loader_attic.dll deleted file mode 100644 index e31c11d..0000000 Binary files a/libs/openssl-3.6.0-beta1/arm64/lib/engines-3/loader_attic.dll and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/arm64/lib/engines-3/loader_attic.pdb b/libs/openssl-3.6.0-beta1/arm64/lib/engines-3/loader_attic.pdb deleted file mode 100644 index dafada5..0000000 Binary files a/libs/openssl-3.6.0-beta1/arm64/lib/engines-3/loader_attic.pdb and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/arm64/lib/engines-3/padlock.dll b/libs/openssl-3.6.0-beta1/arm64/lib/engines-3/padlock.dll deleted file mode 100644 index e3ca94b..0000000 Binary files a/libs/openssl-3.6.0-beta1/arm64/lib/engines-3/padlock.dll and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/arm64/lib/engines-3/padlock.pdb b/libs/openssl-3.6.0-beta1/arm64/lib/engines-3/padlock.pdb deleted file mode 100644 index d0a6e76..0000000 Binary files a/libs/openssl-3.6.0-beta1/arm64/lib/engines-3/padlock.pdb and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/arm64/lib/libcrypto.lib b/libs/openssl-3.6.0-beta1/arm64/lib/libcrypto.lib deleted file mode 100644 index 82bac04..0000000 Binary files a/libs/openssl-3.6.0-beta1/arm64/lib/libcrypto.lib and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/arm64/lib/libssl.lib b/libs/openssl-3.6.0-beta1/arm64/lib/libssl.lib deleted file mode 100644 index ddfdda5..0000000 Binary files a/libs/openssl-3.6.0-beta1/arm64/lib/libssl.lib and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/arm64/lib/ossl-modules/legacy.dll b/libs/openssl-3.6.0-beta1/arm64/lib/ossl-modules/legacy.dll deleted file mode 100644 index d8740e5..0000000 Binary files a/libs/openssl-3.6.0-beta1/arm64/lib/ossl-modules/legacy.dll and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/arm64/lib/ossl-modules/legacy.pdb b/libs/openssl-3.6.0-beta1/arm64/lib/ossl-modules/legacy.pdb deleted file mode 100644 index 844a068..0000000 Binary files a/libs/openssl-3.6.0-beta1/arm64/lib/ossl-modules/legacy.pdb and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/projects/.clang-format b/libs/openssl-3.6.0-beta1/projects/.clang-format deleted file mode 100644 index 989ce30..0000000 --- a/libs/openssl-3.6.0-beta1/projects/.clang-format +++ /dev/null @@ -1,36 +0,0 @@ -# see https://clang.llvm.org/docs/ClangFormatStyleOptions.html ---- -BasedOnStyle: llvm -Language: Cpp -Standard: Cpp11 - -ColumnLimit: 135 - -AccessModifierOffset: -4 -IndentWidth: 4 -UseTab: Never -LineEnding: LF - -BreakBeforeBraces: Stroustrup -# note: ignored due to Stroustrup brace breaking -BraceWrapping: - AfterControlStatement: MultiLine - -AlignEscapedNewlines: Left -AllowShortFunctionsOnASingleLine: Empty -AllowShortLambdasOnASingleLine: Empty -AlwaysBreakTemplateDeclarations: true -BreakConstructorInitializers: BeforeComma -IndentPPDirectives: AfterHash -PointerAlignment: Left -BreakBeforeTernaryOperators: false -IndentRequires: true -SpaceAfterTemplateKeyword: false -StatementMacros: ['TEST_CLASS', 'TEST_METHOD'] -IncludeBlocks: Regroup -IncludeCategories: - - Regex: '' - Priority: 1 diff --git a/libs/openssl-3.6.0-beta1/projects/auxiliary/build/msvc/openssl-3.props b/libs/openssl-3.6.0-beta1/projects/auxiliary/build/msvc/openssl-3.props deleted file mode 100644 index e2d189c..0000000 --- a/libs/openssl-3.6.0-beta1/projects/auxiliary/build/msvc/openssl-3.props +++ /dev/null @@ -1,31 +0,0 @@ - - - - - $(SolutionDir)..\..\..\$(PlatformTarget)\include\ - $(SolutionDir)..\..\..\$(PlatformTarget)\lib\ - $(SolutionDir)..\..\..\$(PlatformTarget)\bin\ - - - - - $(OpenSslIncludeDir.TrimEnd('\\'));%(AdditionalIncludeDirectories) - OPENSSL_SUPPRESS_DEPRECATED;%(PreprocessorDefinitions) - - - $(OpenSslLibraryDir.TrimEnd('\\'));%(AdditionalLibraryDirectories) - libcrypto.lib;libssl.lib;%(AdditionalDependencies) - - - - - $(OpenSslIncludeDir) - - - $(OpenSslLibraryDir) - - - $(OpenSslBinDir) - - - \ No newline at end of file diff --git a/libs/openssl-3.6.0-beta1/projects/examples/msvc/.gitignore b/libs/openssl-3.6.0-beta1/projects/examples/msvc/.gitignore deleted file mode 100644 index ca7a019..0000000 --- a/libs/openssl-3.6.0-beta1/projects/examples/msvc/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.vs/ -*.vcxproj.user -im-build/ -build-target/ diff --git a/libs/openssl-3.6.0-beta1/projects/examples/msvc/cmac.props b/libs/openssl-3.6.0-beta1/projects/examples/msvc/cmac.props deleted file mode 100644 index 86caddd..0000000 --- a/libs/openssl-3.6.0-beta1/projects/examples/msvc/cmac.props +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/libs/openssl-3.6.0-beta1/projects/examples/msvc/cmac.vcxproj b/libs/openssl-3.6.0-beta1/projects/examples/msvc/cmac.vcxproj deleted file mode 100644 index 3f41baa..0000000 --- a/libs/openssl-3.6.0-beta1/projects/examples/msvc/cmac.vcxproj +++ /dev/null @@ -1,163 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 17.0 - Win32Proj - {f4535a44-e028-4687-84d2-ae48312d86bd} - cmac - 10.0 - - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Level3 - true - _DEBUG;%(PreprocessorDefinitions) - true - stdcpplatest - /Zc:throwingNew /Zc:externConstexpr /Zc:__cplusplus %(AdditionalOptions) - true - true - $(IntDir)%(RelativeDir) - - - Console - true - - - - - Level3 - true - true - true - NDEBUG;%(PreprocessorDefinitions) - true - stdcpplatest - /Zc:throwingNew /Zc:externConstexpr /Zc:__cplusplus %(AdditionalOptions) - true - true - $(IntDir)%(RelativeDir) - - - Console - true - true - true - - - - - Level3 - true - _DEBUG;%(PreprocessorDefinitions) - true - stdcpplatest - /Zc:throwingNew /Zc:externConstexpr /Zc:__cplusplus %(AdditionalOptions) - true - true - $(IntDir)%(RelativeDir) - - - Console - true - - - - - Level3 - true - true - true - NDEBUG;%(PreprocessorDefinitions) - true - stdcpplatest - /Zc:throwingNew /Zc:externConstexpr /Zc:__cplusplus %(AdditionalOptions) - true - true - $(IntDir)%(RelativeDir) - - - Console - true - true - true - - - - - - - - - \ No newline at end of file diff --git a/libs/openssl-3.6.0-beta1/projects/examples/msvc/cmac.vcxproj.filters b/libs/openssl-3.6.0-beta1/projects/examples/msvc/cmac.vcxproj.filters deleted file mode 100644 index 8d14f3b..0000000 --- a/libs/openssl-3.6.0-beta1/projects/examples/msvc/cmac.vcxproj.filters +++ /dev/null @@ -1,22 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Source Files - - - \ No newline at end of file diff --git a/libs/openssl-3.6.0-beta1/projects/examples/msvc/examples.sln b/libs/openssl-3.6.0-beta1/projects/examples/msvc/examples.sln deleted file mode 100644 index b5ec452..0000000 --- a/libs/openssl-3.6.0-beta1/projects/examples/msvc/examples.sln +++ /dev/null @@ -1,38 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.10.35122.118 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cmac", "cmac.vcxproj", "{F4535A44-E028-4687-84D2-AE48312D86BD}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C914AA8D-1F0F-4DE5-A682-496B644808BC}" - ProjectSection(SolutionItems) = preProject - ..\..\.clang-format = ..\..\.clang-format - .gitignore = .gitignore - ..\..\readme.md = ..\..\readme.md - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F4535A44-E028-4687-84D2-AE48312D86BD}.Debug|x64.ActiveCfg = Debug|x64 - {F4535A44-E028-4687-84D2-AE48312D86BD}.Debug|x64.Build.0 = Debug|x64 - {F4535A44-E028-4687-84D2-AE48312D86BD}.Debug|x86.ActiveCfg = Debug|Win32 - {F4535A44-E028-4687-84D2-AE48312D86BD}.Debug|x86.Build.0 = Debug|Win32 - {F4535A44-E028-4687-84D2-AE48312D86BD}.Release|x64.ActiveCfg = Release|x64 - {F4535A44-E028-4687-84D2-AE48312D86BD}.Release|x64.Build.0 = Release|x64 - {F4535A44-E028-4687-84D2-AE48312D86BD}.Release|x86.ActiveCfg = Release|Win32 - {F4535A44-E028-4687-84D2-AE48312D86BD}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {4E19D78C-DF54-43E6-BE8C-FDC282E3F7FC} - EndGlobalSection -EndGlobal diff --git a/libs/openssl-3.6.0-beta1/projects/examples/msvc/examples.sln.props b/libs/openssl-3.6.0-beta1/projects/examples/msvc/examples.sln.props deleted file mode 100644 index 5ea50fb..0000000 --- a/libs/openssl-3.6.0-beta1/projects/examples/msvc/examples.sln.props +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - $(SolutionDir)build-target\$(Platform)\$(Configuration)\ - $(SolutionDir)im-build\$(Platform)\$(ProjectName)\$(Configuration)\ - - - - \ No newline at end of file diff --git a/libs/openssl-3.6.0-beta1/projects/examples/src/cmac.cpp b/libs/openssl-3.6.0-beta1/projects/examples/src/cmac.cpp deleted file mode 100644 index 9e8397c..0000000 --- a/libs/openssl-3.6.0-beta1/projects/examples/src/cmac.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* Simple test program for libcrypto (OpenSSL) CMAC ([found on](https://gist.github.com/enkore/56c756d32197f65ae7769e7f9e0a5d35)) - */ - -import std; -#include - -#include -#include -#include - -template -using fn_constant = std::integral_constant; -using cmac_ptr = std::unique_ptr>; -using cmac_ctx_ptr = std::unique_ptr>; - -int wmain() -{ - cmac_ptr cmac{EVP_MAC_fetch(nullptr, "CMAC", nullptr)}; - if (!cmac) { - return EXIT_FAILURE; - } - cmac_ctx_ptr ctx{EVP_MAC_CTX_new(cmac.get())}; - if (!cmac) { - return EXIT_FAILURE; - } - - /* The underlying cipher to be used */ - const EVP_CIPHER* cipher = EVP_aes_256_cbc(); - const char* cypherName = EVP_CIPHER_get0_name(cipher); - const int keyLength = EVP_CIPHER_get_key_length(cipher); - const OSSL_PARAM params[2] = {OSSL_PARAM_construct_utf8_string(OSSL_MAC_PARAM_CIPHER, const_cast(cypherName), 0), - OSSL_PARAM_construct_end()}; - - std::vector key(keyLength, '\0'); - unsigned int msgLength = 1024 * 1024 * 1024; - std::vector msg(msgLength, '\0'); - - auto t0 = std::chrono::steady_clock::now(); - if (!EVP_MAC_init(ctx.get(), key.data(), key.size(), params)) { - return EXIT_FAILURE; - } - if (!EVP_MAC_update(ctx.get(), msg.data(), msgLength)) { - return EXIT_FAILURE; - } - size_t resultLength = 0; - EVP_MAC_final(ctx.get(), nullptr, &resultLength, 0); - std::vector result(resultLength, '\0'); - if (!EVP_MAC_final(ctx.get(), result.data(), &resultLength, resultLength)) { - return EXIT_FAILURE; - } - auto t1 = std::chrono::steady_clock::now(); - std::chrono::duration tdelta = t1 - t0; - - std::wcout << std::format(L"CMAC-AES-256'd {} bytes in {} ({:.1f} MiB/s)", msgLength, tdelta, msgLength / tdelta.count() / 1024 / 1024); - - return 0; -} diff --git a/libs/openssl-3.6.0-beta1/projects/readme.md b/libs/openssl-3.6.0-beta1/projects/readme.md deleted file mode 100644 index b99d728..0000000 --- a/libs/openssl-3.6.0-beta1/projects/readme.md +++ /dev/null @@ -1,4 +0,0 @@ -The examples are mainly available for anyone to check if the FireDaemon OpenSSL binary distribution works as expected, -and for anyone who wants to understand how OpenSSL can be integrated into a project. - -If you are looking for help integrating OpenSSL into your project, please contact FireDaemon for professional consulting and services. diff --git a/libs/openssl-3.6.0-beta1/ssl/ct_log_list.cnf b/libs/openssl-3.6.0-beta1/ssl/ct_log_list.cnf deleted file mode 100644 index e643cfd..0000000 --- a/libs/openssl-3.6.0-beta1/ssl/ct_log_list.cnf +++ /dev/null @@ -1,9 +0,0 @@ -# This file specifies the Certificate Transparency logs -# that are to be trusted. - -# Google's list of logs can be found here: -# www.certificate-transparency.org/known-logs -# A Python program to convert the log list to OpenSSL's format can be -# found here: -# https://github.com/google/certificate-transparency/blob/master/python/utilities/log_list/print_log_list.py -# Use the "--openssl_output" flag. diff --git a/libs/openssl-3.6.0-beta1/ssl/ct_log_list.cnf.dist b/libs/openssl-3.6.0-beta1/ssl/ct_log_list.cnf.dist deleted file mode 100644 index e643cfd..0000000 --- a/libs/openssl-3.6.0-beta1/ssl/ct_log_list.cnf.dist +++ /dev/null @@ -1,9 +0,0 @@ -# This file specifies the Certificate Transparency logs -# that are to be trusted. - -# Google's list of logs can be found here: -# www.certificate-transparency.org/known-logs -# A Python program to convert the log list to OpenSSL's format can be -# found here: -# https://github.com/google/certificate-transparency/blob/master/python/utilities/log_list/print_log_list.py -# Use the "--openssl_output" flag. diff --git a/libs/openssl-3.6.0-beta1/ssl/misc/CA.pl b/libs/openssl-3.6.0-beta1/ssl/misc/CA.pl deleted file mode 100644 index 941ac02..0000000 --- a/libs/openssl-3.6.0-beta1/ssl/misc/CA.pl +++ /dev/null @@ -1,383 +0,0 @@ -#!/usr/bin/env perl -# Copyright 2000-2025 The OpenSSL Project Authors. All Rights Reserved. -# -# Licensed under the Apache License 2.0 (the "License"). You may not use -# this file except in compliance with the License. You can obtain a copy -# in the file LICENSE in the source distribution or at -# https://www.openssl.org/source/license.html - -# -# Wrapper around the ca to make it easier to use -# -# WARNING: do not edit! -# Generated by makefile from ..\apps\CA.pl.in - -use strict; -use warnings; - -my $verbose = 1; -my @OPENSSL_CMDS = ("req", "ca", "pkcs12", "x509", "verify"); - -my $openssl = $ENV{'OPENSSL'} // "openssl"; -$ENV{'OPENSSL'} = $openssl; -my @openssl = split_val($openssl); - -my $OPENSSL_CONFIG = $ENV{"OPENSSL_CONFIG"} // ""; -my @OPENSSL_CONFIG = split_val($OPENSSL_CONFIG); - -# Command invocations. -my @REQ = (@openssl, "req", @OPENSSL_CONFIG); -my @CA = (@openssl, "ca", @OPENSSL_CONFIG); -my @VERIFY = (@openssl, "verify"); -my @X509 = (@openssl, "x509"); -my @PKCS12 = (@openssl, "pkcs12"); - -# Default values for various configuration settings. -my $CATOP = "./demoCA"; -my $CAKEY = "cakey.pem"; -my $CAREQ = "careq.pem"; -my $CACERT = "cacert.pem"; -my $CACRL = "crl.pem"; -my @DAYS = qw(-days 365); -my @CADAYS = qw(-days 1095); # 3 years -my @EXTENSIONS = qw(-extensions v3_ca); -my @POLICY = qw(-policy policy_anything); -my $NEWKEY = "newkey.pem"; -my $NEWREQ = "newreq.pem"; -my $NEWCERT = "newcert.pem"; -my $NEWP12 = "newcert.p12"; - -# Commandline parsing -my %EXTRA; -my $WHAT = shift @ARGV // ""; -@ARGV = parse_extra(@ARGV); -my $RET = 0; - -sub split_val { - return split_val_win32(@_) if ($^O eq 'MSWin32'); - my ($val) = @_; - my (@ret, @frag); - - # Skip leading whitespace - $val =~ m{\A[ \t]*}ogc; - - # Unix shell-compatible split - # - # Handles backslash escapes outside quotes and - # in double-quoted strings. Parameter and - # command-substitution is silently ignored. - # Bare newlines outside quotes and (trailing) backslashes are disallowed. - - while (1) { - last if (pos($val) == length($val)); - - # The first char is never a SPACE or TAB. Possible matches are: - # 1. Ordinary string fragment - # 2. Single-quoted string - # 3. Double-quoted string - # 4. Backslash escape - # 5. Bare backlash or newline (rejected) - # - if ($val =~ m{\G([^'" \t\n\\]+)}ogc) { - # Ordinary string - push @frag, $1; - } elsif ($val =~ m{\G'([^']*)'}ogc) { - # Single-quoted string - push @frag, $1; - } elsif ($val =~ m{\G"}ogc) { - # Double-quoted string - push @frag, ""; - while (1) { - last if ($val =~ m{\G"}ogc); - if ($val =~ m{\G([^"\\]+)}ogcs) { - # literals - push @frag, $1; - } elsif ($val =~ m{\G.(["\`\$\\])}ogc) { - # backslash-escaped special - push @frag, $1; - } elsif ($val =~ m{\G.(.)}ogcs) { - # backslashed non-special - push @frag, "\\$1" unless $1 eq "\n"; - } else { - die sprintf("Malformed quoted string: %s\n", $val); - } - } - } elsif ($val =~ m{\G\\(.)}ogc) { - # Backslash is unconditional escape outside quoted strings - push @frag, $1 unless $1 eq "\n"; - } else { - die sprintf("Bare backslash or newline in: '%s'\n", $val); - } - # Done if at SPACE, TAB or end, otherwise continue current fragment - # - next unless ($val =~ m{\G(?:[ \t]+|\z)}ogcs); - push @ret, join("", splice(@frag)) if (@frag > 0); - } - # Handle final fragment - push @ret, join("", splice(@frag)) if (@frag > 0); - return @ret; -} - -sub split_val_win32 { - my ($val) = @_; - my (@ret, @frag); - - # Skip leading whitespace - $val =~ m{\A[ \t]*}ogc; - - # Windows-compatible split - # See: "Parsing C++ command-line arguments" in: - # https://learn.microsoft.com/en-us/cpp/cpp/main-function-command-line-args?view=msvc-170 - # - # Backslashes are special only when followed by a double-quote - # Pairs of double-quotes make a single double-quote. - # Closing double-quotes may be omitted. - - while (1) { - last if (pos($val) == length($val)); - - # The first char is never a SPACE or TAB. - # 1. Ordinary string fragment - # 2. Double-quoted string - # 3. Backslashes preceding a double-quote - # 4. Literal backslashes - # 5. Bare newline (rejected) - # - if ($val =~ m{\G([^" \t\n\\]+)}ogc) { - # Ordinary string - push @frag, $1; - } elsif ($val =~ m{\G"}ogc) { - # Double-quoted string - push @frag, ""; - while (1) { - if ($val =~ m{\G("+)}ogc) { - # Two double-quotes make one literal double-quote - my $l = length($1); - push @frag, q{"} x int($l/2) if ($l > 1); - next if ($l % 2 == 0); - last; - } - if ($val =~ m{\G([^"\\]+)}ogc) { - push @frag, $1; - } elsif ($val =~ m{\G((?>[\\]+))(?=")}ogc) { - # Backslashes before a double-quote are escapes - my $l = length($1); - push @frag, q{\\} x int($l / 2); - if ($l % 2 == 1) { - ++pos($val); - push @frag, q{"}; - } - } elsif ($val =~ m{\G((?:(?>[\\]+)[^"\\]+)+)}ogc) { - # Backslashes not before a double-quote are not special - push @frag, $1; - } else { - # Tolerate missing closing double-quote - last; - } - } - } elsif ($val =~ m{\G((?>[\\]+))(?=")}ogc) { - my $l = length($1); - push @frag, q{\\} x int($l / 2); - if ($l % 2 == 1) { - ++pos($val); - push @frag, q{"}; - } - } elsif ($val =~ m{\G([\\]+)}ogc) { - # Backslashes not before a double-quote are not special - push @frag, $1; - } else { - die sprintf("Bare newline in: '%s'\n", $val); - } - # Done if at SPACE, TAB or end, otherwise continue current fragment - # - next unless ($val =~ m{\G(?:[ \t]+|\z)}ogcs); - push @ret, join("", splice(@frag)) if (@frag > 0); - } - # Handle final fragment - push @ret, join("", splice(@frag)) if (@frag); - return @ret; -} - -# Split out "-extra-CMD value", and return new |@ARGV|. Fill in -# |EXTRA{CMD}| with list of values. -sub parse_extra -{ - my @args; - foreach ( @OPENSSL_CMDS ) { - $EXTRA{$_} = []; - } - while (@_) { - my $arg = shift(@_); - if ( $arg !~ m{^-extra-(\w+)$} ) { - push @args, split_val($arg); - next; - } - $arg = $1; - die "Unknown \"-extra-${arg}\" option, exiting\n" - unless grep { $arg eq $_ } @OPENSSL_CMDS; - die "Missing \"-extra-${arg}\" option value, exiting\n" - unless (@_ > 0); - push @{$EXTRA{$arg}}, split_val(shift(@_)); - } - return @args; -} - - -# See if reason for a CRL entry is valid; exit if not. -sub crl_reason_ok -{ - my $r = shift; - - if ($r eq 'unspecified' || $r eq 'keyCompromise' - || $r eq 'CACompromise' || $r eq 'affiliationChanged' - || $r eq 'superseded' || $r eq 'cessationOfOperation' - || $r eq 'certificateHold' || $r eq 'removeFromCRL') { - return 1; - } - print STDERR "Invalid CRL reason; must be one of:\n"; - print STDERR " unspecified, keyCompromise, CACompromise,\n"; - print STDERR " affiliationChanged, superseded, cessationOfOperation\n"; - print STDERR " certificateHold, removeFromCRL"; - exit 1; -} - -# Copy a PEM-format file; return like exit status (zero means ok) -sub copy_pemfile -{ - my ($infile, $outfile, $bound) = @_; - my $found = 0; - - open IN, $infile || die "Cannot open $infile, $!"; - open OUT, ">$outfile" || die "Cannot write to $outfile, $!"; - while () { - $found = 1 if /^-----BEGIN.*$bound/; - print OUT $_ if $found; - $found = 2, last if /^-----END.*$bound/; - } - close IN; - close OUT; - return $found == 2 ? 0 : 1; -} - -# Wrapper around system; useful for debugging. Returns just the exit status -sub run -{ - my ($cmd, @args) = @_; - print "====\n$cmd @args\n" if $verbose; - my $status = system {$cmd} $cmd, @args; - print "==> $status\n====\n" if $verbose; - return $status >> 8; -} - - -if ( $WHAT =~ /^(-\?|-h|-help)$/ ) { - print STDERR <${CATOP}/index.txt"; - close OUT; - open OUT, ">${CATOP}/crlnumber"; - print OUT "01\n"; - close OUT; - # ask user for existing CA certificate - print "CA certificate filename (or enter to create)\n"; - my $FILE; - $FILE = "" unless defined($FILE = ); - $FILE =~ s{\R$}{}; - if ($FILE ne "") { - copy_pemfile($FILE,"${CATOP}/private/$CAKEY", "PRIVATE"); - copy_pemfile($FILE,"${CATOP}/$CACERT", "CERTIFICATE"); - } else { - print "Making CA certificate ...\n"; - $RET = run(@REQ, qw(-new -keyout), "${CATOP}/private/$CAKEY", - "-out", "${CATOP}/$CAREQ", @{$EXTRA{req}}); - $RET = run(@CA, qw(-create_serial -out), "${CATOP}/$CACERT", @CADAYS, - qw(-batch -keyfile), "${CATOP}/private/$CAKEY", "-selfsign", - @EXTENSIONS, "-infiles", "${CATOP}/$CAREQ", @{$EXTRA{ca}}) - if $RET == 0; - print "CA certificate is in ${CATOP}/$CACERT\n" if $RET == 0; - } -} elsif ($WHAT eq '-pkcs12' ) { - my $cname = $ARGV[0]; - $cname = "My Certificate" unless defined $cname; - $RET = run(@PKCS12, "-in", $NEWCERT, "-inkey", $NEWKEY, - "-certfile", "${CATOP}/$CACERT", "-out", $NEWP12, - qw(-export -name), $cname, @{$EXTRA{pkcs12}}); - print "PKCS#12 file is in $NEWP12\n" if $RET == 0; -} elsif ($WHAT eq '-xsign' ) { - $RET = run(@CA, @POLICY, "-infiles", $NEWREQ, @{$EXTRA{ca}}); -} elsif ($WHAT eq '-sign' ) { - $RET = run(@CA, @POLICY, "-out", $NEWCERT, - "-infiles", $NEWREQ, @{$EXTRA{ca}}); - print "Signed certificate is in $NEWCERT\n" if $RET == 0; -} elsif ($WHAT eq '-signCA' ) { - $RET = run(@CA, @POLICY, "-out", $NEWCERT, @EXTENSIONS, - "-infiles", $NEWREQ, @{$EXTRA{ca}}); - print "Signed CA certificate is in $NEWCERT\n" if $RET == 0; -} elsif ($WHAT eq '-signcert' ) { - $RET = run(@X509, qw(-x509toreq -in), $NEWREQ, "-signkey", $NEWREQ, - qw(-out tmp.pem), @{$EXTRA{x509}}); - $RET = run(@CA, @POLICY, "-out", $NEWCERT, - qw(-infiles tmp.pem), @{$EXTRA{ca}}) if $RET == 0; - print "Signed certificate is in $NEWCERT\n" if $RET == 0; -} elsif ($WHAT eq '-verify' ) { - my @files = @ARGV ? @ARGV : ( $NEWCERT ); - foreach my $file (@files) { - my $status = run(@VERIFY, "-CAfile", "${CATOP}/$CACERT", $file, @{$EXTRA{verify}}); - $RET = $status if $status != 0; - } -} elsif ($WHAT eq '-crl' ) { - $RET = run(@CA, qw(-gencrl -out), "${CATOP}/crl/$CACRL", @{$EXTRA{ca}}); - print "Generated CRL is in ${CATOP}/crl/$CACRL\n" if $RET == 0; -} elsif ($WHAT eq '-revoke' ) { - my $cname = $ARGV[0]; - if (!defined $cname) { - print "Certificate filename is required; reason optional.\n"; - exit 1; - } - my @reason; - @reason = ("-crl_reason", $ARGV[1]) - if defined $ARGV[1] && crl_reason_ok($ARGV[1]); - $RET = run(@CA, "-revoke", $cname, @reason, @{$EXTRA{ca}}); -} else { - print STDERR "Unknown arg \"$WHAT\"\n"; - print STDERR "Use -help for help.\n"; - exit 1; -} - -exit $RET; diff --git a/libs/openssl-3.6.0-beta1/ssl/misc/tsget.pl b/libs/openssl-3.6.0-beta1/ssl/misc/tsget.pl deleted file mode 100644 index c55b18e..0000000 --- a/libs/openssl-3.6.0-beta1/ssl/misc/tsget.pl +++ /dev/null @@ -1,200 +0,0 @@ -#!/usr/bin/env perl -# Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved. -# Copyright (c) 2002 The OpenTSA Project. All rights reserved. -# -# Licensed under the Apache License 2.0 (the "License"). You may not use -# this file except in compliance with the License. You can obtain a copy -# in the file LICENSE in the source distribution or at -# https://www.openssl.org/source/license.html - -use strict; -use IO::Handle; -use Getopt::Std; -use File::Basename; -use WWW::Curl::Easy; - -use vars qw(%options); - -# Callback for reading the body. -sub read_body { - my ($maxlength, $state) = @_; - my $return_data = ""; - my $data_len = length ${$state->{data}}; - if ($state->{bytes} < $data_len) { - $data_len = $data_len - $state->{bytes}; - $data_len = $maxlength if $data_len > $maxlength; - $return_data = substr ${$state->{data}}, $state->{bytes}, $data_len; - $state->{bytes} += $data_len; - } - return $return_data; -} - -# Callback for writing the body into a variable. -sub write_body { - my ($data, $pointer) = @_; - ${$pointer} .= $data; - return length($data); -} - -# Initialise a new Curl object. -sub create_curl { - my $url = shift; - - # Create Curl object. - my $curl = WWW::Curl::Easy::new(); - - # Error-handling related options. - $curl->setopt(CURLOPT_VERBOSE, 1) if $options{d}; - $curl->setopt(CURLOPT_FAILONERROR, 1); - $curl->setopt(CURLOPT_USERAGENT, - "OpenTSA tsget.pl/openssl-3.6.0-beta1"); - - # Options for POST method. - $curl->setopt(CURLOPT_UPLOAD, 1); - $curl->setopt(CURLOPT_CUSTOMREQUEST, "POST"); - $curl->setopt(CURLOPT_HTTPHEADER, - ["Content-Type: application/timestamp-query", - "Accept: application/timestamp-reply,application/timestamp-response"]); - $curl->setopt(CURLOPT_READFUNCTION, \&read_body); - $curl->setopt(CURLOPT_HEADERFUNCTION, sub { return length($_[0]); }); - - # Options for getting the result. - $curl->setopt(CURLOPT_WRITEFUNCTION, \&write_body); - - # SSL related options. - $curl->setopt(CURLOPT_SSLKEYTYPE, "PEM"); - $curl->setopt(CURLOPT_SSL_VERIFYPEER, 1); # Verify server's certificate. - $curl->setopt(CURLOPT_SSL_VERIFYHOST, 2); # Check server's CN. - $curl->setopt(CURLOPT_SSLKEY, $options{k}) if defined($options{k}); - $curl->setopt(CURLOPT_SSLKEYPASSWD, $options{p}) if defined($options{p}); - $curl->setopt(CURLOPT_SSLCERT, $options{c}) if defined($options{c}); - $curl->setopt(CURLOPT_CAINFO, $options{C}) if defined($options{C}); - $curl->setopt(CURLOPT_CAPATH, $options{P}) if defined($options{P}); - $curl->setopt(CURLOPT_RANDOM_FILE, $options{r}) if defined($options{r}); - $curl->setopt(CURLOPT_EGDSOCKET, $options{g}) if defined($options{g}); - - # Setting destination. - $curl->setopt(CURLOPT_URL, $url); - - return $curl; -} - -# Send a request and returns the body back. -sub get_timestamp { - my $curl = shift; - my $body = shift; - my $ts_body; - local $::error_buf; - - # Error-handling related options. - $curl->setopt(CURLOPT_ERRORBUFFER, "::error_buf"); - - # Options for POST method. - $curl->setopt(CURLOPT_INFILE, {data => $body, bytes => 0}); - $curl->setopt(CURLOPT_INFILESIZE, length(${$body})); - - # Options for getting the result. - $curl->setopt(CURLOPT_FILE, \$ts_body); - - # Send the request... - my $error_code = $curl->perform(); - my $error_string; - if ($error_code != 0) { - my $http_code = $curl->getinfo(CURLINFO_HTTP_CODE); - $error_string = "could not get timestamp"; - $error_string .= ", http code: $http_code" unless $http_code == 0; - $error_string .= ", curl code: $error_code"; - $error_string .= " ($::error_buf)" if defined($::error_buf); - } else { - my $ct = $curl->getinfo(CURLINFO_CONTENT_TYPE); - if (lc($ct) ne "application/timestamp-reply" - && lc($ct) ne "application/timestamp-response") { - $error_string = "unexpected content type returned: $ct"; - } - } - return ($ts_body, $error_string); - -} - -# Print usage information and exists. -sub usage { - - print STDERR "usage: $0 -h [-e ] [-o ] "; - print STDERR "[-v] [-d] [-k ] [-p ] "; - print STDERR "[-c ] [-C ] [-P ] "; - print STDERR "[-r ] [-g ] []...\n"; - exit 1; -} - -# ---------------------------------------------------------------------- -# Main program -# ---------------------------------------------------------------------- - -# Getting command-line options (default comes from TSGET environment variable). -my $getopt_arg = "h:e:o:vdk:p:c:C:P:r:g:"; -if (exists $ENV{TSGET}) { - my @old_argv = @ARGV; - @ARGV = split /\s+/, $ENV{TSGET}; - getopts($getopt_arg, \%options) or usage; - @ARGV = @old_argv; -} -getopts($getopt_arg, \%options) or usage; - -# Checking argument consistency. -if (!exists($options{h}) || (@ARGV == 0 && !exists($options{o})) - || (@ARGV > 1 && exists($options{o}))) { - print STDERR "Inconsistent command line options.\n"; - usage; -} -# Setting defaults. -@ARGV = ("-") unless @ARGV != 0; -$options{e} = ".tsr" unless defined($options{e}); - -# Processing requests. -my $curl = create_curl $options{h}; -undef $/; # For reading whole files. -REQUEST: foreach (@ARGV) { - my $input = $_; - my ($base, $path) = fileparse($input, '\.[^.]*'); - my $output_base = $base . $options{e}; - my $output = defined($options{o}) ? $options{o} : $path . $output_base; - - STDERR->printflush("$input: ") if $options{v}; - # Read request. - my $body; - if ($input eq "-") { - # Read the request from STDIN; - $body = ; - } else { - # Read the request from file. - open INPUT, "<" . $input - or warn("$input: could not open input file: $!\n"), next REQUEST; - $body = ; - close INPUT - or warn("$input: could not close input file: $!\n"), next REQUEST; - } - - # Send request. - STDERR->printflush("sending request") if $options{v}; - - my ($ts_body, $error) = get_timestamp $curl, \$body; - if (defined($error)) { - die "$input: fatal error: $error\n"; - } - STDERR->printflush(", reply received") if $options{v}; - - # Write response. - if ($output eq "-") { - # Write to STDOUT. - print $ts_body; - } else { - # Write to file. - open OUTPUT, ">", $output - or warn("$output: could not open output file: $!\n"), next REQUEST; - print OUTPUT $ts_body; - close OUTPUT - or warn("$output: could not close output file: $!\n"), next REQUEST; - } - STDERR->printflush(", $output written.\n") if $options{v}; -} -$curl->cleanup(); diff --git a/libs/openssl-3.6.0-beta1/ssl/openssl.cnf b/libs/openssl-3.6.0-beta1/ssl/openssl.cnf deleted file mode 100644 index abace0e..0000000 --- a/libs/openssl-3.6.0-beta1/ssl/openssl.cnf +++ /dev/null @@ -1,390 +0,0 @@ -# -# OpenSSL example configuration file. -# See doc/man5/config.pod for more info. -# -# This is mostly being used for generation of certificate requests, -# but may be used for auto loading of providers - -# Note that you can include other files from the main configuration -# file using the .include directive. -#.include filename - -# This definition stops the following lines choking if HOME isn't -# defined. -HOME = . - -# Use this in order to automatically load providers. -openssl_conf = openssl_init - -# Comment out the next line to ignore configuration errors -config_diagnostics = 1 - -# Extra OBJECT IDENTIFIER info: -# oid_file = $ENV::HOME/.oid -oid_section = new_oids - -# To use this configuration file with the "-extfile" option of the -# "openssl x509" utility, name here the section containing the -# X.509v3 extensions to use: -# extensions = -# (Alternatively, use a configuration file that has only -# X.509v3 extensions in its main [= default] section.) - -[ new_oids ] -# We can add new OIDs in here for use by 'ca', 'req' and 'ts'. -# Add a simple OID like this: -# testoid1=1.2.3.4 -# Or use config file substitution like this: -# testoid2=${testoid1}.5.6 - -# Policies used by the TSA examples. -tsa_policy1 = 1.2.3.4.1 -tsa_policy2 = 1.2.3.4.5.6 -tsa_policy3 = 1.2.3.4.5.7 - -# For FIPS -# Optionally include a file that is generated by the OpenSSL fipsinstall -# application. This file contains configuration data required by the OpenSSL -# fips provider. It contains a named section e.g. [fips_sect] which is -# referenced from the [provider_sect] below. -# Refer to the OpenSSL security policy for more information. -# .include fipsmodule.cnf - -[openssl_init] -providers = provider_sect - -# List of providers to load -[provider_sect] -default = default_sect -# The fips section name should match the section name inside the -# included fipsmodule.cnf. -# fips = fips_sect - -# If no providers are activated explicitly, the default one is activated implicitly. -# See man 7 OSSL_PROVIDER-default for more details. -# -# If you add a section explicitly activating any other provider(s), you most -# probably need to explicitly activate the default provider, otherwise it -# becomes unavailable in openssl. As a consequence applications depending on -# OpenSSL may not work correctly which could lead to significant system -# problems including inability to remotely access the system. -[default_sect] -# activate = 1 - - -#################################################################### -[ ca ] -default_ca = CA_default # The default ca section - -#################################################################### -[ CA_default ] - -dir = ./demoCA # Where everything is kept -certs = $dir/certs # Where the issued certs are kept -crl_dir = $dir/crl # Where the issued crl are kept -database = $dir/index.txt # database index file. -#unique_subject = no # Set to 'no' to allow creation of - # several certs with same subject. -new_certs_dir = $dir/newcerts # default place for new certs. - -certificate = $dir/cacert.pem # The CA certificate -serial = $dir/serial # The current serial number -crlnumber = $dir/crlnumber # the current crl number - # must be commented out to leave a V1 CRL -crl = $dir/crl.pem # The current CRL -private_key = $dir/private/cakey.pem # The private key - -x509_extensions = usr_cert # The extensions to add to the cert - -# Comment out the following two lines for the "traditional" -# (and highly broken) format. -name_opt = ca_default # Subject Name options -cert_opt = ca_default # Certificate field options - -# Extension copying option: use with caution. -# copy_extensions = copy - -# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs -# so this is commented out by default to leave a V1 CRL. -# crlnumber must also be commented out to leave a V1 CRL. -# crl_extensions = crl_ext - -default_days = 365 # how long to certify for -default_crl_days= 30 # how long before next CRL -default_md = default # use public key default MD -preserve = no # keep passed DN ordering - -# A few difference way of specifying how similar the request should look -# For type CA, the listed attributes must be the same, and the optional -# and supplied fields are just that :-) -policy = policy_match - -# For the CA policy -[ policy_match ] -countryName = match -stateOrProvinceName = match -organizationName = match -organizationalUnitName = optional -commonName = supplied -emailAddress = optional - -# For the 'anything' policy -# At this point in time, you must list all acceptable 'object' -# types. -[ policy_anything ] -countryName = optional -stateOrProvinceName = optional -localityName = optional -organizationName = optional -organizationalUnitName = optional -commonName = supplied -emailAddress = optional - -#################################################################### -[ req ] -default_bits = 2048 -default_keyfile = privkey.pem -distinguished_name = req_distinguished_name -attributes = req_attributes -x509_extensions = v3_ca # The extensions to add to the self signed cert - -# Passwords for private keys if not present they will be prompted for -# input_password = secret -# output_password = secret - -# This sets a mask for permitted string types. There are several options. -# default: PrintableString, T61String, BMPString. -# pkix : PrintableString, BMPString (PKIX recommendation before 2004) -# utf8only: only UTF8Strings (PKIX recommendation after 2004). -# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). -# MASK:XXXX a literal mask value. -# WARNING: ancient versions of Netscape crash on BMPStrings or UTF8Strings. -string_mask = utf8only - -# req_extensions = v3_req # The extensions to add to a certificate request - -[ req_distinguished_name ] -countryName = Country Name (2 letter code) -countryName_default = AU -countryName_min = 2 -countryName_max = 2 - -stateOrProvinceName = State or Province Name (full name) -stateOrProvinceName_default = Some-State - -localityName = Locality Name (eg, city) - -0.organizationName = Organization Name (eg, company) -0.organizationName_default = Internet Widgits Pty Ltd - -# we can do this but it is not needed normally :-) -#1.organizationName = Second Organization Name (eg, company) -#1.organizationName_default = World Wide Web Pty Ltd - -organizationalUnitName = Organizational Unit Name (eg, section) -#organizationalUnitName_default = - -commonName = Common Name (e.g. server FQDN or YOUR name) -commonName_max = 64 - -emailAddress = Email Address -emailAddress_max = 64 - -# SET-ex3 = SET extension number 3 - -[ req_attributes ] -challengePassword = A challenge password -challengePassword_min = 4 -challengePassword_max = 20 - -unstructuredName = An optional company name - -[ usr_cert ] - -# These extensions are added when 'ca' signs a request. - -# This goes against PKIX guidelines but some CAs do it and some software -# requires this to avoid interpreting an end user certificate as a CA. - -basicConstraints=CA:FALSE - -# This is typical in keyUsage for a client certificate. -# keyUsage = nonRepudiation, digitalSignature, keyEncipherment - -# PKIX recommendations harmless if included in all certificates. -subjectKeyIdentifier=hash -authorityKeyIdentifier=keyid,issuer - -# This stuff is for subjectAltName and issuerAltname. -# Import the email address. -# subjectAltName=email:copy -# An alternative to produce certificates that aren't -# deprecated according to PKIX. -# subjectAltName=email:move - -# Copy subject details -# issuerAltName=issuer:copy - -# This is required for TSA certificates. -# extendedKeyUsage = critical,timeStamping - -[ v3_req ] - -# Extensions to add to a certificate request - -basicConstraints = CA:FALSE -keyUsage = nonRepudiation, digitalSignature, keyEncipherment - -[ v3_ca ] - - -# Extensions for a typical CA - - -# PKIX recommendation. - -subjectKeyIdentifier=hash - -authorityKeyIdentifier=keyid:always,issuer - -basicConstraints = critical,CA:true - -# Key usage: this is typical for a CA certificate. However since it will -# prevent it being used as an test self-signed certificate it is best -# left out by default. -# keyUsage = cRLSign, keyCertSign - -# Include email address in subject alt name: another PKIX recommendation -# subjectAltName=email:copy -# Copy issuer details -# issuerAltName=issuer:copy - -# DER hex encoding of an extension: beware experts only! -# obj=DER:02:03 -# Where 'obj' is a standard or added object -# You can even override a supported extension: -# basicConstraints= critical, DER:30:03:01:01:FF - -[ crl_ext ] - -# CRL extensions. -# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. - -# issuerAltName=issuer:copy -authorityKeyIdentifier=keyid:always - -[ proxy_cert_ext ] -# These extensions should be added when creating a proxy certificate - -# This goes against PKIX guidelines but some CAs do it and some software -# requires this to avoid interpreting an end user certificate as a CA. - -basicConstraints=CA:FALSE - -# This is typical in keyUsage for a client certificate. -# keyUsage = nonRepudiation, digitalSignature, keyEncipherment - -# PKIX recommendations harmless if included in all certificates. -subjectKeyIdentifier=hash -authorityKeyIdentifier=keyid,issuer - -# This stuff is for subjectAltName and issuerAltname. -# Import the email address. -# subjectAltName=email:copy -# An alternative to produce certificates that aren't -# deprecated according to PKIX. -# subjectAltName=email:move - -# Copy subject details -# issuerAltName=issuer:copy - -# This really needs to be in place for it to be a proxy certificate. -proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo - -#################################################################### -[ tsa ] - -default_tsa = tsa_config1 # the default TSA section - -[ tsa_config1 ] - -# These are used by the TSA reply generation only. -dir = ./demoCA # TSA root directory -serial = $dir/tsaserial # The current serial number (mandatory) -crypto_device = builtin # OpenSSL engine to use for signing -signer_cert = $dir/tsacert.pem # The TSA signing certificate - # (optional) -certs = $dir/cacert.pem # Certificate chain to include in reply - # (optional) -signer_key = $dir/private/tsakey.pem # The TSA private key (optional) -signer_digest = sha256 # Signing digest to use. (Optional) -default_policy = tsa_policy1 # Policy if request did not specify it - # (optional) -other_policies = tsa_policy2, tsa_policy3 # acceptable policies (optional) -digests = sha1, sha256, sha384, sha512 # Acceptable message digests (mandatory) -accuracy = secs:1, millisecs:500, microsecs:100 # (optional) -clock_precision_digits = 0 # number of digits after dot. (optional) -ordering = yes # Is ordering defined for timestamps? - # (optional, default: no) -tsa_name = yes # Must the TSA name be included in the reply? - # (optional, default: no) -ess_cert_id_chain = no # Must the ESS cert id chain be included? - # (optional, default: no) -ess_cert_id_alg = sha256 # algorithm to compute certificate - # identifier (optional, default: sha256) - -[insta] # CMP using Insta Demo CA -# Message transfer -server = pki.certificate.fi:8700 -# proxy = # set this as far as needed, e.g., http://192.168.1.1:8080 -# tls_use = 0 -path = pkix/ - -# Server authentication -recipient = "/C=FI/O=Insta Demo/CN=Insta Demo CA" # or set srvcert or issuer -ignore_keyusage = 1 # quirk needed to accept Insta CA cert not including digitalsignature -unprotected_errors = 1 # quirk needed to accept negative responses possibly not protected -extracertsout = insta.extracerts.pem - -# Client authentication -ref = 3078 # user identification -secret = pass:insta # can be used for both client and server side - -# Generic message options -cmd = ir # default operation, can be overridden on cmd line with, e.g., kur - -# Certificate enrollment -subject = "/CN=openssl-cmp-test" -newkey = insta.priv.pem -out_trusted = apps/insta.ca.crt # does not include keyUsage digitalSignature -certout = insta.cert.pem - -[pbm] # Password-based protection for Insta CA -# Server and client authentication -ref = $insta::ref # 3078 -secret = $insta::secret # pass:insta - -[signature] # Signature-based protection for Insta CA -# Server authentication -trusted = $insta::out_trusted # apps/insta.ca.crt - -# Client authentication -secret = # disable PBM -key = $insta::newkey # insta.priv.pem -cert = $insta::certout # insta.cert.pem - -[ir] -cmd = ir - -[cr] -cmd = cr - -[kur] -# Certificate update -cmd = kur -oldcert = $insta::certout # insta.cert.pem - -[rr] -# Certificate revocation -cmd = rr -oldcert = $insta::certout # insta.cert.pem diff --git a/libs/openssl-3.6.0-beta1/ssl/openssl.cnf.dist b/libs/openssl-3.6.0-beta1/ssl/openssl.cnf.dist deleted file mode 100644 index abace0e..0000000 --- a/libs/openssl-3.6.0-beta1/ssl/openssl.cnf.dist +++ /dev/null @@ -1,390 +0,0 @@ -# -# OpenSSL example configuration file. -# See doc/man5/config.pod for more info. -# -# This is mostly being used for generation of certificate requests, -# but may be used for auto loading of providers - -# Note that you can include other files from the main configuration -# file using the .include directive. -#.include filename - -# This definition stops the following lines choking if HOME isn't -# defined. -HOME = . - -# Use this in order to automatically load providers. -openssl_conf = openssl_init - -# Comment out the next line to ignore configuration errors -config_diagnostics = 1 - -# Extra OBJECT IDENTIFIER info: -# oid_file = $ENV::HOME/.oid -oid_section = new_oids - -# To use this configuration file with the "-extfile" option of the -# "openssl x509" utility, name here the section containing the -# X.509v3 extensions to use: -# extensions = -# (Alternatively, use a configuration file that has only -# X.509v3 extensions in its main [= default] section.) - -[ new_oids ] -# We can add new OIDs in here for use by 'ca', 'req' and 'ts'. -# Add a simple OID like this: -# testoid1=1.2.3.4 -# Or use config file substitution like this: -# testoid2=${testoid1}.5.6 - -# Policies used by the TSA examples. -tsa_policy1 = 1.2.3.4.1 -tsa_policy2 = 1.2.3.4.5.6 -tsa_policy3 = 1.2.3.4.5.7 - -# For FIPS -# Optionally include a file that is generated by the OpenSSL fipsinstall -# application. This file contains configuration data required by the OpenSSL -# fips provider. It contains a named section e.g. [fips_sect] which is -# referenced from the [provider_sect] below. -# Refer to the OpenSSL security policy for more information. -# .include fipsmodule.cnf - -[openssl_init] -providers = provider_sect - -# List of providers to load -[provider_sect] -default = default_sect -# The fips section name should match the section name inside the -# included fipsmodule.cnf. -# fips = fips_sect - -# If no providers are activated explicitly, the default one is activated implicitly. -# See man 7 OSSL_PROVIDER-default for more details. -# -# If you add a section explicitly activating any other provider(s), you most -# probably need to explicitly activate the default provider, otherwise it -# becomes unavailable in openssl. As a consequence applications depending on -# OpenSSL may not work correctly which could lead to significant system -# problems including inability to remotely access the system. -[default_sect] -# activate = 1 - - -#################################################################### -[ ca ] -default_ca = CA_default # The default ca section - -#################################################################### -[ CA_default ] - -dir = ./demoCA # Where everything is kept -certs = $dir/certs # Where the issued certs are kept -crl_dir = $dir/crl # Where the issued crl are kept -database = $dir/index.txt # database index file. -#unique_subject = no # Set to 'no' to allow creation of - # several certs with same subject. -new_certs_dir = $dir/newcerts # default place for new certs. - -certificate = $dir/cacert.pem # The CA certificate -serial = $dir/serial # The current serial number -crlnumber = $dir/crlnumber # the current crl number - # must be commented out to leave a V1 CRL -crl = $dir/crl.pem # The current CRL -private_key = $dir/private/cakey.pem # The private key - -x509_extensions = usr_cert # The extensions to add to the cert - -# Comment out the following two lines for the "traditional" -# (and highly broken) format. -name_opt = ca_default # Subject Name options -cert_opt = ca_default # Certificate field options - -# Extension copying option: use with caution. -# copy_extensions = copy - -# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs -# so this is commented out by default to leave a V1 CRL. -# crlnumber must also be commented out to leave a V1 CRL. -# crl_extensions = crl_ext - -default_days = 365 # how long to certify for -default_crl_days= 30 # how long before next CRL -default_md = default # use public key default MD -preserve = no # keep passed DN ordering - -# A few difference way of specifying how similar the request should look -# For type CA, the listed attributes must be the same, and the optional -# and supplied fields are just that :-) -policy = policy_match - -# For the CA policy -[ policy_match ] -countryName = match -stateOrProvinceName = match -organizationName = match -organizationalUnitName = optional -commonName = supplied -emailAddress = optional - -# For the 'anything' policy -# At this point in time, you must list all acceptable 'object' -# types. -[ policy_anything ] -countryName = optional -stateOrProvinceName = optional -localityName = optional -organizationName = optional -organizationalUnitName = optional -commonName = supplied -emailAddress = optional - -#################################################################### -[ req ] -default_bits = 2048 -default_keyfile = privkey.pem -distinguished_name = req_distinguished_name -attributes = req_attributes -x509_extensions = v3_ca # The extensions to add to the self signed cert - -# Passwords for private keys if not present they will be prompted for -# input_password = secret -# output_password = secret - -# This sets a mask for permitted string types. There are several options. -# default: PrintableString, T61String, BMPString. -# pkix : PrintableString, BMPString (PKIX recommendation before 2004) -# utf8only: only UTF8Strings (PKIX recommendation after 2004). -# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). -# MASK:XXXX a literal mask value. -# WARNING: ancient versions of Netscape crash on BMPStrings or UTF8Strings. -string_mask = utf8only - -# req_extensions = v3_req # The extensions to add to a certificate request - -[ req_distinguished_name ] -countryName = Country Name (2 letter code) -countryName_default = AU -countryName_min = 2 -countryName_max = 2 - -stateOrProvinceName = State or Province Name (full name) -stateOrProvinceName_default = Some-State - -localityName = Locality Name (eg, city) - -0.organizationName = Organization Name (eg, company) -0.organizationName_default = Internet Widgits Pty Ltd - -# we can do this but it is not needed normally :-) -#1.organizationName = Second Organization Name (eg, company) -#1.organizationName_default = World Wide Web Pty Ltd - -organizationalUnitName = Organizational Unit Name (eg, section) -#organizationalUnitName_default = - -commonName = Common Name (e.g. server FQDN or YOUR name) -commonName_max = 64 - -emailAddress = Email Address -emailAddress_max = 64 - -# SET-ex3 = SET extension number 3 - -[ req_attributes ] -challengePassword = A challenge password -challengePassword_min = 4 -challengePassword_max = 20 - -unstructuredName = An optional company name - -[ usr_cert ] - -# These extensions are added when 'ca' signs a request. - -# This goes against PKIX guidelines but some CAs do it and some software -# requires this to avoid interpreting an end user certificate as a CA. - -basicConstraints=CA:FALSE - -# This is typical in keyUsage for a client certificate. -# keyUsage = nonRepudiation, digitalSignature, keyEncipherment - -# PKIX recommendations harmless if included in all certificates. -subjectKeyIdentifier=hash -authorityKeyIdentifier=keyid,issuer - -# This stuff is for subjectAltName and issuerAltname. -# Import the email address. -# subjectAltName=email:copy -# An alternative to produce certificates that aren't -# deprecated according to PKIX. -# subjectAltName=email:move - -# Copy subject details -# issuerAltName=issuer:copy - -# This is required for TSA certificates. -# extendedKeyUsage = critical,timeStamping - -[ v3_req ] - -# Extensions to add to a certificate request - -basicConstraints = CA:FALSE -keyUsage = nonRepudiation, digitalSignature, keyEncipherment - -[ v3_ca ] - - -# Extensions for a typical CA - - -# PKIX recommendation. - -subjectKeyIdentifier=hash - -authorityKeyIdentifier=keyid:always,issuer - -basicConstraints = critical,CA:true - -# Key usage: this is typical for a CA certificate. However since it will -# prevent it being used as an test self-signed certificate it is best -# left out by default. -# keyUsage = cRLSign, keyCertSign - -# Include email address in subject alt name: another PKIX recommendation -# subjectAltName=email:copy -# Copy issuer details -# issuerAltName=issuer:copy - -# DER hex encoding of an extension: beware experts only! -# obj=DER:02:03 -# Where 'obj' is a standard or added object -# You can even override a supported extension: -# basicConstraints= critical, DER:30:03:01:01:FF - -[ crl_ext ] - -# CRL extensions. -# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. - -# issuerAltName=issuer:copy -authorityKeyIdentifier=keyid:always - -[ proxy_cert_ext ] -# These extensions should be added when creating a proxy certificate - -# This goes against PKIX guidelines but some CAs do it and some software -# requires this to avoid interpreting an end user certificate as a CA. - -basicConstraints=CA:FALSE - -# This is typical in keyUsage for a client certificate. -# keyUsage = nonRepudiation, digitalSignature, keyEncipherment - -# PKIX recommendations harmless if included in all certificates. -subjectKeyIdentifier=hash -authorityKeyIdentifier=keyid,issuer - -# This stuff is for subjectAltName and issuerAltname. -# Import the email address. -# subjectAltName=email:copy -# An alternative to produce certificates that aren't -# deprecated according to PKIX. -# subjectAltName=email:move - -# Copy subject details -# issuerAltName=issuer:copy - -# This really needs to be in place for it to be a proxy certificate. -proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo - -#################################################################### -[ tsa ] - -default_tsa = tsa_config1 # the default TSA section - -[ tsa_config1 ] - -# These are used by the TSA reply generation only. -dir = ./demoCA # TSA root directory -serial = $dir/tsaserial # The current serial number (mandatory) -crypto_device = builtin # OpenSSL engine to use for signing -signer_cert = $dir/tsacert.pem # The TSA signing certificate - # (optional) -certs = $dir/cacert.pem # Certificate chain to include in reply - # (optional) -signer_key = $dir/private/tsakey.pem # The TSA private key (optional) -signer_digest = sha256 # Signing digest to use. (Optional) -default_policy = tsa_policy1 # Policy if request did not specify it - # (optional) -other_policies = tsa_policy2, tsa_policy3 # acceptable policies (optional) -digests = sha1, sha256, sha384, sha512 # Acceptable message digests (mandatory) -accuracy = secs:1, millisecs:500, microsecs:100 # (optional) -clock_precision_digits = 0 # number of digits after dot. (optional) -ordering = yes # Is ordering defined for timestamps? - # (optional, default: no) -tsa_name = yes # Must the TSA name be included in the reply? - # (optional, default: no) -ess_cert_id_chain = no # Must the ESS cert id chain be included? - # (optional, default: no) -ess_cert_id_alg = sha256 # algorithm to compute certificate - # identifier (optional, default: sha256) - -[insta] # CMP using Insta Demo CA -# Message transfer -server = pki.certificate.fi:8700 -# proxy = # set this as far as needed, e.g., http://192.168.1.1:8080 -# tls_use = 0 -path = pkix/ - -# Server authentication -recipient = "/C=FI/O=Insta Demo/CN=Insta Demo CA" # or set srvcert or issuer -ignore_keyusage = 1 # quirk needed to accept Insta CA cert not including digitalsignature -unprotected_errors = 1 # quirk needed to accept negative responses possibly not protected -extracertsout = insta.extracerts.pem - -# Client authentication -ref = 3078 # user identification -secret = pass:insta # can be used for both client and server side - -# Generic message options -cmd = ir # default operation, can be overridden on cmd line with, e.g., kur - -# Certificate enrollment -subject = "/CN=openssl-cmp-test" -newkey = insta.priv.pem -out_trusted = apps/insta.ca.crt # does not include keyUsage digitalSignature -certout = insta.cert.pem - -[pbm] # Password-based protection for Insta CA -# Server and client authentication -ref = $insta::ref # 3078 -secret = $insta::secret # pass:insta - -[signature] # Signature-based protection for Insta CA -# Server authentication -trusted = $insta::out_trusted # apps/insta.ca.crt - -# Client authentication -secret = # disable PBM -key = $insta::newkey # insta.priv.pem -cert = $insta::certout # insta.cert.pem - -[ir] -cmd = ir - -[cr] -cmd = cr - -[kur] -# Certificate update -cmd = kur -oldcert = $insta::certout # insta.cert.pem - -[rr] -# Certificate revocation -cmd = rr -oldcert = $insta::certout # insta.cert.pem diff --git a/libs/openssl-3.6.0-beta1/x64/include/openssl/applink.c b/libs/openssl-3.6.0-beta1/x64/include/openssl/applink.c index 601d016..d99bb01 100644 --- a/libs/openssl-3.6.0-beta1/x64/include/openssl/applink.c +++ b/libs/openssl-3.6.0-beta1/x64/include/openssl/applink.c @@ -7,6 +7,8 @@ * https://www.openssl.org/source/license.html */ +#if defined(_WIN32) + #define APPLINK_STDIN 1 #define APPLINK_STDOUT 2 #define APPLINK_STDERR 3 @@ -151,3 +153,5 @@ OPENSSL_Applink(void) } #endif #endif + +#endif \ No newline at end of file diff --git a/libs/openssl-3.6.0-beta1/x86/bin/c_rehash.pl b/libs/openssl-3.6.0-beta1/x86/bin/c_rehash.pl deleted file mode 100644 index 8f9f6de..0000000 --- a/libs/openssl-3.6.0-beta1/x86/bin/c_rehash.pl +++ /dev/null @@ -1,252 +0,0 @@ -#!/usr/bin/env perl - -# WARNING: do not edit! -# Generated by makefile from ..\tools\c_rehash.in -# Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. -# -# Licensed under the Apache License 2.0 (the "License"). You may not use -# this file except in compliance with the License. You can obtain a copy -# in the file LICENSE in the source distribution or at -# https://www.openssl.org/source/license.html - -# Perl c_rehash script, scan all files in a directory -# and add symbolic links to their hash values. - -my $dir = "C:\\Program Files\\Common Files\\FireDaemon SSL 3.x"; -my $prefix = "C:\\Program Files (x86)\\FireDaemon OpenSSL 3.x"; - -my $errorcount = 0; -my $openssl = $ENV{OPENSSL} || "openssl"; -my $pwd; -my $x509hash = "-subject_hash"; -my $crlhash = "-hash"; -my $verbose = 0; -my $symlink_exists=eval {symlink("",""); 1}; -my $removelinks = 1; - -## Parse flags. -while ( $ARGV[0] =~ /^-/ ) { - my $flag = shift @ARGV; - last if ( $flag eq '--'); - if ( $flag eq '-old') { - $x509hash = "-subject_hash_old"; - $crlhash = "-hash_old"; - } elsif ( $flag eq '-h' || $flag eq '-help' ) { - help(); - } elsif ( $flag eq '-n' ) { - $removelinks = 0; - } elsif ( $flag eq '-v' ) { - $verbose++; - } - else { - print STDERR "Usage error; try -h.\n"; - exit 1; - } -} - -sub help { - print "Usage: c_rehash [-old] [-h] [-help] [-v] [dirs...]\n"; - print " -old use old-style digest\n"; - print " -h or -help print this help text\n"; - print " -v print files removed and linked\n"; - exit 0; -} - -eval "require Cwd"; -if (defined(&Cwd::getcwd)) { - $pwd=Cwd::getcwd(); -} else { - $pwd=`pwd`; - chomp($pwd); -} - -# DOS/Win32 or Unix delimiter? Prefix our installdir, then search. -my $path_delim = ($pwd =~ /^[a-z]\:/i) ? ';' : ':'; -$ENV{PATH} = "$prefix/bin" . ($ENV{PATH} ? $path_delim . $ENV{PATH} : ""); - -if (!(-f $openssl && -x $openssl)) { - my $found = 0; - foreach (split /$path_delim/, $ENV{PATH}) { - if (-f "$_/$openssl" && -x "$_/$openssl") { - $found = 1; - $openssl = "$_/$openssl"; - last; - } - } - if ($found == 0) { - print STDERR "c_rehash: rehashing skipped ('openssl' program not available)\n"; - exit 0; - } -} - -if (@ARGV) { - @dirlist = @ARGV; -} elsif ($ENV{SSL_CERT_DIR}) { - @dirlist = split /$path_delim/, $ENV{SSL_CERT_DIR}; -} else { - $dirlist[0] = "$dir/certs"; -} - -if (-d $dirlist[0]) { - chdir $dirlist[0]; - $openssl="$pwd/$openssl" if (!(-f $openssl && -x $openssl)); - chdir $pwd; -} - -foreach (@dirlist) { - if (-d $_ ) { - if ( -w $_) { - hash_dir($_); - } else { - print "Skipping $_, can't write\n"; - $errorcount++; - } - } -} -exit($errorcount); - -sub copy_file { - my ($src_fname, $dst_fname) = @_; - - if (open(my $in, "<", $src_fname)) { - if (open(my $out, ">", $dst_fname)) { - print $out $_ while (<$in>); - close $out; - } else { - warn "Cannot open $dst_fname for write, $!"; - } - close $in; - } else { - warn "Cannot open $src_fname for read, $!"; - } -} - -sub hash_dir { - my $dir = shift; - my %hashlist; - - print "Doing $dir\n"; - - if (!chdir $dir) { - print STDERR "WARNING: Cannot chdir to '$dir', $!\n"; - return; - } - - opendir(DIR, ".") || print STDERR "WARNING: Cannot opendir '.', $!\n"; - my @flist = sort readdir(DIR); - closedir DIR; - if ( $removelinks ) { - # Delete any existing symbolic links - foreach (grep {/^[\da-f]+\.r{0,1}\d+$/} @flist) { - if (-l $_) { - print "unlink $_\n" if $verbose; - unlink $_ || warn "Can't unlink $_, $!\n"; - } - } - } - FILE: foreach $fname (grep {/\.(pem|crt|cer|crl)$/} @flist) { - # Check to see if certificates and/or CRLs present. - my ($cert, $crl) = check_file($fname); - if (!$cert && !$crl) { - print STDERR "WARNING: $fname does not contain a certificate or CRL: skipping\n"; - next; - } - link_hash_cert($fname) if ($cert); - link_hash_crl($fname) if ($crl); - } - - chdir $pwd; -} - -sub check_file { - my ($is_cert, $is_crl) = (0,0); - my $fname = $_[0]; - - open(my $in, "<", $fname); - while(<$in>) { - if (/^-----BEGIN (.*)-----/) { - my $hdr = $1; - if ($hdr =~ /^(X509 |TRUSTED |)CERTIFICATE$/) { - $is_cert = 1; - last if ($is_crl); - } elsif ($hdr eq "X509 CRL") { - $is_crl = 1; - last if ($is_cert); - } - } - } - close $in; - return ($is_cert, $is_crl); -} - -sub compute_hash { - my $fh; - if ( $^O eq "VMS" ) { - # VMS uses the open through shell - # The file names are safe there and list form is unsupported - if (!open($fh, "-|", join(' ', @_))) { - print STDERR "Cannot compute hash on '$fname'\n"; - return; - } - } else { - if (!open($fh, "-|", @_)) { - print STDERR "Cannot compute hash on '$fname'\n"; - return; - } - } - return (<$fh>, <$fh>); -} - -# Link a certificate to its subject name hash value, each hash is of -# the form . where n is an integer. If the hash value already exists -# then we need to up the value of n, unless its a duplicate in which -# case we skip the link. We check for duplicates by comparing the -# certificate fingerprints - -sub link_hash_cert { - link_hash($_[0], 'cert'); -} - -# Same as above except for a CRL. CRL links are of the form .r - -sub link_hash_crl { - link_hash($_[0], 'crl'); -} - -sub link_hash { - my ($fname, $type) = @_; - my $is_cert = $type eq 'cert'; - - my ($hash, $fprint) = compute_hash($openssl, - $is_cert ? "x509" : "crl", - $is_cert ? $x509hash : $crlhash, - "-fingerprint", "-noout", - "-in", $fname); - chomp $hash; - $hash =~ s/^.*=// if !$is_cert; - chomp $fprint; - return if !$hash; - $fprint =~ s/^.*=//; - $fprint =~ tr/://d; - my $suffix = 0; - # Search for an unused hash filename - my $crlmark = $is_cert ? "" : "r"; - while(exists $hashlist{"$hash.$crlmark$suffix"}) { - # Hash matches: if fingerprint matches its a duplicate cert - if ($hashlist{"$hash.$crlmark$suffix"} eq $fprint) { - my $what = $is_cert ? 'certificate' : 'CRL'; - print STDERR "WARNING: Skipping duplicate $what $fname\n"; - return; - } - $suffix++; - } - $hash .= ".$crlmark$suffix"; - if ($symlink_exists) { - print "link $fname -> $hash\n" if $verbose; - symlink $fname, $hash || warn "Can't symlink, $!"; - } else { - print "copy $fname -> $hash\n" if $verbose; - copy_file($fname, $hash); - } - $hashlist{$hash} = $fprint; -} diff --git a/libs/openssl-3.6.0-beta1/x86/bin/libcrypto-3.dll b/libs/openssl-3.6.0-beta1/x86/bin/libcrypto-3.dll deleted file mode 100644 index 59a9e4f..0000000 Binary files a/libs/openssl-3.6.0-beta1/x86/bin/libcrypto-3.dll and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/x86/bin/libcrypto-3.pdb b/libs/openssl-3.6.0-beta1/x86/bin/libcrypto-3.pdb deleted file mode 100644 index c13e250..0000000 Binary files a/libs/openssl-3.6.0-beta1/x86/bin/libcrypto-3.pdb and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/x86/bin/libssl-3.dll b/libs/openssl-3.6.0-beta1/x86/bin/libssl-3.dll deleted file mode 100644 index f33d664..0000000 Binary files a/libs/openssl-3.6.0-beta1/x86/bin/libssl-3.dll and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/x86/bin/libssl-3.pdb b/libs/openssl-3.6.0-beta1/x86/bin/libssl-3.pdb deleted file mode 100644 index 28118c1..0000000 Binary files a/libs/openssl-3.6.0-beta1/x86/bin/libssl-3.pdb and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/x86/bin/openssl.exe b/libs/openssl-3.6.0-beta1/x86/bin/openssl.exe deleted file mode 100644 index b891d46..0000000 Binary files a/libs/openssl-3.6.0-beta1/x86/bin/openssl.exe and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/x86/bin/openssl.pdb b/libs/openssl-3.6.0-beta1/x86/bin/openssl.pdb deleted file mode 100644 index 6701c0a..0000000 Binary files a/libs/openssl-3.6.0-beta1/x86/bin/openssl.pdb and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/aes.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/aes.h deleted file mode 100644 index d0f9dfc..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/aes.h +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright 2002-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_AES_H -# define OPENSSL_AES_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_AES_H -# endif - -# include - -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define AES_BLOCK_SIZE 16 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 - -# define AES_ENCRYPT 1 -# define AES_DECRYPT 0 - -# define AES_MAXNR 14 - - -/* This should be a hidden type, but EVP requires that the size be known */ -struct aes_key_st { -# ifdef AES_LONG - unsigned long rd_key[4 * (AES_MAXNR + 1)]; -# else - unsigned int rd_key[4 * (AES_MAXNR + 1)]; -# endif - int rounds; -}; -typedef struct aes_key_st AES_KEY; - -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 const char *AES_options(void); -OSSL_DEPRECATEDIN_3_0 -int AES_set_encrypt_key(const unsigned char *userKey, const int bits, - AES_KEY *key); -OSSL_DEPRECATEDIN_3_0 -int AES_set_decrypt_key(const unsigned char *userKey, const int bits, - AES_KEY *key); -OSSL_DEPRECATEDIN_3_0 -void AES_encrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key); -OSSL_DEPRECATEDIN_3_0 -void AES_decrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key); -OSSL_DEPRECATEDIN_3_0 -void AES_ecb_encrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key, const int enc); -OSSL_DEPRECATEDIN_3_0 -void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, const int enc); -OSSL_DEPRECATEDIN_3_0 -void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -OSSL_DEPRECATEDIN_3_0 -void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -OSSL_DEPRECATEDIN_3_0 -void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -OSSL_DEPRECATEDIN_3_0 -void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num); - -/* NB: the IV is _two_ blocks long */ -OSSL_DEPRECATEDIN_3_0 -void AES_ige_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, const int enc); -/* NB: the IV is _four_ blocks long */ -OSSL_DEPRECATEDIN_3_0 -void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, const AES_KEY *key2, - const unsigned char *ivec, const int enc); -OSSL_DEPRECATEDIN_3_0 -int AES_wrap_key(AES_KEY *key, const unsigned char *iv, - unsigned char *out, const unsigned char *in, - unsigned int inlen); -OSSL_DEPRECATEDIN_3_0 -int AES_unwrap_key(AES_KEY *key, const unsigned char *iv, - unsigned char *out, const unsigned char *in, - unsigned int inlen); -# endif - - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/applink.c b/libs/openssl-3.6.0-beta1/x86/include/openssl/applink.c deleted file mode 100644 index 601d016..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/applink.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright 2004-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#define APPLINK_STDIN 1 -#define APPLINK_STDOUT 2 -#define APPLINK_STDERR 3 -#define APPLINK_FPRINTF 4 -#define APPLINK_FGETS 5 -#define APPLINK_FREAD 6 -#define APPLINK_FWRITE 7 -#define APPLINK_FSETMOD 8 -#define APPLINK_FEOF 9 -#define APPLINK_FCLOSE 10 /* should not be used */ - -#define APPLINK_FOPEN 11 /* solely for completeness */ -#define APPLINK_FSEEK 12 -#define APPLINK_FTELL 13 -#define APPLINK_FFLUSH 14 -#define APPLINK_FERROR 15 -#define APPLINK_CLEARERR 16 -#define APPLINK_FILENO 17 /* to be used with below */ - -#define APPLINK_OPEN 18 /* formally can't be used, as flags can vary */ -#define APPLINK_READ 19 -#define APPLINK_WRITE 20 -#define APPLINK_LSEEK 21 -#define APPLINK_CLOSE 22 -#define APPLINK_MAX 22 /* always same as last macro */ - -#ifndef APPMACROS_ONLY - -/* - * Normally, do not define APPLINK_NO_INCLUDES. Define it if you are using - * symbol preprocessing and do not want the preprocessing to affect the - * following included header files. You will need to put these - * include lines somewhere in the file that is including applink.c. - */ -# ifndef APPLINK_NO_INCLUDES -# include -# include -# include -# endif - -# ifdef __BORLANDC__ - /* _lseek in is a function-like macro so we can't take its address */ -# undef _lseek -# define _lseek lseek -# endif - -static void *app_stdin(void) -{ - return stdin; -} - -static void *app_stdout(void) -{ - return stdout; -} - -static void *app_stderr(void) -{ - return stderr; -} - -static int app_feof(FILE *fp) -{ - return feof(fp); -} - -static int app_ferror(FILE *fp) -{ - return ferror(fp); -} - -static void app_clearerr(FILE *fp) -{ - clearerr(fp); -} - -static int app_fileno(FILE *fp) -{ - return _fileno(fp); -} - -static int app_fsetmod(FILE *fp, char mod) -{ - return _setmode(_fileno(fp), mod == 'b' ? _O_BINARY : _O_TEXT); -} - -#ifdef __cplusplus -extern "C" { -#endif - -__declspec(dllexport) -void ** -# if defined(__BORLANDC__) -/* - * __stdcall appears to be the only way to get the name - * decoration right with Borland C. Otherwise it works - * purely incidentally, as we pass no parameters. - */ -__stdcall -# else -__cdecl -# endif -OPENSSL_Applink(void) -{ - static int once = 1; - static void *OPENSSL_ApplinkTable[APPLINK_MAX + 1] = - { (void *)APPLINK_MAX }; - - if (once) { - OPENSSL_ApplinkTable[APPLINK_STDIN] = app_stdin; - OPENSSL_ApplinkTable[APPLINK_STDOUT] = app_stdout; - OPENSSL_ApplinkTable[APPLINK_STDERR] = app_stderr; - OPENSSL_ApplinkTable[APPLINK_FPRINTF] = fprintf; - OPENSSL_ApplinkTable[APPLINK_FGETS] = fgets; - OPENSSL_ApplinkTable[APPLINK_FREAD] = fread; - OPENSSL_ApplinkTable[APPLINK_FWRITE] = fwrite; - OPENSSL_ApplinkTable[APPLINK_FSETMOD] = app_fsetmod; - OPENSSL_ApplinkTable[APPLINK_FEOF] = app_feof; - OPENSSL_ApplinkTable[APPLINK_FCLOSE] = fclose; - - OPENSSL_ApplinkTable[APPLINK_FOPEN] = fopen; - OPENSSL_ApplinkTable[APPLINK_FSEEK] = fseek; - OPENSSL_ApplinkTable[APPLINK_FTELL] = ftell; - OPENSSL_ApplinkTable[APPLINK_FFLUSH] = fflush; - OPENSSL_ApplinkTable[APPLINK_FERROR] = app_ferror; - OPENSSL_ApplinkTable[APPLINK_CLEARERR] = app_clearerr; - OPENSSL_ApplinkTable[APPLINK_FILENO] = app_fileno; - - OPENSSL_ApplinkTable[APPLINK_OPEN] = _open; - OPENSSL_ApplinkTable[APPLINK_READ] = _read; - OPENSSL_ApplinkTable[APPLINK_WRITE] = _write; - OPENSSL_ApplinkTable[APPLINK_LSEEK] = _lseek; - OPENSSL_ApplinkTable[APPLINK_CLOSE] = _close; - - once = 0; - } - - return OPENSSL_ApplinkTable; -} - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/asn1.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/asn1.h deleted file mode 100644 index ef53b33..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/asn1.h +++ /dev/null @@ -1,1134 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\asn1.h.in - * - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_ASN1_H -# define OPENSSL_ASN1_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_ASN1_H -# endif - -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include -# include -# include -# include -# include -# include -# include - -# include -# include - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define V_ASN1_UNIVERSAL 0x00 -# define V_ASN1_APPLICATION 0x40 -# define V_ASN1_CONTEXT_SPECIFIC 0x80 -# define V_ASN1_PRIVATE 0xc0 - -# define V_ASN1_CONSTRUCTED 0x20 -# define V_ASN1_PRIMITIVE_TAG 0x1f -# define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG - -# define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ -# define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ -# define V_ASN1_ANY -4 /* used in ASN1 template code */ - -# define V_ASN1_UNDEF -1 -/* ASN.1 tag values */ -# define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 -# define V_ASN1_INTEGER 2 -# define V_ASN1_BIT_STRING 3 -# define V_ASN1_OCTET_STRING 4 -# define V_ASN1_NULL 5 -# define V_ASN1_OBJECT 6 -# define V_ASN1_OBJECT_DESCRIPTOR 7 -# define V_ASN1_EXTERNAL 8 -# define V_ASN1_REAL 9 -# define V_ASN1_ENUMERATED 10 -# define V_ASN1_UTF8STRING 12 -# define V_ASN1_SEQUENCE 16 -# define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 -# define V_ASN1_PRINTABLESTRING 19 -# define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20 /* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 -# define V_ASN1_IA5STRING 22 -# define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 -# define V_ASN1_GRAPHICSTRING 25 -# define V_ASN1_ISO64STRING 26 -# define V_ASN1_VISIBLESTRING 26 /* alias */ -# define V_ASN1_GENERALSTRING 27 -# define V_ASN1_UNIVERSALSTRING 28 -# define V_ASN1_BMPSTRING 30 - -/* - * NB the constants below are used internally by ASN1_INTEGER - * and ASN1_ENUMERATED to indicate the sign. They are *not* on - * the wire tag values. - */ - -# define V_ASN1_NEG 0x100 -# define V_ASN1_NEG_INTEGER (2 | V_ASN1_NEG) -# define V_ASN1_NEG_ENUMERATED (10 | V_ASN1_NEG) - -/* For use with d2i_ASN1_type_bytes() */ -# define B_ASN1_NUMERICSTRING 0x0001 -# define B_ASN1_PRINTABLESTRING 0x0002 -# define B_ASN1_T61STRING 0x0004 -# define B_ASN1_TELETEXSTRING 0x0004 -# define B_ASN1_VIDEOTEXSTRING 0x0008 -# define B_ASN1_IA5STRING 0x0010 -# define B_ASN1_GRAPHICSTRING 0x0020 -# define B_ASN1_ISO64STRING 0x0040 -# define B_ASN1_VISIBLESTRING 0x0040 -# define B_ASN1_GENERALSTRING 0x0080 -# define B_ASN1_UNIVERSALSTRING 0x0100 -# define B_ASN1_OCTET_STRING 0x0200 -# define B_ASN1_BIT_STRING 0x0400 -# define B_ASN1_BMPSTRING 0x0800 -# define B_ASN1_UNKNOWN 0x1000 -# define B_ASN1_UTF8STRING 0x2000 -# define B_ASN1_UTCTIME 0x4000 -# define B_ASN1_GENERALIZEDTIME 0x8000 -# define B_ASN1_SEQUENCE 0x10000 -/* For use with ASN1_mbstring_copy() */ -# define MBSTRING_FLAG 0x1000 -# define MBSTRING_UTF8 (MBSTRING_FLAG) -# define MBSTRING_ASC (MBSTRING_FLAG|1) -# define MBSTRING_BMP (MBSTRING_FLAG|2) -# define MBSTRING_UNIV (MBSTRING_FLAG|4) -# define SMIME_OLDMIME 0x400 -# define SMIME_CRLFEOL 0x800 -# define SMIME_STREAM 0x1000 - -/* Stacks for types not otherwise defined in this header */ -SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) -#define sk_X509_ALGOR_num(sk) OPENSSL_sk_num(ossl_check_const_X509_ALGOR_sk_type(sk)) -#define sk_X509_ALGOR_value(sk, idx) ((X509_ALGOR *)OPENSSL_sk_value(ossl_check_const_X509_ALGOR_sk_type(sk), (idx))) -#define sk_X509_ALGOR_new(cmp) ((STACK_OF(X509_ALGOR) *)OPENSSL_sk_new(ossl_check_X509_ALGOR_compfunc_type(cmp))) -#define sk_X509_ALGOR_new_null() ((STACK_OF(X509_ALGOR) *)OPENSSL_sk_new_null()) -#define sk_X509_ALGOR_new_reserve(cmp, n) ((STACK_OF(X509_ALGOR) *)OPENSSL_sk_new_reserve(ossl_check_X509_ALGOR_compfunc_type(cmp), (n))) -#define sk_X509_ALGOR_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_ALGOR_sk_type(sk), (n)) -#define sk_X509_ALGOR_free(sk) OPENSSL_sk_free(ossl_check_X509_ALGOR_sk_type(sk)) -#define sk_X509_ALGOR_zero(sk) OPENSSL_sk_zero(ossl_check_X509_ALGOR_sk_type(sk)) -#define sk_X509_ALGOR_delete(sk, i) ((X509_ALGOR *)OPENSSL_sk_delete(ossl_check_X509_ALGOR_sk_type(sk), (i))) -#define sk_X509_ALGOR_delete_ptr(sk, ptr) ((X509_ALGOR *)OPENSSL_sk_delete_ptr(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr))) -#define sk_X509_ALGOR_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr)) -#define sk_X509_ALGOR_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr)) -#define sk_X509_ALGOR_pop(sk) ((X509_ALGOR *)OPENSSL_sk_pop(ossl_check_X509_ALGOR_sk_type(sk))) -#define sk_X509_ALGOR_shift(sk) ((X509_ALGOR *)OPENSSL_sk_shift(ossl_check_X509_ALGOR_sk_type(sk))) -#define sk_X509_ALGOR_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_freefunc_type(freefunc)) -#define sk_X509_ALGOR_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr), (idx)) -#define sk_X509_ALGOR_set(sk, idx, ptr) ((X509_ALGOR *)OPENSSL_sk_set(ossl_check_X509_ALGOR_sk_type(sk), (idx), ossl_check_X509_ALGOR_type(ptr))) -#define sk_X509_ALGOR_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr)) -#define sk_X509_ALGOR_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr)) -#define sk_X509_ALGOR_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr), pnum) -#define sk_X509_ALGOR_sort(sk) OPENSSL_sk_sort(ossl_check_X509_ALGOR_sk_type(sk)) -#define sk_X509_ALGOR_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_ALGOR_sk_type(sk)) -#define sk_X509_ALGOR_dup(sk) ((STACK_OF(X509_ALGOR) *)OPENSSL_sk_dup(ossl_check_const_X509_ALGOR_sk_type(sk))) -#define sk_X509_ALGOR_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_ALGOR) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_copyfunc_type(copyfunc), ossl_check_X509_ALGOR_freefunc_type(freefunc))) -#define sk_X509_ALGOR_set_cmp_func(sk, cmp) ((sk_X509_ALGOR_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_compfunc_type(cmp))) - - - -# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ -/* - * This indicates that the ASN1_STRING is not a real value but just a place - * holder for the location where indefinite length constructed data should be - * inserted in the memory buffer - */ -# define ASN1_STRING_FLAG_NDEF 0x010 - -/* - * This flag is used by the CMS code to indicate that a string is not - * complete and is a place holder for content when it had all been accessed. - * The flag will be reset when content has been written to it. - */ - -# define ASN1_STRING_FLAG_CONT 0x020 -/* - * This flag is used by ASN1 code to indicate an ASN1_STRING is an MSTRING - * type. - */ -# define ASN1_STRING_FLAG_MSTRING 0x040 -/* String is embedded and only content should be freed */ -# define ASN1_STRING_FLAG_EMBED 0x080 -/* String should be parsed in RFC 5280's time format */ -# define ASN1_STRING_FLAG_X509_TIME 0x100 -/* This is the base type that holds just about everything :-) */ -struct asn1_string_st { - int length; - int type; - unsigned char *data; - /* - * The value of the following field depends on the type being held. It - * is mostly being used for BIT_STRING so if the input data has a - * non-zero 'unused bits' value, it will be handled correctly - */ - long flags; -}; - -/* - * ASN1_ENCODING structure: this is used to save the received encoding of an - * ASN1 type. This is useful to get round problems with invalid encodings - * which can break signatures. - */ - -typedef struct ASN1_ENCODING_st { - unsigned char *enc; /* DER encoding */ - long len; /* Length of encoding */ - int modified; /* set to 1 if 'enc' is invalid */ -} ASN1_ENCODING; - -/* Used with ASN1 LONG type: if a long is set to this it is omitted */ -# define ASN1_LONG_UNDEF 0x7fffffffL - -# define STABLE_FLAGS_MALLOC 0x01 -/* - * A zero passed to ASN1_STRING_TABLE_new_add for the flags is interpreted - * as "don't change" and STABLE_FLAGS_MALLOC is always set. By setting - * STABLE_FLAGS_MALLOC only we can clear the existing value. Use the alias - * STABLE_FLAGS_CLEAR to reflect this. - */ -# define STABLE_FLAGS_CLEAR STABLE_FLAGS_MALLOC -# define STABLE_NO_MASK 0x02 -# define DIRSTRING_TYPE \ - (B_ASN1_PRINTABLESTRING|B_ASN1_T61STRING|B_ASN1_BMPSTRING|B_ASN1_UTF8STRING) -# define PKCS9STRING_TYPE (DIRSTRING_TYPE|B_ASN1_IA5STRING) - -struct asn1_string_table_st { - int nid; - long minsize; - long maxsize; - unsigned long mask; - unsigned long flags; -}; - -SKM_DEFINE_STACK_OF_INTERNAL(ASN1_STRING_TABLE, ASN1_STRING_TABLE, ASN1_STRING_TABLE) -#define sk_ASN1_STRING_TABLE_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_STRING_TABLE_sk_type(sk)) -#define sk_ASN1_STRING_TABLE_value(sk, idx) ((ASN1_STRING_TABLE *)OPENSSL_sk_value(ossl_check_const_ASN1_STRING_TABLE_sk_type(sk), (idx))) -#define sk_ASN1_STRING_TABLE_new(cmp) ((STACK_OF(ASN1_STRING_TABLE) *)OPENSSL_sk_new(ossl_check_ASN1_STRING_TABLE_compfunc_type(cmp))) -#define sk_ASN1_STRING_TABLE_new_null() ((STACK_OF(ASN1_STRING_TABLE) *)OPENSSL_sk_new_null()) -#define sk_ASN1_STRING_TABLE_new_reserve(cmp, n) ((STACK_OF(ASN1_STRING_TABLE) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_STRING_TABLE_compfunc_type(cmp), (n))) -#define sk_ASN1_STRING_TABLE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_STRING_TABLE_sk_type(sk), (n)) -#define sk_ASN1_STRING_TABLE_free(sk) OPENSSL_sk_free(ossl_check_ASN1_STRING_TABLE_sk_type(sk)) -#define sk_ASN1_STRING_TABLE_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_STRING_TABLE_sk_type(sk)) -#define sk_ASN1_STRING_TABLE_delete(sk, i) ((ASN1_STRING_TABLE *)OPENSSL_sk_delete(ossl_check_ASN1_STRING_TABLE_sk_type(sk), (i))) -#define sk_ASN1_STRING_TABLE_delete_ptr(sk, ptr) ((ASN1_STRING_TABLE *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr))) -#define sk_ASN1_STRING_TABLE_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr)) -#define sk_ASN1_STRING_TABLE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr)) -#define sk_ASN1_STRING_TABLE_pop(sk) ((ASN1_STRING_TABLE *)OPENSSL_sk_pop(ossl_check_ASN1_STRING_TABLE_sk_type(sk))) -#define sk_ASN1_STRING_TABLE_shift(sk) ((ASN1_STRING_TABLE *)OPENSSL_sk_shift(ossl_check_ASN1_STRING_TABLE_sk_type(sk))) -#define sk_ASN1_STRING_TABLE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_freefunc_type(freefunc)) -#define sk_ASN1_STRING_TABLE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr), (idx)) -#define sk_ASN1_STRING_TABLE_set(sk, idx, ptr) ((ASN1_STRING_TABLE *)OPENSSL_sk_set(ossl_check_ASN1_STRING_TABLE_sk_type(sk), (idx), ossl_check_ASN1_STRING_TABLE_type(ptr))) -#define sk_ASN1_STRING_TABLE_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr)) -#define sk_ASN1_STRING_TABLE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr)) -#define sk_ASN1_STRING_TABLE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr), pnum) -#define sk_ASN1_STRING_TABLE_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_STRING_TABLE_sk_type(sk)) -#define sk_ASN1_STRING_TABLE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_STRING_TABLE_sk_type(sk)) -#define sk_ASN1_STRING_TABLE_dup(sk) ((STACK_OF(ASN1_STRING_TABLE) *)OPENSSL_sk_dup(ossl_check_const_ASN1_STRING_TABLE_sk_type(sk))) -#define sk_ASN1_STRING_TABLE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_STRING_TABLE) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_copyfunc_type(copyfunc), ossl_check_ASN1_STRING_TABLE_freefunc_type(freefunc))) -#define sk_ASN1_STRING_TABLE_set_cmp_func(sk, cmp) ((sk_ASN1_STRING_TABLE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_compfunc_type(cmp))) - - -/* size limits: this stuff is taken straight from RFC 5280 */ - -# define ub_name 32768 -# define ub_common_name 64 -# define ub_locality_name 128 -# define ub_state_name 128 -# define ub_organization_name 64 -# define ub_organization_unit_name 64 -# define ub_title 64 -# define ub_email_address 128 - -/* - * Declarations for template structures: for full definitions see asn1t.h - */ -typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; -typedef struct ASN1_TLC_st ASN1_TLC; -/* This is just an opaque pointer */ -typedef struct ASN1_VALUE_st ASN1_VALUE; - -/* Declare ASN1 functions: the implement macro is in asn1t.h */ - -/* - * The mysterious 'extern' that's passed to some macros is innocuous, - * and is there to quiet pre-C99 compilers that may complain about empty - * arguments in macro calls. - */ - -# define DECLARE_ASN1_FUNCTIONS_attr(attr, type) \ - DECLARE_ASN1_FUNCTIONS_name_attr(attr, type, type) -# define DECLARE_ASN1_FUNCTIONS(type) \ - DECLARE_ASN1_FUNCTIONS_attr(extern, type) - -# define DECLARE_ASN1_ALLOC_FUNCTIONS_attr(attr, type) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name_attr(attr, type, type) -# define DECLARE_ASN1_ALLOC_FUNCTIONS(type) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_attr(extern, type) - -# define DECLARE_ASN1_FUNCTIONS_name_attr(attr, type, name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name_attr(attr, type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr(attr, type, name) -# define DECLARE_ASN1_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_FUNCTIONS_name_attr(extern, type, name) - -# define DECLARE_ASN1_ENCODE_FUNCTIONS_attr(attr, type, itname, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(attr, type, name) \ - DECLARE_ASN1_ITEM_attr(attr, itname) -# define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS_attr(extern, type, itname, name) - -# define DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr(attr, type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS_attr(attr, type, name, name) -# define DECLARE_ASN1_ENCODE_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr(extern, type, name) - -# define DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(attr, type, name) \ - attr type *d2i_##name(type **a, const unsigned char **in, long len); \ - attr int i2d_##name(const type *a, unsigned char **out); -# define DECLARE_ASN1_ENCODE_FUNCTIONS_only(type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(extern, type, name) - -# define DECLARE_ASN1_NDEF_FUNCTION_attr(attr, name) \ - attr int i2d_##name##_NDEF(const name *a, unsigned char **out); -# define DECLARE_ASN1_NDEF_FUNCTION(name) \ - DECLARE_ASN1_NDEF_FUNCTION_attr(extern, name) - -# define DECLARE_ASN1_ALLOC_FUNCTIONS_name_attr(attr, type, name) \ - attr type *name##_new(void); \ - attr void name##_free(type *a); -# define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name_attr(extern, type, name) - -# define DECLARE_ASN1_DUP_FUNCTION_attr(attr, type) \ - DECLARE_ASN1_DUP_FUNCTION_name_attr(attr, type, type) -# define DECLARE_ASN1_DUP_FUNCTION(type) \ - DECLARE_ASN1_DUP_FUNCTION_attr(extern, type) - -# define DECLARE_ASN1_DUP_FUNCTION_name_attr(attr, type, name) \ - attr type *name##_dup(const type *a); -# define DECLARE_ASN1_DUP_FUNCTION_name(type, name) \ - DECLARE_ASN1_DUP_FUNCTION_name_attr(extern, type, name) - -# define DECLARE_ASN1_PRINT_FUNCTION_attr(attr, stname) \ - DECLARE_ASN1_PRINT_FUNCTION_fname_attr(attr, stname, stname) -# define DECLARE_ASN1_PRINT_FUNCTION(stname) \ - DECLARE_ASN1_PRINT_FUNCTION_attr(extern, stname) - -# define DECLARE_ASN1_PRINT_FUNCTION_fname_attr(attr, stname, fname) \ - attr int fname##_print_ctx(BIO *out, const stname *x, int indent, \ - const ASN1_PCTX *pctx); -# define DECLARE_ASN1_PRINT_FUNCTION_fname(stname, fname) \ - DECLARE_ASN1_PRINT_FUNCTION_fname_attr(extern, stname, fname) - -# define D2I_OF(type) type *(*)(type **,const unsigned char **,long) -# define I2D_OF(type) int (*)(const type *,unsigned char **) - -# define CHECKED_D2I_OF(type, d2i) \ - ((d2i_of_void*) (1 ? d2i : ((D2I_OF(type))0))) -# define CHECKED_I2D_OF(type, i2d) \ - ((i2d_of_void*) (1 ? i2d : ((I2D_OF(type))0))) -# define CHECKED_NEW_OF(type, xnew) \ - ((void *(*)(void)) (1 ? xnew : ((type *(*)(void))0))) -# define CHECKED_PTR_OF(type, p) \ - ((void*) (1 ? p : (type*)0)) -# define CHECKED_PPTR_OF(type, p) \ - ((void**) (1 ? p : (type**)0)) - -# define TYPEDEF_D2I_OF(type) typedef type *d2i_of_##type(type **,const unsigned char **,long) -# define TYPEDEF_I2D_OF(type) typedef int i2d_of_##type(const type *,unsigned char **) -# define TYPEDEF_D2I2D_OF(type) TYPEDEF_D2I_OF(type); TYPEDEF_I2D_OF(type) - -typedef void *d2i_of_void(void **, const unsigned char **, long); -typedef int i2d_of_void(const void *, unsigned char **); -typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); - -/*- - * The following macros and typedefs allow an ASN1_ITEM - * to be embedded in a structure and referenced. Since - * the ASN1_ITEM pointers need to be globally accessible - * (possibly from shared libraries) they may exist in - * different forms. On platforms that support it the - * ASN1_ITEM structure itself will be globally exported. - * Other platforms will export a function that returns - * an ASN1_ITEM pointer. - * - * To handle both cases transparently the macros below - * should be used instead of hard coding an ASN1_ITEM - * pointer in a structure. - * - * The structure will look like this: - * - * typedef struct SOMETHING_st { - * ... - * ASN1_ITEM_EXP *iptr; - * ... - * } SOMETHING; - * - * It would be initialised as e.g.: - * - * SOMETHING somevar = {...,ASN1_ITEM_ref(X509),...}; - * - * and the actual pointer extracted with: - * - * const ASN1_ITEM *it = ASN1_ITEM_ptr(somevar.iptr); - * - * Finally an ASN1_ITEM pointer can be extracted from an - * appropriate reference with: ASN1_ITEM_rptr(X509). This - * would be used when a function takes an ASN1_ITEM * argument. - * - */ - - -/* - * Platforms that can't easily handle shared global variables are declared as - * functions returning ASN1_ITEM pointers. - */ - -/* ASN1_ITEM pointer exported type */ -typedef const ASN1_ITEM *ASN1_ITEM_EXP (void); - -/* Macro to obtain ASN1_ITEM pointer from exported type */ -# define ASN1_ITEM_ptr(iptr) (iptr()) - -/* Macro to include ASN1_ITEM pointer from base type */ -# define ASN1_ITEM_ref(iptr) (iptr##_it) - -# define ASN1_ITEM_rptr(ref) (ref##_it()) - -# define DECLARE_ASN1_ITEM_attr(attr, name) \ - attr const ASN1_ITEM * name##_it(void); -# define DECLARE_ASN1_ITEM(name) \ - DECLARE_ASN1_ITEM_attr(extern, name) - -/* Parameters used by ASN1_STRING_print_ex() */ - -/* - * These determine which characters to escape: RFC2253 special characters, - * control characters and MSB set characters - */ - -# define ASN1_STRFLGS_ESC_2253 1 -# define ASN1_STRFLGS_ESC_CTRL 2 -# define ASN1_STRFLGS_ESC_MSB 4 - -/* Lower 8 bits are reserved as an output type specifier */ -# define ASN1_DTFLGS_TYPE_MASK 0x0FUL -# define ASN1_DTFLGS_RFC822 0x00UL -# define ASN1_DTFLGS_ISO8601 0x01UL - -/* - * This flag determines how we do escaping: normally RC2253 backslash only, - * set this to use backslash and quote. - */ - -# define ASN1_STRFLGS_ESC_QUOTE 8 - -/* These three flags are internal use only. */ - -/* Character is a valid PrintableString character */ -# define CHARTYPE_PRINTABLESTRING 0x10 -/* Character needs escaping if it is the first character */ -# define CHARTYPE_FIRST_ESC_2253 0x20 -/* Character needs escaping if it is the last character */ -# define CHARTYPE_LAST_ESC_2253 0x40 - -/* - * NB the internal flags are safely reused below by flags handled at the top - * level. - */ - -/* - * If this is set we convert all character strings to UTF8 first - */ - -# define ASN1_STRFLGS_UTF8_CONVERT 0x10 - -/* - * If this is set we don't attempt to interpret content: just assume all - * strings are 1 byte per character. This will produce some pretty odd - * looking output! - */ - -# define ASN1_STRFLGS_IGNORE_TYPE 0x20 - -/* If this is set we include the string type in the output */ -# define ASN1_STRFLGS_SHOW_TYPE 0x40 - -/* - * This determines which strings to display and which to 'dump' (hex dump of - * content octets or DER encoding). We can only dump non character strings or - * everything. If we don't dump 'unknown' they are interpreted as character - * strings with 1 octet per character and are subject to the usual escaping - * options. - */ - -# define ASN1_STRFLGS_DUMP_ALL 0x80 -# define ASN1_STRFLGS_DUMP_UNKNOWN 0x100 - -/* - * These determine what 'dumping' does, we can dump the content octets or the - * DER encoding: both use the RFC2253 #XXXXX notation. - */ - -# define ASN1_STRFLGS_DUMP_DER 0x200 - -/* - * This flag specifies that RC2254 escaping shall be performed. - */ -#define ASN1_STRFLGS_ESC_2254 0x400 - -/* - * All the string flags consistent with RFC2253, escaping control characters - * isn't essential in RFC2253 but it is advisable anyway. - */ - -# define ASN1_STRFLGS_RFC2253 (ASN1_STRFLGS_ESC_2253 | \ - ASN1_STRFLGS_ESC_CTRL | \ - ASN1_STRFLGS_ESC_MSB | \ - ASN1_STRFLGS_UTF8_CONVERT | \ - ASN1_STRFLGS_DUMP_UNKNOWN | \ - ASN1_STRFLGS_DUMP_DER) - - -struct asn1_type_st { - int type; - union { - char *ptr; - ASN1_BOOLEAN boolean; - ASN1_STRING *asn1_string; - ASN1_OBJECT *object; - ASN1_INTEGER *integer; - ASN1_ENUMERATED *enumerated; - ASN1_BIT_STRING *bit_string; - ASN1_OCTET_STRING *octet_string; - ASN1_PRINTABLESTRING *printablestring; - ASN1_T61STRING *t61string; - ASN1_IA5STRING *ia5string; - ASN1_GENERALSTRING *generalstring; - ASN1_BMPSTRING *bmpstring; - ASN1_UNIVERSALSTRING *universalstring; - ASN1_UTCTIME *utctime; - ASN1_GENERALIZEDTIME *generalizedtime; - ASN1_VISIBLESTRING *visiblestring; - ASN1_UTF8STRING *utf8string; - /* - * set and sequence are left complete and still contain the set or - * sequence bytes - */ - ASN1_STRING *set; - ASN1_STRING *sequence; - ASN1_VALUE *asn1_value; - } value; -}; - -SKM_DEFINE_STACK_OF_INTERNAL(ASN1_TYPE, ASN1_TYPE, ASN1_TYPE) -#define sk_ASN1_TYPE_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_TYPE_sk_type(sk)) -#define sk_ASN1_TYPE_value(sk, idx) ((ASN1_TYPE *)OPENSSL_sk_value(ossl_check_const_ASN1_TYPE_sk_type(sk), (idx))) -#define sk_ASN1_TYPE_new(cmp) ((STACK_OF(ASN1_TYPE) *)OPENSSL_sk_new(ossl_check_ASN1_TYPE_compfunc_type(cmp))) -#define sk_ASN1_TYPE_new_null() ((STACK_OF(ASN1_TYPE) *)OPENSSL_sk_new_null()) -#define sk_ASN1_TYPE_new_reserve(cmp, n) ((STACK_OF(ASN1_TYPE) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_TYPE_compfunc_type(cmp), (n))) -#define sk_ASN1_TYPE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_TYPE_sk_type(sk), (n)) -#define sk_ASN1_TYPE_free(sk) OPENSSL_sk_free(ossl_check_ASN1_TYPE_sk_type(sk)) -#define sk_ASN1_TYPE_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_TYPE_sk_type(sk)) -#define sk_ASN1_TYPE_delete(sk, i) ((ASN1_TYPE *)OPENSSL_sk_delete(ossl_check_ASN1_TYPE_sk_type(sk), (i))) -#define sk_ASN1_TYPE_delete_ptr(sk, ptr) ((ASN1_TYPE *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr))) -#define sk_ASN1_TYPE_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr)) -#define sk_ASN1_TYPE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr)) -#define sk_ASN1_TYPE_pop(sk) ((ASN1_TYPE *)OPENSSL_sk_pop(ossl_check_ASN1_TYPE_sk_type(sk))) -#define sk_ASN1_TYPE_shift(sk) ((ASN1_TYPE *)OPENSSL_sk_shift(ossl_check_ASN1_TYPE_sk_type(sk))) -#define sk_ASN1_TYPE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_freefunc_type(freefunc)) -#define sk_ASN1_TYPE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr), (idx)) -#define sk_ASN1_TYPE_set(sk, idx, ptr) ((ASN1_TYPE *)OPENSSL_sk_set(ossl_check_ASN1_TYPE_sk_type(sk), (idx), ossl_check_ASN1_TYPE_type(ptr))) -#define sk_ASN1_TYPE_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr)) -#define sk_ASN1_TYPE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr)) -#define sk_ASN1_TYPE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr), pnum) -#define sk_ASN1_TYPE_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_TYPE_sk_type(sk)) -#define sk_ASN1_TYPE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_TYPE_sk_type(sk)) -#define sk_ASN1_TYPE_dup(sk) ((STACK_OF(ASN1_TYPE) *)OPENSSL_sk_dup(ossl_check_const_ASN1_TYPE_sk_type(sk))) -#define sk_ASN1_TYPE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_TYPE) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_copyfunc_type(copyfunc), ossl_check_ASN1_TYPE_freefunc_type(freefunc))) -#define sk_ASN1_TYPE_set_cmp_func(sk, cmp) ((sk_ASN1_TYPE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_compfunc_type(cmp))) - - -typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY; - -DECLARE_ASN1_ENCODE_FUNCTIONS_name(ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY) -DECLARE_ASN1_ENCODE_FUNCTIONS_name(ASN1_SEQUENCE_ANY, ASN1_SET_ANY) - -/* This is used to contain a list of bit names */ -typedef struct BIT_STRING_BITNAME_st { - int bitnum; - const char *lname; - const char *sname; -} BIT_STRING_BITNAME; - -# define B_ASN1_TIME \ - B_ASN1_UTCTIME | \ - B_ASN1_GENERALIZEDTIME - -# define B_ASN1_PRINTABLE \ - B_ASN1_NUMERICSTRING| \ - B_ASN1_PRINTABLESTRING| \ - B_ASN1_T61STRING| \ - B_ASN1_IA5STRING| \ - B_ASN1_BIT_STRING| \ - B_ASN1_UNIVERSALSTRING|\ - B_ASN1_BMPSTRING|\ - B_ASN1_UTF8STRING|\ - B_ASN1_SEQUENCE|\ - B_ASN1_UNKNOWN - -# define B_ASN1_DIRECTORYSTRING \ - B_ASN1_PRINTABLESTRING| \ - B_ASN1_TELETEXSTRING|\ - B_ASN1_BMPSTRING|\ - B_ASN1_UNIVERSALSTRING|\ - B_ASN1_UTF8STRING - -# define B_ASN1_DISPLAYTEXT \ - B_ASN1_IA5STRING| \ - B_ASN1_VISIBLESTRING| \ - B_ASN1_BMPSTRING|\ - B_ASN1_UTF8STRING - -DECLARE_ASN1_ALLOC_FUNCTIONS_name(ASN1_TYPE, ASN1_TYPE) -DECLARE_ASN1_ENCODE_FUNCTIONS(ASN1_TYPE, ASN1_ANY, ASN1_TYPE) - -int ASN1_TYPE_get(const ASN1_TYPE *a); -void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value); -int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value); -int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b); - -ASN1_TYPE *ASN1_TYPE_pack_sequence(const ASN1_ITEM *it, void *s, ASN1_TYPE **t); -void *ASN1_TYPE_unpack_sequence(const ASN1_ITEM *it, const ASN1_TYPE *t); - -SKM_DEFINE_STACK_OF_INTERNAL(ASN1_OBJECT, ASN1_OBJECT, ASN1_OBJECT) -#define sk_ASN1_OBJECT_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_OBJECT_sk_type(sk)) -#define sk_ASN1_OBJECT_value(sk, idx) ((ASN1_OBJECT *)OPENSSL_sk_value(ossl_check_const_ASN1_OBJECT_sk_type(sk), (idx))) -#define sk_ASN1_OBJECT_new(cmp) ((STACK_OF(ASN1_OBJECT) *)OPENSSL_sk_new(ossl_check_ASN1_OBJECT_compfunc_type(cmp))) -#define sk_ASN1_OBJECT_new_null() ((STACK_OF(ASN1_OBJECT) *)OPENSSL_sk_new_null()) -#define sk_ASN1_OBJECT_new_reserve(cmp, n) ((STACK_OF(ASN1_OBJECT) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_OBJECT_compfunc_type(cmp), (n))) -#define sk_ASN1_OBJECT_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_OBJECT_sk_type(sk), (n)) -#define sk_ASN1_OBJECT_free(sk) OPENSSL_sk_free(ossl_check_ASN1_OBJECT_sk_type(sk)) -#define sk_ASN1_OBJECT_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_OBJECT_sk_type(sk)) -#define sk_ASN1_OBJECT_delete(sk, i) ((ASN1_OBJECT *)OPENSSL_sk_delete(ossl_check_ASN1_OBJECT_sk_type(sk), (i))) -#define sk_ASN1_OBJECT_delete_ptr(sk, ptr) ((ASN1_OBJECT *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr))) -#define sk_ASN1_OBJECT_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr)) -#define sk_ASN1_OBJECT_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr)) -#define sk_ASN1_OBJECT_pop(sk) ((ASN1_OBJECT *)OPENSSL_sk_pop(ossl_check_ASN1_OBJECT_sk_type(sk))) -#define sk_ASN1_OBJECT_shift(sk) ((ASN1_OBJECT *)OPENSSL_sk_shift(ossl_check_ASN1_OBJECT_sk_type(sk))) -#define sk_ASN1_OBJECT_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_freefunc_type(freefunc)) -#define sk_ASN1_OBJECT_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr), (idx)) -#define sk_ASN1_OBJECT_set(sk, idx, ptr) ((ASN1_OBJECT *)OPENSSL_sk_set(ossl_check_ASN1_OBJECT_sk_type(sk), (idx), ossl_check_ASN1_OBJECT_type(ptr))) -#define sk_ASN1_OBJECT_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr)) -#define sk_ASN1_OBJECT_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr)) -#define sk_ASN1_OBJECT_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr), pnum) -#define sk_ASN1_OBJECT_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_OBJECT_sk_type(sk)) -#define sk_ASN1_OBJECT_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_OBJECT_sk_type(sk)) -#define sk_ASN1_OBJECT_dup(sk) ((STACK_OF(ASN1_OBJECT) *)OPENSSL_sk_dup(ossl_check_const_ASN1_OBJECT_sk_type(sk))) -#define sk_ASN1_OBJECT_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_OBJECT) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_copyfunc_type(copyfunc), ossl_check_ASN1_OBJECT_freefunc_type(freefunc))) -#define sk_ASN1_OBJECT_set_cmp_func(sk, cmp) ((sk_ASN1_OBJECT_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_compfunc_type(cmp))) - - -DECLARE_ASN1_FUNCTIONS(ASN1_OBJECT) - -ASN1_STRING *ASN1_STRING_new(void); -void ASN1_STRING_free(ASN1_STRING *a); -void ASN1_STRING_clear_free(ASN1_STRING *a); -int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str); -DECLARE_ASN1_DUP_FUNCTION(ASN1_STRING) -ASN1_STRING *ASN1_STRING_type_new(int type); -int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b); - /* - * Since this is used to store all sorts of things, via macros, for now, - * make its data void * - */ -int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); -void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len); -int ASN1_STRING_length(const ASN1_STRING *x); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 void ASN1_STRING_length_set(ASN1_STRING *x, int n); -# endif -int ASN1_STRING_type(const ASN1_STRING *x); -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 unsigned char *ASN1_STRING_data(ASN1_STRING *x); -# endif -const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x); - -DECLARE_ASN1_FUNCTIONS(ASN1_BIT_STRING) -int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length); -int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value); -int ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n); -int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a, - const unsigned char *flags, int flags_len); - -int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, - BIT_STRING_BITNAME *tbl, int indent); -int ASN1_BIT_STRING_num_asc(const char *name, BIT_STRING_BITNAME *tbl); -int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, const char *name, int value, - BIT_STRING_BITNAME *tbl); - -SKM_DEFINE_STACK_OF_INTERNAL(ASN1_INTEGER, ASN1_INTEGER, ASN1_INTEGER) -#define sk_ASN1_INTEGER_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_INTEGER_sk_type(sk)) -#define sk_ASN1_INTEGER_value(sk, idx) ((ASN1_INTEGER *)OPENSSL_sk_value(ossl_check_const_ASN1_INTEGER_sk_type(sk), (idx))) -#define sk_ASN1_INTEGER_new(cmp) ((STACK_OF(ASN1_INTEGER) *)OPENSSL_sk_new(ossl_check_ASN1_INTEGER_compfunc_type(cmp))) -#define sk_ASN1_INTEGER_new_null() ((STACK_OF(ASN1_INTEGER) *)OPENSSL_sk_new_null()) -#define sk_ASN1_INTEGER_new_reserve(cmp, n) ((STACK_OF(ASN1_INTEGER) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_INTEGER_compfunc_type(cmp), (n))) -#define sk_ASN1_INTEGER_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_INTEGER_sk_type(sk), (n)) -#define sk_ASN1_INTEGER_free(sk) OPENSSL_sk_free(ossl_check_ASN1_INTEGER_sk_type(sk)) -#define sk_ASN1_INTEGER_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_INTEGER_sk_type(sk)) -#define sk_ASN1_INTEGER_delete(sk, i) ((ASN1_INTEGER *)OPENSSL_sk_delete(ossl_check_ASN1_INTEGER_sk_type(sk), (i))) -#define sk_ASN1_INTEGER_delete_ptr(sk, ptr) ((ASN1_INTEGER *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr))) -#define sk_ASN1_INTEGER_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr)) -#define sk_ASN1_INTEGER_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr)) -#define sk_ASN1_INTEGER_pop(sk) ((ASN1_INTEGER *)OPENSSL_sk_pop(ossl_check_ASN1_INTEGER_sk_type(sk))) -#define sk_ASN1_INTEGER_shift(sk) ((ASN1_INTEGER *)OPENSSL_sk_shift(ossl_check_ASN1_INTEGER_sk_type(sk))) -#define sk_ASN1_INTEGER_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_freefunc_type(freefunc)) -#define sk_ASN1_INTEGER_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr), (idx)) -#define sk_ASN1_INTEGER_set(sk, idx, ptr) ((ASN1_INTEGER *)OPENSSL_sk_set(ossl_check_ASN1_INTEGER_sk_type(sk), (idx), ossl_check_ASN1_INTEGER_type(ptr))) -#define sk_ASN1_INTEGER_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr)) -#define sk_ASN1_INTEGER_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr)) -#define sk_ASN1_INTEGER_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr), pnum) -#define sk_ASN1_INTEGER_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_INTEGER_sk_type(sk)) -#define sk_ASN1_INTEGER_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_INTEGER_sk_type(sk)) -#define sk_ASN1_INTEGER_dup(sk) ((STACK_OF(ASN1_INTEGER) *)OPENSSL_sk_dup(ossl_check_const_ASN1_INTEGER_sk_type(sk))) -#define sk_ASN1_INTEGER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_INTEGER) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_copyfunc_type(copyfunc), ossl_check_ASN1_INTEGER_freefunc_type(freefunc))) -#define sk_ASN1_INTEGER_set_cmp_func(sk, cmp) ((sk_ASN1_INTEGER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_compfunc_type(cmp))) - - - -DECLARE_ASN1_FUNCTIONS(ASN1_INTEGER) -ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, - long length); -DECLARE_ASN1_DUP_FUNCTION(ASN1_INTEGER) -int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y); - -DECLARE_ASN1_FUNCTIONS(ASN1_ENUMERATED) - -int ASN1_UTCTIME_check(const ASN1_UTCTIME *a); -ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t); -ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, - int offset_day, long offset_sec); -int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); -int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); - -int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a); -ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, - time_t t); -ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, - time_t t, int offset_day, - long offset_sec); -int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); - -int ASN1_TIME_diff(int *pday, int *psec, - const ASN1_TIME *from, const ASN1_TIME *to); - -DECLARE_ASN1_FUNCTIONS(ASN1_OCTET_STRING) -DECLARE_ASN1_DUP_FUNCTION(ASN1_OCTET_STRING) -int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, - const ASN1_OCTET_STRING *b); -int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, - int len); - -SKM_DEFINE_STACK_OF_INTERNAL(ASN1_UTF8STRING, ASN1_UTF8STRING, ASN1_UTF8STRING) -#define sk_ASN1_UTF8STRING_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_UTF8STRING_sk_type(sk)) -#define sk_ASN1_UTF8STRING_value(sk, idx) ((ASN1_UTF8STRING *)OPENSSL_sk_value(ossl_check_const_ASN1_UTF8STRING_sk_type(sk), (idx))) -#define sk_ASN1_UTF8STRING_new(cmp) ((STACK_OF(ASN1_UTF8STRING) *)OPENSSL_sk_new(ossl_check_ASN1_UTF8STRING_compfunc_type(cmp))) -#define sk_ASN1_UTF8STRING_new_null() ((STACK_OF(ASN1_UTF8STRING) *)OPENSSL_sk_new_null()) -#define sk_ASN1_UTF8STRING_new_reserve(cmp, n) ((STACK_OF(ASN1_UTF8STRING) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_UTF8STRING_compfunc_type(cmp), (n))) -#define sk_ASN1_UTF8STRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_UTF8STRING_sk_type(sk), (n)) -#define sk_ASN1_UTF8STRING_free(sk) OPENSSL_sk_free(ossl_check_ASN1_UTF8STRING_sk_type(sk)) -#define sk_ASN1_UTF8STRING_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_UTF8STRING_sk_type(sk)) -#define sk_ASN1_UTF8STRING_delete(sk, i) ((ASN1_UTF8STRING *)OPENSSL_sk_delete(ossl_check_ASN1_UTF8STRING_sk_type(sk), (i))) -#define sk_ASN1_UTF8STRING_delete_ptr(sk, ptr) ((ASN1_UTF8STRING *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr))) -#define sk_ASN1_UTF8STRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr)) -#define sk_ASN1_UTF8STRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr)) -#define sk_ASN1_UTF8STRING_pop(sk) ((ASN1_UTF8STRING *)OPENSSL_sk_pop(ossl_check_ASN1_UTF8STRING_sk_type(sk))) -#define sk_ASN1_UTF8STRING_shift(sk) ((ASN1_UTF8STRING *)OPENSSL_sk_shift(ossl_check_ASN1_UTF8STRING_sk_type(sk))) -#define sk_ASN1_UTF8STRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_freefunc_type(freefunc)) -#define sk_ASN1_UTF8STRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr), (idx)) -#define sk_ASN1_UTF8STRING_set(sk, idx, ptr) ((ASN1_UTF8STRING *)OPENSSL_sk_set(ossl_check_ASN1_UTF8STRING_sk_type(sk), (idx), ossl_check_ASN1_UTF8STRING_type(ptr))) -#define sk_ASN1_UTF8STRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr)) -#define sk_ASN1_UTF8STRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr)) -#define sk_ASN1_UTF8STRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr), pnum) -#define sk_ASN1_UTF8STRING_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_UTF8STRING_sk_type(sk)) -#define sk_ASN1_UTF8STRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_UTF8STRING_sk_type(sk)) -#define sk_ASN1_UTF8STRING_dup(sk) ((STACK_OF(ASN1_UTF8STRING) *)OPENSSL_sk_dup(ossl_check_const_ASN1_UTF8STRING_sk_type(sk))) -#define sk_ASN1_UTF8STRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_UTF8STRING) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_copyfunc_type(copyfunc), ossl_check_ASN1_UTF8STRING_freefunc_type(freefunc))) -#define sk_ASN1_UTF8STRING_set_cmp_func(sk, cmp) ((sk_ASN1_UTF8STRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_compfunc_type(cmp))) - - -DECLARE_ASN1_FUNCTIONS(ASN1_VISIBLESTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UNIVERSALSTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UTF8STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_NULL) -DECLARE_ASN1_FUNCTIONS(ASN1_BMPSTRING) - -int UTF8_getc(const unsigned char *str, int len, unsigned long *val); -int UTF8_putc(unsigned char *str, int len, unsigned long value); - -SKM_DEFINE_STACK_OF_INTERNAL(ASN1_GENERALSTRING, ASN1_GENERALSTRING, ASN1_GENERALSTRING) -#define sk_ASN1_GENERALSTRING_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_GENERALSTRING_sk_type(sk)) -#define sk_ASN1_GENERALSTRING_value(sk, idx) ((ASN1_GENERALSTRING *)OPENSSL_sk_value(ossl_check_const_ASN1_GENERALSTRING_sk_type(sk), (idx))) -#define sk_ASN1_GENERALSTRING_new(cmp) ((STACK_OF(ASN1_GENERALSTRING) *)OPENSSL_sk_new(ossl_check_ASN1_GENERALSTRING_compfunc_type(cmp))) -#define sk_ASN1_GENERALSTRING_new_null() ((STACK_OF(ASN1_GENERALSTRING) *)OPENSSL_sk_new_null()) -#define sk_ASN1_GENERALSTRING_new_reserve(cmp, n) ((STACK_OF(ASN1_GENERALSTRING) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_GENERALSTRING_compfunc_type(cmp), (n))) -#define sk_ASN1_GENERALSTRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_GENERALSTRING_sk_type(sk), (n)) -#define sk_ASN1_GENERALSTRING_free(sk) OPENSSL_sk_free(ossl_check_ASN1_GENERALSTRING_sk_type(sk)) -#define sk_ASN1_GENERALSTRING_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_GENERALSTRING_sk_type(sk)) -#define sk_ASN1_GENERALSTRING_delete(sk, i) ((ASN1_GENERALSTRING *)OPENSSL_sk_delete(ossl_check_ASN1_GENERALSTRING_sk_type(sk), (i))) -#define sk_ASN1_GENERALSTRING_delete_ptr(sk, ptr) ((ASN1_GENERALSTRING *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr))) -#define sk_ASN1_GENERALSTRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr)) -#define sk_ASN1_GENERALSTRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr)) -#define sk_ASN1_GENERALSTRING_pop(sk) ((ASN1_GENERALSTRING *)OPENSSL_sk_pop(ossl_check_ASN1_GENERALSTRING_sk_type(sk))) -#define sk_ASN1_GENERALSTRING_shift(sk) ((ASN1_GENERALSTRING *)OPENSSL_sk_shift(ossl_check_ASN1_GENERALSTRING_sk_type(sk))) -#define sk_ASN1_GENERALSTRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_freefunc_type(freefunc)) -#define sk_ASN1_GENERALSTRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr), (idx)) -#define sk_ASN1_GENERALSTRING_set(sk, idx, ptr) ((ASN1_GENERALSTRING *)OPENSSL_sk_set(ossl_check_ASN1_GENERALSTRING_sk_type(sk), (idx), ossl_check_ASN1_GENERALSTRING_type(ptr))) -#define sk_ASN1_GENERALSTRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr)) -#define sk_ASN1_GENERALSTRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr)) -#define sk_ASN1_GENERALSTRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr), pnum) -#define sk_ASN1_GENERALSTRING_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_GENERALSTRING_sk_type(sk)) -#define sk_ASN1_GENERALSTRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_GENERALSTRING_sk_type(sk)) -#define sk_ASN1_GENERALSTRING_dup(sk) ((STACK_OF(ASN1_GENERALSTRING) *)OPENSSL_sk_dup(ossl_check_const_ASN1_GENERALSTRING_sk_type(sk))) -#define sk_ASN1_GENERALSTRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_GENERALSTRING) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_copyfunc_type(copyfunc), ossl_check_ASN1_GENERALSTRING_freefunc_type(freefunc))) -#define sk_ASN1_GENERALSTRING_set_cmp_func(sk, cmp) ((sk_ASN1_GENERALSTRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_compfunc_type(cmp))) - - -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, ASN1_PRINTABLE) - -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DIRECTORYSTRING) -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DISPLAYTEXT) -DECLARE_ASN1_FUNCTIONS(ASN1_PRINTABLESTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_T61STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_IA5STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_GENERALSTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UTCTIME) -DECLARE_ASN1_FUNCTIONS(ASN1_GENERALIZEDTIME) -DECLARE_ASN1_FUNCTIONS(ASN1_TIME) - -DECLARE_ASN1_DUP_FUNCTION(ASN1_TIME) -DECLARE_ASN1_DUP_FUNCTION(ASN1_UTCTIME) -DECLARE_ASN1_DUP_FUNCTION(ASN1_GENERALIZEDTIME) - -DECLARE_ASN1_ITEM(ASN1_OCTET_STRING_NDEF) - -ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); -ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, - int offset_day, long offset_sec); -int ASN1_TIME_check(const ASN1_TIME *t); -ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(const ASN1_TIME *t, - ASN1_GENERALIZEDTIME **out); -int ASN1_TIME_set_string(ASN1_TIME *s, const char *str); -int ASN1_TIME_set_string_X509(ASN1_TIME *s, const char *str); -int ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm); -int ASN1_TIME_normalize(ASN1_TIME *s); -int ASN1_TIME_cmp_time_t(const ASN1_TIME *s, time_t t); -int ASN1_TIME_compare(const ASN1_TIME *a, const ASN1_TIME *b); - -int i2a_ASN1_INTEGER(BIO *bp, const ASN1_INTEGER *a); -int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size); -int i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a); -int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size); -int i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a); -int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size); -int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type); -int i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a); - -int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num); -ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int len, - const char *sn, const char *ln); - -int ASN1_INTEGER_get_int64(int64_t *pr, const ASN1_INTEGER *a); -int ASN1_INTEGER_set_int64(ASN1_INTEGER *a, int64_t r); -int ASN1_INTEGER_get_uint64(uint64_t *pr, const ASN1_INTEGER *a); -int ASN1_INTEGER_set_uint64(ASN1_INTEGER *a, uint64_t r); - -int ASN1_INTEGER_set(ASN1_INTEGER *a, long v); -long ASN1_INTEGER_get(const ASN1_INTEGER *a); -ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai); -BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn); - -int ASN1_ENUMERATED_get_int64(int64_t *pr, const ASN1_ENUMERATED *a); -int ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *a, int64_t r); - - -int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v); -long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a); -ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(const BIGNUM *bn, ASN1_ENUMERATED *ai); -BIGNUM *ASN1_ENUMERATED_to_BN(const ASN1_ENUMERATED *ai, BIGNUM *bn); - -/* General */ -/* given a string, return the correct type, max is the maximum length */ -int ASN1_PRINTABLE_type(const unsigned char *s, int max); - -unsigned long ASN1_tag2bit(int tag); - -/* SPECIALS */ -int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, - int *pclass, long omax); -int ASN1_check_infinite_end(unsigned char **p, long len); -int ASN1_const_check_infinite_end(const unsigned char **p, long len); -void ASN1_put_object(unsigned char **pp, int constructed, int length, - int tag, int xclass); -int ASN1_put_eoc(unsigned char **pp); -int ASN1_object_size(int constructed, int length, int tag); - -/* Used to implement other functions */ -void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, const void *x); - -# define ASN1_dup_of(type,i2d,d2i,x) \ - ((type*)ASN1_dup(CHECKED_I2D_OF(type, i2d), \ - CHECKED_D2I_OF(type, d2i), \ - CHECKED_PTR_OF(const type, x))) - -void *ASN1_item_dup(const ASN1_ITEM *it, const void *x); -int ASN1_item_sign_ex(const ASN1_ITEM *it, X509_ALGOR *algor1, - X509_ALGOR *algor2, ASN1_BIT_STRING *signature, - const void *data, const ASN1_OCTET_STRING *id, - EVP_PKEY *pkey, const EVP_MD *md, OSSL_LIB_CTX *libctx, - const char *propq); -int ASN1_item_verify_ex(const ASN1_ITEM *it, const X509_ALGOR *alg, - const ASN1_BIT_STRING *signature, const void *data, - const ASN1_OCTET_STRING *id, EVP_PKEY *pkey, - OSSL_LIB_CTX *libctx, const char *propq); - -/* ASN1 alloc/free macros for when a type is only used internally */ - -# define M_ASN1_new_of(type) (type *)ASN1_item_new(ASN1_ITEM_rptr(type)) -# define M_ASN1_free_of(x, type) \ - ASN1_item_free(CHECKED_PTR_OF(type, x), ASN1_ITEM_rptr(type)) - -# ifndef OPENSSL_NO_STDIO -void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x); - -# define ASN1_d2i_fp_of(type,xnew,d2i,in,x) \ - ((type*)ASN1_d2i_fp(CHECKED_NEW_OF(type, xnew), \ - CHECKED_D2I_OF(type, d2i), \ - in, \ - CHECKED_PPTR_OF(type, x))) - -void *ASN1_item_d2i_fp_ex(const ASN1_ITEM *it, FILE *in, void *x, - OSSL_LIB_CTX *libctx, const char *propq); -void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x); -int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, const void *x); - -# define ASN1_i2d_fp_of(type,i2d,out,x) \ - (ASN1_i2d_fp(CHECKED_I2D_OF(type, i2d), \ - out, \ - CHECKED_PTR_OF(const type, x))) - -int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, const void *x); -int ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned long flags); -# endif - -int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in); - -void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x); - -# define ASN1_d2i_bio_of(type,xnew,d2i,in,x) \ - ((type*)ASN1_d2i_bio( CHECKED_NEW_OF(type, xnew), \ - CHECKED_D2I_OF(type, d2i), \ - in, \ - CHECKED_PPTR_OF(type, x))) - -void *ASN1_item_d2i_bio_ex(const ASN1_ITEM *it, BIO *in, void *pval, - OSSL_LIB_CTX *libctx, const char *propq); -void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *pval); -int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, const void *x); - -# define ASN1_i2d_bio_of(type,i2d,out,x) \ - (ASN1_i2d_bio(CHECKED_I2D_OF(type, i2d), \ - out, \ - CHECKED_PTR_OF(const type, x))) - -int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, const void *x); -BIO *ASN1_item_i2d_mem_bio(const ASN1_ITEM *it, const ASN1_VALUE *val); -int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a); -int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a); -int ASN1_TIME_print(BIO *bp, const ASN1_TIME *tm); -int ASN1_TIME_print_ex(BIO *bp, const ASN1_TIME *tm, unsigned long flags); -int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v); -int ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned long flags); -int ASN1_buf_print(BIO *bp, const unsigned char *buf, size_t buflen, int off); -int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, - unsigned char *buf, int off); -int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent); -int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, - int dump); -const char *ASN1_tag2str(int tag); - -/* Used to load and write Netscape format cert */ - -int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s); - -int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len); -int ASN1_TYPE_get_octetstring(const ASN1_TYPE *a, unsigned char *data, int max_len); -int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, - unsigned char *data, int len); -int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, - unsigned char *data, int max_len); - -void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); -void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, - OSSL_LIB_CTX *libctx, const char *propq); - -ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, - ASN1_OCTET_STRING **oct); - -void ASN1_STRING_set_default_mask(unsigned long mask); -int ASN1_STRING_set_default_mask_asc(const char *p); -unsigned long ASN1_STRING_get_default_mask(void); -int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, - int inform, unsigned long mask); -int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, - int inform, unsigned long mask, - long minsize, long maxsize); - -ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, - const unsigned char *in, int inlen, - int inform, int nid); -ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid); -int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long); -void ASN1_STRING_TABLE_cleanup(void); - -/* ASN1 template functions */ - -/* Old API compatible functions */ -ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it); -ASN1_VALUE *ASN1_item_new_ex(const ASN1_ITEM *it, OSSL_LIB_CTX *libctx, - const char *propq); -void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); -ASN1_VALUE *ASN1_item_d2i_ex(ASN1_VALUE **val, const unsigned char **in, - long len, const ASN1_ITEM *it, - OSSL_LIB_CTX *libctx, const char *propq); -ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, - long len, const ASN1_ITEM *it); -int ASN1_item_i2d(const ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); -int ASN1_item_ndef_i2d(const ASN1_VALUE *val, unsigned char **out, - const ASN1_ITEM *it); - -void ASN1_add_oid_module(void); -void ASN1_add_stable_module(void); - -ASN1_TYPE *ASN1_generate_nconf(const char *str, CONF *nconf); -ASN1_TYPE *ASN1_generate_v3(const char *str, X509V3_CTX *cnf); -int ASN1_str2mask(const char *str, unsigned long *pmask); - -/* ASN1 Print flags */ - -/* Indicate missing OPTIONAL fields */ -# define ASN1_PCTX_FLAGS_SHOW_ABSENT 0x001 -/* Mark start and end of SEQUENCE */ -# define ASN1_PCTX_FLAGS_SHOW_SEQUENCE 0x002 -/* Mark start and end of SEQUENCE/SET OF */ -# define ASN1_PCTX_FLAGS_SHOW_SSOF 0x004 -/* Show the ASN1 type of primitives */ -# define ASN1_PCTX_FLAGS_SHOW_TYPE 0x008 -/* Don't show ASN1 type of ANY */ -# define ASN1_PCTX_FLAGS_NO_ANY_TYPE 0x010 -/* Don't show ASN1 type of MSTRINGs */ -# define ASN1_PCTX_FLAGS_NO_MSTRING_TYPE 0x020 -/* Don't show field names in SEQUENCE */ -# define ASN1_PCTX_FLAGS_NO_FIELD_NAME 0x040 -/* Show structure names of each SEQUENCE field */ -# define ASN1_PCTX_FLAGS_SHOW_FIELD_STRUCT_NAME 0x080 -/* Don't show structure name even at top level */ -# define ASN1_PCTX_FLAGS_NO_STRUCT_NAME 0x100 - -int ASN1_item_print(BIO *out, const ASN1_VALUE *ifld, int indent, - const ASN1_ITEM *it, const ASN1_PCTX *pctx); -ASN1_PCTX *ASN1_PCTX_new(void); -void ASN1_PCTX_free(ASN1_PCTX *p); -unsigned long ASN1_PCTX_get_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_str_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags); - -ASN1_SCTX *ASN1_SCTX_new(int (*scan_cb) (ASN1_SCTX *ctx)); -void ASN1_SCTX_free(ASN1_SCTX *p); -const ASN1_ITEM *ASN1_SCTX_get_item(ASN1_SCTX *p); -const ASN1_TEMPLATE *ASN1_SCTX_get_template(ASN1_SCTX *p); -unsigned long ASN1_SCTX_get_flags(ASN1_SCTX *p); -void ASN1_SCTX_set_app_data(ASN1_SCTX *p, void *data); -void *ASN1_SCTX_get_app_data(ASN1_SCTX *p); - -const BIO_METHOD *BIO_f_asn1(void); - -/* cannot constify val because of CMS_stream() */ -BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it); - -int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, - const ASN1_ITEM *it); -int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, - const char *hdr, const ASN1_ITEM *it); -/* cannot constify val because of CMS_dataFinal() */ -int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, - int ctype_nid, int econt_nid, - STACK_OF(X509_ALGOR) *mdalgs, const ASN1_ITEM *it); -int SMIME_write_ASN1_ex(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, - int ctype_nid, int econt_nid, - STACK_OF(X509_ALGOR) *mdalgs, const ASN1_ITEM *it, - OSSL_LIB_CTX *libctx, const char *propq); -ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it); -ASN1_VALUE *SMIME_read_ASN1_ex(BIO *bio, int flags, BIO **bcont, - const ASN1_ITEM *it, ASN1_VALUE **x, - OSSL_LIB_CTX *libctx, const char *propq); -int SMIME_crlf_copy(BIO *in, BIO *out, int flags); -int SMIME_text(BIO *in, BIO *out); - -const ASN1_ITEM *ASN1_ITEM_lookup(const char *name); -const ASN1_ITEM *ASN1_ITEM_get(size_t i); - -/* Legacy compatibility */ -# define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) -# define DECLARE_ASN1_FUNCTIONS_const(type) DECLARE_ASN1_FUNCTIONS(type) -# define DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS(type, name) -# define I2D_OF_const(type) I2D_OF(type) -# define ASN1_dup_of_const(type,i2d,d2i,x) ASN1_dup_of(type,i2d,d2i,x) -# define ASN1_i2d_fp_of_const(type,i2d,out,x) ASN1_i2d_fp_of(type,i2d,out,x) -# define ASN1_i2d_bio_of_const(type,i2d,out,x) ASN1_i2d_bio_of(type,i2d,out,x) - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/asn1err.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/asn1err.h deleted file mode 100644 index 8fd85ed..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/asn1err.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_ASN1ERR_H -# define OPENSSL_ASN1ERR_H -# pragma once - -# include -# include -# include - - - -/* - * ASN1 reason codes. - */ -# define ASN1_R_ADDING_OBJECT 171 -# define ASN1_R_ASN1_PARSE_ERROR 203 -# define ASN1_R_ASN1_SIG_PARSE_ERROR 204 -# define ASN1_R_AUX_ERROR 100 -# define ASN1_R_BAD_OBJECT_HEADER 102 -# define ASN1_R_BAD_TEMPLATE 230 -# define ASN1_R_BMPSTRING_IS_WRONG_LENGTH 214 -# define ASN1_R_BN_LIB 105 -# define ASN1_R_BOOLEAN_IS_WRONG_LENGTH 106 -# define ASN1_R_BUFFER_TOO_SMALL 107 -# define ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 108 -# define ASN1_R_CONTEXT_NOT_INITIALISED 217 -# define ASN1_R_DATA_IS_WRONG 109 -# define ASN1_R_DECODE_ERROR 110 -# define ASN1_R_DEPTH_EXCEEDED 174 -# define ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED 198 -# define ASN1_R_ENCODE_ERROR 112 -# define ASN1_R_ERROR_GETTING_TIME 173 -# define ASN1_R_ERROR_LOADING_SECTION 172 -# define ASN1_R_ERROR_SETTING_CIPHER_PARAMS 114 -# define ASN1_R_EXPECTING_AN_INTEGER 115 -# define ASN1_R_EXPECTING_AN_OBJECT 116 -# define ASN1_R_EXPLICIT_LENGTH_MISMATCH 119 -# define ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED 120 -# define ASN1_R_FIELD_MISSING 121 -# define ASN1_R_FIRST_NUM_TOO_LARGE 122 -# define ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT 232 -# define ASN1_R_HEADER_TOO_LONG 123 -# define ASN1_R_ILLEGAL_BITSTRING_FORMAT 175 -# define ASN1_R_ILLEGAL_BOOLEAN 176 -# define ASN1_R_ILLEGAL_CHARACTERS 124 -# define ASN1_R_ILLEGAL_FORMAT 177 -# define ASN1_R_ILLEGAL_HEX 178 -# define ASN1_R_ILLEGAL_IMPLICIT_TAG 179 -# define ASN1_R_ILLEGAL_INTEGER 180 -# define ASN1_R_ILLEGAL_NEGATIVE_VALUE 226 -# define ASN1_R_ILLEGAL_NESTED_TAGGING 181 -# define ASN1_R_ILLEGAL_NULL 125 -# define ASN1_R_ILLEGAL_NULL_VALUE 182 -# define ASN1_R_ILLEGAL_OBJECT 183 -# define ASN1_R_ILLEGAL_OPTIONAL_ANY 126 -# define ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE 170 -# define ASN1_R_ILLEGAL_PADDING 221 -# define ASN1_R_ILLEGAL_TAGGED_ANY 127 -# define ASN1_R_ILLEGAL_TIME_VALUE 184 -# define ASN1_R_ILLEGAL_ZERO_CONTENT 222 -# define ASN1_R_INTEGER_NOT_ASCII_FORMAT 185 -# define ASN1_R_INTEGER_TOO_LARGE_FOR_LONG 128 -# define ASN1_R_INVALID_BIT_STRING_BITS_LEFT 220 -# define ASN1_R_INVALID_BMPSTRING_LENGTH 129 -# define ASN1_R_INVALID_DIGIT 130 -# define ASN1_R_INVALID_MIME_TYPE 205 -# define ASN1_R_INVALID_MODIFIER 186 -# define ASN1_R_INVALID_NUMBER 187 -# define ASN1_R_INVALID_OBJECT_ENCODING 216 -# define ASN1_R_INVALID_SCRYPT_PARAMETERS 227 -# define ASN1_R_INVALID_SEPARATOR 131 -# define ASN1_R_INVALID_STRING_TABLE_VALUE 218 -# define ASN1_R_INVALID_UNIVERSALSTRING_LENGTH 133 -# define ASN1_R_INVALID_UTF8STRING 134 -# define ASN1_R_INVALID_VALUE 219 -# define ASN1_R_LENGTH_TOO_LONG 231 -# define ASN1_R_LIST_ERROR 188 -# define ASN1_R_MIME_NO_CONTENT_TYPE 206 -# define ASN1_R_MIME_PARSE_ERROR 207 -# define ASN1_R_MIME_SIG_PARSE_ERROR 208 -# define ASN1_R_MISSING_EOC 137 -# define ASN1_R_MISSING_SECOND_NUMBER 138 -# define ASN1_R_MISSING_VALUE 189 -# define ASN1_R_MSTRING_NOT_UNIVERSAL 139 -# define ASN1_R_MSTRING_WRONG_TAG 140 -# define ASN1_R_NESTED_ASN1_STRING 197 -# define ASN1_R_NESTED_TOO_DEEP 201 -# define ASN1_R_NON_HEX_CHARACTERS 141 -# define ASN1_R_NOT_ASCII_FORMAT 190 -# define ASN1_R_NOT_ENOUGH_DATA 142 -# define ASN1_R_NO_CONTENT_TYPE 209 -# define ASN1_R_NO_MATCHING_CHOICE_TYPE 143 -# define ASN1_R_NO_MULTIPART_BODY_FAILURE 210 -# define ASN1_R_NO_MULTIPART_BOUNDARY 211 -# define ASN1_R_NO_SIG_CONTENT_TYPE 212 -# define ASN1_R_NULL_IS_WRONG_LENGTH 144 -# define ASN1_R_OBJECT_NOT_ASCII_FORMAT 191 -# define ASN1_R_ODD_NUMBER_OF_CHARS 145 -# define ASN1_R_SECOND_NUMBER_TOO_LARGE 147 -# define ASN1_R_SEQUENCE_LENGTH_MISMATCH 148 -# define ASN1_R_SEQUENCE_NOT_CONSTRUCTED 149 -# define ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG 192 -# define ASN1_R_SHORT_LINE 150 -# define ASN1_R_SIG_INVALID_MIME_TYPE 213 -# define ASN1_R_STREAMING_NOT_SUPPORTED 202 -# define ASN1_R_STRING_TOO_LONG 151 -# define ASN1_R_STRING_TOO_SHORT 152 -# define ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 154 -# define ASN1_R_TIME_NOT_ASCII_FORMAT 193 -# define ASN1_R_TOO_LARGE 223 -# define ASN1_R_TOO_LONG 155 -# define ASN1_R_TOO_SMALL 224 -# define ASN1_R_TYPE_NOT_CONSTRUCTED 156 -# define ASN1_R_TYPE_NOT_PRIMITIVE 195 -# define ASN1_R_UNEXPECTED_EOC 159 -# define ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH 215 -# define ASN1_R_UNKNOWN_DIGEST 229 -# define ASN1_R_UNKNOWN_FORMAT 160 -# define ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM 161 -# define ASN1_R_UNKNOWN_OBJECT_TYPE 162 -# define ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE 163 -# define ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM 199 -# define ASN1_R_UNKNOWN_TAG 194 -# define ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE 164 -# define ASN1_R_UNSUPPORTED_CIPHER 228 -# define ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE 167 -# define ASN1_R_UNSUPPORTED_TYPE 196 -# define ASN1_R_UTCTIME_IS_TOO_SHORT 233 -# define ASN1_R_WRONG_INTEGER_TYPE 225 -# define ASN1_R_WRONG_PUBLIC_KEY_TYPE 200 -# define ASN1_R_WRONG_TAG 168 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/asn1t.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/asn1t.h deleted file mode 100644 index 068f875..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/asn1t.h +++ /dev/null @@ -1,946 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\asn1t.h.in - * - * Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_ASN1T_H -# define OPENSSL_ASN1T_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_ASN1T_H -# endif - -# include -# include -# include - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -/* ASN1 template defines, structures and functions */ - -#ifdef __cplusplus -extern "C" { -#endif - -/*- - * These are the possible values for the itype field of the - * ASN1_ITEM structure and determine how it is interpreted. - * - * For PRIMITIVE types the underlying type - * determines the behaviour if items is NULL. - * - * Otherwise templates must contain a single - * template and the type is treated in the - * same way as the type specified in the template. - * - * For SEQUENCE types the templates field points - * to the members, the size field is the - * structure size. - * - * For CHOICE types the templates field points - * to each possible member (typically a union) - * and the 'size' field is the offset of the - * selector. - * - * The 'funcs' field is used for application-specific - * data and functions. - * - * The EXTERN type uses a new style d2i/i2d. - * The new style should be used where possible - * because it avoids things like the d2i IMPLICIT - * hack. - * - * MSTRING is a multiple string type, it is used - * for a CHOICE of character strings where the - * actual strings all occupy an ASN1_STRING - * structure. In this case the 'utype' field - * has a special meaning, it is used as a mask - * of acceptable types using the B_ASN1 constants. - * - * NDEF_SEQUENCE is the same as SEQUENCE except - * that it will use indefinite length constructed - * encoding if requested. - * - */ - -# define ASN1_ITYPE_PRIMITIVE 0x0 -# define ASN1_ITYPE_SEQUENCE 0x1 -# define ASN1_ITYPE_CHOICE 0x2 -/* unused value 0x3 */ -# define ASN1_ITYPE_EXTERN 0x4 -# define ASN1_ITYPE_MSTRING 0x5 -# define ASN1_ITYPE_NDEF_SEQUENCE 0x6 - -/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ -# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)((iptr)())) - -/* Macros for start and end of ASN1_ITEM definition */ - -# define ASN1_ITEM_start(itname) \ - const ASN1_ITEM * itname##_it(void) \ - { \ - static const ASN1_ITEM local_it = { - -# define static_ASN1_ITEM_start(itname) \ - static ASN1_ITEM_start(itname) - -# define ASN1_ITEM_end(itname) \ - }; \ - return &local_it; \ - } - -/* Macros to aid ASN1 template writing */ - -# define ASN1_ITEM_TEMPLATE(tname) \ - static const ASN1_TEMPLATE tname##_item_tt - -# define ASN1_ITEM_TEMPLATE_END(tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_PRIMITIVE,\ - -1,\ - &tname##_item_tt,\ - 0,\ - NULL,\ - 0,\ - #tname \ - ASN1_ITEM_end(tname) -# define static_ASN1_ITEM_TEMPLATE_END(tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_PRIMITIVE,\ - -1,\ - &tname##_item_tt,\ - 0,\ - NULL,\ - 0,\ - #tname \ - ASN1_ITEM_end(tname) - -/* This is a ASN1 type which just embeds a template */ - -/*- - * This pair helps declare a SEQUENCE. We can do: - * - * ASN1_SEQUENCE(stname) = { - * ... SEQUENCE components ... - * } ASN1_SEQUENCE_END(stname) - * - * This will produce an ASN1_ITEM called stname_it - * for a structure called stname. - * - * If you want the same structure but a different - * name then use: - * - * ASN1_SEQUENCE(itname) = { - * ... SEQUENCE components ... - * } ASN1_SEQUENCE_END_name(stname, itname) - * - * This will create an item called itname_it using - * a structure called stname. - */ - -# define ASN1_SEQUENCE(tname) \ - static const ASN1_TEMPLATE tname##_seq_tt[] - -# define ASN1_SEQUENCE_END(stname) ASN1_SEQUENCE_END_name(stname, stname) - -# define static_ASN1_SEQUENCE_END(stname) static_ASN1_SEQUENCE_END_name(stname, stname) - -# define ASN1_SEQUENCE_END_name(stname, tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #tname \ - ASN1_ITEM_end(tname) - -# define static_ASN1_SEQUENCE_END_name(stname, tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define ASN1_NDEF_SEQUENCE(tname) \ - ASN1_SEQUENCE(tname) - -# define ASN1_NDEF_SEQUENCE_cb(tname, cb) \ - ASN1_SEQUENCE_cb(tname, cb) - -# define ASN1_SEQUENCE_cb(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0, NULL}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_SEQUENCE_const_cb(tname, const_cb) \ - static const ASN1_AUX tname##_aux = \ - {NULL, ASN1_AFLG_CONST_CB, 0, 0, NULL, 0, const_cb}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_SEQUENCE_cb_const_cb(tname, cb, const_cb) \ - static const ASN1_AUX tname##_aux = \ - {NULL, ASN1_AFLG_CONST_CB, 0, 0, cb, 0, const_cb}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_SEQUENCE_ref(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_REFCOUNT, offsetof(tname, references), offsetof(tname, lock), cb, 0, NULL}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_SEQUENCE_enc(tname, enc, cb) \ - static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_ENCODING, 0, 0, cb, offsetof(tname, enc), NULL}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_NDEF_SEQUENCE_END(tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_NDEF_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(tname),\ - #tname \ - ASN1_ITEM_end(tname) -# define static_ASN1_NDEF_SEQUENCE_END(tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_NDEF_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(tname),\ - #tname \ - ASN1_ITEM_end(tname) - - -# define ASN1_SEQUENCE_END_enc(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) - -# define ASN1_SEQUENCE_END_cb(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) -# define static_ASN1_SEQUENCE_END_cb(stname, tname) static_ASN1_SEQUENCE_END_ref(stname, tname) - -# define ASN1_SEQUENCE_END_ref(stname, tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #tname \ - ASN1_ITEM_end(tname) -# define static_ASN1_SEQUENCE_END_ref(stname, tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define ASN1_NDEF_SEQUENCE_END_cb(stname, tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_NDEF_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -/*- - * This pair helps declare a CHOICE type. We can do: - * - * ASN1_CHOICE(chname) = { - * ... CHOICE options ... - * ASN1_CHOICE_END(chname) - * - * This will produce an ASN1_ITEM called chname_it - * for a structure called chname. The structure - * definition must look like this: - * typedef struct { - * int type; - * union { - * ASN1_SOMETHING *opt1; - * ASN1_SOMEOTHER *opt2; - * } value; - * } chname; - * - * the name of the selector must be 'type'. - * to use an alternative selector name use the - * ASN1_CHOICE_END_selector() version. - */ - -# define ASN1_CHOICE(tname) \ - static const ASN1_TEMPLATE tname##_ch_tt[] - -# define ASN1_CHOICE_cb(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0, NULL}; \ - ASN1_CHOICE(tname) - -# define ASN1_CHOICE_END(stname) ASN1_CHOICE_END_name(stname, stname) - -# define static_ASN1_CHOICE_END(stname) static_ASN1_CHOICE_END_name(stname, stname) - -# define ASN1_CHOICE_END_name(stname, tname) ASN1_CHOICE_END_selector(stname, tname, type) - -# define static_ASN1_CHOICE_END_name(stname, tname) static_ASN1_CHOICE_END_selector(stname, tname, type) - -# define ASN1_CHOICE_END_selector(stname, tname, selname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_CHOICE,\ - offsetof(stname,selname) ,\ - tname##_ch_tt,\ - sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define static_ASN1_CHOICE_END_selector(stname, tname, selname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_CHOICE,\ - offsetof(stname,selname) ,\ - tname##_ch_tt,\ - sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define ASN1_CHOICE_END_cb(stname, tname, selname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_CHOICE,\ - offsetof(stname,selname) ,\ - tname##_ch_tt,\ - sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -/* This helps with the template wrapper form of ASN1_ITEM */ - -# define ASN1_EX_TEMPLATE_TYPE(flags, tag, name, type) { \ - (flags), (tag), 0,\ - #name, ASN1_ITEM_ref(type) } - -/* These help with SEQUENCE or CHOICE components */ - -/* used to declare other types */ - -# define ASN1_EX_TYPE(flags, tag, stname, field, type) { \ - (flags), (tag), offsetof(stname, field),\ - #field, ASN1_ITEM_ref(type) } - -/* implicit and explicit helper macros */ - -# define ASN1_IMP_EX(stname, field, type, tag, ex) \ - ASN1_EX_TYPE(ASN1_TFLG_IMPLICIT | (ex), tag, stname, field, type) - -# define ASN1_EXP_EX(stname, field, type, tag, ex) \ - ASN1_EX_TYPE(ASN1_TFLG_EXPLICIT | (ex), tag, stname, field, type) - -/* Any defined by macros: the field used is in the table itself */ - -# define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, tblname##_adb } -# define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, tblname##_adb } - -/* Plain simple type */ -# define ASN1_SIMPLE(stname, field, type) ASN1_EX_TYPE(0,0, stname, field, type) -/* Embedded simple type */ -# define ASN1_EMBED(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_EMBED,0, stname, field, type) - -/* OPTIONAL simple type */ -# define ASN1_OPT(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL, 0, stname, field, type) -# define ASN1_OPT_EMBED(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED, 0, stname, field, type) - -/* IMPLICIT tagged simple type */ -# define ASN1_IMP(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, 0) -# define ASN1_IMP_EMBED(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_EMBED) - -/* IMPLICIT tagged OPTIONAL simple type */ -# define ASN1_IMP_OPT(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) -# define ASN1_IMP_OPT_EMBED(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED) - -/* Same as above but EXPLICIT */ - -# define ASN1_EXP(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, 0) -# define ASN1_EXP_EMBED(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_EMBED) -# define ASN1_EXP_OPT(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) -# define ASN1_EXP_OPT_EMBED(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED) - -/* SEQUENCE OF type */ -# define ASN1_SEQUENCE_OF(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, stname, field, type) - -/* OPTIONAL SEQUENCE OF */ -# define ASN1_SEQUENCE_OF_OPT(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) - -/* Same as above but for SET OF */ - -# define ASN1_SET_OF(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SET_OF, 0, stname, field, type) - -# define ASN1_SET_OF_OPT(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) - -/* Finally compound types of SEQUENCE, SET, IMPLICIT, EXPLICIT and OPTIONAL */ - -# define ASN1_IMP_SET_OF(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) - -# define ASN1_EXP_SET_OF(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) - -# define ASN1_IMP_SET_OF_OPT(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) - -# define ASN1_EXP_SET_OF_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) - -# define ASN1_IMP_SEQUENCE_OF(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) - -# define ASN1_IMP_SEQUENCE_OF_OPT(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) - -# define ASN1_EXP_SEQUENCE_OF(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) - -# define ASN1_EXP_SEQUENCE_OF_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) - -/* EXPLICIT using indefinite length constructed form */ -# define ASN1_NDEF_EXP(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_NDEF) - -/* EXPLICIT OPTIONAL using indefinite length constructed form */ -# define ASN1_NDEF_EXP_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_NDEF) - -/* Macros for the ASN1_ADB structure */ - -# define ASN1_ADB(name) \ - static const ASN1_ADB_TABLE name##_adbtbl[] - -# define ASN1_ADB_END(name, flags, field, adb_cb, def, none) \ - ;\ - static const ASN1_ITEM *name##_adb(void) \ - { \ - static const ASN1_ADB internal_adb = \ - {\ - flags,\ - offsetof(name, field),\ - adb_cb,\ - name##_adbtbl,\ - sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ - def,\ - none\ - }; \ - return (const ASN1_ITEM *) &internal_adb; \ - } \ - void dummy_function(void) - -# define ADB_ENTRY(val, template) {val, template} - -# define ASN1_ADB_TEMPLATE(name) \ - static const ASN1_TEMPLATE name##_tt - -/* - * This is the ASN1 template structure that defines a wrapper round the - * actual type. It determines the actual position of the field in the value - * structure, various flags such as OPTIONAL and the field name. - */ - -struct ASN1_TEMPLATE_st { - unsigned long flags; /* Various flags */ - long tag; /* tag, not used if no tagging */ - unsigned long offset; /* Offset of this field in structure */ - const char *field_name; /* Field name */ - ASN1_ITEM_EXP *item; /* Relevant ASN1_ITEM or ASN1_ADB */ -}; - -/* Macro to extract ASN1_ITEM and ASN1_ADB pointer from ASN1_TEMPLATE */ - -# define ASN1_TEMPLATE_item(t) (t->item_ptr) -# define ASN1_TEMPLATE_adb(t) (t->item_ptr) - -typedef struct ASN1_ADB_TABLE_st ASN1_ADB_TABLE; -typedef struct ASN1_ADB_st ASN1_ADB; - -struct ASN1_ADB_st { - unsigned long flags; /* Various flags */ - unsigned long offset; /* Offset of selector field */ - int (*adb_cb)(long *psel); /* Application callback */ - const ASN1_ADB_TABLE *tbl; /* Table of possible types */ - long tblcount; /* Number of entries in tbl */ - const ASN1_TEMPLATE *default_tt; /* Type to use if no match */ - const ASN1_TEMPLATE *null_tt; /* Type to use if selector is NULL */ -}; - -struct ASN1_ADB_TABLE_st { - long value; /* NID for an object or value for an int */ - const ASN1_TEMPLATE tt; /* item for this value */ -}; - -/* template flags */ - -/* Field is optional */ -# define ASN1_TFLG_OPTIONAL (0x1) - -/* Field is a SET OF */ -# define ASN1_TFLG_SET_OF (0x1 << 1) - -/* Field is a SEQUENCE OF */ -# define ASN1_TFLG_SEQUENCE_OF (0x2 << 1) - -/* - * Special case: this refers to a SET OF that will be sorted into DER order - * when encoded *and* the corresponding STACK will be modified to match the - * new order. - */ -# define ASN1_TFLG_SET_ORDER (0x3 << 1) - -/* Mask for SET OF or SEQUENCE OF */ -# define ASN1_TFLG_SK_MASK (0x3 << 1) - -/* - * These flags mean the tag should be taken from the tag field. If EXPLICIT - * then the underlying type is used for the inner tag. - */ - -/* IMPLICIT tagging */ -# define ASN1_TFLG_IMPTAG (0x1 << 3) - -/* EXPLICIT tagging, inner tag from underlying type */ -# define ASN1_TFLG_EXPTAG (0x2 << 3) - -# define ASN1_TFLG_TAG_MASK (0x3 << 3) - -/* context specific IMPLICIT */ -# define ASN1_TFLG_IMPLICIT (ASN1_TFLG_IMPTAG|ASN1_TFLG_CONTEXT) - -/* context specific EXPLICIT */ -# define ASN1_TFLG_EXPLICIT (ASN1_TFLG_EXPTAG|ASN1_TFLG_CONTEXT) - -/* - * If tagging is in force these determine the type of tag to use. Otherwise - * the tag is determined by the underlying type. These values reflect the - * actual octet format. - */ - -/* Universal tag */ -# define ASN1_TFLG_UNIVERSAL (0x0<<6) -/* Application tag */ -# define ASN1_TFLG_APPLICATION (0x1<<6) -/* Context specific tag */ -# define ASN1_TFLG_CONTEXT (0x2<<6) -/* Private tag */ -# define ASN1_TFLG_PRIVATE (0x3<<6) - -# define ASN1_TFLG_TAG_CLASS (0x3<<6) - -/* - * These are for ANY DEFINED BY type. In this case the 'item' field points to - * an ASN1_ADB structure which contains a table of values to decode the - * relevant type - */ - -# define ASN1_TFLG_ADB_MASK (0x3<<8) - -# define ASN1_TFLG_ADB_OID (0x1<<8) - -# define ASN1_TFLG_ADB_INT (0x1<<9) - -/* - * This flag when present in a SEQUENCE OF, SET OF or EXPLICIT causes - * indefinite length constructed encoding to be used if required. - */ - -# define ASN1_TFLG_NDEF (0x1<<11) - -/* Field is embedded and not a pointer */ -# define ASN1_TFLG_EMBED (0x1 << 12) - -/* This is the actual ASN1 item itself */ - -struct ASN1_ITEM_st { - char itype; /* The item type, primitive, SEQUENCE, CHOICE - * or extern */ - long utype; /* underlying type */ - const ASN1_TEMPLATE *templates; /* If SEQUENCE or CHOICE this contains - * the contents */ - long tcount; /* Number of templates if SEQUENCE or CHOICE */ - const void *funcs; /* further data and type-specific functions */ - /* funcs can be ASN1_PRIMITIVE_FUNCS*, ASN1_EXTERN_FUNCS*, or ASN1_AUX* */ - long size; /* Structure size (usually) */ - const char *sname; /* Structure name */ -}; - -/* - * Cache for ASN1 tag and length, so we don't keep re-reading it for things - * like CHOICE - */ - -struct ASN1_TLC_st { - char valid; /* Values below are valid */ - int ret; /* return value */ - long plen; /* length */ - int ptag; /* class value */ - int pclass; /* class value */ - int hdrlen; /* header length */ -}; - -/* Typedefs for ASN1 function pointers */ -typedef int ASN1_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, - const ASN1_ITEM *it, int tag, int aclass, char opt, - ASN1_TLC *ctx); - -typedef int ASN1_ex_d2i_ex(ASN1_VALUE **pval, const unsigned char **in, long len, - const ASN1_ITEM *it, int tag, int aclass, char opt, - ASN1_TLC *ctx, OSSL_LIB_CTX *libctx, - const char *propq); -typedef int ASN1_ex_i2d(const ASN1_VALUE **pval, unsigned char **out, - const ASN1_ITEM *it, int tag, int aclass); -typedef int ASN1_ex_new_func(ASN1_VALUE **pval, const ASN1_ITEM *it); -typedef int ASN1_ex_new_ex_func(ASN1_VALUE **pval, const ASN1_ITEM *it, - OSSL_LIB_CTX *libctx, const char *propq); -typedef void ASN1_ex_free_func(ASN1_VALUE **pval, const ASN1_ITEM *it); - -typedef int ASN1_ex_print_func(BIO *out, const ASN1_VALUE **pval, - int indent, const char *fname, - const ASN1_PCTX *pctx); - -typedef int ASN1_primitive_i2c(const ASN1_VALUE **pval, unsigned char *cont, - int *putype, const ASN1_ITEM *it); -typedef int ASN1_primitive_c2i(ASN1_VALUE **pval, const unsigned char *cont, - int len, int utype, char *free_cont, - const ASN1_ITEM *it); -typedef int ASN1_primitive_print(BIO *out, const ASN1_VALUE **pval, - const ASN1_ITEM *it, int indent, - const ASN1_PCTX *pctx); - -typedef struct ASN1_EXTERN_FUNCS_st { - void *app_data; - ASN1_ex_new_func *asn1_ex_new; - ASN1_ex_free_func *asn1_ex_free; - ASN1_ex_free_func *asn1_ex_clear; - ASN1_ex_d2i *asn1_ex_d2i; - ASN1_ex_i2d *asn1_ex_i2d; - ASN1_ex_print_func *asn1_ex_print; - ASN1_ex_new_ex_func *asn1_ex_new_ex; - ASN1_ex_d2i_ex *asn1_ex_d2i_ex; -} ASN1_EXTERN_FUNCS; - -typedef struct ASN1_PRIMITIVE_FUNCS_st { - void *app_data; - unsigned long flags; - ASN1_ex_new_func *prim_new; - ASN1_ex_free_func *prim_free; - ASN1_ex_free_func *prim_clear; - ASN1_primitive_c2i *prim_c2i; - ASN1_primitive_i2c *prim_i2c; - ASN1_primitive_print *prim_print; -} ASN1_PRIMITIVE_FUNCS; - -/* - * This is the ASN1_AUX structure: it handles various miscellaneous - * requirements. For example the use of reference counts and an informational - * callback. The "informational callback" is called at various points during - * the ASN1 encoding and decoding. It can be used to provide minor - * customisation of the structures used. This is most useful where the - * supplied routines *almost* do the right thing but need some extra help at - * a few points. If the callback returns zero then it is assumed a fatal - * error has occurred and the main operation should be abandoned. If major - * changes in the default behaviour are required then an external type is - * more appropriate. - * For the operations ASN1_OP_I2D_PRE, ASN1_OP_I2D_POST, ASN1_OP_PRINT_PRE, and - * ASN1_OP_PRINT_POST, meanwhile a variant of the callback with const parameter - * 'in' is provided to make clear statically that its input is not modified. If - * and only if this variant is in use the flag ASN1_AFLG_CONST_CB must be set. - */ - -typedef int ASN1_aux_cb(int operation, ASN1_VALUE **in, const ASN1_ITEM *it, - void *exarg); -typedef int ASN1_aux_const_cb(int operation, const ASN1_VALUE **in, - const ASN1_ITEM *it, void *exarg); - -typedef struct ASN1_AUX_st { - void *app_data; - int flags; - int ref_offset; /* Offset of reference value */ - int ref_lock; /* Offset of lock value */ - ASN1_aux_cb *asn1_cb; - int enc_offset; /* Offset of ASN1_ENCODING structure */ - ASN1_aux_const_cb *asn1_const_cb; /* for ASN1_OP_I2D_ and ASN1_OP_PRINT_ */ -} ASN1_AUX; - -/* For print related callbacks exarg points to this structure */ -typedef struct ASN1_PRINT_ARG_st { - BIO *out; - int indent; - const ASN1_PCTX *pctx; -} ASN1_PRINT_ARG; - -/* For streaming related callbacks exarg points to this structure */ -typedef struct ASN1_STREAM_ARG_st { - /* BIO to stream through */ - BIO *out; - /* BIO with filters appended */ - BIO *ndef_bio; - /* Streaming I/O boundary */ - unsigned char **boundary; -} ASN1_STREAM_ARG; - -/* Flags in ASN1_AUX */ - -/* Use a reference count */ -# define ASN1_AFLG_REFCOUNT 1 -/* Save the encoding of structure (useful for signatures) */ -# define ASN1_AFLG_ENCODING 2 -/* The Sequence length is invalid */ -# define ASN1_AFLG_BROKEN 4 -/* Use the new asn1_const_cb */ -# define ASN1_AFLG_CONST_CB 8 - -/* operation values for asn1_cb */ - -# define ASN1_OP_NEW_PRE 0 -# define ASN1_OP_NEW_POST 1 -# define ASN1_OP_FREE_PRE 2 -# define ASN1_OP_FREE_POST 3 -# define ASN1_OP_D2I_PRE 4 -# define ASN1_OP_D2I_POST 5 -# define ASN1_OP_I2D_PRE 6 -# define ASN1_OP_I2D_POST 7 -# define ASN1_OP_PRINT_PRE 8 -# define ASN1_OP_PRINT_POST 9 -# define ASN1_OP_STREAM_PRE 10 -# define ASN1_OP_STREAM_POST 11 -# define ASN1_OP_DETACHED_PRE 12 -# define ASN1_OP_DETACHED_POST 13 -# define ASN1_OP_DUP_PRE 14 -# define ASN1_OP_DUP_POST 15 -# define ASN1_OP_GET0_LIBCTX 16 -# define ASN1_OP_GET0_PROPQ 17 - -/* Macro to implement a primitive type */ -# define IMPLEMENT_ASN1_TYPE(stname) IMPLEMENT_ASN1_TYPE_ex(stname, stname, 0) -# define IMPLEMENT_ASN1_TYPE_ex(itname, vname, ex) \ - ASN1_ITEM_start(itname) \ - ASN1_ITYPE_PRIMITIVE, V_##vname, NULL, 0, NULL, ex, #itname \ - ASN1_ITEM_end(itname) - -/* Macro to implement a multi string type */ -# define IMPLEMENT_ASN1_MSTRING(itname, mask) \ - ASN1_ITEM_start(itname) \ - ASN1_ITYPE_MSTRING, mask, NULL, 0, NULL, sizeof(ASN1_STRING), #itname \ - ASN1_ITEM_end(itname) - -# define IMPLEMENT_EXTERN_ASN1(sname, tag, fptrs) \ - ASN1_ITEM_start(sname) \ - ASN1_ITYPE_EXTERN, \ - tag, \ - NULL, \ - 0, \ - &fptrs, \ - 0, \ - #sname \ - ASN1_ITEM_end(sname) - -/* Macro to implement standard functions in terms of ASN1_ITEM structures */ - -# define IMPLEMENT_ASN1_FUNCTIONS(stname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, stname, stname) - -# define IMPLEMENT_ASN1_FUNCTIONS_name(stname, itname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, itname) - -# define IMPLEMENT_ASN1_FUNCTIONS_ENCODE_name(stname, itname) \ - IMPLEMENT_ASN1_FUNCTIONS_ENCODE_fname(stname, itname, itname) - -# define IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(stname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(static, stname, stname, stname) - -# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS(stname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, stname, stname) - -# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(pre, stname, itname, fname) \ - pre stname *fname##_new(void) \ - { \ - return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ - } \ - pre void fname##_free(stname *a) \ - { \ - ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ - } - -# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) \ - stname *fname##_new(void) \ - { \ - return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ - } \ - void fname##_free(stname *a) \ - { \ - ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ - } - -# define IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) - -# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ - stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ - { \ - return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ - } \ - int i2d_##fname(const stname *a, unsigned char **out) \ - { \ - return ASN1_item_i2d((const ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ - } - -# define IMPLEMENT_ASN1_NDEF_FUNCTION(stname) \ - int i2d_##stname##_NDEF(const stname *a, unsigned char **out) \ - { \ - return ASN1_item_ndef_i2d((const ASN1_VALUE *)a, out, ASN1_ITEM_rptr(stname));\ - } - -# define IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(stname) \ - static stname *d2i_##stname(stname **a, \ - const unsigned char **in, long len) \ - { \ - return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, \ - ASN1_ITEM_rptr(stname)); \ - } \ - static int i2d_##stname(const stname *a, unsigned char **out) \ - { \ - return ASN1_item_i2d((const ASN1_VALUE *)a, out, \ - ASN1_ITEM_rptr(stname)); \ - } - -# define IMPLEMENT_ASN1_DUP_FUNCTION(stname) \ - stname * stname##_dup(const stname *x) \ - { \ - return ASN1_item_dup(ASN1_ITEM_rptr(stname), x); \ - } - -# define IMPLEMENT_ASN1_PRINT_FUNCTION(stname) \ - IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, stname, stname) - -# define IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, itname, fname) \ - int fname##_print_ctx(BIO *out, const stname *x, int indent, \ - const ASN1_PCTX *pctx) \ - { \ - return ASN1_item_print(out, (const ASN1_VALUE *)x, indent, \ - ASN1_ITEM_rptr(itname), pctx); \ - } - -/* external definitions for primitive types */ - -DECLARE_ASN1_ITEM(ASN1_BOOLEAN) -DECLARE_ASN1_ITEM(ASN1_TBOOLEAN) -DECLARE_ASN1_ITEM(ASN1_FBOOLEAN) -DECLARE_ASN1_ITEM(ASN1_SEQUENCE) -DECLARE_ASN1_ITEM(CBIGNUM) -DECLARE_ASN1_ITEM(BIGNUM) -DECLARE_ASN1_ITEM(INT32) -DECLARE_ASN1_ITEM(ZINT32) -DECLARE_ASN1_ITEM(UINT32) -DECLARE_ASN1_ITEM(ZUINT32) -DECLARE_ASN1_ITEM(INT64) -DECLARE_ASN1_ITEM(ZINT64) -DECLARE_ASN1_ITEM(UINT64) -DECLARE_ASN1_ITEM(ZUINT64) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* - * LONG and ZLONG are strongly discouraged for use as stored data, as the - * underlying C type (long) differs in size depending on the architecture. - * They are designed with 32-bit longs in mind. - */ -DECLARE_ASN1_ITEM(LONG) -DECLARE_ASN1_ITEM(ZLONG) -# endif - -SKM_DEFINE_STACK_OF_INTERNAL(ASN1_VALUE, ASN1_VALUE, ASN1_VALUE) -#define sk_ASN1_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_VALUE_sk_type(sk)) -#define sk_ASN1_VALUE_value(sk, idx) ((ASN1_VALUE *)OPENSSL_sk_value(ossl_check_const_ASN1_VALUE_sk_type(sk), (idx))) -#define sk_ASN1_VALUE_new(cmp) ((STACK_OF(ASN1_VALUE) *)OPENSSL_sk_new(ossl_check_ASN1_VALUE_compfunc_type(cmp))) -#define sk_ASN1_VALUE_new_null() ((STACK_OF(ASN1_VALUE) *)OPENSSL_sk_new_null()) -#define sk_ASN1_VALUE_new_reserve(cmp, n) ((STACK_OF(ASN1_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_VALUE_compfunc_type(cmp), (n))) -#define sk_ASN1_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_VALUE_sk_type(sk), (n)) -#define sk_ASN1_VALUE_free(sk) OPENSSL_sk_free(ossl_check_ASN1_VALUE_sk_type(sk)) -#define sk_ASN1_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_VALUE_sk_type(sk)) -#define sk_ASN1_VALUE_delete(sk, i) ((ASN1_VALUE *)OPENSSL_sk_delete(ossl_check_ASN1_VALUE_sk_type(sk), (i))) -#define sk_ASN1_VALUE_delete_ptr(sk, ptr) ((ASN1_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr))) -#define sk_ASN1_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr)) -#define sk_ASN1_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr)) -#define sk_ASN1_VALUE_pop(sk) ((ASN1_VALUE *)OPENSSL_sk_pop(ossl_check_ASN1_VALUE_sk_type(sk))) -#define sk_ASN1_VALUE_shift(sk) ((ASN1_VALUE *)OPENSSL_sk_shift(ossl_check_ASN1_VALUE_sk_type(sk))) -#define sk_ASN1_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_freefunc_type(freefunc)) -#define sk_ASN1_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr), (idx)) -#define sk_ASN1_VALUE_set(sk, idx, ptr) ((ASN1_VALUE *)OPENSSL_sk_set(ossl_check_ASN1_VALUE_sk_type(sk), (idx), ossl_check_ASN1_VALUE_type(ptr))) -#define sk_ASN1_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr)) -#define sk_ASN1_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr)) -#define sk_ASN1_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr), pnum) -#define sk_ASN1_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_VALUE_sk_type(sk)) -#define sk_ASN1_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_VALUE_sk_type(sk)) -#define sk_ASN1_VALUE_dup(sk) ((STACK_OF(ASN1_VALUE) *)OPENSSL_sk_dup(ossl_check_const_ASN1_VALUE_sk_type(sk))) -#define sk_ASN1_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_copyfunc_type(copyfunc), ossl_check_ASN1_VALUE_freefunc_type(freefunc))) -#define sk_ASN1_VALUE_set_cmp_func(sk, cmp) ((sk_ASN1_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_compfunc_type(cmp))) - - - -/* Functions used internally by the ASN1 code */ - -int ASN1_item_ex_new(ASN1_VALUE **pval, const ASN1_ITEM *it); -void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it); - -int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, - const ASN1_ITEM *it, int tag, int aclass, char opt, - ASN1_TLC *ctx); - -int ASN1_item_ex_i2d(const ASN1_VALUE **pval, unsigned char **out, - const ASN1_ITEM *it, int tag, int aclass); - -/* Legacy compatibility */ -# define IMPLEMENT_ASN1_FUNCTIONS_const(name) IMPLEMENT_ASN1_FUNCTIONS(name) -# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/async.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/async.h deleted file mode 100644 index 826ffb9..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/async.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright 2015-2022 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#include - -#ifndef OPENSSL_ASYNC_H -# define OPENSSL_ASYNC_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_ASYNC_H -# endif - -#if defined(_WIN32) -# if defined(BASETYPES) || defined(_WINDEF_H) -/* application has to include to use this */ -#define OSSL_ASYNC_FD HANDLE -#define OSSL_BAD_ASYNC_FD INVALID_HANDLE_VALUE -# endif -#else -#define OSSL_ASYNC_FD int -#define OSSL_BAD_ASYNC_FD -1 -#endif -# include - - -# ifdef __cplusplus -extern "C" { -# endif - -typedef struct async_job_st ASYNC_JOB; -typedef struct async_wait_ctx_st ASYNC_WAIT_CTX; -typedef int (*ASYNC_callback_fn)(void *arg); - -#define ASYNC_ERR 0 -#define ASYNC_NO_JOBS 1 -#define ASYNC_PAUSE 2 -#define ASYNC_FINISH 3 - -#define ASYNC_STATUS_UNSUPPORTED 0 -#define ASYNC_STATUS_ERR 1 -#define ASYNC_STATUS_OK 2 -#define ASYNC_STATUS_EAGAIN 3 - -int ASYNC_init_thread(size_t max_size, size_t init_size); -void ASYNC_cleanup_thread(void); - -#ifdef OSSL_ASYNC_FD -ASYNC_WAIT_CTX *ASYNC_WAIT_CTX_new(void); -void ASYNC_WAIT_CTX_free(ASYNC_WAIT_CTX *ctx); -int ASYNC_WAIT_CTX_set_wait_fd(ASYNC_WAIT_CTX *ctx, const void *key, - OSSL_ASYNC_FD fd, - void *custom_data, - void (*cleanup)(ASYNC_WAIT_CTX *, const void *, - OSSL_ASYNC_FD, void *)); -int ASYNC_WAIT_CTX_get_fd(ASYNC_WAIT_CTX *ctx, const void *key, - OSSL_ASYNC_FD *fd, void **custom_data); -int ASYNC_WAIT_CTX_get_all_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD *fd, - size_t *numfds); -int ASYNC_WAIT_CTX_get_callback(ASYNC_WAIT_CTX *ctx, - ASYNC_callback_fn *callback, - void **callback_arg); -int ASYNC_WAIT_CTX_set_callback(ASYNC_WAIT_CTX *ctx, - ASYNC_callback_fn callback, - void *callback_arg); -int ASYNC_WAIT_CTX_set_status(ASYNC_WAIT_CTX *ctx, int status); -int ASYNC_WAIT_CTX_get_status(ASYNC_WAIT_CTX *ctx); -int ASYNC_WAIT_CTX_get_changed_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD *addfd, - size_t *numaddfds, OSSL_ASYNC_FD *delfd, - size_t *numdelfds); -int ASYNC_WAIT_CTX_clear_fd(ASYNC_WAIT_CTX *ctx, const void *key); -#endif - -int ASYNC_is_capable(void); - -typedef void *(*ASYNC_stack_alloc_fn)(size_t *num); -typedef void (*ASYNC_stack_free_fn)(void *addr); - -int ASYNC_set_mem_functions(ASYNC_stack_alloc_fn alloc_fn, - ASYNC_stack_free_fn free_fn); -void ASYNC_get_mem_functions(ASYNC_stack_alloc_fn *alloc_fn, - ASYNC_stack_free_fn *free_fn); - -int ASYNC_start_job(ASYNC_JOB **job, ASYNC_WAIT_CTX *ctx, int *ret, - int (*func)(void *), void *args, size_t size); -int ASYNC_pause_job(void); - -ASYNC_JOB *ASYNC_get_current_job(void); -ASYNC_WAIT_CTX *ASYNC_get_wait_ctx(ASYNC_JOB *job); -void ASYNC_block_pause(void); -void ASYNC_unblock_pause(void); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/asyncerr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/asyncerr.h deleted file mode 100644 index c093f7b..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/asyncerr.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_ASYNCERR_H -# define OPENSSL_ASYNCERR_H -# pragma once - -# include -# include -# include - - - -/* - * ASYNC reason codes. - */ -# define ASYNC_R_FAILED_TO_SET_POOL 101 -# define ASYNC_R_FAILED_TO_SWAP_CONTEXT 102 -# define ASYNC_R_INIT_FAILED 105 -# define ASYNC_R_INVALID_POOL_SIZE 103 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/bio.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/bio.h deleted file mode 100644 index 146d725..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/bio.h +++ /dev/null @@ -1,1022 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\bio.h.in - * - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - -#ifndef OPENSSL_BIO_H -# define OPENSSL_BIO_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_BIO_H -# endif - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* There are the classes of BIOs */ -# define BIO_TYPE_DESCRIPTOR 0x0100 /* socket, fd, connect or accept */ -# define BIO_TYPE_FILTER 0x0200 -# define BIO_TYPE_SOURCE_SINK 0x0400 - -/* These are the 'types' of BIOs */ -# define BIO_TYPE_NONE 0 -# define BIO_TYPE_MEM ( 1|BIO_TYPE_SOURCE_SINK) -# define BIO_TYPE_FILE ( 2|BIO_TYPE_SOURCE_SINK) - -# define BIO_TYPE_FD ( 4|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_SOCKET ( 5|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_NULL ( 6|BIO_TYPE_SOURCE_SINK) -# define BIO_TYPE_SSL ( 7|BIO_TYPE_FILTER) -# define BIO_TYPE_MD ( 8|BIO_TYPE_FILTER) -# define BIO_TYPE_BUFFER ( 9|BIO_TYPE_FILTER) -# define BIO_TYPE_CIPHER (10|BIO_TYPE_FILTER) -# define BIO_TYPE_BASE64 (11|BIO_TYPE_FILTER) -# define BIO_TYPE_CONNECT (12|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_ACCEPT (13|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) - -# define BIO_TYPE_NBIO_TEST (16|BIO_TYPE_FILTER)/* server proxy BIO */ -# define BIO_TYPE_NULL_FILTER (17|BIO_TYPE_FILTER) -# define BIO_TYPE_BIO (19|BIO_TYPE_SOURCE_SINK)/* half a BIO pair */ -# define BIO_TYPE_LINEBUFFER (20|BIO_TYPE_FILTER) -# define BIO_TYPE_DGRAM (21|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_ASN1 (22|BIO_TYPE_FILTER) -# define BIO_TYPE_COMP (23|BIO_TYPE_FILTER) -# ifndef OPENSSL_NO_SCTP -# define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# endif -# define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) -# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) -# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) - -/* Custom type starting index returned by BIO_get_new_index() */ -#define BIO_TYPE_START 128 -/* Custom type maximum index that can be returned by BIO_get_new_index() */ -#define BIO_TYPE_MASK 0xFF - -/* - * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. - * BIO_set_fp(in,stdin,BIO_NOCLOSE); - */ -# define BIO_NOCLOSE 0x00 -# define BIO_CLOSE 0x01 - -/* - * These are used in the following macros and are passed to BIO_ctrl() - */ -# define BIO_CTRL_RESET 1/* opt - rewind/zero etc */ -# define BIO_CTRL_EOF 2/* opt - are we at the eof */ -# define BIO_CTRL_INFO 3/* opt - extra tit-bits */ -# define BIO_CTRL_SET 4/* man - set the 'IO' type */ -# define BIO_CTRL_GET 5/* man - get the 'IO' type */ -# define BIO_CTRL_PUSH 6/* opt - internal, used to signify change */ -# define BIO_CTRL_POP 7/* opt - internal, used to signify change */ -# define BIO_CTRL_GET_CLOSE 8/* man - set the 'close' on free */ -# define BIO_CTRL_SET_CLOSE 9/* man - set the 'close' on free */ -# define BIO_CTRL_PENDING 10/* opt - is their more data buffered */ -# define BIO_CTRL_FLUSH 11/* opt - 'flush' buffered output */ -# define BIO_CTRL_DUP 12/* man - extra stuff for 'duped' BIO */ -# define BIO_CTRL_WPENDING 13/* opt - number of bytes still to write */ -# define BIO_CTRL_SET_CALLBACK 14/* opt - set callback function */ -# define BIO_CTRL_GET_CALLBACK 15/* opt - set callback function */ - -# define BIO_CTRL_PEEK 29/* BIO_f_buffer special */ -# define BIO_CTRL_SET_FILENAME 30/* BIO_s_file special */ - -/* dgram BIO stuff */ -# define BIO_CTRL_DGRAM_CONNECT 31/* BIO dgram special */ -# define BIO_CTRL_DGRAM_SET_CONNECTED 32/* allow for an externally connected - * socket to be passed in */ -# define BIO_CTRL_DGRAM_SET_RECV_TIMEOUT 33/* setsockopt, essentially */ -# define BIO_CTRL_DGRAM_GET_RECV_TIMEOUT 34/* getsockopt, essentially */ -# define BIO_CTRL_DGRAM_SET_SEND_TIMEOUT 35/* setsockopt, essentially */ -# define BIO_CTRL_DGRAM_GET_SEND_TIMEOUT 36/* getsockopt, essentially */ - -# define BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP 37/* flag whether the last */ -# define BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP 38/* I/O operation timed out */ - -/* #ifdef IP_MTU_DISCOVER */ -# define BIO_CTRL_DGRAM_MTU_DISCOVER 39/* set DF bit on egress packets */ -/* #endif */ - -# define BIO_CTRL_DGRAM_QUERY_MTU 40/* as kernel for current MTU */ -# define BIO_CTRL_DGRAM_GET_FALLBACK_MTU 47 -# define BIO_CTRL_DGRAM_GET_MTU 41/* get cached value for MTU */ -# define BIO_CTRL_DGRAM_SET_MTU 42/* set cached value for MTU. - * want to use this if asking - * the kernel fails */ - -# define BIO_CTRL_DGRAM_MTU_EXCEEDED 43/* check whether the MTU was - * exceed in the previous write - * operation */ - -# define BIO_CTRL_DGRAM_GET_PEER 46 -# define BIO_CTRL_DGRAM_SET_PEER 44/* Destination for the data */ - -# define BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT 45/* Next DTLS handshake timeout - * to adjust socket timeouts */ -# define BIO_CTRL_DGRAM_SET_DONT_FRAG 48 - -# define BIO_CTRL_DGRAM_GET_MTU_OVERHEAD 49 - -/* Deliberately outside of OPENSSL_NO_SCTP - used in bss_dgram.c */ -# define BIO_CTRL_DGRAM_SCTP_SET_IN_HANDSHAKE 50 -# ifndef OPENSSL_NO_SCTP -/* SCTP stuff */ -# define BIO_CTRL_DGRAM_SCTP_ADD_AUTH_KEY 51 -# define BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY 52 -# define BIO_CTRL_DGRAM_SCTP_AUTH_CCS_RCVD 53 -# define BIO_CTRL_DGRAM_SCTP_GET_SNDINFO 60 -# define BIO_CTRL_DGRAM_SCTP_SET_SNDINFO 61 -# define BIO_CTRL_DGRAM_SCTP_GET_RCVINFO 62 -# define BIO_CTRL_DGRAM_SCTP_SET_RCVINFO 63 -# define BIO_CTRL_DGRAM_SCTP_GET_PRINFO 64 -# define BIO_CTRL_DGRAM_SCTP_SET_PRINFO 65 -# define BIO_CTRL_DGRAM_SCTP_SAVE_SHUTDOWN 70 -# endif - -# define BIO_CTRL_DGRAM_SET_PEEK_MODE 71 - -/* - * internal BIO: - * # define BIO_CTRL_SET_KTLS_SEND 72 - * # define BIO_CTRL_SET_KTLS_SEND_CTRL_MSG 74 - * # define BIO_CTRL_CLEAR_KTLS_CTRL_MSG 75 - */ - -# define BIO_CTRL_GET_KTLS_SEND 73 -# define BIO_CTRL_GET_KTLS_RECV 76 - -# define BIO_CTRL_DGRAM_SCTP_WAIT_FOR_DRY 77 -# define BIO_CTRL_DGRAM_SCTP_MSG_WAITING 78 - -/* BIO_f_prefix controls */ -# define BIO_CTRL_SET_PREFIX 79 -# define BIO_CTRL_SET_INDENT 80 -# define BIO_CTRL_GET_INDENT 81 - -# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 -# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 -# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 -# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 -# define BIO_CTRL_DGRAM_GET_CAPS 86 -# define BIO_CTRL_DGRAM_SET_CAPS 87 -# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 -# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 - -/* - * internal BIO: - * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 - */ - -# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 -# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 -# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 -# define BIO_CTRL_DGRAM_SET0_LOCAL_ADDR 94 - -# define BIO_DGRAM_CAP_NONE 0U -# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) -# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) -# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) -# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) - -# ifndef OPENSSL_NO_KTLS -# define BIO_get_ktls_send(b) \ - (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) -# define BIO_get_ktls_recv(b) \ - (BIO_ctrl(b, BIO_CTRL_GET_KTLS_RECV, 0, NULL) > 0) -# else -# define BIO_get_ktls_send(b) (0) -# define BIO_get_ktls_recv(b) (0) -# endif - -/* modifiers */ -# define BIO_FP_READ 0x02 -# define BIO_FP_WRITE 0x04 -# define BIO_FP_APPEND 0x08 -# define BIO_FP_TEXT 0x10 - -# define BIO_FLAGS_READ 0x01 -# define BIO_FLAGS_WRITE 0x02 -# define BIO_FLAGS_IO_SPECIAL 0x04 -# define BIO_FLAGS_RWS (BIO_FLAGS_READ|BIO_FLAGS_WRITE|BIO_FLAGS_IO_SPECIAL) -# define BIO_FLAGS_SHOULD_RETRY 0x08 -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* This #define was replaced by an internal constant and should not be used. */ -# define BIO_FLAGS_UPLINK 0 -# endif - -# define BIO_FLAGS_BASE64_NO_NL 0x100 - -/* - * This is used with memory BIOs: - * BIO_FLAGS_MEM_RDONLY means we shouldn't free up or change the data in any way; - * BIO_FLAGS_NONCLEAR_RST means we shouldn't clear data on reset. - */ -# define BIO_FLAGS_MEM_RDONLY 0x200 -# define BIO_FLAGS_NONCLEAR_RST 0x400 -# define BIO_FLAGS_IN_EOF 0x800 - -/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ - -typedef union bio_addr_st BIO_ADDR; -typedef struct bio_addrinfo_st BIO_ADDRINFO; - -int BIO_get_new_index(void); -void BIO_set_flags(BIO *b, int flags); -int BIO_test_flags(const BIO *b, int flags); -void BIO_clear_flags(BIO *b, int flags); - -# define BIO_get_flags(b) BIO_test_flags(b, ~(0x0)) -# define BIO_set_retry_special(b) \ - BIO_set_flags(b, (BIO_FLAGS_IO_SPECIAL|BIO_FLAGS_SHOULD_RETRY)) -# define BIO_set_retry_read(b) \ - BIO_set_flags(b, (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY)) -# define BIO_set_retry_write(b) \ - BIO_set_flags(b, (BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY)) - -/* These are normally used internally in BIOs */ -# define BIO_clear_retry_flags(b) \ - BIO_clear_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) -# define BIO_get_retry_flags(b) \ - BIO_test_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) - -/* These should be used by the application to tell why we should retry */ -# define BIO_should_read(a) BIO_test_flags(a, BIO_FLAGS_READ) -# define BIO_should_write(a) BIO_test_flags(a, BIO_FLAGS_WRITE) -# define BIO_should_io_special(a) BIO_test_flags(a, BIO_FLAGS_IO_SPECIAL) -# define BIO_retry_type(a) BIO_test_flags(a, BIO_FLAGS_RWS) -# define BIO_should_retry(a) BIO_test_flags(a, BIO_FLAGS_SHOULD_RETRY) - -/* - * The next three are used in conjunction with the BIO_should_io_special() - * condition. After this returns true, BIO *BIO_get_retry_BIO(BIO *bio, int - * *reason); will walk the BIO stack and return the 'reason' for the special - * and the offending BIO. Given a BIO, BIO_get_retry_reason(bio) will return - * the code. - */ -/* - * Returned from the SSL bio when the certificate retrieval code had an error - */ -# define BIO_RR_SSL_X509_LOOKUP 0x01 -/* Returned from the connect BIO when a connect would have blocked */ -# define BIO_RR_CONNECT 0x02 -/* Returned from the accept BIO when an accept would have blocked */ -# define BIO_RR_ACCEPT 0x03 - -/* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 -# define BIO_CB_RECVMMSG 0x07 -# define BIO_CB_SENDMMSG 0x08 - -/* - * The callback is called before and after the underling operation, The - * BIO_CB_RETURN flag indicates if it is after the call - */ -# define BIO_CB_RETURN 0x80 -# define BIO_CB_return(a) ((a)|BIO_CB_RETURN) -# define BIO_cb_pre(a) (!((a)&BIO_CB_RETURN)) -# define BIO_cb_post(a) ((a)&BIO_CB_RETURN) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -typedef long (*BIO_callback_fn)(BIO *b, int oper, const char *argp, int argi, - long argl, long ret); -OSSL_DEPRECATEDIN_3_0 BIO_callback_fn BIO_get_callback(const BIO *b); -OSSL_DEPRECATEDIN_3_0 void BIO_set_callback(BIO *b, BIO_callback_fn callback); -OSSL_DEPRECATEDIN_3_0 long BIO_debug_callback(BIO *bio, int cmd, - const char *argp, int argi, - long argl, long ret); -# endif - -typedef long (*BIO_callback_fn_ex)(BIO *b, int oper, const char *argp, - size_t len, int argi, - long argl, int ret, size_t *processed); -BIO_callback_fn_ex BIO_get_callback_ex(const BIO *b); -void BIO_set_callback_ex(BIO *b, BIO_callback_fn_ex callback); -long BIO_debug_callback_ex(BIO *bio, int oper, const char *argp, size_t len, - int argi, long argl, int ret, size_t *processed); - -char *BIO_get_callback_arg(const BIO *b); -void BIO_set_callback_arg(BIO *b, char *arg); - -typedef struct bio_method_st BIO_METHOD; - -const char *BIO_method_name(const BIO *b); -int BIO_method_type(const BIO *b); - -typedef int BIO_info_cb(BIO *, int, int); -typedef BIO_info_cb bio_info_cb; /* backward compatibility */ - -SKM_DEFINE_STACK_OF_INTERNAL(BIO, BIO, BIO) -#define sk_BIO_num(sk) OPENSSL_sk_num(ossl_check_const_BIO_sk_type(sk)) -#define sk_BIO_value(sk, idx) ((BIO *)OPENSSL_sk_value(ossl_check_const_BIO_sk_type(sk), (idx))) -#define sk_BIO_new(cmp) ((STACK_OF(BIO) *)OPENSSL_sk_new(ossl_check_BIO_compfunc_type(cmp))) -#define sk_BIO_new_null() ((STACK_OF(BIO) *)OPENSSL_sk_new_null()) -#define sk_BIO_new_reserve(cmp, n) ((STACK_OF(BIO) *)OPENSSL_sk_new_reserve(ossl_check_BIO_compfunc_type(cmp), (n))) -#define sk_BIO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_BIO_sk_type(sk), (n)) -#define sk_BIO_free(sk) OPENSSL_sk_free(ossl_check_BIO_sk_type(sk)) -#define sk_BIO_zero(sk) OPENSSL_sk_zero(ossl_check_BIO_sk_type(sk)) -#define sk_BIO_delete(sk, i) ((BIO *)OPENSSL_sk_delete(ossl_check_BIO_sk_type(sk), (i))) -#define sk_BIO_delete_ptr(sk, ptr) ((BIO *)OPENSSL_sk_delete_ptr(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr))) -#define sk_BIO_push(sk, ptr) OPENSSL_sk_push(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr)) -#define sk_BIO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr)) -#define sk_BIO_pop(sk) ((BIO *)OPENSSL_sk_pop(ossl_check_BIO_sk_type(sk))) -#define sk_BIO_shift(sk) ((BIO *)OPENSSL_sk_shift(ossl_check_BIO_sk_type(sk))) -#define sk_BIO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_BIO_sk_type(sk), ossl_check_BIO_freefunc_type(freefunc)) -#define sk_BIO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr), (idx)) -#define sk_BIO_set(sk, idx, ptr) ((BIO *)OPENSSL_sk_set(ossl_check_BIO_sk_type(sk), (idx), ossl_check_BIO_type(ptr))) -#define sk_BIO_find(sk, ptr) OPENSSL_sk_find(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr)) -#define sk_BIO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr)) -#define sk_BIO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr), pnum) -#define sk_BIO_sort(sk) OPENSSL_sk_sort(ossl_check_BIO_sk_type(sk)) -#define sk_BIO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_BIO_sk_type(sk)) -#define sk_BIO_dup(sk) ((STACK_OF(BIO) *)OPENSSL_sk_dup(ossl_check_const_BIO_sk_type(sk))) -#define sk_BIO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(BIO) *)OPENSSL_sk_deep_copy(ossl_check_const_BIO_sk_type(sk), ossl_check_BIO_copyfunc_type(copyfunc), ossl_check_BIO_freefunc_type(freefunc))) -#define sk_BIO_set_cmp_func(sk, cmp) ((sk_BIO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_BIO_sk_type(sk), ossl_check_BIO_compfunc_type(cmp))) - - - -/* Prefix and suffix callback in ASN1 BIO */ -typedef int asn1_ps_func (BIO *b, unsigned char **pbuf, int *plen, - void *parg); - -typedef void (*BIO_dgram_sctp_notification_handler_fn) (BIO *b, - void *context, - void *buf); -# ifndef OPENSSL_NO_SCTP -/* SCTP parameter structs */ -struct bio_dgram_sctp_sndinfo { - uint16_t snd_sid; - uint16_t snd_flags; - uint32_t snd_ppid; - uint32_t snd_context; -}; - -struct bio_dgram_sctp_rcvinfo { - uint16_t rcv_sid; - uint16_t rcv_ssn; - uint16_t rcv_flags; - uint32_t rcv_ppid; - uint32_t rcv_tsn; - uint32_t rcv_cumtsn; - uint32_t rcv_context; -}; - -struct bio_dgram_sctp_prinfo { - uint16_t pr_policy; - uint32_t pr_value; -}; -# endif - -/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ -typedef struct bio_msg_st { - void *data; - size_t data_len; - BIO_ADDR *peer, *local; - uint64_t flags; -} BIO_MSG; - -typedef struct bio_mmsg_cb_args_st { - BIO_MSG *msg; - size_t stride, num_msg; - uint64_t flags; - size_t *msgs_processed; -} BIO_MMSG_CB_ARGS; - -#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 -#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 -#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 -#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 - -typedef struct bio_poll_descriptor_st { - uint32_t type; - union { - int fd; - void *custom; - uintptr_t custom_ui; - SSL *ssl; - } value; -} BIO_POLL_DESCRIPTOR; - -/* - * #define BIO_CONN_get_param_hostname BIO_ctrl - */ - -# define BIO_C_SET_CONNECT 100 -# define BIO_C_DO_STATE_MACHINE 101 -# define BIO_C_SET_NBIO 102 -/* # define BIO_C_SET_PROXY_PARAM 103 */ -# define BIO_C_SET_FD 104 -# define BIO_C_GET_FD 105 -# define BIO_C_SET_FILE_PTR 106 -# define BIO_C_GET_FILE_PTR 107 -# define BIO_C_SET_FILENAME 108 -# define BIO_C_SET_SSL 109 -# define BIO_C_GET_SSL 110 -# define BIO_C_SET_MD 111 -# define BIO_C_GET_MD 112 -# define BIO_C_GET_CIPHER_STATUS 113 -# define BIO_C_SET_BUF_MEM 114 -# define BIO_C_GET_BUF_MEM_PTR 115 -# define BIO_C_GET_BUFF_NUM_LINES 116 -# define BIO_C_SET_BUFF_SIZE 117 -# define BIO_C_SET_ACCEPT 118 -# define BIO_C_SSL_MODE 119 -# define BIO_C_GET_MD_CTX 120 -/* # define BIO_C_GET_PROXY_PARAM 121 */ -# define BIO_C_SET_BUFF_READ_DATA 122/* data to read first */ -# define BIO_C_GET_CONNECT 123 -# define BIO_C_GET_ACCEPT 124 -# define BIO_C_SET_SSL_RENEGOTIATE_BYTES 125 -# define BIO_C_GET_SSL_NUM_RENEGOTIATES 126 -# define BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT 127 -# define BIO_C_FILE_SEEK 128 -# define BIO_C_GET_CIPHER_CTX 129 -# define BIO_C_SET_BUF_MEM_EOF_RETURN 130/* return end of input - * value */ -# define BIO_C_SET_BIND_MODE 131 -# define BIO_C_GET_BIND_MODE 132 -# define BIO_C_FILE_TELL 133 -# define BIO_C_GET_SOCKS 134 -# define BIO_C_SET_SOCKS 135 - -# define BIO_C_SET_WRITE_BUF_SIZE 136/* for BIO_s_bio */ -# define BIO_C_GET_WRITE_BUF_SIZE 137 -# define BIO_C_MAKE_BIO_PAIR 138 -# define BIO_C_DESTROY_BIO_PAIR 139 -# define BIO_C_GET_WRITE_GUARANTEE 140 -# define BIO_C_GET_READ_REQUEST 141 -# define BIO_C_SHUTDOWN_WR 142 -# define BIO_C_NREAD0 143 -# define BIO_C_NREAD 144 -# define BIO_C_NWRITE0 145 -# define BIO_C_NWRITE 146 -# define BIO_C_RESET_READ_REQUEST 147 -# define BIO_C_SET_MD_CTX 148 - -# define BIO_C_SET_PREFIX 149 -# define BIO_C_GET_PREFIX 150 -# define BIO_C_SET_SUFFIX 151 -# define BIO_C_GET_SUFFIX 152 - -# define BIO_C_SET_EX_ARG 153 -# define BIO_C_GET_EX_ARG 154 - -# define BIO_C_SET_CONNECT_MODE 155 - -# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ - -# define BIO_C_SET_SOCK_TYPE 157 -# define BIO_C_GET_SOCK_TYPE 158 -# define BIO_C_GET_DGRAM_BIO 159 - -# define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) -# define BIO_get_app_data(s) BIO_get_ex_data(s,0) - -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) -# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) - -# ifndef OPENSSL_NO_SOCK -/* IP families we support, for BIO_s_connect() and BIO_s_accept() */ -/* Note: the underlying operating system may not support some of them */ -# define BIO_FAMILY_IPV4 4 -# define BIO_FAMILY_IPV6 6 -# define BIO_FAMILY_IPANY 256 - -/* BIO_s_connect() */ -# define BIO_set_conn_hostname(b,name) BIO_ctrl(b,BIO_C_SET_CONNECT,0, \ - (char *)(name)) -# define BIO_set_conn_port(b,port) BIO_ctrl(b,BIO_C_SET_CONNECT,1, \ - (char *)(port)) -# define BIO_set_conn_address(b,addr) BIO_ctrl(b,BIO_C_SET_CONNECT,2, \ - (char *)(addr)) -# define BIO_set_conn_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_CONNECT,3,f) -# define BIO_get_conn_hostname(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0)) -# define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) -# define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) -# define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) -# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) -# define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) -# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) -# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) -# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) - -/* BIO_s_accept() */ -# define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ - (char *)(name)) -# define BIO_set_accept_port(b,port) BIO_ctrl(b,BIO_C_SET_ACCEPT,1, \ - (char *)(port)) -# define BIO_get_accept_name(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0)) -# define BIO_get_accept_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,1)) -# define BIO_get_peer_name(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,2)) -# define BIO_get_peer_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,3)) -/* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */ -# define BIO_set_nbio_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,2,(n)?(void *)"a":NULL) -# define BIO_set_accept_bios(b,bio) BIO_ctrl(b,BIO_C_SET_ACCEPT,3, \ - (char *)(bio)) -# define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) -# define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) -# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) - -/* Aliases kept for backward compatibility */ -# define BIO_BIND_NORMAL 0 -# define BIO_BIND_REUSEADDR BIO_SOCK_REUSEADDR -# define BIO_BIND_REUSEADDR_IF_UNUSED BIO_SOCK_REUSEADDR -# define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL) -# define BIO_get_bind_mode(b) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL) -# endif /* OPENSSL_NO_SOCK */ - -# define BIO_do_connect(b) BIO_do_handshake(b) -# define BIO_do_accept(b) BIO_do_handshake(b) - -# define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL) - -/* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */ -# define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) -# define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)(c)) - -/* BIO_s_file() */ -# define BIO_set_fp(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)(fp)) -# define BIO_get_fp(b,fpp) BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)(fpp)) - -/* BIO_s_fd() and BIO_s_file() */ -# define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL) -# define BIO_tell(b) (int)BIO_ctrl(b,BIO_C_FILE_TELL,0,NULL) - -/* - * name is cast to lose const, but might be better to route through a - * function so we can do it safely - */ -# ifdef CONST_STRICT -/* - * If you are wondering why this isn't defined, its because CONST_STRICT is - * purely a compile-time kludge to allow const to be checked. - */ -int BIO_read_filename(BIO *b, const char *name); -# else -# define BIO_read_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_READ,(char *)(name)) -# endif -# define BIO_write_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_WRITE,name) -# define BIO_append_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_APPEND,name) -# define BIO_rw_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_READ|BIO_FP_WRITE,name) - -/* - * WARNING WARNING, this ups the reference count on the read bio of the SSL - * structure. This is because the ssl read BIO is now pointed to by the - * next_bio field in the bio. So when you free the BIO, make sure you are - * doing a BIO_free_all() to catch the underlying BIO. - */ -# define BIO_set_ssl(b,ssl,c) BIO_ctrl(b,BIO_C_SET_SSL,c,(char *)(ssl)) -# define BIO_get_ssl(b,sslp) BIO_ctrl(b,BIO_C_GET_SSL,0,(char *)(sslp)) -# define BIO_set_ssl_mode(b,client) BIO_ctrl(b,BIO_C_SSL_MODE,client,NULL) -# define BIO_set_ssl_renegotiate_bytes(b,num) \ - BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_BYTES,num,NULL) -# define BIO_get_num_renegotiates(b) \ - BIO_ctrl(b,BIO_C_GET_SSL_NUM_RENEGOTIATES,0,NULL) -# define BIO_set_ssl_renegotiate_timeout(b,seconds) \ - BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT,seconds,NULL) - -/* defined in evp.h */ -/* #define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,1,(char *)(md)) */ - -# define BIO_get_mem_data(b,pp) BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)(pp)) -# define BIO_set_mem_buf(b,bm,c) BIO_ctrl(b,BIO_C_SET_BUF_MEM,c,(char *)(bm)) -# define BIO_get_mem_ptr(b,pp) BIO_ctrl(b,BIO_C_GET_BUF_MEM_PTR,0, \ - (char *)(pp)) -# define BIO_set_mem_eof_return(b,v) \ - BIO_ctrl(b,BIO_C_SET_BUF_MEM_EOF_RETURN,v,NULL) - -/* For the BIO_f_buffer() type */ -# define BIO_get_buffer_num_lines(b) BIO_ctrl(b,BIO_C_GET_BUFF_NUM_LINES,0,NULL) -# define BIO_set_buffer_size(b,size) BIO_ctrl(b,BIO_C_SET_BUFF_SIZE,size,NULL) -# define BIO_set_read_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,0) -# define BIO_set_write_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,1) -# define BIO_set_buffer_read_data(b,buf,num) BIO_ctrl(b,BIO_C_SET_BUFF_READ_DATA,num,buf) - -/* Don't use the next one unless you know what you are doing :-) */ -# define BIO_dup_state(b,ret) BIO_ctrl(b,BIO_CTRL_DUP,0,(char *)(ret)) - -# define BIO_reset(b) (int)BIO_ctrl(b,BIO_CTRL_RESET,0,NULL) -# define BIO_eof(b) (int)BIO_ctrl(b,BIO_CTRL_EOF,0,NULL) -# define BIO_set_close(b,c) (int)BIO_ctrl(b,BIO_CTRL_SET_CLOSE,(c),NULL) -# define BIO_get_close(b) (int)BIO_ctrl(b,BIO_CTRL_GET_CLOSE,0,NULL) -# define BIO_pending(b) (int)BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL) -# define BIO_wpending(b) (int)BIO_ctrl(b,BIO_CTRL_WPENDING,0,NULL) -/* ...pending macros have inappropriate return type */ -size_t BIO_ctrl_pending(BIO *b); -size_t BIO_ctrl_wpending(BIO *b); -# define BIO_flush(b) (int)BIO_ctrl(b,BIO_CTRL_FLUSH,0,NULL) -# define BIO_get_info_callback(b,cbp) (int)BIO_ctrl(b,BIO_CTRL_GET_CALLBACK,0, \ - cbp) -# define BIO_set_info_callback(b,cb) (int)BIO_callback_ctrl(b,BIO_CTRL_SET_CALLBACK,cb) - -/* For the BIO_f_buffer() type */ -# define BIO_buffer_get_num_lines(b) BIO_ctrl(b,BIO_CTRL_GET,0,NULL) -# define BIO_buffer_peek(b,s,l) BIO_ctrl(b,BIO_CTRL_PEEK,(l),(s)) - -/* For BIO_s_bio() */ -# define BIO_set_write_buf_size(b,size) (int)BIO_ctrl(b,BIO_C_SET_WRITE_BUF_SIZE,size,NULL) -# define BIO_get_write_buf_size(b,size) (size_t)BIO_ctrl(b,BIO_C_GET_WRITE_BUF_SIZE,size,NULL) -# define BIO_make_bio_pair(b1,b2) (int)BIO_ctrl(b1,BIO_C_MAKE_BIO_PAIR,0,b2) -# define BIO_destroy_bio_pair(b) (int)BIO_ctrl(b,BIO_C_DESTROY_BIO_PAIR,0,NULL) -# define BIO_shutdown_wr(b) (int)BIO_ctrl(b, BIO_C_SHUTDOWN_WR, 0, NULL) -/* macros with inappropriate type -- but ...pending macros use int too: */ -# define BIO_get_write_guarantee(b) (int)BIO_ctrl(b,BIO_C_GET_WRITE_GUARANTEE,0,NULL) -# define BIO_get_read_request(b) (int)BIO_ctrl(b,BIO_C_GET_READ_REQUEST,0,NULL) -size_t BIO_ctrl_get_write_guarantee(BIO *b); -size_t BIO_ctrl_get_read_request(BIO *b); -int BIO_ctrl_reset_read_request(BIO *b); - -/* ctrl macros for dgram */ -# define BIO_ctrl_dgram_connect(b,peer) \ - (int)BIO_ctrl(b,BIO_CTRL_DGRAM_CONNECT,0, (char *)(peer)) -# define BIO_ctrl_set_connected(b,peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_CONNECTED, 0, (char *)(peer)) -# define BIO_dgram_recv_timedout(b) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP, 0, NULL) -# define BIO_dgram_send_timedout(b) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP, 0, NULL) -# define BIO_dgram_get_peer(b,peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) -# define BIO_dgram_set_peer(b,peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) -# define BIO_dgram_detect_peer_addr(b,peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) -# define BIO_dgram_get_mtu_overhead(b) \ - (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) -# define BIO_dgram_get_local_addr_cap(b) \ - (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) -# define BIO_dgram_get_local_addr_enable(b, penable) \ - (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) -# define BIO_dgram_set_local_addr_enable(b, enable) \ - (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) -# define BIO_dgram_get_effective_caps(b) \ - (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) -# define BIO_dgram_get_caps(b) \ - (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) -# define BIO_dgram_set_caps(b, caps) \ - (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) -# define BIO_dgram_get_no_trunc(b) \ - (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) -# define BIO_dgram_set_no_trunc(b, enable) \ - (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) -# define BIO_dgram_get_mtu(b) \ - (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) -# define BIO_dgram_set_mtu(b, mtu) \ - (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) -# define BIO_dgram_set0_local_addr(b, addr) \ - (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET0_LOCAL_ADDR, 0, (addr)) - -/* ctrl macros for BIO_f_prefix */ -# define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) -# define BIO_set_indent(b,i) BIO_ctrl((b), BIO_CTRL_SET_INDENT, (i), NULL) -# define BIO_get_indent(b) BIO_ctrl((b), BIO_CTRL_GET_INDENT, 0, NULL) - -#define BIO_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_BIO, l, p, newf, dupf, freef) -int BIO_set_ex_data(BIO *bio, int idx, void *data); -void *BIO_get_ex_data(const BIO *bio, int idx); -uint64_t BIO_number_read(BIO *bio); -uint64_t BIO_number_written(BIO *bio); - -/* For BIO_f_asn1() */ -int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, - asn1_ps_func *prefix_free); -int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix, - asn1_ps_func **pprefix_free); -int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, - asn1_ps_func *suffix_free); -int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, - asn1_ps_func **psuffix_free); - -const BIO_METHOD *BIO_s_file(void); -BIO *BIO_new_file(const char *filename, const char *mode); -BIO *BIO_new_from_core_bio(OSSL_LIB_CTX *libctx, OSSL_CORE_BIO *corebio); -# ifndef OPENSSL_NO_STDIO -BIO *BIO_new_fp(FILE *stream, int close_flag); -# endif -BIO *BIO_new_ex(OSSL_LIB_CTX *libctx, const BIO_METHOD *method); -BIO *BIO_new(const BIO_METHOD *type); -int BIO_free(BIO *a); -void BIO_set_data(BIO *a, void *ptr); -void *BIO_get_data(BIO *a); -void BIO_set_init(BIO *a, int init); -int BIO_get_init(BIO *a); -void BIO_set_shutdown(BIO *a, int shut); -int BIO_get_shutdown(BIO *a); -void BIO_vfree(BIO *a); -int BIO_up_ref(BIO *a); -int BIO_read(BIO *b, void *data, int dlen); -int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); -__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, - size_t stride, size_t num_msg, uint64_t flags, - size_t *msgs_processed); -int BIO_gets(BIO *bp, char *buf, int size); -int BIO_get_line(BIO *bio, char *buf, int size); -int BIO_write(BIO *b, const void *data, int dlen); -int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); -__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, - size_t stride, size_t num_msg, uint64_t flags, - size_t *msgs_processed); -__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); -__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); -int BIO_puts(BIO *bp, const char *buf); -int BIO_indent(BIO *b, int indent, int max); -long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); -long BIO_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp); -void *BIO_ptr_ctrl(BIO *bp, int cmd, long larg); -long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg); -BIO *BIO_push(BIO *b, BIO *append); -BIO *BIO_pop(BIO *b); -void BIO_free_all(BIO *a); -BIO *BIO_find_type(BIO *b, int bio_type); -BIO *BIO_next(BIO *b); -void BIO_set_next(BIO *b, BIO *next); -BIO *BIO_get_retry_BIO(BIO *bio, int *reason); -int BIO_get_retry_reason(BIO *bio); -void BIO_set_retry_reason(BIO *bio, int reason); -BIO *BIO_dup_chain(BIO *in); - -int BIO_nread0(BIO *bio, char **buf); -int BIO_nread(BIO *bio, char **buf, int num); -int BIO_nwrite0(BIO *bio, char **buf); -int BIO_nwrite(BIO *bio, char **buf, int num); - -const BIO_METHOD *BIO_s_mem(void); -# ifndef OPENSSL_NO_DGRAM -const BIO_METHOD *BIO_s_dgram_mem(void); -# endif -const BIO_METHOD *BIO_s_secmem(void); -BIO *BIO_new_mem_buf(const void *buf, int len); -# ifndef OPENSSL_NO_SOCK -const BIO_METHOD *BIO_s_socket(void); -const BIO_METHOD *BIO_s_connect(void); -const BIO_METHOD *BIO_s_accept(void); -# endif -const BIO_METHOD *BIO_s_fd(void); -const BIO_METHOD *BIO_s_log(void); -const BIO_METHOD *BIO_s_bio(void); -const BIO_METHOD *BIO_s_null(void); -const BIO_METHOD *BIO_f_null(void); -const BIO_METHOD *BIO_f_buffer(void); -const BIO_METHOD *BIO_f_readbuffer(void); -const BIO_METHOD *BIO_f_linebuffer(void); -const BIO_METHOD *BIO_f_nbio_test(void); -const BIO_METHOD *BIO_f_prefix(void); -const BIO_METHOD *BIO_s_core(void); -# ifndef OPENSSL_NO_DGRAM -const BIO_METHOD *BIO_s_dgram_pair(void); -const BIO_METHOD *BIO_s_datagram(void); -int BIO_dgram_non_fatal_error(int error); -BIO *BIO_new_dgram(int fd, int close_flag); -# ifndef OPENSSL_NO_SCTP -const BIO_METHOD *BIO_s_datagram_sctp(void); -BIO *BIO_new_dgram_sctp(int fd, int close_flag); -int BIO_dgram_is_sctp(BIO *bio); -int BIO_dgram_sctp_notification_cb(BIO *b, - BIO_dgram_sctp_notification_handler_fn handle_notifications, - void *context); -int BIO_dgram_sctp_wait_for_dry(BIO *b); -int BIO_dgram_sctp_msg_waiting(BIO *b); -# endif -# endif - -# ifndef OPENSSL_NO_SOCK -int BIO_sock_should_retry(int i); -int BIO_sock_non_fatal_error(int error); -int BIO_err_is_non_fatal(unsigned int errcode); -int BIO_socket_wait(int fd, int for_read, time_t max_time); -# endif -int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); -int BIO_do_connect_retry(BIO *bio, int timeout, int nap_milliseconds); - -int BIO_fd_should_retry(int i); -int BIO_fd_non_fatal_error(int error); -int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u), - void *u, const void *s, int len); -int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), - void *u, const void *s, int len, int indent); -int BIO_dump(BIO *b, const void *bytes, int len); -int BIO_dump_indent(BIO *b, const void *bytes, int len, int indent); -# ifndef OPENSSL_NO_STDIO -int BIO_dump_fp(FILE *fp, const void *s, int len); -int BIO_dump_indent_fp(FILE *fp, const void *s, int len, int indent); -# endif -int BIO_hex_string(BIO *out, int indent, int width, const void *data, - int datalen); - -# ifndef OPENSSL_NO_SOCK -BIO_ADDR *BIO_ADDR_new(void); -int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); -BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); -int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, - const void *where, size_t wherelen, unsigned short port); -void BIO_ADDR_free(BIO_ADDR *); -void BIO_ADDR_clear(BIO_ADDR *ap); -int BIO_ADDR_family(const BIO_ADDR *ap); -int BIO_ADDR_rawaddress(const BIO_ADDR *ap, void *p, size_t *l); -unsigned short BIO_ADDR_rawport(const BIO_ADDR *ap); -char *BIO_ADDR_hostname_string(const BIO_ADDR *ap, int numeric); -char *BIO_ADDR_service_string(const BIO_ADDR *ap, int numeric); -char *BIO_ADDR_path_string(const BIO_ADDR *ap); - -const BIO_ADDRINFO *BIO_ADDRINFO_next(const BIO_ADDRINFO *bai); -int BIO_ADDRINFO_family(const BIO_ADDRINFO *bai); -int BIO_ADDRINFO_socktype(const BIO_ADDRINFO *bai); -int BIO_ADDRINFO_protocol(const BIO_ADDRINFO *bai); -const BIO_ADDR *BIO_ADDRINFO_address(const BIO_ADDRINFO *bai); -void BIO_ADDRINFO_free(BIO_ADDRINFO *bai); - -enum BIO_hostserv_priorities { - BIO_PARSE_PRIO_HOST, BIO_PARSE_PRIO_SERV -}; -int BIO_parse_hostserv(const char *hostserv, char **host, char **service, - enum BIO_hostserv_priorities hostserv_prio); -enum BIO_lookup_type { - BIO_LOOKUP_CLIENT, BIO_LOOKUP_SERVER -}; -int BIO_lookup(const char *host, const char *service, - enum BIO_lookup_type lookup_type, - int family, int socktype, BIO_ADDRINFO **res); -int BIO_lookup_ex(const char *host, const char *service, - int lookup_type, int family, int socktype, int protocol, - BIO_ADDRINFO **res); -int BIO_sock_error(int sock); -int BIO_socket_ioctl(int fd, long type, void *arg); -int BIO_socket_nbio(int fd, int mode); -int BIO_sock_init(void); -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define BIO_sock_cleanup() while(0) continue -# endif -int BIO_set_tcp_ndelay(int sock, int turn_on); -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 struct hostent *BIO_gethostbyname(const char *name); -OSSL_DEPRECATEDIN_1_1_0 int BIO_get_port(const char *str, unsigned short *port_ptr); -OSSL_DEPRECATEDIN_1_1_0 int BIO_get_host_ip(const char *str, unsigned char *ip); -OSSL_DEPRECATEDIN_1_1_0 int BIO_get_accept_socket(char *host_port, int mode); -OSSL_DEPRECATEDIN_1_1_0 int BIO_accept(int sock, char **ip_port); -# endif - -union BIO_sock_info_u { - BIO_ADDR *addr; -}; -enum BIO_sock_info_type { - BIO_SOCK_INFO_ADDRESS -}; -int BIO_sock_info(int sock, - enum BIO_sock_info_type type, union BIO_sock_info_u *info); - -# define BIO_SOCK_REUSEADDR 0x01 -# define BIO_SOCK_V6_ONLY 0x02 -# define BIO_SOCK_KEEPALIVE 0x04 -# define BIO_SOCK_NONBLOCK 0x08 -# define BIO_SOCK_NODELAY 0x10 -# define BIO_SOCK_TFO 0x20 - -int BIO_socket(int domain, int socktype, int protocol, int options); -int BIO_connect(int sock, const BIO_ADDR *addr, int options); -int BIO_bind(int sock, const BIO_ADDR *addr, int options); -int BIO_listen(int sock, const BIO_ADDR *addr, int options); -int BIO_accept_ex(int accept_sock, BIO_ADDR *addr, int options); -int BIO_closesocket(int sock); - -BIO *BIO_new_socket(int sock, int close_flag); -BIO *BIO_new_connect(const char *host_port); -BIO *BIO_new_accept(const char *host_port); -# endif /* OPENSSL_NO_SOCK*/ - -BIO *BIO_new_fd(int fd, int close_flag); - -int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, - BIO **bio2, size_t writebuf2); -# ifndef OPENSSL_NO_DGRAM -int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, - BIO **bio2, size_t writebuf2); -# endif - -/* - * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. - * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default - * value. - */ - -void BIO_copy_next_retry(BIO *b); - -/* - * long BIO_ghbn_ctrl(int cmd,int iarg,char *parg); - */ - -# define ossl_bio__attr__(x) -# if defined(__GNUC__) && defined(__STDC_VERSION__) \ - && !defined(__MINGW32__) && !defined(__MINGW64__) \ - && !defined(__APPLE__) - /* - * Because we support the 'z' modifier, which made its appearance in C99, - * we can't use __attribute__ with pre C99 dialects. - */ -# if __STDC_VERSION__ >= 199901L -# undef ossl_bio__attr__ -# define ossl_bio__attr__ __attribute__ -# if __GNUC__*10 + __GNUC_MINOR__ >= 44 -# define ossl_bio__printf__ __gnu_printf__ -# else -# define ossl_bio__printf__ __printf__ -# endif -# endif -# endif -int BIO_printf(BIO *bio, const char *format, ...) -ossl_bio__attr__((__format__(ossl_bio__printf__, 2, 3))); -int BIO_vprintf(BIO *bio, const char *format, va_list args) -ossl_bio__attr__((__format__(ossl_bio__printf__, 2, 0))); -int BIO_snprintf(char *buf, size_t n, const char *format, ...) -ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 4))); -int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) -ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); -# undef ossl_bio__attr__ -# undef ossl_bio__printf__ - - -BIO_METHOD *BIO_meth_new(int type, const char *name); -void BIO_meth_free(BIO_METHOD *biom); -int BIO_meth_set_write(BIO_METHOD *biom, - int (*write) (BIO *, const char *, int)); -int BIO_meth_set_write_ex(BIO_METHOD *biom, - int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int BIO_meth_set_sendmmsg(BIO_METHOD *biom, - int (*f) (BIO *, BIO_MSG *, size_t, size_t, - uint64_t, size_t *)); -int BIO_meth_set_read(BIO_METHOD *biom, - int (*read) (BIO *, char *, int)); -int BIO_meth_set_read_ex(BIO_METHOD *biom, - int (*bread) (BIO *, char *, size_t, size_t *)); -int BIO_meth_set_recvmmsg(BIO_METHOD *biom, - int (*f) (BIO *, BIO_MSG *, size_t, size_t, - uint64_t, size_t *)); -int BIO_meth_set_puts(BIO_METHOD *biom, - int (*puts) (BIO *, const char *)); -int BIO_meth_set_gets(BIO_METHOD *biom, - int (*ossl_gets) (BIO *, char *, int)); -int BIO_meth_set_ctrl(BIO_METHOD *biom, - long (*ctrl) (BIO *, int, long, void *)); -int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, - long (*callback_ctrl) (BIO *, int, - BIO_info_cb *)); -# ifndef OPENSSL_NO_DEPRECATED_3_5 -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, - int); -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, - size_t, size_t *); -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, - size_t, size_t, - uint64_t, size_t *); -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, - size_t, size_t *); -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, - size_t, size_t, - uint64_t, size_t *); -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); -OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, - long, void *); -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); -OSSL_DEPRECATEDIN_3_5 int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); -OSSL_DEPRECATEDIN_3_5 long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int, - BIO_info_cb *); -# endif -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/bioerr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/bioerr.h deleted file mode 100644 index e4fdb64..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/bioerr.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_BIOERR_H -# define OPENSSL_BIOERR_H -# pragma once - -# include -# include -# include - - - -/* - * BIO reason codes. - */ -# define BIO_R_ACCEPT_ERROR 100 -# define BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET 141 -# define BIO_R_AMBIGUOUS_HOST_OR_SERVICE 129 -# define BIO_R_BAD_FOPEN_MODE 101 -# define BIO_R_BROKEN_PIPE 124 -# define BIO_R_CONNECT_ERROR 103 -# define BIO_R_CONNECT_TIMEOUT 147 -# define BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET 107 -# define BIO_R_GETSOCKNAME_ERROR 132 -# define BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS 133 -# define BIO_R_GETTING_SOCKTYPE 134 -# define BIO_R_INVALID_ARGUMENT 125 -# define BIO_R_INVALID_SOCKET 135 -# define BIO_R_IN_USE 123 -# define BIO_R_LENGTH_TOO_LONG 102 -# define BIO_R_LISTEN_V6_ONLY 136 -# define BIO_R_LOCAL_ADDR_NOT_AVAILABLE 111 -# define BIO_R_LOOKUP_RETURNED_NOTHING 142 -# define BIO_R_MALFORMED_HOST_OR_SERVICE 130 -# define BIO_R_NBIO_CONNECT_ERROR 110 -# define BIO_R_NON_FATAL 112 -# define BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED 143 -# define BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED 144 -# define BIO_R_NO_PORT_DEFINED 113 -# define BIO_R_NO_SUCH_FILE 128 -# define BIO_R_NULL_PARAMETER 115 /* unused */ -# define BIO_R_TFO_DISABLED 106 -# define BIO_R_TFO_NO_KERNEL_SUPPORT 108 -# define BIO_R_TRANSFER_ERROR 104 -# define BIO_R_TRANSFER_TIMEOUT 105 -# define BIO_R_UNABLE_TO_BIND_SOCKET 117 -# define BIO_R_UNABLE_TO_CREATE_SOCKET 118 -# define BIO_R_UNABLE_TO_KEEPALIVE 137 -# define BIO_R_UNABLE_TO_LISTEN_SOCKET 119 -# define BIO_R_UNABLE_TO_NODELAY 138 -# define BIO_R_UNABLE_TO_REUSEADDR 139 -# define BIO_R_UNABLE_TO_TFO 109 -# define BIO_R_UNAVAILABLE_IP_FAMILY 145 -# define BIO_R_UNINITIALIZED 120 -# define BIO_R_UNKNOWN_INFO_TYPE 140 -# define BIO_R_UNSUPPORTED_IP_FAMILY 146 -# define BIO_R_UNSUPPORTED_METHOD 121 -# define BIO_R_UNSUPPORTED_PROTOCOL_FAMILY 131 -# define BIO_R_WRITE_TO_READ_ONLY_BIO 126 -# define BIO_R_WSASTARTUP 122 -# define BIO_R_PORT_MISMATCH 150 -# define BIO_R_PEER_ADDR_NOT_AVAILABLE 151 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/blowfish.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/blowfish.h deleted file mode 100644 index 667d642..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/blowfish.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_BLOWFISH_H -# define OPENSSL_BLOWFISH_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_BLOWFISH_H -# endif - -# include - -# ifndef OPENSSL_NO_BF -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define BF_BLOCK 8 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 - -# define BF_ENCRYPT 1 -# define BF_DECRYPT 0 - -/*- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! BF_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define BF_LONG unsigned int - -# define BF_ROUNDS 16 - -typedef struct bf_key_st { - BF_LONG P[BF_ROUNDS + 2]; - BF_LONG S[4 * 256]; -} BF_KEY; - -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 void BF_set_key(BF_KEY *key, int len, - const unsigned char *data); -OSSL_DEPRECATEDIN_3_0 void BF_encrypt(BF_LONG *data, const BF_KEY *key); -OSSL_DEPRECATEDIN_3_0 void BF_decrypt(BF_LONG *data, const BF_KEY *key); -OSSL_DEPRECATEDIN_3_0 void BF_ecb_encrypt(const unsigned char *in, - unsigned char *out, const BF_KEY *key, - int enc); -OSSL_DEPRECATEDIN_3_0 void BF_cbc_encrypt(const unsigned char *in, - unsigned char *out, long length, - const BF_KEY *schedule, - unsigned char *ivec, int enc); -OSSL_DEPRECATEDIN_3_0 void BF_cfb64_encrypt(const unsigned char *in, - unsigned char *out, - long length, const BF_KEY *schedule, - unsigned char *ivec, int *num, - int enc); -OSSL_DEPRECATEDIN_3_0 void BF_ofb64_encrypt(const unsigned char *in, - unsigned char *out, - long length, const BF_KEY *schedule, - unsigned char *ivec, int *num); -OSSL_DEPRECATEDIN_3_0 const char *BF_options(void); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/bn.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/bn.h deleted file mode 100644 index ea706dc..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/bn.h +++ /dev/null @@ -1,590 +0,0 @@ -/* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_BN_H -# define OPENSSL_BN_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_BN_H -# endif - -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * 64-bit processor with LP64 ABI - */ -# ifdef SIXTY_FOUR_BIT_LONG -# define BN_ULONG unsigned long -# define BN_BYTES 8 -# endif - -/* - * 64-bit processor other than LP64 ABI - */ -# ifdef SIXTY_FOUR_BIT -# define BN_ULONG unsigned long long -# define BN_BYTES 8 -# endif - -# ifdef THIRTY_TWO_BIT -# define BN_ULONG unsigned int -# define BN_BYTES 4 -# endif - -# define BN_BITS2 (BN_BYTES * 8) -# define BN_BITS (BN_BITS2 * 2) -# define BN_TBIT ((BN_ULONG)1 << (BN_BITS2 - 1)) - -# define BN_FLG_MALLOCED 0x01 -# define BN_FLG_STATIC_DATA 0x02 - -/* - * avoid leaking exponent information through timing, - * BN_mod_exp_mont() will call BN_mod_exp_mont_consttime, - * BN_div() will call BN_div_no_branch, - * BN_mod_inverse() will call bn_mod_inverse_no_branch. - */ -# define BN_FLG_CONSTTIME 0x04 -# define BN_FLG_SECURE 0x08 - -# ifndef OPENSSL_NO_DEPRECATED_0_9_8 -/* deprecated name for the flag */ -# define BN_FLG_EXP_CONSTTIME BN_FLG_CONSTTIME -# define BN_FLG_FREE 0x8000 /* used for debugging */ -# endif - -void BN_set_flags(BIGNUM *b, int n); -int BN_get_flags(const BIGNUM *b, int n); - -/* Values for |top| in BN_rand() */ -#define BN_RAND_TOP_ANY -1 -#define BN_RAND_TOP_ONE 0 -#define BN_RAND_TOP_TWO 1 - -/* Values for |bottom| in BN_rand() */ -#define BN_RAND_BOTTOM_ANY 0 -#define BN_RAND_BOTTOM_ODD 1 - -/* - * get a clone of a BIGNUM with changed flags, for *temporary* use only (the - * two BIGNUMs cannot be used in parallel!). Also only for *read only* use. The - * value |dest| should be a newly allocated BIGNUM obtained via BN_new() that - * has not been otherwise initialised or used. - */ -void BN_with_flags(BIGNUM *dest, const BIGNUM *b, int flags); - -/* Wrapper function to make using BN_GENCB easier */ -int BN_GENCB_call(BN_GENCB *cb, int a, int b); - -BN_GENCB *BN_GENCB_new(void); -void BN_GENCB_free(BN_GENCB *cb); - -/* Populate a BN_GENCB structure with an "old"-style callback */ -void BN_GENCB_set_old(BN_GENCB *gencb, void (*callback) (int, int, void *), - void *cb_arg); - -/* Populate a BN_GENCB structure with a "new"-style callback */ -void BN_GENCB_set(BN_GENCB *gencb, int (*callback) (int, int, BN_GENCB *), - void *cb_arg); - -void *BN_GENCB_get_arg(BN_GENCB *cb); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define BN_prime_checks 0 /* default: select number of iterations based - * on the size of the number */ - -/* - * BN_prime_checks_for_size() returns the number of Miller-Rabin iterations - * that will be done for checking that a random number is probably prime. The - * error rate for accepting a composite number as prime depends on the size of - * the prime |b|. The error rates used are for calculating an RSA key with 2 primes, - * and so the level is what you would expect for a key of double the size of the - * prime. - * - * This table is generated using the algorithm of FIPS PUB 186-4 - * Digital Signature Standard (DSS), section F.1, page 117. - * (https://dx.doi.org/10.6028/NIST.FIPS.186-4) - * - * The following magma script was used to generate the output: - * securitybits:=125; - * k:=1024; - * for t:=1 to 65 do - * for M:=3 to Floor(2*Sqrt(k-1)-1) do - * S:=0; - * // Sum over m - * for m:=3 to M do - * s:=0; - * // Sum over j - * for j:=2 to m do - * s+:=(RealField(32)!2)^-(j+(k-1)/j); - * end for; - * S+:=2^(m-(m-1)*t)*s; - * end for; - * A:=2^(k-2-M*t); - * B:=8*(Pi(RealField(32))^2-6)/3*2^(k-2)*S; - * pkt:=2.00743*Log(2)*k*2^-k*(A+B); - * seclevel:=Floor(-Log(2,pkt)); - * if seclevel ge securitybits then - * printf "k: %5o, security: %o bits (t: %o, M: %o)\n",k,seclevel,t,M; - * break; - * end if; - * end for; - * if seclevel ge securitybits then break; end if; - * end for; - * - * It can be run online at: - * http://magma.maths.usyd.edu.au/calc - * - * And will output: - * k: 1024, security: 129 bits (t: 6, M: 23) - * - * k is the number of bits of the prime, securitybits is the level we want to - * reach. - * - * prime length | RSA key size | # MR tests | security level - * -------------+--------------|------------+--------------- - * (b) >= 6394 | >= 12788 | 3 | 256 bit - * (b) >= 3747 | >= 7494 | 3 | 192 bit - * (b) >= 1345 | >= 2690 | 4 | 128 bit - * (b) >= 1080 | >= 2160 | 5 | 128 bit - * (b) >= 852 | >= 1704 | 5 | 112 bit - * (b) >= 476 | >= 952 | 5 | 80 bit - * (b) >= 400 | >= 800 | 6 | 80 bit - * (b) >= 347 | >= 694 | 7 | 80 bit - * (b) >= 308 | >= 616 | 8 | 80 bit - * (b) >= 55 | >= 110 | 27 | 64 bit - * (b) >= 6 | >= 12 | 34 | 64 bit - */ - -# define BN_prime_checks_for_size(b) ((b) >= 3747 ? 3 : \ - (b) >= 1345 ? 4 : \ - (b) >= 476 ? 5 : \ - (b) >= 400 ? 6 : \ - (b) >= 347 ? 7 : \ - (b) >= 308 ? 8 : \ - (b) >= 55 ? 27 : \ - /* b >= 6 */ 34) -# endif - -# define BN_num_bytes(a) ((BN_num_bits(a)+7)/8) - -int BN_abs_is_word(const BIGNUM *a, const BN_ULONG w); -int BN_is_zero(const BIGNUM *a); -int BN_is_one(const BIGNUM *a); -int BN_is_word(const BIGNUM *a, const BN_ULONG w); -int BN_is_odd(const BIGNUM *a); - -# define BN_one(a) (BN_set_word((a),1)) - -void BN_zero_ex(BIGNUM *a); - -# if OPENSSL_API_LEVEL > 908 -# define BN_zero(a) BN_zero_ex(a) -# else -# define BN_zero(a) (BN_set_word((a),0)) -# endif - -const BIGNUM *BN_value_one(void); -char *BN_options(void); -BN_CTX *BN_CTX_new_ex(OSSL_LIB_CTX *ctx); -BN_CTX *BN_CTX_new(void); -BN_CTX *BN_CTX_secure_new_ex(OSSL_LIB_CTX *ctx); -BN_CTX *BN_CTX_secure_new(void); -void BN_CTX_free(BN_CTX *c); -void BN_CTX_start(BN_CTX *ctx); -BIGNUM *BN_CTX_get(BN_CTX *ctx); -void BN_CTX_end(BN_CTX *ctx); -int BN_rand_ex(BIGNUM *rnd, int bits, int top, int bottom, - unsigned int strength, BN_CTX *ctx); -int BN_rand(BIGNUM *rnd, int bits, int top, int bottom); -int BN_priv_rand_ex(BIGNUM *rnd, int bits, int top, int bottom, - unsigned int strength, BN_CTX *ctx); -int BN_priv_rand(BIGNUM *rnd, int bits, int top, int bottom); -int BN_rand_range_ex(BIGNUM *r, const BIGNUM *range, unsigned int strength, - BN_CTX *ctx); -int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); -int BN_priv_rand_range_ex(BIGNUM *r, const BIGNUM *range, - unsigned int strength, BN_CTX *ctx); -int BN_priv_rand_range(BIGNUM *rnd, const BIGNUM *range); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); -OSSL_DEPRECATEDIN_3_0 -int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range); -# endif -int BN_num_bits(const BIGNUM *a); -int BN_num_bits_word(BN_ULONG l); -int BN_security_bits(int L, int N); -BIGNUM *BN_new(void); -BIGNUM *BN_secure_new(void); -void BN_clear_free(BIGNUM *a); -BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b); -void BN_swap(BIGNUM *a, BIGNUM *b); -BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); -BIGNUM *BN_signed_bin2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2bin(const BIGNUM *a, unsigned char *to); -int BN_bn2binpad(const BIGNUM *a, unsigned char *to, int tolen); -int BN_signed_bn2bin(const BIGNUM *a, unsigned char *to, int tolen); -BIGNUM *BN_lebin2bn(const unsigned char *s, int len, BIGNUM *ret); -BIGNUM *BN_signed_lebin2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2lebinpad(const BIGNUM *a, unsigned char *to, int tolen); -int BN_signed_bn2lebin(const BIGNUM *a, unsigned char *to, int tolen); -BIGNUM *BN_native2bn(const unsigned char *s, int len, BIGNUM *ret); -BIGNUM *BN_signed_native2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2nativepad(const BIGNUM *a, unsigned char *to, int tolen); -int BN_signed_bn2native(const BIGNUM *a, unsigned char *to, int tolen); -BIGNUM *BN_mpi2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2mpi(const BIGNUM *a, unsigned char *to); -int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); -int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx); -/** BN_set_negative sets sign of a BIGNUM - * \param b pointer to the BIGNUM object - * \param n 0 if the BIGNUM b should be positive and a value != 0 otherwise - */ -void BN_set_negative(BIGNUM *b, int n); -/** BN_is_negative returns 1 if the BIGNUM is negative - * \param b pointer to the BIGNUM object - * \return 1 if a < 0 and 0 otherwise - */ -int BN_is_negative(const BIGNUM *b); - -int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, - BN_CTX *ctx); -# define BN_mod(rem,m,d,ctx) BN_div(NULL,(rem),(m),(d),(ctx)) -int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); -int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *m); -int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *m); -int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); -int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); -int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m); -int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m); - -BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w); -BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w); -int BN_mul_word(BIGNUM *a, BN_ULONG w); -int BN_add_word(BIGNUM *a, BN_ULONG w); -int BN_sub_word(BIGNUM *a, BN_ULONG w); -int BN_set_word(BIGNUM *a, BN_ULONG w); -BN_ULONG BN_get_word(const BIGNUM *a); - -int BN_cmp(const BIGNUM *a, const BIGNUM *b); -void BN_free(BIGNUM *a); -int BN_is_bit_set(const BIGNUM *a, int n); -int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); -int BN_lshift1(BIGNUM *r, const BIGNUM *a); -int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); - -int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); -int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, - BN_MONT_CTX *in_mont); -int BN_mod_exp_mont_word(BIGNUM *r, BN_ULONG a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1, - const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m, - BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); -int BN_mod_exp_mont_consttime_x2(BIGNUM *rr1, const BIGNUM *a1, const BIGNUM *p1, - const BIGNUM *m1, BN_MONT_CTX *in_mont1, - BIGNUM *rr2, const BIGNUM *a2, const BIGNUM *p2, - const BIGNUM *m2, BN_MONT_CTX *in_mont2, - BN_CTX *ctx); - -int BN_mask_bits(BIGNUM *a, int n); -# ifndef OPENSSL_NO_STDIO -int BN_print_fp(FILE *fp, const BIGNUM *a); -# endif -int BN_print(BIO *bio, const BIGNUM *a); -int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx); -int BN_rshift(BIGNUM *r, const BIGNUM *a, int n); -int BN_rshift1(BIGNUM *r, const BIGNUM *a); -void BN_clear(BIGNUM *a); -BIGNUM *BN_dup(const BIGNUM *a); -int BN_ucmp(const BIGNUM *a, const BIGNUM *b); -int BN_set_bit(BIGNUM *a, int n); -int BN_clear_bit(BIGNUM *a, int n); -char *BN_bn2hex(const BIGNUM *a); -char *BN_bn2dec(const BIGNUM *a); -int BN_hex2bn(BIGNUM **a, const char *str); -int BN_dec2bn(BIGNUM **a, const char *str); -int BN_asc2bn(BIGNUM **a, const char *str); -int BN_gcd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); -int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); /* returns - * -2 for - * error */ -int BN_are_coprime(BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); -BIGNUM *BN_mod_inverse(BIGNUM *ret, - const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); -BIGNUM *BN_mod_sqrt(BIGNUM *ret, - const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); - -void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords); - -/* Deprecated versions */ -# ifndef OPENSSL_NO_DEPRECATED_0_9_8 -OSSL_DEPRECATEDIN_0_9_8 -BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe, - const BIGNUM *add, const BIGNUM *rem, - void (*callback) (int, int, void *), - void *cb_arg); -OSSL_DEPRECATEDIN_0_9_8 -int BN_is_prime(const BIGNUM *p, int nchecks, - void (*callback) (int, int, void *), - BN_CTX *ctx, void *cb_arg); -OSSL_DEPRECATEDIN_0_9_8 -int BN_is_prime_fasttest(const BIGNUM *p, int nchecks, - void (*callback) (int, int, void *), - BN_CTX *ctx, void *cb_arg, - int do_trial_division); -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb); -OSSL_DEPRECATEDIN_3_0 -int BN_is_prime_fasttest_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, - int do_trial_division, BN_GENCB *cb); -# endif -/* Newer versions */ -int BN_generate_prime_ex2(BIGNUM *ret, int bits, int safe, - const BIGNUM *add, const BIGNUM *rem, BN_GENCB *cb, - BN_CTX *ctx); -int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add, - const BIGNUM *rem, BN_GENCB *cb); -int BN_check_prime(const BIGNUM *p, BN_CTX *ctx, BN_GENCB *cb); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx); - -OSSL_DEPRECATEDIN_3_0 -int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, - const BIGNUM *Xp, const BIGNUM *Xp1, - const BIGNUM *Xp2, const BIGNUM *e, BN_CTX *ctx, - BN_GENCB *cb); -OSSL_DEPRECATEDIN_3_0 -int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, BIGNUM *Xp1, - BIGNUM *Xp2, const BIGNUM *Xp, const BIGNUM *e, - BN_CTX *ctx, BN_GENCB *cb); -# endif - -BN_MONT_CTX *BN_MONT_CTX_new(void); -int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - BN_MONT_CTX *mont, BN_CTX *ctx); -int BN_to_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, - BN_CTX *ctx); -int BN_from_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, - BN_CTX *ctx); -void BN_MONT_CTX_free(BN_MONT_CTX *mont); -int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx); -BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from); -BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, CRYPTO_RWLOCK *lock, - const BIGNUM *mod, BN_CTX *ctx); - -/* BN_BLINDING flags */ -# define BN_BLINDING_NO_UPDATE 0x00000001 -# define BN_BLINDING_NO_RECREATE 0x00000002 - -BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod); -void BN_BLINDING_free(BN_BLINDING *b); -int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx); -int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); -int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); -int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); -int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, - BN_CTX *); - -int BN_BLINDING_is_current_thread(BN_BLINDING *b); -void BN_BLINDING_set_current_thread(BN_BLINDING *b); -int BN_BLINDING_lock(BN_BLINDING *b); -int BN_BLINDING_unlock(BN_BLINDING *b); - -unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); -void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); -BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, - const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, - int (*bn_mod_exp) (BIGNUM *r, - const BIGNUM *a, - const BIGNUM *p, - const BIGNUM *m, - BN_CTX *ctx, - BN_MONT_CTX *m_ctx), - BN_MONT_CTX *m_ctx); -# ifndef OPENSSL_NO_DEPRECATED_0_9_8 -OSSL_DEPRECATEDIN_0_9_8 -void BN_set_params(int mul, int high, int low, int mont); -OSSL_DEPRECATEDIN_0_9_8 -int BN_get_params(int which); /* 0, mul, 1 high, 2 low, 3 mont */ -# endif - -BN_RECP_CTX *BN_RECP_CTX_new(void); -void BN_RECP_CTX_free(BN_RECP_CTX *recp); -int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *rdiv, BN_CTX *ctx); -int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y, - BN_RECP_CTX *recp, BN_CTX *ctx); -int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); -int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, - BN_RECP_CTX *recp, BN_CTX *ctx); - -# ifndef OPENSSL_NO_EC2M - -/* - * Functions for arithmetic over binary polynomials represented by BIGNUMs. - * The BIGNUM::neg property of BIGNUMs representing binary polynomials is - * ignored. Note that input arguments are not const so that their bit arrays - * can be expanded to the appropriate size if needed. - */ - -/* - * r = a + b - */ -int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -# define BN_GF2m_sub(r, a, b) BN_GF2m_add(r, a, b) -/* - * r=a mod p - */ -int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p); -/* r = (a * b) mod p */ -int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); -/* r = (a * a) mod p */ -int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -/* r = (1 / b) mod p */ -int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *b, const BIGNUM *p, BN_CTX *ctx); -/* r = (a / b) mod p */ -int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); -/* r = (a ^ b) mod p */ -int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); -/* r = sqrt(a) mod p */ -int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - BN_CTX *ctx); -/* r^2 + r = a mod p */ -int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - BN_CTX *ctx); -# define BN_GF2m_cmp(a, b) BN_ucmp((a), (b)) -/*- - * Some functions allow for representation of the irreducible polynomials - * as an unsigned int[], say p. The irreducible f(t) is then of the form: - * t^p[0] + t^p[1] + ... + t^p[k] - * where m = p[0] > p[1] > ... > p[k] = 0. - */ -/* r = a mod p */ -int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[]); -/* r = (a * b) mod p */ -int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); -/* r = (a * a) mod p */ -int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[], - BN_CTX *ctx); -/* r = (1 / b) mod p */ -int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *b, const int p[], - BN_CTX *ctx); -/* r = (a / b) mod p */ -int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); -/* r = (a ^ b) mod p */ -int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); -/* r = sqrt(a) mod p */ -int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, - const int p[], BN_CTX *ctx); -/* r^2 + r = a mod p */ -int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a, - const int p[], BN_CTX *ctx); -int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max); -int BN_GF2m_arr2poly(const int p[], BIGNUM *a); - -# endif - -/* - * faster mod functions for the 'NIST primes' 0 <= a < p^2 - */ -int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); - -const BIGNUM *BN_get0_nist_prime_192(void); -const BIGNUM *BN_get0_nist_prime_224(void); -const BIGNUM *BN_get0_nist_prime_256(void); -const BIGNUM *BN_get0_nist_prime_384(void); -const BIGNUM *BN_get0_nist_prime_521(void); - -int (*BN_nist_mod_func(const BIGNUM *p)) (BIGNUM *r, const BIGNUM *a, - const BIGNUM *field, BN_CTX *ctx); - -int BN_generate_dsa_nonce(BIGNUM *out, const BIGNUM *range, - const BIGNUM *priv, const unsigned char *message, - size_t message_len, BN_CTX *ctx); - -/* Primes from RFC 2409 */ -BIGNUM *BN_get_rfc2409_prime_768(BIGNUM *bn); -BIGNUM *BN_get_rfc2409_prime_1024(BIGNUM *bn); - -/* Primes from RFC 3526 */ -BIGNUM *BN_get_rfc3526_prime_1536(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_2048(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_3072(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_4096(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_6144(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_8192(BIGNUM *bn); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define get_rfc2409_prime_768 BN_get_rfc2409_prime_768 -# define get_rfc2409_prime_1024 BN_get_rfc2409_prime_1024 -# define get_rfc3526_prime_1536 BN_get_rfc3526_prime_1536 -# define get_rfc3526_prime_2048 BN_get_rfc3526_prime_2048 -# define get_rfc3526_prime_3072 BN_get_rfc3526_prime_3072 -# define get_rfc3526_prime_4096 BN_get_rfc3526_prime_4096 -# define get_rfc3526_prime_6144 BN_get_rfc3526_prime_6144 -# define get_rfc3526_prime_8192 BN_get_rfc3526_prime_8192 -# endif - -int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/bnerr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/bnerr.h deleted file mode 100644 index 7c3f6ef..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/bnerr.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_BNERR_H -# define OPENSSL_BNERR_H -# pragma once - -# include -# include -# include - - - -/* - * BN reason codes. - */ -# define BN_R_ARG2_LT_ARG3 100 -# define BN_R_BAD_RECIPROCAL 101 -# define BN_R_BIGNUM_TOO_LONG 114 -# define BN_R_BITS_TOO_SMALL 118 -# define BN_R_CALLED_WITH_EVEN_MODULUS 102 -# define BN_R_DIV_BY_ZERO 103 -# define BN_R_ENCODING_ERROR 104 -# define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 105 -# define BN_R_INPUT_NOT_REDUCED 110 -# define BN_R_INVALID_LENGTH 106 -# define BN_R_INVALID_RANGE 115 -# define BN_R_INVALID_SHIFT 119 -# define BN_R_NOT_A_SQUARE 111 -# define BN_R_NOT_INITIALIZED 107 -# define BN_R_NO_INVERSE 108 -# define BN_R_NO_PRIME_CANDIDATE 121 -# define BN_R_NO_SOLUTION 116 -# define BN_R_NO_SUITABLE_DIGEST 120 -# define BN_R_PRIVATE_KEY_TOO_LARGE 117 -# define BN_R_P_IS_NOT_PRIME 112 -# define BN_R_TOO_MANY_ITERATIONS 113 -# define BN_R_TOO_MANY_TEMPORARY_VARIABLES 109 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/buffer.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/buffer.h deleted file mode 100644 index 5773b98..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/buffer.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_BUFFER_H -# define OPENSSL_BUFFER_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_BUFFER_H -# endif - -# include -# ifndef OPENSSL_CRYPTO_H -# include -# endif -# include - - -#ifdef __cplusplus -extern "C" { -#endif - -# include -# include - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define BUF_strdup(s) OPENSSL_strdup(s) -# define BUF_strndup(s, size) OPENSSL_strndup(s, size) -# define BUF_memdup(data, size) OPENSSL_memdup(data, size) -# define BUF_strlcpy(dst, src, size) OPENSSL_strlcpy(dst, src, size) -# define BUF_strlcat(dst, src, size) OPENSSL_strlcat(dst, src, size) -# define BUF_strnlen(str, maxlen) OPENSSL_strnlen(str, maxlen) -# endif - -struct buf_mem_st { - size_t length; /* current number of bytes */ - char *data; - size_t max; /* size of buffer */ - unsigned long flags; -}; - -# define BUF_MEM_FLAG_SECURE 0x01 - -BUF_MEM *BUF_MEM_new(void); -BUF_MEM *BUF_MEM_new_ex(unsigned long flags); -void BUF_MEM_free(BUF_MEM *a); -size_t BUF_MEM_grow(BUF_MEM *str, size_t len); -size_t BUF_MEM_grow_clean(BUF_MEM *str, size_t len); -void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/buffererr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/buffererr.h deleted file mode 100644 index d18b1f8..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/buffererr.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_BUFFERERR_H -# define OPENSSL_BUFFERERR_H -# pragma once - -# include -# include -# include - - - -/* - * BUF reason codes. - */ - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/byteorder.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/byteorder.h deleted file mode 100644 index 3c8f34b..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/byteorder.h +++ /dev/null @@ -1,339 +0,0 @@ -/* - * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_BYTEORDER_H -# define OPENSSL_BYTEORDER_H -# pragma once - -# include -# include - -/* - * "Modern" compilers do a decent job of optimising these functions to just a - * couple of instruction ([swap +] store, or load [+ swap]) when either no - * swapping is required, or a suitable swap instruction is available. - */ - -# if defined(_MSC_VER) && _MSC_VER>=1300 -# include -# pragma intrinsic(_byteswap_ushort) -# pragma intrinsic(_byteswap_ulong) -# pragma intrinsic(_byteswap_uint64) -# define OSSL_HTOBE16(x) _byteswap_ushort(x) -# define OSSL_HTOBE32(x) _byteswap_ulong(x) -# define OSSL_HTOBE64(x) _byteswap_uint64(x) -# define OSSL_BE16TOH(x) _byteswap_ushort(x) -# define OSSL_BE32TOH(x) _byteswap_ulong(x) -# define OSSL_BE64TOH(x) _byteswap_uint64(x) -# define OSSL_HTOLE16(x) (x) -# define OSSL_HTOLE32(x) (x) -# define OSSL_HTOLE64(x) (x) -# define OSSL_LE16TOH(x) (x) -# define OSSL_LE32TOH(x) (x) -# define OSSL_LE64TOH(x) (x) - -# elif defined(__GLIBC__) && defined(__GLIBC_PREREQ) -# if (__GLIBC_PREREQ(2, 19)) && defined(_DEFAULT_SOURCE) -# include -# define OSSL_HTOBE16(x) htobe16(x) -# define OSSL_HTOBE32(x) htobe32(x) -# define OSSL_HTOBE64(x) htobe64(x) -# define OSSL_BE16TOH(x) be16toh(x) -# define OSSL_BE32TOH(x) be32toh(x) -# define OSSL_BE64TOH(x) be64toh(x) -# define OSSL_HTOLE16(x) htole16(x) -# define OSSL_HTOLE32(x) htole32(x) -# define OSSL_HTOLE64(x) htole64(x) -# define OSSL_LE16TOH(x) le16toh(x) -# define OSSL_LE32TOH(x) le32toh(x) -# define OSSL_LE64TOH(x) le64toh(x) -# endif - -# elif defined(__FreeBSD__) || defined(__NetBSD__) || defined (__OpenBSD__) -# if defined(__OpenBSD__) -# include -# else -# include -# endif -# define OSSL_HTOBE16(x) htobe16(x) -# define OSSL_HTOBE32(x) htobe32(x) -# define OSSL_HTOBE64(x) htobe64(x) -# define OSSL_BE16TOH(x) be16toh(x) -# define OSSL_BE32TOH(x) be32toh(x) -# define OSSL_BE64TOH(x) be64toh(x) -# define OSSL_HTOLE16(x) htole16(x) -# define OSSL_HTOLE32(x) htole32(x) -# define OSSL_HTOLE64(x) htole64(x) -# define OSSL_LE16TOH(x) le16toh(x) -# define OSSL_LE32TOH(x) le32toh(x) -# define OSSL_LE64TOH(x) le64toh(x) - -# elif defined(__APPLE__) -# include -# define OSSL_HTOBE16(x) OSSwapHostToBigInt16(x) -# define OSSL_HTOBE32(x) OSSwapHostToBigInt32(x) -# define OSSL_HTOBE64(x) OSSwapHostToBigInt64(x) -# define OSSL_BE16TOH(x) OSSwapBigToHostInt16(x) -# define OSSL_BE32TOH(x) OSSwapBigToHostInt32(x) -# define OSSL_BE64TOH(x) OSSwapBigToHostInt64(x) -# define OSSL_HTOLE16(x) OSSwapHostToLittleInt16(x) -# define OSSL_HTOLE32(x) OSSwapHostToLittleInt32(x) -# define OSSL_HTOLE64(x) OSSwapHostToLittleInt64(x) -# define OSSL_LE16TOH(x) OSSwapLittleToHostInt16(x) -# define OSSL_LE32TOH(x) OSSwapLittleToHostInt32(x) -# define OSSL_LE64TOH(x) OSSwapLittleToHostInt64(x) - -# endif - -static ossl_inline ossl_unused unsigned char * -OPENSSL_store_u16_le(unsigned char *out, uint16_t val) -{ -# ifdef OSSL_HTOLE16 - uint16_t t = OSSL_HTOLE16(val); - - memcpy(out, (unsigned char *)&t, 2); - return out + 2; -# else - *out++ = (val & 0xff); - *out++ = (val >> 8) & 0xff; - return out; -# endif -} - -static ossl_inline ossl_unused unsigned char * -OPENSSL_store_u16_be(unsigned char *out, uint16_t val) -{ -# ifdef OSSL_HTOBE16 - uint16_t t = OSSL_HTOBE16(val); - - memcpy(out, (unsigned char *)&t, 2); - return out + 2; -# else - *out++ = (val >> 8) & 0xff; - *out++ = (val & 0xff); - return out; -# endif -} - -static ossl_inline ossl_unused unsigned char * -OPENSSL_store_u32_le(unsigned char *out, uint32_t val) -{ -# ifdef OSSL_HTOLE32 - uint32_t t = OSSL_HTOLE32(val); - - memcpy(out, (unsigned char *)&t, 4); - return out + 4; -# else - *out++ = (val & 0xff); - *out++ = (val >> 8) & 0xff; - *out++ = (val >> 16) & 0xff; - *out++ = (val >> 24) & 0xff; - return out; -# endif -} - -static ossl_inline ossl_unused unsigned char * -OPENSSL_store_u32_be(unsigned char *out, uint32_t val) -{ -# ifdef OSSL_HTOBE32 - uint32_t t = OSSL_HTOBE32(val); - - memcpy(out, (unsigned char *)&t, 4); - return out + 4; -# else - *out++ = (val >> 24) & 0xff; - *out++ = (val >> 16) & 0xff; - *out++ = (val >> 8) & 0xff; - *out++ = (val & 0xff); - return out; -# endif -} - -static ossl_inline ossl_unused unsigned char * -OPENSSL_store_u64_le(unsigned char *out, uint64_t val) -{ -# ifdef OSSL_HTOLE64 - uint64_t t = OSSL_HTOLE64(val); - - memcpy(out, (unsigned char *)&t, 8); - return out + 8; -# else - *out++ = (val & 0xff); - *out++ = (val >> 8) & 0xff; - *out++ = (val >> 16) & 0xff; - *out++ = (val >> 24) & 0xff; - *out++ = (val >> 32) & 0xff; - *out++ = (val >> 40) & 0xff; - *out++ = (val >> 48) & 0xff; - *out++ = (val >> 56) & 0xff; - return out; -# endif -} - -static ossl_inline ossl_unused unsigned char * -OPENSSL_store_u64_be(unsigned char *out, uint64_t val) -{ -# ifdef OSSL_HTOLE64 - uint64_t t = OSSL_HTOBE64(val); - - memcpy(out, (unsigned char *)&t, 8); - return out + 8; -# else - *out++ = (val >> 56) & 0xff; - *out++ = (val >> 48) & 0xff; - *out++ = (val >> 40) & 0xff; - *out++ = (val >> 32) & 0xff; - *out++ = (val >> 24) & 0xff; - *out++ = (val >> 16) & 0xff; - *out++ = (val >> 8) & 0xff; - *out++ = (val & 0xff); - return out; -# endif -} - -static ossl_inline ossl_unused const unsigned char * -OPENSSL_load_u16_le(uint16_t *val, const unsigned char *in) -{ -# ifdef OSSL_LE16TOH - uint16_t t; - - memcpy((unsigned char *)&t, in, 2); - *val = OSSL_LE16TOH(t); - return in + 2; -# else - uint16_t b0 = *in++; - uint16_t b1 = *in++; - - *val = b0 | (b1 << 8); - return in; -#endif -} - -static ossl_inline ossl_unused const unsigned char * -OPENSSL_load_u16_be(uint16_t *val, const unsigned char *in) -{ -# ifdef OSSL_LE16TOH - uint16_t t; - - memcpy((unsigned char *)&t, in, 2); - *val = OSSL_BE16TOH(t); - return in + 2; -# else - uint16_t b1 = *in++; - uint16_t b0 = *in++; - - *val = b0 | (b1 << 8); - return in; -#endif -} - -static ossl_inline ossl_unused const unsigned char * -OPENSSL_load_u32_le(uint32_t *val, const unsigned char *in) -{ -# ifdef OSSL_LE32TOH - uint32_t t; - - memcpy((unsigned char *)&t, in, 4); - *val = OSSL_LE32TOH(t); - return in + 4; -# else - uint32_t b0 = *in++; - uint32_t b1 = *in++; - uint32_t b2 = *in++; - uint32_t b3 = *in++; - - *val = b0 | (b1 << 8) | (b2 << 16) | (b3 << 24); - return in; -#endif -} - -static ossl_inline ossl_unused const unsigned char * -OPENSSL_load_u32_be(uint32_t *val, const unsigned char *in) -{ -# ifdef OSSL_LE32TOH - uint32_t t; - - memcpy((unsigned char *)&t, in, 4); - *val = OSSL_BE32TOH(t); - return in + 4; -# else - uint32_t b3 = *in++; - uint32_t b2 = *in++; - uint32_t b1 = *in++; - uint32_t b0 = *in++; - - *val = b0 | (b1 << 8) | (b2 << 16) | (b3 << 24); - return in; -#endif -} - -static ossl_inline ossl_unused const unsigned char * -OPENSSL_load_u64_le(uint64_t *val, const unsigned char *in) -{ -# ifdef OSSL_LE64TOH - uint64_t t; - - memcpy((unsigned char *)&t, in, 8); - *val = OSSL_LE64TOH(t); - return in + 8; -# else - uint64_t b0 = *in++; - uint64_t b1 = *in++; - uint64_t b2 = *in++; - uint64_t b3 = *in++; - uint64_t b4 = *in++; - uint64_t b5 = *in++; - uint64_t b6 = *in++; - uint64_t b7 = *in++; - - *val = b0 | (b1 << 8) | (b2 << 16) | (b3 << 24) - | (b4 << 32) | (b5 << 40) | (b6 << 48) | (b7 << 56); - return in; -#endif -} - -static ossl_inline ossl_unused const unsigned char * -OPENSSL_load_u64_be(uint64_t *val, const unsigned char *in) -{ -# ifdef OSSL_LE64TOH - uint64_t t; - - memcpy((unsigned char *)&t, in, 8); - *val = OSSL_BE64TOH(t); - return in + 8; -# else - uint64_t b7 = *in++; - uint64_t b6 = *in++; - uint64_t b5 = *in++; - uint64_t b4 = *in++; - uint64_t b3 = *in++; - uint64_t b2 = *in++; - uint64_t b1 = *in++; - uint64_t b0 = *in++; - - *val = b0 | (b1 << 8) | (b2 << 16) | (b3 << 24) - | (b4 << 32) | (b5 << 40) | (b6 << 48) | (b7 << 56); - return in; -#endif -} - -# undef OSSL_HTOBE16 -# undef OSSL_HTOBE32 -# undef OSSL_HTOBE64 -# undef OSSL_BE16TOH -# undef OSSL_BE32TOH -# undef OSSL_BE64TOH -# undef OSSL_HTOLE16 -# undef OSSL_HTOLE32 -# undef OSSL_HTOLE64 -# undef OSSL_LE16TOH -# undef OSSL_LE32TOH -# undef OSSL_LE64TOH - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/camellia.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/camellia.h deleted file mode 100644 index 88c2279..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/camellia.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright 2006-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CAMELLIA_H -# define OPENSSL_CAMELLIA_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_CAMELLIA_H -# endif - -# include - -# ifndef OPENSSL_NO_CAMELLIA -# include -#ifdef __cplusplus -extern "C" { -#endif - -# define CAMELLIA_BLOCK_SIZE 16 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 - -# define CAMELLIA_ENCRYPT 1 -# define CAMELLIA_DECRYPT 0 - -/* - * Because array size can't be a const in C, the following two are macros. - * Both sizes are in bytes. - */ - -/* This should be a hidden type, but EVP requires that the size be known */ - -# define CAMELLIA_TABLE_BYTE_LEN 272 -# define CAMELLIA_TABLE_WORD_LEN (CAMELLIA_TABLE_BYTE_LEN / 4) - -typedef unsigned int KEY_TABLE_TYPE[CAMELLIA_TABLE_WORD_LEN]; /* to match - * with WORD */ - -struct camellia_key_st { - union { - double d; /* ensures 64-bit align */ - KEY_TABLE_TYPE rd_key; - } u; - int grand_rounds; -}; -typedef struct camellia_key_st CAMELLIA_KEY; - -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int Camellia_set_key(const unsigned char *userKey, - const int bits, - CAMELLIA_KEY *key); -OSSL_DEPRECATEDIN_3_0 void Camellia_encrypt(const unsigned char *in, - unsigned char *out, - const CAMELLIA_KEY *key); -OSSL_DEPRECATEDIN_3_0 void Camellia_decrypt(const unsigned char *in, - unsigned char *out, - const CAMELLIA_KEY *key); -OSSL_DEPRECATEDIN_3_0 void Camellia_ecb_encrypt(const unsigned char *in, - unsigned char *out, - const CAMELLIA_KEY *key, - const int enc); -OSSL_DEPRECATEDIN_3_0 void Camellia_cbc_encrypt(const unsigned char *in, - unsigned char *out, - size_t length, - const CAMELLIA_KEY *key, - unsigned char *ivec, - const int enc); -OSSL_DEPRECATEDIN_3_0 void Camellia_cfb128_encrypt(const unsigned char *in, - unsigned char *out, - size_t length, - const CAMELLIA_KEY *key, - unsigned char *ivec, - int *num, - const int enc); -OSSL_DEPRECATEDIN_3_0 void Camellia_cfb1_encrypt(const unsigned char *in, - unsigned char *out, - size_t length, - const CAMELLIA_KEY *key, - unsigned char *ivec, - int *num, - const int enc); -OSSL_DEPRECATEDIN_3_0 void Camellia_cfb8_encrypt(const unsigned char *in, - unsigned char *out, - size_t length, - const CAMELLIA_KEY *key, - unsigned char *ivec, - int *num, - const int enc); -OSSL_DEPRECATEDIN_3_0 void Camellia_ofb128_encrypt(const unsigned char *in, - unsigned char *out, - size_t length, - const CAMELLIA_KEY *key, - unsigned char *ivec, - int *num); -OSSL_DEPRECATEDIN_3_0 -void Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char ivec[CAMELLIA_BLOCK_SIZE], - unsigned char ecount_buf[CAMELLIA_BLOCK_SIZE], - unsigned int *num); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/cast.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/cast.h deleted file mode 100644 index 0bf217b..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/cast.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CAST_H -# define OPENSSL_CAST_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_CAST_H -# endif - -# include - -# ifndef OPENSSL_NO_CAST -# ifdef __cplusplus -extern "C" { -# endif - -# define CAST_BLOCK 8 -# define CAST_KEY_LENGTH 16 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 - -# define CAST_ENCRYPT 1 -# define CAST_DECRYPT 0 - -# define CAST_LONG unsigned int - -typedef struct cast_key_st { - CAST_LONG data[32]; - int short_key; /* Use reduced rounds for short key */ -} CAST_KEY; - -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data); -OSSL_DEPRECATEDIN_3_0 -void CAST_ecb_encrypt(const unsigned char *in, unsigned char *out, - const CAST_KEY *key, int enc); -OSSL_DEPRECATEDIN_3_0 -void CAST_encrypt(CAST_LONG *data, const CAST_KEY *key); -OSSL_DEPRECATEDIN_3_0 -void CAST_decrypt(CAST_LONG *data, const CAST_KEY *key); -OSSL_DEPRECATEDIN_3_0 -void CAST_cbc_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *ks, unsigned char *iv, - int enc); -OSSL_DEPRECATEDIN_3_0 -void CAST_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *schedule, - unsigned char *ivec, int *num, int enc); -OSSL_DEPRECATEDIN_3_0 -void CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *schedule, - unsigned char *ivec, int *num); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/cmac.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/cmac.h deleted file mode 100644 index f508618..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/cmac.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2010-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CMAC_H -# define OPENSSL_CMAC_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_CMAC_H -# endif - -# ifndef OPENSSL_NO_CMAC - -# ifdef __cplusplus -extern "C" { -# endif - -# include - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* Opaque */ -typedef struct CMAC_CTX_st CMAC_CTX; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 CMAC_CTX *CMAC_CTX_new(void); -OSSL_DEPRECATEDIN_3_0 void CMAC_CTX_cleanup(CMAC_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 void CMAC_CTX_free(CMAC_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 int CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in); -OSSL_DEPRECATEDIN_3_0 int CMAC_Init(CMAC_CTX *ctx, - const void *key, size_t keylen, - const EVP_CIPHER *cipher, ENGINE *impl); -OSSL_DEPRECATEDIN_3_0 int CMAC_Update(CMAC_CTX *ctx, - const void *data, size_t dlen); -OSSL_DEPRECATEDIN_3_0 int CMAC_Final(CMAC_CTX *ctx, - unsigned char *out, size_t *poutlen); -OSSL_DEPRECATEDIN_3_0 int CMAC_resume(CMAC_CTX *ctx); -# endif - -# ifdef __cplusplus -} -# endif - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/cmp.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/cmp.h deleted file mode 100644 index 0e29eee..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/cmp.h +++ /dev/null @@ -1,727 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\cmp.h.in - * - * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. - * Copyright Nokia 2007-2019 - * Copyright Siemens AG 2015-2019 - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_CMP_H -# define OPENSSL_CMP_H - -# include -# ifndef OPENSSL_NO_CMP - -# include -# include -# include -# include - -/* explicit #includes not strictly needed since implied by the above: */ -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# define OSSL_CMP_PVNO_2 2 -# define OSSL_CMP_PVNO_3 3 -# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ - -/*- - * PKIFailureInfo ::= BIT STRING { - * -- since we can fail in more than one way! - * -- More codes may be added in the future if/when required. - * badAlg (0), - * -- unrecognized or unsupported Algorithm Identifier - * badMessageCheck (1), - * -- integrity check failed (e.g., signature did not verify) - * badRequest (2), - * -- transaction not permitted or supported - * badTime (3), - * -- messageTime was not sufficiently close to the system time, - * -- as defined by local policy - * badCertId (4), - * -- no certificate could be found matching the provided criteria - * badDataFormat (5), - * -- the data submitted has the wrong format - * wrongAuthority (6), - * -- the authority indicated in the request is different from the - * -- one creating the response token - * incorrectData (7), - * -- the requester's data is incorrect (for notary services) - * missingTimeStamp (8), - * -- when the timestamp is missing but should be there - * -- (by policy) - * badPOP (9), - * -- the proof-of-possession failed - * certRevoked (10), - * -- the certificate has already been revoked - * certConfirmed (11), - * -- the certificate has already been confirmed - * wrongIntegrity (12), - * -- invalid integrity, password based instead of signature or - * -- vice versa - * badRecipientNonce (13), - * -- invalid recipient nonce, either missing or wrong value - * timeNotAvailable (14), - * -- the TSA's time source is not available - * unacceptedPolicy (15), - * -- the requested TSA policy is not supported by the TSA. - * unacceptedExtension (16), - * -- the requested extension is not supported by the TSA. - * addInfoNotAvailable (17), - * -- the additional information requested could not be - * -- understood or is not available - * badSenderNonce (18), - * -- invalid sender nonce, either missing or wrong size - * badCertTemplate (19), - * -- invalid cert. template or missing mandatory information - * signerNotTrusted (20), - * -- signer of the message unknown or not trusted - * transactionIdInUse (21), - * -- the transaction identifier is already in use - * unsupportedVersion (22), - * -- the version of the message is not supported - * notAuthorized (23), - * -- the sender was not authorized to make the preceding - * -- request or perform the preceding action - * systemUnavail (24), - * -- the request cannot be handled due to system unavailability - * systemFailure (25), - * -- the request cannot be handled due to system failure - * duplicateCertReq (26) - * -- certificate cannot be issued because a duplicate - * -- certificate already exists - * } - */ -# define OSSL_CMP_PKIFAILUREINFO_badAlg 0 -# define OSSL_CMP_PKIFAILUREINFO_badMessageCheck 1 -# define OSSL_CMP_PKIFAILUREINFO_badRequest 2 -# define OSSL_CMP_PKIFAILUREINFO_badTime 3 -# define OSSL_CMP_PKIFAILUREINFO_badCertId 4 -# define OSSL_CMP_PKIFAILUREINFO_badDataFormat 5 -# define OSSL_CMP_PKIFAILUREINFO_wrongAuthority 6 -# define OSSL_CMP_PKIFAILUREINFO_incorrectData 7 -# define OSSL_CMP_PKIFAILUREINFO_missingTimeStamp 8 -# define OSSL_CMP_PKIFAILUREINFO_badPOP 9 -# define OSSL_CMP_PKIFAILUREINFO_certRevoked 10 -# define OSSL_CMP_PKIFAILUREINFO_certConfirmed 11 -# define OSSL_CMP_PKIFAILUREINFO_wrongIntegrity 12 -# define OSSL_CMP_PKIFAILUREINFO_badRecipientNonce 13 -# define OSSL_CMP_PKIFAILUREINFO_timeNotAvailable 14 -# define OSSL_CMP_PKIFAILUREINFO_unacceptedPolicy 15 -# define OSSL_CMP_PKIFAILUREINFO_unacceptedExtension 16 -# define OSSL_CMP_PKIFAILUREINFO_addInfoNotAvailable 17 -# define OSSL_CMP_PKIFAILUREINFO_badSenderNonce 18 -# define OSSL_CMP_PKIFAILUREINFO_badCertTemplate 19 -# define OSSL_CMP_PKIFAILUREINFO_signerNotTrusted 20 -# define OSSL_CMP_PKIFAILUREINFO_transactionIdInUse 21 -# define OSSL_CMP_PKIFAILUREINFO_unsupportedVersion 22 -# define OSSL_CMP_PKIFAILUREINFO_notAuthorized 23 -# define OSSL_CMP_PKIFAILUREINFO_systemUnavail 24 -# define OSSL_CMP_PKIFAILUREINFO_systemFailure 25 -# define OSSL_CMP_PKIFAILUREINFO_duplicateCertReq 26 -# define OSSL_CMP_PKIFAILUREINFO_MAX 26 -# define OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN \ - ((1 << (OSSL_CMP_PKIFAILUREINFO_MAX + 1)) - 1) -# if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX -# error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int -# endif -typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; - -# define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) -# define OSSL_CMP_CTX_FAILINFO_badMessageCheck (1 << 1) -# define OSSL_CMP_CTX_FAILINFO_badRequest (1 << 2) -# define OSSL_CMP_CTX_FAILINFO_badTime (1 << 3) -# define OSSL_CMP_CTX_FAILINFO_badCertId (1 << 4) -# define OSSL_CMP_CTX_FAILINFO_badDataFormat (1 << 5) -# define OSSL_CMP_CTX_FAILINFO_wrongAuthority (1 << 6) -# define OSSL_CMP_CTX_FAILINFO_incorrectData (1 << 7) -# define OSSL_CMP_CTX_FAILINFO_missingTimeStamp (1 << 8) -# define OSSL_CMP_CTX_FAILINFO_badPOP (1 << 9) -# define OSSL_CMP_CTX_FAILINFO_certRevoked (1 << 10) -# define OSSL_CMP_CTX_FAILINFO_certConfirmed (1 << 11) -# define OSSL_CMP_CTX_FAILINFO_wrongIntegrity (1 << 12) -# define OSSL_CMP_CTX_FAILINFO_badRecipientNonce (1 << 13) -# define OSSL_CMP_CTX_FAILINFO_timeNotAvailable (1 << 14) -# define OSSL_CMP_CTX_FAILINFO_unacceptedPolicy (1 << 15) -# define OSSL_CMP_CTX_FAILINFO_unacceptedExtension (1 << 16) -# define OSSL_CMP_CTX_FAILINFO_addInfoNotAvailable (1 << 17) -# define OSSL_CMP_CTX_FAILINFO_badSenderNonce (1 << 18) -# define OSSL_CMP_CTX_FAILINFO_badCertTemplate (1 << 19) -# define OSSL_CMP_CTX_FAILINFO_signerNotTrusted (1 << 20) -# define OSSL_CMP_CTX_FAILINFO_transactionIdInUse (1 << 21) -# define OSSL_CMP_CTX_FAILINFO_unsupportedVersion (1 << 22) -# define OSSL_CMP_CTX_FAILINFO_notAuthorized (1 << 23) -# define OSSL_CMP_CTX_FAILINFO_systemUnavail (1 << 24) -# define OSSL_CMP_CTX_FAILINFO_systemFailure (1 << 25) -# define OSSL_CMP_CTX_FAILINFO_duplicateCertReq (1 << 26) - -/*- - * PKIStatus ::= INTEGER { - * accepted (0), - * -- you got exactly what you asked for - * grantedWithMods (1), - * -- you got something like what you asked for; the - * -- requester is responsible for ascertaining the differences - * rejection (2), - * -- you don't get it, more information elsewhere in the message - * waiting (3), - * -- the request body part has not yet been processed; expect to - * -- hear more later (note: proper handling of this status - * -- response MAY use the polling req/rep PKIMessages specified - * -- in Section 5.3.22; alternatively, polling in the underlying - * -- transport layer MAY have some utility in this regard) - * revocationWarning (4), - * -- this message contains a warning that a revocation is - * -- imminent - * revocationNotification (5), - * -- notification that a revocation has occurred - * keyUpdateWarning (6) - * -- update already done for the oldCertId specified in - * -- CertReqMsg - * } - */ -# define OSSL_CMP_PKISTATUS_request -3 -# define OSSL_CMP_PKISTATUS_trans -2 -# define OSSL_CMP_PKISTATUS_unspecified -1 -# define OSSL_CMP_PKISTATUS_accepted 0 -# define OSSL_CMP_PKISTATUS_grantedWithMods 1 -# define OSSL_CMP_PKISTATUS_rejection 2 -# define OSSL_CMP_PKISTATUS_waiting 3 -# define OSSL_CMP_PKISTATUS_revocationWarning 4 -# define OSSL_CMP_PKISTATUS_revocationNotification 5 -# define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 -typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; - -DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) - -# define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 -# define OSSL_CMP_CERTORENCCERT_ENCRYPTEDCERT 1 - -/* data type declarations */ -typedef struct ossl_cmp_ctx_st OSSL_CMP_CTX; -typedef struct ossl_cmp_pkiheader_st OSSL_CMP_PKIHEADER; -DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKIHEADER) -typedef struct ossl_cmp_msg_st OSSL_CMP_MSG; -DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_MSG) -DECLARE_ASN1_ENCODE_FUNCTIONS(OSSL_CMP_MSG, OSSL_CMP_MSG, OSSL_CMP_MSG) -typedef struct ossl_cmp_certstatus_st OSSL_CMP_CERTSTATUS; -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CERTSTATUS, OSSL_CMP_CERTSTATUS, OSSL_CMP_CERTSTATUS) -#define sk_OSSL_CMP_CERTSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CERTSTATUS_value(sk, idx) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk), (idx))) -#define sk_OSSL_CMP_CERTSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CERTSTATUS_compfunc_type(cmp))) -#define sk_OSSL_CMP_CERTSTATUS_new_null() ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_new_null()) -#define sk_OSSL_CMP_CERTSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CERTSTATUS_compfunc_type(cmp), (n))) -#define sk_OSSL_CMP_CERTSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), (n)) -#define sk_OSSL_CMP_CERTSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CERTSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CERTSTATUS_delete(sk, i) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), (i))) -#define sk_OSSL_CMP_CERTSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr))) -#define sk_OSSL_CMP_CERTSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr)) -#define sk_OSSL_CMP_CERTSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr)) -#define sk_OSSL_CMP_CERTSTATUS_pop(sk) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk))) -#define sk_OSSL_CMP_CERTSTATUS_shift(sk) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk))) -#define sk_OSSL_CMP_CERTSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_freefunc_type(freefunc)) -#define sk_OSSL_CMP_CERTSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr), (idx)) -#define sk_OSSL_CMP_CERTSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr))) -#define sk_OSSL_CMP_CERTSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr)) -#define sk_OSSL_CMP_CERTSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr)) -#define sk_OSSL_CMP_CERTSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr), pnum) -#define sk_OSSL_CMP_CERTSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CERTSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CERTSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk))) -#define sk_OSSL_CMP_CERTSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CERTSTATUS_freefunc_type(freefunc))) -#define sk_OSSL_CMP_CERTSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CERTSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_compfunc_type(cmp))) - -typedef struct ossl_cmp_itav_st OSSL_CMP_ITAV; -DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_ITAV) -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) -#define sk_OSSL_CMP_ITAV_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk)) -#define sk_OSSL_CMP_ITAV_value(sk, idx) ((OSSL_CMP_ITAV *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), (idx))) -#define sk_OSSL_CMP_ITAV_new(cmp) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) -#define sk_OSSL_CMP_ITAV_new_null() ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_new_null()) -#define sk_OSSL_CMP_ITAV_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp), (n))) -#define sk_OSSL_CMP_ITAV_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_ITAV_sk_type(sk), (n)) -#define sk_OSSL_CMP_ITAV_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_ITAV_sk_type(sk)) -#define sk_OSSL_CMP_ITAV_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_ITAV_sk_type(sk)) -#define sk_OSSL_CMP_ITAV_delete(sk, i) ((OSSL_CMP_ITAV *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_ITAV_sk_type(sk), (i))) -#define sk_OSSL_CMP_ITAV_delete_ptr(sk, ptr) ((OSSL_CMP_ITAV *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr))) -#define sk_OSSL_CMP_ITAV_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr)) -#define sk_OSSL_CMP_ITAV_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr)) -#define sk_OSSL_CMP_ITAV_pop(sk) ((OSSL_CMP_ITAV *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_ITAV_sk_type(sk))) -#define sk_OSSL_CMP_ITAV_shift(sk) ((OSSL_CMP_ITAV *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_ITAV_sk_type(sk))) -#define sk_OSSL_CMP_ITAV_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc)) -#define sk_OSSL_CMP_ITAV_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr), (idx)) -#define sk_OSSL_CMP_ITAV_set(sk, idx, ptr) ((OSSL_CMP_ITAV *)OPENSSL_sk_set(ossl_check_OSSL_CMP_ITAV_sk_type(sk), (idx), ossl_check_OSSL_CMP_ITAV_type(ptr))) -#define sk_OSSL_CMP_ITAV_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr)) -#define sk_OSSL_CMP_ITAV_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr)) -#define sk_OSSL_CMP_ITAV_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr), pnum) -#define sk_OSSL_CMP_ITAV_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_ITAV_sk_type(sk)) -#define sk_OSSL_CMP_ITAV_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk)) -#define sk_OSSL_CMP_ITAV_dup(sk) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk))) -#define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) -#define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) - - -typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) -#define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) -#define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) -#define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) -#define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) -#define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) -#define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) -#define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) -#define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) -#define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) -#define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) -#define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) -#define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) -#define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) -#define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) -#define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) -#define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) -#define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) -#define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) -#define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) -#define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) -#define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) - - -typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; -# define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free -typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; -DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) -# define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE -# define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num -# define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value -# define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push -# define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free - -typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; -typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; -DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) -DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_PKISI) -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_PKISI, OSSL_CMP_PKISI, OSSL_CMP_PKISI) -#define sk_OSSL_CMP_PKISI_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk)) -#define sk_OSSL_CMP_PKISI_value(sk, idx) ((OSSL_CMP_PKISI *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk), (idx))) -#define sk_OSSL_CMP_PKISI_new(cmp) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_PKISI_compfunc_type(cmp))) -#define sk_OSSL_CMP_PKISI_new_null() ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_new_null()) -#define sk_OSSL_CMP_PKISI_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_PKISI_compfunc_type(cmp), (n))) -#define sk_OSSL_CMP_PKISI_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_PKISI_sk_type(sk), (n)) -#define sk_OSSL_CMP_PKISI_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_PKISI_sk_type(sk)) -#define sk_OSSL_CMP_PKISI_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_PKISI_sk_type(sk)) -#define sk_OSSL_CMP_PKISI_delete(sk, i) ((OSSL_CMP_PKISI *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_PKISI_sk_type(sk), (i))) -#define sk_OSSL_CMP_PKISI_delete_ptr(sk, ptr) ((OSSL_CMP_PKISI *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr))) -#define sk_OSSL_CMP_PKISI_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr)) -#define sk_OSSL_CMP_PKISI_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr)) -#define sk_OSSL_CMP_PKISI_pop(sk) ((OSSL_CMP_PKISI *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_PKISI_sk_type(sk))) -#define sk_OSSL_CMP_PKISI_shift(sk) ((OSSL_CMP_PKISI *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_PKISI_sk_type(sk))) -#define sk_OSSL_CMP_PKISI_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_freefunc_type(freefunc)) -#define sk_OSSL_CMP_PKISI_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr), (idx)) -#define sk_OSSL_CMP_PKISI_set(sk, idx, ptr) ((OSSL_CMP_PKISI *)OPENSSL_sk_set(ossl_check_OSSL_CMP_PKISI_sk_type(sk), (idx), ossl_check_OSSL_CMP_PKISI_type(ptr))) -#define sk_OSSL_CMP_PKISI_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr)) -#define sk_OSSL_CMP_PKISI_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr)) -#define sk_OSSL_CMP_PKISI_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr), pnum) -#define sk_OSSL_CMP_PKISI_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_PKISI_sk_type(sk)) -#define sk_OSSL_CMP_PKISI_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk)) -#define sk_OSSL_CMP_PKISI_dup(sk) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk))) -#define sk_OSSL_CMP_PKISI_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_PKISI_freefunc_type(freefunc))) -#define sk_OSSL_CMP_PKISI_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_PKISI_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_compfunc_type(cmp))) - -typedef struct ossl_cmp_certrepmessage_st OSSL_CMP_CERTREPMESSAGE; -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CERTREPMESSAGE, OSSL_CMP_CERTREPMESSAGE, OSSL_CMP_CERTREPMESSAGE) -#define sk_OSSL_CMP_CERTREPMESSAGE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) -#define sk_OSSL_CMP_CERTREPMESSAGE_value(sk, idx) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (idx))) -#define sk_OSSL_CMP_CERTREPMESSAGE_new(cmp) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CERTREPMESSAGE_compfunc_type(cmp))) -#define sk_OSSL_CMP_CERTREPMESSAGE_new_null() ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_new_null()) -#define sk_OSSL_CMP_CERTREPMESSAGE_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CERTREPMESSAGE_compfunc_type(cmp), (n))) -#define sk_OSSL_CMP_CERTREPMESSAGE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (n)) -#define sk_OSSL_CMP_CERTREPMESSAGE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) -#define sk_OSSL_CMP_CERTREPMESSAGE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) -#define sk_OSSL_CMP_CERTREPMESSAGE_delete(sk, i) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (i))) -#define sk_OSSL_CMP_CERTREPMESSAGE_delete_ptr(sk, ptr) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr))) -#define sk_OSSL_CMP_CERTREPMESSAGE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr)) -#define sk_OSSL_CMP_CERTREPMESSAGE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr)) -#define sk_OSSL_CMP_CERTREPMESSAGE_pop(sk) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))) -#define sk_OSSL_CMP_CERTREPMESSAGE_shift(sk) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))) -#define sk_OSSL_CMP_CERTREPMESSAGE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_freefunc_type(freefunc)) -#define sk_OSSL_CMP_CERTREPMESSAGE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr), (idx)) -#define sk_OSSL_CMP_CERTREPMESSAGE_set(sk, idx, ptr) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (idx), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr))) -#define sk_OSSL_CMP_CERTREPMESSAGE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr)) -#define sk_OSSL_CMP_CERTREPMESSAGE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr)) -#define sk_OSSL_CMP_CERTREPMESSAGE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr), pnum) -#define sk_OSSL_CMP_CERTREPMESSAGE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) -#define sk_OSSL_CMP_CERTREPMESSAGE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) -#define sk_OSSL_CMP_CERTREPMESSAGE_dup(sk) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))) -#define sk_OSSL_CMP_CERTREPMESSAGE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CERTREPMESSAGE_freefunc_type(freefunc))) -#define sk_OSSL_CMP_CERTREPMESSAGE_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CERTREPMESSAGE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_compfunc_type(cmp))) - -typedef struct ossl_cmp_pollrep_st OSSL_CMP_POLLREP; -typedef STACK_OF(OSSL_CMP_POLLREP) OSSL_CMP_POLLREPCONTENT; -typedef struct ossl_cmp_certresponse_st OSSL_CMP_CERTRESPONSE; -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CERTRESPONSE, OSSL_CMP_CERTRESPONSE, OSSL_CMP_CERTRESPONSE) -#define sk_OSSL_CMP_CERTRESPONSE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk)) -#define sk_OSSL_CMP_CERTRESPONSE_value(sk, idx) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk), (idx))) -#define sk_OSSL_CMP_CERTRESPONSE_new(cmp) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CERTRESPONSE_compfunc_type(cmp))) -#define sk_OSSL_CMP_CERTRESPONSE_new_null() ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_new_null()) -#define sk_OSSL_CMP_CERTRESPONSE_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CERTRESPONSE_compfunc_type(cmp), (n))) -#define sk_OSSL_CMP_CERTRESPONSE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), (n)) -#define sk_OSSL_CMP_CERTRESPONSE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk)) -#define sk_OSSL_CMP_CERTRESPONSE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk)) -#define sk_OSSL_CMP_CERTRESPONSE_delete(sk, i) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), (i))) -#define sk_OSSL_CMP_CERTRESPONSE_delete_ptr(sk, ptr) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr))) -#define sk_OSSL_CMP_CERTRESPONSE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr)) -#define sk_OSSL_CMP_CERTRESPONSE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr)) -#define sk_OSSL_CMP_CERTRESPONSE_pop(sk) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk))) -#define sk_OSSL_CMP_CERTRESPONSE_shift(sk) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk))) -#define sk_OSSL_CMP_CERTRESPONSE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_freefunc_type(freefunc)) -#define sk_OSSL_CMP_CERTRESPONSE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr), (idx)) -#define sk_OSSL_CMP_CERTRESPONSE_set(sk, idx, ptr) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), (idx), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr))) -#define sk_OSSL_CMP_CERTRESPONSE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr)) -#define sk_OSSL_CMP_CERTRESPONSE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr)) -#define sk_OSSL_CMP_CERTRESPONSE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr), pnum) -#define sk_OSSL_CMP_CERTRESPONSE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk)) -#define sk_OSSL_CMP_CERTRESPONSE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk)) -#define sk_OSSL_CMP_CERTRESPONSE_dup(sk) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk))) -#define sk_OSSL_CMP_CERTRESPONSE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CERTRESPONSE_freefunc_type(freefunc))) -#define sk_OSSL_CMP_CERTRESPONSE_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CERTRESPONSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_compfunc_type(cmp))) - -typedef STACK_OF(ASN1_UTF8STRING) OSSL_CMP_PKIFREETEXT; - -/* - * function DECLARATIONS - */ - -/* from cmp_asn.c */ -OSSL_CMP_ITAV *OSSL_CMP_ITAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); -void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, - ASN1_TYPE *value); -ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); -ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); -int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, - OSSL_CMP_ITAV *itav); -void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); - -OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) - *certProfile); -int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, - STACK_OF(ASN1_UTF8STRING) **out); -OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); -int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); - -OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); -int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); -OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, - const X509 *newWithOld, - const X509 *oldWithNew); -int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, - X509 **newWithNew, - X509 **newWithOld, - X509 **oldWithNew); - -OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, - const X509 *cert, int only_DN); -OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, - const GENERAL_NAMES *issuer, - const ASN1_TIME *thisUpdate); -int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, - DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, - ASN1_TIME **thisUpdate); -void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); -OSSL_CMP_ITAV -*OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); -int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, - STACK_OF(OSSL_CMP_CRLSTATUS) **out); -OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); -int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); -OSSL_CMP_ITAV -*OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, - OSSL_CMP_ATAVS *keySpec); -int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, - OSSL_CRMF_CERTTEMPLATE **certTemplate, - OSSL_CMP_ATAVS **keySpec); - -OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); -void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, - ASN1_TYPE *value); -ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); -ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); -OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); -X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); -OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); -int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); -int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); - -void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); - -/* from cmp_ctx.c */ -OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); -void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); -int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); -OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); -const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); -/* CMP general options: */ -# define OSSL_CMP_OPT_LOG_VERBOSITY 0 -/* CMP transfer options: */ -# define OSSL_CMP_OPT_KEEP_ALIVE 10 -# define OSSL_CMP_OPT_MSG_TIMEOUT 11 -# define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 -# define OSSL_CMP_OPT_USE_TLS 13 -/* CMP request options: */ -# define OSSL_CMP_OPT_VALIDITY_DAYS 20 -# define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 -# define OSSL_CMP_OPT_SUBJECTALTNAME_CRITICAL 22 -# define OSSL_CMP_OPT_POLICIES_CRITICAL 23 -# define OSSL_CMP_OPT_POPO_METHOD 24 -# define OSSL_CMP_OPT_IMPLICIT_CONFIRM 25 -# define OSSL_CMP_OPT_DISABLE_CONFIRM 26 -# define OSSL_CMP_OPT_REVOCATION_REASON 27 -/* CMP protection options: */ -# define OSSL_CMP_OPT_UNPROTECTED_SEND 30 -# define OSSL_CMP_OPT_UNPROTECTED_ERRORS 31 -# define OSSL_CMP_OPT_OWF_ALGNID 32 -# define OSSL_CMP_OPT_MAC_ALGNID 33 -# define OSSL_CMP_OPT_DIGEST_ALGNID 34 -# define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 -# define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 -# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 -int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); -int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); -/* CMP-specific callback for logging and outputting the error queue: */ -int OSSL_CMP_CTX_set_log_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_log_cb_t cb); -# define OSSL_CMP_CTX_set_log_verbosity(ctx, level) \ - OSSL_CMP_CTX_set_option(ctx, OSSL_CMP_OPT_LOG_VERBOSITY, level) -void OSSL_CMP_CTX_print_errors(const OSSL_CMP_CTX *ctx); -/* message transfer: */ -int OSSL_CMP_CTX_set1_serverPath(OSSL_CMP_CTX *ctx, const char *path); -int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); -int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); -int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); -int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); -# ifndef OPENSSL_NO_HTTP -int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); -int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); -void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); -# endif -typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, - const OSSL_CMP_MSG *req); -int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); -int OSSL_CMP_CTX_set_transfer_cb_arg(OSSL_CMP_CTX *ctx, void *arg); -void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); -/* server authentication: */ -int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); -int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); -int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); -# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore -X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); -# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore -int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); -STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); -/* client authentication: */ -int OSSL_CMP_CTX_set1_cert(OSSL_CMP_CTX *ctx, X509 *cert); -int OSSL_CMP_CTX_build_cert_chain(OSSL_CMP_CTX *ctx, X509_STORE *own_trusted, - STACK_OF(X509) *candidates); -int OSSL_CMP_CTX_set1_pkey(OSSL_CMP_CTX *ctx, EVP_PKEY *pkey); -int OSSL_CMP_CTX_set1_referenceValue(OSSL_CMP_CTX *ctx, - const unsigned char *ref, int len); -int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, - const unsigned char *sec, int len); -/* CMP message header and extra certificates: */ -int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); -int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); -int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); -STACK_OF(OSSL_CMP_ITAV) - *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); -int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, - STACK_OF(X509) *extraCertsOut); -/* certificate template: */ -int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); -EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); -int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); -int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); -int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); -int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, - const GENERAL_NAME *name); -int OSSL_CMP_CTX_set0_reqExtensions(OSSL_CMP_CTX *ctx, X509_EXTENSIONS *exts); -int OSSL_CMP_CTX_reqExtensions_have_SAN(OSSL_CMP_CTX *ctx); -int OSSL_CMP_CTX_push0_policy(OSSL_CMP_CTX *ctx, POLICYINFO *pinfo); -int OSSL_CMP_CTX_set1_oldCert(OSSL_CMP_CTX *ctx, X509 *cert); -int OSSL_CMP_CTX_set1_p10CSR(OSSL_CMP_CTX *ctx, const X509_REQ *csr); -/* misc body contents: */ -int OSSL_CMP_CTX_push0_genm_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); -/* certificate confirmation: */ -typedef int (*OSSL_CMP_certConf_cb_t) (OSSL_CMP_CTX *ctx, X509 *cert, - int fail_info, const char **txt); -int OSSL_CMP_certConf_cb(OSSL_CMP_CTX *ctx, X509 *cert, int fail_info, - const char **text); -int OSSL_CMP_CTX_set_certConf_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_certConf_cb_t cb); -int OSSL_CMP_CTX_set_certConf_cb_arg(OSSL_CMP_CTX *ctx, void *arg); -void *OSSL_CMP_CTX_get_certConf_cb_arg(const OSSL_CMP_CTX *ctx); -/* result fetching: */ -int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); -OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); -int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); -# define OSSL_CMP_PKISI_BUFLEN 1024 -X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); -X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); -STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); -STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); -STACK_OF(X509) *OSSL_CMP_CTX_get1_extraCertsIn(const OSSL_CMP_CTX *ctx); -int OSSL_CMP_CTX_set1_transactionID(OSSL_CMP_CTX *ctx, - const ASN1_OCTET_STRING *id); -int OSSL_CMP_CTX_set1_senderNonce(OSSL_CMP_CTX *ctx, - const ASN1_OCTET_STRING *nonce); - -/* from cmp_status.c */ -char *OSSL_CMP_CTX_snprint_PKIStatus(const OSSL_CMP_CTX *ctx, char *buf, - size_t bufsize); -char *OSSL_CMP_snprint_PKIStatusInfo(const OSSL_CMP_PKISI *statusInfo, - char *buf, size_t bufsize); -OSSL_CMP_PKISI * -OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); - -/* from cmp_hdr.c */ -ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const - OSSL_CMP_PKIHEADER *hdr); -ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); -STACK_OF(OSSL_CMP_ITAV) - *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); - -/* from cmp_msg.c */ -OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); -int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); -X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); -int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); -int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); -OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); -OSSL_CMP_MSG *OSSL_CMP_MSG_read(const char *file, OSSL_LIB_CTX *libctx, - const char *propq); -int OSSL_CMP_MSG_write(const char *file, const OSSL_CMP_MSG *msg); -OSSL_CMP_MSG *d2i_OSSL_CMP_MSG_bio(BIO *bio, OSSL_CMP_MSG **msg); -int i2d_OSSL_CMP_MSG_bio(BIO *bio, const OSSL_CMP_MSG *msg); - -/* from cmp_vfy.c */ -int OSSL_CMP_validate_msg(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *msg); -int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, - X509_STORE *trusted_store, X509 *cert); - -/* from cmp_http.c */ -# ifndef OPENSSL_NO_HTTP -OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, - const OSSL_CMP_MSG *req); -# endif - -/* from cmp_server.c */ -typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; -OSSL_CMP_MSG *OSSL_CMP_SRV_process_request(OSSL_CMP_SRV_CTX *srv_ctx, - const OSSL_CMP_MSG *req); -OSSL_CMP_MSG * OSSL_CMP_CTX_server_perform(OSSL_CMP_CTX *client_ctx, - const OSSL_CMP_MSG *req); -OSSL_CMP_SRV_CTX *OSSL_CMP_SRV_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); -void OSSL_CMP_SRV_CTX_free(OSSL_CMP_SRV_CTX *srv_ctx); -typedef OSSL_CMP_PKISI *(*OSSL_CMP_SRV_cert_request_cb_t) - (OSSL_CMP_SRV_CTX *srv_ctx, const OSSL_CMP_MSG *req, int certReqId, - const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr, - X509 **certOut, STACK_OF(X509) **chainOut, STACK_OF(X509) **caPubs); -typedef OSSL_CMP_PKISI *(*OSSL_CMP_SRV_rr_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, - const OSSL_CMP_MSG *req, - const X509_NAME *issuer, - const ASN1_INTEGER *serial); -typedef int (*OSSL_CMP_SRV_genm_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, - const OSSL_CMP_MSG *req, - const STACK_OF(OSSL_CMP_ITAV) *in, - STACK_OF(OSSL_CMP_ITAV) **out); -typedef void (*OSSL_CMP_SRV_error_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, - const OSSL_CMP_MSG *req, - const OSSL_CMP_PKISI *statusInfo, - const ASN1_INTEGER *errorCode, - const OSSL_CMP_PKIFREETEXT *errDetails); -typedef int (*OSSL_CMP_SRV_certConf_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, - const OSSL_CMP_MSG *req, - int certReqId, - const ASN1_OCTET_STRING *certHash, - const OSSL_CMP_PKISI *si); -typedef int (*OSSL_CMP_SRV_pollReq_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, - const OSSL_CMP_MSG *req, int certReqId, - OSSL_CMP_MSG **certReq, - int64_t *check_after); -int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, - OSSL_CMP_SRV_cert_request_cb_t process_cert_request, - OSSL_CMP_SRV_rr_cb_t process_rr, - OSSL_CMP_SRV_genm_cb_t process_genm, - OSSL_CMP_SRV_error_cb_t process_error, - OSSL_CMP_SRV_certConf_cb_t process_certConf, - OSSL_CMP_SRV_pollReq_cb_t process_pollReq); -typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, - const OSSL_CMP_MSG *req); -typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, - const ASN1_OCTET_STRING *id); -int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, - OSSL_CMP_SRV_delayed_delivery_cb_t delay, - OSSL_CMP_SRV_clean_transaction_cb_t clean); -OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); -void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); -int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, - int val); -int OSSL_CMP_SRV_CTX_set_accept_unprotected(OSSL_CMP_SRV_CTX *srv_ctx, int val); -int OSSL_CMP_SRV_CTX_set_accept_raverified(OSSL_CMP_SRV_CTX *srv_ctx, int val); -int OSSL_CMP_SRV_CTX_set_grant_implicit_confirm(OSSL_CMP_SRV_CTX *srv_ctx, - int val); - -/* from cmp_client.c */ -X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, - const OSSL_CRMF_MSG *crm); -# define OSSL_CMP_IR 0 -# define OSSL_CMP_CR 2 -# define OSSL_CMP_P10CR 4 -# define OSSL_CMP_KUR 7 -# define OSSL_CMP_GENM 21 -# define OSSL_CMP_ERROR 23 -# define OSSL_CMP_exec_IR_ses(ctx) \ - OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) -# define OSSL_CMP_exec_CR_ses(ctx) \ - OSSL_CMP_exec_certreq(ctx, OSSL_CMP_CR, NULL) -# define OSSL_CMP_exec_P10CR_ses(ctx) \ - OSSL_CMP_exec_certreq(ctx, OSSL_CMP_P10CR, NULL) -# define OSSL_CMP_exec_KUR_ses(ctx) \ - OSSL_CMP_exec_certreq(ctx, OSSL_CMP_KUR, NULL) -int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, - const OSSL_CRMF_MSG *crm, int *checkAfter); -int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); -STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); - -/* from cmp_genm.c */ -int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); -int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, - const X509 *oldWithOld, X509 **newWithNew, - X509 **newWithOld, X509 **oldWithNew); -int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, - const X509_CRL *last_crl, - X509_CRL **crl); -int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, - OSSL_CRMF_CERTTEMPLATE **certTemplate, - OSSL_CMP_ATAVS **keySpec); - -# ifdef __cplusplus -} -# endif -# endif /* !defined(OPENSSL_NO_CMP) */ -#endif /* !defined(OPENSSL_CMP_H) */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/cmp_util.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/cmp_util.h deleted file mode 100644 index 9a16892..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/cmp_util.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. - * Copyright Nokia 2007-2019 - * Copyright Siemens AG 2015-2019 - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CMP_UTIL_H -# define OPENSSL_CMP_UTIL_H -# pragma once - -# include -# ifndef OPENSSL_NO_CMP - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -int OSSL_CMP_log_open(void); -void OSSL_CMP_log_close(void); -# define OSSL_CMP_LOG_PREFIX "CMP " - -/* - * generalized logging/error callback mirroring the severity levels of syslog.h - */ -typedef int OSSL_CMP_severity; -# define OSSL_CMP_LOG_EMERG 0 -# define OSSL_CMP_LOG_ALERT 1 -# define OSSL_CMP_LOG_CRIT 2 -# define OSSL_CMP_LOG_ERR 3 -# define OSSL_CMP_LOG_WARNING 4 -# define OSSL_CMP_LOG_NOTICE 5 -# define OSSL_CMP_LOG_INFO 6 -# define OSSL_CMP_LOG_DEBUG 7 -# define OSSL_CMP_LOG_TRACE 8 -# define OSSL_CMP_LOG_MAX OSSL_CMP_LOG_TRACE -typedef int (*OSSL_CMP_log_cb_t)(const char *func, const char *file, int line, - OSSL_CMP_severity level, const char *msg); - -int OSSL_CMP_print_to_bio(BIO *bio, const char *component, const char *file, - int line, OSSL_CMP_severity level, const char *msg); -/* use of the logging callback for outputting error queue */ -void OSSL_CMP_print_errors_cb(OSSL_CMP_log_cb_t log_fn); - -# ifdef __cplusplus -} -# endif -# endif /* !defined(OPENSSL_NO_CMP) */ -#endif /* !defined(OPENSSL_CMP_UTIL_H) */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/cmperr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/cmperr.h deleted file mode 100644 index 62137aa..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/cmperr.h +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CMPERR_H -# define OPENSSL_CMPERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_CMP - - -/* - * CMP reason codes. - */ -# define CMP_R_ALGORITHM_NOT_SUPPORTED 139 -# define CMP_R_BAD_CHECKAFTER_IN_POLLREP 167 -# define CMP_R_BAD_REQUEST_ID 108 -# define CMP_R_CERTHASH_UNMATCHED 156 -# define CMP_R_CERTID_NOT_FOUND 109 -# define CMP_R_CERTIFICATE_NOT_ACCEPTED 169 -# define CMP_R_CERTIFICATE_NOT_FOUND 112 -# define CMP_R_CERTREQMSG_NOT_FOUND 157 -# define CMP_R_CERTRESPONSE_NOT_FOUND 113 -# define CMP_R_CERT_AND_KEY_DO_NOT_MATCH 114 -# define CMP_R_CHECKAFTER_OUT_OF_RANGE 181 -# define CMP_R_ENCOUNTERED_KEYUPDATEWARNING 176 -# define CMP_R_ENCOUNTERED_WAITING 162 -# define CMP_R_ERROR_CALCULATING_PROTECTION 115 -# define CMP_R_ERROR_CREATING_CERTCONF 116 -# define CMP_R_ERROR_CREATING_CERTREP 117 -# define CMP_R_ERROR_CREATING_CERTREQ 163 -# define CMP_R_ERROR_CREATING_ERROR 118 -# define CMP_R_ERROR_CREATING_GENM 119 -# define CMP_R_ERROR_CREATING_GENP 120 -# define CMP_R_ERROR_CREATING_PKICONF 122 -# define CMP_R_ERROR_CREATING_POLLREP 123 -# define CMP_R_ERROR_CREATING_POLLREQ 124 -# define CMP_R_ERROR_CREATING_RP 125 -# define CMP_R_ERROR_CREATING_RR 126 -# define CMP_R_ERROR_PARSING_PKISTATUS 107 -# define CMP_R_ERROR_PROCESSING_MESSAGE 158 -# define CMP_R_ERROR_PROTECTING_MESSAGE 127 -# define CMP_R_ERROR_SETTING_CERTHASH 128 -# define CMP_R_ERROR_UNEXPECTED_CERTCONF 160 -# define CMP_R_ERROR_VALIDATING_PROTECTION 140 -# define CMP_R_ERROR_VALIDATING_SIGNATURE 171 -# define CMP_R_EXPECTED_POLLREQ 104 -# define CMP_R_FAILED_BUILDING_OWN_CHAIN 164 -# define CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY 203 -# define CMP_R_FAILED_EXTRACTING_PUBKEY 141 -# define CMP_R_FAILURE_OBTAINING_RANDOM 110 -# define CMP_R_FAIL_INFO_OUT_OF_RANGE 129 -# define CMP_R_GENERATE_CERTREQTEMPLATE 197 -# define CMP_R_GENERATE_CRLSTATUS 198 -# define CMP_R_GETTING_GENP 192 -# define CMP_R_GET_ITAV 199 -# define CMP_R_INVALID_ARGS 100 -# define CMP_R_INVALID_GENP 193 -# define CMP_R_INVALID_KEYSPEC 202 -# define CMP_R_INVALID_OPTION 174 -# define CMP_R_INVALID_ROOTCAKEYUPDATE 195 -# define CMP_R_MISSING_CENTRAL_GEN_KEY 204 -# define CMP_R_MISSING_CERTID 165 -# define CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION 130 -# define CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE 142 -# define CMP_R_MISSING_P10CSR 121 -# define CMP_R_MISSING_PBM_SECRET 166 -# define CMP_R_MISSING_PRIVATE_KEY 131 -# define CMP_R_MISSING_PRIVATE_KEY_FOR_POPO 190 -# define CMP_R_MISSING_PROTECTION 143 -# define CMP_R_MISSING_PUBLIC_KEY 183 -# define CMP_R_MISSING_REFERENCE_CERT 168 -# define CMP_R_MISSING_SECRET 178 -# define CMP_R_MISSING_SENDER_IDENTIFICATION 111 -# define CMP_R_MISSING_TRUST_ANCHOR 179 -# define CMP_R_MISSING_TRUST_STORE 144 -# define CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED 161 -# define CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED 170 -# define CMP_R_MULTIPLE_SAN_SOURCES 102 -# define CMP_R_NO_STDIO 194 -# define CMP_R_NO_SUITABLE_SENDER_CERT 145 -# define CMP_R_NULL_ARGUMENT 103 -# define CMP_R_PKIBODY_ERROR 146 -# define CMP_R_PKISTATUSINFO_NOT_FOUND 132 -# define CMP_R_POLLING_FAILED 172 -# define CMP_R_POTENTIALLY_INVALID_CERTIFICATE 147 -# define CMP_R_RECEIVED_ERROR 180 -# define CMP_R_RECIPNONCE_UNMATCHED 148 -# define CMP_R_REQUEST_NOT_ACCEPTED 149 -# define CMP_R_REQUEST_REJECTED_BY_SERVER 182 -# define CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED 150 -# define CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG 151 -# define CMP_R_TOTAL_TIMEOUT 184 -# define CMP_R_TRANSACTIONID_UNMATCHED 152 -# define CMP_R_TRANSFER_ERROR 159 -# define CMP_R_UNCLEAN_CTX 191 -# define CMP_R_UNEXPECTED_CENTRAL_GEN_KEY 205 -# define CMP_R_UNEXPECTED_CERTPROFILE 196 -# define CMP_R_UNEXPECTED_CRLSTATUSLIST 201 -# define CMP_R_UNEXPECTED_PKIBODY 133 -# define CMP_R_UNEXPECTED_PKISTATUS 185 -# define CMP_R_UNEXPECTED_POLLREQ 105 -# define CMP_R_UNEXPECTED_PVNO 153 -# define CMP_R_UNEXPECTED_SENDER 106 -# define CMP_R_UNKNOWN_ALGORITHM_ID 134 -# define CMP_R_UNKNOWN_CERT_TYPE 135 -# define CMP_R_UNKNOWN_CRL_ISSUER 200 -# define CMP_R_UNKNOWN_PKISTATUS 186 -# define CMP_R_UNSUPPORTED_ALGORITHM 136 -# define CMP_R_UNSUPPORTED_KEY_TYPE 137 -# define CMP_R_UNSUPPORTED_PKIBODY 101 -# define CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC 154 -# define CMP_R_VALUE_TOO_LARGE 175 -# define CMP_R_VALUE_TOO_SMALL 177 -# define CMP_R_WRONG_ALGORITHM_OID 138 -# define CMP_R_WRONG_CERTID 189 -# define CMP_R_WRONG_CERTID_IN_RP 187 -# define CMP_R_WRONG_PBM_VALUE 155 -# define CMP_R_WRONG_RP_COMPONENT_COUNT 188 -# define CMP_R_WRONG_SERIAL_IN_RP 173 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/cms.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/cms.h deleted file mode 100644 index dd66c13..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/cms.h +++ /dev/null @@ -1,520 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\cms.h.in - * - * Copyright 2008-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_CMS_H -# define OPENSSL_CMS_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_CMS_H -# endif - -# include - -# ifndef OPENSSL_NO_CMS -# include -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; -typedef struct CMS_ContentInfo_st CMS_ContentInfo; -typedef struct CMS_SignerInfo_st CMS_SignerInfo; -typedef struct CMS_SignedData_st CMS_SignedData; -typedef struct CMS_CertificateChoices CMS_CertificateChoices; -typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; -typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; -typedef struct CMS_ReceiptRequest_st CMS_ReceiptRequest; -typedef struct CMS_Receipt_st CMS_Receipt; -typedef struct CMS_RecipientEncryptedKey_st CMS_RecipientEncryptedKey; -typedef struct CMS_OtherKeyAttribute_st CMS_OtherKeyAttribute; - -SKM_DEFINE_STACK_OF_INTERNAL(CMS_SignerInfo, CMS_SignerInfo, CMS_SignerInfo) -#define sk_CMS_SignerInfo_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_SignerInfo_sk_type(sk)) -#define sk_CMS_SignerInfo_value(sk, idx) ((CMS_SignerInfo *)OPENSSL_sk_value(ossl_check_const_CMS_SignerInfo_sk_type(sk), (idx))) -#define sk_CMS_SignerInfo_new(cmp) ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_new(ossl_check_CMS_SignerInfo_compfunc_type(cmp))) -#define sk_CMS_SignerInfo_new_null() ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_new_null()) -#define sk_CMS_SignerInfo_new_reserve(cmp, n) ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_new_reserve(ossl_check_CMS_SignerInfo_compfunc_type(cmp), (n))) -#define sk_CMS_SignerInfo_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_SignerInfo_sk_type(sk), (n)) -#define sk_CMS_SignerInfo_free(sk) OPENSSL_sk_free(ossl_check_CMS_SignerInfo_sk_type(sk)) -#define sk_CMS_SignerInfo_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_SignerInfo_sk_type(sk)) -#define sk_CMS_SignerInfo_delete(sk, i) ((CMS_SignerInfo *)OPENSSL_sk_delete(ossl_check_CMS_SignerInfo_sk_type(sk), (i))) -#define sk_CMS_SignerInfo_delete_ptr(sk, ptr) ((CMS_SignerInfo *)OPENSSL_sk_delete_ptr(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr))) -#define sk_CMS_SignerInfo_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr)) -#define sk_CMS_SignerInfo_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr)) -#define sk_CMS_SignerInfo_pop(sk) ((CMS_SignerInfo *)OPENSSL_sk_pop(ossl_check_CMS_SignerInfo_sk_type(sk))) -#define sk_CMS_SignerInfo_shift(sk) ((CMS_SignerInfo *)OPENSSL_sk_shift(ossl_check_CMS_SignerInfo_sk_type(sk))) -#define sk_CMS_SignerInfo_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_freefunc_type(freefunc)) -#define sk_CMS_SignerInfo_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr), (idx)) -#define sk_CMS_SignerInfo_set(sk, idx, ptr) ((CMS_SignerInfo *)OPENSSL_sk_set(ossl_check_CMS_SignerInfo_sk_type(sk), (idx), ossl_check_CMS_SignerInfo_type(ptr))) -#define sk_CMS_SignerInfo_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr)) -#define sk_CMS_SignerInfo_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr)) -#define sk_CMS_SignerInfo_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr), pnum) -#define sk_CMS_SignerInfo_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_SignerInfo_sk_type(sk)) -#define sk_CMS_SignerInfo_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_SignerInfo_sk_type(sk)) -#define sk_CMS_SignerInfo_dup(sk) ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_dup(ossl_check_const_CMS_SignerInfo_sk_type(sk))) -#define sk_CMS_SignerInfo_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_deep_copy(ossl_check_const_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_copyfunc_type(copyfunc), ossl_check_CMS_SignerInfo_freefunc_type(freefunc))) -#define sk_CMS_SignerInfo_set_cmp_func(sk, cmp) ((sk_CMS_SignerInfo_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(CMS_RecipientEncryptedKey, CMS_RecipientEncryptedKey, CMS_RecipientEncryptedKey) -#define sk_CMS_RecipientEncryptedKey_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk)) -#define sk_CMS_RecipientEncryptedKey_value(sk, idx) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_value(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk), (idx))) -#define sk_CMS_RecipientEncryptedKey_new(cmp) ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_new(ossl_check_CMS_RecipientEncryptedKey_compfunc_type(cmp))) -#define sk_CMS_RecipientEncryptedKey_new_null() ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_new_null()) -#define sk_CMS_RecipientEncryptedKey_new_reserve(cmp, n) ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_new_reserve(ossl_check_CMS_RecipientEncryptedKey_compfunc_type(cmp), (n))) -#define sk_CMS_RecipientEncryptedKey_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), (n)) -#define sk_CMS_RecipientEncryptedKey_free(sk) OPENSSL_sk_free(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk)) -#define sk_CMS_RecipientEncryptedKey_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk)) -#define sk_CMS_RecipientEncryptedKey_delete(sk, i) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_delete(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), (i))) -#define sk_CMS_RecipientEncryptedKey_delete_ptr(sk, ptr) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_delete_ptr(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr))) -#define sk_CMS_RecipientEncryptedKey_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr)) -#define sk_CMS_RecipientEncryptedKey_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr)) -#define sk_CMS_RecipientEncryptedKey_pop(sk) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_pop(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk))) -#define sk_CMS_RecipientEncryptedKey_shift(sk) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_shift(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk))) -#define sk_CMS_RecipientEncryptedKey_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_freefunc_type(freefunc)) -#define sk_CMS_RecipientEncryptedKey_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr), (idx)) -#define sk_CMS_RecipientEncryptedKey_set(sk, idx, ptr) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_set(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), (idx), ossl_check_CMS_RecipientEncryptedKey_type(ptr))) -#define sk_CMS_RecipientEncryptedKey_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr)) -#define sk_CMS_RecipientEncryptedKey_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr)) -#define sk_CMS_RecipientEncryptedKey_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr), pnum) -#define sk_CMS_RecipientEncryptedKey_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk)) -#define sk_CMS_RecipientEncryptedKey_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk)) -#define sk_CMS_RecipientEncryptedKey_dup(sk) ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_dup(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk))) -#define sk_CMS_RecipientEncryptedKey_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_deep_copy(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_copyfunc_type(copyfunc), ossl_check_CMS_RecipientEncryptedKey_freefunc_type(freefunc))) -#define sk_CMS_RecipientEncryptedKey_set_cmp_func(sk, cmp) ((sk_CMS_RecipientEncryptedKey_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(CMS_RecipientInfo, CMS_RecipientInfo, CMS_RecipientInfo) -#define sk_CMS_RecipientInfo_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_RecipientInfo_sk_type(sk)) -#define sk_CMS_RecipientInfo_value(sk, idx) ((CMS_RecipientInfo *)OPENSSL_sk_value(ossl_check_const_CMS_RecipientInfo_sk_type(sk), (idx))) -#define sk_CMS_RecipientInfo_new(cmp) ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_new(ossl_check_CMS_RecipientInfo_compfunc_type(cmp))) -#define sk_CMS_RecipientInfo_new_null() ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_new_null()) -#define sk_CMS_RecipientInfo_new_reserve(cmp, n) ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_new_reserve(ossl_check_CMS_RecipientInfo_compfunc_type(cmp), (n))) -#define sk_CMS_RecipientInfo_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_RecipientInfo_sk_type(sk), (n)) -#define sk_CMS_RecipientInfo_free(sk) OPENSSL_sk_free(ossl_check_CMS_RecipientInfo_sk_type(sk)) -#define sk_CMS_RecipientInfo_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_RecipientInfo_sk_type(sk)) -#define sk_CMS_RecipientInfo_delete(sk, i) ((CMS_RecipientInfo *)OPENSSL_sk_delete(ossl_check_CMS_RecipientInfo_sk_type(sk), (i))) -#define sk_CMS_RecipientInfo_delete_ptr(sk, ptr) ((CMS_RecipientInfo *)OPENSSL_sk_delete_ptr(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr))) -#define sk_CMS_RecipientInfo_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr)) -#define sk_CMS_RecipientInfo_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr)) -#define sk_CMS_RecipientInfo_pop(sk) ((CMS_RecipientInfo *)OPENSSL_sk_pop(ossl_check_CMS_RecipientInfo_sk_type(sk))) -#define sk_CMS_RecipientInfo_shift(sk) ((CMS_RecipientInfo *)OPENSSL_sk_shift(ossl_check_CMS_RecipientInfo_sk_type(sk))) -#define sk_CMS_RecipientInfo_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_freefunc_type(freefunc)) -#define sk_CMS_RecipientInfo_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr), (idx)) -#define sk_CMS_RecipientInfo_set(sk, idx, ptr) ((CMS_RecipientInfo *)OPENSSL_sk_set(ossl_check_CMS_RecipientInfo_sk_type(sk), (idx), ossl_check_CMS_RecipientInfo_type(ptr))) -#define sk_CMS_RecipientInfo_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr)) -#define sk_CMS_RecipientInfo_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr)) -#define sk_CMS_RecipientInfo_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr), pnum) -#define sk_CMS_RecipientInfo_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_RecipientInfo_sk_type(sk)) -#define sk_CMS_RecipientInfo_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_RecipientInfo_sk_type(sk)) -#define sk_CMS_RecipientInfo_dup(sk) ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_dup(ossl_check_const_CMS_RecipientInfo_sk_type(sk))) -#define sk_CMS_RecipientInfo_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_deep_copy(ossl_check_const_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_copyfunc_type(copyfunc), ossl_check_CMS_RecipientInfo_freefunc_type(freefunc))) -#define sk_CMS_RecipientInfo_set_cmp_func(sk, cmp) ((sk_CMS_RecipientInfo_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, CMS_RevocationInfoChoice) -#define sk_CMS_RevocationInfoChoice_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk)) -#define sk_CMS_RevocationInfoChoice_value(sk, idx) ((CMS_RevocationInfoChoice *)OPENSSL_sk_value(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk), (idx))) -#define sk_CMS_RevocationInfoChoice_new(cmp) ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_new(ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) -#define sk_CMS_RevocationInfoChoice_new_null() ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_new_null()) -#define sk_CMS_RevocationInfoChoice_new_reserve(cmp, n) ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_new_reserve(ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp), (n))) -#define sk_CMS_RevocationInfoChoice_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), (n)) -#define sk_CMS_RevocationInfoChoice_free(sk) OPENSSL_sk_free(ossl_check_CMS_RevocationInfoChoice_sk_type(sk)) -#define sk_CMS_RevocationInfoChoice_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_RevocationInfoChoice_sk_type(sk)) -#define sk_CMS_RevocationInfoChoice_delete(sk, i) ((CMS_RevocationInfoChoice *)OPENSSL_sk_delete(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), (i))) -#define sk_CMS_RevocationInfoChoice_delete_ptr(sk, ptr) ((CMS_RevocationInfoChoice *)OPENSSL_sk_delete_ptr(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr))) -#define sk_CMS_RevocationInfoChoice_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr)) -#define sk_CMS_RevocationInfoChoice_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr)) -#define sk_CMS_RevocationInfoChoice_pop(sk) ((CMS_RevocationInfoChoice *)OPENSSL_sk_pop(ossl_check_CMS_RevocationInfoChoice_sk_type(sk))) -#define sk_CMS_RevocationInfoChoice_shift(sk) ((CMS_RevocationInfoChoice *)OPENSSL_sk_shift(ossl_check_CMS_RevocationInfoChoice_sk_type(sk))) -#define sk_CMS_RevocationInfoChoice_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_freefunc_type(freefunc)) -#define sk_CMS_RevocationInfoChoice_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr), (idx)) -#define sk_CMS_RevocationInfoChoice_set(sk, idx, ptr) ((CMS_RevocationInfoChoice *)OPENSSL_sk_set(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), (idx), ossl_check_CMS_RevocationInfoChoice_type(ptr))) -#define sk_CMS_RevocationInfoChoice_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr)) -#define sk_CMS_RevocationInfoChoice_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr)) -#define sk_CMS_RevocationInfoChoice_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr), pnum) -#define sk_CMS_RevocationInfoChoice_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_RevocationInfoChoice_sk_type(sk)) -#define sk_CMS_RevocationInfoChoice_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk)) -#define sk_CMS_RevocationInfoChoice_dup(sk) ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_dup(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk))) -#define sk_CMS_RevocationInfoChoice_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_deep_copy(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_copyfunc_type(copyfunc), ossl_check_CMS_RevocationInfoChoice_freefunc_type(freefunc))) -#define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) - - -DECLARE_ASN1_ITEM(CMS_EnvelopedData) -DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) -DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) -DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) -DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) - -DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData) - -CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - -# define CMS_SIGNERINFO_ISSUER_SERIAL 0 -# define CMS_SIGNERINFO_KEYIDENTIFIER 1 - -# define CMS_RECIPINFO_NONE -1 -# define CMS_RECIPINFO_TRANS 0 -# define CMS_RECIPINFO_AGREE 1 -# define CMS_RECIPINFO_KEK 2 -# define CMS_RECIPINFO_PASS 3 -# define CMS_RECIPINFO_OTHER 4 -# define CMS_RECIPINFO_KEM 5 - -/* S/MIME related flags */ - -# define CMS_TEXT 0x1 -# define CMS_NOCERTS 0x2 -# define CMS_NO_CONTENT_VERIFY 0x4 -# define CMS_NO_ATTR_VERIFY 0x8 -# define CMS_NOSIGS \ - (CMS_NO_CONTENT_VERIFY|CMS_NO_ATTR_VERIFY) -# define CMS_NOINTERN 0x10 -# define CMS_NO_SIGNER_CERT_VERIFY 0x20 -# define CMS_NOVERIFY 0x20 -# define CMS_DETACHED 0x40 -# define CMS_BINARY 0x80 -# define CMS_NOATTR 0x100 -# define CMS_NOSMIMECAP 0x200 -# define CMS_NOOLDMIMETYPE 0x400 -# define CMS_CRLFEOL 0x800 -# define CMS_STREAM 0x1000 -# define CMS_NOCRL 0x2000 -# define CMS_PARTIAL 0x4000 -# define CMS_REUSE_DIGEST 0x8000 -# define CMS_USE_KEYID 0x10000 -# define CMS_DEBUG_DECRYPT 0x20000 -# define CMS_KEY_PARAM 0x40000 -# define CMS_ASCIICRLF 0x80000 -# define CMS_CADES 0x100000 -# define CMS_USE_ORIGINATOR_KEYID 0x200000 -# define CMS_NO_SIGNING_TIME 0x400000 - -const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); - -BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont); -int CMS_dataFinal(CMS_ContentInfo *cms, BIO *bio); - -ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms); -int CMS_is_detached(CMS_ContentInfo *cms); -int CMS_set_detached(CMS_ContentInfo *cms, int detached); - -# ifdef OPENSSL_PEM_H -DECLARE_PEM_rw(CMS, CMS_ContentInfo) -# endif -int CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms); -CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms); -int i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms); - -BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms); -int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int flags); -int PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, - int flags); -CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont); -CMS_ContentInfo *SMIME_read_CMS_ex(BIO *bio, int flags, BIO **bcont, CMS_ContentInfo **ci); -int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); - -int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, - unsigned int flags); -int CMS_final_digest(CMS_ContentInfo *cms, - const unsigned char *md, unsigned int mdlen, BIO *dcont, - unsigned int flags); - -CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, - STACK_OF(X509) *certs, BIO *data, - unsigned int flags); -CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, - STACK_OF(X509) *certs, BIO *data, - unsigned int flags, OSSL_LIB_CTX *libctx, - const char *propq); - -CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, - X509 *signcert, EVP_PKEY *pkey, - STACK_OF(X509) *certs, unsigned int flags); - -int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); -CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); -CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, - OSSL_LIB_CTX *libctx, const char *propq); - -int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, - unsigned int flags); -CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, - unsigned int flags); -CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, - unsigned int flags, OSSL_LIB_CTX *libctx, - const char *propq); - -int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, - const unsigned char *key, size_t keylen, - BIO *dcont, BIO *out, unsigned int flags); -CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, - const unsigned char *key, - size_t keylen, unsigned int flags); -CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, - const unsigned char *key, - size_t keylen, unsigned int flags, - OSSL_LIB_CTX *libctx, - const char *propq); - -int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, - const unsigned char *key, size_t keylen); - -int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs, - X509_STORE *store, BIO *dcont, BIO *out, unsigned int flags); - -int CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms, - STACK_OF(X509) *certs, - X509_STORE *store, unsigned int flags); - -STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms); - -CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, - const EVP_CIPHER *cipher, unsigned int flags); -CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, - const EVP_CIPHER *cipher, unsigned int flags, - OSSL_LIB_CTX *libctx, const char *propq); - -int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, - BIO *dcont, BIO *out, unsigned int flags); - -int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert); -int CMS_decrypt_set1_pkey_and_peer(CMS_ContentInfo *cms, EVP_PKEY *pk, - X509 *cert, X509 *peer); -int CMS_decrypt_set1_key(CMS_ContentInfo *cms, - unsigned char *key, size_t keylen, - const unsigned char *id, size_t idlen); -int CMS_decrypt_set1_password(CMS_ContentInfo *cms, - unsigned char *pass, ossl_ssize_t passlen); - -STACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms); -int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); -EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); -CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); -CMS_ContentInfo * -CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, - const char *propq); -CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); -CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, - OSSL_LIB_CTX *libctx, - const char *propq); -BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, - EVP_PKEY *pkey, X509 *cert, - ASN1_OCTET_STRING *secret, unsigned int flags, - OSSL_LIB_CTX *libctx, const char *propq); - -CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, - X509 *recip, unsigned int flags); -CMS_RecipientInfo *CMS_add1_recipient(CMS_ContentInfo *cms, X509 *recip, - EVP_PKEY *originatorPrivKey, X509 * originator, unsigned int flags); -int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey); -int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert); -int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri, - EVP_PKEY **pk, X509 **recip, - X509_ALGOR **palg); -int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, - ASN1_INTEGER **sno); - -CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid, - unsigned char *key, size_t keylen, - unsigned char *id, size_t idlen, - ASN1_GENERALIZEDTIME *date, - ASN1_OBJECT *otherTypeId, - ASN1_TYPE *otherType); - -int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri, - X509_ALGOR **palg, - ASN1_OCTET_STRING **pid, - ASN1_GENERALIZEDTIME **pdate, - ASN1_OBJECT **potherid, - ASN1_TYPE **pothertype); - -int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri, - unsigned char *key, size_t keylen); - -int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri, - const unsigned char *id, size_t idlen); - -int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri, - unsigned char *pass, - ossl_ssize_t passlen); - -CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms, - int iter, int wrap_nid, - int pbe_nid, - unsigned char *pass, - ossl_ssize_t passlen, - const EVP_CIPHER *kekciph); - -int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); -int CMS_RecipientInfo_encrypt(const CMS_ContentInfo *cms, CMS_RecipientInfo *ri); - -int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out, - unsigned int flags); -CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags); - -int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid); -const ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms); - -CMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo *cms); -int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert); -int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert); -STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms); - -CMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo *cms); -int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl); -int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl); -STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms); - -int CMS_SignedData_init(CMS_ContentInfo *cms); -CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms, - X509 *signer, EVP_PKEY *pk, const EVP_MD *md, - unsigned int flags); -EVP_PKEY_CTX *CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si); -EVP_MD_CTX *CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si); -STACK_OF(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo *cms); - -void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer); -int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, ASN1_INTEGER **sno); -int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert); -int CMS_set1_signers_certs(CMS_ContentInfo *cms, STACK_OF(X509) *certs, - unsigned int flags); -void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk, - X509 **signer, X509_ALGOR **pdig, - X509_ALGOR **psig); -ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); -int CMS_SignerInfo_sign(CMS_SignerInfo *si); -int CMS_SignerInfo_verify(CMS_SignerInfo *si); -int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); -BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, - STACK_OF(X509) *scerts, X509_STORE *store, - STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, - unsigned int flags, - OSSL_LIB_CTX *libctx, const char *propq); - -int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); -int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, - int algnid, int keysize); -int CMS_add_standard_smimecap(STACK_OF(X509_ALGOR) **smcap); - -int CMS_signed_get_attr_count(const CMS_SignerInfo *si); -int CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid, - int lastpos); -int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, const ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc); -X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc); -int CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); -int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int type, - const void *bytes, int len); -int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si, - int nid, int type, - const void *bytes, int len); -int CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si, - const char *attrname, int type, - const void *bytes, int len); -void *CMS_signed_get0_data_by_OBJ(const CMS_SignerInfo *si, - const ASN1_OBJECT *oid, - int lastpos, int type); - -int CMS_unsigned_get_attr_count(const CMS_SignerInfo *si); -int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid, - int lastpos); -int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int lastpos); -X509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int loc); -X509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc); -int CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); -int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int type, - const void *bytes, int len); -int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si, - int nid, int type, - const void *bytes, int len); -int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si, - const char *attrname, int type, - const void *bytes, int len); -void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, - int lastpos, int type); - -int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr); -CMS_ReceiptRequest *CMS_ReceiptRequest_create0( - unsigned char *id, int idlen, int allorfirst, - STACK_OF(GENERAL_NAMES) *receiptList, - STACK_OF(GENERAL_NAMES) *receiptsTo); -CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( - unsigned char *id, int idlen, int allorfirst, - STACK_OF(GENERAL_NAMES) *receiptList, - STACK_OF(GENERAL_NAMES) *receiptsTo, - OSSL_LIB_CTX *libctx); - -int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); -void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, - ASN1_STRING **pcid, - int *pallorfirst, - STACK_OF(GENERAL_NAMES) **plist, - STACK_OF(GENERAL_NAMES) **prto); -int CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo *ri, - X509_ALGOR **palg, - ASN1_OCTET_STRING **pukm); -STACK_OF(CMS_RecipientEncryptedKey) -*CMS_RecipientInfo_kari_get0_reks(CMS_RecipientInfo *ri); - -int CMS_RecipientInfo_kari_get0_orig_id(CMS_RecipientInfo *ri, - X509_ALGOR **pubalg, - ASN1_BIT_STRING **pubkey, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, - ASN1_INTEGER **sno); - -int CMS_RecipientInfo_kari_orig_id_cmp(CMS_RecipientInfo *ri, X509 *cert); - -int CMS_RecipientEncryptedKey_get0_id(CMS_RecipientEncryptedKey *rek, - ASN1_OCTET_STRING **keyid, - ASN1_GENERALIZEDTIME **tm, - CMS_OtherKeyAttribute **other, - X509_NAME **issuer, ASN1_INTEGER **sno); -int CMS_RecipientEncryptedKey_cert_cmp(CMS_RecipientEncryptedKey *rek, - X509 *cert); -int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk); -int CMS_RecipientInfo_kari_set0_pkey_and_peer(CMS_RecipientInfo *ri, EVP_PKEY *pk, X509 *peer); -EVP_CIPHER_CTX *CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo *ri); -int CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo *cms, - CMS_RecipientInfo *ri, - CMS_RecipientEncryptedKey *rek); - -int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg, - ASN1_OCTET_STRING *ukm, int keylen); - -int CMS_RecipientInfo_kemri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert); -int CMS_RecipientInfo_kemri_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk); -EVP_CIPHER_CTX *CMS_RecipientInfo_kemri_get0_ctx(CMS_RecipientInfo *ri); -X509_ALGOR *CMS_RecipientInfo_kemri_get0_kdf_alg(CMS_RecipientInfo *ri); -int CMS_RecipientInfo_kemri_set_ukm(CMS_RecipientInfo *ri, - const unsigned char *ukm, - int ukmLength); - -/* Backward compatibility for spelling errors. */ -# define CMS_R_UNKNOWN_DIGEST_ALGORITM CMS_R_UNKNOWN_DIGEST_ALGORITHM -# define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE \ - CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/cmserr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/cmserr.h deleted file mode 100644 index 606cc11..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/cmserr.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CMSERR_H -# define OPENSSL_CMSERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_CMS - - -/* - * CMS reason codes. - */ -# define CMS_R_ADD_SIGNER_ERROR 99 -# define CMS_R_ATTRIBUTE_ERROR 161 -# define CMS_R_CERTIFICATE_ALREADY_PRESENT 175 -# define CMS_R_CERTIFICATE_HAS_NO_KEYID 160 -# define CMS_R_CERTIFICATE_VERIFY_ERROR 100 -# define CMS_R_CIPHER_AEAD_SET_TAG_ERROR 184 -# define CMS_R_CIPHER_GET_TAG 185 -# define CMS_R_CIPHER_INITIALISATION_ERROR 101 -# define CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR 102 -# define CMS_R_CMS_DATAFINAL_ERROR 103 -# define CMS_R_CMS_LIB 104 -# define CMS_R_CONTENTIDENTIFIER_MISMATCH 170 -# define CMS_R_CONTENT_NOT_FOUND 105 -# define CMS_R_CONTENT_TYPE_MISMATCH 171 -# define CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA 106 -# define CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA 107 -# define CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA 108 -# define CMS_R_CONTENT_VERIFY_ERROR 109 -# define CMS_R_CTRL_ERROR 110 -# define CMS_R_CTRL_FAILURE 111 -# define CMS_R_DECODE_ERROR 187 -# define CMS_R_DECRYPT_ERROR 112 -# define CMS_R_ERROR_GETTING_PUBLIC_KEY 113 -# define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE 114 -# define CMS_R_ERROR_SETTING_KEY 115 -# define CMS_R_ERROR_SETTING_RECIPIENTINFO 116 -# define CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT 196 -# define CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR 183 -# define CMS_R_INVALID_ENCRYPTED_KEY_LENGTH 117 -# define CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER 176 -# define CMS_R_INVALID_KEY_LENGTH 118 -# define CMS_R_INVALID_LABEL 190 -# define CMS_R_INVALID_OAEP_PARAMETERS 191 -# define CMS_R_KDF_PARAMETER_ERROR 186 -# define CMS_R_MD_BIO_INIT_ERROR 119 -# define CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH 120 -# define CMS_R_MESSAGEDIGEST_WRONG_LENGTH 121 -# define CMS_R_MSGSIGDIGEST_ERROR 172 -# define CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE 162 -# define CMS_R_MSGSIGDIGEST_WRONG_LENGTH 163 -# define CMS_R_NEED_ONE_SIGNER 164 -# define CMS_R_NOT_A_SIGNED_RECEIPT 165 -# define CMS_R_NOT_ENCRYPTED_DATA 122 -# define CMS_R_NOT_KEK 123 -# define CMS_R_NOT_KEM 197 -# define CMS_R_NOT_KEY_AGREEMENT 181 -# define CMS_R_NOT_KEY_TRANSPORT 124 -# define CMS_R_NOT_PWRI 177 -# define CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 125 -# define CMS_R_NO_CIPHER 126 -# define CMS_R_NO_CONTENT 127 -# define CMS_R_NO_CONTENT_TYPE 173 -# define CMS_R_NO_DEFAULT_DIGEST 128 -# define CMS_R_NO_DIGEST_SET 129 -# define CMS_R_NO_KEY 130 -# define CMS_R_NO_KEY_OR_CERT 174 -# define CMS_R_NO_MATCHING_DIGEST 131 -# define CMS_R_NO_MATCHING_RECIPIENT 132 -# define CMS_R_NO_MATCHING_SIGNATURE 166 -# define CMS_R_NO_MSGSIGDIGEST 167 -# define CMS_R_NO_PASSWORD 178 -# define CMS_R_NO_PRIVATE_KEY 133 -# define CMS_R_NO_PUBLIC_KEY 134 -# define CMS_R_NO_RECEIPT_REQUEST 168 -# define CMS_R_NO_SIGNERS 135 -# define CMS_R_OPERATION_UNSUPPORTED 182 -# define CMS_R_PEER_KEY_ERROR 188 -# define CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 136 -# define CMS_R_RECEIPT_DECODE_ERROR 169 -# define CMS_R_RECIPIENT_ERROR 137 -# define CMS_R_SHARED_INFO_ERROR 189 -# define CMS_R_SIGNER_CERTIFICATE_NOT_FOUND 138 -# define CMS_R_SIGNFINAL_ERROR 139 -# define CMS_R_SMIME_TEXT_ERROR 140 -# define CMS_R_STORE_INIT_ERROR 141 -# define CMS_R_TYPE_NOT_COMPRESSED_DATA 142 -# define CMS_R_TYPE_NOT_DATA 143 -# define CMS_R_TYPE_NOT_DIGESTED_DATA 144 -# define CMS_R_TYPE_NOT_ENCRYPTED_DATA 145 -# define CMS_R_TYPE_NOT_ENVELOPED_DATA 146 -# define CMS_R_UNABLE_TO_FINALIZE_CONTEXT 147 -# define CMS_R_UNKNOWN_CIPHER 148 -# define CMS_R_UNKNOWN_DIGEST_ALGORITHM 149 -# define CMS_R_UNKNOWN_ID 150 -# define CMS_R_UNKNOWN_KDF_ALGORITHM 198 -# define CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM 151 -# define CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM 194 -# define CMS_R_UNSUPPORTED_CONTENT_TYPE 152 -# define CMS_R_UNSUPPORTED_ENCRYPTION_TYPE 192 -# define CMS_R_UNSUPPORTED_KDF_ALGORITHM 199 -# define CMS_R_UNSUPPORTED_KEK_ALGORITHM 153 -# define CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM 179 -# define CMS_R_UNSUPPORTED_LABEL_SOURCE 193 -# define CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE 155 -# define CMS_R_UNSUPPORTED_RECIPIENT_TYPE 154 -# define CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM 195 -# define CMS_R_UNSUPPORTED_TYPE 156 -# define CMS_R_UNWRAP_ERROR 157 -# define CMS_R_UNWRAP_FAILURE 180 -# define CMS_R_VERIFICATION_FAILURE 158 -# define CMS_R_WRAP_ERROR 159 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/comp.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/comp.h deleted file mode 100644 index e3cb300..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/comp.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright 2015-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_COMP_H -# define OPENSSL_COMP_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_COMP_H -# endif - -# include - -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - - - -# ifndef OPENSSL_NO_COMP - -COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); -const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); -int COMP_CTX_get_type(const COMP_CTX* comp); -int COMP_get_type(const COMP_METHOD *meth); -const char *COMP_get_name(const COMP_METHOD *meth); -void COMP_CTX_free(COMP_CTX *ctx); - -int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, - unsigned char *in, int ilen); -int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, - unsigned char *in, int ilen); - -COMP_METHOD *COMP_zlib(void); -COMP_METHOD *COMP_zlib_oneshot(void); -COMP_METHOD *COMP_brotli(void); -COMP_METHOD *COMP_brotli_oneshot(void); -COMP_METHOD *COMP_zstd(void); -COMP_METHOD *COMP_zstd_oneshot(void); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define COMP_zlib_cleanup() while(0) continue -# endif - -# ifdef OPENSSL_BIO_H -const BIO_METHOD *BIO_f_zlib(void); -const BIO_METHOD *BIO_f_brotli(void); -const BIO_METHOD *BIO_f_zstd(void); -# endif - -# endif - -typedef struct ssl_comp_st SSL_COMP; - -SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) -#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) -#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) -#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) -#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) -#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) -#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) -#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_freefunc_type(freefunc)) -#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) -#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) -#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) -#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) -#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) -#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) -#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) -#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) - - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/comperr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/comperr.h deleted file mode 100644 index 1948d37..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/comperr.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_COMPERR_H -# define OPENSSL_COMPERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_COMP - - -/* - * COMP reason codes. - */ -# define COMP_R_BROTLI_DECODE_ERROR 102 -# define COMP_R_BROTLI_ENCODE_ERROR 103 -# define COMP_R_BROTLI_NOT_SUPPORTED 104 -# define COMP_R_ZLIB_DEFLATE_ERROR 99 -# define COMP_R_ZLIB_INFLATE_ERROR 100 -# define COMP_R_ZLIB_NOT_SUPPORTED 101 -# define COMP_R_ZSTD_COMPRESS_ERROR 105 -# define COMP_R_ZSTD_DECODE_ERROR 106 -# define COMP_R_ZSTD_DECOMPRESS_ERROR 107 -# define COMP_R_ZSTD_NOT_SUPPORTED 108 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/conf.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/conf.h deleted file mode 100644 index 0fcf4f9..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/conf.h +++ /dev/null @@ -1,214 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\conf.h.in - * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_CONF_H -# define OPENSSL_CONF_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_CONF_H -# endif - -# include -# include -# include -# include -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - char *section; - char *name; - char *value; -} CONF_VALUE; - -SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) -#define sk_CONF_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_CONF_VALUE_sk_type(sk)) -#define sk_CONF_VALUE_value(sk, idx) ((CONF_VALUE *)OPENSSL_sk_value(ossl_check_const_CONF_VALUE_sk_type(sk), (idx))) -#define sk_CONF_VALUE_new(cmp) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_new(ossl_check_CONF_VALUE_compfunc_type(cmp))) -#define sk_CONF_VALUE_new_null() ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_new_null()) -#define sk_CONF_VALUE_new_reserve(cmp, n) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_CONF_VALUE_compfunc_type(cmp), (n))) -#define sk_CONF_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CONF_VALUE_sk_type(sk), (n)) -#define sk_CONF_VALUE_free(sk) OPENSSL_sk_free(ossl_check_CONF_VALUE_sk_type(sk)) -#define sk_CONF_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_CONF_VALUE_sk_type(sk)) -#define sk_CONF_VALUE_delete(sk, i) ((CONF_VALUE *)OPENSSL_sk_delete(ossl_check_CONF_VALUE_sk_type(sk), (i))) -#define sk_CONF_VALUE_delete_ptr(sk, ptr) ((CONF_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr))) -#define sk_CONF_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr)) -#define sk_CONF_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr)) -#define sk_CONF_VALUE_pop(sk) ((CONF_VALUE *)OPENSSL_sk_pop(ossl_check_CONF_VALUE_sk_type(sk))) -#define sk_CONF_VALUE_shift(sk) ((CONF_VALUE *)OPENSSL_sk_shift(ossl_check_CONF_VALUE_sk_type(sk))) -#define sk_CONF_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_freefunc_type(freefunc)) -#define sk_CONF_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr), (idx)) -#define sk_CONF_VALUE_set(sk, idx, ptr) ((CONF_VALUE *)OPENSSL_sk_set(ossl_check_CONF_VALUE_sk_type(sk), (idx), ossl_check_CONF_VALUE_type(ptr))) -#define sk_CONF_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr)) -#define sk_CONF_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr)) -#define sk_CONF_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr), pnum) -#define sk_CONF_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_CONF_VALUE_sk_type(sk)) -#define sk_CONF_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CONF_VALUE_sk_type(sk)) -#define sk_CONF_VALUE_dup(sk) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_dup(ossl_check_const_CONF_VALUE_sk_type(sk))) -#define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) -#define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) -DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); -#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) -#define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) -#define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) -#define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) -#define lh_CONF_VALUE_delete(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_delete(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_const_CONF_VALUE_lh_plain_type(ptr))) -#define lh_CONF_VALUE_retrieve(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_retrieve(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_const_CONF_VALUE_lh_plain_type(ptr))) -#define lh_CONF_VALUE_error(lh) OPENSSL_LH_error(ossl_check_CONF_VALUE_lh_type(lh)) -#define lh_CONF_VALUE_num_items(lh) OPENSSL_LH_num_items(ossl_check_CONF_VALUE_lh_type(lh)) -#define lh_CONF_VALUE_node_stats_bio(lh, out) OPENSSL_LH_node_stats_bio(ossl_check_const_CONF_VALUE_lh_type(lh), out) -#define lh_CONF_VALUE_node_usage_stats_bio(lh, out) OPENSSL_LH_node_usage_stats_bio(ossl_check_const_CONF_VALUE_lh_type(lh), out) -#define lh_CONF_VALUE_stats_bio(lh, out) OPENSSL_LH_stats_bio(ossl_check_const_CONF_VALUE_lh_type(lh), out) -#define lh_CONF_VALUE_get_down_load(lh) OPENSSL_LH_get_down_load(ossl_check_CONF_VALUE_lh_type(lh)) -#define lh_CONF_VALUE_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_CONF_VALUE_lh_type(lh), dl) -#define lh_CONF_VALUE_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_doallfunc_type(dfn)) - - -struct conf_st; -struct conf_method_st; -typedef struct conf_method_st CONF_METHOD; - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# include -# endif - -/* Module definitions */ -typedef struct conf_imodule_st CONF_IMODULE; -typedef struct conf_module_st CONF_MODULE; - -STACK_OF(CONF_MODULE); -STACK_OF(CONF_IMODULE); - -/* DSO module function typedefs */ -typedef int conf_init_func (CONF_IMODULE *md, const CONF *cnf); -typedef void conf_finish_func (CONF_IMODULE *md); - -# define CONF_MFLAGS_IGNORE_ERRORS 0x1 -# define CONF_MFLAGS_IGNORE_RETURN_CODES 0x2 -# define CONF_MFLAGS_SILENT 0x4 -# define CONF_MFLAGS_NO_DSO 0x8 -# define CONF_MFLAGS_IGNORE_MISSING_FILE 0x10 -# define CONF_MFLAGS_DEFAULT_SECTION 0x20 - -int CONF_set_default_method(CONF_METHOD *meth); -void CONF_set_nconf(CONF *conf, LHASH_OF(CONF_VALUE) *hash); -LHASH_OF(CONF_VALUE) *CONF_load(LHASH_OF(CONF_VALUE) *conf, const char *file, - long *eline); -# ifndef OPENSSL_NO_STDIO -LHASH_OF(CONF_VALUE) *CONF_load_fp(LHASH_OF(CONF_VALUE) *conf, FILE *fp, - long *eline); -# endif -LHASH_OF(CONF_VALUE) *CONF_load_bio(LHASH_OF(CONF_VALUE) *conf, BIO *bp, - long *eline); -STACK_OF(CONF_VALUE) *CONF_get_section(LHASH_OF(CONF_VALUE) *conf, - const char *section); -char *CONF_get_string(LHASH_OF(CONF_VALUE) *conf, const char *group, - const char *name); -long CONF_get_number(LHASH_OF(CONF_VALUE) *conf, const char *group, - const char *name); -void CONF_free(LHASH_OF(CONF_VALUE) *conf); -#ifndef OPENSSL_NO_STDIO -int CONF_dump_fp(LHASH_OF(CONF_VALUE) *conf, FILE *out); -#endif -int CONF_dump_bio(LHASH_OF(CONF_VALUE) *conf, BIO *out); -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 void OPENSSL_config(const char *config_name); -#endif - -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define OPENSSL_no_config() \ - OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL) -#endif - -/* - * New conf code. The semantics are different from the functions above. If - * that wasn't the case, the above functions would have been replaced - */ - -CONF *NCONF_new_ex(OSSL_LIB_CTX *libctx, CONF_METHOD *meth); -OSSL_LIB_CTX *NCONF_get0_libctx(const CONF *conf); -CONF *NCONF_new(CONF_METHOD *meth); -CONF_METHOD *NCONF_default(void); -#ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 CONF_METHOD *NCONF_WIN32(void); -#endif -void NCONF_free(CONF *conf); -void NCONF_free_data(CONF *conf); - -int NCONF_load(CONF *conf, const char *file, long *eline); -# ifndef OPENSSL_NO_STDIO -int NCONF_load_fp(CONF *conf, FILE *fp, long *eline); -# endif -int NCONF_load_bio(CONF *conf, BIO *bp, long *eline); -STACK_OF(OPENSSL_CSTRING) *NCONF_get_section_names(const CONF *conf); -STACK_OF(CONF_VALUE) *NCONF_get_section(const CONF *conf, - const char *section); -char *NCONF_get_string(const CONF *conf, const char *group, const char *name); -int NCONF_get_number_e(const CONF *conf, const char *group, const char *name, - long *result); -#ifndef OPENSSL_NO_STDIO -int NCONF_dump_fp(const CONF *conf, FILE *out); -#endif -int NCONF_dump_bio(const CONF *conf, BIO *out); - -#define NCONF_get_number(c,g,n,r) NCONF_get_number_e(c,g,n,r) - -/* Module functions */ - -int CONF_modules_load(const CONF *cnf, const char *appname, - unsigned long flags); -int CONF_modules_load_file_ex(OSSL_LIB_CTX *libctx, const char *filename, - const char *appname, unsigned long flags); -int CONF_modules_load_file(const char *filename, const char *appname, - unsigned long flags); -void CONF_modules_unload(int all); -void CONF_modules_finish(void); -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define CONF_modules_free() while(0) continue -#endif -int CONF_module_add(const char *name, conf_init_func *ifunc, - conf_finish_func *ffunc); - -const char *CONF_imodule_get_name(const CONF_IMODULE *md); -const char *CONF_imodule_get_value(const CONF_IMODULE *md); -void *CONF_imodule_get_usr_data(const CONF_IMODULE *md); -void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data); -CONF_MODULE *CONF_imodule_get_module(const CONF_IMODULE *md); -unsigned long CONF_imodule_get_flags(const CONF_IMODULE *md); -void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags); -void *CONF_module_get_usr_data(CONF_MODULE *pmod); -void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data); - -char *CONF_get1_default_config_file(void); - -int CONF_parse_list(const char *list, int sep, int nospc, - int (*list_cb) (const char *elem, int len, void *usr), - void *arg); - -void OPENSSL_load_builtin_modules(void); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/conf_api.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/conf_api.h deleted file mode 100644 index ed67d57..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/conf_api.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CONF_API_H -# define OPENSSL_CONF_API_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_CONF_API_H -# endif - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Up until OpenSSL 0.9.5a, this was new_section */ -CONF_VALUE *_CONF_new_section(CONF *conf, const char *section); -/* Up until OpenSSL 0.9.5a, this was get_section */ -CONF_VALUE *_CONF_get_section(const CONF *conf, const char *section); -/* Up until OpenSSL 0.9.5a, this was CONF_get_section */ -STACK_OF(CONF_VALUE) *_CONF_get_section_values(const CONF *conf, - const char *section); - -int _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value); -char *_CONF_get_string(const CONF *conf, const char *section, - const char *name); -long _CONF_get_number(const CONF *conf, const char *section, - const char *name); - -int _CONF_new_data(CONF *conf); -void _CONF_free_data(CONF *conf); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/conferr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/conferr.h deleted file mode 100644 index a8798e7..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/conferr.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CONFERR_H -# define OPENSSL_CONFERR_H -# pragma once - -# include -# include -# include - - - -/* - * CONF reason codes. - */ -# define CONF_R_ERROR_LOADING_DSO 110 -# define CONF_R_INVALID_PRAGMA 122 -# define CONF_R_LIST_CANNOT_BE_NULL 115 -# define CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION 123 -# define CONF_R_MISSING_CLOSE_SQUARE_BRACKET 100 -# define CONF_R_MISSING_EQUAL_SIGN 101 -# define CONF_R_MISSING_INIT_FUNCTION 112 -# define CONF_R_MODULE_INITIALIZATION_ERROR 109 -# define CONF_R_NO_CLOSE_BRACE 102 -# define CONF_R_NO_CONF 105 -# define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106 -# define CONF_R_NO_SECTION 107 -# define CONF_R_NO_SUCH_FILE 114 -# define CONF_R_NO_VALUE 108 -# define CONF_R_NUMBER_TOO_LARGE 121 -# define CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION 124 -# define CONF_R_RECURSIVE_DIRECTORY_INCLUDE 111 -# define CONF_R_RECURSIVE_SECTION_REFERENCE 126 -# define CONF_R_RELATIVE_PATH 125 -# define CONF_R_SSL_COMMAND_SECTION_EMPTY 117 -# define CONF_R_SSL_COMMAND_SECTION_NOT_FOUND 118 -# define CONF_R_SSL_SECTION_EMPTY 119 -# define CONF_R_SSL_SECTION_NOT_FOUND 120 -# define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103 -# define CONF_R_UNKNOWN_MODULE_NAME 113 -# define CONF_R_VARIABLE_EXPANSION_TOO_LONG 116 -# define CONF_R_VARIABLE_HAS_NO_VALUE 104 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/configuration.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/configuration.h deleted file mode 100644 index dbe8745..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/configuration.h +++ /dev/null @@ -1,197 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by configdata.pm from ..\Configurations\common0.tmpl, ..\Configurations\windows-makefile.tmpl - * via makefile.in - * - * Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CONFIGURATION_H -# define OPENSSL_CONFIGURATION_H -# pragma once - -# ifdef __cplusplus -extern "C" { -# endif - -# ifdef OPENSSL_ALGORITHM_DEFINES -# error OPENSSL_ALGORITHM_DEFINES no longer supported -# endif - -/* - * OpenSSL was configured with the following options: - */ - -# ifndef OPENSSL_SYS_WIN32 -# define OPENSSL_SYS_WIN32 1 -# endif -# define OPENSSL_CONFIGURED_API 30600 -# ifndef OPENSSL_RAND_SEED_OS -# define OPENSSL_RAND_SEED_OS -# endif -# ifndef OPENSSL_THREADS -# define OPENSSL_THREADS -# endif -# ifndef OPENSSL_NO_ACVP_TESTS -# define OPENSSL_NO_ACVP_TESTS -# endif -# ifndef OPENSSL_NO_AFALGENG -# define OPENSSL_NO_AFALGENG -# endif -# ifndef OPENSSL_NO_ALLOCFAIL_TESTS -# define OPENSSL_NO_ALLOCFAIL_TESTS -# endif -# ifndef OPENSSL_NO_ASAN -# define OPENSSL_NO_ASAN -# endif -# ifndef OPENSSL_NO_AUTOLOAD_CONFIG -# define OPENSSL_NO_AUTOLOAD_CONFIG -# endif -# ifndef OPENSSL_NO_BROTLI -# define OPENSSL_NO_BROTLI -# endif -# ifndef OPENSSL_NO_BROTLI_DYNAMIC -# define OPENSSL_NO_BROTLI_DYNAMIC -# endif -# ifndef OPENSSL_NO_COMP -# define OPENSSL_NO_COMP -# endif -# ifndef OPENSSL_NO_CRYPTO_MDEBUG -# define OPENSSL_NO_CRYPTO_MDEBUG -# endif -# ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE -# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE -# endif -# ifndef OPENSSL_NO_DEMOS -# define OPENSSL_NO_DEMOS -# endif -# ifndef OPENSSL_NO_DEVCRYPTOENG -# define OPENSSL_NO_DEVCRYPTOENG -# endif -# ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 -# define OPENSSL_NO_EC_NISTP_64_GCC_128 -# endif -# ifndef OPENSSL_NO_EGD -# define OPENSSL_NO_EGD -# endif -# ifndef OPENSSL_NO_EXTERNAL_TESTS -# define OPENSSL_NO_EXTERNAL_TESTS -# endif -# ifndef OPENSSL_NO_FIPS_JITTER -# define OPENSSL_NO_FIPS_JITTER -# endif -# ifndef OPENSSL_NO_FIPS_POST -# define OPENSSL_NO_FIPS_POST -# endif -# ifndef OPENSSL_NO_FIPS_SECURITYCHECKS -# define OPENSSL_NO_FIPS_SECURITYCHECKS -# endif -# ifndef OPENSSL_NO_FUZZ_AFL -# define OPENSSL_NO_FUZZ_AFL -# endif -# ifndef OPENSSL_NO_FUZZ_LIBFUZZER -# define OPENSSL_NO_FUZZ_LIBFUZZER -# endif -# ifndef OPENSSL_NO_H3DEMO -# define OPENSSL_NO_H3DEMO -# endif -# ifndef OPENSSL_NO_HQINTEROP -# define OPENSSL_NO_HQINTEROP -# endif -# ifndef OPENSSL_NO_JITTER -# define OPENSSL_NO_JITTER -# endif -# ifndef OPENSSL_NO_KTLS -# define OPENSSL_NO_KTLS -# endif -# ifndef OPENSSL_NO_LMS -# define OPENSSL_NO_LMS -# endif -# ifndef OPENSSL_NO_MD2 -# define OPENSSL_NO_MD2 -# endif -# ifndef OPENSSL_NO_MSAN -# define OPENSSL_NO_MSAN -# endif -# ifndef OPENSSL_NO_PIE -# define OPENSSL_NO_PIE -# endif -# ifndef OPENSSL_NO_RC5 -# define OPENSSL_NO_RC5 -# endif -# ifndef OPENSSL_NO_SCTP -# define OPENSSL_NO_SCTP -# endif -# ifndef OPENSSL_NO_SSL3 -# define OPENSSL_NO_SSL3 -# endif -# ifndef OPENSSL_NO_SSL3_METHOD -# define OPENSSL_NO_SSL3_METHOD -# endif -# ifndef OPENSSL_NO_SSLKEYLOG -# define OPENSSL_NO_SSLKEYLOG -# endif -# ifndef OPENSSL_NO_TFO -# define OPENSSL_NO_TFO -# endif -# ifndef OPENSSL_NO_TRACE -# define OPENSSL_NO_TRACE -# endif -# ifndef OPENSSL_NO_UBSAN -# define OPENSSL_NO_UBSAN -# endif -# ifndef OPENSSL_NO_UNIT_TEST -# define OPENSSL_NO_UNIT_TEST -# endif -# ifndef OPENSSL_NO_WEAK_SSL_CIPHERS -# define OPENSSL_NO_WEAK_SSL_CIPHERS -# endif -# ifndef OPENSSL_NO_ZLIB -# define OPENSSL_NO_ZLIB -# endif -# ifndef OPENSSL_NO_ZLIB_DYNAMIC -# define OPENSSL_NO_ZLIB_DYNAMIC -# endif -# ifndef OPENSSL_NO_ZSTD -# define OPENSSL_NO_ZSTD -# endif -# ifndef OPENSSL_NO_ZSTD_DYNAMIC -# define OPENSSL_NO_ZSTD_DYNAMIC -# endif -# ifndef OPENSSL_NO_STATIC_ENGINE -# define OPENSSL_NO_STATIC_ENGINE -# endif - - -/* Generate 80386 code? */ -# undef I386_ONLY - -/* - * The following are cipher-specific, but are part of the public API. - */ -# if !defined(OPENSSL_SYS_UEFI) -# define BN_LLONG -/* Only one for the following should be defined */ -# undef SIXTY_FOUR_BIT_LONG -# undef SIXTY_FOUR_BIT -# define THIRTY_TWO_BIT -# endif - -# define RC4_INT unsigned int - -# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) -# define OPENSSL_NO_COMP_ALG -# else -# undef OPENSSL_NO_COMP_ALG -# endif - -# ifdef __cplusplus -} -# endif - -#endif /* OPENSSL_CONFIGURATION_H */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/conftypes.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/conftypes.h deleted file mode 100644 index 17cefaa..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/conftypes.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CONFTYPES_H -# define OPENSSL_CONFTYPES_H -# pragma once - -#ifndef OPENSSL_CONF_H -# include -#endif - -/* - * The contents of this file are deprecated and will be made opaque - */ -struct conf_method_st { - const char *name; - CONF *(*create) (CONF_METHOD *meth); - int (*init) (CONF *conf); - int (*destroy) (CONF *conf); - int (*destroy_data) (CONF *conf); - int (*load_bio) (CONF *conf, BIO *bp, long *eline); - int (*dump) (const CONF *conf, BIO *bp); - int (*is_number) (const CONF *conf, char c); - int (*to_int) (const CONF *conf, char c); - int (*load) (CONF *conf, const char *name, long *eline); -}; - -struct conf_st { - CONF_METHOD *meth; - void *meth_data; - LHASH_OF(CONF_VALUE) *data; - int flag_dollarid; - int flag_abspath; - char *includedir; - OSSL_LIB_CTX *libctx; -}; - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/core.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/core.h deleted file mode 100644 index 18c1991..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/core.h +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CORE_H -# define OPENSSL_CORE_H -# pragma once - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/*- - * Base types - * ---------- - * - * These are the types that the OpenSSL core and providers have in common - * to communicate data between them. - */ - -/* Opaque handles to be used with core upcall functions from providers */ -typedef struct ossl_core_handle_st OSSL_CORE_HANDLE; -typedef struct openssl_core_ctx_st OPENSSL_CORE_CTX; -typedef struct ossl_core_bio_st OSSL_CORE_BIO; - -/* - * Dispatch table element. function_id numbers and the functions are defined - * in core_dispatch.h, see macros with 'OSSL_CORE_MAKE_FUNC' in their names. - * - * An array of these is always terminated by function_id == 0 - */ -struct ossl_dispatch_st { - int function_id; - void (*function)(void); -}; - -# define OSSL_DISPATCH_END \ - { 0, NULL } - -/* - * Other items, essentially an int<->pointer map element. - * - * We make this type distinct from OSSL_DISPATCH to ensure that dispatch - * tables remain tables with function pointers only. - * - * This is used whenever we need to pass things like a table of error reason - * codes <-> reason string maps, ... - * - * Usage determines which field works as key if any, rather than field order. - * - * An array of these is always terminated by id == 0 && ptr == NULL - */ -struct ossl_item_st { - unsigned int id; - void *ptr; -}; - -/* - * Type to tie together algorithm names, property definition string and - * the algorithm implementation in the form of a dispatch table. - * - * An array of these is always terminated by algorithm_names == NULL - */ -struct ossl_algorithm_st { - const char *algorithm_names; /* key */ - const char *property_definition; /* key */ - const OSSL_DISPATCH *implementation; - const char *algorithm_description; -}; - -/* - * Type to pass object data in a uniform way, without exposing the object - * structure. - * - * An array of these is always terminated by key == NULL - */ -struct ossl_param_st { - const char *key; /* the name of the parameter */ - unsigned int data_type; /* declare what kind of content is in buffer */ - void *data; /* value being passed in or out */ - size_t data_size; /* data size */ - size_t return_size; /* returned content size */ -}; - -/* Currently supported OSSL_PARAM data types */ -/* - * OSSL_PARAM_INTEGER and OSSL_PARAM_UNSIGNED_INTEGER - * are arbitrary length and therefore require an arbitrarily sized buffer, - * since they may be used to pass numbers larger than what is natively - * available. - * - * The number must be buffered in native form, i.e. MSB first on B_ENDIAN - * systems and LSB first on L_ENDIAN systems. This means that arbitrary - * native integers can be stored in the buffer, just make sure that the - * buffer size is correct and the buffer itself is properly aligned (for - * example by having the buffer field point at a C integer). - */ -# define OSSL_PARAM_INTEGER 1 -# define OSSL_PARAM_UNSIGNED_INTEGER 2 -/*- - * OSSL_PARAM_REAL - * is a C binary floating point values in native form and alignment. - */ -# define OSSL_PARAM_REAL 3 -/*- - * OSSL_PARAM_UTF8_STRING - * is a printable string. It is expected to be printed as it is. - */ -# define OSSL_PARAM_UTF8_STRING 4 -/*- - * OSSL_PARAM_OCTET_STRING - * is a string of bytes with no further specification. It is expected to be - * printed as a hexdump. - */ -# define OSSL_PARAM_OCTET_STRING 5 -/*- - * OSSL_PARAM_UTF8_PTR - * is a pointer to a printable string. It is expected to be printed as it is. - * - * The difference between this and OSSL_PARAM_UTF8_STRING is that only pointers - * are manipulated for this type. - * - * This is more relevant for parameter requests, where the responding - * function doesn't need to copy the data to the provided buffer, but - * sets the provided buffer to point at the actual data instead. - * - * WARNING! Using these is FRAGILE, as it assumes that the actual - * data and its location are constant. - * - * EXTRA WARNING! If you are not completely sure you most likely want - * to use the OSSL_PARAM_UTF8_STRING type. - */ -# define OSSL_PARAM_UTF8_PTR 6 -/*- - * OSSL_PARAM_OCTET_PTR - * is a pointer to a string of bytes with no further specification. It is - * expected to be printed as a hexdump. - * - * The difference between this and OSSL_PARAM_OCTET_STRING is that only pointers - * are manipulated for this type. - * - * This is more relevant for parameter requests, where the responding - * function doesn't need to copy the data to the provided buffer, but - * sets the provided buffer to point at the actual data instead. - * - * WARNING! Using these is FRAGILE, as it assumes that the actual - * data and its location are constant. - * - * EXTRA WARNING! If you are not completely sure you most likely want - * to use the OSSL_PARAM_OCTET_STRING type. - */ -# define OSSL_PARAM_OCTET_PTR 7 - -/* - * Typedef for the thread stop handling callback. Used both internally and by - * providers. - * - * Providers may register for notifications about threads stopping by - * registering a callback to hear about such events. Providers register the - * callback using the OSSL_FUNC_CORE_THREAD_START function in the |in| dispatch - * table passed to OSSL_provider_init(). The arg passed back to a provider will - * be the provider side context object. - */ -typedef void (*OSSL_thread_stop_handler_fn)(void *arg); - - -/*- - * Provider entry point - * -------------------- - * - * This function is expected to be present in any dynamically loadable - * provider module. By definition, if this function doesn't exist in a - * module, that module is not an OpenSSL provider module. - */ -/*- - * |handle| pointer to opaque type OSSL_CORE_HANDLE. This can be used - * together with some functions passed via |in| to query data. - * |in| is the array of functions that the Core passes to the provider. - * |out| will be the array of base functions that the provider passes - * back to the Core. - * |provctx| a provider side context object, optionally created if the - * provider needs it. This value is passed to other provider - * functions, notably other context constructors. - */ -typedef int (OSSL_provider_init_fn)(const OSSL_CORE_HANDLE *handle, - const OSSL_DISPATCH *in, - const OSSL_DISPATCH **out, - void **provctx); -# ifdef __VMS -# pragma names save -# pragma names uppercase,truncated -# endif -OPENSSL_EXPORT OSSL_provider_init_fn OSSL_provider_init; -# ifdef __VMS -# pragma names restore -# endif - -/* - * Generic callback function signature. - * - * The expectation is that any provider function that wants to offer - * a callback / hook can do so by taking an argument with this type, - * as well as a pointer to caller-specific data. When calling the - * callback, the provider function can populate an OSSL_PARAM array - * with data of its choice and pass that in the callback call, along - * with the caller data argument. - * - * libcrypto may use the OSSL_PARAM array to create arguments for an - * application callback it knows about. - */ -typedef int (OSSL_CALLBACK)(const OSSL_PARAM params[], void *arg); -typedef int (OSSL_INOUT_CALLBACK)(const OSSL_PARAM in_params[], - OSSL_PARAM out_params[], void *arg); -/* - * Passphrase callback function signature - * - * This is similar to the generic callback function above, but adds a - * result parameter. - */ -typedef int (OSSL_PASSPHRASE_CALLBACK)(char *pass, size_t pass_size, - size_t *pass_len, - const OSSL_PARAM params[], void *arg); - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/core_dispatch.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/core_dispatch.h deleted file mode 100644 index e435c08..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/core_dispatch.h +++ /dev/null @@ -1,1156 +0,0 @@ -/* - * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CORE_NUMBERS_H -# define OPENSSL_CORE_NUMBERS_H -# pragma once - -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * Generic function pointer for provider method arrays, or other contexts where - * functions of various signatures must occupy a common slot in an array of - * structures. - */ -typedef void (*OSSL_FUNC)(void); - -/*- - * Identities - * ---------- - * - * All series start with 1, to allow 0 to be an array terminator. - * For any FUNC identity, we also provide a function signature typedef - * and a static inline function to extract a function pointer from a - * OSSL_DISPATCH element in a type safe manner. - * - * Names: - * for any function base name 'foo' (uppercase form 'FOO'), we will have - * the following: - * - a macro for the identity with the name OSSL_FUNC_'FOO' or derivatives - * thereof (to be specified further down) - * - a function signature typedef with the name OSSL_FUNC_'foo'_fn - * - a function pointer extractor function with the name OSSL_FUNC_'foo' - */ - -/* - * Helper macro to create the function signature typedef and the extractor - * |type| is the return-type of the function, |name| is the name of the - * function to fetch, and |args| is a parenthesized list of parameters - * for the function (that is, it is |name|'s function signature). - * Note: This is considered a "reserved" internal macro. Applications should - * not use this or assume its existence. - */ -#define OSSL_CORE_MAKE_FUNC(type,name,args) \ - typedef type (OSSL_FUNC_##name##_fn)args; \ - static ossl_unused ossl_inline \ - OSSL_FUNC_##name##_fn *OSSL_FUNC_##name(const OSSL_DISPATCH *opf) \ - { \ - return (OSSL_FUNC_##name##_fn *)opf->function; \ - } - -/* - * Core function identities, for the two OSSL_DISPATCH tables being passed - * in the OSSL_provider_init call. - * - * 0 serves as a marker for the end of the OSSL_DISPATCH array, and must - * therefore NEVER be used as a function identity. - */ -/* Functions provided by the Core to the provider, reserved numbers 1-1023 */ -# define OSSL_FUNC_CORE_GETTABLE_PARAMS 1 -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, - core_gettable_params,(const OSSL_CORE_HANDLE *prov)) -# define OSSL_FUNC_CORE_GET_PARAMS 2 -OSSL_CORE_MAKE_FUNC(int,core_get_params,(const OSSL_CORE_HANDLE *prov, - OSSL_PARAM params[])) -# define OSSL_FUNC_CORE_THREAD_START 3 -OSSL_CORE_MAKE_FUNC(int,core_thread_start,(const OSSL_CORE_HANDLE *prov, - OSSL_thread_stop_handler_fn handfn, - void *arg)) -# define OSSL_FUNC_CORE_GET_LIBCTX 4 -OSSL_CORE_MAKE_FUNC(OPENSSL_CORE_CTX *,core_get_libctx, - (const OSSL_CORE_HANDLE *prov)) -# define OSSL_FUNC_CORE_NEW_ERROR 5 -OSSL_CORE_MAKE_FUNC(void,core_new_error,(const OSSL_CORE_HANDLE *prov)) -# define OSSL_FUNC_CORE_SET_ERROR_DEBUG 6 -OSSL_CORE_MAKE_FUNC(void,core_set_error_debug, - (const OSSL_CORE_HANDLE *prov, - const char *file, int line, const char *func)) -# define OSSL_FUNC_CORE_VSET_ERROR 7 -OSSL_CORE_MAKE_FUNC(void,core_vset_error, - (const OSSL_CORE_HANDLE *prov, - uint32_t reason, const char *fmt, va_list args)) -# define OSSL_FUNC_CORE_SET_ERROR_MARK 8 -OSSL_CORE_MAKE_FUNC(int, core_set_error_mark, (const OSSL_CORE_HANDLE *prov)) -# define OSSL_FUNC_CORE_CLEAR_LAST_ERROR_MARK 9 -OSSL_CORE_MAKE_FUNC(int, core_clear_last_error_mark, - (const OSSL_CORE_HANDLE *prov)) -# define OSSL_FUNC_CORE_POP_ERROR_TO_MARK 10 -OSSL_CORE_MAKE_FUNC(int, core_pop_error_to_mark, (const OSSL_CORE_HANDLE *prov)) - - -/* Functions to access the OBJ database */ - -#define OSSL_FUNC_CORE_OBJ_ADD_SIGID 11 -#define OSSL_FUNC_CORE_OBJ_CREATE 12 - -OSSL_CORE_MAKE_FUNC(int, core_obj_add_sigid, - (const OSSL_CORE_HANDLE *prov, const char *sign_name, - const char *digest_name, const char *pkey_name)) -OSSL_CORE_MAKE_FUNC(int, core_obj_create, - (const OSSL_CORE_HANDLE *prov, const char *oid, - const char *sn, const char *ln)) - -/* Memory allocation, freeing, clearing. */ -#define OSSL_FUNC_CRYPTO_MALLOC 20 -OSSL_CORE_MAKE_FUNC(void *, - CRYPTO_malloc, (size_t num, const char *file, int line)) -#define OSSL_FUNC_CRYPTO_ZALLOC 21 -OSSL_CORE_MAKE_FUNC(void *, - CRYPTO_zalloc, (size_t num, const char *file, int line)) -#define OSSL_FUNC_CRYPTO_FREE 22 -OSSL_CORE_MAKE_FUNC(void, - CRYPTO_free, (void *ptr, const char *file, int line)) -#define OSSL_FUNC_CRYPTO_CLEAR_FREE 23 -OSSL_CORE_MAKE_FUNC(void, - CRYPTO_clear_free, (void *ptr, size_t num, const char *file, int line)) -#define OSSL_FUNC_CRYPTO_REALLOC 24 -OSSL_CORE_MAKE_FUNC(void *, - CRYPTO_realloc, (void *addr, size_t num, const char *file, int line)) -#define OSSL_FUNC_CRYPTO_CLEAR_REALLOC 25 -OSSL_CORE_MAKE_FUNC(void *, - CRYPTO_clear_realloc, (void *addr, size_t old_num, size_t num, - const char *file, int line)) -#define OSSL_FUNC_CRYPTO_SECURE_MALLOC 26 -OSSL_CORE_MAKE_FUNC(void *, - CRYPTO_secure_malloc, (size_t num, const char *file, int line)) -#define OSSL_FUNC_CRYPTO_SECURE_ZALLOC 27 -OSSL_CORE_MAKE_FUNC(void *, - CRYPTO_secure_zalloc, (size_t num, const char *file, int line)) -#define OSSL_FUNC_CRYPTO_SECURE_FREE 28 -OSSL_CORE_MAKE_FUNC(void, - CRYPTO_secure_free, (void *ptr, const char *file, int line)) -#define OSSL_FUNC_CRYPTO_SECURE_CLEAR_FREE 29 -OSSL_CORE_MAKE_FUNC(void, - CRYPTO_secure_clear_free, (void *ptr, size_t num, const char *file, - int line)) -#define OSSL_FUNC_CRYPTO_SECURE_ALLOCATED 30 -OSSL_CORE_MAKE_FUNC(int, - CRYPTO_secure_allocated, (const void *ptr)) -#define OSSL_FUNC_OPENSSL_CLEANSE 31 -OSSL_CORE_MAKE_FUNC(void, - OPENSSL_cleanse, (void *ptr, size_t len)) - -/* Bio functions provided by the core */ -#define OSSL_FUNC_BIO_NEW_FILE 40 -#define OSSL_FUNC_BIO_NEW_MEMBUF 41 -#define OSSL_FUNC_BIO_READ_EX 42 -#define OSSL_FUNC_BIO_WRITE_EX 43 -#define OSSL_FUNC_BIO_UP_REF 44 -#define OSSL_FUNC_BIO_FREE 45 -#define OSSL_FUNC_BIO_VPRINTF 46 -#define OSSL_FUNC_BIO_VSNPRINTF 47 -#define OSSL_FUNC_BIO_PUTS 48 -#define OSSL_FUNC_BIO_GETS 49 -#define OSSL_FUNC_BIO_CTRL 50 - - -OSSL_CORE_MAKE_FUNC(OSSL_CORE_BIO *, BIO_new_file, (const char *filename, - const char *mode)) -OSSL_CORE_MAKE_FUNC(OSSL_CORE_BIO *, BIO_new_membuf, (const void *buf, int len)) -OSSL_CORE_MAKE_FUNC(int, BIO_read_ex, (OSSL_CORE_BIO *bio, void *data, - size_t data_len, size_t *bytes_read)) -OSSL_CORE_MAKE_FUNC(int, BIO_write_ex, (OSSL_CORE_BIO *bio, const void *data, - size_t data_len, size_t *written)) -OSSL_CORE_MAKE_FUNC(int, BIO_gets, (OSSL_CORE_BIO *bio, char *buf, int size)) -OSSL_CORE_MAKE_FUNC(int, BIO_puts, (OSSL_CORE_BIO *bio, const char *str)) -OSSL_CORE_MAKE_FUNC(int, BIO_up_ref, (OSSL_CORE_BIO *bio)) -OSSL_CORE_MAKE_FUNC(int, BIO_free, (OSSL_CORE_BIO *bio)) -OSSL_CORE_MAKE_FUNC(int, BIO_vprintf, (OSSL_CORE_BIO *bio, const char *format, - va_list args)) -OSSL_CORE_MAKE_FUNC(int, BIO_vsnprintf, - (char *buf, size_t n, const char *fmt, va_list args)) -OSSL_CORE_MAKE_FUNC(int, BIO_ctrl, (OSSL_CORE_BIO *bio, - int cmd, long num, void *ptr)) - -/* New seeding functions prototypes with the 101-104 series */ -#define OSSL_FUNC_CLEANUP_USER_ENTROPY 96 -#define OSSL_FUNC_CLEANUP_USER_NONCE 97 -#define OSSL_FUNC_GET_USER_ENTROPY 98 -#define OSSL_FUNC_GET_USER_NONCE 99 - -#define OSSL_FUNC_INDICATOR_CB 95 -OSSL_CORE_MAKE_FUNC(void, indicator_cb, (OPENSSL_CORE_CTX *ctx, - OSSL_INDICATOR_CALLBACK **cb)) -#define OSSL_FUNC_SELF_TEST_CB 100 -OSSL_CORE_MAKE_FUNC(void, self_test_cb, (OPENSSL_CORE_CTX *ctx, OSSL_CALLBACK **cb, - void **cbarg)) - -/* Functions to get seed material from the operating system */ -#define OSSL_FUNC_GET_ENTROPY 101 -#define OSSL_FUNC_CLEANUP_ENTROPY 102 -#define OSSL_FUNC_GET_NONCE 103 -#define OSSL_FUNC_CLEANUP_NONCE 104 -OSSL_CORE_MAKE_FUNC(size_t, get_entropy, (const OSSL_CORE_HANDLE *handle, - unsigned char **pout, int entropy, - size_t min_len, size_t max_len)) -OSSL_CORE_MAKE_FUNC(size_t, get_user_entropy, (const OSSL_CORE_HANDLE *handle, - unsigned char **pout, int entropy, - size_t min_len, size_t max_len)) -OSSL_CORE_MAKE_FUNC(void, cleanup_entropy, (const OSSL_CORE_HANDLE *handle, - unsigned char *buf, size_t len)) -OSSL_CORE_MAKE_FUNC(void, cleanup_user_entropy, (const OSSL_CORE_HANDLE *handle, - unsigned char *buf, size_t len)) -OSSL_CORE_MAKE_FUNC(size_t, get_nonce, (const OSSL_CORE_HANDLE *handle, - unsigned char **pout, size_t min_len, - size_t max_len, const void *salt, - size_t salt_len)) -OSSL_CORE_MAKE_FUNC(size_t, get_user_nonce, (const OSSL_CORE_HANDLE *handle, - unsigned char **pout, size_t min_len, - size_t max_len, const void *salt, - size_t salt_len)) -OSSL_CORE_MAKE_FUNC(void, cleanup_nonce, (const OSSL_CORE_HANDLE *handle, - unsigned char *buf, size_t len)) -OSSL_CORE_MAKE_FUNC(void, cleanup_user_nonce, (const OSSL_CORE_HANDLE *handle, - unsigned char *buf, size_t len)) - -/* Functions to access the core's providers */ -#define OSSL_FUNC_PROVIDER_REGISTER_CHILD_CB 105 -#define OSSL_FUNC_PROVIDER_DEREGISTER_CHILD_CB 106 -#define OSSL_FUNC_PROVIDER_NAME 107 -#define OSSL_FUNC_PROVIDER_GET0_PROVIDER_CTX 108 -#define OSSL_FUNC_PROVIDER_GET0_DISPATCH 109 -#define OSSL_FUNC_PROVIDER_UP_REF 110 -#define OSSL_FUNC_PROVIDER_FREE 111 - -OSSL_CORE_MAKE_FUNC(int, provider_register_child_cb, - (const OSSL_CORE_HANDLE *handle, - int (*create_cb)(const OSSL_CORE_HANDLE *provider, void *cbdata), - int (*remove_cb)(const OSSL_CORE_HANDLE *provider, void *cbdata), - int (*global_props_cb)(const char *props, void *cbdata), - void *cbdata)) -OSSL_CORE_MAKE_FUNC(void, provider_deregister_child_cb, - (const OSSL_CORE_HANDLE *handle)) -OSSL_CORE_MAKE_FUNC(const char *, provider_name, - (const OSSL_CORE_HANDLE *prov)) -OSSL_CORE_MAKE_FUNC(void *, provider_get0_provider_ctx, - (const OSSL_CORE_HANDLE *prov)) -OSSL_CORE_MAKE_FUNC(const OSSL_DISPATCH *, provider_get0_dispatch, - (const OSSL_CORE_HANDLE *prov)) -OSSL_CORE_MAKE_FUNC(int, provider_up_ref, - (const OSSL_CORE_HANDLE *prov, int activate)) -OSSL_CORE_MAKE_FUNC(int, provider_free, - (const OSSL_CORE_HANDLE *prov, int deactivate)) - -/* Additional error functions provided by the core */ -# define OSSL_FUNC_CORE_COUNT_TO_MARK 120 -OSSL_CORE_MAKE_FUNC(int, core_count_to_mark, (const OSSL_CORE_HANDLE *prov)) - -/* Functions provided by the provider to the Core, reserved numbers 1024-1535 */ -# define OSSL_FUNC_PROVIDER_TEARDOWN 1024 -OSSL_CORE_MAKE_FUNC(void, provider_teardown, (void *provctx)) -# define OSSL_FUNC_PROVIDER_GETTABLE_PARAMS 1025 -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, - provider_gettable_params,(void *provctx)) -# define OSSL_FUNC_PROVIDER_GET_PARAMS 1026 -OSSL_CORE_MAKE_FUNC(int, provider_get_params, (void *provctx, - OSSL_PARAM params[])) -# define OSSL_FUNC_PROVIDER_QUERY_OPERATION 1027 -OSSL_CORE_MAKE_FUNC(const OSSL_ALGORITHM *,provider_query_operation, - (void *provctx, int operation_id, int *no_store)) -# define OSSL_FUNC_PROVIDER_UNQUERY_OPERATION 1028 -OSSL_CORE_MAKE_FUNC(void, provider_unquery_operation, - (void *provctx, int operation_id, const OSSL_ALGORITHM *)) -# define OSSL_FUNC_PROVIDER_GET_REASON_STRINGS 1029 -OSSL_CORE_MAKE_FUNC(const OSSL_ITEM *,provider_get_reason_strings, - (void *provctx)) -# define OSSL_FUNC_PROVIDER_GET_CAPABILITIES 1030 -OSSL_CORE_MAKE_FUNC(int, provider_get_capabilities, (void *provctx, - const char *capability, OSSL_CALLBACK *cb, void *arg)) -# define OSSL_FUNC_PROVIDER_SELF_TEST 1031 -OSSL_CORE_MAKE_FUNC(int, provider_self_test, (void *provctx)) -# define OSSL_FUNC_PROVIDER_RANDOM_BYTES 1032 -OSSL_CORE_MAKE_FUNC(int, provider_random_bytes, (void *provctx, int which, - void *buf, size_t n, - unsigned int strength)) - -/* Libssl related functions */ -#define OSSL_FUNC_SSL_QUIC_TLS_CRYPTO_SEND 2001 -OSSL_CORE_MAKE_FUNC(int, SSL_QUIC_TLS_crypto_send, - (SSL *s, const unsigned char *buf, size_t buf_len, - size_t *consumed, void *arg)) -#define OSSL_FUNC_SSL_QUIC_TLS_CRYPTO_RECV_RCD 2002 -OSSL_CORE_MAKE_FUNC(int, SSL_QUIC_TLS_crypto_recv_rcd, - (SSL *s, const unsigned char **buf, size_t *bytes_read, - void *arg)) -#define OSSL_FUNC_SSL_QUIC_TLS_CRYPTO_RELEASE_RCD 2003 -OSSL_CORE_MAKE_FUNC(int, SSL_QUIC_TLS_crypto_release_rcd, - (SSL *s, size_t bytes_read, void *arg)) -#define OSSL_FUNC_SSL_QUIC_TLS_YIELD_SECRET 2004 -OSSL_CORE_MAKE_FUNC(int, SSL_QUIC_TLS_yield_secret, - (SSL *s, uint32_t prot_level, int direction, - const unsigned char *secret, size_t secret_len, void *arg)) -#define OSSL_FUNC_SSL_QUIC_TLS_GOT_TRANSPORT_PARAMS 2005 -OSSL_CORE_MAKE_FUNC(int, SSL_QUIC_TLS_got_transport_params, - (SSL *s, const unsigned char *params, size_t params_len, - void *arg)) -#define OSSL_FUNC_SSL_QUIC_TLS_ALERT 2006 -OSSL_CORE_MAKE_FUNC(int, SSL_QUIC_TLS_alert, - (SSL *s, unsigned char alert_code, void *arg)) - -/* Operations */ - -# define OSSL_OP_DIGEST 1 -# define OSSL_OP_CIPHER 2 /* Symmetric Ciphers */ -# define OSSL_OP_MAC 3 -# define OSSL_OP_KDF 4 -# define OSSL_OP_RAND 5 -# define OSSL_OP_KEYMGMT 10 -# define OSSL_OP_KEYEXCH 11 -# define OSSL_OP_SIGNATURE 12 -# define OSSL_OP_ASYM_CIPHER 13 -# define OSSL_OP_KEM 14 -# define OSSL_OP_SKEYMGMT 15 -/* New section for non-EVP operations */ -# define OSSL_OP_ENCODER 20 -# define OSSL_OP_DECODER 21 -# define OSSL_OP_STORE 22 -/* Highest known operation number */ -# define OSSL_OP__HIGHEST 22 - -/* Digests */ - -# define OSSL_FUNC_DIGEST_NEWCTX 1 -# define OSSL_FUNC_DIGEST_INIT 2 -# define OSSL_FUNC_DIGEST_UPDATE 3 -# define OSSL_FUNC_DIGEST_FINAL 4 -# define OSSL_FUNC_DIGEST_DIGEST 5 -# define OSSL_FUNC_DIGEST_FREECTX 6 -# define OSSL_FUNC_DIGEST_DUPCTX 7 -# define OSSL_FUNC_DIGEST_GET_PARAMS 8 -# define OSSL_FUNC_DIGEST_SET_CTX_PARAMS 9 -# define OSSL_FUNC_DIGEST_GET_CTX_PARAMS 10 -# define OSSL_FUNC_DIGEST_GETTABLE_PARAMS 11 -# define OSSL_FUNC_DIGEST_SETTABLE_CTX_PARAMS 12 -# define OSSL_FUNC_DIGEST_GETTABLE_CTX_PARAMS 13 -# define OSSL_FUNC_DIGEST_SQUEEZE 14 -# define OSSL_FUNC_DIGEST_COPYCTX 15 - -OSSL_CORE_MAKE_FUNC(void *, digest_newctx, (void *provctx)) -OSSL_CORE_MAKE_FUNC(int, digest_init, (void *dctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, digest_update, - (void *dctx, const unsigned char *in, size_t inl)) -OSSL_CORE_MAKE_FUNC(int, digest_final, - (void *dctx, - unsigned char *out, size_t *outl, size_t outsz)) -OSSL_CORE_MAKE_FUNC(int, digest_squeeze, - (void *dctx, - unsigned char *out, size_t *outl, size_t outsz)) -OSSL_CORE_MAKE_FUNC(int, digest_digest, - (void *provctx, const unsigned char *in, size_t inl, - unsigned char *out, size_t *outl, size_t outsz)) - -OSSL_CORE_MAKE_FUNC(void, digest_freectx, (void *dctx)) -OSSL_CORE_MAKE_FUNC(void *, digest_dupctx, (void *dctx)) -OSSL_CORE_MAKE_FUNC(void, digest_copyctx, (void *outctx, void *inctx)) - -OSSL_CORE_MAKE_FUNC(int, digest_get_params, (OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, digest_set_ctx_params, - (void *vctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, digest_get_ctx_params, - (void *vctx, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, digest_gettable_params, - (void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, digest_settable_ctx_params, - (void *dctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, digest_gettable_ctx_params, - (void *dctx, void *provctx)) - -/* Symmetric Ciphers */ - -# define OSSL_FUNC_CIPHER_NEWCTX 1 -# define OSSL_FUNC_CIPHER_ENCRYPT_INIT 2 -# define OSSL_FUNC_CIPHER_DECRYPT_INIT 3 -# define OSSL_FUNC_CIPHER_UPDATE 4 -# define OSSL_FUNC_CIPHER_FINAL 5 -# define OSSL_FUNC_CIPHER_CIPHER 6 -# define OSSL_FUNC_CIPHER_FREECTX 7 -# define OSSL_FUNC_CIPHER_DUPCTX 8 -# define OSSL_FUNC_CIPHER_GET_PARAMS 9 -# define OSSL_FUNC_CIPHER_GET_CTX_PARAMS 10 -# define OSSL_FUNC_CIPHER_SET_CTX_PARAMS 11 -# define OSSL_FUNC_CIPHER_GETTABLE_PARAMS 12 -# define OSSL_FUNC_CIPHER_GETTABLE_CTX_PARAMS 13 -# define OSSL_FUNC_CIPHER_SETTABLE_CTX_PARAMS 14 -# define OSSL_FUNC_CIPHER_PIPELINE_ENCRYPT_INIT 15 -# define OSSL_FUNC_CIPHER_PIPELINE_DECRYPT_INIT 16 -# define OSSL_FUNC_CIPHER_PIPELINE_UPDATE 17 -# define OSSL_FUNC_CIPHER_PIPELINE_FINAL 18 -# define OSSL_FUNC_CIPHER_ENCRYPT_SKEY_INIT 19 -# define OSSL_FUNC_CIPHER_DECRYPT_SKEY_INIT 20 - -OSSL_CORE_MAKE_FUNC(void *, cipher_newctx, (void *provctx)) -OSSL_CORE_MAKE_FUNC(int, cipher_encrypt_init, (void *cctx, - const unsigned char *key, - size_t keylen, - const unsigned char *iv, - size_t ivlen, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, cipher_decrypt_init, (void *cctx, - const unsigned char *key, - size_t keylen, - const unsigned char *iv, - size_t ivlen, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, cipher_update, - (void *cctx, - unsigned char *out, size_t *outl, size_t outsize, - const unsigned char *in, size_t inl)) -OSSL_CORE_MAKE_FUNC(int, cipher_final, - (void *cctx, - unsigned char *out, size_t *outl, size_t outsize)) -OSSL_CORE_MAKE_FUNC(int, cipher_cipher, - (void *cctx, - unsigned char *out, size_t *outl, size_t outsize, - const unsigned char *in, size_t inl)) -OSSL_CORE_MAKE_FUNC(int, cipher_pipeline_encrypt_init, - (void *cctx, - const unsigned char *key, size_t keylen, - size_t numpipes, const unsigned char **iv, size_t ivlen, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, cipher_pipeline_decrypt_init, - (void *cctx, - const unsigned char *key, size_t keylen, - size_t numpipes, const unsigned char **iv, size_t ivlen, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, cipher_pipeline_update, - (void *cctx, size_t numpipes, - unsigned char **out, size_t *outl, const size_t *outsize, - const unsigned char **in, const size_t *inl)) -OSSL_CORE_MAKE_FUNC(int, cipher_pipeline_final, - (void *cctx, size_t numpipes, - unsigned char **out, size_t *outl, const size_t *outsize)) -OSSL_CORE_MAKE_FUNC(void, cipher_freectx, (void *cctx)) -OSSL_CORE_MAKE_FUNC(void *, cipher_dupctx, (void *cctx)) -OSSL_CORE_MAKE_FUNC(int, cipher_get_params, (OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, cipher_get_ctx_params, (void *cctx, - OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, cipher_set_ctx_params, (void *cctx, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, cipher_gettable_params, - (void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, cipher_settable_ctx_params, - (void *cctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, cipher_gettable_ctx_params, - (void *cctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int, cipher_encrypt_skey_init, (void *cctx, - void *skeydata, - const unsigned char *iv, - size_t ivlen, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, cipher_decrypt_skey_init, (void *cctx, - void *skeydata, - const unsigned char *iv, - size_t ivlen, - const OSSL_PARAM params[])) - -/* MACs */ - -# define OSSL_FUNC_MAC_NEWCTX 1 -# define OSSL_FUNC_MAC_DUPCTX 2 -# define OSSL_FUNC_MAC_FREECTX 3 -# define OSSL_FUNC_MAC_INIT 4 -# define OSSL_FUNC_MAC_UPDATE 5 -# define OSSL_FUNC_MAC_FINAL 6 -# define OSSL_FUNC_MAC_GET_PARAMS 7 -# define OSSL_FUNC_MAC_GET_CTX_PARAMS 8 -# define OSSL_FUNC_MAC_SET_CTX_PARAMS 9 -# define OSSL_FUNC_MAC_GETTABLE_PARAMS 10 -# define OSSL_FUNC_MAC_GETTABLE_CTX_PARAMS 11 -# define OSSL_FUNC_MAC_SETTABLE_CTX_PARAMS 12 -# define OSSL_FUNC_MAC_INIT_SKEY 13 - -OSSL_CORE_MAKE_FUNC(void *, mac_newctx, (void *provctx)) -OSSL_CORE_MAKE_FUNC(void *, mac_dupctx, (void *src)) -OSSL_CORE_MAKE_FUNC(void, mac_freectx, (void *mctx)) -OSSL_CORE_MAKE_FUNC(int, mac_init, (void *mctx, const unsigned char *key, - size_t keylen, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, mac_update, - (void *mctx, const unsigned char *in, size_t inl)) -OSSL_CORE_MAKE_FUNC(int, mac_final, - (void *mctx, - unsigned char *out, size_t *outl, size_t outsize)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, mac_gettable_params, (void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, mac_gettable_ctx_params, - (void *mctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, mac_settable_ctx_params, - (void *mctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int, mac_get_params, (OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, mac_get_ctx_params, - (void *mctx, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, mac_set_ctx_params, - (void *mctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, mac_init_skey, (void *mctx, void *key, const OSSL_PARAM params[])) - -/*- - * Symmetric key management - * - * The Key Management takes care of provider side of symmetric key objects, and - * includes essentially everything that manipulates the keys themselves and - * their parameters. - * - * The key objects are commonly referred to as |keydata|, and it MUST be able - * to contain parameters if the key has any, and the secret key. - * - * Key objects are created with OSSL_FUNC_skeymgmt_import() (there is no - * dedicated memory allocation function), exported with - * OSSL_FUNC_skeymgmt_export() and destroyed with OSSL_FUNC_keymgmt_free(). - * - */ - -/* Key data subset selection - individual bits */ -# define OSSL_SKEYMGMT_SELECT_PARAMETERS 0x01 -# define OSSL_SKEYMGMT_SELECT_SECRET_KEY 0x02 - -/* Key data subset selection - combinations */ -# define OSSL_SKEYMGMT_SELECT_ALL \ - (OSSL_SKEYMGMT_SELECT_PARAMETERS | OSSL_SKEYMGMT_SELECT_SECRET_KEY) - -# define OSSL_FUNC_SKEYMGMT_FREE 1 -# define OSSL_FUNC_SKEYMGMT_IMPORT 2 -# define OSSL_FUNC_SKEYMGMT_EXPORT 3 -# define OSSL_FUNC_SKEYMGMT_GENERATE 4 -# define OSSL_FUNC_SKEYMGMT_GET_KEY_ID 5 -# define OSSL_FUNC_SKEYMGMT_IMP_SETTABLE_PARAMS 6 -# define OSSL_FUNC_SKEYMGMT_GEN_SETTABLE_PARAMS 7 - -OSSL_CORE_MAKE_FUNC(void, skeymgmt_free, (void *keydata)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, - skeymgmt_imp_settable_params, (void *provctx)) -OSSL_CORE_MAKE_FUNC(void *, skeymgmt_import, (void *provctx, int selection, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, skeymgmt_export, - (void *keydata, int selection, - OSSL_CALLBACK *param_cb, void *cbarg)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, - skeymgmt_gen_settable_params, (void *provctx)) -OSSL_CORE_MAKE_FUNC(void *, skeymgmt_generate, (void *provctx, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const char *, skeymgmt_get_key_id, (void *keydata)) - -/* KDFs and PRFs */ - -# define OSSL_FUNC_KDF_NEWCTX 1 -# define OSSL_FUNC_KDF_DUPCTX 2 -# define OSSL_FUNC_KDF_FREECTX 3 -# define OSSL_FUNC_KDF_RESET 4 -# define OSSL_FUNC_KDF_DERIVE 5 -# define OSSL_FUNC_KDF_GETTABLE_PARAMS 6 -# define OSSL_FUNC_KDF_GETTABLE_CTX_PARAMS 7 -# define OSSL_FUNC_KDF_SETTABLE_CTX_PARAMS 8 -# define OSSL_FUNC_KDF_GET_PARAMS 9 -# define OSSL_FUNC_KDF_GET_CTX_PARAMS 10 -# define OSSL_FUNC_KDF_SET_CTX_PARAMS 11 -# define OSSL_FUNC_KDF_SET_SKEY 12 -# define OSSL_FUNC_KDF_DERIVE_SKEY 13 - -OSSL_CORE_MAKE_FUNC(void *, kdf_newctx, (void *provctx)) -OSSL_CORE_MAKE_FUNC(void *, kdf_dupctx, (void *src)) -OSSL_CORE_MAKE_FUNC(void, kdf_freectx, (void *kctx)) -OSSL_CORE_MAKE_FUNC(void, kdf_reset, (void *kctx)) -OSSL_CORE_MAKE_FUNC(int, kdf_derive, (void *kctx, unsigned char *key, - size_t keylen, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, kdf_gettable_params, (void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, kdf_gettable_ctx_params, - (void *kctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, kdf_settable_ctx_params, - (void *kctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int, kdf_get_params, (OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, kdf_get_ctx_params, - (void *kctx, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, kdf_set_ctx_params, - (void *kctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, kdf_set_skey, - (void *kctx, void *skeydata, const char *paramname)) -OSSL_CORE_MAKE_FUNC(void *, kdf_derive_skey, (void *ctx, const char *key_type, void *provctx, - OSSL_FUNC_skeymgmt_import_fn *import, - size_t keylen, const OSSL_PARAM params[])) - -/* RAND */ - -# define OSSL_FUNC_RAND_NEWCTX 1 -# define OSSL_FUNC_RAND_FREECTX 2 -# define OSSL_FUNC_RAND_INSTANTIATE 3 -# define OSSL_FUNC_RAND_UNINSTANTIATE 4 -# define OSSL_FUNC_RAND_GENERATE 5 -# define OSSL_FUNC_RAND_RESEED 6 -# define OSSL_FUNC_RAND_NONCE 7 -# define OSSL_FUNC_RAND_ENABLE_LOCKING 8 -# define OSSL_FUNC_RAND_LOCK 9 -# define OSSL_FUNC_RAND_UNLOCK 10 -# define OSSL_FUNC_RAND_GETTABLE_PARAMS 11 -# define OSSL_FUNC_RAND_GETTABLE_CTX_PARAMS 12 -# define OSSL_FUNC_RAND_SETTABLE_CTX_PARAMS 13 -# define OSSL_FUNC_RAND_GET_PARAMS 14 -# define OSSL_FUNC_RAND_GET_CTX_PARAMS 15 -# define OSSL_FUNC_RAND_SET_CTX_PARAMS 16 -# define OSSL_FUNC_RAND_VERIFY_ZEROIZATION 17 -# define OSSL_FUNC_RAND_GET_SEED 18 -# define OSSL_FUNC_RAND_CLEAR_SEED 19 - -OSSL_CORE_MAKE_FUNC(void *,rand_newctx, - (void *provctx, void *parent, - const OSSL_DISPATCH *parent_calls)) -OSSL_CORE_MAKE_FUNC(void,rand_freectx, (void *vctx)) -OSSL_CORE_MAKE_FUNC(int,rand_instantiate, - (void *vdrbg, unsigned int strength, - int prediction_resistance, - const unsigned char *pstr, size_t pstr_len, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int,rand_uninstantiate, (void *vdrbg)) -OSSL_CORE_MAKE_FUNC(int,rand_generate, - (void *vctx, unsigned char *out, size_t outlen, - unsigned int strength, int prediction_resistance, - const unsigned char *addin, size_t addin_len)) -OSSL_CORE_MAKE_FUNC(int,rand_reseed, - (void *vctx, int prediction_resistance, - const unsigned char *ent, size_t ent_len, - const unsigned char *addin, size_t addin_len)) -OSSL_CORE_MAKE_FUNC(size_t,rand_nonce, - (void *vctx, unsigned char *out, unsigned int strength, - size_t min_noncelen, size_t max_noncelen)) -OSSL_CORE_MAKE_FUNC(int,rand_enable_locking, (void *vctx)) -OSSL_CORE_MAKE_FUNC(int,rand_lock, (void *vctx)) -OSSL_CORE_MAKE_FUNC(void,rand_unlock, (void *vctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *,rand_gettable_params, (void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *,rand_gettable_ctx_params, - (void *vctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *,rand_settable_ctx_params, - (void *vctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int,rand_get_params, (OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int,rand_get_ctx_params, - (void *vctx, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int,rand_set_ctx_params, - (void *vctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(void,rand_set_callbacks, - (void *vctx, OSSL_INOUT_CALLBACK *get_entropy, - OSSL_CALLBACK *cleanup_entropy, - OSSL_INOUT_CALLBACK *get_nonce, - OSSL_CALLBACK *cleanup_nonce, void *arg)) -OSSL_CORE_MAKE_FUNC(int,rand_verify_zeroization, - (void *vctx)) -OSSL_CORE_MAKE_FUNC(size_t,rand_get_seed, - (void *vctx, unsigned char **buffer, - int entropy, size_t min_len, size_t max_len, - int prediction_resistance, - const unsigned char *adin, size_t adin_len)) -OSSL_CORE_MAKE_FUNC(void,rand_clear_seed, - (void *vctx, unsigned char *buffer, size_t b_len)) - -/*- - * Key management - * - * The Key Management takes care of provider side key objects, and includes - * all current functionality to create them, destroy them, set parameters - * and key material, etc, essentially everything that manipulates the keys - * themselves and their parameters. - * - * The key objects are commonly referred to as |keydata|, and it MUST be able - * to contain parameters if the key has any, the public key and the private - * key. All parts are optional, but their presence determines what can be - * done with the key object in terms of encryption, signature, and so on. - * The assumption from libcrypto is that the key object contains any of the - * following data combinations: - * - * - parameters only - * - public key only - * - public key + private key - * - parameters + public key - * - parameters + public key + private key - * - * What "parameters", "public key" and "private key" means in detail is left - * to the implementation. In the case of DH and DSA, they would typically - * include domain parameters, while for certain variants of RSA, they would - * typically include PSS or OAEP parameters. - * - * Key objects are created with OSSL_FUNC_keymgmt_new() and destroyed with - * OSSL_FUNC_keymgmt_free(). Key objects can have data filled in with - * OSSL_FUNC_keymgmt_import(). - * - * Three functions are made available to check what selection of data is - * present in a key object: OSSL_FUNC_keymgmt_has_parameters(), - * OSSL_FUNC_keymgmt_has_public_key(), and OSSL_FUNC_keymgmt_has_private_key(), - */ - -/* Key data subset selection - individual bits */ -# define OSSL_KEYMGMT_SELECT_PRIVATE_KEY 0x01 -# define OSSL_KEYMGMT_SELECT_PUBLIC_KEY 0x02 -# define OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS 0x04 -# define OSSL_KEYMGMT_SELECT_OTHER_PARAMETERS 0x80 - -/* Key data subset selection - combinations */ -# define OSSL_KEYMGMT_SELECT_ALL_PARAMETERS \ - ( OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS \ - | OSSL_KEYMGMT_SELECT_OTHER_PARAMETERS) -# define OSSL_KEYMGMT_SELECT_KEYPAIR \ - ( OSSL_KEYMGMT_SELECT_PRIVATE_KEY | OSSL_KEYMGMT_SELECT_PUBLIC_KEY ) -# define OSSL_KEYMGMT_SELECT_ALL \ - ( OSSL_KEYMGMT_SELECT_KEYPAIR | OSSL_KEYMGMT_SELECT_ALL_PARAMETERS ) - -# define OSSL_KEYMGMT_VALIDATE_FULL_CHECK 0 -# define OSSL_KEYMGMT_VALIDATE_QUICK_CHECK 1 - -/* Basic key object creation */ -# define OSSL_FUNC_KEYMGMT_NEW 1 -OSSL_CORE_MAKE_FUNC(void *, keymgmt_new, (void *provctx)) - -/* Generation, a more complex constructor */ -# define OSSL_FUNC_KEYMGMT_GEN_INIT 2 -# define OSSL_FUNC_KEYMGMT_GEN_SET_TEMPLATE 3 -# define OSSL_FUNC_KEYMGMT_GEN_SET_PARAMS 4 -# define OSSL_FUNC_KEYMGMT_GEN_SETTABLE_PARAMS 5 -# define OSSL_FUNC_KEYMGMT_GEN 6 -# define OSSL_FUNC_KEYMGMT_GEN_CLEANUP 7 -# define OSSL_FUNC_KEYMGMT_GEN_GET_PARAMS 15 -# define OSSL_FUNC_KEYMGMT_GEN_GETTABLE_PARAMS 16 - -OSSL_CORE_MAKE_FUNC(void *, keymgmt_gen_init, - (void *provctx, int selection, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, keymgmt_gen_set_template, - (void *genctx, void *templ)) -OSSL_CORE_MAKE_FUNC(int, keymgmt_gen_set_params, - (void *genctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, - keymgmt_gen_settable_params, - (void *genctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int, keymgmt_gen_get_params, - (void *genctx, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keymgmt_gen_gettable_params, - (void *genctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(void *, keymgmt_gen, - (void *genctx, OSSL_CALLBACK *cb, void *cbarg)) -OSSL_CORE_MAKE_FUNC(void, keymgmt_gen_cleanup, (void *genctx)) - -/* Key loading by object reference */ -# define OSSL_FUNC_KEYMGMT_LOAD 8 -OSSL_CORE_MAKE_FUNC(void *, keymgmt_load, - (const void *reference, size_t reference_sz)) - -/* Basic key object destruction */ -# define OSSL_FUNC_KEYMGMT_FREE 10 -OSSL_CORE_MAKE_FUNC(void, keymgmt_free, (void *keydata)) - -/* Key object information, with discovery */ -#define OSSL_FUNC_KEYMGMT_GET_PARAMS 11 -#define OSSL_FUNC_KEYMGMT_GETTABLE_PARAMS 12 -OSSL_CORE_MAKE_FUNC(int, keymgmt_get_params, - (void *keydata, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keymgmt_gettable_params, - (void *provctx)) - -#define OSSL_FUNC_KEYMGMT_SET_PARAMS 13 -#define OSSL_FUNC_KEYMGMT_SETTABLE_PARAMS 14 -OSSL_CORE_MAKE_FUNC(int, keymgmt_set_params, - (void *keydata, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keymgmt_settable_params, - (void *provctx)) - -/* Key checks - discovery of supported operations */ -# define OSSL_FUNC_KEYMGMT_QUERY_OPERATION_NAME 20 -OSSL_CORE_MAKE_FUNC(const char *, keymgmt_query_operation_name, - (int operation_id)) - -/* Key checks - key data content checks */ -# define OSSL_FUNC_KEYMGMT_HAS 21 -OSSL_CORE_MAKE_FUNC(int, keymgmt_has, (const void *keydata, int selection)) - -/* Key checks - validation */ -# define OSSL_FUNC_KEYMGMT_VALIDATE 22 -OSSL_CORE_MAKE_FUNC(int, keymgmt_validate, (const void *keydata, int selection, - int checktype)) - -/* Key checks - matching */ -# define OSSL_FUNC_KEYMGMT_MATCH 23 -OSSL_CORE_MAKE_FUNC(int, keymgmt_match, - (const void *keydata1, const void *keydata2, - int selection)) - -/* Import and export functions, with discovery */ -# define OSSL_FUNC_KEYMGMT_IMPORT 40 -# define OSSL_FUNC_KEYMGMT_IMPORT_TYPES 41 -# define OSSL_FUNC_KEYMGMT_EXPORT 42 -# define OSSL_FUNC_KEYMGMT_EXPORT_TYPES 43 -OSSL_CORE_MAKE_FUNC(int, keymgmt_import, - (void *keydata, int selection, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keymgmt_import_types, - (int selection)) -OSSL_CORE_MAKE_FUNC(int, keymgmt_export, - (void *keydata, int selection, - OSSL_CALLBACK *param_cb, void *cbarg)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keymgmt_export_types, - (int selection)) - -/* Dup function, constructor */ -# define OSSL_FUNC_KEYMGMT_DUP 44 -OSSL_CORE_MAKE_FUNC(void *, keymgmt_dup, - (const void *keydata_from, int selection)) - -/* Extended import and export functions */ -# define OSSL_FUNC_KEYMGMT_IMPORT_TYPES_EX 45 -# define OSSL_FUNC_KEYMGMT_EXPORT_TYPES_EX 46 -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keymgmt_import_types_ex, - (void *provctx, int selection)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keymgmt_export_types_ex, - (void *provctx, int selection)) - -/* Key Exchange */ - -# define OSSL_FUNC_KEYEXCH_NEWCTX 1 -# define OSSL_FUNC_KEYEXCH_INIT 2 -# define OSSL_FUNC_KEYEXCH_DERIVE 3 -# define OSSL_FUNC_KEYEXCH_SET_PEER 4 -# define OSSL_FUNC_KEYEXCH_FREECTX 5 -# define OSSL_FUNC_KEYEXCH_DUPCTX 6 -# define OSSL_FUNC_KEYEXCH_SET_CTX_PARAMS 7 -# define OSSL_FUNC_KEYEXCH_SETTABLE_CTX_PARAMS 8 -# define OSSL_FUNC_KEYEXCH_GET_CTX_PARAMS 9 -# define OSSL_FUNC_KEYEXCH_GETTABLE_CTX_PARAMS 10 -# define OSSL_FUNC_KEYEXCH_DERIVE_SKEY 11 - -OSSL_CORE_MAKE_FUNC(void *, keyexch_newctx, (void *provctx)) -OSSL_CORE_MAKE_FUNC(int, keyexch_init, (void *ctx, void *provkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, keyexch_derive, (void *ctx, unsigned char *secret, - size_t *secretlen, size_t outlen)) -OSSL_CORE_MAKE_FUNC(int, keyexch_set_peer, (void *ctx, void *provkey)) -OSSL_CORE_MAKE_FUNC(void, keyexch_freectx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(void *, keyexch_dupctx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(int, keyexch_set_ctx_params, (void *ctx, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keyexch_settable_ctx_params, - (void *ctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int, keyexch_get_ctx_params, (void *ctx, - OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keyexch_gettable_ctx_params, - (void *ctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(void *, keyexch_derive_skey, (void *ctx, const char *key_type, void *provctx, - OSSL_FUNC_skeymgmt_import_fn *import, - size_t keylen, const OSSL_PARAM params[])) - -/* Signature */ - -# define OSSL_FUNC_SIGNATURE_NEWCTX 1 -# define OSSL_FUNC_SIGNATURE_SIGN_INIT 2 -# define OSSL_FUNC_SIGNATURE_SIGN 3 -# define OSSL_FUNC_SIGNATURE_VERIFY_INIT 4 -# define OSSL_FUNC_SIGNATURE_VERIFY 5 -# define OSSL_FUNC_SIGNATURE_VERIFY_RECOVER_INIT 6 -# define OSSL_FUNC_SIGNATURE_VERIFY_RECOVER 7 -# define OSSL_FUNC_SIGNATURE_DIGEST_SIGN_INIT 8 -# define OSSL_FUNC_SIGNATURE_DIGEST_SIGN_UPDATE 9 -# define OSSL_FUNC_SIGNATURE_DIGEST_SIGN_FINAL 10 -# define OSSL_FUNC_SIGNATURE_DIGEST_SIGN 11 -# define OSSL_FUNC_SIGNATURE_DIGEST_VERIFY_INIT 12 -# define OSSL_FUNC_SIGNATURE_DIGEST_VERIFY_UPDATE 13 -# define OSSL_FUNC_SIGNATURE_DIGEST_VERIFY_FINAL 14 -# define OSSL_FUNC_SIGNATURE_DIGEST_VERIFY 15 -# define OSSL_FUNC_SIGNATURE_FREECTX 16 -# define OSSL_FUNC_SIGNATURE_DUPCTX 17 -# define OSSL_FUNC_SIGNATURE_GET_CTX_PARAMS 18 -# define OSSL_FUNC_SIGNATURE_GETTABLE_CTX_PARAMS 19 -# define OSSL_FUNC_SIGNATURE_SET_CTX_PARAMS 20 -# define OSSL_FUNC_SIGNATURE_SETTABLE_CTX_PARAMS 21 -# define OSSL_FUNC_SIGNATURE_GET_CTX_MD_PARAMS 22 -# define OSSL_FUNC_SIGNATURE_GETTABLE_CTX_MD_PARAMS 23 -# define OSSL_FUNC_SIGNATURE_SET_CTX_MD_PARAMS 24 -# define OSSL_FUNC_SIGNATURE_SETTABLE_CTX_MD_PARAMS 25 -# define OSSL_FUNC_SIGNATURE_QUERY_KEY_TYPES 26 -# define OSSL_FUNC_SIGNATURE_SIGN_MESSAGE_INIT 27 -# define OSSL_FUNC_SIGNATURE_SIGN_MESSAGE_UPDATE 28 -# define OSSL_FUNC_SIGNATURE_SIGN_MESSAGE_FINAL 29 -# define OSSL_FUNC_SIGNATURE_VERIFY_MESSAGE_INIT 30 -# define OSSL_FUNC_SIGNATURE_VERIFY_MESSAGE_UPDATE 31 -# define OSSL_FUNC_SIGNATURE_VERIFY_MESSAGE_FINAL 32 - -OSSL_CORE_MAKE_FUNC(void *, signature_newctx, (void *provctx, - const char *propq)) -OSSL_CORE_MAKE_FUNC(int, signature_sign_init, (void *ctx, void *provkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, signature_sign, (void *ctx, unsigned char *sig, - size_t *siglen, size_t sigsize, - const unsigned char *tbs, - size_t tbslen)) -OSSL_CORE_MAKE_FUNC(int, signature_sign_message_init, - (void *ctx, void *provkey, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, signature_sign_message_update, - (void *ctx, const unsigned char *in, size_t inlen)) -OSSL_CORE_MAKE_FUNC(int, signature_sign_message_final, - (void *ctx, unsigned char *sig, - size_t *siglen, size_t sigsize)) -OSSL_CORE_MAKE_FUNC(int, signature_verify_init, (void *ctx, void *provkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, signature_verify, (void *ctx, - const unsigned char *sig, - size_t siglen, - const unsigned char *tbs, - size_t tbslen)) -OSSL_CORE_MAKE_FUNC(int, signature_verify_message_init, - (void *ctx, void *provkey, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, signature_verify_message_update, - (void *ctx, const unsigned char *in, size_t inlen)) -/* - * signature_verify_final requires that the signature to be verified against - * is specified via an OSSL_PARAM. - */ -OSSL_CORE_MAKE_FUNC(int, signature_verify_message_final, (void *ctx)) -OSSL_CORE_MAKE_FUNC(int, signature_verify_recover_init, - (void *ctx, void *provkey, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, signature_verify_recover, - (void *ctx, unsigned char *rout, size_t *routlen, - size_t routsize, const unsigned char *sig, size_t siglen)) -OSSL_CORE_MAKE_FUNC(int, signature_digest_sign_init, - (void *ctx, const char *mdname, void *provkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, signature_digest_sign_update, - (void *ctx, const unsigned char *data, size_t datalen)) -OSSL_CORE_MAKE_FUNC(int, signature_digest_sign_final, - (void *ctx, unsigned char *sig, size_t *siglen, - size_t sigsize)) -OSSL_CORE_MAKE_FUNC(int, signature_digest_sign, - (void *ctx, unsigned char *sigret, size_t *siglen, - size_t sigsize, const unsigned char *tbs, size_t tbslen)) -OSSL_CORE_MAKE_FUNC(int, signature_digest_verify_init, - (void *ctx, const char *mdname, void *provkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, signature_digest_verify_update, - (void *ctx, const unsigned char *data, size_t datalen)) -OSSL_CORE_MAKE_FUNC(int, signature_digest_verify_final, - (void *ctx, const unsigned char *sig, size_t siglen)) -OSSL_CORE_MAKE_FUNC(int, signature_digest_verify, - (void *ctx, const unsigned char *sig, size_t siglen, - const unsigned char *tbs, size_t tbslen)) -OSSL_CORE_MAKE_FUNC(void, signature_freectx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(void *, signature_dupctx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(int, signature_get_ctx_params, - (void *ctx, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, signature_gettable_ctx_params, - (void *ctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int, signature_set_ctx_params, - (void *ctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, signature_settable_ctx_params, - (void *ctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int, signature_get_ctx_md_params, - (void *ctx, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, signature_gettable_ctx_md_params, - (void *ctx)) -OSSL_CORE_MAKE_FUNC(int, signature_set_ctx_md_params, - (void *ctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, signature_settable_ctx_md_params, - (void *ctx)) -OSSL_CORE_MAKE_FUNC(const char **, signature_query_key_types, (void)) - -/* Asymmetric Ciphers */ - -# define OSSL_FUNC_ASYM_CIPHER_NEWCTX 1 -# define OSSL_FUNC_ASYM_CIPHER_ENCRYPT_INIT 2 -# define OSSL_FUNC_ASYM_CIPHER_ENCRYPT 3 -# define OSSL_FUNC_ASYM_CIPHER_DECRYPT_INIT 4 -# define OSSL_FUNC_ASYM_CIPHER_DECRYPT 5 -# define OSSL_FUNC_ASYM_CIPHER_FREECTX 6 -# define OSSL_FUNC_ASYM_CIPHER_DUPCTX 7 -# define OSSL_FUNC_ASYM_CIPHER_GET_CTX_PARAMS 8 -# define OSSL_FUNC_ASYM_CIPHER_GETTABLE_CTX_PARAMS 9 -# define OSSL_FUNC_ASYM_CIPHER_SET_CTX_PARAMS 10 -# define OSSL_FUNC_ASYM_CIPHER_SETTABLE_CTX_PARAMS 11 - -OSSL_CORE_MAKE_FUNC(void *, asym_cipher_newctx, (void *provctx)) -OSSL_CORE_MAKE_FUNC(int, asym_cipher_encrypt_init, (void *ctx, void *provkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, asym_cipher_encrypt, (void *ctx, unsigned char *out, - size_t *outlen, - size_t outsize, - const unsigned char *in, - size_t inlen)) -OSSL_CORE_MAKE_FUNC(int, asym_cipher_decrypt_init, (void *ctx, void *provkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, asym_cipher_decrypt, (void *ctx, unsigned char *out, - size_t *outlen, - size_t outsize, - const unsigned char *in, - size_t inlen)) -OSSL_CORE_MAKE_FUNC(void, asym_cipher_freectx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(void *, asym_cipher_dupctx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(int, asym_cipher_get_ctx_params, - (void *ctx, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, asym_cipher_gettable_ctx_params, - (void *ctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int, asym_cipher_set_ctx_params, - (void *ctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, asym_cipher_settable_ctx_params, - (void *ctx, void *provctx)) - -/* Asymmetric Key encapsulation */ -# define OSSL_FUNC_KEM_NEWCTX 1 -# define OSSL_FUNC_KEM_ENCAPSULATE_INIT 2 -# define OSSL_FUNC_KEM_ENCAPSULATE 3 -# define OSSL_FUNC_KEM_DECAPSULATE_INIT 4 -# define OSSL_FUNC_KEM_DECAPSULATE 5 -# define OSSL_FUNC_KEM_FREECTX 6 -# define OSSL_FUNC_KEM_DUPCTX 7 -# define OSSL_FUNC_KEM_GET_CTX_PARAMS 8 -# define OSSL_FUNC_KEM_GETTABLE_CTX_PARAMS 9 -# define OSSL_FUNC_KEM_SET_CTX_PARAMS 10 -# define OSSL_FUNC_KEM_SETTABLE_CTX_PARAMS 11 -# define OSSL_FUNC_KEM_AUTH_ENCAPSULATE_INIT 12 -# define OSSL_FUNC_KEM_AUTH_DECAPSULATE_INIT 13 - -OSSL_CORE_MAKE_FUNC(void *, kem_newctx, (void *provctx)) -OSSL_CORE_MAKE_FUNC(int, kem_encapsulate_init, (void *ctx, void *provkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, kem_auth_encapsulate_init, (void *ctx, void *provkey, - void *authprivkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, kem_encapsulate, (void *ctx, - unsigned char *out, size_t *outlen, - unsigned char *secret, - size_t *secretlen)) -OSSL_CORE_MAKE_FUNC(int, kem_decapsulate_init, (void *ctx, void *provkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, kem_auth_decapsulate_init, (void *ctx, void *provkey, - void *authpubkey, - const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, kem_decapsulate, (void *ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen)) -OSSL_CORE_MAKE_FUNC(void, kem_freectx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(void *, kem_dupctx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(int, kem_get_ctx_params, (void *ctx, OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, kem_gettable_ctx_params, - (void *ctx, void *provctx)) -OSSL_CORE_MAKE_FUNC(int, kem_set_ctx_params, - (void *ctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, kem_settable_ctx_params, - (void *ctx, void *provctx)) - -/* Encoders and decoders */ -# define OSSL_FUNC_ENCODER_NEWCTX 1 -# define OSSL_FUNC_ENCODER_FREECTX 2 -# define OSSL_FUNC_ENCODER_GET_PARAMS 3 -# define OSSL_FUNC_ENCODER_GETTABLE_PARAMS 4 -# define OSSL_FUNC_ENCODER_SET_CTX_PARAMS 5 -# define OSSL_FUNC_ENCODER_SETTABLE_CTX_PARAMS 6 -# define OSSL_FUNC_ENCODER_DOES_SELECTION 10 -# define OSSL_FUNC_ENCODER_ENCODE 11 -# define OSSL_FUNC_ENCODER_IMPORT_OBJECT 20 -# define OSSL_FUNC_ENCODER_FREE_OBJECT 21 -OSSL_CORE_MAKE_FUNC(void *, encoder_newctx, (void *provctx)) -OSSL_CORE_MAKE_FUNC(void, encoder_freectx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(int, encoder_get_params, (OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, encoder_gettable_params, - (void *provctx)) -OSSL_CORE_MAKE_FUNC(int, encoder_set_ctx_params, - (void *ctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, encoder_settable_ctx_params, - (void *provctx)) - -OSSL_CORE_MAKE_FUNC(int, encoder_does_selection, - (void *provctx, int selection)) -OSSL_CORE_MAKE_FUNC(int, encoder_encode, - (void *ctx, OSSL_CORE_BIO *out, - const void *obj_raw, const OSSL_PARAM obj_abstract[], - int selection, - OSSL_PASSPHRASE_CALLBACK *cb, void *cbarg)) - -OSSL_CORE_MAKE_FUNC(void *, encoder_import_object, - (void *ctx, int selection, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(void, encoder_free_object, (void *obj)) - -# define OSSL_FUNC_DECODER_NEWCTX 1 -# define OSSL_FUNC_DECODER_FREECTX 2 -# define OSSL_FUNC_DECODER_GET_PARAMS 3 -# define OSSL_FUNC_DECODER_GETTABLE_PARAMS 4 -# define OSSL_FUNC_DECODER_SET_CTX_PARAMS 5 -# define OSSL_FUNC_DECODER_SETTABLE_CTX_PARAMS 6 -# define OSSL_FUNC_DECODER_DOES_SELECTION 10 -# define OSSL_FUNC_DECODER_DECODE 11 -# define OSSL_FUNC_DECODER_EXPORT_OBJECT 20 -OSSL_CORE_MAKE_FUNC(void *, decoder_newctx, (void *provctx)) -OSSL_CORE_MAKE_FUNC(void, decoder_freectx, (void *ctx)) -OSSL_CORE_MAKE_FUNC(int, decoder_get_params, (OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, decoder_gettable_params, - (void *provctx)) -OSSL_CORE_MAKE_FUNC(int, decoder_set_ctx_params, - (void *ctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, decoder_settable_ctx_params, - (void *provctx)) - -OSSL_CORE_MAKE_FUNC(int, decoder_does_selection, - (void *provctx, int selection)) -OSSL_CORE_MAKE_FUNC(int, decoder_decode, - (void *ctx, OSSL_CORE_BIO *in, int selection, - OSSL_CALLBACK *data_cb, void *data_cbarg, - OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)) -OSSL_CORE_MAKE_FUNC(int, decoder_export_object, - (void *ctx, const void *objref, size_t objref_sz, - OSSL_CALLBACK *export_cb, void *export_cbarg)) - -/*- - * Store - * - * Objects are scanned by using the 'open', 'load', 'eof' and 'close' - * functions, which implement an OSSL_STORE loader. - * - * store_load() works in a way that's very similar to the decoders, in - * that they pass an abstract object through a callback, either as a DER - * octet string or as an object reference, which libcrypto will have to - * deal with. - */ - -#define OSSL_FUNC_STORE_OPEN 1 -#define OSSL_FUNC_STORE_ATTACH 2 -#define OSSL_FUNC_STORE_SETTABLE_CTX_PARAMS 3 -#define OSSL_FUNC_STORE_SET_CTX_PARAMS 4 -#define OSSL_FUNC_STORE_LOAD 5 -#define OSSL_FUNC_STORE_EOF 6 -#define OSSL_FUNC_STORE_CLOSE 7 -#define OSSL_FUNC_STORE_EXPORT_OBJECT 8 -#define OSSL_FUNC_STORE_DELETE 9 -#define OSSL_FUNC_STORE_OPEN_EX 10 -OSSL_CORE_MAKE_FUNC(void *, store_open, (void *provctx, const char *uri)) -OSSL_CORE_MAKE_FUNC(void *, store_attach, (void *provctx, OSSL_CORE_BIO *in)) -OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, store_settable_ctx_params, - (void *provctx)) -OSSL_CORE_MAKE_FUNC(int, store_set_ctx_params, - (void *loaderctx, const OSSL_PARAM params[])) -OSSL_CORE_MAKE_FUNC(int, store_load, - (void *loaderctx, - OSSL_CALLBACK *object_cb, void *object_cbarg, - OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)) -OSSL_CORE_MAKE_FUNC(int, store_eof, (void *loaderctx)) -OSSL_CORE_MAKE_FUNC(int, store_close, (void *loaderctx)) -OSSL_CORE_MAKE_FUNC(int, store_export_object, - (void *loaderctx, const void *objref, size_t objref_sz, - OSSL_CALLBACK *export_cb, void *export_cbarg)) -OSSL_CORE_MAKE_FUNC(int, store_delete, - (void *provctx, const char *uri, const OSSL_PARAM params[], - OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)) -OSSL_CORE_MAKE_FUNC(void *, store_open_ex, - (void *provctx, const char *uri, const OSSL_PARAM params[], - OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)) - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/core_names.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/core_names.h deleted file mode 100644 index aa9d899..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/core_names.h +++ /dev/null @@ -1,584 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\core_names.h.in - * - * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - -#ifndef OPENSSL_CORE_NAMES_H -# define OPENSSL_CORE_NAMES_H -# pragma once - -# ifdef __cplusplus -extern "C" { -# endif - -/* OSSL_CIPHER_PARAM_CTS_MODE Values */ -# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" -# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" -# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" - -/* Known CIPHER names (not a complete list) */ -# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" -# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" -# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" - -/* Known DIGEST names (not a complete list) */ -# define OSSL_DIGEST_NAME_MD5 "MD5" -# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" -# define OSSL_DIGEST_NAME_SHA1 "SHA1" -# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" -# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" -# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" -# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" -# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" -# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" -# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" -# define OSSL_DIGEST_NAME_MD2 "MD2" -# define OSSL_DIGEST_NAME_MD4 "MD4" -# define OSSL_DIGEST_NAME_MDC2 "MDC2" -# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" -# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" -# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" -# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" -# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" -# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" -# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" -# define OSSL_DIGEST_NAME_SM3 "SM3" - -/* Known MAC names */ -# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" -# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" -# define OSSL_MAC_NAME_CMAC "CMAC" -# define OSSL_MAC_NAME_GMAC "GMAC" -# define OSSL_MAC_NAME_HMAC "HMAC" -# define OSSL_MAC_NAME_KMAC128 "KMAC128" -# define OSSL_MAC_NAME_KMAC256 "KMAC256" -# define OSSL_MAC_NAME_POLY1305 "POLY1305" -# define OSSL_MAC_NAME_SIPHASH "SIPHASH" - -/* Known KDF names */ -# define OSSL_KDF_NAME_HKDF "HKDF" -# define OSSL_KDF_NAME_HKDF_SHA256 "HKDF-SHA256" -# define OSSL_KDF_NAME_HKDF_SHA384 "HKDF-SHA384" -# define OSSL_KDF_NAME_HKDF_SHA512 "HKDF-SHA512" -# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" -# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" -# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" -# define OSSL_KDF_NAME_SCRYPT "SCRYPT" -# define OSSL_KDF_NAME_SSHKDF "SSHKDF" -# define OSSL_KDF_NAME_SSKDF "SSKDF" -# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" -# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" -# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" -# define OSSL_KDF_NAME_X963KDF "X963KDF" -# define OSSL_KDF_NAME_KBKDF "KBKDF" -# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" -# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" - -/* RSA padding modes */ -# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" -# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" -# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" -# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" -# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" - -/* RSA pss padding salt length */ -# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" -# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" -# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" -# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" - -/* OSSL_PKEY_PARAM_EC_ENCODING values */ -# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" -# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" - -# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" -# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" -# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" - -# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" -# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" -# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" - -/* PROV_SKEY well known key types */ -# define OSSL_SKEY_TYPE_GENERIC "GENERIC-SECRET" -# define OSSL_SKEY_TYPE_AES "AES" - -/* OSSL_KEM_PARAM_OPERATION values */ -#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" -#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" - -/* Provider configuration variables */ -#define OSSL_PKEY_RETAIN_SEED "pkey_retain_seed" - -/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ -# define OSSL_ALG_PARAM_ALGORITHM_ID "algorithm-id" -# define OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS "algorithm-id-params" -# define OSSL_ALG_PARAM_CIPHER "cipher" -# define OSSL_ALG_PARAM_DIGEST "digest" -# define OSSL_ALG_PARAM_ENGINE "engine" -# define OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR "fips-indicator" -# define OSSL_ALG_PARAM_MAC "mac" -# define OSSL_ALG_PARAM_PROPERTIES "properties" -# define OSSL_ALG_PARAM_SECURITY_CATEGORY "security-category" -# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST -# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE -# define OSSL_ASYM_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_ASYM_CIPHER_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK -# define OSSL_ASYM_CIPHER_PARAM_FIPS_RSA_PKCS15_PAD_DISABLED OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED -# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" -# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST -# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES -# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST -# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" -# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" -# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE -# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES -# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" -# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" -# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" -# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" -# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" -# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" -# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" -# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" -# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" -# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" -# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" -# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" -# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" -# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" -# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" -# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" -# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" -# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" -# define OSSL_CAPABILITY_TLS_SIGALG_MAX_DTLS "tls-max-dtls" -# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" -# define OSSL_CAPABILITY_TLS_SIGALG_MIN_DTLS "tls-min-dtls" -# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" -# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" -# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" -# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" -# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" -# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" -# define OSSL_CIPHER_HMAC_PARAM_MAC OSSL_CIPHER_PARAM_AEAD_TAG -# define OSSL_CIPHER_PARAM_AEAD "aead" -# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN -# define OSSL_CIPHER_PARAM_AEAD_IV_GENERATED "iv-generated" -# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" -# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" -# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" -# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" -# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" -# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" -# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" -# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" -# define OSSL_CIPHER_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID -# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS -# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS_OLD "alg_id_param" -# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" -# define OSSL_CIPHER_PARAM_CTS "cts" -# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" -# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" -# define OSSL_CIPHER_PARAM_DECRYPT_ONLY "decrypt-only" -# define OSSL_CIPHER_PARAM_ENCRYPT_THEN_MAC "encrypt-then-mac" -# define OSSL_CIPHER_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_CIPHER_PARAM_FIPS_ENCRYPT_CHECK "encrypt-check" -# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" -# define OSSL_CIPHER_PARAM_IV "iv" -# define OSSL_CIPHER_PARAM_IVLEN "ivlen" -# define OSSL_CIPHER_PARAM_KEYLEN "keylen" -# define OSSL_CIPHER_PARAM_MODE "mode" -# define OSSL_CIPHER_PARAM_NUM "num" -# define OSSL_CIPHER_PARAM_PADDING "padding" -# define OSSL_CIPHER_PARAM_PIPELINE_AEAD_TAG "pipeline-tag" -# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" -# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" -# define OSSL_CIPHER_PARAM_ROUNDS "rounds" -# define OSSL_CIPHER_PARAM_SPEED "speed" -# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" -# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" -# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" -# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" -# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" -# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" -# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" -# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" -# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" -# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" -# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" -# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" -# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" -# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" -# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" -# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES -# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" -# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" -# define OSSL_DIGEST_PARAM_MICALG "micalg" -# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" -# define OSSL_DIGEST_PARAM_SIZE "size" -# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" -# define OSSL_DIGEST_PARAM_XOF "xof" -# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" -# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER -# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST -# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" -# define OSSL_DRBG_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_DRBG_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK -# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC -# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" -# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" -# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" -# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" -# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" -# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" -# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" -# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" -# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" -# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES -# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" -# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" -# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" -# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" -# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" -# define OSSL_DRBG_PARAM_SIZE "size" -# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" -# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER -# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" -# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES -# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" -# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" -# define OSSL_EXCHANGE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_EXCHANGE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK -# define OSSL_EXCHANGE_PARAM_FIPS_ECDH_COFACTOR_CHECK OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK -# define OSSL_EXCHANGE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK -# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" -# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" -# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" -# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" -# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" -# define OSSL_EXCHANGE_PARAM_PAD "pad" -# define OSSL_GEN_PARAM_ITERATION "iteration" -# define OSSL_GEN_PARAM_POTENTIAL "potential" -# define OSSL_KDF_PARAM_ARGON2_AD "ad" -# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" -# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" -# define OSSL_KDF_PARAM_ARGON2_VERSION "version" -# define OSSL_KDF_PARAM_CEK_ALG "cekalg" -# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER -# define OSSL_KDF_PARAM_CONSTANT "constant" -# define OSSL_KDF_PARAM_DATA "data" -# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST -# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" -# define OSSL_KDF_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_KDF_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK -# define OSSL_KDF_PARAM_FIPS_EMS_CHECK "ems_check" -# define OSSL_KDF_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK -# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" -# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" -# define OSSL_KDF_PARAM_INFO "info" -# define OSSL_KDF_PARAM_ITER "iter" -# define OSSL_KDF_PARAM_KBKDF_R "r" -# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" -# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" -# define OSSL_KDF_PARAM_KEY "key" -# define OSSL_KDF_PARAM_LABEL "label" -# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC -# define OSSL_KDF_PARAM_MAC_SIZE "maclen" -# define OSSL_KDF_PARAM_MODE "mode" -# define OSSL_KDF_PARAM_PASSWORD "pass" -# define OSSL_KDF_PARAM_PKCS12_ID "id" -# define OSSL_KDF_PARAM_PKCS5 "pkcs5" -# define OSSL_KDF_PARAM_PREFIX "prefix" -# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES -# define OSSL_KDF_PARAM_SALT "salt" -# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" -# define OSSL_KDF_PARAM_SCRYPT_N "n" -# define OSSL_KDF_PARAM_SCRYPT_P "p" -# define OSSL_KDF_PARAM_SCRYPT_R "r" -# define OSSL_KDF_PARAM_SECRET "secret" -# define OSSL_KDF_PARAM_SEED "seed" -# define OSSL_KDF_PARAM_SIZE "size" -# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" -# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" -# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" -# define OSSL_KDF_PARAM_THREADS "threads" -# define OSSL_KDF_PARAM_UKM "ukm" -# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" -# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" -# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" -# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" -# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" -# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" -# define OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_KEM_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK -# define OSSL_KEM_PARAM_IKME "ikme" -# define OSSL_KEM_PARAM_OPERATION "operation" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_HS_PADDING "hs_padding" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" -# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" -# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" -# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" -# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER -# define OSSL_MAC_PARAM_CUSTOM "custom" -# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" -# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST -# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" -# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" -# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" -# define OSSL_MAC_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_MAC_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK -# define OSSL_MAC_PARAM_FIPS_NO_SHORT_MAC OSSL_PROV_PARAM_NO_SHORT_MAC -# define OSSL_MAC_PARAM_IV "iv" -# define OSSL_MAC_PARAM_KEY "key" -# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES -# define OSSL_MAC_PARAM_SALT "salt" -# define OSSL_MAC_PARAM_SIZE "size" -# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" -# define OSSL_MAC_PARAM_XOF "xof" -# define OSSL_OBJECT_PARAM_DATA "data" -# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" -# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" -# define OSSL_OBJECT_PARAM_DESC "desc" -# define OSSL_OBJECT_PARAM_INPUT_TYPE "input-type" -# define OSSL_OBJECT_PARAM_REFERENCE "reference" -# define OSSL_OBJECT_PARAM_TYPE "type" -# define OSSL_PASSPHRASE_PARAM_INFO "info" -# define OSSL_PKEY_PARAM_ALGORITHM_ID OSSL_ALG_PARAM_ALGORITHM_ID -# define OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS OSSL_ALG_PARAM_ALGORITHM_ID_PARAMS -# define OSSL_PKEY_PARAM_BITS "bits" -# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER -# define OSSL_PKEY_PARAM_CMS_KEMRI_KDF_ALGORITHM "kemri-kdf-alg" -# define OSSL_PKEY_PARAM_CMS_RI_TYPE "ri-type" -# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" -# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" -# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" -# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" -# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST -# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" -# define OSSL_PKEY_PARAM_DIST_ID "distid" -# define OSSL_PKEY_PARAM_EC_A "a" -# define OSSL_PKEY_PARAM_EC_B "b" -# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" -# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" -# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" -# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" -# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" -# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" -# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" -# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" -# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" -# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" -# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" -# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" -# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" -# define OSSL_PKEY_PARAM_EC_ORDER "order" -# define OSSL_PKEY_PARAM_EC_P "p" -# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" -# define OSSL_PKEY_PARAM_EC_PUB_X "qx" -# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" -# define OSSL_PKEY_PARAM_EC_SEED "seed" -# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" -# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE -# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" -# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST -# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES -# define OSSL_PKEY_PARAM_FFC_G "g" -# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" -# define OSSL_PKEY_PARAM_FFC_H "hindex" -# define OSSL_PKEY_PARAM_FFC_P "p" -# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" -# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" -# define OSSL_PKEY_PARAM_FFC_Q "q" -# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" -# define OSSL_PKEY_PARAM_FFC_SEED "seed" -# define OSSL_PKEY_PARAM_FFC_TYPE "type" -# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" -# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" -# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" -# define OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK "digest-check" -# define OSSL_PKEY_PARAM_FIPS_KEY_CHECK "key-check" -# define OSSL_PKEY_PARAM_FIPS_SIGN_CHECK "sign-check" -# define OSSL_PKEY_PARAM_GROUP_NAME "group" -# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" -# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" -# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" -# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" -# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" -# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" -# define OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS "ml-dsa.input_formats" -# define OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS "ml-dsa.output_formats" -# define OSSL_PKEY_PARAM_ML_DSA_PREFER_SEED "ml-dsa.prefer_seed" -# define OSSL_PKEY_PARAM_ML_DSA_RETAIN_SEED "ml-dsa.retain_seed" -# define OSSL_PKEY_PARAM_ML_DSA_SEED "seed" -# define OSSL_PKEY_PARAM_ML_KEM_IMPORT_PCT_TYPE "ml-kem.import_pct_type" -# define OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS "ml-kem.input_formats" -# define OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS "ml-kem.output_formats" -# define OSSL_PKEY_PARAM_ML_KEM_PREFER_SEED "ml-kem.prefer_seed" -# define OSSL_PKEY_PARAM_ML_KEM_RETAIN_SEED "ml-kem.retain_seed" -# define OSSL_PKEY_PARAM_ML_KEM_SEED "seed" -# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" -# define OSSL_PKEY_PARAM_PRIV_KEY "priv" -# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES -# define OSSL_PKEY_PARAM_PUB_KEY "pub" -# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" -# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" -# define OSSL_PKEY_PARAM_RSA_D "d" -# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" -# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST -# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES -# define OSSL_PKEY_PARAM_RSA_E "e" -# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" -# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" -# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" -# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" -# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" -# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" -# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" -# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" -# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" -# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" -# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" -# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" -# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" -# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" -# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" -# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" -# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" -# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" -# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" -# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" -# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" -# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" -# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC -# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST -# define OSSL_PKEY_PARAM_RSA_N "n" -# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" -# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" -# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" -# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" -# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" -# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" -# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" -# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" -# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" -# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" -# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" -# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" -# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" -# define OSSL_PKEY_PARAM_SECURITY_CATEGORY OSSL_ALG_PARAM_SECURITY_CATEGORY -# define OSSL_PKEY_PARAM_SLH_DSA_SEED "seed" -# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG -# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" -# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" -# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" -# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" -# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" -# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" -# define OSSL_PROV_PARAM_DSA_SIGN_DISABLED "dsa-sign-disabled" -# define OSSL_PROV_PARAM_ECDH_COFACTOR_CHECK "ecdh-cofactor-check" -# define OSSL_PROV_PARAM_HKDF_DIGEST_CHECK "hkdf-digest-check" -# define OSSL_PROV_PARAM_HKDF_KEY_CHECK "hkdf-key-check" -# define OSSL_PROV_PARAM_HMAC_KEY_CHECK "hmac-key-check" -# define OSSL_PROV_PARAM_KBKDF_KEY_CHECK "kbkdf-key-check" -# define OSSL_PROV_PARAM_KMAC_KEY_CHECK "kmac-key-check" -# define OSSL_PROV_PARAM_NAME "name" -# define OSSL_PROV_PARAM_NO_SHORT_MAC "no-short-mac" -# define OSSL_PROV_PARAM_PBKDF2_LOWER_BOUND_CHECK "pbkdf2-lower-bound-check" -# define OSSL_PROV_PARAM_RSA_PKCS15_PAD_DISABLED "rsa-pkcs15-pad-disabled" -# define OSSL_PROV_PARAM_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" -# define OSSL_PROV_PARAM_RSA_SIGN_X931_PAD_DISABLED "rsa-sign-x931-pad-disabled" -# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" -# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" -# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" -# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" -# define OSSL_PROV_PARAM_SIGNATURE_DIGEST_CHECK "signature-digest-check" -# define OSSL_PROV_PARAM_SSHKDF_DIGEST_CHECK "sshkdf-digest-check" -# define OSSL_PROV_PARAM_SSHKDF_KEY_CHECK "sshkdf-key-check" -# define OSSL_PROV_PARAM_SSKDF_DIGEST_CHECK "sskdf-digest-check" -# define OSSL_PROV_PARAM_SSKDF_KEY_CHECK "sskdf-key-check" -# define OSSL_PROV_PARAM_STATUS "status" -# define OSSL_PROV_PARAM_TDES_ENCRYPT_DISABLED "tdes-encrypt-disabled" -# define OSSL_PROV_PARAM_TLS13_KDF_DIGEST_CHECK "tls13-kdf-digest-check" -# define OSSL_PROV_PARAM_TLS13_KDF_KEY_CHECK "tls13-kdf-key-check" -# define OSSL_PROV_PARAM_TLS1_PRF_DIGEST_CHECK "tls1-prf-digest-check" -# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" -# define OSSL_PROV_PARAM_TLS1_PRF_KEY_CHECK "tls1-prf-key-check" -# define OSSL_PROV_PARAM_VERSION "version" -# define OSSL_PROV_PARAM_X942KDF_KEY_CHECK "x942kdf-key-check" -# define OSSL_PROV_PARAM_X963KDF_DIGEST_CHECK "x963kdf-digest-check" -# define OSSL_PROV_PARAM_X963KDF_KEY_CHECK "x963kdf-key-check" -# define OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_RAND_PARAM_GENERATE "generate" -# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" -# define OSSL_RAND_PARAM_STATE "state" -# define OSSL_RAND_PARAM_STRENGTH "strength" -# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" -# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" -# define OSSL_SIGNATURE_PARAM_ADD_RANDOM "additional-random" -# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID OSSL_PKEY_PARAM_ALGORITHM_ID -# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID_PARAMS OSSL_PKEY_PARAM_ALGORITHM_ID_PARAMS -# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" -# define OSSL_SIGNATURE_PARAM_DETERMINISTIC "deterministic" -# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST -# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE -# define OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR OSSL_ALG_PARAM_FIPS_APPROVED_INDICATOR -# define OSSL_SIGNATURE_PARAM_FIPS_DIGEST_CHECK OSSL_PKEY_PARAM_FIPS_DIGEST_CHECK -# define OSSL_SIGNATURE_PARAM_FIPS_KEY_CHECK OSSL_PKEY_PARAM_FIPS_KEY_CHECK -# define OSSL_SIGNATURE_PARAM_FIPS_RSA_PSS_SALTLEN_CHECK "rsa-pss-saltlen-check" -# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_CHECK OSSL_PKEY_PARAM_FIPS_SIGN_CHECK -# define OSSL_SIGNATURE_PARAM_FIPS_SIGN_X931_PAD_CHECK "sign-x931-pad-check" -# define OSSL_SIGNATURE_PARAM_FIPS_VERIFY_MESSAGE "verify-message" -# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" -# define OSSL_SIGNATURE_PARAM_KAT "kat" -# define OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING "message-encoding" -# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST -# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES -# define OSSL_SIGNATURE_PARAM_MU "mu" -# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" -# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE -# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES -# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" -# define OSSL_SIGNATURE_PARAM_SIGNATURE "signature" -# define OSSL_SIGNATURE_PARAM_TEST_ENTROPY "test-entropy" -# define OSSL_SKEY_PARAM_KEY_LENGTH "key-length" -# define OSSL_SKEY_PARAM_RAW_BYTES "raw-bytes" -# define OSSL_STORE_PARAM_ALIAS "alias" -# define OSSL_STORE_PARAM_DIGEST "digest" -# define OSSL_STORE_PARAM_EXPECT "expect" -# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" -# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" -# define OSSL_STORE_PARAM_ISSUER "name" -# define OSSL_STORE_PARAM_PROPERTIES "properties" -# define OSSL_STORE_PARAM_SERIAL "serial" -# define OSSL_STORE_PARAM_SUBJECT "subject" - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/core_object.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/core_object.h deleted file mode 100644 index 62ccf39..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/core_object.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CORE_OBJECT_H -# define OPENSSL_CORE_OBJECT_H -# pragma once - -# ifdef __cplusplus -extern "C" { -# endif - -/*- - * Known object types - * - * These numbers are used as values for the OSSL_PARAM parameter - * OSSL_OBJECT_PARAM_TYPE. - * - * For most of these types, there's a corresponding libcrypto object type. - * The corresponding type is indicated with a comment after the number. - */ -# define OSSL_OBJECT_UNKNOWN 0 -# define OSSL_OBJECT_NAME 1 /* char * */ -# define OSSL_OBJECT_PKEY 2 /* EVP_PKEY * */ -# define OSSL_OBJECT_CERT 3 /* X509 * */ -# define OSSL_OBJECT_CRL 4 /* X509_CRL * */ - -/* - * The rest of the associated OSSL_PARAM elements is described in core_names.h - */ - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/crmf.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/crmf.h deleted file mode 100644 index 1a60e5d..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/crmf.h +++ /dev/null @@ -1,278 +0,0 @@ -/*- - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\crmf.h.in - * - * Copyright 2007-2025 The OpenSSL Project Authors. All Rights Reserved. - * Copyright Nokia 2007-2019 - * Copyright Siemens AG 2015-2019 - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - * - * CRMF (RFC 4211) implementation by M. Peylo, M. Viljanen, and D. von Oheimb. - */ - - - -#ifndef OPENSSL_CRMF_H -# define OPENSSL_CRMF_H - -# include - -# ifndef OPENSSL_NO_CRMF -# include -# include -# include -# include /* for GENERAL_NAME etc. */ -# include - -/* explicit #includes not strictly needed since implied by the above: */ -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# define OSSL_CRMF_POPOPRIVKEY_THISMESSAGE 0 -# define OSSL_CRMF_POPOPRIVKEY_SUBSEQUENTMESSAGE 1 -# define OSSL_CRMF_POPOPRIVKEY_DHMAC 2 -# define OSSL_CRMF_POPOPRIVKEY_AGREEMAC 3 -# define OSSL_CRMF_POPOPRIVKEY_ENCRYPTEDKEY 4 - -# define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 -# define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 -typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; -DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) - -typedef struct ossl_crmf_encryptedkey_st OSSL_CRMF_ENCRYPTEDKEY; -DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDKEY) - -typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; -DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) -DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) -#define sk_OSSL_CRMF_MSG_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk)) -#define sk_OSSL_CRMF_MSG_value(sk, idx) ((OSSL_CRMF_MSG *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk), (idx))) -#define sk_OSSL_CRMF_MSG_new(cmp) ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) -#define sk_OSSL_CRMF_MSG_new_null() ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_new_null()) -#define sk_OSSL_CRMF_MSG_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp), (n))) -#define sk_OSSL_CRMF_MSG_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_MSG_sk_type(sk), (n)) -#define sk_OSSL_CRMF_MSG_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_MSG_sk_type(sk)) -#define sk_OSSL_CRMF_MSG_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_MSG_sk_type(sk)) -#define sk_OSSL_CRMF_MSG_delete(sk, i) ((OSSL_CRMF_MSG *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_MSG_sk_type(sk), (i))) -#define sk_OSSL_CRMF_MSG_delete_ptr(sk, ptr) ((OSSL_CRMF_MSG *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr))) -#define sk_OSSL_CRMF_MSG_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr)) -#define sk_OSSL_CRMF_MSG_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr)) -#define sk_OSSL_CRMF_MSG_pop(sk) ((OSSL_CRMF_MSG *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_MSG_sk_type(sk))) -#define sk_OSSL_CRMF_MSG_shift(sk) ((OSSL_CRMF_MSG *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_MSG_sk_type(sk))) -#define sk_OSSL_CRMF_MSG_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_freefunc_type(freefunc)) -#define sk_OSSL_CRMF_MSG_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr), (idx)) -#define sk_OSSL_CRMF_MSG_set(sk, idx, ptr) ((OSSL_CRMF_MSG *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_MSG_sk_type(sk), (idx), ossl_check_OSSL_CRMF_MSG_type(ptr))) -#define sk_OSSL_CRMF_MSG_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr)) -#define sk_OSSL_CRMF_MSG_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr)) -#define sk_OSSL_CRMF_MSG_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr), pnum) -#define sk_OSSL_CRMF_MSG_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_MSG_sk_type(sk)) -#define sk_OSSL_CRMF_MSG_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk)) -#define sk_OSSL_CRMF_MSG_dup(sk) ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk))) -#define sk_OSSL_CRMF_MSG_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_MSG_freefunc_type(freefunc))) -#define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) - -typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; -void OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *v); -DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE, OSSL_CRMF_ATTRIBUTETYPEANDVALUE) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value(sk, idx) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new(cmp) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null() ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_null()) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp), (n))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (n)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete(sk, i) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (i))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_delete_ptr(sk, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_shift(sk) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), (idx)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set(sk, idx, ptr) ((OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), (idx), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_type(ptr), pnum) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk)) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup(sk) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_freefunc_type(freefunc))) -#define sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_sk_type(sk), ossl_check_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_compfunc_type(cmp))) - - -typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; -DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) -typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; -typedef struct ossl_crmf_certrequest_st OSSL_CRMF_CERTREQUEST; -typedef struct ossl_crmf_certid_st OSSL_CRMF_CERTID; -DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTID) -DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTID) -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_CERTID, OSSL_CRMF_CERTID, OSSL_CRMF_CERTID) -#define sk_OSSL_CRMF_CERTID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk)) -#define sk_OSSL_CRMF_CERTID_value(sk, idx) ((OSSL_CRMF_CERTID *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk), (idx))) -#define sk_OSSL_CRMF_CERTID_new(cmp) ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_CERTID_compfunc_type(cmp))) -#define sk_OSSL_CRMF_CERTID_new_null() ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_new_null()) -#define sk_OSSL_CRMF_CERTID_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_CERTID_compfunc_type(cmp), (n))) -#define sk_OSSL_CRMF_CERTID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), (n)) -#define sk_OSSL_CRMF_CERTID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_CERTID_sk_type(sk)) -#define sk_OSSL_CRMF_CERTID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_CERTID_sk_type(sk)) -#define sk_OSSL_CRMF_CERTID_delete(sk, i) ((OSSL_CRMF_CERTID *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), (i))) -#define sk_OSSL_CRMF_CERTID_delete_ptr(sk, ptr) ((OSSL_CRMF_CERTID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr))) -#define sk_OSSL_CRMF_CERTID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr)) -#define sk_OSSL_CRMF_CERTID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr)) -#define sk_OSSL_CRMF_CERTID_pop(sk) ((OSSL_CRMF_CERTID *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_CERTID_sk_type(sk))) -#define sk_OSSL_CRMF_CERTID_shift(sk) ((OSSL_CRMF_CERTID *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_CERTID_sk_type(sk))) -#define sk_OSSL_CRMF_CERTID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_freefunc_type(freefunc)) -#define sk_OSSL_CRMF_CERTID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr), (idx)) -#define sk_OSSL_CRMF_CERTID_set(sk, idx, ptr) ((OSSL_CRMF_CERTID *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), (idx), ossl_check_OSSL_CRMF_CERTID_type(ptr))) -#define sk_OSSL_CRMF_CERTID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr)) -#define sk_OSSL_CRMF_CERTID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr)) -#define sk_OSSL_CRMF_CERTID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr), pnum) -#define sk_OSSL_CRMF_CERTID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_CERTID_sk_type(sk)) -#define sk_OSSL_CRMF_CERTID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk)) -#define sk_OSSL_CRMF_CERTID_dup(sk) ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk))) -#define sk_OSSL_CRMF_CERTID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_CERTID_freefunc_type(freefunc))) -#define sk_OSSL_CRMF_CERTID_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_CERTID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_compfunc_type(cmp))) - - -typedef struct ossl_crmf_pkipublicationinfo_st OSSL_CRMF_PKIPUBLICATIONINFO; -DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PKIPUBLICATIONINFO) -typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; -DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) -typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; -DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) -DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTTEMPLATE) -typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; -DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) - -typedef struct ossl_crmf_optionalvalidity_st OSSL_CRMF_OPTIONALVALIDITY; - -/* crmf_pbm.c */ -OSSL_CRMF_PBMPARAMETER *OSSL_CRMF_pbmp_new(OSSL_LIB_CTX *libctx, size_t slen, - int owfnid, size_t itercnt, - int macnid); -int OSSL_CRMF_pbm_new(OSSL_LIB_CTX *libctx, const char *propq, - const OSSL_CRMF_PBMPARAMETER *pbmp, - const unsigned char *msg, size_t msglen, - const unsigned char *sec, size_t seclen, - unsigned char **mac, size_t *maclen); - -/* crmf_lib.c */ -int OSSL_CRMF_MSG_set1_regCtrl_regToken(OSSL_CRMF_MSG *msg, - const ASN1_UTF8STRING *tok); -ASN1_UTF8STRING -*OSSL_CRMF_MSG_get0_regCtrl_regToken(const OSSL_CRMF_MSG *msg); -int OSSL_CRMF_MSG_set1_regCtrl_authenticator(OSSL_CRMF_MSG *msg, - const ASN1_UTF8STRING *auth); -ASN1_UTF8STRING -*OSSL_CRMF_MSG_get0_regCtrl_authenticator(const OSSL_CRMF_MSG *msg); -int -OSSL_CRMF_MSG_PKIPublicationInfo_push0_SinglePubInfo(OSSL_CRMF_PKIPUBLICATIONINFO *pi, - OSSL_CRMF_SINGLEPUBINFO *spi); -# define OSSL_CRMF_PUB_METHOD_DONTCARE 0 -# define OSSL_CRMF_PUB_METHOD_X500 1 -# define OSSL_CRMF_PUB_METHOD_WEB 2 -# define OSSL_CRMF_PUB_METHOD_LDAP 3 -int OSSL_CRMF_MSG_set0_SinglePubInfo(OSSL_CRMF_SINGLEPUBINFO *spi, - int method, GENERAL_NAME *nm); -# define OSSL_CRMF_PUB_ACTION_DONTPUBLISH 0 -# define OSSL_CRMF_PUB_ACTION_PLEASEPUBLISH 1 -int OSSL_CRMF_MSG_set_PKIPublicationInfo_action(OSSL_CRMF_PKIPUBLICATIONINFO *pi, - int action); -int OSSL_CRMF_MSG_set1_regCtrl_pkiPublicationInfo(OSSL_CRMF_MSG *msg, - const OSSL_CRMF_PKIPUBLICATIONINFO *pi); -OSSL_CRMF_PKIPUBLICATIONINFO -*OSSL_CRMF_MSG_get0_regCtrl_pkiPublicationInfo(const OSSL_CRMF_MSG *msg); -int OSSL_CRMF_MSG_set1_regCtrl_protocolEncrKey(OSSL_CRMF_MSG *msg, - const X509_PUBKEY *pubkey); -X509_PUBKEY -*OSSL_CRMF_MSG_get0_regCtrl_protocolEncrKey(const OSSL_CRMF_MSG *msg); -int OSSL_CRMF_MSG_set1_regCtrl_oldCertID(OSSL_CRMF_MSG *msg, - const OSSL_CRMF_CERTID *cid); -OSSL_CRMF_CERTID -*OSSL_CRMF_MSG_get0_regCtrl_oldCertID(const OSSL_CRMF_MSG *msg); -OSSL_CRMF_CERTID *OSSL_CRMF_CERTID_gen(const X509_NAME *issuer, - const ASN1_INTEGER *serial); - -int OSSL_CRMF_MSG_set1_regInfo_utf8Pairs(OSSL_CRMF_MSG *msg, - const ASN1_UTF8STRING *utf8pairs); -ASN1_UTF8STRING -*OSSL_CRMF_MSG_get0_regInfo_utf8Pairs(const OSSL_CRMF_MSG *msg); -int OSSL_CRMF_MSG_set1_regInfo_certReq(OSSL_CRMF_MSG *msg, - const OSSL_CRMF_CERTREQUEST *cr); -OSSL_CRMF_CERTREQUEST -*OSSL_CRMF_MSG_get0_regInfo_certReq(const OSSL_CRMF_MSG *msg); - -int OSSL_CRMF_MSG_set0_validity(OSSL_CRMF_MSG *crm, - ASN1_TIME *notBefore, ASN1_TIME *notAfter); -int OSSL_CRMF_MSG_set_certReqId(OSSL_CRMF_MSG *crm, int rid); -int OSSL_CRMF_MSG_get_certReqId(const OSSL_CRMF_MSG *crm); -int OSSL_CRMF_MSG_set0_extensions(OSSL_CRMF_MSG *crm, X509_EXTENSIONS *exts); - -int OSSL_CRMF_MSG_push0_extension(OSSL_CRMF_MSG *crm, X509_EXTENSION *ext); -# define OSSL_CRMF_POPO_NONE -1 -# define OSSL_CRMF_POPO_RAVERIFIED 0 -# define OSSL_CRMF_POPO_SIGNATURE 1 -# define OSSL_CRMF_POPO_KEYENC 2 -# define OSSL_CRMF_POPO_KEYAGREE 3 -int OSSL_CRMF_MSG_create_popo(int meth, OSSL_CRMF_MSG *crm, - EVP_PKEY *pkey, const EVP_MD *digest, - OSSL_LIB_CTX *libctx, const char *propq); -int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, - int rid, int acceptRAVerified, - OSSL_LIB_CTX *libctx, const char *propq); -OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); -X509_PUBKEY -*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); -const X509_NAME -*OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); -const X509_NAME -*OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); -const ASN1_INTEGER -*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); -X509_EXTENSIONS -*OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); -const X509_NAME -*OSSL_CRMF_CERTID_get0_issuer(const OSSL_CRMF_CERTID *cid); -const ASN1_INTEGER -*OSSL_CRMF_CERTID_get0_serialNumber(const OSSL_CRMF_CERTID *cid); -int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, - EVP_PKEY *pubkey, - const X509_NAME *subject, - const X509_NAME *issuer, - const ASN1_INTEGER *serial); -X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey); -X509 *OSSL_CRMF_ENCRYPTEDKEY_get1_encCert(const OSSL_CRMF_ENCRYPTEDKEY *ecert, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey, unsigned int flags); -unsigned char -*OSSL_CRMF_ENCRYPTEDVALUE_decrypt(const OSSL_CRMF_ENCRYPTEDVALUE *enc, - OSSL_LIB_CTX *libctx, const char *propq, - EVP_PKEY *pkey, int *outlen); -EVP_PKEY *OSSL_CRMF_ENCRYPTEDKEY_get1_pkey(const OSSL_CRMF_ENCRYPTEDKEY *encryptedKey, - X509_STORE *ts, STACK_OF(X509) *extra, EVP_PKEY *pkey, - X509 *cert, ASN1_OCTET_STRING *secret, - OSSL_LIB_CTX *libctx, const char *propq); -int OSSL_CRMF_MSG_centralkeygen_requested(const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr); -# ifndef OPENSSL_NO_CMS -OSSL_CRMF_ENCRYPTEDKEY *OSSL_CRMF_ENCRYPTEDKEY_init_envdata(CMS_EnvelopedData *envdata); -# endif - -# ifdef __cplusplus -} -# endif -# endif /* !defined(OPENSSL_NO_CRMF) */ -#endif /* !defined(OPENSSL_CRMF_H) */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/crmferr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/crmferr.h deleted file mode 100644 index a9b04e0..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/crmferr.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CRMFERR_H -# define OPENSSL_CRMFERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_CRMF - - -/* - * CRMF reason codes. - */ -# define CRMF_R_BAD_PBM_ITERATIONCOUNT 100 -# define CRMF_R_CMS_NOT_SUPPORTED 122 -# define CRMF_R_CRMFERROR 102 -# define CRMF_R_ERROR 103 -# define CRMF_R_ERROR_DECODING_CERTIFICATE 104 -# define CRMF_R_ERROR_DECODING_ENCRYPTEDKEY 123 -# define CRMF_R_ERROR_DECRYPTING_CERTIFICATE 105 -# define CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY 124 -# define CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE 125 -# define CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY 106 -# define CRMF_R_ERROR_SETTING_PURPOSE 126 -# define CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY 127 -# define CRMF_R_FAILURE_OBTAINING_RANDOM 107 -# define CRMF_R_ITERATIONCOUNT_BELOW_100 108 -# define CRMF_R_MALFORMED_IV 101 -# define CRMF_R_NULL_ARGUMENT 109 -# define CRMF_R_POPOSKINPUT_NOT_SUPPORTED 113 -# define CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN 128 -# define CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY 117 -# define CRMF_R_POPO_MISSING 121 -# define CRMF_R_POPO_MISSING_PUBLIC_KEY 118 -# define CRMF_R_POPO_MISSING_SUBJECT 119 -# define CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED 120 -# define CRMF_R_SETTING_MAC_ALGOR_FAILURE 110 -# define CRMF_R_SETTING_OWF_ALGOR_FAILURE 111 -# define CRMF_R_UNSUPPORTED_ALGORITHM 112 -# define CRMF_R_UNSUPPORTED_CIPHER 114 -# define CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO 115 -# define CRMF_R_UNSUPPORTED_POPO_METHOD 116 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/crypto.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/crypto.h deleted file mode 100644 index 38f5b1e..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/crypto.h +++ /dev/null @@ -1,614 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\crypto.h.in - * - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_CRYPTO_H -# define OPENSSL_CRYPTO_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_CRYPTO_H -# endif - -# include -# include - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif - -# include -# include -# include -# include -# include -# include - -# ifdef CHARSET_EBCDIC -# include -# endif - -/* - * Resolve problems on some operating systems with symbol names that clash - * one way or another - */ -# include - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define SSLeay OpenSSL_version_num -# define SSLeay_version OpenSSL_version -# define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER -# define SSLEAY_VERSION OPENSSL_VERSION -# define SSLEAY_CFLAGS OPENSSL_CFLAGS -# define SSLEAY_BUILT_ON OPENSSL_BUILT_ON -# define SSLEAY_PLATFORM OPENSSL_PLATFORM -# define SSLEAY_DIR OPENSSL_DIR - -/* - * Old type for allocating dynamic locks. No longer used. Use the new thread - * API instead. - */ -typedef struct { - int dummy; -} CRYPTO_dynlock; - -# endif /* OPENSSL_NO_DEPRECATED_1_1_0 */ - -typedef void CRYPTO_RWLOCK; - -CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void); -__owur int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock); -__owur int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock); -int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); -void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); - -int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); -int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, - CRYPTO_RWLOCK *lock); -int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, - CRYPTO_RWLOCK *lock); -int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, - CRYPTO_RWLOCK *lock); -int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); -int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); -int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock); - -/* No longer needed, so this is a no-op */ -#define OPENSSL_malloc_init() while(0) continue - -# define OPENSSL_malloc(num) \ - CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_zalloc(num) \ - CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_malloc_array(num, size) \ - CRYPTO_malloc_array(num, size, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_calloc(num, size) \ - CRYPTO_calloc(num, size, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_aligned_alloc(num, alignment, freeptr) \ - CRYPTO_aligned_alloc(num, alignment, freeptr, \ - OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_aligned_alloc_array(num, size, alignment, freeptr) \ - CRYPTO_aligned_alloc_array(num, size, alignment, freeptr, \ - OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_realloc(addr, num) \ - CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_clear_realloc(addr, old_num, num) \ - CRYPTO_clear_realloc(addr, old_num, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_realloc_array(addr, num, size) \ - CRYPTO_realloc_array(addr, num, size, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_clear_realloc_array(addr, old_num, num, size) \ - CRYPTO_clear_realloc_array(addr, old_num, num, size, \ - OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_clear_free(addr, num) \ - CRYPTO_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_free(addr) \ - CRYPTO_free(addr, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_memdup(str, s) \ - CRYPTO_memdup((str), s, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_strdup(str) \ - CRYPTO_strdup(str, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_strndup(str, n) \ - CRYPTO_strndup(str, n, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_malloc(num) \ - CRYPTO_secure_malloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_zalloc(num) \ - CRYPTO_secure_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_malloc_array(num, size) \ - CRYPTO_secure_malloc_array(num, size, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_calloc(num, size) \ - CRYPTO_secure_calloc(num, size, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_free(addr) \ - CRYPTO_secure_free(addr, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_clear_free(addr, num) \ - CRYPTO_secure_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_actual_size(ptr) \ - CRYPTO_secure_actual_size(ptr) - -size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); -size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); -size_t OPENSSL_strnlen(const char *str, size_t maxlen); -int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num); -int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, - const unsigned char *buf, size_t buflen, - const char sep); -char *OPENSSL_buf2hexstr(const unsigned char *buf, long buflen); -int OPENSSL_hexstr2buf_ex(unsigned char *buf, size_t buf_n, size_t *buflen, - const char *str, const char sep); -unsigned char *OPENSSL_hexstr2buf(const char *str, long *buflen); -int OPENSSL_hexchar2int(unsigned char c); -int OPENSSL_strcasecmp(const char *s1, const char *s2); -int OPENSSL_strncasecmp(const char *s1, const char *s2, size_t n); - -# define OPENSSL_MALLOC_MAX_NELEMS(type) (((1U<<(sizeof(int)*8-1))-1)/sizeof(type)) - -/* - * These functions return the values of OPENSSL_VERSION_MAJOR, - * OPENSSL_VERSION_MINOR, OPENSSL_VERSION_PATCH, OPENSSL_VERSION_PRE_RELEASE - * and OPENSSL_VERSION_BUILD_METADATA, respectively. - */ -unsigned int OPENSSL_version_major(void); -unsigned int OPENSSL_version_minor(void); -unsigned int OPENSSL_version_patch(void); -const char *OPENSSL_version_pre_release(void); -const char *OPENSSL_version_build_metadata(void); - -unsigned long OpenSSL_version_num(void); -const char *OpenSSL_version(int type); -# define OPENSSL_VERSION 0 -# define OPENSSL_CFLAGS 1 -# define OPENSSL_BUILT_ON 2 -# define OPENSSL_PLATFORM 3 -# define OPENSSL_DIR 4 -# define OPENSSL_ENGINES_DIR 5 -# define OPENSSL_VERSION_STRING 6 -# define OPENSSL_FULL_VERSION_STRING 7 -# define OPENSSL_MODULES_DIR 8 -# define OPENSSL_CPU_INFO 9 -# define OPENSSL_WINCTX 10 - -const char *OPENSSL_info(int type); -/* - * The series starts at 1001 to avoid confusion with the OpenSSL_version - * types. - */ -# define OPENSSL_INFO_CONFIG_DIR 1001 -# define OPENSSL_INFO_ENGINES_DIR 1002 -# define OPENSSL_INFO_MODULES_DIR 1003 -# define OPENSSL_INFO_DSO_EXTENSION 1004 -# define OPENSSL_INFO_DIR_FILENAME_SEPARATOR 1005 -# define OPENSSL_INFO_LIST_SEPARATOR 1006 -# define OPENSSL_INFO_SEED_SOURCE 1007 -# define OPENSSL_INFO_CPU_SETTINGS 1008 -# define OPENSSL_INFO_WINDOWS_CONTEXT 1009 - -int OPENSSL_issetugid(void); - -struct crypto_ex_data_st { - OSSL_LIB_CTX *ctx; - STACK_OF(void) *sk; -}; - -SKM_DEFINE_STACK_OF_INTERNAL(void, void, void) -#define sk_void_num(sk) OPENSSL_sk_num(ossl_check_const_void_sk_type(sk)) -#define sk_void_value(sk, idx) ((void *)OPENSSL_sk_value(ossl_check_const_void_sk_type(sk), (idx))) -#define sk_void_new(cmp) ((STACK_OF(void) *)OPENSSL_sk_new(ossl_check_void_compfunc_type(cmp))) -#define sk_void_new_null() ((STACK_OF(void) *)OPENSSL_sk_new_null()) -#define sk_void_new_reserve(cmp, n) ((STACK_OF(void) *)OPENSSL_sk_new_reserve(ossl_check_void_compfunc_type(cmp), (n))) -#define sk_void_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_void_sk_type(sk), (n)) -#define sk_void_free(sk) OPENSSL_sk_free(ossl_check_void_sk_type(sk)) -#define sk_void_zero(sk) OPENSSL_sk_zero(ossl_check_void_sk_type(sk)) -#define sk_void_delete(sk, i) ((void *)OPENSSL_sk_delete(ossl_check_void_sk_type(sk), (i))) -#define sk_void_delete_ptr(sk, ptr) ((void *)OPENSSL_sk_delete_ptr(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr))) -#define sk_void_push(sk, ptr) OPENSSL_sk_push(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr)) -#define sk_void_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr)) -#define sk_void_pop(sk) ((void *)OPENSSL_sk_pop(ossl_check_void_sk_type(sk))) -#define sk_void_shift(sk) ((void *)OPENSSL_sk_shift(ossl_check_void_sk_type(sk))) -#define sk_void_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_void_sk_type(sk), ossl_check_void_freefunc_type(freefunc)) -#define sk_void_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr), (idx)) -#define sk_void_set(sk, idx, ptr) ((void *)OPENSSL_sk_set(ossl_check_void_sk_type(sk), (idx), ossl_check_void_type(ptr))) -#define sk_void_find(sk, ptr) OPENSSL_sk_find(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr)) -#define sk_void_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr)) -#define sk_void_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr), pnum) -#define sk_void_sort(sk) OPENSSL_sk_sort(ossl_check_void_sk_type(sk)) -#define sk_void_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_void_sk_type(sk)) -#define sk_void_dup(sk) ((STACK_OF(void) *)OPENSSL_sk_dup(ossl_check_const_void_sk_type(sk))) -#define sk_void_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(void) *)OPENSSL_sk_deep_copy(ossl_check_const_void_sk_type(sk), ossl_check_void_copyfunc_type(copyfunc), ossl_check_void_freefunc_type(freefunc))) -#define sk_void_set_cmp_func(sk, cmp) ((sk_void_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_void_sk_type(sk), ossl_check_void_compfunc_type(cmp))) - - - -/* - * Per class, we have a STACK of function pointers. - */ -# define CRYPTO_EX_INDEX_SSL 0 -# define CRYPTO_EX_INDEX_SSL_CTX 1 -# define CRYPTO_EX_INDEX_SSL_SESSION 2 -# define CRYPTO_EX_INDEX_X509 3 -# define CRYPTO_EX_INDEX_X509_STORE 4 -# define CRYPTO_EX_INDEX_X509_STORE_CTX 5 -# define CRYPTO_EX_INDEX_DH 6 -# define CRYPTO_EX_INDEX_DSA 7 -# define CRYPTO_EX_INDEX_EC_KEY 8 -# define CRYPTO_EX_INDEX_RSA 9 -# define CRYPTO_EX_INDEX_ENGINE 10 -# define CRYPTO_EX_INDEX_UI 11 -# define CRYPTO_EX_INDEX_BIO 12 -# define CRYPTO_EX_INDEX_APP 13 -# define CRYPTO_EX_INDEX_UI_METHOD 14 -# define CRYPTO_EX_INDEX_RAND_DRBG 15 -# define CRYPTO_EX_INDEX_DRBG CRYPTO_EX_INDEX_RAND_DRBG -# define CRYPTO_EX_INDEX_OSSL_LIB_CTX 16 -# define CRYPTO_EX_INDEX_EVP_PKEY 17 -# define CRYPTO_EX_INDEX__COUNT 18 - -typedef void CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, - int idx, long argl, void *argp); -typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, - int idx, long argl, void *argp); -typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from, - void **from_d, int idx, long argl, void *argp); -__owur int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, - CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); -/* No longer use an index. */ -int CRYPTO_free_ex_index(int class_index, int idx); - -/* - * Initialise/duplicate/free CRYPTO_EX_DATA variables corresponding to a - * given class (invokes whatever per-class callbacks are applicable) - */ -int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); -int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, - const CRYPTO_EX_DATA *from); - -void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); - -/* Allocate a single item in the CRYPTO_EX_DATA variable */ -int CRYPTO_alloc_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad, - int idx); - -/* - * Get/set data in a CRYPTO_EX_DATA variable corresponding to a particular - * index (relative to the class type involved) - */ -int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val); -void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -/* - * This function cleans up all "ex_data" state. It mustn't be called under - * potential race-conditions. - */ -# define CRYPTO_cleanup_all_ex_data() while(0) continue - -/* - * The old locking functions have been removed completely without compatibility - * macros. This is because the old functions either could not properly report - * errors, or the returned error values were not clearly documented. - * Replacing the locking functions with no-ops would cause race condition - * issues in the affected applications. It is far better for them to fail at - * compile time. - * On the other hand, the locking callbacks are no longer used. Consequently, - * the callback management functions can be safely replaced with no-op macros. - */ -# define CRYPTO_num_locks() (1) -# define CRYPTO_set_locking_callback(func) -# define CRYPTO_get_locking_callback() (NULL) -# define CRYPTO_set_add_lock_callback(func) -# define CRYPTO_get_add_lock_callback() (NULL) - -/* - * These defines where used in combination with the old locking callbacks, - * they are not called anymore, but old code that's not called might still - * use them. - */ -# define CRYPTO_LOCK 1 -# define CRYPTO_UNLOCK 2 -# define CRYPTO_READ 4 -# define CRYPTO_WRITE 8 - -/* This structure is no longer used */ -typedef struct crypto_threadid_st { - int dummy; -} CRYPTO_THREADID; -/* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */ -# define CRYPTO_THREADID_set_numeric(id, val) -# define CRYPTO_THREADID_set_pointer(id, ptr) -# define CRYPTO_THREADID_set_callback(threadid_func) (0) -# define CRYPTO_THREADID_get_callback() (NULL) -# define CRYPTO_THREADID_current(id) -# define CRYPTO_THREADID_cmp(a, b) (-1) -# define CRYPTO_THREADID_cpy(dest, src) -# define CRYPTO_THREADID_hash(id) (0UL) - -# ifndef OPENSSL_NO_DEPRECATED_1_0_0 -# define CRYPTO_set_id_callback(func) -# define CRYPTO_get_id_callback() (NULL) -# define CRYPTO_thread_id() (0UL) -# endif /* OPENSSL_NO_DEPRECATED_1_0_0 */ - -# define CRYPTO_set_dynlock_create_callback(dyn_create_function) -# define CRYPTO_set_dynlock_lock_callback(dyn_lock_function) -# define CRYPTO_set_dynlock_destroy_callback(dyn_destroy_function) -# define CRYPTO_get_dynlock_create_callback() (NULL) -# define CRYPTO_get_dynlock_lock_callback() (NULL) -# define CRYPTO_get_dynlock_destroy_callback() (NULL) -# endif /* OPENSSL_NO_DEPRECATED_1_1_0 */ - -typedef void *(*CRYPTO_malloc_fn)(size_t num, const char *file, int line); -typedef void *(*CRYPTO_realloc_fn)(void *addr, size_t num, const char *file, - int line); -typedef void (*CRYPTO_free_fn)(void *addr, const char *file, int line); -int CRYPTO_set_mem_functions(CRYPTO_malloc_fn malloc_fn, - CRYPTO_realloc_fn realloc_fn, - CRYPTO_free_fn free_fn); -void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, - CRYPTO_realloc_fn *realloc_fn, - CRYPTO_free_fn *free_fn); - -OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); -OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); -OSSL_CRYPTO_ALLOC void *CRYPTO_malloc_array(size_t num, size_t size, - const char *file, int line); -OSSL_CRYPTO_ALLOC void *CRYPTO_calloc(size_t num, size_t size, - const char *file, int line); -OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align, - void **freeptr, const char *file, - int line); -OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc_array(size_t num, size_t size, - size_t align, void **freeptr, - const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); -void CRYPTO_free(void *ptr, const char *file, int line); -void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); -void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); -void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, - const char *file, int line); -void *CRYPTO_realloc_array(void *addr, size_t num, size_t size, - const char *file, int line); -void *CRYPTO_clear_realloc_array(void *addr, size_t old_num, size_t num, - size_t size, const char *file, int line); - -int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); -int CRYPTO_secure_malloc_done(void); -OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); -OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc_array(size_t num, size_t size, - const char *file, int line); -OSSL_CRYPTO_ALLOC void *CRYPTO_secure_calloc(size_t num, size_t size, - const char *file, int line); -void CRYPTO_secure_free(void *ptr, const char *file, int line); -void CRYPTO_secure_clear_free(void *ptr, size_t num, - const char *file, int line); -int CRYPTO_secure_allocated(const void *ptr); -int CRYPTO_secure_malloc_initialized(void); -size_t CRYPTO_secure_actual_size(void *ptr); -size_t CRYPTO_secure_used(void); - -void OPENSSL_cleanse(void *ptr, size_t len); - -# ifndef OPENSSL_NO_CRYPTO_MDEBUG -/* - * The following can be used to detect memory leaks in the library. If - * used, it turns on malloc checking - */ -# define CRYPTO_MEM_CHECK_OFF 0x0 /* Control only */ -# define CRYPTO_MEM_CHECK_ON 0x1 /* Control and mode bit */ -# define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ -# define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ - -/* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */ -# define CRYPTO_MEM_CHECK_MAX_FS 256 - -void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define OPENSSL_mem_debug_push(info) \ - CRYPTO_mem_debug_push(info, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_mem_debug_pop() \ - CRYPTO_mem_debug_pop() -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int CRYPTO_set_mem_debug(int flag); -OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_ctrl(int mode); -OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_debug_push(const char *info, - const char *file, int line); -OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_debug_pop(void); -OSSL_DEPRECATEDIN_3_0 void CRYPTO_mem_debug_malloc(void *addr, size_t num, - int flag, - const char *file, int line); -OSSL_DEPRECATEDIN_3_0 void CRYPTO_mem_debug_realloc(void *addr1, void *addr2, - size_t num, int flag, - const char *file, int line); -OSSL_DEPRECATEDIN_3_0 void CRYPTO_mem_debug_free(void *addr, int flag, - const char *file, int line); -OSSL_DEPRECATEDIN_3_0 -int CRYPTO_mem_leaks_cb(int (*cb)(const char *str, size_t len, void *u), - void *u); -# endif -# ifndef OPENSSL_NO_STDIO -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_leaks_fp(FILE *); -# endif -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_leaks(BIO *bio); -# endif -# endif /* OPENSSL_NO_CRYPTO_MDEBUG */ - -/* die if we have to */ -ossl_noreturn void OPENSSL_die(const char *assertion, const char *file, int line); -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define OpenSSLDie(f,l,a) OPENSSL_die((a),(f),(l)) -# endif -# define OPENSSL_assert(e) \ - (void)((e) ? 0 : (OPENSSL_die("assertion failed: " #e, OPENSSL_FILE, OPENSSL_LINE), 1)) - -int OPENSSL_isservice(void); - -void OPENSSL_init(void); -# ifdef OPENSSL_SYS_UNIX -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 void OPENSSL_fork_prepare(void); -OSSL_DEPRECATEDIN_3_0 void OPENSSL_fork_parent(void); -OSSL_DEPRECATEDIN_3_0 void OPENSSL_fork_child(void); -# endif -# endif - -struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result); -int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec); -int OPENSSL_gmtime_diff(int *pday, int *psec, - const struct tm *from, const struct tm *to); - -/* - * CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. - * It takes an amount of time dependent on |len|, but independent of the - * contents of |a| and |b|. Unlike memcmp, it cannot be used to put elements - * into a defined order as the return value when a != b is undefined, other - * than to be non-zero. - */ -int CRYPTO_memcmp(const void * in_a, const void * in_b, size_t len); - -/* Standard initialisation options */ -# define OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS 0x00000001L -# define OPENSSL_INIT_LOAD_CRYPTO_STRINGS 0x00000002L -# define OPENSSL_INIT_ADD_ALL_CIPHERS 0x00000004L -# define OPENSSL_INIT_ADD_ALL_DIGESTS 0x00000008L -# define OPENSSL_INIT_NO_ADD_ALL_CIPHERS 0x00000010L -# define OPENSSL_INIT_NO_ADD_ALL_DIGESTS 0x00000020L -# define OPENSSL_INIT_LOAD_CONFIG 0x00000040L -# define OPENSSL_INIT_NO_LOAD_CONFIG 0x00000080L -# define OPENSSL_INIT_ASYNC 0x00000100L -# define OPENSSL_INIT_ENGINE_RDRAND 0x00000200L -# define OPENSSL_INIT_ENGINE_DYNAMIC 0x00000400L -# define OPENSSL_INIT_ENGINE_OPENSSL 0x00000800L -# define OPENSSL_INIT_ENGINE_CRYPTODEV 0x00001000L -# define OPENSSL_INIT_ENGINE_CAPI 0x00002000L -# define OPENSSL_INIT_ENGINE_PADLOCK 0x00004000L -# define OPENSSL_INIT_ENGINE_AFALG 0x00008000L -/* FREE: 0x00010000L */ -# define OPENSSL_INIT_ATFORK 0x00020000L -/* OPENSSL_INIT_BASE_ONLY 0x00040000L */ -# define OPENSSL_INIT_NO_ATEXIT 0x00080000L -/* OPENSSL_INIT flag range 0x03f00000 reserved for OPENSSL_init_ssl() */ -/* FREE: 0x04000000L */ -/* FREE: 0x08000000L */ -/* FREE: 0x10000000L */ -/* FREE: 0x20000000L */ -/* FREE: 0x40000000L */ -/* FREE: 0x80000000L */ -/* Max OPENSSL_INIT flag value is 0x80000000 */ - -/* openssl and dasync not counted as builtin */ -# define OPENSSL_INIT_ENGINE_ALL_BUILTIN \ - (OPENSSL_INIT_ENGINE_RDRAND | OPENSSL_INIT_ENGINE_DYNAMIC \ - | OPENSSL_INIT_ENGINE_CRYPTODEV | OPENSSL_INIT_ENGINE_CAPI | \ - OPENSSL_INIT_ENGINE_PADLOCK) - -/* Library initialisation functions */ -void OPENSSL_cleanup(void); -int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); -int OPENSSL_atexit(void (*handler)(void)); -void OPENSSL_thread_stop(void); -void OPENSSL_thread_stop_ex(OSSL_LIB_CTX *ctx); - -/* Low-level control of initialization */ -OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void); -# ifndef OPENSSL_NO_STDIO -int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings, - const char *config_filename); -void OPENSSL_INIT_set_config_file_flags(OPENSSL_INIT_SETTINGS *settings, - unsigned long flags); -int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings, - const char *config_appname); -# endif -void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings); - -# if defined(OPENSSL_THREADS) && !defined(CRYPTO_TDEBUG) -# if defined(_WIN32) -# if defined(BASETYPES) || defined(_WINDEF_H) -/* application has to include in order to use this */ -typedef DWORD CRYPTO_THREAD_LOCAL; -typedef DWORD CRYPTO_THREAD_ID; - -typedef LONG CRYPTO_ONCE; -# define CRYPTO_ONCE_STATIC_INIT 0 -# endif -# else -# if defined(__TANDEM) && defined(_SPT_MODEL_) -# define SPT_THREAD_SIGNAL 1 -# define SPT_THREAD_AWARE 1 -# include -# else -# include -# endif -typedef pthread_once_t CRYPTO_ONCE; -typedef pthread_key_t CRYPTO_THREAD_LOCAL; -typedef pthread_t CRYPTO_THREAD_ID; - -# define CRYPTO_ONCE_STATIC_INIT PTHREAD_ONCE_INIT -# endif -# endif - -# if !defined(CRYPTO_ONCE_STATIC_INIT) -typedef unsigned int CRYPTO_ONCE; -typedef unsigned int CRYPTO_THREAD_LOCAL; -typedef unsigned int CRYPTO_THREAD_ID; -# define CRYPTO_ONCE_STATIC_INIT 0 -# endif - -int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void)); - -int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void *)); -void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key); -int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val); -int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key); - -CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void); -int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b); - -OSSL_LIB_CTX *OSSL_LIB_CTX_new(void); -OSSL_LIB_CTX *OSSL_LIB_CTX_new_from_dispatch(const OSSL_CORE_HANDLE *handle, - const OSSL_DISPATCH *in); -OSSL_LIB_CTX *OSSL_LIB_CTX_new_child(const OSSL_CORE_HANDLE *handle, - const OSSL_DISPATCH *in); -int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); -void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); -OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); -OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); -int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx); -void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value); - -void OSSL_sleep(uint64_t millis); - - -void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/cryptoerr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/cryptoerr.h deleted file mode 100644 index 7fa79cf..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/cryptoerr.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CRYPTOERR_H -# define OPENSSL_CRYPTOERR_H -# pragma once - -# include -# include -# include - - - -/* - * CRYPTO reason codes. - */ -# define CRYPTO_R_BAD_ALGORITHM_NAME 117 -# define CRYPTO_R_CONFLICTING_NAMES 118 -# define CRYPTO_R_HEX_STRING_TOO_SHORT 121 -# define CRYPTO_R_ILLEGAL_HEX_DIGIT 102 -# define CRYPTO_R_INSUFFICIENT_DATA_SPACE 106 -# define CRYPTO_R_INSUFFICIENT_PARAM_SIZE 107 -# define CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE 108 -# define CRYPTO_R_INTEGER_OVERFLOW 127 -# define CRYPTO_R_INVALID_NEGATIVE_VALUE 122 -# define CRYPTO_R_INVALID_NULL_ARGUMENT 109 -# define CRYPTO_R_INVALID_OSSL_PARAM_TYPE 110 -# define CRYPTO_R_NO_PARAMS_TO_MERGE 131 -# define CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL 128 -# define CRYPTO_R_ODD_NUMBER_OF_DIGITS 103 -# define CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY 123 -# define CRYPTO_R_PARAM_NOT_INTEGER_TYPE 124 -# define CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE 129 -# define CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED 125 -# define CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT 130 -# define CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION 126 -# define CRYPTO_R_PROVIDER_ALREADY_EXISTS 104 -# define CRYPTO_R_PROVIDER_SECTION_ERROR 105 -# define CRYPTO_R_RANDOM_SECTION_ERROR 119 -# define CRYPTO_R_SECURE_MALLOC_FAILURE 111 -# define CRYPTO_R_STRING_TOO_LONG 112 -# define CRYPTO_R_TOO_MANY_BYTES 113 -# define CRYPTO_R_TOO_MANY_NAMES 132 -# define CRYPTO_R_TOO_MANY_RECORDS 114 -# define CRYPTO_R_TOO_SMALL_BUFFER 116 -# define CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION 120 -# define CRYPTO_R_ZERO_LENGTH_NUMBER 115 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/cryptoerr_legacy.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/cryptoerr_legacy.h deleted file mode 100644 index ccab33a..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/cryptoerr_legacy.h +++ /dev/null @@ -1,1466 +0,0 @@ -/* - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * This header file preserves symbols from pre-3.0 OpenSSL. - * It should never be included directly, as it's already included - * by the public {lib}err.h headers, and since it will go away some - * time in the future. - */ - -#ifndef OPENSSL_CRYPTOERR_LEGACY_H -# define OPENSSL_CRYPTOERR_LEGACY_H -# pragma once - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ERR_load_ASN1_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_ASYNC_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_BIO_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_BN_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_BUF_strings(void); -# ifndef OPENSSL_NO_CMS -OSSL_DEPRECATEDIN_3_0 int ERR_load_CMS_strings(void); -# endif -# ifndef OPENSSL_NO_COMP -OSSL_DEPRECATEDIN_3_0 int ERR_load_COMP_strings(void); -# endif -OSSL_DEPRECATEDIN_3_0 int ERR_load_CONF_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_CRYPTO_strings(void); -# ifndef OPENSSL_NO_CT -OSSL_DEPRECATEDIN_3_0 int ERR_load_CT_strings(void); -# endif -# ifndef OPENSSL_NO_DH -OSSL_DEPRECATEDIN_3_0 int ERR_load_DH_strings(void); -# endif -# ifndef OPENSSL_NO_DSA -OSSL_DEPRECATEDIN_3_0 int ERR_load_DSA_strings(void); -# endif -# ifndef OPENSSL_NO_EC -OSSL_DEPRECATEDIN_3_0 int ERR_load_EC_strings(void); -# endif -# ifndef OPENSSL_NO_ENGINE -OSSL_DEPRECATEDIN_3_0 int ERR_load_ENGINE_strings(void); -# endif -OSSL_DEPRECATEDIN_3_0 int ERR_load_ERR_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_EVP_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_KDF_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_OBJ_strings(void); -# ifndef OPENSSL_NO_OCSP -OSSL_DEPRECATEDIN_3_0 int ERR_load_OCSP_strings(void); -# endif -OSSL_DEPRECATEDIN_3_0 int ERR_load_PEM_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_PKCS12_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_PKCS7_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_RAND_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_RSA_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_OSSL_STORE_strings(void); -# ifndef OPENSSL_NO_TS -OSSL_DEPRECATEDIN_3_0 int ERR_load_TS_strings(void); -# endif -OSSL_DEPRECATEDIN_3_0 int ERR_load_UI_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_X509_strings(void); -OSSL_DEPRECATEDIN_3_0 int ERR_load_X509V3_strings(void); - -/* Collected _F_ macros from OpenSSL 1.1.1 */ - -/* - * ASN1 function codes. - */ -# define ASN1_F_A2D_ASN1_OBJECT 0 -# define ASN1_F_A2I_ASN1_INTEGER 0 -# define ASN1_F_A2I_ASN1_STRING 0 -# define ASN1_F_APPEND_EXP 0 -# define ASN1_F_ASN1_BIO_INIT 0 -# define ASN1_F_ASN1_BIT_STRING_SET_BIT 0 -# define ASN1_F_ASN1_CB 0 -# define ASN1_F_ASN1_CHECK_TLEN 0 -# define ASN1_F_ASN1_COLLECT 0 -# define ASN1_F_ASN1_D2I_EX_PRIMITIVE 0 -# define ASN1_F_ASN1_D2I_FP 0 -# define ASN1_F_ASN1_D2I_READ_BIO 0 -# define ASN1_F_ASN1_DIGEST 0 -# define ASN1_F_ASN1_DO_ADB 0 -# define ASN1_F_ASN1_DO_LOCK 0 -# define ASN1_F_ASN1_DUP 0 -# define ASN1_F_ASN1_ENC_SAVE 0 -# define ASN1_F_ASN1_EX_C2I 0 -# define ASN1_F_ASN1_FIND_END 0 -# define ASN1_F_ASN1_GENERALIZEDTIME_ADJ 0 -# define ASN1_F_ASN1_GENERATE_V3 0 -# define ASN1_F_ASN1_GET_INT64 0 -# define ASN1_F_ASN1_GET_OBJECT 0 -# define ASN1_F_ASN1_GET_UINT64 0 -# define ASN1_F_ASN1_I2D_BIO 0 -# define ASN1_F_ASN1_I2D_FP 0 -# define ASN1_F_ASN1_ITEM_D2I_FP 0 -# define ASN1_F_ASN1_ITEM_DUP 0 -# define ASN1_F_ASN1_ITEM_EMBED_D2I 0 -# define ASN1_F_ASN1_ITEM_EMBED_NEW 0 -# define ASN1_F_ASN1_ITEM_FLAGS_I2D 0 -# define ASN1_F_ASN1_ITEM_I2D_BIO 0 -# define ASN1_F_ASN1_ITEM_I2D_FP 0 -# define ASN1_F_ASN1_ITEM_PACK 0 -# define ASN1_F_ASN1_ITEM_SIGN 0 -# define ASN1_F_ASN1_ITEM_SIGN_CTX 0 -# define ASN1_F_ASN1_ITEM_UNPACK 0 -# define ASN1_F_ASN1_ITEM_VERIFY 0 -# define ASN1_F_ASN1_MBSTRING_NCOPY 0 -# define ASN1_F_ASN1_OBJECT_NEW 0 -# define ASN1_F_ASN1_OUTPUT_DATA 0 -# define ASN1_F_ASN1_PCTX_NEW 0 -# define ASN1_F_ASN1_PRIMITIVE_NEW 0 -# define ASN1_F_ASN1_SCTX_NEW 0 -# define ASN1_F_ASN1_SIGN 0 -# define ASN1_F_ASN1_STR2TYPE 0 -# define ASN1_F_ASN1_STRING_GET_INT64 0 -# define ASN1_F_ASN1_STRING_GET_UINT64 0 -# define ASN1_F_ASN1_STRING_SET 0 -# define ASN1_F_ASN1_STRING_TABLE_ADD 0 -# define ASN1_F_ASN1_STRING_TO_BN 0 -# define ASN1_F_ASN1_STRING_TYPE_NEW 0 -# define ASN1_F_ASN1_TEMPLATE_EX_D2I 0 -# define ASN1_F_ASN1_TEMPLATE_NEW 0 -# define ASN1_F_ASN1_TEMPLATE_NOEXP_D2I 0 -# define ASN1_F_ASN1_TIME_ADJ 0 -# define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 0 -# define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 0 -# define ASN1_F_ASN1_UTCTIME_ADJ 0 -# define ASN1_F_ASN1_VERIFY 0 -# define ASN1_F_B64_READ_ASN1 0 -# define ASN1_F_B64_WRITE_ASN1 0 -# define ASN1_F_BIO_NEW_NDEF 0 -# define ASN1_F_BITSTR_CB 0 -# define ASN1_F_BN_TO_ASN1_STRING 0 -# define ASN1_F_C2I_ASN1_BIT_STRING 0 -# define ASN1_F_C2I_ASN1_INTEGER 0 -# define ASN1_F_C2I_ASN1_OBJECT 0 -# define ASN1_F_C2I_IBUF 0 -# define ASN1_F_C2I_UINT64_INT 0 -# define ASN1_F_COLLECT_DATA 0 -# define ASN1_F_D2I_ASN1_OBJECT 0 -# define ASN1_F_D2I_ASN1_UINTEGER 0 -# define ASN1_F_D2I_AUTOPRIVATEKEY 0 -# define ASN1_F_D2I_PRIVATEKEY 0 -# define ASN1_F_D2I_PUBLICKEY 0 -# define ASN1_F_DO_BUF 0 -# define ASN1_F_DO_CREATE 0 -# define ASN1_F_DO_DUMP 0 -# define ASN1_F_DO_TCREATE 0 -# define ASN1_F_I2A_ASN1_OBJECT 0 -# define ASN1_F_I2D_ASN1_BIO_STREAM 0 -# define ASN1_F_I2D_ASN1_OBJECT 0 -# define ASN1_F_I2D_DSA_PUBKEY 0 -# define ASN1_F_I2D_EC_PUBKEY 0 -# define ASN1_F_I2D_PRIVATEKEY 0 -# define ASN1_F_I2D_PUBLICKEY 0 -# define ASN1_F_I2D_RSA_PUBKEY 0 -# define ASN1_F_LONG_C2I 0 -# define ASN1_F_NDEF_PREFIX 0 -# define ASN1_F_NDEF_SUFFIX 0 -# define ASN1_F_OID_MODULE_INIT 0 -# define ASN1_F_PARSE_TAGGING 0 -# define ASN1_F_PKCS5_PBE2_SET_IV 0 -# define ASN1_F_PKCS5_PBE2_SET_SCRYPT 0 -# define ASN1_F_PKCS5_PBE_SET 0 -# define ASN1_F_PKCS5_PBE_SET0_ALGOR 0 -# define ASN1_F_PKCS5_PBKDF2_SET 0 -# define ASN1_F_PKCS5_SCRYPT_SET 0 -# define ASN1_F_SMIME_READ_ASN1 0 -# define ASN1_F_SMIME_TEXT 0 -# define ASN1_F_STABLE_GET 0 -# define ASN1_F_STBL_MODULE_INIT 0 -# define ASN1_F_UINT32_C2I 0 -# define ASN1_F_UINT32_NEW 0 -# define ASN1_F_UINT64_C2I 0 -# define ASN1_F_UINT64_NEW 0 -# define ASN1_F_X509_CRL_ADD0_REVOKED 0 -# define ASN1_F_X509_INFO_NEW 0 -# define ASN1_F_X509_NAME_ENCODE 0 -# define ASN1_F_X509_NAME_EX_D2I 0 -# define ASN1_F_X509_NAME_EX_NEW 0 -# define ASN1_F_X509_PKEY_NEW 0 - -/* - * ASYNC function codes. - */ -# define ASYNC_F_ASYNC_CTX_NEW 0 -# define ASYNC_F_ASYNC_INIT_THREAD 0 -# define ASYNC_F_ASYNC_JOB_NEW 0 -# define ASYNC_F_ASYNC_PAUSE_JOB 0 -# define ASYNC_F_ASYNC_START_FUNC 0 -# define ASYNC_F_ASYNC_START_JOB 0 -# define ASYNC_F_ASYNC_WAIT_CTX_SET_WAIT_FD 0 - -/* - * BIO function codes. - */ -# define BIO_F_ACPT_STATE 0 -# define BIO_F_ADDRINFO_WRAP 0 -# define BIO_F_ADDR_STRINGS 0 -# define BIO_F_BIO_ACCEPT 0 -# define BIO_F_BIO_ACCEPT_EX 0 -# define BIO_F_BIO_ACCEPT_NEW 0 -# define BIO_F_BIO_ADDR_NEW 0 -# define BIO_F_BIO_BIND 0 -# define BIO_F_BIO_CALLBACK_CTRL 0 -# define BIO_F_BIO_CONNECT 0 -# define BIO_F_BIO_CONNECT_NEW 0 -# define BIO_F_BIO_CTRL 0 -# define BIO_F_BIO_GETS 0 -# define BIO_F_BIO_GET_HOST_IP 0 -# define BIO_F_BIO_GET_NEW_INDEX 0 -# define BIO_F_BIO_GET_PORT 0 -# define BIO_F_BIO_LISTEN 0 -# define BIO_F_BIO_LOOKUP 0 -# define BIO_F_BIO_LOOKUP_EX 0 -# define BIO_F_BIO_MAKE_PAIR 0 -# define BIO_F_BIO_METH_NEW 0 -# define BIO_F_BIO_NEW 0 -# define BIO_F_BIO_NEW_DGRAM_SCTP 0 -# define BIO_F_BIO_NEW_FILE 0 -# define BIO_F_BIO_NEW_MEM_BUF 0 -# define BIO_F_BIO_NREAD 0 -# define BIO_F_BIO_NREAD0 0 -# define BIO_F_BIO_NWRITE 0 -# define BIO_F_BIO_NWRITE0 0 -# define BIO_F_BIO_PARSE_HOSTSERV 0 -# define BIO_F_BIO_PUTS 0 -# define BIO_F_BIO_READ 0 -# define BIO_F_BIO_READ_EX 0 -# define BIO_F_BIO_READ_INTERN 0 -# define BIO_F_BIO_SOCKET 0 -# define BIO_F_BIO_SOCKET_NBIO 0 -# define BIO_F_BIO_SOCK_INFO 0 -# define BIO_F_BIO_SOCK_INIT 0 -# define BIO_F_BIO_WRITE 0 -# define BIO_F_BIO_WRITE_EX 0 -# define BIO_F_BIO_WRITE_INTERN 0 -# define BIO_F_BUFFER_CTRL 0 -# define BIO_F_CONN_CTRL 0 -# define BIO_F_CONN_STATE 0 -# define BIO_F_DGRAM_SCTP_NEW 0 -# define BIO_F_DGRAM_SCTP_READ 0 -# define BIO_F_DGRAM_SCTP_WRITE 0 -# define BIO_F_DOAPR_OUTCH 0 -# define BIO_F_FILE_CTRL 0 -# define BIO_F_FILE_READ 0 -# define BIO_F_LINEBUFFER_CTRL 0 -# define BIO_F_LINEBUFFER_NEW 0 -# define BIO_F_MEM_WRITE 0 -# define BIO_F_NBIOF_NEW 0 -# define BIO_F_SLG_WRITE 0 -# define BIO_F_SSL_NEW 0 - -/* - * BN function codes. - */ -# define BN_F_BNRAND 0 -# define BN_F_BNRAND_RANGE 0 -# define BN_F_BN_BLINDING_CONVERT_EX 0 -# define BN_F_BN_BLINDING_CREATE_PARAM 0 -# define BN_F_BN_BLINDING_INVERT_EX 0 -# define BN_F_BN_BLINDING_NEW 0 -# define BN_F_BN_BLINDING_UPDATE 0 -# define BN_F_BN_BN2DEC 0 -# define BN_F_BN_BN2HEX 0 -# define BN_F_BN_COMPUTE_WNAF 0 -# define BN_F_BN_CTX_GET 0 -# define BN_F_BN_CTX_NEW 0 -# define BN_F_BN_CTX_START 0 -# define BN_F_BN_DIV 0 -# define BN_F_BN_DIV_RECP 0 -# define BN_F_BN_EXP 0 -# define BN_F_BN_EXPAND_INTERNAL 0 -# define BN_F_BN_GENCB_NEW 0 -# define BN_F_BN_GENERATE_DSA_NONCE 0 -# define BN_F_BN_GENERATE_PRIME_EX 0 -# define BN_F_BN_GF2M_MOD 0 -# define BN_F_BN_GF2M_MOD_EXP 0 -# define BN_F_BN_GF2M_MOD_MUL 0 -# define BN_F_BN_GF2M_MOD_SOLVE_QUAD 0 -# define BN_F_BN_GF2M_MOD_SOLVE_QUAD_ARR 0 -# define BN_F_BN_GF2M_MOD_SQR 0 -# define BN_F_BN_GF2M_MOD_SQRT 0 -# define BN_F_BN_LSHIFT 0 -# define BN_F_BN_MOD_EXP2_MONT 0 -# define BN_F_BN_MOD_EXP_MONT 0 -# define BN_F_BN_MOD_EXP_MONT_CONSTTIME 0 -# define BN_F_BN_MOD_EXP_MONT_WORD 0 -# define BN_F_BN_MOD_EXP_RECP 0 -# define BN_F_BN_MOD_EXP_SIMPLE 0 -# define BN_F_BN_MOD_INVERSE 0 -# define BN_F_BN_MOD_INVERSE_NO_BRANCH 0 -# define BN_F_BN_MOD_LSHIFT_QUICK 0 -# define BN_F_BN_MOD_SQRT 0 -# define BN_F_BN_MONT_CTX_NEW 0 -# define BN_F_BN_MPI2BN 0 -# define BN_F_BN_NEW 0 -# define BN_F_BN_POOL_GET 0 -# define BN_F_BN_RAND 0 -# define BN_F_BN_RAND_RANGE 0 -# define BN_F_BN_RECP_CTX_NEW 0 -# define BN_F_BN_RSHIFT 0 -# define BN_F_BN_SET_WORDS 0 -# define BN_F_BN_STACK_PUSH 0 -# define BN_F_BN_USUB 0 - -/* - * BUF function codes. - */ -# define BUF_F_BUF_MEM_GROW 0 -# define BUF_F_BUF_MEM_GROW_CLEAN 0 -# define BUF_F_BUF_MEM_NEW 0 - -# ifndef OPENSSL_NO_CMS -/* - * CMS function codes. - */ -# define CMS_F_CHECK_CONTENT 0 -# define CMS_F_CMS_ADD0_CERT 0 -# define CMS_F_CMS_ADD0_RECIPIENT_KEY 0 -# define CMS_F_CMS_ADD0_RECIPIENT_PASSWORD 0 -# define CMS_F_CMS_ADD1_RECEIPTREQUEST 0 -# define CMS_F_CMS_ADD1_RECIPIENT_CERT 0 -# define CMS_F_CMS_ADD1_SIGNER 0 -# define CMS_F_CMS_ADD1_SIGNINGTIME 0 -# define CMS_F_CMS_COMPRESS 0 -# define CMS_F_CMS_COMPRESSEDDATA_CREATE 0 -# define CMS_F_CMS_COMPRESSEDDATA_INIT_BIO 0 -# define CMS_F_CMS_COPY_CONTENT 0 -# define CMS_F_CMS_COPY_MESSAGEDIGEST 0 -# define CMS_F_CMS_DATA 0 -# define CMS_F_CMS_DATAFINAL 0 -# define CMS_F_CMS_DATAINIT 0 -# define CMS_F_CMS_DECRYPT 0 -# define CMS_F_CMS_DECRYPT_SET1_KEY 0 -# define CMS_F_CMS_DECRYPT_SET1_PASSWORD 0 -# define CMS_F_CMS_DECRYPT_SET1_PKEY 0 -# define CMS_F_CMS_DIGESTALGORITHM_FIND_CTX 0 -# define CMS_F_CMS_DIGESTALGORITHM_INIT_BIO 0 -# define CMS_F_CMS_DIGESTEDDATA_DO_FINAL 0 -# define CMS_F_CMS_DIGEST_VERIFY 0 -# define CMS_F_CMS_ENCODE_RECEIPT 0 -# define CMS_F_CMS_ENCRYPT 0 -# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT 0 -# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO 0 -# define CMS_F_CMS_ENCRYPTEDDATA_DECRYPT 0 -# define CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT 0 -# define CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY 0 -# define CMS_F_CMS_ENVELOPEDDATA_CREATE 0 -# define CMS_F_CMS_ENVELOPEDDATA_INIT_BIO 0 -# define CMS_F_CMS_ENVELOPED_DATA_INIT 0 -# define CMS_F_CMS_ENV_ASN1_CTRL 0 -# define CMS_F_CMS_FINAL 0 -# define CMS_F_CMS_GET0_CERTIFICATE_CHOICES 0 -# define CMS_F_CMS_GET0_CONTENT 0 -# define CMS_F_CMS_GET0_ECONTENT_TYPE 0 -# define CMS_F_CMS_GET0_ENVELOPED 0 -# define CMS_F_CMS_GET0_REVOCATION_CHOICES 0 -# define CMS_F_CMS_GET0_SIGNED 0 -# define CMS_F_CMS_MSGSIGDIGEST_ADD1 0 -# define CMS_F_CMS_RECEIPTREQUEST_CREATE0 0 -# define CMS_F_CMS_RECEIPT_VERIFY 0 -# define CMS_F_CMS_RECIPIENTINFO_DECRYPT 0 -# define CMS_F_CMS_RECIPIENTINFO_ENCRYPT 0 -# define CMS_F_CMS_RECIPIENTINFO_KARI_ENCRYPT 0 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ALG 0 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ORIG_ID 0 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_REKS 0 -# define CMS_F_CMS_RECIPIENTINFO_KARI_ORIG_ID_CMP 0 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT 0 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT 0 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID 0 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP 0 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP 0 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT 0 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT 0 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS 0 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID 0 -# define CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT 0 -# define CMS_F_CMS_RECIPIENTINFO_SET0_KEY 0 -# define CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD 0 -# define CMS_F_CMS_RECIPIENTINFO_SET0_PKEY 0 -# define CMS_F_CMS_SD_ASN1_CTRL 0 -# define CMS_F_CMS_SET1_IAS 0 -# define CMS_F_CMS_SET1_KEYID 0 -# define CMS_F_CMS_SET1_SIGNERIDENTIFIER 0 -# define CMS_F_CMS_SET_DETACHED 0 -# define CMS_F_CMS_SIGN 0 -# define CMS_F_CMS_SIGNED_DATA_INIT 0 -# define CMS_F_CMS_SIGNERINFO_CONTENT_SIGN 0 -# define CMS_F_CMS_SIGNERINFO_SIGN 0 -# define CMS_F_CMS_SIGNERINFO_VERIFY 0 -# define CMS_F_CMS_SIGNERINFO_VERIFY_CERT 0 -# define CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT 0 -# define CMS_F_CMS_SIGN_RECEIPT 0 -# define CMS_F_CMS_SI_CHECK_ATTRIBUTES 0 -# define CMS_F_CMS_STREAM 0 -# define CMS_F_CMS_UNCOMPRESS 0 -# define CMS_F_CMS_VERIFY 0 -# define CMS_F_KEK_UNWRAP_KEY 0 -# endif - -# ifndef OPENSSL_NO_COMP -/* - * COMP function codes. - */ -# define COMP_F_BIO_ZLIB_FLUSH 0 -# define COMP_F_BIO_ZLIB_NEW 0 -# define COMP_F_BIO_ZLIB_READ 0 -# define COMP_F_BIO_ZLIB_WRITE 0 -# define COMP_F_COMP_CTX_NEW 0 -# endif - -/* - * CONF function codes. - */ -# define CONF_F_CONF_DUMP_FP 0 -# define CONF_F_CONF_LOAD 0 -# define CONF_F_CONF_LOAD_FP 0 -# define CONF_F_CONF_PARSE_LIST 0 -# define CONF_F_DEF_LOAD 0 -# define CONF_F_DEF_LOAD_BIO 0 -# define CONF_F_GET_NEXT_FILE 0 -# define CONF_F_MODULE_ADD 0 -# define CONF_F_MODULE_INIT 0 -# define CONF_F_MODULE_LOAD_DSO 0 -# define CONF_F_MODULE_RUN 0 -# define CONF_F_NCONF_DUMP_BIO 0 -# define CONF_F_NCONF_DUMP_FP 0 -# define CONF_F_NCONF_GET_NUMBER_E 0 -# define CONF_F_NCONF_GET_SECTION 0 -# define CONF_F_NCONF_GET_STRING 0 -# define CONF_F_NCONF_LOAD 0 -# define CONF_F_NCONF_LOAD_BIO 0 -# define CONF_F_NCONF_LOAD_FP 0 -# define CONF_F_NCONF_NEW 0 -# define CONF_F_PROCESS_INCLUDE 0 -# define CONF_F_SSL_MODULE_INIT 0 -# define CONF_F_STR_COPY 0 - -/* - * CRYPTO function codes. - */ -# define CRYPTO_F_CMAC_CTX_NEW 0 -# define CRYPTO_F_CRYPTO_DUP_EX_DATA 0 -# define CRYPTO_F_CRYPTO_FREE_EX_DATA 0 -# define CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX 0 -# define CRYPTO_F_CRYPTO_MEMDUP 0 -# define CRYPTO_F_CRYPTO_NEW_EX_DATA 0 -# define CRYPTO_F_CRYPTO_OCB128_COPY_CTX 0 -# define CRYPTO_F_CRYPTO_OCB128_INIT 0 -# define CRYPTO_F_CRYPTO_SET_EX_DATA 0 -# define CRYPTO_F_GET_AND_LOCK 0 -# define CRYPTO_F_OPENSSL_ATEXIT 0 -# define CRYPTO_F_OPENSSL_BUF2HEXSTR 0 -# define CRYPTO_F_OPENSSL_FOPEN 0 -# define CRYPTO_F_OPENSSL_HEXSTR2BUF 0 -# define CRYPTO_F_OPENSSL_INIT_CRYPTO 0 -# define CRYPTO_F_OPENSSL_LH_NEW 0 -# define CRYPTO_F_OPENSSL_SK_DEEP_COPY 0 -# define CRYPTO_F_OPENSSL_SK_DUP 0 -# define CRYPTO_F_PKEY_HMAC_INIT 0 -# define CRYPTO_F_PKEY_POLY1305_INIT 0 -# define CRYPTO_F_PKEY_SIPHASH_INIT 0 -# define CRYPTO_F_SK_RESERVE 0 - -# ifndef OPENSSL_NO_CT -/* - * CT function codes. - */ -# define CT_F_CTLOG_NEW 0 -# define CT_F_CTLOG_NEW_FROM_BASE64 0 -# define CT_F_CTLOG_NEW_FROM_CONF 0 -# define CT_F_CTLOG_STORE_LOAD_CTX_NEW 0 -# define CT_F_CTLOG_STORE_LOAD_FILE 0 -# define CT_F_CTLOG_STORE_LOAD_LOG 0 -# define CT_F_CTLOG_STORE_NEW 0 -# define CT_F_CT_BASE64_DECODE 0 -# define CT_F_CT_POLICY_EVAL_CTX_NEW 0 -# define CT_F_CT_V1_LOG_ID_FROM_PKEY 0 -# define CT_F_I2O_SCT 0 -# define CT_F_I2O_SCT_LIST 0 -# define CT_F_I2O_SCT_SIGNATURE 0 -# define CT_F_O2I_SCT 0 -# define CT_F_O2I_SCT_LIST 0 -# define CT_F_O2I_SCT_SIGNATURE 0 -# define CT_F_SCT_CTX_NEW 0 -# define CT_F_SCT_CTX_VERIFY 0 -# define CT_F_SCT_NEW 0 -# define CT_F_SCT_NEW_FROM_BASE64 0 -# define CT_F_SCT_SET0_LOG_ID 0 -# define CT_F_SCT_SET1_EXTENSIONS 0 -# define CT_F_SCT_SET1_LOG_ID 0 -# define CT_F_SCT_SET1_SIGNATURE 0 -# define CT_F_SCT_SET_LOG_ENTRY_TYPE 0 -# define CT_F_SCT_SET_SIGNATURE_NID 0 -# define CT_F_SCT_SET_VERSION 0 -# endif - -# ifndef OPENSSL_NO_DH -/* - * DH function codes. - */ -# define DH_F_COMPUTE_KEY 0 -# define DH_F_DHPARAMS_PRINT_FP 0 -# define DH_F_DH_BUILTIN_GENPARAMS 0 -# define DH_F_DH_CHECK_EX 0 -# define DH_F_DH_CHECK_PARAMS_EX 0 -# define DH_F_DH_CHECK_PUB_KEY_EX 0 -# define DH_F_DH_CMS_DECRYPT 0 -# define DH_F_DH_CMS_SET_PEERKEY 0 -# define DH_F_DH_CMS_SET_SHARED_INFO 0 -# define DH_F_DH_METH_DUP 0 -# define DH_F_DH_METH_NEW 0 -# define DH_F_DH_METH_SET1_NAME 0 -# define DH_F_DH_NEW_BY_NID 0 -# define DH_F_DH_NEW_METHOD 0 -# define DH_F_DH_PARAM_DECODE 0 -# define DH_F_DH_PKEY_PUBLIC_CHECK 0 -# define DH_F_DH_PRIV_DECODE 0 -# define DH_F_DH_PRIV_ENCODE 0 -# define DH_F_DH_PUB_DECODE 0 -# define DH_F_DH_PUB_ENCODE 0 -# define DH_F_DO_DH_PRINT 0 -# define DH_F_GENERATE_KEY 0 -# define DH_F_PKEY_DH_CTRL_STR 0 -# define DH_F_PKEY_DH_DERIVE 0 -# define DH_F_PKEY_DH_INIT 0 -# define DH_F_PKEY_DH_KEYGEN 0 -# endif - -# ifndef OPENSSL_NO_DSA -/* - * DSA function codes. - */ -# define DSA_F_DSAPARAMS_PRINT 0 -# define DSA_F_DSAPARAMS_PRINT_FP 0 -# define DSA_F_DSA_BUILTIN_PARAMGEN 0 -# define DSA_F_DSA_BUILTIN_PARAMGEN2 0 -# define DSA_F_DSA_DO_SIGN 0 -# define DSA_F_DSA_DO_VERIFY 0 -# define DSA_F_DSA_METH_DUP 0 -# define DSA_F_DSA_METH_NEW 0 -# define DSA_F_DSA_METH_SET1_NAME 0 -# define DSA_F_DSA_NEW_METHOD 0 -# define DSA_F_DSA_PARAM_DECODE 0 -# define DSA_F_DSA_PRINT_FP 0 -# define DSA_F_DSA_PRIV_DECODE 0 -# define DSA_F_DSA_PRIV_ENCODE 0 -# define DSA_F_DSA_PUB_DECODE 0 -# define DSA_F_DSA_PUB_ENCODE 0 -# define DSA_F_DSA_SIGN 0 -# define DSA_F_DSA_SIGN_SETUP 0 -# define DSA_F_DSA_SIG_NEW 0 -# define DSA_F_OLD_DSA_PRIV_DECODE 0 -# define DSA_F_PKEY_DSA_CTRL 0 -# define DSA_F_PKEY_DSA_CTRL_STR 0 -# define DSA_F_PKEY_DSA_KEYGEN 0 -# endif - -# ifndef OPENSSL_NO_EC -/* - * EC function codes. - */ -# define EC_F_BN_TO_FELEM 0 -# define EC_F_D2I_ECPARAMETERS 0 -# define EC_F_D2I_ECPKPARAMETERS 0 -# define EC_F_D2I_ECPRIVATEKEY 0 -# define EC_F_DO_EC_KEY_PRINT 0 -# define EC_F_ECDH_CMS_DECRYPT 0 -# define EC_F_ECDH_CMS_SET_SHARED_INFO 0 -# define EC_F_ECDH_COMPUTE_KEY 0 -# define EC_F_ECDH_SIMPLE_COMPUTE_KEY 0 -# define EC_F_ECDSA_DO_SIGN_EX 0 -# define EC_F_ECDSA_DO_VERIFY 0 -# define EC_F_ECDSA_SIGN_EX 0 -# define EC_F_ECDSA_SIGN_SETUP 0 -# define EC_F_ECDSA_SIG_NEW 0 -# define EC_F_ECDSA_VERIFY 0 -# define EC_F_ECD_ITEM_VERIFY 0 -# define EC_F_ECKEY_PARAM2TYPE 0 -# define EC_F_ECKEY_PARAM_DECODE 0 -# define EC_F_ECKEY_PRIV_DECODE 0 -# define EC_F_ECKEY_PRIV_ENCODE 0 -# define EC_F_ECKEY_PUB_DECODE 0 -# define EC_F_ECKEY_PUB_ENCODE 0 -# define EC_F_ECKEY_TYPE2PARAM 0 -# define EC_F_ECPARAMETERS_PRINT 0 -# define EC_F_ECPARAMETERS_PRINT_FP 0 -# define EC_F_ECPKPARAMETERS_PRINT 0 -# define EC_F_ECPKPARAMETERS_PRINT_FP 0 -# define EC_F_ECP_NISTZ256_GET_AFFINE 0 -# define EC_F_ECP_NISTZ256_INV_MOD_ORD 0 -# define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE 0 -# define EC_F_ECP_NISTZ256_POINTS_MUL 0 -# define EC_F_ECP_NISTZ256_PRE_COMP_NEW 0 -# define EC_F_ECP_NISTZ256_WINDOWED_MUL 0 -# define EC_F_ECX_KEY_OP 0 -# define EC_F_ECX_PRIV_ENCODE 0 -# define EC_F_ECX_PUB_ENCODE 0 -# define EC_F_EC_ASN1_GROUP2CURVE 0 -# define EC_F_EC_ASN1_GROUP2FIELDID 0 -# define EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY 0 -# define EC_F_EC_GF2M_SIMPLE_FIELD_INV 0 -# define EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT 0 -# define EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE 0 -# define EC_F_EC_GF2M_SIMPLE_LADDER_POST 0 -# define EC_F_EC_GF2M_SIMPLE_LADDER_PRE 0 -# define EC_F_EC_GF2M_SIMPLE_OCT2POINT 0 -# define EC_F_EC_GF2M_SIMPLE_POINT2OCT 0 -# define EC_F_EC_GF2M_SIMPLE_POINTS_MUL 0 -# define EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES 0 -# define EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES 0 -# define EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES 0 -# define EC_F_EC_GFP_MONT_FIELD_DECODE 0 -# define EC_F_EC_GFP_MONT_FIELD_ENCODE 0 -# define EC_F_EC_GFP_MONT_FIELD_INV 0 -# define EC_F_EC_GFP_MONT_FIELD_MUL 0 -# define EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE 0 -# define EC_F_EC_GFP_MONT_FIELD_SQR 0 -# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE 0 -# define EC_F_EC_GFP_NISTP224_GROUP_SET_CURVE 0 -# define EC_F_EC_GFP_NISTP224_POINTS_MUL 0 -# define EC_F_EC_GFP_NISTP224_POINT_GET_AFFINE_COORDINATES 0 -# define EC_F_EC_GFP_NISTP256_GROUP_SET_CURVE 0 -# define EC_F_EC_GFP_NISTP256_POINTS_MUL 0 -# define EC_F_EC_GFP_NISTP256_POINT_GET_AFFINE_COORDINATES 0 -# define EC_F_EC_GFP_NISTP521_GROUP_SET_CURVE 0 -# define EC_F_EC_GFP_NISTP521_POINTS_MUL 0 -# define EC_F_EC_GFP_NISTP521_POINT_GET_AFFINE_COORDINATES 0 -# define EC_F_EC_GFP_NIST_FIELD_MUL 0 -# define EC_F_EC_GFP_NIST_FIELD_SQR 0 -# define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 0 -# define EC_F_EC_GFP_SIMPLE_BLIND_COORDINATES 0 -# define EC_F_EC_GFP_SIMPLE_FIELD_INV 0 -# define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 0 -# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 0 -# define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 0 -# define EC_F_EC_GFP_SIMPLE_OCT2POINT 0 -# define EC_F_EC_GFP_SIMPLE_POINT2OCT 0 -# define EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE 0 -# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES 0 -# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES 0 -# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES 0 -# define EC_F_EC_GROUP_CHECK 0 -# define EC_F_EC_GROUP_CHECK_DISCRIMINANT 0 -# define EC_F_EC_GROUP_COPY 0 -# define EC_F_EC_GROUP_GET_CURVE 0 -# define EC_F_EC_GROUP_GET_CURVE_GF2M 0 -# define EC_F_EC_GROUP_GET_CURVE_GFP 0 -# define EC_F_EC_GROUP_GET_DEGREE 0 -# define EC_F_EC_GROUP_GET_ECPARAMETERS 0 -# define EC_F_EC_GROUP_GET_ECPKPARAMETERS 0 -# define EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS 0 -# define EC_F_EC_GROUP_GET_TRINOMIAL_BASIS 0 -# define EC_F_EC_GROUP_NEW 0 -# define EC_F_EC_GROUP_NEW_BY_CURVE_NAME 0 -# define EC_F_EC_GROUP_NEW_FROM_DATA 0 -# define EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS 0 -# define EC_F_EC_GROUP_NEW_FROM_ECPKPARAMETERS 0 -# define EC_F_EC_GROUP_SET_CURVE 0 -# define EC_F_EC_GROUP_SET_CURVE_GF2M 0 -# define EC_F_EC_GROUP_SET_CURVE_GFP 0 -# define EC_F_EC_GROUP_SET_GENERATOR 0 -# define EC_F_EC_GROUP_SET_SEED 0 -# define EC_F_EC_KEY_CHECK_KEY 0 -# define EC_F_EC_KEY_COPY 0 -# define EC_F_EC_KEY_GENERATE_KEY 0 -# define EC_F_EC_KEY_NEW 0 -# define EC_F_EC_KEY_NEW_METHOD 0 -# define EC_F_EC_KEY_OCT2PRIV 0 -# define EC_F_EC_KEY_PRINT 0 -# define EC_F_EC_KEY_PRINT_FP 0 -# define EC_F_EC_KEY_PRIV2BUF 0 -# define EC_F_EC_KEY_PRIV2OCT 0 -# define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES 0 -# define EC_F_EC_KEY_SIMPLE_CHECK_KEY 0 -# define EC_F_EC_KEY_SIMPLE_OCT2PRIV 0 -# define EC_F_EC_KEY_SIMPLE_PRIV2OCT 0 -# define EC_F_EC_PKEY_CHECK 0 -# define EC_F_EC_PKEY_PARAM_CHECK 0 -# define EC_F_EC_POINTS_MAKE_AFFINE 0 -# define EC_F_EC_POINTS_MUL 0 -# define EC_F_EC_POINT_ADD 0 -# define EC_F_EC_POINT_BN2POINT 0 -# define EC_F_EC_POINT_CMP 0 -# define EC_F_EC_POINT_COPY 0 -# define EC_F_EC_POINT_DBL 0 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES 0 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M 0 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP 0 -# define EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP 0 -# define EC_F_EC_POINT_INVERT 0 -# define EC_F_EC_POINT_IS_AT_INFINITY 0 -# define EC_F_EC_POINT_IS_ON_CURVE 0 -# define EC_F_EC_POINT_MAKE_AFFINE 0 -# define EC_F_EC_POINT_NEW 0 -# define EC_F_EC_POINT_OCT2POINT 0 -# define EC_F_EC_POINT_POINT2BUF 0 -# define EC_F_EC_POINT_POINT2OCT 0 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES 0 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M 0 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP 0 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES 0 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M 0 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP 0 -# define EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP 0 -# define EC_F_EC_POINT_SET_TO_INFINITY 0 -# define EC_F_EC_PRE_COMP_NEW 0 -# define EC_F_EC_SCALAR_MUL_LADDER 0 -# define EC_F_EC_WNAF_MUL 0 -# define EC_F_EC_WNAF_PRECOMPUTE_MULT 0 -# define EC_F_I2D_ECPARAMETERS 0 -# define EC_F_I2D_ECPKPARAMETERS 0 -# define EC_F_I2D_ECPRIVATEKEY 0 -# define EC_F_I2O_ECPUBLICKEY 0 -# define EC_F_NISTP224_PRE_COMP_NEW 0 -# define EC_F_NISTP256_PRE_COMP_NEW 0 -# define EC_F_NISTP521_PRE_COMP_NEW 0 -# define EC_F_O2I_ECPUBLICKEY 0 -# define EC_F_OLD_EC_PRIV_DECODE 0 -# define EC_F_OSSL_ECDH_COMPUTE_KEY 0 -# define EC_F_OSSL_ECDSA_SIGN_SIG 0 -# define EC_F_OSSL_ECDSA_VERIFY_SIG 0 -# define EC_F_PKEY_ECD_CTRL 0 -# define EC_F_PKEY_ECD_DIGESTSIGN 0 -# define EC_F_PKEY_ECD_DIGESTSIGN25519 0 -# define EC_F_PKEY_ECD_DIGESTSIGN448 0 -# define EC_F_PKEY_ECX_DERIVE 0 -# define EC_F_PKEY_EC_CTRL 0 -# define EC_F_PKEY_EC_CTRL_STR 0 -# define EC_F_PKEY_EC_DERIVE 0 -# define EC_F_PKEY_EC_INIT 0 -# define EC_F_PKEY_EC_KDF_DERIVE 0 -# define EC_F_PKEY_EC_KEYGEN 0 -# define EC_F_PKEY_EC_PARAMGEN 0 -# define EC_F_PKEY_EC_SIGN 0 -# define EC_F_VALIDATE_ECX_DERIVE 0 -# endif - -# ifndef OPENSSL_NO_ENGINE -/* - * ENGINE function codes. - */ -# define ENGINE_F_DIGEST_UPDATE 0 -# define ENGINE_F_DYNAMIC_CTRL 0 -# define ENGINE_F_DYNAMIC_GET_DATA_CTX 0 -# define ENGINE_F_DYNAMIC_LOAD 0 -# define ENGINE_F_DYNAMIC_SET_DATA_CTX 0 -# define ENGINE_F_ENGINE_ADD 0 -# define ENGINE_F_ENGINE_BY_ID 0 -# define ENGINE_F_ENGINE_CMD_IS_EXECUTABLE 0 -# define ENGINE_F_ENGINE_CTRL 0 -# define ENGINE_F_ENGINE_CTRL_CMD 0 -# define ENGINE_F_ENGINE_CTRL_CMD_STRING 0 -# define ENGINE_F_ENGINE_FINISH 0 -# define ENGINE_F_ENGINE_GET_CIPHER 0 -# define ENGINE_F_ENGINE_GET_DIGEST 0 -# define ENGINE_F_ENGINE_GET_FIRST 0 -# define ENGINE_F_ENGINE_GET_LAST 0 -# define ENGINE_F_ENGINE_GET_NEXT 0 -# define ENGINE_F_ENGINE_GET_PKEY_ASN1_METH 0 -# define ENGINE_F_ENGINE_GET_PKEY_METH 0 -# define ENGINE_F_ENGINE_GET_PREV 0 -# define ENGINE_F_ENGINE_INIT 0 -# define ENGINE_F_ENGINE_LIST_ADD 0 -# define ENGINE_F_ENGINE_LIST_REMOVE 0 -# define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY 0 -# define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY 0 -# define ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT 0 -# define ENGINE_F_ENGINE_NEW 0 -# define ENGINE_F_ENGINE_PKEY_ASN1_FIND_STR 0 -# define ENGINE_F_ENGINE_REMOVE 0 -# define ENGINE_F_ENGINE_SET_DEFAULT_STRING 0 -# define ENGINE_F_ENGINE_SET_ID 0 -# define ENGINE_F_ENGINE_SET_NAME 0 -# define ENGINE_F_ENGINE_TABLE_REGISTER 0 -# define ENGINE_F_ENGINE_UNLOCKED_FINISH 0 -# define ENGINE_F_ENGINE_UP_REF 0 -# define ENGINE_F_INT_CLEANUP_ITEM 0 -# define ENGINE_F_INT_CTRL_HELPER 0 -# define ENGINE_F_INT_ENGINE_CONFIGURE 0 -# define ENGINE_F_INT_ENGINE_MODULE_INIT 0 -# define ENGINE_F_OSSL_HMAC_INIT 0 -# endif - -/* - * EVP function codes. - */ -# define EVP_F_AESNI_INIT_KEY 0 -# define EVP_F_AESNI_XTS_INIT_KEY 0 -# define EVP_F_AES_GCM_CTRL 0 -# define EVP_F_AES_INIT_KEY 0 -# define EVP_F_AES_OCB_CIPHER 0 -# define EVP_F_AES_T4_INIT_KEY 0 -# define EVP_F_AES_T4_XTS_INIT_KEY 0 -# define EVP_F_AES_WRAP_CIPHER 0 -# define EVP_F_AES_XTS_INIT_KEY 0 -# define EVP_F_ALG_MODULE_INIT 0 -# define EVP_F_ARIA_CCM_INIT_KEY 0 -# define EVP_F_ARIA_GCM_CTRL 0 -# define EVP_F_ARIA_GCM_INIT_KEY 0 -# define EVP_F_ARIA_INIT_KEY 0 -# define EVP_F_B64_NEW 0 -# define EVP_F_CAMELLIA_INIT_KEY 0 -# define EVP_F_CHACHA20_POLY1305_CTRL 0 -# define EVP_F_CMLL_T4_INIT_KEY 0 -# define EVP_F_DES_EDE3_WRAP_CIPHER 0 -# define EVP_F_DO_SIGVER_INIT 0 -# define EVP_F_ENC_NEW 0 -# define EVP_F_EVP_CIPHERINIT_EX 0 -# define EVP_F_EVP_CIPHER_ASN1_TO_PARAM 0 -# define EVP_F_EVP_CIPHER_CTX_COPY 0 -# define EVP_F_EVP_CIPHER_CTX_CTRL 0 -# define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 0 -# define EVP_F_EVP_CIPHER_PARAM_TO_ASN1 0 -# define EVP_F_EVP_DECRYPTFINAL_EX 0 -# define EVP_F_EVP_DECRYPTUPDATE 0 -# define EVP_F_EVP_DIGESTFINALXOF 0 -# define EVP_F_EVP_DIGESTINIT_EX 0 -# define EVP_F_EVP_ENCRYPTDECRYPTUPDATE 0 -# define EVP_F_EVP_ENCRYPTFINAL_EX 0 -# define EVP_F_EVP_ENCRYPTUPDATE 0 -# define EVP_F_EVP_MD_CTX_COPY_EX 0 -# define EVP_F_EVP_MD_SIZE 0 -# define EVP_F_EVP_OPENINIT 0 -# define EVP_F_EVP_PBE_ALG_ADD 0 -# define EVP_F_EVP_PBE_ALG_ADD_TYPE 0 -# define EVP_F_EVP_PBE_CIPHERINIT 0 -# define EVP_F_EVP_PBE_SCRYPT 0 -# define EVP_F_EVP_PKCS82PKEY 0 -# define EVP_F_EVP_PKEY2PKCS8 0 -# define EVP_F_EVP_PKEY_ASN1_ADD0 0 -# define EVP_F_EVP_PKEY_CHECK 0 -# define EVP_F_EVP_PKEY_COPY_PARAMETERS 0 -# define EVP_F_EVP_PKEY_CTX_CTRL 0 -# define EVP_F_EVP_PKEY_CTX_CTRL_STR 0 -# define EVP_F_EVP_PKEY_CTX_DUP 0 -# define EVP_F_EVP_PKEY_CTX_MD 0 -# define EVP_F_EVP_PKEY_DECRYPT 0 -# define EVP_F_EVP_PKEY_DECRYPT_INIT 0 -# define EVP_F_EVP_PKEY_DECRYPT_OLD 0 -# define EVP_F_EVP_PKEY_DERIVE 0 -# define EVP_F_EVP_PKEY_DERIVE_INIT 0 -# define EVP_F_EVP_PKEY_DERIVE_SET_PEER 0 -# define EVP_F_EVP_PKEY_ENCRYPT 0 -# define EVP_F_EVP_PKEY_ENCRYPT_INIT 0 -# define EVP_F_EVP_PKEY_ENCRYPT_OLD 0 -# define EVP_F_EVP_PKEY_GET0_DH 0 -# define EVP_F_EVP_PKEY_GET0_DSA 0 -# define EVP_F_EVP_PKEY_GET0_EC_KEY 0 -# define EVP_F_EVP_PKEY_GET0_HMAC 0 -# define EVP_F_EVP_PKEY_GET0_POLY1305 0 -# define EVP_F_EVP_PKEY_GET0_RSA 0 -# define EVP_F_EVP_PKEY_GET0_SIPHASH 0 -# define EVP_F_EVP_PKEY_GET_RAW_PRIVATE_KEY 0 -# define EVP_F_EVP_PKEY_GET_RAW_PUBLIC_KEY 0 -# define EVP_F_EVP_PKEY_KEYGEN 0 -# define EVP_F_EVP_PKEY_KEYGEN_INIT 0 -# define EVP_F_EVP_PKEY_METH_ADD0 0 -# define EVP_F_EVP_PKEY_METH_NEW 0 -# define EVP_F_EVP_PKEY_NEW 0 -# define EVP_F_EVP_PKEY_NEW_CMAC_KEY 0 -# define EVP_F_EVP_PKEY_NEW_RAW_PRIVATE_KEY 0 -# define EVP_F_EVP_PKEY_NEW_RAW_PUBLIC_KEY 0 -# define EVP_F_EVP_PKEY_PARAMGEN 0 -# define EVP_F_EVP_PKEY_PARAMGEN_INIT 0 -# define EVP_F_EVP_PKEY_PARAM_CHECK 0 -# define EVP_F_EVP_PKEY_PUBLIC_CHECK 0 -# define EVP_F_EVP_PKEY_SET1_ENGINE 0 -# define EVP_F_EVP_PKEY_SET_ALIAS_TYPE 0 -# define EVP_F_EVP_PKEY_SIGN 0 -# define EVP_F_EVP_PKEY_SIGN_INIT 0 -# define EVP_F_EVP_PKEY_VERIFY 0 -# define EVP_F_EVP_PKEY_VERIFY_INIT 0 -# define EVP_F_EVP_PKEY_VERIFY_RECOVER 0 -# define EVP_F_EVP_PKEY_VERIFY_RECOVER_INIT 0 -# define EVP_F_EVP_SIGNFINAL 0 -# define EVP_F_EVP_VERIFYFINAL 0 -# define EVP_F_INT_CTX_NEW 0 -# define EVP_F_OK_NEW 0 -# define EVP_F_PKCS5_PBE_KEYIVGEN 0 -# define EVP_F_PKCS5_V2_PBE_KEYIVGEN 0 -# define EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN 0 -# define EVP_F_PKCS5_V2_SCRYPT_KEYIVGEN 0 -# define EVP_F_PKEY_SET_TYPE 0 -# define EVP_F_RC2_MAGIC_TO_METH 0 -# define EVP_F_RC5_CTRL 0 -# define EVP_F_R_32_12_16_INIT_KEY 0 -# define EVP_F_S390X_AES_GCM_CTRL 0 -# define EVP_F_UPDATE 0 - -/* - * KDF function codes. - */ -# define KDF_F_PKEY_HKDF_CTRL_STR 0 -# define KDF_F_PKEY_HKDF_DERIVE 0 -# define KDF_F_PKEY_HKDF_INIT 0 -# define KDF_F_PKEY_SCRYPT_CTRL_STR 0 -# define KDF_F_PKEY_SCRYPT_CTRL_UINT64 0 -# define KDF_F_PKEY_SCRYPT_DERIVE 0 -# define KDF_F_PKEY_SCRYPT_INIT 0 -# define KDF_F_PKEY_SCRYPT_SET_MEMBUF 0 -# define KDF_F_PKEY_TLS1_PRF_CTRL_STR 0 -# define KDF_F_PKEY_TLS1_PRF_DERIVE 0 -# define KDF_F_PKEY_TLS1_PRF_INIT 0 -# define KDF_F_TLS1_PRF_ALG 0 - -/* - * KDF reason codes. - */ -# define KDF_R_INVALID_DIGEST 0 -# define KDF_R_MISSING_ITERATION_COUNT 0 -# define KDF_R_MISSING_KEY 0 -# define KDF_R_MISSING_MESSAGE_DIGEST 0 -# define KDF_R_MISSING_PARAMETER 0 -# define KDF_R_MISSING_PASS 0 -# define KDF_R_MISSING_SALT 0 -# define KDF_R_MISSING_SECRET 0 -# define KDF_R_MISSING_SEED 0 -# define KDF_R_UNKNOWN_PARAMETER_TYPE 0 -# define KDF_R_VALUE_ERROR 0 -# define KDF_R_VALUE_MISSING 0 - -/* - * OBJ function codes. - */ -# define OBJ_F_OBJ_ADD_OBJECT 0 -# define OBJ_F_OBJ_ADD_SIGID 0 -# define OBJ_F_OBJ_CREATE 0 -# define OBJ_F_OBJ_DUP 0 -# define OBJ_F_OBJ_NAME_NEW_INDEX 0 -# define OBJ_F_OBJ_NID2LN 0 -# define OBJ_F_OBJ_NID2OBJ 0 -# define OBJ_F_OBJ_NID2SN 0 -# define OBJ_F_OBJ_TXT2OBJ 0 - -# ifndef OPENSSL_NO_OCSP -/* - * OCSP function codes. - */ -# define OCSP_F_D2I_OCSP_NONCE 0 -# define OCSP_F_OCSP_BASIC_ADD1_STATUS 0 -# define OCSP_F_OCSP_BASIC_SIGN 0 -# define OCSP_F_OCSP_BASIC_SIGN_CTX 0 -# define OCSP_F_OCSP_BASIC_VERIFY 0 -# define OCSP_F_OCSP_CERT_ID_NEW 0 -# define OCSP_F_OCSP_CHECK_DELEGATED 0 -# define OCSP_F_OCSP_CHECK_IDS 0 -# define OCSP_F_OCSP_CHECK_ISSUER 0 -# define OCSP_F_OCSP_CHECK_VALIDITY 0 -# define OCSP_F_OCSP_MATCH_ISSUERID 0 -# define OCSP_F_OCSP_PARSE_URL 0 -# define OCSP_F_OCSP_REQUEST_SIGN 0 -# define OCSP_F_OCSP_REQUEST_VERIFY 0 -# define OCSP_F_OCSP_RESPONSE_GET1_BASIC 0 -# define OCSP_F_PARSE_HTTP_LINE1 0 -# endif - -/* - * PEM function codes. - */ -# define PEM_F_B2I_DSS 0 -# define PEM_F_B2I_PVK_BIO 0 -# define PEM_F_B2I_RSA 0 -# define PEM_F_CHECK_BITLEN_DSA 0 -# define PEM_F_CHECK_BITLEN_RSA 0 -# define PEM_F_D2I_PKCS8PRIVATEKEY_BIO 0 -# define PEM_F_D2I_PKCS8PRIVATEKEY_FP 0 -# define PEM_F_DO_B2I 0 -# define PEM_F_DO_B2I_BIO 0 -# define PEM_F_DO_BLOB_HEADER 0 -# define PEM_F_DO_I2B 0 -# define PEM_F_DO_PK8PKEY 0 -# define PEM_F_DO_PK8PKEY_FP 0 -# define PEM_F_DO_PVK_BODY 0 -# define PEM_F_DO_PVK_HEADER 0 -# define PEM_F_GET_HEADER_AND_DATA 0 -# define PEM_F_GET_NAME 0 -# define PEM_F_I2B_PVK 0 -# define PEM_F_I2B_PVK_BIO 0 -# define PEM_F_LOAD_IV 0 -# define PEM_F_PEM_ASN1_READ 0 -# define PEM_F_PEM_ASN1_READ_BIO 0 -# define PEM_F_PEM_ASN1_WRITE 0 -# define PEM_F_PEM_ASN1_WRITE_BIO 0 -# define PEM_F_PEM_DEF_CALLBACK 0 -# define PEM_F_PEM_DO_HEADER 0 -# define PEM_F_PEM_GET_EVP_CIPHER_INFO 0 -# define PEM_F_PEM_READ 0 -# define PEM_F_PEM_READ_BIO 0 -# define PEM_F_PEM_READ_BIO_DHPARAMS 0 -# define PEM_F_PEM_READ_BIO_EX 0 -# define PEM_F_PEM_READ_BIO_PARAMETERS 0 -# define PEM_F_PEM_READ_BIO_PRIVATEKEY 0 -# define PEM_F_PEM_READ_DHPARAMS 0 -# define PEM_F_PEM_READ_PRIVATEKEY 0 -# define PEM_F_PEM_SIGNFINAL 0 -# define PEM_F_PEM_WRITE 0 -# define PEM_F_PEM_WRITE_BIO 0 -# define PEM_F_PEM_WRITE_BIO_PRIVATEKEY_TRADITIONAL 0 -# define PEM_F_PEM_WRITE_PRIVATEKEY 0 -# define PEM_F_PEM_X509_INFO_READ 0 -# define PEM_F_PEM_X509_INFO_READ_BIO 0 -# define PEM_F_PEM_X509_INFO_WRITE_BIO 0 - -/* - * PKCS12 function codes. - */ -# define PKCS12_F_OPENSSL_ASC2UNI 0 -# define PKCS12_F_OPENSSL_UNI2ASC 0 -# define PKCS12_F_OPENSSL_UNI2UTF8 0 -# define PKCS12_F_OPENSSL_UTF82UNI 0 -# define PKCS12_F_PKCS12_CREATE 0 -# define PKCS12_F_PKCS12_GEN_MAC 0 -# define PKCS12_F_PKCS12_INIT 0 -# define PKCS12_F_PKCS12_ITEM_DECRYPT_D2I 0 -# define PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT 0 -# define PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG 0 -# define PKCS12_F_PKCS12_KEY_GEN_ASC 0 -# define PKCS12_F_PKCS12_KEY_GEN_UNI 0 -# define PKCS12_F_PKCS12_KEY_GEN_UTF8 0 -# define PKCS12_F_PKCS12_NEWPASS 0 -# define PKCS12_F_PKCS12_PACK_P7DATA 0 -# define PKCS12_F_PKCS12_PACK_P7ENCDATA 0 -# define PKCS12_F_PKCS12_PARSE 0 -# define PKCS12_F_PKCS12_PBE_CRYPT 0 -# define PKCS12_F_PKCS12_PBE_KEYIVGEN 0 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_P8INF 0 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_PKCS8 0 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE_PKCS8_ENCRYPT 0 -# define PKCS12_F_PKCS12_SETUP_MAC 0 -# define PKCS12_F_PKCS12_SET_MAC 0 -# define PKCS12_F_PKCS12_UNPACK_AUTHSAFES 0 -# define PKCS12_F_PKCS12_UNPACK_P7DATA 0 -# define PKCS12_F_PKCS12_VERIFY_MAC 0 -# define PKCS12_F_PKCS8_ENCRYPT 0 -# define PKCS12_F_PKCS8_SET0_PBE 0 - -/* - * PKCS7 function codes. - */ -# define PKCS7_F_DO_PKCS7_SIGNED_ATTRIB 0 -# define PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME 0 -# define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP 0 -# define PKCS7_F_PKCS7_ADD_CERTIFICATE 0 -# define PKCS7_F_PKCS7_ADD_CRL 0 -# define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 0 -# define PKCS7_F_PKCS7_ADD_SIGNATURE 0 -# define PKCS7_F_PKCS7_ADD_SIGNER 0 -# define PKCS7_F_PKCS7_BIO_ADD_DIGEST 0 -# define PKCS7_F_PKCS7_COPY_EXISTING_DIGEST 0 -# define PKCS7_F_PKCS7_CTRL 0 -# define PKCS7_F_PKCS7_DATADECODE 0 -# define PKCS7_F_PKCS7_DATAFINAL 0 -# define PKCS7_F_PKCS7_DATAINIT 0 -# define PKCS7_F_PKCS7_DATAVERIFY 0 -# define PKCS7_F_PKCS7_DECRYPT 0 -# define PKCS7_F_PKCS7_DECRYPT_RINFO 0 -# define PKCS7_F_PKCS7_ENCODE_RINFO 0 -# define PKCS7_F_PKCS7_ENCRYPT 0 -# define PKCS7_F_PKCS7_FINAL 0 -# define PKCS7_F_PKCS7_FIND_DIGEST 0 -# define PKCS7_F_PKCS7_GET0_SIGNERS 0 -# define PKCS7_F_PKCS7_RECIP_INFO_SET 0 -# define PKCS7_F_PKCS7_SET_CIPHER 0 -# define PKCS7_F_PKCS7_SET_CONTENT 0 -# define PKCS7_F_PKCS7_SET_DIGEST 0 -# define PKCS7_F_PKCS7_SET_TYPE 0 -# define PKCS7_F_PKCS7_SIGN 0 -# define PKCS7_F_PKCS7_SIGNATUREVERIFY 0 -# define PKCS7_F_PKCS7_SIGNER_INFO_SET 0 -# define PKCS7_F_PKCS7_SIGNER_INFO_SIGN 0 -# define PKCS7_F_PKCS7_SIGN_ADD_SIGNER 0 -# define PKCS7_F_PKCS7_SIMPLE_SMIMECAP 0 -# define PKCS7_F_PKCS7_VERIFY 0 - -/* - * RAND function codes. - */ -# define RAND_F_DATA_COLLECT_METHOD 0 -# define RAND_F_DRBG_BYTES 0 -# define RAND_F_DRBG_GET_ENTROPY 0 -# define RAND_F_DRBG_SETUP 0 -# define RAND_F_GET_ENTROPY 0 -# define RAND_F_RAND_BYTES 0 -# define RAND_F_RAND_DRBG_ENABLE_LOCKING 0 -# define RAND_F_RAND_DRBG_GENERATE 0 -# define RAND_F_RAND_DRBG_GET_ENTROPY 0 -# define RAND_F_RAND_DRBG_GET_NONCE 0 -# define RAND_F_RAND_DRBG_INSTANTIATE 0 -# define RAND_F_RAND_DRBG_NEW 0 -# define RAND_F_RAND_DRBG_RESEED 0 -# define RAND_F_RAND_DRBG_RESTART 0 -# define RAND_F_RAND_DRBG_SET 0 -# define RAND_F_RAND_DRBG_SET_DEFAULTS 0 -# define RAND_F_RAND_DRBG_UNINSTANTIATE 0 -# define RAND_F_RAND_LOAD_FILE 0 -# define RAND_F_RAND_POOL_ACQUIRE_ENTROPY 0 -# define RAND_F_RAND_POOL_ADD 0 -# define RAND_F_RAND_POOL_ADD_BEGIN 0 -# define RAND_F_RAND_POOL_ADD_END 0 -# define RAND_F_RAND_POOL_ATTACH 0 -# define RAND_F_RAND_POOL_BYTES_NEEDED 0 -# define RAND_F_RAND_POOL_GROW 0 -# define RAND_F_RAND_POOL_NEW 0 -# define RAND_F_RAND_PSEUDO_BYTES 0 -# define RAND_F_RAND_WRITE_FILE 0 - -/* - * RSA function codes. - */ -# define RSA_F_CHECK_PADDING_MD 0 -# define RSA_F_ENCODE_PKCS1 0 -# define RSA_F_INT_RSA_VERIFY 0 -# define RSA_F_OLD_RSA_PRIV_DECODE 0 -# define RSA_F_PKEY_PSS_INIT 0 -# define RSA_F_PKEY_RSA_CTRL 0 -# define RSA_F_PKEY_RSA_CTRL_STR 0 -# define RSA_F_PKEY_RSA_SIGN 0 -# define RSA_F_PKEY_RSA_VERIFY 0 -# define RSA_F_PKEY_RSA_VERIFYRECOVER 0 -# define RSA_F_RSA_ALGOR_TO_MD 0 -# define RSA_F_RSA_BUILTIN_KEYGEN 0 -# define RSA_F_RSA_CHECK_KEY 0 -# define RSA_F_RSA_CHECK_KEY_EX 0 -# define RSA_F_RSA_CMS_DECRYPT 0 -# define RSA_F_RSA_CMS_VERIFY 0 -# define RSA_F_RSA_ITEM_VERIFY 0 -# define RSA_F_RSA_METH_DUP 0 -# define RSA_F_RSA_METH_NEW 0 -# define RSA_F_RSA_METH_SET1_NAME 0 -# define RSA_F_RSA_MGF1_TO_MD 0 -# define RSA_F_RSA_MULTIP_INFO_NEW 0 -# define RSA_F_RSA_NEW_METHOD 0 -# define RSA_F_RSA_NULL 0 -# define RSA_F_RSA_NULL_PRIVATE_DECRYPT 0 -# define RSA_F_RSA_NULL_PRIVATE_ENCRYPT 0 -# define RSA_F_RSA_NULL_PUBLIC_DECRYPT 0 -# define RSA_F_RSA_NULL_PUBLIC_ENCRYPT 0 -# define RSA_F_RSA_OSSL_PRIVATE_DECRYPT 0 -# define RSA_F_RSA_OSSL_PRIVATE_ENCRYPT 0 -# define RSA_F_RSA_OSSL_PUBLIC_DECRYPT 0 -# define RSA_F_RSA_OSSL_PUBLIC_ENCRYPT 0 -# define RSA_F_RSA_PADDING_ADD_NONE 0 -# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP 0 -# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1 0 -# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS 0 -# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS_MGF1 0 -# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1 0 -# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_2 0 -# define RSA_F_RSA_PADDING_ADD_SSLV23 0 -# define RSA_F_RSA_PADDING_ADD_X931 0 -# define RSA_F_RSA_PADDING_CHECK_NONE 0 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP 0 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1 0 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1 0 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2 0 -# define RSA_F_RSA_PADDING_CHECK_SSLV23 0 -# define RSA_F_RSA_PADDING_CHECK_X931 0 -# define RSA_F_RSA_PARAM_DECODE 0 -# define RSA_F_RSA_PRINT 0 -# define RSA_F_RSA_PRINT_FP 0 -# define RSA_F_RSA_PRIV_DECODE 0 -# define RSA_F_RSA_PRIV_ENCODE 0 -# define RSA_F_RSA_PSS_GET_PARAM 0 -# define RSA_F_RSA_PSS_TO_CTX 0 -# define RSA_F_RSA_PUB_DECODE 0 -# define RSA_F_RSA_SETUP_BLINDING 0 -# define RSA_F_RSA_SIGN 0 -# define RSA_F_RSA_SIGN_ASN1_OCTET_STRING 0 -# define RSA_F_RSA_VERIFY 0 -# define RSA_F_RSA_VERIFY_ASN1_OCTET_STRING 0 -# define RSA_F_RSA_VERIFY_PKCS1_PSS_MGF1 0 -# define RSA_F_SETUP_TBUF 0 - -/* - * OSSL_STORE function codes. - */ -# define OSSL_STORE_F_FILE_CTRL 0 -# define OSSL_STORE_F_FILE_FIND 0 -# define OSSL_STORE_F_FILE_GET_PASS 0 -# define OSSL_STORE_F_FILE_LOAD 0 -# define OSSL_STORE_F_FILE_LOAD_TRY_DECODE 0 -# define OSSL_STORE_F_FILE_NAME_TO_URI 0 -# define OSSL_STORE_F_FILE_OPEN 0 -# define OSSL_STORE_F_OSSL_STORE_ATTACH_PEM_BIO 0 -# define OSSL_STORE_F_OSSL_STORE_EXPECT 0 -# define OSSL_STORE_F_OSSL_STORE_FILE_ATTACH_PEM_BIO_INT 0 -# define OSSL_STORE_F_OSSL_STORE_FIND 0 -# define OSSL_STORE_F_OSSL_STORE_GET0_LOADER_INT 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_CERT 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_CRL 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_NAME 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_NAME_DESCRIPTION 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_PARAMS 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_PKEY 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_CERT 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_CRL 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_EMBEDDED 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_NAME 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_PARAMS 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_PKEY 0 -# define OSSL_STORE_F_OSSL_STORE_INFO_SET0_NAME_DESCRIPTION 0 -# define OSSL_STORE_F_OSSL_STORE_INIT_ONCE 0 -# define OSSL_STORE_F_OSSL_STORE_LOADER_NEW 0 -# define OSSL_STORE_F_OSSL_STORE_OPEN 0 -# define OSSL_STORE_F_OSSL_STORE_OPEN_INT 0 -# define OSSL_STORE_F_OSSL_STORE_REGISTER_LOADER_INT 0 -# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_ALIAS 0 -# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_ISSUER_SERIAL 0 -# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_KEY_FINGERPRINT 0 -# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_NAME 0 -# define OSSL_STORE_F_OSSL_STORE_UNREGISTER_LOADER_INT 0 -# define OSSL_STORE_F_TRY_DECODE_PARAMS 0 -# define OSSL_STORE_F_TRY_DECODE_PKCS12 0 -# define OSSL_STORE_F_TRY_DECODE_PKCS8ENCRYPTED 0 - -# ifndef OPENSSL_NO_TS -/* - * TS function codes. - */ -# define TS_F_DEF_SERIAL_CB 0 -# define TS_F_DEF_TIME_CB 0 -# define TS_F_ESS_ADD_SIGNING_CERT 0 -# define TS_F_ESS_ADD_SIGNING_CERT_V2 0 -# define TS_F_ESS_CERT_ID_NEW_INIT 0 -# define TS_F_ESS_CERT_ID_V2_NEW_INIT 0 -# define TS_F_ESS_SIGNING_CERT_NEW_INIT 0 -# define TS_F_ESS_SIGNING_CERT_V2_NEW_INIT 0 -# define TS_F_INT_TS_RESP_VERIFY_TOKEN 0 -# define TS_F_PKCS7_TO_TS_TST_INFO 0 -# define TS_F_TS_ACCURACY_SET_MICROS 0 -# define TS_F_TS_ACCURACY_SET_MILLIS 0 -# define TS_F_TS_ACCURACY_SET_SECONDS 0 -# define TS_F_TS_CHECK_IMPRINTS 0 -# define TS_F_TS_CHECK_NONCES 0 -# define TS_F_TS_CHECK_POLICY 0 -# define TS_F_TS_CHECK_SIGNING_CERTS 0 -# define TS_F_TS_CHECK_STATUS_INFO 0 -# define TS_F_TS_COMPUTE_IMPRINT 0 -# define TS_F_TS_CONF_INVALID 0 -# define TS_F_TS_CONF_LOAD_CERT 0 -# define TS_F_TS_CONF_LOAD_CERTS 0 -# define TS_F_TS_CONF_LOAD_KEY 0 -# define TS_F_TS_CONF_LOOKUP_FAIL 0 -# define TS_F_TS_CONF_SET_DEFAULT_ENGINE 0 -# define TS_F_TS_GET_STATUS_TEXT 0 -# define TS_F_TS_MSG_IMPRINT_SET_ALGO 0 -# define TS_F_TS_REQ_SET_MSG_IMPRINT 0 -# define TS_F_TS_REQ_SET_NONCE 0 -# define TS_F_TS_REQ_SET_POLICY_ID 0 -# define TS_F_TS_RESP_CREATE_RESPONSE 0 -# define TS_F_TS_RESP_CREATE_TST_INFO 0 -# define TS_F_TS_RESP_CTX_ADD_FAILURE_INFO 0 -# define TS_F_TS_RESP_CTX_ADD_MD 0 -# define TS_F_TS_RESP_CTX_ADD_POLICY 0 -# define TS_F_TS_RESP_CTX_NEW 0 -# define TS_F_TS_RESP_CTX_SET_ACCURACY 0 -# define TS_F_TS_RESP_CTX_SET_CERTS 0 -# define TS_F_TS_RESP_CTX_SET_DEF_POLICY 0 -# define TS_F_TS_RESP_CTX_SET_SIGNER_CERT 0 -# define TS_F_TS_RESP_CTX_SET_STATUS_INFO 0 -# define TS_F_TS_RESP_GET_POLICY 0 -# define TS_F_TS_RESP_SET_GENTIME_WITH_PRECISION 0 -# define TS_F_TS_RESP_SET_STATUS_INFO 0 -# define TS_F_TS_RESP_SET_TST_INFO 0 -# define TS_F_TS_RESP_SIGN 0 -# define TS_F_TS_RESP_VERIFY_SIGNATURE 0 -# define TS_F_TS_TST_INFO_SET_ACCURACY 0 -# define TS_F_TS_TST_INFO_SET_MSG_IMPRINT 0 -# define TS_F_TS_TST_INFO_SET_NONCE 0 -# define TS_F_TS_TST_INFO_SET_POLICY_ID 0 -# define TS_F_TS_TST_INFO_SET_SERIAL 0 -# define TS_F_TS_TST_INFO_SET_TIME 0 -# define TS_F_TS_TST_INFO_SET_TSA 0 -# define TS_F_TS_VERIFY 0 -# define TS_F_TS_VERIFY_CERT 0 -# define TS_F_TS_VERIFY_CTX_NEW 0 -# endif - -/* - * UI function codes. - */ -# define UI_F_CLOSE_CONSOLE 0 -# define UI_F_ECHO_CONSOLE 0 -# define UI_F_GENERAL_ALLOCATE_BOOLEAN 0 -# define UI_F_GENERAL_ALLOCATE_PROMPT 0 -# define UI_F_NOECHO_CONSOLE 0 -# define UI_F_OPEN_CONSOLE 0 -# define UI_F_UI_CONSTRUCT_PROMPT 0 -# define UI_F_UI_CREATE_METHOD 0 -# define UI_F_UI_CTRL 0 -# define UI_F_UI_DUP_ERROR_STRING 0 -# define UI_F_UI_DUP_INFO_STRING 0 -# define UI_F_UI_DUP_INPUT_BOOLEAN 0 -# define UI_F_UI_DUP_INPUT_STRING 0 -# define UI_F_UI_DUP_USER_DATA 0 -# define UI_F_UI_DUP_VERIFY_STRING 0 -# define UI_F_UI_GET0_RESULT 0 -# define UI_F_UI_GET_RESULT_LENGTH 0 -# define UI_F_UI_NEW_METHOD 0 -# define UI_F_UI_PROCESS 0 -# define UI_F_UI_SET_RESULT 0 -# define UI_F_UI_SET_RESULT_EX 0 - -/* - * X509 function codes. - */ -# define X509_F_ADD_CERT_DIR 0 -# define X509_F_BUILD_CHAIN 0 -# define X509_F_BY_FILE_CTRL 0 -# define X509_F_CHECK_NAME_CONSTRAINTS 0 -# define X509_F_CHECK_POLICY 0 -# define X509_F_DANE_I2D 0 -# define X509_F_DIR_CTRL 0 -# define X509_F_GET_CERT_BY_SUBJECT 0 -# define X509_F_I2D_X509_AUX 0 -# define X509_F_LOOKUP_CERTS_SK 0 -# define X509_F_NETSCAPE_SPKI_B64_DECODE 0 -# define X509_F_NETSCAPE_SPKI_B64_ENCODE 0 -# define X509_F_NEW_DIR 0 -# define X509_F_X509AT_ADD1_ATTR 0 -# define X509_F_X509V3_ADD_EXT 0 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_NID 0 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ 0 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_TXT 0 -# define X509_F_X509_ATTRIBUTE_GET0_DATA 0 -# define X509_F_X509_ATTRIBUTE_SET1_DATA 0 -# define X509_F_X509_CHECK_PRIVATE_KEY 0 -# define X509_F_X509_CRL_DIFF 0 -# define X509_F_X509_CRL_METHOD_NEW 0 -# define X509_F_X509_CRL_PRINT_FP 0 -# define X509_F_X509_EXTENSION_CREATE_BY_NID 0 -# define X509_F_X509_EXTENSION_CREATE_BY_OBJ 0 -# define X509_F_X509_GET_PUBKEY_PARAMETERS 0 -# define X509_F_X509_LOAD_CERT_CRL_FILE 0 -# define X509_F_X509_LOAD_CERT_FILE 0 -# define X509_F_X509_LOAD_CRL_FILE 0 -# define X509_F_X509_LOOKUP_METH_NEW 0 -# define X509_F_X509_LOOKUP_NEW 0 -# define X509_F_X509_NAME_ADD_ENTRY 0 -# define X509_F_X509_NAME_CANON 0 -# define X509_F_X509_NAME_ENTRY_CREATE_BY_NID 0 -# define X509_F_X509_NAME_ENTRY_CREATE_BY_TXT 0 -# define X509_F_X509_NAME_ENTRY_SET_OBJECT 0 -# define X509_F_X509_NAME_ONELINE 0 -# define X509_F_X509_NAME_PRINT 0 -# define X509_F_X509_OBJECT_NEW 0 -# define X509_F_X509_PRINT_EX_FP 0 -# define X509_F_X509_PUBKEY_DECODE 0 -# define X509_F_X509_PUBKEY_GET 0 -# define X509_F_X509_PUBKEY_GET0 0 -# define X509_F_X509_PUBKEY_SET 0 -# define X509_F_X509_REQ_CHECK_PRIVATE_KEY 0 -# define X509_F_X509_REQ_PRINT_EX 0 -# define X509_F_X509_REQ_PRINT_FP 0 -# define X509_F_X509_REQ_TO_X509 0 -# define X509_F_X509_STORE_ADD_CERT 0 -# define X509_F_X509_STORE_ADD_CRL 0 -# define X509_F_X509_STORE_ADD_LOOKUP 0 -# define X509_F_X509_STORE_CTX_GET1_ISSUER 0 -# define X509_F_X509_STORE_CTX_INIT 0 -# define X509_F_X509_STORE_CTX_NEW 0 -# define X509_F_X509_STORE_CTX_PURPOSE_INHERIT 0 -# define X509_F_X509_STORE_NEW 0 -# define X509_F_X509_TO_X509_REQ 0 -# define X509_F_X509_TRUST_ADD 0 -# define X509_F_X509_TRUST_SET 0 -# define X509_F_X509_VERIFY_CERT 0 -# define X509_F_X509_VERIFY_PARAM_NEW 0 - -/* - * X509V3 function codes. - */ -# define X509V3_F_A2I_GENERAL_NAME 0 -# define X509V3_F_ADDR_VALIDATE_PATH_INTERNAL 0 -# define X509V3_F_ASIDENTIFIERCHOICE_CANONIZE 0 -# define X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL 0 -# define X509V3_F_BIGNUM_TO_STRING 0 -# define X509V3_F_COPY_EMAIL 0 -# define X509V3_F_COPY_ISSUER 0 -# define X509V3_F_DO_DIRNAME 0 -# define X509V3_F_DO_EXT_I2D 0 -# define X509V3_F_DO_EXT_NCONF 0 -# define X509V3_F_GNAMES_FROM_SECTNAME 0 -# define X509V3_F_I2S_ASN1_ENUMERATED 0 -# define X509V3_F_I2S_ASN1_IA5STRING 0 -# define X509V3_F_I2S_ASN1_INTEGER 0 -# define X509V3_F_I2V_AUTHORITY_INFO_ACCESS 0 -# define X509V3_F_LEVEL_ADD_NODE 0 -# define X509V3_F_NOTICE_SECTION 0 -# define X509V3_F_NREF_NOS 0 -# define X509V3_F_POLICY_CACHE_CREATE 0 -# define X509V3_F_POLICY_CACHE_NEW 0 -# define X509V3_F_POLICY_DATA_NEW 0 -# define X509V3_F_POLICY_SECTION 0 -# define X509V3_F_PROCESS_PCI_VALUE 0 -# define X509V3_F_R2I_CERTPOL 0 -# define X509V3_F_R2I_PCI 0 -# define X509V3_F_S2I_ASN1_IA5STRING 0 -# define X509V3_F_S2I_ASN1_INTEGER 0 -# define X509V3_F_S2I_ASN1_OCTET_STRING 0 -# define X509V3_F_S2I_SKEY_ID 0 -# define X509V3_F_SET_DIST_POINT_NAME 0 -# define X509V3_F_SXNET_ADD_ID_ASC 0 -# define X509V3_F_SXNET_ADD_ID_INTEGER 0 -# define X509V3_F_SXNET_ADD_ID_ULONG 0 -# define X509V3_F_SXNET_GET_ID_ASC 0 -# define X509V3_F_SXNET_GET_ID_ULONG 0 -# define X509V3_F_TREE_INIT 0 -# define X509V3_F_V2I_ASIDENTIFIERS 0 -# define X509V3_F_V2I_ASN1_BIT_STRING 0 -# define X509V3_F_V2I_AUTHORITY_INFO_ACCESS 0 -# define X509V3_F_V2I_AUTHORITY_KEYID 0 -# define X509V3_F_V2I_BASIC_CONSTRAINTS 0 -# define X509V3_F_V2I_CRLD 0 -# define X509V3_F_V2I_EXTENDED_KEY_USAGE 0 -# define X509V3_F_V2I_GENERAL_NAMES 0 -# define X509V3_F_V2I_GENERAL_NAME_EX 0 -# define X509V3_F_V2I_IDP 0 -# define X509V3_F_V2I_IPADDRBLOCKS 0 -# define X509V3_F_V2I_ISSUER_ALT 0 -# define X509V3_F_V2I_NAME_CONSTRAINTS 0 -# define X509V3_F_V2I_POLICY_CONSTRAINTS 0 -# define X509V3_F_V2I_POLICY_MAPPINGS 0 -# define X509V3_F_V2I_SUBJECT_ALT 0 -# define X509V3_F_V2I_TLS_FEATURE 0 -# define X509V3_F_V3_GENERIC_EXTENSION 0 -# define X509V3_F_X509V3_ADD1_I2D 0 -# define X509V3_F_X509V3_ADD_VALUE 0 -# define X509V3_F_X509V3_EXT_ADD 0 -# define X509V3_F_X509V3_EXT_ADD_ALIAS 0 -# define X509V3_F_X509V3_EXT_I2D 0 -# define X509V3_F_X509V3_EXT_NCONF 0 -# define X509V3_F_X509V3_GET_SECTION 0 -# define X509V3_F_X509V3_GET_STRING 0 -# define X509V3_F_X509V3_GET_VALUE_BOOL 0 -# define X509V3_F_X509V3_PARSE_LIST 0 -# define X509V3_F_X509_PURPOSE_ADD 0 -# define X509V3_F_X509_PURPOSE_SET 0 - -/* - * Compatibility defines. - */ -# define EVP_R_OPERATON_NOT_INITIALIZED EVP_R_OPERATION_NOT_INITIALIZED - -# endif - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/ct.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/ct.h deleted file mode 100644 index 8f78d26..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/ct.h +++ /dev/null @@ -1,573 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\ct.h.in - * - * Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_CT_H -# define OPENSSL_CT_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_CT_H -# endif - -# include - -# ifndef OPENSSL_NO_CT -# include -# include -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - - -/* Minimum RSA key size, from RFC6962 */ -# define SCT_MIN_RSA_BITS 2048 - -/* All hashes are SHA256 in v1 of Certificate Transparency */ -# define CT_V1_HASHLEN SHA256_DIGEST_LENGTH - -SKM_DEFINE_STACK_OF_INTERNAL(SCT, SCT, SCT) -#define sk_SCT_num(sk) OPENSSL_sk_num(ossl_check_const_SCT_sk_type(sk)) -#define sk_SCT_value(sk, idx) ((SCT *)OPENSSL_sk_value(ossl_check_const_SCT_sk_type(sk), (idx))) -#define sk_SCT_new(cmp) ((STACK_OF(SCT) *)OPENSSL_sk_new(ossl_check_SCT_compfunc_type(cmp))) -#define sk_SCT_new_null() ((STACK_OF(SCT) *)OPENSSL_sk_new_null()) -#define sk_SCT_new_reserve(cmp, n) ((STACK_OF(SCT) *)OPENSSL_sk_new_reserve(ossl_check_SCT_compfunc_type(cmp), (n))) -#define sk_SCT_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SCT_sk_type(sk), (n)) -#define sk_SCT_free(sk) OPENSSL_sk_free(ossl_check_SCT_sk_type(sk)) -#define sk_SCT_zero(sk) OPENSSL_sk_zero(ossl_check_SCT_sk_type(sk)) -#define sk_SCT_delete(sk, i) ((SCT *)OPENSSL_sk_delete(ossl_check_SCT_sk_type(sk), (i))) -#define sk_SCT_delete_ptr(sk, ptr) ((SCT *)OPENSSL_sk_delete_ptr(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr))) -#define sk_SCT_push(sk, ptr) OPENSSL_sk_push(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr)) -#define sk_SCT_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr)) -#define sk_SCT_pop(sk) ((SCT *)OPENSSL_sk_pop(ossl_check_SCT_sk_type(sk))) -#define sk_SCT_shift(sk) ((SCT *)OPENSSL_sk_shift(ossl_check_SCT_sk_type(sk))) -#define sk_SCT_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SCT_sk_type(sk), ossl_check_SCT_freefunc_type(freefunc)) -#define sk_SCT_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr), (idx)) -#define sk_SCT_set(sk, idx, ptr) ((SCT *)OPENSSL_sk_set(ossl_check_SCT_sk_type(sk), (idx), ossl_check_SCT_type(ptr))) -#define sk_SCT_find(sk, ptr) OPENSSL_sk_find(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr)) -#define sk_SCT_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr)) -#define sk_SCT_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr), pnum) -#define sk_SCT_sort(sk) OPENSSL_sk_sort(ossl_check_SCT_sk_type(sk)) -#define sk_SCT_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SCT_sk_type(sk)) -#define sk_SCT_dup(sk) ((STACK_OF(SCT) *)OPENSSL_sk_dup(ossl_check_const_SCT_sk_type(sk))) -#define sk_SCT_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SCT) *)OPENSSL_sk_deep_copy(ossl_check_const_SCT_sk_type(sk), ossl_check_SCT_copyfunc_type(copyfunc), ossl_check_SCT_freefunc_type(freefunc))) -#define sk_SCT_set_cmp_func(sk, cmp) ((sk_SCT_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SCT_sk_type(sk), ossl_check_SCT_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(CTLOG, CTLOG, CTLOG) -#define sk_CTLOG_num(sk) OPENSSL_sk_num(ossl_check_const_CTLOG_sk_type(sk)) -#define sk_CTLOG_value(sk, idx) ((CTLOG *)OPENSSL_sk_value(ossl_check_const_CTLOG_sk_type(sk), (idx))) -#define sk_CTLOG_new(cmp) ((STACK_OF(CTLOG) *)OPENSSL_sk_new(ossl_check_CTLOG_compfunc_type(cmp))) -#define sk_CTLOG_new_null() ((STACK_OF(CTLOG) *)OPENSSL_sk_new_null()) -#define sk_CTLOG_new_reserve(cmp, n) ((STACK_OF(CTLOG) *)OPENSSL_sk_new_reserve(ossl_check_CTLOG_compfunc_type(cmp), (n))) -#define sk_CTLOG_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CTLOG_sk_type(sk), (n)) -#define sk_CTLOG_free(sk) OPENSSL_sk_free(ossl_check_CTLOG_sk_type(sk)) -#define sk_CTLOG_zero(sk) OPENSSL_sk_zero(ossl_check_CTLOG_sk_type(sk)) -#define sk_CTLOG_delete(sk, i) ((CTLOG *)OPENSSL_sk_delete(ossl_check_CTLOG_sk_type(sk), (i))) -#define sk_CTLOG_delete_ptr(sk, ptr) ((CTLOG *)OPENSSL_sk_delete_ptr(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr))) -#define sk_CTLOG_push(sk, ptr) OPENSSL_sk_push(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr)) -#define sk_CTLOG_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr)) -#define sk_CTLOG_pop(sk) ((CTLOG *)OPENSSL_sk_pop(ossl_check_CTLOG_sk_type(sk))) -#define sk_CTLOG_shift(sk) ((CTLOG *)OPENSSL_sk_shift(ossl_check_CTLOG_sk_type(sk))) -#define sk_CTLOG_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_freefunc_type(freefunc)) -#define sk_CTLOG_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr), (idx)) -#define sk_CTLOG_set(sk, idx, ptr) ((CTLOG *)OPENSSL_sk_set(ossl_check_CTLOG_sk_type(sk), (idx), ossl_check_CTLOG_type(ptr))) -#define sk_CTLOG_find(sk, ptr) OPENSSL_sk_find(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr)) -#define sk_CTLOG_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr)) -#define sk_CTLOG_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr), pnum) -#define sk_CTLOG_sort(sk) OPENSSL_sk_sort(ossl_check_CTLOG_sk_type(sk)) -#define sk_CTLOG_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CTLOG_sk_type(sk)) -#define sk_CTLOG_dup(sk) ((STACK_OF(CTLOG) *)OPENSSL_sk_dup(ossl_check_const_CTLOG_sk_type(sk))) -#define sk_CTLOG_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CTLOG) *)OPENSSL_sk_deep_copy(ossl_check_const_CTLOG_sk_type(sk), ossl_check_CTLOG_copyfunc_type(copyfunc), ossl_check_CTLOG_freefunc_type(freefunc))) -#define sk_CTLOG_set_cmp_func(sk, cmp) ((sk_CTLOG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_compfunc_type(cmp))) - - - -typedef enum { - CT_LOG_ENTRY_TYPE_NOT_SET = -1, - CT_LOG_ENTRY_TYPE_X509 = 0, - CT_LOG_ENTRY_TYPE_PRECERT = 1 -} ct_log_entry_type_t; - -typedef enum { - SCT_VERSION_NOT_SET = -1, - SCT_VERSION_V1 = 0 -} sct_version_t; - -typedef enum { - SCT_SOURCE_UNKNOWN, - SCT_SOURCE_TLS_EXTENSION, - SCT_SOURCE_X509V3_EXTENSION, - SCT_SOURCE_OCSP_STAPLED_RESPONSE -} sct_source_t; - -typedef enum { - SCT_VALIDATION_STATUS_NOT_SET, - SCT_VALIDATION_STATUS_UNKNOWN_LOG, - SCT_VALIDATION_STATUS_VALID, - SCT_VALIDATION_STATUS_INVALID, - SCT_VALIDATION_STATUS_UNVERIFIED, - SCT_VALIDATION_STATUS_UNKNOWN_VERSION -} sct_validation_status_t; - -/****************************************** - * CT policy evaluation context functions * - ******************************************/ - -/* - * Creates a new, empty policy evaluation context associated with the given - * library context and property query string. - * The caller is responsible for calling CT_POLICY_EVAL_CTX_free when finished - * with the CT_POLICY_EVAL_CTX. - */ -CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, - const char *propq); - -/* - * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library - * context and property query string is used. - */ -CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new(void); - -/* Deletes a policy evaluation context and anything it owns. */ -void CT_POLICY_EVAL_CTX_free(CT_POLICY_EVAL_CTX *ctx); - -/* Gets the peer certificate that the SCTs are for */ -X509* CT_POLICY_EVAL_CTX_get0_cert(const CT_POLICY_EVAL_CTX *ctx); - -/* - * Sets the certificate associated with the received SCTs. - * Increments the reference count of cert. - * Returns 1 on success, 0 otherwise. - */ -int CT_POLICY_EVAL_CTX_set1_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert); - -/* Gets the issuer of the aforementioned certificate */ -X509* CT_POLICY_EVAL_CTX_get0_issuer(const CT_POLICY_EVAL_CTX *ctx); - -/* - * Sets the issuer of the certificate associated with the received SCTs. - * Increments the reference count of issuer. - * Returns 1 on success, 0 otherwise. - */ -int CT_POLICY_EVAL_CTX_set1_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer); - -/* Gets the CT logs that are trusted sources of SCTs */ -const CTLOG_STORE *CT_POLICY_EVAL_CTX_get0_log_store(const CT_POLICY_EVAL_CTX *ctx); - -/* Sets the log store that is in use. It must outlive the CT_POLICY_EVAL_CTX. */ -void CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(CT_POLICY_EVAL_CTX *ctx, - CTLOG_STORE *log_store); - -/* - * Gets the time, in milliseconds since the Unix epoch, that will be used as the - * current time when checking whether an SCT was issued in the future. - * Such SCTs will fail validation, as required by RFC6962. - */ -uint64_t CT_POLICY_EVAL_CTX_get_time(const CT_POLICY_EVAL_CTX *ctx); - -/* - * Sets the time to evaluate SCTs against, in milliseconds since the Unix epoch. - * If an SCT's timestamp is after this time, it will be interpreted as having - * been issued in the future. RFC6962 states that "TLS clients MUST reject SCTs - * whose timestamp is in the future", so an SCT will not validate in this case. - */ -void CT_POLICY_EVAL_CTX_set_time(CT_POLICY_EVAL_CTX *ctx, uint64_t time_in_ms); - -/***************** - * SCT functions * - *****************/ - -/* - * Creates a new, blank SCT. - * The caller is responsible for calling SCT_free when finished with the SCT. - */ -SCT *SCT_new(void); - -/* - * Creates a new SCT from some base64-encoded strings. - * The caller is responsible for calling SCT_free when finished with the SCT. - */ -SCT *SCT_new_from_base64(unsigned char version, - const char *logid_base64, - ct_log_entry_type_t entry_type, - uint64_t timestamp, - const char *extensions_base64, - const char *signature_base64); - -/* - * Frees the SCT and the underlying data structures. - */ -void SCT_free(SCT *sct); - -/* - * Free a stack of SCTs, and the underlying SCTs themselves. - * Intended to be compatible with X509V3_EXT_FREE. - */ -void SCT_LIST_free(STACK_OF(SCT) *a); - -/* - * Returns the version of the SCT. - */ -sct_version_t SCT_get_version(const SCT *sct); - -/* - * Set the version of an SCT. - * Returns 1 on success, 0 if the version is unrecognized. - */ -__owur int SCT_set_version(SCT *sct, sct_version_t version); - -/* - * Returns the log entry type of the SCT. - */ -ct_log_entry_type_t SCT_get_log_entry_type(const SCT *sct); - -/* - * Set the log entry type of an SCT. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set_log_entry_type(SCT *sct, ct_log_entry_type_t entry_type); - -/* - * Gets the ID of the log that an SCT came from. - * Ownership of the log ID remains with the SCT. - * Returns the length of the log ID. - */ -size_t SCT_get0_log_id(const SCT *sct, unsigned char **log_id); - -/* - * Set the log ID of an SCT to point directly to the *log_id specified. - * The SCT takes ownership of the specified pointer. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set0_log_id(SCT *sct, unsigned char *log_id, size_t log_id_len); - -/* - * Set the log ID of an SCT. - * This makes a copy of the log_id. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set1_log_id(SCT *sct, const unsigned char *log_id, - size_t log_id_len); - -/* - * Returns the timestamp for the SCT (epoch time in milliseconds). - */ -uint64_t SCT_get_timestamp(const SCT *sct); - -/* - * Set the timestamp of an SCT (epoch time in milliseconds). - */ -void SCT_set_timestamp(SCT *sct, uint64_t timestamp); - -/* - * Return the NID for the signature used by the SCT. - * For CT v1, this will be either NID_sha256WithRSAEncryption or - * NID_ecdsa_with_SHA256 (or NID_undef if incorrect/unset). - */ -int SCT_get_signature_nid(const SCT *sct); - -/* - * Set the signature type of an SCT - * For CT v1, this should be either NID_sha256WithRSAEncryption or - * NID_ecdsa_with_SHA256. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set_signature_nid(SCT *sct, int nid); - -/* - * Set *ext to point to the extension data for the SCT. ext must not be NULL. - * The SCT retains ownership of this pointer. - * Returns length of the data pointed to. - */ -size_t SCT_get0_extensions(const SCT *sct, unsigned char **ext); - -/* - * Set the extensions of an SCT to point directly to the *ext specified. - * The SCT takes ownership of the specified pointer. - */ -void SCT_set0_extensions(SCT *sct, unsigned char *ext, size_t ext_len); - -/* - * Set the extensions of an SCT. - * This takes a copy of the ext. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set1_extensions(SCT *sct, const unsigned char *ext, - size_t ext_len); - -/* - * Set *sig to point to the signature for the SCT. sig must not be NULL. - * The SCT retains ownership of this pointer. - * Returns length of the data pointed to. - */ -size_t SCT_get0_signature(const SCT *sct, unsigned char **sig); - -/* - * Set the signature of an SCT to point directly to the *sig specified. - * The SCT takes ownership of the specified pointer. - */ -void SCT_set0_signature(SCT *sct, unsigned char *sig, size_t sig_len); - -/* - * Set the signature of an SCT to be a copy of the *sig specified. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set1_signature(SCT *sct, const unsigned char *sig, - size_t sig_len); - -/* - * The origin of this SCT, e.g. TLS extension, OCSP response, etc. - */ -sct_source_t SCT_get_source(const SCT *sct); - -/* - * Set the origin of this SCT, e.g. TLS extension, OCSP response, etc. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set_source(SCT *sct, sct_source_t source); - -/* - * Returns a text string describing the validation status of |sct|. - */ -const char *SCT_validation_status_string(const SCT *sct); - -/* - * Pretty-prints an |sct| to |out|. - * It will be indented by the number of spaces specified by |indent|. - * If |logs| is not NULL, it will be used to lookup the CT log that the SCT came - * from, so that the log name can be printed. - */ -void SCT_print(const SCT *sct, BIO *out, int indent, const CTLOG_STORE *logs); - -/* - * Pretty-prints an |sct_list| to |out|. - * It will be indented by the number of spaces specified by |indent|. - * SCTs will be delimited by |separator|. - * If |logs| is not NULL, it will be used to lookup the CT log that each SCT - * came from, so that the log names can be printed. - */ -void SCT_LIST_print(const STACK_OF(SCT) *sct_list, BIO *out, int indent, - const char *separator, const CTLOG_STORE *logs); - -/* - * Gets the last result of validating this SCT. - * If it has not been validated yet, returns SCT_VALIDATION_STATUS_NOT_SET. - */ -sct_validation_status_t SCT_get_validation_status(const SCT *sct); - -/* - * Validates the given SCT with the provided context. - * Sets the "validation_status" field of the SCT. - * Returns 1 if the SCT is valid and the signature verifies. - * Returns 0 if the SCT is invalid or could not be verified. - * Returns -1 if an error occurs. - */ -__owur int SCT_validate(SCT *sct, const CT_POLICY_EVAL_CTX *ctx); - -/* - * Validates the given list of SCTs with the provided context. - * Sets the "validation_status" field of each SCT. - * Returns 1 if there are no invalid SCTs and all signatures verify. - * Returns 0 if at least one SCT is invalid or could not be verified. - * Returns a negative integer if an error occurs. - */ -__owur int SCT_LIST_validate(const STACK_OF(SCT) *scts, - CT_POLICY_EVAL_CTX *ctx); - - -/********************************* - * SCT parsing and serialization * - *********************************/ - -/* - * Serialize (to TLS format) a stack of SCTs and return the length. - * "a" must not be NULL. - * If "pp" is NULL, just return the length of what would have been serialized. - * If "pp" is not NULL and "*pp" is null, function will allocate a new pointer - * for data that caller is responsible for freeing (only if function returns - * successfully). - * If "pp" is NULL and "*pp" is not NULL, caller is responsible for ensuring - * that "*pp" is large enough to accept all of the serialized data. - * Returns < 0 on error, >= 0 indicating bytes written (or would have been) - * on success. - */ -__owur int i2o_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp); - -/* - * Convert TLS format SCT list to a stack of SCTs. - * If "a" or "*a" is NULL, a new stack will be created that the caller is - * responsible for freeing (by calling SCT_LIST_free). - * "**pp" and "*pp" must not be NULL. - * Upon success, "*pp" will point to after the last bytes read, and a stack - * will be returned. - * Upon failure, a NULL pointer will be returned, and the position of "*pp" is - * not defined. - */ -STACK_OF(SCT) *o2i_SCT_LIST(STACK_OF(SCT) **a, const unsigned char **pp, - size_t len); - -/* - * Serialize (to DER format) a stack of SCTs and return the length. - * "a" must not be NULL. - * If "pp" is NULL, just returns the length of what would have been serialized. - * If "pp" is not NULL and "*pp" is null, function will allocate a new pointer - * for data that caller is responsible for freeing (only if function returns - * successfully). - * If "pp" is NULL and "*pp" is not NULL, caller is responsible for ensuring - * that "*pp" is large enough to accept all of the serialized data. - * Returns < 0 on error, >= 0 indicating bytes written (or would have been) - * on success. - */ -__owur int i2d_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp); - -/* - * Parses an SCT list in DER format and returns it. - * If "a" or "*a" is NULL, a new stack will be created that the caller is - * responsible for freeing (by calling SCT_LIST_free). - * "**pp" and "*pp" must not be NULL. - * Upon success, "*pp" will point to after the last bytes read, and a stack - * will be returned. - * Upon failure, a NULL pointer will be returned, and the position of "*pp" is - * not defined. - */ -STACK_OF(SCT) *d2i_SCT_LIST(STACK_OF(SCT) **a, const unsigned char **pp, - long len); - -/* - * Serialize (to TLS format) an |sct| and write it to |out|. - * If |out| is null, no SCT will be output but the length will still be returned. - * If |out| points to a null pointer, a string will be allocated to hold the - * TLS-format SCT. It is the responsibility of the caller to free it. - * If |out| points to an allocated string, the TLS-format SCT will be written - * to it. - * The length of the SCT in TLS format will be returned. - */ -__owur int i2o_SCT(const SCT *sct, unsigned char **out); - -/* - * Parses an SCT in TLS format and returns it. - * If |psct| is not null, it will end up pointing to the parsed SCT. If it - * already points to a non-null pointer, the pointer will be free'd. - * |in| should be a pointer to a string containing the TLS-format SCT. - * |in| will be advanced to the end of the SCT if parsing succeeds. - * |len| should be the length of the SCT in |in|. - * Returns NULL if an error occurs. - * If the SCT is an unsupported version, only the SCT's 'sct' and 'sct_len' - * fields will be populated (with |in| and |len| respectively). - */ -SCT *o2i_SCT(SCT **psct, const unsigned char **in, size_t len); - -/******************** - * CT log functions * - ********************/ - -/* - * Creates a new CT log instance with the given |public_key| and |name| and - * associates it with the give library context |libctx| and property query - * string |propq|. - * Takes ownership of |public_key| but copies |name|. - * Returns NULL if malloc fails or if |public_key| cannot be converted to DER. - * Should be deleted by the caller using CTLOG_free when no longer needed. - */ -CTLOG *CTLOG_new_ex(EVP_PKEY *public_key, const char *name, OSSL_LIB_CTX *libctx, - const char *propq); - -/* - * The same as CTLOG_new_ex except that the default library context and - * property query string are used. - */ -CTLOG *CTLOG_new(EVP_PKEY *public_key, const char *name); - -/* - * Creates a new CTLOG instance with the base64-encoded SubjectPublicKeyInfo DER - * in |pkey_base64| and associated with the given library context |libctx| and - * property query string |propq|. The |name| is a string to help users identify - * this log. - * Returns 1 on success, 0 on failure. - * Should be deleted by the caller using CTLOG_free when no longer needed. - */ -int CTLOG_new_from_base64_ex(CTLOG **ct_log, const char *pkey_base64, - const char *name, OSSL_LIB_CTX *libctx, - const char *propq); - -/* - * The same as CTLOG_new_from_base64_ex() except that the default - * library context and property query string are used. - * Returns 1 on success, 0 on failure. - */ -int CTLOG_new_from_base64(CTLOG ** ct_log, - const char *pkey_base64, const char *name); - -/* - * Deletes a CT log instance and its fields. - */ -void CTLOG_free(CTLOG *log); - -/* Gets the name of the CT log */ -const char *CTLOG_get0_name(const CTLOG *log); -/* Gets the ID of the CT log */ -void CTLOG_get0_log_id(const CTLOG *log, const uint8_t **log_id, - size_t *log_id_len); -/* Gets the public key of the CT log */ -EVP_PKEY *CTLOG_get0_public_key(const CTLOG *log); - -/************************** - * CT log store functions * - **************************/ - -/* - * Creates a new CT log store and associates it with the given libctx and - * property query string. - * Should be deleted by the caller using CTLOG_STORE_free when no longer needed. - */ -CTLOG_STORE *CTLOG_STORE_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - -/* - * Same as CTLOG_STORE_new_ex except that the default libctx and - * property query string are used. - * Should be deleted by the caller using CTLOG_STORE_free when no longer needed. - */ -CTLOG_STORE *CTLOG_STORE_new(void); - -/* - * Deletes a CT log store and all of the CT log instances held within. - */ -void CTLOG_STORE_free(CTLOG_STORE *store); - -/* - * Finds a CT log in the store based on its log ID. - * Returns the CT log, or NULL if no match is found. - */ -const CTLOG *CTLOG_STORE_get0_log_by_id(const CTLOG_STORE *store, - const uint8_t *log_id, - size_t log_id_len); - -/* - * Loads a CT log list into a |store| from a |file|. - * Returns 1 if loading is successful, or 0 otherwise. - */ -__owur int CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file); - -/* - * Loads the default CT log list into a |store|. - * Returns 1 if loading is successful, or 0 otherwise. - */ -__owur int CTLOG_STORE_load_default_file(CTLOG_STORE *store); - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/cterr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/cterr.h deleted file mode 100644 index 935d32d..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/cterr.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_CTERR_H -# define OPENSSL_CTERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_CT - - -/* - * CT reason codes. - */ -# define CT_R_BASE64_DECODE_ERROR 108 -# define CT_R_INVALID_LOG_ID_LENGTH 100 -# define CT_R_LOG_CONF_INVALID 109 -# define CT_R_LOG_CONF_INVALID_KEY 110 -# define CT_R_LOG_CONF_MISSING_DESCRIPTION 111 -# define CT_R_LOG_CONF_MISSING_KEY 112 -# define CT_R_LOG_KEY_INVALID 113 -# define CT_R_SCT_FUTURE_TIMESTAMP 116 -# define CT_R_SCT_INVALID 104 -# define CT_R_SCT_INVALID_SIGNATURE 107 -# define CT_R_SCT_LIST_INVALID 105 -# define CT_R_SCT_LOG_ID_MISMATCH 114 -# define CT_R_SCT_NOT_SET 106 -# define CT_R_SCT_UNSUPPORTED_VERSION 115 -# define CT_R_UNRECOGNIZED_SIGNATURE_NID 101 -# define CT_R_UNSUPPORTED_ENTRY_TYPE 102 -# define CT_R_UNSUPPORTED_VERSION 103 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/decoder.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/decoder.h deleted file mode 100644 index d4ee2cf..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/decoder.h +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_DECODER_H -# define OPENSSL_DECODER_H -# pragma once - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -OSSL_DECODER *OSSL_DECODER_fetch(OSSL_LIB_CTX *libctx, const char *name, - const char *properties); -int OSSL_DECODER_up_ref(OSSL_DECODER *encoder); -void OSSL_DECODER_free(OSSL_DECODER *encoder); - -const OSSL_PROVIDER *OSSL_DECODER_get0_provider(const OSSL_DECODER *encoder); -const char *OSSL_DECODER_get0_properties(const OSSL_DECODER *encoder); -const char *OSSL_DECODER_get0_name(const OSSL_DECODER *decoder); -const char *OSSL_DECODER_get0_description(const OSSL_DECODER *decoder); -int OSSL_DECODER_is_a(const OSSL_DECODER *encoder, const char *name); - -void OSSL_DECODER_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(OSSL_DECODER *encoder, void *arg), - void *arg); -int OSSL_DECODER_names_do_all(const OSSL_DECODER *encoder, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PARAM *OSSL_DECODER_gettable_params(OSSL_DECODER *decoder); -int OSSL_DECODER_get_params(OSSL_DECODER *decoder, OSSL_PARAM params[]); - -const OSSL_PARAM *OSSL_DECODER_settable_ctx_params(OSSL_DECODER *encoder); -OSSL_DECODER_CTX *OSSL_DECODER_CTX_new(void); -int OSSL_DECODER_CTX_set_params(OSSL_DECODER_CTX *ctx, - const OSSL_PARAM params[]); -void OSSL_DECODER_CTX_free(OSSL_DECODER_CTX *ctx); - -/* Utilities that help set specific parameters */ -int OSSL_DECODER_CTX_set_passphrase(OSSL_DECODER_CTX *ctx, - const unsigned char *kstr, size_t klen); -int OSSL_DECODER_CTX_set_pem_password_cb(OSSL_DECODER_CTX *ctx, - pem_password_cb *cb, void *cbarg); -int OSSL_DECODER_CTX_set_passphrase_cb(OSSL_DECODER_CTX *ctx, - OSSL_PASSPHRASE_CALLBACK *cb, - void *cbarg); -int OSSL_DECODER_CTX_set_passphrase_ui(OSSL_DECODER_CTX *ctx, - const UI_METHOD *ui_method, - void *ui_data); - -/* - * Utilities to read the object to decode, with the result sent to cb. - * These will discover all provided methods - */ - -int OSSL_DECODER_CTX_set_selection(OSSL_DECODER_CTX *ctx, int selection); -int OSSL_DECODER_CTX_set_input_type(OSSL_DECODER_CTX *ctx, - const char *input_type); -int OSSL_DECODER_CTX_set_input_structure(OSSL_DECODER_CTX *ctx, - const char *input_structure); -int OSSL_DECODER_CTX_add_decoder(OSSL_DECODER_CTX *ctx, OSSL_DECODER *decoder); -int OSSL_DECODER_CTX_add_extra(OSSL_DECODER_CTX *ctx, - OSSL_LIB_CTX *libctx, const char *propq); -int OSSL_DECODER_CTX_get_num_decoders(OSSL_DECODER_CTX *ctx); - -typedef struct ossl_decoder_instance_st OSSL_DECODER_INSTANCE; -OSSL_DECODER * -OSSL_DECODER_INSTANCE_get_decoder(OSSL_DECODER_INSTANCE *decoder_inst); -void * -OSSL_DECODER_INSTANCE_get_decoder_ctx(OSSL_DECODER_INSTANCE *decoder_inst); -const char * -OSSL_DECODER_INSTANCE_get_input_type(OSSL_DECODER_INSTANCE *decoder_inst); -const char * -OSSL_DECODER_INSTANCE_get_input_structure(OSSL_DECODER_INSTANCE *decoder_inst, - int *was_set); - -typedef int OSSL_DECODER_CONSTRUCT(OSSL_DECODER_INSTANCE *decoder_inst, - const OSSL_PARAM *params, - void *construct_data); -typedef void OSSL_DECODER_CLEANUP(void *construct_data); - -int OSSL_DECODER_CTX_set_construct(OSSL_DECODER_CTX *ctx, - OSSL_DECODER_CONSTRUCT *construct); -int OSSL_DECODER_CTX_set_construct_data(OSSL_DECODER_CTX *ctx, - void *construct_data); -int OSSL_DECODER_CTX_set_cleanup(OSSL_DECODER_CTX *ctx, - OSSL_DECODER_CLEANUP *cleanup); -OSSL_DECODER_CONSTRUCT *OSSL_DECODER_CTX_get_construct(OSSL_DECODER_CTX *ctx); -void *OSSL_DECODER_CTX_get_construct_data(OSSL_DECODER_CTX *ctx); -OSSL_DECODER_CLEANUP *OSSL_DECODER_CTX_get_cleanup(OSSL_DECODER_CTX *ctx); - -int OSSL_DECODER_export(OSSL_DECODER_INSTANCE *decoder_inst, - void *reference, size_t reference_sz, - OSSL_CALLBACK *export_cb, void *export_cbarg); - -int OSSL_DECODER_from_bio(OSSL_DECODER_CTX *ctx, BIO *in); -#ifndef OPENSSL_NO_STDIO -int OSSL_DECODER_from_fp(OSSL_DECODER_CTX *ctx, FILE *in); -#endif -int OSSL_DECODER_from_data(OSSL_DECODER_CTX *ctx, const unsigned char **pdata, - size_t *pdata_len); - -/* - * Create the OSSL_DECODER_CTX with an associated type. This will perform - * an implicit OSSL_DECODER_fetch(), suitable for the object of that type. - */ -OSSL_DECODER_CTX * -OSSL_DECODER_CTX_new_for_pkey(EVP_PKEY **pkey, - const char *input_type, - const char *input_struct, - const char *keytype, int selection, - OSSL_LIB_CTX *libctx, const char *propquery); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/decodererr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/decodererr.h deleted file mode 100644 index 4212a38..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/decodererr.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_DECODERERR_H -# define OPENSSL_DECODERERR_H -# pragma once - -# include -# include -# include - - - -/* - * OSSL_DECODER reason codes. - */ -# define OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT 101 -# define OSSL_DECODER_R_DECODER_NOT_FOUND 102 -# define OSSL_DECODER_R_MISSING_GET_PARAMS 100 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/des.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/des.h deleted file mode 100644 index 09798a6..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/des.h +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_DES_H -# define OPENSSL_DES_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_DES_H -# endif - -# include - -# ifndef OPENSSL_NO_DES -# ifdef __cplusplus -extern "C" { -# endif -# include - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -typedef unsigned int DES_LONG; - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -typedef unsigned char DES_cblock[8]; -typedef /* const */ unsigned char const_DES_cblock[8]; -/* - * With "const", gcc 2.8.1 on Solaris thinks that DES_cblock * and - * const_DES_cblock * are incompatible pointer types. - */ - -typedef struct DES_ks { - union { - DES_cblock cblock; - /* - * make sure things are correct size on machines with 8 byte longs - */ - DES_LONG deslong[2]; - } ks[16]; -} DES_key_schedule; - -# define DES_KEY_SZ (sizeof(DES_cblock)) -# define DES_SCHEDULE_SZ (sizeof(DES_key_schedule)) - -# define DES_ENCRYPT 1 -# define DES_DECRYPT 0 - -# define DES_CBC_MODE 0 -# define DES_PCBC_MODE 1 - -# define DES_ecb2_encrypt(i,o,k1,k2,e) \ - DES_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) - -# define DES_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ - DES_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) - -# define DES_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ - DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) - -# define DES_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ - DES_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) - -# define DES_fixup_key_parity DES_set_odd_parity -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 const char *DES_options(void); -OSSL_DEPRECATEDIN_3_0 -void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output, - DES_key_schedule *ks1, DES_key_schedule *ks2, - DES_key_schedule *ks3, int enc); -OSSL_DEPRECATEDIN_3_0 -DES_LONG DES_cbc_cksum(const unsigned char *input, DES_cblock *output, - long length, DES_key_schedule *schedule, - const_DES_cblock *ivec); -# endif -/* DES_cbc_encrypt does not update the IV! Use DES_ncbc_encrypt instead. */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -void DES_cbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, DES_cblock *ivec, - int enc); -OSSL_DEPRECATEDIN_3_0 -void DES_ncbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, DES_cblock *ivec, - int enc); -OSSL_DEPRECATEDIN_3_0 -void DES_xcbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, DES_cblock *ivec, - const_DES_cblock *inw, const_DES_cblock *outw, int enc); -OSSL_DEPRECATEDIN_3_0 -void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits, - long length, DES_key_schedule *schedule, DES_cblock *ivec, - int enc); -OSSL_DEPRECATEDIN_3_0 -void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output, - DES_key_schedule *ks, int enc); -# endif - -/* - * This is the DES encryption function that gets called by just about every - * other DES routine in the library. You should not use this function except - * to implement 'modes' of DES. I say this because the functions that call - * this routine do the conversion from 'char *' to long, and this needs to be - * done to make sure 'non-aligned' memory access do not occur. The - * characters are loaded 'little endian'. Data is a pointer to 2 unsigned - * long's and ks is the DES_key_schedule to use. enc, is non zero specifies - * encryption, zero if decryption. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc); -# endif - -/* - * This functions is the same as DES_encrypt1() except that the DES initial - * permutation (IP) and final permutation (FP) have been left out. As for - * DES_encrypt1(), you should not use this function. It is used by the - * routines in the library that implement triple DES. IP() DES_encrypt2() - * DES_encrypt2() DES_encrypt2() FP() is the same as DES_encrypt1() - * DES_encrypt1() DES_encrypt1() except faster :-). - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc); -OSSL_DEPRECATEDIN_3_0 -void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1, DES_key_schedule *ks2, - DES_key_schedule *ks3); -OSSL_DEPRECATEDIN_3_0 -void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1, DES_key_schedule *ks2, - DES_key_schedule *ks3); -OSSL_DEPRECATEDIN_3_0 -void DES_ede3_cbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int enc); -OSSL_DEPRECATEDIN_3_0 -void DES_ede3_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int *num, int enc); -OSSL_DEPRECATEDIN_3_0 -void DES_ede3_cfb_encrypt(const unsigned char *in, unsigned char *out, - int numbits, long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int enc); -OSSL_DEPRECATEDIN_3_0 -void DES_ede3_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int *num); -OSSL_DEPRECATEDIN_3_0 -char *DES_fcrypt(const char *buf, const char *salt, char *ret); -OSSL_DEPRECATEDIN_3_0 -char *DES_crypt(const char *buf, const char *salt); -OSSL_DEPRECATEDIN_3_0 -void DES_ofb_encrypt(const unsigned char *in, unsigned char *out, int numbits, - long length, DES_key_schedule *schedule, DES_cblock *ivec); -OSSL_DEPRECATEDIN_3_0 -void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -OSSL_DEPRECATEDIN_3_0 -DES_LONG DES_quad_cksum(const unsigned char *input, DES_cblock output[], - long length, int out_count, DES_cblock *seed); -OSSL_DEPRECATEDIN_3_0 int DES_random_key(DES_cblock *ret); -OSSL_DEPRECATEDIN_3_0 void DES_set_odd_parity(DES_cblock *key); -OSSL_DEPRECATEDIN_3_0 int DES_check_key_parity(const_DES_cblock *key); -OSSL_DEPRECATEDIN_3_0 int DES_is_weak_key(const_DES_cblock *key); -# endif -/* - * DES_set_key (= set_key = DES_key_sched = key_sched) calls - * DES_set_key_checked - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule); -OSSL_DEPRECATEDIN_3_0 -int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule); -OSSL_DEPRECATEDIN_3_0 -int DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule); -OSSL_DEPRECATEDIN_3_0 -void DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule *schedule); -OSSL_DEPRECATEDIN_3_0 void DES_string_to_key(const char *str, DES_cblock *key); -OSSL_DEPRECATEDIN_3_0 -void DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock *key2); -OSSL_DEPRECATEDIN_3_0 -void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int *num, int enc); -OSSL_DEPRECATEDIN_3_0 -void DES_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int *num); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/dh.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/dh.h deleted file mode 100644 index 9702492..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/dh.h +++ /dev/null @@ -1,339 +0,0 @@ -/* - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_DH_H -# define OPENSSL_DH_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_DH_H -# endif - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -#include - -/* - * DH parameter generation types used by EVP_PKEY_CTX_set_dh_paramgen_type() - * Note that additions/changes to this set of values requires corresponding - * adjustments to range checks in dh_gen() - */ -# define DH_PARAMGEN_TYPE_GENERATOR 0 /* Use a safe prime generator */ -# define DH_PARAMGEN_TYPE_FIPS_186_2 1 /* Use FIPS186-2 standard */ -# define DH_PARAMGEN_TYPE_FIPS_186_4 2 /* Use FIPS186-4 standard */ -# define DH_PARAMGEN_TYPE_GROUP 3 /* Use a named safe prime group */ - -int EVP_PKEY_CTX_set_dh_paramgen_type(EVP_PKEY_CTX *ctx, int typ); -int EVP_PKEY_CTX_set_dh_paramgen_gindex(EVP_PKEY_CTX *ctx, int gindex); -int EVP_PKEY_CTX_set_dh_paramgen_seed(EVP_PKEY_CTX *ctx, - const unsigned char *seed, - size_t seedlen); -int EVP_PKEY_CTX_set_dh_paramgen_prime_len(EVP_PKEY_CTX *ctx, int pbits); -int EVP_PKEY_CTX_set_dh_paramgen_subprime_len(EVP_PKEY_CTX *ctx, int qlen); -int EVP_PKEY_CTX_set_dh_paramgen_generator(EVP_PKEY_CTX *ctx, int gen); -int EVP_PKEY_CTX_set_dh_nid(EVP_PKEY_CTX *ctx, int nid); -int EVP_PKEY_CTX_set_dh_rfc5114(EVP_PKEY_CTX *ctx, int gen); -int EVP_PKEY_CTX_set_dhx_rfc5114(EVP_PKEY_CTX *ctx, int gen); -int EVP_PKEY_CTX_set_dh_pad(EVP_PKEY_CTX *ctx, int pad); - -int EVP_PKEY_CTX_set_dh_kdf_type(EVP_PKEY_CTX *ctx, int kdf); -int EVP_PKEY_CTX_get_dh_kdf_type(EVP_PKEY_CTX *ctx); -int EVP_PKEY_CTX_set0_dh_kdf_oid(EVP_PKEY_CTX *ctx, ASN1_OBJECT *oid); -int EVP_PKEY_CTX_get0_dh_kdf_oid(EVP_PKEY_CTX *ctx, ASN1_OBJECT **oid); -int EVP_PKEY_CTX_set_dh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); -int EVP_PKEY_CTX_get_dh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); -int EVP_PKEY_CTX_set_dh_kdf_outlen(EVP_PKEY_CTX *ctx, int len); -int EVP_PKEY_CTX_get_dh_kdf_outlen(EVP_PKEY_CTX *ctx, int *len); -int EVP_PKEY_CTX_set0_dh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char *ukm, int len); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_CTX_get0_dh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char **ukm); -#endif - -# define EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR (EVP_PKEY_ALG_CTRL + 2) -# define EVP_PKEY_CTRL_DH_RFC5114 (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_DH_PARAMGEN_TYPE (EVP_PKEY_ALG_CTRL + 5) -# define EVP_PKEY_CTRL_DH_KDF_TYPE (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_GET_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 8) -# define EVP_PKEY_CTRL_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 10) -# define EVP_PKEY_CTRL_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 11) -# define EVP_PKEY_CTRL_GET_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 12) -# define EVP_PKEY_CTRL_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 13) -# define EVP_PKEY_CTRL_GET_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 14) -# define EVP_PKEY_CTRL_DH_NID (EVP_PKEY_ALG_CTRL + 15) -# define EVP_PKEY_CTRL_DH_PAD (EVP_PKEY_ALG_CTRL + 16) - -/* KDF types */ -# define EVP_PKEY_DH_KDF_NONE 1 -# define EVP_PKEY_DH_KDF_X9_42 2 - -# ifndef OPENSSL_NO_STDIO -# include -# endif -# ifndef OPENSSL_NO_DH -# include -# include -# include -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# include -# endif -# include - -# ifndef OPENSSL_DH_MAX_MODULUS_BITS -# define OPENSSL_DH_MAX_MODULUS_BITS 10000 -# endif - -# ifndef OPENSSL_DH_CHECK_MAX_MODULUS_BITS -# define OPENSSL_DH_CHECK_MAX_MODULUS_BITS 32768 -# endif - -# define OPENSSL_DH_FIPS_MIN_MODULUS_BITS 1024 - -# define DH_FLAG_CACHE_MONT_P 0x01 - -# define DH_FLAG_TYPE_MASK 0xF000 -# define DH_FLAG_TYPE_DH 0x0000 -# define DH_FLAG_TYPE_DHX 0x1000 - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -/* - * Does nothing. Previously this switched off constant time behaviour. - */ -# define DH_FLAG_NO_EXP_CONSTTIME 0x00 -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* - * If this flag is set the DH method is FIPS compliant and can be used in - * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its responsibility to ensure the - * result is compliant. - */ - -# define DH_FLAG_FIPS_METHOD 0x0400 - -/* - * If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -# define DH_FLAG_NON_FIPS_ALLOW 0x0400 -# endif - -/* Already defined in ossl_typ.h */ -/* typedef struct dh_st DH; */ -/* typedef struct dh_method DH_METHOD; */ - -DECLARE_ASN1_ITEM(DHparams) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define DH_GENERATOR_2 2 -# define DH_GENERATOR_3 3 -# define DH_GENERATOR_5 5 - -/* DH_check error codes, some of them shared with DH_check_pub_key */ -/* - * NB: These values must align with the equivalently named macros in - * internal/ffc.h. - */ -# define DH_CHECK_P_NOT_PRIME 0x01 -# define DH_CHECK_P_NOT_SAFE_PRIME 0x02 -# define DH_UNABLE_TO_CHECK_GENERATOR 0x04 -# define DH_NOT_SUITABLE_GENERATOR 0x08 -# define DH_CHECK_Q_NOT_PRIME 0x10 -# define DH_CHECK_INVALID_Q_VALUE 0x20 /* +DH_check_pub_key */ -# define DH_CHECK_INVALID_J_VALUE 0x40 -# define DH_MODULUS_TOO_SMALL 0x80 -# define DH_MODULUS_TOO_LARGE 0x100 /* +DH_check_pub_key */ - -/* DH_check_pub_key error codes */ -# define DH_CHECK_PUBKEY_TOO_SMALL 0x01 -# define DH_CHECK_PUBKEY_TOO_LARGE 0x02 -# define DH_CHECK_PUBKEY_INVALID 0x04 - -/* - * primes p where (p-1)/2 is prime too are called "safe"; we define this for - * backward compatibility: - */ -# define DH_CHECK_P_NOT_STRONG_PRIME DH_CHECK_P_NOT_SAFE_PRIME - -# define d2i_DHparams_fp(fp, x) \ - (DH *)ASN1_d2i_fp((char *(*)())DH_new, \ - (char *(*)())d2i_DHparams, \ - (fp), \ - (unsigned char **)(x)) -# define i2d_DHparams_fp(fp, x) \ - ASN1_i2d_fp(i2d_DHparams,(fp), (unsigned char *)(x)) -# define d2i_DHparams_bio(bp, x) \ - ASN1_d2i_bio_of(DH, DH_new, d2i_DHparams, bp, x) -# define i2d_DHparams_bio(bp, x) \ - ASN1_i2d_bio_of(DH, i2d_DHparams, bp, x) - -# define d2i_DHxparams_fp(fp,x) \ - (DH *)ASN1_d2i_fp((char *(*)())DH_new, \ - (char *(*)())d2i_DHxparams, \ - (fp), \ - (unsigned char **)(x)) -# define i2d_DHxparams_fp(fp, x) \ - ASN1_i2d_fp(i2d_DHxparams,(fp), (unsigned char *)(x)) -# define d2i_DHxparams_bio(bp, x) \ - ASN1_d2i_bio_of(DH, DH_new, d2i_DHxparams, bp, x) -# define i2d_DHxparams_bio(bp, x) \ - ASN1_i2d_bio_of(DH, i2d_DHxparams, bp, x) - -DECLARE_ASN1_DUP_FUNCTION_name_attr(OSSL_DEPRECATEDIN_3_0, DH, DHparams) - -OSSL_DEPRECATEDIN_3_0 const DH_METHOD *DH_OpenSSL(void); - -OSSL_DEPRECATEDIN_3_0 void DH_set_default_method(const DH_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 const DH_METHOD *DH_get_default_method(void); -OSSL_DEPRECATEDIN_3_0 int DH_set_method(DH *dh, const DH_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 DH *DH_new_method(ENGINE *engine); - -OSSL_DEPRECATEDIN_3_0 DH *DH_new(void); -OSSL_DEPRECATEDIN_3_0 void DH_free(DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_up_ref(DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_bits(const DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_size(const DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_security_bits(const DH *dh); - -# define DH_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DH, l, p, newf, dupf, freef) - -OSSL_DEPRECATEDIN_3_0 int DH_set_ex_data(DH *d, int idx, void *arg); -OSSL_DEPRECATEDIN_3_0 void *DH_get_ex_data(const DH *d, int idx); - -OSSL_DEPRECATEDIN_3_0 int DH_generate_parameters_ex(DH *dh, int prime_len, - int generator, - BN_GENCB *cb); - -OSSL_DEPRECATEDIN_3_0 int DH_check_params_ex(const DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_check_ex(const DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_check_pub_key_ex(const DH *dh, const BIGNUM *pub_key); -OSSL_DEPRECATEDIN_3_0 int DH_check_params(const DH *dh, int *ret); -OSSL_DEPRECATEDIN_3_0 int DH_check(const DH *dh, int *codes); -OSSL_DEPRECATEDIN_3_0 int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, - int *codes); -OSSL_DEPRECATEDIN_3_0 int DH_generate_key(DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_compute_key(unsigned char *key, - const BIGNUM *pub_key, DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_compute_key_padded(unsigned char *key, - const BIGNUM *pub_key, DH *dh); - -DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0, DH, DHparams) -DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0, DH, DHxparams) - -# ifndef OPENSSL_NO_STDIO -OSSL_DEPRECATEDIN_3_0 int DHparams_print_fp(FILE *fp, const DH *x); -# endif -OSSL_DEPRECATEDIN_3_0 int DHparams_print(BIO *bp, const DH *x); - -/* RFC 5114 parameters */ -OSSL_DEPRECATEDIN_3_0 DH *DH_get_1024_160(void); -OSSL_DEPRECATEDIN_3_0 DH *DH_get_2048_224(void); -OSSL_DEPRECATEDIN_3_0 DH *DH_get_2048_256(void); - -/* Named parameters, currently RFC7919 and RFC3526 */ -OSSL_DEPRECATEDIN_3_0 DH *DH_new_by_nid(int nid); -OSSL_DEPRECATEDIN_3_0 int DH_get_nid(const DH *dh); - -/* RFC2631 KDF */ -OSSL_DEPRECATEDIN_3_0 int DH_KDF_X9_42(unsigned char *out, size_t outlen, - const unsigned char *Z, size_t Zlen, - ASN1_OBJECT *key_oid, - const unsigned char *ukm, - size_t ukmlen, const EVP_MD *md); - -OSSL_DEPRECATEDIN_3_0 void DH_get0_pqg(const DH *dh, const BIGNUM **p, - const BIGNUM **q, const BIGNUM **g); -OSSL_DEPRECATEDIN_3_0 int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g); -OSSL_DEPRECATEDIN_3_0 void DH_get0_key(const DH *dh, const BIGNUM **pub_key, - const BIGNUM **priv_key); -OSSL_DEPRECATEDIN_3_0 int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DH_get0_p(const DH *dh); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DH_get0_q(const DH *dh); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DH_get0_g(const DH *dh); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DH_get0_priv_key(const DH *dh); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DH_get0_pub_key(const DH *dh); -OSSL_DEPRECATEDIN_3_0 void DH_clear_flags(DH *dh, int flags); -OSSL_DEPRECATEDIN_3_0 int DH_test_flags(const DH *dh, int flags); -OSSL_DEPRECATEDIN_3_0 void DH_set_flags(DH *dh, int flags); -OSSL_DEPRECATEDIN_3_0 ENGINE *DH_get0_engine(DH *d); -OSSL_DEPRECATEDIN_3_0 long DH_get_length(const DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_set_length(DH *dh, long length); - -OSSL_DEPRECATEDIN_3_0 DH_METHOD *DH_meth_new(const char *name, int flags); -OSSL_DEPRECATEDIN_3_0 void DH_meth_free(DH_METHOD *dhm); -OSSL_DEPRECATEDIN_3_0 DH_METHOD *DH_meth_dup(const DH_METHOD *dhm); -OSSL_DEPRECATEDIN_3_0 const char *DH_meth_get0_name(const DH_METHOD *dhm); -OSSL_DEPRECATEDIN_3_0 int DH_meth_set1_name(DH_METHOD *dhm, const char *name); -OSSL_DEPRECATEDIN_3_0 int DH_meth_get_flags(const DH_METHOD *dhm); -OSSL_DEPRECATEDIN_3_0 int DH_meth_set_flags(DH_METHOD *dhm, int flags); -OSSL_DEPRECATEDIN_3_0 void *DH_meth_get0_app_data(const DH_METHOD *dhm); -OSSL_DEPRECATEDIN_3_0 int DH_meth_set0_app_data(DH_METHOD *dhm, void *app_data); -OSSL_DEPRECATEDIN_3_0 int (*DH_meth_get_generate_key(const DH_METHOD *dhm)) (DH *); -OSSL_DEPRECATEDIN_3_0 int DH_meth_set_generate_key(DH_METHOD *dhm, - int (*generate_key) (DH *)); -OSSL_DEPRECATEDIN_3_0 int (*DH_meth_get_compute_key(const DH_METHOD *dhm)) - (unsigned char *key, - const BIGNUM *pub_key, - DH *dh); -OSSL_DEPRECATEDIN_3_0 int DH_meth_set_compute_key(DH_METHOD *dhm, - int (*compute_key) - (unsigned char *key, - const BIGNUM *pub_key, - DH *dh)); -OSSL_DEPRECATEDIN_3_0 int (*DH_meth_get_bn_mod_exp(const DH_METHOD *dhm)) - (const DH *, BIGNUM *, - const BIGNUM *, - const BIGNUM *, - const BIGNUM *, BN_CTX *, - BN_MONT_CTX *); -OSSL_DEPRECATEDIN_3_0 int DH_meth_set_bn_mod_exp(DH_METHOD *dhm, - int (*bn_mod_exp) - (const DH *, BIGNUM *, - const BIGNUM *, const BIGNUM *, - const BIGNUM *, BN_CTX *, - BN_MONT_CTX *)); -OSSL_DEPRECATEDIN_3_0 int (*DH_meth_get_init(const DH_METHOD *dhm))(DH *); -OSSL_DEPRECATEDIN_3_0 int DH_meth_set_init(DH_METHOD *dhm, int (*init)(DH *)); -OSSL_DEPRECATEDIN_3_0 int (*DH_meth_get_finish(const DH_METHOD *dhm)) (DH *); -OSSL_DEPRECATEDIN_3_0 int DH_meth_set_finish(DH_METHOD *dhm, int (*finish) (DH *)); -OSSL_DEPRECATEDIN_3_0 int (*DH_meth_get_generate_params(const DH_METHOD *dhm)) - (DH *, int, int, - BN_GENCB *); -OSSL_DEPRECATEDIN_3_0 int DH_meth_set_generate_params(DH_METHOD *dhm, - int (*generate_params) - (DH *, int, int, - BN_GENCB *)); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -# ifndef OPENSSL_NO_DEPRECATED_0_9_8 -OSSL_DEPRECATEDIN_0_9_8 DH *DH_generate_parameters(int prime_len, int generator, - void (*callback) (int, int, - void *), - void *cb_arg); -# endif - -# endif -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/dherr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/dherr.h deleted file mode 100644 index 2997d7d..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/dherr.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_DHERR_H -# define OPENSSL_DHERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_DH - - -/* - * DH reason codes. - */ -# define DH_R_BAD_FFC_PARAMETERS 127 -# define DH_R_BAD_GENERATOR 101 -# define DH_R_BN_DECODE_ERROR 109 -# define DH_R_BN_ERROR 106 -# define DH_R_CHECK_INVALID_J_VALUE 115 -# define DH_R_CHECK_INVALID_Q_VALUE 116 -# define DH_R_CHECK_PUBKEY_INVALID 122 -# define DH_R_CHECK_PUBKEY_TOO_LARGE 123 -# define DH_R_CHECK_PUBKEY_TOO_SMALL 124 -# define DH_R_CHECK_P_NOT_PRIME 117 -# define DH_R_CHECK_P_NOT_SAFE_PRIME 118 -# define DH_R_CHECK_Q_NOT_PRIME 119 -# define DH_R_DECODE_ERROR 104 -# define DH_R_INVALID_PARAMETER_NAME 110 -# define DH_R_INVALID_PARAMETER_NID 114 -# define DH_R_INVALID_PUBKEY 102 -# define DH_R_INVALID_SECRET 128 -# define DH_R_INVALID_SIZE 129 -# define DH_R_KDF_PARAMETER_ERROR 112 -# define DH_R_KEYS_NOT_SET 108 -# define DH_R_MISSING_PUBKEY 125 -# define DH_R_MODULUS_TOO_LARGE 103 -# define DH_R_MODULUS_TOO_SMALL 126 -# define DH_R_NOT_SUITABLE_GENERATOR 120 -# define DH_R_NO_PARAMETERS_SET 107 -# define DH_R_NO_PRIVATE_VALUE 100 -# define DH_R_PARAMETER_ENCODING_ERROR 105 -# define DH_R_PEER_KEY_ERROR 111 -# define DH_R_Q_TOO_LARGE 130 -# define DH_R_SHARED_INFO_ERROR 113 -# define DH_R_UNABLE_TO_CHECK_GENERATOR 121 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/dsa.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/dsa.h deleted file mode 100644 index 109878e..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/dsa.h +++ /dev/null @@ -1,280 +0,0 @@ -/* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_DSA_H -# define OPENSSL_DSA_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_DSA_H -# endif - -# include -# include - -# include - -# ifndef OPENSSL_NO_DSA -# include -# include -# include -# include -# include -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# include -# endif -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif -# endif - -# ifdef __cplusplus -extern "C" { -# endif - -int EVP_PKEY_CTX_set_dsa_paramgen_bits(EVP_PKEY_CTX *ctx, int nbits); -int EVP_PKEY_CTX_set_dsa_paramgen_q_bits(EVP_PKEY_CTX *ctx, int qbits); -int EVP_PKEY_CTX_set_dsa_paramgen_md_props(EVP_PKEY_CTX *ctx, - const char *md_name, - const char *md_properties); -int EVP_PKEY_CTX_set_dsa_paramgen_gindex(EVP_PKEY_CTX *ctx, int gindex); -int EVP_PKEY_CTX_set_dsa_paramgen_type(EVP_PKEY_CTX *ctx, const char *name); -int EVP_PKEY_CTX_set_dsa_paramgen_seed(EVP_PKEY_CTX *ctx, - const unsigned char *seed, - size_t seedlen); -int EVP_PKEY_CTX_set_dsa_paramgen_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); - -# define EVP_PKEY_CTRL_DSA_PARAMGEN_BITS (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS (EVP_PKEY_ALG_CTRL + 2) -# define EVP_PKEY_CTRL_DSA_PARAMGEN_MD (EVP_PKEY_ALG_CTRL + 3) - -# ifndef OPENSSL_NO_DSA -# ifndef OPENSSL_DSA_MAX_MODULUS_BITS -# define OPENSSL_DSA_MAX_MODULUS_BITS 10000 -# endif - -# define OPENSSL_DSA_FIPS_MIN_MODULUS_BITS 1024 - -typedef struct DSA_SIG_st DSA_SIG; -DSA_SIG *DSA_SIG_new(void); -void DSA_SIG_free(DSA_SIG *a); -DECLARE_ASN1_ENCODE_FUNCTIONS_only(DSA_SIG, DSA_SIG) -void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); -int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s); - - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -/* - * Does nothing. Previously this switched off constant time behaviour. - */ -# define DSA_FLAG_NO_EXP_CONSTTIME 0x00 -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define DSA_FLAG_CACHE_MONT_P 0x01 - -/* - * If this flag is set the DSA method is FIPS compliant and can be used in - * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its responsibility to ensure the - * result is compliant. - */ - -# define DSA_FLAG_FIPS_METHOD 0x0400 - -/* - * If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -# define DSA_FLAG_NON_FIPS_ALLOW 0x0400 -# define DSA_FLAG_FIPS_CHECKED 0x0800 - -/* Already defined in ossl_typ.h */ -/* typedef struct dsa_st DSA; */ -/* typedef struct dsa_method DSA_METHOD; */ - -# define d2i_DSAparams_fp(fp, x) \ - (DSA *)ASN1_d2i_fp((char *(*)())DSA_new, \ - (char *(*)())d2i_DSAparams, (fp), \ - (unsigned char **)(x)) -# define i2d_DSAparams_fp(fp, x) \ - ASN1_i2d_fp(i2d_DSAparams, (fp), (unsigned char *)(x)) -# define d2i_DSAparams_bio(bp, x) \ - ASN1_d2i_bio_of(DSA, DSA_new, d2i_DSAparams, bp, x) -# define i2d_DSAparams_bio(bp, x) \ - ASN1_i2d_bio_of(DSA, i2d_DSAparams, bp, x) - -DECLARE_ASN1_DUP_FUNCTION_name_attr(OSSL_DEPRECATEDIN_3_0, DSA, DSAparams) -OSSL_DEPRECATEDIN_3_0 DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, - DSA *dsa); -OSSL_DEPRECATEDIN_3_0 int DSA_do_verify(const unsigned char *dgst, int dgst_len, - DSA_SIG *sig, DSA *dsa); - -OSSL_DEPRECATEDIN_3_0 const DSA_METHOD *DSA_OpenSSL(void); - -OSSL_DEPRECATEDIN_3_0 void DSA_set_default_method(const DSA_METHOD *); -OSSL_DEPRECATEDIN_3_0 const DSA_METHOD *DSA_get_default_method(void); -OSSL_DEPRECATEDIN_3_0 int DSA_set_method(DSA *dsa, const DSA_METHOD *); -OSSL_DEPRECATEDIN_3_0 const DSA_METHOD *DSA_get_method(DSA *d); - -OSSL_DEPRECATEDIN_3_0 DSA *DSA_new(void); -OSSL_DEPRECATEDIN_3_0 DSA *DSA_new_method(ENGINE *engine); -OSSL_DEPRECATEDIN_3_0 void DSA_free(DSA *r); -/* "up" the DSA object's reference count */ -OSSL_DEPRECATEDIN_3_0 int DSA_up_ref(DSA *r); -OSSL_DEPRECATEDIN_3_0 int DSA_size(const DSA *); -OSSL_DEPRECATEDIN_3_0 int DSA_bits(const DSA *d); -OSSL_DEPRECATEDIN_3_0 int DSA_security_bits(const DSA *d); - /* next 4 return -1 on error */ -OSSL_DEPRECATEDIN_3_0 int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, - BIGNUM **kinvp, BIGNUM **rp); -OSSL_DEPRECATEDIN_3_0 int DSA_sign(int type, const unsigned char *dgst, - int dlen, unsigned char *sig, - unsigned int *siglen, DSA *dsa); -OSSL_DEPRECATEDIN_3_0 int DSA_verify(int type, const unsigned char *dgst, - int dgst_len, const unsigned char *sigbuf, - int siglen, DSA *dsa); - -# define DSA_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DSA, l, p, newf, dupf, freef) -OSSL_DEPRECATEDIN_3_0 int DSA_set_ex_data(DSA *d, int idx, void *arg); -OSSL_DEPRECATEDIN_3_0 void *DSA_get_ex_data(const DSA *d, int idx); - -DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0, - DSA, DSAPublicKey) -DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0, - DSA, DSAPrivateKey) -DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0, - DSA, DSAparams) -# endif - -# ifndef OPENSSL_NO_DEPRECATED_0_9_8 -/* Deprecated version */ -OSSL_DEPRECATEDIN_0_9_8 -DSA *DSA_generate_parameters(int bits, unsigned char *seed, int seed_len, - int *counter_ret, unsigned long *h_ret, - void (*callback) (int, int, void *), - void *cb_arg); -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* New version */ -OSSL_DEPRECATEDIN_3_0 int DSA_generate_parameters_ex(DSA *dsa, int bits, - const unsigned char *seed, - int seed_len, - int *counter_ret, - unsigned long *h_ret, - BN_GENCB *cb); - -OSSL_DEPRECATEDIN_3_0 int DSA_generate_key(DSA *a); - -OSSL_DEPRECATEDIN_3_0 int DSAparams_print(BIO *bp, const DSA *x); -OSSL_DEPRECATEDIN_3_0 int DSA_print(BIO *bp, const DSA *x, int off); -# ifndef OPENSSL_NO_STDIO -OSSL_DEPRECATEDIN_3_0 int DSAparams_print_fp(FILE *fp, const DSA *x); -OSSL_DEPRECATEDIN_3_0 int DSA_print_fp(FILE *bp, const DSA *x, int off); -# endif - -# define DSS_prime_checks 64 -/* - * Primality test according to FIPS PUB 186-4, Appendix C.3. Since we only - * have one value here we set the number of checks to 64 which is the 128 bit - * security level that is the highest level and valid for creating a 3072 bit - * DSA key. - */ -# define DSA_is_prime(n, callback, cb_arg) \ - BN_is_prime(n, DSS_prime_checks, callback, NULL, cb_arg) - -# ifndef OPENSSL_NO_DH -/* - * Convert DSA structure (key or just parameters) into DH structure (be - * careful to avoid small subgroup attacks when using this!) - */ -OSSL_DEPRECATEDIN_3_0 DH *DSA_dup_DH(const DSA *r); -# endif - -OSSL_DEPRECATEDIN_3_0 void DSA_get0_pqg(const DSA *d, const BIGNUM **p, - const BIGNUM **q, const BIGNUM **g); -OSSL_DEPRECATEDIN_3_0 int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g); -OSSL_DEPRECATEDIN_3_0 void DSA_get0_key(const DSA *d, const BIGNUM **pub_key, - const BIGNUM **priv_key); -OSSL_DEPRECATEDIN_3_0 int DSA_set0_key(DSA *d, BIGNUM *pub_key, - BIGNUM *priv_key); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DSA_get0_p(const DSA *d); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DSA_get0_q(const DSA *d); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DSA_get0_g(const DSA *d); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DSA_get0_pub_key(const DSA *d); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *DSA_get0_priv_key(const DSA *d); -OSSL_DEPRECATEDIN_3_0 void DSA_clear_flags(DSA *d, int flags); -OSSL_DEPRECATEDIN_3_0 int DSA_test_flags(const DSA *d, int flags); -OSSL_DEPRECATEDIN_3_0 void DSA_set_flags(DSA *d, int flags); -OSSL_DEPRECATEDIN_3_0 ENGINE *DSA_get0_engine(DSA *d); - -OSSL_DEPRECATEDIN_3_0 DSA_METHOD *DSA_meth_new(const char *name, int flags); -OSSL_DEPRECATEDIN_3_0 void DSA_meth_free(DSA_METHOD *dsam); -OSSL_DEPRECATEDIN_3_0 DSA_METHOD *DSA_meth_dup(const DSA_METHOD *dsam); -OSSL_DEPRECATEDIN_3_0 const char *DSA_meth_get0_name(const DSA_METHOD *dsam); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set1_name(DSA_METHOD *dsam, - const char *name); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_get_flags(const DSA_METHOD *dsam); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_flags(DSA_METHOD *dsam, int flags); -OSSL_DEPRECATEDIN_3_0 void *DSA_meth_get0_app_data(const DSA_METHOD *dsam); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set0_app_data(DSA_METHOD *dsam, - void *app_data); -OSSL_DEPRECATEDIN_3_0 DSA_SIG *(*DSA_meth_get_sign(const DSA_METHOD *dsam)) - (const unsigned char *, int, DSA *); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_sign(DSA_METHOD *dsam, - DSA_SIG *(*sign) (const unsigned char *, int, DSA *)); -OSSL_DEPRECATEDIN_3_0 int (*DSA_meth_get_sign_setup(const DSA_METHOD *dsam)) - (DSA *, BN_CTX *, BIGNUM **, BIGNUM **); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_sign_setup(DSA_METHOD *dsam, - int (*sign_setup) (DSA *, BN_CTX *, BIGNUM **, BIGNUM **)); -OSSL_DEPRECATEDIN_3_0 int (*DSA_meth_get_verify(const DSA_METHOD *dsam)) - (const unsigned char *, int, DSA_SIG *, DSA *); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_verify(DSA_METHOD *dsam, - int (*verify) (const unsigned char *, int, DSA_SIG *, DSA *)); -OSSL_DEPRECATEDIN_3_0 int (*DSA_meth_get_mod_exp(const DSA_METHOD *dsam)) - (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, - const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_mod_exp(DSA_METHOD *dsam, - int (*mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, - const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, - BN_MONT_CTX *)); -OSSL_DEPRECATEDIN_3_0 int (*DSA_meth_get_bn_mod_exp(const DSA_METHOD *dsam)) - (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, - BN_CTX *, BN_MONT_CTX *); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_bn_mod_exp(DSA_METHOD *dsam, - int (*bn_mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, - const BIGNUM *, BN_CTX *, BN_MONT_CTX *)); -OSSL_DEPRECATEDIN_3_0 int (*DSA_meth_get_init(const DSA_METHOD *dsam))(DSA *); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_init(DSA_METHOD *dsam, - int (*init)(DSA *)); -OSSL_DEPRECATEDIN_3_0 int (*DSA_meth_get_finish(const DSA_METHOD *dsam))(DSA *); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_finish(DSA_METHOD *dsam, - int (*finish)(DSA *)); -OSSL_DEPRECATEDIN_3_0 int (*DSA_meth_get_paramgen(const DSA_METHOD *dsam)) - (DSA *, int, const unsigned char *, int, int *, unsigned long *, - BN_GENCB *); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_paramgen(DSA_METHOD *dsam, - int (*paramgen) (DSA *, int, const unsigned char *, int, int *, - unsigned long *, BN_GENCB *)); -OSSL_DEPRECATEDIN_3_0 int (*DSA_meth_get_keygen(const DSA_METHOD *dsam))(DSA *); -OSSL_DEPRECATEDIN_3_0 int DSA_meth_set_keygen(DSA_METHOD *dsam, - int (*keygen) (DSA *)); - -# endif -# endif -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/dsaerr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/dsaerr.h deleted file mode 100644 index 26ada57..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/dsaerr.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_DSAERR_H -# define OPENSSL_DSAERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_DSA - - -/* - * DSA reason codes. - */ -# define DSA_R_BAD_FFC_PARAMETERS 114 -# define DSA_R_BAD_Q_VALUE 102 -# define DSA_R_BN_DECODE_ERROR 108 -# define DSA_R_BN_ERROR 109 -# define DSA_R_DECODE_ERROR 104 -# define DSA_R_INVALID_DIGEST_TYPE 106 -# define DSA_R_INVALID_PARAMETERS 112 -# define DSA_R_MISSING_PARAMETERS 101 -# define DSA_R_MISSING_PRIVATE_KEY 111 -# define DSA_R_MODULUS_TOO_LARGE 103 -# define DSA_R_NO_PARAMETERS_SET 107 -# define DSA_R_PARAMETER_ENCODING_ERROR 105 -# define DSA_R_P_NOT_PRIME 115 -# define DSA_R_Q_NOT_PRIME 113 -# define DSA_R_SEED_LEN_SMALL 110 -# define DSA_R_TOO_MANY_RETRIES 116 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/dtls1.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/dtls1.h deleted file mode 100644 index 5dc6b54..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/dtls1.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2005-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_DTLS1_H -# define OPENSSL_DTLS1_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_DTLS1_H -# endif - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* DTLS*_VERSION constants are defined in prov_ssl.h */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define DTLS_MIN_VERSION DTLS1_VERSION -# define DTLS_MAX_VERSION DTLS1_2_VERSION -# endif -# define DTLS1_VERSION_MAJOR 0xFE - -/* Special value for method supporting multiple versions */ -# define DTLS_ANY_VERSION 0x1FFFF - -/* lengths of messages */ - -# define DTLS1_COOKIE_LENGTH 255 - -# define DTLS1_RT_HEADER_LENGTH 13 - -# define DTLS1_HM_HEADER_LENGTH 12 - -# define DTLS1_HM_BAD_FRAGMENT -2 -# define DTLS1_HM_FRAGMENT_RETRY -3 - -# define DTLS1_CCS_HEADER_LENGTH 1 - -# define DTLS1_AL_HEADER_LENGTH 2 - -# define DTLS1_TMO_ALERT_COUNT 12 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/e_os2.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/e_os2.h deleted file mode 100644 index b8c6107..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/e_os2.h +++ /dev/null @@ -1,310 +0,0 @@ -/* - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_E_OS2_H -# define OPENSSL_E_OS2_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_E_OS2_H -# endif - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/****************************************************************************** - * Detect operating systems. This probably needs completing. - * The result is that at least one OPENSSL_SYS_os macro should be defined. - * However, if none is defined, Unix is assumed. - **/ - -# define OPENSSL_SYS_UNIX - -/* --------------------- Microsoft operating systems ---------------------- */ - -/* - * Note that MSDOS actually denotes 32-bit environments running on top of - * MS-DOS, such as DJGPP one. - */ -# if defined(OPENSSL_SYS_MSDOS) -# undef OPENSSL_SYS_UNIX -# endif - -/* - * For 32 bit environment, there seems to be the CygWin environment and then - * all the others that try to do the same thing Microsoft does... - */ -/* - * UEFI lives here because it might be built with a Microsoft toolchain and - * we need to avoid the false positive match on Windows. - */ -# if defined(OPENSSL_SYS_UEFI) -# undef OPENSSL_SYS_UNIX -# elif defined(OPENSSL_SYS_UWIN) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WIN32_UWIN -# else -# if defined(__CYGWIN__) || defined(OPENSSL_SYS_CYGWIN) -# define OPENSSL_SYS_WIN32_CYGWIN -# else -# if defined(_WIN32) || defined(OPENSSL_SYS_WIN32) -# undef OPENSSL_SYS_UNIX -# if !defined(OPENSSL_SYS_WIN32) -# define OPENSSL_SYS_WIN32 -# endif -# endif -# if defined(_WIN64) || defined(OPENSSL_SYS_WIN64) -# undef OPENSSL_SYS_UNIX -# if !defined(OPENSSL_SYS_WIN64) -# define OPENSSL_SYS_WIN64 -# endif -# endif -# if defined(OPENSSL_SYS_WINNT) -# undef OPENSSL_SYS_UNIX -# endif -# if defined(OPENSSL_SYS_WINCE) -# undef OPENSSL_SYS_UNIX -# endif -# endif -# endif - -/* Anything that tries to look like Microsoft is "Windows" */ -# if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN64) || defined(OPENSSL_SYS_WINNT) || defined(OPENSSL_SYS_WINCE) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WINDOWS -# ifndef OPENSSL_SYS_MSDOS -# define OPENSSL_SYS_MSDOS -# endif -# endif - -/* - * DLL settings. This part is a bit tough, because it's up to the - * application implementer how he or she will link the application, so it - * requires some macro to be used. - */ -# ifdef OPENSSL_SYS_WINDOWS -# ifndef OPENSSL_OPT_WINDLL -# if defined(_WINDLL) /* This is used when building OpenSSL to - * indicate that DLL linkage should be used */ -# define OPENSSL_OPT_WINDLL -# endif -# endif -# endif - -/* ------------------------------- OpenVMS -------------------------------- */ -# if defined(__VMS) || defined(VMS) -# if !defined(OPENSSL_SYS_VMS) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_VMS -# endif -# if defined(__DECC) -# define OPENSSL_SYS_VMS_DECC -# elif defined(__DECCXX) -# define OPENSSL_SYS_VMS_DECC -# define OPENSSL_SYS_VMS_DECCXX -# else -# define OPENSSL_SYS_VMS_NODECC -# endif -# endif - -/* -------------------------------- Unix ---------------------------------- */ -# ifdef OPENSSL_SYS_UNIX -# if defined(linux) || defined(__linux__) && !defined(OPENSSL_SYS_LINUX) -# define OPENSSL_SYS_LINUX -# endif -# if defined(_AIX) && !defined(OPENSSL_SYS_AIX) -# define OPENSSL_SYS_AIX -# endif -# endif - -/* -------------------------------- VOS ----------------------------------- */ -# if defined(__VOS__) && !defined(OPENSSL_SYS_VOS) -# define OPENSSL_SYS_VOS -# ifdef __HPPA__ -# define OPENSSL_SYS_VOS_HPPA -# endif -# ifdef __IA32__ -# define OPENSSL_SYS_VOS_IA32 -# endif -# endif - -/* ---------------------------- HP NonStop -------------------------------- */ -# ifdef __TANDEM -# ifdef _STRING -# include -# endif -# define OPENSSL_USE_BUILD_DATE -# if defined(OPENSSL_THREADS) && defined(_SPT_MODEL_) -# define SPT_THREAD_SIGNAL 1 -# define SPT_THREAD_AWARE 1 -# include -# elif defined(OPENSSL_THREADS) && defined(_PUT_MODEL_) -# include -# endif -# endif - -/** - * That's it for OS-specific stuff - *****************************************************************************/ - -/*- - * OPENSSL_EXTERN is normally used to declare a symbol with possible extra - * attributes to handle its presence in a shared library. - * OPENSSL_EXPORT is used to define a symbol with extra possible attributes - * to make it visible in a shared library. - * Care needs to be taken when a header file is used both to declare and - * define symbols. Basically, for any library that exports some global - * variables, the following code must be present in the header file that - * declares them, before OPENSSL_EXTERN is used: - * - * #ifdef SOME_BUILD_FLAG_MACRO - * # undef OPENSSL_EXTERN - * # define OPENSSL_EXTERN OPENSSL_EXPORT - * #endif - * - * The default is to have OPENSSL_EXPORT and OPENSSL_EXTERN - * have some generally sensible values. - */ - -# if defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL) -# define OPENSSL_EXPORT extern __declspec(dllexport) -# define OPENSSL_EXTERN extern __declspec(dllimport) -# else -# define OPENSSL_EXPORT extern -# define OPENSSL_EXTERN extern -# endif - -# ifdef _WIN32 -# ifdef _WIN64 -# define ossl_ssize_t __int64 -# define OSSL_SSIZE_MAX _I64_MAX -# else -# define ossl_ssize_t int -# define OSSL_SSIZE_MAX INT_MAX -# endif -# endif - -# if defined(OPENSSL_SYS_UEFI) && !defined(ossl_ssize_t) -# define ossl_ssize_t INTN -# define OSSL_SSIZE_MAX MAX_INTN -# endif - -# ifndef ossl_ssize_t -# include -# define ossl_ssize_t ssize_t -# if defined(SSIZE_MAX) -# define OSSL_SSIZE_MAX SSIZE_MAX -# elif defined(_POSIX_SSIZE_MAX) -# define OSSL_SSIZE_MAX _POSIX_SSIZE_MAX -# else -# define OSSL_SSIZE_MAX ((ssize_t)(SIZE_MAX>>1)) -# endif -# endif - -# if defined(UNUSEDRESULT_DEBUG) -# define __owur __attribute__((__warn_unused_result__)) -# else -# define __owur -# endif - -/* Standard integer types */ -# define OPENSSL_NO_INTTYPES_H -# define OPENSSL_NO_STDINT_H -# if defined(OPENSSL_SYS_UEFI) -typedef INT8 int8_t; -typedef UINT8 uint8_t; -typedef INT16 int16_t; -typedef UINT16 uint16_t; -typedef INT32 int32_t; -typedef UINT32 uint32_t; -typedef INT64 int64_t; -typedef UINT64 uint64_t; -typedef UINTN uintptr_t; -# elif (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - defined(__osf__) || defined(__sgi) || defined(__hpux) || \ - defined(OPENSSL_SYS_VMS) || defined (__OpenBSD__) -# include -# undef OPENSSL_NO_INTTYPES_H -/* Because the specs say that inttypes.h includes stdint.h if present */ -# undef OPENSSL_NO_STDINT_H -# elif defined(_MSC_VER) && _MSC_VER<1600 -/* - * minimally required typdefs for systems not supporting inttypes.h or - * stdint.h: currently just older VC++ - */ -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef short int16_t; -typedef unsigned short uint16_t; -typedef int int32_t; -typedef unsigned int uint32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -# elif defined(OPENSSL_SYS_TANDEM) -# include -# include -# else -# include -# undef OPENSSL_NO_STDINT_H -# endif -# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L && \ - defined(INTMAX_MAX) && defined(UINTMAX_MAX) -typedef intmax_t ossl_intmax_t; -typedef uintmax_t ossl_uintmax_t; -# else -/* Fall back to the largest we know we require and can handle */ -typedef int64_t ossl_intmax_t; -typedef uint64_t ossl_uintmax_t; -# endif - -/* ossl_inline: portable inline definition usable in public headers */ -# if !defined(inline) && !defined(__cplusplus) -# if defined(__STDC_VERSION__) && __STDC_VERSION__>=199901L - /* just use inline */ -# define ossl_inline inline -# elif defined(__GNUC__) && __GNUC__>=2 -# define ossl_inline __inline__ -# elif defined(_MSC_VER) - /* - * Visual Studio: inline is available in C++ only, however - * __inline is available for C, see - * http://msdn.microsoft.com/en-us/library/z8y1yy88.aspx - */ -# define ossl_inline __inline -# else -# define ossl_inline -# endif -# else -# define ossl_inline inline -# endif - -# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && \ - !defined(__cplusplus) -# define ossl_noreturn _Noreturn -# elif defined(__GNUC__) && __GNUC__ >= 2 -# define ossl_noreturn __attribute__((noreturn)) -# else -# define ossl_noreturn -# endif - -/* ossl_unused: portable unused attribute for use in public headers */ -# if defined(__GNUC__) -# define ossl_unused __attribute__((unused)) -# else -# define ossl_unused -# endif - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/e_ostime.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/e_ostime.h deleted file mode 100644 index 0e17487..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/e_ostime.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_E_OSTIME_H -# define OPENSSL_E_OSTIME_H -# pragma once - -# include -# include -# include - -/* - * This header guarantees that 'struct timeval' will be available. It includes - * the minimum headers needed to facilitate this. This may still be a - * substantial set of headers on some platforms (e.g. on Win32). - */ - -# if defined(OPENSSL_SYS_WINDOWS) -# if !defined(_WINSOCKAPI_) - /* - * winsock2.h defines _WINSOCK2API_ and both winsock2.h and winsock.h define - * _WINSOCKAPI_. Both of these provide struct timeval. Don't include - * winsock2.h if either header has been included to avoid breakage with - * applications that prefer to use over . - */ -# include -# endif -# else -# include -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/ebcdic.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/ebcdic.h deleted file mode 100644 index e0ae1aa..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/ebcdic.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_EBCDIC_H -# define OPENSSL_EBCDIC_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_EBCDIC_H -# endif - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Avoid name clashes with other applications */ -# define os_toascii _openssl_os_toascii -# define os_toebcdic _openssl_os_toebcdic -# define ebcdic2ascii _openssl_ebcdic2ascii -# define ascii2ebcdic _openssl_ascii2ebcdic - -extern const unsigned char os_toascii[256]; -extern const unsigned char os_toebcdic[256]; -void *ebcdic2ascii(void *dest, const void *srce, size_t count); -void *ascii2ebcdic(void *dest, const void *srce, size_t count); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/ec.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/ec.h deleted file mode 100644 index e1cbe98..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/ec.h +++ /dev/null @@ -1,1588 +0,0 @@ -/* - * Copyright 2002-2023 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_EC_H -# define OPENSSL_EC_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_EC_H -# endif - -# include -# include - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* Values for EVP_PKEY_CTX_set_ec_param_enc() */ -# define OPENSSL_EC_EXPLICIT_CURVE 0x000 -# define OPENSSL_EC_NAMED_CURVE 0x001 - -int EVP_PKEY_CTX_set_ec_paramgen_curve_nid(EVP_PKEY_CTX *ctx, int nid); -int EVP_PKEY_CTX_set_ec_param_enc(EVP_PKEY_CTX *ctx, int param_enc); -int EVP_PKEY_CTX_set_ecdh_cofactor_mode(EVP_PKEY_CTX *ctx, int cofactor_mode); -int EVP_PKEY_CTX_get_ecdh_cofactor_mode(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_CTX_set_ecdh_kdf_type(EVP_PKEY_CTX *ctx, int kdf); -int EVP_PKEY_CTX_get_ecdh_kdf_type(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_CTX_set_ecdh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); -int EVP_PKEY_CTX_get_ecdh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); - -int EVP_PKEY_CTX_set_ecdh_kdf_outlen(EVP_PKEY_CTX *ctx, int len); -int EVP_PKEY_CTX_get_ecdh_kdf_outlen(EVP_PKEY_CTX *ctx, int *len); - -int EVP_PKEY_CTX_set0_ecdh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char *ukm, - int len); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_CTX_get0_ecdh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char **ukm); -# endif - -# define EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_EC_PARAM_ENC (EVP_PKEY_ALG_CTRL + 2) -# define EVP_PKEY_CTRL_EC_ECDH_COFACTOR (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_EC_KDF_TYPE (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 5) -# define EVP_PKEY_CTRL_GET_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 8) -# define EVP_PKEY_CTRL_EC_KDF_UKM (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_GET_EC_KDF_UKM (EVP_PKEY_ALG_CTRL + 10) - -/* KDF types */ -# define EVP_PKEY_ECDH_KDF_NONE 1 -# define EVP_PKEY_ECDH_KDF_X9_63 2 -/* - * The old name for EVP_PKEY_ECDH_KDF_X9_63 - * The ECDH KDF specification has been mistakenly attributed to ANSI X9.62, - * it is actually specified in ANSI X9.63. - * This identifier is retained for backwards compatibility - */ -# define EVP_PKEY_ECDH_KDF_X9_62 EVP_PKEY_ECDH_KDF_X9_63 - -/** Enum for the point conversion form as defined in X9.62 (ECDSA) - * for the encoding of a elliptic curve point (x,y) */ -typedef enum { - /** the point is encoded as z||x, where the octet z specifies - * which solution of the quadratic equation y is */ - POINT_CONVERSION_COMPRESSED = 2, - /** the point is encoded as z||x||y, where z is the octet 0x04 */ - POINT_CONVERSION_UNCOMPRESSED = 4, - /** the point is encoded as z||x||y, where the octet z specifies - * which solution of the quadratic equation y is */ - POINT_CONVERSION_HYBRID = 6 -} point_conversion_form_t; - -const char *OSSL_EC_curve_nid2name(int nid); - -# ifndef OPENSSL_NO_STDIO -# include -# endif -# ifndef OPENSSL_NO_EC -# include -# include -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# include -# endif -# include - -# ifndef OPENSSL_ECC_MAX_FIELD_BITS -# define OPENSSL_ECC_MAX_FIELD_BITS 661 -# endif - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -typedef struct ec_method_st EC_METHOD; -# endif -typedef struct ec_group_st EC_GROUP; -typedef struct ec_point_st EC_POINT; -typedef struct ecpk_parameters_st ECPKPARAMETERS; -typedef struct ec_parameters_st ECPARAMETERS; - -/********************************************************************/ -/* EC_METHODs for curves over GF(p) */ -/********************************************************************/ - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/** Returns the basic GFp ec methods which provides the basis for the - * optimized methods. - * \return EC_METHOD object - */ -OSSL_DEPRECATEDIN_3_0 const EC_METHOD *EC_GFp_simple_method(void); - -/** Returns GFp methods using montgomery multiplication. - * \return EC_METHOD object - */ -OSSL_DEPRECATEDIN_3_0 const EC_METHOD *EC_GFp_mont_method(void); - -/** Returns GFp methods using optimized methods for NIST recommended curves - * \return EC_METHOD object - */ -OSSL_DEPRECATEDIN_3_0 const EC_METHOD *EC_GFp_nist_method(void); - -# ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 -/** Returns 64-bit optimized methods for nistp224 - * \return EC_METHOD object - */ -OSSL_DEPRECATEDIN_3_0 const EC_METHOD *EC_GFp_nistp224_method(void); - -/** Returns 64-bit optimized methods for nistp256 - * \return EC_METHOD object - */ -OSSL_DEPRECATEDIN_3_0 const EC_METHOD *EC_GFp_nistp256_method(void); - -/** Returns 64-bit optimized methods for nistp521 - * \return EC_METHOD object - */ -OSSL_DEPRECATEDIN_3_0 const EC_METHOD *EC_GFp_nistp521_method(void); -# endif /* OPENSSL_NO_EC_NISTP_64_GCC_128 */ - -# ifndef OPENSSL_NO_EC2M -/********************************************************************/ -/* EC_METHOD for curves over GF(2^m) */ -/********************************************************************/ - -/** Returns the basic GF2m ec method - * \return EC_METHOD object - */ -OSSL_DEPRECATEDIN_3_0 const EC_METHOD *EC_GF2m_simple_method(void); - -# endif - -/********************************************************************/ -/* EC_GROUP functions */ -/********************************************************************/ - -/** - * Creates a new EC_GROUP object - * \param meth EC_METHOD to use - * \return newly created EC_GROUP object or NULL in case of an error. - */ -OSSL_DEPRECATEDIN_3_0 EC_GROUP *EC_GROUP_new(const EC_METHOD *meth); - -/** Clears and frees a EC_GROUP object - * \param group EC_GROUP object to be cleared and freed. - */ -OSSL_DEPRECATEDIN_3_0 void EC_GROUP_clear_free(EC_GROUP *group); - -/** Returns the EC_METHOD of the EC_GROUP object. - * \param group EC_GROUP object - * \return EC_METHOD used in this EC_GROUP object. - */ -OSSL_DEPRECATEDIN_3_0 const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group); - -/** Returns the field type of the EC_METHOD. - * \param meth EC_METHOD object - * \return NID of the underlying field type OID. - */ -OSSL_DEPRECATEDIN_3_0 int EC_METHOD_get_field_type(const EC_METHOD *meth); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -/** Frees a EC_GROUP object - * \param group EC_GROUP object to be freed. - */ -void EC_GROUP_free(EC_GROUP *group); - -/** Copies EC_GROUP objects. Note: both EC_GROUPs must use the same EC_METHOD. - * \param dst destination EC_GROUP object - * \param src source EC_GROUP object - * \return 1 on success and 0 if an error occurred. - */ -int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src); - -/** Creates a new EC_GROUP object and copies the content - * form src to the newly created EC_KEY object - * \param src source EC_GROUP object - * \return newly created EC_GROUP object or NULL in case of an error. - */ -EC_GROUP *EC_GROUP_dup(const EC_GROUP *src); - -/** Sets the generator and its order/cofactor of a EC_GROUP object. - * \param group EC_GROUP object - * \param generator EC_POINT object with the generator. - * \param order the order of the group generated by the generator. - * \param cofactor the index of the sub-group generated by the generator - * in the group of all points on the elliptic curve. - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, - const BIGNUM *order, const BIGNUM *cofactor); - -/** Returns the generator of a EC_GROUP object. - * \param group EC_GROUP object - * \return the currently used generator (possibly NULL). - */ -const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group); - -/** Returns the montgomery data for order(Generator) - * \param group EC_GROUP object - * \return the currently used montgomery data (possibly NULL). -*/ -BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group); - -/** Gets the order of a EC_GROUP - * \param group EC_GROUP object - * \param order BIGNUM to which the order is copied - * \param ctx unused - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx); - -/** Gets the order of an EC_GROUP - * \param group EC_GROUP object - * \return the group order - */ -const BIGNUM *EC_GROUP_get0_order(const EC_GROUP *group); - -/** Gets the number of bits of the order of an EC_GROUP - * \param group EC_GROUP object - * \return number of bits of group order. - */ -int EC_GROUP_order_bits(const EC_GROUP *group); - -/** Gets the cofactor of a EC_GROUP - * \param group EC_GROUP object - * \param cofactor BIGNUM to which the cofactor is copied - * \param ctx unused - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, - BN_CTX *ctx); - -/** Gets the cofactor of an EC_GROUP - * \param group EC_GROUP object - * \return the group cofactor - */ -const BIGNUM *EC_GROUP_get0_cofactor(const EC_GROUP *group); - -/** Sets the name of a EC_GROUP object - * \param group EC_GROUP object - * \param nid NID of the curve name OID - */ -void EC_GROUP_set_curve_name(EC_GROUP *group, int nid); - -/** Returns the curve name of a EC_GROUP object - * \param group EC_GROUP object - * \return NID of the curve name OID or 0 if not set. - */ -int EC_GROUP_get_curve_name(const EC_GROUP *group); - -/** Gets the field of an EC_GROUP - * \param group EC_GROUP object - * \return the group field - */ -const BIGNUM *EC_GROUP_get0_field(const EC_GROUP *group); - -/** Returns the field type of the EC_GROUP. - * \param group EC_GROUP object - * \return NID of the underlying field type OID. - */ -int EC_GROUP_get_field_type(const EC_GROUP *group); - -void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); -int EC_GROUP_get_asn1_flag(const EC_GROUP *group); - -void EC_GROUP_set_point_conversion_form(EC_GROUP *group, - point_conversion_form_t form); -point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); - -unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); -size_t EC_GROUP_get_seed_len(const EC_GROUP *); -size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); - -/** Sets the parameters of an ec curve defined by y^2 = x^3 + a*x + b (for GFp) - * or y^2 + x*y = x^3 + a*x^2 + b (for GF2m) - * \param group EC_GROUP object - * \param p BIGNUM with the prime number (GFp) or the polynomial - * defining the underlying field (GF2m) - * \param a BIGNUM with parameter a of the equation - * \param b BIGNUM with parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_set_curve(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); - -/** Gets the parameters of the ec curve defined by y^2 = x^3 + a*x + b (for GFp) - * or y^2 + x*y = x^3 + a*x^2 + b (for GF2m) - * \param group EC_GROUP object - * \param p BIGNUM with the prime number (GFp) or the polynomial - * defining the underlying field (GF2m) - * \param a BIGNUM for parameter a of the equation - * \param b BIGNUM for parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, - BN_CTX *ctx); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/** Sets the parameters of an ec curve. Synonym for EC_GROUP_set_curve - * \param group EC_GROUP object - * \param p BIGNUM with the prime number (GFp) or the polynomial - * defining the underlying field (GF2m) - * \param a BIGNUM with parameter a of the equation - * \param b BIGNUM with parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_GROUP_set_curve_GFp(EC_GROUP *group, - const BIGNUM *p, - const BIGNUM *a, - const BIGNUM *b, - BN_CTX *ctx); - -/** Gets the parameters of an ec curve. Synonym for EC_GROUP_get_curve - * \param group EC_GROUP object - * \param p BIGNUM with the prime number (GFp) or the polynomial - * defining the underlying field (GF2m) - * \param a BIGNUM for parameter a of the equation - * \param b BIGNUM for parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_GROUP_get_curve_GFp(const EC_GROUP *group, - BIGNUM *p, - BIGNUM *a, BIGNUM *b, - BN_CTX *ctx); - -# ifndef OPENSSL_NO_EC2M -/** Sets the parameter of an ec curve. Synonym for EC_GROUP_set_curve - * \param group EC_GROUP object - * \param p BIGNUM with the prime number (GFp) or the polynomial - * defining the underlying field (GF2m) - * \param a BIGNUM with parameter a of the equation - * \param b BIGNUM with parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_GROUP_set_curve_GF2m(EC_GROUP *group, - const BIGNUM *p, - const BIGNUM *a, - const BIGNUM *b, - BN_CTX *ctx); - -/** Gets the parameters of an ec curve. Synonym for EC_GROUP_get_curve - * \param group EC_GROUP object - * \param p BIGNUM with the prime number (GFp) or the polynomial - * defining the underlying field (GF2m) - * \param a BIGNUM for parameter a of the equation - * \param b BIGNUM for parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, - BIGNUM *p, - BIGNUM *a, BIGNUM *b, - BN_CTX *ctx); -# endif /* OPENSSL_NO_EC2M */ -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -/** Returns the number of bits needed to represent a field element - * \param group EC_GROUP object - * \return number of bits needed to represent a field element - */ -int EC_GROUP_get_degree(const EC_GROUP *group); - -/** Checks whether the parameter in the EC_GROUP define a valid ec group - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 if group is a valid ec group and 0 otherwise - */ -int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx); - -/** Checks whether the discriminant of the elliptic curve is zero or not - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 if the discriminant is not zero and 0 otherwise - */ -int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx); - -/** Compares two EC_GROUP objects - * \param a first EC_GROUP object - * \param b second EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 0 if the groups are equal, 1 if not, or -1 on error - */ -int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx); - -/* - * EC_GROUP_new_GF*() calls EC_GROUP_new() and EC_GROUP_set_GF*() after - * choosing an appropriate EC_METHOD - */ - -/** Creates a new EC_GROUP object with the specified parameters defined - * over GFp (defined by the equation y^2 = x^3 + a*x + b) - * \param p BIGNUM with the prime number - * \param a BIGNUM with the parameter a of the equation - * \param b BIGNUM with the parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return newly created EC_GROUP object with the specified parameters - */ -EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); -# ifndef OPENSSL_NO_EC2M -/** Creates a new EC_GROUP object with the specified parameters defined - * over GF2m (defined by the equation y^2 + x*y = x^3 + a*x^2 + b) - * \param p BIGNUM with the polynomial defining the underlying field - * \param a BIGNUM with the parameter a of the equation - * \param b BIGNUM with the parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return newly created EC_GROUP object with the specified parameters - */ -EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); -# endif - -/** - * Creates a EC_GROUP object with a curve specified by parameters. - * The parameters may be explicit or a named curve, - * \param params A list of parameters describing the group. - * \param libctx The associated library context or NULL for the default - * context - * \param propq A property query string - * \return newly created EC_GROUP object with specified parameters or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_from_params(const OSSL_PARAM params[], - OSSL_LIB_CTX *libctx, const char *propq); - -/** - * Creates an OSSL_PARAM array with the parameters describing the given - * EC_GROUP. - * The resulting parameters may contain an explicit or a named curve depending - * on the EC_GROUP. - * \param group pointer to the EC_GROUP object - * \param libctx The associated library context or NULL for the default - * context - * \param propq A property query string - * \param bnctx BN_CTX object (optional) - * \return newly created OSSL_PARAM array with the parameters - * describing the given EC_GROUP or NULL if an error occurred - */ -OSSL_PARAM *EC_GROUP_to_params(const EC_GROUP *group, OSSL_LIB_CTX *libctx, - const char *propq, BN_CTX *bnctx); - -/** - * Creates a EC_GROUP object with a curve specified by a NID - * \param libctx The associated library context or NULL for the default - * context - * \param propq A property query string - * \param nid NID of the OID of the curve name - * \return newly created EC_GROUP object with specified curve or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_by_curve_name_ex(OSSL_LIB_CTX *libctx, const char *propq, - int nid); - -/** - * Creates a EC_GROUP object with a curve specified by a NID. Same as - * EC_GROUP_new_by_curve_name_ex but the libctx and propq are always - * NULL. - * \param nid NID of the OID of the curve name - * \return newly created EC_GROUP object with specified curve or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_by_curve_name(int nid); - -/** Creates a new EC_GROUP object from an ECPARAMETERS object - * \param params pointer to the ECPARAMETERS object - * \return newly created EC_GROUP object with specified curve or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params); - -/** Creates an ECPARAMETERS object for the given EC_GROUP object. - * \param group pointer to the EC_GROUP object - * \param params pointer to an existing ECPARAMETERS object or NULL - * \return pointer to the new ECPARAMETERS object or NULL - * if an error occurred. - */ -ECPARAMETERS *EC_GROUP_get_ecparameters(const EC_GROUP *group, - ECPARAMETERS *params); - -/** Creates a new EC_GROUP object from an ECPKPARAMETERS object - * \param params pointer to an existing ECPKPARAMETERS object, or NULL - * \return newly created EC_GROUP object with specified curve, or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_from_ecpkparameters(const ECPKPARAMETERS *params); - -/** Creates an ECPKPARAMETERS object for the given EC_GROUP object. - * \param group pointer to the EC_GROUP object - * \param params pointer to an existing ECPKPARAMETERS object or NULL - * \return pointer to the new ECPKPARAMETERS object or NULL - * if an error occurred. - */ -ECPKPARAMETERS *EC_GROUP_get_ecpkparameters(const EC_GROUP *group, - ECPKPARAMETERS *params); - -/********************************************************************/ -/* handling of internal curves */ -/********************************************************************/ - -typedef struct { - int nid; - const char *comment; -} EC_builtin_curve; - -/* - * EC_builtin_curves(EC_builtin_curve *r, size_t size) returns number of all - * available curves or zero if a error occurred. In case r is not zero, - * nitems EC_builtin_curve structures are filled with the data of the first - * nitems internal groups - */ -size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); - -const char *EC_curve_nid2nist(int nid); -int EC_curve_nist2nid(const char *name); -int EC_GROUP_check_named_curve(const EC_GROUP *group, int nist_only, - BN_CTX *ctx); - -/********************************************************************/ -/* EC_POINT functions */ -/********************************************************************/ - -/** Creates a new EC_POINT object for the specified EC_GROUP - * \param group EC_GROUP the underlying EC_GROUP object - * \return newly created EC_POINT object or NULL if an error occurred - */ -EC_POINT *EC_POINT_new(const EC_GROUP *group); - -/** Frees a EC_POINT object - * \param point EC_POINT object to be freed - */ -void EC_POINT_free(EC_POINT *point); - -/** Clears and frees a EC_POINT object - * \param point EC_POINT object to be cleared and freed - */ -void EC_POINT_clear_free(EC_POINT *point); - -/** Copies EC_POINT object - * \param dst destination EC_POINT object - * \param src source EC_POINT object - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src); - -/** Creates a new EC_POINT object and copies the content of the supplied - * EC_POINT - * \param src source EC_POINT object - * \param group underlying the EC_GROUP object - * \return newly created EC_POINT object or NULL if an error occurred - */ -EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group); - -/** Sets a point to infinity (neutral element) - * \param group underlying EC_GROUP object - * \param point EC_POINT to set to infinity - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/** Returns the EC_METHOD used in EC_POINT object - * \param point EC_POINT object - * \return the EC_METHOD used - */ -OSSL_DEPRECATEDIN_3_0 const EC_METHOD *EC_POINT_method_of(const EC_POINT *point); - -/** Sets the jacobian projective coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with the x-coordinate - * \param y BIGNUM with the y-coordinate - * \param z BIGNUM with the z-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_POINT_set_Jprojective_coordinates_GFp - (const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, const BIGNUM *z, - BN_CTX *ctx); - -/** Gets the jacobian projective coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param z BIGNUM for the z-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_POINT_get_Jprojective_coordinates_GFp - (const EC_GROUP *group, const EC_POINT *p, - BIGNUM *x, BIGNUM *y, BIGNUM *z, BN_CTX *ctx); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -/** Sets the affine coordinates of an EC_POINT - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with the x-coordinate - * \param y BIGNUM with the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_set_affine_coordinates(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, - BN_CTX *ctx); - -/** Gets the affine coordinates of an EC_POINT. - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_get_affine_coordinates(const EC_GROUP *group, const EC_POINT *p, - BIGNUM *x, BIGNUM *y, BN_CTX *ctx); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/** Sets the affine coordinates of an EC_POINT. A synonym of - * EC_POINT_set_affine_coordinates - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with the x-coordinate - * \param y BIGNUM with the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_POINT_set_affine_coordinates_GFp - (const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, BN_CTX *ctx); - -/** Gets the affine coordinates of an EC_POINT. A synonym of - * EC_POINT_get_affine_coordinates - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_POINT_get_affine_coordinates_GFp - (const EC_GROUP *group, const EC_POINT *p, - BIGNUM *x, BIGNUM *y, BN_CTX *ctx); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -/** Sets the x9.62 compressed coordinates of a EC_POINT - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with x-coordinate - * \param y_bit integer with the y-Bit (either 0 or 1) - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_set_compressed_coordinates(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, int y_bit, - BN_CTX *ctx); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/** Sets the x9.62 compressed coordinates of a EC_POINT. A synonym of - * EC_POINT_set_compressed_coordinates - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with x-coordinate - * \param y_bit integer with the y-Bit (either 0 or 1) - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_POINT_set_compressed_coordinates_GFp - (const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, int y_bit, BN_CTX *ctx); -# ifndef OPENSSL_NO_EC2M -/** Sets the affine coordinates of an EC_POINT. A synonym of - * EC_POINT_set_affine_coordinates - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with the x-coordinate - * \param y BIGNUM with the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_POINT_set_affine_coordinates_GF2m - (const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, BN_CTX *ctx); - -/** Gets the affine coordinates of an EC_POINT. A synonym of - * EC_POINT_get_affine_coordinates - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_POINT_get_affine_coordinates_GF2m - (const EC_GROUP *group, const EC_POINT *p, - BIGNUM *x, BIGNUM *y, BN_CTX *ctx); - -/** Sets the x9.62 compressed coordinates of a EC_POINT. A synonym of - * EC_POINT_set_compressed_coordinates - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with x-coordinate - * \param y_bit integer with the y-Bit (either 0 or 1) - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_POINT_set_compressed_coordinates_GF2m - (const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, int y_bit, BN_CTX *ctx); -# endif -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -/** Encodes a EC_POINT object to a octet string - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param form point conversion form - * \param buf memory buffer for the result. If NULL the function returns - * required buffer size. - * \param len length of the memory buffer - * \param ctx BN_CTX object (optional) - * \return the length of the encoded octet string or 0 if an error occurred - */ -size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, - point_conversion_form_t form, - unsigned char *buf, size_t len, BN_CTX *ctx); - -/** Decodes a EC_POINT from a octet string - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param buf memory buffer with the encoded ec point - * \param len length of the encoded ec point - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, - const unsigned char *buf, size_t len, BN_CTX *ctx); - -/** Encodes an EC_POINT object to an allocated octet string - * \param group underlying EC_GROUP object - * \param point EC_POINT object - * \param form point conversion form - * \param pbuf returns pointer to allocated buffer - * \param ctx BN_CTX object (optional) - * \return the length of the encoded octet string or 0 if an error occurred - */ -size_t EC_POINT_point2buf(const EC_GROUP *group, const EC_POINT *point, - point_conversion_form_t form, - unsigned char **pbuf, BN_CTX *ctx); - -/* other interfaces to point2oct/oct2point: */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 BIGNUM *EC_POINT_point2bn(const EC_GROUP *, - const EC_POINT *, - point_conversion_form_t form, - BIGNUM *, BN_CTX *); -OSSL_DEPRECATEDIN_3_0 EC_POINT *EC_POINT_bn2point(const EC_GROUP *, - const BIGNUM *, - EC_POINT *, BN_CTX *); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, - point_conversion_form_t form, BN_CTX *); -EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *, - EC_POINT *, BN_CTX *); - -/********************************************************************/ -/* functions for doing EC_POINT arithmetic */ -/********************************************************************/ - -/** Computes the sum of two EC_POINT - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result (r = a + b) - * \param a EC_POINT object with the first summand - * \param b EC_POINT object with the second summand - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, - const EC_POINT *b, BN_CTX *ctx); - -/** Computes the double of a EC_POINT - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result (r = 2 * a) - * \param a EC_POINT object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, - BN_CTX *ctx); - -/** Computes the inverse of a EC_POINT - * \param group underlying EC_GROUP object - * \param a EC_POINT object to be inverted (it's used for the result as well) - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx); - -/** Checks whether the point is the neutral element of the group - * \param group the underlying EC_GROUP object - * \param p EC_POINT object - * \return 1 if the point is the neutral element and 0 otherwise - */ -int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p); - -/** Checks whether the point is on the curve - * \param group underlying EC_GROUP object - * \param point EC_POINT object to check - * \param ctx BN_CTX object (optional) - * \return 1 if the point is on the curve, 0 if not, or -1 on error - */ -int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, - BN_CTX *ctx); - -/** Compares two EC_POINTs - * \param group underlying EC_GROUP object - * \param a first EC_POINT object - * \param b second EC_POINT object - * \param ctx BN_CTX object (optional) - * \return 1 if the points are not equal, 0 if they are, or -1 on error - */ -int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, - BN_CTX *ctx); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int EC_POINT_make_affine(const EC_GROUP *group, - EC_POINT *point, BN_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, - EC_POINT *points[], BN_CTX *ctx); - -/** Computes r = generator * n + sum_{i=0}^{num-1} p[i] * m[i] - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result - * \param n BIGNUM with the multiplier for the group generator (optional) - * \param num number further summands - * \param p array of size num of EC_POINT objects - * \param m array of size num of BIGNUM objects - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, - const BIGNUM *n, size_t num, - const EC_POINT *p[], const BIGNUM *m[], - BN_CTX *ctx); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -/** Computes r = generator * n + q * m - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result - * \param n BIGNUM with the multiplier for the group generator (optional) - * \param q EC_POINT object with the first factor of the second summand - * \param m BIGNUM with the second factor of the second summand - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, - const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/** Stores multiples of generator for faster point multiplication - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx); - -/** Reports whether a precomputation has been done - * \param group EC_GROUP object - * \return 1 if a pre-computation has been done and 0 otherwise - */ -OSSL_DEPRECATEDIN_3_0 int EC_GROUP_have_precompute_mult(const EC_GROUP *group); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -/********************************************************************/ -/* ASN1 stuff */ -/********************************************************************/ - -DECLARE_ASN1_ITEM(ECPKPARAMETERS) -DECLARE_ASN1_ALLOC_FUNCTIONS(ECPKPARAMETERS) -DECLARE_ASN1_ITEM(ECPARAMETERS) -DECLARE_ASN1_ALLOC_FUNCTIONS(ECPARAMETERS) - -/* - * EC_GROUP_get_basis_type() returns the NID of the basis type used to - * represent the field elements - */ -int EC_GROUP_get_basis_type(const EC_GROUP *); -# ifndef OPENSSL_NO_EC2M -int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k); -int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, - unsigned int *k2, unsigned int *k3); -# endif - -EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len); -int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out); - -# define d2i_ECPKParameters_bio(bp,x) \ - ASN1_d2i_bio_of(EC_GROUP, NULL, d2i_ECPKParameters, bp, x) -# define i2d_ECPKParameters_bio(bp,x) \ - ASN1_i2d_bio_of(EC_GROUP, i2d_ECPKParameters, bp, x) -# define d2i_ECPKParameters_fp(fp,x) \ - (EC_GROUP *)ASN1_d2i_fp(NULL, (d2i_of_void *)d2i_ECPKParameters, (fp), \ - (void **)(x)) -# define i2d_ECPKParameters_fp(fp,x) \ - ASN1_i2d_fp((i2d_of_void *)i2d_ECPKParameters, (fp), (void *)(x)) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ECPKParameters_print(BIO *bp, const EC_GROUP *x, - int off); -# ifndef OPENSSL_NO_STDIO -OSSL_DEPRECATEDIN_3_0 int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, - int off); -# endif -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -/********************************************************************/ -/* EC_KEY functions */ -/********************************************************************/ - -/* some values for the encoding_flag */ -# define EC_PKEY_NO_PARAMETERS 0x001 -# define EC_PKEY_NO_PUBKEY 0x002 - -/* some values for the flags field */ -# define EC_FLAG_SM2_RANGE 0x0004 -# define EC_FLAG_COFACTOR_ECDH 0x1000 -# define EC_FLAG_CHECK_NAMED_GROUP 0x2000 -# define EC_FLAG_CHECK_NAMED_GROUP_NIST 0x4000 -# define EC_FLAG_CHECK_NAMED_GROUP_MASK \ - (EC_FLAG_CHECK_NAMED_GROUP | EC_FLAG_CHECK_NAMED_GROUP_NIST) - -/* Deprecated flags - it was using 0x01..0x02 */ -# define EC_FLAG_NON_FIPS_ALLOW 0x0000 -# define EC_FLAG_FIPS_CHECKED 0x0000 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/** - * Creates a new EC_KEY object. - * \param ctx The library context for to use for this EC_KEY. May be NULL in - * which case the default library context is used. - * \return EC_KEY object or NULL if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new_ex(OSSL_LIB_CTX *ctx, const char *propq); - -/** - * Creates a new EC_KEY object. Same as calling EC_KEY_new_ex with a - * NULL library context - * \return EC_KEY object or NULL if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new(void); - -OSSL_DEPRECATEDIN_3_0 int EC_KEY_get_flags(const EC_KEY *key); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_set_flags(EC_KEY *key, int flags); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_clear_flags(EC_KEY *key, int flags); - -OSSL_DEPRECATEDIN_3_0 int EC_KEY_decoded_from_explicit_params(const EC_KEY *key); - -/** - * Creates a new EC_KEY object using a named curve as underlying - * EC_GROUP object. - * \param ctx The library context for to use for this EC_KEY. May be NULL in - * which case the default library context is used. - * \param propq Any property query string - * \param nid NID of the named curve. - * \return EC_KEY object or NULL if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new_by_curve_name_ex(OSSL_LIB_CTX *ctx, - const char *propq, - int nid); - -/** - * Creates a new EC_KEY object using a named curve as underlying - * EC_GROUP object. Same as calling EC_KEY_new_by_curve_name_ex with a NULL - * library context and property query string. - * \param nid NID of the named curve. - * \return EC_KEY object or NULL if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new_by_curve_name(int nid); - -/** Frees a EC_KEY object. - * \param key EC_KEY object to be freed. - */ -OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key); - -/** Copies a EC_KEY object. - * \param dst destination EC_KEY object - * \param src src EC_KEY object - * \return dst or NULL if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src); - -/** Creates a new EC_KEY object and copies the content from src to it. - * \param src the source EC_KEY object - * \return newly created EC_KEY object or NULL if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_dup(const EC_KEY *src); - -/** Increases the internal reference count of a EC_KEY object. - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_up_ref(EC_KEY *key); - -/** Returns the ENGINE object of a EC_KEY object - * \param eckey EC_KEY object - * \return the ENGINE object (possibly NULL). - */ -OSSL_DEPRECATEDIN_3_0 ENGINE *EC_KEY_get0_engine(const EC_KEY *eckey); - -/** Returns the EC_GROUP object of a EC_KEY object - * \param key EC_KEY object - * \return the EC_GROUP object (possibly NULL). - */ -OSSL_DEPRECATEDIN_3_0 const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key); - -/** Sets the EC_GROUP of a EC_KEY object. - * \param key EC_KEY object - * \param group EC_GROUP to use in the EC_KEY object (note: the EC_KEY - * object will use an own copy of the EC_GROUP). - * \return 1 on success and 0 if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group); - -/** Returns the private key of a EC_KEY object. - * \param key EC_KEY object - * \return a BIGNUM with the private key (possibly NULL). - */ -OSSL_DEPRECATEDIN_3_0 const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key); - -/** Sets the private key of a EC_KEY object. - * \param key EC_KEY object - * \param prv BIGNUM with the private key (note: the EC_KEY object - * will use an own copy of the BIGNUM). - * \return 1 on success and 0 if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv); - -/** Returns the public key of a EC_KEY object. - * \param key the EC_KEY object - * \return a EC_POINT object with the public key (possibly NULL) - */ -OSSL_DEPRECATEDIN_3_0 const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); - -/** Sets the public key of a EC_KEY object. - * \param key EC_KEY object - * \param pub EC_POINT object with the public key (note: the EC_KEY object - * will use an own copy of the EC_POINT object). - * \return 1 on success and 0 if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); - -OSSL_DEPRECATEDIN_3_0 unsigned EC_KEY_get_enc_flags(const EC_KEY *key); -OSSL_DEPRECATEDIN_3_0 void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); -OSSL_DEPRECATEDIN_3_0 point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); -OSSL_DEPRECATEDIN_3_0 void EC_KEY_set_conv_form(EC_KEY *eckey, - point_conversion_form_t cform); -# endif /*OPENSSL_NO_DEPRECATED_3_0 */ - -# define EC_KEY_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_EC_KEY, l, p, newf, dupf, freef) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_ex_data(EC_KEY *key, int idx, void *arg); -OSSL_DEPRECATEDIN_3_0 void *EC_KEY_get_ex_data(const EC_KEY *key, int idx); - -/* wrapper functions for the underlying EC_GROUP object */ -OSSL_DEPRECATEDIN_3_0 void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); - -/** Creates a table of pre-computed multiples of the generator to - * accelerate further EC_KEY operations. - * \param key EC_KEY object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx); - -/** Creates a new ec private (and optional a new public) key. - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_generate_key(EC_KEY *key); - -/** Verifies that a private and/or public key is valid. - * \param key the EC_KEY object - * \return 1 on success and 0 otherwise. - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_check_key(const EC_KEY *key); - -/** Indicates if an EC_KEY can be used for signing. - * \param eckey the EC_KEY object - * \return 1 if can sign and 0 otherwise. - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_can_sign(const EC_KEY *eckey); - -/** Sets a public key from affine coordinates performing - * necessary NIST PKV tests. - * \param key the EC_KEY object - * \param x public key x coordinate - * \param y public key y coordinate - * \return 1 on success and 0 otherwise. - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, - BIGNUM *x, - BIGNUM *y); - -/** Encodes an EC_KEY public key to an allocated octet string - * \param key key to encode - * \param form point conversion form - * \param pbuf returns pointer to allocated buffer - * \param ctx BN_CTX object (optional) - * \return the length of the encoded octet string or 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 size_t EC_KEY_key2buf(const EC_KEY *key, - point_conversion_form_t form, - unsigned char **pbuf, BN_CTX *ctx); - -/** Decodes a EC_KEY public key from a octet string - * \param key key to decode - * \param buf memory buffer with the encoded ec point - * \param len length of the encoded ec point - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ - -OSSL_DEPRECATEDIN_3_0 int EC_KEY_oct2key(EC_KEY *key, const unsigned char *buf, - size_t len, BN_CTX *ctx); - -/** Decodes an EC_KEY private key from an octet string - * \param key key to decode - * \param buf memory buffer with the encoded private key - * \param len length of the encoded key - * \return 1 on success and 0 if an error occurred - */ - -OSSL_DEPRECATEDIN_3_0 int EC_KEY_oct2priv(EC_KEY *key, const unsigned char *buf, - size_t len); - -/** Encodes a EC_KEY private key to an octet string - * \param key key to encode - * \param buf memory buffer for the result. If NULL the function returns - * required buffer size. - * \param len length of the memory buffer - * \return the length of the encoded octet string or 0 if an error occurred - */ - -OSSL_DEPRECATEDIN_3_0 size_t EC_KEY_priv2oct(const EC_KEY *key, - unsigned char *buf, size_t len); - -/** Encodes an EC_KEY private key to an allocated octet string - * \param eckey key to encode - * \param pbuf returns pointer to allocated buffer - * \return the length of the encoded octet string or 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 size_t EC_KEY_priv2buf(const EC_KEY *eckey, - unsigned char **pbuf); - -/********************************************************************/ -/* de- and encoding functions for SEC1 ECPrivateKey */ -/********************************************************************/ - -/** Decodes a private key from a memory buffer. - * \param key a pointer to a EC_KEY object which should be used (or NULL) - * \param in pointer to memory with the DER encoded private key - * \param len length of the DER encoded private key - * \return the decoded private key or NULL if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 EC_KEY *d2i_ECPrivateKey(EC_KEY **key, - const unsigned char **in, - long len); - -/** Encodes a private key object and stores the result in a buffer. - * \param key the EC_KEY object to encode - * \param out the buffer for the result (if NULL the function returns number - * of bytes needed). - * \return 1 on success and 0 if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 int i2d_ECPrivateKey(const EC_KEY *key, - unsigned char **out); - -/********************************************************************/ -/* de- and encoding functions for EC parameters */ -/********************************************************************/ - -/** Decodes ec parameter from a memory buffer. - * \param key a pointer to a EC_KEY object which should be used (or NULL) - * \param in pointer to memory with the DER encoded ec parameters - * \param len length of the DER encoded ec parameters - * \return a EC_KEY object with the decoded parameters or NULL if an error - * occurred. - */ -OSSL_DEPRECATEDIN_3_0 EC_KEY *d2i_ECParameters(EC_KEY **key, - const unsigned char **in, - long len); - -/** Encodes ec parameter and stores the result in a buffer. - * \param key the EC_KEY object with ec parameters to encode - * \param out the buffer for the result (if NULL the function returns number - * of bytes needed). - * \return 1 on success and 0 if an error occurred. - */ -OSSL_DEPRECATEDIN_3_0 int i2d_ECParameters(const EC_KEY *key, - unsigned char **out); - -/********************************************************************/ -/* de- and encoding functions for EC public key */ -/* (octet string, not DER -- hence 'o2i' and 'i2o') */ -/********************************************************************/ - -/** Decodes an ec public key from a octet string. - * \param key a pointer to a EC_KEY object which should be used - * \param in memory buffer with the encoded public key - * \param len length of the encoded public key - * \return EC_KEY object with decoded public key or NULL if an error - * occurred. - */ -OSSL_DEPRECATEDIN_3_0 EC_KEY *o2i_ECPublicKey(EC_KEY **key, - const unsigned char **in, long len); - -/** Encodes an ec public key in an octet string. - * \param key the EC_KEY object with the public key - * \param out the buffer for the result (if NULL the function returns number - * of bytes needed). - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int i2o_ECPublicKey(const EC_KEY *key, unsigned char **out); - -/** Prints out the ec parameters on human readable form. - * \param bp BIO object to which the information is printed - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int ECParameters_print(BIO *bp, const EC_KEY *key); - -/** Prints out the contents of a EC_KEY object - * \param bp BIO object to which the information is printed - * \param key EC_KEY object - * \param off line offset - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_print(BIO *bp, const EC_KEY *key, int off); - -# ifndef OPENSSL_NO_STDIO -/** Prints out the ec parameters on human readable form. - * \param fp file descriptor to which the information is printed - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int ECParameters_print_fp(FILE *fp, const EC_KEY *key); - -/** Prints out the contents of a EC_KEY object - * \param fp file descriptor to which the information is printed - * \param key EC_KEY object - * \param off line offset - * \return 1 on success and 0 if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); -# endif /* OPENSSL_NO_STDIO */ - -OSSL_DEPRECATEDIN_3_0 const EC_KEY_METHOD *EC_KEY_OpenSSL(void); -OSSL_DEPRECATEDIN_3_0 const EC_KEY_METHOD *EC_KEY_get_default_method(void); -OSSL_DEPRECATEDIN_3_0 void EC_KEY_set_default_method(const EC_KEY_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 const EC_KEY_METHOD *EC_KEY_get_method(const EC_KEY *key); -OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_method(EC_KEY *key, const EC_KEY_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new_method(ENGINE *engine); - -/** The old name for ecdh_KDF_X9_63 - * The ECDH KDF specification has been mistakenly attributed to ANSI X9.62, - * it is actually specified in ANSI X9.63. - * This identifier is retained for backwards compatibility - */ -OSSL_DEPRECATEDIN_3_0 int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, - const unsigned char *Z, size_t Zlen, - const unsigned char *sinfo, - size_t sinfolen, const EVP_MD *md); - -OSSL_DEPRECATEDIN_3_0 int ECDH_compute_key(void *out, size_t outlen, - const EC_POINT *pub_key, - const EC_KEY *ecdh, - void *(*KDF)(const void *in, - size_t inlen, void *out, - size_t *outlen)); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -typedef struct ECDSA_SIG_st ECDSA_SIG; - -/** Allocates and initialize a ECDSA_SIG structure - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -ECDSA_SIG *ECDSA_SIG_new(void); - -/** frees a ECDSA_SIG structure - * \param sig pointer to the ECDSA_SIG structure - */ -void ECDSA_SIG_free(ECDSA_SIG *sig); - -/** i2d_ECDSA_SIG encodes content of ECDSA_SIG (note: this function modifies *pp - * (*pp += length of the DER encoded signature)). - * \param sig pointer to the ECDSA_SIG object - * \param pp pointer to a unsigned char pointer for the output or NULL - * \return the length of the DER encoded ECDSA_SIG object or a negative value - * on error - */ -DECLARE_ASN1_ENCODE_FUNCTIONS_only(ECDSA_SIG, ECDSA_SIG) - -/** d2i_ECDSA_SIG decodes an ECDSA signature (note: this function modifies *pp - * (*pp += len)). - * \param sig pointer to ECDSA_SIG pointer (may be NULL) - * \param pp memory buffer with the DER encoded signature - * \param len length of the buffer - * \return pointer to the decoded ECDSA_SIG structure (or NULL) - */ - -/** Accessor for r and s fields of ECDSA_SIG - * \param sig pointer to ECDSA_SIG structure - * \param pr pointer to BIGNUM pointer for r (may be NULL) - * \param ps pointer to BIGNUM pointer for s (may be NULL) - */ -void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); - -/** Accessor for r field of ECDSA_SIG - * \param sig pointer to ECDSA_SIG structure - */ -const BIGNUM *ECDSA_SIG_get0_r(const ECDSA_SIG *sig); - -/** Accessor for s field of ECDSA_SIG - * \param sig pointer to ECDSA_SIG structure - */ -const BIGNUM *ECDSA_SIG_get0_s(const ECDSA_SIG *sig); - -/** Setter for r and s fields of ECDSA_SIG - * \param sig pointer to ECDSA_SIG structure - * \param r pointer to BIGNUM for r - * \param s pointer to BIGNUM for s - */ -int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/** Computes the ECDSA signature of the given hash value using - * the supplied private key and returns the created signature. - * \param dgst pointer to the hash value - * \param dgst_len length of the hash value - * \param eckey EC_KEY object containing a private EC key - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, - int dgst_len, EC_KEY *eckey); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param kinv BIGNUM with a pre-computed inverse k (optional) - * \param rp BIGNUM with a pre-computed rp value (optional), - * see ECDSA_sign_setup - * \param eckey EC_KEY object containing a private EC key - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -OSSL_DEPRECATEDIN_3_0 ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, - int dgstlen, const BIGNUM *kinv, - const BIGNUM *rp, EC_KEY *eckey); - -/** Verifies that the supplied signature is a valid ECDSA - * signature of the supplied hash value using the supplied public key. - * \param dgst pointer to the hash value - * \param dgst_len length of the hash value - * \param sig ECDSA_SIG structure - * \param eckey EC_KEY object containing a public EC key - * \return 1 if the signature is valid, 0 if the signature is invalid - * and -1 on error - */ -OSSL_DEPRECATEDIN_3_0 int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, - const ECDSA_SIG *sig, EC_KEY *eckey); - -/** Precompute parts of the signing operation - * \param eckey EC_KEY object containing a private EC key - * \param ctx BN_CTX object (optional) - * \param kinv BIGNUM pointer for the inverse of k - * \param rp BIGNUM pointer for x coordinate of k * generator - * \return 1 on success and 0 otherwise - */ -OSSL_DEPRECATEDIN_3_0 int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, - BIGNUM **kinv, BIGNUM **rp); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param type this parameter is ignored - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param sig memory for the DER encoded created signature - * \param siglen pointer to the length of the returned signature - * \param eckey EC_KEY object containing a private EC key - * \return 1 on success and 0 otherwise - */ -OSSL_DEPRECATEDIN_3_0 int ECDSA_sign(int type, const unsigned char *dgst, - int dgstlen, unsigned char *sig, - unsigned int *siglen, EC_KEY *eckey); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param type this parameter is ignored - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param sig buffer to hold the DER encoded signature - * \param siglen pointer to the length of the returned signature - * \param kinv BIGNUM with a pre-computed inverse k (optional) - * \param rp BIGNUM with a pre-computed rp value (optional), - * see ECDSA_sign_setup - * \param eckey EC_KEY object containing a private EC key - * \return 1 on success and 0 otherwise - */ -OSSL_DEPRECATEDIN_3_0 int ECDSA_sign_ex(int type, const unsigned char *dgst, - int dgstlen, unsigned char *sig, - unsigned int *siglen, const BIGNUM *kinv, - const BIGNUM *rp, EC_KEY *eckey); - -/** Verifies that the given signature is valid ECDSA signature - * of the supplied hash value using the specified public key. - * \param type this parameter is ignored - * \param dgst pointer to the hash value - * \param dgstlen length of the hash value - * \param sig pointer to the DER encoded signature - * \param siglen length of the DER encoded signature - * \param eckey EC_KEY object containing a public EC key - * \return 1 if the signature is valid, 0 if the signature is invalid - * and -1 on error - */ -OSSL_DEPRECATEDIN_3_0 int ECDSA_verify(int type, const unsigned char *dgst, - int dgstlen, const unsigned char *sig, - int siglen, EC_KEY *eckey); - -/** Returns the maximum length of the DER encoded signature - * \param eckey EC_KEY object - * \return numbers of bytes required for the DER encoded signature - */ -OSSL_DEPRECATEDIN_3_0 int ECDSA_size(const EC_KEY *eckey); - -/********************************************************************/ -/* EC_KEY_METHOD constructors, destructors, writers and accessors */ -/********************************************************************/ - -OSSL_DEPRECATEDIN_3_0 EC_KEY_METHOD *EC_KEY_METHOD_new(const EC_KEY_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_free(EC_KEY_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_set_init - (EC_KEY_METHOD *meth, - int (*init)(EC_KEY *key), - void (*finish)(EC_KEY *key), - int (*copy)(EC_KEY *dest, const EC_KEY *src), - int (*set_group)(EC_KEY *key, const EC_GROUP *grp), - int (*set_private)(EC_KEY *key, const BIGNUM *priv_key), - int (*set_public)(EC_KEY *key, const EC_POINT *pub_key)); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_set_keygen(EC_KEY_METHOD *meth, - int (*keygen)(EC_KEY *key)); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_set_compute_key - (EC_KEY_METHOD *meth, - int (*ckey)(unsigned char **psec, size_t *pseclen, - const EC_POINT *pub_key, const EC_KEY *ecdh)); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_set_sign - (EC_KEY_METHOD *meth, - int (*sign)(int type, const unsigned char *dgst, - int dlen, unsigned char *sig, - unsigned int *siglen, - const BIGNUM *kinv, const BIGNUM *r, - EC_KEY *eckey), - int (*sign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, - BIGNUM **kinvp, BIGNUM **rp), - ECDSA_SIG *(*sign_sig)(const unsigned char *dgst, - int dgst_len, - const BIGNUM *in_kinv, - const BIGNUM *in_r, - EC_KEY *eckey)); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_set_verify - (EC_KEY_METHOD *meth, - int (*verify)(int type, const unsigned - char *dgst, int dgst_len, - const unsigned char *sigbuf, - int sig_len, EC_KEY *eckey), - int (*verify_sig)(const unsigned char *dgst, - int dgst_len, const ECDSA_SIG *sig, - EC_KEY *eckey)); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_get_init - (const EC_KEY_METHOD *meth, - int (**pinit)(EC_KEY *key), - void (**pfinish)(EC_KEY *key), - int (**pcopy)(EC_KEY *dest, const EC_KEY *src), - int (**pset_group)(EC_KEY *key, const EC_GROUP *grp), - int (**pset_private)(EC_KEY *key, const BIGNUM *priv_key), - int (**pset_public)(EC_KEY *key, const EC_POINT *pub_key)); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_get_keygen - (const EC_KEY_METHOD *meth, int (**pkeygen)(EC_KEY *key)); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_get_compute_key - (const EC_KEY_METHOD *meth, - int (**pck)(unsigned char **psec, - size_t *pseclen, - const EC_POINT *pub_key, - const EC_KEY *ecdh)); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_get_sign - (const EC_KEY_METHOD *meth, - int (**psign)(int type, const unsigned char *dgst, - int dlen, unsigned char *sig, - unsigned int *siglen, - const BIGNUM *kinv, const BIGNUM *r, - EC_KEY *eckey), - int (**psign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, - BIGNUM **kinvp, BIGNUM **rp), - ECDSA_SIG *(**psign_sig)(const unsigned char *dgst, - int dgst_len, - const BIGNUM *in_kinv, - const BIGNUM *in_r, - EC_KEY *eckey)); - -OSSL_DEPRECATEDIN_3_0 void EC_KEY_METHOD_get_verify - (const EC_KEY_METHOD *meth, - int (**pverify)(int type, const unsigned - char *dgst, int dgst_len, - const unsigned char *sigbuf, - int sig_len, EC_KEY *eckey), - int (**pverify_sig)(const unsigned char *dgst, - int dgst_len, - const ECDSA_SIG *sig, - EC_KEY *eckey)); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -# define EVP_EC_gen(curve) \ - EVP_PKEY_Q_keygen(NULL, NULL, "EC", (char *)(strstr(curve, ""))) - /* strstr is used to enable type checking for the variadic string arg */ -# define ECParameters_dup(x) ASN1_dup_of(EC_KEY, i2d_ECParameters, \ - d2i_ECParameters, x) - -# ifndef __cplusplus -# if defined(__SUNPRO_C) -# if __SUNPRO_C >= 0x520 -# pragma error_messages (default,E_ARRAY_OF_INCOMPLETE_NONAME,E_ARRAY_OF_INCOMPLETE) -# endif -# endif -# endif - -# endif -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/ecdh.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/ecdh.h deleted file mode 100644 index 56bd4cc..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/ecdh.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#include diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/ecdsa.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/ecdsa.h deleted file mode 100644 index 56bd4cc..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/ecdsa.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#include diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/ecerr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/ecerr.h deleted file mode 100644 index f15f91f..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/ecerr.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_ECERR_H -# define OPENSSL_ECERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_EC - - -/* - * EC reason codes. - */ -# define EC_R_ASN1_ERROR 115 -# define EC_R_BAD_SIGNATURE 156 -# define EC_R_BIGNUM_OUT_OF_RANGE 144 -# define EC_R_BUFFER_TOO_SMALL 100 -# define EC_R_CANNOT_INVERT 165 -# define EC_R_COORDINATES_OUT_OF_RANGE 146 -# define EC_R_CURVE_DOES_NOT_SUPPORT_ECDH 160 -# define EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA 170 -# define EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING 159 -# define EC_R_DECODE_ERROR 142 -# define EC_R_DISCRIMINANT_IS_ZERO 118 -# define EC_R_EC_GROUP_NEW_BY_NAME_FAILURE 119 -# define EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED 127 -# define EC_R_FAILED_MAKING_PUBLIC_KEY 166 -# define EC_R_FIELD_TOO_LARGE 143 -# define EC_R_GF2M_NOT_SUPPORTED 147 -# define EC_R_GROUP2PKPARAMETERS_FAILURE 120 -# define EC_R_I2D_ECPKPARAMETERS_FAILURE 121 -# define EC_R_INCOMPATIBLE_OBJECTS 101 -# define EC_R_INVALID_A 168 -# define EC_R_INVALID_ARGUMENT 112 -# define EC_R_INVALID_B 169 -# define EC_R_INVALID_COFACTOR 171 -# define EC_R_INVALID_COMPRESSED_POINT 110 -# define EC_R_INVALID_COMPRESSION_BIT 109 -# define EC_R_INVALID_CURVE 141 -# define EC_R_INVALID_DIGEST 151 -# define EC_R_INVALID_DIGEST_TYPE 138 -# define EC_R_INVALID_ENCODING 102 -# define EC_R_INVALID_FIELD 103 -# define EC_R_INVALID_FORM 104 -# define EC_R_INVALID_GENERATOR 173 -# define EC_R_INVALID_GROUP_ORDER 122 -# define EC_R_INVALID_KEY 116 -# define EC_R_INVALID_LENGTH 117 -# define EC_R_INVALID_NAMED_GROUP_CONVERSION 174 -# define EC_R_INVALID_OUTPUT_LENGTH 161 -# define EC_R_INVALID_P 172 -# define EC_R_INVALID_PEER_KEY 133 -# define EC_R_INVALID_PENTANOMIAL_BASIS 132 -# define EC_R_INVALID_PRIVATE_KEY 123 -# define EC_R_INVALID_SEED 175 -# define EC_R_INVALID_TRINOMIAL_BASIS 137 -# define EC_R_KDF_PARAMETER_ERROR 148 -# define EC_R_KEYS_NOT_SET 140 -# define EC_R_LADDER_POST_FAILURE 136 -# define EC_R_LADDER_PRE_FAILURE 153 -# define EC_R_LADDER_STEP_FAILURE 162 -# define EC_R_MISSING_OID 167 -# define EC_R_MISSING_PARAMETERS 124 -# define EC_R_MISSING_PRIVATE_KEY 125 -# define EC_R_NEED_NEW_SETUP_VALUES 157 -# define EC_R_NOT_A_NIST_PRIME 135 -# define EC_R_NOT_IMPLEMENTED 126 -# define EC_R_NOT_INITIALIZED 111 -# define EC_R_NO_PARAMETERS_SET 139 -# define EC_R_NO_PRIVATE_VALUE 154 -# define EC_R_OPERATION_NOT_SUPPORTED 152 -# define EC_R_PASSED_NULL_PARAMETER 134 -# define EC_R_PEER_KEY_ERROR 149 -# define EC_R_POINT_ARITHMETIC_FAILURE 155 -# define EC_R_POINT_AT_INFINITY 106 -# define EC_R_POINT_COORDINATES_BLIND_FAILURE 163 -# define EC_R_POINT_IS_NOT_ON_CURVE 107 -# define EC_R_RANDOM_NUMBER_GENERATION_FAILED 158 -# define EC_R_SHARED_INFO_ERROR 150 -# define EC_R_SLOT_FULL 108 -# define EC_R_TOO_MANY_RETRIES 176 -# define EC_R_UNDEFINED_GENERATOR 113 -# define EC_R_UNDEFINED_ORDER 128 -# define EC_R_UNKNOWN_COFACTOR 164 -# define EC_R_UNKNOWN_GROUP 129 -# define EC_R_UNKNOWN_ORDER 114 -# define EC_R_UNSUPPORTED_FIELD 131 -# define EC_R_WRONG_CURVE_PARAMETERS 145 -# define EC_R_WRONG_ORDER 130 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/encoder.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/encoder.h deleted file mode 100644 index c37a6f1..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/encoder.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_ENCODER_H -# define OPENSSL_ENCODER_H -# pragma once - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -OSSL_ENCODER *OSSL_ENCODER_fetch(OSSL_LIB_CTX *libctx, const char *name, - const char *properties); -int OSSL_ENCODER_up_ref(OSSL_ENCODER *encoder); -void OSSL_ENCODER_free(OSSL_ENCODER *encoder); - -const OSSL_PROVIDER *OSSL_ENCODER_get0_provider(const OSSL_ENCODER *encoder); -const char *OSSL_ENCODER_get0_properties(const OSSL_ENCODER *encoder); -const char *OSSL_ENCODER_get0_name(const OSSL_ENCODER *kdf); -const char *OSSL_ENCODER_get0_description(const OSSL_ENCODER *kdf); -int OSSL_ENCODER_is_a(const OSSL_ENCODER *encoder, const char *name); - -void OSSL_ENCODER_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(OSSL_ENCODER *encoder, void *arg), - void *arg); -int OSSL_ENCODER_names_do_all(const OSSL_ENCODER *encoder, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PARAM *OSSL_ENCODER_gettable_params(OSSL_ENCODER *encoder); -int OSSL_ENCODER_get_params(OSSL_ENCODER *encoder, OSSL_PARAM params[]); - -const OSSL_PARAM *OSSL_ENCODER_settable_ctx_params(OSSL_ENCODER *encoder); -OSSL_ENCODER_CTX *OSSL_ENCODER_CTX_new(void); -int OSSL_ENCODER_CTX_set_params(OSSL_ENCODER_CTX *ctx, - const OSSL_PARAM params[]); -void OSSL_ENCODER_CTX_free(OSSL_ENCODER_CTX *ctx); - -/* Utilities that help set specific parameters */ -int OSSL_ENCODER_CTX_set_passphrase(OSSL_ENCODER_CTX *ctx, - const unsigned char *kstr, size_t klen); -int OSSL_ENCODER_CTX_set_pem_password_cb(OSSL_ENCODER_CTX *ctx, - pem_password_cb *cb, void *cbarg); -int OSSL_ENCODER_CTX_set_passphrase_cb(OSSL_ENCODER_CTX *ctx, - OSSL_PASSPHRASE_CALLBACK *cb, - void *cbarg); -int OSSL_ENCODER_CTX_set_passphrase_ui(OSSL_ENCODER_CTX *ctx, - const UI_METHOD *ui_method, - void *ui_data); -int OSSL_ENCODER_CTX_set_cipher(OSSL_ENCODER_CTX *ctx, - const char *cipher_name, - const char *propquery); -int OSSL_ENCODER_CTX_set_selection(OSSL_ENCODER_CTX *ctx, int selection); -int OSSL_ENCODER_CTX_set_output_type(OSSL_ENCODER_CTX *ctx, - const char *output_type); -int OSSL_ENCODER_CTX_set_output_structure(OSSL_ENCODER_CTX *ctx, - const char *output_structure); - -/* Utilities to add encoders */ -int OSSL_ENCODER_CTX_add_encoder(OSSL_ENCODER_CTX *ctx, OSSL_ENCODER *encoder); -int OSSL_ENCODER_CTX_add_extra(OSSL_ENCODER_CTX *ctx, - OSSL_LIB_CTX *libctx, const char *propq); -int OSSL_ENCODER_CTX_get_num_encoders(OSSL_ENCODER_CTX *ctx); - -typedef struct ossl_encoder_instance_st OSSL_ENCODER_INSTANCE; -OSSL_ENCODER * -OSSL_ENCODER_INSTANCE_get_encoder(OSSL_ENCODER_INSTANCE *encoder_inst); -void * -OSSL_ENCODER_INSTANCE_get_encoder_ctx(OSSL_ENCODER_INSTANCE *encoder_inst); -const char * -OSSL_ENCODER_INSTANCE_get_output_type(OSSL_ENCODER_INSTANCE *encoder_inst); -const char * -OSSL_ENCODER_INSTANCE_get_output_structure(OSSL_ENCODER_INSTANCE *encoder_inst); - -typedef const void *OSSL_ENCODER_CONSTRUCT(OSSL_ENCODER_INSTANCE *encoder_inst, - void *construct_data); -typedef void OSSL_ENCODER_CLEANUP(void *construct_data); - -int OSSL_ENCODER_CTX_set_construct(OSSL_ENCODER_CTX *ctx, - OSSL_ENCODER_CONSTRUCT *construct); -int OSSL_ENCODER_CTX_set_construct_data(OSSL_ENCODER_CTX *ctx, - void *construct_data); -int OSSL_ENCODER_CTX_set_cleanup(OSSL_ENCODER_CTX *ctx, - OSSL_ENCODER_CLEANUP *cleanup); - -/* Utilities to output the object to encode */ -int OSSL_ENCODER_to_bio(OSSL_ENCODER_CTX *ctx, BIO *out); -#ifndef OPENSSL_NO_STDIO -int OSSL_ENCODER_to_fp(OSSL_ENCODER_CTX *ctx, FILE *fp); -#endif -int OSSL_ENCODER_to_data(OSSL_ENCODER_CTX *ctx, unsigned char **pdata, - size_t *pdata_len); - -/* - * Create the OSSL_ENCODER_CTX with an associated type. This will perform - * an implicit OSSL_ENCODER_fetch(), suitable for the object of that type. - * This is more useful than calling OSSL_ENCODER_CTX_new(). - */ -OSSL_ENCODER_CTX *OSSL_ENCODER_CTX_new_for_pkey(const EVP_PKEY *pkey, - int selection, - const char *output_type, - const char *output_struct, - const char *propquery); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/encodererr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/encodererr.h deleted file mode 100644 index 5e318b1..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/encodererr.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_ENCODERERR_H -# define OPENSSL_ENCODERERR_H -# pragma once - -# include -# include -# include - - - -/* - * OSSL_ENCODER reason codes. - */ -# define OSSL_ENCODER_R_ENCODER_NOT_FOUND 101 -# define OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY 100 -# define OSSL_ENCODER_R_MISSING_GET_PARAMS 102 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/engine.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/engine.h deleted file mode 100644 index 5b4b504..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/engine.h +++ /dev/null @@ -1,833 +0,0 @@ -/* - * Copyright 2000-2022 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_ENGINE_H -# define OPENSSL_ENGINE_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_ENGINE_H -# endif - -# include - -# ifndef OPENSSL_NO_ENGINE -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# include -# include -# include -# include -# include -# include -# include -# include -# endif -# include -# include -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -/* - * These flags are used to control combinations of algorithm (methods) by - * bitwise "OR"ing. - */ -# define ENGINE_METHOD_RSA (unsigned int)0x0001 -# define ENGINE_METHOD_DSA (unsigned int)0x0002 -# define ENGINE_METHOD_DH (unsigned int)0x0004 -# define ENGINE_METHOD_RAND (unsigned int)0x0008 -# define ENGINE_METHOD_CIPHERS (unsigned int)0x0040 -# define ENGINE_METHOD_DIGESTS (unsigned int)0x0080 -# define ENGINE_METHOD_PKEY_METHS (unsigned int)0x0200 -# define ENGINE_METHOD_PKEY_ASN1_METHS (unsigned int)0x0400 -# define ENGINE_METHOD_EC (unsigned int)0x0800 -/* Obvious all-or-nothing cases. */ -# define ENGINE_METHOD_ALL (unsigned int)0xFFFF -# define ENGINE_METHOD_NONE (unsigned int)0x0000 - -/* - * This(ese) flag(s) controls behaviour of the ENGINE_TABLE mechanism used - * internally to control registration of ENGINE implementations, and can be - * set by ENGINE_set_table_flags(). The "NOINIT" flag prevents attempts to - * initialise registered ENGINEs if they are not already initialised. - */ -# define ENGINE_TABLE_FLAG_NOINIT (unsigned int)0x0001 - -/* ENGINE flags that can be set by ENGINE_set_flags(). */ -/* Not used */ -/* #define ENGINE_FLAGS_MALLOCED 0x0001 */ - -/* - * This flag is for ENGINEs that wish to handle the various 'CMD'-related - * control commands on their own. Without this flag, ENGINE_ctrl() handles - * these control commands on behalf of the ENGINE using their "cmd_defns" - * data. - */ -# define ENGINE_FLAGS_MANUAL_CMD_CTRL (int)0x0002 - -/* - * This flag is for ENGINEs who return new duplicate structures when found - * via "ENGINE_by_id()". When an ENGINE must store state (eg. if - * ENGINE_ctrl() commands are called in sequence as part of some stateful - * process like key-generation setup and execution), it can set this flag - - * then each attempt to obtain the ENGINE will result in it being copied into - * a new structure. Normally, ENGINEs don't declare this flag so - * ENGINE_by_id() just increments the existing ENGINE's structural reference - * count. - */ -# define ENGINE_FLAGS_BY_ID_COPY (int)0x0004 - -/* - * This flag is for an ENGINE that does not want its methods registered as - * part of ENGINE_register_all_complete() for example if the methods are not - * usable as default methods. - */ - -# define ENGINE_FLAGS_NO_REGISTER_ALL (int)0x0008 - -/* - * ENGINEs can support their own command types, and these flags are used in - * ENGINE_CTRL_GET_CMD_FLAGS to indicate to the caller what kind of input - * each command expects. Currently only numeric and string input is - * supported. If a control command supports none of the _NUMERIC, _STRING, or - * _NO_INPUT options, then it is regarded as an "internal" control command - - * and not for use in config setting situations. As such, they're not - * available to the ENGINE_ctrl_cmd_string() function, only raw ENGINE_ctrl() - * access. Changes to this list of 'command types' should be reflected - * carefully in ENGINE_cmd_is_executable() and ENGINE_ctrl_cmd_string(). - */ - -/* accepts a 'long' input value (3rd parameter to ENGINE_ctrl) */ -# define ENGINE_CMD_FLAG_NUMERIC (unsigned int)0x0001 -/* - * accepts string input (cast from 'void*' to 'const char *', 4th parameter - * to ENGINE_ctrl) - */ -# define ENGINE_CMD_FLAG_STRING (unsigned int)0x0002 -/* - * Indicates that the control command takes *no* input. Ie. the control - * command is unparameterised. - */ -# define ENGINE_CMD_FLAG_NO_INPUT (unsigned int)0x0004 -/* - * Indicates that the control command is internal. This control command won't - * be shown in any output, and is only usable through the ENGINE_ctrl_cmd() - * function. - */ -# define ENGINE_CMD_FLAG_INTERNAL (unsigned int)0x0008 - -/* - * NB: These 3 control commands are deprecated and should not be used. - * ENGINEs relying on these commands should compile conditional support for - * compatibility (eg. if these symbols are defined) but should also migrate - * the same functionality to their own ENGINE-specific control functions that - * can be "discovered" by calling applications. The fact these control - * commands wouldn't be "executable" (ie. usable by text-based config) - * doesn't change the fact that application code can find and use them - * without requiring per-ENGINE hacking. - */ - -/* - * These flags are used to tell the ctrl function what should be done. All - * command numbers are shared between all engines, even if some don't make - * sense to some engines. In such a case, they do nothing but return the - * error ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED. - */ -# define ENGINE_CTRL_SET_LOGSTREAM 1 -# define ENGINE_CTRL_SET_PASSWORD_CALLBACK 2 -# define ENGINE_CTRL_HUP 3/* Close and reinitialise - * any handles/connections - * etc. */ -# define ENGINE_CTRL_SET_USER_INTERFACE 4/* Alternative to callback */ -# define ENGINE_CTRL_SET_CALLBACK_DATA 5/* User-specific data, used - * when calling the password - * callback and the user - * interface */ -# define ENGINE_CTRL_LOAD_CONFIGURATION 6/* Load a configuration, - * given a string that - * represents a file name - * or so */ -# define ENGINE_CTRL_LOAD_SECTION 7/* Load data from a given - * section in the already - * loaded configuration */ - -/* - * These control commands allow an application to deal with an arbitrary - * engine in a dynamic way. Warn: Negative return values indicate errors FOR - * THESE COMMANDS because zero is used to indicate 'end-of-list'. Other - * commands, including ENGINE-specific command types, return zero for an - * error. An ENGINE can choose to implement these ctrl functions, and can - * internally manage things however it chooses - it does so by setting the - * ENGINE_FLAGS_MANUAL_CMD_CTRL flag (using ENGINE_set_flags()). Otherwise - * the ENGINE_ctrl() code handles this on the ENGINE's behalf using the - * cmd_defns data (set using ENGINE_set_cmd_defns()). This means an ENGINE's - * ctrl() handler need only implement its own commands - the above "meta" - * commands will be taken care of. - */ - -/* - * Returns non-zero if the supplied ENGINE has a ctrl() handler. If "not", - * then all the remaining control commands will return failure, so it is - * worth checking this first if the caller is trying to "discover" the - * engine's capabilities and doesn't want errors generated unnecessarily. - */ -# define ENGINE_CTRL_HAS_CTRL_FUNCTION 10 -/* - * Returns a positive command number for the first command supported by the - * engine. Returns zero if no ctrl commands are supported. - */ -# define ENGINE_CTRL_GET_FIRST_CMD_TYPE 11 -/* - * The 'long' argument specifies a command implemented by the engine, and the - * return value is the next command supported, or zero if there are no more. - */ -# define ENGINE_CTRL_GET_NEXT_CMD_TYPE 12 -/* - * The 'void*' argument is a command name (cast from 'const char *'), and the - * return value is the command that corresponds to it. - */ -# define ENGINE_CTRL_GET_CMD_FROM_NAME 13 -/* - * The next two allow a command to be converted into its corresponding string - * form. In each case, the 'long' argument supplies the command. In the - * NAME_LEN case, the return value is the length of the command name (not - * counting a trailing EOL). In the NAME case, the 'void*' argument must be a - * string buffer large enough, and it will be populated with the name of the - * command (WITH a trailing EOL). - */ -# define ENGINE_CTRL_GET_NAME_LEN_FROM_CMD 14 -# define ENGINE_CTRL_GET_NAME_FROM_CMD 15 -/* The next two are similar but give a "short description" of a command. */ -# define ENGINE_CTRL_GET_DESC_LEN_FROM_CMD 16 -# define ENGINE_CTRL_GET_DESC_FROM_CMD 17 -/* - * With this command, the return value is the OR'd combination of - * ENGINE_CMD_FLAG_*** values that indicate what kind of input a given - * engine-specific ctrl command expects. - */ -# define ENGINE_CTRL_GET_CMD_FLAGS 18 - -/* - * ENGINE implementations should start the numbering of their own control - * commands from this value. (ie. ENGINE_CMD_BASE, ENGINE_CMD_BASE + 1, etc). - */ -# define ENGINE_CMD_BASE 200 - -/* - * NB: These 2 nCipher "chil" control commands are deprecated, and their - * functionality is now available through ENGINE-specific control commands - * (exposed through the above-mentioned 'CMD'-handling). Code using these 2 - * commands should be migrated to the more general command handling before - * these are removed. - */ - -/* Flags specific to the nCipher "chil" engine */ -# define ENGINE_CTRL_CHIL_SET_FORKCHECK 100 - /* - * Depending on the value of the (long)i argument, this sets or - * unsets the SimpleForkCheck flag in the CHIL API to enable or - * disable checking and workarounds for applications that fork(). - */ -# define ENGINE_CTRL_CHIL_NO_LOCKING 101 - /* - * This prevents the initialisation function from providing mutex - * callbacks to the nCipher library. - */ - -/* - * If an ENGINE supports its own specific control commands and wishes the - * framework to handle the above 'ENGINE_CMD_***'-manipulation commands on - * its behalf, it should supply a null-terminated array of ENGINE_CMD_DEFN - * entries to ENGINE_set_cmd_defns(). It should also implement a ctrl() - * handler that supports the stated commands (ie. the "cmd_num" entries as - * described by the array). NB: The array must be ordered in increasing order - * of cmd_num. "null-terminated" means that the last ENGINE_CMD_DEFN element - * has cmd_num set to zero and/or cmd_name set to NULL. - */ -typedef struct ENGINE_CMD_DEFN_st { - unsigned int cmd_num; /* The command number */ - const char *cmd_name; /* The command name itself */ - const char *cmd_desc; /* A short description of the command */ - unsigned int cmd_flags; /* The input the command expects */ -} ENGINE_CMD_DEFN; - -/* Generic function pointer */ -typedef int (*ENGINE_GEN_FUNC_PTR) (void); -/* Generic function pointer taking no arguments */ -typedef int (*ENGINE_GEN_INT_FUNC_PTR) (ENGINE *); -/* Specific control function pointer */ -typedef int (*ENGINE_CTRL_FUNC_PTR) (ENGINE *, int, long, void *, - void (*f) (void)); -/* Generic load_key function pointer */ -typedef EVP_PKEY *(*ENGINE_LOAD_KEY_PTR)(ENGINE *, const char *, - UI_METHOD *ui_method, - void *callback_data); -typedef int (*ENGINE_SSL_CLIENT_CERT_PTR) (ENGINE *, SSL *ssl, - STACK_OF(X509_NAME) *ca_dn, - X509 **pcert, EVP_PKEY **pkey, - STACK_OF(X509) **pother, - UI_METHOD *ui_method, - void *callback_data); -/*- - * These callback types are for an ENGINE's handler for cipher and digest logic. - * These handlers have these prototypes; - * int foo(ENGINE *e, const EVP_CIPHER **cipher, const int **nids, int nid); - * int foo(ENGINE *e, const EVP_MD **digest, const int **nids, int nid); - * Looking at how to implement these handlers in the case of cipher support, if - * the framework wants the EVP_CIPHER for 'nid', it will call; - * foo(e, &p_evp_cipher, NULL, nid); (return zero for failure) - * If the framework wants a list of supported 'nid's, it will call; - * foo(e, NULL, &p_nids, 0); (returns number of 'nids' or -1 for error) - */ -/* - * Returns to a pointer to the array of supported cipher 'nid's. If the - * second parameter is non-NULL it is set to the size of the returned array. - */ -typedef int (*ENGINE_CIPHERS_PTR) (ENGINE *, const EVP_CIPHER **, - const int **, int); -typedef int (*ENGINE_DIGESTS_PTR) (ENGINE *, const EVP_MD **, const int **, - int); -typedef int (*ENGINE_PKEY_METHS_PTR) (ENGINE *, EVP_PKEY_METHOD **, - const int **, int); -typedef int (*ENGINE_PKEY_ASN1_METHS_PTR) (ENGINE *, EVP_PKEY_ASN1_METHOD **, - const int **, int); -/* - * STRUCTURE functions ... all of these functions deal with pointers to - * ENGINE structures where the pointers have a "structural reference". This - * means that their reference is to allowed access to the structure but it - * does not imply that the structure is functional. To simply increment or - * decrement the structural reference count, use ENGINE_by_id and - * ENGINE_free. NB: This is not required when iterating using ENGINE_get_next - * as it will automatically decrement the structural reference count of the - * "current" ENGINE and increment the structural reference count of the - * ENGINE it returns (unless it is NULL). - */ - -/* Get the first/last "ENGINE" type available. */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_first(void); -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_last(void); -# endif -/* Iterate to the next/previous "ENGINE" type (NULL = end of the list). */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_next(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_prev(ENGINE *e); -# endif -/* Add another "ENGINE" type into the array. */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_add(ENGINE *e); -# endif -/* Remove an existing "ENGINE" type from the array. */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_remove(ENGINE *e); -# endif -/* Retrieve an engine from the list by its unique "id" value. */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_by_id(const char *id); -# endif - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define ENGINE_load_openssl() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_OPENSSL, NULL) -# define ENGINE_load_dynamic() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_DYNAMIC, NULL) -# ifndef OPENSSL_NO_STATIC_ENGINE -# define ENGINE_load_padlock() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_PADLOCK, NULL) -# define ENGINE_load_capi() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_CAPI, NULL) -# define ENGINE_load_afalg() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_AFALG, NULL) -# endif -# define ENGINE_load_cryptodev() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_CRYPTODEV, NULL) -# define ENGINE_load_rdrand() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_RDRAND, NULL) -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 void ENGINE_load_builtin_engines(void); -# endif - -/* - * Get and set global flags (ENGINE_TABLE_FLAG_***) for the implementation - * "registry" handling. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 unsigned int ENGINE_get_table_flags(void); -OSSL_DEPRECATEDIN_3_0 void ENGINE_set_table_flags(unsigned int flags); -# endif - -/*- Manage registration of ENGINEs per "table". For each type, there are 3 - * functions; - * ENGINE_register_***(e) - registers the implementation from 'e' (if it has one) - * ENGINE_unregister_***(e) - unregister the implementation from 'e' - * ENGINE_register_all_***() - call ENGINE_register_***() for each 'e' in the list - * Cleanup is automatically registered from each table when required. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_RSA(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_unregister_RSA(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_register_all_RSA(void); -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_DSA(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_unregister_DSA(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_register_all_DSA(void); -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_EC(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_unregister_EC(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_register_all_EC(void); -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_DH(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_unregister_DH(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_register_all_DH(void); -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_RAND(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_unregister_RAND(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_register_all_RAND(void); -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_ciphers(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_unregister_ciphers(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_register_all_ciphers(void); -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_digests(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_unregister_digests(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_register_all_digests(void); -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_pkey_meths(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_unregister_pkey_meths(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_register_all_pkey_meths(void); -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_pkey_asn1_meths(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_unregister_pkey_asn1_meths(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 void ENGINE_register_all_pkey_asn1_meths(void); -# endif - -/* - * These functions register all support from the above categories. Note, use - * of these functions can result in static linkage of code your application - * may not need. If you only need a subset of functionality, consider using - * more selective initialisation. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_complete(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_register_all_complete(void); -# endif - -/* - * Send parameterised control commands to the engine. The possibilities to - * send down an integer, a pointer to data or a function pointer are - * provided. Any of the parameters may or may not be NULL, depending on the - * command number. In actuality, this function only requires a structural - * (rather than functional) reference to an engine, but many control commands - * may require the engine be functional. The caller should be aware of trying - * commands that require an operational ENGINE, and only use functional - * references in such situations. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, - void (*f) (void)); -# endif - -/* - * This function tests if an ENGINE-specific command is usable as a - * "setting". Eg. in an application's config file that gets processed through - * ENGINE_ctrl_cmd_string(). If this returns zero, it is not available to - * ENGINE_ctrl_cmd_string(), only ENGINE_ctrl(). - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_cmd_is_executable(ENGINE *e, int cmd); -# endif - -/* - * This function works like ENGINE_ctrl() with the exception of taking a - * command name instead of a command number, and can handle optional - * commands. See the comment on ENGINE_ctrl_cmd_string() for an explanation - * on how to use the cmd_name and cmd_optional. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name, - long i, void *p, void (*f) (void), - int cmd_optional); -# endif - -/* - * This function passes a command-name and argument to an ENGINE. The - * cmd_name is converted to a command number and the control command is - * called using 'arg' as an argument (unless the ENGINE doesn't support such - * a command, in which case no control command is called). The command is - * checked for input flags, and if necessary the argument will be converted - * to a numeric value. If cmd_optional is non-zero, then if the ENGINE - * doesn't support the given cmd_name the return value will be success - * anyway. This function is intended for applications to use so that users - * (or config files) can supply engine-specific config data to the ENGINE at - * run-time to control behaviour of specific engines. As such, it shouldn't - * be used for calling ENGINE_ctrl() functions that return data, deal with - * binary data, or that are otherwise supposed to be used directly through - * ENGINE_ctrl() in application code. Any "return" data from an ENGINE_ctrl() - * operation in this function will be lost - the return value is interpreted - * as failure if the return value is zero, success otherwise, and this - * function returns a boolean value as a result. In other words, vendors of - * 'ENGINE'-enabled devices should write ENGINE implementations with - * parameterisations that work in this scheme, so that compliant ENGINE-based - * applications can work consistently with the same configuration for the - * same ENGINE-enabled devices, across applications. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const char *arg, - int cmd_optional); -# endif - -/* - * These functions are useful for manufacturing new ENGINE structures. They - * don't address reference counting at all - one uses them to populate an - * ENGINE structure with personalised implementations of things prior to - * using it directly or adding it to the builtin ENGINE list in OpenSSL. - * These are also here so that the ENGINE structure doesn't have to be - * exposed and break binary compatibility! - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_new(void); -OSSL_DEPRECATEDIN_3_0 int ENGINE_free(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_up_ref(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_id(ENGINE *e, const char *id); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_name(ENGINE *e, const char *name); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_EC(ENGINE *e, const EC_KEY_METHOD *ecdsa_meth); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_DH(ENGINE *e, const DH_METHOD *dh_meth); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_RAND(ENGINE *e, const RAND_METHOD *rand_meth); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_destroy_function(ENGINE *e,ENGINE_GEN_INT_FUNC_PTR destroy_f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_init_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR init_f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_load_privkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpriv_f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_load_ssl_client_cert_function(ENGINE *e, - ENGINE_SSL_CLIENT_CERT_PTR loadssl_f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_pkey_meths(ENGINE *e, ENGINE_PKEY_METHS_PTR f); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_set_pkey_asn1_meths(ENGINE *e, ENGINE_PKEY_ASN1_METHS_PTR f); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_flags(ENGINE *e, int flags); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_cmd_defns(ENGINE *e, - const ENGINE_CMD_DEFN *defns); -# endif -/* These functions allow control over any per-structure ENGINE data. */ -# define ENGINE_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_ENGINE, l, p, newf, dupf, freef) -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_ex_data(ENGINE *e, int idx, void *arg); -OSSL_DEPRECATEDIN_3_0 void *ENGINE_get_ex_data(const ENGINE *e, int idx); -# endif - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -/* - * This function previously cleaned up anything that needs it. Auto-deinit will - * now take care of it so it is no longer required to call this function. - */ -# define ENGINE_cleanup() while(0) continue -# endif - -/* - * These return values from within the ENGINE structure. These can be useful - * with functional references as well as structural references - it depends - * which you obtained. Using the result for functional purposes if you only - * obtained a structural reference may be problematic! - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 const char *ENGINE_get_id(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 const char *ENGINE_get_name(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 const RSA_METHOD *ENGINE_get_RSA(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 const DSA_METHOD *ENGINE_get_DSA(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 const EC_KEY_METHOD *ENGINE_get_EC(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 const DH_METHOD *ENGINE_get_DH(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 const RAND_METHOD *ENGINE_get_RAND(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_GEN_INT_FUNC_PTR ENGINE_get_destroy_function(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_GEN_INT_FUNC_PTR ENGINE_get_init_function(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_GEN_INT_FUNC_PTR ENGINE_get_finish_function(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_CIPHERS_PTR ENGINE_get_ciphers(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_DIGESTS_PTR ENGINE_get_digests(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_PKEY_METHS_PTR ENGINE_get_pkey_meths(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE_PKEY_ASN1_METHS_PTR ENGINE_get_pkey_asn1_meths(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid); -OSSL_DEPRECATEDIN_3_0 -const EVP_MD *ENGINE_get_digest(ENGINE *e, int nid); -OSSL_DEPRECATEDIN_3_0 -const EVP_PKEY_METHOD *ENGINE_get_pkey_meth(ENGINE *e, int nid); -OSSL_DEPRECATEDIN_3_0 -const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth(ENGINE *e, int nid); -OSSL_DEPRECATEDIN_3_0 -const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth_str(ENGINE *e, - const char *str, - int len); -OSSL_DEPRECATEDIN_3_0 -const EVP_PKEY_ASN1_METHOD *ENGINE_pkey_asn1_find_str(ENGINE **pe, - const char *str, int len); -OSSL_DEPRECATEDIN_3_0 -const ENGINE_CMD_DEFN *ENGINE_get_cmd_defns(const ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_get_flags(const ENGINE *e); -# endif - -/* - * FUNCTIONAL functions. These functions deal with ENGINE structures that - * have (or will) be initialised for use. Broadly speaking, the structural - * functions are useful for iterating the list of available engine types, - * creating new engine types, and other "list" operations. These functions - * actually deal with ENGINEs that are to be used. As such these functions - * can fail (if applicable) when particular engines are unavailable - eg. if - * a hardware accelerator is not attached or not functioning correctly. Each - * ENGINE has 2 reference counts; structural and functional. Every time a - * functional reference is obtained or released, a corresponding structural - * reference is automatically obtained or released too. - */ - -/* - * Initialise an engine type for use (or up its reference count if it's - * already in use). This will fail if the engine is not currently operational - * and cannot initialise. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_init(ENGINE *e); -# endif -/* - * Free a functional reference to an engine type. This does not require a - * corresponding call to ENGINE_free as it also releases a structural - * reference. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_finish(ENGINE *e); -# endif - -/* - * The following functions handle keys that are stored in some secondary - * location, handled by the engine. The storage may be on a card or - * whatever. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id, - UI_METHOD *ui_method, void *callback_data); -OSSL_DEPRECATEDIN_3_0 -EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id, - UI_METHOD *ui_method, void *callback_data); -OSSL_DEPRECATEDIN_3_0 -int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s, STACK_OF(X509_NAME) *ca_dn, - X509 **pcert, EVP_PKEY **ppkey, - STACK_OF(X509) **pother, - UI_METHOD *ui_method, void *callback_data); -# endif - -/* - * This returns a pointer for the current ENGINE structure that is (by - * default) performing any RSA operations. The value returned is an - * incremented reference, so it should be free'd (ENGINE_finish) before it is - * discarded. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_default_RSA(void); -# endif -/* Same for the other "methods" */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_default_DSA(void); -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_default_EC(void); -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_default_DH(void); -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_default_RAND(void); -# endif -/* - * These functions can be used to get a functional reference to perform - * ciphering or digesting corresponding to "nid". - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_cipher_engine(int nid); -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_digest_engine(int nid); -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_pkey_meth_engine(int nid); -OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_get_pkey_asn1_meth_engine(int nid); -# endif - -/* - * This sets a new default ENGINE structure for performing RSA operations. If - * the result is non-zero (success) then the ENGINE structure will have had - * its reference count up'd so the caller should still free their own - * reference 'e'. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_RSA(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_string(ENGINE *e, - const char *def_list); -# endif -/* Same for the other "methods" */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_DSA(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_EC(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_DH(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_RAND(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_ciphers(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_digests(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_pkey_meths(ENGINE *e); -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default_pkey_asn1_meths(ENGINE *e); -# endif - -/* - * The combination "set" - the flags are bitwise "OR"d from the - * ENGINE_METHOD_*** defines above. As with the "ENGINE_register_complete()" - * function, this function can result in unnecessary static linkage. If your - * application requires only specific functionality, consider using more - * selective functions. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default(ENGINE *e, unsigned int flags); -OSSL_DEPRECATEDIN_3_0 void ENGINE_add_conf_module(void); -# endif - -/* Deprecated functions ... */ -/* int ENGINE_clear_defaults(void); */ - -/**************************/ -/* DYNAMIC ENGINE SUPPORT */ -/**************************/ - -/* Binary/behaviour compatibility levels */ -# define OSSL_DYNAMIC_VERSION (unsigned long)0x00030000 -/* - * Binary versions older than this are too old for us (whether we're a loader - * or a loadee) - */ -# define OSSL_DYNAMIC_OLDEST (unsigned long)0x00030000 - -/* - * When compiling an ENGINE entirely as an external shared library, loadable - * by the "dynamic" ENGINE, these types are needed. The 'dynamic_fns' - * structure type provides the calling application's (or library's) error - * functionality and memory management function pointers to the loaded - * library. These should be used/set in the loaded library code so that the - * loading application's 'state' will be used/changed in all operations. The - * 'static_state' pointer allows the loaded library to know if it shares the - * same static data as the calling application (or library), and thus whether - * these callbacks need to be set or not. - */ -typedef void *(*dyn_MEM_malloc_fn) (size_t, const char *, int); -typedef void *(*dyn_MEM_realloc_fn) (void *, size_t, const char *, int); -typedef void (*dyn_MEM_free_fn) (void *, const char *, int); -typedef struct st_dynamic_MEM_fns { - dyn_MEM_malloc_fn malloc_fn; - dyn_MEM_realloc_fn realloc_fn; - dyn_MEM_free_fn free_fn; -} dynamic_MEM_fns; -/* - * FIXME: Perhaps the memory and locking code (crypto.h) should declare and - * use these types so we (and any other dependent code) can simplify a bit?? - */ -/* The top-level structure */ -typedef struct st_dynamic_fns { - void *static_state; - dynamic_MEM_fns mem_fns; -} dynamic_fns; - -/* - * The version checking function should be of this prototype. NB: The - * ossl_version value passed in is the OSSL_DYNAMIC_VERSION of the loading - * code. If this function returns zero, it indicates a (potential) version - * incompatibility and the loaded library doesn't believe it can proceed. - * Otherwise, the returned value is the (latest) version supported by the - * loading library. The loader may still decide that the loaded code's - * version is unsatisfactory and could veto the load. The function is - * expected to be implemented with the symbol name "v_check", and a default - * implementation can be fully instantiated with - * IMPLEMENT_DYNAMIC_CHECK_FN(). - */ -typedef unsigned long (*dynamic_v_check_fn) (unsigned long ossl_version); -# define IMPLEMENT_DYNAMIC_CHECK_FN() \ - OPENSSL_EXPORT unsigned long v_check(unsigned long v); \ - OPENSSL_EXPORT unsigned long v_check(unsigned long v) { \ - if (v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \ - return 0; } - -/* - * This function is passed the ENGINE structure to initialise with its own - * function and command settings. It should not adjust the structural or - * functional reference counts. If this function returns zero, (a) the load - * will be aborted, (b) the previous ENGINE state will be memcpy'd back onto - * the structure, and (c) the shared library will be unloaded. So - * implementations should do their own internal cleanup in failure - * circumstances otherwise they could leak. The 'id' parameter, if non-NULL, - * represents the ENGINE id that the loader is looking for. If this is NULL, - * the shared library can choose to return failure or to initialise a - * 'default' ENGINE. If non-NULL, the shared library must initialise only an - * ENGINE matching the passed 'id'. The function is expected to be - * implemented with the symbol name "bind_engine". A standard implementation - * can be instantiated with IMPLEMENT_DYNAMIC_BIND_FN(fn) where the parameter - * 'fn' is a callback function that populates the ENGINE structure and - * returns an int value (zero for failure). 'fn' should have prototype; - * [static] int fn(ENGINE *e, const char *id); - */ -typedef int (*dynamic_bind_engine) (ENGINE *e, const char *id, - const dynamic_fns *fns); -# define IMPLEMENT_DYNAMIC_BIND_FN(fn) \ - OPENSSL_EXPORT \ - int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns); \ - OPENSSL_EXPORT \ - int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \ - if (ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \ - CRYPTO_set_mem_functions(fns->mem_fns.malloc_fn, \ - fns->mem_fns.realloc_fn, \ - fns->mem_fns.free_fn); \ - OPENSSL_init_crypto(OPENSSL_INIT_NO_ATEXIT, NULL); \ - skip_cbs: \ - if (!fn(e, id)) return 0; \ - return 1; } - -/* - * If the loading application (or library) and the loaded ENGINE library - * share the same static data (eg. they're both dynamically linked to the - * same libcrypto.so) we need a way to avoid trying to set system callbacks - - * this would fail, and for the same reason that it's unnecessary to try. If - * the loaded ENGINE has (or gets from through the loader) its own copy of - * the libcrypto static data, we will need to set the callbacks. The easiest - * way to detect this is to have a function that returns a pointer to some - * static data and let the loading application and loaded ENGINE compare - * their respective values. - */ -void *ENGINE_get_static_state(void); - -# if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 void ENGINE_setup_bsd_cryptodev(void); -# endif -# endif - - -# ifdef __cplusplus -} -# endif -# endif /* OPENSSL_NO_ENGINE */ -#endif /* OPENSSL_ENGINE_H */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/engineerr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/engineerr.h deleted file mode 100644 index d439b68..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/engineerr.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_ENGINEERR_H -# define OPENSSL_ENGINEERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_ENGINE - - -/* - * ENGINE reason codes. - */ -# define ENGINE_R_ALREADY_LOADED 100 -# define ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER 133 -# define ENGINE_R_CMD_NOT_EXECUTABLE 134 -# define ENGINE_R_COMMAND_TAKES_INPUT 135 -# define ENGINE_R_COMMAND_TAKES_NO_INPUT 136 -# define ENGINE_R_CONFLICTING_ENGINE_ID 103 -# define ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED 119 -# define ENGINE_R_DSO_FAILURE 104 -# define ENGINE_R_DSO_NOT_FOUND 132 -# define ENGINE_R_ENGINES_SECTION_ERROR 148 -# define ENGINE_R_ENGINE_CONFIGURATION_ERROR 102 -# define ENGINE_R_ENGINE_IS_NOT_IN_LIST 105 -# define ENGINE_R_ENGINE_SECTION_ERROR 149 -# define ENGINE_R_FAILED_LOADING_PRIVATE_KEY 128 -# define ENGINE_R_FAILED_LOADING_PUBLIC_KEY 129 -# define ENGINE_R_FINISH_FAILED 106 -# define ENGINE_R_ID_OR_NAME_MISSING 108 -# define ENGINE_R_INIT_FAILED 109 -# define ENGINE_R_INTERNAL_LIST_ERROR 110 -# define ENGINE_R_INVALID_ARGUMENT 143 -# define ENGINE_R_INVALID_CMD_NAME 137 -# define ENGINE_R_INVALID_CMD_NUMBER 138 -# define ENGINE_R_INVALID_INIT_VALUE 151 -# define ENGINE_R_INVALID_STRING 150 -# define ENGINE_R_NOT_INITIALISED 117 -# define ENGINE_R_NOT_LOADED 112 -# define ENGINE_R_NO_CONTROL_FUNCTION 120 -# define ENGINE_R_NO_INDEX 144 -# define ENGINE_R_NO_LOAD_FUNCTION 125 -# define ENGINE_R_NO_REFERENCE 130 -# define ENGINE_R_NO_SUCH_ENGINE 116 -# define ENGINE_R_UNIMPLEMENTED_CIPHER 146 -# define ENGINE_R_UNIMPLEMENTED_DIGEST 147 -# define ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD 101 -# define ENGINE_R_VERSION_INCOMPATIBILITY 145 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/err.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/err.h deleted file mode 100644 index daca18e..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/err.h +++ /dev/null @@ -1,512 +0,0 @@ -/* - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_ERR_H -# define OPENSSL_ERR_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_ERR_H -# endif - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# include -# endif - -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_FILENAMES -# define ERR_PUT_error(l,f,r,fn,ln) ERR_put_error(l,f,r,fn,ln) -# else -# define ERR_PUT_error(l,f,r,fn,ln) ERR_put_error(l,f,r,NULL,0) -# endif -# endif - -# include -# include - -# define ERR_TXT_MALLOCED 0x01 -# define ERR_TXT_STRING 0x02 - -# if !defined(OPENSSL_NO_DEPRECATED_3_0) || defined(OSSL_FORCE_ERR_STATE) -# define ERR_FLAG_MARK 0x01 -# define ERR_FLAG_CLEAR 0x02 - -# define ERR_NUM_ERRORS 16 -struct err_state_st { - int err_flags[ERR_NUM_ERRORS]; - int err_marks[ERR_NUM_ERRORS]; - unsigned long err_buffer[ERR_NUM_ERRORS]; - char *err_data[ERR_NUM_ERRORS]; - size_t err_data_size[ERR_NUM_ERRORS]; - int err_data_flags[ERR_NUM_ERRORS]; - char *err_file[ERR_NUM_ERRORS]; - int err_line[ERR_NUM_ERRORS]; - char *err_func[ERR_NUM_ERRORS]; - int top, bottom; -}; -# endif - -/* library */ -# define ERR_LIB_NONE 1 -# define ERR_LIB_SYS 2 -# define ERR_LIB_BN 3 -# define ERR_LIB_RSA 4 -# define ERR_LIB_DH 5 -# define ERR_LIB_EVP 6 -# define ERR_LIB_BUF 7 -# define ERR_LIB_OBJ 8 -# define ERR_LIB_PEM 9 -# define ERR_LIB_DSA 10 -# define ERR_LIB_X509 11 -/* #define ERR_LIB_METH 12 */ -# define ERR_LIB_ASN1 13 -# define ERR_LIB_CONF 14 -# define ERR_LIB_CRYPTO 15 -# define ERR_LIB_EC 16 -# define ERR_LIB_SSL 20 -/* #define ERR_LIB_SSL23 21 */ -/* #define ERR_LIB_SSL2 22 */ -/* #define ERR_LIB_SSL3 23 */ -/* #define ERR_LIB_RSAREF 30 */ -/* #define ERR_LIB_PROXY 31 */ -# define ERR_LIB_BIO 32 -# define ERR_LIB_PKCS7 33 -# define ERR_LIB_X509V3 34 -# define ERR_LIB_PKCS12 35 -# define ERR_LIB_RAND 36 -# define ERR_LIB_DSO 37 -# define ERR_LIB_ENGINE 38 -# define ERR_LIB_OCSP 39 -# define ERR_LIB_UI 40 -# define ERR_LIB_COMP 41 -# define ERR_LIB_ECDSA 42 -# define ERR_LIB_ECDH 43 -# define ERR_LIB_OSSL_STORE 44 -# define ERR_LIB_FIPS 45 -# define ERR_LIB_CMS 46 -# define ERR_LIB_TS 47 -# define ERR_LIB_HMAC 48 -/* # define ERR_LIB_JPAKE 49 */ -# define ERR_LIB_CT 50 -# define ERR_LIB_ASYNC 51 -# define ERR_LIB_KDF 52 -# define ERR_LIB_SM2 53 -# define ERR_LIB_ESS 54 -# define ERR_LIB_PROP 55 -# define ERR_LIB_CRMF 56 -# define ERR_LIB_PROV 57 -# define ERR_LIB_CMP 58 -# define ERR_LIB_OSSL_ENCODER 59 -# define ERR_LIB_OSSL_DECODER 60 -# define ERR_LIB_HTTP 61 - -# define ERR_LIB_USER 128 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define ASN1err(f, r) ERR_raise_data(ERR_LIB_ASN1, (r), NULL) -# define ASYNCerr(f, r) ERR_raise_data(ERR_LIB_ASYNC, (r), NULL) -# define BIOerr(f, r) ERR_raise_data(ERR_LIB_BIO, (r), NULL) -# define BNerr(f, r) ERR_raise_data(ERR_LIB_BN, (r), NULL) -# define BUFerr(f, r) ERR_raise_data(ERR_LIB_BUF, (r), NULL) -# define CMPerr(f, r) ERR_raise_data(ERR_LIB_CMP, (r), NULL) -# define CMSerr(f, r) ERR_raise_data(ERR_LIB_CMS, (r), NULL) -# define COMPerr(f, r) ERR_raise_data(ERR_LIB_COMP, (r), NULL) -# define CONFerr(f, r) ERR_raise_data(ERR_LIB_CONF, (r), NULL) -# define CRMFerr(f, r) ERR_raise_data(ERR_LIB_CRMF, (r), NULL) -# define CRYPTOerr(f, r) ERR_raise_data(ERR_LIB_CRYPTO, (r), NULL) -# define CTerr(f, r) ERR_raise_data(ERR_LIB_CT, (r), NULL) -# define DHerr(f, r) ERR_raise_data(ERR_LIB_DH, (r), NULL) -# define DSAerr(f, r) ERR_raise_data(ERR_LIB_DSA, (r), NULL) -# define DSOerr(f, r) ERR_raise_data(ERR_LIB_DSO, (r), NULL) -# define ECDHerr(f, r) ERR_raise_data(ERR_LIB_ECDH, (r), NULL) -# define ECDSAerr(f, r) ERR_raise_data(ERR_LIB_ECDSA, (r), NULL) -# define ECerr(f, r) ERR_raise_data(ERR_LIB_EC, (r), NULL) -# define ENGINEerr(f, r) ERR_raise_data(ERR_LIB_ENGINE, (r), NULL) -# define ESSerr(f, r) ERR_raise_data(ERR_LIB_ESS, (r), NULL) -# define EVPerr(f, r) ERR_raise_data(ERR_LIB_EVP, (r), NULL) -# define FIPSerr(f, r) ERR_raise_data(ERR_LIB_FIPS, (r), NULL) -# define HMACerr(f, r) ERR_raise_data(ERR_LIB_HMAC, (r), NULL) -# define HTTPerr(f, r) ERR_raise_data(ERR_LIB_HTTP, (r), NULL) -# define KDFerr(f, r) ERR_raise_data(ERR_LIB_KDF, (r), NULL) -# define OBJerr(f, r) ERR_raise_data(ERR_LIB_OBJ, (r), NULL) -# define OCSPerr(f, r) ERR_raise_data(ERR_LIB_OCSP, (r), NULL) -# define OSSL_STOREerr(f, r) ERR_raise_data(ERR_LIB_OSSL_STORE, (r), NULL) -# define PEMerr(f, r) ERR_raise_data(ERR_LIB_PEM, (r), NULL) -# define PKCS12err(f, r) ERR_raise_data(ERR_LIB_PKCS12, (r), NULL) -# define PKCS7err(f, r) ERR_raise_data(ERR_LIB_PKCS7, (r), NULL) -# define PROPerr(f, r) ERR_raise_data(ERR_LIB_PROP, (r), NULL) -# define PROVerr(f, r) ERR_raise_data(ERR_LIB_PROV, (r), NULL) -# define RANDerr(f, r) ERR_raise_data(ERR_LIB_RAND, (r), NULL) -# define RSAerr(f, r) ERR_raise_data(ERR_LIB_RSA, (r), NULL) -# define KDFerr(f, r) ERR_raise_data(ERR_LIB_KDF, (r), NULL) -# define SM2err(f, r) ERR_raise_data(ERR_LIB_SM2, (r), NULL) -# define SSLerr(f, r) ERR_raise_data(ERR_LIB_SSL, (r), NULL) -# define SYSerr(f, r) ERR_raise_data(ERR_LIB_SYS, (r), NULL) -# define TSerr(f, r) ERR_raise_data(ERR_LIB_TS, (r), NULL) -# define UIerr(f, r) ERR_raise_data(ERR_LIB_UI, (r), NULL) -# define X509V3err(f, r) ERR_raise_data(ERR_LIB_X509V3, (r), NULL) -# define X509err(f, r) ERR_raise_data(ERR_LIB_X509, (r), NULL) -# endif - -/*- - * The error code packs differently depending on if it records a system - * error or an OpenSSL error. - * - * A system error packs like this (we follow POSIX and only allow positive - * numbers that fit in an |int|): - * - * +-+-------------------------------------------------------------+ - * |1| system error number | - * +-+-------------------------------------------------------------+ - * - * An OpenSSL error packs like this: - * - * <---------------------------- 32 bits --------------------------> - * <--- 8 bits ---><------------------ 23 bits -----------------> - * +-+---------------+---------------------------------------------+ - * |0| library | reason | - * +-+---------------+---------------------------------------------+ - * - * A few of the reason bits are reserved as flags with special meaning: - * - * <5 bits-<>--------- 19 bits -----------------> - * +-------+-+-----------------------------------+ - * | rflags| | reason | - * +-------+-+-----------------------------------+ - * ^ - * | - * ERR_RFLAG_FATAL = ERR_R_FATAL - * - * The reason flags are part of the overall reason code for practical - * reasons, as they provide an easy way to place different types of - * reason codes in different numeric ranges. - * - * The currently known reason flags are: - * - * ERR_RFLAG_FATAL Flags that the reason code is considered fatal. - * For backward compatibility reasons, this flag - * is also the code for ERR_R_FATAL (that reason - * code served the dual purpose of flag and reason - * code in one in pre-3.0 OpenSSL). - * ERR_RFLAG_COMMON Flags that the reason code is common to all - * libraries. All ERR_R_ macros must use this flag, - * and no other _R_ macro is allowed to use it. - */ - -/* Macros to help decode recorded system errors */ -# define ERR_SYSTEM_FLAG ((unsigned int)INT_MAX + 1) -# define ERR_SYSTEM_MASK ((unsigned int)INT_MAX) - -/* - * Macros to help decode recorded OpenSSL errors - * As expressed above, RFLAGS and REASON overlap by one bit to allow - * ERR_R_FATAL to use ERR_RFLAG_FATAL as its reason code. - */ -# define ERR_LIB_OFFSET 23L -# define ERR_LIB_MASK 0xFF -# define ERR_RFLAGS_OFFSET 18L -# define ERR_RFLAGS_MASK 0x1F -# define ERR_REASON_MASK 0X7FFFFF - -/* - * Reason flags are defined pre-shifted to easily combine with the reason - * number. - */ -# define ERR_RFLAG_FATAL (0x1 << ERR_RFLAGS_OFFSET) -# define ERR_RFLAG_COMMON (0x2 << ERR_RFLAGS_OFFSET) - -# define ERR_SYSTEM_ERROR(errcode) (((errcode) & ERR_SYSTEM_FLAG) != 0) - -static ossl_unused ossl_inline int ERR_GET_LIB(unsigned long errcode) -{ - if (ERR_SYSTEM_ERROR(errcode)) - return ERR_LIB_SYS; - return (errcode >> ERR_LIB_OFFSET) & ERR_LIB_MASK; -} - -static ossl_unused ossl_inline int ERR_GET_RFLAGS(unsigned long errcode) -{ - if (ERR_SYSTEM_ERROR(errcode)) - return 0; - return errcode & (ERR_RFLAGS_MASK << ERR_RFLAGS_OFFSET); -} - -static ossl_unused ossl_inline int ERR_GET_REASON(unsigned long errcode) -{ - if (ERR_SYSTEM_ERROR(errcode)) - return errcode & ERR_SYSTEM_MASK; - return errcode & ERR_REASON_MASK; -} - -static ossl_unused ossl_inline int ERR_FATAL_ERROR(unsigned long errcode) -{ - return (ERR_GET_RFLAGS(errcode) & ERR_RFLAG_FATAL) != 0; -} - -static ossl_unused ossl_inline int ERR_COMMON_ERROR(unsigned long errcode) -{ - return (ERR_GET_RFLAGS(errcode) & ERR_RFLAG_COMMON) != 0; -} - -/* - * ERR_PACK is a helper macro to properly pack OpenSSL error codes and may - * only be used for that purpose. System errors are packed internally. - * ERR_PACK takes reason flags and reason code combined in |reason|. - * ERR_PACK ignores |func|, that parameter is just legacy from pre-3.0 OpenSSL. - */ -# define ERR_PACK(lib,func,reason) \ - ( (((unsigned long)(lib) & ERR_LIB_MASK ) << ERR_LIB_OFFSET) | \ - (((unsigned long)(reason) & ERR_REASON_MASK)) ) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SYS_F_FOPEN 0 -# define SYS_F_CONNECT 0 -# define SYS_F_GETSERVBYNAME 0 -# define SYS_F_SOCKET 0 -# define SYS_F_IOCTLSOCKET 0 -# define SYS_F_BIND 0 -# define SYS_F_LISTEN 0 -# define SYS_F_ACCEPT 0 -# define SYS_F_WSASTARTUP 0 -# define SYS_F_OPENDIR 0 -# define SYS_F_FREAD 0 -# define SYS_F_GETADDRINFO 0 -# define SYS_F_GETNAMEINFO 0 -# define SYS_F_SETSOCKOPT 0 -# define SYS_F_GETSOCKOPT 0 -# define SYS_F_GETSOCKNAME 0 -# define SYS_F_GETHOSTBYNAME 0 -# define SYS_F_FFLUSH 0 -# define SYS_F_OPEN 0 -# define SYS_F_CLOSE 0 -# define SYS_F_IOCTL 0 -# define SYS_F_STAT 0 -# define SYS_F_FCNTL 0 -# define SYS_F_FSTAT 0 -# define SYS_F_SENDFILE 0 -# endif - -/* - * All ERR_R_ codes must be combined with ERR_RFLAG_COMMON. - */ - -/* "we came from here" global reason codes, range 1..255 */ -# define ERR_R_SYS_LIB (ERR_LIB_SYS/* 2 */ | ERR_RFLAG_COMMON) -# define ERR_R_BN_LIB (ERR_LIB_BN/* 3 */ | ERR_RFLAG_COMMON) -# define ERR_R_RSA_LIB (ERR_LIB_RSA/* 4 */ | ERR_RFLAG_COMMON) -# define ERR_R_DH_LIB (ERR_LIB_DH/* 5 */ | ERR_RFLAG_COMMON) -# define ERR_R_EVP_LIB (ERR_LIB_EVP/* 6 */ | ERR_RFLAG_COMMON) -# define ERR_R_BUF_LIB (ERR_LIB_BUF/* 7 */ | ERR_RFLAG_COMMON) -# define ERR_R_OBJ_LIB (ERR_LIB_OBJ/* 8 */ | ERR_RFLAG_COMMON) -# define ERR_R_PEM_LIB (ERR_LIB_PEM/* 9 */ | ERR_RFLAG_COMMON) -# define ERR_R_DSA_LIB (ERR_LIB_DSA/* 10 */ | ERR_RFLAG_COMMON) -# define ERR_R_X509_LIB (ERR_LIB_X509/* 11 */ | ERR_RFLAG_COMMON) -# define ERR_R_ASN1_LIB (ERR_LIB_ASN1/* 13 */ | ERR_RFLAG_COMMON) -# define ERR_R_CONF_LIB (ERR_LIB_CONF/* 14 */ | ERR_RFLAG_COMMON) -# define ERR_R_CRYPTO_LIB (ERR_LIB_CRYPTO/* 15 */ | ERR_RFLAG_COMMON) -# define ERR_R_EC_LIB (ERR_LIB_EC/* 16 */ | ERR_RFLAG_COMMON) -# define ERR_R_SSL_LIB (ERR_LIB_SSL/* 20 */ | ERR_RFLAG_COMMON) -# define ERR_R_BIO_LIB (ERR_LIB_BIO/* 32 */ | ERR_RFLAG_COMMON) -# define ERR_R_PKCS7_LIB (ERR_LIB_PKCS7/* 33 */ | ERR_RFLAG_COMMON) -# define ERR_R_X509V3_LIB (ERR_LIB_X509V3/* 34 */ | ERR_RFLAG_COMMON) -# define ERR_R_PKCS12_LIB (ERR_LIB_PKCS12/* 35 */ | ERR_RFLAG_COMMON) -# define ERR_R_RAND_LIB (ERR_LIB_RAND/* 36 */ | ERR_RFLAG_COMMON) -# define ERR_R_DSO_LIB (ERR_LIB_DSO/* 37 */ | ERR_RFLAG_COMMON) -# define ERR_R_ENGINE_LIB (ERR_LIB_ENGINE/* 38 */ | ERR_RFLAG_COMMON) -# define ERR_R_UI_LIB (ERR_LIB_UI/* 40 */ | ERR_RFLAG_COMMON) -# define ERR_R_ECDSA_LIB (ERR_LIB_ECDSA/* 42 */ | ERR_RFLAG_COMMON) -# define ERR_R_OSSL_STORE_LIB (ERR_LIB_OSSL_STORE/* 44 */ | ERR_RFLAG_COMMON) -# define ERR_R_CMS_LIB (ERR_LIB_CMS/* 46 */ | ERR_RFLAG_COMMON) -# define ERR_R_TS_LIB (ERR_LIB_TS/* 47 */ | ERR_RFLAG_COMMON) -# define ERR_R_CT_LIB (ERR_LIB_CT/* 50 */ | ERR_RFLAG_COMMON) -# define ERR_R_PROV_LIB (ERR_LIB_PROV/* 57 */ | ERR_RFLAG_COMMON) -# define ERR_R_ESS_LIB (ERR_LIB_ESS/* 54 */ | ERR_RFLAG_COMMON) -# define ERR_R_CMP_LIB (ERR_LIB_CMP/* 58 */ | ERR_RFLAG_COMMON) -# define ERR_R_OSSL_ENCODER_LIB (ERR_LIB_OSSL_ENCODER/* 59 */ | ERR_RFLAG_COMMON) -# define ERR_R_OSSL_DECODER_LIB (ERR_LIB_OSSL_DECODER/* 60 */ | ERR_RFLAG_COMMON) - -/* Other common error codes, range 256..2^ERR_RFLAGS_OFFSET-1 */ -# define ERR_R_FATAL (ERR_RFLAG_FATAL|ERR_RFLAG_COMMON) -# define ERR_R_MALLOC_FAILURE (256|ERR_R_FATAL) -# define ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED (257|ERR_R_FATAL) -# define ERR_R_PASSED_NULL_PARAMETER (258|ERR_R_FATAL) -# define ERR_R_INTERNAL_ERROR (259|ERR_R_FATAL) -# define ERR_R_DISABLED (260|ERR_R_FATAL) -# define ERR_R_INIT_FAIL (261|ERR_R_FATAL) -# define ERR_R_PASSED_INVALID_ARGUMENT (262|ERR_RFLAG_COMMON) -# define ERR_R_OPERATION_FAIL (263|ERR_R_FATAL) -# define ERR_R_INVALID_PROVIDER_FUNCTIONS (264|ERR_R_FATAL) -# define ERR_R_INTERRUPTED_OR_CANCELLED (265|ERR_RFLAG_COMMON) -# define ERR_R_NESTED_ASN1_ERROR (266|ERR_RFLAG_COMMON) -# define ERR_R_MISSING_ASN1_EOS (267|ERR_RFLAG_COMMON) -# define ERR_R_UNSUPPORTED (268|ERR_RFLAG_COMMON) -# define ERR_R_FETCH_FAILED (269|ERR_RFLAG_COMMON) -# define ERR_R_INVALID_PROPERTY_DEFINITION (270|ERR_RFLAG_COMMON) -# define ERR_R_UNABLE_TO_GET_READ_LOCK (271|ERR_R_FATAL) -# define ERR_R_UNABLE_TO_GET_WRITE_LOCK (272|ERR_R_FATAL) - -typedef struct ERR_string_data_st { - unsigned long error; - const char *string; -} ERR_STRING_DATA; - -DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); -#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) -#define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) -#define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) -#define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) -#define lh_ERR_STRING_DATA_delete(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_delete(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_const_ERR_STRING_DATA_lh_plain_type(ptr))) -#define lh_ERR_STRING_DATA_retrieve(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_retrieve(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_const_ERR_STRING_DATA_lh_plain_type(ptr))) -#define lh_ERR_STRING_DATA_error(lh) OPENSSL_LH_error(ossl_check_ERR_STRING_DATA_lh_type(lh)) -#define lh_ERR_STRING_DATA_num_items(lh) OPENSSL_LH_num_items(ossl_check_ERR_STRING_DATA_lh_type(lh)) -#define lh_ERR_STRING_DATA_node_stats_bio(lh, out) OPENSSL_LH_node_stats_bio(ossl_check_const_ERR_STRING_DATA_lh_type(lh), out) -#define lh_ERR_STRING_DATA_node_usage_stats_bio(lh, out) OPENSSL_LH_node_usage_stats_bio(ossl_check_const_ERR_STRING_DATA_lh_type(lh), out) -#define lh_ERR_STRING_DATA_stats_bio(lh, out) OPENSSL_LH_stats_bio(ossl_check_const_ERR_STRING_DATA_lh_type(lh), out) -#define lh_ERR_STRING_DATA_get_down_load(lh) OPENSSL_LH_get_down_load(ossl_check_ERR_STRING_DATA_lh_type(lh)) -#define lh_ERR_STRING_DATA_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_ERR_STRING_DATA_lh_type(lh), dl) -#define lh_ERR_STRING_DATA_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_doallfunc_type(dfn)) - - -/* 12 lines and some on an 80 column terminal */ -#define ERR_MAX_DATA_SIZE 1024 - -/* Building blocks */ -void ERR_new(void); -void ERR_set_debug(const char *file, int line, const char *func); -void ERR_set_error(int lib, int reason, const char *fmt, ...); -void ERR_vset_error(int lib, int reason, const char *fmt, va_list args); - -/* Main error raising functions */ -# define ERR_raise(lib, reason) ERR_raise_data((lib),(reason),NULL) -# define ERR_raise_data \ - (ERR_new(), \ - ERR_set_debug(OPENSSL_FILE,OPENSSL_LINE,OPENSSL_FUNC), \ - ERR_set_error) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* Backward compatibility */ -# define ERR_put_error(lib, func, reason, file, line) \ - (ERR_new(), \ - ERR_set_debug((file), (line), OPENSSL_FUNC), \ - ERR_set_error((lib), (reason), NULL)) -# endif - -void ERR_set_error_data(char *data, int flags); - -unsigned long ERR_get_error(void); -unsigned long ERR_get_error_all(const char **file, int *line, - const char **func, - const char **data, int *flags); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -unsigned long ERR_get_error_line(const char **file, int *line); -OSSL_DEPRECATEDIN_3_0 -unsigned long ERR_get_error_line_data(const char **file, int *line, - const char **data, int *flags); -#endif -unsigned long ERR_peek_error(void); -unsigned long ERR_peek_error_line(const char **file, int *line); -unsigned long ERR_peek_error_func(const char **func); -unsigned long ERR_peek_error_data(const char **data, int *flags); -unsigned long ERR_peek_error_all(const char **file, int *line, - const char **func, - const char **data, int *flags); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -unsigned long ERR_peek_error_line_data(const char **file, int *line, - const char **data, int *flags); -# endif -unsigned long ERR_peek_last_error(void); -unsigned long ERR_peek_last_error_line(const char **file, int *line); -unsigned long ERR_peek_last_error_func(const char **func); -unsigned long ERR_peek_last_error_data(const char **data, int *flags); -unsigned long ERR_peek_last_error_all(const char **file, int *line, - const char **func, - const char **data, int *flags); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -unsigned long ERR_peek_last_error_line_data(const char **file, int *line, - const char **data, int *flags); -# endif - -void ERR_clear_error(void); - -char *ERR_error_string(unsigned long e, char *buf); -void ERR_error_string_n(unsigned long e, char *buf, size_t len); -const char *ERR_lib_error_string(unsigned long e); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 const char *ERR_func_error_string(unsigned long e); -# endif -const char *ERR_reason_error_string(unsigned long e); - -void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void *u), - void *u); -# ifndef OPENSSL_NO_STDIO -void ERR_print_errors_fp(FILE *fp); -# endif -void ERR_print_errors(BIO *bp); - -void ERR_add_error_data(int num, ...); -void ERR_add_error_vdata(int num, va_list args); -void ERR_add_error_txt(const char *sepr, const char *txt); -void ERR_add_error_mem_bio(const char *sep, BIO *bio); - -int ERR_load_strings(int lib, ERR_STRING_DATA *str); -int ERR_load_strings_const(const ERR_STRING_DATA *str); -int ERR_unload_strings(int lib, ERR_STRING_DATA *str); - -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define ERR_load_crypto_strings() \ - OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) -# define ERR_free_strings() while(0) continue -#endif -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 void ERR_remove_thread_state(void *); -#endif -#ifndef OPENSSL_NO_DEPRECATED_1_0_0 -OSSL_DEPRECATEDIN_1_0_0 void ERR_remove_state(unsigned long pid); -#endif -#ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 ERR_STATE *ERR_get_state(void); -#endif - -int ERR_get_next_error_library(void); - -int ERR_set_mark(void); -int ERR_pop_to_mark(void); -int ERR_clear_last_mark(void); -int ERR_count_to_mark(void); -int ERR_pop(void); - -ERR_STATE *OSSL_ERR_STATE_new(void); -void OSSL_ERR_STATE_save(ERR_STATE *es); -void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); -void OSSL_ERR_STATE_restore(const ERR_STATE *es); -void OSSL_ERR_STATE_free(ERR_STATE *es); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/ess.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/ess.h deleted file mode 100644 index 863a874..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/ess.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\ess.h.in - * - * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_ESS_H -# define OPENSSL_ESS_H -# pragma once - -# include - -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - - -typedef struct ESS_issuer_serial ESS_ISSUER_SERIAL; -typedef struct ESS_cert_id ESS_CERT_ID; -typedef struct ESS_signing_cert ESS_SIGNING_CERT; - -SKM_DEFINE_STACK_OF_INTERNAL(ESS_CERT_ID, ESS_CERT_ID, ESS_CERT_ID) -#define sk_ESS_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_ESS_CERT_ID_sk_type(sk)) -#define sk_ESS_CERT_ID_value(sk, idx) ((ESS_CERT_ID *)OPENSSL_sk_value(ossl_check_const_ESS_CERT_ID_sk_type(sk), (idx))) -#define sk_ESS_CERT_ID_new(cmp) ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_new(ossl_check_ESS_CERT_ID_compfunc_type(cmp))) -#define sk_ESS_CERT_ID_new_null() ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_new_null()) -#define sk_ESS_CERT_ID_new_reserve(cmp, n) ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_ESS_CERT_ID_compfunc_type(cmp), (n))) -#define sk_ESS_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ESS_CERT_ID_sk_type(sk), (n)) -#define sk_ESS_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_ESS_CERT_ID_sk_type(sk)) -#define sk_ESS_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_ESS_CERT_ID_sk_type(sk)) -#define sk_ESS_CERT_ID_delete(sk, i) ((ESS_CERT_ID *)OPENSSL_sk_delete(ossl_check_ESS_CERT_ID_sk_type(sk), (i))) -#define sk_ESS_CERT_ID_delete_ptr(sk, ptr) ((ESS_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr))) -#define sk_ESS_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr)) -#define sk_ESS_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr)) -#define sk_ESS_CERT_ID_pop(sk) ((ESS_CERT_ID *)OPENSSL_sk_pop(ossl_check_ESS_CERT_ID_sk_type(sk))) -#define sk_ESS_CERT_ID_shift(sk) ((ESS_CERT_ID *)OPENSSL_sk_shift(ossl_check_ESS_CERT_ID_sk_type(sk))) -#define sk_ESS_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_freefunc_type(freefunc)) -#define sk_ESS_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr), (idx)) -#define sk_ESS_CERT_ID_set(sk, idx, ptr) ((ESS_CERT_ID *)OPENSSL_sk_set(ossl_check_ESS_CERT_ID_sk_type(sk), (idx), ossl_check_ESS_CERT_ID_type(ptr))) -#define sk_ESS_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr)) -#define sk_ESS_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr)) -#define sk_ESS_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr), pnum) -#define sk_ESS_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_ESS_CERT_ID_sk_type(sk)) -#define sk_ESS_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ESS_CERT_ID_sk_type(sk)) -#define sk_ESS_CERT_ID_dup(sk) ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_ESS_CERT_ID_sk_type(sk))) -#define sk_ESS_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_copyfunc_type(copyfunc), ossl_check_ESS_CERT_ID_freefunc_type(freefunc))) -#define sk_ESS_CERT_ID_set_cmp_func(sk, cmp) ((sk_ESS_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_compfunc_type(cmp))) - - - -typedef struct ESS_signing_cert_v2_st ESS_SIGNING_CERT_V2; -typedef struct ESS_cert_id_v2_st ESS_CERT_ID_V2; - -SKM_DEFINE_STACK_OF_INTERNAL(ESS_CERT_ID_V2, ESS_CERT_ID_V2, ESS_CERT_ID_V2) -#define sk_ESS_CERT_ID_V2_num(sk) OPENSSL_sk_num(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk)) -#define sk_ESS_CERT_ID_V2_value(sk, idx) ((ESS_CERT_ID_V2 *)OPENSSL_sk_value(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk), (idx))) -#define sk_ESS_CERT_ID_V2_new(cmp) ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_new(ossl_check_ESS_CERT_ID_V2_compfunc_type(cmp))) -#define sk_ESS_CERT_ID_V2_new_null() ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_new_null()) -#define sk_ESS_CERT_ID_V2_new_reserve(cmp, n) ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_new_reserve(ossl_check_ESS_CERT_ID_V2_compfunc_type(cmp), (n))) -#define sk_ESS_CERT_ID_V2_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ESS_CERT_ID_V2_sk_type(sk), (n)) -#define sk_ESS_CERT_ID_V2_free(sk) OPENSSL_sk_free(ossl_check_ESS_CERT_ID_V2_sk_type(sk)) -#define sk_ESS_CERT_ID_V2_zero(sk) OPENSSL_sk_zero(ossl_check_ESS_CERT_ID_V2_sk_type(sk)) -#define sk_ESS_CERT_ID_V2_delete(sk, i) ((ESS_CERT_ID_V2 *)OPENSSL_sk_delete(ossl_check_ESS_CERT_ID_V2_sk_type(sk), (i))) -#define sk_ESS_CERT_ID_V2_delete_ptr(sk, ptr) ((ESS_CERT_ID_V2 *)OPENSSL_sk_delete_ptr(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr))) -#define sk_ESS_CERT_ID_V2_push(sk, ptr) OPENSSL_sk_push(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr)) -#define sk_ESS_CERT_ID_V2_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr)) -#define sk_ESS_CERT_ID_V2_pop(sk) ((ESS_CERT_ID_V2 *)OPENSSL_sk_pop(ossl_check_ESS_CERT_ID_V2_sk_type(sk))) -#define sk_ESS_CERT_ID_V2_shift(sk) ((ESS_CERT_ID_V2 *)OPENSSL_sk_shift(ossl_check_ESS_CERT_ID_V2_sk_type(sk))) -#define sk_ESS_CERT_ID_V2_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_freefunc_type(freefunc)) -#define sk_ESS_CERT_ID_V2_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr), (idx)) -#define sk_ESS_CERT_ID_V2_set(sk, idx, ptr) ((ESS_CERT_ID_V2 *)OPENSSL_sk_set(ossl_check_ESS_CERT_ID_V2_sk_type(sk), (idx), ossl_check_ESS_CERT_ID_V2_type(ptr))) -#define sk_ESS_CERT_ID_V2_find(sk, ptr) OPENSSL_sk_find(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr)) -#define sk_ESS_CERT_ID_V2_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr)) -#define sk_ESS_CERT_ID_V2_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr), pnum) -#define sk_ESS_CERT_ID_V2_sort(sk) OPENSSL_sk_sort(ossl_check_ESS_CERT_ID_V2_sk_type(sk)) -#define sk_ESS_CERT_ID_V2_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk)) -#define sk_ESS_CERT_ID_V2_dup(sk) ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_dup(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk))) -#define sk_ESS_CERT_ID_V2_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_deep_copy(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_copyfunc_type(copyfunc), ossl_check_ESS_CERT_ID_V2_freefunc_type(freefunc))) -#define sk_ESS_CERT_ID_V2_set_cmp_func(sk, cmp) ((sk_ESS_CERT_ID_V2_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_compfunc_type(cmp))) - - -DECLARE_ASN1_ALLOC_FUNCTIONS(ESS_ISSUER_SERIAL) -DECLARE_ASN1_ENCODE_FUNCTIONS_only(ESS_ISSUER_SERIAL, ESS_ISSUER_SERIAL) -DECLARE_ASN1_DUP_FUNCTION(ESS_ISSUER_SERIAL) - -DECLARE_ASN1_ALLOC_FUNCTIONS(ESS_CERT_ID) -DECLARE_ASN1_ENCODE_FUNCTIONS_only(ESS_CERT_ID, ESS_CERT_ID) -DECLARE_ASN1_DUP_FUNCTION(ESS_CERT_ID) - -DECLARE_ASN1_FUNCTIONS(ESS_SIGNING_CERT) -DECLARE_ASN1_DUP_FUNCTION(ESS_SIGNING_CERT) - -DECLARE_ASN1_ALLOC_FUNCTIONS(ESS_CERT_ID_V2) -DECLARE_ASN1_ENCODE_FUNCTIONS_only(ESS_CERT_ID_V2, ESS_CERT_ID_V2) -DECLARE_ASN1_DUP_FUNCTION(ESS_CERT_ID_V2) - -DECLARE_ASN1_FUNCTIONS(ESS_SIGNING_CERT_V2) -DECLARE_ASN1_DUP_FUNCTION(ESS_SIGNING_CERT_V2) - -ESS_SIGNING_CERT *OSSL_ESS_signing_cert_new_init(const X509 *signcert, - const STACK_OF(X509) *certs, - int set_issuer_serial); -ESS_SIGNING_CERT_V2 *OSSL_ESS_signing_cert_v2_new_init(const EVP_MD *hash_alg, - const X509 *signcert, - const - STACK_OF(X509) *certs, - int set_issuer_serial); -int OSSL_ESS_check_signing_certs(const ESS_SIGNING_CERT *ss, - const ESS_SIGNING_CERT_V2 *ssv2, - const STACK_OF(X509) *chain, - int require_signing_cert); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/esserr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/esserr.h deleted file mode 100644 index 165ce7c..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/esserr.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_ESSERR_H -# define OPENSSL_ESSERR_H -# pragma once - -# include -# include -# include - -/* - * ESS reason codes. - */ -# define ESS_R_EMPTY_ESS_CERT_ID_LIST 107 -# define ESS_R_ESS_CERT_DIGEST_ERROR 103 -# define ESS_R_ESS_CERT_ID_NOT_FOUND 104 -# define ESS_R_ESS_CERT_ID_WRONG_ORDER 105 -# define ESS_R_ESS_DIGEST_ALG_UNKNOWN 106 -# define ESS_R_ESS_SIGNING_CERTIFICATE_ERROR 102 -# define ESS_R_ESS_SIGNING_CERT_ADD_ERROR 100 -# define ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR 101 -# define ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE 108 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/evp.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/evp.h deleted file mode 100644 index 61e50b2..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/evp.h +++ /dev/null @@ -1,2345 +0,0 @@ -/* - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_EVP_H -# define OPENSSL_EVP_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_ENVELOPE_H -# endif - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif - -# include -# include -# include -# include -# include -# include -# include -# include - -# define EVP_MAX_MD_SIZE 64/* longest known is SHA512 */ -# define EVP_MAX_KEY_LENGTH 64 -# define EVP_MAX_IV_LENGTH 16 -# define EVP_MAX_BLOCK_LENGTH 32 -# define EVP_MAX_AEAD_TAG_LENGTH 16 - -/* Maximum pipes in cipher pipelining */ -# define EVP_MAX_PIPES 32 - -# define PKCS5_SALT_LEN 8 -/* Default PKCS#5 iteration count */ -# define PKCS5_DEFAULT_ITER 2048 - -# include - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define EVP_PK_RSA 0x0001 -# define EVP_PK_DSA 0x0002 -# define EVP_PK_DH 0x0004 -# define EVP_PK_EC 0x0008 -# define EVP_PKT_SIGN 0x0010 -# define EVP_PKT_ENC 0x0020 -# define EVP_PKT_EXCH 0x0040 -# define EVP_PKS_RSA 0x0100 -# define EVP_PKS_DSA 0x0200 -# define EVP_PKS_EC 0x0400 -# endif - -# define EVP_PKEY_NONE NID_undef -# define EVP_PKEY_RSA NID_rsaEncryption -# define EVP_PKEY_RSA2 NID_rsa -# define EVP_PKEY_RSA_PSS NID_rsassaPss -# define EVP_PKEY_DSA NID_dsa -# define EVP_PKEY_DSA1 NID_dsa_2 -# define EVP_PKEY_DSA2 NID_dsaWithSHA -# define EVP_PKEY_DSA3 NID_dsaWithSHA1 -# define EVP_PKEY_DSA4 NID_dsaWithSHA1_2 -# define EVP_PKEY_DH NID_dhKeyAgreement -# define EVP_PKEY_DHX NID_dhpublicnumber -# define EVP_PKEY_EC NID_X9_62_id_ecPublicKey -# define EVP_PKEY_SM2 NID_sm2 -# define EVP_PKEY_HMAC NID_hmac -# define EVP_PKEY_CMAC NID_cmac -# define EVP_PKEY_SCRYPT NID_id_scrypt -# define EVP_PKEY_TLS1_PRF NID_tls1_prf -# define EVP_PKEY_HKDF NID_hkdf -# define EVP_PKEY_POLY1305 NID_poly1305 -# define EVP_PKEY_SIPHASH NID_siphash -# define EVP_PKEY_X25519 NID_X25519 -# define EVP_PKEY_ED25519 NID_ED25519 -# define EVP_PKEY_X448 NID_X448 -# define EVP_PKEY_ED448 NID_ED448 -# define EVP_PKEY_ML_DSA_44 NID_ML_DSA_44 -# define EVP_PKEY_ML_DSA_65 NID_ML_DSA_65 -# define EVP_PKEY_ML_DSA_87 NID_ML_DSA_87 -# define EVP_PKEY_SLH_DSA_SHA2_128S NID_SLH_DSA_SHA2_128s -# define EVP_PKEY_SLH_DSA_SHA2_128F NID_SLH_DSA_SHA2_128f -# define EVP_PKEY_SLH_DSA_SHA2_192S NID_SLH_DSA_SHA2_192s -# define EVP_PKEY_SLH_DSA_SHA2_192F NID_SLH_DSA_SHA2_192f -# define EVP_PKEY_SLH_DSA_SHA2_256S NID_SLH_DSA_SHA2_256s -# define EVP_PKEY_SLH_DSA_SHA2_256F NID_SLH_DSA_SHA2_256f -# define EVP_PKEY_SLH_DSA_SHAKE_128S NID_SLH_DSA_SHAKE_128s -# define EVP_PKEY_SLH_DSA_SHAKE_128F NID_SLH_DSA_SHAKE_128f -# define EVP_PKEY_SLH_DSA_SHAKE_192S NID_SLH_DSA_SHAKE_192s -# define EVP_PKEY_SLH_DSA_SHAKE_192F NID_SLH_DSA_SHAKE_192f -# define EVP_PKEY_SLH_DSA_SHAKE_256S NID_SLH_DSA_SHAKE_256s -# define EVP_PKEY_SLH_DSA_SHAKE_256F NID_SLH_DSA_SHAKE_256f - -/* Special indicator that the object is uniquely provider side */ -# define EVP_PKEY_KEYMGMT -1 - -/* Easy to use macros for EVP_PKEY related selections */ -# define EVP_PKEY_KEY_PARAMETERS \ - ( OSSL_KEYMGMT_SELECT_ALL_PARAMETERS ) -# define EVP_PKEY_PRIVATE_KEY \ - ( EVP_PKEY_KEY_PARAMETERS | OSSL_KEYMGMT_SELECT_PRIVATE_KEY ) -# define EVP_PKEY_PUBLIC_KEY \ - ( EVP_PKEY_KEY_PARAMETERS | OSSL_KEYMGMT_SELECT_PUBLIC_KEY ) -# define EVP_PKEY_KEYPAIR \ - ( EVP_PKEY_PUBLIC_KEY | OSSL_KEYMGMT_SELECT_PRIVATE_KEY ) - -#ifdef __cplusplus -extern "C" { -#endif - -int EVP_set_default_properties(OSSL_LIB_CTX *libctx, const char *propq); -char *EVP_get1_default_properties(OSSL_LIB_CTX *libctx); -int EVP_default_properties_is_fips_enabled(OSSL_LIB_CTX *libctx); -int EVP_default_properties_enable_fips(OSSL_LIB_CTX *libctx, int enable); - -# define EVP_PKEY_MO_SIGN 0x0001 -# define EVP_PKEY_MO_VERIFY 0x0002 -# define EVP_PKEY_MO_ENCRYPT 0x0004 -# define EVP_PKEY_MO_DECRYPT 0x0008 - -# ifndef EVP_MD -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 EVP_MD *EVP_MD_meth_new(int md_type, int pkey_type); -OSSL_DEPRECATEDIN_3_0 EVP_MD *EVP_MD_meth_dup(const EVP_MD *md); -OSSL_DEPRECATEDIN_3_0 void EVP_MD_meth_free(EVP_MD *md); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_input_blocksize(EVP_MD *md, int blocksize); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_result_size(EVP_MD *md, int resultsize); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_app_datasize(EVP_MD *md, int datasize); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_flags(EVP_MD *md, unsigned long flags); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_init(EVP_MD *md, int (*init)(EVP_MD_CTX *ctx)); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_update(EVP_MD *md, int (*update)(EVP_MD_CTX *ctx, - const void *data, - size_t count)); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_final(EVP_MD *md, int (*final)(EVP_MD_CTX *ctx, - unsigned char *md)); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_copy(EVP_MD *md, int (*copy)(EVP_MD_CTX *to, - const EVP_MD_CTX *from)); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_cleanup(EVP_MD *md, int (*cleanup)(EVP_MD_CTX *ctx)); -OSSL_DEPRECATEDIN_3_0 -int EVP_MD_meth_set_ctrl(EVP_MD *md, int (*ctrl)(EVP_MD_CTX *ctx, int cmd, - int p1, void *p2)); -OSSL_DEPRECATEDIN_3_0 int EVP_MD_meth_get_input_blocksize(const EVP_MD *md); -OSSL_DEPRECATEDIN_3_0 int EVP_MD_meth_get_result_size(const EVP_MD *md); -OSSL_DEPRECATEDIN_3_0 int EVP_MD_meth_get_app_datasize(const EVP_MD *md); -OSSL_DEPRECATEDIN_3_0 unsigned long EVP_MD_meth_get_flags(const EVP_MD *md); -OSSL_DEPRECATEDIN_3_0 -int (*EVP_MD_meth_get_init(const EVP_MD *md))(EVP_MD_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 -int (*EVP_MD_meth_get_update(const EVP_MD *md))(EVP_MD_CTX *ctx, - const void *data, size_t count); -OSSL_DEPRECATEDIN_3_0 -int (*EVP_MD_meth_get_final(const EVP_MD *md))(EVP_MD_CTX *ctx, - unsigned char *md); -OSSL_DEPRECATEDIN_3_0 -int (*EVP_MD_meth_get_copy(const EVP_MD *md))(EVP_MD_CTX *to, - const EVP_MD_CTX *from); -OSSL_DEPRECATEDIN_3_0 -int (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 -int (*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd, - int p1, void *p2); -# endif -/* digest can only handle a single block */ -# define EVP_MD_FLAG_ONESHOT 0x0001 - -/* digest is extensible-output function, XOF */ -# define EVP_MD_FLAG_XOF 0x0002 - -/* DigestAlgorithmIdentifier flags... */ - -# define EVP_MD_FLAG_DIGALGID_MASK 0x0018 - -/* NULL or absent parameter accepted. Use NULL */ - -# define EVP_MD_FLAG_DIGALGID_NULL 0x0000 - -/* NULL or absent parameter accepted. Use NULL for PKCS#1 otherwise absent */ - -# define EVP_MD_FLAG_DIGALGID_ABSENT 0x0008 - -/* Custom handling via ctrl */ - -# define EVP_MD_FLAG_DIGALGID_CUSTOM 0x0018 - -/* Note if suitable for use in FIPS mode */ -# define EVP_MD_FLAG_FIPS 0x0400 - -/* Digest ctrls */ - -# define EVP_MD_CTRL_DIGALGID 0x1 -# define EVP_MD_CTRL_MICALG 0x2 -# define EVP_MD_CTRL_XOF_LEN 0x3 -# define EVP_MD_CTRL_TLSTREE 0x4 - -/* Minimum Algorithm specific ctrl value */ - -# define EVP_MD_CTRL_ALG_CTRL 0x1000 - -# endif /* !EVP_MD */ - -/* values for EVP_MD_CTX flags */ - -# define EVP_MD_CTX_FLAG_ONESHOT 0x0001/* digest update will be - * called once only */ -# define EVP_MD_CTX_FLAG_CLEANED 0x0002/* context has already been - * cleaned */ -# define EVP_MD_CTX_FLAG_REUSE 0x0004/* Don't free up ctx->md_data - * in EVP_MD_CTX_reset */ -/* - * FIPS and pad options are ignored in 1.0.0, definitions are here so we - * don't accidentally reuse the values for other purposes. - */ - -/* This flag has no effect from openssl-3.0 onwards */ -# define EVP_MD_CTX_FLAG_NON_FIPS_ALLOW 0x0008 - -/* - * The following PAD options are also currently ignored in 1.0.0, digest - * parameters are handled through EVP_DigestSign*() and EVP_DigestVerify*() - * instead. - */ -# define EVP_MD_CTX_FLAG_PAD_MASK 0xF0/* RSA mode to use */ -# define EVP_MD_CTX_FLAG_PAD_PKCS1 0x00/* PKCS#1 v1.5 mode */ -# define EVP_MD_CTX_FLAG_PAD_X931 0x10/* X9.31 mode */ -# define EVP_MD_CTX_FLAG_PAD_PSS 0x20/* PSS mode */ - -# define EVP_MD_CTX_FLAG_NO_INIT 0x0100/* Don't initialize md_data */ -/* - * Some functions such as EVP_DigestSign only finalise copies of internal - * contexts so additional data can be included after the finalisation call. - * This is inefficient if this functionality is not required: it is disabled - * if the following flag is set. - */ -# define EVP_MD_CTX_FLAG_FINALISE 0x0200 -/* NOTE: 0x0400 and 0x0800 are reserved for internal usage */ - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -EVP_CIPHER *EVP_CIPHER_meth_new(int cipher_type, int block_size, int key_len); -OSSL_DEPRECATEDIN_3_0 -EVP_CIPHER *EVP_CIPHER_meth_dup(const EVP_CIPHER *cipher); -OSSL_DEPRECATEDIN_3_0 -void EVP_CIPHER_meth_free(EVP_CIPHER *cipher); -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_meth_set_iv_length(EVP_CIPHER *cipher, int iv_len); -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_meth_set_flags(EVP_CIPHER *cipher, unsigned long flags); -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_meth_set_impl_ctx_size(EVP_CIPHER *cipher, int ctx_size); -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_meth_set_init(EVP_CIPHER *cipher, - int (*init) (EVP_CIPHER_CTX *ctx, - const unsigned char *key, - const unsigned char *iv, - int enc)); -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_meth_set_do_cipher(EVP_CIPHER *cipher, - int (*do_cipher) (EVP_CIPHER_CTX *ctx, - unsigned char *out, - const unsigned char *in, - size_t inl)); -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_meth_set_cleanup(EVP_CIPHER *cipher, - int (*cleanup) (EVP_CIPHER_CTX *)); -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_meth_set_set_asn1_params(EVP_CIPHER *cipher, - int (*set_asn1_parameters) (EVP_CIPHER_CTX *, - ASN1_TYPE *)); -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_meth_set_get_asn1_params(EVP_CIPHER *cipher, - int (*get_asn1_parameters) (EVP_CIPHER_CTX *, - ASN1_TYPE *)); -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_meth_set_ctrl(EVP_CIPHER *cipher, - int (*ctrl) (EVP_CIPHER_CTX *, int type, - int arg, void *ptr)); -OSSL_DEPRECATEDIN_3_0 int -(*EVP_CIPHER_meth_get_init(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx, - const unsigned char *key, - const unsigned char *iv, - int enc); -OSSL_DEPRECATEDIN_3_0 int -(*EVP_CIPHER_meth_get_do_cipher(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx, - unsigned char *out, - const unsigned char *in, - size_t inl); -OSSL_DEPRECATEDIN_3_0 int -(*EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *); -OSSL_DEPRECATEDIN_3_0 int -(*EVP_CIPHER_meth_get_set_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, - ASN1_TYPE *); -OSSL_DEPRECATEDIN_3_0 int -(*EVP_CIPHER_meth_get_get_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, - ASN1_TYPE *); -OSSL_DEPRECATEDIN_3_0 int -(*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, int type, - int arg, void *ptr); -# endif - -/* Values for cipher flags */ - -/* Modes for ciphers */ - -# define EVP_CIPH_STREAM_CIPHER 0x0 -# define EVP_CIPH_ECB_MODE 0x1 -# define EVP_CIPH_CBC_MODE 0x2 -# define EVP_CIPH_CFB_MODE 0x3 -# define EVP_CIPH_OFB_MODE 0x4 -# define EVP_CIPH_CTR_MODE 0x5 -# define EVP_CIPH_GCM_MODE 0x6 -# define EVP_CIPH_CCM_MODE 0x7 -# define EVP_CIPH_XTS_MODE 0x10001 -# define EVP_CIPH_WRAP_MODE 0x10002 -# define EVP_CIPH_OCB_MODE 0x10003 -# define EVP_CIPH_SIV_MODE 0x10004 -# define EVP_CIPH_GCM_SIV_MODE 0x10005 -# define EVP_CIPH_MODE 0xF0007 -/* Set if variable length cipher */ -# define EVP_CIPH_VARIABLE_LENGTH 0x8 -/* Set if the iv handling should be done by the cipher itself */ -# define EVP_CIPH_CUSTOM_IV 0x10 -/* Set if the cipher's init() function should be called if key is NULL */ -# define EVP_CIPH_ALWAYS_CALL_INIT 0x20 -/* Call ctrl() to init cipher parameters */ -# define EVP_CIPH_CTRL_INIT 0x40 -/* Don't use standard key length function */ -# define EVP_CIPH_CUSTOM_KEY_LENGTH 0x80 -/* Don't use standard block padding */ -# define EVP_CIPH_NO_PADDING 0x100 -/* cipher handles random key generation */ -# define EVP_CIPH_RAND_KEY 0x200 -/* cipher has its own additional copying logic */ -# define EVP_CIPH_CUSTOM_COPY 0x400 -/* Don't use standard iv length function */ -# define EVP_CIPH_CUSTOM_IV_LENGTH 0x800 -/* Legacy and no longer relevant: Allow use default ASN1 get/set iv */ -# define EVP_CIPH_FLAG_DEFAULT_ASN1 0 -/* Free: 0x1000 */ -/* Buffer length in bits not bytes: CFB1 mode only */ -# define EVP_CIPH_FLAG_LENGTH_BITS 0x2000 -/* Deprecated FIPS flag: was 0x4000 */ -# define EVP_CIPH_FLAG_FIPS 0 -/* Deprecated FIPS flag: was 0x8000 */ -# define EVP_CIPH_FLAG_NON_FIPS_ALLOW 0 - -/* - * Cipher handles any and all padding logic as well as finalisation. - */ -# define EVP_CIPH_FLAG_CTS 0x4000 -# define EVP_CIPH_FLAG_CUSTOM_CIPHER 0x100000 -# define EVP_CIPH_FLAG_AEAD_CIPHER 0x200000 -# define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0x400000 -/* Cipher can handle pipeline operations */ -# define EVP_CIPH_FLAG_PIPELINE 0X800000 -/* For provider implementations that handle ASN1 get/set param themselves */ -# define EVP_CIPH_FLAG_CUSTOM_ASN1 0x1000000 -/* For ciphers generating unprotected CMS attributes */ -# define EVP_CIPH_FLAG_CIPHER_WITH_MAC 0x2000000 -/* For supplementary wrap cipher support */ -# define EVP_CIPH_FLAG_GET_WRAP_CIPHER 0x4000000 -# define EVP_CIPH_FLAG_INVERSE_CIPHER 0x8000000 -# define EVP_CIPH_FLAG_ENC_THEN_MAC 0x10000000 - -/* - * Cipher context flag to indicate we can handle wrap mode: if allowed in - * older applications it could overflow buffers. - */ - -# define EVP_CIPHER_CTX_FLAG_WRAP_ALLOW 0x1 - -/* ctrl() values */ - -# define EVP_CTRL_INIT 0x0 -# define EVP_CTRL_SET_KEY_LENGTH 0x1 -# define EVP_CTRL_GET_RC2_KEY_BITS 0x2 -# define EVP_CTRL_SET_RC2_KEY_BITS 0x3 -# define EVP_CTRL_GET_RC5_ROUNDS 0x4 -# define EVP_CTRL_SET_RC5_ROUNDS 0x5 -# define EVP_CTRL_RAND_KEY 0x6 -# define EVP_CTRL_PBE_PRF_NID 0x7 -# define EVP_CTRL_COPY 0x8 -# define EVP_CTRL_AEAD_SET_IVLEN 0x9 -# define EVP_CTRL_AEAD_GET_TAG 0x10 -# define EVP_CTRL_AEAD_SET_TAG 0x11 -# define EVP_CTRL_AEAD_SET_IV_FIXED 0x12 -# define EVP_CTRL_GCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN -# define EVP_CTRL_GCM_GET_TAG EVP_CTRL_AEAD_GET_TAG -# define EVP_CTRL_GCM_SET_TAG EVP_CTRL_AEAD_SET_TAG -# define EVP_CTRL_GCM_SET_IV_FIXED EVP_CTRL_AEAD_SET_IV_FIXED -# define EVP_CTRL_GCM_IV_GEN 0x13 -# define EVP_CTRL_CCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN -# define EVP_CTRL_CCM_GET_TAG EVP_CTRL_AEAD_GET_TAG -# define EVP_CTRL_CCM_SET_TAG EVP_CTRL_AEAD_SET_TAG -# define EVP_CTRL_CCM_SET_IV_FIXED EVP_CTRL_AEAD_SET_IV_FIXED -# define EVP_CTRL_CCM_SET_L 0x14 -# define EVP_CTRL_CCM_SET_MSGLEN 0x15 -/* - * AEAD cipher deduces payload length and returns number of bytes required to - * store MAC and eventual padding. Subsequent call to EVP_Cipher even - * appends/verifies MAC. - */ -# define EVP_CTRL_AEAD_TLS1_AAD 0x16 -/* Used by composite AEAD ciphers, no-op in GCM, CCM... */ -# define EVP_CTRL_AEAD_SET_MAC_KEY 0x17 -/* Set the GCM invocation field, decrypt only */ -# define EVP_CTRL_GCM_SET_IV_INV 0x18 - -# define EVP_CTRL_TLS1_1_MULTIBLOCK_AAD 0x19 -# define EVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPT 0x1a -# define EVP_CTRL_TLS1_1_MULTIBLOCK_DECRYPT 0x1b -# define EVP_CTRL_TLS1_1_MULTIBLOCK_MAX_BUFSIZE 0x1c - -# define EVP_CTRL_SSL3_MASTER_SECRET 0x1d - -/* EVP_CTRL_SET_SBOX takes the char * specifying S-boxes */ -# define EVP_CTRL_SET_SBOX 0x1e -/* - * EVP_CTRL_SBOX_USED takes a 'size_t' and 'char *', pointing at a - * pre-allocated buffer with specified size - */ -# define EVP_CTRL_SBOX_USED 0x1f -/* EVP_CTRL_KEY_MESH takes 'size_t' number of bytes to mesh the key after, - * 0 switches meshing off - */ -# define EVP_CTRL_KEY_MESH 0x20 -/* EVP_CTRL_BLOCK_PADDING_MODE takes the padding mode */ -# define EVP_CTRL_BLOCK_PADDING_MODE 0x21 - -/* Set the output buffers to use for a pipelined operation */ -# define EVP_CTRL_SET_PIPELINE_OUTPUT_BUFS 0x22 -/* Set the input buffers to use for a pipelined operation */ -# define EVP_CTRL_SET_PIPELINE_INPUT_BUFS 0x23 -/* Set the input buffer lengths to use for a pipelined operation */ -# define EVP_CTRL_SET_PIPELINE_INPUT_LENS 0x24 -/* Get the IV length used by the cipher */ -# define EVP_CTRL_GET_IVLEN 0x25 -/* 0x26 is unused */ -/* Tell the cipher it's doing a speed test (SIV disallows multiple ops) */ -# define EVP_CTRL_SET_SPEED 0x27 -/* Get the unprotectedAttrs from cipher ctx */ -# define EVP_CTRL_PROCESS_UNPROTECTED 0x28 -/* Get the supplementary wrap cipher */ -#define EVP_CTRL_GET_WRAP_CIPHER 0x29 -/* TLSTREE key diversification */ -#define EVP_CTRL_TLSTREE 0x2A - -/* Padding modes */ -#define EVP_PADDING_PKCS7 1 -#define EVP_PADDING_ISO7816_4 2 -#define EVP_PADDING_ANSI923 3 -#define EVP_PADDING_ISO10126 4 -#define EVP_PADDING_ZERO 5 - -/* RFC 5246 defines additional data to be 13 bytes in length */ -# define EVP_AEAD_TLS1_AAD_LEN 13 - -typedef struct { - unsigned char *out; - const unsigned char *inp; - size_t len; - unsigned int interleave; -} EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM; - -/* GCM TLS constants */ -/* Length of fixed part of IV derived from PRF */ -# define EVP_GCM_TLS_FIXED_IV_LEN 4 -/* Length of explicit part of IV part of TLS records */ -# define EVP_GCM_TLS_EXPLICIT_IV_LEN 8 -/* Length of tag for TLS */ -# define EVP_GCM_TLS_TAG_LEN 16 - -/* CCM TLS constants */ -/* Length of fixed part of IV derived from PRF */ -# define EVP_CCM_TLS_FIXED_IV_LEN 4 -/* Length of explicit part of IV part of TLS records */ -# define EVP_CCM_TLS_EXPLICIT_IV_LEN 8 -/* Total length of CCM IV length for TLS */ -# define EVP_CCM_TLS_IV_LEN 12 -/* Length of tag for TLS */ -# define EVP_CCM_TLS_TAG_LEN 16 -/* Length of CCM8 tag for TLS */ -# define EVP_CCM8_TLS_TAG_LEN 8 - -/* Length of tag for TLS */ -# define EVP_CHACHAPOLY_TLS_TAG_LEN 16 - -typedef struct evp_cipher_info_st { - const EVP_CIPHER *cipher; - unsigned char iv[EVP_MAX_IV_LENGTH]; -} EVP_CIPHER_INFO; - - -/* Password based encryption function */ -typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass, - int passlen, ASN1_TYPE *param, - const EVP_CIPHER *cipher, const EVP_MD *md, - int en_de); - -typedef int (EVP_PBE_KEYGEN_EX) (EVP_CIPHER_CTX *ctx, const char *pass, - int passlen, ASN1_TYPE *param, - const EVP_CIPHER *cipher, const EVP_MD *md, - int en_de, OSSL_LIB_CTX *libctx, const char *propq); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define EVP_PKEY_assign_RSA(pkey, rsa) EVP_PKEY_assign((pkey), EVP_PKEY_RSA, \ - (rsa)) -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_6 -# ifndef OPENSSL_NO_DSA -# define EVP_PKEY_assign_DSA(pkey, dsa) EVP_PKEY_assign((pkey), EVP_PKEY_DSA, \ - (dsa)) -# endif -# endif - -# if !defined(OPENSSL_NO_DH) && !defined(OPENSSL_NO_DEPRECATED_3_0) -# define EVP_PKEY_assign_DH(pkey, dh) EVP_PKEY_assign((pkey), EVP_PKEY_DH, (dh)) -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_EC -# define EVP_PKEY_assign_EC_KEY(pkey, eckey) EVP_PKEY_assign((pkey), \ - EVP_PKEY_EC, \ - (eckey)) -# endif -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_6 -# ifndef OPENSSL_NO_SIPHASH -# define EVP_PKEY_assign_SIPHASH(pkey, shkey) EVP_PKEY_assign((pkey), \ - EVP_PKEY_SIPHASH, \ - (shkey)) -# endif - -# ifndef OPENSSL_NO_POLY1305 -# define EVP_PKEY_assign_POLY1305(pkey, polykey) EVP_PKEY_assign((pkey), \ - EVP_PKEY_POLY1305, \ - (polykey)) -# endif -# endif - -/* Add some extra combinations */ -# define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a)) -# define EVP_get_digestbyobj(a) EVP_get_digestbynid(OBJ_obj2nid(a)) -# define EVP_get_cipherbynid(a) EVP_get_cipherbyname(OBJ_nid2sn(a)) -# define EVP_get_cipherbyobj(a) EVP_get_cipherbynid(OBJ_obj2nid(a)) - -int EVP_MD_get_type(const EVP_MD *md); -# define EVP_MD_type EVP_MD_get_type -# define EVP_MD_nid EVP_MD_get_type -const char *EVP_MD_get0_name(const EVP_MD *md); -# define EVP_MD_name EVP_MD_get0_name -const char *EVP_MD_get0_description(const EVP_MD *md); -int EVP_MD_is_a(const EVP_MD *md, const char *name); -int EVP_MD_names_do_all(const EVP_MD *md, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PROVIDER *EVP_MD_get0_provider(const EVP_MD *md); -int EVP_MD_get_pkey_type(const EVP_MD *md); -# define EVP_MD_pkey_type EVP_MD_get_pkey_type -int EVP_MD_get_size(const EVP_MD *md); -# define EVP_MD_size EVP_MD_get_size -int EVP_MD_get_block_size(const EVP_MD *md); -# define EVP_MD_block_size EVP_MD_get_block_size -unsigned long EVP_MD_get_flags(const EVP_MD *md); -# define EVP_MD_flags EVP_MD_get_flags -int EVP_MD_xof(const EVP_MD *md); - -const EVP_MD *EVP_MD_CTX_get0_md(const EVP_MD_CTX *ctx); -EVP_MD *EVP_MD_CTX_get1_md(EVP_MD_CTX *ctx); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 -int (*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx, - const void *data, size_t count); -OSSL_DEPRECATEDIN_3_0 -void EVP_MD_CTX_set_update_fn(EVP_MD_CTX *ctx, - int (*update) (EVP_MD_CTX *ctx, - const void *data, size_t count)); -# endif -int EVP_MD_CTX_get_size_ex(const EVP_MD_CTX *ctx); - -# define EVP_MD_CTX_get0_name(e) EVP_MD_get0_name(EVP_MD_CTX_get0_md(e)) -# define EVP_MD_CTX_get_size(e) EVP_MD_CTX_get_size_ex(e) -# define EVP_MD_CTX_size EVP_MD_CTX_get_size_ex -# define EVP_MD_CTX_get_block_size(e) EVP_MD_get_block_size(EVP_MD_CTX_get0_md(e)) -# define EVP_MD_CTX_block_size EVP_MD_CTX_get_block_size -# define EVP_MD_CTX_get_type(e) EVP_MD_get_type(EVP_MD_CTX_get0_md(e)) -# define EVP_MD_CTX_type EVP_MD_CTX_get_type -EVP_PKEY_CTX *EVP_MD_CTX_get_pkey_ctx(const EVP_MD_CTX *ctx); -# define EVP_MD_CTX_pkey_ctx EVP_MD_CTX_get_pkey_ctx -void EVP_MD_CTX_set_pkey_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pctx); -void *EVP_MD_CTX_get0_md_data(const EVP_MD_CTX *ctx); -# define EVP_MD_CTX_md_data EVP_MD_CTX_get0_md_data - -int EVP_CIPHER_get_nid(const EVP_CIPHER *cipher); -# define EVP_CIPHER_nid EVP_CIPHER_get_nid -const char *EVP_CIPHER_get0_name(const EVP_CIPHER *cipher); -# define EVP_CIPHER_name EVP_CIPHER_get0_name -const char *EVP_CIPHER_get0_description(const EVP_CIPHER *cipher); -int EVP_CIPHER_is_a(const EVP_CIPHER *cipher, const char *name); -int EVP_CIPHER_names_do_all(const EVP_CIPHER *cipher, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PROVIDER *EVP_CIPHER_get0_provider(const EVP_CIPHER *cipher); -int EVP_CIPHER_get_block_size(const EVP_CIPHER *cipher); -# define EVP_CIPHER_block_size EVP_CIPHER_get_block_size -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int EVP_CIPHER_impl_ctx_size(const EVP_CIPHER *cipher); -# endif -int EVP_CIPHER_get_key_length(const EVP_CIPHER *cipher); -# define EVP_CIPHER_key_length EVP_CIPHER_get_key_length -int EVP_CIPHER_get_iv_length(const EVP_CIPHER *cipher); -# define EVP_CIPHER_iv_length EVP_CIPHER_get_iv_length -unsigned long EVP_CIPHER_get_flags(const EVP_CIPHER *cipher); -# define EVP_CIPHER_flags EVP_CIPHER_get_flags -int EVP_CIPHER_get_mode(const EVP_CIPHER *cipher); -# define EVP_CIPHER_mode EVP_CIPHER_get_mode -int EVP_CIPHER_get_type(const EVP_CIPHER *cipher); -# define EVP_CIPHER_type EVP_CIPHER_get_type -EVP_CIPHER *EVP_CIPHER_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, - const char *properties); -int EVP_CIPHER_can_pipeline(const EVP_CIPHER *cipher, int enc); -int EVP_CIPHER_up_ref(EVP_CIPHER *cipher); -void EVP_CIPHER_free(EVP_CIPHER *cipher); - -const EVP_CIPHER *EVP_CIPHER_CTX_get0_cipher(const EVP_CIPHER_CTX *ctx); -EVP_CIPHER *EVP_CIPHER_CTX_get1_cipher(EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_is_encrypting(const EVP_CIPHER_CTX *ctx); -# define EVP_CIPHER_CTX_encrypting EVP_CIPHER_CTX_is_encrypting -int EVP_CIPHER_CTX_get_nid(const EVP_CIPHER_CTX *ctx); -# define EVP_CIPHER_CTX_nid EVP_CIPHER_CTX_get_nid -int EVP_CIPHER_CTX_get_block_size(const EVP_CIPHER_CTX *ctx); -# define EVP_CIPHER_CTX_block_size EVP_CIPHER_CTX_get_block_size -int EVP_CIPHER_CTX_get_key_length(const EVP_CIPHER_CTX *ctx); -# define EVP_CIPHER_CTX_key_length EVP_CIPHER_CTX_get_key_length -int EVP_CIPHER_CTX_get_iv_length(const EVP_CIPHER_CTX *ctx); -# define EVP_CIPHER_CTX_iv_length EVP_CIPHER_CTX_get_iv_length -int EVP_CIPHER_CTX_get_tag_length(const EVP_CIPHER_CTX *ctx); -# define EVP_CIPHER_CTX_tag_length EVP_CIPHER_CTX_get_tag_length -# ifndef OPENSSL_NO_DEPRECATED_3_0 -const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 const unsigned char *EVP_CIPHER_CTX_iv(const EVP_CIPHER_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 const unsigned char *EVP_CIPHER_CTX_original_iv(const EVP_CIPHER_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 unsigned char *EVP_CIPHER_CTX_iv_noconst(EVP_CIPHER_CTX *ctx); -# endif -int EVP_CIPHER_CTX_get_updated_iv(EVP_CIPHER_CTX *ctx, void *buf, size_t len); -int EVP_CIPHER_CTX_get_original_iv(EVP_CIPHER_CTX *ctx, void *buf, size_t len); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -unsigned char *EVP_CIPHER_CTX_buf_noconst(EVP_CIPHER_CTX *ctx); -# endif -int EVP_CIPHER_CTX_get_num(const EVP_CIPHER_CTX *ctx); -# define EVP_CIPHER_CTX_num EVP_CIPHER_CTX_get_num -int EVP_CIPHER_CTX_set_num(EVP_CIPHER_CTX *ctx, int num); -EVP_CIPHER_CTX *EVP_CIPHER_CTX_dup(const EVP_CIPHER_CTX *in); -int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in); -void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx); -void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data); -void *EVP_CIPHER_CTX_get_cipher_data(const EVP_CIPHER_CTX *ctx); -void *EVP_CIPHER_CTX_set_cipher_data(EVP_CIPHER_CTX *ctx, void *cipher_data); -# define EVP_CIPHER_CTX_get0_name(c) EVP_CIPHER_get0_name(EVP_CIPHER_CTX_get0_cipher(c)) -# define EVP_CIPHER_CTX_get_type(c) EVP_CIPHER_get_type(EVP_CIPHER_CTX_get0_cipher(c)) -# define EVP_CIPHER_CTX_type EVP_CIPHER_CTX_get_type -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define EVP_CIPHER_CTX_flags(c) EVP_CIPHER_get_flags(EVP_CIPHER_CTX_get0_cipher(c)) -# endif -# define EVP_CIPHER_CTX_get_mode(c) EVP_CIPHER_get_mode(EVP_CIPHER_CTX_get0_cipher(c)) -# define EVP_CIPHER_CTX_mode EVP_CIPHER_CTX_get_mode - -# define EVP_ENCODE_LENGTH(l) ((((l)+2)/3*4)+((l)/48+1)*2+80) -# define EVP_DECODE_LENGTH(l) (((l)+3)/4*3+80) - -# define EVP_SignInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) -# define EVP_SignInit(a,b) EVP_DigestInit(a,b) -# define EVP_SignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -# define EVP_VerifyInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) -# define EVP_VerifyInit(a,b) EVP_DigestInit(a,b) -# define EVP_VerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -# define EVP_OpenUpdate(a,b,c,d,e) EVP_DecryptUpdate(a,b,c,d,e) -# define EVP_SealUpdate(a,b,c,d,e) EVP_EncryptUpdate(a,b,c,d,e) - -# ifdef CONST_STRICT -void BIO_set_md(BIO *, const EVP_MD *md); -# else -# define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,0,(void *)(md)) -# endif -# define BIO_get_md(b,mdp) BIO_ctrl(b,BIO_C_GET_MD,0,(mdp)) -# define BIO_get_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_GET_MD_CTX,0,(mdcp)) -# define BIO_set_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_SET_MD_CTX,0,(mdcp)) -# define BIO_get_cipher_status(b) BIO_ctrl(b,BIO_C_GET_CIPHER_STATUS,0,NULL) -# define BIO_get_cipher_ctx(b,c_pp) BIO_ctrl(b,BIO_C_GET_CIPHER_CTX,0,(c_pp)) - -__owur int EVP_Cipher(EVP_CIPHER_CTX *c, - unsigned char *out, - const unsigned char *in, unsigned int inl); - -# define EVP_add_cipher_alias(n,alias) \ - OBJ_NAME_add((alias),OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS,(n)) -# define EVP_add_digest_alias(n,alias) \ - OBJ_NAME_add((alias),OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS,(n)) -# define EVP_delete_cipher_alias(alias) \ - OBJ_NAME_remove(alias,OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS); -# define EVP_delete_digest_alias(alias) \ - OBJ_NAME_remove(alias,OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS); - -int EVP_MD_get_params(const EVP_MD *digest, OSSL_PARAM params[]); -int EVP_MD_CTX_set_params(EVP_MD_CTX *ctx, const OSSL_PARAM params[]); -int EVP_MD_CTX_get_params(EVP_MD_CTX *ctx, OSSL_PARAM params[]); -const OSSL_PARAM *EVP_MD_gettable_params(const EVP_MD *digest); -const OSSL_PARAM *EVP_MD_settable_ctx_params(const EVP_MD *md); -const OSSL_PARAM *EVP_MD_gettable_ctx_params(const EVP_MD *md); -const OSSL_PARAM *EVP_MD_CTX_settable_params(EVP_MD_CTX *ctx); -const OSSL_PARAM *EVP_MD_CTX_gettable_params(EVP_MD_CTX *ctx); -int EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void *p2); -EVP_MD_CTX *EVP_MD_CTX_new(void); -int EVP_MD_CTX_reset(EVP_MD_CTX *ctx); -void EVP_MD_CTX_free(EVP_MD_CTX *ctx); -# define EVP_MD_CTX_create() EVP_MD_CTX_new() -# define EVP_MD_CTX_init(ctx) EVP_MD_CTX_reset((ctx)) -# define EVP_MD_CTX_destroy(ctx) EVP_MD_CTX_free((ctx)) -__owur EVP_MD_CTX *EVP_MD_CTX_dup(const EVP_MD_CTX *in); -__owur int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in); -void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags); -void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags); -int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags); -__owur int EVP_DigestInit_ex2(EVP_MD_CTX *ctx, const EVP_MD *type, - const OSSL_PARAM params[]); -__owur int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, - ENGINE *impl); -__owur int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, - size_t cnt); -__owur int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, - unsigned int *s); -__owur int EVP_Digest(const void *data, size_t count, - unsigned char *md, unsigned int *size, - const EVP_MD *type, ENGINE *impl); -__owur int EVP_Q_digest(OSSL_LIB_CTX *libctx, const char *name, - const char *propq, const void *data, size_t datalen, - unsigned char *md, size_t *mdlen); - -__owur int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in); -__owur int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); -__owur int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, - unsigned int *s); -__owur int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *out, - size_t outlen); -__owur int EVP_DigestSqueeze(EVP_MD_CTX *ctx, unsigned char *out, - size_t outlen); - -__owur EVP_MD *EVP_MD_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, - const char *properties); - -int EVP_MD_up_ref(EVP_MD *md); -void EVP_MD_free(EVP_MD *md); - -int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); -int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, - const char *prompt, int verify); -void EVP_set_pw_prompt(const char *prompt); -char *EVP_get_pw_prompt(void); - -__owur int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, - const unsigned char *salt, - const unsigned char *data, int datal, int count, - unsigned char *key, unsigned char *iv); - -void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags); -void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags); -int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags); - -__owur int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv); -__owur int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, ENGINE *impl, - const unsigned char *key, - const unsigned char *iv); -__owur int EVP_EncryptInit_ex2(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, - const unsigned char *iv, - const OSSL_PARAM params[]); -__owur int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl, const unsigned char *in, int inl); -__owur int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl); -__owur int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl); - -__owur int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv); -__owur int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, ENGINE *impl, - const unsigned char *key, - const unsigned char *iv); -__owur int EVP_DecryptInit_ex2(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, - const unsigned char *iv, - const OSSL_PARAM params[]); -__owur int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl, const unsigned char *in, int inl); -__owur int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); -__owur int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); - -__owur int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv, - int enc); -__owur int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, ENGINE *impl, - const unsigned char *key, - const unsigned char *iv, int enc); -__owur int EVP_CipherInit_SKEY(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - EVP_SKEY *skey, const unsigned char *iv, size_t iv_len, - int enc, const OSSL_PARAM params[]); -__owur int EVP_CipherInit_ex2(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv, - int enc, const OSSL_PARAM params[]); -__owur int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl, const unsigned char *in, int inl); -__owur int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); -__owur int EVP_CipherPipelineEncryptInit(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, - const unsigned char *key, size_t keylen, - size_t numpipes, - const unsigned char **iv, size_t ivlen); -__owur int EVP_CipherPipelineDecryptInit(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, - const unsigned char *key, size_t keylen, - size_t numpipes, - const unsigned char **iv, size_t ivlen); -__owur int EVP_CipherPipelineUpdate(EVP_CIPHER_CTX *ctx, - unsigned char **out, size_t *outl, - const size_t *outsize, - const unsigned char **in, const size_t *inl); -__owur int EVP_CipherPipelineFinal(EVP_CIPHER_CTX *ctx, - unsigned char **outm, size_t *outl, - const size_t *outsize); -__owur int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); - -__owur int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, - EVP_PKEY *pkey); -__owur int EVP_SignFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, - EVP_PKEY *pkey, OSSL_LIB_CTX *libctx, - const char *propq); - -__owur int EVP_DigestSign(EVP_MD_CTX *ctx, unsigned char *sigret, - size_t *siglen, const unsigned char *tbs, - size_t tbslen); - -__owur int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, - unsigned int siglen, EVP_PKEY *pkey); -__owur int EVP_VerifyFinal_ex(EVP_MD_CTX *ctx, const unsigned char *sigbuf, - unsigned int siglen, EVP_PKEY *pkey, - OSSL_LIB_CTX *libctx, const char *propq); - -__owur int EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret, - size_t siglen, const unsigned char *tbs, - size_t tbslen); - -__owur int EVP_DigestSignInit_ex(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, - const char *mdname, OSSL_LIB_CTX *libctx, - const char *props, EVP_PKEY *pkey, - const OSSL_PARAM params[]); -__owur int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, - const EVP_MD *type, ENGINE *e, - EVP_PKEY *pkey); -__owur int EVP_DigestSignUpdate(EVP_MD_CTX *ctx, const void *data, size_t dsize); -__owur int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, - size_t *siglen); - -__owur int EVP_DigestVerifyInit_ex(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, - const char *mdname, OSSL_LIB_CTX *libctx, - const char *props, EVP_PKEY *pkey, - const OSSL_PARAM params[]); -__owur int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, - const EVP_MD *type, ENGINE *e, - EVP_PKEY *pkey); -int EVP_DigestVerifyUpdate(EVP_MD_CTX *ctx, const void *data, size_t dsize); -__owur int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, - size_t siglen); - -__owur int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, - const unsigned char *ek, int ekl, - const unsigned char *iv, EVP_PKEY *priv); -__owur int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); - -__owur int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, - unsigned char **ek, int *ekl, unsigned char *iv, - EVP_PKEY **pubk, int npubk); -__owur int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); - -EVP_ENCODE_CTX *EVP_ENCODE_CTX_new(void); -void EVP_ENCODE_CTX_free(EVP_ENCODE_CTX *ctx); -int EVP_ENCODE_CTX_copy(EVP_ENCODE_CTX *dctx, const EVP_ENCODE_CTX *sctx); -int EVP_ENCODE_CTX_num(EVP_ENCODE_CTX *ctx); -void EVP_EncodeInit(EVP_ENCODE_CTX *ctx); -int EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); -void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl); -int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n); - -void EVP_DecodeInit(EVP_ENCODE_CTX *ctx); -int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); -int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned - char *out, int *outl); -int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define EVP_CIPHER_CTX_init(c) EVP_CIPHER_CTX_reset(c) -# define EVP_CIPHER_CTX_cleanup(c) EVP_CIPHER_CTX_reset(c) -# endif -EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); -int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c); -void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *c); -int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen); -int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad); -int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); -int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key); -int EVP_CIPHER_get_params(EVP_CIPHER *cipher, OSSL_PARAM params[]); -int EVP_CIPHER_CTX_set_params(EVP_CIPHER_CTX *ctx, const OSSL_PARAM params[]); -int EVP_CIPHER_CTX_get_params(EVP_CIPHER_CTX *ctx, OSSL_PARAM params[]); -const OSSL_PARAM *EVP_CIPHER_gettable_params(const EVP_CIPHER *cipher); -const OSSL_PARAM *EVP_CIPHER_settable_ctx_params(const EVP_CIPHER *cipher); -const OSSL_PARAM *EVP_CIPHER_gettable_ctx_params(const EVP_CIPHER *cipher); -const OSSL_PARAM *EVP_CIPHER_CTX_settable_params(EVP_CIPHER_CTX *ctx); -const OSSL_PARAM *EVP_CIPHER_CTX_gettable_params(EVP_CIPHER_CTX *ctx); - -int EVP_CIPHER_CTX_set_algor_params(EVP_CIPHER_CTX *ctx, const X509_ALGOR *alg); -int EVP_CIPHER_CTX_get_algor_params(EVP_CIPHER_CTX *ctx, X509_ALGOR *alg); -int EVP_CIPHER_CTX_get_algor(EVP_CIPHER_CTX *ctx, X509_ALGOR **alg); - -const BIO_METHOD *BIO_f_md(void); -const BIO_METHOD *BIO_f_base64(void); -const BIO_METHOD *BIO_f_cipher(void); -const BIO_METHOD *BIO_f_reliable(void); -__owur int BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k, - const unsigned char *i, int enc); - -const EVP_MD *EVP_md_null(void); -# ifndef OPENSSL_NO_MD2 -const EVP_MD *EVP_md2(void); -# endif -# ifndef OPENSSL_NO_MD4 -const EVP_MD *EVP_md4(void); -# endif -# ifndef OPENSSL_NO_MD5 -const EVP_MD *EVP_md5(void); -const EVP_MD *EVP_md5_sha1(void); -# endif -# ifndef OPENSSL_NO_BLAKE2 -const EVP_MD *EVP_blake2b512(void); -const EVP_MD *EVP_blake2s256(void); -# endif -const EVP_MD *EVP_sha1(void); -const EVP_MD *EVP_sha224(void); -const EVP_MD *EVP_sha256(void); -const EVP_MD *EVP_sha384(void); -const EVP_MD *EVP_sha512(void); -const EVP_MD *EVP_sha512_224(void); -const EVP_MD *EVP_sha512_256(void); -const EVP_MD *EVP_sha3_224(void); -const EVP_MD *EVP_sha3_256(void); -const EVP_MD *EVP_sha3_384(void); -const EVP_MD *EVP_sha3_512(void); -const EVP_MD *EVP_shake128(void); -const EVP_MD *EVP_shake256(void); - -# ifndef OPENSSL_NO_MDC2 -const EVP_MD *EVP_mdc2(void); -# endif -# ifndef OPENSSL_NO_RMD160 -const EVP_MD *EVP_ripemd160(void); -# endif -# ifndef OPENSSL_NO_WHIRLPOOL -const EVP_MD *EVP_whirlpool(void); -# endif -# ifndef OPENSSL_NO_SM3 -const EVP_MD *EVP_sm3(void); -# endif -const EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */ -# ifndef OPENSSL_NO_DES -const EVP_CIPHER *EVP_des_ecb(void); -const EVP_CIPHER *EVP_des_ede(void); -const EVP_CIPHER *EVP_des_ede3(void); -const EVP_CIPHER *EVP_des_ede_ecb(void); -const EVP_CIPHER *EVP_des_ede3_ecb(void); -const EVP_CIPHER *EVP_des_cfb64(void); -# define EVP_des_cfb EVP_des_cfb64 -const EVP_CIPHER *EVP_des_cfb1(void); -const EVP_CIPHER *EVP_des_cfb8(void); -const EVP_CIPHER *EVP_des_ede_cfb64(void); -# define EVP_des_ede_cfb EVP_des_ede_cfb64 -const EVP_CIPHER *EVP_des_ede3_cfb64(void); -# define EVP_des_ede3_cfb EVP_des_ede3_cfb64 -const EVP_CIPHER *EVP_des_ede3_cfb1(void); -const EVP_CIPHER *EVP_des_ede3_cfb8(void); -const EVP_CIPHER *EVP_des_ofb(void); -const EVP_CIPHER *EVP_des_ede_ofb(void); -const EVP_CIPHER *EVP_des_ede3_ofb(void); -const EVP_CIPHER *EVP_des_cbc(void); -const EVP_CIPHER *EVP_des_ede_cbc(void); -const EVP_CIPHER *EVP_des_ede3_cbc(void); -const EVP_CIPHER *EVP_desx_cbc(void); -const EVP_CIPHER *EVP_des_ede3_wrap(void); -/* - * This should now be supported through the dev_crypto ENGINE. But also, why - * are rc4 and md5 declarations made here inside a "NO_DES" precompiler - * branch? - */ -# endif -# ifndef OPENSSL_NO_RC4 -const EVP_CIPHER *EVP_rc4(void); -const EVP_CIPHER *EVP_rc4_40(void); -# ifndef OPENSSL_NO_MD5 -const EVP_CIPHER *EVP_rc4_hmac_md5(void); -# endif -# endif -# ifndef OPENSSL_NO_IDEA -const EVP_CIPHER *EVP_idea_ecb(void); -const EVP_CIPHER *EVP_idea_cfb64(void); -# define EVP_idea_cfb EVP_idea_cfb64 -const EVP_CIPHER *EVP_idea_ofb(void); -const EVP_CIPHER *EVP_idea_cbc(void); -# endif -# ifndef OPENSSL_NO_RC2 -const EVP_CIPHER *EVP_rc2_ecb(void); -const EVP_CIPHER *EVP_rc2_cbc(void); -const EVP_CIPHER *EVP_rc2_40_cbc(void); -const EVP_CIPHER *EVP_rc2_64_cbc(void); -const EVP_CIPHER *EVP_rc2_cfb64(void); -# define EVP_rc2_cfb EVP_rc2_cfb64 -const EVP_CIPHER *EVP_rc2_ofb(void); -# endif -# ifndef OPENSSL_NO_BF -const EVP_CIPHER *EVP_bf_ecb(void); -const EVP_CIPHER *EVP_bf_cbc(void); -const EVP_CIPHER *EVP_bf_cfb64(void); -# define EVP_bf_cfb EVP_bf_cfb64 -const EVP_CIPHER *EVP_bf_ofb(void); -# endif -# ifndef OPENSSL_NO_CAST -const EVP_CIPHER *EVP_cast5_ecb(void); -const EVP_CIPHER *EVP_cast5_cbc(void); -const EVP_CIPHER *EVP_cast5_cfb64(void); -# define EVP_cast5_cfb EVP_cast5_cfb64 -const EVP_CIPHER *EVP_cast5_ofb(void); -# endif -# ifndef OPENSSL_NO_RC5 -const EVP_CIPHER *EVP_rc5_32_12_16_cbc(void); -const EVP_CIPHER *EVP_rc5_32_12_16_ecb(void); -const EVP_CIPHER *EVP_rc5_32_12_16_cfb64(void); -# define EVP_rc5_32_12_16_cfb EVP_rc5_32_12_16_cfb64 -const EVP_CIPHER *EVP_rc5_32_12_16_ofb(void); -# endif -const EVP_CIPHER *EVP_aes_128_ecb(void); -const EVP_CIPHER *EVP_aes_128_cbc(void); -const EVP_CIPHER *EVP_aes_128_cfb1(void); -const EVP_CIPHER *EVP_aes_128_cfb8(void); -const EVP_CIPHER *EVP_aes_128_cfb128(void); -# define EVP_aes_128_cfb EVP_aes_128_cfb128 -const EVP_CIPHER *EVP_aes_128_ofb(void); -const EVP_CIPHER *EVP_aes_128_ctr(void); -const EVP_CIPHER *EVP_aes_128_ccm(void); -const EVP_CIPHER *EVP_aes_128_gcm(void); -const EVP_CIPHER *EVP_aes_128_xts(void); -const EVP_CIPHER *EVP_aes_128_wrap(void); -const EVP_CIPHER *EVP_aes_128_wrap_pad(void); -# ifndef OPENSSL_NO_OCB -const EVP_CIPHER *EVP_aes_128_ocb(void); -# endif -const EVP_CIPHER *EVP_aes_192_ecb(void); -const EVP_CIPHER *EVP_aes_192_cbc(void); -const EVP_CIPHER *EVP_aes_192_cfb1(void); -const EVP_CIPHER *EVP_aes_192_cfb8(void); -const EVP_CIPHER *EVP_aes_192_cfb128(void); -# define EVP_aes_192_cfb EVP_aes_192_cfb128 -const EVP_CIPHER *EVP_aes_192_ofb(void); -const EVP_CIPHER *EVP_aes_192_ctr(void); -const EVP_CIPHER *EVP_aes_192_ccm(void); -const EVP_CIPHER *EVP_aes_192_gcm(void); -const EVP_CIPHER *EVP_aes_192_wrap(void); -const EVP_CIPHER *EVP_aes_192_wrap_pad(void); -# ifndef OPENSSL_NO_OCB -const EVP_CIPHER *EVP_aes_192_ocb(void); -# endif -const EVP_CIPHER *EVP_aes_256_ecb(void); -const EVP_CIPHER *EVP_aes_256_cbc(void); -const EVP_CIPHER *EVP_aes_256_cfb1(void); -const EVP_CIPHER *EVP_aes_256_cfb8(void); -const EVP_CIPHER *EVP_aes_256_cfb128(void); -# define EVP_aes_256_cfb EVP_aes_256_cfb128 -const EVP_CIPHER *EVP_aes_256_ofb(void); -const EVP_CIPHER *EVP_aes_256_ctr(void); -const EVP_CIPHER *EVP_aes_256_ccm(void); -const EVP_CIPHER *EVP_aes_256_gcm(void); -const EVP_CIPHER *EVP_aes_256_xts(void); -const EVP_CIPHER *EVP_aes_256_wrap(void); -const EVP_CIPHER *EVP_aes_256_wrap_pad(void); -# ifndef OPENSSL_NO_OCB -const EVP_CIPHER *EVP_aes_256_ocb(void); -# endif -const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); -const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void); -const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void); -const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void); -# ifndef OPENSSL_NO_ARIA -const EVP_CIPHER *EVP_aria_128_ecb(void); -const EVP_CIPHER *EVP_aria_128_cbc(void); -const EVP_CIPHER *EVP_aria_128_cfb1(void); -const EVP_CIPHER *EVP_aria_128_cfb8(void); -const EVP_CIPHER *EVP_aria_128_cfb128(void); -# define EVP_aria_128_cfb EVP_aria_128_cfb128 -const EVP_CIPHER *EVP_aria_128_ctr(void); -const EVP_CIPHER *EVP_aria_128_ofb(void); -const EVP_CIPHER *EVP_aria_128_gcm(void); -const EVP_CIPHER *EVP_aria_128_ccm(void); -const EVP_CIPHER *EVP_aria_192_ecb(void); -const EVP_CIPHER *EVP_aria_192_cbc(void); -const EVP_CIPHER *EVP_aria_192_cfb1(void); -const EVP_CIPHER *EVP_aria_192_cfb8(void); -const EVP_CIPHER *EVP_aria_192_cfb128(void); -# define EVP_aria_192_cfb EVP_aria_192_cfb128 -const EVP_CIPHER *EVP_aria_192_ctr(void); -const EVP_CIPHER *EVP_aria_192_ofb(void); -const EVP_CIPHER *EVP_aria_192_gcm(void); -const EVP_CIPHER *EVP_aria_192_ccm(void); -const EVP_CIPHER *EVP_aria_256_ecb(void); -const EVP_CIPHER *EVP_aria_256_cbc(void); -const EVP_CIPHER *EVP_aria_256_cfb1(void); -const EVP_CIPHER *EVP_aria_256_cfb8(void); -const EVP_CIPHER *EVP_aria_256_cfb128(void); -# define EVP_aria_256_cfb EVP_aria_256_cfb128 -const EVP_CIPHER *EVP_aria_256_ctr(void); -const EVP_CIPHER *EVP_aria_256_ofb(void); -const EVP_CIPHER *EVP_aria_256_gcm(void); -const EVP_CIPHER *EVP_aria_256_ccm(void); -# endif -# ifndef OPENSSL_NO_CAMELLIA -const EVP_CIPHER *EVP_camellia_128_ecb(void); -const EVP_CIPHER *EVP_camellia_128_cbc(void); -const EVP_CIPHER *EVP_camellia_128_cfb1(void); -const EVP_CIPHER *EVP_camellia_128_cfb8(void); -const EVP_CIPHER *EVP_camellia_128_cfb128(void); -# define EVP_camellia_128_cfb EVP_camellia_128_cfb128 -const EVP_CIPHER *EVP_camellia_128_ofb(void); -const EVP_CIPHER *EVP_camellia_128_ctr(void); -const EVP_CIPHER *EVP_camellia_192_ecb(void); -const EVP_CIPHER *EVP_camellia_192_cbc(void); -const EVP_CIPHER *EVP_camellia_192_cfb1(void); -const EVP_CIPHER *EVP_camellia_192_cfb8(void); -const EVP_CIPHER *EVP_camellia_192_cfb128(void); -# define EVP_camellia_192_cfb EVP_camellia_192_cfb128 -const EVP_CIPHER *EVP_camellia_192_ofb(void); -const EVP_CIPHER *EVP_camellia_192_ctr(void); -const EVP_CIPHER *EVP_camellia_256_ecb(void); -const EVP_CIPHER *EVP_camellia_256_cbc(void); -const EVP_CIPHER *EVP_camellia_256_cfb1(void); -const EVP_CIPHER *EVP_camellia_256_cfb8(void); -const EVP_CIPHER *EVP_camellia_256_cfb128(void); -# define EVP_camellia_256_cfb EVP_camellia_256_cfb128 -const EVP_CIPHER *EVP_camellia_256_ofb(void); -const EVP_CIPHER *EVP_camellia_256_ctr(void); -# endif -# ifndef OPENSSL_NO_CHACHA -const EVP_CIPHER *EVP_chacha20(void); -# ifndef OPENSSL_NO_POLY1305 -const EVP_CIPHER *EVP_chacha20_poly1305(void); -# endif -# endif - -# ifndef OPENSSL_NO_SEED -const EVP_CIPHER *EVP_seed_ecb(void); -const EVP_CIPHER *EVP_seed_cbc(void); -const EVP_CIPHER *EVP_seed_cfb128(void); -# define EVP_seed_cfb EVP_seed_cfb128 -const EVP_CIPHER *EVP_seed_ofb(void); -# endif - -# ifndef OPENSSL_NO_SM4 -const EVP_CIPHER *EVP_sm4_ecb(void); -const EVP_CIPHER *EVP_sm4_cbc(void); -const EVP_CIPHER *EVP_sm4_cfb128(void); -# define EVP_sm4_cfb EVP_sm4_cfb128 -const EVP_CIPHER *EVP_sm4_ofb(void); -const EVP_CIPHER *EVP_sm4_ctr(void); -# endif - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define OPENSSL_add_all_algorithms_conf() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ - | OPENSSL_INIT_ADD_ALL_DIGESTS \ - | OPENSSL_INIT_LOAD_CONFIG, NULL) -# define OPENSSL_add_all_algorithms_noconf() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ - | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) - -# ifdef OPENSSL_LOAD_CONF -# define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_conf() -# else -# define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_noconf() -# endif - -# define OpenSSL_add_all_ciphers() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS, NULL) -# define OpenSSL_add_all_digests() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) - -# define EVP_cleanup() while(0) continue -# endif - -int EVP_add_cipher(const EVP_CIPHER *cipher); -int EVP_add_digest(const EVP_MD *digest); - -const EVP_CIPHER *EVP_get_cipherbyname(const char *name); -const EVP_MD *EVP_get_digestbyname(const char *name); - -void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph, - const char *from, const char *to, void *x), - void *arg); -void EVP_CIPHER_do_all_sorted(void (*fn) - (const EVP_CIPHER *ciph, const char *from, - const char *to, void *x), void *arg); -void EVP_CIPHER_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_CIPHER *cipher, void *arg), - void *arg); - -void EVP_MD_do_all(void (*fn) (const EVP_MD *ciph, - const char *from, const char *to, void *x), - void *arg); -void EVP_MD_do_all_sorted(void (*fn) - (const EVP_MD *ciph, const char *from, - const char *to, void *x), void *arg); -void EVP_MD_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_MD *md, void *arg), - void *arg); - -/* MAC stuff */ - -EVP_MAC *EVP_MAC_fetch(OSSL_LIB_CTX *libctx, const char *algorithm, - const char *properties); -int EVP_MAC_up_ref(EVP_MAC *mac); -void EVP_MAC_free(EVP_MAC *mac); -const char *EVP_MAC_get0_name(const EVP_MAC *mac); -const char *EVP_MAC_get0_description(const EVP_MAC *mac); -int EVP_MAC_is_a(const EVP_MAC *mac, const char *name); -const OSSL_PROVIDER *EVP_MAC_get0_provider(const EVP_MAC *mac); -int EVP_MAC_get_params(EVP_MAC *mac, OSSL_PARAM params[]); - -EVP_MAC_CTX *EVP_MAC_CTX_new(EVP_MAC *mac); -void EVP_MAC_CTX_free(EVP_MAC_CTX *ctx); -EVP_MAC_CTX *EVP_MAC_CTX_dup(const EVP_MAC_CTX *src); -EVP_MAC *EVP_MAC_CTX_get0_mac(EVP_MAC_CTX *ctx); -int EVP_MAC_CTX_get_params(EVP_MAC_CTX *ctx, OSSL_PARAM params[]); -int EVP_MAC_CTX_set_params(EVP_MAC_CTX *ctx, const OSSL_PARAM params[]); - -size_t EVP_MAC_CTX_get_mac_size(EVP_MAC_CTX *ctx); -size_t EVP_MAC_CTX_get_block_size(EVP_MAC_CTX *ctx); -unsigned char *EVP_Q_mac(OSSL_LIB_CTX *libctx, const char *name, const char *propq, - const char *subalg, const OSSL_PARAM *params, - const void *key, size_t keylen, - const unsigned char *data, size_t datalen, - unsigned char *out, size_t outsize, size_t *outlen); -int EVP_MAC_init(EVP_MAC_CTX *ctx, const unsigned char *key, size_t keylen, - const OSSL_PARAM params[]); -int EVP_MAC_init_SKEY(EVP_MAC_CTX *ctx, EVP_SKEY *skey, const OSSL_PARAM params[]); -int EVP_MAC_update(EVP_MAC_CTX *ctx, const unsigned char *data, size_t datalen); -int EVP_MAC_final(EVP_MAC_CTX *ctx, - unsigned char *out, size_t *outl, size_t outsize); -int EVP_MAC_finalXOF(EVP_MAC_CTX *ctx, unsigned char *out, size_t outsize); -const OSSL_PARAM *EVP_MAC_gettable_params(const EVP_MAC *mac); -const OSSL_PARAM *EVP_MAC_gettable_ctx_params(const EVP_MAC *mac); -const OSSL_PARAM *EVP_MAC_settable_ctx_params(const EVP_MAC *mac); -const OSSL_PARAM *EVP_MAC_CTX_gettable_params(EVP_MAC_CTX *ctx); -const OSSL_PARAM *EVP_MAC_CTX_settable_params(EVP_MAC_CTX *ctx); - -void EVP_MAC_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_MAC *mac, void *arg), - void *arg); -int EVP_MAC_names_do_all(const EVP_MAC *mac, - void (*fn)(const char *name, void *data), - void *data); - -/* RAND stuff */ -EVP_RAND *EVP_RAND_fetch(OSSL_LIB_CTX *libctx, const char *algorithm, - const char *properties); -int EVP_RAND_up_ref(EVP_RAND *rand); -void EVP_RAND_free(EVP_RAND *rand); -const char *EVP_RAND_get0_name(const EVP_RAND *rand); -const char *EVP_RAND_get0_description(const EVP_RAND *md); -int EVP_RAND_is_a(const EVP_RAND *rand, const char *name); -const OSSL_PROVIDER *EVP_RAND_get0_provider(const EVP_RAND *rand); -int EVP_RAND_get_params(EVP_RAND *rand, OSSL_PARAM params[]); - -EVP_RAND_CTX *EVP_RAND_CTX_new(EVP_RAND *rand, EVP_RAND_CTX *parent); -int EVP_RAND_CTX_up_ref(EVP_RAND_CTX *ctx); -void EVP_RAND_CTX_free(EVP_RAND_CTX *ctx); -EVP_RAND *EVP_RAND_CTX_get0_rand(EVP_RAND_CTX *ctx); -int EVP_RAND_CTX_get_params(EVP_RAND_CTX *ctx, OSSL_PARAM params[]); -int EVP_RAND_CTX_set_params(EVP_RAND_CTX *ctx, const OSSL_PARAM params[]); -const OSSL_PARAM *EVP_RAND_gettable_params(const EVP_RAND *rand); -const OSSL_PARAM *EVP_RAND_gettable_ctx_params(const EVP_RAND *rand); -const OSSL_PARAM *EVP_RAND_settable_ctx_params(const EVP_RAND *rand); -const OSSL_PARAM *EVP_RAND_CTX_gettable_params(EVP_RAND_CTX *ctx); -const OSSL_PARAM *EVP_RAND_CTX_settable_params(EVP_RAND_CTX *ctx); - -void EVP_RAND_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_RAND *rand, void *arg), - void *arg); -int EVP_RAND_names_do_all(const EVP_RAND *rand, - void (*fn)(const char *name, void *data), - void *data); - -__owur int EVP_RAND_instantiate(EVP_RAND_CTX *ctx, unsigned int strength, - int prediction_resistance, - const unsigned char *pstr, size_t pstr_len, - const OSSL_PARAM params[]); -int EVP_RAND_uninstantiate(EVP_RAND_CTX *ctx); -__owur int EVP_RAND_generate(EVP_RAND_CTX *ctx, unsigned char *out, - size_t outlen, unsigned int strength, - int prediction_resistance, - const unsigned char *addin, size_t addin_len); -int EVP_RAND_reseed(EVP_RAND_CTX *ctx, int prediction_resistance, - const unsigned char *ent, size_t ent_len, - const unsigned char *addin, size_t addin_len); -__owur int EVP_RAND_nonce(EVP_RAND_CTX *ctx, unsigned char *out, size_t outlen); -__owur int EVP_RAND_enable_locking(EVP_RAND_CTX *ctx); - -int EVP_RAND_verify_zeroization(EVP_RAND_CTX *ctx); -unsigned int EVP_RAND_get_strength(EVP_RAND_CTX *ctx); -int EVP_RAND_get_state(EVP_RAND_CTX *ctx); - -# define EVP_RAND_STATE_UNINITIALISED 0 -# define EVP_RAND_STATE_READY 1 -# define EVP_RAND_STATE_ERROR 2 - -/* PKEY stuff */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int EVP_PKEY_decrypt_old(unsigned char *dec_key, - const unsigned char *enc_key, - int enc_key_len, - EVP_PKEY *private_key); -OSSL_DEPRECATEDIN_3_0 int EVP_PKEY_encrypt_old(unsigned char *enc_key, - const unsigned char *key, - int key_len, EVP_PKEY *pub_key); -# endif -int EVP_PKEY_is_a(const EVP_PKEY *pkey, const char *name); -int EVP_PKEY_type_names_do_all(const EVP_PKEY *pkey, - void (*fn)(const char *name, void *data), - void *data); -int EVP_PKEY_type(int type); -int EVP_PKEY_get_id(const EVP_PKEY *pkey); -# define EVP_PKEY_id EVP_PKEY_get_id -int EVP_PKEY_get_base_id(const EVP_PKEY *pkey); -# define EVP_PKEY_base_id EVP_PKEY_get_base_id -int EVP_PKEY_get_bits(const EVP_PKEY *pkey); -# define EVP_PKEY_bits EVP_PKEY_get_bits -int EVP_PKEY_get_security_bits(const EVP_PKEY *pkey); -# define EVP_PKEY_security_bits EVP_PKEY_get_security_bits -int EVP_PKEY_get_security_category(const EVP_PKEY *pkey); -int EVP_PKEY_get_size(const EVP_PKEY *pkey); -# define EVP_PKEY_size EVP_PKEY_get_size -int EVP_PKEY_can_sign(const EVP_PKEY *pkey); -int EVP_PKEY_set_type(EVP_PKEY *pkey, int type); -int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len); -int EVP_PKEY_set_type_by_keymgmt(EVP_PKEY *pkey, EVP_KEYMGMT *keymgmt); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_ENGINE -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_set1_engine(EVP_PKEY *pkey, ENGINE *e); -OSSL_DEPRECATEDIN_3_0 -ENGINE *EVP_PKEY_get0_engine(const EVP_PKEY *pkey); -# endif -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key); -OSSL_DEPRECATEDIN_3_0 -void *EVP_PKEY_get0(const EVP_PKEY *pkey); -OSSL_DEPRECATEDIN_3_0 -const unsigned char *EVP_PKEY_get0_hmac(const EVP_PKEY *pkey, size_t *len); -# ifndef OPENSSL_NO_POLY1305 -OSSL_DEPRECATEDIN_3_0 -const unsigned char *EVP_PKEY_get0_poly1305(const EVP_PKEY *pkey, size_t *len); -# endif -# ifndef OPENSSL_NO_SIPHASH -OSSL_DEPRECATEDIN_3_0 -const unsigned char *EVP_PKEY_get0_siphash(const EVP_PKEY *pkey, size_t *len); -# endif - -struct rsa_st; -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key); -OSSL_DEPRECATEDIN_3_0 -const struct rsa_st *EVP_PKEY_get0_RSA(const EVP_PKEY *pkey); -OSSL_DEPRECATEDIN_3_0 -struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey); - -# ifndef OPENSSL_NO_DSA -struct dsa_st; -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key); -OSSL_DEPRECATEDIN_3_0 -const struct dsa_st *EVP_PKEY_get0_DSA(const EVP_PKEY *pkey); -OSSL_DEPRECATEDIN_3_0 -struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey); -# endif - -# ifndef OPENSSL_NO_DH -struct dh_st; -OSSL_DEPRECATEDIN_3_0 int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key); -OSSL_DEPRECATEDIN_3_0 const struct dh_st *EVP_PKEY_get0_DH(const EVP_PKEY *pkey); -OSSL_DEPRECATEDIN_3_0 struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey); -# endif - -# ifndef OPENSSL_NO_EC -struct ec_key_st; -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key); -OSSL_DEPRECATEDIN_3_0 -const struct ec_key_st *EVP_PKEY_get0_EC_KEY(const EVP_PKEY *pkey); -OSSL_DEPRECATEDIN_3_0 -struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); -# endif -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -EVP_PKEY *EVP_PKEY_new(void); -int EVP_PKEY_up_ref(EVP_PKEY *pkey); -EVP_PKEY *EVP_PKEY_dup(EVP_PKEY *pkey); -void EVP_PKEY_free(EVP_PKEY *pkey); -const char *EVP_PKEY_get0_description(const EVP_PKEY *pkey); -const OSSL_PROVIDER *EVP_PKEY_get0_provider(const EVP_PKEY *key); - -EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp, - long length); -int i2d_PublicKey(const EVP_PKEY *a, unsigned char **pp); - - -EVP_PKEY *d2i_PrivateKey_ex(int type, EVP_PKEY **a, const unsigned char **pp, - long length, OSSL_LIB_CTX *libctx, - const char *propq); -EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, - long length); -EVP_PKEY *d2i_AutoPrivateKey_ex(EVP_PKEY **a, const unsigned char **pp, - long length, OSSL_LIB_CTX *libctx, - const char *propq); -EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, - long length); -int i2d_PrivateKey(const EVP_PKEY *a, unsigned char **pp); -int i2d_PKCS8PrivateKey(const EVP_PKEY *a, unsigned char **pp); - -int i2d_KeyParams(const EVP_PKEY *a, unsigned char **pp); -EVP_PKEY *d2i_KeyParams(int type, EVP_PKEY **a, const unsigned char **pp, - long length); -int i2d_KeyParams_bio(BIO *bp, const EVP_PKEY *pkey); -EVP_PKEY *d2i_KeyParams_bio(int type, EVP_PKEY **a, BIO *in); - -int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from); -int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey); -int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode); -int EVP_PKEY_parameters_eq(const EVP_PKEY *a, const EVP_PKEY *b); -int EVP_PKEY_eq(const EVP_PKEY *a, const EVP_PKEY *b); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b); -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b); -# endif - -int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -# ifndef OPENSSL_NO_STDIO -int EVP_PKEY_print_public_fp(FILE *fp, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -int EVP_PKEY_print_private_fp(FILE *fp, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -int EVP_PKEY_print_params_fp(FILE *fp, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -# endif - -int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); -int EVP_PKEY_get_default_digest_name(EVP_PKEY *pkey, - char *mdname, size_t mdname_sz); -int EVP_PKEY_digestsign_supports_digest(EVP_PKEY *pkey, OSSL_LIB_CTX *libctx, - const char *name, const char *propq); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* - * For backwards compatibility. Use EVP_PKEY_set1_encoded_public_key in - * preference - */ -# define EVP_PKEY_set1_tls_encodedpoint(pkey, pt, ptlen) \ - EVP_PKEY_set1_encoded_public_key((pkey), (pt), (ptlen)) -# endif - -int EVP_PKEY_set1_encoded_public_key(EVP_PKEY *pkey, - const unsigned char *pub, size_t publen); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* - * For backwards compatibility. Use EVP_PKEY_get1_encoded_public_key in - * preference - */ -# define EVP_PKEY_get1_tls_encodedpoint(pkey, ppt) \ - EVP_PKEY_get1_encoded_public_key((pkey), (ppt)) -# endif - -size_t EVP_PKEY_get1_encoded_public_key(EVP_PKEY *pkey, unsigned char **ppub); - -/* calls methods */ -int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type); -int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type); - -/* These are used by EVP_CIPHER methods */ -int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); -int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); - -/* PKCS5 password based encryption */ -int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md, int en_de); -int PKCS5_PBE_keyivgen_ex(EVP_CIPHER_CTX *cctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md, int en_de, OSSL_LIB_CTX *libctx, - const char *propq); -int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, - const unsigned char *salt, int saltlen, int iter, - int keylen, unsigned char *out); -int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, - const unsigned char *salt, int saltlen, int iter, - const EVP_MD *digest, int keylen, unsigned char *out); -int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md, int en_de); -int PKCS5_v2_PBE_keyivgen_ex(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md, int en_de, - OSSL_LIB_CTX *libctx, const char *propq); - -#ifndef OPENSSL_NO_SCRYPT -int EVP_PBE_scrypt(const char *pass, size_t passlen, - const unsigned char *salt, size_t saltlen, - uint64_t N, uint64_t r, uint64_t p, uint64_t maxmem, - unsigned char *key, size_t keylen); -int EVP_PBE_scrypt_ex(const char *pass, size_t passlen, - const unsigned char *salt, size_t saltlen, - uint64_t N, uint64_t r, uint64_t p, uint64_t maxmem, - unsigned char *key, size_t keylen, - OSSL_LIB_CTX *ctx, const char *propq); - -int PKCS5_v2_scrypt_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, - int passlen, ASN1_TYPE *param, - const EVP_CIPHER *c, const EVP_MD *md, int en_de); -int PKCS5_v2_scrypt_keyivgen_ex(EVP_CIPHER_CTX *ctx, const char *pass, - int passlen, ASN1_TYPE *param, - const EVP_CIPHER *c, const EVP_MD *md, int en_de, - OSSL_LIB_CTX *libctx, const char *propq); -#endif - -void PKCS5_PBE_add(void); - -int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, - ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de); - -int EVP_PBE_CipherInit_ex(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, - ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de, - OSSL_LIB_CTX *libctx, const char *propq); - -/* PBE type */ - -/* Can appear as the outermost AlgorithmIdentifier */ -# define EVP_PBE_TYPE_OUTER 0x0 -/* Is an PRF type OID */ -# define EVP_PBE_TYPE_PRF 0x1 -/* Is a PKCS#5 v2.0 KDF */ -# define EVP_PBE_TYPE_KDF 0x2 - -int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, - int md_nid, EVP_PBE_KEYGEN *keygen); -int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md, - EVP_PBE_KEYGEN *keygen); -int EVP_PBE_find(int type, int pbe_nid, int *pcnid, int *pmnid, - EVP_PBE_KEYGEN **pkeygen); -int EVP_PBE_find_ex(int type, int pbe_nid, int *pcnid, int *pmnid, - EVP_PBE_KEYGEN **pkeygen, EVP_PBE_KEYGEN_EX **pkeygen_ex); -void EVP_PBE_cleanup(void); -int EVP_PBE_get(int *ptype, int *ppbe_nid, size_t num); - -# define ASN1_PKEY_ALIAS 0x1 -# define ASN1_PKEY_DYNAMIC 0x2 -# define ASN1_PKEY_SIGPARAM_NULL 0x4 - -# define ASN1_PKEY_CTRL_PKCS7_SIGN 0x1 -# define ASN1_PKEY_CTRL_PKCS7_ENCRYPT 0x2 -# define ASN1_PKEY_CTRL_DEFAULT_MD_NID 0x3 -# define ASN1_PKEY_CTRL_CMS_SIGN 0x5 -# define ASN1_PKEY_CTRL_CMS_ENVELOPE 0x7 -# define ASN1_PKEY_CTRL_CMS_RI_TYPE 0x8 - -# define ASN1_PKEY_CTRL_SET1_TLS_ENCPT 0x9 -# define ASN1_PKEY_CTRL_GET1_TLS_ENCPT 0xa -# define ASN1_PKEY_CTRL_CMS_IS_RI_TYPE_SUPPORTED 0xb - -# ifndef OPENSSL_NO_DEPRECATED_3_6 -OSSL_DEPRECATEDIN_3_6 int EVP_PKEY_asn1_get_count(void); -OSSL_DEPRECATEDIN_3_6 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx); -OSSL_DEPRECATEDIN_3_6 -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type); -OSSL_DEPRECATEDIN_3_6 -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe, - const char *str, int len); -OSSL_DEPRECATEDIN_3_6 int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth); -OSSL_DEPRECATEDIN_3_6 int EVP_PKEY_asn1_add_alias(int to, int from); -OSSL_DEPRECATEDIN_3_6 -int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id, - int *ppkey_flags, const char **pinfo, - const char **ppem_str, - const EVP_PKEY_ASN1_METHOD *ameth); - -OSSL_DEPRECATEDIN_3_6 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(const EVP_PKEY *pkey); -OSSL_DEPRECATEDIN_3_6 EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags, - const char *pem_str, - const char *info); -OSSL_DEPRECATEDIN_3_6 void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, - const EVP_PKEY_ASN1_METHOD *src); -OSSL_DEPRECATEDIN_3_6 void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth); -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth, - int (*pub_decode) (EVP_PKEY *pk, - const X509_PUBKEY *pub), - int (*pub_encode) (X509_PUBKEY *pub, - const EVP_PKEY *pk), - int (*pub_cmp) (const EVP_PKEY *a, - const EVP_PKEY *b), - int (*pub_print) (BIO *out, - const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx), - int (*pkey_size) (const EVP_PKEY *pk), - int (*pkey_bits) (const EVP_PKEY *pk)); -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth, - int (*priv_decode) (EVP_PKEY *pk, - const PKCS8_PRIV_KEY_INFO - *p8inf), - int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, - const EVP_PKEY *pk), - int (*priv_print) (BIO *out, - const EVP_PKEY *pkey, - int indent, - ASN1_PCTX *pctx)); -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth, - int (*param_decode) (EVP_PKEY *pkey, - const unsigned char **pder, - int derlen), - int (*param_encode) (const EVP_PKEY *pkey, - unsigned char **pder), - int (*param_missing) (const EVP_PKEY *pk), - int (*param_copy) (EVP_PKEY *to, - const EVP_PKEY *from), - int (*param_cmp) (const EVP_PKEY *a, - const EVP_PKEY *b), - int (*param_print) (BIO *out, - const EVP_PKEY *pkey, - int indent, - ASN1_PCTX *pctx)); - -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth, - void (*pkey_free) (EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_ctrl) (EVP_PKEY *pkey, int op, - long arg1, void *arg2)); -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, - int (*item_verify) (EVP_MD_CTX *ctx, - const ASN1_ITEM *it, - const void *data, - const X509_ALGOR *a, - const ASN1_BIT_STRING *sig, - EVP_PKEY *pkey), - int (*item_sign) (EVP_MD_CTX *ctx, - const ASN1_ITEM *it, - const void *data, - X509_ALGOR *alg1, - X509_ALGOR *alg2, - ASN1_BIT_STRING *sig)); - -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_siginf(EVP_PKEY_ASN1_METHOD *ameth, - int (*siginf_set) (X509_SIG_INFO *siginf, - const X509_ALGOR *alg, - const ASN1_STRING *sig)); - -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_check(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_check) (const EVP_PKEY *pk)); - -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_public_check(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_pub_check) (const EVP_PKEY *pk)); - -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_param_check(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_param_check) (const EVP_PKEY *pk)); - -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_set_priv_key(EVP_PKEY_ASN1_METHOD *ameth, - int (*set_priv_key) (EVP_PKEY *pk, - const unsigned char - *priv, - size_t len)); -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_set_pub_key(EVP_PKEY_ASN1_METHOD *ameth, - int (*set_pub_key) (EVP_PKEY *pk, - const unsigned char *pub, - size_t len)); -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_get_priv_key(EVP_PKEY_ASN1_METHOD *ameth, - int (*get_priv_key) (const EVP_PKEY *pk, - unsigned char *priv, - size_t *len)); -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_get_pub_key(EVP_PKEY_ASN1_METHOD *ameth, - int (*get_pub_key) (const EVP_PKEY *pk, - unsigned char *pub, - size_t *len)); - -OSSL_DEPRECATEDIN_3_6 -void EVP_PKEY_asn1_set_security_bits(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_security_bits) (const EVP_PKEY - *pk)); -# endif /* OPENSSL_NO_DEPRECATED_3_6 */ - -int EVP_PKEY_CTX_get_signature_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); -int EVP_PKEY_CTX_set_signature_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); - -int EVP_PKEY_CTX_set1_id(EVP_PKEY_CTX *ctx, const void *id, int len); -int EVP_PKEY_CTX_get1_id(EVP_PKEY_CTX *ctx, void *id); -int EVP_PKEY_CTX_get1_id_len(EVP_PKEY_CTX *ctx, size_t *id_len); - -int EVP_PKEY_CTX_set_kem_op(EVP_PKEY_CTX *ctx, const char *op); - -const char *EVP_PKEY_get0_type_name(const EVP_PKEY *key); - -# define EVP_PKEY_OP_UNDEFINED 0 -# define EVP_PKEY_OP_PARAMGEN (1 << 1) -# define EVP_PKEY_OP_KEYGEN (1 << 2) -# define EVP_PKEY_OP_FROMDATA (1 << 3) -# define EVP_PKEY_OP_SIGN (1 << 4) -# define EVP_PKEY_OP_VERIFY (1 << 5) -# define EVP_PKEY_OP_VERIFYRECOVER (1 << 6) -# define EVP_PKEY_OP_SIGNCTX (1 << 7) -# define EVP_PKEY_OP_VERIFYCTX (1 << 8) -# define EVP_PKEY_OP_ENCRYPT (1 << 9) -# define EVP_PKEY_OP_DECRYPT (1 << 10) -# define EVP_PKEY_OP_DERIVE (1 << 11) -# define EVP_PKEY_OP_ENCAPSULATE (1 << 12) -# define EVP_PKEY_OP_DECAPSULATE (1 << 13) -# define EVP_PKEY_OP_SIGNMSG (1 << 14) -# define EVP_PKEY_OP_VERIFYMSG (1 << 15) -/* Update the following when adding new EVP_PKEY_OPs */ -# define EVP_PKEY_OP_ALL ((1 << 16) - 1) - -# define EVP_PKEY_OP_TYPE_SIG \ - (EVP_PKEY_OP_SIGN | EVP_PKEY_OP_SIGNMSG \ - | EVP_PKEY_OP_VERIFY | EVP_PKEY_OP_VERIFYMSG \ - | EVP_PKEY_OP_VERIFYRECOVER \ - | EVP_PKEY_OP_SIGNCTX | EVP_PKEY_OP_VERIFYCTX) - -# define EVP_PKEY_OP_TYPE_CRYPT \ - (EVP_PKEY_OP_ENCRYPT | EVP_PKEY_OP_DECRYPT) - -# define EVP_PKEY_OP_TYPE_DERIVE \ - (EVP_PKEY_OP_DERIVE) - -# define EVP_PKEY_OP_TYPE_DATA \ - (EVP_PKEY_OP_FROMDATA) - -# define EVP_PKEY_OP_TYPE_KEM \ - (EVP_PKEY_OP_ENCAPSULATE | EVP_PKEY_OP_DECAPSULATE) - -# define EVP_PKEY_OP_TYPE_GEN \ - (EVP_PKEY_OP_PARAMGEN | EVP_PKEY_OP_KEYGEN) - -# define EVP_PKEY_OP_TYPE_NOGEN \ - (EVP_PKEY_OP_ALL & ~EVP_PKEY_OP_TYPE_GEN) - -int EVP_PKEY_CTX_set_mac_key(EVP_PKEY_CTX *ctx, const unsigned char *key, - int keylen); - -# define EVP_PKEY_CTRL_MD 1 -# define EVP_PKEY_CTRL_PEER_KEY 2 -# define EVP_PKEY_CTRL_SET_MAC_KEY 6 -# define EVP_PKEY_CTRL_DIGESTINIT 7 -/* Used by GOST key encryption in TLS */ -# define EVP_PKEY_CTRL_SET_IV 8 -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define EVP_PKEY_CTRL_PKCS7_ENCRYPT 3 -# define EVP_PKEY_CTRL_PKCS7_DECRYPT 4 -# define EVP_PKEY_CTRL_PKCS7_SIGN 5 -# define EVP_PKEY_CTRL_CMS_ENCRYPT 9 -# define EVP_PKEY_CTRL_CMS_DECRYPT 10 -# define EVP_PKEY_CTRL_CMS_SIGN 11 -# endif -# define EVP_PKEY_CTRL_CIPHER 12 -# define EVP_PKEY_CTRL_GET_MD 13 -# define EVP_PKEY_CTRL_SET_DIGEST_SIZE 14 -# define EVP_PKEY_CTRL_SET1_ID 15 -# define EVP_PKEY_CTRL_GET1_ID 16 -# define EVP_PKEY_CTRL_GET1_ID_LEN 17 - -# define EVP_PKEY_ALG_CTRL 0x1000 - -# define EVP_PKEY_FLAG_AUTOARGLEN 2 -/* - * Method handles all operations: don't assume any digest related defaults. - */ -# define EVP_PKEY_FLAG_SIGCTX_CUSTOM 4 -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type); -OSSL_DEPRECATEDIN_3_0 EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags, - const EVP_PKEY_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, - const EVP_PKEY_METHOD *src); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth); -OSSL_DEPRECATEDIN_3_0 int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth); -OSSL_DEPRECATEDIN_3_0 int EVP_PKEY_meth_remove(const EVP_PKEY_METHOD *pmeth); -OSSL_DEPRECATEDIN_3_0 size_t EVP_PKEY_meth_get_count(void); -OSSL_DEPRECATEDIN_3_0 const EVP_PKEY_METHOD *EVP_PKEY_meth_get0(size_t idx); -# endif - -EVP_KEYMGMT *EVP_KEYMGMT_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, - const char *properties); -int EVP_KEYMGMT_up_ref(EVP_KEYMGMT *keymgmt); -void EVP_KEYMGMT_free(EVP_KEYMGMT *keymgmt); -const OSSL_PROVIDER *EVP_KEYMGMT_get0_provider(const EVP_KEYMGMT *keymgmt); -const char *EVP_KEYMGMT_get0_name(const EVP_KEYMGMT *keymgmt); -const char *EVP_KEYMGMT_get0_description(const EVP_KEYMGMT *keymgmt); -int EVP_KEYMGMT_is_a(const EVP_KEYMGMT *keymgmt, const char *name); -void EVP_KEYMGMT_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_KEYMGMT *keymgmt, void *arg), - void *arg); -int EVP_KEYMGMT_names_do_all(const EVP_KEYMGMT *keymgmt, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PARAM *EVP_KEYMGMT_gettable_params(const EVP_KEYMGMT *keymgmt); -const OSSL_PARAM *EVP_KEYMGMT_settable_params(const EVP_KEYMGMT *keymgmt); -const OSSL_PARAM *EVP_KEYMGMT_gen_settable_params(const EVP_KEYMGMT *keymgmt); -const OSSL_PARAM *EVP_KEYMGMT_gen_gettable_params(const EVP_KEYMGMT *keymgmt); - -EVP_SKEYMGMT *EVP_SKEYMGMT_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, - const char *properties); -int EVP_SKEYMGMT_up_ref(EVP_SKEYMGMT *keymgmt); -void EVP_SKEYMGMT_free(EVP_SKEYMGMT *keymgmt); -const OSSL_PROVIDER *EVP_SKEYMGMT_get0_provider(const EVP_SKEYMGMT *keymgmt); -const char *EVP_SKEYMGMT_get0_name(const EVP_SKEYMGMT *keymgmt); -const char *EVP_SKEYMGMT_get0_description(const EVP_SKEYMGMT *keymgmt); -int EVP_SKEYMGMT_is_a(const EVP_SKEYMGMT *keymgmt, const char *name); -void EVP_SKEYMGMT_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_SKEYMGMT *keymgmt, void *arg), - void *arg); -int EVP_SKEYMGMT_names_do_all(const EVP_SKEYMGMT *keymgmt, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PARAM *EVP_SKEYMGMT_get0_gen_settable_params(const EVP_SKEYMGMT *skeymgmt); -const OSSL_PARAM *EVP_SKEYMGMT_get0_imp_settable_params(const EVP_SKEYMGMT *skeymgmt); - -EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); -EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e); -EVP_PKEY_CTX *EVP_PKEY_CTX_new_from_name(OSSL_LIB_CTX *libctx, - const char *name, - const char *propquery); -EVP_PKEY_CTX *EVP_PKEY_CTX_new_from_pkey(OSSL_LIB_CTX *libctx, - EVP_PKEY *pkey, const char *propquery); -EVP_PKEY_CTX *EVP_PKEY_CTX_dup(const EVP_PKEY_CTX *ctx); -void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); -int EVP_PKEY_CTX_is_a(EVP_PKEY_CTX *ctx, const char *keytype); - -int EVP_PKEY_CTX_get_params(EVP_PKEY_CTX *ctx, OSSL_PARAM *params); -const OSSL_PARAM *EVP_PKEY_CTX_gettable_params(const EVP_PKEY_CTX *ctx); -int EVP_PKEY_CTX_set_params(EVP_PKEY_CTX *ctx, const OSSL_PARAM *params); -const OSSL_PARAM *EVP_PKEY_CTX_settable_params(const EVP_PKEY_CTX *ctx); - -int EVP_PKEY_CTX_set_algor_params(EVP_PKEY_CTX *ctx, const X509_ALGOR *alg); -int EVP_PKEY_CTX_get_algor_params(EVP_PKEY_CTX *ctx, X509_ALGOR *alg); -int EVP_PKEY_CTX_get_algor(EVP_PKEY_CTX *ctx, X509_ALGOR **alg); - -int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, - int cmd, int p1, void *p2); -int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, - const char *value); -int EVP_PKEY_CTX_ctrl_uint64(EVP_PKEY_CTX *ctx, int keytype, int optype, - int cmd, uint64_t value); - -int EVP_PKEY_CTX_str2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *str); -int EVP_PKEY_CTX_hex2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *hex); - -int EVP_PKEY_CTX_md(EVP_PKEY_CTX *ctx, int optype, int cmd, const char *md); - -int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx); -void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen); - -EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e, - const unsigned char *key, int keylen); -EVP_PKEY *EVP_PKEY_new_raw_private_key_ex(OSSL_LIB_CTX *libctx, - const char *keytype, - const char *propq, - const unsigned char *priv, size_t len); -EVP_PKEY *EVP_PKEY_new_raw_private_key(int type, ENGINE *e, - const unsigned char *priv, - size_t len); -EVP_PKEY *EVP_PKEY_new_raw_public_key_ex(OSSL_LIB_CTX *libctx, - const char *keytype, const char *propq, - const unsigned char *pub, size_t len); -EVP_PKEY *EVP_PKEY_new_raw_public_key(int type, ENGINE *e, - const unsigned char *pub, - size_t len); -int EVP_PKEY_get_raw_private_key(const EVP_PKEY *pkey, unsigned char *priv, - size_t *len); -int EVP_PKEY_get_raw_public_key(const EVP_PKEY *pkey, unsigned char *pub, - size_t *len); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -EVP_PKEY *EVP_PKEY_new_CMAC_key(ENGINE *e, const unsigned char *priv, - size_t len, const EVP_CIPHER *cipher); -# endif - -void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data); -void *EVP_PKEY_CTX_get_data(const EVP_PKEY_CTX *ctx); -EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx); - -EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx); - -void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data); -void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_CTX_set_signature(EVP_PKEY_CTX *pctx, - const unsigned char *sig, size_t siglen); - -void EVP_SIGNATURE_free(EVP_SIGNATURE *signature); -int EVP_SIGNATURE_up_ref(EVP_SIGNATURE *signature); -OSSL_PROVIDER *EVP_SIGNATURE_get0_provider(const EVP_SIGNATURE *signature); -EVP_SIGNATURE *EVP_SIGNATURE_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, - const char *properties); -int EVP_SIGNATURE_is_a(const EVP_SIGNATURE *signature, const char *name); -const char *EVP_SIGNATURE_get0_name(const EVP_SIGNATURE *signature); -const char *EVP_SIGNATURE_get0_description(const EVP_SIGNATURE *signature); -void EVP_SIGNATURE_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_SIGNATURE *signature, - void *data), - void *data); -int EVP_SIGNATURE_names_do_all(const EVP_SIGNATURE *signature, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PARAM *EVP_SIGNATURE_gettable_ctx_params(const EVP_SIGNATURE *sig); -const OSSL_PARAM *EVP_SIGNATURE_settable_ctx_params(const EVP_SIGNATURE *sig); - -void EVP_ASYM_CIPHER_free(EVP_ASYM_CIPHER *cipher); -int EVP_ASYM_CIPHER_up_ref(EVP_ASYM_CIPHER *cipher); -OSSL_PROVIDER *EVP_ASYM_CIPHER_get0_provider(const EVP_ASYM_CIPHER *cipher); -EVP_ASYM_CIPHER *EVP_ASYM_CIPHER_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, - const char *properties); -int EVP_ASYM_CIPHER_is_a(const EVP_ASYM_CIPHER *cipher, const char *name); -const char *EVP_ASYM_CIPHER_get0_name(const EVP_ASYM_CIPHER *cipher); -const char *EVP_ASYM_CIPHER_get0_description(const EVP_ASYM_CIPHER *cipher); -void EVP_ASYM_CIPHER_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_ASYM_CIPHER *cipher, - void *arg), - void *arg); -int EVP_ASYM_CIPHER_names_do_all(const EVP_ASYM_CIPHER *cipher, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PARAM *EVP_ASYM_CIPHER_gettable_ctx_params(const EVP_ASYM_CIPHER *ciph); -const OSSL_PARAM *EVP_ASYM_CIPHER_settable_ctx_params(const EVP_ASYM_CIPHER *ciph); - -void EVP_KEM_free(EVP_KEM *wrap); -int EVP_KEM_up_ref(EVP_KEM *wrap); -OSSL_PROVIDER *EVP_KEM_get0_provider(const EVP_KEM *wrap); -EVP_KEM *EVP_KEM_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, - const char *properties); -int EVP_KEM_is_a(const EVP_KEM *wrap, const char *name); -const char *EVP_KEM_get0_name(const EVP_KEM *wrap); -const char *EVP_KEM_get0_description(const EVP_KEM *wrap); -void EVP_KEM_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_KEM *wrap, void *arg), void *arg); -int EVP_KEM_names_do_all(const EVP_KEM *wrap, - void (*fn)(const char *name, void *data), void *data); -const OSSL_PARAM *EVP_KEM_gettable_ctx_params(const EVP_KEM *kem); -const OSSL_PARAM *EVP_KEM_settable_ctx_params(const EVP_KEM *kem); - -int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_sign_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); -int EVP_PKEY_sign_init_ex2(EVP_PKEY_CTX *ctx, - EVP_SIGNATURE *algo, const OSSL_PARAM params[]); -int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, - unsigned char *sig, size_t *siglen, - const unsigned char *tbs, size_t tbslen); -int EVP_PKEY_sign_message_init(EVP_PKEY_CTX *ctx, - EVP_SIGNATURE *algo, const OSSL_PARAM params[]); -int EVP_PKEY_sign_message_update(EVP_PKEY_CTX *ctx, - const unsigned char *in, size_t inlen); -int EVP_PKEY_sign_message_final(EVP_PKEY_CTX *ctx, - unsigned char *sig, size_t *siglen); -int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_verify_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); -int EVP_PKEY_verify_init_ex2(EVP_PKEY_CTX *ctx, - EVP_SIGNATURE *algo, const OSSL_PARAM params[]); -int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, - const unsigned char *sig, size_t siglen, - const unsigned char *tbs, size_t tbslen); -int EVP_PKEY_verify_message_init(EVP_PKEY_CTX *ctx, - EVP_SIGNATURE *algo, const OSSL_PARAM params[]); -int EVP_PKEY_verify_message_update(EVP_PKEY_CTX *ctx, - const unsigned char *in, size_t inlen); -int EVP_PKEY_verify_message_final(EVP_PKEY_CTX *ctx); -int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_verify_recover_init_ex(EVP_PKEY_CTX *ctx, - const OSSL_PARAM params[]); -int EVP_PKEY_verify_recover_init_ex2(EVP_PKEY_CTX *ctx, - EVP_SIGNATURE *algo, - const OSSL_PARAM params[]); -int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, - unsigned char *rout, size_t *routlen, - const unsigned char *sig, size_t siglen); -int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_encrypt_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); -int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen); -int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_decrypt_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); -int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen); - -int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_derive_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); -int EVP_PKEY_derive_set_peer_ex(EVP_PKEY_CTX *ctx, EVP_PKEY *peer, - int validate_peer); -int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer); -int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); -EVP_SKEY *EVP_PKEY_derive_SKEY(EVP_PKEY_CTX *ctx, EVP_SKEYMGMT *mgmt, - const char *key_type, const char *propquery, - size_t keylen, const OSSL_PARAM params[]); - -int EVP_PKEY_encapsulate_init(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); -int EVP_PKEY_auth_encapsulate_init(EVP_PKEY_CTX *ctx, EVP_PKEY *authpriv, - const OSSL_PARAM params[]); -int EVP_PKEY_encapsulate(EVP_PKEY_CTX *ctx, - unsigned char *wrappedkey, size_t *wrappedkeylen, - unsigned char *genkey, size_t *genkeylen); -int EVP_PKEY_decapsulate_init(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); -int EVP_PKEY_auth_decapsulate_init(EVP_PKEY_CTX *ctx, EVP_PKEY *authpub, - const OSSL_PARAM params[]); -int EVP_PKEY_decapsulate(EVP_PKEY_CTX *ctx, - unsigned char *unwrapped, size_t *unwrappedlen, - const unsigned char *wrapped, size_t wrappedlen); -typedef int EVP_PKEY_gen_cb(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_fromdata_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_fromdata(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey, int selection, - OSSL_PARAM param[]); -const OSSL_PARAM *EVP_PKEY_fromdata_settable(EVP_PKEY_CTX *ctx, int selection); - -int EVP_PKEY_todata(const EVP_PKEY *pkey, int selection, OSSL_PARAM **params); -int EVP_PKEY_export(const EVP_PKEY *pkey, int selection, - OSSL_CALLBACK *export_cb, void *export_cbarg); - -const OSSL_PARAM *EVP_PKEY_gettable_params(const EVP_PKEY *pkey); -int EVP_PKEY_get_params(const EVP_PKEY *pkey, OSSL_PARAM params[]); -int EVP_PKEY_get_int_param(const EVP_PKEY *pkey, const char *key_name, - int *out); -int EVP_PKEY_get_size_t_param(const EVP_PKEY *pkey, const char *key_name, - size_t *out); -int EVP_PKEY_get_bn_param(const EVP_PKEY *pkey, const char *key_name, - BIGNUM **bn); -int EVP_PKEY_get_utf8_string_param(const EVP_PKEY *pkey, const char *key_name, - char *str, size_t max_buf_sz, size_t *out_sz); -int EVP_PKEY_get_octet_string_param(const EVP_PKEY *pkey, const char *key_name, - unsigned char *buf, size_t max_buf_sz, - size_t *out_sz); - -const OSSL_PARAM *EVP_PKEY_settable_params(const EVP_PKEY *pkey); -int EVP_PKEY_set_params(EVP_PKEY *pkey, OSSL_PARAM params[]); -int EVP_PKEY_set_int_param(EVP_PKEY *pkey, const char *key_name, int in); -int EVP_PKEY_set_size_t_param(EVP_PKEY *pkey, const char *key_name, size_t in); -int EVP_PKEY_set_bn_param(EVP_PKEY *pkey, const char *key_name, - const BIGNUM *bn); -int EVP_PKEY_set_utf8_string_param(EVP_PKEY *pkey, const char *key_name, - const char *str); -int EVP_PKEY_set_octet_string_param(EVP_PKEY *pkey, const char *key_name, - const unsigned char *buf, size_t bsize); - -int EVP_PKEY_get_ec_point_conv_form(const EVP_PKEY *pkey); -int EVP_PKEY_get_field_type(const EVP_PKEY *pkey); - -EVP_PKEY *EVP_PKEY_Q_keygen(OSSL_LIB_CTX *libctx, const char *propq, - const char *type, ...); -int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); -int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); -int EVP_PKEY_generate(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); -int EVP_PKEY_check(EVP_PKEY_CTX *ctx); -int EVP_PKEY_public_check(EVP_PKEY_CTX *ctx); -int EVP_PKEY_public_check_quick(EVP_PKEY_CTX *ctx); -int EVP_PKEY_param_check(EVP_PKEY_CTX *ctx); -int EVP_PKEY_param_check_quick(EVP_PKEY_CTX *ctx); -int EVP_PKEY_private_check(EVP_PKEY_CTX *ctx); -int EVP_PKEY_pairwise_check(EVP_PKEY_CTX *ctx); - -# define EVP_PKEY_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_EVP_PKEY, l, p, newf, dupf, freef) -int EVP_PKEY_set_ex_data(EVP_PKEY *key, int idx, void *arg); -void *EVP_PKEY_get_ex_data(const EVP_PKEY *key, int idx); - -void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb); -EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth, - int (*init) (EVP_PKEY_CTX *ctx)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_copy - (EVP_PKEY_METHOD *pmeth, int (*copy) (EVP_PKEY_CTX *dst, - const EVP_PKEY_CTX *src)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_cleanup - (EVP_PKEY_METHOD *pmeth, void (*cleanup) (EVP_PKEY_CTX *ctx)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_paramgen - (EVP_PKEY_METHOD *pmeth, int (*paramgen_init) (EVP_PKEY_CTX *ctx), - int (*paramgen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_keygen - (EVP_PKEY_METHOD *pmeth, int (*keygen_init) (EVP_PKEY_CTX *ctx), - int (*keygen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_sign - (EVP_PKEY_METHOD *pmeth, int (*sign_init) (EVP_PKEY_CTX *ctx), - int (*sign) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, - const unsigned char *tbs, size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_verify - (EVP_PKEY_METHOD *pmeth, int (*verify_init) (EVP_PKEY_CTX *ctx), - int (*verify) (EVP_PKEY_CTX *ctx, const unsigned char *sig, size_t siglen, - const unsigned char *tbs, size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_verify_recover - (EVP_PKEY_METHOD *pmeth, int (*verify_recover_init) (EVP_PKEY_CTX *ctx), - int (*verify_recover) (EVP_PKEY_CTX *ctx, unsigned char *sig, - size_t *siglen, const unsigned char *tbs, - size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_signctx - (EVP_PKEY_METHOD *pmeth, int (*signctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (*signctx) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, - EVP_MD_CTX *mctx)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_verifyctx - (EVP_PKEY_METHOD *pmeth, int (*verifyctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (*verifyctx) (EVP_PKEY_CTX *ctx, const unsigned char *sig, int siglen, - EVP_MD_CTX *mctx)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_encrypt - (EVP_PKEY_METHOD *pmeth, int (*encrypt_init) (EVP_PKEY_CTX *ctx), - int (*encryptfn) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_decrypt - (EVP_PKEY_METHOD *pmeth, int (*decrypt_init) (EVP_PKEY_CTX *ctx), - int (*decrypt) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_derive - (EVP_PKEY_METHOD *pmeth, int (*derive_init) (EVP_PKEY_CTX *ctx), - int (*derive) (EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_ctrl - (EVP_PKEY_METHOD *pmeth, int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, - void *p2), - int (*ctrl_str) (EVP_PKEY_CTX *ctx, const char *type, const char *value)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_digestsign - (EVP_PKEY_METHOD *pmeth, - int (*digestsign) (EVP_MD_CTX *ctx, unsigned char *sig, size_t *siglen, - const unsigned char *tbs, size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_digestverify - (EVP_PKEY_METHOD *pmeth, - int (*digestverify) (EVP_MD_CTX *ctx, const unsigned char *sig, - size_t siglen, const unsigned char *tbs, - size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_check - (EVP_PKEY_METHOD *pmeth, int (*check) (EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_public_check - (EVP_PKEY_METHOD *pmeth, int (*check) (EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_param_check - (EVP_PKEY_METHOD *pmeth, int (*check) (EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_digest_custom - (EVP_PKEY_METHOD *pmeth, int (*digest_custom) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_init - (const EVP_PKEY_METHOD *pmeth, int (**pinit) (EVP_PKEY_CTX *ctx)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_copy - (const EVP_PKEY_METHOD *pmeth, int (**pcopy) (EVP_PKEY_CTX *dst, - const EVP_PKEY_CTX *src)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_cleanup - (const EVP_PKEY_METHOD *pmeth, void (**pcleanup) (EVP_PKEY_CTX *ctx)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_paramgen - (const EVP_PKEY_METHOD *pmeth, int (**pparamgen_init) (EVP_PKEY_CTX *ctx), - int (**pparamgen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_keygen - (const EVP_PKEY_METHOD *pmeth, int (**pkeygen_init) (EVP_PKEY_CTX *ctx), - int (**pkeygen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_sign - (const EVP_PKEY_METHOD *pmeth, int (**psign_init) (EVP_PKEY_CTX *ctx), - int (**psign) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, - const unsigned char *tbs, size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_verify - (const EVP_PKEY_METHOD *pmeth, int (**pverify_init) (EVP_PKEY_CTX *ctx), - int (**pverify) (EVP_PKEY_CTX *ctx, const unsigned char *sig, - size_t siglen, const unsigned char *tbs, size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_verify_recover - (const EVP_PKEY_METHOD *pmeth, - int (**pverify_recover_init) (EVP_PKEY_CTX *ctx), - int (**pverify_recover) (EVP_PKEY_CTX *ctx, unsigned char *sig, - size_t *siglen, const unsigned char *tbs, - size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_signctx - (const EVP_PKEY_METHOD *pmeth, - int (**psignctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx), - int (**psignctx) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, - EVP_MD_CTX *mctx)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_verifyctx - (const EVP_PKEY_METHOD *pmeth, - int (**pverifyctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx), - int (**pverifyctx) (EVP_PKEY_CTX *ctx, const unsigned char *sig, - int siglen, EVP_MD_CTX *mctx)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_encrypt - (const EVP_PKEY_METHOD *pmeth, int (**pencrypt_init) (EVP_PKEY_CTX *ctx), - int (**pencryptfn) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_decrypt - (const EVP_PKEY_METHOD *pmeth, int (**pdecrypt_init) (EVP_PKEY_CTX *ctx), - int (**pdecrypt) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_derive - (const EVP_PKEY_METHOD *pmeth, int (**pderive_init) (EVP_PKEY_CTX *ctx), - int (**pderive) (EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_ctrl - (const EVP_PKEY_METHOD *pmeth, - int (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1, void *p2), - int (**pctrl_str) (EVP_PKEY_CTX *ctx, const char *type, - const char *value)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_digestsign - (const EVP_PKEY_METHOD *pmeth, - int (**digestsign) (EVP_MD_CTX *ctx, unsigned char *sig, size_t *siglen, - const unsigned char *tbs, size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_digestverify - (const EVP_PKEY_METHOD *pmeth, - int (**digestverify) (EVP_MD_CTX *ctx, const unsigned char *sig, - size_t siglen, const unsigned char *tbs, - size_t tbslen)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_check - (const EVP_PKEY_METHOD *pmeth, int (**pcheck) (EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_public_check - (const EVP_PKEY_METHOD *pmeth, int (**pcheck) (EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_param_check - (const EVP_PKEY_METHOD *pmeth, int (**pcheck) (EVP_PKEY *pkey)); -OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_digest_custom - (const EVP_PKEY_METHOD *pmeth, - int (**pdigest_custom) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx)); -# endif - -void EVP_KEYEXCH_free(EVP_KEYEXCH *exchange); -int EVP_KEYEXCH_up_ref(EVP_KEYEXCH *exchange); -EVP_KEYEXCH *EVP_KEYEXCH_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, - const char *properties); -OSSL_PROVIDER *EVP_KEYEXCH_get0_provider(const EVP_KEYEXCH *exchange); -int EVP_KEYEXCH_is_a(const EVP_KEYEXCH *keyexch, const char *name); -const char *EVP_KEYEXCH_get0_name(const EVP_KEYEXCH *keyexch); -const char *EVP_KEYEXCH_get0_description(const EVP_KEYEXCH *keyexch); -void EVP_KEYEXCH_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_KEYEXCH *keyexch, void *data), - void *data); -int EVP_KEYEXCH_names_do_all(const EVP_KEYEXCH *keyexch, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PARAM *EVP_KEYEXCH_gettable_ctx_params(const EVP_KEYEXCH *keyexch); -const OSSL_PARAM *EVP_KEYEXCH_settable_ctx_params(const EVP_KEYEXCH *keyexch); - -void EVP_add_alg_module(void); - -int EVP_PKEY_CTX_set_group_name(EVP_PKEY_CTX *ctx, const char *name); -int EVP_PKEY_CTX_get_group_name(EVP_PKEY_CTX *ctx, char *name, size_t namelen); -int EVP_PKEY_get_group_name(const EVP_PKEY *pkey, char *name, size_t name_sz, - size_t *gname_len); - -OSSL_LIB_CTX *EVP_PKEY_CTX_get0_libctx(EVP_PKEY_CTX *ctx); -const char *EVP_PKEY_CTX_get0_propq(const EVP_PKEY_CTX *ctx); -const OSSL_PROVIDER *EVP_PKEY_CTX_get0_provider(const EVP_PKEY_CTX *ctx); - -int EVP_SKEY_is_a(const EVP_SKEY *skey, const char *name); -EVP_SKEY *EVP_SKEY_import(OSSL_LIB_CTX *libctx, const char *skeymgmtname, const char *propquery, - int selection, const OSSL_PARAM *params); -EVP_SKEY *EVP_SKEY_generate(OSSL_LIB_CTX *libctx, const char *skeymgmtname, - const char *propquery, const OSSL_PARAM *params); -EVP_SKEY *EVP_SKEY_import_raw_key(OSSL_LIB_CTX *libctx, const char *skeymgmtname, - unsigned char *key, size_t keylen, - const char *propquery); -EVP_SKEY *EVP_SKEY_import_SKEYMGMT(OSSL_LIB_CTX *libctx, EVP_SKEYMGMT *skeymgmt, - int selection, const OSSL_PARAM *params); -int EVP_SKEY_get0_raw_key(const EVP_SKEY *skey, const unsigned char **key, - size_t *len); -const char *EVP_SKEY_get0_key_id(const EVP_SKEY *skey); -int EVP_SKEY_export(const EVP_SKEY *skey, int selection, - OSSL_CALLBACK *export_cb, void *export_cbarg); -int EVP_SKEY_up_ref(EVP_SKEY *skey); -void EVP_SKEY_free(EVP_SKEY *skey); -const char *EVP_SKEY_get0_skeymgmt_name(const EVP_SKEY *skey); -const char *EVP_SKEY_get0_provider_name(const EVP_SKEY *skey); -EVP_SKEY *EVP_SKEY_to_provider(EVP_SKEY *skey, OSSL_LIB_CTX *libctx, - OSSL_PROVIDER *prov, const char *propquery); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/evperr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/evperr.h deleted file mode 100644 index 6dc846a..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/evperr.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_EVPERR_H -# define OPENSSL_EVPERR_H -# pragma once - -# include -# include -# include - - - -/* - * EVP reason codes. - */ -# define EVP_R_AES_KEY_SETUP_FAILED 143 -# define EVP_R_ARIA_KEY_SETUP_FAILED 176 -# define EVP_R_BAD_ALGORITHM_NAME 200 -# define EVP_R_BAD_DECRYPT 100 -# define EVP_R_BAD_KEY_LENGTH 195 -# define EVP_R_BUFFER_TOO_SMALL 155 -# define EVP_R_CACHE_CONSTANTS_FAILED 225 -# define EVP_R_CAMELLIA_KEY_SETUP_FAILED 157 -# define EVP_R_CANNOT_GET_PARAMETERS 197 -# define EVP_R_CANNOT_SET_PARAMETERS 198 -# define EVP_R_CIPHER_NOT_GCM_MODE 184 -# define EVP_R_CIPHER_PARAMETER_ERROR 122 -# define EVP_R_COMMAND_NOT_SUPPORTED 147 -# define EVP_R_CONFLICTING_ALGORITHM_NAME 201 -# define EVP_R_COPY_ERROR 173 -# define EVP_R_CTRL_NOT_IMPLEMENTED 132 -# define EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED 133 -# define EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH 138 -# define EVP_R_DECODE_ERROR 114 -# define EVP_R_DEFAULT_QUERY_PARSE_ERROR 210 -# define EVP_R_DIFFERENT_KEY_TYPES 101 -# define EVP_R_DIFFERENT_PARAMETERS 153 -# define EVP_R_ERROR_LOADING_SECTION 165 -# define EVP_R_EXPECTING_AN_HMAC_KEY 174 -# define EVP_R_EXPECTING_AN_RSA_KEY 127 -# define EVP_R_EXPECTING_A_DH_KEY 128 -# define EVP_R_EXPECTING_A_DSA_KEY 129 -# define EVP_R_EXPECTING_A_ECX_KEY 219 -# define EVP_R_EXPECTING_A_EC_KEY 142 -# define EVP_R_EXPECTING_A_POLY1305_KEY 164 -# define EVP_R_EXPECTING_A_SIPHASH_KEY 175 -# define EVP_R_FINAL_ERROR 188 -# define EVP_R_GENERATE_ERROR 214 -# define EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED 229 -# define EVP_R_GET_RAW_KEY_FAILED 182 -# define EVP_R_ILLEGAL_SCRYPT_PARAMETERS 171 -# define EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS 204 -# define EVP_R_INACCESSIBLE_KEY 203 -# define EVP_R_INITIALIZATION_ERROR 134 -# define EVP_R_INPUT_NOT_INITIALIZED 111 -# define EVP_R_INVALID_CUSTOM_LENGTH 185 -# define EVP_R_INVALID_DIGEST 152 -# define EVP_R_INVALID_IV_LENGTH 194 -# define EVP_R_INVALID_KEY 163 -# define EVP_R_INVALID_KEY_LENGTH 130 -# define EVP_R_INVALID_LENGTH 221 -# define EVP_R_INVALID_NULL_ALGORITHM 218 -# define EVP_R_INVALID_OPERATION 148 -# define EVP_R_INVALID_PROVIDER_FUNCTIONS 193 -# define EVP_R_INVALID_SALT_LENGTH 186 -# define EVP_R_INVALID_SECRET_LENGTH 223 -# define EVP_R_INVALID_SEED_LENGTH 220 -# define EVP_R_INVALID_VALUE 222 -# define EVP_R_KEYMGMT_EXPORT_FAILURE 205 -# define EVP_R_KEY_SETUP_FAILED 180 -# define EVP_R_LOCKING_NOT_SUPPORTED 213 -# define EVP_R_MEMORY_LIMIT_EXCEEDED 172 -# define EVP_R_MESSAGE_DIGEST_IS_NULL 159 -# define EVP_R_METHOD_NOT_SUPPORTED 144 -# define EVP_R_MISSING_PARAMETERS 103 -# define EVP_R_NOT_ABLE_TO_COPY_CTX 190 -# define EVP_R_NOT_XOF_OR_INVALID_LENGTH 178 -# define EVP_R_NO_CIPHER_SET 131 -# define EVP_R_NO_DEFAULT_DIGEST 158 -# define EVP_R_NO_DIGEST_SET 139 -# define EVP_R_NO_IMPORT_FUNCTION 206 -# define EVP_R_NO_KEYMGMT_AVAILABLE 199 -# define EVP_R_NO_KEYMGMT_PRESENT 196 -# define EVP_R_NO_KEY_SET 154 -# define EVP_R_NO_OPERATION_SET 149 -# define EVP_R_NULL_MAC_PKEY_CTX 208 -# define EVP_R_ONLY_ONESHOT_SUPPORTED 177 -# define EVP_R_OPERATION_NOT_INITIALIZED 151 -# define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 150 -# define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE 226 -# define EVP_R_OUTPUT_WOULD_OVERFLOW 202 -# define EVP_R_PARAMETER_TOO_LARGE 187 -# define EVP_R_PARTIALLY_OVERLAPPING 162 -# define EVP_R_PBKDF2_ERROR 181 -# define EVP_R_PIPELINE_NOT_SUPPORTED 230 -# define EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED 179 -# define EVP_R_PRIVATE_KEY_DECODE_ERROR 145 -# define EVP_R_PRIVATE_KEY_ENCODE_ERROR 146 -# define EVP_R_PROVIDER_ASYM_CIPHER_FAILURE 232 -# define EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED 235 -# define EVP_R_PROVIDER_KEYMGMT_FAILURE 233 -# define EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED 236 -# define EVP_R_PROVIDER_SIGNATURE_FAILURE 234 -# define EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED 237 -# define EVP_R_PUBLIC_KEY_NOT_RSA 106 -# define EVP_R_SETTING_XOF_FAILED 227 -# define EVP_R_SET_DEFAULT_PROPERTY_FAILURE 209 -# define EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE 228 -# define EVP_R_TOO_MANY_PIPES 231 -# define EVP_R_TOO_MANY_RECORDS 183 -# define EVP_R_UNABLE_TO_ENABLE_LOCKING 212 -# define EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE 215 -# define EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH 216 -# define EVP_R_UNABLE_TO_LOCK_CONTEXT 211 -# define EVP_R_UNABLE_TO_SET_CALLBACKS 217 -# define EVP_R_UNKNOWN_BITS 166 -# define EVP_R_UNKNOWN_CIPHER 160 -# define EVP_R_UNKNOWN_DIGEST 161 -# define EVP_R_UNKNOWN_KEY_TYPE 207 -# define EVP_R_UNKNOWN_MAX_SIZE 167 -# define EVP_R_UNKNOWN_OPTION 169 -# define EVP_R_UNKNOWN_PBE_ALGORITHM 121 -# define EVP_R_UNKNOWN_SECURITY_BITS 168 -# define EVP_R_UNSUPPORTED_ALGORITHM 156 -# define EVP_R_UNSUPPORTED_CIPHER 107 -# define EVP_R_UNSUPPORTED_KEYLENGTH 123 -# define EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION 124 -# define EVP_R_UNSUPPORTED_KEY_SIZE 108 -# define EVP_R_UNSUPPORTED_KEY_TYPE 224 -# define EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS 135 -# define EVP_R_UNSUPPORTED_PRF 125 -# define EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM 118 -# define EVP_R_UNSUPPORTED_SALT_TYPE 126 -# define EVP_R_UPDATE_ERROR 189 -# define EVP_R_WRAP_MODE_NOT_ALLOWED 170 -# define EVP_R_WRONG_FINAL_BLOCK_LENGTH 109 -# define EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE 191 -# define EVP_R_XTS_DUPLICATED_KEYS 192 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/fips_names.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/fips_names.h deleted file mode 100644 index fa481fc..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/fips_names.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2019-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_FIPS_NAMES_H -# define OPENSSL_FIPS_NAMES_H -# pragma once - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * Parameter names that the FIPS Provider defines - * All parameters are of type: OSSL_PARAM_UTF8_STRING - */ - -/* The following 4 Parameters are used for FIPS Self Testing */ - -/* The calculated MAC of the module file */ -# define OSSL_PROV_FIPS_PARAM_MODULE_MAC "module-mac" -/* The Version number for the fips install process */ -# define OSSL_PROV_FIPS_PARAM_INSTALL_VERSION "install-version" -/* The calculated MAC of the install status indicator */ -# define OSSL_PROV_FIPS_PARAM_INSTALL_MAC "install-mac" -/* The install status indicator */ -# define OSSL_PROV_FIPS_PARAM_INSTALL_STATUS "install-status" - -/* - * A boolean that determines if the FIPS conditional test errors result in - * the module entering an error state. - * Type: OSSL_PARAM_UTF8_STRING - */ -# define OSSL_PROV_FIPS_PARAM_CONDITIONAL_ERRORS "conditional-errors" - -/* The following are provided for backwards compatibility */ -# define OSSL_PROV_FIPS_PARAM_SECURITY_CHECKS OSSL_PROV_PARAM_SECURITY_CHECKS -# define OSSL_PROV_FIPS_PARAM_TLS1_PRF_EMS_CHECK OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK -# define OSSL_PROV_FIPS_PARAM_DRBG_TRUNC_DIGEST OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST - -# ifdef __cplusplus -} -# endif - -#endif /* OPENSSL_FIPS_NAMES_H */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/fipskey.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/fipskey.h deleted file mode 100644 index 1c8d1cb..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/fipskey.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\fipskey.h.in - * - * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_FIPSKEY_H -# define OPENSSL_FIPSKEY_H -# pragma once - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * The FIPS validation HMAC key, usable as an array initializer. - */ -#define FIPS_KEY_ELEMENTS \ - 0xf4, 0x55, 0x66, 0x50, 0xac, 0x31, 0xd3, 0x54, 0x61, 0x61, 0x0b, 0xac, 0x4e, 0xd8, 0x1b, 0x1a, 0x18, 0x1b, 0x2d, 0x8a, 0x43, 0xea, 0x28, 0x54, 0xcb, 0xae, 0x22, 0xca, 0x74, 0x56, 0x08, 0x13 - -/* - * The FIPS validation key, as a string. - */ -#define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" - -/* - * The FIPS provider vendor name, as a string. - */ -#define FIPS_VENDOR "OpenSSL non-compliant FIPS Provider" - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/hmac.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/hmac.h deleted file mode 100644 index f9e1bff..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/hmac.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_HMAC_H -# define OPENSSL_HMAC_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_HMAC_H -# endif - -# include - -# include - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HMAC_MAX_MD_CBLOCK 200 /* Deprecated */ -# endif - -# ifdef __cplusplus -extern "C" { -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 size_t HMAC_size(const HMAC_CTX *e); -OSSL_DEPRECATEDIN_3_0 HMAC_CTX *HMAC_CTX_new(void); -OSSL_DEPRECATEDIN_3_0 int HMAC_CTX_reset(HMAC_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 void HMAC_CTX_free(HMAC_CTX *ctx); -# endif -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 __owur int HMAC_Init(HMAC_CTX *ctx, - const void *key, int len, - const EVP_MD *md); -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, - const EVP_MD *md, ENGINE *impl); -OSSL_DEPRECATEDIN_3_0 int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, - size_t len); -OSSL_DEPRECATEDIN_3_0 int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, - unsigned int *len); -OSSL_DEPRECATEDIN_3_0 __owur int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx); -OSSL_DEPRECATEDIN_3_0 void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags); -OSSL_DEPRECATEDIN_3_0 const EVP_MD *HMAC_CTX_get_md(const HMAC_CTX *ctx); -# endif - -unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len, - const unsigned char *data, size_t data_len, - unsigned char *md, unsigned int *md_len); - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/hpke.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/hpke.h deleted file mode 100644 index 482acd2..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/hpke.h +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* APIs and data structures for HPKE (RFC9180) */ -#ifndef OSSL_HPKE_H -# define OSSL_HPKE_H -# pragma once - -# include - -/* HPKE modes */ -# define OSSL_HPKE_MODE_BASE 0 /* Base mode */ -# define OSSL_HPKE_MODE_PSK 1 /* Pre-shared key mode */ -# define OSSL_HPKE_MODE_AUTH 2 /* Authenticated mode */ -# define OSSL_HPKE_MODE_PSKAUTH 3 /* PSK+authenticated mode */ - -/* - * Max for ikm, psk, pskid, info and exporter contexts. - * RFC9180, section 7.2.1 RECOMMENDS 64 octets but we have test vectors from - * Appendix A.6.1 with a 66 octet IKM so we'll allow that. - */ -# define OSSL_HPKE_MAX_PARMLEN 66 -# define OSSL_HPKE_MIN_PSKLEN 32 -# define OSSL_HPKE_MAX_INFOLEN 1024 - -/* - * The (16bit) HPKE algorithm ID IANA codepoints - * If/when new IANA codepoints are added there are tables in - * crypto/hpke/hpke_util.c that must also be updated. - */ -# define OSSL_HPKE_KEM_ID_RESERVED 0x0000 /* not used */ -# define OSSL_HPKE_KEM_ID_P256 0x0010 /* NIST P-256 */ -# define OSSL_HPKE_KEM_ID_P384 0x0011 /* NIST P-384 */ -# define OSSL_HPKE_KEM_ID_P521 0x0012 /* NIST P-521 */ -# define OSSL_HPKE_KEM_ID_X25519 0x0020 /* Curve25519 */ -# define OSSL_HPKE_KEM_ID_X448 0x0021 /* Curve448 */ - -# define OSSL_HPKE_KDF_ID_RESERVED 0x0000 /* not used */ -# define OSSL_HPKE_KDF_ID_HKDF_SHA256 0x0001 /* HKDF-SHA256 */ -# define OSSL_HPKE_KDF_ID_HKDF_SHA384 0x0002 /* HKDF-SHA384 */ -# define OSSL_HPKE_KDF_ID_HKDF_SHA512 0x0003 /* HKDF-SHA512 */ - -# define OSSL_HPKE_AEAD_ID_RESERVED 0x0000 /* not used */ -# define OSSL_HPKE_AEAD_ID_AES_GCM_128 0x0001 /* AES-GCM-128 */ -# define OSSL_HPKE_AEAD_ID_AES_GCM_256 0x0002 /* AES-GCM-256 */ -# define OSSL_HPKE_AEAD_ID_CHACHA_POLY1305 0x0003 /* Chacha20-Poly1305 */ -# define OSSL_HPKE_AEAD_ID_EXPORTONLY 0xFFFF /* export-only fake ID */ - -/* strings for suite components */ -# define OSSL_HPKE_KEMSTR_P256 "P-256" /* KEM id 0x10 */ -# define OSSL_HPKE_KEMSTR_P384 "P-384" /* KEM id 0x11 */ -# define OSSL_HPKE_KEMSTR_P521 "P-521" /* KEM id 0x12 */ -# define OSSL_HPKE_KEMSTR_X25519 "X25519" /* KEM id 0x20 */ -# define OSSL_HPKE_KEMSTR_X448 "X448" /* KEM id 0x21 */ -# define OSSL_HPKE_KDFSTR_256 "hkdf-sha256" /* KDF id 1 */ -# define OSSL_HPKE_KDFSTR_384 "hkdf-sha384" /* KDF id 2 */ -# define OSSL_HPKE_KDFSTR_512 "hkdf-sha512" /* KDF id 3 */ -# define OSSL_HPKE_AEADSTR_AES128GCM "aes-128-gcm" /* AEAD id 1 */ -# define OSSL_HPKE_AEADSTR_AES256GCM "aes-256-gcm" /* AEAD id 2 */ -# define OSSL_HPKE_AEADSTR_CP "chacha20-poly1305" /* AEAD id 3 */ -# define OSSL_HPKE_AEADSTR_EXP "exporter" /* AEAD id 0xff */ - -/* - * Roles for use in creating an OSSL_HPKE_CTX, most - * important use of this is to control nonce reuse. - */ -# define OSSL_HPKE_ROLE_SENDER 0 -# define OSSL_HPKE_ROLE_RECEIVER 1 - -# ifdef __cplusplus -extern "C" { -# endif - -typedef struct { - uint16_t kem_id; /* Key Encapsulation Method id */ - uint16_t kdf_id; /* Key Derivation Function id */ - uint16_t aead_id; /* AEAD alg id */ -} OSSL_HPKE_SUITE; - -/** - * Suite constants, use this like: - * OSSL_HPKE_SUITE myvar = OSSL_HPKE_SUITE_DEFAULT; - */ -# ifndef OPENSSL_NO_ECX -# define OSSL_HPKE_SUITE_DEFAULT \ - {\ - OSSL_HPKE_KEM_ID_X25519, \ - OSSL_HPKE_KDF_ID_HKDF_SHA256, \ - OSSL_HPKE_AEAD_ID_AES_GCM_128 \ - } -# else -# define OSSL_HPKE_SUITE_DEFAULT \ - {\ - OSSL_HPKE_KEM_ID_P256, \ - OSSL_HPKE_KDF_ID_HKDF_SHA256, \ - OSSL_HPKE_AEAD_ID_AES_GCM_128 \ - } -#endif - -typedef struct ossl_hpke_ctx_st OSSL_HPKE_CTX; - -OSSL_HPKE_CTX *OSSL_HPKE_CTX_new(int mode, OSSL_HPKE_SUITE suite, int role, - OSSL_LIB_CTX *libctx, const char *propq); -void OSSL_HPKE_CTX_free(OSSL_HPKE_CTX *ctx); - -int OSSL_HPKE_encap(OSSL_HPKE_CTX *ctx, - unsigned char *enc, size_t *enclen, - const unsigned char *pub, size_t publen, - const unsigned char *info, size_t infolen); -int OSSL_HPKE_seal(OSSL_HPKE_CTX *ctx, - unsigned char *ct, size_t *ctlen, - const unsigned char *aad, size_t aadlen, - const unsigned char *pt, size_t ptlen); - -int OSSL_HPKE_keygen(OSSL_HPKE_SUITE suite, - unsigned char *pub, size_t *publen, EVP_PKEY **priv, - const unsigned char *ikm, size_t ikmlen, - OSSL_LIB_CTX *libctx, const char *propq); -int OSSL_HPKE_decap(OSSL_HPKE_CTX *ctx, - const unsigned char *enc, size_t enclen, - EVP_PKEY *recippriv, - const unsigned char *info, size_t infolen); -int OSSL_HPKE_open(OSSL_HPKE_CTX *ctx, - unsigned char *pt, size_t *ptlen, - const unsigned char *aad, size_t aadlen, - const unsigned char *ct, size_t ctlen); - -int OSSL_HPKE_export(OSSL_HPKE_CTX *ctx, - unsigned char *secret, - size_t secretlen, - const unsigned char *label, - size_t labellen); - -int OSSL_HPKE_CTX_set1_authpriv(OSSL_HPKE_CTX *ctx, EVP_PKEY *priv); -int OSSL_HPKE_CTX_set1_authpub(OSSL_HPKE_CTX *ctx, - const unsigned char *pub, - size_t publen); -int OSSL_HPKE_CTX_set1_psk(OSSL_HPKE_CTX *ctx, - const char *pskid, - const unsigned char *psk, size_t psklen); - -int OSSL_HPKE_CTX_set1_ikme(OSSL_HPKE_CTX *ctx, - const unsigned char *ikme, size_t ikmelen); - -int OSSL_HPKE_CTX_set_seq(OSSL_HPKE_CTX *ctx, uint64_t seq); -int OSSL_HPKE_CTX_get_seq(OSSL_HPKE_CTX *ctx, uint64_t *seq); - -int OSSL_HPKE_suite_check(OSSL_HPKE_SUITE suite); -int OSSL_HPKE_get_grease_value(const OSSL_HPKE_SUITE *suite_in, - OSSL_HPKE_SUITE *suite, - unsigned char *enc, size_t *enclen, - unsigned char *ct, size_t ctlen, - OSSL_LIB_CTX *libctx, const char *propq); -int OSSL_HPKE_str2suite(const char *str, OSSL_HPKE_SUITE *suite); -size_t OSSL_HPKE_get_ciphertext_size(OSSL_HPKE_SUITE suite, size_t clearlen); -size_t OSSL_HPKE_get_public_encap_size(OSSL_HPKE_SUITE suite); -size_t OSSL_HPKE_get_recommended_ikmelen(OSSL_HPKE_SUITE suite); - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/http.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/http.h deleted file mode 100644 index d7aa570..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/http.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright 2000-2025 The OpenSSL Project Authors. All Rights Reserved. - * Copyright Siemens AG 2018-2020 - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_HTTP_H -# define OPENSSL_HTTP_H -# pragma once - -# include - -# include -# include -# include - - -# ifdef __cplusplus -extern "C" { -# endif - -# define OSSL_HTTP_NAME "http" -# define OSSL_HTTPS_NAME "https" -# define OSSL_HTTP_PREFIX OSSL_HTTP_NAME"://" -# define OSSL_HTTPS_PREFIX OSSL_HTTPS_NAME"://" -# define OSSL_HTTP_PORT "80" -# define OSSL_HTTPS_PORT "443" -# define OPENSSL_NO_PROXY "NO_PROXY" -# define OPENSSL_HTTP_PROXY "HTTP_PROXY" -# define OPENSSL_HTTPS_PROXY "HTTPS_PROXY" - -/* We want to have this even in case of OPENSSL_NO_HTTP */ -int OSSL_parse_url(const char *url, char **pscheme, char **puser, char **phost, - char **pport, int *pport_num, - char **ppath, char **pquery, char **pfrag); - -# ifndef OPENSSL_NO_HTTP - -# define OSSL_HTTP_DEFAULT_MAX_LINE_LEN (4 * 1024) -# define OSSL_HTTP_DEFAULT_MAX_RESP_LEN (100 * 1024) -# define OSSL_HTTP_DEFAULT_MAX_CRL_LEN (32 * 1024 * 1024) -# define OSSL_HTTP_DEFAULT_MAX_RESP_HDR_LINES 256 - - -/* Low-level HTTP API */ -OSSL_HTTP_REQ_CTX *OSSL_HTTP_REQ_CTX_new(BIO *wbio, BIO *rbio, int buf_size); -void OSSL_HTTP_REQ_CTX_free(OSSL_HTTP_REQ_CTX *rctx); -int OSSL_HTTP_REQ_CTX_set_request_line(OSSL_HTTP_REQ_CTX *rctx, int method_POST, - const char *server, const char *port, - const char *path); -int OSSL_HTTP_REQ_CTX_add1_header(OSSL_HTTP_REQ_CTX *rctx, - const char *name, const char *value); -int OSSL_HTTP_REQ_CTX_set_expected(OSSL_HTTP_REQ_CTX *rctx, - const char *content_type, int asn1, - int timeout, int keep_alive); -int OSSL_HTTP_REQ_CTX_set1_req(OSSL_HTTP_REQ_CTX *rctx, const char *content_type, - const ASN1_ITEM *it, const ASN1_VALUE *req); -int OSSL_HTTP_REQ_CTX_nbio(OSSL_HTTP_REQ_CTX *rctx); -int OSSL_HTTP_REQ_CTX_nbio_d2i(OSSL_HTTP_REQ_CTX *rctx, - ASN1_VALUE **pval, const ASN1_ITEM *it); -BIO *OSSL_HTTP_REQ_CTX_exchange(OSSL_HTTP_REQ_CTX *rctx); -BIO *OSSL_HTTP_REQ_CTX_get0_mem_bio(const OSSL_HTTP_REQ_CTX *rctx); -size_t OSSL_HTTP_REQ_CTX_get_resp_len(const OSSL_HTTP_REQ_CTX *rctx); -void OSSL_HTTP_REQ_CTX_set_max_response_length(OSSL_HTTP_REQ_CTX *rctx, - unsigned long len); -void OSSL_HTTP_REQ_CTX_set_max_response_hdr_lines(OSSL_HTTP_REQ_CTX *rctx, - size_t count); -int OSSL_HTTP_is_alive(const OSSL_HTTP_REQ_CTX *rctx); - -/* High-level HTTP API */ -typedef BIO *(*OSSL_HTTP_bio_cb_t)(BIO *bio, void *arg, int connect, int detail); -OSSL_HTTP_REQ_CTX *OSSL_HTTP_open(const char *server, const char *port, - const char *proxy, const char *no_proxy, - int use_ssl, BIO *bio, BIO *rbio, - OSSL_HTTP_bio_cb_t bio_update_fn, void *arg, - int buf_size, int overall_timeout); -int OSSL_HTTP_proxy_connect(BIO *bio, const char *server, const char *port, - const char *proxyuser, const char *proxypass, - int timeout, BIO *bio_err, const char *prog); -int OSSL_HTTP_set1_request(OSSL_HTTP_REQ_CTX *rctx, const char *path, - const STACK_OF(CONF_VALUE) *headers, - const char *content_type, BIO *req, - const char *expected_content_type, int expect_asn1, - size_t max_resp_len, int timeout, int keep_alive); -BIO *OSSL_HTTP_exchange(OSSL_HTTP_REQ_CTX *rctx, char **redirection_url); -BIO *OSSL_HTTP_get(const char *url, const char *proxy, const char *no_proxy, - BIO *bio, BIO *rbio, - OSSL_HTTP_bio_cb_t bio_update_fn, void *arg, - int buf_size, const STACK_OF(CONF_VALUE) *headers, - const char *expected_content_type, int expect_asn1, - size_t max_resp_len, int timeout); -BIO *OSSL_HTTP_transfer(OSSL_HTTP_REQ_CTX **prctx, - const char *server, const char *port, - const char *path, int use_ssl, - const char *proxy, const char *no_proxy, - BIO *bio, BIO *rbio, - OSSL_HTTP_bio_cb_t bio_update_fn, void *arg, - int buf_size, const STACK_OF(CONF_VALUE) *headers, - const char *content_type, BIO *req, - const char *expected_content_type, int expect_asn1, - size_t max_resp_len, int timeout, int keep_alive); -int OSSL_HTTP_close(OSSL_HTTP_REQ_CTX *rctx, int ok); - -/* Auxiliary functions */ -int OSSL_HTTP_parse_url(const char *url, int *pssl, char **puser, char **phost, - char **pport, int *pport_num, - char **ppath, char **pquery, char **pfrag); -const char *OSSL_HTTP_adapt_proxy(const char *proxy, const char *no_proxy, - const char *server, int use_ssl); - -# endif /* !defined(OPENSSL_NO_HTTP) */ -# ifdef __cplusplus -} -# endif -#endif /* !defined(OPENSSL_HTTP_H) */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/httperr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/httperr.h deleted file mode 100644 index ae7f00c..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/httperr.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_HTTPERR_H -# define OPENSSL_HTTPERR_H -# pragma once - -# include -# include -# include - - - -/* - * HTTP reason codes. - */ -# define HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN 108 -# define HTTP_R_CONNECT_FAILURE 100 -# define HTTP_R_ERROR_PARSING_ASN1_LENGTH 109 -# define HTTP_R_ERROR_PARSING_CONTENT_LENGTH 119 -# define HTTP_R_ERROR_PARSING_URL 101 -# define HTTP_R_ERROR_RECEIVING 103 -# define HTTP_R_ERROR_SENDING 102 -# define HTTP_R_FAILED_READING_DATA 128 -# define HTTP_R_HEADER_PARSE_ERROR 126 -# define HTTP_R_INCONSISTENT_CONTENT_LENGTH 120 -# define HTTP_R_INVALID_PORT_NUMBER 123 -# define HTTP_R_INVALID_URL_PATH 125 -# define HTTP_R_INVALID_URL_SCHEME 124 -# define HTTP_R_MAX_RESP_LEN_EXCEEDED 117 -# define HTTP_R_MISSING_ASN1_ENCODING 110 -# define HTTP_R_MISSING_CONTENT_TYPE 121 -# define HTTP_R_MISSING_REDIRECT_LOCATION 111 -# define HTTP_R_RECEIVED_ERROR 105 -# define HTTP_R_RECEIVED_WRONG_HTTP_VERSION 106 -# define HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP 112 -# define HTTP_R_REDIRECTION_NOT_ENABLED 116 -# define HTTP_R_RESPONSE_LINE_TOO_LONG 113 -# define HTTP_R_RESPONSE_PARSE_ERROR 104 -# define HTTP_R_RESPONSE_TOO_MANY_HDRLINES 130 -# define HTTP_R_RETRY_TIMEOUT 129 -# define HTTP_R_SERVER_CANCELED_CONNECTION 127 -# define HTTP_R_SOCK_NOT_SUPPORTED 122 -# define HTTP_R_STATUS_CODE_UNSUPPORTED 114 -# define HTTP_R_TLS_NOT_ENABLED 107 -# define HTTP_R_TOO_MANY_REDIRECTIONS 115 -# define HTTP_R_UNEXPECTED_CONTENT_TYPE 118 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/idea.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/idea.h deleted file mode 100644 index 1f9bb3b..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/idea.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_IDEA_H -# define OPENSSL_IDEA_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_IDEA_H -# endif - -# include - -# ifndef OPENSSL_NO_IDEA -# ifdef __cplusplus -extern "C" { -# endif - -# define IDEA_BLOCK 8 -# define IDEA_KEY_LENGTH 16 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 - -typedef unsigned int IDEA_INT; - -# define IDEA_ENCRYPT 1 -# define IDEA_DECRYPT 0 - -typedef struct idea_key_st { - IDEA_INT data[9][6]; -} IDEA_KEY_SCHEDULE; -#endif -#ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 const char *IDEA_options(void); -OSSL_DEPRECATEDIN_3_0 void IDEA_ecb_encrypt(const unsigned char *in, - unsigned char *out, - IDEA_KEY_SCHEDULE *ks); -OSSL_DEPRECATEDIN_3_0 void IDEA_set_encrypt_key(const unsigned char *key, - IDEA_KEY_SCHEDULE *ks); -OSSL_DEPRECATEDIN_3_0 void IDEA_set_decrypt_key(IDEA_KEY_SCHEDULE *ek, - IDEA_KEY_SCHEDULE *dk); -OSSL_DEPRECATEDIN_3_0 void IDEA_cbc_encrypt(const unsigned char *in, - unsigned char *out, long length, - IDEA_KEY_SCHEDULE *ks, - unsigned char *iv, int enc); -OSSL_DEPRECATEDIN_3_0 void IDEA_cfb64_encrypt(const unsigned char *in, - unsigned char *out, long length, - IDEA_KEY_SCHEDULE *ks, - unsigned char *iv, int *num, - int enc); -OSSL_DEPRECATEDIN_3_0 void IDEA_ofb64_encrypt(const unsigned char *in, - unsigned char *out, long length, - IDEA_KEY_SCHEDULE *ks, - unsigned char *iv, int *num); -OSSL_DEPRECATEDIN_3_0 void IDEA_encrypt(unsigned long *in, - IDEA_KEY_SCHEDULE *ks); -#endif - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define idea_options IDEA_options -# define idea_ecb_encrypt IDEA_ecb_encrypt -# define idea_set_encrypt_key IDEA_set_encrypt_key -# define idea_set_decrypt_key IDEA_set_decrypt_key -# define idea_cbc_encrypt IDEA_cbc_encrypt -# define idea_cfb64_encrypt IDEA_cfb64_encrypt -# define idea_ofb64_encrypt IDEA_ofb64_encrypt -# define idea_encrypt IDEA_encrypt -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/indicator.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/indicator.h deleted file mode 100644 index 3ea0122..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/indicator.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_INDICATOR_H -# define OPENSSL_INDICATOR_H -# pragma once - -# ifdef __cplusplus -extern "C" { -# endif - -#include - -typedef int (OSSL_INDICATOR_CALLBACK)(const char *type, const char *desc, - const OSSL_PARAM params[]); - -void OSSL_INDICATOR_set_callback(OSSL_LIB_CTX *libctx, - OSSL_INDICATOR_CALLBACK *cb); -void OSSL_INDICATOR_get_callback(OSSL_LIB_CTX *libctx, - OSSL_INDICATOR_CALLBACK **cb); - -# ifdef __cplusplus -} -# endif -#endif /* OPENSSL_INDICATOR_H */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/kdf.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/kdf.h deleted file mode 100644 index 42d68f7..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/kdf.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright 2016-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_KDF_H -# define OPENSSL_KDF_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_KDF_H -# endif - -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -int EVP_KDF_up_ref(EVP_KDF *kdf); -void EVP_KDF_free(EVP_KDF *kdf); -EVP_KDF *EVP_KDF_fetch(OSSL_LIB_CTX *libctx, const char *algorithm, - const char *properties); - -EVP_KDF_CTX *EVP_KDF_CTX_new(EVP_KDF *kdf); -void EVP_KDF_CTX_free(EVP_KDF_CTX *ctx); -EVP_KDF_CTX *EVP_KDF_CTX_dup(const EVP_KDF_CTX *src); -const char *EVP_KDF_get0_description(const EVP_KDF *kdf); -int EVP_KDF_is_a(const EVP_KDF *kdf, const char *name); -const char *EVP_KDF_get0_name(const EVP_KDF *kdf); -const OSSL_PROVIDER *EVP_KDF_get0_provider(const EVP_KDF *kdf); -const EVP_KDF *EVP_KDF_CTX_kdf(EVP_KDF_CTX *ctx); - -void EVP_KDF_CTX_reset(EVP_KDF_CTX *ctx); -size_t EVP_KDF_CTX_get_kdf_size(EVP_KDF_CTX *ctx); -int EVP_KDF_derive(EVP_KDF_CTX *ctx, unsigned char *key, size_t keylen, - const OSSL_PARAM params[]); -int EVP_KDF_CTX_set_SKEY(EVP_KDF_CTX *ctx, EVP_SKEY *key, const char *paramname); -EVP_SKEY *EVP_KDF_derive_SKEY(EVP_KDF_CTX *ctx, EVP_SKEYMGMT *mgmt, - const char *key_type, const char *propquery, - size_t keylen, const OSSL_PARAM params[]); -int EVP_KDF_get_params(EVP_KDF *kdf, OSSL_PARAM params[]); -int EVP_KDF_CTX_get_params(EVP_KDF_CTX *ctx, OSSL_PARAM params[]); -int EVP_KDF_CTX_set_params(EVP_KDF_CTX *ctx, const OSSL_PARAM params[]); -const OSSL_PARAM *EVP_KDF_gettable_params(const EVP_KDF *kdf); -const OSSL_PARAM *EVP_KDF_gettable_ctx_params(const EVP_KDF *kdf); -const OSSL_PARAM *EVP_KDF_settable_ctx_params(const EVP_KDF *kdf); -const OSSL_PARAM *EVP_KDF_CTX_gettable_params(EVP_KDF_CTX *ctx); -const OSSL_PARAM *EVP_KDF_CTX_settable_params(EVP_KDF_CTX *ctx); - -void EVP_KDF_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(EVP_KDF *kdf, void *arg), - void *arg); -int EVP_KDF_names_do_all(const EVP_KDF *kdf, - void (*fn)(const char *name, void *data), - void *data); - -# define EVP_KDF_HKDF_MODE_EXTRACT_AND_EXPAND 0 -# define EVP_KDF_HKDF_MODE_EXTRACT_ONLY 1 -# define EVP_KDF_HKDF_MODE_EXPAND_ONLY 2 - -#define EVP_KDF_SSHKDF_TYPE_INITIAL_IV_CLI_TO_SRV 65 -#define EVP_KDF_SSHKDF_TYPE_INITIAL_IV_SRV_TO_CLI 66 -#define EVP_KDF_SSHKDF_TYPE_ENCRYPTION_KEY_CLI_TO_SRV 67 -#define EVP_KDF_SSHKDF_TYPE_ENCRYPTION_KEY_SRV_TO_CLI 68 -#define EVP_KDF_SSHKDF_TYPE_INTEGRITY_KEY_CLI_TO_SRV 69 -#define EVP_KDF_SSHKDF_TYPE_INTEGRITY_KEY_SRV_TO_CLI 70 - -/**** The legacy PKEY-based KDF API follows. ****/ - -# define EVP_PKEY_CTRL_TLS_MD (EVP_PKEY_ALG_CTRL) -# define EVP_PKEY_CTRL_TLS_SECRET (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_TLS_SEED (EVP_PKEY_ALG_CTRL + 2) -# define EVP_PKEY_CTRL_HKDF_MD (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_HKDF_SALT (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_HKDF_KEY (EVP_PKEY_ALG_CTRL + 5) -# define EVP_PKEY_CTRL_HKDF_INFO (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_HKDF_MODE (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_PASS (EVP_PKEY_ALG_CTRL + 8) -# define EVP_PKEY_CTRL_SCRYPT_SALT (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_SCRYPT_N (EVP_PKEY_ALG_CTRL + 10) -# define EVP_PKEY_CTRL_SCRYPT_R (EVP_PKEY_ALG_CTRL + 11) -# define EVP_PKEY_CTRL_SCRYPT_P (EVP_PKEY_ALG_CTRL + 12) -# define EVP_PKEY_CTRL_SCRYPT_MAXMEM_BYTES (EVP_PKEY_ALG_CTRL + 13) - -# define EVP_PKEY_HKDEF_MODE_EXTRACT_AND_EXPAND \ - EVP_KDF_HKDF_MODE_EXTRACT_AND_EXPAND -# define EVP_PKEY_HKDEF_MODE_EXTRACT_ONLY \ - EVP_KDF_HKDF_MODE_EXTRACT_ONLY -# define EVP_PKEY_HKDEF_MODE_EXPAND_ONLY \ - EVP_KDF_HKDF_MODE_EXPAND_ONLY - -int EVP_PKEY_CTX_set_tls1_prf_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); - -int EVP_PKEY_CTX_set1_tls1_prf_secret(EVP_PKEY_CTX *pctx, - const unsigned char *sec, int seclen); - -int EVP_PKEY_CTX_add1_tls1_prf_seed(EVP_PKEY_CTX *pctx, - const unsigned char *seed, int seedlen); - -int EVP_PKEY_CTX_set_hkdf_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); - -int EVP_PKEY_CTX_set1_hkdf_salt(EVP_PKEY_CTX *ctx, - const unsigned char *salt, int saltlen); - -int EVP_PKEY_CTX_set1_hkdf_key(EVP_PKEY_CTX *ctx, - const unsigned char *key, int keylen); - -int EVP_PKEY_CTX_add1_hkdf_info(EVP_PKEY_CTX *ctx, - const unsigned char *info, int infolen); - -int EVP_PKEY_CTX_set_hkdf_mode(EVP_PKEY_CTX *ctx, int mode); -# define EVP_PKEY_CTX_hkdf_mode EVP_PKEY_CTX_set_hkdf_mode - -int EVP_PKEY_CTX_set1_pbe_pass(EVP_PKEY_CTX *ctx, const char *pass, - int passlen); - -int EVP_PKEY_CTX_set1_scrypt_salt(EVP_PKEY_CTX *ctx, - const unsigned char *salt, int saltlen); - -int EVP_PKEY_CTX_set_scrypt_N(EVP_PKEY_CTX *ctx, uint64_t n); - -int EVP_PKEY_CTX_set_scrypt_r(EVP_PKEY_CTX *ctx, uint64_t r); - -int EVP_PKEY_CTX_set_scrypt_p(EVP_PKEY_CTX *ctx, uint64_t p); - -int EVP_PKEY_CTX_set_scrypt_maxmem_bytes(EVP_PKEY_CTX *ctx, - uint64_t maxmem_bytes); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/kdferr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/kdferr.h deleted file mode 100644 index 963d766..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/kdferr.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_KDFERR_H -# define OPENSSL_KDFERR_H -# pragma once - -#include - -#endif /* !defined(OPENSSL_KDFERR_H) */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/lhash.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/lhash.h deleted file mode 100644 index 62c55b2..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/lhash.h +++ /dev/null @@ -1,398 +0,0 @@ -/* - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -/* - * Header for dynamic hash table routines Author - Eric Young - */ - -#ifndef OPENSSL_LHASH_H -# define OPENSSL_LHASH_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_LHASH_H -# endif - -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct lhash_node_st OPENSSL_LH_NODE; -typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); -typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); -typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); -typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); -typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); -typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); -typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); -typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); -typedef struct lhash_st OPENSSL_LHASH; - -/* - * Macros for declaring and implementing type-safe wrappers for LHASH - * callbacks. This way, callbacks can be provided to LHASH structures without - * function pointer casting and the macro-defined callbacks provide - * per-variable casting before deferring to the underlying type-specific - * callbacks. NB: It is possible to place a "static" in front of both the - * DECLARE and IMPLEMENT macros if the functions are strictly internal. - */ - -/* First: "hash" functions */ -# define DECLARE_LHASH_HASH_FN(name, o_type) \ - unsigned long name##_LHASH_HASH(const void *); -# define IMPLEMENT_LHASH_HASH_FN(name, o_type) \ - unsigned long name##_LHASH_HASH(const void *arg) { \ - const o_type *a = arg; \ - return name##_hash(a); } -# define LHASH_HASH_FN(name) name##_LHASH_HASH - -/* Second: "compare" functions */ -# define DECLARE_LHASH_COMP_FN(name, o_type) \ - int name##_LHASH_COMP(const void *, const void *); -# define IMPLEMENT_LHASH_COMP_FN(name, o_type) \ - int name##_LHASH_COMP(const void *arg1, const void *arg2) { \ - const o_type *a = arg1; \ - const o_type *b = arg2; \ - return name##_cmp(a,b); } -# define LHASH_COMP_FN(name) name##_LHASH_COMP - -/* Fourth: "doall_arg" functions */ -# define DECLARE_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ - void name##_LHASH_DOALL_ARG(void *, void *); -# define IMPLEMENT_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ - void name##_LHASH_DOALL_ARG(void *arg1, void *arg2) { \ - o_type *a = arg1; \ - a_type *b = arg2; \ - name##_doall_arg(a, b); } -# define LHASH_DOALL_ARG_FN(name) name##_LHASH_DOALL_ARG - - -# define LH_LOAD_MULT 256 - -int OPENSSL_LH_error(OPENSSL_LHASH *lh); -OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); -OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, - OPENSSL_LH_HASHFUNCTHUNK hw, - OPENSSL_LH_COMPFUNCTHUNK cw, - OPENSSL_LH_DOALL_FUNC_THUNK daw, - OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); -void OPENSSL_LH_free(OPENSSL_LHASH *lh); -void OPENSSL_LH_flush(OPENSSL_LHASH *lh); -void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); -void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); -void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); -void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, - OPENSSL_LH_DOALL_FUNCARG func, void *arg); -void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, - OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, - OPENSSL_LH_DOALL_FUNCARG fn, void *arg); - -unsigned long OPENSSL_LH_strhash(const char *c); -unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); -unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); -void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); - -# ifndef OPENSSL_NO_STDIO -# ifndef OPENSSL_NO_DEPRECATED_3_1 -OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); -# endif -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_1 -OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -# endif - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define _LHASH OPENSSL_LHASH -# define LHASH_NODE OPENSSL_LH_NODE -# define lh_error OPENSSL_LH_error -# define lh_new OPENSSL_LH_new -# define lh_free OPENSSL_LH_free -# define lh_insert OPENSSL_LH_insert -# define lh_delete OPENSSL_LH_delete -# define lh_retrieve OPENSSL_LH_retrieve -# define lh_doall OPENSSL_LH_doall -# define lh_doall_arg OPENSSL_LH_doall_arg -# define lh_strhash OPENSSL_LH_strhash -# define lh_num_items OPENSSL_LH_num_items -# ifndef OPENSSL_NO_STDIO -# define lh_stats OPENSSL_LH_stats -# define lh_node_stats OPENSSL_LH_node_stats -# define lh_node_usage_stats OPENSSL_LH_node_usage_stats -# endif -# define lh_stats_bio OPENSSL_LH_stats_bio -# define lh_node_stats_bio OPENSSL_LH_node_stats_bio -# define lh_node_usage_stats_bio OPENSSL_LH_node_usage_stats_bio -# endif - -/* Type checking... */ - -# define LHASH_OF(type) struct lhash_st_##type - -/* Helper macro for internal use */ -# define DEFINE_LHASH_OF_INTERNAL(type) \ - LHASH_OF(type) { \ - union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ - }; \ - typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ - typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ - typedef void (*lh_##type##_doallfunc)(type *a); \ - static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ - { \ - unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ - return hfn_conv((const type *)data); \ - } \ - static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ - { \ - int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ - return cfn_conv((const type *)da, (const type *)db); \ - } \ - static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ - { \ - void (*doall_conv)(type *) = (void (*)(type *))doall; \ - doall_conv((type *)node); \ - } \ - static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ - { \ - void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ - doall_conv((type *)node, arg); \ - } \ - static ossl_unused ossl_inline type *\ - ossl_check_##type##_lh_plain_type(type *ptr) \ - { \ - return ptr; \ - } \ - static ossl_unused ossl_inline const type * \ - ossl_check_const_##type##_lh_plain_type(const type *ptr) \ - { \ - return ptr; \ - } \ - static ossl_unused ossl_inline const OPENSSL_LHASH * \ - ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ - { \ - return (const OPENSSL_LHASH *)lh; \ - } \ - static ossl_unused ossl_inline OPENSSL_LHASH * \ - ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ - { \ - return (OPENSSL_LHASH *)lh; \ - } \ - static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ - ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ - { \ - return (OPENSSL_LH_COMPFUNC)cmp; \ - } \ - static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ - ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ - { \ - return (OPENSSL_LH_HASHFUNC)hfn; \ - } \ - static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ - ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ - { \ - return (OPENSSL_LH_DOALL_FUNC)dfn; \ - } \ - LHASH_OF(type) - -# ifndef OPENSSL_NO_DEPRECATED_3_1 -# define DEFINE_LHASH_OF_DEPRECATED(type) \ - static ossl_unused ossl_inline void \ - lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ - { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ - { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ - { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ - } -# else -# define DEFINE_LHASH_OF_DEPRECATED(type) -# endif - -# define DEFINE_LHASH_OF_EX(type) \ - LHASH_OF(type) { \ - union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ - }; \ - static unsigned long \ - lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ - { \ - unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ - return hfn_conv((const type *)data); \ - } \ - static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ - { \ - int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ - return cfn_conv((const type *)da, (const type *)db); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_free(LHASH_OF(type) *lh) \ - { \ - OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_flush(LHASH_OF(type) *lh) \ - { \ - OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ - } \ - static ossl_unused ossl_inline type * \ - lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ - { \ - return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ - } \ - static ossl_unused ossl_inline type * \ - lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ - { \ - return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ - } \ - static ossl_unused ossl_inline type * \ - lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ - { \ - return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ - } \ - static ossl_unused ossl_inline int \ - lh_##type##_error(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ - } \ - static ossl_unused ossl_inline unsigned long \ - lh_##type##_num_items(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ - } \ - static ossl_unused ossl_inline unsigned long \ - lh_##type##_get_down_load(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ - { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ - { \ - void (*doall_conv)(type *) = (void (*)(type *))doall; \ - doall_conv((type *)node); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ - { \ - void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ - doall_conv((type *)node, arg); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ - { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ - } \ - static ossl_unused ossl_inline LHASH_OF(type) * \ - lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ - { \ - return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ - lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ - lh_##type##_doall_thunk, \ - lh_##type##_doall_arg_thunk); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_doall_arg(LHASH_OF(type) *lh, \ - void (*doallarg)(type *, void *), void *arg) \ - { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ - (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ - } \ - LHASH_OF(type) - -# define DEFINE_LHASH_OF(type) \ - DEFINE_LHASH_OF_EX(type); \ - DEFINE_LHASH_OF_DEPRECATED(type) \ - LHASH_OF(type) - -#define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ - int_implement_lhash_doall(type, argtype, const type) - -#define IMPLEMENT_LHASH_DOALL_ARG(type, argtype) \ - int_implement_lhash_doall(type, argtype, type) - -#define int_implement_lhash_doall(type, argtype, cbargtype) \ - static ossl_unused ossl_inline void \ - lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ - { \ - void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ - fn_conv((cbargtype *)node, (argtype *)arg); \ - } \ - static ossl_unused ossl_inline void \ - lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ - void (*fn)(cbargtype *, argtype *), \ - argtype *arg) \ - { \ - OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ - lh_##type##_doall_##argtype##_thunk, \ - (OPENSSL_LH_DOALL_FUNCARG)fn, \ - (void *)arg); \ - } \ - LHASH_OF(type) - -DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); -#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) -#define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) -#define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) -#define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) -#define lh_OPENSSL_STRING_delete(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_delete(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_const_OPENSSL_STRING_lh_plain_type(ptr))) -#define lh_OPENSSL_STRING_retrieve(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_retrieve(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_const_OPENSSL_STRING_lh_plain_type(ptr))) -#define lh_OPENSSL_STRING_error(lh) OPENSSL_LH_error(ossl_check_OPENSSL_STRING_lh_type(lh)) -#define lh_OPENSSL_STRING_num_items(lh) OPENSSL_LH_num_items(ossl_check_OPENSSL_STRING_lh_type(lh)) -#define lh_OPENSSL_STRING_node_stats_bio(lh, out) OPENSSL_LH_node_stats_bio(ossl_check_const_OPENSSL_STRING_lh_type(lh), out) -#define lh_OPENSSL_STRING_node_usage_stats_bio(lh, out) OPENSSL_LH_node_usage_stats_bio(ossl_check_const_OPENSSL_STRING_lh_type(lh), out) -#define lh_OPENSSL_STRING_stats_bio(lh, out) OPENSSL_LH_stats_bio(ossl_check_const_OPENSSL_STRING_lh_type(lh), out) -#define lh_OPENSSL_STRING_get_down_load(lh) OPENSSL_LH_get_down_load(ossl_check_OPENSSL_STRING_lh_type(lh)) -#define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) -#define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) -DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); -#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) -#define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) -#define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) -#define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) -#define lh_OPENSSL_CSTRING_delete(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_delete(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_const_OPENSSL_CSTRING_lh_plain_type(ptr))) -#define lh_OPENSSL_CSTRING_retrieve(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_retrieve(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_const_OPENSSL_CSTRING_lh_plain_type(ptr))) -#define lh_OPENSSL_CSTRING_error(lh) OPENSSL_LH_error(ossl_check_OPENSSL_CSTRING_lh_type(lh)) -#define lh_OPENSSL_CSTRING_num_items(lh) OPENSSL_LH_num_items(ossl_check_OPENSSL_CSTRING_lh_type(lh)) -#define lh_OPENSSL_CSTRING_node_stats_bio(lh, out) OPENSSL_LH_node_stats_bio(ossl_check_const_OPENSSL_CSTRING_lh_type(lh), out) -#define lh_OPENSSL_CSTRING_node_usage_stats_bio(lh, out) OPENSSL_LH_node_usage_stats_bio(ossl_check_const_OPENSSL_CSTRING_lh_type(lh), out) -#define lh_OPENSSL_CSTRING_stats_bio(lh, out) OPENSSL_LH_stats_bio(ossl_check_const_OPENSSL_CSTRING_lh_type(lh), out) -#define lh_OPENSSL_CSTRING_get_down_load(lh) OPENSSL_LH_get_down_load(ossl_check_OPENSSL_CSTRING_lh_type(lh)) -#define lh_OPENSSL_CSTRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_CSTRING_lh_type(lh), dl) -#define lh_OPENSSL_CSTRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_doallfunc_type(dfn)) - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/macros.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/macros.h deleted file mode 100644 index 1598053..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/macros.h +++ /dev/null @@ -1,361 +0,0 @@ -/* - * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_MACROS_H -# define OPENSSL_MACROS_H -# pragma once - -#include -#include - - -/* Helper macros for CPP string composition */ -# define OPENSSL_MSTR_HELPER(x) #x -# define OPENSSL_MSTR(x) OPENSSL_MSTR_HELPER(x) - -/* - * Sometimes OPENSSL_NO_xxx ends up with an empty file and some compilers - * don't like that. This will hopefully silence them. - */ -# define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; - -/* - * Generic deprecation macro - * - * If OPENSSL_SUPPRESS_DEPRECATED is defined, then OSSL_DEPRECATED and - * OSSL_DEPRECATED_FOR become no-ops - */ -# ifndef OSSL_DEPRECATED -# undef OSSL_DEPRECATED_FOR -# ifndef OPENSSL_SUPPRESS_DEPRECATED -# if defined(_MSC_VER) - /* - * MSVC supports __declspec(deprecated) since MSVC 2003 (13.10), - * and __declspec(deprecated(message)) since MSVC 2005 (14.00) - */ -# if _MSC_VER >= 1400 -# define OSSL_DEPRECATED(since) \ - __declspec(deprecated("Since OpenSSL " # since)) -# define OSSL_DEPRECATED_FOR(since, message) \ - __declspec(deprecated("Since OpenSSL " # since ";" message)) -# elif _MSC_VER >= 1310 -# define OSSL_DEPRECATED(since) __declspec(deprecated) -# define OSSL_DEPRECATED_FOR(since, message) __declspec(deprecated) -# endif -# elif defined(__GNUC__) - /* - * According to GCC documentation, deprecations with message appeared in - * GCC 4.5.0 - */ -# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) -# define OSSL_DEPRECATED(since) \ - __attribute__((deprecated("Since OpenSSL " # since))) -# define OSSL_DEPRECATED_FOR(since, message) \ - __attribute__((deprecated("Since OpenSSL " # since ";" message))) -# elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define OSSL_DEPRECATED(since) __attribute__((deprecated)) -# define OSSL_DEPRECATED_FOR(since, message) __attribute__((deprecated)) -# endif -# elif defined(__SUNPRO_C) -# if (__SUNPRO_C >= 0x5130) -# define OSSL_DEPRECATED(since) __attribute__ ((deprecated)) -# define OSSL_DEPRECATED_FOR(since, message) __attribute__ ((deprecated)) -# endif -# endif -# endif -# endif - -/* - * Still not defined? Then define no-op macros. This means these macros - * are unsuitable for use in a typedef. - */ -# ifndef OSSL_DEPRECATED -# define OSSL_DEPRECATED(since) extern -# define OSSL_DEPRECATED_FOR(since, message) extern -# endif - -/* - * Applications should use -DOPENSSL_API_COMPAT= to suppress the - * declarations of functions deprecated in or before . If this is - * undefined, the value of the macro OPENSSL_CONFIGURED_API (defined in - * ) is the default. - * - * For any version number up until version 1.1.x, is expected to be - * the calculated version number 0xMNNFFPPSL. - * For version numbers 3.0 and on, is expected to be a computation - * of the major and minor numbers in decimal using this formula: - * - * MAJOR * 10000 + MINOR * 100 - * - * So version 3.0 becomes 30000, version 3.2 becomes 30200, etc. - */ - -/* - * We use the OPENSSL_API_COMPAT value to define API level macros. These - * macros are used to enable or disable features at that API version boundary. - */ - -# ifdef OPENSSL_API_LEVEL -# error "OPENSSL_API_LEVEL must not be defined by application" -# endif - -/* - * We figure out what API level was intended by simple numeric comparison. - * The lowest old style number we recognise is 0x00908000L, so we take some - * safety margin and assume that anything below 0x00900000L is a new style - * number. This allows new versions up to and including v943.71.83. - */ -# ifdef OPENSSL_API_COMPAT -# if OPENSSL_API_COMPAT < 0x900000L -# define OPENSSL_API_LEVEL (OPENSSL_API_COMPAT) -# else -# define OPENSSL_API_LEVEL \ - (((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \ - + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \ - + ((OPENSSL_API_COMPAT >> 12) & 0xFF)) -# endif -# endif - -/* - * If OPENSSL_API_COMPAT wasn't given, we use default numbers to set - * the API compatibility level. - */ -# ifndef OPENSSL_API_LEVEL -# if OPENSSL_CONFIGURED_API > 0 -# define OPENSSL_API_LEVEL (OPENSSL_CONFIGURED_API) -# else -# define OPENSSL_API_LEVEL \ - (OPENSSL_VERSION_MAJOR * 10000 + OPENSSL_VERSION_MINOR * 100) -# endif -# endif - -# if OPENSSL_API_LEVEL > OPENSSL_CONFIGURED_API -# error "The requested API level higher than the configured API compatibility level" -# endif - -/* - * Check of sane values. - */ -/* Can't go higher than the current version. */ -# if OPENSSL_API_LEVEL > (OPENSSL_VERSION_MAJOR * 10000 + OPENSSL_VERSION_MINOR * 100) -# error "OPENSSL_API_COMPAT expresses an impossible API compatibility level" -# endif -/* OpenSSL will have no version 2.y.z */ -# if OPENSSL_API_LEVEL < 30000 && OPENSSL_API_LEVEL >= 20000 -# error "OPENSSL_API_COMPAT expresses an impossible API compatibility level" -# endif -/* Below 0.9.8 is unacceptably low */ -# if OPENSSL_API_LEVEL < 908 -# error "OPENSSL_API_COMPAT expresses an impossible API compatibility level" -# endif - -/* - * Define macros for deprecation and simulated removal purposes. - * - * The macros OSSL_DEPRECATEDIN_{major}_{minor} are always defined for - * all OpenSSL versions we care for. They can be used as attributes - * in function declarations where appropriate. - * - * The macros OPENSSL_NO_DEPRECATED_{major}_{minor} are defined for - * all OpenSSL versions up to or equal to the version given with - * OPENSSL_API_COMPAT. They are used as guards around anything that's - * deprecated up to that version, as an effect of the developer option - * 'no-deprecated'. - */ - -# undef OPENSSL_NO_DEPRECATED_3_6 -# undef OPENSSL_NO_DEPRECATED_3_4 -# undef OPENSSL_NO_DEPRECATED_3_1 -# undef OPENSSL_NO_DEPRECATED_3_0 -# undef OPENSSL_NO_DEPRECATED_1_1_1 -# undef OPENSSL_NO_DEPRECATED_1_1_0 -# undef OPENSSL_NO_DEPRECATED_1_0_2 -# undef OPENSSL_NO_DEPRECATED_1_0_1 -# undef OPENSSL_NO_DEPRECATED_1_0_0 -# undef OPENSSL_NO_DEPRECATED_0_9_8 - -# if OPENSSL_API_LEVEL >= 30600 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_3_6 OSSL_DEPRECATED(3.6) -# define OSSL_DEPRECATEDIN_3_6_FOR(msg) OSSL_DEPRECATED_FOR(3.6, msg) -# else -# define OPENSSL_NO_DEPRECATED_3_6 -# endif -# else -# define OSSL_DEPRECATEDIN_3_6 -# define OSSL_DEPRECATEDIN_3_6_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 30500 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_3_5 OSSL_DEPRECATED(3.5) -# define OSSL_DEPRECATEDIN_3_5_FOR(msg) OSSL_DEPRECATED_FOR(3.5, msg) -# else -# define OPENSSL_NO_DEPRECATED_3_5 -# endif -# else -# define OSSL_DEPRECATEDIN_3_5 -# define OSSL_DEPRECATEDIN_3_5_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 30400 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_3_4 OSSL_DEPRECATED(3.4) -# define OSSL_DEPRECATEDIN_3_4_FOR(msg) OSSL_DEPRECATED_FOR(3.4, msg) -# else -# define OPENSSL_NO_DEPRECATED_3_4 -# endif -# else -# define OSSL_DEPRECATEDIN_3_4 -# define OSSL_DEPRECATEDIN_3_4_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 30100 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_3_1 OSSL_DEPRECATED(3.1) -# define OSSL_DEPRECATEDIN_3_1_FOR(msg) OSSL_DEPRECATED_FOR(3.1, msg) -# else -# define OPENSSL_NO_DEPRECATED_3_1 -# endif -# else -# define OSSL_DEPRECATEDIN_3_1 -# define OSSL_DEPRECATEDIN_3_1_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 30000 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) -# define OSSL_DEPRECATEDIN_3_0_FOR(msg) OSSL_DEPRECATED_FOR(3.0, msg) -# else -# define OPENSSL_NO_DEPRECATED_3_0 -# endif -# else -# define OSSL_DEPRECATEDIN_3_0 -# define OSSL_DEPRECATEDIN_3_0_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 10101 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_1_1_1 OSSL_DEPRECATED(1.1.1) -# define OSSL_DEPRECATEDIN_1_1_1_FOR(msg) OSSL_DEPRECATED_FOR(1.1.1, msg) -# else -# define OPENSSL_NO_DEPRECATED_1_1_1 -# endif -# else -# define OSSL_DEPRECATEDIN_1_1_1 -# define OSSL_DEPRECATEDIN_1_1_1_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 10100 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_1_1_0 OSSL_DEPRECATED(1.1.0) -# define OSSL_DEPRECATEDIN_1_1_0_FOR(msg) OSSL_DEPRECATED_FOR(1.1.0, msg) -# else -# define OPENSSL_NO_DEPRECATED_1_1_0 -# endif -# else -# define OSSL_DEPRECATEDIN_1_1_0 -# define OSSL_DEPRECATEDIN_1_1_0_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 10002 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_1_0_2 OSSL_DEPRECATED(1.0.2) -# define OSSL_DEPRECATEDIN_1_0_2_FOR(msg) OSSL_DEPRECATED_FOR(1.0.2, msg) -# else -# define OPENSSL_NO_DEPRECATED_1_0_2 -# endif -# else -# define OSSL_DEPRECATEDIN_1_0_2 -# define OSSL_DEPRECATEDIN_1_0_2_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 10001 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_1_0_1 OSSL_DEPRECATED(1.0.1) -# define OSSL_DEPRECATEDIN_1_0_1_FOR(msg) OSSL_DEPRECATED_FOR(1.0.1, msg) -# else -# define OPENSSL_NO_DEPRECATED_1_0_1 -# endif -# else -# define OSSL_DEPRECATEDIN_1_0_1 -# define OSSL_DEPRECATEDIN_1_0_1_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 10000 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_1_0_0 OSSL_DEPRECATED(1.0.0) -# define OSSL_DEPRECATEDIN_1_0_0_FOR(msg) OSSL_DEPRECATED_FOR(1.0.0, msg) -# else -# define OPENSSL_NO_DEPRECATED_1_0_0 -# endif -# else -# define OSSL_DEPRECATEDIN_1_0_0 -# define OSSL_DEPRECATEDIN_1_0_0_FOR(msg) -# endif -# if OPENSSL_API_LEVEL >= 908 -# ifndef OPENSSL_NO_DEPRECATED -# define OSSL_DEPRECATEDIN_0_9_8 OSSL_DEPRECATED(0.9.8) -# define OSSL_DEPRECATEDIN_0_9_8_FOR(msg) OSSL_DEPRECATED_FOR(0.9.8, msg) -# else -# define OPENSSL_NO_DEPRECATED_0_9_8 -# endif -# else -# define OSSL_DEPRECATEDIN_0_9_8 -# define OSSL_DEPRECATEDIN_0_9_8_FOR(msg) -# endif - -/* - * Make our own variants of __FILE__ and __LINE__, depending on configuration - */ - -# ifndef OPENSSL_FILE -# ifdef OPENSSL_NO_FILENAMES -# define OPENSSL_FILE "" -# define OPENSSL_LINE 0 -# else -# define OPENSSL_FILE __FILE__ -# define OPENSSL_LINE __LINE__ -# endif -# endif - -/* - * __func__ was standardized in C99, so for any compiler that claims - * to implement that language level or newer, we assume we can safely - * use that symbol. - * - * GNU C also provides __FUNCTION__ since version 2, which predates - * C99. We can, however, only use this if __STDC_VERSION__ exists, - * as it's otherwise not allowed according to ISO C standards (C90). - * (compiling with GNU C's -pedantic tells us so) - * - * If none of the above applies, we check if the compiler is MSVC, - * and use __FUNCTION__ if that's the case. - */ -# ifndef OPENSSL_FUNC -# if defined(__STDC_VERSION__) -# if __STDC_VERSION__ >= 199901L -# define OPENSSL_FUNC __func__ -# elif defined(__GNUC__) && __GNUC__ >= 2 -# define OPENSSL_FUNC __FUNCTION__ -# endif -# elif defined(_MSC_VER) -# define OPENSSL_FUNC __FUNCTION__ -# endif -/* - * If all these possibilities are exhausted, we give up and use a - * static string. - */ -# ifndef OPENSSL_FUNC -# define OPENSSL_FUNC "(unknown function)" -# endif -# endif - -# ifndef OSSL_CRYPTO_ALLOC -# if defined(__GNUC__) -# define OSSL_CRYPTO_ALLOC __attribute__((__malloc__)) -# elif defined(_MSC_VER) -# define OSSL_CRYPTO_ALLOC __declspec(restrict) -# else -# define OSSL_CRYPTO_ALLOC -# endif -# endif - -#endif /* OPENSSL_MACROS_H */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/md2.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/md2.h deleted file mode 100644 index 5d4cb77..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/md2.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_MD2_H -# define OPENSSL_MD2_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_MD2_H -# endif - -# include - -# ifndef OPENSSL_NO_MD2 -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define MD2_DIGEST_LENGTH 16 - -# if !defined(OPENSSL_NO_DEPRECATED_3_0) - -typedef unsigned char MD2_INT; - -# define MD2_BLOCK 16 - -typedef struct MD2state_st { - unsigned int num; - unsigned char data[MD2_BLOCK]; - MD2_INT cksm[MD2_BLOCK]; - MD2_INT state[MD2_BLOCK]; -} MD2_CTX; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 const char *MD2_options(void); -OSSL_DEPRECATEDIN_3_0 int MD2_Init(MD2_CTX *c); -OSSL_DEPRECATEDIN_3_0 int MD2_Update(MD2_CTX *c, const unsigned char *data, - size_t len); -OSSL_DEPRECATEDIN_3_0 int MD2_Final(unsigned char *md, MD2_CTX *c); -OSSL_DEPRECATEDIN_3_0 unsigned char *MD2(const unsigned char *d, size_t n, - unsigned char *md); -# endif - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/md4.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/md4.h deleted file mode 100644 index 6c150a6..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/md4.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_MD4_H -# define OPENSSL_MD4_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_MD4_H -# endif - -# include - -# ifndef OPENSSL_NO_MD4 -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define MD4_DIGEST_LENGTH 16 - -# if !defined(OPENSSL_NO_DEPRECATED_3_0) - -/*- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! MD4_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define MD4_LONG unsigned int - -# define MD4_CBLOCK 64 -# define MD4_LBLOCK (MD4_CBLOCK/4) - -typedef struct MD4state_st { - MD4_LONG A, B, C, D; - MD4_LONG Nl, Nh; - MD4_LONG data[MD4_LBLOCK]; - unsigned int num; -} MD4_CTX; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int MD4_Init(MD4_CTX *c); -OSSL_DEPRECATEDIN_3_0 int MD4_Update(MD4_CTX *c, const void *data, size_t len); -OSSL_DEPRECATEDIN_3_0 int MD4_Final(unsigned char *md, MD4_CTX *c); -OSSL_DEPRECATEDIN_3_0 unsigned char *MD4(const unsigned char *d, size_t n, - unsigned char *md); -OSSL_DEPRECATEDIN_3_0 void MD4_Transform(MD4_CTX *c, const unsigned char *b); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/md5.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/md5.h deleted file mode 100644 index 77a5773..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/md5.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_MD5_H -# define OPENSSL_MD5_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_MD5_H -# endif - -# include - -# ifndef OPENSSL_NO_MD5 -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define MD5_DIGEST_LENGTH 16 - -# if !defined(OPENSSL_NO_DEPRECATED_3_0) -/* - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! MD5_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define MD5_LONG unsigned int - -# define MD5_CBLOCK 64 -# define MD5_LBLOCK (MD5_CBLOCK/4) - -typedef struct MD5state_st { - MD5_LONG A, B, C, D; - MD5_LONG Nl, Nh; - MD5_LONG data[MD5_LBLOCK]; - unsigned int num; -} MD5_CTX; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c); -OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len); -OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c); -OSSL_DEPRECATEDIN_3_0 unsigned char *MD5(const unsigned char *d, size_t n, - unsigned char *md); -OSSL_DEPRECATEDIN_3_0 void MD5_Transform(MD5_CTX *c, const unsigned char *b); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/mdc2.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/mdc2.h deleted file mode 100644 index 5a7ee28..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/mdc2.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_MDC2_H -# define OPENSSL_MDC2_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_MDC2_H -# endif - -# include - -# ifndef OPENSSL_NO_MDC2 -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define MDC2_DIGEST_LENGTH 16 - -# if !defined(OPENSSL_NO_DEPRECATED_3_0) - -# define MDC2_BLOCK 8 - -typedef struct mdc2_ctx_st { - unsigned int num; - unsigned char data[MDC2_BLOCK]; - DES_cblock h, hh; - unsigned int pad_type; /* either 1 or 2, default 1 */ -} MDC2_CTX; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int MDC2_Init(MDC2_CTX *c); -OSSL_DEPRECATEDIN_3_0 int MDC2_Update(MDC2_CTX *c, const unsigned char *data, - size_t len); -OSSL_DEPRECATEDIN_3_0 int MDC2_Final(unsigned char *md, MDC2_CTX *c); -OSSL_DEPRECATEDIN_3_0 unsigned char *MDC2(const unsigned char *d, size_t n, - unsigned char *md); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/ml_kem.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/ml_kem.h deleted file mode 100644 index 1c90163..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/ml_kem.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2024-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_ML_KEM_H -# define OPENSSL_ML_KEM_H -# pragma once - -# define OSSL_ML_KEM_SHARED_SECRET_BYTES 32 - -# define OSSL_ML_KEM_512_BITS 512 -# define OSSL_ML_KEM_512_SECURITY_BITS 128 -# define OSSL_ML_KEM_512_CIPHERTEXT_BYTES 768 -# define OSSL_ML_KEM_512_PUBLIC_KEY_BYTES 800 - -# define OSSL_ML_KEM_768_BITS 768 -# define OSSL_ML_KEM_768_SECURITY_BITS 192 -# define OSSL_ML_KEM_768_CIPHERTEXT_BYTES 1088 -# define OSSL_ML_KEM_768_PUBLIC_KEY_BYTES 1184 - -# define OSSL_ML_KEM_1024_BITS 1024 -# define OSSL_ML_KEM_1024_SECURITY_BITS 256 -# define OSSL_ML_KEM_1024_CIPHERTEXT_BYTES 1568 -# define OSSL_ML_KEM_1024_PUBLIC_KEY_BYTES 1568 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/modes.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/modes.h deleted file mode 100644 index e190799..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/modes.h +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_MODES_H -# define OPENSSL_MODES_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_MODES_H -# endif - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif -typedef void (*block128_f) (const unsigned char in[16], - unsigned char out[16], const void *key); - -typedef void (*cbc128_f) (const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int enc); - -typedef void (*ecb128_f) (const unsigned char *in, unsigned char *out, - size_t len, const void *key, - int enc); - -typedef void (*ctr128_f) (const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - const unsigned char ivec[16]); - -typedef void (*ccm128_f) (const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - const unsigned char ivec[16], - unsigned char cmac[16]); - -void CRYPTO_cbc128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], block128_f block); -void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], block128_f block); - -void CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], - unsigned char ecount_buf[16], unsigned int *num, - block128_f block); - -void CRYPTO_ctr128_encrypt_ctr32(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], - unsigned char ecount_buf[16], - unsigned int *num, ctr128_f ctr); - -void CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int *num, - block128_f block); - -void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); -void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); -void CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char *out, - size_t bits, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); - -size_t CRYPTO_cts128_encrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, unsigned char ivec[16], - block128_f block); -size_t CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); -size_t CRYPTO_cts128_decrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, unsigned char ivec[16], - block128_f block); -size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); - -size_t CRYPTO_nistcts128_encrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, - unsigned char ivec[16], - block128_f block); -size_t CRYPTO_nistcts128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); -size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, - unsigned char ivec[16], - block128_f block); -size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); - -typedef struct gcm128_context GCM128_CONTEXT; - -GCM128_CONTEXT *CRYPTO_gcm128_new(void *key, block128_f block); -void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx, void *key, block128_f block); -void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const unsigned char *iv, - size_t len); -int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const unsigned char *aad, - size_t len); -int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len); -int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len); -int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len, ctr128_f stream); -int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len, ctr128_f stream); -int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const unsigned char *tag, - size_t len); -void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len); -void CRYPTO_gcm128_release(GCM128_CONTEXT *ctx); - -typedef struct ccm128_context CCM128_CONTEXT; - -void CRYPTO_ccm128_init(CCM128_CONTEXT *ctx, - unsigned int M, unsigned int L, void *key, - block128_f block); -int CRYPTO_ccm128_setiv(CCM128_CONTEXT *ctx, const unsigned char *nonce, - size_t nlen, size_t mlen); -void CRYPTO_ccm128_aad(CCM128_CONTEXT *ctx, const unsigned char *aad, - size_t alen); -int CRYPTO_ccm128_encrypt(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len); -int CRYPTO_ccm128_decrypt(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len); -int CRYPTO_ccm128_encrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len, - ccm128_f stream); -int CRYPTO_ccm128_decrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len, - ccm128_f stream); -size_t CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t len); - -typedef struct xts128_context XTS128_CONTEXT; - -int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, - const unsigned char iv[16], - const unsigned char *inp, unsigned char *out, - size_t len, int enc); - -size_t CRYPTO_128_wrap(void *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, size_t inlen, - block128_f block); - -size_t CRYPTO_128_unwrap(void *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, size_t inlen, - block128_f block); -size_t CRYPTO_128_wrap_pad(void *key, const unsigned char *icv, - unsigned char *out, const unsigned char *in, - size_t inlen, block128_f block); -size_t CRYPTO_128_unwrap_pad(void *key, const unsigned char *icv, - unsigned char *out, const unsigned char *in, - size_t inlen, block128_f block); - -# ifndef OPENSSL_NO_OCB -typedef struct ocb128_context OCB128_CONTEXT; - -typedef void (*ocb128_f) (const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - size_t start_block_num, - unsigned char offset_i[16], - const unsigned char L_[][16], - unsigned char checksum[16]); - -OCB128_CONTEXT *CRYPTO_ocb128_new(void *keyenc, void *keydec, - block128_f encrypt, block128_f decrypt, - ocb128_f stream); -int CRYPTO_ocb128_init(OCB128_CONTEXT *ctx, void *keyenc, void *keydec, - block128_f encrypt, block128_f decrypt, - ocb128_f stream); -int CRYPTO_ocb128_copy_ctx(OCB128_CONTEXT *dest, OCB128_CONTEXT *src, - void *keyenc, void *keydec); -int CRYPTO_ocb128_setiv(OCB128_CONTEXT *ctx, const unsigned char *iv, - size_t len, size_t taglen); -int CRYPTO_ocb128_aad(OCB128_CONTEXT *ctx, const unsigned char *aad, - size_t len); -int CRYPTO_ocb128_encrypt(OCB128_CONTEXT *ctx, const unsigned char *in, - unsigned char *out, size_t len); -int CRYPTO_ocb128_decrypt(OCB128_CONTEXT *ctx, const unsigned char *in, - unsigned char *out, size_t len); -int CRYPTO_ocb128_finish(OCB128_CONTEXT *ctx, const unsigned char *tag, - size_t len); -int CRYPTO_ocb128_tag(OCB128_CONTEXT *ctx, unsigned char *tag, size_t len); -void CRYPTO_ocb128_cleanup(OCB128_CONTEXT *ctx); -# endif /* OPENSSL_NO_OCB */ - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/obj_mac.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/obj_mac.h deleted file mode 100644 index 440ec10..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/obj_mac.h +++ /dev/null @@ -1,6695 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by crypto/objects/objects.pl - * - * Copyright 2000-2025 The OpenSSL Project Authors. All Rights Reserved. - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_OBJ_MAC_H -# define OPENSSL_OBJ_MAC_H -# pragma once - -#define SN_undef "UNDEF" -#define LN_undef "undefined" -#define NID_undef 0 -#define OBJ_undef 0L - -#define SN_itu_t "ITU-T" -#define LN_itu_t "itu-t" -#define NID_itu_t 645 -#define OBJ_itu_t 0L - -#define NID_ccitt 404 -#define OBJ_ccitt OBJ_itu_t - -#define SN_iso "ISO" -#define LN_iso "iso" -#define NID_iso 181 -#define OBJ_iso 1L - -#define SN_joint_iso_itu_t "JOINT-ISO-ITU-T" -#define LN_joint_iso_itu_t "joint-iso-itu-t" -#define NID_joint_iso_itu_t 646 -#define OBJ_joint_iso_itu_t 2L - -#define NID_joint_iso_ccitt 393 -#define OBJ_joint_iso_ccitt OBJ_joint_iso_itu_t - -#define SN_member_body "member-body" -#define LN_member_body "ISO Member Body" -#define NID_member_body 182 -#define OBJ_member_body OBJ_iso,2L - -#define SN_identified_organization "identified-organization" -#define NID_identified_organization 676 -#define OBJ_identified_organization OBJ_iso,3L - -#define SN_gmac "GMAC" -#define LN_gmac "gmac" -#define NID_gmac 1195 -#define OBJ_gmac OBJ_iso,0L,9797L,3L,4L - -#define SN_hmac_md5 "HMAC-MD5" -#define LN_hmac_md5 "hmac-md5" -#define NID_hmac_md5 780 -#define OBJ_hmac_md5 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,1L - -#define SN_hmac_sha1 "HMAC-SHA1" -#define LN_hmac_sha1 "hmac-sha1" -#define NID_hmac_sha1 781 -#define OBJ_hmac_sha1 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,2L - -#define SN_x509ExtAdmission "x509ExtAdmission" -#define LN_x509ExtAdmission "Professional Information or basis for Admission" -#define NID_x509ExtAdmission 1093 -#define OBJ_x509ExtAdmission OBJ_identified_organization,36L,8L,3L,3L - -#define SN_certicom_arc "certicom-arc" -#define NID_certicom_arc 677 -#define OBJ_certicom_arc OBJ_identified_organization,132L - -#define SN_ieee "ieee" -#define NID_ieee 1170 -#define OBJ_ieee OBJ_identified_organization,111L - -#define SN_ieee_siswg "ieee-siswg" -#define LN_ieee_siswg "IEEE Security in Storage Working Group" -#define NID_ieee_siswg 1171 -#define OBJ_ieee_siswg OBJ_ieee,2L,1619L - -#define SN_international_organizations "international-organizations" -#define LN_international_organizations "International Organizations" -#define NID_international_organizations 647 -#define OBJ_international_organizations OBJ_joint_iso_itu_t,23L - -#define SN_wap "wap" -#define NID_wap 678 -#define OBJ_wap OBJ_international_organizations,43L - -#define SN_wap_wsg "wap-wsg" -#define NID_wap_wsg 679 -#define OBJ_wap_wsg OBJ_wap,1L - -#define SN_selected_attribute_types "selected-attribute-types" -#define LN_selected_attribute_types "Selected Attribute Types" -#define NID_selected_attribute_types 394 -#define OBJ_selected_attribute_types OBJ_joint_iso_itu_t,5L,1L,5L - -#define SN_clearance "clearance" -#define NID_clearance 395 -#define OBJ_clearance OBJ_selected_attribute_types,55L - -#define SN_ISO_US "ISO-US" -#define LN_ISO_US "ISO US Member Body" -#define NID_ISO_US 183 -#define OBJ_ISO_US OBJ_member_body,840L - -#define SN_X9_57 "X9-57" -#define LN_X9_57 "X9.57" -#define NID_X9_57 184 -#define OBJ_X9_57 OBJ_ISO_US,10040L - -#define SN_X9cm "X9cm" -#define LN_X9cm "X9.57 CM ?" -#define NID_X9cm 185 -#define OBJ_X9cm OBJ_X9_57,4L - -#define SN_ISO_CN "ISO-CN" -#define LN_ISO_CN "ISO CN Member Body" -#define NID_ISO_CN 1140 -#define OBJ_ISO_CN OBJ_member_body,156L - -#define SN_oscca "oscca" -#define NID_oscca 1141 -#define OBJ_oscca OBJ_ISO_CN,10197L - -#define SN_sm_scheme "sm-scheme" -#define NID_sm_scheme 1142 -#define OBJ_sm_scheme OBJ_oscca,1L - -#define SN_dsa "DSA" -#define LN_dsa "dsaEncryption" -#define NID_dsa 116 -#define OBJ_dsa OBJ_X9cm,1L - -#define SN_dsaWithSHA1 "DSA-SHA1" -#define LN_dsaWithSHA1 "dsaWithSHA1" -#define NID_dsaWithSHA1 113 -#define OBJ_dsaWithSHA1 OBJ_X9cm,3L - -#define SN_ansi_X9_62 "ansi-X9-62" -#define LN_ansi_X9_62 "ANSI X9.62" -#define NID_ansi_X9_62 405 -#define OBJ_ansi_X9_62 OBJ_ISO_US,10045L - -#define OBJ_X9_62_id_fieldType OBJ_ansi_X9_62,1L - -#define SN_X9_62_prime_field "prime-field" -#define NID_X9_62_prime_field 406 -#define OBJ_X9_62_prime_field OBJ_X9_62_id_fieldType,1L - -#define SN_X9_62_characteristic_two_field "characteristic-two-field" -#define NID_X9_62_characteristic_two_field 407 -#define OBJ_X9_62_characteristic_two_field OBJ_X9_62_id_fieldType,2L - -#define SN_X9_62_id_characteristic_two_basis "id-characteristic-two-basis" -#define NID_X9_62_id_characteristic_two_basis 680 -#define OBJ_X9_62_id_characteristic_two_basis OBJ_X9_62_characteristic_two_field,3L - -#define SN_X9_62_onBasis "onBasis" -#define NID_X9_62_onBasis 681 -#define OBJ_X9_62_onBasis OBJ_X9_62_id_characteristic_two_basis,1L - -#define SN_X9_62_tpBasis "tpBasis" -#define NID_X9_62_tpBasis 682 -#define OBJ_X9_62_tpBasis OBJ_X9_62_id_characteristic_two_basis,2L - -#define SN_X9_62_ppBasis "ppBasis" -#define NID_X9_62_ppBasis 683 -#define OBJ_X9_62_ppBasis OBJ_X9_62_id_characteristic_two_basis,3L - -#define OBJ_X9_62_id_publicKeyType OBJ_ansi_X9_62,2L - -#define SN_X9_62_id_ecPublicKey "id-ecPublicKey" -#define NID_X9_62_id_ecPublicKey 408 -#define OBJ_X9_62_id_ecPublicKey OBJ_X9_62_id_publicKeyType,1L - -#define OBJ_X9_62_ellipticCurve OBJ_ansi_X9_62,3L - -#define OBJ_X9_62_c_TwoCurve OBJ_X9_62_ellipticCurve,0L - -#define SN_X9_62_c2pnb163v1 "c2pnb163v1" -#define NID_X9_62_c2pnb163v1 684 -#define OBJ_X9_62_c2pnb163v1 OBJ_X9_62_c_TwoCurve,1L - -#define SN_X9_62_c2pnb163v2 "c2pnb163v2" -#define NID_X9_62_c2pnb163v2 685 -#define OBJ_X9_62_c2pnb163v2 OBJ_X9_62_c_TwoCurve,2L - -#define SN_X9_62_c2pnb163v3 "c2pnb163v3" -#define NID_X9_62_c2pnb163v3 686 -#define OBJ_X9_62_c2pnb163v3 OBJ_X9_62_c_TwoCurve,3L - -#define SN_X9_62_c2pnb176v1 "c2pnb176v1" -#define NID_X9_62_c2pnb176v1 687 -#define OBJ_X9_62_c2pnb176v1 OBJ_X9_62_c_TwoCurve,4L - -#define SN_X9_62_c2tnb191v1 "c2tnb191v1" -#define NID_X9_62_c2tnb191v1 688 -#define OBJ_X9_62_c2tnb191v1 OBJ_X9_62_c_TwoCurve,5L - -#define SN_X9_62_c2tnb191v2 "c2tnb191v2" -#define NID_X9_62_c2tnb191v2 689 -#define OBJ_X9_62_c2tnb191v2 OBJ_X9_62_c_TwoCurve,6L - -#define SN_X9_62_c2tnb191v3 "c2tnb191v3" -#define NID_X9_62_c2tnb191v3 690 -#define OBJ_X9_62_c2tnb191v3 OBJ_X9_62_c_TwoCurve,7L - -#define SN_X9_62_c2onb191v4 "c2onb191v4" -#define NID_X9_62_c2onb191v4 691 -#define OBJ_X9_62_c2onb191v4 OBJ_X9_62_c_TwoCurve,8L - -#define SN_X9_62_c2onb191v5 "c2onb191v5" -#define NID_X9_62_c2onb191v5 692 -#define OBJ_X9_62_c2onb191v5 OBJ_X9_62_c_TwoCurve,9L - -#define SN_X9_62_c2pnb208w1 "c2pnb208w1" -#define NID_X9_62_c2pnb208w1 693 -#define OBJ_X9_62_c2pnb208w1 OBJ_X9_62_c_TwoCurve,10L - -#define SN_X9_62_c2tnb239v1 "c2tnb239v1" -#define NID_X9_62_c2tnb239v1 694 -#define OBJ_X9_62_c2tnb239v1 OBJ_X9_62_c_TwoCurve,11L - -#define SN_X9_62_c2tnb239v2 "c2tnb239v2" -#define NID_X9_62_c2tnb239v2 695 -#define OBJ_X9_62_c2tnb239v2 OBJ_X9_62_c_TwoCurve,12L - -#define SN_X9_62_c2tnb239v3 "c2tnb239v3" -#define NID_X9_62_c2tnb239v3 696 -#define OBJ_X9_62_c2tnb239v3 OBJ_X9_62_c_TwoCurve,13L - -#define SN_X9_62_c2onb239v4 "c2onb239v4" -#define NID_X9_62_c2onb239v4 697 -#define OBJ_X9_62_c2onb239v4 OBJ_X9_62_c_TwoCurve,14L - -#define SN_X9_62_c2onb239v5 "c2onb239v5" -#define NID_X9_62_c2onb239v5 698 -#define OBJ_X9_62_c2onb239v5 OBJ_X9_62_c_TwoCurve,15L - -#define SN_X9_62_c2pnb272w1 "c2pnb272w1" -#define NID_X9_62_c2pnb272w1 699 -#define OBJ_X9_62_c2pnb272w1 OBJ_X9_62_c_TwoCurve,16L - -#define SN_X9_62_c2pnb304w1 "c2pnb304w1" -#define NID_X9_62_c2pnb304w1 700 -#define OBJ_X9_62_c2pnb304w1 OBJ_X9_62_c_TwoCurve,17L - -#define SN_X9_62_c2tnb359v1 "c2tnb359v1" -#define NID_X9_62_c2tnb359v1 701 -#define OBJ_X9_62_c2tnb359v1 OBJ_X9_62_c_TwoCurve,18L - -#define SN_X9_62_c2pnb368w1 "c2pnb368w1" -#define NID_X9_62_c2pnb368w1 702 -#define OBJ_X9_62_c2pnb368w1 OBJ_X9_62_c_TwoCurve,19L - -#define SN_X9_62_c2tnb431r1 "c2tnb431r1" -#define NID_X9_62_c2tnb431r1 703 -#define OBJ_X9_62_c2tnb431r1 OBJ_X9_62_c_TwoCurve,20L - -#define OBJ_X9_62_primeCurve OBJ_X9_62_ellipticCurve,1L - -#define SN_X9_62_prime192v1 "prime192v1" -#define NID_X9_62_prime192v1 409 -#define OBJ_X9_62_prime192v1 OBJ_X9_62_primeCurve,1L - -#define SN_X9_62_prime192v2 "prime192v2" -#define NID_X9_62_prime192v2 410 -#define OBJ_X9_62_prime192v2 OBJ_X9_62_primeCurve,2L - -#define SN_X9_62_prime192v3 "prime192v3" -#define NID_X9_62_prime192v3 411 -#define OBJ_X9_62_prime192v3 OBJ_X9_62_primeCurve,3L - -#define SN_X9_62_prime239v1 "prime239v1" -#define NID_X9_62_prime239v1 412 -#define OBJ_X9_62_prime239v1 OBJ_X9_62_primeCurve,4L - -#define SN_X9_62_prime239v2 "prime239v2" -#define NID_X9_62_prime239v2 413 -#define OBJ_X9_62_prime239v2 OBJ_X9_62_primeCurve,5L - -#define SN_X9_62_prime239v3 "prime239v3" -#define NID_X9_62_prime239v3 414 -#define OBJ_X9_62_prime239v3 OBJ_X9_62_primeCurve,6L - -#define SN_X9_62_prime256v1 "prime256v1" -#define NID_X9_62_prime256v1 415 -#define OBJ_X9_62_prime256v1 OBJ_X9_62_primeCurve,7L - -#define OBJ_X9_62_id_ecSigType OBJ_ansi_X9_62,4L - -#define SN_ecdsa_with_SHA1 "ecdsa-with-SHA1" -#define NID_ecdsa_with_SHA1 416 -#define OBJ_ecdsa_with_SHA1 OBJ_X9_62_id_ecSigType,1L - -#define SN_ecdsa_with_Recommended "ecdsa-with-Recommended" -#define NID_ecdsa_with_Recommended 791 -#define OBJ_ecdsa_with_Recommended OBJ_X9_62_id_ecSigType,2L - -#define SN_ecdsa_with_Specified "ecdsa-with-Specified" -#define NID_ecdsa_with_Specified 792 -#define OBJ_ecdsa_with_Specified OBJ_X9_62_id_ecSigType,3L - -#define SN_ecdsa_with_SHA224 "ecdsa-with-SHA224" -#define NID_ecdsa_with_SHA224 793 -#define OBJ_ecdsa_with_SHA224 OBJ_ecdsa_with_Specified,1L - -#define SN_ecdsa_with_SHA256 "ecdsa-with-SHA256" -#define NID_ecdsa_with_SHA256 794 -#define OBJ_ecdsa_with_SHA256 OBJ_ecdsa_with_Specified,2L - -#define SN_ecdsa_with_SHA384 "ecdsa-with-SHA384" -#define NID_ecdsa_with_SHA384 795 -#define OBJ_ecdsa_with_SHA384 OBJ_ecdsa_with_Specified,3L - -#define SN_ecdsa_with_SHA512 "ecdsa-with-SHA512" -#define NID_ecdsa_with_SHA512 796 -#define OBJ_ecdsa_with_SHA512 OBJ_ecdsa_with_Specified,4L - -#define OBJ_secg_ellipticCurve OBJ_certicom_arc,0L - -#define SN_secp112r1 "secp112r1" -#define NID_secp112r1 704 -#define OBJ_secp112r1 OBJ_secg_ellipticCurve,6L - -#define SN_secp112r2 "secp112r2" -#define NID_secp112r2 705 -#define OBJ_secp112r2 OBJ_secg_ellipticCurve,7L - -#define SN_secp128r1 "secp128r1" -#define NID_secp128r1 706 -#define OBJ_secp128r1 OBJ_secg_ellipticCurve,28L - -#define SN_secp128r2 "secp128r2" -#define NID_secp128r2 707 -#define OBJ_secp128r2 OBJ_secg_ellipticCurve,29L - -#define SN_secp160k1 "secp160k1" -#define NID_secp160k1 708 -#define OBJ_secp160k1 OBJ_secg_ellipticCurve,9L - -#define SN_secp160r1 "secp160r1" -#define NID_secp160r1 709 -#define OBJ_secp160r1 OBJ_secg_ellipticCurve,8L - -#define SN_secp160r2 "secp160r2" -#define NID_secp160r2 710 -#define OBJ_secp160r2 OBJ_secg_ellipticCurve,30L - -#define SN_secp192k1 "secp192k1" -#define NID_secp192k1 711 -#define OBJ_secp192k1 OBJ_secg_ellipticCurve,31L - -#define SN_secp224k1 "secp224k1" -#define NID_secp224k1 712 -#define OBJ_secp224k1 OBJ_secg_ellipticCurve,32L - -#define SN_secp224r1 "secp224r1" -#define NID_secp224r1 713 -#define OBJ_secp224r1 OBJ_secg_ellipticCurve,33L - -#define SN_secp256k1 "secp256k1" -#define NID_secp256k1 714 -#define OBJ_secp256k1 OBJ_secg_ellipticCurve,10L - -#define SN_secp384r1 "secp384r1" -#define NID_secp384r1 715 -#define OBJ_secp384r1 OBJ_secg_ellipticCurve,34L - -#define SN_secp521r1 "secp521r1" -#define NID_secp521r1 716 -#define OBJ_secp521r1 OBJ_secg_ellipticCurve,35L - -#define SN_sect113r1 "sect113r1" -#define NID_sect113r1 717 -#define OBJ_sect113r1 OBJ_secg_ellipticCurve,4L - -#define SN_sect113r2 "sect113r2" -#define NID_sect113r2 718 -#define OBJ_sect113r2 OBJ_secg_ellipticCurve,5L - -#define SN_sect131r1 "sect131r1" -#define NID_sect131r1 719 -#define OBJ_sect131r1 OBJ_secg_ellipticCurve,22L - -#define SN_sect131r2 "sect131r2" -#define NID_sect131r2 720 -#define OBJ_sect131r2 OBJ_secg_ellipticCurve,23L - -#define SN_sect163k1 "sect163k1" -#define NID_sect163k1 721 -#define OBJ_sect163k1 OBJ_secg_ellipticCurve,1L - -#define SN_sect163r1 "sect163r1" -#define NID_sect163r1 722 -#define OBJ_sect163r1 OBJ_secg_ellipticCurve,2L - -#define SN_sect163r2 "sect163r2" -#define NID_sect163r2 723 -#define OBJ_sect163r2 OBJ_secg_ellipticCurve,15L - -#define SN_sect193r1 "sect193r1" -#define NID_sect193r1 724 -#define OBJ_sect193r1 OBJ_secg_ellipticCurve,24L - -#define SN_sect193r2 "sect193r2" -#define NID_sect193r2 725 -#define OBJ_sect193r2 OBJ_secg_ellipticCurve,25L - -#define SN_sect233k1 "sect233k1" -#define NID_sect233k1 726 -#define OBJ_sect233k1 OBJ_secg_ellipticCurve,26L - -#define SN_sect233r1 "sect233r1" -#define NID_sect233r1 727 -#define OBJ_sect233r1 OBJ_secg_ellipticCurve,27L - -#define SN_sect239k1 "sect239k1" -#define NID_sect239k1 728 -#define OBJ_sect239k1 OBJ_secg_ellipticCurve,3L - -#define SN_sect283k1 "sect283k1" -#define NID_sect283k1 729 -#define OBJ_sect283k1 OBJ_secg_ellipticCurve,16L - -#define SN_sect283r1 "sect283r1" -#define NID_sect283r1 730 -#define OBJ_sect283r1 OBJ_secg_ellipticCurve,17L - -#define SN_sect409k1 "sect409k1" -#define NID_sect409k1 731 -#define OBJ_sect409k1 OBJ_secg_ellipticCurve,36L - -#define SN_sect409r1 "sect409r1" -#define NID_sect409r1 732 -#define OBJ_sect409r1 OBJ_secg_ellipticCurve,37L - -#define SN_sect571k1 "sect571k1" -#define NID_sect571k1 733 -#define OBJ_sect571k1 OBJ_secg_ellipticCurve,38L - -#define SN_sect571r1 "sect571r1" -#define NID_sect571r1 734 -#define OBJ_sect571r1 OBJ_secg_ellipticCurve,39L - -#define OBJ_wap_wsg_idm_ecid OBJ_wap_wsg,4L - -#define SN_wap_wsg_idm_ecid_wtls1 "wap-wsg-idm-ecid-wtls1" -#define NID_wap_wsg_idm_ecid_wtls1 735 -#define OBJ_wap_wsg_idm_ecid_wtls1 OBJ_wap_wsg_idm_ecid,1L - -#define SN_wap_wsg_idm_ecid_wtls3 "wap-wsg-idm-ecid-wtls3" -#define NID_wap_wsg_idm_ecid_wtls3 736 -#define OBJ_wap_wsg_idm_ecid_wtls3 OBJ_wap_wsg_idm_ecid,3L - -#define SN_wap_wsg_idm_ecid_wtls4 "wap-wsg-idm-ecid-wtls4" -#define NID_wap_wsg_idm_ecid_wtls4 737 -#define OBJ_wap_wsg_idm_ecid_wtls4 OBJ_wap_wsg_idm_ecid,4L - -#define SN_wap_wsg_idm_ecid_wtls5 "wap-wsg-idm-ecid-wtls5" -#define NID_wap_wsg_idm_ecid_wtls5 738 -#define OBJ_wap_wsg_idm_ecid_wtls5 OBJ_wap_wsg_idm_ecid,5L - -#define SN_wap_wsg_idm_ecid_wtls6 "wap-wsg-idm-ecid-wtls6" -#define NID_wap_wsg_idm_ecid_wtls6 739 -#define OBJ_wap_wsg_idm_ecid_wtls6 OBJ_wap_wsg_idm_ecid,6L - -#define SN_wap_wsg_idm_ecid_wtls7 "wap-wsg-idm-ecid-wtls7" -#define NID_wap_wsg_idm_ecid_wtls7 740 -#define OBJ_wap_wsg_idm_ecid_wtls7 OBJ_wap_wsg_idm_ecid,7L - -#define SN_wap_wsg_idm_ecid_wtls8 "wap-wsg-idm-ecid-wtls8" -#define NID_wap_wsg_idm_ecid_wtls8 741 -#define OBJ_wap_wsg_idm_ecid_wtls8 OBJ_wap_wsg_idm_ecid,8L - -#define SN_wap_wsg_idm_ecid_wtls9 "wap-wsg-idm-ecid-wtls9" -#define NID_wap_wsg_idm_ecid_wtls9 742 -#define OBJ_wap_wsg_idm_ecid_wtls9 OBJ_wap_wsg_idm_ecid,9L - -#define SN_wap_wsg_idm_ecid_wtls10 "wap-wsg-idm-ecid-wtls10" -#define NID_wap_wsg_idm_ecid_wtls10 743 -#define OBJ_wap_wsg_idm_ecid_wtls10 OBJ_wap_wsg_idm_ecid,10L - -#define SN_wap_wsg_idm_ecid_wtls11 "wap-wsg-idm-ecid-wtls11" -#define NID_wap_wsg_idm_ecid_wtls11 744 -#define OBJ_wap_wsg_idm_ecid_wtls11 OBJ_wap_wsg_idm_ecid,11L - -#define SN_wap_wsg_idm_ecid_wtls12 "wap-wsg-idm-ecid-wtls12" -#define NID_wap_wsg_idm_ecid_wtls12 745 -#define OBJ_wap_wsg_idm_ecid_wtls12 OBJ_wap_wsg_idm_ecid,12L - -#define SN_cast5_cbc "CAST5-CBC" -#define LN_cast5_cbc "cast5-cbc" -#define NID_cast5_cbc 108 -#define OBJ_cast5_cbc OBJ_ISO_US,113533L,7L,66L,10L - -#define SN_cast5_ecb "CAST5-ECB" -#define LN_cast5_ecb "cast5-ecb" -#define NID_cast5_ecb 109 - -#define SN_cast5_cfb64 "CAST5-CFB" -#define LN_cast5_cfb64 "cast5-cfb" -#define NID_cast5_cfb64 110 - -#define SN_cast5_ofb64 "CAST5-OFB" -#define LN_cast5_ofb64 "cast5-ofb" -#define NID_cast5_ofb64 111 - -#define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC" -#define NID_pbeWithMD5AndCast5_CBC 112 -#define OBJ_pbeWithMD5AndCast5_CBC OBJ_ISO_US,113533L,7L,66L,12L - -#define SN_id_PasswordBasedMAC "id-PasswordBasedMAC" -#define LN_id_PasswordBasedMAC "password based MAC" -#define NID_id_PasswordBasedMAC 782 -#define OBJ_id_PasswordBasedMAC OBJ_ISO_US,113533L,7L,66L,13L - -#define SN_id_DHBasedMac "id-DHBasedMac" -#define LN_id_DHBasedMac "Diffie-Hellman based MAC" -#define NID_id_DHBasedMac 783 -#define OBJ_id_DHBasedMac OBJ_ISO_US,113533L,7L,66L,30L - -#define SN_rsadsi "rsadsi" -#define LN_rsadsi "RSA Data Security, Inc." -#define NID_rsadsi 1 -#define OBJ_rsadsi OBJ_ISO_US,113549L - -#define SN_pkcs "pkcs" -#define LN_pkcs "RSA Data Security, Inc. PKCS" -#define NID_pkcs 2 -#define OBJ_pkcs OBJ_rsadsi,1L - -#define SN_pkcs1 "pkcs1" -#define NID_pkcs1 186 -#define OBJ_pkcs1 OBJ_pkcs,1L - -#define LN_rsaEncryption "rsaEncryption" -#define NID_rsaEncryption 6 -#define OBJ_rsaEncryption OBJ_pkcs1,1L - -#define SN_md2WithRSAEncryption "RSA-MD2" -#define LN_md2WithRSAEncryption "md2WithRSAEncryption" -#define NID_md2WithRSAEncryption 7 -#define OBJ_md2WithRSAEncryption OBJ_pkcs1,2L - -#define SN_md4WithRSAEncryption "RSA-MD4" -#define LN_md4WithRSAEncryption "md4WithRSAEncryption" -#define NID_md4WithRSAEncryption 396 -#define OBJ_md4WithRSAEncryption OBJ_pkcs1,3L - -#define SN_md5WithRSAEncryption "RSA-MD5" -#define LN_md5WithRSAEncryption "md5WithRSAEncryption" -#define NID_md5WithRSAEncryption 8 -#define OBJ_md5WithRSAEncryption OBJ_pkcs1,4L - -#define SN_sha1WithRSAEncryption "RSA-SHA1" -#define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" -#define NID_sha1WithRSAEncryption 65 -#define OBJ_sha1WithRSAEncryption OBJ_pkcs1,5L - -#define SN_rsaesOaep "RSAES-OAEP" -#define LN_rsaesOaep "rsaesOaep" -#define NID_rsaesOaep 919 -#define OBJ_rsaesOaep OBJ_pkcs1,7L - -#define SN_mgf1 "MGF1" -#define LN_mgf1 "mgf1" -#define NID_mgf1 911 -#define OBJ_mgf1 OBJ_pkcs1,8L - -#define SN_pSpecified "PSPECIFIED" -#define LN_pSpecified "pSpecified" -#define NID_pSpecified 935 -#define OBJ_pSpecified OBJ_pkcs1,9L - -#define SN_rsassaPss "RSASSA-PSS" -#define LN_rsassaPss "rsassaPss" -#define NID_rsassaPss 912 -#define OBJ_rsassaPss OBJ_pkcs1,10L - -#define SN_sha256WithRSAEncryption "RSA-SHA256" -#define LN_sha256WithRSAEncryption "sha256WithRSAEncryption" -#define NID_sha256WithRSAEncryption 668 -#define OBJ_sha256WithRSAEncryption OBJ_pkcs1,11L - -#define SN_sha384WithRSAEncryption "RSA-SHA384" -#define LN_sha384WithRSAEncryption "sha384WithRSAEncryption" -#define NID_sha384WithRSAEncryption 669 -#define OBJ_sha384WithRSAEncryption OBJ_pkcs1,12L - -#define SN_sha512WithRSAEncryption "RSA-SHA512" -#define LN_sha512WithRSAEncryption "sha512WithRSAEncryption" -#define NID_sha512WithRSAEncryption 670 -#define OBJ_sha512WithRSAEncryption OBJ_pkcs1,13L - -#define SN_sha224WithRSAEncryption "RSA-SHA224" -#define LN_sha224WithRSAEncryption "sha224WithRSAEncryption" -#define NID_sha224WithRSAEncryption 671 -#define OBJ_sha224WithRSAEncryption OBJ_pkcs1,14L - -#define SN_sha512_224WithRSAEncryption "RSA-SHA512/224" -#define LN_sha512_224WithRSAEncryption "sha512-224WithRSAEncryption" -#define NID_sha512_224WithRSAEncryption 1145 -#define OBJ_sha512_224WithRSAEncryption OBJ_pkcs1,15L - -#define SN_sha512_256WithRSAEncryption "RSA-SHA512/256" -#define LN_sha512_256WithRSAEncryption "sha512-256WithRSAEncryption" -#define NID_sha512_256WithRSAEncryption 1146 -#define OBJ_sha512_256WithRSAEncryption OBJ_pkcs1,16L - -#define SN_pkcs3 "pkcs3" -#define NID_pkcs3 27 -#define OBJ_pkcs3 OBJ_pkcs,3L - -#define LN_dhKeyAgreement "dhKeyAgreement" -#define NID_dhKeyAgreement 28 -#define OBJ_dhKeyAgreement OBJ_pkcs3,1L - -#define SN_pkcs5 "pkcs5" -#define NID_pkcs5 187 -#define OBJ_pkcs5 OBJ_pkcs,5L - -#define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" -#define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" -#define NID_pbeWithMD2AndDES_CBC 9 -#define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs5,1L - -#define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" -#define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" -#define NID_pbeWithMD5AndDES_CBC 10 -#define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs5,3L - -#define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" -#define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" -#define NID_pbeWithMD2AndRC2_CBC 168 -#define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs5,4L - -#define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64" -#define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" -#define NID_pbeWithMD5AndRC2_CBC 169 -#define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs5,6L - -#define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" -#define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" -#define NID_pbeWithSHA1AndDES_CBC 170 -#define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs5,10L - -#define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" -#define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" -#define NID_pbeWithSHA1AndRC2_CBC 68 -#define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs5,11L - -#define LN_id_pbkdf2 "PBKDF2" -#define NID_id_pbkdf2 69 -#define OBJ_id_pbkdf2 OBJ_pkcs5,12L - -#define LN_pbes2 "PBES2" -#define NID_pbes2 161 -#define OBJ_pbes2 OBJ_pkcs5,13L - -#define LN_pbmac1 "PBMAC1" -#define NID_pbmac1 162 -#define OBJ_pbmac1 OBJ_pkcs5,14L - -#define SN_pkcs7 "pkcs7" -#define NID_pkcs7 20 -#define OBJ_pkcs7 OBJ_pkcs,7L - -#define LN_pkcs7_data "pkcs7-data" -#define NID_pkcs7_data 21 -#define OBJ_pkcs7_data OBJ_pkcs7,1L - -#define LN_pkcs7_signed "pkcs7-signedData" -#define NID_pkcs7_signed 22 -#define OBJ_pkcs7_signed OBJ_pkcs7,2L - -#define LN_pkcs7_enveloped "pkcs7-envelopedData" -#define NID_pkcs7_enveloped 23 -#define OBJ_pkcs7_enveloped OBJ_pkcs7,3L - -#define LN_pkcs7_signedAndEnveloped "pkcs7-signedAndEnvelopedData" -#define NID_pkcs7_signedAndEnveloped 24 -#define OBJ_pkcs7_signedAndEnveloped OBJ_pkcs7,4L - -#define LN_pkcs7_digest "pkcs7-digestData" -#define NID_pkcs7_digest 25 -#define OBJ_pkcs7_digest OBJ_pkcs7,5L - -#define LN_pkcs7_encrypted "pkcs7-encryptedData" -#define NID_pkcs7_encrypted 26 -#define OBJ_pkcs7_encrypted OBJ_pkcs7,6L - -#define SN_pkcs9 "pkcs9" -#define NID_pkcs9 47 -#define OBJ_pkcs9 OBJ_pkcs,9L - -#define LN_pkcs9_emailAddress "emailAddress" -#define NID_pkcs9_emailAddress 48 -#define OBJ_pkcs9_emailAddress OBJ_pkcs9,1L - -#define LN_pkcs9_unstructuredName "unstructuredName" -#define NID_pkcs9_unstructuredName 49 -#define OBJ_pkcs9_unstructuredName OBJ_pkcs9,2L - -#define LN_pkcs9_contentType "contentType" -#define NID_pkcs9_contentType 50 -#define OBJ_pkcs9_contentType OBJ_pkcs9,3L - -#define LN_pkcs9_messageDigest "messageDigest" -#define NID_pkcs9_messageDigest 51 -#define OBJ_pkcs9_messageDigest OBJ_pkcs9,4L - -#define LN_pkcs9_signingTime "signingTime" -#define NID_pkcs9_signingTime 52 -#define OBJ_pkcs9_signingTime OBJ_pkcs9,5L - -#define LN_pkcs9_countersignature "countersignature" -#define NID_pkcs9_countersignature 53 -#define OBJ_pkcs9_countersignature OBJ_pkcs9,6L - -#define LN_pkcs9_challengePassword "challengePassword" -#define NID_pkcs9_challengePassword 54 -#define OBJ_pkcs9_challengePassword OBJ_pkcs9,7L - -#define LN_pkcs9_unstructuredAddress "unstructuredAddress" -#define NID_pkcs9_unstructuredAddress 55 -#define OBJ_pkcs9_unstructuredAddress OBJ_pkcs9,8L - -#define LN_pkcs9_extCertAttributes "extendedCertificateAttributes" -#define NID_pkcs9_extCertAttributes 56 -#define OBJ_pkcs9_extCertAttributes OBJ_pkcs9,9L - -#define SN_ext_req "extReq" -#define LN_ext_req "Extension Request" -#define NID_ext_req 172 -#define OBJ_ext_req OBJ_pkcs9,14L - -#define SN_SMIMECapabilities "SMIME-CAPS" -#define LN_SMIMECapabilities "S/MIME Capabilities" -#define NID_SMIMECapabilities 167 -#define OBJ_SMIMECapabilities OBJ_pkcs9,15L - -#define SN_SMIME "SMIME" -#define LN_SMIME "S/MIME" -#define NID_SMIME 188 -#define OBJ_SMIME OBJ_pkcs9,16L - -#define SN_id_smime_mod "id-smime-mod" -#define NID_id_smime_mod 189 -#define OBJ_id_smime_mod OBJ_SMIME,0L - -#define SN_id_smime_ct "id-smime-ct" -#define NID_id_smime_ct 190 -#define OBJ_id_smime_ct OBJ_SMIME,1L - -#define SN_id_smime_aa "id-smime-aa" -#define NID_id_smime_aa 191 -#define OBJ_id_smime_aa OBJ_SMIME,2L - -#define SN_id_smime_alg "id-smime-alg" -#define NID_id_smime_alg 192 -#define OBJ_id_smime_alg OBJ_SMIME,3L - -#define SN_id_smime_cd "id-smime-cd" -#define NID_id_smime_cd 193 -#define OBJ_id_smime_cd OBJ_SMIME,4L - -#define SN_id_smime_spq "id-smime-spq" -#define NID_id_smime_spq 194 -#define OBJ_id_smime_spq OBJ_SMIME,5L - -#define SN_id_smime_cti "id-smime-cti" -#define NID_id_smime_cti 195 -#define OBJ_id_smime_cti OBJ_SMIME,6L - -#define SN_id_smime_ori "id-smime-ori" -#define NID_id_smime_ori 1499 -#define OBJ_id_smime_ori OBJ_SMIME,13L - -#define SN_id_smime_mod_cms "id-smime-mod-cms" -#define NID_id_smime_mod_cms 196 -#define OBJ_id_smime_mod_cms OBJ_id_smime_mod,1L - -#define SN_id_smime_mod_ess "id-smime-mod-ess" -#define NID_id_smime_mod_ess 197 -#define OBJ_id_smime_mod_ess OBJ_id_smime_mod,2L - -#define SN_id_smime_mod_oid "id-smime-mod-oid" -#define NID_id_smime_mod_oid 198 -#define OBJ_id_smime_mod_oid OBJ_id_smime_mod,3L - -#define SN_id_smime_mod_msg_v3 "id-smime-mod-msg-v3" -#define NID_id_smime_mod_msg_v3 199 -#define OBJ_id_smime_mod_msg_v3 OBJ_id_smime_mod,4L - -#define SN_id_smime_mod_ets_eSignature_88 "id-smime-mod-ets-eSignature-88" -#define NID_id_smime_mod_ets_eSignature_88 200 -#define OBJ_id_smime_mod_ets_eSignature_88 OBJ_id_smime_mod,5L - -#define SN_id_smime_mod_ets_eSignature_97 "id-smime-mod-ets-eSignature-97" -#define NID_id_smime_mod_ets_eSignature_97 201 -#define OBJ_id_smime_mod_ets_eSignature_97 OBJ_id_smime_mod,6L - -#define SN_id_smime_mod_ets_eSigPolicy_88 "id-smime-mod-ets-eSigPolicy-88" -#define NID_id_smime_mod_ets_eSigPolicy_88 202 -#define OBJ_id_smime_mod_ets_eSigPolicy_88 OBJ_id_smime_mod,7L - -#define SN_id_smime_mod_ets_eSigPolicy_97 "id-smime-mod-ets-eSigPolicy-97" -#define NID_id_smime_mod_ets_eSigPolicy_97 203 -#define OBJ_id_smime_mod_ets_eSigPolicy_97 OBJ_id_smime_mod,8L - -#define SN_id_smime_ct_receipt "id-smime-ct-receipt" -#define NID_id_smime_ct_receipt 204 -#define OBJ_id_smime_ct_receipt OBJ_id_smime_ct,1L - -#define SN_id_smime_ct_authData "id-smime-ct-authData" -#define NID_id_smime_ct_authData 205 -#define OBJ_id_smime_ct_authData OBJ_id_smime_ct,2L - -#define SN_id_smime_ct_publishCert "id-smime-ct-publishCert" -#define NID_id_smime_ct_publishCert 206 -#define OBJ_id_smime_ct_publishCert OBJ_id_smime_ct,3L - -#define SN_id_smime_ct_TSTInfo "id-smime-ct-TSTInfo" -#define NID_id_smime_ct_TSTInfo 207 -#define OBJ_id_smime_ct_TSTInfo OBJ_id_smime_ct,4L - -#define SN_id_smime_ct_TDTInfo "id-smime-ct-TDTInfo" -#define NID_id_smime_ct_TDTInfo 208 -#define OBJ_id_smime_ct_TDTInfo OBJ_id_smime_ct,5L - -#define SN_id_smime_ct_contentInfo "id-smime-ct-contentInfo" -#define NID_id_smime_ct_contentInfo 209 -#define OBJ_id_smime_ct_contentInfo OBJ_id_smime_ct,6L - -#define SN_id_smime_ct_DVCSRequestData "id-smime-ct-DVCSRequestData" -#define NID_id_smime_ct_DVCSRequestData 210 -#define OBJ_id_smime_ct_DVCSRequestData OBJ_id_smime_ct,7L - -#define SN_id_smime_ct_DVCSResponseData "id-smime-ct-DVCSResponseData" -#define NID_id_smime_ct_DVCSResponseData 211 -#define OBJ_id_smime_ct_DVCSResponseData OBJ_id_smime_ct,8L - -#define SN_id_smime_ct_compressedData "id-smime-ct-compressedData" -#define NID_id_smime_ct_compressedData 786 -#define OBJ_id_smime_ct_compressedData OBJ_id_smime_ct,9L - -#define SN_id_smime_ct_contentCollection "id-smime-ct-contentCollection" -#define NID_id_smime_ct_contentCollection 1058 -#define OBJ_id_smime_ct_contentCollection OBJ_id_smime_ct,19L - -#define SN_id_smime_ct_authEnvelopedData "id-smime-ct-authEnvelopedData" -#define NID_id_smime_ct_authEnvelopedData 1059 -#define OBJ_id_smime_ct_authEnvelopedData OBJ_id_smime_ct,23L - -#define SN_id_ct_routeOriginAuthz "id-ct-routeOriginAuthz" -#define NID_id_ct_routeOriginAuthz 1234 -#define OBJ_id_ct_routeOriginAuthz OBJ_id_smime_ct,24L - -#define SN_id_ct_rpkiManifest "id-ct-rpkiManifest" -#define NID_id_ct_rpkiManifest 1235 -#define OBJ_id_ct_rpkiManifest OBJ_id_smime_ct,26L - -#define SN_id_ct_asciiTextWithCRLF "id-ct-asciiTextWithCRLF" -#define NID_id_ct_asciiTextWithCRLF 787 -#define OBJ_id_ct_asciiTextWithCRLF OBJ_id_smime_ct,27L - -#define SN_id_ct_xml "id-ct-xml" -#define NID_id_ct_xml 1060 -#define OBJ_id_ct_xml OBJ_id_smime_ct,28L - -#define SN_id_ct_rpkiGhostbusters "id-ct-rpkiGhostbusters" -#define NID_id_ct_rpkiGhostbusters 1236 -#define OBJ_id_ct_rpkiGhostbusters OBJ_id_smime_ct,35L - -#define SN_id_ct_resourceTaggedAttest "id-ct-resourceTaggedAttest" -#define NID_id_ct_resourceTaggedAttest 1237 -#define OBJ_id_ct_resourceTaggedAttest OBJ_id_smime_ct,36L - -#define SN_id_ct_geofeedCSVwithCRLF "id-ct-geofeedCSVwithCRLF" -#define NID_id_ct_geofeedCSVwithCRLF 1246 -#define OBJ_id_ct_geofeedCSVwithCRLF OBJ_id_smime_ct,47L - -#define SN_id_ct_signedChecklist "id-ct-signedChecklist" -#define NID_id_ct_signedChecklist 1247 -#define OBJ_id_ct_signedChecklist OBJ_id_smime_ct,48L - -#define SN_id_ct_ASPA "id-ct-ASPA" -#define NID_id_ct_ASPA 1250 -#define OBJ_id_ct_ASPA OBJ_id_smime_ct,49L - -#define SN_id_ct_signedTAL "id-ct-signedTAL" -#define NID_id_ct_signedTAL 1284 -#define OBJ_id_ct_signedTAL OBJ_id_smime_ct,50L - -#define SN_id_ct_rpkiSignedPrefixList "id-ct-rpkiSignedPrefixList" -#define NID_id_ct_rpkiSignedPrefixList 1320 -#define OBJ_id_ct_rpkiSignedPrefixList OBJ_id_smime_ct,51L - -#define SN_id_smime_aa_receiptRequest "id-smime-aa-receiptRequest" -#define NID_id_smime_aa_receiptRequest 212 -#define OBJ_id_smime_aa_receiptRequest OBJ_id_smime_aa,1L - -#define SN_id_smime_aa_securityLabel "id-smime-aa-securityLabel" -#define NID_id_smime_aa_securityLabel 213 -#define OBJ_id_smime_aa_securityLabel OBJ_id_smime_aa,2L - -#define SN_id_smime_aa_mlExpandHistory "id-smime-aa-mlExpandHistory" -#define NID_id_smime_aa_mlExpandHistory 214 -#define OBJ_id_smime_aa_mlExpandHistory OBJ_id_smime_aa,3L - -#define SN_id_smime_aa_contentHint "id-smime-aa-contentHint" -#define NID_id_smime_aa_contentHint 215 -#define OBJ_id_smime_aa_contentHint OBJ_id_smime_aa,4L - -#define SN_id_smime_aa_msgSigDigest "id-smime-aa-msgSigDigest" -#define NID_id_smime_aa_msgSigDigest 216 -#define OBJ_id_smime_aa_msgSigDigest OBJ_id_smime_aa,5L - -#define SN_id_smime_aa_encapContentType "id-smime-aa-encapContentType" -#define NID_id_smime_aa_encapContentType 217 -#define OBJ_id_smime_aa_encapContentType OBJ_id_smime_aa,6L - -#define SN_id_smime_aa_contentIdentifier "id-smime-aa-contentIdentifier" -#define NID_id_smime_aa_contentIdentifier 218 -#define OBJ_id_smime_aa_contentIdentifier OBJ_id_smime_aa,7L - -#define SN_id_smime_aa_macValue "id-smime-aa-macValue" -#define NID_id_smime_aa_macValue 219 -#define OBJ_id_smime_aa_macValue OBJ_id_smime_aa,8L - -#define SN_id_smime_aa_equivalentLabels "id-smime-aa-equivalentLabels" -#define NID_id_smime_aa_equivalentLabels 220 -#define OBJ_id_smime_aa_equivalentLabels OBJ_id_smime_aa,9L - -#define SN_id_smime_aa_contentReference "id-smime-aa-contentReference" -#define NID_id_smime_aa_contentReference 221 -#define OBJ_id_smime_aa_contentReference OBJ_id_smime_aa,10L - -#define SN_id_smime_aa_encrypKeyPref "id-smime-aa-encrypKeyPref" -#define NID_id_smime_aa_encrypKeyPref 222 -#define OBJ_id_smime_aa_encrypKeyPref OBJ_id_smime_aa,11L - -#define SN_id_smime_aa_signingCertificate "id-smime-aa-signingCertificate" -#define NID_id_smime_aa_signingCertificate 223 -#define OBJ_id_smime_aa_signingCertificate OBJ_id_smime_aa,12L - -#define SN_id_smime_aa_smimeEncryptCerts "id-smime-aa-smimeEncryptCerts" -#define NID_id_smime_aa_smimeEncryptCerts 224 -#define OBJ_id_smime_aa_smimeEncryptCerts OBJ_id_smime_aa,13L - -#define SN_id_smime_aa_timeStampToken "id-smime-aa-timeStampToken" -#define NID_id_smime_aa_timeStampToken 225 -#define OBJ_id_smime_aa_timeStampToken OBJ_id_smime_aa,14L - -#define SN_id_smime_aa_ets_sigPolicyId "id-smime-aa-ets-sigPolicyId" -#define NID_id_smime_aa_ets_sigPolicyId 226 -#define OBJ_id_smime_aa_ets_sigPolicyId OBJ_id_smime_aa,15L - -#define SN_id_smime_aa_ets_commitmentType "id-smime-aa-ets-commitmentType" -#define NID_id_smime_aa_ets_commitmentType 227 -#define OBJ_id_smime_aa_ets_commitmentType OBJ_id_smime_aa,16L - -#define SN_id_smime_aa_ets_signerLocation "id-smime-aa-ets-signerLocation" -#define NID_id_smime_aa_ets_signerLocation 228 -#define OBJ_id_smime_aa_ets_signerLocation OBJ_id_smime_aa,17L - -#define SN_id_smime_aa_ets_signerAttr "id-smime-aa-ets-signerAttr" -#define NID_id_smime_aa_ets_signerAttr 229 -#define OBJ_id_smime_aa_ets_signerAttr OBJ_id_smime_aa,18L - -#define SN_id_smime_aa_ets_otherSigCert "id-smime-aa-ets-otherSigCert" -#define NID_id_smime_aa_ets_otherSigCert 230 -#define OBJ_id_smime_aa_ets_otherSigCert OBJ_id_smime_aa,19L - -#define SN_id_smime_aa_ets_contentTimestamp "id-smime-aa-ets-contentTimestamp" -#define NID_id_smime_aa_ets_contentTimestamp 231 -#define OBJ_id_smime_aa_ets_contentTimestamp OBJ_id_smime_aa,20L - -#define SN_id_smime_aa_ets_CertificateRefs "id-smime-aa-ets-CertificateRefs" -#define NID_id_smime_aa_ets_CertificateRefs 232 -#define OBJ_id_smime_aa_ets_CertificateRefs OBJ_id_smime_aa,21L - -#define SN_id_smime_aa_ets_RevocationRefs "id-smime-aa-ets-RevocationRefs" -#define NID_id_smime_aa_ets_RevocationRefs 233 -#define OBJ_id_smime_aa_ets_RevocationRefs OBJ_id_smime_aa,22L - -#define SN_id_smime_aa_ets_certValues "id-smime-aa-ets-certValues" -#define NID_id_smime_aa_ets_certValues 234 -#define OBJ_id_smime_aa_ets_certValues OBJ_id_smime_aa,23L - -#define SN_id_smime_aa_ets_revocationValues "id-smime-aa-ets-revocationValues" -#define NID_id_smime_aa_ets_revocationValues 235 -#define OBJ_id_smime_aa_ets_revocationValues OBJ_id_smime_aa,24L - -#define SN_id_smime_aa_ets_escTimeStamp "id-smime-aa-ets-escTimeStamp" -#define NID_id_smime_aa_ets_escTimeStamp 236 -#define OBJ_id_smime_aa_ets_escTimeStamp OBJ_id_smime_aa,25L - -#define SN_id_smime_aa_ets_certCRLTimestamp "id-smime-aa-ets-certCRLTimestamp" -#define NID_id_smime_aa_ets_certCRLTimestamp 237 -#define OBJ_id_smime_aa_ets_certCRLTimestamp OBJ_id_smime_aa,26L - -#define SN_id_smime_aa_ets_archiveTimeStamp "id-smime-aa-ets-archiveTimeStamp" -#define NID_id_smime_aa_ets_archiveTimeStamp 238 -#define OBJ_id_smime_aa_ets_archiveTimeStamp OBJ_id_smime_aa,27L - -#define SN_id_smime_aa_signatureType "id-smime-aa-signatureType" -#define NID_id_smime_aa_signatureType 239 -#define OBJ_id_smime_aa_signatureType OBJ_id_smime_aa,28L - -#define SN_id_smime_aa_dvcs_dvc "id-smime-aa-dvcs-dvc" -#define NID_id_smime_aa_dvcs_dvc 240 -#define OBJ_id_smime_aa_dvcs_dvc OBJ_id_smime_aa,29L - -#define SN_id_aa_ets_attrCertificateRefs "id-aa-ets-attrCertificateRefs" -#define NID_id_aa_ets_attrCertificateRefs 1261 -#define OBJ_id_aa_ets_attrCertificateRefs OBJ_id_smime_aa,44L - -#define SN_id_aa_ets_attrRevocationRefs "id-aa-ets-attrRevocationRefs" -#define NID_id_aa_ets_attrRevocationRefs 1262 -#define OBJ_id_aa_ets_attrRevocationRefs OBJ_id_smime_aa,45L - -#define SN_id_smime_aa_signingCertificateV2 "id-smime-aa-signingCertificateV2" -#define NID_id_smime_aa_signingCertificateV2 1086 -#define OBJ_id_smime_aa_signingCertificateV2 OBJ_id_smime_aa,47L - -#define SN_id_aa_ets_archiveTimestampV2 "id-aa-ets-archiveTimestampV2" -#define NID_id_aa_ets_archiveTimestampV2 1280 -#define OBJ_id_aa_ets_archiveTimestampV2 OBJ_id_smime_aa,48L - -#define SN_id_smime_alg_ESDHwith3DES "id-smime-alg-ESDHwith3DES" -#define NID_id_smime_alg_ESDHwith3DES 241 -#define OBJ_id_smime_alg_ESDHwith3DES OBJ_id_smime_alg,1L - -#define SN_id_smime_alg_ESDHwithRC2 "id-smime-alg-ESDHwithRC2" -#define NID_id_smime_alg_ESDHwithRC2 242 -#define OBJ_id_smime_alg_ESDHwithRC2 OBJ_id_smime_alg,2L - -#define SN_id_smime_alg_3DESwrap "id-smime-alg-3DESwrap" -#define NID_id_smime_alg_3DESwrap 243 -#define OBJ_id_smime_alg_3DESwrap OBJ_id_smime_alg,3L - -#define SN_id_smime_alg_RC2wrap "id-smime-alg-RC2wrap" -#define NID_id_smime_alg_RC2wrap 244 -#define OBJ_id_smime_alg_RC2wrap OBJ_id_smime_alg,4L - -#define SN_id_smime_alg_ESDH "id-smime-alg-ESDH" -#define NID_id_smime_alg_ESDH 245 -#define OBJ_id_smime_alg_ESDH OBJ_id_smime_alg,5L - -#define SN_id_smime_alg_CMS3DESwrap "id-smime-alg-CMS3DESwrap" -#define NID_id_smime_alg_CMS3DESwrap 246 -#define OBJ_id_smime_alg_CMS3DESwrap OBJ_id_smime_alg,6L - -#define SN_id_smime_alg_CMSRC2wrap "id-smime-alg-CMSRC2wrap" -#define NID_id_smime_alg_CMSRC2wrap 247 -#define OBJ_id_smime_alg_CMSRC2wrap OBJ_id_smime_alg,7L - -#define SN_id_alg_PWRI_KEK "id-alg-PWRI-KEK" -#define NID_id_alg_PWRI_KEK 893 -#define OBJ_id_alg_PWRI_KEK OBJ_id_smime_alg,9L - -#define SN_HKDF_SHA256 "id-alg-hkdf-with-sha256" -#define LN_HKDF_SHA256 "HKDF-SHA256" -#define NID_HKDF_SHA256 1496 -#define OBJ_HKDF_SHA256 OBJ_id_smime_alg,28L - -#define SN_HKDF_SHA384 "id-alg-hkdf-with-sha384" -#define LN_HKDF_SHA384 "HKDF-SHA384" -#define NID_HKDF_SHA384 1497 -#define OBJ_HKDF_SHA384 OBJ_id_smime_alg,29L - -#define SN_HKDF_SHA512 "id-alg-hkdf-with-sha512" -#define LN_HKDF_SHA512 "HKDF-SHA512" -#define NID_HKDF_SHA512 1498 -#define OBJ_HKDF_SHA512 OBJ_id_smime_alg,30L - -#define SN_id_smime_cd_ldap "id-smime-cd-ldap" -#define NID_id_smime_cd_ldap 248 -#define OBJ_id_smime_cd_ldap OBJ_id_smime_cd,1L - -#define SN_id_smime_spq_ets_sqt_uri "id-smime-spq-ets-sqt-uri" -#define NID_id_smime_spq_ets_sqt_uri 249 -#define OBJ_id_smime_spq_ets_sqt_uri OBJ_id_smime_spq,1L - -#define SN_id_smime_spq_ets_sqt_unotice "id-smime-spq-ets-sqt-unotice" -#define NID_id_smime_spq_ets_sqt_unotice 250 -#define OBJ_id_smime_spq_ets_sqt_unotice OBJ_id_smime_spq,2L - -#define SN_id_smime_cti_ets_proofOfOrigin "id-smime-cti-ets-proofOfOrigin" -#define NID_id_smime_cti_ets_proofOfOrigin 251 -#define OBJ_id_smime_cti_ets_proofOfOrigin OBJ_id_smime_cti,1L - -#define SN_id_smime_cti_ets_proofOfReceipt "id-smime-cti-ets-proofOfReceipt" -#define NID_id_smime_cti_ets_proofOfReceipt 252 -#define OBJ_id_smime_cti_ets_proofOfReceipt OBJ_id_smime_cti,2L - -#define SN_id_smime_cti_ets_proofOfDelivery "id-smime-cti-ets-proofOfDelivery" -#define NID_id_smime_cti_ets_proofOfDelivery 253 -#define OBJ_id_smime_cti_ets_proofOfDelivery OBJ_id_smime_cti,3L - -#define SN_id_smime_cti_ets_proofOfSender "id-smime-cti-ets-proofOfSender" -#define NID_id_smime_cti_ets_proofOfSender 254 -#define OBJ_id_smime_cti_ets_proofOfSender OBJ_id_smime_cti,4L - -#define SN_id_smime_cti_ets_proofOfApproval "id-smime-cti-ets-proofOfApproval" -#define NID_id_smime_cti_ets_proofOfApproval 255 -#define OBJ_id_smime_cti_ets_proofOfApproval OBJ_id_smime_cti,5L - -#define SN_id_smime_cti_ets_proofOfCreation "id-smime-cti-ets-proofOfCreation" -#define NID_id_smime_cti_ets_proofOfCreation 256 -#define OBJ_id_smime_cti_ets_proofOfCreation OBJ_id_smime_cti,6L - -#define SN_id_smime_ori_kem "id-smime-ori-kem" -#define NID_id_smime_ori_kem 1500 -#define OBJ_id_smime_ori_kem OBJ_id_smime_ori,3L - -#define LN_friendlyName "friendlyName" -#define NID_friendlyName 156 -#define OBJ_friendlyName OBJ_pkcs9,20L - -#define LN_localKeyID "localKeyID" -#define NID_localKeyID 157 -#define OBJ_localKeyID OBJ_pkcs9,21L - -#define OBJ_ms_corp 1L,3L,6L,1L,4L,1L,311L - -#define SN_ms_csp_name "CSPName" -#define LN_ms_csp_name "Microsoft CSP Name" -#define NID_ms_csp_name 417 -#define OBJ_ms_csp_name OBJ_ms_corp,17L,1L - -#define SN_LocalKeySet "LocalKeySet" -#define LN_LocalKeySet "Microsoft Local Key set" -#define NID_LocalKeySet 856 -#define OBJ_LocalKeySet OBJ_ms_corp,17L,2L - -#define OBJ_certTypes OBJ_pkcs9,22L - -#define LN_x509Certificate "x509Certificate" -#define NID_x509Certificate 158 -#define OBJ_x509Certificate OBJ_certTypes,1L - -#define LN_sdsiCertificate "sdsiCertificate" -#define NID_sdsiCertificate 159 -#define OBJ_sdsiCertificate OBJ_certTypes,2L - -#define OBJ_crlTypes OBJ_pkcs9,23L - -#define LN_x509Crl "x509Crl" -#define NID_x509Crl 160 -#define OBJ_x509Crl OBJ_crlTypes,1L - -#define SN_id_aa_CMSAlgorithmProtection "id-aa-CMSAlgorithmProtection" -#define NID_id_aa_CMSAlgorithmProtection 1263 -#define OBJ_id_aa_CMSAlgorithmProtection OBJ_pkcs9,52L - -#define OBJ_pkcs12 OBJ_pkcs,12L - -#define OBJ_pkcs12_pbeids OBJ_pkcs12,1L - -#define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128" -#define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" -#define NID_pbe_WithSHA1And128BitRC4 144 -#define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids,1L - -#define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40" -#define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" -#define NID_pbe_WithSHA1And40BitRC4 145 -#define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids,2L - -#define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES" -#define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" -#define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 -#define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids,3L - -#define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES" -#define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" -#define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 -#define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids,4L - -#define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128" -#define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" -#define NID_pbe_WithSHA1And128BitRC2_CBC 148 -#define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids,5L - -#define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40" -#define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" -#define NID_pbe_WithSHA1And40BitRC2_CBC 149 -#define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids,6L - -#define OBJ_pkcs12_Version1 OBJ_pkcs12,10L - -#define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1,1L - -#define LN_keyBag "keyBag" -#define NID_keyBag 150 -#define OBJ_keyBag OBJ_pkcs12_BagIds,1L - -#define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag" -#define NID_pkcs8ShroudedKeyBag 151 -#define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds,2L - -#define LN_certBag "certBag" -#define NID_certBag 152 -#define OBJ_certBag OBJ_pkcs12_BagIds,3L - -#define LN_crlBag "crlBag" -#define NID_crlBag 153 -#define OBJ_crlBag OBJ_pkcs12_BagIds,4L - -#define LN_secretBag "secretBag" -#define NID_secretBag 154 -#define OBJ_secretBag OBJ_pkcs12_BagIds,5L - -#define LN_safeContentsBag "safeContentsBag" -#define NID_safeContentsBag 155 -#define OBJ_safeContentsBag OBJ_pkcs12_BagIds,6L - -#define SN_md2 "MD2" -#define LN_md2 "md2" -#define NID_md2 3 -#define OBJ_md2 OBJ_rsadsi,2L,2L - -#define SN_md4 "MD4" -#define LN_md4 "md4" -#define NID_md4 257 -#define OBJ_md4 OBJ_rsadsi,2L,4L - -#define SN_md5 "MD5" -#define LN_md5 "md5" -#define NID_md5 4 -#define OBJ_md5 OBJ_rsadsi,2L,5L - -#define SN_md5_sha1 "MD5-SHA1" -#define LN_md5_sha1 "md5-sha1" -#define NID_md5_sha1 114 - -#define LN_hmacWithMD5 "hmacWithMD5" -#define NID_hmacWithMD5 797 -#define OBJ_hmacWithMD5 OBJ_rsadsi,2L,6L - -#define LN_hmacWithSHA1 "hmacWithSHA1" -#define NID_hmacWithSHA1 163 -#define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L - -#define SN_sm2 "SM2" -#define LN_sm2 "sm2" -#define NID_sm2 1172 -#define OBJ_sm2 OBJ_sm_scheme,301L - -#define SN_sm3 "SM3" -#define LN_sm3 "sm3" -#define NID_sm3 1143 -#define OBJ_sm3 OBJ_sm_scheme,401L - -#define SN_sm3WithRSAEncryption "RSA-SM3" -#define LN_sm3WithRSAEncryption "sm3WithRSAEncryption" -#define NID_sm3WithRSAEncryption 1144 -#define OBJ_sm3WithRSAEncryption OBJ_sm_scheme,504L - -#define SN_SM2_with_SM3 "SM2-SM3" -#define LN_SM2_with_SM3 "SM2-with-SM3" -#define NID_SM2_with_SM3 1204 -#define OBJ_SM2_with_SM3 OBJ_sm_scheme,501L - -#define LN_hmacWithSM3 "hmacWithSM3" -#define NID_hmacWithSM3 1281 -#define OBJ_hmacWithSM3 OBJ_sm3,3L,1L - -#define LN_hmacWithSHA224 "hmacWithSHA224" -#define NID_hmacWithSHA224 798 -#define OBJ_hmacWithSHA224 OBJ_rsadsi,2L,8L - -#define LN_hmacWithSHA256 "hmacWithSHA256" -#define NID_hmacWithSHA256 799 -#define OBJ_hmacWithSHA256 OBJ_rsadsi,2L,9L - -#define LN_hmacWithSHA384 "hmacWithSHA384" -#define NID_hmacWithSHA384 800 -#define OBJ_hmacWithSHA384 OBJ_rsadsi,2L,10L - -#define LN_hmacWithSHA512 "hmacWithSHA512" -#define NID_hmacWithSHA512 801 -#define OBJ_hmacWithSHA512 OBJ_rsadsi,2L,11L - -#define LN_hmacWithSHA512_224 "hmacWithSHA512-224" -#define NID_hmacWithSHA512_224 1193 -#define OBJ_hmacWithSHA512_224 OBJ_rsadsi,2L,12L - -#define LN_hmacWithSHA512_256 "hmacWithSHA512-256" -#define NID_hmacWithSHA512_256 1194 -#define OBJ_hmacWithSHA512_256 OBJ_rsadsi,2L,13L - -#define SN_rc2_cbc "RC2-CBC" -#define LN_rc2_cbc "rc2-cbc" -#define NID_rc2_cbc 37 -#define OBJ_rc2_cbc OBJ_rsadsi,3L,2L - -#define SN_rc2_ecb "RC2-ECB" -#define LN_rc2_ecb "rc2-ecb" -#define NID_rc2_ecb 38 - -#define SN_rc2_cfb64 "RC2-CFB" -#define LN_rc2_cfb64 "rc2-cfb" -#define NID_rc2_cfb64 39 - -#define SN_rc2_ofb64 "RC2-OFB" -#define LN_rc2_ofb64 "rc2-ofb" -#define NID_rc2_ofb64 40 - -#define SN_rc2_40_cbc "RC2-40-CBC" -#define LN_rc2_40_cbc "rc2-40-cbc" -#define NID_rc2_40_cbc 98 - -#define SN_rc2_64_cbc "RC2-64-CBC" -#define LN_rc2_64_cbc "rc2-64-cbc" -#define NID_rc2_64_cbc 166 - -#define SN_rc4 "RC4" -#define LN_rc4 "rc4" -#define NID_rc4 5 -#define OBJ_rc4 OBJ_rsadsi,3L,4L - -#define SN_rc4_40 "RC4-40" -#define LN_rc4_40 "rc4-40" -#define NID_rc4_40 97 - -#define SN_des_ede3_cbc "DES-EDE3-CBC" -#define LN_des_ede3_cbc "des-ede3-cbc" -#define NID_des_ede3_cbc 44 -#define OBJ_des_ede3_cbc OBJ_rsadsi,3L,7L - -#define SN_rc5_cbc "RC5-CBC" -#define LN_rc5_cbc "rc5-cbc" -#define NID_rc5_cbc 120 -#define OBJ_rc5_cbc OBJ_rsadsi,3L,8L - -#define SN_rc5_ecb "RC5-ECB" -#define LN_rc5_ecb "rc5-ecb" -#define NID_rc5_ecb 121 - -#define SN_rc5_cfb64 "RC5-CFB" -#define LN_rc5_cfb64 "rc5-cfb" -#define NID_rc5_cfb64 122 - -#define SN_rc5_ofb64 "RC5-OFB" -#define LN_rc5_ofb64 "rc5-ofb" -#define NID_rc5_ofb64 123 - -#define SN_ms_ext_req "msExtReq" -#define LN_ms_ext_req "Microsoft Extension Request" -#define NID_ms_ext_req 171 -#define OBJ_ms_ext_req OBJ_ms_corp,2L,1L,14L - -#define SN_ms_code_ind "msCodeInd" -#define LN_ms_code_ind "Microsoft Individual Code Signing" -#define NID_ms_code_ind 134 -#define OBJ_ms_code_ind OBJ_ms_corp,2L,1L,21L - -#define SN_ms_code_com "msCodeCom" -#define LN_ms_code_com "Microsoft Commercial Code Signing" -#define NID_ms_code_com 135 -#define OBJ_ms_code_com OBJ_ms_corp,2L,1L,22L - -#define SN_ms_ctl_sign "msCTLSign" -#define LN_ms_ctl_sign "Microsoft Trust List Signing" -#define NID_ms_ctl_sign 136 -#define OBJ_ms_ctl_sign OBJ_ms_corp,10L,3L,1L - -#define SN_ms_sgc "msSGC" -#define LN_ms_sgc "Microsoft Server Gated Crypto" -#define NID_ms_sgc 137 -#define OBJ_ms_sgc OBJ_ms_corp,10L,3L,3L - -#define SN_ms_efs "msEFS" -#define LN_ms_efs "Microsoft Encrypted File System" -#define NID_ms_efs 138 -#define OBJ_ms_efs OBJ_ms_corp,10L,3L,4L - -#define SN_ms_smartcard_login "msSmartcardLogin" -#define LN_ms_smartcard_login "Microsoft Smartcard Login" -#define NID_ms_smartcard_login 648 -#define OBJ_ms_smartcard_login OBJ_ms_corp,20L,2L,2L - -#define SN_ms_upn "msUPN" -#define LN_ms_upn "Microsoft User Principal Name" -#define NID_ms_upn 649 -#define OBJ_ms_upn OBJ_ms_corp,20L,2L,3L - -#define SN_ms_ntds_sec_ext "ms-ntds-sec-ext" -#define LN_ms_ntds_sec_ext "Microsoft NTDS CA Extension" -#define NID_ms_ntds_sec_ext 1292 -#define OBJ_ms_ntds_sec_ext OBJ_ms_corp,25L,2L - -#define SN_ms_ntds_obj_sid "ms-ntds-obj-sid" -#define LN_ms_ntds_obj_sid "Microsoft NTDS AD objectSid" -#define NID_ms_ntds_obj_sid 1291 -#define OBJ_ms_ntds_obj_sid OBJ_ms_corp,25L,2L,1L - -#define SN_ms_cert_templ "ms-cert-templ" -#define LN_ms_cert_templ "Microsoft certificate template" -#define NID_ms_cert_templ 1293 -#define OBJ_ms_cert_templ OBJ_ms_corp,21L,7L - -#define SN_ms_app_policies "ms-app-policies" -#define LN_ms_app_policies "Microsoft Application Policies Extension" -#define NID_ms_app_policies 1294 -#define OBJ_ms_app_policies OBJ_ms_corp,21L,10L - -#define SN_idea_cbc "IDEA-CBC" -#define LN_idea_cbc "idea-cbc" -#define NID_idea_cbc 34 -#define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L - -#define SN_idea_ecb "IDEA-ECB" -#define LN_idea_ecb "idea-ecb" -#define NID_idea_ecb 36 - -#define SN_idea_cfb64 "IDEA-CFB" -#define LN_idea_cfb64 "idea-cfb" -#define NID_idea_cfb64 35 - -#define SN_idea_ofb64 "IDEA-OFB" -#define LN_idea_ofb64 "idea-ofb" -#define NID_idea_ofb64 46 - -#define SN_bf_cbc "BF-CBC" -#define LN_bf_cbc "bf-cbc" -#define NID_bf_cbc 91 -#define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L - -#define SN_bf_ecb "BF-ECB" -#define LN_bf_ecb "bf-ecb" -#define NID_bf_ecb 92 - -#define SN_bf_cfb64 "BF-CFB" -#define LN_bf_cfb64 "bf-cfb" -#define NID_bf_cfb64 93 - -#define SN_bf_ofb64 "BF-OFB" -#define LN_bf_ofb64 "bf-ofb" -#define NID_bf_ofb64 94 - -#define SN_id_pkix "PKIX" -#define NID_id_pkix 127 -#define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L - -#define SN_id_pkix_mod "id-pkix-mod" -#define NID_id_pkix_mod 258 -#define OBJ_id_pkix_mod OBJ_id_pkix,0L - -#define SN_id_pe "id-pe" -#define NID_id_pe 175 -#define OBJ_id_pe OBJ_id_pkix,1L - -#define SN_id_qt "id-qt" -#define NID_id_qt 259 -#define OBJ_id_qt OBJ_id_pkix,2L - -#define SN_id_kp "id-kp" -#define NID_id_kp 128 -#define OBJ_id_kp OBJ_id_pkix,3L - -#define SN_id_it "id-it" -#define NID_id_it 260 -#define OBJ_id_it OBJ_id_pkix,4L - -#define SN_id_pkip "id-pkip" -#define NID_id_pkip 261 -#define OBJ_id_pkip OBJ_id_pkix,5L - -#define SN_id_alg "id-alg" -#define NID_id_alg 262 -#define OBJ_id_alg OBJ_id_pkix,6L - -#define SN_id_cmc "id-cmc" -#define NID_id_cmc 263 -#define OBJ_id_cmc OBJ_id_pkix,7L - -#define SN_id_on "id-on" -#define NID_id_on 264 -#define OBJ_id_on OBJ_id_pkix,8L - -#define SN_id_pda "id-pda" -#define NID_id_pda 265 -#define OBJ_id_pda OBJ_id_pkix,9L - -#define SN_id_aca "id-aca" -#define NID_id_aca 266 -#define OBJ_id_aca OBJ_id_pkix,10L - -#define SN_id_qcs "id-qcs" -#define NID_id_qcs 267 -#define OBJ_id_qcs OBJ_id_pkix,11L - -#define SN_id_cp "id-cp" -#define NID_id_cp 1238 -#define OBJ_id_cp OBJ_id_pkix,14L - -#define SN_id_cct "id-cct" -#define NID_id_cct 268 -#define OBJ_id_cct OBJ_id_pkix,12L - -#define SN_id_ppl "id-ppl" -#define NID_id_ppl 662 -#define OBJ_id_ppl OBJ_id_pkix,21L - -#define SN_id_ad "id-ad" -#define NID_id_ad 176 -#define OBJ_id_ad OBJ_id_pkix,48L - -#define SN_id_pkix1_explicit_88 "id-pkix1-explicit-88" -#define NID_id_pkix1_explicit_88 269 -#define OBJ_id_pkix1_explicit_88 OBJ_id_pkix_mod,1L - -#define SN_id_pkix1_implicit_88 "id-pkix1-implicit-88" -#define NID_id_pkix1_implicit_88 270 -#define OBJ_id_pkix1_implicit_88 OBJ_id_pkix_mod,2L - -#define SN_id_pkix1_explicit_93 "id-pkix1-explicit-93" -#define NID_id_pkix1_explicit_93 271 -#define OBJ_id_pkix1_explicit_93 OBJ_id_pkix_mod,3L - -#define SN_id_pkix1_implicit_93 "id-pkix1-implicit-93" -#define NID_id_pkix1_implicit_93 272 -#define OBJ_id_pkix1_implicit_93 OBJ_id_pkix_mod,4L - -#define SN_id_mod_crmf "id-mod-crmf" -#define NID_id_mod_crmf 273 -#define OBJ_id_mod_crmf OBJ_id_pkix_mod,5L - -#define SN_id_mod_cmc "id-mod-cmc" -#define NID_id_mod_cmc 274 -#define OBJ_id_mod_cmc OBJ_id_pkix_mod,6L - -#define SN_id_mod_kea_profile_88 "id-mod-kea-profile-88" -#define NID_id_mod_kea_profile_88 275 -#define OBJ_id_mod_kea_profile_88 OBJ_id_pkix_mod,7L - -#define SN_id_mod_kea_profile_93 "id-mod-kea-profile-93" -#define NID_id_mod_kea_profile_93 276 -#define OBJ_id_mod_kea_profile_93 OBJ_id_pkix_mod,8L - -#define SN_id_mod_cmp "id-mod-cmp" -#define NID_id_mod_cmp 277 -#define OBJ_id_mod_cmp OBJ_id_pkix_mod,9L - -#define SN_id_mod_qualified_cert_88 "id-mod-qualified-cert-88" -#define NID_id_mod_qualified_cert_88 278 -#define OBJ_id_mod_qualified_cert_88 OBJ_id_pkix_mod,10L - -#define SN_id_mod_qualified_cert_93 "id-mod-qualified-cert-93" -#define NID_id_mod_qualified_cert_93 279 -#define OBJ_id_mod_qualified_cert_93 OBJ_id_pkix_mod,11L - -#define SN_id_mod_attribute_cert "id-mod-attribute-cert" -#define NID_id_mod_attribute_cert 280 -#define OBJ_id_mod_attribute_cert OBJ_id_pkix_mod,12L - -#define SN_id_mod_timestamp_protocol "id-mod-timestamp-protocol" -#define NID_id_mod_timestamp_protocol 281 -#define OBJ_id_mod_timestamp_protocol OBJ_id_pkix_mod,13L - -#define SN_id_mod_ocsp "id-mod-ocsp" -#define NID_id_mod_ocsp 282 -#define OBJ_id_mod_ocsp OBJ_id_pkix_mod,14L - -#define SN_id_mod_dvcs "id-mod-dvcs" -#define NID_id_mod_dvcs 283 -#define OBJ_id_mod_dvcs OBJ_id_pkix_mod,15L - -#define SN_id_mod_cmp2000 "id-mod-cmp2000" -#define NID_id_mod_cmp2000 284 -#define OBJ_id_mod_cmp2000 OBJ_id_pkix_mod,16L - -#define SN_id_mod_cmp2000_02 "id-mod-cmp2000-02" -#define NID_id_mod_cmp2000_02 1251 -#define OBJ_id_mod_cmp2000_02 OBJ_id_pkix_mod,50L - -#define SN_id_mod_cmp2021_88 "id-mod-cmp2021-88" -#define NID_id_mod_cmp2021_88 1252 -#define OBJ_id_mod_cmp2021_88 OBJ_id_pkix_mod,99L - -#define SN_id_mod_cmp2021_02 "id-mod-cmp2021-02" -#define NID_id_mod_cmp2021_02 1253 -#define OBJ_id_mod_cmp2021_02 OBJ_id_pkix_mod,100L - -#define SN_info_access "authorityInfoAccess" -#define LN_info_access "Authority Information Access" -#define NID_info_access 177 -#define OBJ_info_access OBJ_id_pe,1L - -#define SN_biometricInfo "biometricInfo" -#define LN_biometricInfo "Biometric Info" -#define NID_biometricInfo 285 -#define OBJ_biometricInfo OBJ_id_pe,2L - -#define SN_qcStatements "qcStatements" -#define NID_qcStatements 286 -#define OBJ_qcStatements OBJ_id_pe,3L - -#define SN_ac_auditIdentity "ac-auditIdentity" -#define LN_ac_auditIdentity "X509v3 Audit Identity" -#define NID_ac_auditIdentity 287 -#define OBJ_ac_auditIdentity OBJ_id_pe,4L - -#define NID_ac_auditEntity 1323 -#define OBJ_ac_auditEntity OBJ_ac_auditIdentity - -#define SN_ac_targeting "ac-targeting" -#define NID_ac_targeting 288 -#define OBJ_ac_targeting OBJ_id_pe,5L - -#define SN_aaControls "aaControls" -#define NID_aaControls 289 -#define OBJ_aaControls OBJ_id_pe,6L - -#define SN_sbgp_ipAddrBlock "sbgp-ipAddrBlock" -#define NID_sbgp_ipAddrBlock 290 -#define OBJ_sbgp_ipAddrBlock OBJ_id_pe,7L - -#define SN_sbgp_autonomousSysNum "sbgp-autonomousSysNum" -#define NID_sbgp_autonomousSysNum 291 -#define OBJ_sbgp_autonomousSysNum OBJ_id_pe,8L - -#define SN_sbgp_routerIdentifier "sbgp-routerIdentifier" -#define NID_sbgp_routerIdentifier 292 -#define OBJ_sbgp_routerIdentifier OBJ_id_pe,9L - -#define SN_ac_proxying "ac-proxying" -#define NID_ac_proxying 397 -#define OBJ_ac_proxying OBJ_id_pe,10L - -#define SN_sinfo_access "subjectInfoAccess" -#define LN_sinfo_access "Subject Information Access" -#define NID_sinfo_access 398 -#define OBJ_sinfo_access OBJ_id_pe,11L - -#define SN_proxyCertInfo "proxyCertInfo" -#define LN_proxyCertInfo "Proxy Certificate Information" -#define NID_proxyCertInfo 663 -#define OBJ_proxyCertInfo OBJ_id_pe,14L - -#define SN_tlsfeature "tlsfeature" -#define LN_tlsfeature "TLS Feature" -#define NID_tlsfeature 1020 -#define OBJ_tlsfeature OBJ_id_pe,24L - -#define SN_sbgp_ipAddrBlockv2 "sbgp-ipAddrBlockv2" -#define NID_sbgp_ipAddrBlockv2 1239 -#define OBJ_sbgp_ipAddrBlockv2 OBJ_id_pe,28L - -#define SN_sbgp_autonomousSysNumv2 "sbgp-autonomousSysNumv2" -#define NID_sbgp_autonomousSysNumv2 1240 -#define OBJ_sbgp_autonomousSysNumv2 OBJ_id_pe,29L - -#define SN_id_qt_cps "id-qt-cps" -#define LN_id_qt_cps "Policy Qualifier CPS" -#define NID_id_qt_cps 164 -#define OBJ_id_qt_cps OBJ_id_qt,1L - -#define SN_id_qt_unotice "id-qt-unotice" -#define LN_id_qt_unotice "Policy Qualifier User Notice" -#define NID_id_qt_unotice 165 -#define OBJ_id_qt_unotice OBJ_id_qt,2L - -#define SN_textNotice "textNotice" -#define NID_textNotice 293 -#define OBJ_textNotice OBJ_id_qt,3L - -#define SN_server_auth "serverAuth" -#define LN_server_auth "TLS Web Server Authentication" -#define NID_server_auth 129 -#define OBJ_server_auth OBJ_id_kp,1L - -#define SN_client_auth "clientAuth" -#define LN_client_auth "TLS Web Client Authentication" -#define NID_client_auth 130 -#define OBJ_client_auth OBJ_id_kp,2L - -#define SN_code_sign "codeSigning" -#define LN_code_sign "Code Signing" -#define NID_code_sign 131 -#define OBJ_code_sign OBJ_id_kp,3L - -#define SN_email_protect "emailProtection" -#define LN_email_protect "E-mail Protection" -#define NID_email_protect 132 -#define OBJ_email_protect OBJ_id_kp,4L - -#define SN_ipsecEndSystem "ipsecEndSystem" -#define LN_ipsecEndSystem "IPSec End System" -#define NID_ipsecEndSystem 294 -#define OBJ_ipsecEndSystem OBJ_id_kp,5L - -#define SN_ipsecTunnel "ipsecTunnel" -#define LN_ipsecTunnel "IPSec Tunnel" -#define NID_ipsecTunnel 295 -#define OBJ_ipsecTunnel OBJ_id_kp,6L - -#define SN_ipsecUser "ipsecUser" -#define LN_ipsecUser "IPSec User" -#define NID_ipsecUser 296 -#define OBJ_ipsecUser OBJ_id_kp,7L - -#define SN_time_stamp "timeStamping" -#define LN_time_stamp "Time Stamping" -#define NID_time_stamp 133 -#define OBJ_time_stamp OBJ_id_kp,8L - -#define SN_OCSP_sign "OCSPSigning" -#define LN_OCSP_sign "OCSP Signing" -#define NID_OCSP_sign 180 -#define OBJ_OCSP_sign OBJ_id_kp,9L - -#define SN_dvcs "DVCS" -#define LN_dvcs "dvcs" -#define NID_dvcs 297 -#define OBJ_dvcs OBJ_id_kp,10L - -#define SN_ipsec_IKE "ipsecIKE" -#define LN_ipsec_IKE "ipsec Internet Key Exchange" -#define NID_ipsec_IKE 1022 -#define OBJ_ipsec_IKE OBJ_id_kp,17L - -#define SN_capwapAC "capwapAC" -#define LN_capwapAC "Ctrl/provision WAP Access" -#define NID_capwapAC 1023 -#define OBJ_capwapAC OBJ_id_kp,18L - -#define SN_capwapWTP "capwapWTP" -#define LN_capwapWTP "Ctrl/Provision WAP Termination" -#define NID_capwapWTP 1024 -#define OBJ_capwapWTP OBJ_id_kp,19L - -#define SN_sshClient "secureShellClient" -#define LN_sshClient "SSH Client" -#define NID_sshClient 1025 -#define OBJ_sshClient OBJ_id_kp,21L - -#define SN_sshServer "secureShellServer" -#define LN_sshServer "SSH Server" -#define NID_sshServer 1026 -#define OBJ_sshServer OBJ_id_kp,22L - -#define SN_sendRouter "sendRouter" -#define LN_sendRouter "Send Router" -#define NID_sendRouter 1027 -#define OBJ_sendRouter OBJ_id_kp,23L - -#define SN_sendProxiedRouter "sendProxiedRouter" -#define LN_sendProxiedRouter "Send Proxied Router" -#define NID_sendProxiedRouter 1028 -#define OBJ_sendProxiedRouter OBJ_id_kp,24L - -#define SN_sendOwner "sendOwner" -#define LN_sendOwner "Send Owner" -#define NID_sendOwner 1029 -#define OBJ_sendOwner OBJ_id_kp,25L - -#define SN_sendProxiedOwner "sendProxiedOwner" -#define LN_sendProxiedOwner "Send Proxied Owner" -#define NID_sendProxiedOwner 1030 -#define OBJ_sendProxiedOwner OBJ_id_kp,26L - -#define SN_cmcCA "cmcCA" -#define LN_cmcCA "CMC Certificate Authority" -#define NID_cmcCA 1131 -#define OBJ_cmcCA OBJ_id_kp,27L - -#define SN_cmcRA "cmcRA" -#define LN_cmcRA "CMC Registration Authority" -#define NID_cmcRA 1132 -#define OBJ_cmcRA OBJ_id_kp,28L - -#define SN_cmcArchive "cmcArchive" -#define LN_cmcArchive "CMC Archive Server" -#define NID_cmcArchive 1219 -#define OBJ_cmcArchive OBJ_id_kp,29L - -#define SN_id_kp_bgpsec_router "id-kp-bgpsec-router" -#define LN_id_kp_bgpsec_router "BGPsec Router" -#define NID_id_kp_bgpsec_router 1220 -#define OBJ_id_kp_bgpsec_router OBJ_id_kp,30L - -#define SN_id_kp_BrandIndicatorforMessageIdentification "id-kp-BrandIndicatorforMessageIdentification" -#define LN_id_kp_BrandIndicatorforMessageIdentification "Brand Indicator for Message Identification" -#define NID_id_kp_BrandIndicatorforMessageIdentification 1221 -#define OBJ_id_kp_BrandIndicatorforMessageIdentification OBJ_id_kp,31L - -#define SN_cmKGA "cmKGA" -#define LN_cmKGA "Certificate Management Key Generation Authority" -#define NID_cmKGA 1222 -#define OBJ_cmKGA OBJ_id_kp,32L - -#define SN_id_it_caProtEncCert "id-it-caProtEncCert" -#define NID_id_it_caProtEncCert 298 -#define OBJ_id_it_caProtEncCert OBJ_id_it,1L - -#define SN_id_it_signKeyPairTypes "id-it-signKeyPairTypes" -#define NID_id_it_signKeyPairTypes 299 -#define OBJ_id_it_signKeyPairTypes OBJ_id_it,2L - -#define SN_id_it_encKeyPairTypes "id-it-encKeyPairTypes" -#define NID_id_it_encKeyPairTypes 300 -#define OBJ_id_it_encKeyPairTypes OBJ_id_it,3L - -#define SN_id_it_preferredSymmAlg "id-it-preferredSymmAlg" -#define NID_id_it_preferredSymmAlg 301 -#define OBJ_id_it_preferredSymmAlg OBJ_id_it,4L - -#define SN_id_it_caKeyUpdateInfo "id-it-caKeyUpdateInfo" -#define NID_id_it_caKeyUpdateInfo 302 -#define OBJ_id_it_caKeyUpdateInfo OBJ_id_it,5L - -#define SN_id_it_currentCRL "id-it-currentCRL" -#define NID_id_it_currentCRL 303 -#define OBJ_id_it_currentCRL OBJ_id_it,6L - -#define SN_id_it_unsupportedOIDs "id-it-unsupportedOIDs" -#define NID_id_it_unsupportedOIDs 304 -#define OBJ_id_it_unsupportedOIDs OBJ_id_it,7L - -#define SN_id_it_subscriptionRequest "id-it-subscriptionRequest" -#define NID_id_it_subscriptionRequest 305 -#define OBJ_id_it_subscriptionRequest OBJ_id_it,8L - -#define SN_id_it_subscriptionResponse "id-it-subscriptionResponse" -#define NID_id_it_subscriptionResponse 306 -#define OBJ_id_it_subscriptionResponse OBJ_id_it,9L - -#define SN_id_it_keyPairParamReq "id-it-keyPairParamReq" -#define NID_id_it_keyPairParamReq 307 -#define OBJ_id_it_keyPairParamReq OBJ_id_it,10L - -#define SN_id_it_keyPairParamRep "id-it-keyPairParamRep" -#define NID_id_it_keyPairParamRep 308 -#define OBJ_id_it_keyPairParamRep OBJ_id_it,11L - -#define SN_id_it_revPassphrase "id-it-revPassphrase" -#define NID_id_it_revPassphrase 309 -#define OBJ_id_it_revPassphrase OBJ_id_it,12L - -#define SN_id_it_implicitConfirm "id-it-implicitConfirm" -#define NID_id_it_implicitConfirm 310 -#define OBJ_id_it_implicitConfirm OBJ_id_it,13L - -#define SN_id_it_confirmWaitTime "id-it-confirmWaitTime" -#define NID_id_it_confirmWaitTime 311 -#define OBJ_id_it_confirmWaitTime OBJ_id_it,14L - -#define SN_id_it_origPKIMessage "id-it-origPKIMessage" -#define NID_id_it_origPKIMessage 312 -#define OBJ_id_it_origPKIMessage OBJ_id_it,15L - -#define SN_id_it_suppLangTags "id-it-suppLangTags" -#define NID_id_it_suppLangTags 784 -#define OBJ_id_it_suppLangTags OBJ_id_it,16L - -#define SN_id_it_caCerts "id-it-caCerts" -#define NID_id_it_caCerts 1223 -#define OBJ_id_it_caCerts OBJ_id_it,17L - -#define SN_id_it_rootCaKeyUpdate "id-it-rootCaKeyUpdate" -#define NID_id_it_rootCaKeyUpdate 1224 -#define OBJ_id_it_rootCaKeyUpdate OBJ_id_it,18L - -#define SN_id_it_certReqTemplate "id-it-certReqTemplate" -#define NID_id_it_certReqTemplate 1225 -#define OBJ_id_it_certReqTemplate OBJ_id_it,19L - -#define SN_id_it_rootCaCert "id-it-rootCaCert" -#define NID_id_it_rootCaCert 1254 -#define OBJ_id_it_rootCaCert OBJ_id_it,20L - -#define SN_id_it_certProfile "id-it-certProfile" -#define NID_id_it_certProfile 1255 -#define OBJ_id_it_certProfile OBJ_id_it,21L - -#define SN_id_it_crlStatusList "id-it-crlStatusList" -#define NID_id_it_crlStatusList 1256 -#define OBJ_id_it_crlStatusList OBJ_id_it,22L - -#define SN_id_it_crls "id-it-crls" -#define NID_id_it_crls 1257 -#define OBJ_id_it_crls OBJ_id_it,23L - -#define SN_id_regCtrl "id-regCtrl" -#define NID_id_regCtrl 313 -#define OBJ_id_regCtrl OBJ_id_pkip,1L - -#define SN_id_regInfo "id-regInfo" -#define NID_id_regInfo 314 -#define OBJ_id_regInfo OBJ_id_pkip,2L - -#define SN_id_regCtrl_regToken "id-regCtrl-regToken" -#define NID_id_regCtrl_regToken 315 -#define OBJ_id_regCtrl_regToken OBJ_id_regCtrl,1L - -#define SN_id_regCtrl_authenticator "id-regCtrl-authenticator" -#define NID_id_regCtrl_authenticator 316 -#define OBJ_id_regCtrl_authenticator OBJ_id_regCtrl,2L - -#define SN_id_regCtrl_pkiPublicationInfo "id-regCtrl-pkiPublicationInfo" -#define NID_id_regCtrl_pkiPublicationInfo 317 -#define OBJ_id_regCtrl_pkiPublicationInfo OBJ_id_regCtrl,3L - -#define SN_id_regCtrl_pkiArchiveOptions "id-regCtrl-pkiArchiveOptions" -#define NID_id_regCtrl_pkiArchiveOptions 318 -#define OBJ_id_regCtrl_pkiArchiveOptions OBJ_id_regCtrl,4L - -#define SN_id_regCtrl_oldCertID "id-regCtrl-oldCertID" -#define NID_id_regCtrl_oldCertID 319 -#define OBJ_id_regCtrl_oldCertID OBJ_id_regCtrl,5L - -#define SN_id_regCtrl_protocolEncrKey "id-regCtrl-protocolEncrKey" -#define NID_id_regCtrl_protocolEncrKey 320 -#define OBJ_id_regCtrl_protocolEncrKey OBJ_id_regCtrl,6L - -#define SN_id_regCtrl_altCertTemplate "id-regCtrl-altCertTemplate" -#define NID_id_regCtrl_altCertTemplate 1258 -#define OBJ_id_regCtrl_altCertTemplate OBJ_id_regCtrl,7L - -#define SN_id_regCtrl_algId "id-regCtrl-algId" -#define NID_id_regCtrl_algId 1259 -#define OBJ_id_regCtrl_algId OBJ_id_regCtrl,11L - -#define SN_id_regCtrl_rsaKeyLen "id-regCtrl-rsaKeyLen" -#define NID_id_regCtrl_rsaKeyLen 1260 -#define OBJ_id_regCtrl_rsaKeyLen OBJ_id_regCtrl,12L - -#define SN_id_regInfo_utf8Pairs "id-regInfo-utf8Pairs" -#define NID_id_regInfo_utf8Pairs 321 -#define OBJ_id_regInfo_utf8Pairs OBJ_id_regInfo,1L - -#define SN_id_regInfo_certReq "id-regInfo-certReq" -#define NID_id_regInfo_certReq 322 -#define OBJ_id_regInfo_certReq OBJ_id_regInfo,2L - -#define SN_id_alg_des40 "id-alg-des40" -#define NID_id_alg_des40 323 -#define OBJ_id_alg_des40 OBJ_id_alg,1L - -#define SN_id_alg_noSignature "id-alg-noSignature" -#define NID_id_alg_noSignature 324 -#define OBJ_id_alg_noSignature OBJ_id_alg,2L - -#define SN_id_alg_dh_sig_hmac_sha1 "id-alg-dh-sig-hmac-sha1" -#define NID_id_alg_dh_sig_hmac_sha1 325 -#define OBJ_id_alg_dh_sig_hmac_sha1 OBJ_id_alg,3L - -#define SN_id_alg_dh_pop "id-alg-dh-pop" -#define NID_id_alg_dh_pop 326 -#define OBJ_id_alg_dh_pop OBJ_id_alg,4L - -#define SN_id_cmc_statusInfo "id-cmc-statusInfo" -#define NID_id_cmc_statusInfo 327 -#define OBJ_id_cmc_statusInfo OBJ_id_cmc,1L - -#define SN_id_cmc_identification "id-cmc-identification" -#define NID_id_cmc_identification 328 -#define OBJ_id_cmc_identification OBJ_id_cmc,2L - -#define SN_id_cmc_identityProof "id-cmc-identityProof" -#define NID_id_cmc_identityProof 329 -#define OBJ_id_cmc_identityProof OBJ_id_cmc,3L - -#define SN_id_cmc_dataReturn "id-cmc-dataReturn" -#define NID_id_cmc_dataReturn 330 -#define OBJ_id_cmc_dataReturn OBJ_id_cmc,4L - -#define SN_id_cmc_transactionId "id-cmc-transactionId" -#define NID_id_cmc_transactionId 331 -#define OBJ_id_cmc_transactionId OBJ_id_cmc,5L - -#define SN_id_cmc_senderNonce "id-cmc-senderNonce" -#define NID_id_cmc_senderNonce 332 -#define OBJ_id_cmc_senderNonce OBJ_id_cmc,6L - -#define SN_id_cmc_recipientNonce "id-cmc-recipientNonce" -#define NID_id_cmc_recipientNonce 333 -#define OBJ_id_cmc_recipientNonce OBJ_id_cmc,7L - -#define SN_id_cmc_addExtensions "id-cmc-addExtensions" -#define NID_id_cmc_addExtensions 334 -#define OBJ_id_cmc_addExtensions OBJ_id_cmc,8L - -#define SN_id_cmc_encryptedPOP "id-cmc-encryptedPOP" -#define NID_id_cmc_encryptedPOP 335 -#define OBJ_id_cmc_encryptedPOP OBJ_id_cmc,9L - -#define SN_id_cmc_decryptedPOP "id-cmc-decryptedPOP" -#define NID_id_cmc_decryptedPOP 336 -#define OBJ_id_cmc_decryptedPOP OBJ_id_cmc,10L - -#define SN_id_cmc_lraPOPWitness "id-cmc-lraPOPWitness" -#define NID_id_cmc_lraPOPWitness 337 -#define OBJ_id_cmc_lraPOPWitness OBJ_id_cmc,11L - -#define SN_id_cmc_getCert "id-cmc-getCert" -#define NID_id_cmc_getCert 338 -#define OBJ_id_cmc_getCert OBJ_id_cmc,15L - -#define SN_id_cmc_getCRL "id-cmc-getCRL" -#define NID_id_cmc_getCRL 339 -#define OBJ_id_cmc_getCRL OBJ_id_cmc,16L - -#define SN_id_cmc_revokeRequest "id-cmc-revokeRequest" -#define NID_id_cmc_revokeRequest 340 -#define OBJ_id_cmc_revokeRequest OBJ_id_cmc,17L - -#define SN_id_cmc_regInfo "id-cmc-regInfo" -#define NID_id_cmc_regInfo 341 -#define OBJ_id_cmc_regInfo OBJ_id_cmc,18L - -#define SN_id_cmc_responseInfo "id-cmc-responseInfo" -#define NID_id_cmc_responseInfo 342 -#define OBJ_id_cmc_responseInfo OBJ_id_cmc,19L - -#define SN_id_cmc_queryPending "id-cmc-queryPending" -#define NID_id_cmc_queryPending 343 -#define OBJ_id_cmc_queryPending OBJ_id_cmc,21L - -#define SN_id_cmc_popLinkRandom "id-cmc-popLinkRandom" -#define NID_id_cmc_popLinkRandom 344 -#define OBJ_id_cmc_popLinkRandom OBJ_id_cmc,22L - -#define SN_id_cmc_popLinkWitness "id-cmc-popLinkWitness" -#define NID_id_cmc_popLinkWitness 345 -#define OBJ_id_cmc_popLinkWitness OBJ_id_cmc,23L - -#define SN_id_cmc_confirmCertAcceptance "id-cmc-confirmCertAcceptance" -#define NID_id_cmc_confirmCertAcceptance 346 -#define OBJ_id_cmc_confirmCertAcceptance OBJ_id_cmc,24L - -#define SN_id_on_personalData "id-on-personalData" -#define NID_id_on_personalData 347 -#define OBJ_id_on_personalData OBJ_id_on,1L - -#define SN_id_on_permanentIdentifier "id-on-permanentIdentifier" -#define LN_id_on_permanentIdentifier "Permanent Identifier" -#define NID_id_on_permanentIdentifier 858 -#define OBJ_id_on_permanentIdentifier OBJ_id_on,3L - -#define SN_id_on_hardwareModuleName "id-on-hardwareModuleName" -#define LN_id_on_hardwareModuleName "Hardware Module Name" -#define NID_id_on_hardwareModuleName 1321 -#define OBJ_id_on_hardwareModuleName OBJ_id_on,4L - -#define SN_XmppAddr "id-on-xmppAddr" -#define LN_XmppAddr "XmppAddr" -#define NID_XmppAddr 1209 -#define OBJ_XmppAddr OBJ_id_on,5L - -#define SN_SRVName "id-on-dnsSRV" -#define LN_SRVName "SRVName" -#define NID_SRVName 1210 -#define OBJ_SRVName OBJ_id_on,7L - -#define SN_NAIRealm "id-on-NAIRealm" -#define LN_NAIRealm "NAIRealm" -#define NID_NAIRealm 1211 -#define OBJ_NAIRealm OBJ_id_on,8L - -#define SN_id_on_SmtpUTF8Mailbox "id-on-SmtpUTF8Mailbox" -#define LN_id_on_SmtpUTF8Mailbox "Smtp UTF8 Mailbox" -#define NID_id_on_SmtpUTF8Mailbox 1208 -#define OBJ_id_on_SmtpUTF8Mailbox OBJ_id_on,9L - -#define SN_id_pda_dateOfBirth "id-pda-dateOfBirth" -#define NID_id_pda_dateOfBirth 348 -#define OBJ_id_pda_dateOfBirth OBJ_id_pda,1L - -#define SN_id_pda_placeOfBirth "id-pda-placeOfBirth" -#define NID_id_pda_placeOfBirth 349 -#define OBJ_id_pda_placeOfBirth OBJ_id_pda,2L - -#define SN_id_pda_gender "id-pda-gender" -#define NID_id_pda_gender 351 -#define OBJ_id_pda_gender OBJ_id_pda,3L - -#define SN_id_pda_countryOfCitizenship "id-pda-countryOfCitizenship" -#define NID_id_pda_countryOfCitizenship 352 -#define OBJ_id_pda_countryOfCitizenship OBJ_id_pda,4L - -#define SN_id_pda_countryOfResidence "id-pda-countryOfResidence" -#define NID_id_pda_countryOfResidence 353 -#define OBJ_id_pda_countryOfResidence OBJ_id_pda,5L - -#define SN_id_aca_authenticationInfo "id-aca-authenticationInfo" -#define NID_id_aca_authenticationInfo 354 -#define OBJ_id_aca_authenticationInfo OBJ_id_aca,1L - -#define SN_id_aca_accessIdentity "id-aca-accessIdentity" -#define NID_id_aca_accessIdentity 355 -#define OBJ_id_aca_accessIdentity OBJ_id_aca,2L - -#define SN_id_aca_chargingIdentity "id-aca-chargingIdentity" -#define NID_id_aca_chargingIdentity 356 -#define OBJ_id_aca_chargingIdentity OBJ_id_aca,3L - -#define SN_id_aca_group "id-aca-group" -#define NID_id_aca_group 357 -#define OBJ_id_aca_group OBJ_id_aca,4L - -#define SN_id_aca_role "id-aca-role" -#define NID_id_aca_role 358 -#define OBJ_id_aca_role OBJ_id_aca,5L - -#define SN_id_aca_encAttrs "id-aca-encAttrs" -#define NID_id_aca_encAttrs 399 -#define OBJ_id_aca_encAttrs OBJ_id_aca,6L - -#define SN_id_qcs_pkixQCSyntax_v1 "id-qcs-pkixQCSyntax-v1" -#define NID_id_qcs_pkixQCSyntax_v1 359 -#define OBJ_id_qcs_pkixQCSyntax_v1 OBJ_id_qcs,1L - -#define SN_ipAddr_asNumber "ipAddr-asNumber" -#define NID_ipAddr_asNumber 1241 -#define OBJ_ipAddr_asNumber OBJ_id_cp,2L - -#define SN_ipAddr_asNumberv2 "ipAddr-asNumberv2" -#define NID_ipAddr_asNumberv2 1242 -#define OBJ_ipAddr_asNumberv2 OBJ_id_cp,3L - -#define SN_id_cct_crs "id-cct-crs" -#define NID_id_cct_crs 360 -#define OBJ_id_cct_crs OBJ_id_cct,1L - -#define SN_id_cct_PKIData "id-cct-PKIData" -#define NID_id_cct_PKIData 361 -#define OBJ_id_cct_PKIData OBJ_id_cct,2L - -#define SN_id_cct_PKIResponse "id-cct-PKIResponse" -#define NID_id_cct_PKIResponse 362 -#define OBJ_id_cct_PKIResponse OBJ_id_cct,3L - -#define SN_id_ppl_anyLanguage "id-ppl-anyLanguage" -#define LN_id_ppl_anyLanguage "Any language" -#define NID_id_ppl_anyLanguage 664 -#define OBJ_id_ppl_anyLanguage OBJ_id_ppl,0L - -#define SN_id_ppl_inheritAll "id-ppl-inheritAll" -#define LN_id_ppl_inheritAll "Inherit all" -#define NID_id_ppl_inheritAll 665 -#define OBJ_id_ppl_inheritAll OBJ_id_ppl,1L - -#define SN_Independent "id-ppl-independent" -#define LN_Independent "Independent" -#define NID_Independent 667 -#define OBJ_Independent OBJ_id_ppl,2L - -#define SN_ad_OCSP "OCSP" -#define LN_ad_OCSP "OCSP" -#define NID_ad_OCSP 178 -#define OBJ_ad_OCSP OBJ_id_ad,1L - -#define SN_ad_ca_issuers "caIssuers" -#define LN_ad_ca_issuers "CA Issuers" -#define NID_ad_ca_issuers 179 -#define OBJ_ad_ca_issuers OBJ_id_ad,2L - -#define SN_ad_timeStamping "ad_timestamping" -#define LN_ad_timeStamping "AD Time Stamping" -#define NID_ad_timeStamping 363 -#define OBJ_ad_timeStamping OBJ_id_ad,3L - -#define SN_ad_dvcs "AD_DVCS" -#define LN_ad_dvcs "ad dvcs" -#define NID_ad_dvcs 364 -#define OBJ_ad_dvcs OBJ_id_ad,4L - -#define SN_caRepository "caRepository" -#define LN_caRepository "CA Repository" -#define NID_caRepository 785 -#define OBJ_caRepository OBJ_id_ad,5L - -#define SN_rpkiManifest "rpkiManifest" -#define LN_rpkiManifest "RPKI Manifest" -#define NID_rpkiManifest 1243 -#define OBJ_rpkiManifest OBJ_id_ad,10L - -#define SN_signedObject "signedObject" -#define LN_signedObject "Signed Object" -#define NID_signedObject 1244 -#define OBJ_signedObject OBJ_id_ad,11L - -#define SN_rpkiNotify "rpkiNotify" -#define LN_rpkiNotify "RPKI Notify" -#define NID_rpkiNotify 1245 -#define OBJ_rpkiNotify OBJ_id_ad,13L - -#define OBJ_id_pkix_OCSP OBJ_ad_OCSP - -#define SN_id_pkix_OCSP_basic "basicOCSPResponse" -#define LN_id_pkix_OCSP_basic "Basic OCSP Response" -#define NID_id_pkix_OCSP_basic 365 -#define OBJ_id_pkix_OCSP_basic OBJ_id_pkix_OCSP,1L - -#define SN_id_pkix_OCSP_Nonce "Nonce" -#define LN_id_pkix_OCSP_Nonce "OCSP Nonce" -#define NID_id_pkix_OCSP_Nonce 366 -#define OBJ_id_pkix_OCSP_Nonce OBJ_id_pkix_OCSP,2L - -#define SN_id_pkix_OCSP_CrlID "CrlID" -#define LN_id_pkix_OCSP_CrlID "OCSP CRL ID" -#define NID_id_pkix_OCSP_CrlID 367 -#define OBJ_id_pkix_OCSP_CrlID OBJ_id_pkix_OCSP,3L - -#define SN_id_pkix_OCSP_acceptableResponses "acceptableResponses" -#define LN_id_pkix_OCSP_acceptableResponses "Acceptable OCSP Responses" -#define NID_id_pkix_OCSP_acceptableResponses 368 -#define OBJ_id_pkix_OCSP_acceptableResponses OBJ_id_pkix_OCSP,4L - -#define SN_id_pkix_OCSP_noCheck "noCheck" -#define LN_id_pkix_OCSP_noCheck "OCSP No Check" -#define NID_id_pkix_OCSP_noCheck 369 -#define OBJ_id_pkix_OCSP_noCheck OBJ_id_pkix_OCSP,5L - -#define SN_id_pkix_OCSP_archiveCutoff "archiveCutoff" -#define LN_id_pkix_OCSP_archiveCutoff "OCSP Archive Cutoff" -#define NID_id_pkix_OCSP_archiveCutoff 370 -#define OBJ_id_pkix_OCSP_archiveCutoff OBJ_id_pkix_OCSP,6L - -#define SN_id_pkix_OCSP_serviceLocator "serviceLocator" -#define LN_id_pkix_OCSP_serviceLocator "OCSP Service Locator" -#define NID_id_pkix_OCSP_serviceLocator 371 -#define OBJ_id_pkix_OCSP_serviceLocator OBJ_id_pkix_OCSP,7L - -#define SN_id_pkix_OCSP_extendedStatus "extendedStatus" -#define LN_id_pkix_OCSP_extendedStatus "Extended OCSP Status" -#define NID_id_pkix_OCSP_extendedStatus 372 -#define OBJ_id_pkix_OCSP_extendedStatus OBJ_id_pkix_OCSP,8L - -#define SN_id_pkix_OCSP_valid "valid" -#define NID_id_pkix_OCSP_valid 373 -#define OBJ_id_pkix_OCSP_valid OBJ_id_pkix_OCSP,9L - -#define SN_id_pkix_OCSP_path "path" -#define NID_id_pkix_OCSP_path 374 -#define OBJ_id_pkix_OCSP_path OBJ_id_pkix_OCSP,10L - -#define SN_id_pkix_OCSP_trustRoot "trustRoot" -#define LN_id_pkix_OCSP_trustRoot "Trust Root" -#define NID_id_pkix_OCSP_trustRoot 375 -#define OBJ_id_pkix_OCSP_trustRoot OBJ_id_pkix_OCSP,11L - -#define SN_algorithm "algorithm" -#define LN_algorithm "algorithm" -#define NID_algorithm 376 -#define OBJ_algorithm 1L,3L,14L,3L,2L - -#define SN_md5WithRSA "RSA-NP-MD5" -#define LN_md5WithRSA "md5WithRSA" -#define NID_md5WithRSA 104 -#define OBJ_md5WithRSA OBJ_algorithm,3L - -#define SN_des_ecb "DES-ECB" -#define LN_des_ecb "des-ecb" -#define NID_des_ecb 29 -#define OBJ_des_ecb OBJ_algorithm,6L - -#define SN_des_cbc "DES-CBC" -#define LN_des_cbc "des-cbc" -#define NID_des_cbc 31 -#define OBJ_des_cbc OBJ_algorithm,7L - -#define SN_des_ofb64 "DES-OFB" -#define LN_des_ofb64 "des-ofb" -#define NID_des_ofb64 45 -#define OBJ_des_ofb64 OBJ_algorithm,8L - -#define SN_des_cfb64 "DES-CFB" -#define LN_des_cfb64 "des-cfb" -#define NID_des_cfb64 30 -#define OBJ_des_cfb64 OBJ_algorithm,9L - -#define SN_rsaSignature "rsaSignature" -#define NID_rsaSignature 377 -#define OBJ_rsaSignature OBJ_algorithm,11L - -#define SN_dsa_2 "DSA-old" -#define LN_dsa_2 "dsaEncryption-old" -#define NID_dsa_2 67 -#define OBJ_dsa_2 OBJ_algorithm,12L - -#define SN_dsaWithSHA "DSA-SHA" -#define LN_dsaWithSHA "dsaWithSHA" -#define NID_dsaWithSHA 66 -#define OBJ_dsaWithSHA OBJ_algorithm,13L - -#define SN_shaWithRSAEncryption "RSA-SHA" -#define LN_shaWithRSAEncryption "shaWithRSAEncryption" -#define NID_shaWithRSAEncryption 42 -#define OBJ_shaWithRSAEncryption OBJ_algorithm,15L - -#define SN_des_ede_ecb "DES-EDE" -#define LN_des_ede_ecb "des-ede" -#define NID_des_ede_ecb 32 -#define OBJ_des_ede_ecb OBJ_algorithm,17L - -#define SN_des_ede3_ecb "DES-EDE3" -#define LN_des_ede3_ecb "des-ede3" -#define NID_des_ede3_ecb 33 - -#define SN_des_ede_cbc "DES-EDE-CBC" -#define LN_des_ede_cbc "des-ede-cbc" -#define NID_des_ede_cbc 43 - -#define SN_des_ede_cfb64 "DES-EDE-CFB" -#define LN_des_ede_cfb64 "des-ede-cfb" -#define NID_des_ede_cfb64 60 - -#define SN_des_ede3_cfb64 "DES-EDE3-CFB" -#define LN_des_ede3_cfb64 "des-ede3-cfb" -#define NID_des_ede3_cfb64 61 - -#define SN_des_ede_ofb64 "DES-EDE-OFB" -#define LN_des_ede_ofb64 "des-ede-ofb" -#define NID_des_ede_ofb64 62 - -#define SN_des_ede3_ofb64 "DES-EDE3-OFB" -#define LN_des_ede3_ofb64 "des-ede3-ofb" -#define NID_des_ede3_ofb64 63 - -#define SN_desx_cbc "DESX-CBC" -#define LN_desx_cbc "desx-cbc" -#define NID_desx_cbc 80 - -#define SN_sha "SHA" -#define LN_sha "sha" -#define NID_sha 41 -#define OBJ_sha OBJ_algorithm,18L - -#define SN_sha1 "SHA1" -#define LN_sha1 "sha1" -#define NID_sha1 64 -#define OBJ_sha1 OBJ_algorithm,26L - -#define SN_dsaWithSHA1_2 "DSA-SHA1-old" -#define LN_dsaWithSHA1_2 "dsaWithSHA1-old" -#define NID_dsaWithSHA1_2 70 -#define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L - -#define SN_sha1WithRSA "RSA-SHA1-2" -#define LN_sha1WithRSA "sha1WithRSA" -#define NID_sha1WithRSA 115 -#define OBJ_sha1WithRSA OBJ_algorithm,29L - -#define SN_ripemd160 "RIPEMD160" -#define LN_ripemd160 "ripemd160" -#define NID_ripemd160 117 -#define OBJ_ripemd160 1L,3L,36L,3L,2L,1L - -#define SN_ripemd160WithRSA "RSA-RIPEMD160" -#define LN_ripemd160WithRSA "ripemd160WithRSA" -#define NID_ripemd160WithRSA 119 -#define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L - -#define SN_blake2bmac "BLAKE2BMAC" -#define LN_blake2bmac "blake2bmac" -#define NID_blake2bmac 1201 -#define OBJ_blake2bmac 1L,3L,6L,1L,4L,1L,1722L,12L,2L,1L - -#define SN_blake2smac "BLAKE2SMAC" -#define LN_blake2smac "blake2smac" -#define NID_blake2smac 1202 -#define OBJ_blake2smac 1L,3L,6L,1L,4L,1L,1722L,12L,2L,2L - -#define SN_blake2b512 "BLAKE2b512" -#define LN_blake2b512 "blake2b512" -#define NID_blake2b512 1056 -#define OBJ_blake2b512 OBJ_blake2bmac,16L - -#define SN_blake2s256 "BLAKE2s256" -#define LN_blake2s256 "blake2s256" -#define NID_blake2s256 1057 -#define OBJ_blake2s256 OBJ_blake2smac,8L - -#define SN_sxnet "SXNetID" -#define LN_sxnet "Strong Extranet ID" -#define NID_sxnet 143 -#define OBJ_sxnet 1L,3L,101L,1L,4L,1L - -#define SN_X500 "X500" -#define LN_X500 "directory services (X.500)" -#define NID_X500 11 -#define OBJ_X500 2L,5L - -#define SN_X509 "X509" -#define NID_X509 12 -#define OBJ_X509 OBJ_X500,4L - -#define SN_commonName "CN" -#define LN_commonName "commonName" -#define NID_commonName 13 -#define OBJ_commonName OBJ_X509,3L - -#define SN_surname "SN" -#define LN_surname "surname" -#define NID_surname 100 -#define OBJ_surname OBJ_X509,4L - -#define LN_serialNumber "serialNumber" -#define NID_serialNumber 105 -#define OBJ_serialNumber OBJ_X509,5L - -#define SN_countryName "C" -#define LN_countryName "countryName" -#define NID_countryName 14 -#define OBJ_countryName OBJ_X509,6L - -#define SN_localityName "L" -#define LN_localityName "localityName" -#define NID_localityName 15 -#define OBJ_localityName OBJ_X509,7L - -#define SN_stateOrProvinceName "ST" -#define LN_stateOrProvinceName "stateOrProvinceName" -#define NID_stateOrProvinceName 16 -#define OBJ_stateOrProvinceName OBJ_X509,8L - -#define SN_streetAddress "street" -#define LN_streetAddress "streetAddress" -#define NID_streetAddress 660 -#define OBJ_streetAddress OBJ_X509,9L - -#define SN_organizationName "O" -#define LN_organizationName "organizationName" -#define NID_organizationName 17 -#define OBJ_organizationName OBJ_X509,10L - -#define SN_organizationalUnitName "OU" -#define LN_organizationalUnitName "organizationalUnitName" -#define NID_organizationalUnitName 18 -#define OBJ_organizationalUnitName OBJ_X509,11L - -#define SN_title "title" -#define LN_title "title" -#define NID_title 106 -#define OBJ_title OBJ_X509,12L - -#define LN_description "description" -#define NID_description 107 -#define OBJ_description OBJ_X509,13L - -#define LN_searchGuide "searchGuide" -#define NID_searchGuide 859 -#define OBJ_searchGuide OBJ_X509,14L - -#define LN_businessCategory "businessCategory" -#define NID_businessCategory 860 -#define OBJ_businessCategory OBJ_X509,15L - -#define LN_postalAddress "postalAddress" -#define NID_postalAddress 861 -#define OBJ_postalAddress OBJ_X509,16L - -#define LN_postalCode "postalCode" -#define NID_postalCode 661 -#define OBJ_postalCode OBJ_X509,17L - -#define LN_postOfficeBox "postOfficeBox" -#define NID_postOfficeBox 862 -#define OBJ_postOfficeBox OBJ_X509,18L - -#define LN_physicalDeliveryOfficeName "physicalDeliveryOfficeName" -#define NID_physicalDeliveryOfficeName 863 -#define OBJ_physicalDeliveryOfficeName OBJ_X509,19L - -#define LN_telephoneNumber "telephoneNumber" -#define NID_telephoneNumber 864 -#define OBJ_telephoneNumber OBJ_X509,20L - -#define LN_telexNumber "telexNumber" -#define NID_telexNumber 865 -#define OBJ_telexNumber OBJ_X509,21L - -#define LN_teletexTerminalIdentifier "teletexTerminalIdentifier" -#define NID_teletexTerminalIdentifier 866 -#define OBJ_teletexTerminalIdentifier OBJ_X509,22L - -#define LN_facsimileTelephoneNumber "facsimileTelephoneNumber" -#define NID_facsimileTelephoneNumber 867 -#define OBJ_facsimileTelephoneNumber OBJ_X509,23L - -#define LN_x121Address "x121Address" -#define NID_x121Address 868 -#define OBJ_x121Address OBJ_X509,24L - -#define LN_internationaliSDNNumber "internationaliSDNNumber" -#define NID_internationaliSDNNumber 869 -#define OBJ_internationaliSDNNumber OBJ_X509,25L - -#define LN_registeredAddress "registeredAddress" -#define NID_registeredAddress 870 -#define OBJ_registeredAddress OBJ_X509,26L - -#define LN_destinationIndicator "destinationIndicator" -#define NID_destinationIndicator 871 -#define OBJ_destinationIndicator OBJ_X509,27L - -#define LN_preferredDeliveryMethod "preferredDeliveryMethod" -#define NID_preferredDeliveryMethod 872 -#define OBJ_preferredDeliveryMethod OBJ_X509,28L - -#define LN_presentationAddress "presentationAddress" -#define NID_presentationAddress 873 -#define OBJ_presentationAddress OBJ_X509,29L - -#define LN_supportedApplicationContext "supportedApplicationContext" -#define NID_supportedApplicationContext 874 -#define OBJ_supportedApplicationContext OBJ_X509,30L - -#define SN_member "member" -#define NID_member 875 -#define OBJ_member OBJ_X509,31L - -#define SN_owner "owner" -#define NID_owner 876 -#define OBJ_owner OBJ_X509,32L - -#define LN_roleOccupant "roleOccupant" -#define NID_roleOccupant 877 -#define OBJ_roleOccupant OBJ_X509,33L - -#define SN_seeAlso "seeAlso" -#define NID_seeAlso 878 -#define OBJ_seeAlso OBJ_X509,34L - -#define LN_userPassword "userPassword" -#define NID_userPassword 879 -#define OBJ_userPassword OBJ_X509,35L - -#define LN_userCertificate "userCertificate" -#define NID_userCertificate 880 -#define OBJ_userCertificate OBJ_X509,36L - -#define LN_cACertificate "cACertificate" -#define NID_cACertificate 881 -#define OBJ_cACertificate OBJ_X509,37L - -#define LN_authorityRevocationList "authorityRevocationList" -#define NID_authorityRevocationList 882 -#define OBJ_authorityRevocationList OBJ_X509,38L - -#define LN_certificateRevocationList "certificateRevocationList" -#define NID_certificateRevocationList 883 -#define OBJ_certificateRevocationList OBJ_X509,39L - -#define LN_crossCertificatePair "crossCertificatePair" -#define NID_crossCertificatePair 884 -#define OBJ_crossCertificatePair OBJ_X509,40L - -#define SN_name "name" -#define LN_name "name" -#define NID_name 173 -#define OBJ_name OBJ_X509,41L - -#define SN_givenName "GN" -#define LN_givenName "givenName" -#define NID_givenName 99 -#define OBJ_givenName OBJ_X509,42L - -#define SN_initials "initials" -#define LN_initials "initials" -#define NID_initials 101 -#define OBJ_initials OBJ_X509,43L - -#define LN_generationQualifier "generationQualifier" -#define NID_generationQualifier 509 -#define OBJ_generationQualifier OBJ_X509,44L - -#define LN_x500UniqueIdentifier "x500UniqueIdentifier" -#define NID_x500UniqueIdentifier 503 -#define OBJ_x500UniqueIdentifier OBJ_X509,45L - -#define SN_dnQualifier "dnQualifier" -#define LN_dnQualifier "dnQualifier" -#define NID_dnQualifier 174 -#define OBJ_dnQualifier OBJ_X509,46L - -#define LN_enhancedSearchGuide "enhancedSearchGuide" -#define NID_enhancedSearchGuide 885 -#define OBJ_enhancedSearchGuide OBJ_X509,47L - -#define LN_protocolInformation "protocolInformation" -#define NID_protocolInformation 886 -#define OBJ_protocolInformation OBJ_X509,48L - -#define LN_distinguishedName "distinguishedName" -#define NID_distinguishedName 887 -#define OBJ_distinguishedName OBJ_X509,49L - -#define LN_uniqueMember "uniqueMember" -#define NID_uniqueMember 888 -#define OBJ_uniqueMember OBJ_X509,50L - -#define LN_houseIdentifier "houseIdentifier" -#define NID_houseIdentifier 889 -#define OBJ_houseIdentifier OBJ_X509,51L - -#define LN_supportedAlgorithms "supportedAlgorithms" -#define NID_supportedAlgorithms 890 -#define OBJ_supportedAlgorithms OBJ_X509,52L - -#define LN_deltaRevocationList "deltaRevocationList" -#define NID_deltaRevocationList 891 -#define OBJ_deltaRevocationList OBJ_X509,53L - -#define SN_dmdName "dmdName" -#define NID_dmdName 892 -#define OBJ_dmdName OBJ_X509,54L - -#define LN_pseudonym "pseudonym" -#define NID_pseudonym 510 -#define OBJ_pseudonym OBJ_X509,65L - -#define SN_role "role" -#define LN_role "role" -#define NID_role 400 -#define OBJ_role OBJ_X509,72L - -#define LN_organizationIdentifier "organizationIdentifier" -#define NID_organizationIdentifier 1089 -#define OBJ_organizationIdentifier OBJ_X509,97L - -#define SN_countryCode3c "c3" -#define LN_countryCode3c "countryCode3c" -#define NID_countryCode3c 1090 -#define OBJ_countryCode3c OBJ_X509,98L - -#define SN_countryCode3n "n3" -#define LN_countryCode3n "countryCode3n" -#define NID_countryCode3n 1091 -#define OBJ_countryCode3n OBJ_X509,99L - -#define LN_dnsName "dnsName" -#define NID_dnsName 1092 -#define OBJ_dnsName OBJ_X509,100L - -#define SN_X500algorithms "X500algorithms" -#define LN_X500algorithms "directory services - algorithms" -#define NID_X500algorithms 378 -#define OBJ_X500algorithms OBJ_X500,8L - -#define SN_rsa "RSA" -#define LN_rsa "rsa" -#define NID_rsa 19 -#define OBJ_rsa OBJ_X500algorithms,1L,1L - -#define SN_mdc2WithRSA "RSA-MDC2" -#define LN_mdc2WithRSA "mdc2WithRSA" -#define NID_mdc2WithRSA 96 -#define OBJ_mdc2WithRSA OBJ_X500algorithms,3L,100L - -#define SN_mdc2 "MDC2" -#define LN_mdc2 "mdc2" -#define NID_mdc2 95 -#define OBJ_mdc2 OBJ_X500algorithms,3L,101L - -#define SN_id_ce "id-ce" -#define NID_id_ce 81 -#define OBJ_id_ce OBJ_X500,29L - -#define SN_subject_directory_attributes "subjectDirectoryAttributes" -#define LN_subject_directory_attributes "X509v3 Subject Directory Attributes" -#define NID_subject_directory_attributes 769 -#define OBJ_subject_directory_attributes OBJ_id_ce,9L - -#define SN_subject_key_identifier "subjectKeyIdentifier" -#define LN_subject_key_identifier "X509v3 Subject Key Identifier" -#define NID_subject_key_identifier 82 -#define OBJ_subject_key_identifier OBJ_id_ce,14L - -#define SN_key_usage "keyUsage" -#define LN_key_usage "X509v3 Key Usage" -#define NID_key_usage 83 -#define OBJ_key_usage OBJ_id_ce,15L - -#define SN_private_key_usage_period "privateKeyUsagePeriod" -#define LN_private_key_usage_period "X509v3 Private Key Usage Period" -#define NID_private_key_usage_period 84 -#define OBJ_private_key_usage_period OBJ_id_ce,16L - -#define SN_subject_alt_name "subjectAltName" -#define LN_subject_alt_name "X509v3 Subject Alternative Name" -#define NID_subject_alt_name 85 -#define OBJ_subject_alt_name OBJ_id_ce,17L - -#define SN_issuer_alt_name "issuerAltName" -#define LN_issuer_alt_name "X509v3 Issuer Alternative Name" -#define NID_issuer_alt_name 86 -#define OBJ_issuer_alt_name OBJ_id_ce,18L - -#define SN_basic_constraints "basicConstraints" -#define LN_basic_constraints "X509v3 Basic Constraints" -#define NID_basic_constraints 87 -#define OBJ_basic_constraints OBJ_id_ce,19L - -#define SN_crl_number "crlNumber" -#define LN_crl_number "X509v3 CRL Number" -#define NID_crl_number 88 -#define OBJ_crl_number OBJ_id_ce,20L - -#define SN_crl_reason "CRLReason" -#define LN_crl_reason "X509v3 CRL Reason Code" -#define NID_crl_reason 141 -#define OBJ_crl_reason OBJ_id_ce,21L - -#define SN_invalidity_date "invalidityDate" -#define LN_invalidity_date "Invalidity Date" -#define NID_invalidity_date 142 -#define OBJ_invalidity_date OBJ_id_ce,24L - -#define SN_delta_crl "deltaCRL" -#define LN_delta_crl "X509v3 Delta CRL Indicator" -#define NID_delta_crl 140 -#define OBJ_delta_crl OBJ_id_ce,27L - -#define SN_issuing_distribution_point "issuingDistributionPoint" -#define LN_issuing_distribution_point "X509v3 Issuing Distribution Point" -#define NID_issuing_distribution_point 770 -#define OBJ_issuing_distribution_point OBJ_id_ce,28L - -#define SN_certificate_issuer "certificateIssuer" -#define LN_certificate_issuer "X509v3 Certificate Issuer" -#define NID_certificate_issuer 771 -#define OBJ_certificate_issuer OBJ_id_ce,29L - -#define SN_name_constraints "nameConstraints" -#define LN_name_constraints "X509v3 Name Constraints" -#define NID_name_constraints 666 -#define OBJ_name_constraints OBJ_id_ce,30L - -#define SN_crl_distribution_points "crlDistributionPoints" -#define LN_crl_distribution_points "X509v3 CRL Distribution Points" -#define NID_crl_distribution_points 103 -#define OBJ_crl_distribution_points OBJ_id_ce,31L - -#define SN_certificate_policies "certificatePolicies" -#define LN_certificate_policies "X509v3 Certificate Policies" -#define NID_certificate_policies 89 -#define OBJ_certificate_policies OBJ_id_ce,32L - -#define SN_any_policy "anyPolicy" -#define LN_any_policy "X509v3 Any Policy" -#define NID_any_policy 746 -#define OBJ_any_policy OBJ_certificate_policies,0L - -#define SN_policy_mappings "policyMappings" -#define LN_policy_mappings "X509v3 Policy Mappings" -#define NID_policy_mappings 747 -#define OBJ_policy_mappings OBJ_id_ce,33L - -#define SN_authority_key_identifier "authorityKeyIdentifier" -#define LN_authority_key_identifier "X509v3 Authority Key Identifier" -#define NID_authority_key_identifier 90 -#define OBJ_authority_key_identifier OBJ_id_ce,35L - -#define SN_policy_constraints "policyConstraints" -#define LN_policy_constraints "X509v3 Policy Constraints" -#define NID_policy_constraints 401 -#define OBJ_policy_constraints OBJ_id_ce,36L - -#define SN_ext_key_usage "extendedKeyUsage" -#define LN_ext_key_usage "X509v3 Extended Key Usage" -#define NID_ext_key_usage 126 -#define OBJ_ext_key_usage OBJ_id_ce,37L - -#define SN_authority_attribute_identifier "authorityAttributeIdentifier" -#define LN_authority_attribute_identifier "X509v3 Authority Attribute Identifier" -#define NID_authority_attribute_identifier 1295 -#define OBJ_authority_attribute_identifier OBJ_id_ce,38L - -#define SN_role_spec_cert_identifier "roleSpecCertIdentifier" -#define LN_role_spec_cert_identifier "X509v3 Role Specification Certificate Identifier" -#define NID_role_spec_cert_identifier 1296 -#define OBJ_role_spec_cert_identifier OBJ_id_ce,39L - -#define SN_basic_att_constraints "basicAttConstraints" -#define LN_basic_att_constraints "X509v3 Basic Attribute Certificate Constraints" -#define NID_basic_att_constraints 1297 -#define OBJ_basic_att_constraints OBJ_id_ce,41L - -#define SN_delegated_name_constraints "delegatedNameConstraints" -#define LN_delegated_name_constraints "X509v3 Delegated Name Constraints" -#define NID_delegated_name_constraints 1298 -#define OBJ_delegated_name_constraints OBJ_id_ce,42L - -#define SN_time_specification "timeSpecification" -#define LN_time_specification "X509v3 Time Specification" -#define NID_time_specification 1299 -#define OBJ_time_specification OBJ_id_ce,43L - -#define SN_freshest_crl "freshestCRL" -#define LN_freshest_crl "X509v3 Freshest CRL" -#define NID_freshest_crl 857 -#define OBJ_freshest_crl OBJ_id_ce,46L - -#define SN_attribute_descriptor "attributeDescriptor" -#define LN_attribute_descriptor "X509v3 Attribute Descriptor" -#define NID_attribute_descriptor 1300 -#define OBJ_attribute_descriptor OBJ_id_ce,48L - -#define SN_user_notice "userNotice" -#define LN_user_notice "X509v3 User Notice" -#define NID_user_notice 1301 -#define OBJ_user_notice OBJ_id_ce,49L - -#define SN_soa_identifier "sOAIdentifier" -#define LN_soa_identifier "X509v3 Source of Authority Identifier" -#define NID_soa_identifier 1302 -#define OBJ_soa_identifier OBJ_id_ce,50L - -#define SN_acceptable_cert_policies "acceptableCertPolicies" -#define LN_acceptable_cert_policies "X509v3 Acceptable Certification Policies" -#define NID_acceptable_cert_policies 1303 -#define OBJ_acceptable_cert_policies OBJ_id_ce,52L - -#define SN_inhibit_any_policy "inhibitAnyPolicy" -#define LN_inhibit_any_policy "X509v3 Inhibit Any Policy" -#define NID_inhibit_any_policy 748 -#define OBJ_inhibit_any_policy OBJ_id_ce,54L - -#define SN_target_information "targetInformation" -#define LN_target_information "X509v3 AC Targeting" -#define NID_target_information 402 -#define OBJ_target_information OBJ_id_ce,55L - -#define SN_no_rev_avail "noRevAvail" -#define LN_no_rev_avail "X509v3 No Revocation Available" -#define NID_no_rev_avail 403 -#define OBJ_no_rev_avail OBJ_id_ce,56L - -#define SN_acceptable_privilege_policies "acceptablePrivPolicies" -#define LN_acceptable_privilege_policies "X509v3 Acceptable Privilege Policies" -#define NID_acceptable_privilege_policies 1304 -#define OBJ_acceptable_privilege_policies OBJ_id_ce,57L - -#define SN_indirect_issuer "indirectIssuer" -#define LN_indirect_issuer "X509v3 Indirect Issuer" -#define NID_indirect_issuer 1305 -#define OBJ_indirect_issuer OBJ_id_ce,61L - -#define SN_no_assertion "noAssertion" -#define LN_no_assertion "X509v3 No Assertion" -#define NID_no_assertion 1306 -#define OBJ_no_assertion OBJ_id_ce,62L - -#define SN_id_aa_issuing_distribution_point "aAissuingDistributionPoint" -#define LN_id_aa_issuing_distribution_point "X509v3 Attribute Authority Issuing Distribution Point" -#define NID_id_aa_issuing_distribution_point 1307 -#define OBJ_id_aa_issuing_distribution_point OBJ_id_ce,63L - -#define SN_issued_on_behalf_of "issuedOnBehalfOf" -#define LN_issued_on_behalf_of "X509v3 Issued On Behalf Of" -#define NID_issued_on_behalf_of 1308 -#define OBJ_issued_on_behalf_of OBJ_id_ce,64L - -#define SN_single_use "singleUse" -#define LN_single_use "X509v3 Single Use" -#define NID_single_use 1309 -#define OBJ_single_use OBJ_id_ce,65L - -#define SN_group_ac "groupAC" -#define LN_group_ac "X509v3 Group Attribute Certificate" -#define NID_group_ac 1310 -#define OBJ_group_ac OBJ_id_ce,66L - -#define SN_allowed_attribute_assignments "allowedAttributeAssignments" -#define LN_allowed_attribute_assignments "X509v3 Allowed Attribute Assignments" -#define NID_allowed_attribute_assignments 1311 -#define OBJ_allowed_attribute_assignments OBJ_id_ce,67L - -#define SN_attribute_mappings "attributeMappings" -#define LN_attribute_mappings "X509v3 Attribute Mappings" -#define NID_attribute_mappings 1312 -#define OBJ_attribute_mappings OBJ_id_ce,68L - -#define SN_holder_name_constraints "holderNameConstraints" -#define LN_holder_name_constraints "X509v3 Holder Name Constraints" -#define NID_holder_name_constraints 1313 -#define OBJ_holder_name_constraints OBJ_id_ce,69L - -#define SN_authorization_validation "authorizationValidation" -#define LN_authorization_validation "X509v3 Authorization Validation" -#define NID_authorization_validation 1314 -#define OBJ_authorization_validation OBJ_id_ce,70L - -#define SN_prot_restrict "protRestrict" -#define LN_prot_restrict "X509v3 Protocol Restriction" -#define NID_prot_restrict 1315 -#define OBJ_prot_restrict OBJ_id_ce,71L - -#define SN_subject_alt_public_key_info "subjectAltPublicKeyInfo" -#define LN_subject_alt_public_key_info "X509v3 Subject Alternative Public Key Info" -#define NID_subject_alt_public_key_info 1316 -#define OBJ_subject_alt_public_key_info OBJ_id_ce,72L - -#define SN_alt_signature_algorithm "altSignatureAlgorithm" -#define LN_alt_signature_algorithm "X509v3 Alternative Signature Algorithm" -#define NID_alt_signature_algorithm 1317 -#define OBJ_alt_signature_algorithm OBJ_id_ce,73L - -#define SN_alt_signature_value "altSignatureValue" -#define LN_alt_signature_value "X509v3 Alternative Signature Value" -#define NID_alt_signature_value 1318 -#define OBJ_alt_signature_value OBJ_id_ce,74L - -#define SN_associated_information "associatedInformation" -#define LN_associated_information "X509v3 Associated Information" -#define NID_associated_information 1319 -#define OBJ_associated_information OBJ_id_ce,75L - -#define SN_anyExtendedKeyUsage "anyExtendedKeyUsage" -#define LN_anyExtendedKeyUsage "Any Extended Key Usage" -#define NID_anyExtendedKeyUsage 910 -#define OBJ_anyExtendedKeyUsage OBJ_ext_key_usage,0L - -#define SN_netscape "Netscape" -#define LN_netscape "Netscape Communications Corp." -#define NID_netscape 57 -#define OBJ_netscape 2L,16L,840L,1L,113730L - -#define SN_netscape_cert_extension "nsCertExt" -#define LN_netscape_cert_extension "Netscape Certificate Extension" -#define NID_netscape_cert_extension 58 -#define OBJ_netscape_cert_extension OBJ_netscape,1L - -#define SN_netscape_data_type "nsDataType" -#define LN_netscape_data_type "Netscape Data Type" -#define NID_netscape_data_type 59 -#define OBJ_netscape_data_type OBJ_netscape,2L - -#define SN_netscape_cert_type "nsCertType" -#define LN_netscape_cert_type "Netscape Cert Type" -#define NID_netscape_cert_type 71 -#define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L - -#define SN_netscape_base_url "nsBaseUrl" -#define LN_netscape_base_url "Netscape Base Url" -#define NID_netscape_base_url 72 -#define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L - -#define SN_netscape_revocation_url "nsRevocationUrl" -#define LN_netscape_revocation_url "Netscape Revocation Url" -#define NID_netscape_revocation_url 73 -#define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L - -#define SN_netscape_ca_revocation_url "nsCaRevocationUrl" -#define LN_netscape_ca_revocation_url "Netscape CA Revocation Url" -#define NID_netscape_ca_revocation_url 74 -#define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L - -#define SN_netscape_renewal_url "nsRenewalUrl" -#define LN_netscape_renewal_url "Netscape Renewal Url" -#define NID_netscape_renewal_url 75 -#define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L - -#define SN_netscape_ca_policy_url "nsCaPolicyUrl" -#define LN_netscape_ca_policy_url "Netscape CA Policy Url" -#define NID_netscape_ca_policy_url 76 -#define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L - -#define SN_netscape_ssl_server_name "nsSslServerName" -#define LN_netscape_ssl_server_name "Netscape SSL Server Name" -#define NID_netscape_ssl_server_name 77 -#define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L - -#define SN_netscape_comment "nsComment" -#define LN_netscape_comment "Netscape Comment" -#define NID_netscape_comment 78 -#define OBJ_netscape_comment OBJ_netscape_cert_extension,13L - -#define SN_netscape_cert_sequence "nsCertSequence" -#define LN_netscape_cert_sequence "Netscape Certificate Sequence" -#define NID_netscape_cert_sequence 79 -#define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L - -#define SN_ns_sgc "nsSGC" -#define LN_ns_sgc "Netscape Server Gated Crypto" -#define NID_ns_sgc 139 -#define OBJ_ns_sgc OBJ_netscape,4L,1L - -#define SN_org "ORG" -#define LN_org "org" -#define NID_org 379 -#define OBJ_org OBJ_iso,3L - -#define SN_dod "DOD" -#define LN_dod "dod" -#define NID_dod 380 -#define OBJ_dod OBJ_org,6L - -#define SN_iana "IANA" -#define LN_iana "iana" -#define NID_iana 381 -#define OBJ_iana OBJ_dod,1L - -#define OBJ_internet OBJ_iana - -#define SN_Directory "directory" -#define LN_Directory "Directory" -#define NID_Directory 382 -#define OBJ_Directory OBJ_internet,1L - -#define SN_Management "mgmt" -#define LN_Management "Management" -#define NID_Management 383 -#define OBJ_Management OBJ_internet,2L - -#define SN_Experimental "experimental" -#define LN_Experimental "Experimental" -#define NID_Experimental 384 -#define OBJ_Experimental OBJ_internet,3L - -#define SN_Private "private" -#define LN_Private "Private" -#define NID_Private 385 -#define OBJ_Private OBJ_internet,4L - -#define SN_Security "security" -#define LN_Security "Security" -#define NID_Security 386 -#define OBJ_Security OBJ_internet,5L - -#define SN_SNMPv2 "snmpv2" -#define LN_SNMPv2 "SNMPv2" -#define NID_SNMPv2 387 -#define OBJ_SNMPv2 OBJ_internet,6L - -#define LN_Mail "Mail" -#define NID_Mail 388 -#define OBJ_Mail OBJ_internet,7L - -#define SN_Enterprises "enterprises" -#define LN_Enterprises "Enterprises" -#define NID_Enterprises 389 -#define OBJ_Enterprises OBJ_Private,1L - -#define SN_dcObject "dcobject" -#define LN_dcObject "dcObject" -#define NID_dcObject 390 -#define OBJ_dcObject OBJ_Enterprises,1466L,344L - -#define SN_id_kp_wisun_fan_device "id-kp-wisun-fan-device" -#define LN_id_kp_wisun_fan_device "Wi-SUN Alliance Field Area Network (FAN)" -#define NID_id_kp_wisun_fan_device 1322 -#define OBJ_id_kp_wisun_fan_device OBJ_Enterprises,45605L,1L - -#define SN_mime_mhs "mime-mhs" -#define LN_mime_mhs "MIME MHS" -#define NID_mime_mhs 504 -#define OBJ_mime_mhs OBJ_Mail,1L - -#define SN_mime_mhs_headings "mime-mhs-headings" -#define LN_mime_mhs_headings "mime-mhs-headings" -#define NID_mime_mhs_headings 505 -#define OBJ_mime_mhs_headings OBJ_mime_mhs,1L - -#define SN_mime_mhs_bodies "mime-mhs-bodies" -#define LN_mime_mhs_bodies "mime-mhs-bodies" -#define NID_mime_mhs_bodies 506 -#define OBJ_mime_mhs_bodies OBJ_mime_mhs,2L - -#define SN_id_hex_partial_message "id-hex-partial-message" -#define LN_id_hex_partial_message "id-hex-partial-message" -#define NID_id_hex_partial_message 507 -#define OBJ_id_hex_partial_message OBJ_mime_mhs_headings,1L - -#define SN_id_hex_multipart_message "id-hex-multipart-message" -#define LN_id_hex_multipart_message "id-hex-multipart-message" -#define NID_id_hex_multipart_message 508 -#define OBJ_id_hex_multipart_message OBJ_mime_mhs_headings,2L - -#define SN_zlib_compression "ZLIB" -#define LN_zlib_compression "zlib compression" -#define NID_zlib_compression 125 -#define OBJ_zlib_compression OBJ_id_smime_alg,8L - -#define OBJ_csor 2L,16L,840L,1L,101L,3L - -#define OBJ_nistAlgorithms OBJ_csor,4L - -#define OBJ_aes OBJ_nistAlgorithms,1L - -#define SN_aes_128_ecb "AES-128-ECB" -#define LN_aes_128_ecb "aes-128-ecb" -#define NID_aes_128_ecb 418 -#define OBJ_aes_128_ecb OBJ_aes,1L - -#define SN_aes_128_cbc "AES-128-CBC" -#define LN_aes_128_cbc "aes-128-cbc" -#define NID_aes_128_cbc 419 -#define OBJ_aes_128_cbc OBJ_aes,2L - -#define SN_aes_128_ofb128 "AES-128-OFB" -#define LN_aes_128_ofb128 "aes-128-ofb" -#define NID_aes_128_ofb128 420 -#define OBJ_aes_128_ofb128 OBJ_aes,3L - -#define SN_aes_128_cfb128 "AES-128-CFB" -#define LN_aes_128_cfb128 "aes-128-cfb" -#define NID_aes_128_cfb128 421 -#define OBJ_aes_128_cfb128 OBJ_aes,4L - -#define SN_id_aes128_wrap "id-aes128-wrap" -#define NID_id_aes128_wrap 788 -#define OBJ_id_aes128_wrap OBJ_aes,5L - -#define SN_aes_128_gcm "id-aes128-GCM" -#define LN_aes_128_gcm "aes-128-gcm" -#define NID_aes_128_gcm 895 -#define OBJ_aes_128_gcm OBJ_aes,6L - -#define SN_aes_128_ccm "id-aes128-CCM" -#define LN_aes_128_ccm "aes-128-ccm" -#define NID_aes_128_ccm 896 -#define OBJ_aes_128_ccm OBJ_aes,7L - -#define SN_id_aes128_wrap_pad "id-aes128-wrap-pad" -#define NID_id_aes128_wrap_pad 897 -#define OBJ_id_aes128_wrap_pad OBJ_aes,8L - -#define SN_aes_192_ecb "AES-192-ECB" -#define LN_aes_192_ecb "aes-192-ecb" -#define NID_aes_192_ecb 422 -#define OBJ_aes_192_ecb OBJ_aes,21L - -#define SN_aes_192_cbc "AES-192-CBC" -#define LN_aes_192_cbc "aes-192-cbc" -#define NID_aes_192_cbc 423 -#define OBJ_aes_192_cbc OBJ_aes,22L - -#define SN_aes_192_ofb128 "AES-192-OFB" -#define LN_aes_192_ofb128 "aes-192-ofb" -#define NID_aes_192_ofb128 424 -#define OBJ_aes_192_ofb128 OBJ_aes,23L - -#define SN_aes_192_cfb128 "AES-192-CFB" -#define LN_aes_192_cfb128 "aes-192-cfb" -#define NID_aes_192_cfb128 425 -#define OBJ_aes_192_cfb128 OBJ_aes,24L - -#define SN_id_aes192_wrap "id-aes192-wrap" -#define NID_id_aes192_wrap 789 -#define OBJ_id_aes192_wrap OBJ_aes,25L - -#define SN_aes_192_gcm "id-aes192-GCM" -#define LN_aes_192_gcm "aes-192-gcm" -#define NID_aes_192_gcm 898 -#define OBJ_aes_192_gcm OBJ_aes,26L - -#define SN_aes_192_ccm "id-aes192-CCM" -#define LN_aes_192_ccm "aes-192-ccm" -#define NID_aes_192_ccm 899 -#define OBJ_aes_192_ccm OBJ_aes,27L - -#define SN_id_aes192_wrap_pad "id-aes192-wrap-pad" -#define NID_id_aes192_wrap_pad 900 -#define OBJ_id_aes192_wrap_pad OBJ_aes,28L - -#define SN_aes_256_ecb "AES-256-ECB" -#define LN_aes_256_ecb "aes-256-ecb" -#define NID_aes_256_ecb 426 -#define OBJ_aes_256_ecb OBJ_aes,41L - -#define SN_aes_256_cbc "AES-256-CBC" -#define LN_aes_256_cbc "aes-256-cbc" -#define NID_aes_256_cbc 427 -#define OBJ_aes_256_cbc OBJ_aes,42L - -#define SN_aes_256_ofb128 "AES-256-OFB" -#define LN_aes_256_ofb128 "aes-256-ofb" -#define NID_aes_256_ofb128 428 -#define OBJ_aes_256_ofb128 OBJ_aes,43L - -#define SN_aes_256_cfb128 "AES-256-CFB" -#define LN_aes_256_cfb128 "aes-256-cfb" -#define NID_aes_256_cfb128 429 -#define OBJ_aes_256_cfb128 OBJ_aes,44L - -#define SN_id_aes256_wrap "id-aes256-wrap" -#define NID_id_aes256_wrap 790 -#define OBJ_id_aes256_wrap OBJ_aes,45L - -#define SN_aes_256_gcm "id-aes256-GCM" -#define LN_aes_256_gcm "aes-256-gcm" -#define NID_aes_256_gcm 901 -#define OBJ_aes_256_gcm OBJ_aes,46L - -#define SN_aes_256_ccm "id-aes256-CCM" -#define LN_aes_256_ccm "aes-256-ccm" -#define NID_aes_256_ccm 902 -#define OBJ_aes_256_ccm OBJ_aes,47L - -#define SN_id_aes256_wrap_pad "id-aes256-wrap-pad" -#define NID_id_aes256_wrap_pad 903 -#define OBJ_id_aes256_wrap_pad OBJ_aes,48L - -#define SN_aes_128_xts "AES-128-XTS" -#define LN_aes_128_xts "aes-128-xts" -#define NID_aes_128_xts 913 -#define OBJ_aes_128_xts OBJ_ieee_siswg,0L,1L,1L - -#define SN_aes_256_xts "AES-256-XTS" -#define LN_aes_256_xts "aes-256-xts" -#define NID_aes_256_xts 914 -#define OBJ_aes_256_xts OBJ_ieee_siswg,0L,1L,2L - -#define SN_aes_128_cfb1 "AES-128-CFB1" -#define LN_aes_128_cfb1 "aes-128-cfb1" -#define NID_aes_128_cfb1 650 - -#define SN_aes_192_cfb1 "AES-192-CFB1" -#define LN_aes_192_cfb1 "aes-192-cfb1" -#define NID_aes_192_cfb1 651 - -#define SN_aes_256_cfb1 "AES-256-CFB1" -#define LN_aes_256_cfb1 "aes-256-cfb1" -#define NID_aes_256_cfb1 652 - -#define SN_aes_128_cfb8 "AES-128-CFB8" -#define LN_aes_128_cfb8 "aes-128-cfb8" -#define NID_aes_128_cfb8 653 - -#define SN_aes_192_cfb8 "AES-192-CFB8" -#define LN_aes_192_cfb8 "aes-192-cfb8" -#define NID_aes_192_cfb8 654 - -#define SN_aes_256_cfb8 "AES-256-CFB8" -#define LN_aes_256_cfb8 "aes-256-cfb8" -#define NID_aes_256_cfb8 655 - -#define SN_aes_128_ctr "AES-128-CTR" -#define LN_aes_128_ctr "aes-128-ctr" -#define NID_aes_128_ctr 904 - -#define SN_aes_192_ctr "AES-192-CTR" -#define LN_aes_192_ctr "aes-192-ctr" -#define NID_aes_192_ctr 905 - -#define SN_aes_256_ctr "AES-256-CTR" -#define LN_aes_256_ctr "aes-256-ctr" -#define NID_aes_256_ctr 906 - -#define SN_aes_128_ocb "AES-128-OCB" -#define LN_aes_128_ocb "aes-128-ocb" -#define NID_aes_128_ocb 958 - -#define SN_aes_192_ocb "AES-192-OCB" -#define LN_aes_192_ocb "aes-192-ocb" -#define NID_aes_192_ocb 959 - -#define SN_aes_256_ocb "AES-256-OCB" -#define LN_aes_256_ocb "aes-256-ocb" -#define NID_aes_256_ocb 960 - -#define SN_des_cfb1 "DES-CFB1" -#define LN_des_cfb1 "des-cfb1" -#define NID_des_cfb1 656 - -#define SN_des_cfb8 "DES-CFB8" -#define LN_des_cfb8 "des-cfb8" -#define NID_des_cfb8 657 - -#define SN_des_ede3_cfb1 "DES-EDE3-CFB1" -#define LN_des_ede3_cfb1 "des-ede3-cfb1" -#define NID_des_ede3_cfb1 658 - -#define SN_des_ede3_cfb8 "DES-EDE3-CFB8" -#define LN_des_ede3_cfb8 "des-ede3-cfb8" -#define NID_des_ede3_cfb8 659 - -#define OBJ_nist_hashalgs OBJ_nistAlgorithms,2L - -#define SN_sha256 "SHA256" -#define LN_sha256 "sha256" -#define NID_sha256 672 -#define OBJ_sha256 OBJ_nist_hashalgs,1L - -#define SN_sha384 "SHA384" -#define LN_sha384 "sha384" -#define NID_sha384 673 -#define OBJ_sha384 OBJ_nist_hashalgs,2L - -#define SN_sha512 "SHA512" -#define LN_sha512 "sha512" -#define NID_sha512 674 -#define OBJ_sha512 OBJ_nist_hashalgs,3L - -#define SN_sha224 "SHA224" -#define LN_sha224 "sha224" -#define NID_sha224 675 -#define OBJ_sha224 OBJ_nist_hashalgs,4L - -#define SN_sha512_224 "SHA512-224" -#define LN_sha512_224 "sha512-224" -#define NID_sha512_224 1094 -#define OBJ_sha512_224 OBJ_nist_hashalgs,5L - -#define SN_sha512_256 "SHA512-256" -#define LN_sha512_256 "sha512-256" -#define NID_sha512_256 1095 -#define OBJ_sha512_256 OBJ_nist_hashalgs,6L - -#define SN_sha3_224 "SHA3-224" -#define LN_sha3_224 "sha3-224" -#define NID_sha3_224 1096 -#define OBJ_sha3_224 OBJ_nist_hashalgs,7L - -#define SN_sha3_256 "SHA3-256" -#define LN_sha3_256 "sha3-256" -#define NID_sha3_256 1097 -#define OBJ_sha3_256 OBJ_nist_hashalgs,8L - -#define SN_sha3_384 "SHA3-384" -#define LN_sha3_384 "sha3-384" -#define NID_sha3_384 1098 -#define OBJ_sha3_384 OBJ_nist_hashalgs,9L - -#define SN_sha3_512 "SHA3-512" -#define LN_sha3_512 "sha3-512" -#define NID_sha3_512 1099 -#define OBJ_sha3_512 OBJ_nist_hashalgs,10L - -#define SN_shake128 "SHAKE128" -#define LN_shake128 "shake128" -#define NID_shake128 1100 -#define OBJ_shake128 OBJ_nist_hashalgs,11L - -#define SN_shake256 "SHAKE256" -#define LN_shake256 "shake256" -#define NID_shake256 1101 -#define OBJ_shake256 OBJ_nist_hashalgs,12L - -#define SN_hmac_sha3_224 "id-hmacWithSHA3-224" -#define LN_hmac_sha3_224 "hmac-sha3-224" -#define NID_hmac_sha3_224 1102 -#define OBJ_hmac_sha3_224 OBJ_nist_hashalgs,13L - -#define SN_hmac_sha3_256 "id-hmacWithSHA3-256" -#define LN_hmac_sha3_256 "hmac-sha3-256" -#define NID_hmac_sha3_256 1103 -#define OBJ_hmac_sha3_256 OBJ_nist_hashalgs,14L - -#define SN_hmac_sha3_384 "id-hmacWithSHA3-384" -#define LN_hmac_sha3_384 "hmac-sha3-384" -#define NID_hmac_sha3_384 1104 -#define OBJ_hmac_sha3_384 OBJ_nist_hashalgs,15L - -#define SN_hmac_sha3_512 "id-hmacWithSHA3-512" -#define LN_hmac_sha3_512 "hmac-sha3-512" -#define NID_hmac_sha3_512 1105 -#define OBJ_hmac_sha3_512 OBJ_nist_hashalgs,16L - -#define SN_kmac128 "KMAC128" -#define LN_kmac128 "kmac128" -#define NID_kmac128 1196 -#define OBJ_kmac128 OBJ_nist_hashalgs,19L - -#define SN_kmac256 "KMAC256" -#define LN_kmac256 "kmac256" -#define NID_kmac256 1197 -#define OBJ_kmac256 OBJ_nist_hashalgs,20L - -#define OBJ_dsa_with_sha2 OBJ_nistAlgorithms,3L - -#define SN_dsa_with_SHA224 "dsa_with_SHA224" -#define NID_dsa_with_SHA224 802 -#define OBJ_dsa_with_SHA224 OBJ_dsa_with_sha2,1L - -#define SN_dsa_with_SHA256 "dsa_with_SHA256" -#define NID_dsa_with_SHA256 803 -#define OBJ_dsa_with_SHA256 OBJ_dsa_with_sha2,2L - -#define OBJ_sigAlgs OBJ_nistAlgorithms,3L - -#define SN_dsa_with_SHA384 "id-dsa-with-sha384" -#define LN_dsa_with_SHA384 "dsa_with_SHA384" -#define NID_dsa_with_SHA384 1106 -#define OBJ_dsa_with_SHA384 OBJ_sigAlgs,3L - -#define SN_dsa_with_SHA512 "id-dsa-with-sha512" -#define LN_dsa_with_SHA512 "dsa_with_SHA512" -#define NID_dsa_with_SHA512 1107 -#define OBJ_dsa_with_SHA512 OBJ_sigAlgs,4L - -#define SN_dsa_with_SHA3_224 "id-dsa-with-sha3-224" -#define LN_dsa_with_SHA3_224 "dsa_with_SHA3-224" -#define NID_dsa_with_SHA3_224 1108 -#define OBJ_dsa_with_SHA3_224 OBJ_sigAlgs,5L - -#define SN_dsa_with_SHA3_256 "id-dsa-with-sha3-256" -#define LN_dsa_with_SHA3_256 "dsa_with_SHA3-256" -#define NID_dsa_with_SHA3_256 1109 -#define OBJ_dsa_with_SHA3_256 OBJ_sigAlgs,6L - -#define SN_dsa_with_SHA3_384 "id-dsa-with-sha3-384" -#define LN_dsa_with_SHA3_384 "dsa_with_SHA3-384" -#define NID_dsa_with_SHA3_384 1110 -#define OBJ_dsa_with_SHA3_384 OBJ_sigAlgs,7L - -#define SN_dsa_with_SHA3_512 "id-dsa-with-sha3-512" -#define LN_dsa_with_SHA3_512 "dsa_with_SHA3-512" -#define NID_dsa_with_SHA3_512 1111 -#define OBJ_dsa_with_SHA3_512 OBJ_sigAlgs,8L - -#define SN_ecdsa_with_SHA3_224 "id-ecdsa-with-sha3-224" -#define LN_ecdsa_with_SHA3_224 "ecdsa_with_SHA3-224" -#define NID_ecdsa_with_SHA3_224 1112 -#define OBJ_ecdsa_with_SHA3_224 OBJ_sigAlgs,9L - -#define SN_ecdsa_with_SHA3_256 "id-ecdsa-with-sha3-256" -#define LN_ecdsa_with_SHA3_256 "ecdsa_with_SHA3-256" -#define NID_ecdsa_with_SHA3_256 1113 -#define OBJ_ecdsa_with_SHA3_256 OBJ_sigAlgs,10L - -#define SN_ecdsa_with_SHA3_384 "id-ecdsa-with-sha3-384" -#define LN_ecdsa_with_SHA3_384 "ecdsa_with_SHA3-384" -#define NID_ecdsa_with_SHA3_384 1114 -#define OBJ_ecdsa_with_SHA3_384 OBJ_sigAlgs,11L - -#define SN_ecdsa_with_SHA3_512 "id-ecdsa-with-sha3-512" -#define LN_ecdsa_with_SHA3_512 "ecdsa_with_SHA3-512" -#define NID_ecdsa_with_SHA3_512 1115 -#define OBJ_ecdsa_with_SHA3_512 OBJ_sigAlgs,12L - -#define SN_RSA_SHA3_224 "id-rsassa-pkcs1-v1_5-with-sha3-224" -#define LN_RSA_SHA3_224 "RSA-SHA3-224" -#define NID_RSA_SHA3_224 1116 -#define OBJ_RSA_SHA3_224 OBJ_sigAlgs,13L - -#define SN_RSA_SHA3_256 "id-rsassa-pkcs1-v1_5-with-sha3-256" -#define LN_RSA_SHA3_256 "RSA-SHA3-256" -#define NID_RSA_SHA3_256 1117 -#define OBJ_RSA_SHA3_256 OBJ_sigAlgs,14L - -#define SN_RSA_SHA3_384 "id-rsassa-pkcs1-v1_5-with-sha3-384" -#define LN_RSA_SHA3_384 "RSA-SHA3-384" -#define NID_RSA_SHA3_384 1118 -#define OBJ_RSA_SHA3_384 OBJ_sigAlgs,15L - -#define SN_RSA_SHA3_512 "id-rsassa-pkcs1-v1_5-with-sha3-512" -#define LN_RSA_SHA3_512 "RSA-SHA3-512" -#define NID_RSA_SHA3_512 1119 -#define OBJ_RSA_SHA3_512 OBJ_sigAlgs,16L - -#define SN_ML_DSA_44 "id-ml-dsa-44" -#define LN_ML_DSA_44 "ML-DSA-44" -#define NID_ML_DSA_44 1457 -#define OBJ_ML_DSA_44 OBJ_sigAlgs,17L - -#define SN_ML_DSA_65 "id-ml-dsa-65" -#define LN_ML_DSA_65 "ML-DSA-65" -#define NID_ML_DSA_65 1458 -#define OBJ_ML_DSA_65 OBJ_sigAlgs,18L - -#define SN_ML_DSA_87 "id-ml-dsa-87" -#define LN_ML_DSA_87 "ML-DSA-87" -#define NID_ML_DSA_87 1459 -#define OBJ_ML_DSA_87 OBJ_sigAlgs,19L - -#define SN_SLH_DSA_SHA2_128s "id-slh-dsa-sha2-128s" -#define LN_SLH_DSA_SHA2_128s "SLH-DSA-SHA2-128s" -#define NID_SLH_DSA_SHA2_128s 1460 -#define OBJ_SLH_DSA_SHA2_128s OBJ_sigAlgs,20L - -#define SN_SLH_DSA_SHA2_128f "id-slh-dsa-sha2-128f" -#define LN_SLH_DSA_SHA2_128f "SLH-DSA-SHA2-128f" -#define NID_SLH_DSA_SHA2_128f 1461 -#define OBJ_SLH_DSA_SHA2_128f OBJ_sigAlgs,21L - -#define SN_SLH_DSA_SHA2_192s "id-slh-dsa-sha2-192s" -#define LN_SLH_DSA_SHA2_192s "SLH-DSA-SHA2-192s" -#define NID_SLH_DSA_SHA2_192s 1462 -#define OBJ_SLH_DSA_SHA2_192s OBJ_sigAlgs,22L - -#define SN_SLH_DSA_SHA2_192f "id-slh-dsa-sha2-192f" -#define LN_SLH_DSA_SHA2_192f "SLH-DSA-SHA2-192f" -#define NID_SLH_DSA_SHA2_192f 1463 -#define OBJ_SLH_DSA_SHA2_192f OBJ_sigAlgs,23L - -#define SN_SLH_DSA_SHA2_256s "id-slh-dsa-sha2-256s" -#define LN_SLH_DSA_SHA2_256s "SLH-DSA-SHA2-256s" -#define NID_SLH_DSA_SHA2_256s 1464 -#define OBJ_SLH_DSA_SHA2_256s OBJ_sigAlgs,24L - -#define SN_SLH_DSA_SHA2_256f "id-slh-dsa-sha2-256f" -#define LN_SLH_DSA_SHA2_256f "SLH-DSA-SHA2-256f" -#define NID_SLH_DSA_SHA2_256f 1465 -#define OBJ_SLH_DSA_SHA2_256f OBJ_sigAlgs,25L - -#define SN_SLH_DSA_SHAKE_128s "id-slh-dsa-shake-128s" -#define LN_SLH_DSA_SHAKE_128s "SLH-DSA-SHAKE-128s" -#define NID_SLH_DSA_SHAKE_128s 1466 -#define OBJ_SLH_DSA_SHAKE_128s OBJ_sigAlgs,26L - -#define SN_SLH_DSA_SHAKE_128f "id-slh-dsa-shake-128f" -#define LN_SLH_DSA_SHAKE_128f "SLH-DSA-SHAKE-128f" -#define NID_SLH_DSA_SHAKE_128f 1467 -#define OBJ_SLH_DSA_SHAKE_128f OBJ_sigAlgs,27L - -#define SN_SLH_DSA_SHAKE_192s "id-slh-dsa-shake-192s" -#define LN_SLH_DSA_SHAKE_192s "SLH-DSA-SHAKE-192s" -#define NID_SLH_DSA_SHAKE_192s 1468 -#define OBJ_SLH_DSA_SHAKE_192s OBJ_sigAlgs,28L - -#define SN_SLH_DSA_SHAKE_192f "id-slh-dsa-shake-192f" -#define LN_SLH_DSA_SHAKE_192f "SLH-DSA-SHAKE-192f" -#define NID_SLH_DSA_SHAKE_192f 1469 -#define OBJ_SLH_DSA_SHAKE_192f OBJ_sigAlgs,29L - -#define SN_SLH_DSA_SHAKE_256s "id-slh-dsa-shake-256s" -#define LN_SLH_DSA_SHAKE_256s "SLH-DSA-SHAKE-256s" -#define NID_SLH_DSA_SHAKE_256s 1470 -#define OBJ_SLH_DSA_SHAKE_256s OBJ_sigAlgs,30L - -#define SN_SLH_DSA_SHAKE_256f "id-slh-dsa-shake-256f" -#define LN_SLH_DSA_SHAKE_256f "SLH-DSA-SHAKE-256f" -#define NID_SLH_DSA_SHAKE_256f 1471 -#define OBJ_SLH_DSA_SHAKE_256f OBJ_sigAlgs,31L - -#define SN_HASH_ML_DSA_44_WITH_SHA512 "id-hash-ml-dsa-44-with-sha512" -#define LN_HASH_ML_DSA_44_WITH_SHA512 "HASH-ML-DSA-44-WITH-SHA512" -#define NID_HASH_ML_DSA_44_WITH_SHA512 1472 -#define OBJ_HASH_ML_DSA_44_WITH_SHA512 OBJ_sigAlgs,32L - -#define SN_HASH_ML_DSA_65_WITH_SHA512 "id-hash-ml-dsa-65-with-sha512" -#define LN_HASH_ML_DSA_65_WITH_SHA512 "HASH-ML-DSA-65-WITH-SHA512" -#define NID_HASH_ML_DSA_65_WITH_SHA512 1473 -#define OBJ_HASH_ML_DSA_65_WITH_SHA512 OBJ_sigAlgs,33L - -#define SN_HASH_ML_DSA_87_WITH_SHA512 "id-hash-ml-dsa-87-with-sha512" -#define LN_HASH_ML_DSA_87_WITH_SHA512 "HASH-ML-DSA-87-WITH-SHA512" -#define NID_HASH_ML_DSA_87_WITH_SHA512 1474 -#define OBJ_HASH_ML_DSA_87_WITH_SHA512 OBJ_sigAlgs,34L - -#define SN_SLH_DSA_SHA2_128s_WITH_SHA256 "id-hash-slh-dsa-sha2-128s-with-sha256" -#define LN_SLH_DSA_SHA2_128s_WITH_SHA256 "SLH-DSA-SHA2-128s-WITH-SHA256" -#define NID_SLH_DSA_SHA2_128s_WITH_SHA256 1475 -#define OBJ_SLH_DSA_SHA2_128s_WITH_SHA256 OBJ_sigAlgs,35L - -#define SN_SLH_DSA_SHA2_128f_WITH_SHA256 "id-hash-slh-dsa-sha2-128f-with-sha256" -#define LN_SLH_DSA_SHA2_128f_WITH_SHA256 "SLH-DSA-SHA2-128f-WITH-SHA256" -#define NID_SLH_DSA_SHA2_128f_WITH_SHA256 1476 -#define OBJ_SLH_DSA_SHA2_128f_WITH_SHA256 OBJ_sigAlgs,36L - -#define SN_SLH_DSA_SHA2_192s_WITH_SHA512 "id-hash-slh-dsa-sha2-192s-with-sha512" -#define LN_SLH_DSA_SHA2_192s_WITH_SHA512 "SLH-DSA-SHA2-192s-WITH-SHA512" -#define NID_SLH_DSA_SHA2_192s_WITH_SHA512 1477 -#define OBJ_SLH_DSA_SHA2_192s_WITH_SHA512 OBJ_sigAlgs,37L - -#define SN_SLH_DSA_SHA2_192f_WITH_SHA512 "id-hash-slh-dsa-sha2-192f-with-sha512" -#define LN_SLH_DSA_SHA2_192f_WITH_SHA512 "SLH-DSA-SHA2-192f-WITH-SHA512" -#define NID_SLH_DSA_SHA2_192f_WITH_SHA512 1478 -#define OBJ_SLH_DSA_SHA2_192f_WITH_SHA512 OBJ_sigAlgs,38L - -#define SN_SLH_DSA_SHA2_256s_WITH_SHA512 "id-hash-slh-dsa-sha2-256s-with-sha512" -#define LN_SLH_DSA_SHA2_256s_WITH_SHA512 "SLH-DSA-SHA2-256s-WITH-SHA512" -#define NID_SLH_DSA_SHA2_256s_WITH_SHA512 1479 -#define OBJ_SLH_DSA_SHA2_256s_WITH_SHA512 OBJ_sigAlgs,39L - -#define SN_SLH_DSA_SHA2_256f_WITH_SHA512 "id-hash-slh-dsa-sha2-256f-with-sha512" -#define LN_SLH_DSA_SHA2_256f_WITH_SHA512 "SLH-DSA-SHA2-256f-WITH-SHA512" -#define NID_SLH_DSA_SHA2_256f_WITH_SHA512 1480 -#define OBJ_SLH_DSA_SHA2_256f_WITH_SHA512 OBJ_sigAlgs,40L - -#define SN_SLH_DSA_SHAKE_128s_WITH_SHAKE128 "id-hash-slh-dsa-shake-128s-with-shake128" -#define LN_SLH_DSA_SHAKE_128s_WITH_SHAKE128 "SLH-DSA-SHAKE-128s-WITH-SHAKE128" -#define NID_SLH_DSA_SHAKE_128s_WITH_SHAKE128 1481 -#define OBJ_SLH_DSA_SHAKE_128s_WITH_SHAKE128 OBJ_sigAlgs,41L - -#define SN_SLH_DSA_SHAKE_128f_WITH_SHAKE128 "id-hash-slh-dsa-shake-128f-with-shake128" -#define LN_SLH_DSA_SHAKE_128f_WITH_SHAKE128 "SLH-DSA-SHAKE-128f-WITH-SHAKE128" -#define NID_SLH_DSA_SHAKE_128f_WITH_SHAKE128 1482 -#define OBJ_SLH_DSA_SHAKE_128f_WITH_SHAKE128 OBJ_sigAlgs,42L - -#define SN_SLH_DSA_SHAKE_192s_WITH_SHAKE256 "id-hash-slh-dsa-shake-192s-with-shake256" -#define LN_SLH_DSA_SHAKE_192s_WITH_SHAKE256 "SLH-DSA-SHAKE-192s-WITH-SHAKE256" -#define NID_SLH_DSA_SHAKE_192s_WITH_SHAKE256 1483 -#define OBJ_SLH_DSA_SHAKE_192s_WITH_SHAKE256 OBJ_sigAlgs,43L - -#define SN_SLH_DSA_SHAKE_192f_WITH_SHAKE256 "id-hash-slh-dsa-shake-192f-with-shake256" -#define LN_SLH_DSA_SHAKE_192f_WITH_SHAKE256 "SLH-DSA-SHAKE-192f-WITH-SHAKE256" -#define NID_SLH_DSA_SHAKE_192f_WITH_SHAKE256 1484 -#define OBJ_SLH_DSA_SHAKE_192f_WITH_SHAKE256 OBJ_sigAlgs,44L - -#define SN_SLH_DSA_SHAKE_256s_WITH_SHAKE256 "id-hash-slh-dsa-shake-256s-with-shake256" -#define LN_SLH_DSA_SHAKE_256s_WITH_SHAKE256 "SLH-DSA-SHAKE-256s-WITH-SHAKE256" -#define NID_SLH_DSA_SHAKE_256s_WITH_SHAKE256 1485 -#define OBJ_SLH_DSA_SHAKE_256s_WITH_SHAKE256 OBJ_sigAlgs,45L - -#define SN_SLH_DSA_SHAKE_256f_WITH_SHAKE256 "id-hash-slh-dsa-shake-256f-with-shake256" -#define LN_SLH_DSA_SHAKE_256f_WITH_SHAKE256 "SLH-DSA-SHAKE-256f-WITH-SHAKE256" -#define NID_SLH_DSA_SHAKE_256f_WITH_SHAKE256 1486 -#define OBJ_SLH_DSA_SHAKE_256f_WITH_SHAKE256 OBJ_sigAlgs,46L - -#define SN_hold_instruction_code "holdInstructionCode" -#define LN_hold_instruction_code "Hold Instruction Code" -#define NID_hold_instruction_code 430 -#define OBJ_hold_instruction_code OBJ_id_ce,23L - -#define OBJ_holdInstruction OBJ_X9_57,2L - -#define SN_hold_instruction_none "holdInstructionNone" -#define LN_hold_instruction_none "Hold Instruction None" -#define NID_hold_instruction_none 431 -#define OBJ_hold_instruction_none OBJ_holdInstruction,1L - -#define SN_hold_instruction_call_issuer "holdInstructionCallIssuer" -#define LN_hold_instruction_call_issuer "Hold Instruction Call Issuer" -#define NID_hold_instruction_call_issuer 432 -#define OBJ_hold_instruction_call_issuer OBJ_holdInstruction,2L - -#define SN_hold_instruction_reject "holdInstructionReject" -#define LN_hold_instruction_reject "Hold Instruction Reject" -#define NID_hold_instruction_reject 433 -#define OBJ_hold_instruction_reject OBJ_holdInstruction,3L - -#define SN_itu_t_identified_organization "itu-t-identified-organization" -#define NID_itu_t_identified_organization 1264 -#define OBJ_itu_t_identified_organization OBJ_itu_t,4L - -#define SN_etsi "etsi" -#define NID_etsi 1265 -#define OBJ_etsi OBJ_itu_t_identified_organization,0L - -#define SN_electronic_signature_standard "electronic-signature-standard" -#define NID_electronic_signature_standard 1266 -#define OBJ_electronic_signature_standard OBJ_etsi,1733L - -#define SN_ess_attributes "ess-attributes" -#define NID_ess_attributes 1267 -#define OBJ_ess_attributes OBJ_electronic_signature_standard,2L - -#define SN_id_aa_ets_mimeType "id-aa-ets-mimeType" -#define NID_id_aa_ets_mimeType 1268 -#define OBJ_id_aa_ets_mimeType OBJ_ess_attributes,1L - -#define SN_id_aa_ets_longTermValidation "id-aa-ets-longTermValidation" -#define NID_id_aa_ets_longTermValidation 1269 -#define OBJ_id_aa_ets_longTermValidation OBJ_ess_attributes,2L - -#define SN_id_aa_ets_SignaturePolicyDocument "id-aa-ets-SignaturePolicyDocument" -#define NID_id_aa_ets_SignaturePolicyDocument 1270 -#define OBJ_id_aa_ets_SignaturePolicyDocument OBJ_ess_attributes,3L - -#define SN_id_aa_ets_archiveTimestampV3 "id-aa-ets-archiveTimestampV3" -#define NID_id_aa_ets_archiveTimestampV3 1271 -#define OBJ_id_aa_ets_archiveTimestampV3 OBJ_ess_attributes,4L - -#define SN_id_aa_ATSHashIndex "id-aa-ATSHashIndex" -#define NID_id_aa_ATSHashIndex 1272 -#define OBJ_id_aa_ATSHashIndex OBJ_ess_attributes,5L - -#define SN_cades "cades" -#define NID_cades 1273 -#define OBJ_cades OBJ_etsi,19122L - -#define SN_cades_attributes "cades-attributes" -#define NID_cades_attributes 1274 -#define OBJ_cades_attributes OBJ_cades,1L - -#define SN_id_aa_ets_signerAttrV2 "id-aa-ets-signerAttrV2" -#define NID_id_aa_ets_signerAttrV2 1275 -#define OBJ_id_aa_ets_signerAttrV2 OBJ_cades_attributes,1L - -#define SN_id_aa_ets_sigPolicyStore "id-aa-ets-sigPolicyStore" -#define NID_id_aa_ets_sigPolicyStore 1276 -#define OBJ_id_aa_ets_sigPolicyStore OBJ_cades_attributes,3L - -#define SN_id_aa_ATSHashIndex_v2 "id-aa-ATSHashIndex-v2" -#define NID_id_aa_ATSHashIndex_v2 1277 -#define OBJ_id_aa_ATSHashIndex_v2 OBJ_cades_attributes,4L - -#define SN_id_aa_ATSHashIndex_v3 "id-aa-ATSHashIndex-v3" -#define NID_id_aa_ATSHashIndex_v3 1278 -#define OBJ_id_aa_ATSHashIndex_v3 OBJ_cades_attributes,5L - -#define SN_signedAssertion "signedAssertion" -#define NID_signedAssertion 1279 -#define OBJ_signedAssertion OBJ_cades_attributes,6L - -#define SN_data "data" -#define NID_data 434 -#define OBJ_data OBJ_itu_t,9L - -#define SN_pss "pss" -#define NID_pss 435 -#define OBJ_pss OBJ_data,2342L - -#define SN_ucl "ucl" -#define NID_ucl 436 -#define OBJ_ucl OBJ_pss,19200300L - -#define SN_pilot "pilot" -#define NID_pilot 437 -#define OBJ_pilot OBJ_ucl,100L - -#define LN_pilotAttributeType "pilotAttributeType" -#define NID_pilotAttributeType 438 -#define OBJ_pilotAttributeType OBJ_pilot,1L - -#define LN_pilotAttributeSyntax "pilotAttributeSyntax" -#define NID_pilotAttributeSyntax 439 -#define OBJ_pilotAttributeSyntax OBJ_pilot,3L - -#define LN_pilotObjectClass "pilotObjectClass" -#define NID_pilotObjectClass 440 -#define OBJ_pilotObjectClass OBJ_pilot,4L - -#define LN_pilotGroups "pilotGroups" -#define NID_pilotGroups 441 -#define OBJ_pilotGroups OBJ_pilot,10L - -#define LN_iA5StringSyntax "iA5StringSyntax" -#define NID_iA5StringSyntax 442 -#define OBJ_iA5StringSyntax OBJ_pilotAttributeSyntax,4L - -#define LN_caseIgnoreIA5StringSyntax "caseIgnoreIA5StringSyntax" -#define NID_caseIgnoreIA5StringSyntax 443 -#define OBJ_caseIgnoreIA5StringSyntax OBJ_pilotAttributeSyntax,5L - -#define LN_pilotObject "pilotObject" -#define NID_pilotObject 444 -#define OBJ_pilotObject OBJ_pilotObjectClass,3L - -#define LN_pilotPerson "pilotPerson" -#define NID_pilotPerson 445 -#define OBJ_pilotPerson OBJ_pilotObjectClass,4L - -#define SN_account "account" -#define NID_account 446 -#define OBJ_account OBJ_pilotObjectClass,5L - -#define SN_document "document" -#define NID_document 447 -#define OBJ_document OBJ_pilotObjectClass,6L - -#define SN_room "room" -#define NID_room 448 -#define OBJ_room OBJ_pilotObjectClass,7L - -#define LN_documentSeries "documentSeries" -#define NID_documentSeries 449 -#define OBJ_documentSeries OBJ_pilotObjectClass,9L - -#define SN_Domain "domain" -#define LN_Domain "Domain" -#define NID_Domain 392 -#define OBJ_Domain OBJ_pilotObjectClass,13L - -#define LN_rFC822localPart "rFC822localPart" -#define NID_rFC822localPart 450 -#define OBJ_rFC822localPart OBJ_pilotObjectClass,14L - -#define LN_dNSDomain "dNSDomain" -#define NID_dNSDomain 451 -#define OBJ_dNSDomain OBJ_pilotObjectClass,15L - -#define LN_domainRelatedObject "domainRelatedObject" -#define NID_domainRelatedObject 452 -#define OBJ_domainRelatedObject OBJ_pilotObjectClass,17L - -#define LN_friendlyCountry "friendlyCountry" -#define NID_friendlyCountry 453 -#define OBJ_friendlyCountry OBJ_pilotObjectClass,18L - -#define LN_simpleSecurityObject "simpleSecurityObject" -#define NID_simpleSecurityObject 454 -#define OBJ_simpleSecurityObject OBJ_pilotObjectClass,19L - -#define LN_pilotOrganization "pilotOrganization" -#define NID_pilotOrganization 455 -#define OBJ_pilotOrganization OBJ_pilotObjectClass,20L - -#define LN_pilotDSA "pilotDSA" -#define NID_pilotDSA 456 -#define OBJ_pilotDSA OBJ_pilotObjectClass,21L - -#define LN_qualityLabelledData "qualityLabelledData" -#define NID_qualityLabelledData 457 -#define OBJ_qualityLabelledData OBJ_pilotObjectClass,22L - -#define SN_userId "UID" -#define LN_userId "userId" -#define NID_userId 458 -#define OBJ_userId OBJ_pilotAttributeType,1L - -#define LN_textEncodedORAddress "textEncodedORAddress" -#define NID_textEncodedORAddress 459 -#define OBJ_textEncodedORAddress OBJ_pilotAttributeType,2L - -#define SN_rfc822Mailbox "mail" -#define LN_rfc822Mailbox "rfc822Mailbox" -#define NID_rfc822Mailbox 460 -#define OBJ_rfc822Mailbox OBJ_pilotAttributeType,3L - -#define SN_info "info" -#define NID_info 461 -#define OBJ_info OBJ_pilotAttributeType,4L - -#define LN_favouriteDrink "favouriteDrink" -#define NID_favouriteDrink 462 -#define OBJ_favouriteDrink OBJ_pilotAttributeType,5L - -#define LN_roomNumber "roomNumber" -#define NID_roomNumber 463 -#define OBJ_roomNumber OBJ_pilotAttributeType,6L - -#define SN_photo "photo" -#define NID_photo 464 -#define OBJ_photo OBJ_pilotAttributeType,7L - -#define LN_userClass "userClass" -#define NID_userClass 465 -#define OBJ_userClass OBJ_pilotAttributeType,8L - -#define SN_host "host" -#define NID_host 466 -#define OBJ_host OBJ_pilotAttributeType,9L - -#define SN_manager "manager" -#define NID_manager 467 -#define OBJ_manager OBJ_pilotAttributeType,10L - -#define LN_documentIdentifier "documentIdentifier" -#define NID_documentIdentifier 468 -#define OBJ_documentIdentifier OBJ_pilotAttributeType,11L - -#define LN_documentTitle "documentTitle" -#define NID_documentTitle 469 -#define OBJ_documentTitle OBJ_pilotAttributeType,12L - -#define LN_documentVersion "documentVersion" -#define NID_documentVersion 470 -#define OBJ_documentVersion OBJ_pilotAttributeType,13L - -#define LN_documentAuthor "documentAuthor" -#define NID_documentAuthor 471 -#define OBJ_documentAuthor OBJ_pilotAttributeType,14L - -#define LN_documentLocation "documentLocation" -#define NID_documentLocation 472 -#define OBJ_documentLocation OBJ_pilotAttributeType,15L - -#define LN_homeTelephoneNumber "homeTelephoneNumber" -#define NID_homeTelephoneNumber 473 -#define OBJ_homeTelephoneNumber OBJ_pilotAttributeType,20L - -#define SN_secretary "secretary" -#define NID_secretary 474 -#define OBJ_secretary OBJ_pilotAttributeType,21L - -#define LN_otherMailbox "otherMailbox" -#define NID_otherMailbox 475 -#define OBJ_otherMailbox OBJ_pilotAttributeType,22L - -#define LN_lastModifiedTime "lastModifiedTime" -#define NID_lastModifiedTime 476 -#define OBJ_lastModifiedTime OBJ_pilotAttributeType,23L - -#define LN_lastModifiedBy "lastModifiedBy" -#define NID_lastModifiedBy 477 -#define OBJ_lastModifiedBy OBJ_pilotAttributeType,24L - -#define SN_domainComponent "DC" -#define LN_domainComponent "domainComponent" -#define NID_domainComponent 391 -#define OBJ_domainComponent OBJ_pilotAttributeType,25L - -#define LN_aRecord "aRecord" -#define NID_aRecord 478 -#define OBJ_aRecord OBJ_pilotAttributeType,26L - -#define LN_pilotAttributeType27 "pilotAttributeType27" -#define NID_pilotAttributeType27 479 -#define OBJ_pilotAttributeType27 OBJ_pilotAttributeType,27L - -#define LN_mXRecord "mXRecord" -#define NID_mXRecord 480 -#define OBJ_mXRecord OBJ_pilotAttributeType,28L - -#define LN_nSRecord "nSRecord" -#define NID_nSRecord 481 -#define OBJ_nSRecord OBJ_pilotAttributeType,29L - -#define LN_sOARecord "sOARecord" -#define NID_sOARecord 482 -#define OBJ_sOARecord OBJ_pilotAttributeType,30L - -#define LN_cNAMERecord "cNAMERecord" -#define NID_cNAMERecord 483 -#define OBJ_cNAMERecord OBJ_pilotAttributeType,31L - -#define LN_associatedDomain "associatedDomain" -#define NID_associatedDomain 484 -#define OBJ_associatedDomain OBJ_pilotAttributeType,37L - -#define LN_associatedName "associatedName" -#define NID_associatedName 485 -#define OBJ_associatedName OBJ_pilotAttributeType,38L - -#define LN_homePostalAddress "homePostalAddress" -#define NID_homePostalAddress 486 -#define OBJ_homePostalAddress OBJ_pilotAttributeType,39L - -#define LN_personalTitle "personalTitle" -#define NID_personalTitle 487 -#define OBJ_personalTitle OBJ_pilotAttributeType,40L - -#define LN_mobileTelephoneNumber "mobileTelephoneNumber" -#define NID_mobileTelephoneNumber 488 -#define OBJ_mobileTelephoneNumber OBJ_pilotAttributeType,41L - -#define LN_pagerTelephoneNumber "pagerTelephoneNumber" -#define NID_pagerTelephoneNumber 489 -#define OBJ_pagerTelephoneNumber OBJ_pilotAttributeType,42L - -#define LN_friendlyCountryName "friendlyCountryName" -#define NID_friendlyCountryName 490 -#define OBJ_friendlyCountryName OBJ_pilotAttributeType,43L - -#define SN_uniqueIdentifier "uid" -#define LN_uniqueIdentifier "uniqueIdentifier" -#define NID_uniqueIdentifier 102 -#define OBJ_uniqueIdentifier OBJ_pilotAttributeType,44L - -#define LN_organizationalStatus "organizationalStatus" -#define NID_organizationalStatus 491 -#define OBJ_organizationalStatus OBJ_pilotAttributeType,45L - -#define LN_janetMailbox "janetMailbox" -#define NID_janetMailbox 492 -#define OBJ_janetMailbox OBJ_pilotAttributeType,46L - -#define LN_mailPreferenceOption "mailPreferenceOption" -#define NID_mailPreferenceOption 493 -#define OBJ_mailPreferenceOption OBJ_pilotAttributeType,47L - -#define LN_buildingName "buildingName" -#define NID_buildingName 494 -#define OBJ_buildingName OBJ_pilotAttributeType,48L - -#define LN_dSAQuality "dSAQuality" -#define NID_dSAQuality 495 -#define OBJ_dSAQuality OBJ_pilotAttributeType,49L - -#define LN_singleLevelQuality "singleLevelQuality" -#define NID_singleLevelQuality 496 -#define OBJ_singleLevelQuality OBJ_pilotAttributeType,50L - -#define LN_subtreeMinimumQuality "subtreeMinimumQuality" -#define NID_subtreeMinimumQuality 497 -#define OBJ_subtreeMinimumQuality OBJ_pilotAttributeType,51L - -#define LN_subtreeMaximumQuality "subtreeMaximumQuality" -#define NID_subtreeMaximumQuality 498 -#define OBJ_subtreeMaximumQuality OBJ_pilotAttributeType,52L - -#define LN_personalSignature "personalSignature" -#define NID_personalSignature 499 -#define OBJ_personalSignature OBJ_pilotAttributeType,53L - -#define LN_dITRedirect "dITRedirect" -#define NID_dITRedirect 500 -#define OBJ_dITRedirect OBJ_pilotAttributeType,54L - -#define SN_audio "audio" -#define NID_audio 501 -#define OBJ_audio OBJ_pilotAttributeType,55L - -#define LN_documentPublisher "documentPublisher" -#define NID_documentPublisher 502 -#define OBJ_documentPublisher OBJ_pilotAttributeType,56L - -#define SN_id_set "id-set" -#define LN_id_set "Secure Electronic Transactions" -#define NID_id_set 512 -#define OBJ_id_set OBJ_international_organizations,42L - -#define SN_set_ctype "set-ctype" -#define LN_set_ctype "content types" -#define NID_set_ctype 513 -#define OBJ_set_ctype OBJ_id_set,0L - -#define SN_set_msgExt "set-msgExt" -#define LN_set_msgExt "message extensions" -#define NID_set_msgExt 514 -#define OBJ_set_msgExt OBJ_id_set,1L - -#define SN_set_attr "set-attr" -#define NID_set_attr 515 -#define OBJ_set_attr OBJ_id_set,3L - -#define SN_set_policy "set-policy" -#define NID_set_policy 516 -#define OBJ_set_policy OBJ_id_set,5L - -#define SN_set_certExt "set-certExt" -#define LN_set_certExt "certificate extensions" -#define NID_set_certExt 517 -#define OBJ_set_certExt OBJ_id_set,7L - -#define SN_set_brand "set-brand" -#define NID_set_brand 518 -#define OBJ_set_brand OBJ_id_set,8L - -#define SN_setct_PANData "setct-PANData" -#define NID_setct_PANData 519 -#define OBJ_setct_PANData OBJ_set_ctype,0L - -#define SN_setct_PANToken "setct-PANToken" -#define NID_setct_PANToken 520 -#define OBJ_setct_PANToken OBJ_set_ctype,1L - -#define SN_setct_PANOnly "setct-PANOnly" -#define NID_setct_PANOnly 521 -#define OBJ_setct_PANOnly OBJ_set_ctype,2L - -#define SN_setct_OIData "setct-OIData" -#define NID_setct_OIData 522 -#define OBJ_setct_OIData OBJ_set_ctype,3L - -#define SN_setct_PI "setct-PI" -#define NID_setct_PI 523 -#define OBJ_setct_PI OBJ_set_ctype,4L - -#define SN_setct_PIData "setct-PIData" -#define NID_setct_PIData 524 -#define OBJ_setct_PIData OBJ_set_ctype,5L - -#define SN_setct_PIDataUnsigned "setct-PIDataUnsigned" -#define NID_setct_PIDataUnsigned 525 -#define OBJ_setct_PIDataUnsigned OBJ_set_ctype,6L - -#define SN_setct_HODInput "setct-HODInput" -#define NID_setct_HODInput 526 -#define OBJ_setct_HODInput OBJ_set_ctype,7L - -#define SN_setct_AuthResBaggage "setct-AuthResBaggage" -#define NID_setct_AuthResBaggage 527 -#define OBJ_setct_AuthResBaggage OBJ_set_ctype,8L - -#define SN_setct_AuthRevReqBaggage "setct-AuthRevReqBaggage" -#define NID_setct_AuthRevReqBaggage 528 -#define OBJ_setct_AuthRevReqBaggage OBJ_set_ctype,9L - -#define SN_setct_AuthRevResBaggage "setct-AuthRevResBaggage" -#define NID_setct_AuthRevResBaggage 529 -#define OBJ_setct_AuthRevResBaggage OBJ_set_ctype,10L - -#define SN_setct_CapTokenSeq "setct-CapTokenSeq" -#define NID_setct_CapTokenSeq 530 -#define OBJ_setct_CapTokenSeq OBJ_set_ctype,11L - -#define SN_setct_PInitResData "setct-PInitResData" -#define NID_setct_PInitResData 531 -#define OBJ_setct_PInitResData OBJ_set_ctype,12L - -#define SN_setct_PI_TBS "setct-PI-TBS" -#define NID_setct_PI_TBS 532 -#define OBJ_setct_PI_TBS OBJ_set_ctype,13L - -#define SN_setct_PResData "setct-PResData" -#define NID_setct_PResData 533 -#define OBJ_setct_PResData OBJ_set_ctype,14L - -#define SN_setct_AuthReqTBS "setct-AuthReqTBS" -#define NID_setct_AuthReqTBS 534 -#define OBJ_setct_AuthReqTBS OBJ_set_ctype,16L - -#define SN_setct_AuthResTBS "setct-AuthResTBS" -#define NID_setct_AuthResTBS 535 -#define OBJ_setct_AuthResTBS OBJ_set_ctype,17L - -#define SN_setct_AuthResTBSX "setct-AuthResTBSX" -#define NID_setct_AuthResTBSX 536 -#define OBJ_setct_AuthResTBSX OBJ_set_ctype,18L - -#define SN_setct_AuthTokenTBS "setct-AuthTokenTBS" -#define NID_setct_AuthTokenTBS 537 -#define OBJ_setct_AuthTokenTBS OBJ_set_ctype,19L - -#define SN_setct_CapTokenData "setct-CapTokenData" -#define NID_setct_CapTokenData 538 -#define OBJ_setct_CapTokenData OBJ_set_ctype,20L - -#define SN_setct_CapTokenTBS "setct-CapTokenTBS" -#define NID_setct_CapTokenTBS 539 -#define OBJ_setct_CapTokenTBS OBJ_set_ctype,21L - -#define SN_setct_AcqCardCodeMsg "setct-AcqCardCodeMsg" -#define NID_setct_AcqCardCodeMsg 540 -#define OBJ_setct_AcqCardCodeMsg OBJ_set_ctype,22L - -#define SN_setct_AuthRevReqTBS "setct-AuthRevReqTBS" -#define NID_setct_AuthRevReqTBS 541 -#define OBJ_setct_AuthRevReqTBS OBJ_set_ctype,23L - -#define SN_setct_AuthRevResData "setct-AuthRevResData" -#define NID_setct_AuthRevResData 542 -#define OBJ_setct_AuthRevResData OBJ_set_ctype,24L - -#define SN_setct_AuthRevResTBS "setct-AuthRevResTBS" -#define NID_setct_AuthRevResTBS 543 -#define OBJ_setct_AuthRevResTBS OBJ_set_ctype,25L - -#define SN_setct_CapReqTBS "setct-CapReqTBS" -#define NID_setct_CapReqTBS 544 -#define OBJ_setct_CapReqTBS OBJ_set_ctype,26L - -#define SN_setct_CapReqTBSX "setct-CapReqTBSX" -#define NID_setct_CapReqTBSX 545 -#define OBJ_setct_CapReqTBSX OBJ_set_ctype,27L - -#define SN_setct_CapResData "setct-CapResData" -#define NID_setct_CapResData 546 -#define OBJ_setct_CapResData OBJ_set_ctype,28L - -#define SN_setct_CapRevReqTBS "setct-CapRevReqTBS" -#define NID_setct_CapRevReqTBS 547 -#define OBJ_setct_CapRevReqTBS OBJ_set_ctype,29L - -#define SN_setct_CapRevReqTBSX "setct-CapRevReqTBSX" -#define NID_setct_CapRevReqTBSX 548 -#define OBJ_setct_CapRevReqTBSX OBJ_set_ctype,30L - -#define SN_setct_CapRevResData "setct-CapRevResData" -#define NID_setct_CapRevResData 549 -#define OBJ_setct_CapRevResData OBJ_set_ctype,31L - -#define SN_setct_CredReqTBS "setct-CredReqTBS" -#define NID_setct_CredReqTBS 550 -#define OBJ_setct_CredReqTBS OBJ_set_ctype,32L - -#define SN_setct_CredReqTBSX "setct-CredReqTBSX" -#define NID_setct_CredReqTBSX 551 -#define OBJ_setct_CredReqTBSX OBJ_set_ctype,33L - -#define SN_setct_CredResData "setct-CredResData" -#define NID_setct_CredResData 552 -#define OBJ_setct_CredResData OBJ_set_ctype,34L - -#define SN_setct_CredRevReqTBS "setct-CredRevReqTBS" -#define NID_setct_CredRevReqTBS 553 -#define OBJ_setct_CredRevReqTBS OBJ_set_ctype,35L - -#define SN_setct_CredRevReqTBSX "setct-CredRevReqTBSX" -#define NID_setct_CredRevReqTBSX 554 -#define OBJ_setct_CredRevReqTBSX OBJ_set_ctype,36L - -#define SN_setct_CredRevResData "setct-CredRevResData" -#define NID_setct_CredRevResData 555 -#define OBJ_setct_CredRevResData OBJ_set_ctype,37L - -#define SN_setct_PCertReqData "setct-PCertReqData" -#define NID_setct_PCertReqData 556 -#define OBJ_setct_PCertReqData OBJ_set_ctype,38L - -#define SN_setct_PCertResTBS "setct-PCertResTBS" -#define NID_setct_PCertResTBS 557 -#define OBJ_setct_PCertResTBS OBJ_set_ctype,39L - -#define SN_setct_BatchAdminReqData "setct-BatchAdminReqData" -#define NID_setct_BatchAdminReqData 558 -#define OBJ_setct_BatchAdminReqData OBJ_set_ctype,40L - -#define SN_setct_BatchAdminResData "setct-BatchAdminResData" -#define NID_setct_BatchAdminResData 559 -#define OBJ_setct_BatchAdminResData OBJ_set_ctype,41L - -#define SN_setct_CardCInitResTBS "setct-CardCInitResTBS" -#define NID_setct_CardCInitResTBS 560 -#define OBJ_setct_CardCInitResTBS OBJ_set_ctype,42L - -#define SN_setct_MeAqCInitResTBS "setct-MeAqCInitResTBS" -#define NID_setct_MeAqCInitResTBS 561 -#define OBJ_setct_MeAqCInitResTBS OBJ_set_ctype,43L - -#define SN_setct_RegFormResTBS "setct-RegFormResTBS" -#define NID_setct_RegFormResTBS 562 -#define OBJ_setct_RegFormResTBS OBJ_set_ctype,44L - -#define SN_setct_CertReqData "setct-CertReqData" -#define NID_setct_CertReqData 563 -#define OBJ_setct_CertReqData OBJ_set_ctype,45L - -#define SN_setct_CertReqTBS "setct-CertReqTBS" -#define NID_setct_CertReqTBS 564 -#define OBJ_setct_CertReqTBS OBJ_set_ctype,46L - -#define SN_setct_CertResData "setct-CertResData" -#define NID_setct_CertResData 565 -#define OBJ_setct_CertResData OBJ_set_ctype,47L - -#define SN_setct_CertInqReqTBS "setct-CertInqReqTBS" -#define NID_setct_CertInqReqTBS 566 -#define OBJ_setct_CertInqReqTBS OBJ_set_ctype,48L - -#define SN_setct_ErrorTBS "setct-ErrorTBS" -#define NID_setct_ErrorTBS 567 -#define OBJ_setct_ErrorTBS OBJ_set_ctype,49L - -#define SN_setct_PIDualSignedTBE "setct-PIDualSignedTBE" -#define NID_setct_PIDualSignedTBE 568 -#define OBJ_setct_PIDualSignedTBE OBJ_set_ctype,50L - -#define SN_setct_PIUnsignedTBE "setct-PIUnsignedTBE" -#define NID_setct_PIUnsignedTBE 569 -#define OBJ_setct_PIUnsignedTBE OBJ_set_ctype,51L - -#define SN_setct_AuthReqTBE "setct-AuthReqTBE" -#define NID_setct_AuthReqTBE 570 -#define OBJ_setct_AuthReqTBE OBJ_set_ctype,52L - -#define SN_setct_AuthResTBE "setct-AuthResTBE" -#define NID_setct_AuthResTBE 571 -#define OBJ_setct_AuthResTBE OBJ_set_ctype,53L - -#define SN_setct_AuthResTBEX "setct-AuthResTBEX" -#define NID_setct_AuthResTBEX 572 -#define OBJ_setct_AuthResTBEX OBJ_set_ctype,54L - -#define SN_setct_AuthTokenTBE "setct-AuthTokenTBE" -#define NID_setct_AuthTokenTBE 573 -#define OBJ_setct_AuthTokenTBE OBJ_set_ctype,55L - -#define SN_setct_CapTokenTBE "setct-CapTokenTBE" -#define NID_setct_CapTokenTBE 574 -#define OBJ_setct_CapTokenTBE OBJ_set_ctype,56L - -#define SN_setct_CapTokenTBEX "setct-CapTokenTBEX" -#define NID_setct_CapTokenTBEX 575 -#define OBJ_setct_CapTokenTBEX OBJ_set_ctype,57L - -#define SN_setct_AcqCardCodeMsgTBE "setct-AcqCardCodeMsgTBE" -#define NID_setct_AcqCardCodeMsgTBE 576 -#define OBJ_setct_AcqCardCodeMsgTBE OBJ_set_ctype,58L - -#define SN_setct_AuthRevReqTBE "setct-AuthRevReqTBE" -#define NID_setct_AuthRevReqTBE 577 -#define OBJ_setct_AuthRevReqTBE OBJ_set_ctype,59L - -#define SN_setct_AuthRevResTBE "setct-AuthRevResTBE" -#define NID_setct_AuthRevResTBE 578 -#define OBJ_setct_AuthRevResTBE OBJ_set_ctype,60L - -#define SN_setct_AuthRevResTBEB "setct-AuthRevResTBEB" -#define NID_setct_AuthRevResTBEB 579 -#define OBJ_setct_AuthRevResTBEB OBJ_set_ctype,61L - -#define SN_setct_CapReqTBE "setct-CapReqTBE" -#define NID_setct_CapReqTBE 580 -#define OBJ_setct_CapReqTBE OBJ_set_ctype,62L - -#define SN_setct_CapReqTBEX "setct-CapReqTBEX" -#define NID_setct_CapReqTBEX 581 -#define OBJ_setct_CapReqTBEX OBJ_set_ctype,63L - -#define SN_setct_CapResTBE "setct-CapResTBE" -#define NID_setct_CapResTBE 582 -#define OBJ_setct_CapResTBE OBJ_set_ctype,64L - -#define SN_setct_CapRevReqTBE "setct-CapRevReqTBE" -#define NID_setct_CapRevReqTBE 583 -#define OBJ_setct_CapRevReqTBE OBJ_set_ctype,65L - -#define SN_setct_CapRevReqTBEX "setct-CapRevReqTBEX" -#define NID_setct_CapRevReqTBEX 584 -#define OBJ_setct_CapRevReqTBEX OBJ_set_ctype,66L - -#define SN_setct_CapRevResTBE "setct-CapRevResTBE" -#define NID_setct_CapRevResTBE 585 -#define OBJ_setct_CapRevResTBE OBJ_set_ctype,67L - -#define SN_setct_CredReqTBE "setct-CredReqTBE" -#define NID_setct_CredReqTBE 586 -#define OBJ_setct_CredReqTBE OBJ_set_ctype,68L - -#define SN_setct_CredReqTBEX "setct-CredReqTBEX" -#define NID_setct_CredReqTBEX 587 -#define OBJ_setct_CredReqTBEX OBJ_set_ctype,69L - -#define SN_setct_CredResTBE "setct-CredResTBE" -#define NID_setct_CredResTBE 588 -#define OBJ_setct_CredResTBE OBJ_set_ctype,70L - -#define SN_setct_CredRevReqTBE "setct-CredRevReqTBE" -#define NID_setct_CredRevReqTBE 589 -#define OBJ_setct_CredRevReqTBE OBJ_set_ctype,71L - -#define SN_setct_CredRevReqTBEX "setct-CredRevReqTBEX" -#define NID_setct_CredRevReqTBEX 590 -#define OBJ_setct_CredRevReqTBEX OBJ_set_ctype,72L - -#define SN_setct_CredRevResTBE "setct-CredRevResTBE" -#define NID_setct_CredRevResTBE 591 -#define OBJ_setct_CredRevResTBE OBJ_set_ctype,73L - -#define SN_setct_BatchAdminReqTBE "setct-BatchAdminReqTBE" -#define NID_setct_BatchAdminReqTBE 592 -#define OBJ_setct_BatchAdminReqTBE OBJ_set_ctype,74L - -#define SN_setct_BatchAdminResTBE "setct-BatchAdminResTBE" -#define NID_setct_BatchAdminResTBE 593 -#define OBJ_setct_BatchAdminResTBE OBJ_set_ctype,75L - -#define SN_setct_RegFormReqTBE "setct-RegFormReqTBE" -#define NID_setct_RegFormReqTBE 594 -#define OBJ_setct_RegFormReqTBE OBJ_set_ctype,76L - -#define SN_setct_CertReqTBE "setct-CertReqTBE" -#define NID_setct_CertReqTBE 595 -#define OBJ_setct_CertReqTBE OBJ_set_ctype,77L - -#define SN_setct_CertReqTBEX "setct-CertReqTBEX" -#define NID_setct_CertReqTBEX 596 -#define OBJ_setct_CertReqTBEX OBJ_set_ctype,78L - -#define SN_setct_CertResTBE "setct-CertResTBE" -#define NID_setct_CertResTBE 597 -#define OBJ_setct_CertResTBE OBJ_set_ctype,79L - -#define SN_setct_CRLNotificationTBS "setct-CRLNotificationTBS" -#define NID_setct_CRLNotificationTBS 598 -#define OBJ_setct_CRLNotificationTBS OBJ_set_ctype,80L - -#define SN_setct_CRLNotificationResTBS "setct-CRLNotificationResTBS" -#define NID_setct_CRLNotificationResTBS 599 -#define OBJ_setct_CRLNotificationResTBS OBJ_set_ctype,81L - -#define SN_setct_BCIDistributionTBS "setct-BCIDistributionTBS" -#define NID_setct_BCIDistributionTBS 600 -#define OBJ_setct_BCIDistributionTBS OBJ_set_ctype,82L - -#define SN_setext_genCrypt "setext-genCrypt" -#define LN_setext_genCrypt "generic cryptogram" -#define NID_setext_genCrypt 601 -#define OBJ_setext_genCrypt OBJ_set_msgExt,1L - -#define SN_setext_miAuth "setext-miAuth" -#define LN_setext_miAuth "merchant initiated auth" -#define NID_setext_miAuth 602 -#define OBJ_setext_miAuth OBJ_set_msgExt,3L - -#define SN_setext_pinSecure "setext-pinSecure" -#define NID_setext_pinSecure 603 -#define OBJ_setext_pinSecure OBJ_set_msgExt,4L - -#define SN_setext_pinAny "setext-pinAny" -#define NID_setext_pinAny 604 -#define OBJ_setext_pinAny OBJ_set_msgExt,5L - -#define SN_setext_track2 "setext-track2" -#define NID_setext_track2 605 -#define OBJ_setext_track2 OBJ_set_msgExt,7L - -#define SN_setext_cv "setext-cv" -#define LN_setext_cv "additional verification" -#define NID_setext_cv 606 -#define OBJ_setext_cv OBJ_set_msgExt,8L - -#define SN_set_policy_root "set-policy-root" -#define NID_set_policy_root 607 -#define OBJ_set_policy_root OBJ_set_policy,0L - -#define SN_setCext_hashedRoot "setCext-hashedRoot" -#define NID_setCext_hashedRoot 608 -#define OBJ_setCext_hashedRoot OBJ_set_certExt,0L - -#define SN_setCext_certType "setCext-certType" -#define NID_setCext_certType 609 -#define OBJ_setCext_certType OBJ_set_certExt,1L - -#define SN_setCext_merchData "setCext-merchData" -#define NID_setCext_merchData 610 -#define OBJ_setCext_merchData OBJ_set_certExt,2L - -#define SN_setCext_cCertRequired "setCext-cCertRequired" -#define NID_setCext_cCertRequired 611 -#define OBJ_setCext_cCertRequired OBJ_set_certExt,3L - -#define SN_setCext_tunneling "setCext-tunneling" -#define NID_setCext_tunneling 612 -#define OBJ_setCext_tunneling OBJ_set_certExt,4L - -#define SN_setCext_setExt "setCext-setExt" -#define NID_setCext_setExt 613 -#define OBJ_setCext_setExt OBJ_set_certExt,5L - -#define SN_setCext_setQualf "setCext-setQualf" -#define NID_setCext_setQualf 614 -#define OBJ_setCext_setQualf OBJ_set_certExt,6L - -#define SN_setCext_PGWYcapabilities "setCext-PGWYcapabilities" -#define NID_setCext_PGWYcapabilities 615 -#define OBJ_setCext_PGWYcapabilities OBJ_set_certExt,7L - -#define SN_setCext_TokenIdentifier "setCext-TokenIdentifier" -#define NID_setCext_TokenIdentifier 616 -#define OBJ_setCext_TokenIdentifier OBJ_set_certExt,8L - -#define SN_setCext_Track2Data "setCext-Track2Data" -#define NID_setCext_Track2Data 617 -#define OBJ_setCext_Track2Data OBJ_set_certExt,9L - -#define SN_setCext_TokenType "setCext-TokenType" -#define NID_setCext_TokenType 618 -#define OBJ_setCext_TokenType OBJ_set_certExt,10L - -#define SN_setCext_IssuerCapabilities "setCext-IssuerCapabilities" -#define NID_setCext_IssuerCapabilities 619 -#define OBJ_setCext_IssuerCapabilities OBJ_set_certExt,11L - -#define SN_setAttr_Cert "setAttr-Cert" -#define NID_setAttr_Cert 620 -#define OBJ_setAttr_Cert OBJ_set_attr,0L - -#define SN_setAttr_PGWYcap "setAttr-PGWYcap" -#define LN_setAttr_PGWYcap "payment gateway capabilities" -#define NID_setAttr_PGWYcap 621 -#define OBJ_setAttr_PGWYcap OBJ_set_attr,1L - -#define SN_setAttr_TokenType "setAttr-TokenType" -#define NID_setAttr_TokenType 622 -#define OBJ_setAttr_TokenType OBJ_set_attr,2L - -#define SN_setAttr_IssCap "setAttr-IssCap" -#define LN_setAttr_IssCap "issuer capabilities" -#define NID_setAttr_IssCap 623 -#define OBJ_setAttr_IssCap OBJ_set_attr,3L - -#define SN_set_rootKeyThumb "set-rootKeyThumb" -#define NID_set_rootKeyThumb 624 -#define OBJ_set_rootKeyThumb OBJ_setAttr_Cert,0L - -#define SN_set_addPolicy "set-addPolicy" -#define NID_set_addPolicy 625 -#define OBJ_set_addPolicy OBJ_setAttr_Cert,1L - -#define SN_setAttr_Token_EMV "setAttr-Token-EMV" -#define NID_setAttr_Token_EMV 626 -#define OBJ_setAttr_Token_EMV OBJ_setAttr_TokenType,1L - -#define SN_setAttr_Token_B0Prime "setAttr-Token-B0Prime" -#define NID_setAttr_Token_B0Prime 627 -#define OBJ_setAttr_Token_B0Prime OBJ_setAttr_TokenType,2L - -#define SN_setAttr_IssCap_CVM "setAttr-IssCap-CVM" -#define NID_setAttr_IssCap_CVM 628 -#define OBJ_setAttr_IssCap_CVM OBJ_setAttr_IssCap,3L - -#define SN_setAttr_IssCap_T2 "setAttr-IssCap-T2" -#define NID_setAttr_IssCap_T2 629 -#define OBJ_setAttr_IssCap_T2 OBJ_setAttr_IssCap,4L - -#define SN_setAttr_IssCap_Sig "setAttr-IssCap-Sig" -#define NID_setAttr_IssCap_Sig 630 -#define OBJ_setAttr_IssCap_Sig OBJ_setAttr_IssCap,5L - -#define SN_setAttr_GenCryptgrm "setAttr-GenCryptgrm" -#define LN_setAttr_GenCryptgrm "generate cryptogram" -#define NID_setAttr_GenCryptgrm 631 -#define OBJ_setAttr_GenCryptgrm OBJ_setAttr_IssCap_CVM,1L - -#define SN_setAttr_T2Enc "setAttr-T2Enc" -#define LN_setAttr_T2Enc "encrypted track 2" -#define NID_setAttr_T2Enc 632 -#define OBJ_setAttr_T2Enc OBJ_setAttr_IssCap_T2,1L - -#define SN_setAttr_T2cleartxt "setAttr-T2cleartxt" -#define LN_setAttr_T2cleartxt "cleartext track 2" -#define NID_setAttr_T2cleartxt 633 -#define OBJ_setAttr_T2cleartxt OBJ_setAttr_IssCap_T2,2L - -#define SN_setAttr_TokICCsig "setAttr-TokICCsig" -#define LN_setAttr_TokICCsig "ICC or token signature" -#define NID_setAttr_TokICCsig 634 -#define OBJ_setAttr_TokICCsig OBJ_setAttr_IssCap_Sig,1L - -#define SN_setAttr_SecDevSig "setAttr-SecDevSig" -#define LN_setAttr_SecDevSig "secure device signature" -#define NID_setAttr_SecDevSig 635 -#define OBJ_setAttr_SecDevSig OBJ_setAttr_IssCap_Sig,2L - -#define SN_set_brand_IATA_ATA "set-brand-IATA-ATA" -#define NID_set_brand_IATA_ATA 636 -#define OBJ_set_brand_IATA_ATA OBJ_set_brand,1L - -#define SN_set_brand_Diners "set-brand-Diners" -#define NID_set_brand_Diners 637 -#define OBJ_set_brand_Diners OBJ_set_brand,30L - -#define SN_set_brand_AmericanExpress "set-brand-AmericanExpress" -#define NID_set_brand_AmericanExpress 638 -#define OBJ_set_brand_AmericanExpress OBJ_set_brand,34L - -#define SN_set_brand_JCB "set-brand-JCB" -#define NID_set_brand_JCB 639 -#define OBJ_set_brand_JCB OBJ_set_brand,35L - -#define SN_set_brand_Visa "set-brand-Visa" -#define NID_set_brand_Visa 640 -#define OBJ_set_brand_Visa OBJ_set_brand,4L - -#define SN_set_brand_MasterCard "set-brand-MasterCard" -#define NID_set_brand_MasterCard 641 -#define OBJ_set_brand_MasterCard OBJ_set_brand,5L - -#define SN_set_brand_Novus "set-brand-Novus" -#define NID_set_brand_Novus 642 -#define OBJ_set_brand_Novus OBJ_set_brand,6011L - -#define SN_des_cdmf "DES-CDMF" -#define LN_des_cdmf "des-cdmf" -#define NID_des_cdmf 643 -#define OBJ_des_cdmf OBJ_rsadsi,3L,10L - -#define SN_rsaOAEPEncryptionSET "rsaOAEPEncryptionSET" -#define NID_rsaOAEPEncryptionSET 644 -#define OBJ_rsaOAEPEncryptionSET OBJ_rsadsi,1L,1L,6L - -#define SN_ipsec3 "Oakley-EC2N-3" -#define LN_ipsec3 "ipsec3" -#define NID_ipsec3 749 - -#define SN_ipsec4 "Oakley-EC2N-4" -#define LN_ipsec4 "ipsec4" -#define NID_ipsec4 750 - -#define SN_whirlpool "whirlpool" -#define NID_whirlpool 804 -#define OBJ_whirlpool OBJ_iso,0L,10118L,3L,0L,55L - -#define SN_cryptopro "cryptopro" -#define NID_cryptopro 805 -#define OBJ_cryptopro OBJ_member_body,643L,2L,2L - -#define SN_cryptocom "cryptocom" -#define NID_cryptocom 806 -#define OBJ_cryptocom OBJ_member_body,643L,2L,9L - -#define SN_id_tc26 "id-tc26" -#define NID_id_tc26 974 -#define OBJ_id_tc26 OBJ_member_body,643L,7L,1L - -#define SN_id_GostR3411_94_with_GostR3410_2001 "id-GostR3411-94-with-GostR3410-2001" -#define LN_id_GostR3411_94_with_GostR3410_2001 "GOST R 34.11-94 with GOST R 34.10-2001" -#define NID_id_GostR3411_94_with_GostR3410_2001 807 -#define OBJ_id_GostR3411_94_with_GostR3410_2001 OBJ_cryptopro,3L - -#define SN_id_GostR3411_94_with_GostR3410_94 "id-GostR3411-94-with-GostR3410-94" -#define LN_id_GostR3411_94_with_GostR3410_94 "GOST R 34.11-94 with GOST R 34.10-94" -#define NID_id_GostR3411_94_with_GostR3410_94 808 -#define OBJ_id_GostR3411_94_with_GostR3410_94 OBJ_cryptopro,4L - -#define SN_id_GostR3411_94 "md_gost94" -#define LN_id_GostR3411_94 "GOST R 34.11-94" -#define NID_id_GostR3411_94 809 -#define OBJ_id_GostR3411_94 OBJ_cryptopro,9L - -#define SN_id_HMACGostR3411_94 "id-HMACGostR3411-94" -#define LN_id_HMACGostR3411_94 "HMAC GOST 34.11-94" -#define NID_id_HMACGostR3411_94 810 -#define OBJ_id_HMACGostR3411_94 OBJ_cryptopro,10L - -#define SN_id_GostR3410_2001 "gost2001" -#define LN_id_GostR3410_2001 "GOST R 34.10-2001" -#define NID_id_GostR3410_2001 811 -#define OBJ_id_GostR3410_2001 OBJ_cryptopro,19L - -#define SN_id_GostR3410_94 "gost94" -#define LN_id_GostR3410_94 "GOST R 34.10-94" -#define NID_id_GostR3410_94 812 -#define OBJ_id_GostR3410_94 OBJ_cryptopro,20L - -#define SN_id_Gost28147_89 "gost89" -#define LN_id_Gost28147_89 "GOST 28147-89" -#define NID_id_Gost28147_89 813 -#define OBJ_id_Gost28147_89 OBJ_cryptopro,21L - -#define SN_gost89_cnt "gost89-cnt" -#define NID_gost89_cnt 814 - -#define SN_gost89_cnt_12 "gost89-cnt-12" -#define NID_gost89_cnt_12 975 - -#define SN_gost89_cbc "gost89-cbc" -#define NID_gost89_cbc 1009 - -#define SN_gost89_ecb "gost89-ecb" -#define NID_gost89_ecb 1010 - -#define SN_gost89_ctr "gost89-ctr" -#define NID_gost89_ctr 1011 - -#define SN_id_Gost28147_89_MAC "gost-mac" -#define LN_id_Gost28147_89_MAC "GOST 28147-89 MAC" -#define NID_id_Gost28147_89_MAC 815 -#define OBJ_id_Gost28147_89_MAC OBJ_cryptopro,22L - -#define SN_gost_mac_12 "gost-mac-12" -#define NID_gost_mac_12 976 - -#define SN_id_GostR3411_94_prf "prf-gostr3411-94" -#define LN_id_GostR3411_94_prf "GOST R 34.11-94 PRF" -#define NID_id_GostR3411_94_prf 816 -#define OBJ_id_GostR3411_94_prf OBJ_cryptopro,23L - -#define SN_id_GostR3410_2001DH "id-GostR3410-2001DH" -#define LN_id_GostR3410_2001DH "GOST R 34.10-2001 DH" -#define NID_id_GostR3410_2001DH 817 -#define OBJ_id_GostR3410_2001DH OBJ_cryptopro,98L - -#define SN_id_GostR3410_94DH "id-GostR3410-94DH" -#define LN_id_GostR3410_94DH "GOST R 34.10-94 DH" -#define NID_id_GostR3410_94DH 818 -#define OBJ_id_GostR3410_94DH OBJ_cryptopro,99L - -#define SN_id_Gost28147_89_CryptoPro_KeyMeshing "id-Gost28147-89-CryptoPro-KeyMeshing" -#define NID_id_Gost28147_89_CryptoPro_KeyMeshing 819 -#define OBJ_id_Gost28147_89_CryptoPro_KeyMeshing OBJ_cryptopro,14L,1L - -#define SN_id_Gost28147_89_None_KeyMeshing "id-Gost28147-89-None-KeyMeshing" -#define NID_id_Gost28147_89_None_KeyMeshing 820 -#define OBJ_id_Gost28147_89_None_KeyMeshing OBJ_cryptopro,14L,0L - -#define SN_id_GostR3411_94_TestParamSet "id-GostR3411-94-TestParamSet" -#define NID_id_GostR3411_94_TestParamSet 821 -#define OBJ_id_GostR3411_94_TestParamSet OBJ_cryptopro,30L,0L - -#define SN_id_GostR3411_94_CryptoProParamSet "id-GostR3411-94-CryptoProParamSet" -#define NID_id_GostR3411_94_CryptoProParamSet 822 -#define OBJ_id_GostR3411_94_CryptoProParamSet OBJ_cryptopro,30L,1L - -#define SN_id_Gost28147_89_TestParamSet "id-Gost28147-89-TestParamSet" -#define NID_id_Gost28147_89_TestParamSet 823 -#define OBJ_id_Gost28147_89_TestParamSet OBJ_cryptopro,31L,0L - -#define SN_id_Gost28147_89_CryptoPro_A_ParamSet "id-Gost28147-89-CryptoPro-A-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_A_ParamSet 824 -#define OBJ_id_Gost28147_89_CryptoPro_A_ParamSet OBJ_cryptopro,31L,1L - -#define SN_id_Gost28147_89_CryptoPro_B_ParamSet "id-Gost28147-89-CryptoPro-B-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_B_ParamSet 825 -#define OBJ_id_Gost28147_89_CryptoPro_B_ParamSet OBJ_cryptopro,31L,2L - -#define SN_id_Gost28147_89_CryptoPro_C_ParamSet "id-Gost28147-89-CryptoPro-C-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_C_ParamSet 826 -#define OBJ_id_Gost28147_89_CryptoPro_C_ParamSet OBJ_cryptopro,31L,3L - -#define SN_id_Gost28147_89_CryptoPro_D_ParamSet "id-Gost28147-89-CryptoPro-D-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_D_ParamSet 827 -#define OBJ_id_Gost28147_89_CryptoPro_D_ParamSet OBJ_cryptopro,31L,4L - -#define SN_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-1-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet 828 -#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet OBJ_cryptopro,31L,5L - -#define SN_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-0-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet 829 -#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet OBJ_cryptopro,31L,6L - -#define SN_id_Gost28147_89_CryptoPro_RIC_1_ParamSet "id-Gost28147-89-CryptoPro-RIC-1-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet 830 -#define OBJ_id_Gost28147_89_CryptoPro_RIC_1_ParamSet OBJ_cryptopro,31L,7L - -#define SN_id_GostR3410_94_TestParamSet "id-GostR3410-94-TestParamSet" -#define NID_id_GostR3410_94_TestParamSet 831 -#define OBJ_id_GostR3410_94_TestParamSet OBJ_cryptopro,32L,0L - -#define SN_id_GostR3410_94_CryptoPro_A_ParamSet "id-GostR3410-94-CryptoPro-A-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_A_ParamSet 832 -#define OBJ_id_GostR3410_94_CryptoPro_A_ParamSet OBJ_cryptopro,32L,2L - -#define SN_id_GostR3410_94_CryptoPro_B_ParamSet "id-GostR3410-94-CryptoPro-B-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_B_ParamSet 833 -#define OBJ_id_GostR3410_94_CryptoPro_B_ParamSet OBJ_cryptopro,32L,3L - -#define SN_id_GostR3410_94_CryptoPro_C_ParamSet "id-GostR3410-94-CryptoPro-C-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_C_ParamSet 834 -#define OBJ_id_GostR3410_94_CryptoPro_C_ParamSet OBJ_cryptopro,32L,4L - -#define SN_id_GostR3410_94_CryptoPro_D_ParamSet "id-GostR3410-94-CryptoPro-D-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_D_ParamSet 835 -#define OBJ_id_GostR3410_94_CryptoPro_D_ParamSet OBJ_cryptopro,32L,5L - -#define SN_id_GostR3410_94_CryptoPro_XchA_ParamSet "id-GostR3410-94-CryptoPro-XchA-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchA_ParamSet 836 -#define OBJ_id_GostR3410_94_CryptoPro_XchA_ParamSet OBJ_cryptopro,33L,1L - -#define SN_id_GostR3410_94_CryptoPro_XchB_ParamSet "id-GostR3410-94-CryptoPro-XchB-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchB_ParamSet 837 -#define OBJ_id_GostR3410_94_CryptoPro_XchB_ParamSet OBJ_cryptopro,33L,2L - -#define SN_id_GostR3410_94_CryptoPro_XchC_ParamSet "id-GostR3410-94-CryptoPro-XchC-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchC_ParamSet 838 -#define OBJ_id_GostR3410_94_CryptoPro_XchC_ParamSet OBJ_cryptopro,33L,3L - -#define SN_id_GostR3410_2001_TestParamSet "id-GostR3410-2001-TestParamSet" -#define NID_id_GostR3410_2001_TestParamSet 839 -#define OBJ_id_GostR3410_2001_TestParamSet OBJ_cryptopro,35L,0L - -#define SN_id_GostR3410_2001_CryptoPro_A_ParamSet "id-GostR3410-2001-CryptoPro-A-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_A_ParamSet 840 -#define OBJ_id_GostR3410_2001_CryptoPro_A_ParamSet OBJ_cryptopro,35L,1L - -#define SN_id_GostR3410_2001_CryptoPro_B_ParamSet "id-GostR3410-2001-CryptoPro-B-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_B_ParamSet 841 -#define OBJ_id_GostR3410_2001_CryptoPro_B_ParamSet OBJ_cryptopro,35L,2L - -#define SN_id_GostR3410_2001_CryptoPro_C_ParamSet "id-GostR3410-2001-CryptoPro-C-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_C_ParamSet 842 -#define OBJ_id_GostR3410_2001_CryptoPro_C_ParamSet OBJ_cryptopro,35L,3L - -#define SN_id_GostR3410_2001_CryptoPro_XchA_ParamSet "id-GostR3410-2001-CryptoPro-XchA-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet 843 -#define OBJ_id_GostR3410_2001_CryptoPro_XchA_ParamSet OBJ_cryptopro,36L,0L - -#define SN_id_GostR3410_2001_CryptoPro_XchB_ParamSet "id-GostR3410-2001-CryptoPro-XchB-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet 844 -#define OBJ_id_GostR3410_2001_CryptoPro_XchB_ParamSet OBJ_cryptopro,36L,1L - -#define SN_id_GostR3410_94_a "id-GostR3410-94-a" -#define NID_id_GostR3410_94_a 845 -#define OBJ_id_GostR3410_94_a OBJ_id_GostR3410_94,1L - -#define SN_id_GostR3410_94_aBis "id-GostR3410-94-aBis" -#define NID_id_GostR3410_94_aBis 846 -#define OBJ_id_GostR3410_94_aBis OBJ_id_GostR3410_94,2L - -#define SN_id_GostR3410_94_b "id-GostR3410-94-b" -#define NID_id_GostR3410_94_b 847 -#define OBJ_id_GostR3410_94_b OBJ_id_GostR3410_94,3L - -#define SN_id_GostR3410_94_bBis "id-GostR3410-94-bBis" -#define NID_id_GostR3410_94_bBis 848 -#define OBJ_id_GostR3410_94_bBis OBJ_id_GostR3410_94,4L - -#define SN_id_Gost28147_89_cc "id-Gost28147-89-cc" -#define LN_id_Gost28147_89_cc "GOST 28147-89 Cryptocom ParamSet" -#define NID_id_Gost28147_89_cc 849 -#define OBJ_id_Gost28147_89_cc OBJ_cryptocom,1L,6L,1L - -#define SN_id_GostR3410_94_cc "gost94cc" -#define LN_id_GostR3410_94_cc "GOST 34.10-94 Cryptocom" -#define NID_id_GostR3410_94_cc 850 -#define OBJ_id_GostR3410_94_cc OBJ_cryptocom,1L,5L,3L - -#define SN_id_GostR3410_2001_cc "gost2001cc" -#define LN_id_GostR3410_2001_cc "GOST 34.10-2001 Cryptocom" -#define NID_id_GostR3410_2001_cc 851 -#define OBJ_id_GostR3410_2001_cc OBJ_cryptocom,1L,5L,4L - -#define SN_id_GostR3411_94_with_GostR3410_94_cc "id-GostR3411-94-with-GostR3410-94-cc" -#define LN_id_GostR3411_94_with_GostR3410_94_cc "GOST R 34.11-94 with GOST R 34.10-94 Cryptocom" -#define NID_id_GostR3411_94_with_GostR3410_94_cc 852 -#define OBJ_id_GostR3411_94_with_GostR3410_94_cc OBJ_cryptocom,1L,3L,3L - -#define SN_id_GostR3411_94_with_GostR3410_2001_cc "id-GostR3411-94-with-GostR3410-2001-cc" -#define LN_id_GostR3411_94_with_GostR3410_2001_cc "GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom" -#define NID_id_GostR3411_94_with_GostR3410_2001_cc 853 -#define OBJ_id_GostR3411_94_with_GostR3410_2001_cc OBJ_cryptocom,1L,3L,4L - -#define SN_id_GostR3410_2001_ParamSet_cc "id-GostR3410-2001-ParamSet-cc" -#define LN_id_GostR3410_2001_ParamSet_cc "GOST R 3410-2001 Parameter Set Cryptocom" -#define NID_id_GostR3410_2001_ParamSet_cc 854 -#define OBJ_id_GostR3410_2001_ParamSet_cc OBJ_cryptocom,1L,8L,1L - -#define SN_id_tc26_algorithms "id-tc26-algorithms" -#define NID_id_tc26_algorithms 977 -#define OBJ_id_tc26_algorithms OBJ_id_tc26,1L - -#define SN_id_tc26_sign "id-tc26-sign" -#define NID_id_tc26_sign 978 -#define OBJ_id_tc26_sign OBJ_id_tc26_algorithms,1L - -#define SN_id_GostR3410_2012_256 "gost2012_256" -#define LN_id_GostR3410_2012_256 "GOST R 34.10-2012 with 256 bit modulus" -#define NID_id_GostR3410_2012_256 979 -#define OBJ_id_GostR3410_2012_256 OBJ_id_tc26_sign,1L - -#define SN_id_GostR3410_2012_512 "gost2012_512" -#define LN_id_GostR3410_2012_512 "GOST R 34.10-2012 with 512 bit modulus" -#define NID_id_GostR3410_2012_512 980 -#define OBJ_id_GostR3410_2012_512 OBJ_id_tc26_sign,2L - -#define SN_id_tc26_digest "id-tc26-digest" -#define NID_id_tc26_digest 981 -#define OBJ_id_tc26_digest OBJ_id_tc26_algorithms,2L - -#define SN_id_GostR3411_2012_256 "md_gost12_256" -#define LN_id_GostR3411_2012_256 "GOST R 34.11-2012 with 256 bit hash" -#define NID_id_GostR3411_2012_256 982 -#define OBJ_id_GostR3411_2012_256 OBJ_id_tc26_digest,2L - -#define SN_id_GostR3411_2012_512 "md_gost12_512" -#define LN_id_GostR3411_2012_512 "GOST R 34.11-2012 with 512 bit hash" -#define NID_id_GostR3411_2012_512 983 -#define OBJ_id_GostR3411_2012_512 OBJ_id_tc26_digest,3L - -#define SN_id_tc26_signwithdigest "id-tc26-signwithdigest" -#define NID_id_tc26_signwithdigest 984 -#define OBJ_id_tc26_signwithdigest OBJ_id_tc26_algorithms,3L - -#define SN_id_tc26_signwithdigest_gost3410_2012_256 "id-tc26-signwithdigest-gost3410-2012-256" -#define LN_id_tc26_signwithdigest_gost3410_2012_256 "GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)" -#define NID_id_tc26_signwithdigest_gost3410_2012_256 985 -#define OBJ_id_tc26_signwithdigest_gost3410_2012_256 OBJ_id_tc26_signwithdigest,2L - -#define SN_id_tc26_signwithdigest_gost3410_2012_512 "id-tc26-signwithdigest-gost3410-2012-512" -#define LN_id_tc26_signwithdigest_gost3410_2012_512 "GOST R 34.10-2012 with GOST R 34.11-2012 (512 bit)" -#define NID_id_tc26_signwithdigest_gost3410_2012_512 986 -#define OBJ_id_tc26_signwithdigest_gost3410_2012_512 OBJ_id_tc26_signwithdigest,3L - -#define SN_id_tc26_mac "id-tc26-mac" -#define NID_id_tc26_mac 987 -#define OBJ_id_tc26_mac OBJ_id_tc26_algorithms,4L - -#define SN_id_tc26_hmac_gost_3411_2012_256 "id-tc26-hmac-gost-3411-2012-256" -#define LN_id_tc26_hmac_gost_3411_2012_256 "HMAC GOST 34.11-2012 256 bit" -#define NID_id_tc26_hmac_gost_3411_2012_256 988 -#define OBJ_id_tc26_hmac_gost_3411_2012_256 OBJ_id_tc26_mac,1L - -#define SN_id_tc26_hmac_gost_3411_2012_512 "id-tc26-hmac-gost-3411-2012-512" -#define LN_id_tc26_hmac_gost_3411_2012_512 "HMAC GOST 34.11-2012 512 bit" -#define NID_id_tc26_hmac_gost_3411_2012_512 989 -#define OBJ_id_tc26_hmac_gost_3411_2012_512 OBJ_id_tc26_mac,2L - -#define SN_id_tc26_cipher "id-tc26-cipher" -#define NID_id_tc26_cipher 990 -#define OBJ_id_tc26_cipher OBJ_id_tc26_algorithms,5L - -#define SN_id_tc26_cipher_gostr3412_2015_magma "id-tc26-cipher-gostr3412-2015-magma" -#define NID_id_tc26_cipher_gostr3412_2015_magma 1173 -#define OBJ_id_tc26_cipher_gostr3412_2015_magma OBJ_id_tc26_cipher,1L - -#define SN_magma_ctr_acpkm "magma-ctr-acpkm" -#define NID_magma_ctr_acpkm 1174 -#define OBJ_magma_ctr_acpkm OBJ_id_tc26_cipher_gostr3412_2015_magma,1L - -#define SN_magma_ctr_acpkm_omac "magma-ctr-acpkm-omac" -#define NID_magma_ctr_acpkm_omac 1175 -#define OBJ_magma_ctr_acpkm_omac OBJ_id_tc26_cipher_gostr3412_2015_magma,2L - -#define SN_id_tc26_cipher_gostr3412_2015_kuznyechik "id-tc26-cipher-gostr3412-2015-kuznyechik" -#define NID_id_tc26_cipher_gostr3412_2015_kuznyechik 1176 -#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik OBJ_id_tc26_cipher,2L - -#define SN_kuznyechik_ctr_acpkm "kuznyechik-ctr-acpkm" -#define NID_kuznyechik_ctr_acpkm 1177 -#define OBJ_kuznyechik_ctr_acpkm OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik,1L - -#define SN_kuznyechik_ctr_acpkm_omac "kuznyechik-ctr-acpkm-omac" -#define NID_kuznyechik_ctr_acpkm_omac 1178 -#define OBJ_kuznyechik_ctr_acpkm_omac OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik,2L - -#define SN_id_tc26_agreement "id-tc26-agreement" -#define NID_id_tc26_agreement 991 -#define OBJ_id_tc26_agreement OBJ_id_tc26_algorithms,6L - -#define SN_id_tc26_agreement_gost_3410_2012_256 "id-tc26-agreement-gost-3410-2012-256" -#define NID_id_tc26_agreement_gost_3410_2012_256 992 -#define OBJ_id_tc26_agreement_gost_3410_2012_256 OBJ_id_tc26_agreement,1L - -#define SN_id_tc26_agreement_gost_3410_2012_512 "id-tc26-agreement-gost-3410-2012-512" -#define NID_id_tc26_agreement_gost_3410_2012_512 993 -#define OBJ_id_tc26_agreement_gost_3410_2012_512 OBJ_id_tc26_agreement,2L - -#define SN_id_tc26_wrap "id-tc26-wrap" -#define NID_id_tc26_wrap 1179 -#define OBJ_id_tc26_wrap OBJ_id_tc26_algorithms,7L - -#define SN_id_tc26_wrap_gostr3412_2015_magma "id-tc26-wrap-gostr3412-2015-magma" -#define NID_id_tc26_wrap_gostr3412_2015_magma 1180 -#define OBJ_id_tc26_wrap_gostr3412_2015_magma OBJ_id_tc26_wrap,1L - -#define SN_magma_kexp15 "magma-kexp15" -#define NID_magma_kexp15 1181 -#define OBJ_magma_kexp15 OBJ_id_tc26_wrap_gostr3412_2015_magma,1L - -#define SN_id_tc26_wrap_gostr3412_2015_kuznyechik "id-tc26-wrap-gostr3412-2015-kuznyechik" -#define NID_id_tc26_wrap_gostr3412_2015_kuznyechik 1182 -#define OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik OBJ_id_tc26_wrap,2L - -#define SN_kuznyechik_kexp15 "kuznyechik-kexp15" -#define NID_kuznyechik_kexp15 1183 -#define OBJ_kuznyechik_kexp15 OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik,1L - -#define SN_id_tc26_constants "id-tc26-constants" -#define NID_id_tc26_constants 994 -#define OBJ_id_tc26_constants OBJ_id_tc26,2L - -#define SN_id_tc26_sign_constants "id-tc26-sign-constants" -#define NID_id_tc26_sign_constants 995 -#define OBJ_id_tc26_sign_constants OBJ_id_tc26_constants,1L - -#define SN_id_tc26_gost_3410_2012_256_constants "id-tc26-gost-3410-2012-256-constants" -#define NID_id_tc26_gost_3410_2012_256_constants 1147 -#define OBJ_id_tc26_gost_3410_2012_256_constants OBJ_id_tc26_sign_constants,1L - -#define SN_id_tc26_gost_3410_2012_256_paramSetA "id-tc26-gost-3410-2012-256-paramSetA" -#define LN_id_tc26_gost_3410_2012_256_paramSetA "GOST R 34.10-2012 (256 bit) ParamSet A" -#define NID_id_tc26_gost_3410_2012_256_paramSetA 1148 -#define OBJ_id_tc26_gost_3410_2012_256_paramSetA OBJ_id_tc26_gost_3410_2012_256_constants,1L - -#define SN_id_tc26_gost_3410_2012_256_paramSetB "id-tc26-gost-3410-2012-256-paramSetB" -#define LN_id_tc26_gost_3410_2012_256_paramSetB "GOST R 34.10-2012 (256 bit) ParamSet B" -#define NID_id_tc26_gost_3410_2012_256_paramSetB 1184 -#define OBJ_id_tc26_gost_3410_2012_256_paramSetB OBJ_id_tc26_gost_3410_2012_256_constants,2L - -#define SN_id_tc26_gost_3410_2012_256_paramSetC "id-tc26-gost-3410-2012-256-paramSetC" -#define LN_id_tc26_gost_3410_2012_256_paramSetC "GOST R 34.10-2012 (256 bit) ParamSet C" -#define NID_id_tc26_gost_3410_2012_256_paramSetC 1185 -#define OBJ_id_tc26_gost_3410_2012_256_paramSetC OBJ_id_tc26_gost_3410_2012_256_constants,3L - -#define SN_id_tc26_gost_3410_2012_256_paramSetD "id-tc26-gost-3410-2012-256-paramSetD" -#define LN_id_tc26_gost_3410_2012_256_paramSetD "GOST R 34.10-2012 (256 bit) ParamSet D" -#define NID_id_tc26_gost_3410_2012_256_paramSetD 1186 -#define OBJ_id_tc26_gost_3410_2012_256_paramSetD OBJ_id_tc26_gost_3410_2012_256_constants,4L - -#define SN_id_tc26_gost_3410_2012_512_constants "id-tc26-gost-3410-2012-512-constants" -#define NID_id_tc26_gost_3410_2012_512_constants 996 -#define OBJ_id_tc26_gost_3410_2012_512_constants OBJ_id_tc26_sign_constants,2L - -#define SN_id_tc26_gost_3410_2012_512_paramSetTest "id-tc26-gost-3410-2012-512-paramSetTest" -#define LN_id_tc26_gost_3410_2012_512_paramSetTest "GOST R 34.10-2012 (512 bit) testing parameter set" -#define NID_id_tc26_gost_3410_2012_512_paramSetTest 997 -#define OBJ_id_tc26_gost_3410_2012_512_paramSetTest OBJ_id_tc26_gost_3410_2012_512_constants,0L - -#define SN_id_tc26_gost_3410_2012_512_paramSetA "id-tc26-gost-3410-2012-512-paramSetA" -#define LN_id_tc26_gost_3410_2012_512_paramSetA "GOST R 34.10-2012 (512 bit) ParamSet A" -#define NID_id_tc26_gost_3410_2012_512_paramSetA 998 -#define OBJ_id_tc26_gost_3410_2012_512_paramSetA OBJ_id_tc26_gost_3410_2012_512_constants,1L - -#define SN_id_tc26_gost_3410_2012_512_paramSetB "id-tc26-gost-3410-2012-512-paramSetB" -#define LN_id_tc26_gost_3410_2012_512_paramSetB "GOST R 34.10-2012 (512 bit) ParamSet B" -#define NID_id_tc26_gost_3410_2012_512_paramSetB 999 -#define OBJ_id_tc26_gost_3410_2012_512_paramSetB OBJ_id_tc26_gost_3410_2012_512_constants,2L - -#define SN_id_tc26_gost_3410_2012_512_paramSetC "id-tc26-gost-3410-2012-512-paramSetC" -#define LN_id_tc26_gost_3410_2012_512_paramSetC "GOST R 34.10-2012 (512 bit) ParamSet C" -#define NID_id_tc26_gost_3410_2012_512_paramSetC 1149 -#define OBJ_id_tc26_gost_3410_2012_512_paramSetC OBJ_id_tc26_gost_3410_2012_512_constants,3L - -#define SN_id_tc26_digest_constants "id-tc26-digest-constants" -#define NID_id_tc26_digest_constants 1000 -#define OBJ_id_tc26_digest_constants OBJ_id_tc26_constants,2L - -#define SN_id_tc26_cipher_constants "id-tc26-cipher-constants" -#define NID_id_tc26_cipher_constants 1001 -#define OBJ_id_tc26_cipher_constants OBJ_id_tc26_constants,5L - -#define SN_id_tc26_gost_28147_constants "id-tc26-gost-28147-constants" -#define NID_id_tc26_gost_28147_constants 1002 -#define OBJ_id_tc26_gost_28147_constants OBJ_id_tc26_cipher_constants,1L - -#define SN_id_tc26_gost_28147_param_Z "id-tc26-gost-28147-param-Z" -#define LN_id_tc26_gost_28147_param_Z "GOST 28147-89 TC26 parameter set" -#define NID_id_tc26_gost_28147_param_Z 1003 -#define OBJ_id_tc26_gost_28147_param_Z OBJ_id_tc26_gost_28147_constants,1L - -#define SN_INN "INN" -#define LN_INN "INN" -#define NID_INN 1004 -#define OBJ_INN OBJ_member_body,643L,3L,131L,1L,1L - -#define SN_OGRN "OGRN" -#define LN_OGRN "OGRN" -#define NID_OGRN 1005 -#define OBJ_OGRN OBJ_member_body,643L,100L,1L - -#define SN_SNILS "SNILS" -#define LN_SNILS "SNILS" -#define NID_SNILS 1006 -#define OBJ_SNILS OBJ_member_body,643L,100L,3L - -#define SN_OGRNIP "OGRNIP" -#define LN_OGRNIP "OGRNIP" -#define NID_OGRNIP 1226 -#define OBJ_OGRNIP OBJ_member_body,643L,100L,5L - -#define SN_subjectSignTool "subjectSignTool" -#define LN_subjectSignTool "Signing Tool of Subject" -#define NID_subjectSignTool 1007 -#define OBJ_subjectSignTool OBJ_member_body,643L,100L,111L - -#define SN_issuerSignTool "issuerSignTool" -#define LN_issuerSignTool "Signing Tool of Issuer" -#define NID_issuerSignTool 1008 -#define OBJ_issuerSignTool OBJ_member_body,643L,100L,112L - -#define SN_classSignTool "classSignTool" -#define LN_classSignTool "Class of Signing Tool" -#define NID_classSignTool 1227 -#define OBJ_classSignTool OBJ_member_body,643L,100L,113L - -#define SN_classSignToolKC1 "classSignToolKC1" -#define LN_classSignToolKC1 "Class of Signing Tool KC1" -#define NID_classSignToolKC1 1228 -#define OBJ_classSignToolKC1 OBJ_member_body,643L,100L,113L,1L - -#define SN_classSignToolKC2 "classSignToolKC2" -#define LN_classSignToolKC2 "Class of Signing Tool KC2" -#define NID_classSignToolKC2 1229 -#define OBJ_classSignToolKC2 OBJ_member_body,643L,100L,113L,2L - -#define SN_classSignToolKC3 "classSignToolKC3" -#define LN_classSignToolKC3 "Class of Signing Tool KC3" -#define NID_classSignToolKC3 1230 -#define OBJ_classSignToolKC3 OBJ_member_body,643L,100L,113L,3L - -#define SN_classSignToolKB1 "classSignToolKB1" -#define LN_classSignToolKB1 "Class of Signing Tool KB1" -#define NID_classSignToolKB1 1231 -#define OBJ_classSignToolKB1 OBJ_member_body,643L,100L,113L,4L - -#define SN_classSignToolKB2 "classSignToolKB2" -#define LN_classSignToolKB2 "Class of Signing Tool KB2" -#define NID_classSignToolKB2 1232 -#define OBJ_classSignToolKB2 OBJ_member_body,643L,100L,113L,5L - -#define SN_classSignToolKA1 "classSignToolKA1" -#define LN_classSignToolKA1 "Class of Signing Tool KA1" -#define NID_classSignToolKA1 1233 -#define OBJ_classSignToolKA1 OBJ_member_body,643L,100L,113L,6L - -#define SN_kuznyechik_ecb "kuznyechik-ecb" -#define NID_kuznyechik_ecb 1012 - -#define SN_kuznyechik_ctr "kuznyechik-ctr" -#define NID_kuznyechik_ctr 1013 - -#define SN_kuznyechik_ofb "kuznyechik-ofb" -#define NID_kuznyechik_ofb 1014 - -#define SN_kuznyechik_cbc "kuznyechik-cbc" -#define NID_kuznyechik_cbc 1015 - -#define SN_kuznyechik_cfb "kuznyechik-cfb" -#define NID_kuznyechik_cfb 1016 - -#define SN_kuznyechik_mac "kuznyechik-mac" -#define NID_kuznyechik_mac 1017 - -#define SN_magma_ecb "magma-ecb" -#define NID_magma_ecb 1187 - -#define SN_magma_ctr "magma-ctr" -#define NID_magma_ctr 1188 - -#define SN_magma_ofb "magma-ofb" -#define NID_magma_ofb 1189 - -#define SN_magma_cbc "magma-cbc" -#define NID_magma_cbc 1190 - -#define SN_magma_cfb "magma-cfb" -#define NID_magma_cfb 1191 - -#define SN_magma_mac "magma-mac" -#define NID_magma_mac 1192 - -#define SN_camellia_128_cbc "CAMELLIA-128-CBC" -#define LN_camellia_128_cbc "camellia-128-cbc" -#define NID_camellia_128_cbc 751 -#define OBJ_camellia_128_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,2L - -#define SN_camellia_192_cbc "CAMELLIA-192-CBC" -#define LN_camellia_192_cbc "camellia-192-cbc" -#define NID_camellia_192_cbc 752 -#define OBJ_camellia_192_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,3L - -#define SN_camellia_256_cbc "CAMELLIA-256-CBC" -#define LN_camellia_256_cbc "camellia-256-cbc" -#define NID_camellia_256_cbc 753 -#define OBJ_camellia_256_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,4L - -#define SN_id_camellia128_wrap "id-camellia128-wrap" -#define NID_id_camellia128_wrap 907 -#define OBJ_id_camellia128_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,2L - -#define SN_id_camellia192_wrap "id-camellia192-wrap" -#define NID_id_camellia192_wrap 908 -#define OBJ_id_camellia192_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,3L - -#define SN_id_camellia256_wrap "id-camellia256-wrap" -#define NID_id_camellia256_wrap 909 -#define OBJ_id_camellia256_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,4L - -#define OBJ_ntt_ds 0L,3L,4401L,5L - -#define OBJ_camellia OBJ_ntt_ds,3L,1L,9L - -#define SN_camellia_128_ecb "CAMELLIA-128-ECB" -#define LN_camellia_128_ecb "camellia-128-ecb" -#define NID_camellia_128_ecb 754 -#define OBJ_camellia_128_ecb OBJ_camellia,1L - -#define SN_camellia_128_ofb128 "CAMELLIA-128-OFB" -#define LN_camellia_128_ofb128 "camellia-128-ofb" -#define NID_camellia_128_ofb128 766 -#define OBJ_camellia_128_ofb128 OBJ_camellia,3L - -#define SN_camellia_128_cfb128 "CAMELLIA-128-CFB" -#define LN_camellia_128_cfb128 "camellia-128-cfb" -#define NID_camellia_128_cfb128 757 -#define OBJ_camellia_128_cfb128 OBJ_camellia,4L - -#define SN_camellia_128_gcm "CAMELLIA-128-GCM" -#define LN_camellia_128_gcm "camellia-128-gcm" -#define NID_camellia_128_gcm 961 -#define OBJ_camellia_128_gcm OBJ_camellia,6L - -#define SN_camellia_128_ccm "CAMELLIA-128-CCM" -#define LN_camellia_128_ccm "camellia-128-ccm" -#define NID_camellia_128_ccm 962 -#define OBJ_camellia_128_ccm OBJ_camellia,7L - -#define SN_camellia_128_ctr "CAMELLIA-128-CTR" -#define LN_camellia_128_ctr "camellia-128-ctr" -#define NID_camellia_128_ctr 963 -#define OBJ_camellia_128_ctr OBJ_camellia,9L - -#define SN_camellia_128_cmac "CAMELLIA-128-CMAC" -#define LN_camellia_128_cmac "camellia-128-cmac" -#define NID_camellia_128_cmac 964 -#define OBJ_camellia_128_cmac OBJ_camellia,10L - -#define SN_camellia_192_ecb "CAMELLIA-192-ECB" -#define LN_camellia_192_ecb "camellia-192-ecb" -#define NID_camellia_192_ecb 755 -#define OBJ_camellia_192_ecb OBJ_camellia,21L - -#define SN_camellia_192_ofb128 "CAMELLIA-192-OFB" -#define LN_camellia_192_ofb128 "camellia-192-ofb" -#define NID_camellia_192_ofb128 767 -#define OBJ_camellia_192_ofb128 OBJ_camellia,23L - -#define SN_camellia_192_cfb128 "CAMELLIA-192-CFB" -#define LN_camellia_192_cfb128 "camellia-192-cfb" -#define NID_camellia_192_cfb128 758 -#define OBJ_camellia_192_cfb128 OBJ_camellia,24L - -#define SN_camellia_192_gcm "CAMELLIA-192-GCM" -#define LN_camellia_192_gcm "camellia-192-gcm" -#define NID_camellia_192_gcm 965 -#define OBJ_camellia_192_gcm OBJ_camellia,26L - -#define SN_camellia_192_ccm "CAMELLIA-192-CCM" -#define LN_camellia_192_ccm "camellia-192-ccm" -#define NID_camellia_192_ccm 966 -#define OBJ_camellia_192_ccm OBJ_camellia,27L - -#define SN_camellia_192_ctr "CAMELLIA-192-CTR" -#define LN_camellia_192_ctr "camellia-192-ctr" -#define NID_camellia_192_ctr 967 -#define OBJ_camellia_192_ctr OBJ_camellia,29L - -#define SN_camellia_192_cmac "CAMELLIA-192-CMAC" -#define LN_camellia_192_cmac "camellia-192-cmac" -#define NID_camellia_192_cmac 968 -#define OBJ_camellia_192_cmac OBJ_camellia,30L - -#define SN_camellia_256_ecb "CAMELLIA-256-ECB" -#define LN_camellia_256_ecb "camellia-256-ecb" -#define NID_camellia_256_ecb 756 -#define OBJ_camellia_256_ecb OBJ_camellia,41L - -#define SN_camellia_256_ofb128 "CAMELLIA-256-OFB" -#define LN_camellia_256_ofb128 "camellia-256-ofb" -#define NID_camellia_256_ofb128 768 -#define OBJ_camellia_256_ofb128 OBJ_camellia,43L - -#define SN_camellia_256_cfb128 "CAMELLIA-256-CFB" -#define LN_camellia_256_cfb128 "camellia-256-cfb" -#define NID_camellia_256_cfb128 759 -#define OBJ_camellia_256_cfb128 OBJ_camellia,44L - -#define SN_camellia_256_gcm "CAMELLIA-256-GCM" -#define LN_camellia_256_gcm "camellia-256-gcm" -#define NID_camellia_256_gcm 969 -#define OBJ_camellia_256_gcm OBJ_camellia,46L - -#define SN_camellia_256_ccm "CAMELLIA-256-CCM" -#define LN_camellia_256_ccm "camellia-256-ccm" -#define NID_camellia_256_ccm 970 -#define OBJ_camellia_256_ccm OBJ_camellia,47L - -#define SN_camellia_256_ctr "CAMELLIA-256-CTR" -#define LN_camellia_256_ctr "camellia-256-ctr" -#define NID_camellia_256_ctr 971 -#define OBJ_camellia_256_ctr OBJ_camellia,49L - -#define SN_camellia_256_cmac "CAMELLIA-256-CMAC" -#define LN_camellia_256_cmac "camellia-256-cmac" -#define NID_camellia_256_cmac 972 -#define OBJ_camellia_256_cmac OBJ_camellia,50L - -#define SN_camellia_128_cfb1 "CAMELLIA-128-CFB1" -#define LN_camellia_128_cfb1 "camellia-128-cfb1" -#define NID_camellia_128_cfb1 760 - -#define SN_camellia_192_cfb1 "CAMELLIA-192-CFB1" -#define LN_camellia_192_cfb1 "camellia-192-cfb1" -#define NID_camellia_192_cfb1 761 - -#define SN_camellia_256_cfb1 "CAMELLIA-256-CFB1" -#define LN_camellia_256_cfb1 "camellia-256-cfb1" -#define NID_camellia_256_cfb1 762 - -#define SN_camellia_128_cfb8 "CAMELLIA-128-CFB8" -#define LN_camellia_128_cfb8 "camellia-128-cfb8" -#define NID_camellia_128_cfb8 763 - -#define SN_camellia_192_cfb8 "CAMELLIA-192-CFB8" -#define LN_camellia_192_cfb8 "camellia-192-cfb8" -#define NID_camellia_192_cfb8 764 - -#define SN_camellia_256_cfb8 "CAMELLIA-256-CFB8" -#define LN_camellia_256_cfb8 "camellia-256-cfb8" -#define NID_camellia_256_cfb8 765 - -#define OBJ_aria 1L,2L,410L,200046L,1L,1L - -#define SN_aria_128_ecb "ARIA-128-ECB" -#define LN_aria_128_ecb "aria-128-ecb" -#define NID_aria_128_ecb 1065 -#define OBJ_aria_128_ecb OBJ_aria,1L - -#define SN_aria_128_cbc "ARIA-128-CBC" -#define LN_aria_128_cbc "aria-128-cbc" -#define NID_aria_128_cbc 1066 -#define OBJ_aria_128_cbc OBJ_aria,2L - -#define SN_aria_128_cfb128 "ARIA-128-CFB" -#define LN_aria_128_cfb128 "aria-128-cfb" -#define NID_aria_128_cfb128 1067 -#define OBJ_aria_128_cfb128 OBJ_aria,3L - -#define SN_aria_128_ofb128 "ARIA-128-OFB" -#define LN_aria_128_ofb128 "aria-128-ofb" -#define NID_aria_128_ofb128 1068 -#define OBJ_aria_128_ofb128 OBJ_aria,4L - -#define SN_aria_128_ctr "ARIA-128-CTR" -#define LN_aria_128_ctr "aria-128-ctr" -#define NID_aria_128_ctr 1069 -#define OBJ_aria_128_ctr OBJ_aria,5L - -#define SN_aria_192_ecb "ARIA-192-ECB" -#define LN_aria_192_ecb "aria-192-ecb" -#define NID_aria_192_ecb 1070 -#define OBJ_aria_192_ecb OBJ_aria,6L - -#define SN_aria_192_cbc "ARIA-192-CBC" -#define LN_aria_192_cbc "aria-192-cbc" -#define NID_aria_192_cbc 1071 -#define OBJ_aria_192_cbc OBJ_aria,7L - -#define SN_aria_192_cfb128 "ARIA-192-CFB" -#define LN_aria_192_cfb128 "aria-192-cfb" -#define NID_aria_192_cfb128 1072 -#define OBJ_aria_192_cfb128 OBJ_aria,8L - -#define SN_aria_192_ofb128 "ARIA-192-OFB" -#define LN_aria_192_ofb128 "aria-192-ofb" -#define NID_aria_192_ofb128 1073 -#define OBJ_aria_192_ofb128 OBJ_aria,9L - -#define SN_aria_192_ctr "ARIA-192-CTR" -#define LN_aria_192_ctr "aria-192-ctr" -#define NID_aria_192_ctr 1074 -#define OBJ_aria_192_ctr OBJ_aria,10L - -#define SN_aria_256_ecb "ARIA-256-ECB" -#define LN_aria_256_ecb "aria-256-ecb" -#define NID_aria_256_ecb 1075 -#define OBJ_aria_256_ecb OBJ_aria,11L - -#define SN_aria_256_cbc "ARIA-256-CBC" -#define LN_aria_256_cbc "aria-256-cbc" -#define NID_aria_256_cbc 1076 -#define OBJ_aria_256_cbc OBJ_aria,12L - -#define SN_aria_256_cfb128 "ARIA-256-CFB" -#define LN_aria_256_cfb128 "aria-256-cfb" -#define NID_aria_256_cfb128 1077 -#define OBJ_aria_256_cfb128 OBJ_aria,13L - -#define SN_aria_256_ofb128 "ARIA-256-OFB" -#define LN_aria_256_ofb128 "aria-256-ofb" -#define NID_aria_256_ofb128 1078 -#define OBJ_aria_256_ofb128 OBJ_aria,14L - -#define SN_aria_256_ctr "ARIA-256-CTR" -#define LN_aria_256_ctr "aria-256-ctr" -#define NID_aria_256_ctr 1079 -#define OBJ_aria_256_ctr OBJ_aria,15L - -#define SN_aria_128_cfb1 "ARIA-128-CFB1" -#define LN_aria_128_cfb1 "aria-128-cfb1" -#define NID_aria_128_cfb1 1080 - -#define SN_aria_192_cfb1 "ARIA-192-CFB1" -#define LN_aria_192_cfb1 "aria-192-cfb1" -#define NID_aria_192_cfb1 1081 - -#define SN_aria_256_cfb1 "ARIA-256-CFB1" -#define LN_aria_256_cfb1 "aria-256-cfb1" -#define NID_aria_256_cfb1 1082 - -#define SN_aria_128_cfb8 "ARIA-128-CFB8" -#define LN_aria_128_cfb8 "aria-128-cfb8" -#define NID_aria_128_cfb8 1083 - -#define SN_aria_192_cfb8 "ARIA-192-CFB8" -#define LN_aria_192_cfb8 "aria-192-cfb8" -#define NID_aria_192_cfb8 1084 - -#define SN_aria_256_cfb8 "ARIA-256-CFB8" -#define LN_aria_256_cfb8 "aria-256-cfb8" -#define NID_aria_256_cfb8 1085 - -#define SN_aria_128_ccm "ARIA-128-CCM" -#define LN_aria_128_ccm "aria-128-ccm" -#define NID_aria_128_ccm 1120 -#define OBJ_aria_128_ccm OBJ_aria,37L - -#define SN_aria_192_ccm "ARIA-192-CCM" -#define LN_aria_192_ccm "aria-192-ccm" -#define NID_aria_192_ccm 1121 -#define OBJ_aria_192_ccm OBJ_aria,38L - -#define SN_aria_256_ccm "ARIA-256-CCM" -#define LN_aria_256_ccm "aria-256-ccm" -#define NID_aria_256_ccm 1122 -#define OBJ_aria_256_ccm OBJ_aria,39L - -#define SN_aria_128_gcm "ARIA-128-GCM" -#define LN_aria_128_gcm "aria-128-gcm" -#define NID_aria_128_gcm 1123 -#define OBJ_aria_128_gcm OBJ_aria,34L - -#define SN_aria_192_gcm "ARIA-192-GCM" -#define LN_aria_192_gcm "aria-192-gcm" -#define NID_aria_192_gcm 1124 -#define OBJ_aria_192_gcm OBJ_aria,35L - -#define SN_aria_256_gcm "ARIA-256-GCM" -#define LN_aria_256_gcm "aria-256-gcm" -#define NID_aria_256_gcm 1125 -#define OBJ_aria_256_gcm OBJ_aria,36L - -#define SN_kisa "KISA" -#define LN_kisa "kisa" -#define NID_kisa 773 -#define OBJ_kisa OBJ_member_body,410L,200004L - -#define SN_seed_ecb "SEED-ECB" -#define LN_seed_ecb "seed-ecb" -#define NID_seed_ecb 776 -#define OBJ_seed_ecb OBJ_kisa,1L,3L - -#define SN_seed_cbc "SEED-CBC" -#define LN_seed_cbc "seed-cbc" -#define NID_seed_cbc 777 -#define OBJ_seed_cbc OBJ_kisa,1L,4L - -#define SN_seed_cfb128 "SEED-CFB" -#define LN_seed_cfb128 "seed-cfb" -#define NID_seed_cfb128 779 -#define OBJ_seed_cfb128 OBJ_kisa,1L,5L - -#define SN_seed_ofb128 "SEED-OFB" -#define LN_seed_ofb128 "seed-ofb" -#define NID_seed_ofb128 778 -#define OBJ_seed_ofb128 OBJ_kisa,1L,6L - -#define SN_sm4_ecb "SM4-ECB" -#define LN_sm4_ecb "sm4-ecb" -#define NID_sm4_ecb 1133 -#define OBJ_sm4_ecb OBJ_sm_scheme,104L,1L - -#define SN_sm4_cbc "SM4-CBC" -#define LN_sm4_cbc "sm4-cbc" -#define NID_sm4_cbc 1134 -#define OBJ_sm4_cbc OBJ_sm_scheme,104L,2L - -#define SN_sm4_ofb128 "SM4-OFB" -#define LN_sm4_ofb128 "sm4-ofb" -#define NID_sm4_ofb128 1135 -#define OBJ_sm4_ofb128 OBJ_sm_scheme,104L,3L - -#define SN_sm4_cfb128 "SM4-CFB" -#define LN_sm4_cfb128 "sm4-cfb" -#define NID_sm4_cfb128 1137 -#define OBJ_sm4_cfb128 OBJ_sm_scheme,104L,4L - -#define SN_sm4_cfb1 "SM4-CFB1" -#define LN_sm4_cfb1 "sm4-cfb1" -#define NID_sm4_cfb1 1136 -#define OBJ_sm4_cfb1 OBJ_sm_scheme,104L,5L - -#define SN_sm4_cfb8 "SM4-CFB8" -#define LN_sm4_cfb8 "sm4-cfb8" -#define NID_sm4_cfb8 1138 -#define OBJ_sm4_cfb8 OBJ_sm_scheme,104L,6L - -#define SN_sm4_ctr "SM4-CTR" -#define LN_sm4_ctr "sm4-ctr" -#define NID_sm4_ctr 1139 -#define OBJ_sm4_ctr OBJ_sm_scheme,104L,7L - -#define SN_sm4_gcm "SM4-GCM" -#define LN_sm4_gcm "sm4-gcm" -#define NID_sm4_gcm 1248 -#define OBJ_sm4_gcm OBJ_sm_scheme,104L,8L - -#define SN_sm4_ccm "SM4-CCM" -#define LN_sm4_ccm "sm4-ccm" -#define NID_sm4_ccm 1249 -#define OBJ_sm4_ccm OBJ_sm_scheme,104L,9L - -#define SN_sm4_xts "SM4-XTS" -#define LN_sm4_xts "sm4-xts" -#define NID_sm4_xts 1290 -#define OBJ_sm4_xts OBJ_sm_scheme,104L,10L - -#define SN_hmac "HMAC" -#define LN_hmac "hmac" -#define NID_hmac 855 - -#define SN_cmac "CMAC" -#define LN_cmac "cmac" -#define NID_cmac 894 - -#define SN_rc4_hmac_md5 "RC4-HMAC-MD5" -#define LN_rc4_hmac_md5 "rc4-hmac-md5" -#define NID_rc4_hmac_md5 915 - -#define SN_aes_128_cbc_hmac_sha1 "AES-128-CBC-HMAC-SHA1" -#define LN_aes_128_cbc_hmac_sha1 "aes-128-cbc-hmac-sha1" -#define NID_aes_128_cbc_hmac_sha1 916 - -#define SN_aes_192_cbc_hmac_sha1 "AES-192-CBC-HMAC-SHA1" -#define LN_aes_192_cbc_hmac_sha1 "aes-192-cbc-hmac-sha1" -#define NID_aes_192_cbc_hmac_sha1 917 - -#define SN_aes_256_cbc_hmac_sha1 "AES-256-CBC-HMAC-SHA1" -#define LN_aes_256_cbc_hmac_sha1 "aes-256-cbc-hmac-sha1" -#define NID_aes_256_cbc_hmac_sha1 918 - -#define SN_aes_128_cbc_hmac_sha256 "AES-128-CBC-HMAC-SHA256" -#define LN_aes_128_cbc_hmac_sha256 "aes-128-cbc-hmac-sha256" -#define NID_aes_128_cbc_hmac_sha256 948 - -#define SN_aes_192_cbc_hmac_sha256 "AES-192-CBC-HMAC-SHA256" -#define LN_aes_192_cbc_hmac_sha256 "aes-192-cbc-hmac-sha256" -#define NID_aes_192_cbc_hmac_sha256 949 - -#define SN_aes_256_cbc_hmac_sha256 "AES-256-CBC-HMAC-SHA256" -#define LN_aes_256_cbc_hmac_sha256 "aes-256-cbc-hmac-sha256" -#define NID_aes_256_cbc_hmac_sha256 950 - -#define SN_chacha20_poly1305 "ChaCha20-Poly1305" -#define LN_chacha20_poly1305 "chacha20-poly1305" -#define NID_chacha20_poly1305 1018 - -#define SN_chacha20 "ChaCha20" -#define LN_chacha20 "chacha20" -#define NID_chacha20 1019 - -#define SN_aes_128_cbc_hmac_sha1_etm "AES-128-CBC-HMAC-SHA1-ETM" -#define LN_aes_128_cbc_hmac_sha1_etm "aes-128-cbc-hmac-sha1-etm" -#define NID_aes_128_cbc_hmac_sha1_etm 1487 - -#define SN_aes_192_cbc_hmac_sha1_etm "AES-192-CBC-HMAC-SHA1-ETM" -#define LN_aes_192_cbc_hmac_sha1_etm "aes-192-cbc-hmac-sha1-etm" -#define NID_aes_192_cbc_hmac_sha1_etm 1488 - -#define SN_aes_256_cbc_hmac_sha1_etm "AES-256-CBC-HMAC-SHA1-ETM" -#define LN_aes_256_cbc_hmac_sha1_etm "aes-256-cbc-hmac-sha1-etm" -#define NID_aes_256_cbc_hmac_sha1_etm 1489 - -#define SN_aes_128_cbc_hmac_sha256_etm "AES-128-CBC-HMAC-SHA256-ETM" -#define LN_aes_128_cbc_hmac_sha256_etm "aes-128-cbc-hmac-sha256-etm" -#define NID_aes_128_cbc_hmac_sha256_etm 1490 - -#define SN_aes_192_cbc_hmac_sha256_etm "AES-192-CBC-HMAC-SHA256-ETM" -#define LN_aes_192_cbc_hmac_sha256_etm "aes-192-cbc-hmac-sha256-etm" -#define NID_aes_192_cbc_hmac_sha256_etm 1491 - -#define SN_aes_256_cbc_hmac_sha256_etm "AES-256-CBC-HMAC-SHA256-ETM" -#define LN_aes_256_cbc_hmac_sha256_etm "aes-256-cbc-hmac-sha256-etm" -#define NID_aes_256_cbc_hmac_sha256_etm 1492 - -#define SN_aes_128_cbc_hmac_sha512_etm "AES-128-CBC-HMAC-SHA512-ETM" -#define LN_aes_128_cbc_hmac_sha512_etm "aes-128-cbc-hmac-sha512-etm" -#define NID_aes_128_cbc_hmac_sha512_etm 1493 - -#define SN_aes_192_cbc_hmac_sha512_etm "AES-192-CBC-HMAC-SHA512-ETM" -#define LN_aes_192_cbc_hmac_sha512_etm "aes-192-cbc-hmac-sha512-etm" -#define NID_aes_192_cbc_hmac_sha512_etm 1494 - -#define SN_aes_256_cbc_hmac_sha512_etm "AES-256-CBC-HMAC-SHA512-ETM" -#define LN_aes_256_cbc_hmac_sha512_etm "aes-256-cbc-hmac-sha512-etm" -#define NID_aes_256_cbc_hmac_sha512_etm 1495 - -#define SN_dhpublicnumber "dhpublicnumber" -#define LN_dhpublicnumber "X9.42 DH" -#define NID_dhpublicnumber 920 -#define OBJ_dhpublicnumber OBJ_ISO_US,10046L,2L,1L - -#define SN_brainpoolP160r1 "brainpoolP160r1" -#define NID_brainpoolP160r1 921 -#define OBJ_brainpoolP160r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,1L - -#define SN_brainpoolP160t1 "brainpoolP160t1" -#define NID_brainpoolP160t1 922 -#define OBJ_brainpoolP160t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,2L - -#define SN_brainpoolP192r1 "brainpoolP192r1" -#define NID_brainpoolP192r1 923 -#define OBJ_brainpoolP192r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,3L - -#define SN_brainpoolP192t1 "brainpoolP192t1" -#define NID_brainpoolP192t1 924 -#define OBJ_brainpoolP192t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,4L - -#define SN_brainpoolP224r1 "brainpoolP224r1" -#define NID_brainpoolP224r1 925 -#define OBJ_brainpoolP224r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,5L - -#define SN_brainpoolP224t1 "brainpoolP224t1" -#define NID_brainpoolP224t1 926 -#define OBJ_brainpoolP224t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,6L - -#define SN_brainpoolP256r1 "brainpoolP256r1" -#define NID_brainpoolP256r1 927 -#define OBJ_brainpoolP256r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,7L - -#define SN_brainpoolP256r1tls13 "brainpoolP256r1tls13" -#define NID_brainpoolP256r1tls13 1285 - -#define SN_brainpoolP256t1 "brainpoolP256t1" -#define NID_brainpoolP256t1 928 -#define OBJ_brainpoolP256t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,8L - -#define SN_brainpoolP320r1 "brainpoolP320r1" -#define NID_brainpoolP320r1 929 -#define OBJ_brainpoolP320r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,9L - -#define SN_brainpoolP320t1 "brainpoolP320t1" -#define NID_brainpoolP320t1 930 -#define OBJ_brainpoolP320t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,10L - -#define SN_brainpoolP384r1 "brainpoolP384r1" -#define NID_brainpoolP384r1 931 -#define OBJ_brainpoolP384r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,11L - -#define SN_brainpoolP384r1tls13 "brainpoolP384r1tls13" -#define NID_brainpoolP384r1tls13 1286 - -#define SN_brainpoolP384t1 "brainpoolP384t1" -#define NID_brainpoolP384t1 932 -#define OBJ_brainpoolP384t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,12L - -#define SN_brainpoolP512r1 "brainpoolP512r1" -#define NID_brainpoolP512r1 933 -#define OBJ_brainpoolP512r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,13L - -#define SN_brainpoolP512r1tls13 "brainpoolP512r1tls13" -#define NID_brainpoolP512r1tls13 1287 - -#define SN_brainpoolP512t1 "brainpoolP512t1" -#define NID_brainpoolP512t1 934 -#define OBJ_brainpoolP512t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,14L - -#define OBJ_x9_63_scheme 1L,3L,133L,16L,840L,63L,0L - -#define OBJ_secg_scheme OBJ_certicom_arc,1L - -#define SN_dhSinglePass_stdDH_sha1kdf_scheme "dhSinglePass-stdDH-sha1kdf-scheme" -#define NID_dhSinglePass_stdDH_sha1kdf_scheme 936 -#define OBJ_dhSinglePass_stdDH_sha1kdf_scheme OBJ_x9_63_scheme,2L - -#define SN_dhSinglePass_stdDH_sha224kdf_scheme "dhSinglePass-stdDH-sha224kdf-scheme" -#define NID_dhSinglePass_stdDH_sha224kdf_scheme 937 -#define OBJ_dhSinglePass_stdDH_sha224kdf_scheme OBJ_secg_scheme,11L,0L - -#define SN_dhSinglePass_stdDH_sha256kdf_scheme "dhSinglePass-stdDH-sha256kdf-scheme" -#define NID_dhSinglePass_stdDH_sha256kdf_scheme 938 -#define OBJ_dhSinglePass_stdDH_sha256kdf_scheme OBJ_secg_scheme,11L,1L - -#define SN_dhSinglePass_stdDH_sha384kdf_scheme "dhSinglePass-stdDH-sha384kdf-scheme" -#define NID_dhSinglePass_stdDH_sha384kdf_scheme 939 -#define OBJ_dhSinglePass_stdDH_sha384kdf_scheme OBJ_secg_scheme,11L,2L - -#define SN_dhSinglePass_stdDH_sha512kdf_scheme "dhSinglePass-stdDH-sha512kdf-scheme" -#define NID_dhSinglePass_stdDH_sha512kdf_scheme 940 -#define OBJ_dhSinglePass_stdDH_sha512kdf_scheme OBJ_secg_scheme,11L,3L - -#define SN_dhSinglePass_cofactorDH_sha1kdf_scheme "dhSinglePass-cofactorDH-sha1kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha1kdf_scheme 941 -#define OBJ_dhSinglePass_cofactorDH_sha1kdf_scheme OBJ_x9_63_scheme,3L - -#define SN_dhSinglePass_cofactorDH_sha224kdf_scheme "dhSinglePass-cofactorDH-sha224kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha224kdf_scheme 942 -#define OBJ_dhSinglePass_cofactorDH_sha224kdf_scheme OBJ_secg_scheme,14L,0L - -#define SN_dhSinglePass_cofactorDH_sha256kdf_scheme "dhSinglePass-cofactorDH-sha256kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha256kdf_scheme 943 -#define OBJ_dhSinglePass_cofactorDH_sha256kdf_scheme OBJ_secg_scheme,14L,1L - -#define SN_dhSinglePass_cofactorDH_sha384kdf_scheme "dhSinglePass-cofactorDH-sha384kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha384kdf_scheme 944 -#define OBJ_dhSinglePass_cofactorDH_sha384kdf_scheme OBJ_secg_scheme,14L,2L - -#define SN_dhSinglePass_cofactorDH_sha512kdf_scheme "dhSinglePass-cofactorDH-sha512kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha512kdf_scheme 945 -#define OBJ_dhSinglePass_cofactorDH_sha512kdf_scheme OBJ_secg_scheme,14L,3L - -#define SN_dh_std_kdf "dh-std-kdf" -#define NID_dh_std_kdf 946 - -#define SN_dh_cofactor_kdf "dh-cofactor-kdf" -#define NID_dh_cofactor_kdf 947 - -#define SN_ct_precert_scts "ct_precert_scts" -#define LN_ct_precert_scts "CT Precertificate SCTs" -#define NID_ct_precert_scts 951 -#define OBJ_ct_precert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,2L - -#define SN_ct_precert_poison "ct_precert_poison" -#define LN_ct_precert_poison "CT Precertificate Poison" -#define NID_ct_precert_poison 952 -#define OBJ_ct_precert_poison 1L,3L,6L,1L,4L,1L,11129L,2L,4L,3L - -#define SN_ct_precert_signer "ct_precert_signer" -#define LN_ct_precert_signer "CT Precertificate Signer" -#define NID_ct_precert_signer 953 -#define OBJ_ct_precert_signer 1L,3L,6L,1L,4L,1L,11129L,2L,4L,4L - -#define SN_ct_cert_scts "ct_cert_scts" -#define LN_ct_cert_scts "CT Certificate SCTs" -#define NID_ct_cert_scts 954 -#define OBJ_ct_cert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,5L - -#define SN_jurisdictionLocalityName "jurisdictionL" -#define LN_jurisdictionLocalityName "jurisdictionLocalityName" -#define NID_jurisdictionLocalityName 955 -#define OBJ_jurisdictionLocalityName OBJ_ms_corp,60L,2L,1L,1L - -#define SN_jurisdictionStateOrProvinceName "jurisdictionST" -#define LN_jurisdictionStateOrProvinceName "jurisdictionStateOrProvinceName" -#define NID_jurisdictionStateOrProvinceName 956 -#define OBJ_jurisdictionStateOrProvinceName OBJ_ms_corp,60L,2L,1L,2L - -#define SN_jurisdictionCountryName "jurisdictionC" -#define LN_jurisdictionCountryName "jurisdictionCountryName" -#define NID_jurisdictionCountryName 957 -#define OBJ_jurisdictionCountryName OBJ_ms_corp,60L,2L,1L,3L - -#define SN_id_scrypt "id-scrypt" -#define LN_id_scrypt "scrypt" -#define NID_id_scrypt 973 -#define OBJ_id_scrypt 1L,3L,6L,1L,4L,1L,11591L,4L,11L - -#define SN_tls1_prf "TLS1-PRF" -#define LN_tls1_prf "tls1-prf" -#define NID_tls1_prf 1021 - -#define SN_hkdf "HKDF" -#define LN_hkdf "hkdf" -#define NID_hkdf 1036 - -#define SN_sshkdf "SSHKDF" -#define LN_sshkdf "sshkdf" -#define NID_sshkdf 1203 - -#define SN_sskdf "SSKDF" -#define LN_sskdf "sskdf" -#define NID_sskdf 1205 - -#define SN_x942kdf "X942KDF" -#define LN_x942kdf "x942kdf" -#define NID_x942kdf 1207 - -#define SN_x963kdf "X963KDF" -#define LN_x963kdf "x963kdf" -#define NID_x963kdf 1206 - -#define SN_id_pkinit "id-pkinit" -#define NID_id_pkinit 1031 -#define OBJ_id_pkinit 1L,3L,6L,1L,5L,2L,3L - -#define SN_pkInitClientAuth "pkInitClientAuth" -#define LN_pkInitClientAuth "PKINIT Client Auth" -#define NID_pkInitClientAuth 1032 -#define OBJ_pkInitClientAuth OBJ_id_pkinit,4L - -#define SN_pkInitKDC "pkInitKDC" -#define LN_pkInitKDC "Signing KDC Response" -#define NID_pkInitKDC 1033 -#define OBJ_pkInitKDC OBJ_id_pkinit,5L - -#define SN_X25519 "X25519" -#define NID_X25519 1034 -#define OBJ_X25519 1L,3L,101L,110L - -#define SN_X448 "X448" -#define NID_X448 1035 -#define OBJ_X448 1L,3L,101L,111L - -#define SN_ED25519 "ED25519" -#define NID_ED25519 1087 -#define OBJ_ED25519 1L,3L,101L,112L - -#define SN_ED448 "ED448" -#define NID_ED448 1088 -#define OBJ_ED448 1L,3L,101L,113L - -#define SN_kx_rsa "KxRSA" -#define LN_kx_rsa "kx-rsa" -#define NID_kx_rsa 1037 - -#define SN_kx_ecdhe "KxECDHE" -#define LN_kx_ecdhe "kx-ecdhe" -#define NID_kx_ecdhe 1038 - -#define SN_kx_dhe "KxDHE" -#define LN_kx_dhe "kx-dhe" -#define NID_kx_dhe 1039 - -#define SN_kx_ecdhe_psk "KxECDHE-PSK" -#define LN_kx_ecdhe_psk "kx-ecdhe-psk" -#define NID_kx_ecdhe_psk 1040 - -#define SN_kx_dhe_psk "KxDHE-PSK" -#define LN_kx_dhe_psk "kx-dhe-psk" -#define NID_kx_dhe_psk 1041 - -#define SN_kx_rsa_psk "KxRSA_PSK" -#define LN_kx_rsa_psk "kx-rsa-psk" -#define NID_kx_rsa_psk 1042 - -#define SN_kx_psk "KxPSK" -#define LN_kx_psk "kx-psk" -#define NID_kx_psk 1043 - -#define SN_kx_srp "KxSRP" -#define LN_kx_srp "kx-srp" -#define NID_kx_srp 1044 - -#define SN_kx_gost "KxGOST" -#define LN_kx_gost "kx-gost" -#define NID_kx_gost 1045 - -#define SN_kx_gost18 "KxGOST18" -#define LN_kx_gost18 "kx-gost18" -#define NID_kx_gost18 1218 - -#define SN_kx_any "KxANY" -#define LN_kx_any "kx-any" -#define NID_kx_any 1063 - -#define SN_auth_rsa "AuthRSA" -#define LN_auth_rsa "auth-rsa" -#define NID_auth_rsa 1046 - -#define SN_auth_ecdsa "AuthECDSA" -#define LN_auth_ecdsa "auth-ecdsa" -#define NID_auth_ecdsa 1047 - -#define SN_auth_psk "AuthPSK" -#define LN_auth_psk "auth-psk" -#define NID_auth_psk 1048 - -#define SN_auth_dss "AuthDSS" -#define LN_auth_dss "auth-dss" -#define NID_auth_dss 1049 - -#define SN_auth_gost01 "AuthGOST01" -#define LN_auth_gost01 "auth-gost01" -#define NID_auth_gost01 1050 - -#define SN_auth_gost12 "AuthGOST12" -#define LN_auth_gost12 "auth-gost12" -#define NID_auth_gost12 1051 - -#define SN_auth_srp "AuthSRP" -#define LN_auth_srp "auth-srp" -#define NID_auth_srp 1052 - -#define SN_auth_null "AuthNULL" -#define LN_auth_null "auth-null" -#define NID_auth_null 1053 - -#define SN_auth_any "AuthANY" -#define LN_auth_any "auth-any" -#define NID_auth_any 1064 - -#define SN_poly1305 "Poly1305" -#define LN_poly1305 "poly1305" -#define NID_poly1305 1061 - -#define SN_siphash "SipHash" -#define LN_siphash "siphash" -#define NID_siphash 1062 - -#define SN_ffdhe2048 "ffdhe2048" -#define NID_ffdhe2048 1126 - -#define SN_ffdhe3072 "ffdhe3072" -#define NID_ffdhe3072 1127 - -#define SN_ffdhe4096 "ffdhe4096" -#define NID_ffdhe4096 1128 - -#define SN_ffdhe6144 "ffdhe6144" -#define NID_ffdhe6144 1129 - -#define SN_ffdhe8192 "ffdhe8192" -#define NID_ffdhe8192 1130 - -#define SN_modp_1536 "modp_1536" -#define NID_modp_1536 1212 - -#define SN_modp_2048 "modp_2048" -#define NID_modp_2048 1213 - -#define SN_modp_3072 "modp_3072" -#define NID_modp_3072 1214 - -#define SN_modp_4096 "modp_4096" -#define NID_modp_4096 1215 - -#define SN_modp_6144 "modp_6144" -#define NID_modp_6144 1216 - -#define SN_modp_8192 "modp_8192" -#define NID_modp_8192 1217 - -#define SN_ISO_UA "ISO-UA" -#define NID_ISO_UA 1150 -#define OBJ_ISO_UA OBJ_member_body,804L - -#define SN_ua_pki "ua-pki" -#define NID_ua_pki 1151 -#define OBJ_ua_pki OBJ_ISO_UA,2L,1L,1L,1L - -#define SN_dstu28147 "dstu28147" -#define LN_dstu28147 "DSTU Gost 28147-2009" -#define NID_dstu28147 1152 -#define OBJ_dstu28147 OBJ_ua_pki,1L,1L,1L - -#define SN_dstu28147_ofb "dstu28147-ofb" -#define LN_dstu28147_ofb "DSTU Gost 28147-2009 OFB mode" -#define NID_dstu28147_ofb 1153 -#define OBJ_dstu28147_ofb OBJ_dstu28147,2L - -#define SN_dstu28147_cfb "dstu28147-cfb" -#define LN_dstu28147_cfb "DSTU Gost 28147-2009 CFB mode" -#define NID_dstu28147_cfb 1154 -#define OBJ_dstu28147_cfb OBJ_dstu28147,3L - -#define SN_dstu28147_wrap "dstu28147-wrap" -#define LN_dstu28147_wrap "DSTU Gost 28147-2009 key wrap" -#define NID_dstu28147_wrap 1155 -#define OBJ_dstu28147_wrap OBJ_dstu28147,5L - -#define SN_hmacWithDstu34311 "hmacWithDstu34311" -#define LN_hmacWithDstu34311 "HMAC DSTU Gost 34311-95" -#define NID_hmacWithDstu34311 1156 -#define OBJ_hmacWithDstu34311 OBJ_ua_pki,1L,1L,2L - -#define SN_dstu34311 "dstu34311" -#define LN_dstu34311 "DSTU Gost 34311-95" -#define NID_dstu34311 1157 -#define OBJ_dstu34311 OBJ_ua_pki,1L,2L,1L - -#define SN_dstu4145le "dstu4145le" -#define LN_dstu4145le "DSTU 4145-2002 little endian" -#define NID_dstu4145le 1158 -#define OBJ_dstu4145le OBJ_ua_pki,1L,3L,1L,1L - -#define SN_dstu4145be "dstu4145be" -#define LN_dstu4145be "DSTU 4145-2002 big endian" -#define NID_dstu4145be 1159 -#define OBJ_dstu4145be OBJ_dstu4145le,1L,1L - -#define SN_uacurve0 "uacurve0" -#define LN_uacurve0 "DSTU curve 0" -#define NID_uacurve0 1160 -#define OBJ_uacurve0 OBJ_dstu4145le,2L,0L - -#define SN_uacurve1 "uacurve1" -#define LN_uacurve1 "DSTU curve 1" -#define NID_uacurve1 1161 -#define OBJ_uacurve1 OBJ_dstu4145le,2L,1L - -#define SN_uacurve2 "uacurve2" -#define LN_uacurve2 "DSTU curve 2" -#define NID_uacurve2 1162 -#define OBJ_uacurve2 OBJ_dstu4145le,2L,2L - -#define SN_uacurve3 "uacurve3" -#define LN_uacurve3 "DSTU curve 3" -#define NID_uacurve3 1163 -#define OBJ_uacurve3 OBJ_dstu4145le,2L,3L - -#define SN_uacurve4 "uacurve4" -#define LN_uacurve4 "DSTU curve 4" -#define NID_uacurve4 1164 -#define OBJ_uacurve4 OBJ_dstu4145le,2L,4L - -#define SN_uacurve5 "uacurve5" -#define LN_uacurve5 "DSTU curve 5" -#define NID_uacurve5 1165 -#define OBJ_uacurve5 OBJ_dstu4145le,2L,5L - -#define SN_uacurve6 "uacurve6" -#define LN_uacurve6 "DSTU curve 6" -#define NID_uacurve6 1166 -#define OBJ_uacurve6 OBJ_dstu4145le,2L,6L - -#define SN_uacurve7 "uacurve7" -#define LN_uacurve7 "DSTU curve 7" -#define NID_uacurve7 1167 -#define OBJ_uacurve7 OBJ_dstu4145le,2L,7L - -#define SN_uacurve8 "uacurve8" -#define LN_uacurve8 "DSTU curve 8" -#define NID_uacurve8 1168 -#define OBJ_uacurve8 OBJ_dstu4145le,2L,8L - -#define SN_uacurve9 "uacurve9" -#define LN_uacurve9 "DSTU curve 9" -#define NID_uacurve9 1169 -#define OBJ_uacurve9 OBJ_dstu4145le,2L,9L - -#define SN_aes_128_siv "AES-128-SIV" -#define LN_aes_128_siv "aes-128-siv" -#define NID_aes_128_siv 1198 - -#define SN_aes_192_siv "AES-192-SIV" -#define LN_aes_192_siv "aes-192-siv" -#define NID_aes_192_siv 1199 - -#define SN_aes_256_siv "AES-256-SIV" -#define LN_aes_256_siv "aes-256-siv" -#define NID_aes_256_siv 1200 - -#define SN_oracle "oracle-organization" -#define LN_oracle "Oracle organization" -#define NID_oracle 1282 -#define OBJ_oracle OBJ_joint_iso_itu_t,16L,840L,1L,113894L - -#define SN_oracle_jdk_trustedkeyusage "oracle-jdk-trustedkeyusage" -#define LN_oracle_jdk_trustedkeyusage "Trusted key usage (Oracle)" -#define NID_oracle_jdk_trustedkeyusage 1283 -#define OBJ_oracle_jdk_trustedkeyusage OBJ_oracle,746875L,1L,1L - -#define SN_brotli "brotli" -#define LN_brotli "Brotli compression" -#define NID_brotli 1288 - -#define SN_zstd "zstd" -#define LN_zstd "Zstandard compression" -#define NID_zstd 1289 - -#define SN_tcg "tcg" -#define LN_tcg "Trusted Computing Group" -#define NID_tcg 1324 -#define OBJ_tcg 2L,23L,133L - -#define SN_tcg_tcpaSpecVersion "tcg-tcpaSpecVersion" -#define NID_tcg_tcpaSpecVersion 1325 -#define OBJ_tcg_tcpaSpecVersion OBJ_tcg,1L - -#define SN_tcg_attribute "tcg-attribute" -#define LN_tcg_attribute "Trusted Computing Group Attributes" -#define NID_tcg_attribute 1326 -#define OBJ_tcg_attribute OBJ_tcg,2L - -#define SN_tcg_protocol "tcg-protocol" -#define LN_tcg_protocol "Trusted Computing Group Protocols" -#define NID_tcg_protocol 1327 -#define OBJ_tcg_protocol OBJ_tcg,3L - -#define SN_tcg_algorithm "tcg-algorithm" -#define LN_tcg_algorithm "Trusted Computing Group Algorithms" -#define NID_tcg_algorithm 1328 -#define OBJ_tcg_algorithm OBJ_tcg,4L - -#define SN_tcg_platformClass "tcg-platformClass" -#define LN_tcg_platformClass "Trusted Computing Group Platform Classes" -#define NID_tcg_platformClass 1329 -#define OBJ_tcg_platformClass OBJ_tcg,5L - -#define SN_tcg_ce "tcg-ce" -#define LN_tcg_ce "Trusted Computing Group Certificate Extensions" -#define NID_tcg_ce 1330 -#define OBJ_tcg_ce OBJ_tcg,6L - -#define SN_tcg_kp "tcg-kp" -#define LN_tcg_kp "Trusted Computing Group Key Purposes" -#define NID_tcg_kp 1331 -#define OBJ_tcg_kp OBJ_tcg,8L - -#define SN_tcg_ca "tcg-ca" -#define LN_tcg_ca "Trusted Computing Group Certificate Policies" -#define NID_tcg_ca 1332 -#define OBJ_tcg_ca OBJ_tcg,11L - -#define SN_tcg_address "tcg-address" -#define LN_tcg_address "Trusted Computing Group Address Formats" -#define NID_tcg_address 1333 -#define OBJ_tcg_address OBJ_tcg,17L - -#define SN_tcg_registry "tcg-registry" -#define LN_tcg_registry "Trusted Computing Group Registry" -#define NID_tcg_registry 1334 -#define OBJ_tcg_registry OBJ_tcg,18L - -#define SN_tcg_traits "tcg-traits" -#define LN_tcg_traits "Trusted Computing Group Traits" -#define NID_tcg_traits 1335 -#define OBJ_tcg_traits OBJ_tcg,19L - -#define SN_tcg_common "tcg-common" -#define LN_tcg_common "Trusted Computing Group Common" -#define NID_tcg_common 1336 -#define OBJ_tcg_common OBJ_tcg_platformClass,1L - -#define SN_tcg_at_platformManufacturerStr "tcg-at-platformManufacturerStr" -#define LN_tcg_at_platformManufacturerStr "TCG Platform Manufacturer String" -#define NID_tcg_at_platformManufacturerStr 1337 -#define OBJ_tcg_at_platformManufacturerStr OBJ_tcg_common,1L - -#define SN_tcg_at_platformManufacturerId "tcg-at-platformManufacturerId" -#define LN_tcg_at_platformManufacturerId "TCG Platform Manufacturer ID" -#define NID_tcg_at_platformManufacturerId 1338 -#define OBJ_tcg_at_platformManufacturerId OBJ_tcg_common,2L - -#define SN_tcg_at_platformConfigUri "tcg-at-platformConfigUri" -#define LN_tcg_at_platformConfigUri "TCG Platform Configuration URI" -#define NID_tcg_at_platformConfigUri 1339 -#define OBJ_tcg_at_platformConfigUri OBJ_tcg_common,3L - -#define SN_tcg_at_platformModel "tcg-at-platformModel" -#define LN_tcg_at_platformModel "TCG Platform Model" -#define NID_tcg_at_platformModel 1340 -#define OBJ_tcg_at_platformModel OBJ_tcg_common,4L - -#define SN_tcg_at_platformVersion "tcg-at-platformVersion" -#define LN_tcg_at_platformVersion "TCG Platform Version" -#define NID_tcg_at_platformVersion 1341 -#define OBJ_tcg_at_platformVersion OBJ_tcg_common,5L - -#define SN_tcg_at_platformSerial "tcg-at-platformSerial" -#define LN_tcg_at_platformSerial "TCG Platform Serial Number" -#define NID_tcg_at_platformSerial 1342 -#define OBJ_tcg_at_platformSerial OBJ_tcg_common,6L - -#define SN_tcg_at_platformConfiguration "tcg-at-platformConfiguration" -#define LN_tcg_at_platformConfiguration "TCG Platform Configuration" -#define NID_tcg_at_platformConfiguration 1343 -#define OBJ_tcg_at_platformConfiguration OBJ_tcg_common,7L - -#define SN_tcg_at_platformIdentifier "tcg-at-platformIdentifier" -#define LN_tcg_at_platformIdentifier "TCG Platform Identifier" -#define NID_tcg_at_platformIdentifier 1344 -#define OBJ_tcg_at_platformIdentifier OBJ_tcg_common,8L - -#define SN_tcg_at_tpmManufacturer "tcg-at-tpmManufacturer" -#define LN_tcg_at_tpmManufacturer "TPM Manufacturer" -#define NID_tcg_at_tpmManufacturer 1345 -#define OBJ_tcg_at_tpmManufacturer OBJ_tcg_attribute,1L - -#define SN_tcg_at_tpmModel "tcg-at-tpmModel" -#define LN_tcg_at_tpmModel "TPM Model" -#define NID_tcg_at_tpmModel 1346 -#define OBJ_tcg_at_tpmModel OBJ_tcg_attribute,2L - -#define SN_tcg_at_tpmVersion "tcg-at-tpmVersion" -#define LN_tcg_at_tpmVersion "TPM Version" -#define NID_tcg_at_tpmVersion 1347 -#define OBJ_tcg_at_tpmVersion OBJ_tcg_attribute,3L - -#define SN_tcg_at_securityQualities "tcg-at-securityQualities" -#define LN_tcg_at_securityQualities "Security Qualities" -#define NID_tcg_at_securityQualities 1348 -#define OBJ_tcg_at_securityQualities OBJ_tcg_attribute,10L - -#define SN_tcg_at_tpmProtectionProfile "tcg-at-tpmProtectionProfile" -#define LN_tcg_at_tpmProtectionProfile "TPM Protection Profile" -#define NID_tcg_at_tpmProtectionProfile 1349 -#define OBJ_tcg_at_tpmProtectionProfile OBJ_tcg_attribute,11L - -#define SN_tcg_at_tpmSecurityTarget "tcg-at-tpmSecurityTarget" -#define LN_tcg_at_tpmSecurityTarget "TPM Security Target" -#define NID_tcg_at_tpmSecurityTarget 1350 -#define OBJ_tcg_at_tpmSecurityTarget OBJ_tcg_attribute,12L - -#define SN_tcg_at_tbbProtectionProfile "tcg-at-tbbProtectionProfile" -#define LN_tcg_at_tbbProtectionProfile "TBB Protection Profile" -#define NID_tcg_at_tbbProtectionProfile 1351 -#define OBJ_tcg_at_tbbProtectionProfile OBJ_tcg_attribute,13L - -#define SN_tcg_at_tbbSecurityTarget "tcg-at-tbbSecurityTarget" -#define LN_tcg_at_tbbSecurityTarget "TBB Security Target" -#define NID_tcg_at_tbbSecurityTarget 1352 -#define OBJ_tcg_at_tbbSecurityTarget OBJ_tcg_attribute,14L - -#define SN_tcg_at_tpmIdLabel "tcg-at-tpmIdLabel" -#define LN_tcg_at_tpmIdLabel "TPM ID Label" -#define NID_tcg_at_tpmIdLabel 1353 -#define OBJ_tcg_at_tpmIdLabel OBJ_tcg_attribute,15L - -#define SN_tcg_at_tpmSpecification "tcg-at-tpmSpecification" -#define LN_tcg_at_tpmSpecification "TPM Specification" -#define NID_tcg_at_tpmSpecification 1354 -#define OBJ_tcg_at_tpmSpecification OBJ_tcg_attribute,16L - -#define SN_tcg_at_tcgPlatformSpecification "tcg-at-tcgPlatformSpecification" -#define LN_tcg_at_tcgPlatformSpecification "TPM Platform Specification" -#define NID_tcg_at_tcgPlatformSpecification 1355 -#define OBJ_tcg_at_tcgPlatformSpecification OBJ_tcg_attribute,17L - -#define SN_tcg_at_tpmSecurityAssertions "tcg-at-tpmSecurityAssertions" -#define LN_tcg_at_tpmSecurityAssertions "TPM Security Assertions" -#define NID_tcg_at_tpmSecurityAssertions 1356 -#define OBJ_tcg_at_tpmSecurityAssertions OBJ_tcg_attribute,18L - -#define SN_tcg_at_tbbSecurityAssertions "tcg-at-tbbSecurityAssertions" -#define LN_tcg_at_tbbSecurityAssertions "TBB Security Assertions" -#define NID_tcg_at_tbbSecurityAssertions 1357 -#define OBJ_tcg_at_tbbSecurityAssertions OBJ_tcg_attribute,19L - -#define SN_tcg_at_tcgCredentialSpecification "tcg-at-tcgCredentialSpecification" -#define LN_tcg_at_tcgCredentialSpecification "TCG Credential Specification" -#define NID_tcg_at_tcgCredentialSpecification 1358 -#define OBJ_tcg_at_tcgCredentialSpecification OBJ_tcg_attribute,23L - -#define SN_tcg_at_tcgCredentialType "tcg-at-tcgCredentialType" -#define LN_tcg_at_tcgCredentialType "TCG Credential Type" -#define NID_tcg_at_tcgCredentialType 1359 -#define OBJ_tcg_at_tcgCredentialType OBJ_tcg_attribute,25L - -#define SN_tcg_at_previousPlatformCertificates "tcg-at-previousPlatformCertificates" -#define LN_tcg_at_previousPlatformCertificates "TCG Previous Platform Certificates" -#define NID_tcg_at_previousPlatformCertificates 1360 -#define OBJ_tcg_at_previousPlatformCertificates OBJ_tcg_attribute,26L - -#define SN_tcg_at_tbbSecurityAssertions_v3 "tcg-at-tbbSecurityAssertions-v3" -#define LN_tcg_at_tbbSecurityAssertions_v3 "TCG TBB Security Assertions V3" -#define NID_tcg_at_tbbSecurityAssertions_v3 1361 -#define OBJ_tcg_at_tbbSecurityAssertions_v3 OBJ_tcg_attribute,27L - -#define SN_tcg_at_cryptographicAnchors "tcg-at-cryptographicAnchors" -#define LN_tcg_at_cryptographicAnchors "TCG Cryptographic Anchors" -#define NID_tcg_at_cryptographicAnchors 1362 -#define OBJ_tcg_at_cryptographicAnchors OBJ_tcg_attribute,28L - -#define SN_tcg_at_platformConfiguration_v1 "tcg-at-platformConfiguration-v1" -#define LN_tcg_at_platformConfiguration_v1 "Platform Configuration Version 1" -#define NID_tcg_at_platformConfiguration_v1 1363 -#define OBJ_tcg_at_platformConfiguration_v1 OBJ_tcg_at_platformConfiguration,1L - -#define SN_tcg_at_platformConfiguration_v2 "tcg-at-platformConfiguration-v2" -#define LN_tcg_at_platformConfiguration_v2 "Platform Configuration Version 2" -#define NID_tcg_at_platformConfiguration_v2 1364 -#define OBJ_tcg_at_platformConfiguration_v2 OBJ_tcg_at_platformConfiguration,2L - -#define SN_tcg_at_platformConfiguration_v3 "tcg-at-platformConfiguration-v3" -#define LN_tcg_at_platformConfiguration_v3 "Platform Configuration Version 3" -#define NID_tcg_at_platformConfiguration_v3 1365 -#define OBJ_tcg_at_platformConfiguration_v3 OBJ_tcg_at_platformConfiguration,3L - -#define SN_tcg_at_platformConfigUri_v3 "tcg-at-platformConfigUri-v3" -#define LN_tcg_at_platformConfigUri_v3 "Platform Configuration URI Version 3" -#define NID_tcg_at_platformConfigUri_v3 1366 -#define OBJ_tcg_at_platformConfigUri_v3 OBJ_tcg_at_platformConfiguration,4L - -#define SN_tcg_algorithm_null "tcg-algorithm-null" -#define LN_tcg_algorithm_null "TCG NULL Algorithm" -#define NID_tcg_algorithm_null 1367 -#define OBJ_tcg_algorithm_null OBJ_tcg_algorithm,1L - -#define SN_tcg_kp_EKCertificate "tcg-kp-EKCertificate" -#define LN_tcg_kp_EKCertificate "Endorsement Key Certificate" -#define NID_tcg_kp_EKCertificate 1368 -#define OBJ_tcg_kp_EKCertificate OBJ_tcg_kp,1L - -#define SN_tcg_kp_PlatformAttributeCertificate "tcg-kp-PlatformAttributeCertificate" -#define LN_tcg_kp_PlatformAttributeCertificate "Platform Attribute Certificate" -#define NID_tcg_kp_PlatformAttributeCertificate 1369 -#define OBJ_tcg_kp_PlatformAttributeCertificate OBJ_tcg_kp,2L - -#define SN_tcg_kp_AIKCertificate "tcg-kp-AIKCertificate" -#define LN_tcg_kp_AIKCertificate "Attestation Identity Key Certificate" -#define NID_tcg_kp_AIKCertificate 1370 -#define OBJ_tcg_kp_AIKCertificate OBJ_tcg_kp,3L - -#define SN_tcg_kp_PlatformKeyCertificate "tcg-kp-PlatformKeyCertificate" -#define LN_tcg_kp_PlatformKeyCertificate "Platform Key Certificate" -#define NID_tcg_kp_PlatformKeyCertificate 1371 -#define OBJ_tcg_kp_PlatformKeyCertificate OBJ_tcg_kp,4L - -#define SN_tcg_kp_DeltaPlatformAttributeCertificate "tcg-kp-DeltaPlatformAttributeCertificate" -#define LN_tcg_kp_DeltaPlatformAttributeCertificate "Delta Platform Attribute Certificate" -#define NID_tcg_kp_DeltaPlatformAttributeCertificate 1372 -#define OBJ_tcg_kp_DeltaPlatformAttributeCertificate OBJ_tcg_kp,5L - -#define SN_tcg_kp_DeltaPlatformKeyCertificate "tcg-kp-DeltaPlatformKeyCertificate" -#define LN_tcg_kp_DeltaPlatformKeyCertificate "Delta Platform Key Certificate" -#define NID_tcg_kp_DeltaPlatformKeyCertificate 1373 -#define OBJ_tcg_kp_DeltaPlatformKeyCertificate OBJ_tcg_kp,6L - -#define SN_tcg_kp_AdditionalPlatformAttributeCertificate "tcg-kp-AdditionalPlatformAttributeCertificate" -#define LN_tcg_kp_AdditionalPlatformAttributeCertificate "Additional Platform Attribute Certificate" -#define NID_tcg_kp_AdditionalPlatformAttributeCertificate 1374 -#define OBJ_tcg_kp_AdditionalPlatformAttributeCertificate OBJ_tcg_kp,7L - -#define SN_tcg_kp_AdditionalPlatformKeyCertificate "tcg-kp-AdditionalPlatformKeyCertificate" -#define LN_tcg_kp_AdditionalPlatformKeyCertificate "Additional Platform Key Certificate" -#define NID_tcg_kp_AdditionalPlatformKeyCertificate 1375 -#define OBJ_tcg_kp_AdditionalPlatformKeyCertificate OBJ_tcg_kp,8L - -#define SN_tcg_ce_relevantCredentials "tcg-ce-relevantCredentials" -#define LN_tcg_ce_relevantCredentials "Relevant Credentials" -#define NID_tcg_ce_relevantCredentials 1376 -#define OBJ_tcg_ce_relevantCredentials OBJ_tcg_ce,2L - -#define SN_tcg_ce_relevantManifests "tcg-ce-relevantManifests" -#define LN_tcg_ce_relevantManifests "Relevant Manifests" -#define NID_tcg_ce_relevantManifests 1377 -#define OBJ_tcg_ce_relevantManifests OBJ_tcg_ce,3L - -#define SN_tcg_ce_virtualPlatformAttestationService "tcg-ce-virtualPlatformAttestationService" -#define LN_tcg_ce_virtualPlatformAttestationService "Virtual Platform Attestation Service" -#define NID_tcg_ce_virtualPlatformAttestationService 1378 -#define OBJ_tcg_ce_virtualPlatformAttestationService OBJ_tcg_ce,4L - -#define SN_tcg_ce_migrationControllerAttestationService "tcg-ce-migrationControllerAttestationService" -#define LN_tcg_ce_migrationControllerAttestationService "Migration Controller Attestation Service" -#define NID_tcg_ce_migrationControllerAttestationService 1379 -#define OBJ_tcg_ce_migrationControllerAttestationService OBJ_tcg_ce,5L - -#define SN_tcg_ce_migrationControllerRegistrationService "tcg-ce-migrationControllerRegistrationService" -#define LN_tcg_ce_migrationControllerRegistrationService "Migration Controller Registration Service" -#define NID_tcg_ce_migrationControllerRegistrationService 1380 -#define OBJ_tcg_ce_migrationControllerRegistrationService OBJ_tcg_ce,6L - -#define SN_tcg_ce_virtualPlatformBackupService "tcg-ce-virtualPlatformBackupService" -#define LN_tcg_ce_virtualPlatformBackupService "Virtual Platform Backup Service" -#define NID_tcg_ce_virtualPlatformBackupService 1381 -#define OBJ_tcg_ce_virtualPlatformBackupService OBJ_tcg_ce,7L - -#define SN_tcg_prt_tpmIdProtocol "tcg-prt-tpmIdProtocol" -#define LN_tcg_prt_tpmIdProtocol "TCG TPM Protocol" -#define NID_tcg_prt_tpmIdProtocol 1382 -#define OBJ_tcg_prt_tpmIdProtocol OBJ_tcg_protocol,1L - -#define SN_tcg_address_ethernetmac "tcg-address-ethernetmac" -#define LN_tcg_address_ethernetmac "Ethernet MAC Address" -#define NID_tcg_address_ethernetmac 1383 -#define OBJ_tcg_address_ethernetmac OBJ_tcg_address,1L - -#define SN_tcg_address_wlanmac "tcg-address-wlanmac" -#define LN_tcg_address_wlanmac "WLAN MAC Address" -#define NID_tcg_address_wlanmac 1384 -#define OBJ_tcg_address_wlanmac OBJ_tcg_address,2L - -#define SN_tcg_address_bluetoothmac "tcg-address-bluetoothmac" -#define LN_tcg_address_bluetoothmac "Bluetooth MAC Address" -#define NID_tcg_address_bluetoothmac 1385 -#define OBJ_tcg_address_bluetoothmac OBJ_tcg_address,3L - -#define SN_tcg_registry_componentClass "tcg-registry-componentClass" -#define LN_tcg_registry_componentClass "TCG Component Class" -#define NID_tcg_registry_componentClass 1386 -#define OBJ_tcg_registry_componentClass OBJ_tcg_registry,3L - -#define SN_tcg_registry_componentClass_tcg "tcg-registry-componentClass-tcg" -#define LN_tcg_registry_componentClass_tcg "Trusted Computed Group Registry" -#define NID_tcg_registry_componentClass_tcg 1387 -#define OBJ_tcg_registry_componentClass_tcg OBJ_tcg_registry_componentClass,1L - -#define SN_tcg_registry_componentClass_ietf "tcg-registry-componentClass-ietf" -#define LN_tcg_registry_componentClass_ietf "Internet Engineering Task Force Registry" -#define NID_tcg_registry_componentClass_ietf 1388 -#define OBJ_tcg_registry_componentClass_ietf OBJ_tcg_registry_componentClass,2L - -#define SN_tcg_registry_componentClass_dmtf "tcg-registry-componentClass-dmtf" -#define LN_tcg_registry_componentClass_dmtf "Distributed Management Task Force Registry" -#define NID_tcg_registry_componentClass_dmtf 1389 -#define OBJ_tcg_registry_componentClass_dmtf OBJ_tcg_registry_componentClass,3L - -#define SN_tcg_registry_componentClass_pcie "tcg-registry-componentClass-pcie" -#define LN_tcg_registry_componentClass_pcie "PCIE Component Class" -#define NID_tcg_registry_componentClass_pcie 1390 -#define OBJ_tcg_registry_componentClass_pcie OBJ_tcg_registry_componentClass,4L - -#define SN_tcg_registry_componentClass_disk "tcg-registry-componentClass-disk" -#define LN_tcg_registry_componentClass_disk "Disk Component Class" -#define NID_tcg_registry_componentClass_disk 1391 -#define OBJ_tcg_registry_componentClass_disk OBJ_tcg_registry_componentClass,5L - -#define SN_tcg_cap_verifiedPlatformCertificate "tcg-cap-verifiedPlatformCertificate" -#define LN_tcg_cap_verifiedPlatformCertificate "TCG Verified Platform Certificate CA Policy" -#define NID_tcg_cap_verifiedPlatformCertificate 1392 -#define OBJ_tcg_cap_verifiedPlatformCertificate OBJ_tcg_ca,4L - -#define SN_tcg_tr_ID "tcg-tr-ID" -#define LN_tcg_tr_ID "TCG Trait Identifiers" -#define NID_tcg_tr_ID 1393 -#define OBJ_tcg_tr_ID OBJ_tcg_traits,1L - -#define SN_tcg_tr_category "tcg-tr-category" -#define LN_tcg_tr_category "TCG Trait Categories" -#define NID_tcg_tr_category 1394 -#define OBJ_tcg_tr_category OBJ_tcg_traits,2L - -#define SN_tcg_tr_registry "tcg-tr-registry" -#define LN_tcg_tr_registry "TCG Trait Registries" -#define NID_tcg_tr_registry 1395 -#define OBJ_tcg_tr_registry OBJ_tcg_traits,3L - -#define SN_tcg_tr_ID_Boolean "tcg-tr-ID-Boolean" -#define LN_tcg_tr_ID_Boolean "Boolean Trait" -#define NID_tcg_tr_ID_Boolean 1396 -#define OBJ_tcg_tr_ID_Boolean OBJ_tcg_tr_ID,1L - -#define SN_tcg_tr_ID_CertificateIdentifier "tcg-tr-ID-CertificateIdentifier" -#define LN_tcg_tr_ID_CertificateIdentifier "Certificate Identifier Trait" -#define NID_tcg_tr_ID_CertificateIdentifier 1397 -#define OBJ_tcg_tr_ID_CertificateIdentifier OBJ_tcg_tr_ID,2L - -#define SN_tcg_tr_ID_CommonCriteria "tcg-tr-ID-CommonCriteria" -#define LN_tcg_tr_ID_CommonCriteria "Common Criteria Trait" -#define NID_tcg_tr_ID_CommonCriteria 1398 -#define OBJ_tcg_tr_ID_CommonCriteria OBJ_tcg_tr_ID,3L - -#define SN_tcg_tr_ID_componentClass "tcg-tr-ID-componentClass" -#define LN_tcg_tr_ID_componentClass "Component Class Trait" -#define NID_tcg_tr_ID_componentClass 1399 -#define OBJ_tcg_tr_ID_componentClass OBJ_tcg_tr_ID,4L - -#define SN_tcg_tr_ID_componentIdentifierV11 "tcg-tr-ID-componentIdentifierV11" -#define LN_tcg_tr_ID_componentIdentifierV11 "Component Identifier V1.1 Trait" -#define NID_tcg_tr_ID_componentIdentifierV11 1400 -#define OBJ_tcg_tr_ID_componentIdentifierV11 OBJ_tcg_tr_ID,5L - -#define SN_tcg_tr_ID_FIPSLevel "tcg-tr-ID-FIPSLevel" -#define LN_tcg_tr_ID_FIPSLevel "FIPS Level Trait" -#define NID_tcg_tr_ID_FIPSLevel 1401 -#define OBJ_tcg_tr_ID_FIPSLevel OBJ_tcg_tr_ID,6L - -#define SN_tcg_tr_ID_ISO9000Level "tcg-tr-ID-ISO9000Level" -#define LN_tcg_tr_ID_ISO9000Level "ISO 9000 Level Trait" -#define NID_tcg_tr_ID_ISO9000Level 1402 -#define OBJ_tcg_tr_ID_ISO9000Level OBJ_tcg_tr_ID,7L - -#define SN_tcg_tr_ID_networkMAC "tcg-tr-ID-networkMAC" -#define LN_tcg_tr_ID_networkMAC "Network MAC Trait" -#define NID_tcg_tr_ID_networkMAC 1403 -#define OBJ_tcg_tr_ID_networkMAC OBJ_tcg_tr_ID,8L - -#define SN_tcg_tr_ID_OID "tcg-tr-ID-OID" -#define LN_tcg_tr_ID_OID "Object Identifier Trait" -#define NID_tcg_tr_ID_OID 1404 -#define OBJ_tcg_tr_ID_OID OBJ_tcg_tr_ID,9L - -#define SN_tcg_tr_ID_PEN "tcg-tr-ID-PEN" -#define LN_tcg_tr_ID_PEN "Private Enterprise Number Trait" -#define NID_tcg_tr_ID_PEN 1405 -#define OBJ_tcg_tr_ID_PEN OBJ_tcg_tr_ID,10L - -#define SN_tcg_tr_ID_platformFirmwareCapabilities "tcg-tr-ID-platformFirmwareCapabilities" -#define LN_tcg_tr_ID_platformFirmwareCapabilities "Platform Firmware Capabilities Trait" -#define NID_tcg_tr_ID_platformFirmwareCapabilities 1406 -#define OBJ_tcg_tr_ID_platformFirmwareCapabilities OBJ_tcg_tr_ID,11L - -#define SN_tcg_tr_ID_platformFirmwareSignatureVerification "tcg-tr-ID-platformFirmwareSignatureVerification" -#define LN_tcg_tr_ID_platformFirmwareSignatureVerification "Platform Firmware Signature Verification Trait" -#define NID_tcg_tr_ID_platformFirmwareSignatureVerification 1407 -#define OBJ_tcg_tr_ID_platformFirmwareSignatureVerification OBJ_tcg_tr_ID,12L - -#define SN_tcg_tr_ID_platformFirmwareUpdateCompliance "tcg-tr-ID-platformFirmwareUpdateCompliance" -#define LN_tcg_tr_ID_platformFirmwareUpdateCompliance "Platform Firmware Update Compliance Trait" -#define NID_tcg_tr_ID_platformFirmwareUpdateCompliance 1408 -#define OBJ_tcg_tr_ID_platformFirmwareUpdateCompliance OBJ_tcg_tr_ID,13L - -#define SN_tcg_tr_ID_platformHardwareCapabilities "tcg-tr-ID-platformHardwareCapabilities" -#define LN_tcg_tr_ID_platformHardwareCapabilities "Platform Hardware Capabilities Trait" -#define NID_tcg_tr_ID_platformHardwareCapabilities 1409 -#define OBJ_tcg_tr_ID_platformHardwareCapabilities OBJ_tcg_tr_ID,14L - -#define SN_tcg_tr_ID_RTM "tcg-tr-ID-RTM" -#define LN_tcg_tr_ID_RTM "Root of Trust for Measurement Trait" -#define NID_tcg_tr_ID_RTM 1410 -#define OBJ_tcg_tr_ID_RTM OBJ_tcg_tr_ID,15L - -#define SN_tcg_tr_ID_status "tcg-tr-ID-status" -#define LN_tcg_tr_ID_status "Attribute Status Trait" -#define NID_tcg_tr_ID_status 1411 -#define OBJ_tcg_tr_ID_status OBJ_tcg_tr_ID,16L - -#define SN_tcg_tr_ID_URI "tcg-tr-ID-URI" -#define LN_tcg_tr_ID_URI "Uniform Resource Identifier Trait" -#define NID_tcg_tr_ID_URI 1412 -#define OBJ_tcg_tr_ID_URI OBJ_tcg_tr_ID,17L - -#define SN_tcg_tr_ID_UTF8String "tcg-tr-ID-UTF8String" -#define LN_tcg_tr_ID_UTF8String "UTF8String Trait" -#define NID_tcg_tr_ID_UTF8String 1413 -#define OBJ_tcg_tr_ID_UTF8String OBJ_tcg_tr_ID,18L - -#define SN_tcg_tr_ID_IA5String "tcg-tr-ID-IA5String" -#define LN_tcg_tr_ID_IA5String "IA5String Trait" -#define NID_tcg_tr_ID_IA5String 1414 -#define OBJ_tcg_tr_ID_IA5String OBJ_tcg_tr_ID,19L - -#define SN_tcg_tr_ID_PEMCertString "tcg-tr-ID-PEMCertString" -#define LN_tcg_tr_ID_PEMCertString "PEM-Encoded Certificate String Trait" -#define NID_tcg_tr_ID_PEMCertString 1415 -#define OBJ_tcg_tr_ID_PEMCertString OBJ_tcg_tr_ID,20L - -#define SN_tcg_tr_ID_PublicKey "tcg-tr-ID-PublicKey" -#define LN_tcg_tr_ID_PublicKey "Public Key Trait" -#define NID_tcg_tr_ID_PublicKey 1416 -#define OBJ_tcg_tr_ID_PublicKey OBJ_tcg_tr_ID,21L - -#define SN_tcg_tr_cat_platformManufacturer "tcg-tr-cat-platformManufacturer" -#define LN_tcg_tr_cat_platformManufacturer "Platform Manufacturer Trait Category" -#define NID_tcg_tr_cat_platformManufacturer 1417 -#define OBJ_tcg_tr_cat_platformManufacturer OBJ_tcg_tr_category,1L - -#define SN_tcg_tr_cat_platformModel "tcg-tr-cat-platformModel" -#define LN_tcg_tr_cat_platformModel "Platform Model Trait Category" -#define NID_tcg_tr_cat_platformModel 1418 -#define OBJ_tcg_tr_cat_platformModel OBJ_tcg_tr_category,2L - -#define SN_tcg_tr_cat_platformVersion "tcg-tr-cat-platformVersion" -#define LN_tcg_tr_cat_platformVersion "Platform Version Trait Category" -#define NID_tcg_tr_cat_platformVersion 1419 -#define OBJ_tcg_tr_cat_platformVersion OBJ_tcg_tr_category,3L - -#define SN_tcg_tr_cat_platformSerial "tcg-tr-cat-platformSerial" -#define LN_tcg_tr_cat_platformSerial "Platform Serial Trait Category" -#define NID_tcg_tr_cat_platformSerial 1420 -#define OBJ_tcg_tr_cat_platformSerial OBJ_tcg_tr_category,4L - -#define SN_tcg_tr_cat_platformManufacturerIdentifier "tcg-tr-cat-platformManufacturerIdentifier" -#define LN_tcg_tr_cat_platformManufacturerIdentifier "Platform Manufacturer Identifier Trait Category" -#define NID_tcg_tr_cat_platformManufacturerIdentifier 1421 -#define OBJ_tcg_tr_cat_platformManufacturerIdentifier OBJ_tcg_tr_category,5L - -#define SN_tcg_tr_cat_platformOwnership "tcg-tr-cat-platformOwnership" -#define LN_tcg_tr_cat_platformOwnership "Platform Ownership Trait Category" -#define NID_tcg_tr_cat_platformOwnership 1422 -#define OBJ_tcg_tr_cat_platformOwnership OBJ_tcg_tr_category,6L - -#define SN_tcg_tr_cat_componentClass "tcg-tr-cat-componentClass" -#define LN_tcg_tr_cat_componentClass "Component Class Trait Category" -#define NID_tcg_tr_cat_componentClass 1423 -#define OBJ_tcg_tr_cat_componentClass OBJ_tcg_tr_category,7L - -#define SN_tcg_tr_cat_componentManufacturer "tcg-tr-cat-componentManufacturer" -#define LN_tcg_tr_cat_componentManufacturer "Component Manufacturer Trait Category" -#define NID_tcg_tr_cat_componentManufacturer 1424 -#define OBJ_tcg_tr_cat_componentManufacturer OBJ_tcg_tr_category,8L - -#define SN_tcg_tr_cat_componentModel "tcg-tr-cat-componentModel" -#define LN_tcg_tr_cat_componentModel "Component Model Trait Category" -#define NID_tcg_tr_cat_componentModel 1425 -#define OBJ_tcg_tr_cat_componentModel OBJ_tcg_tr_category,9L - -#define SN_tcg_tr_cat_componentSerial "tcg-tr-cat-componentSerial" -#define LN_tcg_tr_cat_componentSerial "Component Serial Trait Category" -#define NID_tcg_tr_cat_componentSerial 1426 -#define OBJ_tcg_tr_cat_componentSerial OBJ_tcg_tr_category,10L - -#define SN_tcg_tr_cat_componentStatus "tcg-tr-cat-componentStatus" -#define LN_tcg_tr_cat_componentStatus "Component Status Trait Category" -#define NID_tcg_tr_cat_componentStatus 1427 -#define OBJ_tcg_tr_cat_componentStatus OBJ_tcg_tr_category,11L - -#define SN_tcg_tr_cat_componentLocation "tcg-tr-cat-componentLocation" -#define LN_tcg_tr_cat_componentLocation "Component Location Trait Category" -#define NID_tcg_tr_cat_componentLocation 1428 -#define OBJ_tcg_tr_cat_componentLocation OBJ_tcg_tr_category,12L - -#define SN_tcg_tr_cat_componentRevision "tcg-tr-cat-componentRevision" -#define LN_tcg_tr_cat_componentRevision "Component Revision Trait Category" -#define NID_tcg_tr_cat_componentRevision 1429 -#define OBJ_tcg_tr_cat_componentRevision OBJ_tcg_tr_category,13L - -#define SN_tcg_tr_cat_componentFieldReplaceable "tcg-tr-cat-componentFieldReplaceable" -#define LN_tcg_tr_cat_componentFieldReplaceable "Component Field Replaceable Trait Category" -#define NID_tcg_tr_cat_componentFieldReplaceable 1430 -#define OBJ_tcg_tr_cat_componentFieldReplaceable OBJ_tcg_tr_category,14L - -#define SN_tcg_tr_cat_EKCertificate "tcg-tr-cat-EKCertificate" -#define LN_tcg_tr_cat_EKCertificate "EK Certificate Trait Category" -#define NID_tcg_tr_cat_EKCertificate 1431 -#define OBJ_tcg_tr_cat_EKCertificate OBJ_tcg_tr_category,15L - -#define SN_tcg_tr_cat_IAKCertificate "tcg-tr-cat-IAKCertificate" -#define LN_tcg_tr_cat_IAKCertificate "IAK Certificate Trait Category" -#define NID_tcg_tr_cat_IAKCertificate 1432 -#define OBJ_tcg_tr_cat_IAKCertificate OBJ_tcg_tr_category,16L - -#define SN_tcg_tr_cat_IDevIDCertificate "tcg-tr-cat-IDevIDCertificate" -#define LN_tcg_tr_cat_IDevIDCertificate "IDevID Certificate Trait Category" -#define NID_tcg_tr_cat_IDevIDCertificate 1433 -#define OBJ_tcg_tr_cat_IDevIDCertificate OBJ_tcg_tr_category,17L - -#define SN_tcg_tr_cat_DICECertificate "tcg-tr-cat-DICECertificate" -#define LN_tcg_tr_cat_DICECertificate "DICE Certificate Trait Category" -#define NID_tcg_tr_cat_DICECertificate 1434 -#define OBJ_tcg_tr_cat_DICECertificate OBJ_tcg_tr_category,18L - -#define SN_tcg_tr_cat_SPDMCertificate "tcg-tr-cat-SPDMCertificate" -#define LN_tcg_tr_cat_SPDMCertificate "SPDM Certificate Trait Category" -#define NID_tcg_tr_cat_SPDMCertificate 1435 -#define OBJ_tcg_tr_cat_SPDMCertificate OBJ_tcg_tr_category,19L - -#define SN_tcg_tr_cat_PEMCertificate "tcg-tr-cat-PEMCertificate" -#define LN_tcg_tr_cat_PEMCertificate "PEM Certificate Trait Category" -#define NID_tcg_tr_cat_PEMCertificate 1436 -#define OBJ_tcg_tr_cat_PEMCertificate OBJ_tcg_tr_category,20L - -#define SN_tcg_tr_cat_PlatformCertificate "tcg-tr-cat-PlatformCertificate" -#define LN_tcg_tr_cat_PlatformCertificate "Platform Certificate Trait Category" -#define NID_tcg_tr_cat_PlatformCertificate 1437 -#define OBJ_tcg_tr_cat_PlatformCertificate OBJ_tcg_tr_category,21L - -#define SN_tcg_tr_cat_DeltaPlatformCertificate "tcg-tr-cat-DeltaPlatformCertificate" -#define LN_tcg_tr_cat_DeltaPlatformCertificate "Delta Platform Certificate Trait Category" -#define NID_tcg_tr_cat_DeltaPlatformCertificate 1438 -#define OBJ_tcg_tr_cat_DeltaPlatformCertificate OBJ_tcg_tr_category,22L - -#define SN_tcg_tr_cat_RebasePlatformCertificate "tcg-tr-cat-RebasePlatformCertificate" -#define LN_tcg_tr_cat_RebasePlatformCertificate "Rebase Platform Certificate Trait Category" -#define NID_tcg_tr_cat_RebasePlatformCertificate 1439 -#define OBJ_tcg_tr_cat_RebasePlatformCertificate OBJ_tcg_tr_category,23L - -#define SN_tcg_tr_cat_genericCertificate "tcg-tr-cat-genericCertificate" -#define LN_tcg_tr_cat_genericCertificate "Generic Certificate Trait Category" -#define NID_tcg_tr_cat_genericCertificate 1440 -#define OBJ_tcg_tr_cat_genericCertificate OBJ_tcg_tr_category,24L - -#define SN_tcg_tr_cat_CommonCriteria "tcg-tr-cat-CommonCriteria" -#define LN_tcg_tr_cat_CommonCriteria "Common Criteria Trait Category" -#define NID_tcg_tr_cat_CommonCriteria 1441 -#define OBJ_tcg_tr_cat_CommonCriteria OBJ_tcg_tr_category,25L - -#define SN_tcg_tr_cat_componentIdentifierV11 "tcg-tr-cat-componentIdentifierV11" -#define LN_tcg_tr_cat_componentIdentifierV11 "Component Identifier V1.1 Trait Category" -#define NID_tcg_tr_cat_componentIdentifierV11 1442 -#define OBJ_tcg_tr_cat_componentIdentifierV11 OBJ_tcg_tr_category,26L - -#define SN_tcg_tr_cat_FIPSLevel "tcg-tr-cat-FIPSLevel" -#define LN_tcg_tr_cat_FIPSLevel "FIPS Level Trait Category" -#define NID_tcg_tr_cat_FIPSLevel 1443 -#define OBJ_tcg_tr_cat_FIPSLevel OBJ_tcg_tr_category,27L - -#define SN_tcg_tr_cat_ISO9000 "tcg-tr-cat-ISO9000" -#define LN_tcg_tr_cat_ISO9000 "ISO 9000 Trait Category" -#define NID_tcg_tr_cat_ISO9000 1444 -#define OBJ_tcg_tr_cat_ISO9000 OBJ_tcg_tr_category,28L - -#define SN_tcg_tr_cat_networkMAC "tcg-tr-cat-networkMAC" -#define LN_tcg_tr_cat_networkMAC "Network MAC Trait Category" -#define NID_tcg_tr_cat_networkMAC 1445 -#define OBJ_tcg_tr_cat_networkMAC OBJ_tcg_tr_category,29L - -#define SN_tcg_tr_cat_attestationProtocol "tcg-tr-cat-attestationProtocol" -#define LN_tcg_tr_cat_attestationProtocol "Attestation Protocol Trait Category" -#define NID_tcg_tr_cat_attestationProtocol 1446 -#define OBJ_tcg_tr_cat_attestationProtocol OBJ_tcg_tr_category,30L - -#define SN_tcg_tr_cat_PEN "tcg-tr-cat-PEN" -#define LN_tcg_tr_cat_PEN "Private Enterprise Number Trait Category" -#define NID_tcg_tr_cat_PEN 1447 -#define OBJ_tcg_tr_cat_PEN OBJ_tcg_tr_category,31L - -#define SN_tcg_tr_cat_platformFirmwareCapabilities "tcg-tr-cat-platformFirmwareCapabilities" -#define LN_tcg_tr_cat_platformFirmwareCapabilities "Platform Firmware Capabilities Trait Category" -#define NID_tcg_tr_cat_platformFirmwareCapabilities 1448 -#define OBJ_tcg_tr_cat_platformFirmwareCapabilities OBJ_tcg_tr_category,32L - -#define SN_tcg_tr_cat_platformHardwareCapabilities "tcg-tr-cat-platformHardwareCapabilities" -#define LN_tcg_tr_cat_platformHardwareCapabilities "Platform Hardware Capabilities Trait Category" -#define NID_tcg_tr_cat_platformHardwareCapabilities 1449 -#define OBJ_tcg_tr_cat_platformHardwareCapabilities OBJ_tcg_tr_category,33L - -#define SN_tcg_tr_cat_platformFirmwareSignatureVerification "tcg-tr-cat-platformFirmwareSignatureVerification" -#define LN_tcg_tr_cat_platformFirmwareSignatureVerification "Platform Firmware Signature Verification Trait Category" -#define NID_tcg_tr_cat_platformFirmwareSignatureVerification 1450 -#define OBJ_tcg_tr_cat_platformFirmwareSignatureVerification OBJ_tcg_tr_category,34L - -#define SN_tcg_tr_cat_platformFirmwareUpdateCompliance "tcg-tr-cat-platformFirmwareUpdateCompliance" -#define LN_tcg_tr_cat_platformFirmwareUpdateCompliance "Platform Firmware Update Compliance Trait Category" -#define NID_tcg_tr_cat_platformFirmwareUpdateCompliance 1451 -#define OBJ_tcg_tr_cat_platformFirmwareUpdateCompliance OBJ_tcg_tr_category,35L - -#define SN_tcg_tr_cat_RTM "tcg-tr-cat-RTM" -#define LN_tcg_tr_cat_RTM "Root of Trust of Measurement Trait Category" -#define NID_tcg_tr_cat_RTM 1452 -#define OBJ_tcg_tr_cat_RTM OBJ_tcg_tr_category,36L - -#define SN_tcg_tr_cat_PublicKey "tcg-tr-cat-PublicKey" -#define LN_tcg_tr_cat_PublicKey "Public Key Trait Category" -#define NID_tcg_tr_cat_PublicKey 1453 -#define OBJ_tcg_tr_cat_PublicKey OBJ_tcg_tr_category,37L - -#define OBJ_nistKems OBJ_nistAlgorithms,4L - -#define SN_ML_KEM_512 "id-alg-ml-kem-512" -#define LN_ML_KEM_512 "ML-KEM-512" -#define NID_ML_KEM_512 1454 -#define OBJ_ML_KEM_512 OBJ_nistKems,1L - -#define SN_ML_KEM_768 "id-alg-ml-kem-768" -#define LN_ML_KEM_768 "ML-KEM-768" -#define NID_ML_KEM_768 1455 -#define OBJ_ML_KEM_768 OBJ_nistKems,2L - -#define SN_ML_KEM_1024 "id-alg-ml-kem-1024" -#define LN_ML_KEM_1024 "ML-KEM-1024" -#define NID_ML_KEM_1024 1456 -#define OBJ_ML_KEM_1024 OBJ_nistKems,3L - -#endif /* OPENSSL_OBJ_MAC_H */ - -#ifndef OPENSSL_NO_DEPRECATED_3_0 - -#define SN_id_tc26_cipher_gostr3412_2015_magma_ctracpkm SN_magma_ctr_acpkm -#define NID_id_tc26_cipher_gostr3412_2015_magma_ctracpkm NID_magma_ctr_acpkm -#define OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm OBJ_magma_ctr_acpkm - -#define SN_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac SN_magma_ctr_acpkm_omac -#define NID_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac NID_magma_ctr_acpkm_omac -#define OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac OBJ_magma_ctr_acpkm_omac - -#define SN_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm SN_kuznyechik_ctr_acpkm -#define NID_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm NID_kuznyechik_ctr_acpkm -#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm OBJ_kuznyechik_ctr_acpkm - -#define SN_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac SN_kuznyechik_ctr_acpkm_omac -#define NID_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac NID_kuznyechik_ctr_acpkm_omac -#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac OBJ_kuznyechik_ctr_acpkm_omac - -#define SN_id_tc26_wrap_gostr3412_2015_magma_kexp15 SN_magma_kexp15 -#define NID_id_tc26_wrap_gostr3412_2015_magma_kexp15 NID_magma_kexp15 -#define OBJ_id_tc26_wrap_gostr3412_2015_magma_kexp15 OBJ_magma_kexp15 - -#define SN_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 SN_kuznyechik_kexp15 -#define NID_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 NID_kuznyechik_kexp15 -#define OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 OBJ_kuznyechik_kexp15 - -#define SN_grasshopper_ecb SN_kuznyechik_ecb -#define NID_grasshopper_ecb NID_kuznyechik_ecb - -#define SN_grasshopper_ctr SN_kuznyechik_ctr -#define NID_grasshopper_ctr NID_kuznyechik_ctr - -#define SN_grasshopper_ofb SN_kuznyechik_ofb -#define NID_grasshopper_ofb NID_kuznyechik_ofb - -#define SN_grasshopper_cbc SN_kuznyechik_cbc -#define NID_grasshopper_cbc NID_kuznyechik_cbc - -#define SN_grasshopper_cfb SN_kuznyechik_cfb -#define NID_grasshopper_cfb NID_kuznyechik_cfb - -#define SN_grasshopper_mac SN_kuznyechik_mac -#define NID_grasshopper_mac NID_kuznyechik_mac - -#endif /* OPENSSL_NO_DEPRECATED_3_0 */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/objects.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/objects.h deleted file mode 100644 index cc9f3c5..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/objects.h +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_OBJECTS_H -# define OPENSSL_OBJECTS_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_OBJECTS_H -# endif - -# include -# include -# include -# include - -# define OBJ_NAME_TYPE_UNDEF 0x00 -# define OBJ_NAME_TYPE_MD_METH 0x01 -# define OBJ_NAME_TYPE_CIPHER_METH 0x02 -# define OBJ_NAME_TYPE_PKEY_METH 0x03 -# define OBJ_NAME_TYPE_COMP_METH 0x04 -# define OBJ_NAME_TYPE_MAC_METH 0x05 -# define OBJ_NAME_TYPE_KDF_METH 0x06 -# define OBJ_NAME_TYPE_NUM 0x07 - -# define OBJ_NAME_ALIAS 0x8000 - -# define OBJ_BSEARCH_VALUE_ON_NOMATCH 0x01 -# define OBJ_BSEARCH_FIRST_VALUE_ON_MATCH 0x02 - - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct obj_name_st { - int type; - int alias; - const char *name; - const char *data; -} OBJ_NAME; - -# define OBJ_create_and_add_object(a,b,c) OBJ_create(a,b,c) - -int OBJ_NAME_init(void); -int OBJ_NAME_new_index(unsigned long (*hash_func) (const char *), - int (*cmp_func) (const char *, const char *), - void (*free_func) (const char *, int, const char *)); -const char *OBJ_NAME_get(const char *name, int type); -int OBJ_NAME_add(const char *name, int type, const char *data); -int OBJ_NAME_remove(const char *name, int type); -void OBJ_NAME_cleanup(int type); /* -1 for everything */ -void OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void *arg), - void *arg); -void OBJ_NAME_do_all_sorted(int type, - void (*fn) (const OBJ_NAME *, void *arg), - void *arg); - -DECLARE_ASN1_DUP_FUNCTION_name(ASN1_OBJECT, OBJ) -ASN1_OBJECT *OBJ_nid2obj(int n); -const char *OBJ_nid2ln(int n); -const char *OBJ_nid2sn(int n); -int OBJ_obj2nid(const ASN1_OBJECT *o); -ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name); -int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); -int OBJ_txt2nid(const char *s); -int OBJ_ln2nid(const char *s); -int OBJ_sn2nid(const char *s); -int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b); -const void *OBJ_bsearch_(const void *key, const void *base, int num, int size, - int (*cmp) (const void *, const void *)); -const void *OBJ_bsearch_ex_(const void *key, const void *base, int num, - int size, - int (*cmp) (const void *, const void *), - int flags); - -# define _DECLARE_OBJ_BSEARCH_CMP_FN(scope, type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *, const void *); \ - static int nm##_cmp(type1 const *, type2 const *); \ - scope type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) - -# define DECLARE_OBJ_BSEARCH_CMP_FN(type1, type2, cmp) \ - _DECLARE_OBJ_BSEARCH_CMP_FN(static, type1, type2, cmp) -# define DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ - type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) - -/*- - * Unsolved problem: if a type is actually a pointer type, like - * nid_triple is, then its impossible to get a const where you need - * it. Consider: - * - * typedef int nid_triple[3]; - * const void *a_; - * const nid_triple const *a = a_; - * - * The assignment discards a const because what you really want is: - * - * const int const * const *a = a_; - * - * But if you do that, you lose the fact that a is an array of 3 ints, - * which breaks comparison functions. - * - * Thus we end up having to cast, sadly, or unpack the - * declarations. Or, as I finally did in this case, declare nid_triple - * to be a struct, which it should have been in the first place. - * - * Ben, August 2008. - * - * Also, strictly speaking not all types need be const, but handling - * the non-constness means a lot of complication, and in practice - * comparison routines do always not touch their arguments. - */ - -# define IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ - { \ - type1 const *a = a_; \ - type2 const *b = b_; \ - return nm##_cmp(a,b); \ - } \ - static type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ - { \ - return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ - nm##_cmp_BSEARCH_CMP_FN); \ - } \ - extern void dummy_prototype(void) - -# define IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ - { \ - type1 const *a = a_; \ - type2 const *b = b_; \ - return nm##_cmp(a,b); \ - } \ - type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ - { \ - return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ - nm##_cmp_BSEARCH_CMP_FN); \ - } \ - extern void dummy_prototype(void) - -# define OBJ_bsearch(type1,key,type2,base,num,cmp) \ - ((type2 *)OBJ_bsearch_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ - num,sizeof(type2), \ - ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ - (void)CHECKED_PTR_OF(type2,cmp##_type_2), \ - cmp##_BSEARCH_CMP_FN))) - -# define OBJ_bsearch_ex(type1,key,type2,base,num,cmp,flags) \ - ((type2 *)OBJ_bsearch_ex_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ - num,sizeof(type2), \ - ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ - (void)type_2=CHECKED_PTR_OF(type2,cmp##_type_2), \ - cmp##_BSEARCH_CMP_FN)),flags) - -int OBJ_new_nid(int num); -int OBJ_add_object(const ASN1_OBJECT *obj); -int OBJ_create(const char *oid, const char *sn, const char *ln); -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define OBJ_cleanup() while(0) continue -#endif -int OBJ_create_objects(BIO *in); - -size_t OBJ_length(const ASN1_OBJECT *obj); -const unsigned char *OBJ_get0_data(const ASN1_OBJECT *obj); - -int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid); -int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid); -int OBJ_add_sigid(int signid, int dig_id, int pkey_id); -void OBJ_sigid_free(void); - -#define SN_ac_auditEntity SN_ac_auditIdentity - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/objectserr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/objectserr.h deleted file mode 100644 index 585217f..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/objectserr.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_OBJECTSERR_H -# define OPENSSL_OBJECTSERR_H -# pragma once - -# include -# include -# include - - - -/* - * OBJ reason codes. - */ -# define OBJ_R_OID_EXISTS 102 -# define OBJ_R_UNKNOWN_NID 101 -# define OBJ_R_UNKNOWN_OBJECT_NAME 103 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/ocsp.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/ocsp.h deleted file mode 100644 index 2692d31..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/ocsp.h +++ /dev/null @@ -1,483 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\ocsp.h.in - * - * Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_OCSP_H -# define OPENSSL_OCSP_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_OCSP_H -# endif - -# include -# include -# include - -/* - * These definitions are outside the OPENSSL_NO_OCSP guard because although for - * historical reasons they have OCSP_* names, they can actually be used - * independently of OCSP. E.g. see RFC5280 - */ -/*- - * CRLReason ::= ENUMERATED { - * unspecified (0), - * keyCompromise (1), - * cACompromise (2), - * affiliationChanged (3), - * superseded (4), - * cessationOfOperation (5), - * certificateHold (6), - * -- value 7 is not used - * removeFromCRL (8), - * privilegeWithdrawn (9), - * aACompromise (10) } - */ -# define OCSP_REVOKED_STATUS_NOSTATUS -1 -# define OCSP_REVOKED_STATUS_UNSPECIFIED 0 -# define OCSP_REVOKED_STATUS_KEYCOMPROMISE 1 -# define OCSP_REVOKED_STATUS_CACOMPROMISE 2 -# define OCSP_REVOKED_STATUS_AFFILIATIONCHANGED 3 -# define OCSP_REVOKED_STATUS_SUPERSEDED 4 -# define OCSP_REVOKED_STATUS_CESSATIONOFOPERATION 5 -# define OCSP_REVOKED_STATUS_CERTIFICATEHOLD 6 -# define OCSP_REVOKED_STATUS_REMOVEFROMCRL 8 -# define OCSP_REVOKED_STATUS_PRIVILEGEWITHDRAWN 9 -# define OCSP_REVOKED_STATUS_AACOMPROMISE 10 - - -# ifndef OPENSSL_NO_OCSP - -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* Various flags and values */ - -# define OCSP_DEFAULT_NONCE_LENGTH 16 - -# define OCSP_NOCERTS 0x1 -# define OCSP_NOINTERN 0x2 -# define OCSP_NOSIGS 0x4 -# define OCSP_NOCHAIN 0x8 -# define OCSP_NOVERIFY 0x10 -# define OCSP_NOEXPLICIT 0x20 -# define OCSP_NOCASIGN 0x40 -# define OCSP_NODELEGATED 0x80 -# define OCSP_NOCHECKS 0x100 -# define OCSP_TRUSTOTHER 0x200 -# define OCSP_RESPID_KEY 0x400 -# define OCSP_NOTIME 0x800 -# define OCSP_PARTIAL_CHAIN 0x1000 - -typedef struct ocsp_cert_id_st OCSP_CERTID; -typedef struct ocsp_one_request_st OCSP_ONEREQ; -typedef struct ocsp_req_info_st OCSP_REQINFO; -typedef struct ocsp_signature_st OCSP_SIGNATURE; -typedef struct ocsp_request_st OCSP_REQUEST; - -SKM_DEFINE_STACK_OF_INTERNAL(OCSP_CERTID, OCSP_CERTID, OCSP_CERTID) -#define sk_OCSP_CERTID_num(sk) OPENSSL_sk_num(ossl_check_const_OCSP_CERTID_sk_type(sk)) -#define sk_OCSP_CERTID_value(sk, idx) ((OCSP_CERTID *)OPENSSL_sk_value(ossl_check_const_OCSP_CERTID_sk_type(sk), (idx))) -#define sk_OCSP_CERTID_new(cmp) ((STACK_OF(OCSP_CERTID) *)OPENSSL_sk_new(ossl_check_OCSP_CERTID_compfunc_type(cmp))) -#define sk_OCSP_CERTID_new_null() ((STACK_OF(OCSP_CERTID) *)OPENSSL_sk_new_null()) -#define sk_OCSP_CERTID_new_reserve(cmp, n) ((STACK_OF(OCSP_CERTID) *)OPENSSL_sk_new_reserve(ossl_check_OCSP_CERTID_compfunc_type(cmp), (n))) -#define sk_OCSP_CERTID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OCSP_CERTID_sk_type(sk), (n)) -#define sk_OCSP_CERTID_free(sk) OPENSSL_sk_free(ossl_check_OCSP_CERTID_sk_type(sk)) -#define sk_OCSP_CERTID_zero(sk) OPENSSL_sk_zero(ossl_check_OCSP_CERTID_sk_type(sk)) -#define sk_OCSP_CERTID_delete(sk, i) ((OCSP_CERTID *)OPENSSL_sk_delete(ossl_check_OCSP_CERTID_sk_type(sk), (i))) -#define sk_OCSP_CERTID_delete_ptr(sk, ptr) ((OCSP_CERTID *)OPENSSL_sk_delete_ptr(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr))) -#define sk_OCSP_CERTID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr)) -#define sk_OCSP_CERTID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr)) -#define sk_OCSP_CERTID_pop(sk) ((OCSP_CERTID *)OPENSSL_sk_pop(ossl_check_OCSP_CERTID_sk_type(sk))) -#define sk_OCSP_CERTID_shift(sk) ((OCSP_CERTID *)OPENSSL_sk_shift(ossl_check_OCSP_CERTID_sk_type(sk))) -#define sk_OCSP_CERTID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_freefunc_type(freefunc)) -#define sk_OCSP_CERTID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr), (idx)) -#define sk_OCSP_CERTID_set(sk, idx, ptr) ((OCSP_CERTID *)OPENSSL_sk_set(ossl_check_OCSP_CERTID_sk_type(sk), (idx), ossl_check_OCSP_CERTID_type(ptr))) -#define sk_OCSP_CERTID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr)) -#define sk_OCSP_CERTID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr)) -#define sk_OCSP_CERTID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr), pnum) -#define sk_OCSP_CERTID_sort(sk) OPENSSL_sk_sort(ossl_check_OCSP_CERTID_sk_type(sk)) -#define sk_OCSP_CERTID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OCSP_CERTID_sk_type(sk)) -#define sk_OCSP_CERTID_dup(sk) ((STACK_OF(OCSP_CERTID) *)OPENSSL_sk_dup(ossl_check_const_OCSP_CERTID_sk_type(sk))) -#define sk_OCSP_CERTID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OCSP_CERTID) *)OPENSSL_sk_deep_copy(ossl_check_const_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_copyfunc_type(copyfunc), ossl_check_OCSP_CERTID_freefunc_type(freefunc))) -#define sk_OCSP_CERTID_set_cmp_func(sk, cmp) ((sk_OCSP_CERTID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(OCSP_ONEREQ, OCSP_ONEREQ, OCSP_ONEREQ) -#define sk_OCSP_ONEREQ_num(sk) OPENSSL_sk_num(ossl_check_const_OCSP_ONEREQ_sk_type(sk)) -#define sk_OCSP_ONEREQ_value(sk, idx) ((OCSP_ONEREQ *)OPENSSL_sk_value(ossl_check_const_OCSP_ONEREQ_sk_type(sk), (idx))) -#define sk_OCSP_ONEREQ_new(cmp) ((STACK_OF(OCSP_ONEREQ) *)OPENSSL_sk_new(ossl_check_OCSP_ONEREQ_compfunc_type(cmp))) -#define sk_OCSP_ONEREQ_new_null() ((STACK_OF(OCSP_ONEREQ) *)OPENSSL_sk_new_null()) -#define sk_OCSP_ONEREQ_new_reserve(cmp, n) ((STACK_OF(OCSP_ONEREQ) *)OPENSSL_sk_new_reserve(ossl_check_OCSP_ONEREQ_compfunc_type(cmp), (n))) -#define sk_OCSP_ONEREQ_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OCSP_ONEREQ_sk_type(sk), (n)) -#define sk_OCSP_ONEREQ_free(sk) OPENSSL_sk_free(ossl_check_OCSP_ONEREQ_sk_type(sk)) -#define sk_OCSP_ONEREQ_zero(sk) OPENSSL_sk_zero(ossl_check_OCSP_ONEREQ_sk_type(sk)) -#define sk_OCSP_ONEREQ_delete(sk, i) ((OCSP_ONEREQ *)OPENSSL_sk_delete(ossl_check_OCSP_ONEREQ_sk_type(sk), (i))) -#define sk_OCSP_ONEREQ_delete_ptr(sk, ptr) ((OCSP_ONEREQ *)OPENSSL_sk_delete_ptr(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr))) -#define sk_OCSP_ONEREQ_push(sk, ptr) OPENSSL_sk_push(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr)) -#define sk_OCSP_ONEREQ_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr)) -#define sk_OCSP_ONEREQ_pop(sk) ((OCSP_ONEREQ *)OPENSSL_sk_pop(ossl_check_OCSP_ONEREQ_sk_type(sk))) -#define sk_OCSP_ONEREQ_shift(sk) ((OCSP_ONEREQ *)OPENSSL_sk_shift(ossl_check_OCSP_ONEREQ_sk_type(sk))) -#define sk_OCSP_ONEREQ_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_freefunc_type(freefunc)) -#define sk_OCSP_ONEREQ_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr), (idx)) -#define sk_OCSP_ONEREQ_set(sk, idx, ptr) ((OCSP_ONEREQ *)OPENSSL_sk_set(ossl_check_OCSP_ONEREQ_sk_type(sk), (idx), ossl_check_OCSP_ONEREQ_type(ptr))) -#define sk_OCSP_ONEREQ_find(sk, ptr) OPENSSL_sk_find(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr)) -#define sk_OCSP_ONEREQ_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr)) -#define sk_OCSP_ONEREQ_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr), pnum) -#define sk_OCSP_ONEREQ_sort(sk) OPENSSL_sk_sort(ossl_check_OCSP_ONEREQ_sk_type(sk)) -#define sk_OCSP_ONEREQ_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OCSP_ONEREQ_sk_type(sk)) -#define sk_OCSP_ONEREQ_dup(sk) ((STACK_OF(OCSP_ONEREQ) *)OPENSSL_sk_dup(ossl_check_const_OCSP_ONEREQ_sk_type(sk))) -#define sk_OCSP_ONEREQ_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OCSP_ONEREQ) *)OPENSSL_sk_deep_copy(ossl_check_const_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_copyfunc_type(copyfunc), ossl_check_OCSP_ONEREQ_freefunc_type(freefunc))) -#define sk_OCSP_ONEREQ_set_cmp_func(sk, cmp) ((sk_OCSP_ONEREQ_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_compfunc_type(cmp))) - - -# define OCSP_RESPONSE_STATUS_SUCCESSFUL 0 -# define OCSP_RESPONSE_STATUS_MALFORMEDREQUEST 1 -# define OCSP_RESPONSE_STATUS_INTERNALERROR 2 -# define OCSP_RESPONSE_STATUS_TRYLATER 3 -# define OCSP_RESPONSE_STATUS_SIGREQUIRED 5 -# define OCSP_RESPONSE_STATUS_UNAUTHORIZED 6 - -typedef struct ocsp_resp_bytes_st OCSP_RESPBYTES; - -# define V_OCSP_RESPID_NAME 0 -# define V_OCSP_RESPID_KEY 1 - -SKM_DEFINE_STACK_OF_INTERNAL(OCSP_RESPID, OCSP_RESPID, OCSP_RESPID) -#define sk_OCSP_RESPID_num(sk) OPENSSL_sk_num(ossl_check_const_OCSP_RESPID_sk_type(sk)) -#define sk_OCSP_RESPID_value(sk, idx) ((OCSP_RESPID *)OPENSSL_sk_value(ossl_check_const_OCSP_RESPID_sk_type(sk), (idx))) -#define sk_OCSP_RESPID_new(cmp) ((STACK_OF(OCSP_RESPID) *)OPENSSL_sk_new(ossl_check_OCSP_RESPID_compfunc_type(cmp))) -#define sk_OCSP_RESPID_new_null() ((STACK_OF(OCSP_RESPID) *)OPENSSL_sk_new_null()) -#define sk_OCSP_RESPID_new_reserve(cmp, n) ((STACK_OF(OCSP_RESPID) *)OPENSSL_sk_new_reserve(ossl_check_OCSP_RESPID_compfunc_type(cmp), (n))) -#define sk_OCSP_RESPID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OCSP_RESPID_sk_type(sk), (n)) -#define sk_OCSP_RESPID_free(sk) OPENSSL_sk_free(ossl_check_OCSP_RESPID_sk_type(sk)) -#define sk_OCSP_RESPID_zero(sk) OPENSSL_sk_zero(ossl_check_OCSP_RESPID_sk_type(sk)) -#define sk_OCSP_RESPID_delete(sk, i) ((OCSP_RESPID *)OPENSSL_sk_delete(ossl_check_OCSP_RESPID_sk_type(sk), (i))) -#define sk_OCSP_RESPID_delete_ptr(sk, ptr) ((OCSP_RESPID *)OPENSSL_sk_delete_ptr(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr))) -#define sk_OCSP_RESPID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr)) -#define sk_OCSP_RESPID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr)) -#define sk_OCSP_RESPID_pop(sk) ((OCSP_RESPID *)OPENSSL_sk_pop(ossl_check_OCSP_RESPID_sk_type(sk))) -#define sk_OCSP_RESPID_shift(sk) ((OCSP_RESPID *)OPENSSL_sk_shift(ossl_check_OCSP_RESPID_sk_type(sk))) -#define sk_OCSP_RESPID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_freefunc_type(freefunc)) -#define sk_OCSP_RESPID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr), (idx)) -#define sk_OCSP_RESPID_set(sk, idx, ptr) ((OCSP_RESPID *)OPENSSL_sk_set(ossl_check_OCSP_RESPID_sk_type(sk), (idx), ossl_check_OCSP_RESPID_type(ptr))) -#define sk_OCSP_RESPID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr)) -#define sk_OCSP_RESPID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr)) -#define sk_OCSP_RESPID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr), pnum) -#define sk_OCSP_RESPID_sort(sk) OPENSSL_sk_sort(ossl_check_OCSP_RESPID_sk_type(sk)) -#define sk_OCSP_RESPID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OCSP_RESPID_sk_type(sk)) -#define sk_OCSP_RESPID_dup(sk) ((STACK_OF(OCSP_RESPID) *)OPENSSL_sk_dup(ossl_check_const_OCSP_RESPID_sk_type(sk))) -#define sk_OCSP_RESPID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OCSP_RESPID) *)OPENSSL_sk_deep_copy(ossl_check_const_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_copyfunc_type(copyfunc), ossl_check_OCSP_RESPID_freefunc_type(freefunc))) -#define sk_OCSP_RESPID_set_cmp_func(sk, cmp) ((sk_OCSP_RESPID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_compfunc_type(cmp))) - - -typedef struct ocsp_revoked_info_st OCSP_REVOKEDINFO; - -# define V_OCSP_CERTSTATUS_GOOD 0 -# define V_OCSP_CERTSTATUS_REVOKED 1 -# define V_OCSP_CERTSTATUS_UNKNOWN 2 - -typedef struct ocsp_cert_status_st OCSP_CERTSTATUS; -typedef struct ocsp_single_response_st OCSP_SINGLERESP; - -SKM_DEFINE_STACK_OF_INTERNAL(OCSP_SINGLERESP, OCSP_SINGLERESP, OCSP_SINGLERESP) -#define sk_OCSP_SINGLERESP_num(sk) OPENSSL_sk_num(ossl_check_const_OCSP_SINGLERESP_sk_type(sk)) -#define sk_OCSP_SINGLERESP_value(sk, idx) ((OCSP_SINGLERESP *)OPENSSL_sk_value(ossl_check_const_OCSP_SINGLERESP_sk_type(sk), (idx))) -#define sk_OCSP_SINGLERESP_new(cmp) ((STACK_OF(OCSP_SINGLERESP) *)OPENSSL_sk_new(ossl_check_OCSP_SINGLERESP_compfunc_type(cmp))) -#define sk_OCSP_SINGLERESP_new_null() ((STACK_OF(OCSP_SINGLERESP) *)OPENSSL_sk_new_null()) -#define sk_OCSP_SINGLERESP_new_reserve(cmp, n) ((STACK_OF(OCSP_SINGLERESP) *)OPENSSL_sk_new_reserve(ossl_check_OCSP_SINGLERESP_compfunc_type(cmp), (n))) -#define sk_OCSP_SINGLERESP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OCSP_SINGLERESP_sk_type(sk), (n)) -#define sk_OCSP_SINGLERESP_free(sk) OPENSSL_sk_free(ossl_check_OCSP_SINGLERESP_sk_type(sk)) -#define sk_OCSP_SINGLERESP_zero(sk) OPENSSL_sk_zero(ossl_check_OCSP_SINGLERESP_sk_type(sk)) -#define sk_OCSP_SINGLERESP_delete(sk, i) ((OCSP_SINGLERESP *)OPENSSL_sk_delete(ossl_check_OCSP_SINGLERESP_sk_type(sk), (i))) -#define sk_OCSP_SINGLERESP_delete_ptr(sk, ptr) ((OCSP_SINGLERESP *)OPENSSL_sk_delete_ptr(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr))) -#define sk_OCSP_SINGLERESP_push(sk, ptr) OPENSSL_sk_push(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr)) -#define sk_OCSP_SINGLERESP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr)) -#define sk_OCSP_SINGLERESP_pop(sk) ((OCSP_SINGLERESP *)OPENSSL_sk_pop(ossl_check_OCSP_SINGLERESP_sk_type(sk))) -#define sk_OCSP_SINGLERESP_shift(sk) ((OCSP_SINGLERESP *)OPENSSL_sk_shift(ossl_check_OCSP_SINGLERESP_sk_type(sk))) -#define sk_OCSP_SINGLERESP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_freefunc_type(freefunc)) -#define sk_OCSP_SINGLERESP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr), (idx)) -#define sk_OCSP_SINGLERESP_set(sk, idx, ptr) ((OCSP_SINGLERESP *)OPENSSL_sk_set(ossl_check_OCSP_SINGLERESP_sk_type(sk), (idx), ossl_check_OCSP_SINGLERESP_type(ptr))) -#define sk_OCSP_SINGLERESP_find(sk, ptr) OPENSSL_sk_find(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr)) -#define sk_OCSP_SINGLERESP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr)) -#define sk_OCSP_SINGLERESP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr), pnum) -#define sk_OCSP_SINGLERESP_sort(sk) OPENSSL_sk_sort(ossl_check_OCSP_SINGLERESP_sk_type(sk)) -#define sk_OCSP_SINGLERESP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OCSP_SINGLERESP_sk_type(sk)) -#define sk_OCSP_SINGLERESP_dup(sk) ((STACK_OF(OCSP_SINGLERESP) *)OPENSSL_sk_dup(ossl_check_const_OCSP_SINGLERESP_sk_type(sk))) -#define sk_OCSP_SINGLERESP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OCSP_SINGLERESP) *)OPENSSL_sk_deep_copy(ossl_check_const_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_copyfunc_type(copyfunc), ossl_check_OCSP_SINGLERESP_freefunc_type(freefunc))) -#define sk_OCSP_SINGLERESP_set_cmp_func(sk, cmp) ((sk_OCSP_SINGLERESP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_compfunc_type(cmp))) - - -typedef struct ocsp_response_data_st OCSP_RESPDATA; - -typedef struct ocsp_basic_response_st OCSP_BASICRESP; - -typedef struct ocsp_crl_id_st OCSP_CRLID; -typedef struct ocsp_service_locator_st OCSP_SERVICELOC; - -# define PEM_STRING_OCSP_REQUEST "OCSP REQUEST" -# define PEM_STRING_OCSP_RESPONSE "OCSP RESPONSE" - -# define d2i_OCSP_REQUEST_bio(bp,p) ASN1_d2i_bio_of(OCSP_REQUEST,OCSP_REQUEST_new,d2i_OCSP_REQUEST,bp,p) - -# define d2i_OCSP_RESPONSE_bio(bp,p) ASN1_d2i_bio_of(OCSP_RESPONSE,OCSP_RESPONSE_new,d2i_OCSP_RESPONSE,bp,p) - -# define PEM_read_bio_OCSP_REQUEST(bp,x,cb) (OCSP_REQUEST *)PEM_ASN1_read_bio( \ - (char *(*)())d2i_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST, \ - bp,(char **)(x),cb,NULL) - -# define PEM_read_bio_OCSP_RESPONSE(bp,x,cb) (OCSP_RESPONSE *)PEM_ASN1_read_bio(\ - (char *(*)())d2i_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE, \ - bp,(char **)(x),cb,NULL) - -# define PEM_write_bio_OCSP_REQUEST(bp,o) \ - PEM_ASN1_write_bio((int (*)())i2d_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,\ - bp,(char *)(o), NULL,NULL,0,NULL,NULL) - -# define PEM_write_bio_OCSP_RESPONSE(bp,o) \ - PEM_ASN1_write_bio((int (*)())i2d_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,\ - bp,(char *)(o), NULL,NULL,0,NULL,NULL) - -# define i2d_OCSP_RESPONSE_bio(bp,o) ASN1_i2d_bio_of(OCSP_RESPONSE,i2d_OCSP_RESPONSE,bp,o) - -# define i2d_OCSP_REQUEST_bio(bp,o) ASN1_i2d_bio_of(OCSP_REQUEST,i2d_OCSP_REQUEST,bp,o) - -# define ASN1_BIT_STRING_digest(data,type,md,len) \ - ASN1_item_digest(ASN1_ITEM_rptr(ASN1_BIT_STRING),type,data,md,len) - -# define OCSP_CERTSTATUS_dup(cs)\ - (OCSP_CERTSTATUS*)ASN1_dup((i2d_of_void *)i2d_OCSP_CERTSTATUS,\ - (d2i_of_void *)d2i_OCSP_CERTSTATUS,(char *)(cs)) - -DECLARE_ASN1_DUP_FUNCTION(OCSP_CERTID) - -OSSL_HTTP_REQ_CTX *OCSP_sendreq_new(BIO *io, const char *path, - const OCSP_REQUEST *req, int buf_size); -OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST *req); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -typedef OSSL_HTTP_REQ_CTX OCSP_REQ_CTX; -# define OCSP_REQ_CTX_new(io, buf_size) \ - OSSL_HTTP_REQ_CTX_new(io, io, buf_size) -# define OCSP_REQ_CTX_free OSSL_HTTP_REQ_CTX_free -# define OCSP_REQ_CTX_http(rctx, op, path) \ - (OSSL_HTTP_REQ_CTX_set_expected(rctx, NULL, 1 /* asn1 */, 0, 0) && \ - OSSL_HTTP_REQ_CTX_set_request_line(rctx, strcmp(op, "POST") == 0, \ - NULL, NULL, path)) -# define OCSP_REQ_CTX_add1_header OSSL_HTTP_REQ_CTX_add1_header -# define OCSP_REQ_CTX_i2d(r, it, req) \ - OSSL_HTTP_REQ_CTX_set1_req(r, "application/ocsp-request", it, req) -# define OCSP_REQ_CTX_set1_req(r, req) \ - OCSP_REQ_CTX_i2d(r, ASN1_ITEM_rptr(OCSP_REQUEST), (ASN1_VALUE *)(req)) -# define OCSP_REQ_CTX_nbio OSSL_HTTP_REQ_CTX_nbio -# define OCSP_REQ_CTX_nbio_d2i OSSL_HTTP_REQ_CTX_nbio_d2i -# define OCSP_sendreq_nbio(p, r) \ - OSSL_HTTP_REQ_CTX_nbio_d2i(r, (ASN1_VALUE **)(p), \ - ASN1_ITEM_rptr(OCSP_RESPONSE)) -# define OCSP_REQ_CTX_get0_mem_bio OSSL_HTTP_REQ_CTX_get0_mem_bio -# define OCSP_set_max_response_length OSSL_HTTP_REQ_CTX_set_max_response_length -# endif - -OCSP_CERTID *OCSP_cert_to_id(const EVP_MD *dgst, const X509 *subject, - const X509 *issuer); - -OCSP_CERTID *OCSP_cert_id_new(const EVP_MD *dgst, - const X509_NAME *issuerName, - const ASN1_BIT_STRING *issuerKey, - const ASN1_INTEGER *serialNumber); - -OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid); - -int OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val, int len); -int OCSP_basic_add1_nonce(OCSP_BASICRESP *resp, unsigned char *val, int len); -int OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *bs); -int OCSP_copy_nonce(OCSP_BASICRESP *resp, OCSP_REQUEST *req); - -int OCSP_request_set1_name(OCSP_REQUEST *req, const X509_NAME *nm); -int OCSP_request_add1_cert(OCSP_REQUEST *req, X509 *cert); - -int OCSP_request_sign(OCSP_REQUEST *req, - X509 *signer, - EVP_PKEY *key, - const EVP_MD *dgst, - STACK_OF(X509) *certs, unsigned long flags); - -int OCSP_response_status(OCSP_RESPONSE *resp); -OCSP_BASICRESP *OCSP_response_get1_basic(OCSP_RESPONSE *resp); - -const ASN1_OCTET_STRING *OCSP_resp_get0_signature(const OCSP_BASICRESP *bs); -const X509_ALGOR *OCSP_resp_get0_tbs_sigalg(const OCSP_BASICRESP *bs); -const OCSP_RESPDATA *OCSP_resp_get0_respdata(const OCSP_BASICRESP *bs); -int OCSP_resp_get0_signer(OCSP_BASICRESP *bs, X509 **signer, - STACK_OF(X509) *extra_certs); - -int OCSP_resp_count(OCSP_BASICRESP *bs); -OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx); -const ASN1_GENERALIZEDTIME *OCSP_resp_get0_produced_at(const OCSP_BASICRESP* bs); -const STACK_OF(X509) *OCSP_resp_get0_certs(const OCSP_BASICRESP *bs); -int OCSP_resp_get0_id(const OCSP_BASICRESP *bs, - const ASN1_OCTET_STRING **pid, - const X509_NAME **pname); -int OCSP_resp_get1_id(const OCSP_BASICRESP *bs, - ASN1_OCTET_STRING **pid, - X509_NAME **pname); - -int OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last); -int OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason, - ASN1_GENERALIZEDTIME **revtime, - ASN1_GENERALIZEDTIME **thisupd, - ASN1_GENERALIZEDTIME **nextupd); -int OCSP_resp_find_status(OCSP_BASICRESP *bs, OCSP_CERTID *id, int *status, - int *reason, - ASN1_GENERALIZEDTIME **revtime, - ASN1_GENERALIZEDTIME **thisupd, - ASN1_GENERALIZEDTIME **nextupd); -int OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd, - ASN1_GENERALIZEDTIME *nextupd, long sec, long maxsec); - -int OCSP_request_verify(OCSP_REQUEST *req, STACK_OF(X509) *certs, - X509_STORE *store, unsigned long flags); - -# define OCSP_parse_url(url, host, port, path, ssl) \ - OSSL_HTTP_parse_url(url, ssl, NULL, host, port, NULL, path, NULL, NULL) - -int OCSP_id_issuer_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b); -int OCSP_id_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b); - -int OCSP_request_onereq_count(OCSP_REQUEST *req); -OCSP_ONEREQ *OCSP_request_onereq_get0(OCSP_REQUEST *req, int i); -OCSP_CERTID *OCSP_onereq_get0_id(OCSP_ONEREQ *one); -int OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, - ASN1_OCTET_STRING **pikeyHash, - ASN1_INTEGER **pserial, OCSP_CERTID *cid); -int OCSP_request_is_signed(OCSP_REQUEST *req); -OCSP_RESPONSE *OCSP_response_create(int status, OCSP_BASICRESP *bs); -OCSP_SINGLERESP *OCSP_basic_add1_status(OCSP_BASICRESP *rsp, - OCSP_CERTID *cid, - int status, int reason, - ASN1_TIME *revtime, - ASN1_TIME *thisupd, - ASN1_TIME *nextupd); -int OCSP_basic_add1_cert(OCSP_BASICRESP *resp, X509 *cert); -int OCSP_basic_sign(OCSP_BASICRESP *brsp, - X509 *signer, EVP_PKEY *key, const EVP_MD *dgst, - STACK_OF(X509) *certs, unsigned long flags); -int OCSP_basic_sign_ctx(OCSP_BASICRESP *brsp, - X509 *signer, EVP_MD_CTX *ctx, - STACK_OF(X509) *certs, unsigned long flags); -int OCSP_RESPID_set_by_name(OCSP_RESPID *respid, X509 *cert); -int OCSP_RESPID_set_by_key_ex(OCSP_RESPID *respid, X509 *cert, - OSSL_LIB_CTX *libctx, const char *propq); -int OCSP_RESPID_set_by_key(OCSP_RESPID *respid, X509 *cert); -int OCSP_RESPID_match_ex(OCSP_RESPID *respid, X509 *cert, OSSL_LIB_CTX *libctx, - const char *propq); -int OCSP_RESPID_match(OCSP_RESPID *respid, X509 *cert); - -X509_EXTENSION *OCSP_crlID_new(const char *url, long *n, char *tim); - -X509_EXTENSION *OCSP_accept_responses_new(char **oids); - -X509_EXTENSION *OCSP_archive_cutoff_new(char *tim); - -X509_EXTENSION *OCSP_url_svcloc_new(const X509_NAME *issuer, const char **urls); - -int OCSP_REQUEST_get_ext_count(OCSP_REQUEST *x); -int OCSP_REQUEST_get_ext_by_NID(OCSP_REQUEST *x, int nid, int lastpos); -int OCSP_REQUEST_get_ext_by_OBJ(OCSP_REQUEST *x, const ASN1_OBJECT *obj, - int lastpos); -int OCSP_REQUEST_get_ext_by_critical(OCSP_REQUEST *x, int crit, int lastpos); -X509_EXTENSION *OCSP_REQUEST_get_ext(OCSP_REQUEST *x, int loc); -X509_EXTENSION *OCSP_REQUEST_delete_ext(OCSP_REQUEST *x, int loc); -void *OCSP_REQUEST_get1_ext_d2i(OCSP_REQUEST *x, int nid, int *crit, - int *idx); -int OCSP_REQUEST_add1_ext_i2d(OCSP_REQUEST *x, int nid, void *value, int crit, - unsigned long flags); -int OCSP_REQUEST_add_ext(OCSP_REQUEST *x, X509_EXTENSION *ex, int loc); - -int OCSP_ONEREQ_get_ext_count(OCSP_ONEREQ *x); -int OCSP_ONEREQ_get_ext_by_NID(OCSP_ONEREQ *x, int nid, int lastpos); -int OCSP_ONEREQ_get_ext_by_OBJ(OCSP_ONEREQ *x, const ASN1_OBJECT *obj, int lastpos); -int OCSP_ONEREQ_get_ext_by_critical(OCSP_ONEREQ *x, int crit, int lastpos); -X509_EXTENSION *OCSP_ONEREQ_get_ext(OCSP_ONEREQ *x, int loc); -X509_EXTENSION *OCSP_ONEREQ_delete_ext(OCSP_ONEREQ *x, int loc); -void *OCSP_ONEREQ_get1_ext_d2i(OCSP_ONEREQ *x, int nid, int *crit, int *idx); -int OCSP_ONEREQ_add1_ext_i2d(OCSP_ONEREQ *x, int nid, void *value, int crit, - unsigned long flags); -int OCSP_ONEREQ_add_ext(OCSP_ONEREQ *x, X509_EXTENSION *ex, int loc); - -int OCSP_BASICRESP_get_ext_count(OCSP_BASICRESP *x); -int OCSP_BASICRESP_get_ext_by_NID(OCSP_BASICRESP *x, int nid, int lastpos); -int OCSP_BASICRESP_get_ext_by_OBJ(OCSP_BASICRESP *x, const ASN1_OBJECT *obj, - int lastpos); -int OCSP_BASICRESP_get_ext_by_critical(OCSP_BASICRESP *x, int crit, - int lastpos); -X509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *x, int loc); -X509_EXTENSION *OCSP_BASICRESP_delete_ext(OCSP_BASICRESP *x, int loc); -void *OCSP_BASICRESP_get1_ext_d2i(OCSP_BASICRESP *x, int nid, int *crit, - int *idx); -int OCSP_BASICRESP_add1_ext_i2d(OCSP_BASICRESP *x, int nid, void *value, - int crit, unsigned long flags); -int OCSP_BASICRESP_add_ext(OCSP_BASICRESP *x, X509_EXTENSION *ex, int loc); - -int OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *x); -int OCSP_SINGLERESP_get_ext_by_NID(OCSP_SINGLERESP *x, int nid, int lastpos); -int OCSP_SINGLERESP_get_ext_by_OBJ(OCSP_SINGLERESP *x, const ASN1_OBJECT *obj, - int lastpos); -int OCSP_SINGLERESP_get_ext_by_critical(OCSP_SINGLERESP *x, int crit, - int lastpos); -X509_EXTENSION *OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *x, int loc); -X509_EXTENSION *OCSP_SINGLERESP_delete_ext(OCSP_SINGLERESP *x, int loc); -void *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int *crit, - int *idx); -int OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value, - int crit, unsigned long flags); -int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, int loc); -const OCSP_CERTID *OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *x); - -DECLARE_ASN1_FUNCTIONS(OCSP_SINGLERESP) -DECLARE_ASN1_FUNCTIONS(OCSP_CERTSTATUS) -DECLARE_ASN1_FUNCTIONS(OCSP_REVOKEDINFO) -DECLARE_ASN1_FUNCTIONS(OCSP_BASICRESP) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPDATA) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPONSE) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPBYTES) -DECLARE_ASN1_FUNCTIONS(OCSP_ONEREQ) -DECLARE_ASN1_FUNCTIONS(OCSP_CERTID) -DECLARE_ASN1_FUNCTIONS(OCSP_REQUEST) -DECLARE_ASN1_FUNCTIONS(OCSP_SIGNATURE) -DECLARE_ASN1_FUNCTIONS(OCSP_REQINFO) -DECLARE_ASN1_FUNCTIONS(OCSP_CRLID) -DECLARE_ASN1_FUNCTIONS(OCSP_SERVICELOC) - -const char *OCSP_response_status_str(long s); -const char *OCSP_cert_status_str(long s); -const char *OCSP_crl_reason_str(long s); - -int OCSP_REQUEST_print(BIO *bp, OCSP_REQUEST *a, unsigned long flags); -int OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE *o, unsigned long flags); - -int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs, - X509_STORE *st, unsigned long flags); - - -# ifdef __cplusplus -} -# endif -# endif /* !defined(OPENSSL_NO_OCSP) */ -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/ocsperr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/ocsperr.h deleted file mode 100644 index 46a0523..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/ocsperr.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_OCSPERR_H -# define OPENSSL_OCSPERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_OCSP - - -/* - * OCSP reason codes. - */ -# define OCSP_R_CERTIFICATE_VERIFY_ERROR 101 -# define OCSP_R_DIGEST_ERR 102 -# define OCSP_R_DIGEST_NAME_ERR 106 -# define OCSP_R_DIGEST_SIZE_ERR 107 -# define OCSP_R_ERROR_IN_NEXTUPDATE_FIELD 122 -# define OCSP_R_ERROR_IN_THISUPDATE_FIELD 123 -# define OCSP_R_MISSING_OCSPSIGNING_USAGE 103 -# define OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE 124 -# define OCSP_R_NOT_BASIC_RESPONSE 104 -# define OCSP_R_NO_CERTIFICATES_IN_CHAIN 105 -# define OCSP_R_NO_RESPONSE_DATA 108 -# define OCSP_R_NO_REVOKED_TIME 109 -# define OCSP_R_NO_SIGNER_KEY 130 -# define OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 110 -# define OCSP_R_REQUEST_NOT_SIGNED 128 -# define OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA 111 -# define OCSP_R_ROOT_CA_NOT_TRUSTED 112 -# define OCSP_R_SIGNATURE_FAILURE 117 -# define OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND 118 -# define OCSP_R_STATUS_EXPIRED 125 -# define OCSP_R_STATUS_NOT_YET_VALID 126 -# define OCSP_R_STATUS_TOO_OLD 127 -# define OCSP_R_UNKNOWN_MESSAGE_DIGEST 119 -# define OCSP_R_UNKNOWN_NID 120 -# define OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE 129 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/opensslconf.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/opensslconf.h deleted file mode 100644 index 1e83371..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/opensslconf.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_OPENSSLCONF_H -# define OPENSSL_OPENSSLCONF_H -# pragma once - -# include -# include - -#endif /* OPENSSL_OPENSSLCONF_H */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/opensslv.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/opensslv.h deleted file mode 100644 index 24243de..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/opensslv.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\opensslv.h.in - * - * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_OPENSSLV_H -# define OPENSSL_OPENSSLV_H -# pragma once - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * SECTION 1: VERSION DATA. These will change for each release - */ - -/* - * Base version macros - * - * These macros express version number MAJOR.MINOR.PATCH exactly - */ -# define OPENSSL_VERSION_MAJOR 3 -# define OPENSSL_VERSION_MINOR 6 -# define OPENSSL_VERSION_PATCH 0 - -/* - * Additional version information - * - * These are also part of the new version scheme, but aren't part - * of the version number itself. - */ - -/* Could be: #define OPENSSL_VERSION_PRE_RELEASE "-alpha.1" */ -# define OPENSSL_VERSION_PRE_RELEASE "-beta1" -/* Could be: #define OPENSSL_VERSION_BUILD_METADATA "+fips" */ -/* Could be: #define OPENSSL_VERSION_BUILD_METADATA "+vendor.1" */ -# define OPENSSL_VERSION_BUILD_METADATA "" - -/* - * Note: The OpenSSL Project will never define OPENSSL_VERSION_BUILD_METADATA - * to be anything but the empty string. Its use is entirely reserved for - * others - */ - -/* - * Shared library version - * - * This is strictly to express ABI version, which may or may not - * be related to the API version expressed with the macros above. - * This is defined in free form. - */ -# define OPENSSL_SHLIB_VERSION 3 - -/* - * SECTION 2: USEFUL MACROS - */ - -/* For checking general API compatibility when preprocessing */ -# define OPENSSL_VERSION_PREREQ(maj,min) \ - ((OPENSSL_VERSION_MAJOR << 16) + OPENSSL_VERSION_MINOR >= ((maj) << 16) + (min)) - -/* - * Macros to get the version in easily digested string form, both the short - * "MAJOR.MINOR.PATCH" variant (where MAJOR, MINOR and PATCH are replaced - * with the values from the corresponding OPENSSL_VERSION_ macros) and the - * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and - * OPENSSL_VERSION_BUILD_METADATA_STR appended. - */ -# define OPENSSL_VERSION_STR "3.6.0" -# define OPENSSL_FULL_VERSION_STR "3.6.0-beta1" - -/* - * SECTION 3: ADDITIONAL METADATA - * - * These strings are defined separately to allow them to be parsable. - */ -# define OPENSSL_RELEASE_DATE "16 Sep 2025" - -/* - * SECTION 4: BACKWARD COMPATIBILITY - */ - -# define OPENSSL_VERSION_TEXT "OpenSSL 3.6.0-beta1 16 Sep 2025" - -/* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ -# define OPENSSL_VERSION_NUMBER \ - ( (OPENSSL_VERSION_MAJOR<<28) \ - |(OPENSSL_VERSION_MINOR<<20) \ - |(OPENSSL_VERSION_PATCH<<4) \ - |0x0L ) - -# ifdef __cplusplus -} -# endif - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_OPENSSLV_H -# endif - -#endif /* OPENSSL_OPENSSLV_H */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/ossl_typ.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/ossl_typ.h deleted file mode 100644 index 82a5898..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/ossl_typ.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * The original was renamed to - * - * This header file only exists for compatibility reasons with older - * applications which #include . - */ -# include diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/param_build.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/param_build.h deleted file mode 100644 index f29fdb2..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/param_build.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PARAM_BUILD_H -# define OPENSSL_PARAM_BUILD_H -# pragma once - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -OSSL_PARAM_BLD *OSSL_PARAM_BLD_new(void); -OSSL_PARAM *OSSL_PARAM_BLD_to_param(OSSL_PARAM_BLD *bld); -void OSSL_PARAM_BLD_free(OSSL_PARAM_BLD *bld); - -int OSSL_PARAM_BLD_push_int(OSSL_PARAM_BLD *bld, const char *key, int val); -int OSSL_PARAM_BLD_push_uint(OSSL_PARAM_BLD *bld, const char *key, - unsigned int val); -int OSSL_PARAM_BLD_push_long(OSSL_PARAM_BLD *bld, const char *key, - long int val); -int OSSL_PARAM_BLD_push_ulong(OSSL_PARAM_BLD *bld, const char *key, - unsigned long int val); -int OSSL_PARAM_BLD_push_int32(OSSL_PARAM_BLD *bld, const char *key, - int32_t val); -int OSSL_PARAM_BLD_push_uint32(OSSL_PARAM_BLD *bld, const char *key, - uint32_t val); -int OSSL_PARAM_BLD_push_int64(OSSL_PARAM_BLD *bld, const char *key, - int64_t val); -int OSSL_PARAM_BLD_push_uint64(OSSL_PARAM_BLD *bld, const char *key, - uint64_t val); -int OSSL_PARAM_BLD_push_size_t(OSSL_PARAM_BLD *bld, const char *key, - size_t val); -int OSSL_PARAM_BLD_push_time_t(OSSL_PARAM_BLD *bld, const char *key, - time_t val); -int OSSL_PARAM_BLD_push_double(OSSL_PARAM_BLD *bld, const char *key, - double val); -int OSSL_PARAM_BLD_push_BN(OSSL_PARAM_BLD *bld, const char *key, - const BIGNUM *bn); -int OSSL_PARAM_BLD_push_BN_pad(OSSL_PARAM_BLD *bld, const char *key, - const BIGNUM *bn, size_t sz); -int OSSL_PARAM_BLD_push_utf8_string(OSSL_PARAM_BLD *bld, const char *key, - const char *buf, size_t bsize); -int OSSL_PARAM_BLD_push_utf8_ptr(OSSL_PARAM_BLD *bld, const char *key, - char *buf, size_t bsize); -int OSSL_PARAM_BLD_push_octet_string(OSSL_PARAM_BLD *bld, const char *key, - const void *buf, size_t bsize); -int OSSL_PARAM_BLD_push_octet_ptr(OSSL_PARAM_BLD *bld, const char *key, - void *buf, size_t bsize); - -# ifdef __cplusplus -} -# endif -#endif /* OPENSSL_PARAM_BUILD_H */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/params.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/params.h deleted file mode 100644 index eae67b1..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/params.h +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PARAMS_H -# define OPENSSL_PARAMS_H -# pragma once - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# define OSSL_PARAM_UNMODIFIED ((size_t)-1) - -# define OSSL_PARAM_END \ - { NULL, 0, NULL, 0, 0 } - -# define OSSL_PARAM_DEFN(key, type, addr, sz) \ - { (key), (type), (addr), (sz), OSSL_PARAM_UNMODIFIED } - -/* Basic parameter types without return sizes */ -# define OSSL_PARAM_int(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_INTEGER, (addr), sizeof(int)) -# define OSSL_PARAM_uint(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_UNSIGNED_INTEGER, (addr), \ - sizeof(unsigned int)) -# define OSSL_PARAM_long(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_INTEGER, (addr), sizeof(long int)) -# define OSSL_PARAM_ulong(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_UNSIGNED_INTEGER, (addr), \ - sizeof(unsigned long int)) -# define OSSL_PARAM_int32(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_INTEGER, (addr), sizeof(int32_t)) -# define OSSL_PARAM_uint32(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_UNSIGNED_INTEGER, (addr), \ - sizeof(uint32_t)) -# define OSSL_PARAM_int64(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_INTEGER, (addr), sizeof(int64_t)) -# define OSSL_PARAM_uint64(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_UNSIGNED_INTEGER, (addr), \ - sizeof(uint64_t)) -# define OSSL_PARAM_size_t(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_UNSIGNED_INTEGER, (addr), sizeof(size_t)) -# define OSSL_PARAM_time_t(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_INTEGER, (addr), sizeof(time_t)) -# define OSSL_PARAM_double(key, addr) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_REAL, (addr), sizeof(double)) - -# define OSSL_PARAM_BN(key, bn, sz) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_UNSIGNED_INTEGER, (bn), (sz)) -# define OSSL_PARAM_utf8_string(key, addr, sz) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_UTF8_STRING, (addr), sz) -# define OSSL_PARAM_octet_string(key, addr, sz) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_OCTET_STRING, (addr), sz) - -# define OSSL_PARAM_utf8_ptr(key, addr, sz) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_UTF8_PTR, (addr), sz) -# define OSSL_PARAM_octet_ptr(key, addr, sz) \ - OSSL_PARAM_DEFN((key), OSSL_PARAM_OCTET_PTR, (addr), sz) - -/* Search an OSSL_PARAM array for a matching name */ -OSSL_PARAM *OSSL_PARAM_locate(OSSL_PARAM *p, const char *key); -const OSSL_PARAM *OSSL_PARAM_locate_const(const OSSL_PARAM *p, const char *key); - -/* Basic parameter type run-time construction */ -OSSL_PARAM OSSL_PARAM_construct_int(const char *key, int *buf); -OSSL_PARAM OSSL_PARAM_construct_uint(const char *key, unsigned int *buf); -OSSL_PARAM OSSL_PARAM_construct_long(const char *key, long int *buf); -OSSL_PARAM OSSL_PARAM_construct_ulong(const char *key, unsigned long int *buf); -OSSL_PARAM OSSL_PARAM_construct_int32(const char *key, int32_t *buf); -OSSL_PARAM OSSL_PARAM_construct_uint32(const char *key, uint32_t *buf); -OSSL_PARAM OSSL_PARAM_construct_int64(const char *key, int64_t *buf); -OSSL_PARAM OSSL_PARAM_construct_uint64(const char *key, uint64_t *buf); -OSSL_PARAM OSSL_PARAM_construct_size_t(const char *key, size_t *buf); -OSSL_PARAM OSSL_PARAM_construct_time_t(const char *key, time_t *buf); -OSSL_PARAM OSSL_PARAM_construct_BN(const char *key, unsigned char *buf, - size_t bsize); -OSSL_PARAM OSSL_PARAM_construct_double(const char *key, double *buf); -OSSL_PARAM OSSL_PARAM_construct_utf8_string(const char *key, char *buf, - size_t bsize); -OSSL_PARAM OSSL_PARAM_construct_utf8_ptr(const char *key, char **buf, - size_t bsize); -OSSL_PARAM OSSL_PARAM_construct_octet_string(const char *key, void *buf, - size_t bsize); -OSSL_PARAM OSSL_PARAM_construct_octet_ptr(const char *key, void **buf, - size_t bsize); -OSSL_PARAM OSSL_PARAM_construct_end(void); - -int OSSL_PARAM_allocate_from_text(OSSL_PARAM *to, - const OSSL_PARAM *paramdefs, - const char *key, const char *value, - size_t value_n, int *found); - -int OSSL_PARAM_print_to_bio(const OSSL_PARAM *params, BIO *bio, - int print_values); - -int OSSL_PARAM_get_int(const OSSL_PARAM *p, int *val); -int OSSL_PARAM_get_uint(const OSSL_PARAM *p, unsigned int *val); -int OSSL_PARAM_get_long(const OSSL_PARAM *p, long int *val); -int OSSL_PARAM_get_ulong(const OSSL_PARAM *p, unsigned long int *val); -int OSSL_PARAM_get_int32(const OSSL_PARAM *p, int32_t *val); -int OSSL_PARAM_get_uint32(const OSSL_PARAM *p, uint32_t *val); -int OSSL_PARAM_get_int64(const OSSL_PARAM *p, int64_t *val); -int OSSL_PARAM_get_uint64(const OSSL_PARAM *p, uint64_t *val); -int OSSL_PARAM_get_size_t(const OSSL_PARAM *p, size_t *val); -int OSSL_PARAM_get_time_t(const OSSL_PARAM *p, time_t *val); - -int OSSL_PARAM_set_int(OSSL_PARAM *p, int val); -int OSSL_PARAM_set_uint(OSSL_PARAM *p, unsigned int val); -int OSSL_PARAM_set_long(OSSL_PARAM *p, long int val); -int OSSL_PARAM_set_ulong(OSSL_PARAM *p, unsigned long int val); -int OSSL_PARAM_set_int32(OSSL_PARAM *p, int32_t val); -int OSSL_PARAM_set_uint32(OSSL_PARAM *p, uint32_t val); -int OSSL_PARAM_set_int64(OSSL_PARAM *p, int64_t val); -int OSSL_PARAM_set_uint64(OSSL_PARAM *p, uint64_t val); -int OSSL_PARAM_set_size_t(OSSL_PARAM *p, size_t val); -int OSSL_PARAM_set_time_t(OSSL_PARAM *p, time_t val); - -int OSSL_PARAM_get_double(const OSSL_PARAM *p, double *val); -int OSSL_PARAM_set_double(OSSL_PARAM *p, double val); - -int OSSL_PARAM_get_BN(const OSSL_PARAM *p, BIGNUM **val); -int OSSL_PARAM_set_BN(OSSL_PARAM *p, const BIGNUM *val); - -int OSSL_PARAM_get_utf8_string(const OSSL_PARAM *p, char **val, size_t max_len); -int OSSL_PARAM_set_utf8_string(OSSL_PARAM *p, const char *val); - -int OSSL_PARAM_get_octet_string(const OSSL_PARAM *p, void **val, size_t max_len, - size_t *used_len); -int OSSL_PARAM_set_octet_string(OSSL_PARAM *p, const void *val, size_t len); - -int OSSL_PARAM_get_utf8_ptr(const OSSL_PARAM *p, const char **val); -int OSSL_PARAM_set_utf8_ptr(OSSL_PARAM *p, const char *val); - -int OSSL_PARAM_get_octet_ptr(const OSSL_PARAM *p, const void **val, - size_t *used_len); -int OSSL_PARAM_set_octet_ptr(OSSL_PARAM *p, const void *val, - size_t used_len); - -int OSSL_PARAM_get_utf8_string_ptr(const OSSL_PARAM *p, const char **val); -int OSSL_PARAM_get_octet_string_ptr(const OSSL_PARAM *p, const void **val, - size_t *used_len); - -int OSSL_PARAM_modified(const OSSL_PARAM *p); -void OSSL_PARAM_set_all_unmodified(OSSL_PARAM *p); - -OSSL_PARAM *OSSL_PARAM_dup(const OSSL_PARAM *p); -OSSL_PARAM *OSSL_PARAM_merge(const OSSL_PARAM *p1, const OSSL_PARAM *p2); -void OSSL_PARAM_free(OSSL_PARAM *p); - -int OSSL_PARAM_set_octet_string_or_ptr(OSSL_PARAM *p, const void *val, - size_t len); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/pem.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/pem.h deleted file mode 100644 index de1b658..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/pem.h +++ /dev/null @@ -1,548 +0,0 @@ -/* - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PEM_H -# define OPENSSL_PEM_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_PEM_H -# endif - -# include -# include -# include -# include -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define PEM_BUFSIZE 1024 - -# define PEM_STRING_X509_OLD "X509 CERTIFICATE" -# define PEM_STRING_X509 "CERTIFICATE" -# define PEM_STRING_X509_TRUSTED "TRUSTED CERTIFICATE" -# define PEM_STRING_X509_REQ_OLD "NEW CERTIFICATE REQUEST" -# define PEM_STRING_X509_REQ "CERTIFICATE REQUEST" -# define PEM_STRING_X509_CRL "X509 CRL" -# define PEM_STRING_EVP_PKEY "ANY PRIVATE KEY" -# define PEM_STRING_PUBLIC "PUBLIC KEY" -# define PEM_STRING_RSA "RSA PRIVATE KEY" -# define PEM_STRING_RSA_PUBLIC "RSA PUBLIC KEY" -# define PEM_STRING_DSA "DSA PRIVATE KEY" -# define PEM_STRING_DSA_PUBLIC "DSA PUBLIC KEY" -# define PEM_STRING_PKCS7 "PKCS7" -# define PEM_STRING_PKCS7_SIGNED "PKCS #7 SIGNED DATA" -# define PEM_STRING_PKCS8 "ENCRYPTED PRIVATE KEY" -# define PEM_STRING_PKCS8INF "PRIVATE KEY" -# define PEM_STRING_DHPARAMS "DH PARAMETERS" -# define PEM_STRING_DHXPARAMS "X9.42 DH PARAMETERS" -# define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS" -# define PEM_STRING_DSAPARAMS "DSA PARAMETERS" -# define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY" -# define PEM_STRING_ECPARAMETERS "EC PARAMETERS" -# define PEM_STRING_ECPRIVATEKEY "EC PRIVATE KEY" -# define PEM_STRING_PARAMETERS "PARAMETERS" -# define PEM_STRING_CMS "CMS" -# define PEM_STRING_SM2PRIVATEKEY "SM2 PRIVATE KEY" -# define PEM_STRING_SM2PARAMETERS "SM2 PARAMETERS" -# define PEM_STRING_ACERT "ATTRIBUTE CERTIFICATE" - -# define PEM_TYPE_ENCRYPTED 10 -# define PEM_TYPE_MIC_ONLY 20 -# define PEM_TYPE_MIC_CLEAR 30 -# define PEM_TYPE_CLEAR 40 - -/* - * These macros make the PEM_read/PEM_write functions easier to maintain and - * write. Now they are all implemented with either: IMPLEMENT_PEM_rw(...) or - * IMPLEMENT_PEM_rw_cb(...) - */ - -# define PEM_read_cb_fnsig(name, type, INTYPE, readname) \ - type *PEM_##readname##_##name(INTYPE *out, type **x, \ - pem_password_cb *cb, void *u) -# define PEM_read_cb_ex_fnsig(name, type, INTYPE, readname) \ - type *PEM_##readname##_##name##_ex(INTYPE *out, type **x, \ - pem_password_cb *cb, void *u, \ - OSSL_LIB_CTX *libctx, \ - const char *propq) - -# define PEM_write_fnsig(name, type, OUTTYPE, writename) \ - int PEM_##writename##_##name(OUTTYPE *out, const type *x) -# define PEM_write_cb_fnsig(name, type, OUTTYPE, writename) \ - int PEM_##writename##_##name(OUTTYPE *out, const type *x, \ - const EVP_CIPHER *enc, \ - const unsigned char *kstr, int klen, \ - pem_password_cb *cb, void *u) -# define PEM_write_ex_fnsig(name, type, OUTTYPE, writename) \ - int PEM_##writename##_##name##_ex(OUTTYPE *out, const type *x, \ - OSSL_LIB_CTX *libctx, \ - const char *propq) -# define PEM_write_cb_ex_fnsig(name, type, OUTTYPE, writename) \ - int PEM_##writename##_##name##_ex(OUTTYPE *out, const type *x, \ - const EVP_CIPHER *enc, \ - const unsigned char *kstr, int klen, \ - pem_password_cb *cb, void *u, \ - OSSL_LIB_CTX *libctx, \ - const char *propq) - -# ifdef OPENSSL_NO_STDIO - -# define IMPLEMENT_PEM_read_fp(name, type, str, asn1) /**/ -# define IMPLEMENT_PEM_write_fp(name, type, str, asn1) /**/ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) /**/ -# endif -# define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) /**/ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) /**/ -# endif -# else - -# define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \ - type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u) \ - { \ - return PEM_ASN1_read((d2i_of_void *)d2i_##asn1, str, fp, \ - (void **)x, cb, u); \ - } - -# define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \ - PEM_write_fnsig(name, type, FILE, write) \ - { \ - return PEM_ASN1_write((i2d_of_void *)i2d_##asn1, str, out, \ - x, NULL, NULL, 0, NULL, NULL); \ - } - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_fp(name, type, str, asn1) -# endif - -# define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \ - PEM_write_cb_fnsig(name, type, FILE, write) \ - { \ - return PEM_ASN1_write((i2d_of_void *)i2d_##asn1, str, out, \ - x, enc, kstr, klen, cb, u); \ - } - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) -# endif -# endif - -# define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ - type *PEM_read_bio_##name(BIO *bp, type **x, \ - pem_password_cb *cb, void *u) \ - { \ - return PEM_ASN1_read_bio((d2i_of_void *)d2i_##asn1, str, bp, \ - (void **)x, cb, u); \ - } - -# define IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ - PEM_write_fnsig(name, type, BIO, write_bio) \ - { \ - return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1, str, out, \ - x, NULL,NULL,0,NULL,NULL); \ - } - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_bio(name, type, str, asn1) -# endif - -# define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ - PEM_write_cb_fnsig(name, type, BIO, write_bio) \ - { \ - return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1, str, out, \ - x, enc, kstr, klen, cb, u); \ - } - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) -# endif - -# define IMPLEMENT_PEM_write(name, type, str, asn1) \ - IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_write_fp(name, type, str, asn1) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define IMPLEMENT_PEM_write_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) -# endif - -# define IMPLEMENT_PEM_write_cb(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define IMPLEMENT_PEM_write_cb_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) -# endif - -# define IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_read_fp(name, type, str, asn1) - -# define IMPLEMENT_PEM_rw(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write(name, type, str, asn1) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define IMPLEMENT_PEM_rw_const(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write_const(name, type, str, asn1) -# endif - -# define IMPLEMENT_PEM_rw_cb(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb(name, type, str, asn1) - -/* These are the same except they are for the declarations */ - -/* - * The mysterious 'extern' that's passed to some macros is innocuous, - * and is there to quiet pre-C99 compilers that may complain about empty - * arguments in macro calls. - */ -# if defined(OPENSSL_NO_STDIO) - -# define DECLARE_PEM_read_fp_attr(attr, name, type) /**/ -# define DECLARE_PEM_read_fp_ex_attr(attr, name, type) /**/ -# define DECLARE_PEM_write_fp_attr(attr, name, type) /**/ -# define DECLARE_PEM_write_fp_ex_attr(attr, name, type) /**/ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define DECLARE_PEM_write_fp_const_attr(attr, name, type) /**/ -# endif -# define DECLARE_PEM_write_cb_fp_attr(attr, name, type) /**/ -# define DECLARE_PEM_write_cb_fp_ex_attr(attr, name, type) /**/ - -# else - -# define DECLARE_PEM_read_fp_attr(attr, name, type) \ - attr PEM_read_cb_fnsig(name, type, FILE, read); -# define DECLARE_PEM_read_fp_ex_attr(attr, name, type) \ - attr PEM_read_cb_fnsig(name, type, FILE, read); \ - attr PEM_read_cb_ex_fnsig(name, type, FILE, read); - -# define DECLARE_PEM_write_fp_attr(attr, name, type) \ - attr PEM_write_fnsig(name, type, FILE, write); -# define DECLARE_PEM_write_fp_ex_attr(attr, name, type) \ - attr PEM_write_fnsig(name, type, FILE, write); \ - attr PEM_write_ex_fnsig(name, type, FILE, write); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define DECLARE_PEM_write_fp_const_attr(attr, name, type) \ - attr PEM_write_fnsig(name, type, FILE, write); -# endif -# define DECLARE_PEM_write_cb_fp_attr(attr, name, type) \ - attr PEM_write_cb_fnsig(name, type, FILE, write); -# define DECLARE_PEM_write_cb_fp_ex_attr(attr, name, type) \ - attr PEM_write_cb_fnsig(name, type, FILE, write); \ - attr PEM_write_cb_ex_fnsig(name, type, FILE, write); - -# endif - -# define DECLARE_PEM_read_fp(name, type) \ - DECLARE_PEM_read_fp_attr(extern, name, type) -# define DECLARE_PEM_write_fp(name, type) \ - DECLARE_PEM_write_fp_attr(extern, name, type) -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define DECLARE_PEM_write_fp_const(name, type) \ - DECLARE_PEM_write_fp_const_attr(extern, name, type) -# endif -# define DECLARE_PEM_write_cb_fp(name, type) \ - DECLARE_PEM_write_cb_fp_attr(extern, name, type) - -# define DECLARE_PEM_read_bio_attr(attr, name, type) \ - attr PEM_read_cb_fnsig(name, type, BIO, read_bio); -# define DECLARE_PEM_read_bio_ex_attr(attr, name, type) \ - attr PEM_read_cb_fnsig(name, type, BIO, read_bio); \ - attr PEM_read_cb_ex_fnsig(name, type, BIO, read_bio); -# define DECLARE_PEM_read_bio(name, type) \ - DECLARE_PEM_read_bio_attr(extern, name, type) -# define DECLARE_PEM_read_bio_ex(name, type) \ - DECLARE_PEM_read_bio_ex_attr(extern, name, type) - -# define DECLARE_PEM_write_bio_attr(attr, name, type) \ - attr PEM_write_fnsig(name, type, BIO, write_bio); -# define DECLARE_PEM_write_bio_ex_attr(attr, name, type) \ - attr PEM_write_fnsig(name, type, BIO, write_bio); \ - attr PEM_write_ex_fnsig(name, type, BIO, write_bio); -# define DECLARE_PEM_write_bio(name, type) \ - DECLARE_PEM_write_bio_attr(extern, name, type) -# define DECLARE_PEM_write_bio_ex(name, type) \ - DECLARE_PEM_write_bio_ex_attr(extern, name, type) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define DECLARE_PEM_write_bio_const_attr(attr, name, type) \ - attr PEM_write_fnsig(name, type, BIO, write_bio); -# define DECLARE_PEM_write_bio_const(name, type) \ - DECLARE_PEM_write_bio_const_attr(extern, name, type) -# endif - -# define DECLARE_PEM_write_cb_bio_attr(attr, name, type) \ - attr PEM_write_cb_fnsig(name, type, BIO, write_bio); -# define DECLARE_PEM_write_cb_bio_ex_attr(attr, name, type) \ - attr PEM_write_cb_fnsig(name, type, BIO, write_bio); \ - attr PEM_write_cb_ex_fnsig(name, type, BIO, write_bio); -# define DECLARE_PEM_write_cb_bio(name, type) \ - DECLARE_PEM_write_cb_bio_attr(extern, name, type) -# define DECLARE_PEM_write_cb_ex_bio(name, type) \ - DECLARE_PEM_write_cb_bio_ex_attr(extern, name, type) - -# define DECLARE_PEM_write_attr(attr, name, type) \ - DECLARE_PEM_write_bio_attr(attr, name, type) \ - DECLARE_PEM_write_fp_attr(attr, name, type) -# define DECLARE_PEM_write_ex_attr(attr, name, type) \ - DECLARE_PEM_write_bio_ex_attr(attr, name, type) \ - DECLARE_PEM_write_fp_ex_attr(attr, name, type) -# define DECLARE_PEM_write(name, type) \ - DECLARE_PEM_write_attr(extern, name, type) -# define DECLARE_PEM_write_ex(name, type) \ - DECLARE_PEM_write_ex_attr(extern, name, type) -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define DECLARE_PEM_write_const_attr(attr, name, type) \ - DECLARE_PEM_write_bio_const_attr(attr, name, type) \ - DECLARE_PEM_write_fp_const_attr(attr, name, type) -# define DECLARE_PEM_write_const(name, type) \ - DECLARE_PEM_write_const_attr(extern, name, type) -# endif -# define DECLARE_PEM_write_cb_attr(attr, name, type) \ - DECLARE_PEM_write_cb_bio_attr(attr, name, type) \ - DECLARE_PEM_write_cb_fp_attr(attr, name, type) -# define DECLARE_PEM_write_cb_ex_attr(attr, name, type) \ - DECLARE_PEM_write_cb_bio_ex_attr(attr, name, type) \ - DECLARE_PEM_write_cb_fp_ex_attr(attr, name, type) -# define DECLARE_PEM_write_cb(name, type) \ - DECLARE_PEM_write_cb_attr(extern, name, type) -# define DECLARE_PEM_write_cb_ex(name, type) \ - DECLARE_PEM_write_cb_ex_attr(extern, name, type) -# define DECLARE_PEM_read_attr(attr, name, type) \ - DECLARE_PEM_read_bio_attr(attr, name, type) \ - DECLARE_PEM_read_fp_attr(attr, name, type) -# define DECLARE_PEM_read_ex_attr(attr, name, type) \ - DECLARE_PEM_read_bio_ex_attr(attr, name, type) \ - DECLARE_PEM_read_fp_ex_attr(attr, name, type) -# define DECLARE_PEM_read(name, type) \ - DECLARE_PEM_read_attr(extern, name, type) -# define DECLARE_PEM_read_ex(name, type) \ - DECLARE_PEM_read_ex_attr(extern, name, type) -# define DECLARE_PEM_rw_attr(attr, name, type) \ - DECLARE_PEM_read_attr(attr, name, type) \ - DECLARE_PEM_write_attr(attr, name, type) -# define DECLARE_PEM_rw_ex_attr(attr, name, type) \ - DECLARE_PEM_read_ex_attr(attr, name, type) \ - DECLARE_PEM_write_ex_attr(attr, name, type) -# define DECLARE_PEM_rw(name, type) \ - DECLARE_PEM_rw_attr(extern, name, type) -# define DECLARE_PEM_rw_ex(name, type) \ - DECLARE_PEM_rw_ex_attr(extern, name, type) -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define DECLARE_PEM_rw_const_attr(attr, name, type) \ - DECLARE_PEM_read_attr(attr, name, type) \ - DECLARE_PEM_write_const_attr(attr, name, type) -# define DECLARE_PEM_rw_const(name, type) \ - DECLARE_PEM_rw_const_attr(extern, name, type) -# endif -# define DECLARE_PEM_rw_cb_attr(attr, name, type) \ - DECLARE_PEM_read_attr(attr, name, type) \ - DECLARE_PEM_write_cb_attr(attr, name, type) -# define DECLARE_PEM_rw_cb_ex_attr(attr, name, type) \ - DECLARE_PEM_read_ex_attr(attr, name, type) \ - DECLARE_PEM_write_cb_ex_attr(attr, name, type) -# define DECLARE_PEM_rw_cb(name, type) \ - DECLARE_PEM_rw_cb_attr(extern, name, type) -# define DECLARE_PEM_rw_cb_ex(name, type) \ - DECLARE_PEM_rw_cb_ex_attr(extern, name, type) - -int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher); -int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *len, - pem_password_cb *callback, void *u); - -int PEM_read_bio(BIO *bp, char **name, char **header, - unsigned char **data, long *len); -# define PEM_FLAG_SECURE 0x1 -# define PEM_FLAG_EAY_COMPATIBLE 0x2 -# define PEM_FLAG_ONLY_B64 0x4 -int PEM_read_bio_ex(BIO *bp, char **name, char **header, - unsigned char **data, long *len, unsigned int flags); -int PEM_bytes_read_bio_secmem(unsigned char **pdata, long *plen, char **pnm, - const char *name, BIO *bp, pem_password_cb *cb, - void *u); -int PEM_write_bio(BIO *bp, const char *name, const char *hdr, - const unsigned char *data, long len); -int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, - const char *name, BIO *bp, pem_password_cb *cb, - void *u); -void *PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, void **x, - pem_password_cb *cb, void *u); -int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, - const void *x, const EVP_CIPHER *enc, - const unsigned char *kstr, int klen, - pem_password_cb *cb, void *u); -int PEM_ASN1_write_bio_ctx(OSSL_i2d_of_void_ctx *i2d, void *vctx, - const char *name, BIO *bp, const void *x, - const EVP_CIPHER *enc, const unsigned char *kstr, - int klen, pem_password_cb *cb, void *u); - -STACK_OF(X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, - pem_password_cb *cb, void *u); -STACK_OF(X509_INFO) -*PEM_X509_INFO_read_bio_ex(BIO *bp, STACK_OF(X509_INFO) *sk, - pem_password_cb *cb, void *u, OSSL_LIB_CTX *libctx, - const char *propq); - -int PEM_X509_INFO_write_bio(BIO *bp, const X509_INFO *xi, EVP_CIPHER *enc, - const unsigned char *kstr, int klen, - pem_password_cb *cd, void *u); - -#ifndef OPENSSL_NO_STDIO -int PEM_read(FILE *fp, char **name, char **header, - unsigned char **data, long *len); -int PEM_write(FILE *fp, const char *name, const char *hdr, - const unsigned char *data, long len); -void *PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, - pem_password_cb *cb, void *u); -int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, - const void *x, const EVP_CIPHER *enc, - const unsigned char *kstr, int klen, - pem_password_cb *callback, void *u); -STACK_OF(X509_INFO) *PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk, - pem_password_cb *cb, void *u); -STACK_OF(X509_INFO) -*PEM_X509_INFO_read_ex(FILE *fp, STACK_OF(X509_INFO) *sk, pem_password_cb *cb, - void *u, OSSL_LIB_CTX *libctx, const char *propq); -#endif - -int PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type); -int PEM_SignUpdate(EVP_MD_CTX *ctx, const unsigned char *d, unsigned int cnt); -int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, - unsigned int *siglen, EVP_PKEY *pkey); - -/* The default pem_password_cb that's used internally */ -int PEM_def_callback(char *buf, int num, int rwflag, void *userdata); -void PEM_proc_type(char *buf, int type); -void PEM_dek_info(char *buf, const char *type, int len, const char *str); - -# include - -DECLARE_PEM_rw(X509, X509) -DECLARE_PEM_rw(X509_AUX, X509) -DECLARE_PEM_rw(X509_REQ, X509_REQ) -DECLARE_PEM_write(X509_REQ_NEW, X509_REQ) -DECLARE_PEM_rw(X509_CRL, X509_CRL) -DECLARE_PEM_rw(X509_PUBKEY, X509_PUBKEY) -DECLARE_PEM_rw(PKCS7, PKCS7) -DECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE) -DECLARE_PEM_rw(PKCS8, X509_SIG) -DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO) -# ifndef OPENSSL_NO_DEPRECATED_3_0 -DECLARE_PEM_rw_cb_attr(OSSL_DEPRECATEDIN_3_0, RSAPrivateKey, RSA) -DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, RSAPublicKey, RSA) -DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, RSA_PUBKEY, RSA) -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_DSA -DECLARE_PEM_rw_cb_attr(OSSL_DEPRECATEDIN_3_0, DSAPrivateKey, DSA) -DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, DSA_PUBKEY, DSA) -DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, DSAparams, DSA) -# endif -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_EC -DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, ECPKParameters, EC_GROUP) -DECLARE_PEM_rw_cb_attr(OSSL_DEPRECATEDIN_3_0, ECPrivateKey, EC_KEY) -DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, EC_PUBKEY, EC_KEY) -# endif -# endif - -# ifndef OPENSSL_NO_DH -# ifndef OPENSSL_NO_DEPRECATED_3_0 -DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, DHparams, DH) -DECLARE_PEM_write_attr(OSSL_DEPRECATEDIN_3_0, DHxparams, DH) -# endif -# endif -DECLARE_PEM_rw_cb_ex(PrivateKey, EVP_PKEY) -DECLARE_PEM_rw_ex(PUBKEY, EVP_PKEY) - -int PEM_write_bio_PrivateKey_traditional(BIO *bp, const EVP_PKEY *x, - const EVP_CIPHER *enc, - const unsigned char *kstr, int klen, - pem_password_cb *cb, void *u); - -/* Why do these take a signed char *kstr? */ -int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, const EVP_PKEY *x, int nid, - const char *kstr, int klen, - pem_password_cb *cb, void *u); -int PEM_write_bio_PKCS8PrivateKey(BIO *, const EVP_PKEY *, const EVP_CIPHER *, - const char *kstr, int klen, - pem_password_cb *cb, void *u); -int i2d_PKCS8PrivateKey_bio(BIO *bp, const EVP_PKEY *x, const EVP_CIPHER *enc, - const char *kstr, int klen, - pem_password_cb *cb, void *u); -int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, const EVP_PKEY *x, int nid, - const char *kstr, int klen, - pem_password_cb *cb, void *u); -EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, - void *u); - -# ifndef OPENSSL_NO_STDIO -int i2d_PKCS8PrivateKey_fp(FILE *fp, const EVP_PKEY *x, const EVP_CIPHER *enc, - const char *kstr, int klen, - pem_password_cb *cb, void *u); -int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, const EVP_PKEY *x, int nid, - const char *kstr, int klen, - pem_password_cb *cb, void *u); -int PEM_write_PKCS8PrivateKey_nid(FILE *fp, const EVP_PKEY *x, int nid, - const char *kstr, int klen, - pem_password_cb *cb, void *u); - -EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, - void *u); - -int PEM_write_PKCS8PrivateKey(FILE *fp, const EVP_PKEY *x, const EVP_CIPHER *enc, - const char *kstr, int klen, - pem_password_cb *cd, void *u); -# endif -EVP_PKEY *PEM_read_bio_Parameters_ex(BIO *bp, EVP_PKEY **x, - OSSL_LIB_CTX *libctx, const char *propq); -EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x); -int PEM_write_bio_Parameters(BIO *bp, const EVP_PKEY *x); - -EVP_PKEY *b2i_PrivateKey(const unsigned char **in, long length); -EVP_PKEY *b2i_PublicKey(const unsigned char **in, long length); -EVP_PKEY *b2i_PrivateKey_bio(BIO *in); -EVP_PKEY *b2i_PublicKey_bio(BIO *in); -int i2b_PrivateKey_bio(BIO *out, const EVP_PKEY *pk); -int i2b_PublicKey_bio(BIO *out, const EVP_PKEY *pk); -EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u); -EVP_PKEY *b2i_PVK_bio_ex(BIO *in, pem_password_cb *cb, void *u, - OSSL_LIB_CTX *libctx, const char *propq); -int i2b_PVK_bio(BIO *out, const EVP_PKEY *pk, int enclevel, - pem_password_cb *cb, void *u); -int i2b_PVK_bio_ex(BIO *out, const EVP_PKEY *pk, int enclevel, - pem_password_cb *cb, void *u, - OSSL_LIB_CTX *libctx, const char *propq); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/pem2.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/pem2.h deleted file mode 100644 index a8a5325..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/pem2.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PEM2_H -# define OPENSSL_PEM2_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_PEM2_H -# endif -# include -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/pemerr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/pemerr.h deleted file mode 100644 index 3530775..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/pemerr.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PEMERR_H -# define OPENSSL_PEMERR_H -# pragma once - -# include -# include -# include - - - -/* - * PEM reason codes. - */ -# define PEM_R_BAD_BASE64_DECODE 100 -# define PEM_R_BAD_DECRYPT 101 -# define PEM_R_BAD_END_LINE 102 -# define PEM_R_BAD_IV_CHARS 103 -# define PEM_R_BAD_MAGIC_NUMBER 116 -# define PEM_R_BAD_PASSWORD_READ 104 -# define PEM_R_BAD_VERSION_NUMBER 117 -# define PEM_R_BIO_WRITE_FAILURE 118 -# define PEM_R_CIPHER_IS_NULL 127 -# define PEM_R_ERROR_CONVERTING_PRIVATE_KEY 115 -# define PEM_R_EXPECTING_DSS_KEY_BLOB 131 -# define PEM_R_EXPECTING_PRIVATE_KEY_BLOB 119 -# define PEM_R_EXPECTING_PUBLIC_KEY_BLOB 120 -# define PEM_R_EXPECTING_RSA_KEY_BLOB 132 -# define PEM_R_HEADER_TOO_LONG 128 -# define PEM_R_INCONSISTENT_HEADER 121 -# define PEM_R_KEYBLOB_HEADER_PARSE_ERROR 122 -# define PEM_R_KEYBLOB_TOO_SHORT 123 -# define PEM_R_MISSING_DEK_IV 129 -# define PEM_R_NOT_DEK_INFO 105 -# define PEM_R_NOT_ENCRYPTED 106 -# define PEM_R_NOT_PROC_TYPE 107 -# define PEM_R_NO_START_LINE 108 -# define PEM_R_PROBLEMS_GETTING_PASSWORD 109 -# define PEM_R_PVK_DATA_TOO_SHORT 124 -# define PEM_R_PVK_TOO_SHORT 125 -# define PEM_R_READ_KEY 111 -# define PEM_R_SHORT_HEADER 112 -# define PEM_R_UNEXPECTED_DEK_IV 130 -# define PEM_R_UNSUPPORTED_CIPHER 113 -# define PEM_R_UNSUPPORTED_ENCRYPTION 114 -# define PEM_R_UNSUPPORTED_KEY_COMPONENTS 126 -# define PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE 110 -# define PEM_R_UNSUPPORTED_PVK_KEY_TYPE 133 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/pkcs12.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/pkcs12.h deleted file mode 100644 index 0358577..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/pkcs12.h +++ /dev/null @@ -1,372 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\pkcs12.h.in - * - * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_PKCS12_H -# define OPENSSL_PKCS12_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_PKCS12_H -# endif - -# include -# include -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define PKCS12_KEY_ID 1 -# define PKCS12_IV_ID 2 -# define PKCS12_MAC_ID 3 - -/* Default iteration count */ -# ifndef PKCS12_DEFAULT_ITER -# define PKCS12_DEFAULT_ITER PKCS5_DEFAULT_ITER -# endif - -# define PKCS12_MAC_KEY_LENGTH 20 - -/* - * The macro is expected to be used only internally. Kept for - * backwards compatibility. NIST requires 16, previous value was - * 8. Allow to override this at compile time. - */ -# ifndef PKCS12_SALT_LEN -# define PKCS12_SALT_LEN 16 -# endif - -/* It's not clear if these are actually needed... */ -# define PKCS12_key_gen PKCS12_key_gen_utf8 -# define PKCS12_add_friendlyname PKCS12_add_friendlyname_utf8 - -/* MS key usage constants */ - -# define KEY_EX 0x10 -# define KEY_SIG 0x80 - -typedef struct PKCS12_MAC_DATA_st PKCS12_MAC_DATA; - -typedef struct PKCS12_st PKCS12; - -typedef struct PKCS12_SAFEBAG_st PKCS12_SAFEBAG; - -SKM_DEFINE_STACK_OF_INTERNAL(PKCS12_SAFEBAG, PKCS12_SAFEBAG, PKCS12_SAFEBAG) -#define sk_PKCS12_SAFEBAG_num(sk) OPENSSL_sk_num(ossl_check_const_PKCS12_SAFEBAG_sk_type(sk)) -#define sk_PKCS12_SAFEBAG_value(sk, idx) ((PKCS12_SAFEBAG *)OPENSSL_sk_value(ossl_check_const_PKCS12_SAFEBAG_sk_type(sk), (idx))) -#define sk_PKCS12_SAFEBAG_new(cmp) ((STACK_OF(PKCS12_SAFEBAG) *)OPENSSL_sk_new(ossl_check_PKCS12_SAFEBAG_compfunc_type(cmp))) -#define sk_PKCS12_SAFEBAG_new_null() ((STACK_OF(PKCS12_SAFEBAG) *)OPENSSL_sk_new_null()) -#define sk_PKCS12_SAFEBAG_new_reserve(cmp, n) ((STACK_OF(PKCS12_SAFEBAG) *)OPENSSL_sk_new_reserve(ossl_check_PKCS12_SAFEBAG_compfunc_type(cmp), (n))) -#define sk_PKCS12_SAFEBAG_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_PKCS12_SAFEBAG_sk_type(sk), (n)) -#define sk_PKCS12_SAFEBAG_free(sk) OPENSSL_sk_free(ossl_check_PKCS12_SAFEBAG_sk_type(sk)) -#define sk_PKCS12_SAFEBAG_zero(sk) OPENSSL_sk_zero(ossl_check_PKCS12_SAFEBAG_sk_type(sk)) -#define sk_PKCS12_SAFEBAG_delete(sk, i) ((PKCS12_SAFEBAG *)OPENSSL_sk_delete(ossl_check_PKCS12_SAFEBAG_sk_type(sk), (i))) -#define sk_PKCS12_SAFEBAG_delete_ptr(sk, ptr) ((PKCS12_SAFEBAG *)OPENSSL_sk_delete_ptr(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr))) -#define sk_PKCS12_SAFEBAG_push(sk, ptr) OPENSSL_sk_push(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr)) -#define sk_PKCS12_SAFEBAG_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr)) -#define sk_PKCS12_SAFEBAG_pop(sk) ((PKCS12_SAFEBAG *)OPENSSL_sk_pop(ossl_check_PKCS12_SAFEBAG_sk_type(sk))) -#define sk_PKCS12_SAFEBAG_shift(sk) ((PKCS12_SAFEBAG *)OPENSSL_sk_shift(ossl_check_PKCS12_SAFEBAG_sk_type(sk))) -#define sk_PKCS12_SAFEBAG_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_freefunc_type(freefunc)) -#define sk_PKCS12_SAFEBAG_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr), (idx)) -#define sk_PKCS12_SAFEBAG_set(sk, idx, ptr) ((PKCS12_SAFEBAG *)OPENSSL_sk_set(ossl_check_PKCS12_SAFEBAG_sk_type(sk), (idx), ossl_check_PKCS12_SAFEBAG_type(ptr))) -#define sk_PKCS12_SAFEBAG_find(sk, ptr) OPENSSL_sk_find(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr)) -#define sk_PKCS12_SAFEBAG_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr)) -#define sk_PKCS12_SAFEBAG_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr), pnum) -#define sk_PKCS12_SAFEBAG_sort(sk) OPENSSL_sk_sort(ossl_check_PKCS12_SAFEBAG_sk_type(sk)) -#define sk_PKCS12_SAFEBAG_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_PKCS12_SAFEBAG_sk_type(sk)) -#define sk_PKCS12_SAFEBAG_dup(sk) ((STACK_OF(PKCS12_SAFEBAG) *)OPENSSL_sk_dup(ossl_check_const_PKCS12_SAFEBAG_sk_type(sk))) -#define sk_PKCS12_SAFEBAG_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(PKCS12_SAFEBAG) *)OPENSSL_sk_deep_copy(ossl_check_const_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_copyfunc_type(copyfunc), ossl_check_PKCS12_SAFEBAG_freefunc_type(freefunc))) -#define sk_PKCS12_SAFEBAG_set_cmp_func(sk, cmp) ((sk_PKCS12_SAFEBAG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_compfunc_type(cmp))) - - -typedef struct pkcs12_bag_st PKCS12_BAGS; - -# define PKCS12_ERROR 0 -# define PKCS12_OK 1 - -/* Compatibility macros */ - -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 - -# define M_PKCS12_bag_type PKCS12_bag_type -# define M_PKCS12_cert_bag_type PKCS12_cert_bag_type -# define M_PKCS12_crl_bag_type PKCS12_cert_bag_type - -# define PKCS12_certbag2x509 PKCS12_SAFEBAG_get1_cert -# define PKCS12_certbag2scrl PKCS12_SAFEBAG_get1_crl -# define PKCS12_bag_type PKCS12_SAFEBAG_get_nid -# define PKCS12_cert_bag_type PKCS12_SAFEBAG_get_bag_nid -# define PKCS12_x5092certbag PKCS12_SAFEBAG_create_cert -# define PKCS12_x509crl2certbag PKCS12_SAFEBAG_create_crl -# define PKCS12_MAKE_KEYBAG PKCS12_SAFEBAG_create0_p8inf -# define PKCS12_MAKE_SHKEYBAG PKCS12_SAFEBAG_create_pkcs8_encrypt - -#endif -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 ASN1_TYPE *PKCS12_get_attr(const PKCS12_SAFEBAG *bag, - int attr_nid); -#endif - -ASN1_TYPE *PKCS8_get_attr(PKCS8_PRIV_KEY_INFO *p8, int attr_nid); -int PKCS12_mac_present(const PKCS12 *p12); -void PKCS12_get0_mac(const ASN1_OCTET_STRING **pmac, - const X509_ALGOR **pmacalg, - const ASN1_OCTET_STRING **psalt, - const ASN1_INTEGER **piter, - const PKCS12 *p12); - -const ASN1_TYPE *PKCS12_SAFEBAG_get0_attr(const PKCS12_SAFEBAG *bag, - int attr_nid); -const ASN1_OBJECT *PKCS12_SAFEBAG_get0_type(const PKCS12_SAFEBAG *bag); -int PKCS12_SAFEBAG_get_nid(const PKCS12_SAFEBAG *bag); -int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); -const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); -const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); - -X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); -X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); -X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); -X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); -const STACK_OF(PKCS12_SAFEBAG) * -PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); -const PKCS8_PRIV_KEY_INFO *PKCS12_SAFEBAG_get0_p8inf(const PKCS12_SAFEBAG *bag); -const X509_SIG *PKCS12_SAFEBAG_get0_pkcs8(const PKCS12_SAFEBAG *bag); - -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_cert(X509 *x509); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_crl(X509_CRL *crl); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_secret(int type, int vtype, const unsigned char *value, int len); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_p8inf(PKCS8_PRIV_KEY_INFO *p8); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_pkcs8(X509_SIG *p8); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt(int pbe_nid, - const char *pass, - int passlen, - unsigned char *salt, - int saltlen, int iter, - PKCS8_PRIV_KEY_INFO *p8inf); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt_ex(int pbe_nid, - const char *pass, - int passlen, - unsigned char *salt, - int saltlen, int iter, - PKCS8_PRIV_KEY_INFO *p8inf, - OSSL_LIB_CTX *ctx, - const char *propq); - -PKCS12_SAFEBAG *PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, - int nid1, int nid2); -PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(const X509_SIG *p8, const char *pass, - int passlen); -PKCS8_PRIV_KEY_INFO *PKCS8_decrypt_ex(const X509_SIG *p8, const char *pass, - int passlen, OSSL_LIB_CTX *ctx, - const char *propq); -PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(const PKCS12_SAFEBAG *bag, - const char *pass, int passlen); -PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey_ex(const PKCS12_SAFEBAG *bag, - const char *pass, int passlen, - OSSL_LIB_CTX *ctx, - const char *propq); -X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher, - const char *pass, int passlen, unsigned char *salt, - int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8); -X509_SIG *PKCS8_encrypt_ex(int pbe_nid, const EVP_CIPHER *cipher, - const char *pass, int passlen, unsigned char *salt, - int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8, - OSSL_LIB_CTX *ctx, const char *propq); -X509_SIG *PKCS8_set0_pbe(const char *pass, int passlen, - PKCS8_PRIV_KEY_INFO *p8inf, X509_ALGOR *pbe); -X509_SIG *PKCS8_set0_pbe_ex(const char *pass, int passlen, - PKCS8_PRIV_KEY_INFO *p8inf, X509_ALGOR *pbe, - OSSL_LIB_CTX *ctx, const char *propq); -PKCS7 *PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk); -STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7data(PKCS7 *p7); -PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen, - unsigned char *salt, int saltlen, int iter, - STACK_OF(PKCS12_SAFEBAG) *bags); -PKCS7 *PKCS12_pack_p7encdata_ex(int pbe_nid, const char *pass, int passlen, - unsigned char *salt, int saltlen, int iter, - STACK_OF(PKCS12_SAFEBAG) *bags, - OSSL_LIB_CTX *ctx, const char *propq); - -STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7encdata(PKCS7 *p7, const char *pass, - int passlen); - -int PKCS12_pack_authsafes(PKCS12 *p12, STACK_OF(PKCS7) *safes); -STACK_OF(PKCS7) *PKCS12_unpack_authsafes(const PKCS12 *p12); - -int PKCS12_add_localkeyid(PKCS12_SAFEBAG *bag, unsigned char *name, - int namelen); -int PKCS12_add_friendlyname_asc(PKCS12_SAFEBAG *bag, const char *name, - int namelen); -int PKCS12_add_friendlyname_utf8(PKCS12_SAFEBAG *bag, const char *name, - int namelen); -int PKCS12_add_CSPName_asc(PKCS12_SAFEBAG *bag, const char *name, - int namelen); -int PKCS12_add_friendlyname_uni(PKCS12_SAFEBAG *bag, - const unsigned char *name, int namelen); -int PKCS12_add1_attr_by_NID(PKCS12_SAFEBAG *bag, int nid, int type, - const unsigned char *bytes, int len); -int PKCS12_add1_attr_by_txt(PKCS12_SAFEBAG *bag, const char *attrname, int type, - const unsigned char *bytes, int len); -int PKCS8_add_keyusage(PKCS8_PRIV_KEY_INFO *p8, int usage); -ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, - int attr_nid); -char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); -const STACK_OF(X509_ATTRIBUTE) * -PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); -void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); -unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, - const char *pass, int passlen, - const unsigned char *in, int inlen, - unsigned char **data, int *datalen, - int en_de); -unsigned char *PKCS12_pbe_crypt_ex(const X509_ALGOR *algor, - const char *pass, int passlen, - const unsigned char *in, int inlen, - unsigned char **data, int *datalen, - int en_de, OSSL_LIB_CTX *libctx, - const char *propq); -void *PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM *it, - const char *pass, int passlen, - const ASN1_OCTET_STRING *oct, int zbuf); -void *PKCS12_item_decrypt_d2i_ex(const X509_ALGOR *algor, const ASN1_ITEM *it, - const char *pass, int passlen, - const ASN1_OCTET_STRING *oct, int zbuf, - OSSL_LIB_CTX *libctx, - const char *propq); -ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor, - const ASN1_ITEM *it, - const char *pass, int passlen, - void *obj, int zbuf); -ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt_ex(X509_ALGOR *algor, - const ASN1_ITEM *it, - const char *pass, int passlen, - void *obj, int zbuf, - OSSL_LIB_CTX *ctx, - const char *propq); -PKCS12 *PKCS12_init(int mode); -PKCS12 *PKCS12_init_ex(int mode, OSSL_LIB_CTX *ctx, const char *propq); - -int PKCS12_key_gen_asc(const char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type); -int PKCS12_key_gen_asc_ex(const char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type, - OSSL_LIB_CTX *ctx, const char *propq); -int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type); -int PKCS12_key_gen_uni_ex(unsigned char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type, - OSSL_LIB_CTX *ctx, const char *propq); -int PKCS12_key_gen_utf8(const char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type); -int PKCS12_key_gen_utf8_ex(const char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type, - OSSL_LIB_CTX *ctx, const char *propq); - -int PKCS12_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md_type, int en_de); -int PKCS12_PBE_keyivgen_ex(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md_type, int en_de, - OSSL_LIB_CTX *libctx, const char *propq); -int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen, - unsigned char *mac, unsigned int *maclen); -int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); -int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, - unsigned char *salt, int saltlen, int iter, - const EVP_MD *md_type); -int PKCS12_set_pbmac1_pbkdf2(PKCS12 *p12, const char *pass, int passlen, - unsigned char *salt, int saltlen, int iter, - const EVP_MD *md_type, const char *prf_md_name); -int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, - int saltlen, const EVP_MD *md_type); -unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, - unsigned char **uni, int *unilen); -char *OPENSSL_uni2asc(const unsigned char *uni, int unilen); -unsigned char *OPENSSL_utf82uni(const char *asc, int asclen, - unsigned char **uni, int *unilen); -char *OPENSSL_uni2utf8(const unsigned char *uni, int unilen); - -DECLARE_ASN1_FUNCTIONS(PKCS12) -DECLARE_ASN1_FUNCTIONS(PKCS12_MAC_DATA) -DECLARE_ASN1_FUNCTIONS(PKCS12_SAFEBAG) -DECLARE_ASN1_FUNCTIONS(PKCS12_BAGS) - -DECLARE_ASN1_ITEM(PKCS12_SAFEBAGS) -DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) - -void PKCS12_PBE_add(void); -int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, - STACK_OF(X509) **ca); -typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); -PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, - X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, - int iter, int mac_iter, int keytype); -PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, - X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, - int iter, int mac_iter, int keytype, - OSSL_LIB_CTX *ctx, const char *propq); -PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, - X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, - int iter, int mac_iter, int keytype, - OSSL_LIB_CTX *ctx, const char *propq, - PKCS12_create_cb *cb, void *cbarg); - -PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); -PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, - EVP_PKEY *key, int key_usage, int iter, - int key_nid, const char *pass); -PKCS12_SAFEBAG *PKCS12_add_key_ex(STACK_OF(PKCS12_SAFEBAG) **pbags, - EVP_PKEY *key, int key_usage, int iter, - int key_nid, const char *pass, - OSSL_LIB_CTX *ctx, const char *propq); - -PKCS12_SAFEBAG *PKCS12_add_secret(STACK_OF(PKCS12_SAFEBAG) **pbags, - int nid_type, const unsigned char *value, int len); -int PKCS12_add_safe(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags, - int safe_nid, int iter, const char *pass); -int PKCS12_add_safe_ex(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags, - int safe_nid, int iter, const char *pass, - OSSL_LIB_CTX *ctx, const char *propq); - -PKCS12 *PKCS12_add_safes(STACK_OF(PKCS7) *safes, int p7_nid); -PKCS12 *PKCS12_add_safes_ex(STACK_OF(PKCS7) *safes, int p7_nid, - OSSL_LIB_CTX *ctx, const char *propq); - -int i2d_PKCS12_bio(BIO *bp, const PKCS12 *p12); -# ifndef OPENSSL_NO_STDIO -int i2d_PKCS12_fp(FILE *fp, const PKCS12 *p12); -# endif -PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12); -# ifndef OPENSSL_NO_STDIO -PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12); -# endif -int PKCS12_newpass(PKCS12 *p12, const char *oldpass, const char *newpass); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/pkcs12err.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/pkcs12err.h deleted file mode 100644 index abce373..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/pkcs12err.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PKCS12ERR_H -# define OPENSSL_PKCS12ERR_H -# pragma once - -# include -# include -# include - - - -/* - * PKCS12 reason codes. - */ -# define PKCS12_R_CALLBACK_FAILED 115 -# define PKCS12_R_CANT_PACK_STRUCTURE 100 -# define PKCS12_R_CONTENT_TYPE_NOT_DATA 121 -# define PKCS12_R_DECODE_ERROR 101 -# define PKCS12_R_ENCODE_ERROR 102 -# define PKCS12_R_ENCRYPT_ERROR 103 -# define PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE 120 -# define PKCS12_R_INVALID_NULL_ARGUMENT 104 -# define PKCS12_R_INVALID_NULL_PKCS12_POINTER 105 -# define PKCS12_R_INVALID_TYPE 112 -# define PKCS12_R_IV_GEN_ERROR 106 -# define PKCS12_R_KEY_GEN_ERROR 107 -# define PKCS12_R_MAC_ABSENT 108 -# define PKCS12_R_MAC_GENERATION_ERROR 109 -# define PKCS12_R_MAC_SETUP_ERROR 110 -# define PKCS12_R_MAC_STRING_SET_ERROR 111 -# define PKCS12_R_MAC_VERIFY_FAILURE 113 -# define PKCS12_R_PARSE_ERROR 114 -# define PKCS12_R_PKCS12_CIPHERFINAL_ERROR 116 -# define PKCS12_R_UNKNOWN_DIGEST_ALGORITHM 118 -# define PKCS12_R_UNSUPPORTED_PKCS12_MODE 119 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/pkcs7.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/pkcs7.h deleted file mode 100644 index 4a6f157..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/pkcs7.h +++ /dev/null @@ -1,430 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\pkcs7.h.in - * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_PKCS7_H -# define OPENSSL_PKCS7_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_PKCS7_H -# endif - -# include -# include -# include - -# include -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/*- -Encryption_ID DES-CBC -Digest_ID MD5 -Digest_Encryption_ID rsaEncryption -Key_Encryption_ID rsaEncryption -*/ - -typedef struct PKCS7_CTX_st { - OSSL_LIB_CTX *libctx; - char *propq; -} PKCS7_CTX; - -typedef struct pkcs7_issuer_and_serial_st { - X509_NAME *issuer; - ASN1_INTEGER *serial; -} PKCS7_ISSUER_AND_SERIAL; - -typedef struct pkcs7_signer_info_st { - ASN1_INTEGER *version; /* version 1 */ - PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; - X509_ALGOR *digest_alg; - STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ - ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ - STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ - /* The private key to sign with */ - EVP_PKEY *pkey; - const PKCS7_CTX *ctx; -} PKCS7_SIGNER_INFO; -SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_SIGNER_INFO, PKCS7_SIGNER_INFO, PKCS7_SIGNER_INFO) -#define sk_PKCS7_SIGNER_INFO_num(sk) OPENSSL_sk_num(ossl_check_const_PKCS7_SIGNER_INFO_sk_type(sk)) -#define sk_PKCS7_SIGNER_INFO_value(sk, idx) ((PKCS7_SIGNER_INFO *)OPENSSL_sk_value(ossl_check_const_PKCS7_SIGNER_INFO_sk_type(sk), (idx))) -#define sk_PKCS7_SIGNER_INFO_new(cmp) ((STACK_OF(PKCS7_SIGNER_INFO) *)OPENSSL_sk_new(ossl_check_PKCS7_SIGNER_INFO_compfunc_type(cmp))) -#define sk_PKCS7_SIGNER_INFO_new_null() ((STACK_OF(PKCS7_SIGNER_INFO) *)OPENSSL_sk_new_null()) -#define sk_PKCS7_SIGNER_INFO_new_reserve(cmp, n) ((STACK_OF(PKCS7_SIGNER_INFO) *)OPENSSL_sk_new_reserve(ossl_check_PKCS7_SIGNER_INFO_compfunc_type(cmp), (n))) -#define sk_PKCS7_SIGNER_INFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), (n)) -#define sk_PKCS7_SIGNER_INFO_free(sk) OPENSSL_sk_free(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk)) -#define sk_PKCS7_SIGNER_INFO_zero(sk) OPENSSL_sk_zero(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk)) -#define sk_PKCS7_SIGNER_INFO_delete(sk, i) ((PKCS7_SIGNER_INFO *)OPENSSL_sk_delete(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), (i))) -#define sk_PKCS7_SIGNER_INFO_delete_ptr(sk, ptr) ((PKCS7_SIGNER_INFO *)OPENSSL_sk_delete_ptr(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr))) -#define sk_PKCS7_SIGNER_INFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr)) -#define sk_PKCS7_SIGNER_INFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr)) -#define sk_PKCS7_SIGNER_INFO_pop(sk) ((PKCS7_SIGNER_INFO *)OPENSSL_sk_pop(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk))) -#define sk_PKCS7_SIGNER_INFO_shift(sk) ((PKCS7_SIGNER_INFO *)OPENSSL_sk_shift(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk))) -#define sk_PKCS7_SIGNER_INFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_freefunc_type(freefunc)) -#define sk_PKCS7_SIGNER_INFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr), (idx)) -#define sk_PKCS7_SIGNER_INFO_set(sk, idx, ptr) ((PKCS7_SIGNER_INFO *)OPENSSL_sk_set(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), (idx), ossl_check_PKCS7_SIGNER_INFO_type(ptr))) -#define sk_PKCS7_SIGNER_INFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr)) -#define sk_PKCS7_SIGNER_INFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr)) -#define sk_PKCS7_SIGNER_INFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr), pnum) -#define sk_PKCS7_SIGNER_INFO_sort(sk) OPENSSL_sk_sort(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk)) -#define sk_PKCS7_SIGNER_INFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_PKCS7_SIGNER_INFO_sk_type(sk)) -#define sk_PKCS7_SIGNER_INFO_dup(sk) ((STACK_OF(PKCS7_SIGNER_INFO) *)OPENSSL_sk_dup(ossl_check_const_PKCS7_SIGNER_INFO_sk_type(sk))) -#define sk_PKCS7_SIGNER_INFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(PKCS7_SIGNER_INFO) *)OPENSSL_sk_deep_copy(ossl_check_const_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_copyfunc_type(copyfunc), ossl_check_PKCS7_SIGNER_INFO_freefunc_type(freefunc))) -#define sk_PKCS7_SIGNER_INFO_set_cmp_func(sk, cmp) ((sk_PKCS7_SIGNER_INFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_compfunc_type(cmp))) - - -typedef struct pkcs7_recip_info_st { - ASN1_INTEGER *version; /* version 0 */ - PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; - X509_ALGOR *key_enc_algor; - ASN1_OCTET_STRING *enc_key; - X509 *cert; /* get the pub-key from this */ - const PKCS7_CTX *ctx; -} PKCS7_RECIP_INFO; -SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INFO) -#define sk_PKCS7_RECIP_INFO_num(sk) OPENSSL_sk_num(ossl_check_const_PKCS7_RECIP_INFO_sk_type(sk)) -#define sk_PKCS7_RECIP_INFO_value(sk, idx) ((PKCS7_RECIP_INFO *)OPENSSL_sk_value(ossl_check_const_PKCS7_RECIP_INFO_sk_type(sk), (idx))) -#define sk_PKCS7_RECIP_INFO_new(cmp) ((STACK_OF(PKCS7_RECIP_INFO) *)OPENSSL_sk_new(ossl_check_PKCS7_RECIP_INFO_compfunc_type(cmp))) -#define sk_PKCS7_RECIP_INFO_new_null() ((STACK_OF(PKCS7_RECIP_INFO) *)OPENSSL_sk_new_null()) -#define sk_PKCS7_RECIP_INFO_new_reserve(cmp, n) ((STACK_OF(PKCS7_RECIP_INFO) *)OPENSSL_sk_new_reserve(ossl_check_PKCS7_RECIP_INFO_compfunc_type(cmp), (n))) -#define sk_PKCS7_RECIP_INFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), (n)) -#define sk_PKCS7_RECIP_INFO_free(sk) OPENSSL_sk_free(ossl_check_PKCS7_RECIP_INFO_sk_type(sk)) -#define sk_PKCS7_RECIP_INFO_zero(sk) OPENSSL_sk_zero(ossl_check_PKCS7_RECIP_INFO_sk_type(sk)) -#define sk_PKCS7_RECIP_INFO_delete(sk, i) ((PKCS7_RECIP_INFO *)OPENSSL_sk_delete(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), (i))) -#define sk_PKCS7_RECIP_INFO_delete_ptr(sk, ptr) ((PKCS7_RECIP_INFO *)OPENSSL_sk_delete_ptr(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr))) -#define sk_PKCS7_RECIP_INFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr)) -#define sk_PKCS7_RECIP_INFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr)) -#define sk_PKCS7_RECIP_INFO_pop(sk) ((PKCS7_RECIP_INFO *)OPENSSL_sk_pop(ossl_check_PKCS7_RECIP_INFO_sk_type(sk))) -#define sk_PKCS7_RECIP_INFO_shift(sk) ((PKCS7_RECIP_INFO *)OPENSSL_sk_shift(ossl_check_PKCS7_RECIP_INFO_sk_type(sk))) -#define sk_PKCS7_RECIP_INFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_freefunc_type(freefunc)) -#define sk_PKCS7_RECIP_INFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr), (idx)) -#define sk_PKCS7_RECIP_INFO_set(sk, idx, ptr) ((PKCS7_RECIP_INFO *)OPENSSL_sk_set(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), (idx), ossl_check_PKCS7_RECIP_INFO_type(ptr))) -#define sk_PKCS7_RECIP_INFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr)) -#define sk_PKCS7_RECIP_INFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr)) -#define sk_PKCS7_RECIP_INFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr), pnum) -#define sk_PKCS7_RECIP_INFO_sort(sk) OPENSSL_sk_sort(ossl_check_PKCS7_RECIP_INFO_sk_type(sk)) -#define sk_PKCS7_RECIP_INFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_PKCS7_RECIP_INFO_sk_type(sk)) -#define sk_PKCS7_RECIP_INFO_dup(sk) ((STACK_OF(PKCS7_RECIP_INFO) *)OPENSSL_sk_dup(ossl_check_const_PKCS7_RECIP_INFO_sk_type(sk))) -#define sk_PKCS7_RECIP_INFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(PKCS7_RECIP_INFO) *)OPENSSL_sk_deep_copy(ossl_check_const_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_copyfunc_type(copyfunc), ossl_check_PKCS7_RECIP_INFO_freefunc_type(freefunc))) -#define sk_PKCS7_RECIP_INFO_set_cmp_func(sk, cmp) ((sk_PKCS7_RECIP_INFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_compfunc_type(cmp))) - - - -typedef struct pkcs7_signed_st { - ASN1_INTEGER *version; /* version 1 */ - STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ - STACK_OF(PKCS7_SIGNER_INFO) *signer_info; - struct pkcs7_st *contents; -} PKCS7_SIGNED; -/* - * The above structure is very very similar to PKCS7_SIGN_ENVELOPE. How about - * merging the two - */ - -typedef struct pkcs7_enc_content_st { - ASN1_OBJECT *content_type; - X509_ALGOR *algorithm; - ASN1_OCTET_STRING *enc_data; /* [ 0 ] */ - const EVP_CIPHER *cipher; - const PKCS7_CTX *ctx; -} PKCS7_ENC_CONTENT; - -typedef struct pkcs7_enveloped_st { - ASN1_INTEGER *version; /* version 0 */ - STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; - PKCS7_ENC_CONTENT *enc_data; -} PKCS7_ENVELOPE; - -typedef struct pkcs7_signedandenveloped_st { - ASN1_INTEGER *version; /* version 1 */ - STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ - STACK_OF(PKCS7_SIGNER_INFO) *signer_info; - PKCS7_ENC_CONTENT *enc_data; - STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; -} PKCS7_SIGN_ENVELOPE; - -typedef struct pkcs7_digest_st { - ASN1_INTEGER *version; /* version 0 */ - X509_ALGOR *md; /* md used */ - struct pkcs7_st *contents; - ASN1_OCTET_STRING *digest; -} PKCS7_DIGEST; - -typedef struct pkcs7_encrypted_st { - ASN1_INTEGER *version; /* version 0 */ - PKCS7_ENC_CONTENT *enc_data; -} PKCS7_ENCRYPT; - -typedef struct pkcs7_st { - /* - * The following is non NULL if it contains ASN1 encoding of this - * structure - */ - unsigned char *asn1; - long length; -# define PKCS7_S_HEADER 0 -# define PKCS7_S_BODY 1 -# define PKCS7_S_TAIL 2 - int state; /* used during processing */ - int detached; - ASN1_OBJECT *type; - /* content as defined by the type */ - /* - * all encryption/message digests are applied to the 'contents', leaving - * out the 'type' field. - */ - union { - char *ptr; - /* NID_pkcs7_data */ - ASN1_OCTET_STRING *data; - /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ - /* NID_pkcs7_enveloped */ - PKCS7_ENVELOPE *enveloped; - /* NID_pkcs7_signedAndEnveloped */ - PKCS7_SIGN_ENVELOPE *signed_and_enveloped; - /* NID_pkcs7_digest */ - PKCS7_DIGEST *digest; - /* NID_pkcs7_encrypted */ - PKCS7_ENCRYPT *encrypted; - /* Anything else */ - ASN1_TYPE *other; - } d; - PKCS7_CTX ctx; -} PKCS7; -SKM_DEFINE_STACK_OF_INTERNAL(PKCS7, PKCS7, PKCS7) -#define sk_PKCS7_num(sk) OPENSSL_sk_num(ossl_check_const_PKCS7_sk_type(sk)) -#define sk_PKCS7_value(sk, idx) ((PKCS7 *)OPENSSL_sk_value(ossl_check_const_PKCS7_sk_type(sk), (idx))) -#define sk_PKCS7_new(cmp) ((STACK_OF(PKCS7) *)OPENSSL_sk_new(ossl_check_PKCS7_compfunc_type(cmp))) -#define sk_PKCS7_new_null() ((STACK_OF(PKCS7) *)OPENSSL_sk_new_null()) -#define sk_PKCS7_new_reserve(cmp, n) ((STACK_OF(PKCS7) *)OPENSSL_sk_new_reserve(ossl_check_PKCS7_compfunc_type(cmp), (n))) -#define sk_PKCS7_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_PKCS7_sk_type(sk), (n)) -#define sk_PKCS7_free(sk) OPENSSL_sk_free(ossl_check_PKCS7_sk_type(sk)) -#define sk_PKCS7_zero(sk) OPENSSL_sk_zero(ossl_check_PKCS7_sk_type(sk)) -#define sk_PKCS7_delete(sk, i) ((PKCS7 *)OPENSSL_sk_delete(ossl_check_PKCS7_sk_type(sk), (i))) -#define sk_PKCS7_delete_ptr(sk, ptr) ((PKCS7 *)OPENSSL_sk_delete_ptr(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr))) -#define sk_PKCS7_push(sk, ptr) OPENSSL_sk_push(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr)) -#define sk_PKCS7_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr)) -#define sk_PKCS7_pop(sk) ((PKCS7 *)OPENSSL_sk_pop(ossl_check_PKCS7_sk_type(sk))) -#define sk_PKCS7_shift(sk) ((PKCS7 *)OPENSSL_sk_shift(ossl_check_PKCS7_sk_type(sk))) -#define sk_PKCS7_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_freefunc_type(freefunc)) -#define sk_PKCS7_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr), (idx)) -#define sk_PKCS7_set(sk, idx, ptr) ((PKCS7 *)OPENSSL_sk_set(ossl_check_PKCS7_sk_type(sk), (idx), ossl_check_PKCS7_type(ptr))) -#define sk_PKCS7_find(sk, ptr) OPENSSL_sk_find(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr)) -#define sk_PKCS7_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr)) -#define sk_PKCS7_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr), pnum) -#define sk_PKCS7_sort(sk) OPENSSL_sk_sort(ossl_check_PKCS7_sk_type(sk)) -#define sk_PKCS7_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_PKCS7_sk_type(sk)) -#define sk_PKCS7_dup(sk) ((STACK_OF(PKCS7) *)OPENSSL_sk_dup(ossl_check_const_PKCS7_sk_type(sk))) -#define sk_PKCS7_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(PKCS7) *)OPENSSL_sk_deep_copy(ossl_check_const_PKCS7_sk_type(sk), ossl_check_PKCS7_copyfunc_type(copyfunc), ossl_check_PKCS7_freefunc_type(freefunc))) -#define sk_PKCS7_set_cmp_func(sk, cmp) ((sk_PKCS7_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_compfunc_type(cmp))) - - - -# define PKCS7_OP_SET_DETACHED_SIGNATURE 1 -# define PKCS7_OP_GET_DETACHED_SIGNATURE 2 - -# define PKCS7_get_signed_attributes(si) ((si)->auth_attr) -# define PKCS7_get_attributes(si) ((si)->unauth_attr) - -# define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed) -# define PKCS7_type_is_encrypted(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted) -# define PKCS7_type_is_enveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_enveloped) -# define PKCS7_type_is_signedAndEnveloped(a) \ - (OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped) -# define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data) -# define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest) - -# define PKCS7_set_detached(p,v) \ - PKCS7_ctrl(p,PKCS7_OP_SET_DETACHED_SIGNATURE,v,NULL) -# define PKCS7_get_detached(p) \ - PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL) - -# define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7)) - -/* S/MIME related flags */ - -# define PKCS7_TEXT 0x1 -# define PKCS7_NOCERTS 0x2 -# define PKCS7_NOSIGS 0x4 -# define PKCS7_NOCHAIN 0x8 -# define PKCS7_NOINTERN 0x10 -# define PKCS7_NOVERIFY 0x20 -# define PKCS7_DETACHED 0x40 -# define PKCS7_BINARY 0x80 -# define PKCS7_NOATTR 0x100 -# define PKCS7_NOSMIMECAP 0x200 -# define PKCS7_NOOLDMIMETYPE 0x400 -# define PKCS7_CRLFEOL 0x800 -# define PKCS7_STREAM 0x1000 -# define PKCS7_NOCRL 0x2000 -# define PKCS7_PARTIAL 0x4000 -# define PKCS7_REUSE_DIGEST 0x8000 -# define PKCS7_NO_DUAL_CONTENT 0x10000 - -/* Flags: for compatibility with older code */ - -# define SMIME_TEXT PKCS7_TEXT -# define SMIME_NOCERTS PKCS7_NOCERTS -# define SMIME_NOSIGS PKCS7_NOSIGS -# define SMIME_NOCHAIN PKCS7_NOCHAIN -# define SMIME_NOINTERN PKCS7_NOINTERN -# define SMIME_NOVERIFY PKCS7_NOVERIFY -# define SMIME_DETACHED PKCS7_DETACHED -# define SMIME_BINARY PKCS7_BINARY -# define SMIME_NOATTR PKCS7_NOATTR - -/* CRLF ASCII canonicalisation */ -# define SMIME_ASCIICRLF 0x80000 - -DECLARE_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL) - -int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, - const EVP_MD *type, unsigned char *md, - unsigned int *len); -# ifndef OPENSSL_NO_STDIO -PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7); -int i2d_PKCS7_fp(FILE *fp, const PKCS7 *p7); -# endif -DECLARE_ASN1_DUP_FUNCTION(PKCS7) -PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7); -int i2d_PKCS7_bio(BIO *bp, const PKCS7 *p7); -int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); -int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); - -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO) -DECLARE_ASN1_FUNCTIONS(PKCS7_RECIP_INFO) -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNED) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENC_CONTENT) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENVELOPE) -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGN_ENVELOPE) -DECLARE_ASN1_FUNCTIONS(PKCS7_DIGEST) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENCRYPT) -DECLARE_ASN1_FUNCTIONS(PKCS7) -PKCS7 *PKCS7_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - -DECLARE_ASN1_ITEM(PKCS7_ATTR_SIGN) -DECLARE_ASN1_ITEM(PKCS7_ATTR_VERIFY) - -DECLARE_ASN1_NDEF_FUNCTION(PKCS7) -DECLARE_ASN1_PRINT_FUNCTION(PKCS7) - -long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); - -int PKCS7_type_is_other(PKCS7 *p7); -int PKCS7_set_type(PKCS7 *p7, int type); -int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other); -int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); -int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, - const EVP_MD *dgst); -int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); -int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); -int PKCS7_content_new(PKCS7 *p7, int nid); -int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, - BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); -int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *signer); - -BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); -int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); -BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); - -PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, - EVP_PKEY *pkey, const EVP_MD *dgst); -X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); -int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md); -STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7); - -PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); -void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, - X509_ALGOR **pdig, X509_ALGOR **psig); -void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc); -int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); -int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); -int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); -int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7); - -PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); -ASN1_OCTET_STRING *PKCS7_get_octet_string(PKCS7 *p7); -ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk); -int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int type, - void *data); -int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, - void *value); -ASN1_TYPE *PKCS7_get_attribute(const PKCS7_SIGNER_INFO *si, int nid); -ASN1_TYPE *PKCS7_get_signed_attribute(const PKCS7_SIGNER_INFO *si, int nid); -int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, - STACK_OF(X509_ATTRIBUTE) *sk); -int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si, - STACK_OF(X509_ATTRIBUTE) *sk); - -PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, - BIO *data, int flags); -PKCS7 *PKCS7_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, - BIO *data, int flags, OSSL_LIB_CTX *libctx, - const char *propq); - -PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, - X509 *signcert, EVP_PKEY *pkey, - const EVP_MD *md, int flags); - -int PKCS7_final(PKCS7 *p7, BIO *data, int flags); -int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, - BIO *indata, BIO *out, int flags); -STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, - int flags); -PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, - int flags); -PKCS7 *PKCS7_encrypt_ex(STACK_OF(X509) *certs, BIO *in, - const EVP_CIPHER *cipher, int flags, - OSSL_LIB_CTX *libctx, const char *propq); -int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, - int flags); - -int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, - STACK_OF(X509_ALGOR) *cap); -STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); -int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg); - -int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid); -int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t); -int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, - const unsigned char *md, int mdlen); - -int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); -PKCS7 *SMIME_read_PKCS7_ex(BIO *bio, BIO **bcont, PKCS7 **p7); -PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); - -BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/pkcs7err.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/pkcs7err.h deleted file mode 100644 index ceb1a50..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/pkcs7err.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PKCS7ERR_H -# define OPENSSL_PKCS7ERR_H -# pragma once - -# include -# include -# include - - - -/* - * PKCS7 reason codes. - */ -# define PKCS7_R_CERTIFICATE_VERIFY_ERROR 117 -# define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 144 -# define PKCS7_R_CIPHER_NOT_INITIALIZED 116 -# define PKCS7_R_CONTENT_AND_DATA_PRESENT 118 -# define PKCS7_R_CTRL_ERROR 152 -# define PKCS7_R_DECRYPT_ERROR 119 -# define PKCS7_R_DIGEST_FAILURE 101 -# define PKCS7_R_ENCRYPTION_CTRL_FAILURE 149 -# define PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 150 -# define PKCS7_R_ERROR_ADDING_RECIPIENT 120 -# define PKCS7_R_ERROR_SETTING_CIPHER 121 -# define PKCS7_R_INVALID_NULL_POINTER 143 -# define PKCS7_R_INVALID_SIGNED_DATA_TYPE 155 -# define PKCS7_R_NO_CONTENT 122 -# define PKCS7_R_NO_DEFAULT_DIGEST 151 -# define PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND 154 -# define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115 -# define PKCS7_R_NO_SIGNATURES_ON_DATA 123 -# define PKCS7_R_NO_SIGNERS 142 -# define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104 -# define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR 124 -# define PKCS7_R_PKCS7_ADD_SIGNER_ERROR 153 -# define PKCS7_R_PKCS7_DATASIGN 145 -# define PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 127 -# define PKCS7_R_SIGNATURE_FAILURE 105 -# define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND 128 -# define PKCS7_R_SIGNING_CTRL_FAILURE 147 -# define PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 148 -# define PKCS7_R_SMIME_TEXT_ERROR 129 -# define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106 -# define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 107 -# define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 108 -# define PKCS7_R_UNKNOWN_DIGEST_TYPE 109 -# define PKCS7_R_UNKNOWN_OPERATION 110 -# define PKCS7_R_UNSUPPORTED_CIPHER_TYPE 111 -# define PKCS7_R_UNSUPPORTED_CONTENT_TYPE 112 -# define PKCS7_R_WRONG_CONTENT_TYPE 113 -# define PKCS7_R_WRONG_PKCS7_TYPE 114 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/prov_ssl.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/prov_ssl.h deleted file mode 100644 index 76d01e1..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/prov_ssl.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2021-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PROV_SSL_H -# define OPENSSL_PROV_SSL_H -# pragma once - -# ifdef __cplusplus -extern "C" { -# endif - -/* SSL/TLS related defines useful to providers */ - -# define SSL_MAX_MASTER_KEY_LENGTH 48 - -/* SSL/TLS uses a 2 byte unsigned version number */ -# define SSL3_VERSION 0x0300 -# define TLS1_VERSION 0x0301 -# define TLS1_1_VERSION 0x0302 -# define TLS1_2_VERSION 0x0303 -# define TLS1_3_VERSION 0x0304 -# define DTLS1_VERSION 0xFEFF -# define DTLS1_2_VERSION 0xFEFD -# define DTLS1_BAD_VER 0x0100 - -/* QUIC uses a 4 byte unsigned version number */ -# define OSSL_QUIC1_VERSION 0x0000001 - -# ifdef __cplusplus -} -# endif -#endif /* OPENSSL_PROV_SSL_H */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/proverr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/proverr.h deleted file mode 100644 index 04134ae..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/proverr.h +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PROVERR_H -# define OPENSSL_PROVERR_H -# pragma once - -# include -# include -# include - - - -/* - * PROV reason codes. - */ -# define PROV_R_ADDITIONAL_INPUT_TOO_LONG 184 -# define PROV_R_ALGORITHM_MISMATCH 173 -# define PROV_R_ALREADY_INSTANTIATED 185 -# define PROV_R_BAD_DECRYPT 100 -# define PROV_R_BAD_ENCODING 141 -# define PROV_R_BAD_LENGTH 142 -# define PROV_R_BAD_TLS_CLIENT_VERSION 161 -# define PROV_R_BN_ERROR 160 -# define PROV_R_CIPHER_OPERATION_FAILED 102 -# define PROV_R_COFACTOR_REQUIRED 236 -# define PROV_R_DERIVATION_FUNCTION_INIT_FAILED 205 -# define PROV_R_DIGEST_NOT_ALLOWED 174 -# define PROV_R_EMS_NOT_ENABLED 233 -# define PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS 244 -# define PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK 186 -# define PROV_R_ERROR_INSTANTIATING_DRBG 188 -# define PROV_R_ERROR_RETRIEVING_ENTROPY 189 -# define PROV_R_ERROR_RETRIEVING_NONCE 190 -# define PROV_R_FAILED_DURING_DERIVATION 164 -# define PROV_R_FAILED_TO_CREATE_LOCK 180 -# define PROV_R_FAILED_TO_DECRYPT 162 -# define PROV_R_FAILED_TO_GENERATE_KEY 121 -# define PROV_R_FAILED_TO_GET_PARAMETER 103 -# define PROV_R_FAILED_TO_SET_PARAMETER 104 -# define PROV_R_FAILED_TO_SIGN 175 -# define PROV_R_FINAL_CALL_OUT_OF_ORDER 237 -# define PROV_R_FIPS_MODULE_CONDITIONAL_ERROR 227 -# define PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE 224 -# define PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR 253 -# define PROV_R_FIPS_MODULE_IN_ERROR_STATE 225 -# define PROV_R_GENERATE_ERROR 191 -# define PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 165 -# define PROV_R_INDICATOR_INTEGRITY_FAILURE 210 -# define PROV_R_INIT_CALL_OUT_OF_ORDER 238 -# define PROV_R_INSUFFICIENT_DRBG_STRENGTH 181 -# define PROV_R_INVALID_AAD 108 -# define PROV_R_INVALID_AEAD 231 -# define PROV_R_INVALID_CONFIG_DATA 211 -# define PROV_R_INVALID_CONSTANT_LENGTH 157 -# define PROV_R_INVALID_CURVE 176 -# define PROV_R_INVALID_CUSTOM_LENGTH 111 -# define PROV_R_INVALID_DATA 115 -# define PROV_R_INVALID_DIGEST 122 -# define PROV_R_INVALID_DIGEST_LENGTH 166 -# define PROV_R_INVALID_DIGEST_SIZE 218 -# define PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION 243 -# define PROV_R_INVALID_INPUT_LENGTH 230 -# define PROV_R_INVALID_ITERATION_COUNT 123 -# define PROV_R_INVALID_IV_LENGTH 109 -# define PROV_R_INVALID_KDF 232 -# define PROV_R_INVALID_KEY 158 -# define PROV_R_INVALID_KEY_LENGTH 105 -# define PROV_R_INVALID_MAC 151 -# define PROV_R_INVALID_MEMORY_SIZE 235 -# define PROV_R_INVALID_MGF1_MD 167 -# define PROV_R_INVALID_MODE 125 -# define PROV_R_INVALID_OUTPUT_LENGTH 217 -# define PROV_R_INVALID_PADDING_MODE 168 -# define PROV_R_INVALID_PREHASHED_DIGEST_LENGTH 241 -# define PROV_R_INVALID_PUBINFO 198 -# define PROV_R_INVALID_SALT_LENGTH 112 -# define PROV_R_INVALID_SEED_LENGTH 154 -# define PROV_R_INVALID_SIGNATURE_SIZE 179 -# define PROV_R_INVALID_STATE 212 -# define PROV_R_INVALID_TAG 110 -# define PROV_R_INVALID_TAG_LENGTH 118 -# define PROV_R_INVALID_THREAD_POOL_SIZE 234 -# define PROV_R_INVALID_UKM_LENGTH 200 -# define PROV_R_INVALID_X931_DIGEST 170 -# define PROV_R_IN_ERROR_STATE 192 -# define PROV_R_KEY_SETUP_FAILED 101 -# define PROV_R_KEY_SIZE_TOO_SMALL 171 -# define PROV_R_LENGTH_TOO_LARGE 202 -# define PROV_R_MISMATCHING_DOMAIN_PARAMETERS 203 -# define PROV_R_MISSING_CEK_ALG 144 -# define PROV_R_MISSING_CIPHER 155 -# define PROV_R_MISSING_CONFIG_DATA 213 -# define PROV_R_MISSING_CONSTANT 156 -# define PROV_R_MISSING_KEY 128 -# define PROV_R_MISSING_MAC 150 -# define PROV_R_MISSING_MESSAGE_DIGEST 129 -# define PROV_R_MISSING_OID 209 -# define PROV_R_MISSING_PASS 130 -# define PROV_R_MISSING_SALT 131 -# define PROV_R_MISSING_SECRET 132 -# define PROV_R_MISSING_SEED 140 -# define PROV_R_MISSING_SESSION_ID 133 -# define PROV_R_MISSING_TYPE 134 -# define PROV_R_MISSING_XCGHASH 135 -# define PROV_R_ML_DSA_NO_FORMAT 245 -# define PROV_R_ML_KEM_NO_FORMAT 246 -# define PROV_R_MODULE_INTEGRITY_FAILURE 214 -# define PROV_R_NOT_A_PRIVATE_KEY 221 -# define PROV_R_NOT_A_PUBLIC_KEY 220 -# define PROV_R_NOT_INSTANTIATED 193 -# define PROV_R_NOT_PARAMETERS 226 -# define PROV_R_NOT_SUPPORTED 136 -# define PROV_R_NOT_XOF_OR_INVALID_LENGTH 113 -# define PROV_R_NO_INSTANCE_ALLOWED 242 -# define PROV_R_NO_KEY_SET 114 -# define PROV_R_NO_PARAMETERS_SET 177 -# define PROV_R_NULL_LENGTH_POINTER 247 -# define PROV_R_NULL_OUTPUT_BUFFER 248 -# define PROV_R_ONESHOT_CALL_OUT_OF_ORDER 239 -# define PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 178 -# define PROV_R_OUTPUT_BUFFER_TOO_SMALL 106 -# define PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS 228 -# define PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED 187 -# define PROV_R_PARENT_LOCKING_NOT_ENABLED 182 -# define PROV_R_PARENT_STRENGTH_TOO_WEAK 194 -# define PROV_R_PATH_MUST_BE_ABSOLUTE 219 -# define PROV_R_PERSONALISATION_STRING_TOO_LONG 195 -# define PROV_R_PSS_SALTLEN_TOO_SMALL 172 -# define PROV_R_REPEATED_PARAMETER 252 -# define PROV_R_REQUEST_TOO_LARGE_FOR_DRBG 196 -# define PROV_R_REQUIRE_CTR_MODE_CIPHER 206 -# define PROV_R_RESEED_ERROR 197 -# define PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES 222 -# define PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT 229 -# define PROV_R_SELF_TEST_KAT_FAILURE 215 -# define PROV_R_SELF_TEST_POST_FAILURE 216 -# define PROV_R_TAG_NOT_NEEDED 120 -# define PROV_R_TAG_NOT_SET 119 -# define PROV_R_TOO_MANY_RECORDS 126 -# define PROV_R_UNABLE_TO_FIND_CIPHERS 207 -# define PROV_R_UNABLE_TO_GET_PARENT_STRENGTH 199 -# define PROV_R_UNABLE_TO_GET_PASSPHRASE 159 -# define PROV_R_UNABLE_TO_INITIALISE_CIPHERS 208 -# define PROV_R_UNABLE_TO_LOAD_SHA256 147 -# define PROV_R_UNABLE_TO_LOCK_PARENT 201 -# define PROV_R_UNABLE_TO_RESEED 204 -# define PROV_R_UNEXPECTED_KEY_PARAMETERS 249 -# define PROV_R_UNSUPPORTED_CEK_ALG 145 -# define PROV_R_UNSUPPORTED_KEY_SIZE 153 -# define PROV_R_UNSUPPORTED_MAC_TYPE 137 -# define PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS 152 -# define PROV_R_UNSUPPORTED_SELECTION 250 -# define PROV_R_UPDATE_CALL_OUT_OF_ORDER 240 -# define PROV_R_URI_AUTHORITY_UNSUPPORTED 223 -# define PROV_R_VALUE_ERROR 138 -# define PROV_R_WRONG_CIPHERTEXT_SIZE 251 -# define PROV_R_WRONG_FINAL_BLOCK_LENGTH 107 -# define PROV_R_WRONG_OUTPUT_BUFFER_SIZE 139 -# define PROV_R_XOF_DIGESTS_NOT_ALLOWED 183 -# define PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE 148 -# define PROV_R_XTS_DUPLICATED_KEYS 149 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/provider.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/provider.h deleted file mode 100644 index 5144357..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/provider.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_PROVIDER_H -# define OPENSSL_PROVIDER_H -# pragma once - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* Set and Get a library context search path */ -int OSSL_PROVIDER_set_default_search_path(OSSL_LIB_CTX *, const char *path); -const char *OSSL_PROVIDER_get0_default_search_path(OSSL_LIB_CTX *libctx); - -/* Load and unload a provider */ -OSSL_PROVIDER *OSSL_PROVIDER_load(OSSL_LIB_CTX *, const char *name); -OSSL_PROVIDER *OSSL_PROVIDER_load_ex(OSSL_LIB_CTX *, const char *name, - OSSL_PARAM *params); -OSSL_PROVIDER *OSSL_PROVIDER_try_load(OSSL_LIB_CTX *, const char *name, - int retain_fallbacks); -OSSL_PROVIDER *OSSL_PROVIDER_try_load_ex(OSSL_LIB_CTX *, const char *name, - OSSL_PARAM *params, - int retain_fallbacks); -int OSSL_PROVIDER_unload(OSSL_PROVIDER *prov); -int OSSL_PROVIDER_available(OSSL_LIB_CTX *, const char *name); -int OSSL_PROVIDER_do_all(OSSL_LIB_CTX *ctx, - int (*cb)(OSSL_PROVIDER *provider, void *cbdata), - void *cbdata); - -const OSSL_PARAM *OSSL_PROVIDER_gettable_params(const OSSL_PROVIDER *prov); -int OSSL_PROVIDER_get_params(const OSSL_PROVIDER *prov, OSSL_PARAM params[]); -int OSSL_PROVIDER_self_test(const OSSL_PROVIDER *prov); -int OSSL_PROVIDER_get_capabilities(const OSSL_PROVIDER *prov, - const char *capability, - OSSL_CALLBACK *cb, - void *arg); - -/*- - * Provider configuration parameters are normally set in the configuration file, - * but can also be set early in the main program before a provider is in use by - * multiple threads. - * - * Only UTF8-string values are supported. - */ -int OSSL_PROVIDER_add_conf_parameter(OSSL_PROVIDER *prov, const char *name, - const char *value); -/* - * Retrieves any of the requested configuration parameters for the given - * provider that were set in the configuration file or via the above - * OSSL_PROVIDER_add_parameter() function. - * - * The |params| array elements MUST have type OSSL_PARAM_UTF8_PTR, values are - * returned by reference, not as copies. - */ -int OSSL_PROVIDER_get_conf_parameters(const OSSL_PROVIDER *prov, - OSSL_PARAM params[]); -/* - * Parse a provider configuration parameter as a boolean value, - * or return a default value if unable to retrieve the parameter. - * Values like "1", "yes", "true", ... are true (nonzero). - * Values like "0", "no", "false", ... are false (zero). - */ -int OSSL_PROVIDER_conf_get_bool(const OSSL_PROVIDER *prov, - const char *name, int defval); - -const OSSL_ALGORITHM *OSSL_PROVIDER_query_operation(const OSSL_PROVIDER *prov, - int operation_id, - int *no_cache); -void OSSL_PROVIDER_unquery_operation(const OSSL_PROVIDER *prov, - int operation_id, const OSSL_ALGORITHM *algs); -void *OSSL_PROVIDER_get0_provider_ctx(const OSSL_PROVIDER *prov); -const OSSL_DISPATCH *OSSL_PROVIDER_get0_dispatch(const OSSL_PROVIDER *prov); - -/* Add a built in providers */ -int OSSL_PROVIDER_add_builtin(OSSL_LIB_CTX *, const char *name, - OSSL_provider_init_fn *init_fn); - -/* Information */ -const char *OSSL_PROVIDER_get0_name(const OSSL_PROVIDER *prov); - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/quic.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/quic.h deleted file mode 100644 index 8eacc63..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/quic.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2022-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_QUIC_H -# define OPENSSL_QUIC_H -# pragma once - -# include -# include - -# ifndef OPENSSL_NO_QUIC - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * Method used for non-thread-assisted QUIC client operation. - */ -__owur const SSL_METHOD *OSSL_QUIC_client_method(void); - -/* - * Method used for thread-assisted QUIC client operation. - */ -__owur const SSL_METHOD *OSSL_QUIC_client_thread_method(void); - -/* - * QUIC transport error codes (RFC 9000 s. 20.1) - */ -# define OSSL_QUIC_ERR_NO_ERROR 0x00 -# define OSSL_QUIC_ERR_INTERNAL_ERROR 0x01 -# define OSSL_QUIC_ERR_CONNECTION_REFUSED 0x02 -# define OSSL_QUIC_ERR_FLOW_CONTROL_ERROR 0x03 -# define OSSL_QUIC_ERR_STREAM_LIMIT_ERROR 0x04 -# define OSSL_QUIC_ERR_STREAM_STATE_ERROR 0x05 -# define OSSL_QUIC_ERR_FINAL_SIZE_ERROR 0x06 -# define OSSL_QUIC_ERR_FRAME_ENCODING_ERROR 0x07 -# define OSSL_QUIC_ERR_TRANSPORT_PARAMETER_ERROR 0x08 -# define OSSL_QUIC_ERR_CONNECTION_ID_LIMIT_ERROR 0x09 -# define OSSL_QUIC_ERR_PROTOCOL_VIOLATION 0x0A -# define OSSL_QUIC_ERR_INVALID_TOKEN 0x0B -# define OSSL_QUIC_ERR_APPLICATION_ERROR 0x0C -# define OSSL_QUIC_ERR_CRYPTO_BUFFER_EXCEEDED 0x0D -# define OSSL_QUIC_ERR_KEY_UPDATE_ERROR 0x0E -# define OSSL_QUIC_ERR_AEAD_LIMIT_REACHED 0x0F -# define OSSL_QUIC_ERR_NO_VIABLE_PATH 0x10 - -/* Inclusive range for handshake-specific errors. */ -# define OSSL_QUIC_ERR_CRYPTO_ERR_BEGIN 0x0100 -# define OSSL_QUIC_ERR_CRYPTO_ERR_END 0x01FF - -# define OSSL_QUIC_ERR_CRYPTO_ERR(X) \ - (OSSL_QUIC_ERR_CRYPTO_ERR_BEGIN + (X)) - -/* Local errors. */ -# define OSSL_QUIC_LOCAL_ERR_IDLE_TIMEOUT \ - ((uint64_t)0xFFFFFFFFFFFFFFFFULL) - -/* - * Method used for QUIC server operation. - */ -__owur const SSL_METHOD *OSSL_QUIC_server_method(void); - -# ifdef __cplusplus -} -# endif - -# endif /* OPENSSL_NO_QUIC */ -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/rand.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/rand.h deleted file mode 100644 index 4e59e50..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/rand.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_RAND_H -# define OPENSSL_RAND_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_RAND_H -# endif - -# include -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * Default security strength (in the sense of [NIST SP 800-90Ar1]) - * - * NIST SP 800-90Ar1 supports the strength of the DRBG being smaller than that - * of the cipher by collecting less entropy. The current DRBG implementation - * does not take RAND_DRBG_STRENGTH into account and sets the strength of the - * DRBG to that of the cipher. - */ -# define RAND_DRBG_STRENGTH 256 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -struct rand_meth_st { - int (*seed) (const void *buf, int num); - int (*bytes) (unsigned char *buf, int num); - void (*cleanup) (void); - int (*add) (const void *buf, int num, double randomness); - int (*pseudorand) (unsigned char *buf, int num); - int (*status) (void); -}; - -OSSL_DEPRECATEDIN_3_0 int RAND_set_rand_method(const RAND_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 const RAND_METHOD *RAND_get_rand_method(void); -# ifndef OPENSSL_NO_ENGINE -OSSL_DEPRECATEDIN_3_0 int RAND_set_rand_engine(ENGINE *engine); -# endif - -OSSL_DEPRECATEDIN_3_0 RAND_METHOD *RAND_OpenSSL(void); -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define RAND_cleanup() while(0) continue -# endif -int RAND_bytes(unsigned char *buf, int num); -int RAND_priv_bytes(unsigned char *buf, int num); - -/* - * Equivalent of RAND_priv_bytes() but additionally taking an OSSL_LIB_CTX and - * a strength. - */ -int RAND_priv_bytes_ex(OSSL_LIB_CTX *ctx, unsigned char *buf, size_t num, - unsigned int strength); - -/* - * Equivalent of RAND_bytes() but additionally taking an OSSL_LIB_CTX and - * a strength. - */ -int RAND_bytes_ex(OSSL_LIB_CTX *ctx, unsigned char *buf, size_t num, - unsigned int strength); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 int RAND_pseudo_bytes(unsigned char *buf, int num); -# endif - -EVP_RAND_CTX *RAND_get0_primary(OSSL_LIB_CTX *ctx); -EVP_RAND_CTX *RAND_get0_public(OSSL_LIB_CTX *ctx); -EVP_RAND_CTX *RAND_get0_private(OSSL_LIB_CTX *ctx); -int RAND_set0_public(OSSL_LIB_CTX *ctx, EVP_RAND_CTX *rand); -int RAND_set0_private(OSSL_LIB_CTX *ctx, EVP_RAND_CTX *rand); - -int RAND_set_DRBG_type(OSSL_LIB_CTX *ctx, const char *drbg, const char *propq, - const char *cipher, const char *digest); -int RAND_set_seed_source_type(OSSL_LIB_CTX *ctx, const char *seed, - const char *propq); - -void RAND_seed(const void *buf, int num); -void RAND_keep_random_devices_open(int keep); - -# if defined(__ANDROID__) && defined(__NDK_FPABI__) -__NDK_FPABI__ /* __attribute__((pcs("aapcs"))) on ARM */ -# endif -void RAND_add(const void *buf, int num, double randomness); -int RAND_load_file(const char *file, long max_bytes); -int RAND_write_file(const char *file); -const char *RAND_file_name(char *file, size_t num); -int RAND_status(void); - -# ifndef OPENSSL_NO_EGD -int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes); -int RAND_egd(const char *path); -int RAND_egd_bytes(const char *path, int bytes); -# endif - -int RAND_poll(void); - -# if defined(_WIN32) && (defined(BASETYPES) || defined(_WINDEF_H)) -/* application has to include in order to use these */ -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 void RAND_screen(void); -OSSL_DEPRECATEDIN_1_1_0 int RAND_event(UINT, WPARAM, LPARAM); -# endif -# endif - -int RAND_set1_random_provider(OSSL_LIB_CTX *ctx, OSSL_PROVIDER *p); - -/* Which parameter to provider_random call */ -# define OSSL_PROV_RANDOM_PUBLIC 0 -# define OSSL_PROV_RANDOM_PRIVATE 1 - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/randerr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/randerr.h deleted file mode 100644 index 5e1e6d7..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/randerr.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_RANDERR_H -# define OPENSSL_RANDERR_H -# pragma once - -# include -# include -# include - - - -/* - * RAND reason codes. - */ -# define RAND_R_ADDITIONAL_INPUT_TOO_LONG 102 -# define RAND_R_ALREADY_INSTANTIATED 103 -# define RAND_R_ARGUMENT_OUT_OF_RANGE 105 -# define RAND_R_CANNOT_OPEN_FILE 121 -# define RAND_R_DRBG_ALREADY_INITIALIZED 129 -# define RAND_R_DRBG_NOT_INITIALISED 104 -# define RAND_R_ENTROPY_INPUT_TOO_LONG 106 -# define RAND_R_ENTROPY_OUT_OF_RANGE 124 -# define RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED 127 -# define RAND_R_ERROR_INITIALISING_DRBG 107 -# define RAND_R_ERROR_INSTANTIATING_DRBG 108 -# define RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT 109 -# define RAND_R_ERROR_RETRIEVING_ENTROPY 110 -# define RAND_R_ERROR_RETRIEVING_NONCE 111 -# define RAND_R_FAILED_TO_CREATE_LOCK 126 -# define RAND_R_FUNC_NOT_IMPLEMENTED 101 -# define RAND_R_FWRITE_ERROR 123 -# define RAND_R_GENERATE_ERROR 112 -# define RAND_R_INSUFFICIENT_DRBG_STRENGTH 139 -# define RAND_R_INTERNAL_ERROR 113 -# define RAND_R_INVALID_PROPERTY_QUERY 137 -# define RAND_R_IN_ERROR_STATE 114 -# define RAND_R_NOT_A_REGULAR_FILE 122 -# define RAND_R_NOT_INSTANTIATED 115 -# define RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED 128 -# define RAND_R_PARENT_LOCKING_NOT_ENABLED 130 -# define RAND_R_PARENT_STRENGTH_TOO_WEAK 131 -# define RAND_R_PERSONALISATION_STRING_TOO_LONG 116 -# define RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED 133 -# define RAND_R_PRNG_NOT_SEEDED 100 -# define RAND_R_RANDOM_POOL_IS_EMPTY 142 -# define RAND_R_RANDOM_POOL_OVERFLOW 125 -# define RAND_R_RANDOM_POOL_UNDERFLOW 134 -# define RAND_R_REQUEST_TOO_LARGE_FOR_DRBG 117 -# define RAND_R_RESEED_ERROR 118 -# define RAND_R_SELFTEST_FAILURE 119 -# define RAND_R_TOO_LITTLE_NONCE_REQUESTED 135 -# define RAND_R_TOO_MUCH_NONCE_REQUESTED 136 -# define RAND_R_UNABLE_TO_CREATE_DRBG 143 -# define RAND_R_UNABLE_TO_FETCH_DRBG 144 -# define RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER 141 -# define RAND_R_UNABLE_TO_GET_PARENT_STRENGTH 138 -# define RAND_R_UNABLE_TO_LOCK_PARENT 140 -# define RAND_R_UNSUPPORTED_DRBG_FLAGS 132 -# define RAND_R_UNSUPPORTED_DRBG_TYPE 120 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/rc2.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/rc2.h deleted file mode 100644 index ff633fd..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/rc2.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_RC2_H -# define OPENSSL_RC2_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_RC2_H -# endif - -# include - -# ifndef OPENSSL_NO_RC2 -# ifdef __cplusplus -extern "C" { -# endif - -# define RC2_BLOCK 8 -# define RC2_KEY_LENGTH 16 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -typedef unsigned int RC2_INT; - -# define RC2_ENCRYPT 1 -# define RC2_DECRYPT 0 - -typedef struct rc2_key_st { - RC2_INT data[64]; -} RC2_KEY; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 void RC2_set_key(RC2_KEY *key, int len, - const unsigned char *data, int bits); -OSSL_DEPRECATEDIN_3_0 void RC2_ecb_encrypt(const unsigned char *in, - unsigned char *out, RC2_KEY *key, - int enc); -OSSL_DEPRECATEDIN_3_0 void RC2_encrypt(unsigned long *data, RC2_KEY *key); -OSSL_DEPRECATEDIN_3_0 void RC2_decrypt(unsigned long *data, RC2_KEY *key); -OSSL_DEPRECATEDIN_3_0 void RC2_cbc_encrypt(const unsigned char *in, - unsigned char *out, long length, - RC2_KEY *ks, unsigned char *iv, - int enc); -OSSL_DEPRECATEDIN_3_0 void RC2_cfb64_encrypt(const unsigned char *in, - unsigned char *out, long length, - RC2_KEY *schedule, - unsigned char *ivec, - int *num, int enc); -OSSL_DEPRECATEDIN_3_0 void RC2_ofb64_encrypt(const unsigned char *in, - unsigned char *out, long length, - RC2_KEY *schedule, - unsigned char *ivec, - int *num); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/rc4.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/rc4.h deleted file mode 100644 index 600b288..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/rc4.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_RC4_H -# define OPENSSL_RC4_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_RC4_H -# endif - -# include - -# ifndef OPENSSL_NO_RC4 -# include -# ifdef __cplusplus -extern "C" { -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -typedef struct rc4_key_st { - RC4_INT x, y; - RC4_INT data[256]; -} RC4_KEY; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 const char *RC4_options(void); -OSSL_DEPRECATEDIN_3_0 void RC4_set_key(RC4_KEY *key, int len, - const unsigned char *data); -OSSL_DEPRECATEDIN_3_0 void RC4(RC4_KEY *key, size_t len, - const unsigned char *indata, - unsigned char *outdata); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/rc5.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/rc5.h deleted file mode 100644 index de83352..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/rc5.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_RC5_H -# define OPENSSL_RC5_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_RC5_H -# endif - -# include - -# ifndef OPENSSL_NO_RC5 -# ifdef __cplusplus -extern "C" { -# endif - -# define RC5_32_BLOCK 8 -# define RC5_32_KEY_LENGTH 16/* This is a default, max is 255 */ - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define RC5_ENCRYPT 1 -# define RC5_DECRYPT 0 - -# define RC5_32_INT unsigned int - -/* - * This are the only values supported. Tweak the code if you want more The - * most supported modes will be RC5-32/12/16 RC5-32/16/8 - */ -# define RC5_8_ROUNDS 8 -# define RC5_12_ROUNDS 12 -# define RC5_16_ROUNDS 16 - -typedef struct rc5_key_st { - /* Number of rounds */ - int rounds; - RC5_32_INT data[2 * (RC5_16_ROUNDS + 1)]; -} RC5_32_KEY; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int RC5_32_set_key(RC5_32_KEY *key, int len, - const unsigned char *data, - int rounds); -OSSL_DEPRECATEDIN_3_0 void RC5_32_ecb_encrypt(const unsigned char *in, - unsigned char *out, - RC5_32_KEY *key, - int enc); -OSSL_DEPRECATEDIN_3_0 void RC5_32_encrypt(unsigned long *data, RC5_32_KEY *key); -OSSL_DEPRECATEDIN_3_0 void RC5_32_decrypt(unsigned long *data, RC5_32_KEY *key); -OSSL_DEPRECATEDIN_3_0 void RC5_32_cbc_encrypt(const unsigned char *in, - unsigned char *out, long length, - RC5_32_KEY *ks, unsigned char *iv, - int enc); -OSSL_DEPRECATEDIN_3_0 void RC5_32_cfb64_encrypt(const unsigned char *in, - unsigned char *out, long length, - RC5_32_KEY *schedule, - unsigned char *ivec, int *num, - int enc); -OSSL_DEPRECATEDIN_3_0 void RC5_32_ofb64_encrypt(const unsigned char *in, - unsigned char *out, long length, - RC5_32_KEY *schedule, - unsigned char *ivec, int *num); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/ripemd.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/ripemd.h deleted file mode 100644 index 900ee31..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/ripemd.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_RIPEMD_H -# define OPENSSL_RIPEMD_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_RIPEMD_H -# endif - -# include - -# ifndef OPENSSL_NO_RMD160 -# include -# include - -# define RIPEMD160_DIGEST_LENGTH 20 - -# ifdef __cplusplus -extern "C" { -# endif -# if !defined(OPENSSL_NO_DEPRECATED_3_0) - -# define RIPEMD160_LONG unsigned int - -# define RIPEMD160_CBLOCK 64 -# define RIPEMD160_LBLOCK (RIPEMD160_CBLOCK/4) - -typedef struct RIPEMD160state_st { - RIPEMD160_LONG A, B, C, D, E; - RIPEMD160_LONG Nl, Nh; - RIPEMD160_LONG data[RIPEMD160_LBLOCK]; - unsigned int num; -} RIPEMD160_CTX; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int RIPEMD160_Init(RIPEMD160_CTX *c); -OSSL_DEPRECATEDIN_3_0 int RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, - size_t len); -OSSL_DEPRECATEDIN_3_0 int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c); -OSSL_DEPRECATEDIN_3_0 unsigned char *RIPEMD160(const unsigned char *d, size_t n, - unsigned char *md); -OSSL_DEPRECATEDIN_3_0 void RIPEMD160_Transform(RIPEMD160_CTX *c, - const unsigned char *b); -# endif - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/rsa.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/rsa.h deleted file mode 100644 index 167427d..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/rsa.h +++ /dev/null @@ -1,615 +0,0 @@ -/* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_RSA_H -# define OPENSSL_RSA_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_RSA_H -# endif - -# include - -# include -# include -# include -# include -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# include -# endif -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif - -# ifdef __cplusplus -extern "C" { -# endif - -# ifndef OPENSSL_RSA_MAX_MODULUS_BITS -# define OPENSSL_RSA_MAX_MODULUS_BITS 16384 -# endif - -# define RSA_3 0x3L -# define RSA_F4 0x10001L - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* The types RSA and RSA_METHOD are defined in ossl_typ.h */ - -# define OPENSSL_RSA_FIPS_MIN_MODULUS_BITS 2048 - -# ifndef OPENSSL_RSA_SMALL_MODULUS_BITS -# define OPENSSL_RSA_SMALL_MODULUS_BITS 3072 -# endif - -/* exponent limit enforced for "large" modulus only */ -# ifndef OPENSSL_RSA_MAX_PUBEXP_BITS -# define OPENSSL_RSA_MAX_PUBEXP_BITS 64 -# endif -/* based on RFC 8017 appendix A.1.2 */ -# define RSA_ASN1_VERSION_DEFAULT 0 -# define RSA_ASN1_VERSION_MULTI 1 - -# define RSA_DEFAULT_PRIME_NUM 2 - -# define RSA_METHOD_FLAG_NO_CHECK 0x0001 -# define RSA_FLAG_CACHE_PUBLIC 0x0002 -# define RSA_FLAG_CACHE_PRIVATE 0x0004 -# define RSA_FLAG_BLINDING 0x0008 -# define RSA_FLAG_THREAD_SAFE 0x0010 -/* - * This flag means the private key operations will be handled by rsa_mod_exp - * and that they do not depend on the private key components being present: - * for example a key stored in external hardware. Without this flag - * bn_mod_exp gets called when private key components are absent. - */ -# define RSA_FLAG_EXT_PKEY 0x0020 - -/* - * new with 0.9.6j and 0.9.7b; the built-in - * RSA implementation now uses blinding by - * default (ignoring RSA_FLAG_BLINDING), - * but other engines might not need it - */ -# define RSA_FLAG_NO_BLINDING 0x0080 -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ -/* - * Does nothing. Previously this switched off constant time behaviour. - */ -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define RSA_FLAG_NO_CONSTTIME 0x0000 -# endif -/* deprecated name for the flag*/ -/* - * new with 0.9.7h; the built-in RSA - * implementation now uses constant time - * modular exponentiation for secret exponents - * by default. This flag causes the - * faster variable sliding window method to - * be used for all exponents. - */ -# ifndef OPENSSL_NO_DEPRECATED_0_9_8 -# define RSA_FLAG_NO_EXP_CONSTTIME RSA_FLAG_NO_CONSTTIME -# endif - -/*- - * New with 3.0: use part of the flags to denote exact type of RSA key, - * some of which are limited to specific signature and encryption schemes. - * These different types share the same RSA structure, but indicate the - * use of certain fields in that structure. - * Currently known are: - * RSA - this is the "normal" unlimited RSA structure (typenum 0) - * RSASSA-PSS - indicates that the PSS parameters are used. - * RSAES-OAEP - no specific field used for the moment, but OAEP padding - * is expected. (currently unused) - * - * 4 bits allow for 16 types - */ -# define RSA_FLAG_TYPE_MASK 0xF000 -# define RSA_FLAG_TYPE_RSA 0x0000 -# define RSA_FLAG_TYPE_RSASSAPSS 0x1000 -# define RSA_FLAG_TYPE_RSAESOAEP 0x2000 - -int EVP_PKEY_CTX_set_rsa_padding(EVP_PKEY_CTX *ctx, int pad_mode); -int EVP_PKEY_CTX_get_rsa_padding(EVP_PKEY_CTX *ctx, int *pad_mode); - -int EVP_PKEY_CTX_set_rsa_pss_saltlen(EVP_PKEY_CTX *ctx, int saltlen); -int EVP_PKEY_CTX_get_rsa_pss_saltlen(EVP_PKEY_CTX *ctx, int *saltlen); - -int EVP_PKEY_CTX_set_rsa_keygen_bits(EVP_PKEY_CTX *ctx, int bits); -int EVP_PKEY_CTX_set1_rsa_keygen_pubexp(EVP_PKEY_CTX *ctx, BIGNUM *pubexp); -int EVP_PKEY_CTX_set_rsa_keygen_primes(EVP_PKEY_CTX *ctx, int primes); -int EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(EVP_PKEY_CTX *ctx, int saltlen); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int EVP_PKEY_CTX_set_rsa_keygen_pubexp(EVP_PKEY_CTX *ctx, BIGNUM *pubexp); -# endif - -/* Salt length matches digest */ -# define RSA_PSS_SALTLEN_DIGEST -1 -/* Verify only: auto detect salt length */ -# define RSA_PSS_SALTLEN_AUTO -2 -/* Set salt length to maximum possible */ -# define RSA_PSS_SALTLEN_MAX -3 -/* Auto-detect on verify, set salt length to min(maximum possible, digest - * length) on sign */ -# define RSA_PSS_SALTLEN_AUTO_DIGEST_MAX -4 -/* Old compatible max salt length for sign only */ -# define RSA_PSS_SALTLEN_MAX_SIGN -2 - -int EVP_PKEY_CTX_set_rsa_mgf1_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); -int EVP_PKEY_CTX_set_rsa_mgf1_md_name(EVP_PKEY_CTX *ctx, const char *mdname, - const char *mdprops); -int EVP_PKEY_CTX_get_rsa_mgf1_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); -int EVP_PKEY_CTX_get_rsa_mgf1_md_name(EVP_PKEY_CTX *ctx, char *name, - size_t namelen); -int EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); -int EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md_name(EVP_PKEY_CTX *ctx, - const char *mdname); - -int EVP_PKEY_CTX_set_rsa_pss_keygen_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); -int EVP_PKEY_CTX_set_rsa_pss_keygen_md_name(EVP_PKEY_CTX *ctx, - const char *mdname, - const char *mdprops); - -int EVP_PKEY_CTX_set_rsa_oaep_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); -int EVP_PKEY_CTX_set_rsa_oaep_md_name(EVP_PKEY_CTX *ctx, const char *mdname, - const char *mdprops); -int EVP_PKEY_CTX_get_rsa_oaep_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); -int EVP_PKEY_CTX_get_rsa_oaep_md_name(EVP_PKEY_CTX *ctx, char *name, - size_t namelen); -int EVP_PKEY_CTX_set0_rsa_oaep_label(EVP_PKEY_CTX *ctx, void *label, int llen); -int EVP_PKEY_CTX_get0_rsa_oaep_label(EVP_PKEY_CTX *ctx, unsigned char **label); - -# define EVP_PKEY_CTRL_RSA_PADDING (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 2) - -# define EVP_PKEY_CTRL_RSA_KEYGEN_BITS (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 5) - -# define EVP_PKEY_CTRL_GET_RSA_PADDING (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_GET_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 8) - -# define EVP_PKEY_CTRL_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 10) - -# define EVP_PKEY_CTRL_GET_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 11) -# define EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 12) - -# define EVP_PKEY_CTRL_RSA_KEYGEN_PRIMES (EVP_PKEY_ALG_CTRL + 13) - -# define EVP_PKEY_CTRL_RSA_IMPLICIT_REJECTION (EVP_PKEY_ALG_CTRL + 14) - -# define RSA_PKCS1_PADDING 1 -# define RSA_NO_PADDING 3 -# define RSA_PKCS1_OAEP_PADDING 4 -# define RSA_X931_PADDING 5 - -/* EVP_PKEY_ only */ -# define RSA_PKCS1_PSS_PADDING 6 -# define RSA_PKCS1_WITH_TLS_PADDING 7 - -/* internal RSA_ only */ -# define RSA_PKCS1_NO_IMPLICIT_REJECT_PADDING 8 - -# define RSA_PKCS1_PADDING_SIZE 11 - -# define RSA_set_app_data(s,arg) RSA_set_ex_data(s,0,arg) -# define RSA_get_app_data(s) RSA_get_ex_data(s,0) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 RSA *RSA_new(void); -OSSL_DEPRECATEDIN_3_0 RSA *RSA_new_method(ENGINE *engine); -OSSL_DEPRECATEDIN_3_0 int RSA_bits(const RSA *rsa); -OSSL_DEPRECATEDIN_3_0 int RSA_size(const RSA *rsa); -OSSL_DEPRECATEDIN_3_0 int RSA_security_bits(const RSA *rsa); - -OSSL_DEPRECATEDIN_3_0 int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d); -OSSL_DEPRECATEDIN_3_0 int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q); -OSSL_DEPRECATEDIN_3_0 int RSA_set0_crt_params(RSA *r, - BIGNUM *dmp1, BIGNUM *dmq1, - BIGNUM *iqmp); -OSSL_DEPRECATEDIN_3_0 int RSA_set0_multi_prime_params(RSA *r, - BIGNUM *primes[], - BIGNUM *exps[], - BIGNUM *coeffs[], - int pnum); -OSSL_DEPRECATEDIN_3_0 void RSA_get0_key(const RSA *r, - const BIGNUM **n, const BIGNUM **e, - const BIGNUM **d); -OSSL_DEPRECATEDIN_3_0 void RSA_get0_factors(const RSA *r, - const BIGNUM **p, const BIGNUM **q); -OSSL_DEPRECATEDIN_3_0 int RSA_get_multi_prime_extra_count(const RSA *r); -OSSL_DEPRECATEDIN_3_0 int RSA_get0_multi_prime_factors(const RSA *r, - const BIGNUM *primes[]); -OSSL_DEPRECATEDIN_3_0 void RSA_get0_crt_params(const RSA *r, - const BIGNUM **dmp1, - const BIGNUM **dmq1, - const BIGNUM **iqmp); -OSSL_DEPRECATEDIN_3_0 -int RSA_get0_multi_prime_crt_params(const RSA *r, const BIGNUM *exps[], - const BIGNUM *coeffs[]); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *RSA_get0_n(const RSA *d); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *RSA_get0_e(const RSA *d); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *RSA_get0_d(const RSA *d); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *RSA_get0_p(const RSA *d); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *RSA_get0_q(const RSA *d); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *RSA_get0_dmp1(const RSA *r); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *RSA_get0_dmq1(const RSA *r); -OSSL_DEPRECATEDIN_3_0 const BIGNUM *RSA_get0_iqmp(const RSA *r); -OSSL_DEPRECATEDIN_3_0 const RSA_PSS_PARAMS *RSA_get0_pss_params(const RSA *r); -OSSL_DEPRECATEDIN_3_0 void RSA_clear_flags(RSA *r, int flags); -OSSL_DEPRECATEDIN_3_0 int RSA_test_flags(const RSA *r, int flags); -OSSL_DEPRECATEDIN_3_0 void RSA_set_flags(RSA *r, int flags); -OSSL_DEPRECATEDIN_3_0 int RSA_get_version(RSA *r); -OSSL_DEPRECATEDIN_3_0 ENGINE *RSA_get0_engine(const RSA *r); -# endif /* !OPENSSL_NO_DEPRECATED_3_0 */ - -# define EVP_RSA_gen(bits) \ - EVP_PKEY_Q_keygen(NULL, NULL, "RSA", (size_t)(0 + (bits))) - -/* Deprecated version */ -# ifndef OPENSSL_NO_DEPRECATED_0_9_8 -OSSL_DEPRECATEDIN_0_9_8 RSA *RSA_generate_key(int bits, unsigned long e, void - (*callback) (int, int, void *), - void *cb_arg); -# endif - -/* New version */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, - BN_GENCB *cb); -/* Multi-prime version */ -OSSL_DEPRECATEDIN_3_0 int RSA_generate_multi_prime_key(RSA *rsa, int bits, - int primes, BIGNUM *e, - BN_GENCB *cb); - -OSSL_DEPRECATEDIN_3_0 -int RSA_X931_derive_ex(RSA *rsa, BIGNUM *p1, BIGNUM *p2, - BIGNUM *q1, BIGNUM *q2, - const BIGNUM *Xp1, const BIGNUM *Xp2, - const BIGNUM *Xp, const BIGNUM *Xq1, - const BIGNUM *Xq2, const BIGNUM *Xq, - const BIGNUM *e, BN_GENCB *cb); -OSSL_DEPRECATEDIN_3_0 int RSA_X931_generate_key_ex(RSA *rsa, int bits, - const BIGNUM *e, - BN_GENCB *cb); - -OSSL_DEPRECATEDIN_3_0 int RSA_check_key(const RSA *); -OSSL_DEPRECATEDIN_3_0 int RSA_check_key_ex(const RSA *, BN_GENCB *cb); - /* next 4 return -1 on error */ -OSSL_DEPRECATEDIN_3_0 -int RSA_public_encrypt(int flen, const unsigned char *from, unsigned char *to, - RSA *rsa, int padding); -OSSL_DEPRECATEDIN_3_0 -int RSA_private_encrypt(int flen, const unsigned char *from, unsigned char *to, - RSA *rsa, int padding); -OSSL_DEPRECATEDIN_3_0 -int RSA_public_decrypt(int flen, const unsigned char *from, unsigned char *to, - RSA *rsa, int padding); -OSSL_DEPRECATEDIN_3_0 -int RSA_private_decrypt(int flen, const unsigned char *from, unsigned char *to, - RSA *rsa, int padding); -OSSL_DEPRECATEDIN_3_0 void RSA_free(RSA *r); -/* "up" the RSA object's reference count */ -OSSL_DEPRECATEDIN_3_0 int RSA_up_ref(RSA *r); -OSSL_DEPRECATEDIN_3_0 int RSA_flags(const RSA *r); - -OSSL_DEPRECATEDIN_3_0 void RSA_set_default_method(const RSA_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 const RSA_METHOD *RSA_get_default_method(void); -OSSL_DEPRECATEDIN_3_0 const RSA_METHOD *RSA_null_method(void); -OSSL_DEPRECATEDIN_3_0 const RSA_METHOD *RSA_get_method(const RSA *rsa); -OSSL_DEPRECATEDIN_3_0 int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); - -/* these are the actual RSA functions */ -OSSL_DEPRECATEDIN_3_0 const RSA_METHOD *RSA_PKCS1_OpenSSL(void); - -DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr(OSSL_DEPRECATEDIN_3_0, - RSA, RSAPublicKey) -DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr(OSSL_DEPRECATEDIN_3_0, - RSA, RSAPrivateKey) -# endif /* !OPENSSL_NO_DEPRECATED_3_0 */ - -int RSA_pkey_ctx_ctrl(EVP_PKEY_CTX *ctx, int optype, int cmd, int p1, void *p2); - -struct rsa_pss_params_st { - X509_ALGOR *hashAlgorithm; - X509_ALGOR *maskGenAlgorithm; - ASN1_INTEGER *saltLength; - ASN1_INTEGER *trailerField; - /* Decoded hash algorithm from maskGenAlgorithm */ - X509_ALGOR *maskHash; -}; - -DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS) -DECLARE_ASN1_DUP_FUNCTION(RSA_PSS_PARAMS) - -typedef struct rsa_oaep_params_st { - X509_ALGOR *hashFunc; - X509_ALGOR *maskGenFunc; - X509_ALGOR *pSourceFunc; - /* Decoded hash algorithm from maskGenFunc */ - X509_ALGOR *maskHash; -} RSA_OAEP_PARAMS; - -DECLARE_ASN1_FUNCTIONS(RSA_OAEP_PARAMS) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_STDIO -OSSL_DEPRECATEDIN_3_0 int RSA_print_fp(FILE *fp, const RSA *r, int offset); -# endif - -OSSL_DEPRECATEDIN_3_0 int RSA_print(BIO *bp, const RSA *r, int offset); - -/* - * The following 2 functions sign and verify a X509_SIG ASN1 object inside - * PKCS#1 padded RSA encryption - */ -OSSL_DEPRECATEDIN_3_0 int RSA_sign(int type, const unsigned char *m, - unsigned int m_length, unsigned char *sigret, - unsigned int *siglen, RSA *rsa); -OSSL_DEPRECATEDIN_3_0 int RSA_verify(int type, const unsigned char *m, - unsigned int m_length, - const unsigned char *sigbuf, - unsigned int siglen, RSA *rsa); - -/* - * The following 2 function sign and verify a ASN1_OCTET_STRING object inside - * PKCS#1 padded RSA encryption - */ -OSSL_DEPRECATEDIN_3_0 -int RSA_sign_ASN1_OCTET_STRING(int type, - const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, - RSA *rsa); -OSSL_DEPRECATEDIN_3_0 -int RSA_verify_ASN1_OCTET_STRING(int type, - const unsigned char *m, unsigned int m_length, - unsigned char *sigbuf, unsigned int siglen, - RSA *rsa); - -OSSL_DEPRECATEDIN_3_0 int RSA_blinding_on(RSA *rsa, BN_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 void RSA_blinding_off(RSA *rsa); -OSSL_DEPRECATEDIN_3_0 BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *ctx); - -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen, - const unsigned char *f, int fl); -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, - const unsigned char *f, int fl, - int rsa_len); -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, - const unsigned char *f, int fl); -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, - const unsigned char *f, int fl, - int rsa_len); -OSSL_DEPRECATEDIN_3_0 int PKCS1_MGF1(unsigned char *mask, long len, - const unsigned char *seed, long seedlen, - const EVP_MD *dgst); -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, - const unsigned char *f, int fl, - const unsigned char *p, int pl); -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, - const unsigned char *f, int fl, int rsa_len, - const unsigned char *p, int pl); -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, - const unsigned char *from, int flen, - const unsigned char *param, int plen, - const EVP_MD *md, const EVP_MD *mgf1md); -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, - const unsigned char *from, int flen, - int num, - const unsigned char *param, int plen, - const EVP_MD *md, const EVP_MD *mgf1md); -OSSL_DEPRECATEDIN_3_0 int RSA_padding_add_none(unsigned char *to, int tlen, - const unsigned char *f, int fl); -OSSL_DEPRECATEDIN_3_0 int RSA_padding_check_none(unsigned char *to, int tlen, - const unsigned char *f, int fl, - int rsa_len); -OSSL_DEPRECATEDIN_3_0 int RSA_padding_add_X931(unsigned char *to, int tlen, - const unsigned char *f, int fl); -OSSL_DEPRECATEDIN_3_0 int RSA_padding_check_X931(unsigned char *to, int tlen, - const unsigned char *f, int fl, - int rsa_len); -OSSL_DEPRECATEDIN_3_0 int RSA_X931_hash_id(int nid); - -OSSL_DEPRECATEDIN_3_0 -int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash, - const EVP_MD *Hash, const unsigned char *EM, - int sLen); -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM, - const unsigned char *mHash, const EVP_MD *Hash, - int sLen); - -OSSL_DEPRECATEDIN_3_0 -int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash, - const EVP_MD *Hash, const EVP_MD *mgf1Hash, - const unsigned char *EM, int sLen); - -OSSL_DEPRECATEDIN_3_0 -int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM, - const unsigned char *mHash, - const EVP_MD *Hash, const EVP_MD *mgf1Hash, - int sLen); - -# define RSA_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_RSA, l, p, newf, dupf, freef) -OSSL_DEPRECATEDIN_3_0 int RSA_set_ex_data(RSA *r, int idx, void *arg); -OSSL_DEPRECATEDIN_3_0 void *RSA_get_ex_data(const RSA *r, int idx); - -DECLARE_ASN1_DUP_FUNCTION_name_attr(OSSL_DEPRECATEDIN_3_0, RSA, RSAPublicKey) -DECLARE_ASN1_DUP_FUNCTION_name_attr(OSSL_DEPRECATEDIN_3_0, RSA, RSAPrivateKey) - -/* - * If this flag is set the RSA method is FIPS compliant and can be used in - * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its responsibility to ensure the - * result is compliant. - */ - -# define RSA_FLAG_FIPS_METHOD 0x0400 - -/* - * If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -# define RSA_FLAG_NON_FIPS_ALLOW 0x0400 -/* - * Application has decided PRNG is good enough to generate a key: don't - * check. - */ -# define RSA_FLAG_CHECKED 0x0800 - -OSSL_DEPRECATEDIN_3_0 RSA_METHOD *RSA_meth_new(const char *name, int flags); -OSSL_DEPRECATEDIN_3_0 void RSA_meth_free(RSA_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 const char *RSA_meth_get0_name(const RSA_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 int RSA_meth_set1_name(RSA_METHOD *meth, - const char *name); -OSSL_DEPRECATEDIN_3_0 int RSA_meth_get_flags(const RSA_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 int RSA_meth_set_flags(RSA_METHOD *meth, int flags); -OSSL_DEPRECATEDIN_3_0 void *RSA_meth_get0_app_data(const RSA_METHOD *meth); -OSSL_DEPRECATEDIN_3_0 int RSA_meth_set0_app_data(RSA_METHOD *meth, - void *app_data); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_pub_enc(const RSA_METHOD *meth)) (int flen, - const unsigned char *from, - unsigned char *to, - RSA *rsa, int padding); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_pub_enc(RSA_METHOD *rsa, - int (*pub_enc) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, - int padding)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_pub_dec(const RSA_METHOD *meth)) (int flen, - const unsigned char *from, - unsigned char *to, - RSA *rsa, int padding); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_pub_dec(RSA_METHOD *rsa, - int (*pub_dec) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, - int padding)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_priv_enc(const RSA_METHOD *meth)) (int flen, - const unsigned char *from, - unsigned char *to, - RSA *rsa, int padding); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_priv_enc(RSA_METHOD *rsa, - int (*priv_enc) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, - int padding)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_priv_dec(const RSA_METHOD *meth)) (int flen, - const unsigned char *from, - unsigned char *to, - RSA *rsa, int padding); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_priv_dec(RSA_METHOD *rsa, - int (*priv_dec) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, - int padding)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_mod_exp(const RSA_METHOD *meth)) (BIGNUM *r0, - const BIGNUM *i, - RSA *rsa, BN_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_mod_exp(RSA_METHOD *rsa, - int (*mod_exp) (BIGNUM *r0, const BIGNUM *i, RSA *rsa, - BN_CTX *ctx)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_bn_mod_exp(const RSA_METHOD *meth)) (BIGNUM *r, - const BIGNUM *a, - const BIGNUM *p, - const BIGNUM *m, - BN_CTX *ctx, - BN_MONT_CTX *m_ctx); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_bn_mod_exp(RSA_METHOD *rsa, - int (*bn_mod_exp) (BIGNUM *r, - const BIGNUM *a, - const BIGNUM *p, - const BIGNUM *m, - BN_CTX *ctx, - BN_MONT_CTX *m_ctx)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_init(const RSA_METHOD *meth)) (RSA *rsa); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_init(RSA_METHOD *rsa, int (*init) (RSA *rsa)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_finish(const RSA_METHOD *meth)) (RSA *rsa); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_finish(RSA_METHOD *rsa, int (*finish) (RSA *rsa)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_sign(const RSA_METHOD *meth)) (int type, - const unsigned char *m, - unsigned int m_length, - unsigned char *sigret, - unsigned int *siglen, - const RSA *rsa); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_sign(RSA_METHOD *rsa, - int (*sign) (int type, const unsigned char *m, - unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, - const RSA *rsa)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_verify(const RSA_METHOD *meth)) (int dtype, - const unsigned char *m, - unsigned int m_length, - const unsigned char *sigbuf, - unsigned int siglen, - const RSA *rsa); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_verify(RSA_METHOD *rsa, - int (*verify) (int dtype, const unsigned char *m, - unsigned int m_length, - const unsigned char *sigbuf, - unsigned int siglen, const RSA *rsa)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_keygen(const RSA_METHOD *meth)) (RSA *rsa, int bits, - BIGNUM *e, BN_GENCB *cb); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_keygen(RSA_METHOD *rsa, - int (*keygen) (RSA *rsa, int bits, BIGNUM *e, - BN_GENCB *cb)); -OSSL_DEPRECATEDIN_3_0 -int (*RSA_meth_get_multi_prime_keygen(const RSA_METHOD *meth)) (RSA *rsa, - int bits, - int primes, - BIGNUM *e, - BN_GENCB *cb); -OSSL_DEPRECATEDIN_3_0 -int RSA_meth_set_multi_prime_keygen(RSA_METHOD *meth, - int (*keygen) (RSA *rsa, int bits, - int primes, BIGNUM *e, - BN_GENCB *cb)); -#endif /* !OPENSSL_NO_DEPRECATED_3_0 */ - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/rsaerr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/rsaerr.h deleted file mode 100644 index c58463c..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/rsaerr.h +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_RSAERR_H -# define OPENSSL_RSAERR_H -# pragma once - -# include -# include -# include - - - -/* - * RSA reason codes. - */ -# define RSA_R_ALGORITHM_MISMATCH 100 -# define RSA_R_BAD_E_VALUE 101 -# define RSA_R_BAD_FIXED_HEADER_DECRYPT 102 -# define RSA_R_BAD_PAD_BYTE_COUNT 103 -# define RSA_R_BAD_SIGNATURE 104 -# define RSA_R_BLOCK_TYPE_IS_NOT_01 106 -# define RSA_R_BLOCK_TYPE_IS_NOT_02 107 -# define RSA_R_DATA_GREATER_THAN_MOD_LEN 108 -# define RSA_R_DATA_TOO_LARGE 109 -# define RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 110 -# define RSA_R_DATA_TOO_LARGE_FOR_MODULUS 132 -# define RSA_R_DATA_TOO_SMALL 111 -# define RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE 122 -# define RSA_R_DIGEST_DOES_NOT_MATCH 158 -# define RSA_R_DIGEST_NOT_ALLOWED 145 -# define RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY 112 -# define RSA_R_DMP1_NOT_CONGRUENT_TO_D 124 -# define RSA_R_DMQ1_NOT_CONGRUENT_TO_D 125 -# define RSA_R_D_E_NOT_CONGRUENT_TO_1 123 -# define RSA_R_FIRST_OCTET_INVALID 133 -# define RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 144 -# define RSA_R_INVALID_DIGEST 157 -# define RSA_R_INVALID_DIGEST_LENGTH 143 -# define RSA_R_INVALID_HEADER 137 -# define RSA_R_INVALID_KEYPAIR 171 -# define RSA_R_INVALID_KEY_LENGTH 173 -# define RSA_R_INVALID_LABEL 160 -# define RSA_R_INVALID_LENGTH 181 -# define RSA_R_INVALID_MESSAGE_LENGTH 131 -# define RSA_R_INVALID_MGF1_MD 156 -# define RSA_R_INVALID_MODULUS 174 -# define RSA_R_INVALID_MULTI_PRIME_KEY 167 -# define RSA_R_INVALID_OAEP_PARAMETERS 161 -# define RSA_R_INVALID_PADDING 138 -# define RSA_R_INVALID_PADDING_MODE 141 -# define RSA_R_INVALID_PSS_PARAMETERS 149 -# define RSA_R_INVALID_PSS_SALTLEN 146 -# define RSA_R_INVALID_REQUEST 175 -# define RSA_R_INVALID_SALT_LENGTH 150 -# define RSA_R_INVALID_STRENGTH 176 -# define RSA_R_INVALID_TRAILER 139 -# define RSA_R_INVALID_X931_DIGEST 142 -# define RSA_R_IQMP_NOT_INVERSE_OF_Q 126 -# define RSA_R_KEY_PRIME_NUM_INVALID 165 -# define RSA_R_KEY_SIZE_TOO_SMALL 120 -# define RSA_R_LAST_OCTET_INVALID 134 -# define RSA_R_MGF1_DIGEST_NOT_ALLOWED 152 -# define RSA_R_MISSING_PRIVATE_KEY 179 -# define RSA_R_MODULUS_TOO_LARGE 105 -# define RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R 168 -# define RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D 169 -# define RSA_R_MP_R_NOT_PRIME 170 -# define RSA_R_NO_PUBLIC_EXPONENT 140 -# define RSA_R_NULL_BEFORE_BLOCK_MISSING 113 -# define RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES 172 -# define RSA_R_N_DOES_NOT_EQUAL_P_Q 127 -# define RSA_R_OAEP_DECODING_ERROR 121 -# define RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 148 -# define RSA_R_PADDING_CHECK_FAILED 114 -# define RSA_R_PAIRWISE_TEST_FAILURE 177 -# define RSA_R_PKCS_DECODING_ERROR 159 -# define RSA_R_PSS_SALTLEN_TOO_SMALL 164 -# define RSA_R_PUB_EXPONENT_OUT_OF_RANGE 178 -# define RSA_R_P_NOT_PRIME 128 -# define RSA_R_Q_NOT_PRIME 129 -# define RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT 180 -# define RSA_R_RSA_OPERATIONS_NOT_SUPPORTED 130 -# define RSA_R_SLEN_CHECK_FAILED 136 -# define RSA_R_SLEN_RECOVERY_FAILED 135 -# define RSA_R_SSLV3_ROLLBACK_ATTACK 115 -# define RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 116 -# define RSA_R_UNKNOWN_ALGORITHM_TYPE 117 -# define RSA_R_UNKNOWN_DIGEST 166 -# define RSA_R_UNKNOWN_MASK_DIGEST 151 -# define RSA_R_UNKNOWN_PADDING_TYPE 118 -# define RSA_R_UNSUPPORTED_ENCRYPTION_TYPE 162 -# define RSA_R_UNSUPPORTED_LABEL_SOURCE 163 -# define RSA_R_UNSUPPORTED_MASK_ALGORITHM 153 -# define RSA_R_UNSUPPORTED_MASK_PARAMETER 154 -# define RSA_R_UNSUPPORTED_SIGNATURE_TYPE 155 -# define RSA_R_VALUE_MISSING 147 -# define RSA_R_WRONG_SIGNATURE_LENGTH 119 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/safestack.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/safestack.h deleted file mode 100644 index b8154f7..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/safestack.h +++ /dev/null @@ -1,320 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\safestack.h.in - * - * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_SAFESTACK_H -# define OPENSSL_SAFESTACK_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_SAFESTACK_H -# endif - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define STACK_OF(type) struct stack_st_##type - -/* Helper macro for internal use */ -# define SKM_DEFINE_STACK_OF_INTERNAL(t1, t2, t3) \ - STACK_OF(t1); \ - typedef int (*sk_##t1##_compfunc)(const t3 * const *a, const t3 *const *b); \ - typedef void (*sk_##t1##_freefunc)(t3 *a); \ - typedef t3 * (*sk_##t1##_copyfunc)(const t3 *a); \ - static ossl_inline void sk_##t1##_freefunc_thunk(OPENSSL_sk_freefunc freefunc_arg, void *ptr) \ - { \ - sk_##t1##_freefunc freefunc = (sk_##t1##_freefunc) freefunc_arg; \ - freefunc((t3 *)ptr); \ - } \ - static ossl_unused ossl_inline t2 *ossl_check_##t1##_type(t2 *ptr) \ - { \ - return ptr; \ - } \ - static ossl_unused ossl_inline const OPENSSL_STACK *ossl_check_const_##t1##_sk_type(const STACK_OF(t1) *sk) \ - { \ - return (const OPENSSL_STACK *)sk; \ - } \ - static ossl_unused ossl_inline OPENSSL_STACK *ossl_check_##t1##_sk_type(STACK_OF(t1) *sk) \ - { \ - return (OPENSSL_STACK *)sk; \ - } \ - static ossl_unused ossl_inline OPENSSL_sk_compfunc ossl_check_##t1##_compfunc_type(sk_##t1##_compfunc cmp) \ - { \ - return (OPENSSL_sk_compfunc)cmp; \ - } \ - static ossl_unused ossl_inline OPENSSL_sk_copyfunc ossl_check_##t1##_copyfunc_type(sk_##t1##_copyfunc cpy) \ - { \ - return (OPENSSL_sk_copyfunc)cpy; \ - } \ - static ossl_unused ossl_inline OPENSSL_sk_freefunc ossl_check_##t1##_freefunc_type(sk_##t1##_freefunc fr) \ - { \ - return (OPENSSL_sk_freefunc)fr; \ - } - -# define SKM_DEFINE_STACK_OF(t1, t2, t3) \ - STACK_OF(t1); \ - typedef int (*sk_##t1##_compfunc)(const t3 * const *a, const t3 *const *b); \ - typedef void (*sk_##t1##_freefunc)(t3 *a); \ - typedef t3 * (*sk_##t1##_copyfunc)(const t3 *a); \ - static ossl_inline void sk_##t1##_freefunc_thunk(OPENSSL_sk_freefunc freefunc_arg, void *ptr) \ - { \ - sk_##t1##_freefunc freefunc = (sk_##t1##_freefunc) freefunc_arg;\ - freefunc((t3 *)ptr);\ - } \ - static ossl_unused ossl_inline int sk_##t1##_num(const STACK_OF(t1) *sk) \ - { \ - return OPENSSL_sk_num((const OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_value(const STACK_OF(t1) *sk, int idx) \ - { \ - return (t2 *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); \ - } \ - static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new(sk_##t1##_compfunc compare) \ - { \ - OPENSSL_STACK *ret = OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); \ - OPENSSL_sk_freefunc_thunk f_thunk; \ - \ - f_thunk = (OPENSSL_sk_freefunc_thunk)sk_##t1##_freefunc_thunk; \ - return (STACK_OF(t1) *)OPENSSL_sk_set_thunks(ret, f_thunk); \ - } \ - static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_null(void) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_new_null(); \ - } \ - static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_reserve(sk_##t1##_compfunc compare, int n) \ - { \ - OPENSSL_STACK *ret = OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); \ - OPENSSL_sk_freefunc_thunk f_thunk; \ - \ - f_thunk = (OPENSSL_sk_freefunc_thunk)sk_##t1##_freefunc_thunk; \ - return (STACK_OF(t1) *)OPENSSL_sk_set_thunks(ret, f_thunk); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_reserve(STACK_OF(t1) *sk, int n) \ - { \ - return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); \ - } \ - static ossl_unused ossl_inline void sk_##t1##_free(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_free((OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline void sk_##t1##_zero(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_zero((OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_delete(STACK_OF(t1) *sk, int i) \ - { \ - return (t2 *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_delete_ptr(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return (t2 *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, \ - (const void *)ptr); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_push(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_unshift(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_pop(STACK_OF(t1) *sk) \ - { \ - return (t2 *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_shift(STACK_OF(t1) *sk) \ - { \ - return (t2 *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline void sk_##t1##_pop_free(STACK_OF(t1) *sk, sk_##t1##_freefunc freefunc) \ - { \ - OPENSSL_sk_freefunc_thunk f_thunk; \ - \ - f_thunk = (OPENSSL_sk_freefunc_thunk)sk_##t1##_freefunc_thunk; \ - sk = (STACK_OF(t1) *)OPENSSL_sk_set_thunks((OPENSSL_STACK *)sk, f_thunk); \ - \ - OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_insert(STACK_OF(t1) *sk, t2 *ptr, int idx) \ - { \ - return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_set(STACK_OF(t1) *sk, int idx, t2 *ptr) \ - { \ - return (t2 *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_find(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_find_ex(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_find_all(STACK_OF(t1) *sk, t2 *ptr, int *pnum) \ - { \ - return OPENSSL_sk_find_all((OPENSSL_STACK *)sk, (const void *)ptr, pnum); \ - } \ - static ossl_unused ossl_inline void sk_##t1##_sort(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_sort((OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_is_sorted(const STACK_OF(t1) *sk) \ - { \ - return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline STACK_OF(t1) * sk_##t1##_dup(const STACK_OF(t1) *sk) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_deep_copy(const STACK_OF(t1) *sk, \ - sk_##t1##_copyfunc copyfunc, \ - sk_##t1##_freefunc freefunc) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, \ - (OPENSSL_sk_copyfunc)copyfunc, \ - (OPENSSL_sk_freefunc)freefunc); \ - } \ - static ossl_unused ossl_inline sk_##t1##_compfunc sk_##t1##_set_cmp_func(STACK_OF(t1) *sk, sk_##t1##_compfunc compare) \ - { \ - return (sk_##t1##_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); \ - } - -# define DEFINE_STACK_OF(t) SKM_DEFINE_STACK_OF(t, t, t) -# define DEFINE_STACK_OF_CONST(t) SKM_DEFINE_STACK_OF(t, const t, t) -# define DEFINE_SPECIAL_STACK_OF(t1, t2) SKM_DEFINE_STACK_OF(t1, t2, t2) -# define DEFINE_SPECIAL_STACK_OF_CONST(t1, t2) \ - SKM_DEFINE_STACK_OF(t1, const t2, t2) - -/*- - * Strings are special: normally an lhash entry will point to a single - * (somewhat) mutable object. In the case of strings: - * - * a) Instead of a single char, there is an array of chars, NUL-terminated. - * b) The string may have be immutable. - * - * So, they need their own declarations. Especially important for - * type-checking tools, such as Deputy. - * - * In practice, however, it appears to be hard to have a const - * string. For now, I'm settling for dealing with the fact it is a - * string at all. - */ -typedef char *OPENSSL_STRING; -typedef const char *OPENSSL_CSTRING; - -/*- - * Confusingly, LHASH_OF(STRING) deals with char ** throughout, but - * STACK_OF(STRING) is really more like STACK_OF(char), only, as mentioned - * above, instead of a single char each entry is a NUL-terminated array of - * chars. So, we have to implement STRING specially for STACK_OF. This is - * dealt with in the autogenerated macros below. - */ -SKM_DEFINE_STACK_OF_INTERNAL(OPENSSL_STRING, char, char) -#define sk_OPENSSL_STRING_num(sk) OPENSSL_sk_num(ossl_check_const_OPENSSL_STRING_sk_type(sk)) -#define sk_OPENSSL_STRING_value(sk, idx) ((char *)OPENSSL_sk_value(ossl_check_const_OPENSSL_STRING_sk_type(sk), (idx))) -#define sk_OPENSSL_STRING_new(cmp) ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_new(ossl_check_OPENSSL_STRING_compfunc_type(cmp))) -#define sk_OPENSSL_STRING_new_null() ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_new_null()) -#define sk_OPENSSL_STRING_new_reserve(cmp, n) ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_new_reserve(ossl_check_OPENSSL_STRING_compfunc_type(cmp), (n))) -#define sk_OPENSSL_STRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OPENSSL_STRING_sk_type(sk), (n)) -#define sk_OPENSSL_STRING_free(sk) OPENSSL_sk_free(ossl_check_OPENSSL_STRING_sk_type(sk)) -#define sk_OPENSSL_STRING_zero(sk) OPENSSL_sk_zero(ossl_check_OPENSSL_STRING_sk_type(sk)) -#define sk_OPENSSL_STRING_delete(sk, i) ((char *)OPENSSL_sk_delete(ossl_check_OPENSSL_STRING_sk_type(sk), (i))) -#define sk_OPENSSL_STRING_delete_ptr(sk, ptr) ((char *)OPENSSL_sk_delete_ptr(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr))) -#define sk_OPENSSL_STRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr)) -#define sk_OPENSSL_STRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr)) -#define sk_OPENSSL_STRING_pop(sk) ((char *)OPENSSL_sk_pop(ossl_check_OPENSSL_STRING_sk_type(sk))) -#define sk_OPENSSL_STRING_shift(sk) ((char *)OPENSSL_sk_shift(ossl_check_OPENSSL_STRING_sk_type(sk))) -#define sk_OPENSSL_STRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_freefunc_type(freefunc)) -#define sk_OPENSSL_STRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr), (idx)) -#define sk_OPENSSL_STRING_set(sk, idx, ptr) ((char *)OPENSSL_sk_set(ossl_check_OPENSSL_STRING_sk_type(sk), (idx), ossl_check_OPENSSL_STRING_type(ptr))) -#define sk_OPENSSL_STRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr)) -#define sk_OPENSSL_STRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr)) -#define sk_OPENSSL_STRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr), pnum) -#define sk_OPENSSL_STRING_sort(sk) OPENSSL_sk_sort(ossl_check_OPENSSL_STRING_sk_type(sk)) -#define sk_OPENSSL_STRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OPENSSL_STRING_sk_type(sk)) -#define sk_OPENSSL_STRING_dup(sk) ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_dup(ossl_check_const_OPENSSL_STRING_sk_type(sk))) -#define sk_OPENSSL_STRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_deep_copy(ossl_check_const_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_copyfunc_type(copyfunc), ossl_check_OPENSSL_STRING_freefunc_type(freefunc))) -#define sk_OPENSSL_STRING_set_cmp_func(sk, cmp) ((sk_OPENSSL_STRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(OPENSSL_CSTRING, const char, char) -#define sk_OPENSSL_CSTRING_num(sk) OPENSSL_sk_num(ossl_check_const_OPENSSL_CSTRING_sk_type(sk)) -#define sk_OPENSSL_CSTRING_value(sk, idx) ((const char *)OPENSSL_sk_value(ossl_check_const_OPENSSL_CSTRING_sk_type(sk), (idx))) -#define sk_OPENSSL_CSTRING_new(cmp) ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_new(ossl_check_OPENSSL_CSTRING_compfunc_type(cmp))) -#define sk_OPENSSL_CSTRING_new_null() ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_new_null()) -#define sk_OPENSSL_CSTRING_new_reserve(cmp, n) ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_new_reserve(ossl_check_OPENSSL_CSTRING_compfunc_type(cmp), (n))) -#define sk_OPENSSL_CSTRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OPENSSL_CSTRING_sk_type(sk), (n)) -#define sk_OPENSSL_CSTRING_free(sk) OPENSSL_sk_free(ossl_check_OPENSSL_CSTRING_sk_type(sk)) -#define sk_OPENSSL_CSTRING_zero(sk) OPENSSL_sk_zero(ossl_check_OPENSSL_CSTRING_sk_type(sk)) -#define sk_OPENSSL_CSTRING_delete(sk, i) ((const char *)OPENSSL_sk_delete(ossl_check_OPENSSL_CSTRING_sk_type(sk), (i))) -#define sk_OPENSSL_CSTRING_delete_ptr(sk, ptr) ((const char *)OPENSSL_sk_delete_ptr(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr))) -#define sk_OPENSSL_CSTRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr)) -#define sk_OPENSSL_CSTRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr)) -#define sk_OPENSSL_CSTRING_pop(sk) ((const char *)OPENSSL_sk_pop(ossl_check_OPENSSL_CSTRING_sk_type(sk))) -#define sk_OPENSSL_CSTRING_shift(sk) ((const char *)OPENSSL_sk_shift(ossl_check_OPENSSL_CSTRING_sk_type(sk))) -#define sk_OPENSSL_CSTRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_freefunc_type(freefunc)) -#define sk_OPENSSL_CSTRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr), (idx)) -#define sk_OPENSSL_CSTRING_set(sk, idx, ptr) ((const char *)OPENSSL_sk_set(ossl_check_OPENSSL_CSTRING_sk_type(sk), (idx), ossl_check_OPENSSL_CSTRING_type(ptr))) -#define sk_OPENSSL_CSTRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr)) -#define sk_OPENSSL_CSTRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr)) -#define sk_OPENSSL_CSTRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr), pnum) -#define sk_OPENSSL_CSTRING_sort(sk) OPENSSL_sk_sort(ossl_check_OPENSSL_CSTRING_sk_type(sk)) -#define sk_OPENSSL_CSTRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OPENSSL_CSTRING_sk_type(sk)) -#define sk_OPENSSL_CSTRING_dup(sk) ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_dup(ossl_check_const_OPENSSL_CSTRING_sk_type(sk))) -#define sk_OPENSSL_CSTRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_deep_copy(ossl_check_const_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_copyfunc_type(copyfunc), ossl_check_OPENSSL_CSTRING_freefunc_type(freefunc))) -#define sk_OPENSSL_CSTRING_set_cmp_func(sk, cmp) ((sk_OPENSSL_CSTRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_compfunc_type(cmp))) - - -#if !defined(OPENSSL_NO_DEPRECATED_3_0) -/* - * This is not used by OpenSSL. A block of bytes, NOT nul-terminated. - * These should also be distinguished from "normal" stacks. - */ -typedef void *OPENSSL_BLOCK; -SKM_DEFINE_STACK_OF_INTERNAL(OPENSSL_BLOCK, void, void) -#define sk_OPENSSL_BLOCK_num(sk) OPENSSL_sk_num(ossl_check_const_OPENSSL_BLOCK_sk_type(sk)) -#define sk_OPENSSL_BLOCK_value(sk, idx) ((void *)OPENSSL_sk_value(ossl_check_const_OPENSSL_BLOCK_sk_type(sk), (idx))) -#define sk_OPENSSL_BLOCK_new(cmp) ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_new(ossl_check_OPENSSL_BLOCK_compfunc_type(cmp))) -#define sk_OPENSSL_BLOCK_new_null() ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_new_null()) -#define sk_OPENSSL_BLOCK_new_reserve(cmp, n) ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_new_reserve(ossl_check_OPENSSL_BLOCK_compfunc_type(cmp), (n))) -#define sk_OPENSSL_BLOCK_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OPENSSL_BLOCK_sk_type(sk), (n)) -#define sk_OPENSSL_BLOCK_free(sk) OPENSSL_sk_free(ossl_check_OPENSSL_BLOCK_sk_type(sk)) -#define sk_OPENSSL_BLOCK_zero(sk) OPENSSL_sk_zero(ossl_check_OPENSSL_BLOCK_sk_type(sk)) -#define sk_OPENSSL_BLOCK_delete(sk, i) ((void *)OPENSSL_sk_delete(ossl_check_OPENSSL_BLOCK_sk_type(sk), (i))) -#define sk_OPENSSL_BLOCK_delete_ptr(sk, ptr) ((void *)OPENSSL_sk_delete_ptr(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr))) -#define sk_OPENSSL_BLOCK_push(sk, ptr) OPENSSL_sk_push(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr)) -#define sk_OPENSSL_BLOCK_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr)) -#define sk_OPENSSL_BLOCK_pop(sk) ((void *)OPENSSL_sk_pop(ossl_check_OPENSSL_BLOCK_sk_type(sk))) -#define sk_OPENSSL_BLOCK_shift(sk) ((void *)OPENSSL_sk_shift(ossl_check_OPENSSL_BLOCK_sk_type(sk))) -#define sk_OPENSSL_BLOCK_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_freefunc_type(freefunc)) -#define sk_OPENSSL_BLOCK_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr), (idx)) -#define sk_OPENSSL_BLOCK_set(sk, idx, ptr) ((void *)OPENSSL_sk_set(ossl_check_OPENSSL_BLOCK_sk_type(sk), (idx), ossl_check_OPENSSL_BLOCK_type(ptr))) -#define sk_OPENSSL_BLOCK_find(sk, ptr) OPENSSL_sk_find(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr)) -#define sk_OPENSSL_BLOCK_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr)) -#define sk_OPENSSL_BLOCK_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr), pnum) -#define sk_OPENSSL_BLOCK_sort(sk) OPENSSL_sk_sort(ossl_check_OPENSSL_BLOCK_sk_type(sk)) -#define sk_OPENSSL_BLOCK_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OPENSSL_BLOCK_sk_type(sk)) -#define sk_OPENSSL_BLOCK_dup(sk) ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_dup(ossl_check_const_OPENSSL_BLOCK_sk_type(sk))) -#define sk_OPENSSL_BLOCK_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_deep_copy(ossl_check_const_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_copyfunc_type(copyfunc), ossl_check_OPENSSL_BLOCK_freefunc_type(freefunc))) -#define sk_OPENSSL_BLOCK_set_cmp_func(sk, cmp) ((sk_OPENSSL_BLOCK_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_compfunc_type(cmp))) - -#endif - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/seed.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/seed.h deleted file mode 100644 index edb218a..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/seed.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 2007-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * Copyright (c) 2007 KISA(Korea Information Security Agency). All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Neither the name of author 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 AUTHOR 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 AUTHOR 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. - */ - -#ifndef OPENSSL_SEED_H -# define OPENSSL_SEED_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_SEED_H -# endif - -# include - -# ifndef OPENSSL_NO_SEED -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# define SEED_BLOCK_SIZE 16 -# define SEED_KEY_LENGTH 16 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* look whether we need 'long' to get 32 bits */ -# ifdef AES_LONG -# ifndef SEED_LONG -# define SEED_LONG 1 -# endif -# endif - - -typedef struct seed_key_st { -# ifdef SEED_LONG - unsigned long data[32]; -# else - unsigned int data[32]; -# endif -} SEED_KEY_SCHEDULE; -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -void SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH], - SEED_KEY_SCHEDULE *ks); -OSSL_DEPRECATEDIN_3_0 -void SEED_encrypt(const unsigned char s[SEED_BLOCK_SIZE], - unsigned char d[SEED_BLOCK_SIZE], - const SEED_KEY_SCHEDULE *ks); -OSSL_DEPRECATEDIN_3_0 -void SEED_decrypt(const unsigned char s[SEED_BLOCK_SIZE], - unsigned char d[SEED_BLOCK_SIZE], - const SEED_KEY_SCHEDULE *ks); -OSSL_DEPRECATEDIN_3_0 -void SEED_ecb_encrypt(const unsigned char *in, - unsigned char *out, - const SEED_KEY_SCHEDULE *ks, int enc); -OSSL_DEPRECATEDIN_3_0 -void SEED_cbc_encrypt(const unsigned char *in, unsigned char *out, size_t len, - const SEED_KEY_SCHEDULE *ks, - unsigned char ivec[SEED_BLOCK_SIZE], - int enc); -OSSL_DEPRECATEDIN_3_0 -void SEED_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const SEED_KEY_SCHEDULE *ks, - unsigned char ivec[SEED_BLOCK_SIZE], - int *num, int enc); -OSSL_DEPRECATEDIN_3_0 -void SEED_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const SEED_KEY_SCHEDULE *ks, - unsigned char ivec[SEED_BLOCK_SIZE], - int *num); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/self_test.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/self_test.h deleted file mode 100644 index 292d61d..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/self_test.h +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_SELF_TEST_H -# define OPENSSL_SELF_TEST_H -# pragma once - -# include /* OSSL_CALLBACK */ - -# ifdef __cplusplus -extern "C" { -# endif - -/* The test event phases */ -# define OSSL_SELF_TEST_PHASE_NONE "None" -# define OSSL_SELF_TEST_PHASE_START "Start" -# define OSSL_SELF_TEST_PHASE_CORRUPT "Corrupt" -# define OSSL_SELF_TEST_PHASE_PASS "Pass" -# define OSSL_SELF_TEST_PHASE_FAIL "Fail" - -/* Test event categories */ -# define OSSL_SELF_TEST_TYPE_NONE "None" -# define OSSL_SELF_TEST_TYPE_MODULE_INTEGRITY "Module_Integrity" -# define OSSL_SELF_TEST_TYPE_INSTALL_INTEGRITY "Install_Integrity" -# define OSSL_SELF_TEST_TYPE_CRNG "Continuous_RNG_Test" -# define OSSL_SELF_TEST_TYPE_PCT "Conditional_PCT" -# define OSSL_SELF_TEST_TYPE_PCT_KAT "Conditional_KAT" -# define OSSL_SELF_TEST_TYPE_PCT_IMPORT "Import_PCT" -# define OSSL_SELF_TEST_TYPE_KAT_INTEGRITY "KAT_Integrity" -# define OSSL_SELF_TEST_TYPE_KAT_CIPHER "KAT_Cipher" -# define OSSL_SELF_TEST_TYPE_KAT_ASYM_CIPHER "KAT_AsymmetricCipher" -# define OSSL_SELF_TEST_TYPE_KAT_ASYM_KEYGEN "KAT_AsymmetricKeyGeneration" -# define OSSL_SELF_TEST_TYPE_KAT_KEM "KAT_KEM" -# define OSSL_SELF_TEST_TYPE_KAT_DIGEST "KAT_Digest" -# define OSSL_SELF_TEST_TYPE_KAT_SIGNATURE "KAT_Signature" -# define OSSL_SELF_TEST_TYPE_PCT_SIGNATURE "PCT_Signature" -# define OSSL_SELF_TEST_TYPE_KAT_KDF "KAT_KDF" -# define OSSL_SELF_TEST_TYPE_KAT_KA "KAT_KA" -# define OSSL_SELF_TEST_TYPE_DRBG "DRBG" - -/* Test event sub categories */ -# define OSSL_SELF_TEST_DESC_NONE "None" -# define OSSL_SELF_TEST_DESC_INTEGRITY_HMAC "HMAC" -# define OSSL_SELF_TEST_DESC_PCT_RSA "RSA" -# define OSSL_SELF_TEST_DESC_PCT_RSA_PKCS1 "RSA" -# define OSSL_SELF_TEST_DESC_PCT_ECDSA "ECDSA" -# define OSSL_SELF_TEST_DESC_PCT_EDDSA "EDDSA" -# define OSSL_SELF_TEST_DESC_PCT_DH "DH" -# define OSSL_SELF_TEST_DESC_PCT_DSA "DSA" -# define OSSL_SELF_TEST_DESC_PCT_ML_DSA "ML-DSA" -# define OSSL_SELF_TEST_DESC_PCT_ML_KEM "ML-KEM" -# define OSSL_SELF_TEST_DESC_PCT_SLH_DSA "SLH-DSA" -# define OSSL_SELF_TEST_DESC_CIPHER_AES_GCM "AES_GCM" -# define OSSL_SELF_TEST_DESC_CIPHER_AES_ECB "AES_ECB_Decrypt" -# define OSSL_SELF_TEST_DESC_CIPHER_TDES "TDES" -# define OSSL_SELF_TEST_DESC_ASYM_RSA_ENC "RSA_Encrypt" -# define OSSL_SELF_TEST_DESC_ASYM_RSA_DEC "RSA_Decrypt" -# define OSSL_SELF_TEST_DESC_MD_SHA1 "SHA1" -# define OSSL_SELF_TEST_DESC_MD_SHA2 "SHA2" -# define OSSL_SELF_TEST_DESC_MD_SHA3 "SHA3" -# define OSSL_SELF_TEST_DESC_SIGN_DSA "DSA" -# define OSSL_SELF_TEST_DESC_SIGN_RSA "RSA" -# define OSSL_SELF_TEST_DESC_SIGN_ECDSA "ECDSA" -# define OSSL_SELF_TEST_DESC_SIGN_DetECDSA "DetECDSA" -# define OSSL_SELF_TEST_DESC_SIGN_EDDSA "EDDSA" -# define OSSL_SELF_TEST_DESC_SIGN_LMS "LMS" -# define OSSL_SELF_TEST_DESC_SIGN_ML_DSA "ML-DSA" -# define OSSL_SELF_TEST_DESC_SIGN_SLH_DSA "SLH-DSA" -# define OSSL_SELF_TEST_DESC_KEM "KEM" -# define OSSL_SELF_TEST_DESC_DRBG_CTR "CTR" -# define OSSL_SELF_TEST_DESC_DRBG_HASH "HASH" -# define OSSL_SELF_TEST_DESC_DRBG_HMAC "HMAC" -# define OSSL_SELF_TEST_DESC_KA_DH "DH" -# define OSSL_SELF_TEST_DESC_KA_ECDH "ECDH" -# define OSSL_SELF_TEST_DESC_KDF_HKDF "HKDF" -# define OSSL_SELF_TEST_DESC_KDF_SSKDF "SSKDF" -# define OSSL_SELF_TEST_DESC_KDF_X963KDF "X963KDF" -# define OSSL_SELF_TEST_DESC_KDF_X942KDF "X942KDF" -# define OSSL_SELF_TEST_DESC_KDF_PBKDF2 "PBKDF2" -# define OSSL_SELF_TEST_DESC_KDF_SSHKDF "SSHKDF" -# define OSSL_SELF_TEST_DESC_KDF_TLS12_PRF "TLS12_PRF" -# define OSSL_SELF_TEST_DESC_KDF_KBKDF "KBKDF" -# define OSSL_SELF_TEST_DESC_KDF_KBKDF_KMAC "KBKDF_KMAC" -# define OSSL_SELF_TEST_DESC_KDF_TLS13_EXTRACT "TLS13_KDF_EXTRACT" -# define OSSL_SELF_TEST_DESC_KDF_TLS13_EXPAND "TLS13_KDF_EXPAND" -# define OSSL_SELF_TEST_DESC_RNG "RNG" -# define OSSL_SELF_TEST_DESC_KEYGEN_ML_DSA "ML-DSA" -# define OSSL_SELF_TEST_DESC_KEYGEN_ML_KEM "ML-KEM" -# define OSSL_SELF_TEST_DESC_KEYGEN_SLH_DSA "SLH-DSA" -# define OSSL_SELF_TEST_DESC_ENCAP_KEM "KEM_Encap" -# define OSSL_SELF_TEST_DESC_DECAP_KEM "KEM_Decap" -# define OSSL_SELF_TEST_DESC_DECAP_KEM_FAIL "KEM_Decap_Reject" - -void OSSL_SELF_TEST_set_callback(OSSL_LIB_CTX *libctx, OSSL_CALLBACK *cb, - void *cbarg); -void OSSL_SELF_TEST_get_callback(OSSL_LIB_CTX *libctx, OSSL_CALLBACK **cb, - void **cbarg); - -OSSL_SELF_TEST *OSSL_SELF_TEST_new(OSSL_CALLBACK *cb, void *cbarg); -void OSSL_SELF_TEST_free(OSSL_SELF_TEST *st); - -void OSSL_SELF_TEST_onbegin(OSSL_SELF_TEST *st, const char *type, - const char *desc); -int OSSL_SELF_TEST_oncorrupt_byte(OSSL_SELF_TEST *st, unsigned char *bytes); -void OSSL_SELF_TEST_onend(OSSL_SELF_TEST *st, int ret); - -# ifdef __cplusplus -} -# endif -#endif /* OPENSSL_SELF_TEST_H */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/sha.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/sha.h deleted file mode 100644 index 163a7d5..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/sha.h +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_SHA_H -# define OPENSSL_SHA_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_SHA_H -# endif - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# define SHA_DIGEST_LENGTH 20 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/*- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! SHA_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define SHA_LONG unsigned int - -# define SHA_LBLOCK 16 -# define SHA_CBLOCK (SHA_LBLOCK*4)/* SHA treats input data as a - * contiguous array of 32 bit wide - * big-endian values. */ -# define SHA_LAST_BLOCK (SHA_CBLOCK-8) - -typedef struct SHAstate_st { - SHA_LONG h0, h1, h2, h3, h4; - SHA_LONG Nl, Nh; - SHA_LONG data[SHA_LBLOCK]; - unsigned int num; -} SHA_CTX; - -OSSL_DEPRECATEDIN_3_0 int SHA1_Init(SHA_CTX *c); -OSSL_DEPRECATEDIN_3_0 int SHA1_Update(SHA_CTX *c, const void *data, size_t len); -OSSL_DEPRECATEDIN_3_0 int SHA1_Final(unsigned char *md, SHA_CTX *c); -OSSL_DEPRECATEDIN_3_0 void SHA1_Transform(SHA_CTX *c, const unsigned char *data); -# endif - -unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md); - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SHA256_CBLOCK (SHA_LBLOCK*4)/* SHA-256 treats input data as a - * contiguous array of 32 bit wide - * big-endian values. */ - -typedef struct SHA256state_st { - SHA_LONG h[8]; - SHA_LONG Nl, Nh; - SHA_LONG data[SHA_LBLOCK]; - unsigned int num, md_len; -} SHA256_CTX; - -OSSL_DEPRECATEDIN_3_0 int SHA224_Init(SHA256_CTX *c); -OSSL_DEPRECATEDIN_3_0 int SHA224_Update(SHA256_CTX *c, - const void *data, size_t len); -OSSL_DEPRECATEDIN_3_0 int SHA224_Final(unsigned char *md, SHA256_CTX *c); -OSSL_DEPRECATEDIN_3_0 int SHA256_Init(SHA256_CTX *c); -OSSL_DEPRECATEDIN_3_0 int SHA256_Update(SHA256_CTX *c, - const void *data, size_t len); -OSSL_DEPRECATEDIN_3_0 int SHA256_Final(unsigned char *md, SHA256_CTX *c); -OSSL_DEPRECATEDIN_3_0 void SHA256_Transform(SHA256_CTX *c, - const unsigned char *data); -# endif - -unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char *md); -unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md); - -# define SHA256_192_DIGEST_LENGTH 24 -# define SHA224_DIGEST_LENGTH 28 -# define SHA256_DIGEST_LENGTH 32 -# define SHA384_DIGEST_LENGTH 48 -# define SHA512_DIGEST_LENGTH 64 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* - * Unlike 32-bit digest algorithms, SHA-512 *relies* on SHA_LONG64 - * being exactly 64-bit wide. See Implementation Notes in sha512.c - * for further details. - */ -/* - * SHA-512 treats input data as a - * contiguous array of 64 bit - * wide big-endian values. - */ -# define SHA512_CBLOCK (SHA_LBLOCK*8) -# if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__) -# define SHA_LONG64 unsigned __int64 -# elif defined(__arch64__) -# define SHA_LONG64 unsigned long -# else -# define SHA_LONG64 unsigned long long -# endif - -typedef struct SHA512state_st { - SHA_LONG64 h[8]; - SHA_LONG64 Nl, Nh; - union { - SHA_LONG64 d[SHA_LBLOCK]; - unsigned char p[SHA512_CBLOCK]; - } u; - unsigned int num, md_len; -} SHA512_CTX; - -OSSL_DEPRECATEDIN_3_0 int SHA384_Init(SHA512_CTX *c); -OSSL_DEPRECATEDIN_3_0 int SHA384_Update(SHA512_CTX *c, - const void *data, size_t len); -OSSL_DEPRECATEDIN_3_0 int SHA384_Final(unsigned char *md, SHA512_CTX *c); -OSSL_DEPRECATEDIN_3_0 int SHA512_Init(SHA512_CTX *c); -OSSL_DEPRECATEDIN_3_0 int SHA512_Update(SHA512_CTX *c, - const void *data, size_t len); -OSSL_DEPRECATEDIN_3_0 int SHA512_Final(unsigned char *md, SHA512_CTX *c); -OSSL_DEPRECATEDIN_3_0 void SHA512_Transform(SHA512_CTX *c, - const unsigned char *data); -# endif - -unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md); -unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md); - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/srp.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/srp.h deleted file mode 100644 index 5836678..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/srp.h +++ /dev/null @@ -1,285 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\srp.h.in - * - * Copyright 2004-2021 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2004, EdelKey Project. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - * - * Originally written by Christophe Renou and Peter Sylvester, - * for the EdelKey project. - */ - - - -#ifndef OPENSSL_SRP_H -# define OPENSSL_SRP_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_SRP_H -# endif - -#include - -#ifndef OPENSSL_NO_SRP -# include -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 - -typedef struct SRP_gN_cache_st { - char *b64_bn; - BIGNUM *bn; -} SRP_gN_cache; -SKM_DEFINE_STACK_OF_INTERNAL(SRP_gN_cache, SRP_gN_cache, SRP_gN_cache) -#define sk_SRP_gN_cache_num(sk) OPENSSL_sk_num(ossl_check_const_SRP_gN_cache_sk_type(sk)) -#define sk_SRP_gN_cache_value(sk, idx) ((SRP_gN_cache *)OPENSSL_sk_value(ossl_check_const_SRP_gN_cache_sk_type(sk), (idx))) -#define sk_SRP_gN_cache_new(cmp) ((STACK_OF(SRP_gN_cache) *)OPENSSL_sk_new(ossl_check_SRP_gN_cache_compfunc_type(cmp))) -#define sk_SRP_gN_cache_new_null() ((STACK_OF(SRP_gN_cache) *)OPENSSL_sk_new_null()) -#define sk_SRP_gN_cache_new_reserve(cmp, n) ((STACK_OF(SRP_gN_cache) *)OPENSSL_sk_new_reserve(ossl_check_SRP_gN_cache_compfunc_type(cmp), (n))) -#define sk_SRP_gN_cache_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SRP_gN_cache_sk_type(sk), (n)) -#define sk_SRP_gN_cache_free(sk) OPENSSL_sk_free(ossl_check_SRP_gN_cache_sk_type(sk)) -#define sk_SRP_gN_cache_zero(sk) OPENSSL_sk_zero(ossl_check_SRP_gN_cache_sk_type(sk)) -#define sk_SRP_gN_cache_delete(sk, i) ((SRP_gN_cache *)OPENSSL_sk_delete(ossl_check_SRP_gN_cache_sk_type(sk), (i))) -#define sk_SRP_gN_cache_delete_ptr(sk, ptr) ((SRP_gN_cache *)OPENSSL_sk_delete_ptr(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr))) -#define sk_SRP_gN_cache_push(sk, ptr) OPENSSL_sk_push(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr)) -#define sk_SRP_gN_cache_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr)) -#define sk_SRP_gN_cache_pop(sk) ((SRP_gN_cache *)OPENSSL_sk_pop(ossl_check_SRP_gN_cache_sk_type(sk))) -#define sk_SRP_gN_cache_shift(sk) ((SRP_gN_cache *)OPENSSL_sk_shift(ossl_check_SRP_gN_cache_sk_type(sk))) -#define sk_SRP_gN_cache_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_freefunc_type(freefunc)) -#define sk_SRP_gN_cache_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr), (idx)) -#define sk_SRP_gN_cache_set(sk, idx, ptr) ((SRP_gN_cache *)OPENSSL_sk_set(ossl_check_SRP_gN_cache_sk_type(sk), (idx), ossl_check_SRP_gN_cache_type(ptr))) -#define sk_SRP_gN_cache_find(sk, ptr) OPENSSL_sk_find(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr)) -#define sk_SRP_gN_cache_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr)) -#define sk_SRP_gN_cache_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr), pnum) -#define sk_SRP_gN_cache_sort(sk) OPENSSL_sk_sort(ossl_check_SRP_gN_cache_sk_type(sk)) -#define sk_SRP_gN_cache_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SRP_gN_cache_sk_type(sk)) -#define sk_SRP_gN_cache_dup(sk) ((STACK_OF(SRP_gN_cache) *)OPENSSL_sk_dup(ossl_check_const_SRP_gN_cache_sk_type(sk))) -#define sk_SRP_gN_cache_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SRP_gN_cache) *)OPENSSL_sk_deep_copy(ossl_check_const_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_copyfunc_type(copyfunc), ossl_check_SRP_gN_cache_freefunc_type(freefunc))) -#define sk_SRP_gN_cache_set_cmp_func(sk, cmp) ((sk_SRP_gN_cache_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_compfunc_type(cmp))) - - - -typedef struct SRP_user_pwd_st { - /* Owned by us. */ - char *id; - BIGNUM *s; - BIGNUM *v; - /* Not owned by us. */ - const BIGNUM *g; - const BIGNUM *N; - /* Owned by us. */ - char *info; -} SRP_user_pwd; -SKM_DEFINE_STACK_OF_INTERNAL(SRP_user_pwd, SRP_user_pwd, SRP_user_pwd) -#define sk_SRP_user_pwd_num(sk) OPENSSL_sk_num(ossl_check_const_SRP_user_pwd_sk_type(sk)) -#define sk_SRP_user_pwd_value(sk, idx) ((SRP_user_pwd *)OPENSSL_sk_value(ossl_check_const_SRP_user_pwd_sk_type(sk), (idx))) -#define sk_SRP_user_pwd_new(cmp) ((STACK_OF(SRP_user_pwd) *)OPENSSL_sk_new(ossl_check_SRP_user_pwd_compfunc_type(cmp))) -#define sk_SRP_user_pwd_new_null() ((STACK_OF(SRP_user_pwd) *)OPENSSL_sk_new_null()) -#define sk_SRP_user_pwd_new_reserve(cmp, n) ((STACK_OF(SRP_user_pwd) *)OPENSSL_sk_new_reserve(ossl_check_SRP_user_pwd_compfunc_type(cmp), (n))) -#define sk_SRP_user_pwd_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SRP_user_pwd_sk_type(sk), (n)) -#define sk_SRP_user_pwd_free(sk) OPENSSL_sk_free(ossl_check_SRP_user_pwd_sk_type(sk)) -#define sk_SRP_user_pwd_zero(sk) OPENSSL_sk_zero(ossl_check_SRP_user_pwd_sk_type(sk)) -#define sk_SRP_user_pwd_delete(sk, i) ((SRP_user_pwd *)OPENSSL_sk_delete(ossl_check_SRP_user_pwd_sk_type(sk), (i))) -#define sk_SRP_user_pwd_delete_ptr(sk, ptr) ((SRP_user_pwd *)OPENSSL_sk_delete_ptr(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr))) -#define sk_SRP_user_pwd_push(sk, ptr) OPENSSL_sk_push(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr)) -#define sk_SRP_user_pwd_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr)) -#define sk_SRP_user_pwd_pop(sk) ((SRP_user_pwd *)OPENSSL_sk_pop(ossl_check_SRP_user_pwd_sk_type(sk))) -#define sk_SRP_user_pwd_shift(sk) ((SRP_user_pwd *)OPENSSL_sk_shift(ossl_check_SRP_user_pwd_sk_type(sk))) -#define sk_SRP_user_pwd_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_freefunc_type(freefunc)) -#define sk_SRP_user_pwd_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr), (idx)) -#define sk_SRP_user_pwd_set(sk, idx, ptr) ((SRP_user_pwd *)OPENSSL_sk_set(ossl_check_SRP_user_pwd_sk_type(sk), (idx), ossl_check_SRP_user_pwd_type(ptr))) -#define sk_SRP_user_pwd_find(sk, ptr) OPENSSL_sk_find(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr)) -#define sk_SRP_user_pwd_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr)) -#define sk_SRP_user_pwd_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr), pnum) -#define sk_SRP_user_pwd_sort(sk) OPENSSL_sk_sort(ossl_check_SRP_user_pwd_sk_type(sk)) -#define sk_SRP_user_pwd_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SRP_user_pwd_sk_type(sk)) -#define sk_SRP_user_pwd_dup(sk) ((STACK_OF(SRP_user_pwd) *)OPENSSL_sk_dup(ossl_check_const_SRP_user_pwd_sk_type(sk))) -#define sk_SRP_user_pwd_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SRP_user_pwd) *)OPENSSL_sk_deep_copy(ossl_check_const_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_copyfunc_type(copyfunc), ossl_check_SRP_user_pwd_freefunc_type(freefunc))) -#define sk_SRP_user_pwd_set_cmp_func(sk, cmp) ((sk_SRP_user_pwd_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_compfunc_type(cmp))) - - -OSSL_DEPRECATEDIN_3_0 -SRP_user_pwd *SRP_user_pwd_new(void); -OSSL_DEPRECATEDIN_3_0 -void SRP_user_pwd_free(SRP_user_pwd *user_pwd); - -OSSL_DEPRECATEDIN_3_0 -void SRP_user_pwd_set_gN(SRP_user_pwd *user_pwd, const BIGNUM *g, - const BIGNUM *N); -OSSL_DEPRECATEDIN_3_0 -int SRP_user_pwd_set1_ids(SRP_user_pwd *user_pwd, const char *id, - const char *info); -OSSL_DEPRECATEDIN_3_0 -int SRP_user_pwd_set0_sv(SRP_user_pwd *user_pwd, BIGNUM *s, BIGNUM *v); - -typedef struct SRP_VBASE_st { - STACK_OF(SRP_user_pwd) *users_pwd; - STACK_OF(SRP_gN_cache) *gN_cache; -/* to simulate a user */ - char *seed_key; - const BIGNUM *default_g; - const BIGNUM *default_N; -} SRP_VBASE; - -/* - * Internal structure storing N and g pair - */ -typedef struct SRP_gN_st { - char *id; - const BIGNUM *g; - const BIGNUM *N; -} SRP_gN; -SKM_DEFINE_STACK_OF_INTERNAL(SRP_gN, SRP_gN, SRP_gN) -#define sk_SRP_gN_num(sk) OPENSSL_sk_num(ossl_check_const_SRP_gN_sk_type(sk)) -#define sk_SRP_gN_value(sk, idx) ((SRP_gN *)OPENSSL_sk_value(ossl_check_const_SRP_gN_sk_type(sk), (idx))) -#define sk_SRP_gN_new(cmp) ((STACK_OF(SRP_gN) *)OPENSSL_sk_new(ossl_check_SRP_gN_compfunc_type(cmp))) -#define sk_SRP_gN_new_null() ((STACK_OF(SRP_gN) *)OPENSSL_sk_new_null()) -#define sk_SRP_gN_new_reserve(cmp, n) ((STACK_OF(SRP_gN) *)OPENSSL_sk_new_reserve(ossl_check_SRP_gN_compfunc_type(cmp), (n))) -#define sk_SRP_gN_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SRP_gN_sk_type(sk), (n)) -#define sk_SRP_gN_free(sk) OPENSSL_sk_free(ossl_check_SRP_gN_sk_type(sk)) -#define sk_SRP_gN_zero(sk) OPENSSL_sk_zero(ossl_check_SRP_gN_sk_type(sk)) -#define sk_SRP_gN_delete(sk, i) ((SRP_gN *)OPENSSL_sk_delete(ossl_check_SRP_gN_sk_type(sk), (i))) -#define sk_SRP_gN_delete_ptr(sk, ptr) ((SRP_gN *)OPENSSL_sk_delete_ptr(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr))) -#define sk_SRP_gN_push(sk, ptr) OPENSSL_sk_push(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr)) -#define sk_SRP_gN_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr)) -#define sk_SRP_gN_pop(sk) ((SRP_gN *)OPENSSL_sk_pop(ossl_check_SRP_gN_sk_type(sk))) -#define sk_SRP_gN_shift(sk) ((SRP_gN *)OPENSSL_sk_shift(ossl_check_SRP_gN_sk_type(sk))) -#define sk_SRP_gN_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_freefunc_type(freefunc)) -#define sk_SRP_gN_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr), (idx)) -#define sk_SRP_gN_set(sk, idx, ptr) ((SRP_gN *)OPENSSL_sk_set(ossl_check_SRP_gN_sk_type(sk), (idx), ossl_check_SRP_gN_type(ptr))) -#define sk_SRP_gN_find(sk, ptr) OPENSSL_sk_find(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr)) -#define sk_SRP_gN_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr)) -#define sk_SRP_gN_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr), pnum) -#define sk_SRP_gN_sort(sk) OPENSSL_sk_sort(ossl_check_SRP_gN_sk_type(sk)) -#define sk_SRP_gN_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SRP_gN_sk_type(sk)) -#define sk_SRP_gN_dup(sk) ((STACK_OF(SRP_gN) *)OPENSSL_sk_dup(ossl_check_const_SRP_gN_sk_type(sk))) -#define sk_SRP_gN_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SRP_gN) *)OPENSSL_sk_deep_copy(ossl_check_const_SRP_gN_sk_type(sk), ossl_check_SRP_gN_copyfunc_type(copyfunc), ossl_check_SRP_gN_freefunc_type(freefunc))) -#define sk_SRP_gN_set_cmp_func(sk, cmp) ((sk_SRP_gN_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_compfunc_type(cmp))) - - - -OSSL_DEPRECATEDIN_3_0 -SRP_VBASE *SRP_VBASE_new(char *seed_key); -OSSL_DEPRECATEDIN_3_0 -void SRP_VBASE_free(SRP_VBASE *vb); -OSSL_DEPRECATEDIN_3_0 -int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file); - -OSSL_DEPRECATEDIN_3_0 -int SRP_VBASE_add0_user(SRP_VBASE *vb, SRP_user_pwd *user_pwd); - -/* NOTE: unlike in SRP_VBASE_get_by_user, caller owns the returned pointer.*/ -OSSL_DEPRECATEDIN_3_0 -SRP_user_pwd *SRP_VBASE_get1_by_user(SRP_VBASE *vb, char *username); - -OSSL_DEPRECATEDIN_3_0 -char *SRP_create_verifier_ex(const char *user, const char *pass, char **salt, - char **verifier, const char *N, const char *g, - OSSL_LIB_CTX *libctx, const char *propq); -OSSL_DEPRECATEDIN_3_0 -char *SRP_create_verifier(const char *user, const char *pass, char **salt, - char **verifier, const char *N, const char *g); -OSSL_DEPRECATEDIN_3_0 -int SRP_create_verifier_BN_ex(const char *user, const char *pass, BIGNUM **salt, - BIGNUM **verifier, const BIGNUM *N, - const BIGNUM *g, OSSL_LIB_CTX *libctx, - const char *propq); -OSSL_DEPRECATEDIN_3_0 -int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, - BIGNUM **verifier, const BIGNUM *N, - const BIGNUM *g); - -# define SRP_NO_ERROR 0 -# define SRP_ERR_VBASE_INCOMPLETE_FILE 1 -# define SRP_ERR_VBASE_BN_LIB 2 -# define SRP_ERR_OPEN_FILE 3 -# define SRP_ERR_MEMORY 4 - -# define DB_srptype 0 -# define DB_srpverifier 1 -# define DB_srpsalt 2 -# define DB_srpid 3 -# define DB_srpgN 4 -# define DB_srpinfo 5 -# undef DB_NUMBER -# define DB_NUMBER 6 - -# define DB_SRP_INDEX 'I' -# define DB_SRP_VALID 'V' -# define DB_SRP_REVOKED 'R' -# define DB_SRP_MODIF 'v' - -/* see srp.c */ -OSSL_DEPRECATEDIN_3_0 -char *SRP_check_known_gN_param(const BIGNUM *g, const BIGNUM *N); -OSSL_DEPRECATEDIN_3_0 -SRP_gN *SRP_get_default_gN(const char *id); - -/* server side .... */ -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_server_key(const BIGNUM *A, const BIGNUM *v, const BIGNUM *u, - const BIGNUM *b, const BIGNUM *N); -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_B_ex(const BIGNUM *b, const BIGNUM *N, const BIGNUM *g, - const BIGNUM *v, OSSL_LIB_CTX *libctx, const char *propq); -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_B(const BIGNUM *b, const BIGNUM *N, const BIGNUM *g, - const BIGNUM *v); - -OSSL_DEPRECATEDIN_3_0 -int SRP_Verify_A_mod_N(const BIGNUM *A, const BIGNUM *N); -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_u_ex(const BIGNUM *A, const BIGNUM *B, const BIGNUM *N, - OSSL_LIB_CTX *libctx, const char *propq); -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_u(const BIGNUM *A, const BIGNUM *B, const BIGNUM *N); - -/* client side .... */ - -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_x_ex(const BIGNUM *s, const char *user, const char *pass, - OSSL_LIB_CTX *libctx, const char *propq); -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_x(const BIGNUM *s, const char *user, const char *pass); -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_A(const BIGNUM *a, const BIGNUM *N, const BIGNUM *g); -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_client_key_ex(const BIGNUM *N, const BIGNUM *B, const BIGNUM *g, - const BIGNUM *x, const BIGNUM *a, const BIGNUM *u, - OSSL_LIB_CTX *libctx, const char *propq); -OSSL_DEPRECATEDIN_3_0 -BIGNUM *SRP_Calc_client_key(const BIGNUM *N, const BIGNUM *B, const BIGNUM *g, - const BIGNUM *x, const BIGNUM *a, const BIGNUM *u); -OSSL_DEPRECATEDIN_3_0 -int SRP_Verify_B_mod_N(const BIGNUM *B, const BIGNUM *N); - -# define SRP_MINIMAL_N 1024 - -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -/* This method ignores the configured seed and fails for an unknown user. */ -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 -SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/srtp.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/srtp.h deleted file mode 100644 index 2c2c334..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/srtp.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * DTLS code by Eric Rescorla - * - * Copyright (C) 2006, Network Resonance, Inc. Copyright (C) 2011, RTFM, Inc. - */ - -#ifndef OPENSSL_SRTP_H -# define OPENSSL_SRTP_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_D1_SRTP_H -# endif - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define SRTP_AES128_CM_SHA1_80 0x0001 -# define SRTP_AES128_CM_SHA1_32 0x0002 -# define SRTP_AES128_F8_SHA1_80 0x0003 -# define SRTP_AES128_F8_SHA1_32 0x0004 -# define SRTP_NULL_SHA1_80 0x0005 -# define SRTP_NULL_SHA1_32 0x0006 - -/* AEAD SRTP protection profiles from RFC 7714 */ -# define SRTP_AEAD_AES_128_GCM 0x0007 -# define SRTP_AEAD_AES_256_GCM 0x0008 - -/* DOUBLE AEAD SRTP protection profiles from RFC 8723 */ -# define SRTP_DOUBLE_AEAD_AES_128_GCM_AEAD_AES_128_GCM 0x0009 -# define SRTP_DOUBLE_AEAD_AES_256_GCM_AEAD_AES_256_GCM 0x000A - -/* ARIA SRTP protection profiles from RFC 8269 */ -# define SRTP_ARIA_128_CTR_HMAC_SHA1_80 0x000B -# define SRTP_ARIA_128_CTR_HMAC_SHA1_32 0x000C -# define SRTP_ARIA_256_CTR_HMAC_SHA1_80 0x000D -# define SRTP_ARIA_256_CTR_HMAC_SHA1_32 0x000E -# define SRTP_AEAD_ARIA_128_GCM 0x000F -# define SRTP_AEAD_ARIA_256_GCM 0x0010 - -# ifndef OPENSSL_NO_SRTP - -__owur int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles); -__owur int SSL_set_tlsext_use_srtp(SSL *ssl, const char *profiles); - -__owur STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl); -__owur SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); - -# endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/ssl.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/ssl.h deleted file mode 100644 index cffe987..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/ssl.h +++ /dev/null @@ -1,2940 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\ssl.h.in - * - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * Copyright 2005 Nokia. All rights reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_SSL_H -# define OPENSSL_SSL_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_SSL_H -# endif - -# include -# include -# include -# include -# include -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# include -# include -# include -# endif -# include -# include -# include -# include - -# include -# include -# include -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* OpenSSL version number for ASN.1 encoding of the session information */ -/*- - * Version 0 - initial version - * Version 1 - added the optional peer certificate - */ -# define SSL_SESSION_ASN1_VERSION 0x0001 - -# define SSL_MAX_SSL_SESSION_ID_LENGTH 32 -# define SSL_MAX_SID_CTX_LENGTH 32 - -# define SSL_MIN_RSA_MODULUS_LENGTH_IN_BYTES (512/8) -# define SSL_MAX_KEY_ARG_LENGTH 8 -/* SSL_MAX_MASTER_KEY_LENGTH is defined in prov_ssl.h */ - -/* The maximum number of encrypt/decrypt pipelines we can support */ -# define SSL_MAX_PIPELINES 32 - -/* text strings for the ciphers */ - -/* These are used to specify which ciphers to use and not to use */ - -# define SSL_TXT_LOW "LOW" -# define SSL_TXT_MEDIUM "MEDIUM" -# define SSL_TXT_HIGH "HIGH" -# define SSL_TXT_FIPS "FIPS" - -# define SSL_TXT_aNULL "aNULL" -# define SSL_TXT_eNULL "eNULL" -# define SSL_TXT_NULL "NULL" - -# define SSL_TXT_kRSA "kRSA" -# define SSL_TXT_kDHr "kDHr"/* this cipher class has been removed */ -# define SSL_TXT_kDHd "kDHd"/* this cipher class has been removed */ -# define SSL_TXT_kDH "kDH"/* this cipher class has been removed */ -# define SSL_TXT_kEDH "kEDH"/* alias for kDHE */ -# define SSL_TXT_kDHE "kDHE" -# define SSL_TXT_kECDHr "kECDHr"/* this cipher class has been removed */ -# define SSL_TXT_kECDHe "kECDHe"/* this cipher class has been removed */ -# define SSL_TXT_kECDH "kECDH"/* this cipher class has been removed */ -# define SSL_TXT_kEECDH "kEECDH"/* alias for kECDHE */ -# define SSL_TXT_kECDHE "kECDHE" -# define SSL_TXT_kPSK "kPSK" -# define SSL_TXT_kRSAPSK "kRSAPSK" -# define SSL_TXT_kECDHEPSK "kECDHEPSK" -# define SSL_TXT_kDHEPSK "kDHEPSK" -# define SSL_TXT_kGOST "kGOST" -# define SSL_TXT_kGOST18 "kGOST18" -# define SSL_TXT_kSRP "kSRP" - -# define SSL_TXT_aRSA "aRSA" -# define SSL_TXT_aDSS "aDSS" -# define SSL_TXT_aDH "aDH"/* this cipher class has been removed */ -# define SSL_TXT_aECDH "aECDH"/* this cipher class has been removed */ -# define SSL_TXT_aECDSA "aECDSA" -# define SSL_TXT_aPSK "aPSK" -# define SSL_TXT_aGOST94 "aGOST94" -# define SSL_TXT_aGOST01 "aGOST01" -# define SSL_TXT_aGOST12 "aGOST12" -# define SSL_TXT_aGOST "aGOST" -# define SSL_TXT_aSRP "aSRP" - -# define SSL_TXT_DSS "DSS" -# define SSL_TXT_DH "DH" -# define SSL_TXT_DHE "DHE"/* same as "kDHE:-ADH" */ -# define SSL_TXT_EDH "EDH"/* alias for DHE */ -# define SSL_TXT_ADH "ADH" -# define SSL_TXT_RSA "RSA" -# define SSL_TXT_ECDH "ECDH" -# define SSL_TXT_EECDH "EECDH"/* alias for ECDHE" */ -# define SSL_TXT_ECDHE "ECDHE"/* same as "kECDHE:-AECDH" */ -# define SSL_TXT_AECDH "AECDH" -# define SSL_TXT_ECDSA "ECDSA" -# define SSL_TXT_PSK "PSK" -# define SSL_TXT_SRP "SRP" - -# define SSL_TXT_DES "DES" -# define SSL_TXT_3DES "3DES" -# define SSL_TXT_RC4 "RC4" -# define SSL_TXT_RC2 "RC2" -# define SSL_TXT_IDEA "IDEA" -# define SSL_TXT_SEED "SEED" -# define SSL_TXT_AES128 "AES128" -# define SSL_TXT_AES256 "AES256" -# define SSL_TXT_AES "AES" -# define SSL_TXT_AES_GCM "AESGCM" -# define SSL_TXT_AES_CCM "AESCCM" -# define SSL_TXT_AES_CCM_8 "AESCCM8" -# define SSL_TXT_CAMELLIA128 "CAMELLIA128" -# define SSL_TXT_CAMELLIA256 "CAMELLIA256" -# define SSL_TXT_CAMELLIA "CAMELLIA" -# define SSL_TXT_CHACHA20 "CHACHA20" -# define SSL_TXT_GOST "GOST89" -# define SSL_TXT_ARIA "ARIA" -# define SSL_TXT_ARIA_GCM "ARIAGCM" -# define SSL_TXT_ARIA128 "ARIA128" -# define SSL_TXT_ARIA256 "ARIA256" -# define SSL_TXT_GOST2012_GOST8912_GOST8912 "GOST2012-GOST8912-GOST8912" -# define SSL_TXT_CBC "CBC" - -# define SSL_TXT_MD5 "MD5" -# define SSL_TXT_SHA1 "SHA1" -# define SSL_TXT_SHA "SHA"/* same as "SHA1" */ -# define SSL_TXT_GOST94 "GOST94" -# define SSL_TXT_GOST89MAC "GOST89MAC" -# define SSL_TXT_GOST12 "GOST12" -# define SSL_TXT_GOST89MAC12 "GOST89MAC12" -# define SSL_TXT_SHA256 "SHA256" -# define SSL_TXT_SHA384 "SHA384" - -# define SSL_TXT_SSLV3 "SSLv3" -# define SSL_TXT_TLSV1 "TLSv1" -# define SSL_TXT_TLSV1_1 "TLSv1.1" -# define SSL_TXT_TLSV1_2 "TLSv1.2" - -# define SSL_TXT_ALL "ALL" - -/*- - * COMPLEMENTOF* definitions. These identifiers are used to (de-select) - * ciphers normally not being used. - * Example: "RC4" will activate all ciphers using RC4 including ciphers - * without authentication, which would normally disabled by DEFAULT (due - * the "!ADH" being part of default). Therefore "RC4:!COMPLEMENTOFDEFAULT" - * will make sure that it is also disabled in the specific selection. - * COMPLEMENTOF* identifiers are portable between version, as adjustments - * to the default cipher setup will also be included here. - * - * COMPLEMENTOFDEFAULT does not experience the same special treatment that - * DEFAULT gets, as only selection is being done and no sorting as needed - * for DEFAULT. - */ -# define SSL_TXT_CMPALL "COMPLEMENTOFALL" -# define SSL_TXT_CMPDEF "COMPLEMENTOFDEFAULT" - -/* - * The following cipher list is used by default. It also is substituted when - * an application-defined cipher list string starts with 'DEFAULT'. - * This applies to ciphersuites for TLSv1.2 and below. - * DEPRECATED IN 3.0.0, in favor of OSSL_default_cipher_list() - * Update both macro and function simultaneously - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SSL_DEFAULT_CIPHER_LIST "ALL:!COMPLEMENTOFDEFAULT:!eNULL" -/* - * This is the default set of TLSv1.3 ciphersuites - * DEPRECATED IN 3.0.0, in favor of OSSL_default_ciphersuites() - * Update both macro and function simultaneously - */ -# define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:" \ - "TLS_CHACHA20_POLY1305_SHA256:" \ - "TLS_AES_128_GCM_SHA256" -# endif -/* - * As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always - * starts with a reasonable order, and all we have to do for DEFAULT is - * throwing out anonymous and unencrypted ciphersuites! (The latter are not - * actually enabled by ALL, but "ALL:RSA" would enable some of them.) - */ - -/* Used in SSL_set_shutdown()/SSL_get_shutdown(); */ -# define SSL_SENT_SHUTDOWN 1 -# define SSL_RECEIVED_SHUTDOWN 2 - -#ifdef __cplusplus -} -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1 -# define SSL_FILETYPE_PEM X509_FILETYPE_PEM - -/* - * This is needed to stop compilers complaining about the 'struct ssl_st *' - * function parameters used to prototype callbacks in SSL_CTX. - */ -typedef struct ssl_st *ssl_crock_st; -typedef struct tls_session_ticket_ext_st TLS_SESSION_TICKET_EXT; -typedef struct ssl_method_st SSL_METHOD; -typedef struct ssl_cipher_st SSL_CIPHER; -typedef struct ssl_session_st SSL_SESSION; -typedef struct tls_sigalgs_st TLS_SIGALGS; -typedef struct ssl_conf_ctx_st SSL_CONF_CTX; - -STACK_OF(SSL_CIPHER); - -/* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ -typedef struct srtp_protection_profile_st { - const char *name; - unsigned long id; -} SRTP_PROTECTION_PROFILE; -SKM_DEFINE_STACK_OF_INTERNAL(SRTP_PROTECTION_PROFILE, SRTP_PROTECTION_PROFILE, SRTP_PROTECTION_PROFILE) -#define sk_SRTP_PROTECTION_PROFILE_num(sk) OPENSSL_sk_num(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk)) -#define sk_SRTP_PROTECTION_PROFILE_value(sk, idx) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_value(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk), (idx))) -#define sk_SRTP_PROTECTION_PROFILE_new(cmp) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_new(ossl_check_SRTP_PROTECTION_PROFILE_compfunc_type(cmp))) -#define sk_SRTP_PROTECTION_PROFILE_new_null() ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_new_null()) -#define sk_SRTP_PROTECTION_PROFILE_new_reserve(cmp, n) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_new_reserve(ossl_check_SRTP_PROTECTION_PROFILE_compfunc_type(cmp), (n))) -#define sk_SRTP_PROTECTION_PROFILE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), (n)) -#define sk_SRTP_PROTECTION_PROFILE_free(sk) OPENSSL_sk_free(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk)) -#define sk_SRTP_PROTECTION_PROFILE_zero(sk) OPENSSL_sk_zero(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk)) -#define sk_SRTP_PROTECTION_PROFILE_delete(sk, i) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_delete(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), (i))) -#define sk_SRTP_PROTECTION_PROFILE_delete_ptr(sk, ptr) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_delete_ptr(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr))) -#define sk_SRTP_PROTECTION_PROFILE_push(sk, ptr) OPENSSL_sk_push(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr)) -#define sk_SRTP_PROTECTION_PROFILE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr)) -#define sk_SRTP_PROTECTION_PROFILE_pop(sk) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_pop(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk))) -#define sk_SRTP_PROTECTION_PROFILE_shift(sk) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_shift(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk))) -#define sk_SRTP_PROTECTION_PROFILE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_freefunc_type(freefunc)) -#define sk_SRTP_PROTECTION_PROFILE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr), (idx)) -#define sk_SRTP_PROTECTION_PROFILE_set(sk, idx, ptr) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_set(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), (idx), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr))) -#define sk_SRTP_PROTECTION_PROFILE_find(sk, ptr) OPENSSL_sk_find(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr)) -#define sk_SRTP_PROTECTION_PROFILE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr)) -#define sk_SRTP_PROTECTION_PROFILE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr), pnum) -#define sk_SRTP_PROTECTION_PROFILE_sort(sk) OPENSSL_sk_sort(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk)) -#define sk_SRTP_PROTECTION_PROFILE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk)) -#define sk_SRTP_PROTECTION_PROFILE_dup(sk) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_dup(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk))) -#define sk_SRTP_PROTECTION_PROFILE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_deep_copy(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_copyfunc_type(copyfunc), ossl_check_SRTP_PROTECTION_PROFILE_freefunc_type(freefunc))) -#define sk_SRTP_PROTECTION_PROFILE_set_cmp_func(sk, cmp) ((sk_SRTP_PROTECTION_PROFILE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_compfunc_type(cmp))) - - - -typedef int (*tls_session_ticket_ext_cb_fn)(SSL *s, const unsigned char *data, - int len, void *arg); -typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, - STACK_OF(SSL_CIPHER) *peer_ciphers, - const SSL_CIPHER **cipher, void *arg); - -/* Extension context codes */ -/* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x00001 -/* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x00002 -/* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 -/* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x00008 -/* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 -/* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x00020 -/* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 -#define SSL_EXT_CLIENT_HELLO 0x00080 -/* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 -#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 -/* When sending a raw public key in a certificate message */ -#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 - -/* Typedefs for handling custom extensions */ - -typedef int (*custom_ext_add_cb)(SSL *s, unsigned int ext_type, - const unsigned char **out, size_t *outlen, - int *al, void *add_arg); - -typedef void (*custom_ext_free_cb)(SSL *s, unsigned int ext_type, - const unsigned char *out, void *add_arg); - -typedef int (*custom_ext_parse_cb)(SSL *s, unsigned int ext_type, - const unsigned char *in, size_t inlen, - int *al, void *parse_arg); - - -typedef int (*SSL_custom_ext_add_cb_ex)(SSL *s, unsigned int ext_type, - unsigned int context, - const unsigned char **out, - size_t *outlen, X509 *x, - size_t chainidx, - int *al, void *add_arg); - -typedef void (*SSL_custom_ext_free_cb_ex)(SSL *s, unsigned int ext_type, - unsigned int context, - const unsigned char *out, - void *add_arg); - -typedef int (*SSL_custom_ext_parse_cb_ex)(SSL *s, unsigned int ext_type, - unsigned int context, - const unsigned char *in, - size_t inlen, X509 *x, - size_t chainidx, - int *al, void *parse_arg); - -/* Typedef for verification callback */ -typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); - -/* Typedef for SSL async callback */ -typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); - -#define SSL_OP_BIT(n) ((uint64_t)1 << (uint64_t)n) - -/* - * SSL/TLS connection options. - */ - /* Disable Extended master secret */ -# define SSL_OP_NO_EXTENDED_MASTER_SECRET SSL_OP_BIT(0) - /* Cleanse plaintext copies of data delivered to the application */ -# define SSL_OP_CLEANSE_PLAINTEXT SSL_OP_BIT(1) - /* Allow initial connection to servers that don't support RI */ -# define SSL_OP_LEGACY_SERVER_CONNECT SSL_OP_BIT(2) - /* Enable support for Kernel TLS */ -# define SSL_OP_ENABLE_KTLS SSL_OP_BIT(3) -# define SSL_OP_TLSEXT_PADDING SSL_OP_BIT(4) -# define SSL_OP_SAFARI_ECDHE_ECDSA_BUG SSL_OP_BIT(6) -# define SSL_OP_IGNORE_UNEXPECTED_EOF SSL_OP_BIT(7) -# define SSL_OP_ALLOW_CLIENT_RENEGOTIATION SSL_OP_BIT(8) -# define SSL_OP_DISABLE_TLSEXT_CA_NAMES SSL_OP_BIT(9) - /* In TLSv1.3 allow a non-(ec)dhe based kex_mode */ -# define SSL_OP_ALLOW_NO_DHE_KEX SSL_OP_BIT(10) - /* - * Disable SSL 3.0/TLS 1.0 CBC vulnerability workaround that was added - * in OpenSSL 0.9.6d. Usually (depending on the application protocol) - * the workaround is not needed. Unfortunately some broken SSL/TLS - * implementations cannot handle it at all, which is why we include it - * in SSL_OP_ALL. Added in 0.9.6e - */ -# define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS SSL_OP_BIT(11) - /* DTLS options */ -# define SSL_OP_NO_QUERY_MTU SSL_OP_BIT(12) - /* Turn on Cookie Exchange (on relevant for servers) */ -# define SSL_OP_COOKIE_EXCHANGE SSL_OP_BIT(13) - /* Don't use RFC4507 ticket extension */ -# define SSL_OP_NO_TICKET SSL_OP_BIT(14) -# ifndef OPENSSL_NO_DTLS1_METHOD - /* - * Use Cisco's version identifier of DTLS_BAD_VER - * (only with deprecated DTLSv1_client_method()) - */ -# define SSL_OP_CISCO_ANYCONNECT SSL_OP_BIT(15) -# endif - /* As server, disallow session resumption on renegotiation */ -# define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION SSL_OP_BIT(16) - /* Don't use compression even if supported */ -# define SSL_OP_NO_COMPRESSION SSL_OP_BIT(17) - /* Permit unsafe legacy renegotiation */ -# define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION SSL_OP_BIT(18) - /* Disable encrypt-then-mac */ -# define SSL_OP_NO_ENCRYPT_THEN_MAC SSL_OP_BIT(19) - /* - * Enable TLSv1.3 Compatibility mode. This is on by default. A future - * version of OpenSSL may have this disabled by default. - */ -# define SSL_OP_ENABLE_MIDDLEBOX_COMPAT SSL_OP_BIT(20) - /* - * Prioritize Chacha20Poly1305 when client does. - * Modifies SSL_OP_SERVER_PREFERENCE - */ -# define SSL_OP_PRIORITIZE_CHACHA SSL_OP_BIT(21) - /* - * Set on servers to choose cipher, curve or group according to server's - * preferences. - */ -# define SSL_OP_SERVER_PREFERENCE SSL_OP_BIT(22) - /* Equivalent definition for backwards compatibility: */ -# define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_SERVER_PREFERENCE - /* - * If set, a server will allow a client to issue an SSLv3.0 version - * number as latest version supported in the premaster secret, even when - * TLSv1.0 (version 3.1) was announced in the client hello. Normally - * this is forbidden to prevent version rollback attacks. - */ -# define SSL_OP_TLS_ROLLBACK_BUG SSL_OP_BIT(23) - /* - * Switches off automatic TLSv1.3 anti-replay protection for early data. - * This is a server-side option only (no effect on the client). - */ -# define SSL_OP_NO_ANTI_REPLAY SSL_OP_BIT(24) -# define SSL_OP_NO_SSLv3 SSL_OP_BIT(25) -# define SSL_OP_NO_TLSv1 SSL_OP_BIT(26) -# define SSL_OP_NO_TLSv1_2 SSL_OP_BIT(27) -# define SSL_OP_NO_TLSv1_1 SSL_OP_BIT(28) -# define SSL_OP_NO_TLSv1_3 SSL_OP_BIT(29) -# define SSL_OP_NO_DTLSv1 SSL_OP_BIT(26) -# define SSL_OP_NO_DTLSv1_2 SSL_OP_BIT(27) - /* Disallow all renegotiation */ -# define SSL_OP_NO_RENEGOTIATION SSL_OP_BIT(30) - /* - * Make server add server-hello extension from early version of - * cryptopro draft, when GOST ciphersuite is negotiated. Required for - * interoperability with CryptoPro CSP 3.x - */ -# define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) -/* - * Disable RFC8879 certificate compression - * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, - * and ignore the extension when received. - * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and - * subsequently indicating that receiving is not supported - */ -# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) -# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) - /* Enable KTLS TX zerocopy on Linux */ -# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) -# define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) -# define SSL_OP_LEGACY_EC_POINT_FORMATS SSL_OP_BIT(36) - -/* - * Option "collections." - */ -# define SSL_OP_NO_SSL_MASK \ - ( SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1 \ - | SSL_OP_NO_TLSv1_2 | SSL_OP_NO_TLSv1_3 ) -# define SSL_OP_NO_DTLS_MASK \ - ( SSL_OP_NO_DTLSv1 | SSL_OP_NO_DTLSv1_2 ) - -/* Various bug workarounds that should be rather harmless. */ -# define SSL_OP_ALL \ - ( SSL_OP_CRYPTOPRO_TLSEXT_BUG | SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS \ - | SSL_OP_TLSEXT_PADDING | SSL_OP_SAFARI_ECDHE_ECDSA_BUG ) - -/* - * OBSOLETE OPTIONS retained for compatibility - */ - -# define SSL_OP_MICROSOFT_SESS_ID_BUG 0x0 -# define SSL_OP_NETSCAPE_CHALLENGE_BUG 0x0 -# define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x0 -# define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x0 -# define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x0 -# define SSL_OP_MSIE_SSLV2_RSA_PADDING 0x0 -# define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x0 -# define SSL_OP_TLS_D5_BUG 0x0 -# define SSL_OP_TLS_BLOCK_PADDING_BUG 0x0 -# define SSL_OP_SINGLE_ECDH_USE 0x0 -# define SSL_OP_SINGLE_DH_USE 0x0 -# define SSL_OP_EPHEMERAL_RSA 0x0 -# define SSL_OP_NO_SSLv2 0x0 -# define SSL_OP_PKCS1_CHECK_1 0x0 -# define SSL_OP_PKCS1_CHECK_2 0x0 -# define SSL_OP_NETSCAPE_CA_DN_BUG 0x0 -# define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x0 - -/* - * Allow SSL_write(..., n) to return r with 0 < r < n (i.e. report success - * when just a single record has been written): - */ -# define SSL_MODE_ENABLE_PARTIAL_WRITE 0x00000001U -/* - * Make it possible to retry SSL_write() with changed buffer location (buffer - * contents must stay the same!); this is not the default to avoid the - * misconception that non-blocking SSL_write() behaves like non-blocking - * write(): - */ -# define SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER 0x00000002U -/* - * Never bother the application with retries if the transport is blocking: - */ -# define SSL_MODE_AUTO_RETRY 0x00000004U -/* Don't attempt to automatically build certificate chain */ -# define SSL_MODE_NO_AUTO_CHAIN 0x00000008U -/* - * Save RAM by releasing read and write buffers when they're empty. (SSL3 and - * TLS only.) Released buffers are freed. - */ -# define SSL_MODE_RELEASE_BUFFERS 0x00000010U -/* - * Send the current time in the Random fields of the ClientHello and - * ServerHello records for compatibility with hypothetical implementations - * that require it. - */ -# define SSL_MODE_SEND_CLIENTHELLO_TIME 0x00000020U -# define SSL_MODE_SEND_SERVERHELLO_TIME 0x00000040U -/* - * Send TLS_FALLBACK_SCSV in the ClientHello. To be set only by applications - * that reconnect with a downgraded protocol version; see - * draft-ietf-tls-downgrade-scsv-00 for details. DO NOT ENABLE THIS if your - * application attempts a normal handshake. Only use this in explicit - * fallback retries, following the guidance in - * draft-ietf-tls-downgrade-scsv-00. - */ -# define SSL_MODE_SEND_FALLBACK_SCSV 0x00000080U -/* - * Support Asynchronous operation - */ -# define SSL_MODE_ASYNC 0x00000100U - -/* - * When using DTLS/SCTP, include the terminating zero in the label - * used for computing the endpoint-pair shared secret. Required for - * interoperability with implementations having this bug like these - * older version of OpenSSL: - * - OpenSSL 1.0.0 series - * - OpenSSL 1.0.1 series - * - OpenSSL 1.0.2 series - * - OpenSSL 1.1.0 series - * - OpenSSL 1.1.1 and 1.1.1a - */ -# define SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG 0x00000400U - -/* Cert related flags */ -/* - * Many implementations ignore some aspects of the TLS standards such as - * enforcing certificate chain algorithms. When this is set we enforce them. - */ -# define SSL_CERT_FLAG_TLS_STRICT 0x00000001U - -/* Suite B modes, takes same values as certificate verify flags */ -# define SSL_CERT_FLAG_SUITEB_128_LOS_ONLY 0x10000 -/* Suite B 192 bit only mode */ -# define SSL_CERT_FLAG_SUITEB_192_LOS 0x20000 -/* Suite B 128 bit mode allowing 192 bit algorithms */ -# define SSL_CERT_FLAG_SUITEB_128_LOS 0x30000 - -/* Perform all sorts of protocol violations for testing purposes */ -# define SSL_CERT_FLAG_BROKEN_PROTOCOL 0x10000000 - -/* Flags for building certificate chains */ -/* Treat any existing certificates as untrusted CAs */ -# define SSL_BUILD_CHAIN_FLAG_UNTRUSTED 0x1 -/* Don't include root CA in chain */ -# define SSL_BUILD_CHAIN_FLAG_NO_ROOT 0x2 -/* Just check certificates already there */ -# define SSL_BUILD_CHAIN_FLAG_CHECK 0x4 -/* Ignore verification errors */ -# define SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR 0x8 -/* Clear verification errors from queue */ -# define SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR 0x10 - -/* Flags returned by SSL_check_chain */ -/* Certificate can be used with this session */ -# define CERT_PKEY_VALID 0x1 -/* Certificate can also be used for signing */ -# define CERT_PKEY_SIGN 0x2 -/* EE certificate signing algorithm OK */ -# define CERT_PKEY_EE_SIGNATURE 0x10 -/* CA signature algorithms OK */ -# define CERT_PKEY_CA_SIGNATURE 0x20 -/* EE certificate parameters OK */ -# define CERT_PKEY_EE_PARAM 0x40 -/* CA certificate parameters OK */ -# define CERT_PKEY_CA_PARAM 0x80 -/* Signing explicitly allowed as opposed to SHA1 fallback */ -# define CERT_PKEY_EXPLICIT_SIGN 0x100 -/* Client CA issuer names match (always set for server cert) */ -# define CERT_PKEY_ISSUER_NAME 0x200 -/* Cert type matches client types (always set for server cert) */ -# define CERT_PKEY_CERT_TYPE 0x400 -/* Cert chain suitable to Suite B */ -# define CERT_PKEY_SUITEB 0x800 -/* Cert pkey valid for raw public key use */ -# define CERT_PKEY_RPK 0x1000 - -# define SSL_CONF_FLAG_CMDLINE 0x1 -# define SSL_CONF_FLAG_FILE 0x2 -# define SSL_CONF_FLAG_CLIENT 0x4 -# define SSL_CONF_FLAG_SERVER 0x8 -# define SSL_CONF_FLAG_SHOW_ERRORS 0x10 -# define SSL_CONF_FLAG_CERTIFICATE 0x20 -# define SSL_CONF_FLAG_REQUIRE_PRIVATE 0x40 -/* Configuration value types */ -# define SSL_CONF_TYPE_UNKNOWN 0x0 -# define SSL_CONF_TYPE_STRING 0x1 -# define SSL_CONF_TYPE_FILE 0x2 -# define SSL_CONF_TYPE_DIR 0x3 -# define SSL_CONF_TYPE_NONE 0x4 -# define SSL_CONF_TYPE_STORE 0x5 - -/* Maximum length of the application-controlled segment of a a TLSv1.3 cookie */ -# define SSL_COOKIE_LENGTH 4096 - -/* - * Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value, they - * cannot be used to clear bits. - */ - -uint64_t SSL_CTX_get_options(const SSL_CTX *ctx); -uint64_t SSL_get_options(const SSL *s); -uint64_t SSL_CTX_clear_options(SSL_CTX *ctx, uint64_t op); -uint64_t SSL_clear_options(SSL *s, uint64_t op); -uint64_t SSL_CTX_set_options(SSL_CTX *ctx, uint64_t op); -uint64_t SSL_set_options(SSL *s, uint64_t op); - -# define SSL_CTX_set_mode(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL) -# define SSL_CTX_clear_mode(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_MODE,(op),NULL) -# define SSL_CTX_get_mode(ctx) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,0,NULL) -# define SSL_clear_mode(ssl,op) \ - SSL_ctrl((ssl),SSL_CTRL_CLEAR_MODE,(op),NULL) -# define SSL_set_mode(ssl,op) \ - SSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL) -# define SSL_get_mode(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_MODE,0,NULL) -# define SSL_set_mtu(ssl, mtu) \ - SSL_ctrl((ssl),SSL_CTRL_SET_MTU,(mtu),NULL) -# define DTLS_set_link_mtu(ssl, mtu) \ - SSL_ctrl((ssl),DTLS_CTRL_SET_LINK_MTU,(mtu),NULL) -# define DTLS_get_link_min_mtu(ssl) \ - SSL_ctrl((ssl),DTLS_CTRL_GET_LINK_MIN_MTU,0,NULL) - -# define SSL_get_secure_renegotiation_support(ssl) \ - SSL_ctrl((ssl), SSL_CTRL_GET_RI_SUPPORT, 0, NULL) - -# define SSL_CTX_set_cert_flags(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CERT_FLAGS,(op),NULL) -# define SSL_set_cert_flags(s,op) \ - SSL_ctrl((s),SSL_CTRL_CERT_FLAGS,(op),NULL) -# define SSL_CTX_clear_cert_flags(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) -# define SSL_clear_cert_flags(s,op) \ - SSL_ctrl((s),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) - -void SSL_CTX_set_msg_callback(SSL_CTX *ctx, - void (*cb) (int write_p, int version, - int content_type, const void *buf, - size_t len, SSL *ssl, void *arg)); -void SSL_set_msg_callback(SSL *ssl, - void (*cb) (int write_p, int version, - int content_type, const void *buf, - size_t len, SSL *ssl, void *arg)); -# define SSL_CTX_set_msg_callback_arg(ctx, arg) SSL_CTX_ctrl((ctx), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) -# define SSL_set_msg_callback_arg(ssl, arg) SSL_ctrl((ssl), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) - -# define SSL_get_extms_support(s) \ - SSL_ctrl((s),SSL_CTRL_GET_EXTMS_SUPPORT,0,NULL) - -# ifndef OPENSSL_NO_SRP -/* see tls_srp.c */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 __owur int SSL_SRP_CTX_init(SSL *s); -OSSL_DEPRECATEDIN_3_0 __owur int SSL_CTX_SRP_CTX_init(SSL_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 int SSL_SRP_CTX_free(SSL *ctx); -OSSL_DEPRECATEDIN_3_0 int SSL_CTX_SRP_CTX_free(SSL_CTX *ctx); -OSSL_DEPRECATEDIN_3_0 __owur int SSL_srp_server_param_with_username(SSL *s, - int *ad); -OSSL_DEPRECATEDIN_3_0 __owur int SRP_Calc_A_param(SSL *s); -# endif -# endif - -/* 100k max cert list */ -# define SSL_MAX_CERT_LIST_DEFAULT (1024*100) - -# define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT (1024*20) - -/* - * This callback type is used inside SSL_CTX, SSL, and in the functions that - * set them. It is used to override the generation of SSL/TLS session IDs in - * a server. Return value should be zero on an error, non-zero to proceed. - * Also, callbacks should themselves check if the id they generate is unique - * otherwise the SSL handshake will fail with an error - callbacks can do - * this using the 'ssl' value they're passed by; - * SSL_has_matching_session_id(ssl, id, *id_len) The length value passed in - * is set at the maximum size the session ID can be. In SSLv3/TLSv1 it is 32 - * bytes. The callback can alter this length to be less if desired. It is - * also an error for the callback to set the size to zero. - */ -typedef int (*GEN_SESSION_CB) (SSL *ssl, unsigned char *id, - unsigned int *id_len); - -# define SSL_SESS_CACHE_OFF 0x0000 -# define SSL_SESS_CACHE_CLIENT 0x0001 -# define SSL_SESS_CACHE_SERVER 0x0002 -# define SSL_SESS_CACHE_BOTH (SSL_SESS_CACHE_CLIENT|SSL_SESS_CACHE_SERVER) -# define SSL_SESS_CACHE_NO_AUTO_CLEAR 0x0080 -/* enough comments already ... see SSL_CTX_set_session_cache_mode(3) */ -# define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP 0x0100 -# define SSL_SESS_CACHE_NO_INTERNAL_STORE 0x0200 -# define SSL_SESS_CACHE_NO_INTERNAL \ - (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP|SSL_SESS_CACHE_NO_INTERNAL_STORE) -# define SSL_SESS_CACHE_UPDATE_TIME 0x0400 - -LHASH_OF(SSL_SESSION) *SSL_CTX_sessions(SSL_CTX *ctx); -# define SSL_CTX_sess_number(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_NUMBER,0,NULL) -# define SSL_CTX_sess_connect(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT,0,NULL) -# define SSL_CTX_sess_connect_good(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_GOOD,0,NULL) -# define SSL_CTX_sess_connect_renegotiate(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_RENEGOTIATE,0,NULL) -# define SSL_CTX_sess_accept(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT,0,NULL) -# define SSL_CTX_sess_accept_renegotiate(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_RENEGOTIATE,0,NULL) -# define SSL_CTX_sess_accept_good(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_GOOD,0,NULL) -# define SSL_CTX_sess_hits(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_HIT,0,NULL) -# define SSL_CTX_sess_cb_hits(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CB_HIT,0,NULL) -# define SSL_CTX_sess_misses(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_MISSES,0,NULL) -# define SSL_CTX_sess_timeouts(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_TIMEOUTS,0,NULL) -# define SSL_CTX_sess_cache_full(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CACHE_FULL,0,NULL) - -void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, - int (*new_session_cb) (struct ssl_st *ssl, - SSL_SESSION *sess)); -int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, - SSL_SESSION *sess); -void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, - void (*remove_session_cb) (struct ssl_ctx_st - *ctx, - SSL_SESSION *sess)); -void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (struct ssl_ctx_st *ctx, - SSL_SESSION *sess); -void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, - SSL_SESSION *(*get_session_cb) (struct ssl_st - *ssl, - const unsigned char - *data, int len, - int *copy)); -SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, - const unsigned char *data, - int len, int *copy); -void SSL_CTX_set_info_callback(SSL_CTX *ctx, - void (*cb) (const SSL *ssl, int type, int val)); -void (*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int type, - int val); -void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, - int (*client_cert_cb) (SSL *ssl, X509 **x509, - EVP_PKEY **pkey)); -int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509, - EVP_PKEY **pkey); -# ifndef OPENSSL_NO_ENGINE -__owur int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e); -# endif -void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, - int (*app_gen_cookie_cb) (SSL *ssl, - unsigned char - *cookie, - unsigned int - *cookie_len)); -void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, - int (*app_verify_cookie_cb) (SSL *ssl, - const unsigned - char *cookie, - unsigned int - cookie_len)); - -void SSL_CTX_set_stateless_cookie_generate_cb( - SSL_CTX *ctx, - int (*gen_stateless_cookie_cb) (SSL *ssl, - unsigned char *cookie, - size_t *cookie_len)); -void SSL_CTX_set_stateless_cookie_verify_cb( - SSL_CTX *ctx, - int (*verify_stateless_cookie_cb) (SSL *ssl, - const unsigned char *cookie, - size_t cookie_len)); -# ifndef OPENSSL_NO_NEXTPROTONEG - -typedef int (*SSL_CTX_npn_advertised_cb_func)(SSL *ssl, - const unsigned char **out, - unsigned int *outlen, - void *arg); -void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s, - SSL_CTX_npn_advertised_cb_func cb, - void *arg); -# define SSL_CTX_set_npn_advertised_cb SSL_CTX_set_next_protos_advertised_cb - -typedef int (*SSL_CTX_npn_select_cb_func)(SSL *s, - unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, - void *arg); -void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, - SSL_CTX_npn_select_cb_func cb, - void *arg); -# define SSL_CTX_set_npn_select_cb SSL_CTX_set_next_proto_select_cb - -void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, - unsigned *len); -# define SSL_get0_npn_negotiated SSL_get0_next_proto_negotiated -# endif - -__owur int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, - const unsigned char *server, unsigned int server_len, - const unsigned char *client, - unsigned int client_len); - -# define OPENSSL_NPN_UNSUPPORTED 0 -# define OPENSSL_NPN_NEGOTIATED 1 -# define OPENSSL_NPN_NO_OVERLAP 2 - -__owur int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, - unsigned int protos_len); -__owur int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, - unsigned int protos_len); -typedef int (*SSL_CTX_alpn_select_cb_func)(SSL *ssl, - const unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, - void *arg); -void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, - SSL_CTX_alpn_select_cb_func cb, - void *arg); -void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data, - unsigned int *len); - -# ifndef OPENSSL_NO_PSK -/* - * the maximum length of the buffer given to callbacks containing the - * resulting identity/psk - */ -# define PSK_MAX_IDENTITY_LEN 256 -# define PSK_MAX_PSK_LEN 512 -typedef unsigned int (*SSL_psk_client_cb_func)(SSL *ssl, - const char *hint, - char *identity, - unsigned int max_identity_len, - unsigned char *psk, - unsigned int max_psk_len); -void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, SSL_psk_client_cb_func cb); -void SSL_set_psk_client_callback(SSL *ssl, SSL_psk_client_cb_func cb); - -typedef unsigned int (*SSL_psk_server_cb_func)(SSL *ssl, - const char *identity, - unsigned char *psk, - unsigned int max_psk_len); -void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, SSL_psk_server_cb_func cb); -void SSL_set_psk_server_callback(SSL *ssl, SSL_psk_server_cb_func cb); - -__owur int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint); -__owur int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint); -const char *SSL_get_psk_identity_hint(const SSL *s); -const char *SSL_get_psk_identity(const SSL *s); -# endif - -typedef int (*SSL_psk_find_session_cb_func)(SSL *ssl, - const unsigned char *identity, - size_t identity_len, - SSL_SESSION **sess); -typedef int (*SSL_psk_use_session_cb_func)(SSL *ssl, const EVP_MD *md, - const unsigned char **id, - size_t *idlen, - SSL_SESSION **sess); - -void SSL_set_psk_find_session_callback(SSL *s, SSL_psk_find_session_cb_func cb); -void SSL_CTX_set_psk_find_session_callback(SSL_CTX *ctx, - SSL_psk_find_session_cb_func cb); -void SSL_set_psk_use_session_callback(SSL *s, SSL_psk_use_session_cb_func cb); -void SSL_CTX_set_psk_use_session_callback(SSL_CTX *ctx, - SSL_psk_use_session_cb_func cb); - -/* Register callbacks to handle custom TLS Extensions for client or server. */ - -__owur int SSL_CTX_has_client_custom_ext(const SSL_CTX *ctx, - unsigned int ext_type); - -__owur int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, - unsigned int ext_type, - custom_ext_add_cb add_cb, - custom_ext_free_cb free_cb, - void *add_arg, - custom_ext_parse_cb parse_cb, - void *parse_arg); - -__owur int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, - unsigned int ext_type, - custom_ext_add_cb add_cb, - custom_ext_free_cb free_cb, - void *add_arg, - custom_ext_parse_cb parse_cb, - void *parse_arg); - -__owur int SSL_CTX_add_custom_ext(SSL_CTX *ctx, unsigned int ext_type, - unsigned int context, - SSL_custom_ext_add_cb_ex add_cb, - SSL_custom_ext_free_cb_ex free_cb, - void *add_arg, - SSL_custom_ext_parse_cb_ex parse_cb, - void *parse_arg); - -__owur int SSL_extension_supported(unsigned int ext_type); - -# define SSL_NOTHING 1 -# define SSL_WRITING 2 -# define SSL_READING 3 -# define SSL_X509_LOOKUP 4 -# define SSL_ASYNC_PAUSED 5 -# define SSL_ASYNC_NO_JOBS 6 -# define SSL_CLIENT_HELLO_CB 7 -# define SSL_RETRY_VERIFY 8 - -/* These will only be used when doing non-blocking IO */ -# define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING) -# define SSL_want_read(s) (SSL_want(s) == SSL_READING) -# define SSL_want_write(s) (SSL_want(s) == SSL_WRITING) -# define SSL_want_x509_lookup(s) (SSL_want(s) == SSL_X509_LOOKUP) -# define SSL_want_retry_verify(s) (SSL_want(s) == SSL_RETRY_VERIFY) -# define SSL_want_async(s) (SSL_want(s) == SSL_ASYNC_PAUSED) -# define SSL_want_async_job(s) (SSL_want(s) == SSL_ASYNC_NO_JOBS) -# define SSL_want_client_hello_cb(s) (SSL_want(s) == SSL_CLIENT_HELLO_CB) - -# define SSL_MAC_FLAG_READ_MAC_STREAM 1 -# define SSL_MAC_FLAG_WRITE_MAC_STREAM 2 -# define SSL_MAC_FLAG_READ_MAC_TLSTREE 4 -# define SSL_MAC_FLAG_WRITE_MAC_TLSTREE 8 - -/* - * A callback for logging out TLS key material. This callback should log out - * |line| followed by a newline. - */ -typedef void (*SSL_CTX_keylog_cb_func)(const SSL *ssl, const char *line); - -/* - * SSL_CTX_set_keylog_callback configures a callback to log key material. This - * is intended for debugging use with tools like Wireshark. The cb function - * should log line followed by a newline. - */ -void SSL_CTX_set_keylog_callback(SSL_CTX *ctx, SSL_CTX_keylog_cb_func cb); - -/* - * SSL_CTX_get_keylog_callback returns the callback configured by - * SSL_CTX_set_keylog_callback. - */ -SSL_CTX_keylog_cb_func SSL_CTX_get_keylog_callback(const SSL_CTX *ctx); - -int SSL_CTX_set_max_early_data(SSL_CTX *ctx, uint32_t max_early_data); -uint32_t SSL_CTX_get_max_early_data(const SSL_CTX *ctx); -int SSL_set_max_early_data(SSL *s, uint32_t max_early_data); -uint32_t SSL_get_max_early_data(const SSL *s); -int SSL_CTX_set_recv_max_early_data(SSL_CTX *ctx, uint32_t recv_max_early_data); -uint32_t SSL_CTX_get_recv_max_early_data(const SSL_CTX *ctx); -int SSL_set_recv_max_early_data(SSL *s, uint32_t recv_max_early_data); -uint32_t SSL_get_recv_max_early_data(const SSL *s); - -#ifdef __cplusplus -} -#endif - -# include -# include -# include /* This is mostly sslv3 with a few tweaks */ -# include /* Datagram TLS */ -# include /* Support for the use_srtp extension */ -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * These need to be after the above set of includes due to a compiler bug - * in VisualStudio 2015 - */ -SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) -#define sk_SSL_CIPHER_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_CIPHER_sk_type(sk)) -#define sk_SSL_CIPHER_value(sk, idx) ((const SSL_CIPHER *)OPENSSL_sk_value(ossl_check_const_SSL_CIPHER_sk_type(sk), (idx))) -#define sk_SSL_CIPHER_new(cmp) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_new(ossl_check_SSL_CIPHER_compfunc_type(cmp))) -#define sk_SSL_CIPHER_new_null() ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_new_null()) -#define sk_SSL_CIPHER_new_reserve(cmp, n) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_new_reserve(ossl_check_SSL_CIPHER_compfunc_type(cmp), (n))) -#define sk_SSL_CIPHER_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_CIPHER_sk_type(sk), (n)) -#define sk_SSL_CIPHER_free(sk) OPENSSL_sk_free(ossl_check_SSL_CIPHER_sk_type(sk)) -#define sk_SSL_CIPHER_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_CIPHER_sk_type(sk)) -#define sk_SSL_CIPHER_delete(sk, i) ((const SSL_CIPHER *)OPENSSL_sk_delete(ossl_check_SSL_CIPHER_sk_type(sk), (i))) -#define sk_SSL_CIPHER_delete_ptr(sk, ptr) ((const SSL_CIPHER *)OPENSSL_sk_delete_ptr(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr))) -#define sk_SSL_CIPHER_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr)) -#define sk_SSL_CIPHER_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr)) -#define sk_SSL_CIPHER_pop(sk) ((const SSL_CIPHER *)OPENSSL_sk_pop(ossl_check_SSL_CIPHER_sk_type(sk))) -#define sk_SSL_CIPHER_shift(sk) ((const SSL_CIPHER *)OPENSSL_sk_shift(ossl_check_SSL_CIPHER_sk_type(sk))) -#define sk_SSL_CIPHER_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_freefunc_type(freefunc)) -#define sk_SSL_CIPHER_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr), (idx)) -#define sk_SSL_CIPHER_set(sk, idx, ptr) ((const SSL_CIPHER *)OPENSSL_sk_set(ossl_check_SSL_CIPHER_sk_type(sk), (idx), ossl_check_SSL_CIPHER_type(ptr))) -#define sk_SSL_CIPHER_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr)) -#define sk_SSL_CIPHER_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr)) -#define sk_SSL_CIPHER_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr), pnum) -#define sk_SSL_CIPHER_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_CIPHER_sk_type(sk)) -#define sk_SSL_CIPHER_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_CIPHER_sk_type(sk)) -#define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) -#define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) -#define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) - - -/* compatibility */ -# define SSL_set_app_data(s,arg) (SSL_set_ex_data(s,0,(char *)(arg))) -# define SSL_get_app_data(s) (SSL_get_ex_data(s,0)) -# define SSL_SESSION_set_app_data(s,a) (SSL_SESSION_set_ex_data(s,0, \ - (char *)(a))) -# define SSL_SESSION_get_app_data(s) (SSL_SESSION_get_ex_data(s,0)) -# define SSL_CTX_get_app_data(ctx) (SSL_CTX_get_ex_data(ctx,0)) -# define SSL_CTX_set_app_data(ctx,arg) (SSL_CTX_set_ex_data(ctx,0, \ - (char *)(arg))) -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 void SSL_set_debug(SSL *s, int debug); -# endif - -/* TLSv1.3 KeyUpdate message types */ -/* -1 used so that this is an invalid value for the on-the-wire protocol */ -#define SSL_KEY_UPDATE_NONE -1 -/* Values as defined for the on-the-wire protocol */ -#define SSL_KEY_UPDATE_NOT_REQUESTED 0 -#define SSL_KEY_UPDATE_REQUESTED 1 - -/* - * The valid handshake states (one for each type message sent and one for each - * type of message received). There are also two "special" states: - * TLS = TLS or DTLS state - * DTLS = DTLS specific state - * CR/SR = Client Read/Server Read - * CW/SW = Client Write/Server Write - * - * The "special" states are: - * TLS_ST_BEFORE = No handshake has been initiated yet - * TLS_ST_OK = A handshake has been successfully completed - */ -typedef enum { - TLS_ST_BEFORE, - TLS_ST_OK, - DTLS_ST_CR_HELLO_VERIFY_REQUEST, - TLS_ST_CR_SRVR_HELLO, - TLS_ST_CR_CERT, - TLS_ST_CR_COMP_CERT, - TLS_ST_CR_CERT_STATUS, - TLS_ST_CR_KEY_EXCH, - TLS_ST_CR_CERT_REQ, - TLS_ST_CR_SRVR_DONE, - TLS_ST_CR_SESSION_TICKET, - TLS_ST_CR_CHANGE, - TLS_ST_CR_FINISHED, - TLS_ST_CW_CLNT_HELLO, - TLS_ST_CW_CERT, - TLS_ST_CW_COMP_CERT, - TLS_ST_CW_KEY_EXCH, - TLS_ST_CW_CERT_VRFY, - TLS_ST_CW_CHANGE, - TLS_ST_CW_NEXT_PROTO, - TLS_ST_CW_FINISHED, - TLS_ST_SW_HELLO_REQ, - TLS_ST_SR_CLNT_HELLO, - DTLS_ST_SW_HELLO_VERIFY_REQUEST, - TLS_ST_SW_SRVR_HELLO, - TLS_ST_SW_CERT, - TLS_ST_SW_COMP_CERT, - TLS_ST_SW_KEY_EXCH, - TLS_ST_SW_CERT_REQ, - TLS_ST_SW_SRVR_DONE, - TLS_ST_SR_CERT, - TLS_ST_SR_COMP_CERT, - TLS_ST_SR_KEY_EXCH, - TLS_ST_SR_CERT_VRFY, - TLS_ST_SR_NEXT_PROTO, - TLS_ST_SR_CHANGE, - TLS_ST_SR_FINISHED, - TLS_ST_SW_SESSION_TICKET, - TLS_ST_SW_CERT_STATUS, - TLS_ST_SW_CHANGE, - TLS_ST_SW_FINISHED, - TLS_ST_SW_ENCRYPTED_EXTENSIONS, - TLS_ST_CR_ENCRYPTED_EXTENSIONS, - TLS_ST_CR_CERT_VRFY, - TLS_ST_SW_CERT_VRFY, - TLS_ST_CR_HELLO_REQ, - TLS_ST_SW_KEY_UPDATE, - TLS_ST_CW_KEY_UPDATE, - TLS_ST_SR_KEY_UPDATE, - TLS_ST_CR_KEY_UPDATE, - TLS_ST_EARLY_DATA, - TLS_ST_PENDING_EARLY_DATA_END, - TLS_ST_CW_END_OF_EARLY_DATA, - TLS_ST_SR_END_OF_EARLY_DATA -} OSSL_HANDSHAKE_STATE; - -/* - * Most of the following state values are no longer used and are defined to be - * the closest equivalent value in the current state machine code. Not all - * defines have an equivalent and are set to a dummy value (-1). SSL_ST_CONNECT - * and SSL_ST_ACCEPT are still in use in the definition of SSL_CB_ACCEPT_LOOP, - * SSL_CB_ACCEPT_EXIT, SSL_CB_CONNECT_LOOP and SSL_CB_CONNECT_EXIT. - */ - -# define SSL_ST_CONNECT 0x1000 -# define SSL_ST_ACCEPT 0x2000 - -# define SSL_ST_MASK 0x0FFF - -# define SSL_CB_LOOP 0x01 -# define SSL_CB_EXIT 0x02 -# define SSL_CB_READ 0x04 -# define SSL_CB_WRITE 0x08 -# define SSL_CB_ALERT 0x4000/* used in callback */ -# define SSL_CB_READ_ALERT (SSL_CB_ALERT|SSL_CB_READ) -# define SSL_CB_WRITE_ALERT (SSL_CB_ALERT|SSL_CB_WRITE) -# define SSL_CB_ACCEPT_LOOP (SSL_ST_ACCEPT|SSL_CB_LOOP) -# define SSL_CB_ACCEPT_EXIT (SSL_ST_ACCEPT|SSL_CB_EXIT) -# define SSL_CB_CONNECT_LOOP (SSL_ST_CONNECT|SSL_CB_LOOP) -# define SSL_CB_CONNECT_EXIT (SSL_ST_CONNECT|SSL_CB_EXIT) -# define SSL_CB_HANDSHAKE_START 0x10 -# define SSL_CB_HANDSHAKE_DONE 0x20 - -/* Is the SSL_connection established? */ -# define SSL_in_connect_init(a) (SSL_in_init(a) && !SSL_is_server(a)) -# define SSL_in_accept_init(a) (SSL_in_init(a) && SSL_is_server(a)) -int SSL_in_init(const SSL *s); -int SSL_in_before(const SSL *s); -int SSL_is_init_finished(const SSL *s); - -/* - * The following 3 states are kept in ssl->rlayer.rstate when reads fail, you - * should not need these - */ -# define SSL_ST_READ_HEADER 0xF0 -# define SSL_ST_READ_BODY 0xF1 -# define SSL_ST_READ_DONE 0xF2 - -/*- - * Obtain latest Finished message - * -- that we sent (SSL_get_finished) - * -- that we expected from peer (SSL_get_peer_finished). - * Returns length (0 == no Finished so far), copies up to 'count' bytes. - */ -size_t SSL_get_finished(const SSL *s, void *buf, size_t count); -size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count); - -/* - * use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 3 options are - * 'ored' with SSL_VERIFY_PEER if they are desired - */ -# define SSL_VERIFY_NONE 0x00 -# define SSL_VERIFY_PEER 0x01 -# define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02 -# define SSL_VERIFY_CLIENT_ONCE 0x04 -# define SSL_VERIFY_POST_HANDSHAKE 0x08 - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define OpenSSL_add_ssl_algorithms() SSL_library_init() -# define SSLeay_add_ssl_algorithms() SSL_library_init() -# endif - -/* More backward compatibility */ -# define SSL_get_cipher(s) \ - SSL_CIPHER_get_name(SSL_get_current_cipher(s)) -# define SSL_get_cipher_bits(s,np) \ - SSL_CIPHER_get_bits(SSL_get_current_cipher(s),np) -# define SSL_get_cipher_version(s) \ - SSL_CIPHER_get_version(SSL_get_current_cipher(s)) -# define SSL_get_cipher_name(s) \ - SSL_CIPHER_get_name(SSL_get_current_cipher(s)) -# define SSL_get_time(a) SSL_SESSION_get_time(a) -# define SSL_set_time(a,b) SSL_SESSION_set_time((a),(b)) -# define SSL_get_timeout(a) SSL_SESSION_get_timeout(a) -# define SSL_set_timeout(a,b) SSL_SESSION_set_timeout((a),(b)) - -# define d2i_SSL_SESSION_bio(bp,s_id) ASN1_d2i_bio_of(SSL_SESSION,SSL_SESSION_new,d2i_SSL_SESSION,bp,s_id) -# define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio_of(SSL_SESSION,i2d_SSL_SESSION,bp,s_id) - -DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) -# define SSL_AD_REASON_OFFSET 1000/* offset to get SSL_R_... value - * from SSL_AD_... */ -/* These alert types are for SSLv3 and TLSv1 */ -# define SSL_AD_CLOSE_NOTIFY SSL3_AD_CLOSE_NOTIFY -/* fatal */ -# define SSL_AD_UNEXPECTED_MESSAGE SSL3_AD_UNEXPECTED_MESSAGE -/* fatal */ -# define SSL_AD_BAD_RECORD_MAC SSL3_AD_BAD_RECORD_MAC -# define SSL_AD_DECRYPTION_FAILED TLS1_AD_DECRYPTION_FAILED -# define SSL_AD_RECORD_OVERFLOW TLS1_AD_RECORD_OVERFLOW -/* fatal */ -# define SSL_AD_DECOMPRESSION_FAILURE SSL3_AD_DECOMPRESSION_FAILURE -/* fatal */ -# define SSL_AD_HANDSHAKE_FAILURE SSL3_AD_HANDSHAKE_FAILURE -/* Not for TLS */ -# define SSL_AD_NO_CERTIFICATE SSL3_AD_NO_CERTIFICATE -# define SSL_AD_BAD_CERTIFICATE SSL3_AD_BAD_CERTIFICATE -# define SSL_AD_UNSUPPORTED_CERTIFICATE SSL3_AD_UNSUPPORTED_CERTIFICATE -# define SSL_AD_CERTIFICATE_REVOKED SSL3_AD_CERTIFICATE_REVOKED -# define SSL_AD_CERTIFICATE_EXPIRED SSL3_AD_CERTIFICATE_EXPIRED -# define SSL_AD_CERTIFICATE_UNKNOWN SSL3_AD_CERTIFICATE_UNKNOWN -/* fatal */ -# define SSL_AD_ILLEGAL_PARAMETER SSL3_AD_ILLEGAL_PARAMETER -/* fatal */ -# define SSL_AD_UNKNOWN_CA TLS1_AD_UNKNOWN_CA -/* fatal */ -# define SSL_AD_ACCESS_DENIED TLS1_AD_ACCESS_DENIED -/* fatal */ -# define SSL_AD_DECODE_ERROR TLS1_AD_DECODE_ERROR -# define SSL_AD_DECRYPT_ERROR TLS1_AD_DECRYPT_ERROR -/* fatal */ -# define SSL_AD_EXPORT_RESTRICTION TLS1_AD_EXPORT_RESTRICTION -/* fatal */ -# define SSL_AD_PROTOCOL_VERSION TLS1_AD_PROTOCOL_VERSION -/* fatal */ -# define SSL_AD_INSUFFICIENT_SECURITY TLS1_AD_INSUFFICIENT_SECURITY -/* fatal */ -# define SSL_AD_INTERNAL_ERROR TLS1_AD_INTERNAL_ERROR -# define SSL_AD_USER_CANCELLED TLS1_AD_USER_CANCELLED -# define SSL_AD_NO_RENEGOTIATION TLS1_AD_NO_RENEGOTIATION -# define SSL_AD_MISSING_EXTENSION TLS13_AD_MISSING_EXTENSION -# define SSL_AD_CERTIFICATE_REQUIRED TLS13_AD_CERTIFICATE_REQUIRED -# define SSL_AD_UNSUPPORTED_EXTENSION TLS1_AD_UNSUPPORTED_EXTENSION -# define SSL_AD_CERTIFICATE_UNOBTAINABLE TLS1_AD_CERTIFICATE_UNOBTAINABLE -# define SSL_AD_UNRECOGNIZED_NAME TLS1_AD_UNRECOGNIZED_NAME -# define SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE -# define SSL_AD_BAD_CERTIFICATE_HASH_VALUE TLS1_AD_BAD_CERTIFICATE_HASH_VALUE -/* fatal */ -# define SSL_AD_UNKNOWN_PSK_IDENTITY TLS1_AD_UNKNOWN_PSK_IDENTITY -/* fatal */ -# define SSL_AD_INAPPROPRIATE_FALLBACK TLS1_AD_INAPPROPRIATE_FALLBACK -# define SSL_AD_NO_APPLICATION_PROTOCOL TLS1_AD_NO_APPLICATION_PROTOCOL -# define SSL_ERROR_NONE 0 -# define SSL_ERROR_SSL 1 -# define SSL_ERROR_WANT_READ 2 -# define SSL_ERROR_WANT_WRITE 3 -# define SSL_ERROR_WANT_X509_LOOKUP 4 -# define SSL_ERROR_SYSCALL 5/* look at error stack/return - * value/errno */ -# define SSL_ERROR_ZERO_RETURN 6 -# define SSL_ERROR_WANT_CONNECT 7 -# define SSL_ERROR_WANT_ACCEPT 8 -# define SSL_ERROR_WANT_ASYNC 9 -# define SSL_ERROR_WANT_ASYNC_JOB 10 -# define SSL_ERROR_WANT_CLIENT_HELLO_CB 11 -# define SSL_ERROR_WANT_RETRY_VERIFY 12 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SSL_CTRL_SET_TMP_DH 3 -# define SSL_CTRL_SET_TMP_ECDH 4 -# define SSL_CTRL_SET_TMP_DH_CB 6 -# endif - -# define SSL_CTRL_GET_CLIENT_CERT_REQUEST 9 -# define SSL_CTRL_GET_NUM_RENEGOTIATIONS 10 -# define SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 11 -# define SSL_CTRL_GET_TOTAL_RENEGOTIATIONS 12 -# define SSL_CTRL_GET_FLAGS 13 -# define SSL_CTRL_EXTRA_CHAIN_CERT 14 -# define SSL_CTRL_SET_MSG_CALLBACK 15 -# define SSL_CTRL_SET_MSG_CALLBACK_ARG 16 -/* only applies to datagram connections */ -# define SSL_CTRL_SET_MTU 17 -/* Stats */ -# define SSL_CTRL_SESS_NUMBER 20 -# define SSL_CTRL_SESS_CONNECT 21 -# define SSL_CTRL_SESS_CONNECT_GOOD 22 -# define SSL_CTRL_SESS_CONNECT_RENEGOTIATE 23 -# define SSL_CTRL_SESS_ACCEPT 24 -# define SSL_CTRL_SESS_ACCEPT_GOOD 25 -# define SSL_CTRL_SESS_ACCEPT_RENEGOTIATE 26 -# define SSL_CTRL_SESS_HIT 27 -# define SSL_CTRL_SESS_CB_HIT 28 -# define SSL_CTRL_SESS_MISSES 29 -# define SSL_CTRL_SESS_TIMEOUTS 30 -# define SSL_CTRL_SESS_CACHE_FULL 31 -# define SSL_CTRL_MODE 33 -# define SSL_CTRL_GET_READ_AHEAD 40 -# define SSL_CTRL_SET_READ_AHEAD 41 -# define SSL_CTRL_SET_SESS_CACHE_SIZE 42 -# define SSL_CTRL_GET_SESS_CACHE_SIZE 43 -# define SSL_CTRL_SET_SESS_CACHE_MODE 44 -# define SSL_CTRL_GET_SESS_CACHE_MODE 45 -# define SSL_CTRL_GET_MAX_CERT_LIST 50 -# define SSL_CTRL_SET_MAX_CERT_LIST 51 -# define SSL_CTRL_SET_MAX_SEND_FRAGMENT 52 -/* see tls1.h for macros based on these */ -# define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB 53 -# define SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG 54 -# define SSL_CTRL_SET_TLSEXT_HOSTNAME 55 -# define SSL_CTRL_SET_TLSEXT_DEBUG_CB 56 -# define SSL_CTRL_SET_TLSEXT_DEBUG_ARG 57 -# define SSL_CTRL_GET_TLSEXT_TICKET_KEYS 58 -# define SSL_CTRL_SET_TLSEXT_TICKET_KEYS 59 -/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT 60 */ -/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB 61 */ -/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG 62 */ -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB 63 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG 64 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE 65 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS 66 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS 67 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS 68 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS 69 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP 70 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP 71 -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB 72 -# endif -# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB 75 -# define SSL_CTRL_SET_SRP_VERIFY_PARAM_CB 76 -# define SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB 77 -# define SSL_CTRL_SET_SRP_ARG 78 -# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME 79 -# define SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH 80 -# define SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD 81 -# define DTLS_CTRL_GET_TIMEOUT 73 -# define DTLS_CTRL_HANDLE_TIMEOUT 74 -# define SSL_CTRL_GET_RI_SUPPORT 76 -# define SSL_CTRL_CLEAR_MODE 78 -# define SSL_CTRL_SET_NOT_RESUMABLE_SESS_CB 79 -# define SSL_CTRL_GET_EXTRA_CHAIN_CERTS 82 -# define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS 83 -# define SSL_CTRL_CHAIN 88 -# define SSL_CTRL_CHAIN_CERT 89 -# define SSL_CTRL_GET_GROUPS 90 -# define SSL_CTRL_SET_GROUPS 91 -# define SSL_CTRL_SET_GROUPS_LIST 92 -# define SSL_CTRL_GET_SHARED_GROUP 93 -# define SSL_CTRL_SET_SIGALGS 97 -# define SSL_CTRL_SET_SIGALGS_LIST 98 -# define SSL_CTRL_CERT_FLAGS 99 -# define SSL_CTRL_CLEAR_CERT_FLAGS 100 -# define SSL_CTRL_SET_CLIENT_SIGALGS 101 -# define SSL_CTRL_SET_CLIENT_SIGALGS_LIST 102 -# define SSL_CTRL_GET_CLIENT_CERT_TYPES 103 -# define SSL_CTRL_SET_CLIENT_CERT_TYPES 104 -# define SSL_CTRL_BUILD_CERT_CHAIN 105 -# define SSL_CTRL_SET_VERIFY_CERT_STORE 106 -# define SSL_CTRL_SET_CHAIN_CERT_STORE 107 -# define SSL_CTRL_GET_PEER_SIGNATURE_NID 108 -# define SSL_CTRL_GET_PEER_TMP_KEY 109 -# define SSL_CTRL_GET_RAW_CIPHERLIST 110 -# define SSL_CTRL_GET_EC_POINT_FORMATS 111 -# define SSL_CTRL_GET_CHAIN_CERTS 115 -# define SSL_CTRL_SELECT_CURRENT_CERT 116 -# define SSL_CTRL_SET_CURRENT_CERT 117 -# define SSL_CTRL_SET_DH_AUTO 118 -# define DTLS_CTRL_SET_LINK_MTU 120 -# define DTLS_CTRL_GET_LINK_MIN_MTU 121 -# define SSL_CTRL_GET_EXTMS_SUPPORT 122 -# define SSL_CTRL_SET_MIN_PROTO_VERSION 123 -# define SSL_CTRL_SET_MAX_PROTO_VERSION 124 -# define SSL_CTRL_SET_SPLIT_SEND_FRAGMENT 125 -# define SSL_CTRL_SET_MAX_PIPELINES 126 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE 127 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB 128 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG 129 -# define SSL_CTRL_GET_MIN_PROTO_VERSION 130 -# define SSL_CTRL_GET_MAX_PROTO_VERSION 131 -# define SSL_CTRL_GET_SIGNATURE_NID 132 -# define SSL_CTRL_GET_TMP_KEY 133 -# define SSL_CTRL_GET_NEGOTIATED_GROUP 134 -# define SSL_CTRL_GET_IANA_GROUPS 135 -# define SSL_CTRL_SET_RETRY_VERIFY 136 -# define SSL_CTRL_GET_VERIFY_CERT_STORE 137 -# define SSL_CTRL_GET_CHAIN_CERT_STORE 138 -# define SSL_CTRL_GET0_IMPLEMENTED_GROUPS 139 -# define SSL_CTRL_GET_SIGNATURE_NAME 140 -# define SSL_CTRL_GET_PEER_SIGNATURE_NAME 141 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP_EX 142 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP_EX 143 -# define SSL_CERT_SET_FIRST 1 -# define SSL_CERT_SET_NEXT 2 -# define SSL_CERT_SET_SERVER 3 -# define DTLSv1_get_timeout(ssl, arg) \ - SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)(arg)) -# define DTLSv1_handle_timeout(ssl) \ - SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, NULL) -# define SSL_num_renegotiations(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_GET_NUM_RENEGOTIATIONS,0,NULL) -# define SSL_clear_num_renegotiations(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS,0,NULL) -# define SSL_total_renegotiations(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_GET_TOTAL_RENEGOTIATIONS,0,NULL) -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SSL_CTX_set_tmp_dh(ctx,dh) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)(dh)) -# endif -# define SSL_CTX_set_dh_auto(ctx, onoff) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_DH_AUTO,onoff,NULL) -# define SSL_set_dh_auto(s, onoff) \ - SSL_ctrl(s,SSL_CTRL_SET_DH_AUTO,onoff,NULL) -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SSL_set_tmp_dh(ssl,dh) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)(dh)) -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SSL_CTX_set_tmp_ecdh(ctx,ecdh) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)(ecdh)) -# define SSL_set_tmp_ecdh(ssl,ecdh) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH,0,(char *)(ecdh)) -# endif -# define SSL_CTX_add_extra_chain_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)(x509)) -# define SSL_CTX_get_extra_chain_certs(ctx,px509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,0,px509) -# define SSL_CTX_get_extra_chain_certs_only(ctx,px509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,1,px509) -# define SSL_CTX_clear_extra_chain_certs(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS,0,NULL) -# define SSL_CTX_set0_chain(ctx,sk) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)(sk)) -# define SSL_CTX_set1_chain(ctx,sk) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)(sk)) -# define SSL_CTX_add0_chain_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)(x509)) -# define SSL_CTX_add1_chain_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)(x509)) -# define SSL_CTX_get0_chain_certs(ctx,px509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509) -# define SSL_CTX_clear_chain_certs(ctx) \ - SSL_CTX_set0_chain(ctx,NULL) -# define SSL_CTX_build_cert_chain(ctx, flags) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) -# define SSL_CTX_select_current_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509)) -# define SSL_CTX_set_current_cert(ctx, op) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL) -# define SSL_CTX_set0_verify_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)(st)) -# define SSL_CTX_set1_verify_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st)) -# define SSL_CTX_get0_verify_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_VERIFY_CERT_STORE,0,(char *)(st)) -# define SSL_CTX_set0_chain_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)(st)) -# define SSL_CTX_set1_chain_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)(st)) -# define SSL_CTX_get0_chain_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERT_STORE,0,(char *)(st)) -# define SSL_set0_chain(s,sk) \ - SSL_ctrl(s,SSL_CTRL_CHAIN,0,(char *)(sk)) -# define SSL_set1_chain(s,sk) \ - SSL_ctrl(s,SSL_CTRL_CHAIN,1,(char *)(sk)) -# define SSL_add0_chain_cert(s,x509) \ - SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,0,(char *)(x509)) -# define SSL_add1_chain_cert(s,x509) \ - SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,1,(char *)(x509)) -# define SSL_get0_chain_certs(s,px509) \ - SSL_ctrl(s,SSL_CTRL_GET_CHAIN_CERTS,0,px509) -# define SSL_clear_chain_certs(s) \ - SSL_set0_chain(s,NULL) -# define SSL_build_cert_chain(s, flags) \ - SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) -# define SSL_select_current_cert(s,x509) \ - SSL_ctrl(s,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509)) -# define SSL_set_current_cert(s,op) \ - SSL_ctrl(s,SSL_CTRL_SET_CURRENT_CERT, op, NULL) -# define SSL_set0_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)(st)) -# define SSL_set1_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st)) -#define SSL_get0_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_GET_VERIFY_CERT_STORE,0,(char *)(st)) -# define SSL_set0_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)(st)) -# define SSL_set1_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)(st)) -#define SSL_get0_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_GET_CHAIN_CERT_STORE,0,(char *)(st)) - -# define SSL_get1_groups(s, glist) \ - SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) -# define SSL_get0_iana_groups(s, plst) \ - SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) -# define SSL_CTX_set1_groups(ctx, glist, glistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) -# define SSL_CTX_set1_groups_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) -# define SSL_CTX_get0_implemented_groups(ctx, all, out) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET0_IMPLEMENTED_GROUPS, all, \ - (STACK_OF(OPENSSL_CSTRING) *)(out)) -# define SSL_set1_groups(s, glist, glistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) -# define SSL_set1_groups_list(s, str) \ - SSL_ctrl(s,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(str)) -# define SSL_get_shared_group(s, n) \ - SSL_ctrl(s,SSL_CTRL_GET_SHARED_GROUP,n,NULL) -# define SSL_get_negotiated_group(s) \ - SSL_ctrl(s,SSL_CTRL_GET_NEGOTIATED_GROUP,0,NULL) -# define SSL_CTX_set1_sigalgs(ctx, slist, slistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist)) -# define SSL_CTX_set1_sigalgs_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(s)) -# define SSL_set1_sigalgs(s, slist, slistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist)) -# define SSL_set1_sigalgs_list(s, str) \ - SSL_ctrl(s,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(str)) -# define SSL_CTX_set1_client_sigalgs(ctx, slist, slistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist)) -# define SSL_CTX_set1_client_sigalgs_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(s)) -# define SSL_set1_client_sigalgs(s, slist, slistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist)) -# define SSL_set1_client_sigalgs_list(s, str) \ - SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(str)) -# define SSL_get0_certificate_types(s, clist) \ - SSL_ctrl(s, SSL_CTRL_GET_CLIENT_CERT_TYPES, 0, (char *)(clist)) -# define SSL_CTX_set1_client_certificate_types(ctx, clist, clistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen, \ - (char *)(clist)) -# define SSL_set1_client_certificate_types(s, clist, clistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) -# define SSL_get0_signature_name(s, str) \ - SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) -# define SSL_get_signature_nid(s, pn) \ - SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) -# define SSL_get0_peer_signature_name(s, str) \ - SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NAME,0,(1?(str):(const char **)NULL)) -# define SSL_get_peer_signature_nid(s, pn) \ - SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) -# define SSL_get_peer_tmp_key(s, pk) \ - SSL_ctrl(s,SSL_CTRL_GET_PEER_TMP_KEY,0,pk) -# define SSL_get_tmp_key(s, pk) \ - SSL_ctrl(s,SSL_CTRL_GET_TMP_KEY,0,pk) -# define SSL_get0_raw_cipherlist(s, plst) \ - SSL_ctrl(s,SSL_CTRL_GET_RAW_CIPHERLIST,0,plst) -# define SSL_get0_ec_point_formats(s, plst) \ - SSL_ctrl(s,SSL_CTRL_GET_EC_POINT_FORMATS,0,plst) -# define SSL_CTX_set_min_proto_version(ctx, version) \ - SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL) -# define SSL_CTX_set_max_proto_version(ctx, version) \ - SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL) -# define SSL_CTX_get_min_proto_version(ctx) \ - SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL) -# define SSL_CTX_get_max_proto_version(ctx) \ - SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) -# define SSL_set_min_proto_version(s, version) \ - SSL_ctrl(s, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL) -# define SSL_set_max_proto_version(s, version) \ - SSL_ctrl(s, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL) -# define SSL_get_min_proto_version(s) \ - SSL_ctrl(s, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL) -# define SSL_get_max_proto_version(s) \ - SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) - -const char *SSL_get0_group_name(SSL *s); -const char *SSL_group_to_name(SSL *s, int id); - -/* Backwards compatibility, original 1.1.0 names */ -# define SSL_CTRL_GET_SERVER_TMP_KEY \ - SSL_CTRL_GET_PEER_TMP_KEY -# define SSL_get_server_tmp_key(s, pk) \ - SSL_get_peer_tmp_key(s, pk) - -int SSL_set0_tmp_dh_pkey(SSL *s, EVP_PKEY *dhpkey); -int SSL_CTX_set0_tmp_dh_pkey(SSL_CTX *ctx, EVP_PKEY *dhpkey); - -/* - * The following symbol names are old and obsolete. They are kept - * for compatibility reasons only and should not be used anymore. - */ -# define SSL_CTRL_GET_CURVES SSL_CTRL_GET_GROUPS -# define SSL_CTRL_SET_CURVES SSL_CTRL_SET_GROUPS -# define SSL_CTRL_SET_CURVES_LIST SSL_CTRL_SET_GROUPS_LIST -# define SSL_CTRL_GET_SHARED_CURVE SSL_CTRL_GET_SHARED_GROUP - -# define SSL_get1_curves SSL_get1_groups -# define SSL_CTX_set1_curves SSL_CTX_set1_groups -# define SSL_CTX_set1_curves_list SSL_CTX_set1_groups_list -# define SSL_set1_curves SSL_set1_groups -# define SSL_set1_curves_list SSL_set1_groups_list -# define SSL_get_shared_curve SSL_get_shared_group - - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -/* Provide some compatibility macros for removed functionality. */ -# define SSL_CTX_need_tmp_RSA(ctx) 0 -# define SSL_CTX_set_tmp_rsa(ctx,rsa) 1 -# define SSL_need_tmp_RSA(ssl) 0 -# define SSL_set_tmp_rsa(ssl,rsa) 1 -# define SSL_CTX_set_ecdh_auto(dummy, onoff) ((onoff) != 0) -# define SSL_set_ecdh_auto(dummy, onoff) ((onoff) != 0) -/* - * We "pretend" to call the callback to avoid warnings about unused static - * functions. - */ -# define SSL_CTX_set_tmp_rsa_callback(ctx, cb) while(0) (cb)(NULL, 0, 0) -# define SSL_set_tmp_rsa_callback(ssl, cb) while(0) (cb)(NULL, 0, 0) -# endif -__owur const BIO_METHOD *BIO_f_ssl(void); -__owur BIO *BIO_new_ssl(SSL_CTX *ctx, int client); -__owur BIO *BIO_new_ssl_connect(SSL_CTX *ctx); -__owur BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx); -__owur int BIO_ssl_copy_session_id(BIO *to, BIO *from); -void BIO_ssl_shutdown(BIO *ssl_bio); - -__owur int SSL_CTX_set_cipher_list(SSL_CTX *, const char *str); -__owur SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth); -__owur SSL_CTX *SSL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq, - const SSL_METHOD *meth); -int SSL_CTX_up_ref(SSL_CTX *ctx); -void SSL_CTX_free(SSL_CTX *); -__owur long SSL_CTX_set_timeout(SSL_CTX *ctx, long t); -__owur long SSL_CTX_get_timeout(const SSL_CTX *ctx); -__owur X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *); -void SSL_CTX_set_cert_store(SSL_CTX *, X509_STORE *); -void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); -__owur int SSL_want(const SSL *s); -__owur int SSL_clear(SSL *s); - -#ifndef OPENSSL_NO_DEPRECATED_3_4 -OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_CTX_flush_sessions_ex()") -void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); -#endif -void SSL_CTX_flush_sessions_ex(SSL_CTX *ctx, time_t tm); - -__owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); -__owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); -__owur int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits); -__owur const char *SSL_CIPHER_get_version(const SSL_CIPHER *c); -__owur const char *SSL_CIPHER_get_name(const SSL_CIPHER *c); -__owur const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c); -__owur const char *OPENSSL_cipher_name(const char *rfc_name); -__owur uint32_t SSL_CIPHER_get_id(const SSL_CIPHER *c); -__owur uint16_t SSL_CIPHER_get_protocol_id(const SSL_CIPHER *c); -__owur int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c); -__owur int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c); -__owur const EVP_MD *SSL_CIPHER_get_handshake_digest(const SSL_CIPHER *c); -__owur int SSL_CIPHER_is_aead(const SSL_CIPHER *c); - -__owur int SSL_get_fd(const SSL *s); -__owur int SSL_get_rfd(const SSL *s); -__owur int SSL_get_wfd(const SSL *s); -__owur const char *SSL_get_cipher_list(const SSL *s, int n); -__owur char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size); -__owur int SSL_get_read_ahead(const SSL *s); -__owur int SSL_pending(const SSL *s); -__owur int SSL_has_pending(const SSL *s); -# ifndef OPENSSL_NO_SOCK -__owur int SSL_set_fd(SSL *s, int fd); -__owur int SSL_set_rfd(SSL *s, int fd); -__owur int SSL_set_wfd(SSL *s, int fd); -# endif -void SSL_set0_rbio(SSL *s, BIO *rbio); -void SSL_set0_wbio(SSL *s, BIO *wbio); -void SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio); -__owur BIO *SSL_get_rbio(const SSL *s); -__owur BIO *SSL_get_wbio(const SSL *s); -__owur int SSL_set_cipher_list(SSL *s, const char *str); -__owur int SSL_CTX_set_ciphersuites(SSL_CTX *ctx, const char *str); -__owur int SSL_set_ciphersuites(SSL *s, const char *str); -void SSL_set_read_ahead(SSL *s, int yes); -__owur int SSL_get_verify_mode(const SSL *s); -__owur int SSL_get_verify_depth(const SSL *s); -__owur SSL_verify_cb SSL_get_verify_callback(const SSL *s); -void SSL_set_verify(SSL *s, int mode, SSL_verify_cb callback); -void SSL_set_verify_depth(SSL *s, int depth); -void SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void *arg); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 __owur int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); -OSSL_DEPRECATEDIN_3_0 -__owur int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, - const unsigned char *d, long len); -# endif -__owur int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey); -__owur int SSL_use_PrivateKey_ASN1(int pk, SSL *ssl, const unsigned char *d, - long len); -__owur int SSL_use_certificate(SSL *ssl, X509 *x); -__owur int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len); -__owur int SSL_use_cert_and_key(SSL *ssl, X509 *x509, EVP_PKEY *privatekey, - STACK_OF(X509) *chain, int override); - - -/* serverinfo file format versions */ -# define SSL_SERVERINFOV1 1 -# define SSL_SERVERINFOV2 2 - -/* Set serverinfo data for the current active cert. */ -__owur int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo, - size_t serverinfo_length); -__owur int SSL_CTX_use_serverinfo_ex(SSL_CTX *ctx, unsigned int version, - const unsigned char *serverinfo, - size_t serverinfo_length); -__owur int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file); - -#ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -__owur int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); -#endif - -__owur int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type); -__owur int SSL_use_certificate_file(SSL *ssl, const char *file, int type); - -#ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -__owur int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, - int type); -#endif -__owur int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, - int type); -__owur int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, - int type); -/* PEM type */ -__owur int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); -__owur int SSL_use_certificate_chain_file(SSL *ssl, const char *file); -__owur STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file); -__owur STACK_OF(X509_NAME) -*SSL_load_client_CA_file_ex(const char *file, OSSL_LIB_CTX *libctx, - const char *propq); -__owur int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, - const char *file); -int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, - const char *dir); -int SSL_add_store_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, - const char *uri); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define SSL_load_error_strings() \ - OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \ - | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) -# endif - -__owur const char *SSL_state_string(const SSL *s); -__owur const char *SSL_rstate_string(const SSL *s); -__owur const char *SSL_state_string_long(const SSL *s); -__owur const char *SSL_rstate_string_long(const SSL *s); - -#ifndef OPENSSL_NO_DEPRECATED_3_4 -OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_get_time_ex()") -__owur long SSL_SESSION_get_time(const SSL_SESSION *s); -OSSL_DEPRECATEDIN_3_4_FOR("not Y2038-safe, replace with SSL_SESSION_set_time_ex()") -__owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); -#endif -__owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); -__owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); -__owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); -__owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); - -__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); -__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); - -__owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); -__owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); -void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, - const unsigned char **alpn, - size_t *len); -__owur int SSL_SESSION_set1_alpn_selected(SSL_SESSION *s, - const unsigned char *alpn, - size_t len); -__owur const SSL_CIPHER *SSL_SESSION_get0_cipher(const SSL_SESSION *s); -__owur int SSL_SESSION_set_cipher(SSL_SESSION *s, const SSL_CIPHER *cipher); -__owur int SSL_SESSION_has_ticket(const SSL_SESSION *s); -__owur unsigned long SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s); -void SSL_SESSION_get0_ticket(const SSL_SESSION *s, const unsigned char **tick, - size_t *len); -__owur uint32_t SSL_SESSION_get_max_early_data(const SSL_SESSION *s); -__owur int SSL_SESSION_set_max_early_data(SSL_SESSION *s, - uint32_t max_early_data); -__owur int SSL_copy_session_id(SSL *to, const SSL *from); -__owur X509 *SSL_SESSION_get0_peer(SSL_SESSION *s); -__owur int SSL_SESSION_set1_id_context(SSL_SESSION *s, - const unsigned char *sid_ctx, - unsigned int sid_ctx_len); -__owur int SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid, - unsigned int sid_len); -__owur int SSL_SESSION_is_resumable(const SSL_SESSION *s); - -__owur SSL_SESSION *SSL_SESSION_new(void); -__owur SSL_SESSION *SSL_SESSION_dup(const SSL_SESSION *src); -const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, - unsigned int *len); -const unsigned char *SSL_SESSION_get0_id_context(const SSL_SESSION *s, - unsigned int *len); -__owur unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s); -# ifndef OPENSSL_NO_STDIO -int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *ses); -# endif -int SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses); -int SSL_SESSION_print_keylog(BIO *bp, const SSL_SESSION *x); -int SSL_SESSION_up_ref(SSL_SESSION *ses); -void SSL_SESSION_free(SSL_SESSION *ses); -__owur int i2d_SSL_SESSION(const SSL_SESSION *in, unsigned char **pp); -__owur int SSL_set_session(SSL *to, SSL_SESSION *session); -int SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *session); -int SSL_CTX_remove_session(SSL_CTX *ctx, SSL_SESSION *session); -__owur int SSL_CTX_set_generate_session_id(SSL_CTX *ctx, GEN_SESSION_CB cb); -__owur int SSL_set_generate_session_id(SSL *s, GEN_SESSION_CB cb); -__owur int SSL_has_matching_session_id(const SSL *s, - const unsigned char *id, - unsigned int id_len); -SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, - long length); -SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, - long length, OSSL_LIB_CTX *libctx, - const char *propq); - -# ifdef OPENSSL_X509_H -__owur X509 *SSL_get0_peer_certificate(const SSL *s); -__owur X509 *SSL_get1_peer_certificate(const SSL *s); -/* Deprecated in 3.0.0 */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SSL_get_peer_certificate SSL_get1_peer_certificate -# endif -# endif - -__owur STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s); - -__owur int SSL_CTX_get_verify_mode(const SSL_CTX *ctx); -__owur int SSL_CTX_get_verify_depth(const SSL_CTX *ctx); -__owur SSL_verify_cb SSL_CTX_get_verify_callback(const SSL_CTX *ctx); -void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, SSL_verify_cb callback); -void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth); -void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, - int (*cb) (X509_STORE_CTX *, void *), - void *arg); -void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg), - void *arg); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -__owur int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); -OSSL_DEPRECATEDIN_3_0 -__owur int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d, - long len); -# endif -__owur int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey); -__owur int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx, - const unsigned char *d, long len); -__owur int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x); -__owur int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, - const unsigned char *d); -__owur int SSL_CTX_use_cert_and_key(SSL_CTX *ctx, X509 *x509, EVP_PKEY *privatekey, - STACK_OF(X509) *chain, int override); - -void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb); -void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u); -pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx); -void *SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx); -void SSL_set_default_passwd_cb(SSL *s, pem_password_cb *cb); -void SSL_set_default_passwd_cb_userdata(SSL *s, void *u); -pem_password_cb *SSL_get_default_passwd_cb(SSL *s); -void *SSL_get_default_passwd_cb_userdata(SSL *s); - -__owur int SSL_CTX_check_private_key(const SSL_CTX *ctx); -__owur int SSL_check_private_key(const SSL *ctx); - -__owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, - const unsigned char *sid_ctx, - unsigned int sid_ctx_len); - -SSL *SSL_new(SSL_CTX *ctx); -int SSL_up_ref(SSL *s); -int SSL_is_dtls(const SSL *s); -int SSL_is_tls(const SSL *s); -int SSL_is_quic(const SSL *s); -__owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, - unsigned int sid_ctx_len); - -__owur int SSL_CTX_set_purpose(SSL_CTX *ctx, int purpose); -__owur int SSL_set_purpose(SSL *ssl, int purpose); -__owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); -__owur int SSL_set_trust(SSL *ssl, int trust); - -__owur int SSL_set1_host(SSL *s, const char *host); -__owur int SSL_add1_host(SSL *s, const char *host); -__owur const char *SSL_get0_peername(SSL *s); -void SSL_set_hostflags(SSL *s, unsigned int flags); - -__owur int SSL_CTX_dane_enable(SSL_CTX *ctx); -__owur int SSL_CTX_dane_mtype_set(SSL_CTX *ctx, const EVP_MD *md, - uint8_t mtype, uint8_t ord); -__owur int SSL_dane_enable(SSL *s, const char *basedomain); -__owur int SSL_dane_tlsa_add(SSL *s, uint8_t usage, uint8_t selector, - uint8_t mtype, const unsigned char *data, size_t dlen); -__owur int SSL_get0_dane_authority(SSL *s, X509 **mcert, EVP_PKEY **mspki); -__owur int SSL_get0_dane_tlsa(SSL *s, uint8_t *usage, uint8_t *selector, - uint8_t *mtype, const unsigned char **data, - size_t *dlen); -/* - * Bridge opacity barrier between libcrypt and libssl, also needed to support - * offline testing in test/danetest.c - */ -SSL_DANE *SSL_get0_dane(SSL *ssl); -/* - * DANE flags - */ -unsigned long SSL_CTX_dane_set_flags(SSL_CTX *ctx, unsigned long flags); -unsigned long SSL_CTX_dane_clear_flags(SSL_CTX *ctx, unsigned long flags); -unsigned long SSL_dane_set_flags(SSL *ssl, unsigned long flags); -unsigned long SSL_dane_clear_flags(SSL *ssl, unsigned long flags); - -__owur int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm); -__owur int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm); - -__owur X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx); -__owur X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl); - -# ifndef OPENSSL_NO_SRP -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_username(SSL_CTX *ctx, char *name); -OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_password(SSL_CTX *ctx, char *password); -OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_strength(SSL_CTX *ctx, int strength); -OSSL_DEPRECATEDIN_3_0 -int SSL_CTX_set_srp_client_pwd_callback(SSL_CTX *ctx, - char *(*cb) (SSL *, void *)); -OSSL_DEPRECATEDIN_3_0 -int SSL_CTX_set_srp_verify_param_callback(SSL_CTX *ctx, - int (*cb) (SSL *, void *)); -OSSL_DEPRECATEDIN_3_0 -int SSL_CTX_set_srp_username_callback(SSL_CTX *ctx, - int (*cb) (SSL *, int *, void *)); -OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_cb_arg(SSL_CTX *ctx, void *arg); - -OSSL_DEPRECATEDIN_3_0 -int SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM *g, - BIGNUM *sa, BIGNUM *v, char *info); -OSSL_DEPRECATEDIN_3_0 -int SSL_set_srp_server_param_pw(SSL *s, const char *user, const char *pass, - const char *grp); - -OSSL_DEPRECATEDIN_3_0 __owur BIGNUM *SSL_get_srp_g(SSL *s); -OSSL_DEPRECATEDIN_3_0 __owur BIGNUM *SSL_get_srp_N(SSL *s); - -OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_username(SSL *s); -OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); -# endif -# endif - -/* - * ClientHello callback and helpers. - */ - -# define SSL_CLIENT_HELLO_SUCCESS 1 -# define SSL_CLIENT_HELLO_ERROR 0 -# define SSL_CLIENT_HELLO_RETRY (-1) - -typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); -void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, - void *arg); -typedef int (*SSL_new_pending_conn_cb_fn) (SSL_CTX *ctx, SSL *new_ssl, - void *arg); -void SSL_CTX_set_new_pending_conn_cb(SSL_CTX *c, SSL_new_pending_conn_cb_fn cb, - void *arg); - -int SSL_client_hello_isv2(SSL *s); -unsigned int SSL_client_hello_get0_legacy_version(SSL *s); -size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); -size_t SSL_client_hello_get0_session_id(SSL *s, const unsigned char **out); -size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); -size_t SSL_client_hello_get0_compression_methods(SSL *s, - const unsigned char **out); -int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); -int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, - size_t *num_exts); -int SSL_client_hello_get0_ext(SSL *s, unsigned int type, - const unsigned char **out, size_t *outlen); - -void SSL_certs_clear(SSL *s); -void SSL_free(SSL *ssl); -# ifdef OSSL_ASYNC_FD -/* - * Windows application developer has to include windows.h to use these. - */ -__owur int SSL_waiting_for_async(SSL *s); -__owur int SSL_get_all_async_fds(SSL *s, OSSL_ASYNC_FD *fds, size_t *numfds); -__owur int SSL_get_changed_async_fds(SSL *s, OSSL_ASYNC_FD *addfd, - size_t *numaddfds, OSSL_ASYNC_FD *delfd, - size_t *numdelfds); -__owur int SSL_CTX_set_async_callback(SSL_CTX *ctx, SSL_async_callback_fn callback); -__owur int SSL_CTX_set_async_callback_arg(SSL_CTX *ctx, void *arg); -__owur int SSL_set_async_callback(SSL *s, SSL_async_callback_fn callback); -__owur int SSL_set_async_callback_arg(SSL *s, void *arg); -__owur int SSL_get_async_status(SSL *s, int *status); - -# endif -__owur int SSL_accept(SSL *ssl); -__owur int SSL_stateless(SSL *s); -__owur int SSL_connect(SSL *ssl); -__owur int SSL_read(SSL *ssl, void *buf, int num); -__owur int SSL_read_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes); - -# define SSL_READ_EARLY_DATA_ERROR 0 -# define SSL_READ_EARLY_DATA_SUCCESS 1 -# define SSL_READ_EARLY_DATA_FINISH 2 - -__owur int SSL_read_early_data(SSL *s, void *buf, size_t num, - size_t *readbytes); -__owur int SSL_peek(SSL *ssl, void *buf, int num); -__owur int SSL_peek_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes); -__owur ossl_ssize_t SSL_sendfile(SSL *s, int fd, off_t offset, size_t size, - int flags); -__owur int SSL_write(SSL *ssl, const void *buf, int num); -__owur int SSL_write_ex(SSL *s, const void *buf, size_t num, size_t *written); -__owur int SSL_write_early_data(SSL *s, const void *buf, size_t num, - size_t *written); -long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg); -long SSL_callback_ctrl(SSL *, int, void (*)(void)); -long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); -long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); - -# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) - -__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, - uint64_t flags, - size_t *written); - -# define SSL_EARLY_DATA_NOT_SENT 0 -# define SSL_EARLY_DATA_REJECTED 1 -# define SSL_EARLY_DATA_ACCEPTED 2 - -__owur int SSL_get_early_data_status(const SSL *s); - -__owur int SSL_get_error(const SSL *s, int ret_code); -__owur const char *SSL_get_version(const SSL *s); -__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); - -/* This sets the 'default' SSL version that SSL_new() will create */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -__owur int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth); -# endif - -# ifndef OPENSSL_NO_SSL3_METHOD -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *SSLv3_method(void); /* SSLv3 */ -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *SSLv3_server_method(void); -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *SSLv3_client_method(void); -# endif -# endif - -#define SSLv23_method TLS_method -#define SSLv23_server_method TLS_server_method -#define SSLv23_client_method TLS_client_method - -/* Negotiate highest available SSL/TLS version */ -__owur const SSL_METHOD *TLS_method(void); -__owur const SSL_METHOD *TLS_server_method(void); -__owur const SSL_METHOD *TLS_client_method(void); - -# ifndef OPENSSL_NO_TLS1_METHOD -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_method(void); /* TLSv1.0 */ -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_server_method(void); -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_client_method(void); -# endif -# endif - -# ifndef OPENSSL_NO_TLS1_1_METHOD -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_1_method(void); /* TLSv1.1 */ -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_1_server_method(void); -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_1_client_method(void); -# endif -# endif - -# ifndef OPENSSL_NO_TLS1_2_METHOD -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_2_method(void); /* TLSv1.2 */ -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_2_server_method(void); -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_2_client_method(void); -# endif -# endif - -# ifndef OPENSSL_NO_DTLS1_METHOD -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_method(void); /* DTLSv1.0 */ -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_server_method(void); -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_client_method(void); -# endif -# endif - -# ifndef OPENSSL_NO_DTLS1_2_METHOD -/* DTLSv1.2 */ -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_2_method(void); -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_2_server_method(void); -OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_2_client_method(void); -# endif -# endif - -__owur const SSL_METHOD *DTLS_method(void); /* DTLS 1.0 and 1.2 */ -__owur const SSL_METHOD *DTLS_server_method(void); /* DTLS 1.0 and 1.2 */ -__owur const SSL_METHOD *DTLS_client_method(void); /* DTLS 1.0 and 1.2 */ - -__owur size_t DTLS_get_data_mtu(const SSL *s); - -__owur STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s); -__owur STACK_OF(SSL_CIPHER) *SSL_CTX_get_ciphers(const SSL_CTX *ctx); -__owur STACK_OF(SSL_CIPHER) *SSL_get_client_ciphers(const SSL *s); -__owur STACK_OF(SSL_CIPHER) *SSL_get1_supported_ciphers(SSL *s); - -__owur int SSL_do_handshake(SSL *s); -int SSL_key_update(SSL *s, int updatetype); -int SSL_get_key_update_type(const SSL *s); -int SSL_renegotiate(SSL *s); -int SSL_renegotiate_abbreviated(SSL *s); -__owur int SSL_renegotiate_pending(const SSL *s); -int SSL_new_session_ticket(SSL *s); -int SSL_shutdown(SSL *s); -__owur int SSL_verify_client_post_handshake(SSL *s); -void SSL_CTX_set_post_handshake_auth(SSL_CTX *ctx, int val); -void SSL_set_post_handshake_auth(SSL *s, int val); - -__owur const SSL_METHOD *SSL_CTX_get_ssl_method(const SSL_CTX *ctx); -__owur const SSL_METHOD *SSL_get_ssl_method(const SSL *s); -__owur int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method); -__owur const char *SSL_alert_type_string_long(int value); -__owur const char *SSL_alert_type_string(int value); -__owur const char *SSL_alert_desc_string_long(int value); -__owur const char *SSL_alert_desc_string(int value); - -void SSL_set0_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list); -void SSL_CTX_set0_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list); -__owur const STACK_OF(X509_NAME) *SSL_get0_CA_list(const SSL *s); -__owur const STACK_OF(X509_NAME) *SSL_CTX_get0_CA_list(const SSL_CTX *ctx); -__owur int SSL_add1_to_CA_list(SSL *ssl, const X509 *x); -__owur int SSL_CTX_add1_to_CA_list(SSL_CTX *ctx, const X509 *x); -__owur const STACK_OF(X509_NAME) *SSL_get0_peer_CA_list(const SSL *s); - -void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list); -void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list); -__owur STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s); -__owur STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *s); -__owur int SSL_add_client_CA(SSL *ssl, X509 *x); -__owur int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x); - -void SSL_set_connect_state(SSL *s); -void SSL_set_accept_state(SSL *s); - -__owur long SSL_get_default_timeout(const SSL *s); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define SSL_library_init() OPENSSL_init_ssl(0, NULL) -# endif - -__owur char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size); -__owur STACK_OF(X509_NAME) *SSL_dup_CA_list(const STACK_OF(X509_NAME) *sk); - -__owur SSL *SSL_dup(SSL *ssl); - -__owur X509 *SSL_get_certificate(const SSL *ssl); -/* - * EVP_PKEY - */ -struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl); - -__owur X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx); -__owur EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx); - -void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode); -__owur int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx); -void SSL_set_quiet_shutdown(SSL *ssl, int mode); -__owur int SSL_get_quiet_shutdown(const SSL *ssl); -void SSL_set_shutdown(SSL *ssl, int mode); -__owur int SSL_get_shutdown(const SSL *ssl); -__owur int SSL_version(const SSL *ssl); -__owur int SSL_client_version(const SSL *s); -__owur int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx); -__owur int SSL_CTX_set_default_verify_dir(SSL_CTX *ctx); -__owur int SSL_CTX_set_default_verify_file(SSL_CTX *ctx); -__owur int SSL_CTX_set_default_verify_store(SSL_CTX *ctx); -__owur int SSL_CTX_load_verify_file(SSL_CTX *ctx, const char *CAfile); -__owur int SSL_CTX_load_verify_dir(SSL_CTX *ctx, const char *CApath); -__owur int SSL_CTX_load_verify_store(SSL_CTX *ctx, const char *CAstore); -__owur int SSL_CTX_load_verify_locations(SSL_CTX *ctx, - const char *CAfile, - const char *CApath); -# define SSL_get0_session SSL_get_session/* just peek at pointer */ -__owur SSL_SESSION *SSL_get_session(const SSL *ssl); -__owur SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */ -__owur SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl); -SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx); -void SSL_set_info_callback(SSL *ssl, - void (*cb) (const SSL *ssl, int type, int val)); -void (*SSL_get_info_callback(const SSL *ssl)) (const SSL *ssl, int type, - int val); -__owur OSSL_HANDSHAKE_STATE SSL_get_state(const SSL *ssl); - -void SSL_set_verify_result(SSL *ssl, long v); -__owur long SSL_get_verify_result(const SSL *ssl); -__owur STACK_OF(X509) *SSL_get0_verified_chain(const SSL *s); - -__owur size_t SSL_get_client_random(const SSL *ssl, unsigned char *out, - size_t outlen); -__owur size_t SSL_get_server_random(const SSL *ssl, unsigned char *out, - size_t outlen); -__owur size_t SSL_SESSION_get_master_key(const SSL_SESSION *sess, - unsigned char *out, size_t outlen); -__owur int SSL_SESSION_set1_master_key(SSL_SESSION *sess, - const unsigned char *in, size_t len); -uint8_t SSL_SESSION_get_max_fragment_length(const SSL_SESSION *sess); - -#define SSL_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL, l, p, newf, dupf, freef) -__owur int SSL_set_ex_data(SSL *ssl, int idx, void *data); -void *SSL_get_ex_data(const SSL *ssl, int idx); -#define SSL_SESSION_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_SESSION, l, p, newf, dupf, freef) -__owur int SSL_SESSION_set_ex_data(SSL_SESSION *ss, int idx, void *data); -void *SSL_SESSION_get_ex_data(const SSL_SESSION *ss, int idx); -#define SSL_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_CTX, l, p, newf, dupf, freef) -__owur int SSL_CTX_set_ex_data(SSL_CTX *ssl, int idx, void *data); -void *SSL_CTX_get_ex_data(const SSL_CTX *ssl, int idx); - -__owur int SSL_get_ex_data_X509_STORE_CTX_idx(void); - -# define SSL_CTX_sess_set_cache_size(ctx,t) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_SIZE,t,NULL) -# define SSL_CTX_sess_get_cache_size(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_SIZE,0,NULL) -# define SSL_CTX_set_session_cache_mode(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL) -# define SSL_CTX_get_session_cache_mode(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_MODE,0,NULL) - -# define SSL_CTX_get_default_read_ahead(ctx) SSL_CTX_get_read_ahead(ctx) -# define SSL_CTX_set_default_read_ahead(ctx,m) SSL_CTX_set_read_ahead(ctx,m) -# define SSL_CTX_get_read_ahead(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL) -# define SSL_CTX_set_read_ahead(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,m,NULL) -# define SSL_CTX_get_max_cert_list(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) -# define SSL_CTX_set_max_cert_list(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) -# define SSL_get_max_cert_list(ssl) \ - SSL_ctrl(ssl,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) -# define SSL_set_max_cert_list(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) - -# define SSL_CTX_set_max_send_fragment(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) -# define SSL_set_max_send_fragment(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) -# define SSL_CTX_set_split_send_fragment(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL) -# define SSL_set_split_send_fragment(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL) -# define SSL_CTX_set_max_pipelines(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_PIPELINES,m,NULL) -# define SSL_set_max_pipelines(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_MAX_PIPELINES,m,NULL) -# define SSL_set_retry_verify(ssl) \ - (SSL_ctrl(ssl,SSL_CTRL_SET_RETRY_VERIFY,0,NULL) > 0) - -void SSL_CTX_set_default_read_buffer_len(SSL_CTX *ctx, size_t len); -void SSL_set_default_read_buffer_len(SSL *s, size_t len); - -# ifndef OPENSSL_NO_DH -# ifndef OPENSSL_NO_DEPRECATED_3_0 -/* NB: the |keylength| is only applicable when is_export is true */ -OSSL_DEPRECATEDIN_3_0 -void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, - DH *(*dh) (SSL *ssl, int is_export, - int keylength)); -OSSL_DEPRECATEDIN_3_0 -void SSL_set_tmp_dh_callback(SSL *ssl, - DH *(*dh) (SSL *ssl, int is_export, - int keylength)); -# endif -# endif - -__owur const COMP_METHOD *SSL_get_current_compression(const SSL *s); -__owur const COMP_METHOD *SSL_get_current_expansion(const SSL *s); -__owur const char *SSL_COMP_get_name(const COMP_METHOD *comp); -__owur const char *SSL_COMP_get0_name(const SSL_COMP *comp); -__owur int SSL_COMP_get_id(const SSL_COMP *comp); -STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void); -__owur STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP) - *meths); -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define SSL_COMP_free_compression_methods() while(0) continue -# endif -__owur int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm); - -const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr); -int SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c); -int SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c); -int SSL_bytes_to_cipher_list(SSL *s, const unsigned char *bytes, size_t len, - int isv2format, STACK_OF(SSL_CIPHER) **sk, - STACK_OF(SSL_CIPHER) **scsvs); - -/* TLS extensions functions */ -__owur int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len); - -__owur int SSL_set_session_ticket_ext_cb(SSL *s, - tls_session_ticket_ext_cb_fn cb, - void *arg); - -/* Pre-shared secret session resumption functions */ -__owur int SSL_set_session_secret_cb(SSL *s, - tls_session_secret_cb_fn session_secret_cb, - void *arg); - -void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx, - int (*cb) (SSL *ssl, - int - is_forward_secure)); - -void SSL_set_not_resumable_session_callback(SSL *ssl, - int (*cb) (SSL *ssl, - int is_forward_secure)); - -void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, - size_t (*cb) (SSL *ssl, int type, - size_t len, void *arg)); -void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); -void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); -int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); -int SSL_CTX_set_block_padding_ex(SSL_CTX *ctx, size_t app_block_size, - size_t hs_block_size); - -int SSL_set_record_padding_callback(SSL *ssl, - size_t (*cb) (SSL *ssl, int type, - size_t len, void *arg)); -void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); -void *SSL_get_record_padding_callback_arg(const SSL *ssl); -int SSL_set_block_padding(SSL *ssl, size_t block_size); -int SSL_set_block_padding_ex(SSL *ssl, size_t app_block_size, - size_t hs_block_size); -int SSL_set_num_tickets(SSL *s, size_t num_tickets); -size_t SSL_get_num_tickets(const SSL *s); -int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); -size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); - -/* QUIC support */ -int SSL_handle_events(SSL *s); -__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); -__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); -__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); -__owur int SSL_net_read_desired(SSL *s); -__owur int SSL_net_write_desired(SSL *s); -__owur int SSL_set_blocking_mode(SSL *s, int blocking); -__owur int SSL_get_blocking_mode(SSL *s); -__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); -__owur SSL *SSL_get0_connection(SSL *s); -__owur int SSL_is_connection(SSL *s); - -__owur int SSL_is_listener(SSL *ssl); -__owur SSL *SSL_get0_listener(SSL *s); -#define SSL_LISTENER_FLAG_NO_VALIDATE (1UL << 1) -__owur SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags); -__owur SSL *SSL_new_listener_from(SSL *ssl, uint64_t flags); -__owur SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags); -#define SSL_ACCEPT_CONNECTION_NO_BLOCK (1UL << 0) -__owur SSL *SSL_accept_connection(SSL *ssl, uint64_t flags); -__owur size_t SSL_get_accept_connection_queue_len(SSL *ssl); -__owur int SSL_listen(SSL *ssl); - -__owur int SSL_is_domain(SSL *s); -__owur SSL *SSL_get0_domain(SSL *s); -__owur SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags); - -#define SSL_DOMAIN_FLAG_SINGLE_THREAD (1U << 0) -#define SSL_DOMAIN_FLAG_MULTI_THREAD (1U << 1) -#define SSL_DOMAIN_FLAG_THREAD_ASSISTED (1U << 2) -#define SSL_DOMAIN_FLAG_BLOCKING (1U << 3) -#define SSL_DOMAIN_FLAG_LEGACY_BLOCKING (1U << 4) - -__owur int SSL_CTX_set_domain_flags(SSL_CTX *ctx, uint64_t domain_flags); -__owur int SSL_CTX_get_domain_flags(const SSL_CTX *ctx, uint64_t *domain_flags); -__owur int SSL_get_domain_flags(const SSL *ssl, uint64_t *domain_flags); - -#define SSL_STREAM_TYPE_NONE 0 -#define SSL_STREAM_TYPE_READ (1U << 0) -#define SSL_STREAM_TYPE_WRITE (1U << 1) -#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) -__owur int SSL_get_stream_type(SSL *s); - -__owur uint64_t SSL_get_stream_id(SSL *s); -__owur int SSL_is_stream_local(SSL *s); - -#define SSL_DEFAULT_STREAM_MODE_NONE 0 -#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 -#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 -__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); - -#define SSL_STREAM_FLAG_UNI (1U << 0) -#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) -#define SSL_STREAM_FLAG_ADVANCE (1U << 2) -__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); - -#define SSL_INCOMING_STREAM_POLICY_AUTO 0 -#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 -#define SSL_INCOMING_STREAM_POLICY_REJECT 2 -__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); - -#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) -#define SSL_ACCEPT_STREAM_UNI (1U << 1) -#define SSL_ACCEPT_STREAM_BIDI (1U << 2) -__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); -__owur size_t SSL_get_accept_stream_queue_len(SSL *s); - -# ifndef OPENSSL_NO_QUIC -__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, - size_t buf_len, - const BIO_ADDR *peer, - const BIO_ADDR *local); -# endif - -typedef struct ssl_shutdown_ex_args_st { - uint64_t quic_error_code; - const char *quic_reason; -} SSL_SHUTDOWN_EX_ARGS; - -#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) -#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) -#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) -#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) - -__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, - const SSL_SHUTDOWN_EX_ARGS *args, - size_t args_len); - -__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); - -typedef struct ssl_stream_reset_args_st { - uint64_t quic_error_code; -} SSL_STREAM_RESET_ARGS; - -__owur int SSL_stream_reset(SSL *ssl, - const SSL_STREAM_RESET_ARGS *args, - size_t args_len); - -#define SSL_STREAM_STATE_NONE 0 -#define SSL_STREAM_STATE_OK 1 -#define SSL_STREAM_STATE_WRONG_DIR 2 -#define SSL_STREAM_STATE_FINISHED 3 -#define SSL_STREAM_STATE_RESET_LOCAL 4 -#define SSL_STREAM_STATE_RESET_REMOTE 5 -#define SSL_STREAM_STATE_CONN_CLOSED 6 -__owur int SSL_get_stream_read_state(SSL *ssl); -__owur int SSL_get_stream_write_state(SSL *ssl); - -__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); -__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); - -#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) -#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) - -typedef struct ssl_conn_close_info_st { - uint64_t error_code, frame_type; - const char *reason; - size_t reason_len; - uint32_t flags; -} SSL_CONN_CLOSE_INFO; - -__owur int SSL_get_conn_close_info(SSL *ssl, - SSL_CONN_CLOSE_INFO *info, - size_t info_len); - -# define SSL_VALUE_CLASS_GENERIC 0 -# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 -# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 -# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 - -# define SSL_VALUE_NONE 0 -# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 -# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 -# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 -# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 -# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 -# define SSL_VALUE_EVENT_HANDLING_MODE 6 -# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 -# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 -# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 - -# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 -# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 -# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 - -int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); -int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); - -# define SSL_get_generic_value_uint(ssl, id, v) \ - SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) -# define SSL_set_generic_value_uint(ssl, id, v) \ - SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) -# define SSL_get_feature_request_uint(ssl, id, v) \ - SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) -# define SSL_set_feature_request_uint(ssl, id, v) \ - SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) -# define SSL_get_feature_peer_request_uint(ssl, id, v) \ - SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) -# define SSL_get_feature_negotiated_uint(ssl, id, v) \ - SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) - -# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ - SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ - (value)) -# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ - SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ - (value)) -# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ - SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ - (value)) -# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ - SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ - (value)) - -# define SSL_get_event_handling_mode(ssl, value) \ - SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ - (value)) -# define SSL_set_event_handling_mode(ssl, value) \ - SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ - (value)) - -# define SSL_get_stream_write_buf_size(ssl, value) \ - SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ - (value)) -# define SSL_get_stream_write_buf_used(ssl, value) \ - SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ - (value)) -# define SSL_get_stream_write_buf_avail(ssl, value) \ - SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ - (value)) - -# define SSL_POLL_EVENT_NONE 0 - -# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ -# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ -# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ -# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ -# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ -# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ -# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ -# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ -# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ -# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ -# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ -# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ -# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ - -# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) -# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) -# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) -# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) -# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ - | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) -# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) -# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) -# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) -# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) -# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) - -typedef struct ssl_poll_item_st { - BIO_POLL_DESCRIPTOR desc; - uint64_t events, revents; -} SSL_POLL_ITEM; - -# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) - -__owur int SSL_poll(SSL_POLL_ITEM *items, - size_t num_items, - size_t stride, - const struct timeval *timeout, - uint64_t flags, - size_t *result_count); - -static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR -SSL_as_poll_descriptor(SSL *s) -{ - BIO_POLL_DESCRIPTOR d; - - d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; - d.value.ssl = s; - return d; -} - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define SSL_cache_hit(s) SSL_session_reused(s) -# endif - -__owur int SSL_session_reused(const SSL *s); -__owur int SSL_is_server(const SSL *s); - -__owur __owur SSL_CONF_CTX *SSL_CONF_CTX_new(void); -int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx); -void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx); -unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags); -__owur unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, - unsigned int flags); -__owur int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre); - -void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl); -void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx); - -__owur int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value); -__owur int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv); -__owur int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd); - -void SSL_add_ssl_module(void); -int SSL_config(SSL *s, const char *name); -int SSL_CTX_config(SSL_CTX *ctx, const char *name); - -# ifndef OPENSSL_NO_SSL_TRACE -void SSL_trace(int write_p, int version, int content_type, - const void *buf, size_t len, SSL *ssl, void *arg); -# endif - -# ifndef OPENSSL_NO_SOCK -int DTLSv1_listen(SSL *s, BIO_ADDR *client); -# endif - -# ifndef OPENSSL_NO_CT - -/* - * A callback for verifying that the received SCTs are sufficient. - * Expected to return 1 if they are sufficient, otherwise 0. - * May return a negative integer if an error occurs. - * A connection should be aborted if the SCTs are deemed insufficient. - */ -typedef int (*ssl_ct_validation_cb)(const CT_POLICY_EVAL_CTX *ctx, - const STACK_OF(SCT) *scts, void *arg); - -/* - * Sets a |callback| that is invoked upon receipt of ServerHelloDone to validate - * the received SCTs. - * If the callback returns a non-positive result, the connection is terminated. - * Call this function before beginning a handshake. - * If a NULL |callback| is provided, SCT validation is disabled. - * |arg| is arbitrary userdata that will be passed to the callback whenever it - * is invoked. Ownership of |arg| remains with the caller. - * - * NOTE: A side-effect of setting a CT callback is that an OCSP stapled response - * will be requested. - */ -int SSL_set_ct_validation_callback(SSL *s, ssl_ct_validation_cb callback, - void *arg); -int SSL_CTX_set_ct_validation_callback(SSL_CTX *ctx, - ssl_ct_validation_cb callback, - void *arg); -#define SSL_disable_ct(s) \ - ((void) SSL_set_validation_callback((s), NULL, NULL)) -#define SSL_CTX_disable_ct(ctx) \ - ((void) SSL_CTX_set_validation_callback((ctx), NULL, NULL)) - -/* - * The validation type enumerates the available behaviours of the built-in SSL - * CT validation callback selected via SSL_enable_ct() and SSL_CTX_enable_ct(). - * The underlying callback is a static function in libssl. - */ -enum { - SSL_CT_VALIDATION_PERMISSIVE = 0, - SSL_CT_VALIDATION_STRICT -}; - -/* - * Enable CT by setting up a callback that implements one of the built-in - * validation variants. The SSL_CT_VALIDATION_PERMISSIVE variant always - * continues the handshake, the application can make appropriate decisions at - * handshake completion. The SSL_CT_VALIDATION_STRICT variant requires at - * least one valid SCT, or else handshake termination will be requested. The - * handshake may continue anyway if SSL_VERIFY_NONE is in effect. - */ -int SSL_enable_ct(SSL *s, int validation_mode); -int SSL_CTX_enable_ct(SSL_CTX *ctx, int validation_mode); - -/* - * Report whether a non-NULL callback is enabled. - */ -int SSL_ct_is_enabled(const SSL *s); -int SSL_CTX_ct_is_enabled(const SSL_CTX *ctx); - -/* Gets the SCTs received from a connection */ -const STACK_OF(SCT) *SSL_get0_peer_scts(SSL *s); - -/* - * Loads the CT log list from the default location. - * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store, - * the log information loaded from this file will be appended to the - * CTLOG_STORE. - * Returns 1 on success, 0 otherwise. - */ -int SSL_CTX_set_default_ctlog_list_file(SSL_CTX *ctx); - -/* - * Loads the CT log list from the specified file path. - * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store, - * the log information loaded from this file will be appended to the - * CTLOG_STORE. - * Returns 1 on success, 0 otherwise. - */ -int SSL_CTX_set_ctlog_list_file(SSL_CTX *ctx, const char *path); - -/* - * Sets the CT log list used by all SSL connections created from this SSL_CTX. - * Ownership of the CTLOG_STORE is transferred to the SSL_CTX. - */ -void SSL_CTX_set0_ctlog_store(SSL_CTX *ctx, CTLOG_STORE *logs); - -/* - * Gets the CT log list used by all SSL connections created from this SSL_CTX. - * This will be NULL unless one of the following functions has been called: - * - SSL_CTX_set_default_ctlog_list_file - * - SSL_CTX_set_ctlog_list_file - * - SSL_CTX_set_ctlog_store - */ -const CTLOG_STORE *SSL_CTX_get0_ctlog_store(const SSL_CTX *ctx); - -# endif /* OPENSSL_NO_CT */ - -/* What the "other" parameter contains in security callback */ -/* Mask for type */ -# define SSL_SECOP_OTHER_TYPE 0xffff0000 -# define SSL_SECOP_OTHER_NONE 0 -# define SSL_SECOP_OTHER_CIPHER (1 << 16) -# define SSL_SECOP_OTHER_CURVE (2 << 16) -# define SSL_SECOP_OTHER_DH (3 << 16) -# define SSL_SECOP_OTHER_PKEY (4 << 16) -# define SSL_SECOP_OTHER_SIGALG (5 << 16) -# define SSL_SECOP_OTHER_CERT (6 << 16) - -/* Indicated operation refers to peer key or certificate */ -# define SSL_SECOP_PEER 0x1000 - -/* Values for "op" parameter in security callback */ - -/* Called to filter ciphers */ -/* Ciphers client supports */ -# define SSL_SECOP_CIPHER_SUPPORTED (1 | SSL_SECOP_OTHER_CIPHER) -/* Cipher shared by client/server */ -# define SSL_SECOP_CIPHER_SHARED (2 | SSL_SECOP_OTHER_CIPHER) -/* Sanity check of cipher server selects */ -# define SSL_SECOP_CIPHER_CHECK (3 | SSL_SECOP_OTHER_CIPHER) -/* Curves supported by client */ -# define SSL_SECOP_CURVE_SUPPORTED (4 | SSL_SECOP_OTHER_CURVE) -/* Curves shared by client/server */ -# define SSL_SECOP_CURVE_SHARED (5 | SSL_SECOP_OTHER_CURVE) -/* Sanity check of curve server selects */ -# define SSL_SECOP_CURVE_CHECK (6 | SSL_SECOP_OTHER_CURVE) -/* Temporary DH key */ -# define SSL_SECOP_TMP_DH (7 | SSL_SECOP_OTHER_PKEY) -/* SSL/TLS version */ -# define SSL_SECOP_VERSION (9 | SSL_SECOP_OTHER_NONE) -/* Session tickets */ -# define SSL_SECOP_TICKET (10 | SSL_SECOP_OTHER_NONE) -/* Supported signature algorithms sent to peer */ -# define SSL_SECOP_SIGALG_SUPPORTED (11 | SSL_SECOP_OTHER_SIGALG) -/* Shared signature algorithm */ -# define SSL_SECOP_SIGALG_SHARED (12 | SSL_SECOP_OTHER_SIGALG) -/* Sanity check signature algorithm allowed */ -# define SSL_SECOP_SIGALG_CHECK (13 | SSL_SECOP_OTHER_SIGALG) -/* Used to get mask of supported public key signature algorithms */ -# define SSL_SECOP_SIGALG_MASK (14 | SSL_SECOP_OTHER_SIGALG) -/* Use to see if compression is allowed */ -# define SSL_SECOP_COMPRESSION (15 | SSL_SECOP_OTHER_NONE) -/* EE key in certificate */ -# define SSL_SECOP_EE_KEY (16 | SSL_SECOP_OTHER_CERT) -/* CA key in certificate */ -# define SSL_SECOP_CA_KEY (17 | SSL_SECOP_OTHER_CERT) -/* CA digest algorithm in certificate */ -# define SSL_SECOP_CA_MD (18 | SSL_SECOP_OTHER_CERT) -/* Peer EE key in certificate */ -# define SSL_SECOP_PEER_EE_KEY (SSL_SECOP_EE_KEY | SSL_SECOP_PEER) -/* Peer CA key in certificate */ -# define SSL_SECOP_PEER_CA_KEY (SSL_SECOP_CA_KEY | SSL_SECOP_PEER) -/* Peer CA digest algorithm in certificate */ -# define SSL_SECOP_PEER_CA_MD (SSL_SECOP_CA_MD | SSL_SECOP_PEER) - -void SSL_set_security_level(SSL *s, int level); -__owur int SSL_get_security_level(const SSL *s); -void SSL_set_security_callback(SSL *s, - int (*cb) (const SSL *s, const SSL_CTX *ctx, - int op, int bits, int nid, - void *other, void *ex)); -int (*SSL_get_security_callback(const SSL *s)) (const SSL *s, - const SSL_CTX *ctx, int op, - int bits, int nid, void *other, - void *ex); -void SSL_set0_security_ex_data(SSL *s, void *ex); -__owur void *SSL_get0_security_ex_data(const SSL *s); - -void SSL_CTX_set_security_level(SSL_CTX *ctx, int level); -__owur int SSL_CTX_get_security_level(const SSL_CTX *ctx); -void SSL_CTX_set_security_callback(SSL_CTX *ctx, - int (*cb) (const SSL *s, const SSL_CTX *ctx, - int op, int bits, int nid, - void *other, void *ex)); -int (*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL *s, - const SSL_CTX *ctx, - int op, int bits, - int nid, - void *other, - void *ex); -void SSL_CTX_set0_security_ex_data(SSL_CTX *ctx, void *ex); -__owur void *SSL_CTX_get0_security_ex_data(const SSL_CTX *ctx); - -/* OPENSSL_INIT flag 0x010000 reserved for internal use */ -# define OPENSSL_INIT_NO_LOAD_SSL_STRINGS 0x00100000L -# define OPENSSL_INIT_LOAD_SSL_STRINGS 0x00200000L - -# define OPENSSL_INIT_SSL_DEFAULT \ - (OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS) - -int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); - -# ifndef OPENSSL_NO_UNIT_TEST -__owur const struct openssl_ssl_test_functions *SSL_test_functions(void); -# endif - -__owur int SSL_free_buffers(SSL *ssl); -__owur int SSL_alloc_buffers(SSL *ssl); - -/* Status codes passed to the decrypt session ticket callback. Some of these - * are for internal use only and are never passed to the callback. */ -typedef int SSL_TICKET_STATUS; - -/* Support for ticket appdata */ -/* fatal error, malloc failure */ -# define SSL_TICKET_FATAL_ERR_MALLOC 0 -/* fatal error, either from parsing or decrypting the ticket */ -# define SSL_TICKET_FATAL_ERR_OTHER 1 -/* No ticket present */ -# define SSL_TICKET_NONE 2 -/* Empty ticket present */ -# define SSL_TICKET_EMPTY 3 -/* the ticket couldn't be decrypted */ -# define SSL_TICKET_NO_DECRYPT 4 -/* a ticket was successfully decrypted */ -# define SSL_TICKET_SUCCESS 5 -/* same as above but the ticket needs to be renewed */ -# define SSL_TICKET_SUCCESS_RENEW 6 - -/* Return codes for the decrypt session ticket callback */ -typedef int SSL_TICKET_RETURN; - -/* An error occurred */ -#define SSL_TICKET_RETURN_ABORT 0 -/* Do not use the ticket, do not send a renewed ticket to the client */ -#define SSL_TICKET_RETURN_IGNORE 1 -/* Do not use the ticket, send a renewed ticket to the client */ -#define SSL_TICKET_RETURN_IGNORE_RENEW 2 -/* Use the ticket, do not send a renewed ticket to the client */ -#define SSL_TICKET_RETURN_USE 3 -/* Use the ticket, send a renewed ticket to the client */ -#define SSL_TICKET_RETURN_USE_RENEW 4 - -typedef int (*SSL_CTX_generate_session_ticket_fn)(SSL *s, void *arg); -typedef SSL_TICKET_RETURN (*SSL_CTX_decrypt_session_ticket_fn)(SSL *s, SSL_SESSION *ss, - const unsigned char *keyname, - size_t keyname_length, - SSL_TICKET_STATUS status, - void *arg); -int SSL_CTX_set_session_ticket_cb(SSL_CTX *ctx, - SSL_CTX_generate_session_ticket_fn gen_cb, - SSL_CTX_decrypt_session_ticket_fn dec_cb, - void *arg); -int SSL_SESSION_set1_ticket_appdata(SSL_SESSION *ss, const void *data, size_t len); -int SSL_SESSION_get0_ticket_appdata(SSL_SESSION *ss, void **data, size_t *len); - -typedef unsigned int (*DTLS_timer_cb)(SSL *s, unsigned int timer_us); - -void DTLS_set_timer_cb(SSL *s, DTLS_timer_cb cb); - - -typedef int (*SSL_allow_early_data_cb_fn)(SSL *s, void *arg); -void SSL_CTX_set_allow_early_data_cb(SSL_CTX *ctx, - SSL_allow_early_data_cb_fn cb, - void *arg); -void SSL_set_allow_early_data_cb(SSL *s, - SSL_allow_early_data_cb_fn cb, - void *arg); - -/* store the default cipher strings inside the library */ -const char *OSSL_default_cipher_list(void); -const char *OSSL_default_ciphersuites(void); - -/* RFC8879 Certificate compression APIs */ - -int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); -int SSL_compress_certs(SSL *ssl, int alg); - -int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); -int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); - -int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, - size_t comp_length, size_t orig_length); -int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, - size_t comp_length, size_t orig_length); -size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); -size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); - -__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); -__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); -__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); -__owur int SSL_get_negotiated_client_cert_type(const SSL *s); -__owur int SSL_get_negotiated_server_cert_type(const SSL *s); - -__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); -__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); -__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); -__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); -__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); -__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); -__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); -__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); - -/* - * Protection level. For <= TLSv1.2 only "NONE" and "APPLICATION" are used. - */ -# define OSSL_RECORD_PROTECTION_LEVEL_NONE 0 -# define OSSL_RECORD_PROTECTION_LEVEL_EARLY 1 -# define OSSL_RECORD_PROTECTION_LEVEL_HANDSHAKE 2 -# define OSSL_RECORD_PROTECTION_LEVEL_APPLICATION 3 - -int SSL_set_quic_tls_cbs(SSL *s, const OSSL_DISPATCH *qtdis, void *arg); -int SSL_set_quic_tls_transport_params(SSL *s, - const unsigned char *params, - size_t params_len); - -int SSL_set_quic_tls_early_data_enabled(SSL *s, int enabled); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/ssl2.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/ssl2.h deleted file mode 100644 index 428ead0..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/ssl2.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_SSL2_H -# define OPENSSL_SSL2_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_SSL2_H -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define SSL2_VERSION 0x0002 - -# define SSL2_MT_CLIENT_HELLO 1 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/ssl3.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/ssl3.h deleted file mode 100644 index b8dada1..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/ssl3.h +++ /dev/null @@ -1,358 +0,0 @@ -/* - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_SSL3_H -# define OPENSSL_SSL3_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_SSL3_H -# endif - -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Signalling cipher suite value from RFC 5746 - * (TLS_EMPTY_RENEGOTIATION_INFO_SCSV) - */ -# define SSL3_CK_SCSV 0x030000FF - -/* - * Signalling cipher suite value from draft-ietf-tls-downgrade-scsv-00 - * (TLS_FALLBACK_SCSV) - */ -# define SSL3_CK_FALLBACK_SCSV 0x03005600 - -# define SSL3_CK_RSA_NULL_MD5 0x03000001 -# define SSL3_CK_RSA_NULL_SHA 0x03000002 -# define SSL3_CK_RSA_RC4_40_MD5 0x03000003 -# define SSL3_CK_RSA_RC4_128_MD5 0x03000004 -# define SSL3_CK_RSA_RC4_128_SHA 0x03000005 -# define SSL3_CK_RSA_RC2_40_MD5 0x03000006 -# define SSL3_CK_RSA_IDEA_128_SHA 0x03000007 -# define SSL3_CK_RSA_DES_40_CBC_SHA 0x03000008 -# define SSL3_CK_RSA_DES_64_CBC_SHA 0x03000009 -# define SSL3_CK_RSA_DES_192_CBC3_SHA 0x0300000A - -# define SSL3_CK_DH_DSS_DES_40_CBC_SHA 0x0300000B -# define SSL3_CK_DH_DSS_DES_64_CBC_SHA 0x0300000C -# define SSL3_CK_DH_DSS_DES_192_CBC3_SHA 0x0300000D -# define SSL3_CK_DH_RSA_DES_40_CBC_SHA 0x0300000E -# define SSL3_CK_DH_RSA_DES_64_CBC_SHA 0x0300000F -# define SSL3_CK_DH_RSA_DES_192_CBC3_SHA 0x03000010 - -# define SSL3_CK_DHE_DSS_DES_40_CBC_SHA 0x03000011 -# define SSL3_CK_EDH_DSS_DES_40_CBC_SHA SSL3_CK_DHE_DSS_DES_40_CBC_SHA -# define SSL3_CK_DHE_DSS_DES_64_CBC_SHA 0x03000012 -# define SSL3_CK_EDH_DSS_DES_64_CBC_SHA SSL3_CK_DHE_DSS_DES_64_CBC_SHA -# define SSL3_CK_DHE_DSS_DES_192_CBC3_SHA 0x03000013 -# define SSL3_CK_EDH_DSS_DES_192_CBC3_SHA SSL3_CK_DHE_DSS_DES_192_CBC3_SHA -# define SSL3_CK_DHE_RSA_DES_40_CBC_SHA 0x03000014 -# define SSL3_CK_EDH_RSA_DES_40_CBC_SHA SSL3_CK_DHE_RSA_DES_40_CBC_SHA -# define SSL3_CK_DHE_RSA_DES_64_CBC_SHA 0x03000015 -# define SSL3_CK_EDH_RSA_DES_64_CBC_SHA SSL3_CK_DHE_RSA_DES_64_CBC_SHA -# define SSL3_CK_DHE_RSA_DES_192_CBC3_SHA 0x03000016 -# define SSL3_CK_EDH_RSA_DES_192_CBC3_SHA SSL3_CK_DHE_RSA_DES_192_CBC3_SHA - -# define SSL3_CK_ADH_RC4_40_MD5 0x03000017 -# define SSL3_CK_ADH_RC4_128_MD5 0x03000018 -# define SSL3_CK_ADH_DES_40_CBC_SHA 0x03000019 -# define SSL3_CK_ADH_DES_64_CBC_SHA 0x0300001A -# define SSL3_CK_ADH_DES_192_CBC_SHA 0x0300001B - -/* a bundle of RFC standard cipher names, generated from ssl3_ciphers[] */ -# define SSL3_RFC_RSA_NULL_MD5 "TLS_RSA_WITH_NULL_MD5" -# define SSL3_RFC_RSA_NULL_SHA "TLS_RSA_WITH_NULL_SHA" -# define SSL3_RFC_RSA_DES_192_CBC3_SHA "TLS_RSA_WITH_3DES_EDE_CBC_SHA" -# define SSL3_RFC_DHE_DSS_DES_192_CBC3_SHA "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA" -# define SSL3_RFC_DHE_RSA_DES_192_CBC3_SHA "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA" -# define SSL3_RFC_ADH_DES_192_CBC_SHA "TLS_DH_anon_WITH_3DES_EDE_CBC_SHA" -# define SSL3_RFC_RSA_IDEA_128_SHA "TLS_RSA_WITH_IDEA_CBC_SHA" -# define SSL3_RFC_RSA_RC4_128_MD5 "TLS_RSA_WITH_RC4_128_MD5" -# define SSL3_RFC_RSA_RC4_128_SHA "TLS_RSA_WITH_RC4_128_SHA" -# define SSL3_RFC_ADH_RC4_128_MD5 "TLS_DH_anon_WITH_RC4_128_MD5" - -# define SSL3_TXT_RSA_NULL_MD5 "NULL-MD5" -# define SSL3_TXT_RSA_NULL_SHA "NULL-SHA" -# define SSL3_TXT_RSA_RC4_40_MD5 "EXP-RC4-MD5" -# define SSL3_TXT_RSA_RC4_128_MD5 "RC4-MD5" -# define SSL3_TXT_RSA_RC4_128_SHA "RC4-SHA" -# define SSL3_TXT_RSA_RC2_40_MD5 "EXP-RC2-CBC-MD5" -# define SSL3_TXT_RSA_IDEA_128_SHA "IDEA-CBC-SHA" -# define SSL3_TXT_RSA_DES_40_CBC_SHA "EXP-DES-CBC-SHA" -# define SSL3_TXT_RSA_DES_64_CBC_SHA "DES-CBC-SHA" -# define SSL3_TXT_RSA_DES_192_CBC3_SHA "DES-CBC3-SHA" - -# define SSL3_TXT_DH_DSS_DES_40_CBC_SHA "EXP-DH-DSS-DES-CBC-SHA" -# define SSL3_TXT_DH_DSS_DES_64_CBC_SHA "DH-DSS-DES-CBC-SHA" -# define SSL3_TXT_DH_DSS_DES_192_CBC3_SHA "DH-DSS-DES-CBC3-SHA" -# define SSL3_TXT_DH_RSA_DES_40_CBC_SHA "EXP-DH-RSA-DES-CBC-SHA" -# define SSL3_TXT_DH_RSA_DES_64_CBC_SHA "DH-RSA-DES-CBC-SHA" -# define SSL3_TXT_DH_RSA_DES_192_CBC3_SHA "DH-RSA-DES-CBC3-SHA" - -# define SSL3_TXT_DHE_DSS_DES_40_CBC_SHA "EXP-DHE-DSS-DES-CBC-SHA" -# define SSL3_TXT_DHE_DSS_DES_64_CBC_SHA "DHE-DSS-DES-CBC-SHA" -# define SSL3_TXT_DHE_DSS_DES_192_CBC3_SHA "DHE-DSS-DES-CBC3-SHA" -# define SSL3_TXT_DHE_RSA_DES_40_CBC_SHA "EXP-DHE-RSA-DES-CBC-SHA" -# define SSL3_TXT_DHE_RSA_DES_64_CBC_SHA "DHE-RSA-DES-CBC-SHA" -# define SSL3_TXT_DHE_RSA_DES_192_CBC3_SHA "DHE-RSA-DES-CBC3-SHA" - -/* - * This next block of six "EDH" labels is for backward compatibility with - * older versions of OpenSSL. New code should use the six "DHE" labels above - * instead: - */ -# define SSL3_TXT_EDH_DSS_DES_40_CBC_SHA "EXP-EDH-DSS-DES-CBC-SHA" -# define SSL3_TXT_EDH_DSS_DES_64_CBC_SHA "EDH-DSS-DES-CBC-SHA" -# define SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA "EDH-DSS-DES-CBC3-SHA" -# define SSL3_TXT_EDH_RSA_DES_40_CBC_SHA "EXP-EDH-RSA-DES-CBC-SHA" -# define SSL3_TXT_EDH_RSA_DES_64_CBC_SHA "EDH-RSA-DES-CBC-SHA" -# define SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA "EDH-RSA-DES-CBC3-SHA" - -# define SSL3_TXT_ADH_RC4_40_MD5 "EXP-ADH-RC4-MD5" -# define SSL3_TXT_ADH_RC4_128_MD5 "ADH-RC4-MD5" -# define SSL3_TXT_ADH_DES_40_CBC_SHA "EXP-ADH-DES-CBC-SHA" -# define SSL3_TXT_ADH_DES_64_CBC_SHA "ADH-DES-CBC-SHA" -# define SSL3_TXT_ADH_DES_192_CBC_SHA "ADH-DES-CBC3-SHA" - -# define SSL3_SSL_SESSION_ID_LENGTH 32 -# define SSL3_MAX_SSL_SESSION_ID_LENGTH 32 - -# define SSL3_MASTER_SECRET_SIZE 48 -# define SSL3_RANDOM_SIZE 32 -# define SSL3_SESSION_ID_SIZE 32 -# define SSL3_RT_HEADER_LENGTH 5 - -# define SSL3_HM_HEADER_LENGTH 4 - -# ifndef SSL3_ALIGN_PAYLOAD - /* - * Some will argue that this increases memory footprint, but it's not - * actually true. Point is that malloc has to return at least 64-bit aligned - * pointers, meaning that allocating 5 bytes wastes 3 bytes in either case. - * Suggested pre-gaping simply moves these wasted bytes from the end of - * allocated region to its front, but makes data payload aligned, which - * improves performance:-) - */ -# define SSL3_ALIGN_PAYLOAD 8 -# else -# if (SSL3_ALIGN_PAYLOAD&(SSL3_ALIGN_PAYLOAD-1))!=0 -# error "insane SSL3_ALIGN_PAYLOAD" -# undef SSL3_ALIGN_PAYLOAD -# endif -# endif - -/* - * This is the maximum MAC (digest) size used by the SSL library. Currently - * maximum of 20 is used by SHA1, but we reserve for future extension for - * 512-bit hashes. - */ - -# define SSL3_RT_MAX_MD_SIZE 64 - -/* - * Maximum block size used in all ciphersuites. Currently 16 for AES. - */ - -# define SSL_RT_MAX_CIPHER_BLOCK_SIZE 16 - -# define SSL3_RT_MAX_EXTRA (16384) - -/* Maximum plaintext length: defined by SSL/TLS standards */ -# define SSL3_RT_MAX_PLAIN_LENGTH 16384 -/* Maximum compression overhead: defined by SSL/TLS standards */ -# define SSL3_RT_MAX_COMPRESSED_OVERHEAD 1024 - -/* - * The standards give a maximum encryption overhead of 1024 bytes. In - * practice the value is lower than this. The overhead is the maximum number - * of padding bytes (256) plus the mac size. - */ -# define SSL3_RT_MAX_ENCRYPTED_OVERHEAD (256 + SSL3_RT_MAX_MD_SIZE) -# define SSL3_RT_MAX_TLS13_ENCRYPTED_OVERHEAD 256 - -/* - * OpenSSL currently only uses a padding length of at most one block so the - * send overhead is smaller. - */ - -# define SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD \ - (SSL_RT_MAX_CIPHER_BLOCK_SIZE + SSL3_RT_MAX_MD_SIZE) - -/* If compression isn't used don't include the compression overhead */ - -# ifdef OPENSSL_NO_COMP -# define SSL3_RT_MAX_COMPRESSED_LENGTH SSL3_RT_MAX_PLAIN_LENGTH -# else -# define SSL3_RT_MAX_COMPRESSED_LENGTH \ - (SSL3_RT_MAX_PLAIN_LENGTH+SSL3_RT_MAX_COMPRESSED_OVERHEAD) -# endif -# define SSL3_RT_MAX_ENCRYPTED_LENGTH \ - (SSL3_RT_MAX_ENCRYPTED_OVERHEAD+SSL3_RT_MAX_COMPRESSED_LENGTH) -# define SSL3_RT_MAX_TLS13_ENCRYPTED_LENGTH \ - (SSL3_RT_MAX_PLAIN_LENGTH + SSL3_RT_MAX_TLS13_ENCRYPTED_OVERHEAD) -# define SSL3_RT_MAX_PACKET_SIZE \ - (SSL3_RT_MAX_ENCRYPTED_LENGTH+SSL3_RT_HEADER_LENGTH) - -# define SSL3_MD_CLIENT_FINISHED_CONST "\x43\x4C\x4E\x54" -# define SSL3_MD_SERVER_FINISHED_CONST "\x53\x52\x56\x52" - -/* SSL3_VERSION is defined in prov_ssl.h */ -# define SSL3_VERSION_MAJOR 0x03 -# define SSL3_VERSION_MINOR 0x00 - -# define SSL3_RT_CHANGE_CIPHER_SPEC 20 -# define SSL3_RT_ALERT 21 -# define SSL3_RT_HANDSHAKE 22 -# define SSL3_RT_APPLICATION_DATA 23 - -/* Pseudo content types to indicate additional parameters */ -# define TLS1_RT_CRYPTO 0x1000 -# define TLS1_RT_CRYPTO_PREMASTER (TLS1_RT_CRYPTO | 0x1) -# define TLS1_RT_CRYPTO_CLIENT_RANDOM (TLS1_RT_CRYPTO | 0x2) -# define TLS1_RT_CRYPTO_SERVER_RANDOM (TLS1_RT_CRYPTO | 0x3) -# define TLS1_RT_CRYPTO_MASTER (TLS1_RT_CRYPTO | 0x4) - -# define TLS1_RT_CRYPTO_READ 0x0000 -# define TLS1_RT_CRYPTO_WRITE 0x0100 -# define TLS1_RT_CRYPTO_MAC (TLS1_RT_CRYPTO | 0x5) -# define TLS1_RT_CRYPTO_KEY (TLS1_RT_CRYPTO | 0x6) -# define TLS1_RT_CRYPTO_IV (TLS1_RT_CRYPTO | 0x7) -# define TLS1_RT_CRYPTO_FIXED_IV (TLS1_RT_CRYPTO | 0x8) - -/* Pseudo content types for SSL/TLS header info */ -# define SSL3_RT_HEADER 0x100 -# define SSL3_RT_INNER_CONTENT_TYPE 0x101 - -/* Pseudo content types for QUIC */ -# define SSL3_RT_QUIC_DATAGRAM 0x200 -# define SSL3_RT_QUIC_PACKET 0x201 -# define SSL3_RT_QUIC_FRAME_FULL 0x202 -# define SSL3_RT_QUIC_FRAME_HEADER 0x203 -# define SSL3_RT_QUIC_FRAME_PADDING 0x204 - -# define SSL3_AL_WARNING 1 -# define SSL3_AL_FATAL 2 - -# define SSL3_AD_CLOSE_NOTIFY 0 -# define SSL3_AD_UNEXPECTED_MESSAGE 10/* fatal */ -# define SSL3_AD_BAD_RECORD_MAC 20/* fatal */ -# define SSL3_AD_DECOMPRESSION_FAILURE 30/* fatal */ -# define SSL3_AD_HANDSHAKE_FAILURE 40/* fatal */ -# define SSL3_AD_NO_CERTIFICATE 41 -# define SSL3_AD_BAD_CERTIFICATE 42 -# define SSL3_AD_UNSUPPORTED_CERTIFICATE 43 -# define SSL3_AD_CERTIFICATE_REVOKED 44 -# define SSL3_AD_CERTIFICATE_EXPIRED 45 -# define SSL3_AD_CERTIFICATE_UNKNOWN 46 -# define SSL3_AD_ILLEGAL_PARAMETER 47/* fatal */ - -# define TLS1_HB_REQUEST 1 -# define TLS1_HB_RESPONSE 2 - - -# define SSL3_CT_RSA_SIGN 1 -# define SSL3_CT_DSS_SIGN 2 -# define SSL3_CT_RSA_FIXED_DH 3 -# define SSL3_CT_DSS_FIXED_DH 4 -# define SSL3_CT_RSA_EPHEMERAL_DH 5 -# define SSL3_CT_DSS_EPHEMERAL_DH 6 -# define SSL3_CT_FORTEZZA_DMS 20 -/* - * SSL3_CT_NUMBER is used to size arrays and it must be large enough to - * contain all of the cert types defined for *either* SSLv3 and TLSv1. - */ -# define SSL3_CT_NUMBER 12 - -# if defined(TLS_CT_NUMBER) -# if TLS_CT_NUMBER != SSL3_CT_NUMBER -# error "SSL/TLS CT_NUMBER values do not match" -# endif -# endif - -/* No longer used as of OpenSSL 1.1.1 */ -# define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS 0x0001 - -/* Removed from OpenSSL 1.1.0 */ -# define TLS1_FLAGS_TLS_PADDING_BUG 0x0 - -# define TLS1_FLAGS_SKIP_CERT_VERIFY 0x0010 - -/* Set if we encrypt then mac instead of usual mac then encrypt */ -# define TLS1_FLAGS_ENCRYPT_THEN_MAC_READ 0x0100 -# define TLS1_FLAGS_ENCRYPT_THEN_MAC TLS1_FLAGS_ENCRYPT_THEN_MAC_READ - -/* Set if extended master secret extension received from peer */ -# define TLS1_FLAGS_RECEIVED_EXTMS 0x0200 - -# define TLS1_FLAGS_ENCRYPT_THEN_MAC_WRITE 0x0400 - -# define TLS1_FLAGS_STATELESS 0x0800 - -/* Set if extended master secret extension required on renegotiation */ -# define TLS1_FLAGS_REQUIRED_EXTMS 0x1000 - -/* 0x2000 is reserved for TLS1_FLAGS_QUIC (internal) */ -/* 0x4000 is reserved for TLS1_FLAGS_QUIC_INTERNAL (internal) */ - -# define SSL3_MT_HELLO_REQUEST 0 -# define SSL3_MT_CLIENT_HELLO 1 -# define SSL3_MT_SERVER_HELLO 2 -# define SSL3_MT_NEWSESSION_TICKET 4 -# define SSL3_MT_END_OF_EARLY_DATA 5 -# define SSL3_MT_ENCRYPTED_EXTENSIONS 8 -# define SSL3_MT_CERTIFICATE 11 -# define SSL3_MT_SERVER_KEY_EXCHANGE 12 -# define SSL3_MT_CERTIFICATE_REQUEST 13 -# define SSL3_MT_SERVER_DONE 14 -# define SSL3_MT_CERTIFICATE_VERIFY 15 -# define SSL3_MT_CLIENT_KEY_EXCHANGE 16 -# define SSL3_MT_FINISHED 20 -# define SSL3_MT_CERTIFICATE_URL 21 -# define SSL3_MT_CERTIFICATE_STATUS 22 -# define SSL3_MT_SUPPLEMENTAL_DATA 23 -# define SSL3_MT_KEY_UPDATE 24 -# define SSL3_MT_COMPRESSED_CERTIFICATE 25 -# ifndef OPENSSL_NO_NEXTPROTONEG -# define SSL3_MT_NEXT_PROTO 67 -# endif -# define SSL3_MT_MESSAGE_HASH 254 -# define DTLS1_MT_HELLO_VERIFY_REQUEST 3 - -/* Dummy message type for handling CCS like a normal handshake message */ -# define SSL3_MT_CHANGE_CIPHER_SPEC 0x0101 - -# define SSL3_MT_CCS 1 - -/* These are used when changing over to a new cipher */ -# define SSL3_CC_READ 0x001 -# define SSL3_CC_WRITE 0x002 -# define SSL3_CC_CLIENT 0x010 -# define SSL3_CC_SERVER 0x020 -# define SSL3_CC_EARLY 0x040 -# define SSL3_CC_HANDSHAKE 0x080 -# define SSL3_CC_APPLICATION 0x100 -# define SSL3_CHANGE_CIPHER_CLIENT_WRITE (SSL3_CC_CLIENT|SSL3_CC_WRITE) -# define SSL3_CHANGE_CIPHER_SERVER_READ (SSL3_CC_SERVER|SSL3_CC_READ) -# define SSL3_CHANGE_CIPHER_CLIENT_READ (SSL3_CC_CLIENT|SSL3_CC_READ) -# define SSL3_CHANGE_CIPHER_SERVER_WRITE (SSL3_CC_SERVER|SSL3_CC_WRITE) - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/sslerr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/sslerr.h deleted file mode 100644 index 53e0dec..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/sslerr.h +++ /dev/null @@ -1,382 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_SSLERR_H -# define OPENSSL_SSLERR_H -# pragma once - -# include -# include -# include - - - -/* - * SSL reason codes. - */ -# define SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY 291 -# define SSL_R_APP_DATA_IN_HANDSHAKE 100 -# define SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT 272 -# define SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE 158 -# define SSL_R_BAD_CERTIFICATE 348 -# define SSL_R_BAD_CHANGE_CIPHER_SPEC 103 -# define SSL_R_BAD_CIPHER 186 -# define SSL_R_BAD_COMPRESSION_ALGORITHM 326 -# define SSL_R_BAD_DATA 390 -# define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106 -# define SSL_R_BAD_DECOMPRESSION 107 -# define SSL_R_BAD_DH_VALUE 102 -# define SSL_R_BAD_DIGEST_LENGTH 111 -# define SSL_R_BAD_EARLY_DATA 233 -# define SSL_R_BAD_ECC_CERT 304 -# define SSL_R_BAD_ECPOINT 306 -# define SSL_R_BAD_EXTENSION 110 -# define SSL_R_BAD_HANDSHAKE_LENGTH 332 -# define SSL_R_BAD_HANDSHAKE_STATE 236 -# define SSL_R_BAD_HELLO_REQUEST 105 -# define SSL_R_BAD_HRR_VERSION 263 -# define SSL_R_BAD_KEY_SHARE 108 -# define SSL_R_BAD_KEY_UPDATE 122 -# define SSL_R_BAD_LEGACY_VERSION 292 -# define SSL_R_BAD_LENGTH 271 -# define SSL_R_BAD_PACKET 240 -# define SSL_R_BAD_PACKET_LENGTH 115 -# define SSL_R_BAD_PROTOCOL_VERSION_NUMBER 116 -# define SSL_R_BAD_PSK 219 -# define SSL_R_BAD_PSK_IDENTITY 114 -# define SSL_R_BAD_RECORD_TYPE 443 -# define SSL_R_BAD_RSA_ENCRYPT 119 -# define SSL_R_BAD_SIGNATURE 123 -# define SSL_R_BAD_SRP_A_LENGTH 347 -# define SSL_R_BAD_SRP_PARAMETERS 371 -# define SSL_R_BAD_SRTP_MKI_VALUE 352 -# define SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST 353 -# define SSL_R_BAD_SSL_FILETYPE 124 -# define SSL_R_BAD_VALUE 384 -# define SSL_R_BAD_WRITE_RETRY 127 -# define SSL_R_BINDER_DOES_NOT_VERIFY 253 -# define SSL_R_BIO_NOT_SET 128 -# define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG 129 -# define SSL_R_BN_LIB 130 -# define SSL_R_CALLBACK_FAILED 234 -# define SSL_R_CANNOT_CHANGE_CIPHER 109 -# define SSL_R_CANNOT_GET_GROUP_NAME 299 -# define SSL_R_CA_DN_LENGTH_MISMATCH 131 -# define SSL_R_CA_KEY_TOO_SMALL 397 -# define SSL_R_CA_MD_TOO_WEAK 398 -# define SSL_R_CCS_RECEIVED_EARLY 133 -# define SSL_R_CERTIFICATE_VERIFY_FAILED 134 -# define SSL_R_CERT_CB_ERROR 377 -# define SSL_R_CERT_LENGTH_MISMATCH 135 -# define SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED 218 -# define SSL_R_CIPHER_CODE_WRONG_LENGTH 137 -# define SSL_R_CLIENTHELLO_TLSEXT 226 -# define SSL_R_COMPRESSED_LENGTH_TOO_LONG 140 -# define SSL_R_COMPRESSION_DISABLED 343 -# define SSL_R_COMPRESSION_FAILURE 141 -# define SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE 307 -# define SSL_R_COMPRESSION_LIBRARY_ERROR 142 -# define SSL_R_CONNECTION_TYPE_NOT_SET 144 -# define SSL_R_CONN_USE_ONLY 356 -# define SSL_R_CONTEXT_NOT_DANE_ENABLED 167 -# define SSL_R_COOKIE_GEN_CALLBACK_FAILURE 400 -# define SSL_R_COOKIE_MISMATCH 308 -# define SSL_R_COPY_PARAMETERS_FAILED 296 -# define SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED 206 -# define SSL_R_DANE_ALREADY_ENABLED 172 -# define SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL 173 -# define SSL_R_DANE_NOT_ENABLED 175 -# define SSL_R_DANE_TLSA_BAD_CERTIFICATE 180 -# define SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE 184 -# define SSL_R_DANE_TLSA_BAD_DATA_LENGTH 189 -# define SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH 192 -# define SSL_R_DANE_TLSA_BAD_MATCHING_TYPE 200 -# define SSL_R_DANE_TLSA_BAD_PUBLIC_KEY 201 -# define SSL_R_DANE_TLSA_BAD_SELECTOR 202 -# define SSL_R_DANE_TLSA_NULL_DATA 203 -# define SSL_R_DATA_BETWEEN_CCS_AND_FINISHED 145 -# define SSL_R_DATA_LENGTH_TOO_LONG 146 -# define SSL_R_DECRYPTION_FAILED 147 -# define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 281 -# define SSL_R_DH_KEY_TOO_SMALL 394 -# define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 -# define SSL_R_DIGEST_CHECK_FAILED 149 -# define SSL_R_DOMAIN_USE_ONLY 422 -# define SSL_R_DTLS_MESSAGE_TOO_BIG 334 -# define SSL_R_DUPLICATE_COMPRESSION_ID 309 -# define SSL_R_ECC_CERT_NOT_FOR_SIGNING 318 -# define SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE 374 -# define SSL_R_EE_KEY_TOO_SMALL 399 -# define SSL_R_EMPTY_RAW_PUBLIC_KEY 349 -# define SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST 354 -# define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 -# define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST 151 -# define SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG 419 -# define SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN 204 -# define SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE 194 -# define SSL_R_EXCESSIVE_MESSAGE_SIZE 152 -# define SSL_R_EXTENSION_NOT_RECEIVED 279 -# define SSL_R_EXTRA_DATA_IN_MESSAGE 153 -# define SSL_R_EXT_LENGTH_MISMATCH 163 -# define SSL_R_FAILED_TO_GET_PARAMETER 316 -# define SSL_R_FAILED_TO_INIT_ASYNC 405 -# define SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE 417 -# define SSL_R_FEATURE_NOT_RENEGOTIABLE 413 -# define SSL_R_FRAGMENTED_CLIENT_HELLO 401 -# define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154 -# define SSL_R_HTTPS_PROXY_REQUEST 155 -# define SSL_R_HTTP_REQUEST 156 -# define SSL_R_ILLEGAL_POINT_COMPRESSION 162 -# define SSL_R_ILLEGAL_SUITEB_DIGEST 380 -# define SSL_R_INAPPROPRIATE_FALLBACK 373 -# define SSL_R_INCONSISTENT_COMPRESSION 340 -# define SSL_R_INCONSISTENT_EARLY_DATA_ALPN 222 -# define SSL_R_INCONSISTENT_EARLY_DATA_SNI 231 -# define SSL_R_INCONSISTENT_EXTMS 104 -# define SSL_R_INSUFFICIENT_SECURITY 241 -# define SSL_R_INVALID_ALERT 205 -# define SSL_R_INVALID_CCS_MESSAGE 260 -# define SSL_R_INVALID_CERTIFICATE_OR_ALG 238 -# define SSL_R_INVALID_COMMAND 280 -# define SSL_R_INVALID_COMPRESSION_ALGORITHM 341 -# define SSL_R_INVALID_CONFIG 283 -# define SSL_R_INVALID_CONFIGURATION_NAME 113 -# define SSL_R_INVALID_CONTEXT 282 -# define SSL_R_INVALID_CT_VALIDATION_TYPE 212 -# define SSL_R_INVALID_KEY_UPDATE_TYPE 120 -# define SSL_R_INVALID_MAX_EARLY_DATA 174 -# define SSL_R_INVALID_NULL_CMD_NAME 385 -# define SSL_R_INVALID_RAW_PUBLIC_KEY 350 -# define SSL_R_INVALID_RECORD 317 -# define SSL_R_INVALID_SEQUENCE_NUMBER 402 -# define SSL_R_INVALID_SERVERINFO_DATA 388 -# define SSL_R_INVALID_SESSION_ID 999 -# define SSL_R_INVALID_SRP_USERNAME 357 -# define SSL_R_INVALID_STATUS_RESPONSE 328 -# define SSL_R_INVALID_TICKET_KEYS_LENGTH 325 -# define SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED 333 -# define SSL_R_LENGTH_MISMATCH 159 -# define SSL_R_LENGTH_TOO_LONG 404 -# define SSL_R_LENGTH_TOO_SHORT 160 -# define SSL_R_LIBRARY_BUG 274 -# define SSL_R_LIBRARY_HAS_NO_CIPHERS 161 -# define SSL_R_LISTENER_USE_ONLY 421 -# define SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED 395 -# define SSL_R_MISSING_DSA_SIGNING_CERT 165 -# define SSL_R_MISSING_ECDSA_SIGNING_CERT 381 -# define SSL_R_MISSING_FATAL 256 -# define SSL_R_MISSING_PARAMETERS 290 -# define SSL_R_MISSING_PSK_KEX_MODES_EXTENSION 310 -# define SSL_R_MISSING_QUIC_TLS_FUNCTIONS 423 -# define SSL_R_MISSING_RSA_CERTIFICATE 168 -# define SSL_R_MISSING_RSA_ENCRYPTING_CERT 169 -# define SSL_R_MISSING_RSA_SIGNING_CERT 170 -# define SSL_R_MISSING_SIGALGS_EXTENSION 112 -# define SSL_R_MISSING_SIGNING_CERT 221 -# define SSL_R_MISSING_SRP_PARAM 358 -# define SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION 209 -# define SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION 420 -# define SSL_R_MISSING_TMP_DH_KEY 171 -# define SSL_R_MISSING_TMP_ECDH_KEY 311 -# define SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA 293 -# define SSL_R_NOT_ON_RECORD_BOUNDARY 182 -# define SSL_R_NOT_REPLACING_CERTIFICATE 289 -# define SSL_R_NOT_SERVER 284 -# define SSL_R_NO_APPLICATION_PROTOCOL 235 -# define SSL_R_NO_CERTIFICATES_RETURNED 176 -# define SSL_R_NO_CERTIFICATE_ASSIGNED 177 -# define SSL_R_NO_CERTIFICATE_SET 179 -# define SSL_R_NO_CHANGE_FOLLOWING_HRR 214 -# define SSL_R_NO_CIPHERS_AVAILABLE 181 -# define SSL_R_NO_CIPHERS_SPECIFIED 183 -# define SSL_R_NO_CIPHER_MATCH 185 -# define SSL_R_NO_CLIENT_CERT_METHOD 331 -# define SSL_R_NO_COMPRESSION_SPECIFIED 187 -# define SSL_R_NO_COOKIE_CALLBACK_SET 287 -# define SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER 330 -# define SSL_R_NO_METHOD_SPECIFIED 188 -# define SSL_R_NO_PEM_EXTENSIONS 389 -# define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190 -# define SSL_R_NO_PROTOCOLS_AVAILABLE 191 -# define SSL_R_NO_RENEGOTIATION 339 -# define SSL_R_NO_REQUIRED_DIGEST 324 -# define SSL_R_NO_SHARED_CIPHER 193 -# define SSL_R_NO_SHARED_GROUPS 410 -# define SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS 376 -# define SSL_R_NO_SRTP_PROFILES 359 -# define SSL_R_NO_STREAM 355 -# define SSL_R_NO_SUITABLE_DIGEST_ALGORITHM 297 -# define SSL_R_NO_SUITABLE_GROUPS 295 -# define SSL_R_NO_SUITABLE_KEY_SHARE 101 -# define SSL_R_NO_SUITABLE_RECORD_LAYER 322 -# define SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM 118 -# define SSL_R_NO_VALID_SCTS 216 -# define SSL_R_NO_VERIFY_COOKIE_CALLBACK 403 -# define SSL_R_NULL_SSL_CTX 195 -# define SSL_R_NULL_SSL_METHOD_PASSED 196 -# define SSL_R_OCSP_CALLBACK_FAILURE 305 -# define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197 -# define SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED 344 -# define SSL_R_OVERFLOW_ERROR 237 -# define SSL_R_PACKET_LENGTH_TOO_LONG 198 -# define SSL_R_PARSE_TLSEXT 227 -# define SSL_R_PATH_TOO_LONG 270 -# define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199 -# define SSL_R_PEM_NAME_BAD_PREFIX 391 -# define SSL_R_PEM_NAME_TOO_SHORT 392 -# define SSL_R_PIPELINE_FAILURE 406 -# define SSL_R_POLL_REQUEST_NOT_SUPPORTED 418 -# define SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR 278 -# define SSL_R_PRIVATE_KEY_MISMATCH 288 -# define SSL_R_PROTOCOL_IS_SHUTDOWN 207 -# define SSL_R_PSK_IDENTITY_NOT_FOUND 223 -# define SSL_R_PSK_NO_CLIENT_CB 224 -# define SSL_R_PSK_NO_SERVER_CB 225 -# define SSL_R_QUIC_HANDSHAKE_LAYER_ERROR 393 -# define SSL_R_QUIC_NETWORK_ERROR 387 -# define SSL_R_QUIC_PROTOCOL_ERROR 382 -# define SSL_R_READ_BIO_NOT_SET 211 -# define SSL_R_READ_TIMEOUT_EXPIRED 312 -# define SSL_R_RECORDS_NOT_RELEASED 321 -# define SSL_R_RECORD_LAYER_FAILURE 313 -# define SSL_R_RECORD_LENGTH_MISMATCH 213 -# define SSL_R_RECORD_TOO_SMALL 298 -# define SSL_R_REMOTE_PEER_ADDRESS_NOT_SET 346 -# define SSL_R_RENEGOTIATE_EXT_TOO_LONG 335 -# define SSL_R_RENEGOTIATION_ENCODING_ERR 336 -# define SSL_R_RENEGOTIATION_MISMATCH 337 -# define SSL_R_REQUEST_PENDING 285 -# define SSL_R_REQUEST_SENT 286 -# define SSL_R_REQUIRED_CIPHER_MISSING 215 -# define SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING 342 -# define SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING 345 -# define SSL_R_SCT_VERIFICATION_FAILED 208 -# define SSL_R_SEQUENCE_CTR_WRAPPED 327 -# define SSL_R_SERVERHELLO_TLSEXT 275 -# define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277 -# define SSL_R_SHUTDOWN_WHILE_IN_INIT 407 -# define SSL_R_SIGNATURE_ALGORITHMS_ERROR 360 -# define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220 -# define SSL_R_SRP_A_CALC 361 -# define SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES 362 -# define SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG 363 -# define SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE 364 -# define SSL_R_SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH 232 -# define SSL_R_SSL3_EXT_INVALID_SERVERNAME 319 -# define SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE 320 -# define SSL_R_SSL3_SESSION_ID_TOO_LONG 300 -# define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042 -# define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED 1045 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED 1044 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN 1046 -# define SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE 1030 -# define SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE 1040 -# define SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER 1047 -# define SSL_R_SSLV3_ALERT_NO_CERTIFICATE 1041 -# define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010 -# define SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE 1043 -# define SSL_R_SSL_COMMAND_SECTION_EMPTY 117 -# define SSL_R_SSL_COMMAND_SECTION_NOT_FOUND 125 -# define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION 228 -# define SSL_R_SSL_HANDSHAKE_FAILURE 229 -# define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS 230 -# define SSL_R_SSL_NEGATIVE_LENGTH 372 -# define SSL_R_SSL_SECTION_EMPTY 126 -# define SSL_R_SSL_SECTION_NOT_FOUND 136 -# define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED 301 -# define SSL_R_SSL_SESSION_ID_CONFLICT 302 -# define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG 273 -# define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH 303 -# define SSL_R_SSL_SESSION_ID_TOO_LONG 408 -# define SSL_R_SSL_SESSION_VERSION_MISMATCH 210 -# define SSL_R_STILL_IN_INIT 121 -# define SSL_R_STREAM_COUNT_LIMITED 411 -# define SSL_R_STREAM_FINISHED 365 -# define SSL_R_STREAM_RECV_ONLY 366 -# define SSL_R_STREAM_RESET 375 -# define SSL_R_STREAM_SEND_ONLY 379 -# define SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED 1116 -# define SSL_R_TLSV13_ALERT_MISSING_EXTENSION 1109 -# define SSL_R_TLSV1_ALERT_ACCESS_DENIED 1049 -# define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050 -# define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021 -# define SSL_R_TLSV1_ALERT_DECRYPT_ERROR 1051 -# define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION 1060 -# define SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK 1086 -# define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY 1071 -# define SSL_R_TLSV1_ALERT_INTERNAL_ERROR 1080 -# define SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL 1120 -# define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION 1100 -# define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION 1070 -# define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022 -# define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048 -# define SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY 1115 -# define SSL_R_TLSV1_ALERT_USER_CANCELLED 1090 -# define SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE 1114 -# define SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE 1113 -# define SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE 1111 -# define SSL_R_TLSV1_UNRECOGNIZED_NAME 1112 -# define SSL_R_TLSV1_UNSUPPORTED_EXTENSION 1110 -# define SSL_R_TLS_ILLEGAL_EXPORTER_LABEL 367 -# define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157 -# define SSL_R_TOO_MANY_KEY_UPDATES 132 -# define SSL_R_TOO_MANY_WARN_ALERTS 409 -# define SSL_R_TOO_MUCH_EARLY_DATA 164 -# define SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS 314 -# define SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS 239 -# define SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES 242 -# define SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES 243 -# define SSL_R_UNEXPECTED_CCS_MESSAGE 262 -# define SSL_R_UNEXPECTED_END_OF_EARLY_DATA 178 -# define SSL_R_UNEXPECTED_EOF_WHILE_READING 294 -# define SSL_R_UNEXPECTED_MESSAGE 244 -# define SSL_R_UNEXPECTED_RECORD 245 -# define SSL_R_UNINITIALIZED 276 -# define SSL_R_UNKNOWN_ALERT_TYPE 246 -# define SSL_R_UNKNOWN_CERTIFICATE_TYPE 247 -# define SSL_R_UNKNOWN_CIPHER_RETURNED 248 -# define SSL_R_UNKNOWN_CIPHER_TYPE 249 -# define SSL_R_UNKNOWN_CMD_NAME 386 -# define SSL_R_UNKNOWN_COMMAND 139 -# define SSL_R_UNKNOWN_DIGEST 368 -# define SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE 250 -# define SSL_R_UNKNOWN_MANDATORY_PARAMETER 323 -# define SSL_R_UNKNOWN_PKEY_TYPE 251 -# define SSL_R_UNKNOWN_PROTOCOL 252 -# define SSL_R_UNKNOWN_SSL_VERSION 254 -# define SSL_R_UNKNOWN_STATE 255 -# define SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED 338 -# define SSL_R_UNSOLICITED_EXTENSION 217 -# define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257 -# define SSL_R_UNSUPPORTED_CONFIG_VALUE 414 -# define SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS 415 -# define SSL_R_UNSUPPORTED_CONFIG_VALUE_OP 416 -# define SSL_R_UNSUPPORTED_ELLIPTIC_CURVE 315 -# define SSL_R_UNSUPPORTED_PROTOCOL 258 -# define SSL_R_UNSUPPORTED_SSL_VERSION 259 -# define SSL_R_UNSUPPORTED_STATUS_TYPE 329 -# define SSL_R_UNSUPPORTED_WRITE_FLAG 412 -# define SSL_R_USE_SRTP_NOT_NEGOTIATED 369 -# define SSL_R_VERSION_TOO_HIGH 166 -# define SSL_R_VERSION_TOO_LOW 396 -# define SSL_R_WRONG_CERTIFICATE_TYPE 383 -# define SSL_R_WRONG_CIPHER_RETURNED 261 -# define SSL_R_WRONG_CURVE 378 -# define SSL_R_WRONG_RPK_TYPE 351 -# define SSL_R_WRONG_SIGNATURE_LENGTH 264 -# define SSL_R_WRONG_SIGNATURE_SIZE 265 -# define SSL_R_WRONG_SIGNATURE_TYPE 370 -# define SSL_R_WRONG_SSL_VERSION 266 -# define SSL_R_WRONG_VERSION_NUMBER 267 -# define SSL_R_X509_LIB 268 -# define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS 269 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/sslerr_legacy.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/sslerr_legacy.h deleted file mode 100644 index 4c35367..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/sslerr_legacy.h +++ /dev/null @@ -1,467 +0,0 @@ -/* - * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * This header file preserves symbols from pre-3.0 OpenSSL. - * It should never be included directly, as it's already included - * by the public sslerr.h headers, and since it will go away some - * time in the future. - */ - -#ifndef OPENSSL_SSLERR_LEGACY_H -# define OPENSSL_SSLERR_LEGACY_H -# pragma once - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int ERR_load_SSL_strings(void); - -/* Collected _F_ macros from OpenSSL 1.1.1 */ - -/* - * SSL function codes. - */ -# define SSL_F_ADD_CLIENT_KEY_SHARE_EXT 0 -# define SSL_F_ADD_KEY_SHARE 0 -# define SSL_F_BYTES_TO_CIPHER_LIST 0 -# define SSL_F_CHECK_SUITEB_CIPHER_LIST 0 -# define SSL_F_CIPHERSUITE_CB 0 -# define SSL_F_CONSTRUCT_CA_NAMES 0 -# define SSL_F_CONSTRUCT_KEY_EXCHANGE_TBS 0 -# define SSL_F_CONSTRUCT_STATEFUL_TICKET 0 -# define SSL_F_CONSTRUCT_STATELESS_TICKET 0 -# define SSL_F_CREATE_SYNTHETIC_MESSAGE_HASH 0 -# define SSL_F_CREATE_TICKET_PREQUEL 0 -# define SSL_F_CT_MOVE_SCTS 0 -# define SSL_F_CT_STRICT 0 -# define SSL_F_CUSTOM_EXT_ADD 0 -# define SSL_F_CUSTOM_EXT_PARSE 0 -# define SSL_F_D2I_SSL_SESSION 0 -# define SSL_F_DANE_CTX_ENABLE 0 -# define SSL_F_DANE_MTYPE_SET 0 -# define SSL_F_DANE_TLSA_ADD 0 -# define SSL_F_DERIVE_SECRET_KEY_AND_IV 0 -# define SSL_F_DO_DTLS1_WRITE 0 -# define SSL_F_DO_SSL3_WRITE 0 -# define SSL_F_DTLS1_BUFFER_RECORD 0 -# define SSL_F_DTLS1_CHECK_TIMEOUT_NUM 0 -# define SSL_F_DTLS1_HEARTBEAT 0 -# define SSL_F_DTLS1_HM_FRAGMENT_NEW 0 -# define SSL_F_DTLS1_PREPROCESS_FRAGMENT 0 -# define SSL_F_DTLS1_PROCESS_BUFFERED_RECORDS 0 -# define SSL_F_DTLS1_PROCESS_RECORD 0 -# define SSL_F_DTLS1_READ_BYTES 0 -# define SSL_F_DTLS1_READ_FAILED 0 -# define SSL_F_DTLS1_RETRANSMIT_MESSAGE 0 -# define SSL_F_DTLS1_WRITE_APP_DATA_BYTES 0 -# define SSL_F_DTLS1_WRITE_BYTES 0 -# define SSL_F_DTLSV1_LISTEN 0 -# define SSL_F_DTLS_CONSTRUCT_CHANGE_CIPHER_SPEC 0 -# define SSL_F_DTLS_CONSTRUCT_HELLO_VERIFY_REQUEST 0 -# define SSL_F_DTLS_GET_REASSEMBLED_MESSAGE 0 -# define SSL_F_DTLS_PROCESS_HELLO_VERIFY 0 -# define SSL_F_DTLS_RECORD_LAYER_NEW 0 -# define SSL_F_DTLS_WAIT_FOR_DRY 0 -# define SSL_F_EARLY_DATA_COUNT_OK 0 -# define SSL_F_FINAL_EARLY_DATA 0 -# define SSL_F_FINAL_EC_PT_FORMATS 0 -# define SSL_F_FINAL_EMS 0 -# define SSL_F_FINAL_KEY_SHARE 0 -# define SSL_F_FINAL_MAXFRAGMENTLEN 0 -# define SSL_F_FINAL_RENEGOTIATE 0 -# define SSL_F_FINAL_SERVER_NAME 0 -# define SSL_F_FINAL_SIG_ALGS 0 -# define SSL_F_GET_CERT_VERIFY_TBS_DATA 0 -# define SSL_F_NSS_KEYLOG_INT 0 -# define SSL_F_OPENSSL_INIT_SSL 0 -# define SSL_F_OSSL_STATEM_CLIENT13_READ_TRANSITION 0 -# define SSL_F_OSSL_STATEM_CLIENT13_WRITE_TRANSITION 0 -# define SSL_F_OSSL_STATEM_CLIENT_CONSTRUCT_MESSAGE 0 -# define SSL_F_OSSL_STATEM_CLIENT_POST_PROCESS_MESSAGE 0 -# define SSL_F_OSSL_STATEM_CLIENT_PROCESS_MESSAGE 0 -# define SSL_F_OSSL_STATEM_CLIENT_READ_TRANSITION 0 -# define SSL_F_OSSL_STATEM_CLIENT_WRITE_TRANSITION 0 -# define SSL_F_OSSL_STATEM_SERVER13_READ_TRANSITION 0 -# define SSL_F_OSSL_STATEM_SERVER13_WRITE_TRANSITION 0 -# define SSL_F_OSSL_STATEM_SERVER_CONSTRUCT_MESSAGE 0 -# define SSL_F_OSSL_STATEM_SERVER_POST_PROCESS_MESSAGE 0 -# define SSL_F_OSSL_STATEM_SERVER_POST_WORK 0 -# define SSL_F_OSSL_STATEM_SERVER_PRE_WORK 0 -# define SSL_F_OSSL_STATEM_SERVER_PROCESS_MESSAGE 0 -# define SSL_F_OSSL_STATEM_SERVER_READ_TRANSITION 0 -# define SSL_F_OSSL_STATEM_SERVER_WRITE_TRANSITION 0 -# define SSL_F_PARSE_CA_NAMES 0 -# define SSL_F_PITEM_NEW 0 -# define SSL_F_PQUEUE_NEW 0 -# define SSL_F_PROCESS_KEY_SHARE_EXT 0 -# define SSL_F_READ_STATE_MACHINE 0 -# define SSL_F_SET_CLIENT_CIPHERSUITE 0 -# define SSL_F_SRP_GENERATE_CLIENT_MASTER_SECRET 0 -# define SSL_F_SRP_GENERATE_SERVER_MASTER_SECRET 0 -# define SSL_F_SRP_VERIFY_SERVER_PARAM 0 -# define SSL_F_SSL3_CHANGE_CIPHER_STATE 0 -# define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 0 -# define SSL_F_SSL3_CTRL 0 -# define SSL_F_SSL3_CTX_CTRL 0 -# define SSL_F_SSL3_DIGEST_CACHED_RECORDS 0 -# define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 0 -# define SSL_F_SSL3_ENC 0 -# define SSL_F_SSL3_FINAL_FINISH_MAC 0 -# define SSL_F_SSL3_FINISH_MAC 0 -# define SSL_F_SSL3_GENERATE_KEY_BLOCK 0 -# define SSL_F_SSL3_GENERATE_MASTER_SECRET 0 -# define SSL_F_SSL3_GET_RECORD 0 -# define SSL_F_SSL3_INIT_FINISHED_MAC 0 -# define SSL_F_SSL3_OUTPUT_CERT_CHAIN 0 -# define SSL_F_SSL3_READ_BYTES 0 -# define SSL_F_SSL3_READ_N 0 -# define SSL_F_SSL3_SETUP_KEY_BLOCK 0 -# define SSL_F_SSL3_SETUP_READ_BUFFER 0 -# define SSL_F_SSL3_SETUP_WRITE_BUFFER 0 -# define SSL_F_SSL3_WRITE_BYTES 0 -# define SSL_F_SSL3_WRITE_PENDING 0 -# define SSL_F_SSL_ADD_CERT_CHAIN 0 -# define SSL_F_SSL_ADD_CERT_TO_BUF 0 -# define SSL_F_SSL_ADD_CERT_TO_WPACKET 0 -# define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 0 -# define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 0 -# define SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT 0 -# define SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK 0 -# define SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK 0 -# define SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT 0 -# define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 0 -# define SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT 0 -# define SSL_F_SSL_BUILD_CERT_CHAIN 0 -# define SSL_F_SSL_BYTES_TO_CIPHER_LIST 0 -# define SSL_F_SSL_CACHE_CIPHERLIST 0 -# define SSL_F_SSL_CERT_ADD0_CHAIN_CERT 0 -# define SSL_F_SSL_CERT_DUP 0 -# define SSL_F_SSL_CERT_NEW 0 -# define SSL_F_SSL_CERT_SET0_CHAIN 0 -# define SSL_F_SSL_CHECK_PRIVATE_KEY 0 -# define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 0 -# define SSL_F_SSL_CHECK_SRP_EXT_CLIENTHELLO 0 -# define SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG 0 -# define SSL_F_SSL_CHOOSE_CLIENT_VERSION 0 -# define SSL_F_SSL_CIPHER_DESCRIPTION 0 -# define SSL_F_SSL_CIPHER_LIST_TO_BYTES 0 -# define SSL_F_SSL_CIPHER_PROCESS_RULESTR 0 -# define SSL_F_SSL_CIPHER_STRENGTH_SORT 0 -# define SSL_F_SSL_CLEAR 0 -# define SSL_F_SSL_CLIENT_HELLO_GET1_EXTENSIONS_PRESENT 0 -# define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 0 -# define SSL_F_SSL_CONF_CMD 0 -# define SSL_F_SSL_CREATE_CIPHER_LIST 0 -# define SSL_F_SSL_CTRL 0 -# define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 0 -# define SSL_F_SSL_CTX_ENABLE_CT 0 -# define SSL_F_SSL_CTX_MAKE_PROFILES 0 -# define SSL_F_SSL_CTX_NEW 0 -# define SSL_F_SSL_CTX_SET_ALPN_PROTOS 0 -# define SSL_F_SSL_CTX_SET_CIPHER_LIST 0 -# define SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE 0 -# define SSL_F_SSL_CTX_SET_CT_VALIDATION_CALLBACK 0 -# define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 0 -# define SSL_F_SSL_CTX_SET_SSL_VERSION 0 -# define SSL_F_SSL_CTX_SET_TLSEXT_MAX_FRAGMENT_LENGTH 0 -# define SSL_F_SSL_CTX_USE_CERTIFICATE 0 -# define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 0 -# define SSL_F_SSL_CTX_USE_CERTIFICATE_FILE 0 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY 0 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 0 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE 0 -# define SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT 0 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 0 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 0 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 0 -# define SSL_F_SSL_CTX_USE_SERVERINFO 0 -# define SSL_F_SSL_CTX_USE_SERVERINFO_EX 0 -# define SSL_F_SSL_CTX_USE_SERVERINFO_FILE 0 -# define SSL_F_SSL_DANE_DUP 0 -# define SSL_F_SSL_DANE_ENABLE 0 -# define SSL_F_SSL_DERIVE 0 -# define SSL_F_SSL_DO_CONFIG 0 -# define SSL_F_SSL_DO_HANDSHAKE 0 -# define SSL_F_SSL_DUP_CA_LIST 0 -# define SSL_F_SSL_ENABLE_CT 0 -# define SSL_F_SSL_GENERATE_PKEY_GROUP 0 -# define SSL_F_SSL_GENERATE_SESSION_ID 0 -# define SSL_F_SSL_GET_NEW_SESSION 0 -# define SSL_F_SSL_GET_PREV_SESSION 0 -# define SSL_F_SSL_GET_SERVER_CERT_INDEX 0 -# define SSL_F_SSL_GET_SIGN_PKEY 0 -# define SSL_F_SSL_HANDSHAKE_HASH 0 -# define SSL_F_SSL_INIT_WBIO_BUFFER 0 -# define SSL_F_SSL_KEY_UPDATE 0 -# define SSL_F_SSL_LOAD_CLIENT_CA_FILE 0 -# define SSL_F_SSL_LOG_MASTER_SECRET 0 -# define SSL_F_SSL_LOG_RSA_CLIENT_KEY_EXCHANGE 0 -# define SSL_F_SSL_MODULE_INIT 0 -# define SSL_F_SSL_NEW 0 -# define SSL_F_SSL_NEXT_PROTO_VALIDATE 0 -# define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 0 -# define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 0 -# define SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT 0 -# define SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT 0 -# define SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT 0 -# define SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT 0 -# define SSL_F_SSL_PEEK 0 -# define SSL_F_SSL_PEEK_EX 0 -# define SSL_F_SSL_PEEK_INTERNAL 0 -# define SSL_F_SSL_READ 0 -# define SSL_F_SSL_READ_EARLY_DATA 0 -# define SSL_F_SSL_READ_EX 0 -# define SSL_F_SSL_READ_INTERNAL 0 -# define SSL_F_SSL_RENEGOTIATE 0 -# define SSL_F_SSL_RENEGOTIATE_ABBREVIATED 0 -# define SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT 0 -# define SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT 0 -# define SSL_F_SSL_SESSION_DUP 0 -# define SSL_F_SSL_SESSION_NEW 0 -# define SSL_F_SSL_SESSION_PRINT_FP 0 -# define SSL_F_SSL_SESSION_SET1_ID 0 -# define SSL_F_SSL_SESSION_SET1_ID_CONTEXT 0 -# define SSL_F_SSL_SET_ALPN_PROTOS 0 -# define SSL_F_SSL_SET_CERT 0 -# define SSL_F_SSL_SET_CERT_AND_KEY 0 -# define SSL_F_SSL_SET_CIPHER_LIST 0 -# define SSL_F_SSL_SET_CT_VALIDATION_CALLBACK 0 -# define SSL_F_SSL_SET_FD 0 -# define SSL_F_SSL_SET_PKEY 0 -# define SSL_F_SSL_SET_RFD 0 -# define SSL_F_SSL_SET_SESSION 0 -# define SSL_F_SSL_SET_SESSION_ID_CONTEXT 0 -# define SSL_F_SSL_SET_SESSION_TICKET_EXT 0 -# define SSL_F_SSL_SET_TLSEXT_MAX_FRAGMENT_LENGTH 0 -# define SSL_F_SSL_SET_WFD 0 -# define SSL_F_SSL_SHUTDOWN 0 -# define SSL_F_SSL_SRP_CTX_INIT 0 -# define SSL_F_SSL_START_ASYNC_JOB 0 -# define SSL_F_SSL_UNDEFINED_FUNCTION 0 -# define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 0 -# define SSL_F_SSL_USE_CERTIFICATE 0 -# define SSL_F_SSL_USE_CERTIFICATE_ASN1 0 -# define SSL_F_SSL_USE_CERTIFICATE_FILE 0 -# define SSL_F_SSL_USE_PRIVATEKEY 0 -# define SSL_F_SSL_USE_PRIVATEKEY_ASN1 0 -# define SSL_F_SSL_USE_PRIVATEKEY_FILE 0 -# define SSL_F_SSL_USE_PSK_IDENTITY_HINT 0 -# define SSL_F_SSL_USE_RSAPRIVATEKEY 0 -# define SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 0 -# define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 0 -# define SSL_F_SSL_VALIDATE_CT 0 -# define SSL_F_SSL_VERIFY_CERT_CHAIN 0 -# define SSL_F_SSL_VERIFY_CLIENT_POST_HANDSHAKE 0 -# define SSL_F_SSL_WRITE 0 -# define SSL_F_SSL_WRITE_EARLY_DATA 0 -# define SSL_F_SSL_WRITE_EARLY_FINISH 0 -# define SSL_F_SSL_WRITE_EX 0 -# define SSL_F_SSL_WRITE_INTERNAL 0 -# define SSL_F_STATE_MACHINE 0 -# define SSL_F_TLS12_CHECK_PEER_SIGALG 0 -# define SSL_F_TLS12_COPY_SIGALGS 0 -# define SSL_F_TLS13_CHANGE_CIPHER_STATE 0 -# define SSL_F_TLS13_ENC 0 -# define SSL_F_TLS13_FINAL_FINISH_MAC 0 -# define SSL_F_TLS13_GENERATE_SECRET 0 -# define SSL_F_TLS13_HKDF_EXPAND 0 -# define SSL_F_TLS13_RESTORE_HANDSHAKE_DIGEST_FOR_PHA 0 -# define SSL_F_TLS13_SAVE_HANDSHAKE_DIGEST_FOR_PHA 0 -# define SSL_F_TLS13_SETUP_KEY_BLOCK 0 -# define SSL_F_TLS1_CHANGE_CIPHER_STATE 0 -# define SSL_F_TLS1_CHECK_DUPLICATE_EXTENSIONS 0 -# define SSL_F_TLS1_ENC 0 -# define SSL_F_TLS1_EXPORT_KEYING_MATERIAL 0 -# define SSL_F_TLS1_GET_CURVELIST 0 -# define SSL_F_TLS1_PRF 0 -# define SSL_F_TLS1_SAVE_U16 0 -# define SSL_F_TLS1_SETUP_KEY_BLOCK 0 -# define SSL_F_TLS1_SET_GROUPS 0 -# define SSL_F_TLS1_SET_RAW_SIGALGS 0 -# define SSL_F_TLS1_SET_SERVER_SIGALGS 0 -# define SSL_F_TLS1_SET_SHARED_SIGALGS 0 -# define SSL_F_TLS1_SET_SIGALGS 0 -# define SSL_F_TLS_CHOOSE_SIGALG 0 -# define SSL_F_TLS_CLIENT_KEY_EXCHANGE_POST_WORK 0 -# define SSL_F_TLS_COLLECT_EXTENSIONS 0 -# define SSL_F_TLS_CONSTRUCT_CERTIFICATE_AUTHORITIES 0 -# define SSL_F_TLS_CONSTRUCT_CERTIFICATE_REQUEST 0 -# define SSL_F_TLS_CONSTRUCT_CERT_STATUS 0 -# define SSL_F_TLS_CONSTRUCT_CERT_STATUS_BODY 0 -# define SSL_F_TLS_CONSTRUCT_CERT_VERIFY 0 -# define SSL_F_TLS_CONSTRUCT_CHANGE_CIPHER_SPEC 0 -# define SSL_F_TLS_CONSTRUCT_CKE_DHE 0 -# define SSL_F_TLS_CONSTRUCT_CKE_ECDHE 0 -# define SSL_F_TLS_CONSTRUCT_CKE_GOST 0 -# define SSL_F_TLS_CONSTRUCT_CKE_PSK_PREAMBLE 0 -# define SSL_F_TLS_CONSTRUCT_CKE_RSA 0 -# define SSL_F_TLS_CONSTRUCT_CKE_SRP 0 -# define SSL_F_TLS_CONSTRUCT_CLIENT_CERTIFICATE 0 -# define SSL_F_TLS_CONSTRUCT_CLIENT_HELLO 0 -# define SSL_F_TLS_CONSTRUCT_CLIENT_KEY_EXCHANGE 0 -# define SSL_F_TLS_CONSTRUCT_CLIENT_VERIFY 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_ALPN 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_CERTIFICATE 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_COOKIE 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_EARLY_DATA 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_EC_PT_FORMATS 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_EMS 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_ETM 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_HELLO 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_KEY_EXCHANGE 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_KEY_SHARE 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_MAXFRAGMENTLEN 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_NPN 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_PADDING 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_POST_HANDSHAKE_AUTH 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_PSK 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_PSK_KEX_MODES 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_RENEGOTIATE 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_SCT 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_SERVER_NAME 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_SESSION_TICKET 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_SIG_ALGS 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_SRP 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_STATUS_REQUEST 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_SUPPORTED_GROUPS 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_SUPPORTED_VERSIONS 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_USE_SRTP 0 -# define SSL_F_TLS_CONSTRUCT_CTOS_VERIFY 0 -# define SSL_F_TLS_CONSTRUCT_ENCRYPTED_EXTENSIONS 0 -# define SSL_F_TLS_CONSTRUCT_END_OF_EARLY_DATA 0 -# define SSL_F_TLS_CONSTRUCT_EXTENSIONS 0 -# define SSL_F_TLS_CONSTRUCT_FINISHED 0 -# define SSL_F_TLS_CONSTRUCT_HELLO_REQUEST 0 -# define SSL_F_TLS_CONSTRUCT_HELLO_RETRY_REQUEST 0 -# define SSL_F_TLS_CONSTRUCT_KEY_UPDATE 0 -# define SSL_F_TLS_CONSTRUCT_NEW_SESSION_TICKET 0 -# define SSL_F_TLS_CONSTRUCT_NEXT_PROTO 0 -# define SSL_F_TLS_CONSTRUCT_SERVER_CERTIFICATE 0 -# define SSL_F_TLS_CONSTRUCT_SERVER_HELLO 0 -# define SSL_F_TLS_CONSTRUCT_SERVER_KEY_EXCHANGE 0 -# define SSL_F_TLS_CONSTRUCT_STOC_ALPN 0 -# define SSL_F_TLS_CONSTRUCT_STOC_CERTIFICATE 0 -# define SSL_F_TLS_CONSTRUCT_STOC_COOKIE 0 -# define SSL_F_TLS_CONSTRUCT_STOC_CRYPTOPRO_BUG 0 -# define SSL_F_TLS_CONSTRUCT_STOC_DONE 0 -# define SSL_F_TLS_CONSTRUCT_STOC_EARLY_DATA 0 -# define SSL_F_TLS_CONSTRUCT_STOC_EARLY_DATA_INFO 0 -# define SSL_F_TLS_CONSTRUCT_STOC_EC_PT_FORMATS 0 -# define SSL_F_TLS_CONSTRUCT_STOC_EMS 0 -# define SSL_F_TLS_CONSTRUCT_STOC_ETM 0 -# define SSL_F_TLS_CONSTRUCT_STOC_HELLO 0 -# define SSL_F_TLS_CONSTRUCT_STOC_KEY_EXCHANGE 0 -# define SSL_F_TLS_CONSTRUCT_STOC_KEY_SHARE 0 -# define SSL_F_TLS_CONSTRUCT_STOC_MAXFRAGMENTLEN 0 -# define SSL_F_TLS_CONSTRUCT_STOC_NEXT_PROTO_NEG 0 -# define SSL_F_TLS_CONSTRUCT_STOC_PSK 0 -# define SSL_F_TLS_CONSTRUCT_STOC_RENEGOTIATE 0 -# define SSL_F_TLS_CONSTRUCT_STOC_SERVER_NAME 0 -# define SSL_F_TLS_CONSTRUCT_STOC_SESSION_TICKET 0 -# define SSL_F_TLS_CONSTRUCT_STOC_STATUS_REQUEST 0 -# define SSL_F_TLS_CONSTRUCT_STOC_SUPPORTED_GROUPS 0 -# define SSL_F_TLS_CONSTRUCT_STOC_SUPPORTED_VERSIONS 0 -# define SSL_F_TLS_CONSTRUCT_STOC_USE_SRTP 0 -# define SSL_F_TLS_EARLY_POST_PROCESS_CLIENT_HELLO 0 -# define SSL_F_TLS_FINISH_HANDSHAKE 0 -# define SSL_F_TLS_GET_MESSAGE_BODY 0 -# define SSL_F_TLS_GET_MESSAGE_HEADER 0 -# define SSL_F_TLS_HANDLE_ALPN 0 -# define SSL_F_TLS_HANDLE_STATUS_REQUEST 0 -# define SSL_F_TLS_PARSE_CERTIFICATE_AUTHORITIES 0 -# define SSL_F_TLS_PARSE_CLIENTHELLO_TLSEXT 0 -# define SSL_F_TLS_PARSE_CTOS_ALPN 0 -# define SSL_F_TLS_PARSE_CTOS_COOKIE 0 -# define SSL_F_TLS_PARSE_CTOS_EARLY_DATA 0 -# define SSL_F_TLS_PARSE_CTOS_EC_PT_FORMATS 0 -# define SSL_F_TLS_PARSE_CTOS_EMS 0 -# define SSL_F_TLS_PARSE_CTOS_KEY_SHARE 0 -# define SSL_F_TLS_PARSE_CTOS_MAXFRAGMENTLEN 0 -# define SSL_F_TLS_PARSE_CTOS_POST_HANDSHAKE_AUTH 0 -# define SSL_F_TLS_PARSE_CTOS_PSK 0 -# define SSL_F_TLS_PARSE_CTOS_PSK_KEX_MODES 0 -# define SSL_F_TLS_PARSE_CTOS_RENEGOTIATE 0 -# define SSL_F_TLS_PARSE_CTOS_SERVER_NAME 0 -# define SSL_F_TLS_PARSE_CTOS_SESSION_TICKET 0 -# define SSL_F_TLS_PARSE_CTOS_SIG_ALGS 0 -# define SSL_F_TLS_PARSE_CTOS_SIG_ALGS_CERT 0 -# define SSL_F_TLS_PARSE_CTOS_SRP 0 -# define SSL_F_TLS_PARSE_CTOS_STATUS_REQUEST 0 -# define SSL_F_TLS_PARSE_CTOS_SUPPORTED_GROUPS 0 -# define SSL_F_TLS_PARSE_CTOS_USE_SRTP 0 -# define SSL_F_TLS_PARSE_STOC_ALPN 0 -# define SSL_F_TLS_PARSE_STOC_COOKIE 0 -# define SSL_F_TLS_PARSE_STOC_EARLY_DATA 0 -# define SSL_F_TLS_PARSE_STOC_EARLY_DATA_INFO 0 -# define SSL_F_TLS_PARSE_STOC_EC_PT_FORMATS 0 -# define SSL_F_TLS_PARSE_STOC_KEY_SHARE 0 -# define SSL_F_TLS_PARSE_STOC_MAXFRAGMENTLEN 0 -# define SSL_F_TLS_PARSE_STOC_NPN 0 -# define SSL_F_TLS_PARSE_STOC_PSK 0 -# define SSL_F_TLS_PARSE_STOC_RENEGOTIATE 0 -# define SSL_F_TLS_PARSE_STOC_SCT 0 -# define SSL_F_TLS_PARSE_STOC_SERVER_NAME 0 -# define SSL_F_TLS_PARSE_STOC_SESSION_TICKET 0 -# define SSL_F_TLS_PARSE_STOC_STATUS_REQUEST 0 -# define SSL_F_TLS_PARSE_STOC_SUPPORTED_VERSIONS 0 -# define SSL_F_TLS_PARSE_STOC_USE_SRTP 0 -# define SSL_F_TLS_POST_PROCESS_CLIENT_HELLO 0 -# define SSL_F_TLS_POST_PROCESS_CLIENT_KEY_EXCHANGE 0 -# define SSL_F_TLS_PREPARE_CLIENT_CERTIFICATE 0 -# define SSL_F_TLS_PROCESS_AS_HELLO_RETRY_REQUEST 0 -# define SSL_F_TLS_PROCESS_CERTIFICATE_REQUEST 0 -# define SSL_F_TLS_PROCESS_CERT_STATUS 0 -# define SSL_F_TLS_PROCESS_CERT_STATUS_BODY 0 -# define SSL_F_TLS_PROCESS_CERT_VERIFY 0 -# define SSL_F_TLS_PROCESS_CHANGE_CIPHER_SPEC 0 -# define SSL_F_TLS_PROCESS_CKE_DHE 0 -# define SSL_F_TLS_PROCESS_CKE_ECDHE 0 -# define SSL_F_TLS_PROCESS_CKE_GOST 0 -# define SSL_F_TLS_PROCESS_CKE_PSK_PREAMBLE 0 -# define SSL_F_TLS_PROCESS_CKE_RSA 0 -# define SSL_F_TLS_PROCESS_CKE_SRP 0 -# define SSL_F_TLS_PROCESS_CLIENT_CERTIFICATE 0 -# define SSL_F_TLS_PROCESS_CLIENT_HELLO 0 -# define SSL_F_TLS_PROCESS_CLIENT_KEY_EXCHANGE 0 -# define SSL_F_TLS_PROCESS_ENCRYPTED_EXTENSIONS 0 -# define SSL_F_TLS_PROCESS_END_OF_EARLY_DATA 0 -# define SSL_F_TLS_PROCESS_FINISHED 0 -# define SSL_F_TLS_PROCESS_HELLO_REQ 0 -# define SSL_F_TLS_PROCESS_HELLO_RETRY_REQUEST 0 -# define SSL_F_TLS_PROCESS_INITIAL_SERVER_FLIGHT 0 -# define SSL_F_TLS_PROCESS_KEY_EXCHANGE 0 -# define SSL_F_TLS_PROCESS_KEY_UPDATE 0 -# define SSL_F_TLS_PROCESS_NEW_SESSION_TICKET 0 -# define SSL_F_TLS_PROCESS_NEXT_PROTO 0 -# define SSL_F_TLS_PROCESS_SERVER_CERTIFICATE 0 -# define SSL_F_TLS_PROCESS_SERVER_DONE 0 -# define SSL_F_TLS_PROCESS_SERVER_HELLO 0 -# define SSL_F_TLS_PROCESS_SKE_DHE 0 -# define SSL_F_TLS_PROCESS_SKE_ECDHE 0 -# define SSL_F_TLS_PROCESS_SKE_PSK_PREAMBLE 0 -# define SSL_F_TLS_PROCESS_SKE_SRP 0 -# define SSL_F_TLS_PSK_DO_BINDER 0 -# define SSL_F_TLS_SCAN_CLIENTHELLO_TLSEXT 0 -# define SSL_F_TLS_SETUP_HANDSHAKE 0 -# define SSL_F_USE_CERTIFICATE_CHAIN_FILE 0 -# define SSL_F_WPACKET_INTERN_INIT_LEN 0 -# define SSL_F_WPACKET_START_SUB_PACKET_LEN__ 0 -# define SSL_F_WRITE_STATE_MACHINE 0 -# endif - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/stack.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/stack.h deleted file mode 100644 index 419f561..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/stack.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_STACK_H -# define OPENSSL_STACK_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_STACK_H -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct stack_st OPENSSL_STACK; /* Use STACK_OF(...) instead */ - -typedef int (*OPENSSL_sk_compfunc)(const void *, const void *); -typedef void (*OPENSSL_sk_freefunc)(void *); -typedef void (*OPENSSL_sk_freefunc_thunk)(OPENSSL_sk_freefunc, void *); -typedef void *(*OPENSSL_sk_copyfunc)(const void *); - -int OPENSSL_sk_num(const OPENSSL_STACK *); -void *OPENSSL_sk_value(const OPENSSL_STACK *, int); - -void *OPENSSL_sk_set(OPENSSL_STACK *st, int i, const void *data); - -OPENSSL_STACK *OPENSSL_sk_new(OPENSSL_sk_compfunc cmp); -OPENSSL_STACK *OPENSSL_sk_new_null(void); -OPENSSL_STACK *OPENSSL_sk_new_reserve(OPENSSL_sk_compfunc c, int n); -OPENSSL_STACK *OPENSSL_sk_set_thunks(OPENSSL_STACK *st, OPENSSL_sk_freefunc_thunk f_thunk); -int OPENSSL_sk_reserve(OPENSSL_STACK *st, int n); -void OPENSSL_sk_free(OPENSSL_STACK *); -void OPENSSL_sk_pop_free(OPENSSL_STACK *st, OPENSSL_sk_freefunc func); -OPENSSL_STACK *OPENSSL_sk_deep_copy(const OPENSSL_STACK *, - OPENSSL_sk_copyfunc c, - OPENSSL_sk_freefunc f); -int OPENSSL_sk_insert(OPENSSL_STACK *sk, const void *data, int where); -void *OPENSSL_sk_delete(OPENSSL_STACK *st, int loc); -void *OPENSSL_sk_delete_ptr(OPENSSL_STACK *st, const void *p); -int OPENSSL_sk_find(OPENSSL_STACK *st, const void *data); -int OPENSSL_sk_find_ex(OPENSSL_STACK *st, const void *data); -int OPENSSL_sk_find_all(OPENSSL_STACK *st, const void *data, int *pnum); -int OPENSSL_sk_push(OPENSSL_STACK *st, const void *data); -int OPENSSL_sk_unshift(OPENSSL_STACK *st, const void *data); -void *OPENSSL_sk_shift(OPENSSL_STACK *st); -void *OPENSSL_sk_pop(OPENSSL_STACK *st); -void OPENSSL_sk_zero(OPENSSL_STACK *st); -OPENSSL_sk_compfunc OPENSSL_sk_set_cmp_func(OPENSSL_STACK *sk, - OPENSSL_sk_compfunc cmp); -OPENSSL_STACK *OPENSSL_sk_dup(const OPENSSL_STACK *st); -void OPENSSL_sk_sort(OPENSSL_STACK *st); -int OPENSSL_sk_is_sorted(const OPENSSL_STACK *st); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define _STACK OPENSSL_STACK -# define sk_num OPENSSL_sk_num -# define sk_value OPENSSL_sk_value -# define sk_set OPENSSL_sk_set -# define sk_new OPENSSL_sk_new -# define sk_new_null OPENSSL_sk_new_null -# define sk_free OPENSSL_sk_free -# define sk_pop_free OPENSSL_sk_pop_free -# define sk_deep_copy OPENSSL_sk_deep_copy -# define sk_insert OPENSSL_sk_insert -# define sk_delete OPENSSL_sk_delete -# define sk_delete_ptr OPENSSL_sk_delete_ptr -# define sk_find OPENSSL_sk_find -# define sk_find_ex OPENSSL_sk_find_ex -# define sk_push OPENSSL_sk_push -# define sk_unshift OPENSSL_sk_unshift -# define sk_shift OPENSSL_sk_shift -# define sk_pop OPENSSL_sk_pop -# define sk_zero OPENSSL_sk_zero -# define sk_set_cmp_func OPENSSL_sk_set_cmp_func -# define sk_dup OPENSSL_sk_dup -# define sk_sort OPENSSL_sk_sort -# define sk_is_sorted OPENSSL_sk_is_sorted -# endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/store.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/store.h deleted file mode 100644 index a137f59..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/store.h +++ /dev/null @@ -1,379 +0,0 @@ -/* - * Copyright 2016-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_STORE_H -# define OPENSSL_STORE_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_OSSL_STORE_H -# endif - -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/*- - * The main OSSL_STORE functions. - * ------------------------------ - * - * These allow applications to open a channel to a resource with supported - * data (keys, certs, crls, ...), read the data a piece at a time and decide - * what to do with it, and finally close. - */ - -typedef struct ossl_store_ctx_st OSSL_STORE_CTX; - -/* - * Typedef for the OSSL_STORE_INFO post processing callback. This can be used - * to massage the given OSSL_STORE_INFO, or to drop it entirely (by returning - * NULL). - */ -typedef OSSL_STORE_INFO *(*OSSL_STORE_post_process_info_fn)(OSSL_STORE_INFO *, - void *); - -/* - * Open a channel given a URI. The given UI method will be used any time the - * loader needs extra input, for example when a password or pin is needed, and - * will be passed the same user data every time it's needed in this context. - * - * Returns a context reference which represents the channel to communicate - * through. - */ -OSSL_STORE_CTX * -OSSL_STORE_open(const char *uri, const UI_METHOD *ui_method, void *ui_data, - OSSL_STORE_post_process_info_fn post_process, - void *post_process_data); -OSSL_STORE_CTX * -OSSL_STORE_open_ex(const char *uri, OSSL_LIB_CTX *libctx, const char *propq, - const UI_METHOD *ui_method, void *ui_data, - const OSSL_PARAM params[], - OSSL_STORE_post_process_info_fn post_process, - void *post_process_data); - -/* - * Control / fine tune the OSSL_STORE channel. |cmd| determines what is to be - * done, and depends on the underlying loader (use OSSL_STORE_get0_scheme to - * determine which loader is used), except for common commands (see below). - * Each command takes different arguments. - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int OSSL_STORE_ctrl(OSSL_STORE_CTX *ctx, int cmd, - ... /* args */); -OSSL_DEPRECATEDIN_3_0 int OSSL_STORE_vctrl(OSSL_STORE_CTX *ctx, int cmd, - va_list args); -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 - -/* - * Common ctrl commands that different loaders may choose to support. - */ -/* int on = 0 or 1; STORE_ctrl(ctx, STORE_C_USE_SECMEM, &on); */ -# define OSSL_STORE_C_USE_SECMEM 1 -/* Where custom commands start */ -# define OSSL_STORE_C_CUSTOM_START 100 - -# endif - -/* - * Read one data item (a key, a cert, a CRL) that is supported by the OSSL_STORE - * functionality, given a context. - * Returns a OSSL_STORE_INFO pointer, from which OpenSSL typed data can be - * extracted with OSSL_STORE_INFO_get0_PKEY(), OSSL_STORE_INFO_get0_CERT(), ... - * NULL is returned on error, which may include that the data found at the URI - * can't be figured out for certain or is ambiguous. - */ -OSSL_STORE_INFO *OSSL_STORE_load(OSSL_STORE_CTX *ctx); - -/* - * Deletes the object in the store by URI. - * Returns 1 on success, 0 otherwise. - */ -int OSSL_STORE_delete(const char *uri, OSSL_LIB_CTX *libctx, const char *propq, - const UI_METHOD *ui_method, void *ui_data, - const OSSL_PARAM params[]); - -/* - * Check if end of data (end of file) is reached - * Returns 1 on end, 0 otherwise. - */ -int OSSL_STORE_eof(OSSL_STORE_CTX *ctx); - -/* - * Check if an error occurred - * Returns 1 if it did, 0 otherwise. - */ -int OSSL_STORE_error(OSSL_STORE_CTX *ctx); - -/* - * Close the channel - * Returns 1 on success, 0 on error. - */ -int OSSL_STORE_close(OSSL_STORE_CTX *ctx); - -/* - * Attach to a BIO. This works like OSSL_STORE_open() except it takes a - * BIO instead of a uri, along with a scheme to use when reading. - * The given UI method will be used any time the loader needs extra input, - * for example when a password or pin is needed, and will be passed the - * same user data every time it's needed in this context. - * - * Returns a context reference which represents the channel to communicate - * through. - * - * Note that this function is considered unsafe, all depending on what the - * BIO actually reads. - */ -OSSL_STORE_CTX *OSSL_STORE_attach(BIO *bio, const char *scheme, - OSSL_LIB_CTX *libctx, const char *propq, - const UI_METHOD *ui_method, void *ui_data, - const OSSL_PARAM params[], - OSSL_STORE_post_process_info_fn post_process, - void *post_process_data); - -/*- - * Extracting OpenSSL types from and creating new OSSL_STORE_INFOs - * --------------------------------------------------------------- - */ - -/* - * Types of data that can be ossl_stored in a OSSL_STORE_INFO. - * OSSL_STORE_INFO_NAME is typically found when getting a listing of - * available "files" / "tokens" / what have you. - */ -# define OSSL_STORE_INFO_NAME 1 /* char * */ -# define OSSL_STORE_INFO_PARAMS 2 /* EVP_PKEY * */ -# define OSSL_STORE_INFO_PUBKEY 3 /* EVP_PKEY * */ -# define OSSL_STORE_INFO_PKEY 4 /* EVP_PKEY * */ -# define OSSL_STORE_INFO_CERT 5 /* X509 * */ -# define OSSL_STORE_INFO_CRL 6 /* X509_CRL * */ - -/* - * Functions to generate OSSL_STORE_INFOs, one function for each type we - * support having in them, as well as a generic constructor. - * - * In all cases, ownership of the object is transferred to the OSSL_STORE_INFO - * and will therefore be freed when the OSSL_STORE_INFO is freed. - */ -OSSL_STORE_INFO *OSSL_STORE_INFO_new(int type, void *data); -OSSL_STORE_INFO *OSSL_STORE_INFO_new_NAME(char *name); -int OSSL_STORE_INFO_set0_NAME_description(OSSL_STORE_INFO *info, char *desc); -OSSL_STORE_INFO *OSSL_STORE_INFO_new_PARAMS(EVP_PKEY *params); -OSSL_STORE_INFO *OSSL_STORE_INFO_new_PUBKEY(EVP_PKEY *pubkey); -OSSL_STORE_INFO *OSSL_STORE_INFO_new_PKEY(EVP_PKEY *pkey); -OSSL_STORE_INFO *OSSL_STORE_INFO_new_CERT(X509 *x509); -OSSL_STORE_INFO *OSSL_STORE_INFO_new_CRL(X509_CRL *crl); - -/* - * Functions to try to extract data from a OSSL_STORE_INFO. - */ -int OSSL_STORE_INFO_get_type(const OSSL_STORE_INFO *info); -void *OSSL_STORE_INFO_get0_data(int type, const OSSL_STORE_INFO *info); -const char *OSSL_STORE_INFO_get0_NAME(const OSSL_STORE_INFO *info); -char *OSSL_STORE_INFO_get1_NAME(const OSSL_STORE_INFO *info); -const char *OSSL_STORE_INFO_get0_NAME_description(const OSSL_STORE_INFO *info); -char *OSSL_STORE_INFO_get1_NAME_description(const OSSL_STORE_INFO *info); -EVP_PKEY *OSSL_STORE_INFO_get0_PARAMS(const OSSL_STORE_INFO *info); -EVP_PKEY *OSSL_STORE_INFO_get1_PARAMS(const OSSL_STORE_INFO *info); -EVP_PKEY *OSSL_STORE_INFO_get0_PUBKEY(const OSSL_STORE_INFO *info); -EVP_PKEY *OSSL_STORE_INFO_get1_PUBKEY(const OSSL_STORE_INFO *info); -EVP_PKEY *OSSL_STORE_INFO_get0_PKEY(const OSSL_STORE_INFO *info); -EVP_PKEY *OSSL_STORE_INFO_get1_PKEY(const OSSL_STORE_INFO *info); -X509 *OSSL_STORE_INFO_get0_CERT(const OSSL_STORE_INFO *info); -X509 *OSSL_STORE_INFO_get1_CERT(const OSSL_STORE_INFO *info); -X509_CRL *OSSL_STORE_INFO_get0_CRL(const OSSL_STORE_INFO *info); -X509_CRL *OSSL_STORE_INFO_get1_CRL(const OSSL_STORE_INFO *info); - -const char *OSSL_STORE_INFO_type_string(int type); - -/* - * Free the OSSL_STORE_INFO - */ -void OSSL_STORE_INFO_free(OSSL_STORE_INFO *info); - - -/*- - * Functions to construct a search URI from a base URI and search criteria - * ----------------------------------------------------------------------- - */ - -/* OSSL_STORE search types */ -# define OSSL_STORE_SEARCH_BY_NAME 1 /* subject in certs, issuer in CRLs */ -# define OSSL_STORE_SEARCH_BY_ISSUER_SERIAL 2 -# define OSSL_STORE_SEARCH_BY_KEY_FINGERPRINT 3 -# define OSSL_STORE_SEARCH_BY_ALIAS 4 - -/* To check what search types the scheme handler supports */ -int OSSL_STORE_supports_search(OSSL_STORE_CTX *ctx, int search_type); - -/* Search term constructors */ -/* - * The input is considered to be owned by the caller, and must therefore - * remain present throughout the lifetime of the returned OSSL_STORE_SEARCH - */ -OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_name(X509_NAME *name); -OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_issuer_serial(X509_NAME *name, - const ASN1_INTEGER - *serial); -OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_key_fingerprint(const EVP_MD *digest, - const unsigned char - *bytes, size_t len); -OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_alias(const char *alias); - -/* Search term destructor */ -void OSSL_STORE_SEARCH_free(OSSL_STORE_SEARCH *search); - -/* Search term accessors */ -int OSSL_STORE_SEARCH_get_type(const OSSL_STORE_SEARCH *criterion); -X509_NAME *OSSL_STORE_SEARCH_get0_name(const OSSL_STORE_SEARCH *criterion); -const ASN1_INTEGER *OSSL_STORE_SEARCH_get0_serial(const OSSL_STORE_SEARCH - *criterion); -const unsigned char *OSSL_STORE_SEARCH_get0_bytes(const OSSL_STORE_SEARCH - *criterion, size_t *length); -const char *OSSL_STORE_SEARCH_get0_string(const OSSL_STORE_SEARCH *criterion); -const EVP_MD *OSSL_STORE_SEARCH_get0_digest(const OSSL_STORE_SEARCH *criterion); - -/* - * Add search criterion and expected return type (which can be unspecified) - * to the loading channel. This MUST happen before the first OSSL_STORE_load(). - */ -int OSSL_STORE_expect(OSSL_STORE_CTX *ctx, int expected_type); -int OSSL_STORE_find(OSSL_STORE_CTX *ctx, const OSSL_STORE_SEARCH *search); - - -/*- - * Function to fetch a loader and extract data from it - * --------------------------------------------------- - */ - -typedef struct ossl_store_loader_st OSSL_STORE_LOADER; - -OSSL_STORE_LOADER *OSSL_STORE_LOADER_fetch(OSSL_LIB_CTX *libctx, - const char *scheme, - const char *properties); -int OSSL_STORE_LOADER_up_ref(OSSL_STORE_LOADER *loader); -void OSSL_STORE_LOADER_free(OSSL_STORE_LOADER *loader); -const OSSL_PROVIDER *OSSL_STORE_LOADER_get0_provider(const OSSL_STORE_LOADER * - loader); -const char *OSSL_STORE_LOADER_get0_properties(const OSSL_STORE_LOADER *loader); -const char *OSSL_STORE_LOADER_get0_description(const OSSL_STORE_LOADER *loader); -int OSSL_STORE_LOADER_is_a(const OSSL_STORE_LOADER *loader, - const char *scheme); -void OSSL_STORE_LOADER_do_all_provided(OSSL_LIB_CTX *libctx, - void (*fn)(OSSL_STORE_LOADER *loader, - void *arg), - void *arg); -int OSSL_STORE_LOADER_names_do_all(const OSSL_STORE_LOADER *loader, - void (*fn)(const char *name, void *data), - void *data); -const OSSL_PARAM * -OSSL_STORE_LOADER_settable_ctx_params(const OSSL_STORE_LOADER *loader); - -/*- - * Function to register a loader for the given URI scheme. - * ------------------------------------------------------- - * - * The loader receives all the main components of an URI except for the - * scheme. - */ - -# ifndef OPENSSL_NO_DEPRECATED_3_0 - -/* struct ossl_store_loader_ctx_st is defined differently by each loader */ -typedef struct ossl_store_loader_ctx_st OSSL_STORE_LOADER_CTX; -typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_open_fn) - (const OSSL_STORE_LOADER *loader, const char *uri, - const UI_METHOD *ui_method, void *ui_data); -typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_open_ex_fn) - (const OSSL_STORE_LOADER *loader, - const char *uri, OSSL_LIB_CTX *libctx, const char *propq, - const UI_METHOD *ui_method, void *ui_data); - -typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_attach_fn) - (const OSSL_STORE_LOADER *loader, BIO *bio, - OSSL_LIB_CTX *libctx, const char *propq, - const UI_METHOD *ui_method, void *ui_data); -typedef int (*OSSL_STORE_ctrl_fn) - (OSSL_STORE_LOADER_CTX *ctx, int cmd, va_list args); -typedef int (*OSSL_STORE_expect_fn) - (OSSL_STORE_LOADER_CTX *ctx, int expected); -typedef int (*OSSL_STORE_find_fn) - (OSSL_STORE_LOADER_CTX *ctx, const OSSL_STORE_SEARCH *criteria); -typedef OSSL_STORE_INFO *(*OSSL_STORE_load_fn) - (OSSL_STORE_LOADER_CTX *ctx, const UI_METHOD *ui_method, void *ui_data); -typedef int (*OSSL_STORE_eof_fn)(OSSL_STORE_LOADER_CTX *ctx); -typedef int (*OSSL_STORE_error_fn)(OSSL_STORE_LOADER_CTX *ctx); -typedef int (*OSSL_STORE_close_fn)(OSSL_STORE_LOADER_CTX *ctx); - -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -OSSL_STORE_LOADER *OSSL_STORE_LOADER_new(ENGINE *e, const char *scheme); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_open(OSSL_STORE_LOADER *loader, - OSSL_STORE_open_fn open_function); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_open_ex(OSSL_STORE_LOADER *loader, - OSSL_STORE_open_ex_fn open_ex_function); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_attach(OSSL_STORE_LOADER *loader, - OSSL_STORE_attach_fn attach_function); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_ctrl(OSSL_STORE_LOADER *loader, - OSSL_STORE_ctrl_fn ctrl_function); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_expect(OSSL_STORE_LOADER *loader, - OSSL_STORE_expect_fn expect_function); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_find(OSSL_STORE_LOADER *loader, - OSSL_STORE_find_fn find_function); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_load(OSSL_STORE_LOADER *loader, - OSSL_STORE_load_fn load_function); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_eof(OSSL_STORE_LOADER *loader, - OSSL_STORE_eof_fn eof_function); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_error(OSSL_STORE_LOADER *loader, - OSSL_STORE_error_fn error_function); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_LOADER_set_close(OSSL_STORE_LOADER *loader, - OSSL_STORE_close_fn close_function); -OSSL_DEPRECATEDIN_3_0 -const ENGINE *OSSL_STORE_LOADER_get0_engine(const OSSL_STORE_LOADER *loader); -OSSL_DEPRECATEDIN_3_0 -const char *OSSL_STORE_LOADER_get0_scheme(const OSSL_STORE_LOADER *loader); -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_register_loader(OSSL_STORE_LOADER *loader); -OSSL_DEPRECATEDIN_3_0 -OSSL_STORE_LOADER *OSSL_STORE_unregister_loader(const char *scheme); -# endif - -/*- - * Functions to list STORE loaders - * ------------------------------- - */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int OSSL_STORE_do_all_loaders(void (*do_function)(const OSSL_STORE_LOADER *loader, - void *do_arg), - void *do_arg); -# endif - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/storeerr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/storeerr.h deleted file mode 100644 index 00529c8..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/storeerr.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_STOREERR_H -# define OPENSSL_STOREERR_H -# pragma once - -# include -# include -# include - - - -/* - * OSSL_STORE reason codes. - */ -# define OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE 107 -# define OSSL_STORE_R_BAD_PASSWORD_READ 115 -# define OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC 113 -# define OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST 121 -# define OSSL_STORE_R_INVALID_SCHEME 106 -# define OSSL_STORE_R_IS_NOT_A 112 -# define OSSL_STORE_R_LOADER_INCOMPLETE 116 -# define OSSL_STORE_R_LOADING_STARTED 117 -# define OSSL_STORE_R_NOT_A_CERTIFICATE 100 -# define OSSL_STORE_R_NOT_A_CRL 101 -# define OSSL_STORE_R_NOT_A_NAME 103 -# define OSSL_STORE_R_NOT_A_PRIVATE_KEY 102 -# define OSSL_STORE_R_NOT_A_PUBLIC_KEY 122 -# define OSSL_STORE_R_NOT_PARAMETERS 104 -# define OSSL_STORE_R_NO_LOADERS_FOUND 123 -# define OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR 114 -# define OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE 108 -# define OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES 119 -# define OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED 109 -# define OSSL_STORE_R_UNREGISTERED_SCHEME 105 -# define OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE 110 -# define OSSL_STORE_R_UNSUPPORTED_OPERATION 118 -# define OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE 120 -# define OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED 111 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/symhacks.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/symhacks.h deleted file mode 100644 index 816f8f9..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/symhacks.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_SYMHACKS_H -# define OPENSSL_SYMHACKS_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_SYMHACKS_H -# endif - -# include - -/* Case insensitive linking causes problems.... */ -# if defined(OPENSSL_SYS_VMS) -# undef ERR_load_CRYPTO_strings -# define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings -# undef OCSP_crlID_new -# define OCSP_crlID_new OCSP_crlID2_new - -# undef d2i_ECPARAMETERS -# define d2i_ECPARAMETERS d2i_UC_ECPARAMETERS -# undef i2d_ECPARAMETERS -# define i2d_ECPARAMETERS i2d_UC_ECPARAMETERS -# undef d2i_ECPKPARAMETERS -# define d2i_ECPKPARAMETERS d2i_UC_ECPKPARAMETERS -# undef i2d_ECPKPARAMETERS -# define i2d_ECPKPARAMETERS i2d_UC_ECPKPARAMETERS - -# endif - -#endif /* ! defined HEADER_VMS_IDHACKS_H */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/thread.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/thread.h deleted file mode 100644 index 3926ce5..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/thread.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_THREAD_H -# define OPENSSL_THREAD_H - -# define OSSL_THREAD_SUPPORT_FLAG_THREAD_POOL (1U<<0) -# define OSSL_THREAD_SUPPORT_FLAG_DEFAULT_SPAWN (1U<<1) - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -uint32_t OSSL_get_thread_support_flags(void); -int OSSL_set_max_threads(OSSL_LIB_CTX *ctx, uint64_t max_threads); -uint64_t OSSL_get_max_threads(OSSL_LIB_CTX *ctx); - -# ifdef __cplusplus -} -# endif - -#endif /* OPENSSL_THREAD_H */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/tls1.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/tls1.h deleted file mode 100644 index 50910d0..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/tls1.h +++ /dev/null @@ -1,1226 +0,0 @@ -/* - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * Copyright 2005 Nokia. All rights reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_TLS1_H -# define OPENSSL_TLS1_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_TLS1_H -# endif - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Default security level if not overridden at config time */ -# ifndef OPENSSL_TLS_SECURITY_LEVEL -# define OPENSSL_TLS_SECURITY_LEVEL 2 -# endif - -/* TLS*_VERSION constants are defined in prov_ssl.h */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define TLS_MAX_VERSION TLS1_3_VERSION -# endif - -/* Special value for method supporting multiple versions */ -# define TLS_ANY_VERSION 0x10000 - -# define TLS1_VERSION_MAJOR 0x03 -# define TLS1_VERSION_MINOR 0x01 - -# define TLS1_1_VERSION_MAJOR 0x03 -# define TLS1_1_VERSION_MINOR 0x02 - -# define TLS1_2_VERSION_MAJOR 0x03 -# define TLS1_2_VERSION_MINOR 0x03 - -# define TLS1_get_version(s) \ - ((SSL_version(s) >> 8) == TLS1_VERSION_MAJOR ? SSL_version(s) : 0) - -# define TLS1_get_client_version(s) \ - ((SSL_client_version(s) >> 8) == TLS1_VERSION_MAJOR ? SSL_client_version(s) : 0) - -# define TLS1_AD_DECRYPTION_FAILED 21 -# define TLS1_AD_RECORD_OVERFLOW 22 -# define TLS1_AD_UNKNOWN_CA 48/* fatal */ -# define TLS1_AD_ACCESS_DENIED 49/* fatal */ -# define TLS1_AD_DECODE_ERROR 50/* fatal */ -# define TLS1_AD_DECRYPT_ERROR 51 -# define TLS1_AD_EXPORT_RESTRICTION 60/* fatal */ -# define TLS1_AD_PROTOCOL_VERSION 70/* fatal */ -# define TLS1_AD_INSUFFICIENT_SECURITY 71/* fatal */ -# define TLS1_AD_INTERNAL_ERROR 80/* fatal */ -# define TLS1_AD_INAPPROPRIATE_FALLBACK 86/* fatal */ -# define TLS1_AD_USER_CANCELLED 90 -# define TLS1_AD_NO_RENEGOTIATION 100 -/* TLSv1.3 alerts */ -# define TLS13_AD_MISSING_EXTENSION 109 /* fatal */ -# define TLS13_AD_CERTIFICATE_REQUIRED 116 /* fatal */ -/* codes 110-114 are from RFC3546 */ -# define TLS1_AD_UNSUPPORTED_EXTENSION 110 -# define TLS1_AD_CERTIFICATE_UNOBTAINABLE 111 -# define TLS1_AD_UNRECOGNIZED_NAME 112 -# define TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE 113 -# define TLS1_AD_BAD_CERTIFICATE_HASH_VALUE 114 -# define TLS1_AD_UNKNOWN_PSK_IDENTITY 115/* fatal */ -# define TLS1_AD_NO_APPLICATION_PROTOCOL 120 /* fatal */ - -/* ExtensionType values from RFC3546 / RFC4366 / RFC6066 */ -# define TLSEXT_TYPE_server_name 0 -# define TLSEXT_TYPE_max_fragment_length 1 -# define TLSEXT_TYPE_client_certificate_url 2 -# define TLSEXT_TYPE_trusted_ca_keys 3 -# define TLSEXT_TYPE_truncated_hmac 4 -# define TLSEXT_TYPE_status_request 5 -/* ExtensionType values from RFC4681 */ -# define TLSEXT_TYPE_user_mapping 6 -/* ExtensionType values from RFC5878 */ -# define TLSEXT_TYPE_client_authz 7 -# define TLSEXT_TYPE_server_authz 8 -/* ExtensionType values from RFC6091 */ -# define TLSEXT_TYPE_cert_type 9 - -/* ExtensionType values from RFC4492 */ -/* - * Prior to TLSv1.3 the supported_groups extension was known as - * elliptic_curves - */ -# define TLSEXT_TYPE_supported_groups 10 -# define TLSEXT_TYPE_elliptic_curves TLSEXT_TYPE_supported_groups -# define TLSEXT_TYPE_ec_point_formats 11 - - -/* ExtensionType value from RFC5054 */ -# define TLSEXT_TYPE_srp 12 - -/* ExtensionType values from RFC5246 */ -# define TLSEXT_TYPE_signature_algorithms 13 - -/* ExtensionType value from RFC5764 */ -# define TLSEXT_TYPE_use_srtp 14 - -/* ExtensionType value from RFC7301 */ -# define TLSEXT_TYPE_application_layer_protocol_negotiation 16 - -/* - * Extension type for Certificate Transparency - * https://tools.ietf.org/html/rfc6962#section-3.3.1 - */ -# define TLSEXT_TYPE_signed_certificate_timestamp 18 - -/* - * Extension type for Raw Public Keys - * https://tools.ietf.org/html/rfc7250 - * https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml - */ -# define TLSEXT_TYPE_client_cert_type 19 -# define TLSEXT_TYPE_server_cert_type 20 - -/* - * ExtensionType value for TLS padding extension. - * http://tools.ietf.org/html/draft-agl-tls-padding - */ -# define TLSEXT_TYPE_padding 21 - -/* ExtensionType value from RFC7366 */ -# define TLSEXT_TYPE_encrypt_then_mac 22 - -/* ExtensionType value from RFC7627 */ -# define TLSEXT_TYPE_extended_master_secret 23 - -/* ExtensionType value from RFC8879 */ -# define TLSEXT_TYPE_compress_certificate 27 - -/* ExtensionType value from RFC4507 */ -# define TLSEXT_TYPE_session_ticket 35 - -/* As defined for TLS1.3 */ -# define TLSEXT_TYPE_psk 41 -# define TLSEXT_TYPE_early_data 42 -# define TLSEXT_TYPE_supported_versions 43 -# define TLSEXT_TYPE_cookie 44 -# define TLSEXT_TYPE_psk_kex_modes 45 -# define TLSEXT_TYPE_certificate_authorities 47 -# define TLSEXT_TYPE_post_handshake_auth 49 -# define TLSEXT_TYPE_signature_algorithms_cert 50 -# define TLSEXT_TYPE_key_share 51 -# define TLSEXT_TYPE_quic_transport_parameters 57 - -/* Temporary extension type */ -# define TLSEXT_TYPE_renegotiate 0xff01 - -# ifndef OPENSSL_NO_NEXTPROTONEG -/* This is not an IANA defined extension number */ -# define TLSEXT_TYPE_next_proto_neg 13172 -# endif - -/* NameType value from RFC3546 */ -# define TLSEXT_NAMETYPE_host_name 0 -/* status request value from RFC3546 */ -# define TLSEXT_STATUSTYPE_ocsp 1 - -/* ECPointFormat values from RFC4492 */ -# define TLSEXT_ECPOINTFORMAT_first 0 -# define TLSEXT_ECPOINTFORMAT_uncompressed 0 -# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime 1 -# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2 2 -# define TLSEXT_ECPOINTFORMAT_last 2 - -/* Signature and hash algorithms from RFC5246 */ -# define TLSEXT_signature_anonymous 0 -# define TLSEXT_signature_rsa 1 -# define TLSEXT_signature_dsa 2 -# define TLSEXT_signature_ecdsa 3 -# define TLSEXT_signature_gostr34102001 237 -# define TLSEXT_signature_gostr34102012_256 238 -# define TLSEXT_signature_gostr34102012_512 239 - -/* Total number of different signature algorithms */ -# define TLSEXT_signature_num 7 - -# define TLSEXT_hash_none 0 -# define TLSEXT_hash_md5 1 -# define TLSEXT_hash_sha1 2 -# define TLSEXT_hash_sha224 3 -# define TLSEXT_hash_sha256 4 -# define TLSEXT_hash_sha384 5 -# define TLSEXT_hash_sha512 6 -# define TLSEXT_hash_gostr3411 237 -# define TLSEXT_hash_gostr34112012_256 238 -# define TLSEXT_hash_gostr34112012_512 239 - -/* Total number of different digest algorithms */ - -# define TLSEXT_hash_num 10 - -/* Possible compression values from RFC8879 */ -/* Not defined in RFC8879, but used internally for no-compression */ -# define TLSEXT_comp_cert_none 0 -# define TLSEXT_comp_cert_zlib 1 -# define TLSEXT_comp_cert_brotli 2 -# define TLSEXT_comp_cert_zstd 3 -/* one more than the number of defined values - used as size of 0-terminated array */ -# define TLSEXT_comp_cert_limit 4 - -/* Flag set for unrecognised algorithms */ -# define TLSEXT_nid_unknown 0x1000000 - -/* ECC curves */ - -# define TLSEXT_curve_P_256 23 -# define TLSEXT_curve_P_384 24 - -/* OpenSSL value to disable maximum fragment length extension */ -# define TLSEXT_max_fragment_length_DISABLED 0 -/* Allowed values for max fragment length extension */ -# define TLSEXT_max_fragment_length_512 1 -# define TLSEXT_max_fragment_length_1024 2 -# define TLSEXT_max_fragment_length_2048 3 -# define TLSEXT_max_fragment_length_4096 4 -/* OpenSSL value for unset maximum fragment length extension */ -# define TLSEXT_max_fragment_length_UNSPECIFIED 255 - -/* - * TLS Certificate Type (for RFC7250) - * https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#tls-extensiontype-values-3 - */ -# define TLSEXT_cert_type_x509 0 -# define TLSEXT_cert_type_pgp 1 /* recognized, but not supported */ -# define TLSEXT_cert_type_rpk 2 -# define TLSEXT_cert_type_1609dot2 3 /* recognized, but not supported */ - -int SSL_CTX_set_tlsext_max_fragment_length(SSL_CTX *ctx, uint8_t mode); -int SSL_set_tlsext_max_fragment_length(SSL *ssl, uint8_t mode); - -# define TLSEXT_MAXLEN_host_name 255 - -__owur const char *SSL_get_servername(const SSL *s, const int type); -__owur int SSL_get_servername_type(const SSL *s); -/* - * SSL_export_keying_material exports a value derived from the master secret, - * as specified in RFC 5705. It writes |olen| bytes to |out| given a label and - * optional context. (Since a zero length context is allowed, the |use_context| - * flag controls whether a context is included.) It returns 1 on success and - * 0 or -1 otherwise. - */ -__owur int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, - const char *label, size_t llen, - const unsigned char *context, - size_t contextlen, int use_context); - -/* - * SSL_export_keying_material_early exports a value derived from the - * early exporter master secret, as specified in - * https://tools.ietf.org/html/draft-ietf-tls-tls13-23. It writes - * |olen| bytes to |out| given a label and optional context. It - * returns 1 on success and 0 otherwise. - */ -__owur int SSL_export_keying_material_early(SSL *s, unsigned char *out, - size_t olen, const char *label, - size_t llen, - const unsigned char *context, - size_t contextlen); - -int SSL_get_peer_signature_type_nid(const SSL *s, int *pnid); -int SSL_get_signature_type_nid(const SSL *s, int *pnid); - -int SSL_get_sigalgs(SSL *s, int idx, - int *psign, int *phash, int *psignandhash, - unsigned char *rsig, unsigned char *rhash); - -char *SSL_get1_builtin_sigalgs(OSSL_LIB_CTX *libctx); - -int SSL_get_shared_sigalgs(SSL *s, int idx, - int *psign, int *phash, int *psignandhash, - unsigned char *rsig, unsigned char *rhash); - -__owur int SSL_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, STACK_OF(X509) *chain); - -# define SSL_set_tlsext_host_name(s,name) \ - SSL_ctrl(s,SSL_CTRL_SET_TLSEXT_HOSTNAME,TLSEXT_NAMETYPE_host_name,\ - (void *)name) - -# define SSL_set_tlsext_debug_callback(ssl, cb) \ - SSL_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_CB,\ - (void (*)(void))cb) - -# define SSL_set_tlsext_debug_arg(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_ARG,0,arg) - -# define SSL_get_tlsext_status_type(ssl) \ - SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE,0,NULL) - -# define SSL_set_tlsext_status_type(ssl, type) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE,type,NULL) - -# define SSL_get_tlsext_status_exts(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS,0,arg) - -# define SSL_set_tlsext_status_exts(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS,0,arg) - -# define SSL_get_tlsext_status_ids(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS,0,arg) - -# define SSL_set_tlsext_status_ids(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS,0,arg) - -# define SSL_get_tlsext_status_ocsp_resp(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP,0,arg) - -# define SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP,arglen,arg) - -# define SSL_get0_tlsext_status_ocsp_resp_ex(ssl, arg) \ - SSL_ctrl(ssl, SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP_EX, 0, arg) - -# define SSL_set0_tlsext_status_ocsp_resp_ex(ssl, arg) \ - SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP_EX, 0, arg) - -# define SSL_CTX_set_tlsext_servername_callback(ctx, cb) \ - SSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_CB,\ - (void (*)(void))cb) - -# define SSL_TLSEXT_ERR_OK 0 -# define SSL_TLSEXT_ERR_ALERT_WARNING 1 -# define SSL_TLSEXT_ERR_ALERT_FATAL 2 -# define SSL_TLSEXT_ERR_NOACK 3 - -# define SSL_CTX_set_tlsext_servername_arg(ctx, arg) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG,0,arg) - -# define SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_TLSEXT_TICKET_KEYS,keylen,keys) -# define SSL_CTX_set_tlsext_ticket_keys(ctx, keys, keylen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_TICKET_KEYS,keylen,keys) - -# define SSL_CTX_get_tlsext_status_cb(ssl, cb) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB,0,(void *)cb) -# define SSL_CTX_set_tlsext_status_cb(ssl, cb) \ - SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB,\ - (void (*)(void))cb) - -# define SSL_CTX_get_tlsext_status_arg(ssl, arg) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG,0,arg) -# define SSL_CTX_set_tlsext_status_arg(ssl, arg) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG,0,arg) - -# define SSL_CTX_set_tlsext_status_type(ssl, type) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE,type,NULL) - -# define SSL_CTX_get_tlsext_status_type(ssl) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE,0,NULL) - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define SSL_CTX_set_tlsext_ticket_key_cb(ssl, cb) \ - SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,\ - (void (*)(void))cb) -# endif -int SSL_CTX_set_tlsext_ticket_key_evp_cb - (SSL_CTX *ctx, int (*fp)(SSL *, unsigned char *, unsigned char *, - EVP_CIPHER_CTX *, EVP_MAC_CTX *, int)); - -/* PSK ciphersuites from 4279 */ -# define TLS1_CK_PSK_WITH_RC4_128_SHA 0x0300008A -# define TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008B -# define TLS1_CK_PSK_WITH_AES_128_CBC_SHA 0x0300008C -# define TLS1_CK_PSK_WITH_AES_256_CBC_SHA 0x0300008D -# define TLS1_CK_DHE_PSK_WITH_RC4_128_SHA 0x0300008E -# define TLS1_CK_DHE_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008F -# define TLS1_CK_DHE_PSK_WITH_AES_128_CBC_SHA 0x03000090 -# define TLS1_CK_DHE_PSK_WITH_AES_256_CBC_SHA 0x03000091 -# define TLS1_CK_RSA_PSK_WITH_RC4_128_SHA 0x03000092 -# define TLS1_CK_RSA_PSK_WITH_3DES_EDE_CBC_SHA 0x03000093 -# define TLS1_CK_RSA_PSK_WITH_AES_128_CBC_SHA 0x03000094 -# define TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA 0x03000095 - -/* PSK ciphersuites from 5487 */ -# define TLS1_CK_PSK_WITH_AES_128_GCM_SHA256 0x030000A8 -# define TLS1_CK_PSK_WITH_AES_256_GCM_SHA384 0x030000A9 -# define TLS1_CK_DHE_PSK_WITH_AES_128_GCM_SHA256 0x030000AA -# define TLS1_CK_DHE_PSK_WITH_AES_256_GCM_SHA384 0x030000AB -# define TLS1_CK_RSA_PSK_WITH_AES_128_GCM_SHA256 0x030000AC -# define TLS1_CK_RSA_PSK_WITH_AES_256_GCM_SHA384 0x030000AD -# define TLS1_CK_PSK_WITH_AES_128_CBC_SHA256 0x030000AE -# define TLS1_CK_PSK_WITH_AES_256_CBC_SHA384 0x030000AF -# define TLS1_CK_PSK_WITH_NULL_SHA256 0x030000B0 -# define TLS1_CK_PSK_WITH_NULL_SHA384 0x030000B1 -# define TLS1_CK_DHE_PSK_WITH_AES_128_CBC_SHA256 0x030000B2 -# define TLS1_CK_DHE_PSK_WITH_AES_256_CBC_SHA384 0x030000B3 -# define TLS1_CK_DHE_PSK_WITH_NULL_SHA256 0x030000B4 -# define TLS1_CK_DHE_PSK_WITH_NULL_SHA384 0x030000B5 -# define TLS1_CK_RSA_PSK_WITH_AES_128_CBC_SHA256 0x030000B6 -# define TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA384 0x030000B7 -# define TLS1_CK_RSA_PSK_WITH_NULL_SHA256 0x030000B8 -# define TLS1_CK_RSA_PSK_WITH_NULL_SHA384 0x030000B9 - -/* NULL PSK ciphersuites from RFC4785 */ -# define TLS1_CK_PSK_WITH_NULL_SHA 0x0300002C -# define TLS1_CK_DHE_PSK_WITH_NULL_SHA 0x0300002D -# define TLS1_CK_RSA_PSK_WITH_NULL_SHA 0x0300002E - -/* AES ciphersuites from RFC3268 */ -# define TLS1_CK_RSA_WITH_AES_128_SHA 0x0300002F -# define TLS1_CK_DH_DSS_WITH_AES_128_SHA 0x03000030 -# define TLS1_CK_DH_RSA_WITH_AES_128_SHA 0x03000031 -# define TLS1_CK_DHE_DSS_WITH_AES_128_SHA 0x03000032 -# define TLS1_CK_DHE_RSA_WITH_AES_128_SHA 0x03000033 -# define TLS1_CK_ADH_WITH_AES_128_SHA 0x03000034 -# define TLS1_CK_RSA_WITH_AES_256_SHA 0x03000035 -# define TLS1_CK_DH_DSS_WITH_AES_256_SHA 0x03000036 -# define TLS1_CK_DH_RSA_WITH_AES_256_SHA 0x03000037 -# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA 0x03000038 -# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA 0x03000039 -# define TLS1_CK_ADH_WITH_AES_256_SHA 0x0300003A - -/* TLS v1.2 ciphersuites */ -# define TLS1_CK_RSA_WITH_NULL_SHA256 0x0300003B -# define TLS1_CK_RSA_WITH_AES_128_SHA256 0x0300003C -# define TLS1_CK_RSA_WITH_AES_256_SHA256 0x0300003D -# define TLS1_CK_DH_DSS_WITH_AES_128_SHA256 0x0300003E -# define TLS1_CK_DH_RSA_WITH_AES_128_SHA256 0x0300003F -# define TLS1_CK_DHE_DSS_WITH_AES_128_SHA256 0x03000040 - -/* Camellia ciphersuites from RFC4132 */ -# define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000041 -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000042 -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000043 -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000044 -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000045 -# define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA 0x03000046 - -/* TLS v1.2 ciphersuites */ -# define TLS1_CK_DHE_RSA_WITH_AES_128_SHA256 0x03000067 -# define TLS1_CK_DH_DSS_WITH_AES_256_SHA256 0x03000068 -# define TLS1_CK_DH_RSA_WITH_AES_256_SHA256 0x03000069 -# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA256 0x0300006A -# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA256 0x0300006B -# define TLS1_CK_ADH_WITH_AES_128_SHA256 0x0300006C -# define TLS1_CK_ADH_WITH_AES_256_SHA256 0x0300006D - -/* Camellia ciphersuites from RFC4132 */ -# define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000084 -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000085 -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000086 -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000087 -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000088 -# define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA 0x03000089 - -/* SEED ciphersuites from RFC4162 */ -# define TLS1_CK_RSA_WITH_SEED_SHA 0x03000096 -# define TLS1_CK_DH_DSS_WITH_SEED_SHA 0x03000097 -# define TLS1_CK_DH_RSA_WITH_SEED_SHA 0x03000098 -# define TLS1_CK_DHE_DSS_WITH_SEED_SHA 0x03000099 -# define TLS1_CK_DHE_RSA_WITH_SEED_SHA 0x0300009A -# define TLS1_CK_ADH_WITH_SEED_SHA 0x0300009B - -/* TLS v1.2 GCM ciphersuites from RFC5288 */ -# define TLS1_CK_RSA_WITH_AES_128_GCM_SHA256 0x0300009C -# define TLS1_CK_RSA_WITH_AES_256_GCM_SHA384 0x0300009D -# define TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256 0x0300009E -# define TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384 0x0300009F -# define TLS1_CK_DH_RSA_WITH_AES_128_GCM_SHA256 0x030000A0 -# define TLS1_CK_DH_RSA_WITH_AES_256_GCM_SHA384 0x030000A1 -# define TLS1_CK_DHE_DSS_WITH_AES_128_GCM_SHA256 0x030000A2 -# define TLS1_CK_DHE_DSS_WITH_AES_256_GCM_SHA384 0x030000A3 -# define TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256 0x030000A4 -# define TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384 0x030000A5 -# define TLS1_CK_ADH_WITH_AES_128_GCM_SHA256 0x030000A6 -# define TLS1_CK_ADH_WITH_AES_256_GCM_SHA384 0x030000A7 - -/* CCM ciphersuites from RFC6655 */ -# define TLS1_CK_RSA_WITH_AES_128_CCM 0x0300C09C -# define TLS1_CK_RSA_WITH_AES_256_CCM 0x0300C09D -# define TLS1_CK_DHE_RSA_WITH_AES_128_CCM 0x0300C09E -# define TLS1_CK_DHE_RSA_WITH_AES_256_CCM 0x0300C09F -# define TLS1_CK_RSA_WITH_AES_128_CCM_8 0x0300C0A0 -# define TLS1_CK_RSA_WITH_AES_256_CCM_8 0x0300C0A1 -# define TLS1_CK_DHE_RSA_WITH_AES_128_CCM_8 0x0300C0A2 -# define TLS1_CK_DHE_RSA_WITH_AES_256_CCM_8 0x0300C0A3 -# define TLS1_CK_PSK_WITH_AES_128_CCM 0x0300C0A4 -# define TLS1_CK_PSK_WITH_AES_256_CCM 0x0300C0A5 -# define TLS1_CK_DHE_PSK_WITH_AES_128_CCM 0x0300C0A6 -# define TLS1_CK_DHE_PSK_WITH_AES_256_CCM 0x0300C0A7 -# define TLS1_CK_PSK_WITH_AES_128_CCM_8 0x0300C0A8 -# define TLS1_CK_PSK_WITH_AES_256_CCM_8 0x0300C0A9 -# define TLS1_CK_DHE_PSK_WITH_AES_128_CCM_8 0x0300C0AA -# define TLS1_CK_DHE_PSK_WITH_AES_256_CCM_8 0x0300C0AB - -/* CCM ciphersuites from RFC7251 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM 0x0300C0AC -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM 0x0300C0AD -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM_8 0x0300C0AE -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM_8 0x0300C0AF - -/* TLS 1.2 Camellia SHA-256 ciphersuites from RFC5932 */ -# define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BA -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x030000BB -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BC -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x030000BD -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BE -# define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA256 0x030000BF - -# define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C0 -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x030000C1 -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C2 -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x030000C3 -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C4 -# define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA256 0x030000C5 - -/* ECC ciphersuites from RFC4492 */ -# define TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA 0x0300C001 -# define TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA 0x0300C002 -# define TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C003 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0x0300C004 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0x0300C005 - -# define TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA 0x0300C006 -# define TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA 0x0300C007 -# define TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C008 -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0x0300C009 -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0x0300C00A - -# define TLS1_CK_ECDH_RSA_WITH_NULL_SHA 0x0300C00B -# define TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA 0x0300C00C -# define TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA 0x0300C00D -# define TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA 0x0300C00E -# define TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA 0x0300C00F - -# define TLS1_CK_ECDHE_RSA_WITH_NULL_SHA 0x0300C010 -# define TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA 0x0300C011 -# define TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA 0x0300C012 -# define TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA 0x0300C013 -# define TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA 0x0300C014 - -# define TLS1_CK_ECDH_anon_WITH_NULL_SHA 0x0300C015 -# define TLS1_CK_ECDH_anon_WITH_RC4_128_SHA 0x0300C016 -# define TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA 0x0300C017 -# define TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA 0x0300C018 -# define TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA 0x0300C019 - -/* SRP ciphersuites from RFC 5054 */ -# define TLS1_CK_SRP_SHA_WITH_3DES_EDE_CBC_SHA 0x0300C01A -# define TLS1_CK_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA 0x0300C01B -# define TLS1_CK_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA 0x0300C01C -# define TLS1_CK_SRP_SHA_WITH_AES_128_CBC_SHA 0x0300C01D -# define TLS1_CK_SRP_SHA_RSA_WITH_AES_128_CBC_SHA 0x0300C01E -# define TLS1_CK_SRP_SHA_DSS_WITH_AES_128_CBC_SHA 0x0300C01F -# define TLS1_CK_SRP_SHA_WITH_AES_256_CBC_SHA 0x0300C020 -# define TLS1_CK_SRP_SHA_RSA_WITH_AES_256_CBC_SHA 0x0300C021 -# define TLS1_CK_SRP_SHA_DSS_WITH_AES_256_CBC_SHA 0x0300C022 - -/* ECDH HMAC based ciphersuites from RFC5289 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256 0x0300C023 -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384 0x0300C024 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_SHA256 0x0300C025 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_SHA384 0x0300C026 -# define TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256 0x0300C027 -# define TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384 0x0300C028 -# define TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256 0x0300C029 -# define TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384 0x0300C02A - -/* ECDH GCM based ciphersuites from RFC5289 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02B -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02C -# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02D -# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02E -# define TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0x0300C02F -# define TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0x0300C030 -# define TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256 0x0300C031 -# define TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 0x0300C032 - -/* ECDHE PSK ciphersuites from RFC5489 */ -# define TLS1_CK_ECDHE_PSK_WITH_RC4_128_SHA 0x0300C033 -# define TLS1_CK_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA 0x0300C034 -# define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA 0x0300C035 -# define TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA 0x0300C036 - -# define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA256 0x0300C037 -# define TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA384 0x0300C038 - -/* NULL PSK ciphersuites from RFC4785 */ -# define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA 0x0300C039 -# define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA256 0x0300C03A -# define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA384 0x0300C03B - -/* Camellia-CBC ciphersuites from RFC6367 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C072 -# define TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C073 -# define TLS1_CK_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C074 -# define TLS1_CK_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C075 -# define TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C076 -# define TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C077 -# define TLS1_CK_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C078 -# define TLS1_CK_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C079 - -# define TLS1_CK_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C094 -# define TLS1_CK_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C095 -# define TLS1_CK_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C096 -# define TLS1_CK_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C097 -# define TLS1_CK_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C098 -# define TLS1_CK_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C099 -# define TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C09A -# define TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C09B - -/* draft-ietf-tls-chacha20-poly1305-03 */ -# define TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCA8 -# define TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 0x0300CCA9 -# define TLS1_CK_DHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCAA -# define TLS1_CK_PSK_WITH_CHACHA20_POLY1305 0x0300CCAB -# define TLS1_CK_ECDHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAC -# define TLS1_CK_DHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAD -# define TLS1_CK_RSA_PSK_WITH_CHACHA20_POLY1305 0x0300CCAE - -/* TLS v1.3 ciphersuites */ -# define TLS1_3_CK_AES_128_GCM_SHA256 0x03001301 -# define TLS1_3_CK_AES_256_GCM_SHA384 0x03001302 -# define TLS1_3_CK_CHACHA20_POLY1305_SHA256 0x03001303 -# define TLS1_3_CK_AES_128_CCM_SHA256 0x03001304 -# define TLS1_3_CK_AES_128_CCM_8_SHA256 0x03001305 - -/* Integrity-only ciphersuites from RFC 9150 */ -# define TLS1_3_CK_SHA256_SHA256 0x0300C0B4 -# define TLS1_3_CK_SHA384_SHA384 0x0300C0B5 - -/* Aria ciphersuites from RFC6209 */ -# define TLS1_CK_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C050 -# define TLS1_CK_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C051 -# define TLS1_CK_DHE_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C052 -# define TLS1_CK_DHE_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C053 -# define TLS1_CK_DH_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C054 -# define TLS1_CK_DH_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C055 -# define TLS1_CK_DHE_DSS_WITH_ARIA_128_GCM_SHA256 0x0300C056 -# define TLS1_CK_DHE_DSS_WITH_ARIA_256_GCM_SHA384 0x0300C057 -# define TLS1_CK_DH_DSS_WITH_ARIA_128_GCM_SHA256 0x0300C058 -# define TLS1_CK_DH_DSS_WITH_ARIA_256_GCM_SHA384 0x0300C059 -# define TLS1_CK_DH_anon_WITH_ARIA_128_GCM_SHA256 0x0300C05A -# define TLS1_CK_DH_anon_WITH_ARIA_256_GCM_SHA384 0x0300C05B -# define TLS1_CK_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 0x0300C05C -# define TLS1_CK_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 0x0300C05D -# define TLS1_CK_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 0x0300C05E -# define TLS1_CK_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 0x0300C05F -# define TLS1_CK_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C060 -# define TLS1_CK_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C061 -# define TLS1_CK_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C062 -# define TLS1_CK_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C063 -# define TLS1_CK_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06A -# define TLS1_CK_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06B -# define TLS1_CK_DHE_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06C -# define TLS1_CK_DHE_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06D -# define TLS1_CK_RSA_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06E -# define TLS1_CK_RSA_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06F - -/* a bundle of RFC standard cipher names, generated from ssl3_ciphers[] */ -# define TLS1_RFC_RSA_WITH_AES_128_SHA "TLS_RSA_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_DHE_DSS_WITH_AES_128_SHA "TLS_DHE_DSS_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_DHE_RSA_WITH_AES_128_SHA "TLS_DHE_RSA_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_ADH_WITH_AES_128_SHA "TLS_DH_anon_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_RSA_WITH_AES_256_SHA "TLS_RSA_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_DHE_DSS_WITH_AES_256_SHA "TLS_DHE_DSS_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_DHE_RSA_WITH_AES_256_SHA "TLS_DHE_RSA_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_ADH_WITH_AES_256_SHA "TLS_DH_anon_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_RSA_WITH_NULL_SHA256 "TLS_RSA_WITH_NULL_SHA256" -# define TLS1_RFC_RSA_WITH_AES_128_SHA256 "TLS_RSA_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_RSA_WITH_AES_256_SHA256 "TLS_RSA_WITH_AES_256_CBC_SHA256" -# define TLS1_RFC_DHE_DSS_WITH_AES_128_SHA256 "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_DHE_RSA_WITH_AES_128_SHA256 "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_DHE_DSS_WITH_AES_256_SHA256 "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256" -# define TLS1_RFC_DHE_RSA_WITH_AES_256_SHA256 "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256" -# define TLS1_RFC_ADH_WITH_AES_128_SHA256 "TLS_DH_anon_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_ADH_WITH_AES_256_SHA256 "TLS_DH_anon_WITH_AES_256_CBC_SHA256" -# define TLS1_RFC_RSA_WITH_AES_128_GCM_SHA256 "TLS_RSA_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_RSA_WITH_AES_256_GCM_SHA384 "TLS_RSA_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_DHE_RSA_WITH_AES_128_GCM_SHA256 "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_DHE_RSA_WITH_AES_256_GCM_SHA384 "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_DHE_DSS_WITH_AES_128_GCM_SHA256 "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_DHE_DSS_WITH_AES_256_GCM_SHA384 "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_ADH_WITH_AES_128_GCM_SHA256 "TLS_DH_anon_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_ADH_WITH_AES_256_GCM_SHA384 "TLS_DH_anon_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_RSA_WITH_AES_128_CCM "TLS_RSA_WITH_AES_128_CCM" -# define TLS1_RFC_RSA_WITH_AES_256_CCM "TLS_RSA_WITH_AES_256_CCM" -# define TLS1_RFC_DHE_RSA_WITH_AES_128_CCM "TLS_DHE_RSA_WITH_AES_128_CCM" -# define TLS1_RFC_DHE_RSA_WITH_AES_256_CCM "TLS_DHE_RSA_WITH_AES_256_CCM" -# define TLS1_RFC_RSA_WITH_AES_128_CCM_8 "TLS_RSA_WITH_AES_128_CCM_8" -# define TLS1_RFC_RSA_WITH_AES_256_CCM_8 "TLS_RSA_WITH_AES_256_CCM_8" -# define TLS1_RFC_DHE_RSA_WITH_AES_128_CCM_8 "TLS_DHE_RSA_WITH_AES_128_CCM_8" -# define TLS1_RFC_DHE_RSA_WITH_AES_256_CCM_8 "TLS_DHE_RSA_WITH_AES_256_CCM_8" -# define TLS1_RFC_PSK_WITH_AES_128_CCM "TLS_PSK_WITH_AES_128_CCM" -# define TLS1_RFC_PSK_WITH_AES_256_CCM "TLS_PSK_WITH_AES_256_CCM" -# define TLS1_RFC_DHE_PSK_WITH_AES_128_CCM "TLS_DHE_PSK_WITH_AES_128_CCM" -# define TLS1_RFC_DHE_PSK_WITH_AES_256_CCM "TLS_DHE_PSK_WITH_AES_256_CCM" -# define TLS1_RFC_PSK_WITH_AES_128_CCM_8 "TLS_PSK_WITH_AES_128_CCM_8" -# define TLS1_RFC_PSK_WITH_AES_256_CCM_8 "TLS_PSK_WITH_AES_256_CCM_8" -# define TLS1_RFC_DHE_PSK_WITH_AES_128_CCM_8 "TLS_PSK_DHE_WITH_AES_128_CCM_8" -# define TLS1_RFC_DHE_PSK_WITH_AES_256_CCM_8 "TLS_PSK_DHE_WITH_AES_256_CCM_8" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CCM "TLS_ECDHE_ECDSA_WITH_AES_128_CCM" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CCM "TLS_ECDHE_ECDSA_WITH_AES_256_CCM" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CCM_8 "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CCM_8 "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8" -# define TLS1_3_RFC_AES_128_GCM_SHA256 "TLS_AES_128_GCM_SHA256" -# define TLS1_3_RFC_AES_256_GCM_SHA384 "TLS_AES_256_GCM_SHA384" -# define TLS1_3_RFC_CHACHA20_POLY1305_SHA256 "TLS_CHACHA20_POLY1305_SHA256" -# define TLS1_3_RFC_SHA256_SHA256 "TLS_SHA256_SHA256" -# define TLS1_3_RFC_SHA384_SHA384 "TLS_SHA384_SHA384" -# define TLS1_3_RFC_AES_128_CCM_SHA256 "TLS_AES_128_CCM_SHA256" -# define TLS1_3_RFC_AES_128_CCM_8_SHA256 "TLS_AES_128_CCM_8_SHA256" -# define TLS1_RFC_ECDHE_ECDSA_WITH_NULL_SHA "TLS_ECDHE_ECDSA_WITH_NULL_SHA" -# define TLS1_RFC_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_ECDHE_RSA_WITH_NULL_SHA "TLS_ECDHE_RSA_WITH_NULL_SHA" -# define TLS1_RFC_ECDHE_RSA_WITH_DES_192_CBC3_SHA "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_ECDHE_RSA_WITH_AES_128_CBC_SHA "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_ECDHE_RSA_WITH_AES_256_CBC_SHA "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_ECDH_anon_WITH_NULL_SHA "TLS_ECDH_anon_WITH_NULL_SHA" -# define TLS1_RFC_ECDH_anon_WITH_DES_192_CBC3_SHA "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_ECDH_anon_WITH_AES_128_CBC_SHA "TLS_ECDH_anon_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_ECDH_anon_WITH_AES_256_CBC_SHA "TLS_ECDH_anon_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_SHA256 "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_SHA384 "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" -# define TLS1_RFC_ECDHE_RSA_WITH_AES_128_SHA256 "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_ECDHE_RSA_WITH_AES_256_SHA384 "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_PSK_WITH_NULL_SHA "TLS_PSK_WITH_NULL_SHA" -# define TLS1_RFC_DHE_PSK_WITH_NULL_SHA "TLS_DHE_PSK_WITH_NULL_SHA" -# define TLS1_RFC_RSA_PSK_WITH_NULL_SHA "TLS_RSA_PSK_WITH_NULL_SHA" -# define TLS1_RFC_PSK_WITH_3DES_EDE_CBC_SHA "TLS_PSK_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_PSK_WITH_AES_128_CBC_SHA "TLS_PSK_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_PSK_WITH_AES_256_CBC_SHA "TLS_PSK_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_DHE_PSK_WITH_3DES_EDE_CBC_SHA "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_DHE_PSK_WITH_AES_128_CBC_SHA "TLS_DHE_PSK_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_DHE_PSK_WITH_AES_256_CBC_SHA "TLS_DHE_PSK_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_RSA_PSK_WITH_3DES_EDE_CBC_SHA "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_RSA_PSK_WITH_AES_128_CBC_SHA "TLS_RSA_PSK_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_RSA_PSK_WITH_AES_256_CBC_SHA "TLS_RSA_PSK_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_PSK_WITH_AES_128_GCM_SHA256 "TLS_PSK_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_PSK_WITH_AES_256_GCM_SHA384 "TLS_PSK_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_DHE_PSK_WITH_AES_128_GCM_SHA256 "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_DHE_PSK_WITH_AES_256_GCM_SHA384 "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_RSA_PSK_WITH_AES_128_GCM_SHA256 "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_RSA_PSK_WITH_AES_256_GCM_SHA384 "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_PSK_WITH_AES_128_CBC_SHA256 "TLS_PSK_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_PSK_WITH_AES_256_CBC_SHA384 "TLS_PSK_WITH_AES_256_CBC_SHA384" -# define TLS1_RFC_PSK_WITH_NULL_SHA256 "TLS_PSK_WITH_NULL_SHA256" -# define TLS1_RFC_PSK_WITH_NULL_SHA384 "TLS_PSK_WITH_NULL_SHA384" -# define TLS1_RFC_DHE_PSK_WITH_AES_128_CBC_SHA256 "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_DHE_PSK_WITH_AES_256_CBC_SHA384 "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384" -# define TLS1_RFC_DHE_PSK_WITH_NULL_SHA256 "TLS_DHE_PSK_WITH_NULL_SHA256" -# define TLS1_RFC_DHE_PSK_WITH_NULL_SHA384 "TLS_DHE_PSK_WITH_NULL_SHA384" -# define TLS1_RFC_RSA_PSK_WITH_AES_128_CBC_SHA256 "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_RSA_PSK_WITH_AES_256_CBC_SHA384 "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384" -# define TLS1_RFC_RSA_PSK_WITH_NULL_SHA256 "TLS_RSA_PSK_WITH_NULL_SHA256" -# define TLS1_RFC_RSA_PSK_WITH_NULL_SHA384 "TLS_RSA_PSK_WITH_NULL_SHA384" -# define TLS1_RFC_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA "TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_ECDHE_PSK_WITH_AES_128_CBC_SHA "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_ECDHE_PSK_WITH_AES_256_CBC_SHA "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_ECDHE_PSK_WITH_AES_128_CBC_SHA256 "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_ECDHE_PSK_WITH_AES_256_CBC_SHA384 "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384" -# define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA "TLS_ECDHE_PSK_WITH_NULL_SHA" -# define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA256 "TLS_ECDHE_PSK_WITH_NULL_SHA256" -# define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA384 "TLS_ECDHE_PSK_WITH_NULL_SHA384" -# define TLS1_RFC_SRP_SHA_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_SRP_SHA_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_SRP_SHA_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_DHE_RSA_WITH_CHACHA20_POLY1305 "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_ECDHE_RSA_WITH_CHACHA20_POLY1305 "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_PSK_WITH_CHACHA20_POLY1305 "TLS_PSK_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_ECDHE_PSK_WITH_CHACHA20_POLY1305 "TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_DHE_PSK_WITH_CHACHA20_POLY1305 "TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_RSA_PSK_WITH_CHACHA20_POLY1305 "TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_ADH_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_RSA_WITH_CAMELLIA_256_CBC_SHA256 "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256" -# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256" -# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256" -# define TLS1_RFC_ADH_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256" -# define TLS1_RFC_RSA_WITH_CAMELLIA_256_CBC_SHA "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA" -# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA" -# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA" -# define TLS1_RFC_ADH_WITH_CAMELLIA_256_CBC_SHA "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA" -# define TLS1_RFC_RSA_WITH_CAMELLIA_128_CBC_SHA "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA" -# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA" -# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA" -# define TLS1_RFC_ADH_WITH_CAMELLIA_128_CBC_SHA "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA" -# define TLS1_RFC_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384" -# define TLS1_RFC_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384" -# define TLS1_RFC_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384" -# define TLS1_RFC_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384" -# define TLS1_RFC_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384" -# define TLS1_RFC_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384" -# define TLS1_RFC_RSA_WITH_SEED_SHA "TLS_RSA_WITH_SEED_CBC_SHA" -# define TLS1_RFC_DHE_DSS_WITH_SEED_SHA "TLS_DHE_DSS_WITH_SEED_CBC_SHA" -# define TLS1_RFC_DHE_RSA_WITH_SEED_SHA "TLS_DHE_RSA_WITH_SEED_CBC_SHA" -# define TLS1_RFC_ADH_WITH_SEED_SHA "TLS_DH_anon_WITH_SEED_CBC_SHA" -# define TLS1_RFC_ECDHE_PSK_WITH_RC4_128_SHA "TLS_ECDHE_PSK_WITH_RC4_128_SHA" -# define TLS1_RFC_ECDH_anon_WITH_RC4_128_SHA "TLS_ECDH_anon_WITH_RC4_128_SHA" -# define TLS1_RFC_ECDHE_ECDSA_WITH_RC4_128_SHA "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA" -# define TLS1_RFC_ECDHE_RSA_WITH_RC4_128_SHA "TLS_ECDHE_RSA_WITH_RC4_128_SHA" -# define TLS1_RFC_PSK_WITH_RC4_128_SHA "TLS_PSK_WITH_RC4_128_SHA" -# define TLS1_RFC_RSA_PSK_WITH_RC4_128_SHA "TLS_RSA_PSK_WITH_RC4_128_SHA" -# define TLS1_RFC_DHE_PSK_WITH_RC4_128_SHA "TLS_DHE_PSK_WITH_RC4_128_SHA" -# define TLS1_RFC_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_RSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_RSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_DHE_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_DHE_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_DH_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_DH_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_DHE_DSS_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_DHE_DSS_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_DH_DSS_WITH_ARIA_128_GCM_SHA256 "TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_DH_DSS_WITH_ARIA_256_GCM_SHA384 "TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_DH_anon_WITH_ARIA_128_GCM_SHA256 "TLS_DH_anon_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_DH_anon_WITH_ARIA_256_GCM_SHA384 "TLS_DH_anon_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_PSK_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_PSK_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_DHE_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_DHE_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_RSA_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_RSA_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384" - - -/* - * XXX Backward compatibility alert: Older versions of OpenSSL gave some DHE - * ciphers names with "EDH" instead of "DHE". Going forward, we should be - * using DHE everywhere, though we may indefinitely maintain aliases for - * users or configurations that used "EDH" - */ -# define TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA "DHE-DSS-RC4-SHA" - -# define TLS1_TXT_PSK_WITH_NULL_SHA "PSK-NULL-SHA" -# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA "DHE-PSK-NULL-SHA" -# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA "RSA-PSK-NULL-SHA" - -/* AES ciphersuites from RFC3268 */ -# define TLS1_TXT_RSA_WITH_AES_128_SHA "AES128-SHA" -# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA "DH-DSS-AES128-SHA" -# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA "DH-RSA-AES128-SHA" -# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA "DHE-DSS-AES128-SHA" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA "DHE-RSA-AES128-SHA" -# define TLS1_TXT_ADH_WITH_AES_128_SHA "ADH-AES128-SHA" - -# define TLS1_TXT_RSA_WITH_AES_256_SHA "AES256-SHA" -# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA "DH-DSS-AES256-SHA" -# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA "DH-RSA-AES256-SHA" -# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA "DHE-DSS-AES256-SHA" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA "DHE-RSA-AES256-SHA" -# define TLS1_TXT_ADH_WITH_AES_256_SHA "ADH-AES256-SHA" - -/* ECC ciphersuites from RFC4492 */ -# define TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA "ECDH-ECDSA-NULL-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA "ECDH-ECDSA-RC4-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA "ECDH-ECDSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA "ECDH-ECDSA-AES128-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA "ECDH-ECDSA-AES256-SHA" - -# define TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA "ECDHE-ECDSA-NULL-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA "ECDHE-ECDSA-RC4-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "ECDHE-ECDSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "ECDHE-ECDSA-AES128-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "ECDHE-ECDSA-AES256-SHA" - -# define TLS1_TXT_ECDH_RSA_WITH_NULL_SHA "ECDH-RSA-NULL-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA "ECDH-RSA-RC4-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA "ECDH-RSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA "ECDH-RSA-AES128-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA "ECDH-RSA-AES256-SHA" - -# define TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA "ECDHE-RSA-NULL-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA "ECDHE-RSA-RC4-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA "ECDHE-RSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA "ECDHE-RSA-AES128-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA "ECDHE-RSA-AES256-SHA" - -# define TLS1_TXT_ECDH_anon_WITH_NULL_SHA "AECDH-NULL-SHA" -# define TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA "AECDH-RC4-SHA" -# define TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA "AECDH-DES-CBC3-SHA" -# define TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA "AECDH-AES128-SHA" -# define TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA "AECDH-AES256-SHA" - -/* PSK ciphersuites from RFC 4279 */ -# define TLS1_TXT_PSK_WITH_RC4_128_SHA "PSK-RC4-SHA" -# define TLS1_TXT_PSK_WITH_3DES_EDE_CBC_SHA "PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA "PSK-AES128-CBC-SHA" -# define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA "PSK-AES256-CBC-SHA" - -# define TLS1_TXT_DHE_PSK_WITH_RC4_128_SHA "DHE-PSK-RC4-SHA" -# define TLS1_TXT_DHE_PSK_WITH_3DES_EDE_CBC_SHA "DHE-PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA "DHE-PSK-AES128-CBC-SHA" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA "DHE-PSK-AES256-CBC-SHA" -# define TLS1_TXT_RSA_PSK_WITH_RC4_128_SHA "RSA-PSK-RC4-SHA" -# define TLS1_TXT_RSA_PSK_WITH_3DES_EDE_CBC_SHA "RSA-PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA "RSA-PSK-AES128-CBC-SHA" -# define TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA "RSA-PSK-AES256-CBC-SHA" - -/* PSK ciphersuites from RFC 5487 */ -# define TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256 "PSK-AES128-GCM-SHA256" -# define TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384 "PSK-AES256-GCM-SHA384" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_GCM_SHA256 "DHE-PSK-AES128-GCM-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_GCM_SHA384 "DHE-PSK-AES256-GCM-SHA384" -# define TLS1_TXT_RSA_PSK_WITH_AES_128_GCM_SHA256 "RSA-PSK-AES128-GCM-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_AES_256_GCM_SHA384 "RSA-PSK-AES256-GCM-SHA384" - -# define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA256 "PSK-AES128-CBC-SHA256" -# define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA384 "PSK-AES256-CBC-SHA384" -# define TLS1_TXT_PSK_WITH_NULL_SHA256 "PSK-NULL-SHA256" -# define TLS1_TXT_PSK_WITH_NULL_SHA384 "PSK-NULL-SHA384" - -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA256 "DHE-PSK-AES128-CBC-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA384 "DHE-PSK-AES256-CBC-SHA384" -# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA256 "DHE-PSK-NULL-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA384 "DHE-PSK-NULL-SHA384" - -# define TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA256 "RSA-PSK-AES128-CBC-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA384 "RSA-PSK-AES256-CBC-SHA384" -# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA256 "RSA-PSK-NULL-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA384 "RSA-PSK-NULL-SHA384" - -/* SRP ciphersuite from RFC 5054 */ -# define TLS1_TXT_SRP_SHA_WITH_3DES_EDE_CBC_SHA "SRP-3DES-EDE-CBC-SHA" -# define TLS1_TXT_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "SRP-RSA-3DES-EDE-CBC-SHA" -# define TLS1_TXT_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "SRP-DSS-3DES-EDE-CBC-SHA" -# define TLS1_TXT_SRP_SHA_WITH_AES_128_CBC_SHA "SRP-AES-128-CBC-SHA" -# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "SRP-RSA-AES-128-CBC-SHA" -# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "SRP-DSS-AES-128-CBC-SHA" -# define TLS1_TXT_SRP_SHA_WITH_AES_256_CBC_SHA "SRP-AES-256-CBC-SHA" -# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "SRP-RSA-AES-256-CBC-SHA" -# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "SRP-DSS-AES-256-CBC-SHA" - -/* Camellia ciphersuites from RFC4132 */ -# define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA "CAMELLIA128-SHA" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA "DH-DSS-CAMELLIA128-SHA" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA "DH-RSA-CAMELLIA128-SHA" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "DHE-DSS-CAMELLIA128-SHA" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "DHE-RSA-CAMELLIA128-SHA" -# define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA "ADH-CAMELLIA128-SHA" - -# define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA "CAMELLIA256-SHA" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA "DH-DSS-CAMELLIA256-SHA" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA "DH-RSA-CAMELLIA256-SHA" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "DHE-DSS-CAMELLIA256-SHA" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "DHE-RSA-CAMELLIA256-SHA" -# define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA "ADH-CAMELLIA256-SHA" - -/* TLS 1.2 Camellia SHA-256 ciphersuites from RFC5932 */ -# define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA256 "CAMELLIA128-SHA256" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 "DH-DSS-CAMELLIA128-SHA256" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 "DH-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 "DHE-DSS-CAMELLIA128-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "DHE-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA256 "ADH-CAMELLIA128-SHA256" - -# define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA256 "CAMELLIA256-SHA256" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 "DH-DSS-CAMELLIA256-SHA256" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 "DH-RSA-CAMELLIA256-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 "DHE-DSS-CAMELLIA256-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 "DHE-RSA-CAMELLIA256-SHA256" -# define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA256 "ADH-CAMELLIA256-SHA256" - -# define TLS1_TXT_PSK_WITH_CAMELLIA_128_CBC_SHA256 "PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_PSK_WITH_CAMELLIA_256_CBC_SHA384 "PSK-CAMELLIA256-SHA384" -# define TLS1_TXT_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "DHE-PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "DHE-PSK-CAMELLIA256-SHA384" -# define TLS1_TXT_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 "RSA-PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 "RSA-PSK-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-PSK-CAMELLIA256-SHA384" - -/* SEED ciphersuites from RFC4162 */ -# define TLS1_TXT_RSA_WITH_SEED_SHA "SEED-SHA" -# define TLS1_TXT_DH_DSS_WITH_SEED_SHA "DH-DSS-SEED-SHA" -# define TLS1_TXT_DH_RSA_WITH_SEED_SHA "DH-RSA-SEED-SHA" -# define TLS1_TXT_DHE_DSS_WITH_SEED_SHA "DHE-DSS-SEED-SHA" -# define TLS1_TXT_DHE_RSA_WITH_SEED_SHA "DHE-RSA-SEED-SHA" -# define TLS1_TXT_ADH_WITH_SEED_SHA "ADH-SEED-SHA" - -/* TLS v1.2 ciphersuites */ -# define TLS1_TXT_RSA_WITH_NULL_SHA256 "NULL-SHA256" -# define TLS1_TXT_RSA_WITH_AES_128_SHA256 "AES128-SHA256" -# define TLS1_TXT_RSA_WITH_AES_256_SHA256 "AES256-SHA256" -# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA256 "DH-DSS-AES128-SHA256" -# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA256 "DH-RSA-AES128-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA256 "DHE-DSS-AES128-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256 "DHE-RSA-AES128-SHA256" -# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA256 "DH-DSS-AES256-SHA256" -# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA256 "DH-RSA-AES256-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA256 "DHE-DSS-AES256-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256 "DHE-RSA-AES256-SHA256" -# define TLS1_TXT_ADH_WITH_AES_128_SHA256 "ADH-AES128-SHA256" -# define TLS1_TXT_ADH_WITH_AES_256_SHA256 "ADH-AES256-SHA256" - -/* TLS v1.2 GCM ciphersuites from RFC5288 */ -# define TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256 "AES128-GCM-SHA256" -# define TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384 "AES256-GCM-SHA384" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256 "DHE-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384 "DHE-RSA-AES256-GCM-SHA384" -# define TLS1_TXT_DH_RSA_WITH_AES_128_GCM_SHA256 "DH-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_DH_RSA_WITH_AES_256_GCM_SHA384 "DH-RSA-AES256-GCM-SHA384" -# define TLS1_TXT_DHE_DSS_WITH_AES_128_GCM_SHA256 "DHE-DSS-AES128-GCM-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_AES_256_GCM_SHA384 "DHE-DSS-AES256-GCM-SHA384" -# define TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256 "DH-DSS-AES128-GCM-SHA256" -# define TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384 "DH-DSS-AES256-GCM-SHA384" -# define TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256 "ADH-AES128-GCM-SHA256" -# define TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384 "ADH-AES256-GCM-SHA384" - -/* CCM ciphersuites from RFC6655 */ -# define TLS1_TXT_RSA_WITH_AES_128_CCM "AES128-CCM" -# define TLS1_TXT_RSA_WITH_AES_256_CCM "AES256-CCM" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_CCM "DHE-RSA-AES128-CCM" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_CCM "DHE-RSA-AES256-CCM" - -# define TLS1_TXT_RSA_WITH_AES_128_CCM_8 "AES128-CCM8" -# define TLS1_TXT_RSA_WITH_AES_256_CCM_8 "AES256-CCM8" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_CCM_8 "DHE-RSA-AES128-CCM8" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_CCM_8 "DHE-RSA-AES256-CCM8" - -# define TLS1_TXT_PSK_WITH_AES_128_CCM "PSK-AES128-CCM" -# define TLS1_TXT_PSK_WITH_AES_256_CCM "PSK-AES256-CCM" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CCM "DHE-PSK-AES128-CCM" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_CCM "DHE-PSK-AES256-CCM" - -# define TLS1_TXT_PSK_WITH_AES_128_CCM_8 "PSK-AES128-CCM8" -# define TLS1_TXT_PSK_WITH_AES_256_CCM_8 "PSK-AES256-CCM8" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CCM_8 "DHE-PSK-AES128-CCM8" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_CCM_8 "DHE-PSK-AES256-CCM8" - -/* CCM ciphersuites from RFC7251 */ -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CCM "ECDHE-ECDSA-AES128-CCM" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CCM "ECDHE-ECDSA-AES256-CCM" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CCM_8 "ECDHE-ECDSA-AES128-CCM8" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CCM_8 "ECDHE-ECDSA-AES256-CCM8" - -/* ECDH HMAC based ciphersuites from RFC5289 */ -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256 "ECDHE-ECDSA-AES128-SHA256" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384 "ECDHE-ECDSA-AES256-SHA384" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_SHA256 "ECDH-ECDSA-AES128-SHA256" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_SHA384 "ECDH-ECDSA-AES256-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256 "ECDHE-RSA-AES128-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384 "ECDHE-RSA-AES256-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256 "ECDH-RSA-AES128-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384 "ECDH-RSA-AES256-SHA384" - -/* ECDH GCM based ciphersuites from RFC5289 */ -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "ECDHE-ECDSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "ECDHE-ECDSA-AES256-GCM-SHA384" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 "ECDH-ECDSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 "ECDH-ECDSA-AES256-GCM-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "ECDHE-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "ECDHE-RSA-AES256-GCM-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256 "ECDH-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384 "ECDH-RSA-AES256-GCM-SHA384" - -/* TLS v1.2 PSK GCM ciphersuites from RFC5487 */ -# define TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256 "PSK-AES128-GCM-SHA256" -# define TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384 "PSK-AES256-GCM-SHA384" - -/* ECDHE PSK ciphersuites from RFC 5489 */ -# define TLS1_TXT_ECDHE_PSK_WITH_RC4_128_SHA "ECDHE-PSK-RC4-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA "ECDHE-PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA "ECDHE-PSK-AES128-CBC-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA "ECDHE-PSK-AES256-CBC-SHA" - -# define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA256 "ECDHE-PSK-AES128-CBC-SHA256" -# define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA384 "ECDHE-PSK-AES256-CBC-SHA384" - -# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA "ECDHE-PSK-NULL-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA256 "ECDHE-PSK-NULL-SHA256" -# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA384 "ECDHE-PSK-NULL-SHA384" - -/* Camellia-CBC ciphersuites from RFC6367 */ -# define TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-ECDSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-ECDSA-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDH-ECDSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDH-ECDSA-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-RSA-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDH-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDH-RSA-CAMELLIA256-SHA384" - -/* draft-ietf-tls-chacha20-poly1305-03 */ -# define TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305 "ECDHE-RSA-CHACHA20-POLY1305" -# define TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "ECDHE-ECDSA-CHACHA20-POLY1305" -# define TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305 "DHE-RSA-CHACHA20-POLY1305" -# define TLS1_TXT_PSK_WITH_CHACHA20_POLY1305 "PSK-CHACHA20-POLY1305" -# define TLS1_TXT_ECDHE_PSK_WITH_CHACHA20_POLY1305 "ECDHE-PSK-CHACHA20-POLY1305" -# define TLS1_TXT_DHE_PSK_WITH_CHACHA20_POLY1305 "DHE-PSK-CHACHA20-POLY1305" -# define TLS1_TXT_RSA_PSK_WITH_CHACHA20_POLY1305 "RSA-PSK-CHACHA20-POLY1305" - -/* Aria ciphersuites from RFC6209 */ -# define TLS1_TXT_RSA_WITH_ARIA_128_GCM_SHA256 "ARIA128-GCM-SHA256" -# define TLS1_TXT_RSA_WITH_ARIA_256_GCM_SHA384 "ARIA256-GCM-SHA384" -# define TLS1_TXT_DHE_RSA_WITH_ARIA_128_GCM_SHA256 "DHE-RSA-ARIA128-GCM-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_ARIA_256_GCM_SHA384 "DHE-RSA-ARIA256-GCM-SHA384" -# define TLS1_TXT_DH_RSA_WITH_ARIA_128_GCM_SHA256 "DH-RSA-ARIA128-GCM-SHA256" -# define TLS1_TXT_DH_RSA_WITH_ARIA_256_GCM_SHA384 "DH-RSA-ARIA256-GCM-SHA384" -# define TLS1_TXT_DHE_DSS_WITH_ARIA_128_GCM_SHA256 "DHE-DSS-ARIA128-GCM-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_ARIA_256_GCM_SHA384 "DHE-DSS-ARIA256-GCM-SHA384" -# define TLS1_TXT_DH_DSS_WITH_ARIA_128_GCM_SHA256 "DH-DSS-ARIA128-GCM-SHA256" -# define TLS1_TXT_DH_DSS_WITH_ARIA_256_GCM_SHA384 "DH-DSS-ARIA256-GCM-SHA384" -# define TLS1_TXT_DH_anon_WITH_ARIA_128_GCM_SHA256 "ADH-ARIA128-GCM-SHA256" -# define TLS1_TXT_DH_anon_WITH_ARIA_256_GCM_SHA384 "ADH-ARIA256-GCM-SHA384" -# define TLS1_TXT_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 "ECDHE-ECDSA-ARIA128-GCM-SHA256" -# define TLS1_TXT_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 "ECDHE-ECDSA-ARIA256-GCM-SHA384" -# define TLS1_TXT_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 "ECDH-ECDSA-ARIA128-GCM-SHA256" -# define TLS1_TXT_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 "ECDH-ECDSA-ARIA256-GCM-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 "ECDHE-ARIA128-GCM-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 "ECDHE-ARIA256-GCM-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 "ECDH-ARIA128-GCM-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 "ECDH-ARIA256-GCM-SHA384" -# define TLS1_TXT_PSK_WITH_ARIA_128_GCM_SHA256 "PSK-ARIA128-GCM-SHA256" -# define TLS1_TXT_PSK_WITH_ARIA_256_GCM_SHA384 "PSK-ARIA256-GCM-SHA384" -# define TLS1_TXT_DHE_PSK_WITH_ARIA_128_GCM_SHA256 "DHE-PSK-ARIA128-GCM-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_ARIA_256_GCM_SHA384 "DHE-PSK-ARIA256-GCM-SHA384" -# define TLS1_TXT_RSA_PSK_WITH_ARIA_128_GCM_SHA256 "RSA-PSK-ARIA128-GCM-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_ARIA_256_GCM_SHA384 "RSA-PSK-ARIA256-GCM-SHA384" - -# define TLS_CT_RSA_SIGN 1 -# define TLS_CT_DSS_SIGN 2 -# define TLS_CT_RSA_FIXED_DH 3 -# define TLS_CT_DSS_FIXED_DH 4 -# define TLS_CT_ECDSA_SIGN 64 -# define TLS_CT_RSA_FIXED_ECDH 65 -# define TLS_CT_ECDSA_FIXED_ECDH 66 -# define TLS_CT_GOST01_SIGN 22 -# define TLS_CT_GOST12_IANA_SIGN 67 -# define TLS_CT_GOST12_IANA_512_SIGN 68 -# define TLS_CT_GOST12_LEGACY_SIGN 238 -# define TLS_CT_GOST12_LEGACY_512_SIGN 239 - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define TLS_CT_GOST12_SIGN TLS_CT_GOST12_LEGACY_SIGN -# define TLS_CT_GOST12_512_SIGN TLS_CT_GOST12_LEGACY_512_SIGN -# endif - -/* - * when correcting this number, correct also SSL3_CT_NUMBER in ssl3.h (see - * comment there) - */ -# define TLS_CT_NUMBER 12 - -# if defined(SSL3_CT_NUMBER) -# if TLS_CT_NUMBER != SSL3_CT_NUMBER -# error "SSL/TLS CT_NUMBER values do not match" -# endif -# endif - -# define TLS1_FINISH_MAC_LENGTH 12 - -# define TLS_MD_MAX_CONST_SIZE 22 - -/* ASCII: "client finished", in hex for EBCDIC compatibility */ -# define TLS_MD_CLIENT_FINISH_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x66\x69\x6e\x69\x73\x68\x65\x64" -# define TLS_MD_CLIENT_FINISH_CONST_SIZE 15 -/* ASCII: "server finished", in hex for EBCDIC compatibility */ -# define TLS_MD_SERVER_FINISH_CONST "\x73\x65\x72\x76\x65\x72\x20\x66\x69\x6e\x69\x73\x68\x65\x64" -# define TLS_MD_SERVER_FINISH_CONST_SIZE 15 -/* ASCII: "server write key", in hex for EBCDIC compatibility */ -# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" -# define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16 -/* ASCII: "key expansion", in hex for EBCDIC compatibility */ -# define TLS_MD_KEY_EXPANSION_CONST "\x6b\x65\x79\x20\x65\x78\x70\x61\x6e\x73\x69\x6f\x6e" -# define TLS_MD_KEY_EXPANSION_CONST_SIZE 13 -/* ASCII: "client write key", in hex for EBCDIC compatibility */ -# define TLS_MD_CLIENT_WRITE_KEY_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" -# define TLS_MD_CLIENT_WRITE_KEY_CONST_SIZE 16 -/* ASCII: "server write key", in hex for EBCDIC compatibility */ -# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" -# define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16 -/* ASCII: "IV block", in hex for EBCDIC compatibility */ -# define TLS_MD_IV_BLOCK_CONST "\x49\x56\x20\x62\x6c\x6f\x63\x6b" -# define TLS_MD_IV_BLOCK_CONST_SIZE 8 -/* ASCII: "master secret", in hex for EBCDIC compatibility */ -# define TLS_MD_MASTER_SECRET_CONST "\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" -# define TLS_MD_MASTER_SECRET_CONST_SIZE 13 -/* ASCII: "extended master secret", in hex for EBCDIC compatibility */ -# define TLS_MD_EXTENDED_MASTER_SECRET_CONST "\x65\x78\x74\x65\x6e\x64\x65\x64\x20\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" -# define TLS_MD_EXTENDED_MASTER_SECRET_CONST_SIZE 22 - -/* TLS Session Ticket extension struct */ -struct tls_session_ticket_ext_st { - unsigned short length; - void *data; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/trace.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/trace.h deleted file mode 100644 index 2ca07f7..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/trace.h +++ /dev/null @@ -1,321 +0,0 @@ -/* - * Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_TRACE_H -# define OPENSSL_TRACE_H -# pragma once - -# include - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * TRACE CATEGORIES - */ - -/* - * The trace messages of the OpenSSL libraries are organized into different - * categories. For every trace category, the application can register a separate - * tracer callback. When a callback is registered, a so called trace channel is - * created for this category. This channel consists essentially of an internal - * BIO which sends all trace output it receives to the registered application - * callback. - * - * The ALL category can be used as a fallback category to register a single - * channel which receives the output from all categories. However, if the - * application intends to print the trace channel name in the line prefix, - * it is better to register channels for all categories separately. - * (This is how the openssl application does it.) - */ -# define OSSL_TRACE_CATEGORY_ALL 0 /* The fallback */ -# define OSSL_TRACE_CATEGORY_TRACE 1 -# define OSSL_TRACE_CATEGORY_INIT 2 -# define OSSL_TRACE_CATEGORY_TLS 3 -# define OSSL_TRACE_CATEGORY_TLS_CIPHER 4 -# define OSSL_TRACE_CATEGORY_CONF 5 -# define OSSL_TRACE_CATEGORY_ENGINE_TABLE 6 -# define OSSL_TRACE_CATEGORY_ENGINE_REF_COUNT 7 -# define OSSL_TRACE_CATEGORY_PKCS5V2 8 -# define OSSL_TRACE_CATEGORY_PKCS12_KEYGEN 9 -# define OSSL_TRACE_CATEGORY_PKCS12_DECRYPT 10 -# define OSSL_TRACE_CATEGORY_X509V3_POLICY 11 -# define OSSL_TRACE_CATEGORY_BN_CTX 12 -# define OSSL_TRACE_CATEGORY_CMP 13 -# define OSSL_TRACE_CATEGORY_STORE 14 -# define OSSL_TRACE_CATEGORY_DECODER 15 -# define OSSL_TRACE_CATEGORY_ENCODER 16 -# define OSSL_TRACE_CATEGORY_REF_COUNT 17 -# define OSSL_TRACE_CATEGORY_HTTP 18 -# define OSSL_TRACE_CATEGORY_PROVIDER 19 -# define OSSL_TRACE_CATEGORY_QUERY 20 -# define OSSL_TRACE_CATEGORY_NUM 21 -/* KEEP THIS LIST IN SYNC with trace_categories[] in crypto/trace.c */ - -/* Returns the trace category number for the given |name| */ -int OSSL_trace_get_category_num(const char *name); - -/* Returns the trace category name for the given |num| */ -const char *OSSL_trace_get_category_name(int num); - -/* - * TRACE CONSUMERS - */ - -/* - * Enables tracing for the given |category| by providing a BIO sink - * as |channel|. If a null pointer is passed as |channel|, an existing - * trace channel is removed and tracing for the category is disabled. - * - * Returns 1 on success and 0 on failure - */ -int OSSL_trace_set_channel(int category, BIO* channel); - -/* - * Attach a prefix and a suffix to the given |category|, to be printed at the - * beginning and at the end of each trace output group, i.e. when - * OSSL_trace_begin() and OSSL_trace_end() are called. - * If a null pointer is passed as argument, the existing prefix or suffix is - * removed. - * - * They return 1 on success and 0 on failure - */ -int OSSL_trace_set_prefix(int category, const char *prefix); -int OSSL_trace_set_suffix(int category, const char *suffix); - -/* - * OSSL_trace_cb is the type tracing callback provided by the application. - * It MUST return the number of bytes written, or 0 on error (in other words, - * it can never write zero bytes). - * - * The |buffer| will always contain text, which may consist of several lines. - * The |data| argument points to whatever data was provided by the application - * when registering the tracer function. - * - * The |category| number is given, as well as a |cmd| number, described below. - */ -typedef size_t (*OSSL_trace_cb)(const char *buffer, size_t count, - int category, int cmd, void *data); -/* - * Possible |cmd| numbers. - */ -# define OSSL_TRACE_CTRL_BEGIN 0 -# define OSSL_TRACE_CTRL_WRITE 1 -# define OSSL_TRACE_CTRL_END 2 - -/* - * Enables tracing for the given |category| by creating an internal - * trace channel which sends the output to the given |callback|. - * If a null pointer is passed as callback, an existing trace channel - * is removed and tracing for the category is disabled. - * - * NOTE: OSSL_trace_set_channel() and OSSL_trace_set_callback() are mutually - * exclusive. - * - * Returns 1 on success and 0 on failure - */ -int OSSL_trace_set_callback(int category, OSSL_trace_cb callback, void *data); - -/* - * TRACE PRODUCERS - */ - -/* - * Returns 1 if tracing for the specified category is enabled, otherwise 0 - */ -int OSSL_trace_enabled(int category); - -/* - * Wrap a group of tracing output calls. OSSL_trace_begin() locks tracing and - * returns the trace channel associated with the given category, or NULL if no - * channel is associated with the category. OSSL_trace_end() unlocks tracing. - * - * Usage: - * - * BIO *out; - * if ((out = OSSL_trace_begin(category)) != NULL) { - * ... - * BIO_fprintf(out, ...); - * ... - * OSSL_trace_end(category, out); - * } - * - * See also the convenience macros OSSL_TRACE_BEGIN and OSSL_TRACE_END below. - */ -BIO *OSSL_trace_begin(int category); -void OSSL_trace_end(int category, BIO *channel); - -/* - * OSSL_TRACE* Convenience Macros - */ - -/* - * When the tracing feature is disabled, these macros are defined to - * produce dead code, which a good compiler should eliminate. - */ - -/* - * OSSL_TRACE_BEGIN, OSSL_TRACE_END - Define a Trace Group - * - * These two macros can be used to create a block which is executed only - * if the corresponding trace category is enabled. Inside this block, a - * local variable named |trc_out| is defined, which points to the channel - * associated with the given trace category. - * - * Usage: (using 'TLS' as an example category) - * - * OSSL_TRACE_BEGIN(TLS) { - * - * BIO_fprintf(trc_out, ... ); - * - * } OSSL_TRACE_END(TLS); - * - * - * This expands to the following code - * - * do { - * BIO *trc_out = OSSL_trace_begin(OSSL_TRACE_CATEGORY_TLS); - * if (trc_out != NULL) { - * ... - * BIO_fprintf(trc_out, ...); - * } - * OSSL_trace_end(OSSL_TRACE_CATEGORY_TLS, trc_out); - * } while (0); - * - * The use of the inner '{...}' group and the trailing ';' is enforced - * by the definition of the macros in order to make the code look as much - * like C code as possible. - * - * Before returning from inside the trace block, it is necessary to - * call OSSL_TRACE_CANCEL(category). - */ - -# if !defined OPENSSL_NO_TRACE && !defined FIPS_MODULE - -# define OSSL_TRACE_BEGIN(category) \ - do { \ - BIO *trc_out = OSSL_trace_begin(OSSL_TRACE_CATEGORY_##category); \ - \ - if (trc_out != NULL) - -# define OSSL_TRACE_END(category) \ - OSSL_trace_end(OSSL_TRACE_CATEGORY_##category, trc_out); \ - } while (0) - -# define OSSL_TRACE_CANCEL(category) \ - OSSL_trace_end(OSSL_TRACE_CATEGORY_##category, trc_out) \ - -# else - -# define OSSL_TRACE_BEGIN(category) \ - do { \ - BIO *trc_out = NULL; \ - if (0) - -# define OSSL_TRACE_END(category) \ - } while(0) - -# define OSSL_TRACE_CANCEL(category) \ - ((void)0) - -# endif - -/* - * OSSL_TRACE_ENABLED() - Check whether tracing is enabled for |category| - * - * Usage: - * - * if (OSSL_TRACE_ENABLED(TLS)) { - * ... - * } - */ -# if !defined OPENSSL_NO_TRACE && !defined FIPS_MODULE - -# define OSSL_TRACE_ENABLED(category) \ - OSSL_trace_enabled(OSSL_TRACE_CATEGORY_##category) - -# else - -# define OSSL_TRACE_ENABLED(category) (0) - -# endif - -/* - * OSSL_TRACE*() - OneShot Trace Macros - * - * These macros are intended to produce a simple printf-style trace output. - * Unfortunately, C90 macros don't support variable arguments, so the - * "vararg" OSSL_TRACEV() macro has a rather weird usage pattern: - * - * OSSL_TRACEV(category, (trc_out, "format string", ...args...)); - * - * Where 'channel' is the literal symbol of this name, not a variable. - * For that reason, it is currently not intended to be used directly, - * but only as helper macro for the other oneshot trace macros - * OSSL_TRACE(), OSSL_TRACE1(), OSSL_TRACE2(), ... - * - * Usage: - * - * OSSL_TRACE(INIT, "Hello world!\n"); - * OSSL_TRACE1(TLS, "The answer is %d\n", 42); - * OSSL_TRACE2(TLS, "The ultimate question to answer %d is '%s'\n", - * 42, "What do you get when you multiply six by nine?"); - */ - -# if !defined OPENSSL_NO_TRACE && !defined FIPS_MODULE - -# define OSSL_TRACEV(category, args) \ - OSSL_TRACE_BEGIN(category) \ - BIO_printf args; \ - OSSL_TRACE_END(category) - -# else - -# define OSSL_TRACEV(category, args) ((void)0) - -# endif - -# define OSSL_TRACE(category, text) \ - OSSL_TRACEV(category, (trc_out, "%s", text)) - -# define OSSL_TRACE1(category, format, arg1) \ - OSSL_TRACEV(category, (trc_out, format, arg1)) -# define OSSL_TRACE2(category, format, arg1, arg2) \ - OSSL_TRACEV(category, (trc_out, format, arg1, arg2)) -# define OSSL_TRACE3(category, format, arg1, arg2, arg3) \ - OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3)) -# define OSSL_TRACE4(category, format, arg1, arg2, arg3, arg4) \ - OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3, arg4)) -# define OSSL_TRACE5(category, format, arg1, arg2, arg3, arg4, arg5) \ - OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3, arg4, arg5)) -# define OSSL_TRACE6(category, format, arg1, arg2, arg3, arg4, arg5, arg6) \ - OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3, arg4, arg5, arg6)) -# define OSSL_TRACE7(category, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7) \ - OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7)) -# define OSSL_TRACE8(category, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) \ - OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)) -# define OSSL_TRACE9(category, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) \ - OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9)) - -#define OSSL_TRACE_STRING_MAX 80 -int OSSL_trace_string(BIO *out, int text, int full, - const unsigned char *data, size_t size); -#define OSSL_TRACE_STRING(category, text, full, data, len) \ - OSSL_TRACE_BEGIN(category) { \ - OSSL_trace_string(trc_out, text, full, data, len); \ - } OSSL_TRACE_END(category) - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/ts.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/ts.h deleted file mode 100644 index 31c78b5..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/ts.h +++ /dev/null @@ -1,522 +0,0 @@ -/* - * Copyright 2006-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_TS_H -# define OPENSSL_TS_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_TS_H -# endif - -# include - -# ifndef OPENSSL_NO_TS -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif -# ifdef __cplusplus -extern "C" { -# endif - -typedef struct TS_msg_imprint_st TS_MSG_IMPRINT; -typedef struct TS_req_st TS_REQ; -typedef struct TS_accuracy_st TS_ACCURACY; -typedef struct TS_tst_info_st TS_TST_INFO; - -/* Possible values for status. */ -# define TS_STATUS_GRANTED 0 -# define TS_STATUS_GRANTED_WITH_MODS 1 -# define TS_STATUS_REJECTION 2 -# define TS_STATUS_WAITING 3 -# define TS_STATUS_REVOCATION_WARNING 4 -# define TS_STATUS_REVOCATION_NOTIFICATION 5 - -/* Possible values for failure_info. */ -# define TS_INFO_BAD_ALG 0 -# define TS_INFO_BAD_REQUEST 2 -# define TS_INFO_BAD_DATA_FORMAT 5 -# define TS_INFO_TIME_NOT_AVAILABLE 14 -# define TS_INFO_UNACCEPTED_POLICY 15 -# define TS_INFO_UNACCEPTED_EXTENSION 16 -# define TS_INFO_ADD_INFO_NOT_AVAILABLE 17 -# define TS_INFO_SYSTEM_FAILURE 25 - - -typedef struct TS_status_info_st TS_STATUS_INFO; - -typedef struct TS_resp_st TS_RESP; - -DECLARE_ASN1_ALLOC_FUNCTIONS(TS_REQ) -DECLARE_ASN1_ENCODE_FUNCTIONS_only(TS_REQ, TS_REQ) -DECLARE_ASN1_DUP_FUNCTION(TS_REQ) - -#ifndef OPENSSL_NO_STDIO -TS_REQ *d2i_TS_REQ_fp(FILE *fp, TS_REQ **a); -int i2d_TS_REQ_fp(FILE *fp, const TS_REQ *a); -#endif -TS_REQ *d2i_TS_REQ_bio(BIO *fp, TS_REQ **a); -int i2d_TS_REQ_bio(BIO *fp, const TS_REQ *a); - -DECLARE_ASN1_ALLOC_FUNCTIONS(TS_MSG_IMPRINT) -DECLARE_ASN1_ENCODE_FUNCTIONS_only(TS_MSG_IMPRINT, TS_MSG_IMPRINT) -DECLARE_ASN1_DUP_FUNCTION(TS_MSG_IMPRINT) - -#ifndef OPENSSL_NO_STDIO -TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT **a); -int i2d_TS_MSG_IMPRINT_fp(FILE *fp, const TS_MSG_IMPRINT *a); -#endif -TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_bio(BIO *bio, TS_MSG_IMPRINT **a); -int i2d_TS_MSG_IMPRINT_bio(BIO *bio, const TS_MSG_IMPRINT *a); - -DECLARE_ASN1_ALLOC_FUNCTIONS(TS_RESP) -DECLARE_ASN1_ENCODE_FUNCTIONS_only(TS_RESP, TS_RESP) -DECLARE_ASN1_DUP_FUNCTION(TS_RESP) - -#ifndef OPENSSL_NO_STDIO -TS_RESP *d2i_TS_RESP_fp(FILE *fp, TS_RESP **a); -int i2d_TS_RESP_fp(FILE *fp, const TS_RESP *a); -#endif -TS_RESP *d2i_TS_RESP_bio(BIO *bio, TS_RESP **a); -int i2d_TS_RESP_bio(BIO *bio, const TS_RESP *a); - -DECLARE_ASN1_ALLOC_FUNCTIONS(TS_STATUS_INFO) -DECLARE_ASN1_ENCODE_FUNCTIONS_only(TS_STATUS_INFO, TS_STATUS_INFO) -DECLARE_ASN1_DUP_FUNCTION(TS_STATUS_INFO) - -DECLARE_ASN1_ALLOC_FUNCTIONS(TS_TST_INFO) -DECLARE_ASN1_ENCODE_FUNCTIONS_only(TS_TST_INFO, TS_TST_INFO) -DECLARE_ASN1_DUP_FUNCTION(TS_TST_INFO) -TS_TST_INFO *PKCS7_to_TS_TST_INFO(PKCS7 *token); - -#ifndef OPENSSL_NO_STDIO -TS_TST_INFO *d2i_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO **a); -int i2d_TS_TST_INFO_fp(FILE *fp, const TS_TST_INFO *a); -#endif -TS_TST_INFO *d2i_TS_TST_INFO_bio(BIO *bio, TS_TST_INFO **a); -int i2d_TS_TST_INFO_bio(BIO *bio, const TS_TST_INFO *a); - -DECLARE_ASN1_ALLOC_FUNCTIONS(TS_ACCURACY) -DECLARE_ASN1_ENCODE_FUNCTIONS_only(TS_ACCURACY, TS_ACCURACY) -DECLARE_ASN1_DUP_FUNCTION(TS_ACCURACY) - -int TS_REQ_set_version(TS_REQ *a, long version); -long TS_REQ_get_version(const TS_REQ *a); - -int TS_STATUS_INFO_set_status(TS_STATUS_INFO *a, int i); -const ASN1_INTEGER *TS_STATUS_INFO_get0_status(const TS_STATUS_INFO *a); - -const STACK_OF(ASN1_UTF8STRING) * -TS_STATUS_INFO_get0_text(const TS_STATUS_INFO *a); - -const ASN1_BIT_STRING * -TS_STATUS_INFO_get0_failure_info(const TS_STATUS_INFO *a); - -int TS_REQ_set_msg_imprint(TS_REQ *a, TS_MSG_IMPRINT *msg_imprint); -TS_MSG_IMPRINT *TS_REQ_get_msg_imprint(TS_REQ *a); - -int TS_MSG_IMPRINT_set_algo(TS_MSG_IMPRINT *a, X509_ALGOR *alg); -X509_ALGOR *TS_MSG_IMPRINT_get_algo(TS_MSG_IMPRINT *a); - -int TS_MSG_IMPRINT_set_msg(TS_MSG_IMPRINT *a, unsigned char *d, int len); -ASN1_OCTET_STRING *TS_MSG_IMPRINT_get_msg(TS_MSG_IMPRINT *a); - -int TS_REQ_set_policy_id(TS_REQ *a, const ASN1_OBJECT *policy); -ASN1_OBJECT *TS_REQ_get_policy_id(TS_REQ *a); - -int TS_REQ_set_nonce(TS_REQ *a, const ASN1_INTEGER *nonce); -const ASN1_INTEGER *TS_REQ_get_nonce(const TS_REQ *a); - -int TS_REQ_set_cert_req(TS_REQ *a, int cert_req); -int TS_REQ_get_cert_req(const TS_REQ *a); - -STACK_OF(X509_EXTENSION) *TS_REQ_get_exts(TS_REQ *a); -void TS_REQ_ext_free(TS_REQ *a); -int TS_REQ_get_ext_count(TS_REQ *a); -int TS_REQ_get_ext_by_NID(TS_REQ *a, int nid, int lastpos); -int TS_REQ_get_ext_by_OBJ(TS_REQ *a, const ASN1_OBJECT *obj, int lastpos); -int TS_REQ_get_ext_by_critical(TS_REQ *a, int crit, int lastpos); -X509_EXTENSION *TS_REQ_get_ext(TS_REQ *a, int loc); -X509_EXTENSION *TS_REQ_delete_ext(TS_REQ *a, int loc); -int TS_REQ_add_ext(TS_REQ *a, X509_EXTENSION *ex, int loc); -void *TS_REQ_get_ext_d2i(TS_REQ *a, int nid, int *crit, int *idx); - -/* Function declarations for TS_REQ defined in ts/ts_req_print.c */ - -int TS_REQ_print_bio(BIO *bio, TS_REQ *a); - -/* Function declarations for TS_RESP defined in ts/ts_resp_utils.c */ - -int TS_RESP_set_status_info(TS_RESP *a, TS_STATUS_INFO *info); -TS_STATUS_INFO *TS_RESP_get_status_info(TS_RESP *a); - -/* Caller loses ownership of PKCS7 and TS_TST_INFO objects. */ -void TS_RESP_set_tst_info(TS_RESP *a, PKCS7 *p7, TS_TST_INFO *tst_info); -PKCS7 *TS_RESP_get_token(TS_RESP *a); -TS_TST_INFO *TS_RESP_get_tst_info(TS_RESP *a); - -int TS_TST_INFO_set_version(TS_TST_INFO *a, long version); -long TS_TST_INFO_get_version(const TS_TST_INFO *a); - -int TS_TST_INFO_set_policy_id(TS_TST_INFO *a, ASN1_OBJECT *policy_id); -ASN1_OBJECT *TS_TST_INFO_get_policy_id(TS_TST_INFO *a); - -int TS_TST_INFO_set_msg_imprint(TS_TST_INFO *a, TS_MSG_IMPRINT *msg_imprint); -TS_MSG_IMPRINT *TS_TST_INFO_get_msg_imprint(TS_TST_INFO *a); - -int TS_TST_INFO_set_serial(TS_TST_INFO *a, const ASN1_INTEGER *serial); -const ASN1_INTEGER *TS_TST_INFO_get_serial(const TS_TST_INFO *a); - -int TS_TST_INFO_set_time(TS_TST_INFO *a, const ASN1_GENERALIZEDTIME *gtime); -const ASN1_GENERALIZEDTIME *TS_TST_INFO_get_time(const TS_TST_INFO *a); - -int TS_TST_INFO_set_accuracy(TS_TST_INFO *a, TS_ACCURACY *accuracy); -TS_ACCURACY *TS_TST_INFO_get_accuracy(TS_TST_INFO *a); - -int TS_ACCURACY_set_seconds(TS_ACCURACY *a, const ASN1_INTEGER *seconds); -const ASN1_INTEGER *TS_ACCURACY_get_seconds(const TS_ACCURACY *a); - -int TS_ACCURACY_set_millis(TS_ACCURACY *a, const ASN1_INTEGER *millis); -const ASN1_INTEGER *TS_ACCURACY_get_millis(const TS_ACCURACY *a); - -int TS_ACCURACY_set_micros(TS_ACCURACY *a, const ASN1_INTEGER *micros); -const ASN1_INTEGER *TS_ACCURACY_get_micros(const TS_ACCURACY *a); - -int TS_TST_INFO_set_ordering(TS_TST_INFO *a, int ordering); -int TS_TST_INFO_get_ordering(const TS_TST_INFO *a); - -int TS_TST_INFO_set_nonce(TS_TST_INFO *a, const ASN1_INTEGER *nonce); -const ASN1_INTEGER *TS_TST_INFO_get_nonce(const TS_TST_INFO *a); - -int TS_TST_INFO_set_tsa(TS_TST_INFO *a, GENERAL_NAME *tsa); -GENERAL_NAME *TS_TST_INFO_get_tsa(TS_TST_INFO *a); - -STACK_OF(X509_EXTENSION) *TS_TST_INFO_get_exts(TS_TST_INFO *a); -void TS_TST_INFO_ext_free(TS_TST_INFO *a); -int TS_TST_INFO_get_ext_count(TS_TST_INFO *a); -int TS_TST_INFO_get_ext_by_NID(TS_TST_INFO *a, int nid, int lastpos); -int TS_TST_INFO_get_ext_by_OBJ(TS_TST_INFO *a, const ASN1_OBJECT *obj, - int lastpos); -int TS_TST_INFO_get_ext_by_critical(TS_TST_INFO *a, int crit, int lastpos); -X509_EXTENSION *TS_TST_INFO_get_ext(TS_TST_INFO *a, int loc); -X509_EXTENSION *TS_TST_INFO_delete_ext(TS_TST_INFO *a, int loc); -int TS_TST_INFO_add_ext(TS_TST_INFO *a, X509_EXTENSION *ex, int loc); -void *TS_TST_INFO_get_ext_d2i(TS_TST_INFO *a, int nid, int *crit, int *idx); - -/* - * Declarations related to response generation, defined in ts/ts_resp_sign.c. - */ - -/* Optional flags for response generation. */ - -/* Don't include the TSA name in response. */ -# define TS_TSA_NAME 0x01 - -/* Set ordering to true in response. */ -# define TS_ORDERING 0x02 - -/* - * Include the signer certificate and the other specified certificates in - * the ESS signing certificate attribute beside the PKCS7 signed data. - * Only the signer certificates is included by default. - */ -# define TS_ESS_CERT_ID_CHAIN 0x04 - -/* Forward declaration. */ -struct TS_resp_ctx; - -/* This must return a unique number less than 160 bits long. */ -typedef ASN1_INTEGER *(*TS_serial_cb) (struct TS_resp_ctx *, void *); - -/* - * This must return the seconds and microseconds since Jan 1, 1970 in the sec - * and usec variables allocated by the caller. Return non-zero for success - * and zero for failure. - */ -typedef int (*TS_time_cb) (struct TS_resp_ctx *, void *, long *sec, - long *usec); - -/* - * This must process the given extension. It can modify the TS_TST_INFO - * object of the context. Return values: !0 (processed), 0 (error, it must - * set the status info/failure info of the response). - */ -typedef int (*TS_extension_cb) (struct TS_resp_ctx *, X509_EXTENSION *, - void *); - -typedef struct TS_resp_ctx TS_RESP_CTX; - -/* Creates a response context that can be used for generating responses. */ -TS_RESP_CTX *TS_RESP_CTX_new(void); -TS_RESP_CTX *TS_RESP_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); -void TS_RESP_CTX_free(TS_RESP_CTX *ctx); - -/* This parameter must be set. */ -int TS_RESP_CTX_set_signer_cert(TS_RESP_CTX *ctx, X509 *signer); - -/* This parameter must be set. */ -int TS_RESP_CTX_set_signer_key(TS_RESP_CTX *ctx, EVP_PKEY *key); - -int TS_RESP_CTX_set_signer_digest(TS_RESP_CTX *ctx, - const EVP_MD *signer_digest); -int TS_RESP_CTX_set_ess_cert_id_digest(TS_RESP_CTX *ctx, const EVP_MD *md); - -/* This parameter must be set. */ -int TS_RESP_CTX_set_def_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *def_policy); - -/* No additional certs are included in the response by default. */ -int TS_RESP_CTX_set_certs(TS_RESP_CTX *ctx, STACK_OF(X509) *certs); - -/* - * Adds a new acceptable policy, only the default policy is accepted by - * default. - */ -int TS_RESP_CTX_add_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *policy); - -/* - * Adds a new acceptable message digest. Note that no message digests are - * accepted by default. The md argument is shared with the caller. - */ -int TS_RESP_CTX_add_md(TS_RESP_CTX *ctx, const EVP_MD *md); - -/* Accuracy is not included by default. */ -int TS_RESP_CTX_set_accuracy(TS_RESP_CTX *ctx, - int secs, int millis, int micros); - -/* - * Clock precision digits, i.e. the number of decimal digits: '0' means sec, - * '3' msec, '6' usec, and so on. Default is 0. - */ -int TS_RESP_CTX_set_clock_precision_digits(TS_RESP_CTX *ctx, - unsigned clock_precision_digits); -/* At most we accept usec precision. */ -# define TS_MAX_CLOCK_PRECISION_DIGITS 6 - -/* Maximum status message length */ -# define TS_MAX_STATUS_LENGTH (1024 * 1024) - -/* No flags are set by default. */ -void TS_RESP_CTX_add_flags(TS_RESP_CTX *ctx, int flags); - -/* Default callback always returns a constant. */ -void TS_RESP_CTX_set_serial_cb(TS_RESP_CTX *ctx, TS_serial_cb cb, void *data); - -/* Default callback uses the gettimeofday() and gmtime() system calls. */ -void TS_RESP_CTX_set_time_cb(TS_RESP_CTX *ctx, TS_time_cb cb, void *data); - -/* - * Default callback rejects all extensions. The extension callback is called - * when the TS_TST_INFO object is already set up and not signed yet. - */ -/* FIXME: extension handling is not tested yet. */ -void TS_RESP_CTX_set_extension_cb(TS_RESP_CTX *ctx, - TS_extension_cb cb, void *data); - -/* The following methods can be used in the callbacks. */ -int TS_RESP_CTX_set_status_info(TS_RESP_CTX *ctx, - int status, const char *text); - -/* Sets the status info only if it is still TS_STATUS_GRANTED. */ -int TS_RESP_CTX_set_status_info_cond(TS_RESP_CTX *ctx, - int status, const char *text); - -int TS_RESP_CTX_add_failure_info(TS_RESP_CTX *ctx, int failure); - -/* The get methods below can be used in the extension callback. */ -TS_REQ *TS_RESP_CTX_get_request(TS_RESP_CTX *ctx); - -TS_TST_INFO *TS_RESP_CTX_get_tst_info(TS_RESP_CTX *ctx); - -/* - * Creates the signed TS_TST_INFO and puts it in TS_RESP. - * In case of errors it sets the status info properly. - * Returns NULL only in case of memory allocation/fatal error. - */ -TS_RESP *TS_RESP_create_response(TS_RESP_CTX *ctx, BIO *req_bio); - -/* - * Declarations related to response verification, - * they are defined in ts/ts_resp_verify.c. - */ - -int TS_RESP_verify_signature(PKCS7 *token, STACK_OF(X509) *certs, - X509_STORE *store, X509 **signer_out); - -/* Context structure for the generic verify method. */ - -/* Verify the signer's certificate and the signature of the response. */ -# define TS_VFY_SIGNATURE (1u << 0) -/* Verify the version number of the response. */ -# define TS_VFY_VERSION (1u << 1) -/* Verify if the policy supplied by the user matches the policy of the TSA. */ -# define TS_VFY_POLICY (1u << 2) -/* - * Verify the message imprint provided by the user. This flag should not be - * specified with TS_VFY_DATA. - */ -# define TS_VFY_IMPRINT (1u << 3) -/* - * Verify the message imprint computed by the verify method from the user - * provided data and the MD algorithm of the response. This flag should not - * be specified with TS_VFY_IMPRINT. - */ -# define TS_VFY_DATA (1u << 4) -/* Verify the nonce value. */ -# define TS_VFY_NONCE (1u << 5) -/* Verify if the TSA name field matches the signer certificate. */ -# define TS_VFY_SIGNER (1u << 6) -/* Verify if the TSA name field equals to the user provided name. */ -# define TS_VFY_TSA_NAME (1u << 7) - -/* You can use the following convenience constants. */ -# define TS_VFY_ALL_IMPRINT (TS_VFY_SIGNATURE \ - | TS_VFY_VERSION \ - | TS_VFY_POLICY \ - | TS_VFY_IMPRINT \ - | TS_VFY_NONCE \ - | TS_VFY_SIGNER \ - | TS_VFY_TSA_NAME) -# define TS_VFY_ALL_DATA (TS_VFY_SIGNATURE \ - | TS_VFY_VERSION \ - | TS_VFY_POLICY \ - | TS_VFY_DATA \ - | TS_VFY_NONCE \ - | TS_VFY_SIGNER \ - | TS_VFY_TSA_NAME) - -typedef struct TS_verify_ctx TS_VERIFY_CTX; - -int TS_RESP_verify_response(TS_VERIFY_CTX *ctx, TS_RESP *response); -int TS_RESP_verify_token(TS_VERIFY_CTX *ctx, PKCS7 *token); - -/* - * Declarations related to response verification context, - */ -TS_VERIFY_CTX *TS_VERIFY_CTX_new(void); -void TS_VERIFY_CTX_init(TS_VERIFY_CTX *ctx); -void TS_VERIFY_CTX_free(TS_VERIFY_CTX *ctx); -void TS_VERIFY_CTX_cleanup(TS_VERIFY_CTX *ctx); -int TS_VERIFY_CTX_set_flags(TS_VERIFY_CTX *ctx, int f); -int TS_VERIFY_CTX_add_flags(TS_VERIFY_CTX *ctx, int f); -# ifndef OPENSSL_NO_DEPRECATED_3_4 -OSSL_DEPRECATEDIN_3_4_FOR("Unclear semantics, replace with TS_VERIFY_CTX_set0_data().") -BIO *TS_VERIFY_CTX_set_data(TS_VERIFY_CTX *ctx, BIO *b); -# endif -int TS_VERIFY_CTX_set0_data(TS_VERIFY_CTX *ctx, BIO *b); -# ifndef OPENSSL_NO_DEPRECATED_3_4 -OSSL_DEPRECATEDIN_3_4_FOR("Unclear semantics, replace with TS_VERIFY_CTX_set0_imprint().") -unsigned char *TS_VERIFY_CTX_set_imprint(TS_VERIFY_CTX *ctx, - unsigned char *hexstr, long len); -# endif -int TS_VERIFY_CTX_set0_imprint(TS_VERIFY_CTX *ctx, - unsigned char *hexstr, long len); -# ifndef OPENSSL_NO_DEPRECATED_3_4 -OSSL_DEPRECATEDIN_3_4_FOR("Unclear semantics, replace with TS_VERIFY_CTX_set0_store().") -X509_STORE *TS_VERIFY_CTX_set_store(TS_VERIFY_CTX *ctx, X509_STORE *s); -# endif -int TS_VERIFY_CTX_set0_store(TS_VERIFY_CTX *ctx, X509_STORE *s); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define TS_VERIFY_CTS_set_certs(ctx, cert) TS_VERIFY_CTX_set_certs(ctx,cert) -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_4 -OSSL_DEPRECATEDIN_3_4_FOR("Unclear semantics, replace with TS_VERIFY_CTX_set0_certs().") -STACK_OF(X509) *TS_VERIFY_CTX_set_certs(TS_VERIFY_CTX *ctx, STACK_OF(X509) *certs); -# endif -int TS_VERIFY_CTX_set0_certs(TS_VERIFY_CTX *ctx, STACK_OF(X509) *certs); - -/*- - * If ctx is NULL, it allocates and returns a new object, otherwise - * it returns ctx. It initialises all the members as follows: - * flags = TS_VFY_ALL_IMPRINT & ~(TS_VFY_TSA_NAME | TS_VFY_SIGNATURE) - * certs = NULL - * store = NULL - * policy = policy from the request or NULL if absent (in this case - * TS_VFY_POLICY is cleared from flags as well) - * md_alg = MD algorithm from request - * imprint, imprint_len = imprint from request - * data = NULL - * nonce, nonce_len = nonce from the request or NULL if absent (in this case - * TS_VFY_NONCE is cleared from flags as well) - * tsa_name = NULL - * Important: after calling this method TS_VFY_SIGNATURE should be added! - */ -TS_VERIFY_CTX *TS_REQ_to_TS_VERIFY_CTX(TS_REQ *req, TS_VERIFY_CTX *ctx); - -/* Function declarations for TS_RESP defined in ts/ts_resp_print.c */ - -int TS_RESP_print_bio(BIO *bio, TS_RESP *a); -int TS_STATUS_INFO_print_bio(BIO *bio, TS_STATUS_INFO *a); -int TS_TST_INFO_print_bio(BIO *bio, TS_TST_INFO *a); - -/* Common utility functions defined in ts/ts_lib.c */ - -int TS_ASN1_INTEGER_print_bio(BIO *bio, const ASN1_INTEGER *num); -int TS_OBJ_print_bio(BIO *bio, const ASN1_OBJECT *obj); -int TS_ext_print_bio(BIO *bio, const STACK_OF(X509_EXTENSION) *extensions); -int TS_X509_ALGOR_print_bio(BIO *bio, const X509_ALGOR *alg); -int TS_MSG_IMPRINT_print_bio(BIO *bio, TS_MSG_IMPRINT *msg); - -/* - * Function declarations for handling configuration options, defined in - * ts/ts_conf.c - */ - -X509 *TS_CONF_load_cert(const char *file); -STACK_OF(X509) *TS_CONF_load_certs(const char *file); -EVP_PKEY *TS_CONF_load_key(const char *file, const char *pass); -const char *TS_CONF_get_tsa_section(CONF *conf, const char *section); -int TS_CONF_set_serial(CONF *conf, const char *section, TS_serial_cb cb, - TS_RESP_CTX *ctx); -#ifndef OPENSSL_NO_ENGINE -int TS_CONF_set_crypto_device(CONF *conf, const char *section, - const char *device); -int TS_CONF_set_default_engine(const char *name); -#endif -int TS_CONF_set_signer_cert(CONF *conf, const char *section, - const char *cert, TS_RESP_CTX *ctx); -int TS_CONF_set_certs(CONF *conf, const char *section, const char *certs, - TS_RESP_CTX *ctx); -int TS_CONF_set_signer_key(CONF *conf, const char *section, - const char *key, const char *pass, - TS_RESP_CTX *ctx); -int TS_CONF_set_signer_digest(CONF *conf, const char *section, - const char *md, TS_RESP_CTX *ctx); -int TS_CONF_set_def_policy(CONF *conf, const char *section, - const char *policy, TS_RESP_CTX *ctx); -int TS_CONF_set_policies(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_digests(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_accuracy(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_clock_precision_digits(const CONF *conf, const char *section, - TS_RESP_CTX *ctx); -int TS_CONF_set_ordering(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_tsa_name(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_ess_cert_id_chain(CONF *conf, const char *section, - TS_RESP_CTX *ctx); -int TS_CONF_set_ess_cert_id_digest(CONF *conf, const char *section, - TS_RESP_CTX *ctx); - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/tserr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/tserr.h deleted file mode 100644 index e1b943e..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/tserr.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_TSERR_H -# define OPENSSL_TSERR_H -# pragma once - -# include -# include -# include - - -# ifndef OPENSSL_NO_TS - - -/* - * TS reason codes. - */ -# define TS_R_BAD_PKCS7_TYPE 132 -# define TS_R_BAD_TYPE 133 -# define TS_R_CANNOT_LOAD_CERT 137 -# define TS_R_CANNOT_LOAD_KEY 138 -# define TS_R_CERTIFICATE_VERIFY_ERROR 100 -# define TS_R_COULD_NOT_SET_ENGINE 127 -# define TS_R_COULD_NOT_SET_TIME 115 -# define TS_R_DETACHED_CONTENT 134 -# define TS_R_ESS_ADD_SIGNING_CERT_ERROR 116 -# define TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR 139 -# define TS_R_ESS_SIGNING_CERTIFICATE_ERROR 101 -# define TS_R_INVALID_NULL_POINTER 102 -# define TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE 117 -# define TS_R_MESSAGE_IMPRINT_MISMATCH 103 -# define TS_R_NONCE_MISMATCH 104 -# define TS_R_NONCE_NOT_RETURNED 105 -# define TS_R_NO_CONTENT 106 -# define TS_R_NO_TIME_STAMP_TOKEN 107 -# define TS_R_PKCS7_ADD_SIGNATURE_ERROR 118 -# define TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR 119 -# define TS_R_PKCS7_TO_TS_TST_INFO_FAILED 129 -# define TS_R_POLICY_MISMATCH 108 -# define TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 120 -# define TS_R_RESPONSE_SETUP_ERROR 121 -# define TS_R_SIGNATURE_FAILURE 109 -# define TS_R_THERE_MUST_BE_ONE_SIGNER 110 -# define TS_R_TIME_SYSCALL_ERROR 122 -# define TS_R_TOKEN_NOT_PRESENT 130 -# define TS_R_TOKEN_PRESENT 131 -# define TS_R_TSA_NAME_MISMATCH 111 -# define TS_R_TSA_UNTRUSTED 112 -# define TS_R_TST_INFO_SETUP_ERROR 123 -# define TS_R_TS_DATASIGN 124 -# define TS_R_UNACCEPTABLE_POLICY 125 -# define TS_R_UNSUPPORTED_MD_ALGORITHM 126 -# define TS_R_UNSUPPORTED_VERSION 113 -# define TS_R_VAR_BAD_VALUE 135 -# define TS_R_VAR_LOOKUP_FAILURE 136 -# define TS_R_WRONG_CONTENT_TYPE 114 - -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/txt_db.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/txt_db.h deleted file mode 100644 index af169a3..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/txt_db.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_TXT_DB_H -# define OPENSSL_TXT_DB_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_TXT_DB_H -# endif - -# include -# include -# include -# include - -# define DB_ERROR_OK 0 -# define DB_ERROR_MALLOC 1 -# define DB_ERROR_INDEX_CLASH 2 -# define DB_ERROR_INDEX_OUT_OF_RANGE 3 -# define DB_ERROR_NO_INDEX 4 -# define DB_ERROR_INSERT_INDEX_CLASH 5 -# define DB_ERROR_WRONG_NUM_FIELDS 6 - -#ifdef __cplusplus -extern "C" { -#endif - -typedef OPENSSL_STRING *OPENSSL_PSTRING; -DEFINE_SPECIAL_STACK_OF(OPENSSL_PSTRING, OPENSSL_STRING) - -typedef struct txt_db_st { - int num_fields; - STACK_OF(OPENSSL_PSTRING) *data; - LHASH_OF(OPENSSL_STRING) **index; - int (**qual) (OPENSSL_STRING *); - long error; - long arg1; - long arg2; - OPENSSL_STRING *arg_row; -} TXT_DB; - -TXT_DB *TXT_DB_read(BIO *in, int num); -long TXT_DB_write(BIO *out, TXT_DB *db); -int TXT_DB_create_index(TXT_DB *db, int field, int (*qual) (OPENSSL_STRING *), - OPENSSL_LH_HASHFUNC hash, OPENSSL_LH_COMPFUNC cmp); -void TXT_DB_free(TXT_DB *db); -OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx, - OPENSSL_STRING *value); -int TXT_DB_insert(TXT_DB *db, OPENSSL_STRING *value); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/types.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/types.h deleted file mode 100644 index 344d892..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/types.h +++ /dev/null @@ -1,248 +0,0 @@ -/* - * Copyright 2001-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * Unfortunate workaround to avoid symbol conflict with wincrypt.h - * See https://github.com/openssl/openssl/issues/9981 - */ -#ifdef _WIN32 -# define WINCRYPT_USE_SYMBOL_PREFIX -# undef X509_NAME -# undef X509_EXTENSIONS -# undef PKCS7_SIGNER_INFO -# undef OCSP_REQUEST -# undef OCSP_RESPONSE -#endif - -#ifndef OPENSSL_TYPES_H -# define OPENSSL_TYPES_H - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# include -# include -# include - -# if OPENSSL_VERSION_MAJOR >= 4 -# define OSSL_FUTURE_CONST const -# else -# define OSSL_FUTURE_CONST -# endif - -typedef struct ossl_provider_st OSSL_PROVIDER; /* Provider Object */ - -# ifdef NO_ASN1_TYPEDEFS -# define ASN1_INTEGER ASN1_STRING -# define ASN1_ENUMERATED ASN1_STRING -# define ASN1_BIT_STRING ASN1_STRING -# define ASN1_OCTET_STRING ASN1_STRING -# define ASN1_PRINTABLESTRING ASN1_STRING -# define ASN1_T61STRING ASN1_STRING -# define ASN1_IA5STRING ASN1_STRING -# define ASN1_UTCTIME ASN1_STRING -# define ASN1_GENERALIZEDTIME ASN1_STRING -# define ASN1_TIME ASN1_STRING -# define ASN1_GENERALSTRING ASN1_STRING -# define ASN1_UNIVERSALSTRING ASN1_STRING -# define ASN1_BMPSTRING ASN1_STRING -# define ASN1_VISIBLESTRING ASN1_STRING -# define ASN1_UTF8STRING ASN1_STRING -# define ASN1_BOOLEAN int -# define ASN1_NULL int -# else -typedef struct asn1_string_st ASN1_INTEGER; -typedef struct asn1_string_st ASN1_ENUMERATED; -typedef struct asn1_string_st ASN1_BIT_STRING; -typedef struct asn1_string_st ASN1_OCTET_STRING; -typedef struct asn1_string_st ASN1_PRINTABLESTRING; -typedef struct asn1_string_st ASN1_T61STRING; -typedef struct asn1_string_st ASN1_IA5STRING; -typedef struct asn1_string_st ASN1_GENERALSTRING; -typedef struct asn1_string_st ASN1_UNIVERSALSTRING; -typedef struct asn1_string_st ASN1_BMPSTRING; -typedef struct asn1_string_st ASN1_UTCTIME; -typedef struct asn1_string_st ASN1_TIME; -typedef struct asn1_string_st ASN1_GENERALIZEDTIME; -typedef struct asn1_string_st ASN1_VISIBLESTRING; -typedef struct asn1_string_st ASN1_UTF8STRING; -typedef struct asn1_string_st ASN1_STRING; -typedef int ASN1_BOOLEAN; -typedef int ASN1_NULL; -# endif - -typedef struct asn1_type_st ASN1_TYPE; -typedef struct asn1_object_st ASN1_OBJECT; -typedef struct asn1_string_table_st ASN1_STRING_TABLE; - -typedef struct ASN1_ITEM_st ASN1_ITEM; -typedef struct asn1_pctx_st ASN1_PCTX; -typedef struct asn1_sctx_st ASN1_SCTX; - -# ifdef BIGNUM -# undef BIGNUM -# endif - -typedef struct bio_st BIO; -typedef struct bignum_st BIGNUM; -typedef struct bignum_ctx BN_CTX; -typedef struct bn_blinding_st BN_BLINDING; -typedef struct bn_mont_ctx_st BN_MONT_CTX; -typedef struct bn_recp_ctx_st BN_RECP_CTX; -typedef struct bn_gencb_st BN_GENCB; - -typedef struct buf_mem_st BUF_MEM; - -STACK_OF(BIGNUM); -STACK_OF(BIGNUM_const); - -typedef struct err_state_st ERR_STATE; - -typedef struct evp_cipher_st EVP_CIPHER; -typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; -typedef struct evp_md_st EVP_MD; -typedef struct evp_md_ctx_st EVP_MD_CTX; -typedef struct evp_mac_st EVP_MAC; -typedef struct evp_mac_ctx_st EVP_MAC_CTX; -typedef struct evp_pkey_st EVP_PKEY; -typedef struct evp_skey_st EVP_SKEY; - -typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; - -typedef struct evp_pkey_method_st EVP_PKEY_METHOD; -typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; - -typedef struct evp_keymgmt_st EVP_KEYMGMT; - -typedef struct evp_kdf_st EVP_KDF; -typedef struct evp_kdf_ctx_st EVP_KDF_CTX; - -typedef struct evp_rand_st EVP_RAND; -typedef struct evp_rand_ctx_st EVP_RAND_CTX; - -typedef struct evp_keyexch_st EVP_KEYEXCH; - -typedef struct evp_signature_st EVP_SIGNATURE; - -typedef struct evp_skeymgmt_st EVP_SKEYMGMT; - -typedef struct evp_asym_cipher_st EVP_ASYM_CIPHER; - -typedef struct evp_kem_st EVP_KEM; - -typedef struct evp_Encode_Ctx_st EVP_ENCODE_CTX; - -typedef struct hmac_ctx_st HMAC_CTX; - -typedef struct dh_st DH; -typedef struct dh_method DH_METHOD; - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -typedef struct dsa_st DSA; -typedef struct dsa_method DSA_METHOD; -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -typedef struct rsa_st RSA; -typedef struct rsa_meth_st RSA_METHOD; -# endif -typedef struct rsa_pss_params_st RSA_PSS_PARAMS; - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -typedef struct ec_key_st EC_KEY; -typedef struct ec_key_method_st EC_KEY_METHOD; -# endif - -typedef struct rand_meth_st RAND_METHOD; -typedef struct rand_drbg_st RAND_DRBG; - -typedef struct ssl_dane_st SSL_DANE; -typedef struct x509_st X509; -typedef struct X509_algor_st X509_ALGOR; -typedef struct X509_crl_st X509_CRL; -typedef struct x509_crl_method_st X509_CRL_METHOD; -typedef struct x509_revoked_st X509_REVOKED; -typedef struct X509_name_st X509_NAME; -typedef struct X509_pubkey_st X509_PUBKEY; -typedef struct x509_store_st X509_STORE; -typedef struct x509_store_ctx_st X509_STORE_CTX; - -typedef struct x509_object_st X509_OBJECT; -typedef struct x509_lookup_st X509_LOOKUP; -typedef struct x509_lookup_method_st X509_LOOKUP_METHOD; -typedef struct X509_VERIFY_PARAM_st X509_VERIFY_PARAM; - -typedef struct x509_sig_info_st X509_SIG_INFO; - -typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO; - -typedef struct v3_ext_ctx X509V3_CTX; -typedef struct conf_st CONF; -typedef struct ossl_init_settings_st OPENSSL_INIT_SETTINGS; - -typedef struct ui_st UI; -typedef struct ui_method_st UI_METHOD; - -typedef struct engine_st ENGINE; -typedef struct ssl_st SSL; -typedef struct ssl_ctx_st SSL_CTX; - -typedef struct comp_ctx_st COMP_CTX; -typedef struct comp_method_st COMP_METHOD; - -typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; -typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; -typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; -typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; - -typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; -typedef struct DIST_POINT_st DIST_POINT; -typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; -typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; - -typedef struct crypto_ex_data_st CRYPTO_EX_DATA; - -typedef struct ossl_http_req_ctx_st OSSL_HTTP_REQ_CTX; -typedef struct ocsp_response_st OCSP_RESPONSE; -typedef struct ocsp_responder_id_st OCSP_RESPID; - -typedef struct sct_st SCT; -typedef struct sct_ctx_st SCT_CTX; -typedef struct ctlog_st CTLOG; -typedef struct ctlog_store_st CTLOG_STORE; -typedef struct ct_policy_eval_ctx_st CT_POLICY_EVAL_CTX; - -typedef struct ossl_store_info_st OSSL_STORE_INFO; -typedef struct ossl_store_search_st OSSL_STORE_SEARCH; - -typedef struct ossl_lib_ctx_st OSSL_LIB_CTX; - -typedef struct ossl_dispatch_st OSSL_DISPATCH; -typedef struct ossl_item_st OSSL_ITEM; -typedef struct ossl_algorithm_st OSSL_ALGORITHM; -typedef struct ossl_param_st OSSL_PARAM; -typedef struct ossl_param_bld_st OSSL_PARAM_BLD; - -typedef int pem_password_cb (char *buf, int size, int rwflag, void *userdata); - -typedef struct ossl_encoder_st OSSL_ENCODER; -typedef struct ossl_encoder_ctx_st OSSL_ENCODER_CTX; -typedef struct ossl_decoder_st OSSL_DECODER; -typedef struct ossl_decoder_ctx_st OSSL_DECODER_CTX; - -typedef struct ossl_self_test_st OSSL_SELF_TEST; - -#ifdef __cplusplus -} -#endif - -#endif /* OPENSSL_TYPES_H */ diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/ui.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/ui.h deleted file mode 100644 index 0680a5f..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/ui.h +++ /dev/null @@ -1,407 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\ui.h.in - * - * Copyright 2001-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_UI_H -# define OPENSSL_UI_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_UI_H -# endif - -# include - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# include -# endif -# include -# include -# include -# include - -/* For compatibility reasons, the macro OPENSSL_NO_UI is currently retained */ -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifdef OPENSSL_NO_UI_CONSOLE -# define OPENSSL_NO_UI -# endif -# endif - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * All the following functions return -1 or NULL on error and in some cases - * (UI_process()) -2 if interrupted or in some other way cancelled. When - * everything is fine, they return 0, a positive value or a non-NULL pointer, - * all depending on their purpose. - */ - -/* Creators and destructor. */ -UI *UI_new(void); -UI *UI_new_method(const UI_METHOD *method); -void UI_free(UI *ui); - -/*- - The following functions are used to add strings to be printed and prompt - strings to prompt for data. The names are UI_{add,dup}__string - and UI_{add,dup}_input_boolean. - - UI_{add,dup}__string have the following meanings: - add add a text or prompt string. The pointers given to these - functions are used verbatim, no copying is done. - dup make a copy of the text or prompt string, then add the copy - to the collection of strings in the user interface. - - The function is a name for the functionality that the given - string shall be used for. It can be one of: - input use the string as data prompt. - verify use the string as verification prompt. This - is used to verify a previous input. - info use the string for informational output. - error use the string for error output. - Honestly, there's currently no difference between info and error for the - moment. - - UI_{add,dup}_input_boolean have the same semantics for "add" and "dup", - and are typically used when one wants to prompt for a yes/no response. - - All of the functions in this group take a UI and a prompt string. - The string input and verify addition functions also take a flag argument, - a buffer for the result to end up with, a minimum input size and a maximum - input size (the result buffer MUST be large enough to be able to contain - the maximum number of characters). Additionally, the verify addition - functions takes another buffer to compare the result against. - The boolean input functions take an action description string (which should - be safe to ignore if the expected user action is obvious, for example with - a dialog box with an OK button and a Cancel button), a string of acceptable - characters to mean OK and to mean Cancel. The two last strings are checked - to make sure they don't have common characters. Additionally, the same - flag argument as for the string input is taken, as well as a result buffer. - The result buffer is required to be at least one byte long. Depending on - the answer, the first character from the OK or the Cancel character strings - will be stored in the first byte of the result buffer. No NUL will be - added, so the result is *not* a string. - - On success, the all return an index of the added information. That index - is useful when retrieving results with UI_get0_result(). */ -int UI_add_input_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize); -int UI_dup_input_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize); -int UI_add_verify_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize, - const char *test_buf); -int UI_dup_verify_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize, - const char *test_buf); -int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc, - const char *ok_chars, const char *cancel_chars, - int flags, char *result_buf); -int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc, - const char *ok_chars, const char *cancel_chars, - int flags, char *result_buf); -int UI_add_info_string(UI *ui, const char *text); -int UI_dup_info_string(UI *ui, const char *text); -int UI_add_error_string(UI *ui, const char *text); -int UI_dup_error_string(UI *ui, const char *text); - -/* These are the possible flags. They can be or'ed together. */ -/* Use to have echoing of input */ -# define UI_INPUT_FLAG_ECHO 0x01 -/* - * Use a default password. Where that password is found is completely up to - * the application, it might for example be in the user data set with - * UI_add_user_data(). It is not recommended to have more than one input in - * each UI being marked with this flag, or the application might get - * confused. - */ -# define UI_INPUT_FLAG_DEFAULT_PWD 0x02 - -/*- - * The user of these routines may want to define flags of their own. The core - * UI won't look at those, but will pass them on to the method routines. They - * must use higher bits so they don't get confused with the UI bits above. - * UI_INPUT_FLAG_USER_BASE tells which is the lowest bit to use. A good - * example of use is this: - * - * #define MY_UI_FLAG1 (0x01 << UI_INPUT_FLAG_USER_BASE) - * -*/ -# define UI_INPUT_FLAG_USER_BASE 16 - -/*- - * The following function helps construct a prompt. - * phrase_desc is a textual short description of the phrase to enter, - * for example "pass phrase", and - * object_name is the name of the object - * (which might be a card name or a file name) or NULL. - * The returned string shall always be allocated on the heap with - * OPENSSL_malloc(), and need to be free'd with OPENSSL_free(). - * - * If the ui_method doesn't contain a pointer to a user-defined prompt - * constructor, a default string is built, looking like this: - * - * "Enter {phrase_desc} for {object_name}:" - * - * So, if phrase_desc has the value "pass phrase" and object_name has - * the value "foo.key", the resulting string is: - * - * "Enter pass phrase for foo.key:" -*/ -char *UI_construct_prompt(UI *ui_method, - const char *phrase_desc, const char *object_name); - -/* - * The following function is used to store a pointer to user-specific data. - * Any previous such pointer will be returned and replaced. - * - * For callback purposes, this function makes a lot more sense than using - * ex_data, since the latter requires that different parts of OpenSSL or - * applications share the same ex_data index. - * - * Note that the UI_OpenSSL() method completely ignores the user data. Other - * methods may not, however. - */ -void *UI_add_user_data(UI *ui, void *user_data); -/* - * Alternatively, this function is used to duplicate the user data. - * This uses the duplicator method function. The destroy function will - * be used to free the user data in this case. - */ -int UI_dup_user_data(UI *ui, void *user_data); -/* We need a user data retrieving function as well. */ -void *UI_get0_user_data(UI *ui); - -/* Return the result associated with a prompt given with the index i. */ -const char *UI_get0_result(UI *ui, int i); -int UI_get_result_length(UI *ui, int i); - -/* When all strings have been added, process the whole thing. */ -int UI_process(UI *ui); - -/* - * Give a user interface parameterised control commands. This can be used to - * send down an integer, a data pointer or a function pointer, as well as be - * used to get information from a UI. - */ -int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void)); - -/* The commands */ -/* - * Use UI_CONTROL_PRINT_ERRORS with the value 1 to have UI_process print the - * OpenSSL error stack before printing any info or added error messages and - * before any prompting. - */ -# define UI_CTRL_PRINT_ERRORS 1 -/* - * Check if a UI_process() is possible to do again with the same instance of - * a user interface. This makes UI_ctrl() return 1 if it is redoable, and 0 - * if not. - */ -# define UI_CTRL_IS_REDOABLE 2 - -/* Some methods may use extra data */ -# define UI_set_app_data(s,arg) UI_set_ex_data(s,0,arg) -# define UI_get_app_data(s) UI_get_ex_data(s,0) - -# define UI_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_UI, l, p, newf, dupf, freef) -int UI_set_ex_data(UI *r, int idx, void *arg); -void *UI_get_ex_data(const UI *r, int idx); - -/* Use specific methods instead of the built-in one */ -void UI_set_default_method(const UI_METHOD *meth); -const UI_METHOD *UI_get_default_method(void); -const UI_METHOD *UI_get_method(UI *ui); -const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth); - -# ifndef OPENSSL_NO_UI_CONSOLE - -/* The method with all the built-in thingies */ -UI_METHOD *UI_OpenSSL(void); - -# endif - -/* - * NULL method. Literally does nothing, but may serve as a placeholder - * to avoid internal default. - */ -const UI_METHOD *UI_null(void); - -/* ---------- For method writers ---------- */ -/*- - A method contains a number of functions that implement the low level - of the User Interface. The functions are: - - an opener This function starts a session, maybe by opening - a channel to a tty, or by opening a window. - a writer This function is called to write a given string, - maybe to the tty, maybe as a field label in a - window. - a flusher This function is called to flush everything that - has been output so far. It can be used to actually - display a dialog box after it has been built. - a reader This function is called to read a given prompt, - maybe from the tty, maybe from a field in a - window. Note that it's called with all string - structures, not only the prompt ones, so it must - check such things itself. - a closer This function closes the session, maybe by closing - the channel to the tty, or closing the window. - - All these functions are expected to return: - - 0 on error. - 1 on success. - -1 on out-of-band events, for example if some prompting has - been canceled (by pressing Ctrl-C, for example). This is - only checked when returned by the flusher or the reader. - - The way this is used, the opener is first called, then the writer for all - strings, then the flusher, then the reader for all strings and finally the - closer. Note that if you want to prompt from a terminal or other command - line interface, the best is to have the reader also write the prompts - instead of having the writer do it. If you want to prompt from a dialog - box, the writer can be used to build up the contents of the box, and the - flusher to actually display the box and run the event loop until all data - has been given, after which the reader only grabs the given data and puts - them back into the UI strings. - - All method functions take a UI as argument. Additionally, the writer and - the reader take a UI_STRING. -*/ - -/* - * The UI_STRING type is the data structure that contains all the needed info - * about a string or a prompt, including test data for a verification prompt. - */ -typedef struct ui_string_st UI_STRING; - -SKM_DEFINE_STACK_OF_INTERNAL(UI_STRING, UI_STRING, UI_STRING) -#define sk_UI_STRING_num(sk) OPENSSL_sk_num(ossl_check_const_UI_STRING_sk_type(sk)) -#define sk_UI_STRING_value(sk, idx) ((UI_STRING *)OPENSSL_sk_value(ossl_check_const_UI_STRING_sk_type(sk), (idx))) -#define sk_UI_STRING_new(cmp) ((STACK_OF(UI_STRING) *)OPENSSL_sk_new(ossl_check_UI_STRING_compfunc_type(cmp))) -#define sk_UI_STRING_new_null() ((STACK_OF(UI_STRING) *)OPENSSL_sk_new_null()) -#define sk_UI_STRING_new_reserve(cmp, n) ((STACK_OF(UI_STRING) *)OPENSSL_sk_new_reserve(ossl_check_UI_STRING_compfunc_type(cmp), (n))) -#define sk_UI_STRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_UI_STRING_sk_type(sk), (n)) -#define sk_UI_STRING_free(sk) OPENSSL_sk_free(ossl_check_UI_STRING_sk_type(sk)) -#define sk_UI_STRING_zero(sk) OPENSSL_sk_zero(ossl_check_UI_STRING_sk_type(sk)) -#define sk_UI_STRING_delete(sk, i) ((UI_STRING *)OPENSSL_sk_delete(ossl_check_UI_STRING_sk_type(sk), (i))) -#define sk_UI_STRING_delete_ptr(sk, ptr) ((UI_STRING *)OPENSSL_sk_delete_ptr(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr))) -#define sk_UI_STRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr)) -#define sk_UI_STRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr)) -#define sk_UI_STRING_pop(sk) ((UI_STRING *)OPENSSL_sk_pop(ossl_check_UI_STRING_sk_type(sk))) -#define sk_UI_STRING_shift(sk) ((UI_STRING *)OPENSSL_sk_shift(ossl_check_UI_STRING_sk_type(sk))) -#define sk_UI_STRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_freefunc_type(freefunc)) -#define sk_UI_STRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr), (idx)) -#define sk_UI_STRING_set(sk, idx, ptr) ((UI_STRING *)OPENSSL_sk_set(ossl_check_UI_STRING_sk_type(sk), (idx), ossl_check_UI_STRING_type(ptr))) -#define sk_UI_STRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr)) -#define sk_UI_STRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr)) -#define sk_UI_STRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr), pnum) -#define sk_UI_STRING_sort(sk) OPENSSL_sk_sort(ossl_check_UI_STRING_sk_type(sk)) -#define sk_UI_STRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_UI_STRING_sk_type(sk)) -#define sk_UI_STRING_dup(sk) ((STACK_OF(UI_STRING) *)OPENSSL_sk_dup(ossl_check_const_UI_STRING_sk_type(sk))) -#define sk_UI_STRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(UI_STRING) *)OPENSSL_sk_deep_copy(ossl_check_const_UI_STRING_sk_type(sk), ossl_check_UI_STRING_copyfunc_type(copyfunc), ossl_check_UI_STRING_freefunc_type(freefunc))) -#define sk_UI_STRING_set_cmp_func(sk, cmp) ((sk_UI_STRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_compfunc_type(cmp))) - - -/* - * The different types of strings that are currently supported. This is only - * needed by method authors. - */ -enum UI_string_types { - UIT_NONE = 0, - UIT_PROMPT, /* Prompt for a string */ - UIT_VERIFY, /* Prompt for a string and verify */ - UIT_BOOLEAN, /* Prompt for a yes/no response */ - UIT_INFO, /* Send info to the user */ - UIT_ERROR /* Send an error message to the user */ -}; - -/* Create and manipulate methods */ -UI_METHOD *UI_create_method(const char *name); -void UI_destroy_method(UI_METHOD *ui_method); -int UI_method_set_opener(UI_METHOD *method, int (*opener) (UI *ui)); -int UI_method_set_writer(UI_METHOD *method, - int (*writer) (UI *ui, UI_STRING *uis)); -int UI_method_set_flusher(UI_METHOD *method, int (*flusher) (UI *ui)); -int UI_method_set_reader(UI_METHOD *method, - int (*reader) (UI *ui, UI_STRING *uis)); -int UI_method_set_closer(UI_METHOD *method, int (*closer) (UI *ui)); -int UI_method_set_data_duplicator(UI_METHOD *method, - void *(*duplicator) (UI *ui, void *ui_data), - void (*destructor)(UI *ui, void *ui_data)); -int UI_method_set_prompt_constructor(UI_METHOD *method, - char *(*prompt_constructor) (UI *ui, - const char - *phrase_desc, - const char - *object_name)); -int UI_method_set_ex_data(UI_METHOD *method, int idx, void *data); -int (*UI_method_get_opener(const UI_METHOD *method)) (UI *); -int (*UI_method_get_writer(const UI_METHOD *method)) (UI *, UI_STRING *); -int (*UI_method_get_flusher(const UI_METHOD *method)) (UI *); -int (*UI_method_get_reader(const UI_METHOD *method)) (UI *, UI_STRING *); -int (*UI_method_get_closer(const UI_METHOD *method)) (UI *); -char *(*UI_method_get_prompt_constructor(const UI_METHOD *method)) - (UI *, const char *, const char *); -void *(*UI_method_get_data_duplicator(const UI_METHOD *method)) (UI *, void *); -void (*UI_method_get_data_destructor(const UI_METHOD *method)) (UI *, void *); -const void *UI_method_get_ex_data(const UI_METHOD *method, int idx); - -/* - * The following functions are helpers for method writers to access relevant - * data from a UI_STRING. - */ - -/* Return type of the UI_STRING */ -enum UI_string_types UI_get_string_type(UI_STRING *uis); -/* Return input flags of the UI_STRING */ -int UI_get_input_flags(UI_STRING *uis); -/* Return the actual string to output (the prompt, info or error) */ -const char *UI_get0_output_string(UI_STRING *uis); -/* - * Return the optional action string to output (the boolean prompt - * instruction) - */ -const char *UI_get0_action_string(UI_STRING *uis); -/* Return the result of a prompt */ -const char *UI_get0_result_string(UI_STRING *uis); -int UI_get_result_string_length(UI_STRING *uis); -/* - * Return the string to test the result against. Only useful with verifies. - */ -const char *UI_get0_test_string(UI_STRING *uis); -/* Return the required minimum size of the result */ -int UI_get_result_minsize(UI_STRING *uis); -/* Return the required maximum size of the result */ -int UI_get_result_maxsize(UI_STRING *uis); -/* Set the result of a UI_STRING. */ -int UI_set_result(UI *ui, UI_STRING *uis, const char *result); -int UI_set_result_ex(UI *ui, UI_STRING *uis, const char *result, int len); - -/* A couple of popular utility functions */ -int UI_UTIL_read_pw_string(char *buf, int length, const char *prompt, - int verify); -int UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt, - int verify); -UI_METHOD *UI_UTIL_wrap_read_pem_callback(pem_password_cb *cb, int rwflag); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/uierr.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/uierr.h deleted file mode 100644 index 473b04e..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/uierr.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_UIERR_H -# define OPENSSL_UIERR_H -# pragma once - -# include -# include -# include - - - -/* - * UI reason codes. - */ -# define UI_R_COMMON_OK_AND_CANCEL_CHARACTERS 104 -# define UI_R_INDEX_TOO_LARGE 102 -# define UI_R_INDEX_TOO_SMALL 103 -# define UI_R_NO_RESULT_BUFFER 105 -# define UI_R_PROCESSING_ERROR 107 -# define UI_R_RESULT_TOO_LARGE 100 -# define UI_R_RESULT_TOO_SMALL 101 -# define UI_R_SYSASSIGN_ERROR 109 -# define UI_R_SYSDASSGN_ERROR 110 -# define UI_R_SYSQIOW_ERROR 111 -# define UI_R_UNKNOWN_CONTROL_COMMAND 106 -# define UI_R_UNKNOWN_TTYGET_ERRNO_VALUE 108 -# define UI_R_USER_DATA_DUPLICATION_UNSUPPORTED 112 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/whrlpool.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/whrlpool.h deleted file mode 100644 index 05ba463..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/whrlpool.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2005-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_WHRLPOOL_H -# define OPENSSL_WHRLPOOL_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_WHRLPOOL_H -# endif - -# include - -# ifndef OPENSSL_NO_WHIRLPOOL -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define WHIRLPOOL_DIGEST_LENGTH (512/8) - -# if !defined(OPENSSL_NO_DEPRECATED_3_0) - -# define WHIRLPOOL_BBLOCK 512 -# define WHIRLPOOL_COUNTER (256/8) - -typedef struct { - union { - unsigned char c[WHIRLPOOL_DIGEST_LENGTH]; - /* double q is here to ensure 64-bit alignment */ - double q[WHIRLPOOL_DIGEST_LENGTH / sizeof(double)]; - } H; - unsigned char data[WHIRLPOOL_BBLOCK / 8]; - unsigned int bitoff; - size_t bitlen[WHIRLPOOL_COUNTER / sizeof(size_t)]; -} WHIRLPOOL_CTX; -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 int WHIRLPOOL_Init(WHIRLPOOL_CTX *c); -OSSL_DEPRECATEDIN_3_0 int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, - const void *inp, size_t bytes); -OSSL_DEPRECATEDIN_3_0 void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, - const void *inp, size_t bits); -OSSL_DEPRECATEDIN_3_0 int WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c); -OSSL_DEPRECATEDIN_3_0 unsigned char *WHIRLPOOL(const void *inp, size_t bytes, - unsigned char *md); -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/x509.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/x509.h deleted file mode 100644 index 1fd9005..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/x509.h +++ /dev/null @@ -1,1304 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\x509.h.in - * - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_X509_H -# define OPENSSL_X509_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_X509_H -# endif - -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# include -# include -# include -# endif - -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Needed stacks for types defined in other headers */ -SKM_DEFINE_STACK_OF_INTERNAL(X509_NAME, X509_NAME, X509_NAME) -#define sk_X509_NAME_num(sk) OPENSSL_sk_num(ossl_check_const_X509_NAME_sk_type(sk)) -#define sk_X509_NAME_value(sk, idx) ((X509_NAME *)OPENSSL_sk_value(ossl_check_const_X509_NAME_sk_type(sk), (idx))) -#define sk_X509_NAME_new(cmp) ((STACK_OF(X509_NAME) *)OPENSSL_sk_new(ossl_check_X509_NAME_compfunc_type(cmp))) -#define sk_X509_NAME_new_null() ((STACK_OF(X509_NAME) *)OPENSSL_sk_new_null()) -#define sk_X509_NAME_new_reserve(cmp, n) ((STACK_OF(X509_NAME) *)OPENSSL_sk_new_reserve(ossl_check_X509_NAME_compfunc_type(cmp), (n))) -#define sk_X509_NAME_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_NAME_sk_type(sk), (n)) -#define sk_X509_NAME_free(sk) OPENSSL_sk_free(ossl_check_X509_NAME_sk_type(sk)) -#define sk_X509_NAME_zero(sk) OPENSSL_sk_zero(ossl_check_X509_NAME_sk_type(sk)) -#define sk_X509_NAME_delete(sk, i) ((X509_NAME *)OPENSSL_sk_delete(ossl_check_X509_NAME_sk_type(sk), (i))) -#define sk_X509_NAME_delete_ptr(sk, ptr) ((X509_NAME *)OPENSSL_sk_delete_ptr(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr))) -#define sk_X509_NAME_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr)) -#define sk_X509_NAME_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr)) -#define sk_X509_NAME_pop(sk) ((X509_NAME *)OPENSSL_sk_pop(ossl_check_X509_NAME_sk_type(sk))) -#define sk_X509_NAME_shift(sk) ((X509_NAME *)OPENSSL_sk_shift(ossl_check_X509_NAME_sk_type(sk))) -#define sk_X509_NAME_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_freefunc_type(freefunc)) -#define sk_X509_NAME_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr), (idx)) -#define sk_X509_NAME_set(sk, idx, ptr) ((X509_NAME *)OPENSSL_sk_set(ossl_check_X509_NAME_sk_type(sk), (idx), ossl_check_X509_NAME_type(ptr))) -#define sk_X509_NAME_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr)) -#define sk_X509_NAME_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr)) -#define sk_X509_NAME_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr), pnum) -#define sk_X509_NAME_sort(sk) OPENSSL_sk_sort(ossl_check_X509_NAME_sk_type(sk)) -#define sk_X509_NAME_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_NAME_sk_type(sk)) -#define sk_X509_NAME_dup(sk) ((STACK_OF(X509_NAME) *)OPENSSL_sk_dup(ossl_check_const_X509_NAME_sk_type(sk))) -#define sk_X509_NAME_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_NAME) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_NAME_sk_type(sk), ossl_check_X509_NAME_copyfunc_type(copyfunc), ossl_check_X509_NAME_freefunc_type(freefunc))) -#define sk_X509_NAME_set_cmp_func(sk, cmp) ((sk_X509_NAME_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(X509, X509, X509) -#define sk_X509_num(sk) OPENSSL_sk_num(ossl_check_const_X509_sk_type(sk)) -#define sk_X509_value(sk, idx) ((X509 *)OPENSSL_sk_value(ossl_check_const_X509_sk_type(sk), (idx))) -#define sk_X509_new(cmp) ((STACK_OF(X509) *)OPENSSL_sk_new(ossl_check_X509_compfunc_type(cmp))) -#define sk_X509_new_null() ((STACK_OF(X509) *)OPENSSL_sk_new_null()) -#define sk_X509_new_reserve(cmp, n) ((STACK_OF(X509) *)OPENSSL_sk_new_reserve(ossl_check_X509_compfunc_type(cmp), (n))) -#define sk_X509_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_sk_type(sk), (n)) -#define sk_X509_free(sk) OPENSSL_sk_free(ossl_check_X509_sk_type(sk)) -#define sk_X509_zero(sk) OPENSSL_sk_zero(ossl_check_X509_sk_type(sk)) -#define sk_X509_delete(sk, i) ((X509 *)OPENSSL_sk_delete(ossl_check_X509_sk_type(sk), (i))) -#define sk_X509_delete_ptr(sk, ptr) ((X509 *)OPENSSL_sk_delete_ptr(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr))) -#define sk_X509_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr)) -#define sk_X509_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr)) -#define sk_X509_pop(sk) ((X509 *)OPENSSL_sk_pop(ossl_check_X509_sk_type(sk))) -#define sk_X509_shift(sk) ((X509 *)OPENSSL_sk_shift(ossl_check_X509_sk_type(sk))) -#define sk_X509_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_sk_type(sk), ossl_check_X509_freefunc_type(freefunc)) -#define sk_X509_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr), (idx)) -#define sk_X509_set(sk, idx, ptr) ((X509 *)OPENSSL_sk_set(ossl_check_X509_sk_type(sk), (idx), ossl_check_X509_type(ptr))) -#define sk_X509_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr)) -#define sk_X509_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr)) -#define sk_X509_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr), pnum) -#define sk_X509_sort(sk) OPENSSL_sk_sort(ossl_check_X509_sk_type(sk)) -#define sk_X509_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_sk_type(sk)) -#define sk_X509_dup(sk) ((STACK_OF(X509) *)OPENSSL_sk_dup(ossl_check_const_X509_sk_type(sk))) -#define sk_X509_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_sk_type(sk), ossl_check_X509_copyfunc_type(copyfunc), ossl_check_X509_freefunc_type(freefunc))) -#define sk_X509_set_cmp_func(sk, cmp) ((sk_X509_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_sk_type(sk), ossl_check_X509_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(X509_REVOKED, X509_REVOKED, X509_REVOKED) -#define sk_X509_REVOKED_num(sk) OPENSSL_sk_num(ossl_check_const_X509_REVOKED_sk_type(sk)) -#define sk_X509_REVOKED_value(sk, idx) ((X509_REVOKED *)OPENSSL_sk_value(ossl_check_const_X509_REVOKED_sk_type(sk), (idx))) -#define sk_X509_REVOKED_new(cmp) ((STACK_OF(X509_REVOKED) *)OPENSSL_sk_new(ossl_check_X509_REVOKED_compfunc_type(cmp))) -#define sk_X509_REVOKED_new_null() ((STACK_OF(X509_REVOKED) *)OPENSSL_sk_new_null()) -#define sk_X509_REVOKED_new_reserve(cmp, n) ((STACK_OF(X509_REVOKED) *)OPENSSL_sk_new_reserve(ossl_check_X509_REVOKED_compfunc_type(cmp), (n))) -#define sk_X509_REVOKED_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_REVOKED_sk_type(sk), (n)) -#define sk_X509_REVOKED_free(sk) OPENSSL_sk_free(ossl_check_X509_REVOKED_sk_type(sk)) -#define sk_X509_REVOKED_zero(sk) OPENSSL_sk_zero(ossl_check_X509_REVOKED_sk_type(sk)) -#define sk_X509_REVOKED_delete(sk, i) ((X509_REVOKED *)OPENSSL_sk_delete(ossl_check_X509_REVOKED_sk_type(sk), (i))) -#define sk_X509_REVOKED_delete_ptr(sk, ptr) ((X509_REVOKED *)OPENSSL_sk_delete_ptr(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr))) -#define sk_X509_REVOKED_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr)) -#define sk_X509_REVOKED_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr)) -#define sk_X509_REVOKED_pop(sk) ((X509_REVOKED *)OPENSSL_sk_pop(ossl_check_X509_REVOKED_sk_type(sk))) -#define sk_X509_REVOKED_shift(sk) ((X509_REVOKED *)OPENSSL_sk_shift(ossl_check_X509_REVOKED_sk_type(sk))) -#define sk_X509_REVOKED_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_freefunc_type(freefunc)) -#define sk_X509_REVOKED_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr), (idx)) -#define sk_X509_REVOKED_set(sk, idx, ptr) ((X509_REVOKED *)OPENSSL_sk_set(ossl_check_X509_REVOKED_sk_type(sk), (idx), ossl_check_X509_REVOKED_type(ptr))) -#define sk_X509_REVOKED_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr)) -#define sk_X509_REVOKED_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr)) -#define sk_X509_REVOKED_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr), pnum) -#define sk_X509_REVOKED_sort(sk) OPENSSL_sk_sort(ossl_check_X509_REVOKED_sk_type(sk)) -#define sk_X509_REVOKED_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_REVOKED_sk_type(sk)) -#define sk_X509_REVOKED_dup(sk) ((STACK_OF(X509_REVOKED) *)OPENSSL_sk_dup(ossl_check_const_X509_REVOKED_sk_type(sk))) -#define sk_X509_REVOKED_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_REVOKED) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_copyfunc_type(copyfunc), ossl_check_X509_REVOKED_freefunc_type(freefunc))) -#define sk_X509_REVOKED_set_cmp_func(sk, cmp) ((sk_X509_REVOKED_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) -#define sk_X509_CRL_num(sk) OPENSSL_sk_num(ossl_check_const_X509_CRL_sk_type(sk)) -#define sk_X509_CRL_value(sk, idx) ((X509_CRL *)OPENSSL_sk_value(ossl_check_const_X509_CRL_sk_type(sk), (idx))) -#define sk_X509_CRL_new(cmp) ((STACK_OF(X509_CRL) *)OPENSSL_sk_new(ossl_check_X509_CRL_compfunc_type(cmp))) -#define sk_X509_CRL_new_null() ((STACK_OF(X509_CRL) *)OPENSSL_sk_new_null()) -#define sk_X509_CRL_new_reserve(cmp, n) ((STACK_OF(X509_CRL) *)OPENSSL_sk_new_reserve(ossl_check_X509_CRL_compfunc_type(cmp), (n))) -#define sk_X509_CRL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_CRL_sk_type(sk), (n)) -#define sk_X509_CRL_free(sk) OPENSSL_sk_free(ossl_check_X509_CRL_sk_type(sk)) -#define sk_X509_CRL_zero(sk) OPENSSL_sk_zero(ossl_check_X509_CRL_sk_type(sk)) -#define sk_X509_CRL_delete(sk, i) ((X509_CRL *)OPENSSL_sk_delete(ossl_check_X509_CRL_sk_type(sk), (i))) -#define sk_X509_CRL_delete_ptr(sk, ptr) ((X509_CRL *)OPENSSL_sk_delete_ptr(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr))) -#define sk_X509_CRL_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr)) -#define sk_X509_CRL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr)) -#define sk_X509_CRL_pop(sk) ((X509_CRL *)OPENSSL_sk_pop(ossl_check_X509_CRL_sk_type(sk))) -#define sk_X509_CRL_shift(sk) ((X509_CRL *)OPENSSL_sk_shift(ossl_check_X509_CRL_sk_type(sk))) -#define sk_X509_CRL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_freefunc_type(freefunc)) -#define sk_X509_CRL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr), (idx)) -#define sk_X509_CRL_set(sk, idx, ptr) ((X509_CRL *)OPENSSL_sk_set(ossl_check_X509_CRL_sk_type(sk), (idx), ossl_check_X509_CRL_type(ptr))) -#define sk_X509_CRL_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr)) -#define sk_X509_CRL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr)) -#define sk_X509_CRL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr), pnum) -#define sk_X509_CRL_sort(sk) OPENSSL_sk_sort(ossl_check_X509_CRL_sk_type(sk)) -#define sk_X509_CRL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_CRL_sk_type(sk)) -#define sk_X509_CRL_dup(sk) ((STACK_OF(X509_CRL) *)OPENSSL_sk_dup(ossl_check_const_X509_CRL_sk_type(sk))) -#define sk_X509_CRL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_CRL) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_CRL_sk_type(sk), ossl_check_X509_CRL_copyfunc_type(copyfunc), ossl_check_X509_CRL_freefunc_type(freefunc))) -#define sk_X509_CRL_set_cmp_func(sk, cmp) ((sk_X509_CRL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_compfunc_type(cmp))) - - -/* Flags for X509_get_signature_info() */ -/* Signature info is valid */ -# define X509_SIG_INFO_VALID 0x1 -/* Signature is suitable for TLS use */ -# define X509_SIG_INFO_TLS 0x2 - -# define X509_FILETYPE_PEM 1 -# define X509_FILETYPE_ASN1 2 -# define X509_FILETYPE_DEFAULT 3 - -/*- - * : - * The KeyUsage BITSTRING is treated as a little-endian integer, hence bit `0` - * is 0x80, while bit `7` is 0x01 (the LSB of the integer value), bit `8` is - * then the MSB of the second octet, or 0x8000. - */ -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 /* (0) */ -# define X509v3_KU_NON_REPUDIATION 0x0040 /* (1) */ -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 /* (2) */ -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 /* (3) */ -# define X509v3_KU_KEY_AGREEMENT 0x0008 /* (4) */ -# define X509v3_KU_KEY_CERT_SIGN 0x0004 /* (5) */ -# define X509v3_KU_CRL_SIGN 0x0002 /* (6) */ -# define X509v3_KU_ENCIPHER_ONLY 0x0001 /* (7) */ -# define X509v3_KU_DECIPHER_ONLY 0x8000 /* (8) */ -# ifndef OPENSSL_NO_DEPRECATED_3_4 -# define X509v3_KU_UNDEF 0xffff /* vestigial, not used */ -# endif - -struct X509_algor_st { - ASN1_OBJECT *algorithm; - ASN1_TYPE *parameter; -} /* X509_ALGOR */ ; - -typedef STACK_OF(X509_ALGOR) X509_ALGORS; - -typedef struct X509_val_st { - ASN1_TIME *notBefore; - ASN1_TIME *notAfter; -} X509_VAL; - -typedef struct X509_sig_st X509_SIG; - -typedef struct X509_name_entry_st X509_NAME_ENTRY; - -SKM_DEFINE_STACK_OF_INTERNAL(X509_NAME_ENTRY, X509_NAME_ENTRY, X509_NAME_ENTRY) -#define sk_X509_NAME_ENTRY_num(sk) OPENSSL_sk_num(ossl_check_const_X509_NAME_ENTRY_sk_type(sk)) -#define sk_X509_NAME_ENTRY_value(sk, idx) ((X509_NAME_ENTRY *)OPENSSL_sk_value(ossl_check_const_X509_NAME_ENTRY_sk_type(sk), (idx))) -#define sk_X509_NAME_ENTRY_new(cmp) ((STACK_OF(X509_NAME_ENTRY) *)OPENSSL_sk_new(ossl_check_X509_NAME_ENTRY_compfunc_type(cmp))) -#define sk_X509_NAME_ENTRY_new_null() ((STACK_OF(X509_NAME_ENTRY) *)OPENSSL_sk_new_null()) -#define sk_X509_NAME_ENTRY_new_reserve(cmp, n) ((STACK_OF(X509_NAME_ENTRY) *)OPENSSL_sk_new_reserve(ossl_check_X509_NAME_ENTRY_compfunc_type(cmp), (n))) -#define sk_X509_NAME_ENTRY_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_NAME_ENTRY_sk_type(sk), (n)) -#define sk_X509_NAME_ENTRY_free(sk) OPENSSL_sk_free(ossl_check_X509_NAME_ENTRY_sk_type(sk)) -#define sk_X509_NAME_ENTRY_zero(sk) OPENSSL_sk_zero(ossl_check_X509_NAME_ENTRY_sk_type(sk)) -#define sk_X509_NAME_ENTRY_delete(sk, i) ((X509_NAME_ENTRY *)OPENSSL_sk_delete(ossl_check_X509_NAME_ENTRY_sk_type(sk), (i))) -#define sk_X509_NAME_ENTRY_delete_ptr(sk, ptr) ((X509_NAME_ENTRY *)OPENSSL_sk_delete_ptr(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr))) -#define sk_X509_NAME_ENTRY_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr)) -#define sk_X509_NAME_ENTRY_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr)) -#define sk_X509_NAME_ENTRY_pop(sk) ((X509_NAME_ENTRY *)OPENSSL_sk_pop(ossl_check_X509_NAME_ENTRY_sk_type(sk))) -#define sk_X509_NAME_ENTRY_shift(sk) ((X509_NAME_ENTRY *)OPENSSL_sk_shift(ossl_check_X509_NAME_ENTRY_sk_type(sk))) -#define sk_X509_NAME_ENTRY_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_freefunc_type(freefunc)) -#define sk_X509_NAME_ENTRY_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr), (idx)) -#define sk_X509_NAME_ENTRY_set(sk, idx, ptr) ((X509_NAME_ENTRY *)OPENSSL_sk_set(ossl_check_X509_NAME_ENTRY_sk_type(sk), (idx), ossl_check_X509_NAME_ENTRY_type(ptr))) -#define sk_X509_NAME_ENTRY_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr)) -#define sk_X509_NAME_ENTRY_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr)) -#define sk_X509_NAME_ENTRY_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr), pnum) -#define sk_X509_NAME_ENTRY_sort(sk) OPENSSL_sk_sort(ossl_check_X509_NAME_ENTRY_sk_type(sk)) -#define sk_X509_NAME_ENTRY_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_NAME_ENTRY_sk_type(sk)) -#define sk_X509_NAME_ENTRY_dup(sk) ((STACK_OF(X509_NAME_ENTRY) *)OPENSSL_sk_dup(ossl_check_const_X509_NAME_ENTRY_sk_type(sk))) -#define sk_X509_NAME_ENTRY_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_NAME_ENTRY) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_copyfunc_type(copyfunc), ossl_check_X509_NAME_ENTRY_freefunc_type(freefunc))) -#define sk_X509_NAME_ENTRY_set_cmp_func(sk, cmp) ((sk_X509_NAME_ENTRY_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_compfunc_type(cmp))) - - -# define X509_EX_V_NETSCAPE_HACK 0x8000 -# define X509_EX_V_INIT 0x0001 -typedef struct X509_extension_st X509_EXTENSION; -SKM_DEFINE_STACK_OF_INTERNAL(X509_EXTENSION, X509_EXTENSION, X509_EXTENSION) -#define sk_X509_EXTENSION_num(sk) OPENSSL_sk_num(ossl_check_const_X509_EXTENSION_sk_type(sk)) -#define sk_X509_EXTENSION_value(sk, idx) ((X509_EXTENSION *)OPENSSL_sk_value(ossl_check_const_X509_EXTENSION_sk_type(sk), (idx))) -#define sk_X509_EXTENSION_new(cmp) ((STACK_OF(X509_EXTENSION) *)OPENSSL_sk_new(ossl_check_X509_EXTENSION_compfunc_type(cmp))) -#define sk_X509_EXTENSION_new_null() ((STACK_OF(X509_EXTENSION) *)OPENSSL_sk_new_null()) -#define sk_X509_EXTENSION_new_reserve(cmp, n) ((STACK_OF(X509_EXTENSION) *)OPENSSL_sk_new_reserve(ossl_check_X509_EXTENSION_compfunc_type(cmp), (n))) -#define sk_X509_EXTENSION_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_EXTENSION_sk_type(sk), (n)) -#define sk_X509_EXTENSION_free(sk) OPENSSL_sk_free(ossl_check_X509_EXTENSION_sk_type(sk)) -#define sk_X509_EXTENSION_zero(sk) OPENSSL_sk_zero(ossl_check_X509_EXTENSION_sk_type(sk)) -#define sk_X509_EXTENSION_delete(sk, i) ((X509_EXTENSION *)OPENSSL_sk_delete(ossl_check_X509_EXTENSION_sk_type(sk), (i))) -#define sk_X509_EXTENSION_delete_ptr(sk, ptr) ((X509_EXTENSION *)OPENSSL_sk_delete_ptr(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr))) -#define sk_X509_EXTENSION_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr)) -#define sk_X509_EXTENSION_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr)) -#define sk_X509_EXTENSION_pop(sk) ((X509_EXTENSION *)OPENSSL_sk_pop(ossl_check_X509_EXTENSION_sk_type(sk))) -#define sk_X509_EXTENSION_shift(sk) ((X509_EXTENSION *)OPENSSL_sk_shift(ossl_check_X509_EXTENSION_sk_type(sk))) -#define sk_X509_EXTENSION_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_freefunc_type(freefunc)) -#define sk_X509_EXTENSION_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr), (idx)) -#define sk_X509_EXTENSION_set(sk, idx, ptr) ((X509_EXTENSION *)OPENSSL_sk_set(ossl_check_X509_EXTENSION_sk_type(sk), (idx), ossl_check_X509_EXTENSION_type(ptr))) -#define sk_X509_EXTENSION_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr)) -#define sk_X509_EXTENSION_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr)) -#define sk_X509_EXTENSION_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr), pnum) -#define sk_X509_EXTENSION_sort(sk) OPENSSL_sk_sort(ossl_check_X509_EXTENSION_sk_type(sk)) -#define sk_X509_EXTENSION_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_EXTENSION_sk_type(sk)) -#define sk_X509_EXTENSION_dup(sk) ((STACK_OF(X509_EXTENSION) *)OPENSSL_sk_dup(ossl_check_const_X509_EXTENSION_sk_type(sk))) -#define sk_X509_EXTENSION_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_EXTENSION) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_copyfunc_type(copyfunc), ossl_check_X509_EXTENSION_freefunc_type(freefunc))) -#define sk_X509_EXTENSION_set_cmp_func(sk, cmp) ((sk_X509_EXTENSION_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_compfunc_type(cmp))) - -typedef STACK_OF(X509_EXTENSION) X509_EXTENSIONS; -typedef struct x509_attributes_st X509_ATTRIBUTE; -SKM_DEFINE_STACK_OF_INTERNAL(X509_ATTRIBUTE, X509_ATTRIBUTE, X509_ATTRIBUTE) -#define sk_X509_ATTRIBUTE_num(sk) OPENSSL_sk_num(ossl_check_const_X509_ATTRIBUTE_sk_type(sk)) -#define sk_X509_ATTRIBUTE_value(sk, idx) ((X509_ATTRIBUTE *)OPENSSL_sk_value(ossl_check_const_X509_ATTRIBUTE_sk_type(sk), (idx))) -#define sk_X509_ATTRIBUTE_new(cmp) ((STACK_OF(X509_ATTRIBUTE) *)OPENSSL_sk_new(ossl_check_X509_ATTRIBUTE_compfunc_type(cmp))) -#define sk_X509_ATTRIBUTE_new_null() ((STACK_OF(X509_ATTRIBUTE) *)OPENSSL_sk_new_null()) -#define sk_X509_ATTRIBUTE_new_reserve(cmp, n) ((STACK_OF(X509_ATTRIBUTE) *)OPENSSL_sk_new_reserve(ossl_check_X509_ATTRIBUTE_compfunc_type(cmp), (n))) -#define sk_X509_ATTRIBUTE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_ATTRIBUTE_sk_type(sk), (n)) -#define sk_X509_ATTRIBUTE_free(sk) OPENSSL_sk_free(ossl_check_X509_ATTRIBUTE_sk_type(sk)) -#define sk_X509_ATTRIBUTE_zero(sk) OPENSSL_sk_zero(ossl_check_X509_ATTRIBUTE_sk_type(sk)) -#define sk_X509_ATTRIBUTE_delete(sk, i) ((X509_ATTRIBUTE *)OPENSSL_sk_delete(ossl_check_X509_ATTRIBUTE_sk_type(sk), (i))) -#define sk_X509_ATTRIBUTE_delete_ptr(sk, ptr) ((X509_ATTRIBUTE *)OPENSSL_sk_delete_ptr(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr))) -#define sk_X509_ATTRIBUTE_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr)) -#define sk_X509_ATTRIBUTE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr)) -#define sk_X509_ATTRIBUTE_pop(sk) ((X509_ATTRIBUTE *)OPENSSL_sk_pop(ossl_check_X509_ATTRIBUTE_sk_type(sk))) -#define sk_X509_ATTRIBUTE_shift(sk) ((X509_ATTRIBUTE *)OPENSSL_sk_shift(ossl_check_X509_ATTRIBUTE_sk_type(sk))) -#define sk_X509_ATTRIBUTE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_freefunc_type(freefunc)) -#define sk_X509_ATTRIBUTE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr), (idx)) -#define sk_X509_ATTRIBUTE_set(sk, idx, ptr) ((X509_ATTRIBUTE *)OPENSSL_sk_set(ossl_check_X509_ATTRIBUTE_sk_type(sk), (idx), ossl_check_X509_ATTRIBUTE_type(ptr))) -#define sk_X509_ATTRIBUTE_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr)) -#define sk_X509_ATTRIBUTE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr)) -#define sk_X509_ATTRIBUTE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr), pnum) -#define sk_X509_ATTRIBUTE_sort(sk) OPENSSL_sk_sort(ossl_check_X509_ATTRIBUTE_sk_type(sk)) -#define sk_X509_ATTRIBUTE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_ATTRIBUTE_sk_type(sk)) -#define sk_X509_ATTRIBUTE_dup(sk) ((STACK_OF(X509_ATTRIBUTE) *)OPENSSL_sk_dup(ossl_check_const_X509_ATTRIBUTE_sk_type(sk))) -#define sk_X509_ATTRIBUTE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_ATTRIBUTE) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_copyfunc_type(copyfunc), ossl_check_X509_ATTRIBUTE_freefunc_type(freefunc))) -#define sk_X509_ATTRIBUTE_set_cmp_func(sk, cmp) ((sk_X509_ATTRIBUTE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_compfunc_type(cmp))) - -typedef struct X509_req_info_st X509_REQ_INFO; -typedef struct X509_req_st X509_REQ; -typedef struct x509_cert_aux_st X509_CERT_AUX; -typedef struct x509_cinf_st X509_CINF; - -/* Flags for X509_print_ex() */ - -# define X509_FLAG_COMPAT 0 -# define X509_FLAG_NO_HEADER 1L -# define X509_FLAG_NO_VERSION (1L << 1) -# define X509_FLAG_NO_SERIAL (1L << 2) -# define X509_FLAG_NO_SIGNAME (1L << 3) -# define X509_FLAG_NO_ISSUER (1L << 4) -# define X509_FLAG_NO_VALIDITY (1L << 5) -# define X509_FLAG_NO_SUBJECT (1L << 6) -# define X509_FLAG_NO_PUBKEY (1L << 7) -# define X509_FLAG_NO_EXTENSIONS (1L << 8) -# define X509_FLAG_NO_SIGDUMP (1L << 9) -# define X509_FLAG_NO_AUX (1L << 10) -# define X509_FLAG_NO_ATTRIBUTES (1L << 11) -# define X509_FLAG_NO_IDS (1L << 12) -# define X509_FLAG_EXTENSIONS_ONLY_KID (1L << 13) - -/* Flags specific to X509_NAME_print_ex() */ - -/* The field separator information */ - -# define XN_FLAG_SEP_MASK (0xf << 16) - -# define XN_FLAG_COMPAT 0/* Traditional; use old X509_NAME_print */ -# define XN_FLAG_SEP_COMMA_PLUS (1 << 16)/* RFC2253 ,+ */ -# define XN_FLAG_SEP_CPLUS_SPC (2 << 16)/* ,+ spaced: more readable */ -# define XN_FLAG_SEP_SPLUS_SPC (3 << 16)/* ;+ spaced */ -# define XN_FLAG_SEP_MULTILINE (4 << 16)/* One line per field */ - -# define XN_FLAG_DN_REV (1 << 20)/* Reverse DN order */ - -/* How the field name is shown */ - -# define XN_FLAG_FN_MASK (0x3 << 21) - -# define XN_FLAG_FN_SN 0/* Object short name */ -# define XN_FLAG_FN_LN (1 << 21)/* Object long name */ -# define XN_FLAG_FN_OID (2 << 21)/* Always use OIDs */ -# define XN_FLAG_FN_NONE (3 << 21)/* No field names */ - -# define XN_FLAG_SPC_EQ (1 << 23)/* Put spaces round '=' */ - -/* - * This determines if we dump fields we don't recognise: RFC2253 requires - * this. - */ - -# define XN_FLAG_DUMP_UNKNOWN_FIELDS (1 << 24) - -# define XN_FLAG_FN_ALIGN (1 << 25)/* Align field names to 20 - * characters */ - -/* Complete set of RFC2253 flags */ - -# define XN_FLAG_RFC2253 (ASN1_STRFLGS_RFC2253 | \ - XN_FLAG_SEP_COMMA_PLUS | \ - XN_FLAG_DN_REV | \ - XN_FLAG_FN_SN | \ - XN_FLAG_DUMP_UNKNOWN_FIELDS) - -/* readable oneline form */ - -# define XN_FLAG_ONELINE (ASN1_STRFLGS_RFC2253 | \ - ASN1_STRFLGS_ESC_QUOTE | \ - XN_FLAG_SEP_CPLUS_SPC | \ - XN_FLAG_SPC_EQ | \ - XN_FLAG_FN_SN) - -/* readable multiline form */ - -# define XN_FLAG_MULTILINE (ASN1_STRFLGS_ESC_CTRL | \ - ASN1_STRFLGS_ESC_MSB | \ - XN_FLAG_SEP_MULTILINE | \ - XN_FLAG_SPC_EQ | \ - XN_FLAG_FN_LN | \ - XN_FLAG_FN_ALIGN) - -typedef struct X509_crl_info_st X509_CRL_INFO; - -typedef struct private_key_st { - int version; - /* The PKCS#8 data types */ - X509_ALGOR *enc_algor; - ASN1_OCTET_STRING *enc_pkey; /* encrypted pub key */ - /* When decrypted, the following will not be NULL */ - EVP_PKEY *dec_pkey; - /* used to encrypt and decrypt */ - int key_length; - char *key_data; - int key_free; /* true if we should auto free key_data */ - /* expanded version of 'enc_algor' */ - EVP_CIPHER_INFO cipher; -} X509_PKEY; - -typedef struct X509_info_st { - X509 *x509; - X509_CRL *crl; - X509_PKEY *x_pkey; - EVP_CIPHER_INFO enc_cipher; - int enc_len; - char *enc_data; -} X509_INFO; -SKM_DEFINE_STACK_OF_INTERNAL(X509_INFO, X509_INFO, X509_INFO) -#define sk_X509_INFO_num(sk) OPENSSL_sk_num(ossl_check_const_X509_INFO_sk_type(sk)) -#define sk_X509_INFO_value(sk, idx) ((X509_INFO *)OPENSSL_sk_value(ossl_check_const_X509_INFO_sk_type(sk), (idx))) -#define sk_X509_INFO_new(cmp) ((STACK_OF(X509_INFO) *)OPENSSL_sk_new(ossl_check_X509_INFO_compfunc_type(cmp))) -#define sk_X509_INFO_new_null() ((STACK_OF(X509_INFO) *)OPENSSL_sk_new_null()) -#define sk_X509_INFO_new_reserve(cmp, n) ((STACK_OF(X509_INFO) *)OPENSSL_sk_new_reserve(ossl_check_X509_INFO_compfunc_type(cmp), (n))) -#define sk_X509_INFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_INFO_sk_type(sk), (n)) -#define sk_X509_INFO_free(sk) OPENSSL_sk_free(ossl_check_X509_INFO_sk_type(sk)) -#define sk_X509_INFO_zero(sk) OPENSSL_sk_zero(ossl_check_X509_INFO_sk_type(sk)) -#define sk_X509_INFO_delete(sk, i) ((X509_INFO *)OPENSSL_sk_delete(ossl_check_X509_INFO_sk_type(sk), (i))) -#define sk_X509_INFO_delete_ptr(sk, ptr) ((X509_INFO *)OPENSSL_sk_delete_ptr(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr))) -#define sk_X509_INFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr)) -#define sk_X509_INFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr)) -#define sk_X509_INFO_pop(sk) ((X509_INFO *)OPENSSL_sk_pop(ossl_check_X509_INFO_sk_type(sk))) -#define sk_X509_INFO_shift(sk) ((X509_INFO *)OPENSSL_sk_shift(ossl_check_X509_INFO_sk_type(sk))) -#define sk_X509_INFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_freefunc_type(freefunc)) -#define sk_X509_INFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr), (idx)) -#define sk_X509_INFO_set(sk, idx, ptr) ((X509_INFO *)OPENSSL_sk_set(ossl_check_X509_INFO_sk_type(sk), (idx), ossl_check_X509_INFO_type(ptr))) -#define sk_X509_INFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr)) -#define sk_X509_INFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr)) -#define sk_X509_INFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr), pnum) -#define sk_X509_INFO_sort(sk) OPENSSL_sk_sort(ossl_check_X509_INFO_sk_type(sk)) -#define sk_X509_INFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_INFO_sk_type(sk)) -#define sk_X509_INFO_dup(sk) ((STACK_OF(X509_INFO) *)OPENSSL_sk_dup(ossl_check_const_X509_INFO_sk_type(sk))) -#define sk_X509_INFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_INFO) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_INFO_sk_type(sk), ossl_check_X509_INFO_copyfunc_type(copyfunc), ossl_check_X509_INFO_freefunc_type(freefunc))) -#define sk_X509_INFO_set_cmp_func(sk, cmp) ((sk_X509_INFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_compfunc_type(cmp))) - - -/* - * The next 2 structures and their 8 routines are used to manipulate Netscape's - * spki structures - useful if you are writing a CA web page - */ -typedef struct Netscape_spkac_st { - X509_PUBKEY *pubkey; - ASN1_IA5STRING *challenge; /* challenge sent in atlas >= PR2 */ -} NETSCAPE_SPKAC; - -typedef struct Netscape_spki_st { - NETSCAPE_SPKAC *spkac; /* signed public key and challenge */ - X509_ALGOR sig_algor; - ASN1_BIT_STRING *signature; -} NETSCAPE_SPKI; - -/* Netscape certificate sequence structure */ -typedef struct Netscape_certificate_sequence { - ASN1_OBJECT *type; - STACK_OF(X509) *certs; -} NETSCAPE_CERT_SEQUENCE; - -/*- Unused (and iv length is wrong) -typedef struct CBCParameter_st - { - unsigned char iv[8]; - } CBC_PARAM; -*/ - -/* Password based encryption structure */ - -typedef struct PBEPARAM_st { - ASN1_OCTET_STRING *salt; - ASN1_INTEGER *iter; -} PBEPARAM; - -/* Password based encryption V2 structures */ - -typedef struct PBE2PARAM_st { - X509_ALGOR *keyfunc; - X509_ALGOR *encryption; -} PBE2PARAM; - -typedef struct PBKDF2PARAM_st { -/* Usually OCTET STRING but could be anything */ - ASN1_TYPE *salt; - ASN1_INTEGER *iter; - ASN1_INTEGER *keylength; - X509_ALGOR *prf; -} PBKDF2PARAM; - -typedef struct { - X509_ALGOR *keyDerivationFunc; - X509_ALGOR *messageAuthScheme; -} PBMAC1PARAM; - -# ifndef OPENSSL_NO_SCRYPT -typedef struct SCRYPT_PARAMS_st { - ASN1_OCTET_STRING *salt; - ASN1_INTEGER *costParameter; - ASN1_INTEGER *blockSize; - ASN1_INTEGER *parallelizationParameter; - ASN1_INTEGER *keyLength; -} SCRYPT_PARAMS; -# endif - -#ifdef __cplusplus -} -#endif - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define X509_EXT_PACK_UNKNOWN 1 -# define X509_EXT_PACK_STRING 2 - -# define X509_extract_key(x) X509_get_pubkey(x)/*****/ -# define X509_REQ_extract_key(a) X509_REQ_get_pubkey(a) -# define X509_name_cmp(a,b) X509_NAME_cmp((a),(b)) - -void X509_CRL_set_default_method(const X509_CRL_METHOD *meth); -X509_CRL_METHOD *X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl), - int (*crl_free) (X509_CRL *crl), - int (*crl_lookup) (X509_CRL *crl, - X509_REVOKED **ret, - const - ASN1_INTEGER *serial, - const - X509_NAME *issuer), - int (*crl_verify) (X509_CRL *crl, - EVP_PKEY *pk)); -void X509_CRL_METHOD_free(X509_CRL_METHOD *m); - -void X509_CRL_set_meth_data(X509_CRL *crl, void *dat); -void *X509_CRL_get_meth_data(X509_CRL *crl); - -const char *X509_verify_cert_error_string(long n); - -int X509_verify(X509 *a, EVP_PKEY *r); -int X509_self_signed(X509 *cert, int verify_signature); - -int X509_REQ_verify_ex(X509_REQ *a, EVP_PKEY *r, OSSL_LIB_CTX *libctx, - const char *propq); -int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r); -int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r); -int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r); - -NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str, int len); -char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x); -EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x); -int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey); - -int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki); - -int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent); -int X509_signature_print(BIO *bp, const X509_ALGOR *alg, - const ASN1_STRING *sig); - -int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx); -int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx); -int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx); -int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); - -int X509_pubkey_digest(const X509 *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_digest(const X509 *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -ASN1_OCTET_STRING *X509_digest_sig(const X509 *cert, - EVP_MD **md_used, int *md_is_fallback); -int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); - -X509 *X509_load_http(const char *url, BIO *bio, BIO *rbio, int timeout); -X509_CRL *X509_CRL_load_http(const char *url, BIO *bio, BIO *rbio, int timeout); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# include /* OSSL_HTTP_REQ_CTX_nbio_d2i */ -# define X509_http_nbio(rctx, pcert) \ - OSSL_HTTP_REQ_CTX_nbio_d2i(rctx, pcert, ASN1_ITEM_rptr(X509)) -# define X509_CRL_http_nbio(rctx, pcrl) \ - OSSL_HTTP_REQ_CTX_nbio_d2i(rctx, pcrl, ASN1_ITEM_rptr(X509_CRL)) -# endif - -# ifndef OPENSSL_NO_STDIO -X509 *d2i_X509_fp(FILE *fp, X509 **x509); -int i2d_X509_fp(FILE *fp, const X509 *x509); -X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl); -int i2d_X509_CRL_fp(FILE *fp, const X509_CRL *crl); -X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req); -int i2d_X509_REQ_fp(FILE *fp, const X509_REQ *req); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa); -OSSL_DEPRECATEDIN_3_0 int i2d_RSAPrivateKey_fp(FILE *fp, const RSA *rsa); -OSSL_DEPRECATEDIN_3_0 RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa); -OSSL_DEPRECATEDIN_3_0 int i2d_RSAPublicKey_fp(FILE *fp, const RSA *rsa); -OSSL_DEPRECATEDIN_3_0 RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa); -OSSL_DEPRECATEDIN_3_0 int i2d_RSA_PUBKEY_fp(FILE *fp, const RSA *rsa); -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_DSA -OSSL_DEPRECATEDIN_3_0 DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa); -OSSL_DEPRECATEDIN_3_0 int i2d_DSA_PUBKEY_fp(FILE *fp, const DSA *dsa); -OSSL_DEPRECATEDIN_3_0 DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa); -OSSL_DEPRECATEDIN_3_0 int i2d_DSAPrivateKey_fp(FILE *fp, const DSA *dsa); -# endif -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_EC -OSSL_DEPRECATEDIN_3_0 EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey); -OSSL_DEPRECATEDIN_3_0 int i2d_EC_PUBKEY_fp(FILE *fp, const EC_KEY *eckey); -OSSL_DEPRECATEDIN_3_0 EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey); -OSSL_DEPRECATEDIN_3_0 int i2d_ECPrivateKey_fp(FILE *fp, const EC_KEY *eckey); -# endif /* OPENSSL_NO_EC */ -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ -X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8); -int i2d_PKCS8_fp(FILE *fp, const X509_SIG *p8); -X509_PUBKEY *d2i_X509_PUBKEY_fp(FILE *fp, X509_PUBKEY **xpk); -int i2d_X509_PUBKEY_fp(FILE *fp, const X509_PUBKEY *xpk); -PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, - PKCS8_PRIV_KEY_INFO **p8inf); -int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, const PKCS8_PRIV_KEY_INFO *p8inf); -int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, const EVP_PKEY *key); -int i2d_PrivateKey_fp(FILE *fp, const EVP_PKEY *pkey); -EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, - const char *propq); -EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); -int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); -EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, - const char *propq); -EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); -# endif - -X509 *d2i_X509_bio(BIO *bp, X509 **x509); -int i2d_X509_bio(BIO *bp, const X509 *x509); -X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl); -int i2d_X509_CRL_bio(BIO *bp, const X509_CRL *crl); -X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req); -int i2d_X509_REQ_bio(BIO *bp, const X509_REQ *req); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa); -OSSL_DEPRECATEDIN_3_0 int i2d_RSAPrivateKey_bio(BIO *bp, const RSA *rsa); -OSSL_DEPRECATEDIN_3_0 RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa); -OSSL_DEPRECATEDIN_3_0 int i2d_RSAPublicKey_bio(BIO *bp, const RSA *rsa); -OSSL_DEPRECATEDIN_3_0 RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa); -OSSL_DEPRECATEDIN_3_0 int i2d_RSA_PUBKEY_bio(BIO *bp, const RSA *rsa); -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_DSA -OSSL_DEPRECATEDIN_3_0 DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa); -OSSL_DEPRECATEDIN_3_0 int i2d_DSA_PUBKEY_bio(BIO *bp, const DSA *dsa); -OSSL_DEPRECATEDIN_3_0 DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa); -OSSL_DEPRECATEDIN_3_0 int i2d_DSAPrivateKey_bio(BIO *bp, const DSA *dsa); -# endif -# endif - -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_EC -OSSL_DEPRECATEDIN_3_0 EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey); -OSSL_DEPRECATEDIN_3_0 int i2d_EC_PUBKEY_bio(BIO *bp, const EC_KEY *eckey); -OSSL_DEPRECATEDIN_3_0 EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey); -OSSL_DEPRECATEDIN_3_0 int i2d_ECPrivateKey_bio(BIO *bp, const EC_KEY *eckey); -# endif /* OPENSSL_NO_EC */ -# endif /* OPENSSL_NO_DEPRECATED_3_0 */ - -X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8); -int i2d_PKCS8_bio(BIO *bp, const X509_SIG *p8); -X509_PUBKEY *d2i_X509_PUBKEY_bio(BIO *bp, X509_PUBKEY **xpk); -int i2d_X509_PUBKEY_bio(BIO *bp, const X509_PUBKEY *xpk); -PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, - PKCS8_PRIV_KEY_INFO **p8inf); -int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, const PKCS8_PRIV_KEY_INFO *p8inf); -int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, const EVP_PKEY *key); -int i2d_PrivateKey_bio(BIO *bp, const EVP_PKEY *pkey); -EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, - const char *propq); -EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); -int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); -EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, - const char *propq); -EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); - -DECLARE_ASN1_DUP_FUNCTION(X509) -DECLARE_ASN1_DUP_FUNCTION(X509_ALGOR) -DECLARE_ASN1_DUP_FUNCTION(X509_ATTRIBUTE) -DECLARE_ASN1_DUP_FUNCTION(X509_CRL) -DECLARE_ASN1_DUP_FUNCTION(X509_EXTENSION) -DECLARE_ASN1_DUP_FUNCTION(X509_PUBKEY) -DECLARE_ASN1_DUP_FUNCTION(X509_REQ) -DECLARE_ASN1_DUP_FUNCTION(X509_REVOKED) -int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, - void *pval); -void X509_ALGOR_get0(const ASN1_OBJECT **paobj, int *pptype, - const void **ppval, const X509_ALGOR *algor); -void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md); -int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b); -int X509_ALGOR_copy(X509_ALGOR *dest, const X509_ALGOR *src); - -DECLARE_ASN1_DUP_FUNCTION(X509_NAME) -DECLARE_ASN1_DUP_FUNCTION(X509_NAME_ENTRY) - -int X509_cmp_time(const ASN1_TIME *s, time_t *t); -int X509_cmp_current_time(const ASN1_TIME *s); -int X509_cmp_timeframe(const X509_VERIFY_PARAM *vpm, - const ASN1_TIME *start, const ASN1_TIME *end); -ASN1_TIME *X509_time_adj(ASN1_TIME *s, long adj, time_t *t); -ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, - int offset_day, long offset_sec, time_t *t); -ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj); - -const char *X509_get_default_cert_area(void); -const char *X509_get_default_cert_dir(void); -const char *X509_get_default_cert_file(void); -const char *X509_get_default_cert_dir_env(void); -const char *X509_get_default_cert_file_env(void); -const char *X509_get_default_private_dir(void); - -X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); -X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey); - -DECLARE_ASN1_FUNCTIONS(X509_ALGOR) -DECLARE_ASN1_ENCODE_FUNCTIONS(X509_ALGORS, X509_ALGORS, X509_ALGORS) -DECLARE_ASN1_FUNCTIONS(X509_VAL) - -DECLARE_ASN1_FUNCTIONS(X509_PUBKEY) - -X509_PUBKEY *X509_PUBKEY_new_ex(OSSL_LIB_CTX *libctx, const char *propq); -int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey); -EVP_PKEY *X509_PUBKEY_get0(const X509_PUBKEY *key); -EVP_PKEY *X509_PUBKEY_get(const X509_PUBKEY *key); -int X509_get_pubkey_parameters(EVP_PKEY *pkey, STACK_OF(X509) *chain); -long X509_get_pathlen(X509 *x); -DECLARE_ASN1_ENCODE_FUNCTIONS_only(EVP_PKEY, PUBKEY) -EVP_PKEY *d2i_PUBKEY_ex(EVP_PKEY **a, const unsigned char **pp, long length, - OSSL_LIB_CTX *libctx, const char *propq); -# ifndef OPENSSL_NO_DEPRECATED_3_0 -DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0,RSA, RSA_PUBKEY) -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_DSA -DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0,DSA, DSA_PUBKEY) -# endif -# endif -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# ifndef OPENSSL_NO_EC -DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0, EC_KEY, EC_PUBKEY) -# endif -# endif - -DECLARE_ASN1_FUNCTIONS(X509_SIG) -void X509_SIG_get0(const X509_SIG *sig, const X509_ALGOR **palg, - const ASN1_OCTET_STRING **pdigest); -void X509_SIG_getm(X509_SIG *sig, X509_ALGOR **palg, - ASN1_OCTET_STRING **pdigest); - -DECLARE_ASN1_FUNCTIONS(X509_REQ_INFO) -DECLARE_ASN1_FUNCTIONS(X509_REQ) -X509_REQ *X509_REQ_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - -DECLARE_ASN1_FUNCTIONS(X509_ATTRIBUTE) -X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value); - -DECLARE_ASN1_FUNCTIONS(X509_EXTENSION) -DECLARE_ASN1_ENCODE_FUNCTIONS(X509_EXTENSIONS, X509_EXTENSIONS, X509_EXTENSIONS) - -DECLARE_ASN1_FUNCTIONS(X509_NAME_ENTRY) - -DECLARE_ASN1_FUNCTIONS(X509_NAME) - -int X509_NAME_set(X509_NAME **xn, const X509_NAME *name); - -DECLARE_ASN1_FUNCTIONS(X509_CINF) -DECLARE_ASN1_FUNCTIONS(X509) -X509 *X509_new_ex(OSSL_LIB_CTX *libctx, const char *propq); -DECLARE_ASN1_FUNCTIONS(X509_CERT_AUX) - -#define X509_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509, l, p, newf, dupf, freef) -int X509_set_ex_data(X509 *r, int idx, void *arg); -void *X509_get_ex_data(const X509 *r, int idx); -DECLARE_ASN1_ENCODE_FUNCTIONS_only(X509,X509_AUX) - -int i2d_re_X509_tbs(X509 *x, unsigned char **pp); - -int X509_SIG_INFO_get(const X509_SIG_INFO *siginf, int *mdnid, int *pknid, - int *secbits, uint32_t *flags); -void X509_SIG_INFO_set(X509_SIG_INFO *siginf, int mdnid, int pknid, - int secbits, uint32_t flags); - -int X509_get_signature_info(X509 *x, int *mdnid, int *pknid, int *secbits, - uint32_t *flags); - -void X509_get0_signature(const ASN1_BIT_STRING **psig, - const X509_ALGOR **palg, const X509 *x); -int X509_get_signature_nid(const X509 *x); - -void X509_set0_distinguishing_id(X509 *x, ASN1_OCTET_STRING *d_id); -ASN1_OCTET_STRING *X509_get0_distinguishing_id(X509 *x); -void X509_REQ_set0_distinguishing_id(X509_REQ *x, ASN1_OCTET_STRING *d_id); -ASN1_OCTET_STRING *X509_REQ_get0_distinguishing_id(X509_REQ *x); - -int X509_alias_set1(X509 *x, const unsigned char *name, int len); -int X509_keyid_set1(X509 *x, const unsigned char *id, int len); -unsigned char *X509_alias_get0(X509 *x, int *len); -unsigned char *X509_keyid_get0(X509 *x, int *len); - -DECLARE_ASN1_FUNCTIONS(X509_REVOKED) -DECLARE_ASN1_FUNCTIONS(X509_CRL_INFO) -DECLARE_ASN1_FUNCTIONS(X509_CRL) -X509_CRL *X509_CRL_new_ex(OSSL_LIB_CTX *libctx, const char *propq); - -int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); -int X509_CRL_get0_by_serial(X509_CRL *crl, - X509_REVOKED **ret, const ASN1_INTEGER *serial); -int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x); - -X509_PKEY *X509_PKEY_new(void); -void X509_PKEY_free(X509_PKEY *a); - -DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKI) -DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKAC) -DECLARE_ASN1_FUNCTIONS(NETSCAPE_CERT_SEQUENCE) - -X509_INFO *X509_INFO_new(void); -void X509_INFO_free(X509_INFO *a); -char *X509_NAME_oneline(const X509_NAME *a, char *buf, int size); - -#ifndef OPENSSL_NO_DEPRECATED_3_0 -OSSL_DEPRECATEDIN_3_0 -int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1, - ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey); -OSSL_DEPRECATEDIN_3_0 -int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data, - unsigned char *md, unsigned int *len); -OSSL_DEPRECATEDIN_3_0 -int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, X509_ALGOR *algor2, - ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey, - const EVP_MD *type); -#endif -int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *data, - unsigned char *md, unsigned int *len); -int ASN1_item_verify(const ASN1_ITEM *it, const X509_ALGOR *alg, - const ASN1_BIT_STRING *signature, const void *data, - EVP_PKEY *pkey); -int ASN1_item_verify_ctx(const ASN1_ITEM *it, const X509_ALGOR *alg, - const ASN1_BIT_STRING *signature, const void *data, - EVP_MD_CTX *ctx); -int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, X509_ALGOR *algor2, - ASN1_BIT_STRING *signature, const void *data, - EVP_PKEY *pkey, const EVP_MD *md); -int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, - X509_ALGOR *algor2, ASN1_BIT_STRING *signature, - const void *data, EVP_MD_CTX *ctx); - -#define X509_VERSION_1 0 -#define X509_VERSION_2 1 -#define X509_VERSION_3 2 - -long X509_get_version(const X509 *x); -int X509_set_version(X509 *x, long version); -int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); -ASN1_INTEGER *X509_get_serialNumber(X509 *x); -const ASN1_INTEGER *X509_get0_serialNumber(const X509 *x); -int X509_set_issuer_name(X509 *x, const X509_NAME *name); -X509_NAME *X509_get_issuer_name(const X509 *a); -int X509_set_subject_name(X509 *x, const X509_NAME *name); -X509_NAME *X509_get_subject_name(const X509 *a); -const ASN1_TIME * X509_get0_notBefore(const X509 *x); -ASN1_TIME *X509_getm_notBefore(const X509 *x); -int X509_set1_notBefore(X509 *x, const ASN1_TIME *tm); -const ASN1_TIME *X509_get0_notAfter(const X509 *x); -ASN1_TIME *X509_getm_notAfter(const X509 *x); -int X509_set1_notAfter(X509 *x, const ASN1_TIME *tm); -int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); -int X509_up_ref(X509 *x); -int X509_get_signature_type(const X509 *x); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define X509_get_notBefore X509_getm_notBefore -# define X509_get_notAfter X509_getm_notAfter -# define X509_set_notBefore X509_set1_notBefore -# define X509_set_notAfter X509_set1_notAfter -#endif - - -/* - * This one is only used so that a binary form can output, as in - * i2d_X509_PUBKEY(X509_get_X509_PUBKEY(x), &buf) - */ -X509_PUBKEY *X509_get_X509_PUBKEY(const X509 *x); -const STACK_OF(X509_EXTENSION) *X509_get0_extensions(const X509 *x); -void X509_get0_uids(const X509 *x, const ASN1_BIT_STRING **piuid, - const ASN1_BIT_STRING **psuid); -const X509_ALGOR *X509_get0_tbs_sigalg(const X509 *x); - -EVP_PKEY *X509_get0_pubkey(const X509 *x); -EVP_PKEY *X509_get_pubkey(X509 *x); -ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x); - -#define X509_REQ_VERSION_1 0 - -long X509_REQ_get_version(const X509_REQ *req); -int X509_REQ_set_version(X509_REQ *x, long version); -X509_NAME *X509_REQ_get_subject_name(const X509_REQ *req); -int X509_REQ_set_subject_name(X509_REQ *req, const X509_NAME *name); -void X509_REQ_get0_signature(const X509_REQ *req, const ASN1_BIT_STRING **psig, - const X509_ALGOR **palg); -void X509_REQ_set0_signature(X509_REQ *req, ASN1_BIT_STRING *psig); -int X509_REQ_set1_signature_algo(X509_REQ *req, X509_ALGOR *palg); -int X509_REQ_get_signature_nid(const X509_REQ *req); -int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); -int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); -EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); -X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); -int X509_REQ_extension_nid(int nid); -int *X509_REQ_get_extension_nids(void); -void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(OSSL_FUTURE_CONST X509_REQ *req); -int X509_REQ_add_extensions_nid(X509_REQ *req, - const STACK_OF(X509_EXTENSION) *exts, int nid); -int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); -int X509_REQ_get_attr_count(const X509_REQ *req); -int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos); -int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, const ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc); -X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); -int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr); -int X509_REQ_add1_attr_by_OBJ(X509_REQ *req, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len); -int X509_REQ_add1_attr_by_NID(X509_REQ *req, - int nid, int type, - const unsigned char *bytes, int len); -int X509_REQ_add1_attr_by_txt(X509_REQ *req, - const char *attrname, int type, - const unsigned char *bytes, int len); - -#define X509_CRL_VERSION_1 0 -#define X509_CRL_VERSION_2 1 - -int X509_CRL_set_version(X509_CRL *x, long version); -int X509_CRL_set_issuer_name(X509_CRL *x, const X509_NAME *name); -int X509_CRL_set1_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); -int X509_CRL_set1_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); -int X509_CRL_sort(X509_CRL *crl); -int X509_CRL_up_ref(X509_CRL *crl); - -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define X509_CRL_set_lastUpdate X509_CRL_set1_lastUpdate -# define X509_CRL_set_nextUpdate X509_CRL_set1_nextUpdate -#endif - -long X509_CRL_get_version(const X509_CRL *crl); -const ASN1_TIME *X509_CRL_get0_lastUpdate(const X509_CRL *crl); -const ASN1_TIME *X509_CRL_get0_nextUpdate(const X509_CRL *crl); -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -OSSL_DEPRECATEDIN_1_1_0 ASN1_TIME *X509_CRL_get_lastUpdate(X509_CRL *crl); -OSSL_DEPRECATEDIN_1_1_0 ASN1_TIME *X509_CRL_get_nextUpdate(X509_CRL *crl); -#endif -X509_NAME *X509_CRL_get_issuer(const X509_CRL *crl); -const STACK_OF(X509_EXTENSION) *X509_CRL_get0_extensions(const X509_CRL *crl); -STACK_OF(X509_REVOKED) *X509_CRL_get_REVOKED(X509_CRL *crl); -const X509_ALGOR *X509_CRL_get0_tbs_sigalg(const X509_CRL *crl); -void X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING **psig, - const X509_ALGOR **palg); -int X509_CRL_get_signature_nid(const X509_CRL *crl); -int i2d_re_X509_CRL_tbs(X509_CRL *req, unsigned char **pp); - -const ASN1_INTEGER *X509_REVOKED_get0_serialNumber(const X509_REVOKED *x); -int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); -const ASN1_TIME *X509_REVOKED_get0_revocationDate(const X509_REVOKED *x); -int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); -const STACK_OF(X509_EXTENSION) * -X509_REVOKED_get0_extensions(const X509_REVOKED *r); - -X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, - EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); - -int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); - -int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); -int X509_chain_check_suiteb(int *perror_depth, - X509 *x, STACK_OF(X509) *chain, - unsigned long flags); -int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); -void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); -STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); - -int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); -unsigned long X509_issuer_and_serial_hash(X509 *a); - -int X509_issuer_name_cmp(const X509 *a, const X509 *b); -unsigned long X509_issuer_name_hash(X509 *a); - -int X509_subject_name_cmp(const X509 *a, const X509 *b); -unsigned long X509_subject_name_hash(X509 *x); - -# ifndef OPENSSL_NO_MD5 -unsigned long X509_issuer_name_hash_old(X509 *a); -unsigned long X509_subject_name_hash_old(X509 *x); -# endif - -# define X509_ADD_FLAG_DEFAULT 0 -# define X509_ADD_FLAG_UP_REF 0x1 -# define X509_ADD_FLAG_PREPEND 0x2 -# define X509_ADD_FLAG_NO_DUP 0x4 -# define X509_ADD_FLAG_NO_SS 0x8 -int X509_add_cert(STACK_OF(X509) *sk, X509 *cert, int flags); -int X509_add_certs(STACK_OF(X509) *sk, STACK_OF(X509) *certs, int flags); - -int X509_cmp(const X509 *a, const X509 *b); -int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); -#ifndef OPENSSL_NO_DEPRECATED_3_0 -# define X509_NAME_hash(x) X509_NAME_hash_ex(x, NULL, NULL, NULL) -OSSL_DEPRECATEDIN_3_0 int X509_certificate_type(const X509 *x, - const EVP_PKEY *pubkey); -#endif -unsigned long X509_NAME_hash_ex(const X509_NAME *x, OSSL_LIB_CTX *libctx, - const char *propq, int *ok); -unsigned long X509_NAME_hash_old(const X509_NAME *x); - -int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); -int X509_CRL_match(const X509_CRL *a, const X509_CRL *b); -int X509_aux_print(BIO *out, X509 *x, int indent); -# ifndef OPENSSL_NO_STDIO -int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag, - unsigned long cflag); -int X509_print_fp(FILE *bp, X509 *x); -int X509_CRL_print_fp(FILE *bp, X509_CRL *x); -int X509_REQ_print_fp(FILE *bp, X509_REQ *req); -int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm, int indent, - unsigned long flags); -# endif - -int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase); -int X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent, - unsigned long flags); -int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag, - unsigned long cflag); -int X509_print(BIO *bp, X509 *x); -int X509_ocspid_print(BIO *bp, X509 *x); -int X509_CRL_print_ex(BIO *out, X509_CRL *x, unsigned long nmflag); -int X509_CRL_print(BIO *bp, X509_CRL *x); -int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag, - unsigned long cflag); -int X509_REQ_print(BIO *bp, X509_REQ *req); - -int X509_NAME_entry_count(const X509_NAME *name); -int X509_NAME_get_text_by_NID(const X509_NAME *name, int nid, - char *buf, int len); -int X509_NAME_get_text_by_OBJ(const X509_NAME *name, const ASN1_OBJECT *obj, - char *buf, int len); - -/* - * NOTE: you should be passing -1, not 0 as lastpos. The functions that use - * lastpos, search after that position on. - */ -int X509_NAME_get_index_by_NID(const X509_NAME *name, int nid, int lastpos); -int X509_NAME_get_index_by_OBJ(const X509_NAME *name, const ASN1_OBJECT *obj, - int lastpos); -X509_NAME_ENTRY *X509_NAME_get_entry(const X509_NAME *name, int loc); -X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); -int X509_NAME_add_entry(X509_NAME *name, const X509_NAME_ENTRY *ne, - int loc, int set); -int X509_NAME_add_entry_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len, int loc, - int set); -int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, - const unsigned char *bytes, int len, int loc, - int set); -X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, - const char *field, int type, - const unsigned char *bytes, - int len); -X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, - int type, - const unsigned char *bytes, - int len); -int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, - const unsigned char *bytes, int len, int loc, - int set); -X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, - int len); -int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, const ASN1_OBJECT *obj); -int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, - const unsigned char *bytes, int len); -ASN1_OBJECT *X509_NAME_ENTRY_get_object(const X509_NAME_ENTRY *ne); -ASN1_STRING * X509_NAME_ENTRY_get_data(const X509_NAME_ENTRY *ne); -int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne); - -int X509_NAME_get0_der(const X509_NAME *nm, const unsigned char **pder, - size_t *pderlen); - -int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x); -int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x, - int nid, int lastpos); -int X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *x, - const ASN1_OBJECT *obj, int lastpos); -int X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *x, - int crit, int lastpos); -X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); -X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); -STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, - X509_EXTENSION *ex, int loc); -STACK_OF(X509_EXTENSION) *X509v3_add_extensions(STACK_OF(X509_EXTENSION) **target, - const STACK_OF(X509_EXTENSION) *exts); - -int X509_get_ext_count(const X509 *x); -int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); -int X509_get_ext_by_OBJ(const X509 *x, const ASN1_OBJECT *obj, int lastpos); -int X509_get_ext_by_critical(const X509 *x, int crit, int lastpos); -X509_EXTENSION *X509_get_ext(const X509 *x, int loc); -X509_EXTENSION *X509_delete_ext(X509 *x, int loc); -int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc); -void *X509_get_ext_d2i(const X509 *x, int nid, int *crit, int *idx); -int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, - unsigned long flags); - -int X509_CRL_get_ext_count(const X509_CRL *x); -int X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid, int lastpos); -int X509_CRL_get_ext_by_OBJ(const X509_CRL *x, const ASN1_OBJECT *obj, - int lastpos); -int X509_CRL_get_ext_by_critical(const X509_CRL *x, int crit, int lastpos); -X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc); -X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc); -int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); -void *X509_CRL_get_ext_d2i(const X509_CRL *x, int nid, int *crit, int *idx); -int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit, - unsigned long flags); - -int X509_REVOKED_get_ext_count(const X509_REVOKED *x); -int X509_REVOKED_get_ext_by_NID(const X509_REVOKED *x, int nid, int lastpos); -int X509_REVOKED_get_ext_by_OBJ(const X509_REVOKED *x, const ASN1_OBJECT *obj, - int lastpos); -int X509_REVOKED_get_ext_by_critical(const X509_REVOKED *x, int crit, - int lastpos); -X509_EXTENSION *X509_REVOKED_get_ext(const X509_REVOKED *x, int loc); -X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc); -int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc); -void *X509_REVOKED_get_ext_d2i(const X509_REVOKED *x, int nid, int *crit, - int *idx); -int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit, - unsigned long flags); - -X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, - int nid, int crit, - ASN1_OCTET_STRING *data); -X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex, - const ASN1_OBJECT *obj, int crit, - ASN1_OCTET_STRING *data); -int X509_EXTENSION_set_object(X509_EXTENSION *ex, const ASN1_OBJECT *obj); -int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); -int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data); -ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex); -ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); -int X509_EXTENSION_get_critical(const X509_EXTENSION *ex); - -int X509at_get_attr_count(const STACK_OF(X509_ATTRIBUTE) *x); -int X509at_get_attr_by_NID(const STACK_OF(X509_ATTRIBUTE) *x, int nid, - int lastpos); -int X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *sk, - const ASN1_OBJECT *obj, int lastpos); -X509_ATTRIBUTE *X509at_get_attr(const STACK_OF(X509_ATTRIBUTE) *x, int loc); -X509_ATTRIBUTE *X509at_delete_attr(STACK_OF(X509_ATTRIBUTE) *x, int loc); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr(STACK_OF(X509_ATTRIBUTE) **x, - X509_ATTRIBUTE *attr); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_OBJ(STACK_OF(X509_ATTRIBUTE) - **x, const ASN1_OBJECT *obj, - int type, - const unsigned char *bytes, - int len); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_NID(STACK_OF(X509_ATTRIBUTE) - **x, int nid, int type, - const unsigned char *bytes, - int len); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_txt(STACK_OF(X509_ATTRIBUTE) - **x, const char *attrname, - int type, - const unsigned char *bytes, - int len); -void *X509at_get0_data_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *x, - const ASN1_OBJECT *obj, int lastpos, int type); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, - int atrtype, const void *data, - int len); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr, - const ASN1_OBJECT *obj, - int atrtype, const void *data, - int len); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, - const char *atrname, int type, - const unsigned char *bytes, - int len); -int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj); -int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype, - const void *data, int len); -void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx, int atrtype, - void *data); -int X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr); -ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr); -ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx); - -int EVP_PKEY_get_attr_count(const EVP_PKEY *key); -int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos); -int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, const ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc); -X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc); -int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr); -int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len); -int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key, - int nid, int type, - const unsigned char *bytes, int len); -int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key, - const char *attrname, int type, - const unsigned char *bytes, int len); - -/* lookup a cert from a X509 STACK */ -X509 *X509_find_by_issuer_and_serial(STACK_OF(X509) *sk, const X509_NAME *name, - const ASN1_INTEGER *serial); -X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); - -DECLARE_ASN1_FUNCTIONS(PBEPARAM) -DECLARE_ASN1_FUNCTIONS(PBE2PARAM) -DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -DECLARE_ASN1_FUNCTIONS(PBMAC1PARAM) -# ifndef OPENSSL_NO_SCRYPT -DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -# endif - -int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, - const unsigned char *salt, int saltlen); -int PKCS5_pbe_set0_algor_ex(X509_ALGOR *algor, int alg, int iter, - const unsigned char *salt, int saltlen, - OSSL_LIB_CTX *libctx); - -X509_ALGOR *PKCS5_pbe_set(int alg, int iter, - const unsigned char *salt, int saltlen); -X509_ALGOR *PKCS5_pbe_set_ex(int alg, int iter, - const unsigned char *salt, int saltlen, - OSSL_LIB_CTX *libctx); - -X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, - unsigned char *salt, int saltlen); -X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, - unsigned char *salt, int saltlen, - unsigned char *aiv, int prf_nid); -X509_ALGOR *PKCS5_pbe2_set_iv_ex(const EVP_CIPHER *cipher, int iter, - unsigned char *salt, int saltlen, - unsigned char *aiv, int prf_nid, - OSSL_LIB_CTX *libctx); - -#ifndef OPENSSL_NO_SCRYPT -X509_ALGOR *PKCS5_pbe2_set_scrypt(const EVP_CIPHER *cipher, - const unsigned char *salt, int saltlen, - unsigned char *aiv, uint64_t N, uint64_t r, - uint64_t p); -#endif - -X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, - int prf_nid, int keylen); -X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, - int prf_nid, int keylen, - OSSL_LIB_CTX *libctx); - -PBKDF2PARAM *PBMAC1_get1_pbkdf2_param(const X509_ALGOR *macalg); -/* PKCS#8 utilities */ - -DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) - -EVP_PKEY *EVP_PKCS82PKEY(const PKCS8_PRIV_KEY_INFO *p8); -EVP_PKEY *EVP_PKCS82PKEY_ex(const PKCS8_PRIV_KEY_INFO *p8, OSSL_LIB_CTX *libctx, - const char *propq); -PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(const EVP_PKEY *pkey); - -int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, - int version, int ptype, void *pval, - unsigned char *penc, int penclen); -int PKCS8_pkey_get0(const ASN1_OBJECT **ppkalg, - const unsigned char **pk, int *ppklen, - const X509_ALGOR **pa, const PKCS8_PRIV_KEY_INFO *p8); - -const STACK_OF(X509_ATTRIBUTE) * -PKCS8_pkey_get0_attrs(const PKCS8_PRIV_KEY_INFO *p8); -int PKCS8_pkey_add1_attr(PKCS8_PRIV_KEY_INFO *p8, X509_ATTRIBUTE *attr); -int PKCS8_pkey_add1_attr_by_NID(PKCS8_PRIV_KEY_INFO *p8, int nid, int type, - const unsigned char *bytes, int len); -int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, - int type, const unsigned char *bytes, int len); - - -void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, - unsigned char *penc, int penclen); -int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, - int ptype, void *pval, - unsigned char *penc, int penclen); -int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg, - const unsigned char **pk, int *ppklen, - X509_ALGOR **pa, const X509_PUBKEY *pub); -int X509_PUBKEY_eq(const X509_PUBKEY *a, const X509_PUBKEY *b); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/x509_acert.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/x509_acert.h deleted file mode 100644 index 690663e..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/x509_acert.h +++ /dev/null @@ -1,294 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\x509_acert.h.in - * - * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_X509_ACERT_H -# define OPENSSL_X509_ACERT_H -# pragma once - -# include -# include -# include - -typedef struct X509_acert_st X509_ACERT; -typedef struct X509_acert_info_st X509_ACERT_INFO; -typedef struct ossl_object_digest_info_st OSSL_OBJECT_DIGEST_INFO; -typedef struct ossl_issuer_serial_st OSSL_ISSUER_SERIAL; -typedef struct X509_acert_issuer_v2form_st X509_ACERT_ISSUER_V2FORM; - -DECLARE_ASN1_FUNCTIONS(X509_ACERT) -DECLARE_ASN1_DUP_FUNCTION(X509_ACERT) -DECLARE_ASN1_ITEM(X509_ACERT_INFO) -DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_INFO) -DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_OBJECT_DIGEST_INFO) -DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_ISSUER_SERIAL) -DECLARE_ASN1_ALLOC_FUNCTIONS(X509_ACERT_ISSUER_V2FORM) - -# ifndef OPENSSL_NO_STDIO -X509_ACERT *d2i_X509_ACERT_fp(FILE *fp, X509_ACERT **acert); -int i2d_X509_ACERT_fp(FILE *fp, const X509_ACERT *acert); -# endif - -DECLARE_PEM_rw(X509_ACERT, X509_ACERT) - -X509_ACERT *d2i_X509_ACERT_bio(BIO *bp, X509_ACERT **acert); -int i2d_X509_ACERT_bio(BIO *bp, const X509_ACERT *acert); - -int X509_ACERT_sign(X509_ACERT *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_ACERT_sign_ctx(X509_ACERT *x, EVP_MD_CTX *ctx); -int X509_ACERT_verify(X509_ACERT *a, EVP_PKEY *r); - -# define X509_ACERT_VERSION_2 1 - -const GENERAL_NAMES *X509_ACERT_get0_holder_entityName(const X509_ACERT *x); -const OSSL_ISSUER_SERIAL *X509_ACERT_get0_holder_baseCertId(const X509_ACERT *x); -const OSSL_OBJECT_DIGEST_INFO * X509_ACERT_get0_holder_digest(const X509_ACERT *x); -const X509_NAME *X509_ACERT_get0_issuerName(const X509_ACERT *x); -long X509_ACERT_get_version(const X509_ACERT *x); -void X509_ACERT_get0_signature(const X509_ACERT *x, - const ASN1_BIT_STRING **psig, - const X509_ALGOR **palg); -int X509_ACERT_get_signature_nid(const X509_ACERT *x); -const X509_ALGOR *X509_ACERT_get0_info_sigalg(const X509_ACERT *x); -const ASN1_INTEGER *X509_ACERT_get0_serialNumber(const X509_ACERT *x); -const ASN1_TIME *X509_ACERT_get0_notBefore(const X509_ACERT *x); -const ASN1_TIME *X509_ACERT_get0_notAfter(const X509_ACERT *x); -const ASN1_BIT_STRING *X509_ACERT_get0_issuerUID(const X509_ACERT *x); - -int X509_ACERT_print(BIO *bp, X509_ACERT *x); -int X509_ACERT_print_ex(BIO *bp, X509_ACERT *x, unsigned long nmflags, - unsigned long cflag); - -int X509_ACERT_get_attr_count(const X509_ACERT *x); -int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); -int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); -X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); - -void *X509_ACERT_get_ext_d2i(const X509_ACERT *x, int nid, int *crit, int *idx); -int X509_ACERT_add1_ext_i2d(X509_ACERT *x, int nid, void *value, int crit, - unsigned long flags); -const STACK_OF(X509_EXTENSION) *X509_ACERT_get0_extensions(const X509_ACERT *x); - -# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY 0 -# define OSSL_OBJECT_DIGEST_INFO_PUBLIC_KEY_CERT 1 -# define OSSL_OBJECT_DIGEST_INFO_OTHER 2 /* must not be used in RFC 5755 profile */ -int X509_ACERT_set_version(X509_ACERT *x, long version); -void X509_ACERT_set0_holder_entityName(X509_ACERT *x, GENERAL_NAMES *name); -void X509_ACERT_set0_holder_baseCertId(X509_ACERT *x, OSSL_ISSUER_SERIAL *isss); -void X509_ACERT_set0_holder_digest(X509_ACERT *x, - OSSL_OBJECT_DIGEST_INFO *dinfo); - -int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); -int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, - int type, const void *bytes, int len); -int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, - const void *bytes, int len); -int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, - const unsigned char *bytes, int len); -int X509_ACERT_add_attr_nconf(CONF *conf, const char *section, - X509_ACERT *acert); - -int X509_ACERT_set1_issuerName(X509_ACERT *x, const X509_NAME *name); -int X509_ACERT_set1_serialNumber(X509_ACERT *x, const ASN1_INTEGER *serial); -int X509_ACERT_set1_notBefore(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); -int X509_ACERT_set1_notAfter(X509_ACERT *x, const ASN1_GENERALIZEDTIME *time); - -void OSSL_OBJECT_DIGEST_INFO_get0_digest(const OSSL_OBJECT_DIGEST_INFO *o, - int *digestedObjectType, - const X509_ALGOR **digestAlgorithm, - const ASN1_BIT_STRING **digest); - -int OSSL_OBJECT_DIGEST_INFO_set1_digest(OSSL_OBJECT_DIGEST_INFO *o, - int digestedObjectType, - X509_ALGOR *digestAlgorithm, - ASN1_BIT_STRING *digest); - -const X509_NAME *OSSL_ISSUER_SERIAL_get0_issuer(const OSSL_ISSUER_SERIAL *isss); -const ASN1_INTEGER *OSSL_ISSUER_SERIAL_get0_serial(const OSSL_ISSUER_SERIAL *isss); -const ASN1_BIT_STRING *OSSL_ISSUER_SERIAL_get0_issuerUID(const OSSL_ISSUER_SERIAL *isss); - -int OSSL_ISSUER_SERIAL_set1_issuer(OSSL_ISSUER_SERIAL *isss, - const X509_NAME *issuer); -int OSSL_ISSUER_SERIAL_set1_serial(OSSL_ISSUER_SERIAL *isss, - const ASN1_INTEGER *serial); -int OSSL_ISSUER_SERIAL_set1_issuerUID(OSSL_ISSUER_SERIAL *isss, - const ASN1_BIT_STRING *uid); - -# define OSSL_IETFAS_OCTETS 0 -# define OSSL_IETFAS_OID 1 -# define OSSL_IETFAS_STRING 2 - -typedef struct OSSL_IETF_ATTR_SYNTAX_VALUE_st OSSL_IETF_ATTR_SYNTAX_VALUE; -typedef struct OSSL_IETF_ATTR_SYNTAX_st OSSL_IETF_ATTR_SYNTAX; -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE, OSSL_IETF_ATTR_SYNTAX_VALUE) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_value(sk, idx) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_value(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new(cmp) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_null() ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_null()) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_new_reserve(cmp, n) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp), (n))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (n)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete(sk, i) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (i))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_delete_ptr(sk, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_pop(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_shift(sk) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_shift(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), (idx)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set(sk, idx, ptr) ((OSSL_IETF_ATTR_SYNTAX_VALUE *)OPENSSL_sk_set(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), (idx), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_type(ptr), pnum) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk)) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_dup(sk) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_IETF_ATTR_SYNTAX_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_copyfunc_type(copyfunc), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_freefunc_type(freefunc))) -#define sk_OSSL_IETF_ATTR_SYNTAX_VALUE_set_cmp_func(sk, cmp) ((sk_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_sk_type(sk), ossl_check_OSSL_IETF_ATTR_SYNTAX_VALUE_compfunc_type(cmp))) - - -DECLARE_ASN1_ITEM(OSSL_IETF_ATTR_SYNTAX_VALUE) -DECLARE_ASN1_ALLOC_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX_VALUE) -DECLARE_ASN1_FUNCTIONS(OSSL_IETF_ATTR_SYNTAX) - -const GENERAL_NAMES * -OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority(const OSSL_IETF_ATTR_SYNTAX *a); -void OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority(OSSL_IETF_ATTR_SYNTAX *a, - GENERAL_NAMES *names); - -int OSSL_IETF_ATTR_SYNTAX_get_value_num(const OSSL_IETF_ATTR_SYNTAX *a); -void *OSSL_IETF_ATTR_SYNTAX_get0_value(const OSSL_IETF_ATTR_SYNTAX *a, - int ind, int *type); -int OSSL_IETF_ATTR_SYNTAX_add1_value(OSSL_IETF_ATTR_SYNTAX *a, int type, - void *data); -int OSSL_IETF_ATTR_SYNTAX_print(BIO *bp, OSSL_IETF_ATTR_SYNTAX *a, int indent); - -struct TARGET_CERT_st { - OSSL_ISSUER_SERIAL *targetCertificate; - GENERAL_NAME *targetName; - OSSL_OBJECT_DIGEST_INFO *certDigestInfo; -}; - -typedef struct TARGET_CERT_st OSSL_TARGET_CERT; - -# define OSSL_TGT_TARGET_NAME 0 -# define OSSL_TGT_TARGET_GROUP 1 -# define OSSL_TGT_TARGET_CERT 2 - -typedef struct TARGET_st { - int type; - union { - GENERAL_NAME *targetName; - GENERAL_NAME *targetGroup; - OSSL_TARGET_CERT *targetCert; - } choice; -} OSSL_TARGET; - -typedef STACK_OF(OSSL_TARGET) OSSL_TARGETS; -typedef STACK_OF(OSSL_TARGETS) OSSL_TARGETING_INFORMATION; - -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGET, OSSL_TARGET, OSSL_TARGET) -#define sk_OSSL_TARGET_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGET_sk_type(sk)) -#define sk_OSSL_TARGET_value(sk, idx) ((OSSL_TARGET *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGET_sk_type(sk), (idx))) -#define sk_OSSL_TARGET_new(cmp) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new(ossl_check_OSSL_TARGET_compfunc_type(cmp))) -#define sk_OSSL_TARGET_new_null() ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_null()) -#define sk_OSSL_TARGET_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGET_compfunc_type(cmp), (n))) -#define sk_OSSL_TARGET_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGET_sk_type(sk), (n)) -#define sk_OSSL_TARGET_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGET_sk_type(sk)) -#define sk_OSSL_TARGET_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGET_sk_type(sk)) -#define sk_OSSL_TARGET_delete(sk, i) ((OSSL_TARGET *)OPENSSL_sk_delete(ossl_check_OSSL_TARGET_sk_type(sk), (i))) -#define sk_OSSL_TARGET_delete_ptr(sk, ptr) ((OSSL_TARGET *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr))) -#define sk_OSSL_TARGET_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) -#define sk_OSSL_TARGET_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) -#define sk_OSSL_TARGET_pop(sk) ((OSSL_TARGET *)OPENSSL_sk_pop(ossl_check_OSSL_TARGET_sk_type(sk))) -#define sk_OSSL_TARGET_shift(sk) ((OSSL_TARGET *)OPENSSL_sk_shift(ossl_check_OSSL_TARGET_sk_type(sk))) -#define sk_OSSL_TARGET_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_freefunc_type(freefunc)) -#define sk_OSSL_TARGET_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), (idx)) -#define sk_OSSL_TARGET_set(sk, idx, ptr) ((OSSL_TARGET *)OPENSSL_sk_set(ossl_check_OSSL_TARGET_sk_type(sk), (idx), ossl_check_OSSL_TARGET_type(ptr))) -#define sk_OSSL_TARGET_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) -#define sk_OSSL_TARGET_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr)) -#define sk_OSSL_TARGET_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_type(ptr), pnum) -#define sk_OSSL_TARGET_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGET_sk_type(sk)) -#define sk_OSSL_TARGET_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGET_sk_type(sk)) -#define sk_OSSL_TARGET_dup(sk) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGET_sk_type(sk))) -#define sk_OSSL_TARGET_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGET) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_copyfunc_type(copyfunc), ossl_check_OSSL_TARGET_freefunc_type(freefunc))) -#define sk_OSSL_TARGET_set_cmp_func(sk, cmp) ((sk_OSSL_TARGET_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGET_sk_type(sk), ossl_check_OSSL_TARGET_compfunc_type(cmp))) - - -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TARGETS, OSSL_TARGETS, OSSL_TARGETS) -#define sk_OSSL_TARGETS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TARGETS_sk_type(sk)) -#define sk_OSSL_TARGETS_value(sk, idx) ((OSSL_TARGETS *)OPENSSL_sk_value(ossl_check_const_OSSL_TARGETS_sk_type(sk), (idx))) -#define sk_OSSL_TARGETS_new(cmp) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new(ossl_check_OSSL_TARGETS_compfunc_type(cmp))) -#define sk_OSSL_TARGETS_new_null() ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_null()) -#define sk_OSSL_TARGETS_new_reserve(cmp, n) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TARGETS_compfunc_type(cmp), (n))) -#define sk_OSSL_TARGETS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TARGETS_sk_type(sk), (n)) -#define sk_OSSL_TARGETS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TARGETS_sk_type(sk)) -#define sk_OSSL_TARGETS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TARGETS_sk_type(sk)) -#define sk_OSSL_TARGETS_delete(sk, i) ((OSSL_TARGETS *)OPENSSL_sk_delete(ossl_check_OSSL_TARGETS_sk_type(sk), (i))) -#define sk_OSSL_TARGETS_delete_ptr(sk, ptr) ((OSSL_TARGETS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr))) -#define sk_OSSL_TARGETS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) -#define sk_OSSL_TARGETS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) -#define sk_OSSL_TARGETS_pop(sk) ((OSSL_TARGETS *)OPENSSL_sk_pop(ossl_check_OSSL_TARGETS_sk_type(sk))) -#define sk_OSSL_TARGETS_shift(sk) ((OSSL_TARGETS *)OPENSSL_sk_shift(ossl_check_OSSL_TARGETS_sk_type(sk))) -#define sk_OSSL_TARGETS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_freefunc_type(freefunc)) -#define sk_OSSL_TARGETS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), (idx)) -#define sk_OSSL_TARGETS_set(sk, idx, ptr) ((OSSL_TARGETS *)OPENSSL_sk_set(ossl_check_OSSL_TARGETS_sk_type(sk), (idx), ossl_check_OSSL_TARGETS_type(ptr))) -#define sk_OSSL_TARGETS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) -#define sk_OSSL_TARGETS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr)) -#define sk_OSSL_TARGETS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_type(ptr), pnum) -#define sk_OSSL_TARGETS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TARGETS_sk_type(sk)) -#define sk_OSSL_TARGETS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TARGETS_sk_type(sk)) -#define sk_OSSL_TARGETS_dup(sk) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TARGETS_sk_type(sk))) -#define sk_OSSL_TARGETS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TARGETS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_copyfunc_type(copyfunc), ossl_check_OSSL_TARGETS_freefunc_type(freefunc))) -#define sk_OSSL_TARGETS_set_cmp_func(sk, cmp) ((sk_OSSL_TARGETS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TARGETS_sk_type(sk), ossl_check_OSSL_TARGETS_compfunc_type(cmp))) - - -DECLARE_ASN1_FUNCTIONS(OSSL_TARGET) -DECLARE_ASN1_FUNCTIONS(OSSL_TARGETS) -DECLARE_ASN1_FUNCTIONS(OSSL_TARGETING_INFORMATION) - -typedef STACK_OF(OSSL_ISSUER_SERIAL) OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX; -DECLARE_ASN1_FUNCTIONS(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX) - -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL, OSSL_ISSUER_SERIAL) -#define sk_OSSL_ISSUER_SERIAL_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) -#define sk_OSSL_ISSUER_SERIAL_value(sk, idx) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_value(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), (idx))) -#define sk_OSSL_ISSUER_SERIAL_new(cmp) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) -#define sk_OSSL_ISSUER_SERIAL_new_null() ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_null()) -#define sk_OSSL_ISSUER_SERIAL_new_reserve(cmp, n) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp), (n))) -#define sk_OSSL_ISSUER_SERIAL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (n)) -#define sk_OSSL_ISSUER_SERIAL_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) -#define sk_OSSL_ISSUER_SERIAL_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) -#define sk_OSSL_ISSUER_SERIAL_delete(sk, i) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (i))) -#define sk_OSSL_ISSUER_SERIAL_delete_ptr(sk, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) -#define sk_OSSL_ISSUER_SERIAL_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) -#define sk_OSSL_ISSUER_SERIAL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) -#define sk_OSSL_ISSUER_SERIAL_pop(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_pop(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) -#define sk_OSSL_ISSUER_SERIAL_shift(sk) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_shift(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk))) -#define sk_OSSL_ISSUER_SERIAL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc)) -#define sk_OSSL_ISSUER_SERIAL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), (idx)) -#define sk_OSSL_ISSUER_SERIAL_set(sk, idx, ptr) ((OSSL_ISSUER_SERIAL *)OPENSSL_sk_set(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), (idx), ossl_check_OSSL_ISSUER_SERIAL_type(ptr))) -#define sk_OSSL_ISSUER_SERIAL_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) -#define sk_OSSL_ISSUER_SERIAL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr)) -#define sk_OSSL_ISSUER_SERIAL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_type(ptr), pnum) -#define sk_OSSL_ISSUER_SERIAL_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk)) -#define sk_OSSL_ISSUER_SERIAL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk)) -#define sk_OSSL_ISSUER_SERIAL_dup(sk) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk))) -#define sk_OSSL_ISSUER_SERIAL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ISSUER_SERIAL) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_copyfunc_type(copyfunc), ossl_check_OSSL_ISSUER_SERIAL_freefunc_type(freefunc))) -#define sk_OSSL_ISSUER_SERIAL_set_cmp_func(sk, cmp) ((sk_OSSL_ISSUER_SERIAL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ISSUER_SERIAL_sk_type(sk), ossl_check_OSSL_ISSUER_SERIAL_compfunc_type(cmp))) - - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/x509_vfy.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/x509_vfy.h deleted file mode 100644 index 2c71d3d..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/x509_vfy.h +++ /dev/null @@ -1,921 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\x509_vfy.h.in - * - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_X509_VFY_H -# define OPENSSL_X509_VFY_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_X509_VFY_H -# endif - -/* - * Protect against recursion, x509.h and x509_vfy.h each include the other. - */ -# ifndef OPENSSL_X509_H -# include -# endif - -# include -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -DEFINE_STACK_OF(OCSP_RESPONSE) - -/*- -SSL_CTX -> X509_STORE - -> X509_LOOKUP - ->X509_LOOKUP_METHOD - -> X509_LOOKUP - ->X509_LOOKUP_METHOD - -SSL -> X509_STORE_CTX - ->X509_STORE - -The X509_STORE holds the tables etc for verification stuff. -A X509_STORE_CTX is used while validating a single certificate. -The X509_STORE has X509_LOOKUPs for looking up certs. -The X509_STORE then calls a function to actually verify the -certificate chain. -*/ - -typedef enum { - X509_LU_NONE = 0, - X509_LU_X509, X509_LU_CRL -} X509_LOOKUP_TYPE; - -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -#define X509_LU_RETRY -1 -#define X509_LU_FAIL 0 -#endif - -SKM_DEFINE_STACK_OF_INTERNAL(X509_LOOKUP, X509_LOOKUP, X509_LOOKUP) -#define sk_X509_LOOKUP_num(sk) OPENSSL_sk_num(ossl_check_const_X509_LOOKUP_sk_type(sk)) -#define sk_X509_LOOKUP_value(sk, idx) ((X509_LOOKUP *)OPENSSL_sk_value(ossl_check_const_X509_LOOKUP_sk_type(sk), (idx))) -#define sk_X509_LOOKUP_new(cmp) ((STACK_OF(X509_LOOKUP) *)OPENSSL_sk_new(ossl_check_X509_LOOKUP_compfunc_type(cmp))) -#define sk_X509_LOOKUP_new_null() ((STACK_OF(X509_LOOKUP) *)OPENSSL_sk_new_null()) -#define sk_X509_LOOKUP_new_reserve(cmp, n) ((STACK_OF(X509_LOOKUP) *)OPENSSL_sk_new_reserve(ossl_check_X509_LOOKUP_compfunc_type(cmp), (n))) -#define sk_X509_LOOKUP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_LOOKUP_sk_type(sk), (n)) -#define sk_X509_LOOKUP_free(sk) OPENSSL_sk_free(ossl_check_X509_LOOKUP_sk_type(sk)) -#define sk_X509_LOOKUP_zero(sk) OPENSSL_sk_zero(ossl_check_X509_LOOKUP_sk_type(sk)) -#define sk_X509_LOOKUP_delete(sk, i) ((X509_LOOKUP *)OPENSSL_sk_delete(ossl_check_X509_LOOKUP_sk_type(sk), (i))) -#define sk_X509_LOOKUP_delete_ptr(sk, ptr) ((X509_LOOKUP *)OPENSSL_sk_delete_ptr(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr))) -#define sk_X509_LOOKUP_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr)) -#define sk_X509_LOOKUP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr)) -#define sk_X509_LOOKUP_pop(sk) ((X509_LOOKUP *)OPENSSL_sk_pop(ossl_check_X509_LOOKUP_sk_type(sk))) -#define sk_X509_LOOKUP_shift(sk) ((X509_LOOKUP *)OPENSSL_sk_shift(ossl_check_X509_LOOKUP_sk_type(sk))) -#define sk_X509_LOOKUP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_freefunc_type(freefunc)) -#define sk_X509_LOOKUP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr), (idx)) -#define sk_X509_LOOKUP_set(sk, idx, ptr) ((X509_LOOKUP *)OPENSSL_sk_set(ossl_check_X509_LOOKUP_sk_type(sk), (idx), ossl_check_X509_LOOKUP_type(ptr))) -#define sk_X509_LOOKUP_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr)) -#define sk_X509_LOOKUP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr)) -#define sk_X509_LOOKUP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr), pnum) -#define sk_X509_LOOKUP_sort(sk) OPENSSL_sk_sort(ossl_check_X509_LOOKUP_sk_type(sk)) -#define sk_X509_LOOKUP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_LOOKUP_sk_type(sk)) -#define sk_X509_LOOKUP_dup(sk) ((STACK_OF(X509_LOOKUP) *)OPENSSL_sk_dup(ossl_check_const_X509_LOOKUP_sk_type(sk))) -#define sk_X509_LOOKUP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_LOOKUP) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_copyfunc_type(copyfunc), ossl_check_X509_LOOKUP_freefunc_type(freefunc))) -#define sk_X509_LOOKUP_set_cmp_func(sk, cmp) ((sk_X509_LOOKUP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(X509_OBJECT, X509_OBJECT, X509_OBJECT) -#define sk_X509_OBJECT_num(sk) OPENSSL_sk_num(ossl_check_const_X509_OBJECT_sk_type(sk)) -#define sk_X509_OBJECT_value(sk, idx) ((X509_OBJECT *)OPENSSL_sk_value(ossl_check_const_X509_OBJECT_sk_type(sk), (idx))) -#define sk_X509_OBJECT_new(cmp) ((STACK_OF(X509_OBJECT) *)OPENSSL_sk_new(ossl_check_X509_OBJECT_compfunc_type(cmp))) -#define sk_X509_OBJECT_new_null() ((STACK_OF(X509_OBJECT) *)OPENSSL_sk_new_null()) -#define sk_X509_OBJECT_new_reserve(cmp, n) ((STACK_OF(X509_OBJECT) *)OPENSSL_sk_new_reserve(ossl_check_X509_OBJECT_compfunc_type(cmp), (n))) -#define sk_X509_OBJECT_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_OBJECT_sk_type(sk), (n)) -#define sk_X509_OBJECT_free(sk) OPENSSL_sk_free(ossl_check_X509_OBJECT_sk_type(sk)) -#define sk_X509_OBJECT_zero(sk) OPENSSL_sk_zero(ossl_check_X509_OBJECT_sk_type(sk)) -#define sk_X509_OBJECT_delete(sk, i) ((X509_OBJECT *)OPENSSL_sk_delete(ossl_check_X509_OBJECT_sk_type(sk), (i))) -#define sk_X509_OBJECT_delete_ptr(sk, ptr) ((X509_OBJECT *)OPENSSL_sk_delete_ptr(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr))) -#define sk_X509_OBJECT_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr)) -#define sk_X509_OBJECT_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr)) -#define sk_X509_OBJECT_pop(sk) ((X509_OBJECT *)OPENSSL_sk_pop(ossl_check_X509_OBJECT_sk_type(sk))) -#define sk_X509_OBJECT_shift(sk) ((X509_OBJECT *)OPENSSL_sk_shift(ossl_check_X509_OBJECT_sk_type(sk))) -#define sk_X509_OBJECT_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_freefunc_type(freefunc)) -#define sk_X509_OBJECT_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr), (idx)) -#define sk_X509_OBJECT_set(sk, idx, ptr) ((X509_OBJECT *)OPENSSL_sk_set(ossl_check_X509_OBJECT_sk_type(sk), (idx), ossl_check_X509_OBJECT_type(ptr))) -#define sk_X509_OBJECT_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr)) -#define sk_X509_OBJECT_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr)) -#define sk_X509_OBJECT_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr), pnum) -#define sk_X509_OBJECT_sort(sk) OPENSSL_sk_sort(ossl_check_X509_OBJECT_sk_type(sk)) -#define sk_X509_OBJECT_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_OBJECT_sk_type(sk)) -#define sk_X509_OBJECT_dup(sk) ((STACK_OF(X509_OBJECT) *)OPENSSL_sk_dup(ossl_check_const_X509_OBJECT_sk_type(sk))) -#define sk_X509_OBJECT_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_OBJECT) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_copyfunc_type(copyfunc), ossl_check_X509_OBJECT_freefunc_type(freefunc))) -#define sk_X509_OBJECT_set_cmp_func(sk, cmp) ((sk_X509_OBJECT_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(X509_VERIFY_PARAM, X509_VERIFY_PARAM, X509_VERIFY_PARAM) -#define sk_X509_VERIFY_PARAM_num(sk) OPENSSL_sk_num(ossl_check_const_X509_VERIFY_PARAM_sk_type(sk)) -#define sk_X509_VERIFY_PARAM_value(sk, idx) ((X509_VERIFY_PARAM *)OPENSSL_sk_value(ossl_check_const_X509_VERIFY_PARAM_sk_type(sk), (idx))) -#define sk_X509_VERIFY_PARAM_new(cmp) ((STACK_OF(X509_VERIFY_PARAM) *)OPENSSL_sk_new(ossl_check_X509_VERIFY_PARAM_compfunc_type(cmp))) -#define sk_X509_VERIFY_PARAM_new_null() ((STACK_OF(X509_VERIFY_PARAM) *)OPENSSL_sk_new_null()) -#define sk_X509_VERIFY_PARAM_new_reserve(cmp, n) ((STACK_OF(X509_VERIFY_PARAM) *)OPENSSL_sk_new_reserve(ossl_check_X509_VERIFY_PARAM_compfunc_type(cmp), (n))) -#define sk_X509_VERIFY_PARAM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_VERIFY_PARAM_sk_type(sk), (n)) -#define sk_X509_VERIFY_PARAM_free(sk) OPENSSL_sk_free(ossl_check_X509_VERIFY_PARAM_sk_type(sk)) -#define sk_X509_VERIFY_PARAM_zero(sk) OPENSSL_sk_zero(ossl_check_X509_VERIFY_PARAM_sk_type(sk)) -#define sk_X509_VERIFY_PARAM_delete(sk, i) ((X509_VERIFY_PARAM *)OPENSSL_sk_delete(ossl_check_X509_VERIFY_PARAM_sk_type(sk), (i))) -#define sk_X509_VERIFY_PARAM_delete_ptr(sk, ptr) ((X509_VERIFY_PARAM *)OPENSSL_sk_delete_ptr(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr))) -#define sk_X509_VERIFY_PARAM_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr)) -#define sk_X509_VERIFY_PARAM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr)) -#define sk_X509_VERIFY_PARAM_pop(sk) ((X509_VERIFY_PARAM *)OPENSSL_sk_pop(ossl_check_X509_VERIFY_PARAM_sk_type(sk))) -#define sk_X509_VERIFY_PARAM_shift(sk) ((X509_VERIFY_PARAM *)OPENSSL_sk_shift(ossl_check_X509_VERIFY_PARAM_sk_type(sk))) -#define sk_X509_VERIFY_PARAM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_freefunc_type(freefunc)) -#define sk_X509_VERIFY_PARAM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr), (idx)) -#define sk_X509_VERIFY_PARAM_set(sk, idx, ptr) ((X509_VERIFY_PARAM *)OPENSSL_sk_set(ossl_check_X509_VERIFY_PARAM_sk_type(sk), (idx), ossl_check_X509_VERIFY_PARAM_type(ptr))) -#define sk_X509_VERIFY_PARAM_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr)) -#define sk_X509_VERIFY_PARAM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr)) -#define sk_X509_VERIFY_PARAM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr), pnum) -#define sk_X509_VERIFY_PARAM_sort(sk) OPENSSL_sk_sort(ossl_check_X509_VERIFY_PARAM_sk_type(sk)) -#define sk_X509_VERIFY_PARAM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_VERIFY_PARAM_sk_type(sk)) -#define sk_X509_VERIFY_PARAM_dup(sk) ((STACK_OF(X509_VERIFY_PARAM) *)OPENSSL_sk_dup(ossl_check_const_X509_VERIFY_PARAM_sk_type(sk))) -#define sk_X509_VERIFY_PARAM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_VERIFY_PARAM) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_copyfunc_type(copyfunc), ossl_check_X509_VERIFY_PARAM_freefunc_type(freefunc))) -#define sk_X509_VERIFY_PARAM_set_cmp_func(sk, cmp) ((sk_X509_VERIFY_PARAM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_compfunc_type(cmp))) - - -/* This is used for a table of trust checking functions */ -typedef struct x509_trust_st { - int trust; - int flags; - int (*check_trust) (struct x509_trust_st *, X509 *, int); - char *name; - int arg1; - void *arg2; -} X509_TRUST; -SKM_DEFINE_STACK_OF_INTERNAL(X509_TRUST, X509_TRUST, X509_TRUST) -#define sk_X509_TRUST_num(sk) OPENSSL_sk_num(ossl_check_const_X509_TRUST_sk_type(sk)) -#define sk_X509_TRUST_value(sk, idx) ((X509_TRUST *)OPENSSL_sk_value(ossl_check_const_X509_TRUST_sk_type(sk), (idx))) -#define sk_X509_TRUST_new(cmp) ((STACK_OF(X509_TRUST) *)OPENSSL_sk_new(ossl_check_X509_TRUST_compfunc_type(cmp))) -#define sk_X509_TRUST_new_null() ((STACK_OF(X509_TRUST) *)OPENSSL_sk_new_null()) -#define sk_X509_TRUST_new_reserve(cmp, n) ((STACK_OF(X509_TRUST) *)OPENSSL_sk_new_reserve(ossl_check_X509_TRUST_compfunc_type(cmp), (n))) -#define sk_X509_TRUST_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_TRUST_sk_type(sk), (n)) -#define sk_X509_TRUST_free(sk) OPENSSL_sk_free(ossl_check_X509_TRUST_sk_type(sk)) -#define sk_X509_TRUST_zero(sk) OPENSSL_sk_zero(ossl_check_X509_TRUST_sk_type(sk)) -#define sk_X509_TRUST_delete(sk, i) ((X509_TRUST *)OPENSSL_sk_delete(ossl_check_X509_TRUST_sk_type(sk), (i))) -#define sk_X509_TRUST_delete_ptr(sk, ptr) ((X509_TRUST *)OPENSSL_sk_delete_ptr(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr))) -#define sk_X509_TRUST_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr)) -#define sk_X509_TRUST_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr)) -#define sk_X509_TRUST_pop(sk) ((X509_TRUST *)OPENSSL_sk_pop(ossl_check_X509_TRUST_sk_type(sk))) -#define sk_X509_TRUST_shift(sk) ((X509_TRUST *)OPENSSL_sk_shift(ossl_check_X509_TRUST_sk_type(sk))) -#define sk_X509_TRUST_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_freefunc_type(freefunc)) -#define sk_X509_TRUST_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr), (idx)) -#define sk_X509_TRUST_set(sk, idx, ptr) ((X509_TRUST *)OPENSSL_sk_set(ossl_check_X509_TRUST_sk_type(sk), (idx), ossl_check_X509_TRUST_type(ptr))) -#define sk_X509_TRUST_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr)) -#define sk_X509_TRUST_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr)) -#define sk_X509_TRUST_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr), pnum) -#define sk_X509_TRUST_sort(sk) OPENSSL_sk_sort(ossl_check_X509_TRUST_sk_type(sk)) -#define sk_X509_TRUST_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_TRUST_sk_type(sk)) -#define sk_X509_TRUST_dup(sk) ((STACK_OF(X509_TRUST) *)OPENSSL_sk_dup(ossl_check_const_X509_TRUST_sk_type(sk))) -#define sk_X509_TRUST_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_TRUST) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_copyfunc_type(copyfunc), ossl_check_X509_TRUST_freefunc_type(freefunc))) -#define sk_X509_TRUST_set_cmp_func(sk, cmp) ((sk_X509_TRUST_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_compfunc_type(cmp))) - - -/* standard trust ids */ -# define X509_TRUST_DEFAULT 0 /* Only valid in purpose settings */ -# define X509_TRUST_COMPAT 1 -# define X509_TRUST_SSL_CLIENT 2 -# define X509_TRUST_SSL_SERVER 3 -# define X509_TRUST_EMAIL 4 -# define X509_TRUST_OBJECT_SIGN 5 -# define X509_TRUST_OCSP_SIGN 6 -# define X509_TRUST_OCSP_REQUEST 7 -# define X509_TRUST_TSA 8 -/* Keep these up to date! */ -# define X509_TRUST_MIN 1 -# define X509_TRUST_MAX 8 - -/* trust_flags values */ -# define X509_TRUST_DYNAMIC (1U << 0) -# define X509_TRUST_DYNAMIC_NAME (1U << 1) -/* No compat trust if self-signed, preempts "DO_SS" */ -# define X509_TRUST_NO_SS_COMPAT (1U << 2) -/* Compat trust if no explicit accepted trust EKUs */ -# define X509_TRUST_DO_SS_COMPAT (1U << 3) -/* Accept "anyEKU" as a wildcard rejection OID and as a wildcard trust OID */ -# define X509_TRUST_OK_ANY_EKU (1U << 4) - -/* check_trust return codes */ -# define X509_TRUST_TRUSTED 1 -# define X509_TRUST_REJECTED 2 -# define X509_TRUST_UNTRUSTED 3 - -int X509_TRUST_set(int *t, int trust); -int X509_TRUST_get_count(void); -X509_TRUST *X509_TRUST_get0(int idx); -int X509_TRUST_get_by_id(int id); -int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int), - const char *name, int arg1, void *arg2); -void X509_TRUST_cleanup(void); -int X509_TRUST_get_flags(const X509_TRUST *xp); -char *X509_TRUST_get0_name(const X509_TRUST *xp); -int X509_TRUST_get_trust(const X509_TRUST *xp); - -int X509_trusted(const X509 *x); -int X509_add1_trust_object(X509 *x, const ASN1_OBJECT *obj); -int X509_add1_reject_object(X509 *x, const ASN1_OBJECT *obj); -void X509_trust_clear(X509 *x); -void X509_reject_clear(X509 *x); -STACK_OF(ASN1_OBJECT) *X509_get0_trust_objects(X509 *x); -STACK_OF(ASN1_OBJECT) *X509_get0_reject_objects(X509 *x); - -int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *, - int); -int X509_check_trust(X509 *x, int id, int flags); - -int X509_verify_cert(X509_STORE_CTX *ctx); -int X509_STORE_CTX_verify(X509_STORE_CTX *ctx); -STACK_OF(X509) *X509_build_chain(X509 *target, STACK_OF(X509) *certs, - X509_STORE *store, int with_self_signed, - OSSL_LIB_CTX *libctx, const char *propq); - -int X509_STORE_set_depth(X509_STORE *store, int depth); - -typedef int (*X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *); -int X509_STORE_CTX_print_verify_cb(int ok, X509_STORE_CTX *ctx); -typedef int (*X509_STORE_CTX_verify_fn)(X509_STORE_CTX *); -typedef int (*X509_STORE_CTX_get_issuer_fn)(X509 **issuer, - X509_STORE_CTX *ctx, X509 *x); -typedef int (*X509_STORE_CTX_check_issued_fn)(X509_STORE_CTX *ctx, - X509 *x, X509 *issuer); -typedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx); -typedef int (*X509_STORE_CTX_get_crl_fn)(X509_STORE_CTX *ctx, - X509_CRL **crl, X509 *x); -typedef int (*X509_STORE_CTX_check_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl); -typedef int (*X509_STORE_CTX_cert_crl_fn)(X509_STORE_CTX *ctx, - X509_CRL *crl, X509 *x); -typedef int (*X509_STORE_CTX_check_policy_fn)(X509_STORE_CTX *ctx); -typedef STACK_OF(X509) - *(*X509_STORE_CTX_lookup_certs_fn)(X509_STORE_CTX *ctx, - const X509_NAME *nm); -typedef STACK_OF(X509_CRL) - *(*X509_STORE_CTX_lookup_crls_fn)(const X509_STORE_CTX *ctx, - const X509_NAME *nm); -typedef int (*X509_STORE_CTX_cleanup_fn)(X509_STORE_CTX *ctx); - -void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); - -# define X509_STORE_CTX_set_app_data(ctx,data) \ - X509_STORE_CTX_set_ex_data(ctx,0,data) -# define X509_STORE_CTX_get_app_data(ctx) \ - X509_STORE_CTX_get_ex_data(ctx,0) - -# define X509_L_FILE_LOAD 1 -# define X509_L_ADD_DIR 2 -# define X509_L_ADD_STORE 3 -# define X509_L_LOAD_STORE 4 - -# define X509_LOOKUP_load_file(x,name,type) \ - X509_LOOKUP_ctrl((x),X509_L_FILE_LOAD,(name),(long)(type),NULL) - -# define X509_LOOKUP_add_dir(x,name,type) \ - X509_LOOKUP_ctrl((x),X509_L_ADD_DIR,(name),(long)(type),NULL) - -# define X509_LOOKUP_add_store(x,name) \ - X509_LOOKUP_ctrl((x),X509_L_ADD_STORE,(name),0,NULL) - -# define X509_LOOKUP_load_store(x,name) \ - X509_LOOKUP_ctrl((x),X509_L_LOAD_STORE,(name),0,NULL) - -# define X509_LOOKUP_load_file_ex(x, name, type, libctx, propq) \ -X509_LOOKUP_ctrl_ex((x), X509_L_FILE_LOAD, (name), (long)(type), NULL,\ - (libctx), (propq)) - -# define X509_LOOKUP_load_store_ex(x, name, libctx, propq) \ -X509_LOOKUP_ctrl_ex((x), X509_L_LOAD_STORE, (name), 0, NULL, \ - (libctx), (propq)) - -# define X509_LOOKUP_add_store_ex(x, name, libctx, propq) \ -X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ - (libctx), (propq)) - -# define X509_V_OK 0 -# define X509_V_ERR_UNSPECIFIED 1 -# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2 -# define X509_V_ERR_UNABLE_TO_GET_CRL 3 -# define X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 4 -# define X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE 5 -# define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6 -# define X509_V_ERR_CERT_SIGNATURE_FAILURE 7 -# define X509_V_ERR_CRL_SIGNATURE_FAILURE 8 -# define X509_V_ERR_CERT_NOT_YET_VALID 9 -# define X509_V_ERR_CERT_HAS_EXPIRED 10 -# define X509_V_ERR_CRL_NOT_YET_VALID 11 -# define X509_V_ERR_CRL_HAS_EXPIRED 12 -# define X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD 13 -# define X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD 14 -# define X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD 15 -# define X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD 16 -# define X509_V_ERR_OUT_OF_MEM 17 -# define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18 -# define X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN 19 -# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20 -# define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21 -# define X509_V_ERR_CERT_CHAIN_TOO_LONG 22 -# define X509_V_ERR_CERT_REVOKED 23 -# define X509_V_ERR_NO_ISSUER_PUBLIC_KEY 24 -# define X509_V_ERR_PATH_LENGTH_EXCEEDED 25 -# define X509_V_ERR_INVALID_PURPOSE 26 -# define X509_V_ERR_CERT_UNTRUSTED 27 -# define X509_V_ERR_CERT_REJECTED 28 - -/* These are 'informational' when looking for issuer cert */ -# define X509_V_ERR_SUBJECT_ISSUER_MISMATCH 29 -# define X509_V_ERR_AKID_SKID_MISMATCH 30 -# define X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH 31 -# define X509_V_ERR_KEYUSAGE_NO_CERTSIGN 32 -# define X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER 33 -# define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34 -# define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35 -# define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36 -# define X509_V_ERR_INVALID_NON_CA 37 -# define X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED 38 -# define X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39 -# define X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED 40 -# define X509_V_ERR_INVALID_EXTENSION 41 -# define X509_V_ERR_INVALID_POLICY_EXTENSION 42 -# define X509_V_ERR_NO_EXPLICIT_POLICY 43 -# define X509_V_ERR_DIFFERENT_CRL_SCOPE 44 -# define X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE 45 -# define X509_V_ERR_UNNESTED_RESOURCE 46 -# define X509_V_ERR_PERMITTED_VIOLATION 47 -# define X509_V_ERR_EXCLUDED_VIOLATION 48 -# define X509_V_ERR_SUBTREE_MINMAX 49 -/* The application is not happy */ -# define X509_V_ERR_APPLICATION_VERIFICATION 50 -# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE 51 -# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX 52 -# define X509_V_ERR_UNSUPPORTED_NAME_SYNTAX 53 -# define X509_V_ERR_CRL_PATH_VALIDATION_ERROR 54 -/* Another issuer check debug option */ -# define X509_V_ERR_PATH_LOOP 55 -/* Suite B mode algorithm violation */ -# define X509_V_ERR_SUITE_B_INVALID_VERSION 56 -# define X509_V_ERR_SUITE_B_INVALID_ALGORITHM 57 -# define X509_V_ERR_SUITE_B_INVALID_CURVE 58 -# define X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM 59 -# define X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED 60 -# define X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 61 -/* Host, email and IP check errors */ -# define X509_V_ERR_HOSTNAME_MISMATCH 62 -# define X509_V_ERR_EMAIL_MISMATCH 63 -# define X509_V_ERR_IP_ADDRESS_MISMATCH 64 -/* DANE TLSA errors */ -# define X509_V_ERR_DANE_NO_MATCH 65 -/* security level errors */ -# define X509_V_ERR_EE_KEY_TOO_SMALL 66 -# define X509_V_ERR_CA_KEY_TOO_SMALL 67 -# define X509_V_ERR_CA_MD_TOO_WEAK 68 -/* Caller error */ -# define X509_V_ERR_INVALID_CALL 69 -/* Issuer lookup error */ -# define X509_V_ERR_STORE_LOOKUP 70 -/* Certificate transparency */ -# define X509_V_ERR_NO_VALID_SCTS 71 - -# define X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION 72 -/* OCSP status errors */ -# define X509_V_ERR_OCSP_VERIFY_NEEDED 73 /* Need OCSP verification */ -# define X509_V_ERR_OCSP_VERIFY_FAILED 74 /* Couldn't verify cert through OCSP */ -# define X509_V_ERR_OCSP_CERT_UNKNOWN 75 /* Certificate wasn't recognized by the OCSP responder */ - -# define X509_V_ERR_UNSUPPORTED_SIGNATURE_ALGORITHM 76 -# define X509_V_ERR_SIGNATURE_ALGORITHM_MISMATCH 77 - -/* Errors in case a check in X509_V_FLAG_X509_STRICT mode fails */ -# define X509_V_ERR_SIGNATURE_ALGORITHM_INCONSISTENCY 78 -# define X509_V_ERR_INVALID_CA 79 -# define X509_V_ERR_PATHLEN_INVALID_FOR_NON_CA 80 -# define X509_V_ERR_PATHLEN_WITHOUT_KU_KEY_CERT_SIGN 81 -# define X509_V_ERR_KU_KEY_CERT_SIGN_INVALID_FOR_NON_CA 82 -# define X509_V_ERR_ISSUER_NAME_EMPTY 83 -# define X509_V_ERR_SUBJECT_NAME_EMPTY 84 -# define X509_V_ERR_MISSING_AUTHORITY_KEY_IDENTIFIER 85 -# define X509_V_ERR_MISSING_SUBJECT_KEY_IDENTIFIER 86 -# define X509_V_ERR_EMPTY_SUBJECT_ALT_NAME 87 -# define X509_V_ERR_EMPTY_SUBJECT_SAN_NOT_CRITICAL 88 -# define X509_V_ERR_CA_BCONS_NOT_CRITICAL 89 -# define X509_V_ERR_AUTHORITY_KEY_IDENTIFIER_CRITICAL 90 -# define X509_V_ERR_SUBJECT_KEY_IDENTIFIER_CRITICAL 91 -# define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 -# define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 -# define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 -# define X509_V_ERR_RPK_UNTRUSTED 95 - -/* additional OCSP status errors */ -# define X509_V_ERR_OCSP_RESP_INVALID 96 -# define X509_V_ERR_OCSP_SIGNATURE_FAILURE 97 -# define X509_V_ERR_OCSP_NOT_YET_VALID 98 -# define X509_V_ERR_OCSP_HAS_EXPIRED 99 -# define X509_V_ERR_OCSP_NO_RESPONSE 100 -# define X509_V_ERR_CRL_VERIFY_FAILED 101 - -/* Certificate verify flags */ -# ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define X509_V_FLAG_CB_ISSUER_CHECK 0x0 /* Deprecated */ -# endif -/* Use check time instead of current time */ -# define X509_V_FLAG_USE_CHECK_TIME 0x2 -/* Lookup CRLs */ -# define X509_V_FLAG_CRL_CHECK 0x4 -/* Lookup CRLs for whole chain */ -# define X509_V_FLAG_CRL_CHECK_ALL 0x8 -/* Ignore unhandled critical extensions */ -# define X509_V_FLAG_IGNORE_CRITICAL 0x10 -/* Disable workarounds for broken certificates */ -# define X509_V_FLAG_X509_STRICT 0x20 -/* Enable proxy certificate validation */ -# define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40 -/* Enable policy checking */ -# define X509_V_FLAG_POLICY_CHECK 0x80 -/* Policy variable require-explicit-policy */ -# define X509_V_FLAG_EXPLICIT_POLICY 0x100 -/* Policy variable inhibit-any-policy */ -# define X509_V_FLAG_INHIBIT_ANY 0x200 -/* Policy variable inhibit-policy-mapping */ -# define X509_V_FLAG_INHIBIT_MAP 0x400 -/* Notify callback that policy is OK */ -# define X509_V_FLAG_NOTIFY_POLICY 0x800 -/* Extended CRL features such as indirect CRLs, alternate CRL signing keys */ -# define X509_V_FLAG_EXTENDED_CRL_SUPPORT 0x1000 -/* Delta CRL support */ -# define X509_V_FLAG_USE_DELTAS 0x2000 -/* Check self-signed CA signature */ -# define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000 -/* Use trusted store first */ -# define X509_V_FLAG_TRUSTED_FIRST 0x8000 -/* Suite B 128 bit only mode: not normally used */ -# define X509_V_FLAG_SUITEB_128_LOS_ONLY 0x10000 -/* Suite B 192 bit only mode */ -# define X509_V_FLAG_SUITEB_192_LOS 0x20000 -/* Suite B 128 bit mode allowing 192 bit algorithms */ -# define X509_V_FLAG_SUITEB_128_LOS 0x30000 -/* Allow partial chains if at least one certificate is in trusted store */ -# define X509_V_FLAG_PARTIAL_CHAIN 0x80000 -/* - * If the initial chain is not trusted, do not attempt to build an alternative - * chain. Alternate chain checking was introduced in 1.1.0. Setting this flag - * will force the behaviour to match that of previous versions. - */ -# define X509_V_FLAG_NO_ALT_CHAINS 0x100000 -/* Do not check certificate/CRL validity against current time */ -# define X509_V_FLAG_NO_CHECK_TIME 0x200000 - -/* Verify OCSP stapling response for server certificate */ -# define X509_V_FLAG_OCSP_RESP_CHECK 0x400000 -/* Verify OCSP stapling responses for whole chain */ -# define X509_V_FLAG_OCSP_RESP_CHECK_ALL 0x800000 - -# define X509_VP_FLAG_DEFAULT 0x1 -# define X509_VP_FLAG_OVERWRITE 0x2 -# define X509_VP_FLAG_RESET_FLAGS 0x4 -# define X509_VP_FLAG_LOCKED 0x8 -# define X509_VP_FLAG_ONCE 0x10 - -/* Internal use: mask of policy related options */ -# define X509_V_FLAG_POLICY_MASK (X509_V_FLAG_POLICY_CHECK \ - | X509_V_FLAG_EXPLICIT_POLICY \ - | X509_V_FLAG_INHIBIT_ANY \ - | X509_V_FLAG_INHIBIT_MAP) - -int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, X509_LOOKUP_TYPE type, - const X509_NAME *name); -X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h, - X509_LOOKUP_TYPE type, - const X509_NAME *name); -X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, - X509_OBJECT *x); -int X509_OBJECT_up_ref_count(X509_OBJECT *a); -X509_OBJECT *X509_OBJECT_new(void); -void X509_OBJECT_free(X509_OBJECT *a); -X509_LOOKUP_TYPE X509_OBJECT_get_type(const X509_OBJECT *a); -X509 *X509_OBJECT_get0_X509(const X509_OBJECT *a); -int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); -X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); -int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); -X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *xs); -int X509_STORE_lock(X509_STORE *xs); -int X509_STORE_unlock(X509_STORE *xs); -int X509_STORE_up_ref(X509_STORE *xs); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); -STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); -STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, - const X509_NAME *nm); -STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, - const X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *xs, int purpose); -int X509_STORE_set_trust(X509_STORE *xs, int trust); -int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); - -void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); -#define X509_STORE_set_verify_func(ctx, func) \ - X509_STORE_set_verify((ctx),(func)) -void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, - X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); -void X509_STORE_set_verify_cb(X509_STORE *xs, - X509_STORE_CTX_verify_cb verify_cb); -# define X509_STORE_set_verify_cb_func(ctx,func) \ - X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); -void X509_STORE_set_get_issuer(X509_STORE *xs, - X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); -void X509_STORE_set_check_issued(X509_STORE *xs, - X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); -void X509_STORE_set_check_revocation(X509_STORE *xs, - X509_STORE_CTX_check_revocation_fn check_revocation); -X509_STORE_CTX_check_revocation_fn - X509_STORE_get_check_revocation(const X509_STORE *xs); -void X509_STORE_set_get_crl(X509_STORE *xs, - X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); -void X509_STORE_set_check_crl(X509_STORE *xs, - X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); -void X509_STORE_set_cert_crl(X509_STORE *xs, - X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); -void X509_STORE_set_check_policy(X509_STORE *xs, - X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); -void X509_STORE_set_lookup_certs(X509_STORE *xs, - X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); -void X509_STORE_set_lookup_crls(X509_STORE *xs, - X509_STORE_CTX_lookup_crls_fn lookup_crls); -#define X509_STORE_set_lookup_crls_cb(ctx, func) \ - X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); -void X509_STORE_set_cleanup(X509_STORE *xs, - X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); - -#define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); -void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); - -X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); -X509_STORE_CTX *X509_STORE_CTX_new(void); - -int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); - -void X509_STORE_CTX_free(X509_STORE_CTX *ctx); -int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, - X509 *target, STACK_OF(X509) *untrusted); -int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, - EVP_PKEY* rpk); -void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); -void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); - -X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); -X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); -EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); -STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); -void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); -void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, - X509_STORE_CTX_verify_cb verify); -X509_STORE_CTX_verify_cb X509_STORE_CTX_get_verify_cb(const X509_STORE_CTX *ctx); -X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); -X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); -X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); -X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, - X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); -X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); -X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); -X509_STORE_CTX_check_policy_fn X509_STORE_CTX_get_check_policy(const X509_STORE_CTX *ctx); -X509_STORE_CTX_lookup_certs_fn X509_STORE_CTX_get_lookup_certs(const X509_STORE_CTX *ctx); -X509_STORE_CTX_lookup_crls_fn X509_STORE_CTX_get_lookup_crls(const X509_STORE_CTX *ctx); -X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); - -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -# define X509_STORE_CTX_get_chain X509_STORE_CTX_get0_chain -# define X509_STORE_CTX_set_chain X509_STORE_CTX_set0_untrusted -# define X509_STORE_CTX_trusted_stack X509_STORE_CTX_set0_trusted_stack -# define X509_STORE_get_by_subject X509_STORE_CTX_get_by_subject -# define X509_STORE_get1_certs X509_STORE_CTX_get1_certs -# define X509_STORE_get1_crls X509_STORE_CTX_get1_crls -/* the following macro is misspelled; use X509_STORE_get1_certs instead */ -# define X509_STORE_get1_cert X509_STORE_CTX_get1_certs -/* the following macro is misspelled; use X509_STORE_get1_crls instead */ -# define X509_STORE_get1_crl X509_STORE_CTX_get1_crls -#endif - -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); -X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); -X509_LOOKUP_METHOD *X509_LOOKUP_file(void); -X509_LOOKUP_METHOD *X509_LOOKUP_store(void); - -typedef int (*X509_LOOKUP_ctrl_fn)(X509_LOOKUP *ctx, int cmd, const char *argc, - long argl, char **ret); -typedef int (*X509_LOOKUP_ctrl_ex_fn)( - X509_LOOKUP *ctx, int cmd, const char *argc, long argl, char **ret, - OSSL_LIB_CTX *libctx, const char *propq); - -typedef int (*X509_LOOKUP_get_by_subject_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - const X509_NAME *name, - X509_OBJECT *ret); -typedef int (*X509_LOOKUP_get_by_subject_ex_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - const X509_NAME *name, - X509_OBJECT *ret, - OSSL_LIB_CTX *libctx, - const char *propq); -typedef int (*X509_LOOKUP_get_by_issuer_serial_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - const X509_NAME *name, - const ASN1_INTEGER *serial, - X509_OBJECT *ret); -typedef int (*X509_LOOKUP_get_by_fingerprint_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - const unsigned char* bytes, - int len, - X509_OBJECT *ret); -typedef int (*X509_LOOKUP_get_by_alias_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - const char *str, - int len, - X509_OBJECT *ret); - -X509_LOOKUP_METHOD *X509_LOOKUP_meth_new(const char *name); -void X509_LOOKUP_meth_free(X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_new_item(X509_LOOKUP_METHOD *method, - int (*new_item) (X509_LOOKUP *ctx)); -int (*X509_LOOKUP_meth_get_new_item(const X509_LOOKUP_METHOD* method)) - (X509_LOOKUP *ctx); - -int X509_LOOKUP_meth_set_free(X509_LOOKUP_METHOD *method, - void (*free_fn) (X509_LOOKUP *ctx)); -void (*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method)) - (X509_LOOKUP *ctx); - -int X509_LOOKUP_meth_set_init(X509_LOOKUP_METHOD *method, - int (*init) (X509_LOOKUP *ctx)); -int (*X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD* method)) - (X509_LOOKUP *ctx); - -int X509_LOOKUP_meth_set_shutdown(X509_LOOKUP_METHOD *method, - int (*shutdown) (X509_LOOKUP *ctx)); -int (*X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD* method)) - (X509_LOOKUP *ctx); - -int X509_LOOKUP_meth_set_ctrl(X509_LOOKUP_METHOD *method, - X509_LOOKUP_ctrl_fn ctrl_fn); -X509_LOOKUP_ctrl_fn X509_LOOKUP_meth_get_ctrl(const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_subject(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_subject_fn fn); -X509_LOOKUP_get_by_subject_fn X509_LOOKUP_meth_get_get_by_subject( - const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_issuer_serial(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_issuer_serial_fn fn); -X509_LOOKUP_get_by_issuer_serial_fn X509_LOOKUP_meth_get_get_by_issuer_serial( - const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_fingerprint(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_fingerprint_fn fn); -X509_LOOKUP_get_by_fingerprint_fn X509_LOOKUP_meth_get_get_by_fingerprint( - const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_alias(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_alias_fn fn); -X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( - const X509_LOOKUP_METHOD *method); - - -int X509_STORE_add_cert(X509_STORE *xs, X509 *x); -int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); - -int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, - X509_LOOKUP_TYPE type, - const X509_NAME *name, X509_OBJECT *ret); -X509_OBJECT *X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs, - X509_LOOKUP_TYPE type, - const X509_NAME *name); - -int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, - long argl, char **ret); -int X509_LOOKUP_ctrl_ex(X509_LOOKUP *ctx, int cmd, const char *argc, long argl, - char **ret, OSSL_LIB_CTX *libctx, const char *propq); - -int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type); -int X509_load_cert_file_ex(X509_LOOKUP *ctx, const char *file, int type, - OSSL_LIB_CTX *libctx, const char *propq); -int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type); -int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type); -int X509_load_cert_crl_file_ex(X509_LOOKUP *ctx, const char *file, int type, - OSSL_LIB_CTX *libctx, const char *propq); - -X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); -void X509_LOOKUP_free(X509_LOOKUP *ctx); -int X509_LOOKUP_init(X509_LOOKUP *ctx); -int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - const X509_NAME *name, X509_OBJECT *ret); -int X509_LOOKUP_by_subject_ex(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - const X509_NAME *name, X509_OBJECT *ret, - OSSL_LIB_CTX *libctx, const char *propq); -int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - const X509_NAME *name, - const ASN1_INTEGER *serial, - X509_OBJECT *ret); -int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - const unsigned char *bytes, int len, - X509_OBJECT *ret); -int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - const char *str, int len, X509_OBJECT *ret); -int X509_LOOKUP_set_method_data(X509_LOOKUP *ctx, void *data); -void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); -X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); -int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); - -int X509_STORE_load_file(X509_STORE *xs, const char *file); -int X509_STORE_load_path(X509_STORE *xs, const char *path); -int X509_STORE_load_store(X509_STORE *xs, const char *store); -int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); -int X509_STORE_set_default_paths(X509_STORE *xs); - -int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, - OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, - OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_load_locations_ex(X509_STORE *xs, - const char *file, const char *dir, - OSSL_LIB_CTX *libctx, const char *propq); -int X509_STORE_set_default_paths_ex(X509_STORE *xs, - OSSL_LIB_CTX *libctx, const char *propq); - -#define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) -int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data); -void *X509_STORE_CTX_get_ex_data(const X509_STORE_CTX *ctx, int idx); -int X509_STORE_CTX_get_error(const X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s); -int X509_STORE_CTX_get_error_depth(const X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_error_depth(X509_STORE_CTX *ctx, int depth); -X509 *X509_STORE_CTX_get_current_cert(const X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_current_cert(X509_STORE_CTX *ctx, X509 *x); -X509 *X509_STORE_CTX_get0_current_issuer(const X509_STORE_CTX *ctx); -X509_CRL *X509_STORE_CTX_get0_current_crl(const X509_STORE_CTX *ctx); -X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); -STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); -STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); -void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); -void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); -void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); -# ifndef OPENSSL_NO_OCSP -void X509_STORE_CTX_set_ocsp_resp(X509_STORE_CTX *ctx, STACK_OF(OCSP_RESPONSE) *sk); -# endif -int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); -int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); -int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, - int purpose, int trust); -void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); -void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, - time_t t); -void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, - unsigned int current_reasons); - -X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); -int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); -int X509_STORE_CTX_get_num_untrusted(const X509_STORE_CTX *ctx); - -X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(const X509_STORE_CTX *ctx); -void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); -int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); - -/* - * Bridge opacity barrier between libcrypt and libssl, also needed to support - * offline testing in test/danetest.c - */ -void X509_STORE_CTX_set0_dane(X509_STORE_CTX *ctx, SSL_DANE *dane); -#define DANE_FLAG_NO_DANE_EE_NAMECHECKS (1L << 0) - -/* X509_VERIFY_PARAM functions */ - -X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void); -void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to, - const X509_VERIFY_PARAM *from); -int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, - const X509_VERIFY_PARAM *from); -int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name); -int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, - unsigned long flags); -int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, - unsigned long flags); -unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); -int X509_VERIFY_PARAM_get_purpose(const X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); -void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); -void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); -time_t X509_VERIFY_PARAM_get_time(const X509_VERIFY_PARAM *param); -void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); -int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, - ASN1_OBJECT *policy); -int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, - STACK_OF(ASN1_OBJECT) *policies); - -int X509_VERIFY_PARAM_set_inh_flags(X509_VERIFY_PARAM *param, - uint32_t flags); -uint32_t X509_VERIFY_PARAM_get_inh_flags(const X509_VERIFY_PARAM *param); - -char *X509_VERIFY_PARAM_get0_host(X509_VERIFY_PARAM *param, int idx); -int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, - const char *name, size_t namelen); -int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, - const char *name, size_t namelen); -void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, - unsigned int flags); -unsigned int X509_VERIFY_PARAM_get_hostflags(const X509_VERIFY_PARAM *param); -char *X509_VERIFY_PARAM_get0_peername(const X509_VERIFY_PARAM *param); -void X509_VERIFY_PARAM_move_peername(X509_VERIFY_PARAM *, X509_VERIFY_PARAM *); -char *X509_VERIFY_PARAM_get0_email(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, - const char *email, size_t emaillen); -char *X509_VERIFY_PARAM_get1_ip_asc(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, - const unsigned char *ip, size_t iplen); -int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, - const char *ipasc); - -int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_get_auth_level(const X509_VERIFY_PARAM *param); -const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param); - -int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_get_count(void); -const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id); -const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); -void X509_VERIFY_PARAM_table_cleanup(void); - -/* Non positive return values are errors */ -#define X509_PCY_TREE_FAILURE -2 /* Failure to satisfy explicit policy */ -#define X509_PCY_TREE_INVALID -1 /* Inconsistent or invalid extensions */ -#define X509_PCY_TREE_INTERNAL 0 /* Internal error, most likely malloc */ - -/* - * Positive return values form a bit mask, all but the first are internal to - * the library and don't appear in results from X509_policy_check(). - */ -#define X509_PCY_TREE_VALID 1 /* The policy tree is valid */ -#define X509_PCY_TREE_EMPTY 2 /* The policy tree is empty */ -#define X509_PCY_TREE_EXPLICIT 4 /* Explicit policy required */ - -int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, - STACK_OF(X509) *certs, - STACK_OF(ASN1_OBJECT) *policy_oids, unsigned int flags); - -void X509_policy_tree_free(X509_POLICY_TREE *tree); - -int X509_policy_tree_level_count(const X509_POLICY_TREE *tree); -X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE *tree, - int i); - -STACK_OF(X509_POLICY_NODE) - *X509_policy_tree_get0_policies(const X509_POLICY_TREE *tree); - -STACK_OF(X509_POLICY_NODE) - *X509_policy_tree_get0_user_policies(const X509_POLICY_TREE *tree); - -int X509_policy_level_node_count(X509_POLICY_LEVEL *level); - -X509_POLICY_NODE *X509_policy_level_get0_node(const X509_POLICY_LEVEL *level, - int i); - -const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node); - -STACK_OF(POLICYQUALINFO) - *X509_policy_node_get0_qualifiers(const X509_POLICY_NODE *node); -const X509_POLICY_NODE - *X509_policy_node_get0_parent(const X509_POLICY_NODE *node); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/x509err.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/x509err.h deleted file mode 100644 index 77b91c8..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/x509err.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_X509ERR_H -# define OPENSSL_X509ERR_H -# pragma once - -# include -# include -# include - - - -/* - * X509 reason codes. - */ -# define X509_R_AKID_MISMATCH 110 -# define X509_R_BAD_SELECTOR 133 -# define X509_R_BAD_X509_FILETYPE 100 -# define X509_R_BASE64_DECODE_ERROR 118 -# define X509_R_CANT_CHECK_DH_KEY 114 -# define X509_R_CERTIFICATE_VERIFICATION_FAILED 139 -# define X509_R_CERT_ALREADY_IN_HASH_TABLE 101 -# define X509_R_CRL_ALREADY_DELTA 127 -# define X509_R_CRL_VERIFY_FAILURE 131 -# define X509_R_DUPLICATE_ATTRIBUTE 140 -# define X509_R_ERROR_GETTING_MD_BY_NID 141 -# define X509_R_ERROR_USING_SIGINF_SET 142 -# define X509_R_IDP_MISMATCH 128 -# define X509_R_INVALID_ATTRIBUTES 138 -# define X509_R_INVALID_DIRECTORY 113 -# define X509_R_INVALID_DISTPOINT 143 -# define X509_R_INVALID_FIELD_NAME 119 -# define X509_R_INVALID_TRUST 123 -# define X509_R_ISSUER_MISMATCH 129 -# define X509_R_KEY_TYPE_MISMATCH 115 -# define X509_R_KEY_VALUES_MISMATCH 116 -# define X509_R_LOADING_CERT_DIR 103 -# define X509_R_LOADING_DEFAULTS 104 -# define X509_R_METHOD_NOT_SUPPORTED 124 -# define X509_R_NAME_TOO_LONG 134 -# define X509_R_NEWER_CRL_NOT_NEWER 132 -# define X509_R_NO_CERTIFICATE_FOUND 135 -# define X509_R_NO_CERTIFICATE_OR_CRL_FOUND 136 -# define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 105 -# define X509_R_NO_CRL_FOUND 137 -# define X509_R_NO_CRL_NUMBER 130 -# define X509_R_PUBLIC_KEY_DECODE_ERROR 125 -# define X509_R_PUBLIC_KEY_ENCODE_ERROR 126 -# define X509_R_SHOULD_RETRY 106 -# define X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN 107 -# define X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY 108 -# define X509_R_UNKNOWN_KEY_TYPE 117 -# define X509_R_UNKNOWN_NID 109 -# define X509_R_UNKNOWN_PURPOSE_ID 121 -# define X509_R_UNKNOWN_SIGID_ALGS 144 -# define X509_R_UNKNOWN_TRUST_ID 120 -# define X509_R_UNSUPPORTED_ALGORITHM 111 -# define X509_R_UNSUPPORTED_VERSION 145 -# define X509_R_WRONG_LOOKUP_TYPE 112 -# define X509_R_WRONG_TYPE 122 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/x509v3.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/x509v3.h deleted file mode 100644 index be634cc..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/x509v3.h +++ /dev/null @@ -1,1968 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by makefile from ..\include\openssl\x509v3.h.in - * - * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - - - -#ifndef OPENSSL_X509V3_H -# define OPENSSL_X509V3_H -# pragma once - -# include -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define HEADER_X509V3_H -# endif - -# include -# include -# include -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward reference */ -struct v3_ext_method; -struct v3_ext_ctx; - -/* Useful typedefs */ - -typedef void *(*X509V3_EXT_NEW)(void); -typedef void (*X509V3_EXT_FREE) (void *); -typedef void *(*X509V3_EXT_D2I)(void *, const unsigned char **, long); -typedef int (*X509V3_EXT_I2D) (const void *, unsigned char **); -typedef STACK_OF(CONF_VALUE) * - (*X509V3_EXT_I2V) (const struct v3_ext_method *method, void *ext, - STACK_OF(CONF_VALUE) *extlist); -typedef void *(*X509V3_EXT_V2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, - STACK_OF(CONF_VALUE) *values); -typedef char *(*X509V3_EXT_I2S)(const struct v3_ext_method *method, - void *ext); -typedef void *(*X509V3_EXT_S2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, const char *str); -typedef int (*X509V3_EXT_I2R) (const struct v3_ext_method *method, void *ext, - BIO *out, int indent); -typedef void *(*X509V3_EXT_R2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, const char *str); - -/* V3 extension structure */ - -struct v3_ext_method { - int ext_nid; - int ext_flags; -/* If this is set the following four fields are ignored */ - ASN1_ITEM_EXP *it; -/* Old style ASN1 calls */ - X509V3_EXT_NEW ext_new; - X509V3_EXT_FREE ext_free; - X509V3_EXT_D2I d2i; - X509V3_EXT_I2D i2d; -/* The following pair is used for string extensions */ - X509V3_EXT_I2S i2s; - X509V3_EXT_S2I s2i; -/* The following pair is used for multi-valued extensions */ - X509V3_EXT_I2V i2v; - X509V3_EXT_V2I v2i; -/* The following are used for raw extensions */ - X509V3_EXT_I2R i2r; - X509V3_EXT_R2I r2i; - void *usr_data; /* Any extension specific data */ -}; - -typedef struct X509V3_CONF_METHOD_st { - char *(*get_string) (void *db, const char *section, const char *value); - STACK_OF(CONF_VALUE) *(*get_section) (void *db, const char *section); - void (*free_string) (void *db, char *string); - void (*free_section) (void *db, STACK_OF(CONF_VALUE) *section); -} X509V3_CONF_METHOD; - -/* Context specific info for producing X509 v3 extensions*/ -struct v3_ext_ctx { -# define X509V3_CTX_TEST 0x1 -# ifndef OPENSSL_NO_DEPRECATED_3_0 -# define CTX_TEST X509V3_CTX_TEST -# endif -# define X509V3_CTX_REPLACE 0x2 - int flags; - X509 *issuer_cert; - X509 *subject_cert; - X509_REQ *subject_req; - X509_CRL *crl; - X509V3_CONF_METHOD *db_meth; - void *db; - EVP_PKEY *issuer_pkey; -/* Maybe more here */ -}; - -typedef struct v3_ext_method X509V3_EXT_METHOD; - -SKM_DEFINE_STACK_OF_INTERNAL(X509V3_EXT_METHOD, X509V3_EXT_METHOD, X509V3_EXT_METHOD) -#define sk_X509V3_EXT_METHOD_num(sk) OPENSSL_sk_num(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk)) -#define sk_X509V3_EXT_METHOD_value(sk, idx) ((X509V3_EXT_METHOD *)OPENSSL_sk_value(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk), (idx))) -#define sk_X509V3_EXT_METHOD_new(cmp) ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_new(ossl_check_X509V3_EXT_METHOD_compfunc_type(cmp))) -#define sk_X509V3_EXT_METHOD_new_null() ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_new_null()) -#define sk_X509V3_EXT_METHOD_new_reserve(cmp, n) ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_new_reserve(ossl_check_X509V3_EXT_METHOD_compfunc_type(cmp), (n))) -#define sk_X509V3_EXT_METHOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509V3_EXT_METHOD_sk_type(sk), (n)) -#define sk_X509V3_EXT_METHOD_free(sk) OPENSSL_sk_free(ossl_check_X509V3_EXT_METHOD_sk_type(sk)) -#define sk_X509V3_EXT_METHOD_zero(sk) OPENSSL_sk_zero(ossl_check_X509V3_EXT_METHOD_sk_type(sk)) -#define sk_X509V3_EXT_METHOD_delete(sk, i) ((X509V3_EXT_METHOD *)OPENSSL_sk_delete(ossl_check_X509V3_EXT_METHOD_sk_type(sk), (i))) -#define sk_X509V3_EXT_METHOD_delete_ptr(sk, ptr) ((X509V3_EXT_METHOD *)OPENSSL_sk_delete_ptr(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr))) -#define sk_X509V3_EXT_METHOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr)) -#define sk_X509V3_EXT_METHOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr)) -#define sk_X509V3_EXT_METHOD_pop(sk) ((X509V3_EXT_METHOD *)OPENSSL_sk_pop(ossl_check_X509V3_EXT_METHOD_sk_type(sk))) -#define sk_X509V3_EXT_METHOD_shift(sk) ((X509V3_EXT_METHOD *)OPENSSL_sk_shift(ossl_check_X509V3_EXT_METHOD_sk_type(sk))) -#define sk_X509V3_EXT_METHOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_freefunc_type(freefunc)) -#define sk_X509V3_EXT_METHOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr), (idx)) -#define sk_X509V3_EXT_METHOD_set(sk, idx, ptr) ((X509V3_EXT_METHOD *)OPENSSL_sk_set(ossl_check_X509V3_EXT_METHOD_sk_type(sk), (idx), ossl_check_X509V3_EXT_METHOD_type(ptr))) -#define sk_X509V3_EXT_METHOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr)) -#define sk_X509V3_EXT_METHOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr)) -#define sk_X509V3_EXT_METHOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr), pnum) -#define sk_X509V3_EXT_METHOD_sort(sk) OPENSSL_sk_sort(ossl_check_X509V3_EXT_METHOD_sk_type(sk)) -#define sk_X509V3_EXT_METHOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk)) -#define sk_X509V3_EXT_METHOD_dup(sk) ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_dup(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk))) -#define sk_X509V3_EXT_METHOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_deep_copy(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_copyfunc_type(copyfunc), ossl_check_X509V3_EXT_METHOD_freefunc_type(freefunc))) -#define sk_X509V3_EXT_METHOD_set_cmp_func(sk, cmp) ((sk_X509V3_EXT_METHOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_compfunc_type(cmp))) - - -/* ext_flags values */ -# define X509V3_EXT_DYNAMIC 0x1 -# define X509V3_EXT_CTX_DEP 0x2 -# define X509V3_EXT_MULTILINE 0x4 - -typedef BIT_STRING_BITNAME ENUMERATED_NAMES; - -typedef struct BASIC_CONSTRAINTS_st { - int ca; - ASN1_INTEGER *pathlen; -} BASIC_CONSTRAINTS; - -typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { - int authority; - ASN1_INTEGER *pathlen; -} OSSL_BASIC_ATTR_CONSTRAINTS; - -typedef struct PKEY_USAGE_PERIOD_st { - ASN1_GENERALIZEDTIME *notBefore; - ASN1_GENERALIZEDTIME *notAfter; -} PKEY_USAGE_PERIOD; - -typedef struct otherName_st { - ASN1_OBJECT *type_id; - ASN1_TYPE *value; -} OTHERNAME; - -typedef struct EDIPartyName_st { - ASN1_STRING *nameAssigner; - ASN1_STRING *partyName; -} EDIPARTYNAME; - -typedef struct GENERAL_NAME_st { -# define GEN_OTHERNAME 0 -# define GEN_EMAIL 1 -# define GEN_DNS 2 -# define GEN_X400 3 -# define GEN_DIRNAME 4 -# define GEN_EDIPARTY 5 -# define GEN_URI 6 -# define GEN_IPADD 7 -# define GEN_RID 8 - int type; - union { - char *ptr; - OTHERNAME *otherName; /* otherName */ - ASN1_IA5STRING *rfc822Name; - ASN1_IA5STRING *dNSName; - ASN1_STRING *x400Address; - X509_NAME *directoryName; - EDIPARTYNAME *ediPartyName; - ASN1_IA5STRING *uniformResourceIdentifier; - ASN1_OCTET_STRING *iPAddress; - ASN1_OBJECT *registeredID; - /* Old names */ - ASN1_OCTET_STRING *ip; /* iPAddress */ - X509_NAME *dirn; /* dirn */ - ASN1_IA5STRING *ia5; /* rfc822Name, dNSName, - * uniformResourceIdentifier */ - ASN1_OBJECT *rid; /* registeredID */ - ASN1_TYPE *other; /* x400Address */ - } d; -} GENERAL_NAME; - -typedef struct ACCESS_DESCRIPTION_st { - ASN1_OBJECT *method; - GENERAL_NAME *location; -} ACCESS_DESCRIPTION; - -int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); - -SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) -#define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) -#define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) -#define sk_ACCESS_DESCRIPTION_new(cmp) ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_new(ossl_check_ACCESS_DESCRIPTION_compfunc_type(cmp))) -#define sk_ACCESS_DESCRIPTION_new_null() ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_new_null()) -#define sk_ACCESS_DESCRIPTION_new_reserve(cmp, n) ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_new_reserve(ossl_check_ACCESS_DESCRIPTION_compfunc_type(cmp), (n))) -#define sk_ACCESS_DESCRIPTION_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), (n)) -#define sk_ACCESS_DESCRIPTION_free(sk) OPENSSL_sk_free(ossl_check_ACCESS_DESCRIPTION_sk_type(sk)) -#define sk_ACCESS_DESCRIPTION_zero(sk) OPENSSL_sk_zero(ossl_check_ACCESS_DESCRIPTION_sk_type(sk)) -#define sk_ACCESS_DESCRIPTION_delete(sk, i) ((ACCESS_DESCRIPTION *)OPENSSL_sk_delete(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), (i))) -#define sk_ACCESS_DESCRIPTION_delete_ptr(sk, ptr) ((ACCESS_DESCRIPTION *)OPENSSL_sk_delete_ptr(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr))) -#define sk_ACCESS_DESCRIPTION_push(sk, ptr) OPENSSL_sk_push(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr)) -#define sk_ACCESS_DESCRIPTION_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr)) -#define sk_ACCESS_DESCRIPTION_pop(sk) ((ACCESS_DESCRIPTION *)OPENSSL_sk_pop(ossl_check_ACCESS_DESCRIPTION_sk_type(sk))) -#define sk_ACCESS_DESCRIPTION_shift(sk) ((ACCESS_DESCRIPTION *)OPENSSL_sk_shift(ossl_check_ACCESS_DESCRIPTION_sk_type(sk))) -#define sk_ACCESS_DESCRIPTION_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_freefunc_type(freefunc)) -#define sk_ACCESS_DESCRIPTION_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr), (idx)) -#define sk_ACCESS_DESCRIPTION_set(sk, idx, ptr) ((ACCESS_DESCRIPTION *)OPENSSL_sk_set(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), (idx), ossl_check_ACCESS_DESCRIPTION_type(ptr))) -#define sk_ACCESS_DESCRIPTION_find(sk, ptr) OPENSSL_sk_find(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr)) -#define sk_ACCESS_DESCRIPTION_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr)) -#define sk_ACCESS_DESCRIPTION_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr), pnum) -#define sk_ACCESS_DESCRIPTION_sort(sk) OPENSSL_sk_sort(ossl_check_ACCESS_DESCRIPTION_sk_type(sk)) -#define sk_ACCESS_DESCRIPTION_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) -#define sk_ACCESS_DESCRIPTION_dup(sk) ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_dup(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk))) -#define sk_ACCESS_DESCRIPTION_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_deep_copy(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_copyfunc_type(copyfunc), ossl_check_ACCESS_DESCRIPTION_freefunc_type(freefunc))) -#define sk_ACCESS_DESCRIPTION_set_cmp_func(sk, cmp) ((sk_ACCESS_DESCRIPTION_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(GENERAL_NAME, GENERAL_NAME, GENERAL_NAME) -#define sk_GENERAL_NAME_num(sk) OPENSSL_sk_num(ossl_check_const_GENERAL_NAME_sk_type(sk)) -#define sk_GENERAL_NAME_value(sk, idx) ((GENERAL_NAME *)OPENSSL_sk_value(ossl_check_const_GENERAL_NAME_sk_type(sk), (idx))) -#define sk_GENERAL_NAME_new(cmp) ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_new(ossl_check_GENERAL_NAME_compfunc_type(cmp))) -#define sk_GENERAL_NAME_new_null() ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_new_null()) -#define sk_GENERAL_NAME_new_reserve(cmp, n) ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_new_reserve(ossl_check_GENERAL_NAME_compfunc_type(cmp), (n))) -#define sk_GENERAL_NAME_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_GENERAL_NAME_sk_type(sk), (n)) -#define sk_GENERAL_NAME_free(sk) OPENSSL_sk_free(ossl_check_GENERAL_NAME_sk_type(sk)) -#define sk_GENERAL_NAME_zero(sk) OPENSSL_sk_zero(ossl_check_GENERAL_NAME_sk_type(sk)) -#define sk_GENERAL_NAME_delete(sk, i) ((GENERAL_NAME *)OPENSSL_sk_delete(ossl_check_GENERAL_NAME_sk_type(sk), (i))) -#define sk_GENERAL_NAME_delete_ptr(sk, ptr) ((GENERAL_NAME *)OPENSSL_sk_delete_ptr(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr))) -#define sk_GENERAL_NAME_push(sk, ptr) OPENSSL_sk_push(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr)) -#define sk_GENERAL_NAME_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr)) -#define sk_GENERAL_NAME_pop(sk) ((GENERAL_NAME *)OPENSSL_sk_pop(ossl_check_GENERAL_NAME_sk_type(sk))) -#define sk_GENERAL_NAME_shift(sk) ((GENERAL_NAME *)OPENSSL_sk_shift(ossl_check_GENERAL_NAME_sk_type(sk))) -#define sk_GENERAL_NAME_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_freefunc_type(freefunc)) -#define sk_GENERAL_NAME_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr), (idx)) -#define sk_GENERAL_NAME_set(sk, idx, ptr) ((GENERAL_NAME *)OPENSSL_sk_set(ossl_check_GENERAL_NAME_sk_type(sk), (idx), ossl_check_GENERAL_NAME_type(ptr))) -#define sk_GENERAL_NAME_find(sk, ptr) OPENSSL_sk_find(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr)) -#define sk_GENERAL_NAME_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr)) -#define sk_GENERAL_NAME_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr), pnum) -#define sk_GENERAL_NAME_sort(sk) OPENSSL_sk_sort(ossl_check_GENERAL_NAME_sk_type(sk)) -#define sk_GENERAL_NAME_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_GENERAL_NAME_sk_type(sk)) -#define sk_GENERAL_NAME_dup(sk) ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_dup(ossl_check_const_GENERAL_NAME_sk_type(sk))) -#define sk_GENERAL_NAME_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_deep_copy(ossl_check_const_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_copyfunc_type(copyfunc), ossl_check_GENERAL_NAME_freefunc_type(freefunc))) -#define sk_GENERAL_NAME_set_cmp_func(sk, cmp) ((sk_GENERAL_NAME_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_compfunc_type(cmp))) - - -typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS; -typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE; -typedef STACK_OF(ASN1_INTEGER) TLS_FEATURE; -typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES; - -SKM_DEFINE_STACK_OF_INTERNAL(GENERAL_NAMES, GENERAL_NAMES, GENERAL_NAMES) -#define sk_GENERAL_NAMES_num(sk) OPENSSL_sk_num(ossl_check_const_GENERAL_NAMES_sk_type(sk)) -#define sk_GENERAL_NAMES_value(sk, idx) ((GENERAL_NAMES *)OPENSSL_sk_value(ossl_check_const_GENERAL_NAMES_sk_type(sk), (idx))) -#define sk_GENERAL_NAMES_new(cmp) ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_new(ossl_check_GENERAL_NAMES_compfunc_type(cmp))) -#define sk_GENERAL_NAMES_new_null() ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_new_null()) -#define sk_GENERAL_NAMES_new_reserve(cmp, n) ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_new_reserve(ossl_check_GENERAL_NAMES_compfunc_type(cmp), (n))) -#define sk_GENERAL_NAMES_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_GENERAL_NAMES_sk_type(sk), (n)) -#define sk_GENERAL_NAMES_free(sk) OPENSSL_sk_free(ossl_check_GENERAL_NAMES_sk_type(sk)) -#define sk_GENERAL_NAMES_zero(sk) OPENSSL_sk_zero(ossl_check_GENERAL_NAMES_sk_type(sk)) -#define sk_GENERAL_NAMES_delete(sk, i) ((GENERAL_NAMES *)OPENSSL_sk_delete(ossl_check_GENERAL_NAMES_sk_type(sk), (i))) -#define sk_GENERAL_NAMES_delete_ptr(sk, ptr) ((GENERAL_NAMES *)OPENSSL_sk_delete_ptr(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr))) -#define sk_GENERAL_NAMES_push(sk, ptr) OPENSSL_sk_push(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr)) -#define sk_GENERAL_NAMES_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr)) -#define sk_GENERAL_NAMES_pop(sk) ((GENERAL_NAMES *)OPENSSL_sk_pop(ossl_check_GENERAL_NAMES_sk_type(sk))) -#define sk_GENERAL_NAMES_shift(sk) ((GENERAL_NAMES *)OPENSSL_sk_shift(ossl_check_GENERAL_NAMES_sk_type(sk))) -#define sk_GENERAL_NAMES_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_freefunc_type(freefunc)) -#define sk_GENERAL_NAMES_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr), (idx)) -#define sk_GENERAL_NAMES_set(sk, idx, ptr) ((GENERAL_NAMES *)OPENSSL_sk_set(ossl_check_GENERAL_NAMES_sk_type(sk), (idx), ossl_check_GENERAL_NAMES_type(ptr))) -#define sk_GENERAL_NAMES_find(sk, ptr) OPENSSL_sk_find(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr)) -#define sk_GENERAL_NAMES_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr)) -#define sk_GENERAL_NAMES_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr), pnum) -#define sk_GENERAL_NAMES_sort(sk) OPENSSL_sk_sort(ossl_check_GENERAL_NAMES_sk_type(sk)) -#define sk_GENERAL_NAMES_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_GENERAL_NAMES_sk_type(sk)) -#define sk_GENERAL_NAMES_dup(sk) ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_dup(ossl_check_const_GENERAL_NAMES_sk_type(sk))) -#define sk_GENERAL_NAMES_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_deep_copy(ossl_check_const_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_copyfunc_type(copyfunc), ossl_check_GENERAL_NAMES_freefunc_type(freefunc))) -#define sk_GENERAL_NAMES_set_cmp_func(sk, cmp) ((sk_GENERAL_NAMES_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_compfunc_type(cmp))) - - -typedef struct DIST_POINT_NAME_st { - int type; - union { - GENERAL_NAMES *fullname; - STACK_OF(X509_NAME_ENTRY) *relativename; - } name; -/* If relativename then this contains the full distribution point name */ - X509_NAME *dpname; -} DIST_POINT_NAME; -DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) -/* All existing reasons */ -# define CRLDP_ALL_REASONS 0x807f - -# define CRL_REASON_NONE -1 -# define CRL_REASON_UNSPECIFIED 0 -# define CRL_REASON_KEY_COMPROMISE 1 -# define CRL_REASON_CA_COMPROMISE 2 -# define CRL_REASON_AFFILIATION_CHANGED 3 -# define CRL_REASON_SUPERSEDED 4 -# define CRL_REASON_CESSATION_OF_OPERATION 5 -# define CRL_REASON_CERTIFICATE_HOLD 6 -# define CRL_REASON_REMOVE_FROM_CRL 8 -# define CRL_REASON_PRIVILEGE_WITHDRAWN 9 -# define CRL_REASON_AA_COMPROMISE 10 - -struct DIST_POINT_st { - DIST_POINT_NAME *distpoint; - ASN1_BIT_STRING *reasons; - GENERAL_NAMES *CRLissuer; - int dp_reasons; -}; - -SKM_DEFINE_STACK_OF_INTERNAL(DIST_POINT, DIST_POINT, DIST_POINT) -#define sk_DIST_POINT_num(sk) OPENSSL_sk_num(ossl_check_const_DIST_POINT_sk_type(sk)) -#define sk_DIST_POINT_value(sk, idx) ((DIST_POINT *)OPENSSL_sk_value(ossl_check_const_DIST_POINT_sk_type(sk), (idx))) -#define sk_DIST_POINT_new(cmp) ((STACK_OF(DIST_POINT) *)OPENSSL_sk_new(ossl_check_DIST_POINT_compfunc_type(cmp))) -#define sk_DIST_POINT_new_null() ((STACK_OF(DIST_POINT) *)OPENSSL_sk_new_null()) -#define sk_DIST_POINT_new_reserve(cmp, n) ((STACK_OF(DIST_POINT) *)OPENSSL_sk_new_reserve(ossl_check_DIST_POINT_compfunc_type(cmp), (n))) -#define sk_DIST_POINT_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_DIST_POINT_sk_type(sk), (n)) -#define sk_DIST_POINT_free(sk) OPENSSL_sk_free(ossl_check_DIST_POINT_sk_type(sk)) -#define sk_DIST_POINT_zero(sk) OPENSSL_sk_zero(ossl_check_DIST_POINT_sk_type(sk)) -#define sk_DIST_POINT_delete(sk, i) ((DIST_POINT *)OPENSSL_sk_delete(ossl_check_DIST_POINT_sk_type(sk), (i))) -#define sk_DIST_POINT_delete_ptr(sk, ptr) ((DIST_POINT *)OPENSSL_sk_delete_ptr(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr))) -#define sk_DIST_POINT_push(sk, ptr) OPENSSL_sk_push(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr)) -#define sk_DIST_POINT_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr)) -#define sk_DIST_POINT_pop(sk) ((DIST_POINT *)OPENSSL_sk_pop(ossl_check_DIST_POINT_sk_type(sk))) -#define sk_DIST_POINT_shift(sk) ((DIST_POINT *)OPENSSL_sk_shift(ossl_check_DIST_POINT_sk_type(sk))) -#define sk_DIST_POINT_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_freefunc_type(freefunc)) -#define sk_DIST_POINT_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr), (idx)) -#define sk_DIST_POINT_set(sk, idx, ptr) ((DIST_POINT *)OPENSSL_sk_set(ossl_check_DIST_POINT_sk_type(sk), (idx), ossl_check_DIST_POINT_type(ptr))) -#define sk_DIST_POINT_find(sk, ptr) OPENSSL_sk_find(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr)) -#define sk_DIST_POINT_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr)) -#define sk_DIST_POINT_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr), pnum) -#define sk_DIST_POINT_sort(sk) OPENSSL_sk_sort(ossl_check_DIST_POINT_sk_type(sk)) -#define sk_DIST_POINT_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_DIST_POINT_sk_type(sk)) -#define sk_DIST_POINT_dup(sk) ((STACK_OF(DIST_POINT) *)OPENSSL_sk_dup(ossl_check_const_DIST_POINT_sk_type(sk))) -#define sk_DIST_POINT_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(DIST_POINT) *)OPENSSL_sk_deep_copy(ossl_check_const_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_copyfunc_type(copyfunc), ossl_check_DIST_POINT_freefunc_type(freefunc))) -#define sk_DIST_POINT_set_cmp_func(sk, cmp) ((sk_DIST_POINT_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_compfunc_type(cmp))) - - -typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS; - -struct AUTHORITY_KEYID_st { - ASN1_OCTET_STRING *keyid; - GENERAL_NAMES *issuer; - ASN1_INTEGER *serial; -}; - -/* Strong extranet structures */ - -typedef struct SXNET_ID_st { - ASN1_INTEGER *zone; - ASN1_OCTET_STRING *user; -} SXNETID; - -SKM_DEFINE_STACK_OF_INTERNAL(SXNETID, SXNETID, SXNETID) -#define sk_SXNETID_num(sk) OPENSSL_sk_num(ossl_check_const_SXNETID_sk_type(sk)) -#define sk_SXNETID_value(sk, idx) ((SXNETID *)OPENSSL_sk_value(ossl_check_const_SXNETID_sk_type(sk), (idx))) -#define sk_SXNETID_new(cmp) ((STACK_OF(SXNETID) *)OPENSSL_sk_new(ossl_check_SXNETID_compfunc_type(cmp))) -#define sk_SXNETID_new_null() ((STACK_OF(SXNETID) *)OPENSSL_sk_new_null()) -#define sk_SXNETID_new_reserve(cmp, n) ((STACK_OF(SXNETID) *)OPENSSL_sk_new_reserve(ossl_check_SXNETID_compfunc_type(cmp), (n))) -#define sk_SXNETID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SXNETID_sk_type(sk), (n)) -#define sk_SXNETID_free(sk) OPENSSL_sk_free(ossl_check_SXNETID_sk_type(sk)) -#define sk_SXNETID_zero(sk) OPENSSL_sk_zero(ossl_check_SXNETID_sk_type(sk)) -#define sk_SXNETID_delete(sk, i) ((SXNETID *)OPENSSL_sk_delete(ossl_check_SXNETID_sk_type(sk), (i))) -#define sk_SXNETID_delete_ptr(sk, ptr) ((SXNETID *)OPENSSL_sk_delete_ptr(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr))) -#define sk_SXNETID_push(sk, ptr) OPENSSL_sk_push(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr)) -#define sk_SXNETID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr)) -#define sk_SXNETID_pop(sk) ((SXNETID *)OPENSSL_sk_pop(ossl_check_SXNETID_sk_type(sk))) -#define sk_SXNETID_shift(sk) ((SXNETID *)OPENSSL_sk_shift(ossl_check_SXNETID_sk_type(sk))) -#define sk_SXNETID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_freefunc_type(freefunc)) -#define sk_SXNETID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr), (idx)) -#define sk_SXNETID_set(sk, idx, ptr) ((SXNETID *)OPENSSL_sk_set(ossl_check_SXNETID_sk_type(sk), (idx), ossl_check_SXNETID_type(ptr))) -#define sk_SXNETID_find(sk, ptr) OPENSSL_sk_find(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr)) -#define sk_SXNETID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr)) -#define sk_SXNETID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr), pnum) -#define sk_SXNETID_sort(sk) OPENSSL_sk_sort(ossl_check_SXNETID_sk_type(sk)) -#define sk_SXNETID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SXNETID_sk_type(sk)) -#define sk_SXNETID_dup(sk) ((STACK_OF(SXNETID) *)OPENSSL_sk_dup(ossl_check_const_SXNETID_sk_type(sk))) -#define sk_SXNETID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SXNETID) *)OPENSSL_sk_deep_copy(ossl_check_const_SXNETID_sk_type(sk), ossl_check_SXNETID_copyfunc_type(copyfunc), ossl_check_SXNETID_freefunc_type(freefunc))) -#define sk_SXNETID_set_cmp_func(sk, cmp) ((sk_SXNETID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_compfunc_type(cmp))) - - - -typedef struct SXNET_st { - ASN1_INTEGER *version; - STACK_OF(SXNETID) *ids; -} SXNET; - -typedef struct ISSUER_SIGN_TOOL_st { - ASN1_UTF8STRING *signTool; - ASN1_UTF8STRING *cATool; - ASN1_UTF8STRING *signToolCert; - ASN1_UTF8STRING *cAToolCert; -} ISSUER_SIGN_TOOL; - -typedef struct NOTICEREF_st { - ASN1_STRING *organization; - STACK_OF(ASN1_INTEGER) *noticenos; -} NOTICEREF; - -typedef struct USERNOTICE_st { - NOTICEREF *noticeref; - ASN1_STRING *exptext; -} USERNOTICE; - -typedef struct POLICYQUALINFO_st { - ASN1_OBJECT *pqualid; - union { - ASN1_IA5STRING *cpsuri; - USERNOTICE *usernotice; - ASN1_TYPE *other; - } d; -} POLICYQUALINFO; - -SKM_DEFINE_STACK_OF_INTERNAL(POLICYQUALINFO, POLICYQUALINFO, POLICYQUALINFO) -#define sk_POLICYQUALINFO_num(sk) OPENSSL_sk_num(ossl_check_const_POLICYQUALINFO_sk_type(sk)) -#define sk_POLICYQUALINFO_value(sk, idx) ((POLICYQUALINFO *)OPENSSL_sk_value(ossl_check_const_POLICYQUALINFO_sk_type(sk), (idx))) -#define sk_POLICYQUALINFO_new(cmp) ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_new(ossl_check_POLICYQUALINFO_compfunc_type(cmp))) -#define sk_POLICYQUALINFO_new_null() ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_new_null()) -#define sk_POLICYQUALINFO_new_reserve(cmp, n) ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_new_reserve(ossl_check_POLICYQUALINFO_compfunc_type(cmp), (n))) -#define sk_POLICYQUALINFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_POLICYQUALINFO_sk_type(sk), (n)) -#define sk_POLICYQUALINFO_free(sk) OPENSSL_sk_free(ossl_check_POLICYQUALINFO_sk_type(sk)) -#define sk_POLICYQUALINFO_zero(sk) OPENSSL_sk_zero(ossl_check_POLICYQUALINFO_sk_type(sk)) -#define sk_POLICYQUALINFO_delete(sk, i) ((POLICYQUALINFO *)OPENSSL_sk_delete(ossl_check_POLICYQUALINFO_sk_type(sk), (i))) -#define sk_POLICYQUALINFO_delete_ptr(sk, ptr) ((POLICYQUALINFO *)OPENSSL_sk_delete_ptr(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr))) -#define sk_POLICYQUALINFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr)) -#define sk_POLICYQUALINFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr)) -#define sk_POLICYQUALINFO_pop(sk) ((POLICYQUALINFO *)OPENSSL_sk_pop(ossl_check_POLICYQUALINFO_sk_type(sk))) -#define sk_POLICYQUALINFO_shift(sk) ((POLICYQUALINFO *)OPENSSL_sk_shift(ossl_check_POLICYQUALINFO_sk_type(sk))) -#define sk_POLICYQUALINFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_freefunc_type(freefunc)) -#define sk_POLICYQUALINFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr), (idx)) -#define sk_POLICYQUALINFO_set(sk, idx, ptr) ((POLICYQUALINFO *)OPENSSL_sk_set(ossl_check_POLICYQUALINFO_sk_type(sk), (idx), ossl_check_POLICYQUALINFO_type(ptr))) -#define sk_POLICYQUALINFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr)) -#define sk_POLICYQUALINFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr)) -#define sk_POLICYQUALINFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr), pnum) -#define sk_POLICYQUALINFO_sort(sk) OPENSSL_sk_sort(ossl_check_POLICYQUALINFO_sk_type(sk)) -#define sk_POLICYQUALINFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_POLICYQUALINFO_sk_type(sk)) -#define sk_POLICYQUALINFO_dup(sk) ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_dup(ossl_check_const_POLICYQUALINFO_sk_type(sk))) -#define sk_POLICYQUALINFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_deep_copy(ossl_check_const_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_copyfunc_type(copyfunc), ossl_check_POLICYQUALINFO_freefunc_type(freefunc))) -#define sk_POLICYQUALINFO_set_cmp_func(sk, cmp) ((sk_POLICYQUALINFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_compfunc_type(cmp))) - - - -typedef struct POLICYINFO_st { - ASN1_OBJECT *policyid; - STACK_OF(POLICYQUALINFO) *qualifiers; -} POLICYINFO; - -SKM_DEFINE_STACK_OF_INTERNAL(POLICYINFO, POLICYINFO, POLICYINFO) -#define sk_POLICYINFO_num(sk) OPENSSL_sk_num(ossl_check_const_POLICYINFO_sk_type(sk)) -#define sk_POLICYINFO_value(sk, idx) ((POLICYINFO *)OPENSSL_sk_value(ossl_check_const_POLICYINFO_sk_type(sk), (idx))) -#define sk_POLICYINFO_new(cmp) ((STACK_OF(POLICYINFO) *)OPENSSL_sk_new(ossl_check_POLICYINFO_compfunc_type(cmp))) -#define sk_POLICYINFO_new_null() ((STACK_OF(POLICYINFO) *)OPENSSL_sk_new_null()) -#define sk_POLICYINFO_new_reserve(cmp, n) ((STACK_OF(POLICYINFO) *)OPENSSL_sk_new_reserve(ossl_check_POLICYINFO_compfunc_type(cmp), (n))) -#define sk_POLICYINFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_POLICYINFO_sk_type(sk), (n)) -#define sk_POLICYINFO_free(sk) OPENSSL_sk_free(ossl_check_POLICYINFO_sk_type(sk)) -#define sk_POLICYINFO_zero(sk) OPENSSL_sk_zero(ossl_check_POLICYINFO_sk_type(sk)) -#define sk_POLICYINFO_delete(sk, i) ((POLICYINFO *)OPENSSL_sk_delete(ossl_check_POLICYINFO_sk_type(sk), (i))) -#define sk_POLICYINFO_delete_ptr(sk, ptr) ((POLICYINFO *)OPENSSL_sk_delete_ptr(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr))) -#define sk_POLICYINFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr)) -#define sk_POLICYINFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr)) -#define sk_POLICYINFO_pop(sk) ((POLICYINFO *)OPENSSL_sk_pop(ossl_check_POLICYINFO_sk_type(sk))) -#define sk_POLICYINFO_shift(sk) ((POLICYINFO *)OPENSSL_sk_shift(ossl_check_POLICYINFO_sk_type(sk))) -#define sk_POLICYINFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_freefunc_type(freefunc)) -#define sk_POLICYINFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr), (idx)) -#define sk_POLICYINFO_set(sk, idx, ptr) ((POLICYINFO *)OPENSSL_sk_set(ossl_check_POLICYINFO_sk_type(sk), (idx), ossl_check_POLICYINFO_type(ptr))) -#define sk_POLICYINFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr)) -#define sk_POLICYINFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr)) -#define sk_POLICYINFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr), pnum) -#define sk_POLICYINFO_sort(sk) OPENSSL_sk_sort(ossl_check_POLICYINFO_sk_type(sk)) -#define sk_POLICYINFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_POLICYINFO_sk_type(sk)) -#define sk_POLICYINFO_dup(sk) ((STACK_OF(POLICYINFO) *)OPENSSL_sk_dup(ossl_check_const_POLICYINFO_sk_type(sk))) -#define sk_POLICYINFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(POLICYINFO) *)OPENSSL_sk_deep_copy(ossl_check_const_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_copyfunc_type(copyfunc), ossl_check_POLICYINFO_freefunc_type(freefunc))) -#define sk_POLICYINFO_set_cmp_func(sk, cmp) ((sk_POLICYINFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_compfunc_type(cmp))) - - -typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES; - -typedef struct POLICY_MAPPING_st { - ASN1_OBJECT *issuerDomainPolicy; - ASN1_OBJECT *subjectDomainPolicy; -} POLICY_MAPPING; - -SKM_DEFINE_STACK_OF_INTERNAL(POLICY_MAPPING, POLICY_MAPPING, POLICY_MAPPING) -#define sk_POLICY_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_POLICY_MAPPING_sk_type(sk)) -#define sk_POLICY_MAPPING_value(sk, idx) ((POLICY_MAPPING *)OPENSSL_sk_value(ossl_check_const_POLICY_MAPPING_sk_type(sk), (idx))) -#define sk_POLICY_MAPPING_new(cmp) ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_new(ossl_check_POLICY_MAPPING_compfunc_type(cmp))) -#define sk_POLICY_MAPPING_new_null() ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_new_null()) -#define sk_POLICY_MAPPING_new_reserve(cmp, n) ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_POLICY_MAPPING_compfunc_type(cmp), (n))) -#define sk_POLICY_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_POLICY_MAPPING_sk_type(sk), (n)) -#define sk_POLICY_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_POLICY_MAPPING_sk_type(sk)) -#define sk_POLICY_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_POLICY_MAPPING_sk_type(sk)) -#define sk_POLICY_MAPPING_delete(sk, i) ((POLICY_MAPPING *)OPENSSL_sk_delete(ossl_check_POLICY_MAPPING_sk_type(sk), (i))) -#define sk_POLICY_MAPPING_delete_ptr(sk, ptr) ((POLICY_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr))) -#define sk_POLICY_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr)) -#define sk_POLICY_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr)) -#define sk_POLICY_MAPPING_pop(sk) ((POLICY_MAPPING *)OPENSSL_sk_pop(ossl_check_POLICY_MAPPING_sk_type(sk))) -#define sk_POLICY_MAPPING_shift(sk) ((POLICY_MAPPING *)OPENSSL_sk_shift(ossl_check_POLICY_MAPPING_sk_type(sk))) -#define sk_POLICY_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_freefunc_type(freefunc)) -#define sk_POLICY_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr), (idx)) -#define sk_POLICY_MAPPING_set(sk, idx, ptr) ((POLICY_MAPPING *)OPENSSL_sk_set(ossl_check_POLICY_MAPPING_sk_type(sk), (idx), ossl_check_POLICY_MAPPING_type(ptr))) -#define sk_POLICY_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr)) -#define sk_POLICY_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr)) -#define sk_POLICY_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr), pnum) -#define sk_POLICY_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_POLICY_MAPPING_sk_type(sk)) -#define sk_POLICY_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_POLICY_MAPPING_sk_type(sk)) -#define sk_POLICY_MAPPING_dup(sk) ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_POLICY_MAPPING_sk_type(sk))) -#define sk_POLICY_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_copyfunc_type(copyfunc), ossl_check_POLICY_MAPPING_freefunc_type(freefunc))) -#define sk_POLICY_MAPPING_set_cmp_func(sk, cmp) ((sk_POLICY_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_compfunc_type(cmp))) - - -typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS; - -typedef struct GENERAL_SUBTREE_st { - GENERAL_NAME *base; - ASN1_INTEGER *minimum; - ASN1_INTEGER *maximum; -} GENERAL_SUBTREE; - -SKM_DEFINE_STACK_OF_INTERNAL(GENERAL_SUBTREE, GENERAL_SUBTREE, GENERAL_SUBTREE) -#define sk_GENERAL_SUBTREE_num(sk) OPENSSL_sk_num(ossl_check_const_GENERAL_SUBTREE_sk_type(sk)) -#define sk_GENERAL_SUBTREE_value(sk, idx) ((GENERAL_SUBTREE *)OPENSSL_sk_value(ossl_check_const_GENERAL_SUBTREE_sk_type(sk), (idx))) -#define sk_GENERAL_SUBTREE_new(cmp) ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_new(ossl_check_GENERAL_SUBTREE_compfunc_type(cmp))) -#define sk_GENERAL_SUBTREE_new_null() ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_new_null()) -#define sk_GENERAL_SUBTREE_new_reserve(cmp, n) ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_new_reserve(ossl_check_GENERAL_SUBTREE_compfunc_type(cmp), (n))) -#define sk_GENERAL_SUBTREE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_GENERAL_SUBTREE_sk_type(sk), (n)) -#define sk_GENERAL_SUBTREE_free(sk) OPENSSL_sk_free(ossl_check_GENERAL_SUBTREE_sk_type(sk)) -#define sk_GENERAL_SUBTREE_zero(sk) OPENSSL_sk_zero(ossl_check_GENERAL_SUBTREE_sk_type(sk)) -#define sk_GENERAL_SUBTREE_delete(sk, i) ((GENERAL_SUBTREE *)OPENSSL_sk_delete(ossl_check_GENERAL_SUBTREE_sk_type(sk), (i))) -#define sk_GENERAL_SUBTREE_delete_ptr(sk, ptr) ((GENERAL_SUBTREE *)OPENSSL_sk_delete_ptr(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr))) -#define sk_GENERAL_SUBTREE_push(sk, ptr) OPENSSL_sk_push(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr)) -#define sk_GENERAL_SUBTREE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr)) -#define sk_GENERAL_SUBTREE_pop(sk) ((GENERAL_SUBTREE *)OPENSSL_sk_pop(ossl_check_GENERAL_SUBTREE_sk_type(sk))) -#define sk_GENERAL_SUBTREE_shift(sk) ((GENERAL_SUBTREE *)OPENSSL_sk_shift(ossl_check_GENERAL_SUBTREE_sk_type(sk))) -#define sk_GENERAL_SUBTREE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_freefunc_type(freefunc)) -#define sk_GENERAL_SUBTREE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr), (idx)) -#define sk_GENERAL_SUBTREE_set(sk, idx, ptr) ((GENERAL_SUBTREE *)OPENSSL_sk_set(ossl_check_GENERAL_SUBTREE_sk_type(sk), (idx), ossl_check_GENERAL_SUBTREE_type(ptr))) -#define sk_GENERAL_SUBTREE_find(sk, ptr) OPENSSL_sk_find(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr)) -#define sk_GENERAL_SUBTREE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr)) -#define sk_GENERAL_SUBTREE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr), pnum) -#define sk_GENERAL_SUBTREE_sort(sk) OPENSSL_sk_sort(ossl_check_GENERAL_SUBTREE_sk_type(sk)) -#define sk_GENERAL_SUBTREE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_GENERAL_SUBTREE_sk_type(sk)) -#define sk_GENERAL_SUBTREE_dup(sk) ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_dup(ossl_check_const_GENERAL_SUBTREE_sk_type(sk))) -#define sk_GENERAL_SUBTREE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_deep_copy(ossl_check_const_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_copyfunc_type(copyfunc), ossl_check_GENERAL_SUBTREE_freefunc_type(freefunc))) -#define sk_GENERAL_SUBTREE_set_cmp_func(sk, cmp) ((sk_GENERAL_SUBTREE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_compfunc_type(cmp))) - - -struct NAME_CONSTRAINTS_st { - STACK_OF(GENERAL_SUBTREE) *permittedSubtrees; - STACK_OF(GENERAL_SUBTREE) *excludedSubtrees; -}; - -typedef struct POLICY_CONSTRAINTS_st { - ASN1_INTEGER *requireExplicitPolicy; - ASN1_INTEGER *inhibitPolicyMapping; -} POLICY_CONSTRAINTS; - -/* Proxy certificate structures, see RFC 3820 */ -typedef struct PROXY_POLICY_st { - ASN1_OBJECT *policyLanguage; - ASN1_OCTET_STRING *policy; -} PROXY_POLICY; - -typedef struct PROXY_CERT_INFO_EXTENSION_st { - ASN1_INTEGER *pcPathLengthConstraint; - PROXY_POLICY *proxyPolicy; -} PROXY_CERT_INFO_EXTENSION; - -DECLARE_ASN1_FUNCTIONS(PROXY_POLICY) -DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION) - -struct ISSUING_DIST_POINT_st { - DIST_POINT_NAME *distpoint; - int onlyuser; - int onlyCA; - ASN1_BIT_STRING *onlysomereasons; - int indirectCRL; - int onlyattr; -}; - -/* Values in idp_flags field */ -/* IDP present */ -# define IDP_PRESENT 0x1 -/* IDP values inconsistent */ -# define IDP_INVALID 0x2 -/* onlyuser true */ -# define IDP_ONLYUSER 0x4 -/* onlyCA true */ -# define IDP_ONLYCA 0x8 -/* onlyattr true */ -# define IDP_ONLYATTR 0x10 -/* indirectCRL true */ -# define IDP_INDIRECT 0x20 -/* onlysomereasons present */ -# define IDP_REASONS 0x40 - -# define X509V3_conf_err(val) ERR_add_error_data(6, \ - "section:", (val)->section, \ - ",name:", (val)->name, ",value:", (val)->value) - -# define X509V3_set_ctx_test(ctx) \ - X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, X509V3_CTX_TEST) -# define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL; - -# define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \ - 0,0,0,0, \ - 0,0, \ - (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \ - (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \ - NULL, NULL, \ - table} - -# define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \ - 0,0,0,0, \ - (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \ - (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \ - 0,0,0,0, \ - NULL} - -#define EXT_UTF8STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_UTF8STRING), \ - 0,0,0,0, \ - (X509V3_EXT_I2S)i2s_ASN1_UTF8STRING, \ - (X509V3_EXT_S2I)s2i_ASN1_UTF8STRING, \ - 0,0,0,0, \ - NULL} - -# define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} - -/* X509_PURPOSE stuff */ - -# define EXFLAG_BCONS 0x1 -# define EXFLAG_KUSAGE 0x2 -# define EXFLAG_XKUSAGE 0x4 -# define EXFLAG_NSCERT 0x8 - -# define EXFLAG_CA 0x10 -# define EXFLAG_SI 0x20 /* self-issued, maybe not self-signed */ -# define EXFLAG_V1 0x40 -# define EXFLAG_INVALID 0x80 -/* EXFLAG_SET is set to indicate that some values have been precomputed */ -# define EXFLAG_SET 0x100 -# define EXFLAG_CRITICAL 0x200 -# define EXFLAG_PROXY 0x400 - -# define EXFLAG_INVALID_POLICY 0x800 -# define EXFLAG_FRESHEST 0x1000 -# define EXFLAG_SS 0x2000 /* cert is apparently self-signed */ - -# define EXFLAG_BCONS_CRITICAL 0x10000 -# define EXFLAG_AKID_CRITICAL 0x20000 -# define EXFLAG_SKID_CRITICAL 0x40000 -# define EXFLAG_SAN_CRITICAL 0x80000 -# define EXFLAG_NO_FINGERPRINT 0x100000 - -/* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ -# define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE -# define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION -# define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT -# define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT -# define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT -# define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN -# define KU_CRL_SIGN X509v3_KU_CRL_SIGN -# define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY -# define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY - -# define NS_SSL_CLIENT 0x80 -# define NS_SSL_SERVER 0x40 -# define NS_SMIME 0x20 -# define NS_OBJSIGN 0x10 -# define NS_SSL_CA 0x04 -# define NS_SMIME_CA 0x02 -# define NS_OBJSIGN_CA 0x01 -# define NS_ANY_CA (NS_SSL_CA|NS_SMIME_CA|NS_OBJSIGN_CA) - -# define XKU_SSL_SERVER 0x1 -# define XKU_SSL_CLIENT 0x2 -# define XKU_SMIME 0x4 -# define XKU_CODE_SIGN 0x8 -# define XKU_SGC 0x10 /* Netscape or MS Server-Gated Crypto */ -# define XKU_OCSP_SIGN 0x20 -# define XKU_TIMESTAMP 0x40 -# define XKU_DVCS 0x80 -# define XKU_ANYEKU 0x100 - -# define X509_PURPOSE_DYNAMIC 0x1 -# define X509_PURPOSE_DYNAMIC_NAME 0x2 - -typedef struct x509_purpose_st { - int purpose; - int trust; /* Default trust ID */ - int flags; - int (*check_purpose) (const struct x509_purpose_st *, const X509 *, int); - char *name; - char *sname; - void *usr_data; -} X509_PURPOSE; - -SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) -#define sk_X509_PURPOSE_num(sk) OPENSSL_sk_num(ossl_check_const_X509_PURPOSE_sk_type(sk)) -#define sk_X509_PURPOSE_value(sk, idx) ((X509_PURPOSE *)OPENSSL_sk_value(ossl_check_const_X509_PURPOSE_sk_type(sk), (idx))) -#define sk_X509_PURPOSE_new(cmp) ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_new(ossl_check_X509_PURPOSE_compfunc_type(cmp))) -#define sk_X509_PURPOSE_new_null() ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_new_null()) -#define sk_X509_PURPOSE_new_reserve(cmp, n) ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_new_reserve(ossl_check_X509_PURPOSE_compfunc_type(cmp), (n))) -#define sk_X509_PURPOSE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_PURPOSE_sk_type(sk), (n)) -#define sk_X509_PURPOSE_free(sk) OPENSSL_sk_free(ossl_check_X509_PURPOSE_sk_type(sk)) -#define sk_X509_PURPOSE_zero(sk) OPENSSL_sk_zero(ossl_check_X509_PURPOSE_sk_type(sk)) -#define sk_X509_PURPOSE_delete(sk, i) ((X509_PURPOSE *)OPENSSL_sk_delete(ossl_check_X509_PURPOSE_sk_type(sk), (i))) -#define sk_X509_PURPOSE_delete_ptr(sk, ptr) ((X509_PURPOSE *)OPENSSL_sk_delete_ptr(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr))) -#define sk_X509_PURPOSE_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr)) -#define sk_X509_PURPOSE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr)) -#define sk_X509_PURPOSE_pop(sk) ((X509_PURPOSE *)OPENSSL_sk_pop(ossl_check_X509_PURPOSE_sk_type(sk))) -#define sk_X509_PURPOSE_shift(sk) ((X509_PURPOSE *)OPENSSL_sk_shift(ossl_check_X509_PURPOSE_sk_type(sk))) -#define sk_X509_PURPOSE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_freefunc_type(freefunc)) -#define sk_X509_PURPOSE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr), (idx)) -#define sk_X509_PURPOSE_set(sk, idx, ptr) ((X509_PURPOSE *)OPENSSL_sk_set(ossl_check_X509_PURPOSE_sk_type(sk), (idx), ossl_check_X509_PURPOSE_type(ptr))) -#define sk_X509_PURPOSE_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr)) -#define sk_X509_PURPOSE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr)) -#define sk_X509_PURPOSE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr), pnum) -#define sk_X509_PURPOSE_sort(sk) OPENSSL_sk_sort(ossl_check_X509_PURPOSE_sk_type(sk)) -#define sk_X509_PURPOSE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_PURPOSE_sk_type(sk)) -#define sk_X509_PURPOSE_dup(sk) ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_dup(ossl_check_const_X509_PURPOSE_sk_type(sk))) -#define sk_X509_PURPOSE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_copyfunc_type(copyfunc), ossl_check_X509_PURPOSE_freefunc_type(freefunc))) -#define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) - - -# define X509_PURPOSE_DEFAULT_ANY 0 -# define X509_PURPOSE_SSL_CLIENT 1 -# define X509_PURPOSE_SSL_SERVER 2 -# define X509_PURPOSE_NS_SSL_SERVER 3 -# define X509_PURPOSE_SMIME_SIGN 4 -# define X509_PURPOSE_SMIME_ENCRYPT 5 -# define X509_PURPOSE_CRL_SIGN 6 -# define X509_PURPOSE_ANY 7 -# define X509_PURPOSE_OCSP_HELPER 8 -# define X509_PURPOSE_TIMESTAMP_SIGN 9 -# define X509_PURPOSE_CODE_SIGN 10 - -# define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 10 - -/* Flags for X509V3_EXT_print() */ - -# define X509V3_EXT_UNKNOWN_MASK (0xfL << 16) -/* Return error for unknown extensions */ -# define X509V3_EXT_DEFAULT 0 -/* Print error for unknown extensions */ -# define X509V3_EXT_ERROR_UNKNOWN (1L << 16) -/* ASN1 parse unknown extensions */ -# define X509V3_EXT_PARSE_UNKNOWN (2L << 16) -/* BIO_dump unknown extensions */ -# define X509V3_EXT_DUMP_UNKNOWN (3L << 16) - -/* Flags for X509V3_add1_i2d */ - -# define X509V3_ADD_OP_MASK 0xfL -# define X509V3_ADD_DEFAULT 0L -# define X509V3_ADD_APPEND 1L -# define X509V3_ADD_REPLACE 2L -# define X509V3_ADD_REPLACE_EXISTING 3L -# define X509V3_ADD_KEEP_EXISTING 4L -# define X509V3_ADD_DELETE 5L -# define X509V3_ADD_SILENT 0x10 - -DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) -DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) - -DECLARE_ASN1_FUNCTIONS(SXNET) -DECLARE_ASN1_FUNCTIONS(SXNETID) - -DECLARE_ASN1_FUNCTIONS(ISSUER_SIGN_TOOL) - -int SXNET_add_id_asc(SXNET **psx, const char *zone, const char *user, int userlen); -int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, const char *user, - int userlen); -int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, const char *user, - int userlen); - -ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, const char *zone); -ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone); -ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone); - -DECLARE_ASN1_FUNCTIONS(AUTHORITY_KEYID) - -DECLARE_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD) - -DECLARE_ASN1_FUNCTIONS(GENERAL_NAME) -DECLARE_ASN1_DUP_FUNCTION(GENERAL_NAME) -int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b); - -ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, - STACK_OF(CONF_VALUE) *nval); -STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, - ASN1_BIT_STRING *bits, - STACK_OF(CONF_VALUE) *extlist); -char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method, ASN1_IA5STRING *ia5); -ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, const char *str); -char *i2s_ASN1_UTF8STRING(X509V3_EXT_METHOD *method, ASN1_UTF8STRING *utf8); -ASN1_UTF8STRING *s2i_ASN1_UTF8STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, const char *str); - -STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, - GENERAL_NAME *gen, - STACK_OF(CONF_VALUE) *ret); -int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen); - -DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES) - -STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, - GENERAL_NAMES *gen, - STACK_OF(CONF_VALUE) *extlist); -GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); - -DECLARE_ASN1_FUNCTIONS(OTHERNAME) -DECLARE_ASN1_FUNCTIONS(EDIPARTYNAME) -int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b); -void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value); -void *GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype); -int GENERAL_NAME_set0_othername(GENERAL_NAME *gen, - ASN1_OBJECT *oid, ASN1_TYPE *value); -int GENERAL_NAME_get0_otherName(const GENERAL_NAME *gen, - ASN1_OBJECT **poid, ASN1_TYPE **pvalue); - -char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, - const ASN1_OCTET_STRING *ia5); -ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, const char *str); - -DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE) -int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION *a); - -DECLARE_ASN1_ALLOC_FUNCTIONS(TLS_FEATURE) - -DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) -DECLARE_ASN1_FUNCTIONS(POLICYINFO) -DECLARE_ASN1_FUNCTIONS(POLICYQUALINFO) -DECLARE_ASN1_FUNCTIONS(USERNOTICE) -DECLARE_ASN1_FUNCTIONS(NOTICEREF) - -DECLARE_ASN1_FUNCTIONS(CRL_DIST_POINTS) -DECLARE_ASN1_FUNCTIONS(DIST_POINT) -DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME) -DECLARE_ASN1_FUNCTIONS(ISSUING_DIST_POINT) - -int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, const X509_NAME *iname); - -int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc); -int NAME_CONSTRAINTS_check_CN(X509 *x, NAME_CONSTRAINTS *nc); - -DECLARE_ASN1_FUNCTIONS(ACCESS_DESCRIPTION) -DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) - -DECLARE_ASN1_ITEM(POLICY_MAPPING) -DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING) -DECLARE_ASN1_ITEM(POLICY_MAPPINGS) - -DECLARE_ASN1_ITEM(GENERAL_SUBTREE) -DECLARE_ASN1_ALLOC_FUNCTIONS(GENERAL_SUBTREE) - -DECLARE_ASN1_ITEM(NAME_CONSTRAINTS) -DECLARE_ASN1_ALLOC_FUNCTIONS(NAME_CONSTRAINTS) - -DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS) -DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS) - -GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out, - const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, int gen_type, - const char *value, int is_nc); - -# ifdef OPENSSL_CONF_H -GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, CONF_VALUE *cnf); -GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out, - const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, CONF_VALUE *cnf, - int is_nc); - -void X509V3_conf_free(CONF_VALUE *val); - -X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, - const char *value); -X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, const char *name, - const char *value); -int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, const char *section, - STACK_OF(X509_EXTENSION) **sk); -int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, - X509 *cert); -int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, - X509_REQ *req); -int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, - X509_CRL *crl); - -X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, - X509V3_CTX *ctx, int ext_nid, - const char *value); -X509_EXTENSION *X509V3_EXT_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *name, const char *value); -int X509V3_EXT_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *section, X509 *cert); -int X509V3_EXT_REQ_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *section, X509_REQ *req); -int X509V3_EXT_CRL_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *section, X509_CRL *crl); - -int X509V3_add_value_bool_nf(const char *name, int asn1_bool, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool); -int X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint); -void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf); -void X509V3_set_conf_lhash(X509V3_CTX *ctx, LHASH_OF(CONF_VALUE) *lhash); -# endif - -char *X509V3_get_string(X509V3_CTX *ctx, const char *name, const char *section); -STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, const char *section); -void X509V3_string_free(X509V3_CTX *ctx, char *str); -void X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section); -void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject, - X509_REQ *req, X509_CRL *crl, int flags); -/* For API backward compatibility, this is separate from X509V3_set_ctx(): */ -int X509V3_set_issuer_pkey(X509V3_CTX *ctx, EVP_PKEY *pkey); - -int X509V3_add_value(const char *name, const char *value, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_uchar(const char *name, const unsigned char *value, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_bool(const char *name, int asn1_bool, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint, - STACK_OF(CONF_VALUE) **extlist); -char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const ASN1_INTEGER *aint); -ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const char *value); -char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, const ASN1_ENUMERATED *aint); -char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, - const ASN1_ENUMERATED *aint); -int X509V3_EXT_add(X509V3_EXT_METHOD *ext); -int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist); -int X509V3_EXT_add_alias(int nid_to, int nid_from); -void X509V3_EXT_cleanup(void); - -const X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext); -const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid); -int X509V3_add_standard_extensions(void); -STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line); -void *X509V3_EXT_d2i(X509_EXTENSION *ext); -void *X509V3_get_d2i(const STACK_OF(X509_EXTENSION) *x, int nid, int *crit, - int *idx); - -X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc); -int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, - int crit, unsigned long flags); - -#ifndef OPENSSL_NO_DEPRECATED_1_1_0 -/* The new declarations are in crypto.h, but the old ones were here. */ -# define hex_to_string OPENSSL_buf2hexstr -# define string_to_hex OPENSSL_hexstr2buf -#endif - -void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, - int ml); -int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, - int indent); -#ifndef OPENSSL_NO_STDIO -int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent); -#endif -int X509V3_extensions_print(BIO *out, const char *title, - const STACK_OF(X509_EXTENSION) *exts, - unsigned long flag, int indent); - -int X509_check_ca(X509 *x); -int X509_check_purpose(X509 *x, int id, int ca); -int X509_supported_extension(X509_EXTENSION *ex); -int X509_check_issued(X509 *issuer, X509 *subject); -int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); -void X509_set_proxy_flag(X509 *x); -void X509_set_proxy_pathlen(X509 *x, long l); -long X509_get_proxy_pathlen(X509 *x); - -uint32_t X509_get_extension_flags(X509 *x); -uint32_t X509_get_key_usage(X509 *x); -uint32_t X509_get_extended_key_usage(X509 *x); -const ASN1_OCTET_STRING *X509_get0_subject_key_id(X509 *x); -const ASN1_OCTET_STRING *X509_get0_authority_key_id(X509 *x); -const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); -const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); - -int X509_PURPOSE_get_count(void); -int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); -int X509_PURPOSE_get_by_sname(const char *sname); -int X509_PURPOSE_get_by_id(int id); -int X509_PURPOSE_add(int id, int trust, int flags, - int (*ck) (const X509_PURPOSE *, const X509 *, int), - const char *name, const char *sname, void *arg); -void X509_PURPOSE_cleanup(void); - -X509_PURPOSE *X509_PURPOSE_get0(int idx); -int X509_PURPOSE_get_id(const X509_PURPOSE *); -char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); -char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); -int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -int X509_PURPOSE_set(int *p, int purpose); - -STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); -STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); -void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); -STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); - -/* Flags for X509_check_* functions */ - -/* - * Always check subject name for host match even if subject alt names present - */ -# define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0x1 -/* Disable wildcard matching for dnsName fields and common name. */ -# define X509_CHECK_FLAG_NO_WILDCARDS 0x2 -/* Wildcards must not match a partial label. */ -# define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0x4 -/* Allow (non-partial) wildcards to match multiple labels. */ -# define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8 -/* Constraint verifier subdomain patterns to match a single labels. */ -# define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10 -/* Never check the subject CN */ -# define X509_CHECK_FLAG_NEVER_CHECK_SUBJECT 0x20 -/* - * Match reference identifiers starting with "." to any sub-domain. - * This is a non-public flag, turned on implicitly when the subject - * reference identity is a DNS name. - */ -# define _X509_CHECK_FLAG_DOT_SUBDOMAINS 0x8000 - -int X509_check_host(X509 *x, const char *chk, size_t chklen, - unsigned int flags, char **peername); -int X509_check_email(X509 *x, const char *chk, size_t chklen, - unsigned int flags); -int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen, - unsigned int flags); -int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags); - -ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc); -ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc); -int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE) *dn_sk, - unsigned long chtype); - -void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent); -SKM_DEFINE_STACK_OF_INTERNAL(X509_POLICY_NODE, X509_POLICY_NODE, X509_POLICY_NODE) -#define sk_X509_POLICY_NODE_num(sk) OPENSSL_sk_num(ossl_check_const_X509_POLICY_NODE_sk_type(sk)) -#define sk_X509_POLICY_NODE_value(sk, idx) ((X509_POLICY_NODE *)OPENSSL_sk_value(ossl_check_const_X509_POLICY_NODE_sk_type(sk), (idx))) -#define sk_X509_POLICY_NODE_new(cmp) ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_new(ossl_check_X509_POLICY_NODE_compfunc_type(cmp))) -#define sk_X509_POLICY_NODE_new_null() ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_new_null()) -#define sk_X509_POLICY_NODE_new_reserve(cmp, n) ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_new_reserve(ossl_check_X509_POLICY_NODE_compfunc_type(cmp), (n))) -#define sk_X509_POLICY_NODE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_POLICY_NODE_sk_type(sk), (n)) -#define sk_X509_POLICY_NODE_free(sk) OPENSSL_sk_free(ossl_check_X509_POLICY_NODE_sk_type(sk)) -#define sk_X509_POLICY_NODE_zero(sk) OPENSSL_sk_zero(ossl_check_X509_POLICY_NODE_sk_type(sk)) -#define sk_X509_POLICY_NODE_delete(sk, i) ((X509_POLICY_NODE *)OPENSSL_sk_delete(ossl_check_X509_POLICY_NODE_sk_type(sk), (i))) -#define sk_X509_POLICY_NODE_delete_ptr(sk, ptr) ((X509_POLICY_NODE *)OPENSSL_sk_delete_ptr(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr))) -#define sk_X509_POLICY_NODE_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr)) -#define sk_X509_POLICY_NODE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr)) -#define sk_X509_POLICY_NODE_pop(sk) ((X509_POLICY_NODE *)OPENSSL_sk_pop(ossl_check_X509_POLICY_NODE_sk_type(sk))) -#define sk_X509_POLICY_NODE_shift(sk) ((X509_POLICY_NODE *)OPENSSL_sk_shift(ossl_check_X509_POLICY_NODE_sk_type(sk))) -#define sk_X509_POLICY_NODE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_freefunc_type(freefunc)) -#define sk_X509_POLICY_NODE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr), (idx)) -#define sk_X509_POLICY_NODE_set(sk, idx, ptr) ((X509_POLICY_NODE *)OPENSSL_sk_set(ossl_check_X509_POLICY_NODE_sk_type(sk), (idx), ossl_check_X509_POLICY_NODE_type(ptr))) -#define sk_X509_POLICY_NODE_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr)) -#define sk_X509_POLICY_NODE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr)) -#define sk_X509_POLICY_NODE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr), pnum) -#define sk_X509_POLICY_NODE_sort(sk) OPENSSL_sk_sort(ossl_check_X509_POLICY_NODE_sk_type(sk)) -#define sk_X509_POLICY_NODE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_POLICY_NODE_sk_type(sk)) -#define sk_X509_POLICY_NODE_dup(sk) ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_dup(ossl_check_const_X509_POLICY_NODE_sk_type(sk))) -#define sk_X509_POLICY_NODE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_copyfunc_type(copyfunc), ossl_check_X509_POLICY_NODE_freefunc_type(freefunc))) -#define sk_X509_POLICY_NODE_set_cmp_func(sk, cmp) ((sk_X509_POLICY_NODE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_compfunc_type(cmp))) - - - -#ifndef OPENSSL_NO_RFC3779 -typedef struct ASRange_st { - ASN1_INTEGER *min, *max; -} ASRange; - -# define ASIdOrRange_id 0 -# define ASIdOrRange_range 1 - -typedef struct ASIdOrRange_st { - int type; - union { - ASN1_INTEGER *id; - ASRange *range; - } u; -} ASIdOrRange; - -SKM_DEFINE_STACK_OF_INTERNAL(ASIdOrRange, ASIdOrRange, ASIdOrRange) -#define sk_ASIdOrRange_num(sk) OPENSSL_sk_num(ossl_check_const_ASIdOrRange_sk_type(sk)) -#define sk_ASIdOrRange_value(sk, idx) ((ASIdOrRange *)OPENSSL_sk_value(ossl_check_const_ASIdOrRange_sk_type(sk), (idx))) -#define sk_ASIdOrRange_new(cmp) ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_new(ossl_check_ASIdOrRange_compfunc_type(cmp))) -#define sk_ASIdOrRange_new_null() ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_new_null()) -#define sk_ASIdOrRange_new_reserve(cmp, n) ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_new_reserve(ossl_check_ASIdOrRange_compfunc_type(cmp), (n))) -#define sk_ASIdOrRange_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASIdOrRange_sk_type(sk), (n)) -#define sk_ASIdOrRange_free(sk) OPENSSL_sk_free(ossl_check_ASIdOrRange_sk_type(sk)) -#define sk_ASIdOrRange_zero(sk) OPENSSL_sk_zero(ossl_check_ASIdOrRange_sk_type(sk)) -#define sk_ASIdOrRange_delete(sk, i) ((ASIdOrRange *)OPENSSL_sk_delete(ossl_check_ASIdOrRange_sk_type(sk), (i))) -#define sk_ASIdOrRange_delete_ptr(sk, ptr) ((ASIdOrRange *)OPENSSL_sk_delete_ptr(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr))) -#define sk_ASIdOrRange_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr)) -#define sk_ASIdOrRange_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr)) -#define sk_ASIdOrRange_pop(sk) ((ASIdOrRange *)OPENSSL_sk_pop(ossl_check_ASIdOrRange_sk_type(sk))) -#define sk_ASIdOrRange_shift(sk) ((ASIdOrRange *)OPENSSL_sk_shift(ossl_check_ASIdOrRange_sk_type(sk))) -#define sk_ASIdOrRange_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_freefunc_type(freefunc)) -#define sk_ASIdOrRange_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr), (idx)) -#define sk_ASIdOrRange_set(sk, idx, ptr) ((ASIdOrRange *)OPENSSL_sk_set(ossl_check_ASIdOrRange_sk_type(sk), (idx), ossl_check_ASIdOrRange_type(ptr))) -#define sk_ASIdOrRange_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr)) -#define sk_ASIdOrRange_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr)) -#define sk_ASIdOrRange_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr), pnum) -#define sk_ASIdOrRange_sort(sk) OPENSSL_sk_sort(ossl_check_ASIdOrRange_sk_type(sk)) -#define sk_ASIdOrRange_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASIdOrRange_sk_type(sk)) -#define sk_ASIdOrRange_dup(sk) ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_dup(ossl_check_const_ASIdOrRange_sk_type(sk))) -#define sk_ASIdOrRange_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_deep_copy(ossl_check_const_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_copyfunc_type(copyfunc), ossl_check_ASIdOrRange_freefunc_type(freefunc))) -#define sk_ASIdOrRange_set_cmp_func(sk, cmp) ((sk_ASIdOrRange_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_compfunc_type(cmp))) - - -typedef STACK_OF(ASIdOrRange) ASIdOrRanges; - -# define ASIdentifierChoice_inherit 0 -# define ASIdentifierChoice_asIdsOrRanges 1 - -typedef struct ASIdentifierChoice_st { - int type; - union { - ASN1_NULL *inherit; - ASIdOrRanges *asIdsOrRanges; - } u; -} ASIdentifierChoice; - -typedef struct ASIdentifiers_st { - ASIdentifierChoice *asnum, *rdi; -} ASIdentifiers; - -DECLARE_ASN1_FUNCTIONS(ASRange) -DECLARE_ASN1_FUNCTIONS(ASIdOrRange) -DECLARE_ASN1_FUNCTIONS(ASIdentifierChoice) -DECLARE_ASN1_FUNCTIONS(ASIdentifiers) - -typedef struct IPAddressRange_st { - ASN1_BIT_STRING *min, *max; -} IPAddressRange; - -# define IPAddressOrRange_addressPrefix 0 -# define IPAddressOrRange_addressRange 1 - -typedef struct IPAddressOrRange_st { - int type; - union { - ASN1_BIT_STRING *addressPrefix; - IPAddressRange *addressRange; - } u; -} IPAddressOrRange; - -SKM_DEFINE_STACK_OF_INTERNAL(IPAddressOrRange, IPAddressOrRange, IPAddressOrRange) -#define sk_IPAddressOrRange_num(sk) OPENSSL_sk_num(ossl_check_const_IPAddressOrRange_sk_type(sk)) -#define sk_IPAddressOrRange_value(sk, idx) ((IPAddressOrRange *)OPENSSL_sk_value(ossl_check_const_IPAddressOrRange_sk_type(sk), (idx))) -#define sk_IPAddressOrRange_new(cmp) ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_new(ossl_check_IPAddressOrRange_compfunc_type(cmp))) -#define sk_IPAddressOrRange_new_null() ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_new_null()) -#define sk_IPAddressOrRange_new_reserve(cmp, n) ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_new_reserve(ossl_check_IPAddressOrRange_compfunc_type(cmp), (n))) -#define sk_IPAddressOrRange_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_IPAddressOrRange_sk_type(sk), (n)) -#define sk_IPAddressOrRange_free(sk) OPENSSL_sk_free(ossl_check_IPAddressOrRange_sk_type(sk)) -#define sk_IPAddressOrRange_zero(sk) OPENSSL_sk_zero(ossl_check_IPAddressOrRange_sk_type(sk)) -#define sk_IPAddressOrRange_delete(sk, i) ((IPAddressOrRange *)OPENSSL_sk_delete(ossl_check_IPAddressOrRange_sk_type(sk), (i))) -#define sk_IPAddressOrRange_delete_ptr(sk, ptr) ((IPAddressOrRange *)OPENSSL_sk_delete_ptr(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr))) -#define sk_IPAddressOrRange_push(sk, ptr) OPENSSL_sk_push(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr)) -#define sk_IPAddressOrRange_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr)) -#define sk_IPAddressOrRange_pop(sk) ((IPAddressOrRange *)OPENSSL_sk_pop(ossl_check_IPAddressOrRange_sk_type(sk))) -#define sk_IPAddressOrRange_shift(sk) ((IPAddressOrRange *)OPENSSL_sk_shift(ossl_check_IPAddressOrRange_sk_type(sk))) -#define sk_IPAddressOrRange_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_freefunc_type(freefunc)) -#define sk_IPAddressOrRange_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr), (idx)) -#define sk_IPAddressOrRange_set(sk, idx, ptr) ((IPAddressOrRange *)OPENSSL_sk_set(ossl_check_IPAddressOrRange_sk_type(sk), (idx), ossl_check_IPAddressOrRange_type(ptr))) -#define sk_IPAddressOrRange_find(sk, ptr) OPENSSL_sk_find(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr)) -#define sk_IPAddressOrRange_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr)) -#define sk_IPAddressOrRange_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr), pnum) -#define sk_IPAddressOrRange_sort(sk) OPENSSL_sk_sort(ossl_check_IPAddressOrRange_sk_type(sk)) -#define sk_IPAddressOrRange_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_IPAddressOrRange_sk_type(sk)) -#define sk_IPAddressOrRange_dup(sk) ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_dup(ossl_check_const_IPAddressOrRange_sk_type(sk))) -#define sk_IPAddressOrRange_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_deep_copy(ossl_check_const_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_copyfunc_type(copyfunc), ossl_check_IPAddressOrRange_freefunc_type(freefunc))) -#define sk_IPAddressOrRange_set_cmp_func(sk, cmp) ((sk_IPAddressOrRange_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_compfunc_type(cmp))) - - -typedef STACK_OF(IPAddressOrRange) IPAddressOrRanges; - -# define IPAddressChoice_inherit 0 -# define IPAddressChoice_addressesOrRanges 1 - -typedef struct IPAddressChoice_st { - int type; - union { - ASN1_NULL *inherit; - IPAddressOrRanges *addressesOrRanges; - } u; -} IPAddressChoice; - -typedef struct IPAddressFamily_st { - ASN1_OCTET_STRING *addressFamily; - IPAddressChoice *ipAddressChoice; -} IPAddressFamily; - -SKM_DEFINE_STACK_OF_INTERNAL(IPAddressFamily, IPAddressFamily, IPAddressFamily) -#define sk_IPAddressFamily_num(sk) OPENSSL_sk_num(ossl_check_const_IPAddressFamily_sk_type(sk)) -#define sk_IPAddressFamily_value(sk, idx) ((IPAddressFamily *)OPENSSL_sk_value(ossl_check_const_IPAddressFamily_sk_type(sk), (idx))) -#define sk_IPAddressFamily_new(cmp) ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_new(ossl_check_IPAddressFamily_compfunc_type(cmp))) -#define sk_IPAddressFamily_new_null() ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_new_null()) -#define sk_IPAddressFamily_new_reserve(cmp, n) ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_new_reserve(ossl_check_IPAddressFamily_compfunc_type(cmp), (n))) -#define sk_IPAddressFamily_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_IPAddressFamily_sk_type(sk), (n)) -#define sk_IPAddressFamily_free(sk) OPENSSL_sk_free(ossl_check_IPAddressFamily_sk_type(sk)) -#define sk_IPAddressFamily_zero(sk) OPENSSL_sk_zero(ossl_check_IPAddressFamily_sk_type(sk)) -#define sk_IPAddressFamily_delete(sk, i) ((IPAddressFamily *)OPENSSL_sk_delete(ossl_check_IPAddressFamily_sk_type(sk), (i))) -#define sk_IPAddressFamily_delete_ptr(sk, ptr) ((IPAddressFamily *)OPENSSL_sk_delete_ptr(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr))) -#define sk_IPAddressFamily_push(sk, ptr) OPENSSL_sk_push(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr)) -#define sk_IPAddressFamily_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr)) -#define sk_IPAddressFamily_pop(sk) ((IPAddressFamily *)OPENSSL_sk_pop(ossl_check_IPAddressFamily_sk_type(sk))) -#define sk_IPAddressFamily_shift(sk) ((IPAddressFamily *)OPENSSL_sk_shift(ossl_check_IPAddressFamily_sk_type(sk))) -#define sk_IPAddressFamily_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_freefunc_type(freefunc)) -#define sk_IPAddressFamily_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr), (idx)) -#define sk_IPAddressFamily_set(sk, idx, ptr) ((IPAddressFamily *)OPENSSL_sk_set(ossl_check_IPAddressFamily_sk_type(sk), (idx), ossl_check_IPAddressFamily_type(ptr))) -#define sk_IPAddressFamily_find(sk, ptr) OPENSSL_sk_find(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr)) -#define sk_IPAddressFamily_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr)) -#define sk_IPAddressFamily_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr), pnum) -#define sk_IPAddressFamily_sort(sk) OPENSSL_sk_sort(ossl_check_IPAddressFamily_sk_type(sk)) -#define sk_IPAddressFamily_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_IPAddressFamily_sk_type(sk)) -#define sk_IPAddressFamily_dup(sk) ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_dup(ossl_check_const_IPAddressFamily_sk_type(sk))) -#define sk_IPAddressFamily_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_deep_copy(ossl_check_const_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_copyfunc_type(copyfunc), ossl_check_IPAddressFamily_freefunc_type(freefunc))) -#define sk_IPAddressFamily_set_cmp_func(sk, cmp) ((sk_IPAddressFamily_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_compfunc_type(cmp))) - - - -typedef STACK_OF(IPAddressFamily) IPAddrBlocks; - -DECLARE_ASN1_FUNCTIONS(IPAddressRange) -DECLARE_ASN1_FUNCTIONS(IPAddressOrRange) -DECLARE_ASN1_FUNCTIONS(IPAddressChoice) -DECLARE_ASN1_FUNCTIONS(IPAddressFamily) - -/* - * API tag for elements of the ASIdentifer SEQUENCE. - */ -# define V3_ASID_ASNUM 0 -# define V3_ASID_RDI 1 - -/* - * AFI values, assigned by IANA. It'd be nice to make the AFI - * handling code totally generic, but there are too many little things - * that would need to be defined for other address families for it to - * be worth the trouble. - */ -# define IANA_AFI_IPV4 1 -# define IANA_AFI_IPV6 2 - -/* - * Utilities to construct and extract values from RFC3779 extensions, - * since some of the encodings (particularly for IP address prefixes - * and ranges) are a bit tedious to work with directly. - */ -int X509v3_asid_add_inherit(ASIdentifiers *asid, int which); -int X509v3_asid_add_id_or_range(ASIdentifiers *asid, int which, - ASN1_INTEGER *min, ASN1_INTEGER *max); -int X509v3_addr_add_inherit(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi); -int X509v3_addr_add_prefix(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi, - unsigned char *a, const int prefixlen); -int X509v3_addr_add_range(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi, - unsigned char *min, unsigned char *max); -unsigned X509v3_addr_get_afi(const IPAddressFamily *f); -int X509v3_addr_get_range(IPAddressOrRange *aor, const unsigned afi, - unsigned char *min, unsigned char *max, - const int length); - -/* - * Canonical forms. - */ -int X509v3_asid_is_canonical(ASIdentifiers *asid); -int X509v3_addr_is_canonical(IPAddrBlocks *addr); -int X509v3_asid_canonize(ASIdentifiers *asid); -int X509v3_addr_canonize(IPAddrBlocks *addr); - -/* - * Tests for inheritance and containment. - */ -int X509v3_asid_inherits(ASIdentifiers *asid); -int X509v3_addr_inherits(IPAddrBlocks *addr); -int X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b); -int X509v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b); - -/* - * Check whether RFC 3779 extensions nest properly in chains. - */ -int X509v3_asid_validate_path(X509_STORE_CTX *); -int X509v3_addr_validate_path(X509_STORE_CTX *); -int X509v3_asid_validate_resource_set(STACK_OF(X509) *chain, - ASIdentifiers *ext, - int allow_inheritance); -int X509v3_addr_validate_resource_set(STACK_OF(X509) *chain, - IPAddrBlocks *ext, int allow_inheritance); - -#endif /* OPENSSL_NO_RFC3779 */ - -SKM_DEFINE_STACK_OF_INTERNAL(ASN1_STRING, ASN1_STRING, ASN1_STRING) -#define sk_ASN1_STRING_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_STRING_sk_type(sk)) -#define sk_ASN1_STRING_value(sk, idx) ((ASN1_STRING *)OPENSSL_sk_value(ossl_check_const_ASN1_STRING_sk_type(sk), (idx))) -#define sk_ASN1_STRING_new(cmp) ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_new(ossl_check_ASN1_STRING_compfunc_type(cmp))) -#define sk_ASN1_STRING_new_null() ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_new_null()) -#define sk_ASN1_STRING_new_reserve(cmp, n) ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_STRING_compfunc_type(cmp), (n))) -#define sk_ASN1_STRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_STRING_sk_type(sk), (n)) -#define sk_ASN1_STRING_free(sk) OPENSSL_sk_free(ossl_check_ASN1_STRING_sk_type(sk)) -#define sk_ASN1_STRING_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_STRING_sk_type(sk)) -#define sk_ASN1_STRING_delete(sk, i) ((ASN1_STRING *)OPENSSL_sk_delete(ossl_check_ASN1_STRING_sk_type(sk), (i))) -#define sk_ASN1_STRING_delete_ptr(sk, ptr) ((ASN1_STRING *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr))) -#define sk_ASN1_STRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr)) -#define sk_ASN1_STRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr)) -#define sk_ASN1_STRING_pop(sk) ((ASN1_STRING *)OPENSSL_sk_pop(ossl_check_ASN1_STRING_sk_type(sk))) -#define sk_ASN1_STRING_shift(sk) ((ASN1_STRING *)OPENSSL_sk_shift(ossl_check_ASN1_STRING_sk_type(sk))) -#define sk_ASN1_STRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_freefunc_type(freefunc)) -#define sk_ASN1_STRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr), (idx)) -#define sk_ASN1_STRING_set(sk, idx, ptr) ((ASN1_STRING *)OPENSSL_sk_set(ossl_check_ASN1_STRING_sk_type(sk), (idx), ossl_check_ASN1_STRING_type(ptr))) -#define sk_ASN1_STRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr)) -#define sk_ASN1_STRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr)) -#define sk_ASN1_STRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr), pnum) -#define sk_ASN1_STRING_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_STRING_sk_type(sk)) -#define sk_ASN1_STRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_STRING_sk_type(sk)) -#define sk_ASN1_STRING_dup(sk) ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_dup(ossl_check_const_ASN1_STRING_sk_type(sk))) -#define sk_ASN1_STRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_copyfunc_type(copyfunc), ossl_check_ASN1_STRING_freefunc_type(freefunc))) -#define sk_ASN1_STRING_set_cmp_func(sk, cmp) ((sk_ASN1_STRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_compfunc_type(cmp))) - - -/* - * Admission Syntax - */ -typedef struct NamingAuthority_st NAMING_AUTHORITY; -typedef struct ProfessionInfo_st PROFESSION_INFO; -typedef struct Admissions_st ADMISSIONS; -typedef struct AdmissionSyntax_st ADMISSION_SYNTAX; -DECLARE_ASN1_FUNCTIONS(NAMING_AUTHORITY) -DECLARE_ASN1_FUNCTIONS(PROFESSION_INFO) -DECLARE_ASN1_FUNCTIONS(ADMISSIONS) -DECLARE_ASN1_FUNCTIONS(ADMISSION_SYNTAX) -SKM_DEFINE_STACK_OF_INTERNAL(PROFESSION_INFO, PROFESSION_INFO, PROFESSION_INFO) -#define sk_PROFESSION_INFO_num(sk) OPENSSL_sk_num(ossl_check_const_PROFESSION_INFO_sk_type(sk)) -#define sk_PROFESSION_INFO_value(sk, idx) ((PROFESSION_INFO *)OPENSSL_sk_value(ossl_check_const_PROFESSION_INFO_sk_type(sk), (idx))) -#define sk_PROFESSION_INFO_new(cmp) ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_new(ossl_check_PROFESSION_INFO_compfunc_type(cmp))) -#define sk_PROFESSION_INFO_new_null() ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_new_null()) -#define sk_PROFESSION_INFO_new_reserve(cmp, n) ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_new_reserve(ossl_check_PROFESSION_INFO_compfunc_type(cmp), (n))) -#define sk_PROFESSION_INFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_PROFESSION_INFO_sk_type(sk), (n)) -#define sk_PROFESSION_INFO_free(sk) OPENSSL_sk_free(ossl_check_PROFESSION_INFO_sk_type(sk)) -#define sk_PROFESSION_INFO_zero(sk) OPENSSL_sk_zero(ossl_check_PROFESSION_INFO_sk_type(sk)) -#define sk_PROFESSION_INFO_delete(sk, i) ((PROFESSION_INFO *)OPENSSL_sk_delete(ossl_check_PROFESSION_INFO_sk_type(sk), (i))) -#define sk_PROFESSION_INFO_delete_ptr(sk, ptr) ((PROFESSION_INFO *)OPENSSL_sk_delete_ptr(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr))) -#define sk_PROFESSION_INFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr)) -#define sk_PROFESSION_INFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr)) -#define sk_PROFESSION_INFO_pop(sk) ((PROFESSION_INFO *)OPENSSL_sk_pop(ossl_check_PROFESSION_INFO_sk_type(sk))) -#define sk_PROFESSION_INFO_shift(sk) ((PROFESSION_INFO *)OPENSSL_sk_shift(ossl_check_PROFESSION_INFO_sk_type(sk))) -#define sk_PROFESSION_INFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_freefunc_type(freefunc)) -#define sk_PROFESSION_INFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr), (idx)) -#define sk_PROFESSION_INFO_set(sk, idx, ptr) ((PROFESSION_INFO *)OPENSSL_sk_set(ossl_check_PROFESSION_INFO_sk_type(sk), (idx), ossl_check_PROFESSION_INFO_type(ptr))) -#define sk_PROFESSION_INFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr)) -#define sk_PROFESSION_INFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr)) -#define sk_PROFESSION_INFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr), pnum) -#define sk_PROFESSION_INFO_sort(sk) OPENSSL_sk_sort(ossl_check_PROFESSION_INFO_sk_type(sk)) -#define sk_PROFESSION_INFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_PROFESSION_INFO_sk_type(sk)) -#define sk_PROFESSION_INFO_dup(sk) ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_dup(ossl_check_const_PROFESSION_INFO_sk_type(sk))) -#define sk_PROFESSION_INFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_deep_copy(ossl_check_const_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_copyfunc_type(copyfunc), ossl_check_PROFESSION_INFO_freefunc_type(freefunc))) -#define sk_PROFESSION_INFO_set_cmp_func(sk, cmp) ((sk_PROFESSION_INFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_compfunc_type(cmp))) -SKM_DEFINE_STACK_OF_INTERNAL(ADMISSIONS, ADMISSIONS, ADMISSIONS) -#define sk_ADMISSIONS_num(sk) OPENSSL_sk_num(ossl_check_const_ADMISSIONS_sk_type(sk)) -#define sk_ADMISSIONS_value(sk, idx) ((ADMISSIONS *)OPENSSL_sk_value(ossl_check_const_ADMISSIONS_sk_type(sk), (idx))) -#define sk_ADMISSIONS_new(cmp) ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_new(ossl_check_ADMISSIONS_compfunc_type(cmp))) -#define sk_ADMISSIONS_new_null() ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_new_null()) -#define sk_ADMISSIONS_new_reserve(cmp, n) ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_new_reserve(ossl_check_ADMISSIONS_compfunc_type(cmp), (n))) -#define sk_ADMISSIONS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ADMISSIONS_sk_type(sk), (n)) -#define sk_ADMISSIONS_free(sk) OPENSSL_sk_free(ossl_check_ADMISSIONS_sk_type(sk)) -#define sk_ADMISSIONS_zero(sk) OPENSSL_sk_zero(ossl_check_ADMISSIONS_sk_type(sk)) -#define sk_ADMISSIONS_delete(sk, i) ((ADMISSIONS *)OPENSSL_sk_delete(ossl_check_ADMISSIONS_sk_type(sk), (i))) -#define sk_ADMISSIONS_delete_ptr(sk, ptr) ((ADMISSIONS *)OPENSSL_sk_delete_ptr(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr))) -#define sk_ADMISSIONS_push(sk, ptr) OPENSSL_sk_push(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr)) -#define sk_ADMISSIONS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr)) -#define sk_ADMISSIONS_pop(sk) ((ADMISSIONS *)OPENSSL_sk_pop(ossl_check_ADMISSIONS_sk_type(sk))) -#define sk_ADMISSIONS_shift(sk) ((ADMISSIONS *)OPENSSL_sk_shift(ossl_check_ADMISSIONS_sk_type(sk))) -#define sk_ADMISSIONS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_freefunc_type(freefunc)) -#define sk_ADMISSIONS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr), (idx)) -#define sk_ADMISSIONS_set(sk, idx, ptr) ((ADMISSIONS *)OPENSSL_sk_set(ossl_check_ADMISSIONS_sk_type(sk), (idx), ossl_check_ADMISSIONS_type(ptr))) -#define sk_ADMISSIONS_find(sk, ptr) OPENSSL_sk_find(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr)) -#define sk_ADMISSIONS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr)) -#define sk_ADMISSIONS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr), pnum) -#define sk_ADMISSIONS_sort(sk) OPENSSL_sk_sort(ossl_check_ADMISSIONS_sk_type(sk)) -#define sk_ADMISSIONS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ADMISSIONS_sk_type(sk)) -#define sk_ADMISSIONS_dup(sk) ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_dup(ossl_check_const_ADMISSIONS_sk_type(sk))) -#define sk_ADMISSIONS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_deep_copy(ossl_check_const_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_copyfunc_type(copyfunc), ossl_check_ADMISSIONS_freefunc_type(freefunc))) -#define sk_ADMISSIONS_set_cmp_func(sk, cmp) ((sk_ADMISSIONS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_compfunc_type(cmp))) - -typedef STACK_OF(PROFESSION_INFO) PROFESSION_INFOS; - -const ASN1_OBJECT *NAMING_AUTHORITY_get0_authorityId( - const NAMING_AUTHORITY *n); -const ASN1_IA5STRING *NAMING_AUTHORITY_get0_authorityURL( - const NAMING_AUTHORITY *n); -const ASN1_STRING *NAMING_AUTHORITY_get0_authorityText( - const NAMING_AUTHORITY *n); -void NAMING_AUTHORITY_set0_authorityId(NAMING_AUTHORITY *n, - ASN1_OBJECT* namingAuthorityId); -void NAMING_AUTHORITY_set0_authorityURL(NAMING_AUTHORITY *n, - ASN1_IA5STRING* namingAuthorityUrl); -void NAMING_AUTHORITY_set0_authorityText(NAMING_AUTHORITY *n, - ASN1_STRING* namingAuthorityText); - -const GENERAL_NAME *ADMISSION_SYNTAX_get0_admissionAuthority( - const ADMISSION_SYNTAX *as); -void ADMISSION_SYNTAX_set0_admissionAuthority( - ADMISSION_SYNTAX *as, GENERAL_NAME *aa); -const STACK_OF(ADMISSIONS) *ADMISSION_SYNTAX_get0_contentsOfAdmissions( - const ADMISSION_SYNTAX *as); -void ADMISSION_SYNTAX_set0_contentsOfAdmissions( - ADMISSION_SYNTAX *as, STACK_OF(ADMISSIONS) *a); -const GENERAL_NAME *ADMISSIONS_get0_admissionAuthority(const ADMISSIONS *a); -void ADMISSIONS_set0_admissionAuthority(ADMISSIONS *a, GENERAL_NAME *aa); -const NAMING_AUTHORITY *ADMISSIONS_get0_namingAuthority(const ADMISSIONS *a); -void ADMISSIONS_set0_namingAuthority(ADMISSIONS *a, NAMING_AUTHORITY *na); -const PROFESSION_INFOS *ADMISSIONS_get0_professionInfos(const ADMISSIONS *a); -void ADMISSIONS_set0_professionInfos(ADMISSIONS *a, PROFESSION_INFOS *pi); -const ASN1_OCTET_STRING *PROFESSION_INFO_get0_addProfessionInfo( - const PROFESSION_INFO *pi); -void PROFESSION_INFO_set0_addProfessionInfo( - PROFESSION_INFO *pi, ASN1_OCTET_STRING *aos); -const NAMING_AUTHORITY *PROFESSION_INFO_get0_namingAuthority( - const PROFESSION_INFO *pi); -void PROFESSION_INFO_set0_namingAuthority( - PROFESSION_INFO *pi, NAMING_AUTHORITY *na); -const STACK_OF(ASN1_STRING) *PROFESSION_INFO_get0_professionItems( - const PROFESSION_INFO *pi); -void PROFESSION_INFO_set0_professionItems( - PROFESSION_INFO *pi, STACK_OF(ASN1_STRING) *as); -const STACK_OF(ASN1_OBJECT) *PROFESSION_INFO_get0_professionOIDs( - const PROFESSION_INFO *pi); -void PROFESSION_INFO_set0_professionOIDs( - PROFESSION_INFO *pi, STACK_OF(ASN1_OBJECT) *po); -const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( - const PROFESSION_INFO *pi); -void PROFESSION_INFO_set0_registrationNumber( - PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); - -int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); - -typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; -DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) - -typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; -DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) - -SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) -#define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) -#define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) -#define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) -#define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) -#define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) -#define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) -#define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) -#define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) -#define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) -#define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) -#define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) -#define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) -#define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) -#define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) -#define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_freefunc_type(freefunc)) -#define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) -#define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) -#define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) -#define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) -#define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) -#define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) -#define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) -#define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) -#define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) -#define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) - - -typedef struct OSSL_ROLE_SPEC_CERT_ID_st { - GENERAL_NAME *roleName; - GENERAL_NAME *roleCertIssuer; - ASN1_INTEGER *roleCertSerialNumber; - GENERAL_NAMES *roleCertLocator; -} OSSL_ROLE_SPEC_CERT_ID; - -DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) - -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) -#define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) -#define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) -#define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) -#define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) -#define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) - - -typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; - -DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) -typedef struct OSSL_HASH_st { - X509_ALGOR *algorithmIdentifier; - ASN1_BIT_STRING *hashValue; -} OSSL_HASH; - -typedef struct OSSL_INFO_SYNTAX_POINTER_st { - GENERAL_NAMES *name; - OSSL_HASH *hash; -} OSSL_INFO_SYNTAX_POINTER; - -# define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 -# define OSSL_INFO_SYNTAX_TYPE_POINTER 1 - -typedef struct OSSL_INFO_SYNTAX_st { - int type; - union { - ASN1_STRING *content; - OSSL_INFO_SYNTAX_POINTER *pointer; - } choice; -} OSSL_INFO_SYNTAX; - -typedef struct OSSL_PRIVILEGE_POLICY_ID_st { - ASN1_OBJECT *privilegePolicy; - OSSL_INFO_SYNTAX *privPolSyntax; -} OSSL_PRIVILEGE_POLICY_ID; - -typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { - ASN1_OBJECT *identifier; - ASN1_STRING *attributeSyntax; - ASN1_UTF8STRING *name; - ASN1_UTF8STRING *description; - OSSL_PRIVILEGE_POLICY_ID *dominationRule; -} OSSL_ATTRIBUTE_DESCRIPTOR; - -DECLARE_ASN1_FUNCTIONS(OSSL_HASH) -DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) -DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) -DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) -DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) - -typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { - ASN1_GENERALIZEDTIME *startTime; - ASN1_GENERALIZEDTIME *endTime; -} OSSL_TIME_SPEC_ABSOLUTE; - -typedef struct OSSL_DAY_TIME_st { - ASN1_INTEGER *hour; - ASN1_INTEGER *minute; - ASN1_INTEGER *second; -} OSSL_DAY_TIME; - -typedef struct OSSL_DAY_TIME_BAND_st { - OSSL_DAY_TIME *startDayTime; - OSSL_DAY_TIME *endDayTime; -} OSSL_DAY_TIME_BAND; - -# define OSSL_NAMED_DAY_TYPE_INT 0 -# define OSSL_NAMED_DAY_TYPE_BIT 1 -# define OSSL_NAMED_DAY_INT_SUN 1 -# define OSSL_NAMED_DAY_INT_MON 2 -# define OSSL_NAMED_DAY_INT_TUE 3 -# define OSSL_NAMED_DAY_INT_WED 4 -# define OSSL_NAMED_DAY_INT_THU 5 -# define OSSL_NAMED_DAY_INT_FRI 6 -# define OSSL_NAMED_DAY_INT_SAT 7 -# define OSSL_NAMED_DAY_BIT_SUN 0 -# define OSSL_NAMED_DAY_BIT_MON 1 -# define OSSL_NAMED_DAY_BIT_TUE 2 -# define OSSL_NAMED_DAY_BIT_WED 3 -# define OSSL_NAMED_DAY_BIT_THU 4 -# define OSSL_NAMED_DAY_BIT_FRI 5 -# define OSSL_NAMED_DAY_BIT_SAT 6 - -typedef struct OSSL_NAMED_DAY_st { - int type; - union { - ASN1_INTEGER *intNamedDays; - ASN1_BIT_STRING *bitNamedDays; - } choice; -} OSSL_NAMED_DAY; - -# define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 -# define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 -# define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 -# define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 -# define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 - -typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { - int type; - union { - OSSL_NAMED_DAY *first; - OSSL_NAMED_DAY *second; - OSSL_NAMED_DAY *third; - OSSL_NAMED_DAY *fourth; - OSSL_NAMED_DAY *fifth; - } choice; -} OSSL_TIME_SPEC_X_DAY_OF; - -# define OSSL_TIME_SPEC_DAY_TYPE_INT 0 -# define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 -# define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 -# define OSSL_TIME_SPEC_DAY_BIT_SUN 0 -# define OSSL_TIME_SPEC_DAY_BIT_MON 1 -# define OSSL_TIME_SPEC_DAY_BIT_TUE 2 -# define OSSL_TIME_SPEC_DAY_BIT_WED 3 -# define OSSL_TIME_SPEC_DAY_BIT_THU 4 -# define OSSL_TIME_SPEC_DAY_BIT_FRI 5 -# define OSSL_TIME_SPEC_DAY_BIT_SAT 6 -# define OSSL_TIME_SPEC_DAY_INT_SUN 1 -# define OSSL_TIME_SPEC_DAY_INT_MON 2 -# define OSSL_TIME_SPEC_DAY_INT_TUE 3 -# define OSSL_TIME_SPEC_DAY_INT_WED 4 -# define OSSL_TIME_SPEC_DAY_INT_THU 5 -# define OSSL_TIME_SPEC_DAY_INT_FRI 6 -# define OSSL_TIME_SPEC_DAY_INT_SAT 7 - -typedef struct OSSL_TIME_SPEC_DAY_st { - int type; - union { - STACK_OF(ASN1_INTEGER) *intDay; - ASN1_BIT_STRING *bitDay; - OSSL_TIME_SPEC_X_DAY_OF *dayOf; - } choice; -} OSSL_TIME_SPEC_DAY; - -# define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 -# define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 -# define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 -# define OSSL_TIME_SPEC_BIT_WEEKS_1 0 -# define OSSL_TIME_SPEC_BIT_WEEKS_2 1 -# define OSSL_TIME_SPEC_BIT_WEEKS_3 2 -# define OSSL_TIME_SPEC_BIT_WEEKS_4 3 -# define OSSL_TIME_SPEC_BIT_WEEKS_5 4 - -typedef struct OSSL_TIME_SPEC_WEEKS_st { - int type; - union { - ASN1_NULL *allWeeks; - STACK_OF(ASN1_INTEGER) *intWeek; - ASN1_BIT_STRING *bitWeek; - } choice; -} OSSL_TIME_SPEC_WEEKS; - -# define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 -# define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 -# define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 -# define OSSL_TIME_SPEC_INT_MONTH_JAN 1 -# define OSSL_TIME_SPEC_INT_MONTH_FEB 2 -# define OSSL_TIME_SPEC_INT_MONTH_MAR 3 -# define OSSL_TIME_SPEC_INT_MONTH_APR 4 -# define OSSL_TIME_SPEC_INT_MONTH_MAY 5 -# define OSSL_TIME_SPEC_INT_MONTH_JUN 6 -# define OSSL_TIME_SPEC_INT_MONTH_JUL 7 -# define OSSL_TIME_SPEC_INT_MONTH_AUG 8 -# define OSSL_TIME_SPEC_INT_MONTH_SEP 9 -# define OSSL_TIME_SPEC_INT_MONTH_OCT 10 -# define OSSL_TIME_SPEC_INT_MONTH_NOV 11 -# define OSSL_TIME_SPEC_INT_MONTH_DEC 12 -# define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 -# define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 -# define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 -# define OSSL_TIME_SPEC_BIT_MONTH_APR 3 -# define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 -# define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 -# define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 -# define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 -# define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 -# define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 -# define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 -# define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 - -typedef struct OSSL_TIME_SPEC_MONTH_st { - int type; - union { - ASN1_NULL *allMonths; - STACK_OF(ASN1_INTEGER) *intMonth; - ASN1_BIT_STRING *bitMonth; - } choice; -} OSSL_TIME_SPEC_MONTH; - -typedef struct OSSL_TIME_PERIOD_st { - STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; - OSSL_TIME_SPEC_DAY *days; - OSSL_TIME_SPEC_WEEKS *weeks; - OSSL_TIME_SPEC_MONTH *months; - STACK_OF(ASN1_INTEGER) *years; -} OSSL_TIME_PERIOD; - -# define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 -# define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 - -typedef struct OSSL_TIME_SPEC_TIME_st { - int type; - union { - OSSL_TIME_SPEC_ABSOLUTE *absolute; - STACK_OF(OSSL_TIME_PERIOD) *periodic; - } choice; -} OSSL_TIME_SPEC_TIME; - -typedef struct OSSL_TIME_SPEC_st { - OSSL_TIME_SPEC_TIME *time; - ASN1_BOOLEAN notThisTime; - ASN1_INTEGER *timeZone; -} OSSL_TIME_SPEC; - -DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) -DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) -DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) -DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) -DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) -DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) -DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) -DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) -DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) -DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) -DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) - -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) -#define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) -#define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) -#define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) -#define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) -#define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) -#define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) -#define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) -#define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) -#define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) -#define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) -#define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) -#define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) -#define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) -#define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) -#define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) -#define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) -#define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) -#define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) -#define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) -#define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) -#define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) -#define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) -#define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) -#define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) -#define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) - - -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) -#define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) -#define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) -#define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) -#define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) -#define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) -#define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) -#define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) -#define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) -#define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) -#define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) -#define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) -#define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) -#define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) -#define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) -#define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) -#define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) -#define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) -#define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) -#define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) -#define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) -#define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) -#define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) -#define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) -#define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) -#define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) - - -/* Attribute Type and Value */ -typedef struct atav_st { - ASN1_OBJECT *type; - ASN1_TYPE *value; -} OSSL_ATAV; - -typedef struct ATTRIBUTE_TYPE_MAPPING_st { - ASN1_OBJECT *local; - ASN1_OBJECT *remote; -} OSSL_ATTRIBUTE_TYPE_MAPPING; - -typedef struct ATTRIBUTE_VALUE_MAPPING_st { - OSSL_ATAV *local; - OSSL_ATAV *remote; -} OSSL_ATTRIBUTE_VALUE_MAPPING; - -# define OSSL_ATTR_MAP_TYPE 0 -# define OSSL_ATTR_MAP_VALUE 1 - -typedef struct ATTRIBUTE_MAPPING_st { - int type; - union { - OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; - OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; - } choice; -} OSSL_ATTRIBUTE_MAPPING; - -typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; -DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) -DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) -DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) -DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) -DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) - -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) -#define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) -#define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) -#define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) -#define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) -#define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) -#define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) -#define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) -#define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) -#define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) -#define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) -#define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) -#define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) -#define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) -#define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) -#define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) -#define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) -#define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) -#define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) -#define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) -#define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) -#define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) -#define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) -#define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) -#define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) -#define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) - - -# define OSSL_AAA_ATTRIBUTE_TYPE 0 -# define OSSL_AAA_ATTRIBUTE_VALUES 1 - -typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { - int type; - union { - ASN1_OBJECT *attributeType; - X509_ATTRIBUTE *attributeTypeandValues; - } choice; -} OSSL_ALLOWED_ATTRIBUTES_CHOICE; - -typedef struct ALLOWED_ATTRIBUTES_ITEM_st { - STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; - GENERAL_NAME *holderDomain; -} OSSL_ALLOWED_ATTRIBUTES_ITEM; - -typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; - -DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) -DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) -DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) - -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) - - -SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) -#define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) - - -typedef struct AA_DIST_POINT_st { - DIST_POINT_NAME *distpoint; - ASN1_BIT_STRING *reasons; - int dp_reasons; - ASN1_BOOLEAN indirectCRL; - ASN1_BOOLEAN containsUserAttributeCerts; - ASN1_BOOLEAN containsAACerts; - ASN1_BOOLEAN containsSOAPublicKeyCerts; -} OSSL_AA_DIST_POINT; - -DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) - -# ifdef __cplusplus -} -# endif -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/include/openssl/x509v3err.h b/libs/openssl-3.6.0-beta1/x86/include/openssl/x509v3err.h deleted file mode 100644 index 4bbcfc2..0000000 --- a/libs/openssl-3.6.0-beta1/x86/include/openssl/x509v3err.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OPENSSL_X509V3ERR_H -# define OPENSSL_X509V3ERR_H -# pragma once - -# include -# include -# include - - - -/* - * X509V3 reason codes. - */ -# define X509V3_R_BAD_IP_ADDRESS 118 -# define X509V3_R_BAD_OBJECT 119 -# define X509V3_R_BAD_OPTION 170 -# define X509V3_R_BAD_VALUE 171 -# define X509V3_R_BN_DEC2BN_ERROR 100 -# define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101 -# define X509V3_R_DIRNAME_ERROR 149 -# define X509V3_R_DISTPOINT_ALREADY_SET 160 -# define X509V3_R_DUPLICATE_ZONE_ID 133 -# define X509V3_R_EMPTY_KEY_USAGE 169 -# define X509V3_R_ERROR_CONVERTING_ZONE 131 -# define X509V3_R_ERROR_CREATING_EXTENSION 144 -# define X509V3_R_ERROR_IN_EXTENSION 128 -# define X509V3_R_EXPECTED_A_SECTION_NAME 137 -# define X509V3_R_EXTENSION_EXISTS 145 -# define X509V3_R_EXTENSION_NAME_ERROR 115 -# define X509V3_R_EXTENSION_NOT_FOUND 102 -# define X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED 103 -# define X509V3_R_EXTENSION_VALUE_ERROR 116 -# define X509V3_R_ILLEGAL_EMPTY_EXTENSION 151 -# define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG 152 -# define X509V3_R_INVALID_ASNUMBER 162 -# define X509V3_R_INVALID_ASRANGE 163 -# define X509V3_R_INVALID_BOOLEAN_STRING 104 -# define X509V3_R_INVALID_CERTIFICATE 158 -# define X509V3_R_INVALID_EMPTY_NAME 108 -# define X509V3_R_INVALID_EXTENSION_STRING 105 -# define X509V3_R_INVALID_INHERITANCE 165 -# define X509V3_R_INVALID_IPADDRESS 166 -# define X509V3_R_INVALID_MULTIPLE_RDNS 161 -# define X509V3_R_INVALID_NAME 106 -# define X509V3_R_INVALID_NULL_ARGUMENT 107 -# define X509V3_R_INVALID_NULL_VALUE 109 -# define X509V3_R_INVALID_NUMBER 140 -# define X509V3_R_INVALID_NUMBERS 141 -# define X509V3_R_INVALID_OBJECT_IDENTIFIER 110 -# define X509V3_R_INVALID_OPTION 138 -# define X509V3_R_INVALID_POLICY_IDENTIFIER 134 -# define X509V3_R_INVALID_PROXY_POLICY_SETTING 153 -# define X509V3_R_INVALID_PURPOSE 146 -# define X509V3_R_INVALID_SAFI 164 -# define X509V3_R_INVALID_SECTION 135 -# define X509V3_R_INVALID_SYNTAX 143 -# define X509V3_R_ISSUER_DECODE_ERROR 126 -# define X509V3_R_MISSING_VALUE 124 -# define X509V3_R_NEED_ORGANIZATION_AND_NUMBERS 142 -# define X509V3_R_NEGATIVE_PATHLEN 168 -# define X509V3_R_NO_CONFIG_DATABASE 136 -# define X509V3_R_NO_ISSUER_CERTIFICATE 121 -# define X509V3_R_NO_ISSUER_DETAILS 127 -# define X509V3_R_NO_POLICY_IDENTIFIER 139 -# define X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED 154 -# define X509V3_R_NO_PUBLIC_KEY 114 -# define X509V3_R_NO_SUBJECT_DETAILS 125 -# define X509V3_R_OPERATION_NOT_DEFINED 148 -# define X509V3_R_OTHERNAME_ERROR 147 -# define X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED 155 -# define X509V3_R_POLICY_PATH_LENGTH 156 -# define X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED 157 -# define X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY 159 -# define X509V3_R_PURPOSE_NOT_UNIQUE 173 -# define X509V3_R_SECTION_NOT_FOUND 150 -# define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS 122 -# define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID 123 -# define X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT 111 -# define X509V3_R_UNKNOWN_EXTENSION 129 -# define X509V3_R_UNKNOWN_EXTENSION_NAME 130 -# define X509V3_R_UNKNOWN_OPTION 120 -# define X509V3_R_UNKNOWN_VALUE 172 -# define X509V3_R_UNSUPPORTED_OPTION 117 -# define X509V3_R_UNSUPPORTED_TYPE 167 -# define X509V3_R_USER_TOO_LONG 132 - -#endif diff --git a/libs/openssl-3.6.0-beta1/x86/lib/cmake/OpenSSL/OpenSSLConfig.cmake b/libs/openssl-3.6.0-beta1/x86/lib/cmake/OpenSSL/OpenSSLConfig.cmake deleted file mode 100644 index b4ec2a4..0000000 --- a/libs/openssl-3.6.0-beta1/x86/lib/cmake/OpenSSL/OpenSSLConfig.cmake +++ /dev/null @@ -1,161 +0,0 @@ -# Generated by OpenSSL - -# Commands may need to know the format version. -set(CMAKE_IMPORT_FILE_VERSION 1) - -# Avoid duplicate find_package() -set(_ossl_expected_targets OpenSSL::Crypto OpenSSL::SSL - OpenSSL::applink) -set(_ossl_defined_targets) -set(_ossl_undefined_targets) -foreach(t IN LISTS _ossl_expected_targets) - if(TARGET "${t}") - LIST(APPEND _ossl_defined_targets "${t}") - else() - LIST(APPEND _ossl_undefined_targets "${t}") - endif() -endforeach() -message(DEBUG "_ossl_expected_targets = ${_ossl_expected_targets}") -message(DEBUG "_ossl_defined_targets = ${_ossl_defined_targets}") -message(DEBUG "_ossl_undefined_targets = ${_ossl_undefined_targets}") -if(NOT _ossl_undefined_targets) - # All targets are defined, we're good, just undo everything and return - unset(_ossl_expected_targets) - unset(_ossl_defined_targets) - unset(_ossl_undefined_targets) - unset(CMAKE_IMPORT_FILE_VERSION) - return() -endif() -if(_ossl_defined_targets) - # We have a mix of defined and undefined targets. This is hard to reconcile, - # and probably the result of another config, or FindOpenSSL.cmake having been - # called, or whatever. Therefore, the best course of action is to quit with a - # hard error. - message(FATAL_ERROR "Some targets defined, others not:\nNot defined: ${_ossl_undefined_targets}\nDefined: ${_ossl_defined_targets}") -endif() -unset(_ossl_expected_targets) -unset(_ossl_defined_targets) -unset(_ossl_undefined_targets) - - -# Set up the import path, so all other import paths are made relative this file -get_filename_component(_ossl_prefix "${CMAKE_CURRENT_LIST_FILE}" PATH) -get_filename_component(_ossl_prefix "${_ossl_prefix}" PATH) -get_filename_component(_ossl_prefix "${_ossl_prefix}" PATH) -get_filename_component(_ossl_prefix "${_ossl_prefix}" PATH) - -if(_ossl_prefix STREQUAL "/") - set(_ossl_prefix "") -endif() - - -if(OPENSSL_USE_STATIC_LIBS) - set(_ossl_use_static_libs True) -elseif(DEFINED OPENSSL_USE_STATIC_LIBS) - # We know OPENSSL_USE_STATIC_LIBS is defined and False - if(_ossl_use_static_libs) - # OPENSSL_USE_STATIC_LIBS is explicitly false, indicating that shared libraries are - # required. However, _ossl_use_static_libs indicates that no shared libraries are - # available. The best course of action is to simply return and leave it to CMake to - # use another OpenSSL config. - unset(_ossl_use_static_libs) - unset(CMAKE_IMPORT_FILE_VERSION) - return() - endif() -endif() - -# Version, copied from what find_package() gives, for compatibility with FindOpenSSL.cmake -set(OPENSSL_VERSION "${OpenSSL_VERSION}") -set(OPENSSL_VERSION_MAJOR "${OpenSSL_VERSION_MAJOR}") -set(OPENSSL_VERSION_MINOR "${OpenSSL_VERSION_MINOR}") -set(OPENSSL_VERSION_FIX "${OpenSSL_VERSION_PATCH}") -set(OPENSSL_FOUND YES) - -# Directories and names -set(OPENSSL_LIBRARY_DIR "${_ossl_prefix}/lib") -set(OPENSSL_INCLUDE_DIR "${_ossl_prefix}/include") -set(OPENSSL_ENGINES_DIR "${_ossl_prefix}/lib/engines-3") -set(OPENSSL_MODULES_DIR "${_ossl_prefix}/lib/ossl-modules") -set(OPENSSL_RUNTIME_DIR "${_ossl_prefix}/bin") - -set(OPENSSL_APPLINK_SOURCE "${_ossl_prefix}/include/openssl/applink.c") - -set(OPENSSL_PROGRAM "${OPENSSL_RUNTIME_DIR}/openssl.exe") - -# Set up the imported targets -if(_ossl_use_static_libs) - - add_library(OpenSSL::Crypto STATIC IMPORTED) - add_library(OpenSSL::SSL STATIC IMPORTED) - - set(OPENSSL_LIBCRYPTO_STATIC "${OPENSSL_LIBRARY_DIR}/libcrypto_static.lib") - set(OPENSSL_LIBCRYPTO_DEPENDENCIES ws2_32.lib gdi32.lib advapi32.lib crypt32.lib user32.lib) - set_target_properties(OpenSSL::Crypto PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION ${OPENSSL_LIBCRYPTO_STATIC}) - set_property(TARGET OpenSSL::Crypto - PROPERTY INTERFACE_LINK_LIBRARIES ${OPENSSL_LIBCRYPTO_DEPENDENCIES}) - - set(OPENSSL_LIBSSL_STATIC "${OPENSSL_LIBRARY_DIR}/libssl_static.lib") - set(OPENSSL_LIBSSL_DEPENDENCIES OpenSSL::Crypto) - set_target_properties(OpenSSL::SSL PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION ${OPENSSL_LIBSSL_STATIC}) - set_property(TARGET OpenSSL::SSL - PROPERTY INTERFACE_LINK_LIBRARIES ${OPENSSL_LIBSSL_DEPENDENCIES}) - - # Directories and names compatible with CMake's FindOpenSSL.cmake - set(OPENSSL_CRYPTO_LIBRARY ${OPENSSL_LIBCRYPTO_STATIC}) - set(OPENSSL_CRYPTO_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_LIBCRYPTO_DEPENDENCIES}) - set(OPENSSL_SSL_LIBRARY ${OPENSSL_LIBSSL_STATIC}) - set(OPENSSL_SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_LIBSSL_DEPENDENCIES}) - set(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_LIBSSL_DEPENDENCIES} ${OPENSSL_LIBCRYPTO_DEPENDENCIES}) - -else() - - add_library(OpenSSL::Crypto SHARED IMPORTED) - add_library(OpenSSL::SSL SHARED IMPORTED) - - set(OPENSSL_LIBCRYPTO_SHARED "${OPENSSL_RUNTIME_DIR}/libcrypto-3.dll") - set(OPENSSL_LIBCRYPTO_IMPORT "${OPENSSL_LIBRARY_DIR}/libcrypto.lib") - set(OPENSSL_LIBCRYPTO_DEPENDENCIES ) - set_target_properties(OpenSSL::Crypto PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_IMPLIB ${OPENSSL_LIBCRYPTO_IMPORT} - IMPORTED_LOCATION ${OPENSSL_LIBCRYPTO_SHARED}) - set_property(TARGET OpenSSL::Crypto - PROPERTY INTERFACE_LINK_LIBRARIES ${OPENSSL_LIBCRYPTO_DEPENDENCIES}) - - set(OPENSSL_LIBSSL_SHARED "${OPENSSL_RUNTIME_DIR}/libssl-3.dll") - set(OPENSSL_LIBSSL_IMPORT "${OPENSSL_LIBRARY_DIR}/libssl.lib") - set(OPENSSL_LIBSSL_DEPENDENCIES OpenSSL::Crypto ) - set_target_properties(OpenSSL::SSL PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_IMPLIB ${OPENSSL_LIBSSL_IMPORT} - IMPORTED_LOCATION ${OPENSSL_LIBSSL_SHARED}) - set_property(TARGET OpenSSL::SSL - PROPERTY INTERFACE_LINK_LIBRARIES ${OPENSSL_LIBSSL_DEPENDENCIES}) - - # Directories and names compatible with CMake's FindOpenSSL.cmake - set(OPENSSL_CRYPTO_LIBRARY ${OPENSSL_LIBCRYPTO_IMPORT}) - set(OPENSSL_CRYPTO_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_LIBCRYPTO_DEPENDENCIES}) - set(OPENSSL_SSL_LIBRARY ${OPENSSL_LIBSSL_IMPORT}) - set(OPENSSL_SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_LIBSSL_DEPENDENCIES}) - set(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_LIBSSL_DEPENDENCIES} ${OPENSSL_LIBCRYPTO_DEPENDENCIES}) - - -endif() - -set_target_properties(OpenSSL::Crypto PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${OPENSSL_INCLUDE_DIR}") -set_target_properties(OpenSSL::SSL PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${OPENSSL_INCLUDE_DIR}") - - -add_library(OpenSSL::applink INTERFACE IMPORTED) -set_property(TARGET OpenSSL::applink PROPERTY - INTERFACE_SOURCES "${OPENSSL_APPLINK_SOURCE}") - - -unset(_ossl_prefix) -unset(_ossl_use_static_libs) diff --git a/libs/openssl-3.6.0-beta1/x86/lib/cmake/OpenSSL/OpenSSLConfigVersion.cmake b/libs/openssl-3.6.0-beta1/x86/lib/cmake/OpenSSL/OpenSSLConfigVersion.cmake deleted file mode 100644 index 44584c6..0000000 --- a/libs/openssl-3.6.0-beta1/x86/lib/cmake/OpenSSL/OpenSSLConfigVersion.cmake +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by OpenSSL - -set(PACKAGE_VERSION 3.6.0) - -if(NOT PACKAGE_FIND_VERSION) - # find_package() was called without any version information. This is assumed to - # mean that the caller accepts whatever they get. - set(PACKAGE_VERSION_COMPATIBLE 1) -elseif(PACKAGE_FIND_VERSION_MAJOR LESS 3 - OR PACKAGE_FIND_VERSION VERSION_GREATER 3.6.0) - set(PACKAGE_VERSION_UNSUITABLE 1) -else() - set(PACKAGE_VERSION_COMPATIBLE 1) - if(PACKAGE_FIND_VERSION VERSION_EQUAL 3.6.0) - set(PACKAGE_VERSION_EXACT 1) - endif() -endif() diff --git a/libs/openssl-3.6.0-beta1/x86/lib/engines-3/capi.dll b/libs/openssl-3.6.0-beta1/x86/lib/engines-3/capi.dll deleted file mode 100644 index ebd8ba8..0000000 Binary files a/libs/openssl-3.6.0-beta1/x86/lib/engines-3/capi.dll and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/x86/lib/engines-3/capi.pdb b/libs/openssl-3.6.0-beta1/x86/lib/engines-3/capi.pdb deleted file mode 100644 index 9da9c2b..0000000 Binary files a/libs/openssl-3.6.0-beta1/x86/lib/engines-3/capi.pdb and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/x86/lib/engines-3/loader_attic.dll b/libs/openssl-3.6.0-beta1/x86/lib/engines-3/loader_attic.dll deleted file mode 100644 index 79e5883..0000000 Binary files a/libs/openssl-3.6.0-beta1/x86/lib/engines-3/loader_attic.dll and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/x86/lib/engines-3/loader_attic.pdb b/libs/openssl-3.6.0-beta1/x86/lib/engines-3/loader_attic.pdb deleted file mode 100644 index 62aaee6..0000000 Binary files a/libs/openssl-3.6.0-beta1/x86/lib/engines-3/loader_attic.pdb and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/x86/lib/engines-3/padlock.dll b/libs/openssl-3.6.0-beta1/x86/lib/engines-3/padlock.dll deleted file mode 100644 index 45810b5..0000000 Binary files a/libs/openssl-3.6.0-beta1/x86/lib/engines-3/padlock.dll and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/x86/lib/engines-3/padlock.pdb b/libs/openssl-3.6.0-beta1/x86/lib/engines-3/padlock.pdb deleted file mode 100644 index bb974dd..0000000 Binary files a/libs/openssl-3.6.0-beta1/x86/lib/engines-3/padlock.pdb and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/x86/lib/libcrypto.lib b/libs/openssl-3.6.0-beta1/x86/lib/libcrypto.lib deleted file mode 100644 index f23c29a..0000000 Binary files a/libs/openssl-3.6.0-beta1/x86/lib/libcrypto.lib and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/x86/lib/libssl.lib b/libs/openssl-3.6.0-beta1/x86/lib/libssl.lib deleted file mode 100644 index 4234a42..0000000 Binary files a/libs/openssl-3.6.0-beta1/x86/lib/libssl.lib and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/x86/lib/ossl-modules/legacy.dll b/libs/openssl-3.6.0-beta1/x86/lib/ossl-modules/legacy.dll deleted file mode 100644 index 96d9c5d..0000000 Binary files a/libs/openssl-3.6.0-beta1/x86/lib/ossl-modules/legacy.dll and /dev/null differ diff --git a/libs/openssl-3.6.0-beta1/x86/lib/ossl-modules/legacy.pdb b/libs/openssl-3.6.0-beta1/x86/lib/ossl-modules/legacy.pdb deleted file mode 100644 index d35e8c8..0000000 Binary files a/libs/openssl-3.6.0-beta1/x86/lib/ossl-modules/legacy.pdb and /dev/null differ diff --git a/libs/simclist-1.5/._CMakeLists.txt b/libs/simclist-1.5/._CMakeLists.txt deleted file mode 100644 index 03e3d87..0000000 Binary files a/libs/simclist-1.5/._CMakeLists.txt and /dev/null differ diff --git a/libs/simclist-1.5/._doc b/libs/simclist-1.5/._doc deleted file mode 100644 index c4ae9d7..0000000 Binary files a/libs/simclist-1.5/._doc and /dev/null differ diff --git a/libs/simclist-1.5/._examples b/libs/simclist-1.5/._examples deleted file mode 100644 index 64452ad..0000000 Binary files a/libs/simclist-1.5/._examples and /dev/null differ diff --git a/libs/simclist-1.5/._perftest b/libs/simclist-1.5/._perftest deleted file mode 100644 index 18e30d5..0000000 Binary files a/libs/simclist-1.5/._perftest and /dev/null differ diff --git a/libs/simclist-1.5/._regrtest b/libs/simclist-1.5/._regrtest deleted file mode 100644 index 560655d..0000000 Binary files a/libs/simclist-1.5/._regrtest and /dev/null differ diff --git a/libs/simclist-1.5/._simclist.h b/libs/simclist-1.5/._simclist.h deleted file mode 100644 index 32623c0..0000000 Binary files a/libs/simclist-1.5/._simclist.h and /dev/null differ diff --git a/libs/simclist-1.5/CMakeLists.txt b/libs/simclist-1.5/CMakeLists.txt deleted file mode 100644 index 28f3474..0000000 --- a/libs/simclist-1.5/CMakeLists.txt +++ /dev/null @@ -1,39 +0,0 @@ -cmake_minimum_required(VERSION 2.6) -PROJECT(simclist) - -# simclist options -OPTION(SIMCLIST_DEBUG - "Build with debug code and debug symbols enabled" - OFF) -OPTION(SIMCLIST_THREADING - "Build with simclist threading enable" - OFF) -OPTION(SIMCLIST_NO_DUMPRESTORE - "Disable building of dump & restore functionalities" - OFF) -OPTION(SIMCLIST_ALLOW_LOCATIONBASED_HASHES - "Allow list_hash() to work exclusively on memory locations" - OFF) - -# expand selected options -SET(SIMCCFLAGS "") -# build with debug? -IF(SIMCLIST_DEBUG) - SET(SIMCCFLAGS "${SIMCCFLAGS} -DSIMCLIST_DEBUG") -ENDIF(SIMCLIST_DEBUG) -# build with threading? -IF(SIMCLIST_THREADING) - SET(SIMCCFLAGS "${SIMCCFLAGS} -DSIMCLIST_WITH_THREADS") -ENDIF(SIMCLIST_THREADING) -# build without dump/restore functionalities? -IF(SIMCLIST_NO_DUMPRESTORE) - SET(SIMCCFLAGS "${SIMCCFLAGS} -DSIMCLIST_NO_DUMPRESTORE") -ENDIF(SIMCLIST_NO_DUMPRESTORE) -IF(SIMCLIST_ALLOW_LOCATIONBASED_HASHES) - SET(SIMCCFLAGS "${SIMCCFLAGS} -DSIMCLIST_ALLOW_LOCATIONBASED_HASHES") -ENDIF(SIMCLIST_ALLOW_LOCATIONBASED_HASHES) -SET_SOURCE_FILES_PROPERTIES(simclist.c COMPILE_FLAGS "${SIMCCFLAGS}") - -# main building stuff -ADD_LIBRARY(simclist SHARED simclist.c) -SET(CMAKE_C_FLAGS "-O2 -Wall -std=c99") diff --git a/libs/simclist-1.5/Changes b/libs/simclist-1.5/Changes deleted file mode 100644 index 06a8e80..0000000 --- a/libs/simclist-1.5/Changes +++ /dev/null @@ -1,58 +0,0 @@ -* 1.5 Nov 2010 - - improve performance of list_init() (thanks L. Rousseau) - - fix assert() failure up to mid pointer not NULLed on cleared lists (thanks L. Rousseau) - -* 1.4.4rc4 Apr 2010 - - fix compilation warnings on Solaris (thanks Joerg Schilling, Ludovic Rousseau) - -* 1.4.4rc3 Mar 2010 - - fix speculation in list dumping causing possible broken dumps (thanks Richard Krakhofer) - -* 1.4.4rc2 Mar 2010 - - add function list_delete() to delete by element (thanks Ludovic Rousseau) - -* 1.4.4rc1 Aug 2009 - - support compilers without C99 capabilities - - change API for list_hash() (and add SIMCLIST_ALLOW_LOCATIONBASED_HASHES) - -* 1.4.3 Apr 2009 - - fix return values of list_empty() - -* 1.4.2 Mar 2009 - - make return values of list_dump_file() and list_restore_file() consistent - - allow to disable compilation of dump/restore features to save memory on - ultra-constrained devices - -* 1.4.1 Jan 2009 - - define EPROTO for those operating systems that don't define it - - SimCList celebrates 2 years and over 2000 downloads <8-D - -* 1.4 Dec 2008 - - interface changes: - - _restore*() and _dump*() functions now write length in argument - - list_seek() no longer returns a constant reference - - decorate with "restrict" qualifiers => now requires C99 support from compiler - - minor improvements in documentation - -* 1.3.1 Jan 2008 - - fix portability issue when compiling on some OSes - -* 1.3 Nov 2007 - - support custom element seek - - support for dumping/restoring lists on files - -* 1.2 Jun 2007 - - natively support transparent inclusion in C++ apps - - use sentinels to improve performance on list traversals - - fix list_insert_at that could output inconsistent lists - when inserting into even-sized lists in position 0 - -* 1.1 Apr 2007 - - use freelists for improving memory allocation performance - - fix list_concat() that could output inconsistent lists - - new ready-made comparators, metric and hashing functions for - the most common types (numeric and strings) - - new list_find() function - -* 1.0 Jan 2007 - - first release to public diff --git a/libs/simclist-1.5/Doxyfile b/libs/simclist-1.5/Doxyfile deleted file mode 100644 index f82db39..0000000 --- a/libs/simclist-1.5/Doxyfile +++ /dev/null @@ -1,1252 +0,0 @@ -# Doxyfile 1.5.1 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project -# -# All text after a hash (#) is considered a comment and will be ignored -# The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" ") - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded -# by quotes) that should identify the project. - -PROJECT_NAME = SimCList - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -PROJECT_NUMBER = 1.5 - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = doc/ - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of -# source files, where putting all generated files in the same directory would -# otherwise cause performance problems for the file system. - -CREATE_SUBDIRS = YES - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, -# Italian, Japanese, Japanese-en (Japanese with English messages), Korean, -# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, -# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. - -OUTPUT_LANGUAGE = English - -# This tag can be used to specify the encoding used in the generated output. -# The encoding is not always determined by the language that is chosen, -# but also whether or not the output is meant for Windows or non-Windows users. -# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES -# forces the Windows encoding (this is the default for the Windows binary), -# whereas setting the tag to NO uses a Unix-style encoding (the default for -# all platforms other than Windows). - -USE_WINDOWS_ENCODING = NO - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is -# used as the annotated text. Otherwise, the brief description is used as-is. -# If left blank, the following values are used ("$name" is automatically -# replaced with the name of the entity): "The $name class" "The $name widget" -# "The $name file" "is" "provides" "specifies" "contains" -# "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = YES - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful is your file systems -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like the Qt-style comments (thus requiring an -# explicit @brief command for a brief description. - -JAVADOC_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the DETAILS_AT_TOP tag is set to YES then Doxygen -# will output the detailed description near the top, like JavaDoc. -# If set to NO, the detailed description appears after the member -# documentation. - -DETAILS_AT_TOP = NO - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce -# a new page for each member. If set to NO, the documentation of a member will -# be part of the file/class/namespace that contains it. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 8 - -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C -# sources only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java -# sources only. Doxygen will then generate output that is more tailored for Java. -# For instance, namespaces will be presented as packages, qualified scopes -# will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to -# include (a tag file for) the STL sources as input, then you should -# set this tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. -# func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. - -BUILTIN_STL_SUPPORT = NO - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = YES - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. - -CASE_SENSE_NAMES = NO - -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = YES - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or define consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and defines in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the -# list will mention the files that were used to generate the documentation. - -SHOW_USED_FILES = YES - -# If the sources in your project are distributed over multiple directories -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy -# in the documentation. The default is NO. - -SHOW_DIRECTORIES = NO - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from the -# version control system). Doxygen will invoke the program by executing (via -# popen()) the command , where is the value of -# the FILE_VERSION_FILTER tag, and is the name of an input file -# provided by doxygen. Whatever the program writes to standard output -# is used as the file version. See the manual for examples. - -FILE_VERSION_FILTER = - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = YES - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be abled to get warnings for -# functions that are documented, but have no documentation for their parameters -# or return value. If set to NO (the default) doxygen will only warn about -# wrong or incomplete parameter documentation, but not about the absence of -# documentation. - -WARN_NO_PARAMDOC = NO - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. Optionally the format may contain -# $version, which will be replaced by the version of the file (if it could -# be obtained via FILE_VERSION_FILTER) - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx -# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py - -FILE_PATTERNS = - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = NO - -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or -# directories that are symbolic links (a Unix filesystem feature) are excluded -# from the input. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. Note that the wildcards are matched -# against the file with absolute path, so to exclude all test directories -# for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command , where -# is the value of the INPUT_FILTER tag, and is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. If FILTER_PATTERNS is specified, this tag will be -# ignored. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER -# is applied to all files. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). - -FILTER_SOURCE_FILES = NO - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES (the default) -# then for each documented function all documented -# functions referencing it will be listed. - -REFERENCED_BY_RELATION = YES - -# If the REFERENCES_RELATION tag is set to YES (the default) -# then for each documented function all documented entities -# called/used by that function will be listed. - -REFERENCES_RELATION = YES - -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will -# link to the source code. Otherwise they will link to the documentstion. - -REFERENCES_LINK_SOURCE = YES - -# If the USE_HTAGS tag is set to YES then the references to source code -# will point to the HTML generated by the htags(1) tool instead of doxygen -# built-in source browser. The htags tool is part of GNU's global source -# tagging system (see http://www.gnu.org/software/global/global.html). You -# will need version 4.8.6 or higher. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = NO - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank -# doxygen will generate files with .html extension. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# stylesheet in the HTML output directory as well, or it will be erased! - -HTML_STYLESHEET = - -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = - -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). - -GENERATE_CHI = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. - -TOC_EXPAND = NO - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at -# top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. - -DISABLE_INDEX = YES - -# This tag can be used to set the number of enum values (range [1..20]) -# that doxygen will group on one line in the generated HTML documentation. - -ENUM_VALUES_PER_LINE = 4 - -# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be -# generated containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, -# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are -# probably better off using the HTML help feature. - -GENERATE_TREEVIEW = NO - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. - -TREEVIEW_WIDTH = 250 - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = NO - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = pdflatex - -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. - -LATEX_CMD_NAME = latex - -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. - -MAKEINDEX_CMD_NAME = makeindex - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = NO - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, a4wide, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4wide - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = NO - -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a -# higher quality PDF documentation. - -USE_PDFLATEX = NO - -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. - -LATEX_BATCHMODE = NO - -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. - -LATEX_HIDE_INDICES = NO - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- - -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with -# other RTF readers or editors. - -GENERATE_RTF = NO - -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. - -RTF_OUTPUT = rtf - -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_RTF = NO - -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. -# Note: wordpad (write) and others do not support links. - -RTF_HYPERLINKS = NO - -# Load stylesheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide -# replacements, missing definitions are set to their default value. - -RTF_STYLESHEET_FILE = - -# Set optional variables used in the generation of an rtf document. -# Syntax is similar to doxygen's config file. - -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = NO - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = man - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = .3 - -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command -# would be unable to find the correct page. The default is NO. - -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- - -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of -# the code including all documentation. - -GENERATE_XML = NO - -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `xml' will be used as the default path. - -XML_OUTPUT = xml - -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_DTD = - -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. - -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- - -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental -# and incomplete at the moment. - -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- - -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. - -GENERATE_PERLMOD = NO - -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. - -PERLMOD_LATEX = NO - -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. This is useful -# if you want to understand what is going on. On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. - -PERLMOD_PRETTY = YES - -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. - -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled -# way by setting EXPAND_ONLY_PREDEF to YES. - -MACRO_EXPANSION = NO - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_DEFINED tags. - -EXPAND_ONLY_PREDEF = NO - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# in the INCLUDE_PATH (see below) will be search if a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = - -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will -# be used. - -INCLUDE_FILE_PATTERNS = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. To prevent a macro definition from being -# undefined via #undef or recursively expanded use the := operator -# instead of the = operator. - -PREDEFINED = - -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition. - -EXPAND_AS_DEFINED = - -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all function-like macros that are alone -# on a line, have an all uppercase name, and do not end with a semicolon. Such -# function macros are typically used for boiler-plate code, and will confuse -# the parser if not removed. - -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES option can be used to specify one or more tagfiles. -# Optionally an initial location of the external documentation -# can be added for each tagfile. The format of a tag file without -# this location is as follows: -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths or -# URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) -# If a tag file is not located in the directory in which doxygen -# is run, you must also specify the path to the tagfile here. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will -# be listed. - -EXTERNAL_GROUPS = YES - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base -# or super classes. Setting the tag to NO turns the diagrams off. Note that -# this option is superseded by the HAVE_DOT option below. This is only a -# fallback. It is recommended to install and use dot, since it yields more -# powerful graphs. - -CLASS_DIAGRAMS = YES - -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. - -HIDE_UNDOC_RELATIONS = YES - -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) - -HAVE_DOT = NO - -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# the CLASS_DIAGRAMS tag to NO. - -CLASS_GRAPH = YES - -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. - -COLLABORATION_GRAPH = YES - -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for groups, showing the direct groups dependencies - -GROUP_GRAPHS = YES - -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling -# Language. - -UML_LOOK = NO - -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. - -TEMPLATE_RELATIONS = NO - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with -# other documented files. - -INCLUDE_GRAPH = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or -# indirectly include this file. - -INCLUDED_BY_GRAPH = YES - -# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will -# generate a call dependency graph for every global function or class method. -# Note that enabling this option will significantly increase the time of a run. -# So in most cases it will be better to enable call graphs for selected -# functions only using the \callgraph command. - -CALL_GRAPH = NO - -# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will -# generate a caller dependency graph for every global function or class method. -# Note that enabling this option will significantly increase the time of a run. -# So in most cases it will be better to enable caller graphs for selected -# functions only using the \callergraph command. - -CALLER_GRAPH = NO - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES -# then doxygen will show the dependencies a directory has on other directories -# in a graphical way. The dependency relations are determined by the #include -# relations between the files in the directories. - -DIRECTORY_GRAPH = YES - -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are png, jpg, or gif -# If left blank png will be used. - -DOT_IMAGE_FORMAT = png - -# The tag DOT_PATH can be used to specify the path where the dot tool can be -# found. If left blank, it is assumed the dot tool can be found in the path. - -DOT_PATH = - -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the -# \dotfile command). - -DOTFILE_DIRS = - -# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width -# (in pixels) of the graphs generated by dot. If a graph becomes larger than -# this value, doxygen will try to truncate the graph, so that it fits within -# the specified constraint. Beware that most browsers cannot cope with very -# large images. - -MAX_DOT_GRAPH_WIDTH = 1024 - -# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height -# (in pixels) of the graphs generated by dot. If a graph becomes larger than -# this value, doxygen will try to truncate the graph, so that it fits within -# the specified constraint. Beware that most browsers cannot cope with very -# large images. - -MAX_DOT_GRAPH_HEIGHT = 1024 - -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes -# that lay further from the root node will be omitted. Note that setting this -# option to 1 or 2 may greatly reduce the computation time needed for large -# code bases. Also note that a graph may be further truncated if the graph's -# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH -# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), -# the graph is not depth-constrained. - -MAX_DOT_GRAPH_DEPTH = 0 - -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, which results in a white background. -# Warning: Depending on the platform used, enabling this option may lead to -# badly anti-aliased labels on the edges of a graph (i.e. they become hard to -# read). - -DOT_TRANSPARENT = NO - -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output -# files in one run (i.e. multiple -o and -T options on the command line). This -# makes dot run faster, but since only newer versions of dot (>1.8.10) -# support this, this feature is disabled by default. - -DOT_MULTI_TARGETS = NO - -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and -# arrows in the dot generated graphs. - -GENERATE_LEGEND = YES - -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate -# the various graphs. - -DOT_CLEANUP = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- - -# The SEARCHENGINE tag specifies whether or not a search engine should be -# used. If set to NO the values of all tags below this one will be ignored. - -SEARCHENGINE = NO diff --git a/libs/simclist-1.5/examples/._ex1.c b/libs/simclist-1.5/examples/._ex1.c deleted file mode 100644 index 3a559d8..0000000 Binary files a/libs/simclist-1.5/examples/._ex1.c and /dev/null differ diff --git a/libs/simclist-1.5/examples/._ex2.c b/libs/simclist-1.5/examples/._ex2.c deleted file mode 100644 index 536216c..0000000 Binary files a/libs/simclist-1.5/examples/._ex2.c and /dev/null differ diff --git a/libs/simclist-1.5/examples/._ex3.c b/libs/simclist-1.5/examples/._ex3.c deleted file mode 100644 index 89542cf..0000000 Binary files a/libs/simclist-1.5/examples/._ex3.c and /dev/null differ diff --git a/libs/simclist-1.5/examples/ex1.c b/libs/simclist-1.5/examples/ex1.c deleted file mode 100644 index 13c67c3..0000000 --- a/libs/simclist-1.5/examples/ex1.c +++ /dev/null @@ -1,28 +0,0 @@ -#include - -#include /* use the SimCList library */ - - -int main() { - list_t mylist; /* declare a list */ - int userval; - - - list_init(& mylist); /* initialize the list */ - - printf("Insert your number: "); - scanf("%d", & userval); - - list_append(& mylist, & userval); /* add an element to the list */ - - printf("The list now holds %u elements.\n", \ - list_size(& mylist)); /* get the size of the list */ - - printf("Your number was: %d\n", \ - * (int*)list_get_at(& mylist, 0)); /* extract the first element of the list */ - - list_destroy(&mylist); - - return 0; -} - diff --git a/libs/simclist-1.5/examples/ex2.c b/libs/simclist-1.5/examples/ex2.c deleted file mode 100644 index 3fc2c5e..0000000 --- a/libs/simclist-1.5/examples/ex2.c +++ /dev/null @@ -1,38 +0,0 @@ -#include - -#include - -int main() { - int val; - list_t l; - - list_init(&l); - - /* request to store copies, and provide the metric function */ - list_attributes_copy(&l, list_meter_int32_t, 1); - - printf("Give numbers. Terminate with one negative.\n"); - scanf("%d", &val); - while (val > 0) { - list_append(&l, &val); - scanf("%d", &val); - } - - /* setting the comparator, so the list can sort, find the min, max etc */ - list_attributes_comparator(&l, list_comparator_int32_t); - list_sort(&l, -1); /* sorting the list in descending (-1) order */ - - /* printing out the result */ - printf("Sorted values:\n"); - - list_iterator_start(&l); /* starting an iteration "session" */ - while (list_iterator_hasnext(&l)) { /* tell whether more values available */ - printf("%d\n", *(int *)list_iterator_next(&l)); /* get the next value */ - } - list_iterator_stop(&l); /* starting the iteration "session" */ - - list_destroy(&l); - - return 0; -} - diff --git a/libs/simclist-1.5/examples/ex3.c b/libs/simclist-1.5/examples/ex3.c deleted file mode 100644 index 74d3091..0000000 --- a/libs/simclist-1.5/examples/ex3.c +++ /dev/null @@ -1,58 +0,0 @@ -#include - -#include - -typedef struct { - int x, y; -} point2D; - -typedef struct { - point2D a, b, c, d; -} rectangle; /* custom data type to store in list */ - -/* this function returns the size of elements */ -size_t mymeter(const void *el) { - /* every element has the constant size of a rectangle structure */ - return sizeof(rectangle); -} - -/* - * compare rectangles by area - * - * this function compares two elements: - * <0: a greater than b - * 0: a equivalent to b - * >0: b greater than a - */ -int mycomparator(const void *a, const void *b) { - /* compare areas */ - const rectangle *A = (rectangle *) a; - const rectangle *B = (rectangle *) b; - unsigned int areaA, areaB; - areaA = ((A->c.y - A->b.y) * (A->b.x - A->a.x)); - areaB = ((B->c.y - B->b.y) * (B->b.x - B->a.x)); - return (areaA < areaB) - (areaA > areaB); -} - -int main() { - rectangle rect; - list_t l; - - list_init(&l); - - /* setting the custom spanning function */ - list_attributes_copy(&l, mymeter, 1); - - /* acquire rectangles and insert in list ... */ - - /* setting the custom area comparator */ - list_attributes_comparator(&l, mycomparator); - list_sort(&l, -1); /* sorting by area (descending) */ - - /* [display list ...] */ - - list_destroy(&l); - - return 0; -} - diff --git a/libs/simclist-1.5/perftest/._README-perftest.txt b/libs/simclist-1.5/perftest/._README-perftest.txt deleted file mode 100644 index fd67f74..0000000 Binary files a/libs/simclist-1.5/perftest/._README-perftest.txt and /dev/null differ diff --git a/libs/simclist-1.5/perftest/._ext.c b/libs/simclist-1.5/perftest/._ext.c deleted file mode 100644 index 70f73dd..0000000 Binary files a/libs/simclist-1.5/perftest/._ext.c and /dev/null differ diff --git a/libs/simclist-1.5/perftest/._ins.c b/libs/simclist-1.5/perftest/._ins.c deleted file mode 100644 index 17ab7f1..0000000 Binary files a/libs/simclist-1.5/perftest/._ins.c and /dev/null differ diff --git a/libs/simclist-1.5/perftest/._sort.c b/libs/simclist-1.5/perftest/._sort.c deleted file mode 100644 index 168e05d..0000000 Binary files a/libs/simclist-1.5/perftest/._sort.c and /dev/null differ diff --git a/libs/simclist-1.5/perftest/README-perftest.txt b/libs/simclist-1.5/perftest/README-perftest.txt deleted file mode 100644 index 127e51a..0000000 --- a/libs/simclist-1.5/perftest/README-perftest.txt +++ /dev/null @@ -1,34 +0,0 @@ -SimCList performance test cases - -===== ins.c -insert 10 000 000 (ten million) elements into a list, with element autocopy -disabled. -Compile: - gcc -O2 -I.. -std=c99 -o ins ins.c ../simclist.c -Use: - time ./ins - - -===== ext.c -insert 1 000 000 (one million) elements with element autocopy, then extracts 1 -000 elements at random position (from a Uniform(0, list_size) probability -density function). -Compile: - gcc -O2 -I.. -std=c99 -o ext ext.c ../simclist.c -Use: - time ./ext - - -===== sort.c -insert 1 000 000 elements with autocopy, then sorting. - -Compile: - # for testing the default setup - gcc -O2 -I.. -std=c99 -o sort sort.c ../simclist.c - # for testing with threading enabled - gcc -DSIMCLIST_WITH_THREADS -O2 -I.. -std=c99 -o sort sort.c ../simclist.c -Use: - # generate data to insert into the list - # e.g. for ((i = 0; i<1000000; i++)); do echo $RANDOM; done >randdata.txt - time ./sort < randdata.txt - diff --git a/libs/simclist-1.5/perftest/ext.c b/libs/simclist-1.5/perftest/ext.c deleted file mode 100644 index 8288b84..0000000 --- a/libs/simclist-1.5/perftest/ext.c +++ /dev/null @@ -1,31 +0,0 @@ - -#include -#include -#include -#include - -#define NELS 1000000 - -size_t szelem(const void *el) { - return sizeof(int); -} - -int main() { - list_t l; - int i; - - srandom(time(NULL)); - - list_init(&l); - list_attributes_copy(&l, szelem, 1); - - for (i = 0; i < NELS; i++) { - list_append(&l, &i); - } - - for (i = 0; i < 1000; i++) { - list_get_at(&l, random()%NELS); - } - - return 0; -} diff --git a/libs/simclist-1.5/perftest/ins.c b/libs/simclist-1.5/perftest/ins.c deleted file mode 100644 index e7d1c19..0000000 --- a/libs/simclist-1.5/perftest/ins.c +++ /dev/null @@ -1,17 +0,0 @@ - -#include -#include - -#define NELS 10000000 - -int main() { - list_t l; - int i; - - list_init(&l); - for (i = 0; i < NELS; i++) { - list_append(&l, &i); - } - - return 0; -} diff --git a/libs/simclist-1.5/perftest/sort.c b/libs/simclist-1.5/perftest/sort.c deleted file mode 100644 index 171c8d7..0000000 --- a/libs/simclist-1.5/perftest/sort.c +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include -#include - -#define BUFLEN 20 - -int main() { - list_t l; - unsigned int i; - char buf[BUFLEN]; - - list_init(&l); - list_attributes_copy(&l, list_meter_int32_t, 1); - list_attributes_comparator(&l, list_comparator_int32_t); - - while (fgets(buf, BUFLEN, stdin) != NULL) { - i = atoi(buf); - list_append(&l, &i); - } - - list_sort(&l, 1); - - return 0; -} diff --git a/libs/simclist-1.5/regrtest/._printlist.c b/libs/simclist-1.5/regrtest/._printlist.c deleted file mode 100644 index 041f2c1..0000000 Binary files a/libs/simclist-1.5/regrtest/._printlist.c and /dev/null differ diff --git a/libs/simclist-1.5/regrtest/._test1.c b/libs/simclist-1.5/regrtest/._test1.c deleted file mode 100644 index 95f06ce..0000000 Binary files a/libs/simclist-1.5/regrtest/._test1.c and /dev/null differ diff --git a/libs/simclist-1.5/regrtest/._test2.c b/libs/simclist-1.5/regrtest/._test2.c deleted file mode 100644 index 0866fd9..0000000 Binary files a/libs/simclist-1.5/regrtest/._test2.c and /dev/null differ diff --git a/libs/simclist-1.5/regrtest/._test3-dump.c b/libs/simclist-1.5/regrtest/._test3-dump.c deleted file mode 100644 index d6eacff..0000000 Binary files a/libs/simclist-1.5/regrtest/._test3-dump.c and /dev/null differ diff --git a/libs/simclist-1.5/regrtest/._test3-restore.c b/libs/simclist-1.5/regrtest/._test3-restore.c deleted file mode 100644 index b97c3f5..0000000 Binary files a/libs/simclist-1.5/regrtest/._test3-restore.c and /dev/null differ diff --git a/libs/simclist-1.5/regrtest/._test4-seeker.c b/libs/simclist-1.5/regrtest/._test4-seeker.c deleted file mode 100644 index 02a536f..0000000 Binary files a/libs/simclist-1.5/regrtest/._test4-seeker.c and /dev/null differ diff --git a/libs/simclist-1.5/regrtest/printlist.c b/libs/simclist-1.5/regrtest/printlist.c deleted file mode 100644 index bb4d0c7..0000000 --- a/libs/simclist-1.5/regrtest/printlist.c +++ /dev/null @@ -1,11 +0,0 @@ -#include - - -void printlist(list_t *l) { - int i; - - for (i = 0; i < list_size(l); i++) { - printf ("> %d\n", *(int *)list_get_at(l, i)); - } -} - diff --git a/libs/simclist-1.5/regrtest/test1.c b/libs/simclist-1.5/regrtest/test1.c deleted file mode 100644 index 3b93056..0000000 --- a/libs/simclist-1.5/regrtest/test1.c +++ /dev/null @@ -1,120 +0,0 @@ -#include -#include -#include -#include -#include "../simclist.h" - -#include "printlist.c" - -#define N 250 - -#undef NDEBUG - -int main() { - list_t tl, tl2, tl3; - unsigned int pos; - int el, el2, i; - list_hash_t lhash1, lhash2; - - - list_init(&tl); - assert(list_size(&tl) == 0); - - printf("1\n"); - - lhash1 = list_hash(&tl); - - /* attributes */ - list_attributes_copy(&tl, list_meter_int32_t, 1); - list_attributes_comparator(&tl, list_comparator_int32_t); - list_attributes_hash_computer(&tl, list_hashcomputer_int32_t); - - /* insertion */ - srandom(time(NULL)); - printf("Inserting at: "); - for (i = 0; i < N; i++) { - pos = random() % (list_size(&tl) + 1); - printf("%u ", pos); - list_insert_at(&tl, &i, pos); - } - printf("\nDone.\n"); - assert(list_size(&tl) == N); - - /* min/max */ - printf("2\n"); - assert(*(int *)list_get_max(&tl) == N-1); - printf("3\n"); - assert(*(int *)list_get_min(&tl) == 0); - printf("4\n"); - - /* incorrect deletion */ - assert(list_insert_at(&tl, &el, N+1) < 0); - printf("5\n"); - assert(list_delete_at(&tl, N) < 0); - printf("6\n"); - assert(list_delete_range(&tl, 0, N+1) < 0); - printf("7\n"); - assert(list_delete_range(&tl, N, N/2) < 0); - - /* hashes */ - printf("8\n"); - lhash2 = list_hash(&tl); - assert(lhash2 != lhash1); - - /* find and contains */ - printf("9\n"); - el = N-1; - assert(list_contains(&tl, &el)); - - /* sorting */ - printf("10\n"); - list_sort(&tl, 1); - - /* iteration sessions */ - el2 = el = -1; - list_iterator_start(&tl); - while (list_iterator_hasnext(&tl)) { - el2 = *(int *)list_iterator_next(&tl); - if (el > el2) - break; - el = el2; - } - list_iterator_stop(&tl); - assert(el2 == N-1); - - /* legal deletion */ - printf("11\n"); - list_delete_range(&tl, 0, N/2); - assert(list_size(&tl) == (N-1)/2); - assert(*(int *)list_get_at(&tl, 0) == (N/2 +1)); - - /* concatenation, and hashes */ - printf("12\n"); - lhash1 = list_hash(&tl); - assert(lhash1 != lhash2); - - printf("13\n"); - list_init(&tl2); /* tl2 empty */ - list_concat(&tl, &tl2, &tl3); - list_attributes_hash_computer(&tl3, list_hashcomputer_int32_t); - assert(list_hash(&tl) == list_hash(&tl3)); - - printf("14\n"); - list_destroy(&tl3); - list_concat(&tl2, &tl, &tl3); - list_attributes_hash_computer(&tl3, list_hashcomputer_int32_t); - assert(list_hash(&tl) == list_hash(&tl3)); - - printf("15\n"); - list_delete_range(&tl3, 1, list_size(&tl3)-2); - el = 123; - list_append(&tl3, &el); - assert(list_size(&tl3) == 3 && list_find(&tl3, &el) == (list_size(&tl3)-1)); - - - list_destroy(&tl); - - printf("==========\nAll tests passed.\n"); - return 0; -} - diff --git a/libs/simclist-1.5/regrtest/test2.c b/libs/simclist-1.5/regrtest/test2.c deleted file mode 100644 index a92c114..0000000 --- a/libs/simclist-1.5/regrtest/test2.c +++ /dev/null @@ -1,75 +0,0 @@ -#include -#include -#include -#include - -#include "../simclist.h" - -#include "printlist.c" - -#define N 250 - -int main() { - list_t l; - int i, j, newpos, els[N]; - - srandom(time(NULL)); - list_init(&l); - - list_attributes_copy(&l, list_meter_int32_t, 1); - list_attributes_comparator(&l, list_comparator_int32_t); - - /* insert N zeros */ - printf("Test 1: head insertions ... "); - fflush(stdout); - j = 0; - for (i = 0; i < N; i++) { - list_insert_at(&l, &j, 0); - assert((int)list_size(&l) == i+1); - } - //list_clear(&l); - printf("passed.\n"); - - /* generate an unsorted list of values from 0 to N */ - printf("Test 2: random insertions and deletions ... "); - fflush(stdout); - els[0] = 0; - for (i = 1; i < N; i++) { - els[i] = i; - newpos = random() % (i + 1); - j = els[newpos]; - els[newpos] = i; - els[i] = j; - } - - for (i = 0; i < N; i++) { - list_insert_at(&l, & els[i], els[i]); - assert(*(int *)list_get_at(&l, els[i]) == els[i]); - assert(*(int *)list_get_at(&l, els[i]+1) == 0); - list_delete_range(&l, els[i]+1, els[i]+1); - } - printf("passed.\n"); - - printf("Test 3: positioning (The Revenge) ... "); - fflush(stdout); - for (i = 0; i < N; i++) { - assert(*(int *)list_get_at(&l, i) == i); - } - printf("passed.\n"); - - - printf("Test 4: sorting ... "); - fflush(stdout); - assert(list_sort(&l, -1) == 0); - for (i = 0; i < N; i++) { - assert(*(int *)list_get_at(&l, i) == N-1-i); - } - printf("passed.\n"); - - list_destroy(&l); - - printf("==========\nAll tests passed.\n"); - - return 0; -} - diff --git a/libs/simclist-1.5/regrtest/test3-dump.c b/libs/simclist-1.5/regrtest/test3-dump.c deleted file mode 100644 index 667b119..0000000 --- a/libs/simclist-1.5/regrtest/test3-dump.c +++ /dev/null @@ -1,57 +0,0 @@ -#include -#include -#include -#include -#include "../simclist.h" - -#define N 123 - -#define hton64(x) (\ - htons(1) == 1 ? \ - (uint64_t)x /* big endian */ \ - : /* little endian */ \ - ((uint64_t)((((uint64_t)(x) & 0xff00000000000000ULL) >> 56) | \ - (((uint64_t)(x) & 0x00ff000000000000ULL) >> 40) | \ - (((uint64_t)(x) & 0x0000ff0000000000ULL) >> 24) | \ - (((uint64_t)(x) & 0x000000ff00000000ULL) >> 8) | \ - (((uint64_t)(x) & 0x00000000ff000000ULL) << 8) | \ - (((uint64_t)(x) & 0x0000000000ff0000ULL) << 24) | \ - (((uint64_t)(x) & 0x000000000000ff00ULL) << 40) | \ - (((uint64_t)(x) & 0x00000000000000ffULL) << 56))) \ - ) - - -size_t meter(const void *el) { - return sizeof(unsigned long long int); -} - -void *elserial(const void *el, uint32_t *len) { - unsigned long long *x; - - *len = sizeof(unsigned long long); - x = malloc(*len); - *x = hton64(*(unsigned long long *)el); - - return x; -} - -int main() { - list_t l; - unsigned long long int data; - - list_init(& l); - list_attributes_copy(&l, meter, 1); - list_attributes_serializer(&l, elserial); - - for (data = 1; data < N; data++) { - list_append(& l, & data); - } - if (list_dump_file(&l, "mylistdump.simc") == 0 && errno != 0) { - printf("fuck off\n"); - } - - list_destroy(& l); - - return 0; -} - diff --git a/libs/simclist-1.5/regrtest/test3-restore.c b/libs/simclist-1.5/regrtest/test3-restore.c deleted file mode 100644 index 6e143f6..0000000 --- a/libs/simclist-1.5/regrtest/test3-restore.c +++ /dev/null @@ -1,64 +0,0 @@ -#include -#include -#include -#include -#include "../simclist.h" - -#define N 123 - -#define hton64(x) (\ - htons(1) == 1 ? \ - (uint64_t)x /* big endian */ \ - : /* little endian */ \ - ((uint64_t)((((uint64_t)(x) & 0xff00000000000000ULL) >> 56) | \ - (((uint64_t)(x) & 0x00ff000000000000ULL) >> 40) | \ - (((uint64_t)(x) & 0x0000ff0000000000ULL) >> 24) | \ - (((uint64_t)(x) & 0x000000ff00000000ULL) >> 8) | \ - (((uint64_t)(x) & 0x00000000ff000000ULL) << 8) | \ - (((uint64_t)(x) & 0x0000000000ff0000ULL) << 24) | \ - (((uint64_t)(x) & 0x000000000000ff00ULL) << 40) | \ - (((uint64_t)(x) & 0x00000000000000ffULL) << 56))) \ - ) - - -void *elunserial(const void *el, uint32_t *len) { - unsigned long long *x; - - *len = sizeof(unsigned long long); - x = malloc(*len); - *x = hton64(*(unsigned long long *)el); - - return x; -} - -int main() { - list_t l; - unsigned long long int data, val; - unsigned int mem; - - list_init(& l); - list_attributes_unserializer(&l, elunserial); - - mem = list_restore_file(&l, "mylistdump.simc"); - if (mem == 0 && errno != 0) { - perror("open"); - printf("fuck off\n"); - } else { - printf("Restored successfully:\n"); - printf("N els: %u\nmemread: %u\n", list_size(&l), mem); - for (data = 1; data < N; data++) { - val = *(unsigned long long *)list_get_at(&l, (unsigned int)data-1); - if (data != val) { - printf("Wrong data. Pos %llu, expected %llu, got %llu\n", data-1, data, val); - return 0; - } - printf("%lld ", val); - } - printf("\n"); - } - - list_destroy(& l); - - return 0; -} - diff --git a/libs/simclist-1.5/regrtest/test4-seeker.c b/libs/simclist-1.5/regrtest/test4-seeker.c deleted file mode 100644 index 4b4b64a..0000000 --- a/libs/simclist-1.5/regrtest/test4-seeker.c +++ /dev/null @@ -1,53 +0,0 @@ -#include -#include -#include /* for srandom() */ -#include "../simclist.h" - -#define N 100000 -#define LEN 12 - -struct foo_s { - int a, b; - char c[LEN]; -}; - -int seeker(const void *el, const void *indicator) { - if (((struct foo_s *)el)->a == *(int *)indicator) - return 1; - return 0; -} - -size_t mymeter(const void *el) { - return (sizeof(struct foo_s)); -} - -int main() { - list_t l; - struct foo_s el; - int i, j; - - list_init(& l); - list_attributes_seeker(&l, seeker); - list_attributes_copy(&l, mymeter, 1); - - for (i = 0; i < N; i++) { - el.a = i; - el.b = 3*i; - snprintf(el.c, LEN, "%d-%d", el.a, el.b); - list_insert_at(& l, & el, i); - } - - srandom(time(NULL)); - - for (i = 0; i < N/4; i++) { - j = random() % list_size(&l); - el = *(struct foo_s *)list_seek(&l, &j); - if (el.a != j) { - printf("KO: %d retrieved %d\n", j, el.a); - return 1; - } - } - - list_destroy(& l); - return 0; -} diff --git a/libs/timer_lib/.gitattributes b/libs/timer_lib/.gitattributes deleted file mode 100644 index 412eeda..0000000 --- a/libs/timer_lib/.gitattributes +++ /dev/null @@ -1,22 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto - -# Custom for Visual Studio -*.cs diff=csharp -*.sln merge=union -*.csproj merge=union -*.vbproj merge=union -*.fsproj merge=union -*.dbproj merge=union - -# Standard to msysgit -*.doc diff=astextplain -*.DOC diff=astextplain -*.docx diff=astextplain -*.DOCX diff=astextplain -*.dot diff=astextplain -*.DOT diff=astextplain -*.pdf diff=astextplain -*.PDF diff=astextplain -*.rtf diff=astextplain -*.RTF diff=astextplain diff --git a/libs/timer_lib/.gitignore b/libs/timer_lib/.gitignore deleted file mode 100644 index 5ebd21a..0000000 --- a/libs/timer_lib/.gitignore +++ /dev/null @@ -1,163 +0,0 @@ -################# -## Eclipse -################# - -*.pydevproject -.project -.metadata -bin/ -tmp/ -*.tmp -*.bak -*.swp -*~.nib -local.properties -.classpath -.settings/ -.loadpath - -# External tool builders -.externalToolBuilders/ - -# Locally stored "Eclipse launch configurations" -*.launch - -# CDT-specific -.cproject - -# PDT-specific -.buildpath - - -################# -## Visual Studio -################# - -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. - -# User-specific files -*.suo -*.user -*.sln.docstates - -# Build results -[Dd]ebug/ -[Rr]elease/ -*_i.c -*_p.c -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.vspscc -.builds -*.dotCover - -## TODO: If you have NuGet Package Restore enabled, uncomment this -#packages/ - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opensdf -*.sdf - -# Visual Studio profiler -*.psess -*.vsp - -# ReSharper is a .NET coding add-in -_ReSharper* - -# Installshield output folder -[Ee]xpress - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish - -# Others -[Bb]in -[Oo]bj -sql -TestResults -*.Cache -ClientBin -stylecop.* -~$* -*.dbmdl -Generated_Code #added for RIA/Silverlight projects - -# Backup & report files from converting an old project file to a newer -# Visual Studio version. Backup files are not needed, because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML - - - -############ -## Windows -############ - -# Windows image file caches -Thumbs.db - -# Folder config file -Desktop.ini - - -############# -## Python -############# - -*.py[co] - -# Packages -*.egg -*.egg-info -dist -build -eggs -parts -bin -var -sdist -develop-eggs -.installed.cfg - -# Installer logs -pip-log.txt - -# Unit test / coverage reports -.coverage -.tox - -#Translations -*.mo - -#Mr Developer -.mr.developer.cfg - -# Mac crap -.DS_Store diff --git a/libs/timer_lib/Makefile b/libs/timer_lib/Makefile deleted file mode 100644 index 3edaf73..0000000 --- a/libs/timer_lib/Makefile +++ /dev/null @@ -1,23 +0,0 @@ -SRC = timer.c -OBJ = $(SRC:.c=.o) -OUT = libtimer.a -TST = timertest -TSR = test.c -TOB = $(TSR:.c=.o) - -CFLAGS = -O3 -LDFLAGS = - -default: $(OUT) $(TST) - -.c.o: - gcc $(CFLAGS) -c $< -o $@ - -$(OUT): $(OBJ) - ar rcs $(OUT) $(OBJ) - -$(TST): $(OUT) $(TOB) - gcc $(CFLAGS) $(LDFLAGS) -o $(TST) $(TOB) $(OUT) -lrt - -clean: - rm -f $(OBJ) $(OUT) $(TOB) $(TST) diff --git a/libs/timer_lib/test.vcxproj b/libs/timer_lib/test.vcxproj deleted file mode 100644 index 468b70e..0000000 --- a/libs/timer_lib/test.vcxproj +++ /dev/null @@ -1,169 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {54E95B82-7759-4825-9478-91E76F1C1C89} - Win32Proj - test - 10.0 - - - - Application - true - Unicode - v143 - - - Application - true - Unicode - v143 - - - Application - false - true - Unicode - v143 - - - Application - false - true - Unicode - v143 - - - - - - - - - - - - - - - - - - - true - - - true - build\$(ProjectName)\$(Platform)\$(Configuration)\ - build\$(ProjectName)\$(Platform)\$(Configuration)\ - - - false - - - false - build\$(ProjectName)\$(Platform)\$(Configuration)\ - build\$(ProjectName)\$(Platform)\$(Configuration)\ - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - MultiThreadedDebug - ../platform_lib - - - Console - true - winmm.lib;%(AdditionalDependencies) - - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - MultiThreadedDebug - ../platform_lib - - - Console - true - winmm.lib;%(AdditionalDependencies) - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - MultiThreaded - ../platform_lib - - - Console - true - true - true - winmm.lib;%(AdditionalDependencies) - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - MultiThreaded - ../platform_lib - - - Console - true - true - true - winmm.lib;%(AdditionalDependencies) - - - - - - - - {321bab92-2ede-4b3b-939d-bd0be0248c8f} - - - - - - \ No newline at end of file diff --git a/libs/timer_lib/timer.sln b/libs/timer_lib/timer.sln deleted file mode 100644 index 0146411..0000000 --- a/libs/timer_lib/timer.sln +++ /dev/null @@ -1,36 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "timer", "timer.vcxproj", "{321BAB92-2EDE-4B3B-939D-BD0BE0248C8F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test.vcxproj", "{54E95B82-7759-4825-9478-91E76F1C1C89}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {321BAB92-2EDE-4B3B-939D-BD0BE0248C8F}.Debug|Win32.ActiveCfg = Debug|Win32 - {321BAB92-2EDE-4B3B-939D-BD0BE0248C8F}.Debug|Win32.Build.0 = Debug|Win32 - {321BAB92-2EDE-4B3B-939D-BD0BE0248C8F}.Debug|x64.ActiveCfg = Debug|x64 - {321BAB92-2EDE-4B3B-939D-BD0BE0248C8F}.Debug|x64.Build.0 = Debug|x64 - {321BAB92-2EDE-4B3B-939D-BD0BE0248C8F}.Release|Win32.ActiveCfg = Release|Win32 - {321BAB92-2EDE-4B3B-939D-BD0BE0248C8F}.Release|Win32.Build.0 = Release|Win32 - {321BAB92-2EDE-4B3B-939D-BD0BE0248C8F}.Release|x64.ActiveCfg = Release|x64 - {321BAB92-2EDE-4B3B-939D-BD0BE0248C8F}.Release|x64.Build.0 = Release|x64 - {54E95B82-7759-4825-9478-91E76F1C1C89}.Debug|Win32.ActiveCfg = Debug|Win32 - {54E95B82-7759-4825-9478-91E76F1C1C89}.Debug|Win32.Build.0 = Debug|Win32 - {54E95B82-7759-4825-9478-91E76F1C1C89}.Debug|x64.ActiveCfg = Debug|x64 - {54E95B82-7759-4825-9478-91E76F1C1C89}.Debug|x64.Build.0 = Debug|x64 - {54E95B82-7759-4825-9478-91E76F1C1C89}.Release|Win32.ActiveCfg = Release|Win32 - {54E95B82-7759-4825-9478-91E76F1C1C89}.Release|Win32.Build.0 = Release|Win32 - {54E95B82-7759-4825-9478-91E76F1C1C89}.Release|x64.ActiveCfg = Release|x64 - {54E95B82-7759-4825-9478-91E76F1C1C89}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/libs/timer_lib/timer.vcxproj b/libs/timer_lib/timer.vcxproj deleted file mode 100644 index 83e5ded..0000000 --- a/libs/timer_lib/timer.vcxproj +++ /dev/null @@ -1,225 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - - - {321BAB92-2EDE-4B3B-939D-BD0BE0248C8F} - Win32Proj - timer - 10.0 - - - - StaticLibrary - true - Unicode - v143 - - - StaticLibrary - true - Unicode - v143 - - - StaticLibrary - false - true - Unicode - v143 - - - StaticLibrary - false - true - Unicode - v143 - - - - - - - - - - - - - - - - - - - $(SolutionDir) - $(Platform)\$(Configuration)\ - $(ProjectName)32d - - - $(SolutionDir) - build\$(ProjectName)\$(Platform)\$(Configuration)\ - $(ProjectName)64d - - - $(SolutionDir) - $(Platform)\$(Configuration)\ - $(ProjectName)32 - - - $(SolutionDir) - build\$(ProjectName)\$(Platform)\$(Configuration)\ - $(ProjectName)64 - - - - - - Level3 - Disabled - TIMER_COMPILE;%(PreprocessorDefinitions) - ProgramDatabase - false - false - false - false - false - false - MultiThreadedDebug - false - Fast - false - false - false - false - - - - - Windows - true - - - - - - - Level3 - Disabled - TIMER_COMPILE;%(PreprocessorDefinitions) - ProgramDatabase - false - false - false - false - false - false - MultiThreadedDebug - false - Fast - false - false - false - false - - - - - Windows - true - - - - - Level3 - - - MaxSpeed - false - true - TIMER_COMPILE;%(PreprocessorDefinitions) - ProgramDatabase - false - false - Speed - false - true - true - false - MultiThreaded - false - Fast - false - false - false - false - - - - - Windows - true - true - true - - - - - Level3 - - - MaxSpeed - false - true - TIMER_COMPILE;%(PreprocessorDefinitions) - ProgramDatabase - false - false - Speed - false - true - true - false - MultiThreaded - false - Fast - false - false - false - false - - - - - Windows - true - true - true - - - - - - \ No newline at end of file diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/LUA_plugin.tinyfiledialogs.cpp b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/LUA_plugin.tinyfiledialogs.cpp deleted file mode 100644 index 036f0ca..0000000 --- a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/LUA_plugin.tinyfiledialogs.cpp +++ /dev/null @@ -1,287 +0,0 @@ -/* SPDX-License-Identifier: ZLIB -Copyright (c) 2014 - 2023 Guillaume Vareille http://ysengrin.com - _________ - / \ LUA_plugin.tinyfiledialogs.cpp v3.8.3 [Nov 1, 2020] - |tiny file| LUA bindings created [2016] Copyright (c) 2016 Steven Johnson - | dialogs | - \____ ___/ http://tinyfiledialogs.sourceforge.net - \| git clone http://git.code.sf.net/p/tinyfiledialogs/code tinyfd - ____________________________________________ - | | - | email: tinyfiledialogs at ysengrin.com | - |____________________________________________| - -If you like tinyfiledialogs, please upvote my stackoverflow answer -https://stackoverflow.com/a/47651444 - -- License - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: -1. The origin of this software must not be misrepresented; you must not -claim that you wrote the original software. If you use this software -in a product, an acknowledgment in the product documentation would be -appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be -misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. ------------ - -this file was contributed by Steven Johnson from the Corona SDK project -and is offered here under the same zlib license as tinyfiledialogs - --#include "CoronaLua.h" will typically be something like -extern "C" { -#include "lua.h" -#include "lualib.h" -#include "lauxlib.h" -} - -in a normal(i.e.non - Corona) program. -- For that matter, CORONA_EXPORT just hides the library exporting code. -- The "_plugin_" stuff is part of a signature used by Corona to dynamically load the entry point function, but might be out -of place in a non - Corona program. -*/ - - -#include "CoronaLua.h" -#include "tinyfiledialogs.h" -#include - -#define STATIC_FILTER_COUNT 8 - -static int GetBool (lua_State * L, const char * key) -{ - lua_getfield(L, 1, key);// ..., bool - - int bval = lua_toboolean(L, -1); - - lua_pop(L, 1); // ... - - return bval; -} - -static const char * GetStrOrBlank (lua_State * L, const char * key, const char * blank = "") -{ - lua_getfield(L, 1, key);// ..., str? - - const char * str = blank; // might be NULL, thus not using luaL_optstring - - if (!lua_isnil(L, -1)) str = luaL_checkstring(L, -1); - - lua_pop(L, 1); - - return str; -} - -static int GetFilters (lua_State * L, const char *** filters) -{ - int nfilters = 0; - - lua_getfield(L, 1, "filter_patterns"); // ..., patts - - if (lua_istable(L, -1)) - { - int n = lua_objlen(L, -1); - - if (n > STATIC_FILTER_COUNT) *filters = (const char **)lua_newuserdata(L, sizeof(const char *) * n);// ..., patts, filters - - for (int i = 1; i <= n; ++i, lua_pop(L, 1)) - { - lua_rawgeti(L, -1, i); // ..., patts[, filters], patt - - (*filters)[nfilters++] = luaL_checkstring(L, -1); - } - } - - else if (!lua_isnil(L, -1)) (*filters)[nfilters++] = luaL_checkstring(L, -1); - - return nfilters; -} - -static int StringResponse (lua_State * L, const char * res) -{ - if (!res) lua_pushboolean(L, 0);// ..., false - - else lua_pushstring(L, res);// ..., res - - return 1; -} - -static luaL_Reg tfd_funcs[] = { - { - "notifyPopup", [](lua_State * L) - { - luaL_checktype(L, 1, LUA_TTABLE); - - const char * title = GetStrOrBlank(L, "title"); - const char * message = GetStrOrBlank(L, "message"); - const char * icon_types[] = { "info", "warning", "error" }; - - lua_getfield(L, 1, "icon_type"); // opts, icon_type - - const char * itype = icon_types[luaL_checkoption(L, -1, "info", icon_types)]; - - lua_pushboolean(L, tinyfd_notifyPopup(title, message, itype)); // opts, icon_type - - return 1; - } - }, { - "messageBox", [](lua_State * L) - { - luaL_checktype(L, 1, LUA_TTABLE); - - const char * title = GetStrOrBlank(L, "title"); - const char * message = GetStrOrBlank(L, "message"); - const char * dialog_types[] = { "ok", "okcancel", "yesno", "yesnocancel" }; - const char * icon_types[] = { "info", "warning", "error", "question" }; - - lua_getfield(L, 1, "dialog_type"); // opts, dialog_type - lua_getfield(L, 1, "icon_type");// opts, dialog_type, icon_type - - const char * dtype = dialog_types[luaL_checkoption(L, -2, "ok", dialog_types)]; - const char * itype = icon_types[luaL_checkoption(L, -1, "info", icon_types)]; - - lua_pushboolean(L, tinyfd_messageBox(title, message, dtype, itype, GetBool(L, "default_okyes"))); // opts, dialog_type, icon_type, ok / yes - - return 1; - } - }, { - "inputBox", [](lua_State * L) - { - luaL_checktype(L, 1, LUA_TTABLE); - - const char * title = GetStrOrBlank(L, "title"); - const char * message = GetStrOrBlank(L, "message"); - - // - lua_getfield(L, 1, "default_input");// opts, def_input - - const char * def_input; - - if (lua_type(L, -1) == LUA_TBOOLEAN && !lua_toboolean(L, -1)) def_input = NULL; - - else def_input = luaL_optstring(L, -1, ""); - - return StringResponse(L, tinyfd_inputBox(title, message, def_input)); // opts, def_input, input - } - }, { - "saveFileDialog", [](lua_State * L) - { - luaL_checktype(L, 1, LUA_TTABLE); - - const char * title = GetStrOrBlank(L, "title"); - const char * def_path_and_file = GetStrOrBlank(L, "default_path_and_file"); - const char * filter_description = GetStrOrBlank(L, "filter_description", NULL); - const char * filter_array[STATIC_FILTER_COUNT] = { 0 }, ** filters = filter_array; - int nfilters = GetFilters(L, &filters); // opts, patts[, filters] - - return StringResponse(L, tinyfd_saveFileDialog(title, def_path_and_file, nfilters, filters, filter_description)); // opts, patts[, filters], file - } - }, { - "openFileDialog", [](lua_State * L) - { - luaL_checktype(L, 1, LUA_TTABLE); - - // - const char * title = GetStrOrBlank(L, "title"); - const char * def_path_and_file = GetStrOrBlank(L, "default_path_and_file"); - const char * filter_description = GetStrOrBlank(L, "filter_description", NULL); - const char * filter_array[STATIC_FILTER_COUNT] = { 0 }, ** filters = filter_array; - int allow_multiple_selects = GetBool(L, "allow_multiple_selects"); - int nfilters = GetFilters(L, &filters); // opts, patts[, filters] - - // - const char * files = tinyfd_openFileDialog(title, def_path_and_file, nfilters, nfilters ? filters : NULL, filter_description, allow_multiple_selects); - - if (!allow_multiple_selects || !files) return StringResponse(L, files); // opts, patts[, filters], files? - - else - { - lua_newtable(L);// opts, patts[, filters], files - - char * from = (char *)files, * sep = from; // assign sep in order to pass first iteration - - for (int fi = 1; sep; ++fi) - { - sep = strchr(from, '|'); - - if (sep) - { - lua_pushlstring(L, from, sep - from); // opts, patts[, filters], files, file - - from = sep + 1; - } - - else lua_pushstring(L, from);// opts, patts[, filters], files, file - - lua_rawseti(L, -2, fi); // opts, patts[, filters], files = { ..., file } - } - } - - return 1; - } - }, { - "selectFolderDialog", [](lua_State * L) - { - luaL_checktype(L, 1, LUA_TTABLE); - - const char * title = GetStrOrBlank(L, "title"); - const char * def_path = GetStrOrBlank(L, "default_path"); - - return StringResponse(L, tinyfd_selectFolderDialog(title, def_path)); // opts, folder - } - }, { - "colorChooser", [](lua_State * L) - { - luaL_checktype(L, 1, LUA_TTABLE); - lua_settop(L, 1); // opts - lua_getfield(L, 1, "out_rgb"); // opts, out - - const char * title = GetStrOrBlank(L, "title"); - - // - unsigned char rgb[3]; - - lua_getfield(L, 1, "rgb"); // opts, out, rgb - - const char * def_hex_rgb = NULL; - - if (lua_istable(L, 3)) - { - lua_getfield(L, 3, "r");// opts, out, rgb, r - lua_getfield(L, 3, "g");// opts, out, rgb, r, g - lua_getfield(L, 3, "b");// opts, out, rgb, r, g, b - - for (int i = 1; i <= 3; ++i) rgb[i - 1] = (unsigned char)(luaL_checknumber(L, 3 + i) * 255.0); - } - - else def_hex_rgb = luaL_optstring(L, 3, "#000000"); - - const char * color = tinyfd_colorChooser(title, def_hex_rgb, rgb, rgb); - - if (color && lua_istable(L, 2)) - { - for (int i = 0; i < 3; ++i) lua_pushnumber(L, (double)rgb[i] / 255.0); // opts, out, rgb[, r, g, b], rout, gout, bout - - lua_setfield(L, 2, "b");// opts, out, rgb[, r, g, b], rout, gout - lua_setfield(L, 2, "g");// opts, out, rgb[, r, g, b], rout - lua_setfield(L, 2, "r");// opts, out, rgb[, r, g, b] - } - - return StringResponse(L, color);// opts, out, rgb[, r, g, b], color - } - }, - { NULL, NULL } -}; - -CORONA_EXPORT int luaopen_plugin_tinyfiledialogs(lua_State* L) -{ - lua_newtable(L);// t - luaL_register(L, NULL, tfd_funcs); - - return 1; -} diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/PascalABC/tinyfd.pas b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/PascalABC/tinyfd.pas deleted file mode 100644 index 3fdee61..0000000 --- a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/PascalABC/tinyfd.pas +++ /dev/null @@ -1,56 +0,0 @@ -{ SPDX-License-Identifier: ZLIB -Copyright (c) 2014 - 2023 Guillaume Vareille http://ysengrin.com - -found on this page: - https://github.com/pascalabcnet/pascalabcnet/discussions/2782 -} - -unit tinyfd; - -uses System; - -procedure tinyfd_beep(); external 'tinyfiledialogs64.dll'; - -function tinyfd_notifyPopup(aTitle: string; - aMessage: string; - aIconType: string): integer; - external 'tinyfiledialogs64.dll'; - -function tinyfd_messageBox(aTitle: string; - aMessage: string; - aDialogTyle: string; - aIconType: string; - aDefaultButton: integer): integer; - external 'tinyfiledialogs64.dll'; - -function tinyfd_inputBox(aTitle: string; - aMessage: string; - aDefaultInput: string): IntPtr; - external 'tinyfiledialogs64.dll'; - -function tinyfd_saveFileDialog(aTitle: string; - aDefaultPathAndFile: string; - aNumOfFilterPatterns: integer; - aFilterPatterns: array of string; - aSingleFilterDescription: string): IntPtr; - external 'tinyfiledialogs64.dll'; - -function tinyfd_openFileDialog(aTitle: string; - aDefaultPathAndFile: string; - aNumOfFilterPatterns: integer; - aFilterPatterns: array of string; - aSingleFilterDescription: string; - aAllowMultipleSelects: integer): IntPtr; - external 'tinyfiledialogs64.dll'; - -function tinyfd_selectFolderDialog(aTitle: string; - aDefaultPathAndFile: string): IntPtr; - external 'tinyfiledialogs64.dll'; - -function tinyfd_colorChooser(aTitle: string; - aDefaultHexRGB: string; - aDefaultRGB: array of byte; - aoResultRGB: array of byte): IntPtr; - external 'tinyfiledialogs64.dll'; - -end. diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/fortran/tinyfd_main.f90 b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/fortran/tinyfd_main.f90 deleted file mode 100644 index a4845ef..0000000 --- a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/fortran/tinyfd_main.f90 +++ /dev/null @@ -1,185 +0,0 @@ -! SPDX-License-Identifier: ZLIB -! Copyright (c) 2014 - 2023 Guillaume Vareille http://ysengrin.com -! _________ -! / \ tinyfiledialogs v3.18.1 [May 26, 2024] -! |tiny file| -! | dialogs | -! \____ ___/ http://tinyfiledialogs.sourceforge.net -! \| git clone http://git.code.sf.net/p/tinyfiledialogs/code tinyfd - -! - License - -! This software is provided 'as-is', without any express or implied -! warranty. In no event will the authors be held liable for any damages -! arising from the use of this software. -! Permission is granted to anyone to use this software for any purpose, -! including commercial applications, and to alter it and redistribute it -! freely, subject to the following restrictions: -! 1. The origin of this software must not be misrepresented; you must not -! claim that you wrote the original software. If you use this software -! in a product, an acknowledgment in the product documentation would be -! appreciated but is not required. -! 2. Altered source versions must be plainly marked as such, and must not be -! misrepresented as being the original software. -! 3. This notice may not be removed or altered from any source distribution. -! ___________________________________________________________ -! | | -! | If you like this new FORTRAN module please upvote | -! | my stackoverflow answer on the FORTRAN post | -! | https://stackoverflow.com/a/59657117 | -! |___________________________________________________________| - -! See compilation instructions at the end of this file - - program main - use tinyfd - use iso_c_binding, only: c_ptr, c_null_char, c_f_pointer, c_loc, c_null_ptr, c_associated, c_int, c_char - implicit none - type(c_ptr) :: cpointer - character(512), pointer :: fpointer - character(128), target :: aDefaultInput - character(512) :: string, aMessage, aDefaultPath, aDefaultPathAndFile - character(128) :: aTitle, aDialogType, aIconType - character(128) :: aSingleFilterDescription - integer :: i, aInteger, aButtonPressed, aDefaultButton, aNumOfFilterPatterns, aAllowMultipleSelects - character(8) :: aDefaultHexRGB - character(3) :: aDefaultRGB, aoResultRGB - type (c_ptr), dimension(:), allocatable :: aFilterPatterns - character(len=16,kind=c_char), allocatable, target :: lExtensions(:) - - ! calling subroutine tinyfd_beep (it doesn't return anything: it's a subroutine') - write(*,'(A)') "Enter tinyfd_beep()" - call tinyfd_beep() - - ! calling function tinyfd_notifyPopup (it returns one value: it's a function') - write(*,'(A)') "Enter tinyfd_notifyPopup()" - aTitle = "a Title" // char(0) - aMessage = "a Message" // char(0) - aIconType = "info" // char(0) - aInteger = tinyfd_notifyPopup(aTitle, aMessage, aIconType ) - - ! calling function tinyfd_messageBox - write(*,'(A)') "Enter tinyfd_messageBox()" - aTitle = "a Title" // char(0) - aMessage = "a Message" // char(0) - aIconType = "info" // char(0) - aDialogType = "ok" // char(0) - aDefaultButton = 1 - aButtonPressed = tinyfd_messageBox(aTitle, aMessage, aDialogType, aIconType, aDefaultButton ) - write (*,*) aButtonPressed - - ! calling function tinyfd_inputbox - write(*,'(A)') "Enter tinyfd_inputbox()" - aTitle = "a Title" // char(0) - aMessage = "a Message" // char(0) - aDefaultInput = "an Input" // char(0) - cpointer = tinyfd_inputBox(aTitle, aMessage, c_loc(aDefaultInput) ) - ! or for a password box: cpointer = tinyfd_inputbox(atitle, amessage, c_null_ptr ) - if ( c_associated(cpointer) ) then - call c_f_pointer(cpointer, fpointer) ! Convert C Pointer to Fortran pointer - string = fpointer(1:index(fpointer,c_null_char)-1) ! Remove NULL character at the end - write (*,'(A)') string - endif - - ! calling function tinyfd_saveFileDialog - write(*,'(A)') "Enter tinyfd_saveFileDialog()" - aTitle = "a Title" // char(0) - aDefaultPathAndFile = "" // char(0) - aSingleFilterDescription = "" // char(0) ! or "Text Files" // char(0) - aNumOfFilterPatterns = 2 - allocate (lExtensions( aNumOfFilterPatterns )) - allocate (aFilterPatterns( aNumOfFilterPatterns )) - lExtensions(1) = "*.txt" // char(0) - lExtensions(2) = "*.doc" // char(0) - do i = 1, aNumOfFilterPatterns, 1 - aFilterPatterns(i) = c_loc(lExtensions(i)) - write (*,'(A)') lExtensions(i) - !write (*,*) aFilterPatterns(i) - end do - cpointer = tinyfd_saveFileDialog(aTitle, aDefaultPathAndFile, aNumOfFilterPatterns, aFilterPatterns, aSingleFilterDescription) - ! or cpointer = tinyfd_saveFileDialog(aTitle, aDefaultPathAndFile, 0, c_null_ptr, aSingleFilterDescription) - deallocate (aFilterPatterns) - deallocate (lExtensions) - if ( c_associated(cpointer) ) then - call c_f_pointer(cpointer, fpointer) ! Convert C Pointer to Fortran pointer - string = fpointer(1:index(fpointer,c_null_char)-1) ! Remove NULL character at the end - write (*,'(A)') string - endif - - ! calling function tinyfd_openFileDialog - write(*,'(A)') "Enter tinyfd_openFileDialog()" - aTitle = "a Title" // char(0) - aDefaultPathAndFile = "" // char(0) - aAllowMultipleSelects = 1 - aSingleFilterDescription = "" // char(0) ! or "Text Files" // char(0) - aNumOfFilterPatterns = 2 - allocate (lExtensions( aNumOfFilterPatterns )) - allocate (aFilterPatterns( aNumOfFilterPatterns )) - lExtensions(1) = "*.txt" // char(0) - lExtensions(2) = "*.doc" // char(0) - do i = 1, aNumOfFilterPatterns, 1 - aFilterPatterns(i) = c_loc(lExtensions(i)) - write (*,'(A)') lExtensions(i) - !write (*,*) aFilterPatterns(i) - end do - cpointer = tinyfd_openFileDialog(aTitle, aDefaultPathAndFile, aNumOfFilterPatterns, aFilterPatterns, & - aSingleFilterDescription, aAllowMultipleSelects) - ! or cpointer = tinyfd_openFileDialog(aTitle, aDefaultPathAndFile, 0, c_null_ptr, aSingleFilterDescription, aAllowMultipleSelects) - deallocate (aFilterPatterns) - deallocate (lExtensions) - if ( c_associated(cpointer) ) then - call c_f_pointer(cpointer, fpointer) ! Convert C Pointer to Fortran pointer - string = fpointer(1:index(fpointer,c_null_char)-1) ! Remove NULL character at the end - write (*,'(A)') string - endif - - ! calling function tinyfd_selectFolderDialog - write(*,'(A)') "Enter tinyfd_selectFolderDialog()" - aTitle = "a Title" // char(0) - aDefaultPath = "" // char(0) - cpointer = tinyfd_selectFolderDialog(aTitle, aDefaultPath ) - if ( c_associated(cpointer) ) then - call c_f_pointer(cpointer, fpointer) ! Convert C Pointer to Fortran pointer - string = fpointer(1:index(fpointer,c_null_char)-1) ! Remove NULL character at the end - write (*,'(A)') string - endif - - ! calling function tinyfd_colorChooser - write(*,'(A)') "Enter tinyfd_colorChooser()" - aTitle = "a Title" // char(0) - aDefaultHexRGB = "" // char(0) ! or "#FF0000" // char(0) - aDefaultRGB = char(0) // char(0) // char(255) - print *, "aDefaultRGB", IACHAR(aDefaultRGB(1:1)), IACHAR(aDefaultRGB(2:2)), IACHAR(aDefaultRGB(3:3)) - cpointer = tinyfd_colorChooser(aTitle, aDefaultHexRGB, aDefaultRGB, aoResultRGB ) - print *, "aoResultRGB", IACHAR(aoResultRGB(1:1)), IACHAR(aoResultRGB(2:2)), IACHAR(aoResultRGB(3:3)) - if ( c_associated(cpointer) ) then - call c_f_pointer(cpointer, fpointer) ! Convert C Pointer to Fortran pointer - string = fpointer(1:index(fpointer,c_null_char)-1) ! Remove NULL character at the end - write (*,'(A)') string(1:10) - write (*,*) string - endif - - end program main - -! gcc -c ../../tinyfiledialogs.c -! gfortran -c tinyfd_module.f90 tinyfd_main.f90 -! gfortran -o tinyfd_exe tinyfd_module.o tinyfiledialogs.o tinyfd_main.o - -! or in one line : gfortran -o tinyfd_exe tinyfd_module.f90 ../../tinyfiledialogs.c tinyfd_main.f90 - -! This works on VisualStudio with Intel Fortran (make sure the C project has very similar settings as your fortran project): - ________________________________________________________________________ -! 1) | Install The Windows SDK | -! | http://developer.microsoft.com/en-us/windows/downloads/windows-sdk | -! | The end user doesn't need to install anythings | -! |________________________________________________________________________| -! 2) Create a new empty C/C++ project, verify the configuration is for X64. -! 3) Add existing files: tinyfiledialogs.c and tinyfiledialogs.h -! 4) Build this project. It will fail because there is no main(), -! but it will create tinyfiledialogs.obj -! 5) Create a new empty Fortran project, verify the configuration is for X64. -! 6) Add existing file: tinyfiledialogs.obj - the one that was created on 4) -! 7) Add existing files: tinyfd_module.f90 and tinyfd_main.f90 -! 8) In the properties of this fortran project, in the linker input field, -! add: comdlg32.lib ole32.lib user32.lib shell32.lib -! or maybe add: %(AdditionalDependencies) -! 9) Build and Run. Voila ! diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/fortran/tinyfd_module.f90 b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/fortran/tinyfd_module.f90 deleted file mode 100644 index 102f921..0000000 --- a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/fortran/tinyfd_module.f90 +++ /dev/null @@ -1,101 +0,0 @@ -! SPDX-License-Identifier: ZLIB -! Copyright (c) 2014 - 2023 Guillaume Vareille http://ysengrin.com -! _________ -! / \ tinyfiledialogs v3.18.1 [Mar 26, 2024] -! |tiny file| -! | dialogs | -! \____ ___/ http://tinyfiledialogs.sourceforge.net -! \| git clone http://git.code.sf.net/p/tinyfiledialogs/code tinyfd - -! - License - -! This software is provided 'as-is', without any express or implied -! warranty. In no event will the authors be held liable for any damages -! arising from the use of this software. -! Permission is granted to anyone to use this software for any purpose, -! including commercial applications, and to alter it and redistribute it -! freely, subject to the following restrictions: -! 1. The origin of this software must not be misrepresented; you must not -! claim that you wrote the original software. If you use this software -! in a product, an acknowledgment in the product documentation would be -! appreciated but is not required. -! 2. Altered source versions must be plainly marked as such, and must not be -! misrepresented as being the original software. -! 3. This notice may not be removed or altered from any source distribution. -! ___________________________________________________________ -! | | -! | If you like this new FORTRAN module please upvote | -! | my stackoverflow answer on the FORTRAN post | -! | https://stackoverflow.com/a/59657117 | -! |___________________________________________________________| - -! See compilation instructions at the end of tinyfd_main.f90 - - module tinyfd - interface ! C interface - - ! it doesn't return anything -> it's a subroutine - subroutine tinyfd_beep() bind(C, name='tinyfd_beep') - implicit none - end subroutine tinyfd_beep - - ! it returns one value -> it's a function - integer function tinyfd_notifyPopup(aTitle, aMessage, aIconType) bind(c, NAME='tinyfd_notifyPopup') - use iso_c_binding, only: c_char - implicit none - character (kind=c_char, len=1) :: aTitle, aMessage, aIconType - end function tinyfd_notifyPopup - - ! it returns one value -> it's a function - integer function tinyfd_messageBox(aTitle, aMessage, aDialogType, aIconType, aDefaultButton) bind(c,NAME='tinyfd_messageBox') - use iso_c_binding, only: c_char, c_int - implicit none - character (kind=c_char, len=1) :: aTitle, aMessage, aDialogType, aIconType - integer(c_int), value :: aDefaultButton - end function tinyfd_messageBox - - ! it returns one value -> it's a function - type(c_ptr) function tinyfd_inputBox(aTitle, aMessage, aDefaultInput) bind(c,NAME='tinyfd_inputBox') - use iso_c_binding, only: c_ptr, c_char - implicit none - character (kind=c_char, len=1) :: aTitle, aMessage - ! aDefaultInput is a bit different because we need to be able - ! to pass c_null_ptr to obtain a password box instead of an input box - type(c_ptr), value :: aDefaultInput - end function tinyfd_inputBox - - ! it returns one value -> it's a function - type(c_ptr) function tinyfd_saveFileDialog(aTitle, aDefaultPathAndFile, aNumOfFilterPatterns, aFilterPatterns, & - aSingleFilterDescription) bind(c,NAME='tinyfd_saveFileDialog') - use iso_c_binding, only: c_ptr, c_char, c_int - implicit none - integer(c_int), value :: aNumOfFilterPatterns - character (kind=c_char, len=1) :: aTitle, aDefaultPathAndFile, aSingleFilterDescription - type (c_ptr), dimension(*) :: aFilterPatterns - end function tinyfd_saveFileDialog - - ! it returns one value -> it's a function - type(c_ptr) function tinyfd_openFileDialog(aTitle, aDefaultPathAndFile, aNumOfFilterPatterns, aFilterPatterns, & - aSingleFilterDescription, aAllowMultipleSelects) bind(c,NAME='tinyfd_openFileDialog') - use iso_c_binding, only: c_ptr, c_char, c_int - implicit none - integer(c_int), value :: aNumOfFilterPatterns, aAllowMultipleSelects - character (kind=c_char, len=1) :: aTitle, aDefaultPathAndFile, aSingleFilterDescription - type (c_ptr), dimension(*) :: aFilterPatterns - end function tinyfd_openFileDialog - - ! it returns one value -> it's a function - type(c_ptr) function tinyfd_selectFolderDialog(aTitle, aDefaultPath) bind(c,NAME='tinyfd_selectFolderDialog') - use iso_c_binding, only: c_ptr, c_char - implicit none - character (kind=c_char, len=1) :: aTitle, aDefaultPath - end function tinyfd_selectFolderDialog - - ! it returns one value -> it's a function - type(c_ptr) function tinyfd_colorChooser(aTitle, aDefaultHexRGB, aDefaultRGB, aoResultRGB) bind(c,NAME='tinyfd_colorChooser') - use iso_c_binding, only: c_ptr, c_char, c_int - implicit none - character (kind=c_char, len=1) :: aTitle, aDefaultHexRGB, aDefaultRGB, aoResultRGB - end function tinyfd_colorChooser - - end interface ! C interface - end module tinyfd diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/freepascal/hello.pas b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/freepascal/hello.pas deleted file mode 100644 index a43c478..0000000 --- a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/freepascal/hello.pas +++ /dev/null @@ -1,91 +0,0 @@ -{ SPDX-License-Identifier: ZLIB -Copyright (c) 2014 - 2023 Guillaume Vareille http://ysengrin.com - _________ - / \ tinyfiledialogs v3.13 [May 2, 2023] zlib licence - |tiny file| - | dialogs | - \____ ___/ http://tinyfiledialogs.sourceforge.net - \| git clone http://git.code.sf.net/p/tinyfiledialogs/code tinyfd - - - License - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - ___________________________________________________________ - | | - | If you like this new PASCAL module please upvote | - | my stackoverflow answer on the PASCAL post | - | https://stackoverflow.com/a/59657117 | - |___________________________________________________________| - - See compilation instructions at the end of this file -} - -program Hello ; - -uses tinyfd ; - -var - lReturnedChar : Pchar; - lReturnedValue : Integer ; - lCReturnedString: String ; - lArrayOfChar: array[0..2] of byte = (0,0,255); - -begin - writeln ('Hello tinyfd'); - tinyfd_beep(); - - lReturnedChar := tinyfd_inputBox('tinyfd_query', '', ''); - writeln (tinyfd_response); - if lReturnedChar <> nil then - lReturnedValue := tinyfd_messageBox('Graphic Mode',tinyfd_response, 'okcancel', 'info', 1) - else - lReturnedValue := tinyfd_messageBox('Console Mode',tinyfd_response, 'okcancel', 'info', 1); - - if lReturnedValue = 0 then exit; - - lReturnedValue := tinyfd_messageBox('A tinyfd title','graphic dialogs [Yes] / console mode [No]', 'yesno', 'question', 1); - if lReturnedValue = 0 then tinyfd_forceConsole := 1 ; - - tinyfd_notifyPopup('A tinyfd title', 'This is a notification', 'warning'); - - lReturnedChar := tinyfd_inputBox('A tinyfd title','This is an input box', ''); - if lReturnedChar = nil then exit; { detect cancel was pressed - no input is allowed } - lCReturnedString := StrPas(lReturnedChar); - writeln (lCReturnedString); - - lCReturnedString := tinyfd_inputBox('A tinyfd title','This is a password box', nil); - writeln (lCReturnedString); - if Length(lCReturnedString) = 0 then exit; { detect no input } - - lCReturnedString := tinyfd_saveFileDialog('Choose a filename to save to','lala.txt', 0, nil,nil); - writeln (lCReturnedString); - if Length(lCReturnedString) = 0 then exit; - - lCReturnedString := tinyfd_openFileDialog('Choose a filename to read from','../lala.txt', 0, nil, nil, 0); - writeln (lCReturnedString); - if Length(lCReturnedString) = 0 then exit; - - lCReturnedString := tinyfd_selectFolderDialog('Select a folder','../..'); - writeln (lCReturnedString); - if Length(lCReturnedString) = 0 then exit; - - lCReturnedString := tinyfd_colorChooser('A tinyfd title','', lArrayOfChar, lArrayOfChar); - writeln (lCReturnedString); -end. - -{ -gcc -c ../../tinyfiledialogs.c -fpc tinyfd.pp -fpc hello.pas -} diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/freepascal/tinyfd.pp b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/freepascal/tinyfd.pp deleted file mode 100644 index 7826de0..0000000 --- a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/freepascal/tinyfd.pp +++ /dev/null @@ -1,138 +0,0 @@ -{ SPDX-License-Identifier: ZLIB -Copyright (c) 2014 - 2023 Guillaume Vareille http://ysengrin.com - _________ - / \ tinyfiledialogs v3.14 [Jan 26, 2025] zlib licence - |tiny file| - | dialogs | - \____ ___/ http://tinyfiledialogs.sourceforge.net - \| git clone http://git.code.sf.net/p/tinyfiledialogs/code tinyfd - - - License - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - ___________________________________________________________ - | | - | If you like this new PASCAL module please upvote | - | my stackoverflow answer on the PASCAL post | - | https://stackoverflow.com/a/59657117 | - |___________________________________________________________| -} - -unit tinyfd; -interface - -{$linklib c} - -{ Adapted from - Automatically converted by H2Pas 1.0.0 from ../../tinyfiledialogs.h - The following command line parameters were used: - ../../tinyfiledialogs.h - -o - tinyfd.pp -} - - Type - Pchar = ^char; - -{$ifdef _WIN32} - Pwchar_t = ^wchar_t; -{$ENDIF} - - -{$IFDEF FPC} -{$PACKRECORDS C} -{$ENDIF} - -{$ifdef _WIN32} - var - tinyfd_winUtf8 : longint;cvar;external; - - function tinyfd_utf8toMbcs(aUtf8string:Pchar):Pchar;cdecl; - function tinyfd_utf16toMbcs(aUtf16string:Pwchar_t):Pchar;cdecl; - function tinyfd_mbcsTo16(aMbcsString:Pchar):Pwchar_t;cdecl; - function tinyfd_mbcsTo8(aMbcsString:Pchar):Pchar;cdecl; - function tinyfd_utf8to16(aUtf8string:Pchar):Pwchar_t;cdecl; - function tinyfd_utf16to8(aUtf16string:Pwchar_t):Pchar;cdecl; -{$endif} - - function tinyfd_getGlobalChar(aCharVariableName:Pchar):Pchar;cdecl; - function tinyfd_getGlobalInt(aIntVariableName:Pchar):longint;cdecl; - function tinyfd_setGlobalInt(aIntVariableName:Pchar; aValue:longint):longint;cdecl; - - var - tinyfd_version : array[0..7] of char;cvar;external; - tinyfd_needs : Pchar;cvar;external; - tinyfd_verbose : longint;cvar;external; - tinyfd_silent : longint;cvar;external; - tinyfd_allowCursesDialogs : longint;cvar;external; - tinyfd_forceConsole : longint;cvar;external; - {tinyfd_assumeGraphicDisplay : longint;cvar;external;} - tinyfd_response : array[0..1023] of char;cvar;external; - - procedure tinyfd_beep;cdecl; - function tinyfd_notifyPopup(aTitle:Pchar; aMessage:Pchar; aIconType:Pchar):longint;cdecl; - function tinyfd_messageBox(aTitle:Pchar; aMessage:Pchar; aDialogType:Pchar; aIconType:Pchar; aDefaultButton:longint):longint;cdecl; - function tinyfd_inputBox(aTitle:Pchar; aMessage:Pchar; aDefaultInput:Pchar):Pchar;cdecl; - function tinyfd_saveFileDialog(aTitle:Pchar; aDefaultPathAndFile:Pchar; aNumOfFilterPatterns:longint; aFilterPatterns:PPchar; aSingleFilterDescription:Pchar):Pchar;cdecl; - function tinyfd_openFileDialog(aTitle:Pchar; aDefaultPathAndFile:Pchar; aNumOfFilterPatterns:longint; aFilterPatterns:PPchar; aSingleFilterDescription:Pchar;aAllowMultipleSelects:longint):Pchar;cdecl; - function tinyfd_selectFolderDialog(aTitle:Pchar; aDefaultPath:Pchar):Pchar;cdecl; - function tinyfd_colorChooser(aTitle:Pchar; aDefaultHexRGB:Pchar; aDefaultRGB:array of byte; aoResultRGB:array of byte):Pchar;cdecl; - -{$ifdef _WIN32} - function tinyfd_notifyPopupW(aTitle:Pwchar_t; aMessage:Pwchar_t; aIconType:Pwchar_t):longint;cdecl; - function tinyfd_messageBoxW(aTitle:Pwchar_t; aMessage:Pwchar_t; aDialogType:Pwchar_t; aIconType:Pwchar_t; aDefaultButton:longint):longint;cdecl; - function tinyfd_inputBoxW(aTitle:Pwchar_t; aMessage:Pwchar_t; aDefaultInput:Pwchar_t):Pwchar_t;cdecl; - function tinyfd_saveFileDialogW(aTitle:Pwchar_t; aDefaultPathAndFile:Pwchar_t; aNumOfFilterPatterns:longint; aFilterPatterns:PPwchar_t; aSingleFilterDescription:Pwchar_t):Pwchar_t;cdecl; - function tinyfd_openFileDialogW(aTitle:Pwchar_t; aDefaultPathAndFile:Pwchar_t; aNumOfFilterPatterns:longint; aFilterPatterns:PPwchar_t; aSingleFilterDescription:Pwchar_t;aAllowMultipleSelects:longint):Pwchar_t;cdecl; - function tinyfd_selectFolderDialogW(aTitle:Pwchar_t; aDefaultPath:Pwchar_t):Pwchar_t;cdecl; - function tinyfd_colorChooserW(aTitle:Pwchar_t; aDefaultHexRGB:Pwchar_t; aDefaultRGB:array of byte; aoResultRGB:array of byte):Pwchar_t;cdecl; -{$endif} - -implementation - -{$Link 'tinyfiledialogs.o'} - -{$ifdef _WIN32} - function tinyfd_utf8toMbcs(aUtf8string:Pchar):Pchar;cdecl;external; - function tinyfd_utf16toMbcs(aUtf16string:Pwchar_t):Pchar;cdecl;external; - function tinyfd_mbcsTo16(aMbcsString:Pchar):Pwchar_t;cdecl;external; - function tinyfd_mbcsTo8(aMbcsString:Pchar):Pchar;cdecl;external; - function tinyfd_utf8to16(aUtf8string:Pchar):Pwchar_t;cdecl;external; - function tinyfd_utf16to8(aUtf16string:Pwchar_t):Pchar;cdecl;external; -{$endif} - - function tinyfd_getGlobalChar(aCharVariableName:Pchar):Pchar;cdecl;external; - function tinyfd_getGlobalInt(aIntVariableName:Pchar):longint;cdecl;external; - function tinyfd_setGlobalInt(aIntVariableName:Pchar; aValue:longint):longint;cdecl;external; - - procedure tinyfd_beep;cdecl;external; - function tinyfd_notifyPopup(aTitle:Pchar; aMessage:Pchar; aIconType:Pchar):longint;cdecl;external; - function tinyfd_messageBox(aTitle:Pchar; aMessage:Pchar; aDialogType:Pchar; aIconType:Pchar; aDefaultButton:longint):longint;cdecl;external; - function tinyfd_inputBox(aTitle:Pchar; aMessage:Pchar; aDefaultInput:Pchar):Pchar;cdecl;external; - function tinyfd_saveFileDialog(aTitle:Pchar; aDefaultPathAndFile:Pchar; aNumOfFilterPatterns:longint; aFilterPatterns:PPchar; aSingleFilterDescription:Pchar):Pchar;cdecl;external; - function tinyfd_openFileDialog(aTitle:Pchar; aDefaultPathAndFile:Pchar; aNumOfFilterPatterns:longint; aFilterPatterns:PPchar; aSingleFilterDescription:Pchar;aAllowMultipleSelects:longint):Pchar;cdecl;external; - function tinyfd_selectFolderDialog(aTitle:Pchar; aDefaultPath:Pchar):Pchar;cdecl;external; - function tinyfd_colorChooser(aTitle:Pchar; aDefaultHexRGB:Pchar; aDefaultRGB:array of byte; aoResultRGB:array of byte):Pchar;cdecl;external; - -{$ifdef _WIN32} - function tinyfd_notifyPopupW(aTitle:Pwchar_t; aMessage:Pwchar_t; aIconType:Pwchar_t):longint;cdecl;external; - function tinyfd_messageBoxW(aTitle:Pwchar_t; aMessage:Pwchar_t; aDialogType:Pwchar_t; aIconType:Pwchar_t; aDefaultButton:longint):longint;cdecl;external; - function tinyfd_inputBoxW(aTitle:Pwchar_t; aMessage:Pwchar_t; aDefaultInput:Pwchar_t):Pwchar_t;cdecl;external; - function tinyfd_saveFileDialogW(aTitle:Pwchar_t; aDefaultPathAndFile:Pwchar_t; aNumOfFilterPatterns:longint; aFilterPatterns:PPwchar_t; aSingleFilterDescription:Pwchar_t):Pwchar_t;cdecl;external; - function tinyfd_openFileDialogW(aTitle:Pwchar_t; aDefaultPathAndFile:Pwchar_t; aNumOfFilterPatterns:longint; aFilterPatterns:PPwchar_t; aSingleFilterDescription:Pwchar_t;aAllowMultipleSelects:longint):Pwchar_t;cdecl;external; - function tinyfd_selectFolderDialogW(aTitle:Pwchar_t; aDefaultPath:Pwchar_t):Pwchar_t;cdecl;external; - function tinyfd_colorChooserW(aTitle:Pwchar_t; aDefaultHexRGB:Pwchar_t; aDefaultRGB:array of byte; aoResultRGB:array of byte):Pwchar_t;cdecl;external; -{$endif} - -end. diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs.r b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs.r deleted file mode 100644 index b2ae3f3..0000000 --- a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs.r +++ /dev/null @@ -1,157 +0,0 @@ -# SPDX-License-Identifier: ZLIB -# Copyright (c) 2014 - 2023 Guillaume Vareille http://ysengrin.com -# _________ -# / \ tinyfiledialogs v3.14.0 [Sep 12, 2023] -# |tiny file| -# | dialogs | -# \____ ___/ http://tinyfiledialogs.sourceforge.net -# \| git clone http://git.code.sf.net/p/tinyfiledialogs/code tinyfd - -# - License - -# This software is provided 'as-is', without any express or implied -# warranty. In no event will the authors be held liable for any damages -# arising from the use of this software. -# Permission is granted to anyone to use this software for any purpose, -# including commercial applications, and to alter it and redistribute it -# freely, subject to the following restrictions: -# 1. The origin of this software must not be misrepresented; you must not -# claim that you wrote the original software. If you use this software -# in a product, an acknowledgment in the product documentation would be -# appreciated but is not required. -# 2. Altered source versions must be plainly marked as such, and must not be -# misrepresented as being the original software. -# 3. This notice may not be removed or altered from any source distribution. -# ___________________________________________________________ -# | | -# | If you like this new R interface please upvote | -# | my stackoverflow answer on the R post | -# | https://stackoverflow.com/a/77091332 | -# |___________________________________________________________| - - - - -# Load the appropriate tinyfd library - -# Macintosh -dyn.load("tinyfiledialogsAppleSilicon.dylib") -#dyn.load("tinyfiledialogsIntel.dylib") - -# Linux on Intel -#dyn.load("tinyfiledialogsLinux86.so") -#dyn.load("tinyfiledialogsLinux64.so") - -# Windows on Intel -#dyn.load("tinyfiledialogs32.dll") -#dyn.load("tinyfiledialogs64.dll") - - -# R interface to tinyfd C functions - -tinyfd_beep <- function() { - result <- .C("tinyfd_beep") - return(result) -} - - -tinyfd_notifyPopup <- function(aTitle, aMessage, aIconType) -{ - result <- .C("tinyfd_notifyPopup", - charToRaw(aTitle), - charToRaw(aMessage), - charToRaw(aIconType)) - - return(result) -} - - -tinyfd_messageBox <- function(aTitle , aMessage , aDialogType , aIconType , aDefaultButton) -{ - result <- .C("tfd_messageBox", - charToRaw(aTitle), - charToRaw(aMessage), - charToRaw(aDialogType), - charToRaw(aIconType), - lDefaultButton = as.integer(aDefaultButton) ) - - return(result$lDefaultButton) -} - - -tinyfd_inputBox <- function(aTitle , aMessage , aDefaultInput) # "NULL" for a password box -{ - result <- .C("tfd_inputBox", - charToRaw(aTitle), - charToRaw(aMessage), - lTextOutput = aDefaultInput ) - - if ( result$lTextOutput == "NULL" ) return() - else return(result$lTextOutput) -} - - -tinyfd_saveFileDialog <- function(aTitle, aDefaultPathAndFile, aNumOfFilterPatterns, - aFilterPatterns, aSingleFilterDescription ) -{ - result <- .C("tfd_saveFileDialog", - charToRaw(aTitle), - lSaveFile = aDefaultPathAndFile , - as.integer(aNumOfFilterPatterns) , - aFilterPatterns , - charToRaw(aSingleFilterDescription) ) - - if ( result$lSaveFile == "NULL" ) return() - else return(result$lSaveFile) -} - - -tinyfd_openFileDialog <- function(aTitle, aDefaultPathAndFile , aNumOfFilterPatterns, - aFilterPatterns, aSingleFilterDescription , aAllowMultipleSelects ) -{ - result <- .C("tfd_openFileDialog", - charToRaw(aTitle), - lOpenFile = aDefaultPathAndFile , - as.integer(aNumOfFilterPatterns) , - aFilterPatterns , - charToRaw(aSingleFilterDescription) , - as.integer(aAllowMultipleSelects) ) - - if ( result$lOpenFile == "NULL" ) return() - else return(result$lOpenFile) -} - - -tinyfd_selectFolderDialog <- function(aTitle, aDefaultPath) -{ - result <- .C("tfd_selectFolderDialog", - charToRaw(aTitle), - lSelectedFolder = aDefaultPath ) - - if ( result$lSelectedFolder == "NULL" ) return() - else return(result$lSelectedFolder) -} - - -tinyfd_colorChooser <- function(aTitle, aDefaultHexRGB) # "#FF0000" -{ - result <- .C("tfd_colorChooser", - charToRaw(aTitle), - lOutputHexRGB = aDefaultHexRGB ) - - if ( result$lOutputHexRGB == "NULL" ) return() - else return(result$lOutputHexRGB) -} - - -# example R calls to tinyfd functions - -tinyfd_beep() -tinyfd_notifyPopup( "a title" , "a message", "warning" ) -tinyfd_messageBox( "a title" , "a message" , "yesno" , "info" , 1 ) -tinyfd_inputBox( "a title" , "a message" , "NULL" ) # "NULL" for a password box -tinyfd_saveFileDialog( "a title" , "/Users/bardos/Documents/test.txt" , 0 , "" , "") -tinyfd_saveFileDialog( "a title" , "/Users/bardos/Documents/test.txt" , 1 , c ("*.txt","*.jpg") , "some files") -lFilename <- tinyfd_openFileDialog( "a title" , "/Users/bardos/Documents/" , 1 , c ("*.txt","*.jpg") , "some files" , 0 ) -lFilename -tinyfd_selectFolderDialog( "a title" , "/Users/bardos/Devs" ) -tinyfd_colorChooser( "a title" , "#FF0000" ) diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs32.dll b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs32.dll deleted file mode 100644 index 91f7019..0000000 Binary files a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs32.dll and /dev/null differ diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs32.lib b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs32.lib deleted file mode 100644 index ea8a5ca..0000000 Binary files a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs32.lib and /dev/null differ diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs64.dll b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs64.dll deleted file mode 100644 index 8aa3991..0000000 Binary files a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs64.dll and /dev/null differ diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs64.lib b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs64.lib deleted file mode 100644 index 3d74b2e..0000000 Binary files a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs64.lib and /dev/null differ diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsAppleSilicon.dylib b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsAppleSilicon.dylib deleted file mode 100644 index e76c77d..0000000 Binary files a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsAppleSilicon.dylib and /dev/null differ diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsIntel.dylib b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsIntel.dylib deleted file mode 100644 index 40a51c8..0000000 Binary files a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsIntel.dylib and /dev/null differ diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsLinux64.so b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsLinux64.so deleted file mode 100644 index f54319e..0000000 Binary files a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsLinux64.so and /dev/null differ diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsLinux86.so b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsLinux86.so deleted file mode 100644 index 099f4d7..0000000 Binary files a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsLinux86.so and /dev/null differ diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsTest.cs b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsTest.cs deleted file mode 100644 index eaa293a..0000000 --- a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogsTest.cs +++ /dev/null @@ -1,153 +0,0 @@ -/* SPDX-License-Identifier: ZLIB -Copyright (c) 2014 - 2023 Guillaume Vareille http://ysengrin.com - _________ - / \ tinyfiledialogsTest.cs v3.15.1 [Nov 19, 2023] zlib licence - |tiny file| C# bindings created [2015] - | dialogs | - \____ ___/ http://tinyfiledialogs.sourceforge.net - \| git clone http://git.code.sf.net/p/tinyfiledialogs/code tinyfd - ____________________________________________ - | | - | email: tinyfiledialogs at ysengrin.com | - |____________________________________________| - -If you like tinyfiledialogs, please upvote my stackoverflow answer -https://stackoverflow.com/a/47651444 - -- License - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Runtime.InteropServices; - -class tinyfd -{ - public const string mDllLocation = "C:\\Users\\frogs\\yomspace2015\\yomlibs\\tinyfd\\dll_cs_lua_fortran_pascal\\tinyfiledialogs32.dll"; - - // cross platform UTF8 - [DllImport(mDllLocation, CallingConvention = CallingConvention.Cdecl)] - public static extern void tinyfd_beep(); - - [DllImport(mDllLocation, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] - public static extern int tinyfd_notifyPopup(string aTitle, string aMessage, string aIconType); - [DllImport(mDllLocation, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] - public static extern int tinyfd_messageBox(string aTitle, string aMessage, string aDialogType, string aIconType, int aDefaultButton); - [DllImport(mDllLocation, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr tinyfd_inputBox(string aTitle, string aMessage, string aDefaultInput); - [DllImport(mDllLocation, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr tinyfd_saveFileDialog(string aTitle, string aDefaultPathAndFile, int aNumOfFilterPatterns, string[] aFilterPatterns, string aSingleFilterDescription); - [DllImport(mDllLocation, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr tinyfd_openFileDialog(string aTitle, string aDefaultPathAndFile, int aNumOfFilterPatterns, string[] aFilterPatterns, string aSingleFilterDescription, int aAllowMultipleSelects); - [DllImport(mDllLocation, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr tinyfd_selectFolderDialog(string aTitle, string aDefaultPathAndFile); - [DllImport(mDllLocation, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr tinyfd_colorChooser(string aTitle, string aDefaultHexRGB, byte[] aDefaultRGB, byte[] aoResultRGB); - - // windows only utf16 - [DllImport(mDllLocation, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] - public static extern int tinyfd_notifyPopupW(string aTitle, string aMessage, string aIconType); - [DllImport(mDllLocation, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] - public static extern int tinyfd_messageBoxW(string aTitle, string aMessage, string aDialogType, string aIconType, int aDefaultButton); - [DllImport(mDllLocation, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr tinyfd_inputBoxW(string aTitle, string aMessage, string aDefaultInput); - [DllImport(mDllLocation, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr tinyfd_saveFileDialogW(string aTitle, string aDefaultPathAndFile, int aNumOfFilterPatterns, string[] aFilterPatterns, string aSingleFilterDescription); - [DllImport(mDllLocation, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr tinyfd_openFileDialogW(string aTitle, string aDefaultPathAndFile, int aNumOfFilterPatterns, string[] aFilterPatterns, string aSingleFilterDescription, int aAllowMultipleSelects); - [DllImport(mDllLocation, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr tinyfd_selectFolderDialogW(string aTitle, string aDefaultPathAndFile); - [DllImport(mDllLocation, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr tinyfd_colorChooserW(string aTitle, string aDefaultHexRGB, byte[] aDefaultRGB, byte[] aoResultRGB); - - // cross platform - [DllImport(mDllLocation, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr tinyfd_getGlobalChar(string aCharVariableName); - [DllImport(mDllLocation, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] - public static extern int tinyfd_getGlobalInt(string aIntVariableName); - [DllImport(mDllLocation, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] - public static extern int tinyfd_setGlobalInt(string aIntVariableName, int aValue); - - // ******** a complicated way to access tinyfd's global variables - // [DllImport("kernel32.dll", SetLastError = true)] internal static extern IntPtr GetProcAddress(IntPtr hModule, string procName); - // [DllImport("kernel32.dll", SetLastError = true)] internal static extern IntPtr LoadLibrary(string lpszLib); -} - -namespace ConsoleApplication1 -{ - class tinyfiledialogsTest - { - private static string stringFromAnsi(IntPtr ptr) // for UTF-8/char - { - return System.Runtime.InteropServices.Marshal.PtrToStringAnsi(ptr); - } - - private static string stringFromUni(IntPtr ptr) // for UTF-16/wchar_t - { - return System.Runtime.InteropServices.Marshal.PtrToStringUni(ptr); - } - - [STAThread] - static void Main(string[] args) - { - // ******** a simple way to access tinyfd's global variables - IntPtr lTheVersionText = tinyfd.tinyfd_getGlobalChar("tinyfd_version"); - string lTheVersionString = stringFromAnsi(lTheVersionText); - tinyfd.tinyfd_messageBox("tinyfd_version", lTheVersionString, "ok", "info", 1); - - // cross platform utf-8 - IntPtr lTheInputText = tinyfd.tinyfd_inputBox("input box", "gimme a string", "A text to input"); - string lTheInputString = stringFromAnsi(lTheInputText); - int lala = tinyfd.tinyfd_messageBox("a message box char", lTheInputString, "ok", "warning", 1); - - lTheInputText = tinyfd.tinyfd_selectFolderDialog("select a folder", ""); - lTheInputString = stringFromAnsi(lTheInputText); - lala = tinyfd.tinyfd_messageBox("the chosen folder", lTheInputString, "ok", "warning", 1); - - // windows only utf-16 - IntPtr lAnotherInputTextW = tinyfd.tinyfd_inputBoxW("input box", "gimme another string", "Another text to input"); - string lAnotherInputString = stringFromUni(lAnotherInputTextW); - int lili = tinyfd.tinyfd_messageBoxW("a message box wchar_t", lAnotherInputString, "ok", "info", 1); - - lAnotherInputTextW = tinyfd.tinyfd_selectFolderDialogW("select a folderW", ""); - lAnotherInputString = stringFromUni(lAnotherInputTextW); - lili = tinyfd.tinyfd_messageBoxW("a message box wchar_t", lAnotherInputString, "ok", "info", 1); - - tinyfd.tinyfd_notifyPopupW("just a dummy warning", lTheVersionString, "warning"); - - // cross platform - tinyfd.tinyfd_beep(); - - // ******** a complicated way to access tinyfd's global variables (uncomment the last 2 lines in the class tinyfd above) - // IntPtr tinyfd_DLL = tinyfd.LoadLibrary(tinyfd.mDllLocation); - // if (tinyfd_DLL != IntPtr.Zero) - // { - // IntPtr lVersionAddr = tinyfd.GetProcAddress(tinyfd_DLL, "tinyfd_version"); - // string lVersion = stringFromAnsi(lVersionAddr); - // IntPtr lForceConsoleAddr = tinyfd.GetProcAddress(tinyfd_DLL, "tinyfd_forceConsole"); - // if (lForceConsoleAddr != IntPtr.Zero) - // { - // int lForceConsoleValue = Marshal.ReadInt32(lForceConsoleAddr); - // tinyfd.tinyfd_notifyPopup(lVersion, lForceConsoleValue.ToString(), "info"); - // Marshal.WriteInt32(lForceConsoleAddr, 0); - // } - // } - } - } -} diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_dll_mingw-32.bat b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_dll_mingw-32.bat deleted file mode 100644 index efea209..0000000 --- a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_dll_mingw-32.bat +++ /dev/null @@ -1,29 +0,0 @@ - -:: cd C:\Users\frogs\yomspace2015\yomlibs\tinyfd\dll_cs_lua_fortran_pascal - -\MinGW32-49\bin\gcc -ansi -std=gnu89 -pedantic -Wstrict-prototypes -Wall -c ../tinyfiledialogs.c -\MinGW32-49\bin\dlltool --export-all-symbols -l tinyfiledialogs32.lib tinyfiledialogs.o --dllname tinyfiledialogs32.dll -\MinGW32-49\bin\gcc -shared -static-libgcc tinyfiledialogs.o -o tinyfiledialogs32.dll -LC:/MinGW/lib -lcomdlg32 -lole32 -\MinGW32-49\bin\gcc -ansi -std=gnu89 -pedantic -Wstrict-prototypes -Wall -o hello32.exe ../hello.c tinyfiledialogs32.lib -\MinGW32-49\bin\gcc -ansi -std=gnu89 -pedantic -Wstrict-prototypes -Wall -o helloW32.exe ../hello_wchar_t.c tinyfiledialogs32.lib - -\MinGW32-49\bin\gcc -pedantic -Wstrict-prototypes -Wall -c ../tinyfiledialogs.c -\MinGW32-49\bin\dlltool --export-all-symbols -l tinyfiledialogs32.lib tinyfiledialogs.o --dllname tinyfiledialogs32.dll -\MinGW32-49\bin\gcc -shared -static-libgcc tinyfiledialogs.o -o tinyfiledialogs32.dll -LC:/MinGW/lib -lcomdlg32 -lole32 -\MinGW32-49\bin\gcc -pedantic -Wstrict-prototypes -Wall -o hello32.exe ../hello.c tinyfiledialogs32.lib -\MinGW32-49\bin\gcc -pedantic -Wstrict-prototypes -Wall -o helloW32.exe ../hello_wchar_t.c tinyfiledialogs32.lib - - -\MinGW32-63\bin\gcc -ansi -std=gnu89 -pedantic -Wstrict-prototypes -Wall -c ../tinyfiledialogs.c -\MinGW32-63\bin\dlltool --export-all-symbols -l tinyfiledialogs32.lib tinyfiledialogs.o --dllname tinyfiledialogs32.dll -\MinGW32-63\bin\gcc -shared -static-libgcc tinyfiledialogs.o -o tinyfiledialogs32.dll -LC:/MinGW63/lib -lcomdlg32 -lole32 -\MinGW32-63\bin\gcc -ansi -std=gnu89 -pedantic -Wstrict-prototypes -Wall -o hello32.exe ../hello.c tinyfiledialogs32.lib -\MinGW32-63\bin\gcc -ansi -std=gnu89 -pedantic -Wstrict-prototypes -Wall -o helloW32.exe ../hello_wchar_t.c tinyfiledialogs32.lib - -\MinGW32-63\bin\gcc -pedantic -Wstrict-prototypes -Wall -c ../tinyfiledialogs.c -\MinGW32-63\bin\dlltool --export-all-symbols -l tinyfiledialogs32.lib tinyfiledialogs.o --dllname tinyfiledialogs32.dll -\MinGW32-63\bin\gcc -shared -static-libgcc tinyfiledialogs.o -o tinyfiledialogs32.dll -LC:/MinGW63/lib -lcomdlg32 -lole32 -\MinGW32-63\bin\gcc -pedantic -Wstrict-prototypes -Wall -o hello32.exe ../hello.c tinyfiledialogs32.lib -\MinGW32-63\bin\gcc -pedantic -Wstrict-prototypes -Wall -o helloW32.exe ../hello_wchar_t.c tinyfiledialogs32.lib - -@REM -std=gnu89 -Ofast -std=c++11 diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_dll_mingw-w64-720.bat b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_dll_mingw-w64-720.bat deleted file mode 100644 index e37e000..0000000 --- a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_dll_mingw-w64-720.bat +++ /dev/null @@ -1,29 +0,0 @@ -:: cd C:\Users\frogs\yomspace2015\yomlibs\tinyfd\dll_cs_lua_fortran_pascal - -:: x86 -\mingw-w64-720\mingw32\bin\gcc -ansi -std=c89 -pedantic -Wstrict-prototypes -m32 -Wall -c ../tinyfiledialogs.c -\mingw-w64-720\mingw32\bin\dlltool --export-all-symbols -l tinyfiledialogs32.lib tinyfiledialogs.o --dllname tinyfiledialogs32.dll -\mingw-w64-720\mingw32\bin\gcc -m32 -shared -static-libgcc tinyfiledialogs.o -o tinyfiledialogs32.dll -L\mingw-w64-720\mingw32\lib -lcomdlg32 -lole32 -\mingw-w64-720\mingw32\bin\gcc -ansi -std=c89 -pedantic -Wstrict-prototypes -m32 -Wall -o hello32.exe ../hello.c tinyfiledialogs32.lib -\mingw-w64-720\mingw32\bin\gcc -ansi -std=c89 -pedantic -Wstrict-prototypes -m32 -Wall -o helloW32.exe ../hello_wchar_t.c tinyfiledialogs32.lib - -\mingw-w64-720\mingw32\bin\gcc -pedantic -Wstrict-prototypes -m32 -Wall -c ../tinyfiledialogs.c -\mingw-w64-720\mingw32\bin\dlltool --export-all-symbols -l tinyfiledialogs32.lib tinyfiledialogs.o --dllname tinyfiledialogs32.dll -\mingw-w64-720\mingw32\bin\gcc -m32 -shared -static-libgcc tinyfiledialogs.o -o tinyfiledialogs32.dll -L\mingw-w64-720\mingw32\lib -lcomdlg32 -lole32 -\mingw-w64-720\mingw32\bin\gcc -pedantic -Wstrict-prototypes -m32 -Wall -o hello32.exe ../hello.c tinyfiledialogs32.lib -\mingw-w64-720\mingw32\bin\gcc -pedantic -Wstrict-prototypes -m32 -Wall -o helloW32.exe ../hello_wchar_t.c tinyfiledialogs32.lib - -:: x64 -\mingw-w64-720\mingw64\bin\gcc -ansi -std=c89 -pedantic -Wstrict-prototypes -m64 -Wall -c ../tinyfiledialogs.c -\mingw-w64-720\mingw64\bin\dlltool --export-all-symbols -l tinyfiledialogs64.lib tinyfiledialogs.o --dllname tinyfiledialogs64.dll -\mingw-w64-720\mingw64\bin\gcc -m64 -shared -static-libgcc tinyfiledialogs.o -o tinyfiledialogs64.dll -L\mingw-w64-720\mingw64\lib -lcomdlg32 -lole32 -\mingw-w64-720\mingw64\bin\gcc -ansi -std=c89 -pedantic -Wstrict-prototypes -m64 -Wall -o hello64.exe ../hello.c tinyfiledialogs64.lib -\mingw-w64-720\mingw64\bin\gcc -ansi -std=c89 -pedantic -Wstrict-prototypes -m64 -Wall -o helloW64.exe ../hello_wchar_t.c tinyfiledialogs64.lib - -\mingw-w64-720\mingw64\bin\gcc -pedantic -Wstrict-prototypes -m64 -Wall -c ../tinyfiledialogs.c -\mingw-w64-720\mingw64\bin\dlltool --export-all-symbols -l tinyfiledialogs64.lib tinyfiledialogs.o --dllname tinyfiledialogs64.dll -\mingw-w64-720\mingw64\bin\gcc -m64 -shared -static-libgcc tinyfiledialogs.o -o tinyfiledialogs64.dll -L\mingw-w64-720\mingw64\lib -lcomdlg32 -lole32 -\mingw-w64-720\mingw64\bin\gcc -pedantic -Wstrict-prototypes -m64 -Wall -o hello64.exe ../hello.c tinyfiledialogs64.lib -\mingw-w64-720\mingw64\bin\gcc -pedantic -Wstrict-prototypes -m64 -Wall -o helloW64.exe ../hello_wchar_t.c tinyfiledialogs64.lib - -@REM \mingw-w64\mingw64\bin\gcc -std=c89 -o hello.exe tinyfiledialogs.c hello.c -LC:\mingw-w64\mingw64\lib -lcomdlg32 -lole32 diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_dll_mingw-w64-810.bat b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_dll_mingw-w64-810.bat deleted file mode 100644 index a5e7ae7..0000000 --- a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_dll_mingw-w64-810.bat +++ /dev/null @@ -1,29 +0,0 @@ -:: cd C:\Users\frogs\yomspace2015\yomlibs\tinyfd\dll_cs_lua_R_fortran_pascal - -:: x86 -\mingw-w64-13.2.0\mingw32\bin\gcc -ansi -std=c89 -pedantic -Wstrict-prototypes -m32 -Wall -c ..\tinyfiledialogs.c -\mingw-w64-13.2.0\mingw32\bin\dlltool --export-all-symbols -l tinyfiledialogs32.lib tinyfiledialogs.o --dllname tinyfiledialogs32.dll -\mingw-w64-13.2.0\mingw32\bin\gcc -m32 -shared -static-libgcc tinyfiledialogs.o -o tinyfiledialogs32.dll -L\mingw-w64-13.2.0\mingw32\lib -lcomdlg32 -lole32 -\mingw-w64-13.2.0\mingw32\bin\gcc -ansi -std=c89 -pedantic -Wstrict-prototypes -m32 -Wall -o hello32.exe ..\hello.c tinyfiledialogs32.lib -\mingw-w64-13.2.0\mingw32\bin\gcc -ansi -std=c89 -pedantic -Wstrict-prototypes -m32 -Wall -o helloW32.exe ..\hello_wchar_t.c tinyfiledialogs32.lib - -\mingw-w64-13.2.0\mingw32\bin\gcc -pedantic -Wstrict-prototypes -m32 -Wall -c ..\tinyfiledialogs.c -\mingw-w64-13.2.0\mingw32\bin\dlltool --export-all-symbols -l tinyfiledialogs32.lib tinyfiledialogs.o --dllname tinyfiledialogs32.dll -\mingw-w64-13.2.0\mingw32\bin\gcc -m32 -shared -static-libgcc tinyfiledialogs.o -o tinyfiledialogs32.dll -L\mingw-w64-13.2.0\mingw32\lib -lcomdlg32 -lole32 -\mingw-w64-13.2.0\mingw32\bin\gcc -pedantic -Wstrict-prototypes -m32 -Wall -o hello32.exe ..\hello.c tinyfiledialogs32.lib -\mingw-w64-13.2.0\mingw32\bin\gcc -pedantic -Wstrict-prototypes -m32 -Wall -o helloW32.exe ..\hello_wchar_t.c tinyfiledialogs32.lib - -:: x64 -\mingw-w64-13.2.0\mingw64\bin\gcc -ansi -std=c89 -pedantic -Wstrict-prototypes -m64 -Wall -c ..\tinyfiledialogs.c -\mingw-w64-13.2.0\mingw64\bin\dlltool --export-all-symbols -l tinyfiledialogs64.lib tinyfiledialogs.o --dllname tinyfiledialogs64.dll -\mingw-w64-13.2.0\mingw64\bin\gcc -m64 -shared -static-libgcc tinyfiledialogs.o -o tinyfiledialogs64.dll -L\mingw-w64-13.2.0\mingw64\lib -lcomdlg32 -lole32 -\mingw-w64-13.2.0\mingw64\bin\gcc -ansi -std=c89 -pedantic -Wstrict-prototypes -m64 -Wall -o hello64.exe ..\hello.c tinyfiledialogs64.lib -\mingw-w64-13.2.0\mingw64\bin\gcc -ansi -std=c89 -pedantic -Wstrict-prototypes -m64 -Wall -o helloW64.exe ..\hello_wchar_t.c tinyfiledialogs64.lib - -\mingw-w64-13.2.0\mingw64\bin\gcc -pedantic -Wstrict-prototypes -m64 -Wall -c ..\tinyfiledialogs.c -\mingw-w64-13.2.0\mingw64\bin\dlltool --export-all-symbols -l tinyfiledialogs64.lib tinyfiledialogs.o --dllname tinyfiledialogs64.dll -\mingw-w64-13.2.0\mingw64\bin\gcc -m64 -shared -static-libgcc tinyfiledialogs.o -o tinyfiledialogs64.dll -L\mingw-w64-13.2.0\mingw64\lib -lcomdlg32 -lole32 -\mingw-w64-13.2.0\mingw64\bin\gcc -pedantic -Wstrict-prototypes -m64 -Wall -o hello64.exe ..\hello.c tinyfiledialogs64.lib -\mingw-w64-13.2.0\mingw64\bin\gcc -pedantic -Wstrict-prototypes -m64 -Wall -o helloW64.exe ..\hello_wchar_t.c tinyfiledialogs64.lib - -@REM \mingw-w64\mingw64\bin\gcc -std=c89 -o hello.exe tinyfiledialogs.c hello.c -LC:\mingw-w64\mingw64\lib -lcomdlg32 -lole32 diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_dylib.sh b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_dylib.sh deleted file mode 100644 index dd7d81b..0000000 --- a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_dylib.sh +++ /dev/null @@ -1,18 +0,0 @@ -#! /bin/sh - -# clang -c ../tinyfiledialogs.c -# clang -dynamiclib tinyfiledialogs.o -o tinyfiledialogsIntel.dylib -# clang -o hello.app ../hello.c ./tinyfiledialogsIntel.dylib - -clang -c ../tinyfiledialogs.c - -if [ `uname -s` = "Darwin" ]; then - echo Darwin - if [ `uname -m` = "x86_64" ]; then - echo x86_64 - clang -dynamiclib tinyfiledialogs.o -o tinyfiledialogsIntel.dylib - elif [ `uname -m` = "arm64" ]; then - echo arm64 - clang -dynamiclib tinyfiledialogs.o -o tinyfiledialogsAppleSilicon.dylib - fi -fi diff --git a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_so.sh b/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_so.sh deleted file mode 100644 index 2a40f9b..0000000 --- a/libs/tinyfiledialogs/dll_cs_lua_R_fortran_pascal/tinyfiledialogs_so.sh +++ /dev/null @@ -1,20 +0,0 @@ -#! /bin/sh - -if [ `uname -s` = "Linux" ]; then - echo Linux 32 - gcc -m32 -fPIC -shared -o tinyfiledialogsLinux86.so ../tinyfiledialogs.c - gcc -m32 -o hello ../hello.c ./tinyfiledialogsLinux86.so - - echo Linux 64 - gcc -m64 -fPIC -shared -o tinyfiledialogsLinux64.so ../tinyfiledialogs.c - gcc -m64 -o hello ../hello.c ./tinyfiledialogsLinux64.so -elif [ `uname -s` = "OpenBSD" ]; then - echo OpenBSD - clang -m32 -fPIC -shared -o tinyfiledialogsOpenBSDx86.so ../tinyfiledialogs.c - clang -m32 -o hello ../hello.c ./tinyfiledialogsOpenBSDx86.so - - clang -m64 -fPIC -shared -o tinyfiledialogsOpenBSDx64.so ../tinyfiledialogs.c - clang -m64 -o hello ../hello.c ./tinyfiledialogsOpenBSDx64.so -else - echo Other Unix -fi diff --git a/libs/tinyfiledialogs/hello.c b/libs/tinyfiledialogs/hello.c deleted file mode 100644 index 64476d3..0000000 --- a/libs/tinyfiledialogs/hello.c +++ /dev/null @@ -1,307 +0,0 @@ -/* SPDX-License-Identifier: Zlib -Copyright (c) 2014 - 2024 Guillaume Vareille http://ysengrin.com - ________________________________________________________________ - | | - | 100% compatible C C++ -> You can rename this .c file as .cpp | - |________________________________________________________________| - -********* TINY FILE DIALOGS OFFICIAL WEBSITE IS ON SOURCEFORGE ********* - _________ - / \ hello.c v3.19.3 [Jul 28, 2025] - |tiny file| Hello World file created [November 9, 2014] - | dialogs | - \____ ___/ http://tinyfiledialogs.sourceforge.net - \| git clone http://git.code.sf.net/p/tinyfiledialogs/code tinyfd - ____________________________________________ - | | - | email: tinyfiledialogs at ysengrin.com | - |____________________________________________| - _________________________________________________________________________________ - | | - | the windows only wchar_t UTF-16 prototypes are at the bottom of the header file | - |_________________________________________________________________________________| - _________________________________________________________ - | | - | on windows: - since v3.6 char is UTF-8 by default | - | - if you want MBCS set tinyfd_winUtf8 to 0 | - | - functions like fopen expect MBCS | - |_________________________________________________________| - ___________________________________________________________ - | | - | v3.10: NEW FORTRAN module fully implemented with examples | - | https://stackoverflow.com/a/59657117 | - |___________________________________________________________| - -If you like tinyfiledialogs, please upvote my stackoverflow answer -https://stackoverflow.com/a/47651444 - -- License - - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not -claim that you wrote the original software. If you use this software -in a product, an acknowledgment in the product documentation would be -appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be -misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -*/ - - -/* -- Here is the Hello World: - if a console is missing, it will use graphic dialogs - if a graphical display is absent, it will use console dialogs - (on windows the input box may take some time to open the first time) - - See compilation instructions at the end of this file - - __________________________________________ - | ______________________________________ | - | | | | - | | DO NOT USE USER INPUT IN THE DIALOGS | | - | |______________________________________| | - |__________________________________________| -*/ - -#include -#include -#include "tinyfiledialogs.h" - -#ifdef _MSC_VER -#pragma warning(disable:4996) /* silences warnings about strcpy strcat fopen*/ -#endif - -int main( int argc , char * argv[] ) -{ - int lIntValue; - char * lPassword; - char * lTheSaveFileName; - char * lTheOpenFileName; - char * lTheSelectFolderName; - char * lTheHexColor; - char * lWillBeGraphicMode; - unsigned char lRgbColor[3]; - FILE * lIn; - char lBuffer[1024]; - char const * lFilterPatterns[2] = { "*.txt", "*.text" }; - - (void)argv; /*to silence stupid visual studio warning*/ - - tinyfd_verbose = argc - 1; /* default is 0 */ - tinyfd_silent = 1; /* default is 1 */ - - tinyfd_forceConsole = 0; /* default is 0 */ - /* tinyfd_assumeGraphicDisplay = 0; */ /* default is 0 */ - -#ifdef _WIN32 - tinyfd_winUtf8 = 1; /* default is 1 */ -/* On windows, you decide if char holds 1:UTF-8(default) or 0:MBCS */ -/* Windows is not ready to handle UTF-8 as many char functions like fopen() expect MBCS filenames.*/ -/* This hello.c file has been prepared, on windows, to convert the filenames from UTF-8 to UTF-16 - and pass them passed to _wfopen() instead of fopen() */ -#endif - - tinyfd_beep(); - - lWillBeGraphicMode = tinyfd_inputBox("tinyfd_query", NULL, NULL); - - strcpy(lBuffer, "tinyfiledialogs\nv"); - strcat(lBuffer, tinyfd_version); - if (lWillBeGraphicMode) - { - strcat(lBuffer, "\ngraphic mode: "); - } - else - { - strcat(lBuffer, "\nconsole mode: "); - } - strcat(lBuffer, tinyfd_response); - tinyfd_messageBox("hello", lBuffer, "ok", "info", 0); - - tinyfd_notifyPopup("the title", "the message\n\tfrom outer-space", "info"); - - if ( lWillBeGraphicMode && ! tinyfd_forceConsole ) - { -#if 0 - lIntValue = tinyfd_messageBox("Hello World", "\ -graphic dialogs [Yes]\n\ -console mode [No]\n\ -quit [Cancel]", - "yesnocancel", "question", 1); - if (!lIntValue) return 1; - tinyfd_forceConsole = (lIntValue == 2); -#else - lIntValue = tinyfd_messageBox( - "Hello World", "graphic dialogs [Yes] / console mode [No]", - "yesno", "question", 1); - tinyfd_forceConsole = ! lIntValue; -#endif - } - - lPassword = tinyfd_inputBox( - "a password box", "your password will be revealed later", NULL); - - if (!lPassword) return 1; - - tinyfd_messageBox("your password as read", lPassword, "ok", "info", 1); - - lTheSaveFileName = tinyfd_saveFileDialog( - "let us save this password", - "./passwordFile.txt", - 2, - lFilterPatterns, - NULL); - - if (! lTheSaveFileName) - { - tinyfd_messageBox( - "Error", - "Save file name is NULL", - "ok", - "error", - 1); - return 1 ; - } - -#ifdef _WIN32 - if (tinyfd_winUtf8) - lIn = _wfopen(tinyfd_utf8to16(lTheSaveFileName), L"w"); /* the UTF-8 filename is converted to UTF-16 to open the file*/ - else -#endif - lIn = fopen(lTheSaveFileName, "w"); - - if (!lIn) - { - tinyfd_messageBox( - "Error", - "Can not open this file in write mode", - "ok", - "error", - 1); - return 1 ; - } - fputs(lPassword, lIn); - fclose(lIn); - - lTheOpenFileName = tinyfd_openFileDialog( - "let us read the password back", - "../", - 2, - lFilterPatterns, - "text files", - 1); - - if (! lTheOpenFileName) - { - tinyfd_messageBox( - "Error", - "Open file name is NULL", - "ok", - "error", - 0); - return 1 ; - } - -#ifdef _WIN32 - if (tinyfd_winUtf8) - lIn = _wfopen(tinyfd_utf8to16(lTheOpenFileName), L"r"); /* the UTF-8 filename is converted to UTF-16 */ - else -#endif - lIn = fopen(lTheOpenFileName, "r"); - - if (!lIn) - { - tinyfd_messageBox( - "Error", - "Can not open this file in read mode", - "ok", - "error", - 1); - return(1); - } - - lBuffer[0] = '\0'; - fgets(lBuffer, sizeof(lBuffer), lIn); - fclose(lIn); - - tinyfd_messageBox("your password as it was saved", lBuffer, "ok", "info", 1); - - lTheSelectFolderName = tinyfd_selectFolderDialog( - "let us just select a directory", "../../"); - - if (!lTheSelectFolderName) - { - tinyfd_messageBox( - "Error", - "Select folder name is NULL", - "ok", - "error", - 1); - return 1; - } - - tinyfd_messageBox("The selected folder is", lTheSelectFolderName, "ok", "info", 1); - - lTheHexColor = tinyfd_colorChooser( - "choose a nice color", - "#FF0077", - lRgbColor, - lRgbColor); - - if (!lTheHexColor) - { - tinyfd_messageBox( - "Error", - "hexcolor is NULL", - "ok", - "error", - 1); - return 1; - } - - tinyfd_messageBox("The selected hexcolor is", lTheHexColor, "ok", "info", 1); - - tinyfd_messageBox("your read password was", lPassword, "ok", "info", 1); - - return 0; -} - -#ifdef _MSC_VER -#pragma warning(default:4996) -#endif - -/* -OSX : -$ clang -o hello.app hello.c tinyfiledialogs.c -( or gcc ) - -UNIX : -$ gcc -o hello hello.c tinyfiledialogs.c -( or clang tcc owcc cc CC ) - -Windows : - MinGW needs gcc >= v4.9 otherwise some headers are incomplete - > gcc -o hello.exe hello.c tinyfiledialogs.c -LC:/mingw/lib -lcomdlg32 -lole32 - - TinyCC needs >= v0.9.27 (+ tweaks - contact me) otherwise some headers are missing - > tcc -o hello.exe hello.c tinyfiledialogs.c ^ - -isystem C:\tcc\winapi-full-for-0.9.27\include\winapi ^ - -lcomdlg32 -lole32 -luser32 -lshell32 - - Borland C: > bcc32c -o hello.exe hello.c tinyfiledialogs.c - OpenWatcom v2: create a character-mode executable project. - - VisualStudio : - Create a console application project, - it links against comdlg32.lib & ole32.lib. - - VisualStudio command line : - > cl hello.c tinyfiledialogs.c comdlg32.lib ole32.lib user32.lib shell32.lib /W4 -*/ diff --git a/libs/tinyfiledialogs/hello_wchar_t.c b/libs/tinyfiledialogs/hello_wchar_t.c deleted file mode 100644 index 664ee7e..0000000 --- a/libs/tinyfiledialogs/hello_wchar_t.c +++ /dev/null @@ -1,241 +0,0 @@ -/* SPDX-License-Identifier: Zlib -Copyright (c) 2014 - 2024 Guillaume Vareille http://ysengrin.com - ________________________________________________________________ - | | - | 100% compatible C C++ -> You can rename this .c file as .cpp | - |________________________________________________________________| - -********* TINY FILE DIALOGS OFFICIAL WEBSITE IS ON SOURCEFORGE ********* - _________ - / \ hello_wchar_t.c v3.19.3 [Jul 28, 2025] - |tiny file| Hello WCHAR_T windows only file created [November 9, 2014] - | dialogs | - \____ ___/ http://tinyfiledialogs.sourceforge.net - \| git clone http://git.code.sf.net/p/tinyfiledialogs/code tinyfd - ____________________________________________ - | | - | email: tinyfiledialogs at ysengrin.com | - |____________________________________________| - ________________________________________________________________ - | | - | this file is for windows only it uses wchar_t UTF-16 functions | - |________________________________________________________________| - -If you like tinyfiledialogs, please upvote my stackoverflow answer -https://stackoverflow.com/a/47651444 - -- License - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: -1. The origin of this software must not be misrepresented; you must not -claim that you wrote the original software. If you use this software -in a product, an acknowledgment in the product documentation would be -appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be -misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. - - See compilation instructions at the end of this file - - __________________________________________ - | ______________________________________ | - | | | | - | | DO NOT USE USER INPUT IN THE DIALOGS | | - | |______________________________________| | - |__________________________________________| -*/ - -#include -#include -#include - -#include "tinyfiledialogs.h" - -#ifdef _MSC_VER -#pragma warning(disable:4996) /* silences warning about wcscpy*/ -#endif - -int main(void) /* WINDOWS ONLY */ -{ - wchar_t * lPassword; - wchar_t * lTheSaveFileName; - wchar_t * lTheOpenFileName; - wchar_t * lTheSelectFolderName; - wchar_t * lTheHexColor; - wchar_t * lWillBeGraphicMode; - unsigned char lRgbColor[3]; - FILE * lIn; - wchar_t lWcharBuff[1024]; - wchar_t lBuffer[1024]; - wchar_t const * lFilterPatterns[2] = { L"*.txt", L"*.text" }; - - tinyfd_beep(); - - lWillBeGraphicMode = tinyfd_inputBoxW(L"tinyfd_query", NULL, NULL); - - wcscpy(lBuffer, L"v"); - mbstowcs(lWcharBuff, tinyfd_version, strlen(tinyfd_version) + 1); - wcscat(lBuffer, lWcharBuff); - if (lWillBeGraphicMode) - { - wcscat(lBuffer, L"\ngraphic mode: "); - } - else - { - wcscat(lBuffer, L"\nconsole mode: "); - } - mbstowcs(lWcharBuff, tinyfd_response, strlen(tinyfd_response)+1); - wcscat(lBuffer, lWcharBuff); - wcscat(lBuffer, L"\n"); - mbstowcs(lWcharBuff, tinyfd_needs + 78, strlen(tinyfd_needs + 78) + 1); - wcscat(lBuffer, lWcharBuff); - - tinyfd_messageBoxW(L"hello", lBuffer, L"ok", L"info", 0); - - tinyfd_notifyPopupW(L"the title", L"the message\n\tfrom outer-space", L"info"); - - lPassword = tinyfd_inputBoxW( - L"a password box", L"your password will be revealed later", NULL); - - if (!lPassword) return 1; - - lTheSaveFileName = tinyfd_saveFileDialogW( - L"let us save this password", - L"passwordFile.txt", - 2, - lFilterPatterns, - NULL); - - if (! lTheSaveFileName) - { - tinyfd_messageBoxW( - L"Error", - L"Save file name is NULL", - L"ok", - L"error", - 1); - return 1 ; - } - - lIn = _wfopen(lTheSaveFileName, L"wt, ccs=UNICODE"); - if (!lIn) - { - tinyfd_messageBoxW( - L"Error", - L"Can not open this file in write mode", - L"ok", - L"error", - 1); - return 1 ; - } - fputws(lPassword, lIn); - fclose(lIn); - - lTheOpenFileName = tinyfd_openFileDialogW( - L"let us read the password back", - L"", - 2, - lFilterPatterns, - NULL, - 0); - - if (! lTheOpenFileName) - { - tinyfd_messageBoxW( - L"Error", - L"Open file name is NULL", - L"ok", - L"error", - 1); - return 1 ; - } - - lIn = _wfopen(lTheOpenFileName, L"rt, ccs=UNICODE"); - - if (!lIn) - { - tinyfd_messageBoxW( - L"Error", - L"Can not open this file in read mode", - L"ok", - L"error", - 1); - return(1); - } - lBuffer[0] = '\0'; - fgetws(lBuffer, sizeof(lBuffer), lIn); - fclose(lIn); - - tinyfd_messageBoxW(L"your password is", - lBuffer, L"ok", L"info", 1); - - lTheSelectFolderName = tinyfd_selectFolderDialogW( - L"let us just select a directory", L"C:\\"); - - if (!lTheSelectFolderName) - { - tinyfd_messageBoxW( - L"Error", - L"Select folder name is NULL", - L"ok", - L"error", - 1); - return 1; - } - - tinyfd_messageBoxW(L"The selected folder is", - lTheSelectFolderName, L"ok", L"info", 1); - - lTheHexColor = tinyfd_colorChooserW( - L"choose a nice color", - L"#FF0077", - lRgbColor, - lRgbColor); - - if (!lTheHexColor) - { - tinyfd_messageBoxW( - L"Error", - L"hexcolor is NULL", - L"ok", - L"error", - 1); - return 1; - } - - tinyfd_messageBoxW(L"The selected hexcolor is", - lTheHexColor, L"ok", L"info", 1); - - tinyfd_messageBoxW(L"your password was", lPassword, L"ok", L"info", 1); - - return 0; -} - -#ifdef _MSC_VER -#pragma warning(default:4996) -#endif - - -/* -MinGW needs gcc >= v4.9 otherwise some headers are incomplete -> gcc -o hello.exe hello.c tinyfiledialogs.c -LC:/mingw/lib -lcomdlg32 -lole32 - -TinyCC needs >= v0.9.27 (+ tweaks - contact me) otherwise some headers are missing -> tcc -o hello.exe hello.c tinyfiledialogs.c ^ - -isystem C:\tcc\winapi-full-for-0.9.27\include\winapi ^ - -lcomdlg32 -lole32 -luser32 -lshell32 - -Borland C: > bcc32c -o hello.exe hello.c tinyfiledialogs.c -OpenWatcom v2: create a character-mode executable project. - -VisualStudio : - Create a console application project, - it links against comdlg32.lib & ole32.lib. - -VisualStudio command line : - > cl hello.c tinyfiledialogs.c comdlg32.lib ole32.lib user32.lib shell32.lib /W4 -*/ diff --git a/libs/tinyfiledialogs/more_dialogs/tinyfd_moredialogs.c b/libs/tinyfiledialogs/more_dialogs/tinyfd_moredialogs.c deleted file mode 100644 index bc2960f..0000000 --- a/libs/tinyfiledialogs/more_dialogs/tinyfd_moredialogs.c +++ /dev/null @@ -1,259 +0,0 @@ -/* SPDX-License-Identifier: ZLIB -Copyright (c) 2014 - 2023 Guillaume Vareille http://ysengrin.com - _________ - / \ tinyfiledialogs v3.9.0 [Nov 3, 2022] zlib licence - |tiny file| - | dialogs | - \____ ___/ http://tinyfiledialogs.sourceforge.net - \| git clone http://git.code.sf.net/p/tinyfiledialogs/code tinyfd - -If you like tinyfiledialogs, please upvote my stackoverflow answer -https://stackoverflow.com/a/47651444 - -- License - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef __sun -#ifndef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 2 /* to accept POSIX 2 in old ANSI C standards */ -#endif -#endif - -#include -#include -#include - -#include "../tinyfiledialogs.h" - -#define MAX_PATH_OR_CMD 1024 /* _MAX_PATH or MAX_PATH */ -int tfd_quoteDetected(char const * aString); -void tfd_replaceSubStr( char const * aSource ,char const * aOldSubStr , - char const * aNewSubStr ,char * aoDestination ); -#ifndef _WIN32 -int tfd_isDarwin(void); -int tfd_kdialogPresent(void); -int tfd_matedialogPresent(void); -int tfd_qarmaPresent(void); -int tfd_shellementaryPresent(void); -int tfd_xpropPresent(void); -int tfd_zenityPresent(void); -int tfd_zenity3Present(void); -#endif /*_WIN32 */ - - -/* not cross platform - unix zenity only */ -/* contributed by Attila Dusnoki */ -#ifndef _WIN32 -char * tinyfd_arrayDialog( - char const * aTitle , /* "" */ - int aNumOfColumns , /* 2 */ - char const * const * aColumns , /* {"Column 1","Column 2"} */ - int aNumOfRows , /* 2 */ - char const * const * aCells ) - /* {"Row1 Col1","Row1 Col2","Row2 Col1","Row2 Col2"} */ -{ - static char lBuff [MAX_PATH_OR_CMD] ; - char lDialogString [MAX_PATH_OR_CMD] ; - FILE * lIn ; - int i ; - - if (tfd_quoteDetected(aTitle)) return tinyfd_arrayDialog("INVALID TITLE WITH QUOTES", aNumOfColumns, aColumns, aNumOfRows, aCells); - for (i = 0; i < aNumOfColumns; i++) - { - if (tfd_quoteDetected(aColumns[i])) return tinyfd_arrayDialog("INVALID COLUMNS WITH QUOTES", 0, NULL, 0, NULL); - } - for (i = 0; i < aNumOfRows; i++) - { - if (tfd_quoteDetected(aCells[i])) return tinyfd_arrayDialog("INVALID ROWS WITH QUOTES", 0, NULL, 0, NULL); - } - - lBuff[0]='\0'; - - if ( tfd_zenityPresent() || tfd_matedialogPresent() || tfd_shellementaryPresent() || tfd_qarmaPresent() ) - { - if ( tfd_zenityPresent() ) - { - if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"zenity");return (char *)1;} - strcpy( lDialogString , "zenity" ) ; - if ( (tfd_zenity3Present() >= 4) && !getenv("SSH_TTY") && tfd_xpropPresent() ) - { - strcat( lDialogString, " --attach=$(sleep .01;xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */ - } - } - else if ( tfd_matedialogPresent() ) - { - if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"matedialog");return (char *)1;} - strcpy( lDialogString , "matedialog" ) ; - } - else if ( tfd_shellementaryPresent() ) - { - if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"shellementary");return (char *)1;} - strcpy( lDialogString , "shellementary" ) ; - } - else - { - if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"qarma");return (char *)1;} - strcpy( lDialogString , "qarma" ) ; - if ( !getenv("SSH_TTY") && tfd_xpropPresent() ) - { - strcat(lDialogString, " --attach=$(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */ - } - } - strcat( lDialogString , " --list --print-column=ALL" ) ; - - if ( aTitle && strlen(aTitle) ) - { - strcat(lDialogString, " --title=\"") ; - strcat(lDialogString, aTitle) ; - strcat(lDialogString, "\"") ; - } - - if ( aColumns && (aNumOfColumns > 0) ) - { - for ( i = 0 ; i < aNumOfColumns ; i ++ ) - { - strcat( lDialogString , " --column=\"" ) ; - strcat( lDialogString , aColumns [i] ) ; - strcat( lDialogString , "\"" ) ; - } - } - - if ( aCells && (aNumOfRows > 0) ) - { - strcat( lDialogString , " " ) ; - for ( i = 0 ; i < aNumOfRows*aNumOfColumns ; i ++ ) - { - strcat( lDialogString , "\"" ) ; - strcat( lDialogString , aCells [i] ) ; - strcat( lDialogString , "\" " ) ; - } - } - } - else - { - if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"");return (char *)0;} - return NULL ; - } - - if (tinyfd_verbose) printf( "lDialogString: %s\n" , lDialogString ) ; - if ( ! ( lIn = popen( lDialogString , "r" ) ) ) - { - return NULL ; - } - while ( fgets( lBuff , sizeof( lBuff ) , lIn ) != NULL ) - {} - pclose( lIn ) ; - if ( lBuff[strlen( lBuff ) -1] == '\n' ) - { - lBuff[strlen( lBuff ) -1] = '\0' ; - } - /* printf( "lBuff: %s\n" , lBuff ) ; */ - if ( ! strlen( lBuff ) ) - { - return NULL ; - } - return lBuff ; -} -#endif /*_WIN32 */ - - -/* not cross platform - UNIX and OSX only */ -/* contributed by srikanth http://sourceforge.net/u/cr1vct/profile */ -#ifndef _WIN32 -char *tinyfd_checklistDialog( - char const *aTitle, - int aNumOfOptions, - char const *const *aOptions) -{ - static char lBuff[MAX_PATH_OR_CMD]; - static char dest[MAX_PATH_OR_CMD]; - - char lDialogString[MAX_PATH_OR_CMD]; - FILE *lIn; - int i ; - char *target = lDialogString; - - if (tfd_quoteDetected(aTitle)) return tinyfd_checklistDialog("INVALID TITLE WITH QUOTES", aNumOfOptions, aOptions); - for (i = 0; i < aNumOfOptions; i++) - { - if (tfd_quoteDetected(aOptions[i])) return tinyfd_checklistDialog("INVALID COLUMNS WITH QUOTES", 0, NULL); - } - - lBuff[0] = '\0'; - if (tfd_isDarwin()) - { - target += sprintf(target, "osascript -e \'set Choices to {"); - for (i = 0; i < aNumOfOptions; i++) - { - if (i != aNumOfOptions - 1) - target += sprintf(target, "\"%s\", ", aOptions[i]); - else - target += sprintf(target, "\"%s\"", aOptions[i]); - } - target += sprintf(target, "}\' -e \'set Choice to choose from list Choices with prompt \"%s\" with multiple selections allowed\' -e \'Choice\'", aTitle); - } - - else if (tfd_kdialogPresent()) - { - target += sprintf(target, "kdialog --checklist \'%s\' ", aTitle); - for (i = 0; i < aNumOfOptions; i++) - { - target += sprintf(target, "\'%s\' \'%s\' OFF ", aOptions[i], aOptions[i]); - } - } - else if (tfd_zenityPresent()) - { - target += sprintf(target, "zenity --list --column= --column= --checklist --title=\'%s\' ", aTitle); - for (i = 0; i < aNumOfOptions; i++) - { - target += sprintf(target, "\'\' \'%s\' ", aOptions[i]); - } - } - if (tinyfd_verbose) - printf("lDialogString: %s\n", lDialogString); - if (!(lIn = popen(lDialogString, "r"))) - { - return NULL; - } - while (fgets(lBuff, sizeof(lBuff), lIn) != NULL) - { - } - pclose(lIn); - if (lBuff[strlen(lBuff) - 1] == '\n') - { - lBuff[strlen(lBuff) - 1] = '\0'; - } - /* printf( "lBuff: %s\n" , lBuff ) ; */ - if (!strlen(lBuff)) - { - return NULL; - } - if (tfd_kdialogPresent()) - { - tfd_replaceSubStr(lBuff, "\" \"", "|", dest); - dest[strlen(dest) - 2] = '\0'; - return dest + 1; - } - if (tfd_isDarwin()) - { - tfd_replaceSubStr(lBuff, "\", \"", "|", dest); - dest[strlen(dest) - 2] = '\0'; - dest[strlen(dest) - 3] = '\0'; - return dest + 2; - } - return lBuff; -} -#endif /*_WIN32 */ diff --git a/libs/tinyfiledialogs/more_dialogs/tinyfd_moredialogs.h b/libs/tinyfiledialogs/more_dialogs/tinyfd_moredialogs.h deleted file mode 100644 index 07bfea8..0000000 --- a/libs/tinyfiledialogs/more_dialogs/tinyfd_moredialogs.h +++ /dev/null @@ -1,48 +0,0 @@ -/* SPDX-License-Identifier: ZLIB -Copyright (c) 2014 - 2023 Guillaume Vareille http://ysengrin.com - _________ - / \ tinyfiledialogs v3.9.0 [Nov 3, 2022] - |tiny file| - | dialogs | - \____ ___/ http://tinyfiledialogs.sourceforge.net - \| git clone http://git.code.sf.net/p/tinyfiledialogs/code tinyfd - -If you like tinyfiledialogs, please upvote my stackoverflow answer -https://stackoverflow.com/a/47651444 - - - License - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/* not cross platform - unix zenity only */ -/* contributed by Attila Dusnoki */ -#ifndef _WIN32 -char * tinyfd_arrayDialog( - char const * aTitle , /* NULL or "" */ - int aNumOfColumns , /* 2 */ - char const * const * aColumns, /* {"Column 1","Column 2"} */ - int aNumOfRows, /* 2 */ - char const * const * aCells); - /* {"Row1 Col1","Row1 Col2","Row2 Col1","Row2 Col2"} */ -#endif /*_WIN32 */ - -/* not cross platform - UNIX and OSX only */ -/* contributed by srikanth http://sourceforge.net/u/cr1vct/profile */ -#ifndef _WIN32 -char * tinyfd_checklistDialog( - char const * aTitle , - int aNumOfOptions , - char const * const * aOptions); -#endif /*_WIN32 */ diff --git a/libs/xml.c/.github/workflows/ci.yaml b/libs/xml.c/.github/workflows/ci.yaml deleted file mode 100644 index 2f9a4a9..0000000 --- a/libs/xml.c/.github/workflows/ci.yaml +++ /dev/null @@ -1,24 +0,0 @@ -name: CI - -# Controls when the action will run. Triggers the workflow on push or pull -# request events but only for the main branch -on: - push: - branches: - - master - pull_request: - branches: [ master ] - schedule: - - cron: '0 0 15 * *' - - -jobs: - ci: - runs-on: ubuntu-20.04 - - steps: - - uses: actions/checkout@v2 - - - name: Build and Test - run: npx --package mini-cross@0.15.2 mc --no-tty ubuntu-22.04 .mc/rebuild.sh - diff --git a/libs/xml.c/.gitignore b/libs/xml.c/.gitignore deleted file mode 100644 index bdc5af0..0000000 --- a/libs/xml.c/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*~ -build diff --git a/libs/xml.c/.mc/rebuild.sh b/libs/xml.c/.mc/rebuild.sh deleted file mode 100644 index 67443c3..0000000 --- a/libs/xml.c/.mc/rebuild.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -set -e - - -# @see https://stackoverflow.com/a/1482133 -DIRECTORY_OF_SCRIPT=`dirname "$(readlink -f "$0")"` - -SOURCE_DIRECTORY="${DIRECTORY_OF_SCRIPT}/.." -BUILD_DIRECTORY="${DIRECTORY_OF_SCRIPT}/../build" - - -if [ -d "${BUILD_DIRECTORY}" ]; then - rm -rf "${BUILD_DIRECTORY}" -fi -mkdir "${BUILD_DIRECTORY}" - -(cd "${BUILD_DIRECTORY}" && cmake -DCMAKE_BUILD_TYPE=Release ..) -make --directory "${BUILD_DIRECTORY}" --silent -make --directory "${BUILD_DIRECTORY}" --silent test - diff --git a/libs/xml.c/.mc/ubuntu-22.04.yaml b/libs/xml.c/.mc/ubuntu-22.04.yaml deleted file mode 100644 index 762305c..0000000 --- a/libs/xml.c/.mc/ubuntu-22.04.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -base: ubuntu:22.04 -install: - - cmake - - g++ - - gcc - - valgrind ---- diff --git a/libs/xml.c/CMakeLists.txt b/libs/xml.c/CMakeLists.txt deleted file mode 100644 index 698dc78..0000000 --- a/libs/xml.c/CMakeLists.txt +++ /dev/null @@ -1,51 +0,0 @@ -# Project setup -project(xml C CXX) -set(VERSION_MAJOR "0") -set(VERSION_MINOR "2") -set(VERSION_PATCH "0") -cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) - - -# Define main library target -add_library(xml STATIC "") - - -# Compiler setup -target_compile_options( - xml - PRIVATE - -std=c11 -) - - -# Options -option(XML_PARSER_VERBOSE "Enable to be told everything the xml parser does" OFF) - -if(XML_PARSER_VERBOSE) - target_compile_definitions( - xml - PRIVATE - XML_PARSER_VERBOSE - ) -endif(XML_PARSER_VERBOSE) - - -# Sources -target_sources( - xml - PRIVATE - "${CMAKE_CURRENT_LIST_DIR}/src/xml.c" -) - - -target_include_directories( - xml - PUBLIC - "${CMAKE_CURRENT_LIST_DIR}/src/" -) - - -# Build unit cases -enable_testing() -add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/test") - diff --git a/libs/xml.c/test/CMakeLists.txt b/libs/xml.c/test/CMakeLists.txt deleted file mode 100644 index 09097d0..0000000 --- a/libs/xml.c/test/CMakeLists.txt +++ /dev/null @@ -1,128 +0,0 @@ -# xml.c / test -cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) - - - -# Example -add_executable( - "${PROJECT_NAME}-example" - "${CMAKE_CURRENT_LIST_DIR}/example.c" -) - -target_compile_options( - "${PROJECT_NAME}-example" - PRIVATE - -std=c11 -) - -target_link_libraries( - "${PROJECT_NAME}-example" - PRIVATE - xml -) - -add_test( - NAME "${PROJECT_NAME}-example" - COMMAND "${PROJECT_NAME}-example" -) - - - -# Test cases -FILE( COPY "${CMAKE_CURRENT_LIST_DIR}/test.xml" - DESTINATION "${CMAKE_CURRENT_BINARY_DIR}" -) - -FILE( COPY "${CMAKE_CURRENT_LIST_DIR}/test-attributes.xml" - DESTINATION "${CMAKE_CURRENT_BINARY_DIR}" -) - - - -# Test (C) -add_executable( - "${PROJECT_NAME}-test-c" - "${CMAKE_CURRENT_LIST_DIR}/test-xml-c.c" -) - -target_compile_options( - "${PROJECT_NAME}-test-c" - PRIVATE - -std=c11 -) - -target_link_libraries( - "${PROJECT_NAME}-test-c" - PRIVATE - xml -) - - -add_test( - NAME "${PROJECT_NAME}-test-c" - COMMAND "${PROJECT_NAME}-test-c" -) - -add_test( - NAME "${PROJECT_NAME}-test-c-valgrind" - COMMAND valgrind --tool=memcheck --leak-check=full --track-origins=yes -v "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-test-c" -) - - - -# Test (C++) -add_executable( - "${PROJECT_NAME}-test-cpp" - "${CMAKE_CURRENT_LIST_DIR}/test-xml-cpp.cpp" -) - -target_compile_options( - "${PROJECT_NAME}-test-cpp" - PRIVATE - -std=c++11 -) - -target_link_libraries( - "${PROJECT_NAME}-test-cpp" - PRIVATE - xml -) - - -add_test( - NAME "${PROJECT_NAME}-test-cpp" - COMMAND "${PROJECT_NAME}-test-cpp" -) - - -add_test( - NAME "${PROJECT_NAME}-test-cpp-valgrind" - COMMAND valgrind --tool=memcheck --leak-check=full --track-origins=yes -v "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-test-cpp" -) - - - -# Test huitre39 -add_executable( - "${PROJECT_NAME}-test-huitre39" - "${CMAKE_CURRENT_LIST_DIR}/test-huitre39.c" -) - -target_compile_options( - "${PROJECT_NAME}-test-huitre39" - PRIVATE - -std=c11 -) - -target_link_libraries( - "${PROJECT_NAME}-test-huitre39" - PRIVATE - xml -) - - -add_test( - NAME "${PROJECT_NAME}-test-huitre39" - COMMAND "${PROJECT_NAME}-test-huitre39" -) - diff --git a/libs/xml.c/test/example.c b/libs/xml.c/test/example.c deleted file mode 100644 index ebf605c..0000000 --- a/libs/xml.c/test/example.c +++ /dev/null @@ -1,96 +0,0 @@ -/** - * Copyright (c) 2012 ooxi/xml.c - * https://github.com/ooxi/xml.c - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from the - * use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - */ -#include -#include -#include -#include - - - -int main(int argc, char** argv) { - - /* XML source, could be read from disk - */ - uint8_t* source = "" - "" - "World" - "" - ":-)" - ":-O" - ":-D" - "" - "" - ; - - - /* Parse the document - * - * Watch out: Remember not to free the source until you have freed the - * document itself. If you have to free the source before, supply a - * copy to xml_parse_document which can be freed together with the - * document (`free_buffer' argument to `xml_document_free') - */ - struct xml_document* document = xml_parse_document(source, strlen(source)); - - /* You _have_ to check the result of `xml_parse_document', if it's 0 - * then the source could not be parsed. If you think this is a bug in - * xml.c, than use a debug build (cmake -DCMAKE_BUILD_TYPE=Debug) which - * will verbosely tell you about the parsing process - */ - if (!document) { - printf("Could parse document\n"); - exit(EXIT_FAILURE); - } - struct xml_node* root = xml_document_root(document); - - - /* Say Hello World :-) - */ - struct xml_node* root_hello = xml_node_child(root, 0); - struct xml_string* hello = xml_node_name(root_hello); - struct xml_string* world = xml_node_content(root_hello); - - /* Watch out: `xml_string_copy' will not 0-terminate your buffers! (but - * `calloc' will :-) - */ - uint8_t* hello_0 = calloc(xml_string_length(hello) + 1, sizeof(uint8_t)); - uint8_t* world_0 = calloc(xml_string_length(world) + 1, sizeof(uint8_t)); - xml_string_copy(hello, hello_0, xml_string_length(hello)); - xml_string_copy(world, world_0, xml_string_length(world)); - - printf("%s %s\n", hello_0, world_0); - free(hello_0); - free(world_0); - - - /* Extract amount of Root/This children - */ - struct xml_node* root_this = xml_node_child(root, 1); - printf("Root/This has %lu children\n", (unsigned long)xml_node_children(root_this)); - - - /* Remember to free the document or you'll risk a memory leak - */ - xml_document_free(document, false); -} - diff --git a/libs/xml.c/test/test-attributes.xml b/libs/xml.c/test/test-attributes.xml deleted file mode 100644 index 7832c02..0000000 --- a/libs/xml.c/test/test-attributes.xml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/libs/xml.c/test/test-huitre39.c b/libs/xml.c/test/test-huitre39.c deleted file mode 100644 index 43b9ae7..0000000 --- a/libs/xml.c/test/test-huitre39.c +++ /dev/null @@ -1,181 +0,0 @@ -#include -#include -#include -#include -#include "./xml.h" - - - - - -/** - * Will halt the program iff assertion fails - */ -static void _assert_that(_Bool condition, char const* message, char const* func, char const* file, int line) { - if (!condition) { - fprintf(stderr, "Assertion failed: %s, in %s (%s:%i)\n", message, func, file, line); - exit(EXIT_FAILURE); - } -} - -#define assert_that(condition, message) \ - _assert_that(condition, message, __func__, __FILE__, __LINE__) - - - - - -/** - * Behaves similar to `getElementsByTagName`, however returns just the first and - * not all elements with a given tag name - * - * @param base Node in tree which should be the start of te recursive search - * @param 0-terminated tag name, case sensitive - * - * @return First node below `base` iff found, otherwise 0 - * @warning Depth-First search! - * - * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/getElementsByTagName - */ -static struct xml_node* get_node_by_name(struct xml_node* base, uint8_t* name) { - - - /* Check whether `base` already has the tag name we are searching for - */ - size_t const name_length = strlen(name); - - uint8_t* base_name = xml_easy_name(base); - size_t const base_name_length = strlen(base_name); - - - /* Length of `name` and `base_name` do match, we should now do a real - * comparison - */ - if (name_length == base_name_length) { - int const rs = memcmp(name, base_name, name_length); - - /* Names match! We have found an element which fullfills our - * search criteria - */ - if (!rs) { - free(base_name); - return base; - } - } - - - /* Unfortunately, `base` is not the element we are looking for :-( - */ - free(base_name); - - - /* Let's take a look at the children of `base` - */ - size_t const number_of_children = xml_node_children(base); - - - /* No children → No luck with base - */ - if (!number_of_children) { - return 0; - } - - - /* Recursivly look through all children - */ - size_t child = 0; for (; child < number_of_children; ++child) { - struct xml_node* child_node = xml_node_child(base, child); - - /* Maybe this child does contain the element we are looking for? - */ - struct xml_node* search_result = get_node_by_name( - child_node, name - ); - - /* We are lucky! - */ - if (search_result) { - return search_result; - } - } - - - /* No luck :-( - */ - return 0; -} - - - - - -int main(int argc, char** argv) { - - /* XML source, could be read from disk - */ - uint8_t* source = "" - "" - "World" - - "" - "" - "testas one" - "testos" - "" - - "" - "testis" - "testus" - "testls" - "" - - "" - "testmn" - "testas two" - "" - "" - "" - ; - - struct xml_document* document = xml_parse_document(source, strlen(source)); - - if (!document) { - printf("Could parse document\n"); - exit(EXIT_FAILURE); - } - struct xml_node* root = xml_document_root(document); - - - - /* We expect to find Root / Functions / Function#1 / us - */ - struct xml_node* us = get_node_by_name(root, "us"); - assert_that(us, "Did not find element by tag name `us'"); - - uint8_t* us_content = xml_easy_content(us); - assert_that(us_content, "`us' should have content"); - assert_that(!strcmp(us_content, "testus"), "Unexpected content for node `us'"); - free(us_content); - - - /* We expect to find Root / Functions / Function#0 / as - */ - struct xml_node* as = get_node_by_name(root, "as"); - assert_that(as, "Did not find element by tag name `as'"); - - uint8_t* as_content = xml_easy_content(as); - assert_that(as_content, "`as' should have content"); - assert_that(!strcmp(as_content, "testas one"), "Unexpected content for first `as' node"); - free(as_content); - - - /* We do not expect do find a node with tag name `does_not_exist' - */ - struct xml_node* does_not_exist = get_node_by_name(root, "does_not_exist"); - assert_that(!does_not_exist, "Found node that should not exist"); - - - - xml_document_free(document, false); -} - diff --git a/libs/xml.c/test/test-xml-c.c b/libs/xml.c/test/test-xml-c.c deleted file mode 100644 index ee54bac..0000000 --- a/libs/xml.c/test/test-xml-c.c +++ /dev/null @@ -1,265 +0,0 @@ -/** - * Copyright (c) 2012 ooxi/xml.c - * https://github.com/ooxi/xml.c - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from the - * use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - */ -#include -#include -#include -#include -#include - - - - - -/** - * Will halt the program iff assertion fails - */ -static void _assert_that(_Bool condition, char const* message, char const* func, char const* file, int line) { - if (!condition) { - fprintf(stderr, "Assertion failed: %s, in %s (%s:%i)\n", message, func, file, line); - exit(EXIT_FAILURE); - } -} - -#define assert_that(condition, message) \ - _assert_that(condition, message, __func__, __FILE__, __LINE__) - - - -/** - * @return true iff xml string equals the c string - */ -static _Bool string_equals(struct xml_string* a, char const* b) { - size_t a_length = xml_string_length(a); - size_t b_length = strlen(b); - - uint8_t* a_buffer = alloca((a_length + 1) * sizeof(uint8_t)); - xml_string_copy(a, a_buffer, a_length); - a_buffer[a_length] = 0; - - if (a_length != b_length) { - fprintf(stderr, "string_equals: %s#%i <> %s#%i\n", a_buffer, (int)a_length, b, (int)b_length); - return false; - } - - size_t i = 0; for (; i < a_length; ++i) { - if (a_buffer[i] != b[i]) { - fprintf(stderr, "string_equals: %s <> %s\n", a_buffer, b); - return false; - } - } - - return true; -} - - - -/** - * Converts a static character array to an uint8_t data source - */ -#define SOURCE(source, content) \ - uint8_t* source = calloc(strlen(content) + 1, sizeof(uint8_t)); \ - { char const* content_string = content; \ - memcpy(source, content_string, strlen(content) + 1); \ - } - - - -/** - * Tries to parse a simple document containing only one tag - */ -static void test_xml_parse_document_0() { - SOURCE(source, "World"); -// uint8_t* source = malloc((1 + strlen("World")) * sizeof(uint8_t)); -// { char const* content_string = "World"; -// memcpy(source, content_string, strlen("World") + 1); -// } - - struct xml_document* document = xml_parse_document(source, strlen(source)); - assert_that(document, "Could not parse document"); - - struct xml_node* root = xml_document_root(document); - assert_that(string_equals(xml_node_name(root), "Hello"), "root node name must be `Hello'"); - assert_that(string_equals(xml_node_content(root), "World"), "root node content must be `World'"); - - xml_document_free(document, true); -} - -/** - * Tries to parse a document containing multiple tags - */ -static void test_xml_parse_document_1() { - SOURCE(source, "" - "\n" - "\t\n" - "\t\tFirst content\n" - "\t\n" - "\t\n" - "\t\tSecond content\n" - "\t\n" - "\n" - ); - struct xml_document* document = xml_parse_document(source, strlen(source)); - assert_that(document, "Could not parse document"); - - struct xml_node* root = xml_document_root(document); - assert_that(string_equals(xml_node_name(root), "Parent"), "root node name must be `Parent'"); - assert_that(2 == xml_node_children(root), "root must have two children"); - - struct xml_node* first_child = xml_node_child(root, 0); - struct xml_node* second_child = xml_node_child(root, 1); - assert_that(first_child && second_child, "Failed retrieving the children of root"); - - struct xml_node* third_child = xml_node_child(root, 2); - assert_that(!third_child, "root has a third child where non should be"); - - assert_that(string_equals(xml_node_name(first_child), "Child"), "first_child node name must be `Child'"); - assert_that(string_equals(xml_node_content(first_child), "First content"), "first_child node content must be `First content'"); - assert_that(string_equals(xml_node_name(second_child), "Child"), "second_child node name must be `Child'"); - assert_that(string_equals(xml_node_content(second_child), "Second content"), "second_child node content must be `tSecond content'"); - - xml_document_free(document, true); -} - - - -/** - * Tests the eas functionality - */ -static void test_xml_parse_document_2() { - SOURCE(source, "" - "\n" - "\t\n" - "\t\tFirst content\n" - "\t\n" - "\t\n" - "Content A\n" - "Content B\n" - "\t\n" - "\t\n" - "\t\tSecond content\n" - "\t\n" - "\n" - ); - struct xml_document* document = xml_parse_document(source, strlen(source)); - assert_that(document, "Could not parse document"); - - struct xml_node* root = xml_document_root(document); - assert_that(string_equals(xml_node_name(root), "Parent"), "root node name must be `Parent'"); - assert_that(3 == xml_node_children(root), "root must have two children"); - - struct xml_node* test_a = xml_easy_child(root, "This", "Is", "A", "Test", 0); - assert_that(test_a, "Cannot find Parent/This/Is/A/Test"); - assert_that(string_equals(xml_node_content(test_a), "Content A"), "Content of Parent/This/Is/A/Test must be `Content A'"); - - struct xml_node* test_b = xml_easy_child(root, "This", "Is", "B", "Test", 0); - assert_that(test_b, "Cannot find Parent/This/Is/B/Test"); - assert_that(string_equals(xml_node_content(test_b), "Content B"), "Content of Parent/This/Is/B/Test must be `Content B'"); - - struct xml_node* test_c = xml_easy_child(root, "This", "Is", "C", "Test", 0); - assert_that(!test_c, "Must not find Parent/This/Is/C/Test because no such path exists"); - - struct xml_node* must_be_null = xml_easy_child(root, "Child"); - assert_that(!must_be_null, "Parent/Child cannot be a valid expression, because there are two children named `Child' in `Parent'"); - - uint8_t* name_is = xml_easy_name(xml_easy_child(root, "This", "Is", 0)); - assert_that(!strcmp(name_is, "Is"), "Name of Parent/This/Is must be `Is'"); - free(name_is); - - uint8_t* content_a = xml_easy_content(test_a); - assert_that(!strcmp(content_a, "Content A"), "Content of Parent/This/Is/A/Test must be `Content A'"); - free(content_a); - - xml_document_free(document, true); -} - - - -/** - * Tests the xml_open_document functionality - */ -static void test_xml_parse_document_3() { - #define FILE_NAME "test.xml" - FILE* handle = fopen(FILE_NAME, "rb"); - assert_that(handle, "Cannot open " FILE_NAME); - - struct xml_document* document = xml_open_document(handle); - assert_that(document, "Cannot parse " FILE_NAME); - - struct xml_node* element = xml_easy_child( - xml_document_root(document), "Element", "With", 0 - ); - assert_that(element, "Cannot find Document/Element/With"); - assert_that(string_equals(xml_node_content(element), "Child"), "Content of Document/Element/With must be `Child'"); - - xml_document_free(document, true); - #undef FILE_NAME -} - - - -/** - * Test parsing of attributes - * - * @author Isty001 - * @see https://github.com/Isty001/ - */ -static void test_xml_parse_attributes() { - #define FILE_NAME "test-attributes.xml" - FILE* handle = fopen(FILE_NAME, "rb"); - assert_that(handle, "Cannot open " FILE_NAME); - - struct xml_document* document = xml_open_document(handle); - assert_that(document, "Cannot parse " FILE_NAME); - - struct xml_node* element = xml_easy_child( - xml_document_root(document), 0 - ); - - assert_that(element, "Cannot find Document/Element/With"); - assert_that(2 == xml_node_attributes(element), "Should have 2 attributes"); - - assert_that(string_equals(xml_node_attribute_name(element, 0), "value"), "Content of Document/Element/With must be `Child'"); - assert_that(string_equals(xml_node_attribute_content(element, 0), "2"), "First attribute's content should be \"2\""); - - assert_that(string_equals(xml_node_attribute_name(element, 1), "value_2"), "Content of Document/Element/With must be `Child'"); - assert_that(string_equals(xml_node_attribute_content(element, 1), "Hello"), "Second attribute's content should be Hello"); - - xml_document_free(document, true); - #undef FILE_NAME -} - - - -/** - * Console interface - */ -int main(int argc, char** argv) { - test_xml_parse_document_0(); - test_xml_parse_document_1(); - test_xml_parse_document_2(); - test_xml_parse_document_3(); - test_xml_parse_attributes(); - - fprintf(stdout, "All tests passed :-)\n"); - exit(EXIT_SUCCESS); -} diff --git a/libs/xml.c/test/test-xml-cpp.cpp b/libs/xml.c/test/test-xml-cpp.cpp deleted file mode 100644 index 513d14b..0000000 --- a/libs/xml.c/test/test-xml-cpp.cpp +++ /dev/null @@ -1,222 +0,0 @@ -/** - * Copyright (c) 2012 ooxi/xml.c - * https://github.com/ooxi/xml.c - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from the - * use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - */ - -#include -#include -#include -#include - -/** - * Will halt the program iff assertion fails - */ -static void _assert_that(bool condition, const char* message, - const char* func, const char* file, int line) { - if (!condition) { - std::cerr << "Assertion failed: " << message << ", in " << func << " (" - << file << ":" << line << ")\n"; - exit(EXIT_FAILURE); - } -} - -#define assert_that(condition, message) \ - _assert_that(condition, message, __func__, __FILE__, __LINE__) - -/** - * @return true iff xml string equals the c string - */ -static bool string_equals(struct xml_string* a, const char* b) { - size_t a_length = xml_string_length(a); - size_t b_length = strlen(b); - uint8_t* a_buffer = new uint8_t[((a_length + 1) * sizeof(uint8_t))]; - xml_string_copy(a, a_buffer, a_length); - a_buffer[a_length] = 0; - if (a_length != b_length) { - std::cerr << "string_equals: " << a_buffer << "#" << a_length << " <> " - << b << "#" << b_length << "\n"; - delete[] a_buffer; - return false; - } - size_t i = 0; for (; i < a_length; ++i) { - if (a_buffer[i] != b[i]) { - std::cerr << "string_equals: " << a_buffer << " <> " << b << "\n"; - delete[] a_buffer; - return false; - } - } - delete[] a_buffer; - return true; -} - - -/** - * Converts a static character array to an uint8_t data source which can be - * freed - */ -#define SOURCE(source, content) \ - uint8_t* source = (uint8_t*)calloc(strlen(content) + 1, sizeof(uint8_t)); \ - memcpy(source, (content), strlen(content) + 1); \ - - -/** - * Tries to parse a simple document containing only one tag - */ -static void test_xml_parse_document_0() { - SOURCE(source, "World"); - // uint8_t* source = malloc((1 + strlen("World")) * - // sizeof(uint8_t)); - // { - // const char* content_string = "World"; - // memcpy(source, content_string, strlen("World") + 1); - // } - struct xml_document* document = xml_parse_document(source, - strlen((const char *)source)); - assert_that(document, "Could not parse document"); - struct xml_node* root = xml_document_root(document); - assert_that(string_equals(xml_node_name(root), "Hello"), - "root node name must be `Hello'"); - assert_that(string_equals(xml_node_content(root), "World"), - "root node content must be `World'"); - xml_document_free(document, true); -} - -/** - * Tries to parse a document containing multiple tags - */ -static void test_xml_parse_document_1() { - SOURCE(source, "" - "\n" - "\t\n" - "\t\tFirst content\n" - "\t\n" - "\t\n" - "\t\tSecond content\n" - "\t\n" - "\n" - ); - struct xml_document* document = xml_parse_document(source, - strlen((const char *)source)); - assert_that(document, "Could not parse document"); - struct xml_node* root = xml_document_root(document); - assert_that(string_equals(xml_node_name(root), "Parent"), - "root node name must be `Parent'"); - assert_that(2 == xml_node_children(root), "root must have two children"); - struct xml_node* first_child = xml_node_child(root, 0); - struct xml_node* second_child = xml_node_child(root, 1); - assert_that(first_child && second_child, - "Failed retrieving the children of root"); - struct xml_node* third_child = xml_node_child(root, 2); - assert_that(!third_child, "root has a third child where non should be"); - assert_that(string_equals(xml_node_name(first_child), "Child"), - "first_child node name must be `Child'"); - assert_that(string_equals(xml_node_content(first_child), "First content"), - "first_child node content must be `First content'"); - assert_that(string_equals(xml_node_name(second_child), "Child"), - "second_child node name must be `Child'"); - assert_that(string_equals(xml_node_content(second_child), "Second content"), - "second_child node content must be `tSecond content'"); - xml_document_free(document, true); -} - -/** - * Tests the eas functionality - */ -static void test_xml_parse_document_2() { - SOURCE(source, "" - "\n" - "\t\n" - "\t\tFirst content\n" - "\t\n" - "\t\n" - "Content A\n" - "Content B\n" - "\t\n" - "\t\n" - "\t\tSecond content\n" - "\t\n" - "\n" - ); - struct xml_document* document = xml_parse_document(source, - strlen((const char *)source)); - assert_that(document, "Could not parse document"); - struct xml_node* root = xml_document_root(document); - assert_that(string_equals(xml_node_name(root), "Parent"), - "root node name must be `Parent'"); - assert_that(3 == xml_node_children(root), - "root must have two children"); - struct xml_node* test_a = xml_easy_child(root, (uint8_t *)"This", - (uint8_t *)"Is", (uint8_t *)"A", (uint8_t *)"Test", 0); - assert_that(test_a, "Cannot find Parent/This/Is/A/Test"); - assert_that(string_equals(xml_node_content(test_a), "Content A"), - "Content of Parent/This/Is/A/Test must be `Content A'"); - struct xml_node* test_b = xml_easy_child(root, (uint8_t *)"This", - (uint8_t *)"Is", (uint8_t *)"B", (uint8_t *)"Test", 0); - assert_that(test_b, "Cannot find Parent/This/Is/B/Test"); - assert_that(string_equals(xml_node_content(test_b), "Content B"), - "Content of Parent/This/Is/B/Test must be `Content B'"); - struct xml_node* test_c = xml_easy_child(root, (uint8_t *)"This", - (uint8_t *)"Is", (uint8_t *)"C", (uint8_t *)"Test", 0); - assert_that(!test_c, - "Must not find Parent/This/Is/C/Test because no such path exists"); - struct xml_node* must_be_null = xml_easy_child(root, (uint8_t *)"Child"); - assert_that(!must_be_null, - "Parent/Child cannot be a valid expression, because there are two children " - "named `Child' in `Parent'"); - uint8_t* name_is = xml_easy_name(xml_easy_child(root, (uint8_t *)"This", - (uint8_t *)"Is", 0)); - assert_that(!strcmp((const char*)name_is, "Is"), - "Name of Parent/This/Is must be `Is'"); - free(name_is); - uint8_t* content_a = xml_easy_content(test_a); - assert_that(!strcmp((const char*)content_a, "Content A"), - "Content of Parent/This/Is/A/Test must be `Content A'"); - free(content_a); - xml_document_free(document, true); -} - -/** - * Tests the xml_open_document functionality - */ -static void test_xml_parse_document_3() { - #define FILE_NAME "test.xml" - FILE* handle = fopen(FILE_NAME, "rb"); - assert_that(handle, "Cannot open " FILE_NAME); - struct xml_document* document = xml_open_document(handle); - assert_that(document, "Cannot parse " FILE_NAME); - struct xml_node* element = xml_easy_child(xml_document_root(document), - (uint8_t *)"Element", (uint8_t *)"With", 0); - assert_that(element, "Cannot find Document/Element/With"); - assert_that(string_equals(xml_node_content(element), "Child"), - "Content of Document/Element/With must be `Child'"); - xml_document_free(document, true); - #undef FILE_NAME -} - -int main(int argc, char **argv) { - test_xml_parse_document_0(); - test_xml_parse_document_1(); - test_xml_parse_document_2(); - test_xml_parse_document_3(); - std::cout << "All tests passed :-)\n"; - exit(EXIT_SUCCESS); -} - diff --git a/libs/xml.c/test/test.xml b/libs/xml.c/test/test.xml deleted file mode 100644 index a0e1ab8..0000000 --- a/libs/xml.c/test/test.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - Child - - - diff --git a/libs/zip/.gitattributes b/libs/zip/.gitattributes deleted file mode 100644 index 15a5c58..0000000 --- a/libs/zip/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.h linguist-language=C diff --git a/libs/zip/.gitignore b/libs/zip/.gitignore deleted file mode 100644 index a5900db..0000000 --- a/libs/zip/.gitignore +++ /dev/null @@ -1,60 +0,0 @@ -/build/ -/test/build/ -/xcodeproj/ -/infer-out/ -.vscode/ -Testing/ - -# Object files -*.o -*.ko -*.obj -*.elf - -# Precompiled Headers -*.gch -*.pch - -# Libraries -*.lib -*.a -*.la -*.lo - -# Shared objects (inc. Windows DLLs) -*.dll -*.so -*.so.* -*.dylib -*.suo - -# Executables -*.exe -*.out -*.app -*.i*86 -*.x86_64 -*.hex - -# Temporary -*.swp -.DS_Store - -# CMake -CMakeScripts -*.cmake - -# Xcode -*.build -*.xcodeproj -zip.sln -zip.vcxproj.filters -zip.vcxproj -ALL_BUILD.vcxproj.filters -ALL_BUILD.vcxproj -CMakeFiles/ -zip.dir/ -test/test.exe.vcxproj.filters -test/test.exe.vcxproj -test/test.exe.dir/ - diff --git a/libs/zip/CMakeLists.txt b/libs/zip/CMakeLists.txt deleted file mode 100644 index 4e397c7..0000000 --- a/libs/zip/CMakeLists.txt +++ /dev/null @@ -1,153 +0,0 @@ -cmake_minimum_required(VERSION 3.14) - -project(zip - LANGUAGES C - VERSION "0.3.0") -set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) -set(CMAKE_VERBOSE_MAKEFILE ON) - -# Enable building tests only if the project is being built as a standalone one -if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) - option(CMAKE_DISABLE_TESTING "Disable test creation" OFF) -else () - option(CMAKE_DISABLE_TESTING "Disable test creation" ON) -endif () - -option(CMAKE_ENABLE_SANITIZERS "Enable zip sanitizers" OFF) -option(ZIP_STATIC_PIC "Build static zip with PIC" ON) -option(ZIP_BUILD_DOCS "Generate API documentation with Doxygen" OFF) -option(ZIP_BUILD_FUZZ "Build fuzz targets" OFF) - -if(ZIP_ENABLE_SHARABLE_FILE_OPEN) - add_definitions(-DZIP_ENABLE_SHARABLE_FILE_OPEN) -endif() - -if(CMAKE_SIZEOF_VOID_P EQUAL 4) - # large file support - add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64) -endif() - -# zip -set(SRC src/miniz.h src/zip.h src/zip.c) - -add_library(${PROJECT_NAME} ${SRC}) -add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) - -if(ZIP_STATIC_PIC) - set_property(TARGET ${PROJECT_NAME} PROPERTY POSITION_INDEPENDENT_CODE 1) -endif() - -set_property(TARGET ${PROJECT_NAME} PROPERTY C_VISIBILITY_PRESET hidden) -if(BUILD_SHARED_LIBS) - target_compile_definitions(${PROJECT_NAME} - PUBLIC ZIP_SHARED - PRIVATE ZIP_BUILD_SHARED - ) -endif() - -target_include_directories(${PROJECT_NAME} PUBLIC - $ - $ -) - -# test -if (NOT CMAKE_DISABLE_TESTING) - enable_testing() - add_subdirectory(test) -endif() -if (CMAKE_ENABLE_SANITIZERS) - find_package(Sanitizers) - add_sanitizers(${PROJECT_NAME}) -endif() - -set(CMAKE_C_STANDARD 90) -if (MSVC) - # Use secure functions by default and suppress warnings about "deprecated" functions - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_NONSTDC_NO_WARNINGS=1 /D _CRT_SECURE_NO_WARNINGS=1") - -elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR - "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR - "${CMAKE_C_COMPILER_ID}" STREQUAL "AppleClang") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror -pedantic -Wno-implicit-function-declaration") -endif (MSVC) - -#### - -# fuzz -if (ZIP_BUILD_FUZZ) - if (NOT DEFINED ENV{LIB_FUZZING_ENGINE}) - message(FATAL_ERROR "LIB_FUZZING_ENGINE is not defined") - endif() - add_subdirectory(fuzz) -endif() -### - -set(CONFIG_INSTALL_DIR "lib/cmake/${PROJECT_NAME}") -set(INCLUDE_INSTALL_DIR "include") - -set(GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated") - -# Configuration -set(VERSION_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}ConfigVersion.cmake") -set(PROJECT_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}Config.cmake") -set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") -set(NAMESPACE "${PROJECT_NAME}::") - -# Include module with function 'write_basic_package_version_file' -include(CMakePackageConfigHelpers) - -# Note: PROJECT_VERSION is used as a VERSION -write_basic_package_version_file( - "${VERSION_CONFIG}" COMPATIBILITY SameMajorVersion -) - -# Use variables: -# * TARGETS_EXPORT_NAME -# * PROJECT_NAME -configure_package_config_file( - "cmake/Config.cmake.in" - "${PROJECT_CONFIG}" - INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}" -) - -install( - FILES "${PROJECT_CONFIG}" "${VERSION_CONFIG}" - DESTINATION "${CONFIG_INSTALL_DIR}" -) - -install( - EXPORT "${TARGETS_EXPORT_NAME}" - NAMESPACE "${NAMESPACE}" - DESTINATION "${CONFIG_INSTALL_DIR}" -) - -install(TARGETS ${PROJECT_NAME} - EXPORT ${TARGETS_EXPORT_NAME} - RUNTIME DESTINATION bin - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib - INCLUDES DESTINATION ${INCLUDE_INSTALL_DIR} -) -install(FILES ${PROJECT_SOURCE_DIR}/src/zip.h DESTINATION ${INCLUDE_INSTALL_DIR}/zip) - -# uninstall target (https://gitlab.kitware.com/cmake/community/wikis/FAQ#can-i-do-make-uninstall-with-cmake) -if(NOT TARGET uninstall) - configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake_uninstall.cmake" - IMMEDIATE @ONLY) - - add_custom_target(uninstall - COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake_uninstall.cmake) -endif() - -if(ZIP_BUILD_DOCS) - find_package(Doxygen REQUIRED) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) - add_custom_target(doc - ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMENT "Generating API documentation with Doxygen" VERBATIM) -endif() diff --git a/libs/zip/CONTRIBUTING.md b/libs/zip/CONTRIBUTING.md deleted file mode 100644 index eebbbac..0000000 --- a/libs/zip/CONTRIBUTING.md +++ /dev/null @@ -1,9 +0,0 @@ -# Contribution Rules/Coding Standards -No need to throw away your coding style, just do your best to follow default clang-format style. -Apply `clang-format` to the source files before commit: -```sh -for file in $(git ls-files | \grep -E '\.(c|h)$' | \grep -v -- '#') -do - clang-format -i $file --style=LLVM -done -``` diff --git a/libs/zip/Doxyfile.in b/libs/zip/Doxyfile.in deleted file mode 100644 index 7f03b18..0000000 --- a/libs/zip/Doxyfile.in +++ /dev/null @@ -1,2480 +0,0 @@ -# Doxyfile 1.8.14 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all text -# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv -# built into libc) for the transcoding. See -# https://www.gnu.org/software/libiconv/ for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = zip - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = @ZIP_VERSION@ - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = - -# With the PROJECT_LOGO tag one can specify a logo or an icon that is included -# in the documentation. The maximum height of the logo should not exceed 55 -# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy -# the logo to the output directory. - -PROJECT_LOGO = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = doc - -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII -# characters to appear in the names of generated files. If set to NO, non-ASCII -# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode -# U+3044. -# The default value is: NO. - -ALLOW_UNICODE_NAMES = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = YES - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = @CMAKE_CURRENT_SOURCE_DIR@/src - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = NO - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new -# page for each member. If set to NO, the documentation of a member will be part -# of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 4 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:\n" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines (in the resulting output). You can put ^^ in the value part of an -# alias to insert a newline as if a physical newline was in the original file. - -ALIASES = - -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding "class=itcl::class" -# will allow you to use the command class in the itcl::class meaning. - -TCL_SUBST = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: -# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: -# Fortran. In the later case the parser tries to guess whether the code is fixed -# or free formatted code, this is the default for Fortran type files), VHDL. For -# instance to make doxygen treat .inc files as Fortran files (default is PHP), -# and .f files as C (default is Fortran), use: inc=Fortran f=C. -# -# Note: For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = YES - -# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up -# to that level are automatically included in the table of contents, even if -# they do not have an id attribute. -# Note: This feature currently applies only to Markdown headings. -# Minimum value: 0, maximum value: 99, default value: 0. -# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. - -TOC_INCLUDE_HEADINGS = 0 - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by putting a % sign in front of the word or -# globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = NO - -# If one adds a struct or class to a group and this option is enabled, then also -# any nested class or struct is added to the same group. By default this option -# is disabled and one has to add nested compounds explicitly via \ingroup. -# The default value is: NO. - -GROUP_NESTED_COMPOUNDS = NO - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = NO - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = NO - -# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO, -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. If set to YES, local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO, only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = YES - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO, these classes will be included in the various overviews. This option -# has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = YES - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO, these declarations will be -# included in the documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = YES - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO, these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = YES - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = YES - -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES, upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. -# The default value is: system dependent. - -CASE_SENSE_NAMES = NO - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES, the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = YES - -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will -# append additional text to a page's title, such as Class Reference. If set to -# YES the compound reference will be hidden. -# The default value is: NO. - -HIDE_COMPOUND_REFERENCE= NO - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = YES - -# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each -# grouped member an include statement to the documentation, telling the reader -# which file to include in order to use the member. -# The default value is: NO. - -SHOW_GROUPED_MEMB_INC = NO - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = NO - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. Note that -# this will also influence the order of the classes in the class list. -# The default value is: NO. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo -# list. This list is created by putting \todo commands in the documentation. -# The default value is: YES. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test -# list. This list is created by putting \test commands in the documentation. -# The default value is: YES. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES, the -# list will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = YES - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. See also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. -# The default value is: NO. - -WARN_NO_PARAMDOC = NO - -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. -# The default value is: NO. - -WARN_AS_ERROR = NO - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING -# Note: If this tag is empty the current directory is searched. - -INPUT = @CMAKE_CURRENT_SOURCE_DIR@/src - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: https://www.gnu.org/software/libiconv/) for the list of -# possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. -# -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, -# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, -# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf. - -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.idl \ - *.ddl \ - *.odl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.cs \ - *.d \ - *.php \ - *.php4 \ - *.php5 \ - *.phtml \ - *.inc \ - *.m \ - *.markdown \ - *.md \ - *.mm \ - *.dox \ - *.py \ - *.pyw \ - *.f90 \ - *.f95 \ - *.f03 \ - *.f08 \ - *.f \ - *.for \ - *.tcl \ - *.vhd \ - *.vhdl \ - *.ucf \ - *.qsf - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - -RECURSIVE = NO - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = * - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = NO - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# function all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = NO - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see https://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the config file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = YES - -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefore more robust against future updates. -# Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra style sheet files is of importance (e.g. the last -# style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the style sheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# https://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - -# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML -# documentation will contain a main index with vertical navigation menus that -# are dynamically created via Javascript. If disabled, the navigation index will -# consists of multiple levels of tabs that are statically embedded in every HTML -# page. Disable this option to support browsers that do not have Javascript, -# like the Qt help browser. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_MENUS = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = NO - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: https://developer.apple.com/tools/xcode/), introduced with -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See https://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop on Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler (hhc.exe). If non-empty, -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the master .chm file (NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated -# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: http://doc.qt.io/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://doc.qt.io/qt-4.8/qthelpproject.html#virtual-folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://doc.qt.io/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = NO - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = NO - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 4 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANSPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# https://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from https://www.mathjax.org before deployment. -# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/ - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /